diff --git a/dist/index.js b/dist/index.js index d85692d..3de25b6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -735,10 +735,14 @@ class AssemblyProcessor { } } getEmoji(changes) { - if (changes.destructiveChanges.length || changes.removedResources) { + // Only flag the stack with :x: for destructive changes that survived + // allowedDestroyTypes filtering. Removals of allowed types (e.g. the + // AWS::ApiGateway::Deployment roll CDK performs on every API change) + // are routine churn and render as :yellow_circle: like other updates. + if (changes.destructiveChanges.length) { return ':x:'; } - else if (changes.updatedResources) { + else if (changes.updatedResources || changes.removedResources) { return ':yellow_circle:'; } else if (changes.createdResources) { @@ -835,7 +839,7 @@ class StringWritable extends stream_1.Writable { function md5Hash(val) { return crypto.createHash('md5').update(val).digest('hex'); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YWdlLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBQ2pDLG1DQUFtRDtBQUNuRCxtREFBK0M7QUFDL0Msd0NBQXNDO0FBRXRDLHNFQUErRTtBQVEvRSx5Q0FBMEU7QUFFMUUsaUNBQWdGO0FBcUNoRjs7O0dBR0c7QUFDSCxNQUFhLGlCQUFpQjtJQVE1QixZQUFvQixPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQVByRDs7V0FFRztRQUNhLGtCQUFhLEdBQTBDLEVBQUUsQ0FBQztJQUlsQixDQUFDO0lBRXpELElBQVksU0FBUztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlLENBQUMsYUFBNEI7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQ0FBc0IsQ0FDekMsYUFBYSxFQUNiLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUI7Z0JBQzFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFD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SUFDMUIsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgV3JpdGFibGUsIFdyaXRhYmxlT3B0aW9ucyB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgeyBTdHJpbmdEZWNvZGVyIH0gZnJvbSAnc3RyaW5nX2RlY29kZXInO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tICdAYWN0aW9ucy9jb3JlJztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgVGVtcGxhdGVEaWZmLCBmb3JtYXREaWZmZXJlbmNlcyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHtcbiAgRGlmZk1ldGhvZCxcbiAgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSxcbiAgU3RhY2tTZWxlY3RvcixcbiAgVG9vbGtpdCxcbn0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0RXJyb3IsIE9jdG9raXRSZXNwb25zZSB9IGZyb20gJ0BvY3Rva2l0L3R5cGVzJztcbmltcG9ydCB7IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIsIFN0YWNrSW5mbywgU3RhZ2VJbmZvIH0gZnJvbSAnLi9hc3NlbWJseSc7XG5pbXBvcnQgeyBDb21tZW50cyB9IGZyb20gJy4vY29tbWVudCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRhaWxzLCBTdGFja0RpZmYsIFN0YWNrRGlmZkluZm8sIFN0YWdlRGlmZkluZm8gfSBmcm9tICcuL2RpZmYnO1xuaW1wb3J0IHsgSW5wdXRzIH0gZnJvbSAnLi9pbnB1dHMnO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIG5lZWRlZCB0byBtYWtlIGEgY29tbWVudCBmb3IgYSBDREsgU3RhZ2VcbiAqL1xuaW50ZXJmYWNlIFN0YWdlQ29tbWVudCB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBjb21tZW50IGZvciBlYWNoIHN0YWNrLiBUaGUgbGlzdCB3aWxsIGJlIGpvaW5lZCB3aXRoIFxcblxuICAgKi9cbiAgc3RhY2tDb21tZW50czogeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGNvbW1lbnRcbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGhhc2ggZm9yIHRoZSBzdGFnZSBjb21tZW50XG4gICAqIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGxvb2t1cCB0aGUgc3RhZ2UgY29tbWVudCBvbiB0aGUgUFJcbiAgICogc28gdGhhdCBpdCBjYW4gYmUgb3ZlcndyaXR0ZW5cbiAgICovXG4gIGhhc2g6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkZXN0cnVjdGl2ZSBjaGFuZ2VzIGluIHRoaXMgc3RhZ2VcbiAgICovXG4gIGRlc3RydWN0aXZlQ2hhbmdlczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5UHJvY2Vzc29yT3B0aW9uc1xuICBleHRlbmRzIE9taXQ8SW5wdXRzLCAnZ2l0aHViVG9rZW4nIHwgJ2RpZmZNZXRob2QnPiB7XG4gIGRpZmZNZXRob2Q6IERpZmZNZXRob2Q7XG4gIHRvb2xraXQ6IFRvb2xraXQ7XG4gIGRlZmF1bHRTdGFnZURpc3BsYXlOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU3RhZ2VQcm9jZXNzb3IgcHJvY2Vzc2VzIGEgQ0RLIHN0YWdlIGFuZCBjcmVhdGVzIGEgY29tbWVudCBvbiB0aGUgR2l0SHViIFBSXG4gKiBkZXRhaWxpbmcgdGhlIHN0YWNrIGRpZmZzXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NlbWJseVByb2Nlc3NvciB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFnZUNvbW1lbnRzOiB7IFtzdGFnZU5hbWU6IHN0cmluZ106IFN0YWdlQ29tbWVudCB9ID0ge307XG4gIHByaXZhdGUgX3N0YWdlSW5mbz86IFN0YWdlSW5mb1tdO1xuICBwcml2YXRlIF9zdGFnZXM/OiBTdGFnZURpZmZJbmZvW107XG4gIHByaXZhdGUgX3RlbXBsYXRlRGlmZnM/OiB7IFtzdGFja05hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IEFzc2VtYmx5UHJvY2Vzc29yT3B0aW9ucykge31cblxuICBwcml2YXRlIGdldCBzdGFnZUluZm8oKTogU3RhZ2VJbmZvW10ge1xuICAgIGlmICghdGhpcy5fc3RhZ2VJbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YWdlIGluZm8gaGFzIG5vdCBiZWVuIGNyZWF0ZWQgeWV0Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdGFnZUluZm87XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NBc3NlbWJseShjbG91ZEFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5KSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgQXNzZW1ibHlNYW5pZmVzdFJlYWRlcihcbiAgICAgIGNsb3VkQXNzZW1ibHksXG4gICAgICB0aGlzLnRlbXBsYXRlRGlmZnMsXG4gICAgKTtcbiAgICB0aGlzLl9zdGFnZUluZm8gPSBhc3NlbWJseS5zdGFnZXM7XG4gICAgaWYgKGFzc2VtYmx5LnN0YWNrcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RhZ2VJbmZvLnB1c2goe1xuICAgICAgICBuYW1lOiB0aGlzLm9wdGlvbnMuZGVmYXVsdFN0YWdlRGlzcGxheU5hbWUsXG4gICAgICAgIHN0YWNrczogYXNzZW1ibHkuc3RhY2tzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdGVtcGxhdGVEaWZmcygpOiB7IFtzdGFja05hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9IHtcbiAgICBpZiAoIXRoaXMuX3RlbXBsYXRlRGlmZnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVtcGxhdGUgZGlmZnMgaGF2ZSBub3QgYmVlbiBjcmVhdGVkIHlldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVEaWZmcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHN0YWdlRGlmZkluZm8oKTogU3RhZ2VEaWZmSW5mb1tdIHtcbiAgICBpZiAodGhpcy5fc3RhZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3RhZ2VzO1xuICAgIH1cbiAgICB0aGlzLl9zdGFnZXMgPSB0aGlzLnN0YWdlSW5mby5mbGF0TWFwKChzdGFnZSkgPT4ge1xuICAgICAgdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlLm5hbWVdID0ge1xuICAgICAgICB0aXRsZTogdGhpcy5vcHRpb25zLnRpdGxlLFxuICAgICAgICBkZXN0cnVjdGl2ZUNoYW5nZXM6IDAsXG4gICAgICAgIHN0YWNrQ29tbWVudHM6IHN0YWdlLnN0YWNrcy5yZWR1Y2UoXG4gICAgICAgICAgKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgICAgIHByZXZbY3Vyci5uYW1lXSA9IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7fSBhcyB7IFtzdGFja05hbWU6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICAgICAgICksXG4gICAgICAgIGhhc2g6IG1kNUhhc2goXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgc3RhZ2VOYW1lOiBzdGFnZS5uYW1lLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMub3B0aW9ucy50aXRsZSxcbiAgICAgICAgICAgIC4uLnN0YWdlLnN0YWNrcy5yZWR1Y2UoXG4gICAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgcHJldi5zdGFja3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBjdXJyLm5hbWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgc3RhY2tzOiBbXSB9IGFzIHsgc3RhY2tzOiBTdGFja0luZm9bXSB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBzdGFnZS5uYW1lLFxuICAgICAgICBzdGFja3M6IHN0YWdlLnN0YWNrcy5tYXAoKHN0YWNrKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlRGlmZnNbc3RhY2submFtZV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFRlbXBsYXRlIGRpZmZzIGhhdmUgbm90IGJlZW4gY3JlYXRlZCB5ZXQgZm9yIHN0YWNrICR7c3RhY2submFtZX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YWNrTmFtZTogc3RhY2submFtZSxcbiAgICAgICAgICAgIGRpZmY6IHRoaXMudGVtcGxhdGVEaWZmc1tzdGFjay5uYW1lXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWdlcztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaWZmQXBwKCk6IFByb21pc2U8eyBbbmFtZTogc3RyaW5nXTogVGVtcGxhdGVEaWZmIH0+IHtcbiAgICBjb25zdCBhc3NlbWJseVNvdXJjZSA9IGF3YWl0IHRoaXMub3B0aW9ucy50b29sa2l0LmZyb21Bc3NlbWJseURpcmVjdG9yeShcbiAgICAgIHRoaXMub3B0aW9ucy5jZGtPdXREaXIsXG4gICAgICB7XG4gICAgICAgIC8vIFdoZW4gY2hlY2tWZXJzaW9uPXRydWUgaXQgbWVhbnMgdXNlcnMgY2FuJ3QgdXBncmFkZSB0aGVpciBDREsgdmVyc2lvbiBiZWZvcmVcbiAgICAgICAgLy8gd2UgZG8gYW5kIHRoZXkgcHVsbCBpbiB0aGUgbmV3IGFjdGlvbiB2ZXJzaW9uLiBQcm9iYWJseSBiZXR0ZXIgdG8gZGVmYXVsdCB0byBmYWxzZVxuICAgICAgICAvLyBhbmQgc2VlIHdoYXQgaGFwcGVuc1xuICAgICAgICBsb2FkQXNzZW1ibHlPcHRpb25zOiB7IGNoZWNrVmVyc2lvbjogZmFsc2UgfSxcbiAgICAgICAgZmFpbE9uTWlzc2luZ0NvbnRleHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3Qgc2VsZWN0b3I6IFN0YWNrU2VsZWN0b3IgPVxuICAgICAgdGhpcy5vcHRpb25zLnN0YWNrU2VsZWN0b3JQYXR0ZXJucy5sZW5ndGggPiAwXG4gICAgICAgID8ge1xuICAgICAgICAgICAgc3RyYXRlZ3k6IHRoaXMub3B0aW9uc1xuICAgICAgICAgICAgICAuc3RhY2tTZWxlY3Rpb25TdHJhdGVneSBhcyBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgcGF0dGVybnM6IHRoaXMub3B0aW9ucy5zdGFja1NlbGVjdG9yUGF0dGVybnMsXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHN0cmF0ZWd5OiB0aGlzLm9wdGlvbnNcbiAgICAgICAgICAgICAgLnN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgYXMgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSxcbiAgICAgICAgICB9O1xuICAgIGNvbnN0IGRpZmZSZXN1bHQgPSBhd2FpdCB0aGlzLm9wdGlvbnMudG9vbGtpdC5kaWZmKGFzc2VtYmx5U291cmNlLCB7XG4gICAgICBzdGFja3M6IHNlbGVjdG9yLFxuICAgICAgbWV0aG9kOiB0aGlzLm9wdGlvbnMuZGlmZk1ldGhvZCxcbiAgICB9KTtcblxuICAgIHRoaXMuX3RlbXBsYXRlRGlmZnMgPSBkaWZmUmVzdWx0O1xuICAgIGF3YWl0IHVzaW5nIGNsb3VkQXNzZW1ibHkgPSBhd2FpdCBhc3NlbWJseVNvdXJjZS5wcm9kdWNlKCk7XG4gICAgdGhpcy5wcm9jZXNzQXNzZW1ibHkoY2xvdWRBc3NlbWJseS5jbG91ZEFzc2VtYmx5KTtcbiAgICByZXR1cm4gZGlmZlJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGFsbCBvZiB0aGUgc3RhZ2VzLiBPbmNlIHRoaXMgaGFzIGJlZW4gcnVuXG4gICAqIHRoZSBjb21tZW50IGNhbiBiZSBjcmVhdGVkIHdpdGggYGNvbW1lbnRTdGFnZXMoKWBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwcm9jZXNzU3RhZ2VzKGlnbm9yZURlc3RydWN0aXZlQ2hhbmdlczogc3RyaW5nW10gPSBbXSkge1xuICAgIGlmICghdGhpcy5fdGVtcGxhdGVEaWZmcykge1xuICAgICAgYXdhaXQgdGhpcy5kaWZmQXBwKCk7XG4gICAgfVxuICAgIGRlYnVnKGBEaWZmczogJHtKU09OLnN0cmluZ2lmeSh0aGlzLl90ZW1wbGF0ZURpZmZzLCBudWxsLCAyKX1gKTtcbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHRoaXMuc3RhZ2VEaWZmSW5mbykge1xuICAgICAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFnZS5zdGFja3MpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7IGNvbW1lbnQsIGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMuZGlmZlN0YWNrKHN0YWNrKTtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEaWZmIGZvciBzdGFjayAke3N0YWNrLnN0YWNrTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoY29tbWVudCwgbnVsbCwgMil9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc3RhZ2VDb21tZW50c1tzdGFnZS5uYW1lXS5zdGFja0NvbW1lbnRzW3N0YWNrLnN0YWNrTmFtZV0ucHVzaChcbiAgICAgICAgICAgIC4uLmNvbW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWlnbm9yZURlc3RydWN0aXZlQ2hhbmdlcy5pbmNsdWRlcyhzdGFnZS5uYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlLm5hbWVdLmRlc3RydWN0aXZlQ2hhbmdlcyArPSBjaGFuZ2VzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBzdGFnZXM6ICcsIGUpO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbW1lbnRTdGFjayhcbiAgICBjb21tZW50czogQ29tbWVudHMsXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgY29tbWVudDogc3RyaW5nW10sXG4gICkge1xuICAgIGNvbnN0IGhhc2ggPSBtZDVIYXNoKFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB0aXRsZTogdGhpcy5vcHRpb25zLnRpdGxlLFxuICAgICAgICBzdGFnZU5hbWUsXG4gICAgICAgIHN0YWNrTmFtZSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgY29uc3Qgc3RhY2tDb21tZW50ID0gdGhpcy5nZXRDb21tZW50Rm9yU3RhY2soc3RhZ2VOYW1lLCBzdGFja05hbWUsIGNvbW1lbnQpO1xuICAgIGNvbnN0IHByZXZpb3VzID0gYXdhaXQgY29tbWVudHMuZmluZFByZXZpb3VzKGhhc2gpO1xuICAgIHRyeSB7XG4gICAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgICAgYXdhaXQgY29tbWVudHMudXBkYXRlQ29tbWVudChwcmV2aW91cywgaGFzaCwgc3RhY2tDb21tZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGNvbW1lbnRzLmNyZWF0ZUNvbW1lbnQoaGFzaCwgc3RhY2tDb21tZW50KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoXG4gICAgICAgIGUsXG4gICAgICAgIGBDb21tZW50IGZvciBzdGFjayAke3N0YWNrTmFtZX0gaXMgdG9vIGxvbmcsIHBsZWFzZSByZXBvcnQgdGhpcyBhcyBhIGJ1ZyBodHRwczovL2dpdGh1Yi5jb20vY29yeW1oYWxsL2Nkay1kaWZmLWFjdGlvbi9pc3N1ZXMvbmV3YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBjb21tZW50IGFsbCB0aGUgaW5kaXZpZHVhbCBzdGFja3NcbiAgICogRG8gaXQgaW4gcGFyYWxsZWwgc28gdGhhdCB3ZSBkb24ndCBzdG9wIGlmIG9uZSBvZiB0aGVtIGZhaWxzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNvbW1lbnRTdGFja3MoXG4gICAgY29tbWVudHM6IENvbW1lbnRzLFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWdlOiBTdGFnZUNvbW1lbnQsXG4gICkge1xuICAgIGNvbnN0IGNvbW1lbnRQcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW107XG4gICAgZm9yIChjb25zdCBbc3RhY2tOYW1lLCBjb21tZW50XSBvZiBPYmplY3QuZW50cmllcyhzdGFnZS5zdGFja0NvbW1lbnRzKSkge1xuICAgICAgY29tbWVudFByb21pc2VzLnB1c2goXG4gICAgICAgIHRoaXMuY29tbWVudFN0YWNrKGNvbW1lbnRzLCBzdGFnZU5hbWUsIHN0YWNrTmFtZSwgY29tbWVudCksXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCByZXMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoY29tbWVudFByb21pc2VzKTtcbiAgICBjb25zdCBmYWlsZWQgPSByZXNcbiAgICAgIC5maWx0ZXIoKHIpID0+IHIuc3RhdHVzID09PSAncmVqZWN0ZWQnKVxuICAgICAgLmZsYXRNYXAoKHIpID0+IHIucmVhc29uKTtcbiAgICBpZiAoZmFpbGVkICYmIGZhaWxlZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGNvbW1lbnRpbmcgc3RhY2tzOiBcXG4nICsgZmFpbGVkLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJvZHlUb29Mb25nRXJyb3IoZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGUucmVzcG9uc2UpIHtcbiAgICAgIGNvbnN0IGVyciA9IGUucmVzcG9uc2UgYXMgT2N0b2tpdFJlc3BvbnNlPFJlcXVlc3RFcnJvciwgbnVtYmVyPjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGVyci5kYXRhLmVycm9ycz8uc29tZSgoZXIpID0+XG4gICAgICAgICAgZXIubWVzc2FnZT8uaW5jbHVkZXMoJ0JvZHkgaXMgdG9vIGxvbmcnKSxcbiAgICAgICAgKSA/PyBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlOiBhbnksIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmJvZHlUb29Mb25nRXJyb3IoZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29tbWVudFN0YWdlKFxuICAgIGNvbW1lbnRzOiBDb21tZW50cyxcbiAgICBoYXNoOiBzdHJpbmcsXG4gICAgY29tbWVudDogc3RyaW5nW10sXG4gICkge1xuICAgIGNvbnN0IHByZXZpb3VzID0gYXdhaXQgY29tbWVudHMuZmluZFByZXZpb3VzKGhhc2gpO1xuICAgIGlmIChwcmV2aW91cykge1xuICAgICAgYXdhaXQgY29tbWVudHMudXBkYXRlQ29tbWVudChwcmV2aW91cywgaGFzaCwgY29tbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGNvbW1lbnRzLmNyZWF0ZUNvbW1lbnQoaGFzaCwgY29tbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgR2l0SHViIGNvbW1lbnQgZm9yIHRoZSBzdGFnZVxuICAgKiBUaGlzIHdpbGwgdHJ5IHRvIGNyZWF0ZSBhIHNpbmdsZSBjb21tZW50IHBlciBzdGFnZSwgYnV0IGlmIHRoZSBjb21tZW50XG4gICAqIGlzIHRvbyBsb25nIGl0IHdpbGwgY3JlYXRlIGEgY29tbWVudCBwZXIgc3RhY2tcbiAgICogQHBhcmFtIGNvbW1lbnRzIHRoZSBjb21tZW50cyBvYmplY3QgdG8gdXNlIHRvIGNyZWF0ZSB0aGUgY29tbWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbW1lbnRTdGFnZXMoY29tbWVudHM6IENvbW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBbc3RhZ2VOYW1lLCBjb21tZW50XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnN0YWdlQ29tbWVudHMpKSB7XG4gICAgICBjb25zdCBzdGFnZUNvbW1lbnQgPSB0aGlzLmdldENvbW1lbnRGb3JTdGFnZShzdGFnZU5hbWUpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb21tZW50U3RhZ2UoY29tbWVudHMsIGNvbW1lbnQuaGFzaCwgc3RhZ2VDb21tZW50KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5ib2R5VG9vTG9uZ0Vycm9yKGUpICYmXG4gICAgICAgICAgT2JqZWN0LmtleXMoY29tbWVudC5zdGFja0NvbW1lbnRzKS5sZW5ndGggPiAxXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWVudFN0YWNrcyhjb21tZW50cywgc3RhZ2VOYW1lLCBjb21tZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlcmUgYXJlIGRlc3RydWN0aXZlIGNoYW5nZXMgaW4gdGhpcyBzdGFnZVxuICAgKi9cbiAgcHVibGljIGdldCBoYXNEZXN0cnVjdGl2ZUNoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBjb21tZW50cyBvZiBPYmplY3QudmFsdWVzKHRoaXMuc3RhZ2VDb21tZW50cykpIHtcbiAgICAgIGlmIChjb21tZW50cy5kZXN0cnVjdGl2ZUNoYW5nZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGlmZlN0YWNrKFxuICAgIHN0YWNrOiBTdGFja0RpZmZJbmZvLFxuICApOiBQcm9taXNlPHsgY29tbWVudDogc3RyaW5nW107IGNoYW5nZXM6IG51bWJlciB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YWNrRGlmZiA9IG5ldyBTdGFja0RpZmYoc3RhY2ssIHRoaXMub3B0aW9ucy5hbGxvd2VkRGVzdHJveVR5cGVzKTtcbiAgICAgIGNvbnN0IHsgZGlmZiwgY2hhbmdlcyB9ID0gYXdhaXQgc3RhY2tEaWZmLmRpZmZTdGFjaygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29tbWVudDogdGhpcy5mb3JtYXRTdGFja0NvbW1lbnQoc3RhY2suc3RhY2tOYW1lLCBkaWZmLCBjaGFuZ2VzKSxcbiAgICAgICAgY2hhbmdlczogY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMubGVuZ3RoLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBlcmZvcm1pbmcgc3RhY2sgZGlmZjogJywgZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW1vamkoY2hhbmdlczogQ2hhbmdlRGV0YWlscyk6IHN0cmluZyB7XG4gICAgaWYgKGNoYW5nZXMuZGVzdHJ1Y3RpdmVDaGFuZ2VzLmxlbmd0aCB8fCBjaGFuZ2VzLnJlbW92ZWRSZXNvdXJjZXMpIHtcbiAgICAgIHJldHVybiAnOng6JztcbiAgICB9IGVsc2UgaWYgKGNoYW5nZXMudXBkYXRlZFJlc291cmNlcykge1xuICAgICAgcmV0dXJuICc6eWVsbG93X2NpcmNsZTonO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlcy5jcmVhdGVkUmVzb3VyY2VzKSB7XG4gICAgICByZXR1cm4gJzpzcGFya2xlOic7XG4gICAgfVxuICAgIHJldHVybiAnOndoaXRlX2NoZWNrX21hcms6JztcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U3RhY2tDb21tZW50KFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIGRpZmY6IFRlbXBsYXRlRGlmZixcbiAgICBjaGFuZ2VzOiBDaGFuZ2VEZXRhaWxzLFxuICApOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGVtb2ppID0gdGhpcy5nZXRFbW9qaShjaGFuZ2VzKTtcbiAgICBpZiAoZGlmZi5pc0VtcHR5KSB7XG4gICAgICBvdXRwdXQucHVzaChgTm8gQ2hhbmdlcyBmb3Igc3RhY2s6ICR7c3RhY2tOYW1lfSAke2Vtb2ppfWApO1xuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgb3V0cHV0LnB1c2goXG4gICAgICAuLi5bXG4gICAgICAgIGAjIyMjIERpZmYgZm9yIHN0YWNrOiAke3N0YWNrTmFtZX0gLSBgICtcbiAgICAgICAgICBgKioqJHtjaGFuZ2VzLmNyZWF0ZWRSZXNvdXJjZXN9IHRvIGFkZCwgJHtjaGFuZ2VzLnVwZGF0ZWRSZXNvdXJjZXN9IHRvIHVwZGF0ZSwgJHtjaGFuZ2VzLnJlbW92ZWRSZXNvdXJjZXN9IHRvIGRlc3Ryb3kqKiogIGAgK1xuICAgICAgICAgIGVtb2ppLFxuICAgICAgICAnPGRldGFpbHM+PHN1bW1hcnk+RGV0YWlsczwvc3VtbWFyeT4nLFxuICAgICAgICAnJyxcbiAgICAgIF0sXG4gICAgKTtcbiAgICBpZiAoY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMubGVuZ3RoKSB7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICAob3V0cHV0LnB1c2goJz4gWyFXQVJOSU5HXVxcbj4gKioqRGVzdHJ1Y3RpdmUgQ2hhbmdlcyoqKiA6YmFuZ2Jhbmc6JyksXG4gICAgICAgIGNoYW5nZXMuZGVzdHJ1Y3RpdmVDaGFuZ2VzLmZvckVhY2goKGNoYW5nZSkgPT4ge1xuICAgICAgICAgIG91dHB1dC5wdXNoKFxuICAgICAgICAgICAgYD4gKipTdGFjazogJHtjaGFuZ2Uuc3RhY2tOYW1lfSAtIFJlc291cmNlOiAke2NoYW5nZS5sb2dpY2FsSWR9IC0gSW1wYWN0OioqICoqKiR7Y2hhbmdlLmltcGFjdH0qKipgLFxuICAgICAgICAgICk7XG4gICAgICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGNvbnN0IHdyaXRhYmxlID0gbmV3IFN0cmluZ1dyaXRhYmxlKHt9KTtcbiAgICBmb3JtYXREaWZmZXJlbmNlcyh3cml0YWJsZSwgZGlmZik7XG5cbiAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgb3V0cHV0LnB1c2goJ2BgYHNoZWxsJyk7XG4gICAgb3V0cHV0LnB1c2god3JpdGFibGUuZGF0YSk7XG4gICAgb3V0cHV0LnB1c2goJ2BgYCcpO1xuICAgIG91dHB1dC5wdXNoKCc8L2RldGFpbHM+Jyk7XG4gICAgb3V0cHV0LnB1c2goJycpO1xuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cblxuICAvKipcbiAgICogT25seSB1c2VkIHdoZW4gdGhlIHN0YWdlIGNvbW1lbnQgaXMgdG9vIGxvbmcgYW5kIHdlIGFyZSBjcmVhdGluZ1xuICAgKiBhIHNlcGFyYXRlIGNvbW1lbnQgZm9yIGVhY2ggc3RhY2tcbiAgICovXG4gIHByaXZhdGUgZ2V0Q29tbWVudEZvclN0YWNrKFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIGNvbW1lbnQ6IHN0cmluZ1tdLFxuICApOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghY29tbWVudC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMudGl0bGUpIHtcbiAgICAgIG91dHB1dC5wdXNoKGAjIyAke3RoaXMub3B0aW9ucy50aXRsZX1gKTtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICB9XG4gICAgb3V0cHV0LnB1c2goYCMjIyBEaWZmIGZvciBzdGFjazogJHtzdGFnZU5hbWV9IC8gJHtzdGFja05hbWV9YCk7XG5cbiAgICByZXR1cm4gb3V0cHV0LmNvbmNhdChjb21tZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tbWVudEZvclN0YWdlKHN0YWdlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG91dHB1dDogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBzdGFnZUNvbW1lbnRzID0gdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlTmFtZV07XG4gICAgY29uc3QgY29tbWVudHMgPSBPYmplY3QudmFsdWVzKFxuICAgICAgdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlTmFtZV0uc3RhY2tDb21tZW50cyxcbiAgICApLmZsYXRNYXAoKHgpID0+IHgpO1xuICAgIGlmICghY29tbWVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLnRpdGxlKSB7XG4gICAgICBvdXRwdXQucHVzaChgIyMgJHt0aGlzLm9wdGlvbnMudGl0bGV9YCk7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgfVxuICAgIG91dHB1dC5wdXNoKGAjIyMgRGlmZiBmb3Igc3RhZ2U6ICR7c3RhZ2VOYW1lfWApO1xuXG4gICAgaWYgKHN0YWdlQ29tbWVudHMuZGVzdHJ1Y3RpdmVDaGFuZ2VzKSB7XG4gICAgICBvdXRwdXQucHVzaChcbiAgICAgICAgYD4gWyFXQVJOSU5HXVxcbj4gJHtzdGFnZUNvbW1lbnRzLmRlc3RydWN0aXZlQ2hhbmdlc30gRGVzdHJ1Y3RpdmUgQ2hhbmdlc2AsXG4gICAgICApO1xuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0LmNvbmNhdChjb21tZW50cyk7XG4gIH1cbn1cblxuY2xhc3MgU3RyaW5nV3JpdGFibGUgZXh0ZW5kcyBXcml0YWJsZSB7XG4gIHB1YmxpYyBkYXRhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlY29kZXI6IFN0cmluZ0RlY29kZXI7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFdyaXRhYmxlT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcigpO1xuICAgIHRoaXMuZGF0YSA9ICcnO1xuICB9XG5cbiAgX3dyaXRlKFxuICAgIGNodW5rOiBhbnksXG4gICAgZW5jb2Rpbmc6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkLFxuICApOiB2b2lkIHtcbiAgICBpZiAoZW5jb2RpbmcgPT09ICdidWZmZXInKSB7XG4gICAgICBjaHVuayA9IHRoaXMuX2RlY29kZXIud3JpdGUoY2h1bmspO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YSArPSBjaHVuaztcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgX2ZpbmFsKGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgKz0gdGhpcy5fZGVjb2Rlci5lbmQoKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1kNUhhc2godmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ21kNScpLnVwZGF0ZSh2YWwpLmRpZ2VzdCgnaGV4Jyk7XG59XG4iXX0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YWdlLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBQ2pDLG1DQUFtRDtBQUNuRCxtREFBK0M7QUFDL0Msd0NBQXNDO0FBRXRDLHNFQUErRTtBQVEvRSx5Q0FBMEU7QUFFMUUsaUNBQWdGO0FBcUNoRjs7O0dBR0c7QUFDSCxNQUFhLGlCQUFpQjtJQVE1QixZQUFvQixPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQVByRDs7V0FFRztRQUNhLGtCQUFhLEdBQTBDLEVBQUUsQ0FBQztJQUlsQixDQUFDO0lBRXpELElBQVksU0FBUztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlLENBQUMsYUFBNEI7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQ0FBc0IsQ0FDekMsYUFBYSxFQUNiLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUI7Z0JBQzFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVksYUFBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFZLGFBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7Z0JBQ3pCLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3JCLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ3JCLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUMsRUFDRCxFQUF1QyxDQUN4QztnQkFDRCxJQUFJLEVBQUUsT0FBTyxDQUNYLElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO29CQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO29CQUN6QixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNwQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTt3QkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzs0QkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7eUJBQ2hCLENBQUMsQ0FBQzt3QkFDSCxPQUFPLElBQUksQ0FBQztvQkFDZCxDQUFDLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUE2QixDQUMxQztpQkFDRixDQUFDLENBQ0g7YUFDRixDQUFDO1lBQ0YsT0FBTztnQkFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FDYixzREFBc0QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUNuRSxDQUFDO29CQUNKLENBQUM7b0JBQ0QsT0FBTzt3QkFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7d0JBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7cUJBQ3JDLENBQUM7Z0JBQ0osQ0FBQyxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTzs7O1lBQ2xCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQ3JFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUN0QjtnQkFDRSwrRUFBK0U7Z0JBQy9FLHFGQUFxRjtnQkFDckYsdUJBQXVCO2dCQUN2QixtQkFBbUIsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7Z0JBQzVDLG9CQUFvQixFQUFFLEtBQUs7YUFDNUIsQ0FDRixDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDO29CQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTzt5QkFDbkIsc0JBQWdEO29CQUNuRCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUI7aUJBQzdDO2dCQUNILENBQUMsQ0FBQztvQkFDRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU87eUJBQ25CLHNCQUFnRDtpQkFDcEQsQ0FBQztZQUNSLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDakUsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7YUFDaEMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUM7WUFDakMsTUFBWSxhQUFhLGtDQUFHLE1BQU0sY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFBLENBQUM7WUFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEQsT0FBTyxVQUFVLENBQUM7Ozs7Ozs7Ozs7O0tBQ25CO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGFBQWEsQ0FBQywyQkFBcUMsRUFBRTtRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFBLFlBQUssRUFBQyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUM7b0JBQ0gsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3pELElBQUEsWUFBSyxFQUNILGtCQUFrQixLQUFLLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUN6RSxDQUFDO29CQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUNoRSxHQUFHLE9BQU8sQ0FDWCxDQUFDO29CQUNGLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQztvQkFDL0QsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7b0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzlDLE1BQU0sQ0FBQyxDQUFDO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUN4QixRQUFrQixFQUNsQixTQUFpQixFQUNqQixTQUFpQixFQUNqQixPQUFpQjtRQUVqQixNQUFNLElBQUksR0FBRyxPQUFPLENBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3pCLFNBQVM7WUFDVCxTQUFTO1NBQ1YsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM3RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FDZCxDQUFDLEVBQ0QscUJBQXFCLFNBQVMsbUdBQW1HLENBQ2xJLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxhQUFhLENBQ3pCLFFBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLEtBQW1CO1FBRW5CLE1BQU0sZUFBZSxHQUFvQixFQUFFLENBQUM7UUFDNUMsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDdkUsZUFBZSxDQUFDLElBQUksQ0FDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FDM0QsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEQsTUFBTSxNQUFNLEdBQUcsR0FBRzthQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUM7YUFDdEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLENBQU07UUFDN0IsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBaUQsQ0FBQztZQUNoRSxPQUFPLENBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDM0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FDekMsSUFBSSxLQUFLLENBQ1gsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxXQUFXLENBQUMsQ0FBTSxFQUFFLE9BQWU7UUFDekMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUN4QixRQUFrQixFQUNsQixJQUFZLEVBQ1osT0FBaUI7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBa0I7UUFDM0MsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDdEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7Z0JBQ2hCLElBQ0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztvQkFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDN0MsQ0FBQztvQkFDRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDekQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sQ0FBQyxDQUFDO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcscUJBQXFCO1FBQzlCLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN6RCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSyxDQUFDLFNBQVMsQ0FDckIsS0FBb0I7UUFFcEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxnQkFBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDekUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO2dCQUNoRSxPQUFPLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU07YUFDM0MsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEQsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFzQjtRQUNyQyxxRUFBcUU7UUFDckUscUVBQXFFO1FBQ3JFLHFFQUFxRTtRQUNyRSxzRUFBc0U7UUFDdEUsSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDaEUsT0FBTyxpQkFBaUIsQ0FBQztRQUMzQixDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRU8sa0JBQWtCLENBQ3hCLFNBQWlCLEVBQ2pCLElBQWtCLEVBQ2xCLE9BQXNCO1FBRXRCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUNULEdBQUc7WUFDRCx3QkFBd0IsU0FBUyxLQUFLO2dCQUNwQyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsWUFBWSxPQUFPLENBQUMsZ0JBQWdCLGVBQWUsT0FBTyxDQUFDLGdCQUFnQixrQkFBa0I7Z0JBQzNILEtBQUs7WUFDUCxxQ0FBcUM7WUFDckMsRUFBRTtTQUNILENBQ0YsQ0FBQztRQUNGLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxDQUFDO2dCQUNsRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsY0FBYyxNQUFNLENBQUMsU0FBUyxnQkFBZ0IsTUFBTSxDQUFDLFNBQVMsbUJBQW1CLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FDcEcsQ0FBQztvQkFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUEsdUNBQWlCLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCLENBQ3hCLFNBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLE9BQWlCO1FBRWpCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixTQUFTLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQztRQUUvRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFNBQWlCO1FBQzFDLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUM1QyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVoRCxJQUFJLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsbUJBQW1CLGFBQWEsQ0FBQyxrQkFBa0Isc0JBQXNCLENBQzFFLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBdFlELDhDQXNZQztBQUVELE1BQU0sY0FBZSxTQUFRLGlCQUFRO0lBR25DLFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDhCQUFhLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQVUsRUFDVixRQUFnQixFQUNoQixRQUF3QztRQUV4QyxJQUFJLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMxQixLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO1FBQ25CLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUF3QztRQUM3QyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakMsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFFRCxTQUFTLE9BQU8sQ0FBQyxHQUFXO0lBQzFCLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFdyaXRhYmxlLCBXcml0YWJsZU9wdGlvbnMgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgU3RyaW5nRGVjb2RlciB9IGZyb20gJ3N0cmluZ19kZWNvZGVyJztcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnQGFjdGlvbnMvY29yZSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFRlbXBsYXRlRGlmZiwgZm9ybWF0RGlmZmVyZW5jZXMgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB7XG4gIERpZmZNZXRob2QsXG4gIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3ksXG4gIFN0YWNrU2VsZWN0b3IsXG4gIFRvb2xraXQsXG59IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEVycm9yLCBPY3Rva2l0UmVzcG9uc2UgfSBmcm9tICdAb2N0b2tpdC90eXBlcyc7XG5pbXBvcnQgeyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyLCBTdGFja0luZm8sIFN0YWdlSW5mbyB9IGZyb20gJy4vYXNzZW1ibHknO1xuaW1wb3J0IHsgQ29tbWVudHMgfSBmcm9tICcuL2NvbW1lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0YWlscywgU3RhY2tEaWZmLCBTdGFja0RpZmZJbmZvLCBTdGFnZURpZmZJbmZvIH0gZnJvbSAnLi9kaWZmJztcbmltcG9ydCB7IElucHV0cyB9IGZyb20gJy4vaW5wdXRzJztcblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBuZWVkZWQgdG8gbWFrZSBhIGNvbW1lbnQgZm9yIGEgQ0RLIFN0YWdlXG4gKi9cbmludGVyZmFjZSBTdGFnZUNvbW1lbnQge1xuICAvKipcbiAgICogVGhlIGZ1bGwgY29tbWVudCBmb3IgZWFjaCBzdGFjay4gVGhlIGxpc3Qgd2lsbCBiZSBqb2luZWQgd2l0aCBcXG5cbiAgICovXG4gIHN0YWNrQ29tbWVudHM6IHsgW3N0YWNrTmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBjb21tZW50XG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBoYXNoIGZvciB0aGUgc3RhZ2UgY29tbWVudFxuICAgKiBUaGlzIHdpbGwgYmUgdXNlZCB0byBsb29rdXAgdGhlIHN0YWdlIGNvbW1lbnQgb24gdGhlIFBSXG4gICAqIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJ3cml0dGVuXG4gICAqL1xuICBoYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGVzdHJ1Y3RpdmUgY2hhbmdlcyBpbiB0aGlzIHN0YWdlXG4gICAqL1xuICBkZXN0cnVjdGl2ZUNoYW5nZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseVByb2Nlc3Nvck9wdGlvbnNcbiAgZXh0ZW5kcyBPbWl0PElucHV0cywgJ2dpdGh1YlRva2VuJyB8ICdkaWZmTWV0aG9kJz4ge1xuICBkaWZmTWV0aG9kOiBEaWZmTWV0aG9kO1xuICB0b29sa2l0OiBUb29sa2l0O1xuICBkZWZhdWx0U3RhZ2VEaXNwbGF5TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFN0YWdlUHJvY2Vzc29yIHByb2Nlc3NlcyBhIENESyBzdGFnZSBhbmQgY3JlYXRlcyBhIGNvbW1lbnQgb24gdGhlIEdpdEh1YiBQUlxuICogZGV0YWlsaW5nIHRoZSBzdGFjayBkaWZmc1xuICovXG5leHBvcnQgY2xhc3MgQXNzZW1ibHlQcm9jZXNzb3Ige1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhZ2VDb21tZW50czogeyBbc3RhZ2VOYW1lOiBzdHJpbmddOiBTdGFnZUNvbW1lbnQgfSA9IHt9O1xuICBwcml2YXRlIF9zdGFnZUluZm8/OiBTdGFnZUluZm9bXTtcbiAgcHJpdmF0ZSBfc3RhZ2VzPzogU3RhZ2VEaWZmSW5mb1tdO1xuICBwcml2YXRlIF90ZW1wbGF0ZURpZmZzPzogeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBUZW1wbGF0ZURpZmYgfTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBBc3NlbWJseVByb2Nlc3Nvck9wdGlvbnMpIHt9XG5cbiAgcHJpdmF0ZSBnZXQgc3RhZ2VJbmZvKCk6IFN0YWdlSW5mb1tdIHtcbiAgICBpZiAoIXRoaXMuX3N0YWdlSW5mbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGFnZSBpbmZvIGhhcyBub3QgYmVlbiBjcmVhdGVkIHlldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3RhZ2VJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQXNzZW1ibHkoY2xvdWRBc3NlbWJseTogQ2xvdWRBc3NlbWJseSkge1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gbmV3IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIoXG4gICAgICBjbG91ZEFzc2VtYmx5LFxuICAgICAgdGhpcy50ZW1wbGF0ZURpZmZzLFxuICAgICk7XG4gICAgdGhpcy5fc3RhZ2VJbmZvID0gYXNzZW1ibHkuc3RhZ2VzO1xuICAgIGlmIChhc3NlbWJseS5zdGFja3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN0YWdlSW5mby5wdXNoKHtcbiAgICAgICAgbmFtZTogdGhpcy5vcHRpb25zLmRlZmF1bHRTdGFnZURpc3BsYXlOYW1lLFxuICAgICAgICBzdGFja3M6IGFzc2VtYmx5LnN0YWNrcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRlbXBsYXRlRGlmZnMoKTogeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBUZW1wbGF0ZURpZmYgfSB7XG4gICAgaWYgKCF0aGlzLl90ZW1wbGF0ZURpZmZzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RlbXBsYXRlIGRpZmZzIGhhdmUgbm90IGJlZW4gY3JlYXRlZCB5ZXQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlRGlmZnM7XG4gIH1cblxuICBwcml2YXRlIGdldCBzdGFnZURpZmZJbmZvKCk6IFN0YWdlRGlmZkluZm9bXSB7XG4gICAgaWYgKHRoaXMuX3N0YWdlcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3N0YWdlcztcbiAgICB9XG4gICAgdGhpcy5fc3RhZ2VzID0gdGhpcy5zdGFnZUluZm8uZmxhdE1hcCgoc3RhZ2UpID0+IHtcbiAgICAgIHRoaXMuc3RhZ2VDb21tZW50c1tzdGFnZS5uYW1lXSA9IHtcbiAgICAgICAgdGl0bGU6IHRoaXMub3B0aW9ucy50aXRsZSxcbiAgICAgICAgZGVzdHJ1Y3RpdmVDaGFuZ2VzOiAwLFxuICAgICAgICBzdGFja0NvbW1lbnRzOiBzdGFnZS5zdGFja3MucmVkdWNlKFxuICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICBwcmV2W2N1cnIubmFtZV0gPSBbXTtcbiAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgIH0sXG4gICAgICAgICAge30gYXMgeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICAgICAgICApLFxuICAgICAgICBoYXNoOiBtZDVIYXNoKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHN0YWdlTmFtZTogc3RhZ2UubmFtZSxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLm9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgICAuLi5zdGFnZS5zdGFja3MucmVkdWNlKFxuICAgICAgICAgICAgICAocHJldiwgY3VycikgPT4ge1xuICAgICAgICAgICAgICAgIHByZXYuc3RhY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgbmFtZTogY3Vyci5uYW1lLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHN0YWNrczogW10gfSBhcyB7IHN0YWNrczogU3RhY2tJbmZvW10gfSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogc3RhZ2UubmFtZSxcbiAgICAgICAgc3RhY2tzOiBzdGFnZS5zdGFja3MubWFwKChzdGFjaykgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZURpZmZzW3N0YWNrLm5hbWVdKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBUZW1wbGF0ZSBkaWZmcyBoYXZlIG5vdCBiZWVuIGNyZWF0ZWQgeWV0IGZvciBzdGFjayAke3N0YWNrLm5hbWV9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFja05hbWU6IHN0YWNrLm5hbWUsXG4gICAgICAgICAgICBkaWZmOiB0aGlzLnRlbXBsYXRlRGlmZnNbc3RhY2submFtZV0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9zdGFnZXM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlmZkFwcCgpOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9PiB7XG4gICAgY29uc3QgYXNzZW1ibHlTb3VyY2UgPSBhd2FpdCB0aGlzLm9wdGlvbnMudG9vbGtpdC5mcm9tQXNzZW1ibHlEaXJlY3RvcnkoXG4gICAgICB0aGlzLm9wdGlvbnMuY2RrT3V0RGlyLFxuICAgICAge1xuICAgICAgICAvLyBXaGVuIGNoZWNrVmVyc2lvbj10cnVlIGl0IG1lYW5zIHVzZXJzIGNhbid0IHVwZ3JhZGUgdGhlaXIgQ0RLIHZlcnNpb24gYmVmb3JlXG4gICAgICAgIC8vIHdlIGRvIGFuZCB0aGV5IHB1bGwgaW4gdGhlIG5ldyBhY3Rpb24gdmVyc2lvbi4gUHJvYmFibHkgYmV0dGVyIHRvIGRlZmF1bHQgdG8gZmFsc2VcbiAgICAgICAgLy8gYW5kIHNlZSB3aGF0IGhhcHBlbnNcbiAgICAgICAgbG9hZEFzc2VtYmx5T3B0aW9uczogeyBjaGVja1ZlcnNpb246IGZhbHNlIH0sXG4gICAgICAgIGZhaWxPbk1pc3NpbmdDb250ZXh0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdG9yOiBTdGFja1NlbGVjdG9yID1cbiAgICAgIHRoaXMub3B0aW9ucy5zdGFja1NlbGVjdG9yUGF0dGVybnMubGVuZ3RoID4gMFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHN0cmF0ZWd5OiB0aGlzLm9wdGlvbnNcbiAgICAgICAgICAgICAgLnN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgYXMgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSxcbiAgICAgICAgICAgIHBhdHRlcm5zOiB0aGlzLm9wdGlvbnMuc3RhY2tTZWxlY3RvclBhdHRlcm5zLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBzdHJhdGVneTogdGhpcy5vcHRpb25zXG4gICAgICAgICAgICAgIC5zdGFja1NlbGVjdGlvblN0cmF0ZWd5IGFzIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgfTtcbiAgICBjb25zdCBkaWZmUmVzdWx0ID0gYXdhaXQgdGhpcy5vcHRpb25zLnRvb2xraXQuZGlmZihhc3NlbWJseVNvdXJjZSwge1xuICAgICAgc3RhY2tzOiBzZWxlY3RvcixcbiAgICAgIG1ldGhvZDogdGhpcy5vcHRpb25zLmRpZmZNZXRob2QsXG4gICAgfSk7XG5cbiAgICB0aGlzLl90ZW1wbGF0ZURpZmZzID0gZGlmZlJlc3VsdDtcbiAgICBhd2FpdCB1c2luZyBjbG91ZEFzc2VtYmx5ID0gYXdhaXQgYXNzZW1ibHlTb3VyY2UucHJvZHVjZSgpO1xuICAgIHRoaXMucHJvY2Vzc0Fzc2VtYmx5KGNsb3VkQXNzZW1ibHkuY2xvdWRBc3NlbWJseSk7XG4gICAgcmV0dXJuIGRpZmZSZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhbGwgb2YgdGhlIHN0YWdlcy4gT25jZSB0aGlzIGhhcyBiZWVuIHJ1blxuICAgKiB0aGUgY29tbWVudCBjYW4gYmUgY3JlYXRlZCB3aXRoIGBjb21tZW50U3RhZ2VzKClgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcHJvY2Vzc1N0YWdlcyhpZ25vcmVEZXN0cnVjdGl2ZUNoYW5nZXM6IHN0cmluZ1tdID0gW10pIHtcbiAgICBpZiAoIXRoaXMuX3RlbXBsYXRlRGlmZnMpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGlmZkFwcCgpO1xuICAgIH1cbiAgICBkZWJ1ZyhgRGlmZnM6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5fdGVtcGxhdGVEaWZmcywgbnVsbCwgMil9YCk7XG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiB0aGlzLnN0YWdlRGlmZkluZm8pIHtcbiAgICAgIGZvciAoY29uc3Qgc3RhY2sgb2Ygc3RhZ2Uuc3RhY2tzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgeyBjb21tZW50LCBjaGFuZ2VzIH0gPSBhd2FpdCB0aGlzLmRpZmZTdGFjayhzdGFjayk7XG4gICAgICAgICAgZGVidWcoXG4gICAgICAgICAgICBgRGlmZiBmb3Igc3RhY2sgJHtzdGFjay5zdGFja05hbWV9OiAke0pTT04uc3RyaW5naWZ5KGNvbW1lbnQsIG51bGwsIDIpfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnN0YWdlQ29tbWVudHNbc3RhZ2UubmFtZV0uc3RhY2tDb21tZW50c1tzdGFjay5zdGFja05hbWVdLnB1c2goXG4gICAgICAgICAgICAuLi5jb21tZW50LFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKCFpZ25vcmVEZXN0cnVjdGl2ZUNoYW5nZXMuaW5jbHVkZXMoc3RhZ2UubmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhZ2VDb21tZW50c1tzdGFnZS5uYW1lXS5kZXN0cnVjdGl2ZUNoYW5nZXMgKz0gY2hhbmdlcztcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByb2Nlc3Npbmcgc3RhZ2VzOiAnLCBlKTtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb21tZW50U3RhY2soXG4gICAgY29tbWVudHM6IENvbW1lbnRzLFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIGNvbW1lbnQ6IHN0cmluZ1tdLFxuICApIHtcbiAgICBjb25zdCBoYXNoID0gbWQ1SGFzaChcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdGl0bGU6IHRoaXMub3B0aW9ucy50aXRsZSxcbiAgICAgICAgc3RhZ2VOYW1lLFxuICAgICAgICBzdGFja05hbWUsXG4gICAgICB9KSxcbiAgICApO1xuICAgIGNvbnN0IHN0YWNrQ29tbWVudCA9IHRoaXMuZ2V0Q29tbWVudEZvclN0YWNrKHN0YWdlTmFtZSwgc3RhY2tOYW1lLCBjb21tZW50KTtcbiAgICBjb25zdCBwcmV2aW91cyA9IGF3YWl0IGNvbW1lbnRzLmZpbmRQcmV2aW91cyhoYXNoKTtcbiAgICB0cnkge1xuICAgICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICAgIGF3YWl0IGNvbW1lbnRzLnVwZGF0ZUNvbW1lbnQocHJldmlvdXMsIGhhc2gsIHN0YWNrQ29tbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBjb21tZW50cy5jcmVhdGVDb21tZW50KGhhc2gsIHN0YWNrQ29tbWVudCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aGlzLmhhbmRsZUVycm9yKFxuICAgICAgICBlLFxuICAgICAgICBgQ29tbWVudCBmb3Igc3RhY2sgJHtzdGFja05hbWV9IGlzIHRvbyBsb25nLCBwbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBidWcgaHR0cHM6Ly9naXRodWIuY29tL2NvcnltaGFsbC9jZGstZGlmZi1hY3Rpb24vaXNzdWVzL25ld2AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gY29tbWVudCBhbGwgdGhlIGluZGl2aWR1YWwgc3RhY2tzXG4gICAqIERvIGl0IGluIHBhcmFsbGVsIHNvIHRoYXQgd2UgZG9uJ3Qgc3RvcCBpZiBvbmUgb2YgdGhlbSBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjb21tZW50U3RhY2tzKFxuICAgIGNvbW1lbnRzOiBDb21tZW50cyxcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICBzdGFnZTogU3RhZ2VDb21tZW50LFxuICApIHtcbiAgICBjb25zdCBjb21tZW50UHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW3N0YWNrTmFtZSwgY29tbWVudF0gb2YgT2JqZWN0LmVudHJpZXMoc3RhZ2Uuc3RhY2tDb21tZW50cykpIHtcbiAgICAgIGNvbW1lbnRQcm9taXNlcy5wdXNoKFxuICAgICAgICB0aGlzLmNvbW1lbnRTdGFjayhjb21tZW50cywgc3RhZ2VOYW1lLCBzdGFja05hbWUsIGNvbW1lbnQpLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgcmVzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKGNvbW1lbnRQcm9taXNlcyk7XG4gICAgY29uc3QgZmFpbGVkID0gcmVzXG4gICAgICAuZmlsdGVyKChyKSA9PiByLnN0YXR1cyA9PT0gJ3JlamVjdGVkJylcbiAgICAgIC5mbGF0TWFwKChyKSA9PiByLnJlYXNvbik7XG4gICAgaWYgKGZhaWxlZCAmJiBmYWlsZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBjb21tZW50aW5nIHN0YWNrczogXFxuJyArIGZhaWxlZC5qb2luKCdcXG4nKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBib2R5VG9vTG9uZ0Vycm9yKGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChlLnJlc3BvbnNlKSB7XG4gICAgICBjb25zdCBlcnIgPSBlLnJlc3BvbnNlIGFzIE9jdG9raXRSZXNwb25zZTxSZXF1ZXN0RXJyb3IsIG51bWJlcj47XG4gICAgICByZXR1cm4gKFxuICAgICAgICBlcnIuZGF0YS5lcnJvcnM/LnNvbWUoKGVyKSA9PlxuICAgICAgICAgIGVyLm1lc3NhZ2U/LmluY2x1ZGVzKCdCb2R5IGlzIHRvbyBsb25nJyksXG4gICAgICAgICkgPz8gZmFsc2VcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZTogYW55LCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5ib2R5VG9vTG9uZ0Vycm9yKGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbW1lbnRTdGFnZShcbiAgICBjb21tZW50czogQ29tbWVudHMsXG4gICAgaGFzaDogc3RyaW5nLFxuICAgIGNvbW1lbnQ6IHN0cmluZ1tdLFxuICApIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IGF3YWl0IGNvbW1lbnRzLmZpbmRQcmV2aW91cyhoYXNoKTtcbiAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgIGF3YWl0IGNvbW1lbnRzLnVwZGF0ZUNvbW1lbnQocHJldmlvdXMsIGhhc2gsIGNvbW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBjb21tZW50cy5jcmVhdGVDb21tZW50KGhhc2gsIGNvbW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIEdpdEh1YiBjb21tZW50IGZvciB0aGUgc3RhZ2VcbiAgICogVGhpcyB3aWxsIHRyeSB0byBjcmVhdGUgYSBzaW5nbGUgY29tbWVudCBwZXIgc3RhZ2UsIGJ1dCBpZiB0aGUgY29tbWVudFxuICAgKiBpcyB0b28gbG9uZyBpdCB3aWxsIGNyZWF0ZSBhIGNvbW1lbnQgcGVyIHN0YWNrXG4gICAqIEBwYXJhbSBjb21tZW50cyB0aGUgY29tbWVudHMgb2JqZWN0IHRvIHVzZSB0byBjcmVhdGUgdGhlIGNvbW1lbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjb21tZW50U3RhZ2VzKGNvbW1lbnRzOiBDb21tZW50cykge1xuICAgIGZvciAoY29uc3QgW3N0YWdlTmFtZSwgY29tbWVudF0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5zdGFnZUNvbW1lbnRzKSkge1xuICAgICAgY29uc3Qgc3RhZ2VDb21tZW50ID0gdGhpcy5nZXRDb21tZW50Rm9yU3RhZ2Uoc3RhZ2VOYW1lKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29tbWVudFN0YWdlKGNvbW1lbnRzLCBjb21tZW50Lmhhc2gsIHN0YWdlQ29tbWVudCk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuYm9keVRvb0xvbmdFcnJvcihlKSAmJlxuICAgICAgICAgIE9iamVjdC5rZXlzKGNvbW1lbnQuc3RhY2tDb21tZW50cykubGVuZ3RoID4gMVxuICAgICAgICApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbW1lbnRTdGFja3MoY29tbWVudHMsIHN0YWdlTmFtZSwgY29tbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBkZXN0cnVjdGl2ZSBjaGFuZ2VzIGluIHRoaXMgc3RhZ2VcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzRGVzdHJ1Y3RpdmVDaGFuZ2VzKCk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgY29tbWVudHMgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnN0YWdlQ29tbWVudHMpKSB7XG4gICAgICBpZiAoY29tbWVudHMuZGVzdHJ1Y3RpdmVDaGFuZ2VzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRpZmZTdGFjayhcbiAgICBzdGFjazogU3RhY2tEaWZmSW5mbyxcbiAgKTogUHJvbWlzZTx7IGNvbW1lbnQ6IHN0cmluZ1tdOyBjaGFuZ2VzOiBudW1iZXIgfT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFja0RpZmYgPSBuZXcgU3RhY2tEaWZmKHN0YWNrLCB0aGlzLm9wdGlvbnMuYWxsb3dlZERlc3Ryb3lUeXBlcyk7XG4gICAgICBjb25zdCB7IGRpZmYsIGNoYW5nZXMgfSA9IGF3YWl0IHN0YWNrRGlmZi5kaWZmU3RhY2soKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbW1lbnQ6IHRoaXMuZm9ybWF0U3RhY2tDb21tZW50KHN0YWNrLnN0YWNrTmFtZSwgZGlmZiwgY2hhbmdlcyksXG4gICAgICAgIGNoYW5nZXM6IGNoYW5nZXMuZGVzdHJ1Y3RpdmVDaGFuZ2VzLmxlbmd0aCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwZXJmb3JtaW5nIHN0YWNrIGRpZmY6ICcsIGUpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEVtb2ppKGNoYW5nZXM6IENoYW5nZURldGFpbHMpOiBzdHJpbmcge1xuICAgIC8vIE9ubHkgZmxhZyB0aGUgc3RhY2sgd2l0aCA6eDogZm9yIGRlc3RydWN0aXZlIGNoYW5nZXMgdGhhdCBzdXJ2aXZlZFxuICAgIC8vIGFsbG93ZWREZXN0cm95VHlwZXMgZmlsdGVyaW5nLiBSZW1vdmFscyBvZiBhbGxvd2VkIHR5cGVzIChlLmcuIHRoZVxuICAgIC8vIEFXUzo6QXBpR2F0ZXdheTo6RGVwbG95bWVudCByb2xsIENESyBwZXJmb3JtcyBvbiBldmVyeSBBUEkgY2hhbmdlKVxuICAgIC8vIGFyZSByb3V0aW5lIGNodXJuIGFuZCByZW5kZXIgYXMgOnllbGxvd19jaXJjbGU6IGxpa2Ugb3RoZXIgdXBkYXRlcy5cbiAgICBpZiAoY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJzp4Oic7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzLnVwZGF0ZWRSZXNvdXJjZXMgfHwgY2hhbmdlcy5yZW1vdmVkUmVzb3VyY2VzKSB7XG4gICAgICByZXR1cm4gJzp5ZWxsb3dfY2lyY2xlOic7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzLmNyZWF0ZWRSZXNvdXJjZXMpIHtcbiAgICAgIHJldHVybiAnOnNwYXJrbGU6JztcbiAgICB9XG4gICAgcmV0dXJuICc6d2hpdGVfY2hlY2tfbWFyazonO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRTdGFja0NvbW1lbnQoXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgZGlmZjogVGVtcGxhdGVEaWZmLFxuICAgIGNoYW5nZXM6IENoYW5nZURldGFpbHMsXG4gICk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBvdXRwdXQ6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgZW1vamkgPSB0aGlzLmdldEVtb2ppKGNoYW5nZXMpO1xuICAgIGlmIChkaWZmLmlzRW1wdHkpIHtcbiAgICAgIG91dHB1dC5wdXNoKGBObyBDaGFuZ2VzIGZvciBzdGFjazogJHtzdGFja05hbWV9ICR7ZW1vaml9YCk7XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBvdXRwdXQucHVzaChcbiAgICAgIC4uLltcbiAgICAgICAgYCMjIyMgRGlmZiBmb3Igc3RhY2s6ICR7c3RhY2tOYW1lfSAtIGAgK1xuICAgICAgICAgIGAqKioke2NoYW5nZXMuY3JlYXRlZFJlc291cmNlc30gdG8gYWRkLCAke2NoYW5nZXMudXBkYXRlZFJlc291cmNlc30gdG8gdXBkYXRlLCAke2NoYW5nZXMucmVtb3ZlZFJlc291cmNlc30gdG8gZGVzdHJveSoqKiAgYCArXG4gICAgICAgICAgZW1vamksXG4gICAgICAgICc8ZGV0YWlscz48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PicsXG4gICAgICAgICcnLFxuICAgICAgXSxcbiAgICApO1xuICAgIGlmIChjaGFuZ2VzLmRlc3RydWN0aXZlQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgIChvdXRwdXQucHVzaCgnPiBbIVdBUk5JTkddXFxuPiAqKipEZXN0cnVjdGl2ZSBDaGFuZ2VzKioqIDpiYW5nYmFuZzonKSxcbiAgICAgICAgY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMuZm9yRWFjaCgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgb3V0cHV0LnB1c2goXG4gICAgICAgICAgICBgPiAqKlN0YWNrOiAke2NoYW5nZS5zdGFja05hbWV9IC0gUmVzb3VyY2U6ICR7Y2hhbmdlLmxvZ2ljYWxJZH0gLSBJbXBhY3Q6KiogKioqJHtjaGFuZ2UuaW1wYWN0fSoqKmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgY29uc3Qgd3JpdGFibGUgPSBuZXcgU3RyaW5nV3JpdGFibGUoe30pO1xuICAgIGZvcm1hdERpZmZlcmVuY2VzKHdyaXRhYmxlLCBkaWZmKTtcblxuICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICBvdXRwdXQucHVzaCgnYGBgc2hlbGwnKTtcbiAgICBvdXRwdXQucHVzaCh3cml0YWJsZS5kYXRhKTtcbiAgICBvdXRwdXQucHVzaCgnYGBgJyk7XG4gICAgb3V0cHV0LnB1c2goJzwvZGV0YWlscz4nKTtcbiAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0aGUgc3RhZ2UgY29tbWVudCBpcyB0b28gbG9uZyBhbmQgd2UgYXJlIGNyZWF0aW5nXG4gICAqIGEgc2VwYXJhdGUgY29tbWVudCBmb3IgZWFjaCBzdGFja1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb21tZW50Rm9yU3RhY2soXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgY29tbWVudDogc3RyaW5nW10sXG4gICk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBvdXRwdXQ6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFjb21tZW50Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucy50aXRsZSkge1xuICAgICAgb3V0cHV0LnB1c2goYCMjICR7dGhpcy5vcHRpb25zLnRpdGxlfWApO1xuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgIH1cbiAgICBvdXRwdXQucHVzaChgIyMjIERpZmYgZm9yIHN0YWNrOiAke3N0YWdlTmFtZX0gLyAke3N0YWNrTmFtZX1gKTtcblxuICAgIHJldHVybiBvdXRwdXQuY29uY2F0KGNvbW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21tZW50Rm9yU3RhZ2Uoc3RhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0YWdlQ29tbWVudHMgPSB0aGlzLnN0YWdlQ29tbWVudHNbc3RhZ2VOYW1lXTtcbiAgICBjb25zdCBjb21tZW50cyA9IE9iamVjdC52YWx1ZXMoXG4gICAgICB0aGlzLnN0YWdlQ29tbWVudHNbc3RhZ2VOYW1lXS5zdGFja0NvbW1lbnRzLFxuICAgICkuZmxhdE1hcCgoeCkgPT4geCk7XG4gICAgaWYgKCFjb21tZW50cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMudGl0bGUpIHtcbiAgICAgIG91dHB1dC5wdXNoKGAjIyAke3RoaXMub3B0aW9ucy50aXRsZX1gKTtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICB9XG4gICAgb3V0cHV0LnB1c2goYCMjIyBEaWZmIGZvciBzdGFnZTogJHtzdGFnZU5hbWV9YCk7XG5cbiAgICBpZiAoc3RhZ2VDb21tZW50cy5kZXN0cnVjdGl2ZUNoYW5nZXMpIHtcbiAgICAgIG91dHB1dC5wdXNoKFxuICAgICAgICBgPiBbIVdBUk5JTkddXFxuPiAke3N0YWdlQ29tbWVudHMuZGVzdHJ1Y3RpdmVDaGFuZ2VzfSBEZXN0cnVjdGl2ZSBDaGFuZ2VzYCxcbiAgICAgICk7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQuY29uY2F0KGNvbW1lbnRzKTtcbiAgfVxufVxuXG5jbGFzcyBTdHJpbmdXcml0YWJsZSBleHRlbmRzIFdyaXRhYmxlIHtcbiAgcHVibGljIGRhdGE6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVjb2RlcjogU3RyaW5nRGVjb2RlcjtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogV3JpdGFibGVPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gICAgdGhpcy5fZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKCk7XG4gICAgdGhpcy5kYXRhID0gJyc7XG4gIH1cblxuICBfd3JpdGUoXG4gICAgY2h1bms6IGFueSxcbiAgICBlbmNvZGluZzogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQsXG4gICk6IHZvaWQge1xuICAgIGlmIChlbmNvZGluZyA9PT0gJ2J1ZmZlcicpIHtcbiAgICAgIGNodW5rID0gdGhpcy5fZGVjb2Rlci53cml0ZShjaHVuayk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhICs9IGNodW5rO1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICBfZmluYWwoY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSArPSB0aGlzLl9kZWNvZGVyLmVuZCgpO1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWQ1SGFzaCh2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjcnlwdG8uY3JlYXRlSGFzaCgnbWQ1JykudXBkYXRlKHZhbCkuZGlnZXN0KCdoZXgnKTtcbn1cbiJdfQ== /***/ }), diff --git a/dist/index.js.map b/dist/index.js.map index dcb0a6d..5109650 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3oBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtXA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9NA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjWA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChoDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9HA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA;;;;;;;;;;;;;;;;;;;;;AAqBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACh5CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5OA;;;;;;;;;;;;;;;AAeA;;;;AAIA;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9NA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4IA;;;;;;;;;AC79IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/xEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1qHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC72DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAwDA;;;;;;;;;AC7hDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACprFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC72DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgKA;;;;;;;;;ACj/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqJA;;;;;;;;;AC7vHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuDA;;;;;;;;;AC9iDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAi2CA;;;;;;;;;ACt2mFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8HA;;;;;;;;;AC37HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoLA;;;;;;;;;ACptJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8JA;;;;;;;;;AC9kRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0RA;;;;;;;;;ACl5aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6JA;;;;;;;;;ACz5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+LA;;;;;;;;;AC5vMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6KA;;;;;;;;;AChsPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8PA;;;;;;;;;AC/vXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuDA;;;;;;;;;AChxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsJA;;;;;;;;;AC/pHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAigBA;;;;;;;;;ACvmbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA;;;;;;;;;AC1gDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACtSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACxfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsBA;;;;;;;;;ACndA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA;;;;;;;;;AC5gBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA;;;;;;;;;ACvrBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;;;;;;;;;ACjcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzlCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9rBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;AC1dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACx1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC78BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC56LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1nBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACt0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACt2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5qBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnFA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzdA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;;;;;;;;ACHA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACz2CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzwCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClPA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/pCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACroFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChUA;AACA;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClcA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACr0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1uEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACroBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrRA;;;;;;;;ACAA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1LA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzgDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACx/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC79DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACr/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACngCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3hDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC32BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5gBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/ZA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;;;;ACJA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":[".././lib/action.js",".././lib/assembly.js",".././lib/comment.js",".././lib/diff.js",".././lib/index.js",".././lib/stage-processor.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/path-utils.js",".././node_modules/@actions/core/lib/platform.js",".././node_modules/@actions/core/lib/summary.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/exec/lib/exec.js",".././node_modules/@actions/exec/lib/toolrunner.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/http-client/lib/auth.js",".././node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/io/lib/io-util.js",".././node_modules/@actions/io/lib/io.js",".././node_modules/@aws-cdk/aws-service-spec/lib/index.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/index.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/augmentations.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/common.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/database.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/diff.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/event.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/metrics.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/resource.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/util/sorting.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/asset-manifest.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/aws.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/index.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/archive.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/docker-credentials.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/docker.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/fs-extra.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/client-options.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/container-images.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/files.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/index.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/p-limit.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/placeholders.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/shell.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/util.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/progress.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/publishing.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/asset-manifest-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/cloudformation-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/nested-cloud-assembly-artifact-aug.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/nested-cloud-assembly-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/tree-cloud-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/assets.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/bootstrap.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/cloud-artifact-aug.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/cloud-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/cloud-assembly.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/ami.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/availability-zones.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/endpoint-service-availability-zones.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/generic.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/key.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/load-balancer.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/security-group.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/vpc.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/environment.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/index.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/metadata.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/placeholders.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/private/error.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/private/toposort.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/aws-destination.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/docker-image-asset.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/file-asset.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/artifact-schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/context-queries.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/interfaces.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/metadata-schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/common.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/deploy.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/destroy.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/test-case.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/manifest.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/attribute.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/helpers.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/scan.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/validator.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/comparator.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/range.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/semver.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/clean.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/cmp.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/coerce.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare-build.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare-loose.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/diff.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/eq.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/gt.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/gte.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/inc.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/lt.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/lte.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/major.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/minor.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/neq.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/parse.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/patch.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/prerelease.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/rcompare.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/rsort.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/satisfies.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/sort.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/valid.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/constants.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/debug.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/identifiers.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/lrucache.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/parse-options.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/re.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/gtr.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/intersects.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/ltr.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/max-satisfying.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/min-satisfying.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/min-version.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/outside.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/simplify.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/subset.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/to-comparators.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/valid.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/maybe-parsed.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/template-and-changeset-diff-merger.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diffable.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/format-foreach.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/format-table.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/format.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-identity-center.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/index.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/mappings.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/util.js",".././node_modules/@aws-cdk/cx-api/.warnings.jsii.js",".././node_modules/@aws-cdk/cx-api/lib/app.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/asset-manifest-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/cloudformation-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/nested-cloud-assembly-artifact-aug.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/tree-cloud-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/assets.js",".././node_modules/@aws-cdk/cx-api/lib/cloud-artifact-aug.js",".././node_modules/@aws-cdk/cx-api/lib/cloud-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/cloud-assembly.js",".././node_modules/@aws-cdk/cx-api/lib/context/ami.js",".././node_modules/@aws-cdk/cx-api/lib/context/availability-zones.js",".././node_modules/@aws-cdk/cx-api/lib/context/endpoint-service-availability-zones.js",".././node_modules/@aws-cdk/cx-api/lib/context/key.js",".././node_modules/@aws-cdk/cx-api/lib/context/load-balancer.js",".././node_modules/@aws-cdk/cx-api/lib/context/security-group.js",".././node_modules/@aws-cdk/cx-api/lib/context/vpc.js",".././node_modules/@aws-cdk/cx-api/lib/cxapi.js",".././node_modules/@aws-cdk/cx-api/lib/environment.js",".././node_modules/@aws-cdk/cx-api/lib/features.js",".././node_modules/@aws-cdk/cx-api/lib/index.js",".././node_modules/@aws-cdk/cx-api/lib/metadata.js",".././node_modules/@aws-cdk/cx-api/lib/placeholders.js",".././node_modules/@aws-cdk/cx-api/lib/private/error.js",".././node_modules/@aws-cdk/cx-api/lib/private/flag-modeling.js",".././node_modules/@aws-cdk/cx-api/lib/toposort.js",".././node_modules/@aws-cdk/service-spec-types/lib/index.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/augmentations.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/common.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/database.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/diff.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/event.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/metrics.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/resource.js",".././node_modules/@aws-cdk/service-spec-types/lib/util/sorting.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/bootstrap/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/bootstrap/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/bootstrap/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/deploy-options.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/deployment-method.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/destroy/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/diff/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/diff/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/diff/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/drift/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/list/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/publish-assets/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/refactor/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/refactor/private/mapping-helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/rollback/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/synth/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/watch/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/watch/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/watch/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/account-cache.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/awscli-compatible.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/base-credentials.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/cached.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/credential-plugins.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/ec2-detection.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/provider-caching.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/sdk-logger.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/sdk-provider.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/sdk.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/tracing.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/user-agent.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/util.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/bootstrap-environment.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/bootstrap-props.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/deploy-bootstrap.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/legacy-template.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/cached-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/context-store.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/environment.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/borrowed-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/context-aware-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/disposable-box.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/exec.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/prepare-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/readable-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/stack-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/stack-selectors.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/source-builder.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/stack-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/stack-collection.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/stack-selector.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/evaluate-cloudformation-template.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/nested-stack-helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/stack-helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/template-body-parameter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/context.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/asset-manifest-builder.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/asset-publishing.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/assets.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/cfn-api.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/checks.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/deploy-stack.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/deployment-result.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/deployments.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/early-validation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/diff/diff-formatter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/diff/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/drift/drift-formatter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/drift/drift.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/drift/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/environment-access.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/environment-resources.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/placeholders.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/appsync-mapping-templates.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/cloud-control-resource.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/code-build-projects.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/common.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/ecs-services.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/hotswap-deployments.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/lambda-functions.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/s3-bucket-deployments.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/io-host.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/io-message.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/io-default-messages.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/io-helper.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/io-host-wrappers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/level-priority.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/message-maker.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/messages.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/span.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/toolkit-action.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/logs-monitor/find-cloudwatch-logs.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/logs-monitor/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/logs-monitor/logs-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/network-detector/network-detector.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/cached-data-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/filter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/notices.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/web-data-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/context-provider-plugin.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/mode.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/plugin.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/cloudformation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/context.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/digest.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/graph.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/stack-definitions.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-import/importer.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-import/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-import/migrator.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-metadata/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-metadata/resource-metadata.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/rwlock.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/settings.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-activity-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-event-poller.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-progress-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-status.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/streams.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/private/util.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/tags.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/toolkit-info.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tree.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/build-destroy-work-graph.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/work-graph-builder.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/work-graph-types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/work-graph.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/ami.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/availability-zones.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/cc-api-provider.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/endpoint-service-availability-zones.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/hosted-zones.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/keys.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/load-balancers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/security-groups.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/ssm-parameters.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/vpcs.js",".././node_modules/@aws-cdk/toolkit-lib/lib/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/bootstrap-environment-progress.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/context.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/deploy.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/destroy.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/diff.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/drift.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/gc.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/hotswap.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/import.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/list.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/logs-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/progress.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/publish-assets.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/refactor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/rollback.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/sdk.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/stack-activity.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/stack-details.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/synth.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/watch.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/base.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/current.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/display.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/history.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/dispose-polyfill.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/non-interactive-io-host.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/private/count-assembly-results.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/toolkit-error.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/toolkit.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/archive.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/arrays.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/bool.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/bytes.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/cloudformation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/concurrency.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/content-hash.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/directories.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/format-error.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/glob-matcher.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/guess-language.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/json.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/net.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/objects.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/package-info.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/parallel.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/promises.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/serialize.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/sets.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/shell-env.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/string-manipulation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/type-brands.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/version-range.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/yaml-cfn.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/classes/comparator.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/classes/range.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/classes/semver.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/clean.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/cmp.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/coerce.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/compare-build.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/compare-loose.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/compare.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/diff.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/eq.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/gt.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/gte.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/inc.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/lt.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/lte.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/major.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/minor.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/neq.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/parse.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/patch.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/prerelease.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/rcompare.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/rsort.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/satisfies.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/sort.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/valid.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/index.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/constants.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/debug.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/identifiers.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/lrucache.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/parse-options.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/re.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/gtr.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/intersects.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/ltr.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/max-satisfying.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/min-satisfying.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/min-version.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/outside.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/simplify.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/subset.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/to-comparators.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/valid.js",".././node_modules/@aws-crypto/crc32/build/main/aws_crc32.js",".././node_modules/@aws-crypto/crc32/build/main/index.js",".././node_modules/@aws-crypto/crc32c/build/main/aws_crc32c.js",".././node_modules/@aws-crypto/crc32c/build/main/index.js",".././node_modules/@aws-crypto/util/build/main/convertToBuffer.js",".././node_modules/@aws-crypto/util/build/main/index.js",".././node_modules/@aws-crypto/util/build/main/isEmptyData.js",".././node_modules/@aws-crypto/util/build/main/numToUint8.js",".././node_modules/@aws-crypto/util/build/main/uint32ArrayFrom.js",".././node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer/dist-cjs/index.js",".././node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from/dist-cjs/index.js",".././node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8/dist-cjs/index.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/index.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/endpoint/bdd.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/models/BedrockAgentCoreControlServiceException.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/models/errors.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/schemas/schemas_0.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/recursionDetectionMiddleware.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/region-config-resolver/dist-cjs/regionConfig/stsRegionDefaultResolver.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/bdd.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/CloudFormationServiceException.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/errors.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/schemas/schemas_0.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/recursionDetectionMiddleware.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/region-config-resolver/dist-cjs/regionConfig/stsRegionDefaultResolver.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/index.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/index.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/index.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/index.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/index.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/index.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/STSClient.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/runtimeExtensions.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/createCredentialChain.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromCognitoIdentity.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromCognitoIdentityPool.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromContainerMetadata.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromEnv.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromIni.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromInstanceMetadata.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromNodeProviderChain.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromProcess.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromSSO.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromTemporaryCredentials.base.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromTemporaryCredentials.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/loadSts.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/ec2-metadata-service/dist-cjs/index.js",".././node_modules/@aws-sdk/lib-storage/dist-cjs/index.js",".././node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-expect-continue/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getCrc32ChecksumAlgorithmFunction.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-location-constraint/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-ec2/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-route53/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-ssec/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js",".././node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js",".././node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/util-format-url/dist-cjs/index.js",".././node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js",".././node_modules/@cdklabs/tskb/lib/database.js",".././node_modules/@cdklabs/tskb/lib/entity.js",".././node_modules/@cdklabs/tskb/lib/index.js",".././node_modules/@cdklabs/tskb/lib/invariant.js",".././node_modules/@cdklabs/tskb/lib/relationship.js",".././node_modules/@cdklabs/tskb/lib/result.js",".././node_modules/@cdklabs/tskb/lib/sorted-map.js",".././node_modules/@nodelib/fs.scandir/out/adapters/fs.js",".././node_modules/@nodelib/fs.scandir/out/constants.js",".././node_modules/@nodelib/fs.scandir/out/index.js",".././node_modules/@nodelib/fs.scandir/out/providers/async.js",".././node_modules/@nodelib/fs.scandir/out/providers/common.js",".././node_modules/@nodelib/fs.scandir/out/providers/sync.js",".././node_modules/@nodelib/fs.scandir/out/settings.js",".././node_modules/@nodelib/fs.scandir/out/utils/fs.js",".././node_modules/@nodelib/fs.scandir/out/utils/index.js",".././node_modules/@nodelib/fs.stat/out/adapters/fs.js",".././node_modules/@nodelib/fs.stat/out/index.js",".././node_modules/@nodelib/fs.stat/out/providers/async.js",".././node_modules/@nodelib/fs.stat/out/providers/sync.js",".././node_modules/@nodelib/fs.stat/out/settings.js",".././node_modules/@nodelib/fs.walk/out/index.js",".././node_modules/@nodelib/fs.walk/out/providers/async.js",".././node_modules/@nodelib/fs.walk/out/providers/stream.js",".././node_modules/@nodelib/fs.walk/out/providers/sync.js",".././node_modules/@nodelib/fs.walk/out/readers/async.js",".././node_modules/@nodelib/fs.walk/out/readers/common.js",".././node_modules/@nodelib/fs.walk/out/readers/reader.js",".././node_modules/@nodelib/fs.walk/out/readers/sync.js",".././node_modules/@nodelib/fs.walk/out/settings.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@smithy/abort-controller/dist-cjs/index.js",".././node_modules/@smithy/config-resolver/dist-cjs/index.js",".././node_modules/@smithy/core/dist-cjs/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/schema/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/serde/index.js",".././node_modules/@smithy/credential-provider-imds/dist-cjs/index.js",".././node_modules/@smithy/eventstream-codec/dist-cjs/index.js",".././node_modules/@smithy/eventstream-serde-config-resolver/dist-cjs/index.js",".././node_modules/@smithy/eventstream-serde-node/dist-cjs/index.js",".././node_modules/@smithy/eventstream-serde-universal/dist-cjs/index.js",".././node_modules/@smithy/fetch-http-handler/dist-cjs/index.js",".././node_modules/@smithy/hash-node/dist-cjs/index.js",".././node_modules/@smithy/hash-stream-node/dist-cjs/index.js",".././node_modules/@smithy/is-array-buffer/dist-cjs/index.js",".././node_modules/@smithy/middleware-content-length/dist-cjs/index.js",".././node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromConfig.js",".././node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointUrlConfig.js",".././node_modules/@smithy/middleware-endpoint/dist-cjs/index.js",".././node_modules/@smithy/middleware-retry/dist-cjs/index.js",".././node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.js",".././node_modules/@smithy/middleware-serde/dist-cjs/index.js",".././node_modules/@smithy/middleware-stack/dist-cjs/index.js",".././node_modules/@smithy/node-config-provider/dist-cjs/index.js",".././node_modules/@smithy/node-http-handler/dist-cjs/index.js",".././node_modules/@smithy/property-provider/dist-cjs/index.js",".././node_modules/@smithy/protocol-http/dist-cjs/index.js",".././node_modules/@smithy/querystring-builder/dist-cjs/index.js",".././node_modules/@smithy/querystring-parser/dist-cjs/index.js",".././node_modules/@smithy/service-error-classification/dist-cjs/index.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/getHomeDir.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/readFile.js",".././node_modules/@smithy/signature-v4/dist-cjs/index.js",".././node_modules/@smithy/smithy-client/dist-cjs/index.js",".././node_modules/@smithy/types/dist-cjs/index.js",".././node_modules/@smithy/url-parser/dist-cjs/index.js",".././node_modules/@smithy/util-base64/dist-cjs/fromBase64.js",".././node_modules/@smithy/util-base64/dist-cjs/index.js",".././node_modules/@smithy/util-base64/dist-cjs/toBase64.js",".././node_modules/@smithy/util-body-length-browser/dist-cjs/index.js",".././node_modules/@smithy/util-body-length-node/dist-cjs/index.js",".././node_modules/@smithy/util-buffer-from/dist-cjs/index.js",".././node_modules/@smithy/util-config-provider/dist-cjs/index.js",".././node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js",".././node_modules/@smithy/util-endpoints/dist-cjs/index.js",".././node_modules/@smithy/util-hex-encoding/dist-cjs/index.js",".././node_modules/@smithy/util-middleware/dist-cjs/index.js",".././node_modules/@smithy/util-retry/dist-cjs/index.js",".././node_modules/@smithy/util-stream/dist-cjs/ByteArrayCollector.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.js",".././node_modules/@smithy/util-stream/dist-cjs/createBufferedReadable.js",".././node_modules/@smithy/util-stream/dist-cjs/createBufferedReadableStream.js",".././node_modules/@smithy/util-stream/dist-cjs/getAwsChunkedEncodingStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/getAwsChunkedEncodingStream.js",".././node_modules/@smithy/util-stream/dist-cjs/headStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/headStream.js",".././node_modules/@smithy/util-stream/dist-cjs/index.js",".././node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.js",".././node_modules/@smithy/util-stream/dist-cjs/splitStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/splitStream.js",".././node_modules/@smithy/util-stream/dist-cjs/stream-type-check.js",".././node_modules/@smithy/util-uri-escape/dist-cjs/index.js",".././node_modules/@smithy/util-utf8/dist-cjs/index.js",".././node_modules/@smithy/util-waiter/dist-cjs/index.js",".././node_modules/@smithy/uuid/dist-cjs/index.js",".././node_modules/@smithy/uuid/dist-cjs/randomUUID.js",".././node_modules/abort-controller/dist/abort-controller.js",".././node_modules/ansi-styles/index.js",".././node_modules/archiver-utils/file.js",".././node_modules/archiver-utils/index.js",".././node_modules/archiver/index.js",".././node_modules/archiver/lib/core.js",".././node_modules/archiver/lib/error.js",".././node_modules/archiver/lib/plugins/json.js",".././node_modules/archiver/lib/plugins/tar.js",".././node_modules/archiver/lib/plugins/zip.js",".././node_modules/astral-regex/index.js",".././node_modules/async/dist/async.js",".././node_modules/b4a/index.js",".././node_modules/balanced-match/index.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/brace-expansion/index.js",".././node_modules/braces/index.js",".././node_modules/braces/lib/compile.js",".././node_modules/braces/lib/constants.js",".././node_modules/braces/lib/expand.js",".././node_modules/braces/lib/parse.js",".././node_modules/braces/lib/stringify.js",".././node_modules/braces/lib/utils.js",".././node_modules/chalk/source/index.js",".././node_modules/chalk/source/templates.js",".././node_modules/chalk/source/util.js",".././node_modules/chokidar/handler.js",".././node_modules/chokidar/index.js",".././node_modules/color-convert/conversions.js",".././node_modules/color-convert/index.js",".././node_modules/color-convert/route.js",".././node_modules/color-name/index.js",".././node_modules/compress-commons/lib/archivers/archive-entry.js",".././node_modules/compress-commons/lib/archivers/archive-output-stream.js",".././node_modules/compress-commons/lib/archivers/zip/constants.js",".././node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js",".././node_modules/compress-commons/lib/archivers/zip/unix-stat.js",".././node_modules/compress-commons/lib/archivers/zip/util.js",".././node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js",".././node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js",".././node_modules/compress-commons/lib/compress-commons.js",".././node_modules/compress-commons/lib/util/index.js",".././node_modules/core-util-is/lib/util.js",".././node_modules/crc-32/crc32.js",".././node_modules/crc32-stream/lib/crc32-stream.js",".././node_modules/crc32-stream/lib/deflate-crc32-stream.js",".././node_modules/crc32-stream/lib/index.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/emoji-regex/index.js",".././node_modules/event-target-shim/dist/event-target-shim.js",".././node_modules/fast-deep-equal/index.js",".././node_modules/fast-fifo/fixed-size.js",".././node_modules/fast-fifo/index.js",".././node_modules/fast-glob/out/index.js",".././node_modules/fast-glob/out/managers/tasks.js",".././node_modules/fast-glob/out/providers/async.js",".././node_modules/fast-glob/out/providers/filters/deep.js",".././node_modules/fast-glob/out/providers/filters/entry.js",".././node_modules/fast-glob/out/providers/filters/error.js",".././node_modules/fast-glob/out/providers/matchers/matcher.js",".././node_modules/fast-glob/out/providers/matchers/partial.js",".././node_modules/fast-glob/out/providers/provider.js",".././node_modules/fast-glob/out/providers/stream.js",".././node_modules/fast-glob/out/providers/sync.js",".././node_modules/fast-glob/out/providers/transformers/entry.js",".././node_modules/fast-glob/out/readers/async.js",".././node_modules/fast-glob/out/readers/reader.js",".././node_modules/fast-glob/out/readers/stream.js",".././node_modules/fast-glob/out/readers/sync.js",".././node_modules/fast-glob/out/settings.js",".././node_modules/fast-glob/out/utils/array.js",".././node_modules/fast-glob/out/utils/errno.js",".././node_modules/fast-glob/out/utils/fs.js",".././node_modules/fast-glob/out/utils/index.js",".././node_modules/fast-glob/out/utils/path.js",".././node_modules/fast-glob/out/utils/pattern.js",".././node_modules/fast-glob/out/utils/stream.js",".././node_modules/fast-glob/out/utils/string.js",".././node_modules/fast-xml-parser/src/fxp.js",".././node_modules/fast-xml-parser/src/util.js",".././node_modules/fast-xml-parser/src/validator.js",".././node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js",".././node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js",".././node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js",".././node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js",".././node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js",".././node_modules/fast-xml-parser/src/xmlparser/XMLParser.js",".././node_modules/fast-xml-parser/src/xmlparser/node2json.js",".././node_modules/fast-xml-parser/src/xmlparser/xmlNode.js",".././node_modules/fastq/queue.js",".././node_modules/fill-range/index.js",".././node_modules/fs-extra/lib/copy/copy-sync.js",".././node_modules/fs-extra/lib/copy/copy.js",".././node_modules/fs-extra/lib/copy/index.js",".././node_modules/fs-extra/lib/empty/index.js",".././node_modules/fs-extra/lib/ensure/file.js",".././node_modules/fs-extra/lib/ensure/index.js",".././node_modules/fs-extra/lib/ensure/link.js",".././node_modules/fs-extra/lib/ensure/symlink-paths.js",".././node_modules/fs-extra/lib/ensure/symlink-type.js",".././node_modules/fs-extra/lib/ensure/symlink.js",".././node_modules/fs-extra/lib/fs/index.js",".././node_modules/fs-extra/lib/index.js",".././node_modules/fs-extra/lib/json/index.js",".././node_modules/fs-extra/lib/json/jsonfile.js",".././node_modules/fs-extra/lib/json/output-json-sync.js",".././node_modules/fs-extra/lib/json/output-json.js",".././node_modules/fs-extra/lib/mkdirs/index.js",".././node_modules/fs-extra/lib/mkdirs/make-dir.js",".././node_modules/fs-extra/lib/mkdirs/utils.js",".././node_modules/fs-extra/lib/move/index.js",".././node_modules/fs-extra/lib/move/move-sync.js",".././node_modules/fs-extra/lib/move/move.js",".././node_modules/fs-extra/lib/output-file/index.js",".././node_modules/fs-extra/lib/path-exists/index.js",".././node_modules/fs-extra/lib/remove/index.js",".././node_modules/fs-extra/lib/util/async.js",".././node_modules/fs-extra/lib/util/stat.js",".././node_modules/fs-extra/lib/util/utimes.js",".././node_modules/glob-parent/index.js",".././node_modules/graceful-fs/clone.js",".././node_modules/graceful-fs/graceful-fs.js",".././node_modules/graceful-fs/legacy-streams.js",".././node_modules/graceful-fs/polyfills.js",".././node_modules/has-flag/index.js",".././node_modules/inherits/inherits.js",".././node_modules/inherits/inherits_browser.js",".././node_modules/is-extglob/index.js",".././node_modules/is-fullwidth-code-point/index.js",".././node_modules/is-glob/index.js",".././node_modules/is-number/index.js",".././node_modules/is-stream/index.js",".././node_modules/jsonfile/index.js",".././node_modules/jsonfile/utils.js",".././node_modules/lazystream/lib/lazystream.js",".././node_modules/lazystream/node_modules/isarray/index.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_duplex.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_passthrough.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_readable.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_transform.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_writable.js",".././node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/BufferList.js",".././node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/destroy.js",".././node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream.js",".././node_modules/lazystream/node_modules/readable-stream/passthrough.js",".././node_modules/lazystream/node_modules/readable-stream/readable.js",".././node_modules/lazystream/node_modules/safe-buffer/index.js",".././node_modules/lazystream/node_modules/string_decoder/lib/string_decoder.js",".././node_modules/lodash.truncate/index.js",".././node_modules/lodash/_Hash.js",".././node_modules/lodash/_ListCache.js",".././node_modules/lodash/_Map.js",".././node_modules/lodash/_MapCache.js",".././node_modules/lodash/_Set.js",".././node_modules/lodash/_SetCache.js",".././node_modules/lodash/_Symbol.js",".././node_modules/lodash/_apply.js",".././node_modules/lodash/_arrayIncludes.js",".././node_modules/lodash/_arrayIncludesWith.js",".././node_modules/lodash/_arrayLikeKeys.js",".././node_modules/lodash/_arrayMap.js",".././node_modules/lodash/_arrayPush.js",".././node_modules/lodash/_assocIndexOf.js",".././node_modules/lodash/_baseDifference.js",".././node_modules/lodash/_baseFindIndex.js",".././node_modules/lodash/_baseFlatten.js",".././node_modules/lodash/_baseGetTag.js",".././node_modules/lodash/_baseIndexOf.js",".././node_modules/lodash/_baseIsArguments.js",".././node_modules/lodash/_baseIsNaN.js",".././node_modules/lodash/_baseIsNative.js",".././node_modules/lodash/_baseIsTypedArray.js",".././node_modules/lodash/_baseKeysIn.js",".././node_modules/lodash/_baseRest.js",".././node_modules/lodash/_baseSetToString.js",".././node_modules/lodash/_baseTimes.js",".././node_modules/lodash/_baseUnary.js",".././node_modules/lodash/_baseUniq.js",".././node_modules/lodash/_cacheHas.js",".././node_modules/lodash/_coreJsData.js",".././node_modules/lodash/_createSet.js",".././node_modules/lodash/_defineProperty.js",".././node_modules/lodash/_freeGlobal.js",".././node_modules/lodash/_getMapData.js",".././node_modules/lodash/_getNative.js",".././node_modules/lodash/_getPrototype.js",".././node_modules/lodash/_getRawTag.js",".././node_modules/lodash/_getValue.js",".././node_modules/lodash/_hashClear.js",".././node_modules/lodash/_hashDelete.js",".././node_modules/lodash/_hashGet.js",".././node_modules/lodash/_hashHas.js",".././node_modules/lodash/_hashSet.js",".././node_modules/lodash/_isFlattenable.js",".././node_modules/lodash/_isIndex.js",".././node_modules/lodash/_isIterateeCall.js",".././node_modules/lodash/_isKeyable.js",".././node_modules/lodash/_isMasked.js",".././node_modules/lodash/_isPrototype.js",".././node_modules/lodash/_listCacheClear.js",".././node_modules/lodash/_listCacheDelete.js",".././node_modules/lodash/_listCacheGet.js",".././node_modules/lodash/_listCacheHas.js",".././node_modules/lodash/_listCacheSet.js",".././node_modules/lodash/_mapCacheClear.js",".././node_modules/lodash/_mapCacheDelete.js",".././node_modules/lodash/_mapCacheGet.js",".././node_modules/lodash/_mapCacheHas.js",".././node_modules/lodash/_mapCacheSet.js",".././node_modules/lodash/_nativeCreate.js",".././node_modules/lodash/_nativeKeysIn.js",".././node_modules/lodash/_nodeUtil.js",".././node_modules/lodash/_objectToString.js",".././node_modules/lodash/_overArg.js",".././node_modules/lodash/_overRest.js",".././node_modules/lodash/_root.js",".././node_modules/lodash/_setCacheAdd.js",".././node_modules/lodash/_setCacheHas.js",".././node_modules/lodash/_setToArray.js",".././node_modules/lodash/_setToString.js",".././node_modules/lodash/_shortOut.js",".././node_modules/lodash/_strictIndexOf.js",".././node_modules/lodash/_toSource.js",".././node_modules/lodash/constant.js",".././node_modules/lodash/defaults.js",".././node_modules/lodash/difference.js",".././node_modules/lodash/eq.js",".././node_modules/lodash/flatten.js",".././node_modules/lodash/identity.js",".././node_modules/lodash/isArguments.js",".././node_modules/lodash/isArray.js",".././node_modules/lodash/isArrayLike.js",".././node_modules/lodash/isArrayLikeObject.js",".././node_modules/lodash/isBuffer.js",".././node_modules/lodash/isFunction.js",".././node_modules/lodash/isLength.js",".././node_modules/lodash/isObject.js",".././node_modules/lodash/isObjectLike.js",".././node_modules/lodash/isPlainObject.js",".././node_modules/lodash/isTypedArray.js",".././node_modules/lodash/keysIn.js",".././node_modules/lodash/noop.js",".././node_modules/lodash/stubFalse.js",".././node_modules/lodash/union.js",".././node_modules/merge2/index.js",".././node_modules/micromatch/index.js",".././node_modules/micromatch/node_modules/picomatch/index.js",".././node_modules/micromatch/node_modules/picomatch/lib/constants.js",".././node_modules/micromatch/node_modules/picomatch/lib/parse.js",".././node_modules/micromatch/node_modules/picomatch/lib/picomatch.js",".././node_modules/micromatch/node_modules/picomatch/lib/scan.js",".././node_modules/micromatch/node_modules/picomatch/lib/utils.js",".././node_modules/mime/Mime.js",".././node_modules/mime/index.js",".././node_modules/mime/types/other.js",".././node_modules/mime/types/standard.js",".././node_modules/normalize-path/index.js",".././node_modules/once/once.js",".././node_modules/p-limit/index.js",".././node_modules/picomatch/index.js",".././node_modules/picomatch/lib/constants.js",".././node_modules/picomatch/lib/parse.js",".././node_modules/picomatch/lib/picomatch.js",".././node_modules/picomatch/lib/scan.js",".././node_modules/picomatch/lib/utils.js",".././node_modules/process-nextick-args/index.js",".././node_modules/process/index.js",".././node_modules/queue-microtask/index.js",".././node_modules/readable-stream/lib/internal/streams/add-abort-signal.js",".././node_modules/readable-stream/lib/internal/streams/buffer_list.js",".././node_modules/readable-stream/lib/internal/streams/compose.js",".././node_modules/readable-stream/lib/internal/streams/destroy.js",".././node_modules/readable-stream/lib/internal/streams/duplex.js",".././node_modules/readable-stream/lib/internal/streams/duplexify.js",".././node_modules/readable-stream/lib/internal/streams/end-of-stream.js",".././node_modules/readable-stream/lib/internal/streams/from.js",".././node_modules/readable-stream/lib/internal/streams/legacy.js",".././node_modules/readable-stream/lib/internal/streams/operators.js",".././node_modules/readable-stream/lib/internal/streams/passthrough.js",".././node_modules/readable-stream/lib/internal/streams/pipeline.js",".././node_modules/readable-stream/lib/internal/streams/readable.js",".././node_modules/readable-stream/lib/internal/streams/state.js",".././node_modules/readable-stream/lib/internal/streams/transform.js",".././node_modules/readable-stream/lib/internal/streams/utils.js",".././node_modules/readable-stream/lib/internal/streams/writable.js",".././node_modules/readable-stream/lib/internal/validators.js",".././node_modules/readable-stream/lib/ours/errors.js",".././node_modules/readable-stream/lib/ours/index.js",".././node_modules/readable-stream/lib/ours/primordials.js",".././node_modules/readable-stream/lib/ours/util.js",".././node_modules/readable-stream/lib/ours/util/inspect.js",".././node_modules/readable-stream/lib/stream.js",".././node_modules/readable-stream/lib/stream/promises.js",".././node_modules/readdir-glob/index.js",".././node_modules/readdir-glob/node_modules/minimatch/lib/path.js",".././node_modules/readdir-glob/node_modules/minimatch/minimatch.js",".././node_modules/readdirp/index.js",".././node_modules/reusify/reusify.js",".././node_modules/run-parallel/index.js",".././node_modules/safe-buffer/index.js",".././node_modules/slice-ansi/index.js",".././node_modules/split2/index.js",".././node_modules/streamx/index.js",".././node_modules/string-width/index.js",".././node_modules/string-width/node_modules/ansi-regex/index.js",".././node_modules/string-width/node_modules/strip-ansi/index.js",".././node_modules/string_decoder/lib/string_decoder.js",".././node_modules/strnum/strnum.js",".././node_modules/supports-color/index.js",".././node_modules/table/dist/src/alignSpanningCell.js",".././node_modules/table/dist/src/alignString.js",".././node_modules/table/dist/src/alignTableData.js",".././node_modules/table/dist/src/calculateCellHeight.js",".././node_modules/table/dist/src/calculateMaximumColumnWidths.js",".././node_modules/table/dist/src/calculateOutputColumnWidths.js",".././node_modules/table/dist/src/calculateRowHeights.js",".././node_modules/table/dist/src/calculateSpanningCellWidth.js",".././node_modules/table/dist/src/createStream.js",".././node_modules/table/dist/src/drawBorder.js",".././node_modules/table/dist/src/drawContent.js",".././node_modules/table/dist/src/drawRow.js",".././node_modules/table/dist/src/drawTable.js",".././node_modules/table/dist/src/generated/validators.js",".././node_modules/table/dist/src/getBorderCharacters.js",".././node_modules/table/dist/src/index.js",".././node_modules/table/dist/src/injectHeaderConfig.js",".././node_modules/table/dist/src/makeRangeConfig.js",".././node_modules/table/dist/src/makeStreamConfig.js",".././node_modules/table/dist/src/makeTableConfig.js",".././node_modules/table/dist/src/mapDataUsingRowHeights.js",".././node_modules/table/dist/src/padTableData.js",".././node_modules/table/dist/src/spanningCellManager.js",".././node_modules/table/dist/src/stringifyTableData.js",".././node_modules/table/dist/src/table.js",".././node_modules/table/dist/src/truncateTableData.js",".././node_modules/table/dist/src/types/api.js",".././node_modules/table/dist/src/utils.js",".././node_modules/table/dist/src/validateConfig.js",".././node_modules/table/dist/src/validateSpanningCellConfig.js",".././node_modules/table/dist/src/validateTableData.js",".././node_modules/table/dist/src/wrapCell.js",".././node_modules/table/dist/src/wrapString.js",".././node_modules/table/dist/src/wrapWord.js",".././node_modules/table/node_modules/ajv/dist/runtime/equal.js",".././node_modules/table/node_modules/ansi-regex/index.js",".././node_modules/table/node_modules/strip-ansi/index.js",".././node_modules/tar-stream/constants.js",".././node_modules/tar-stream/extract.js",".././node_modules/tar-stream/headers.js",".././node_modules/tar-stream/index.js",".././node_modules/tar-stream/pack.js",".././node_modules/text-decoder/index.js",".././node_modules/text-decoder/lib/pass-through-decoder.js",".././node_modules/text-decoder/lib/utf8-decoder.js",".././node_modules/to-regex-range/index.js",".././node_modules/tslib/tslib.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/undici/index.js",".././node_modules/undici/lib/agent.js",".././node_modules/undici/lib/api/abort-signal.js",".././node_modules/undici/lib/api/api-connect.js",".././node_modules/undici/lib/api/api-pipeline.js",".././node_modules/undici/lib/api/api-request.js",".././node_modules/undici/lib/api/api-stream.js",".././node_modules/undici/lib/api/api-upgrade.js",".././node_modules/undici/lib/api/index.js",".././node_modules/undici/lib/api/readable.js",".././node_modules/undici/lib/api/util.js",".././node_modules/undici/lib/balanced-pool.js",".././node_modules/undici/lib/cache/cache.js",".././node_modules/undici/lib/cache/cachestorage.js",".././node_modules/undici/lib/cache/symbols.js",".././node_modules/undici/lib/cache/util.js",".././node_modules/undici/lib/client.js",".././node_modules/undici/lib/compat/dispatcher-weakref.js",".././node_modules/undici/lib/cookies/constants.js",".././node_modules/undici/lib/cookies/index.js",".././node_modules/undici/lib/cookies/parse.js",".././node_modules/undici/lib/cookies/util.js",".././node_modules/undici/lib/core/connect.js",".././node_modules/undici/lib/core/constants.js",".././node_modules/undici/lib/core/errors.js",".././node_modules/undici/lib/core/request.js",".././node_modules/undici/lib/core/symbols.js",".././node_modules/undici/lib/core/util.js",".././node_modules/undici/lib/dispatcher-base.js",".././node_modules/undici/lib/dispatcher.js",".././node_modules/undici/lib/fetch/body.js",".././node_modules/undici/lib/fetch/constants.js",".././node_modules/undici/lib/fetch/dataURL.js",".././node_modules/undici/lib/fetch/file.js",".././node_modules/undici/lib/fetch/formdata.js",".././node_modules/undici/lib/fetch/global.js",".././node_modules/undici/lib/fetch/headers.js",".././node_modules/undici/lib/fetch/index.js",".././node_modules/undici/lib/fetch/request.js",".././node_modules/undici/lib/fetch/response.js",".././node_modules/undici/lib/fetch/symbols.js",".././node_modules/undici/lib/fetch/util.js",".././node_modules/undici/lib/fetch/webidl.js",".././node_modules/undici/lib/fileapi/encoding.js",".././node_modules/undici/lib/fileapi/filereader.js",".././node_modules/undici/lib/fileapi/progressevent.js",".././node_modules/undici/lib/fileapi/symbols.js",".././node_modules/undici/lib/fileapi/util.js",".././node_modules/undici/lib/global.js",".././node_modules/undici/lib/handler/DecoratorHandler.js",".././node_modules/undici/lib/handler/RedirectHandler.js",".././node_modules/undici/lib/handler/RetryHandler.js",".././node_modules/undici/lib/interceptor/redirectInterceptor.js",".././node_modules/undici/lib/llhttp/constants.js",".././node_modules/undici/lib/llhttp/llhttp-wasm.js",".././node_modules/undici/lib/llhttp/llhttp_simd-wasm.js",".././node_modules/undici/lib/llhttp/utils.js",".././node_modules/undici/lib/mock/mock-agent.js",".././node_modules/undici/lib/mock/mock-client.js",".././node_modules/undici/lib/mock/mock-errors.js",".././node_modules/undici/lib/mock/mock-interceptor.js",".././node_modules/undici/lib/mock/mock-pool.js",".././node_modules/undici/lib/mock/mock-symbols.js",".././node_modules/undici/lib/mock/mock-utils.js",".././node_modules/undici/lib/mock/pending-interceptors-formatter.js",".././node_modules/undici/lib/mock/pluralizer.js",".././node_modules/undici/lib/node/fixed-queue.js",".././node_modules/undici/lib/pool-base.js",".././node_modules/undici/lib/pool-stats.js",".././node_modules/undici/lib/pool.js",".././node_modules/undici/lib/proxy-agent.js",".././node_modules/undici/lib/timers.js",".././node_modules/undici/lib/websocket/connection.js",".././node_modules/undici/lib/websocket/constants.js",".././node_modules/undici/lib/websocket/events.js",".././node_modules/undici/lib/websocket/frame.js",".././node_modules/undici/lib/websocket/receiver.js",".././node_modules/undici/lib/websocket/symbols.js",".././node_modules/undici/lib/websocket/util.js",".././node_modules/undici/lib/websocket/websocket.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/universalify/index.js",".././node_modules/util-deprecate/node.js",".././node_modules/wrap-ansi/index.js",".././node_modules/wrap-ansi/node_modules/ansi-regex/index.js",".././node_modules/wrap-ansi/node_modules/strip-ansi/index.js",".././node_modules/wrappy/wrappy.js",".././node_modules/yocto-queue/index.js",".././node_modules/zip-stream/index.js","../external node-commonjs \"assert\"","../external node-commonjs \"async_hooks\"","../external node-commonjs \"buffer\"","../external node-commonjs \"child_process\"","../external node-commonjs \"console\"","../external node-commonjs \"constants\"","../external node-commonjs \"crypto\"","../external node-commonjs \"diagnostics_channel\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"fs/promises\"","../external node-commonjs \"http\"","../external node-commonjs \"http2\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"node:async_hooks\"","../external node-commonjs \"node:child_process\"","../external node-commonjs \"node:crypto\"","../external node-commonjs \"node:events\"","../external node-commonjs \"node:fs\"","../external node-commonjs \"node:fs/promises\"","../external node-commonjs \"node:http\"","../external node-commonjs \"node:http2\"","../external node-commonjs \"node:https\"","../external node-commonjs \"node:os\"","../external node-commonjs \"node:path\"","../external node-commonjs \"node:process\"","../external node-commonjs \"node:stream\"","../external node-commonjs \"node:string_decoder\"","../external node-commonjs \"node:url\"","../external node-commonjs \"node:util\"","../external node-commonjs \"node:zlib\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"perf_hooks\"","../external node-commonjs \"process\"","../external node-commonjs \"querystring\"","../external node-commonjs \"stream\"","../external node-commonjs \"stream/web\"","../external node-commonjs \"string_decoder\"","../external node-commonjs \"timers\"","../external node-commonjs \"tls\"","../external node-commonjs \"tty\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"util/types\"","../external node-commonjs \"worker_threads\"","../external node-commonjs \"zlib\"",".././node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js",".././node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js",".././node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js",".././node_modules/@fastify/busboy/deps/streamsearch/sbmh.js",".././node_modules/@fastify/busboy/lib/main.js",".././node_modules/@fastify/busboy/lib/types/multipart.js",".././node_modules/@fastify/busboy/lib/types/urlencoded.js",".././node_modules/@fastify/busboy/lib/utils/Decoder.js",".././node_modules/@fastify/busboy/lib/utils/basename.js",".././node_modules/@fastify/busboy/lib/utils/decodeText.js",".././node_modules/@fastify/busboy/lib/utils/getLimit.js",".././node_modules/@fastify/busboy/lib/utils/parseParams.js",".././node_modules/@isaacs/balanced-match/dist/commonjs/index.js",".././node_modules/@isaacs/brace-expansion/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/glob.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/has-magic.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/ignore.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/pattern.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/processor.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/walker.js",".././node_modules/archiver-utils/node_modules/lru-cache/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/ast.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/brace-expressions.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/escape.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/unescape.js",".././node_modules/archiver-utils/node_modules/path-scurry/dist/commonjs/index.js",".././node_modules/diff/libcjs/convert/dmp.js",".././node_modules/diff/libcjs/convert/xml.js",".././node_modules/diff/libcjs/diff/array.js",".././node_modules/diff/libcjs/diff/base.js",".././node_modules/diff/libcjs/diff/character.js",".././node_modules/diff/libcjs/diff/css.js",".././node_modules/diff/libcjs/diff/json.js",".././node_modules/diff/libcjs/diff/line.js",".././node_modules/diff/libcjs/diff/sentence.js",".././node_modules/diff/libcjs/diff/word.js",".././node_modules/diff/libcjs/index.js",".././node_modules/diff/libcjs/patch/apply.js",".././node_modules/diff/libcjs/patch/create.js",".././node_modules/diff/libcjs/patch/line-endings.js",".././node_modules/diff/libcjs/patch/parse.js",".././node_modules/diff/libcjs/patch/reverse.js",".././node_modules/diff/libcjs/util/distance-iterator.js",".././node_modules/diff/libcjs/util/params.js",".././node_modules/diff/libcjs/util/string.js",".././node_modules/glob/dist/commonjs/glob.js",".././node_modules/glob/dist/commonjs/has-magic.js",".././node_modules/glob/dist/commonjs/ignore.js",".././node_modules/glob/dist/commonjs/index.js",".././node_modules/glob/dist/commonjs/pattern.js",".././node_modules/glob/dist/commonjs/processor.js",".././node_modules/glob/dist/commonjs/walker.js",".././node_modules/minimatch/dist/commonjs/assert-valid-pattern.js",".././node_modules/minimatch/dist/commonjs/ast.js",".././node_modules/minimatch/dist/commonjs/brace-expressions.js",".././node_modules/minimatch/dist/commonjs/escape.js",".././node_modules/minimatch/dist/commonjs/index.js",".././node_modules/minimatch/dist/commonjs/unescape.js",".././node_modules/minipass/dist/commonjs/index.js",".././node_modules/path-scurry/dist/commonjs/index.js",".././node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js",".././node_modules/uuid/dist/cjs/index.js",".././node_modules/uuid/dist/cjs/max.js",".././node_modules/uuid/dist/cjs/md5.js",".././node_modules/uuid/dist/cjs/native.js",".././node_modules/uuid/dist/cjs/nil.js",".././node_modules/uuid/dist/cjs/parse.js",".././node_modules/uuid/dist/cjs/regex.js",".././node_modules/uuid/dist/cjs/rng.js",".././node_modules/uuid/dist/cjs/sha1.js",".././node_modules/uuid/dist/cjs/stringify.js",".././node_modules/uuid/dist/cjs/v1.js",".././node_modules/uuid/dist/cjs/v1ToV6.js",".././node_modules/uuid/dist/cjs/v3.js",".././node_modules/uuid/dist/cjs/v35.js",".././node_modules/uuid/dist/cjs/v4.js",".././node_modules/uuid/dist/cjs/v5.js",".././node_modules/uuid/dist/cjs/v6.js",".././node_modules/uuid/dist/cjs/v6ToV1.js",".././node_modules/uuid/dist/cjs/v7.js",".././node_modules/uuid/dist/cjs/validate.js",".././node_modules/uuid/dist/cjs/version.js",".././node_modules/yaml/dist/Document-9b4560a1.js",".././node_modules/yaml/dist/PlainValue-ec8e588e.js",".././node_modules/yaml/dist/Schema-88e323a7.js",".././node_modules/yaml/dist/index.js",".././node_modules/yaml/dist/parse-cst.js",".././node_modules/yaml/dist/resolveSeq-d03cb037.js",".././node_modules/yaml/dist/types.js",".././node_modules/yaml/dist/warnings-1000a372.js",".././node_modules/yaml/index.js",".././node_modules/yaml/types.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-cloudformation/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-ecr/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-s3/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-sts/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/credential-providers/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/buffer-crc32/dist/index.cjs","../webpack/bootstrap","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/compat","../webpack/runtime/require chunk loading","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.run = run;\nconst core_1 = require(\"@actions/core\");\nconst github = __importStar(require(\"@actions/github\"));\nconst toolkit_lib_1 = require(\"@aws-cdk/toolkit-lib\");\nconst comment_1 = require(\"./comment\");\nconst stage_processor_1 = require(\"./stage-processor\");\nasync function run() {\n const inputs = {\n title: (0, core_1.getInput)('title') || undefined,\n defaultStageDisplayName: (0, core_1.getInput)('defaultStageDisplayName', {\n required: true,\n }),\n allowedDestroyTypes: (0, core_1.getMultilineInput)('allowedDestroyTypes'),\n failOnDestructiveChanges: (0, core_1.getBooleanInput)('failOnDestructiveChanges'),\n githubToken: (0, core_1.getInput)('githubToken'),\n stackSelectorPatterns: (0, core_1.getMultilineInput)('stackSelectorPatterns'),\n stackSelectionStrategy: (0, core_1.getInput)('stackSelectionStrategy', {\n required: true,\n }),\n noFailOnDestructiveChanges: (0, core_1.getMultilineInput)('noFailOnDestructiveChanges'),\n cdkOutDir: (0, core_1.getInput)('cdkOutDir', { required: true }),\n diffMethod: (0, core_1.getInput)('diffMethod', { required: true }),\n };\n if (inputs.stackSelectorPatterns.length > 0 &&\n inputs.stackSelectionStrategy === 'all-stacks') {\n inputs.stackSelectionStrategy = 'pattern-must-match';\n }\n (0, core_1.debug)(`Inputs: ${JSON.stringify(inputs, null, 2)}`);\n const octokit = github.getOctokit(inputs.githubToken);\n const context = github.context;\n const toolkit = new toolkit_lib_1.Toolkit({\n ioHost: new toolkit_lib_1.NonInteractiveIoHost({\n logLevel: 'info',\n }),\n });\n const method = inputs.diffMethod === 'template-only'\n ? toolkit_lib_1.DiffMethod.TemplateOnly()\n : toolkit_lib_1.DiffMethod.ChangeSet();\n try {\n const comments = new comment_1.Comments(octokit, context);\n const processor = new stage_processor_1.AssemblyProcessor({\n ...inputs,\n diffMethod: method,\n toolkit,\n });\n try {\n await processor.processStages(inputs.noFailOnDestructiveChanges);\n }\n catch (e) {\n console.error('Error running process stages: ', e);\n throw e;\n }\n try {\n await processor.commentStages(comments);\n }\n catch (e) {\n console.error('Error commenting stages: ', e);\n throw e;\n }\n if (processor.hasDestructiveChanges && inputs.failOnDestructiveChanges) {\n throw new Error('There are destructive changes! See PR comment for details.');\n }\n }\n catch (e) {\n console.error('Error performing diff: ', e);\n throw e;\n }\n return;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxrQkFzRUM7QUF0RkQsd0NBS3VCO0FBQ3ZCLHdEQUEwQztBQUMxQyxzREFJOEI7QUFDOUIsdUNBQXFDO0FBRXJDLHVEQUFzRDtBQUUvQyxLQUFLLFVBQVUsR0FBRztJQUN2QixNQUFNLE1BQU0sR0FBVztRQUNyQixLQUFLLEVBQUUsSUFBQSxlQUFRLEVBQUMsT0FBTyxDQUFDLElBQUksU0FBUztRQUNyQyx1QkFBdUIsRUFBRSxJQUFBLGVBQVEsRUFBQyx5QkFBeUIsRUFBRTtZQUMzRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixtQkFBbUIsRUFBRSxJQUFBLHdCQUFpQixFQUFDLHFCQUFxQixDQUFDO1FBQzdELHdCQUF3QixFQUFFLElBQUEsc0JBQWUsRUFBQywwQkFBMEIsQ0FBQztRQUNyRSxXQUFXLEVBQUUsSUFBQSxlQUFRLEVBQUMsYUFBYSxDQUFDO1FBQ3BDLHFCQUFxQixFQUFFLElBQUEsd0JBQWlCLEVBQUMsdUJBQXVCLENBQUM7UUFDakUsc0JBQXNCLEVBQUUsSUFBQSxlQUFRLEVBQUMsd0JBQXdCLEVBQUU7WUFDekQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsMEJBQTBCLEVBQUUsSUFBQSx3QkFBaUIsRUFBQyw0QkFBNEIsQ0FBQztRQUMzRSxTQUFTLEVBQUUsSUFBQSxlQUFRLEVBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3BELFVBQVUsRUFBRSxJQUFBLGVBQVEsRUFBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDdkQsQ0FBQztJQUVGLElBQ0UsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxzQkFBc0IsS0FBSyxZQUFZLEVBQzlDLENBQUM7UUFDRCxNQUFNLENBQUMsc0JBQXNCLEdBQUcsb0JBQW9CLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUEsWUFBSyxFQUFDLFdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVwRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBRS9CLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQU8sQ0FBQztRQUMxQixNQUFNLEVBQUUsSUFBSSxrQ0FBb0IsQ0FBQztZQUMvQixRQUFRLEVBQUUsTUFBTTtTQUNqQixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxNQUFNLEdBQ1YsTUFBTSxDQUFDLFVBQVUsS0FBSyxlQUFlO1FBQ25DLENBQUMsQ0FBQyx3QkFBVSxDQUFDLFlBQVksRUFBRTtRQUMzQixDQUFDLENBQUMsd0JBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksbUNBQWlCLENBQUM7WUFDdEMsR0FBRyxNQUFNO1lBQ1QsVUFBVSxFQUFFLE1BQU07WUFDbEIsT0FBTztTQUNSLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLHFCQUFxQixJQUFJLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7SUFDRCxPQUFPO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldElucHV0LFxuICBnZXRCb29sZWFuSW5wdXQsXG4gIGdldE11bHRpbGluZUlucHV0LFxuICBkZWJ1Zyxcbn0gZnJvbSAnQGFjdGlvbnMvY29yZSc7XG5pbXBvcnQgKiBhcyBnaXRodWIgZnJvbSAnQGFjdGlvbnMvZ2l0aHViJztcbmltcG9ydCB7XG4gIERpZmZNZXRob2QsXG4gIE5vbkludGVyYWN0aXZlSW9Ib3N0LFxuICBUb29sa2l0LFxufSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgeyBDb21tZW50cyB9IGZyb20gJy4vY29tbWVudCc7XG5pbXBvcnQgeyBJbnB1dHMgfSBmcm9tICcuL2lucHV0cyc7XG5pbXBvcnQgeyBBc3NlbWJseVByb2Nlc3NvciB9IGZyb20gJy4vc3RhZ2UtcHJvY2Vzc29yJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bigpIHtcbiAgY29uc3QgaW5wdXRzOiBJbnB1dHMgPSB7XG4gICAgdGl0bGU6IGdldElucHV0KCd0aXRsZScpIHx8IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0U3RhZ2VEaXNwbGF5TmFtZTogZ2V0SW5wdXQoJ2RlZmF1bHRTdGFnZURpc3BsYXlOYW1lJywge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgYWxsb3dlZERlc3Ryb3lUeXBlczogZ2V0TXVsdGlsaW5lSW5wdXQoJ2FsbG93ZWREZXN0cm95VHlwZXMnKSxcbiAgICBmYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXM6IGdldEJvb2xlYW5JbnB1dCgnZmFpbE9uRGVzdHJ1Y3RpdmVDaGFuZ2VzJyksXG4gICAgZ2l0aHViVG9rZW46IGdldElucHV0KCdnaXRodWJUb2tlbicpLFxuICAgIHN0YWNrU2VsZWN0b3JQYXR0ZXJuczogZ2V0TXVsdGlsaW5lSW5wdXQoJ3N0YWNrU2VsZWN0b3JQYXR0ZXJucycpLFxuICAgIHN0YWNrU2VsZWN0aW9uU3RyYXRlZ3k6IGdldElucHV0KCdzdGFja1NlbGVjdGlvblN0cmF0ZWd5Jywge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgbm9GYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXM6IGdldE11bHRpbGluZUlucHV0KCdub0ZhaWxPbkRlc3RydWN0aXZlQ2hhbmdlcycpLFxuICAgIGNka091dERpcjogZ2V0SW5wdXQoJ2Nka091dERpcicsIHsgcmVxdWlyZWQ6IHRydWUgfSksXG4gICAgZGlmZk1ldGhvZDogZ2V0SW5wdXQoJ2RpZmZNZXRob2QnLCB7IHJlcXVpcmVkOiB0cnVlIH0pLFxuICB9O1xuXG4gIGlmIChcbiAgICBpbnB1dHMuc3RhY2tTZWxlY3RvclBhdHRlcm5zLmxlbmd0aCA+IDAgJiZcbiAgICBpbnB1dHMuc3RhY2tTZWxlY3Rpb25TdHJhdGVneSA9PT0gJ2FsbC1zdGFja3MnXG4gICkge1xuICAgIGlucHV0cy5zdGFja1NlbGVjdGlvblN0cmF0ZWd5ID0gJ3BhdHRlcm4tbXVzdC1tYXRjaCc7XG4gIH1cblxuICBkZWJ1ZyhgSW5wdXRzOiAke0pTT04uc3RyaW5naWZ5KGlucHV0cywgbnVsbCwgMil9YCk7XG5cbiAgY29uc3Qgb2N0b2tpdCA9IGdpdGh1Yi5nZXRPY3Rva2l0KGlucHV0cy5naXRodWJUb2tlbik7XG4gIGNvbnN0IGNvbnRleHQgPSBnaXRodWIuY29udGV4dDtcblxuICBjb25zdCB0b29sa2l0ID0gbmV3IFRvb2xraXQoe1xuICAgIGlvSG9zdDogbmV3IE5vbkludGVyYWN0aXZlSW9Ib3N0KHtcbiAgICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgfSksXG4gIH0pO1xuICBjb25zdCBtZXRob2QgPVxuICAgIGlucHV0cy5kaWZmTWV0aG9kID09PSAndGVtcGxhdGUtb25seSdcbiAgICAgID8gRGlmZk1ldGhvZC5UZW1wbGF0ZU9ubHkoKVxuICAgICAgOiBEaWZmTWV0aG9kLkNoYW5nZVNldCgpO1xuICB0cnkge1xuICAgIGNvbnN0IGNvbW1lbnRzID0gbmV3IENvbW1lbnRzKG9jdG9raXQsIGNvbnRleHQpO1xuICAgIGNvbnN0IHByb2Nlc3NvciA9IG5ldyBBc3NlbWJseVByb2Nlc3Nvcih7XG4gICAgICAuLi5pbnB1dHMsXG4gICAgICBkaWZmTWV0aG9kOiBtZXRob2QsXG4gICAgICB0b29sa2l0LFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc1N0YWdlcyhpbnB1dHMubm9GYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXMpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcnVubmluZyBwcm9jZXNzIHN0YWdlczogJywgZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwcm9jZXNzb3IuY29tbWVudFN0YWdlcyhjb21tZW50cyk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjb21tZW50aW5nIHN0YWdlczogJywgZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzb3IuaGFzRGVzdHJ1Y3RpdmVDaGFuZ2VzICYmIGlucHV0cy5mYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZXJlIGFyZSBkZXN0cnVjdGl2ZSBjaGFuZ2VzISBTZWUgUFIgY29tbWVudCBmb3IgZGV0YWlscy4nLFxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBlcmZvcm1pbmcgZGlmZjogJywgZSk7XG4gICAgdGhyb3cgZTtcbiAgfVxuICByZXR1cm47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssemblyManifestReader = void 0;\n/**\n * Reads a Cloud Assembly manifest\n */\nclass AssemblyManifestReader {\n constructor(assembly, stackDiffs) {\n this.assembly = assembly;\n this.stackDiffs = stackDiffs;\n }\n inDiff(stackName) {\n return !!this.stackDiffs[stackName];\n }\n /**\n * Get the stacks from the manifest\n * returns a map of artifactId to CloudFormation template\n */\n get stacks() {\n const stacks = [];\n this.assembly.stacks.forEach((stack) => {\n const stackName = stack.displayName;\n if (this.inDiff(stackName)) {\n stacks.push({\n name: stackName,\n });\n }\n });\n return stacks;\n }\n /**\n * Get the stages in the assembly\n */\n get stages() {\n const stages = [];\n this.assembly.nestedAssemblies.forEach((nestedAssembly) => {\n const cloudAssembly = new AssemblyManifestReader(nestedAssembly.nestedAssembly, this.stackDiffs);\n const stacks = cloudAssembly.stacks;\n if (stacks.length === 0) {\n return;\n }\n stages.push({\n name: nestedAssembly.displayName ?? nestedAssembly.id,\n stacks: cloudAssembly.stacks,\n });\n });\n return stages;\n }\n}\nexports.AssemblyManifestReader = AssemblyManifestReader;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZW1ibHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEJBOztHQUVHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDakMsWUFDbUIsUUFBdUIsRUFDdkIsVUFBNEM7UUFENUMsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFrQztJQUM1RCxDQUFDO0lBRUksTUFBTSxDQUFDLFNBQWlCO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsTUFBTTtRQUNmLE1BQU0sTUFBTSxHQUFnQixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixJQUFJLEVBQUUsU0FBUztpQkFDaEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxNQUFNO1FBQ2YsTUFBTSxNQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3hELE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQXNCLENBQzlDLGNBQWMsQ0FBQyxjQUFjLEVBQzdCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3BDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLElBQUksRUFBRSxjQUFjLENBQUMsV0FBVyxJQUFJLGNBQWMsQ0FBQyxFQUFFO2dCQUNyRCxNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07YUFDN0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFoREQsd0RBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpZmYgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBvbiB0aGUgQ0RLIFN0YWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFnZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2tzIHdpdGhpbiB0aGUgc3RhZ2VcbiAgICovXG4gIHN0YWNrczogU3RhY2tJbmZvW107XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gb24gYSBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2tcbiAgICovXG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NlbWJseTogQ2xvdWRBc3NlbWJseSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrRGlmZnM6IHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9LFxuICApIHt9XG5cbiAgcHJpdmF0ZSBpbkRpZmYoc3RhY2tOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0YWNrRGlmZnNbc3RhY2tOYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0YWNrcyBmcm9tIHRoZSBtYW5pZmVzdFxuICAgKiByZXR1cm5zIGEgbWFwIG9mIGFydGlmYWN0SWQgdG8gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhY2tzKCk6IFN0YWNrSW5mb1tdIHtcbiAgICBjb25zdCBzdGFja3M6IFN0YWNrSW5mb1tdID0gW107XG4gICAgdGhpcy5hc3NlbWJseS5zdGFja3MuZm9yRWFjaCgoc3RhY2spID0+IHtcbiAgICAgIGNvbnN0IHN0YWNrTmFtZSA9IHN0YWNrLmRpc3BsYXlOYW1lO1xuICAgICAgaWYgKHRoaXMuaW5EaWZmKHN0YWNrTmFtZSkpIHtcbiAgICAgICAgc3RhY2tzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHN0YWNrTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YWNrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0YWdlcyBpbiB0aGUgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhZ2VzKCk6IFN0YWdlSW5mb1tdIHtcbiAgICBjb25zdCBzdGFnZXM6IFN0YWdlSW5mb1tdID0gW107XG4gICAgdGhpcy5hc3NlbWJseS5uZXN0ZWRBc3NlbWJsaWVzLmZvckVhY2goKG5lc3RlZEFzc2VtYmx5KSA9PiB7XG4gICAgICBjb25zdCBjbG91ZEFzc2VtYmx5ID0gbmV3IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIoXG4gICAgICAgIG5lc3RlZEFzc2VtYmx5Lm5lc3RlZEFzc2VtYmx5LFxuICAgICAgICB0aGlzLnN0YWNrRGlmZnMsXG4gICAgICApO1xuICAgICAgY29uc3Qgc3RhY2tzID0gY2xvdWRBc3NlbWJseS5zdGFja3M7XG4gICAgICBpZiAoc3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdGFnZXMucHVzaCh7XG4gICAgICAgIG5hbWU6IG5lc3RlZEFzc2VtYmx5LmRpc3BsYXlOYW1lID8/IG5lc3RlZEFzc2VtYmx5LmlkLFxuICAgICAgICBzdGFja3M6IGNsb3VkQXNzZW1ibHkuc3RhY2tzLFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YWdlcztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Comments = void 0;\n/**\n * Comments controls interacting with GitHub to make comments\n */\nclass Comments {\n constructor(octokit, context) {\n this.octokit = octokit;\n this.context = context;\n const payload = context.payload;\n this.commitSha = payload.pull_request.head.sha;\n if (!payload.pull_request.number) {\n throw new Error('Cannot find PR number, is this from a pull request?');\n }\n this.issueNumber = this.context.payload.pull_request?.number;\n }\n /**\n * Find the previous comment with the given hash\n *\n * @param hash the unique hash identifying the stage comment to look for\n * @returns the PR comment id or undefined if there is no previous comment\n */\n async findPrevious(hash) {\n const comments = await this.octokit.rest.issues.listComments({\n ...this.context.repo,\n issue_number: this.issueNumber,\n });\n return comments.data.find((comment) => comment.body?.includes(hash))?.id;\n }\n /**\n * Update an existing comment\n *\n * @param hash the unique hash identifying the stage comment to look for\n * @param content the content of the comment\n * @param commentId the id of the comment to update\n */\n async updateComment(commentId, hash, content) {\n const timestamp = new Date().toISOString();\n await this.octokit.rest.issues.updateComment({\n ...this.context.repo,\n body: [\n ``,\n ...content,\n '',\n `_Generated for commit ${this.commitSha} at ${timestamp}_`,\n ].join('\\n'),\n comment_id: commentId,\n });\n }\n /**\n * Create a new comment\n *\n * @param hash the unique hash identifying the stage comment to look for\n * @param content the content of the comment\n */\n async createComment(hash, content) {\n const timestamp = new Date().toISOString();\n await this.octokit.rest.issues.createComment({\n ...this.context.repo,\n body: [\n ``,\n ...content,\n '',\n `_Generated for commit ${this.commitSha} at ${timestamp}_`,\n ].join('\\n'),\n issue_number: this.issueNumber,\n });\n }\n}\nexports.Comments = Comments;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBOztHQUVHO0FBQ0gsTUFBYSxRQUFRO0lBR25CLFlBQ21CLE9BQW9DLEVBQ3BDLE9BQWdCO1FBRGhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFakMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQTJCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFPLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUMzRCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNwQixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQ3hCLFNBQWlCLEVBQ2pCLElBQVksRUFDWixPQUFpQjtRQUVqQixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNwQixJQUFJLEVBQUU7Z0JBQ0osa0NBQWtDLElBQUksTUFBTTtnQkFDNUMsR0FBRyxPQUFPO2dCQUNWLEVBQUU7Z0JBQ0YseUJBQXlCLElBQUksQ0FBQyxTQUFTLE9BQU8sU0FBUyxHQUFHO2FBQzNELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNaLFVBQVUsRUFBRSxTQUFTO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBWSxFQUFFLE9BQWlCO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQzNDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ3BCLElBQUksRUFBRTtnQkFDSixrQ0FBa0MsSUFBSSxNQUFNO2dCQUM1QyxHQUFHLE9BQU87Z0JBQ1YsRUFBRTtnQkFDRix5QkFBeUIsSUFBSSxDQUFDLFNBQVMsT0FBTyxTQUFTLEdBQUc7YUFDM0QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1osWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpFRCw0QkF5RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnQGFjdGlvbnMvZ2l0aHViL2xpYi9jb250ZXh0JztcbmltcG9ydCB7IEdpdEh1YiB9IGZyb20gJ0BhY3Rpb25zL2dpdGh1Yi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgUHVsbFJlcXVlc3RFdmVudCB9IGZyb20gJ0BvY3Rva2l0L3dlYmhvb2tzLWRlZmluaXRpb25zL3NjaGVtYSc7XG5cbi8qKlxuICogQ29tbWVudHMgY29udHJvbHMgaW50ZXJhY3Rpbmcgd2l0aCBHaXRIdWIgdG8gbWFrZSBjb21tZW50c1xuICovXG5leHBvcnQgY2xhc3MgQ29tbWVudHMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlzc3VlTnVtYmVyOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWl0U2hhOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2N0b2tpdDogSW5zdGFuY2VUeXBlPHR5cGVvZiBHaXRIdWI+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogQ29udGV4dCxcbiAgKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGNvbnRleHQucGF5bG9hZCBhcyBQdWxsUmVxdWVzdEV2ZW50O1xuICAgIHRoaXMuY29tbWl0U2hhID0gcGF5bG9hZC5wdWxsX3JlcXVlc3QuaGVhZC5zaGE7XG4gICAgaWYgKCFwYXlsb2FkLnB1bGxfcmVxdWVzdC5udW1iZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgUFIgbnVtYmVyLCBpcyB0aGlzIGZyb20gYSBwdWxsIHJlcXVlc3Q/Jyk7XG4gICAgfVxuICAgIHRoaXMuaXNzdWVOdW1iZXIgPSB0aGlzLmNvbnRleHQucGF5bG9hZC5wdWxsX3JlcXVlc3Q/Lm51bWJlciE7XG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgcHJldmlvdXMgY29tbWVudCB3aXRoIHRoZSBnaXZlbiBoYXNoXG4gICAqXG4gICAqIEBwYXJhbSBoYXNoIHRoZSB1bmlxdWUgaGFzaCBpZGVudGlmeWluZyB0aGUgc3RhZ2UgY29tbWVudCB0byBsb29rIGZvclxuICAgKiBAcmV0dXJucyB0aGUgUFIgY29tbWVudCBpZCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgY29tbWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZpbmRQcmV2aW91cyhoYXNoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbW1lbnRzID0gYXdhaXQgdGhpcy5vY3Rva2l0LnJlc3QuaXNzdWVzLmxpc3RDb21tZW50cyh7XG4gICAgICAuLi50aGlzLmNvbnRleHQucmVwbyxcbiAgICAgIGlzc3VlX251bWJlcjogdGhpcy5pc3N1ZU51bWJlcixcbiAgICB9KTtcbiAgICByZXR1cm4gY29tbWVudHMuZGF0YS5maW5kKChjb21tZW50KSA9PiBjb21tZW50LmJvZHk/LmluY2x1ZGVzKGhhc2gpKT8uaWQ7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGFuIGV4aXN0aW5nIGNvbW1lbnRcbiAgICpcbiAgICogQHBhcmFtIGhhc2ggdGhlIHVuaXF1ZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzdGFnZSBjb21tZW50IHRvIGxvb2sgZm9yXG4gICAqIEBwYXJhbSBjb250ZW50IHRoZSBjb250ZW50IG9mIHRoZSBjb21tZW50XG4gICAqIEBwYXJhbSBjb21tZW50SWQgdGhlIGlkIG9mIHRoZSBjb21tZW50IHRvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUNvbW1lbnQoXG4gICAgY29tbWVudElkOiBudW1iZXIsXG4gICAgaGFzaDogc3RyaW5nLFxuICAgIGNvbnRlbnQ6IHN0cmluZ1tdLFxuICApIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgYXdhaXQgdGhpcy5vY3Rva2l0LnJlc3QuaXNzdWVzLnVwZGF0ZUNvbW1lbnQoe1xuICAgICAgLi4udGhpcy5jb250ZXh0LnJlcG8sXG4gICAgICBib2R5OiBbXG4gICAgICAgIGA8IS0tIGNkayBkaWZmIGFjdGlvbiB3aXRoIGhhc2ggJHtoYXNofSAtLT5gLFxuICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAnJyxcbiAgICAgICAgYF9HZW5lcmF0ZWQgZm9yIGNvbW1pdCAke3RoaXMuY29tbWl0U2hhfSBhdCAke3RpbWVzdGFtcH1fYCxcbiAgICAgIF0uam9pbignXFxuJyksXG4gICAgICBjb21tZW50X2lkOiBjb21tZW50SWQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGNvbW1lbnRcbiAgICpcbiAgICogQHBhcmFtIGhhc2ggdGhlIHVuaXF1ZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzdGFnZSBjb21tZW50IHRvIGxvb2sgZm9yXG4gICAqIEBwYXJhbSBjb250ZW50IHRoZSBjb250ZW50IG9mIHRoZSBjb21tZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlQ29tbWVudChoYXNoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgIGF3YWl0IHRoaXMub2N0b2tpdC5yZXN0Lmlzc3Vlcy5jcmVhdGVDb21tZW50KHtcbiAgICAgIC4uLnRoaXMuY29udGV4dC5yZXBvLFxuICAgICAgYm9keTogW1xuICAgICAgICBgPCEtLSBjZGsgZGlmZiBhY3Rpb24gd2l0aCBoYXNoICR7aGFzaH0gLS0+YCxcbiAgICAgICAgLi4uY29udGVudCxcbiAgICAgICAgJycsXG4gICAgICAgIGBfR2VuZXJhdGVkIGZvciBjb21taXQgJHt0aGlzLmNvbW1pdFNoYX0gYXQgJHt0aW1lc3RhbXB9X2AsXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgaXNzdWVfbnVtYmVyOiB0aGlzLmlzc3VlTnVtYmVyLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackDiff = void 0;\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\n/**\n * StackDiff performs the diff on a stack\n */\nclass StackDiff {\n constructor(stack, allowedDestroyTypes) {\n this.stack = stack;\n this.allowedDestroyTypes = allowedDestroyTypes;\n }\n /** Performs the diff on the CloudFormation stack\n * This reads the existing stack from CFN and then uses the cloudformation-diff\n * package to perform the diff and collect additional information on the type of changes\n */\n async diffStack() {\n const changes = this.evaluateDiff(this.stack.stackName, this.stack.diff);\n return {\n diff: this.stack.diff,\n changes,\n };\n }\n evaluateDiff(templateId, templateDiff) {\n const changes = {\n createdResources: 0,\n removedResources: 0,\n updatedResources: 0,\n destructiveChanges: [],\n };\n // go through all the resource differences and check for any\n // \"destructive\" changes\n templateDiff.resources.forEachDifference((logicalId, change) => {\n // if the change is a removal it will not show up as a 'changeImpact'\n // so need to check for it separately, unless it is a resourceType that\n // has been \"allowed\" to be destroyed\n const resourceType = change.oldValue?.Type ?? change.newValue?.Type;\n switch (resourceType) {\n case 'AWS::CDK::Metadata':\n return;\n case 'AWS::Lambda::Function':\n const keys = Object.keys(change.propertyUpdates);\n if ((keys.length <= 2 && keys.includes('Code')) ||\n keys.includes('Metadata')) {\n return;\n }\n }\n if (change.isUpdate) {\n changes.updatedResources += 1;\n }\n else if (change.isRemoval) {\n changes.removedResources += 1;\n }\n else if (change.isAddition) {\n changes.createdResources += 1;\n }\n if (resourceType && this.allowedDestroyTypes.includes(resourceType)) {\n return;\n }\n if (change.isRemoval) {\n changes.destructiveChanges.push({\n impact: cloudformation_diff_1.ResourceImpact.WILL_DESTROY,\n logicalId,\n stackName: templateId,\n });\n }\n else {\n switch (change.changeImpact) {\n case cloudformation_diff_1.ResourceImpact.MAY_REPLACE:\n case cloudformation_diff_1.ResourceImpact.WILL_ORPHAN:\n case cloudformation_diff_1.ResourceImpact.WILL_DESTROY:\n case cloudformation_diff_1.ResourceImpact.WILL_REPLACE:\n changes.destructiveChanges.push({\n impact: change.changeImpact,\n logicalId,\n stackName: templateId,\n });\n break;\n }\n }\n });\n return changes;\n }\n}\nexports.StackDiff = StackDiff;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUlzQztBQXVFdEM7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFDcEIsWUFDbUIsS0FBb0IsRUFDcEIsbUJBQTZCO1FBRDdCLFVBQUssR0FBTCxLQUFLLENBQWU7UUFDcEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFVO0lBQzdDLENBQUM7SUFFSjs7O09BR0c7SUFDSSxLQUFLLENBQUMsU0FBUztRQUlwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDckIsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUNsQixVQUFrQixFQUNsQixZQUEwQjtRQUUxQixNQUFNLE9BQU8sR0FBa0I7WUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsa0JBQWtCLEVBQUUsRUFBRTtTQUN2QixDQUFDO1FBQ0YsNERBQTREO1FBQzVELHdCQUF3QjtRQUN4QixZQUFZLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUN0QyxDQUFDLFNBQWlCLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1lBQ2hELHFFQUFxRTtZQUNyRSx1RUFBdUU7WUFDdkUscUNBQXFDO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQ3BFLFFBQVEsWUFBWSxFQUFFLENBQUM7Z0JBQ3JCLEtBQUssb0JBQW9CO29CQUN2QixPQUFPO2dCQUNULEtBQUssdUJBQXVCO29CQUMxQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDakQsSUFDRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQ3pCLENBQUM7d0JBQ0QsT0FBTztvQkFDVCxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztpQkFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsSUFBSSxZQUFZLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNyQixPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO29CQUM5QixNQUFNLEVBQUUsb0NBQWMsQ0FBQyxZQUFZO29CQUNuQyxTQUFTO29CQUNULFNBQVMsRUFBRSxVQUFVO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzVCLEtBQUssb0NBQWMsQ0FBQyxXQUFXLENBQUM7b0JBQ2hDLEtBQUssb0NBQWMsQ0FBQyxXQUFXLENBQUM7b0JBQ2hDLEtBQUssb0NBQWMsQ0FBQyxZQUFZLENBQUM7b0JBQ2pDLEtBQUssb0NBQWMsQ0FBQyxZQUFZO3dCQUM5QixPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDOzRCQUM5QixNQUFNLEVBQUUsTUFBTSxDQUFDLFlBQVk7NEJBQzNCLFNBQVM7NEJBQ1QsU0FBUyxFQUFFLFVBQVU7eUJBQ3RCLENBQUMsQ0FBQzt3QkFDSCxNQUFNO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUF0RkQsOEJBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVzb3VyY2VEaWZmZXJlbmNlLFxuICBSZXNvdXJjZUltcGFjdCxcbiAgVGVtcGxhdGVEaWZmLFxufSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0RpZmZJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFja1xuICAgKi9cbiAgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBkaWZmIGZvciB0aGUgc3RhY2tcbiAgICovXG4gIGRpZmY6IFRlbXBsYXRlRGlmZjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZURpZmZJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFnZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2tzIHdpdGhpbiB0aGUgc3RhZ2VcbiAgICovXG4gIHN0YWNrczogU3RhY2tEaWZmSW5mb1tdO1xufVxuXG4vKipcbiAqIERldGFpbHMgb24gd2hhdCBjaGFuZ2VzIGFyZSBvY2N1cnJpbmcgaW4gdGhpcyBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZURldGFpbHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZXNvdXJjZXMgdGhhdCBhcmUgYmVpbmcgdXBkYXRlZFxuICAgKi9cbiAgdXBkYXRlZFJlc291cmNlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHJlc291cmNlcyB0aGF0IGFyZSBiZWluZyByZW1vdmVkXG4gICAqL1xuICByZW1vdmVkUmVzb3VyY2VzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcmVzb3VyY2VzIHRoYXQgYXJlIGJlaW5nIGNyZWF0ZWRcbiAgICovXG4gIGNyZWF0ZWRSZXNvdXJjZXM6IG51bWJlcjtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gb24gYW55IGRlc3RydWN0aXZlIGNoYW5nZXNcbiAgICovXG4gIGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBvbiBhbnkgZGVzdHJ1Y3RpdmUgY2hhbmdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3RydWN0aXZlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBsb2dpY2FsSWQgb2YgdGhlIHJlc291cmNlIHdpdGggYSBkZXN0cnVjdGl2ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWxJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdGhhdCBjb250YWlucyB0aGUgZGVzdHJ1Y3RpdmUgY2hhbmdlXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltcGFjdCBvZiB0aGUgZGVzdHJ1Y3RpdmUgY2hhbmdlXG4gICAqL1xuICByZWFkb25seSBpbXBhY3Q6IFJlc291cmNlSW1wYWN0O1xufVxuXG4vKipcbiAqIFN0YWNrRGlmZiBwZXJmb3JtcyB0aGUgZGlmZiBvbiBhIHN0YWNrXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0RpZmYge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrOiBTdGFja0RpZmZJbmZvLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZERlc3Ryb3lUeXBlczogc3RyaW5nW10sXG4gICkge31cblxuICAvKiogUGVyZm9ybXMgdGhlIGRpZmYgb24gdGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrXG4gICAqIFRoaXMgcmVhZHMgdGhlIGV4aXN0aW5nIHN0YWNrIGZyb20gQ0ZOIGFuZCB0aGVuIHVzZXMgdGhlIGNsb3VkZm9ybWF0aW9uLWRpZmZcbiAgICogcGFja2FnZSB0byBwZXJmb3JtIHRoZSBkaWZmIGFuZCBjb2xsZWN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gdGhlIHR5cGUgb2YgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGRpZmZTdGFjaygpOiBQcm9taXNlPHtcbiAgICBkaWZmOiBUZW1wbGF0ZURpZmY7XG4gICAgY2hhbmdlczogQ2hhbmdlRGV0YWlscztcbiAgfT4ge1xuICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmV2YWx1YXRlRGlmZih0aGlzLnN0YWNrLnN0YWNrTmFtZSwgdGhpcy5zdGFjay5kaWZmKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlmZjogdGhpcy5zdGFjay5kaWZmLFxuICAgICAgY2hhbmdlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBldmFsdWF0ZURpZmYoXG4gICAgdGVtcGxhdGVJZDogc3RyaW5nLFxuICAgIHRlbXBsYXRlRGlmZjogVGVtcGxhdGVEaWZmLFxuICApOiBDaGFuZ2VEZXRhaWxzIHtcbiAgICBjb25zdCBjaGFuZ2VzOiBDaGFuZ2VEZXRhaWxzID0ge1xuICAgICAgY3JlYXRlZFJlc291cmNlczogMCxcbiAgICAgIHJlbW92ZWRSZXNvdXJjZXM6IDAsXG4gICAgICB1cGRhdGVkUmVzb3VyY2VzOiAwLFxuICAgICAgZGVzdHJ1Y3RpdmVDaGFuZ2VzOiBbXSxcbiAgICB9O1xuICAgIC8vIGdvIHRocm91Z2ggYWxsIHRoZSByZXNvdXJjZSBkaWZmZXJlbmNlcyBhbmQgY2hlY2sgZm9yIGFueVxuICAgIC8vIFwiZGVzdHJ1Y3RpdmVcIiBjaGFuZ2VzXG4gICAgdGVtcGxhdGVEaWZmLnJlc291cmNlcy5mb3JFYWNoRGlmZmVyZW5jZShcbiAgICAgIChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiBSZXNvdXJjZURpZmZlcmVuY2UpID0+IHtcbiAgICAgICAgLy8gaWYgdGhlIGNoYW5nZSBpcyBhIHJlbW92YWwgaXQgd2lsbCBub3Qgc2hvdyB1cCBhcyBhICdjaGFuZ2VJbXBhY3QnXG4gICAgICAgIC8vIHNvIG5lZWQgdG8gY2hlY2sgZm9yIGl0IHNlcGFyYXRlbHksIHVubGVzcyBpdCBpcyBhIHJlc291cmNlVHlwZSB0aGF0XG4gICAgICAgIC8vIGhhcyBiZWVuIFwiYWxsb3dlZFwiIHRvIGJlIGRlc3Ryb3llZFxuICAgICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBjaGFuZ2Uub2xkVmFsdWU/LlR5cGUgPz8gY2hhbmdlLm5ld1ZhbHVlPy5UeXBlO1xuICAgICAgICBzd2l0Y2ggKHJlc291cmNlVHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0FXUzo6Q0RLOjpNZXRhZGF0YSc6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJzpcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjaGFuZ2UucHJvcGVydHlVcGRhdGVzKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKGtleXMubGVuZ3RoIDw9IDIgJiYga2V5cy5pbmNsdWRlcygnQ29kZScpKSB8fFxuICAgICAgICAgICAgICBrZXlzLmluY2x1ZGVzKCdNZXRhZGF0YScpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2UuaXNVcGRhdGUpIHtcbiAgICAgICAgICBjaGFuZ2VzLnVwZGF0ZWRSZXNvdXJjZXMgKz0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNSZW1vdmFsKSB7XG4gICAgICAgICAgY2hhbmdlcy5yZW1vdmVkUmVzb3VyY2VzICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmlzQWRkaXRpb24pIHtcbiAgICAgICAgICBjaGFuZ2VzLmNyZWF0ZWRSZXNvdXJjZXMgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzb3VyY2VUeXBlICYmIHRoaXMuYWxsb3dlZERlc3Ryb3lUeXBlcy5pbmNsdWRlcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZS5pc1JlbW92YWwpIHtcbiAgICAgICAgICBjaGFuZ2VzLmRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgIGltcGFjdDogUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZLFxuICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN3aXRjaCAoY2hhbmdlLmNoYW5nZUltcGFjdCkge1xuICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRTpcbiAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU46XG4gICAgICAgICAgICBjYXNlIFJlc291cmNlSW1wYWN0LldJTExfREVTVFJPWTpcbiAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFOlxuICAgICAgICAgICAgICBjaGFuZ2VzLmRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpbXBhY3Q6IGNoYW5nZS5jaGFuZ2VJbXBhY3QsXG4gICAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICAgIHN0YWNrTmFtZTogdGVtcGxhdGVJZCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst action_1 = require(\"./action\");\n(0, action_1.run)().catch((error) => {\n core.setFailed(error.message);\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBc0M7QUFDdEMscUNBQStCO0FBRS9CLElBQUEsWUFBRyxHQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7SUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb3JlIGZyb20gJ0BhY3Rpb25zL2NvcmUnO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSAnLi9hY3Rpb24nO1xuXG5ydW4oKS5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xuICBjb3JlLnNldEZhaWxlZChlcnJvci5tZXNzYWdlKTtcbn0pO1xuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssemblyProcessor = void 0;\nconst crypto = __importStar(require(\"crypto\"));\nconst stream_1 = require(\"stream\");\nconst string_decoder_1 = require(\"string_decoder\");\nconst core_1 = require(\"@actions/core\");\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst assembly_1 = require(\"./assembly\");\nconst diff_1 = require(\"./diff\");\n/**\n * StageProcessor processes a CDK stage and creates a comment on the GitHub PR\n * detailing the stack diffs\n */\nclass AssemblyProcessor {\n constructor(options) {\n this.options = options;\n /**\n * @internal\n */\n this.stageComments = {};\n }\n get stageInfo() {\n if (!this._stageInfo) {\n throw new Error('Stage info has not been created yet');\n }\n return this._stageInfo;\n }\n processAssembly(cloudAssembly) {\n const assembly = new assembly_1.AssemblyManifestReader(cloudAssembly, this.templateDiffs);\n this._stageInfo = assembly.stages;\n if (assembly.stacks.length) {\n this.stageInfo.push({\n name: this.options.defaultStageDisplayName,\n stacks: assembly.stacks,\n });\n }\n }\n get templateDiffs() {\n if (!this._templateDiffs) {\n throw new Error('Template diffs have not been created yet');\n }\n return this._templateDiffs;\n }\n get stageDiffInfo() {\n if (this._stages) {\n return this._stages;\n }\n this._stages = this.stageInfo.flatMap((stage) => {\n this.stageComments[stage.name] = {\n title: this.options.title,\n destructiveChanges: 0,\n stackComments: stage.stacks.reduce((prev, curr) => {\n prev[curr.name] = [];\n return prev;\n }, {}),\n hash: md5Hash(JSON.stringify({\n stageName: stage.name,\n title: this.options.title,\n ...stage.stacks.reduce((prev, curr) => {\n prev.stacks.push({\n name: curr.name,\n });\n return prev;\n }, { stacks: [] }),\n })),\n };\n return {\n name: stage.name,\n stacks: stage.stacks.map((stack) => {\n if (!this.templateDiffs[stack.name]) {\n throw new Error(`Template diffs have not been created yet for stack ${stack.name}`);\n }\n return {\n stackName: stack.name,\n diff: this.templateDiffs[stack.name],\n };\n }),\n };\n });\n return this._stages;\n }\n async diffApp() {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const assemblySource = await this.options.toolkit.fromAssemblyDirectory(this.options.cdkOutDir, {\n // When checkVersion=true it means users can't upgrade their CDK version before\n // we do and they pull in the new action version. Probably better to default to false\n // and see what happens\n loadAssemblyOptions: { checkVersion: false },\n failOnMissingContext: false,\n });\n const selector = this.options.stackSelectorPatterns.length > 0\n ? {\n strategy: this.options\n .stackSelectionStrategy,\n patterns: this.options.stackSelectorPatterns,\n }\n : {\n strategy: this.options\n .stackSelectionStrategy,\n };\n const diffResult = await this.options.toolkit.diff(assemblySource, {\n stacks: selector,\n method: this.options.diffMethod,\n });\n this._templateDiffs = diffResult;\n const cloudAssembly = __addDisposableResource(env_1, await assemblySource.produce(), true);\n this.processAssembly(cloudAssembly.cloudAssembly);\n return diffResult;\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n }\n /**\n * Process all of the stages. Once this has been run\n * the comment can be created with `commentStages()`\n */\n async processStages(ignoreDestructiveChanges = []) {\n if (!this._templateDiffs) {\n await this.diffApp();\n }\n (0, core_1.debug)(`Diffs: ${JSON.stringify(this._templateDiffs, null, 2)}`);\n for (const stage of this.stageDiffInfo) {\n for (const stack of stage.stacks) {\n try {\n const { comment, changes } = await this.diffStack(stack);\n (0, core_1.debug)(`Diff for stack ${stack.stackName}: ${JSON.stringify(comment, null, 2)}`);\n this.stageComments[stage.name].stackComments[stack.stackName].push(...comment);\n if (!ignoreDestructiveChanges.includes(stage.name)) {\n this.stageComments[stage.name].destructiveChanges += changes;\n }\n }\n catch (e) {\n console.error('Error processing stages: ', e);\n throw e;\n }\n }\n }\n }\n async commentStack(comments, stageName, stackName, comment) {\n const hash = md5Hash(JSON.stringify({\n title: this.options.title,\n stageName,\n stackName,\n }));\n const stackComment = this.getCommentForStack(stageName, stackName, comment);\n const previous = await comments.findPrevious(hash);\n try {\n if (previous) {\n await comments.updateComment(previous, hash, stackComment);\n }\n else {\n await comments.createComment(hash, stackComment);\n }\n }\n catch (e) {\n this.handleError(e, `Comment for stack ${stackName} is too long, please report this as a bug https://github.com/corymhall/cdk-diff-action/issues/new`);\n }\n }\n /**\n * Try to comment all the individual stacks\n * Do it in parallel so that we don't stop if one of them fails\n */\n async commentStacks(comments, stageName, stage) {\n const commentPromises = [];\n for (const [stackName, comment] of Object.entries(stage.stackComments)) {\n commentPromises.push(this.commentStack(comments, stageName, stackName, comment));\n }\n const res = await Promise.allSettled(commentPromises);\n const failed = res\n .filter((r) => r.status === 'rejected')\n .flatMap((r) => r.reason);\n if (failed && failed.length > 0) {\n throw new Error('Error commenting stacks: \\n' + failed.join('\\n'));\n }\n }\n bodyTooLongError(e) {\n if (e.response) {\n const err = e.response;\n return (err.data.errors?.some((er) => er.message?.includes('Body is too long')) ?? false);\n }\n return false;\n }\n handleError(e, message) {\n if (this.bodyTooLongError(e)) {\n throw new Error(message);\n }\n throw e;\n }\n async commentStage(comments, hash, comment) {\n const previous = await comments.findPrevious(hash);\n if (previous) {\n await comments.updateComment(previous, hash, comment);\n }\n else {\n await comments.createComment(hash, comment);\n }\n }\n /**\n * Create the GitHub comment for the stage\n * This will try to create a single comment per stage, but if the comment\n * is too long it will create a comment per stack\n * @param comments the comments object to use to create the comment\n */\n async commentStages(comments) {\n for (const [stageName, comment] of Object.entries(this.stageComments)) {\n const stageComment = this.getCommentForStage(stageName);\n try {\n await this.commentStage(comments, comment.hash, stageComment);\n }\n catch (e) {\n if (this.bodyTooLongError(e) &&\n Object.keys(comment.stackComments).length > 1) {\n await this.commentStacks(comments, stageName, comment);\n }\n else {\n throw e;\n }\n }\n }\n }\n /**\n * Returns whether or not there are destructive changes in this stage\n */\n get hasDestructiveChanges() {\n for (const comments of Object.values(this.stageComments)) {\n if (comments.destructiveChanges) {\n return true;\n }\n }\n return false;\n }\n async diffStack(stack) {\n try {\n const stackDiff = new diff_1.StackDiff(stack, this.options.allowedDestroyTypes);\n const { diff, changes } = await stackDiff.diffStack();\n return {\n comment: this.formatStackComment(stack.stackName, diff, changes),\n changes: changes.destructiveChanges.length,\n };\n }\n catch (e) {\n console.error('Error performing stack diff: ', e);\n throw e;\n }\n }\n getEmoji(changes) {\n if (changes.destructiveChanges.length || changes.removedResources) {\n return ':x:';\n }\n else if (changes.updatedResources) {\n return ':yellow_circle:';\n }\n else if (changes.createdResources) {\n return ':sparkle:';\n }\n return ':white_check_mark:';\n }\n formatStackComment(stackName, diff, changes) {\n const output = [];\n const emoji = this.getEmoji(changes);\n if (diff.isEmpty) {\n output.push(`No Changes for stack: ${stackName} ${emoji}`);\n return output;\n }\n output.push(...[\n `#### Diff for stack: ${stackName} - ` +\n `***${changes.createdResources} to add, ${changes.updatedResources} to update, ${changes.removedResources} to destroy*** ` +\n emoji,\n '
Details',\n '',\n ]);\n if (changes.destructiveChanges.length) {\n output.push('');\n (output.push('> [!WARNING]\\n> ***Destructive Changes*** :bangbang:'),\n changes.destructiveChanges.forEach((change) => {\n output.push(`> **Stack: ${change.stackName} - Resource: ${change.logicalId} - Impact:** ***${change.impact}***`);\n output.push('');\n }));\n }\n const writable = new StringWritable({});\n (0, cloudformation_diff_1.formatDifferences)(writable, diff);\n output.push('');\n output.push('```shell');\n output.push(writable.data);\n output.push('```');\n output.push('
');\n output.push('');\n return output;\n }\n /**\n * Only used when the stage comment is too long and we are creating\n * a separate comment for each stack\n */\n getCommentForStack(stageName, stackName, comment) {\n const output = [];\n if (!comment.length) {\n return output;\n }\n if (this.options.title) {\n output.push(`## ${this.options.title}`);\n output.push('');\n }\n output.push(`### Diff for stack: ${stageName} / ${stackName}`);\n return output.concat(comment);\n }\n getCommentForStage(stageName) {\n const output = [];\n const stageComments = this.stageComments[stageName];\n const comments = Object.values(this.stageComments[stageName].stackComments).flatMap((x) => x);\n if (!comments.length) {\n return output;\n }\n if (this.options.title) {\n output.push(`## ${this.options.title}`);\n output.push('');\n }\n output.push(`### Diff for stage: ${stageName}`);\n if (stageComments.destructiveChanges) {\n output.push(`> [!WARNING]\\n> ${stageComments.destructiveChanges} Destructive Changes`);\n output.push('');\n }\n return output.concat(comments);\n }\n}\nexports.AssemblyProcessor = AssemblyProcessor;\nclass StringWritable extends stream_1.Writable {\n constructor(options) {\n super(options);\n this._decoder = new string_decoder_1.StringDecoder();\n this.data = '';\n }\n _write(chunk, encoding, callback) {\n if (encoding === 'buffer') {\n chunk = this._decoder.write(chunk);\n }\n this.data += chunk;\n callback();\n }\n _final(callback) {\n this.data += this._decoder.end();\n callback();\n }\n}\nfunction md5Hash(val) {\n return crypto.createHash('md5').update(val).digest('hex');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YWdlLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBQ2pDLG1DQUFtRDtBQUNuRCxtREFBK0M7QUFDL0Msd0NBQXNDO0FBRXRDLHNFQUErRTtBQVEvRSx5Q0FBMEU7QUFFMUUsaUNBQWdGO0FBcUNoRjs7O0dBR0c7QUFDSCxNQUFhLGlCQUFpQjtJQVE1QixZQUFvQixPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQVByRDs7V0FFRztRQUNhLGtCQUFhLEdBQTBDLEVBQUUsQ0FBQztJQUlsQixDQUFDO0lBRXpELElBQVksU0FBUztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlLENBQUMsYUFBNEI7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQ0FBc0IsQ0FDekMsYUFBYSxFQUNiLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUI7Z0JBQzFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFD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SUFDMUIsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgV3JpdGFibGUsIFdyaXRhYmxlT3B0aW9ucyB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgeyBTdHJpbmdEZWNvZGVyIH0gZnJvbSAnc3RyaW5nX2RlY29kZXInO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tICdAYWN0aW9ucy9jb3JlJztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgVGVtcGxhdGVEaWZmLCBmb3JtYXREaWZmZXJlbmNlcyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHtcbiAgRGlmZk1ldGhvZCxcbiAgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSxcbiAgU3RhY2tTZWxlY3RvcixcbiAgVG9vbGtpdCxcbn0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0RXJyb3IsIE9jdG9raXRSZXNwb25zZSB9IGZyb20gJ0BvY3Rva2l0L3R5cGVzJztcbmltcG9ydCB7IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIsIFN0YWNrSW5mbywgU3RhZ2VJbmZvIH0gZnJvbSAnLi9hc3NlbWJseSc7XG5pbXBvcnQgeyBDb21tZW50cyB9IGZyb20gJy4vY29tbWVudCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRhaWxzLCBTdGFja0RpZmYsIFN0YWNrRGlmZkluZm8sIFN0YWdlRGlmZkluZm8gfSBmcm9tICcuL2RpZmYnO1xuaW1wb3J0IHsgSW5wdXRzIH0gZnJvbSAnLi9pbnB1dHMnO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIG5lZWRlZCB0byBtYWtlIGEgY29tbWVudCBmb3IgYSBDREsgU3RhZ2VcbiAqL1xuaW50ZXJmYWNlIFN0YWdlQ29tbWVudCB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBjb21tZW50IGZvciBlYWNoIHN0YWNrLiBUaGUgbGlzdCB3aWxsIGJlIGpvaW5lZCB3aXRoIFxcblxuICAgKi9cbiAgc3RhY2tDb21tZW50czogeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGNvbW1lbnRcbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGhhc2ggZm9yIHRoZSBzdGFnZSBjb21tZW50XG4gICAqIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGxvb2t1cCB0aGUgc3RhZ2UgY29tbWVudCBvbiB0aGUgUFJcbiAgICogc28gdGhhdCBpdCBjYW4gYmUgb3ZlcndyaXR0ZW5cbiAgICovXG4gIGhhc2g6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkZXN0cnVjdGl2ZSBjaGFuZ2VzIGluIHRoaXMgc3RhZ2VcbiAgICovXG4gIGRlc3RydWN0aXZlQ2hhbmdlczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5UHJvY2Vzc29yT3B0aW9uc1xuICBleHRlbmRzIE9taXQ8SW5wdXRzLCAnZ2l0aHViVG9rZW4nIHwgJ2RpZmZNZXRob2QnPiB7XG4gIGRpZmZNZXRob2Q6IERpZmZNZXRob2Q7XG4gIHRvb2xraXQ6IFRvb2xraXQ7XG4gIGRlZmF1bHRTdGFnZURpc3BsYXlOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU3RhZ2VQcm9jZXNzb3IgcHJvY2Vzc2VzIGEgQ0RLIHN0YWdlIGFuZCBjcmVhdGVzIGEgY29tbWVudCBvbiB0aGUgR2l0SHViIFBSXG4gKiBkZXRhaWxpbmcgdGhlIHN0YWNrIGRpZmZzXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NlbWJseVByb2Nlc3NvciB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFnZUNvbW1lbnRzOiB7IFtzdGFnZU5hbWU6IHN0cmluZ106IFN0YWdlQ29tbWVudCB9ID0ge307XG4gIHByaXZhdGUgX3N0YWdlSW5mbz86IFN0YWdlSW5mb1tdO1xuICBwcml2YXRlIF9zdGFnZXM/OiBTdGFnZURpZmZJbmZvW107XG4gIHByaXZhdGUgX3RlbXBsYXRlRGlmZnM/OiB7IFtzdGFja05hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IEFzc2VtYmx5UHJvY2Vzc29yT3B0aW9ucykge31cblxuICBwcml2YXRlIGdldCBzdGFnZUluZm8oKTogU3RhZ2VJbmZvW10ge1xuICAgIGlmICghdGhpcy5fc3RhZ2VJbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YWdlIGluZm8gaGFzIG5vdCBiZWVuIGNyZWF0ZWQgeWV0Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdGFnZUluZm87XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NBc3NlbWJseShjbG91ZEFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5KSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgQXNzZW1ibHlNYW5pZmVzdFJlYWRlcihcbiAgICAgIGNsb3VkQXNzZW1ibHksXG4gICAgICB0aGlzLnRlbXBsYXRlRGlmZnMsXG4gICAgKTtcbiAgICB0aGlzLl9zdGFnZUluZm8gPSBhc3NlbWJseS5zdGFnZXM7XG4gICAgaWYgKGFzc2VtYmx5LnN0YWNrcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RhZ2VJbmZvLnB1c2goe1xuICAgICAgICBuYW1lOiB0aGlzLm9wdGlvbnMuZGVmYXVsdFN0YWdlRGlzcGxheU5hbWUsXG4gICAgICAgIHN0YWNrczogYXNzZW1ibHkuc3RhY2tzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdGVtcGxhdGVEaWZmcygpOiB7IFtzdGFja05hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9IHtcbiAgICBpZiAoIXRoaXMuX3RlbXBsYXRlRGlmZnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVtcGxhdGUgZGlmZnMgaGF2ZSBub3QgYmVlbiBjcmVhdGVkIHlldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVEaWZmcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHN0YWdlRGlmZkluZm8oKTogU3RhZ2VEaWZmSW5mb1tdIHtcbiAgICBpZiAodGhpcy5fc3RhZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3RhZ2VzO1xuICAgIH1cbiAgICB0aGlzLl9zdGFnZXMgPSB0aGlzLnN0YWdlSW5mby5mbGF0TWFwKChzdGFnZSkgPT4ge1xuICAgICAgdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlLm5hbWVdID0ge1xuICAgICAgICB0aXRsZTogdGhpcy5vcHRpb25zLnRpdGxlLFxuICAgICAgICBkZXN0cnVjdGl2ZUNoYW5nZXM6IDAsXG4gICAgICAgIHN0YWNrQ29tbWVudHM6IHN0YWdlLnN0YWNrcy5yZWR1Y2UoXG4gICAgICAgICAgKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgICAgIHByZXZbY3Vyci5uYW1lXSA9IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7fSBhcyB7IFtzdGFja05hbWU6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICAgICAgICksXG4gICAgICAgIGhhc2g6IG1kNUhhc2goXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgc3RhZ2VOYW1lOiBzdGFnZS5uYW1lLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMub3B0aW9ucy50aXRsZSxcbiAgICAgICAgICAgIC4uLnN0YWdlLnN0YWNrcy5yZWR1Y2UoXG4gICAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgcHJldi5zdGFja3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBjdXJyLm5hbWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgc3RhY2tzOiBbXSB9IGFzIHsgc3RhY2tzOiBTdGFja0luZm9bXSB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBzdGFnZS5uYW1lLFxuICAgICAgICBzdGFja3M6IHN0YWdlLnN0YWNrcy5tYXAoKHN0YWNrKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlRGlmZnNbc3RhY2submFtZV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFRlbXBsYXRlIGRpZmZzIGhhdmUgbm90IGJlZW4gY3JlYXRlZCB5ZXQgZm9yIHN0YWNrICR7c3RhY2submFtZX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YWNrTmFtZTogc3RhY2submFtZSxcbiAgICAgICAgICAgIGRpZmY6IHRoaXMudGVtcGxhdGVEaWZmc1tzdGFjay5uYW1lXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWdlcztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaWZmQXBwKCk6IFByb21pc2U8eyBbbmFtZTogc3RyaW5nXTogVGVtcGxhdGVEaWZmIH0+IHtcbiAgICBjb25zdCBhc3NlbWJseVNvdXJjZSA9IGF3YWl0IHRoaXMub3B0aW9ucy50b29sa2l0LmZyb21Bc3NlbWJseURpcmVjdG9yeShcbiAgICAgIHRoaXMub3B0aW9ucy5jZGtPdXREaXIsXG4gICAgICB7XG4gICAgICAgIC8vIFdoZW4gY2hlY2tWZXJzaW9uPXRydWUgaXQgbWVhbnMgdXNlcnMgY2FuJ3QgdXBncmFkZSB0aGVpciBDREsgdmVyc2lvbiBiZWZvcmVcbiAgICAgICAgLy8gd2UgZG8gYW5kIHRoZXkgcHVsbCBpbiB0aGUgbmV3IGFjdGlvbiB2ZXJzaW9uLiBQcm9iYWJseSBiZXR0ZXIgdG8gZGVmYXVsdCB0byBmYWxzZVxuICAgICAgICAvLyBhbmQgc2VlIHdoYXQgaGFwcGVuc1xuICAgICAgICBsb2FkQXNzZW1ibHlPcHRpb25zOiB7IGNoZWNrVmVyc2lvbjogZmFsc2UgfSxcbiAgICAgICAgZmFpbE9uTWlzc2luZ0NvbnRleHQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3Qgc2VsZWN0b3I6IFN0YWNrU2VsZWN0b3IgPVxuICAgICAgdGhpcy5vcHRpb25zLnN0YWNrU2VsZWN0b3JQYXR0ZXJucy5sZW5ndGggPiAwXG4gICAgICAgID8ge1xuICAgICAgICAgICAgc3RyYXRlZ3k6IHRoaXMub3B0aW9uc1xuICAgICAgICAgICAgICAuc3RhY2tTZWxlY3Rpb25TdHJhdGVneSBhcyBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgcGF0dGVybnM6IHRoaXMub3B0aW9ucy5zdGFja1NlbGVjdG9yUGF0dGVybnMsXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHN0cmF0ZWd5OiB0aGlzLm9wdGlvbnNcbiAgICAgICAgICAgICAgLnN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgYXMgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSxcbiAgICAgICAgICB9O1xuICAgIGNvbnN0IGRpZmZSZXN1bHQgPSBhd2FpdCB0aGlzLm9wdGlvbnMudG9vbGtpdC5kaWZmKGFzc2VtYmx5U291cmNlLCB7XG4gICAgICBzdGFja3M6IHNlbGVjdG9yLFxuICAgICAgbWV0aG9kOiB0aGlzLm9wdGlvbnMuZGlmZk1ldGhvZCxcbiAgICB9KTtcblxuICAgIHRoaXMuX3RlbXBsYXRlRGlmZnMgPSBkaWZmUmVzdWx0O1xuICAgIGF3YWl0IHVzaW5nIGNsb3VkQXNzZW1ibHkgPSBhd2FpdCBhc3NlbWJseVNvdXJjZS5wcm9kdWNlKCk7XG4gICAgdGhpcy5wcm9jZXNzQXNzZW1ibHkoY2xvdWRBc3NlbWJseS5jbG91ZEFzc2VtYmx5KTtcbiAgICByZXR1cm4gZGlmZlJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGFsbCBvZiB0aGUgc3RhZ2VzLiBPbmNlIHRoaXMgaGFzIGJlZW4gcnVuXG4gICAqIHRoZSBjb21tZW50IGNhbiBiZSBjcmVhdGVkIHdpdGggYGNvbW1lbnRTdGFnZXMoKWBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwcm9jZXNzU3RhZ2VzKGlnbm9yZURlc3RydWN0aXZlQ2hhbmdlczogc3RyaW5nW10gPSBbXSkge1xuICAgIGlmICghdGhpcy5fdGVtcGxhdGVEaWZmcykge1xuICAgICAgYXdhaXQgdGhpcy5kaWZmQXBwKCk7XG4gICAgfVxuICAgIGRlYnVnKGBEaWZmczogJHtKU09OLnN0cmluZ2lmeSh0aGlzLl90ZW1wbGF0ZURpZmZzLCBudWxsLCAyKX1gKTtcbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHRoaXMuc3RhZ2VEaWZmSW5mbykge1xuICAgICAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFnZS5zdGFja3MpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7IGNvbW1lbnQsIGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMuZGlmZlN0YWNrKHN0YWNrKTtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEaWZmIGZvciBzdGFjayAke3N0YWNrLnN0YWNrTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoY29tbWVudCwgbnVsbCwgMil9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc3RhZ2VDb21tZW50c1tzdGFnZS5uYW1lXS5zdGFja0NvbW1lbnRzW3N0YWNrLnN0YWNrTmFtZV0ucHVzaChcbiAgICAgICAgICAgIC4uLmNvbW1lbnQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWlnbm9yZURlc3RydWN0aXZlQ2hhbmdlcy5pbmNsdWRlcyhzdGFnZS5uYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlLm5hbWVdLmRlc3RydWN0aXZlQ2hhbmdlcyArPSBjaGFuZ2VzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBzdGFnZXM6ICcsIGUpO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbW1lbnRTdGFjayhcbiAgICBjb21tZW50czogQ29tbWVudHMsXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgY29tbWVudDogc3RyaW5nW10sXG4gICkge1xuICAgIGNvbnN0IGhhc2ggPSBtZDVIYXNoKFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB0aXRsZTogdGhpcy5vcHRpb25zLnRpdGxlLFxuICAgICAgICBzdGFnZU5hbWUsXG4gICAgICAgIHN0YWNrTmFtZSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgY29uc3Qgc3RhY2tDb21tZW50ID0gdGhpcy5nZXRDb21tZW50Rm9yU3RhY2soc3RhZ2VOYW1lLCBzdGFja05hbWUsIGNvbW1lbnQpO1xuICAgIGNvbnN0IHByZXZpb3VzID0gYXdhaXQgY29tbWVudHMuZmluZFByZXZpb3VzKGhhc2gpO1xuICAgIHRyeSB7XG4gICAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgICAgYXdhaXQgY29tbWVudHMudXBkYXRlQ29tbWVudChwcmV2aW91cywgaGFzaCwgc3RhY2tDb21tZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGNvbW1lbnRzLmNyZWF0ZUNvbW1lbnQoaGFzaCwgc3RhY2tDb21tZW50KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoXG4gICAgICAgIGUsXG4gICAgICAgIGBDb21tZW50IGZvciBzdGFjayAke3N0YWNrTmFtZX0gaXMgdG9vIGxvbmcsIHBsZWFzZSByZXBvcnQgdGhpcyBhcyBhIGJ1ZyBodHRwczovL2dpdGh1Yi5jb20vY29yeW1oYWxsL2Nkay1kaWZmLWFjdGlvbi9pc3N1ZXMvbmV3YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBjb21tZW50IGFsbCB0aGUgaW5kaXZpZHVhbCBzdGFja3NcbiAgICogRG8gaXQgaW4gcGFyYWxsZWwgc28gdGhhdCB3ZSBkb24ndCBzdG9wIGlmIG9uZSBvZiB0aGVtIGZhaWxzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNvbW1lbnRTdGFja3MoXG4gICAgY29tbWVudHM6IENvbW1lbnRzLFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWdlOiBTdGFnZUNvbW1lbnQsXG4gICkge1xuICAgIGNvbnN0IGNvbW1lbnRQcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW107XG4gICAgZm9yIChjb25zdCBbc3RhY2tOYW1lLCBjb21tZW50XSBvZiBPYmplY3QuZW50cmllcyhzdGFnZS5zdGFja0NvbW1lbnRzKSkge1xuICAgICAgY29tbWVudFByb21pc2VzLnB1c2goXG4gICAgICAgIHRoaXMuY29tbWVudFN0YWNrKGNvbW1lbnRzLCBzdGFnZU5hbWUsIHN0YWNrTmFtZSwgY29tbWVudCksXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCByZXMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoY29tbWVudFByb21pc2VzKTtcbiAgICBjb25zdCBmYWlsZWQgPSByZXNcbiAgICAgIC5maWx0ZXIoKHIpID0+IHIuc3RhdHVzID09PSAncmVqZWN0ZWQnKVxuICAgICAgLmZsYXRNYXAoKHIpID0+IHIucmVhc29uKTtcbiAgICBpZiAoZmFpbGVkICYmIGZhaWxlZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGNvbW1lbnRpbmcgc3RhY2tzOiBcXG4nICsgZmFpbGVkLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJvZHlUb29Mb25nRXJyb3IoZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGUucmVzcG9uc2UpIHtcbiAgICAgIGNvbnN0IGVyciA9IGUucmVzcG9uc2UgYXMgT2N0b2tpdFJlc3BvbnNlPFJlcXVlc3RFcnJvciwgbnVtYmVyPjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGVyci5kYXRhLmVycm9ycz8uc29tZSgoZXIpID0+XG4gICAgICAgICAgZXIubWVzc2FnZT8uaW5jbHVkZXMoJ0JvZHkgaXMgdG9vIGxvbmcnKSxcbiAgICAgICAgKSA/PyBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlOiBhbnksIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmJvZHlUb29Mb25nRXJyb3IoZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29tbWVudFN0YWdlKFxuICAgIGNvbW1lbnRzOiBDb21tZW50cyxcbiAgICBoYXNoOiBzdHJpbmcsXG4gICAgY29tbWVudDogc3RyaW5nW10sXG4gICkge1xuICAgIGNvbnN0IHByZXZpb3VzID0gYXdhaXQgY29tbWVudHMuZmluZFByZXZpb3VzKGhhc2gpO1xuICAgIGlmIChwcmV2aW91cykge1xuICAgICAgYXdhaXQgY29tbWVudHMudXBkYXRlQ29tbWVudChwcmV2aW91cywgaGFzaCwgY29tbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGNvbW1lbnRzLmNyZWF0ZUNvbW1lbnQoaGFzaCwgY29tbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgR2l0SHViIGNvbW1lbnQgZm9yIHRoZSBzdGFnZVxuICAgKiBUaGlzIHdpbGwgdHJ5IHRvIGNyZWF0ZSBhIHNpbmdsZSBjb21tZW50IHBlciBzdGFnZSwgYnV0IGlmIHRoZSBjb21tZW50XG4gICAqIGlzIHRvbyBsb25nIGl0IHdpbGwgY3JlYXRlIGEgY29tbWVudCBwZXIgc3RhY2tcbiAgICogQHBhcmFtIGNvbW1lbnRzIHRoZSBjb21tZW50cyBvYmplY3QgdG8gdXNlIHRvIGNyZWF0ZSB0aGUgY29tbWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbW1lbnRTdGFnZXMoY29tbWVudHM6IENvbW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBbc3RhZ2VOYW1lLCBjb21tZW50XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnN0YWdlQ29tbWVudHMpKSB7XG4gICAgICBjb25zdCBzdGFnZUNvbW1lbnQgPSB0aGlzLmdldENvbW1lbnRGb3JTdGFnZShzdGFnZU5hbWUpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb21tZW50U3RhZ2UoY29tbWVudHMsIGNvbW1lbnQuaGFzaCwgc3RhZ2VDb21tZW50KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5ib2R5VG9vTG9uZ0Vycm9yKGUpICYmXG4gICAgICAgICAgT2JqZWN0LmtleXMoY29tbWVudC5zdGFja0NvbW1lbnRzKS5sZW5ndGggPiAxXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWVudFN0YWNrcyhjb21tZW50cywgc3RhZ2VOYW1lLCBjb21tZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlcmUgYXJlIGRlc3RydWN0aXZlIGNoYW5nZXMgaW4gdGhpcyBzdGFnZVxuICAgKi9cbiAgcHVibGljIGdldCBoYXNEZXN0cnVjdGl2ZUNoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBjb21tZW50cyBvZiBPYmplY3QudmFsdWVzKHRoaXMuc3RhZ2VDb21tZW50cykpIHtcbiAgICAgIGlmIChjb21tZW50cy5kZXN0cnVjdGl2ZUNoYW5nZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGlmZlN0YWNrKFxuICAgIHN0YWNrOiBTdGFja0RpZmZJbmZvLFxuICApOiBQcm9taXNlPHsgY29tbWVudDogc3RyaW5nW107IGNoYW5nZXM6IG51bWJlciB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YWNrRGlmZiA9IG5ldyBTdGFja0RpZmYoc3RhY2ssIHRoaXMub3B0aW9ucy5hbGxvd2VkRGVzdHJveVR5cGVzKTtcbiAgICAgIGNvbnN0IHsgZGlmZiwgY2hhbmdlcyB9ID0gYXdhaXQgc3RhY2tEaWZmLmRpZmZTdGFjaygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29tbWVudDogdGhpcy5mb3JtYXRTdGFja0NvbW1lbnQoc3RhY2suc3RhY2tOYW1lLCBkaWZmLCBjaGFuZ2VzKSxcbiAgICAgICAgY2hhbmdlczogY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMubGVuZ3RoLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBlcmZvcm1pbmcgc3RhY2sgZGlmZjogJywgZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW1vamkoY2hhbmdlczogQ2hhbmdlRGV0YWlscyk6IHN0cmluZyB7XG4gICAgaWYgKGNoYW5nZXMuZGVzdHJ1Y3RpdmVDaGFuZ2VzLmxlbmd0aCB8fCBjaGFuZ2VzLnJlbW92ZWRSZXNvdXJjZXMpIHtcbiAgICAgIHJldHVybiAnOng6JztcbiAgICB9IGVsc2UgaWYgKGNoYW5nZXMudXBkYXRlZFJlc291cmNlcykge1xuICAgICAgcmV0dXJuICc6eWVsbG93X2NpcmNsZTonO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlcy5jcmVhdGVkUmVzb3VyY2VzKSB7XG4gICAgICByZXR1cm4gJzpzcGFya2xlOic7XG4gICAgfVxuICAgIHJldHVybiAnOndoaXRlX2NoZWNrX21hcms6JztcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U3RhY2tDb21tZW50KFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIGRpZmY6IFRlbXBsYXRlRGlmZixcbiAgICBjaGFuZ2VzOiBDaGFuZ2VEZXRhaWxzLFxuICApOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGVtb2ppID0gdGhpcy5nZXRFbW9qaShjaGFuZ2VzKTtcbiAgICBpZiAoZGlmZi5pc0VtcHR5KSB7XG4gICAgICBvdXRwdXQucHVzaChgTm8gQ2hhbmdlcyBmb3Igc3RhY2s6ICR7c3RhY2tOYW1lfSAke2Vtb2ppfWApO1xuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgb3V0cHV0LnB1c2goXG4gICAgICAuLi5bXG4gICAgICAgIGAjIyMjIERpZmYgZm9yIHN0YWNrOiAke3N0YWNrTmFtZX0gLSBgICtcbiAgICAgICAgICBgKioqJHtjaGFuZ2VzLmNyZWF0ZWRSZXNvdXJjZXN9IHRvIGFkZCwgJHtjaGFuZ2VzLnVwZGF0ZWRSZXNvdXJjZXN9IHRvIHVwZGF0ZSwgJHtjaGFuZ2VzLnJlbW92ZWRSZXNvdXJjZXN9IHRvIGRlc3Ryb3kqKiogIGAgK1xuICAgICAgICAgIGVtb2ppLFxuICAgICAgICAnPGRldGFpbHM+PHN1bW1hcnk+RGV0YWlsczwvc3VtbWFyeT4nLFxuICAgICAgICAnJyxcbiAgICAgIF0sXG4gICAgKTtcbiAgICBpZiAoY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMubGVuZ3RoKSB7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICAob3V0cHV0LnB1c2goJz4gWyFXQVJOSU5HXVxcbj4gKioqRGVzdHJ1Y3RpdmUgQ2hhbmdlcyoqKiA6YmFuZ2Jhbmc6JyksXG4gICAgICAgIGNoYW5nZXMuZGVzdHJ1Y3RpdmVDaGFuZ2VzLmZvckVhY2goKGNoYW5nZSkgPT4ge1xuICAgICAgICAgIG91dHB1dC5wdXNoKFxuICAgICAgICAgICAgYD4gKipTdGFjazogJHtjaGFuZ2Uuc3RhY2tOYW1lfSAtIFJlc291cmNlOiAke2NoYW5nZS5sb2dpY2FsSWR9IC0gSW1wYWN0OioqICoqKiR7Y2hhbmdlLmltcGFjdH0qKipgLFxuICAgICAgICAgICk7XG4gICAgICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGNvbnN0IHdyaXRhYmxlID0gbmV3IFN0cmluZ1dyaXRhYmxlKHt9KTtcbiAgICBmb3JtYXREaWZmZXJlbmNlcyh3cml0YWJsZSwgZGlmZik7XG5cbiAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgb3V0cHV0LnB1c2goJ2BgYHNoZWxsJyk7XG4gICAgb3V0cHV0LnB1c2god3JpdGFibGUuZGF0YSk7XG4gICAgb3V0cHV0LnB1c2goJ2BgYCcpO1xuICAgIG91dHB1dC5wdXNoKCc8L2RldGFpbHM+Jyk7XG4gICAgb3V0cHV0LnB1c2goJycpO1xuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cblxuICAvKipcbiAgICogT25seSB1c2VkIHdoZW4gdGhlIHN0YWdlIGNvbW1lbnQgaXMgdG9vIGxvbmcgYW5kIHdlIGFyZSBjcmVhdGluZ1xuICAgKiBhIHNlcGFyYXRlIGNvbW1lbnQgZm9yIGVhY2ggc3RhY2tcbiAgICovXG4gIHByaXZhdGUgZ2V0Q29tbWVudEZvclN0YWNrKFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIGNvbW1lbnQ6IHN0cmluZ1tdLFxuICApOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghY29tbWVudC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMudGl0bGUpIHtcbiAgICAgIG91dHB1dC5wdXNoKGAjIyAke3RoaXMub3B0aW9ucy50aXRsZX1gKTtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICB9XG4gICAgb3V0cHV0LnB1c2goYCMjIyBEaWZmIGZvciBzdGFjazogJHtzdGFnZU5hbWV9IC8gJHtzdGFja05hbWV9YCk7XG5cbiAgICByZXR1cm4gb3V0cHV0LmNvbmNhdChjb21tZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tbWVudEZvclN0YWdlKHN0YWdlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG91dHB1dDogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBzdGFnZUNvbW1lbnRzID0gdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlTmFtZV07XG4gICAgY29uc3QgY29tbWVudHMgPSBPYmplY3QudmFsdWVzKFxuICAgICAgdGhpcy5zdGFnZUNvbW1lbnRzW3N0YWdlTmFtZV0uc3RhY2tDb21tZW50cyxcbiAgICApLmZsYXRNYXAoKHgpID0+IHgpO1xuICAgIGlmICghY29tbWVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLnRpdGxlKSB7XG4gICAgICBvdXRwdXQucHVzaChgIyMgJHt0aGlzLm9wdGlvbnMudGl0bGV9YCk7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgfVxuICAgIG91dHB1dC5wdXNoKGAjIyMgRGlmZiBmb3Igc3RhZ2U6ICR7c3RhZ2VOYW1lfWApO1xuXG4gICAgaWYgKHN0YWdlQ29tbWVudHMuZGVzdHJ1Y3RpdmVDaGFuZ2VzKSB7XG4gICAgICBvdXRwdXQucHVzaChcbiAgICAgICAgYD4gWyFXQVJOSU5HXVxcbj4gJHtzdGFnZUNvbW1lbnRzLmRlc3RydWN0aXZlQ2hhbmdlc30gRGVzdHJ1Y3RpdmUgQ2hhbmdlc2AsXG4gICAgICApO1xuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0LmNvbmNhdChjb21tZW50cyk7XG4gIH1cbn1cblxuY2xhc3MgU3RyaW5nV3JpdGFibGUgZXh0ZW5kcyBXcml0YWJsZSB7XG4gIHB1YmxpYyBkYXRhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlY29kZXI6IFN0cmluZ0RlY29kZXI7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFdyaXRhYmxlT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcigpO1xuICAgIHRoaXMuZGF0YSA9ICcnO1xuICB9XG5cbiAgX3dyaXRlKFxuICAgIGNodW5rOiBhbnksXG4gICAgZW5jb2Rpbmc6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkLFxuICApOiB2b2lkIHtcbiAgICBpZiAoZW5jb2RpbmcgPT09ICdidWZmZXInKSB7XG4gICAgICBjaHVuayA9IHRoaXMuX2RlY29kZXIud3JpdGUoY2h1bmspO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YSArPSBjaHVuaztcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgX2ZpbmFsKGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgKz0gdGhpcy5fZGVjb2Rlci5lbmQoKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1kNUhhc2godmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ21kNScpLnVwZGF0ZSh2YWwpLmRpZ2VzdCgnaGV4Jyk7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.platform = exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = exports.markdownSummary = exports.summary = exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode || (exports.ExitCode = ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = (0, utils_1.toCommandValue)(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('ENV', (0, file_command_1.prepareKeyValueMessage)(name, val));\n }\n (0, command_1.issueCommand)('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n (0, command_1.issueCommand)('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n (0, file_command_1.issueFileCommand)('PATH', inputPath);\n }\n else {\n (0, command_1.issueCommand)('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('OUTPUT', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n process.stdout.write(os.EOL);\n (0, command_1.issueCommand)('set-output', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n (0, command_1.issue)('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n (0, command_1.issueCommand)('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n (0, command_1.issueCommand)('error', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n (0, command_1.issueCommand)('warning', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n (0, command_1.issueCommand)('notice', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n (0, command_1.issue)('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n (0, command_1.issue)('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('STATE', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n (0, command_1.issueCommand)('save-state', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n/**\n * Platform utilities exports\n */\nexports.platform = __importStar(require(\"./platform\"));\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst crypto = __importStar(require(\"crypto\"));\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${(0, utils_1.toCommandValue)(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${crypto.randomUUID()}`;\n const convertedValue = (0, utils_1.toCommandValue)(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n (0, core_1.debug)(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n (0, core_1.setSecret)(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDetails = exports.isLinux = exports.isMacOS = exports.isWindows = exports.arch = exports.platform = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst exec = __importStar(require(\"@actions/exec\"));\nconst getWindowsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout: version } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Version\"', undefined, {\n silent: true\n });\n const { stdout: name } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n return {\n name: name.trim(),\n version: version.trim()\n };\n});\nconst getMacOsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n const { stdout } = yield exec.getExecOutput('sw_vers', undefined, {\n silent: true\n });\n const version = (_b = (_a = stdout.match(/ProductVersion:\\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';\n const name = (_d = (_c = stdout.match(/ProductName:\\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : '';\n return {\n name,\n version\n };\n});\nconst getLinuxInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n const [name, version] = stdout.trim().split('\\n');\n return {\n name,\n version\n };\n});\nexports.platform = os_1.default.platform();\nexports.arch = os_1.default.arch();\nexports.isWindows = exports.platform === 'win32';\nexports.isMacOS = exports.platform === 'darwin';\nexports.isLinux = exports.platform === 'linux';\nfunction getDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n return Object.assign(Object.assign({}, (yield (exports.isWindows\n ? getWindowsInfo()\n : exports.isMacOS\n ? getMacOsInfo()\n : getLinuxInfo()))), { platform: exports.platform,\n arch: exports.arch,\n isWindows: exports.isWindows,\n isMacOS: exports.isMacOS,\n isLinux: exports.isLinux });\n });\n}\nexports.getDetails = getDetails;\n//# sourceMappingURL=platform.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getExecOutput = exports.exec = void 0;\nconst string_decoder_1 = require(\"string_decoder\");\nconst tr = __importStar(require(\"./toolrunner\"));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */\nfunction exec(commandLine, args, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const commandArgs = tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) {\n throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n }\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nexports.exec = exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */\nfunction getExecOutput(commandLine, args, options) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n let stdout = '';\n let stderr = '';\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new string_decoder_1.StringDecoder('utf8');\n const stderrDecoder = new string_decoder_1.StringDecoder('utf8');\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data) => {\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) {\n originalStdErrListener(data);\n }\n };\n const stdOutListener = (data) => {\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) {\n originalStdoutListener(data);\n }\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener });\n const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode,\n stdout,\n stderr\n };\n });\n}\nexports.getExecOutput = getExecOutput;\n//# sourceMappingURL=exec.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.argStringToArray = exports.ToolRunner = void 0;\nconst os = __importStar(require(\"os\"));\nconst events = __importStar(require(\"events\"));\nconst child = __importStar(require(\"child_process\"));\nconst path = __importStar(require(\"path\"));\nconst io = __importStar(require(\"@actions/io\"));\nconst ioUtil = __importStar(require(\"@actions/io/lib/io-util\"));\nconst timers_1 = require(\"timers\");\n/* eslint-disable @typescript-eslint/unbound-method */\nconst IS_WINDOWS = process.platform === 'win32';\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */\nclass ToolRunner extends events.EventEmitter {\n constructor(toolPath, args, options) {\n super();\n if (!toolPath) {\n throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n }\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) {\n this.options.listeners.debug(message);\n }\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool\n if (IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows + verbatim\n else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows (regular)\n else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args) {\n cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n }\n }\n else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf(os.EOL);\n while (n > -1) {\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + os.EOL.length);\n n = s.indexOf(os.EOL);\n }\n return s;\n }\n catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return '';\n }\n }\n _getSpawnFileName() {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n return process.env['COMSPEC'] || 'cmd.exe';\n }\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args) {\n argline += ' ';\n argline += options.windowsVerbatimArguments\n ? a\n : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [argline];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return (this._endsWith(upperToolPath, '.CMD') ||\n this._endsWith(upperToolPath, '.BAT'));\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) {\n return this._uvQuoteCmdArg(arg);\n }\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) {\n return '\"\"';\n }\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n ' ',\n '\\t',\n '&',\n '(',\n ')',\n '[',\n ']',\n '{',\n '}',\n '^',\n '=',\n ';',\n '!',\n \"'\",\n '+',\n ',',\n '`',\n '~',\n '|',\n '<',\n '>',\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg) {\n if (cmdSpecialChars.some(x => x === char)) {\n needsQuotes = true;\n break;\n }\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) {\n return arg;\n }\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\'; // double the slash\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) {\n // Need double quotation for empty argument\n return '\"\"';\n }\n if (!arg.includes(' ') && !arg.includes('\\t') && !arg.includes('\"')) {\n // No quotation needed\n return arg;\n }\n if (!arg.includes('\"') && !arg.includes('\\\\')) {\n // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n }\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\';\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\\\\';\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result['windowsVerbatimArguments'] =\n options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) {\n result.argv0 = `\"${toolPath}\"`;\n }\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */\n exec() {\n return __awaiter(this, void 0, void 0, function* () {\n // root the tool path if it is unrooted and contains relative pathing\n if (!ioUtil.isRooted(this.toolPath) &&\n (this.toolPath.includes('/') ||\n (IS_WINDOWS && this.toolPath.includes('\\\\')))) {\n // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n }\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield io.which(this.toolPath, true);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug('arguments:');\n for (const arg of this.args) {\n this._debug(` ${arg}`);\n }\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);\n }\n const state = new ExecState(optionsNonNull, this.toolPath);\n state.on('debug', (message) => {\n this._debug(message);\n });\n if (this.options.cwd && !(yield ioUtil.exists(this.options.cwd))) {\n return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n }\n const fileName = this._getSpawnFileName();\n const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = '';\n if (cp.stdout) {\n cp.stdout.on('data', (data) => {\n if (this.options.listeners && this.options.listeners.stdout) {\n this.options.listeners.stdout(data);\n }\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(data);\n }\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.stdline) {\n this.options.listeners.stdline(line);\n }\n });\n });\n }\n let errbuffer = '';\n if (cp.stderr) {\n cp.stderr.on('data', (data) => {\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) {\n this.options.listeners.stderr(data);\n }\n if (!optionsNonNull.silent &&\n optionsNonNull.errStream &&\n optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr\n ? optionsNonNull.errStream\n : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.errline) {\n this.options.listeners.errline(line);\n }\n });\n });\n }\n cp.on('error', (err) => {\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on('exit', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on('close', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on('done', (error, exitCode) => {\n if (stdbuffer.length > 0) {\n this.emit('stdline', stdbuffer);\n }\n if (errbuffer.length > 0) {\n this.emit('errline', errbuffer);\n }\n cp.removeAllListeners();\n if (error) {\n reject(error);\n }\n else {\n resolve(exitCode);\n }\n });\n if (this.options.input) {\n if (!cp.stdin) {\n throw new Error('child process missing stdin');\n }\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nexports.ToolRunner = ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */\nfunction argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = '';\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') {\n arg += '\\\\';\n }\n arg += c;\n escaped = false;\n }\n for (let i = 0; i < argString.length; i++) {\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) {\n inQuotes = !inQuotes;\n }\n else {\n append(c);\n }\n continue;\n }\n if (c === '\\\\' && escaped) {\n append(c);\n continue;\n }\n if (c === '\\\\' && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === ' ' && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = '';\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) {\n args.push(arg.trim());\n }\n return args;\n}\nexports.argStringToArray = argStringToArray;\nclass ExecState extends events.EventEmitter {\n constructor(options, toolPath) {\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = '';\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) {\n throw new Error('toolPath must not be empty');\n }\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) {\n this.delay = options.delay;\n }\n }\n CheckComplete() {\n if (this.done) {\n return;\n }\n if (this.processClosed) {\n this._setResult();\n }\n else if (this.processExited) {\n this.timeout = timers_1.setTimeout(ExecState.HandleTimeout, this.delay, this);\n }\n }\n _debug(message) {\n this.emit('debug', message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) {\n error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n }\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) {\n error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n }\n else if (this.processStderr && this.options.failOnStdErr) {\n error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit('done', error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) {\n return;\n }\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay /\n 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n//# sourceMappingURL=toolrunner.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runAttempt = parseInt(process.env.GITHUB_RUN_ATTEMPT, 10);\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl =\n (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyFetch = exports.getProxyAgentDispatcher = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nconst undici_1 = require(\"undici\");\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getProxyAgentDispatcher(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgentDispatcher(destinationUrl);\n}\nexports.getProxyAgentDispatcher = getProxyAgentDispatcher;\nfunction getProxyFetch(destinationUrl) {\n const httpDispatcher = getProxyAgentDispatcher(destinationUrl);\n const proxyFetch = (url, opts) => __awaiter(this, void 0, void 0, function* () {\n return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { dispatcher: httpDispatcher }));\n });\n return proxyFetch;\n}\nexports.getProxyFetch = getProxyFetch;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl),\n fetch: Utils.getProxyFetch(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nconst undici_1 = require(\"undici\");\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes || (exports.HttpCodes = HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers || (exports.Headers = Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes || (exports.MediaTypes = MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n readBodyBuffer() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n const chunks = [];\n this.message.on('data', (chunk) => {\n chunks.push(chunk);\n });\n this.message.on('end', () => {\n resolve(Buffer.concat(chunks));\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n getAgentDispatcher(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (!useProxy) {\n return;\n }\n return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (!useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if tunneling agent isn't assigned create a new agent\n if (!agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _getProxyAgentDispatcher(parsedUrl, proxyUrl) {\n let proxyAgent;\n if (this._keepAlive) {\n proxyAgent = this._proxyAgentDispatcher;\n }\n // if agent is already assigned use that agent.\n if (proxyAgent) {\n return proxyAgent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && {\n token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}`\n })));\n this._proxyAgentDispatcher = proxyAgent;\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, {\n rejectUnauthorized: false\n });\n }\n return proxyAgent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n try {\n return new DecodedURL(proxyVar);\n }\n catch (_a) {\n if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://'))\n return new DecodedURL(`http://${proxyVar}`);\n }\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const reqHost = reqUrl.hostname;\n if (isLoopbackAddress(reqHost)) {\n return true;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperNoProxyItem === '*' ||\n upperReqHosts.some(x => x === upperNoProxyItem ||\n x.endsWith(`.${upperNoProxyItem}`) ||\n (upperNoProxyItem.startsWith('.') &&\n x.endsWith(`${upperNoProxyItem}`)))) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\nfunction isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return (hostLower === 'localhost' ||\n hostLower.startsWith('127.') ||\n hostLower.startsWith('[::1]') ||\n hostLower.startsWith('[0:0:0:0:0:0:0:1]'));\n}\nclass DecodedURL extends URL {\n constructor(url, base) {\n super(url, base);\n this._decodedUsername = decodeURIComponent(super.username);\n this._decodedPassword = decodeURIComponent(super.password);\n }\n get username() {\n return this._decodedUsername;\n }\n get password() {\n return this._decodedPassword;\n }\n}\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\n_a = fs.promises\n// export const {open} = 'fs'\n, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;\n// export const {open} = 'fs'\nexports.IS_WINDOWS = process.platform === 'win32';\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nexports.UV_FS_O_EXLOCK = 0x10000000;\nexports.READONLY = fs.constants.O_RDONLY;\nfunction exists(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield exports.stat(fsPath);\n }\n catch (err) {\n if (err.code === 'ENOENT') {\n return false;\n }\n throw err;\n }\n return true;\n });\n}\nexports.exists = exists;\nfunction isDirectory(fsPath, useStat = false) {\n return __awaiter(this, void 0, void 0, function* () {\n const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nexports.isDirectory = isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */\nfunction isRooted(p) {\n p = normalizeSeparators(p);\n if (!p) {\n throw new Error('isRooted() parameter \"p\" cannot be empty');\n }\n if (exports.IS_WINDOWS) {\n return (p.startsWith('\\\\') || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ); // e.g. C: or C:\\hello\n }\n return p.startsWith('/');\n}\nexports.isRooted = isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */\nfunction tryGetExecutablePath(filePath, extensions) {\n return __awaiter(this, void 0, void 0, function* () {\n let stats = undefined;\n try {\n // test file exists\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = path.extname(filePath).toUpperCase();\n if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {\n return filePath;\n }\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions) {\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = path.dirname(filePath);\n const upperName = path.basename(filePath).toUpperCase();\n for (const actualName of yield exports.readdir(directory)) {\n if (upperName === actualName.toUpperCase()) {\n filePath = path.join(directory, actualName);\n break;\n }\n }\n }\n catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n }\n return '';\n });\n}\nexports.tryGetExecutablePath = tryGetExecutablePath;\nfunction normalizeSeparators(p) {\n p = p || '';\n if (exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, '\\\\');\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, '\\\\');\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, '/');\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction isUnixExecutable(stats) {\n return ((stats.mode & 1) > 0 ||\n ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||\n ((stats.mode & 64) > 0 && stats.uid === process.getuid()));\n}\n// Get the path of cmd.exe in windows\nfunction getCmdPath() {\n var _a;\n return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nexports.getCmdPath = getCmdPath;\n//# sourceMappingURL=io-util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0;\nconst assert_1 = require(\"assert\");\nconst path = __importStar(require(\"path\"));\nconst ioUtil = __importStar(require(\"./io-util\"));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */\nfunction cp(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { force, recursive, copySourceDirectory } = readCopyOptions(options);\n const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) {\n return;\n }\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory\n ? path.join(dest, path.basename(source))\n : dest;\n if (!(yield ioUtil.exists(source))) {\n throw new Error(`no such file or directory: ${source}`);\n }\n const sourceStat = yield ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) {\n throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n }\n else {\n yield cpDirRecursive(source, newDest, 0, force);\n }\n }\n else {\n if (path.relative(source, newDest) === '') {\n // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n }\n yield copyFile(source, newDest, force);\n }\n });\n}\nexports.cp = cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */\nfunction mv(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (yield ioUtil.exists(dest)) {\n let destExists = true;\n if (yield ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = path.join(dest, path.basename(source));\n destExists = yield ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) {\n yield rmRF(dest);\n }\n else {\n throw new Error('Destination already exists');\n }\n }\n }\n yield mkdirP(path.dirname(dest));\n yield ioUtil.rename(source, dest);\n });\n}\nexports.mv = mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */\nfunction rmRF(inputPath) {\n return __awaiter(this, void 0, void 0, function* () {\n if (ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) {\n throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n }\n try {\n // note if path does not exist, error is silent\n yield ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n }\n catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nexports.rmRF = rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */\nfunction mkdirP(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n assert_1.ok(fsPath, 'a path argument must be provided');\n yield ioUtil.mkdir(fsPath, { recursive: true });\n });\n}\nexports.mkdirP = mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */\nfunction which(tool, check) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // recursive when check=true\n if (check) {\n const result = yield which(tool, false);\n if (!result) {\n if (ioUtil.IS_WINDOWS) {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n }\n else {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n }\n return result;\n }\n const matches = yield findInPath(tool);\n if (matches && matches.length > 0) {\n return matches[0];\n }\n return '';\n });\n}\nexports.which = which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */\nfunction findInPath(tool) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // build the list of extensions to try\n const extensions = [];\n if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) {\n for (const extension of process.env['PATHEXT'].split(path.delimiter)) {\n if (extension) {\n extensions.push(extension);\n }\n }\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if (ioUtil.isRooted(tool)) {\n const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) {\n return [filePath];\n }\n return [];\n }\n // if any path separators, return empty\n if (tool.includes(path.sep)) {\n return [];\n }\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split(path.delimiter)) {\n if (p) {\n directories.push(p);\n }\n }\n }\n // find all matches\n const matches = [];\n for (const directory of directories) {\n const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions);\n if (filePath) {\n matches.push(filePath);\n }\n }\n return matches;\n });\n}\nexports.findInPath = findInPath;\nfunction readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null\n ? true\n : Boolean(options.copySourceDirectory);\n return { force, recursive, copySourceDirectory };\n}\nfunction cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return __awaiter(this, void 0, void 0, function* () {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255)\n return;\n currentDepth++;\n yield mkdirP(destDir);\n const files = yield ioUtil.readdir(sourceDir);\n for (const fileName of files) {\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) {\n // Recurse\n yield cpDirRecursive(srcFile, destFile, currentDepth, force);\n }\n else {\n yield copyFile(srcFile, destFile, force);\n }\n }\n // Change the mode for the newly created directory\n yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction copyFile(srcFile, destFile, force) {\n return __awaiter(this, void 0, void 0, function* () {\n if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield ioUtil.lstat(destFile);\n yield ioUtil.unlink(destFile);\n }\n catch (e) {\n // Try to override file permission\n if (e.code === 'EPERM') {\n yield ioUtil.chmod(destFile, '0666');\n yield ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield ioUtil.readlink(srcFile);\n yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);\n }\n else if (!(yield ioUtil.exists(destFile)) || force) {\n yield ioUtil.copyFile(srcFile, destFile);\n }\n });\n}\n//# sourceMappingURL=io.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadAwsServiceSpec = loadAwsServiceSpec;\nexports.loadAwsServiceSpecSync = loadAwsServiceSpecSync;\nconst node_fs_1 = require(\"node:fs\");\nconst path = __importStar(require(\"node:path\"));\nconst node_zlib_1 = require(\"node:zlib\");\nconst service_spec_types_1 = require(\"@aws-cdk/service-spec-types\");\nconst DB_COMPRESSED = 'db.json.gz';\nconst DB_PATH = path.join(__dirname, '..', DB_COMPRESSED);\n/**\n * Load the provided built-in database\n */\nasync function loadAwsServiceSpec() {\n return loadBufferIntoDatabase(await node_fs_1.promises.readFile(DB_PATH));\n}\n/**\n * Synchronously load the provided built-in database\n */\nfunction loadAwsServiceSpecSync() {\n return loadBufferIntoDatabase((0, node_fs_1.readFileSync)(DB_PATH));\n}\nfunction loadBufferIntoDatabase(spec) {\n const db = (0, service_spec_types_1.emptyDatabase)();\n db.load(JSON.parse((0, node_zlib_1.gunzipSync)(spec).toString('utf-8')));\n return db;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxnREFFQztBQUtELHdEQUVDO0FBcEJELHFDQUF1RDtBQUN2RCxnREFBa0M7QUFDbEMseUNBQXVDO0FBQ3ZDLG9FQUEwRTtBQUUxRSxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBRTFEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQjtJQUN0QyxPQUFPLHNCQUFzQixDQUFDLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0I7SUFDcEMsT0FBTyxzQkFBc0IsQ0FBQyxJQUFBLHNCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZO0lBQzFDLE1BQU0sRUFBRSxHQUFHLElBQUEsa0NBQWEsR0FBRSxDQUFDO0lBQzNCLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLHNCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcywgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBndW56aXBTeW5jIH0gZnJvbSAnbm9kZTp6bGliJztcbmltcG9ydCB7IGVtcHR5RGF0YWJhc2UsIFNwZWNEYXRhYmFzZSB9IGZyb20gJ0Bhd3MtY2RrL3NlcnZpY2Utc3BlYy10eXBlcyc7XG5cbmNvbnN0IERCX0NPTVBSRVNTRUQgPSAnZGIuanNvbi5neic7XG5jb25zdCBEQl9QQVRIID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgREJfQ09NUFJFU1NFRCk7XG5cbi8qKlxuICogTG9hZCB0aGUgcHJvdmlkZWQgYnVpbHQtaW4gZGF0YWJhc2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRBd3NTZXJ2aWNlU3BlYygpOiBQcm9taXNlPFNwZWNEYXRhYmFzZT4ge1xuICByZXR1cm4gbG9hZEJ1ZmZlckludG9EYXRhYmFzZShhd2FpdCBmcy5yZWFkRmlsZShEQl9QQVRIKSk7XG59XG5cbi8qKlxuICogU3luY2hyb25vdXNseSBsb2FkIHRoZSBwcm92aWRlZCBidWlsdC1pbiBkYXRhYmFzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEF3c1NlcnZpY2VTcGVjU3luYygpOiBTcGVjRGF0YWJhc2Uge1xuICByZXR1cm4gbG9hZEJ1ZmZlckludG9EYXRhYmFzZShyZWFkRmlsZVN5bmMoREJfUEFUSCkpO1xufVxuXG5mdW5jdGlvbiBsb2FkQnVmZmVySW50b0RhdGFiYXNlKHNwZWM6IEJ1ZmZlcik6IFNwZWNEYXRhYmFzZSB7XG4gIGNvbnN0IGRiID0gZW1wdHlEYXRhYmFzZSgpO1xuICBkYi5sb2FkKEpTT04ucGFyc2UoZ3VuemlwU3luYyhzcGVjKS50b1N0cmluZygndXRmLTgnKSkpO1xuICByZXR1cm4gZGI7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types/database\"), exports);\n__exportStar(require(\"./types/resource\"), exports);\n__exportStar(require(\"./types/augmentations\"), exports);\n__exportStar(require(\"./types/event\"), exports);\n__exportStar(require(\"./types/metrics\"), exports);\n__exportStar(require(\"./types/diff\"), exports);\n__exportStar(require(\"./types/common\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyxtREFBaUM7QUFDakMsd0RBQXNDO0FBQ3RDLGdEQUE4QjtBQUM5QixrREFBZ0M7QUFDaEMsK0NBQTZCO0FBQzdCLGlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMvZGF0YWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9yZXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2F1Z21lbnRhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL21ldHJpY3MnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvY29tbW9uJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVnbWVudGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9hdWdtZW50YXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBdWdtZW50YXRpb25zIGZvciBhIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGVcbiAqXG4gKiBBdWdtZW50YXRpb25zIGFyZSBhIGRlcHJlY2F0ZWQgbWVjaGFuaXNtIGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgbWV0cmljc1xuICogZnVuY3Rpb25zIGZvciBjZXJ0YWluIHJlc291cmNlcywgdXRpbGl6aW5nIFR5cGVTY3JpcHQgbWl4aW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQXVnbWVudGF0aW9uIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIE1ldHJpYyBhdWdtZW50YXRpb25zIGZvciB0aGlzIHJlc291cmNlIHR5cGVcbiAgICovXG4gIG1ldHJpY3M/OiBSZXNvdXJjZU1ldHJpY0F1Z21lbnRhdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGNsYXNzIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGtlYmFiIGNhc2VkIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWUgKyAnLWJhc2UnXG4gICAqL1xuICBiYXNlQ2xhc3NGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgbmFtZSArICdCYXNlJ1xuICAgKi9cbiAgYmFzZUNsYXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBpbnRlcmZhY2UgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzYW1lIGFzIGBgY2xhc3NGaWxlYGAuXG4gICAqL1xuICBpbnRlcmZhY2VGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdJJyArIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWVcbiAgICovXG4gIGludGVyZmFjZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSXNBdWdtZW50ZWRSZXNvdXJjZSA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgUmVzb3VyY2VBdWdtZW50YXRpb24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljQXVnbWVudGF0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG9mIG1ldHJpY3MgZm9yIHRoaXMgc2VydmljZVxuICAgKi9cbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSByZXNvdXJjZSBjbGFzcyB0aGF0IHByb3ZpZGUgdmFsdWVzIGZvciB0aGUgZGltZW5zaW9uc1xuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYHsgUXVldWVOYW1lOiAncXVldWVOYW1lJyB9YCBzYXlzIHRoYXQgdGhlIG1ldHJpYyBoYXMgYSBgUXVldWVOYW1lYFxuICAgKiBkaW1lbnNpb24sIGZvciB3aGljaCB0aGUgdmFsdWUgY2FuIGJlIG9idGFpbmVkIGJ5IHJlYWRpbmcgYHRoaXMucXVldWVOYW1lYC5cbiAgICovXG4gIGRpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWNzIGZvciB0aGlzIHJlc291cmNlXG4gICAqL1xuICBtZXRyaWNzOiBSZXNvdXJjZU1ldHJpY1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljIHtcbiAgLyoqXG4gICAqIFVwcGVyY2FzZS1maXJzdCBtZXRyaWMgbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudGF0aW9uIGxpbmVcbiAgICovXG4gIGRvY3VtZW50YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGV2ZW4gY291bnQgKDEgZ2V0cyBlbWl0dGVkIGV2ZXJ5IHRpbWUgc29tZXRoaW5nIG9jY3VycylcbiAgICpcbiAgICogQGRlZmF1bHQgTWV0cmljVHlwZS5BdHRyaWJcbiAgICovXG4gIHR5cGU/OiBNZXRyaWNUeXBlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRyaWNUeXBlID1cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgbWVhc3VyaW5nIGEgYXR0cmlidXRlIG9mIHRoZSBldmVudC5cbiAgICpcbiAgICogVHlwaWNhbCBleGFtcGxlcyBvZiB0aGlzIHdvdWxkIGJlIGR1cmF0aW9uLCBvciByZXF1ZXN0IHNpemUsIG9yIHNpbWlsYXIuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGFnZ3JlZ2F0ZSBmb3IgdGhpcyB0eXBlIG9mIGV2ZW50IGlzIFwiQXZnXCIuXG4gICAqL1xuICB8ICdhdHRyaWInXG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgYW5kIHRoZSB2YWx1ZSBpcyBhbHdheXMgYDFgLlxuICAgKlxuICAgKiBPbmx5IFwiU3VtXCIgaXMgYSBtZWFuaW5nZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljOyBhbGwgb3RoZXJcbiAgICogYWdncmVnYXRpb25zIHdpbGwgb25seSBldmVyIHByb2R1Y2UgdGhlIHZhbHVlIGAxYC5cbiAgICovXG4gIHwgJ2NvdW50J1xuXG4gIC8qKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBlbWl0dGVkIHBlcmlvZGljYWxseSwgcmVwcmVzZW50aW5nIGEgc3lzdGVtIHByb3BlcnR5LlxuICAgKlxuICAgKiBUaGUgbWV0cmljIG1lYXN1cmVzIHNvbWUgZ2xvYmFsIGV2ZXItY2hhbmdpbmcgcHJvcGVydHksIGFuZCBkb2VzIG5vdFxuICAgKiBtZWFzdXJlIGV2ZW50cy4gVGhlIG1vc3QgdXNlZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljIGlzIFwiTWF4XCIuXG4gICAqL1xuICB8ICdnYXVnZSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5LCBSZWZlcmVuY2UgfSBmcm9tICdAY2RrbGFicy90c2tiJztcblxuZXhwb3J0IHR5cGUgR2VuZXJpY1Byb3BlcnR5VHlwZTxUIGV4dGVuZHMgRW50aXR5PiA9XG4gIHwgUHJpbWl0aXZlVHlwZVxuICB8IEdlbmVyaWNEZWZpbml0aW9uUmVmZXJlbmNlPFQ+XG4gIHwgQnVpbHRpblRhZ1R5cGVcbiAgfCBBcnJheVR5cGU8R2VuZXJpY1Byb3BlcnR5VHlwZTxUPj5cbiAgfCBNYXBUeXBlPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+XG4gIHwgVHlwZVVuaW9uPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+O1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVUeXBlID1cbiAgfCBTdHJpbmdUeXBlXG4gIHwgTnVtYmVyVHlwZVxuICB8IEludGVnZXJUeXBlXG4gIHwgQm9vbGVhblR5cGVcbiAgfCBKc29uVHlwZVxuICB8IERhdGVUaW1lVHlwZVxuICB8IE51bGxUeXBlXG4gIHwgQnVpbHRpblRhZ1R5cGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdzdHJpbmcnO1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogc3RyaW5nW107XG59XG4vKipcbiAqIFRoZSBcImxlZ2FjeVwiIHRhZyB0eXBlICh1c2VkIGluIHRoZSBvbGQgcmVzb3VyY2Ugc3BlYylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsdGluVGFnVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICd0YWcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlclR5cGUge1xuICByZWFkb25seSB0eXBlOiAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdpbnRlZ2VyJztcbiAgcmVhZG9ubHkgYWxsb3dlZFZhbHVlcz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2Jvb2xlYW4nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2pzb24nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdkYXRlLXRpbWUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bGxUeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ251bGwnO1xufVxuXG4vKipcbiAqXG4gKiBUIGlzIHRoZSBlbnRpdHkgdHlwZSBmb3IgY29tcG91bmQgb2JqZWN0cy5cbiAqXG4gKiBGb3IgZXhhbXBsZTogVHlwZURlZmluaXRpb24sIEV2ZW50VHlwZURlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY0RlZmluaXRpb25SZWZlcmVuY2U8VCBleHRlbmRzIEVudGl0eT4ge1xuICByZWFkb25seSB0eXBlOiAncmVmJztcbiAgcmVhZG9ubHkgcmVmZXJlbmNlOiBSZWZlcmVuY2U8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2FycmF5JztcbiAgcmVhZG9ubHkgZWxlbWVudDogRTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ21hcCc7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVVuaW9uPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ3VuaW9uJztcbiAgcmVhZG9ubHkgdHlwZXM6IEVbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichSpecDatabase = void 0;\nexports.emptyDatabase = emptyDatabase;\nexports.loadDatabase = loadDatabase;\nconst fs_1 = require(\"fs\");\nconst zlib_1 = require(\"zlib\");\nconst tskb_1 = require(\"@cdklabs/tskb\");\nfunction emptyDatabase() {\n return new tskb_1.Database({\n resource: (0, tskb_1.entityCollection)().index({\n cloudFormationType: (0, tskb_1.fieldIndex)('cloudFormationType', tskb_1.stringCmp),\n }),\n region: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n service: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n cloudFormationNamespace: (0, tskb_1.fieldIndex)('cloudFormationNamespace', tskb_1.stringCmp),\n }),\n eventTypeDefinition: (0, tskb_1.entityCollection)(),\n typeDefinition: (0, tskb_1.entityCollection)(),\n augmentations: (0, tskb_1.entityCollection)(),\n metric: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n namespace: (0, tskb_1.fieldIndex)('namespace', tskb_1.stringCmp),\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n dimensionSet: (0, tskb_1.entityCollection)().index({\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n event: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n }, (r) => ({\n hasResource: r.relationship('service', 'resource'),\n regionHasResource: r.relationship('region', 'resource'),\n regionHasService: r.relationship('region', 'service'),\n usesType: r.relationship('resource', 'typeDefinition'),\n isAugmented: r.relationship('resource', 'augmentations'),\n usesDimensionSet: r.relationship('metric', 'dimensionSet'),\n resourceHasMetric: r.relationship('resource', 'metric'),\n serviceHasMetric: r.relationship('service', 'metric'),\n resourceHasDimensionSet: r.relationship('resource', 'dimensionSet'),\n serviceHasDimensionSet: r.relationship('service', 'dimensionSet'),\n resourceHasEvent: r.relationship('resource', 'event'),\n serviceHasEvent: r.relationship('service', 'event'),\n eventUsesType: r.relationship('event', 'eventTypeDefinition'),\n }));\n}\nasync function loadDatabase(pathToDb) {\n const db = emptyDatabase();\n const contents = await fs_1.promises.readFile(pathToDb);\n const json = pathToDb.endsWith('.gz') ? (0, zlib_1.gunzipSync)(contents).toString('utf-8') : contents.toString('utf-8');\n db.load(JSON.parse(json));\n return db;\n}\n/**\n * Helpers for working with a SpecDatabase\n */\nclass RichSpecDatabase {\n constructor(db) {\n this.db = db;\n }\n /**\n * Find all resources of a given type\n */\n resourceByType(cfnType, operation = 'resourceByType') {\n const res = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType);\n if (res.length === 0) {\n throw new Error(`${operation}: no such resource: ${cfnType}`);\n }\n return res[0];\n }\n /**\n * All type definitions used by a certain resource\n */\n resourceTypeDefs(cfnType) {\n const resource = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType).only();\n return this.db.follow('usesType', resource).map((x) => x.entity);\n }\n /**\n * Find a type definition from a given property type\n */\n tryFindDef(type) {\n return type.type === 'ref' ? this.db.get('typeDefinition', type.reference.$ref) : undefined;\n }\n}\nexports.RichSpecDatabase = RichSpecDatabase;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLHNDQTRDQztBQUVELG9DQU1DO0FBOUVELDJCQUFvQztBQUNwQywrQkFBa0M7QUFDbEMsd0NBQWtGO0FBd0JsRixTQUFnQixhQUFhO0lBQzNCLE9BQU8sSUFBSSxlQUFRLENBQ2pCO1FBQ0UsUUFBUSxFQUFFLElBQUEsdUJBQWdCLEdBQVksQ0FBQyxLQUFLLENBQUM7WUFDM0Msa0JBQWtCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLG9CQUFvQixFQUFFLGdCQUFTLENBQUM7U0FDaEUsQ0FBQztRQUNGLE1BQU0sRUFBRSxJQUFBLHVCQUFnQixHQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7U0FDcEMsQ0FBQztRQUNGLE9BQU8sRUFBRSxJQUFBLHVCQUFnQixHQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3pDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7WUFDbkMsdUJBQXVCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLHlCQUF5QixFQUFFLGdCQUFTLENBQUM7U0FDMUUsQ0FBQztRQUNGLG1CQUFtQixFQUFFLElBQUEsdUJBQWdCLEdBQXVCO1FBQzVELGNBQWMsRUFBRSxJQUFBLHVCQUFnQixHQUFrQjtRQUNsRCxhQUFhLEVBQUUsSUFBQSx1QkFBZ0IsR0FBd0I7UUFDdkQsTUFBTSxFQUFFLElBQUEsdUJBQWdCLEdBQVUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUEsaUJBQVUsRUFBQyxNQUFNLEVBQUUsZ0JBQVMsQ0FBQztZQUNuQyxTQUFTLEVBQUUsSUFBQSxpQkFBVSxFQUFDLFdBQVcsRUFBRSxnQkFBUyxDQUFDO1lBQzdDLFFBQVEsRUFBRSxJQUFBLGlC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LHVCQUF1QixPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLElBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM5RixDQUFDO0NBQ0Y7QUE1QkQsNENBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBndW56aXBTeW5jIH0gZnJvbSAnemxpYic7XG5pbXBvcnQgeyBEYXRhYmFzZSwgZW50aXR5Q29sbGVjdGlvbiwgZmllbGRJbmRleCwgc3RyaW5nQ21wIH0gZnJvbSAnQGNka2xhYnMvdHNrYic7XG5pbXBvcnQgeyBJc0F1Z21lbnRlZFJlc291cmNlLCBSZXNvdXJjZUF1Z21lbnRhdGlvbiB9IGZyb20gJy4vYXVnbWVudGF0aW9ucyc7XG5pbXBvcnQgeyBSZXNvdXJjZUhhc0V2ZW50LCBFdmVudCwgRXZlbnRVc2VzVHlwZSwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgc2VydmljZUhhc0V2ZW50IH0gZnJvbSAnLi9ldmVudCc7XG5pbXBvcnQge1xuICBEaW1lbnNpb25TZXQsXG4gIE1ldHJpYyxcbiAgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQsXG4gIFNlcnZpY2VIYXNEaW1lbnNpb25TZXQsXG4gIFVzZXNEaW1lbnNpb25TZXQsXG4gIFJlc291cmNlSGFzTWV0cmljLFxuICBTZXJ2aWNlSGFzTWV0cmljLFxufSBmcm9tICcuL21ldHJpY3MnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFNlcnZpY2UsXG4gIFR5cGVEZWZpbml0aW9uLFxuICBQcm9wZXJ0eVR5cGUsXG4gIFJlZ2lvbixcbiAgSGFzUmVzb3VyY2UsXG4gIFJlZ2lvbkhhc1Jlc291cmNlLFxuICBSZWdpb25IYXNTZXJ2aWNlLFxuICBVc2VzVHlwZSxcbn0gZnJvbSAnLi9yZXNvdXJjZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eURhdGFiYXNlKCkge1xuICByZXR1cm4gbmV3IERhdGFiYXNlKFxuICAgIHtcbiAgICAgIHJlc291cmNlOiBlbnRpdHlDb2xsZWN0aW9uPFJlc291cmNlPigpLmluZGV4KHtcbiAgICAgICAgY2xvdWRGb3JtYXRpb25UeXBlOiBmaWVsZEluZGV4KCdjbG91ZEZvcm1hdGlvblR5cGUnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICByZWdpb246IGVudGl0eUNvbGxlY3Rpb248UmVnaW9uPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIHNlcnZpY2U6IGVudGl0eUNvbGxlY3Rpb248U2VydmljZT4oKS5pbmRleCh7XG4gICAgICAgIG5hbWU6IGZpZWxkSW5kZXgoJ25hbWUnLCBzdHJpbmdDbXApLFxuICAgICAgICBjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZTogZmllbGRJbmRleCgnY2xvdWRGb3JtYXRpb25OYW1lc3BhY2UnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICBldmVudFR5cGVEZWZpbml0aW9uOiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50VHlwZURlZmluaXRpb24+KCksXG4gICAgICB0eXBlRGVmaW5pdGlvbjogZW50aXR5Q29sbGVjdGlvbjxUeXBlRGVmaW5pdGlvbj4oKSxcbiAgICAgIGF1Z21lbnRhdGlvbnM6IGVudGl0eUNvbGxlY3Rpb248UmVzb3VyY2VBdWdtZW50YXRpb24+KCksXG4gICAgICBtZXRyaWM6IGVudGl0eUNvbGxlY3Rpb248TWV0cmljPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICAgIG5hbWVzcGFjZTogZmllbGRJbmRleCgnbmFtZXNwYWNlJywgc3RyaW5nQ21wKSxcbiAgICAgICAgZGVkdXBLZXk6IGZpZWxkSW5kZXgoJ2RlZHVwS2V5Jywgc3RyaW5nQ21wKSxcbiAgICAgIH0pLFxuICAgICAgZGltZW5zaW9uU2V0OiBlbnRpdHlDb2xsZWN0aW9uPERpbWVuc2lvblNldD4oKS5pbmRleCh7XG4gICAgICAgIGRlZHVwS2V5OiBmaWVsZEluZGV4KCdkZWR1cEtleScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIGV2ZW50OiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50PigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICB9LFxuICAgIChyKSA9PiAoe1xuICAgICAgaGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPEhhc1Jlc291cmNlPignc2VydmljZScsICdyZXNvdXJjZScpLFxuICAgICAgcmVnaW9uSGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPFJlZ2lvbkhhc1Jlc291cmNlPigncmVnaW9uJywgJ3Jlc291cmNlJyksXG4gICAgICByZWdpb25IYXNTZXJ2aWNlOiByLnJlbGF0aW9uc2hpcDxSZWdpb25IYXNTZXJ2aWNlPigncmVnaW9uJywgJ3NlcnZpY2UnKSxcbiAgICAgIHVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxVc2VzVHlwZT4oJ3Jlc291cmNlJywgJ3R5cGVEZWZpbml0aW9uJyksXG4gICAgICBpc0F1Z21lbnRlZDogci5yZWxhdGlvbnNoaXA8SXNBdWdtZW50ZWRSZXNvdXJjZT4oJ3Jlc291cmNlJywgJ2F1Z21lbnRhdGlvbnMnKSxcbiAgICAgIHVzZXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFVzZXNEaW1lbnNpb25TZXQ+KCdtZXRyaWMnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICByZXNvdXJjZUhhc01ldHJpYzogci5yZWxhdGlvbnNoaXA8UmVzb3VyY2VIYXNNZXRyaWM+KCdyZXNvdXJjZScsICdtZXRyaWMnKSxcbiAgICAgIHNlcnZpY2VIYXNNZXRyaWM6IHIucmVsYXRpb25zaGlwPFNlcnZpY2VIYXNNZXRyaWM+KCdzZXJ2aWNlJywgJ21ldHJpYycpLFxuICAgICAgcmVzb3VyY2VIYXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRGltZW5zaW9uU2V0PigncmVzb3VyY2UnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICBzZXJ2aWNlSGFzRGltZW5zaW9uU2V0OiByLnJlbGF0aW9uc2hpcDxTZXJ2aWNlSGFzRGltZW5zaW9uU2V0Pignc2VydmljZScsICdkaW1lbnNpb25TZXQnKSxcbiAgICAgIHJlc291cmNlSGFzRXZlbnQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRXZlbnQ+KCdyZXNvdXJjZScsICdldmVudCcpLFxuICAgICAgc2VydmljZUhhc0V2ZW50OiByLnJlbGF0aW9uc2hpcDxzZXJ2aWNlSGFzRXZlbnQ+KCdzZXJ2aWNlJywgJ2V2ZW50JyksXG4gICAgICBldmVudFVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxFdmVudFVzZXNUeXBlPignZXZlbnQnLCAnZXZlbnRUeXBlRGVmaW5pdGlvbicpLFxuICAgIH0pLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZERhdGFiYXNlKHBhdGhUb0RiOiBzdHJpbmcpIHtcbiAgY29uc3QgZGIgPSBlbXB0eURhdGFiYXNlKCk7XG4gIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aFRvRGIpO1xuICBjb25zdCBqc29uID0gcGF0aFRvRGIuZW5kc1dpdGgoJy5neicpID8gZ3VuemlwU3luYyhjb250ZW50cykudG9TdHJpbmcoJ3V0Zi04JykgOiBjb250ZW50cy50b1N0cmluZygndXRmLTgnKTtcbiAgZGIubG9hZChKU09OLnBhcnNlKGpzb24pKTtcbiAgcmV0dXJuIGRiO1xufVxuXG5leHBvcnQgdHlwZSBTcGVjRGF0YWJhc2UgPSBSZXR1cm5UeXBlPHR5cGVvZiBlbXB0eURhdGFiYXNlPjtcblxuLyoqXG4gKiBIZWxwZXJzIGZvciB3b3JraW5nIHdpdGggYSBTcGVjRGF0YWJhc2VcbiAqL1xuZXhwb3J0IGNsYXNzIFJpY2hTcGVjRGF0YWJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRiOiBTcGVjRGF0YWJhc2UpIHt9XG5cbiAgLyoqXG4gICAqIEZpbmQgYWxsIHJlc291cmNlcyBvZiBhIGdpdmVuIHR5cGVcbiAgICovXG4gIHB1YmxpYyByZXNvdXJjZUJ5VHlwZShjZm5UeXBlOiBzdHJpbmcsIG9wZXJhdGlvbiA9ICdyZXNvdXJjZUJ5VHlwZScpOiBSZXNvdXJjZSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5kYi5sb29rdXAoJ3Jlc291cmNlJywgJ2Nsb3VkRm9ybWF0aW9uVHlwZScsICdlcXVhbHMnLCBjZm5UeXBlKTtcbiAgICBpZiAocmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29wZXJhdGlvbn06IG5vIHN1Y2ggcmVzb3VyY2U6ICR7Y2ZuVHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgdHlwZSBkZWZpbml0aW9ucyB1c2VkIGJ5IGEgY2VydGFpbiByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlc291cmNlVHlwZURlZnMoY2ZuVHlwZTogc3RyaW5nKTogcmVhZG9ubHkgVHlwZURlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLmRiLmxvb2t1cCgncmVzb3VyY2UnLCAnY2xvdWRGb3JtYXRpb25UeXBlJywgJ2VxdWFscycsIGNmblR5cGUpLm9ubHkoKTtcbiAgICByZXR1cm4gdGhpcy5kYi5mb2xsb3coJ3VzZXNUeXBlJywgcmVzb3VyY2UpLm1hcCgoeCkgPT4geC5lbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSB0eXBlIGRlZmluaXRpb24gZnJvbSBhIGdpdmVuIHByb3BlcnR5IHR5cGVcbiAgICovXG4gIHB1YmxpYyB0cnlGaW5kRGVmKHR5cGU6IFByb3BlcnR5VHlwZSk6IFR5cGVEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdHlwZS50eXBlID09PSAncmVmJyA/IHRoaXMuZGIuZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHR5cGUucmVmZXJlbmNlLiRyZWYpIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudCwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgRXZlbnRQcm9wZXJ0eSB9IGZyb20gJy4vZXZlbnQnO1xuaW1wb3J0IHsgRGltZW5zaW9uLCBEaW1lbnNpb25TZXQsIE1ldHJpYyB9IGZyb20gJy4vbWV0cmljcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIFByb3BlcnR5LCBSZXNvdXJjZSwgU2VydmljZSwgVHlwZURlZmluaXRpb24gfSBmcm9tICcuL3Jlc291cmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGVjRGF0YWJhc2VEaWZmIHtcbiAgc2VydmljZXM6IE1hcERpZmY8U2VydmljZSwgVXBkYXRlZFNlcnZpY2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3REaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogRVtdO1xuICByZWFkb25seSByZW1vdmVkPzogRVtdO1xuICByZWFkb25seSB1cGRhdGVkPzogRURbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBEaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogUmVjb3JkPHN0cmluZywgRT47XG4gIHJlYWRvbmx5IHJlbW92ZWQ/OiBSZWNvcmQ8c3RyaW5nLCBFPjtcbiAgcmVhZG9ubHkgdXBkYXRlZD86IFJlY29yZDxzdHJpbmcsIEVEPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkU2VydmljZSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPFNlcnZpY2VbJ25hbWUnXT47XG4gIHJlYWRvbmx5IHNob3J0TmFtZT86IFNjYWxhckRpZmY8U2VydmljZVsnc2hvcnROYW1lJ10+O1xuICByZWFkb25seSBjYXBpdGFsaXplZD86IFNjYWxhckRpZmY8U2VydmljZVsnY2FwaXRhbGl6ZWQnXT47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uTmFtZXNwYWNlPzogU2NhbGFyRGlmZjxTZXJ2aWNlWydjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZSddPjtcbiAgcmVhZG9ubHkgcmVzb3VyY2VEaWZmPzogTWFwRGlmZjxSZXNvdXJjZSwgVXBkYXRlZFJlc291cmNlPjtcbiAgcmVhZG9ubHkgbWV0cmljcz86IE1hcERpZmY8TWV0cmljLCBDaGFuZ2VkTWV0cmljPjtcbiAgcmVhZG9ubHkgZXZlbnREaWZmPzogTWFwRGlmZjxFdmVudCwgVXBkYXRlZEV2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkTWV0cmljIHtcbiAgcmVhZG9ubHkgc3RhdGlzdGljPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBwcmV2aW91c1N0YXRpc3RpY3M/OiBTY2FsYXJEaWZmPHN0cmluZ1tdPjtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGRpbWVuc2lvblNldHM/OiBNYXBEaWZmPERpbWVuc2lvblNldCwgQ2hhbmdlZERpbWVuc2lvblNldD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlZERpbWVuc2lvblNldCB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGRpbWVuc2lvbnM/OiBTY2FsYXJEaWZmPERpbWVuc2lvbltdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkUmVzb3VyY2Uge1xuICByZWFkb25seSBuYW1lPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uVHJhbnNmb3JtPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkb2N1bWVudGF0aW9uPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogTWFwRGlmZjxQcm9wZXJ0eSwgVXBkYXRlZFByb3BlcnR5PjtcbiAgcmVhZG9ubHkgYXR0cmlidXRlcz86IE1hcERpZmY8QXR0cmlidXRlLCBVcGRhdGVkQXR0cmlidXRlPjtcbiAgcmVhZG9ubHkgYXJuVGVtcGxhdGU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGlzU3RhdGVmdWw/OiBTY2FsYXJEaWZmPGJvb2xlYW4+O1xuICByZWFkb25seSB0YWdJbmZvcm1hdGlvbj86IFNjYWxhckRpZmY8UmVzb3VyY2VbJ3RhZ0luZm9ybWF0aW9uJ10+O1xuICByZWFkb25seSBzY3J1dGluaXphYmxlPzogU2NhbGFyRGlmZjxSZXNvdXJjZVsnc2NydXRpbml6YWJsZSddPjtcbiAgcmVhZG9ubHkgdmVuZGVkTG9ncz86IFNjYWxhckRpZmY8UmVzb3VyY2VbJ3ZlbmRlZExvZ3MnXT47XG4gIHJlYWRvbmx5IHR5cGVEZWZpbml0aW9uRGlmZj86IE1hcERpZmY8VHlwZURlZmluaXRpb24sIFVwZGF0ZWRUeXBlRGVmaW5pdGlvbj47XG4gIHJlYWRvbmx5IHByaW1hcnlJZGVudGlmaWVyPzogU2NhbGFyRGlmZjxzdHJpbmdbXT47XG4gIHJlYWRvbmx5IGNmblJlZklkZW50aWZpZXI/OiBTY2FsYXJEaWZmPHN0cmluZ1tdPjtcbiAgcmVhZG9ubHkgbWV0cmljcz86IE1hcERpZmY8TWV0cmljLCBDaGFuZ2VkTWV0cmljPjtcbiAgcmVhZG9ubHkgZXZlbnRzPzogTWFwRGlmZjxFdmVudCwgVXBkYXRlZEV2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkUHJvcGVydHkge1xuICByZWFkb25seSBvbGQ6IFByb3BlcnR5O1xuICByZWFkb25seSBuZXc6IFByb3BlcnR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRBdHRyaWJ1dGUge1xuICByZWFkb25seSBvbGQ6IEF0dHJpYnV0ZTtcbiAgcmVhZG9ubHkgbmV3OiBBdHRyaWJ1dGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZFR5cGVEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvbj86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IE1hcERpZmY8UHJvcGVydHksIFVwZGF0ZWRQcm9wZXJ0eT47XG4gIHJlYWRvbmx5IG11c3RSZW5kZXJGb3JCd0NvbXBhdD86IFNjYWxhckRpZmY8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZEV2ZW50IHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IHNvdXJjZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGV0YWlsVHlwZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcmVzb3VyY2VzRmllbGQ/OiBTY2FsYXJEaWZmPEV2ZW50WydyZXNvdXJjZXNGaWVsZCddPjtcbiAgcmVhZG9ubHkgcm9vdFByb3BlcnR5PzogU2NhbGFyRGlmZjxFdmVudFsncm9vdFByb3BlcnR5J10+O1xuICByZWFkb25seSB0eXBlRGVmaW5pdGlvbkRpZmY/OiBNYXBEaWZmPEV2ZW50VHlwZURlZmluaXRpb24sIFVwZGF0ZWRFdmVudFR5cGVEZWZpbml0aW9uPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkRXZlbnRUeXBlRGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBNYXBEaWZmPEV2ZW50UHJvcGVydHksIFVwZGF0ZWRFdmVudFByb3BlcnR5Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkRXZlbnRQcm9wZXJ0eSB7XG4gIHJlYWRvbmx5IG9sZDogRXZlbnRQcm9wZXJ0eTtcbiAgcmVhZG9ubHkgbmV3OiBFdmVudFByb3BlcnR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxhckRpZmY8QT4ge1xuICByZWFkb25seSBvbGQ/OiBBO1xuICByZWFkb25seSBuZXc/OiBBO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgUmVmZXJlbmNlLCBSZWxhdGlvbnNoaXAgfSBmcm9tICdAY2RrbGFicy90c2tiJztcbmltcG9ydCB7IEdlbmVyaWNQcm9wZXJ0eVR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgU2VydmljZSB9IGZyb20gJy4vcmVzb3VyY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIEV2ZW50QnJpZGdlIHNjaGVtYVxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNAT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRXZlbnRCcmlkZ2Ugc2NoZW1hIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSB2YWx1ZSBmb3IgdGhpcyBldmVudFxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRldGFpbFR5cGUgdmFsdWUgZm9yIHRoaXMgZXZlbnRcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0IENyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbFR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEVhY2ggaXRlbSBpcyBhIGBSZXNvdXJjZUZpZWxkYCBkZXNjcmliaW5nIHdoaWNoIHByb3BlcnR5IChmaWVsZE5hbWUpXG4gICAqIGluIHRoZSBldmVudCBwYXlsb2FkIGNvbnRhaW5zIGEgcmVzb3VyY2UgaWRlbnRpZmllciBhbmQgdGhlIGFzc29jaWF0ZWRcbiAgICogdHlwZWQgZGVmaW5pdGlvbiBmb3IgdGhhdCByZXNvdXJjZSAodGhlIGB0eXBlYCByZWZlcmVuY2UpLlxuICAgKlxuICAgKiBAZXhhbXBsZSBPYmplY3QgQ3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzRmllbGQ6IEFycmF5PFJlc291cmNlRmllbGQ+O1xuICAvKipcbiAgICogcm9vdFByb3BlcnR5IGhhcyB0aGUgcmVmZXJlbmNlIGZvciB0aGUgcm9vdCBwcm9wZXJ0eSBmb3IgdGhpcyBldmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdFByb3BlcnR5OiBSZWZlcmVuY2U8RXZlbnRUeXBlRGVmaW5pdGlvbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VGaWVsZCB7XG4gIHR5cGU6IFJlZmVyZW5jZTxFdmVudFR5cGVEZWZpbml0aW9uPjtcbiAgZmllbGROYW1lPzogc3RyaW5nO1xuICByZXNvdXJjZTogUmVmZXJlbmNlPFJlc291cmNlPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNFdmVudCA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBzZXJ2aWNlSGFzRXZlbnQgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBFdmVudFByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBFdmVudFByb3BlcnR5PjtcbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqL1xuICB0eXBlOiBHZW5lcmljUHJvcGVydHlUeXBlPEV2ZW50VHlwZURlZmluaXRpb24+O1xuICAvKipcbiAgICogSXMgdGhpcyBwcm9wZXJ0eSByZXF1aXJlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHR5cGVcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBFdmVudFByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50VXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8RXZlbnQsIEV2ZW50VHlwZURlZmluaXRpb24+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFNlcnZpY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBIE1ldHJpYyBEaW1lbnNpb24gKG5vdCBhbiBlbnRpdHkpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGRpbWVuc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQSBwb3RlbnRpYWwgdmFsdWUgZm9yIHRoaXMgZGltZW5zaW9uXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNldCBvZiBNZXRyaWMgRGltZW5zaW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uU2V0IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIEEgdW5pcXVlIHZhbHVlIHVzZWQgdG8gZGVkdXBsaWNhdGUgdGhlIGVudGl0eVxuICAgKi9cbiAgZGVkdXBLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoaXMgZGltZW5zaW9uIHNldFxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRpbWVuc2lvbnMgaW4gdGhpcyBzZXRcbiAgICovXG4gIGRpbWVuc2lvbnM6IERpbWVuc2lvbltdO1xufVxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIERpbWVuc2lvblNldD47XG5leHBvcnQgdHlwZSBTZXJ2aWNlSGFzRGltZW5zaW9uU2V0ID0gUmVsYXRpb25zaGlwPFNlcnZpY2UsIERpbWVuc2lvblNldD47XG5cbi8qKlxuICogQSBDbG91ZFdhdGNoIE1ldHJpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpYyBleHRlbmRzIEVudGl0eSB7XG4gIC8qKlxuICAgKiBNZXRyaWMgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIG1ldHJpY1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCAoc3VnZ2VzdGVkKSBzdGF0aXN0aWMgZm9yIHRoaXMgbWV0cmljXG4gICAqL1xuICByZWFkb25seSBzdGF0aXN0aWM6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIG9yZGVyZWQgbGlzdCBvZiB0aGUgb2YgdGhlIGRlZmF1bHQgc3RhdGlzdGljcyBmb3IgdGhpcyBtZXRyaWNcbiAgICovXG4gIHJlYWRvbmx5IHByZXZpb3VzU3RhdGlzdGljczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSB2YWx1ZSB1c2VkIHRvIGRlZHVwbGljYXRlIHRoZSBlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5IGRlZHVwS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgbWV0cmljXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIFVzZXNEaW1lbnNpb25TZXQgPSBSZWxhdGlvbnNoaXA8TWV0cmljLCBEaW1lbnNpb25TZXQ+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNNZXRyaWMgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIE1ldHJpYz47XG5leHBvcnQgdHlwZSBTZXJ2aWNlSGFzTWV0cmljID0gUmVsYXRpb25zaGlwPFNlcnZpY2UsIE1ldHJpYz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichPropertyType = exports.PropertyScrutinyType = exports.ResourceScrutinyType = exports.Deprecation = exports.RichAttribute = exports.RichProperty = exports.RichTypedField = void 0;\nexports.isCollectionType = isCollectionType;\nconst sorting_1 = require(\"../util/sorting\");\nclass RichTypedField {\n constructor(field) {\n this.field = field;\n if (field === undefined) {\n throw new Error('Field is undefined');\n }\n }\n types() {\n return [...(this.field.previousTypes ?? []), this.field.type];\n }\n /**\n * Update the type of this property with a new type\n *\n * Only if it's not in the set of types already.\n *\n * Returns true if the type was updated.\n */\n updateType(type) {\n const richType = new RichPropertyType(type);\n // Only add this type if we don't already have it. We are only doing comparisons where 'integer' and 'number'\n // are treated the same, for all other types we need strict equality. We used to use 'assignableTo' as a\n // condition, but these types will be rendered in both co- and contravariant positions, and so we really can't\n // do much better than full equality.\n if (this.types().some((t) => richType.equals(t))) {\n // Nothing to do, type is already in there.\n // But if the new type has allowedValues, merge them into the current type.\n if ((type.type === 'string' || type.type === 'integer') && type.allowedValues) {\n if (this.field.type.type === type.type) {\n this.field.type.allowedValues = type.allowedValues;\n }\n }\n return false;\n }\n // Special case: if the new type is `string` and the old type is `date-time`, we assume this is\n // the same type but we dropped some formatting information. No need to make this a separate type.\n if (type.type === 'string' && this.types().some((t) => t.type === 'date-time')) {\n return false;\n }\n // Special case: if the new type is `string` and the old type is `json`, we assume this is a correction\n // of a bug; the old type was incorrectly typed as Json, and we're now correcting this. Since this was a\n // bug, we don't need to keep the old type: it was never accurate.\n //\n // We could be more broad, and only maintain type history if we go from\n // `json` -> `named type`, or `named type` -> `named type`. For now I'm\n // wary of destroying too much information; we'll just do the fix specifically\n // for `json` -> `string`.\n if (type.type === 'string' && this.field.type.type === 'json') {\n this.field.type = type;\n return true;\n }\n if (!this.field.previousTypes) {\n this.field.previousTypes = [];\n }\n this.field.previousTypes.push(this.field.type);\n this.field.type = type;\n return true;\n }\n}\nexports.RichTypedField = RichTypedField;\nclass RichProperty extends RichTypedField {\n constructor(property) {\n super(property);\n }\n}\nexports.RichProperty = RichProperty;\nclass RichAttribute extends RichTypedField {\n constructor(attr) {\n super(attr);\n }\n}\nexports.RichAttribute = RichAttribute;\nvar Deprecation;\n(function (Deprecation) {\n /**\n * Not deprecated\n */\n Deprecation[\"NONE\"] = \"NONE\";\n /**\n * Warn about use\n */\n Deprecation[\"WARN\"] = \"WARN\";\n /**\n * Do not emit the value at all\n *\n * (Handle properties that were incorrectly added to the spec)\n */\n Deprecation[\"IGNORE\"] = \"IGNORE\";\n})(Deprecation || (exports.Deprecation = Deprecation = {}));\nfunction isCollectionType(x) {\n return x.type === 'array' || x.type === 'map';\n}\n/**\n * Mark a resource as a resource that needs additional scrutiy when added, removed or changed\n *\n * Used to mark resources that represent security policies.\n */\nvar ResourceScrutinyType;\n(function (ResourceScrutinyType) {\n /**\n * No additional scrutiny\n */\n ResourceScrutinyType[\"None\"] = \"None\";\n /**\n * An externally attached policy document to a resource\n *\n * (Common for SQS, SNS, S3, ...)\n */\n ResourceScrutinyType[\"ResourcePolicyResource\"] = \"ResourcePolicyResource\";\n /**\n * This is an IAM policy on an identity resource\n *\n * (Basically saying: this is AWS::IAM::Policy)\n */\n ResourceScrutinyType[\"IdentityPolicyResource\"] = \"IdentityPolicyResource\";\n /**\n * This is a Lambda Permission policy\n */\n ResourceScrutinyType[\"LambdaPermission\"] = \"LambdaPermission\";\n /**\n * An ingress rule object\n */\n ResourceScrutinyType[\"IngressRuleResource\"] = \"IngressRuleResource\";\n /**\n * A set of egress rules\n */\n ResourceScrutinyType[\"EgressRuleResource\"] = \"EgressRuleResource\";\n /**\n * AWS::SSO::Assignment\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoAssignmentResource\"] = \"SsoAssignmentResource\";\n /**\n * AWS::SSO::InstanceAccessControlAttributeConfiguration\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoInstanceACAConfigResource\"] = \"SsoInstanceACAConfigResource\";\n /**\n * AWS::SSO::PermissionSet\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoPermissionSet\"] = \"SsoPermissionSet\";\n})(ResourceScrutinyType || (exports.ResourceScrutinyType = ResourceScrutinyType = {}));\n/**\n * Mark a property as a property that needs additional scrutiny when it changes\n *\n * Used to mark sensitive properties that have security-related implications.\n */\nvar PropertyScrutinyType;\n(function (PropertyScrutinyType) {\n /**\n * No additional scrutiny\n */\n PropertyScrutinyType[\"None\"] = \"None\";\n /**\n * This is an IAM policy directly on a resource\n */\n PropertyScrutinyType[\"InlineResourcePolicy\"] = \"InlineResourcePolicy\";\n /**\n * Either an AssumeRolePolicyDocument or a dictionary of policy documents\n */\n PropertyScrutinyType[\"InlineIdentityPolicies\"] = \"InlineIdentityPolicies\";\n /**\n * A list of managed policies (on an identity resource)\n */\n PropertyScrutinyType[\"ManagedPolicies\"] = \"ManagedPolicies\";\n /**\n * A set of ingress rules (on a security group)\n */\n PropertyScrutinyType[\"IngressRules\"] = \"IngressRules\";\n /**\n * A set of egress rules (on a security group)\n */\n PropertyScrutinyType[\"EgressRules\"] = \"EgressRules\";\n})(PropertyScrutinyType || (exports.PropertyScrutinyType = PropertyScrutinyType = {}));\nclass RichPropertyType {\n constructor(type) {\n this.type = type;\n }\n equals(rhs) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return rhs.type === this.type.type;\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).equals(rhs.element);\n case 'ref':\n return rhs.type === 'ref' && this.type.reference.$ref === rhs.reference.$ref;\n case 'union':\n const lhsKey = this.sortKey();\n const rhsKey = new RichPropertyType(rhs).sortKey();\n return lhsKey.length === rhsKey.length && lhsKey.every((l, i) => l === rhsKey[i]);\n }\n }\n /**\n * Whether the current type is JavaScript-equal to the RHS type\n *\n * Same as normal equality, but consider `integer` and `number` the same types.\n */\n javascriptEquals(rhs) {\n switch (this.type.type) {\n case 'number':\n case 'integer':\n // Widening\n return rhs.type === 'integer' || rhs.type === 'number';\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).javascriptEquals(rhs.element);\n case 'union':\n if (rhs.type !== 'union') {\n return false;\n }\n // Every type in this union needs to be equal one type in RHS\n return this.type.types.every((t1) => rhs.types.some((t2) => new RichPropertyType(t1).javascriptEquals(t2)));\n default:\n // For anything else, need strict equality\n return this.equals(rhs);\n }\n }\n /**\n * Whether the current type is assignable to the RHS type.\n *\n * This is means every type member of the LHS must be present in the RHS type\n */\n assignableTo(rhs) {\n const extractMembers = (type) => (type.type == 'union' ? type.types : [type]);\n const asRichType = (type) => new RichPropertyType(type);\n const rhsMembers = extractMembers(rhs);\n for (const lhsMember of extractMembers(this.type).map(asRichType)) {\n if (!rhsMembers.some((type) => lhsMember.equals(type))) {\n return false;\n }\n }\n return true;\n }\n /**\n * Return a version of this type, but with all type unions in a regularized order\n */\n normalize(db) {\n switch (this.type.type) {\n case 'array':\n case 'map':\n return new RichPropertyType({\n type: this.type.type,\n element: new RichPropertyType(this.type.element).normalize(db).type,\n });\n case 'union':\n const types = this.type.types\n .map((t) => new RichPropertyType(t).normalize(db))\n .map((t) => [t, t.sortKey(db)]);\n types.sort((0, sorting_1.sortKeyComparator)(([_, sortKey]) => sortKey));\n return new RichPropertyType({\n type: 'union',\n types: types.map(([t, _]) => t.type),\n });\n default:\n return this;\n }\n }\n stringify(db, withId = true) {\n switch (this.type.type) {\n case 'string':\n return this.type.allowedValues ? `string<${this.type.allowedValues.join('|')}>` : 'string';\n case 'integer':\n return this.type.allowedValues ? `integer<${this.type.allowedValues.join('|')}>` : 'integer';\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'tag':\n return this.type.type;\n case 'array':\n return `Array<${new RichPropertyType(this.type.element).stringify(db, withId)}>`;\n case 'map':\n return `Map`;\n case 'ref':\n const type = db.get('typeDefinition', this.type.reference);\n return withId ? `${type.name}(${this.type.reference.$ref})` : type.name;\n case 'union':\n return this.type.types.map((t) => new RichPropertyType(t).stringify(db, withId)).join(' | ');\n }\n }\n /**\n * Return a sortable key based on this type\n *\n * If a database is given, type definitions will be sorted based on type name,\n * otherwise on identifier\n */\n sortKey(db) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return ['0', this.type.type];\n case 'array':\n case 'map':\n return ['1', this.type.type, ...new RichPropertyType(this.type.element).sortKey(db)];\n case 'ref':\n return ['2', this.type.type, db?.get('typeDefinition', this.type.reference)?.name ?? this.type.reference.$ref];\n case 'union':\n const typeKeys = this.type.types.map((t) => new RichPropertyType(t).sortKey(db));\n typeKeys.sort((0, sorting_1.sortKeyComparator)((x) => x));\n return ['3', this.type.type, ...typeKeys.flatMap((x) => x)];\n }\n }\n}\nexports.RichPropertyType = RichPropertyType;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK1NBLDRDQUVDO0FBOVNELDZDQUFvRDtBQWtNcEQsTUFBYSxjQUFjO0lBQ3pCLFlBQTZCLEtBQStDO1FBQS9DLFVBQUssR0FBTCxLQUFLLENBQTBDO1FBQzFFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxJQUFrQjtRQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVDLDZHQUE2RztRQUM3Ryx3R0FBd0c7UUFDeEcsOEdBQThHO1FBQzlHLHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pELDJDQUEyQztZQUMzQywyRUFBMkU7WUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JB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QWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSwyQkFBaUIsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXhKRCw0Q0F3SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgQXJyYXlUeXBlLCBNYXBUeXBlLCBHZW5lcmljUHJvcGVydHlUeXBlLCBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFNwZWNEYXRhYmFzZSB9IGZyb20gJy4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgc29ydEtleUNvbXBhcmF0b3IgfSBmcm9tICcuLi91dGlsL3NvcnRpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eSB7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBIYXNSZWdpb24gPSBSZWxhdGlvbnNoaXA8UGFydGl0aW9uLCBSZWdpb24sIHsgaXNQcmltYXJ5PzogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHNlcnZpY2UgaW5jbHVkaW5nIHRoZSBncm91cCBwcmVmaXgsIGxvd2VyY2FzZWQgYW5kIGh5cGhlbmF0ZWQuXG4gICAqXG4gICAqIEUuZy4gYEFXUzo6RHluYW1vREJgIC0+IGBhd3MtZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGF3cy1keW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogT25seSB0aGUgc2VydmljZSBwYXJ0IG9mIHRoZSBuYW1lLCBsb3dlcmNhc2VkLlxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBzaG9ydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzaG9ydG5hbWUgb2YgdGhlIHNlcnZpY2UgaW4gY2FwaXRhbGl6ZWQgZm9ybVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgRHluYW1vREJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBjYXBpdGFsaXplZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbXBsZXRlIGNsb3VkZm9ybWF0aW9uIHN0eWxlIG5hbWVzcGFjZSBvZiB0aGUgc2VydmljZVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYFxuICAgKlxuICAgKiBAZXhhbXBsZSBkeW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25OYW1lc3BhY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50YXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlIGV4dGVuZHMgRW50aXR5IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHNldCwgdGhpcyBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm0gaXMgcmVxdWlyZWQgYnkgdGhlIHJlc291cmNlXG4gICAqL1xuICBjbG91ZEZvcm1hdGlvblRyYW5zZm9ybT86IHN0cmluZztcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW1hcnkgaWRlbnRpZmllciwgb3IgaWRlbnRpZmllcnMsIGluIENsb3VkIENvbnRyb2wgQVBJXG4gICAqXG4gICAqIFVuaXF1ZWx5IGlkZW50aWZpZXMgYSByZXNvdXJjZSBpbiBhbiBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHJlYWQgZnJvbSB0aGUgc2NoZW1hLCB3aGljaCBhbHdheXMgcGVydGFpbnMgdG8gdGhlIENDQVBJIGlkZW50aWZpZXIuXG4gICAqIFR5cGljYWxseSB0aGUgc2FtZSBhcyB0aGUgQ2xvdWRGb3JtYXRpb24gaWRlbnRpZmllciwgYnV0IG5vdCBuZWNlc3NhcmlseS5cbiAgICovXG4gIHByaW1hcnlJZGVudGlmaWVyPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcmltYXJ5IGlkZW50aWZpZXIsIG9yIGlkZW50aWZpZXJzLCBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBXaGF0ZXZlciBnZXRzIHJldHVybmVkIHdoZW4geW91IGNhbGwgYHsgUmVmIH1gIGEgcmVzb3VyY2UuIFR5cGljYWxseSB0aGVcbiAgICogdmFsdWUgdGhhdCBvdGhlciByZXNvdXJjZXMgaW4gdGhlIHNhbWUgc2VydmljZSBleHBlY3QgdG8gc2VlIGFzIHRoZSB3YXkgdG9cbiAgICogcmVmZXJlbmNlIHRoaXMgcmVzb3VyY2UgKG5hbWUgb3IgQVJOIG9yIElkKS5cbiAgICpcbiAgICogSWYgbWlzc2luZywgdGhlIGBjZm5SZWZJZGVudGlmaWVyYCBpcyB0aGUgc2FtZSBhcyB0aGUgKENDLUFQSSkgYHByaW1hcnlJZGVudGlmaWVyYC5cbiAgICovXG4gIGNmblJlZklkZW50aWZpZXI/OiBzdHJpbmdbXTtcblxuICByZWFkb25seSBwcm9wZXJ0aWVzOiBSZXNvdXJjZVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIEF0dHJpYnV0ZT47XG4gIHJlYWRvbmx5IHZhbGlkYXRpb25zPzogdW5rbm93bjtcbiAgYXJuVGVtcGxhdGU/OiBzdHJpbmc7XG4gIGlzU3RhdGVmdWw/OiBib29sZWFuO1xuICB2ZW5kZWRMb2dzPzogVmVuZGVkTG9nc1tdO1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFnZ2FiaWxpdHkgb2YgdGhpcyByZXNvdXJjZVxuICAgKlxuICAgKiBVbmRlZmluZWQgaWYgdGhlIHJlc291cmNlIGlzIG5vdCB0YWdnYWJsZS5cbiAgICovXG4gIHRhZ0luZm9ybWF0aW9uPzogVGFnSW5mb3JtYXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2hhbmdlcyB0byB0aGlzIHJlc291cmNlIG5lZWQgdG8gYmUgc2NydXRpbml6ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgUmVzb3VyY2VTY3J1dGlueVR5cGUuTk9ORVxuICAgKi9cbiAgc2NydXRpbml6YWJsZT86IFJlc291cmNlU2NydXRpbnlUeXBlO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhdGhzIHRvIHByb3BlcnRpZXMgdGhhdCBhbHNvIGNhdXNlIHJlcGxhY2VtZW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGluZGljYXRlIHRoYXQgY2VydGFpbiBwcm9wZXJ0eSBwYXRocyBpbnRvIHRoaXMgcmVzb3VyY2VcbiAgICogd2lsbCBjYXVzZSByZXBsYWNlbWVudDsgb25seSByZXBsYWNlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWRcbiAgICogYnkgdGFnZ2luZyB0aGUgcHJvcGVydHkgaW4gYSB0eXBlIGRlZmluaXRpb24gd2lsbCBiZSBpbmNsdWRlZCBoZXJlXG4gICAqIChmb3IgZXhhbXBsZSwgYmVjYXVzZSB0aGUgdGFnZ2VkIHByb3BlcnR5IHdvdWxkIGJlIGluIGEgcHJlZGVmaW5lZFxuICAgKiB0eXBlIGxpa2UgYHRhZ2ApLlxuICAgKlxuICAgKiBBbGwgcHJvcGVydGllcyBpbiB0aGlzIGxpc3Qgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYGNhdXNlc1JlcGxhY2VtZW50OiAneWVzJ2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIGFkZGl0aW9uYWxSZXBsYWNlbWVudFByb3BlcnRpZXM/OiBzdHJpbmdbXVtdO1xufVxuXG5leHBvcnQgdHlwZSBSZXNvdXJjZVByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFJlc291cmNlUHJvcGVydGllcztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgcmVuZGVyIHRoaXMgdHlwZSBldmVuIGlmIGl0IGlzIHVudXNlZC5cbiAgICovXG4gIG11c3RSZW5kZXJGb3JCd0NvbXBhdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHkge1xuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2YgdGhlIHByb3BlcnR5XG4gICAqL1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJcyB0aGlzIHByb3BlcnR5IHJlcXVpcmVkXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHR5cGUgb2YgdGhpcyBwcm9wZXJ0eVxuICAgKi9cbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuXG4gIC8qKlxuICAgKiBBbiBvcmRlcmVkIGxpc3Qgb2YgcHJldmlvdXMgdHlwZXMgb2YgdGhpcyBwcm9wZXJ0eSBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICpcbiAgICogRG9lcyBub3QgaW5jbHVkZSB0aGUgY3VycmVudCB0eXBlLCB1c2UgYHR5cGVgIGZvciB0aGlzLlxuICAgKi9cbiAgcHJldmlvdXNUeXBlcz86IFByb3BlcnR5VHlwZVtdO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRhdGlvbiB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqXG4gICAqIFRoaXMgdmFsdWUgaXMgbm90IGRpcmVjdGx5IGZ1bmN0aW9uYWw7IGl0IGRlc2NyaWJlcyBob3cgdGhlIHVuZGVybHlpbmcgcmVzb3VyY2VcbiAgICogd2lsbCBiZWhhdmUgaWYgdGhlIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCB1bmtub3duXG4gICAqL1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIGRlcHJlY2F0ZWQ/OiBEZXByZWNhdGlvbjtcblxuICAvKipcbiAgICogV2hldGhlciBjaGFuZ2VzIHRvIHRoaXMgcHJvcGVydHkgbmVlZHMgdG8gYmUgc2NydXRpbml6ZWQgc3BlY2lhbGx5XG4gICAqXG4gICAqIEBkZWZhdWx0IFByb3BlcnR5U2NydXRpbnlUeXBlLk5PTkVcbiAgICovXG4gIHNjcnV0aW5pemFibGU/OiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29udGFpbmluZyByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkIGlmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAnbm8nXG4gICAqL1xuICBjYXVzZXNSZXBsYWNlbWVudD86ICd5ZXMnIHwgJ25vJyB8ICdtYXliZSc7XG5cbiAgLyoqXG4gICAqIFJlbGF0aW9uc2hpcCByZWZlcmVuY2VzIHRvIG90aGVyIENsb3VkRm9ybWF0aW9uIHJlc291cmNlc1xuICAgKi9cbiAgcmVsYXRpb25zaGlwUmVmcz86IFJlbGF0aW9uc2hpcFJlZltdO1xufVxuXG5leHBvcnQgY2xhc3MgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBQaWNrPFByb3BlcnR5LCAndHlwZScgfCAncHJldmlvdXNUeXBlcyc+KSB7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmllbGQgaXMgdW5kZWZpbmVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHR5cGVzKCk6IFByb3BlcnR5VHlwZVtdIHtcbiAgICByZXR1cm4gWy4uLih0aGlzLmZpZWxkLnByZXZpb3VzVHlwZXMgPz8gW10pLCB0aGlzLmZpZWxkLnR5cGVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5IHdpdGggYSBuZXcgdHlwZVxuICAgKlxuICAgKiBPbmx5IGlmIGl0J3Mgbm90IGluIHRoZSBzZXQgb2YgdHlwZXMgYWxyZWFkeS5cbiAgICpcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB0eXBlIHdhcyB1cGRhdGVkLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVR5cGUodHlwZTogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmljaFR5cGUgPSBuZXcgUmljaFByb3BlcnR5VHlwZSh0eXBlKTtcblxuICAgIC8vIE9ubHkgYWRkIHRoaXMgdHlwZSBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgaXQuIFdlIGFyZSBvbmx5IGRvaW5nIGNvbXBhcmlzb25zIHdoZXJlICdpbnRlZ2VyJyBhbmQgJ251bWJlcidcbiAgICAvLyBhcmUgdHJlYXRlZCB0aGUgc2FtZSwgZm9yIGFsbCBvdGhlciB0eXBlcyB3ZSBuZWVkIHN0cmljdCBlcXVhbGl0eS4gV2UgdXNlZCB0byB1c2UgJ2Fzc2lnbmFibGVUbycgYXMgYVxuICAgIC8vIGNvbmRpdGlvbiwgYnV0IHRoZXNlIHR5cGVzIHdpbGwgYmUgcmVuZGVyZWQgaW4gYm90aCBjby0gYW5kIGNvbnRyYXZhcmlhbnQgcG9zaXRpb25zLCBhbmQgc28gd2UgcmVhbGx5IGNhbid0XG4gICAgLy8gZG8gbXVjaCBiZXR0ZXIgdGhhbiBmdWxsIGVxdWFsaXR5LlxuICAgIGlmICh0aGlzLnR5cGVzKCkuc29tZSgodCkgPT4gcmljaFR5cGUuZXF1YWxzKHQpKSkge1xuICAgICAgLy8gTm90aGluZyB0byBkbywgdHlwZSBpcyBhbHJlYWR5IGluIHRoZXJlLlxuICAgICAgLy8gQnV0IGlmIHRoZSBuZXcgdHlwZSBoYXMgYWxsb3dlZFZhbHVlcywgbWVyZ2UgdGhlbSBpbnRvIHRoZSBjdXJyZW50IHR5cGUuXG4gICAgICBpZiAoKHR5cGUudHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZS50eXBlID09PSAnaW50ZWdlcicpICYmIHR5cGUuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICBpZiAodGhpcy5maWVsZC50eXBlLnR5cGUgPT09IHR5cGUudHlwZSkge1xuICAgICAgICAgICh0aGlzLmZpZWxkLnR5cGUgYXMgYW55KS5hbGxvd2VkVmFsdWVzID0gdHlwZS5hbGxvd2VkVmFsdWVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBjYXNlOiBpZiB0aGUgbmV3IHR5cGUgaXMgYHN0cmluZ2AgYW5kIHRoZSBvbGQgdHlwZSBpcyBgZGF0ZS10aW1lYCwgd2UgYXNzdW1lIHRoaXMgaXNcbiAgICAvLyB0aGUgc2FtZSB0eXBlIGJ1dCB3ZSBkcm9wcGVkIHNvbWUgZm9ybWF0dGluZyBpbmZvcm1hdGlvbi4gTm8gbmVlZCB0byBtYWtlIHRoaXMgYSBzZXBhcmF0ZSB0eXBlLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMudHlwZXMoKS5zb21lKCh0KSA9PiB0LnR5cGUgPT09ICdkYXRlLXRpbWUnKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgY2FzZTogaWYgdGhlIG5ldyB0eXBlIGlzIGBzdHJpbmdgIGFuZCB0aGUgb2xkIHR5cGUgaXMgYGpzb25gLCB3ZSBhc3N1bWUgdGhpcyBpcyBhIGNvcnJlY3Rpb25cbiAgICAvLyBvZiBhIGJ1ZzsgdGhlIG9sZCB0eXBlIHdhcyBpbmNvcnJlY3RseSB0eXBlZCBhcyBKc29uLCBhbmQgd2UncmUgbm93IGNvcnJlY3RpbmcgdGhpcy4gU2luY2UgdGhpcyB3YXMgYVxuICAgIC8vIGJ1Zywgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIHRoZSBvbGQgdHlwZTogaXQgd2FzIG5ldmVyIGFjY3VyYXRlLlxuICAgIC8vXG4gICAgLy8gV2UgY291bGQgYmUgbW9yZSBicm9hZCwgYW5kIG9ubHkgbWFpbnRhaW4gdHlwZSBoaXN0b3J5IGlmIHdlIGdvIGZyb21cbiAgICAvLyBganNvbmAgLT4gYG5hbWVkIHR5cGVgLCBvciBgbmFtZWQgdHlwZWAgLT4gYG5hbWVkIHR5cGVgLiAgRm9yIG5vdyBJJ21cbiAgICAvLyB3YXJ5IG9mIGRlc3Ryb3lpbmcgdG9vIG11Y2ggaW5mb3JtYXRpb247IHdlJ2xsIGp1c3QgZG8gdGhlIGZpeCBzcGVjaWZpY2FsbHlcbiAgICAvLyBmb3IgYGpzb25gIC0+IGBzdHJpbmdgLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMuZmllbGQudHlwZS50eXBlID09PSAnanNvbicpIHtcbiAgICAgIHRoaXMuZmllbGQudHlwZSA9IHR5cGU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZmllbGQucHJldmlvdXNUeXBlcykge1xuICAgICAgdGhpcy5maWVsZC5wcmV2aW91c1R5cGVzID0gW107XG4gICAgfVxuICAgIHRoaXMuZmllbGQucHJldmlvdXNUeXBlcy5wdXNoKHRoaXMuZmllbGQudHlwZSk7XG4gICAgdGhpcy5maWVsZC50eXBlID0gdHlwZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmljaFByb3BlcnR5IGV4dGVuZHMgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogUHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJpY2hBdHRyaWJ1dGUgZXh0ZW5kcyBSaWNoVHlwZWRGaWVsZCB7XG4gIGNvbnN0cnVjdG9yKGF0dHI6IEF0dHJpYnV0ZSkge1xuICAgIHN1cGVyKGF0dHIpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuICAvKipcbiAgICogQW4gb3JkZXJlZCBsaXN0IG9mIHByZXZpb3VzIHR5cGVzIG9mIHRoaXMgcHJvcGVydHkgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAqXG4gICAqIERvZXMgbm90IGluY2x1ZGUgdGhlIGN1cnJlbnQgdHlwZSwgdXNlIGB0eXBlYCBmb3IgdGhpcy5cbiAgICovXG4gIHByZXZpb3VzVHlwZXM/OiBQcm9wZXJ0eVR5cGVbXTtcbn1cblxuZXhwb3J0IGVudW0gRGVwcmVjYXRpb24ge1xuICAvKipcbiAgICogTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIE5PTkUgPSAnTk9ORScsXG5cbiAgLyoqXG4gICAqIFdhcm4gYWJvdXQgdXNlXG4gICAqL1xuICBXQVJOID0gJ1dBUk4nLFxuXG4gIC8qKlxuICAgKiBEbyBub3QgZW1pdCB0aGUgdmFsdWUgYXQgYWxsXG4gICAqXG4gICAqIChIYW5kbGUgcHJvcGVydGllcyB0aGF0IHdlcmUgaW5jb3JyZWN0bHkgYWRkZWQgdG8gdGhlIHNwZWMpXG4gICAqL1xuICBJR05PUkUgPSAnSUdOT1JFJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29sbGVjdGlvblR5cGUoeDogUHJvcGVydHlUeXBlKTogeCBpcyBBcnJheVR5cGU8YW55PiB8IE1hcFR5cGU8YW55PiB7XG4gIHJldHVybiB4LnR5cGUgPT09ICdhcnJheScgfHwgeC50eXBlID09PSAnbWFwJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdJbmZvcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0aGF0IGhvbGRzIHRoZSB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdQcm9wZXJ0eU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBpbnN0cnVjdCBjZGsuVGFnTWFuYWdlciBob3cgdG8gaGFuZGxlIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhbnQ6IFRhZ1ZhcmlhbnQ7XG59XG5cbmV4cG9ydCB0eXBlIFRhZ1ZhcmlhbnQgPSAnc3RhbmRhcmQnIHwgJ2FzZycgfCAnbWFwJztcblxuZXhwb3J0IHR5cGUgSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgUmVzb3VyY2U+O1xuZXhwb3J0IHR5cGUgUmVnaW9uSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8UmVnaW9uLCBSZXNvdXJjZT47XG5leHBvcnQgdHlwZSBSZWdpb25IYXNTZXJ2aWNlID0gUmVsYXRpb25zaGlwPFJlZ2lvbiwgU2VydmljZT47XG5leHBvcnQgdHlwZSBSZXNvdXJjZURvYyA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRG9jdW1lbnRhdGlvbj47XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFNlcnZpY2U+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFJlc291cmNlPjtcblxuZXhwb3J0IHR5cGUgVXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIFR5cGVEZWZpbml0aW9uPjtcblxuLyoqXG4gKiBNYXJrIGEgcmVzb3VyY2UgYXMgYSByZXNvdXJjZSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpeSB3aGVuIGFkZGVkLCByZW1vdmVkIG9yIGNoYW5nZWRcbiAqXG4gKiBVc2VkIHRvIG1hcmsgcmVzb3VyY2VzIHRoYXQgcmVwcmVzZW50IHNlY3VyaXR5IHBvbGljaWVzLlxuICovXG5leHBvcnQgZW51bSBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIC8qKlxuICAgKiBObyBhZGRpdGlvbmFsIHNjcnV0aW55XG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbGx5IGF0dGFjaGVkIHBvbGljeSBkb2N1bWVudCB0byBhIHJlc291cmNlXG4gICAqXG4gICAqIChDb21tb24gZm9yIFNRUywgU05TLCBTMywgLi4uKVxuICAgKi9cbiAgUmVzb3VyY2VQb2xpY3lSZXNvdXJjZSA9ICdSZXNvdXJjZVBvbGljeVJlc291cmNlJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IG9uIGFuIGlkZW50aXR5IHJlc291cmNlXG4gICAqXG4gICAqIChCYXNpY2FsbHkgc2F5aW5nOiB0aGlzIGlzIEFXUzo6SUFNOjpQb2xpY3kpXG4gICAqL1xuICBJZGVudGl0eVBvbGljeVJlc291cmNlID0gJ0lkZW50aXR5UG9saWN5UmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgTGFtYmRhIFBlcm1pc3Npb24gcG9saWN5XG4gICAqL1xuICBMYW1iZGFQZXJtaXNzaW9uID0gJ0xhbWJkYVBlcm1pc3Npb24nLFxuXG4gIC8qKlxuICAgKiBBbiBpbmdyZXNzIHJ1bGUgb2JqZWN0XG4gICAqL1xuICBJbmdyZXNzUnVsZVJlc291cmNlID0gJ0luZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlZ3Jlc3MgcnVsZXNcbiAgICovXG4gIEVncmVzc1J1bGVSZXNvdXJjZSA9ICdFZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBV1M6OlNTTzo6QXNzaWdubWVudFxuICAgKlxuICAgKiBJQU0gSWRlbnRpdHkgQ2VudGVyIChmb3JtZXJseSBrbm93biBhcyBTU08pXG4gICAqL1xuICBTc29Bc3NpZ25tZW50UmVzb3VyY2UgPSAnU3NvQXNzaWdubWVudFJlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086Okluc3RhbmNlQWNjZXNzQ29udHJvbEF0dHJpYnV0ZUNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvSW5zdGFuY2VBQ0FDb25maWdSZXNvdXJjZSA9ICdTc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086OlBlcm1pc3Npb25TZXRcbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvUGVybWlzc2lvblNldCA9ICdTc29QZXJtaXNzaW9uU2V0Jyxcbn1cblxuLyoqXG4gKiBNYXJrIGEgcHJvcGVydHkgYXMgYSBwcm9wZXJ0eSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpbnkgd2hlbiBpdCBjaGFuZ2VzXG4gKlxuICogVXNlZCB0byBtYXJrIHNlbnNpdGl2ZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGltcGxpY2F0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gUHJvcGVydHlTY3J1dGlueVR5cGUge1xuICAvKipcbiAgICogTm8gYWRkaXRpb25hbCBzY3J1dGlueVxuICAgKi9cbiAgTm9uZSA9ICdOb25lJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IGRpcmVjdGx5IG9uIGEgcmVzb3VyY2VcbiAgICovXG4gIElubGluZVJlc291cmNlUG9saWN5ID0gJ0lubGluZVJlc291cmNlUG9saWN5JyxcblxuICAvKipcbiAgICogRWl0aGVyIGFuIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudCBvciBhIGRpY3Rpb25hcnkgb2YgcG9saWN5IGRvY3VtZW50c1xuICAgKi9cbiAgSW5saW5lSWRlbnRpdHlQb2xpY2llcyA9ICdJbmxpbmVJZGVudGl0eVBvbGljaWVzJyxcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG1hbmFnZWQgcG9saWNpZXMgKG9uIGFuIGlkZW50aXR5IHJlc291cmNlKVxuICAgKi9cbiAgTWFuYWdlZFBvbGljaWVzID0gJ01hbmFnZWRQb2xpY2llcycsXG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGluZ3Jlc3MgcnVsZXMgKG9uIGEgc2VjdXJpdHkgZ3JvdXApXG4gICAqL1xuICBJbmdyZXNzUnVsZXMgPSAnSW5ncmVzc1J1bGVzJyxcblxuICAvKipcbiAgICogQSBzZXQgb2YgZWdyZXNzIHJ1bGVzIChvbiBhIHNlY3VyaXR5IGdyb3VwKVxuICAgKi9cbiAgRWdyZXNzUnVsZXMgPSAnRWdyZXNzUnVsZXMnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSByZWxhdGlvbnNoaXAgcmVmZXJlbmNlIHRvIGFub3RoZXIgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbnNoaXBSZWYge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgdGhpcyBwcm9wZXJ0eSByZWZlcmVuY2VzXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IG5hbWUgd2l0aGluIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIChlLmcuLCBcIklkXCIpXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGVsaXZlcnkgZGVzdGluYXRpb24gdGhhdCBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBzZW5kIGxvZ3MgdG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxpdmVyeURlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHNlcnZpY2UgdGhhdCBpcyBpbmdlc3RpbmcgdGhlIGxvZ3MsIGNhbiBiZSBTMyB8IEZIIHwgQ1dMIHwgWFJBWVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25UeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBmb3JtYXQgb2YgbG9ncyBzZW50IHRvIHRoaXMgZGVsaXZlcnkgZGVzdGluYXRpb24sIGNhbiBiZSBqc29uIHwgcGFycXVldCB8IHczYyB8IHBsYWluIHwgcmF3IHwgdW5kZWZpbmVkXG4gICAqIFdoYXQgZm9ybWF0cyBhcmUgYXZhbGlibGUgdmFyeSBiYXNlZCBvbiBkZXN0aW5hdGlvblR5cGVcbiAgICogUzMgZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBqc29uLCBwbGFpbiwgdzNjLCBvciBwYXJxdWV0XG4gICAqIENsb3Vkd2F0Y2ggZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBwbGFpbiBvciBqc29uXG4gICAqIEZpcmVob3NlIGRlc3RpbmF0aW9uIHR5cGVzIGNhbiBhY2NlcHQganNvbiwgcmF3LCBvciBwYXJxdWV0XG4gICAqIFhSYXkgZGVzdGluYXRpb24gdHlwZXMgZG8gbm90IHVzZSBvdXRwdXQgZm9ybWF0c1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0Rm9ybWF0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0eXBlIG9mIGxvZyB0aGF0IGEgQ2xvdWRmb3JtYXRpb24gUmVzb3VyY2UgY2FuIHByb2R1Y2UgYW5kIHdoYXQgZGVzdGluYXRpb25zIGNhbiBjb25zdW1lIHRoZW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZW5kZWRMb2dzIHtcbiAgLyoqXG4gICAqIFdoYXQgdmVyc2lvbiBvZiBwZXJtaXNzaW9ucyB0aGUgZGVzdGluYXRpb24gc3VwcG9ydHMgVjEgfCBWMlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnNWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUeXBlIG9mIGxvZyBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBwcm9kdWNlXG4gICAqL1xuICByZWFkb25seSBsb2dUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHRoZSBkZXN0aW5hdGlvbnMgdGhlIGNhbiBjb25zdW1lIHRob3NlIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uczogRGVsaXZlcnlEZXN0aW5hdGlvbltdO1xuICAvKipcbiAgICogUmVjb3JkIGZpZWxkcyB0aGF0IGFyZSBtYW5kYXRvcnkgdG8gYmUgZGVsaXZlcmVkXG4gICAqL1xuICBtYW5kYXRvcnlGaWVsZHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFJlY29yZCBmaWVsZHMgdGhhdCBjYW4gYmUgb3B0aW9uYWxseSBkZWxpdmVyZWRcbiAgICovXG4gIG9wdGlvbmFsRmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBSaWNoUHJvcGVydHlUeXBlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0eXBlOiBQcm9wZXJ0eVR5cGUpIHt9XG5cbiAgcHVibGljIGVxdWFscyhyaHM6IFByb3BlcnR5VHlwZSk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgY2FzZSAnanNvbic6XG4gICAgICBjYXNlICdudWxsJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHJocy50eXBlID09PSB0aGlzLnR5cGUudHlwZTtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmVxdWFscyhyaHMuZWxlbWVudCk7XG4gICAgICBjYXNlICdyZWYnOlxuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdyZWYnICYmIHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZiA9PT0gcmhzLnJlZmVyZW5jZS4kcmVmO1xuICAgICAgY2FzZSAndW5pb24nOlxuICAgICAgICBjb25zdCBsaHNLZXkgPSB0aGlzLnNvcnRLZXkoKTtcbiAgICAgICAgY29uc3QgcmhzS2V5ID0gbmV3IFJpY2hQcm9wZXJ0eVR5cGUocmhzKS5zb3J0S2V5KCk7XG4gICAgICAgIHJldHVybiBsaHNLZXkubGVuZ3RoID09PSByaHNLZXkubGVuZ3RoICYmIGxoc0tleS5ldmVyeSgobCwgaSkgPT4gbCA9PT0gcmhzS2V5W2ldKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY3VycmVudCB0eXBlIGlzIEphdmFTY3JpcHQtZXF1YWwgdG8gdGhlIFJIUyB0eXBlXG4gICAqXG4gICAqIFNhbWUgYXMgbm9ybWFsIGVxdWFsaXR5LCBidXQgY29uc2lkZXIgYGludGVnZXJgIGFuZCBgbnVtYmVyYCB0aGUgc2FtZSB0eXBlcy5cbiAgICovXG4gIHB1YmxpYyBqYXZhc2NyaXB0RXF1YWxzKHJoczogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAvLyBXaWRlbmluZ1xuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdpbnRlZ2VyJyB8fCByaHMudHlwZSA9PT0gJ251bWJlcic7XG5cbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmphdmFzY3JpcHRFcXVhbHMocmhzLmVsZW1lbnQpO1xuXG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGlmIChyaHMudHlwZSAhPT0gJ3VuaW9uJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFdmVyeSB0eXBlIGluIHRoaXMgdW5pb24gbmVlZHMgdG8gYmUgZXF1YWwgb25lIHR5cGUgaW4gUkhTXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMuZXZlcnkoKHQxKSA9PiByaHMudHlwZXMuc29tZSgodDIpID0+IG5ldyBSaWNoUHJvcGVydHlUeXBlKHQxKS5qYXZhc2NyaXB0RXF1YWxzKHQyKSkpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBGb3IgYW55dGhpbmcgZWxzZSwgbmVlZCBzdHJpY3QgZXF1YWxpdHlcbiAgICAgICAgcmV0dXJuIHRoaXMuZXF1YWxzKHJocyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgdHlwZSBpcyBhc3NpZ25hYmxlIHRvIHRoZSBSSFMgdHlwZS5cbiAgICpcbiAgICogVGhpcyBpcyBtZWFucyBldmVyeSB0eXBlIG1lbWJlciBvZiB0aGUgTEhTIG11c3QgYmUgcHJlc2VudCBpbiB0aGUgUkhTIHR5cGVcbiAgICovXG4gIHB1YmxpYyBhc3NpZ25hYmxlVG8ocmhzOiBQcm9wZXJ0eVR5cGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHRyYWN0TWVtYmVycyA9ICh0eXBlOiBQcm9wZXJ0eVR5cGUpOiBQcm9wZXJ0eVR5cGVbXSA9PiAodHlwZS50eXBlID09ICd1bmlvbicgPyB0eXBlLnR5cGVzIDogW3R5cGVdKTtcbiAgICBjb25zdCBhc1JpY2hUeXBlID0gKHR5cGU6IFByb3BlcnR5VHlwZSk6IFJpY2hQcm9wZXJ0eVR5cGUgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodHlwZSk7XG5cbiAgICBjb25zdCByaHNNZW1iZXJzID0gZXh0cmFjdE1lbWJlcnMocmhzKTtcbiAgICBmb3IgKGNvbnN0IGxoc01lbWJlciBvZiBleHRyYWN0TWVtYmVycyh0aGlzLnR5cGUpLm1hcChhc1JpY2hUeXBlKSkge1xuICAgICAgaWYgKCFyaHNNZW1iZXJzLnNvbWUoKHR5cGUpID0+IGxoc01lbWJlci5lcXVhbHModHlwZSkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB2ZXJzaW9uIG9mIHRoaXMgdHlwZSwgYnV0IHdpdGggYWxsIHR5cGUgdW5pb25zIGluIGEgcmVndWxhcml6ZWQgb3JkZXJcbiAgICovXG4gIHB1YmxpYyBub3JtYWxpemUoZGI6IFNwZWNEYXRhYmFzZSk6IFJpY2hQcm9wZXJ0eVR5cGUge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBuZXcgUmljaFByb3BlcnR5VHlwZSh7XG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLnR5cGUsXG4gICAgICAgICAgZWxlbWVudDogbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLm5vcm1hbGl6ZShkYikudHlwZSxcbiAgICAgICAgfSk7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVzID0gdGhpcy50eXBlLnR5cGVzXG4gICAgICAgICAgLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkubm9ybWFsaXplKGRiKSlcbiAgICAgICAgICAubWFwKCh0KSA9PiBbdCwgdC5zb3J0S2V5KGRiKV0gYXMgY29uc3QpO1xuICAgICAgICB0eXBlcy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKChbXywgc29ydEtleV0pID0+IHNvcnRLZXkpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSaWNoUHJvcGVydHlUeXBlKHtcbiAgICAgICAgICB0eXBlOiAndW5pb24nLFxuICAgICAgICAgIHR5cGVzOiB0eXBlcy5tYXAoKFt0LCBfXSkgPT4gdC50eXBlKSxcbiAgICAgICAgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RyaW5naWZ5KGRiOiBTcGVjRGF0YWJhc2UsIHdpdGhJZCA9IHRydWUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcyA/IGBzdHJpbmc8JHt0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcy5qb2luKCd8Jyl9PmAgOiAnc3RyaW5nJztcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmFsbG93ZWRWYWx1ZXMgPyBgaW50ZWdlcjwke3RoaXMudHlwZS5hbGxvd2VkVmFsdWVzLmpvaW4oJ3wnKX0+YCA6ICdpbnRlZ2VyJztcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS50eXBlO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICByZXR1cm4gYEFycmF5PCR7bmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLnN0cmluZ2lmeShkYiwgd2l0aElkKX0+YDtcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBgTWFwPHN0cmluZywgJHtuZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc3RyaW5naWZ5KGRiLCB3aXRoSWQpfT5gO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgY29uc3QgdHlwZSA9IGRiLmdldCgndHlwZURlZmluaXRpb24nLCB0aGlzLnR5cGUucmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuIHdpdGhJZCA/IGAke3R5cGUubmFtZX0oJHt0aGlzLnR5cGUucmVmZXJlbmNlLiRyZWZ9KWAgOiB0eXBlLm5hbWU7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMubWFwKCh0KSA9PiBuZXcgUmljaFByb3BlcnR5VHlwZSh0KS5zdHJpbmdpZnkoZGIsIHdpdGhJZCkpLmpvaW4oJyB8ICcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzb3J0YWJsZSBrZXkgYmFzZWQgb24gdGhpcyB0eXBlXG4gICAqXG4gICAqIElmIGEgZGF0YWJhc2UgaXMgZ2l2ZW4sIHR5cGUgZGVmaW5pdGlvbnMgd2lsbCBiZSBzb3J0ZWQgYmFzZWQgb24gdHlwZSBuYW1lLFxuICAgKiBvdGhlcndpc2Ugb24gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIHNvcnRLZXkoZGI/OiBTcGVjRGF0YWJhc2UpOiBzdHJpbmdbXSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICd0YWcnOlxuICAgICAgICByZXR1cm4gWycwJywgdGhpcy50eXBlLnR5cGVdO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnbWFwJzpcbiAgICAgICAgcmV0dXJuIFsnMScsIHRoaXMudHlwZS50eXBlLCAuLi5uZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc29ydEtleShkYildO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgcmV0dXJuIFsnMicsIHRoaXMudHlwZS50eXBlLCBkYj8uZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHRoaXMudHlwZS5yZWZlcmVuY2UpPy5uYW1lID8/IHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZl07XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVLZXlzID0gdGhpcy50eXBlLnR5cGVzLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkuc29ydEtleShkYikpO1xuICAgICAgICB0eXBlS2V5cy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKCh4KSA9PiB4KSk7XG4gICAgICAgIHJldHVybiBbJzMnLCB0aGlzLnR5cGUudHlwZSwgLi4udHlwZUtleXMuZmxhdE1hcCgoeCkgPT4geCldO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVR5cGUgPSBHZW5lcmljUHJvcGVydHlUeXBlPFR5cGVEZWZpbml0aW9uPjtcbmV4cG9ydCB0eXBlIERlZmluaXRpb25SZWZlcmVuY2UgPSBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZTxUeXBlRGVmaW5pdGlvbj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortKeyComparator = sortKeyComparator;\n/**\n * Make a sorting comparator that will sort by a given sort key\n */\nfunction sortKeyComparator(keyFn) {\n return (a, b) => {\n const ak = keyFn(a);\n const bk = keyFn(b);\n for (let i = 0; i < ak.length && i < bk.length; i++) {\n const av = ak[i];\n const bv = bk[i];\n let diff = 0;\n if (typeof av === 'number' && typeof bv === 'number') {\n diff = av - bv;\n }\n else if (typeof av === 'string' && typeof bv === 'string') {\n diff = av.localeCompare(bv);\n }\n if (diff !== 0) {\n return diff;\n }\n }\n return bk.length - ak.length;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3NvcnRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4Q0F1QkM7QUExQkQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBSSxLQUF1QztJQUMxRSxPQUFPLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBVSxFQUFFO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNiLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDO2lCQUFNLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1ha2UgYSBzb3J0aW5nIGNvbXBhcmF0b3IgdGhhdCB3aWxsIHNvcnQgYnkgYSBnaXZlbiBzb3J0IGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydEtleUNvbXBhcmF0b3I8QT4oa2V5Rm46ICh4OiBBKSA9PiBBcnJheTxzdHJpbmcgfCBudW1iZXI+KSB7XG4gIHJldHVybiAoYTogQSwgYjogQSk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgYWsgPSBrZXlGbihhKTtcbiAgICBjb25zdCBiayA9IGtleUZuKGIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhay5sZW5ndGggJiYgaSA8IGJrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhdiA9IGFrW2ldO1xuICAgICAgY29uc3QgYnYgPSBia1tpXTtcblxuICAgICAgbGV0IGRpZmYgPSAwO1xuICAgICAgaWYgKHR5cGVvZiBhdiA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGJ2ID09PSAnbnVtYmVyJykge1xuICAgICAgICBkaWZmID0gYXYgLSBidjtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGF2ID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgYnYgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRpZmYgPSBhdi5sb2NhbGVDb21wYXJlKGJ2KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpZmYgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGRpZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJrLmxlbmd0aCAtIGFrLmxlbmd0aDtcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DestinationPattern = exports.DestinationIdentifier = exports.DockerImageManifestEntry = exports.FileManifestEntry = exports.AssetManifest = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\n/**\n * A manifest of assets\n */\nclass AssetManifest {\n /**\n * Load an asset manifest from the given file\n */\n static fromFile(fileName) {\n try {\n const obj = cloud_assembly_schema_1.Manifest.loadAssetManifest(fileName);\n return new AssetManifest(path.dirname(fileName), obj);\n }\n catch (e) {\n throw new Error(`Cannot read asset manifest '${fileName}': ${e.message}`);\n }\n }\n /**\n * Load an asset manifest from the given file or directory\n *\n * If the argument given is a directoy, the default asset file name will be used.\n */\n static fromPath(filePath) {\n let st;\n try {\n st = fs.statSync(filePath);\n }\n catch (e) {\n throw new Error(`Cannot read asset manifest at '${filePath}': ${e.message}`);\n }\n if (st.isDirectory()) {\n return AssetManifest.fromFile(path.join(filePath, AssetManifest.DEFAULT_FILENAME));\n }\n return AssetManifest.fromFile(filePath);\n }\n constructor(directory, manifest) {\n this.manifest = manifest;\n this.directory = directory;\n }\n /**\n * Select a subset of assets and destinations from this manifest.\n *\n * Only assets with at least 1 selected destination are retained.\n *\n * If selection is not given, everything is returned.\n */\n select(selection) {\n if (selection === undefined) {\n return this;\n }\n const ret = {\n version: this.manifest.version,\n dockerImages: {},\n files: {},\n };\n for (const assetType of ASSET_TYPES) {\n for (const [assetId, asset] of Object.entries(this.manifest[assetType] || {})) {\n const filteredDestinations = filterDict(asset.destinations, (_, destId) => selection.some((sel) => sel.matches(new DestinationIdentifier(assetId, destId))));\n if (Object.keys(filteredDestinations).length > 0) {\n ret[assetType][assetId] = {\n ...asset,\n destinations: filteredDestinations,\n };\n }\n }\n }\n return new AssetManifest(this.directory, ret);\n }\n /**\n * Describe the asset manifest as a list of strings\n */\n list() {\n return [\n ...describeAssets('file', this.manifest.files || {}),\n ...describeAssets('docker-image', this.manifest.dockerImages || {}),\n ];\n function describeAssets(type, assets) {\n const ret = new Array();\n for (const [assetId, asset] of Object.entries(assets || {})) {\n ret.push(`${assetId} ${type} ${JSON.stringify(asset.source)}`);\n const destStrings = Object.entries(asset.destinations).map(([destId, dest]) => ` ${assetId}:${destId} ${JSON.stringify(dest)}`);\n ret.push(...prefixTreeChars(destStrings, ' '));\n }\n return ret;\n }\n }\n /**\n * List of assets per destination\n *\n * Returns one asset for every publishable destination. Multiple asset\n * destinations may share the same asset source.\n */\n get entries() {\n return [\n ...makeEntries(this.manifest.files || {}, FileManifestEntry),\n ...makeEntries(this.manifest.dockerImages || {}, DockerImageManifestEntry),\n ];\n }\n /**\n * List of file assets, splat out to destinations\n */\n get files() {\n return makeEntries(this.manifest.files || {}, FileManifestEntry);\n }\n}\nexports.AssetManifest = AssetManifest;\n/**\n * The default name of the asset manifest in a cdk.out directory\n */\nAssetManifest.DEFAULT_FILENAME = 'assets.json';\nfunction makeEntries(assets, ctor) {\n const ret = new Array();\n for (const [assetId, asset] of Object.entries(assets)) {\n for (const [destId, destination] of Object.entries(asset.destinations)) {\n ret.push(new ctor(new DestinationIdentifier(assetId, destId), asset.displayName, asset.source, destination));\n }\n }\n return ret;\n}\nconst ASSET_TYPES = ['files', 'dockerImages'];\n/**\n * A manifest entry for a file asset\n */\nclass FileManifestEntry {\n constructor(\n /** Identifier for this asset */\n id, _displayName, \n /** Source of the file asset */\n source, \n /** Destination for the file asset */\n destination) {\n this.id = id;\n this._displayName = _displayName;\n this.source = source;\n this.destination = destination;\n this.type = 'file';\n this.genericSource = source;\n this.genericDestination = destination;\n }\n displayName(includeDestination) {\n if (includeDestination) {\n return this._displayName ? `${this._displayName} (${this.id.destinationId})` : `${this.id}`;\n }\n else {\n return this._displayName ? this._displayName : this.id.assetId;\n }\n }\n}\nexports.FileManifestEntry = FileManifestEntry;\n/**\n * A manifest entry for a docker image asset\n */\nclass DockerImageManifestEntry {\n constructor(\n /** Identifier for this asset */\n id, _displayName, \n /** Source of the file asset */\n source, \n /** Destination for the file asset */\n destination) {\n this.id = id;\n this._displayName = _displayName;\n this.source = source;\n this.destination = destination;\n this.type = 'docker-image';\n this.genericSource = source;\n this.genericDestination = destination;\n }\n displayName(includeDestination) {\n if (includeDestination) {\n return this._displayName ? `${this._displayName} (${this.id.destinationId})` : `${this.id}`;\n }\n else {\n return this._displayName ? this._displayName : this.id.assetId;\n }\n }\n}\nexports.DockerImageManifestEntry = DockerImageManifestEntry;\n/**\n * Identify an asset destination in an asset manifest\n *\n * This class is used to identify both an asset to be built as well as a\n * destination where an asset will be published. However, when reasoning about\n * building assets the destination part can be ignored, because the same asset\n * being sent to multiple destinations will only need to be built once and their\n * assetIds are all the same.\n *\n * When stringified, this will be a combination of the source and destination\n * IDs; if a string representation of the source is necessary, use `id.assetId`\n * instead.\n */\nclass DestinationIdentifier {\n constructor(assetId, destinationId) {\n this.assetId = assetId;\n this.destinationId = destinationId;\n }\n /**\n * Return a string representation for this asset identifier\n */\n toString() {\n return this.destinationId ? `${this.assetId}:${this.destinationId}` : this.assetId;\n }\n}\nexports.DestinationIdentifier = DestinationIdentifier;\nfunction filterDict(xs, pred) {\n const ret = {};\n for (const [key, value] of Object.entries(xs)) {\n if (pred(value, key)) {\n ret[key] = value;\n }\n }\n return ret;\n}\n/**\n * A filter pattern for an destination identifier\n */\nclass DestinationPattern {\n /**\n * Parse a ':'-separated string into an asset/destination identifier\n */\n static parse(s) {\n if (!s) {\n throw new Error('Empty string is not a valid destination identifier');\n }\n const parts = s.split(':').map((x) => (x !== '*' ? x : undefined));\n if (parts.length === 1) {\n return new DestinationPattern(parts[0]);\n }\n if (parts.length === 2) {\n return new DestinationPattern(parts[0] || undefined, parts[1] || undefined);\n }\n throw new Error(`Asset identifier must contain at most 2 ':'-separated parts, got '${s}'`);\n }\n constructor(assetId, destinationId) {\n this.assetId = assetId;\n this.destinationId = destinationId;\n }\n /**\n * Whether or not this pattern matches the given identifier\n */\n matches(id) {\n return ((this.assetId === undefined || this.assetId === id.assetId) &&\n (this.destinationId === undefined || this.destinationId === id.destinationId));\n }\n /**\n * Return a string representation for this asset identifier\n */\n toString() {\n return `${this.assetId ?? '*'}:${this.destinationId ?? '*'}`;\n }\n}\nexports.DestinationPattern = DestinationPattern;\n/**\n * Prefix box-drawing characters to make lines look like a hanging tree\n */\nfunction prefixTreeChars(xs, prefix = '') {\n const ret = new Array();\n for (let i = 0; i < xs.length; i++) {\n const isLast = i === xs.length - 1;\n const boxChar = isLast ? '└' : '├';\n ret.push(`${prefix}${boxChar}${xs[i]}`);\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBUTdCLDBFQUV3QztBQUV4Qzs7R0FFRztBQUNILE1BQWEsYUFBYTtJQU14Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsZ0NBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUM7WUFDSCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxRQUFRLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNE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IGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2V0TWFuaWZlc3QgYXMgQXNzZXRNYW5pZmVzdFNjaGVtYSxcbiAgRG9ja2VySW1hZ2VEZXN0aW5hdGlvbixcbiAgRG9ja2VySW1hZ2VTb3VyY2UsXG4gIEZpbGVEZXN0aW5hdGlvbixcbiAgRmlsZVNvdXJjZSxcbn0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7XG4gIE1hbmlmZXN0LFxufSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIEEgbWFuaWZlc3Qgb2YgYXNzZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IG5hbWUgb2YgdGhlIGFzc2V0IG1hbmlmZXN0IGluIGEgY2RrLm91dCBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9GSUxFTkFNRSA9ICdhc3NldHMuanNvbic7XG5cbiAgLyoqXG4gICAqIExvYWQgYW4gYXNzZXQgbWFuaWZlc3QgZnJvbSB0aGUgZ2l2ZW4gZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRmlsZShmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9iaiA9IE1hbmlmZXN0LmxvYWRBc3NldE1hbmlmZXN0KGZpbGVOYW1lKTtcbiAgICAgIHJldHVybiBuZXcgQXNzZXRNYW5pZmVzdChwYXRoLmRpcm5hbWUoZmlsZU5hbWUpLCBvYmopO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVhZCBhc3NldCBtYW5pZmVzdCAnJHtmaWxlTmFtZX0nOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbiBhc3NldCBtYW5pZmVzdCBmcm9tIHRoZSBnaXZlbiBmaWxlIG9yIGRpcmVjdG9yeVxuICAgKlxuICAgKiBJZiB0aGUgYXJndW1lbnQgZ2l2ZW4gaXMgYSBkaXJlY3RveSwgdGhlIGRlZmF1bHQgYXNzZXQgZmlsZSBuYW1lIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIGxldCBzdDtcbiAgICB0cnkge1xuICAgICAgc3QgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGFzc2V0IG1hbmlmZXN0IGF0ICcke2ZpbGVQYXRofSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBpZiAoc3QuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgcmV0dXJuIEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUocGF0aC5qb2luKGZpbGVQYXRoLCBBc3NldE1hbmlmZXN0LkRFRkFVTFRfRklMRU5BTUUpKTtcbiAgICB9XG4gICAgcmV0dXJuIEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUoZmlsZVBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIG1hbmlmZXN0IHdhcyBmb3VuZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRpcmVjdG9yeTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RTY2hlbWEsXG4gICkge1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gZGlyZWN0b3J5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHN1YnNldCBvZiBhc3NldHMgYW5kIGRlc3RpbmF0aW9ucyBmcm9tIHRoaXMgbWFuaWZlc3QuXG4gICAqXG4gICAqIE9ubHkgYXNzZXRzIHdpdGggYXQgbGVhc3QgMSBzZWxlY3RlZCBkZXN0aW5hdGlvbiBhcmUgcmV0YWluZWQuXG4gICAqXG4gICAqIElmIHNlbGVjdGlvbiBpcyBub3QgZ2l2ZW4sIGV2ZXJ5dGhpbmcgaXMgcmV0dXJuZWQuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KHNlbGVjdGlvbj86IERlc3RpbmF0aW9uUGF0dGVybltdKTogQXNzZXRNYW5pZmVzdCB7XG4gICAgaWYgKHNlbGVjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb25zdCByZXQ6IEFzc2V0TWFuaWZlc3RTY2hlbWEgJiBSZXF1aXJlZDxQaWNrPEFzc2V0TWFuaWZlc3RTY2hlbWEsIEFzc2V0VHlwZT4+ID0ge1xuICAgICAgdmVyc2lvbjogdGhpcy5tYW5pZmVzdC52ZXJzaW9uLFxuICAgICAgZG9ja2VySW1hZ2VzOiB7fSxcbiAgICAgIGZpbGVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBhc3NldFR5cGUgb2YgQVNTRVRfVFlQRVMpIHtcbiAgICAgIGZvciAoY29uc3QgW2Fzc2V0SWQsIGFzc2V0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1hbmlmZXN0W2Fzc2V0VHlwZV0gfHwge30pKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGVzdGluYXRpb25zID0gZmlsdGVyRGljdChhc3NldC5kZXN0aW5hdGlvbnMsIChfLCBkZXN0SWQpID0+XG4gICAgICAgICAgc2VsZWN0aW9uLnNvbWUoKHNlbCkgPT4gc2VsLm1hdGNoZXMobmV3IERlc3RpbmF0aW9uSWRlbnRpZmllcihhc3NldElkLCBkZXN0SWQpKSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcmVkRGVzdGluYXRpb25zKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0W2Fzc2V0VHlwZV1bYXNzZXRJZF0gPSB7XG4gICAgICAgICAgICAuLi5hc3NldCxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uczogZmlsdGVyZWREZXN0aW5hdGlvbnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQXNzZXRNYW5pZmVzdCh0aGlzLmRpcmVjdG9yeSwgcmV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmliZSB0aGUgYXNzZXQgbWFuaWZlc3QgYXMgYSBsaXN0IG9mIHN0cmluZ3NcbiAgICovXG4gIHB1YmxpYyBsaXN0KCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5kZXNjcmliZUFzc2V0cygnZmlsZScsIHRoaXMubWFuaWZlc3QuZmlsZXMgfHwge30pLFxuICAgICAgLi4uZGVzY3JpYmVBc3NldHMoJ2RvY2tlci1pbWFnZScsIHRoaXMubWFuaWZlc3QuZG9ja2VySW1hZ2VzIHx8IHt9KSxcbiAgICBdO1xuXG4gICAgZnVuY3Rpb24gZGVzY3JpYmVBc3NldHMoXG4gICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICBhc3NldHM6IFJlY29yZDxzdHJpbmcsIHsgc291cmNlOiBhbnk7IGRlc3RpbmF0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiB9PixcbiAgICApIHtcbiAgICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgICBmb3IgKGNvbnN0IFthc3NldElkLCBhc3NldF0gb2YgT2JqZWN0LmVudHJpZXMoYXNzZXRzIHx8IHt9KSkge1xuICAgICAgICByZXQucHVzaChgJHthc3NldElkfSAke3R5cGV9ICR7SlNPTi5zdHJpbmdpZnkoYXNzZXQuc291cmNlKX1gKTtcblxuICAgICAgICBjb25zdCBkZXN0U3RyaW5ncyA9IE9iamVjdC5lbnRyaWVzKGFzc2V0LmRlc3RpbmF0aW9ucykubWFwKFxuICAgICAgICAgIChbZGVzdElkLCBkZXN0XSkgPT4gYCAke2Fzc2V0SWR9OiR7ZGVzdElkfSAke0pTT04uc3RyaW5naWZ5KGRlc3QpfWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldC5wdXNoKC4uLnByZWZpeFRyZWVDaGFycyhkZXN0U3RyaW5ncywgJyAgJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBhc3NldHMgcGVyIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIFJldHVybnMgb25lIGFzc2V0IGZvciBldmVyeSBwdWJsaXNoYWJsZSBkZXN0aW5hdGlvbi4gTXVsdGlwbGUgYXNzZXRcbiAgICogZGVzdGluYXRpb25zIG1heSBzaGFyZSB0aGUgc2FtZSBhc3NldCBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVudHJpZXMoKTogSU1hbmlmZXN0RW50cnlbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm1ha2VFbnRyaWVzKHRoaXMubWFuaWZlc3QuZmlsZXMgfHwge30sIEZpbGVNYW5pZmVzdEVudHJ5KSxcbiAgICAgIC4uLm1ha2VFbnRyaWVzKHRoaXMubWFuaWZlc3QuZG9ja2VySW1hZ2VzIHx8IHt9LCBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkpLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBmaWxlIGFzc2V0cywgc3BsYXQgb3V0IHRvIGRlc3RpbmF0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlTWFuaWZlc3RFbnRyeVtdIHtcbiAgICByZXR1cm4gbWFrZUVudHJpZXModGhpcy5tYW5pZmVzdC5maWxlcyB8fCB7fSwgRmlsZU1hbmlmZXN0RW50cnkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1ha2VFbnRyaWVzPEEsIEIsIEM+KFxuICBhc3NldHM6IFJlY29yZDxzdHJpbmcsIHsgc291cmNlOiBBOyBkaXNwbGF5TmFtZT86IHN0cmluZzsgZGVzdGluYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBCPiB9PixcbiAgY3RvcjogbmV3IChpZDogRGVzdGluYXRpb25JZGVudGlmaWVyLCBkaXNwbGF5TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBzb3VyY2U6IEEsIGRlc3RpbmF0aW9uOiBCKSA9PiBDLFxuKTogQ1tdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PEM+KCk7XG4gIGZvciAoY29uc3QgW2Fzc2V0SWQsIGFzc2V0XSBvZiBPYmplY3QuZW50cmllcyhhc3NldHMpKSB7XG4gICAgZm9yIChjb25zdCBbZGVzdElkLCBkZXN0aW5hdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoYXNzZXQuZGVzdGluYXRpb25zKSkge1xuICAgICAgcmV0LnB1c2gobmV3IGN0b3IobmV3IERlc3RpbmF0aW9uSWRlbnRpZmllcihhc3NldElkLCBkZXN0SWQpLCBhc3NldC5kaXNwbGF5TmFtZSwgYXNzZXQuc291cmNlLCBkZXN0aW5hdGlvbikpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG50eXBlIEFzc2V0VHlwZSA9ICdmaWxlcycgfCAnZG9ja2VySW1hZ2VzJztcblxuY29uc3QgQVNTRVRfVFlQRVM6IEFzc2V0VHlwZVtdID0gWydmaWxlcycsICdkb2NrZXJJbWFnZXMnXTtcblxuLyoqXG4gKiBBIHNpbmdsZSBhc3NldCBmcm9tIGFuIGFzc2V0IG1hbmlmZXN0J1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElNYW5pZmVzdEVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBhbmQgaXRzIGRlc3RpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSBpZDogRGVzdGluYXRpb25JZGVudGlmaWVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlLWRlcGVuZGVudCBzb3VyY2UgZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcblxuICAvKipcbiAgICogVHlwZS1kZXBlbmRlbnQgZGVzdGluYXRpb24gZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJpY0Rlc3RpbmF0aW9uOiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBkaXNwbGF5IG5hbWUgZm9yIHRoaXMgYXNzZXRcbiAgICpcbiAgICogVGhlIGBpbmNsdWRlRGVzdGluYXRpb25gIHBhcmFtZXRlciBjb250cm9scyB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZVxuICAgKiBkZXN0aW5hdGlvbiBJRCBpbiB0aGUgZGlzcGxheSBuYW1lLlxuICAgKlxuICAgKiAtIFBhc3MgYGZhbHNlYCBpZiB5b3UgYXJlIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucyBhYm91dCBidWlsZGluZyB0aGVcbiAgICogICBhc3NldCwgb3IgaWYgeW91IGFyZSBkZXNjcmliaW5nIHRoZSB3b3JrIG9mIGJ1aWxkaW5nIHRoZSBhc3NldCBhbmQgcHVibGlzaGluZ1xuICAgKiAgIHRvIGFsbCBkZXN0aW5hdGlvbnMgYXQgdGhlIHNhbWUgdGltZS5cbiAgICogLSBQYXNzIGB0cnVlYCBpZiB5b3UgYXJlIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucyBhYm91dCBwdWJsaXNoaW5nIHRvIGFcbiAgICogICBzcGVjaWZpYyBkZXN0aW5hdGlvbi5cbiAgICovXG4gIGRpc3BsYXlOYW1lKGluY2x1ZGVEZXN0aW5hdGlvbjogYm9vbGVhbik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG1hbmlmZXN0IGVudHJ5IGZvciBhIGZpbGUgYXNzZXRcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVNYW5pZmVzdEVudHJ5IGltcGxlbWVudHMgSU1hbmlmZXN0RW50cnkge1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IGdlbmVyaWNEZXN0aW5hdGlvbjogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnZmlsZSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIElkZW50aWZpZXIgZm9yIHRoaXMgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IERlc3RpbmF0aW9uSWRlbnRpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIC8qKiBTb3VyY2Ugb2YgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBGaWxlU291cmNlLFxuICAgIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IEZpbGVEZXN0aW5hdGlvbixcbiAgKSB7XG4gICAgdGhpcy5nZW5lcmljU291cmNlID0gc291cmNlO1xuICAgIHRoaXMuZ2VuZXJpY0Rlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheU5hbWUoaW5jbHVkZURlc3RpbmF0aW9uOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBpZiAoaW5jbHVkZURlc3RpbmF0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5hbWUgPyBgJHt0aGlzLl9kaXNwbGF5TmFtZX0gKCR7dGhpcy5pZC5kZXN0aW5hdGlvbklkfSlgIDogYCR7dGhpcy5pZH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5hbWUgPyB0aGlzLl9kaXNwbGF5TmFtZSA6IHRoaXMuaWQuYXNzZXRJZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBIG1hbmlmZXN0IGVudHJ5IGZvciBhIGRvY2tlciBpbWFnZSBhc3NldFxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5IGltcGxlbWVudHMgSU1hbmlmZXN0RW50cnkge1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IGdlbmVyaWNEZXN0aW5hdGlvbjogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnZG9ja2VyLWltYWdlJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpZDogRGVzdGluYXRpb25JZGVudGlmaWVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLyoqIFNvdXJjZSBvZiB0aGUgZmlsZSBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IERvY2tlckltYWdlU291cmNlLFxuICAgIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IERvY2tlckltYWdlRGVzdGluYXRpb24sXG4gICkge1xuICAgIHRoaXMuZ2VuZXJpY1NvdXJjZSA9IHNvdXJjZTtcbiAgICB0aGlzLmdlbmVyaWNEZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuICB9XG5cbiAgcHVibGljIGRpc3BsYXlOYW1lKGluY2x1ZGVEZXN0aW5hdGlvbjogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKGluY2x1ZGVEZXN0aW5hdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOYW1lID8gYCR7dGhpcy5fZGlzcGxheU5hbWV9ICgke3RoaXMuaWQuZGVzdGluYXRpb25JZH0pYCA6IGAke3RoaXMuaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOYW1lID8gdGhpcy5fZGlzcGxheU5hbWUgOiB0aGlzLmlkLmFzc2V0SWQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSWRlbnRpZnkgYW4gYXNzZXQgZGVzdGluYXRpb24gaW4gYW4gYXNzZXQgbWFuaWZlc3RcbiAqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gaWRlbnRpZnkgYm90aCBhbiBhc3NldCB0byBiZSBidWlsdCBhcyB3ZWxsIGFzIGFcbiAqIGRlc3RpbmF0aW9uIHdoZXJlIGFuIGFzc2V0IHdpbGwgYmUgcHVibGlzaGVkLiBIb3dldmVyLCB3aGVuIHJlYXNvbmluZyBhYm91dFxuICogYnVpbGRpbmcgYXNzZXRzIHRoZSBkZXN0aW5hdGlvbiBwYXJ0IGNhbiBiZSBpZ25vcmVkLCBiZWNhdXNlIHRoZSBzYW1lIGFzc2V0XG4gKiBiZWluZyBzZW50IHRvIG11bHRpcGxlIGRlc3RpbmF0aW9ucyB3aWxsIG9ubHkgbmVlZCB0byBiZSBidWlsdCBvbmNlIGFuZCB0aGVpclxuICogYXNzZXRJZHMgYXJlIGFsbCB0aGUgc2FtZS5cbiAqXG4gKiBXaGVuIHN0cmluZ2lmaWVkLCB0aGlzIHdpbGwgYmUgYSBjb21iaW5hdGlvbiBvZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvblxuICogSURzOyBpZiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgc291cmNlIGlzIG5lY2Vzc2FyeSwgdXNlIGBpZC5hc3NldElkYFxuICogaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNsYXNzIERlc3RpbmF0aW9uSWRlbnRpZmllciB7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBhc3NldCwgYnkgc291cmNlLlxuICAgKlxuICAgKiBUaGUgYXNzZXRJZCB3aWxsIGJlIHRoZSBzYW1lIGJldHdlZW4gYXNzZXRzIHRoYXQgcmVwcmVzZW50XG4gICAqIHRoZSBzYW1lIHBoeXNpY2FsIGZpbGUgb3IgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBkZXN0aW5hdGlvbiB3aGVyZSB0aGlzIGFzc2V0IHdpbGwgYmUgcHVibGlzaGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb25JZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2V0SWQ6IHN0cmluZywgZGVzdGluYXRpb25JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hc3NldElkID0gYXNzZXRJZDtcbiAgICB0aGlzLmRlc3RpbmF0aW9uSWQgPSBkZXN0aW5hdGlvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhpcyBhc3NldCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVzdGluYXRpb25JZCA/IGAke3RoaXMuYXNzZXRJZH06JHt0aGlzLmRlc3RpbmF0aW9uSWR9YCA6IHRoaXMuYXNzZXRJZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PEE+KFxuICB4czogUmVjb3JkPHN0cmluZywgQT4sXG4gIHByZWQ6ICh4OiBBLCBrZXk6IHN0cmluZykgPT4gYm9vbGVhbixcbik6IFJlY29yZDxzdHJpbmcsIEE+IHtcbiAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBBPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh4cykpIHtcbiAgICBpZiAocHJlZCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmV0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBBIGZpbHRlciBwYXR0ZXJuIGZvciBhbiBkZXN0aW5hdGlvbiBpZGVudGlmaWVyXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXN0aW5hdGlvblBhdHRlcm4ge1xuICAvKipcbiAgICogUGFyc2UgYSAnOictc2VwYXJhdGVkIHN0cmluZyBpbnRvIGFuIGFzc2V0L2Rlc3RpbmF0aW9uIGlkZW50aWZpZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2Uoczogc3RyaW5nKSB7XG4gICAgaWYgKCFzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IHN0cmluZyBpcyBub3QgYSB2YWxpZCBkZXN0aW5hdGlvbiBpZGVudGlmaWVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0gcy5zcGxpdCgnOicpLm1hcCgoeCkgPT4gKHggIT09ICcqJyA/IHggOiB1bmRlZmluZWQpKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gbmV3IERlc3RpbmF0aW9uUGF0dGVybihwYXJ0c1swXSk7XG4gICAgfVxuICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHJldHVybiBuZXcgRGVzdGluYXRpb25QYXR0ZXJuKHBhcnRzWzBdIHx8IHVuZGVmaW5lZCwgcGFydHNbMV0gfHwgdW5kZWZpbmVkKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBc3NldCBpZGVudGlmaWVyIG11c3QgY29udGFpbiBhdCBtb3N0IDIgJzonLXNlcGFyYXRlZCBwYXJ0cywgZ290ICcke3N9J2ApO1xuICB9XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIGFzc2V0LCBieSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgZGVzdGluYXRpb24gd2hlcmUgdGhpcyBhc3NldCB3aWxsIGJlIHB1Ymxpc2hlZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc3RpbmF0aW9uSWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoYXNzZXRJZD86IHN0cmluZywgZGVzdGluYXRpb25JZD86IHN0cmluZykge1xuICAgIHRoaXMuYXNzZXRJZCA9IGFzc2V0SWQ7XG4gICAgdGhpcy5kZXN0aW5hdGlvbklkID0gZGVzdGluYXRpb25JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHBhdHRlcm4gbWF0Y2hlcyB0aGUgZ2l2ZW4gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIG1hdGNoZXMoaWQ6IERlc3RpbmF0aW9uSWRlbnRpZmllcikge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5hc3NldElkID09PSB1bmRlZmluZWQgfHwgdGhpcy5hc3NldElkID09PSBpZC5hc3NldElkKSAmJlxuICAgICAgKHRoaXMuZGVzdGluYXRpb25JZCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGVzdGluYXRpb25JZCA9PT0gaWQuZGVzdGluYXRpb25JZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhpcyBhc3NldCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYXNzZXRJZCA/PyAnKid9OiR7dGhpcy5kZXN0aW5hdGlvbklkID8/ICcqJ31gO1xuICB9XG59XG5cbi8qKlxuICogUHJlZml4IGJveC1kcmF3aW5nIGNoYXJhY3RlcnMgdG8gbWFrZSBsaW5lcyBsb29rIGxpa2UgYSBoYW5naW5nIHRyZWVcbiAqL1xuZnVuY3Rpb24gcHJlZml4VHJlZUNoYXJzKHhzOiBzdHJpbmdbXSwgcHJlZml4ID0gJycpIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGlzTGFzdCA9IGkgPT09IHhzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgYm94Q2hhciA9IGlzTGFzdCA/ICfilJQnIDogJ+KUnCc7XG4gICAgcmV0LnB1c2goYCR7cHJlZml4fSR7Ym94Q2hhcn0ke3hzW2ldfWApO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultAwsClient = void 0;\nconst os = require(\"os\");\nconst client_ecr_1 = require(\"@aws-sdk/client-ecr\");\nconst client_s3_1 = require(\"@aws-sdk/client-s3\");\nconst client_secrets_manager_1 = require(\"@aws-sdk/client-secrets-manager\");\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst credential_providers_1 = require(\"@aws-sdk/credential-providers\");\nconst lib_storage_1 = require(\"@aws-sdk/lib-storage\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst USER_AGENT = 'cdk-assets';\n/**\n * AWS client using the AWS SDK for JS with no special configuration\n */\nclass DefaultAwsClient {\n constructor(profile) {\n this.profile = profile;\n const clientConfig = {\n customUserAgent: USER_AGENT,\n };\n // storing the main credentials separately because\n // the `config` object changes every time we assume the file publishing role.\n // TODO refactor to make `config` a readonly property and avoid state mutations.\n this.mainCredentials = (0, credential_providers_1.fromNodeProviderChain)({\n profile: this.profile,\n clientConfig,\n });\n this.config = {\n clientConfig,\n credentials: this.mainCredentials,\n };\n }\n async s3Client(options) {\n const client = new client_s3_1.S3Client(await this.awsOptions(options));\n return {\n getBucketEncryption: (input) => client.send(new client_s3_1.GetBucketEncryptionCommand(input)),\n getBucketLocation: (input) => client.send(new client_s3_1.GetBucketLocationCommand(input)),\n listObjectsV2: (input) => client.send(new client_s3_1.ListObjectsV2Command(input)),\n upload: (input) => {\n const upload = new lib_storage_1.Upload({\n client,\n params: input,\n });\n return upload.done();\n },\n };\n }\n async ecrClient(options) {\n const client = new client_ecr_1.ECRClient(await this.awsOptions(options));\n return {\n describeImages: (input) => client.send(new client_ecr_1.DescribeImagesCommand(input)),\n describeRepositories: (input) => client.send(new client_ecr_1.DescribeRepositoriesCommand(input)),\n getAuthorizationToken: (input) => client.send(new client_ecr_1.GetAuthorizationTokenCommand(input ?? {})),\n };\n }\n async secretsManagerClient(options) {\n const client = new client_secrets_manager_1.SecretsManagerClient(await this.awsOptions(options));\n return {\n getSecretValue: (input) => client.send(new client_secrets_manager_1.GetSecretValueCommand(input)),\n };\n }\n async discoverPartition() {\n return (await this.discoverCurrentAccount()).partition;\n }\n async discoverDefaultRegion() {\n return (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS)() || 'us-east-1';\n }\n async discoverCurrentAccount() {\n if (this.account === undefined) {\n this.account = await this.getAccount();\n }\n return this.account;\n }\n async discoverTargetAccount(options) {\n return this.getAccount(await this.awsOptions(options));\n }\n async getAccount(options) {\n this.config.clientConfig = options ?? this.config.clientConfig;\n const stsClient = new client_sts_1.STSClient(await this.awsOptions(options));\n const command = new client_sts_1.GetCallerIdentityCommand();\n const response = await stsClient.send(command);\n if (!response.Account || !response.Arn) {\n throw new Error(`Unrecognized response from STS: '${JSON.stringify(response)}'`);\n }\n return {\n accountId: response.Account,\n partition: response.Arn.split(':')[1],\n };\n }\n async awsOptions(options) {\n const config = this.config;\n config.region = options?.region;\n if (options) {\n config.region = options.region;\n if (options.assumeRoleArn) {\n config.credentials = (0, credential_providers_1.fromTemporaryCredentials)({\n // dont forget the credentials chain.\n masterCredentials: this.mainCredentials,\n params: {\n RoleArn: options.assumeRoleArn,\n ExternalId: options.assumeRoleExternalId,\n RoleSessionName: `${USER_AGENT}-${safeUsername()}`,\n TransitiveTagKeys: options.assumeRoleAdditionalOptions?.Tags\n ? options.assumeRoleAdditionalOptions.Tags.map((t) => t.Key)\n : undefined,\n ...options.assumeRoleAdditionalOptions,\n },\n clientConfig: this.config.clientConfig,\n });\n }\n }\n return config;\n }\n}\nexports.DefaultAwsClient = DefaultAwsClient;\n/**\n * Return the username with characters invalid for a RoleSessionName removed\n *\n * @see https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters\n */\nfunction safeUsername() {\n try {\n return os.userInfo().username.replace(/[^\\w+=,.@-]/g, '@');\n }\n catch {\n return 'noname';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6QixvREFLNkI7QUFDN0Isa0RBSzRCO0FBQzVCLDRFQUE4RjtBQUs5RixvREFHNkI7QUFDN0Isd0VBQWdHO0FBQ2hHLHNEQUE4QztBQUM5Qyw2REFHaUM7QUFDakMsdUVBQTBEO0FBc0UxRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUEwQmhDOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFLM0IsWUFBNkIsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUMzQyxNQUFNLFlBQVksR0FBb0I7WUFDcEMsZUFBZSxFQUFFLFVBQVU7U0FDNUIsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCw2RUFBNkU7UUFDN0UsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBQSw0Q0FBcUIsRUFBQztZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixZQUFZO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFzQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTztZQUNMLG1CQUFtQixFQUFFLENBQ25CLEtBQXNDLEVBQ0ssRUFBRSxDQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksc0NBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsaUJBQWlCLEVBQUUsQ0FDakIsS0FBb0MsRUFDSyxFQUFFLENBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxvQ0FBd0IsQ0FBQyxLQUFL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QUMsMkJBQTJCO3FCQUN2QztvQkFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO2lCQUN2QyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQWpJRCw0Q0FpSUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxZQUFZO0lBQ25CLElBQUksQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB7XG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kLFxuICBFQ1JDbGllbnQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3InO1xuaW1wb3J0IHtcbiAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNWMkNvbW1hbmQsXG4gIFMzQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgR2V0U2VjcmV0VmFsdWVDb21tYW5kLCBTZWNyZXRzTWFuYWdlckNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXInO1xuaW1wb3J0IHR5cGUge1xuICBBc3N1bWVSb2xlQ29tbWFuZElucHV0LFxuICBTVFNDbGllbnRDb25maWcsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zdHMnO1xuaW1wb3J0IHtcbiAgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kLFxuICBTVFNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zdHMnO1xuaW1wb3J0IHsgZnJvbU5vZGVQcm92aWRlckNoYWluLCBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMgfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tICdAYXdzLXNkay9saWItc3RvcmFnZSc7XG5pbXBvcnQge1xuICBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLFxuICBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyxcbn0gZnJvbSAnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInO1xuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gJ0BzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUge1xuICBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlcixcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0LFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCxcbiAgR2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxufSBmcm9tICcuL2F3cy10eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IFBhcnRpYWw8XG4gIE9taXQ8QXNzdW1lUm9sZUNvbW1hbmRJbnB1dCwgJ0V4dGVybmFsSWQnIHwgJ1JvbGVBcm4nPlxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBJUzNDbGllbnQge1xuICBnZXRCdWNrZXRFbmNyeXB0aW9uKFxuICAgIGlucHV0OiBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQ+O1xuICBnZXRCdWNrZXRMb2NhdGlvbihpbnB1dDogR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZE91dHB1dD47XG4gIGxpc3RPYmplY3RzVjIoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PjtcbiAgdXBsb2FkKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVDUkNsaWVudCB7XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVSZXBvc2l0b3JpZXMoXG4gICAgaW5wdXQ6IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8RGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0PjtcbiAgZ2V0QXV0aG9yaXphdGlvblRva2VuKFxuICAgIGlucHV0PzogR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlY3JldHNNYW5hZ2VyQ2xpZW50IHtcbiAgZ2V0U2VjcmV0VmFsdWUoaW5wdXQ6IEdldFNlY3JldFZhbHVlQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRTZWNyZXRWYWx1ZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG4vKipcbiAqIEFXUyBTREsgb3BlcmF0aW9ucyByZXF1aXJlZCBieSBBc3NldCBQdWJsaXNoaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUF3cyB7XG4gIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+O1xuXG4gIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PjtcbiAgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PjtcbiAgZWNyQ2xpZW50KG9wdGlvbnM6IENsaWVudE9wdGlvbnMpOiBQcm9taXNlPElFQ1JDbGllbnQ+O1xuICBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE9wdGlvbnMge1xuICByZWdpb24/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVBcm4/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuICBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiBBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gIHF1aWV0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9ICdjZGstYXNzZXRzJztcblxuaW50ZXJmYWNlIENvbmZpZ3VyYXRpb24ge1xuICBjbGllbnRDb25maWc6IFNUU0NsaWVudENvbmZpZztcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBjcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG59XG5cbi8qKlxuICogQW4gQVdTIGFjY291bnRcbiAqXG4gKiBBbiBBV1MgYWNjb3VudCBhbHdheXMgZXhpc3RzIGluIG9ubHkgb25lIHBhcnRpdGlvbi4gVXN1YWxseSB3ZSBkb24ndCBjYXJlIGFib3V0XG4gKiB0aGUgcGFydGl0aW9uLCBidXQgd2hlbiB3ZSBuZWVkIHRvIGZvcm0gQVJOcyB3ZSBkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gKCdhd3MnIG9yICdhd3MtY24nIG9yIG90aGVyd2lzZSlcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFXUyBjbGllbnQgdXNpbmcgdGhlIEFXUyBTREsgZm9yIEpTIHdpdGggbm8gc3BlY2lhbCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0QXdzQ2xpZW50IGltcGxlbWVudHMgSUF3cyB7XG4gIHByaXZhdGUgYWNjb3VudD86IEFjY291bnQ7XG4gIHByaXZhdGUgY29uZmlnOiBDb25maWd1cmF0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IG1haW5DcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9maWxlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnOiBTVFNDbGllbnRDb25maWcgPSB7XG4gICAgICBjdXN0b21Vc2VyQWdlbnQ6IFVTRVJfQUdFTlQsXG4gICAgfTtcblxuICAgIC8vIHN0b3JpbmcgdGhlIG1haW4gY3JlZGVudGlhbHMgc2VwYXJhdGVseSBiZWNhdXNlXG4gICAgLy8gdGhlIGBjb25maWdgIG9iamVjdCBjaGFuZ2VzIGV2ZXJ5IHRpbWUgd2UgYXNzdW1lIHRoZSBmaWxlIHB1Ymxpc2hpbmcgcm9sZS5cbiAgICAvLyBUT0RPIHJlZmFjdG9yIHRvIG1ha2UgYGNvbmZpZ2AgYSByZWFkb25seSBwcm9wZXJ0eSBhbmQgYXZvaWQgc3RhdGUgbXV0YXRpb25zLlxuICAgIHRoaXMubWFpbkNyZWRlbnRpYWxzID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IHRoaXMucHJvZmlsZSxcbiAgICAgIGNsaWVudENvbmZpZyxcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgY2xpZW50Q29uZmlnLFxuICAgICAgY3JlZGVudGlhbHM6IHRoaXMubWFpbkNyZWRlbnRpYWxzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFMzQ2xpZW50KGF3YWl0IHRoaXMuYXdzT3B0aW9ucyhvcHRpb25zKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldEJ1Y2tldEVuY3J5cHRpb246IChcbiAgICAgICAgaW5wdXQ6IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldEJ1Y2tldExvY2F0aW9uOiAoXG4gICAgICAgIGlucHV0OiBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8R2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0T2JqZWN0c1YyOiAoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdE9iamVjdHNWMkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwbG9hZDogKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD4gPT4ge1xuICAgICAgICBjb25zdCB1cGxvYWQgPSBuZXcgVXBsb2FkKHtcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgcGFyYW1zOiBpbnB1dCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1cGxvYWQuZG9uZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVjckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJRUNSQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEVDUkNsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUltYWdlczogKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbWFnZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVJlcG9zaXRvcmllczogKFxuICAgICAgICBpbnB1dDogRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QXV0aG9yaXphdGlvblRva2VuOiAoXG4gICAgICAgIGlucHV0OiBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kKGlucHV0ID8/IHt9KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoYXdhaXQgdGhpcy5hd3NPcHRpb25zKG9wdGlvbnMpKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U2VjcmV0VmFsdWU6IChpbnB1dDogR2V0U2VjcmV0VmFsdWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFNlY3JldFZhbHVlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJQYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpKS5wYXJ0aXRpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGxvYWRDb25maWcoTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMpKCkgfHwgJ3VzLWVhc3QtMSc7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICBpZiAodGhpcy5hY2NvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWNjb3VudCA9IGF3YWl0IHRoaXMuZ2V0QWNjb3VudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjb3VudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2NvdW50KG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgdGhpcy5jb25maWcuY2xpZW50Q29uZmlnID0gb3B0aW9ucyA/PyB0aGlzLmNvbmZpZy5jbGllbnRDb25maWc7XG4gICAgY29uc3Qgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHN0c0NsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAgIGlmICghcmVzcG9uc2UuQWNjb3VudCB8fCAhcmVzcG9uc2UuQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNwb25zZSBmcm9tIFNUUzogJyR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpfSdgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY291bnRJZDogcmVzcG9uc2UuQWNjb3VudCEsXG4gICAgICBwYXJ0aXRpb246IHJlc3BvbnNlLkFybiEuc3BsaXQoJzonKVsxXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhd3NPcHRpb25zKG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnM/LnJlZ2lvbjtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnMucmVnaW9uO1xuICAgICAgaWYgKG9wdGlvbnMuYXNzdW1lUm9sZUFybikge1xuICAgICAgICBjb25maWcuY3JlZGVudGlhbHMgPSBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgICAgIC8vIGRvbnQgZm9yZ2V0IHRoZSBjcmVkZW50aWFscyBjaGFpbi5cbiAgICAgICAgICBtYXN0ZXJDcmVkZW50aWFsczogdGhpcy5tYWluQ3JlZGVudGlhbHMsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBSb2xlQXJuOiBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICAgICAgICBFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBgJHtVU0VSX0FHRU5UfS0ke3NhZmVVc2VybmFtZSgpfWAsXG4gICAgICAgICAgICBUcmFuc2l0aXZlVGFnS2V5czogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/LlRhZ3NcbiAgICAgICAgICAgICAgPyBvcHRpb25zLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucy5UYWdzLm1hcCgodCkgPT4gdC5LZXkhKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xpZW50Q29uZmlnOiB0aGlzLmNvbmZpZy5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSB1c2VybmFtZSB3aXRoIGNoYXJhY3RlcnMgaW52YWxpZCBmb3IgYSBSb2xlU2Vzc2lvbk5hbWUgcmVtb3ZlZFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL1NUUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Bc3N1bWVSb2xlLmh0bWwjQVBJX0Fzc3VtZVJvbGVfUmVxdWVzdFBhcmFtZXRlcnNcbiAqL1xuZnVuY3Rpb24gc2FmZVVzZXJuYW1lKCkge1xuICB0cnkge1xuICAgIHJldHVybiBvcy51c2VySW5mbygpLnVzZXJuYW1lLnJlcGxhY2UoL1teXFx3Kz0sLkAtXS9nLCAnQCcpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ25vbmFtZSc7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./publishing\"), exports);\n__exportStar(require(\"./asset-manifest\"), exports);\n__exportStar(require(\"./aws\"), exports);\n__exportStar(require(\"./progress\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLG1EQUFpQztBQUNqQyx3Q0FBc0I7QUFDdEIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaXNoaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXQtbWFuaWZlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hd3MnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zipDirectory = zipDirectory;\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst glob = require(\"glob\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst archiver = require('archiver');\nasync function zipDirectory(directory, outputFile, eventEmitter) {\n // We write to a temporary file and rename at the last moment. This is so that if we are\n // interrupted during this process, we don't leave a half-finished file in the target location.\n const temporaryOutputFile = `${outputFile}.${randomString()}._tmp`;\n await writeZipFile(directory, temporaryOutputFile);\n await moveIntoPlace(temporaryOutputFile, outputFile, eventEmitter);\n}\nfunction writeZipFile(directory, outputFile) {\n return new Promise(async (ok, fail) => {\n // The below options are needed to support following symlinks when building zip files:\n // - nodir: This will prevent symlinks themselves from being copied into the zip.\n // - follow: This will follow symlinks and copy the files within.\n const globOptions = {\n dot: true,\n nodir: true,\n follow: true,\n cwd: directory,\n };\n const files = glob.sync('**', globOptions); // The output here is already sorted\n const output = (0, fs_1.createWriteStream)(outputFile);\n const archive = archiver('zip');\n archive.on('warning', fail);\n archive.on('error', fail);\n // archive has been finalized and the output file descriptor has closed, resolve promise\n // this has to be done before calling `finalize` since the events may fire immediately after.\n // see https://www.npmjs.com/package/archiver\n output.once('close', ok);\n archive.pipe(output);\n // Append files serially to ensure file order\n for (const file of files) {\n const fullPath = path.resolve(directory, file);\n // There are exactly 2 promises\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const [data, stat] = await Promise.all([fs_1.promises.readFile(fullPath), fs_1.promises.stat(fullPath)]);\n archive.append(data, {\n name: file,\n date: new Date('1980-01-01T00:00:00.000Z'), // reset dates to get the same hash for the same content\n mode: stat.mode,\n });\n }\n await archive.finalize();\n });\n}\n/**\n * Rename the file to the target location, taking into account:\n *\n * - That we may see EPERM on Windows while an Antivirus scanner still has the\n * file open, so retry a couple of times.\n * - This same function may be called in parallel and be interrupted at any point.\n */\nasync function moveIntoPlace(source, target, eventEmitter) {\n let delay = 100;\n let attempts = 5;\n while (true) {\n try {\n // 'rename' is guaranteed to overwrite an existing target, as long as it is a file (not a directory)\n await fs_1.promises.rename(source, target);\n return;\n }\n catch (e) {\n if (e.code !== 'EPERM' || attempts-- <= 0) {\n throw e;\n }\n eventEmitter(e.message);\n await sleep(Math.floor(Math.random() * delay));\n delay *= 2;\n }\n }\n}\nfunction sleep(ms) {\n return new Promise((ok) => setTimeout(ok, ms));\n}\nfunction randomString() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z0-9]+/g, '');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFyY2hpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxvQ0FVQztBQXBCRCwyQkFBdUQ7QUFDdkQsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3Qix5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUk5QixLQUFLLFVBQVUsWUFBWSxDQUNoQyxTQUFpQixFQUNqQixVQUFrQixFQUNsQixZQUEwQjtJQUUxQix3RkFBd0Y7SUFDeEYsK0ZBQStGO0lBQy9GLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxVQUFVLElBQUksWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUNuRSxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNuRCxNQUFNLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLFNBQWlCLEVBQUUsVUFBa0I7SUFDekQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3BDLHNGQUFzRjtRQUN0RixpRkFBaUY7UUFDakYsaUVBQWlFO1FBQ2pFLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsRUFBRSxTQUFTO1NBQ2YsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0NBQW9DO1FBRWhGLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWlCLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFFN0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTFCLHdGQUF3RjtRQUN4Riw2RkFBNkY7UUFDN0YsNkNBQTZDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckIsNkNBQTZDO1FBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsK0JBQStCO1lBQy9CLHdFQUF3RTtZQUN4RSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ25CLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLHdEQUF3RDtnQkFDcEcsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQWMsRUFBRSxNQUFjLEVBQUUsWUFBMEI7SUFDckYsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDO1lBQ0gsb0dBQW9HO1lBQ3BHLE1BQU0sYUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsRUFBVTtJQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsWUFBWTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUU7U0FDakIsUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUNaLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVdyaXRlU3RyZWFtLCBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuXG4vLyBuYW1lc3BhY2Ugb2JqZWN0IGltcG9ydHMgd29uJ3Qgd29yayBpbiB0aGUgYnVuZGxlIGZvciBmdW5jdGlvbiBleHBvcnRzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgYXJjaGl2ZXIgPSByZXF1aXJlKCdhcmNoaXZlcicpO1xuXG50eXBlIEV2ZW50RW1pdHRlciA9ICh4OiBzdHJpbmcpID0+IHZvaWQ7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB6aXBEaXJlY3RvcnkoXG4gIGRpcmVjdG9yeTogc3RyaW5nLFxuICBvdXRwdXRGaWxlOiBzdHJpbmcsXG4gIGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFdlIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJlbmFtZSBhdCB0aGUgbGFzdCBtb21lbnQuIFRoaXMgaXMgc28gdGhhdCBpZiB3ZSBhcmVcbiAgLy8gaW50ZXJydXB0ZWQgZHVyaW5nIHRoaXMgcHJvY2Vzcywgd2UgZG9uJ3QgbGVhdmUgYSBoYWxmLWZpbmlzaGVkIGZpbGUgaW4gdGhlIHRhcmdldCBsb2NhdGlvbi5cbiAgY29uc3QgdGVtcG9yYXJ5T3V0cHV0RmlsZSA9IGAke291dHB1dEZpbGV9LiR7cmFuZG9tU3RyaW5nKCl9Ll90bXBgO1xuICBhd2FpdCB3cml0ZVppcEZpbGUoZGlyZWN0b3J5LCB0ZW1wb3JhcnlPdXRwdXRGaWxlKTtcbiAgYXdhaXQgbW92ZUludG9QbGFjZSh0ZW1wb3JhcnlPdXRwdXRGaWxlLCBvdXRwdXRGaWxlLCBldmVudEVtaXR0ZXIpO1xufVxuXG5mdW5jdGlvbiB3cml0ZVppcEZpbGUoZGlyZWN0b3J5OiBzdHJpbmcsIG91dHB1dEZpbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKG9rLCBmYWlsKSA9PiB7XG4gICAgLy8gVGhlIGJlbG93IG9wdGlvbnMgYXJlIG5lZWRlZCB0byBzdXBwb3J0IGZvbGxvd2luZyBzeW1saW5rcyB3aGVuIGJ1aWxkaW5nIHppcCBmaWxlczpcbiAgICAvLyAtIG5vZGlyOiBUaGlzIHdpbGwgcHJldmVudCBzeW1saW5rcyB0aGVtc2VsdmVzIGZyb20gYmVpbmcgY29waWVkIGludG8gdGhlIHppcC5cbiAgICAvLyAtIGZvbGxvdzogVGhpcyB3aWxsIGZvbGxvdyBzeW1saW5rcyBhbmQgY29weSB0aGUgZmlsZXMgd2l0aGluLlxuICAgIGNvbnN0IGdsb2JPcHRpb25zID0ge1xuICAgICAgZG90OiB0cnVlLFxuICAgICAgbm9kaXI6IHRydWUsXG4gICAgICBmb2xsb3c6IHRydWUsXG4gICAgICBjd2Q6IGRpcmVjdG9yeSxcbiAgICB9O1xuICAgIGNvbnN0IGZpbGVzID0gZ2xvYi5zeW5jKCcqKicsIGdsb2JPcHRpb25zKTsgLy8gVGhlIG91dHB1dCBoZXJlIGlzIGFscmVhZHkgc29ydGVkXG5cbiAgICBjb25zdCBvdXRwdXQgPSBjcmVhdGVXcml0ZVN0cmVhbShvdXRwdXRGaWxlKTtcblxuICAgIGNvbnN0IGFyY2hpdmUgPSBhcmNoaXZlcignemlwJyk7XG4gICAgYXJjaGl2ZS5vbignd2FybmluZycsIGZhaWwpO1xuICAgIGFyY2hpdmUub24oJ2Vycm9yJywgZmFpbCk7XG5cbiAgICAvLyBhcmNoaXZlIGhhcyBiZWVuIGZpbmFsaXplZCBhbmQgdGhlIG91dHB1dCBmaWxlIGRlc2NyaXB0b3IgaGFzIGNsb3NlZCwgcmVzb2x2ZSBwcm9taXNlXG4gICAgLy8gdGhpcyBoYXMgdG8gYmUgZG9uZSBiZWZvcmUgY2FsbGluZyBgZmluYWxpemVgIHNpbmNlIHRoZSBldmVudHMgbWF5IGZpcmUgaW1tZWRpYXRlbHkgYWZ0ZXIuXG4gICAgLy8gc2VlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2FyY2hpdmVyXG4gICAgb3V0cHV0Lm9uY2UoJ2Nsb3NlJywgb2spO1xuXG4gICAgYXJjaGl2ZS5waXBlKG91dHB1dCk7XG5cbiAgICAvLyBBcHBlbmQgZmlsZXMgc2VyaWFsbHkgdG8gZW5zdXJlIGZpbGUgb3JkZXJcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKGRpcmVjdG9yeSwgZmlsZSk7XG4gICAgICAvLyBUaGVyZSBhcmUgZXhhY3RseSAyIHByb21pc2VzXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIGNvbnN0IFtkYXRhLCBzdGF0XSA9IGF3YWl0IFByb21pc2UuYWxsKFtmcy5yZWFkRmlsZShmdWxsUGF0aCksIGZzLnN0YXQoZnVsbFBhdGgpXSk7XG4gICAgICBhcmNoaXZlLmFwcGVuZChkYXRhLCB7XG4gICAgICAgIG5hbWU6IGZpbGUsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCcxOTgwLTAxLTAxVDAwOjAwOjAwLjAwMFonKSwgLy8gcmVzZXQgZGF0ZXMgdG8gZ2V0IHRoZSBzYW1lIGhhc2ggZm9yIHRoZSBzYW1lIGNvbnRlbnRcbiAgICAgICAgbW9kZTogc3RhdC5tb2RlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXdhaXQgYXJjaGl2ZS5maW5hbGl6ZSgpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHRhcmdldCBsb2NhdGlvbiwgdGFraW5nIGludG8gYWNjb3VudDpcbiAqXG4gKiAtIFRoYXQgd2UgbWF5IHNlZSBFUEVSTSBvbiBXaW5kb3dzIHdoaWxlIGFuIEFudGl2aXJ1cyBzY2FubmVyIHN0aWxsIGhhcyB0aGVcbiAqICAgZmlsZSBvcGVuLCBzbyByZXRyeSBhIGNvdXBsZSBvZiB0aW1lcy5cbiAqIC0gVGhpcyBzYW1lIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgaW4gcGFyYWxsZWwgYW5kIGJlIGludGVycnVwdGVkIGF0IGFueSBwb2ludC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbW92ZUludG9QbGFjZShzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcsIGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyKSB7XG4gIGxldCBkZWxheSA9IDEwMDtcbiAgbGV0IGF0dGVtcHRzID0gNTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gJ3JlbmFtZScgaXMgZ3VhcmFudGVlZCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgdGFyZ2V0LCBhcyBsb25nIGFzIGl0IGlzIGEgZmlsZSAobm90IGEgZGlyZWN0b3J5KVxuICAgICAgYXdhaXQgZnMucmVuYW1lKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLmNvZGUgIT09ICdFUEVSTScgfHwgYXR0ZW1wdHMtLSA8PSAwKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBldmVudEVtaXR0ZXIoZS5tZXNzYWdlKTtcbiAgICAgIGF3YWl0IHNsZWVwKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGRlbGF5KSk7XG4gICAgICBkZWxheSAqPSAyO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2spID0+IHNldFRpbWVvdXQob2ssIG1zKSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVN0cmluZygpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKClcbiAgICAudG9TdHJpbmcoMzYpXG4gICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cdkCredentialsConfigFile = cdkCredentialsConfigFile;\nexports.cdkCredentialsConfig = cdkCredentialsConfig;\nexports._clearCdkCredentialsConfigCache = _clearCdkCredentialsConfigCache;\nexports.fetchDockerLoginCredentials = fetchDockerLoginCredentials;\nexports.obtainEcrCredentials = obtainEcrCredentials;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst progress_1 = require(\"../progress\");\n/** Returns the presumed location of the CDK Docker credentials config file */\nfunction cdkCredentialsConfigFile() {\n return (process.env.CDK_DOCKER_CREDS_FILE ??\n path.join((os.userInfo().homedir ?? os.homedir()).trim() || '/', '.cdk', 'cdk-docker-creds.json'));\n}\nlet _cdkCredentials;\n/** Loads and parses the CDK Docker credentials configuration, if it exists. */\nfunction cdkCredentialsConfig() {\n if (!_cdkCredentials) {\n try {\n _cdkCredentials = JSON.parse(fs.readFileSync(cdkCredentialsConfigFile(), { encoding: 'utf-8' }));\n }\n catch {\n }\n }\n return _cdkCredentials;\n}\n/**\n * Just for testing\n */\nfunction _clearCdkCredentialsConfigCache() {\n _cdkCredentials = undefined;\n}\n/** Fetches login credentials from the configured source (e.g., SecretsManager, ECR) */\nasync function fetchDockerLoginCredentials(aws, config, endpoint) {\n // Paranoid handling to ensure new URL() doesn't throw if the schema is missing\n // For official docker registry, docker will pass https://index.docker.io/v1/\n endpoint = endpoint.includes('://') ? endpoint : `https://${endpoint}`;\n const domain = new URL(endpoint).hostname;\n if (!Object.keys(config.domainCredentials).includes(domain) &&\n !Object.keys(config.domainCredentials).includes(endpoint)) {\n throw new Error(`unknown domain ${domain}`);\n }\n let domainConfig = config.domainCredentials[domain] ?? config.domainCredentials[endpoint];\n if (domainConfig.secretsManagerSecretId) {\n const sm = await aws.secretsManagerClient({ assumeRoleArn: domainConfig.assumeRoleArn });\n const secretValue = await sm.getSecretValue({\n SecretId: domainConfig.secretsManagerSecretId,\n });\n if (!secretValue.SecretString) {\n throw new Error(`unable to fetch SecretString from secret: ${domainConfig.secretsManagerSecretId}`);\n }\n const secret = JSON.parse(secretValue.SecretString);\n const usernameField = domainConfig.secretsUsernameField ?? 'username';\n const secretField = domainConfig.secretsPasswordField ?? 'secret';\n if (!secret[usernameField] || !secret[secretField]) {\n throw new Error(`malformed secret string (\"${usernameField}\" or \"${secretField}\" field missing)`);\n }\n return { Username: secret[usernameField], Secret: secret[secretField] };\n }\n else if (domainConfig.ecrRepository) {\n const ecr = await aws.ecrClient({ assumeRoleArn: domainConfig.assumeRoleArn });\n const ecrAuthData = await obtainEcrCredentials(ecr);\n return { Username: ecrAuthData.username, Secret: ecrAuthData.password };\n }\n else {\n throw new Error('unknown credential type: no secret ID or ECR repo');\n }\n}\nasync function obtainEcrCredentials(ecr, eventEmitter) {\n if (eventEmitter) {\n eventEmitter(progress_1.EventType.DEBUG, 'Fetching ECR authorization token');\n }\n const authData = (await ecr.getAuthorizationToken()).authorizationData || [];\n if (authData.length === 0) {\n throw new Error('No authorization data received from ECR');\n }\n const token = Buffer.from(authData[0].authorizationToken, 'base64').toString('ascii');\n const [username, password] = token.split(':');\n if (!username || !password) {\n throw new Error('unexpected ECR authData format');\n }\n return {\n username,\n password,\n endpoint: authData[0].proxyEndpoint,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLWNyZWRlbnRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLDREQVNDO0FBSUQsb0RBVUM7QUFLRCwwRUFFQztBQUdELGtFQWlEQztBQUVELG9EQW9CQztBQWxJRCx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUc3QiwwQ0FBd0M7QUFvQnhDLDhFQUE4RTtBQUM5RSxTQUFnQix3QkFBd0I7SUFDdEMsT0FBTyxDQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFDckQsTUFBTSxFQUNOLHVCQUF1QixDQUN4QixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsSUFBSSxlQUFvRCxDQUFDO0FBQ3pELCtFQUErRTtBQUMvRSxTQUFnQixvQkFBb0I7SUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQztZQUNILGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMxQixFQUFFLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDeEMsQ0FBQztRQUMvQixDQUFDO1FBQUMsTUFBTSxDQUFDO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwrQkFBK0I7SUFDN0MsZUFBZSxHQUFHLFNBQVMsQ0FBQztBQUM5QixDQUFDO0FBRUQsdUZBQXVGO0FBQ2hGLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsR0FBUyxFQUNULE1BQStCLEVBQy9CLFFBQWdCO0lB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QkFBcUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO0lBQzdFLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RixNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVE7UUFDUixRQUFRO1FBQ1IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFjO0tBQ3JDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgSUF3cywgSUVDUkNsaWVudCB9IGZyb20gJy4uL2F3cyc7XG5pbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3Byb2dyZXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDcmVkZW50aWFscyB7XG4gIHJlYWRvbmx5IFVzZXJuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IFNlY3JldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckNyZWRlbnRpYWxzQ29uZmlnIHtcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBkb21haW5DcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZSB7XG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldHNVc2VybmFtZUZpZWxkPzogc3RyaW5nO1xuICByZWFkb25seSBzZWNyZXRzUGFzc3dvcmRGaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZWNyUmVwb3NpdG9yeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBcm4/OiBzdHJpbmc7XG59XG5cbi8qKiBSZXR1cm5zIHRoZSBwcmVzdW1lZCBsb2NhdGlvbiBvZiB0aGUgQ0RLIERvY2tlciBjcmVkZW50aWFscyBjb25maWcgZmlsZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNka0NyZWRlbnRpYWxzQ29uZmlnRmlsZSgpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHByb2Nlc3MuZW52LkNES19ET0NLRVJfQ1JFRFNfRklMRSA/P1xuICAgIHBhdGguam9pbihcbiAgICAgIChvcy51c2VySW5mbygpLmhvbWVkaXIgPz8gb3MuaG9tZWRpcigpKS50cmltKCkgfHwgJy8nLFxuICAgICAgJy5jZGsnLFxuICAgICAgJ2Nkay1kb2NrZXItY3JlZHMuanNvbicsXG4gICAgKVxuICApO1xufVxuXG5sZXQgX2Nka0NyZWRlbnRpYWxzOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyB8IHVuZGVmaW5lZDtcbi8qKiBMb2FkcyBhbmQgcGFyc2VzIHRoZSBDREsgRG9ja2VyIGNyZWRlbnRpYWxzIGNvbmZpZ3VyYXRpb24sIGlmIGl0IGV4aXN0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjZGtDcmVkZW50aWFsc0NvbmZpZygpOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghX2Nka0NyZWRlbnRpYWxzKSB7XG4gICAgdHJ5IHtcbiAgICAgIF9jZGtDcmVkZW50aWFscyA9IEpTT04ucGFyc2UoXG4gICAgICAgIGZzLnJlYWRGaWxlU3luYyhjZGtDcmVkZW50aWFsc0NvbmZpZ0ZpbGUoKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSxcbiAgICAgICkgYXMgRG9ja2VyQ3JlZGVudGlhbHNDb25maWc7XG4gICAgfSBjYXRjaCB7XG4gICAgfVxuICB9XG4gIHJldHVybiBfY2RrQ3JlZGVudGlhbHM7XG59XG5cbi8qKlxuICogSnVzdCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gX2NsZWFyQ2RrQ3JlZGVudGlhbHNDb25maWdDYWNoZSgpIHtcbiAgX2Nka0NyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xufVxuXG4vKiogRmV0Y2hlcyBsb2dpbiBjcmVkZW50aWFscyBmcm9tIHRoZSBjb25maWd1cmVkIHNvdXJjZSAoZS5nLiwgU2VjcmV0c01hbmFnZXIsIEVDUikgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaERvY2tlckxvZ2luQ3JlZGVudGlhbHMoXG4gIGF3czogSUF3cyxcbiAgY29uZmlnOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyxcbiAgZW5kcG9pbnQ6IHN0cmluZyxcbikge1xuICAvLyBQYXJhbm9pZCBoYW5kbGluZyB0byBlbnN1cmUgbmV3IFVSTCgpIGRvZXNuJ3QgdGhyb3cgaWYgdGhlIHNjaGVtYSBpcyBtaXNzaW5nXG4gIC8vIEZvciBvZmZpY2lhbCBkb2NrZXIgcmVnaXN0cnksIGRvY2tlciB3aWxsIHBhc3MgaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvXG4gIGVuZHBvaW50ID0gZW5kcG9pbnQuaW5jbHVkZXMoJzovLycpID8gZW5kcG9pbnQgOiBgaHR0cHM6Ly8ke2VuZHBvaW50fWA7XG4gIGNvbnN0IGRvbWFpbiA9IG5ldyBVUkwoZW5kcG9pbnQpLmhvc3RuYW1lO1xuXG4gIGlmIChcbiAgICAhT2JqZWN0LmtleXMoY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzKS5pbmNsdWRlcyhkb21haW4pICYmXG4gICAgIU9iamVjdC5rZXlzKGNvbmZpZy5kb21haW5DcmVkZW50aWFscykuaW5jbHVkZXMoZW5kcG9pbnQpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBkb21haW4gJHtkb21haW59YCk7XG4gIH1cblxuICBsZXQgZG9tYWluQ29uZmlnID0gY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzW2RvbWFpbl0gPz8gY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzW2VuZHBvaW50XTtcblxuICBpZiAoZG9tYWluQ29uZmlnLnNlY3JldHNNYW5hZ2VyU2VjcmV0SWQpIHtcbiAgICBjb25zdCBzbSA9IGF3YWl0IGF3cy5zZWNyZXRzTWFuYWdlckNsaWVudCh7IGFzc3VtZVJvbGVBcm46IGRvbWFpbkNvbmZpZy5hc3N1bWVSb2xlQXJuIH0pO1xuICAgIGNvbnN0IHNlY3JldFZhbHVlID0gYXdhaXQgc20uZ2V0U2VjcmV0VmFsdWUoe1xuICAgICAgU2VjcmV0SWQ6IGRvbWFpbkNvbmZpZy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgIH0pO1xuICAgIGlmICghc2VjcmV0VmFsdWUuU2VjcmV0U3RyaW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGB1bmFibGUgdG8gZmV0Y2ggU2VjcmV0U3RyaW5nIGZyb20gc2VjcmV0OiAke2RvbWFpbkNvbmZpZy5zZWNyZXRzTWFuYWdlclNlY3JldElkfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldCA9IEpTT04ucGFyc2Uoc2VjcmV0VmFsdWUuU2VjcmV0U3RyaW5nKTtcblxuICAgIGNvbnN0IHVzZXJuYW1lRmllbGQgPSBkb21haW5Db25maWcuc2VjcmV0c1VzZXJuYW1lRmllbGQgPz8gJ3VzZXJuYW1lJztcbiAgICBjb25zdCBzZWNyZXRGaWVsZCA9IGRvbWFpbkNvbmZpZy5zZWNyZXRzUGFzc3dvcmRGaWVsZCA/PyAnc2VjcmV0JztcbiAgICBpZiAoIXNlY3JldFt1c2VybmFtZUZpZWxkXSB8fCAhc2VjcmV0W3NlY3JldEZpZWxkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgbWFsZm9ybWVkIHNlY3JldCBzdHJpbmcgKFwiJHt1c2VybmFtZUZpZWxkfVwiIG9yIFwiJHtzZWNyZXRGaWVsZH1cIiBmaWVsZCBtaXNzaW5nKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7IFVzZXJuYW1lOiBzZWNyZXRbdXNlcm5hbWVGaWVsZF0sIFNlY3JldDogc2VjcmV0W3NlY3JldEZpZWxkXSB9O1xuICB9IGVsc2UgaWYgKGRvbWFpbkNvbmZpZy5lY3JSZXBvc2l0b3J5KSB7XG4gICAgY29uc3QgZWNyID0gYXdhaXQgYXdzLmVjckNsaWVudCh7IGFzc3VtZVJvbGVBcm46IGRvbWFpbkNvbmZpZy5hc3N1bWVSb2xlQXJuIH0pO1xuICAgIGNvbnN0IGVjckF1dGhEYXRhID0gYXdhaXQgb2J0YWluRWNyQ3JlZGVudGlhbHMoZWNyKTtcblxuICAgIHJldHVybiB7IFVzZXJuYW1lOiBlY3JBdXRoRGF0YS51c2VybmFtZSwgU2VjcmV0OiBlY3JBdXRoRGF0YS5wYXNzd29yZCB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBjcmVkZW50aWFsIHR5cGU6IG5vIHNlY3JldCBJRCBvciBFQ1IgcmVwbycpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvYnRhaW5FY3JDcmVkZW50aWFscyhlY3I6IElFQ1JDbGllbnQsIGV2ZW50RW1pdHRlcj86IEV2ZW50RW1pdHRlcikge1xuICBpZiAoZXZlbnRFbWl0dGVyKSB7XG4gICAgZXZlbnRFbWl0dGVyKEV2ZW50VHlwZS5ERUJVRywgJ0ZldGNoaW5nIEVDUiBhdXRob3JpemF0aW9uIHRva2VuJyk7XG4gIH1cblxuICBjb25zdCBhdXRoRGF0YSA9IChhd2FpdCBlY3IuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpLmF1dGhvcml6YXRpb25EYXRhIHx8IFtdO1xuICBpZiAoYXV0aERhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBhdXRob3JpemF0aW9uIGRhdGEgcmVjZWl2ZWQgZnJvbSBFQ1InKTtcbiAgfVxuICBjb25zdCB0b2tlbiA9IEJ1ZmZlci5mcm9tKGF1dGhEYXRhWzBdLmF1dGhvcml6YXRpb25Ub2tlbiEsICdiYXNlNjQnKS50b1N0cmluZygnYXNjaWknKTtcbiAgY29uc3QgW3VzZXJuYW1lLCBwYXNzd29yZF0gPSB0b2tlbi5zcGxpdCgnOicpO1xuICBpZiAoIXVzZXJuYW1lIHx8ICFwYXNzd29yZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBFQ1IgYXV0aERhdGEgZm9ybWF0Jyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHVzZXJuYW1lLFxuICAgIHBhc3N3b3JkLFxuICAgIGVuZHBvaW50OiBhdXRoRGF0YVswXS5wcm94eUVuZHBvaW50ISxcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DockerFactory = exports.Docker = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst docker_credentials_1 = require(\"./docker-credentials\");\nconst shell_1 = require(\"./shell\");\nconst util_1 = require(\"./util\");\nconst progress_1 = require(\"../progress\");\nvar InspectImageErrorCode;\n(function (InspectImageErrorCode) {\n InspectImageErrorCode[InspectImageErrorCode[\"Docker\"] = 1] = \"Docker\";\n InspectImageErrorCode[InspectImageErrorCode[\"Podman\"] = 125] = \"Podman\";\n})(InspectImageErrorCode || (InspectImageErrorCode = {}));\nclass Docker {\n constructor(eventEmitter, subprocessOutputDestination) {\n this.eventEmitter = eventEmitter;\n this.subprocessOutputDestination = subprocessOutputDestination;\n this.configDir = undefined;\n }\n /**\n * Whether an image with the given tag exists\n */\n async exists(tag) {\n try {\n await this.execute(['inspect', tag], {\n subprocessOutputDestination: 'ignore',\n });\n return true;\n }\n catch (e) {\n const error = e;\n /**\n * The only error we expect to be thrown will have this property and value.\n * If it doesn't, it's unrecognized so re-throw it.\n */\n if (error.code !== 'PROCESS_FAILED') {\n throw error;\n }\n /**\n * If we know the shell command above returned an error, check to see\n * if the exit code is one we know to actually mean that the image doesn't\n * exist.\n */\n switch (error.exitCode) {\n case InspectImageErrorCode.Docker:\n case InspectImageErrorCode.Podman:\n // Docker and Podman will return this exit code when an image doesn't exist, return false\n // context: https://github.com/aws/aws-cdk/issues/16209\n return false;\n default:\n // This is an error but it's not an exit code we recognize, throw.\n throw error;\n }\n }\n }\n async build(options) {\n const buildCommand = [\n 'build',\n ...flatten(Object.entries(options.buildArgs || {}).map(([k, v]) => ['--build-arg', `${k}=${v}`])),\n ...flatten(Object.entries(options.buildSecrets || {}).map(([k, v]) => ['--secret', `id=${k},${v}`])),\n ...(options.buildSsh ? ['--ssh', options.buildSsh] : []),\n '--tag',\n options.tag,\n ...(options.target ? ['--target', options.target] : []),\n ...(options.file ? ['--file', options.file] : []),\n ...(options.networkMode ? ['--network', options.networkMode] : []),\n ...(options.platform ? ['--platform', options.platform] : []),\n ...(options.outputs ? options.outputs.map((output) => [`--output=${output}`]) : []),\n ...(options.cacheFrom\n ? [\n ...options.cacheFrom\n .map((cacheFrom) => ['--cache-from', this.cacheOptionToFlag(cacheFrom)])\n .flat(),\n ]\n : []),\n ...(options.cacheTo ? ['--cache-to', this.cacheOptionToFlag(options.cacheTo)] : []),\n ...(options.cacheDisabled ? ['--no-cache'] : []),\n '.',\n ];\n await this.execute(buildCommand, {\n cwd: options.directory,\n subprocessOutputDestination: this.subprocessOutputDestination,\n env: {\n BUILDX_NO_DEFAULT_ATTESTATIONS: '1', // Docker Build adds provenance attestations by default that confuse cdk-assets\n },\n });\n }\n /**\n * Get credentials from ECR and run docker login\n */\n async login(ecr) {\n const credentials = await (0, docker_credentials_1.obtainEcrCredentials)(ecr, this.eventEmitter);\n // Use --password-stdin otherwise docker will complain. Loudly.\n await this.execute(['login', '--username', credentials.username, '--password-stdin', credentials.endpoint.replace(/^https?:\\/\\/|\\/$/g, '')], {\n input: credentials.password,\n // Need to ignore otherwise Docker will complain\n // 'WARNING! Your password will be stored unencrypted'\n // doesn't really matter since it's a token.\n subprocessOutputDestination: 'ignore',\n });\n }\n async tag(sourceTag, targetTag) {\n await this.execute(['tag', sourceTag, targetTag]);\n }\n async push(options) {\n await this.execute(['push', options.tag], {\n subprocessOutputDestination: this.subprocessOutputDestination,\n });\n }\n /**\n * If a CDK Docker Credentials file exists, creates a new Docker config directory.\n * Sets up `docker-credential-cdk-assets` to be the credential helper for each domain in the CDK config.\n * All future commands (e.g., `build`, `push`) will use this config.\n *\n * See https://docs.docker.com/engine/reference/commandline/login/#credential-helpers for more details on cred helpers.\n *\n * @returns true if CDK config was found and configured, false otherwise\n */\n configureCdkCredentials() {\n const config = (0, docker_credentials_1.cdkCredentialsConfig)();\n if (!config) {\n return false;\n }\n this.configDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdkDockerConfig'));\n const domains = Object.keys(config.domainCredentials);\n const credHelpers = domains.reduce((map, domain) => {\n map[domain] = 'cdk-assets'; // Use docker-credential-cdk-assets for this domain\n return map;\n }, {});\n fs.writeFileSync(path.join(this.configDir, 'config.json'), JSON.stringify({ credHelpers }), {\n encoding: 'utf-8',\n });\n return true;\n }\n /**\n * Removes any configured Docker config directory.\n * All future commands (e.g., `build`, `push`) will use the default config.\n *\n * This is useful after calling `configureCdkCredentials` to reset to default credentials.\n */\n resetAuthPlugins() {\n this.configDir = undefined;\n }\n async execute(args, options = {}) {\n const configArgs = this.configDir ? ['--config', this.configDir] : [];\n const pathToCdkAssets = path.resolve(__dirname, '..', '..', 'bin');\n const shellEventPublisher = (0, progress_1.shellEventPublisherFromEventEmitter)(this.eventEmitter);\n try {\n await (0, shell_1.shell)([getDockerCmd(), ...configArgs, ...args], {\n ...options,\n shellEventPublisher: shellEventPublisher,\n env: {\n ...process.env,\n ...options.env,\n PATH: `${pathToCdkAssets}${path.delimiter}${options.env?.PATH ?? process.env.PATH}`,\n },\n });\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n throw new Error(`Failed to find and execute '${getDockerCmd()}' while attempting to build a container asset. Please install '${getDockerCmd()}' and try again. (Or set the 'CDK_DOCKER ' environment variable to choose a different compatible container client.)`);\n }\n throw e;\n }\n }\n cacheOptionToFlag(option) {\n let flag = `type=${option.type}`;\n if (option.params) {\n flag +=\n ',' +\n Object.entries(option.params)\n .map(([k, v]) => `${k}=${v}`)\n .join(',');\n }\n return flag;\n }\n}\nexports.Docker = Docker;\n/**\n * Helps get appropriately configured Docker instances during the container\n * image publishing process.\n */\nclass DockerFactory {\n constructor() {\n this.enterLoggedInDestinationsCriticalSection = (0, util_1.createCriticalSection)();\n this.loggedInDestinations = new Set();\n }\n /**\n * Gets a Docker instance for building images.\n */\n async forBuild(options) {\n const docker = new Docker(options.eventEmitter, options.subprocessOutputDestination);\n // Default behavior is to login before build so that the Dockerfile can reference images in the ECR repo\n // However, if we're in a pipelines environment (for example),\n // we may have alternative credentials to the default ones to use for the build itself.\n // If the special config file is present, delay the login to the default credentials until the push.\n // If the config file is present, we will configure and use those credentials for the build.\n let cdkDockerCredentialsConfigured = docker.configureCdkCredentials();\n if (!cdkDockerCredentialsConfigured) {\n await this.loginOncePerDestination(docker, options);\n }\n return docker;\n }\n /**\n * Gets a Docker instance for pushing images to ECR.\n */\n async forEcrPush(options) {\n const docker = new Docker(options.eventEmitter, options.subprocessOutputDestination);\n await this.loginOncePerDestination(docker, options);\n return docker;\n }\n async loginOncePerDestination(docker, options) {\n // Changes: 012345678910.dkr.ecr.us-west-2.amazonaws.com/tagging-test\n // To this: 012345678910.dkr.ecr.us-west-2.amazonaws.com\n const repositoryDomain = options.repoUri.split('/')[0];\n // Ensure one-at-a-time access to loggedInDestinations.\n await this.enterLoggedInDestinationsCriticalSection(async () => {\n if (this.loggedInDestinations.has(repositoryDomain)) {\n return;\n }\n await docker.login(options.ecr);\n this.loggedInDestinations.add(repositoryDomain);\n });\n }\n}\nexports.DockerFactory = DockerFactory;\nfunction getDockerCmd() {\n return process.env.CDK_DOCKER ?? 'docker';\n}\nfunction flatten(x) {\n return Array.prototype.concat([], ...x);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZEQUFrRjtBQUVsRixtQ0FBZ0M7QUFDaEMsaUNBQStDO0FBSS9DLDBDQUFrRTtBQW9DbEUsSUFBSyxxQkFHSjtBQUhELFdBQUsscUJBQXFCO0lBQ3hCLHFFQUFVLENBQUE7SUFDVix1RUFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhJLHFCQUFxQixLQUFyQixxQkFBcUIsUUFHekI7QUFPRCxNQUFhLE1BQU07SUFHakIsWUFDbUIsWUFBMEIsRUFDMUIsMkJBQXdEO1FBRHhELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFKbkUsY0FBUyxHQUF1QixTQUFTLENBQUM7SUFNbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXO1FBQzdCLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsMkJBQTJCLEVBQUUsUUFBUTthQUN0QyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxHQUF1QixDQUFDLENBQUM7WUFFcEM7OztlQUdHO1lBQ0gsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVEOzs7O2VBSUc7WUFDSCxRQUFRLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLEtBQUsscUJBQXFCLENBQUMsTUFBTTtvQkFDL0IseUZBQXlG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QUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCx1REFBdUQ7UUFDdkQsTUFBTSxJQUFJLENBQUMsd0NBQXdDLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDN0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDcEQsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQS9DRCxzQ0ErQ0M7QUFFRCxTQUFTLFlBQVk7SUFDbkIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFDLENBQWE7SUFDNUIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGNka0NyZWRlbnRpYWxzQ29uZmlnLCBvYnRhaW5FY3JDcmVkZW50aWFscyB9IGZyb20gJy4vZG9ja2VyLWNyZWRlbnRpYWxzJztcbmltcG9ydCB0eXBlIHsgU2hlbGxPcHRpb25zLCBQcm9jZXNzRmFpbGVkRXJyb3IgfSBmcm9tICcuL3NoZWxsJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi9zaGVsbCc7XG5pbXBvcnQgeyBjcmVhdGVDcml0aWNhbFNlY3Rpb24gfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJRUNSQ2xpZW50IH0gZnJvbSAnLi4vYXdzJztcbmltcG9ydCB0eXBlIHsgU3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uIH0gZnJvbSAnLi9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9wcm9ncmVzcyc7XG5cbmludGVyZmFjZSBCdWlsZE9wdGlvbnMge1xuICByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGFnIHRoZSBpbWFnZSB3aXRoIGEgZ2l2ZW4gcmVwb05hbWU6dGFnIGNvbWJpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSB0YWc6IHN0cmluZztcbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nO1xuICByZWFkb25seSBidWlsZEFyZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICByZWFkb25seSBidWlsZFNzaD86IHN0cmluZztcbiAgcmVhZG9ubHkgbmV0d29ya01vZGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXRzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGNhY2hlRnJvbT86IERvY2tlckNhY2hlT3B0aW9uW107XG4gIHJlYWRvbmx5IGNhY2hlVG8/OiBEb2NrZXJDYWNoZU9wdGlvbjtcbiAgcmVhZG9ubHkgY2FjaGVEaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQdXNoT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckNyZWRlbnRpYWxzQ29uZmlnIHtcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBkb21haW5DcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgRG9ja2VyRG9tYWluQ3JlZGVudGlhbHM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckRvbWFpbkNyZWRlbnRpYWxzIHtcbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZWNyUmVwb3NpdG9yeT86IHN0cmluZztcbn1cblxuZW51bSBJbnNwZWN0SW1hZ2VFcnJvckNvZGUge1xuICBEb2NrZXIgPSAxLFxuICBQb2RtYW4gPSAxMjUsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ2FjaGVPcHRpb24ge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXIge1xuICBwcml2YXRlIGNvbmZpZ0Rpcjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBhbiBpbWFnZSB3aXRoIHRoZSBnaXZlbiB0YWcgZXhpc3RzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhpc3RzKHRhZzogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2luc3BlY3QnLCB0YWddLCB7XG4gICAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgY29uc3QgZXJyb3I6IFByb2Nlc3NGYWlsZWRFcnJvciA9IGU7XG5cbiAgICAgIC8qKlxuICAgICAgICogVGhlIG9ubHkgZXJyb3Igd2UgZXhwZWN0IHRvIGJlIHRocm93biB3aWxsIGhhdmUgdGhpcyBwcm9wZXJ0eSBhbmQgdmFsdWUuXG4gICAgICAgKiBJZiBpdCBkb2Vzbid0LCBpdCdzIHVucmVjb2duaXplZCBzbyByZS10aHJvdyBpdC5cbiAgICAgICAqL1xuICAgICAgaWYgKGVycm9yLmNvZGUgIT09ICdQUk9DRVNTX0ZBSUxFRCcpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogSWYgd2Uga25vdyB0aGUgc2hlbGwgY29tbWFuZCBhYm92ZSByZXR1cm5lZCBhbiBlcnJvciwgY2hlY2sgdG8gc2VlXG4gICAgICAgKiBpZiB0aGUgZXhpdCBjb2RlIGlzIG9uZSB3ZSBrbm93IHRvIGFjdHVhbGx5IG1lYW4gdGhhdCB0aGUgaW1hZ2UgZG9lc24ndFxuICAgICAgICogZXhpc3QuXG4gICAgICAgKi9cbiAgICAgIHN3aXRjaCAoZXJyb3IuZXhpdENvZGUpIHtcbiAgICAgICAgY2FzZSBJbnNwZWN0SW1hZ2VFcnJvckNvZGUuRG9ja2VyOlxuICAgICAgICBjYXNlIEluc3BlY3RJbWFnZUVycm9yQ29kZS5Qb2RtYW46XG4gICAgICAgICAgLy8gRG9ja2VyIGFuZCBQb2RtYW4gd2lsbCByZXR1cm4gdGhpcyBleGl0IGNvZGUgd2hlbiBhbiBpbWFnZSBkb2Vzbid0IGV4aXN0LCByZXR1cm4gZmFsc2VcbiAgICAgICAgICAvLyBjb250ZXh0OiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE2MjA5XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIFRoaXMgaXMgYW4gZXJyb3IgYnV0IGl0J3Mgbm90IGFuIGV4aXQgY29kZSB3ZSByZWNvZ25pemUsIHRocm93LlxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMpIHtcbiAgICBjb25zdCBidWlsZENvbW1hbmQgPSBbXG4gICAgICAnYnVpbGQnLFxuICAgICAgLi4uZmxhdHRlbihcbiAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0aW9ucy5idWlsZEFyZ3MgfHwge30pLm1hcCgoW2ssIHZdKSA9PiBbJy0tYnVpbGQtYXJnJywgYCR7a309JHt2fWBdKSxcbiAgICAgICksXG4gICAgICAuLi5mbGF0dGVuKFxuICAgICAgICBPYmplY3QuZW50cmllcyhvcHRpb25zLmJ1aWxkU2VjcmV0cyB8fCB7fSkubWFwKChbaywgdl0pID0+IFsnLS1zZWNyZXQnLCBgaWQ9JHtrfSwke3Z9YF0pLFxuICAgICAgKSxcbiAgICAgIC4uLihvcHRpb25zLmJ1aWxkU3NoID8gWyctLXNzaCcsIG9wdGlvbnMuYnVpbGRTc2hdIDogW10pLFxuICAgICAgJy0tdGFnJyxcbiAgICAgIG9wdGlvbnMudGFnLFxuICAgICAgLi4uKG9wdGlvbnMudGFyZ2V0ID8gWyctLXRhcmdldCcsIG9wdGlvbnMudGFyZ2V0XSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLmZpbGUgPyBbJy0tZmlsZScsIG9wdGlvbnMuZmlsZV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5uZXR3b3JrTW9kZSA/IFsnLS1uZXR3b3JrJywgb3B0aW9ucy5uZXR3b3JrTW9kZV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5wbGF0Zm9ybSA/IFsnLS1wbGF0Zm9ybScsIG9wdGlvbnMucGxhdGZvcm1dIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMub3V0cHV0cyA/IG9wdGlvbnMub3V0cHV0cy5tYXAoKG91dHB1dCkgPT4gW2AtLW91dHB1dD0ke291dHB1dH1gXSkgOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5jYWNoZUZyb21cbiAgICAgICAgPyBbXG4gICAgICAgICAgLi4ub3B0aW9ucy5jYWNoZUZyb21cbiAgICAgICAgICAgIC5tYXAoKGNhY2hlRnJvbSkgPT4gWyctLWNhY2hlLWZyb20nLCB0aGlzLmNhY2hlT3B0aW9uVG9GbGFnKGNhY2hlRnJvbSldKVxuICAgICAgICAgICAgLmZsYXQoKSxcbiAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLmNhY2hlVG8gPyBbJy0tY2FjaGUtdG8nLCB0aGlzLmNhY2hlT3B0aW9uVG9GbGFnKG9wdGlvbnMuY2FjaGVUbyldIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMuY2FjaGVEaXNhYmxlZCA/IFsnLS1uby1jYWNoZSddIDogW10pLFxuICAgICAgJy4nLFxuICAgIF07XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKGJ1aWxkQ29tbWFuZCwge1xuICAgICAgY3dkOiBvcHRpb25zLmRpcmVjdG9yeSxcbiAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogdGhpcy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24sXG4gICAgICBlbnY6IHtcbiAgICAgICAgQlVJTERYX05PX0RFRkFVTFRfQVRURVNUQVRJT05TOiAnMScsIC8vIERvY2tlciBCdWlsZCBhZGRzIHByb3ZlbmFuY2UgYXR0ZXN0YXRpb25zIGJ5IGRlZmF1bHQgdGhhdCBjb25mdXNlIGNkay1hc3NldHNcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNyZWRlbnRpYWxzIGZyb20gRUNSIGFuZCBydW4gZG9ja2VyIGxvZ2luXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9naW4oZWNyOiBJRUNSQ2xpZW50KSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBvYnRhaW5FY3JDcmVkZW50aWFscyhlY3IsIHRoaXMuZXZlbnRFbWl0dGVyKTtcblxuICAgIC8vIFVzZSAtLXBhc3N3b3JkLXN0ZGluIG90aGVyd2lzZSBkb2NrZXIgd2lsbCBjb21wbGFpbi4gTG91ZGx5LlxuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShcbiAgICAgIFsnbG9naW4nLCAnLS11c2VybmFtZScsIGNyZWRlbnRpYWxzLnVzZXJuYW1lLCAnLS1wYXNzd29yZC1zdGRpbicsIGNyZWRlbnRpYWxzLmVuZHBvaW50LnJlcGxhY2UoL15odHRwcz86XFwvXFwvfFxcLyQvZywgJycpXSxcbiAgICAgIHtcbiAgICAgICAgaW5wdXQ6IGNyZWRlbnRpYWxzLnBhc3N3b3JkLFxuXG4gICAgICAgIC8vIE5lZWQgdG8gaWdub3JlIG90aGVyd2lzZSBEb2NrZXIgd2lsbCBjb21wbGFpblxuICAgICAgICAvLyAnV0FSTklORyEgWW91ciBwYXNzd29yZCB3aWxsIGJlIHN0b3JlZCB1bmVuY3J5cHRlZCdcbiAgICAgICAgLy8gZG9lc24ndCByZWFsbHkgbWF0dGVyIHNpbmNlIGl0J3MgYSB0b2tlbi5cbiAgICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiAnaWdub3JlJyxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0YWcoc291cmNlVGFnOiBzdHJpbmcsIHRhcmdldFRhZzogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFsndGFnJywgc291cmNlVGFnLCB0YXJnZXRUYWddKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdXNoKG9wdGlvbnM6IFB1c2hPcHRpb25zKSB7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFsncHVzaCcsIG9wdGlvbnMudGFnXSwge1xuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBhIENESyBEb2NrZXIgQ3JlZGVudGlhbHMgZmlsZSBleGlzdHMsIGNyZWF0ZXMgYSBuZXcgRG9ja2VyIGNvbmZpZyBkaXJlY3RvcnkuXG4gICAqIFNldHMgdXAgYGRvY2tlci1jcmVkZW50aWFsLWNkay1hc3NldHNgIHRvIGJlIHRoZSBjcmVkZW50aWFsIGhlbHBlciBmb3IgZWFjaCBkb21haW4gaW4gdGhlIENESyBjb25maWcuXG4gICAqIEFsbCBmdXR1cmUgY29tbWFuZHMgKGUuZy4sIGBidWlsZGAsIGBwdXNoYCkgd2lsbCB1c2UgdGhpcyBjb25maWcuXG4gICAqXG4gICAqIFNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2xvZ2luLyNjcmVkZW50aWFsLWhlbHBlcnMgZm9yIG1vcmUgZGV0YWlscyBvbiBjcmVkIGhlbHBlcnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgQ0RLIGNvbmZpZyB3YXMgZm91bmQgYW5kIGNvbmZpZ3VyZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGNvbmZpZ3VyZUNka0NyZWRlbnRpYWxzKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNka0NyZWRlbnRpYWxzQ29uZmlnKCk7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ0RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nka0RvY2tlckNvbmZpZycpKTtcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBPYmplY3Qua2V5cyhjb25maWcuZG9tYWluQ3JlZGVudGlhbHMpO1xuICAgIGNvbnN0IGNyZWRIZWxwZXJzID0gZG9tYWlucy5yZWR1Y2UoKG1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgZG9tYWluKSA9PiB7XG4gICAgICBtYXBbZG9tYWluXSA9ICdjZGstYXNzZXRzJzsgLy8gVXNlIGRvY2tlci1jcmVkZW50aWFsLWNkay1hc3NldHMgZm9yIHRoaXMgZG9tYWluXG4gICAgICByZXR1cm4gbWFwO1xuICAgIH0sIHt9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbih0aGlzLmNvbmZpZ0RpciwgJ2NvbmZpZy5qc29uJyksIEpTT04uc3RyaW5naWZ5KHsgY3JlZEhlbHBlcnMgfSksIHtcbiAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhbnkgY29uZmlndXJlZCBEb2NrZXIgY29uZmlnIGRpcmVjdG9yeS5cbiAgICogQWxsIGZ1dHVyZSBjb21tYW5kcyAoZS5nLiwgYGJ1aWxkYCwgYHB1c2hgKSB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb25maWcuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIGFmdGVyIGNhbGxpbmcgYGNvbmZpZ3VyZUNka0NyZWRlbnRpYWxzYCB0byByZXNldCB0byBkZWZhdWx0IGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgcHVibGljIHJlc2V0QXV0aFBsdWdpbnMoKSB7XG4gICAgdGhpcy5jb25maWdEaXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGUoYXJnczogc3RyaW5nW10sIG9wdGlvbnM6IE9taXQ8U2hlbGxPcHRpb25zLCAnc2hlbGxFdmVudFB1Ymxpc2hlcic+ID0ge30pIHtcbiAgICBjb25zdCBjb25maWdBcmdzID0gdGhpcy5jb25maWdEaXIgPyBbJy0tY29uZmlnJywgdGhpcy5jb25maWdEaXJdIDogW107XG5cbiAgICBjb25zdCBwYXRoVG9DZGtBc3NldHMgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYmluJyk7XG5cbiAgICBjb25zdCBzaGVsbEV2ZW50UHVibGlzaGVyID0gc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIodGhpcy5ldmVudEVtaXR0ZXIpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzaGVsbChbZ2V0RG9ja2VyQ21kKCksIC4uLmNvbmZpZ0FyZ3MsIC4uLmFyZ3NdLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNoZWxsRXZlbnRQdWJsaXNoZXI6IHNoZWxsRXZlbnRQdWJsaXNoZXIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICAgIC4uLm9wdGlvbnMuZW52LFxuICAgICAgICAgIFBBVEg6IGAke3BhdGhUb0Nka0Fzc2V0c30ke3BhdGguZGVsaW1pdGVyfSR7b3B0aW9ucy5lbnY/LlBBVEggPz8gcHJvY2Vzcy5lbnYuUEFUSH1gLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBmaW5kIGFuZCBleGVjdXRlICcke2dldERvY2tlckNtZCgpfScgd2hpbGUgYXR0ZW1wdGluZyB0byBidWlsZCBhIGNvbnRhaW5lciBhc3NldC4gUGxlYXNlIGluc3RhbGwgJyR7Z2V0RG9ja2VyQ21kKCl9JyBhbmQgdHJ5IGFnYWluLiAoT3Igc2V0IHRoZSAnQ0RLX0RPQ0tFUiAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGNob29zZSBhIGRpZmZlcmVudCBjb21wYXRpYmxlIGNvbnRhaW5lciBjbGllbnQuKWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FjaGVPcHRpb25Ub0ZsYWcob3B0aW9uOiBEb2NrZXJDYWNoZU9wdGlvbik6IHN0cmluZyB7XG4gICAgbGV0IGZsYWcgPSBgdHlwZT0ke29wdGlvbi50eXBlfWA7XG4gICAgaWYgKG9wdGlvbi5wYXJhbXMpIHtcbiAgICAgIGZsYWcgKz1cbiAgICAgICAgJywnICtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0aW9uLnBhcmFtcylcbiAgICAgICAgICAubWFwKChbaywgdl0pID0+IGAke2t9PSR7dn1gKVxuICAgICAgICAgIC5qb2luKCcsJyk7XG4gICAgfVxuICAgIHJldHVybiBmbGFnO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyRmFjdG9yeU9wdGlvbnMge1xuICByZWFkb25seSByZXBvVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVjcjogSUVDUkNsaWVudDtcbiAgcmVhZG9ubHkgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI7XG4gIHJlYWRvbmx5IHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogU3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uO1xufVxuXG4vKipcbiAqIEhlbHBzIGdldCBhcHByb3ByaWF0ZWx5IGNvbmZpZ3VyZWQgRG9ja2VyIGluc3RhbmNlcyBkdXJpbmcgdGhlIGNvbnRhaW5lclxuICogaW1hZ2UgcHVibGlzaGluZyBwcm9jZXNzLlxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VyRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50ZXJMb2dnZWRJbkRlc3RpbmF0aW9uc0NyaXRpY2FsU2VjdGlvbiA9IGNyZWF0ZUNyaXRpY2FsU2VjdGlvbigpO1xuICBwcml2YXRlIGxvZ2dlZEluRGVzdGluYXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBEb2NrZXIgaW5zdGFuY2UgZm9yIGJ1aWxkaW5nIGltYWdlcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBmb3JCdWlsZChvcHRpb25zOiBEb2NrZXJGYWN0b3J5T3B0aW9ucyk6IFByb21pc2U8RG9ja2VyPiB7XG4gICAgY29uc3QgZG9ja2VyID0gbmV3IERvY2tlcihvcHRpb25zLmV2ZW50RW1pdHRlciwgb3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24pO1xuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byBsb2dpbiBiZWZvcmUgYnVpbGQgc28gdGhhdCB0aGUgRG9ja2VyZmlsZSBjYW4gcmVmZXJlbmNlIGltYWdlcyBpbiB0aGUgRUNSIHJlcG9cbiAgICAvLyBIb3dldmVyLCBpZiB3ZSdyZSBpbiBhIHBpcGVsaW5lcyBlbnZpcm9ubWVudCAoZm9yIGV4YW1wbGUpLFxuICAgIC8vIHdlIG1heSBoYXZlIGFsdGVybmF0aXZlIGNyZWRlbnRpYWxzIHRvIHRoZSBkZWZhdWx0IG9uZXMgdG8gdXNlIGZvciB0aGUgYnVpbGQgaXRzZWxmLlxuICAgIC8vIElmIHRoZSBzcGVjaWFsIGNvbmZpZyBmaWxlIGlzIHByZXNlbnQsIGRlbGF5IHRoZSBsb2dpbiB0byB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyB1bnRpbCB0aGUgcHVzaC5cbiAgICAvLyBJZiB0aGUgY29uZmlnIGZpbGUgaXMgcHJlc2VudCwgd2Ugd2lsbCBjb25maWd1cmUgYW5kIHVzZSB0aG9zZSBjcmVkZW50aWFscyBmb3IgdGhlIGJ1aWxkLlxuICAgIGxldCBjZGtEb2NrZXJDcmVkZW50aWFsc0NvbmZpZ3VyZWQgPSBkb2NrZXIuY29uZmlndXJlQ2RrQ3JlZGVudGlhbHMoKTtcbiAgICBpZiAoIWNka0RvY2tlckNyZWRlbnRpYWxzQ29uZmlndXJlZCkge1xuICAgICAgYXdhaXQgdGhpcy5sb2dpbk9uY2VQZXJEZXN0aW5hdGlvbihkb2NrZXIsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2NrZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIERvY2tlciBpbnN0YW5jZSBmb3IgcHVzaGluZyBpbWFnZXMgdG8gRUNSLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZvckVjclB1c2gob3B0aW9uczogRG9ja2VyRmFjdG9yeU9wdGlvbnMpIHtcbiAgICBjb25zdCBkb2NrZXIgPSBuZXcgRG9ja2VyKG9wdGlvbnMuZXZlbnRFbWl0dGVyLCBvcHRpb25zLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbik7XG4gICAgYXdhaXQgdGhpcy5sb2dpbk9uY2VQZXJEZXN0aW5hdGlvbihkb2NrZXIsIG9wdGlvbnMpO1xuICAgIHJldHVybiBkb2NrZXI7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luT25jZVBlckRlc3RpbmF0aW9uKGRvY2tlcjogRG9ja2VyLCBvcHRpb25zOiBEb2NrZXJGYWN0b3J5T3B0aW9ucykge1xuICAgIC8vIENoYW5nZXM6IDAxMjM0NTY3ODkxMC5ka3IuZWNyLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tL3RhZ2dpbmctdGVzdFxuICAgIC8vIFRvIHRoaXM6IDAxMjM0NTY3ODkxMC5ka3IuZWNyLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tXG4gICAgY29uc3QgcmVwb3NpdG9yeURvbWFpbiA9IG9wdGlvbnMucmVwb1VyaS5zcGxpdCgnLycpWzBdO1xuXG4gICAgLy8gRW5zdXJlIG9uZS1hdC1hLXRpbWUgYWNjZXNzIHRvIGxvZ2dlZEluRGVzdGluYXRpb25zLlxuICAgIGF3YWl0IHRoaXMuZW50ZXJMb2dnZWRJbkRlc3RpbmF0aW9uc0NyaXRpY2FsU2VjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5sb2dnZWRJbkRlc3RpbmF0aW9ucy5oYXMocmVwb3NpdG9yeURvbWFpbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBkb2NrZXIubG9naW4ob3B0aW9ucy5lY3IpO1xuICAgICAgdGhpcy5sb2dnZWRJbkRlc3RpbmF0aW9ucy5hZGQocmVwb3NpdG9yeURvbWFpbik7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RG9ja2VyQ21kKCk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9jZXNzLmVudi5DREtfRE9DS0VSID8/ICdkb2NrZXInO1xufVxuXG5mdW5jdGlvbiBmbGF0dGVuKHg6IHN0cmluZ1tdW10pIHtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQoW10sIC4uLngpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pathExists = pathExists;\nexports.emptyDirSync = emptyDirSync;\nexports.rmRfSync = rmRfSync;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst pfs = fs.promises;\nasync function pathExists(pathName) {\n try {\n await pfs.stat(pathName);\n return true;\n }\n catch (e) {\n if (e.code !== 'ENOENT') {\n throw e;\n }\n return false;\n }\n}\nfunction emptyDirSync(dir) {\n fs.readdirSync(dir, { withFileTypes: true }).forEach((dirent) => {\n const fullPath = path.join(dir, dirent.name);\n if (dirent.isDirectory()) {\n emptyDirSync(fullPath);\n fs.rmdirSync(fullPath);\n }\n else {\n fs.unlinkSync(fullPath);\n }\n });\n}\nfunction rmRfSync(dir) {\n emptyDirSync(dir);\n fs.rmdirSync(dir);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZXh0cmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmcy1leHRyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGdDQVVDO0FBRUQsb0NBVUM7QUFFRCw0QkFHQztBQWhDRCx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7QUFFakIsS0FBSyxVQUFVLFVBQVUsQ0FBQyxRQUFnQjtJQUMvQyxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDOUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDekIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZCLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixRQUFRLENBQUMsR0FBVztJQUNsQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgcGZzID0gZnMucHJvbWlzZXM7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXRoRXhpc3RzKHBhdGhOYW1lOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBwZnMuc3RhdChwYXRoTmFtZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLmNvZGUgIT09ICdFTk9FTlQnKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5RGlyU3luYyhkaXI6IHN0cmluZykge1xuICBmcy5yZWFkZGlyU3luYyhkaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KS5mb3JFYWNoKChkaXJlbnQpID0+IHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGguam9pbihkaXIsIGRpcmVudC5uYW1lKTtcbiAgICBpZiAoZGlyZW50LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGVtcHR5RGlyU3luYyhmdWxsUGF0aCk7XG4gICAgICBmcy5ybWRpclN5bmMoZnVsbFBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmcy51bmxpbmtTeW5jKGZ1bGxQYXRoKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcm1SZlN5bmMoZGlyOiBzdHJpbmcpIHtcbiAgZW1wdHlEaXJTeW5jKGRpcik7XG4gIGZzLnJtZGlyU3luYyhkaXIpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.destinationToClientOptions = destinationToClientOptions;\nfunction destinationToClientOptions(destination) {\n return {\n assumeRoleArn: destination.assumeRoleArn,\n assumeRoleExternalId: destination.assumeRoleExternalId,\n assumeRoleAdditionalOptions: destination.assumeRoleAdditionalOptions,\n region: destination.region,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGllbnQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLGdFQU9DO0FBUEQsU0FBZ0IsMEJBQTBCLENBQUMsV0FBMkI7SUFDcEUsT0FBTztRQUNMLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYTtRQUN4QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsb0JBQW9CO1FBQ3RELDJCQUEyQixFQUFFLFdBQVcsQ0FBQywyQkFBMkI7UUFDcEUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNO0tBQzNCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBd3NEZXN0aW5hdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IENsaWVudE9wdGlvbnMgfSBmcm9tICcuLi8uLi9hd3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMoZGVzdGluYXRpb246IEF3c0Rlc3RpbmF0aW9uKTogQ2xpZW50T3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgYXNzdW1lUm9sZUFybjogZGVzdGluYXRpb24uYXNzdW1lUm9sZUFybixcbiAgICBhc3N1bWVSb2xlRXh0ZXJuYWxJZDogZGVzdGluYXRpb24uYXNzdW1lUm9sZUV4dGVybmFsSWQsXG4gICAgYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zOiBkZXN0aW5hdGlvbi5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgcmVnaW9uOiBkZXN0aW5hdGlvbi5yZWdpb24sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerImageAssetHandler = void 0;\nconst path = require(\"path\");\nconst client_options_1 = require(\"./client-options\");\nconst progress_1 = require(\"../../progress\");\nconst placeholders_1 = require(\"../placeholders\");\nconst shell_1 = require(\"../shell\");\nclass ContainerImageAssetHandler {\n constructor(workDir, asset, host, options) {\n this.workDir = workDir;\n this.asset = asset;\n this.host = host;\n this.options = options;\n }\n async build() {\n const initOnce = await this.initOnce();\n if (initOnce.destinationAlreadyExists) {\n return;\n }\n if (this.host.aborted) {\n return;\n }\n const dockerForBuilding = await this.host.dockerFactory.forBuild({\n repoUri: initOnce.repoUri,\n eventEmitter: (m) => this.host.emitMessage(progress_1.EventType.DEBUG, m),\n ecr: initOnce.ecr,\n subprocessOutputDestination: this.options.subprocessOutputDestination,\n });\n const builder = new ContainerImageBuilder(dockerForBuilding, this.workDir, this.asset, this.host);\n const localTagName = await builder.build();\n if (localTagName === undefined || this.host.aborted) {\n return;\n }\n if (this.host.aborted) {\n return;\n }\n await dockerForBuilding.tag(localTagName, initOnce.imageUri);\n }\n async isPublished() {\n try {\n const initOnce = await this.initOnce({ quiet: true });\n return initOnce.destinationAlreadyExists;\n }\n catch (e) {\n this.host.emitMessage(progress_1.EventType.DEBUG, `${e.message}`);\n }\n return false;\n }\n async publish() {\n const initOnce = await this.initOnce();\n if (initOnce.destinationAlreadyExists) {\n return;\n }\n if (this.host.aborted) {\n return;\n }\n const dockerForPushing = await this.host.dockerFactory.forEcrPush({\n repoUri: initOnce.repoUri,\n eventEmitter: this.host.emitMessage,\n ecr: initOnce.ecr,\n subprocessOutputDestination: this.options.subprocessOutputDestination,\n });\n if (this.host.aborted) {\n return;\n }\n this.host.emitMessage(progress_1.EventType.UPLOAD, `Push ${initOnce.imageUri}`);\n await dockerForPushing.push({\n tag: initOnce.imageUri,\n });\n }\n async initOnce(options = {}) {\n if (this.init) {\n return this.init;\n }\n const destination = await (0, placeholders_1.replaceAwsPlaceholders)(this.asset.destination, this.host.aws);\n const ecr = await this.host.aws.ecrClient({\n ...(0, client_options_1.destinationToClientOptions)(destination),\n quiet: options.quiet,\n });\n const account = async () => (await this.host.aws.discoverCurrentAccount())?.accountId;\n const repoUri = await repositoryUri(ecr, destination.repositoryName);\n if (!repoUri) {\n throw new Error(`No ECR repository named '${destination.repositoryName}' in account ${await account()}. Is this account bootstrapped?`);\n }\n const imageUri = `${repoUri}:${destination.imageTag}`;\n this.init = {\n imageUri,\n ecr,\n repoUri,\n destinationAlreadyExists: await this.destinationAlreadyExists(ecr, destination, imageUri),\n };\n return this.init;\n }\n /**\n * Check whether the image already exists in the ECR repo\n *\n * Use the fields from the destination to do the actual check. The imageUri\n * should correspond to that, but is only used to print Docker image location\n * for user benefit (the format is slightly different).\n */\n async destinationAlreadyExists(ecr, destination, imageUri) {\n this.host.emitMessage(progress_1.EventType.CHECK, `Check ${imageUri}`);\n if (await imageExists(ecr, destination.repositoryName, destination.imageTag)) {\n this.host.emitMessage(progress_1.EventType.FOUND, `Found ${imageUri}`);\n return true;\n }\n return false;\n }\n}\nexports.ContainerImageAssetHandler = ContainerImageAssetHandler;\nclass ContainerImageBuilder {\n constructor(docker, workDir, asset, host) {\n this.docker = docker;\n this.workDir = workDir;\n this.asset = asset;\n this.host = host;\n }\n async build() {\n return this.asset.source.executable\n ? this.buildExternalAsset(this.asset.source.executable)\n : this.buildDirectoryAsset();\n }\n /**\n * Build a (local) Docker asset from a directory with a Dockerfile\n *\n * Tags under a deterministic, unique, local identifier wich will skip\n * the build if it already exists.\n */\n async buildDirectoryAsset() {\n const localTagName = `cdkasset-${this.asset.id.assetId.toLowerCase()}`;\n if (!(await this.isImageCached(localTagName))) {\n if (this.host.aborted) {\n return undefined;\n }\n await this.buildImage(localTagName);\n }\n return localTagName;\n }\n /**\n * Build a (local) Docker asset by running an external command\n *\n * External command is responsible for deduplicating the build if possible,\n * and is expected to return the generated image identifier on stdout.\n */\n async buildExternalAsset(executable, cwd) {\n const assetPath = cwd ?? this.workDir;\n this.host.emitMessage(progress_1.EventType.BUILD, `Building Docker image using command '${executable}'`);\n if (this.host.aborted) {\n return undefined;\n }\n const shellEventPublisher = (0, progress_1.shellEventPublisherFromEventEmitter)(this.host.emitMessage);\n return (await (0, shell_1.shell)(executable, {\n cwd: assetPath,\n shellEventPublisher,\n subprocessOutputDestination: 'ignore',\n })).trim();\n }\n async buildImage(localTagName) {\n const source = this.asset.source;\n if (!source.directory) {\n throw new Error(`'directory' is expected in the DockerImage asset source, got: ${JSON.stringify(source)}`);\n }\n const fullPath = path.resolve(this.workDir, source.directory);\n this.host.emitMessage(progress_1.EventType.BUILD, `Building Docker image at ${fullPath}`);\n await this.docker.build({\n directory: fullPath,\n tag: localTagName,\n buildArgs: source.dockerBuildArgs,\n buildSecrets: source.dockerBuildSecrets,\n buildSsh: source.dockerBuildSsh,\n target: source.dockerBuildTarget,\n file: source.dockerFile,\n networkMode: source.networkMode,\n platform: source.platform,\n outputs: source.dockerOutputs,\n cacheFrom: source.cacheFrom,\n cacheTo: source.cacheTo,\n cacheDisabled: source.cacheDisabled,\n });\n }\n async isImageCached(localTagName) {\n if (await this.docker.exists(localTagName)) {\n this.host.emitMessage(progress_1.EventType.CACHED, `Cached ${localTagName}`);\n return true;\n }\n return false;\n }\n}\nasync function imageExists(ecr, repositoryName, imageTag) {\n try {\n await ecr.describeImages({\n repositoryName,\n imageIds: [{ imageTag }],\n });\n return true;\n }\n catch (e) {\n if (e.name !== 'ImageNotFoundException') {\n throw e;\n }\n return false;\n }\n}\n/**\n * Return the URI for the repository with the given name\n *\n * Returns undefined if the repository does not exist.\n */\nasync function repositoryUri(ecr, repositoryName) {\n try {\n const response = await ecr.describeRepositories({\n repositoryNames: [repositoryName],\n });\n return (response.repositories || [])[0]?.repositoryUri;\n }\n catch (e) {\n if (e.name !== 'RepositoryNotFoundException') {\n throw e;\n }\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRhaW5lci1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLHFEQUE4RDtBQUc5RCw2Q0FBZ0Y7QUFHaEYsa0RBQXlEO0FBQ3pELG9DQUFpQztBQVNqQyxNQUFhLDBCQUEwQjtJQUdyQyxZQUNtQixPQUFlLEVBQ2YsS0FBK0IsRUFDL0IsSUFBa0IsRUFDbEIsT0FBd0I7UUFIeEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7SUFFM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLElBQUksUUFBUSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQy9ELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixZQUFZLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN0RSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkI7U0FDdEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FDdkMsaUJBQWlC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QUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsb0JBQW9CLENBQUM7WUFDOUMsZUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztJQUN6RCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssNkJBQTZCLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IERvY2tlckltYWdlRGVzdGluYXRpb24gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMgfSBmcm9tICcuL2NsaWVudC1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJRUNSQ2xpZW50IH0gZnJvbSAnLi4vLi4vYXdzJztcbmltcG9ydCB7IEV2ZW50VHlwZSwgc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9wcm9ncmVzcyc7XG5pbXBvcnQgdHlwZSB7IElBc3NldEhhbmRsZXIsIElIYW5kbGVySG9zdCwgSUhhbmRsZXJPcHRpb25zIH0gZnJvbSAnLi4vYXNzZXQtaGFuZGxlcic7XG5pbXBvcnQgdHlwZSB7IERvY2tlciB9IGZyb20gJy4uL2RvY2tlcic7XG5pbXBvcnQgeyByZXBsYWNlQXdzUGxhY2Vob2xkZXJzIH0gZnJvbSAnLi4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG5pbnRlcmZhY2UgQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXJJbml0IHtcbiAgcmVhZG9ubHkgZWNyOiBJRUNSQ2xpZW50O1xuICByZWFkb25seSByZXBvVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0czogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckltYWdlQXNzZXRIYW5kbGVyIGltcGxlbWVudHMgSUFzc2V0SGFuZGxlciB7XG4gIHByaXZhdGUgaW5pdD86IENvbnRhaW5lckltYWdlQXNzZXRIYW5kbGVySW5pdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBJSGFuZGxlckhvc3QsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBJSGFuZGxlck9wdGlvbnMsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSgpO1xuXG4gICAgaWYgKGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NrZXJGb3JCdWlsZGluZyA9IGF3YWl0IHRoaXMuaG9zdC5kb2NrZXJGYWN0b3J5LmZvckJ1aWxkKHtcbiAgICAgIHJlcG9Vcmk6IGluaXRPbmNlLnJlcG9VcmksXG4gICAgICBldmVudEVtaXR0ZXI6IChtOiBzdHJpbmcpID0+IHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIG0pLFxuICAgICAgZWNyOiBpbml0T25jZS5lY3IsXG4gICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IHRoaXMub3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IENvbnRhaW5lckltYWdlQnVpbGRlcihcbiAgICAgIGRvY2tlckZvckJ1aWxkaW5nLFxuICAgICAgdGhpcy53b3JrRGlyLFxuICAgICAgdGhpcy5hc3NldCxcbiAgICAgIHRoaXMuaG9zdCxcbiAgICApO1xuICAgIGNvbnN0IGxvY2FsVGFnTmFtZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIGlmIChsb2NhbFRhZ05hbWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBkb2NrZXJGb3JCdWlsZGluZy50YWcobG9jYWxUYWdOYW1lLCBpbml0T25jZS5pbWFnZVVyaSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaXNQdWJsaXNoZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSh7IHF1aWV0OiB0cnVlIH0pO1xuICAgICAgcmV0dXJuIGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cztcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5pdE9uY2UgPSBhd2FpdCB0aGlzLmluaXRPbmNlKCk7XG5cbiAgICBpZiAoaW5pdE9uY2UuZGVzdGluYXRpb25BbHJlYWR5RXhpc3RzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRvY2tlckZvclB1c2hpbmcgPSBhd2FpdCB0aGlzLmhvc3QuZG9ja2VyRmFjdG9yeS5mb3JFY3JQdXNoKHtcbiAgICAgIHJlcG9Vcmk6IGluaXRPbmNlLnJlcG9VcmksXG4gICAgICBldmVudEVtaXR0ZXI6IHRoaXMuaG9zdC5lbWl0TWVzc2FnZSxcbiAgICAgIGVjcjogaW5pdE9uY2UuZWNyLFxuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLm9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5VUExPQUQsIGBQdXNoICR7aW5pdE9uY2UuaW1hZ2VVcml9YCk7XG4gICAgYXdhaXQgZG9ja2VyRm9yUHVzaGluZy5wdXNoKHtcbiAgICAgIHRhZzogaW5pdE9uY2UuaW1hZ2VVcmksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRPbmNlKFxuICAgIG9wdGlvbnM6IHsgcXVpZXQ/OiBib29sZWFuIH0gPSB7fSxcbiAgKTogUHJvbWlzZTxDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlckluaXQ+IHtcbiAgICBpZiAodGhpcy5pbml0KSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0O1xuICAgIH1cblxuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBlY3IgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLmVjckNsaWVudCh7XG4gICAgICAuLi5kZXN0aW5hdGlvblRvQ2xpZW50T3B0aW9ucyhkZXN0aW5hdGlvbiksXG4gICAgICBxdWlldDogb3B0aW9ucy5xdWlldCxcbiAgICB9KTtcbiAgICBjb25zdCBhY2NvdW50ID0gYXN5bmMgKCkgPT4gKGF3YWl0IHRoaXMuaG9zdC5hd3MuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpKT8uYWNjb3VudElkO1xuXG4gICAgY29uc3QgcmVwb1VyaSA9IGF3YWl0IHJlcG9zaXRvcnlVcmkoZWNyLCBkZXN0aW5hdGlvbi5yZXBvc2l0b3J5TmFtZSk7XG4gICAgaWYgKCFyZXBvVXJpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBFQ1IgcmVwb3NpdG9yeSBuYW1lZCAnJHtkZXN0aW5hdGlvbi5yZXBvc2l0b3J5TmFtZX0nIGluIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9LiBJcyB0aGlzIGFjY291bnQgYm9vdHN0cmFwcGVkP2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlVXJpID0gYCR7cmVwb1VyaX06JHtkZXN0aW5hdGlvbi5pbWFnZVRhZ31gO1xuXG4gICAgdGhpcy5pbml0ID0ge1xuICAgICAgaW1hZ2VVcmksXG4gICAgICBlY3IsXG4gICAgICByZXBvVXJpLFxuICAgICAgZGVzdGluYXRpb25BbHJlYWR5RXhpc3RzOiBhd2FpdCB0aGlzLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cyhlY3IsIGRlc3RpbmF0aW9uLCBpbWFnZVVyaSksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmluaXQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB0aGUgaW1hZ2UgYWxyZWFkeSBleGlzdHMgaW4gdGhlIEVDUiByZXBvXG4gICAqXG4gICAqIFVzZSB0aGUgZmllbGRzIGZyb20gdGhlIGRlc3RpbmF0aW9uIHRvIGRvIHRoZSBhY3R1YWwgY2hlY2suIFRoZSBpbWFnZVVyaVxuICAgKiBzaG91bGQgY29ycmVzcG9uZCB0byB0aGF0LCBidXQgaXMgb25seSB1c2VkIHRvIHByaW50IERvY2tlciBpbWFnZSBsb2NhdGlvblxuICAgKiBmb3IgdXNlciBiZW5lZml0ICh0aGUgZm9ybWF0IGlzIHNsaWdodGx5IGRpZmZlcmVudCkuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cyhcbiAgICBlY3I6IElFQ1JDbGllbnQsXG4gICAgZGVzdGluYXRpb246IERvY2tlckltYWdlRGVzdGluYXRpb24sXG4gICAgaW1hZ2VVcmk6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DSEVDSywgYENoZWNrICR7aW1hZ2VVcml9YCk7XG4gICAgaWYgKGF3YWl0IGltYWdlRXhpc3RzKGVjciwgZGVzdGluYXRpb24ucmVwb3NpdG9yeU5hbWUsIGRlc3RpbmF0aW9uLmltYWdlVGFnKSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5GT1VORCwgYEZvdW5kICR7aW1hZ2VVcml9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgQ29udGFpbmVySW1hZ2VCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2NrZXI6IERvY2tlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBJSGFuZGxlckhvc3QsXG4gICkge1xuICB9XG5cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZVxuICAgICAgPyB0aGlzLmJ1aWxkRXh0ZXJuYWxBc3NldCh0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlKVxuICAgICAgOiB0aGlzLmJ1aWxkRGlyZWN0b3J5QXNzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIChsb2NhbCkgRG9ja2VyIGFzc2V0IGZyb20gYSBkaXJlY3Rvcnkgd2l0aCBhIERvY2tlcmZpbGVcbiAgICpcbiAgICogVGFncyB1bmRlciBhIGRldGVybWluaXN0aWMsIHVuaXF1ZSwgbG9jYWwgaWRlbnRpZmllciB3aWNoIHdpbGwgc2tpcFxuICAgKiB0aGUgYnVpbGQgaWYgaXQgYWxyZWFkeSBleGlzdHMuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGJ1aWxkRGlyZWN0b3J5QXNzZXQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBsb2NhbFRhZ05hbWUgPSBgY2RrYXNzZXQtJHt0aGlzLmFzc2V0LmlkLmFzc2V0SWQudG9Mb3dlckNhc2UoKX1gO1xuXG4gICAgaWYgKCEoYXdhaXQgdGhpcy5pc0ltYWdlQ2FjaGVkKGxvY2FsVGFnTmFtZSkpKSB7XG4gICAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5idWlsZEltYWdlKGxvY2FsVGFnTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvY2FsVGFnTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIChsb2NhbCkgRG9ja2VyIGFzc2V0IGJ5IHJ1bm5pbmcgYW4gZXh0ZXJuYWwgY29tbWFuZFxuICAgKlxuICAgKiBFeHRlcm5hbCBjb21tYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWR1cGxpY2F0aW5nIHRoZSBidWlsZCBpZiBwb3NzaWJsZSxcbiAgICogYW5kIGlzIGV4cGVjdGVkIHRvIHJldHVybiB0aGUgZ2VuZXJhdGVkIGltYWdlIGlkZW50aWZpZXIgb24gc3Rkb3V0LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBidWlsZEV4dGVybmFsQXNzZXQoXG4gICAgZXhlY3V0YWJsZTogc3RyaW5nW10sXG4gICAgY3dkPzogc3RyaW5nLFxuICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGFzc2V0UGF0aCA9IGN3ZCA/PyB0aGlzLndvcmtEaXI7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkJVSUxELCBgQnVpbGRpbmcgRG9ja2VyIGltYWdlIHVzaW5nIGNvbW1hbmQgJyR7ZXhlY3V0YWJsZX0nYCk7XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmhvc3QuZW1pdE1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHNoZWxsKGV4ZWN1dGFibGUsIHtcbiAgICAgICAgY3dkOiBhc3NldFBhdGgsXG4gICAgICAgIHNoZWxsRXZlbnRQdWJsaXNoZXIsXG4gICAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsXG4gICAgICB9KVxuICAgICkudHJpbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZEltYWdlKGxvY2FsVGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5hc3NldC5zb3VyY2U7XG4gICAgaWYgKCFzb3VyY2UuZGlyZWN0b3J5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAnZGlyZWN0b3J5JyBpcyBleHBlY3RlZCBpbiB0aGUgRG9ja2VySW1hZ2UgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5kaXJlY3RvcnkpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBCdWlsZGluZyBEb2NrZXIgaW1hZ2UgYXQgJHtmdWxsUGF0aH1gKTtcblxuICAgIGF3YWl0IHRoaXMuZG9ja2VyLmJ1aWxkKHtcbiAgICAgIGRpcmVjdG9yeTogZnVsbFBhdGgsXG4gICAgICB0YWc6IGxvY2FsVGFnTmFtZSxcbiAgICAgIGJ1aWxkQXJnczogc291cmNlLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIGJ1aWxkU2VjcmV0czogc291cmNlLmRvY2tlckJ1aWxkU2VjcmV0cyxcbiAgICAgIGJ1aWxkU3NoOiBzb3VyY2UuZG9ja2VyQnVpbGRTc2gsXG4gICAgICB0YXJnZXQ6IHNvdXJjZS5kb2NrZXJCdWlsZFRhcmdldCxcbiAgICAgIGZpbGU6IHNvdXJjZS5kb2NrZXJGaWxlLFxuICAgICAgbmV0d29ya01vZGU6IHNvdXJjZS5uZXR3b3JrTW9kZSxcbiAgICAgIHBsYXRmb3JtOiBzb3VyY2UucGxhdGZvcm0sXG4gICAgICBvdXRwdXRzOiBzb3VyY2UuZG9ja2VyT3V0cHV0cyxcbiAgICAgIGNhY2hlRnJvbTogc291cmNlLmNhY2hlRnJvbSxcbiAgICAgIGNhY2hlVG86IHNvdXJjZS5jYWNoZVRvLFxuICAgICAgY2FjaGVEaXNhYmxlZDogc291cmNlLmNhY2hlRGlzYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGlzSW1hZ2VDYWNoZWQobG9jYWxUYWdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5kb2NrZXIuZXhpc3RzKGxvY2FsVGFnTmFtZSkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0FDSEVELCBgQ2FjaGVkICR7bG9jYWxUYWdOYW1lfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGltYWdlRXhpc3RzKGVjcjogSUVDUkNsaWVudCwgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgaW1hZ2VUYWc6IHN0cmluZykge1xuICB0cnkge1xuICAgIGF3YWl0IGVjci5kZXNjcmliZUltYWdlcyh7XG4gICAgICByZXBvc2l0b3J5TmFtZSxcbiAgICAgIGltYWdlSWRzOiBbeyBpbWFnZVRhZyB9XSxcbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUubmFtZSAhPT0gJ0ltYWdlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIFVSSSBmb3IgdGhlIHJlcG9zaXRvcnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZVxuICpcbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0LlxuICovXG5hc3luYyBmdW5jdGlvbiByZXBvc2l0b3J5VXJpKGVjcjogSUVDUkNsaWVudCwgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlY3IuZGVzY3JpYmVSZXBvc2l0b3JpZXMoe1xuICAgICAgcmVwb3NpdG9yeU5hbWVzOiBbcmVwb3NpdG9yeU5hbWVdLFxuICAgIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UucmVwb3NpdG9yaWVzIHx8IFtdKVswXT8ucmVwb3NpdG9yeVVyaTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUubmFtZSAhPT0gJ1JlcG9zaXRvcnlOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileAssetHandler = void 0;\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\nconst mime = require(\"mime\");\nconst client_options_1 = require(\"./client-options\");\nconst progress_1 = require(\"../../progress\");\nconst archive_1 = require(\"../archive\");\nconst fs_extra_1 = require(\"../fs-extra\");\nconst placeholders_1 = require(\"../placeholders\");\nconst shell_1 = require(\"../shell\");\n/**\n * The size of an empty zip file is 22 bytes\n *\n * Ref: https://en.wikipedia.org/wiki/ZIP_(file_format)\n */\nconst EMPTY_ZIP_FILE_SIZE = 22;\nclass FileAssetHandler {\n constructor(workDir, asset, host) {\n this.workDir = workDir;\n this.asset = asset;\n this.host = host;\n this.fileCacheRoot = path.join(workDir, '.cache');\n }\n async build() {\n }\n async isPublished() {\n const destination = await (0, placeholders_1.replaceAwsPlaceholders)(this.asset.destination, this.host.aws);\n const s3Url = `s3://${destination.bucketName}/${destination.objectKey}`;\n try {\n const s3 = await this.host.aws.s3Client({\n ...(0, client_options_1.destinationToClientOptions)(destination),\n quiet: true,\n });\n this.host.emitMessage(progress_1.EventType.CHECK, `Check ${s3Url}`);\n if (await objectExists(s3, destination.bucketName, destination.objectKey)) {\n this.host.emitMessage(progress_1.EventType.FOUND, `Found ${s3Url}`);\n return true;\n }\n }\n catch (e) {\n this.host.emitMessage(progress_1.EventType.DEBUG, `${e.message}`);\n }\n return false;\n }\n async publish(options = {}) {\n const destination = await (0, placeholders_1.replaceAwsPlaceholders)(this.asset.destination, this.host.aws);\n const s3Url = `s3://${destination.bucketName}/${destination.objectKey}`;\n const clientOptions = (0, client_options_1.destinationToClientOptions)(destination);\n const s3 = await this.host.aws.s3Client(clientOptions);\n this.host.emitMessage(progress_1.EventType.CHECK, `Check ${s3Url}`);\n const bucketInfo = BucketInformation.for(this.host);\n // A thunk for describing the current account. Used when we need to format an error\n // message, not in the success case.\n const account = async () => (await this.host.aws.discoverTargetAccount(clientOptions)).accountId;\n const allowCrossAccount = options.allowCrossAccount ?? true;\n switch (await bucketInfo.bucketOwnership(s3, destination.bucketName, allowCrossAccount ? undefined : await account())) {\n case BucketOwnership.MINE:\n break;\n case BucketOwnership.DOES_NOT_EXIST:\n throw new Error(`No bucket named '${destination.bucketName}'. Is account ${await account()} bootstrapped?`);\n case BucketOwnership.NO_ACCESS:\n throw new Error(`Bucket named '${destination.bucketName}' exists, but we dont have access to it.`);\n case BucketOwnership.SOMEONE_ELSES_AND_HAVE_ACCESS:\n if (!allowCrossAccount) {\n throw new Error(`❗❗ UNEXPECTED BUCKET OWNER DETECTED ❗❗\n\n We've detected that the S3 bucket ${destination.bucketName} was\n originally created in account ${await account()} as part of the CloudFormation stack CDKToolkit,\n but now resides in a different AWS account. To prevent cross-account asset bucket access of your\n deployments, CDK will stop now.\n\n If this situation is intentional and you own the AWS account that the bucket has moved to, remove the\n resource named StagingBucket from the template of CloudFormation stack CDKToolkit and try again.\n\n If this situation is not intentional, we strongly recommend auditing your account to make sure all\n resources are configured the way you expect them [1]. For questions or concerns, please contact\n AWS Support [2].\n\n [1] https://repost.aws/knowledge-center/potential-account-compromise\n\n [2] https://aws.amazon.com/support`);\n }\n break;\n }\n if (!options.force && await objectExists(s3, destination.bucketName, destination.objectKey)) {\n this.host.emitMessage(progress_1.EventType.FOUND, `Found ${s3Url}`);\n return;\n }\n // Identify the the bucket encryption type to set the header on upload\n // required for SCP rules denying uploads without encryption header\n let paramsEncryption = {};\n const encryption2 = await bucketInfo.bucketEncryption(s3, destination.bucketName);\n switch (encryption2.type) {\n case 'no_encryption':\n break;\n case 'aes256':\n paramsEncryption = { ServerSideEncryption: 'AES256' };\n break;\n case 'kms':\n // We must include the key ID otherwise S3 will encrypt with the default key\n paramsEncryption = {\n ServerSideEncryption: 'aws:kms',\n SSEKMSKeyId: encryption2.kmsKeyId,\n };\n break;\n case 'does_not_exist':\n this.host.emitMessage(progress_1.EventType.DEBUG, `No bucket named '${destination.bucketName}'. Is account ${await account()} bootstrapped?`);\n break;\n case 'access_denied':\n this.host.emitMessage(progress_1.EventType.DEBUG, `Could not read encryption settings of bucket '${destination.bucketName}': uploading with default settings (\"cdk bootstrap\" to version 9 if your organization's policies prevent a successful upload or to get rid of this message).`);\n break;\n }\n if (this.host.aborted) {\n return;\n }\n const publishFile = this.asset.source.executable\n ? await this.externalPackageFile(this.asset.source.executable)\n : await this.packageFile(this.asset.source);\n this.host.emitMessage(progress_1.EventType.UPLOAD, `Upload ${s3Url}`);\n const params = Object.assign({}, {\n Bucket: destination.bucketName,\n Key: destination.objectKey,\n Body: (0, fs_1.createReadStream)(publishFile.packagedPath),\n ContentType: publishFile.contentType,\n ChecksumAlgorithm: 'SHA256',\n }, paramsEncryption);\n await s3.upload(params);\n }\n async packageFile(source) {\n if (!source.path) {\n throw new Error(`'path' is expected in the File asset source, got: ${JSON.stringify(source)}`);\n }\n const fullPath = path.resolve(this.workDir, source.path);\n if (source.packaging === cloud_assembly_schema_1.FileAssetPackaging.ZIP_DIRECTORY) {\n const contentType = 'application/zip';\n await fs_1.promises.mkdir(this.fileCacheRoot, { recursive: true });\n const packagedPath = path.join(this.fileCacheRoot, `${this.asset.id.assetId}.zip`);\n if (await (0, fs_extra_1.pathExists)(packagedPath)) {\n this.host.emitMessage(progress_1.EventType.CACHED, `From cache ${packagedPath}`);\n return { packagedPath, contentType };\n }\n this.host.emitMessage(progress_1.EventType.BUILD, `Zip ${fullPath} -> ${packagedPath}`);\n await (0, archive_1.zipDirectory)(fullPath, packagedPath, (m) => this.host.emitMessage(progress_1.EventType.DEBUG, m));\n return { packagedPath, contentType };\n }\n else {\n const contentType = mime.getType(fullPath) ?? 'application/octet-stream';\n return { packagedPath: fullPath, contentType };\n }\n }\n async externalPackageFile(executable) {\n this.host.emitMessage(progress_1.EventType.BUILD, `Building asset source using command: '${executable}'`);\n const shellEventPublisher = (0, progress_1.shellEventPublisherFromEventEmitter)(this.host.emitMessage);\n return {\n packagedPath: (await (0, shell_1.shell)(executable, { subprocessOutputDestination: 'ignore', shellEventPublisher })).trim(),\n contentType: 'application/zip',\n };\n }\n}\nexports.FileAssetHandler = FileAssetHandler;\nvar BucketOwnership;\n(function (BucketOwnership) {\n BucketOwnership[BucketOwnership[\"DOES_NOT_EXIST\"] = 0] = \"DOES_NOT_EXIST\";\n BucketOwnership[BucketOwnership[\"MINE\"] = 1] = \"MINE\";\n BucketOwnership[BucketOwnership[\"NO_ACCESS\"] = 2] = \"NO_ACCESS\";\n BucketOwnership[BucketOwnership[\"SOMEONE_ELSES_AND_HAVE_ACCESS\"] = 3] = \"SOMEONE_ELSES_AND_HAVE_ACCESS\";\n})(BucketOwnership || (BucketOwnership = {}));\nasync function objectExists(s3, bucket, key) {\n /*\n * The object existence check here refrains from using the `headObject` operation because this\n * would create a negative cache entry, making GET-after-PUT eventually consistent. This has been\n * observed to result in CloudFormation issuing \"ValidationError: S3 error: Access Denied\", for\n * example in https://github.com/aws/aws-cdk/issues/6430.\n *\n * To prevent this, we are instead using the listObjectsV2 call, using the looked up key as the\n * prefix, and limiting results to 1. Since the list operation returns keys ordered by binary\n * UTF-8 representation, the key we are looking for is guaranteed to always be the first match\n * returned if it exists.\n *\n * If the file is too small, we discount it as a cache hit. There is an issue\n * somewhere that sometimes produces empty zip files, and we would otherwise\n * never retry building those assets without users having to manually clear\n * their bucket, which is a bad experience.\n */\n const response = await s3.listObjectsV2({\n Bucket: bucket,\n Prefix: key,\n MaxKeys: 1,\n });\n return (response.Contents != null &&\n response.Contents.some((object) => object.Key === key && (object.Size == null || object.Size > EMPTY_ZIP_FILE_SIZE)));\n}\n/**\n * Cache for bucket information, so we don't have to keep doing the same calls again and again\n *\n * We scope the lifetime of the cache to the lifetime of the host, so that we don't have to do\n * anything special for tests and yet the cache will live for the entire lifetime of the asset\n * upload session when used by the CLI.\n */\nclass BucketInformation {\n static for(host) {\n const existing = BucketInformation.caches.get(host);\n if (existing) {\n return existing;\n }\n const fresh = new BucketInformation();\n BucketInformation.caches.set(host, fresh);\n return fresh;\n }\n constructor() {\n this.ownerships = new Map();\n this.encryptions = new Map();\n }\n async bucketOwnership(s3, bucket, expectedAccount) {\n return cached(this.ownerships, bucket, async () => {\n const anyAccount = await this._bucketOwnership(s3, bucket);\n switch (anyAccount) {\n case BucketOwnership.MINE:\n if (expectedAccount &&\n (await this._bucketOwnership(s3, bucket, expectedAccount)) === BucketOwnership.NO_ACCESS) {\n // if the only difference between MINE and NO_ACCESS is the expected account,\n // then its definitely someone else's bucket.\n return BucketOwnership.SOMEONE_ELSES_AND_HAVE_ACCESS;\n }\n return BucketOwnership.MINE;\n default:\n return anyAccount;\n }\n });\n }\n async bucketEncryption(s3, bucket) {\n return cached(this.encryptions, bucket, () => this._bucketEncryption(s3, bucket));\n }\n async _bucketOwnership(s3, bucket, account) {\n try {\n await s3.getBucketLocation({ Bucket: bucket, ExpectedBucketOwner: account });\n return BucketOwnership.MINE;\n }\n catch (e) {\n if (e.name === 'NoSuchBucket') {\n return BucketOwnership.DOES_NOT_EXIST;\n }\n if (['AccessDenied', 'AllAccessDisabled'].includes(e.name)) {\n return BucketOwnership.NO_ACCESS;\n }\n throw e;\n }\n }\n async _bucketEncryption(s3, bucket) {\n try {\n const encryption = await s3.getBucketEncryption({ Bucket: bucket });\n const l = encryption?.ServerSideEncryptionConfiguration?.Rules?.length ?? 0;\n if (l > 0) {\n const apply = encryption?.ServerSideEncryptionConfiguration?.Rules?.at(0)?.ApplyServerSideEncryptionByDefault;\n let ssealgo = apply?.SSEAlgorithm;\n if (ssealgo === 'AES256')\n return { type: 'aes256' };\n if (ssealgo === 'aws:kms')\n return { type: 'kms', kmsKeyId: apply?.KMSMasterKeyID };\n }\n return { type: 'no_encryption' };\n }\n catch (e) {\n if (e.name === 'NoSuchBucket') {\n return { type: 'does_not_exist' };\n }\n if (e.name === 'ServerSideEncryptionConfigurationNotFoundError') {\n return { type: 'no_encryption' };\n }\n if (['AccessDenied', 'AllAccessDisabled'].includes(e.name)) {\n return { type: 'access_denied' };\n }\n return { type: 'no_encryption' };\n }\n }\n}\nBucketInformation.caches = new WeakMap();\nasync function cached(cache, key, factory) {\n if (cache.has(key)) {\n return cache.get(key);\n }\n const fresh = await factory(key);\n cache.set(key, fresh);\n return fresh;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBc0Q7QUFDdEQsNkJBQTZCO0FBRTdCLDBFQUFvRTtBQUNwRSw2QkFBNkI7QUFDN0IscURBQThEO0FBSTlELDZDQUFnRjtBQUNoRix3Q0FBMEM7QUFFMUMsMENBQXlDO0FBQ3pDLGtEQUF5RDtBQUN6RCxvQ0FBaUM7QUFFakM7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQWEsZ0JBQWdCO0lBRzNCLFlBQ21CLE9BQWUsRUFDZixLQUF3QixFQUN4QixJQUFrQjtRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBYztRQUVuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztJQUNsQixDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEYsTUFBTSxLQUFLLEdBQUcsUUFBUSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDdEMsR0FBRyxJQUFBLDJDQUEwQixFQUFDLFdBQVcsQ0FBQztnQkFDMUMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBUyxDQUFDLEtBQUssRUFBRSxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFekQsSUFBSSxNQUFNLFlBQVksQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQTBCLEVBQUU7UUFDL0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEYsTUFBTSxLQUFLLEdBQUcsUUFBUSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV4RSxNQUFNLGFBQWEsR0FBRyxJQUFBLDJDQUEwQixFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUV6RCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELG1GQUFtRjtRQUNuRixvQ0FBb0M7UUFDcEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FDekIsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXZFLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQztRQUM1RCxRQUNFLE1BQU0sVUFBVSxDQUFDLGVBQWUsQ0FDOUIsRUFBRSxFQUNGLFdBQVcsQ0FBQyxVQUFVLEVBQ3RCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sT0FBTyxFQUFFLENBQ2hELEVBQ0QsQ0FBQztZQUNELEtBQUssZUFBZSxDQUFDLElBQUk7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLGVBQWUsQ0FBQyxjQUFjO2dCQUNqQyxNQUFNLElBQUksS0FBSyxDQUNiLG9CQUFvQixXQUFXLENBQUMsVUFBVSxpQkFBaUIsTUFBTSxPQUFPLEVBQUUsZ0JBQWdCLENBQzNGLENBQUM7WUFDSixLQUFLLGVBQWUsQ0FBQyxTQUFTO2dCQUM1QixNQUFNLElBQUksS0FBSyxDQUNiLGlCQUFpQixXQUFXLENBQUMsVUFBVSwwQ0FBMEMsQ0FDbEYsQ0FBQztZQUNKLEtBQUssZUFBZSxDQUFDLDZCQUE2QjtnQkFDaEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ2I7O2tEQUVzQyxXQUFXLENBQUMsVUFBVTs4Q0FDMUIsTUFBTSxPQUFPLEVBQUU7Ozs7Ozs7Ozs7Ozs7aURBYVosQ0FDdEMsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksTUFBTSxZQUFZLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUYsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBRUQsc0VBQXNFO1FBQ3RFLG1FQUFtRTtRQUNuRSxJQUFJLGdCQUFnQixHQUE2QixFQUFFLENBQUM7UUFDcEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRixRQUFRLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixLQUFLLGVBQWU7Z0JBQ2xCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsZ0JBQWdCLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDdEQsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUiw0RUFBNEU7Z0JBQzVFLGdCQUFnQixHQUFHO29CQUNqQixvQkFBb0IsRUFBRSxTQUFTO29CQUMvQixXQUFXLEVBQUUsV0FBVyxDQUFDLFFBQVE7aUJBQ2xDLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLEtBQUssZ0JBQWdCO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FDbkIsb0JBQVMsQ0FBQyxLQUFLLEVBQ2Ysb0JBQW9CLFdBQVcsQ0FBQyxVQUFVLGlCQUFpQixNQUFNLE9BQU8sRUFBRSxnQkFBZ0IsQ0FDM0YsQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSyxlQUFlO2dCQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FDbkIsb0JBQVMsQ0FBQyxLQUFLLEVBQ2YsaURBQWlELFdBQVcsQ0FBQyxVQUFVLDhKQUE4SixDQUN0TyxDQUFDO2dCQUNGLE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUM5QyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQzlELENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBUyxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFM0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDMUIsRUFBRSxFQUNGO1lBQ0UsTUFBTSxFQUFFLFdBQVcsQ0FBQyxVQUFVO1lBQzlCLEdBQUcsRUFBRSxXQUFXLENBQUMsU0FBUztZQUMxQixJQUFJLEVBQUUsSUFBQSxxQkFBZ0IsRUFBQyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQ2hELFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVztZQUNwQyxpQkFBaUIsRUFBRSxRQUFRO1NBQ0ksRUFDakMsZ0JBQWdCLENBQ2pCLENBQUM7UUFFRixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBa0I7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUNiLHFEQUFxRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzlFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssMENBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7WUFFdEMsTUFBTSxhQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxDQUFDO1lBRW5GLElBQUksTUFBTSxJQUFBLHFCQUFVLEVBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQVMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBUyxDQUFDLEtBQUssRUFBRSxPQUFPLFFBQVEsT0FBTyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sSUFBQSxzQkFBWSxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksMEJBQTBCLENBQUM7WUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBb0I7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQVMsQ0FBQyxLQUFLLEVBQUUseUNBQXlDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFFL0YsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLDhDQUFtQyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkYsT0FBTztZQUNMLFlBQVksRUFBRSxDQUNaLE1BQU0sSUFBQSxhQUFLLEVBQUMsVUFBVSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FDeEYsQ0FBQyxJQUFJLEVBQUU7WUFDUixXQUFXLEVBQUUsaUJBQWlCO1NBQy9CLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFqTUQsNENBaU1DO0FBRUQsSUFBSyxlQUtKO0FBTEQsV0FBSyxlQUFlO0lBQ2xCLHlFQUFjLENBQUE7SUFDZCxxREFBSSxDQUFBO0lBQ0osK0RBQVMsQ0FBQTtJQUNULHVHQUE2QixDQUFBO0FBQy9CLENBQUMsRUFMSSxlQUFlLEtBQWYsZUFBZSxRQUtuQjtBQVNELEtBQUssVUFBVSxZQUFZLENBQUMsRUFBYSxFQUFFLE1BQWMsRUFBRSxHQUFXO0lBQ3BFOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUN0QyxNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLENBQUM7S0FDWCxDQUFDLENBQUM7SUFDSCxPQUFPLENBQ0wsUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJO1FBQ3pCLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNwQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDLENBQzdGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFtQkQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxpQkFBaUI7SUFDZCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQWtCO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdEMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBT0Q7UUFIaUIsZUFBVSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBQ2hELGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7SUFHbkUsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQzFCLEVBQWEsRUFDYixNQUFjLEVBQ2QsZUFBd0I7UUFFeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTNELFFBQVEsVUFBVSxFQUFFLENBQUM7Z0JBQ25CLEtBQUssZUFBZSxDQUFDLElBQUk7b0JBQ3ZCLElBQ0UsZUFBZTt3QkFDZixDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsS0FBSyxlQUFlLENBQUMsU0FBUyxFQUN4RixDQUFDO3dCQUNELDZFQUE2RTt3QkFDN0UsNkNBQTZDO3dCQUM3QyxPQUFPLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDdkQsQ0FBQztvQkFDRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQzlCO29CQUNFLE9BQU8sVUFBVSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBYSxFQUFFLE1BQWM7UUFDekQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCLENBQzVCLEVBQWEsRUFDYixNQUFjLEVBQ2QsT0FBZ0I7UUFFaEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDN0UsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxlQUFlLENBQUMsY0FBYyxDQUFDO1lBQ3hDLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMzRCxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUM7WUFDbkMsQ0FBQztZQUNELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBYSxFQUFFLE1BQWM7UUFDM0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRSxNQUFNLENBQUMsR0FBRyxVQUFVLEVBQUUsaUNBQWlDLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxLQUFLLEdBQ1QsVUFBVSxFQUFFLGlDQUFpQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ3RELENBQUMsQ0FDRixFQUFFLGtDQUFrQyxDQUFDO2dCQUN4QyxJQUFJLE9BQU8sR0FBRyxLQUFLLEVBQUUsWUFBWSxDQUFDO2dCQUNsQyxJQUFJLE9BQU8sS0FBSyxRQUFRO29CQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3BELElBQUksT0FBTyxLQUFLLFNBQVM7b0JBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUNyRixDQUFDO1lBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGdEQUFnRCxFQUFFLENBQUM7Z0JBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDbkMsQ0FBQztZQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDbkMsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7O0FBbkZ1Qix3QkFBTSxHQUFHLElBQUksT0FBTyxFQUFtQyxBQUFqRCxDQUFrRDtBQXNGbEYsS0FBSyxVQUFVLE1BQU0sQ0FBTyxLQUFnQixFQUFFLEdBQU0sRUFBRSxPQUE2QjtJQUNqRixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgRmlsZVNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBGaWxlQXNzZXRQYWNrYWdpbmcgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgbWltZSBmcm9tICdtaW1lJztcbmltcG9ydCB7IGRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zIH0gZnJvbSAnLi9jbGllbnQtb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJUzNDbGllbnQgfSBmcm9tICcuLi8uLi9hd3MnO1xuaW1wb3J0IHR5cGUgeyBQdXRPYmplY3RDb21tYW5kSW5wdXQgfSBmcm9tICcuLi8uLi9hd3MtdHlwZXMnO1xuaW1wb3J0IHsgRXZlbnRUeXBlLCBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IHppcERpcmVjdG9yeSB9IGZyb20gJy4uL2FyY2hpdmUnO1xuaW1wb3J0IHR5cGUgeyBJQXNzZXRIYW5kbGVyLCBJSGFuZGxlckhvc3QsIFB1Ymxpc2hPcHRpb25zIH0gZnJvbSAnLi4vYXNzZXQtaGFuZGxlcic7XG5pbXBvcnQgeyBwYXRoRXhpc3RzIH0gZnJvbSAnLi4vZnMtZXh0cmEnO1xuaW1wb3J0IHsgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyB9IGZyb20gJy4uL3BsYWNlaG9sZGVycyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuLyoqXG4gKiBUaGUgc2l6ZSBvZiBhbiBlbXB0eSB6aXAgZmlsZSBpcyAyMiBieXRlc1xuICpcbiAqIFJlZjogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvWklQXyhmaWxlX2Zvcm1hdClcbiAqL1xuY29uc3QgRU1QVFlfWklQX0ZJTEVfU0laRSA9IDIyO1xuXG5leHBvcnQgY2xhc3MgRmlsZUFzc2V0SGFuZGxlciBpbXBsZW1lbnRzIElBc3NldEhhbmRsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVDYWNoZVJvb3Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBGaWxlTWFuaWZlc3RFbnRyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3Q6IElIYW5kbGVySG9zdCxcbiAgKSB7XG4gICAgdGhpcy5maWxlQ2FjaGVSb290ID0gcGF0aC5qb2luKHdvcmtEaXIsICcuY2FjaGUnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpc1B1Ymxpc2hlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGF3YWl0IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnModGhpcy5hc3NldC5kZXN0aW5hdGlvbiwgdGhpcy5ob3N0LmF3cyk7XG4gICAgY29uc3QgczNVcmwgPSBgczM6Ly8ke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9LyR7ZGVzdGluYXRpb24ub2JqZWN0S2V5fWA7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHMzID0gYXdhaXQgdGhpcy5ob3N0LmF3cy5zM0NsaWVudCh7XG4gICAgICAgIC4uLmRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zKGRlc3RpbmF0aW9uKSxcbiAgICAgICAgcXVpZXQ6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke3MzVXJsfWApO1xuXG4gICAgICBpZiAoYXdhaXQgb2JqZWN0RXhpc3RzKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lLCBkZXN0aW5hdGlvbi5vYmplY3RLZXkpKSB7XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke3MzVXJsfWApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2gob3B0aW9uczogUHVibGlzaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBzM1VybCA9IGBzMzovLyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0vJHtkZXN0aW5hdGlvbi5vYmplY3RLZXl9YDtcblxuICAgIGNvbnN0IGNsaWVudE9wdGlvbnMgPSBkZXN0aW5hdGlvblRvQ2xpZW50T3B0aW9ucyhkZXN0aW5hdGlvbik7XG4gICAgY29uc3QgczMgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLnMzQ2xpZW50KGNsaWVudE9wdGlvbnMpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke3MzVXJsfWApO1xuXG4gICAgY29uc3QgYnVja2V0SW5mbyA9IEJ1Y2tldEluZm9ybWF0aW9uLmZvcih0aGlzLmhvc3QpO1xuXG4gICAgLy8gQSB0aHVuayBmb3IgZGVzY3JpYmluZyB0aGUgY3VycmVudCBhY2NvdW50LiBVc2VkIHdoZW4gd2UgbmVlZCB0byBmb3JtYXQgYW4gZXJyb3JcbiAgICAvLyBtZXNzYWdlLCBub3QgaW4gdGhlIHN1Y2Nlc3MgY2FzZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXN5bmMgKCkgPT5cbiAgICAgIChhd2FpdCB0aGlzLmhvc3QuYXdzLmRpc2NvdmVyVGFyZ2V0QWNjb3VudChjbGllbnRPcHRpb25zKSkuYWNjb3VudElkO1xuXG4gICAgY29uc3QgYWxsb3dDcm9zc0FjY291bnQgPSBvcHRpb25zLmFsbG93Q3Jvc3NBY2NvdW50ID8/IHRydWU7XG4gICAgc3dpdGNoIChcbiAgICAgIGF3YWl0IGJ1Y2tldEluZm8uYnVja2V0T3duZXJzaGlwKFxuICAgICAgICBzMyxcbiAgICAgICAgZGVzdGluYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAgYWxsb3dDcm9zc0FjY291bnQgPyB1bmRlZmluZWQgOiBhd2FpdCBhY2NvdW50KCksXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5NSU5FOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnVja2V0T3duZXJzaGlwLkRPRVNfTk9UX0VYSVNUOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYE5vIGJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScuIElzIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9IGJvb3RzdHJhcHBlZD9gLFxuICAgICAgICApO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuTk9fQUNDRVNTOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScgZXhpc3RzLCBidXQgd2UgZG9udCBoYXZlIGFjY2VzcyB0byBpdC5gLFxuICAgICAgICApO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuU09NRU9ORV9FTFNFU19BTkRfSEFWRV9BQ0NFU1M6XG4gICAgICAgIGlmICghYWxsb3dDcm9zc0FjY291bnQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBg4p2X4p2XIFVORVhQRUNURUQgQlVDS0VUIE9XTkVSIERFVEVDVEVEIOKdl+Kdl1xuXG4gICAgICAgICAgICAgIFdlJ3ZlIGRldGVjdGVkIHRoYXQgdGhlIFMzIGJ1Y2tldCAke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9IHdhc1xuICAgICAgICAgICAgICBvcmlnaW5hbGx5IGNyZWF0ZWQgaW4gYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0gYXMgcGFydCBvZiB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgQ0RLVG9vbGtpdCxcbiAgICAgICAgICAgICAgYnV0IG5vdyByZXNpZGVzIGluIGEgZGlmZmVyZW50IEFXUyBhY2NvdW50LiBUbyBwcmV2ZW50IGNyb3NzLWFjY291bnQgYXNzZXQgYnVja2V0IGFjY2VzcyBvZiB5b3VyXG4gICAgICAgICAgICAgIGRlcGxveW1lbnRzLCBDREsgd2lsbCBzdG9wIG5vdy5cblxuICAgICAgICAgICAgICBJZiB0aGlzIHNpdHVhdGlvbiBpcyBpbnRlbnRpb25hbCBhbmQgeW91IG93biB0aGUgQVdTIGFjY291bnQgdGhhdCB0aGUgYnVja2V0IGhhcyBtb3ZlZCB0bywgcmVtb3ZlIHRoZVxuICAgICAgICAgICAgICByZXNvdXJjZSBuYW1lZCBTdGFnaW5nQnVja2V0IGZyb20gdGhlIHRlbXBsYXRlIG9mIENsb3VkRm9ybWF0aW9uIHN0YWNrIENES1Rvb2xraXQgYW5kIHRyeSBhZ2Fpbi5cblxuICAgICAgICAgICAgICBJZiB0aGlzIHNpdHVhdGlvbiBpcyBub3QgaW50ZW50aW9uYWwsIHdlIHN0cm9uZ2x5IHJlY29tbWVuZCBhdWRpdGluZyB5b3VyIGFjY291bnQgdG8gbWFrZSBzdXJlIGFsbFxuICAgICAgICAgICAgICByZXNvdXJjZXMgYXJlIGNvbmZpZ3VyZWQgdGhlIHdheSB5b3UgZXhwZWN0IHRoZW0gWzFdLiBGb3IgcXVlc3Rpb25zIG9yIGNvbmNlcm5zLCBwbGVhc2UgY29udGFjdFxuICAgICAgICAgICAgICBBV1MgU3VwcG9ydCBbMl0uXG5cbiAgICAgICAgICAgICAgWzFdIGh0dHBzOi8vcmVwb3N0LmF3cy9rbm93bGVkZ2UtY2VudGVyL3BvdGVudGlhbC1hY2NvdW50LWNvbXByb21pc2VcblxuICAgICAgICAgICAgICBbMl0gaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9zdXBwb3J0YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5mb3JjZSAmJiBhd2FpdCBvYmplY3RFeGlzdHMoczMsIGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsIGRlc3RpbmF0aW9uLm9iamVjdEtleSkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke3MzVXJsfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElkZW50aWZ5IHRoZSB0aGUgYnVja2V0IGVuY3J5cHRpb24gdHlwZSB0byBzZXQgdGhlIGhlYWRlciBvbiB1cGxvYWRcbiAgICAvLyByZXF1aXJlZCBmb3IgU0NQIHJ1bGVzIGRlbnlpbmcgdXBsb2FkcyB3aXRob3V0IGVuY3J5cHRpb24gaGVhZGVyXG4gICAgbGV0IHBhcmFtc0VuY3J5cHRpb246IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGNvbnN0IGVuY3J5cHRpb24yID0gYXdhaXQgYnVja2V0SW5mby5idWNrZXRFbmNyeXB0aW9uKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lKTtcbiAgICBzd2l0Y2ggKGVuY3J5cHRpb24yLnR5cGUpIHtcbiAgICAgIGNhc2UgJ25vX2VuY3J5cHRpb24nOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FlczI1Nic6XG4gICAgICAgIHBhcmFtc0VuY3J5cHRpb24gPSB7IFNlcnZlclNpZGVFbmNyeXB0aW9uOiAnQUVTMjU2JyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ttcyc6XG4gICAgICAgIC8vIFdlIG11c3QgaW5jbHVkZSB0aGUga2V5IElEIG90aGVyd2lzZSBTMyB3aWxsIGVuY3J5cHQgd2l0aCB0aGUgZGVmYXVsdCBrZXlcbiAgICAgICAgcGFyYW1zRW5jcnlwdGlvbiA9IHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbjogJ2F3czprbXMnLFxuICAgICAgICAgIFNTRUtNU0tleUlkOiBlbmNyeXB0aW9uMi5rbXNLZXlJZCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb2VzX25vdF9leGlzdCc6XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShcbiAgICAgICAgICBFdmVudFR5cGUuREVCVUcsXG4gICAgICAgICAgYE5vIGJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScuIElzIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9IGJvb3RzdHJhcHBlZD9gLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FjY2Vzc19kZW5pZWQnOlxuICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoXG4gICAgICAgICAgRXZlbnRUeXBlLkRFQlVHLFxuICAgICAgICAgIGBDb3VsZCBub3QgcmVhZCBlbmNyeXB0aW9uIHNldHRpbmdzIG9mIGJ1Y2tldCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfSc6IHVwbG9hZGluZyB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgKFwiY2RrIGJvb3RzdHJhcFwiIHRvIHZlcnNpb24gOSBpZiB5b3VyIG9yZ2FuaXphdGlvbidzIHBvbGljaWVzIHByZXZlbnQgYSBzdWNjZXNzZnVsIHVwbG9hZCBvciB0byBnZXQgcmlkIG9mIHRoaXMgbWVzc2FnZSkuYCxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHB1Ymxpc2hGaWxlID0gdGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZVxuICAgICAgPyBhd2FpdCB0aGlzLmV4dGVybmFsUGFja2FnZUZpbGUodGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZSlcbiAgICAgIDogYXdhaXQgdGhpcy5wYWNrYWdlRmlsZSh0aGlzLmFzc2V0LnNvdXJjZSk7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLlVQTE9BRCwgYFVwbG9hZCAke3MzVXJsfWApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICBCdWNrZXQ6IGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICAgIEtleTogZGVzdGluYXRpb24ub2JqZWN0S2V5LFxuICAgICAgICBCb2R5OiBjcmVhdGVSZWFkU3RyZWFtKHB1Ymxpc2hGaWxlLnBhY2thZ2VkUGF0aCksXG4gICAgICAgIENvbnRlbnRUeXBlOiBwdWJsaXNoRmlsZS5jb250ZW50VHlwZSxcbiAgICAgICAgQ2hlY2tzdW1BbGdvcml0aG06ICdTSEEyNTYnLFxuICAgICAgfSBzYXRpc2ZpZXMgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxuICAgICAgcGFyYW1zRW5jcnlwdGlvbixcbiAgICApO1xuXG4gICAgYXdhaXQgczMudXBsb2FkKHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBhY2thZ2VGaWxlKHNvdXJjZTogRmlsZVNvdXJjZSk6IFByb21pc2U8UGFja2FnZWRGaWxlQXNzZXQ+IHtcbiAgICBpZiAoIXNvdXJjZS5wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAncGF0aCcgaXMgZXhwZWN0ZWQgaW4gdGhlIEZpbGUgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5wYXRoKTtcblxuICAgIGlmIChzb3VyY2UucGFja2FnaW5nID09PSBGaWxlQXNzZXRQYWNrYWdpbmcuWklQX0RJUkVDVE9SWSkge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vemlwJztcblxuICAgICAgYXdhaXQgZnMubWtkaXIodGhpcy5maWxlQ2FjaGVSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IHBhY2thZ2VkUGF0aCA9IHBhdGguam9pbih0aGlzLmZpbGVDYWNoZVJvb3QsIGAke3RoaXMuYXNzZXQuaWQuYXNzZXRJZH0uemlwYCk7XG5cbiAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhY2thZ2VkUGF0aCkpIHtcbiAgICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DQUNIRUQsIGBGcm9tIGNhY2hlICR7cGFja2FnZWRQYXRofWApO1xuICAgICAgICByZXR1cm4geyBwYWNrYWdlZFBhdGgsIGNvbnRlbnRUeXBlIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBaaXAgJHtmdWxsUGF0aH0gLT4gJHtwYWNrYWdlZFBhdGh9YCk7XG4gICAgICBhd2FpdCB6aXBEaXJlY3RvcnkoZnVsbFBhdGgsIHBhY2thZ2VkUGF0aCwgKG0pID0+IHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIG0pKTtcbiAgICAgIHJldHVybiB7IHBhY2thZ2VkUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSBtaW1lLmdldFR5cGUoZnVsbFBhdGgpID8/ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nO1xuICAgICAgcmV0dXJuIHsgcGFja2FnZWRQYXRoOiBmdWxsUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dGVybmFsUGFja2FnZUZpbGUoZXhlY3V0YWJsZTogc3RyaW5nW10pOiBQcm9taXNlPFBhY2thZ2VkRmlsZUFzc2V0PiB7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5CVUlMRCwgYEJ1aWxkaW5nIGFzc2V0IHNvdXJjZSB1c2luZyBjb21tYW5kOiAnJHtleGVjdXRhYmxlfSdgKTtcblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmhvc3QuZW1pdE1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhY2thZ2VkUGF0aDogKFxuICAgICAgICBhd2FpdCBzaGVsbChleGVjdXRhYmxlLCB7IHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsIHNoZWxsRXZlbnRQdWJsaXNoZXIgfSlcbiAgICAgICkudHJpbSgpLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi96aXAnLFxuICAgIH07XG4gIH1cbn1cblxuZW51bSBCdWNrZXRPd25lcnNoaXAge1xuICBET0VTX05PVF9FWElTVCxcbiAgTUlORSxcbiAgTk9fQUNDRVNTLFxuICBTT01FT05FX0VMU0VTX0FORF9IQVZFX0FDQ0VTUyxcbn1cblxudHlwZSBCdWNrZXRFbmNyeXB0aW9uID1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdub19lbmNyeXB0aW9uJyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnYWVzMjU2JyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAna21zJzsgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdkb2VzX25vdF9leGlzdCcgfTtcblxuYXN5bmMgZnVuY3Rpb24gb2JqZWN0RXhpc3RzKHMzOiBJUzNDbGllbnQsIGJ1Y2tldDogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAvKlxuICAgKiBUaGUgb2JqZWN0IGV4aXN0ZW5jZSBjaGVjayBoZXJlIHJlZnJhaW5zIGZyb20gdXNpbmcgdGhlIGBoZWFkT2JqZWN0YCBvcGVyYXRpb24gYmVjYXVzZSB0aGlzXG4gICAqIHdvdWxkIGNyZWF0ZSBhIG5lZ2F0aXZlIGNhY2hlIGVudHJ5LCBtYWtpbmcgR0VULWFmdGVyLVBVVCBldmVudHVhbGx5IGNvbnNpc3RlbnQuIFRoaXMgaGFzIGJlZW5cbiAgICogb2JzZXJ2ZWQgdG8gcmVzdWx0IGluIENsb3VkRm9ybWF0aW9uIGlzc3VpbmcgXCJWYWxpZGF0aW9uRXJyb3I6IFMzIGVycm9yOiBBY2Nlc3MgRGVuaWVkXCIsIGZvclxuICAgKiBleGFtcGxlIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvNjQzMC5cbiAgICpcbiAgICogVG8gcHJldmVudCB0aGlzLCB3ZSBhcmUgaW5zdGVhZCB1c2luZyB0aGUgbGlzdE9iamVjdHNWMiBjYWxsLCB1c2luZyB0aGUgbG9va2VkIHVwIGtleSBhcyB0aGVcbiAgICogcHJlZml4LCBhbmQgbGltaXRpbmcgcmVzdWx0cyB0byAxLiBTaW5jZSB0aGUgbGlzdCBvcGVyYXRpb24gcmV0dXJucyBrZXlzIG9yZGVyZWQgYnkgYmluYXJ5XG4gICAqIFVURi04IHJlcHJlc2VudGF0aW9uLCB0aGUga2V5IHdlIGFyZSBsb29raW5nIGZvciBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyBiZSB0aGUgZmlyc3QgbWF0Y2hcbiAgICogcmV0dXJuZWQgaWYgaXQgZXhpc3RzLlxuICAgKlxuICAgKiBJZiB0aGUgZmlsZSBpcyB0b28gc21hbGwsIHdlIGRpc2NvdW50IGl0IGFzIGEgY2FjaGUgaGl0LiBUaGVyZSBpcyBhbiBpc3N1ZVxuICAgKiBzb21ld2hlcmUgdGhhdCBzb21ldGltZXMgcHJvZHVjZXMgZW1wdHkgemlwIGZpbGVzLCBhbmQgd2Ugd291bGQgb3RoZXJ3aXNlXG4gICAqIG5ldmVyIHJldHJ5IGJ1aWxkaW5nIHRob3NlIGFzc2V0cyB3aXRob3V0IHVzZXJzIGhhdmluZyB0byBtYW51YWxseSBjbGVhclxuICAgKiB0aGVpciBidWNrZXQsIHdoaWNoIGlzIGEgYmFkIGV4cGVyaWVuY2UuXG4gICAqL1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHMzLmxpc3RPYmplY3RzVjIoe1xuICAgIEJ1Y2tldDogYnVja2V0LFxuICAgIFByZWZpeDoga2V5LFxuICAgIE1heEtleXM6IDEsXG4gIH0pO1xuICByZXR1cm4gKFxuICAgIHJlc3BvbnNlLkNvbnRlbnRzICE9IG51bGwgJiZcbiAgICByZXNwb25zZS5Db250ZW50cy5zb21lKFxuICAgICAgKG9iamVjdCkgPT4gb2JqZWN0LktleSA9PT0ga2V5ICYmIChvYmplY3QuU2l6ZSA9PSBudWxsIHx8IG9iamVjdC5TaXplID4gRU1QVFlfWklQX0ZJTEVfU0laRSksXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEEgcGFja2FnZWQgYXNzZXQgd2hpY2ggY2FuIGJlIHVwbG9hZGVkIChlaXRoZXIgYSBzaW5nbGUgZmlsZSBvciBkaXJlY3RvcnkpXG4gKi9cbmludGVyZmFjZSBQYWNrYWdlZEZpbGVBc3NldCB7XG4gIC8qKlxuICAgKiBQYXRoIG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZWRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnRlbnQgdHlwZSB0byBiZSBhZGRlZCBpbiB0aGUgUzMgdXBsb2FkIGFjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNvbnRlbnQgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FjaGUgZm9yIGJ1Y2tldCBpbmZvcm1hdGlvbiwgc28gd2UgZG9uJ3QgaGF2ZSB0byBrZWVwIGRvaW5nIHRoZSBzYW1lIGNhbGxzIGFnYWluIGFuZCBhZ2FpblxuICpcbiAqIFdlIHNjb3BlIHRoZSBsaWZldGltZSBvZiB0aGUgY2FjaGUgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBob3N0LCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gZG9cbiAqIGFueXRoaW5nIHNwZWNpYWwgZm9yIHRlc3RzIGFuZCB5ZXQgdGhlIGNhY2hlIHdpbGwgbGl2ZSBmb3IgdGhlIGVudGlyZSBsaWZldGltZSBvZiB0aGUgYXNzZXRcbiAqIHVwbG9hZCBzZXNzaW9uIHdoZW4gdXNlZCBieSB0aGUgQ0xJLlxuICovXG5jbGFzcyBCdWNrZXRJbmZvcm1hdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yKGhvc3Q6IElIYW5kbGVySG9zdCkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gQnVja2V0SW5mb3JtYXRpb24uY2FjaGVzLmdldChob3N0KTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG5cbiAgICBjb25zdCBmcmVzaCA9IG5ldyBCdWNrZXRJbmZvcm1hdGlvbigpO1xuICAgIEJ1Y2tldEluZm9ybWF0aW9uLmNhY2hlcy5zZXQoaG9zdCwgZnJlc2gpO1xuICAgIHJldHVybiBmcmVzaDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNhY2hlcyA9IG5ldyBXZWFrTWFwPElIYW5kbGVySG9zdCwgQnVja2V0SW5mb3JtYXRpb24+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvd25lcnNoaXBzID0gbmV3IE1hcDxzdHJpbmcsIEJ1Y2tldE93bmVyc2hpcD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBCdWNrZXRFbmNyeXB0aW9uPigpO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYnVja2V0T3duZXJzaGlwKFxuICAgIHMzOiBJUzNDbGllbnQsXG4gICAgYnVja2V0OiBzdHJpbmcsXG4gICAgZXhwZWN0ZWRBY2NvdW50Pzogc3RyaW5nLFxuICApOiBQcm9taXNlPEJ1Y2tldE93bmVyc2hpcD4ge1xuICAgIHJldHVybiBjYWNoZWQodGhpcy5vd25lcnNoaXBzLCBidWNrZXQsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGFueUFjY291bnQgPSBhd2FpdCB0aGlzLl9idWNrZXRPd25lcnNoaXAoczMsIGJ1Y2tldCk7XG5cbiAgICAgIHN3aXRjaCAoYW55QWNjb3VudCkge1xuICAgICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5NSU5FOlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV4cGVjdGVkQWNjb3VudCAmJlxuICAgICAgICAgICAgKGF3YWl0IHRoaXMuX2J1Y2tldE93bmVyc2hpcChzMywgYnVja2V0LCBleHBlY3RlZEFjY291bnQpKSA9PT0gQnVja2V0T3duZXJzaGlwLk5PX0FDQ0VTU1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gaWYgdGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIE1JTkUgYW5kIE5PX0FDQ0VTUyBpcyB0aGUgZXhwZWN0ZWQgYWNjb3VudCxcbiAgICAgICAgICAgIC8vIHRoZW4gaXRzIGRlZmluaXRlbHkgc29tZW9uZSBlbHNlJ3MgYnVja2V0LlxuICAgICAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5TT01FT05FX0VMU0VTX0FORF9IQVZFX0FDQ0VTUztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5NSU5FO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBhbnlBY2NvdW50O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1Y2tldEVuY3J5cHRpb24oczM6IElTM0NsaWVudCwgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldEVuY3J5cHRpb24+IHtcbiAgICByZXR1cm4gY2FjaGVkKHRoaXMuZW5jcnlwdGlvbnMsIGJ1Y2tldCwgKCkgPT4gdGhpcy5fYnVja2V0RW5jcnlwdGlvbihzMywgYnVja2V0KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9idWNrZXRPd25lcnNoaXAoXG4gICAgczM6IElTM0NsaWVudCxcbiAgICBidWNrZXQ6IHN0cmluZyxcbiAgICBhY2NvdW50Pzogc3RyaW5nLFxuICApOiBQcm9taXNlPEJ1Y2tldE93bmVyc2hpcC5NSU5FIHwgQnVja2V0T3duZXJzaGlwLkRPRVNfTk9UX0VYSVNUIHwgQnVja2V0T3duZXJzaGlwLk5PX0FDQ0VTUz4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzMy5nZXRCdWNrZXRMb2NhdGlvbih7IEJ1Y2tldDogYnVja2V0LCBFeHBlY3RlZEJ1Y2tldE93bmVyOiBhY2NvdW50IH0pO1xuICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5NSU5FO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubmFtZSA9PT0gJ05vU3VjaEJ1Y2tldCcpIHtcbiAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5ET0VTX05PVF9FWElTVDtcbiAgICAgIH1cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5OT19BQ0NFU1M7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2J1Y2tldEVuY3J5cHRpb24oczM6IElTM0NsaWVudCwgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldEVuY3J5cHRpb24+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZW5jcnlwdGlvbiA9IGF3YWl0IHMzLmdldEJ1Y2tldEVuY3J5cHRpb24oeyBCdWNrZXQ6IGJ1Y2tldCB9KTtcbiAgICAgIGNvbnN0IGwgPSBlbmNyeXB0aW9uPy5TZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24/LlJ1bGVzPy5sZW5ndGggPz8gMDtcbiAgICAgIGlmIChsID4gMCkge1xuICAgICAgICBjb25zdCBhcHBseSA9XG4gICAgICAgICAgZW5jcnlwdGlvbj8uU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uPy5SdWxlcz8uYXQoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICk/LkFwcGx5U2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ7XG4gICAgICAgIGxldCBzc2VhbGdvID0gYXBwbHk/LlNTRUFsZ29yaXRobTtcbiAgICAgICAgaWYgKHNzZWFsZ28gPT09ICdBRVMyNTYnKSByZXR1cm4geyB0eXBlOiAnYWVzMjU2JyB9O1xuICAgICAgICBpZiAoc3NlYWxnbyA9PT0gJ2F3czprbXMnKSByZXR1cm4geyB0eXBlOiAna21zJywga21zS2V5SWQ6IGFwcGx5Py5LTVNNYXN0ZXJLZXlJRCB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdHlwZTogJ25vX2VuY3J5cHRpb24nIH07XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnTm9TdWNoQnVja2V0Jykge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnZG9lc19ub3RfZXhpc3QnIH07XG4gICAgICB9XG4gICAgICBpZiAoZS5uYW1lID09PSAnU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uTm90Rm91bmRFcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ25vX2VuY3J5cHRpb24nIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2FjaGVkPEEsIEI+KGNhY2hlOiBNYXA8QSwgQj4sIGtleTogQSwgZmFjdG9yeTogKHg6IEEpID0+IFByb21pc2U8Qj4pOiBQcm9taXNlPEI+IHtcbiAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChrZXkpITtcbiAgfVxuXG4gIGNvbnN0IGZyZXNoID0gYXdhaXQgZmFjdG9yeShrZXkpO1xuICBjYWNoZS5zZXQoa2V5LCBmcmVzaCk7XG4gIHJldHVybiBmcmVzaDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeAssetHandler = makeAssetHandler;\nconst container_images_1 = require(\"./container-images\");\nconst files_1 = require(\"./files\");\nconst asset_manifest_1 = require(\"../../asset-manifest\");\nfunction makeAssetHandler(manifest, asset, host, options) {\n if (asset instanceof asset_manifest_1.FileManifestEntry) {\n return new files_1.FileAssetHandler(manifest.directory, asset, host);\n }\n if (asset instanceof asset_manifest_1.DockerImageManifestEntry) {\n return new container_images_1.ContainerImageAssetHandler(manifest.directory, asset, host, options);\n }\n throw new Error(`Unrecognized asset type: '${asset}'`);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLDRDQWNDO0FBeEJELHlEQUFnRTtBQUNoRSxtQ0FBMkM7QUFDM0MseURBSzhCO0FBRzlCLFNBQWdCLGdCQUFnQixDQUM5QixRQUF1QixFQUN2QixLQUFxQixFQUNyQixJQUFrQixFQUNsQixPQUF3QjtJQUV4QixJQUFJLEtBQUssWUFBWSxrQ0FBaUIsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBSSxLQUFLLFlBQVkseUNBQXdCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksNkNBQTBCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlciB9IGZyb20gJy4vY29udGFpbmVyLWltYWdlcyc7XG5pbXBvcnQgeyBGaWxlQXNzZXRIYW5kbGVyIH0gZnJvbSAnLi9maWxlcyc7XG5pbXBvcnQge1xuICB0eXBlIEFzc2V0TWFuaWZlc3QsXG4gIERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSxcbiAgRmlsZU1hbmlmZXN0RW50cnksXG4gIHR5cGUgSU1hbmlmZXN0RW50cnksXG59IGZyb20gJy4uLy4uL2Fzc2V0LW1hbmlmZXN0JztcbmltcG9ydCB0eXBlIHsgSUFzc2V0SGFuZGxlciwgSUhhbmRsZXJIb3N0LCBJSGFuZGxlck9wdGlvbnMgfSBmcm9tICcuLi9hc3NldC1oYW5kbGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VBc3NldEhhbmRsZXIoXG4gIG1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LFxuICBhc3NldDogSU1hbmlmZXN0RW50cnksXG4gIGhvc3Q6IElIYW5kbGVySG9zdCxcbiAgb3B0aW9uczogSUhhbmRsZXJPcHRpb25zLFxuKTogSUFzc2V0SGFuZGxlciB7XG4gIGlmIChhc3NldCBpbnN0YW5jZW9mIEZpbGVNYW5pZmVzdEVudHJ5KSB7XG4gICAgcmV0dXJuIG5ldyBGaWxlQXNzZXRIYW5kbGVyKG1hbmlmZXN0LmRpcmVjdG9yeSwgYXNzZXQsIGhvc3QpO1xuICB9XG4gIGlmIChhc3NldCBpbnN0YW5jZW9mIERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSkge1xuICAgIHJldHVybiBuZXcgQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXIobWFuaWZlc3QuZGlyZWN0b3J5LCBhc3NldCwgaG9zdCwgb3B0aW9ucyk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBhc3NldCB0eXBlOiAnJHthc3NldH0nYCk7XG59XG4iXX0=","\"use strict\";\n/**\n * A minimal of p-limit that does not bring in new dependencies, and is not ESM.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pLimit = pLimit;\nfunction pLimit(concurrency) {\n const queue = [];\n let activeCount = 0;\n let stopped = false;\n function dispatch() {\n if (activeCount < concurrency && queue.length > 0) {\n const [fac, resolve, reject] = queue.shift();\n activeCount++;\n fac().then((r) => {\n // Start a new job before reporting back on the previous one\n resumeNext();\n resolve(r);\n }, (e) => {\n // Start a new job before reporting back on the previous one\n resumeNext();\n reject(e);\n });\n }\n }\n function resumeNext() {\n activeCount--;\n if (stopped) {\n for (const [_, __, reject] of queue) {\n reject(new Error('Task has been cancelled'));\n }\n queue.splice(0, queue.length);\n }\n dispatch();\n }\n const ret = (promiseFactory) => {\n return new Promise((resolve, reject) => {\n queue.push([promiseFactory, resolve, reject]);\n dispatch();\n });\n };\n Object.defineProperties(ret, {\n dispose: {\n value: () => {\n stopped = true;\n },\n },\n });\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC1saW1pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInAtbGltaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQUlILHdCQWtEQztBQWxERCxTQUFnQixNQUFNLENBQUMsV0FBbUI7SUFDeEMsTUFBTSxLQUFLLEdBQTJFLEVBQUUsQ0FBQztJQUN6RixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXBCLFNBQVMsUUFBUTtRQUNmLElBQUksV0FBVyxHQUFHLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUcsQ0FBQztZQUM5QyxXQUFXLEVBQUUsQ0FBQztZQUNkLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDUixDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNKLDREQUE0RDtnQkFDNUQsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxFQUNELENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0osNERBQTREO2dCQUM1RCxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDWixDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsQ0FBSSxjQUFpQyxFQUFFLEVBQUU7UUFDbkQsT0FBTyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzlDLFFBQVEsRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1FBQzNCLE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNqQixDQUFDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLEdBQWEsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIG1pbmltYWwgIG9mIHAtbGltaXQgdGhhdCBkb2VzIG5vdCBicmluZyBpbiBuZXcgZGVwZW5kZW5jaWVzLCBhbmQgaXMgbm90IEVTTS5cbiAqL1xuXG50eXBlIFByb21pc2VGYWN0b3J5PEE+ID0gKCkgPT4gUHJvbWlzZTxBPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBMaW1pdChjb25jdXJyZW5jeTogbnVtYmVyKTogUExpbWl0IHtcbiAgY29uc3QgcXVldWU6IEFycmF5PFtQcm9taXNlRmFjdG9yeTxhbnk+LCAoeDogYW55KSA9PiB2b2lkLCAocmVhc29uPzogYW55KSA9PiB2b2lkXT4gPSBbXTtcbiAgbGV0IGFjdGl2ZUNvdW50ID0gMDtcbiAgbGV0IHN0b3BwZWQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiBkaXNwYXRjaCgpIHtcbiAgICBpZiAoYWN0aXZlQ291bnQgPCBjb25jdXJyZW5jeSAmJiBxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBbZmFjLCByZXNvbHZlLCByZWplY3RdID0gcXVldWUuc2hpZnQoKSE7XG4gICAgICBhY3RpdmVDb3VudCsrO1xuICAgICAgZmFjKCkudGhlbihcbiAgICAgICAgKHIpID0+IHtcbiAgICAgICAgICAvLyBTdGFydCBhIG5ldyBqb2IgYmVmb3JlIHJlcG9ydGluZyBiYWNrIG9uIHRoZSBwcmV2aW91cyBvbmVcbiAgICAgICAgICByZXN1bWVOZXh0KCk7XG4gICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAvLyBTdGFydCBhIG5ldyBqb2IgYmVmb3JlIHJlcG9ydGluZyBiYWNrIG9uIHRoZSBwcmV2aW91cyBvbmVcbiAgICAgICAgICByZXN1bWVOZXh0KCk7XG4gICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZXN1bWVOZXh0KCkge1xuICAgIGFjdGl2ZUNvdW50LS07XG4gICAgaWYgKHN0b3BwZWQpIHtcbiAgICAgIGZvciAoY29uc3QgW18sIF9fLCByZWplY3RdIG9mIHF1ZXVlKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Rhc2sgaGFzIGJlZW4gY2FuY2VsbGVkJykpO1xuICAgICAgfVxuICAgICAgcXVldWUuc3BsaWNlKDAsIHF1ZXVlLmxlbmd0aCk7XG4gICAgfVxuICAgIGRpc3BhdGNoKCk7XG4gIH1cblxuICBjb25zdCByZXQgPSA8QT4ocHJvbWlzZUZhY3Rvcnk6IFByb21pc2VGYWN0b3J5PEE+KSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEE+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHF1ZXVlLnB1c2goW3Byb21pc2VGYWN0b3J5LCByZXNvbHZlLCByZWplY3RdKTtcbiAgICAgIGRpc3BhdGNoKCk7XG4gICAgfSk7XG4gIH07XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJldCwge1xuICAgIGRpc3Bvc2U6IHtcbiAgICAgIHZhbHVlOiAoKSA9PiB7XG4gICAgICAgIHN0b3BwZWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gcmV0IGFzIFBMaW1pdDtcbn1cblxuaW50ZXJmYWNlIFBMaW1pdCB7XG4gIGRpc3Bvc2UoKTogdm9pZDtcbiAgPEE+KHByb21pc2VGYWN0b3J5OiBQcm9taXNlRmFjdG9yeTxBPik6IFByb21pc2U8QT47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceAwsPlaceholders = replaceAwsPlaceholders;\nconst cx_api_1 = require(\"@aws-cdk/cx-api\");\n/**\n * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\nasync function replaceAwsPlaceholders(object, aws) {\n let partition = async () => {\n const p = await aws.discoverPartition();\n partition = () => Promise.resolve(p);\n return p;\n };\n let account = async () => {\n const a = await aws.discoverCurrentAccount();\n account = () => Promise.resolve(a);\n return a;\n };\n return cx_api_1.EnvironmentPlaceholders.replaceAsync(object, {\n async region() {\n return object.region ?? aws.discoverDefaultRegion();\n },\n async accountId() {\n return (await account()).accountId;\n },\n async partition() {\n return partition();\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esd0RBMkJDO0FBcENELDRDQUEwRDtBQUcxRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsTUFBUyxFQUNULEdBQVM7SUFFVCxJQUFJLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRTtRQUN6QixNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDO0lBRUYsSUFBSSxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsTUFBTSxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM3QyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQztJQUVGLE9BQU8sZ0NBQXVCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtRQUNsRCxLQUFLLENBQUMsTUFBTTtZQUNWLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVM7WUFDYixPQUFPLENBQUMsTUFBTSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVM7WUFDYixPQUFPLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMgfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBJQXdzIH0gZnJvbSAnLi4vYXdzJztcblxuLyoqXG4gKiBSZXBsYWNlIHRoZSB7QUNDT1VOVH0gYW5kIHtSRUdJT059IHBsYWNlaG9sZGVycyBpbiBhbGwgc3RyaW5ncyBmb3VuZCBpbiBhIGNvbXBsZXggb2JqZWN0LlxuICpcbiAqIER1cGxpY2F0ZWQgYmV0d2VlbiBjZGstYXNzZXRzIGFuZCBhd3MtY2RrIENMSSBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSBnb29kIHNpbmdsZSBwbGFjZSB0byBwdXQgaXRcbiAqICh0aGV5J3JlIG5vbWluYWxseSBpbmRlcGVuZGVudCB0b29scykuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBsYWNlQXdzUGxhY2Vob2xkZXJzPEEgZXh0ZW5kcyB7IHJlZ2lvbj86IHN0cmluZyB9PihcbiAgb2JqZWN0OiBBLFxuICBhd3M6IElBd3MsXG4pOiBQcm9taXNlPEE+IHtcbiAgbGV0IHBhcnRpdGlvbiA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwID0gYXdhaXQgYXdzLmRpc2NvdmVyUGFydGl0aW9uKCk7XG4gICAgcGFydGl0aW9uID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHApO1xuICAgIHJldHVybiBwO1xuICB9O1xuXG4gIGxldCBhY2NvdW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGEgPSBhd2FpdCBhd3MuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpO1xuICAgIGFjY291bnQgPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoYSk7XG4gICAgcmV0dXJuIGE7XG4gIH07XG5cbiAgcmV0dXJuIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLnJlcGxhY2VBc3luYyhvYmplY3QsIHtcbiAgICBhc3luYyByZWdpb24oKSB7XG4gICAgICByZXR1cm4gb2JqZWN0LnJlZ2lvbiA/PyBhd3MuZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk7XG4gICAgfSxcbiAgICBhc3luYyBhY2NvdW50SWQoKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IGFjY291bnQoKSkuYWNjb3VudElkO1xuICAgIH0sXG4gICAgYXN5bmMgcGFydGl0aW9uKCkge1xuICAgICAgcmV0dXJuIHBhcnRpdGlvbigpO1xuICAgIH0sXG4gIH0pO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shell = shell;\nconst child_process = require(\"child_process\");\n/**\n * OS helpers\n *\n * Shell function which both prints to stdout and collects the output into a\n * string.\n */\nasync function shell(command, options) {\n handleShellOutput(renderCommandLine(command), options, 'open');\n const child = child_process.spawn(command[0], command.slice(1), {\n ...options,\n stdio: [options.input ? 'pipe' : 'ignore', 'pipe', 'pipe'],\n });\n return new Promise((resolve, reject) => {\n if (options.input) {\n child.stdin.write(options.input);\n child.stdin.end();\n }\n const stdout = new Array();\n const stderr = new Array();\n // Both emit event and collect output\n child.stdout.on('data', (chunk) => {\n handleShellOutput(chunk, options, 'data_stdout');\n stdout.push(chunk);\n });\n child.stderr.on('data', (chunk) => {\n handleShellOutput(chunk, options, 'data_stderr');\n stderr.push(chunk);\n });\n child.once('error', reject);\n child.once('close', (code, signal) => {\n handleShellOutput(renderCommandLine(command), options, 'close');\n if (code === 0) {\n resolve(Buffer.concat(stdout).toString('utf-8'));\n }\n else {\n const out = Buffer.concat(stderr).toString('utf-8').trim();\n reject(new ProcessFailed(code, signal, `${renderCommandLine(command)} exited with ${code != null ? 'error code' : 'signal'} ${code ?? signal}: ${out}`));\n }\n });\n });\n}\nfunction handleShellOutput(chunk, options, shellEventType) {\n switch (options.subprocessOutputDestination) {\n case 'ignore':\n return;\n case 'publish':\n options.shellEventPublisher(shellEventType, chunk.toString('utf-8'));\n break;\n case 'stdio':\n default:\n switch (shellEventType) {\n case 'data_stdout':\n process.stdout.write(chunk);\n break;\n case 'data_stderr':\n process.stderr.write(chunk);\n break;\n case 'open':\n options.shellEventPublisher(shellEventType, chunk.toString('utf-8'));\n break;\n }\n break;\n }\n}\nclass ProcessFailed extends Error {\n constructor(exitCode, signal, message) {\n super(message);\n this.exitCode = exitCode;\n this.signal = signal;\n this.code = 'PROCESS_FAILED';\n }\n}\n/**\n * Render the given command line as a string\n *\n * Probably missing some cases but giving it a good effort.\n */\nfunction renderCommandLine(cmd) {\n if (process.platform !== 'win32') {\n return doRender(cmd, hasAnyChars(' ', '\\\\', '!', '\"', \"'\", '&', '$'), posixEscape);\n }\n else {\n return doRender(cmd, hasAnyChars(' ', '\"', '&', '^', '%'), windowsEscape);\n }\n}\n/**\n * Render a UNIX command line\n */\nfunction doRender(cmd, needsEscaping, doEscape) {\n return cmd.map((x) => (needsEscaping(x) ? doEscape(x) : x)).join(' ');\n}\n/**\n * Return a predicate that checks if a string has any of the indicated chars in it\n */\nfunction hasAnyChars(...chars) {\n return (str) => {\n return chars.some((c) => str.indexOf(c) !== -1);\n };\n}\n/**\n * Escape a shell argument for POSIX shells\n *\n * Wrapping in single quotes and escaping single quotes inside will do it for us.\n */\nfunction posixEscape(x) {\n // Turn ' -> '\"'\"'\n x = x.replace(/'/g, \"'\\\"'\\\"'\");\n return `'${x}'`;\n}\n/**\n * Escape a shell argument for cmd.exe\n *\n * This is how to do it right, but I'm not following everything:\n *\n * https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/\n */\nfunction windowsEscape(x) {\n // First surround by double quotes, ignore the part about backslashes\n x = `\"${x}\"`;\n // Now escape all special characters\n const shellMeta = new Set(['\"', '&', '^', '%']);\n return x\n .split('')\n .map((c) => (shellMeta.has(x) ? '^' + c : c))\n .join('');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSxzQkE2Q0M7QUFoRUQsK0NBQStDO0FBYS9DOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLEtBQUssQ0FBQyxPQUFpQixFQUFFLE9BQXFCO0lBQ2xFLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlELEdBQUcsT0FBTztRQUNWLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDM0QsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUM3QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsS0FBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsS0FBSyxDQUFDLEtBQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQU8sQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBTyxDQUFDO1FBRWhDLHFDQUFxQztRQUNyQyxLQUFLLENBQUMsTUFBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lB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SUFDOUIscUVBQXFFO0lBQ3JFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2Isb0NBQW9DO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUM7U0FDTCxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHR5cGUgeyBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gfSBmcm9tICcuL2Fzc2V0LWhhbmRsZXInO1xuXG5leHBvcnQgdHlwZSBTaGVsbEV2ZW50VHlwZSA9ICdvcGVuJyB8ICdkYXRhX3N0ZG91dCcgfCAnZGF0YV9zdGRlcnInIHwgJ2Nsb3NlJztcblxuZXhwb3J0IHR5cGUgU2hlbGxFdmVudFB1Ymxpc2hlciA9IChldmVudDogU2hlbGxFdmVudFR5cGUsIG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBTaGVsbE9wdGlvbnMgZXh0ZW5kcyBjaGlsZF9wcm9jZXNzLlNwYXduT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNoZWxsRXZlbnRQdWJsaXNoZXI6IFNoZWxsRXZlbnRQdWJsaXNoZXI7XG4gIHJlYWRvbmx5IGlucHV0Pzogc3RyaW5nO1xuICByZWFkb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24/OiBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb247XG59XG5cbi8qKlxuICogT1MgaGVscGVyc1xuICpcbiAqIFNoZWxsIGZ1bmN0aW9uIHdoaWNoIGJvdGggcHJpbnRzIHRvIHN0ZG91dCBhbmQgY29sbGVjdHMgdGhlIG91dHB1dCBpbnRvIGFcbiAqIHN0cmluZy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKGNvbW1hbmQ6IHN0cmluZ1tdLCBvcHRpb25zOiBTaGVsbE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBoYW5kbGVTaGVsbE91dHB1dChyZW5kZXJDb21tYW5kTGluZShjb21tYW5kKSwgb3B0aW9ucywgJ29wZW4nKTtcbiAgY29uc3QgY2hpbGQgPSBjaGlsZF9wcm9jZXNzLnNwYXduKGNvbW1hbmRbMF0sIGNvbW1hbmQuc2xpY2UoMSksIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIHN0ZGlvOiBbb3B0aW9ucy5pbnB1dCA/ICdwaXBlJyA6ICdpZ25vcmUnLCAncGlwZScsICdwaXBlJ10sXG4gIH0pO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAob3B0aW9ucy5pbnB1dCkge1xuICAgICAgY2hpbGQuc3RkaW4hLndyaXRlKG9wdGlvbnMuaW5wdXQpO1xuICAgICAgY2hpbGQuc3RkaW4hLmVuZCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZG91dCA9IG5ldyBBcnJheTxhbnk+KCk7XG4gICAgY29uc3Qgc3RkZXJyID0gbmV3IEFycmF5PGFueT4oKTtcblxuICAgIC8vIEJvdGggZW1pdCBldmVudCBhbmQgY29sbGVjdCBvdXRwdXRcbiAgICBjaGlsZC5zdGRvdXQhLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICBoYW5kbGVTaGVsbE91dHB1dChjaHVuaywgb3B0aW9ucywgJ2RhdGFfc3Rkb3V0Jyk7XG4gICAgICBzdGRvdXQucHVzaChjaHVuayk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIhLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICBoYW5kbGVTaGVsbE91dHB1dChjaHVuaywgb3B0aW9ucywgJ2RhdGFfc3RkZXJyJyk7XG4gICAgICBzdGRlcnIucHVzaChjaHVuayk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5vbmNlKCdlcnJvcicsIHJlamVjdCk7XG5cbiAgICBjaGlsZC5vbmNlKCdjbG9zZScsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIGhhbmRsZVNoZWxsT3V0cHV0KHJlbmRlckNvbW1hbmRMaW5lKGNvbW1hbmQpLCBvcHRpb25zLCAnY2xvc2UnKTtcbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIHJlc29sdmUoQnVmZmVyLmNvbmNhdChzdGRvdXQpLnRvU3RyaW5nKCd1dGYtOCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG91dCA9IEJ1ZmZlci5jb25jYXQoc3RkZXJyKS50b1N0cmluZygndXRmLTgnKS50cmltKCk7XG4gICAgICAgIHJlamVjdChcbiAgICAgICAgICBuZXcgUHJvY2Vzc0ZhaWxlZChcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzaWduYWwsXG4gICAgICAgICAgICBgJHtyZW5kZXJDb21tYW5kTGluZShjb21tYW5kKX0gZXhpdGVkIHdpdGggJHtjb2RlICE9IG51bGwgPyAnZXJyb3IgY29kZScgOiAnc2lnbmFsJ30gJHtjb2RlID8/IHNpZ25hbH06ICR7b3V0fWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVNoZWxsT3V0cHV0KFxuICBjaHVuazogQnVmZmVyIHwgc3RyaW5nLFxuICBvcHRpb25zOiBTaGVsbE9wdGlvbnMsXG4gIHNoZWxsRXZlbnRUeXBlOiBTaGVsbEV2ZW50VHlwZSxcbik6IHZvaWQge1xuICBzd2l0Y2ggKG9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uKSB7XG4gICAgY2FzZSAnaWdub3JlJzpcbiAgICAgIHJldHVybjtcbiAgICBjYXNlICdwdWJsaXNoJzpcbiAgICAgIG9wdGlvbnMuc2hlbGxFdmVudFB1Ymxpc2hlcihzaGVsbEV2ZW50VHlwZSwgY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RkaW8nOlxuICAgIGRlZmF1bHQ6XG4gICAgICBzd2l0Y2ggKHNoZWxsRXZlbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGFfc3Rkb3V0JzpcbiAgICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShjaHVuayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RhdGFfc3RkZXJyJzpcbiAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaHVuayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29wZW4nOlxuICAgICAgICAgIG9wdGlvbnMuc2hlbGxFdmVudFB1Ymxpc2hlcihzaGVsbEV2ZW50VHlwZSwgY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cbn1cbmV4cG9ydCB0eXBlIFByb2Nlc3NGYWlsZWRFcnJvciA9IFByb2Nlc3NGYWlsZWQ7XG5cbmNsYXNzIFByb2Nlc3NGYWlsZWQgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBjb2RlID0gJ1BST0NFU1NfRkFJTEVEJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXhpdENvZGU6IG51bWJlciB8IG51bGwsXG4gICAgcHVibGljIHJlYWRvbmx5IHNpZ25hbDogTm9kZUpTLlNpZ25hbHMgfCBudWxsLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGdpdmVuIGNvbW1hbmQgbGluZSBhcyBhIHN0cmluZ1xuICpcbiAqIFByb2JhYmx5IG1pc3Npbmcgc29tZSBjYXNlcyBidXQgZ2l2aW5nIGl0IGEgZ29vZCBlZmZvcnQuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlckNvbW1hbmRMaW5lKGNtZDogc3RyaW5nW10pIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gIT09ICd3aW4zMicpIHtcbiAgICByZXR1cm4gZG9SZW5kZXIoY21kLCBoYXNBbnlDaGFycygnICcsICdcXFxcJywgJyEnLCAnXCInLCBcIidcIiwgJyYnLCAnJCcpLCBwb3NpeEVzY2FwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGRvUmVuZGVyKGNtZCwgaGFzQW55Q2hhcnMoJyAnLCAnXCInLCAnJicsICdeJywgJyUnKSwgd2luZG93c0VzY2FwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBVTklYIGNvbW1hbmQgbGluZVxuICovXG5mdW5jdGlvbiBkb1JlbmRlcihcbiAgY21kOiBzdHJpbmdbXSxcbiAgbmVlZHNFc2NhcGluZzogKHg6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgZG9Fc2NhcGU6ICh4OiBzdHJpbmcpID0+IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIHJldHVybiBjbWQubWFwKCh4KSA9PiAobmVlZHNFc2NhcGluZyh4KSA/IGRvRXNjYXBlKHgpIDogeCkpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBwcmVkaWNhdGUgdGhhdCBjaGVja3MgaWYgYSBzdHJpbmcgaGFzIGFueSBvZiB0aGUgaW5kaWNhdGVkIGNoYXJzIGluIGl0XG4gKi9cbmZ1bmN0aW9uIGhhc0FueUNoYXJzKC4uLmNoYXJzOiBzdHJpbmdbXSk6ICh4OiBzdHJpbmcpID0+IGJvb2xlYW4ge1xuICByZXR1cm4gKHN0cjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGNoYXJzLnNvbWUoKGMpID0+IHN0ci5pbmRleE9mKGMpICE9PSAtMSk7XG4gIH07XG59XG5cbi8qKlxuICogRXNjYXBlIGEgc2hlbGwgYXJndW1lbnQgZm9yIFBPU0lYIHNoZWxsc1xuICpcbiAqIFdyYXBwaW5nIGluIHNpbmdsZSBxdW90ZXMgYW5kIGVzY2FwaW5nIHNpbmdsZSBxdW90ZXMgaW5zaWRlIHdpbGwgZG8gaXQgZm9yIHVzLlxuICovXG5mdW5jdGlvbiBwb3NpeEVzY2FwZSh4OiBzdHJpbmcpIHtcbiAgLy8gVHVybiAnIC0+ICdcIidcIidcbiAgeCA9IHgucmVwbGFjZSgvJy9nLCBcIidcXFwiJ1xcXCInXCIpO1xuICByZXR1cm4gYCcke3h9J2A7XG59XG5cbi8qKlxuICogRXNjYXBlIGEgc2hlbGwgYXJndW1lbnQgZm9yIGNtZC5leGVcbiAqXG4gKiBUaGlzIGlzIGhvdyB0byBkbyBpdCByaWdodCwgYnV0IEknbSBub3QgZm9sbG93aW5nIGV2ZXJ5dGhpbmc6XG4gKlxuICogaHR0cHM6Ly9ibG9ncy5tc2RuLm1pY3Jvc29mdC5jb20vdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS8yMDExLzA0LzIzL2V2ZXJ5b25lLXF1b3Rlcy1jb21tYW5kLWxpbmUtYXJndW1lbnRzLXRoZS13cm9uZy13YXkvXG4gKi9cbmZ1bmN0aW9uIHdpbmRvd3NFc2NhcGUoeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gRmlyc3Qgc3Vycm91bmQgYnkgZG91YmxlIHF1b3RlcywgaWdub3JlIHRoZSBwYXJ0IGFib3V0IGJhY2tzbGFzaGVzXG4gIHggPSBgXCIke3h9XCJgO1xuICAvLyBOb3cgZXNjYXBlIGFsbCBzcGVjaWFsIGNoYXJhY3RlcnNcbiAgY29uc3Qgc2hlbGxNZXRhID0gbmV3IFNldDxzdHJpbmc+KFsnXCInLCAnJicsICdeJywgJyUnXSk7XG4gIHJldHVybiB4XG4gICAgLnNwbGl0KCcnKVxuICAgIC5tYXAoKGMpID0+IChzaGVsbE1ldGEuaGFzKHgpID8gJ14nICsgYyA6IGMpKVxuICAgIC5qb2luKCcnKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCriticalSection = createCriticalSection;\n/**\n * Creates a critical section, ensuring that at most one function can\n * enter the critical section at a time.\n */\nfunction createCriticalSection() {\n let lock = Promise.resolve();\n return async (criticalFunction) => {\n const res = lock.then(() => criticalFunction());\n lock = res.catch((e) => e);\n return res;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzREFPQztBQVhEOzs7R0FHRztBQUNILFNBQWdCLHFCQUFxQjtJQUNuQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsT0FBTyxLQUFLLEVBQUUsZ0JBQXFDLEVBQUUsRUFBRTtRQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGVzIGEgY3JpdGljYWwgc2VjdGlvbiwgZW5zdXJpbmcgdGhhdCBhdCBtb3N0IG9uZSBmdW5jdGlvbiBjYW5cbiAqIGVudGVyIHRoZSBjcml0aWNhbCBzZWN0aW9uIGF0IGEgdGltZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNyaXRpY2FsU2VjdGlvbigpIHtcbiAgbGV0IGxvY2sgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgcmV0dXJuIGFzeW5jIChjcml0aWNhbEZ1bmN0aW9uOiAoKSA9PiBQcm9taXNlPHZvaWQ+KSA9PiB7XG4gICAgY29uc3QgcmVzID0gbG9jay50aGVuKCgpID0+IGNyaXRpY2FsRnVuY3Rpb24oKSk7XG4gICAgbG9jayA9IHJlcy5jYXRjaCgoZSkgPT4gZSk7XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventType = void 0;\nexports.shellEventToEventType = shellEventToEventType;\nexports.shellEventPublisherFromEventEmitter = shellEventPublisherFromEventEmitter;\n/**\n * A single event for an asset\n */\nvar EventType;\n(function (EventType) {\n /**\n * Just starting on an asset\n */\n EventType[\"START\"] = \"start\";\n /**\n * When an asset is successfully finished\n */\n EventType[\"SUCCESS\"] = \"success\";\n /**\n * When an asset failed\n */\n EventType[\"FAIL\"] = \"fail\";\n /**\n * Checking whether an asset has already been published\n */\n EventType[\"CHECK\"] = \"check\";\n /**\n * The asset was already published\n */\n EventType[\"FOUND\"] = \"found\";\n /**\n * The asset was reused locally from a cached version\n */\n EventType[\"CACHED\"] = \"cached\";\n /**\n * The asset will be built\n */\n EventType[\"BUILD\"] = \"build\";\n /**\n * The asset will be uploaded\n */\n EventType[\"UPLOAD\"] = \"upload\";\n /**\n * Another type of detail message\n */\n EventType[\"DEBUG\"] = \"debug\";\n /**\n * When a shell command is executed. Emits the the command line arguments given to\n * the subprocess as a string upon shell execution.\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_OPEN\"] = \"shell_open\";\n /**\n * stdout from a shell command\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_STDOUT\"] = \"shell_stdout\";\n /**\n * stdout from a shell command\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_STDERR\"] = \"shell_stderr\";\n /**\n * When a shell command closes. Emits the the command line arguments given to\n * the subprocess as a string upon shell closure.\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_CLOSE\"] = \"shell_close\";\n})(EventType || (exports.EventType = EventType = {}));\n/**\n * A helper function to convert shell events to asset progress events\n * @param event - a shell event\n * @returns an {@link EventType}\n */\nfunction shellEventToEventType(event) {\n switch (event) {\n case 'open':\n return EventType.SHELL_OPEN;\n case 'close':\n return EventType.SHELL_CLOSE;\n case 'data_stdout':\n return EventType.SHELL_STDOUT;\n case 'data_stderr':\n return EventType.SHELL_STDERR;\n }\n}\n/**\n * Create a ShellEventPublisher for an {@link EventEmitter}\n *\n * Returns a ShellEventPublisher that translates ShellEvents into messages\n * emitted via the EventEmitter. Uses `shellEventToEventType` to translate\n * shell event types to event types\n */\nfunction shellEventPublisherFromEventEmitter(eventEmitter) {\n return (event, message) => {\n const eventType = shellEventToEventType(event);\n eventEmitter(eventType, message);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrR0Esc0RBV0M7QUFTRCxrRkFLQztBQTlHRDs7R0FFRztBQUNILElBQVksU0EyRVg7QUEzRUQsV0FBWSxTQUFTO0lBQ25COztPQUVHO0lBQ0gsNEJBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsZ0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwwQkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCw0QkFBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCw0QkFBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCw4QkFBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILDRCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDhCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsNEJBQWUsQ0FBQTtJQUVmOzs7OztPQUtHO0lBQ0gsc0NBQXlCLENBQUE7SUFFekI7Ozs7T0FJRztJQUNILDBDQUE2QixDQUFBO0lBRTdCOzs7O09BSUc7SUFDSCwwQ0FBNkIsQ0FBQTtJQUU3Qjs7Ozs7T0FLRztJQUNILHdDQUEyQixDQUFBO0FBQzdCLENBQUMsRUEzRVcsU0FBUyx5QkFBVCxTQUFTLFFBMkVwQjtBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFxQjtJQUN6RCxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxNQUFNO1lBQ1QsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQzlCLEtBQUssT0FBTztZQUNWLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUMvQixLQUFLLGFBQWE7WUFDaEIsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ2hDLEtBQUssYUFBYTtZQUNoQixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixtQ0FBbUMsQ0FBQyxZQUEwQjtJQUM1RSxPQUFPLENBQUMsS0FBcUIsRUFBRSxPQUFlLEVBQUUsRUFBRTtRQUNoRCxNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgdHlwZSB7IFNoZWxsRXZlbnRUeXBlIH0gZnJvbSAnLi9wcml2YXRlL3NoZWxsJztcblxuLyoqXG4gKiBBIGxpc3RlbmVyIGZvciBwcm9ncmVzcyBldmVudHMgZnJvbSB0aGUgcHVibGlzaGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVB1Ymxpc2hQcm9ncmVzc0xpc3RlbmVyIHtcbiAgLyoqXG4gICAqIEFzc2V0IGJ1aWxkIGV2ZW50XG4gICAqL1xuICBvblB1Ymxpc2hFdmVudCh0eXBlOiBFdmVudFR5cGUsIGV2ZW50OiBJUHVibGlzaFByb2dyZXNzKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBldmVudCBmb3IgYW4gYXNzZXRcbiAqL1xuZXhwb3J0IGVudW0gRXZlbnRUeXBlIHtcbiAgLyoqXG4gICAqIEp1c3Qgc3RhcnRpbmcgb24gYW4gYXNzZXRcbiAgICovXG4gIFNUQVJUID0gJ3N0YXJ0JyxcblxuICAvKipcbiAgICogV2hlbiBhbiBhc3NldCBpcyBzdWNjZXNzZnVsbHkgZmluaXNoZWRcbiAgICovXG4gIFNVQ0NFU1MgPSAnc3VjY2VzcycsXG5cbiAgLyoqXG4gICAqIFdoZW4gYW4gYXNzZXQgZmFpbGVkXG4gICAqL1xuICBGQUlMID0gJ2ZhaWwnLFxuXG4gIC8qKlxuICAgKiBDaGVja2luZyB3aGV0aGVyIGFuIGFzc2V0IGhhcyBhbHJlYWR5IGJlZW4gcHVibGlzaGVkXG4gICAqL1xuICBDSEVDSyA9ICdjaGVjaycsXG5cbiAgLyoqXG4gICAqIFRoZSBhc3NldCB3YXMgYWxyZWFkeSBwdWJsaXNoZWRcbiAgICovXG4gIEZPVU5EID0gJ2ZvdW5kJyxcblxuICAvKipcbiAgICogVGhlIGFzc2V0IHdhcyByZXVzZWQgbG9jYWxseSBmcm9tIGEgY2FjaGVkIHZlcnNpb25cbiAgICovXG4gIENBQ0hFRCA9ICdjYWNoZWQnLFxuXG4gIC8qKlxuICAgKiBUaGUgYXNzZXQgd2lsbCBiZSBidWlsdFxuICAgKi9cbiAgQlVJTEQgPSAnYnVpbGQnLFxuXG4gIC8qKlxuICAgKiBUaGUgYXNzZXQgd2lsbCBiZSB1cGxvYWRlZFxuICAgKi9cbiAgVVBMT0FEID0gJ3VwbG9hZCcsXG5cbiAgLyoqXG4gICAqIEFub3RoZXIgdHlwZSBvZiBkZXRhaWwgbWVzc2FnZVxuICAgKi9cbiAgREVCVUcgPSAnZGVidWcnLFxuXG4gIC8qKlxuICAgKiBXaGVuIGEgc2hlbGwgY29tbWFuZCBpcyBleGVjdXRlZC4gRW1pdHMgdGhlIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGdpdmVuIHRvXG4gICAqIHRoZSBzdWJwcm9jZXNzIGFzIGEgc3RyaW5nIHVwb24gc2hlbGwgZXhlY3V0aW9uLlxuICAgKlxuICAgKiBPbmx5IGVtaXR0ZWQgd2hlbiBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gaXMgc2V0IHRvICdwdWJsaXNoJ1xuICAgKi9cbiAgU0hFTExfT1BFTiA9ICdzaGVsbF9vcGVuJyxcblxuICAvKipcbiAgICogc3Rkb3V0IGZyb20gYSBzaGVsbCBjb21tYW5kXG4gICAqXG4gICAqIE9ubHkgZW1pdHRlZCB3aGVuIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbiBpcyBzZXQgdG8gJ3B1Ymxpc2gnXG4gICAqL1xuICBTSEVMTF9TVERPVVQgPSAnc2hlbGxfc3Rkb3V0JyxcblxuICAvKipcbiAgICogc3Rkb3V0IGZyb20gYSBzaGVsbCBjb21tYW5kXG4gICAqXG4gICAqIE9ubHkgZW1pdHRlZCB3aGVuIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbiBpcyBzZXQgdG8gJ3B1Ymxpc2gnXG4gICAqL1xuICBTSEVMTF9TVERFUlIgPSAnc2hlbGxfc3RkZXJyJyxcblxuICAvKipcbiAgICogV2hlbiBhIHNoZWxsIGNvbW1hbmQgY2xvc2VzLiBFbWl0cyB0aGUgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgZ2l2ZW4gdG9cbiAgICogdGhlIHN1YnByb2Nlc3MgYXMgYSBzdHJpbmcgdXBvbiBzaGVsbCBjbG9zdXJlLlxuICAgKlxuICAgKiBPbmx5IGVtaXR0ZWQgd2hlbiBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gaXMgc2V0IHRvICdwdWJsaXNoJ1xuICAgKi9cbiAgU0hFTExfQ0xPU0UgPSAnc2hlbGxfY2xvc2UnLFxufVxuXG4vKipcbiAqIEEgaGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgc2hlbGwgZXZlbnRzIHRvIGFzc2V0IHByb2dyZXNzIGV2ZW50c1xuICogQHBhcmFtIGV2ZW50IC0gYSBzaGVsbCBldmVudFxuICogQHJldHVybnMgYW4ge0BsaW5rIEV2ZW50VHlwZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoZWxsRXZlbnRUb0V2ZW50VHlwZShldmVudDogU2hlbGxFdmVudFR5cGUpOiBFdmVudFR5cGUge1xuICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgY2FzZSAnb3Blbic6XG4gICAgICByZXR1cm4gRXZlbnRUeXBlLlNIRUxMX09QRU47XG4gICAgY2FzZSAnY2xvc2UnOlxuICAgICAgcmV0dXJuIEV2ZW50VHlwZS5TSEVMTF9DTE9TRTtcbiAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICByZXR1cm4gRXZlbnRUeXBlLlNIRUxMX1NURE9VVDtcbiAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICByZXR1cm4gRXZlbnRUeXBlLlNIRUxMX1NUREVSUjtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIFNoZWxsRXZlbnRQdWJsaXNoZXIgZm9yIGFuIHtAbGluayBFdmVudEVtaXR0ZXJ9XG4gKlxuICogUmV0dXJucyBhIFNoZWxsRXZlbnRQdWJsaXNoZXIgdGhhdCB0cmFuc2xhdGVzIFNoZWxsRXZlbnRzIGludG8gbWVzc2FnZXNcbiAqIGVtaXR0ZWQgdmlhIHRoZSBFdmVudEVtaXR0ZXIuIFVzZXMgYHNoZWxsRXZlbnRUb0V2ZW50VHlwZWAgdG8gdHJhbnNsYXRlXG4gKiBzaGVsbCBldmVudCB0eXBlcyB0byBldmVudCB0eXBlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIoZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXIpIHtcbiAgcmV0dXJuIChldmVudDogU2hlbGxFdmVudFR5cGUsIG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGV2ZW50VHlwZSA9IHNoZWxsRXZlbnRUb0V2ZW50VHlwZShldmVudCk7XG4gICAgZXZlbnRFbWl0dGVyKGV2ZW50VHlwZSwgbWVzc2FnZSk7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50RW1pdHRlciA9ICh0eXBlOiBFdmVudFR5cGUsIG06IHN0cmluZykgPT4gdm9pZDtcblxuLyoqXG4gKiBDb250ZXh0IG9iamVjdCBmb3IgcHVibGlzaGluZyBwcm9ncmVzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQdWJsaXNoUHJvZ3Jlc3Mge1xuICAvKipcbiAgICogQ3VycmVudCBldmVudCBtZXNzYWdlXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFzc2V0IGN1cnJlbnRseSBiZWluZyBwYWNrYWdlZCAoaWYgYW55KVxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudEFzc2V0PzogSU1hbmlmZXN0RW50cnk7XG5cbiAgLyoqXG4gICAqIEhvdyBmYXIgYWxvbmcgYXJlIHdlP1xuICAgKi9cbiAgcmVhZG9ubHkgcGVyY2VudENvbXBsZXRlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFib3J0IHRoZSBjdXJyZW50IHB1Ymxpc2hpbmcgb3BlcmF0aW9uXG4gICAqL1xuICBhYm9ydCgpOiB2b2lkO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetPublishing = void 0;\nconst docker_1 = require(\"./private/docker\");\nconst handlers_1 = require(\"./private/handlers\");\nconst p_limit_1 = require(\"./private/p-limit\");\nconst progress_1 = require(\"./progress\");\nclass AssetPublishing {\n constructor(manifest, options) {\n this.manifest = manifest;\n this.options = options;\n /**\n * The message for the IPublishProgress interface\n */\n this.message = 'Starting';\n this.failures = new Array();\n this.completedOperations = 0;\n this.aborted = false;\n this.handlerCache = new Map();\n this.assets = manifest.entries;\n this.totalOperations = this.assets.length;\n this.publishInParallel = options.publishInParallel ?? false;\n this.buildAssets = options.buildAssets ?? true;\n this.publishAssets = options.publishAssets ?? true;\n const self = this;\n this.handlerHost = {\n aws: this.options.aws,\n get aborted() {\n return self.aborted;\n },\n emitMessage(t, m) {\n self.progressEvent(t, m);\n },\n dockerFactory: new docker_1.DockerFactory(),\n };\n }\n /**\n * Publish all assets from the manifest\n */\n async publish(options = {}) {\n if (this.publishInParallel) {\n const limit = (0, p_limit_1.pLimit)(20);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(this.assets.map((asset) => limit(async () => this.publishAsset(asset, options))));\n }\n else {\n for (const asset of this.assets) {\n if (!(await this.publishAsset(asset, options))) {\n break;\n }\n }\n }\n if ((this.options.throwOnError ?? true) && this.failures.length > 0) {\n throw new Error(`Error publishing: ${this.failures.map((e) => e.error.message)}`);\n }\n }\n /**\n * Build a single asset from the manifest\n */\n async buildEntry(asset) {\n try {\n if (this.progressEvent(progress_1.EventType.START, `Building ${asset.displayName(false)}`)) {\n return false;\n }\n const handler = this.assetHandler(asset);\n await handler.build();\n if (this.aborted) {\n throw new Error('Aborted');\n }\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.SUCCESS, `Built ${asset.displayName(false)}`)) {\n return false;\n }\n }\n catch (e) {\n this.failures.push({ asset, error: e });\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.FAIL, e.message)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Publish a single asset from the manifest\n */\n async publishEntry(asset, options = {}) {\n try {\n if (this.progressEvent(progress_1.EventType.START, `Publishing ${asset.displayName(true)}`)) {\n return false;\n }\n const handler = this.assetHandler(asset);\n await handler.publish(options);\n if (this.aborted) {\n throw new Error('Aborted');\n }\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.SUCCESS, `Published ${asset.displayName(true)}`)) {\n return false;\n }\n }\n catch (e) {\n this.failures.push({ asset, error: e });\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.FAIL, e.message)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Return whether a single asset is published\n */\n isEntryPublished(asset) {\n const handler = this.assetHandler(asset);\n return handler.isPublished();\n }\n /**\n * publish an asset (used by 'publish()')\n * @param asset - The asset to publish\n * @returns false when publishing should stop\n */\n async publishAsset(asset, options = {}) {\n try {\n if (this.progressEvent(progress_1.EventType.START, `Publishing ${asset.displayName(true)}`)) {\n return false;\n }\n const handler = this.assetHandler(asset);\n if (this.buildAssets) {\n await handler.build();\n }\n if (this.publishAssets) {\n await handler.publish(options);\n }\n if (this.aborted) {\n throw new Error('Aborted');\n }\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.SUCCESS, `Published ${asset.displayName(true)}`)) {\n return false;\n }\n }\n catch (e) {\n this.failures.push({ asset, error: e });\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.FAIL, e.message)) {\n return false;\n }\n }\n return true;\n }\n get percentComplete() {\n if (this.totalOperations === 0) {\n return 100;\n }\n return Math.floor((this.completedOperations / this.totalOperations) * 100);\n }\n abort() {\n this.aborted = true;\n }\n get hasFailures() {\n return this.failures.length > 0;\n }\n /**\n * Publish a progress event to the listener, if present.\n *\n * Returns whether an abort is requested. Helper to get rid of repetitive code in publish().\n */\n progressEvent(event, message) {\n this.message = message;\n if (this.options.progressListener) {\n this.options.progressListener.onPublishEvent(event, this);\n }\n return this.aborted;\n }\n assetHandler(asset) {\n const existing = this.handlerCache.get(asset);\n if (existing) {\n return existing;\n }\n if (this.options.quiet !== undefined && this.options.subprocessOutputDestination) {\n throw new Error('Cannot set both quiet and subprocessOutputDestination. Please use only subprocessOutputDestination');\n }\n const subprocessOutputDestination = this.options.subprocessOutputDestination ?? (this.options.quiet ? 'ignore' : 'stdio');\n const ret = (0, handlers_1.makeAssetHandler)(this.manifest, asset, this.handlerHost, {\n subprocessOutputDestination,\n });\n this.handlerCache.set(asset, ret);\n return ret;\n }\n}\nexports.AssetPublishing = AssetPublishing;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsNkNBQWlEO0FBQ2pELGlEQUFzRDtBQUN0RCwrQ0FBMkM7QUFFM0MseUNBQXVDO0FBdUV2QyxNQUFhLGVBQWU7SUFzQjFCLFlBQ21CLFFBQXVCLEVBQ3ZCLE9BQStCO1FBRC9CLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUF2QmxEOztXQUVHO1FBQ0ksWUFBTyxHQUFXLFVBQVUsQ0FBQztRQU1wQixhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUk1Qyx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUtQLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFNdkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1FBRW5ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7WUFDckIsSUFBSSxPQUFPO2dCQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN0QixDQUFDO1lBQ0QsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxh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QUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDakYsTUFBTSxJQUFJLEtBQUssQ0FDYixvR0FBb0csQ0FDckcsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLDJCQUEyQixHQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEYsTUFBTSxHQUFHLEdBQUcsSUFBQSwyQkFBZ0IsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25FLDJCQUEyQjtTQUM1QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFoT0QsMENBZ09DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBc3NldE1hbmlmZXN0LCBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJy4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJQXdzIH0gZnJvbSAnLi9hd3MnO1xuaW1wb3J0IHR5cGUge1xuICBJQXNzZXRIYW5kbGVyLFxuICBJSGFuZGxlckhvc3QsXG4gIFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgUHVibGlzaE9wdGlvbnMsXG59IGZyb20gJy4vcHJpdmF0ZS9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB7IERvY2tlckZhY3RvcnkgfSBmcm9tICcuL3ByaXZhdGUvZG9ja2VyJztcbmltcG9ydCB7IG1ha2VBc3NldEhhbmRsZXIgfSBmcm9tICcuL3ByaXZhdGUvaGFuZGxlcnMnO1xuaW1wb3J0IHsgcExpbWl0IH0gZnJvbSAnLi9wcml2YXRlL3AtbGltaXQnO1xuaW1wb3J0IHR5cGUgeyBJUHVibGlzaFByb2dyZXNzLCBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXIgfSBmcm9tICcuL3Byb2dyZXNzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4vcHJvZ3Jlc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHVibGlzaGluZ09wdGlvbnMge1xuICAvKipcbiAgICogRW50cnkgcG9pbnQgZm9yIEFXUyBjbGllbnRcbiAgICovXG4gIHJlYWRvbmx5IGF3czogSUF3cztcblxuICAvKipcbiAgICogTGlzdGVuZXIgZm9yIHByb2dyZXNzIGV2ZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCBObyBsaXN0ZW5lclxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZ3Jlc3NMaXN0ZW5lcj86IElQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB0aHJvdyBhdCB0aGUgZW5kIGlmIHRoZXJlIHdlcmUgZXJyb3JzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRocm93T25FcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHVibGlzaCBpbiBwYXJhbGxlbCwgd2hlbiAncHVibGlzaCgpJyBpcyBjYWxsZWRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hJblBhcmFsbGVsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBidWlsZCBhc3NldHMsIHdoZW4gJ3B1Ymxpc2goKScgaXMgY2FsbGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXNzZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwdWJsaXNoIGFzc2V0cywgd2hlbiAncHVibGlzaCgpJyBpcyBjYWxsZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaEFzc2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgI3N1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbn0gaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0byBzZW5kIG91dHB1dCBvZiBhIHN1YnByb2Nlc3Nlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAnc3RkaW8nXG4gICAqL1xuICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24/OiBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb247XG59XG5cbi8qKlxuICogQSBmYWlsdXJlIHRvIHB1Ymxpc2ggYW4gYXNzZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGYWlsZWRBc3NldCB7XG4gIC8qKlxuICAgKiBUaGUgYXNzZXQgdGhhdCBmYWlsZWQgdG8gcHVibGlzaFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXQ6IElNYW5pZmVzdEVudHJ5O1xuXG4gIC8qKlxuICAgKiBUaGUgZmFpbHVyZSB0aGF0IG9jY3VycmVkXG4gICAqL1xuICByZWFkb25seSBlcnJvcjogRXJyb3I7XG59XG5cbmV4cG9ydCBjbGFzcyBBc3NldFB1Ymxpc2hpbmcgaW1wbGVtZW50cyBJUHVibGlzaFByb2dyZXNzIHtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGZvciB0aGUgSVB1Ymxpc2hQcm9ncmVzcyBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgPSAnU3RhcnRpbmcnO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBhc3NldCBmb3IgdGhlIElQdWJsaXNoUHJvZ3Jlc3MgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgY3VycmVudEFzc2V0PzogSU1hbmlmZXN0RW50cnk7XG4gIHB1YmxpYyByZWFkb25seSBmYWlsdXJlcyA9IG5ldyBBcnJheTxGYWlsZWRBc3NldD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldHM6IElNYW5pZmVzdEVudHJ5W107XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0b3RhbE9wZXJhdGlvbnM6IG51bWJlcjtcbiAgcHJpdmF0ZSBjb21wbGV0ZWRPcGVyYXRpb25zOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGFib3J0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVySG9zdDogSUhhbmRsZXJIb3N0O1xuICBwcml2YXRlIHJlYWRvbmx5IHB1Ymxpc2hJblBhcmFsbGVsOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGJ1aWxkQXNzZXRzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHB1Ymxpc2hBc3NldHM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlckNhY2hlID0gbmV3IE1hcDxJTWFuaWZlc3RFbnRyeSwgSUFzc2V0SGFuZGxlcj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQXNzZXRQdWJsaXNoaW5nT3B0aW9ucyxcbiAgKSB7XG4gICAgdGhpcy5hc3NldHMgPSBtYW5pZmVzdC5lbnRyaWVzO1xuICAgIHRoaXMudG90YWxPcGVyYXRpb25zID0gdGhpcy5hc3NldHMubGVuZ3RoO1xuICAgIHRoaXMucHVibGlzaEluUGFyYWxsZWwgPSBvcHRpb25zLnB1Ymxpc2hJblBhcmFsbGVsID8/IGZhbHNlO1xuICAgIHRoaXMuYnVpbGRBc3NldHMgPSBvcHRpb25zLmJ1aWxkQXNzZXRzID8/IHRydWU7XG4gICAgdGhpcy5wdWJsaXNoQXNzZXRzID0gb3B0aW9ucy5wdWJsaXNoQXNzZXRzID8/IHRydWU7XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLmhhbmRsZXJIb3N0ID0ge1xuICAgICAgYXdzOiB0aGlzLm9wdGlvbnMuYXdzLFxuICAgICAgZ2V0IGFib3J0ZWQoKSB7XG4gICAgICAgIHJldHVybiBzZWxmLmFib3J0ZWQ7XG4gICAgICB9LFxuICAgICAgZW1pdE1lc3NhZ2UodCwgbSkge1xuICAgICAgICBzZWxmLnByb2dyZXNzRXZlbnQodCwgbSk7XG4gICAgICB9LFxuICAgICAgZG9ja2VyRmFjdG9yeTogbmV3IERvY2tlckZhY3RvcnkoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYWxsIGFzc2V0cyBmcm9tIHRoZSBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2gob3B0aW9uczogUHVibGlzaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnB1Ymxpc2hJblBhcmFsbGVsKSB7XG4gICAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCgyMCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICB0aGlzLmFzc2V0cy5tYXAoKGFzc2V0KSA9PiBsaW1pdChhc3luYyAoKSA9PiB0aGlzLnB1Ymxpc2hBc3NldChhc3NldCwgb3B0aW9ucykpKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgYXNzZXQgb2YgdGhpcy5hc3NldHMpIHtcbiAgICAgICAgaWYgKCEoYXdhaXQgdGhpcy5wdWJsaXNoQXNzZXQoYXNzZXQsIG9wdGlvbnMpKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLm9wdGlvbnMudGhyb3dPbkVycm9yID8/IHRydWUpICYmIHRoaXMuZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBwdWJsaXNoaW5nOiAke3RoaXMuZmFpbHVyZXMubWFwKChlKSA9PiBlLmVycm9yLm1lc3NhZ2UpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHNpbmdsZSBhc3NldCBmcm9tIHRoZSBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJ1aWxkRW50cnkoYXNzZXQ6IElNYW5pZmVzdEVudHJ5KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLlNUQVJULCBgQnVpbGRpbmcgJHthc3NldC5kaXNwbGF5TmFtZShmYWxzZSl9YCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5hc3NldEhhbmRsZXIoYXNzZXQpO1xuICAgICAgYXdhaXQgaGFuZGxlci5idWlsZCgpO1xuXG4gICAgICBpZiAodGhpcy5hYm9ydGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQWJvcnRlZCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbXBsZXRlZE9wZXJhdGlvbnMrKztcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLlNVQ0NFU1MsIGBCdWlsdCAke2Fzc2V0LmRpc3BsYXlOYW1lKGZhbHNlKX1gKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aGlzLmZhaWx1cmVzLnB1c2goeyBhc3NldCwgZXJyb3I6IGUgfSk7XG4gICAgICB0aGlzLmNvbXBsZXRlZE9wZXJhdGlvbnMrKztcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLkZBSUwsIGUubWVzc2FnZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBzaW5nbGUgYXNzZXQgZnJvbSB0aGUgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwdWJsaXNoRW50cnkoYXNzZXQ6IElNYW5pZmVzdEVudHJ5LCBvcHRpb25zOiBQdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLlNUQVJULCBgUHVibGlzaGluZyAke2Fzc2V0LmRpc3BsYXlOYW1lKHRydWUpfWApKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuYXNzZXRIYW5kbGVyKGFzc2V0KTtcbiAgICAgIGF3YWl0IGhhbmRsZXIucHVibGlzaChvcHRpb25zKTtcblxuICAgICAgaWYgKHRoaXMuYWJvcnRlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zKys7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5TVUNDRVNTLCBgUHVibGlzaGVkICR7YXNzZXQuZGlzcGxheU5hbWUodHJ1ZSl9YCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhpcy5mYWlsdXJlcy5wdXNoKHsgYXNzZXQsIGVycm9yOiBlIH0pO1xuICAgICAgdGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zKys7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5GQUlMLCBlLm1lc3NhZ2UpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciBhIHNpbmdsZSBhc3NldCBpcyBwdWJsaXNoZWRcbiAgICovXG4gIHB1YmxpYyBpc0VudHJ5UHVibGlzaGVkKGFzc2V0OiBJTWFuaWZlc3RFbnRyeSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmFzc2V0SGFuZGxlcihhc3NldCk7XG4gICAgcmV0dXJuIGhhbmRsZXIuaXNQdWJsaXNoZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwdWJsaXNoIGFuIGFzc2V0ICh1c2VkIGJ5ICdwdWJsaXNoKCknKVxuICAgKiBAcGFyYW0gYXNzZXQgLSBUaGUgYXNzZXQgdG8gcHVibGlzaFxuICAgKiBAcmV0dXJucyBmYWxzZSB3aGVuIHB1Ymxpc2hpbmcgc2hvdWxkIHN0b3BcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcHVibGlzaEFzc2V0KGFzc2V0OiBJTWFuaWZlc3RFbnRyeSwgb3B0aW9uczogUHVibGlzaE9wdGlvbnMgPSB7fSkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5TVEFSVCwgYFB1Ymxpc2hpbmcgJHthc3NldC5kaXNwbGF5TmFtZSh0cnVlKX1gKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmFzc2V0SGFuZGxlcihhc3NldCk7XG5cbiAgICAgIGlmICh0aGlzLmJ1aWxkQXNzZXRzKSB7XG4gICAgICAgIGF3YWl0IGhhbmRsZXIuYnVpbGQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHVibGlzaEFzc2V0cykge1xuICAgICAgICBhd2FpdCBoYW5kbGVyLnB1Ymxpc2gob3B0aW9ucyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFib3J0ZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGVkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29tcGxldGVkT3BlcmF0aW9ucysrO1xuICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NFdmVudChFdmVudFR5cGUuU1VDQ0VTUywgYFB1Ymxpc2hlZCAke2Fzc2V0LmRpc3BsYXlOYW1lKHRydWUpfWApKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuZmFpbHVyZXMucHVzaCh7IGFzc2V0LCBlcnJvcjogZSB9KTtcbiAgICAgIHRoaXMuY29tcGxldGVkT3BlcmF0aW9ucysrO1xuICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NFdmVudChFdmVudFR5cGUuRkFJTCwgZS5tZXNzYWdlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlcmNlbnRDb21wbGV0ZSgpIHtcbiAgICBpZiAodGhpcy50b3RhbE9wZXJhdGlvbnMgPT09IDApIHtcbiAgICAgIHJldHVybiAxMDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLmZsb29yKCh0aGlzLmNvbXBsZXRlZE9wZXJhdGlvbnMgLyB0aGlzLnRvdGFsT3BlcmF0aW9ucykgKiAxMDApO1xuICB9XG5cbiAgcHVibGljIGFib3J0KCk6IHZvaWQge1xuICAgIHRoaXMuYWJvcnRlZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0ZhaWx1cmVzKCkge1xuICAgIHJldHVybiB0aGlzLmZhaWx1cmVzLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhIHByb2dyZXNzIGV2ZW50IHRvIHRoZSBsaXN0ZW5lciwgaWYgcHJlc2VudC5cbiAgICpcbiAgICogUmV0dXJucyB3aGV0aGVyIGFuIGFib3J0IGlzIHJlcXVlc3RlZC4gSGVscGVyIHRvIGdldCByaWQgb2YgcmVwZXRpdGl2ZSBjb2RlIGluIHB1Ymxpc2goKS5cbiAgICovXG4gIHByaXZhdGUgcHJvZ3Jlc3NFdmVudChldmVudDogRXZlbnRUeXBlLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIGlmICh0aGlzLm9wdGlvbnMucHJvZ3Jlc3NMaXN0ZW5lcikge1xuICAgICAgdGhpcy5vcHRpb25zLnByb2dyZXNzTGlzdGVuZXIub25QdWJsaXNoRXZlbnQoZXZlbnQsIHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hYm9ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NldEhhbmRsZXIoYXNzZXQ6IElNYW5pZmVzdEVudHJ5KSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmhhbmRsZXJDYWNoZS5nZXQoYXNzZXQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLnF1aWV0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5vcHRpb25zLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IHNldCBib3RoIHF1aWV0IGFuZCBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24uIFBsZWFzZSB1c2Ugb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24nLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uID1cbiAgICAgIHRoaXMub3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gPz8gKHRoaXMub3B0aW9ucy5xdWlldCA/ICdpZ25vcmUnIDogJ3N0ZGlvJyk7XG4gICAgY29uc3QgcmV0ID0gbWFrZUFzc2V0SGFuZGxlcih0aGlzLm1hbmlmZXN0LCBhc3NldCwgdGhpcy5oYW5kbGVySG9zdCwge1xuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMuaGFuZGxlckNhY2hlLnNldChhc3NldCwgcmV0KTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestArtifact = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst ASSET_MANIFEST_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.AssetManifestArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass AssetManifestArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `AssetManifestArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `AssetManifestArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isAssetManifestArtifact(art) {\n return art && typeof art === 'object' && art[ASSET_MANIFEST_ARTIFACT_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid AssetManifestArtifact. Missing \"file\" property');\n }\n this.file = path.resolve(this.assembly.directory, properties.file);\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n }\n /**\n * The Asset Manifest contents\n */\n get contents() {\n if (this._contents !== undefined) {\n return this._contents;\n }\n const contents = this._contents = JSON.parse(fs.readFileSync(this.file, 'utf-8'));\n return contents;\n }\n}\nexports.AssetManifestArtifact = AssetManifestArtifact;\n/**\n * Mark all instances of 'AssetManifestArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(AssetManifestArtifact.prototype, ASSET_MANIFEST_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLHNEQUFrRDtBQUVsRCw0Q0FBc0Q7QUFFdEQsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFeEY7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLDhCQUFhO0lBQ3REOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFhLEdBQVE7UUFDeEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFxQkQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBcUMsQ0FBQztRQUN4RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxVQUFVLENBQUMsNkJBQTZCLENBQUM7UUFDOUUsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQztJQUN4RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQWhFRCxzREFnRUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLDJCQUEyQixFQUFFO0lBQ2xGLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLEtBQUs7SUFDakIsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuLi9wcml2YXRlL2Vycm9yJztcblxuY29uc3QgQVNTRVRfTUFOSUZFU1RfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCcpO1xuXG4vKipcbiAqIEFzc2V0IG1hbmlmZXN0IGlzIGEgZGVzY3JpcHRpb24gb2YgYSBzZXQgb2YgYXNzZXRzIHdoaWNoIG5lZWQgdG8gYmUgYnVpbHQgYW5kIHB1Ymxpc2hlZFxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRNYW5pZmVzdEFydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgQXNzZXRNYW5pZmVzdEFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBBc3NldE1hbmlmZXN0QXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh0aGlzOiB2b2lkLCBhcnQ6IGFueSk6IGFydCBpcyBBc3NldE1hbmlmZXN0QXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgYXJ0W0FTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTV07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgYXNzZXQgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogTmFtZSBvZiBTU00gcGFyYW1ldGVyIHdpdGggYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEaXNjb3ZlciBTU00gcGFyYW1ldGVyIGJ5IHJlYWRpbmcgc3RhY2tcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29udGVudHM/OiBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0O1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0UHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMuZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBBc3NldE1hbmlmZXN0QXJ0aWZhY3QuIE1pc3NpbmcgXCJmaWxlXCIgcHJvcGVydHknKTtcbiAgICB9XG4gICAgdGhpcy5maWxlID0gcGF0aC5yZXNvbHZlKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCBwcm9wZXJ0aWVzLmZpbGUpO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFzc2V0IE1hbmlmZXN0IGNvbnRlbnRzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRlbnRzKCk6IGN4c2NoZW1hLkFzc2V0TWFuaWZlc3Qge1xuICAgIGlmICh0aGlzLl9jb250ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29udGVudHM7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudHMgPSB0aGlzLl9jb250ZW50cyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHRoaXMuZmlsZSwgJ3V0Zi04JykpO1xuICAgIHJldHVybiBjb250ZW50cztcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnQXNzZXRNYW5pZmVzdEFydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEFzc2V0TWFuaWZlc3RBcnRpZmFjdC5wcm90b3R5cGUsIEFTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationStackArtifact = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst environment_1 = require(\"../environment\");\nconst error_1 = require(\"../private/error\");\nconst CLOUDFORMATION_STACK_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.CloudFormationStackArtifact');\nclass CloudFormationStackArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `CloudFormationStackArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `CloudFormationStackArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isCloudFormationStackArtifact(art) {\n return art && typeof art === 'object' && CLOUDFORMATION_STACK_ARTIFACT_SYM in art;\n }\n constructor(assembly, artifactId, artifact) {\n super(assembly, artifactId, artifact);\n const properties = (this.manifest.properties || {});\n if (!properties.templateFile) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing \"templateFile\" property in cloud assembly manifest');\n }\n if (!artifact.environment) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing environment');\n }\n this.environment = environment_1.EnvironmentUtils.parse(artifact.environment);\n this.templateFile = properties.templateFile;\n this.parameters = properties.parameters ?? {};\n // We get the tags from 'properties' if available (cloud assembly format >= 6.0.0), otherwise\n // from the stack metadata\n this.tags = properties.tags ?? {};\n this.notificationArns = properties.notificationArns;\n this.assumeRoleArn = properties.assumeRoleArn;\n this.assumeRoleExternalId = properties.assumeRoleExternalId;\n this.assumeRoleAdditionalOptions = properties.assumeRoleAdditionalOptions;\n this.cloudFormationExecutionRoleArn = properties.cloudFormationExecutionRoleArn;\n this.stackTemplateAssetObjectUrl = properties.stackTemplateAssetObjectUrl;\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n this.terminationProtection = properties.terminationProtection;\n this.validateOnSynth = properties.validateOnSynth;\n this.lookupRole = properties.lookupRole;\n this.stackName = properties.stackName || artifactId;\n this.assets = this.findMetadataByType(cxschema.ArtifactMetadataEntryType.ASSET).map(e => e.data);\n this.displayName = this.stackName === artifactId\n ? this.hierarchicalId\n : `${this.hierarchicalId} (${this.stackName})`;\n this.name = this.stackName; // backwards compat\n this.originalName = this.stackName;\n }\n /**\n * Full path to the template file\n */\n get templateFullPath() {\n return path.join(this.assembly.directory, this.templateFile);\n }\n /**\n * The CloudFormation template for this stack.\n */\n get template() {\n if (this._template === undefined) {\n this._template = JSON.parse(fs.readFileSync(this.templateFullPath, 'utf-8'));\n }\n return this._template;\n }\n}\nexports.CloudFormationStackArtifact = CloudFormationStackArtifact;\n/**\n * Mark all instances of 'CloudFormationStackArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(CloudFormationStackArtifact.prototype, CLOUDFORMATION_STACK_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDJEQUEyRDtBQUMzRCxzREFBa0Q7QUFHbEQsZ0RBQWtEO0FBQ2xELDRDQUFzRDtBQUN0RCxNQUFNLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUVwRyxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLGlDQUFpQyxJQUFJLEdBQUcsQ0FBQztJQUNwRixDQUFDO0lBbUlELFlBQVksUUFBdUIsRUFBRSxVQUFrQixFQUFFLFFBQW1DO1FBQzFGLEtBQUssQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUE4QyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLDBCQUFrQixDQUFDLG1HQUFtRyxDQUFDLENBQUM7UUFDcEksQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLDREQUE0RCxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUU5Qyw2RkFBNkY7UUFDN0YsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztRQUM1RCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsVUFBVSxDQUFDLDJCQUEyQixDQUFDO1FBQzFFLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxVQUFVLENBQUMsOEJBQThCLENBQUM7UUFDaEYsSUFBSSxDQUFDLDJCQUEyQixHQUFHLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQztRQUMxRSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsVUFBVSxDQUFDLDZCQUE2QixDQUFDO1FBQzlFLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxVQUFVLENBQUMsaUNBQWlDLENBQUM7UUFDdEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFtQyxDQUFDLENBQUM7UUFFaEksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLFVBQVU7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQ3JCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDO1FBRWpELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLG1CQUFtQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBL01ELGtFQStNQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsaUNBQWlDLEVBQUU7SUFDOUYsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsS0FBSztJQUNqQixRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRVdGlscyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uL3ByaXZhdGUvZXJyb3InO1xuY29uc3QgQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCcpO1xuXG5leHBvcnQgY2xhc3MgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnQ6IGFueSk6IGFydCBpcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNIGluIGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZUZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIG5hbWUgYXMgZGVmaW5lZCBpbiB0aGUgQ0RLIGFwcC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvcmlnaW5hbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW55IGFzc2V0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldHM6IGN4c2NoZW1hLkFzc2V0TWV0YWRhdGFFbnRyeVtdO1xuXG4gIC8qKlxuICAgKiBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2xvdWRGb3JtYXRpb24gdGFncyB0byBwYXNzIHRvIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWdzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNOUyBUb3BpY3MgdGhhdCB3aWxsIHJlY2VpdmUgc3RhY2sgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIG5hbWUgb2YgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoaXMgc3RhY2suIFNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdXNlclxuICAgKiBpbnRlcmZhY2VzLiBJZiB0aGUgc3RhY2tOYW1lIGhhcyBub3QgYmVlbiBzZXQgZXhwbGljaXRseSwgb3IgaGFzIGJlZW4gc2V0XG4gICAqIHRvIGFydGlmYWN0SWQsIGl0IHdpbGwgcmV0dXJuIHRoZSBoaWVyYXJjaGljYWxJZCBvZiB0aGUgc3RhY2suIE90aGVyd2lzZSxcbiAgICogaXQgd2lsbCByZXR1cm4gc29tZXRoaW5nIGxpa2UgXCI8aGllcmFyY2hpY2FsSWQ+ICg8c3RhY2tOYW1lPilcIlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoaXMgc3RhY2suXG4gICAqIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gYHN0YWNrTmFtZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBpbnRvIHdoaWNoIHRvIGRlcGxveSB0aGlzIGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcblxuICAvKipcbiAgICogVGhlIHJvbGUgdGhhdCBuZWVkcyB0byBiZSBhc3N1bWVkIHRvIGRlcGxveSB0aGUgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0ZXJuYWwgSUQgdG8gdXNlIHdoZW4gYXNzdW1pbmcgcm9sZSBmb3IgY2xvdWRmb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlIGZvciBjbG91ZGZvcm1hdGlvbiBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogLSBgUm9sZUFybmAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUFybmAgcHJvcGVydHkgaW5zdGVhZC5cbiAgICogLSBgRXh0ZXJuYWxJZGAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUV4dGVybmFsSWRgIGluc3RlYWQuXG4gICAqIC0gYFRyYW5zaXRpdmVUYWdLZXlzYCBkZWZhdWx0cyB0byB1c2UgYWxsIGtleXMgKGlmIGFueSkgc3BlY2lmaWVkIGluIGBUYWdzYC4gRS5nLCBhbGwgdGFncyBhcmUgdHJhbnNpdGl2ZSBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgaXMgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIHBhc3NlZCAoY3VycmVudGx5IGFzc3VtZWQgcm9sZS9jcmVkZW50aWFscyBhcmUgdXNlZClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRvIHVzZSB0byBsb29rIHVwIHZhbHVlcyBmcm9tIHRoZSB0YXJnZXQgQVdTIGFjY291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9va3VwUm9sZT86IGN4c2NoZW1hLkJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBzdGFjayB0ZW1wbGF0ZSBoYXMgYWxyZWFkeSBiZWVuIGluY2x1ZGVkIGluIHRoZSBhc3NldCBtYW5pZmVzdCwgaXRzIGFzc2V0IFVSTFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCB1cGxvYWRlZCB5ZXQsIHVwbG9hZCBqdXN0IGJlZm9yZSBkZXBsb3lpbmdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgU1NNIHBhcmFtZXRlciB3aXRoIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGlzY292ZXIgU1NNIHBhcmFtZXRlciBieSByZWFkaW5nIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RhY2sgc2hvdWxkIGJlIHZhbGlkYXRlZCBieSB0aGUgQ0xJIGFmdGVyIHN5bnRoZXNpc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdGVPblN5bnRoPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF90ZW1wbGF0ZTogYW55IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBhcnRpZmFjdElkOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIGFydGlmYWN0SWQsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMudGVtcGxhdGVGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbnZhbGlkIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0LiBNaXNzaW5nIFwidGVtcGxhdGVGaWxlXCIgcHJvcGVydHkgaW4gY2xvdWQgYXNzZW1ibHkgbWFuaWZlc3QnKTtcbiAgICB9XG4gICAgaWYgKCFhcnRpZmFjdC5lbnZpcm9ubWVudCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdC4gTWlzc2luZyBlbnZpcm9ubWVudCcpO1xuICAgIH1cbiAgICB0aGlzLmVudmlyb25tZW50ID0gRW52aXJvbm1lbnRVdGlscy5wYXJzZShhcnRpZmFjdC5lbnZpcm9ubWVudCk7XG4gICAgdGhpcy50ZW1wbGF0ZUZpbGUgPSBwcm9wZXJ0aWVzLnRlbXBsYXRlRmlsZTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwcm9wZXJ0aWVzLnBhcmFtZXRlcnMgPz8ge307XG5cbiAgICAvLyBXZSBnZXQgdGhlIHRhZ3MgZnJvbSAncHJvcGVydGllcycgaWYgYXZhaWxhYmxlIChjbG91ZCBhc3NlbWJseSBmb3JtYXQgPj0gNi4wLjApLCBvdGhlcndpc2VcbiAgICAvLyBmcm9tIHRoZSBzdGFjayBtZXRhZGF0YVxuICAgIHRoaXMudGFncyA9IHByb3BlcnRpZXMudGFncyA/PyB7fTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkFybnMgPSBwcm9wZXJ0aWVzLm5vdGlmaWNhdGlvbkFybnM7XG4gICAgdGhpcy5hc3N1bWVSb2xlQXJuID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQXJuO1xuICAgIHRoaXMuYXNzdW1lUm9sZUV4dGVybmFsSWQgPSBwcm9wZXJ0aWVzLmFzc3VtZVJvbGVFeHRlcm5hbElkO1xuICAgIHRoaXMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gICAgdGhpcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4gPSBwcm9wZXJ0aWVzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybjtcbiAgICB0aGlzLnN0YWNrVGVtcGxhdGVBc3NldE9iamVjdFVybCA9IHByb3BlcnRpZXMuc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gICAgdGhpcy50ZXJtaW5hdGlvblByb3RlY3Rpb24gPSBwcm9wZXJ0aWVzLnRlcm1pbmF0aW9uUHJvdGVjdGlvbjtcbiAgICB0aGlzLnZhbGlkYXRlT25TeW50aCA9IHByb3BlcnRpZXMudmFsaWRhdGVPblN5bnRoO1xuICAgIHRoaXMubG9va3VwUm9sZSA9IHByb3BlcnRpZXMubG9va3VwUm9sZTtcblxuICAgIHRoaXMuc3RhY2tOYW1lID0gcHJvcGVydGllcy5zdGFja05hbWUgfHwgYXJ0aWZhY3RJZDtcbiAgICB0aGlzLmFzc2V0cyA9IHRoaXMuZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuQVNTRVQpLm1hcChlID0+IGUuZGF0YSBhcyBjeHNjaGVtYS5Bc3NldE1ldGFkYXRhRW50cnkpO1xuXG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMuc3RhY2tOYW1lID09PSBhcnRpZmFjdElkXG4gICAgICA/IHRoaXMuaGllcmFyY2hpY2FsSWRcbiAgICAgIDogYCR7dGhpcy5oaWVyYXJjaGljYWxJZH0gKCR7dGhpcy5zdGFja05hbWV9KWA7XG5cbiAgICB0aGlzLm5hbWUgPSB0aGlzLnN0YWNrTmFtZTsgLy8gYmFja3dhcmRzIGNvbXBhdFxuICAgIHRoaXMub3JpZ2luYWxOYW1lID0gdGhpcy5zdGFja05hbWU7XG4gIH1cblxuICAvKipcbiAgICogRnVsbCBwYXRoIHRvIHRoZSB0ZW1wbGF0ZSBmaWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRlbXBsYXRlRnVsbFBhdGgoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGhpcy50ZW1wbGF0ZUZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogYW55IHtcbiAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdGVtcGxhdGUgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLnRlbXBsYXRlRnVsbFBhdGgsICd1dGYtOCcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlO1xuICB9XG59XG5cbi8qKlxuICogTWFyayBhbGwgaW5zdGFuY2VzIG9mICdDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QnXG4gKlxuICogV2h5IG5vdCBwdXQgdGhpcyBpbiB0aGUgY29uc3RydWN0b3I/IEJlY2F1c2UgdGhpcyBpcyBhIGNsYXNzIHByb3BlcnR5LFxuICogbm90IGFuIGluc3RhbmNlIHByb3BlcnR5LiBJdCBhcHBsaWVzIHRvIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LnByb3RvdHlwZSwgQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNLCB7XG4gIHZhbHVlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgd3JpdGFibGU6IGZhbHNlLFxufSk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst nested_cloud_assembly_artifact_1 = require(\"./nested-cloud-assembly-artifact\");\nconst cloud_assembly_1 = require(\"../cloud-assembly\");\nconst cacheSym = Symbol();\n/**\n * The nested Assembly\n *\n * Declared in a different file to break circular dep between CloudAssembly and NestedCloudAssemblyArtifact\n */\nObject.defineProperty(nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact.prototype, 'nestedAssembly', {\n get() {\n if (!this[cacheSym]) {\n this[cacheSym] = new cloud_assembly_1.CloudAssembly(this.fullPath, this.assembly.loadOptions);\n }\n return this[cacheSym];\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5lc3RlZC1jbG91ZC1hc3NlbWJseS1hcnRpZmFjdC1hdWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxRkFBK0U7QUFDL0Usc0RBQWtEO0FBRWxELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBRTFCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDREQUEyQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtJQUM3RSxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IH0gZnJvbSAnLi9uZXN0ZWQtY2xvdWQtYXNzZW1ibHktYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcblxuY29uc3QgY2FjaGVTeW0gPSBTeW1ib2woKTtcblxuLyoqXG4gKiBUaGUgbmVzdGVkIEFzc2VtYmx5XG4gKlxuICogRGVjbGFyZWQgaW4gYSBkaWZmZXJlbnQgZmlsZSB0byBicmVhayBjaXJjdWxhciBkZXAgYmV0d2VlbiBDbG91ZEFzc2VtYmx5IGFuZCBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3RcbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdC5wcm90b3R5cGUsICduZXN0ZWRBc3NlbWJseScsIHtcbiAgZ2V0KCkge1xuICAgIGlmICghdGhpc1tjYWNoZVN5bV0pIHtcbiAgICAgIHRoaXNbY2FjaGVTeW1dID0gbmV3IENsb3VkQXNzZW1ibHkodGhpcy5mdWxsUGF0aCwgdGhpcy5hc3NlbWJseS5sb2FkT3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzW2NhY2hlU3ltXTtcbiAgfSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NestedCloudAssemblyArtifact = void 0;\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst NESTED_CLOUD_ASSEMBLY_SYM = Symbol.for('@aws-cdk/cx-api.NestedCloudAssemblyArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass NestedCloudAssemblyArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `NestedCloudAssemblyArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `NestedCloudAssemblyArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isNestedCloudAssemblyArtifact(art) {\n return art && typeof art === 'object' && NESTED_CLOUD_ASSEMBLY_SYM in art;\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n const properties = (this.manifest.properties || {});\n this.directoryName = properties.directoryName;\n this.displayName = properties.displayName ?? name;\n }\n /**\n * Full path to the nested assembly directory\n */\n get fullPath() {\n return path.join(this.assembly.directory, this.directoryName);\n }\n}\nexports.NestedCloudAssemblyArtifact = NestedCloudAssemblyArtifact;\n/**\n * Mark all instances of 'NestedCloudAssemblyArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(NestedCloudAssemblyArtifact.prototype, NESTED_CLOUD_ASSEMBLY_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3QixzREFBa0Q7QUFHbEQsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFNUY7O0dBRUc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLHlCQUF5QixJQUFJLEdBQUcsQ0FBQztJQUM1RSxDQUFDO0lBWUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBMkMsQ0FBQztRQUM5RixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUE5Q0Qsa0VBOENDO0FBV0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSx5QkFBeUIsRUFBRTtJQUN0RixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vY2xvdWQtYXNzZW1ibHknO1xuXG5jb25zdCBORVNURURfQ0xPVURfQVNTRU1CTFlfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLk5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCcpO1xuXG4vKipcbiAqIEFzc2V0IG1hbmlmZXN0IGlzIGEgZGVzY3JpcHRpb24gb2YgYSBzZXQgb2YgYXNzZXRzIHdoaWNoIG5lZWQgdG8gYmUgYnVpbHQgYW5kIHB1Ymxpc2hlZFxuICovXG5leHBvcnQgY2xhc3MgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdChhcnQ6IGFueSk6IGFydCBpcyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgTkVTVEVEX0NMT1VEX0FTU0VNQkxZX1NZTSBpbiBhcnQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIGRpcmVjdG9yeSBuYW1lIG9mIHRoZSBhc3NldCBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGlzcGxheSBuYW1lXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgbmFtZTogc3RyaW5nLCBhcnRpZmFjdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHN1cGVyKGFzc2VtYmx5LCBuYW1lLCBhcnRpZmFjdCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gKHRoaXMubWFuaWZlc3QucHJvcGVydGllcyB8fCB7fSkgYXMgY3hzY2hlbWEuTmVzdGVkQ2xvdWRBc3NlbWJseVByb3BlcnRpZXM7XG4gICAgdGhpcy5kaXJlY3RvcnlOYW1lID0gcHJvcGVydGllcy5kaXJlY3RvcnlOYW1lO1xuICAgIHRoaXMuZGlzcGxheU5hbWUgPSBwcm9wZXJ0aWVzLmRpc3BsYXlOYW1lID8/IG5hbWU7XG4gIH1cblxuICAvKipcbiAgICogRnVsbCBwYXRoIHRvIHRoZSBuZXN0ZWQgYXNzZW1ibHkgZGlyZWN0b3J5XG4gICAqL1xuICBwdWJsaWMgZ2V0IGZ1bGxQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGhpcy5kaXJlY3RvcnlOYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBUaGUgbmVzdGVkIEFzc2VtYmx5XG4gICAqL1xuICByZWFkb25seSBuZXN0ZWRBc3NlbWJseTogQ2xvdWRBc3NlbWJseTtcblxuICAvLyBEZWNsYXJlZCBpbiBhIGRpZmZlcmVudCBmaWxlXG59XG5cbi8qKlxuICogTWFyayBhbGwgaW5zdGFuY2VzIG9mICdOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QnXG4gKlxuICogV2h5IG5vdCBwdXQgdGhpcyBpbiB0aGUgY29uc3RydWN0b3I/IEJlY2F1c2UgdGhpcyBpcyBhIGNsYXNzIHByb3BlcnR5LFxuICogbm90IGFuIGluc3RhbmNlIHByb3BlcnR5LiBJdCBhcHBsaWVzIHRvIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0LnByb3RvdHlwZSwgTkVTVEVEX0NMT1VEX0FTU0VNQkxZX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TreeCloudArtifact = void 0;\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst TREE_CLOUD_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.TreeCloudArtifact');\nclass TreeCloudArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `TreeCloudArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `TreeCloudArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isTreeCloudArtifact(art) {\n return art && typeof art === 'object' && TREE_CLOUD_ARTIFACT_SYM in art;\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid TreeCloudArtifact. Missing \"file\" property');\n }\n this.file = properties.file;\n }\n}\nexports.TreeCloudArtifact = TreeCloudArtifact;\n/**\n * Mark all instances of 'TreeCloudArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(TreeCloudArtifact.prototype, TREE_CLOUD_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jbG91ZC1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUtY2xvdWQtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esc0RBQWtEO0FBRWxELDRDQUFzRDtBQUV0RCxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUVoRixNQUFhLGlCQUFrQixTQUFRLDhCQUFhO0lBQ2xEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVE7UUFDeEMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLHVCQUF1QixJQUFJLEdBQUcsQ0FBQztJQUMxRSxDQUFDO0lBSUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBb0MsQ0FBQztRQUN2RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBakNELDhDQWlDQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUU7SUFDMUUsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsS0FBSztJQUNqQixRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vcHJpdmF0ZS9lcnJvcic7XG5cbmNvbnN0IFRSRUVfQ0xPVURfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLlRyZWVDbG91ZEFydGlmYWN0Jyk7XG5cbmV4cG9ydCBjbGFzcyBUcmVlQ2xvdWRBcnRpZmFjdCBleHRlbmRzIENsb3VkQXJ0aWZhY3Qge1xuICAvKipcbiAgICogQ2hlY2tzIGlmIGBhcnRgIGlzIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuXG4gICAqXG4gICAqIFVzZSB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGBpbnN0YW5jZW9mYCB0byBwcm9wZXJseSBkZXRlY3QgYFRyZWVDbG91ZEFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBUcmVlQ2xvdWRBcnRpZmFjdGAgaW4gZWFjaCBjb3B5IG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5XG4gICAqIGlzIHNlZW4gYXMgYSBkaWZmZXJlbnQgY2xhc3MsIGFuZCBhbiBpbnN0YW5jZSBvZiBvbmUgY2xhc3Mgd2lsbCBub3QgdGVzdCBhc1xuICAgKiBgaW5zdGFuY2VvZmAgdGhlIG90aGVyIGNsYXNzLiBgbnBtIGluc3RhbGxgIHdpbGwgbm90IGNyZWF0ZSBpbnN0YWxsYXRpb25zXG4gICAqIGxpa2UgdGhpcywgYnV0IHVzZXJzIG1heSBtYW51YWxseSBzeW1saW5rIGNvbnN0cnVjdCBsaWJyYXJpZXMgdG9nZXRoZXIgb3JcbiAgICogdXNlIGEgbW9ub3JlcG8gdG9vbDogaW4gdGhvc2UgY2FzZXMsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWBcbiAgICogbGlicmFyeSBjYW4gYmUgYWNjaWRlbnRhbGx5IGluc3RhbGxlZCwgYW5kIGBpbnN0YW5jZW9mYCB3aWxsIGJlaGF2ZVxuICAgKiB1bnByZWRpY3RhYmx5LiBJdCBpcyBzYWZlc3QgdG8gYXZvaWQgdXNpbmcgYGluc3RhbmNlb2ZgLCBhbmQgdXNpbmdcbiAgICogdGhpcyB0eXBlLXRlc3RpbmcgbWV0aG9kIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVHJlZUNsb3VkQXJ0aWZhY3QoYXJ0OiBhbnkpOiBhcnQgaXMgVHJlZUNsb3VkQXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgVFJFRV9DTE9VRF9BUlRJRkFDVF9TWU0gaW4gYXJ0O1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgbmFtZTogc3RyaW5nLCBhcnRpZmFjdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHN1cGVyKGFzc2VtYmx5LCBuYW1lLCBhcnRpZmFjdCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gKHRoaXMubWFuaWZlc3QucHJvcGVydGllcyB8fCB7fSkgYXMgY3hzY2hlbWEuVHJlZUFydGlmYWN0UHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMuZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBUcmVlQ2xvdWRBcnRpZmFjdC4gTWlzc2luZyBcImZpbGVcIiBwcm9wZXJ0eScpO1xuICAgIH1cbiAgICB0aGlzLmZpbGUgPSBwcm9wZXJ0aWVzLmZpbGU7XG4gIH1cbn1cblxuLyoqXG4gKiBNYXJrIGFsbCBpbnN0YW5jZXMgb2YgJ1RyZWVDbG91ZEFydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFRyZWVDbG91ZEFydGlmYWN0LnByb3RvdHlwZSwgVFJFRV9DTE9VRF9BUlRJRkFDVF9TWU0sIHtcbiAgdmFsdWU6IHRydWUsXG4gIGVudW1lcmFibGU6IGZhbHNlLFxuICB3cml0YWJsZTogZmFsc2UsXG59KTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASSET_PREFIX_SEPARATOR = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = exports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = exports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_CONTEXTS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = exports.ASSET_RESOURCE_METADATA_PATH_KEY = exports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = void 0;\n/**\n * If this is set in the context, the aws:asset:xxx metadata entries will not be\n * added to the template. This is used, for example, when we run integrationt\n * tests.\n */\nexports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = 'aws:cdk:enable-asset-metadata';\n/**\n * Metadata added to the CloudFormation template entries that map local assets\n * to resources.\n */\nexports.ASSET_RESOURCE_METADATA_PATH_KEY = 'aws:asset:path';\nexports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = 'aws:asset:dockerfile-path';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = 'aws:asset:docker-build-args';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_CONTEXTS_KEY = 'aws:asset:docker-build-contexts';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = 'aws:asset:docker-build-secrets';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = 'aws:asset:docker-build-ssh';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = 'aws:asset:docker-build-target';\nexports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = 'aws:asset:property';\nexports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = 'aws:asset:is-bundled';\nexports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = 'aws:asset:docker-outputs';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = 'aws:asset:docker-cache-from';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = 'aws:asset:docker-cache-to';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = 'aws:asset:docker-cache-disabled';\n/**\n * Separator string that separates the prefix separator from the object key separator.\n *\n * Asset keys will look like:\n *\n * /assets/MyConstruct12345678/||abcdef12345.zip\n *\n * This allows us to encode both the prefix and the full location in a single\n * CloudFormation Template Parameter.\n */\nexports.ASSET_PREFIX_SEPARATOR = '||';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDVSxRQUFBLHVDQUF1QyxHQUFHLCtCQUErQixDQUFDO0FBRXZGOzs7R0FHRztBQUNVLFFBQUEsZ0NBQWdDLEdBQUcsZ0JBQWdCLENBQUM7QUFDcEQsUUFBQSwyQ0FBMkMsR0FBRywyQkFBMkIsQ0FBQztBQUMxRSxRQUFBLDZDQUE2QyxHQUFHLDZCQUE2QixDQUFDO0FBQzlFLFFBQUEsaURBQWlELEdBQUcsaUNBQWlDLENBQUM7QUFDdEYsUUFBQSxnREFBZ0QsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNwRixRQUFBLDRDQUE0QyxHQUFHLDRCQUE0QixDQUFDO0FBQzVFLFFBQUEsK0NBQStDLEdBQUcsK0JBQStCLENBQUM7QUFDbEYsUUFBQSxvQ0FBb0MsR0FBRyxvQkFBb0IsQ0FBQztBQUM1RCxRQUFBLHNDQUFzQyxHQUFHLHNCQUFzQixDQUFDO0FBQ2hFLFFBQUEsMENBQTBDLEdBQUcsMEJBQTBCLENBQUM7QUFDeEUsUUFBQSw2Q0FBNkMsR0FBRyw2QkFBNkIsQ0FBQztBQUM5RSxRQUFBLDJDQUEyQyxHQUFHLDJCQUEyQixDQUFDO0FBQzFFLFFBQUEsaURBQWlELEdBQUcsaUNBQWlDLENBQUM7QUFFbkc7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIElmIHRoaXMgaXMgc2V0IGluIHRoZSBjb250ZXh0LCB0aGUgYXdzOmFzc2V0Onh4eCBtZXRhZGF0YSBlbnRyaWVzIHdpbGwgbm90IGJlXG4gKiBhZGRlZCB0byB0aGUgdGVtcGxhdGUuIFRoaXMgaXMgdXNlZCwgZm9yIGV4YW1wbGUsIHdoZW4gd2UgcnVuIGludGVncmF0aW9udFxuICogdGVzdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9FTkFCTEVEX0NPTlRFWFQgPSAnYXdzOmNkazplbmFibGUtYXNzZXQtbWV0YWRhdGEnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGFkZGVkIHRvIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBlbnRyaWVzIHRoYXQgbWFwIGxvY2FsIGFzc2V0c1xuICogdG8gcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfUEFUSF9LRVkgPSAnYXdzOmFzc2V0OnBhdGgnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUkZJTEVfUEFUSF9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlcmZpbGUtcGF0aCc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0JVSUxEX0FSR1NfS0VZID0gJ2F3czphc3NldDpkb2NrZXItYnVpbGQtYXJncyc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0JVSUxEX0NPTlRFWFRTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLWNvbnRleHRzJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQlVJTERfU0VDUkVUU19LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1idWlsZC1zZWNyZXRzJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQlVJTERfU1NIX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLXNzaCc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0JVSUxEX1RBUkdFVF9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1idWlsZC10YXJnZXQnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX1BST1BFUlRZX0tFWSA9ICdhd3M6YXNzZXQ6cHJvcGVydHknO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0lTX0JVTkRMRURfS0VZID0gJ2F3czphc3NldDppcy1idW5kbGVkJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfT1VUUFVUU19LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1vdXRwdXRzJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQ0FDSEVfRlJPTV9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1jYWNoZS1mcm9tJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQ0FDSEVfVE9fS0VZID0gJ2F3czphc3NldDpkb2NrZXItY2FjaGUtdG8nO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9DQUNIRV9ESVNBQkxFRF9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1jYWNoZS1kaXNhYmxlZCc7XG5cbi8qKlxuICogU2VwYXJhdG9yIHN0cmluZyB0aGF0IHNlcGFyYXRlcyB0aGUgcHJlZml4IHNlcGFyYXRvciBmcm9tIHRoZSBvYmplY3Qga2V5IHNlcGFyYXRvci5cbiAqXG4gKiBBc3NldCBrZXlzIHdpbGwgbG9vayBsaWtlOlxuICpcbiAqICAgIC9hc3NldHMvTXlDb25zdHJ1Y3QxMjM0NTY3OC98fGFiY2RlZjEyMzQ1LnppcFxuICpcbiAqIFRoaXMgYWxsb3dzIHVzIHRvIGVuY29kZSBib3RoIHRoZSBwcmVmaXggYW5kIHRoZSBmdWxsIGxvY2F0aW9uIGluIGEgc2luZ2xlXG4gKiBDbG91ZEZvcm1hdGlvbiBUZW1wbGF0ZSBQYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBBU1NFVF9QUkVGSVhfU0VQQVJBVE9SID0gJ3x8JztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSMPARAM_NO_INVALIDATE = void 0;\n/**\n * This SSM parameter does not invalidate the template\n *\n * If this string occurs in the description of an SSM parameter, the CLI\n * will not assume that the stack must always be redeployed.\n */\nexports.SSMPARAM_NO_INVALIDATE = '[cdk:skip]';\n// Not strictly part of the cloud-assembly-api, but it definitely belongs here more than in cx-api.\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7OztHQUtHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxZQUFZLENBQUM7QUFFbkQsbUdBQW1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIFNTTSBwYXJhbWV0ZXIgZG9lcyBub3QgaW52YWxpZGF0ZSB0aGUgdGVtcGxhdGVcbiAqXG4gKiBJZiB0aGlzIHN0cmluZyBvY2N1cnMgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIGFuIFNTTSBwYXJhbWV0ZXIsIHRoZSBDTElcbiAqIHdpbGwgbm90IGFzc3VtZSB0aGF0IHRoZSBzdGFjayBtdXN0IGFsd2F5cyBiZSByZWRlcGxveWVkLlxuICovXG5leHBvcnQgY29uc3QgU1NNUEFSQU1fTk9fSU5WQUxJREFURSA9ICdbY2RrOnNraXBdJztcblxuLy8gTm90IHN0cmljdGx5IHBhcnQgb2YgdGhlIGNsb3VkLWFzc2VtYmx5LWFwaSwgYnV0IGl0IGRlZmluaXRlbHkgYmVsb25ncyBoZXJlIG1vcmUgdGhhbiBpbiBjeC1hcGkuXG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst asset_manifest_artifact_1 = require(\"./artifacts/asset-manifest-artifact\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\n/**\n * Add the 'fromManifest' factory function\n *\n * It is defined in a separate file to avoid circular dependencies between 'cloud-artifact.ts'\n * and all of its subclass files.\n */\ncloud_artifact_1.CloudArtifact.fromManifest = function fromManifest(assembly, id, artifact) {\n switch (artifact.type) {\n case cxschema.ArtifactType.AWS_CLOUDFORMATION_STACK:\n return new cloudformation_artifact_1.CloudFormationStackArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.CDK_TREE:\n return new tree_cloud_artifact_1.TreeCloudArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.ASSET_MANIFEST:\n return new asset_manifest_artifact_1.AssetManifestArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY:\n return new nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact(assembly, id, artifact);\n default:\n return undefined;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QtYXVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtYXJ0aWZhY3QtYXVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkRBQTJEO0FBQzNELGlGQUE0RTtBQUM1RSxpRkFBa0Y7QUFDbEYsK0ZBQXlGO0FBQ3pGLHlFQUFvRTtBQUNwRSxxREFBaUQ7QUFHakQ7Ozs7O0dBS0c7QUFDSCw4QkFBYSxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FDaEQsUUFBdUIsRUFDdkIsRUFBVSxFQUNWLFFBQW1DO0lBRW5DLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFlBQVksQ0FBQyx3QkFBd0I7WUFDakQsT0FBTyxJQUFJLHFEQUEyQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDakMsT0FBTyxJQUFJLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWM7WUFDdkMsT0FBTyxJQUFJLCtDQUFxQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLHFCQUFxQjtZQUM5QyxPQUFPLElBQUksNERBQTJCLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRTtZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQXNzZXRNYW5pZmVzdEFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvYXNzZXQtbWFuaWZlc3QtYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QnO1xuaW1wb3J0IHsgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCB7IFRyZWVDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvdHJlZS1jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcblxuLyoqXG4gKiBBZGQgdGhlICdmcm9tTWFuaWZlc3QnIGZhY3RvcnkgZnVuY3Rpb25cbiAqXG4gKiBJdCBpcyBkZWZpbmVkIGluIGEgc2VwYXJhdGUgZmlsZSB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYmV0d2VlbiAnY2xvdWQtYXJ0aWZhY3QudHMnXG4gKiBhbmQgYWxsIG9mIGl0cyBzdWJjbGFzcyBmaWxlcy5cbiAqL1xuQ2xvdWRBcnRpZmFjdC5mcm9tTWFuaWZlc3QgPSBmdW5jdGlvbiBmcm9tTWFuaWZlc3QoXG4gIGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LFxuICBpZDogc3RyaW5nLFxuICBhcnRpZmFjdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCxcbik6IENsb3VkQXJ0aWZhY3QgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKGFydGlmYWN0LnR5cGUpIHtcbiAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0s6XG4gICAgICByZXR1cm4gbmV3IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhc3NlbWJseSwgaWQsIGFydGlmYWN0KTtcbiAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0VHlwZS5DREtfVFJFRTpcbiAgICAgIHJldHVybiBuZXcgVHJlZUNsb3VkQXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQVNTRVRfTUFOSUZFU1Q6XG4gICAgICByZXR1cm4gbmV3IEFzc2V0TWFuaWZlc3RBcnRpZmFjdChhc3NlbWJseSwgaWQsIGFydGlmYWN0KTtcbiAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0VHlwZS5ORVNURURfQ0xPVURfQVNTRU1CTFk6XG4gICAgICByZXR1cm4gbmV3IE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdChhc3NlbWJseSwgaWQsIGFydGlmYWN0KTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudArtifact = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst metadata_1 = require(\"./metadata\");\nconst error_1 = require(\"./private/error\");\n/**\n * Represents an artifact within a cloud assembly.\n */\nclass CloudArtifact {\n /**\n * Read the metadata for the given artifact\n *\n * HISTORICAL OR PRIVATE USE ONLY\n *\n * This is publicly exposed as a static function for downstream libraries that\n * don't use the `CloudAssembly`/`CloudArtifact` API, yet still need to read\n * an artifact's metadata.\n *\n * 99% of consumers should just access `artifact.metadata`.\n */\n static readMetadata(assemblyDirectory, x) {\n const ret = {};\n if (x.additionalMetadataFile) {\n Object.assign(ret, JSON.parse(fs.readFileSync(path.join(assemblyDirectory, x.additionalMetadataFile), 'utf-8')));\n }\n for (const [p, entries] of Object.entries(x.metadata ?? {})) {\n if (ret[p]) {\n ret[p].push(...entries);\n }\n else {\n ret[p] = entries;\n }\n }\n return ret;\n }\n /**\n * Returns a subclass of `CloudArtifact` based on the artifact type defined in the artifact manifest.\n *\n * @param assembly - The cloud assembly from which to load the artifact\n * @param id - The artifact ID\n * @param artifact - The artifact manifest\n * @returns the `CloudArtifact` that matches the artifact type or `undefined` if it's an artifact type that is unrecognized by this module.\n */\n static fromManifest(assembly, id, artifact) {\n // Implementation is defined in a separate file to break cyclic dependencies\n void (assembly), void (id), void (artifact);\n throw new error_1.CloudAssemblyError('Implementation not overridden yet');\n }\n constructor(assembly, id, manifest) {\n this.assembly = assembly;\n this.id = id;\n this.manifest = manifest;\n this.messages = this.renderMessages();\n this._dependencyIDs = manifest.dependencies || [];\n }\n /**\n * Returns the metadata associated with this Cloud Artifact\n */\n get metadata() {\n return CloudArtifact.readMetadata(this.assembly.directory, this.manifest);\n }\n /**\n * Returns all the artifacts that this artifact depends on.\n */\n get dependencies() {\n if (this._deps) {\n return this._deps;\n }\n this._deps = this._dependencyIDs.map(id => {\n const dep = this.assembly.tryGetArtifact(id);\n if (!dep) {\n throw new error_1.CloudAssemblyError(`Artifact ${this.id} depends on non-existing artifact ${id}`);\n }\n return dep;\n });\n return this._deps;\n }\n /**\n * @returns all the metadata entries of a specific type in this artifact.\n */\n findMetadataByType(type) {\n const metadata = this.metadata;\n const result = new Array();\n for (const p of Object.keys(metadata || {})) {\n for (const entry of (metadata || {})[p]) {\n if (entry.type === type) {\n result.push({ path: p, ...entry });\n }\n }\n }\n return result;\n }\n renderMessages() {\n const messages = new Array();\n for (const [id, metadata] of Object.entries(this.metadata || {})) {\n for (const entry of metadata) {\n let level;\n switch (entry.type) {\n case cxschema.ArtifactMetadataEntryType.WARN:\n level = metadata_1.SynthesisMessageLevel.WARNING;\n break;\n case cxschema.ArtifactMetadataEntryType.ERROR:\n level = metadata_1.SynthesisMessageLevel.ERROR;\n break;\n case cxschema.ArtifactMetadataEntryType.INFO:\n level = metadata_1.SynthesisMessageLevel.INFO;\n break;\n default:\n continue;\n }\n messages.push({ level, entry, id });\n }\n }\n return messages;\n }\n /**\n * An identifier that shows where this artifact is located in the tree\n * of nested assemblies, based on their manifests. Defaults to the normal\n * id. Should only be used in user interfaces.\n */\n get hierarchicalId() {\n return this.manifest.displayName ?? this.id;\n }\n}\nexports.CloudArtifact = CloudArtifact;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDJEQUEyRDtBQUczRCx5Q0FBbUQ7QUFDbkQsMkNBQXFEO0FBOEJyRDs7R0FFRztBQUNILE1BQWEsYUFBYTtJQUN4Qjs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxpQkFBeUIsRUFBRSxDQUE0QjtRQUNoRixNQUFNLEdBQUcsR0FBNkMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ILENBQUM7UUFFRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDMUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUF1QixFQUFFLEVBQVUsRUFBRSxRQUFtQztR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QzNDLEtBQUssR0FBRyxnQ0FBcUIsQ0FBQyxLQUFLLENBQUM7d0JBQ3BDLE1BQU07b0JBQ1IsS0FBSyxRQUFRLENBQUMseUJBQXlCLENBQUMsSUFBSTt3QkFDMUMsS0FBSyxHQUFHLGdDQUFxQixDQUFDLElBQUksQ0FBQzt3QkFDbkMsTUFBTTtvQkFDUjt3QkFDRSxTQUFTO2dCQUNiLENBQUM7Z0JBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFwSkQsc0NBb0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgTWV0YWRhdGFFbnRyeVJlc3VsdCwgU3ludGhlc2lzTWVzc2FnZSB9IGZyb20gJy4vbWV0YWRhdGEnO1xuaW1wb3J0IHsgU3ludGhlc2lzTWVzc2FnZUxldmVsIH0gZnJvbSAnLi9tZXRhZGF0YSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL3ByaXZhdGUvZXJyb3InO1xuXG4vKipcbiAqIEFydGlmYWN0IHByb3BlcnRpZXMgZm9yIENsb3VkRm9ybWF0aW9uIHN0YWNrcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBBIGZpbGUgcmVsYXRpdmUgdG8gdGhlIGFzc2VtYmx5IHJvb3Qgd2hpY2ggY29udGFpbnMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGZvciB0aGlzIHN0YWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGVGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhbHVlcyBmb3IgQ2xvdWRGb3JtYXRpb24gc3RhY2sgcGFyYW1ldGVycyB0aGF0IHNob3VsZCBiZSBwYXNzZWQgd2hlbiB0aGUgc3RhY2sgaXMgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0byB1c2UgZm9yIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICogQGRlZmF1bHQgLSBuYW1lIGRlcml2ZWQgZnJvbSBhcnRpZmFjdCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIGZvciB0aGlzIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVybWluYXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGFydGlmYWN0IHdpdGhpbiBhIGNsb3VkIGFzc2VtYmx5LlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBSZWFkIHRoZSBtZXRhZGF0YSBmb3IgdGhlIGdpdmVuIGFydGlmYWN0XG4gICAqXG4gICAqIEhJU1RPUklDQUwgT1IgUFJJVkFURSBVU0UgT05MWVxuICAgKlxuICAgKiBUaGlzIGlzIHB1YmxpY2x5IGV4cG9zZWQgYXMgYSBzdGF0aWMgZnVuY3Rpb24gZm9yIGRvd25zdHJlYW0gbGlicmFyaWVzIHRoYXRcbiAgICogZG9uJ3QgdXNlIHRoZSBgQ2xvdWRBc3NlbWJseWAvYENsb3VkQXJ0aWZhY3RgIEFQSSwgeWV0IHN0aWxsIG5lZWQgdG8gcmVhZFxuICAgKiBhbiBhcnRpZmFjdCdzIG1ldGFkYXRhLlxuICAgKlxuICAgKiA5OSUgb2YgY29uc3VtZXJzIHNob3VsZCBqdXN0IGFjY2VzcyBgYXJ0aWZhY3QubWV0YWRhdGFgLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkTWV0YWRhdGEoYXNzZW1ibHlEaXJlY3Rvcnk6IHN0cmluZywgeDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCk6IFJlY29yZDxzdHJpbmcsIGN4c2NoZW1hLk1ldGFkYXRhRW50cnlbXT4ge1xuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgY3hzY2hlbWEuTWV0YWRhdGFFbnRyeVtdPiA9IHt9O1xuICAgIGlmICh4LmFkZGl0aW9uYWxNZXRhZGF0YUZpbGUpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oYXNzZW1ibHlEaXJlY3RvcnksIHguYWRkaXRpb25hbE1ldGFkYXRhRmlsZSksICd1dGYtOCcpKSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbcCwgZW50cmllc10gb2YgT2JqZWN0LmVudHJpZXMoeC5tZXRhZGF0YSA/PyB7fSkpIHtcbiAgICAgIGlmIChyZXRbcF0pIHtcbiAgICAgICAgcmV0W3BdLnB1c2goLi4uZW50cmllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXRbcF0gPSBlbnRyaWVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN1YmNsYXNzIG9mIGBDbG91ZEFydGlmYWN0YCBiYXNlZCBvbiB0aGUgYXJ0aWZhY3QgdHlwZSBkZWZpbmVkIGluIHRoZSBhcnRpZmFjdCBtYW5pZmVzdC5cbiAgICpcbiAgICogQHBhcmFtIGFzc2VtYmx5IC0gVGhlIGNsb3VkIGFzc2VtYmx5IGZyb20gd2hpY2ggdG8gbG9hZCB0aGUgYXJ0aWZhY3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIGFydGlmYWN0IElEXG4gICAqIEBwYXJhbSBhcnRpZmFjdCAtIFRoZSBhcnRpZmFjdCBtYW5pZmVzdFxuICAgKiBAcmV0dXJucyB0aGUgYENsb3VkQXJ0aWZhY3RgIHRoYXQgbWF0Y2hlcyB0aGUgYXJ0aWZhY3QgdHlwZSBvciBgdW5kZWZpbmVkYCBpZiBpdCdzIGFuIGFydGlmYWN0IHR5cGUgdGhhdCBpcyB1bnJlY29nbml6ZWQgYnkgdGhpcyBtb2R1bGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21NYW5pZmVzdChhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgaWQ6IHN0cmluZywgYXJ0aWZhY3Q6IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QpOiBDbG91ZEFydGlmYWN0IHwgdW5kZWZpbmVkIHtcbiAgICAvLyBJbXBsZW1lbnRhdGlvbiBpcyBkZWZpbmVkIGluIGEgc2VwYXJhdGUgZmlsZSB0byBicmVhayBjeWNsaWMgZGVwZW5kZW5jaWVzXG4gICAgdm9pZChhc3NlbWJseSksIHZvaWQoaWQpLCB2b2lkKGFydGlmYWN0KTtcbiAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbXBsZW1lbnRhdGlvbiBub3Qgb3ZlcnJpZGRlbiB5ZXQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3QncyBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIG1lc3NhZ2VzIGV4dHJhY3RlZCBmcm9tIHRoZSBhcnRpZmFjdCdzIG1ldGFkYXRhLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzOiBTeW50aGVzaXNNZXNzYWdlW107XG5cbiAgLyoqXG4gICAqIElEcyBvZiBhbGwgZGVwZW5kZW5jaWVzLiBVc2VkIHdoZW4gdG9wb2xvZ2ljYWxseSBzb3J0aW5nIHRoZSBhcnRpZmFjdHMgd2l0aGluIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgX2RlcGVuZGVuY3lJRHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDYWNoZSBvZiByZXNvbHZlZCBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBwcml2YXRlIF9kZXBzPzogQ2xvdWRBcnRpZmFjdFtdO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IENsb3VkQXNzZW1ibHksIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nLCBtYW5pZmVzdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHRoaXMubWFuaWZlc3QgPSBtYW5pZmVzdDtcbiAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5yZW5kZXJNZXNzYWdlcygpO1xuICAgIHRoaXMuX2RlcGVuZGVuY3lJRHMgPSBtYW5pZmVzdC5kZXBlbmRlbmNpZXMgfHwgW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQ2xvdWQgQXJ0aWZhY3RcbiAgICovXG4gIHB1YmxpYyBnZXQgbWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIENsb3VkQXJ0aWZhY3QucmVhZE1ldGFkYXRhKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCB0aGlzLm1hbmlmZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCB0aGUgYXJ0aWZhY3RzIHRoYXQgdGhpcyBhcnRpZmFjdCBkZXBlbmRzIG9uLlxuICAgKi9cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogQ2xvdWRBcnRpZmFjdFtdIHtcbiAgICBpZiAodGhpcy5fZGVwcykge1xuICAgICAgcmV0dXJuIHRoaXMuX2RlcHM7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVwcyA9IHRoaXMuX2RlcGVuZGVuY3lJRHMubWFwKGlkID0+IHtcbiAgICAgIGNvbnN0IGRlcCA9IHRoaXMuYXNzZW1ibHkudHJ5R2V0QXJ0aWZhY3QoaWQpO1xuICAgICAgaWYgKCFkZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgQXJ0aWZhY3QgJHt0aGlzLmlkfSBkZXBlbmRzIG9uIG5vbi1leGlzdGluZyBhcnRpZmFjdCAke2lkfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRlcDtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9kZXBzO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGFsbCB0aGUgbWV0YWRhdGEgZW50cmllcyBvZiBhIHNwZWNpZmljIHR5cGUgaW4gdGhpcyBhcnRpZmFjdC5cbiAgICovXG4gIHB1YmxpYyBmaW5kTWV0YWRhdGFCeVR5cGUodHlwZTogc3RyaW5nKTogTWV0YWRhdGFFbnRyeVJlc3VsdFtdIHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMubWV0YWRhdGE7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8TWV0YWRhdGFFbnRyeVJlc3VsdD4oKTtcbiAgICBmb3IgKGNvbnN0IHAgb2YgT2JqZWN0LmtleXMobWV0YWRhdGEgfHwge30pKSB7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIChtZXRhZGF0YSB8fCB7fSlbcF0pIHtcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IHR5cGUpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh7IHBhdGg6IHAsIC4uLmVudHJ5IH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlck1lc3NhZ2VzKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gbmV3IEFycmF5PFN5bnRoZXNpc01lc3NhZ2U+KCk7XG5cbiAgICBmb3IgKGNvbnN0IFtpZCwgbWV0YWRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWV0YWRhdGEgfHwgeyB9KSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBtZXRhZGF0YSkge1xuICAgICAgICBsZXQgbGV2ZWw6IFN5bnRoZXNpc01lc3NhZ2VMZXZlbDtcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLldBUk46XG4gICAgICAgICAgICBsZXZlbCA9IFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5XQVJOSU5HO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLkVSUk9SOlxuICAgICAgICAgICAgbGV2ZWwgPSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwuRVJST1I7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuSU5GTzpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk87XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbGV2ZWwsIGVudHJ5LCBpZCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gIH1cblxuICAvKipcbiAgICogQW4gaWRlbnRpZmllciB0aGF0IHNob3dzIHdoZXJlIHRoaXMgYXJ0aWZhY3QgaXMgbG9jYXRlZCBpbiB0aGUgdHJlZVxuICAgKiBvZiBuZXN0ZWQgYXNzZW1ibGllcywgYmFzZWQgb24gdGhlaXIgbWFuaWZlc3RzLiBEZWZhdWx0cyB0byB0aGUgbm9ybWFsXG4gICAqIGlkLiBTaG91bGQgb25seSBiZSB1c2VkIGluIHVzZXIgaW50ZXJmYWNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGllcmFyY2hpY2FsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYW5pZmVzdC5kaXNwbGF5TmFtZSA/PyB0aGlzLmlkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyBuilder = exports.CloudAssembly = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema/lib\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\nconst error_1 = require(\"./private/error\");\nconst toposort_1 = require(\"./private/toposort\");\nconst CLOUD_ASSEMBLY_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssembly');\n/**\n * The name of the root manifest file of the assembly.\n */\nconst MANIFEST_FILE = 'manifest.json';\n/**\n * Represents a deployable cloud application.\n */\nclass CloudAssembly {\n /**\n * Return whether the given object is a CloudAssembly.\n *\n * We do attribute detection since we can't reliably use 'instanceof'.\n */\n static isCloudAssembly(x) {\n return x !== null && typeof (x) === 'object' && CLOUD_ASSEMBLY_SYMBOL in x;\n }\n /**\n * Cleans up any temporary assembly directories that got created in this process\n *\n * If a Cloud Assembly is emitted to a temporary directory, its directory gets\n * added to a list. This function iterates over that list and deletes each\n * directory in it, to free up disk space.\n *\n * This function will normally be called automatically during Node process\n * exit and so you don't need to call this. However, some test environments do\n * not properly trigger Node's `exit` event. Notably: Jest does not trigger\n * the `exit` event ().\n *\n * ## Cleaning up temporary directories in jest\n *\n * For Jest, you have to make sure this function is called at the end of the\n * test suite instead:\n *\n * ```js\n * import { CloudAssembly } from 'aws-cdk-lib/cx-api';\n *\n * afterAll(CloudAssembly.cleanupTemporaryDirectories);\n * ```\n *\n * Alternatively, you can use the `setupFilesAfterEnv` feature and use a\n * provided helper script to automatically inject the above into every\n * test file, so you don't have to do it by hand.\n *\n * ```\n * $ npx jest --setupFilesAfterEnv aws-cdk-lib/testhelpers/jest-autoclean\n * ```\n *\n * Or put the following into `jest.config.js`:\n *\n * ```js\n * module.exports = {\n * // ...\n * setupFilesAfterEnv: ['aws-cdk-lib/testhelpers/jest-cleanup'],\n * };\n * ```\n */\n static cleanupTemporaryDirectories() {\n for (const dir of TEMPORARY_ASSEMBLY_DIRS) {\n fs.rmSync(dir, { recursive: true, force: true });\n }\n TEMPORARY_ASSEMBLY_DIRS.splice(0, TEMPORARY_ASSEMBLY_DIRS.length);\n }\n /**\n * Reads a cloud assembly from the specified directory.\n * @param directory - The root directory of the assembly.\n */\n constructor(directory, loadOptions) {\n this.directory = directory;\n this.loadOptions = loadOptions;\n this.manifest = cxschema.Manifest.loadAssemblyManifest(path.join(directory, MANIFEST_FILE), this.loadOptions);\n this.version = this.manifest.version;\n this.artifacts = this.renderArtifacts(this.loadOptions?.topoSort ?? true);\n this.runtime = this.manifest.runtime || { libraries: {} };\n Object.defineProperty(this, CLOUD_ASSEMBLY_SYMBOL, { value: true });\n // force validation of deps by accessing 'depends' on all artifacts\n this.validateDeps();\n }\n /**\n * Attempts to find an artifact with a specific identity.\n * @returns A `CloudArtifact` object or `undefined` if the artifact does not exist in this assembly.\n * @param id - The artifact ID\n */\n tryGetArtifact(id) {\n return this.artifacts.find(a => a.id === id);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * Will only search the current assembly.\n *\n * @param stackName - the name of the CloudFormation stack.\n * @throws if there is no stack artifact by that name\n * @throws if there is more than one stack with the same stack name. You can\n * use `getStackArtifact(stack.artifactId)` instead.\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackByName(stackName) {\n const artifacts = this.artifacts.filter(a => a instanceof cloudformation_artifact_1.CloudFormationStackArtifact && a.stackName === stackName);\n if (!artifacts || artifacts.length === 0) {\n throw new error_1.CloudAssemblyError(`Unable to find stack with stack name \"${stackName}\"`);\n }\n if (artifacts.length > 1) {\n throw new error_1.CloudAssemblyError(`There are multiple stacks with the stack name \"${stackName}\" (${artifacts.map(a => a.id).join(',')}). Use \"getStackArtifact(id)\" instead`);\n }\n return artifacts[0];\n }\n /**\n * Returns a CloudFormation stack artifact by name from this assembly.\n * @deprecated renamed to `getStackByName` (or `getStackArtifact(id)`)\n */\n getStack(stackName) {\n return this.getStackByName(stackName);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * @param artifactId - the artifact id of the stack (can be obtained through `stack.artifactId`).\n * @throws if there is no stack artifact with that id\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackArtifact(artifactId) {\n const artifact = this.tryGetArtifactRecursively(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof cloudformation_artifact_1.CloudFormationStackArtifact)) {\n throw new error_1.CloudAssemblyError(`Artifact ${artifactId} is not a CloudFormation stack`);\n }\n return artifact;\n }\n tryGetArtifactRecursively(artifactId) {\n return this.stacksRecursively.find(a => a.id === artifactId);\n }\n /**\n * Returns all the stacks, including the ones in nested assemblies\n */\n get stacksRecursively() {\n function search(stackArtifacts, assemblies) {\n if (assemblies.length === 0) {\n return stackArtifacts;\n }\n const [head, ...tail] = assemblies;\n const nestedAssemblies = head.nestedAssemblies.map(asm => asm.nestedAssembly);\n return search(stackArtifacts.concat(head.stacks), tail.concat(nestedAssemblies));\n }\n return search([], [this]);\n }\n /**\n * Returns a nested assembly artifact.\n *\n * @param artifactId - The artifact ID of the nested assembly\n */\n getNestedAssemblyArtifact(artifactId) {\n const artifact = this.tryGetArtifact(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact)) {\n throw new error_1.CloudAssemblyError(`Found artifact '${artifactId}' but it's not a nested cloud assembly`);\n }\n return artifact;\n }\n /**\n * Returns a nested assembly.\n *\n * @param artifactId - The artifact ID of the nested assembly\n */\n getNestedAssembly(artifactId) {\n return this.getNestedAssemblyArtifact(artifactId).nestedAssembly;\n }\n /**\n * Returns the tree metadata artifact from this assembly.\n * @throws if there is no metadata artifact by that name\n * @returns a `TreeCloudArtifact` object if there is one defined in the manifest, `undefined` otherwise.\n */\n tree() {\n const trees = this.artifacts.filter(a => a.manifest.type === cxschema.ArtifactType.CDK_TREE);\n if (trees.length === 0) {\n return undefined;\n }\n else if (trees.length > 1) {\n throw new error_1.CloudAssemblyError(`Multiple artifacts of type ${cxschema.ArtifactType.CDK_TREE} found in manifest`);\n }\n const tree = trees[0];\n if (!(tree instanceof tree_cloud_artifact_1.TreeCloudArtifact)) {\n throw new error_1.CloudAssemblyError('\"Tree\" artifact is not of expected type');\n }\n return tree;\n }\n /**\n * @returns all the CloudFormation stack artifacts that are included in this assembly.\n */\n get stacks() {\n return this.artifacts.filter(isCloudFormationStackArtifact);\n function isCloudFormationStackArtifact(x) {\n return x instanceof cloudformation_artifact_1.CloudFormationStackArtifact;\n }\n }\n /**\n * The nested assembly artifacts in this assembly\n */\n get nestedAssemblies() {\n return this.artifacts.filter(isNestedCloudAssemblyArtifact);\n function isNestedCloudAssemblyArtifact(x) {\n return x instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact;\n }\n }\n validateDeps() {\n for (const artifact of this.artifacts) {\n ignore(artifact.dependencies);\n }\n }\n renderArtifacts(topoSort) {\n const result = new Array();\n for (const [name, artifact] of Object.entries(this.manifest.artifacts || {})) {\n const cloudartifact = cloud_artifact_1.CloudArtifact.fromManifest(this, name, artifact);\n if (cloudartifact) {\n result.push(cloudartifact);\n }\n }\n return topoSort ? (0, toposort_1.topologicalSort)(result, x => x.id, x => x._dependencyIDs) : result;\n }\n}\nexports.CloudAssembly = CloudAssembly;\n/**\n * Can be used to build a cloud assembly.\n */\nclass CloudAssemblyBuilder {\n /**\n * Initializes a cloud assembly builder.\n * @param outdir - The output directory, uses temporary directory if undefined\n */\n constructor(outdir, props = {}) {\n this.artifacts = {};\n this.missing = new Array();\n this.outdir = determineOutputDirectory(outdir);\n this.assetOutdir = props.assetOutdir ?? this.outdir;\n this.parentBuilder = props.parentBuilder;\n // we leverage the fact that outdir is long-lived to avoid staging assets into it\n // that were already staged (copying can be expensive). this is achieved by the fact\n // that assets use a source hash as their name. other artifacts, and the manifest itself,\n // will overwrite existing files as needed.\n ensureDirSync(this.outdir);\n }\n /**\n * Adds an artifact into the cloud assembly.\n * @param id - The ID of the artifact.\n * @param manifest - The artifact manifest\n */\n addArtifact(id, manifest) {\n this.artifacts[id] = filterUndefined(manifest);\n }\n /**\n * Reports that some context is missing in order for this cloud assembly to be fully synthesized.\n * @param missing - Missing context information.\n */\n addMissing(missing) {\n if (this.missing.every(m => m.key !== missing.key)) {\n this.missing.push(missing);\n }\n // Also report in parent\n this.parentBuilder?.addMissing(missing);\n }\n /**\n * Finalizes the cloud assembly into the output directory returns a\n * `CloudAssembly` object that can be used to inspect the assembly.\n */\n buildAssembly(options = {}) {\n // explicitly initializing this type will help us detect\n // breaking changes. (For example adding a required property will break compilation).\n let manifest = {\n version: cxschema.Manifest.version(),\n artifacts: this.artifacts,\n runtime: options.runtimeInfo,\n missing: this.missing.length > 0 ? this.missing : undefined,\n };\n // now we can filter\n manifest = filterUndefined(manifest);\n const manifestFilePath = path.join(this.outdir, MANIFEST_FILE);\n cxschema.Manifest.saveAssemblyManifest(manifest, manifestFilePath);\n // \"backwards compatibility\": in order for the old CLI to tell the user they\n // need a new version, we'll emit the legacy manifest with only \"version\".\n // this will result in an error \"CDK Toolkit >= CLOUD_ASSEMBLY_VERSION is required in order to interact with this program.\"\n fs.writeFileSync(path.join(this.outdir, 'cdk.out'), JSON.stringify({ version: manifest.version }));\n return new CloudAssembly(this.outdir);\n }\n /**\n * Creates a nested cloud assembly\n */\n createNestedAssembly(artifactId, displayName) {\n const directoryName = artifactId;\n const innerAsmDir = path.join(this.outdir, directoryName);\n this.addArtifact(artifactId, {\n type: cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY,\n properties: {\n directoryName,\n displayName,\n },\n });\n return new CloudAssemblyBuilder(innerAsmDir, {\n // Reuse the same asset output directory as the current Casm builder\n assetOutdir: this.assetOutdir,\n parentBuilder: this,\n });\n }\n /**\n * Delete the cloud assembly directory\n */\n delete() {\n fs.rmSync(this.outdir, { recursive: true, force: true });\n }\n}\nexports.CloudAssemblyBuilder = CloudAssemblyBuilder;\n/**\n * Returns a copy of `obj` without undefined values in maps or arrays.\n */\nfunction filterUndefined(obj) {\n if (Array.isArray(obj)) {\n return obj.filter(x => x !== undefined).map(x => filterUndefined(x));\n }\n if (typeof (obj) === 'object') {\n const ret = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined) {\n continue;\n }\n ret[key] = filterUndefined(value);\n }\n return ret;\n }\n return obj;\n}\nfunction ignore(_x) {\n return;\n}\n/**\n * Turn the given optional output directory into a fixed output directory\n */\nfunction determineOutputDirectory(outdir) {\n if (outdir) {\n return outdir;\n }\n // Make a temporary directory; clean it up automatically if this is done for testing.\n const tmpDir = fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out'));\n TEMPORARY_ASSEMBLY_DIRS.push(tmpDir);\n return outdir ?? tmpDir;\n}\nfunction ensureDirSync(dir) {\n if (fs.existsSync(dir)) {\n if (!fs.statSync(dir).isDirectory()) {\n throw new error_1.CloudAssemblyError(`${dir} must be a directory`);\n }\n }\n else {\n fs.mkdirSync(dir, { recursive: true });\n }\n}\n// On process exit, delete all temporary assembly directories\nconst TEMPORARY_ASSEMBLY_DIRS = [];\nprocess.on('exit', () => CloudAssembly.cleanupTemporaryDirectories());\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3QiwrREFBK0Q7QUFDL0QsaUZBQWtGO0FBQ2xGLCtGQUF5RjtBQUN6Rix5RUFBb0U7QUFDcEUscURBQWlEO0FBQ2pELDJDQUFxRDtBQUNyRCxpREFBcUQ7QUFFckQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFMUU7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBTTtRQUNsQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxxQkFBcUIsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1Q0c7SUFDSSxNQUFNLENBQUMsMkJBQTJCO1FBQ3ZDLEtBQUssTUFBTSxHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQztZQUMxQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQWdDRDs7O09BR0c7SUFDSCxZQUFZLFNBQWlCLEVBQUUsV0FBMEM7UUFDdkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdB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QU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRix1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFXO0lBQ2hDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLDBCQUFrQixDQUFDLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztBQUNILENBQUM7QUFFRCw2REFBNkQ7QUFDN0QsTUFBTSx1QkFBdUIsR0FBYSxFQUFFLENBQUM7QUFDN0MsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYS9saWInO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QnO1xuaW1wb3J0IHsgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCB7IFRyZWVDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvdHJlZS1jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL3ByaXZhdGUvZXJyb3InO1xuaW1wb3J0IHsgdG9wb2xvZ2ljYWxTb3J0IH0gZnJvbSAnLi9wcml2YXRlL3RvcG9zb3J0JztcblxuY29uc3QgQ0xPVURfQVNTRU1CTFlfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkQXNzZW1ibHknKTtcblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcm9vdCBtYW5pZmVzdCBmaWxlIG9mIHRoZSBhc3NlbWJseS5cbiAqL1xuY29uc3QgTUFOSUZFU1RfRklMRSA9ICdtYW5pZmVzdC5qc29uJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGVwbG95YWJsZSBjbG91ZCBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJQ2xvdWRBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgQ2xvdWRBc3NlbWJseS5cbiAgICpcbiAgICogV2UgZG8gYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSB3ZSBjYW4ndCByZWxpYWJseSB1c2UgJ2luc3RhbmNlb2YnLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Nsb3VkQXNzZW1ibHkoeDogYW55KTogeCBpcyBDbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YoeCkgPT09ICdvYmplY3QnICYmIENMT1VEX0FTU0VNQkxZX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyB1cCBhbnkgdGVtcG9yYXJ5IGFzc2VtYmx5IGRpcmVjdG9yaWVzIHRoYXQgZ290IGNyZWF0ZWQgaW4gdGhpcyBwcm9jZXNzXG4gICAqXG4gICAqIElmIGEgQ2xvdWQgQXNzZW1ibHkgaXMgZW1pdHRlZCB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnksIGl0cyBkaXJlY3RvcnkgZ2V0c1xuICAgKiBhZGRlZCB0byBhIGxpc3QuIFRoaXMgZnVuY3Rpb24gaXRlcmF0ZXMgb3ZlciB0aGF0IGxpc3QgYW5kIGRlbGV0ZXMgZWFjaFxuICAgKiBkaXJlY3RvcnkgaW4gaXQsIHRvIGZyZWUgdXAgZGlzayBzcGFjZS5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIG5vcm1hbGx5IGJlIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGR1cmluZyBOb2RlIHByb2Nlc3NcbiAgICogZXhpdCBhbmQgc28geW91IGRvbid0IG5lZWQgdG8gY2FsbCB0aGlzLiBIb3dldmVyLCBzb21lIHRlc3QgZW52aXJvbm1lbnRzIGRvXG4gICAqIG5vdCBwcm9wZXJseSB0cmlnZ2VyIE5vZGUncyBgZXhpdGAgZXZlbnQuIE5vdGFibHk6IEplc3QgZG9lcyBub3QgdHJpZ2dlclxuICAgKiB0aGUgYGV4aXRgIGV2ZW50ICg8aHR0cHM6Ly9naXRodWIuY29tL2plc3Rqcy9qZXN0L2lzc3Vlcy8xMDkyNz4pLlxuICAgKlxuICAgKiAjIyBDbGVhbmluZyB1cCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgaW4gamVzdFxuICAgKlxuICAgKiBGb3IgSmVzdCwgeW91IGhhdmUgdG8gbWFrZSBzdXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgdGhlXG4gICAqIHRlc3Qgc3VpdGUgaW5zdGVhZDpcbiAgICpcbiAgICogYGBganNcbiAgICogaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJ2F3cy1jZGstbGliL2N4LWFwaSc7XG4gICAqXG4gICAqIGFmdGVyQWxsKENsb3VkQXNzZW1ibHkuY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHRoZSBgc2V0dXBGaWxlc0FmdGVyRW52YCBmZWF0dXJlIGFuZCB1c2UgYVxuICAgKiBwcm92aWRlZCBoZWxwZXIgc2NyaXB0IHRvIGF1dG9tYXRpY2FsbHkgaW5qZWN0IHRoZSBhYm92ZSBpbnRvIGV2ZXJ5XG4gICAqIHRlc3QgZmlsZSwgc28geW91IGRvbid0IGhhdmUgdG8gZG8gaXQgYnkgaGFuZC5cbiAgICpcbiAgICogYGBgXG4gICAqICQgbnB4IGplc3QgLS1zZXR1cEZpbGVzQWZ0ZXJFbnYgYXdzLWNkay1saWIvdGVzdGhlbHBlcnMvamVzdC1hdXRvY2xlYW5cbiAgICogYGBgXG4gICAqXG4gICAqIE9yIHB1dCB0aGUgZm9sbG93aW5nIGludG8gYGplc3QuY29uZmlnLmpzYDpcbiAgICpcbiAgICogYGBganNcbiAgICogbW9kdWxlLmV4cG9ydHMgPSB7XG4gICAqICAgLy8gLi4uXG4gICAqICAgc2V0dXBGaWxlc0FmdGVyRW52OiBbJ2F3cy1jZGstbGliL3Rlc3RoZWxwZXJzL2plc3QtY2xlYW51cCddLFxuICAgKiB9O1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzKCkge1xuICAgIGZvciAoY29uc3QgZGlyIG9mIFRFTVBPUkFSWV9BU1NFTUJMWV9ESVJTKSB7XG4gICAgICBmcy5ybVN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICAgIFRFTVBPUkFSWV9BU1NFTUJMWV9ESVJTLnNwbGljZSgwLCBURU1QT1JBUllfQVNTRU1CTFlfRElSUy5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzY2hlbWEgdmVyc2lvbiBvZiB0aGUgYXNzZW1ibHkgbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbGwgYXJ0aWZhY3RzIGluY2x1ZGVkIGluIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWZhY3RzOiBDbG91ZEFydGlmYWN0W107XG5cbiAgLyoqXG4gICAqIFJ1bnRpbWUgaW5mb3JtYXRpb24gc3VjaCBhcyBtb2R1bGUgdmVyc2lvbnMgdXNlZCB0byBzeW50aGVzaXplIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcnVudGltZTogY3hzY2hlbWEuUnVudGltZUluZm87XG5cbiAgLyoqXG4gICAqIFRoZSByYXcgYXNzZW1ibHkgbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWFuaWZlc3Q6IGN4c2NoZW1hLkFzc2VtYmx5TWFuaWZlc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkIG9wdGlvbnMgdXNlZCB0byBjcmVhdGUgdGhpcyBhc3NlbWJseSwgcHJvcGFnYXRlZCB0byBuZXN0ZWQgYXNzZW1ibGllcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZE9wdGlvbnM/OiBjeHNjaGVtYS5Mb2FkTWFuaWZlc3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSZWFkcyBhIGNsb3VkIGFzc2VtYmx5IGZyb20gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGFzc2VtYmx5LlxuICAgKi9cbiAgY29uc3RydWN0b3IoZGlyZWN0b3J5OiBzdHJpbmcsIGxvYWRPcHRpb25zPzogY3hzY2hlbWEuTG9hZE1hbmlmZXN0T3B0aW9ucykge1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gZGlyZWN0b3J5O1xuICAgIHRoaXMubG9hZE9wdGlvbnMgPSBsb2FkT3B0aW9ucztcblxuICAgIHRoaXMubWFuaWZlc3QgPSBjeHNjaGVtYS5NYW5pZmVzdC5sb2FkQXNzZW1ibHlNYW5pZmVzdChwYXRoLmpvaW4oZGlyZWN0b3J5LCBNQU5JRkVTVF9GSUxFKSwgdGhpcy5sb2FkT3B0aW9ucyk7XG4gICAgdGhpcy52ZXJzaW9uID0gdGhpcy5tYW5pZmVzdC52ZXJzaW9uO1xuICAgIHRoaXMuYXJ0aWZhY3RzID0gdGhpcy5yZW5kZXJBcnRpZmFjdHModGhpcy5sb2FkT3B0aW9ucz8udG9wb1NvcnQgPz8gdHJ1ZSk7XG4gICAgdGhpcy5ydW50aW1lID0gdGhpcy5tYW5pZmVzdC5ydW50aW1lIHx8IHsgbGlicmFyaWVzOiB7IH0gfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBDTE9VRF9BU1NFTUJMWV9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICAvLyBmb3JjZSB2YWxpZGF0aW9uIG9mIGRlcHMgYnkgYWNjZXNzaW5nICdkZXBlbmRzJyBvbiBhbGwgYXJ0aWZhY3RzXG4gICAgdGhpcy52YWxpZGF0ZURlcHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBmaW5kIGFuIGFydGlmYWN0IHdpdGggYSBzcGVjaWZpYyBpZGVudGl0eS5cbiAgICogQHJldHVybnMgQSBgQ2xvdWRBcnRpZmFjdGAgb2JqZWN0IG9yIGB1bmRlZmluZWRgIGlmIHRoZSBhcnRpZmFjdCBkb2VzIG5vdCBleGlzdCBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgYXJ0aWZhY3QgSURcbiAgICovXG4gIHB1YmxpYyB0cnlHZXRBcnRpZmFjdChpZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0IGZyb20gdGhpcyBhc3NlbWJseS5cbiAgICpcbiAgICogV2lsbCBvbmx5IHNlYXJjaCB0aGUgY3VycmVudCBhc3NlbWJseS5cbiAgICpcbiAgICogQHBhcmFtIHN0YWNrTmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICogQHRocm93cyBpZiB0aGVyZSBpcyBubyBzdGFjayBhcnRpZmFjdCBieSB0aGF0IG5hbWVcbiAgICogQHRocm93cyBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHN0YWNrIHdpdGggdGhlIHNhbWUgc3RhY2sgbmFtZS4gWW91IGNhblxuICAgKiB1c2UgYGdldFN0YWNrQXJ0aWZhY3Qoc3RhY2suYXJ0aWZhY3RJZClgIGluc3RlYWQuXG4gICAqIEByZXR1cm5zIGEgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrQnlOYW1lKHN0YWNrTmFtZTogc3RyaW5nKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdHMgPSB0aGlzLmFydGlmYWN0cy5maWx0ZXIoYSA9PiBhIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0ICYmIGEuc3RhY2tOYW1lID09PSBzdGFja05hbWUpO1xuICAgIGlmICghYXJ0aWZhY3RzIHx8IGFydGlmYWN0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFVuYWJsZSB0byBmaW5kIHN0YWNrIHdpdGggc3RhY2sgbmFtZSBcIiR7c3RhY2tOYW1lfVwiYCk7XG4gICAgfVxuXG4gICAgaWYgKGFydGlmYWN0cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBUaGVyZSBhcmUgbXVsdGlwbGUgc3RhY2tzIHdpdGggdGhlIHN0YWNrIG5hbWUgXCIke3N0YWNrTmFtZX1cIiAoJHthcnRpZmFjdHMubWFwKGEgPT4gYS5pZCkuam9pbignLCcpfSkuIFVzZSBcImdldFN0YWNrQXJ0aWZhY3QoaWQpXCIgaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHJldHVybiBhcnRpZmFjdHNbMF0gYXMgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdCBieSBuYW1lIGZyb20gdGhpcyBhc3NlbWJseS5cbiAgICogQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byBgZ2V0U3RhY2tCeU5hbWVgIChvciBgZ2V0U3RhY2tBcnRpZmFjdChpZClgKVxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrKHN0YWNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhY2tCeU5hbWUoc3RhY2tOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3QgZnJvbSB0aGlzIGFzc2VtYmx5LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCAtIHRoZSBhcnRpZmFjdCBpZCBvZiB0aGUgc3RhY2sgKGNhbiBiZSBvYnRhaW5lZCB0aHJvdWdoIGBzdGFjay5hcnRpZmFjdElkYCkuXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gc3RhY2sgYXJ0aWZhY3Qgd2l0aCB0aGF0IGlkXG4gICAqIEByZXR1cm5zIGEgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrQXJ0aWZhY3QoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdCA9IHRoaXMudHJ5R2V0QXJ0aWZhY3RSZWN1cnNpdmVseShhcnRpZmFjdElkKTtcblxuICAgIGlmICghYXJ0aWZhY3QpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFVuYWJsZSB0byBmaW5kIGFydGlmYWN0IHdpdGggaWQgXCIke2FydGlmYWN0SWR9XCJgKTtcbiAgICB9XG5cbiAgICBpZiAoIShhcnRpZmFjdCBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYEFydGlmYWN0ICR7YXJ0aWZhY3RJZH0gaXMgbm90IGEgQ2xvdWRGb3JtYXRpb24gc3RhY2tgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJ0aWZhY3Q7XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEFydGlmYWN0UmVjdXJzaXZlbHkoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tzUmVjdXJzaXZlbHkuZmluZChhID0+IGEuaWQgPT09IGFydGlmYWN0SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBzdGFja3MsIGluY2x1ZGluZyB0aGUgb25lcyBpbiBuZXN0ZWQgYXNzZW1ibGllc1xuICAgKi9cbiAgcHVibGljIGdldCBzdGFja3NSZWN1cnNpdmVseSgpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgZnVuY3Rpb24gc2VhcmNoKHN0YWNrQXJ0aWZhY3RzOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSwgYXNzZW1ibGllczogQ2xvdWRBc3NlbWJseVtdKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10ge1xuICAgICAgaWYgKGFzc2VtYmxpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdGFja0FydGlmYWN0cztcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2hlYWQsIC4uLnRhaWxdID0gYXNzZW1ibGllcztcbiAgICAgIGNvbnN0IG5lc3RlZEFzc2VtYmxpZXMgPSBoZWFkLm5lc3RlZEFzc2VtYmxpZXMubWFwKGFzbSA9PiBhc20ubmVzdGVkQXNzZW1ibHkpO1xuICAgICAgcmV0dXJuIHNlYXJjaChzdGFja0FydGlmYWN0cy5jb25jYXQoaGVhZC5zdGFja3MpLCB0YWlsLmNvbmNhdChuZXN0ZWRBc3NlbWJsaWVzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlYXJjaChbXSwgW3RoaXNdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmVzdGVkIGFzc2VtYmx5IGFydGlmYWN0LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCAtIFRoZSBhcnRpZmFjdCBJRCBvZiB0aGUgbmVzdGVkIGFzc2VtYmx5XG4gICAqL1xuICBwdWJsaWMgZ2V0TmVzdGVkQXNzZW1ibHlBcnRpZmFjdChhcnRpZmFjdElkOiBzdHJpbmcpOiBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3Qge1xuICAgIGNvbnN0IGFydGlmYWN0ID0gdGhpcy50cnlHZXRBcnRpZmFjdChhcnRpZmFjdElkKTtcbiAgICBpZiAoIWFydGlmYWN0KSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBVbmFibGUgdG8gZmluZCBhcnRpZmFjdCB3aXRoIGlkIFwiJHthcnRpZmFjdElkfVwiYCk7XG4gICAgfVxuXG4gICAgaWYgKCEoYXJ0aWZhY3QgaW5zdGFuY2VvZiBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBGb3VuZCBhcnRpZmFjdCAnJHthcnRpZmFjdElkfScgYnV0IGl0J3Mgbm90IGEgbmVzdGVkIGNsb3VkIGFzc2VtYmx5YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFydGlmYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXN0ZWQgYXNzZW1ibHkuXG4gICAqXG4gICAqIEBwYXJhbSBhcnRpZmFjdElkIC0gVGhlIGFydGlmYWN0IElEIG9mIHRoZSBuZXN0ZWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBnZXROZXN0ZWRBc3NlbWJseShhcnRpZmFjdElkOiBzdHJpbmcpOiBDbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4gdGhpcy5nZXROZXN0ZWRBc3NlbWJseUFydGlmYWN0KGFydGlmYWN0SWQpLm5lc3RlZEFzc2VtYmx5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHRyZWUgbWV0YWRhdGEgYXJ0aWZhY3QgZnJvbSB0aGlzIGFzc2VtYmx5LlxuICAgKiBAdGhyb3dzIGlmIHRoZXJlIGlzIG5vIG1ldGFkYXRhIGFydGlmYWN0IGJ5IHRoYXQgbmFtZVxuICAgKiBAcmV0dXJucyBhIGBUcmVlQ2xvdWRBcnRpZmFjdGAgb2JqZWN0IGlmIHRoZXJlIGlzIG9uZSBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIHRyZWUoKTogVHJlZUNsb3VkQXJ0aWZhY3QgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRyZWVzID0gdGhpcy5hcnRpZmFjdHMuZmlsdGVyKGEgPT4gYS5tYW5pZmVzdC50eXBlID09PSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQ0RLX1RSRUUpO1xuICAgIGlmICh0cmVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmICh0cmVlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBNdWx0aXBsZSBhcnRpZmFjdHMgb2YgdHlwZSAke2N4c2NoZW1hLkFydGlmYWN0VHlwZS5DREtfVFJFRX0gZm91bmQgaW4gbWFuaWZlc3RgKTtcbiAgICB9XG4gICAgY29uc3QgdHJlZSA9IHRyZWVzWzBdO1xuXG4gICAgaWYgKCEodHJlZSBpbnN0YW5jZW9mIFRyZWVDbG91ZEFydGlmYWN0KSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignXCJUcmVlXCIgYXJ0aWZhY3QgaXMgbm90IG9mIGV4cGVjdGVkIHR5cGUnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBhbGwgdGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0cyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIGdldCBzdGFja3MoKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10ge1xuICAgIHJldHVybiB0aGlzLmFydGlmYWN0cy5maWx0ZXIoaXNDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpO1xuXG4gICAgZnVuY3Rpb24gaXNDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QoeDogYW55KTogeCBpcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Qge1xuICAgICAgcmV0dXJuIHggaW5zdGFuY2VvZiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuZXN0ZWQgYXNzZW1ibHkgYXJ0aWZhY3RzIGluIHRoaXMgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBnZXQgbmVzdGVkQXNzZW1ibGllcygpOiBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbHRlcihpc05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCk7XG5cbiAgICBmdW5jdGlvbiBpc05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCh4OiBhbnkpOiB4IGlzIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCB7XG4gICAgICByZXR1cm4geCBpbnN0YW5jZW9mIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGVwcygpIHtcbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIHRoaXMuYXJ0aWZhY3RzKSB7XG4gICAgICBpZ25vcmUoYXJ0aWZhY3QuZGVwZW5kZW5jaWVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFydGlmYWN0cyh0b3BvU29ydDogYm9vbGVhbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxDbG91ZEFydGlmYWN0PigpO1xuICAgIGZvciAoY29uc3QgW25hbWUsIGFydGlmYWN0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1hbmlmZXN0LmFydGlmYWN0cyB8fCB7IH0pKSB7XG4gICAgICBjb25zdCBjbG91ZGFydGlmYWN0ID0gQ2xvdWRBcnRpZmFjdC5mcm9tTWFuaWZlc3QodGhpcywgbmFtZSwgYXJ0aWZhY3QpO1xuICAgICAgaWYgKGNsb3VkYXJ0aWZhY3QpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goY2xvdWRhcnRpZmFjdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvcG9Tb3J0ID8gdG9wb2xvZ2ljYWxTb3J0KHJlc3VsdCwgeCA9PiB4LmlkLCB4ID0+IHguX2RlcGVuZGVuY3lJRHMpIDogcmVzdWx0O1xuICB9XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIENsb3VkQXNzZW1ibHlCdWlsZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRBc3NlbWJseUJ1aWxkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2UgdGhlIGdpdmVuIGFzc2V0IG91dHB1dCBkaXJlY3RvcnlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTYW1lIGFzIHRoZSBtYW5pZmVzdCBvdXRkaXJcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0T3V0ZGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB0aGlzIGJ1aWxkZXIgaXMgZm9yIGEgbmVzdGVkIGFzc2VtYmx5LCB0aGUgcGFyZW50IGFzc2VtYmx5IGJ1aWxkZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIGlzIGEgcm9vdCBhc3NlbWJseVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50QnVpbGRlcj86IENsb3VkQXNzZW1ibHlCdWlsZGVyO1xufVxuXG4vKipcbiAqIENhbiBiZSB1c2VkIHRvIGJ1aWxkIGEgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEFzc2VtYmx5QnVpbGRlciB7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHJlc3VsdGluZyBjbG91ZCBhc3NlbWJseS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvdXRkaXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSBhc3NldHMgb2YgdGhpcyBDbG91ZCBBc3NlbWJseSBzaG91bGQgYmUgc3RvcmVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRPdXRkaXI6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFydGlmYWN0czogeyBbaWQ6IHN0cmluZ106IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QgfSA9IHsgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBtaXNzaW5nID0gbmV3IEFycmF5PGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEJ1aWxkZXI/OiBDbG91ZEFzc2VtYmx5QnVpbGRlcjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYSBjbG91ZCBhc3NlbWJseSBidWlsZGVyLlxuICAgKiBAcGFyYW0gb3V0ZGlyIC0gVGhlIG91dHB1dCBkaXJlY3RvcnksIHVzZXMgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpZiB1bmRlZmluZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG91dGRpcj86IHN0cmluZywgcHJvcHM6IENsb3VkQXNzZW1ibHlCdWlsZGVyUHJvcHMgPSB7fSkge1xuICAgIHRoaXMub3V0ZGlyID0gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcik7XG4gICAgdGhpcy5hc3NldE91dGRpciA9IHByb3BzLmFzc2V0T3V0ZGlyID8/IHRoaXMub3V0ZGlyO1xuICAgIHRoaXMucGFyZW50QnVpbGRlciA9IHByb3BzLnBhcmVudEJ1aWxkZXI7XG5cbiAgICAvLyB3ZSBsZXZlcmFnZSB0aGUgZmFjdCB0aGF0IG91dGRpciBpcyBsb25nLWxpdmVkIHRvIGF2b2lkIHN0YWdpbmcgYXNzZXRzIGludG8gaXRcbiAgICAvLyB0aGF0IHdlcmUgYWxyZWFkeSBzdGFnZWQgKGNvcHlpbmcgY2FuIGJlIGV4cGVuc2l2ZSkuIHRoaXMgaXMgYWNoaWV2ZWQgYnkgdGhlIGZhY3RcbiAgICAvLyB0aGF0IGFzc2V0cyB1c2UgYSBzb3VyY2UgaGFzaCBhcyB0aGVpciBuYW1lLiBvdGhlciBhcnRpZmFjdHMsIGFuZCB0aGUgbWFuaWZlc3QgaXRzZWxmLFxuICAgIC8vIHdpbGwgb3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzIGFzIG5lZWRlZC5cbiAgICBlbnN1cmVEaXJTeW5jKHRoaXMub3V0ZGlyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFydGlmYWN0IGludG8gdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhlIGFydGlmYWN0LlxuICAgKiBAcGFyYW0gbWFuaWZlc3QgLSBUaGUgYXJ0aWZhY3QgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyBhZGRBcnRpZmFjdChpZDogc3RyaW5nLCBtYW5pZmVzdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHRoaXMuYXJ0aWZhY3RzW2lkXSA9IGZpbHRlclVuZGVmaW5lZChtYW5pZmVzdCk7XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyB0aGF0IHNvbWUgY29udGV4dCBpcyBtaXNzaW5nIGluIG9yZGVyIGZvciB0aGlzIGNsb3VkIGFzc2VtYmx5IHRvIGJlIGZ1bGx5IHN5bnRoZXNpemVkLlxuICAgKiBAcGFyYW0gbWlzc2luZyAtIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRNaXNzaW5nKG1pc3Npbmc6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMubWlzc2luZy5ldmVyeShtID0+IG0ua2V5ICE9PSBtaXNzaW5nLmtleSkpIHtcbiAgICAgIHRoaXMubWlzc2luZy5wdXNoKG1pc3NpbmcpO1xuICAgIH1cbiAgICAvLyBBbHNvIHJlcG9ydCBpbiBwYXJlbnRcbiAgICB0aGlzLnBhcmVudEJ1aWxkZXI/LmFkZE1pc3NpbmcobWlzc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogRmluYWxpemVzIHRoZSBjbG91ZCBhc3NlbWJseSBpbnRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHJldHVybnMgYVxuICAgKiBgQ2xvdWRBc3NlbWJseWAgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5zcGVjdCB0aGUgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgYnVpbGRBc3NlbWJseShvcHRpb25zOiBBc3NlbWJseUJ1aWxkT3B0aW9ucyA9IHsgfSk6IENsb3VkQXNzZW1ibHkge1xuICAgIC8vIGV4cGxpY2l0bHkgaW5pdGlhbGl6aW5nIHRoaXMgdHlwZSB3aWxsIGhlbHAgdXMgZGV0ZWN0XG4gICAgLy8gYnJlYWtpbmcgY2hhbmdlcy4gKEZvciBleGFtcGxlIGFkZGluZyBhIHJlcXVpcmVkIHByb3BlcnR5IHdpbGwgYnJlYWsgY29tcGlsYXRpb24pLlxuICAgIGxldCBtYW5pZmVzdDogY3hzY2hlbWEuQXNzZW1ibHlNYW5pZmVzdCA9IHtcbiAgICAgIHZlcnNpb246IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKSxcbiAgICAgIGFydGlmYWN0czogdGhpcy5hcnRpZmFjdHMsXG4gICAgICBydW50aW1lOiBvcHRpb25zLnJ1bnRpbWVJbmZvLFxuICAgICAgbWlzc2luZzogdGhpcy5taXNzaW5nLmxlbmd0aCA+IDAgPyB0aGlzLm1pc3NpbmcgOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIC8vIG5vdyB3ZSBjYW4gZmlsdGVyXG4gICAgbWFuaWZlc3QgPSBmaWx0ZXJVbmRlZmluZWQobWFuaWZlc3QpO1xuXG4gICAgY29uc3QgbWFuaWZlc3RGaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dGRpciwgTUFOSUZFU1RfRklMRSk7XG4gICAgY3hzY2hlbWEuTWFuaWZlc3Quc2F2ZUFzc2VtYmx5TWFuaWZlc3QobWFuaWZlc3QsIG1hbmlmZXN0RmlsZVBhdGgpO1xuXG4gICAgLy8gXCJiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVwiOiBpbiBvcmRlciBmb3IgdGhlIG9sZCBDTEkgdG8gdGVsbCB0aGUgdXNlciB0aGV5XG4gICAgLy8gbmVlZCBhIG5ldyB2ZXJzaW9uLCB3ZSdsbCBlbWl0IHRoZSBsZWdhY3kgbWFuaWZlc3Qgd2l0aCBvbmx5IFwidmVyc2lvblwiLlxuICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgXCJDREsgVG9vbGtpdCA+PSBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGludGVyYWN0IHdpdGggdGhpcyBwcm9ncmFtLlwiXG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGhpcy5vdXRkaXIsICdjZGsub3V0JyksIEpTT04uc3RyaW5naWZ5KHsgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbiB9KSk7XG5cbiAgICByZXR1cm4gbmV3IENsb3VkQXNzZW1ibHkodGhpcy5vdXRkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXN0ZWQgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVOZXN0ZWRBc3NlbWJseShhcnRpZmFjdElkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlOYW1lID0gYXJ0aWZhY3RJZDtcbiAgICBjb25zdCBpbm5lckFzbURpciA9IHBhdGguam9pbih0aGlzLm91dGRpciwgZGlyZWN0b3J5TmFtZSk7XG5cbiAgICB0aGlzLmFkZEFydGlmYWN0KGFydGlmYWN0SWQsIHtcbiAgICAgIHR5cGU6IGN4c2NoZW1hLkFydGlmYWN0VHlwZS5ORVNURURfQ0xPVURfQVNTRU1CTFksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGRpcmVjdG9yeU5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgfSBhcyBjeHNjaGVtYS5OZXN0ZWRDbG91ZEFzc2VtYmx5UHJvcGVydGllcyxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgQ2xvdWRBc3NlbWJseUJ1aWxkZXIoaW5uZXJBc21EaXIsIHtcbiAgICAgIC8vIFJldXNlIHRoZSBzYW1lIGFzc2V0IG91dHB1dCBkaXJlY3RvcnkgYXMgdGhlIGN1cnJlbnQgQ2FzbSBidWlsZGVyXG4gICAgICBhc3NldE91dGRpcjogdGhpcy5hc3NldE91dGRpcixcbiAgICAgIHBhcmVudEJ1aWxkZXI6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBkZWxldGUoKSB7XG4gICAgZnMucm1TeW5jKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Igd2hlbiBgUnVudGltZUluZm9gXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5zeW50aFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVJbmZvIGV4dGVuZHMgY3hzY2hlbWEuUnVudGltZUluZm8ge1xuXG59XG5cbi8qKlxuICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIHdoZW4gYE1ldGFkYXRhRW50cnlgXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5tZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhRW50cnkgZXh0ZW5kcyBjeHNjaGVtYS5NZXRhZGF0YUVudHJ5IHtcblxufVxuXG4vKipcbiAqIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciB3aGVuIGBNaXNzaW5nQ29udGV4dGBcbiAqIHdhcyBkZWZpbmVkIGhlcmUuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaXRzIHVzZWQgYXMgYW4gaW5wdXQgaW4gdGhlIHN0YWJsZVxuICogQGF3cy1jZGsvY29yZSBsaWJyYXJ5LlxuICpcbiAqIEBkZXByZWNhdGVkIG1vdmVkIHRvIHBhY2thZ2UgJ2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSdcbiAqIEBzZWUgY29yZS5TdGFjay5yZXBvcnRNaXNzaW5nQ29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBwcm92aWRlci1zcGVjaWZpYyBvcHRpb25zLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm9wczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseUJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHRoZSBzcGVjaWZpZWQgcnVudGltZSBpbmZvcm1hdGlvbiAobW9kdWxlIHZlcnNpb25zKSBpbiBtYW5pZmVzdC5cbiAgICogQGRlZmF1bHQgLSBpZiB0aGlzIG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkLCBydW50aW1lIGluZm8gd2lsbCBub3QgYmUgaW5jbHVkZWRcbiAgICogQGRlcHJlY2F0ZWQgQWxsIHRlbXBsYXRlIG1vZGlmaWNhdGlvbnMgdGhhdCBzaG91bGQgcmVzdWx0IGZyb20gdGhpcyBzaG91bGRcbiAgICogaGF2ZSBhbHJlYWR5IGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBydW50aW1lSW5mbz86IFJ1bnRpbWVJbmZvO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBjb3B5IG9mIGBvYmpgIHdpdGhvdXQgdW5kZWZpbmVkIHZhbHVlcyBpbiBtYXBzIG9yIGFycmF5cy5cbiAqL1xuZnVuY3Rpb24gZmlsdGVyVW5kZWZpbmVkKG9iajogYW55KTogYW55IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmouZmlsdGVyKHggPT4geCAhPT0gdW5kZWZpbmVkKS5tYXAoeCA9PiBmaWx0ZXJVbmRlZmluZWQoeCkpO1xuICB9XG5cbiAgaWYgKHR5cGVvZihvYmopID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJldDogYW55ID0geyB9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcmV0W2tleV0gPSBmaWx0ZXJVbmRlZmluZWQodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gaWdub3JlKF94OiBhbnkpIHtcbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIFR1cm4gdGhlIGdpdmVuIG9wdGlvbmFsIG91dHB1dCBkaXJlY3RvcnkgaW50byBhIGZpeGVkIG91dHB1dCBkaXJlY3RvcnlcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcj86IHN0cmluZykge1xuICBpZiAob3V0ZGlyKSB7XG4gICAgcmV0dXJuIG91dGRpcjtcbiAgfVxuXG4gIC8vIE1ha2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5OyBjbGVhbiBpdCB1cCBhdXRvbWF0aWNhbGx5IGlmIHRoaXMgaXMgZG9uZSBmb3IgdGVzdGluZy5cbiAgY29uc3QgdG1wRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKGZzLnJlYWxwYXRoU3luYyhvcy50bXBkaXIoKSksICdjZGsub3V0JykpO1xuICBURU1QT1JBUllfQVNTRU1CTFlfRElSUy5wdXNoKHRtcERpcik7XG4gIHJldHVybiBvdXRkaXIgPz8gdG1wRGlyO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVEaXJTeW5jKGRpcjogc3RyaW5nKSB7XG4gIGlmIChmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICBpZiAoIWZzLnN0YXRTeW5jKGRpcikuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgJHtkaXJ9IG11c3QgYmUgYSBkaXJlY3RvcnlgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZnMubWtkaXJTeW5jKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cbn1cblxuLy8gT24gcHJvY2VzcyBleGl0LCBkZWxldGUgYWxsIHRlbXBvcmFyeSBhc3NlbWJseSBkaXJlY3Rvcmllc1xuY29uc3QgVEVNUE9SQVJZX0FTU0VNQkxZX0RJUlM6IHN0cmluZ1tdID0gW107XG5wcm9jZXNzLm9uKCdleGl0JywgKCkgPT4gQ2xvdWRBc3NlbWJseS5jbGVhbnVwVGVtcG9yYXJ5RGlyZWN0b3JpZXMoKSk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybnMganVzdCBhbiBBTUkgSURcbiAqL1xuZXhwb3J0IHR5cGUgQW1pQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = void 0;\n/**\n * This context key is used to determine the value of `stack.availabilityZones`\n * when a stack is not associated with a specific account/region (env-agnostic).\n *\n * If this key is passed in the context, the values will be used. Otherwise, a\n * system-fallback which uses `Fn::GetAZs` will be used.\n */\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = 'aws:cdk:availability-zones:fallback';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWxhYmlsaXR5LXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXZhaWxhYmlsaXR5LXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7R0FNRztBQUNVLFFBQUEsc0NBQXNDLEdBQUcscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29udGV4dCBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIGBzdGFjay5hdmFpbGFiaWxpdHlab25lc2BcbiAqIHdoZW4gYSBzdGFjayBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYWNjb3VudC9yZWdpb24gKGVudi1hZ25vc3RpYykuXG4gKlxuICogSWYgdGhpcyBrZXkgaXMgcGFzc2VkIGluIHRoZSBjb250ZXh0LCB0aGUgdmFsdWVzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCBhXG4gKiBzeXN0ZW0tZmFsbGJhY2sgd2hpY2ggdXNlcyBgRm46OkdldEFac2Agd2lsbCBiZSB1c2VkLlxuICovXG5leHBvcnQgY29uc3QgQVZBSUxBQklMSVRZX1pPTkVfRkFMTEJBQ0tfQ09OVEVYVF9LRVkgPSAnYXdzOmNkazphdmFpbGFiaWxpdHktem9uZXM6ZmFsbGJhY2snO1xuXG4vKipcbiAqIFJlc3BvbnNlIG9mIHRoZSBBWiBwcm92aWRlciBsb29rcyBsaWtlIHRoaXNcbiAqL1xuZXhwb3J0IHR5cGUgQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UmVzcG9uc2UgPSBzdHJpbmdbXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = void 0;\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = 'endpoint-service-availability-zones';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLDJDQUEyQyxHQUFHLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuXG4vKipcbiAqIFF1ZXJ5IHRvIGhvc3RlZCB6b25lIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSB7XG4gIC8qKlxuICAgKiBRdWVyeSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBRdWVyeSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgc2VydmljZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBvZiB0aGUgQVogcHJvdmlkZXIgbG9va3MgbGlrZSB0aGlzXG4gKi9cbmV4cG9ydCB0eXBlIEVuZHBvaW50U2VydmljZUF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nW107XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PROVIDER_ERROR_KEY = void 0;\n/**\n * If a context value is an object with this key, it indicates an error\n */\nexports.PROVIDER_ERROR_KEY = '$providerError';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdlbmVyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJZiBhIGNvbnRleHQgdmFsdWUgaXMgYW4gb2JqZWN0IHdpdGggdGhpcyBrZXksIGl0IGluZGljYXRlcyBhbiBlcnJvclxuICovXG5leHBvcnQgY29uc3QgUFJPVklERVJfRVJST1JfS0VZID0gJyRwcm92aWRlckVycm9yJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIGtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRSZXNwb25zZSB7XG5cbiAgLyoqXG4gICAqIElkIG9mIHRoZSBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerIpAddressType = void 0;\n/**\n * Load balancer ip address type.\n */\nvar LoadBalancerIpAddressType;\n(function (LoadBalancerIpAddressType) {\n /**\n * IPV4 ip address\n */\n LoadBalancerIpAddressType[\"IPV4\"] = \"ipv4\";\n /**\n * Dual stack address\n */\n LoadBalancerIpAddressType[\"DUAL_STACK\"] = \"dualstack\";\n /**\n * IPv6 only public addresses, with private IPv4 and IPv6 addresses\n */\n LoadBalancerIpAddressType[\"DUAL_STACK_WITHOUT_PUBLIC_IPV4\"] = \"dualstack-without-public-ipv4\";\n})(LoadBalancerIpAddressType || (exports.LoadBalancerIpAddressType = LoadBalancerIpAddressType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvYWQtYmFsYW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLHlCQWVYO0FBZkQsV0FBWSx5QkFBeUI7SUFDbkM7O09BRUc7SUFDSCwwQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxREFBd0IsQ0FBQTtJQUV4Qjs7T0FFRztJQUNILDZGQUFnRSxDQUFBO0FBQ2xFLENBQUMsRUFmVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWVwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTG9hZCBiYWxhbmNlciBpcCBhZGRyZXNzIHR5cGUuXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlcklwQWRkcmVzc1R5cGUge1xuICAvKipcbiAgICogSVBWNCBpcCBhZGRyZXNzXG4gICAqL1xuICBJUFY0ID0gJ2lwdjQnLFxuXG4gIC8qKlxuICAgKiBEdWFsIHN0YWNrIGFkZHJlc3NcbiAgICovXG4gIERVQUxfU1RBQ0sgPSAnZHVhbHN0YWNrJyxcblxuICAvKipcbiAgICogSVB2NiBvbmx5IHB1YmxpYyBhZGRyZXNzZXMsIHdpdGggcHJpdmF0ZSBJUHY0IGFuZCBJUHY2IGFkZHJlc3Nlc1xuICAgKi9cbiAgRFVBTF9TVEFDS19XSVRIT1VUX1BVQkxJQ19JUFY0ID0gJ2R1YWxzdGFjay13aXRob3V0LXB1YmxpYy1pcHY0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhvc3RlZCB6b25lIElEIG9mIHRoZSBsb2FkIGJhbGFuY2VyJ3MgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3MgRE5TIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckRuc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiBJUCBhZGRyZXNzXG4gICAqL1xuICByZWFkb25seSBpcEFkZHJlc3NUeXBlOiBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3Mgc2VjdXJpdHkgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTG9hZCBiYWxhbmNlcidzIFZQQ1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxpc3RlbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdGhlIGxpc3RlbmVyIGlzIGxpc3RlbmluZyBvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyUG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXBzIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIFNlY3VyaXR5R3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENvbnRleHRSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAncyBpZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzZWN1cml0eSBncm91cCBhbGxvd3MgYWxsIG91dGJvdW5kIHRyYWZmaWMuIFRoaXMgd2lsbCBiZSB0cnVlXG4gICAqIHdoZW4gdGhlIHNlY3VyaXR5IGdyb3VwIGhhcyBhbGwtcHJvdG9jb2wgZWdyZXNzIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBib3RoXG4gICAqIGAwLjAuMC4wLzBgIGFuZCBgOjovMGAuXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kOiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VpcSubnetGroupType = void 0;\n/**\n * The type of subnet group.\n * Same as SubnetType in the aws-cdk-lib/aws-ec2 package,\n * but we can't use that because of cyclical dependencies.\n */\nvar VpcSubnetGroupType;\n(function (VpcSubnetGroupType) {\n /** Public subnet group type. */\n VpcSubnetGroupType[\"PUBLIC\"] = \"Public\";\n /** Private subnet group type. */\n VpcSubnetGroupType[\"PRIVATE\"] = \"Private\";\n /** Isolated subnet group type. */\n VpcSubnetGroupType[\"ISOLATED\"] = \"Isolated\";\n})(VpcSubnetGroupType || (exports.VpcSubnetGroupType = VpcSubnetGroupType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxJQUFZLGtCQVNYO0FBVEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0NBQWdDO0lBQ2hDLHVDQUFpQixDQUFBO0lBRWpCLGlDQUFpQztJQUNqQyx5Q0FBbUIsQ0FBQTtJQUVuQixrQ0FBa0M7SUFDbEMsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVRXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgdHlwZSBvZiBzdWJuZXQgZ3JvdXAuXG4gKiBTYW1lIGFzIFN1Ym5ldFR5cGUgaW4gdGhlIGF3cy1jZGstbGliL2F3cy1lYzIgcGFja2FnZSxcbiAqIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBiZWNhdXNlIG9mIGN5Y2xpY2FsIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGVudW0gVnBjU3VibmV0R3JvdXBUeXBlIHtcbiAgLyoqIFB1YmxpYyBzdWJuZXQgZ3JvdXAgdHlwZS4gKi9cbiAgUFVCTElDID0gJ1B1YmxpYycsXG5cbiAgLyoqIFByaXZhdGUgc3VibmV0IGdyb3VwIHR5cGUuICovXG4gIFBSSVZBVEUgPSAnUHJpdmF0ZScsXG5cbiAgLyoqIElzb2xhdGVkIHN1Ym5ldCBncm91cCB0eXBlLiAqL1xuICBJU09MQVRFRCA9ICdJc29sYXRlZCcsXG59XG5cbi8qKlxuICogQSBzdWJuZXQgcmVwcmVzZW50YXRpb24gdGhhdCB0aGUgVlBDIHByb3ZpZGVyIHVzZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0IHtcbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIG9mIHRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGlzIHN1Ym5ldCBpcyBpblxuICAgKiAoZm9yIGV4YW1wbGUsICd1cy13ZXN0LTJhJykuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSByb3V0ZSB0YWJsZSBmb3IgdGhpcyBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHJvdXRlVGFibGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDSURSIHJhbmdlIG9mIHRoZSBzdWJuZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDSURSIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNpZHI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBncm91cCBvZiBzdWJuZXRzIHJldHVybmVkIGJ5IHRoZSBWUEMgcHJvdmlkZXIuXG4gKiBUaGUgaW5jbHVkZWQgc3VibmV0cyBkbyBOT1QgaGF2ZSB0byBiZSBzeW1tZXRyaWMhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0R3JvdXAge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN1Ym5ldCBncm91cCxcbiAgICogZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0IHRoZSB0YWdzIG9mIG9mIHRoZSBzdWJuZXRzXG4gICAqIHRoYXQgYmVsb25nIHRvIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgdHlwZSBvZiB0aGUgc3VibmV0IGdyb3VwLiAqL1xuICByZWFkb25seSB0eXBlOiBWcGNTdWJuZXRHcm91cFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBncm91cC5cbiAgICogVGhlcmUgaXMgbm8gY29uZGl0aW9uIHRoYXQgdGhlIHN1Ym5ldHMgaGF2ZSB0byBiZSBzeW1tZXRyaWNcbiAgICogaW4gdGhlIGdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0czogVnBjU3VibmV0W107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhIGRpc2NvdmVyZWQgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFJlc3BvbnNlIHtcblxuICAvKipcbiAgICogVlBDIGlkXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgY2lkclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENJRFIgaW5mb3JtYXRpb24gbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBWnNcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwdWJsaWMgc3VibmV0c1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMocHVibGljR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzLlxuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwcml2YXRlIHN1Ym5ldHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwc1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKHByaXZhdGVHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBpc29sYXRlZCBzdWJuZXRzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhpc29sYXRlZEdyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IGlzb2xhdGVkU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHMuXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIFZQTiBnYXRld2F5IElEXG4gICAqL1xuICByZWFkb25seSB2cG5HYXRld2F5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgZ3JvdXBzIGRpc2NvdmVyZWQgZm9yIHRoZSBnaXZlbiBWUEMuXG4gICAqIFVubGlrZSB0aGUgYWJvdmUgcHJvcGVydGllcywgdGhpcyB3aWxsIGluY2x1ZGUgYXN5bW1ldHJpYyBzdWJuZXRzLFxuICAgKiBpZiB0aGUgVlBDIGhhcyBhbnkuXG4gICAqIFRoaXMgcHJvcGVydHkgd2lsbCBvbmx5IGJlIHBvcHVsYXRlZCBpZiBgVnBjQ29udGV4dFF1ZXJ5LnJldHVybkFzeW1tZXRyaWNTdWJuZXRzYFxuICAgKiBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN1Ym5ldCBncm91cHMgd2lsbCBiZSByZXR1cm5lZCB1bmxlc3MgYFZwY0NvbnRleHRRdWVyeS5yZXR1cm5Bc3ltbWV0cmljU3VibmV0c2AgaXMgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBzPzogVnBjU3VibmV0R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBpbiB3aGljaCB0aGUgVlBDIGlzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlZ2lvbiBvZiB0aGUgcGFyZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgQVdTIGFjY291bnQgdGhhdCBvd25zIHRoZSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBhY2NvdW50IGlkIG9mIHRoZSBwYXJlbnQgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG93bmVyQWNjb3VudElkPzogc3RyaW5nO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentUtils = exports.UNKNOWN_REGION = exports.UNKNOWN_ACCOUNT = void 0;\nconst error_1 = require(\"./private/error\");\n/**\n * Parser for the artifact environment field.\n *\n * Account validation is relaxed to allow account aliasing in the future.\n */\nconst AWS_ENV_REGEX = /aws\\:\\/\\/([a-z0-9A-Z\\-\\@\\.\\_]+)\\/([a-z\\-0-9]+)/;\nexports.UNKNOWN_ACCOUNT = 'unknown-account';\nexports.UNKNOWN_REGION = 'unknown-region';\nclass EnvironmentUtils {\n static parse(environment) {\n const env = AWS_ENV_REGEX.exec(environment);\n if (!env) {\n throw new error_1.CloudAssemblyError(`Unable to parse environment specification \"${environment}\". ` +\n 'Expected format: aws://account/region');\n }\n const [, account, region] = env;\n if (!account || !region) {\n throw new error_1.CloudAssemblyError(`Invalid environment specification: ${environment}`);\n }\n return { account, region, name: environment };\n }\n /**\n * Build an environment object from an account and region\n */\n static make(account, region) {\n return { account, region, name: this.format(account, region) };\n }\n /**\n * Format an environment string from an account and region\n */\n static format(account, region) {\n return `aws://${account}/${region}`;\n }\n}\nexports.EnvironmentUtils = EnvironmentUtils;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILE1BQU0sYUFBYSxHQUFHLGdEQUFnRCxDQUFDO0FBZ0IxRCxRQUFBLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztBQUNwQyxRQUFBLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUUvQyxNQUFhLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQW1CO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLDBCQUFrQixDQUMxQiw4Q0FBOEMsV0FBVyxLQUFLO2dCQUM5RCx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksMEJBQWtCLENBQUMsc0NBQXNDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBZSxFQUFFLE1BQWM7UUFDbEQsT0FBTyxTQUFTLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUE5QkQsNENBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUVycm9yIH0gZnJvbSAnLi9wcml2YXRlL2Vycm9yJztcblxuLyoqXG4gKiBQYXJzZXIgZm9yIHRoZSBhcnRpZmFjdCBlbnZpcm9ubWVudCBmaWVsZC5cbiAqXG4gKiBBY2NvdW50IHZhbGlkYXRpb24gaXMgcmVsYXhlZCB0byBhbGxvdyBhY2NvdW50IGFsaWFzaW5nIGluIHRoZSBmdXR1cmUuXG4gKi9cbmNvbnN0IEFXU19FTlZfUkVHRVggPSAvYXdzXFw6XFwvXFwvKFthLXowLTlBLVpcXC1cXEBcXC5cXF9dKylcXC8oW2EtelxcLTAtOV0rKS87XG5cbi8qKlxuICogTW9kZWxzIGFuIEFXUyBleGVjdXRpb24gZW52aXJvbm1lbnQsIGZvciB1c2Ugd2l0aGluIHRoZSBDREsgdG9vbGtpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gIC8qKiBUaGUgYXJiaXRyYXJ5IG5hbWUgb2YgdGhpcyBlbnZpcm9ubWVudCAodXNlci1zZXQsIG9yIGF0IGxlYXN0IHVzZXItbWVhbmluZ2Z1bCkgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgQVdTIGFjY291bnQgdGhpcyBlbnZpcm9ubWVudCBkZXBsb3lzIGludG8gKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgQVdTIHJlZ2lvbiBuYW1lIHdoZXJlIHRoaXMgZW52aXJvbm1lbnQgZGVwbG95cyBpbnRvICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9BQ0NPVU5UID0gJ3Vua25vd24tYWNjb3VudCc7XG5leHBvcnQgY29uc3QgVU5LTk9XTl9SRUdJT04gPSAndW5rbm93bi1yZWdpb24nO1xuXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRVdGlscyB7XG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UoZW52aXJvbm1lbnQ6IHN0cmluZyk6IEVudmlyb25tZW50IHtcbiAgICBjb25zdCBlbnYgPSBBV1NfRU5WX1JFR0VYLmV4ZWMoZW52aXJvbm1lbnQpO1xuICAgIGlmICghZW52KSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGVudmlyb25tZW50IHNwZWNpZmljYXRpb24gXCIke2Vudmlyb25tZW50fVwiLiBgICtcbiAgICAgICAgJ0V4cGVjdGVkIGZvcm1hdDogYXdzOi8vYWNjb3VudC9yZWdpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBbLCBhY2NvdW50LCByZWdpb25dID0gZW52O1xuICAgIGlmICghYWNjb3VudCB8fCAhcmVnaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBJbnZhbGlkIGVudmlyb25tZW50IHNwZWNpZmljYXRpb246ICR7ZW52aXJvbm1lbnR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgYWNjb3VudCwgcmVnaW9uLCBuYW1lOiBlbnZpcm9ubWVudCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIGVudmlyb25tZW50IG9iamVjdCBmcm9tIGFuIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYWtlKGFjY291bnQ6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcpOiBFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIHsgYWNjb3VudCwgcmVnaW9uLCBuYW1lOiB0aGlzLmZvcm1hdChhY2NvdW50LCByZWdpb24pIH07XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGFuIGVudmlyb25tZW50IHN0cmluZyBmcm9tIGFuIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JtYXQoYWNjb3VudDogc3RyaW5nLCByZWdpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhd3M6Ly8ke2FjY291bnR9LyR7cmVnaW9ufWA7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./context/vpc\"), exports);\n__exportStar(require(\"./context/ami\"), exports);\n__exportStar(require(\"./context/load-balancer\"), exports);\n__exportStar(require(\"./context/availability-zones\"), exports);\n__exportStar(require(\"./context/endpoint-service-availability-zones\"), exports);\n__exportStar(require(\"./context/security-group\"), exports);\n__exportStar(require(\"./context/key\"), exports);\n__exportStar(require(\"./context/generic\"), exports);\n__exportStar(require(\"./cloud-artifact\"), exports);\nrequire(\"./cloud-artifact-aug\");\n__exportStar(require(\"./artifacts/asset-manifest-artifact\"), exports);\n__exportStar(require(\"./artifacts/cloudformation-artifact\"), exports);\n__exportStar(require(\"./artifacts/tree-cloud-artifact\"), exports);\n__exportStar(require(\"./artifacts/nested-cloud-assembly-artifact\"), exports);\nrequire(\"./artifacts/nested-cloud-assembly-artifact-aug\");\n__exportStar(require(\"./cloud-assembly\"), exports);\n__exportStar(require(\"./assets\"), exports);\n__exportStar(require(\"./metadata\"), exports);\n__exportStar(require(\"./placeholders\"), exports);\n__exportStar(require(\"./environment\"), exports);\n__exportStar(require(\"./bootstrap\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLGdEQUE4QjtBQUM5QiwwREFBd0M7QUFDeEMsK0RBQTZDO0FBQzdDLGdGQUE4RDtBQUM5RCwyREFBeUM7QUFDekMsZ0RBQThCO0FBQzlCLG9EQUFrQztBQUNsQyxtREFBaUM7QUFDakMsZ0NBQThCO0FBQzlCLHNFQUFvRDtBQUNwRCxzRUFBb0Q7QUFDcEQsa0VBQWdEO0FBQ2hELDZFQUEyRDtBQUMzRCwwREFBd0Q7QUFDeEQsbURBQWlDO0FBQ2pDLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGdEQUE4QjtBQUM5Qiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQvdnBjJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9hbWknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2xvYWQtYmFsYW5jZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2F2YWlsYWJpbGl0eS16b25lcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQvZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L3NlY3VyaXR5LWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2dlbmVyaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgJy4vY2xvdWQtYXJ0aWZhY3QtYXVnJztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Fzc2V0LW1hbmlmZXN0LWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Nsb3VkZm9ybWF0aW9uLWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL3RyZWUtY2xvdWQtYXJ0aWZhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9wbGFjZWhvbGRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb3RzdHJhcCc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SynthesisMessageLevel = exports.PATH_METADATA_KEY = void 0;\n/**\n * The key used when CDK path is embedded in **CloudFormation template** metadata (not cdk metadata).\n */\nexports.PATH_METADATA_KEY = 'aws:cdk:path';\nvar SynthesisMessageLevel;\n(function (SynthesisMessageLevel) {\n SynthesisMessageLevel[\"INFO\"] = \"info\";\n SynthesisMessageLevel[\"WARNING\"] = \"warning\";\n SynthesisMessageLevel[\"ERROR\"] = \"error\";\n})(SynthesisMessageLevel || (exports.SynthesisMessageLevel = SynthesisMessageLevel = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBRWhELElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsNENBQW1CLENBQUE7SUFDbkIsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFJaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5cbi8qKlxuICogVGhlIGtleSB1c2VkIHdoZW4gQ0RLIHBhdGggaXMgZW1iZWRkZWQgaW4gKipDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSoqIG1ldGFkYXRhIChub3QgY2RrIG1ldGFkYXRhKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBVEhfTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6cGF0aCc7XG5cbmV4cG9ydCBlbnVtIFN5bnRoZXNpc01lc3NhZ2VMZXZlbCB7XG4gIElORk8gPSAnaW5mbycsXG4gIFdBUk5JTkcgPSAnd2FybmluZycsXG4gIEVSUk9SID0gJ2Vycm9yJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUVudHJ5UmVzdWx0IGV4dGVuZHMgY3hzY2hlbWEuTWV0YWRhdGFFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB3aGljaCB0aGlzIGVudHJ5IHdhcyBkZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgb2JqZWN0cyBpbiB0aGUgc3RhY2sncyBDb25zdHJ1Y3QgdHJlZVxuICovXG5leHBvcnQgdHlwZSBTdGFja01ldGFkYXRhID0geyBbcGF0aDogc3RyaW5nXTogY3hzY2hlbWEuTWV0YWRhdGFFbnRyeVtdIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhlc2lzTWVzc2FnZSB7XG4gIHJlYWRvbmx5IGxldmVsOiBTeW50aGVzaXNNZXNzYWdlTGV2ZWw7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudHJ5OiBjeHNjaGVtYS5NZXRhZGF0YUVudHJ5O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentPlaceholders = void 0;\n/**\n * Placeholders which can be used manifests\n *\n * These can occur both in the Asset Manifest as well as the general\n * Cloud Assembly manifest.\n */\nclass EnvironmentPlaceholders {\n /**\n * Replace the environment placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\n static replace(object, values) {\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, values.region);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, values.accountId);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, values.partition);\n return value;\n });\n }\n /**\n * Like 'replace', but asynchronous\n */\n static async replaceAsync(object, provider) {\n let needRegion = false;\n let needAccountId = false;\n let needPartition = false;\n this.recurse(object, value => {\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_REGION) > 1) {\n needRegion = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_ACCOUNT) > 1) {\n needAccountId = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_PARTITION) > 1) {\n needPartition = true;\n }\n return value;\n });\n const region = needRegion ? await provider.region() : undefined;\n const accountId = needAccountId ? await provider.accountId() : undefined;\n const partition = needPartition ? await provider.partition() : undefined;\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, region ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, accountId ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, partition ?? 'WONTHAPPEN');\n return value;\n });\n }\n static recurse(value, cb) {\n if (typeof value === 'string') {\n return cb(value);\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(x => this.recurse(x, cb));\n }\n const ret = {};\n for (const [key, inner] of Object.entries(value)) {\n ret[key] = this.recurse(inner, cb);\n }\n return ret;\n }\n}\nexports.EnvironmentPlaceholders = EnvironmentPlaceholders;\n/**\n * Insert this into the destination fields to be replaced with the current region\n */\nEnvironmentPlaceholders.CURRENT_REGION = '${AWS::Region}';\n/**\n * Insert this into the destination fields to be replaced with the current account\n */\nEnvironmentPlaceholders.CURRENT_ACCOUNT = '${AWS::AccountId}';\n/**\n * Insert this into the destination fields to be replaced with the current partition\n */\nEnvironmentPlaceholders.CURRENT_PARTITION = '${AWS::Partition}';\n/**\n * A \"replace-all\" function that doesn't require us escaping a literal string to a regex\n */\nfunction replaceAll(s, search, replace) {\n return s.split(search).join(replace);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7OztHQUtHO0FBQ0gsTUFBYSx1QkFBdUI7SUFnQmxDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsTUFBb0M7UUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNsQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pGLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckYsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFXLEVBQUUsUUFBeUM7UUFDckYsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENB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d2hpY2ggY2FuIGJlIHVzZWQgbWFuaWZlc3RzXG4gKlxuICogVGhlc2UgY2FuIG9jY3VyIGJvdGggaW4gdGhlIEFzc2V0IE1hbmlmZXN0IGFzIHdlbGwgYXMgdGhlIGdlbmVyYWxcbiAqIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0LlxuICovXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMge1xuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENVUlJFTlRfUkVHSU9OID0gJyR7QVdTOjpSZWdpb259JztcblxuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgYWNjb3VudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDVVJSRU5UX0FDQ09VTlQgPSAnJHtBV1M6OkFjY291bnRJZH0nO1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgdGhpcyBpbnRvIHRoZSBkZXN0aW5hdGlvbiBmaWVsZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgY3VycmVudCBwYXJ0aXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1VSUkVOVF9QQVJUSVRJT04gPSAnJHtBV1M6OlBhcnRpdGlvbn0nO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnMgaW4gYWxsIHN0cmluZ3MgZm91bmQgaW4gYSBjb21wbGV4IG9iamVjdC5cbiAgICpcbiAgICogRHVwbGljYXRlZCBiZXR3ZWVuIGNkay1hc3NldHMgYW5kIGF3cy1jZGsgQ0xJIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIGdvb2Qgc2luZ2xlIHBsYWNlIHRvIHB1dCBpdFxuICAgKiAodGhleSdyZSBub21pbmFsbHkgaW5kZXBlbmRlbnQgdG9vbHMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZXBsYWNlKG9iamVjdDogYW55LCB2YWx1ZXM6IEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlY3Vyc2Uob2JqZWN0LCB2YWx1ZSA9PiB7XG4gICAgICB2YWx1ZSA9IHJlcGxhY2VBbGwodmFsdWUsIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfUkVHSU9OLCB2YWx1ZXMucmVnaW9uKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9BQ0NPVU5ULCB2YWx1ZXMuYWNjb3VudElkKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04sIHZhbHVlcy5wYXJ0aXRpb24pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2UgJ3JlcGxhY2UnLCBidXQgYXN5bmNocm9ub3VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlcGxhY2VBc3luYyhvYmplY3Q6IGFueSwgcHJvdmlkZXI6IElFbnZpcm9ubWVudFBsYWNlaG9sZGVyUHJvdmlkZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBuZWVkUmVnaW9uID0gZmFsc2U7XG4gICAgbGV0IG5lZWRBY2NvdW50SWQgPSBmYWxzZTtcbiAgICBsZXQgbmVlZFBhcnRpdGlvbiA9IGZhbHNlO1xuXG4gICAgdGhpcy5yZWN1cnNlKG9iamVjdCwgdmFsdWUgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04pID4gMSkge1xuICAgICAgICBuZWVkUmVnaW9uID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfQUNDT1VOVCkgPiAxKSB7XG4gICAgICAgIG5lZWRBY2NvdW50SWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04pID4gMSkge1xuICAgICAgICBuZWVkUGFydGl0aW9uID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZ2lvbiA9IG5lZWRSZWdpb24gPyBhd2FpdCBwcm92aWRlci5yZWdpb24oKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBuZWVkQWNjb3VudElkID8gYXdhaXQgcHJvdmlkZXIuYWNjb3VudElkKCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFydGl0aW9uID0gbmVlZFBhcnRpdGlvbiA/IGF3YWl0IHByb3ZpZGVyLnBhcnRpdGlvbigpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMucmVjdXJzZShvYmplY3QsIHZhbHVlID0+IHtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04sIHJlZ2lvbiA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX0FDQ09VTlQsIGFjY291bnRJZCA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX1BBUlRJVElPTiwgcGFydGl0aW9uID8/ICdXT05USEFQUEVOJyk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWN1cnNlKHZhbHVlOiBhbnksIGNiOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY2IodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoeCA9PiB0aGlzLnJlY3Vyc2UoeCwgY2IpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGlubmVyXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIHJldFtrZXldID0gdGhpcy5yZWN1cnNlKGlubmVyLCBjYik7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlcyBmb3IgdGhlIGVudmlyb25tZW50IHBsYWNlaG9sZGVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcnRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXJvbm1lbnRQbGFjZWhvbGRlclByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmVnaW9uXG4gICAqL1xuICByZWdpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIGFjY291bnRJZCgpOiBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcGFydGl0aW9uXG4gICAqL1xuICBwYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEEgXCJyZXBsYWNlLWFsbFwiIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzIGVzY2FwaW5nIGEgbGl0ZXJhbCBzdHJpbmcgdG8gYSByZWdleFxuICovXG5mdW5jdGlvbiByZXBsYWNlQWxsKHM6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZykge1xuICByZXR1cm4gcy5zcGxpdChzZWFyY2gpLmpvaW4ocmVwbGFjZSk7XG59XG4iXX0=","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _CloudAssemblyError_time;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyError = void 0;\nconst ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssemblyError');\n/**\n * A CloudAssemblyError is thrown for issues with the synthesized CloudAssembly.\n *\n * These are typically exceptions that are unexpected for end-users,\n * and should only occur during abnormal operation, e.g. when the synthesis\n * didn't fully complete.\n *\n * @internal\n */\nclass CloudAssemblyError extends Error {\n /**\n * The time the error was thrown.\n */\n get time() {\n return __classPrivateFieldGet(this, _CloudAssemblyError_time, \"f\");\n }\n get type() {\n return 'assembly';\n }\n constructor(msg) {\n super(msg);\n _CloudAssemblyError_time.set(this, void 0);\n Object.setPrototypeOf(this, CloudAssemblyError.prototype);\n Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });\n this.name = new.target.name;\n __classPrivateFieldSet(this, _CloudAssemblyError_time, new Date().toISOString(), \"f\");\n }\n}\nexports.CloudAssemblyError = CloudAssemblyError;\n_CloudAssemblyError_time = new WeakMap();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUUvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUczQzs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sdUJBQUEsSUFBSSxnQ0FBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQWRiLDJDQUFjO1FBZ0JaLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM1Qix1QkFBQSxJQUFJLDRCQUFTLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQUEsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQVNTRU1CTFlfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkQXNzZW1ibHlFcnJvcicpO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseUVycm9yIGlzIHRocm93biBmb3IgaXNzdWVzIHdpdGggdGhlIHN5bnRoZXNpemVkIENsb3VkQXNzZW1ibHkuXG4gKlxuICogVGhlc2UgYXJlIHR5cGljYWxseSBleGNlcHRpb25zIHRoYXQgYXJlIHVuZXhwZWN0ZWQgZm9yIGVuZC11c2VycyxcbiAqIGFuZCBzaG91bGQgb25seSBvY2N1ciBkdXJpbmcgYWJub3JtYWwgb3BlcmF0aW9uLCBlLmcuIHdoZW4gdGhlIHN5bnRoZXNpc1xuICogZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRBc3NlbWJseUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAjdGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZXJyb3Igd2FzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGltZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiN0aW1lO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCk6ICdhc3NlbWJseScge1xuICAgIHJldHVybiAnYXNzZW1ibHknO1xuICB9XG5cbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtc2cpO1xuXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIENsb3VkQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLm5hbWUgPSBuZXcudGFyZ2V0Lm5hbWU7XG4gICAgdGhpcy4jdGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.topologicalSort = topologicalSort;\nconst error_1 = require(\"./error\");\n/**\n * Return a topological sort of all elements of xs, according to the given dependency functions\n *\n * Dependencies outside the referenced set are ignored.\n *\n * Not a stable sort, but in order to keep the order as stable as possible, we'll sort by key\n * among elements of equal precedence.\n */\nfunction topologicalSort(xs, keyFn, depFn) {\n const remaining = new Map();\n for (const element of xs) {\n const key = keyFn(element);\n remaining.set(key, { key, element, dependencies: depFn(element) });\n }\n const ret = new Array();\n while (remaining.size > 0) {\n // All elements with no more deps in the set can be ordered\n const selectable = Array.from(remaining.values()).filter(e => e.dependencies.every(d => !remaining.has(d)));\n selectable.sort((a, b) => a.key < b.key ? -1 : b.key < a.key ? 1 : 0);\n for (const selected of selectable) {\n ret.push(selected.element);\n remaining.delete(selected.key);\n }\n // If we didn't make any progress, we got stuck\n if (selectable.length === 0) {\n throw new error_1.CloudAssemblyError(`Could not determine ordering between: ${Array.from(remaining.keys()).join(', ')}`);\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wb3NvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b3Bvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLDBDQTBCQztBQXZDRCxtQ0FBNkM7QUFLN0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBSSxFQUFlLEVBQUUsS0FBaUIsRUFBRSxLQUFpQjtJQUN0RixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUNwRCxLQUFLLE1BQU0sT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsT0FBTyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLDJEQUEyRDtRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELCtDQUErQztRQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLHlDQUF5QyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL2Vycm9yJztcblxuZXhwb3J0IHR5cGUgS2V5RnVuYzxUPiA9ICh4OiBUKSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBEZXBGdW5jPFQ+ID0gKHg6IFQpID0+IHN0cmluZ1tdO1xuXG4vKipcbiAqIFJldHVybiBhIHRvcG9sb2dpY2FsIHNvcnQgb2YgYWxsIGVsZW1lbnRzIG9mIHhzLCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGRlcGVuZGVuY3kgZnVuY3Rpb25zXG4gKlxuICogRGVwZW5kZW5jaWVzIG91dHNpZGUgdGhlIHJlZmVyZW5jZWQgc2V0IGFyZSBpZ25vcmVkLlxuICpcbiAqIE5vdCBhIHN0YWJsZSBzb3J0LCBidXQgaW4gb3JkZXIgdG8ga2VlcCB0aGUgb3JkZXIgYXMgc3RhYmxlIGFzIHBvc3NpYmxlLCB3ZSdsbCBzb3J0IGJ5IGtleVxuICogYW1vbmcgZWxlbWVudHMgb2YgZXF1YWwgcHJlY2VkZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvcG9sb2dpY2FsU29ydDxUPih4czogSXRlcmFibGU8VD4sIGtleUZuOiBLZXlGdW5jPFQ+LCBkZXBGbjogRGVwRnVuYzxUPik6IFRbXSB7XG4gIGNvbnN0IHJlbWFpbmluZyA9IG5ldyBNYXA8c3RyaW5nLCBUb3BvRWxlbWVudDxUPj4oKTtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIHhzKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5Rm4oZWxlbWVudCk7XG4gICAgcmVtYWluaW5nLnNldChrZXksIHsga2V5LCBlbGVtZW50LCBkZXBlbmRlbmNpZXM6IGRlcEZuKGVsZW1lbnQpIH0pO1xuICB9XG5cbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFQ+KCk7XG4gIHdoaWxlIChyZW1haW5pbmcuc2l6ZSA+IDApIHtcbiAgICAvLyBBbGwgZWxlbWVudHMgd2l0aCBubyBtb3JlIGRlcHMgaW4gdGhlIHNldCBjYW4gYmUgb3JkZXJlZFxuICAgIGNvbnN0IHNlbGVjdGFibGUgPSBBcnJheS5mcm9tKHJlbWFpbmluZy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gZS5kZXBlbmRlbmNpZXMuZXZlcnkoZCA9PiAhcmVtYWluaW5nLmhhcyhkKSkpO1xuXG4gICAgc2VsZWN0YWJsZS5zb3J0KChhLCBiKSA9PiBhLmtleSA8IGIua2V5ID8gLTEgOiBiLmtleSA8IGEua2V5ID8gMSA6IDApO1xuXG4gICAgZm9yIChjb25zdCBzZWxlY3RlZCBvZiBzZWxlY3RhYmxlKSB7XG4gICAgICByZXQucHVzaChzZWxlY3RlZC5lbGVtZW50KTtcbiAgICAgIHJlbWFpbmluZy5kZWxldGUoc2VsZWN0ZWQua2V5KTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBkaWRuJ3QgbWFrZSBhbnkgcHJvZ3Jlc3MsIHdlIGdvdCBzdHVja1xuICAgIGlmIChzZWxlY3RhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgQ291bGQgbm90IGRldGVybWluZSBvcmRlcmluZyBiZXR3ZWVuOiAke0FycmF5LmZyb20ocmVtYWluaW5nLmtleXMoKSkuam9pbignLCAnKX1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5pbnRlcmZhY2UgVG9wb0VsZW1lbnQ8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBzdHJpbmdbXTtcbiAgZWxlbWVudDogVDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlc3RpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWRlc3RpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlc3RpbmF0aW9uIGZvciBhc3NldHMgdGhhdCBuZWVkIHRvIGJlIHVwbG9hZGVkIHRvIEFXU1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Rlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgdGhpcyBhc3NldCB3aWxsIG5lZWQgdG8gYmUgcHVibGlzaGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VycmVudCByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgdGhhdCBuZWVkcyB0byBiZSBhc3N1bWVkIHdoaWxlIHB1Ymxpc2hpbmcgdGhpcyBhc3NldFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHJvbGUgd2lsbCBiZSBhc3N1bWVkXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgRXh0ZXJuYWxJZCB0aGF0IG5lZWRzIHRvIGJlIHN1cHBsaWVkIHdoaWxlIGFzc3VtaW5nIHRoaXMgcm9sZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIEV4dGVybmFsSWQgd2lsbCBiZSBzdXBwbGllZFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKlxuICAgKiAtIGBSb2xlQXJuYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlQXJuYCBwcm9wZXJ0eSBpbnN0ZWFkLlxuICAgKiAtIGBFeHRlcm5hbElkYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlRXh0ZXJuYWxJZGAgaW5zdGVhZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL1NUUy5odG1sI2Fzc3VtZVJvbGUtcHJvcGVydHlcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWltYWdlLWFzc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLWltYWdlLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEF3c0Rlc3RpbmF0aW9uIH0gZnJvbSAnLi9hd3MtZGVzdGluYXRpb24nO1xuXG4vKipcbiAqIEEgZmlsZSBhc3NldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckltYWdlQXNzZXQge1xuICAvKipcbiAgICogQSBkaXNwbGF5IG5hbWUgZm9yIHRoaXMgYXNzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgaWRlbnRpZmllciB3aWxsIGJlIHVzZWQgYXMgdGhlIGRpc3BsYXkgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNvdXJjZSBkZXNjcmlwdGlvbiBmb3IgY29udGFpbmVyIGFzc2V0c1xuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBEb2NrZXJJbWFnZVNvdXJjZTtcblxuICAvKipcbiAgICogRGVzdGluYXRpb25zIGZvciB0aGlzIGNvbnRhaW5lciBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25zOiB7IFtpZDogc3RyaW5nXTogRG9ja2VySW1hZ2VEZXN0aW5hdGlvbiB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGhvdyB0byBwcm9kdWNlIGEgRG9ja2VyIGltYWdlIGZyb20gYSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZVNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIERvY2tlciBpbWFnZSBidWlsZCBpbnN0cnVjdGlvbnMuXG4gICAqXG4gICAqIFRoaXMgcGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgYXNzZXQgbWFuaWZlc3QgbG9jYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRXhhY3RseSBvbmUgb2YgYGRpcmVjdG9yeWAgYW5kIGBleGVjdXRhYmxlYCBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbW1hbmQtbGluZSBleGVjdXRhYmxlIHRoYXQgcmV0dXJucyB0aGUgbmFtZSBvZiBhIGxvY2FsXG4gICAqIERvY2tlciBpbWFnZSBvbiBzdGRvdXQgYWZ0ZXIgYmVpbmcgcnVuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEV4YWN0bHkgb25lIG9mIGBkaXJlY3RvcnlgIGFuZCBgZXhlY3V0YWJsZWAgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGFibGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpbGUgd2l0aCBidWlsZCBpbnN0cnVjdGlvbnNcbiAgICpcbiAgICogT25seSBhbGxvd2VkIHdoZW4gYGRpcmVjdG9yeWAgaXMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkRvY2tlcmZpbGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGFyZ2V0IGJ1aWxkIHN0YWdlIGluIGEgRG9ja2VyZmlsZSB3aXRoIG11bHRpcGxlIGJ1aWxkIHN0YWdlc1xuICAgKlxuICAgKiBPbmx5IGFsbG93ZWQgd2hlbiBgZGlyZWN0b3J5YCBpcyBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGxhc3Qgc3RhZ2UgaW4gdGhlIERvY2tlcmZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckJ1aWxkVGFyZ2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJ1aWxkIGFyZ3VtZW50c1xuICAgKlxuICAgKiBPbmx5IGFsbG93ZWQgd2hlbiBgZGlyZWN0b3J5YCBpcyBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBidWlsZCBhcmd1bWVudHNcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckJ1aWxkQXJncz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJ1aWxkIGNvbnRleHRzXG4gICAqXG4gICAqIE9ubHkgYWxsb3dlZCB3aGVuIGBkaXJlY3RvcnlgIGlzIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIGJ1aWxkIGNvbnRleHRzXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJCdWlsZENvbnRleHRzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNTSCBhZ2VudCBzb2NrZXQgb3Iga2V5c1xuICAgKlxuICAgKiBSZXF1aXJlcyBidWlsZGluZyB3aXRoIGRvY2tlciBidWlsZGtpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzc2ggZmxhZyBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckJ1aWxkU3NoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJ1aWxkIHNlY3JldHNcbiAgICpcbiAgICogT25seSBhbGxvd2VkIHdoZW4gYGRpcmVjdG9yeWAgaXMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgYnVpbGQgc2VjcmV0c1xuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyQnVpbGRTZWNyZXRzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE5ldHdvcmtpbmcgbW9kZSBmb3IgdGhlIFJVTiBjb21tYW5kcyBkdXJpbmcgYnVpbGQuIF9SZXF1aXJlcyBEb2NrZXIgRW5naW5lIEFQSSB2MS4yNStfLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgcHJvcGVydHkgdG8gYnVpbGQgaW1hZ2VzIG9uIGEgc3BlY2lmaWMgbmV0d29ya2luZyBtb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldHdvcmtpbmcgbW9kZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSB0byBidWlsZCBmb3IuIF9SZXF1aXJlcyBEb2NrZXIgQnVpbGR4Xy5cbiAgICpcbiAgICogU3BlY2lmeSB0aGlzIHByb3BlcnR5IHRvIGJ1aWxkIGltYWdlcyBvbiBhIHNwZWNpZmljIHBsYXRmb3JtL2FyY2hpdGVjdHVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IG1hY2hpbmUgcGxhdGZvcm1cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3V0cHV0cyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kIChkZWZhdWx0IG91dHB1dHMgYXJlIHVzZWQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8jY3VzdG9tLWJ1aWxkLW91dHB1dHNcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlck91dHB1dHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2FjaGUgZnJvbSBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgZnJvbSBvcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmRcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy9cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRnJvbT86IERvY2tlckNhY2hlT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIENhY2hlIHRvIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSB0byBvcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmRcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy9cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlVG8/OiBEb2NrZXJDYWNoZU9wdGlvbjtcblxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgY2FjaGUgYW5kIHBhc3MgYC0tbm8tY2FjaGVgIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNhY2hlIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFdoZXJlIHRvIHB1Ymxpc2ggZG9ja2VyIGltYWdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckltYWdlRGVzdGluYXRpb24gZXh0ZW5kcyBBd3NEZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBFQ1IgcmVwb3NpdG9yeSB0byBwdWJsaXNoIHRvXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWcgb2YgdGhlIGltYWdlIHRvIHB1Ymxpc2hcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVGFnOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIERvY2tlciBjYWNoZSBiYWNrZW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ2FjaGVPcHRpb24ge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgY2FjaGUgdG8gdXNlLlxuICAgKiBSZWZlciB0byBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy8gZm9yIGZ1bGwgbGlzdCBvZiBiYWNrZW5kcy5cbiAgICogQGRlZmF1bHQgLSB1bnNwZWNpZmllZFxuICAgKlxuICAgKiBAZXhhbXBsZSAncmVnaXN0cnknXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbnkgcGFyYW1ldGVycyB0byBwYXNzIGludG8gdGhlIGRvY2tlciBjYWNoZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIFJlZmVyIHRvIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzLyBmb3IgY2FjaGUgYmFja2VuZCBjb25maWd1cmF0aW9uLlxuICAgKiBAZGVmYXVsdCB7fSBObyBvcHRpb25zIHByb3ZpZGVkXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGRlY2xhcmUgY29uc3QgYnJhbmNoOiBzdHJpbmc7XG4gICAqXG4gICAqIGNvbnN0IHBhcmFtcyA9IHtcbiAgICogICByZWY6IGAxMjM0NTY3OC5ka3IuZWNyLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tL2NhY2hlOiR7YnJhbmNofWAsXG4gICAqICAgbW9kZTogXCJtYXhcIixcbiAgICogfTtcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileAssetPackaging = void 0;\n/**\n * Packaging strategy for file assets\n */\nvar FileAssetPackaging;\n(function (FileAssetPackaging) {\n /**\n * Upload the given path as a file\n */\n FileAssetPackaging[\"FILE\"] = \"file\";\n /**\n * The given path is a directory, zip it and upload\n */\n FileAssetPackaging[\"ZIP_DIRECTORY\"] = \"zip\";\n})(FileAssetPackaging || (exports.FileAssetPackaging = FileAssetPackaging = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZpbGUtYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBOztHQUVHO0FBQ0gsSUFBWSxrQkFVWDtBQVZELFdBQVksa0JBQWtCO0lBQzVCOztPQUVHO0lBQ0gsbUNBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBVTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBd3NEZXN0aW5hdGlvbiB9IGZyb20gJy4vYXdzLWRlc3RpbmF0aW9uJztcblxuLyoqXG4gKiBBIGZpbGUgYXNzZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlQXNzZXQge1xuICAvKipcbiAgICogQSBkaXNwbGF5IG5hbWUgZm9yIHRoaXMgYXNzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgaWRlbnRpZmllciB3aWxsIGJlIHVzZWQgYXMgdGhlIGRpc3BsYXkgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNvdXJjZSBkZXNjcmlwdGlvbiBmb3IgZmlsZSBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogRmlsZVNvdXJjZTtcblxuICAvKipcbiAgICogRGVzdGluYXRpb25zIGZvciB0aGlzIGZpbGUgYXNzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uczogeyBbaWQ6IHN0cmluZ106IEZpbGVEZXN0aW5hdGlvbiB9O1xufVxuXG4vKipcbiAqIFBhY2thZ2luZyBzdHJhdGVneSBmb3IgZmlsZSBhc3NldHNcbiAqL1xuZXhwb3J0IGVudW0gRmlsZUFzc2V0UGFja2FnaW5nIHtcbiAgLyoqXG4gICAqIFVwbG9hZCB0aGUgZ2l2ZW4gcGF0aCBhcyBhIGZpbGVcbiAgICovXG4gIEZJTEUgPSAnZmlsZScsXG5cbiAgLyoqXG4gICAqIFRoZSBnaXZlbiBwYXRoIGlzIGEgZGlyZWN0b3J5LCB6aXAgaXQgYW5kIHVwbG9hZFxuICAgKi9cbiAgWklQX0RJUkVDVE9SWSA9ICd6aXAnLFxufVxuXG4vKipcbiAqIERlc2NyaWJlIHRoZSBzb3VyY2Ugb2YgYSBmaWxlIGFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVNvdXJjZSB7XG4gIC8qKlxuICAgKiBFeHRlcm5hbCBjb21tYW5kIHdoaWNoIHdpbGwgcHJvZHVjZSB0aGUgZmlsZSBhc3NldCB0byB1cGxvYWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRXhhY3RseSBvbmUgb2YgYGV4ZWN1dGFibGVgIGFuZCBgcGF0aGAgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZWFkb25seSBleGVjdXRhYmxlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlc3lzdGVtIG9iamVjdCB0byB1cGxvYWRcbiAgICpcbiAgICogVGhpcyBwYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBhc3NldCBtYW5pZmVzdCBsb2NhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFeGFjdGx5IG9uZSBvZiBgZXhlY3V0YWJsZWAgYW5kIGBwYXRoYCBpcyByZXF1aXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhY2thZ2luZyBtZXRob2RcbiAgICpcbiAgICogT25seSBhbGxvd2VkIHdoZW4gYHBhdGhgIGlzIHNwZWNpZmllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgRklMRVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnaW5nPzogRmlsZUFzc2V0UGFja2FnaW5nO1xufVxuXG4vKipcbiAqIFdoZXJlIGluIFMzIGEgZmlsZSBhc3NldCBuZWVkcyB0byBiZSBwdWJsaXNoZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlRGVzdGluYXRpb24gZXh0ZW5kcyBBd3NEZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnVja2V0XG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBvYmplY3Qga2V5XG4gICAqL1xuICByZWFkb25seSBvYmplY3RLZXk6IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./docker-image-asset\"), exports);\n__exportStar(require(\"./file-asset\"), exports);\n__exportStar(require(\"./aws-destination\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLHVEQUFxQztBQUNyQywrQ0FBNkI7QUFDN0Isb0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2NrZXItaW1hZ2UtYXNzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWFzc2V0JztcbmV4cG9ydCAqIGZyb20gJy4vYXdzLWRlc3RpbmF0aW9uJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvY2tlckltYWdlQXNzZXQgfSBmcm9tICcuL2RvY2tlci1pbWFnZS1hc3NldCc7XG5pbXBvcnQgdHlwZSB7IEZpbGVBc3NldCB9IGZyb20gJy4vZmlsZS1hc3NldCc7XG5cbi8qKlxuICogRGVmaW5pdGlvbnMgZm9yIHRoZSBhc3NldCBtYW5pZmVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0TWFuaWZlc3Qge1xuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUgbWFuaWZlc3RcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbGUgYXNzZXRzIGluIHRoaXMgbWFuaWZlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXM/OiB7IFtpZDogc3RyaW5nXTogRmlsZUFzc2V0IH07XG5cbiAgLyoqXG4gICAqIFRoZSBEb2NrZXIgaW1hZ2UgYXNzZXRzIGluIHRoaXMgbWFuaWZlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBEb2NrZXIgaW1hZ2VzXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJJbWFnZXM/OiB7IFtpZDogc3RyaW5nXTogRG9ja2VySW1hZ2VBc3NldCB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3Qtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXJ0aWZhY3Qtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEluZm9ybWF0aW9uIG5lZWRlZCB0byBhY2Nlc3MgYW4gSUFNIHJvbGUgY3JlYXRlZFxuICogYXMgcGFydCBvZiB0aGUgYm9vdHN0cmFwIHByb2Nlc3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSb2xlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIElBTSByb2xlIGNyZWF0ZWQgYXMgcGFydCBvZiBib290cmFwcGluZ1xuICAgKiBlLmcuIGxvb2t1cFJvbGVBcm5cbiAgICovXG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHRlcm5hbCBJRCB0byB1c2Ugd2hlbiBhc3N1bWluZyB0aGUgYm9vdHN0cmFwIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKlxuICAgKiAtIGBSb2xlQXJuYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhcm5gIHByb3BlcnR5IGluc3RlYWQuXG4gICAqIC0gYEV4dGVybmFsSWRgIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGFzc3VtZVJvbGVFeHRlcm5hbElkYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIHVzZSB0aGlzIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBib290c3RyYXAgc3RhY2sgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIFNTTSBwYXJhbWV0ZXIgd2l0aCBib290c3RyYXAgc3RhY2sgdmVyc2lvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERpc2NvdmVyIFNTTSBwYXJhbWV0ZXIgYnkgcmVhZGluZyBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFydGlmYWN0IHByb3BlcnRpZXMgZm9yIENsb3VkRm9ybWF0aW9uIHN0YWNrcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBBIGZpbGUgcmVsYXRpdmUgdG8gdGhlIGFzc2VtYmx5IHJvb3Qgd2hpY2ggY29udGFpbnMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGZvciB0aGlzIHN0YWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGVGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhbHVlcyBmb3IgQ2xvdWRGb3JtYXRpb24gc3RhY2sgcGFyYW1ldGVycyB0aGF0IHNob3VsZCBiZSBwYXNzZWQgd2hlbiB0aGUgc3RhY2sgaXMgZGVwbG95ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVmFsdWVzIGZvciBDbG91ZEZvcm1hdGlvbiBzdGFjayB0YWdzIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB3aGVuIHRoZSBzdGFjayBpcyBkZXBsb3llZC5cbiAgICpcbiAgICogTi5CLjogVGFncyBhcmUgYWxzbyB3cml0dGVuIHRvIHN0YWNrIG1ldGFkYXRhLCB1bmRlciB0aGUgcGF0aCBvZiB0aGUgU3RhY2tcbiAgICogY29uc3RydWN0LiBPbmx5IGluIENESyBDTEkgdjEgYXJlIHRob3NlIHRhZ3MgZm91bmQgaW4gbWV0YWRhdGEgdXNlZCBmb3JcbiAgICogYWN0dWFsIGRlcGxveW1lbnRzOyBpbiBhbGwgc3RhYmxlIHZlcnNpb25zIG9mIENESyBvbmx5IHRoZSBzdGFjayB0YWdzXG4gICAqIGRpcmVjdGx5IGZvdW5kIGluIHRoZSBgdGFnc2AgcHJvcGVydHkgb2YgYEF3c0Nsb3VkRm9ybWF0aW9uU3RhY2tgIGFydGlmYWN0XG4gICAqIChpLmUuLCB0aGlzIHByb3BlcnR5KSBhcmUgdXNlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBTTlMgTm90aWZpY2F0aW9uIEFSTnMgdGhhdCBzaG91bGQgcmVjZWl2ZSBDbG91ZEZvcm1hdGlvbiBTdGFjayBFdmVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbm90aWZpY2F0aW9uIGFybnNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqIEBkZWZhdWx0IC0gbmFtZSBkZXJpdmVkIGZyb20gYXJ0aWZhY3QgSURcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgdGVybWluYXRpb24gcHJvdGVjdGlvbiBmb3IgdGhpcyBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRlcm1pbmF0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgbmVlZHMgdG8gYmUgYXNzdW1lZCB0byBkZXBsb3kgdGhlIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcm9sZSBpcyBhc3N1bWVkIChjdXJyZW50IGNyZWRlbnRpYWxzIGFyZSB1c2VkKVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0ZXJuYWwgSUQgdG8gdXNlIHdoZW4gYXNzdW1pbmcgcm9sZSBmb3IgY2xvdWRmb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKlxuICAgKiAtIGBSb2xlQXJuYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlQXJuYCBwcm9wZXJ0eSBpbnN0ZWFkLlxuICAgKiAtIGBFeHRlcm5hbElkYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlRXh0ZXJuYWxJZGAgaW5zdGVhZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL1NUUy5odG1sI2Fzc3VtZVJvbGUtcHJvcGVydHlcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSB0aGF0IGlzIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbiB0byBleGVjdXRlIHRoZSBjaGFuZ2Ugc2V0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcm9sZSBpcyBwYXNzZWQgKGN1cnJlbnRseSBhc3N1bWVkIHJvbGUvY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRvIHVzZSB0byBsb29rIHVwIHZhbHVlcyBmcm9tIHRoZSB0YXJnZXQgQVdTIGFjY291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBsb29rdXBSb2xlPzogQm9vdHN0cmFwUm9sZTtcblxuICAvKipcbiAgICogSWYgdGhlIHN0YWNrIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gaW5jbHVkZWQgaW4gdGhlIGFzc2V0IG1hbmlmZXN0LCBpdHMgYXNzZXQgVVJMXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IHVwbG9hZGVkIHlldCwgdXBsb2FkIGp1c3QgYmVmb3JlIGRlcGxveWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIGJvb3RzdHJhcCBzdGFjayByZXF1aXJlZCB0byBkZXBsb3kgdGhpcyBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGJvb3RzdHJhcCBzdGFjayByZXF1aXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNTTSBwYXJhbWV0ZXIgd2hlcmUgdGhlIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIG51bWJlciBjYW4gYmUgZm91bmRcbiAgICpcbiAgICogT25seSB1c2VkIGlmIGByZXF1aXJlc0Jvb3RzdHJhcFN0YWNrVmVyc2lvbmAgaXMgc2V0LlxuICAgKlxuICAgKiAtIElmIHRoaXMgdmFsdWUgaXMgbm90IHNldCwgdGhlIGJvb3RzdHJhcCBzdGFjayBuYW1lIG11c3QgYmUga25vd24gYXRcbiAgICogICBkZXBsb3ltZW50IHRpbWUgc28gdGhlIHN0YWNrIHZlcnNpb24gY2FuIGJlIGxvb2tlZCB1cCBmcm9tIHRoZSBzdGFja1xuICAgKiAgIG91dHB1dHMuXG4gICAqIC0gSWYgdGhpcyB2YWx1ZSBpcyBzZXQsIHRoZSBib290c3RyYXAgc3RhY2sgY2FuIGhhdmUgYW55IG5hbWUgYmVjYXVzZVxuICAgKiAgIHdlIHdvbid0IG5lZWQgdG8gbG9vayBpdCB1cC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBCb290c3RyYXAgc3RhY2sgdmVyc2lvbiBudW1iZXIgbG9va2VkIHVwXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdGFjayBzaG91bGQgYmUgdmFsaWRhdGVkIGJ5IHRoZSBDTEkgYWZ0ZXIgc3ludGhlc2lzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlT25TeW50aD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgQXNzZXQgTWFuaWZlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldE1hbmlmZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIGJvb3RzdHJhcCBzdGFjayByZXF1aXJlZCB0byBkZXBsb3kgdGhpcyBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFZlcnNpb24gMSAoYmFzaWMgbW9kZXJuIGJvb3RzdHJhcCBzdGFjaylcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTU00gcGFyYW1ldGVyIHdoZXJlIHRoZSBib290c3RyYXAgc3RhY2sgdmVyc2lvbiBudW1iZXIgY2FuIGJlIGZvdW5kXG4gICAqXG4gICAqIC0gSWYgdGhpcyB2YWx1ZSBpcyBub3Qgc2V0LCB0aGUgYm9vdHN0cmFwIHN0YWNrIG5hbWUgbXVzdCBiZSBrbm93biBhdFxuICAgKiAgIGRlcGxveW1lbnQgdGltZSBzbyB0aGUgc3RhY2sgdmVyc2lvbiBjYW4gYmUgbG9va2VkIHVwIGZyb20gdGhlIHN0YWNrXG4gICAqICAgb3V0cHV0cy5cbiAgICogLSBJZiB0aGlzIHZhbHVlIGlzIHNldCwgdGhlIGJvb3RzdHJhcCBzdGFjayBjYW4gaGF2ZSBhbnkgbmFtZSBiZWNhdXNlXG4gICAqICAgd2Ugd29uJ3QgbmVlZCB0byBsb29rIGl0IHVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIG51bWJlciBsb29rZWQgdXBcbiAgICovXG4gIHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBcnRpZmFjdCBwcm9wZXJ0aWVzIGZvciB0aGUgQXNzZXQgTWFuaWZlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldE1hbmlmZXN0UHJvcGVydGllcyBleHRlbmRzIEFzc2V0TWFuaWZlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbGVuYW1lIG9mIHRoZSBhc3NldCBtYW5pZmVzdFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFydGlmYWN0IHByb3BlcnRpZXMgZm9yIHRoZSBDb25zdHJ1Y3QgVHJlZSBBcnRpZmFjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVBcnRpZmFjdFByb3BlcnRpZXMge1xuICAvKipcbiAgICogRmlsZW5hbWUgb2YgdGhlIHRyZWUgYXJ0aWZhY3RcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBcnRpZmFjdCBwcm9wZXJ0aWVzIGZvciBuZXN0ZWQgY2xvdWQgYXNzZW1ibGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RlZENsb3VkQXNzZW1ibHlQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFJlbGF0aXZlIHBhdGggdG8gdGhlIG5lc3RlZCBjbG91ZCBhc3NlbWJseVxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IG5hbWUgZm9yIHRoZSBjbG91ZCBhc3NlbWJseVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBhcnRpZmFjdCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXJ0aWZhY3QgcHJvcGVydGllcyBmb3IgYSBmZWF0dXJlIGZsYWcgcmVwb3J0XG4gKlxuICogQSBmZWF0dXJlIGZsYWcgcmVwb3J0IGlzIHNtYWxsIGVub3VnaCB0aGF0IGFsbCB0aGUgcHJvcGVydGllcyBjYW4gYmUgaW5saW5lZFxuICogaGVyZSwgYW5kIGRvZXNuJ3QgbmVlZCBhbiBhZGRpdGlvbmFsIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWdSZXBvcnRQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBsaWJyYXJ5IHRoYXQgdGhpcyBmZWF0dXJlIGZsYWcgcmVwb3J0IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSBtb2R1bGU6IHN0cmluZztcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgZXZlcnkgZmVhdHVyZSBmbGFnIHN1cHBvcnRlZCBieSB0aGlzIGxpYnJhcnkuXG4gICAqL1xuICByZWFkb25seSBmbGFnczogeyBbZmxhZ05hbWU6IHN0cmluZ106IEZlYXR1cmVGbGFnIH07XG59XG5cbi8qKlxuICogQSBzaW5nbGUgZmVhdHVyZSBmbGFnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWcge1xuICAvKipcbiAgICogVGhlIGxpYnJhcnktcmVjb21tZW5kZWQgdmFsdWUgZm9yIHRoaXMgZmxhZywgaWYgYW55XG4gICAqXG4gICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVjb21tZW5kZWQgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSByZWNvbW1lbmRlZFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgY29uZmlndXJlZCBieSB0aGUgdXNlclxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSB2YWx1ZSBjb25maWd1cmVkIGF0IHRoZSByb290IG9mIHRoZSB0cmVlLiBVc2VycyBtYXkgYWxzbyBoYXZlXG4gICAqIGNvbmZpZ3VyZWQgdmFsdWVzIGF0IHNwZWNpZmljIGxvY2F0aW9ucyBpbiB0aGUgdHJlZTsgd2UgZG9uJ3QgcmVwb3J0IG9uXG4gICAqIHRob3NlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBjb25maWd1cmVkIGJ5IHRoZSB1c2VyXG4gICAqL1xuICByZWFkb25seSB1c2VyVmFsdWU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIEV4cGxhbmF0aW9uIGFib3V0IHRoZSBwdXJwb3NlIG9mIHRoaXMgZmxhZyB0aGF0IGNhbiBiZSBzaG93biB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZXhwbGFuYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgZmxhZyB0aGF0IHByb2R1Y2VzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHdoZW4gdGhlIGZsYWcgaXMgbm90IGNvbmZpZ3VyZWQgYXQgYWxsXG4gICAqXG4gICAqVGhlIHN0cnVjdHVyZSBvZiB0aGlzIGZpZWxkIGlzIGEgaGlzdG9yaWNhbCBhY2NpZGVudC4gVGhlIHR5cGUgb2YgdGhpcyBmaWVsZFxuICAgKnNob3VsZCBoYXZlIGJlZW4gYm9vbGVhbiwgd2hpY2ggc2hvdWxkIGhhdmUgY29udGFpbmVkIHRoZSBkZWZhdWx0IHZhbHVlIGZvclxuICAgKnRoZSBmbGFnIGFwcHJvcHJpYXRlIGZvciB0aGUgKmN1cnJlbnQqIHZlcnNpb24gb2YgdGhlIENESyBsaWJyYXJ5LiBXZSBhcmVcbiAgICpub3QgcmVjdGlmeWluZyB0aGlzIGFjY2lkZW50IGJlY2F1c2UgZG9pbmcgc29cbiAgICpcbiAgICogSW5zdGVhZCwgdGhlIGNhbm9uaWNhbCB3YXkgdG8gYWNjZXNzIHRoaXMgdmFsdWUgaXMgYnkgZXZhbHVhdGluZ1xuICAgKiBgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U/LnYyID8/IGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlPzogVW5jb25maWd1cmVkQmVoYXZlc0xpa2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5jb25maWd1cmVkQmVoYXZlc0xpa2Uge1xuICAvKipcbiAgICogSGlzdG9yaWNhbCBhY2NpZGVudCwgZG9uJ3QgdXNlLlxuICAgKlxuICAgKiBUaGlzIHZhbHVlIG1heSBiZSBwcmVzZW50LCBidXQgaXQgc2hvdWxkIG5ldmVyIGJlIHVzZWQuIFRoZSBhY3R1YWwgdmFsdWUgaXNcbiAgICogaW4gdGhlIGB2MmAgZmllbGQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHZlcnNpb24gb2YgdGhlIENESyBsaWJyYXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgdjE/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgZmxhZyB0aGF0IHByb2R1Y2VzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHdoZW4gdGhlIGZsYWcgaXMgbm90IGNvbmZpZ3VyZWQgYXQgYWxsXG4gICAqXG4gICAqIEV2ZW4gdGhvdWdoIGl0IGlzIGNhbGxlZCAndjInLCB0aGlzIGlzIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoaXMgZmllbGQuIEluXG4gICAqIGFueSBmdXR1cmUgdmVyc2lvbnMgb2YgQ0RLICh2MywgdjQsIC4uLiksIHRoaXMgZmllbGQgd2lsbCBzdGlsbCBiZSBjYWxsZWQgJ3YyJy5cbiAgICpcbiAgICogVGhlIHN0cnVjdHVyZSBvZiB0aGlzIGZpZWxkIGlzIGEgaGlzdG9yaWNhbCBhY2NpZGVudC4gU2VlIHRoZSBjb21tZW50IG9uXG4gICAqIGB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZWAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2Mj86IGFueTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBtYW5pZmVzdCBhcnRpZmFjdHNcbiAqL1xuZXhwb3J0IHR5cGUgQXJ0aWZhY3RQcm9wZXJ0aWVzID1cbiAgfCBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllc1xuICB8IEFzc2V0TWFuaWZlc3RQcm9wZXJ0aWVzXG4gIHwgVHJlZUFydGlmYWN0UHJvcGVydGllc1xuICB8IE5lc3RlZENsb3VkQXNzZW1ibHlQcm9wZXJ0aWVzXG4gIHwgRmVhdHVyZUZsYWdSZXBvcnRQcm9wZXJ0aWVzO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerListenerProtocol = exports.LoadBalancerType = exports.ContextProvider = void 0;\n/**\n * Identifier for the context provider\n */\nvar ContextProvider;\n(function (ContextProvider) {\n /**\n * AMI provider\n */\n ContextProvider[\"AMI_PROVIDER\"] = \"ami\";\n /**\n * AZ provider\n */\n ContextProvider[\"AVAILABILITY_ZONE_PROVIDER\"] = \"availability-zones\";\n /**\n * Route53 Hosted Zone provider\n */\n ContextProvider[\"HOSTED_ZONE_PROVIDER\"] = \"hosted-zone\";\n /**\n * SSM Parameter Provider\n */\n ContextProvider[\"SSM_PARAMETER_PROVIDER\"] = \"ssm\";\n /**\n * VPC Provider\n */\n ContextProvider[\"VPC_PROVIDER\"] = \"vpc-provider\";\n /**\n * VPC Endpoint Service AZ Provider\n */\n ContextProvider[\"ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER\"] = \"endpoint-service-availability-zones\";\n /**\n * Load balancer provider\n */\n ContextProvider[\"LOAD_BALANCER_PROVIDER\"] = \"load-balancer\";\n /**\n * Load balancer listener provider\n */\n ContextProvider[\"LOAD_BALANCER_LISTENER_PROVIDER\"] = \"load-balancer-listener\";\n /**\n * Security group provider\n */\n ContextProvider[\"SECURITY_GROUP_PROVIDER\"] = \"security-group\";\n /**\n * KMS Key Provider\n */\n ContextProvider[\"KEY_PROVIDER\"] = \"key-provider\";\n /**\n * CCAPI Provider\n */\n ContextProvider[\"CC_API_PROVIDER\"] = \"cc-api-provider\";\n /**\n * A plugin provider (the actual plugin name will be in the properties)\n */\n ContextProvider[\"PLUGIN\"] = \"plugin\";\n})(ContextProvider || (exports.ContextProvider = ContextProvider = {}));\n/**\n * Type of load balancer\n */\nvar LoadBalancerType;\n(function (LoadBalancerType) {\n /**\n * Network load balancer\n */\n LoadBalancerType[\"NETWORK\"] = \"network\";\n /**\n * Application load balancer\n */\n LoadBalancerType[\"APPLICATION\"] = \"application\";\n})(LoadBalancerType || (exports.LoadBalancerType = LoadBalancerType = {}));\n/**\n * The protocol for connections from clients to the load balancer\n */\nvar LoadBalancerListenerProtocol;\n(function (LoadBalancerListenerProtocol) {\n /**\n * HTTP protocol\n */\n LoadBalancerListenerProtocol[\"HTTP\"] = \"HTTP\";\n /**\n * HTTPS protocol\n */\n LoadBalancerListenerProtocol[\"HTTPS\"] = \"HTTPS\";\n /**\n * TCP protocol\n */\n LoadBalancerListenerProtocol[\"TCP\"] = \"TCP\";\n /**\n * TLS protocol\n */\n LoadBalancerListenerProtocol[\"TLS\"] = \"TLS\";\n /**\n * UDP protocol\n * */\n LoadBalancerListenerProtocol[\"UDP\"] = \"UDP\";\n /**\n * TCP and UDP protocol\n * */\n LoadBalancerListenerProtocol[\"TCP_UDP\"] = \"TCP_UDP\";\n})(LoadBalancerListenerProtocol || (exports.LoadBalancerListenerProtocol = LoadBalancerListenerProtocol = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1xdWVyaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udGV4dC1xdWVyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ0gsSUFBWSxlQTREWDtBQTVERCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCx1Q0FBb0IsQ0FBQTtJQUVwQjs7T0FFRztJQUNILG9FQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsdURBQW9DLENBQUE7SUFFcEM7O09BRUc7SUFDSCxpREFBOEIsQ0FBQTtJQUU5Qjs7T0FFRztJQUNILGdEQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsc0dBQW1GLENBQUE7SUFFbkY7O09BRUc7SUFDSCwyREFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILDZFQUEwRCxDQUFBO0lBRTFEOztPQUVHO0lBQ0gsNkRBQTBDLENBQUE7SUFFMUM7O09BRUc7SUFDSCxnREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILHNEQUFtQyxDQUFBO0lBRW5DOztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQTVEVyxlQUFlLCtCQUFmLGVBQWUsUUE0RDFCO0FBMEpEOztHQUVHO0FBQ0gsSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCOztPQUVHO0lBQ0gsdUNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBVlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFVM0I7QUE4QkQ7O0dBRUc7QUFDSCxJQUFZLDRCQThCWDtBQTlCRCxXQUFZLDRCQUE0QjtJQUN0Qzs7T0FFRztJQUNILDZDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILCtDQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLG1EQUFtQixDQUFBO0FBQ3JCLENBQUMsRUE5QlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUE4QnZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUYWcgfSBmcm9tICcuL21ldGFkYXRhLXNjaGVtYSc7XG5cbi8qKlxuICogSWRlbnRpZmllciBmb3IgdGhlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGVudW0gQ29udGV4dFByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEFNSSBwcm92aWRlclxuICAgKi9cbiAgQU1JX1BST1ZJREVSID0gJ2FtaScsXG5cbiAgLyoqXG4gICAqIEFaIHByb3ZpZGVyXG4gICAqL1xuICBBVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUiA9ICdhdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBSb3V0ZTUzIEhvc3RlZCBab25lIHByb3ZpZGVyXG4gICAqL1xuICBIT1NURURfWk9ORV9QUk9WSURFUiA9ICdob3N0ZWQtem9uZScsXG5cbiAgLyoqXG4gICAqIFNTTSBQYXJhbWV0ZXIgUHJvdmlkZXJcbiAgICovXG4gIFNTTV9QQVJBTUVURVJfUFJPVklERVIgPSAnc3NtJyxcblxuICAvKipcbiAgICogVlBDIFByb3ZpZGVyXG4gICAqL1xuICBWUENfUFJPVklERVIgPSAndnBjLXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogVlBDIEVuZHBvaW50IFNlcnZpY2UgQVogUHJvdmlkZXJcbiAgICovXG4gIEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXInLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX0xJU1RFTkVSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXItbGlzdGVuZXInLFxuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBwcm92aWRlclxuICAgKi9cbiAgU0VDVVJJVFlfR1JPVVBfUFJPVklERVIgPSAnc2VjdXJpdHktZ3JvdXAnLFxuXG4gIC8qKlxuICAgKiBLTVMgS2V5IFByb3ZpZGVyXG4gICAqL1xuICBLRVlfUFJPVklERVIgPSAna2V5LXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogQ0NBUEkgUHJvdmlkZXJcbiAgICovXG4gIENDX0FQSV9QUk9WSURFUiA9ICdjYy1hcGktcHJvdmlkZXInLFxuXG4gIC8qKlxuICAgKiBBIHBsdWdpbiBwcm92aWRlciAodGhlIGFjdHVhbCBwbHVnaW4gbmFtZSB3aWxsIGJlIGluIHRoZSBwcm9wZXJ0aWVzKVxuICAgKi9cbiAgUExVR0lOID0gJ3BsdWdpbicsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udGV4dCBsb29rdXAgcm9sZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFF1ZXJ5IGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgcm9sZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIG1pc3NpbmcgdmFsdWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEV4dGVybmFsSWQgdGhhdCBuZWVkcyB0byBiZSBzdXBwbGllZCB3aGlsZSBhc3N1bWluZyB0aGlzIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBFeHRlcm5hbElkIHdpbGwgYmUgc3VwcGxpZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gcGFzcyB0byBTVFMgd2hlbiBhc3N1bWluZyB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIC0gYFJvbGVBcm5gIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVBcm5gIHByb3BlcnR5IGluc3RlYWQuXG4gICAqIC0gYEV4dGVybmFsSWRgIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVFeHRlcm5hbElkYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gQU1JIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWlDb250ZXh0UXVlcnkgZXh0ZW5kcyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMge1xuICAvKipcbiAgICogT3duZXJzIHRvIERlc2NyaWJlSW1hZ2VzIGNhbGxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgb3duZXJzXG4gICAqL1xuICByZWFkb25seSBvd25lcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRmlsdGVycyB0byBEZXNjcmliZUltYWdlcyBjYWxsXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gYXZhaWxhYmlsaXR5IHpvbmUgY29udGV4dCBwcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBob3N0ZWQgem9uZSBjb250ZXh0IHByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdGVkWm9uZUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWUgZS5nLiBleGFtcGxlLmNvbSB0byBsb29rdXBcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHJ1ZSBpZiB0aGUgem9uZSB5b3Ugd2FudCB0byBmaW5kIGlzIGEgcHJpdmF0ZSBob3N0ZWQgem9uZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIHRoYXQgdGhlIHByaXZhdGUgem9uZSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aFxuICAgKlxuICAgKiBJZiB5b3UgcHJvdmlkZSBWUEMgSUQgYW5kIHByaXZhdGVab25lIGlzIGZhbHNlLCB0aGlzIHdpbGwgcmV0dXJuIG5vIHJlc3VsdHNcbiAgICogYW5kIHJhaXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlcXVpcmVkIGlmIHByaXZhdGVab25lPXRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IHRvIFNTTSBQYXJhbWV0ZXIgQ29udGV4dCBQcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTTVBhcmFtZXRlckNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgbmFtZSB0byBxdWVyeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIFZQQ1xuICAgKlxuICAgKiBGaWx0ZXIgcGFyYW1ldGVycyBhcmUgdGhlIHNhbWUgYXMgcGFzc2VkIHRvIERlc2NyaWJlVnBjcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlVnBjcy5odG1sXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcG9wdWxhdGUgdGhlIHN1Ym5ldEdyb3VwcyBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHBvdGVudGlhbGx5IGFzeW1tZXRyaWMgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJldHVybkFzeW1tZXRyaWNTdWJuZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGFnIGZvciBzdWJuZXQgZ3JvdXAgbmFtZS5cbiAgICogSWYgbm90IHByb3ZpZGVkLCB3ZSdsbCBsb29rIGF0IHRoZSBhd3MtY2RrOnN1Ym5ldC1uYW1lIHRhZy5cbiAgICogSWYgdGhlIHN1Ym5ldCBkb2VzIG5vdCBoYXZlIHRoZSBzcGVjaWZpZWQgdGFnLFxuICAgKiB3ZSdsbCB1c2UgaXRzIHR5cGUgYXMgdGhlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhd3MtY2RrOnN1Ym5ldC1uYW1lJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBOYW1lVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBvcHVsYXRlIHRoZSBgdnBuR2F0ZXdheUlkYCBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHRoZSBWUE4gR2F0ZXdheSBJRCwgaWYgb25lIGV4aXN0cy4gWW91IGNhbiBleHBsaWNpdGx5XG4gICAqIGRpc2FibGUgdGhpcyBpbiBvcmRlciB0byBhdm9pZCB0aGUgbG9va3VwIGlmIHlvdSBrbm93IHRoZSBWUEMgZG9lcyBub3QgaGF2ZVxuICAgKiBhIFZQTiBHYXR3YXkgYXR0YWNoZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldHVyblZwbkdhdGV3YXlzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBlbmRwb2ludCBzZXJ2aWNlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBRdWVyeSBzZXJ2aWNlIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSBvZiBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlclR5cGUge1xuICAvKipcbiAgICogTmV0d29yayBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBORVRXT1JLID0gJ25ldHdvcmsnLFxuXG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBBUFBMSUNBVElPTiA9ICdhcHBsaWNhdGlvbicsXG59XG5cbi8qKlxuICogRmlsdGVycyBmb3Igc2VsZWN0aW5nIGxvYWQgYmFsYW5jZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyRmlsdGVyIGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlciBsb2FkIGJhbGFuY2VycyBieSB0aGVpciB0eXBlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJUeXBlOiBMb2FkQmFsYW5jZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBGaW5kIGJ5IGxvYWQgYmFsYW5jZXIncyBBUk5cbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBzZWFyY2ggYnkgbG9hZCBiYWxhbmNlciBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF0Y2ggbG9hZCBiYWxhbmNlciB0YWdzXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgbWF0Y2ggbG9hZCBiYWxhbmNlcnMgYnkgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyVGFncz86IFRhZ1tdO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgbG9hZCBiYWxhbmNlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckNvbnRleHRRdWVyeSBleHRlbmRzIExvYWRCYWxhbmNlckZpbHRlciB7XG59XG5cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXJcbiAqL1xuZXhwb3J0IGVudW0gTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbCB7XG4gIC8qKlxuICAgKiBIVFRQIHByb3RvY29sXG4gICAqL1xuICBIVFRQID0gJ0hUVFAnLFxuXG4gIC8qKlxuICAgKiBIVFRQUyBwcm90b2NvbFxuICAgKi9cbiAgSFRUUFMgPSAnSFRUUFMnLFxuXG4gIC8qKlxuICAgKiBUQ1AgcHJvdG9jb2xcbiAgICovXG4gIFRDUCA9ICdUQ1AnLFxuXG4gIC8qKlxuICAgKiBUTFMgcHJvdG9jb2xcbiAgICovXG4gIFRMUyA9ICdUTFMnLFxuXG4gIC8qKlxuICAgKiBVRFAgcHJvdG9jb2xcbiAgICogKi9cbiAgVURQID0gJ1VEUCcsXG5cbiAgLyoqXG4gICAqIFRDUCBhbmQgVURQIHByb3RvY29sXG4gICAqICovXG4gIFRDUF9VRFAgPSAnVENQX1VEUCcsXG59XG5cbi8qKlxuICogUXVlcnkgaW5wdXQgZm9yIGxvb2tpbmcgdXAgYSBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkgZXh0ZW5kcyBMb2FkQmFsYW5jZXJGaWx0ZXIge1xuICAvKipcbiAgICogRmluZCBieSBsaXN0ZW5lcidzIGFyblxuICAgKiBAZGVmYXVsdCAtIGRvZXMgbm90IGZpbmQgYnkgbGlzdGVuZXIgYXJuXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclByb3RvY29sPzogTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbDtcblxuICAvKipcbiAgICogRmlsdGVyIGxpc3RlbmVycyBieSBsaXN0ZW5lciBwb3J0XG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGEgbGlzdGVuZXIgcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJQb3J0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgc2VjdXJpdHkgZ3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlY3VyaXR5IGdyb3VwIGlkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBJRFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgS01TIEtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbGlhcyBuYW1lIHVzZWQgdG8gc2VhcmNoIHRoZSBLZXlcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29rdXAgdXAgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VzIHVzaW5nIENDIEFQSVxuICpcbiAqIFRoZSBleGFtcGxlIGJlbG93IGlzIHJlcXVpcmVkIHRvIHN1Y2Nlc3NmdWxseSBjb21waWxlIENESyAob3RoZXJ3aXNlLFxuICogdGhlIENESyBidWlsZCB3aWxsIGdlbmVyYXRlIGEgc3ludGhldGljIGV4YW1wbGUgZm9yIHRoZSBiZWxvdywgYnV0IGl0XG4gKiBkb2Vzbid0IGhhdmUgZW5vdWdoIHR5cGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxpdGVyYWwgc3RyaW5nIHVuaW9uXG4gKiB0byBnZW5lcmF0ZSBhIHZhbGlkbHkgY29tcGlsaW5nIGV4YW1wbGUpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBDY0FwaUNvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG4gKlxuICogY29uc3QgeDogQ2NBcGlDb250ZXh0UXVlcnkgPSB7XG4gKiAgIHR5cGVOYW1lOiAnQVdTOjpTb21lOjpUeXBlJyxcbiAqICAgZXhwZWN0ZWRNYXRjaENvdW50OiAnZXhhY3RseS1vbmUnLFxuICogICByZXNvdXJjZU1vZGVsOiB7U29tZUFybjogJ2Fybjphd3M6Li4uLid9LFxuICogICBwcm9wZXJ0aWVzVG9SZXR1cm46IFsnU29tZVByb3AnXSxcbiAqICAgYWNjb3VudDogJzExMTExMTExMTExJyxcbiAqICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAqIH07XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2NBcGlDb250ZXh0UXVlcnkgZXh0ZW5kcyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUuXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xvdWRjb250cm9sYXBpL2xhdGVzdC91c2VyZ3VpZGUvc3VwcG9ydGVkLXJlc291cmNlcy5odG1sXG4gICAqL1xuICByZWFkb25seSB0eXBlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIG9mIHRoZSByZXNvdXJjZSB0byBsb29rIHVwIHVzaW5nIGBHZXRSZXNvdXJjZWAuXG4gICAqXG4gICAqIFNwZWNpZnlpbmcgZXhhY3RJZGVudGlmaWVyIHdpbGwgcmV0dXJuIGV4YWN0bHkgb25lIHJlc3VsdCwgb3IgdGhyb3cgYW4gZXJyb3JcbiAgICogdW5sZXNzIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFaXRoZXIgZXhhY3RJZGVudGlmaWVyIG9yIHByb3BlcnR5TWF0Y2ggc2hvdWxkIGJlIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4YWN0SWRlbnRpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG1vZGVsIHRvIHVzZSB0byBzZWxlY3QgdGhlIHJlc291cmNlcywgdXNpbmcgYExpc3RSZXNvdXJjZXNgLi5cbiAgICpcbiAgICogVGhpcyBpcyBuZWVkZWQgZm9yIHN1Yi1yZXNvdXJjZXMgd2hlcmUgdGhlIHBhcmVudCBBcm4gaXMgcmVxdWlyZWQuXG4gICAqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xvdWRjb250cm9sYXBpL2xhdGVzdC91c2VyZ3VpZGUvcmVzb3VyY2Utb3BlcmF0aW9ucy1saXN0Lmh0bWwjcmVzb3VyY2Utb3BlcmF0aW9ucy1saXN0LWNvbnRhaW5lcnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyByZXNvdXJjZSBNb2RlbCBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VNb2RlbD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFueSByZXNvdXJjZXMgbWF0Y2hpbmcgdGhlc2UgcHJvcGVydGllcywgdXNpbmcgYExpc3RSZXNvdXJjZXNgLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBzcGVjaWZ5aW5nIHByb3BlcnR5TWF0Y2ggd2lsbCBzdWNjZXNzZnVsbHkgcmV0dXJuIDAgb3IgbW9yZVxuICAgKiByZXN1bHRzLiBUbyB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbnVtYmVyIG9mIHJlc3VsdHMgaXMgdW5leHBlY3RlZCAoYW5kXG4gICAqIHByZXZlbnQgdGhlIHF1ZXJ5IHJlc3VsdHMgZnJvbSBiZWluZyBjb21taXR0ZWQgdG8gY29udGV4dCksIHNwZWNpZnlcbiAgICogYGV4cGVjdGVkTWF0Y2hDb3VudGAuXG4gICAqXG4gICAqICMjIE5vdGVzIG9uIHByb3BlcnR5IGNvbXBsZXRlbmVzc1xuICAgKlxuICAgKiBDbG91ZENvbnRyb2wgQVBJJ3MgYExpc3RSZXNvdXJjZXNgIG1heSByZXR1cm4gZmV3ZXIgcHJvcGVydGllcyB0aGFuXG4gICAqIGBHZXRSZXNvdXJjZWAgd291bGQsIGRlcGVuZGluZyBvbiB0aGUgcmVzb3VyY2UgaW1wbGVtZW50YXRpb24uXG4gICAqXG4gICAqIFRoZSByZXNvdXJjZXMgdGhhdCBgcHJvcGVydHlNYXRjaGAgbWF0Y2hlcyBhZ2FpbnN0IHdpbGwgKm9ubHkgZXZlciogYmUgdGhlXG4gICAqIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgdGhlIGBMaXN0UmVzb3VyY2VzYCBjYWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEVpdGhlciBleGFjdElkZW50aWZpZXIgb3IgcHJvcGVydHlNYXRjaCBzaG91bGQgYmUgc3BlY2lmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydHlNYXRjaD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgc2V0IG9mIHByb3BlcnRpZXMgcmV0dXJuZWQgZnJvbSBDQyBBUEkgdGhhdCB3ZSB3YW50IHRvIHJldHVybiBmcm9tIENvbnRleHRRdWVyeS5cbiAgICpcbiAgICogSWYgYW55IHByb3BlcnRpZXMgbGlzdGVkIGhlcmUgYXJlIGFic2VudCBmcm9tIHRoZSB0YXJnZXQgcmVzb3VyY2UsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuICAgKlxuICAgKiBUaGUgcmV0dXJuZWQgb2JqZWN0IHdpbGwgYWx3YXlzIGluY2x1ZGUgdGhlIGtleSBgSWRlbnRpZmllcmAgd2l0aCB0aGUgQ0MtQVBJIHJldHVybmVkXG4gICAqIGZpZWxkIGBJZGVudGlmaWVyYC5cbiAgICpcbiAgICogIyMgTm90ZXMgb24gcHJvcGVydHkgY29tcGxldGVuZXNzXG4gICAqXG4gICAqIENsb3VkQ29udHJvbCBBUEkncyBgTGlzdFJlc291cmNlc2AgbWF5IHJldHVybiBmZXdlciBwcm9wZXJ0aWVzIHRoYW5cbiAgICogYEdldFJlc291cmNlYCB3b3VsZCwgZGVwZW5kaW5nIG9uIHRoZSByZXNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogVGhlIHJldHVybmVkIHByb3BlcnRpZXMgaGVyZSBhcmUgKmN1cnJlbnRseSogc2VsZWN0ZWQgZnJvbSB0aGUgcmVzcG9uc2VcbiAgICogb2JqZWN0IHRoYXQgQ2xvdWRDb250cm9sIEFQSSByZXR1cm5zIHRvIHRoZSBDREsgQ0xJLlxuICAgKlxuICAgKiBIb3dldmVyLCBpZiB3ZSBmaW5kIHRoZXJlIGlzIG5lZWQgdG8gZG8gc28sIHdlIG1heSBkZWNpZGUgdG8gY2hhbmdlIHRoaXNcbiAgICogYmVoYXZpb3IgaW4gdGhlIGZ1dHVyZTogd2UgbWlnaHQgY2hhbmdlIGl0IHRvIHBlcmZvcm0gYW4gYWRkaXRpb25hbFxuICAgKiBgR2V0UmVzb3VyY2VgIGNhbGwgZm9yIHJlc291cmNlcyBtYXRjaGVkIGJ5IGBwcm9wZXJ0eU1hdGNoYC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXNUb1JldHVybjogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4cGVjdGVkIGNvdW50IG9mIHJlc3VsdHMgaWYgYHByb3BlcnR5TWF0Y2hgIGlzIHNwZWNpZmllZC5cbiAgICpcbiAgICogSWYgdGhlIGV4cGVjdGVkIHJlc3VsdCBjb3VudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWN0dWFsIGNvdW50LFxuICAgKiBieSBkZWZhdWx0IGFuIGVycm9yIGlzIHByb2R1Y2VkIGFuZCB0aGUgcmVzdWx0IGlzIG5vdCBjb21taXR0ZWQgdG8gY2FjaGVkXG4gICAqIGNvbnRleHQsIGFuZCB0aGUgdXNlciBjYW4gY29ycmVjdCB0aGUgc2l0dWF0aW9uIGFuZCB0cnkgYWdhaW4gd2l0aG91dFxuICAgKiBoYXZpbmcgdG8gbWFudWFsbHkgY2xlYXIgb3V0IHRoZSBjb250ZXh0IGtleSB1c2luZyBgY2RrIGNvbnRleHQgLS1yZW1vdmVgXG4gICAqXG4gICAqIElmIHRoZSB2YWx1ZSBvZiAqIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIGB0cnVlYCwgdGhlIHZhbHVlIG9mXG4gICAqIGBleHBlY3RlZE1hdGNoQ291bnRgIGlzIGBhdC1sZWFzdC1vbmUgfCBleGFjdGx5LW9uZWAgYW5kIHRoZSBudW1iZXJcbiAgICogb2YgZm91bmQgcmVzb3VyY2VzIGlzIDAsIGBkdW1teVZhbHVlYCBpcyByZXR1cm5lZCBhbmQgY29tbWl0dGVkIHRvIGNvbnRleHRcbiAgICogaW5zdGVhZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FueSdcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVjdGVkTWF0Y2hDb3VudD86ICdhbnknIHwgJ2F0LWxlYXN0LW9uZScgfCAnYXQtbW9zdC1vbmUnIHwgJ2V4YWN0bHktb25lJztcblxuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHJldHVybiBpZiB0aGUgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZCBhbmQgYGlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dGAgaXMgdHJ1ZS5cbiAgICpcbiAgICogSWYgc3VwcGxpZWQsIGBkdW1teVZhbHVlYCBzaG91bGQgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cy5cbiAgICpcbiAgICogYGR1bW15VmFsdWVgIGRvZXMgbm90IGhhdmUgdG8gaGF2ZSBlbGVtZW50cywgYW5kIGl0IG1heSBoYXZlIG9iamVjdHMgd2l0aFxuICAgKiBkaWZmZXJlbnQgcHJvcGVydGllcyB0aGFuIHRoZSBwcm9wZXJ0aWVzIGluIGBwcm9wZXJ0aWVzVG9SZXR1cm5gLCBidXQgaXRcbiAgICogd2lsbCBiZSBlYXNpZXN0IGZvciBkb3duc3RyZWFtIGNvZGUgaWYgdGhlIGBkdW1teVZhbHVlYCBjb25mb3JtcyB0b1xuICAgKiB0aGUgZXhwZWN0ZWQgcmVzcG9uc2Ugc2hhcGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZHVtbXkgdmFsdWUgYXZhaWxhYmxlXG4gICAqL1xuICByZWFkb25seSBkdW1teVZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBJZ25vcmUgYW4gZXJyb3IgYW5kIHJldHVybiB0aGUgYGR1bW15VmFsdWVgIGluc3RlYWQgaWYgdGhlIHJlc291cmNlIHdhcyBub3QgZm91bmQuXG4gICAqXG4gICAqIC0gSW4gY2FzZSBvZiBhbiBgZXhhY3RJZGVudGlmaWVyYCBsb29rdXAsIHJldHVybiB0aGUgYGR1bW15VmFsdWVgIGlmIHRoZSByZXNvdXJjZSB3aXRoXG4gICAqICAgdGhhdCBpZGVudGlmaWVyIHdhcyBub3QgZm91bmQuXG4gICAqIC0gSW4gY2FzZSBvZiBhIGBwcm9wZXJ0eU1hdGNoYCBsb29rdXAsIHJldHVybiB0aGUgYGR1bW15VmFsdWVgIGlmIGBleHBlY3RlZE1hdGNoQ291bnRgXG4gICAqICAgaXMgYGF0LWxlYXN0LW9uZSB8IGV4YWN0bHktb25lYCBhbmQgdGhlIG51bWJlciBvZiByZXNvdXJjZXMgZm91bmQgd2FzIDAuXG4gICAqXG4gICAqIGlmIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIHNldCwgYGR1bW15VmFsdWVgIHNob3VsZCBiZSBzZXQgYW5kIGJlIGFuIGFycmF5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdWVyeSBpbnB1dCBmb3IgcGx1Z2luc1xuICpcbiAqIFRoaXMgYWx0ZXJuYXRlIGJyYW5jaCBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpdCBuZWVkcyB0byBiZSBhYmxlIHRvIGVzY2FwZSBhbGwgdHlwZSBjaGVja2luZ1xuICogd2UgZG8gb24gb24gdGhlIGNsb3VkIGFzc2VtYmx5IC0tIHdlIGNhbm5vdCBrbm93IHRoZSBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSB1c2VkIGEgcHJpb3JpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRRdWVyeSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGx1Z2luXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFyYml0cmFyeSBvdGhlciBhcmd1bWVudHMgZm9yIHRoZSBwbHVnaW4uXG4gICAqXG4gICAqIFRoaXMgaW5kZXggc2lnbmF0dXJlIGlzIG5vdCB1c2FibGUgaW4gbm9uLVR5cGVTY3JpcHQvSmF2YVNjcmlwdCBsYW5ndWFnZXMuXG4gICAqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzID1cbiAgfCBBbWlDb250ZXh0UXVlcnlcbiAgfCBBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeVxuICB8IEhvc3RlZFpvbmVDb250ZXh0UXVlcnlcbiAgfCBTU01QYXJhbWV0ZXJDb250ZXh0UXVlcnlcbiAgfCBWcGNDb250ZXh0UXVlcnlcbiAgfCBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeVxuICB8IExvYWRCYWxhbmNlckNvbnRleHRRdWVyeVxuICB8IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFF1ZXJ5XG4gIHwgU2VjdXJpdHlHcm91cENvbnRleHRRdWVyeVxuICB8IEtleUNvbnRleHRRdWVyeVxuICB8IENjQXBpQ29udGV4dFF1ZXJ5XG4gIHwgUGx1Z2luQ29udGV4dFF1ZXJ5O1xuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./metadata-schema\"), exports);\n__exportStar(require(\"./artifact-schema\"), exports);\n__exportStar(require(\"./context-queries\"), exports);\n__exportStar(require(\"./interfaces\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLG9EQUFrQztBQUNsQyxvREFBa0M7QUFDbEMsb0RBQWtDO0FBQ2xDLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEtc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3Qtc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1xdWVyaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG4iXX0=","\"use strict\";\n// The interfaces in this file, mainly exist __here__ because this is a convenient place to put them.\n// The Assembly Schema package is already a jsii package and a dependency of `aws-cdk-lib`.\n// It is effectively the only place we can put shared interfaces to be used across the jsii ecosystem.\n//\n// Putting a shared interface in here should be a huge exception.\n// It needs to be justified by great benefits it provides to the ecosystems.\n// All interfaces should be as minimal as possible.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFHQUFxRztBQUNyRywyRkFBMkY7QUFDM0Ysc0dBQXNHO0FBQ3RHLEVBQUU7QUFDRixpRUFBaUU7QUFDakUsNEVBQTRFO0FBQzVFLG1EQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBpbnRlcmZhY2VzIGluIHRoaXMgZmlsZSwgbWFpbmx5IGV4aXN0IF9faGVyZV9fIGJlY2F1c2UgdGhpcyBpcyBhIGNvbnZlbmllbnQgcGxhY2UgdG8gcHV0IHRoZW0uXG4vLyBUaGUgQXNzZW1ibHkgU2NoZW1hIHBhY2thZ2UgaXMgYWxyZWFkeSBhIGpzaWkgcGFja2FnZSBhbmQgYSBkZXBlbmRlbmN5IG9mIGBhd3MtY2RrLWxpYmAuXG4vLyBJdCBpcyBlZmZlY3RpdmVseSB0aGUgb25seSBwbGFjZSB3ZSBjYW4gcHV0IHNoYXJlZCBpbnRlcmZhY2VzIHRvIGJlIHVzZWQgYWNyb3NzIHRoZSBqc2lpIGVjb3N5c3RlbS5cbi8vXG4vLyBQdXR0aW5nIGEgc2hhcmVkIGludGVyZmFjZSBpbiBoZXJlIHNob3VsZCBiZSBhIGh1Z2UgZXhjZXB0aW9uLlxuLy8gSXQgbmVlZHMgdG8gYmUganVzdGlmaWVkIGJ5IGdyZWF0IGJlbmVmaXRzIGl0IHByb3ZpZGVzIHRvIHRoZSBlY29zeXN0ZW1zLlxuLy8gQWxsIGludGVyZmFjZXMgc2hvdWxkIGJlIGFzIG1pbmltYWwgYXMgcG9zc2libGUuXG5cbi8qKlxuICogSW50ZXJvcGVyYWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIGRlcGxveWFibGUgY2xvdWQgYXBwbGljYXRpb24uXG4gKlxuICogVGhlIGV4dGVybmFsIGFuZCBpbnRlcm9wZXJhYmxlIGNvbnRyYWN0IGZvciBhIENsb3VkIEFzc2VtYmx5IGlzXG4gKiBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgdmFsaWQgQ2xvdWQgQXNzZW1ibHkuXG4gKlxuICogSW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2UgdGhlIGRpcmVjdG9yeSB0byBsb2FkIHRoZSBDbG91ZCBBc3NlbWJseSBmcm9tIGRpc2suXG4gKiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IGltcGxlbWVudGF0aW9ucyB2YWxpZGF0ZSBsb2FkZWQgbWFuaWZlc3QgZmlsZXMgdXNpbmdcbiAqIHRoZSBwcm92aWRlZCBmdW5jdGlvbmFsaXR5IGZyb20gdGhpcyBwYWNrYWdlLlxuICogV2l0aGluIGFuIGltcGxlbWVudGF0aW9uLCBpdCBtYXkgYmUgcHJ1ZGVudCB0byBrZWVwIChwYXJ0cyBvZikgdGhlIENsb3VkIEFzc2VtYmx5XG4gKiBpbiBtZW1vcnkgZHVyaW5nIGV4ZWN1dGlvbiBhbmQgdXNlIGFuIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIGNvbnRyYWN0LlxuICogSG93ZXZlciB3aGVuIGFuIGltcGxlbWVudGF0aW9uIGlzIHByb3ZpZGluZyBhbiBleHRlcm5hbCBjb250cmFjdCxcbiAqIHRoaXMgaW50ZXJmYWNlIHNob3VsZCBiZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEFzc2VtYmx5IHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgb2YgdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKlxuICAgKiBUaGlzIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQgdG8gcmVhZCB0aGUgQ2xvdWQgQXNzZW1ibHkgZnJvbS5cbiAgICogSXRzIGNvbnRlbnRzIChpbiBwYXJ0aWN1bGFyIGBtYW5pZmVzdC5qc29uYCkgbXVzdCBjb21wbHkgd2l0aCB0aGUgc2NoZW1hIGRlZmluZWQgaW4gdGhpcyBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArtifactMetadataEntryType = void 0;\n/**\n * Type of artifact metadata entry.\n */\nvar ArtifactMetadataEntryType;\n(function (ArtifactMetadataEntryType) {\n /**\n * Asset in metadata.\n */\n ArtifactMetadataEntryType[\"ASSET\"] = \"aws:cdk:asset\";\n /**\n * Metadata key used to print INFO-level messages by the toolkit when an app is syntheized.\n */\n ArtifactMetadataEntryType[\"INFO\"] = \"aws:cdk:info\";\n /**\n * Metadata key used to print WARNING-level messages by the toolkit when an app is syntheized.\n */\n ArtifactMetadataEntryType[\"WARN\"] = \"aws:cdk:warning\";\n /**\n * Metadata key used to print ERROR-level messages by the toolkit when an app is syntheized.\n */\n ArtifactMetadataEntryType[\"ERROR\"] = \"aws:cdk:error\";\n /**\n * Represents the CloudFormation logical ID of a resource at a certain path.\n */\n ArtifactMetadataEntryType[\"LOGICAL_ID\"] = \"aws:cdk:logicalId\";\n /**\n * Represents tags of a stack.\n */\n ArtifactMetadataEntryType[\"STACK_TAGS\"] = \"aws:cdk:stack-tags\";\n /**\n * Whether the resource should be excluded during refactoring.\n */\n ArtifactMetadataEntryType[\"DO_NOT_REFACTOR\"] = \"aws:cdk:do-not-refactor\";\n /**\n * Creation stack of a construct\n */\n ArtifactMetadataEntryType[\"CREATION_STACK\"] = \"aws:cdk:creationStack\";\n /**\n * A property mutation trace\n */\n ArtifactMetadataEntryType[\"PROPERTY_ASSIGNMENT\"] = \"aws:cdk:propertyAssignment\";\n})(ArtifactMetadataEntryType || (exports.ArtifactMetadataEntryType = ArtifactMetadataEntryType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWV0YWRhdGEtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVUQTs7R0FFRztBQUNILElBQVkseUJBNkNYO0FBN0NELFdBQVkseUJBQXlCO0lBQ25DOztPQUVHO0lBQ0gsb0RBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCxrREFBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILHFEQUF3QixDQUFBO0lBRXhCOztPQUVHO0lBQ0gsb0RBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCw2REFBZ0MsQ0FBQTtJQUVoQzs7T0FFRztJQUNILDhEQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gsd0VBQTJDLENBQUE7SUFFM0M7O09BRUc7SUFDSCxxRUFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILCtFQUFrRCxDQUFBO0FBQ3BELENBQUMsRUE3Q1cseUJBQXlCLHlDQUF6Qix5QkFBeUIsUUE2Q3BDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tb24gcHJvcGVydGllcyBmb3IgYXNzZXQgbWV0YWRhdGEuXG4gKi9cbmludGVyZmFjZSBCYXNlQXNzZXRNZXRhZGF0YUVudHJ5IHtcbiAgLyoqXG4gICAqIFJlcXVlc3RlZCBwYWNrYWdpbmcgc3R5bGVcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2luZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2dpY2FsIGlkZW50aWZpZXIgZm9yIHRoZSBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhhc2ggb2YgdGhlIGFzc2V0IHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUhhc2g6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCBvbiBkaXNrIHRvIHRoZSBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIEVudHJ5IHNwZWMgZm9yIGZpbGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBlbnRyeSA9IHtcbiAqICAgcGFja2FnaW5nOiAnZmlsZScsXG4gKiAgIHMzQnVja2V0UGFyYW1ldGVyOiAnYnVja2V0LXBhcmFtZXRlcicsXG4gKiAgIHMzS2V5UGFyYW1lbnRlcjogJ2tleS1wYXJhbWV0ZXInLFxuICogICBhcnRpZmFjdEhhc2hQYXJhbWV0ZXI6ICdoYXNoLXBhcmFtZXRlcicsXG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSBleHRlbmRzIEJhc2VBc3NldE1ldGFkYXRhRW50cnkge1xuICAvKipcbiAgICogUmVxdWVzdGVkIHBhY2thZ2luZyBzdHlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnaW5nOiAnemlwJyB8ICdmaWxlJztcblxuICAvKipcbiAgICogTmFtZSBvZiBwYXJhbWV0ZXIgd2hlcmUgUzMgYnVja2V0IHNob3VsZCBiZSBwYXNzZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IHMzQnVja2V0UGFyYW1ldGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgcGFyYW1ldGVyIHdoZXJlIFMzIGtleSBzaG91bGQgYmUgcGFzc2VkIGluXG4gICAqL1xuICByZWFkb25seSBzM0tleVBhcmFtZXRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBoYXNoIG9mIHRoZSBidW5kbGVkIGFzc2V0IHNob3VsZCBiZSBwYXNzZWQgaW4uXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdEhhc2hQYXJhbWV0ZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBFbnRyeSBzcGVjIGZvciBzdGFjayB0YWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgLyoqXG4gICAqIFRhZyBrZXkuXG4gICAqXG4gICAqIChJbiB0aGUgYWN0dWFsIGZpbGUgb24gZGlzayB0aGlzIHdpbGwgYmUgY2FzZWQgYXMgXCJLZXlcIiwgYW5kIHRoZSBzdHJ1Y3R1cmUgaXNcbiAgICogcGF0Y2hlZCB0byBtYXRjaCB0aGlzIHN0cnVjdHVyZSB1cG9uIGxvYWRpbmc6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzRhYWRhYTc3OWI0OGYzNTgzOGNjY2Q0ZTI1MTA3YjIzMzhmMDU1NDcvcGFja2FnZXMvJTQwYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEvbGliL21hbmlmZXN0LnRzI0wxMzcpXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGFnIHZhbHVlLlxuICAgKlxuICAgKiAoSW4gdGhlIGFjdHVhbCBmaWxlIG9uIGRpc2sgdGhpcyB3aWxsIGJlIGNhc2VkIGFzIFwiVmFsdWVcIiwgYW5kIHRoZSBzdHJ1Y3R1cmUgaXNcbiAgICogcGF0Y2hlZCB0byBtYXRjaCB0aGlzIHN0cnVjdHVyZSB1cG9uIGxvYWRpbmc6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzRhYWRhYTc3OWI0OGYzNTgzOGNjY2Q0ZTI1MTA3YjIzMzhmMDU1NDcvcGFja2FnZXMvJTQwYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEvbGliL21hbmlmZXN0LnRzI0wxMzcpXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBEb2NrZXIgY2FjaGUgYmFja2VuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5lckltYWdlQXNzZXRDYWNoZU9wdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBjYWNoZSB0byB1c2UuXG4gICAqIFJlZmVyIHRvIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzLyBmb3IgZnVsbCBsaXN0IG9mIGJhY2tlbmRzLlxuICAgKiBAZGVmYXVsdCAtIHVuc3BlY2lmaWVkXG4gICAqXG4gICAqIEBleGFtcGxlICdyZWdpc3RyeSdcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFueSBwYXJhbWV0ZXJzIHRvIHBhc3MgaW50byB0aGUgZG9ja2VyIGNhY2hlIGJhY2tlbmQgY29uZmlndXJhdGlvbi5cbiAgICogUmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvIGZvciBjYWNoZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IHt9IE5vIG9wdGlvbnMgcHJvdmlkZWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZGVjbGFyZSBjb25zdCBicmFuY2g6IHN0cmluZztcbiAgICpcbiAgICogY29uc3QgcGFyYW1zID0ge1xuICAgKiAgIHJlZjogYDEyMzQ1Njc4LmRrci5lY3IudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vY2FjaGU6JHticmFuY2h9YCxcbiAgICogICBtb2RlOiBcIm1heFwiLFxuICAgKiB9O1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBFbnRyeSBzcGVjIGZvciBjb250YWluZXIgaW1hZ2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBlbnRyeSA9IHtcbiAqICAgcGFja2FnaW5nOiAnY29udGFpbmVyLWltYWdlJyxcbiAqICAgcmVwb3NpdG9yeU5hbWU6ICdyZXBvc2l0b3J5LW5hbWUnLFxuICogICBpbWFnZVRhZzogJ3RhZycsXG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVySW1hZ2VBc3NldE1ldGFkYXRhRW50cnkgZXh0ZW5kcyBCYXNlQXNzZXRNZXRhZGF0YUVudHJ5IHtcbiAgLyoqXG4gICAqIFR5cGUgb2YgYXNzZXRcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2luZzogJ2NvbnRhaW5lci1pbWFnZSc7XG5cbiAgLyoqXG4gICAqIEVDUiBSZXBvc2l0b3J5IG5hbWUgYW5kIHJlcG8gZGlnZXN0IChzZXBhcmF0ZWQgYnkgXCJAc2hhMjU2OlwiKSB3aGVyZSB0aGlzXG4gICAqIGltYWdlIGlzIHN0b3JlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIElmIG5vdCBzcGVjaWZpZWQsIGByZXBvc2l0b3J5TmFtZWAgYW5kIGBpbWFnZVRhZ2AgYXJlXG4gICAqIHJlcXVpcmVkIGJlY2F1c2Ugb3RoZXJ3aXNlIGhvdyB3aWxsIHRoZSBzdGFjayBrbm93IHdoZXJlIHRvIGZpbmQgdGhlIGFzc2V0LFxuICAgKiBoYT9cbiAgICogQGRlcHJlY2F0ZWQgc3BlY2lmeSBgcmVwb3NpdG9yeU5hbWVgIGFuZCBgaW1hZ2VUYWdgIGluc3RlYWQsIGFuZCB0aGVuIHlvdVxuICAgKiBrbm93IHdoZXJlIHRoZSBpbWFnZSB3aWxsIGdvLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VOYW1lUGFyYW1ldGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFQ1IgcmVwb3NpdG9yeSBuYW1lLCBpZiBvbWl0dGVkIGEgZGVmYXVsdCBuYW1lIGJhc2VkIG9uIHRoZSBhc3NldCdzIElEIGlzXG4gICAqIHVzZWQgaW5zdGVhZC4gU3BlY2lmeSB0aGlzIHByb3BlcnR5IGlmIHlvdSBuZWVkIHRvIHN0YXRpY2FsbHkgYWRkcmVzcyB0aGVcbiAgICogaW1hZ2UsIGUuZy4gZnJvbSBhIEt1YmVybmV0ZXMgUG9kLiBOb3RlLCB0aGlzIGlzIG9ubHkgdGhlIHJlcG9zaXRvcnkgbmFtZSxcbiAgICogd2l0aG91dCB0aGUgcmVnaXN0cnkgYW5kIHRoZSB0YWcgcGFydHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhpcyBwYXJhbWV0ZXIgaXMgUkVRVUlSRUQgYWZ0ZXIgMS4yMS4wXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRvY2tlciBpbWFnZSB0YWcgdG8gdXNlIGZvciB0YWdnaW5nIHB1c2hlZCBpbWFnZXMuIFRoaXMgZmllbGQgaXNcbiAgICogcmVxdWlyZWQgaWYgYGltYWdlUGFyYW1ldGVyTmFtZWAgaXMgb21taXRlZCAob3RoZXJ3aXNlLCB0aGUgYXBwIHdvbid0IGJlXG4gICAqIGFibGUgdG8gZmluZCB0aGUgaW1hZ2UpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoaXMgcGFyYW1ldGVyIGlzIFJFUVVJUkVEIGFmdGVyIDEuMjEuMFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VUYWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3MgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZFxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGNvbnRleHRzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmRcbiAgICpcbiAgICogQGRlZmF1bHQgbm8gYnVpbGQgY29udGV4dHMgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRDb250ZXh0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNTSCBhZ2VudCBzb2NrZXQgb3Iga2V5cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIHNzaCBhcmcgaXMgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBidWlsZFNzaD86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGJ1aWxkIHNlY3JldHMgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRTZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRG9ja2VyIHRhcmdldCB0byBidWlsZCB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCBubyBidWlsZCB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldD86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgRG9ja2VyZmlsZSAocmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZmlsZSBpcyBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmtpbmcgbW9kZSBmb3IgdGhlIFJVTiBjb21tYW5kcyBkdXJpbmcgYnVpbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZFxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya01vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsYXRmb3JtIHRvIGJ1aWxkIGZvci4gX1JlcXVpcmVzIERvY2tlciBCdWlsZHhfLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGN1cnJlbnQgbWFjaGluZSBwbGF0Zm9ybVxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE91dHB1dHMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBvdXRwdXRzIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmQgKGRlZmF1bHQgb3V0cHV0cyBhcmUgdXNlZClcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2J1aWxkLyNjdXN0b20tYnVpbGQtb3V0cHV0c1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDYWNoZSBmcm9tIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSBmcm9tIG9wdGlvbnMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzL1xuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogQ29udGFpbmVySW1hZ2VBc3NldENhY2hlT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIENhY2hlIHRvIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSB0byBvcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmRcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy9cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlVG8/OiBDb250YWluZXJJbWFnZUFzc2V0Q2FjaGVPcHRpb247XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGNhY2hlIGFuZCBwYXNzIGAtLW5vLWNhY2hlYCB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjYWNoZSBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBjYWNoZURpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAc2VlIEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuQVNTRVRcbiAqL1xuZXhwb3J0IHR5cGUgQXNzZXRNZXRhZGF0YUVudHJ5ID0gRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSB8IENvbnRhaW5lckltYWdlQXNzZXRNZXRhZGF0YUVudHJ5O1xuXG4vLyBUeXBlIGFsaWFzZXMgZm9yIG1ldGFkYXRhIGVudHJpZXMuXG4vLyBVc2VkIHNpbXBseSB0byBhc3NpZ24gbmFtZXMgdG8gZGF0YSB0eXBlcyBmb3IgbW9yZSBjbGFyaXR5LlxuXG4vKipcbiAqIEBzZWUgQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5JTkZPXG4gKiBAc2VlIEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuV0FSTlxuICogQHNlZSBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLkVSUk9SXG4gKi9cbmV4cG9ydCB0eXBlIExvZ01lc3NhZ2VNZXRhZGF0YUVudHJ5ID0gc3RyaW5nO1xuXG4vKipcbiAqIEBzZWUgQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5MT0dJQ0FMX0lEXG4gKi9cbmV4cG9ydCB0eXBlIExvZ2ljYWxJZE1ldGFkYXRhRW50cnkgPSBzdHJpbmc7XG5cbi8qKlxuICogQHNlZSBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLlNUQUNLX1RBR1NcbiAqL1xuZXhwb3J0IHR5cGUgU3RhY2tUYWdzTWV0YWRhdGFFbnRyeSA9IFRhZ1tdO1xuXG4vKipcbiAqIEFueSBvdGhlciB0eXBlIG9mIG1ldGFkYXRhIGVudHJ5XG4gKlxuICogVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBjaGFuZ2VkIHRvIGBhbnlgLCBidXQgaXQncyBzYWZlciBub3RcbiAqIHRvIGRvIHNvIHJpZ2h0IG5vdy5cbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9jbG91ZC1hc3NlbWJseS1zY2hlbWEvcHVsbC8xMjEuXG4gKi9cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZVR5cGUgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuXG4vKipcbiAqIFR5cGUgb2YgY3JlYXRpb24gc3RhY2sgZGF0YVxuICovXG5leHBvcnQgdHlwZSBDcmVhdGlvblN0YWNrTWV0YWRhdGFFbnRyeSA9IHN0cmluZ1tdO1xuXG4vKipcbiAqIE1ldGFkYXRhIHR5cGUgb2YgYSBQcm9wZXJ0eU11dGF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlNdXRhdGlvbk1ldGFkYXRhRW50cnkge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcHJvcGVydHlcbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnR5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0cmFjZSBvZiB0aGUgbXV0YXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFVuaW9uIHR5cGUgZm9yIGFsbCBtZXRhZGF0YSBlbnRyaWVzIHRoYXQgbWlnaHQgZXhpc3QgaW4gdGhlIG1hbmlmZXN0LlxuICovXG5leHBvcnQgdHlwZSBNZXRhZGF0YUVudHJ5RGF0YSA9XG4gIHwgQXNzZXRNZXRhZGF0YUVudHJ5XG4gIHwgTG9nTWVzc2FnZU1ldGFkYXRhRW50cnlcbiAgfCBMb2dpY2FsSWRNZXRhZGF0YUVudHJ5XG4gIHwgU3RhY2tUYWdzTWV0YWRhdGFFbnRyeVxuICB8IFByaW1pdGl2ZVR5cGVcbiAgfCBDcmVhdGlvblN0YWNrTWV0YWRhdGFFbnRyeVxuICB8IFByb3BlcnR5TXV0YXRpb25NZXRhZGF0YUVudHJ5XG4gIDtcblxuLyoqXG4gKiBUeXBlIG9mIGFydGlmYWN0IG1ldGFkYXRhIGVudHJ5LlxuICovXG5leHBvcnQgZW51bSBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlIHtcbiAgLyoqXG4gICAqIEFzc2V0IGluIG1ldGFkYXRhLlxuICAgKi9cbiAgQVNTRVQgPSAnYXdzOmNkazphc3NldCcsXG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIGtleSB1c2VkIHRvIHByaW50IElORk8tbGV2ZWwgbWVzc2FnZXMgYnkgdGhlIHRvb2xraXQgd2hlbiBhbiBhcHAgaXMgc3ludGhlaXplZC5cbiAgICovXG4gIElORk8gPSAnYXdzOmNkazppbmZvJyxcblxuICAvKipcbiAgICogTWV0YWRhdGEga2V5IHVzZWQgdG8gcHJpbnQgV0FSTklORy1sZXZlbCBtZXNzYWdlcyBieSB0aGUgdG9vbGtpdCB3aGVuIGFuIGFwcCBpcyBzeW50aGVpemVkLlxuICAgKi9cbiAgV0FSTiA9ICdhd3M6Y2RrOndhcm5pbmcnLFxuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBrZXkgdXNlZCB0byBwcmludCBFUlJPUi1sZXZlbCBtZXNzYWdlcyBieSB0aGUgdG9vbGtpdCB3aGVuIGFuIGFwcCBpcyBzeW50aGVpemVkLlxuICAgKi9cbiAgRVJST1IgPSAnYXdzOmNkazplcnJvcicsXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgSUQgb2YgYSByZXNvdXJjZSBhdCBhIGNlcnRhaW4gcGF0aC5cbiAgICovXG4gIExPR0lDQUxfSUQgPSAnYXdzOmNkazpsb2dpY2FsSWQnLFxuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRhZ3Mgb2YgYSBzdGFjay5cbiAgICovXG4gIFNUQUNLX1RBR1MgPSAnYXdzOmNkazpzdGFjay10YWdzJyxcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmVzb3VyY2Ugc2hvdWxkIGJlIGV4Y2x1ZGVkIGR1cmluZyByZWZhY3RvcmluZy5cbiAgICovXG4gIERPX05PVF9SRUZBQ1RPUiA9ICdhd3M6Y2RrOmRvLW5vdC1yZWZhY3RvcicsXG5cbiAgLyoqXG4gICAqIENyZWF0aW9uIHN0YWNrIG9mIGEgY29uc3RydWN0XG4gICAqL1xuICBDUkVBVElPTl9TVEFDSyA9ICdhd3M6Y2RrOmNyZWF0aW9uU3RhY2snLFxuXG4gIC8qKlxuICAgKiBBIHByb3BlcnR5IG11dGF0aW9uIHRyYWNlXG4gICAqL1xuICBQUk9QRVJUWV9BU1NJR05NRU5UID0gJ2F3czpjZGs6cHJvcGVydHlBc3NpZ25tZW50Jyxcbn1cblxuLyoqXG4gKiBBIG1ldGFkYXRhIGVudHJ5IGluIGEgY2xvdWQgYXNzZW1ibHkgYXJ0aWZhY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgbWV0YWRhdGEgZW50cnkuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBkYXRhPzogTWV0YWRhdGFFbnRyeURhdGE7XG5cbiAgLyoqXG4gICAqIEEgc3RhY2sgdHJhY2UgZm9yIHdoZW4gdGhlIGVudHJ5IHdhcyBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2U/OiBzdHJpbmdbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArtifactType = void 0;\n/**\n * Type of cloud artifact.\n */\nvar ArtifactType;\n(function (ArtifactType) {\n /**\n * Stub required because of JSII.\n */\n ArtifactType[\"NONE\"] = \"none\";\n /**\n * The artifact is an AWS CloudFormation stack.\n */\n ArtifactType[\"AWS_CLOUDFORMATION_STACK\"] = \"aws:cloudformation:stack\";\n /**\n * The artifact contains the CDK application's construct tree.\n */\n ArtifactType[\"CDK_TREE\"] = \"cdk:tree\";\n /**\n * Manifest for all assets in the Cloud Assembly\n */\n ArtifactType[\"ASSET_MANIFEST\"] = \"cdk:asset-manifest\";\n /**\n * Nested Cloud Assembly\n */\n ArtifactType[\"NESTED_CLOUD_ASSEMBLY\"] = \"cdk:cloud-assembly\";\n /**\n * Feature flag report\n */\n ArtifactType[\"FEATURE_FLAG_REPORT\"] = \"cdk:feature-flag-report\";\n})(ArtifactType || (exports.ArtifactType = ArtifactType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBOztHQUVHO0FBQ0gsSUFBWSxZQThCWDtBQTlCRCxXQUFZLFlBQVk7SUFDdEI7O09BRUc7SUFDSCw2QkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxRUFBcUQsQ0FBQTtJQUVyRDs7T0FFRztJQUNILHFDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gscURBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCw0REFBNEMsQ0FBQTtJQUU1Qzs7T0FFRztJQUNILCtEQUErQyxDQUFBO0FBQ2pELENBQUMsRUE5QlcsWUFBWSw0QkFBWixZQUFZLFFBOEJ2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJ0aWZhY3RQcm9wZXJ0aWVzIH0gZnJvbSAnLi9hcnRpZmFjdC1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXIsIENvbnRleHRRdWVyeVByb3BlcnRpZXMgfSBmcm9tICcuL2NvbnRleHQtcXVlcmllcyc7XG5pbXBvcnQgdHlwZSB7IE1ldGFkYXRhRW50cnkgfSBmcm9tICcuL21ldGFkYXRhLXNjaGVtYSc7XG5cbi8qKlxuICogVHlwZSBvZiBjbG91ZCBhcnRpZmFjdC5cbiAqL1xuZXhwb3J0IGVudW0gQXJ0aWZhY3RUeXBlIHtcbiAgLyoqXG4gICAqIFN0dWIgcmVxdWlyZWQgYmVjYXVzZSBvZiBKU0lJLlxuICAgKi9cbiAgTk9ORSA9ICdub25lJywgLy8gcmVxdWlyZWQgZHVlIHRvIGEganNpaSBidWdcblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0IGlzIGFuIEFXUyBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIEFXU19DTE9VREZPUk1BVElPTl9TVEFDSyA9ICdhd3M6Y2xvdWRmb3JtYXRpb246c3RhY2snLFxuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3QgY29udGFpbnMgdGhlIENESyBhcHBsaWNhdGlvbidzIGNvbnN0cnVjdCB0cmVlLlxuICAgKi9cbiAgQ0RLX1RSRUUgPSAnY2RrOnRyZWUnLFxuXG4gIC8qKlxuICAgKiBNYW5pZmVzdCBmb3IgYWxsIGFzc2V0cyBpbiB0aGUgQ2xvdWQgQXNzZW1ibHlcbiAgICovXG4gIEFTU0VUX01BTklGRVNUID0gJ2Nkazphc3NldC1tYW5pZmVzdCcsXG5cbiAgLyoqXG4gICAqIE5lc3RlZCBDbG91ZCBBc3NlbWJseVxuICAgKi9cbiAgTkVTVEVEX0NMT1VEX0FTU0VNQkxZID0gJ2NkazpjbG91ZC1hc3NlbWJseScsXG5cbiAgLyoqXG4gICAqIEZlYXR1cmUgZmxhZyByZXBvcnRcbiAgICovXG4gIEZFQVRVUkVfRkxBR19SRVBPUlQgPSAnY2RrOmZlYXR1cmUtZmxhZy1yZXBvcnQnLFxufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhcHBsaWNhdGlvbidzIHJ1bnRpbWUgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsaWJyYXJpZXMgbG9hZGVkIGluIHRoZSBhcHBsaWNhdGlvbiwgYXNzb2NpYXRlZCB3aXRoIHRoZWlyIHZlcnNpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlicmFyaWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWlzc2luZyBwaWVjZSBvZiBjb250ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlcjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgcHJvdmlkZXItc3BlY2lmaWMgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BzOiBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3QgZm9yIGEgc2luZ2xlIGFydGlmYWN0IHdpdGhpbiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWZhY3RNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhcnRpZmFjdC5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEFydGlmYWN0VHlwZTtcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGludG8gd2hpY2ggdGhpcyBhcnRpZmFjdCBpcyBkZXBsb3llZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbnZyaW9ubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nOyAvLyBmb3JtYXQ6IGF3czovL2FjY291bnQvcmVnaW9uXG5cbiAgLyoqXG4gICAqIEFzc29jaWF0ZWQgbWV0YWRhdGEuXG4gICAqXG4gICAqIE1ldGFkYXRhIGNhbiBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIGFzc2VtYmx5IG1hbmlmZXN0LCBhcyB3ZWxsIGFzIGluIGFcbiAgICogc2VwYXJhdGUgZmlsZSAoc2VlIGBhZGRpdGlvbmFsTWV0YWRhdGFGaWxlYCkuIEl0IHNob3VsZCBwcmVmZXIgdG8gYmUgc3RvcmVkXG4gICAqIGluIHRoZSBhZGRpdGlvbmFsIGZpbGUsIGFzIHRoYXQgd2lsbCByZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGFzc2VtYmx5XG4gICAqIG1hbmlmZXN0IGluIGNhc2VzIG9mIGEgbG90IG9mIG1ldGRhdGEgKHdoaWNoIENESyBkb2VzIGVtaXQgYnkgZGVmYXVsdCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IHsgW3BhdGg6IHN0cmluZ106IE1ldGFkYXRhRW50cnlbXSB9O1xuXG4gIC8qKlxuICAgKiBBIGZpbGUgd2l0aCBhZGRpdGlvbmFsIG1ldGFkYXRhIGVudHJpZXMuXG4gICAqXG4gICAqIFRoZSBzY2hlbWEgb2YgdGhpcyBmaWxlIGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIHR5cGUgb2YgdGhlIGBtZXRhZGF0YWAgZmllbGQuXG4gICAqIEluIG90aGVyIHdvcmRzLCB0aGF0IGZpbGUgY29udGFpbnMgYW4gb2JqZWN0IG1hcHBpbmcgY29uc3RydWN0IHBhdGhzIHRvIGFycmF5c1xuICAgKiBvZiBtZXRhZGF0YSBlbnRyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxNZXRhZGF0YUZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElEcyBvZiBhcnRpZmFjdHMgdGhhdCBtdXN0IGJlIGRlcGxveWVkIGJlZm9yZSB0aGlzIGFydGlmYWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIHByb3BlcnRpZXMgZm9yIHRoaXMgYXJ0aWZhY3QgKGRlcGVuZHMgb24gdHlwZSlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IEFydGlmYWN0UHJvcGVydGllcztcblxuICAvKipcbiAgICogQSBzdHJpbmcgdGhhdCBjYW4gYmUgc2hvd24gdG8gYSB1c2VyIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXJ0aWZhY3QgaW5zaWRlIGEgY2xvdWQgYXNzZW1ibHkgdHJlZVxuICAgKlxuICAgKiBJcyB1c2VkIGJ5IHRoZSBDTEkgdG8gcHJlc2VudCBhIGxpc3Qgb2Ygc3RhY2tzIHRvIHRoZSB1c2VyIGluIGEgd2F5IHRoYXRcbiAgICogbWFrZXMgc2Vuc2UgdG8gdGhlbS4gRXZlbiB0aG91Z2ggdGhlIHByb3BlcnR5IG5hbWUgXCJkaXNwbGF5IG5hbWVcIiBkb2Vzbid0XG4gICAqIGltcGx5IGl0LCB0aGlzIGZpZWxkIGlzIHVzZWQgdG8gc2VsZWN0IHN0YWNrcyBhcyB3ZWxsLCBzbyBhbGwgc3RhY2tzIHNob3VsZFxuICAgKiBoYXZlIGEgdW5pcXVlIGRpc3BsYXkgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkaXNwbGF5IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3Qgd2hpY2ggZGVzY3JpYmVzIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseU1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFByb3RvY29sIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogUmVxdWlyZWQgQ0xJIHZlcnNpb24sIGlmIGF2YWlsYWJsZVxuICAgKlxuICAgKiBJZiB0aGUgbWFuaWZlc3QgcHJvZHVjZXIga25vd3MsIGl0IGNhbiBwdXQgdGhlIG1pbmltdW0gdmVyc2lvbiBvZiB0aGUgQ0xJXG4gICAqIGhlcmUgdGhhdCBzdXBwb3J0cyByZWFkaW5nIHRoaXMgYXNzZW1ibHkuXG4gICAqXG4gICAqIElmIHNldCwgaXQgY2FuIGJlIHVzZWQgdG8gc2hvdyBhIG1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZSB0byB1c2Vycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBNaW5pbXVtIENMSSB2ZXJzaW9uIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1DbGlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIGFydGlmYWN0cyBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0cz86IHsgW2lkOiBzdHJpbmddOiBBcnRpZmFjdE1hbmlmZXN0IH07XG5cbiAgLyoqXG4gICAqIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi4gSWYgdGhpcyBmaWVsZCBoYXMgdmFsdWVzLCBpdCBtZWFucyB0aGF0IHRoZVxuICAgKiBjbG91ZCBhc3NlbWJseSBpcyBub3QgY29tcGxldGUgYW5kIHNob3VsZCBub3QgYmUgZGVwbG95ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWlzc2luZyBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgbWlzc2luZz86IE1pc3NpbmdDb250ZXh0W107XG5cbiAgLyoqXG4gICAqIFJ1bnRpbWUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gaW5mby5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBSdW50aW1lSW5mbztcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./cloud-assembly\"), exports);\n__exportStar(require(\"./assets\"), exports);\n__exportStar(require(\"./manifest\"), exports);\n__exportStar(require(\"./integ-tests\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hc3NlbWJseSc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2V0cyc7XG5leHBvcnQgKiBmcm9tICcuL21hbmlmZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWctdGVzdHMnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequireApproval = void 0;\n/**\n * Specify what changes require manual approval.\n */\nvar RequireApproval;\n(function (RequireApproval) {\n /**\n * Approval is not required\n */\n RequireApproval[\"NEVER\"] = \"never\";\n /**\n * Manual approval required for any change to the stack\n */\n RequireApproval[\"ANYCHANGE\"] = \"any-change\";\n /**\n * Manual approval required if changes involve a broadening of permissions or security group rules\n */\n RequireApproval[\"BROADENING\"] = \"broadening\";\n})(RequireApproval || (exports.RequireApproval = RequireApproval = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBWSxlQWVYO0FBZkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsa0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsMkNBQXdCLENBQUE7SUFFeEI7O09BRUc7SUFDSCw0Q0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBZlcsZUFBZSwrQkFBZixlQUFlLFFBZTFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTcGVjaWZ5IHdoYXQgY2hhbmdlcyByZXF1aXJlIG1hbnVhbCBhcHByb3ZhbC5cbiAqL1xuZXhwb3J0IGVudW0gUmVxdWlyZUFwcHJvdmFsIHtcbiAgLyoqXG4gICAqIEFwcHJvdmFsIGlzIG5vdCByZXF1aXJlZFxuICAgKi9cbiAgTkVWRVIgPSAnbmV2ZXInLFxuXG4gIC8qKlxuICAgKiBNYW51YWwgYXBwcm92YWwgcmVxdWlyZWQgZm9yIGFueSBjaGFuZ2UgdG8gdGhlIHN0YWNrXG4gICAqL1xuICBBTllDSEFOR0UgPSAnYW55LWNoYW5nZScsXG5cbiAgLyoqXG4gICAqIE1hbnVhbCBhcHByb3ZhbCByZXF1aXJlZCBpZiBjaGFuZ2VzIGludm9sdmUgYSBicm9hZGVuaW5nIG9mIHBlcm1pc3Npb25zIG9yIHNlY3VyaXR5IGdyb3VwIHJ1bGVzXG4gICAqL1xuICBCUk9BREVOSU5HID0gJ2Jyb2FkZW5pbmcnLFxufVxuXG4vKipcbiAqIERlZmF1bHQgQ0RLIENMSSBvcHRpb25zIHRoYXQgYXBwbHkgdG8gYWxsIGNvbW1hbmRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdENka09wdGlvbnMge1xuICAvKipcbiAgICogTGlzdCBvZiBzdGFja3MgdG8gZGVwbG95XG4gICAqXG4gICAqIFJlcXVyaWVkIGlmIGBhbGxgIGlzIG5vdCBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBbXVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIERlcGxveSBhbGwgc3RhY2tzXG4gICAqXG4gICAqIFJlcXVyaWVkIGlmIGBzdGFja3NgIGlzIG5vdCBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogY29tbWFuZC1saW5lIGZvciBleGVjdXRpbmcgeW91ciBhcHAgb3IgYSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICogZS5nLiBcIm5vZGUgYmluL215LWFwcC5qc1wiXG4gICAqIG9yXG4gICAqIFwiY2RrLm91dFwiXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmVhZCBmcm9tIGNkay5qc29uXG4gICAqL1xuICByZWFkb25seSBhcHA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgYm9vdHN0cmFwIGNmbi1leGVjIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29udGV4dFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgY29udGV4dFxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBQcmludCB0cmFjZSBmb3Igc3RhY2sgd2FybmluZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRG8gbm90IGNvbnN0cnVjdCBzdGFja3Mgd2l0aCB3YXJuaW5nc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGVyZm9ybSBjb250ZXh0IGxvb2t1cHMuXG4gICAqXG4gICAqIFN5bnRoZXNpcyBmYWlscyBpZiB0aGlzIGlzIGRpc2FibGVkIGFuZCBjb250ZXh0IGxvb2t1cHMgbmVlZFxuICAgKiB0byBiZSBwZXJmb3JtZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3Vwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElnbm9yZXMgc3ludGhlc2lzIGVycm9ycywgd2hpY2ggd2lsbCBsaWtlbHkgcHJvZHVjZSBhbiBpbnZhbGlkIG91dHB1dFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRXJyb3JzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIEpTT04gb3V0cHV0IGluc3RlYWQgb2YgWUFNTCB3aGVuIHRlbXBsYXRlcyBhcmUgcHJpbnRlZFxuICAgKiB0byBTVERPVVRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGpzb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaG93IGRlYnVnIGxvZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcmJvc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBlbmFibGUgZW1pc3Npb24gb2YgYWRkaXRpb25hbCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgY3JlYXRpb24gc3RhY2tcbiAgICogdHJhY2VzIG9mIHRva2Vuc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGluZGljYXRlZCBBV1MgcHJvZmlsZSBhcyB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb2ZpbGUgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIHRoZSBpbmRpY2F0ZWQgcHJveHkuIFdpbGwgcmVhZCBmcm9tXG4gICAqIEhUVFBTX1BST1hZIGVudmlyb25tZW50IGlmIHNwZWNpZmllZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb3h5XG4gICAqL1xuICByZWFkb25seSBwcm94eT86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byBDQSBjZXJ0aWZpY2F0ZSB0byB1c2Ugd2hlbiB2YWxpZGF0aW5nIEhUVFBTXG4gICAqIHJlcXVlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlYWQgZnJvbSBBV1NfQ0FfQlVORExFIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAqL1xuICByZWFkb25seSBjYUJ1bmRsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRyeWluZyB0byBmZXRjaCBFQzIgaW5zdGFuY2UgY3JlZGVudGlhbHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBndWVzcyBFQzIgaW5zdGFuY2Ugc3RhdHVzXG4gICAqL1xuICByZWFkb25seSBlYzJDcmVkcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluY2x1ZGUgXCJBV1M6OkNESzo6TWV0YWRhdGFcIiByZXNvdXJjZSBpbiBzeW50aGVzaXplZCB0ZW1wbGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvblJlcG9ydGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluY2x1ZGUgXCJhd3M6Y2RrOnBhdGhcIiBDbG91ZEZvcm1hdGlvbiBtZXRhZGF0YSBmb3IgZWFjaCByZXNvdXJjZVxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXRoTWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIFwiYXdzOmFzc2V0OipcIiBDbG91ZEZvcm1hdGlvbiBtZXRhZGF0YSBmb3IgcmVzb3VyY2VzIHRoYXQgdXNlIGFzc2V0c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldE1ldGFkYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29weSBhc3NldHMgdG8gdGhlIG91dHB1dCBkaXJlY3RvcnlcbiAgICpcbiAgICogTmVlZGVkIGZvciBsb2NhbCBkZWJ1Z2dpbmcgdGhlIHNvdXJjZSBmaWxlcyB3aXRoIFNBTSBDTElcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgaW50byBhIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBvdXRwdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3cgcmVsZXZhbnQgbm90aWNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBub3RpY2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdyBjb2xvcnMgYW5kIG90aGVyIHN0eWxlIGZyb20gY29uc29sZSBvdXRwdXRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29sb3I/OiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZmF1bHRDZGtPcHRpb25zLCBSZXF1aXJlQXBwcm92YWwgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogT3B0aW9ucyB0byB1c2Ugd2l0aCBjZGsgZGVwbG95XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIERlZmF1bHRDZGtPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9ubHkgcGVyZm9ybSBhY3Rpb24gb24gdGhlIGdpdmVuIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBleGNsdXNpdmVseT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHRvb2xraXQgc3RhY2sgdG8gdXNlL2RlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCBDREtUb29sa2l0XG4gICAqL1xuICByZWFkb25seSB0b29sa2l0U3RhY2tOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXVzZSB0aGUgYXNzZXRzIHdpdGggdGhlIGdpdmVuIGFzc2V0IElEc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCByZXVzZSBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlIGEgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWx3YXlzIGRlcGxveSwgZXZlbiBpZiB0ZW1wbGF0ZXMgYXJlIGlkZW50aWNhbC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUm9sbGJhY2sgZmFpbGVkIGRlcGxveW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQVJOcyBvZiBTTlMgdG9waWNzIHRoYXQgQ2xvdWRGb3JtYXRpb24gd2lsbCBub3RpZnkgd2l0aCBzdGFjayByZWxhdGVkIGV2ZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hhdCBraW5kIG9mIHNlY3VyaXR5IGNoYW5nZXMgcmVxdWlyZSBhcHByb3ZhbFxuICAgKlxuICAgKiBAZGVmYXVsdCBSZXF1aXJlQXBwcm92YWwuTkVWRVJcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVBcHByb3ZhbD86IFJlcXVpcmVBcHByb3ZhbDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBleGVjdXRlIHRoZSBDaGFuZ2VTZXRcbiAgICogTm90IHByb3ZpZGluZyBgZXhlY3V0ZWAgcGFyYW1ldGVyIHdpbGwgcmVzdWx0IGluIGV4ZWN1dGlvbiBvZiBDaGFuZ2VTZXRcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgQ2xvdWRGb3JtYXRpb24gYXQgZGVwbG95IHRpbWVcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVXNlIHByZXZpb3VzIHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBJZiBub3Qgc2V0LCBhbGwgcGFyYW1ldGVycyBtdXN0IGJlIHNwZWNpZmllZCBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUHJldmlvdXNQYXJhbWV0ZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB3ZSBhcmUgb24gYSBDSSBzeXN0ZW1cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNpPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwbG95IG11bHRpcGxlIHN0YWNrcyBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW5jeT86IG51bWJlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVmYXVsdENka09wdGlvbnMgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogT3B0aW9ucyB0byB1c2Ugd2l0aCBjZGsgZGVzdHJveVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lPcHRpb25zIGV4dGVuZHMgRGVmYXVsdENka09wdGlvbnMge1xuICAvKipcbiAgICogRG8gbm90IGFzayBmb3IgcGVybWlzc2lvbiBiZWZvcmUgZGVzdHJveWluZyBzdGFja3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT25seSBkZXN0cm95IHRoZSBnaXZlbiBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVzaXZlbHk/OiBib29sZWFuO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./common\"), exports);\n__exportStar(require(\"./deploy\"), exports);\n__exportStar(require(\"./destroy\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3knO1xuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./commands\"), exports);\n__exportStar(require(\"./test-case\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdGVzdC1jYXNlJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlc3RDYXNlIH0gZnJvbSAnLi90ZXN0LWNhc2UnO1xuLyoqXG4gKiBEZWZpbml0aW9ucyBmb3IgdGhlIGludGVncmF0aW9uIHRlc3RpbmcgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ01hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgdGhlIG1hbmlmZXN0XG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBsb29rdXBzIGZvciB0aGlzIHRlc3QuIElmIGxvb2t1cHMgYXJlIGVuYWJsZWRcbiAgICogdGhlbiBgc3RhY2tVcGRhdGVXb3JrZmxvd2AgbXVzdCBiZSBzZXQgdG8gZmFsc2UuXG4gICAqIExvb2t1cHMgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCB3aGVuIHlvdSBhcmUgZXhwbGljaXRseSB0ZXN0aW5nXG4gICAqIGxvb2t1cHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb250ZXh0IHRvIHVzZSB3aGVuIHBlcmZvcm1pbmdcbiAgICogYSBzeW50aC4gQW55IGNvbnRleHQgcHJvdmlkZWQgaGVyZSB3aWxsIG92ZXJyaWRlXG4gICAqIGFueSBkZWZhdWx0IGNvbnRleHRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoQ29udGV4dD86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiB0ZXN0IGNhc2VzXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q2FzZXM6IHsgW3Rlc3ROYW1lOiBzdHJpbmddOiBUZXN0Q2FzZSB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC1jYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlcGxveU9wdGlvbnMsIERlc3Ryb3lPcHRpb25zIH0gZnJvbSAnLi9jb21tYW5kcyc7XG5cbi8qKlxuICogVGhlIHNldCBvZiBvcHRpb25zIHRvIGNvbnRyb2wgdGhlIHdvcmtmbG93IG9mIHRoZSB0ZXN0IHJ1bm5lclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJ1biB1cGRhdGUgd29ya2Zsb3cgb24gdGhpcyB0ZXN0IGNhc2VcbiAgICogVGhpcyBzaG91bGQgb25seSBiZSBzZXQgdG8gZmFsc2UgdG8gdGVzdCBzY2VuYXJpb3NcbiAgICogdGhhdCBhcmUgbm90IHBvc3NpYmxlIHRvIHRlc3QgYXMgcGFydCBvZiB0aGUgdXBkYXRlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVXBkYXRlV29ya2Zsb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gdXNlIGZvciBlYWNoIENESyBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcnVubmVyIGRlZmF1bHQgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgY2RrQ29tbWFuZE9wdGlvbnM/OiBDZGtDb21tYW5kcztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb21tYW5kcyB0byBydW4gYXQgcHJlZGVmaW5lZCBwb2ludHMgaW4gdGhlIHRlc3Qgd29ya2Zsb3dcbiAgICpcbiAgICogZS5nLiB7IHBvc3REZXBsb3k6IFsneWFybicsICd0ZXN0J10gfVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGhvb2tzXG4gICAqL1xuICByZWFkb25seSBob29rcz86IEhvb2tzO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGFzc2V0IGhhc2hlcyBpbiB0aGUgZGlmZlxuICAgKiBBc3NldCBoYXNoZXMgY2FuIGludHJvZHVjZXMgYSBsb3Qgb2YgdW5uZWNjZXNzYXJ5IG5vaXNlIGludG8gdGVzdHMsXG4gICAqIGJ1dCB0aGVyZSBhcmUgc29tZSBjYXNlcyB3aGVyZSBhc3NldCBoYXNoZXMgX3Nob3VsZF8gYmUgaW5jbHVkZWQuIEZvciBleGFtcGxlXG4gICAqIGFueSB0ZXN0cyBpbnZvbHZpbmcgY3VzdG9tIHJlc291cmNlcyBvciBidW5kbGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlmZkFzc2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZXMgaW4gdGhpcyBzdGFjayB0aGF0IGNhblxuICAgKiBiZSBkZXN0cm95ZWQgYXMgcGFydCBvZiBhbiB1cGRhdGUgd2l0aG91dCBmYWlsaW5nIHRoZSB0ZXN0LlxuICAgKlxuICAgKiBUaGlzIGxpc3Qgc2hvdWxkIG9ubHkgaW5jbHVkZSByZXNvdXJjZXMgdGhhdCBmb3IgdGhpcyBzcGVjaWZpY1xuICAgKiBpbnRlZ3JhdGlvbiB0ZXN0IHdlIGFyZSBzdXJlIHdpbGwgbm90IGNhdXNlIGVycm9ycyBvciBhbiBvdXRhZ2UgaWZcbiAgICogZGVzdHJveWVkLiBGb3IgZXhhbXBsZSwgbWF5YmUgd2Uga25vdyB0aGF0IGEgbmV3IHJlc291cmNlIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBmaXJzdCBiZWZvcmUgdGhlIG9sZCByZXNvdXJjZSBpcyBkZXN0cm95ZWQgd2hpY2ggcHJldmVudHMgYW55IG91dGFnZS5cbiAgICpcbiAgICogZS5nLiBbJ0FXUzo6SUFNOjpSb2xlJ11cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkbyBub3QgYWxsb3cgZGVzdHJ1Y3Rpb24gb2YgYW55IHJlc291cmNlcyBvbiB1cGRhdGVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RGVzdHJveT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaW1pdCBkZXBsb3ltZW50IHRvIHRoZXNlIHJlZ2lvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBjYW4gcnVuIGluIGFueSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGludGVncmF0aW9uIHRlc3QgY2FzZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDYXNlIGV4dGVuZHMgVGVzdE9wdGlvbnMge1xuICAvKipcbiAgICogU3RhY2tzIHRoYXQgc2hvdWxkIGJlIHRlc3RlZCBhcyBwYXJ0IG9mIHRoaXMgdGVzdCBjYXNlXG4gICAqIFRoZSBzdGFja05hbWVzIHdpbGwgYmUgcGFzc2VkIGFzIGFyZ3MgdG8gdGhlIGNkayBjb21tYW5kc1xuICAgKiBzbyBkZXBlbmRlbnQgc3RhY2tzIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZXBsb3llZCB1bmxlc3NcbiAgICogYGV4Y2x1c2l2ZWx5YCBpcyBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBub2RlIGlkIG9mIHRoZSBzdGFjayB0aGF0IGNvbnRhaW5zIGFzc2VydGlvbnMuXG4gICAqIFRoaXMgaXMgdGhlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVwbG95IHRoZSBzdGFjayB3aXRoIHRoZSBDREsgQ0xJXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYXNzZXJ0aW9uIHN0YWNrXG4gICAqL1xuICByZWFkb25seSBhc3NlcnRpb25TdGFjaz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0YWNrIHRoYXQgY29udGFpbnMgYXNzZXJ0aW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFzc2VydGlvbiBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXJ0aW9uU3RhY2tOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbW1hbmRzIHRvIHJ1biBhdCBwcmVkZWZpbmVkIHBvaW50cyBkdXJpbmcgdGhlXG4gKiBpbnRlZ3JhdGlvbiB0ZXN0IHdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9va3Mge1xuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIHByaW9yIHRvIGRlcGxveWluZyB0aGUgY2RrIHN0YWNrc1xuICAgKiBpbiB0aGUgaW50ZWdyYXRpb24gdGVzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1hbmRzXG4gICAqL1xuICByZWFkb25seSBwcmVEZXBsb3k/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIHByaW9yIGFmdGVyIGRlcGxveWluZyB0aGUgY2RrIHN0YWNrc1xuICAgKiBpbiB0aGUgaW50ZWdyYXRpb24gdGVzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1hbmRzXG4gICAqL1xuICByZWFkb25seSBwb3N0RGVwbG95Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvbW1hbmRzIHRvIHJ1biBwcmlvciB0byBkZXN0cm95aW5nIHRoZSBjZGsgc3RhY2tzXG4gICAqIGluIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWFuZHNcbiAgICovXG4gIHJlYWRvbmx5IHByZURlc3Ryb3k/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNkayBzdGFja3NcbiAgICogaW4gdGhlIGludGVncmF0aW9uIHRlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb21tYW5kc1xuICAgKi9cbiAgcmVhZG9ubHkgcG9zdERlc3Ryb3k/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2RrIGNvbW1hbmRcbiAqIGkuZS4gYHN5bnRoYCwgYGRlcGxveWAsICYgYGRlc3Ryb3lgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ29tbWFuZCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBydW4gdGhpcyBjb21tYW5kIGFzIHBhcnQgb2YgdGhlIHdvcmtmbG93XG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaWYgeW91IG9ubHkgd2FudCB0byB0ZXN0IHNvbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqIGZvciBleGFtcGxlIGVuYWJsZSBgc3ludGhgIGFuZCBkaXNhYmxlIGBkZXBsb3lgICYgYGRlc3Ryb3lgIGluIG9yZGVyXG4gICAqIHRvIGxpbWl0IHRoZSB0ZXN0IHRvIHN5bnRoZXNpc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgdGhlIHJ1bm5lciBzaG91bGQgZXhwZWN0IHRoaXMgY29tbWFuZCB0byBmYWlsXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBleHBlY3RFcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgZXhwZWN0ZWRFcnJvcmBcbiAgICogdG8gdmFsaWRhdGUgdGhhdCBhIHNwZWNpZmljIG1lc3NhZ2UgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IHZhbGlkYXRlIG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVjdGVkTWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2RrIGRlcGxveSBjb21tYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95Q29tbWFuZCBleHRlbmRzIENka0NvbW1hbmQge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY29tbWFuZFxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHRlc3Qgc3BlY2lmaWMgQ0xJIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBvbmx5IGRlZmF1bHQgYXJncyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXJncz86IERlcGxveU9wdGlvbnM7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNkayBkZXN0cm95IGNvbW1hbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95Q29tbWFuZCBleHRlbmRzIENka0NvbW1hbmQge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY29tbWFuZFxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHRlc3Qgc3BlY2lmaWMgQ0xJIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBvbmx5IGRlZmF1bHQgYXJncyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXJncz86IERlc3Ryb3lPcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNwZWNpZmljIGNkayBjb21tYW5kcyB0aGF0IGFyZSBydW5cbiAqIGFzIHBhcnQgb2YgdGhlIGludGVncmF0aW9uIHRlc3Qgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtDb21tYW5kcyB7XG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGZvciB0aGUgY2RrIGRlcGxveSBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBkZXBsb3kgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95PzogRGVwbG95Q29tbWFuZDtcblxuICAvKipcbiAgICogT3B0aW9ucyB0byBmb3IgdGhlIGNkayBkZXN0cm95IGNvbW1hbmRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IGRlc3Ryb3kgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVzdHJveT86IERlc3Ryb3lDb21tYW5kO1xufVxuIl19","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Manifest = exports.VERSION_MISMATCH = void 0;\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst jsonschema = require(\"jsonschema\");\nconst semver = require(\"semver\");\nconst assembly = require(\"./cloud-assembly\");\n/* eslint-disable @typescript-eslint/no-var-requires */\n/* eslint-disable @typescript-eslint/no-require-imports */\n// this prefix is used by the CLI to identify this specific error.\n// in which case we want to instruct the user to upgrade his CLI.\n// see exec.ts#createAssembly\nexports.VERSION_MISMATCH = 'Cloud assembly schema version mismatch';\n/**\n * CLI version is created at build and release time\n *\n * It needs to be .gitignore'd, otherwise the projen 'no uncommitted\n * changes' self-check will fail, which means it needs to be generated\n * at build time if it doesn't already exist.\n */\nconst CLI_VERSION = require(\"../cli-version.json\");\nconst ASSETS_SCHEMA = require(\"../schema/assets.schema.json\");\nconst ASSEMBLY_SCHEMA = require(\"../schema/cloud-assembly.schema.json\");\nconst INTEG_SCHEMA = require(\"../schema/integ.schema.json\");\n/**\n * Version is shared for both manifests\n */\nconst SCHEMA_VERSION = require(\"../schema/version.json\");\n/**\n * Protocol utility class.\n */\nclass Manifest {\n /**\n * Validates and saves the cloud assembly manifest to file.\n *\n * @param manifest - manifest.\n * @param filePath - output file path.\n */\n static saveAssemblyManifest(manifest, filePath) {\n Manifest.saveManifest(manifest, filePath, ASSEMBLY_SCHEMA);\n }\n /**\n * Load and validates the cloud assembly manifest from file.\n *\n * @param filePath - path to the manifest file.\n */\n static loadAssemblyManifest(filePath, options) {\n return Manifest.loadManifest(filePath, ASSEMBLY_SCHEMA, Manifest.patchStackTagsOnRead, options);\n }\n /**\n * Validates and saves the asset manifest to file.\n *\n * @param manifest - manifest.\n * @param filePath - output file path.\n */\n static saveAssetManifest(manifest, filePath) {\n Manifest.saveManifest(manifest, filePath, ASSETS_SCHEMA);\n }\n /**\n * Load and validates the asset manifest from file.\n *\n * @param filePath - path to the manifest file.\n */\n static loadAssetManifest(filePath) {\n return Manifest.loadManifest(filePath, ASSETS_SCHEMA);\n }\n /**\n * Validates and saves the integ manifest to file.\n *\n * @param manifest - manifest.\n * @param filePath - output file path.\n */\n static saveIntegManifest(manifest, filePath) {\n Manifest.saveManifest(manifest, filePath, INTEG_SCHEMA);\n }\n /**\n * Load and validates the integ manifest from file.\n *\n * @param filePath - path to the manifest file.\n */\n static loadIntegManifest(filePath) {\n const manifest = this.loadManifest(filePath, INTEG_SCHEMA);\n // Adding typing to `validate()` led to `loadManifest()` to properly infer\n // its return type, which indicated that the return type of this\n // function may be a lie. I could change the schema to make `testCases`\n // optional, but that will bump the major version of this package and I\n // don't want to do that. So instead, just make sure `testCases` is always there.\n return {\n ...manifest,\n testCases: manifest.testCases ?? [],\n };\n }\n /**\n * Fetch the current schema version number.\n */\n static version() {\n return `${SCHEMA_VERSION.revision}.0.0`;\n }\n /**\n * Return the CLI version that supports this Cloud Assembly Schema version\n */\n static cliVersion() {\n const version = CLI_VERSION.version;\n return version ? version : undefined;\n }\n /**\n * Deprecated\n * @deprecated use `saveAssemblyManifest()`\n */\n static save(manifest, filePath) {\n return this.saveAssemblyManifest(manifest, filePath);\n }\n /**\n * Deprecated\n * @deprecated use `loadAssemblyManifest()`\n */\n static load(filePath) {\n return this.loadAssemblyManifest(filePath);\n }\n static validate(manifest, schema, options) {\n function parseVersion(version) {\n const ver = semver.valid(version);\n if (!ver) {\n throw new Error(`Invalid semver string: \"${version}\"`);\n }\n return ver;\n }\n const maxSupported = semver.major(parseVersion(Manifest.version()));\n const actual = parseVersion(manifest.version);\n // first validate the version should be accepted. all versions within the same minor version are fine\n if (maxSupported < semver.major(actual) && !options?.skipVersionCheck) {\n // If we have a more specific error to throw than the generic one below, make sure to add that info.\n const cliVersion = manifest.minimumCliVersion;\n let cliWarning = '';\n if (cliVersion) {\n cliWarning = `. You need at least CLI version ${cliVersion} to read this manifest.`;\n }\n // we use a well known error prefix so that the CLI can identify this specific error\n // and print some more context to the user.\n throw new Error(`${exports.VERSION_MISMATCH}: Maximum schema version supported is ${maxSupported}.x.x, but found ${actual}${cliWarning}`);\n }\n if (options?.validateSchema ?? (process.env.TESTING_CDK === '1')) {\n // now validate the format is good.\n const validator = new jsonschema.Validator();\n const result = validator.validate(manifest, schema, {\n nestedErrors: true,\n allowUnknownAttributes: false,\n preValidateProperty: Manifest.validateAssumeRoleAdditionalOptions,\n });\n let errors = result.errors;\n if (options?.skipEnumCheck) {\n // Enum validations aren't useful when\n errors = stripEnumErrors(errors);\n }\n if (errors.length > 0) {\n throw new Error(`Invalid assembly manifest:\\n${errors.map((e) => e.stack).join('\\n')}`);\n }\n }\n }\n static saveManifest(manifest, filePath, schema, preprocess) {\n let withVersion = {\n ...manifest,\n version: Manifest.version(),\n minimumCliVersion: Manifest.cliVersion(),\n };\n Manifest.validate(withVersion, schema);\n if (preprocess) {\n withVersion = preprocess(withVersion);\n }\n fs.writeFileSync(filePath, JSON.stringify(withVersion, undefined, 2));\n }\n static loadManifest(filePath, schema, preprocess, options) {\n const contents = fs.readFileSync(filePath, { encoding: 'utf-8' });\n let obj;\n try {\n obj = JSON.parse(contents);\n }\n catch (e) {\n throw new Error(`${e.message}, while parsing ${JSON.stringify(contents)}`);\n }\n if (preprocess) {\n obj = preprocess(obj);\n }\n Manifest.validate(obj, schema, options);\n return obj;\n }\n /**\n * Fix the casing of stack tags entries\n *\n * At the very beginning of the CDK we used to emit stack tags as an object with\n * `{ Key, Value }` keys; this had the \"advantage\" that we could stick those\n * tags directly into the `CreateChangeSet` call.\n *\n * Then we later on used jsii on the assembly schema and we were forced to type\n * the in-memory objects as `{ key, value }` with lowercase letters. Now the\n * objects have a different on-disk and in-memory format, and we need to convert\n * between them.\n *\n * For backwards compatibility reasons, we used to convert lowercase in-memory\n * to uppercase on-disk variant until very recently. This is now unnecessary,\n * since no officially supported CDK tools read the stack tags from the\n * metadata; the CLI and toolkit library read stack tags from the artifact\n * properties.\n *\n * So although we don't emit uppercase stack tag objects anymore, we might still read\n * manifests that have them. Because the manifest we read must pass JSON Schema\n * validation (which expects lowercase tag objects), we have to fix the casing\n * of these objects after reading from disk and before validating.\n *\n * That's what this function does.\n */\n static patchStackTagsOnRead(manifest) {\n const artifacts = Object.values(manifest.artifacts ?? {})\n .filter(artifact => artifact.type === assembly.ArtifactType.AWS_CLOUDFORMATION_STACK);\n for (const artifact of artifacts) {\n const tagMetadata = Object.values(artifact.metadata ?? {})\n .flatMap(x => x)\n .filter(entry => entry.type === assembly.ArtifactMetadataEntryType.STACK_TAGS);\n for (const entry of tagMetadata) {\n const tags = entry.data;\n for (const tag of tags ?? []) {\n const t = tag;\n if ('Key' in t) {\n t.key = t.Key;\n delete t.Key;\n }\n if ('Value' in t) {\n t.value = t.Value;\n delete t.Value;\n }\n }\n }\n }\n return manifest;\n }\n /**\n * Validates that `assumeRoleAdditionalOptions` doesn't contain nor `ExternalId` neither `RoleArn`, as they\n * should have dedicated properties preceding this (e.g `assumeRoleArn` and `assumeRoleExternalId`).\n */\n static validateAssumeRoleAdditionalOptions(instance, key, _schema, _options, _ctx) {\n if (key !== 'assumeRoleAdditionalOptions') {\n // note that this means that if we happen to have a property named like this, but that\n // does want to allow 'RoleArn' or 'ExternalId', this code will have to change to consider the full schema path.\n // I decided to make this less granular for now on purpose because it fits our needs and avoids having messy\n // validation logic due to various schema paths.\n return;\n }\n const assumeRoleOptions = instance[key];\n if (assumeRoleOptions?.RoleArn) {\n throw new Error(`RoleArn is not allowed inside '${key}'`);\n }\n if (assumeRoleOptions?.ExternalId) {\n throw new Error(`ExternalId is not allowed inside '${key}'`);\n }\n }\n}\nexports.Manifest = Manifest;\n_a = JSII_RTTI_SYMBOL_1;\nManifest[_a] = { fqn: \"@aws-cdk/cloud-assembly-schema.Manifest\", version: \"53.17.0\" };\nfunction stripEnumErrors(errors) {\n return errors.filter((e) => typeof e.schema === 'string' || !('enum' in e.schema));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qix5Q0FBeUM7QUFDekMsaUNBQWlDO0FBRWpDLDZDQUE2QztBQUc3Qyx1REFBdUQ7QUFDdkQsMERBQTBEO0FBRTFELGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsNkJBQTZCO0FBQ2hCLFFBQUEsZ0JBQWdCLEdBQVcsd0NBQXdDLENBQUM7QUFFakY7Ozs7OztHQU1HO0FBQ0gsbURBQW9EO0FBRXBELDhEQUErRDtBQUUvRCx3RUFBeUU7QUFFekUsNERBQTZEO0FBRTdEOztHQUVHO0FBQ0gseURBQTBEO0FBZ0QxRDs7R0FFRztBQUNILE1BQXNCLFFBQVE7SUFDNUI7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBbUMsRUFBRSxRQUFnQjtRQUN0RixRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQ2hDLFFBQWdCLEVBQ2hCLE9BQTZCO1FBRTdCLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBOEIsRUFBRSxRQUFnQjtRQUM5RSxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBZ0I7UUFDOUMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN4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QyxJQUFJLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksaUJBQWlCLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQzs7QUFsUkgsNEJBbVJDOzs7QUFFRCxTQUFTLGVBQWUsQ0FBQyxNQUFvQztJQUMzRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMganNvbnNjaGVtYSBmcm9tICdqc29uc2NoZW1hJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBhc3NldHMgZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0ICogYXMgYXNzZW1ibHkgZnJvbSAnLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSAqIGFzIGludGVnIGZyb20gJy4vaW50ZWctdGVzdHMnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5cbi8vIHRoaXMgcHJlZml4IGlzIHVzZWQgYnkgdGhlIENMSSB0byBpZGVudGlmeSB0aGlzIHNwZWNpZmljIGVycm9yLlxuLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGluc3RydWN0IHRoZSB1c2VyIHRvIHVwZ3JhZGUgaGlzIENMSS5cbi8vIHNlZSBleGVjLnRzI2NyZWF0ZUFzc2VtYmx5XG5leHBvcnQgY29uc3QgVkVSU0lPTl9NSVNNQVRDSDogc3RyaW5nID0gJ0Nsb3VkIGFzc2VtYmx5IHNjaGVtYSB2ZXJzaW9uIG1pc21hdGNoJztcblxuLyoqXG4gKiBDTEkgdmVyc2lvbiBpcyBjcmVhdGVkIGF0IGJ1aWxkIGFuZCByZWxlYXNlIHRpbWVcbiAqXG4gKiBJdCBuZWVkcyB0byBiZSAuZ2l0aWdub3JlJ2QsIG90aGVyd2lzZSB0aGUgcHJvamVuICdubyB1bmNvbW1pdHRlZFxuICogY2hhbmdlcycgc2VsZi1jaGVjayB3aWxsIGZhaWwsIHdoaWNoIG1lYW5zIGl0IG5lZWRzIHRvIGJlIGdlbmVyYXRlZFxuICogYXQgYnVpbGQgdGltZSBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QuXG4gKi9cbmltcG9ydCBDTElfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2NsaS12ZXJzaW9uLmpzb24nKTtcblxuaW1wb3J0IEFTU0VUU19TQ0hFTUEgPSByZXF1aXJlKCcuLi9zY2hlbWEvYXNzZXRzLnNjaGVtYS5qc29uJyk7XG5cbmltcG9ydCBBU1NFTUJMWV9TQ0hFTUEgPSByZXF1aXJlKCcuLi9zY2hlbWEvY2xvdWQtYXNzZW1ibHkuc2NoZW1hLmpzb24nKTtcblxuaW1wb3J0IElOVEVHX1NDSEVNQSA9IHJlcXVpcmUoJy4uL3NjaGVtYS9pbnRlZy5zY2hlbWEuanNvbicpO1xuXG4vKipcbiAqIFZlcnNpb24gaXMgc2hhcmVkIGZvciBib3RoIG1hbmlmZXN0c1xuICovXG5pbXBvcnQgU0NIRU1BX1ZFUlNJT04gPSByZXF1aXJlKCcuLi9zY2hlbWEvdmVyc2lvbi5qc29uJyk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGxvYWRNYW5pZmVzdCBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2FkTWFuaWZlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNraXAgdGhlIHZlcnNpb24gY2hlY2tcbiAgICpcbiAgICogVGhpcyBtZWFucyB5b3UgbWF5IHJlYWQgYSBuZXdlciBjbG91ZCBhc3NlbWJseSB0aGFuIHRoZSBDWCBBUEkgaXMgZGVzaWduZWRcbiAgICogdG8gc3VwcG9ydCwgYW5kIHlvdXIgYXBwbGljYXRpb24gbWF5IG5vdCBiZSBhd2FyZSBvZiBhbGwgZmVhdHVyZXMgdGhhdCBpbiB1c2VcbiAgICogaW4gdGhlIENsb3VkIEFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFZlcnNpb25DaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNraXAgZW51bSBjaGVja3NcbiAgICpcbiAgICogVGhpcyBtZWFucyB5b3UgbWF5IHJlYWQgZW51bSB2YWx1ZXMgeW91IGRvbid0IGtub3cgYWJvdXQgeWV0LiBNYWtlIHN1cmUgdG8gYWx3YXlzXG4gICAqIGNoZWNrIHRoZSB2YWx1ZXMgb2YgZW51bXMgeW91IGVuY291bnRlciBpbiB0aGUgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwRW51bUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVG9wb2xvZ2ljYWxseSBzb3J0IGFsbCBhcnRpZmFjdHNcbiAgICpcbiAgICogVGhpcyBwYXJhbWV0ZXIgaXMgb25seSByZXNwZWN0ZWQgYnkgdGhlIGNvbnN0cnVjdG9yIG9mIGBDbG91ZEFzc2VtYmx5YC4gVGhlXG4gICAqIHByb3BlcnR5IGxpdmVzIGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRvcG9Tb3J0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIGZpbGUgYWNjb3JkaW5nIHRvIHRoZSBkZWNsYXJlZCBKU09OIFNjaGVtYVxuICAgKlxuICAgKiBCZSBhd2FyZSB0aGF0IEpTT04gU2NoZW1hIHZhbGlkYXRpb24gaGFzIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgY29zdFxuICAgKiAoYWJvdXQgMTB4IG92ZXIgbm90IHZhbGlkYXRpbmcpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSwgdW5sZXNzICRURVNUSU5HX0NESyBpcyBzZXQgdG8gJzEnXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZVNjaGVtYT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJvdG9jb2wgdXRpbGl0eSBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbmQgc2F2ZXMgdGhlIGNsb3VkIGFzc2VtYmx5IG1hbmlmZXN0IHRvIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBvdXRwdXQgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlQXNzZW1ibHlNYW5pZmVzdChtYW5pZmVzdDogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCwgZmlsZVBhdGg6IHN0cmluZykge1xuICAgIE1hbmlmZXN0LnNhdmVNYW5pZmVzdChtYW5pZmVzdCwgZmlsZVBhdGgsIEFTU0VNQkxZX1NDSEVNQSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbmQgdmFsaWRhdGVzIHRoZSBjbG91ZCBhc3NlbWJseSBtYW5pZmVzdCBmcm9tIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIHBhdGggdG8gdGhlIG1hbmlmZXN0IGZpbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxvYWRBc3NlbWJseU1hbmlmZXN0KFxuICAgIGZpbGVQYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IExvYWRNYW5pZmVzdE9wdGlvbnMsXG4gICk6IGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3Qge1xuICAgIHJldHVybiBNYW5pZmVzdC5sb2FkTWFuaWZlc3QoZmlsZVBhdGgsIEFTU0VNQkxZX1NDSEVNQSwgTWFuaWZlc3QucGF0Y2hTdGFja1RhZ3NPblJlYWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbmQgc2F2ZXMgdGhlIGFzc2V0IG1hbmlmZXN0IHRvIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBvdXRwdXQgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlQXNzZXRNYW5pZmVzdChtYW5pZmVzdDogYXNzZXRzLkFzc2V0TWFuaWZlc3QsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBNYW5pZmVzdC5zYXZlTWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoLCBBU1NFVFNfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGFuZCB2YWxpZGF0ZXMgdGhlIGFzc2V0IG1hbmlmZXN0IGZyb20gZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gcGF0aCB0byB0aGUgbWFuaWZlc3QgZmlsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9hZEFzc2V0TWFuaWZlc3QoZmlsZVBhdGg6IHN0cmluZyk6IGFzc2V0cy5Bc3NldE1hbmlmZXN0IHtcbiAgICByZXR1cm4gTWFuaWZlc3QubG9hZE1hbmlmZXN0KGZpbGVQYXRoLCBBU1NFVFNfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW5kIHNhdmVzIHRoZSBpbnRlZyBtYW5pZmVzdCB0byBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gbWFuaWZlc3QgLSBtYW5pZmVzdC5cbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gb3V0cHV0IGZpbGUgcGF0aC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2F2ZUludGVnTWFuaWZlc3QobWFuaWZlc3Q6IGludGVnLkludGVnTWFuaWZlc3QsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBNYW5pZmVzdC5zYXZlTWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoLCBJTlRFR19TQ0hFTUEpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYW5kIHZhbGlkYXRlcyB0aGUgaW50ZWcgbWFuaWZlc3QgZnJvbSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBwYXRoIHRvIHRoZSBtYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsb2FkSW50ZWdNYW5pZmVzdChmaWxlUGF0aDogc3RyaW5nKTogaW50ZWcuSW50ZWdNYW5pZmVzdCB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB0aGlzLmxvYWRNYW5pZmVzdChmaWxlUGF0aCwgSU5URUdfU0NIRU1BKTtcblxuICAgIC8vIEFkZGluZyB0eXBpbmcgdG8gYHZhbGlkYXRlKClgIGxlZCB0byBgbG9hZE1hbmlmZXN0KClgIHRvIHByb3Blcmx5IGluZmVyXG4gICAgLy8gaXRzIHJldHVybiB0eXBlLCB3aGljaCBpbmRpY2F0ZWQgdGhhdCB0aGUgcmV0dXJuIHR5cGUgb2YgdGhpc1xuICAgIC8vIGZ1bmN0aW9uIG1heSBiZSBhIGxpZS4gSSBjb3VsZCBjaGFuZ2UgdGhlIHNjaGVtYSB0byBtYWtlIGB0ZXN0Q2FzZXNgXG4gICAgLy8gb3B0aW9uYWwsIGJ1dCB0aGF0IHdpbGwgYnVtcCB0aGUgbWFqb3IgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UgYW5kIElcbiAgICAvLyBkb24ndCB3YW50IHRvIGRvIHRoYXQuIFNvIGluc3RlYWQsIGp1c3QgbWFrZSBzdXJlIGB0ZXN0Q2FzZXNgIGlzIGFsd2F5cyB0aGVyZS5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWFuaWZlc3QsXG4gICAgICB0ZXN0Q2FzZXM6IChtYW5pZmVzdCBhcyBhbnkpLnRlc3RDYXNlcyA/PyBbXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIHRoZSBjdXJyZW50IHNjaGVtYSB2ZXJzaW9uIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtTQ0hFTUFfVkVSU0lPTi5yZXZpc2lvbn0uMC4wYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIENMSSB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgdGhpcyBDbG91ZCBBc3NlbWJseSBTY2hlbWEgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjbGlWZXJzaW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmVyc2lvbiA9IENMSV9WRVJTSU9OLnZlcnNpb247XG4gICAgcmV0dXJuIHZlcnNpb24gPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWRcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBzYXZlQXNzZW1ibHlNYW5pZmVzdCgpYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlKG1hbmlmZXN0OiBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0LCBmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZUFzc2VtYmx5TWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgbG9hZEFzc2VtYmx5TWFuaWZlc3QoKWBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9hZChmaWxlUGF0aDogc3RyaW5nKTogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCB7XG4gICAgcmV0dXJuIHRoaXMubG9hZEFzc2VtYmx5TWFuaWZlc3QoZmlsZVBhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGUoXG4gICAgbWFuaWZlc3Q6IGFueSxcbiAgICBzY2hlbWE6IGpzb25zY2hlbWEuU2NoZW1hLFxuICAgIG9wdGlvbnM/OiBMb2FkTWFuaWZlc3RPcHRpb25zLFxuICApOiBhc3NlcnRzIG1hbmlmZXN0IGlzIGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3Qge1xuICAgIGZ1bmN0aW9uIHBhcnNlVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IHZlciA9IHNlbXZlci52YWxpZCh2ZXJzaW9uKTtcbiAgICAgIGlmICghdmVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzZW12ZXIgc3RyaW5nOiBcIiR7dmVyc2lvbn1cImApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZlcjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXhTdXBwb3J0ZWQgPSBzZW12ZXIubWFqb3IocGFyc2VWZXJzaW9uKE1hbmlmZXN0LnZlcnNpb24oKSkpO1xuICAgIGNvbnN0IGFjdHVhbCA9IHBhcnNlVmVyc2lvbihtYW5pZmVzdC52ZXJzaW9uKTtcblxuICAgIC8vIGZpcnN0IHZhbGlkYXRlIHRoZSB2ZXJzaW9uIHNob3VsZCBiZSBhY2NlcHRlZC4gYWxsIHZlcnNpb25zIHdpdGhpbiB0aGUgc2FtZSBtaW5vciB2ZXJzaW9uIGFyZSBmaW5lXG4gICAgaWYgKG1heFN1cHBvcnRlZCA8IHNlbXZlci5tYWpvcihhY3R1YWwpICYmICFvcHRpb25zPy5za2lwVmVyc2lvbkNoZWNrKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIGEgbW9yZSBzcGVjaWZpYyBlcnJvciB0byB0aHJvdyB0aGFuIHRoZSBnZW5lcmljIG9uZSBiZWxvdywgbWFrZSBzdXJlIHRvIGFkZCB0aGF0IGluZm8uXG4gICAgICBjb25zdCBjbGlWZXJzaW9uID0gKG1hbmlmZXN0IGFzIGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3QpLm1pbmltdW1DbGlWZXJzaW9uO1xuICAgICAgbGV0IGNsaVdhcm5pbmcgPSAnJztcbiAgICAgIGlmIChjbGlWZXJzaW9uKSB7XG4gICAgICAgIGNsaVdhcm5pbmcgPSBgLiBZb3UgbmVlZCBhdCBsZWFzdCBDTEkgdmVyc2lvbiAke2NsaVZlcnNpb259IHRvIHJlYWQgdGhpcyBtYW5pZmVzdC5gO1xuICAgICAgfVxuXG4gICAgICAvLyB3ZSB1c2UgYSB3ZWxsIGtub3duIGVycm9yIHByZWZpeCBzbyB0aGF0IHRoZSBDTEkgY2FuIGlkZW50aWZ5IHRoaXMgc3BlY2lmaWMgZXJyb3JcbiAgICAgIC8vIGFuZCBwcmludCBzb21lIG1vcmUgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7VkVSU0lPTl9NSVNNQVRDSH06IE1heGltdW0gc2NoZW1hIHZlcnNpb24gc3VwcG9ydGVkIGlzICR7bWF4U3VwcG9ydGVkfS54LngsIGJ1dCBmb3VuZCAke2FjdHVhbH0ke2NsaVdhcm5pbmd9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LnZhbGlkYXRlU2NoZW1hID8/IChwcm9jZXNzLmVudi5URVNUSU5HX0NESyA9PT0gJzEnKSkge1xuICAgICAgLy8gbm93IHZhbGlkYXRlIHRoZSBmb3JtYXQgaXMgZ29vZC5cbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IG5ldyBqc29uc2NoZW1hLlZhbGlkYXRvcigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdG9yLnZhbGlkYXRlKG1hbmlmZXN0LCBzY2hlbWEsIHtcbiAgICAgICAgbmVzdGVkRXJyb3JzOiB0cnVlLFxuICAgICAgICBhbGxvd1Vua25vd25BdHRyaWJ1dGVzOiBmYWxzZSxcbiAgICAgICAgcHJlVmFsaWRhdGVQcm9wZXJ0eTogTWFuaWZlc3QudmFsaWRhdGVBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgICB9KTtcblxuICAgICAgbGV0IGVycm9ycyA9IHJlc3VsdC5lcnJvcnM7XG4gICAgICBpZiAob3B0aW9ucz8uc2tpcEVudW1DaGVjaykge1xuICAgICAgICAvLyBFbnVtIHZhbGlkYXRpb25zIGFyZW4ndCB1c2VmdWwgd2hlblxuICAgICAgICBlcnJvcnMgPSBzdHJpcEVudW1FcnJvcnMoZXJyb3JzKTtcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXNzZW1ibHkgbWFuaWZlc3Q6XFxuJHtlcnJvcnMubWFwKChlKSA9PiBlLnN0YWNrKS5qb2luKCdcXG4nKX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzYXZlTWFuaWZlc3QoXG4gICAgbWFuaWZlc3Q6IGFueSxcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICAgIHNjaGVtYToganNvbnNjaGVtYS5TY2hlbWEsXG4gICAgcHJlcHJvY2Vzcz86IChvYmo6IGFueSkgPT4gYW55LFxuICApIHtcbiAgICBsZXQgd2l0aFZlcnNpb24gPSB7XG4gICAgICAuLi5tYW5pZmVzdCxcbiAgICAgIHZlcnNpb246IE1hbmlmZXN0LnZlcnNpb24oKSxcbiAgICAgIG1pbmltdW1DbGlWZXJzaW9uOiBNYW5pZmVzdC5jbGlWZXJzaW9uKCksXG4gICAgfSBzYXRpc2ZpZXMgYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdDtcblxuICAgIE1hbmlmZXN0LnZhbGlkYXRlKHdpdGhWZXJzaW9uLCBzY2hlbWEpO1xuXG4gICAgaWYgKHByZXByb2Nlc3MpIHtcbiAgICAgIHdpdGhWZXJzaW9uID0gcHJlcHJvY2Vzcyh3aXRoVmVyc2lvbik7XG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHdpdGhWZXJzaW9uLCB1bmRlZmluZWQsIDIpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGxvYWRNYW5pZmVzdChcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICAgIHNjaGVtYToganNvbnNjaGVtYS5TY2hlbWEsXG4gICAgcHJlcHJvY2Vzcz86IChvYmo6IGFueSkgPT4gYW55LFxuICAgIG9wdGlvbnM/OiBMb2FkTWFuaWZlc3RPcHRpb25zLFxuICApIHtcbiAgICBjb25zdCBjb250ZW50cyA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgICBsZXQgb2JqO1xuICAgIHRyeSB7XG4gICAgICBvYmogPSBKU09OLnBhcnNlKGNvbnRlbnRzKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlLm1lc3NhZ2V9LCB3aGlsZSBwYXJzaW5nICR7SlNPTi5zdHJpbmdpZnkoY29udGVudHMpfWApO1xuICAgIH1cbiAgICBpZiAocHJlcHJvY2Vzcykge1xuICAgICAgb2JqID0gcHJlcHJvY2VzcyhvYmopO1xuICAgIH1cbiAgICBNYW5pZmVzdC52YWxpZGF0ZShvYmosIHNjaGVtYSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXggdGhlIGNhc2luZyBvZiBzdGFjayB0YWdzIGVudHJpZXNcbiAgICpcbiAgICogQXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBDREsgd2UgdXNlZCB0byBlbWl0IHN0YWNrIHRhZ3MgYXMgYW4gb2JqZWN0IHdpdGhcbiAgICogYHsgS2V5LCBWYWx1ZSB9YCBrZXlzOyB0aGlzIGhhZCB0aGUgXCJhZHZhbnRhZ2VcIiB0aGF0IHdlIGNvdWxkIHN0aWNrIHRob3NlXG4gICAqIHRhZ3MgZGlyZWN0bHkgaW50byB0aGUgYENyZWF0ZUNoYW5nZVNldGAgY2FsbC5cbiAgICpcbiAgICogVGhlbiB3ZSBsYXRlciBvbiB1c2VkIGpzaWkgb24gdGhlIGFzc2VtYmx5IHNjaGVtYSBhbmQgd2Ugd2VyZSBmb3JjZWQgdG8gdHlwZVxuICAgKiB0aGUgaW4tbWVtb3J5IG9iamVjdHMgYXMgYHsga2V5LCB2YWx1ZSB9YCB3aXRoIGxvd2VyY2FzZSBsZXR0ZXJzLiBOb3cgdGhlXG4gICAqIG9iamVjdHMgaGF2ZSBhIGRpZmZlcmVudCBvbi1kaXNrIGFuZCBpbi1tZW1vcnkgZm9ybWF0LCBhbmQgd2UgbmVlZCB0byBjb252ZXJ0XG4gICAqIGJldHdlZW4gdGhlbS5cbiAgICpcbiAgICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHdlIHVzZWQgdG8gY29udmVydCBsb3dlcmNhc2UgaW4tbWVtb3J5XG4gICAqIHRvIHVwcGVyY2FzZSBvbi1kaXNrIHZhcmlhbnQgdW50aWwgdmVyeSByZWNlbnRseS4gVGhpcyBpcyBub3cgdW5uZWNlc3NhcnksXG4gICAqIHNpbmNlIG5vIG9mZmljaWFsbHkgc3VwcG9ydGVkIENESyB0b29scyByZWFkIHRoZSBzdGFjayB0YWdzIGZyb20gdGhlXG4gICAqIG1ldGFkYXRhOyB0aGUgQ0xJIGFuZCB0b29sa2l0IGxpYnJhcnkgcmVhZCBzdGFjayB0YWdzIGZyb20gdGhlIGFydGlmYWN0XG4gICAqIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIFNvIGFsdGhvdWdoIHdlIGRvbid0IGVtaXQgdXBwZXJjYXNlIHN0YWNrIHRhZyBvYmplY3RzIGFueW1vcmUsIHdlIG1pZ2h0IHN0aWxsIHJlYWRcbiAgICogbWFuaWZlc3RzIHRoYXQgaGF2ZSB0aGVtLiBCZWNhdXNlIHRoZSBtYW5pZmVzdCB3ZSByZWFkIG11c3QgcGFzcyBKU09OIFNjaGVtYVxuICAgKiB2YWxpZGF0aW9uICh3aGljaCBleHBlY3RzIGxvd2VyY2FzZSB0YWcgb2JqZWN0cyksIHdlIGhhdmUgdG8gZml4IHRoZSBjYXNpbmdcbiAgICogb2YgdGhlc2Ugb2JqZWN0cyBhZnRlciByZWFkaW5nIGZyb20gZGlzayBhbmQgYmVmb3JlIHZhbGlkYXRpbmcuXG4gICAqXG4gICAqIFRoYXQncyB3aGF0IHRoaXMgZnVuY3Rpb24gZG9lcy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHBhdGNoU3RhY2tUYWdzT25SZWFkKHRoaXM6IHZvaWQsIG1hbmlmZXN0OiBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0KSB7XG4gICAgY29uc3QgYXJ0aWZhY3RzID0gT2JqZWN0LnZhbHVlcyhtYW5pZmVzdC5hcnRpZmFjdHMgPz8ge30pXG4gICAgICAuZmlsdGVyKGFydGlmYWN0ID0+IGFydGlmYWN0LnR5cGUgPT09IGFzc2VtYmx5LkFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0spO1xuXG4gICAgZm9yIChjb25zdCBhcnRpZmFjdCBvZiBhcnRpZmFjdHMpIHtcbiAgICAgIGNvbnN0IHRhZ01ldGFkYXRhID0gT2JqZWN0LnZhbHVlcyhhcnRpZmFjdC5tZXRhZGF0YSA/PyB7fSlcbiAgICAgICAgLmZsYXRNYXAoeCA9PiB4KVxuICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LnR5cGUgPT09IGFzc2VtYmx5LkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuU1RBQ0tfVEFHUyk7XG5cbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGFnTWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgdGFncyA9IGVudHJ5LmRhdGEgYXMgdW5rbm93biBhcyBhc3NlbWJseS5TdGFja1RhZ3NNZXRhZGF0YUVudHJ5W10gfCB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgdGFnIG9mIHRhZ3MgPz8gW10pIHtcbiAgICAgICAgICBjb25zdCB0OiBhbnkgPSB0YWc7XG4gICAgICAgICAgaWYgKCdLZXknIGluIHQpIHtcbiAgICAgICAgICAgIHQua2V5ID0gdC5LZXk7XG4gICAgICAgICAgICBkZWxldGUgdC5LZXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgnVmFsdWUnIGluIHQpIHtcbiAgICAgICAgICAgIHQudmFsdWUgPSB0LlZhbHVlO1xuICAgICAgICAgICAgZGVsZXRlIHQuVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hbmlmZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGF0IGBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnNgIGRvZXNuJ3QgY29udGFpbiBub3IgYEV4dGVybmFsSWRgIG5laXRoZXIgYFJvbGVBcm5gLCBhcyB0aGV5XG4gICAqIHNob3VsZCBoYXZlIGRlZGljYXRlZCBwcm9wZXJ0aWVzIHByZWNlZGluZyB0aGlzIChlLmcgYGFzc3VtZVJvbGVBcm5gIGFuZCBgYXNzdW1lUm9sZUV4dGVybmFsSWRgKS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlQXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zKFxuICAgIHRoaXM6IHZvaWQsXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBfc2NoZW1hOiBqc29uc2NoZW1hLlNjaGVtYSxcbiAgICBfb3B0aW9uczoganNvbnNjaGVtYS5PcHRpb25zLFxuICAgIF9jdHg6IGpzb25zY2hlbWEuU2NoZW1hQ29udGV4dCxcbiAgKSB7XG4gICAgaWYgKGtleSAhPT0gJ2Fzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucycpIHtcbiAgICAgIC8vIG5vdGUgdGhhdCB0aGlzIG1lYW5zIHRoYXQgaWYgd2UgaGFwcGVuIHRvIGhhdmUgYSBwcm9wZXJ0eSBuYW1lZCBsaWtlIHRoaXMsIGJ1dCB0aGF0XG4gICAgICAvLyBkb2VzIHdhbnQgdG8gYWxsb3cgJ1JvbGVBcm4nIG9yICdFeHRlcm5hbElkJywgdGhpcyBjb2RlIHdpbGwgaGF2ZSB0byBjaGFuZ2UgdG8gY29uc2lkZXIgdGhlIGZ1bGwgc2NoZW1hIHBhdGguXG4gICAgICAvLyBJIGRlY2lkZWQgdG8gbWFrZSB0aGlzIGxlc3MgZ3JhbnVsYXIgZm9yIG5vdyBvbiBwdXJwb3NlIGJlY2F1c2UgaXQgZml0cyBvdXIgbmVlZHMgYW5kIGF2b2lkcyBoYXZpbmcgbWVzc3lcbiAgICAgIC8vIHZhbGlkYXRpb24gbG9naWMgZHVlIHRvIHZhcmlvdXMgc2NoZW1hIHBhdGhzLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFzc3VtZVJvbGVPcHRpb25zID0gaW5zdGFuY2Vba2V5XTtcbiAgICBpZiAoYXNzdW1lUm9sZU9wdGlvbnM/LlJvbGVBcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUm9sZUFybiBpcyBub3QgYWxsb3dlZCBpbnNpZGUgJyR7a2V5fSdgKTtcbiAgICB9XG4gICAgaWYgKGFzc3VtZVJvbGVPcHRpb25zPy5FeHRlcm5hbElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4dGVybmFsSWQgaXMgbm90IGFsbG93ZWQgaW5zaWRlICcke2tleX0nYCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHN0cmlwRW51bUVycm9ycyhlcnJvcnM6IGpzb25zY2hlbWEuVmFsaWRhdGlvbkVycm9yW10pIHtcbiAgcmV0dXJuIGVycm9ycy5maWx0ZXIoKGUpID0+IHR5cGVvZiBlLnNjaGVtYSA9PT0gJ3N0cmluZycgfHwgISgnZW51bScgaW4gZS5zY2hlbWEpKTtcbn1cbiJdfQ==","'use strict';\n\nvar helpers = require('./helpers');\n\n/** @type ValidatorResult */\nvar ValidatorResult = helpers.ValidatorResult;\n/** @type SchemaError */\nvar SchemaError = helpers.SchemaError;\n\nvar attribute = {};\n\nattribute.ignoreProperties = {\n // informative properties\n 'id': true,\n 'default': true,\n 'description': true,\n 'title': true,\n // arguments to other properties\n 'additionalItems': true,\n 'then': true,\n 'else': true,\n // special-handled properties\n '$schema': true,\n '$ref': true,\n 'extends': true,\n};\n\n/**\n * @name validators\n */\nvar validators = attribute.validators = {};\n\n/**\n * Validates whether the instance if of a certain type\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {ValidatorResult|null}\n */\nvalidators.type = function validateType (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var types = Array.isArray(schema.type) ? schema.type : [schema.type];\n if (!types.some(this.testType.bind(this, instance, schema, options, ctx))) {\n var list = types.map(function (v) {\n if(!v) return;\n var id = v.$id || v.id;\n return id ? ('<' + id + '>') : (v+'');\n });\n result.addError({\n name: 'type',\n argument: list,\n message: \"is not of a type(s) \" + list,\n });\n }\n return result;\n};\n\nfunction testSchemaNoThrow(instance, options, ctx, callback, schema){\n var throwError = options.throwError;\n var throwAll = options.throwAll;\n options.throwError = false;\n options.throwAll = false;\n var res = this.validateSchema(instance, schema, options, ctx);\n options.throwError = throwError;\n options.throwAll = throwAll;\n\n if (!res.valid && callback instanceof Function) {\n callback(res);\n }\n return res.valid;\n}\n\n/**\n * Validates whether the instance matches some of the given schemas\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {ValidatorResult|null}\n */\nvalidators.anyOf = function validateAnyOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var inner = new ValidatorResult(instance, schema, options, ctx);\n if (!Array.isArray(schema.anyOf)){\n throw new SchemaError(\"anyOf must be an array\");\n }\n if (!schema.anyOf.some(\n testSchemaNoThrow.bind(\n this, instance, options, ctx, function(res){inner.importErrors(res);}\n ))) {\n var list = schema.anyOf.map(function (v, i) {\n var id = v.$id || v.id;\n if(id) return '<' + id + '>';\n return(v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n });\n if (options.nestedErrors) {\n result.importErrors(inner);\n }\n result.addError({\n name: 'anyOf',\n argument: list,\n message: \"is not any of \" + list.join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance matches every given schema\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.allOf = function validateAllOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema.allOf)){\n throw new SchemaError(\"allOf must be an array\");\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var self = this;\n schema.allOf.forEach(function(v, i){\n var valid = self.validateSchema(instance, v, options, ctx);\n if(!valid.valid){\n var id = v.$id || v.id;\n var msg = id || (v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n result.addError({\n name: 'allOf',\n argument: { id: msg, length: valid.errors.length, valid: valid },\n message: 'does not match allOf schema ' + msg + ' with ' + valid.errors.length + ' error[s]:',\n });\n result.importErrors(valid);\n }\n });\n return result;\n};\n\n/**\n * Validates whether the instance matches exactly one of the given schemas\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.oneOf = function validateOneOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema.oneOf)){\n throw new SchemaError(\"oneOf must be an array\");\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var inner = new ValidatorResult(instance, schema, options, ctx);\n var count = schema.oneOf.filter(\n testSchemaNoThrow.bind(\n this, instance, options, ctx, function(res) {inner.importErrors(res);}\n ) ).length;\n var list = schema.oneOf.map(function (v, i) {\n var id = v.$id || v.id;\n return id || (v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n });\n if (count!==1) {\n if (options.nestedErrors) {\n result.importErrors(inner);\n }\n result.addError({\n name: 'oneOf',\n argument: list,\n message: \"is not exactly one from \" + list.join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates \"then\" or \"else\" depending on the result of validating \"if\"\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.if = function validateIf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) return null;\n if (!helpers.isSchema(schema.if)) throw new Error('Expected \"if\" keyword to be a schema');\n var ifValid = testSchemaNoThrow.call(this, instance, options, ctx, null, schema.if);\n var result = new ValidatorResult(instance, schema, options, ctx);\n var res;\n if(ifValid){\n if (schema.then === undefined) return;\n if (!helpers.isSchema(schema.then)) throw new Error('Expected \"then\" keyword to be a schema');\n res = this.validateSchema(instance, schema.then, options, ctx.makeChild(schema.then));\n result.importErrors(res);\n }else{\n if (schema.else === undefined) return;\n if (!helpers.isSchema(schema.else)) throw new Error('Expected \"else\" keyword to be a schema');\n res = this.validateSchema(instance, schema.else, options, ctx.makeChild(schema.else));\n result.importErrors(res);\n }\n return result;\n};\n\nfunction getEnumerableProperty(object, key){\n // Determine if `key` shows up in `for(var key in object)`\n // First test Object.hasOwnProperty.call as an optimization: that guarantees it does\n if(Object.hasOwnProperty.call(object, key)) return object[key];\n // Test `key in object` as an optimization; false means it won't\n if(!(key in object)) return;\n while( (object = Object.getPrototypeOf(object)) ){\n if(Object.propertyIsEnumerable.call(object, key)) return object[key];\n }\n}\n\n/**\n * Validates propertyNames\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.propertyNames = function validatePropertyNames (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var subschema = schema.propertyNames!==undefined ? schema.propertyNames : {};\n if(!helpers.isSchema(subschema)) throw new SchemaError('Expected \"propertyNames\" to be a schema (object or boolean)');\n\n for (var property in instance) {\n if(getEnumerableProperty(instance, property) !== undefined){\n var res = this.validateSchema(property, subschema, options, ctx.makeChild(subschema));\n result.importErrors(res);\n }\n }\n\n return result;\n};\n\n/**\n * Validates properties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.properties = function validateProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var properties = schema.properties || {};\n for (var property in properties) {\n var subschema = properties[property];\n if(subschema===undefined){\n continue;\n }else if(subschema===null){\n throw new SchemaError('Unexpected null, expected schema in \"properties\"');\n }\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, subschema, options, ctx);\n }\n var prop = getEnumerableProperty(instance, property);\n var res = this.validateSchema(prop, subschema, options, ctx.makeChild(subschema, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n return result;\n};\n\n/**\n * Test a specific property within in instance against the additionalProperties schema attribute\n * This ignores properties with definitions in the properties schema attribute, but no other attributes.\n * If too many more types of property-existence tests pop up they may need their own class of tests (like `type` has)\n * @private\n * @return {boolean}\n */\nfunction testAdditionalProperty (instance, schema, options, ctx, property, result) {\n if(!this.types.object(instance)) return;\n if (schema.properties && schema.properties[property] !== undefined) {\n return;\n }\n if (schema.additionalProperties === false) {\n result.addError({\n name: 'additionalProperties',\n argument: property,\n message: \"is not allowed to have the additional property \" + JSON.stringify(property),\n });\n } else {\n var additionalProperties = schema.additionalProperties || {};\n\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, additionalProperties, options, ctx);\n }\n\n var res = this.validateSchema(instance[property], additionalProperties, options, ctx.makeChild(additionalProperties, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n}\n\n/**\n * Validates patternProperties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.patternProperties = function validatePatternProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var patternProperties = schema.patternProperties || {};\n\n for (var property in instance) {\n var test = true;\n for (var pattern in patternProperties) {\n var subschema = patternProperties[pattern];\n if(subschema===undefined){\n continue;\n }else if(subschema===null){\n throw new SchemaError('Unexpected null, expected schema in \"patternProperties\"');\n }\n try {\n var regexp = new RegExp(pattern, 'u');\n } catch(_e) {\n // In the event the stricter handling causes an error, fall back on the forgiving handling\n // DEPRECATED\n regexp = new RegExp(pattern);\n }\n if (!regexp.test(property)) {\n continue;\n }\n test = false;\n\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, subschema, options, ctx);\n }\n\n var res = this.validateSchema(instance[property], subschema, options, ctx.makeChild(subschema, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n if (test) {\n testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n }\n }\n\n return result;\n};\n\n/**\n * Validates additionalProperties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.additionalProperties = function validateAdditionalProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n // if patternProperties is defined then we'll test when that one is called instead\n if (schema.patternProperties) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n for (var property in instance) {\n testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at least of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minProperties = function validateMinProperties (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var keys = Object.keys(instance);\n if (!(keys.length >= schema.minProperties)) {\n result.addError({\n name: 'minProperties',\n argument: schema.minProperties,\n message: \"does not meet minimum property length of \" + schema.minProperties,\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at most of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxProperties = function validateMaxProperties (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var keys = Object.keys(instance);\n if (!(keys.length <= schema.maxProperties)) {\n result.addError({\n name: 'maxProperties',\n argument: schema.maxProperties,\n message: \"does not meet maximum property length of \" + schema.maxProperties,\n });\n }\n return result;\n};\n\n/**\n * Validates items when instance is an array\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.items = function validateItems (instance, schema, options, ctx) {\n var self = this;\n if (!this.types.array(instance)) return;\n if (schema.items===undefined) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n instance.every(function (value, i) {\n if(Array.isArray(schema.items)){\n var items = schema.items[i]===undefined ? schema.additionalItems : schema.items[i];\n }else{\n var items = schema.items;\n }\n if (items === undefined) {\n return true;\n }\n if (items === false) {\n result.addError({\n name: 'items',\n message: \"additionalItems not permitted\",\n });\n return false;\n }\n var res = self.validateSchema(value, items, options, ctx.makeChild(items, i));\n if(res.instance !== result.instance[i]) result.instance[i] = res.instance;\n result.importErrors(res);\n return true;\n });\n return result;\n};\n\n/**\n * Validates the \"contains\" keyword\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.contains = function validateContains (instance, schema, options, ctx) {\n var self = this;\n if (!this.types.array(instance)) return;\n if (schema.contains===undefined) return;\n if (!helpers.isSchema(schema.contains)) throw new Error('Expected \"contains\" keyword to be a schema');\n var result = new ValidatorResult(instance, schema, options, ctx);\n var count = instance.some(function (value, i) {\n var res = self.validateSchema(value, schema.contains, options, ctx.makeChild(schema.contains, i));\n return res.errors.length===0;\n });\n if(count===false){\n result.addError({\n name: 'contains',\n argument: schema.contains,\n message: \"must contain an item matching given schema\",\n });\n }\n return result;\n};\n\n/**\n * Validates minimum and exclusiveMinimum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minimum = function validateMinimum (instance, schema, options, ctx) {\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (schema.exclusiveMinimum && schema.exclusiveMinimum === true) {\n if(!(instance > schema.minimum)){\n result.addError({\n name: 'minimum',\n argument: schema.minimum,\n message: \"must be greater than \" + schema.minimum,\n });\n }\n } else {\n if(!(instance >= schema.minimum)){\n result.addError({\n name: 'minimum',\n argument: schema.minimum,\n message: \"must be greater than or equal to \" + schema.minimum,\n });\n }\n }\n return result;\n};\n\n/**\n * Validates maximum and exclusiveMaximum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maximum = function validateMaximum (instance, schema, options, ctx) {\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (schema.exclusiveMaximum && schema.exclusiveMaximum === true) {\n if(!(instance < schema.maximum)){\n result.addError({\n name: 'maximum',\n argument: schema.maximum,\n message: \"must be less than \" + schema.maximum,\n });\n }\n } else {\n if(!(instance <= schema.maximum)){\n result.addError({\n name: 'maximum',\n argument: schema.maximum,\n message: \"must be less than or equal to \" + schema.maximum,\n });\n }\n }\n return result;\n};\n\n/**\n * Validates the number form of exclusiveMinimum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.exclusiveMinimum = function validateExclusiveMinimum (instance, schema, options, ctx) {\n // Support the boolean form of exclusiveMinimum, which is handled by the \"minimum\" keyword.\n if(typeof schema.exclusiveMinimum === 'boolean') return;\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var valid = instance > schema.exclusiveMinimum;\n if (!valid) {\n result.addError({\n name: 'exclusiveMinimum',\n argument: schema.exclusiveMinimum,\n message: \"must be strictly greater than \" + schema.exclusiveMinimum,\n });\n }\n return result;\n};\n\n/**\n * Validates the number form of exclusiveMaximum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.exclusiveMaximum = function validateExclusiveMaximum (instance, schema, options, ctx) {\n // Support the boolean form of exclusiveMaximum, which is handled by the \"maximum\" keyword.\n if(typeof schema.exclusiveMaximum === 'boolean') return;\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var valid = instance < schema.exclusiveMaximum;\n if (!valid) {\n result.addError({\n name: 'exclusiveMaximum',\n argument: schema.exclusiveMaximum,\n message: \"must be strictly less than \" + schema.exclusiveMaximum,\n });\n }\n return result;\n};\n\n/**\n * Perform validation for multipleOf and divisibleBy, which are essentially the same.\n * @param instance\n * @param schema\n * @param validationType\n * @param errorMessage\n * @returns {String|null}\n */\nvar validateMultipleOfOrDivisbleBy = function validateMultipleOfOrDivisbleBy (instance, schema, options, ctx, validationType, errorMessage) {\n if (!this.types.number(instance)) return;\n\n var validationArgument = schema[validationType];\n if (validationArgument == 0) {\n throw new SchemaError(validationType + \" cannot be zero\");\n }\n\n var result = new ValidatorResult(instance, schema, options, ctx);\n\n var instanceDecimals = helpers.getDecimalPlaces(instance);\n var divisorDecimals = helpers.getDecimalPlaces(validationArgument);\n\n var maxDecimals = Math.max(instanceDecimals , divisorDecimals);\n var multiplier = Math.pow(10, maxDecimals);\n\n if (Math.round(instance * multiplier) % Math.round(validationArgument * multiplier) !== 0) {\n result.addError({\n name: validationType,\n argument: validationArgument,\n message: errorMessage + JSON.stringify(validationArgument),\n });\n }\n\n return result;\n};\n\n/**\n * Validates divisibleBy when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.multipleOf = function validateMultipleOf (instance, schema, options, ctx) {\n return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"multipleOf\", \"is not a multiple of (divisible by) \");\n};\n\n/**\n * Validates multipleOf when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.divisibleBy = function validateDivisibleBy (instance, schema, options, ctx) {\n return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"divisibleBy\", \"is not divisible by (multiple of) \");\n};\n\n/**\n * Validates whether the instance value is present.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.required = function validateRequired (instance, schema, options, ctx) {\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (instance === undefined && schema.required === true) {\n // A boolean form is implemented for reverse-compatibility with schemas written against older drafts\n result.addError({\n name: 'required',\n message: \"is required\",\n });\n } else if (this.types.object(instance) && Array.isArray(schema.required)) {\n schema.required.forEach(function(n){\n if(getEnumerableProperty(instance, n)===undefined){\n result.addError({\n name: 'required',\n argument: n,\n message: \"requires property \" + JSON.stringify(n),\n });\n }\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value matches the regular expression, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.pattern = function validatePattern (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var pattern = schema.pattern;\n try {\n var regexp = new RegExp(pattern, 'u');\n } catch(_e) {\n // In the event the stricter handling causes an error, fall back on the forgiving handling\n // DEPRECATED\n regexp = new RegExp(pattern);\n }\n if (!instance.match(regexp)) {\n result.addError({\n name: 'pattern',\n argument: schema.pattern,\n message: \"does not match pattern \" + JSON.stringify(schema.pattern.toString()),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is of a certain defined format or a custom\n * format.\n * The following formats are supported for string types:\n * - date-time\n * - date\n * - time\n * - ip-address\n * - ipv6\n * - uri\n * - color\n * - host-name\n * - alpha\n * - alpha-numeric\n * - utc-millisec\n * @param instance\n * @param schema\n * @param [options]\n * @param [ctx]\n * @return {String|null}\n */\nvalidators.format = function validateFormat (instance, schema, options, ctx) {\n if (instance===undefined) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!result.disableFormat && !helpers.isFormat(instance, schema.format, this)) {\n result.addError({\n name: 'format',\n argument: schema.format,\n message: \"does not conform to the \" + JSON.stringify(schema.format) + \" format\",\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at least of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minLength = function validateMinLength (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n var length = instance.length - (hsp ? hsp.length : 0);\n if (!(length >= schema.minLength)) {\n result.addError({\n name: 'minLength',\n argument: schema.minLength,\n message: \"does not meet minimum length of \" + schema.minLength,\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at most of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxLength = function validateMaxLength (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n // TODO if this was already computed in \"minLength\", use that value instead of re-computing\n var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n var length = instance.length - (hsp ? hsp.length : 0);\n if (!(length <= schema.maxLength)) {\n result.addError({\n name: 'maxLength',\n argument: schema.maxLength,\n message: \"does not meet maximum length of \" + schema.maxLength,\n });\n }\n return result;\n};\n\n/**\n * Validates whether instance contains at least a minimum number of items, when the instance is an Array.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minItems = function validateMinItems (instance, schema, options, ctx) {\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!(instance.length >= schema.minItems)) {\n result.addError({\n name: 'minItems',\n argument: schema.minItems,\n message: \"does not meet minimum length of \" + schema.minItems,\n });\n }\n return result;\n};\n\n/**\n * Validates whether instance contains no more than a maximum number of items, when the instance is an Array.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxItems = function validateMaxItems (instance, schema, options, ctx) {\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!(instance.length <= schema.maxItems)) {\n result.addError({\n name: 'maxItems',\n argument: schema.maxItems,\n message: \"does not meet maximum length of \" + schema.maxItems,\n });\n }\n return result;\n};\n\n/**\n * Deep compares arrays for duplicates\n * @param v\n * @param i\n * @param a\n * @private\n * @return {boolean}\n */\nfunction testArrays (v, i, a) {\n var j, len = a.length;\n for (j = i + 1, len; j < len; j++) {\n if (helpers.deepCompareStrict(v, a[j])) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Validates whether there are no duplicates, when the instance is an Array.\n * @param instance\n * @return {String|null}\n */\nvalidators.uniqueItems = function validateUniqueItems (instance, schema, options, ctx) {\n if (schema.uniqueItems!==true) return;\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!instance.every(testArrays)) {\n result.addError({\n name: 'uniqueItems',\n message: \"contains duplicate item\",\n });\n }\n return result;\n};\n\n/**\n * Validate for the presence of dependency properties, if the instance is an object.\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {null|ValidatorResult}\n */\nvalidators.dependencies = function validateDependencies (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n for (var property in schema.dependencies) {\n if (instance[property] === undefined) {\n continue;\n }\n var dep = schema.dependencies[property];\n var childContext = ctx.makeChild(dep, property);\n if (typeof dep == 'string') {\n dep = [dep];\n }\n if (Array.isArray(dep)) {\n dep.forEach(function (prop) {\n if (instance[prop] === undefined) {\n result.addError({\n // FIXME there's two different \"dependencies\" errors here with slightly different outputs\n // Can we make these the same? Or should we create different error types?\n name: 'dependencies',\n argument: childContext.propertyPath,\n message: \"property \" + prop + \" not found, required by \" + childContext.propertyPath,\n });\n }\n });\n } else {\n var res = this.validateSchema(instance, dep, options, childContext);\n if(result.instance !== res.instance) result.instance = res.instance;\n if (res && res.errors.length) {\n result.addError({\n name: 'dependencies',\n argument: childContext.propertyPath,\n message: \"does not meet dependency required by \" + childContext.propertyPath,\n });\n result.importErrors(res);\n }\n }\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is one of the enumerated values.\n *\n * @param instance\n * @param schema\n * @return {ValidatorResult|null}\n */\nvalidators['enum'] = function validateEnum (instance, schema, options, ctx) {\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema['enum'])) {\n throw new SchemaError(\"enum expects an array\", schema);\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!schema['enum'].some(helpers.deepCompareStrict.bind(null, instance))) {\n result.addError({\n name: 'enum',\n argument: schema['enum'],\n message: \"is not one of enum values: \" + schema['enum'].map(String).join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance exactly matches a given value\n *\n * @param instance\n * @param schema\n * @return {ValidatorResult|null}\n */\nvalidators['const'] = function validateEnum (instance, schema, options, ctx) {\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!helpers.deepCompareStrict(schema['const'], instance)) {\n result.addError({\n name: 'const',\n argument: schema['const'],\n message: \"does not exactly match expected constant: \" + schema['const'],\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance if of a prohibited type.\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {null|ValidatorResult}\n */\nvalidators.not = validators.disallow = function validateNot (instance, schema, options, ctx) {\n var self = this;\n if(instance===undefined) return null;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var notTypes = schema.not || schema.disallow;\n if(!notTypes) return null;\n if(!Array.isArray(notTypes)) notTypes=[notTypes];\n notTypes.forEach(function (type) {\n if (self.testType(instance, schema, options, ctx, type)) {\n var id = type && (type.$id || type.id);\n var schemaId = id || type;\n result.addError({\n name: 'not',\n argument: schemaId,\n message: \"is of prohibited type \" + schemaId,\n });\n }\n });\n return result;\n};\n\nmodule.exports = attribute;\n","'use strict';\n\nvar uri = require('url');\n\nvar ValidationError = exports.ValidationError = function ValidationError (message, instance, schema, path, name, argument) {\n if(Array.isArray(path)){\n this.path = path;\n this.property = path.reduce(function(sum, item){\n return sum + makeSuffix(item);\n }, 'instance');\n }else if(path !== undefined){\n this.property = path;\n }\n if (message) {\n this.message = message;\n }\n if (schema) {\n var id = schema.$id || schema.id;\n this.schema = id || schema;\n }\n if (instance !== undefined) {\n this.instance = instance;\n }\n this.name = name;\n this.argument = argument;\n this.stack = this.toString();\n};\n\nValidationError.prototype.toString = function toString() {\n return this.property + ' ' + this.message;\n};\n\nvar ValidatorResult = exports.ValidatorResult = function ValidatorResult(instance, schema, options, ctx) {\n this.instance = instance;\n this.schema = schema;\n this.options = options;\n this.path = ctx.path;\n this.propertyPath = ctx.propertyPath;\n this.errors = [];\n this.throwError = options && options.throwError;\n this.throwFirst = options && options.throwFirst;\n this.throwAll = options && options.throwAll;\n this.disableFormat = options && options.disableFormat === true;\n};\n\nValidatorResult.prototype.addError = function addError(detail) {\n var err;\n if (typeof detail == 'string') {\n err = new ValidationError(detail, this.instance, this.schema, this.path);\n } else {\n if (!detail) throw new Error('Missing error detail');\n if (!detail.message) throw new Error('Missing error message');\n if (!detail.name) throw new Error('Missing validator type');\n err = new ValidationError(detail.message, this.instance, this.schema, this.path, detail.name, detail.argument);\n }\n\n this.errors.push(err);\n if (this.throwFirst) {\n throw new ValidatorResultError(this);\n }else if(this.throwError){\n throw err;\n }\n return err;\n};\n\nValidatorResult.prototype.importErrors = function importErrors(res) {\n if (typeof res == 'string' || (res && res.validatorType)) {\n this.addError(res);\n } else if (res && res.errors) {\n this.errors = this.errors.concat(res.errors);\n }\n};\n\nfunction stringizer (v,i){\n return i+': '+v.toString()+'\\n';\n}\nValidatorResult.prototype.toString = function toString(res) {\n return this.errors.map(stringizer).join('');\n};\n\nObject.defineProperty(ValidatorResult.prototype, \"valid\", { get: function() {\n return !this.errors.length;\n} });\n\nmodule.exports.ValidatorResultError = ValidatorResultError;\nfunction ValidatorResultError(result) {\n if(Error.captureStackTrace){\n Error.captureStackTrace(this, ValidatorResultError);\n }\n this.instance = result.instance;\n this.schema = result.schema;\n this.options = result.options;\n this.errors = result.errors;\n}\nValidatorResultError.prototype = new Error();\nValidatorResultError.prototype.constructor = ValidatorResultError;\nValidatorResultError.prototype.name = \"Validation Error\";\n\n/**\n * Describes a problem with a Schema which prevents validation of an instance\n * @name SchemaError\n * @constructor\n */\nvar SchemaError = exports.SchemaError = function SchemaError (msg, schema) {\n this.message = msg;\n this.schema = schema;\n Error.call(this, msg);\n Error.captureStackTrace(this, SchemaError);\n};\nSchemaError.prototype = Object.create(Error.prototype,\n {\n constructor: {value: SchemaError, enumerable: false},\n name: {value: 'SchemaError', enumerable: false},\n });\n\nvar SchemaContext = exports.SchemaContext = function SchemaContext (schema, options, path, base, schemas) {\n this.schema = schema;\n this.options = options;\n if(Array.isArray(path)){\n this.path = path;\n this.propertyPath = path.reduce(function(sum, item){\n return sum + makeSuffix(item);\n }, 'instance');\n }else{\n this.propertyPath = path;\n }\n this.base = base;\n this.schemas = schemas;\n};\n\nSchemaContext.prototype.resolve = function resolve (target) {\n return uri.resolve(this.base, target);\n};\n\nSchemaContext.prototype.makeChild = function makeChild(schema, propertyName){\n var path = (propertyName===undefined) ? this.path : this.path.concat([propertyName]);\n var id = schema.$id || schema.id;\n var base = uri.resolve(this.base, id||'');\n var ctx = new SchemaContext(schema, this.options, path, base, Object.create(this.schemas));\n if(id && !ctx.schemas[base]){\n ctx.schemas[base] = schema;\n }\n return ctx;\n};\n\nvar FORMAT_REGEXPS = exports.FORMAT_REGEXPS = {\n // 7.3.1. Dates, Times, and Duration\n 'date-time': /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])[tT ](2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])(\\.\\d+)?([zZ]|[+-]([0-5][0-9]):(60|[0-5][0-9]))$/,\n 'date': /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])$/,\n 'time': /^(2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])$/,\n 'duration': /P(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S)|\\d+(D|M(\\d+D)?|Y(\\d+M(\\d+D)?)?)(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S))?|\\d+W)/i,\n\n // 7.3.2. Email Addresses\n // TODO: fix the email production\n 'email': /^(?:[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+\\.)*[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!\\.)){0,61}[a-zA-Z0-9]?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\\[(?:(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\]))$/,\n 'idn-email': /^(\"(?:[!#-\\[\\]-\\u{10FFFF}]|\\\\[\\t -\\u{10FFFF}])*\"|[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*)@([!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*|\\[[!-Z\\^-\\u{10FFFF}]*\\])$/u,\n\n // 7.3.3. Hostnames\n\n // 7.3.4. IP Addresses\n 'ip-address': /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,\n // FIXME whitespace is invalid\n 'ipv6': /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/,\n\n // 7.3.5. Resource Identifiers\n // TODO: A more accurate regular expression for \"uri\" goes:\n // [A-Za-z][+\\-.0-9A-Za-z]*:((/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?)?#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])|/?%[0-9A-Fa-f]{2}|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*(#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?)?\n 'uri': /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n 'uri-reference': /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/,\n 'iri': /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n 'iri-reference': /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~-\\u{10FFFF}]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~-\\u{10FFFF}])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/u,\n 'uuid': /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n\n // 7.3.6. uri-template\n 'uri-template': /(%[0-9a-f]{2}|[!#$&(-;=?@\\[\\]_a-z~]|\\{[!#&+,./;=?@|]?(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?(,(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?)*\\})*/iu,\n\n // 7.3.7. JSON Pointers\n 'json-pointer': /^(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*$/iu,\n 'relative-json-pointer': /^\\d+(#|(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*)$/iu,\n\n // hostname regex from: http://stackoverflow.com/a/1420225/5628\n 'hostname': /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n 'host-name': /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n\n 'utc-millisec': function (input) {\n return (typeof input === 'string') && parseFloat(input) === parseInt(input, 10) && !isNaN(input);\n },\n\n // 7.3.8. regex\n 'regex': function (input) {\n var result = true;\n try {\n new RegExp(input);\n } catch (e) {\n result = false;\n }\n return result;\n },\n\n // Other definitions\n // \"style\" was removed from JSON Schema in draft-4 and is deprecated\n 'style': /[\\r\\n\\t ]*[^\\r\\n\\t ][^:]*:[\\r\\n\\t ]*[^\\r\\n\\t ;]*[\\r\\n\\t ]*;?/,\n // \"color\" was removed from JSON Schema in draft-4 and is deprecated\n 'color': /^(#?([0-9A-Fa-f]{3}){1,2}\\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\)))$/,\n 'phone': /^\\+(?:[0-9] ?){6,14}[0-9]$/,\n 'alpha': /^[a-zA-Z]+$/,\n 'alphanumeric': /^[a-zA-Z0-9]+$/,\n};\n\nFORMAT_REGEXPS.regexp = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.pattern = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.ipv4 = FORMAT_REGEXPS['ip-address'];\n\nexports.isFormat = function isFormat (input, format, validator) {\n if (typeof input === 'string' && FORMAT_REGEXPS[format] !== undefined) {\n if (FORMAT_REGEXPS[format] instanceof RegExp) {\n return FORMAT_REGEXPS[format].test(input);\n }\n if (typeof FORMAT_REGEXPS[format] === 'function') {\n return FORMAT_REGEXPS[format](input);\n }\n } else if (validator && validator.customFormats &&\n typeof validator.customFormats[format] === 'function') {\n return validator.customFormats[format](input);\n }\n return true;\n};\n\nvar makeSuffix = exports.makeSuffix = function makeSuffix (key) {\n key = key.toString();\n // This function could be capable of outputting valid a ECMAScript string, but the\n // resulting code for testing which form to use would be tens of thousands of characters long\n // That means this will use the name form for some illegal forms\n if (!key.match(/[.\\s\\[\\]]/) && !key.match(/^[\\d]/)) {\n return '.' + key;\n }\n if (key.match(/^\\d+$/)) {\n return '[' + key + ']';\n }\n return '[' + JSON.stringify(key) + ']';\n};\n\nexports.deepCompareStrict = function deepCompareStrict (a, b) {\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n return a.every(function (v, i) {\n return deepCompareStrict(a[i], b[i]);\n });\n }\n if (typeof a === 'object') {\n if (!a || !b) {\n return a === b;\n }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every(function (v) {\n return deepCompareStrict(a[v], b[v]);\n });\n }\n return a === b;\n};\n\nfunction deepMerger (target, dst, e, i) {\n if (typeof e === 'object') {\n dst[i] = deepMerge(target[i], e);\n } else {\n if (target.indexOf(e) === -1) {\n dst.push(e);\n }\n }\n}\n\nfunction copyist (src, dst, key) {\n dst[key] = src[key];\n}\n\nfunction copyistWithDeepMerge (target, src, dst, key) {\n if (typeof src[key] !== 'object' || !src[key]) {\n dst[key] = src[key];\n }\n else {\n if (!target[key]) {\n dst[key] = src[key];\n } else {\n dst[key] = deepMerge(target[key], src[key]);\n }\n }\n}\n\nfunction deepMerge (target, src) {\n var array = Array.isArray(src);\n var dst = array && [] || {};\n\n if (array) {\n target = target || [];\n dst = dst.concat(target);\n src.forEach(deepMerger.bind(null, target, dst));\n } else {\n if (target && typeof target === 'object') {\n Object.keys(target).forEach(copyist.bind(null, target, dst));\n }\n Object.keys(src).forEach(copyistWithDeepMerge.bind(null, target, src, dst));\n }\n\n return dst;\n}\n\nmodule.exports.deepMerge = deepMerge;\n\n/**\n * Validates instance against the provided schema\n * Implements URI+JSON Pointer encoding, e.g. \"%7e\"=\"~0\"=>\"~\", \"~1\"=\"%2f\"=>\"/\"\n * @param o\n * @param s The path to walk o along\n * @return any\n */\nexports.objectGetPath = function objectGetPath(o, s) {\n var parts = s.split('/').slice(1);\n var k;\n while (typeof (k=parts.shift()) == 'string') {\n var n = decodeURIComponent(k.replace(/~0/,'~').replace(/~1/g,'/'));\n if (!(n in o)) return;\n o = o[n];\n }\n return o;\n};\n\nfunction pathEncoder (v) {\n return '/'+encodeURIComponent(v).replace(/~/g,'%7E');\n}\n/**\n * Accept an Array of property names and return a JSON Pointer URI fragment\n * @param Array a\n * @return {String}\n */\nexports.encodePath = function encodePointer(a){\n // ~ must be encoded explicitly because hacks\n // the slash is encoded by encodeURIComponent\n return a.map(pathEncoder).join('');\n};\n\n\n/**\n * Calculate the number of decimal places a number uses\n * We need this to get correct results out of multipleOf and divisibleBy\n * when either figure is has decimal places, due to IEEE-754 float issues.\n * @param number\n * @returns {number}\n */\nexports.getDecimalPlaces = function getDecimalPlaces(number) {\n\n var decimalPlaces = 0;\n if (isNaN(number)) return decimalPlaces;\n\n if (typeof number !== 'number') {\n number = Number(number);\n }\n\n var parts = number.toString().split('e');\n if (parts.length === 2) {\n if (parts[1][0] !== '-') {\n return decimalPlaces;\n } else {\n decimalPlaces = Number(parts[1].slice(1));\n }\n }\n\n var decimalParts = parts[0].split('.');\n if (decimalParts.length === 2) {\n decimalPlaces += decimalParts[1].length;\n }\n\n return decimalPlaces;\n};\n\nexports.isSchema = function isSchema(val){\n return (typeof val === 'object' && val) || (typeof val === 'boolean');\n};\n\n","'use strict';\n\nvar Validator = module.exports.Validator = require('./validator');\n\nmodule.exports.ValidatorResult = require('./helpers').ValidatorResult;\nmodule.exports.ValidatorResultError = require('./helpers').ValidatorResultError;\nmodule.exports.ValidationError = require('./helpers').ValidationError;\nmodule.exports.SchemaError = require('./helpers').SchemaError;\nmodule.exports.SchemaScanResult = require('./scan').SchemaScanResult;\nmodule.exports.scan = require('./scan').scan;\n\nmodule.exports.validate = function (instance, schema, options) {\n var v = new Validator();\n return v.validate(instance, schema, options);\n};\n","\"use strict\";\n\nvar urilib = require('url');\nvar helpers = require('./helpers');\n\nmodule.exports.SchemaScanResult = SchemaScanResult;\nfunction SchemaScanResult(found, ref){\n this.id = found;\n this.ref = ref;\n}\n\n/**\n * Adds a schema with a certain urn to the Validator instance.\n * @param string uri\n * @param object schema\n * @return {Object}\n */\nmodule.exports.scan = function scan(base, schema){\n function scanSchema(baseuri, schema){\n if(!schema || typeof schema!='object') return;\n // Mark all referenced schemas so we can tell later which schemas are referred to, but never defined\n if(schema.$ref){\n var resolvedUri = urilib.resolve(baseuri, schema.$ref);\n ref[resolvedUri] = ref[resolvedUri] ? ref[resolvedUri]+1 : 0;\n return;\n }\n var id = schema.$id || schema.id;\n var ourBase = id ? urilib.resolve(baseuri, id) : baseuri;\n if (ourBase) {\n // If there's no fragment, append an empty one\n if(ourBase.indexOf('#')<0) ourBase += '#';\n if(found[ourBase]){\n if(!helpers.deepCompareStrict(found[ourBase], schema)){\n throw new Error('Schema <'+ourBase+'> already exists with different definition');\n }\n return found[ourBase];\n }\n found[ourBase] = schema;\n // strip trailing fragment\n if(ourBase[ourBase.length-1]=='#'){\n found[ourBase.substring(0, ourBase.length-1)] = schema;\n }\n }\n scanArray(ourBase+'/items', (Array.isArray(schema.items)?schema.items:[schema.items]));\n scanArray(ourBase+'/extends', (Array.isArray(schema.extends)?schema.extends:[schema.extends]));\n scanSchema(ourBase+'/additionalItems', schema.additionalItems);\n scanObject(ourBase+'/properties', schema.properties);\n scanSchema(ourBase+'/additionalProperties', schema.additionalProperties);\n scanObject(ourBase+'/definitions', schema.definitions);\n scanObject(ourBase+'/patternProperties', schema.patternProperties);\n scanObject(ourBase+'/dependencies', schema.dependencies);\n scanArray(ourBase+'/disallow', schema.disallow);\n scanArray(ourBase+'/allOf', schema.allOf);\n scanArray(ourBase+'/anyOf', schema.anyOf);\n scanArray(ourBase+'/oneOf', schema.oneOf);\n scanSchema(ourBase+'/not', schema.not);\n }\n function scanArray(baseuri, schemas){\n if(!Array.isArray(schemas)) return;\n for(var i=0; i\", schema);\n }\n var subschema = helpers.objectGetPath(ctx.schemas[document], fragment.substr(1));\n if(subschema===undefined){\n throw new SchemaError(\"no such schema \" + fragment + \" located in <\" + document + \">\", schema);\n }\n return {subschema: subschema, switchSchema: switchSchema};\n};\n\n/**\n * Tests whether the instance if of a certain type.\n * @private\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @param type\n * @return {boolean}\n */\nValidator.prototype.testType = function validateType (instance, schema, options, ctx, type) {\n if(type===undefined){\n return;\n }else if(type===null){\n throw new SchemaError('Unexpected null in \"type\" keyword');\n }\n if (typeof this.types[type] == 'function') {\n return this.types[type].call(this, instance);\n }\n if (type && typeof type == 'object') {\n var res = this.validateSchema(instance, type, options, ctx);\n return res === undefined || !(res && res.errors.length);\n }\n // Undefined or properties not on the list are acceptable, same as not being defined\n return true;\n};\n\nvar types = Validator.prototype.types = {};\ntypes.string = function testString (instance) {\n return typeof instance == 'string';\n};\ntypes.number = function testNumber (instance) {\n // isFinite returns false for NaN, Infinity, and -Infinity\n return typeof instance == 'number' && isFinite(instance);\n};\ntypes.integer = function testInteger (instance) {\n return (typeof instance == 'number') && instance % 1 === 0;\n};\ntypes.boolean = function testBoolean (instance) {\n return typeof instance == 'boolean';\n};\ntypes.array = function testArray (instance) {\n return Array.isArray(instance);\n};\ntypes['null'] = function testNull (instance) {\n return instance === null;\n};\ntypes.date = function testDate (instance) {\n return instance instanceof Date;\n};\ntypes.any = function testAny (instance) {\n return true;\n};\ntypes.object = function testObject (instance) {\n // TODO: fix this - see #15\n return instance && (typeof instance === 'object') && !(Array.isArray(instance)) && !(instance instanceof Date);\n};\n\nmodule.exports = Validator;\n","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are prereleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If LT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fullDiff = fullDiff;\nexports.diffTemplate = diffTemplate;\nconst impl = require(\"./diff\");\nconst template_and_changeset_diff_merger_1 = require(\"./diff/template-and-changeset-diff-merger\");\nconst types = require(\"./diff/types\");\nconst util_1 = require(\"./diff/util\");\n__exportStar(require(\"./diff/types\"), exports);\nconst DIFF_HANDLERS = {\n AWSTemplateFormatVersion: (diff, oldValue, newValue) => diff.awsTemplateFormatVersion = impl.diffAttribute(oldValue, newValue),\n Description: (diff, oldValue, newValue) => diff.description = impl.diffAttribute(oldValue, newValue),\n Metadata: (diff, oldValue, newValue) => diff.metadata = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffMetadata)),\n Parameters: (diff, oldValue, newValue) => diff.parameters = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffParameter)),\n Mappings: (diff, oldValue, newValue) => diff.mappings = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffMapping)),\n Conditions: (diff, oldValue, newValue) => diff.conditions = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffCondition)),\n Transform: (diff, oldValue, newValue) => diff.transform = impl.diffAttribute(oldValue, newValue),\n Resources: (diff, oldValue, newValue) => diff.resources = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffResource)),\n Outputs: (diff, oldValue, newValue) => diff.outputs = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffOutput)),\n};\n/**\n * Compare two CloudFormation templates and return semantic differences between them.\n *\n * @param currentTemplate - the current state of the stack.\n * @param newTemplate - the target state of the stack.\n * @param changeSet - the change set for this stack.\n *\n * @returns a +types.TemplateDiff+ object that represents the changes that will happen if\n * a stack which current state is described by +currentTemplate+ is updated with\n * the template +newTemplate+.\n */\nfunction fullDiff(currentTemplate, newTemplate, changeSet, isImport) {\n normalize(currentTemplate);\n normalize(newTemplate);\n const theDiff = diffTemplate(currentTemplate, newTemplate);\n if (changeSet) {\n // These methods mutate the state of theDiff, using the changeSet.\n const changeSetDiff = new template_and_changeset_diff_merger_1.TemplateAndChangeSetDiffMerger({ changeSet });\n theDiff.resources.forEachDifference((logicalId, change) => changeSetDiff.overrideDiffResourceChangeImpactWithChangeSetChangeImpact(logicalId, change));\n changeSetDiff.addImportInformationFromChangeset(theDiff.resources);\n }\n else if (isImport) {\n makeAllResourceChangesImports(theDiff);\n }\n return theDiff;\n}\nfunction diffTemplate(currentTemplate, newTemplate) {\n // Base diff\n const theDiff = calculateTemplateDiff(currentTemplate, newTemplate);\n // We're going to modify this in-place\n const newTemplateCopy = deepCopy(newTemplate);\n let didPropagateReferenceChanges;\n let diffWithReplacements;\n do {\n diffWithReplacements = calculateTemplateDiff(currentTemplate, newTemplateCopy);\n // Propagate replacements for replaced resources\n didPropagateReferenceChanges = false;\n if (diffWithReplacements.resources) {\n diffWithReplacements.resources.forEachDifference((logicalId, change) => {\n if (change.changeImpact === types.ResourceImpact.WILL_REPLACE) {\n if (propagateReplacedReferences(newTemplateCopy, logicalId)) {\n didPropagateReferenceChanges = true;\n }\n }\n });\n }\n } while (didPropagateReferenceChanges);\n // Copy \"replaced\" states from `diffWithReplacements` to `theDiff`.\n diffWithReplacements.resources\n .filter(r => isReplacement(r.changeImpact))\n .forEachDifference((logicalId, downstreamReplacement) => {\n const resource = theDiff.resources.get(logicalId);\n if (resource.changeImpact !== downstreamReplacement.changeImpact) {\n propagatePropertyReplacement(downstreamReplacement, resource);\n }\n });\n return theDiff;\n}\nfunction isReplacement(impact) {\n return impact === types.ResourceImpact.MAY_REPLACE || impact === types.ResourceImpact.WILL_REPLACE;\n}\n/**\n * For all properties in 'source' that have a \"replacement\" impact, propagate that impact to \"dest\"\n */\nfunction propagatePropertyReplacement(source, dest) {\n for (const [propertyName, diff] of Object.entries(source.propertyUpdates)) {\n if (diff.changeImpact && isReplacement(diff.changeImpact)) {\n // Use the propertydiff of source in target. The result of this happens to be clear enough.\n dest.setPropertyChange(propertyName, diff);\n }\n }\n}\nfunction calculateTemplateDiff(currentTemplate, newTemplate) {\n const differences = {};\n const unknown = {};\n for (const key of (0, util_1.unionOf)(Object.keys(currentTemplate), Object.keys(newTemplate)).sort()) {\n const oldValue = currentTemplate[key];\n const newValue = newTemplate[key];\n if ((0, util_1.deepEqual)(oldValue, newValue)) {\n continue;\n }\n const handler = DIFF_HANDLERS[key]\n || ((_diff, oldV, newV) => unknown[key] = impl.diffUnknown(oldV, newV));\n handler(differences, oldValue, newValue);\n }\n if (Object.keys(unknown).length > 0) {\n differences.unknown = new types.DifferenceCollection(unknown);\n }\n return new types.TemplateDiff(differences);\n}\n/**\n * Replace all references to the given logicalID on the given template, in-place\n *\n * Returns true if any references were replaced.\n */\nfunction propagateReplacedReferences(template, logicalId) {\n let ret = false;\n function recurse(obj) {\n if (Array.isArray(obj)) {\n obj.forEach(recurse);\n }\n if (typeof obj === 'object' && obj !== null) {\n if (!replaceReference(obj)) {\n Object.values(obj).forEach(recurse);\n }\n }\n }\n function replaceReference(obj) {\n const keys = Object.keys(obj);\n if (keys.length !== 1) {\n return false;\n }\n const key = keys[0];\n if (key === 'Ref') {\n if (obj.Ref === logicalId) {\n obj.Ref = logicalId + ' (replaced)';\n ret = true;\n }\n return true;\n }\n if (key.startsWith('Fn::')) {\n if (Array.isArray(obj[key]) && obj[key].length > 0 && obj[key][0] === logicalId) {\n obj[key][0] = logicalId + '(replaced)';\n ret = true;\n }\n return true;\n }\n return false;\n }\n recurse(template);\n return ret;\n}\nfunction deepCopy(x) {\n if (Array.isArray(x)) {\n return x.map(deepCopy);\n }\n if (typeof x === 'object' && x !== null) {\n const ret = {};\n for (const key of Object.keys(x)) {\n ret[key] = deepCopy(x[key]);\n }\n return ret;\n }\n return x;\n}\nfunction makeAllResourceChangesImports(diff) {\n diff.resources.forEachDifference((_logicalId, change) => {\n change.isImport = true;\n });\n}\nfunction normalize(template) {\n if (typeof template === 'object') {\n for (const key of (Object.keys(template ?? {}))) {\n if (key === 'Fn::GetAtt' && typeof template[key] === 'string') {\n template[key] = template[key].split('.');\n continue;\n }\n else if (key === 'DependsOn') {\n if (typeof template[key] === 'string') {\n template[key] = [template[key]];\n }\n else if (Array.isArray(template[key])) {\n template[key] = template[key].sort();\n }\n continue;\n }\n if (Array.isArray(template[key])) {\n for (const element of (template[key])) {\n normalize(element);\n }\n }\n else {\n normalize(template[key]);\n }\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYtdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSw0QkFxQkM7QUFFRCxvQ0F3Q0M7QUEzR0QsK0JBQStCO0FBQy9CLGtHQUEyRjtBQUMzRixzQ0FBc0M7QUFDdEMsc0NBQW9FO0FBRXBFLCtDQUE2QjtBQU83QixNQUFNLGFBQWEsR0FBb0I7SUFDckMsd0JBQXdCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3JELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDeEUsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUMzRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBQSx3QkFBaUIsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBQSx3QkFBaUIsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3JDLElBQUksQ0FBQyxR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SSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3RDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBTREsgaXMgb25seSB1c2VkIHRvIHJlZmVyZW5jZSBgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXRgLCBzbyB0aGUgU0RLIGlzIGFkZGVkIGFzIGEgZGV2RGVwZW5kZW5jeS5cbi8vIFRoZSBTREsgc2hvdWxkIG5vdCBtYWtlIG5ldHdvcmsgY2FsbHMgaGVyZVxuaW1wb3J0IHR5cGUgeyBEZXNjcmliZUNoYW5nZVNldE91dHB1dCBhcyBEZXNjcmliZUNoYW5nZVNldCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBpbXBsIGZyb20gJy4vZGlmZic7XG5pbXBvcnQgeyBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIgfSBmcm9tICcuL2RpZmYvdGVtcGxhdGUtYW5kLWNoYW5nZXNldC1kaWZmLW1lcmdlcic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL2RpZmYvdHlwZXMnO1xuaW1wb3J0IHsgZGVlcEVxdWFsLCBkaWZmS2V5ZWRFbnRpdGllcywgdW5pb25PZiB9IGZyb20gJy4vZGlmZi91dGlsJztcblxuZXhwb3J0ICogZnJvbSAnLi9kaWZmL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgPSBEZXNjcmliZUNoYW5nZVNldDtcblxudHlwZSBEaWZmSGFuZGxlciA9IChkaWZmOiB0eXBlcy5JVGVtcGxhdGVEaWZmLCBvbGRWYWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KSA9PiB2b2lkO1xudHlwZSBIYW5kbGVyUmVnaXN0cnkgPSB7IFtzZWN0aW9uOiBzdHJpbmddOiBEaWZmSGFuZGxlciB9O1xuXG5jb25zdCBESUZGX0hBTkRMRVJTOiBIYW5kbGVyUmVnaXN0cnkgPSB7XG4gIEFXU1RlbXBsYXRlRm9ybWF0VmVyc2lvbjogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLmF3c1RlbXBsYXRlRm9ybWF0VmVyc2lvbiA9IGltcGwuZGlmZkF0dHJpYnV0ZShvbGRWYWx1ZSwgbmV3VmFsdWUpLFxuICBEZXNjcmlwdGlvbjogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLmRlc2NyaXB0aW9uID0gaW1wbC5kaWZmQXR0cmlidXRlKG9sZFZhbHVlLCBuZXdWYWx1ZSksXG4gIE1ldGFkYXRhOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYubWV0YWRhdGEgPSBuZXcgdHlwZXMuRGlmZmVyZW5jZUNvbGxlY3Rpb24oZGlmZktleWVkRW50aXRpZXMob2xkVmFsdWUsIG5ld1ZhbHVlLCBpbXBsLmRpZmZNZXRhZGF0YSkpLFxuICBQYXJhbWV0ZXJzOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYucGFyYW1ldGVycyA9IG5ldyB0eXBlcy5EaWZmZXJlbmNlQ29sbGVjdGlvbihkaWZmS2V5ZWRFbnRpdGllcyhvbGRWYWx1ZSwgbmV3VmFsdWUsIGltcGwuZGlmZlBhcmFtZXRlcikpLFxuICBNYXBwaW5nczogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLm1hcHBpbmdzID0gbmV3IHR5cGVzLkRpZmZlcmVuY2VDb2xsZWN0aW9uKGRpZmZLZXllZEVudGl0aWVzKG9sZFZhbHVlLCBuZXdWYWx1ZSwgaW1wbC5kaWZmTWFwcGluZykpLFxuICBDb25kaXRpb25zOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYuY29uZGl0aW9ucyA9IG5ldyB0eXBlcy5EaWZmZXJlbmNlQ29sbGVjdGlvbihkaWZmS2V5ZWRFbnRpdGllcyhvbGRWYWx1ZSwgbmV3VmFsdWUsIGltcGwuZGlmZkNvbmRpdGlvbikpLFxuICBUcmFuc2Zvcm06IChkaWZmLCBvbGRWYWx1ZSwgbmV3VmFsdWUpID0+XG4gICAgZGlmZi50cmFuc2Zvcm0gPSBpbXBsLmRpZmZBdHRyaWJ1dGUob2xkVmFsdWUsIG5ld1ZhbHVlKSxcbiAgUmVzb3VyY2VzOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYucmVzb3VyY2VzID0gbmV3IHR5cGVzLkRpZmZlcmVuY2VDb2xsZWN0aW9uKGRpZmZLZXllZEVudGl0aWVzKG9sZFZhbHVlLCBuZXdWYWx1ZSwgaW1wbC5kaWZmUmVzb3VyY2UpKSxcbiAgT3V0cHV0czogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLm91dHB1dHMgPSBuZXcgdHlwZXMuRGlmZmVyZW5jZUNvbGxlY3Rpb24oZGlmZktleWVkRW50aXRpZXMob2xkVmFsdWUsIG5ld1ZhbHVlLCBpbXBsLmRpZmZPdXRwdXQpKSxcbn07XG5cbi8qKlxuICogQ29tcGFyZSB0d28gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVzIGFuZCByZXR1cm4gc2VtYW50aWMgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVtLlxuICpcbiAqIEBwYXJhbSBjdXJyZW50VGVtcGxhdGUgLSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gbmV3VGVtcGxhdGUgICAgIC0gdGhlIHRhcmdldCBzdGF0ZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gY2hhbmdlU2V0ICAgICAgIC0gdGhlIGNoYW5nZSBzZXQgZm9yIHRoaXMgc3RhY2suXG4gKlxuICogQHJldHVybnMgYSArdHlwZXMuVGVtcGxhdGVEaWZmKyBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBjaGFuZ2VzIHRoYXQgd2lsbCBoYXBwZW4gaWZcbiAqICAgICAgYSBzdGFjayB3aGljaCBjdXJyZW50IHN0YXRlIGlzIGRlc2NyaWJlZCBieSArY3VycmVudFRlbXBsYXRlKyBpcyB1cGRhdGVkIHdpdGhcbiAqICAgICAgdGhlIHRlbXBsYXRlICtuZXdUZW1wbGF0ZSsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmdWxsRGlmZihcbiAgY3VycmVudFRlbXBsYXRlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICBuZXdUZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQsXG4gIGlzSW1wb3J0PzogYm9vbGVhbixcbik6IHR5cGVzLlRlbXBsYXRlRGlmZiB7XG4gIG5vcm1hbGl6ZShjdXJyZW50VGVtcGxhdGUpO1xuICBub3JtYWxpemUobmV3VGVtcGxhdGUpO1xuICBjb25zdCB0aGVEaWZmID0gZGlmZlRlbXBsYXRlKGN1cnJlbnRUZW1wbGF0ZSwgbmV3VGVtcGxhdGUpO1xuICBpZiAoY2hhbmdlU2V0KSB7XG4gICAgLy8gVGhlc2UgbWV0aG9kcyBtdXRhdGUgdGhlIHN0YXRlIG9mIHRoZURpZmYsIHVzaW5nIHRoZSBjaGFuZ2VTZXQuXG4gICAgY29uc3QgY2hhbmdlU2V0RGlmZiA9IG5ldyBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIoeyBjaGFuZ2VTZXQgfSk7XG4gICAgdGhlRGlmZi5yZXNvdXJjZXMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZSkgPT5cbiAgICAgIGNoYW5nZVNldERpZmYub3ZlcnJpZGVEaWZmUmVzb3VyY2VDaGFuZ2VJbXBhY3RXaXRoQ2hhbmdlU2V0Q2hhbmdlSW1wYWN0KGxvZ2ljYWxJZCwgY2hhbmdlKSxcbiAgICApO1xuICAgIGNoYW5nZVNldERpZmYuYWRkSW1wb3J0SW5mb3JtYXRpb25Gcm9tQ2hhbmdlc2V0KHRoZURpZmYucmVzb3VyY2VzKTtcbiAgfSBlbHNlIGlmIChpc0ltcG9ydCkge1xuICAgIG1ha2VBbGxSZXNvdXJjZUNoYW5nZXNJbXBvcnRzKHRoZURpZmYpO1xuICB9XG5cbiAgcmV0dXJuIHRoZURpZmY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVGVtcGxhdGUoXG4gIGN1cnJlbnRUZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgbmV3VGVtcGxhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4pOiB0eXBlcy5UZW1wbGF0ZURpZmYge1xuICAvLyBCYXNlIGRpZmZcbiAgY29uc3QgdGhlRGlmZiA9IGNhbGN1bGF0ZVRlbXBsYXRlRGlmZihjdXJyZW50VGVtcGxhdGUsIG5ld1RlbXBsYXRlKTtcblxuICAvLyBXZSdyZSBnb2luZyB0byBtb2RpZnkgdGhpcyBpbi1wbGFjZVxuICBjb25zdCBuZXdUZW1wbGF0ZUNvcHkgPSBkZWVwQ29weShuZXdUZW1wbGF0ZSk7XG5cbiAgbGV0IGRpZFByb3BhZ2F0ZVJlZmVyZW5jZUNoYW5nZXM7XG4gIGxldCBkaWZmV2l0aFJlcGxhY2VtZW50cztcbiAgZG8ge1xuICAgIGRpZmZXaXRoUmVwbGFjZW1lbnRzID0gY2FsY3VsYXRlVGVtcGxhdGVEaWZmKGN1cnJlbnRUZW1wbGF0ZSwgbmV3VGVtcGxhdGVDb3B5KTtcblxuICAgIC8vIFByb3BhZ2F0ZSByZXBsYWNlbWVudHMgZm9yIHJlcGxhY2VkIHJlc291cmNlc1xuICAgIGRpZFByb3BhZ2F0ZVJlZmVyZW5jZUNoYW5nZXMgPSBmYWxzZTtcbiAgICBpZiAoZGlmZldpdGhSZXBsYWNlbWVudHMucmVzb3VyY2VzKSB7XG4gICAgICBkaWZmV2l0aFJlcGxhY2VtZW50cy5yZXNvdXJjZXMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZCwgY2hhbmdlKSA9PiB7XG4gICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlSW1wYWN0ID09PSB0eXBlcy5SZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0UpIHtcbiAgICAgICAgICBpZiAocHJvcGFnYXRlUmVwbGFjZWRSZWZlcmVuY2VzKG5ld1RlbXBsYXRlQ29weSwgbG9naWNhbElkKSkge1xuICAgICAgICAgICAgZGlkUHJvcGFnYXRlUmVmZXJlbmNlQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0gd2hpbGUgKGRpZFByb3BhZ2F0ZVJlZmVyZW5jZUNoYW5nZXMpO1xuXG4gIC8vIENvcHkgXCJyZXBsYWNlZFwiIHN0YXRlcyBmcm9tIGBkaWZmV2l0aFJlcGxhY2VtZW50c2AgdG8gYHRoZURpZmZgLlxuICBkaWZmV2l0aFJlcGxhY2VtZW50cy5yZXNvdXJjZXNcbiAgICAuZmlsdGVyKHIgPT4gaXNSZXBsYWNlbWVudChyIS5jaGFuZ2VJbXBhY3QpKVxuICAgIC5mb3JFYWNoRGlmZmVyZW5jZSgobG9naWNhbElkLCBkb3duc3RyZWFtUmVwbGFjZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gdGhlRGlmZi5yZXNvdXJjZXMuZ2V0KGxvZ2ljYWxJZCk7XG5cbiAgICAgIGlmIChyZXNvdXJjZS5jaGFuZ2VJbXBhY3QgIT09IGRvd25zdHJlYW1SZXBsYWNlbWVudC5jaGFuZ2VJbXBhY3QpIHtcbiAgICAgICAgcHJvcGFnYXRlUHJvcGVydHlSZXBsYWNlbWVudChkb3duc3RyZWFtUmVwbGFjZW1lbnQsIHJlc291cmNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICByZXR1cm4gdGhlRGlmZjtcbn1cblxuZnVuY3Rpb24gaXNSZXBsYWNlbWVudChpbXBhY3Q6IHR5cGVzLlJlc291cmNlSW1wYWN0KSB7XG4gIHJldHVybiBpbXBhY3QgPT09IHR5cGVzLlJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFIHx8IGltcGFjdCA9PT0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFO1xufVxuXG4vKipcbiAqIEZvciBhbGwgcHJvcGVydGllcyBpbiAnc291cmNlJyB0aGF0IGhhdmUgYSBcInJlcGxhY2VtZW50XCIgaW1wYWN0LCBwcm9wYWdhdGUgdGhhdCBpbXBhY3QgdG8gXCJkZXN0XCJcbiAqL1xuZnVuY3Rpb24gcHJvcGFnYXRlUHJvcGVydHlSZXBsYWNlbWVudChzb3VyY2U6IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZSwgZGVzdDogdHlwZXMuUmVzb3VyY2VEaWZmZXJlbmNlKSB7XG4gIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgZGlmZl0gb2YgT2JqZWN0LmVudHJpZXMoc291cmNlLnByb3BlcnR5VXBkYXRlcykpIHtcbiAgICBpZiAoZGlmZi5jaGFuZ2VJbXBhY3QgJiYgaXNSZXBsYWNlbWVudChkaWZmLmNoYW5nZUltcGFjdCkpIHtcbiAgICAgIC8vIFVzZSB0aGUgcHJvcGVydHlkaWZmIG9mIHNvdXJjZSBpbiB0YXJnZXQuIFRoZSByZXN1bHQgb2YgdGhpcyBoYXBwZW5zIHRvIGJlIGNsZWFyIGVub3VnaC5cbiAgICAgIGRlc3Quc2V0UHJvcGVydHlDaGFuZ2UocHJvcGVydHlOYW1lLCBkaWZmKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlVGVtcGxhdGVEaWZmKGN1cnJlbnRUZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgbmV3VGVtcGxhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB0eXBlcy5UZW1wbGF0ZURpZmYge1xuICBjb25zdCBkaWZmZXJlbmNlczogdHlwZXMuSVRlbXBsYXRlRGlmZiA9IHt9O1xuICBjb25zdCB1bmtub3duOiB7IFtrZXk6IHN0cmluZ106IHR5cGVzLkRpZmZlcmVuY2U8YW55PiB9ID0ge307XG4gIGZvciAoY29uc3Qga2V5IG9mIHVuaW9uT2YoT2JqZWN0LmtleXMoY3VycmVudFRlbXBsYXRlKSwgT2JqZWN0LmtleXMobmV3VGVtcGxhdGUpKS5zb3J0KCkpIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IGN1cnJlbnRUZW1wbGF0ZVtrZXldO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gbmV3VGVtcGxhdGVba2V5XTtcbiAgICBpZiAoZGVlcEVxdWFsKG9sZFZhbHVlLCBuZXdWYWx1ZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBoYW5kbGVyOiBEaWZmSGFuZGxlciA9IERJRkZfSEFORExFUlNba2V5XVxuICAgICAgICAgICAgICAgICAgfHwgKChfZGlmZiwgb2xkViwgbmV3VikgPT4gdW5rbm93bltrZXldID0gaW1wbC5kaWZmVW5rbm93bihvbGRWLCBuZXdWKSk7XG4gICAgaGFuZGxlcihkaWZmZXJlbmNlcywgb2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgfVxuICBpZiAoT2JqZWN0LmtleXModW5rbm93bikubGVuZ3RoID4gMCkge1xuICAgIGRpZmZlcmVuY2VzLnVua25vd24gPSBuZXcgdHlwZXMuRGlmZmVyZW5jZUNvbGxlY3Rpb24odW5rbm93bik7XG4gIH1cblxuICByZXR1cm4gbmV3IHR5cGVzLlRlbXBsYXRlRGlmZihkaWZmZXJlbmNlcyk7XG59XG5cbi8qKlxuICogUmVwbGFjZSBhbGwgcmVmZXJlbmNlcyB0byB0aGUgZ2l2ZW4gbG9naWNhbElEIG9uIHRoZSBnaXZlbiB0ZW1wbGF0ZSwgaW4tcGxhY2VcbiAqXG4gKiBSZXR1cm5zIHRydWUgaWYgYW55IHJlZmVyZW5jZXMgd2VyZSByZXBsYWNlZC5cbiAqL1xuZnVuY3Rpb24gcHJvcGFnYXRlUmVwbGFjZWRSZWZlcmVuY2VzKHRlbXBsYXRlOiBvYmplY3QsIGxvZ2ljYWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGxldCByZXQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiByZWN1cnNlKG9iajogYW55KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgb2JqLmZvckVhY2gocmVjdXJzZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xuICAgICAgaWYgKCFyZXBsYWNlUmVmZXJlbmNlKG9iaikpIHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhvYmopLmZvckVhY2gocmVjdXJzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVwbGFjZVJlZmVyZW5jZShvYmo6IGFueSkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBrZXlzWzBdO1xuXG4gICAgaWYgKGtleSA9PT0gJ1JlZicpIHtcbiAgICAgIGlmIChvYmouUmVmID09PSBsb2dpY2FsSWQpIHtcbiAgICAgICAgb2JqLlJlZiA9IGxvZ2ljYWxJZCArICcgKHJlcGxhY2VkKSc7XG4gICAgICAgIHJldCA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0ZuOjonKSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqW2tleV0pICYmIG9ialtrZXldLmxlbmd0aCA+IDAgJiYgb2JqW2tleV1bMF0gPT09IGxvZ2ljYWxJZCkge1xuICAgICAgICBvYmpba2V5XVswXSA9IGxvZ2ljYWxJZCArICcocmVwbGFjZWQpJztcbiAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJlY3Vyc2UodGVtcGxhdGUpO1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBkZWVwQ29weSh4OiBhbnkpOiBhbnkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lm1hcChkZWVwQ29weSk7XG4gIH1cblxuICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnICYmIHggIT09IG51bGwpIHtcbiAgICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHgpKSB7XG4gICAgICByZXRba2V5XSA9IGRlZXBDb3B5KHhba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXR1cm4geDtcbn1cblxuZnVuY3Rpb24gbWFrZUFsbFJlc291cmNlQ2hhbmdlc0ltcG9ydHMoZGlmZjogdHlwZXMuVGVtcGxhdGVEaWZmKSB7XG4gIGRpZmYucmVzb3VyY2VzLmZvckVhY2hEaWZmZXJlbmNlKChfbG9naWNhbElkOiBzdHJpbmcsIGNoYW5nZTogdHlwZXMuUmVzb3VyY2VEaWZmZXJlbmNlKSA9PiB7XG4gICAgY2hhbmdlLmlzSW1wb3J0ID0gdHJ1ZTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZSh0ZW1wbGF0ZTogYW55KSB7XG4gIGlmICh0eXBlb2YgdGVtcGxhdGUgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgKE9iamVjdC5rZXlzKHRlbXBsYXRlID8/IHt9KSkpIHtcbiAgICAgIGlmIChrZXkgPT09ICdGbjo6R2V0QXR0JyAmJiB0eXBlb2YgdGVtcGxhdGVba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGVtcGxhdGVba2V5XSA9IHRlbXBsYXRlW2tleV0uc3BsaXQoJy4nKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0RlcGVuZHNPbicpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0ZW1wbGF0ZVtrZXldID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRlbXBsYXRlW2tleV0gPSBbdGVtcGxhdGVba2V5XV07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0ZW1wbGF0ZVtrZXldKSkge1xuICAgICAgICAgIHRlbXBsYXRlW2tleV0gPSB0ZW1wbGF0ZVtrZXldLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGVtcGxhdGVba2V5XSkpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mICh0ZW1wbGF0ZVtrZXldKSkge1xuICAgICAgICAgIG5vcm1hbGl6ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9ybWFsaXplKHRlbXBsYXRlW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diffAttribute = diffAttribute;\nexports.diffCondition = diffCondition;\nexports.diffMapping = diffMapping;\nexports.diffMetadata = diffMetadata;\nexports.diffOutput = diffOutput;\nexports.diffParameter = diffParameter;\nexports.diffResource = diffResource;\nexports.diffUnknown = diffUnknown;\nconst types = require(\"./types\");\nconst util_1 = require(\"./util\");\nfunction diffAttribute(oldValue, newValue) {\n return new types.Difference(_asString(oldValue), _asString(newValue));\n}\nfunction diffCondition(oldValue, newValue) {\n return new types.ConditionDifference(oldValue, newValue);\n}\nfunction diffMapping(oldValue, newValue) {\n return new types.MappingDifference(oldValue, newValue);\n}\nfunction diffMetadata(oldValue, newValue) {\n return new types.MetadataDifference(oldValue, newValue);\n}\nfunction diffOutput(oldValue, newValue) {\n return new types.OutputDifference(oldValue, newValue);\n}\nfunction diffParameter(oldValue, newValue) {\n return new types.ParameterDifference(oldValue, newValue);\n}\nfunction diffResource(oldValue, newValue, logicalId) {\n // Fn::ForEach entries are arrays, not standard {Type, Properties} resource objects.\n // Synthesize a virtual resource type so isDifferent works correctly.\n if (logicalId && logicalId.startsWith('Fn::ForEach::')) {\n const forEachType = 'Fn::ForEach';\n return new types.ResourceDifference(oldValue, newValue, {\n resourceType: { oldType: oldValue ? forEachType : undefined, newType: newValue ? forEachType : undefined },\n propertyDiffs: {},\n otherDiffs: !(0, util_1.deepEqual)(oldValue, newValue) ? { Value: new types.Difference(oldValue, newValue) } : {},\n });\n }\n const resourceType = {\n oldType: oldValue && oldValue.Type,\n newType: newValue && newValue.Type,\n };\n let propertyDiffs = {};\n let otherDiffs = {};\n if (resourceType.oldType !== undefined && resourceType.oldType === resourceType.newType) {\n // Only makes sense to inspect deeper if the types stayed the same\n const impl = (0, util_1.loadResourceModel)(resourceType.oldType);\n propertyDiffs = (0, util_1.diffKeyedEntities)(oldValue.Properties, newValue.Properties, (oldVal, newVal, key) => _diffProperty(oldVal, newVal, key, impl));\n otherDiffs = (0, util_1.diffKeyedEntities)(oldValue, newValue, _diffOther);\n delete otherDiffs.Properties;\n }\n return new types.ResourceDifference(oldValue, newValue, {\n resourceType, propertyDiffs, otherDiffs,\n });\n function _diffProperty(oldV, newV, key, resourceSpec) {\n let changeImpact = types.ResourceImpact.NO_CHANGE;\n const spec = resourceSpec?.properties?.[key];\n if (spec && !(0, util_1.deepEqual)(oldV, newV)) {\n switch (spec.causesReplacement) {\n case 'yes':\n changeImpact = types.ResourceImpact.WILL_REPLACE;\n break;\n case 'maybe':\n changeImpact = types.ResourceImpact.MAY_REPLACE;\n break;\n default:\n // In those cases, whatever is the current value is what we should keep\n changeImpact = types.ResourceImpact.WILL_UPDATE;\n }\n }\n return new types.PropertyDifference(oldV, newV, { changeImpact });\n }\n function _diffOther(oldV, newV) {\n return new types.Difference(oldV, newV);\n }\n}\nfunction diffUnknown(oldValue, newValue) {\n return new types.Difference(oldValue, newValue);\n}\n/**\n * Coerces a given value to +string | undefined+.\n *\n * @param value - the value to be coerced.\n *\n * @returns +undefined+ if +value+ is +null+ or +undefined+,\n * +value+ if it is a +string+,\n * a compact JSON representation of +value+ otherwise.\n */\nfunction _asString(value) {\n if (value == null) {\n return undefined;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNDQUVDO0FBRUQsc0NBRUM7QUFFRCxrQ0FFQztBQUVELG9DQUVDO0FBRUQsZ0NBRUM7QUFFRCxzQ0FFQztBQUVELG9DQTBEQztBQUVELGtDQUVDO0FBekZELGlDQUFpQztBQUNqQyxpQ0FBeUU7QUFFekUsU0FBZ0IsYUFBYSxDQUFDLFFBQWEsRUFBRSxRQUFhO0lBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFTLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLFFBQXlCLEVBQUUsUUFBeUI7SUFDaEYsT0FBTyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxRQUF1QixFQUFFLFFBQXVCO0lBQzFFLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsUUFBd0IsRUFBRSxRQUF3QjtJQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLFFBQXNCLEVBQUUsUUFBc0I7SUFDdkUsT0FBTyxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxRQUF5QixFQUFFLFFBQXlCO0lBQ2hGLE9BQU8sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FB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QUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLFFBQWEsRUFBRSxRQUFhO0lBQ3RELE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxLQUFVO0lBQzNCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzb3VyY2UgfSBmcm9tICdAYXdzLWNkay9zZXJ2aWNlLXNwZWMtdHlwZXMnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBkZWVwRXF1YWwsIGRpZmZLZXllZEVudGl0aWVzLCBsb2FkUmVzb3VyY2VNb2RlbCB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmQXR0cmlidXRlKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpOiB0eXBlcy5EaWZmZXJlbmNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IHR5cGVzLkRpZmZlcmVuY2U8c3RyaW5nPihfYXNTdHJpbmcob2xkVmFsdWUpLCBfYXNTdHJpbmcobmV3VmFsdWUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDb25kaXRpb24ob2xkVmFsdWU6IHR5cGVzLkNvbmRpdGlvbiwgbmV3VmFsdWU6IHR5cGVzLkNvbmRpdGlvbik6IHR5cGVzLkNvbmRpdGlvbkRpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IHR5cGVzLkNvbmRpdGlvbkRpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZNYXBwaW5nKG9sZFZhbHVlOiB0eXBlcy5NYXBwaW5nLCBuZXdWYWx1ZTogdHlwZXMuTWFwcGluZyk6IHR5cGVzLk1hcHBpbmdEaWZmZXJlbmNlIHtcbiAgcmV0dXJuIG5ldyB0eXBlcy5NYXBwaW5nRGlmZmVyZW5jZShvbGRWYWx1ZSwgbmV3VmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlmZk1ldGFkYXRhKG9sZFZhbHVlOiB0eXBlcy5NZXRhZGF0YSwgbmV3VmFsdWU6IHR5cGVzLk1ldGFkYXRhKTogdHlwZXMuTWV0YWRhdGFEaWZmZXJlbmNlIHtcbiAgcmV0dXJuIG5ldyB0eXBlcy5NZXRhZGF0YURpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZPdXRwdXQob2xkVmFsdWU6IHR5cGVzLk91dHB1dCwgbmV3VmFsdWU6IHR5cGVzLk91dHB1dCk6IHR5cGVzLk91dHB1dERpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IHR5cGVzLk91dHB1dERpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZQYXJhbWV0ZXIob2xkVmFsdWU6IHR5cGVzLlBhcmFtZXRlciwgbmV3VmFsdWU6IHR5cGVzLlBhcmFtZXRlcik6IHR5cGVzLlBhcmFtZXRlckRpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IHR5cGVzLlBhcmFtZXRlckRpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZSZXNvdXJjZShvbGRWYWx1ZT86IHR5cGVzLlJlc291cmNlLCBuZXdWYWx1ZT86IHR5cGVzLlJlc291cmNlLCBsb2dpY2FsSWQ/OiBzdHJpbmcpOiB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2Uge1xuICAvLyBGbjo6Rm9yRWFjaCBlbnRyaWVzIGFyZSBhcnJheXMsIG5vdCBzdGFuZGFyZCB7VHlwZSwgUHJvcGVydGllc30gcmVzb3VyY2Ugb2JqZWN0cy5cbiAgLy8gU3ludGhlc2l6ZSBhIHZpcnR1YWwgcmVzb3VyY2UgdHlwZSBzbyBpc0RpZmZlcmVudCB3b3JrcyBjb3JyZWN0bHkuXG4gIGlmIChsb2dpY2FsSWQgJiYgbG9naWNhbElkLnN0YXJ0c1dpdGgoJ0ZuOjpGb3JFYWNoOjonKSkge1xuICAgIGNvbnN0IGZvckVhY2hUeXBlID0gJ0ZuOjpGb3JFYWNoJztcbiAgICByZXR1cm4gbmV3IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZShvbGRWYWx1ZSwgbmV3VmFsdWUsIHtcbiAgICAgIHJlc291cmNlVHlwZTogeyBvbGRUeXBlOiBvbGRWYWx1ZSA/IGZvckVhY2hUeXBlIDogdW5kZWZpbmVkLCBuZXdUeXBlOiBuZXdWYWx1ZSA/IGZvckVhY2hUeXBlIDogdW5kZWZpbmVkIH0sXG4gICAgICBwcm9wZXJ0eURpZmZzOiB7fSxcbiAgICAgIG90aGVyRGlmZnM6ICFkZWVwRXF1YWwob2xkVmFsdWUsIG5ld1ZhbHVlKSA/IHsgVmFsdWU6IG5ldyB0eXBlcy5EaWZmZXJlbmNlKG9sZFZhbHVlLCBuZXdWYWx1ZSkgfSA6IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VUeXBlID0ge1xuICAgIG9sZFR5cGU6IG9sZFZhbHVlICYmIG9sZFZhbHVlLlR5cGUsXG4gICAgbmV3VHlwZTogbmV3VmFsdWUgJiYgbmV3VmFsdWUuVHlwZSxcbiAgfTtcbiAgbGV0IHByb3BlcnR5RGlmZnM6IHsgW2tleTogc3RyaW5nXTogdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfSA9IHt9O1xuICBsZXQgb3RoZXJEaWZmczogeyBba2V5OiBzdHJpbmddOiB0eXBlcy5EaWZmZXJlbmNlPGFueT4gfSA9IHt9O1xuXG4gIGlmIChyZXNvdXJjZVR5cGUub2xkVHlwZSAhPT0gdW5kZWZpbmVkICYmIHJlc291cmNlVHlwZS5vbGRUeXBlID09PSByZXNvdXJjZVR5cGUubmV3VHlwZSkge1xuICAgIC8vIE9ubHkgbWFrZXMgc2Vuc2UgdG8gaW5zcGVjdCBkZWVwZXIgaWYgdGhlIHR5cGVzIHN0YXllZCB0aGUgc2FtZVxuICAgIGNvbnN0IGltcGwgPSBsb2FkUmVzb3VyY2VNb2RlbChyZXNvdXJjZVR5cGUub2xkVHlwZSk7XG4gICAgcHJvcGVydHlEaWZmcyA9IGRpZmZLZXllZEVudGl0aWVzKG9sZFZhbHVlIS5Qcm9wZXJ0aWVzLFxuICAgICAgbmV3VmFsdWUhLlByb3BlcnRpZXMsXG4gICAgICAob2xkVmFsLCBuZXdWYWwsIGtleSkgPT4gX2RpZmZQcm9wZXJ0eShvbGRWYWwsIG5ld1ZhbCwga2V5LCBpbXBsKSk7XG5cbiAgICBvdGhlckRpZmZzID0gZGlmZktleWVkRW50aXRpZXMob2xkVmFsdWUsIG5ld1ZhbHVlLCBfZGlmZk90aGVyKTtcbiAgICBkZWxldGUgb3RoZXJEaWZmcy5Qcm9wZXJ0aWVzO1xuICB9XG5cbiAgcmV0dXJuIG5ldyB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlLCB7XG4gICAgcmVzb3VyY2VUeXBlLCBwcm9wZXJ0eURpZmZzLCBvdGhlckRpZmZzLFxuICB9KTtcblxuICBmdW5jdGlvbiBfZGlmZlByb3BlcnR5KG9sZFY6IGFueSwgbmV3VjogYW55LCBrZXk6IHN0cmluZywgcmVzb3VyY2VTcGVjPzogUmVzb3VyY2UpIHtcbiAgICBsZXQgY2hhbmdlSW1wYWN0ID0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuTk9fQ0hBTkdFO1xuXG4gICAgY29uc3Qgc3BlYyA9IHJlc291cmNlU3BlYz8ucHJvcGVydGllcz8uW2tleV07XG4gICAgaWYgKHNwZWMgJiYgIWRlZXBFcXVhbChvbGRWLCBuZXdWKSkge1xuICAgICAgc3dpdGNoIChzcGVjLmNhdXNlc1JlcGxhY2VtZW50KSB7XG4gICAgICAgIGNhc2UgJ3llcyc6XG4gICAgICAgICAgY2hhbmdlSW1wYWN0ID0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtYXliZSc6XG4gICAgICAgICAgY2hhbmdlSW1wYWN0ID0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuTUFZX1JFUExBQ0U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHdoYXRldmVyIGlzIHRoZSBjdXJyZW50IHZhbHVlIGlzIHdoYXQgd2Ugc2hvdWxkIGtlZXBcbiAgICAgICAgICBjaGFuZ2VJbXBhY3QgPSB0eXBlcy5SZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IHR5cGVzLlByb3BlcnR5RGlmZmVyZW5jZShvbGRWLCBuZXdWLCB7IGNoYW5nZUltcGFjdCB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9kaWZmT3RoZXIob2xkVjogYW55LCBuZXdWOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IHR5cGVzLkRpZmZlcmVuY2Uob2xkViwgbmV3Vik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZVbmtub3duKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpOiB0eXBlcy5EaWZmZXJlbmNlPGFueT4ge1xuICByZXR1cm4gbmV3IHR5cGVzLkRpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuLyoqXG4gKiBDb2VyY2VzIGEgZ2l2ZW4gdmFsdWUgdG8gK3N0cmluZyB8IHVuZGVmaW5lZCsuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gdGhlIHZhbHVlIHRvIGJlIGNvZXJjZWQuXG4gKlxuICogQHJldHVybnMgK3VuZGVmaW5lZCsgaWYgK3ZhbHVlKyBpcyArbnVsbCsgb3IgK3VuZGVmaW5lZCssXG4gKiAgICAgICt2YWx1ZSsgaWYgaXQgaXMgYSArc3RyaW5nKyxcbiAqICAgICAgYSBjb21wYWN0IEpTT04gcmVwcmVzZW50YXRpb24gb2YgK3ZhbHVlKyBvdGhlcndpc2UuXG4gKi9cbmZ1bmN0aW9uIF9hc1N0cmluZyh2YWx1ZTogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIHN0cmluZztcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mkParsed = mkParsed;\nexports.mkUnparseable = mkUnparseable;\nfunction mkParsed(value) {\n return { type: 'parsed', value };\n}\nfunction mkUnparseable(value) {\n return {\n type: 'unparseable',\n repr: typeof value === 'string' ? value : JSON.stringify(value),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF5YmUtcGFyc2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWF5YmUtcGFyc2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsNEJBRUM7QUFFRCxzQ0FLQztBQVRELFNBQWdCLFFBQVEsQ0FBSSxLQUFRO0lBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ25DLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUNoRSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSB2YWx1ZSB0aGF0IG1heSBvciBtYXkgbm90IGJlIHBhcnNlYWJsZVxuICovXG5leHBvcnQgdHlwZSBNYXliZVBhcnNlZDxBPiA9IFBhcnNlZDxBPiB8IFVucGFyc2VhYmxlQ2ZuO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZDxBPiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdwYXJzZWQnO1xuICByZWFkb25seSB2YWx1ZTogQTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnBhcnNlYWJsZUNmbiB7XG4gIHJlYWRvbmx5IHR5cGU6ICd1bnBhcnNlYWJsZSc7XG4gIHJlYWRvbmx5IHJlcHI6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1rUGFyc2VkPEE+KHZhbHVlOiBBKTogUGFyc2VkPEE+IHtcbiAgcmV0dXJuIHsgdHlwZTogJ3BhcnNlZCcsIHZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBta1VucGFyc2VhYmxlKHZhbHVlOiBhbnkpOiBVbnBhcnNlYWJsZUNmbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3VucGFyc2VhYmxlJyxcbiAgICByZXByOiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSksXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplateAndChangeSetDiffMerger = void 0;\nconst types = require(\"../diff/types\");\n/**\n * The purpose of this class is to include differences from the ChangeSet to differences in the TemplateDiff.\n */\nclass TemplateAndChangeSetDiffMerger {\n static determineChangeSetReplacementMode(propertyChange) {\n if (propertyChange.Target?.RequiresRecreation === undefined) {\n // We can't determine if the resource will be replaced or not. That's what conditionally means.\n return 'Conditionally';\n }\n if (propertyChange.Target.RequiresRecreation === 'Always') {\n switch (propertyChange.Evaluation) {\n case 'Static':\n return 'Always';\n case 'Dynamic':\n // If Evaluation is 'Dynamic', then this may cause replacement, or it may not.\n // see 'Replacement': https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ResourceChange.html\n return 'Conditionally';\n }\n }\n return propertyChange.Target.RequiresRecreation;\n }\n constructor(props) {\n this.changeSet = props.changeSet;\n this.changeSetResources = props.changeSetResources ?? this.convertDescribeChangeSetOutputToChangeSetResources(this.changeSet);\n }\n /**\n * Read resources from the changeSet, extracting information into ChangeSetResources.\n */\n convertDescribeChangeSetOutputToChangeSetResources(changeSet) {\n const changeSetResources = {};\n for (const resourceChange of changeSet.Changes ?? []) {\n if (resourceChange.ResourceChange?.LogicalResourceId === undefined) {\n continue; // Being defensive, here.\n }\n const propertyReplacementModes = {};\n for (const propertyChange of resourceChange.ResourceChange.Details ?? []) { // Details is only included if resourceChange.Action === 'Modify'\n if (propertyChange.Target?.Attribute === 'Properties' && propertyChange.Target.Name) {\n propertyReplacementModes[propertyChange.Target.Name] = {\n replacementMode: TemplateAndChangeSetDiffMerger.determineChangeSetReplacementMode(propertyChange),\n };\n }\n }\n changeSetResources[resourceChange.ResourceChange.LogicalResourceId] = {\n resourceWasReplaced: resourceChange.ResourceChange.Replacement === 'True',\n resourceType: resourceChange.ResourceChange.ResourceType ?? TemplateAndChangeSetDiffMerger.UNKNOWN_RESOURCE_TYPE, // DescribeChangeSet doesn't promise to have the ResourceType...\n propertyReplacementModes: propertyReplacementModes,\n };\n }\n return changeSetResources;\n }\n /**\n * This is writing over the \"ChangeImpact\" that was computed from the template difference, and instead using the ChangeImpact that is included from the ChangeSet.\n * Using the ChangeSet ChangeImpact is more accurate. The ChangeImpact tells us what the consequence is of changing the field. If changing the field causes resource\n * replacement (e.g., changing the name of an IAM role requires deleting and replacing the role), then ChangeImpact is \"Always\".\n */\n overrideDiffResourceChangeImpactWithChangeSetChangeImpact(logicalId, change) {\n // resourceType getter throws an error if resourceTypeChanged\n if ((change.resourceTypeChanged === true) || change.resourceType?.includes('AWS::Serverless')) {\n // CFN applies the SAM transform before creating the changeset, so the changeset contains no information about SAM resources\n return;\n }\n change.forEachDifference((type, name, value) => {\n if (type === 'Property') {\n if (!this.changeSetResources[logicalId]) {\n value.changeImpact = types.ResourceImpact.NO_CHANGE;\n value.isDifferent = false;\n return;\n }\n const changingPropertyCausesResourceReplacement = (this.changeSetResources[logicalId].propertyReplacementModes ?? {})[name]?.replacementMode;\n switch (changingPropertyCausesResourceReplacement) {\n case 'Always':\n value.changeImpact = types.ResourceImpact.WILL_REPLACE;\n break;\n case 'Never':\n value.changeImpact = types.ResourceImpact.WILL_UPDATE;\n break;\n case 'Conditionally':\n value.changeImpact = types.ResourceImpact.MAY_REPLACE;\n break;\n case undefined:\n value.changeImpact = types.ResourceImpact.NO_CHANGE;\n value.isDifferent = false;\n break;\n // otherwise, defer to the changeImpact from the template diff\n }\n }\n else if (type === 'Other') {\n switch (name) {\n case 'Metadata':\n // we want to ignore metadata changes in the diff, so compare newValue against newValue.\n change.setOtherChange('Metadata', new types.Difference(value.newValue, value.newValue));\n break;\n }\n }\n });\n }\n addImportInformationFromChangeset(resourceDiffs) {\n const imports = this.findResourceImports();\n resourceDiffs.forEachDifference((logicalId, change) => {\n if (imports.includes(logicalId)) {\n change.isImport = true;\n }\n });\n }\n findResourceImports() {\n const importedResourceLogicalIds = [];\n for (const resourceChange of this.changeSet?.Changes ?? []) {\n if (resourceChange.ResourceChange?.Action === 'Import') {\n importedResourceLogicalIds.push(resourceChange.ResourceChange.LogicalResourceId);\n }\n }\n return importedResourceLogicalIds;\n }\n}\nexports.TemplateAndChangeSetDiffMerger = TemplateAndChangeSetDiffMerger;\n// If we somehow cannot find the resourceType, then we'll mark it as UNKNOWN, so that can be seen in the diff.\nTemplateAndChangeSetDiffMerger.UNKNOWN_RESOURCE_TYPE = 'UNKNOWN_RESOURCE_TYPE';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtYW5kLWNoYW5nZXNldC1kaWZmLW1lcmdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlbXBsYXRlLWFuZC1jaGFuZ2VzZXQtZGlmZi1tZXJnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsdUNBQXVDO0FBc0J2Qzs7R0FFRztBQUNILE1BQWEsOEJBQThCO0lBQ2xDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxjQUE2QztRQUMzRixJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUQsK0ZBQStGO1lBQy9GLE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUQsUUFBUSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xDLEtBQUssUUFBUTtvQkFDWCxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsS0FBSyxTQUFTO29CQUNaLDhFQUE4RTtvQkFDOUUsK0dBQStHO29CQUMvRyxPQUFPLGVBQWUsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxrQkFBNEMsQ0FBQztJQUM1RSxDQUFDO0lBUUQsWUFBWSxLQUEwQztRQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0RBQWtELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hJLENBQUM7SUFFRDs7T0FFRztJQUNLLGtEQUFrRCxDQUFDLFNBQWtDO1FBQzNGLE1BQU0sa0JBQWtCLEdBQTZCLEVBQUUsQ0FBQztRQUN4RCxLQUFLLE1BQU0sY0FBYyxJQUFJLFNBQVMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENB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QUFFLENBQUM7b0JBQ2IsS0FBSyxVQUFVO3dCQUNiLHdGQUF3Rjt3QkFDeEYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFTLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQ2hHLE1BQU07Z0JBQ1YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxpQ0FBaUMsQ0FBQyxhQUFtRjtRQUMxSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFpQixFQUFFLE1BQWdDLEVBQUUsRUFBRTtZQUN0RixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixNQUFNLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUN0QyxLQUFLLE1BQU0sY0FBYyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzNELElBQUksY0FBYyxDQUFDLGNBQWMsRUFBRSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZELDBCQUEwQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7O0FBOUhILHdFQStIQztBQTFHQyw4R0FBOEc7QUFDL0Ysb0RBQXFCLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgU0RLIGlzIG9ubHkgdXNlZCB0byByZWZlcmVuY2UgYERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0YCwgc28gdGhlIFNESyBpcyBhZGRlZCBhcyBhIGRldkRlcGVuZGVuY3kuXG4vLyBUaGUgU0RLIHNob3VsZCBub3QgbWFrZSBuZXR3b3JrIGNhbGxzIGhlcmVcbmltcG9ydCB0eXBlIHsgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgYXMgRGVzY3JpYmVDaGFuZ2VTZXQsIFJlc291cmNlQ2hhbmdlRGV0YWlsIGFzIFJDRCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi9kaWZmL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgPSBEZXNjcmliZUNoYW5nZVNldDtcbnR5cGUgQ2hhbmdlU2V0UmVzb3VyY2VDaGFuZ2VEZXRhaWwgPSBSQ0Q7XG5cbmludGVyZmFjZSBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXJPcHRpb25zIHtcbiAgLypcbiAgICogT25seSBzcGVjaWZpYWJsZSBmb3IgdGVzdGluZy4gT3RoZXJ3aXNlLCB0aGlzIGlzIHRoZSBkYXRhc3RydWN0dXJlIHRoYXQgdGhlIGNoYW5nZVNldCBpcyBjb252ZXJ0ZWQgaW50byBzb1xuICAgKiB0aGF0IHdlIG9ubHkgcGF5IGF0dGVudGlvbiB0byB0aGUgc3Vic2V0IG9mIGNoYW5nZVNldCBwcm9wZXJ0aWVzIHRoYXQgYXJlIHJlbGV2YW50IGZvciBjb21wdXRpbmcgdGhlIGRpZmYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGNoYW5nZVNldCBpcyBjb252ZXJ0ZWQgaW50byB0aGlzIGRhdGFzdHJ1Y3R1cmUuXG4gICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldFJlc291cmNlcz86IHR5cGVzLkNoYW5nZVNldFJlc291cmNlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXJQcm9wcyBleHRlbmRzIFRlbXBsYXRlQW5kQ2hhbmdlU2V0RGlmZk1lcmdlck9wdGlvbnMge1xuICAvKlxuICAgKiBUaGUgY2hhbmdlc2V0IHRoYXQgd2lsbCBiZSByZWFkIGFuZCBtZXJnZWQgaW50byB0aGUgdGVtcGxhdGUgZGlmZi5cbiAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0OiBEZXNjcmliZUNoYW5nZVNldE91dHB1dDtcbn1cblxuLyoqXG4gKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIGluY2x1ZGUgZGlmZmVyZW5jZXMgZnJvbSB0aGUgQ2hhbmdlU2V0IHRvIGRpZmZlcmVuY2VzIGluIHRoZSBUZW1wbGF0ZURpZmYuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIge1xuICBwdWJsaWMgc3RhdGljIGRldGVybWluZUNoYW5nZVNldFJlcGxhY2VtZW50TW9kZShwcm9wZXJ0eUNoYW5nZTogQ2hhbmdlU2V0UmVzb3VyY2VDaGFuZ2VEZXRhaWwpOiB0eXBlcy5SZXBsYWNlbWVudE1vZGVzIHtcbiAgICBpZiAocHJvcGVydHlDaGFuZ2UuVGFyZ2V0Py5SZXF1aXJlc1JlY3JlYXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gV2UgY2FuJ3QgZGV0ZXJtaW5lIGlmIHRoZSByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkIG9yIG5vdC4gVGhhdCdzIHdoYXQgY29uZGl0aW9uYWxseSBtZWFucy5cbiAgICAgIHJldHVybiAnQ29uZGl0aW9uYWxseSc7XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnR5Q2hhbmdlLlRhcmdldC5SZXF1aXJlc1JlY3JlYXRpb24gPT09ICdBbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHByb3BlcnR5Q2hhbmdlLkV2YWx1YXRpb24pIHtcbiAgICAgICAgY2FzZSAnU3RhdGljJzpcbiAgICAgICAgICByZXR1cm4gJ0Fsd2F5cyc7XG4gICAgICAgIGNhc2UgJ0R5bmFtaWMnOlxuICAgICAgICAgIC8vIElmIEV2YWx1YXRpb24gaXMgJ0R5bmFtaWMnLCB0aGVuIHRoaXMgbWF5IGNhdXNlIHJlcGxhY2VtZW50LCBvciBpdCBtYXkgbm90LlxuICAgICAgICAgIC8vIHNlZSAnUmVwbGFjZW1lbnQnOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVzb3VyY2VDaGFuZ2UuaHRtbFxuICAgICAgICAgIHJldHVybiAnQ29uZGl0aW9uYWxseSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5Q2hhbmdlLlRhcmdldC5SZXF1aXJlc1JlY3JlYXRpb24gYXMgdHlwZXMuUmVwbGFjZW1lbnRNb2RlcztcbiAgfVxuXG4gIC8vIElmIHdlIHNvbWVob3cgY2Fubm90IGZpbmQgdGhlIHJlc291cmNlVHlwZSwgdGhlbiB3ZSdsbCBtYXJrIGl0IGFzIFVOS05PV04sIHNvIHRoYXQgY2FuIGJlIHNlZW4gaW4gdGhlIGRpZmYuXG4gIHByaXZhdGUgc3RhdGljIFVOS05PV05fUkVTT1VSQ0VfVFlQRSA9ICdVTktOT1dOX1JFU09VUkNFX1RZUEUnO1xuXG4gIHB1YmxpYyBjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY2hhbmdlU2V0UmVzb3VyY2VzOiB0eXBlcy5DaGFuZ2VTZXRSZXNvdXJjZXM7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFRlbXBsYXRlQW5kQ2hhbmdlU2V0RGlmZk1lcmdlclByb3BzKSB7XG4gICAgdGhpcy5jaGFuZ2VTZXQgPSBwcm9wcy5jaGFuZ2VTZXQ7XG4gICAgdGhpcy5jaGFuZ2VTZXRSZXNvdXJjZXMgPSBwcm9wcy5jaGFuZ2VTZXRSZXNvdXJjZXMgPz8gdGhpcy5jb252ZXJ0RGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXRUb0NoYW5nZVNldFJlc291cmNlcyh0aGlzLmNoYW5nZVNldCk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZCByZXNvdXJjZXMgZnJvbSB0aGUgY2hhbmdlU2V0LCBleHRyYWN0aW5nIGluZm9ybWF0aW9uIGludG8gQ2hhbmdlU2V0UmVzb3VyY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0RGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXRUb0NoYW5nZVNldFJlc291cmNlcyhjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0KTogdHlwZXMuQ2hhbmdlU2V0UmVzb3VyY2VzIHtcbiAgICBjb25zdCBjaGFuZ2VTZXRSZXNvdXJjZXM6IHR5cGVzLkNoYW5nZVNldFJlc291cmNlcyA9IHt9O1xuICAgIGZvciAoY29uc3QgcmVzb3VyY2VDaGFuZ2Ugb2YgY2hhbmdlU2V0LkNoYW5nZXMgPz8gW10pIHtcbiAgICAgIGlmIChyZXNvdXJjZUNoYW5nZS5SZXNvdXJjZUNoYW5nZT8uTG9naWNhbFJlc291cmNlSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250aW51ZTsgLy8gQmVpbmcgZGVmZW5zaXZlLCBoZXJlLlxuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXM6IHR5cGVzLlByb3BlcnR5UmVwbGFjZW1lbnRNb2RlTWFwID0ge307XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5Q2hhbmdlIG9mIHJlc291cmNlQ2hhbmdlLlJlc291cmNlQ2hhbmdlLkRldGFpbHMgPz8gW10pIHsgLy8gRGV0YWlscyBpcyBvbmx5IGluY2x1ZGVkIGlmIHJlc291cmNlQ2hhbmdlLkFjdGlvbiA9PT0gJ01vZGlmeSdcbiAgICAgICAgaWYgKHByb3BlcnR5Q2hhbmdlLlRhcmdldD8uQXR0cmlidXRlID09PSAnUHJvcGVydGllcycgJiYgcHJvcGVydHlDaGFuZ2UuVGFyZ2V0Lk5hbWUpIHtcbiAgICAgICAgICBwcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXNbcHJvcGVydHlDaGFuZ2UuVGFyZ2V0Lk5hbWVdID0ge1xuICAgICAgICAgICAgcmVwbGFjZW1lbnRNb2RlOiBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIuZGV0ZXJtaW5lQ2hhbmdlU2V0UmVwbGFjZW1lbnRNb2RlKHByb3BlcnR5Q2hhbmdlKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNoYW5nZVNldFJlc291cmNlc1tyZXNvdXJjZUNoYW5nZS5SZXNvdXJjZUNoYW5nZS5Mb2dpY2FsUmVzb3VyY2VJZF0gPSB7XG4gICAgICAgIHJlc291cmNlV2FzUmVwbGFjZWQ6IHJlc291cmNlQ2hhbmdlLlJlc291cmNlQ2hhbmdlLlJlcGxhY2VtZW50ID09PSAnVHJ1ZScsXG4gICAgICAgIHJlc291cmNlVHlwZTogcmVzb3VyY2VDaGFuZ2UuUmVzb3VyY2VDaGFuZ2UuUmVzb3VyY2VUeXBlID8/IFRlbXBsYXRlQW5kQ2hhbmdlU2V0RGlmZk1lcmdlci5VTktOT1dOX1JFU09VUkNFX1RZUEUsIC8vIERlc2NyaWJlQ2hhbmdlU2V0IGRvZXNuJ3QgcHJvbWlzZSB0byBoYXZlIHRoZSBSZXNvdXJjZVR5cGUuLi5cbiAgICAgICAgcHJvcGVydHlSZXBsYWNlbWVudE1vZGVzOiBwcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjaGFuZ2VTZXRSZXNvdXJjZXM7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyB3cml0aW5nIG92ZXIgdGhlIFwiQ2hhbmdlSW1wYWN0XCIgdGhhdCB3YXMgY29tcHV0ZWQgZnJvbSB0aGUgdGVtcGxhdGUgZGlmZmVyZW5jZSwgYW5kIGluc3RlYWQgdXNpbmcgdGhlIENoYW5nZUltcGFjdCB0aGF0IGlzIGluY2x1ZGVkIGZyb20gdGhlIENoYW5nZVNldC5cbiAgICogVXNpbmcgdGhlIENoYW5nZVNldCBDaGFuZ2VJbXBhY3QgaXMgbW9yZSBhY2N1cmF0ZS4gVGhlIENoYW5nZUltcGFjdCB0ZWxscyB1cyB3aGF0IHRoZSBjb25zZXF1ZW5jZSBpcyBvZiBjaGFuZ2luZyB0aGUgZmllbGQuIElmIGNoYW5naW5nIHRoZSBmaWVsZCBjYXVzZXMgcmVzb3VyY2VcbiAgICogcmVwbGFjZW1lbnQgKGUuZy4sIGNoYW5naW5nIHRoZSBuYW1lIG9mIGFuIElBTSByb2xlIHJlcXVpcmVzIGRlbGV0aW5nIGFuZCByZXBsYWNpbmcgdGhlIHJvbGUpLCB0aGVuIENoYW5nZUltcGFjdCBpcyBcIkFsd2F5c1wiLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlRGlmZlJlc291cmNlQ2hhbmdlSW1wYWN0V2l0aENoYW5nZVNldENoYW5nZUltcGFjdChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2UpIHtcbiAgICAvLyByZXNvdXJjZVR5cGUgZ2V0dGVyIHRocm93cyBhbiBlcnJvciBpZiByZXNvdXJjZVR5cGVDaGFuZ2VkXG4gICAgaWYgKChjaGFuZ2UucmVzb3VyY2VUeXBlQ2hhbmdlZCA9PT0gdHJ1ZSkgfHwgY2hhbmdlLnJlc291cmNlVHlwZT8uaW5jbHVkZXMoJ0FXUzo6U2VydmVybGVzcycpKSB7XG4gICAgICAvLyBDRk4gYXBwbGllcyB0aGUgU0FNIHRyYW5zZm9ybSBiZWZvcmUgY3JlYXRpbmcgdGhlIGNoYW5nZXNldCwgc28gdGhlIGNoYW5nZXNldCBjb250YWlucyBubyBpbmZvcm1hdGlvbiBhYm91dCBTQU0gcmVzb3VyY2VzXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNoYW5nZS5mb3JFYWNoRGlmZmVyZW5jZSgodHlwZTogJ1Byb3BlcnR5JyB8ICdPdGhlcicsIG5hbWU6IHN0cmluZywgdmFsdWU6IHR5cGVzLkRpZmZlcmVuY2U8YW55PiB8IHR5cGVzLlByb3BlcnR5RGlmZmVyZW5jZTxhbnk+KSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gJ1Byb3BlcnR5Jykge1xuICAgICAgICBpZiAoIXRoaXMuY2hhbmdlU2V0UmVzb3VyY2VzW2xvZ2ljYWxJZF0pIHtcbiAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTtcbiAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmlzRGlmZmVyZW50ID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhbmdpbmdQcm9wZXJ0eUNhdXNlc1Jlc291cmNlUmVwbGFjZW1lbnQgPSAodGhpcy5jaGFuZ2VTZXRSZXNvdXJjZXNbbG9naWNhbElkXS5wcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXMgPz8ge30pW25hbWVdPy5yZXBsYWNlbWVudE1vZGU7XG4gICAgICAgIHN3aXRjaCAoY2hhbmdpbmdQcm9wZXJ0eUNhdXNlc1Jlc291cmNlUmVwbGFjZW1lbnQpIHtcbiAgICAgICAgICBjYXNlICdBbHdheXMnOlxuICAgICAgICAgICAgKHZhbHVlIGFzIHR5cGVzLlByb3BlcnR5RGlmZmVyZW5jZTxhbnk+KS5jaGFuZ2VJbXBhY3QgPSB0eXBlcy5SZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdOZXZlcic6XG4gICAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0LldJTExfVVBEQVRFO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnQ29uZGl0aW9uYWxseSc6XG4gICAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTtcbiAgICAgICAgICAgICh2YWx1ZSBhcyB0eXBlcy5Qcm9wZXJ0eURpZmZlcmVuY2U8YW55PikuaXNEaWZmZXJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIC8vIG90aGVyd2lzZSwgZGVmZXIgdG8gdGhlIGNoYW5nZUltcGFjdCBmcm9tIHRoZSB0ZW1wbGF0ZSBkaWZmXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ090aGVyJykge1xuICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICBjYXNlICdNZXRhZGF0YSc6XG4gICAgICAgICAgICAvLyB3ZSB3YW50IHRvIGlnbm9yZSBtZXRhZGF0YSBjaGFuZ2VzIGluIHRoZSBkaWZmLCBzbyBjb21wYXJlIG5ld1ZhbHVlIGFnYWluc3QgbmV3VmFsdWUuXG4gICAgICAgICAgICBjaGFuZ2Uuc2V0T3RoZXJDaGFuZ2UoJ01ldGFkYXRhJywgbmV3IHR5cGVzLkRpZmZlcmVuY2U8c3RyaW5nPih2YWx1ZS5uZXdWYWx1ZSwgdmFsdWUubmV3VmFsdWUpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkSW1wb3J0SW5mb3JtYXRpb25Gcm9tQ2hhbmdlc2V0KHJlc291cmNlRGlmZnM6IHR5cGVzLkRpZmZlcmVuY2VDb2xsZWN0aW9uPHR5cGVzLlJlc291cmNlLCB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2U+KSB7XG4gICAgY29uc3QgaW1wb3J0cyA9IHRoaXMuZmluZFJlc291cmNlSW1wb3J0cygpO1xuICAgIHJlc291cmNlRGlmZnMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZSkgPT4ge1xuICAgICAgaWYgKGltcG9ydHMuaW5jbHVkZXMobG9naWNhbElkKSkge1xuICAgICAgICBjaGFuZ2UuaXNJbXBvcnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpbmRSZXNvdXJjZUltcG9ydHMoKTogKHN0cmluZyB8IHVuZGVmaW5lZClbXSB7XG4gICAgY29uc3QgaW1wb3J0ZWRSZXNvdXJjZUxvZ2ljYWxJZHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHJlc291cmNlQ2hhbmdlIG9mIHRoaXMuY2hhbmdlU2V0Py5DaGFuZ2VzID8/IFtdKSB7XG4gICAgICBpZiAocmVzb3VyY2VDaGFuZ2UuUmVzb3VyY2VDaGFuZ2U/LkFjdGlvbiA9PT0gJ0ltcG9ydCcpIHtcbiAgICAgICAgaW1wb3J0ZWRSZXNvdXJjZUxvZ2ljYWxJZHMucHVzaChyZXNvdXJjZUNoYW5nZS5SZXNvdXJjZUNoYW5nZS5Mb2dpY2FsUmVzb3VyY2VJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGltcG9ydGVkUmVzb3VyY2VMb2dpY2FsSWRzO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceDifference = exports.ResourceImpact = exports.ParameterDifference = exports.OutputDifference = exports.MetadataDifference = exports.MappingDifference = exports.ConditionDifference = exports.DifferenceCollection = exports.PropertyDifference = exports.Difference = exports.TemplateDiff = void 0;\nexports.isPropertyDifference = isPropertyDifference;\nconst assert_1 = require(\"assert\");\nconst service_spec_types_1 = require(\"@aws-cdk/service-spec-types\");\nconst util_1 = require(\"./util\");\nconst iam_changes_1 = require(\"../iam/iam-changes\");\nconst security_group_changes_1 = require(\"../network/security-group-changes\");\n/** Semantic differences between two CloudFormation templates. */\nclass TemplateDiff {\n constructor(args) {\n if (args.awsTemplateFormatVersion !== undefined) {\n this.awsTemplateFormatVersion = args.awsTemplateFormatVersion;\n }\n if (args.description !== undefined) {\n this.description = args.description;\n }\n if (args.transform !== undefined) {\n this.transform = args.transform;\n }\n this.conditions = args.conditions || new DifferenceCollection({});\n this.mappings = args.mappings || new DifferenceCollection({});\n this.metadata = args.metadata || new DifferenceCollection({});\n this.outputs = args.outputs || new DifferenceCollection({});\n this.parameters = args.parameters || new DifferenceCollection({});\n this.resources = args.resources || new DifferenceCollection({});\n this.unknown = args.unknown || new DifferenceCollection({});\n this.iamChanges = new iam_changes_1.IamChanges({\n propertyChanges: this.scrutinizablePropertyChanges(iam_changes_1.IamChanges.IamPropertyScrutinies),\n resourceChanges: this.scrutinizableResourceChanges(iam_changes_1.IamChanges.IamResourceScrutinies),\n });\n this.securityGroupChanges = new security_group_changes_1.SecurityGroupChanges({\n egressRulePropertyChanges: this.scrutinizablePropertyChanges([service_spec_types_1.PropertyScrutinyType.EgressRules]),\n ingressRulePropertyChanges: this.scrutinizablePropertyChanges([service_spec_types_1.PropertyScrutinyType.IngressRules]),\n egressRuleResourceChanges: this.scrutinizableResourceChanges([service_spec_types_1.ResourceScrutinyType.EgressRuleResource]),\n ingressRuleResourceChanges: this.scrutinizableResourceChanges([service_spec_types_1.ResourceScrutinyType.IngressRuleResource]),\n });\n }\n get differenceCount() {\n let count = 0;\n if (this.awsTemplateFormatVersion !== undefined) {\n count += 1;\n }\n if (this.description !== undefined) {\n count += 1;\n }\n if (this.transform !== undefined) {\n count += 1;\n }\n count += this.conditions.differenceCount;\n count += this.mappings.differenceCount;\n count += this.metadata.differenceCount;\n count += this.outputs.differenceCount;\n count += this.parameters.differenceCount;\n count += this.resources.differenceCount;\n count += this.unknown.differenceCount;\n return count;\n }\n get isEmpty() {\n return this.differenceCount === 0;\n }\n /**\n * Return true if any of the permissions objects involve a broadening of permissions\n */\n get permissionsBroadened() {\n return this.iamChanges.permissionsBroadened || this.securityGroupChanges.rulesAdded;\n }\n /**\n * Return true if any of the permissions objects have changed\n */\n get permissionsAnyChanges() {\n return this.iamChanges.hasChanges || this.securityGroupChanges.hasChanges;\n }\n /**\n * Return all property changes of a given scrutiny type\n *\n * We don't just look at property updates; we also look at resource additions and deletions (in which\n * case there is no further detail on property values), and resource type changes.\n */\n scrutinizablePropertyChanges(scrutinyTypes) {\n const ret = new Array();\n for (const [resourceLogicalId, resourceChange] of Object.entries(this.resources.changes)) {\n if (resourceChange.resourceTypeChanged) {\n // we ignore resource type changes here, and handle them in scrutinizableResourceChanges()\n continue;\n }\n if (!resourceChange.resourceType) {\n // We use resourceChange.resourceType to loadResourceModel so that we can inspect the\n // properties of a resource even after the resource is removed from the template.\n continue;\n }\n const newTypeProps = (0, util_1.loadResourceModel)(resourceChange.resourceType)?.properties || {};\n for (const [propertyName, prop] of Object.entries(newTypeProps)) {\n const propScrutinyType = prop.scrutinizable || service_spec_types_1.PropertyScrutinyType.None;\n if (scrutinyTypes.includes(propScrutinyType)) {\n ret.push({\n resourceLogicalId,\n propertyName,\n resourceType: resourceChange.resourceType,\n scrutinyType: propScrutinyType,\n oldValue: resourceChange.oldProperties?.[propertyName],\n newValue: resourceChange.newProperties?.[propertyName],\n });\n }\n }\n }\n return ret;\n }\n /**\n * Return all resource changes of a given scrutiny type\n *\n * We don't just look at resource updates; we also look at resource additions and deletions (in which\n * case there is no further detail on property values), and resource type changes.\n */\n scrutinizableResourceChanges(scrutinyTypes) {\n const ret = new Array();\n for (const [resourceLogicalId, resourceChange] of Object.entries(this.resources.changes)) {\n if (!resourceChange) {\n continue;\n }\n const commonProps = {\n oldProperties: resourceChange.oldProperties,\n newProperties: resourceChange.newProperties,\n resourceLogicalId,\n };\n // changes to the Type of resources can happen when migrating from CFN templates that use Transforms\n if (resourceChange.resourceTypeChanged) {\n // Treat as DELETE+ADD\n if (resourceChange.oldResourceType) {\n const oldResourceModel = (0, util_1.loadResourceModel)(resourceChange.oldResourceType);\n if (oldResourceModel && this.resourceIsScrutinizable(oldResourceModel, scrutinyTypes)) {\n ret.push({\n ...commonProps,\n newProperties: undefined,\n resourceType: resourceChange.oldResourceType,\n scrutinyType: oldResourceModel.scrutinizable,\n });\n }\n }\n if (resourceChange.newResourceType) {\n const newResourceModel = (0, util_1.loadResourceModel)(resourceChange.newResourceType);\n if (newResourceModel && this.resourceIsScrutinizable(newResourceModel, scrutinyTypes)) {\n ret.push({\n ...commonProps,\n oldProperties: undefined,\n resourceType: resourceChange.newResourceType,\n scrutinyType: newResourceModel.scrutinizable,\n });\n }\n }\n }\n else {\n if (!resourceChange.resourceType) {\n continue;\n }\n const resourceModel = (0, util_1.loadResourceModel)(resourceChange.resourceType);\n if (resourceModel && this.resourceIsScrutinizable(resourceModel, scrutinyTypes)) {\n ret.push({\n ...commonProps,\n resourceType: resourceChange.resourceType,\n scrutinyType: resourceModel.scrutinizable,\n });\n }\n }\n }\n return ret;\n }\n resourceIsScrutinizable(res, scrutinyTypes) {\n return scrutinyTypes.includes(res.scrutinizable || service_spec_types_1.ResourceScrutinyType.None);\n }\n}\nexports.TemplateDiff = TemplateDiff;\n/**\n * Models an entity that changed between two versions of a CloudFormation template.\n */\nclass Difference {\n /**\n * @param oldValue - the old value, cannot be equal (to the sense of +deepEqual+) to +newValue+.\n * @param newValue - the new value, cannot be equal (to the sense of +deepEqual+) to +oldValue+.\n */\n constructor(oldValue, newValue) {\n this.oldValue = oldValue;\n this.newValue = newValue;\n if (oldValue === undefined && newValue === undefined) {\n throw new assert_1.AssertionError({ message: 'oldValue and newValue are both undefined!' });\n }\n this.isDifferent = !(0, util_1.deepEqual)(oldValue, newValue);\n }\n /** @returns +true+ if the element is new to the template. */\n get isAddition() {\n return this.oldValue === undefined;\n }\n /** @returns +true+ if the element was removed from the template. */\n get isRemoval() {\n return this.newValue === undefined;\n }\n /** @returns +true+ if the element was already in the template and is updated. */\n get isUpdate() {\n return this.oldValue !== undefined\n && this.newValue !== undefined;\n }\n}\nexports.Difference = Difference;\nclass PropertyDifference extends Difference {\n constructor(oldValue, newValue, args) {\n super(oldValue, newValue);\n this.changeImpact = args.changeImpact;\n }\n}\nexports.PropertyDifference = PropertyDifference;\nclass DifferenceCollection {\n constructor(diffs) {\n this.diffs = diffs;\n }\n get changes() {\n return onlyChanges(this.diffs);\n }\n get differenceCount() {\n return Object.values(this.changes).length;\n }\n get(logicalId) {\n const ret = this.diffs[logicalId];\n if (!ret) {\n throw new Error(`No object with logical ID '${logicalId}'`);\n }\n return ret;\n }\n remove(logicalId) {\n delete this.diffs[logicalId];\n }\n get logicalIds() {\n return Object.keys(this.changes);\n }\n /**\n * Returns a new TemplateDiff which only contains changes for which `predicate`\n * returns `true`.\n */\n filter(predicate) {\n const newChanges = {};\n for (const id of Object.keys(this.changes)) {\n const diff = this.changes[id];\n if (predicate(diff)) {\n newChanges[id] = diff;\n }\n }\n return new DifferenceCollection(newChanges);\n }\n /**\n * Invokes `cb` for all changes in this collection.\n *\n * Changes will be sorted as follows:\n * - Removed\n * - Added\n * - Updated\n * - Others\n *\n */\n forEachDifference(cb) {\n const removed = new Array();\n const added = new Array();\n const updated = new Array();\n const others = new Array();\n for (const logicalId of this.logicalIds) {\n const change = this.changes[logicalId];\n if (change.isAddition) {\n added.push({ logicalId, change });\n }\n else if (change.isRemoval) {\n removed.push({ logicalId, change });\n }\n else if (change.isUpdate) {\n updated.push({ logicalId, change });\n }\n else if (change.isDifferent) {\n others.push({ logicalId, change });\n }\n }\n removed.forEach(v => cb(v.logicalId, v.change));\n added.forEach(v => cb(v.logicalId, v.change));\n updated.forEach(v => cb(v.logicalId, v.change));\n others.forEach(v => cb(v.logicalId, v.change));\n }\n}\nexports.DifferenceCollection = DifferenceCollection;\nclass ConditionDifference extends Difference {\n}\nexports.ConditionDifference = ConditionDifference;\nclass MappingDifference extends Difference {\n}\nexports.MappingDifference = MappingDifference;\nclass MetadataDifference extends Difference {\n}\nexports.MetadataDifference = MetadataDifference;\nclass OutputDifference extends Difference {\n}\nexports.OutputDifference = OutputDifference;\nclass ParameterDifference extends Difference {\n}\nexports.ParameterDifference = ParameterDifference;\nvar ResourceImpact;\n(function (ResourceImpact) {\n /** The existing physical resource will be updated */\n ResourceImpact[\"WILL_UPDATE\"] = \"WILL_UPDATE\";\n /** A new physical resource will be created */\n ResourceImpact[\"WILL_CREATE\"] = \"WILL_CREATE\";\n /** The existing physical resource will be replaced */\n ResourceImpact[\"WILL_REPLACE\"] = \"WILL_REPLACE\";\n /** The existing physical resource may be replaced */\n ResourceImpact[\"MAY_REPLACE\"] = \"MAY_REPLACE\";\n /** The existing physical resource will be destroyed */\n ResourceImpact[\"WILL_DESTROY\"] = \"WILL_DESTROY\";\n /** The existing physical resource will be removed from CloudFormation supervision */\n ResourceImpact[\"WILL_ORPHAN\"] = \"WILL_ORPHAN\";\n /** The existing physical resource will be added to CloudFormation supervision */\n ResourceImpact[\"WILL_IMPORT\"] = \"WILL_IMPORT\";\n /** There is no change in this resource */\n ResourceImpact[\"NO_CHANGE\"] = \"NO_CHANGE\";\n})(ResourceImpact || (exports.ResourceImpact = ResourceImpact = {}));\n/**\n * This function can be used as a reducer to obtain the resource-level impact of a list\n * of property-level impacts.\n * @param one - the current worst impact so far.\n * @param two - the new impact being considered (can be undefined, as we may not always be\n * able to determine some properties impact).\n */\nfunction worstImpact(one, two) {\n if (!two) {\n return one;\n }\n const badness = {\n [ResourceImpact.NO_CHANGE]: 0,\n [ResourceImpact.WILL_IMPORT]: 0,\n [ResourceImpact.WILL_UPDATE]: 1,\n [ResourceImpact.WILL_CREATE]: 2,\n [ResourceImpact.WILL_ORPHAN]: 3,\n [ResourceImpact.MAY_REPLACE]: 4,\n [ResourceImpact.WILL_REPLACE]: 5,\n [ResourceImpact.WILL_DESTROY]: 6,\n };\n return badness[one] > badness[two] ? one : two;\n}\n/**\n * Change to a single resource between two CloudFormation templates\n *\n * This class can be mutated after construction.\n */\nclass ResourceDifference {\n constructor(oldValue, newValue, args) {\n this.oldValue = oldValue;\n this.newValue = newValue;\n this.resourceTypes = args.resourceType;\n this.propertyDiffs = args.propertyDiffs;\n this.otherDiffs = args.otherDiffs;\n this.isAddition = oldValue === undefined;\n this.isRemoval = newValue === undefined;\n this.isImport = undefined;\n }\n get oldProperties() {\n return this.oldValue && this.oldValue.Properties;\n }\n get newProperties() {\n return this.newValue && this.newValue.Properties;\n }\n /**\n * Whether this resource was modified at all\n */\n get isDifferent() {\n return this.differenceCount > 0 || this.oldResourceType !== this.newResourceType;\n }\n /**\n * Whether the resource was updated in-place\n */\n get isUpdate() {\n return this.isDifferent && !this.isAddition && !this.isRemoval;\n }\n get oldResourceType() {\n return this.resourceTypes.oldType;\n }\n get newResourceType() {\n return this.resourceTypes.newType;\n }\n /**\n * All actual property updates\n */\n get propertyUpdates() {\n return onlyChanges(this.propertyDiffs);\n }\n /**\n * All actual \"other\" updates\n */\n get otherChanges() {\n return onlyChanges(this.otherDiffs);\n }\n /**\n * Return whether the resource type was changed in this diff\n *\n * This is not a valid operation in CloudFormation but to be defensive we're going\n * to be aware of it anyway.\n */\n get resourceTypeChanged() {\n return (this.resourceTypes.oldType !== undefined\n && this.resourceTypes.newType !== undefined\n && this.resourceTypes.oldType !== this.resourceTypes.newType);\n }\n /**\n * Return the resource type if it was unchanged\n *\n * If the resource type was changed, it's an error to call this.\n */\n get resourceType() {\n if (this.resourceTypeChanged) {\n throw new Error('Cannot get .resourceType, because the type was changed');\n }\n return this.resourceTypes.oldType || this.resourceTypes.newType;\n }\n /**\n * Replace a PropertyChange in this object\n *\n * This affects the property diff as it is summarized to users, but it DOES\n * NOT affect either the \"oldValue\" or \"newValue\" values; those still contain\n * the actual template values as provided by the user (they might still be\n * used for downstream processing).\n */\n setPropertyChange(propertyName, change) {\n this.propertyDiffs[propertyName] = change;\n }\n /**\n * Replace a OtherChange in this object\n *\n * This affects the property diff as it is summarized to users, but it DOES\n * NOT affect either the \"oldValue\" or \"newValue\" values; those still contain\n * the actual template values as provided by the user (they might still be\n * used for downstream processing).\n */\n setOtherChange(otherName, change) {\n this.otherDiffs[otherName] = change;\n }\n get changeImpact() {\n if (this.isImport) {\n return ResourceImpact.WILL_IMPORT;\n }\n // Check the Type first\n if (this.resourceTypes.oldType !== this.resourceTypes.newType) {\n if (this.resourceTypes.oldType === undefined) {\n return ResourceImpact.WILL_CREATE;\n }\n if (this.resourceTypes.newType === undefined) {\n return this.oldValue.DeletionPolicy === 'Retain'\n ? ResourceImpact.WILL_ORPHAN\n : ResourceImpact.WILL_DESTROY;\n }\n return ResourceImpact.WILL_REPLACE;\n }\n // Base impact (before we mix in the worst of the property impacts);\n // WILL_UPDATE if we have \"other\" changes, NO_CHANGE if there are no \"other\" changes.\n const baseImpact = Object.keys(this.otherChanges).length > 0 ? ResourceImpact.WILL_UPDATE : ResourceImpact.NO_CHANGE;\n return Object.values(this.propertyDiffs)\n .map(elt => elt.changeImpact)\n .reduce(worstImpact, baseImpact);\n }\n /**\n * Count of actual differences (not of elements)\n */\n get differenceCount() {\n return Object.values(this.propertyUpdates).length\n + Object.values(this.otherChanges).length;\n }\n /**\n * Invoke a callback for each actual difference\n */\n forEachDifference(cb) {\n for (const key of Object.keys(this.propertyUpdates).sort()) {\n cb('Property', key, this.propertyUpdates[key]);\n }\n for (const key of Object.keys(this.otherChanges).sort()) {\n cb('Other', key, this.otherDiffs[key]);\n }\n }\n}\nexports.ResourceDifference = ResourceDifference;\nfunction isPropertyDifference(diff) {\n return diff.changeImpact !== undefined;\n}\n/**\n * Filter a map of IDifferences down to only retain the actual changes\n */\nfunction onlyChanges(xs) {\n const ret = {};\n for (const [key, diff] of Object.entries(xs)) {\n if (diff.isDifferent) {\n ret[key] = diff;\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3dUJBLG9EQUVDO0FBMXVCRCxtQ0FBd0M7QUFFeEMsb0VBQXlGO0FBQ3pGLGlDQUFzRDtBQUN0RCxvREFBZ0Q7QUFDaEQsOEVBQXlFO0FBZ0N6RSxpRUFBaUU7QUFDakUsTUFBYSxZQUFZO0lBdUJ2QixZQUFZLElBQW1CO1FBQzdCLElBQUksSUFBSSxDQUFDLHdCQUF3QixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBVSxDQUFDO1lBQy9CLGVBQWUsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsd0JBQVUsQ0FBQyxxQkFBcUIsQ0FBQztZQUNwRixlQUFlLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHdCQUFVLENBQUMscUJBQXFCLENBQUM7U0FDckYsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksNkNBQW9CLENBQUM7WUFDbkQseUJBQXlCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUMseUNBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEcsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUMseUNBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEcseUJBQXlCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUMseUNBQW9CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN2RywwQkFBMEIsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQyx5Q0FBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFHLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNiLENBQUM7UUFFRCxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDekMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3ZDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUN2QyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDdEMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDO1FBQ3pDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztRQUN4QyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFFdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUM7SUFDdEYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLDRCQUE0QixDQUFDLGFBQXFDO1FBQ3hFLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFrQixDQUFDO1FBRXhDLEtBQUssTUFBTSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pGLElBQUksY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3ZDLDBGQUEwRjtnQkFDMUYsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNqQyxxRkFBcUY7Z0JBQ3JGLGlGQUFpRjtnQkFDakYsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLHdCQUFpQixFQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1lBQ3RGLEtBQUssTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSx5Q0FBb0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pFLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQ1AsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLFlBQVksRUFBRSxjQUFjLENBQUMsWUFBWTt3QkFDekMsWUFBWSxFQUFFLGdCQUFnQjt3QkFDOUIsUUFBUSxFQUFFLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxZQUFZLENBQUM7d0JBQ3RELFFBQVEsRUFBRSxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUMsWUFBWSxDQUFDO3FCQUN2RCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyw0QkFBNEIsQ0FBQyxhQUFxQztRQUN4RSxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztRQUV4QyxLQUFLLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6RixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLFNBQVM7WUFDWCxDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCLGFBQWEsRUFBRSxjQUFjLENBQUMsYUFBYTtnQkFDM0MsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhO2dCQUMzQyxpQkFBaUI7YUFDbEIsQ0FBQztZQUVGLG9HQUFvRztZQUNwRyxJQUFJLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN2QyxzQkFBc0I7Z0JBQ3RCLElBQUksY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUNuQyxNQUFNLGdCQUFnQixHQUFHLElBQUEsd0JBQWlCLEVBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUMzRSxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO3dCQUN0RixHQUFHLENBQUMsSUFBSSxDQUFDOzRCQUNQLEdBQUcsV0FBVzs0QkFDZCxhQUFhLEVBQUUsU0FBUzs0QkFDeEIsWUFBWSxFQUFFLGNBQWMsQ0FBQyxlQUFnQjs0QkFDN0MsWUFBWSxFQUFFLGdCQUFnQixDQUFDLGFBQWM7eUJBQzlDLENBQUMsQ0FBQztvQkFDTCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsSUFBSSxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ25DLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSx3QkFBaUIsRUFBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQzNFLElBQUksZ0JBQWdCLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQ3RGLEdBQUcsQ0FBQyxJQUFJLENBQUM7NEJBQ1AsR0FBRyxXQUFXOzRCQUNkLGFBQWEsRUFBRSxTQUFTOzRCQUN4QixZQUFZLEVBQUUsY0FBYyxDQUFDLGVBQWdCOzRCQUM3QyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsYUFBYzt5QkFDOUMsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNqQyxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsSUFBQSx3QkFBaUIsRUFBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3JFLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDaEYsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDUCxHQUFHLFdBQVc7d0JBQ2QsWUFBWSxFQUFFLGNBQWMsQ0FBQyxZQUFZO3dCQUN6QyxZQUFZLEVBQUUsYUFBYSxDQUFDLGFBQWM7cUJBQzNDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxHQUFrQixFQUFFLGFBQTBDO1FBQzVGLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLHlDQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Q0FDRjtBQTdNRCxvQ0E2TUM7QUFtRkQ7O0dBRUc7QUFDSCxNQUFhLFVBQVU7SUFRckI7OztPQUdHO0lBQ0gsWUFBNEIsUUFBK0IsRUFBa0IsUUFBK0I7UUFBaEYsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFBa0IsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFDMUcsSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxNQUFNLElBQUksdUJBQWMsQ0FBQyxFQUFFLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFBLGdCQUFTLEVBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUztlQUM3QixJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFsQ0QsZ0NBa0NDO0FBRUQsTUFBYSxrQkFBOEIsU0FBUSxVQUFxQjtJQUd0RSxZQUFZLFFBQStCLEVBQUUsUUFBK0IsRUFBRSxJQUF1QztRQUNuSCxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFQRCxnREFPQztBQUVELE1BQWEsb0JBQW9CO0lBQy9CLFlBQTZCLEtBQWlDO1FBQWpDLFVBQUssR0FBTCxLQUFLLENBQTRCO0lBQzlELENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxTQUFpQjtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsU0FBMkM7UUFDdkQsTUFBTSxVQUFVLEdBQStCLEVBQUcsQ0FBQztRQUNuRCxLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU5QixJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNwQixVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLG9CQUFvQixDQUFPLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxpQkFBaUIsQ0FBQyxFQUF5QztRQUNoRSxNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBb0MsQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBb0MsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBb0MsQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBb0MsQ0FBQztRQUU3RCxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QyxNQUFNLE1BQU0sR0FBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBRSxDQUFDO1lBQzNDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDcEMsQ0FBQztpQkFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7aUJBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBL0VELG9EQStFQztBQXNCRCxNQUFhLG1CQUFvQixTQUFRLFVBQXFCO0NBRTdEO0FBRkQsa0RBRUM7QUFHRCxNQUFhLGlCQUFrQixTQUFRLFVBQW1CO0NBRXpEO0FBRkQsOENBRUM7QUFHRCxNQUFhLGtCQUFtQixTQUFRLFVBQW9CO0NBRTNEO0FBRkQsZ0RBRUM7QUFHRCxNQUFhLGdCQUFpQixTQUFRLFVBQWtCO0NBRXZEO0FBRkQsNENBRUM7QUFHRCxNQUFhLG1CQUFvQixTQUFRLFVBQXFCO0NBRTdEO0FBRkQsa0RBRUM7QUFFRCxJQUFZLGNBaUJYO0FBakJELFdBQVksY0FBYztJQUN4QixxREFBcUQ7SUFDckQsNkNBQTJCLENBQUE7SUFDM0IsOENBQThDO0lBQzlDLDZDQUEyQixDQUFBO0lBQzNCLHNEQUFzRDtJQUN0RCwrQ0FBNkIsQ0FBQTtJQUM3QixxREFBcUQ7SUFDckQsNkNBQTJCLENBQUE7SUFDM0IsdURBQXVEO0lBQ3ZELCtDQUE2QixDQUFBO0lBQzdCLHFGQUFxRjtJQUNyRiw2Q0FBMkIsQ0FBQTtJQUMzQixpRkFBaUY7SUFDakYsNkNBQTJCLENBQUE7SUFDM0IsMENBQTBDO0lBQzFDLHlDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFqQlcsY0FBYyw4QkFBZCxjQUFjLFFBaUJ6QjtBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsV0FBVyxDQUFDLEdBQW1CLEVBQUUsR0FBb0I7SUFDNUQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUc7UUFDZCxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzdCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUMvQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQy9CLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUMvQixDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ2hDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7S0FDakMsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDakQsQ0FBQztBQWVEOzs7O0dBSUc7QUFDSCxNQUFhLGtCQUFrQjtJQTJCN0IsWUFDa0IsUUFBOEIsRUFDOUIsUUFBOEIsRUFDOUMsSUFJQztRQU5lLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBTzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRWxDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxLQUFLLFNBQVMsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsS0FBSyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ25GLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsZUFBZTtRQUN4QixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssU0FBUztlQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxTQUFTO2VBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxpQkFBaUIsQ0FBQyxZQUFvQixFQUFFLE1BQStCO1FBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksY0FBYyxDQUFDLFNBQWlCLEVBQUUsTUFBK0I7UUFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDcEMsQ0FBQztRQUNELHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLElBQUksQ0FBQyxRQUFTLENBQUMsY0FBYyxLQUFLLFFBQVE7b0JBQy9DLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVztvQkFDNUIsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUM7WUFDbEMsQ0FBQztZQUNELE9BQU8sY0FBYyxDQUFDLFlBQVksQ0FBQztRQUNyQyxDQUFDO1FBRUQsb0VBQW9FO1FBQ3BFLHFGQUFxRjtRQUNyRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBRXJILE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ3JDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDNUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNO2NBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxpQkFBaUIsQ0FBQyxFQUF1RztRQUM5SCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDM0QsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEQsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF0TEQsZ0RBc0xDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUksSUFBbUI7SUFDekQsT0FBUSxJQUE4QixDQUFDLFlBQVksS0FBSyxTQUFTLENBQUM7QUFDcEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxXQUFXLENBQThCLEVBQXdCO0lBQ3hFLE1BQU0sR0FBRyxHQUF5QixFQUFFLENBQUM7SUFDckMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXJ0aW9uRXJyb3IgfSBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSBhcyBSZXNvdXJjZU1vZGVsIH0gZnJvbSAnQGF3cy1jZGsvc2VydmljZS1zcGVjLXR5cGVzJztcbmltcG9ydCB7IFByb3BlcnR5U2NydXRpbnlUeXBlLCBSZXNvdXJjZVNjcnV0aW55VHlwZSB9IGZyb20gJ0Bhd3MtY2RrL3NlcnZpY2Utc3BlYy10eXBlcyc7XG5pbXBvcnQgeyBkZWVwRXF1YWwsIGxvYWRSZXNvdXJjZU1vZGVsIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IElhbUNoYW5nZXMgfSBmcm9tICcuLi9pYW0vaWFtLWNoYW5nZXMnO1xuaW1wb3J0IHsgU2VjdXJpdHlHcm91cENoYW5nZXMgfSBmcm9tICcuLi9uZXR3b3JrL3NlY3VyaXR5LWdyb3VwLWNoYW5nZXMnO1xuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eU1hcCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbmV4cG9ydCB0eXBlIENoYW5nZVNldFJlc291cmNlcyA9IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogQ2hhbmdlU2V0UmVzb3VyY2UgfTtcblxuLyoqXG4gKiBAcGFyYW0gYmVmb3JlQ29udGV4dCAtIGlzIHRoZSBCZWZvcmVDb250ZXh0IGZpZWxkIGZyb20gdGhlIENoYW5nZVNldC5SZXNvdXJjZUNoYW5nZS5CZWZvcmVDb250ZXh0LiBUaGlzIGlzIHRoZSBwYXJ0IG9mIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICogdGhhdCBkZWZpbmVzIHdoYXQgdGhlIHJlc291cmNlIGlzIGJlZm9yZSB0aGUgY2hhbmdlIGlzIGFwcGxpZWQ7IHRoYXQgaXMsIEJlZm9yZUNvbnRleHQgaXMgQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZS5SZXNvdXJjZXNbTG9naWNhbElkXSBiZWZvcmUgdGhlIENoYW5nZVNldCBpcyBleGVjdXRlZC5cbiAqXG4gKiBAcGFyYW0gYWZ0ZXJDb250ZXh0IC0gc2FtZSBhcyBiZWZvcmVDb250ZXh0IGJ1dCBmb3IgYWZ0ZXIgdGhlIGNoYW5nZSBpcyBtYWRlOyB0aGF0IGlzLCBBZnRlckNvbnRleHQgaXMgQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZS5SZXNvdXJjZXNbTG9naWNhbElkXSBhZnRlciB0aGUgQ2hhbmdlU2V0IGlzIGV4ZWN1dGVkLlxuICpcbiAqICAqIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiB3aGF0IGEgYmVmb3JlQ29udGV4dC9hZnRlckNvbnRleHQgbG9va3MgbGlrZTpcbiAqICAne1wiUHJvcGVydGllc1wiOntcIlZhbHVlXCI6XCJzZGZsa2phXCIsXCJUeXBlXCI6XCJTdHJpbmdcIixcIk5hbWVcIjpcIm15U3NtUGFyYW1ldGVyRnJvbVN0YWNrXCJ9LFwiTWV0YWRhdGFcIjp7XCJhd3M6Y2RrOnBhdGhcIjpcImNkay9teVNzbVBhcmFtZXRlci9SZXNvdXJjZVwifX0nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0UmVzb3VyY2Uge1xuICByZXNvdXJjZVdhc1JlcGxhY2VkOiBib29sZWFuO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJvcGVydHlSZXBsYWNlbWVudE1vZGVzOiBQcm9wZXJ0eVJlcGxhY2VtZW50TW9kZU1hcCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgUHJvcGVydHlSZXBsYWNlbWVudE1vZGVNYXAgPSB7XG4gIFtwcm9wZXJ0eU5hbWU6IHN0cmluZ106IHtcbiAgICByZXBsYWNlbWVudE1vZGU6IFJlcGxhY2VtZW50TW9kZXMgfCB1bmRlZmluZWQ7XG4gIH07XG59O1xuXG4vKipcbiAqICdBbHdheXMnIG1lYW5zIHRoYXQgY2hhbmdpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgd2lsbCBhbHdheXMgY2F1c2UgYSByZXNvdXJjZSByZXBsYWNlbWVudC4gTmV2ZXIgbWVhbnMgbmV2ZXIuIENvbmRpdGlvbmFsbHkgbWVhbnMgbWF5YmUuXG4gKi9cbmV4cG9ydCB0eXBlIFJlcGxhY2VtZW50TW9kZXMgPSAnQWx3YXlzJyB8ICdOZXZlcicgfCAnQ29uZGl0aW9uYWxseSc7XG5cbi8qKiBTZW1hbnRpYyBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZXMuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVEaWZmIGltcGxlbWVudHMgSVRlbXBsYXRlRGlmZiB7XG4gIHB1YmxpYyBhd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb24/OiBEaWZmZXJlbmNlPHN0cmluZz47XG4gIHB1YmxpYyBkZXNjcmlwdGlvbj86IERpZmZlcmVuY2U8c3RyaW5nPjtcbiAgcHVibGljIHRyYW5zZm9ybT86IERpZmZlcmVuY2U8c3RyaW5nPjtcbiAgcHVibGljIGNvbmRpdGlvbnM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPENvbmRpdGlvbiwgQ29uZGl0aW9uRGlmZmVyZW5jZT47XG4gIHB1YmxpYyBtYXBwaW5nczogRGlmZmVyZW5jZUNvbGxlY3Rpb248TWFwcGluZywgTWFwcGluZ0RpZmZlcmVuY2U+O1xuICBwdWJsaWMgbWV0YWRhdGE6IERpZmZlcmVuY2VDb2xsZWN0aW9uPE1ldGFkYXRhLCBNZXRhZGF0YURpZmZlcmVuY2U+O1xuICBwdWJsaWMgb3V0cHV0czogRGlmZmVyZW5jZUNvbGxlY3Rpb248T3V0cHV0LCBPdXRwdXREaWZmZXJlbmNlPjtcbiAgcHVibGljIHBhcmFtZXRlcnM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPFBhcmFtZXRlciwgUGFyYW1ldGVyRGlmZmVyZW5jZT47XG4gIHB1YmxpYyByZXNvdXJjZXM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPFJlc291cmNlLCBSZXNvdXJjZURpZmZlcmVuY2U+O1xuICAvKiogVGhlIGRpZmZlcmVuY2VzIGluIHVua25vd24vdW5leHBlY3RlZCBwYXJ0cyBvZiB0aGUgdGVtcGxhdGUgKi9cbiAgcHVibGljIHVua25vd246IERpZmZlcmVuY2VDb2xsZWN0aW9uPGFueSwgRGlmZmVyZW5jZTxhbnk+PjtcblxuICAvKipcbiAgICogQ2hhbmdlcyB0byBJQU0gcG9saWNpZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpYW1DaGFuZ2VzOiBJYW1DaGFuZ2VzO1xuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRvIFNlY3VyaXR5IEdyb3VwIGluZ3Jlc3MgYW5kIGVncmVzcyBydWxlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBDaGFuZ2VzOiBTZWN1cml0eUdyb3VwQ2hhbmdlcztcblxuICBjb25zdHJ1Y3RvcihhcmdzOiBJVGVtcGxhdGVEaWZmKSB7XG4gICAgaWYgKGFyZ3MuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uID0gYXJncy5hd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb247XG4gICAgfVxuICAgIGlmIChhcmdzLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBhcmdzLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBpZiAoYXJncy50cmFuc2Zvcm0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2Zvcm0gPSBhcmdzLnRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmRpdGlvbnMgPSBhcmdzLmNvbmRpdGlvbnMgfHwgbmV3IERpZmZlcmVuY2VDb2xsZWN0aW9uKHt9KTtcbiAgICB0aGlzLm1hcHBpbmdzID0gYXJncy5tYXBwaW5ncyB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuICAgIHRoaXMubWV0YWRhdGEgPSBhcmdzLm1ldGFkYXRhIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5vdXRwdXRzID0gYXJncy5vdXRwdXRzIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gYXJncy5wYXJhbWV0ZXJzIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSBhcmdzLnJlc291cmNlcyB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuICAgIHRoaXMudW5rbm93biA9IGFyZ3MudW5rbm93biB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuXG4gICAgdGhpcy5pYW1DaGFuZ2VzID0gbmV3IElhbUNoYW5nZXMoe1xuICAgICAgcHJvcGVydHlDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVQcm9wZXJ0eUNoYW5nZXMoSWFtQ2hhbmdlcy5JYW1Qcm9wZXJ0eVNjcnV0aW5pZXMpLFxuICAgICAgcmVzb3VyY2VDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVSZXNvdXJjZUNoYW5nZXMoSWFtQ2hhbmdlcy5JYW1SZXNvdXJjZVNjcnV0aW5pZXMpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWN1cml0eUdyb3VwQ2hhbmdlcyA9IG5ldyBTZWN1cml0eUdyb3VwQ2hhbmdlcyh7XG4gICAgICBlZ3Jlc3NSdWxlUHJvcGVydHlDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVQcm9wZXJ0eUNoYW5nZXMoW1Byb3BlcnR5U2NydXRpbnlUeXBlLkVncmVzc1J1bGVzXSksXG4gICAgICBpbmdyZXNzUnVsZVByb3BlcnR5Q2hhbmdlczogdGhpcy5zY3J1dGluaXphYmxlUHJvcGVydHlDaGFuZ2VzKFtQcm9wZXJ0eVNjcnV0aW55VHlwZS5JbmdyZXNzUnVsZXNdKSxcbiAgICAgIGVncmVzc1J1bGVSZXNvdXJjZUNoYW5nZXM6IHRoaXMuc2NydXRpbml6YWJsZVJlc291cmNlQ2hhbmdlcyhbUmVzb3VyY2VTY3J1dGlueVR5cGUuRWdyZXNzUnVsZVJlc291cmNlXSksXG4gICAgICBpbmdyZXNzUnVsZVJlc291cmNlQ2hhbmdlczogdGhpcy5zY3J1dGluaXphYmxlUmVzb3VyY2VDaGFuZ2VzKFtSZXNvdXJjZVNjcnV0aW55VHlwZS5JbmdyZXNzUnVsZVJlc291cmNlXSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZlcmVuY2VDb3VudCgpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgaWYgKHRoaXMuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvdW50ICs9IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvdW50ICs9IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLnRyYW5zZm9ybSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb3VudCArPSAxO1xuICAgIH1cblxuICAgIGNvdW50ICs9IHRoaXMuY29uZGl0aW9ucy5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5tYXBwaW5ncy5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5tZXRhZGF0YS5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5vdXRwdXRzLmRpZmZlcmVuY2VDb3VudDtcbiAgICBjb3VudCArPSB0aGlzLnBhcmFtZXRlcnMuZGlmZmVyZW5jZUNvdW50O1xuICAgIGNvdW50ICs9IHRoaXMucmVzb3VyY2VzLmRpZmZlcmVuY2VDb3VudDtcbiAgICBjb3VudCArPSB0aGlzLnVua25vd24uZGlmZmVyZW5jZUNvdW50O1xuXG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpZmZlcmVuY2VDb3VudCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbnkgb2YgdGhlIHBlcm1pc3Npb25zIG9iamVjdHMgaW52b2x2ZSBhIGJyb2FkZW5pbmcgb2YgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBnZXQgcGVybWlzc2lvbnNCcm9hZGVuZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWFtQ2hhbmdlcy5wZXJtaXNzaW9uc0Jyb2FkZW5lZCB8fCB0aGlzLnNlY3VyaXR5R3JvdXBDaGFuZ2VzLnJ1bGVzQWRkZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgYW55IG9mIHRoZSBwZXJtaXNzaW9ucyBvYmplY3RzIGhhdmUgY2hhbmdlZFxuICAgKi9cbiAgcHVibGljIGdldCBwZXJtaXNzaW9uc0FueUNoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWFtQ2hhbmdlcy5oYXNDaGFuZ2VzIHx8IHRoaXMuc2VjdXJpdHlHcm91cENoYW5nZXMuaGFzQ2hhbmdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHByb3BlcnR5IGNoYW5nZXMgb2YgYSBnaXZlbiBzY3J1dGlueSB0eXBlXG4gICAqXG4gICAqIFdlIGRvbid0IGp1c3QgbG9vayBhdCBwcm9wZXJ0eSB1cGRhdGVzOyB3ZSBhbHNvIGxvb2sgYXQgcmVzb3VyY2UgYWRkaXRpb25zIGFuZCBkZWxldGlvbnMgKGluIHdoaWNoXG4gICAqIGNhc2UgdGhlcmUgaXMgbm8gZnVydGhlciBkZXRhaWwgb24gcHJvcGVydHkgdmFsdWVzKSwgYW5kIHJlc291cmNlIHR5cGUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgc2NydXRpbml6YWJsZVByb3BlcnR5Q2hhbmdlcyhzY3J1dGlueVR5cGVzOiBQcm9wZXJ0eVNjcnV0aW55VHlwZVtdKTogUHJvcGVydHlDaGFuZ2VbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFByb3BlcnR5Q2hhbmdlPigpO1xuXG4gICAgZm9yIChjb25zdCBbcmVzb3VyY2VMb2dpY2FsSWQsIHJlc291cmNlQ2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnJlc291cmNlcy5jaGFuZ2VzKSkge1xuICAgICAgaWYgKHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gd2UgaWdub3JlIHJlc291cmNlIHR5cGUgY2hhbmdlcyBoZXJlLCBhbmQgaGFuZGxlIHRoZW0gaW4gc2NydXRpbml6YWJsZVJlc291cmNlQ2hhbmdlcygpXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZSkge1xuICAgICAgICAvLyBXZSB1c2UgcmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VUeXBlIHRvIGxvYWRSZXNvdXJjZU1vZGVsIHNvIHRoYXQgd2UgY2FuIGluc3BlY3QgdGhlXG4gICAgICAgIC8vIHByb3BlcnRpZXMgb2YgYSByZXNvdXJjZSBldmVuIGFmdGVyIHRoZSByZXNvdXJjZSBpcyByZW1vdmVkIGZyb20gdGhlIHRlbXBsYXRlLlxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3VHlwZVByb3BzID0gbG9hZFJlc291cmNlTW9kZWwocmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VUeXBlKT8ucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgcHJvcF0gb2YgT2JqZWN0LmVudHJpZXMobmV3VHlwZVByb3BzKSkge1xuICAgICAgICBjb25zdCBwcm9wU2NydXRpbnlUeXBlID0gcHJvcC5zY3J1dGluaXphYmxlIHx8IFByb3BlcnR5U2NydXRpbnlUeXBlLk5vbmU7XG4gICAgICAgIGlmIChzY3J1dGlueVR5cGVzLmluY2x1ZGVzKHByb3BTY3J1dGlueVR5cGUpKSB7XG4gICAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgICAgcmVzb3VyY2VMb2dpY2FsSWQsXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZSxcbiAgICAgICAgICAgIHNjcnV0aW55VHlwZTogcHJvcFNjcnV0aW55VHlwZSxcbiAgICAgICAgICAgIG9sZFZhbHVlOiByZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzPy5bcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICAgIG5ld1ZhbHVlOiByZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzPy5bcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCByZXNvdXJjZSBjaGFuZ2VzIG9mIGEgZ2l2ZW4gc2NydXRpbnkgdHlwZVxuICAgKlxuICAgKiBXZSBkb24ndCBqdXN0IGxvb2sgYXQgcmVzb3VyY2UgdXBkYXRlczsgd2UgYWxzbyBsb29rIGF0IHJlc291cmNlIGFkZGl0aW9ucyBhbmQgZGVsZXRpb25zIChpbiB3aGljaFxuICAgKiBjYXNlIHRoZXJlIGlzIG5vIGZ1cnRoZXIgZGV0YWlsIG9uIHByb3BlcnR5IHZhbHVlcyksIGFuZCByZXNvdXJjZSB0eXBlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIHNjcnV0aW5pemFibGVSZXNvdXJjZUNoYW5nZXMoc2NydXRpbnlUeXBlczogUmVzb3VyY2VTY3J1dGlueVR5cGVbXSk6IFJlc291cmNlQ2hhbmdlW10ge1xuICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxSZXNvdXJjZUNoYW5nZT4oKTtcblxuICAgIGZvciAoY29uc3QgW3Jlc291cmNlTG9naWNhbElkLCByZXNvdXJjZUNoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5yZXNvdXJjZXMuY2hhbmdlcykpIHtcbiAgICAgIGlmICghcmVzb3VyY2VDaGFuZ2UpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbW1vblByb3BzID0ge1xuICAgICAgICBvbGRQcm9wZXJ0aWVzOiByZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzLFxuICAgICAgICBuZXdQcm9wZXJ0aWVzOiByZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzLFxuICAgICAgICByZXNvdXJjZUxvZ2ljYWxJZCxcbiAgICAgIH07XG5cbiAgICAgIC8vIGNoYW5nZXMgdG8gdGhlIFR5cGUgb2YgcmVzb3VyY2VzIGNhbiBoYXBwZW4gd2hlbiBtaWdyYXRpbmcgZnJvbSBDRk4gdGVtcGxhdGVzIHRoYXQgdXNlIFRyYW5zZm9ybXNcbiAgICAgIGlmIChyZXNvdXJjZUNoYW5nZS5yZXNvdXJjZVR5cGVDaGFuZ2VkKSB7XG4gICAgICAgIC8vIFRyZWF0IGFzIERFTEVURStBRERcbiAgICAgICAgaWYgKHJlc291cmNlQ2hhbmdlLm9sZFJlc291cmNlVHlwZSkge1xuICAgICAgICAgIGNvbnN0IG9sZFJlc291cmNlTW9kZWwgPSBsb2FkUmVzb3VyY2VNb2RlbChyZXNvdXJjZUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUpO1xuICAgICAgICAgIGlmIChvbGRSZXNvdXJjZU1vZGVsICYmIHRoaXMucmVzb3VyY2VJc1NjcnV0aW5pemFibGUob2xkUmVzb3VyY2VNb2RlbCwgc2NydXRpbnlUeXBlcykpIHtcbiAgICAgICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICAgICAgLi4uY29tbW9uUHJvcHMsXG4gICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiByZXNvdXJjZUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUhLFxuICAgICAgICAgICAgICBzY3J1dGlueVR5cGU6IG9sZFJlc291cmNlTW9kZWwuc2NydXRpbml6YWJsZSEsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzb3VyY2VDaGFuZ2UubmV3UmVzb3VyY2VUeXBlKSB7XG4gICAgICAgICAgY29uc3QgbmV3UmVzb3VyY2VNb2RlbCA9IGxvYWRSZXNvdXJjZU1vZGVsKHJlc291cmNlQ2hhbmdlLm5ld1Jlc291cmNlVHlwZSk7XG4gICAgICAgICAgaWYgKG5ld1Jlc291cmNlTW9kZWwgJiYgdGhpcy5yZXNvdXJjZUlzU2NydXRpbml6YWJsZShuZXdSZXNvdXJjZU1vZGVsLCBzY3J1dGlueVR5cGVzKSkge1xuICAgICAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgICAgICAuLi5jb21tb25Qcm9wcyxcbiAgICAgICAgICAgICAgb2xkUHJvcGVydGllczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlQ2hhbmdlLm5ld1Jlc291cmNlVHlwZSEsXG4gICAgICAgICAgICAgIHNjcnV0aW55VHlwZTogbmV3UmVzb3VyY2VNb2RlbC5zY3J1dGluaXphYmxlISxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFyZXNvdXJjZUNoYW5nZS5yZXNvdXJjZVR5cGUpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc291cmNlTW9kZWwgPSBsb2FkUmVzb3VyY2VNb2RlbChyZXNvdXJjZUNoYW5nZS5yZXNvdXJjZVR5cGUpO1xuICAgICAgICBpZiAocmVzb3VyY2VNb2RlbCAmJiB0aGlzLnJlc291cmNlSXNTY3J1dGluaXphYmxlKHJlc291cmNlTW9kZWwsIHNjcnV0aW55VHlwZXMpKSB7XG4gICAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgICAgLi4uY29tbW9uUHJvcHMsXG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZSxcbiAgICAgICAgICAgIHNjcnV0aW55VHlwZTogcmVzb3VyY2VNb2RlbC5zY3J1dGluaXphYmxlISxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIHJlc291cmNlSXNTY3J1dGluaXphYmxlKHJlczogUmVzb3VyY2VNb2RlbCwgc2NydXRpbnlUeXBlczogQXJyYXk8UmVzb3VyY2VTY3J1dGlueVR5cGU+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNjcnV0aW55VHlwZXMuaW5jbHVkZXMocmVzLnNjcnV0aW5pemFibGUgfHwgUmVzb3VyY2VTY3J1dGlueVR5cGUuTm9uZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNoYW5nZSBpbiBwcm9wZXJ0eSB2YWx1ZXNcbiAqXG4gKiBOb3QgbmVjZXNzYXJpbHkgYW4gdXBkYXRlLCBpdCBjb3VsZCBiZSB0aGF0IHRoZXJlIHVzZWQgdG8gYmUgbm8gdmFsdWUgdGhlcmVcbiAqIGJlY2F1c2UgdGhlcmUgd2FzIG5vIHJlc291cmNlLCBhbmQgbm93IHRoZXJlIGlzIChvciB2aWNlIHZlcnNhKS5cbiAqXG4gKiBUaGVyZWZvcmUsIHdlIGp1c3QgY29udGFpbiBwbGFpbiB2YWx1ZXMgYW5kIG5vdCBhIFByb3BlcnR5RGlmZmVyZW5jZTxhbnk+LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5Q2hhbmdlIHtcbiAgLyoqXG4gICAqIExvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlIHdoZXJlIHRoaXMgcHJvcGVydHkgY2hhbmdlIHdhcyBmb3VuZFxuICAgKi9cbiAgcmVzb3VyY2VMb2dpY2FsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgcmVzb3VyY2VcbiAgICovXG4gIHJlc291cmNlVHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTY3J1dGlueSB0eXBlIGZvciB0aGlzIHByb3BlcnR5IGNoYW5nZVxuICAgKi9cbiAgc2NydXRpbnlUeXBlOiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcHJvcGVydHkgdGhhdCBpcyBjaGFuZ2luZ1xuICAgKi9cbiAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvbGQgcHJvcGVydHkgdmFsdWVcbiAgICovXG4gIG9sZFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbmV3IHByb3BlcnR5IHZhbHVlXG4gICAqL1xuICBuZXdWYWx1ZT86IGFueTtcbn1cblxuLyoqXG4gKiBBIHJlc291cmNlIGNoYW5nZVxuICpcbiAqIEVpdGhlciBhIGNyZWF0aW9uLCBkZWxldGlvbiBvciB1cGRhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDaGFuZ2Uge1xuICAvKipcbiAgICogTG9naWNhbCBJRCBvZiB0aGUgcmVzb3VyY2Ugd2hlcmUgdGhpcyBwcm9wZXJ0eSBjaGFuZ2Ugd2FzIGZvdW5kXG4gICAqL1xuICByZXNvdXJjZUxvZ2ljYWxJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTY3J1dGlueSB0eXBlIGZvciB0aGlzIHJlc291cmNlIGNoYW5nZVxuICAgKi9cbiAgc2NydXRpbnlUeXBlOiBSZXNvdXJjZVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlc291cmNlXG4gICAqL1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9sZCBwcm9wZXJ0aWVzIHZhbHVlIChtaWdodCBiZSB1bmRlZmluZWQgaW4gY2FzZSBvZiBjcmVhdGlvbilcbiAgICovXG4gIG9sZFByb3BlcnRpZXM/OiBQcm9wZXJ0eU1hcDtcblxuICAvKipcbiAgICogVGhlIG5ldyBwcm9wZXJ0aWVzIHZhbHVlIChtaWdodCBiZSB1bmRlZmluZWQgaW4gY2FzZSBvZiBkZWxldGlvbilcbiAgICovXG4gIG5ld1Byb3BlcnRpZXM/OiBQcm9wZXJ0eU1hcDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGlmZmVyZW5jZTxWYWx1ZVR5cGU+IHtcbiAgcmVhZG9ubHkgb2xkVmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgaXNEaWZmZXJlbnQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlzQWRkaXRpb246IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlzUmVtb3ZhbDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaXNVcGRhdGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogTW9kZWxzIGFuIGVudGl0eSB0aGF0IGNoYW5nZWQgYmV0d2VlbiB0d28gdmVyc2lvbnMgb2YgYSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERpZmZlcmVuY2U8VmFsdWVUeXBlPiBpbXBsZW1lbnRzIElEaWZmZXJlbmNlPFZhbHVlVHlwZT4ge1xuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGFjdHVhbCBkaWZmZXJlbnQgb3IgdGhlIHZhbHVlcyBhcmUgYWN0dWFsbHkgdGhlIHNhbWVcbiAgICpcbiAgICogaXNEaWZmZXJlbnQgPT4gKGlzVXBkYXRlIHwgaXNSZW1vdmVkIHwgaXNVcGRhdGUpXG4gICAqL1xuICBwdWJsaWMgaXNEaWZmZXJlbnQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvbGRWYWx1ZSAtIHRoZSBvbGQgdmFsdWUsIGNhbm5vdCBiZSBlcXVhbCAodG8gdGhlIHNlbnNlIG9mICtkZWVwRXF1YWwrKSB0byArbmV3VmFsdWUrLlxuICAgKiBAcGFyYW0gbmV3VmFsdWUgLSB0aGUgbmV3IHZhbHVlLCBjYW5ub3QgYmUgZXF1YWwgKHRvIHRoZSBzZW5zZSBvZiArZGVlcEVxdWFsKykgdG8gK29sZFZhbHVlKy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBvbGRWYWx1ZTogVmFsdWVUeXBlIHwgdW5kZWZpbmVkLCBwdWJsaWMgcmVhZG9ubHkgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcih7IG1lc3NhZ2U6ICdvbGRWYWx1ZSBhbmQgbmV3VmFsdWUgYXJlIGJvdGggdW5kZWZpbmVkIScgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNEaWZmZXJlbnQgPSAhZGVlcEVxdWFsKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gIH1cblxuICAvKiogQHJldHVybnMgK3RydWUrIGlmIHRoZSBlbGVtZW50IGlzIG5ldyB0byB0aGUgdGVtcGxhdGUuICovXG4gIHB1YmxpYyBnZXQgaXNBZGRpdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vbGRWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIEByZXR1cm5zICt0cnVlKyBpZiB0aGUgZWxlbWVudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSB0ZW1wbGF0ZS4gKi9cbiAgcHVibGljIGdldCBpc1JlbW92YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmV3VmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyArdHJ1ZSsgaWYgdGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgaW4gdGhlIHRlbXBsYXRlIGFuZCBpcyB1cGRhdGVkLiAqL1xuICBwdWJsaWMgZ2V0IGlzVXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9sZFZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICYmIHRoaXMubmV3VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlEaWZmZXJlbmNlPFZhbHVlVHlwZT4gZXh0ZW5kcyBEaWZmZXJlbmNlPFZhbHVlVHlwZT4ge1xuICBwdWJsaWMgY2hhbmdlSW1wYWN0PzogUmVzb3VyY2VJbXBhY3Q7XG5cbiAgY29uc3RydWN0b3Iob2xkVmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCwgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCwgYXJnczogeyBjaGFuZ2VJbXBhY3Q/OiBSZXNvdXJjZUltcGFjdCB9KSB7XG4gICAgc3VwZXIob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZUltcGFjdCA9IGFyZ3MuY2hhbmdlSW1wYWN0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUIGV4dGVuZHMgSURpZmZlcmVuY2U8Vj4+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWZmczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBUIH0pIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhbmdlcygpOiB7IFtsb2dpY2FsSWQ6IHN0cmluZ106IFQgfSB7XG4gICAgcmV0dXJuIG9ubHlDaGFuZ2VzKHRoaXMuZGlmZnMpO1xuICB9XG5cbiAgcHVibGljIGdldCBkaWZmZXJlbmNlQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmNoYW5nZXMpLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQobG9naWNhbElkOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCByZXQgPSB0aGlzLmRpZmZzW2xvZ2ljYWxJZF07XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gb2JqZWN0IHdpdGggbG9naWNhbCBJRCAnJHtsb2dpY2FsSWR9J2ApO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShsb2dpY2FsSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLmRpZmZzW2xvZ2ljYWxJZF07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvZ2ljYWxJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoYW5nZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgVGVtcGxhdGVEaWZmIHdoaWNoIG9ubHkgY29udGFpbnMgY2hhbmdlcyBmb3Igd2hpY2ggYHByZWRpY2F0ZWBcbiAgICogcmV0dXJucyBgdHJ1ZWAuXG4gICAqL1xuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKGRpZmY6IFQgfCB1bmRlZmluZWQpID0+IGJvb2xlYW4pOiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUPiB7XG4gICAgY29uc3QgbmV3Q2hhbmdlczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBUIH0gPSB7IH07XG4gICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyh0aGlzLmNoYW5nZXMpKSB7XG4gICAgICBjb25zdCBkaWZmID0gdGhpcy5jaGFuZ2VzW2lkXTtcblxuICAgICAgaWYgKHByZWRpY2F0ZShkaWZmKSkge1xuICAgICAgICBuZXdDaGFuZ2VzW2lkXSA9IGRpZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUPihuZXdDaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VzIGBjYmAgZm9yIGFsbCBjaGFuZ2VzIGluIHRoaXMgY29sbGVjdGlvbi5cbiAgICpcbiAgICogQ2hhbmdlcyB3aWxsIGJlIHNvcnRlZCBhcyBmb2xsb3dzOlxuICAgKiAgLSBSZW1vdmVkXG4gICAqICAtIEFkZGVkXG4gICAqICAtIFVwZGF0ZWRcbiAgICogIC0gT3RoZXJzXG4gICAqXG4gICAqL1xuICBwdWJsaWMgZm9yRWFjaERpZmZlcmVuY2UoY2I6IChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiBUKSA9PiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCByZW1vdmVkID0gbmV3IEFycmF5PHsgbG9naWNhbElkOiBzdHJpbmc7IGNoYW5nZTogVCB9PigpO1xuICAgIGNvbnN0IGFkZGVkID0gbmV3IEFycmF5PHsgbG9naWNhbElkOiBzdHJpbmc7IGNoYW5nZTogVCB9PigpO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgQXJyYXk8eyBsb2dpY2FsSWQ6IHN0cmluZzsgY2hhbmdlOiBUIH0+KCk7XG4gICAgY29uc3Qgb3RoZXJzID0gbmV3IEFycmF5PHsgbG9naWNhbElkOiBzdHJpbmc7IGNoYW5nZTogVCB9PigpO1xuXG4gICAgZm9yIChjb25zdCBsb2dpY2FsSWQgb2YgdGhpcy5sb2dpY2FsSWRzKSB7XG4gICAgICBjb25zdCBjaGFuZ2U6IFQgPSB0aGlzLmNoYW5nZXNbbG9naWNhbElkXSE7XG4gICAgICBpZiAoY2hhbmdlLmlzQWRkaXRpb24pIHtcbiAgICAgICAgYWRkZWQucHVzaCh7IGxvZ2ljYWxJZCwgY2hhbmdlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNSZW1vdmFsKSB7XG4gICAgICAgIHJlbW92ZWQucHVzaCh7IGxvZ2ljYWxJZCwgY2hhbmdlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNVcGRhdGUpIHtcbiAgICAgICAgdXBkYXRlZC5wdXNoKHsgbG9naWNhbElkLCBjaGFuZ2UgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNoYW5nZS5pc0RpZmZlcmVudCkge1xuICAgICAgICBvdGhlcnMucHVzaCh7IGxvZ2ljYWxJZCwgY2hhbmdlIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZWQuZm9yRWFjaCh2ID0+IGNiKHYubG9naWNhbElkLCB2LmNoYW5nZSkpO1xuICAgIGFkZGVkLmZvckVhY2godiA9PiBjYih2LmxvZ2ljYWxJZCwgdi5jaGFuZ2UpKTtcbiAgICB1cGRhdGVkLmZvckVhY2godiA9PiBjYih2LmxvZ2ljYWxJZCwgdi5jaGFuZ2UpKTtcbiAgICBvdGhlcnMuZm9yRWFjaCh2ID0+IGNiKHYubG9naWNhbElkLCB2LmNoYW5nZSkpO1xuICB9XG59XG5cbi8qKlxuICogQXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBjb25zdHJ1Y3RvciBvZiArVGVtcGxhdGVEaWZmKywgZXh0cmFjdGVkIGFzIGFuIGludGVyZmFjZSBmb3IgdGhlIHNha2VcbiAqIG9mIChyZWxhdGl2ZSkgY29uY2lzZW5lc3Mgb2YgdGhlIGNvbnN0cnVjdG9yJ3Mgc2lnbmF0dXJlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUZW1wbGF0ZURpZmYge1xuICBhd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb24/OiBJRGlmZmVyZW5jZTxzdHJpbmc+O1xuICBkZXNjcmlwdGlvbj86IElEaWZmZXJlbmNlPHN0cmluZz47XG4gIHRyYW5zZm9ybT86IElEaWZmZXJlbmNlPHN0cmluZz47XG5cbiAgY29uZGl0aW9ucz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPENvbmRpdGlvbiwgQ29uZGl0aW9uRGlmZmVyZW5jZT47XG4gIG1hcHBpbmdzPzogRGlmZmVyZW5jZUNvbGxlY3Rpb248TWFwcGluZywgTWFwcGluZ0RpZmZlcmVuY2U+O1xuICBtZXRhZGF0YT86IERpZmZlcmVuY2VDb2xsZWN0aW9uPE1ldGFkYXRhLCBNZXRhZGF0YURpZmZlcmVuY2U+O1xuICBvdXRwdXRzPzogRGlmZmVyZW5jZUNvbGxlY3Rpb248T3V0cHV0LCBPdXRwdXREaWZmZXJlbmNlPjtcbiAgcGFyYW1ldGVycz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPFBhcmFtZXRlciwgUGFyYW1ldGVyRGlmZmVyZW5jZT47XG4gIHJlc291cmNlcz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPFJlc291cmNlLCBSZXNvdXJjZURpZmZlcmVuY2U+O1xuXG4gIHVua25vd24/OiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxhbnksIElEaWZmZXJlbmNlPGFueT4+O1xufVxuXG5leHBvcnQgdHlwZSBDb25kaXRpb24gPSBhbnk7XG5leHBvcnQgY2xhc3MgQ29uZGl0aW9uRGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8Q29uZGl0aW9uPiB7XG4gIC8vIFRPRE86IGRlZmluZSBzcGVjaWZpYyBkaWZmZXJlbmNlIGF0dHJpYnV0ZXNcbn1cblxuZXhwb3J0IHR5cGUgTWFwcGluZyA9IGFueTtcbmV4cG9ydCBjbGFzcyBNYXBwaW5nRGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8TWFwcGluZz4ge1xuICAvLyBUT0RPOiBkZWZpbmUgc3BlY2lmaWMgZGlmZmVyZW5jZSBhdHRyaWJ1dGVzXG59XG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhID0gYW55O1xuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8TWV0YWRhdGE+IHtcbiAgLy8gVE9ETzogZGVmaW5lIHNwZWNpZmljIGRpZmZlcmVuY2UgYXR0cmlidXRlc1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXQgPSBhbnk7XG5leHBvcnQgY2xhc3MgT3V0cHV0RGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8T3V0cHV0PiB7XG4gIC8vIFRPRE86IGRlZmluZSBzcGVjaWZpYyBkaWZmZXJlbmNlIGF0dHJpYnV0ZXNcbn1cblxuZXhwb3J0IHR5cGUgUGFyYW1ldGVyID0gYW55O1xuZXhwb3J0IGNsYXNzIFBhcmFtZXRlckRpZmZlcmVuY2UgZXh0ZW5kcyBEaWZmZXJlbmNlPFBhcmFtZXRlcj4ge1xuICAvLyBUT0RPOiBkZWZpbmUgc3BlY2lmaWMgZGlmZmVyZW5jZSBhdHRyaWJ1dGVzXG59XG5cbmV4cG9ydCBlbnVtIFJlc291cmNlSW1wYWN0IHtcbiAgLyoqIFRoZSBleGlzdGluZyBwaHlzaWNhbCByZXNvdXJjZSB3aWxsIGJlIHVwZGF0ZWQgKi9cbiAgV0lMTF9VUERBVEUgPSAnV0lMTF9VUERBVEUnLFxuICAvKiogQSBuZXcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSBjcmVhdGVkICovXG4gIFdJTExfQ1JFQVRFID0gJ1dJTExfQ1JFQVRFJyxcbiAgLyoqIFRoZSBleGlzdGluZyBwaHlzaWNhbCByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkICovXG4gIFdJTExfUkVQTEFDRSA9ICdXSUxMX1JFUExBQ0UnLFxuICAvKiogVGhlIGV4aXN0aW5nIHBoeXNpY2FsIHJlc291cmNlIG1heSBiZSByZXBsYWNlZCAqL1xuICBNQVlfUkVQTEFDRSA9ICdNQVlfUkVQTEFDRScsXG4gIC8qKiBUaGUgZXhpc3RpbmcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSBkZXN0cm95ZWQgKi9cbiAgV0lMTF9ERVNUUk9ZID0gJ1dJTExfREVTVFJPWScsXG4gIC8qKiBUaGUgZXhpc3RpbmcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSByZW1vdmVkIGZyb20gQ2xvdWRGb3JtYXRpb24gc3VwZXJ2aXNpb24gKi9cbiAgV0lMTF9PUlBIQU4gPSAnV0lMTF9PUlBIQU4nLFxuICAvKiogVGhlIGV4aXN0aW5nIHBoeXNpY2FsIHJlc291cmNlIHdpbGwgYmUgYWRkZWQgdG8gQ2xvdWRGb3JtYXRpb24gc3VwZXJ2aXNpb24gKi9cbiAgV0lMTF9JTVBPUlQgPSAnV0lMTF9JTVBPUlQnLFxuICAvKiogVGhlcmUgaXMgbm8gY2hhbmdlIGluIHRoaXMgcmVzb3VyY2UgKi9cbiAgTk9fQ0hBTkdFID0gJ05PX0NIQU5HRScsXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBhcyBhIHJlZHVjZXIgdG8gb2J0YWluIHRoZSByZXNvdXJjZS1sZXZlbCBpbXBhY3Qgb2YgYSBsaXN0XG4gKiBvZiBwcm9wZXJ0eS1sZXZlbCBpbXBhY3RzLlxuICogQHBhcmFtIG9uZSAtIHRoZSBjdXJyZW50IHdvcnN0IGltcGFjdCBzbyBmYXIuXG4gKiBAcGFyYW0gdHdvIC0gdGhlIG5ldyBpbXBhY3QgYmVpbmcgY29uc2lkZXJlZCAoY2FuIGJlIHVuZGVmaW5lZCwgYXMgd2UgbWF5IG5vdCBhbHdheXMgYmVcbiAqICAgICAgYWJsZSB0byBkZXRlcm1pbmUgc29tZSBwcm9wZXJ0aWVzIGltcGFjdCkuXG4gKi9cbmZ1bmN0aW9uIHdvcnN0SW1wYWN0KG9uZTogUmVzb3VyY2VJbXBhY3QsIHR3bz86IFJlc291cmNlSW1wYWN0KTogUmVzb3VyY2VJbXBhY3Qge1xuICBpZiAoIXR3bykge1xuICAgIHJldHVybiBvbmU7XG4gIH1cbiAgY29uc3QgYmFkbmVzcyA9IHtcbiAgICBbUmVzb3VyY2VJbXBhY3QuTk9fQ0hBTkdFXTogMCxcbiAgICBbUmVzb3VyY2VJbXBhY3QuV0lMTF9JTVBPUlRdOiAwLFxuICAgIFtSZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURV06IDEsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfQ1JFQVRFXTogMixcbiAgICBbUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU5dOiAzLFxuICAgIFtSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRV06IDQsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfUkVQTEFDRV06IDUsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfREVTVFJPWV06IDYsXG4gIH07XG4gIHJldHVybiBiYWRuZXNzW29uZV0gPiBiYWRuZXNzW3R3b10gPyBvbmUgOiB0d287XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2Uge1xuICBUeXBlOiBzdHJpbmc7XG4gIFByb3BlcnRpZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcblxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW92ZSB7XG4gIHJlYWRvbmx5IGRpcmVjdGlvbjogJ2Zyb20nIHwgJ3RvJztcbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc291cmNlTG9naWNhbElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRvIGEgc2luZ2xlIHJlc291cmNlIGJldHdlZW4gdHdvIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlc1xuICpcbiAqIFRoaXMgY2xhc3MgY2FuIGJlIG11dGF0ZWQgYWZ0ZXIgY29uc3RydWN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VEaWZmZXJlbmNlIGltcGxlbWVudHMgSURpZmZlcmVuY2U8UmVzb3VyY2U+IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSB3YXMgYWRkZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc0FkZGl0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcmVzb3VyY2Ugd2FzIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc1JlbW92YWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSB3YXMgaW1wb3J0ZWRcbiAgICovXG4gIHB1YmxpYyBpc0ltcG9ydD86IGJvb2xlYW47XG5cbiAgcHVibGljIG1vdmU/OiBNb3ZlO1xuXG4gIC8qKiBQcm9wZXJ0eS1sZXZlbCBjaGFuZ2VzIG9uIHRoZSByZXNvdXJjZSAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BlcnR5RGlmZnM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfTtcblxuICAvKiogQ2hhbmdlcyB0byBub24tcHJvcGVydHkgbGV2ZWwgYXR0cmlidXRlcyBvZiB0aGUgcmVzb3VyY2UgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBvdGhlckRpZmZzOiB7IFtrZXk6IHN0cmluZ106IERpZmZlcmVuY2U8YW55PiB9O1xuXG4gIC8qKiBUaGUgcmVzb3VyY2UgdHlwZSAob3Igb2xkIGFuZCBuZXcgdHlwZSBpZiBpdCBoYXMgY2hhbmdlZCkgKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZVR5cGVzOiB7IHJlYWRvbmx5IG9sZFR5cGU/OiBzdHJpbmc7IHJlYWRvbmx5IG5ld1R5cGU/OiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgb2xkVmFsdWU6IFJlc291cmNlIHwgdW5kZWZpbmVkLFxuICAgIHB1YmxpYyByZWFkb25seSBuZXdWYWx1ZTogUmVzb3VyY2UgfCB1bmRlZmluZWQsXG4gICAgYXJnczoge1xuICAgICAgcmVzb3VyY2VUeXBlOiB7IG9sZFR5cGU/OiBzdHJpbmc7IG5ld1R5cGU/OiBzdHJpbmcgfTtcbiAgICAgIHByb3BlcnR5RGlmZnM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfTtcbiAgICAgIG90aGVyRGlmZnM6IHsgW2tleTogc3RyaW5nXTogRGlmZmVyZW5jZTxhbnk+IH07XG4gICAgfSxcbiAgKSB7XG4gICAgdGhpcy5yZXNvdXJjZVR5cGVzID0gYXJncy5yZXNvdXJjZVR5cGU7XG4gICAgdGhpcy5wcm9wZXJ0eURpZmZzID0gYXJncy5wcm9wZXJ0eURpZmZzO1xuICAgIHRoaXMub3RoZXJEaWZmcyA9IGFyZ3Mub3RoZXJEaWZmcztcblxuICAgIHRoaXMuaXNBZGRpdGlvbiA9IG9sZFZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pc1JlbW92YWwgPSBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNJbXBvcnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9sZFByb3BlcnRpZXMoKTogUHJvcGVydHlNYXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9sZFZhbHVlICYmIHRoaXMub2xkVmFsdWUuUHJvcGVydGllcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmV3UHJvcGVydGllcygpOiBQcm9wZXJ0eU1hcCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubmV3VmFsdWUgJiYgdGhpcy5uZXdWYWx1ZS5Qcm9wZXJ0aWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSB3YXMgbW9kaWZpZWQgYXQgYWxsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzRGlmZmVyZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpZmZlcmVuY2VDb3VudCA+IDAgfHwgdGhpcy5vbGRSZXNvdXJjZVR5cGUgIT09IHRoaXMubmV3UmVzb3VyY2VUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlc291cmNlIHdhcyB1cGRhdGVkIGluLXBsYWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzVXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGlmZmVyZW50ICYmICF0aGlzLmlzQWRkaXRpb24gJiYgIXRoaXMuaXNSZW1vdmFsO1xuICB9XG5cbiAgcHVibGljIGdldCBvbGRSZXNvdXJjZVR5cGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZVR5cGVzLm9sZFR5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5ld1Jlc291cmNlVHlwZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgYWN0dWFsIHByb3BlcnR5IHVwZGF0ZXNcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvcGVydHlVcGRhdGVzKCk6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfSB7XG4gICAgcmV0dXJuIG9ubHlDaGFuZ2VzKHRoaXMucHJvcGVydHlEaWZmcyk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGFjdHVhbCBcIm90aGVyXCIgdXBkYXRlc1xuICAgKi9cbiAgcHVibGljIGdldCBvdGhlckNoYW5nZXMoKTogeyBba2V5OiBzdHJpbmddOiBEaWZmZXJlbmNlPGFueT4gfSB7XG4gICAgcmV0dXJuIG9ubHlDaGFuZ2VzKHRoaXMub3RoZXJEaWZmcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIHJlc291cmNlIHR5cGUgd2FzIGNoYW5nZWQgaW4gdGhpcyBkaWZmXG4gICAqXG4gICAqIFRoaXMgaXMgbm90IGEgdmFsaWQgb3BlcmF0aW9uIGluIENsb3VkRm9ybWF0aW9uIGJ1dCB0byBiZSBkZWZlbnNpdmUgd2UncmUgZ29pbmdcbiAgICogdG8gYmUgYXdhcmUgb2YgaXQgYW55d2F5LlxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZVR5cGVDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZXNvdXJjZVR5cGVzLm9sZFR5cGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAmJiB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICYmIHRoaXMucmVzb3VyY2VUeXBlcy5vbGRUeXBlICE9PSB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSByZXNvdXJjZSB0eXBlIGlmIGl0IHdhcyB1bmNoYW5nZWRcbiAgICpcbiAgICogSWYgdGhlIHJlc291cmNlIHR5cGUgd2FzIGNoYW5nZWQsIGl0J3MgYW4gZXJyb3IgdG8gY2FsbCB0aGlzLlxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGVDaGFuZ2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBnZXQgLnJlc291cmNlVHlwZSwgYmVjYXVzZSB0aGUgdHlwZSB3YXMgY2hhbmdlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZVR5cGVzLm9sZFR5cGUgfHwgdGhpcy5yZXNvdXJjZVR5cGVzLm5ld1R5cGU7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBhIFByb3BlcnR5Q2hhbmdlIGluIHRoaXMgb2JqZWN0XG4gICAqXG4gICAqIFRoaXMgYWZmZWN0cyB0aGUgcHJvcGVydHkgZGlmZiBhcyBpdCBpcyBzdW1tYXJpemVkIHRvIHVzZXJzLCBidXQgaXQgRE9FU1xuICAgKiBOT1QgYWZmZWN0IGVpdGhlciB0aGUgXCJvbGRWYWx1ZVwiIG9yIFwibmV3VmFsdWVcIiB2YWx1ZXM7IHRob3NlIHN0aWxsIGNvbnRhaW5cbiAgICogdGhlIGFjdHVhbCB0ZW1wbGF0ZSB2YWx1ZXMgYXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgKHRoZXkgbWlnaHQgc3RpbGwgYmVcbiAgICogdXNlZCBmb3IgZG93bnN0cmVhbSBwcm9jZXNzaW5nKS5cbiAgICovXG4gIHB1YmxpYyBzZXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eU5hbWU6IHN0cmluZywgY2hhbmdlOiBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pikge1xuICAgIHRoaXMucHJvcGVydHlEaWZmc1twcm9wZXJ0eU5hbWVdID0gY2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgYSBPdGhlckNoYW5nZSBpbiB0aGlzIG9iamVjdFxuICAgKlxuICAgKiBUaGlzIGFmZmVjdHMgdGhlIHByb3BlcnR5IGRpZmYgYXMgaXQgaXMgc3VtbWFyaXplZCB0byB1c2VycywgYnV0IGl0IERPRVNcbiAgICogTk9UIGFmZmVjdCBlaXRoZXIgdGhlIFwib2xkVmFsdWVcIiBvciBcIm5ld1ZhbHVlXCIgdmFsdWVzOyB0aG9zZSBzdGlsbCBjb250YWluXG4gICAqIHRoZSBhY3R1YWwgdGVtcGxhdGUgdmFsdWVzIGFzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyICh0aGV5IG1pZ2h0IHN0aWxsIGJlXG4gICAqIHVzZWQgZm9yIGRvd25zdHJlYW0gcHJvY2Vzc2luZykuXG4gICAqL1xuICBwdWJsaWMgc2V0T3RoZXJDaGFuZ2Uob3RoZXJOYW1lOiBzdHJpbmcsIGNoYW5nZTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pIHtcbiAgICB0aGlzLm90aGVyRGlmZnNbb3RoZXJOYW1lXSA9IGNoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhbmdlSW1wYWN0KCk6IFJlc291cmNlSW1wYWN0IHtcbiAgICBpZiAodGhpcy5pc0ltcG9ydCkge1xuICAgICAgcmV0dXJuIFJlc291cmNlSW1wYWN0LldJTExfSU1QT1JUO1xuICAgIH1cbiAgICAvLyBDaGVjayB0aGUgVHlwZSBmaXJzdFxuICAgIGlmICh0aGlzLnJlc291cmNlVHlwZXMub2xkVHlwZSAhPT0gdGhpcy5yZXNvdXJjZVR5cGVzLm5ld1R5cGUpIHtcbiAgICAgIGlmICh0aGlzLnJlc291cmNlVHlwZXMub2xkVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBSZXNvdXJjZUltcGFjdC5XSUxMX0NSRUFURTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9sZFZhbHVlIS5EZWxldGlvblBvbGljeSA9PT0gJ1JldGFpbidcbiAgICAgICAgICA/IFJlc291cmNlSW1wYWN0LldJTExfT1JQSEFOXG4gICAgICAgICAgOiBSZXNvdXJjZUltcGFjdC5XSUxMX0RFU1RST1k7XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFO1xuICAgIH1cblxuICAgIC8vIEJhc2UgaW1wYWN0IChiZWZvcmUgd2UgbWl4IGluIHRoZSB3b3JzdCBvZiB0aGUgcHJvcGVydHkgaW1wYWN0cyk7XG4gICAgLy8gV0lMTF9VUERBVEUgaWYgd2UgaGF2ZSBcIm90aGVyXCIgY2hhbmdlcywgTk9fQ0hBTkdFIGlmIHRoZXJlIGFyZSBubyBcIm90aGVyXCIgY2hhbmdlcy5cbiAgICBjb25zdCBiYXNlSW1wYWN0ID0gT2JqZWN0LmtleXModGhpcy5vdGhlckNoYW5nZXMpLmxlbmd0aCA+IDAgPyBSZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURSA6IFJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTtcblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMucHJvcGVydHlEaWZmcylcbiAgICAgIC5tYXAoZWx0ID0+IGVsdC5jaGFuZ2VJbXBhY3QpXG4gICAgICAucmVkdWNlKHdvcnN0SW1wYWN0LCBiYXNlSW1wYWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3VudCBvZiBhY3R1YWwgZGlmZmVyZW5jZXMgKG5vdCBvZiBlbGVtZW50cylcbiAgICovXG4gIHB1YmxpYyBnZXQgZGlmZmVyZW5jZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5wcm9wZXJ0eVVwZGF0ZXMpLmxlbmd0aFxuICAgICAgKyBPYmplY3QudmFsdWVzKHRoaXMub3RoZXJDaGFuZ2VzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogSW52b2tlIGEgY2FsbGJhY2sgZm9yIGVhY2ggYWN0dWFsIGRpZmZlcmVuY2VcbiAgICovXG4gIHB1YmxpYyBmb3JFYWNoRGlmZmVyZW5jZShjYjogKHR5cGU6ICdQcm9wZXJ0eScgfCAnT3RoZXInLCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBEaWZmZXJlbmNlPGFueT4gfCBQcm9wZXJ0eURpZmZlcmVuY2U8YW55PikgPT4gYW55KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5wcm9wZXJ0eVVwZGF0ZXMpLnNvcnQoKSkge1xuICAgICAgY2IoJ1Byb3BlcnR5Jywga2V5LCB0aGlzLnByb3BlcnR5VXBkYXRlc1trZXldKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5vdGhlckNoYW5nZXMpLnNvcnQoKSkge1xuICAgICAgY2IoJ090aGVyJywga2V5LCB0aGlzLm90aGVyRGlmZnNba2V5XSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5RGlmZmVyZW5jZTxUPihkaWZmOiBEaWZmZXJlbmNlPFQ+KTogZGlmZiBpcyBQcm9wZXJ0eURpZmZlcmVuY2U8VD4ge1xuICByZXR1cm4gKGRpZmYgYXMgUHJvcGVydHlEaWZmZXJlbmNlPFQ+KS5jaGFuZ2VJbXBhY3QgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgYSBtYXAgb2YgSURpZmZlcmVuY2VzIGRvd24gdG8gb25seSByZXRhaW4gdGhlIGFjdHVhbCBjaGFuZ2VzXG4gKi9cbmZ1bmN0aW9uIG9ubHlDaGFuZ2VzPFYsIFQgZXh0ZW5kcyBJRGlmZmVyZW5jZTxWPj4oeHM6IHsgW2tleTogc3RyaW5nXTogVCB9KTogeyBba2V5OiBzdHJpbmddOiBUIH0ge1xuICBjb25zdCByZXQ6IHsgW2tleTogc3RyaW5nXTogVCB9ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgZGlmZl0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgaWYgKGRpZmYuaXNEaWZmZXJlbnQpIHtcbiAgICAgIHJldFtrZXldID0gZGlmZjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deepEqual = deepEqual;\nexports.diffKeyedEntities = diffKeyedEntities;\nexports.unionOf = unionOf;\nexports.mangleLikeCloudFormation = mangleLikeCloudFormation;\nexports.loadResourceModel = loadResourceModel;\nconst aws_service_spec_1 = require(\"@aws-cdk/aws-service-spec\");\n/**\n * Compares two objects for equality, deeply. The function handles arguments that are\n * +null+, +undefined+, arrays and objects. For objects, the function will not take the\n * object prototype into account for the purpose of the comparison, only the values of\n * properties reported by +Object.keys+.\n *\n * If both operands can be parsed to equivalent numbers, will return true.\n * This makes diff consistent with CloudFormation, where a numeric 10 and a literal \"10\"\n * are considered equivalent.\n *\n * @param lvalue - the left operand of the equality comparison.\n * @param rvalue - the right operand of the equality comparison.\n *\n * @returns +true+ if both +lvalue+ and +rvalue+ are equivalent to each other.\n */\nfunction deepEqual(lvalue, rvalue) {\n if (lvalue === rvalue) {\n return true;\n }\n // CloudFormation allows passing strings into boolean-typed fields\n if (((typeof lvalue === 'string' && typeof rvalue === 'boolean') ||\n (typeof lvalue === 'boolean' && typeof rvalue === 'string')) &&\n lvalue.toString() === rvalue.toString()) {\n return true;\n }\n // allows a numeric 10 and a literal \"10\" to be equivalent;\n // this is consistent with CloudFormation.\n if ((typeof lvalue === 'string' || typeof rvalue === 'string') &&\n safeParseFloat(lvalue) === safeParseFloat(rvalue)) {\n return true;\n }\n if (typeof lvalue !== typeof rvalue) {\n return false;\n }\n if (Array.isArray(lvalue) !== Array.isArray(rvalue)) {\n return false;\n }\n if (Array.isArray(lvalue) /* && Array.isArray(rvalue) */) {\n if (lvalue.length !== rvalue.length) {\n return false;\n }\n for (let i = 0; i < lvalue.length; i++) {\n if (!deepEqual(lvalue[i], rvalue[i])) {\n return false;\n }\n }\n return true;\n }\n if (typeof lvalue === 'object' /* && typeof rvalue === 'object' */) {\n if (lvalue === null || rvalue === null) {\n // If both were null, they'd have been ===\n return false;\n }\n const keys = Object.keys(lvalue);\n if (keys.length !== Object.keys(rvalue).length) {\n return false;\n }\n for (const key of keys) {\n if (!rvalue.hasOwnProperty(key)) {\n return false;\n }\n if (key === 'DependsOn') {\n if (!dependsOnEqual(lvalue[key], rvalue[key])) {\n return false;\n }\n // check differences other than `DependsOn`\n continue;\n }\n if (!deepEqual(lvalue[key], rvalue[key])) {\n return false;\n }\n }\n return true;\n }\n // Neither object, nor array: I deduce this is primitive type\n // Primitive type and not ===, so I deduce not deepEqual\n return false;\n}\n/**\n * Compares two arguments to DependsOn for equality.\n *\n * @param lvalue - the left operand of the equality comparison.\n * @param rvalue - the right operand of the equality comparison.\n *\n * @returns +true+ if both +lvalue+ and +rvalue+ are equivalent to each other.\n */\nfunction dependsOnEqual(lvalue, rvalue) {\n // allows ['Value'] and 'Value' to be equal\n if (Array.isArray(lvalue) !== Array.isArray(rvalue)) {\n const array = Array.isArray(lvalue) ? lvalue : rvalue;\n const nonArray = Array.isArray(lvalue) ? rvalue : lvalue;\n if (array.length === 1 && deepEqual(array[0], nonArray)) {\n return true;\n }\n return false;\n }\n // allows arrays passed to DependsOn to be equivalent irrespective of element order\n if (Array.isArray(lvalue) && Array.isArray(rvalue)) {\n if (lvalue.length !== rvalue.length) {\n return false;\n }\n for (let i = 0; i < lvalue.length; i++) {\n for (let j = 0; j < lvalue.length; j++) {\n if ((!deepEqual(lvalue[i], rvalue[j])) && (j === lvalue.length - 1)) {\n return false;\n }\n break;\n }\n }\n return true;\n }\n return false;\n}\n/**\n * Produce the differences between two maps, as a map, using a specified diff function.\n *\n * @param oldValue - the old map.\n * @param newValue - the new map.\n * @param elementDiff - the diff function.\n *\n * @returns a map representing the differences between +oldValue+ and +newValue+.\n */\nfunction diffKeyedEntities(oldValue, newValue, elementDiff) {\n const result = {};\n for (const logicalId of unionOf(Object.keys(oldValue || {}), Object.keys(newValue || {}))) {\n const oldElement = oldValue && oldValue[logicalId];\n const newElement = newValue && newValue[logicalId];\n if (oldElement === undefined && newElement === undefined) {\n // Shouldn't happen in reality, but may happen in tests. Skip.\n continue;\n }\n result[logicalId] = elementDiff(oldElement, newElement, logicalId);\n }\n return result;\n}\n/**\n * Computes the union of two sets of strings.\n *\n * @param lv - the left set of strings.\n * @param rv - the right set of strings.\n *\n * @returns a new array containing all elemebts from +lv+ and +rv+, with no duplicates.\n */\nfunction unionOf(lv, rv) {\n const result = new Set(lv);\n for (const v of rv) {\n result.add(v);\n }\n return new Array(...result);\n}\n/**\n * GetStackTemplate flattens any codepoint greater than \"\\u7f\" to \"?\". This is\n * true even for codepoints in the supplemental planes which are represented\n * in JS as surrogate pairs, all the way up to \"\\u{10ffff}\".\n *\n * This function implements the same mangling in order to provide diagnostic\n * information in `cdk diff`.\n */\nfunction mangleLikeCloudFormation(payload) {\n return payload.replace(/[\\u{80}-\\u{10ffff}]/gu, '?');\n}\n/**\n * A parseFloat implementation that does the right thing for\n * strings like '0.0.0'\n * (for which JavaScript's parseFloat() returns 0).\n * We return NaN for all of these strings that do not represent numbers,\n * and so comparing them fails,\n * and doesn't short-circuit the diff logic.\n */\nfunction safeParseFloat(str) {\n return Number(str);\n}\n/**\n * Lazily load the service spec database and cache the loaded db\n */\nlet DATABASE;\nfunction database() {\n if (!DATABASE) {\n DATABASE = (0, aws_service_spec_1.loadAwsServiceSpecSync)();\n }\n return DATABASE;\n}\n/**\n * Load a Resource model from the Service Spec Database\n *\n * The database is loaded lazily and cached across multiple calls to `loadResourceModel`.\n */\nfunction loadResourceModel(type) {\n return database().lookup('resource', 'cloudFormationType', 'equals', type)[0];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsOEJBOERDO0FBa0RELDhDQWlCQztBQVVELDBCQU1DO0FBVUQsNERBRUM7QUE4QkQsOENBRUM7QUEvTUQsZ0VBQW1FO0FBR25FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE1BQVcsRUFBRSxNQUFXO0lBQ2hELElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELGtFQUFrRTtJQUNsRSxJQUFJLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQzVELENBQUMsT0FBTyxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCwyREFBMkQ7SUFDM0QsMENBQTBDO0lBQzFDLElBQUksQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO1FBQzFELGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxFQUFFLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLEtBQUssQ0FBQztJ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QUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9hZEF3c1NlcnZpY2VTcGVjU3luYyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zZXJ2aWNlLXNwZWMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSwgU3BlY0RhdGFiYXNlIH0gZnJvbSAnQGF3cy1jZGsvc2VydmljZS1zcGVjLXR5cGVzJztcblxuLyoqXG4gKiBDb21wYXJlcyB0d28gb2JqZWN0cyBmb3IgZXF1YWxpdHksIGRlZXBseS4gVGhlIGZ1bmN0aW9uIGhhbmRsZXMgYXJndW1lbnRzIHRoYXQgYXJlXG4gKiArbnVsbCssICt1bmRlZmluZWQrLCBhcnJheXMgYW5kIG9iamVjdHMuIEZvciBvYmplY3RzLCB0aGUgZnVuY3Rpb24gd2lsbCBub3QgdGFrZSB0aGVcbiAqIG9iamVjdCBwcm90b3R5cGUgaW50byBhY2NvdW50IGZvciB0aGUgcHVycG9zZSBvZiB0aGUgY29tcGFyaXNvbiwgb25seSB0aGUgdmFsdWVzIG9mXG4gKiBwcm9wZXJ0aWVzIHJlcG9ydGVkIGJ5ICtPYmplY3Qua2V5cysuXG4gKlxuICogSWYgYm90aCBvcGVyYW5kcyBjYW4gYmUgcGFyc2VkIHRvIGVxdWl2YWxlbnQgbnVtYmVycywgd2lsbCByZXR1cm4gdHJ1ZS5cbiAqIFRoaXMgbWFrZXMgZGlmZiBjb25zaXN0ZW50IHdpdGggQ2xvdWRGb3JtYXRpb24sIHdoZXJlIGEgbnVtZXJpYyAxMCBhbmQgYSBsaXRlcmFsIFwiMTBcIlxuICogYXJlIGNvbnNpZGVyZWQgZXF1aXZhbGVudC5cbiAqXG4gKiBAcGFyYW0gbHZhbHVlIC0gdGhlIGxlZnQgb3BlcmFuZCBvZiB0aGUgZXF1YWxpdHkgY29tcGFyaXNvbi5cbiAqIEBwYXJhbSBydmFsdWUgLSB0aGUgcmlnaHQgb3BlcmFuZCBvZiB0aGUgZXF1YWxpdHkgY29tcGFyaXNvbi5cbiAqXG4gKiBAcmV0dXJucyArdHJ1ZSsgaWYgYm90aCArbHZhbHVlKyBhbmQgK3J2YWx1ZSsgYXJlIGVxdWl2YWxlbnQgdG8gZWFjaCBvdGhlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBFcXVhbChsdmFsdWU6IGFueSwgcnZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKGx2YWx1ZSA9PT0gcnZhbHVlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gQ2xvdWRGb3JtYXRpb24gYWxsb3dzIHBhc3Npbmcgc3RyaW5ncyBpbnRvIGJvb2xlYW4tdHlwZWQgZmllbGRzXG4gIGlmICgoKHR5cGVvZiBsdmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBydmFsdWUgPT09ICdib29sZWFuJykgfHxcbiAgICAgICh0eXBlb2YgbHZhbHVlID09PSAnYm9vbGVhbicgJiYgdHlwZW9mIHJ2YWx1ZSA9PT0gJ3N0cmluZycpKSAmJlxuICAgICAgbHZhbHVlLnRvU3RyaW5nKCkgPT09IHJ2YWx1ZS50b1N0cmluZygpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gYWxsb3dzIGEgbnVtZXJpYyAxMCBhbmQgYSBsaXRlcmFsIFwiMTBcIiB0byBiZSBlcXVpdmFsZW50O1xuICAvLyB0aGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBDbG91ZEZvcm1hdGlvbi5cbiAgaWYgKCh0eXBlb2YgbHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcnZhbHVlID09PSAnc3RyaW5nJykgJiZcbiAgICAgIHNhZmVQYXJzZUZsb2F0KGx2YWx1ZSkgPT09IHNhZmVQYXJzZUZsb2F0KHJ2YWx1ZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIGx2YWx1ZSAhPT0gdHlwZW9mIHJ2YWx1ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShsdmFsdWUpICE9PSBBcnJheS5pc0FycmF5KHJ2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkobHZhbHVlKSAvKiAmJiBBcnJheS5pc0FycmF5KHJ2YWx1ZSkgKi8pIHtcbiAgICBpZiAobHZhbHVlLmxlbmd0aCAhPT0gcnZhbHVlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMCA7IGkgPCBsdmFsdWUubGVuZ3RoIDsgaSsrKSB7XG4gICAgICBpZiAoIWRlZXBFcXVhbChsdmFsdWVbaV0sIHJ2YWx1ZVtpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIGx2YWx1ZSA9PT0gJ29iamVjdCcgLyogJiYgdHlwZW9mIHJ2YWx1ZSA9PT0gJ29iamVjdCcgKi8pIHtcbiAgICBpZiAobHZhbHVlID09PSBudWxsIHx8IHJ2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgLy8gSWYgYm90aCB3ZXJlIG51bGwsIHRoZXknZCBoYXZlIGJlZW4gPT09XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhsdmFsdWUpO1xuICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMocnZhbHVlKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKCFydmFsdWUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAnRGVwZW5kc09uJykge1xuICAgICAgICBpZiAoIWRlcGVuZHNPbkVxdWFsKGx2YWx1ZVtrZXldLCBydmFsdWVba2V5XSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2hlY2sgZGlmZmVyZW5jZXMgb3RoZXIgdGhhbiBgRGVwZW5kc09uYFxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghZGVlcEVxdWFsKGx2YWx1ZVtrZXldLCBydmFsdWVba2V5XSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBOZWl0aGVyIG9iamVjdCwgbm9yIGFycmF5OiBJIGRlZHVjZSB0aGlzIGlzIHByaW1pdGl2ZSB0eXBlXG4gIC8vIFByaW1pdGl2ZSB0eXBlIGFuZCBub3QgPT09LCBzbyBJIGRlZHVjZSBub3QgZGVlcEVxdWFsXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0d28gYXJndW1lbnRzIHRvIERlcGVuZHNPbiBmb3IgZXF1YWxpdHkuXG4gKlxuICogQHBhcmFtIGx2YWx1ZSAtIHRoZSBsZWZ0IG9wZXJhbmQgb2YgdGhlIGVxdWFsaXR5IGNvbXBhcmlzb24uXG4gKiBAcGFyYW0gcnZhbHVlIC0gdGhlIHJpZ2h0IG9wZXJhbmQgb2YgdGhlIGVxdWFsaXR5IGNvbXBhcmlzb24uXG4gKlxuICogQHJldHVybnMgK3RydWUrIGlmIGJvdGggK2x2YWx1ZSsgYW5kICtydmFsdWUrIGFyZSBlcXVpdmFsZW50IHRvIGVhY2ggb3RoZXIuXG4gKi9cbmZ1bmN0aW9uIGRlcGVuZHNPbkVxdWFsKGx2YWx1ZTogYW55LCBydmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyBhbGxvd3MgWydWYWx1ZSddIGFuZCAnVmFsdWUnIHRvIGJlIGVxdWFsXG4gIGlmIChBcnJheS5pc0FycmF5KGx2YWx1ZSkgIT09IEFycmF5LmlzQXJyYXkocnZhbHVlKSkge1xuICAgIGNvbnN0IGFycmF5ID0gQXJyYXkuaXNBcnJheShsdmFsdWUpID8gbHZhbHVlIDogcnZhbHVlO1xuICAgIGNvbnN0IG5vbkFycmF5ID0gQXJyYXkuaXNBcnJheShsdmFsdWUpID8gcnZhbHVlIDogbHZhbHVlO1xuXG4gICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMSAmJiBkZWVwRXF1YWwoYXJyYXlbMF0sIG5vbkFycmF5KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIGFsbG93cyBhcnJheXMgcGFzc2VkIHRvIERlcGVuZHNPbiB0byBiZSBlcXVpdmFsZW50IGlycmVzcGVjdGl2ZSBvZiBlbGVtZW50IG9yZGVyXG4gIGlmIChBcnJheS5pc0FycmF5KGx2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShydmFsdWUpKSB7XG4gICAgaWYgKGx2YWx1ZS5sZW5ndGggIT09IHJ2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDAgOyBpIDwgbHZhbHVlLmxlbmd0aCA7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDAgOyBqIDwgbHZhbHVlLmxlbmd0aCA7IGorKykge1xuICAgICAgICBpZiAoKCFkZWVwRXF1YWwobHZhbHVlW2ldLCBydmFsdWVbal0pKSAmJiAoaiA9PT0gbHZhbHVlLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBQcm9kdWNlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byBtYXBzLCBhcyBhIG1hcCwgdXNpbmcgYSBzcGVjaWZpZWQgZGlmZiBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gb2xkVmFsdWUgIC0gdGhlIG9sZCBtYXAuXG4gKiBAcGFyYW0gbmV3VmFsdWUgIC0gdGhlIG5ldyBtYXAuXG4gKiBAcGFyYW0gZWxlbWVudERpZmYgLSB0aGUgZGlmZiBmdW5jdGlvbi5cbiAqXG4gKiBAcmV0dXJucyBhIG1hcCByZXByZXNlbnRpbmcgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gK29sZFZhbHVlKyBhbmQgK25ld1ZhbHVlKy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZLZXllZEVudGl0aWVzPFQ+KFxuICBvbGRWYWx1ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCxcbiAgbmV3VmFsdWU6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQsXG4gIGVsZW1lbnREaWZmOiAob2xkRWxlbWVudDogYW55LCBuZXdFbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSA9PiBUKTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgY29uc3QgcmVzdWx0OiB7IFtuYW1lOiBzdHJpbmddOiBUIH0gPSB7fTtcbiAgZm9yIChjb25zdCBsb2dpY2FsSWQgb2YgdW5pb25PZihPYmplY3Qua2V5cyhvbGRWYWx1ZSB8fCB7fSksIE9iamVjdC5rZXlzKG5ld1ZhbHVlIHx8IHt9KSkpIHtcbiAgICBjb25zdCBvbGRFbGVtZW50ID0gb2xkVmFsdWUgJiYgb2xkVmFsdWVbbG9naWNhbElkXTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gbmV3VmFsdWUgJiYgbmV3VmFsdWVbbG9naWNhbElkXTtcblxuICAgIGlmIChvbGRFbGVtZW50ID09PSB1bmRlZmluZWQgJiYgbmV3RWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTaG91bGRuJ3QgaGFwcGVuIGluIHJlYWxpdHksIGJ1dCBtYXkgaGFwcGVuIGluIHRlc3RzLiBTa2lwLlxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgcmVzdWx0W2xvZ2ljYWxJZF0gPSBlbGVtZW50RGlmZihvbGRFbGVtZW50LCBuZXdFbGVtZW50LCBsb2dpY2FsSWQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIHR3byBzZXRzIG9mIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIGx2IC0gdGhlIGxlZnQgc2V0IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gcnYgLSB0aGUgcmlnaHQgc2V0IG9mIHN0cmluZ3MuXG4gKlxuICogQHJldHVybnMgYSBuZXcgYXJyYXkgY29udGFpbmluZyBhbGwgZWxlbWVidHMgZnJvbSArbHYrIGFuZCArcnYrLCB3aXRoIG5vIGR1cGxpY2F0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmlvbk9mKGx2OiBzdHJpbmdbXSB8IFNldDxzdHJpbmc+LCBydjogc3RyaW5nW10gfCBTZXQ8c3RyaW5nPik6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IFNldChsdik7XG4gIGZvciAoY29uc3QgdiBvZiBydikge1xuICAgIHJlc3VsdC5hZGQodik7XG4gIH1cbiAgcmV0dXJuIG5ldyBBcnJheSguLi5yZXN1bHQpO1xufVxuXG4vKipcbiAqIEdldFN0YWNrVGVtcGxhdGUgZmxhdHRlbnMgYW55IGNvZGVwb2ludCBncmVhdGVyIHRoYW4gXCJcXHU3ZlwiIHRvIFwiP1wiLiBUaGlzIGlzXG4gKiB0cnVlIGV2ZW4gZm9yIGNvZGVwb2ludHMgaW4gdGhlIHN1cHBsZW1lbnRhbCBwbGFuZXMgd2hpY2ggYXJlIHJlcHJlc2VudGVkXG4gKiBpbiBKUyBhcyBzdXJyb2dhdGUgcGFpcnMsIGFsbCB0aGUgd2F5IHVwIHRvIFwiXFx1ezEwZmZmZn1cIi5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIHNhbWUgbWFuZ2xpbmcgaW4gb3JkZXIgdG8gcHJvdmlkZSBkaWFnbm9zdGljXG4gKiBpbmZvcm1hdGlvbiBpbiBgY2RrIGRpZmZgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFuZ2xlTGlrZUNsb3VkRm9ybWF0aW9uKHBheWxvYWQ6IHN0cmluZykge1xuICByZXR1cm4gcGF5bG9hZC5yZXBsYWNlKC9bXFx1ezgwfS1cXHV7MTBmZmZmfV0vZ3UsICc/Jyk7XG59XG5cbi8qKlxuICogQSBwYXJzZUZsb2F0IGltcGxlbWVudGF0aW9uIHRoYXQgZG9lcyB0aGUgcmlnaHQgdGhpbmcgZm9yXG4gKiBzdHJpbmdzIGxpa2UgJzAuMC4wJ1xuICogKGZvciB3aGljaCBKYXZhU2NyaXB0J3MgcGFyc2VGbG9hdCgpIHJldHVybnMgMCkuXG4gKiBXZSByZXR1cm4gTmFOIGZvciBhbGwgb2YgdGhlc2Ugc3RyaW5ncyB0aGF0IGRvIG5vdCByZXByZXNlbnQgbnVtYmVycyxcbiAqIGFuZCBzbyBjb21wYXJpbmcgdGhlbSBmYWlscyxcbiAqIGFuZCBkb2Vzbid0IHNob3J0LWNpcmN1aXQgdGhlIGRpZmYgbG9naWMuXG4gKi9cbmZ1bmN0aW9uIHNhZmVQYXJzZUZsb2F0KHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIE51bWJlcihzdHIpO1xufVxuXG4vKipcbiAqIExhemlseSBsb2FkIHRoZSBzZXJ2aWNlIHNwZWMgZGF0YWJhc2UgYW5kIGNhY2hlIHRoZSBsb2FkZWQgZGJcbiAqL1xubGV0IERBVEFCQVNFOiBTcGVjRGF0YWJhc2UgfCB1bmRlZmluZWQ7XG5mdW5jdGlvbiBkYXRhYmFzZSgpOiBTcGVjRGF0YWJhc2Uge1xuICBpZiAoIURBVEFCQVNFKSB7XG4gICAgREFUQUJBU0UgPSBsb2FkQXdzU2VydmljZVNwZWNTeW5jKCk7XG4gIH1cbiAgcmV0dXJuIERBVEFCQVNFO1xufVxuXG4vKipcbiAqIExvYWQgYSBSZXNvdXJjZSBtb2RlbCBmcm9tIHRoZSBTZXJ2aWNlIFNwZWMgRGF0YWJhc2VcbiAqXG4gKiBUaGUgZGF0YWJhc2UgaXMgbG9hZGVkIGxhemlseSBhbmQgY2FjaGVkIGFjcm9zcyBtdWx0aXBsZSBjYWxscyB0byBgbG9hZFJlc291cmNlTW9kZWxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlc291cmNlTW9kZWwodHlwZTogc3RyaW5nKTogUmVzb3VyY2UgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YWJhc2UoKS5sb29rdXAoJ3Jlc291cmNlJywgJ2Nsb3VkRm9ybWF0aW9uVHlwZScsICdlcXVhbHMnLCB0eXBlKVswXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffableCollection = void 0;\n/**\n * Calculate differences of immutable elements\n */\nclass DiffableCollection {\n constructor() {\n this.additions = [];\n this.removals = [];\n this.oldElements = [];\n this.newElements = [];\n }\n addOld(...elements) {\n this.oldElements.push(...elements);\n }\n addNew(...elements) {\n this.newElements.push(...elements);\n }\n calculateDiff() {\n this.additions.push(...difference(this.newElements, this.oldElements));\n this.removals.push(...difference(this.oldElements, this.newElements));\n }\n get hasChanges() {\n return this.additions.length + this.removals.length > 0;\n }\n get hasAdditions() {\n return this.additions.length > 0;\n }\n get hasRemovals() {\n return this.removals.length > 0;\n }\n}\nexports.DiffableCollection = DiffableCollection;\n/**\n * Whether a collection contains some element (by value)\n */\nfunction contains(element, xs) {\n return xs.some(x => x.equal(element));\n}\n/**\n * Return collection except for elements\n */\nfunction difference(collection, elements) {\n return collection.filter(x => !contains(x, elements));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBQS9CO1FBQ2tCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUVsQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQTBCekMsQ0FBQztJQXhCUSxNQUFNLENBQUMsR0FBRyxRQUFhO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLFFBQWE7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBL0JELGdEQStCQztBQVNEOztHQUVHO0FBQ0gsU0FBUyxRQUFRLENBQWtCLE9BQVUsRUFBRSxFQUFPO0lBQ3BELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFVBQVUsQ0FBa0IsVUFBZSxFQUFFLFFBQWE7SUFDakUsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FsY3VsYXRlIGRpZmZlcmVuY2VzIG9mIGltbXV0YWJsZSBlbGVtZW50c1xuICovXG5leHBvcnQgY2xhc3MgRGlmZmFibGVDb2xsZWN0aW9uPFQgZXh0ZW5kcyBFcTxUPj4ge1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkaXRpb25zOiBUW10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IHJlbW92YWxzOiBUW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9sZEVsZW1lbnRzOiBUW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZXdFbGVtZW50czogVFtdID0gW107XG5cbiAgcHVibGljIGFkZE9sZCguLi5lbGVtZW50czogVFtdKSB7XG4gICAgdGhpcy5vbGRFbGVtZW50cy5wdXNoKC4uLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGROZXcoLi4uZWxlbWVudHM6IFRbXSkge1xuICAgIHRoaXMubmV3RWxlbWVudHMucHVzaCguLi5lbGVtZW50cyk7XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlRGlmZigpIHtcbiAgICB0aGlzLmFkZGl0aW9ucy5wdXNoKC4uLmRpZmZlcmVuY2UodGhpcy5uZXdFbGVtZW50cywgdGhpcy5vbGRFbGVtZW50cykpO1xuICAgIHRoaXMucmVtb3ZhbHMucHVzaCguLi5kaWZmZXJlbmNlKHRoaXMub2xkRWxlbWVudHMsIHRoaXMubmV3RWxlbWVudHMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbnMubGVuZ3RoICsgdGhpcy5yZW1vdmFscy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNBZGRpdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkaXRpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1JlbW92YWxzKCkge1xuICAgIHJldHVybiB0aGlzLnJlbW92YWxzLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGluZ3MgdGhhdCBjYW4gYmUgY29tcGFyZWQgdG8gdGhlbXNlbHZlcyAoYnkgdmFsdWUpXG4gKi9cbmludGVyZmFjZSBFcTxUPiB7XG4gIGVxdWFsKG90aGVyOiBUKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGEgY29sbGVjdGlvbiBjb250YWlucyBzb21lIGVsZW1lbnQgKGJ5IHZhbHVlKVxuICovXG5mdW5jdGlvbiBjb250YWluczxUIGV4dGVuZHMgRXE8VD4+KGVsZW1lbnQ6IFQsIHhzOiBUW10pOiBib29sZWFuIHtcbiAgcmV0dXJuIHhzLnNvbWUoeCA9PiB4LmVxdWFsKGVsZW1lbnQpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gY29sbGVjdGlvbiBleGNlcHQgZm9yIGVsZW1lbnRzXG4gKi9cbmZ1bmN0aW9uIGRpZmZlcmVuY2U8VCBleHRlbmRzIEVxPFQ+Pihjb2xsZWN0aW9uOiBUW10sIGVsZW1lbnRzOiBUW10pOiBUW10ge1xuICByZXR1cm4gY29sbGVjdGlvbi5maWx0ZXIoeCA9PiAhY29udGFpbnMoeCwgZWxlbWVudHMpKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ForEachDiffFormatter = void 0;\nexports.isForEachKey = isForEachKey;\nconst chalk = require(\"chalk\");\nconst util_1 = require(\"./diff/util\");\nconst ADDITION = chalk.green('[+]');\nconst UPDATE = chalk.yellow('[~]');\nconst REMOVAL = chalk.red('[-]');\n/**\n * Formatter for Fn::ForEach diff output.\n *\n * Fn::ForEach is a CloudFormation intrinsic that expands a template fragment\n * over a collection at deploy time. Its value is an array:\n * [collection, { \"LogicalId${Var}\": { Type, Properties } }]\n */\nclass ForEachDiffFormatter {\n /**\n * Format a ForEach resource difference\n */\n formatForEach(key, oldValue, newValue) {\n const lines = [];\n const changeType = this.getChangeType(oldValue, newValue);\n const value = newValue ?? oldValue;\n if (!Array.isArray(value) || value.length < 2) {\n lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (unrecognized ForEach structure)`);\n return lines;\n }\n const loopName = key.replace('Fn::ForEach::', '');\n const [collection, templateObj] = value;\n const entries = Object.entries(templateObj);\n if (entries.length === 0) {\n lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (empty ForEach template)`);\n return lines;\n }\n const [[templateKey, templateValue]] = entries;\n const count = Array.isArray(collection)\n ? `${collection.length} resources`\n : 'dynamic count';\n lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (expands to ${count} at deploy time)`);\n lines.push(` Loop variable: ${chalk.blue(loopName)}`);\n lines.push(` Collection: ${this.formatCollection(collection)}`);\n lines.push(` └── ${templateKey} ${chalk.cyan(templateValue?.Type ?? 'Unknown')}`);\n if (changeType === 'update' && oldValue && newValue) {\n const oldProps = oldValue[1]?.[Object.keys(oldValue[1])[0]]?.Properties ?? {};\n const newProps = newValue[1]?.[Object.keys(newValue[1])[0]]?.Properties ?? {};\n const propDiff = this.diffProperties(oldProps, newProps);\n lines.push(...propDiff.map(l => ` ${l}`));\n }\n else {\n for (const [propKey, propValue] of Object.entries(templateValue?.Properties ?? {})) {\n lines.push(` ${propKey}: ${this.formatValue(propValue)}`);\n }\n }\n return lines;\n }\n changeSymbol(type) {\n switch (type) {\n case 'add': return ADDITION;\n case 'remove': return REMOVAL;\n case 'update': return UPDATE;\n }\n }\n formatCollection(collection) {\n if (Array.isArray(collection)) {\n if (collection.length <= 5)\n return JSON.stringify(collection);\n return `[${collection.slice(0, 3).join(', ')}, ... +${collection.length - 3} more]`;\n }\n return JSON.stringify(collection);\n }\n getChangeType(oldVal, newVal) {\n if (!oldVal)\n return 'add';\n if (!newVal)\n return 'remove';\n return 'update';\n }\n formatValue(value) {\n if (typeof value === 'string')\n return value;\n return JSON.stringify(value);\n }\n diffProperties(oldProps, newProps) {\n const lines = [];\n const allKeys = new Set([...Object.keys(oldProps), ...Object.keys(newProps)]);\n for (const key of allKeys) {\n const oldVal = oldProps[key];\n const newVal = newProps[key];\n if (oldVal === undefined) {\n lines.push(`${ADDITION} ${key}: ${this.formatValue(newVal)}`);\n }\n else if (newVal === undefined) {\n lines.push(`${REMOVAL} ${key}: ${this.formatValue(oldVal)}`);\n }\n else if (!(0, util_1.deepEqual)(oldVal, newVal)) {\n lines.push(`${UPDATE} ${key}: ${this.formatValue(oldVal)} → ${this.formatValue(newVal)}`);\n }\n }\n return lines;\n }\n}\nexports.ForEachDiffFormatter = ForEachDiffFormatter;\n/**\n * Check if a logical ID represents a ForEach construct\n */\nfunction isForEachKey(logicalId) {\n return logicalId.startsWith('Fn::ForEach::');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZvcmVhY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmb3JtYXQtZm9yZWFjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SEEsb0NBRUM7QUF6SEQsK0JBQStCO0FBQy9CLHNDQUF3QztBQUV4QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVqQzs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFvQjtJQUMvQjs7T0FFRztJQUNJLGFBQWEsQ0FDbEIsR0FBVyxFQUNYLFFBQXlCLEVBQ3pCLFFBQXlCO1FBRXpCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRW5DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUNuRyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QyxN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QUMsQ0FBQztZQUU3QixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztpQkFBTSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBQSxnQkFBUyxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFwR0Qsb0RBb0dDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsU0FBaUI7SUFDNUMsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tICcuL2RpZmYvdXRpbCc7XG5cbmNvbnN0IEFERElUSU9OID0gY2hhbGsuZ3JlZW4oJ1srXScpO1xuY29uc3QgVVBEQVRFID0gY2hhbGsueWVsbG93KCdbfl0nKTtcbmNvbnN0IFJFTU9WQUwgPSBjaGFsay5yZWQoJ1stXScpO1xuXG4vKipcbiAqIEZvcm1hdHRlciBmb3IgRm46OkZvckVhY2ggZGlmZiBvdXRwdXQuXG4gKlxuICogRm46OkZvckVhY2ggaXMgYSBDbG91ZEZvcm1hdGlvbiBpbnRyaW5zaWMgdGhhdCBleHBhbmRzIGEgdGVtcGxhdGUgZnJhZ21lbnRcbiAqIG92ZXIgYSBjb2xsZWN0aW9uIGF0IGRlcGxveSB0aW1lLiBJdHMgdmFsdWUgaXMgYW4gYXJyYXk6XG4gKiAgIFtjb2xsZWN0aW9uLCB7IFwiTG9naWNhbElkJHtWYXJ9XCI6IHsgVHlwZSwgUHJvcGVydGllcyB9IH1dXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3JFYWNoRGlmZkZvcm1hdHRlciB7XG4gIC8qKlxuICAgKiBGb3JtYXQgYSBGb3JFYWNoIHJlc291cmNlIGRpZmZlcmVuY2VcbiAgICovXG4gIHB1YmxpYyBmb3JtYXRGb3JFYWNoKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9sZFZhbHVlOiBhbnkgfCB1bmRlZmluZWQsXG4gICAgbmV3VmFsdWU6IGFueSB8IHVuZGVmaW5lZCxcbiAgKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGNoYW5nZVR5cGUgPSB0aGlzLmdldENoYW5nZVR5cGUob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZSA9IG5ld1ZhbHVlID8/IG9sZFZhbHVlO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5sZW5ndGggPCAyKSB7XG4gICAgICBsaW5lcy5wdXNoKGAke3RoaXMuY2hhbmdlU3ltYm9sKGNoYW5nZVR5cGUpfSAke2NoYWxrLmN5YW4oa2V5KX0gKHVucmVjb2duaXplZCBGb3JFYWNoIHN0cnVjdHVyZSlgKTtcbiAgICAgIHJldHVybiBsaW5lcztcbiAgICB9XG5cbiAgICBjb25zdCBsb29wTmFtZSA9IGtleS5yZXBsYWNlKCdGbjo6Rm9yRWFjaDo6JywgJycpO1xuICAgIGNvbnN0IFtjb2xsZWN0aW9uLCB0ZW1wbGF0ZU9ial0gPSB2YWx1ZTtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModGVtcGxhdGVPYmogYXMgUmVjb3JkPHN0cmluZywgYW55Pik7XG5cbiAgICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGxpbmVzLnB1c2goYCR7dGhpcy5jaGFuZ2VTeW1ib2woY2hhbmdlVHlwZSl9ICR7Y2hhbGsuY3lhbihrZXkpfSAoZW1wdHkgRm9yRWFjaCB0ZW1wbGF0ZSlgKTtcbiAgICAgIHJldHVybiBsaW5lcztcbiAgICB9XG5cbiAgICBjb25zdCBbW3RlbXBsYXRlS2V5LCB0ZW1wbGF0ZVZhbHVlXV0gPSBlbnRyaWVzO1xuXG4gICAgY29uc3QgY291bnQgPSBBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pXG4gICAgICA/IGAke2NvbGxlY3Rpb24ubGVuZ3RofSByZXNvdXJjZXNgXG4gICAgICA6ICdkeW5hbWljIGNvdW50JztcblxuICAgIGxpbmVzLnB1c2goXG4gICAgICBgJHt0aGlzLmNoYW5nZVN5bWJvbChjaGFuZ2VUeXBlKX0gJHtjaGFsay5jeWFuKGtleSl9IChleHBhbmRzIHRvICR7Y291bnR9IGF0IGRlcGxveSB0aW1lKWAsXG4gICAgKTtcbiAgICBsaW5lcy5wdXNoKGAgICAgTG9vcCB2YXJpYWJsZTogJHtjaGFsay5ibHVlKGxvb3BOYW1lKX1gKTtcbiAgICBsaW5lcy5wdXNoKGAgICAgQ29sbGVjdGlvbjogJHt0aGlzLmZvcm1hdENvbGxlY3Rpb24oY29sbGVjdGlvbil9YCk7XG4gICAgbGluZXMucHVzaChgICAgIOKUlOKUgOKUgCAke3RlbXBsYXRlS2V5fSAke2NoYWxrLmN5YW4odGVtcGxhdGVWYWx1ZT8uVHlwZSA/PyAnVW5rbm93bicpfWApO1xuXG4gICAgaWYgKGNoYW5nZVR5cGUgPT09ICd1cGRhdGUnICYmIG9sZFZhbHVlICYmIG5ld1ZhbHVlKSB7XG4gICAgICBjb25zdCBvbGRQcm9wcyA9IG9sZFZhbHVlWzFdPy5bT2JqZWN0LmtleXMob2xkVmFsdWVbMV0pWzBdXT8uUHJvcGVydGllcyA/PyB7fTtcbiAgICAgIGNvbnN0IG5ld1Byb3BzID0gbmV3VmFsdWVbMV0/LltPYmplY3Qua2V5cyhuZXdWYWx1ZVsxXSlbMF1dPy5Qcm9wZXJ0aWVzID8/IHt9O1xuICAgICAgY29uc3QgcHJvcERpZmYgPSB0aGlzLmRpZmZQcm9wZXJ0aWVzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgICBsaW5lcy5wdXNoKC4uLnByb3BEaWZmLm1hcChsID0+IGAgICAgICAgICR7bH1gKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgW3Byb3BLZXksIHByb3BWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGVtcGxhdGVWYWx1ZT8uUHJvcGVydGllcyA/PyB7fSkpIHtcbiAgICAgICAgbGluZXMucHVzaChgICAgICAgICAke3Byb3BLZXl9OiAke3RoaXMuZm9ybWF0VmFsdWUocHJvcFZhbHVlKX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVN5bWJvbCh0eXBlOiAnYWRkJyB8ICdyZW1vdmUnIHwgJ3VwZGF0ZScpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnYWRkJzogcmV0dXJuIEFERElUSU9OO1xuICAgICAgY2FzZSAncmVtb3ZlJzogcmV0dXJuIFJFTU9WQUw7XG4gICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gVVBEQVRFO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q29sbGVjdGlvbihjb2xsZWN0aW9uOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbi5sZW5ndGggPD0gNSkgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGNvbGxlY3Rpb24pO1xuICAgICAgcmV0dXJuIGBbJHtjb2xsZWN0aW9uLnNsaWNlKDAsIDMpLmpvaW4oJywgJyl9LCAuLi4gKyR7Y29sbGVjdGlvbi5sZW5ndGggLSAzfSBtb3JlXWA7XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjb2xsZWN0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hhbmdlVHlwZShvbGRWYWw6IGFueSwgbmV3VmFsOiBhbnkpOiAnYWRkJyB8ICdyZW1vdmUnIHwgJ3VwZGF0ZScge1xuICAgIGlmICghb2xkVmFsKSByZXR1cm4gJ2FkZCc7XG4gICAgaWYgKCFuZXdWYWwpIHJldHVybiAncmVtb3ZlJztcbiAgICByZXR1cm4gJ3VwZGF0ZSc7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlmZlByb3BlcnRpZXMob2xkUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4sIG5ld1Byb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGFsbEtleXMgPSBuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhvbGRQcm9wcyksIC4uLk9iamVjdC5rZXlzKG5ld1Byb3BzKV0pO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgYWxsS2V5cykge1xuICAgICAgY29uc3Qgb2xkVmFsID0gb2xkUHJvcHNba2V5XTtcbiAgICAgIGNvbnN0IG5ld1ZhbCA9IG5ld1Byb3BzW2tleV07XG5cbiAgICAgIGlmIChvbGRWYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke0FERElUSU9OfSAke2tleX06ICR7dGhpcy5mb3JtYXRWYWx1ZShuZXdWYWwpfWApO1xuICAgICAgfSBlbHNlIGlmIChuZXdWYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke1JFTU9WQUx9ICR7a2V5fTogJHt0aGlzLmZvcm1hdFZhbHVlKG9sZFZhbCl9YCk7XG4gICAgICB9IGVsc2UgaWYgKCFkZWVwRXF1YWwob2xkVmFsLCBuZXdWYWwpKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7VVBEQVRFfSAke2tleX06ICR7dGhpcy5mb3JtYXRWYWx1ZShvbGRWYWwpfSDihpIgJHt0aGlzLmZvcm1hdFZhbHVlKG5ld1ZhbCl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmVzO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBsb2dpY2FsIElEIHJlcHJlc2VudHMgYSBGb3JFYWNoIGNvbnN0cnVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGb3JFYWNoS2V5KGxvZ2ljYWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBsb2dpY2FsSWQuc3RhcnRzV2l0aCgnRm46OkZvckVhY2g6OicpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatTable = formatTable;\nconst chalk = require(\"chalk\");\nconst string_width_1 = require(\"string-width\");\nconst table = require(\"table\");\n/**\n * Render a two-dimensional array to a visually attractive table\n *\n * First row is considered the table header.\n */\nfunction formatTable(cells, columns, noHorizontalLines) {\n return table.table(cells, {\n border: TABLE_BORDER_CHARACTERS,\n columns: buildColumnConfig(columns !== undefined ? calculateColumnWidths(cells, columns) : undefined),\n drawHorizontalLine: (line) => {\n // Numbering like this: [line 0] [header = row[0]] [line 1] [row 1] [line 2] [content 2] [line 3]\n if (noHorizontalLines) {\n return line < 2 || line === cells.length;\n }\n return (line < 2 || line === cells.length) || lineBetween(cells[line - 1], cells[line]);\n },\n }).trimRight();\n}\n/**\n * Whether we should draw a line between two rows\n *\n * Draw horizontal line if 2nd column values are different.\n */\nfunction lineBetween(rowA, rowB) {\n return rowA[1] !== rowB[1];\n}\nfunction buildColumnConfig(widths) {\n if (widths === undefined) {\n return undefined;\n }\n const ret = {};\n widths.forEach((width, i) => {\n if (width === undefined) {\n return;\n }\n ret[i] = { width };\n });\n return ret;\n}\n/**\n * Calculate column widths given a terminal width\n *\n * We do this by calculating a fair share for every column. Extra width smaller\n * than the fair share is evenly distributed over all columns that exceed their\n * fair share.\n */\nfunction calculateColumnWidths(rows, terminalWidth) {\n // The terminal is sometimes reported to be 0. Also if the terminal is VERY narrow,\n // just assume a reasonable minimum size.\n terminalWidth = Math.max(terminalWidth, 40);\n // use 'string-width' to not count ANSI chars as actual character width\n const columns = rows[0].map((_, i) => Math.max(...rows.map(row => (0, string_width_1.default)(String(row[i])))));\n // If we have no terminal width, do nothing\n const contentWidth = terminalWidth - 2 - columns.length * 3;\n // If we don't exceed the terminal width, do nothing\n if (sum(columns) <= contentWidth) {\n return columns;\n }\n const fairShare = Math.min(contentWidth / columns.length);\n const smallColumns = columns.filter(w => w < fairShare);\n let distributableWidth = contentWidth - sum(smallColumns);\n const fairDistributable = Math.floor(distributableWidth / (columns.length - smallColumns.length));\n const ret = new Array();\n for (const requestedWidth of columns) {\n if (requestedWidth < fairShare) {\n // Small column gets what they want\n ret.push(requestedWidth);\n }\n else {\n // Last column gets all remaining, otherwise get fair redist share\n const width = distributableWidth < 2 * fairDistributable ? distributableWidth : fairDistributable;\n ret.push(width);\n distributableWidth -= width;\n }\n }\n return ret;\n}\nfunction sum(xs) {\n let total = 0;\n for (const x of xs) {\n total += x;\n }\n return total;\n}\n// What color the table is going to be\nconst tableColor = chalk.gray;\n// Unicode table characters with a color\nconst TABLE_BORDER_CHARACTERS = {\n topBody: tableColor('─'),\n topJoin: tableColor('┬'),\n topLeft: tableColor('┌'),\n topRight: tableColor('┐'),\n bottomBody: tableColor('─'),\n bottomJoin: tableColor('┴'),\n bottomLeft: tableColor('└'),\n bottomRight: tableColor('┘'),\n bodyLeft: tableColor('│'),\n bodyRight: tableColor('│'),\n bodyJoin: tableColor('│'),\n joinBody: tableColor('─'),\n joinLeft: tableColor('├'),\n joinRight: tableColor('┤'),\n joinJoin: tableColor('┼'),\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esa0NBWUM7QUFyQkQsK0JBQStCO0FBQy9CLCtDQUF1QztBQUN2QywrQkFBK0I7QUFFL0I7Ozs7R0FJRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFpQixFQUFFLE9BQTJCLEVBQUUsaUJBQTJCO0lBQ3JHLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDeEIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDckcsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQixpR0FBaUc7WUFDakcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDM0MsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQztLQUNGLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLElBQWMsRUFBRSxJQUFjO0lBQ2pELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxNQUE0QjtJ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QUFzQztBQUN0QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBRTlCLHdDQUF3QztBQUN4QyxNQUFNLHVCQUF1QixHQUFHO0lBQzlCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzVCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgc3RyaW5nV2lkdGggZnJvbSAnc3RyaW5nLXdpZHRoJztcbmltcG9ydCAqIGFzIHRhYmxlIGZyb20gJ3RhYmxlJztcblxuLyoqXG4gKiBSZW5kZXIgYSB0d28tZGltZW5zaW9uYWwgYXJyYXkgdG8gYSB2aXN1YWxseSBhdHRyYWN0aXZlIHRhYmxlXG4gKlxuICogRmlyc3Qgcm93IGlzIGNvbnNpZGVyZWQgdGhlIHRhYmxlIGhlYWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRhYmxlKGNlbGxzOiBzdHJpbmdbXVtdLCBjb2x1bW5zOiBudW1iZXIgfCB1bmRlZmluZWQsIG5vSG9yaXpvbnRhbExpbmVzPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiB0YWJsZS50YWJsZShjZWxscywge1xuICAgIGJvcmRlcjogVEFCTEVfQk9SREVSX0NIQVJBQ1RFUlMsXG4gICAgY29sdW1uczogYnVpbGRDb2x1bW5Db25maWcoY29sdW1ucyAhPT0gdW5kZWZpbmVkID8gY2FsY3VsYXRlQ29sdW1uV2lkdGhzKGNlbGxzLCBjb2x1bW5zKSA6IHVuZGVmaW5lZCksXG4gICAgZHJhd0hvcml6b250YWxMaW5lOiAobGluZSkgPT4ge1xuICAgICAgLy8gTnVtYmVyaW5nIGxpa2UgdGhpczogW2xpbmUgMF0gW2hlYWRlciA9IHJvd1swXV0gW2xpbmUgMV0gW3JvdyAxXSBbbGluZSAyXSBbY29udGVudCAyXSBbbGluZSAzXVxuICAgICAgaWYgKG5vSG9yaXpvbnRhbExpbmVzKSB7XG4gICAgICAgIHJldHVybiBsaW5lIDwgMiB8fCBsaW5lID09PSBjZWxscy5sZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gKGxpbmUgPCAyIHx8IGxpbmUgPT09IGNlbGxzLmxlbmd0aCkgfHwgbGluZUJldHdlZW4oY2VsbHNbbGluZSAtIDFdLCBjZWxsc1tsaW5lXSk7XG4gICAgfSxcbiAgfSkudHJpbVJpZ2h0KCk7XG59XG5cbi8qKlxuICogV2hldGhlciB3ZSBzaG91bGQgZHJhdyBhIGxpbmUgYmV0d2VlbiB0d28gcm93c1xuICpcbiAqIERyYXcgaG9yaXpvbnRhbCBsaW5lIGlmIDJuZCBjb2x1bW4gdmFsdWVzIGFyZSBkaWZmZXJlbnQuXG4gKi9cbmZ1bmN0aW9uIGxpbmVCZXR3ZWVuKHJvd0E6IHN0cmluZ1tdLCByb3dCOiBzdHJpbmdbXSkge1xuICByZXR1cm4gcm93QVsxXSAhPT0gcm93QlsxXTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb2x1bW5Db25maWcod2lkdGhzOiBudW1iZXJbXSB8IHVuZGVmaW5lZCk6IHsgW2luZGV4OiBudW1iZXJdOiB0YWJsZS5Db2x1bW5Vc2VyQ29uZmlnIH0gfCB1bmRlZmluZWQge1xuICBpZiAod2lkdGhzID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmV0OiB7IFtpbmRleDogbnVtYmVyXTogdGFibGUuQ29sdW1uVXNlckNvbmZpZyB9ID0ge307XG4gIHdpZHRocy5mb3JFYWNoKCh3aWR0aCwgaSkgPT4ge1xuICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldFtpXSA9IHsgd2lkdGggfTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgY29sdW1uIHdpZHRocyBnaXZlbiBhIHRlcm1pbmFsIHdpZHRoXG4gKlxuICogV2UgZG8gdGhpcyBieSBjYWxjdWxhdGluZyBhIGZhaXIgc2hhcmUgZm9yIGV2ZXJ5IGNvbHVtbi4gRXh0cmEgd2lkdGggc21hbGxlclxuICogdGhhbiB0aGUgZmFpciBzaGFyZSBpcyBldmVubHkgZGlzdHJpYnV0ZWQgb3ZlciBhbGwgY29sdW1ucyB0aGF0IGV4Y2VlZCB0aGVpclxuICogZmFpciBzaGFyZS5cbiAqL1xuZnVuY3Rpb24gY2FsY3VsYXRlQ29sdW1uV2lkdGhzKHJvd3M6IHN0cmluZ1tdW10sIHRlcm1pbmFsV2lkdGg6IG51bWJlcik6IG51bWJlcltdIHtcbiAgLy8gVGhlIHRlcm1pbmFsIGlzIHNvbWV0aW1lcyByZXBvcnRlZCB0byBiZSAwLiBBbHNvIGlmIHRoZSB0ZXJtaW5hbCBpcyBWRVJZIG5hcnJvdyxcbiAgLy8ganVzdCBhc3N1bWUgYSByZWFzb25hYmxlIG1pbmltdW0gc2l6ZS5cbiAgdGVybWluYWxXaWR0aCA9IE1hdGgubWF4KHRlcm1pbmFsV2lkdGgsIDQwKTtcblxuICAvLyB1c2UgJ3N0cmluZy13aWR0aCcgdG8gbm90IGNvdW50IEFOU0kgY2hhcnMgYXMgYWN0dWFsIGNoYXJhY3RlciB3aWR0aFxuICBjb25zdCBjb2x1bW5zID0gcm93c1swXS5tYXAoKF8sIGkpID0+IE1hdGgubWF4KC4uLnJvd3MubWFwKHJvdyA9PiBzdHJpbmdXaWR0aChTdHJpbmcocm93W2ldKSkpKSk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBubyB0ZXJtaW5hbCB3aWR0aCwgZG8gbm90aGluZ1xuICBjb25zdCBjb250ZW50V2lkdGggPSB0ZXJtaW5hbFdpZHRoIC0gMiAtIGNvbHVtbnMubGVuZ3RoICogMztcblxuICAvLyBJZiB3ZSBkb24ndCBleGNlZWQgdGhlIHRlcm1pbmFsIHdpZHRoLCBkbyBub3RoaW5nXG4gIGlmIChzdW0oY29sdW1ucykgPD0gY29udGVudFdpZHRoKSB7XG4gICAgcmV0dXJuIGNvbHVtbnM7XG4gIH1cblxuICBjb25zdCBmYWlyU2hhcmUgPSBNYXRoLm1pbihjb250ZW50V2lkdGggLyBjb2x1bW5zLmxlbmd0aCk7XG4gIGNvbnN0IHNtYWxsQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKHcgPT4gdyA8IGZhaXJTaGFyZSk7XG5cbiAgbGV0IGRpc3RyaWJ1dGFibGVXaWR0aCA9IGNvbnRlbnRXaWR0aCAtIHN1bShzbWFsbENvbHVtbnMpO1xuICBjb25zdCBmYWlyRGlzdHJpYnV0YWJsZSA9IE1hdGguZmxvb3IoZGlzdHJpYnV0YWJsZVdpZHRoIC8gKGNvbHVtbnMubGVuZ3RoIC0gc21hbGxDb2x1bW5zLmxlbmd0aCkpO1xuXG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG4gIGZvciAoY29uc3QgcmVxdWVzdGVkV2lkdGggb2YgY29sdW1ucykge1xuICAgIGlmIChyZXF1ZXN0ZWRXaWR0aCA8IGZhaXJTaGFyZSkge1xuICAgICAgLy8gU21hbGwgY29sdW1uIGdldHMgd2hhdCB0aGV5IHdhbnRcbiAgICAgIHJldC5wdXNoKHJlcXVlc3RlZFdpZHRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTGFzdCBjb2x1bW4gZ2V0cyBhbGwgcmVtYWluaW5nLCBvdGhlcndpc2UgZ2V0IGZhaXIgcmVkaXN0IHNoYXJlXG4gICAgICBjb25zdCB3aWR0aCA9IGRpc3RyaWJ1dGFibGVXaWR0aCA8IDIgKiBmYWlyRGlzdHJpYnV0YWJsZSA/IGRpc3RyaWJ1dGFibGVXaWR0aCA6IGZhaXJEaXN0cmlidXRhYmxlO1xuICAgICAgcmV0LnB1c2god2lkdGgpO1xuICAgICAgZGlzdHJpYnV0YWJsZVdpZHRoIC09IHdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHN1bSh4czogbnVtYmVyW10pOiBudW1iZXIge1xuICBsZXQgdG90YWwgPSAwO1xuICBmb3IgKGNvbnN0IHggb2YgeHMpIHtcbiAgICB0b3RhbCArPSB4O1xuICB9XG4gIHJldHVybiB0b3RhbDtcbn1cblxuLy8gV2hhdCBjb2xvciB0aGUgdGFibGUgaXMgZ29pbmcgdG8gYmVcbmNvbnN0IHRhYmxlQ29sb3IgPSBjaGFsay5ncmF5O1xuXG4vLyBVbmljb2RlIHRhYmxlIGNoYXJhY3RlcnMgd2l0aCBhIGNvbG9yXG5jb25zdCBUQUJMRV9CT1JERVJfQ0hBUkFDVEVSUyA9IHtcbiAgdG9wQm9keTogdGFibGVDb2xvcign4pSAJyksXG4gIHRvcEpvaW46IHRhYmxlQ29sb3IoJ+KUrCcpLFxuICB0b3BMZWZ0OiB0YWJsZUNvbG9yKCfilIwnKSxcbiAgdG9wUmlnaHQ6IHRhYmxlQ29sb3IoJ+KUkCcpLFxuICBib3R0b21Cb2R5OiB0YWJsZUNvbG9yKCfilIAnKSxcbiAgYm90dG9tSm9pbjogdGFibGVDb2xvcign4pS0JyksXG4gIGJvdHRvbUxlZnQ6IHRhYmxlQ29sb3IoJ+KUlCcpLFxuICBib3R0b21SaWdodDogdGFibGVDb2xvcign4pSYJyksXG4gIGJvZHlMZWZ0OiB0YWJsZUNvbG9yKCfilIInKSxcbiAgYm9keVJpZ2h0OiB0YWJsZUNvbG9yKCfilIInKSxcbiAgYm9keUpvaW46IHRhYmxlQ29sb3IoJ+KUgicpLFxuICBqb2luQm9keTogdGFibGVDb2xvcign4pSAJyksXG4gIGpvaW5MZWZ0OiB0YWJsZUNvbG9yKCfilJwnKSxcbiAgam9pblJpZ2h0OiB0YWJsZUNvbG9yKCfilKQnKSxcbiAgam9pbkpvaW46IHRhYmxlQ29sb3IoJ+KUvCcpLFxufTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Formatter = void 0;\nexports.formatDifferences = formatDifferences;\nexports.formatSecurityChanges = formatSecurityChanges;\nconst util_1 = require(\"util\");\nconst chalk = require(\"chalk\");\nconst util_2 = require(\"./diff/util\");\nconst diff_template_1 = require(\"./diff-template\");\nconst format_foreach_1 = require(\"./format-foreach\");\nconst format_table_1 = require(\"./format-table\");\n// from cx-api\nconst PATH_METADATA_KEY = 'aws:cdk:path';\n/* eslint-disable @typescript-eslint/no-require-imports */\nconst { structuredPatch } = require('diff');\n/**\n * Renders template differences to the process' console.\n *\n * @param stream - The IO stream where to output the rendered diff.\n * @param templateDiff - TemplateDiff to be rendered to the console.\n * @param logicalToPathMap - A map from logical ID to construct path. Useful in\n * case there is no aws:cdk:path metadata in the template.\n * @param context - the number of context lines to use in arbitrary JSON diff (defaults to 3).\n */\nfunction formatDifferences(stream, templateDiff, logicalToPathMap = {}, context = 3) {\n const formatter = new Formatter(stream, logicalToPathMap, templateDiff, context);\n if (templateDiff.awsTemplateFormatVersion || templateDiff.transform || templateDiff.description) {\n formatter.printSectionHeader('Template');\n formatter.formatDifference('AWSTemplateFormatVersion', 'AWSTemplateFormatVersion', templateDiff.awsTemplateFormatVersion);\n formatter.formatDifference('Transform', 'Transform', templateDiff.transform);\n formatter.formatDifference('Description', 'Description', templateDiff.description);\n formatter.printSectionFooter();\n }\n formatSecurityChangesWithBanner(formatter, templateDiff);\n formatter.formatSection('Parameters', 'Parameter', templateDiff.parameters);\n formatter.formatSection('Metadata', 'Metadata', templateDiff.metadata);\n formatter.formatSection('Mappings', 'Mapping', templateDiff.mappings);\n formatter.formatSection('Conditions', 'Condition', templateDiff.conditions);\n formatter.formatSection('Resources', 'Resource', templateDiff.resources, formatter.formatResourceDifference.bind(formatter));\n formatter.formatSection('Outputs', 'Output', templateDiff.outputs);\n formatter.formatSection('Other Changes', 'Unknown', templateDiff.unknown);\n}\n/**\n * Renders a diff of security changes to the given stream\n */\nfunction formatSecurityChanges(stream, templateDiff, logicalToPathMap = {}, context) {\n const formatter = new Formatter(stream, logicalToPathMap, templateDiff, context);\n formatSecurityChangesWithBanner(formatter, templateDiff);\n}\nfunction formatSecurityChangesWithBanner(formatter, templateDiff) {\n if (!templateDiff.iamChanges.hasChanges && !templateDiff.securityGroupChanges.hasChanges) {\n return;\n }\n formatter.formatIamChanges(templateDiff.iamChanges);\n formatter.formatSecurityGroupChanges(templateDiff.securityGroupChanges);\n formatter.warning('(NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299)');\n formatter.printSectionFooter();\n}\nconst ADDITION = chalk.green('[+]');\nconst CONTEXT = chalk.grey('[ ]');\nconst UPDATE = chalk.yellow('[~]');\nconst REMOVAL = chalk.red('[-]');\nconst IMPORT = chalk.blue('[←]');\nclass Formatter {\n constructor(stream, logicalToPathMap, diff, context = 3) {\n this.stream = stream;\n this.logicalToPathMap = logicalToPathMap;\n this.context = context;\n // Read additional construct paths from the diff if it is supplied\n if (diff) {\n this.readConstructPathsFrom(diff);\n }\n }\n print(fmt, ...args) {\n this.stream.write(chalk.reset((0, util_1.format)(fmt, ...args)) + '\\n');\n }\n warning(fmt, ...args) {\n this.stream.write(chalk.yellow((0, util_1.format)(fmt, ...args)) + '\\n');\n }\n formatSection(title, entryType, collection, formatter = this.formatDifference.bind(this)) {\n if (collection.differenceCount === 0) {\n return;\n }\n this.printSectionHeader(title);\n collection.forEachDifference((id, diff) => formatter(entryType, id, diff));\n this.printSectionFooter();\n }\n printSectionHeader(title) {\n this.print(chalk.underline(chalk.bold(title)));\n }\n printSectionFooter() {\n this.print('');\n }\n /**\n * Print a simple difference for a given named entity.\n *\n * @param logicalId - the name of the entity that is different.\n * @param diff - the difference to be rendered.\n */\n formatDifference(type, logicalId, diff) {\n if (!diff || !diff.isDifferent) {\n return;\n }\n let value;\n const oldValue = this.formatValue(diff.oldValue, chalk.red);\n const newValue = this.formatValue(diff.newValue, chalk.green);\n if (diff.isAddition) {\n value = newValue;\n }\n else if (diff.isUpdate) {\n value = `${oldValue} to ${newValue}`;\n }\n else if (diff.isRemoval) {\n value = oldValue;\n }\n this.print(`${this.formatPrefix(diff)} ${chalk.cyan(type)} ${this.formatLogicalId(logicalId)}: ${value}`);\n }\n /**\n * Print a resource difference for a given logical ID.\n *\n * @param logicalId - the logical ID of the resource that changed.\n * @param diff - the change to be rendered.\n */\n formatResourceDifference(_type, logicalId, diff) {\n if (!diff.isDifferent) {\n return;\n }\n // Handle Fn::ForEach resources specially\n if ((0, format_foreach_1.isForEachKey)(logicalId)) {\n const forEachFormatter = new format_foreach_1.ForEachDiffFormatter();\n const lines = forEachFormatter.formatForEach(logicalId, diff.oldValue, diff.newValue);\n for (const line of lines) {\n this.print(line);\n }\n return;\n }\n const resourceType = diff.isRemoval ? diff.oldResourceType : diff.newResourceType;\n const message = [\n this.formatResourcePrefix(diff),\n this.formatValue(resourceType, chalk.cyan),\n this.formatLogicalId(logicalId),\n this.formatImpact(diff.changeImpact),\n this.formatMove(diff.move),\n ].filter(Boolean).join(' ');\n this.print(message);\n if (diff.isUpdate) {\n const differenceCount = diff.differenceCount;\n let processedCount = 0;\n diff.forEachDifference((_, name, values) => {\n processedCount += 1;\n this.formatTreeDiff(name, values, processedCount === differenceCount);\n });\n }\n }\n formatResourcePrefix(diff) {\n if (diff.isImport) {\n return IMPORT;\n }\n return this.formatPrefix(diff);\n }\n formatPrefix(diff) {\n if (diff.isAddition) {\n return ADDITION;\n }\n if (diff.isUpdate) {\n return UPDATE;\n }\n if (diff.isRemoval) {\n return REMOVAL;\n }\n return chalk.reset('[?]');\n }\n /**\n * @param value - the value to be formatted.\n * @param color - the color to be used.\n *\n * @returns the formatted string, with color applied.\n */\n formatValue(value, color) {\n if (value == null) {\n return undefined;\n }\n if (typeof value === 'string') {\n return color(value);\n }\n return color(JSON.stringify(value));\n }\n /**\n * @param impact - the impact to be formatted\n * @returns a user-friendly, colored string representing the impact.\n */\n formatImpact(impact) {\n switch (impact) {\n case diff_template_1.ResourceImpact.MAY_REPLACE:\n return chalk.italic(chalk.yellow('may be replaced'));\n case diff_template_1.ResourceImpact.WILL_REPLACE:\n return chalk.italic(chalk.bold(chalk.red('replace')));\n case diff_template_1.ResourceImpact.WILL_DESTROY:\n return chalk.italic(chalk.bold(chalk.red('destroy')));\n case diff_template_1.ResourceImpact.WILL_ORPHAN:\n return chalk.italic(chalk.yellow('orphan'));\n case diff_template_1.ResourceImpact.WILL_IMPORT:\n return chalk.italic(chalk.blue('import'));\n case diff_template_1.ResourceImpact.WILL_UPDATE:\n case diff_template_1.ResourceImpact.WILL_CREATE:\n case diff_template_1.ResourceImpact.NO_CHANGE:\n return ''; // no extra info is gained here\n }\n }\n formatMove(move) {\n return !move ? '' : chalk.yellow('(OR', chalk.italic(chalk.bold('move')), `${move.direction} ${move.stackName}.${move.resourceLogicalId} via refactoring)`);\n }\n /**\n * Renders a tree of differences under a particular name.\n * @param name - the name of the root of the tree.\n * @param diff - the difference on the tree.\n * @param last - whether this is the last node of a parent tree.\n */\n formatTreeDiff(name, diff, last) {\n let additionalInfo = '';\n if ((0, diff_template_1.isPropertyDifference)(diff)) {\n if (diff.changeImpact === diff_template_1.ResourceImpact.MAY_REPLACE) {\n additionalInfo = ' (may cause replacement)';\n }\n else if (diff.changeImpact === diff_template_1.ResourceImpact.WILL_REPLACE) {\n additionalInfo = ' (requires replacement)';\n }\n }\n this.print(' %s─ %s %s%s', last ? '└' : '├', this.changeTag(diff.oldValue, diff.newValue), name, additionalInfo);\n return this.formatObjectDiff(diff.oldValue, diff.newValue, ` ${last ? ' ' : '│'}`);\n }\n /**\n * Renders the difference between two objects, looking for the differences as deep as possible,\n * and rendering a tree graph of the path until the difference is found.\n *\n * @param oldObject - the old object.\n * @param newObject - the new object.\n * @param linePrefix - a prefix (indent-like) to be used on every line.\n */\n formatObjectDiff(oldObject, newObject, linePrefix) {\n if ((typeof oldObject !== typeof newObject) || Array.isArray(oldObject) || typeof oldObject === 'string' || typeof oldObject === 'number') {\n if (oldObject !== undefined && newObject !== undefined) {\n if (typeof oldObject === 'object' || typeof newObject === 'object') {\n const oldStr = JSON.stringify(oldObject, null, 2);\n const newStr = JSON.stringify(newObject, null, 2);\n const diff = _diffStrings(oldStr, newStr, this.context);\n for (let i = 0; i < diff.length; i++) {\n this.print('%s %s %s', linePrefix, i === 0 ? '└─' : ' ', diff[i]);\n }\n }\n else {\n this.print('%s ├─ %s %s', linePrefix, REMOVAL, this.formatValue(oldObject, chalk.red));\n this.print('%s └─ %s %s', linePrefix, ADDITION, this.formatValue(newObject, chalk.green));\n }\n }\n else if (oldObject !== undefined /* && newObject === undefined */) {\n this.print('%s └─ %s', linePrefix, this.formatValue(oldObject, chalk.red));\n }\n else /* if (oldObject === undefined && newObject !== undefined) */ {\n this.print('%s └─ %s', linePrefix, this.formatValue(newObject, chalk.green));\n }\n return;\n }\n const keySet = new Set(Object.keys(oldObject));\n Object.keys(newObject).forEach(k => keySet.add(k));\n const keys = new Array(...keySet).filter(k => !(0, util_2.deepEqual)(oldObject[k], newObject[k])).sort();\n const lastKey = keys[keys.length - 1];\n for (const key of keys) {\n const oldValue = oldObject[key];\n const newValue = newObject[key];\n const treePrefix = key === lastKey ? '└' : '├';\n if (oldValue !== undefined && newValue !== undefined) {\n this.print('%s %s─ %s %s:', linePrefix, treePrefix, this.changeTag(oldValue, newValue), chalk.blue(`.${key}`));\n this.formatObjectDiff(oldValue, newValue, `${linePrefix} ${key === lastKey ? ' ' : '│'}`);\n }\n else if (oldValue !== undefined /* && newValue === undefined */) {\n this.print('%s %s─ %s Removed: %s', linePrefix, treePrefix, REMOVAL, chalk.blue(`.${key}`));\n }\n else /* if (oldValue === undefined && newValue !== undefined */ {\n this.print('%s %s─ %s Added: %s', linePrefix, treePrefix, ADDITION, chalk.blue(`.${key}`));\n }\n }\n }\n /**\n * @param oldValue - the old value of a difference.\n * @param newValue - the new value of a difference.\n *\n * @returns a tag to be rendered in the diff, reflecting whether the difference\n * was an ADDITION, UPDATE or REMOVAL.\n */\n changeTag(oldValue, newValue) {\n if (oldValue !== undefined && newValue !== undefined) {\n return UPDATE;\n }\n else if (oldValue !== undefined /* && newValue === undefined*/) {\n return REMOVAL;\n }\n else /* if (oldValue === undefined && newValue !== undefined) */ {\n return ADDITION;\n }\n }\n /**\n * Find 'aws:cdk:path' metadata in the diff and add it to the logicalToPathMap\n *\n * There are multiple sources of logicalID -> path mappings: synth metadata\n * and resource metadata, and we combine all sources into a single map.\n */\n readConstructPathsFrom(templateDiff) {\n for (const [logicalId, resourceDiff] of Object.entries(templateDiff.resources)) {\n if (!resourceDiff) {\n continue;\n }\n const oldPathMetadata = resourceDiff.oldValue?.Metadata?.[PATH_METADATA_KEY];\n if (oldPathMetadata && !(logicalId in this.logicalToPathMap)) {\n this.logicalToPathMap[logicalId] = oldPathMetadata;\n }\n const newPathMetadata = resourceDiff.newValue?.Metadata?.[PATH_METADATA_KEY];\n if (newPathMetadata && !(logicalId in this.logicalToPathMap)) {\n this.logicalToPathMap[logicalId] = newPathMetadata;\n }\n }\n }\n formatLogicalId(logicalId) {\n // if we have a path in the map, return it\n const normalized = this.normalizedLogicalIdPath(logicalId);\n if (normalized) {\n return `${normalized} ${chalk.gray(logicalId)}`;\n }\n return logicalId;\n }\n normalizedLogicalIdPath(logicalId) {\n // if we have a path in the map, return it\n const path = this.logicalToPathMap[logicalId];\n return path ? normalizePath(path) : undefined;\n /**\n * Path is supposed to start with \"/stack-name\". If this is the case (i.e. path has more than\n * two components, we remove the first part. Otherwise, we just use the full path.\n */\n function normalizePath(p) {\n if (p.startsWith('/')) {\n p = p.slice(1);\n }\n let parts = p.split('/');\n if (parts.length > 1) {\n parts = parts.slice(1);\n // remove the last component if it's \"Resource\" or \"Default\" (if we have more than a single component)\n if (parts.length > 1) {\n const last = parts[parts.length - 1];\n if (last === 'Resource' || last === 'Default') {\n parts = parts.slice(0, parts.length - 1);\n }\n }\n p = parts.join('/');\n }\n return p;\n }\n }\n formatIamChanges(changes) {\n if (!changes.hasChanges) {\n return;\n }\n if (changes.statements.hasChanges) {\n this.printSectionHeader('IAM Statement Changes');\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeStatements()), this.stream.columns));\n }\n if (changes.managedPolicies.hasChanges) {\n this.printSectionHeader('IAM Policy Changes');\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeManagedPolicies()), this.stream.columns));\n }\n if (changes.ssoPermissionSets.hasChanges || changes.ssoInstanceACAConfigs.hasChanges || changes.ssoAssignments.hasChanges) {\n this.printSectionHeader('IAM Identity Center Changes');\n if (changes.ssoPermissionSets.hasChanges) {\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeSsoPermissionSets()), this.stream.columns));\n }\n if (changes.ssoInstanceACAConfigs.hasChanges) {\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeSsoInstanceACAConfigs()), this.stream.columns));\n }\n if (changes.ssoAssignments.hasChanges) {\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeSsoAssignments()), this.stream.columns));\n }\n }\n }\n formatSecurityGroupChanges(changes) {\n if (!changes.hasChanges) {\n return;\n }\n this.printSectionHeader('Security Group Changes');\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarize()), this.stream.columns));\n }\n deepSubstituteBracedLogicalIds(rows) {\n return rows.map(row => row.map(this.substituteBracedLogicalIds.bind(this)));\n }\n /**\n * Substitute all strings like ${LogId.xxx} with the path instead of the logical ID\n */\n substituteBracedLogicalIds(source) {\n return source.replace(/\\$\\{([^.}]+)(.[^}]+)?\\}/ig, (_match, logId, suffix) => {\n return '${' + (this.normalizedLogicalIdPath(logId) || logId) + (suffix || '') + '}';\n });\n }\n}\nexports.Formatter = Formatter;\n/**\n * Creates a unified diff of two strings.\n *\n * @param oldStr - the \"old\" version of the string.\n * @param newStr - the \"new\" version of the string.\n * @param context - the number of context lines to use in arbitrary JSON diff.\n *\n * @returns an array of diff lines.\n */\nfunction _diffStrings(oldStr, newStr, context) {\n const patch = structuredPatch(null, null, oldStr, newStr, null, null, { context });\n const result = new Array();\n for (const hunk of patch.hunks) {\n result.push(chalk.magenta(`@@ -${hunk.oldStart},${hunk.oldLines} +${hunk.newStart},${hunk.newLines} @@`));\n const baseIndent = _findIndent(hunk.lines);\n for (const line of hunk.lines) {\n // Don't care about termination newline.\n if (line === '\\\\ No newline at end of file') {\n continue;\n }\n const marker = line.charAt(0);\n const text = line.slice(1 + baseIndent);\n switch (marker) {\n case ' ':\n result.push(`${CONTEXT} ${text}`);\n break;\n case '+':\n result.push(chalk.bold(`${ADDITION} ${chalk.green(text)}`));\n break;\n case '-':\n result.push(chalk.bold(`${REMOVAL} ${chalk.red(text)}`));\n break;\n default:\n throw new Error(`Unexpected diff marker: ${marker} (full line: ${line})`);\n }\n }\n }\n return result;\n function _findIndent(lines) {\n let indent = Number.MAX_SAFE_INTEGER;\n for (const line of lines) {\n for (let i = 1; i < line.length; i++) {\n if (line.charAt(i) !== ' ') {\n indent = indent > i - 1 ? i - 1 : indent;\n break;\n }\n }\n }\n return indent;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQStCQSw4Q0F3QkM7QUFLRCxzREFTQztBQXJFRCwrQkFBOEI7QUFDOUIsK0JBQStCO0FBRS9CLHNDQUF3QztBQUV4QyxtREFBdUU7QUFDdkUscURBQXNFO0FBQ3RFLGlEQUE2QztBQUk3QyxjQUFjO0FBQ2QsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFFekMsMERBQTBEO0FBQzFELE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFPNUM7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsTUFBb0IsRUFDcEIsWUFBMEIsRUFDMUIsbUJBQW9ELEVBQUUsRUFDdEQsVUFBa0IsQ0FBQztJQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWpGLElBQUksWUFBWSxDQUFDLHdCQUF3QixJQUFJLFlBQVksQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsWUFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDMUgsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRixTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0JBQStCLENBQUMsU0FB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SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IERpZmZlcmVuY2VDb2xsZWN0aW9uLCBNb3ZlLCBUZW1wbGF0ZURpZmYgfSBmcm9tICcuL2RpZmYvdHlwZXMnO1xuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi9kaWZmL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBEaWZmZXJlbmNlLCBSZXNvdXJjZURpZmZlcmVuY2UgfSBmcm9tICcuL2RpZmYtdGVtcGxhdGUnO1xuaW1wb3J0IHsgaXNQcm9wZXJ0eURpZmZlcmVuY2UsIFJlc291cmNlSW1wYWN0IH0gZnJvbSAnLi9kaWZmLXRlbXBsYXRlJztcbmltcG9ydCB7IEZvckVhY2hEaWZmRm9ybWF0dGVyLCBpc0ZvckVhY2hLZXkgfSBmcm9tICcuL2Zvcm1hdC1mb3JlYWNoJztcbmltcG9ydCB7IGZvcm1hdFRhYmxlIH0gZnJvbSAnLi9mb3JtYXQtdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBJYW1DaGFuZ2VzIH0gZnJvbSAnLi9pYW0vaWFtLWNoYW5nZXMnO1xuaW1wb3J0IHR5cGUgeyBTZWN1cml0eUdyb3VwQ2hhbmdlcyB9IGZyb20gJy4vbmV0d29yay9zZWN1cml0eS1ncm91cC1jaGFuZ2VzJztcblxuLy8gZnJvbSBjeC1hcGlcbmNvbnN0IFBBVEhfTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6cGF0aCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IHsgc3RydWN0dXJlZFBhdGNoIH0gPSByZXF1aXJlKCdkaWZmJyk7XG4vKiBlc2xpbnQtZW5hYmxlICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0U3RyZWFtIGV4dGVuZHMgTm9kZUpTLldyaXRhYmxlU3RyZWFtIHtcbiAgY29sdW1ucz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRlbXBsYXRlIGRpZmZlcmVuY2VzIHRvIHRoZSBwcm9jZXNzJyBjb25zb2xlLlxuICpcbiAqIEBwYXJhbSBzdHJlYW0gICAgICAgICAgIC0gVGhlIElPIHN0cmVhbSB3aGVyZSB0byBvdXRwdXQgdGhlIHJlbmRlcmVkIGRpZmYuXG4gKiBAcGFyYW0gdGVtcGxhdGVEaWZmICAgICAtIFRlbXBsYXRlRGlmZiB0byBiZSByZW5kZXJlZCB0byB0aGUgY29uc29sZS5cbiAqIEBwYXJhbSBsb2dpY2FsVG9QYXRoTWFwIC0gQSBtYXAgZnJvbSBsb2dpY2FsIElEIHRvIGNvbnN0cnVjdCBwYXRoLiBVc2VmdWwgaW5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdGhlcmUgaXMgbm8gYXdzOmNkazpwYXRoIG1ldGFkYXRhIGluIHRoZSB0ZW1wbGF0ZS5cbiAqIEBwYXJhbSBjb250ZXh0ICAgICAgICAgIC0gdGhlIG51bWJlciBvZiBjb250ZXh0IGxpbmVzIHRvIHVzZSBpbiBhcmJpdHJhcnkgSlNPTiBkaWZmIChkZWZhdWx0cyB0byAzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERpZmZlcmVuY2VzKFxuICBzdHJlYW06IEZvcm1hdFN0cmVhbSxcbiAgdGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYsXG4gIGxvZ2ljYWxUb1BhdGhNYXA6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSxcbiAgY29udGV4dDogbnVtYmVyID0gMykge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwgbG9naWNhbFRvUGF0aE1hcCwgdGVtcGxhdGVEaWZmLCBjb250ZXh0KTtcblxuICBpZiAodGVtcGxhdGVEaWZmLmF3c1RlbXBsYXRlRm9ybWF0VmVyc2lvbiB8fCB0ZW1wbGF0ZURpZmYudHJhbnNmb3JtIHx8IHRlbXBsYXRlRGlmZi5kZXNjcmlwdGlvbikge1xuICAgIGZvcm1hdHRlci5wcmludFNlY3Rpb25IZWFkZXIoJ1RlbXBsYXRlJyk7XG4gICAgZm9ybWF0dGVyLmZvcm1hdERpZmZlcmVuY2UoJ0FXU1RlbXBsYXRlRm9ybWF0VmVyc2lvbicsICdBV1NUZW1wbGF0ZUZvcm1hdFZlcnNpb24nLCB0ZW1wbGF0ZURpZmYuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uKTtcbiAgICBmb3JtYXR0ZXIuZm9ybWF0RGlmZmVyZW5jZSgnVHJhbnNmb3JtJywgJ1RyYW5zZm9ybScsIHRlbXBsYXRlRGlmZi50cmFuc2Zvcm0pO1xuICAgIGZvcm1hdHRlci5mb3JtYXREaWZmZXJlbmNlKCdEZXNjcmlwdGlvbicsICdEZXNjcmlwdGlvbicsIHRlbXBsYXRlRGlmZi5kZXNjcmlwdGlvbik7XG4gICAgZm9ybWF0dGVyLnByaW50U2VjdGlvbkZvb3RlcigpO1xuICB9XG5cbiAgZm9ybWF0U2VjdXJpdHlDaGFuZ2VzV2l0aEJhbm5lcihmb3JtYXR0ZXIsIHRlbXBsYXRlRGlmZik7XG5cbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ1BhcmFtZXRlcnMnLCAnUGFyYW1ldGVyJywgdGVtcGxhdGVEaWZmLnBhcmFtZXRlcnMpO1xuICBmb3JtYXR0ZXIuZm9ybWF0U2VjdGlvbignTWV0YWRhdGEnLCAnTWV0YWRhdGEnLCB0ZW1wbGF0ZURpZmYubWV0YWRhdGEpO1xuICBmb3JtYXR0ZXIuZm9ybWF0U2VjdGlvbignTWFwcGluZ3MnLCAnTWFwcGluZycsIHRlbXBsYXRlRGlmZi5tYXBwaW5ncyk7XG4gIGZvcm1hdHRlci5mb3JtYXRTZWN0aW9uKCdDb25kaXRpb25zJywgJ0NvbmRpdGlvbicsIHRlbXBsYXRlRGlmZi5jb25kaXRpb25zKTtcbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ1Jlc291cmNlcycsICdSZXNvdXJjZScsIHRlbXBsYXRlRGlmZi5yZXNvdXJjZXMsIGZvcm1hdHRlci5mb3JtYXRSZXNvdXJjZURpZmZlcmVuY2UuYmluZChmb3JtYXR0ZXIpKTtcbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ091dHB1dHMnLCAnT3V0cHV0JywgdGVtcGxhdGVEaWZmLm91dHB1dHMpO1xuICBmb3JtYXR0ZXIuZm9ybWF0U2VjdGlvbignT3RoZXIgQ2hhbmdlcycsICdVbmtub3duJywgdGVtcGxhdGVEaWZmLnVua25vd24pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBkaWZmIG9mIHNlY3VyaXR5IGNoYW5nZXMgdG8gdGhlIGdpdmVuIHN0cmVhbVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2VjdXJpdHlDaGFuZ2VzKFxuICBzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSxcbiAgdGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYsXG4gIGxvZ2ljYWxUb1BhdGhNYXA6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSxcbiAgY29udGV4dD86IG51bWJlcixcbikge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwgbG9naWNhbFRvUGF0aE1hcCwgdGVtcGxhdGVEaWZmLCBjb250ZXh0KTtcblxuICBmb3JtYXRTZWN1cml0eUNoYW5nZXNXaXRoQmFubmVyKGZvcm1hdHRlciwgdGVtcGxhdGVEaWZmKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0U2VjdXJpdHlDaGFuZ2VzV2l0aEJhbm5lcihmb3JtYXR0ZXI6IEZvcm1hdHRlciwgdGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYpIHtcbiAgaWYgKCF0ZW1wbGF0ZURpZmYuaWFtQ2hhbmdlcy5oYXNDaGFuZ2VzICYmICF0ZW1wbGF0ZURpZmYuc2VjdXJpdHlHcm91cENoYW5nZXMuaGFzQ2hhbmdlcykge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3JtYXR0ZXIuZm9ybWF0SWFtQ2hhbmdlcyh0ZW1wbGF0ZURpZmYuaWFtQ2hhbmdlcyk7XG4gIGZvcm1hdHRlci5mb3JtYXRTZWN1cml0eUdyb3VwQ2hhbmdlcyh0ZW1wbGF0ZURpZmYuc2VjdXJpdHlHcm91cENoYW5nZXMpO1xuXG4gIGZvcm1hdHRlci53YXJuaW5nKCcoTk9URTogVGhlcmUgbWF5IGJlIHNlY3VyaXR5LXJlbGF0ZWQgY2hhbmdlcyBub3QgaW4gdGhpcyBsaXN0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMjk5KScpO1xuICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG59XG5cbmNvbnN0IEFERElUSU9OID0gY2hhbGsuZ3JlZW4oJ1srXScpO1xuY29uc3QgQ09OVEVYVCA9IGNoYWxrLmdyZXkoJ1sgXScpO1xuY29uc3QgVVBEQVRFID0gY2hhbGsueWVsbG93KCdbfl0nKTtcbmNvbnN0IFJFTU9WQUwgPSBjaGFsay5yZWQoJ1stXScpO1xuY29uc3QgSU1QT1JUID0gY2hhbGsuYmx1ZSgnW+KGkF0nKTtcblxuZXhwb3J0IGNsYXNzIEZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBGb3JtYXRTdHJlYW0sXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dpY2FsVG9QYXRoTWFwOiB7IFtsb2dpY2FsSWQ6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIGRpZmY/OiBUZW1wbGF0ZURpZmYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBudW1iZXIgPSAzKSB7XG4gICAgLy8gUmVhZCBhZGRpdGlvbmFsIGNvbnN0cnVjdCBwYXRocyBmcm9tIHRoZSBkaWZmIGlmIGl0IGlzIHN1cHBsaWVkXG4gICAgaWYgKGRpZmYpIHtcbiAgICAgIHRoaXMucmVhZENvbnN0cnVjdFBhdGhzRnJvbShkaWZmKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJpbnQoZm10OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY2hhbGsucmVzZXQoZm9ybWF0KGZtdCwgLi4uYXJncykpICsgJ1xcbicpO1xuICB9XG5cbiAgcHVibGljIHdhcm5pbmcoZm10OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY2hhbGsueWVsbG93KGZvcm1hdChmbXQsIC4uLmFyZ3MpKSArICdcXG4nKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXRTZWN0aW9uPFYsIFQgZXh0ZW5kcyBEaWZmZXJlbmNlPFY+PihcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGVudHJ5VHlwZTogc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IERpZmZlcmVuY2VDb2xsZWN0aW9uPFYsIFQ+LFxuICAgIGZvcm1hdHRlcjogKHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZywgZGlmZjogVCkgPT4gdm9pZCA9IHRoaXMuZm9ybWF0RGlmZmVyZW5jZS5iaW5kKHRoaXMpKSB7XG4gICAgaWYgKGNvbGxlY3Rpb24uZGlmZmVyZW5jZUNvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIodGl0bGUpO1xuICAgIGNvbGxlY3Rpb24uZm9yRWFjaERpZmZlcmVuY2UoKGlkLCBkaWZmKSA9PiBmb3JtYXR0ZXIoZW50cnlUeXBlLCBpZCwgZGlmZikpO1xuICAgIHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnRTZWN0aW9uSGVhZGVyKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByaW50KGNoYWxrLnVuZGVybGluZShjaGFsay5ib2xkKHRpdGxlKSkpO1xuICB9XG5cbiAgcHVibGljIHByaW50U2VjdGlvbkZvb3RlcigpIHtcbiAgICB0aGlzLnByaW50KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludCBhIHNpbXBsZSBkaWZmZXJlbmNlIGZvciBhIGdpdmVuIG5hbWVkIGVudGl0eS5cbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCAtIHRoZSBuYW1lIG9mIHRoZSBlbnRpdHkgdGhhdCBpcyBkaWZmZXJlbnQuXG4gICAqIEBwYXJhbSBkaWZmIC0gdGhlIGRpZmZlcmVuY2UgdG8gYmUgcmVuZGVyZWQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0RGlmZmVyZW5jZSh0eXBlOiBzdHJpbmcsIGxvZ2ljYWxJZDogc3RyaW5nLCBkaWZmOiBEaWZmZXJlbmNlPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIWRpZmYgfHwgIWRpZmYuaXNEaWZmZXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoZGlmZi5vbGRWYWx1ZSwgY2hhbGsucmVkKTtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoZGlmZi5uZXdWYWx1ZSwgY2hhbGsuZ3JlZW4pO1xuICAgIGlmIChkaWZmLmlzQWRkaXRpb24pIHtcbiAgICAgIHZhbHVlID0gbmV3VmFsdWU7XG4gICAgfSBlbHNlIGlmIChkaWZmLmlzVXBkYXRlKSB7XG4gICAgICB2YWx1ZSA9IGAke29sZFZhbHVlfSB0byAke25ld1ZhbHVlfWA7XG4gICAgfSBlbHNlIGlmIChkaWZmLmlzUmVtb3ZhbCkge1xuICAgICAgdmFsdWUgPSBvbGRWYWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnByaW50KGAke3RoaXMuZm9ybWF0UHJlZml4KGRpZmYpfSAke2NoYWxrLmN5YW4odHlwZSl9ICR7dGhpcy5mb3JtYXRMb2dpY2FsSWQobG9naWNhbElkKX06ICR7dmFsdWV9YCk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnQgYSByZXNvdXJjZSBkaWZmZXJlbmNlIGZvciBhIGdpdmVuIGxvZ2ljYWwgSUQuXG4gICAqXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgLSB0aGUgbG9naWNhbCBJRCBvZiB0aGUgcmVzb3VyY2UgdGhhdCBjaGFuZ2VkLlxuICAgKiBAcGFyYW0gZGlmZiAgICAgIC0gdGhlIGNoYW5nZSB0byBiZSByZW5kZXJlZC5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRSZXNvdXJjZURpZmZlcmVuY2UoX3R5cGU6IHN0cmluZywgbG9naWNhbElkOiBzdHJpbmcsIGRpZmY6IFJlc291cmNlRGlmZmVyZW5jZSkge1xuICAgIGlmICghZGlmZi5pc0RpZmZlcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBGbjo6Rm9yRWFjaCByZXNvdXJjZXMgc3BlY2lhbGx5XG4gICAgaWYgKGlzRm9yRWFjaEtleShsb2dpY2FsSWQpKSB7XG4gICAgICBjb25zdCBmb3JFYWNoRm9ybWF0dGVyID0gbmV3IEZvckVhY2hEaWZmRm9ybWF0dGVyKCk7XG4gICAgICBjb25zdCBsaW5lcyA9IGZvckVhY2hGb3JtYXR0ZXIuZm9ybWF0Rm9yRWFjaChsb2dpY2FsSWQsIGRpZmYub2xkVmFsdWUsIGRpZmYubmV3VmFsdWUpO1xuICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgIHRoaXMucHJpbnQobGluZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gZGlmZi5pc1JlbW92YWwgPyBkaWZmLm9sZFJlc291cmNlVHlwZSA6IGRpZmYubmV3UmVzb3VyY2VUeXBlO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IFtcbiAgICAgIHRoaXMuZm9ybWF0UmVzb3VyY2VQcmVmaXgoZGlmZiksXG4gICAgICB0aGlzLmZvcm1hdFZhbHVlKHJlc291cmNlVHlwZSwgY2hhbGsuY3lhbiksXG4gICAgICB0aGlzLmZvcm1hdExvZ2ljYWxJZChsb2dpY2FsSWQpLFxuICAgICAgdGhpcy5mb3JtYXRJbXBhY3QoZGlmZi5jaGFuZ2VJbXBhY3QpLFxuICAgICAgdGhpcy5mb3JtYXRNb3ZlKGRpZmYubW92ZSksXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuXG4gICAgdGhpcy5wcmludChtZXNzYWdlKTtcblxuICAgIGlmIChkaWZmLmlzVXBkYXRlKSB7XG4gICAgICBjb25zdCBkaWZmZXJlbmNlQ291bnQgPSBkaWZmLmRpZmZlcmVuY2VDb3VudDtcbiAgICAgIGxldCBwcm9jZXNzZWRDb3VudCA9IDA7XG4gICAgICBkaWZmLmZvckVhY2hEaWZmZXJlbmNlKChfLCBuYW1lLCB2YWx1ZXMpID0+IHtcbiAgICAgICAgcHJvY2Vzc2VkQ291bnQgKz0gMTtcbiAgICAgICAgdGhpcy5mb3JtYXRUcmVlRGlmZihuYW1lLCB2YWx1ZXMsIHByb2Nlc3NlZENvdW50ID09PSBkaWZmZXJlbmNlQ291bnQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdFJlc291cmNlUHJlZml4KGRpZmY6IFJlc291cmNlRGlmZmVyZW5jZSkge1xuICAgIGlmIChkaWZmLmlzSW1wb3J0KSB7XG4gICAgICByZXR1cm4gSU1QT1JUO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvcm1hdFByZWZpeChkaWZmKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXRQcmVmaXg8VD4oZGlmZjogRGlmZmVyZW5jZTxUPikge1xuICAgIGlmIChkaWZmLmlzQWRkaXRpb24pIHtcbiAgICAgIHJldHVybiBBRERJVElPTjtcbiAgICB9XG4gICAgaWYgKGRpZmYuaXNVcGRhdGUpIHtcbiAgICAgIHJldHVybiBVUERBVEU7XG4gICAgfVxuICAgIGlmIChkaWZmLmlzUmVtb3ZhbCkge1xuICAgICAgcmV0dXJuIFJFTU9WQUw7XG4gICAgfVxuICAgIHJldHVybiBjaGFsay5yZXNldCgnWz9dJyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHZhbHVlIC0gdGhlIHZhbHVlIHRvIGJlIGZvcm1hdHRlZC5cbiAgICogQHBhcmFtIGNvbG9yIC0gdGhlIGNvbG9yIHRvIGJlIHVzZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLCB3aXRoIGNvbG9yIGFwcGxpZWQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0VmFsdWUodmFsdWU6IGFueSwgY29sb3I6IChzdHI6IHN0cmluZykgPT4gc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY29sb3IodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gY29sb3IoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gaW1wYWN0IC0gdGhlIGltcGFjdCB0byBiZSBmb3JtYXR0ZWRcbiAgICogQHJldHVybnMgYSB1c2VyLWZyaWVuZGx5LCBjb2xvcmVkIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGltcGFjdC5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRJbXBhY3QoaW1wYWN0OiBSZXNvdXJjZUltcGFjdCkge1xuICAgIHN3aXRjaCAoaW1wYWN0KSB7XG4gICAgICBjYXNlIFJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFOlxuICAgICAgICByZXR1cm4gY2hhbGsuaXRhbGljKGNoYWxrLnllbGxvdygnbWF5IGJlIHJlcGxhY2VkJykpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0U6XG4gICAgICAgIHJldHVybiBjaGFsay5pdGFsaWMoY2hhbGsuYm9sZChjaGFsay5yZWQoJ3JlcGxhY2UnKSkpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX0RFU1RST1k6XG4gICAgICAgIHJldHVybiBjaGFsay5pdGFsaWMoY2hhbGsuYm9sZChjaGFsay5yZWQoJ2Rlc3Ryb3knKSkpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX09SUEhBTjpcbiAgICAgICAgcmV0dXJuIGNoYWxrLml0YWxpYyhjaGFsay55ZWxsb3coJ29ycGhhbicpKTtcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9JTVBPUlQ6XG4gICAgICAgIHJldHVybiBjaGFsay5pdGFsaWMoY2hhbGsuYmx1ZSgnaW1wb3J0JykpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURTpcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9DUkVBVEU6XG4gICAgICBjYXNlIFJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTpcbiAgICAgICAgcmV0dXJuICcnOyAvLyBubyBleHRyYSBpbmZvIGlzIGdhaW5lZCBoZXJlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRNb3ZlKG1vdmU/OiBNb3ZlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gIW1vdmUgPyAnJyA6IGNoYWxrLnllbGxvdygnKE9SJywgY2hhbGsuaXRhbGljKGNoYWxrLmJvbGQoJ21vdmUnKSksIGAke21vdmUuZGlyZWN0aW9ufSAke21vdmUuc3RhY2tOYW1lfS4ke21vdmUucmVzb3VyY2VMb2dpY2FsSWR9IHZpYSByZWZhY3RvcmluZylgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgdHJlZSBvZiBkaWZmZXJlbmNlcyB1bmRlciBhIHBhcnRpY3VsYXIgbmFtZS5cbiAgICogQHBhcmFtIG5hbWUgICAgLSB0aGUgbmFtZSBvZiB0aGUgcm9vdCBvZiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIGRpZmYgICAgLSB0aGUgZGlmZmVyZW5jZSBvbiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIGxhc3QgICAgLSB3aGV0aGVyIHRoaXMgaXMgdGhlIGxhc3Qgbm9kZSBvZiBhIHBhcmVudCB0cmVlLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdFRyZWVEaWZmKG5hbWU6IHN0cmluZywgZGlmZjogRGlmZmVyZW5jZTxhbnk+LCBsYXN0OiBib29sZWFuKSB7XG4gICAgbGV0IGFkZGl0aW9uYWxJbmZvID0gJyc7XG4gICAgaWYgKGlzUHJvcGVydHlEaWZmZXJlbmNlKGRpZmYpKSB7XG4gICAgICBpZiAoZGlmZi5jaGFuZ2VJbXBhY3QgPT09IFJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFKSB7XG4gICAgICAgIGFkZGl0aW9uYWxJbmZvID0gJyAobWF5IGNhdXNlIHJlcGxhY2VtZW50KSc7XG4gICAgICB9IGVsc2UgaWYgKGRpZmYuY2hhbmdlSW1wYWN0ID09PSBSZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0UpIHtcbiAgICAgICAgYWRkaXRpb25hbEluZm8gPSAnIChyZXF1aXJlcyByZXBsYWNlbWVudCknO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnByaW50KCcgJXPilIAgJXMgJXMlcycsIGxhc3QgPyAn4pSUJyA6ICfilJwnLCB0aGlzLmNoYW5nZVRhZyhkaWZmLm9sZFZhbHVlLCBkaWZmLm5ld1ZhbHVlKSwgbmFtZSwgYWRkaXRpb25hbEluZm8pO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdE9iamVjdERpZmYoZGlmZi5vbGRWYWx1ZSwgZGlmZi5uZXdWYWx1ZSwgYCAke2xhc3QgPyAnICcgOiAn4pSCJ31gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIG9iamVjdHMsIGxvb2tpbmcgZm9yIHRoZSBkaWZmZXJlbmNlcyBhcyBkZWVwIGFzIHBvc3NpYmxlLFxuICAgKiBhbmQgcmVuZGVyaW5nIGEgdHJlZSBncmFwaCBvZiB0aGUgcGF0aCB1bnRpbCB0aGUgZGlmZmVyZW5jZSBpcyBmb3VuZC5cbiAgICpcbiAgICogQHBhcmFtIG9sZE9iamVjdCAgLSB0aGUgb2xkIG9iamVjdC5cbiAgICogQHBhcmFtIG5ld09iamVjdCAgLSB0aGUgbmV3IG9iamVjdC5cbiAgICogQHBhcmFtIGxpbmVQcmVmaXggLSBhIHByZWZpeCAoaW5kZW50LWxpa2UpIHRvIGJlIHVzZWQgb24gZXZlcnkgbGluZS5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRPYmplY3REaWZmKG9sZE9iamVjdDogYW55LCBuZXdPYmplY3Q6IGFueSwgbGluZVByZWZpeDogc3RyaW5nKSB7XG4gICAgaWYgKCh0eXBlb2Ygb2xkT2JqZWN0ICE9PSB0eXBlb2YgbmV3T2JqZWN0KSB8fCBBcnJheS5pc0FycmF5KG9sZE9iamVjdCkgfHwgdHlwZW9mIG9sZE9iamVjdCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9sZE9iamVjdCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmIChvbGRPYmplY3QgIT09IHVuZGVmaW5lZCAmJiBuZXdPYmplY3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIG9sZE9iamVjdCA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ld09iamVjdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBvbGRTdHIgPSBKU09OLnN0cmluZ2lmeShvbGRPYmplY3QsIG51bGwsIDIpO1xuICAgICAgICAgIGNvbnN0IG5ld1N0ciA9IEpTT04uc3RyaW5naWZ5KG5ld09iamVjdCwgbnVsbCwgMik7XG4gICAgICAgICAgY29uc3QgZGlmZiA9IF9kaWZmU3RyaW5ncyhvbGRTdHIsIG5ld1N0ciwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMucHJpbnQoJyVzICAgJXMgJXMnLCBsaW5lUHJlZml4LCBpID09PSAwID8gJ+KUlOKUgCcgOiAnICAnLCBkaWZmW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJzilIAgJXMgJXMnLCBsaW5lUHJlZml4LCBSRU1PVkFMLCB0aGlzLmZvcm1hdFZhbHVlKG9sZE9iamVjdCwgY2hhbGsucmVkKSk7XG4gICAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJTilIAgJXMgJXMnLCBsaW5lUHJlZml4LCBBRERJVElPTiwgdGhpcy5mb3JtYXRWYWx1ZShuZXdPYmplY3QsIGNoYWxrLmdyZWVuKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAob2xkT2JqZWN0ICE9PSB1bmRlZmluZWQgLyogJiYgbmV3T2JqZWN0ID09PSB1bmRlZmluZWQgKi8pIHtcbiAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJTilIAgJXMnLCBsaW5lUHJlZml4LCB0aGlzLmZvcm1hdFZhbHVlKG9sZE9iamVjdCwgY2hhbGsucmVkKSk7XG4gICAgICB9IGVsc2UgLyogaWYgKG9sZE9iamVjdCA9PT0gdW5kZWZpbmVkICYmIG5ld09iamVjdCAhPT0gdW5kZWZpbmVkKSAqLyB7XG4gICAgICAgIHRoaXMucHJpbnQoJyVzICAg4pSU4pSAICVzJywgbGluZVByZWZpeCwgdGhpcy5mb3JtYXRWYWx1ZShuZXdPYmplY3QsIGNoYWxrLmdyZWVuKSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGtleVNldCA9IG5ldyBTZXQoT2JqZWN0LmtleXMob2xkT2JqZWN0KSk7XG4gICAgT2JqZWN0LmtleXMobmV3T2JqZWN0KS5mb3JFYWNoKGsgPT4ga2V5U2V0LmFkZChrKSk7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBBcnJheSguLi5rZXlTZXQpLmZpbHRlcihrID0+ICFkZWVwRXF1YWwob2xkT2JqZWN0W2tdLCBuZXdPYmplY3Rba10pKS5zb3J0KCk7XG4gICAgY29uc3QgbGFzdEtleSA9IGtleXNba2V5cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IG9sZE9iamVjdFtrZXldO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBuZXdPYmplY3Rba2V5XTtcbiAgICAgIGNvbnN0IHRyZWVQcmVmaXggPSBrZXkgPT09IGxhc3RLZXkgPyAn4pSUJyA6ICfilJwnO1xuICAgICAgaWYgKG9sZFZhbHVlICE9PSB1bmRlZmluZWQgJiYgbmV3VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnByaW50KCclcyAgICVz4pSAICVzICVzOicsIGxpbmVQcmVmaXgsIHRyZWVQcmVmaXgsIHRoaXMuY2hhbmdlVGFnKG9sZFZhbHVlLCBuZXdWYWx1ZSksIGNoYWxrLmJsdWUoYC4ke2tleX1gKSk7XG4gICAgICAgIHRoaXMuZm9ybWF0T2JqZWN0RGlmZihvbGRWYWx1ZSwgbmV3VmFsdWUsIGAke2xpbmVQcmVmaXh9ICAgJHtrZXkgPT09IGxhc3RLZXkgPyAnICcgOiAn4pSCJ31gKTtcbiAgICAgIH0gZWxzZSBpZiAob2xkVmFsdWUgIT09IHVuZGVmaW5lZCAvKiAmJiBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkICovKSB7XG4gICAgICAgIHRoaXMucHJpbnQoJyVzICAgJXPilIAgJXMgUmVtb3ZlZDogJXMnLCBsaW5lUHJlZml4LCB0cmVlUHJlZml4LCBSRU1PVkFMLCBjaGFsay5ibHVlKGAuJHtrZXl9YCkpO1xuICAgICAgfSBlbHNlIC8qIGlmIChvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlICE9PSB1bmRlZmluZWQgKi8ge1xuICAgICAgICB0aGlzLnByaW50KCclcyAgICVz4pSAICVzIEFkZGVkOiAlcycsIGxpbmVQcmVmaXgsIHRyZWVQcmVmaXgsIEFERElUSU9OLCBjaGFsay5ibHVlKGAuJHtrZXl9YCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gb2xkVmFsdWUgLSB0aGUgb2xkIHZhbHVlIG9mIGEgZGlmZmVyZW5jZS5cbiAgICogQHBhcmFtIG5ld1ZhbHVlIC0gdGhlIG5ldyB2YWx1ZSBvZiBhIGRpZmZlcmVuY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgdGFnIHRvIGJlIHJlbmRlcmVkIGluIHRoZSBkaWZmLCByZWZsZWN0aW5nIHdoZXRoZXIgdGhlIGRpZmZlcmVuY2VcbiAgICogICAgICB3YXMgYW4gQURESVRJT04sIFVQREFURSBvciBSRU1PVkFMLlxuICAgKi9cbiAgcHVibGljIGNoYW5nZVRhZyhvbGRWYWx1ZTogYW55IHwgdW5kZWZpbmVkLCBuZXdWYWx1ZTogYW55IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAob2xkVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gVVBEQVRFO1xuICAgIH0gZWxzZSBpZiAob2xkVmFsdWUgIT09IHVuZGVmaW5lZCAvKiAmJiBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKi8pIHtcbiAgICAgIHJldHVybiBSRU1PVkFMO1xuICAgIH0gZWxzZSAvKiBpZiAob2xkVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkKSAqLyB7XG4gICAgICByZXR1cm4gQURESVRJT047XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgJ2F3czpjZGs6cGF0aCcgbWV0YWRhdGEgaW4gdGhlIGRpZmYgYW5kIGFkZCBpdCB0byB0aGUgbG9naWNhbFRvUGF0aE1hcFxuICAgKlxuICAgKiBUaGVyZSBhcmUgbXVsdGlwbGUgc291cmNlcyBvZiBsb2dpY2FsSUQgLT4gcGF0aCBtYXBwaW5nczogc3ludGggbWV0YWRhdGFcbiAgICogYW5kIHJlc291cmNlIG1ldGFkYXRhLCBhbmQgd2UgY29tYmluZSBhbGwgc291cmNlcyBpbnRvIGEgc2luZ2xlIG1hcC5cbiAgICovXG4gIHB1YmxpYyByZWFkQ29uc3RydWN0UGF0aHNGcm9tKHRlbXBsYXRlRGlmZjogVGVtcGxhdGVEaWZmKSB7XG4gICAgZm9yIChjb25zdCBbbG9naWNhbElkLCByZXNvdXJjZURpZmZdIG9mIE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlRGlmZi5yZXNvdXJjZXMpKSB7XG4gICAgICBpZiAoIXJlc291cmNlRGlmZikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkUGF0aE1ldGFkYXRhID0gcmVzb3VyY2VEaWZmLm9sZFZhbHVlPy5NZXRhZGF0YT8uW1BBVEhfTUVUQURBVEFfS0VZXTtcbiAgICAgIGlmIChvbGRQYXRoTWV0YWRhdGEgJiYgIShsb2dpY2FsSWQgaW4gdGhpcy5sb2dpY2FsVG9QYXRoTWFwKSkge1xuICAgICAgICB0aGlzLmxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXSA9IG9sZFBhdGhNZXRhZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3UGF0aE1ldGFkYXRhID0gcmVzb3VyY2VEaWZmLm5ld1ZhbHVlPy5NZXRhZGF0YT8uW1BBVEhfTUVUQURBVEFfS0VZXTtcbiAgICAgIGlmIChuZXdQYXRoTWV0YWRhdGEgJiYgIShsb2dpY2FsSWQgaW4gdGhpcy5sb2dpY2FsVG9QYXRoTWFwKSkge1xuICAgICAgICB0aGlzLmxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXSA9IG5ld1BhdGhNZXRhZGF0YTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0TG9naWNhbElkKGxvZ2ljYWxJZDogc3RyaW5nKSB7XG4gICAgLy8gaWYgd2UgaGF2ZSBhIHBhdGggaW4gdGhlIG1hcCwgcmV0dXJuIGl0XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRoaXMubm9ybWFsaXplZExvZ2ljYWxJZFBhdGgobG9naWNhbElkKTtcblxuICAgIGlmIChub3JtYWxpemVkKSB7XG4gICAgICByZXR1cm4gYCR7bm9ybWFsaXplZH0gJHtjaGFsay5ncmF5KGxvZ2ljYWxJZCl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9naWNhbElkO1xuICB9XG5cbiAgcHVibGljIG5vcm1hbGl6ZWRMb2dpY2FsSWRQYXRoKGxvZ2ljYWxJZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGEgcGF0aCBpbiB0aGUgbWFwLCByZXR1cm4gaXRcbiAgICBjb25zdCBwYXRoID0gdGhpcy5sb2dpY2FsVG9QYXRoTWFwW2xvZ2ljYWxJZF07XG4gICAgcmV0dXJuIHBhdGggPyBub3JtYWxpemVQYXRoKHBhdGgpIDogdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogUGF0aCBpcyBzdXBwb3NlZCB0byBzdGFydCB3aXRoIFwiL3N0YWNrLW5hbWVcIi4gSWYgdGhpcyBpcyB0aGUgY2FzZSAoaS5lLiBwYXRoIGhhcyBtb3JlIHRoYW5cbiAgICAgKiB0d28gY29tcG9uZW50cywgd2UgcmVtb3ZlIHRoZSBmaXJzdCBwYXJ0LiBPdGhlcndpc2UsIHdlIGp1c3QgdXNlIHRoZSBmdWxsIHBhdGguXG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplUGF0aChwOiBzdHJpbmcpIHtcbiAgICAgIGlmIChwLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICBwID0gcC5zbGljZSgxKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHBhcnRzID0gcC5zcGxpdCgnLycpO1xuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcGFydHMgPSBwYXJ0cy5zbGljZSgxKTtcblxuICAgICAgICAvLyByZW1vdmUgdGhlIGxhc3QgY29tcG9uZW50IGlmIGl0J3MgXCJSZXNvdXJjZVwiIG9yIFwiRGVmYXVsdFwiIChpZiB3ZSBoYXZlIG1vcmUgdGhhbiBhIHNpbmdsZSBjb21wb25lbnQpXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgY29uc3QgbGFzdCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgIGlmIChsYXN0ID09PSAnUmVzb3VyY2UnIHx8IGxhc3QgPT09ICdEZWZhdWx0Jykge1xuICAgICAgICAgICAgcGFydHMgPSBwYXJ0cy5zbGljZSgwLCBwYXJ0cy5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwID0gcGFydHMuam9pbignLycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdElhbUNoYW5nZXMoY2hhbmdlczogSWFtQ2hhbmdlcykge1xuICAgIGlmICghY2hhbmdlcy5oYXNDaGFuZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuc3RhdGVtZW50cy5oYXNDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignSUFNIFN0YXRlbWVudCBDaGFuZ2VzJyk7XG4gICAgICB0aGlzLnByaW50KGZvcm1hdFRhYmxlKHRoaXMuZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKGNoYW5nZXMuc3VtbWFyaXplU3RhdGVtZW50cygpKSwgdGhpcy5zdHJlYW0uY29sdW1ucykpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm1hbmFnZWRQb2xpY2llcy5oYXNDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignSUFNIFBvbGljeSBDaGFuZ2VzJyk7XG4gICAgICB0aGlzLnByaW50KGZvcm1hdFRhYmxlKHRoaXMuZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKGNoYW5nZXMuc3VtbWFyaXplTWFuYWdlZFBvbGljaWVzKCkpLCB0aGlzLnN0cmVhbS5jb2x1bW5zKSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuc3NvUGVybWlzc2lvblNldHMuaGFzQ2hhbmdlcyB8fCBjaGFuZ2VzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNDaGFuZ2VzIHx8IGNoYW5nZXMuc3NvQXNzaWdubWVudHMuaGFzQ2hhbmdlcykge1xuICAgICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIoJ0lBTSBJZGVudGl0eSBDZW50ZXIgQ2hhbmdlcycpO1xuICAgICAgaWYgKGNoYW5nZXMuc3NvUGVybWlzc2lvblNldHMuaGFzQ2hhbmdlcykge1xuICAgICAgICB0aGlzLnByaW50KGZvcm1hdFRhYmxlKHRoaXMuZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKGNoYW5nZXMuc3VtbWFyaXplU3NvUGVybWlzc2lvblNldHMoKSksIHRoaXMuc3RyZWFtLmNvbHVtbnMpKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMucHJpbnQoZm9ybWF0VGFibGUodGhpcy5kZWVwU3Vic3RpdHV0ZUJyYWNlZExvZ2ljYWxJZHMoY2hhbmdlcy5zdW1tYXJpemVTc29JbnN0YW5jZUFDQUNvbmZpZ3MoKSksIHRoaXMuc3RyZWFtLmNvbHVtbnMpKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VzLnNzb0Fzc2lnbm1lbnRzLmhhc0NoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5wcmludChmb3JtYXRUYWJsZSh0aGlzLmRlZXBTdWJzdGl0dXRlQnJhY2VkTG9naWNhbElkcyhjaGFuZ2VzLnN1bW1hcml6ZVNzb0Fzc2lnbm1lbnRzKCkpLCB0aGlzLnN0cmVhbS5jb2x1bW5zKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdFNlY3VyaXR5R3JvdXBDaGFuZ2VzKGNoYW5nZXM6IFNlY3VyaXR5R3JvdXBDaGFuZ2VzKSB7XG4gICAgaWYgKCFjaGFuZ2VzLmhhc0NoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignU2VjdXJpdHkgR3JvdXAgQ2hhbmdlcycpO1xuICAgIHRoaXMucHJpbnQoZm9ybWF0VGFibGUodGhpcy5kZWVwU3Vic3RpdHV0ZUJyYWNlZExvZ2ljYWxJZHMoY2hhbmdlcy5zdW1tYXJpemUoKSksIHRoaXMuc3RyZWFtLmNvbHVtbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWVwU3Vic3RpdHV0ZUJyYWNlZExvZ2ljYWxJZHMocm93czogc3RyaW5nW11bXSk6IHN0cmluZ1tdW10ge1xuICAgIHJldHVybiByb3dzLm1hcChyb3cgPT4gcm93Lm1hcCh0aGlzLnN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzLmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzdGl0dXRlIGFsbCBzdHJpbmdzIGxpa2UgJHtMb2dJZC54eHh9IHdpdGggdGhlIHBhdGggaW5zdGVhZCBvZiB0aGUgbG9naWNhbCBJRFxuICAgKi9cbiAgcHVibGljIHN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc291cmNlLnJlcGxhY2UoL1xcJFxceyhbXi59XSspKC5bXn1dKyk/XFx9L2lnLCAoX21hdGNoLCBsb2dJZCwgc3VmZml4KSA9PiB7XG4gICAgICByZXR1cm4gJyR7JyArICh0aGlzLm5vcm1hbGl6ZWRMb2dpY2FsSWRQYXRoKGxvZ0lkKSB8fCBsb2dJZCkgKyAoc3VmZml4IHx8ICcnKSArICd9JztcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcGF0Y2ggYXMgcmV0dXJuZWQgYnkgYGBkaWZmLnN0cnVjdHVyZWRQYXRjaGBgLlxuICovXG5pbnRlcmZhY2UgUGF0Y2gge1xuICAvKipcbiAgICogSHVua3MgaW4gdGhlIHBhdGNoLlxuICAgKi9cbiAgaHVua3M6IFJlYWRvbmx5QXJyYXk8UGF0Y2hIdW5rPjtcbn1cblxuLyoqXG4gKiBBIGh1bmsgaW4gYSBwYXRjaCBwcm9kdWNlZCBieSBgYGRpZmYuc3RydWN0dXJlZFBhdGNoYGAuXG4gKi9cbmludGVyZmFjZSBQYXRjaEh1bmsge1xuICBvbGRTdGFydDogbnVtYmVyO1xuICBvbGRMaW5lczogbnVtYmVyO1xuICBuZXdTdGFydDogbnVtYmVyO1xuICBuZXdMaW5lczogbnVtYmVyO1xuICBsaW5lczogc3RyaW5nW107XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHVuaWZpZWQgZGlmZiBvZiB0d28gc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0gb2xkU3RyICAtIHRoZSBcIm9sZFwiIHZlcnNpb24gb2YgdGhlIHN0cmluZy5cbiAqIEBwYXJhbSBuZXdTdHIgIC0gdGhlIFwibmV3XCIgdmVyc2lvbiBvZiB0aGUgc3RyaW5nLlxuICogQHBhcmFtIGNvbnRleHQgLSB0aGUgbnVtYmVyIG9mIGNvbnRleHQgbGluZXMgdG8gdXNlIGluIGFyYml0cmFyeSBKU09OIGRpZmYuXG4gKlxuICogQHJldHVybnMgYW4gYXJyYXkgb2YgZGlmZiBsaW5lcy5cbiAqL1xuZnVuY3Rpb24gX2RpZmZTdHJpbmdzKG9sZFN0cjogc3RyaW5nLCBuZXdTdHI6IHN0cmluZywgY29udGV4dDogbnVtYmVyKTogc3RyaW5nW10ge1xuICBjb25zdCBwYXRjaDogUGF0Y2ggPSBzdHJ1Y3R1cmVkUGF0Y2gobnVsbCwgbnVsbCwgb2xkU3RyLCBuZXdTdHIsIG51bGwsIG51bGwsIHsgY29udGV4dCB9KTtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBodW5rIG9mIHBhdGNoLmh1bmtzKSB7XG4gICAgcmVzdWx0LnB1c2goY2hhbGsubWFnZW50YShgQEAgLSR7aHVuay5vbGRTdGFydH0sJHtodW5rLm9sZExpbmVzfSArJHtodW5rLm5ld1N0YXJ0fSwke2h1bmsubmV3TGluZXN9IEBAYCkpO1xuICAgIGNvbnN0IGJhc2VJbmRlbnQgPSBfZmluZEluZGVudChodW5rLmxpbmVzKTtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgaHVuay5saW5lcykge1xuICAgICAgLy8gRG9uJ3QgY2FyZSBhYm91dCB0ZXJtaW5hdGlvbiBuZXdsaW5lLlxuICAgICAgaWYgKGxpbmUgPT09ICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbWFya2VyID0gbGluZS5jaGFyQXQoMCk7XG4gICAgICBjb25zdCB0ZXh0ID0gbGluZS5zbGljZSgxICsgYmFzZUluZGVudCk7XG4gICAgICBzd2l0Y2ggKG1hcmtlcikge1xuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICByZXN1bHQucHVzaChgJHtDT05URVhUfSAke3RleHR9YCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgIHJlc3VsdC5wdXNoKGNoYWxrLmJvbGQoYCR7QURESVRJT059ICR7Y2hhbGsuZ3JlZW4odGV4dCl9YCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICByZXN1bHQucHVzaChjaGFsay5ib2xkKGAke1JFTU9WQUx9ICR7Y2hhbGsucmVkKHRleHQpfWApKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGlmZiBtYXJrZXI6ICR7bWFya2VyfSAoZnVsbCBsaW5lOiAke2xpbmV9KWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xuXG4gIGZ1bmN0aW9uIF9maW5kSW5kZW50KGxpbmVzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgbGV0IGluZGVudCA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChsaW5lLmNoYXJBdChpKSAhPT0gJyAnKSB7XG4gICAgICAgICAgaW5kZW50ID0gaW5kZW50ID4gaSAtIDEgPyBpIC0gMSA6IGluZGVudDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5kZW50O1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IamChanges = void 0;\nconst service_spec_types_1 = require(\"@aws-cdk/service-spec-types\");\nconst chalk = require(\"chalk\");\nconst iam_identity_center_1 = require(\"./iam-identity-center\");\nconst managed_policy_1 = require(\"./managed-policy\");\nconst statement_1 = require(\"./statement\");\nconst diffable_1 = require(\"../diffable\");\nconst render_intrinsics_1 = require(\"../render-intrinsics\");\nconst util_1 = require(\"../util\");\n/**\n * Changes to IAM statements and IAM identity center\n */\nclass IamChanges {\n constructor(props) {\n // each entry in a DiffableCollection is used to generate a single row of the security changes table that is presented for cdk diff and cdk deploy.\n this.statements = new diffable_1.DiffableCollection();\n this.managedPolicies = new diffable_1.DiffableCollection();\n this.ssoPermissionSets = new diffable_1.DiffableCollection();\n this.ssoAssignments = new diffable_1.DiffableCollection();\n this.ssoInstanceACAConfigs = new diffable_1.DiffableCollection();\n for (const propertyChange of props.propertyChanges) {\n this.readPropertyChange(propertyChange);\n }\n for (const resourceChange of props.resourceChanges) {\n this.readResourceChange(resourceChange);\n }\n this.statements.calculateDiff();\n this.managedPolicies.calculateDiff();\n this.ssoPermissionSets.calculateDiff();\n this.ssoAssignments.calculateDiff();\n this.ssoInstanceACAConfigs.calculateDiff();\n }\n get hasChanges() {\n return (this.statements.hasChanges\n || this.managedPolicies.hasChanges\n || this.ssoPermissionSets.hasChanges\n || this.ssoAssignments.hasChanges\n || this.ssoInstanceACAConfigs.hasChanges);\n }\n /**\n * Return whether the changes include broadened permissions\n *\n * Permissions are broadened if positive statements are added or\n * negative statements are removed, or if managed policies are added.\n */\n get permissionsBroadened() {\n return this.statements.additions.some(s => !s.isNegativeStatement)\n || this.statements.removals.some(s => s.isNegativeStatement)\n || this.managedPolicies.hasAdditions\n || this.ssoPermissionSets.hasAdditions\n || this.ssoAssignments.hasAdditions\n || this.ssoInstanceACAConfigs.hasAdditions;\n }\n /**\n * Return a summary table of changes\n */\n summarizeStatements() {\n const ret = [];\n const header = ['', 'Resource', 'Effect', 'Action', 'Principal', 'Condition'];\n // First generate all lines, then sort on Resource so that similar resources are together\n for (const statement of this.statements.additions) {\n const renderedStatement = statement.render();\n ret.push([\n '+',\n renderedStatement.resource,\n renderedStatement.effect,\n renderedStatement.action,\n renderedStatement.principal,\n renderedStatement.condition,\n ].map(s => chalk.green(s)));\n }\n for (const statement of this.statements.removals) {\n const renderedStatement = statement.render();\n ret.push([\n '-',\n renderedStatement.resource,\n renderedStatement.effect,\n renderedStatement.action,\n renderedStatement.principal,\n renderedStatement.condition,\n ].map(s => chalk.red(s)));\n }\n // Sort by 2nd column\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeManagedPolicies() {\n const ret = [];\n const header = ['', 'Resource', 'Managed Policy ARN'];\n for (const att of this.managedPolicies.additions) {\n ret.push([\n '+',\n att.identityArn,\n att.managedPolicyArn,\n ].map(s => chalk.green(s)));\n }\n for (const att of this.managedPolicies.removals) {\n ret.push([\n '-',\n att.identityArn,\n att.managedPolicyArn,\n ].map(s => chalk.red(s)));\n }\n // Sort by 2nd column\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeSsoAssignments() {\n const ret = [];\n const header = ['', 'Resource', 'InstanceArn', 'PermissionSetArn', 'PrincipalId', 'PrincipalType', 'TargetId', 'TargetType'];\n for (const att of this.ssoAssignments.additions) {\n ret.push([\n '+',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.permissionSetArn || '',\n att.principalId || '',\n att.principalType || '',\n att.targetId || '',\n att.targetType || '',\n ].map(s => chalk.green(s)));\n }\n for (const att of this.ssoAssignments.removals) {\n ret.push([\n '-',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.permissionSetArn || '',\n att.principalId || '',\n att.principalType || '',\n att.targetId || '',\n att.targetType || '',\n ].map(s => chalk.red(s)));\n }\n // Sort by resource name to ensure a unique value is used for sorting\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeSsoInstanceACAConfigs() {\n const ret = [];\n const header = ['', 'Resource', 'InstanceArn', 'AccessControlAttributes'];\n function formatAccessControlAttribute(aca) {\n return `Key: ${aca?.Key}, Values: [${aca?.Value?.Source.join(', ')}]`;\n }\n for (const att of this.ssoInstanceACAConfigs.additions) {\n ret.push([\n '+',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.accessControlAttributes?.map(formatAccessControlAttribute).join('\\n') || '',\n ].map(s => chalk.green(s)));\n }\n for (const att of this.ssoInstanceACAConfigs.removals) {\n ret.push([\n '-',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.accessControlAttributes?.map(formatAccessControlAttribute).join('\\n') || '',\n ].map(s => chalk.red(s)));\n }\n // Sort by resource name to ensure a unique value is used for sorting\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeSsoPermissionSets() {\n const ret = [];\n const header = ['', 'Resource', 'InstanceArn', 'PermissionSet name', 'PermissionsBoundary', 'CustomerManagedPolicyReferences'];\n function formatManagedPolicyRef(s) {\n return `Name: ${s?.Name || ''}, Path: ${s?.Path || ''}`;\n }\n function formatSsoPermissionsBoundary(ssoPb) {\n // ManagedPolicyArn OR CustomerManagedPolicyReference can be specified -- but not both.\n if (ssoPb?.ManagedPolicyArn !== undefined) {\n return `ManagedPolicyArn: ${ssoPb?.ManagedPolicyArn || ''}`;\n }\n else if (ssoPb?.CustomerManagedPolicyReference !== undefined) {\n return `CustomerManagedPolicyReference: {\\n ${formatManagedPolicyRef(ssoPb?.CustomerManagedPolicyReference)}\\n}`;\n }\n else {\n return '';\n }\n }\n for (const att of this.ssoPermissionSets.additions) {\n ret.push([\n '+',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.name || '',\n formatSsoPermissionsBoundary(att.ssoPermissionsBoundary),\n att.ssoCustomerManagedPolicyReferences?.map(formatManagedPolicyRef).join('\\n') || '',\n ].map(s => chalk.green(s)));\n }\n for (const att of this.ssoPermissionSets.removals) {\n ret.push([\n '-',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.name || '',\n formatSsoPermissionsBoundary(att.ssoPermissionsBoundary),\n att.ssoCustomerManagedPolicyReferences?.map(formatManagedPolicyRef).join('\\n') || '',\n ].map(s => chalk.red(s)));\n }\n // Sort by resource name to ensure a unique value is used for sorting\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return (0, util_1.deepRemoveUndefined)({\n statementAdditions: (0, util_1.dropIfEmpty)(this.statements.additions.map(s => s._toJson())),\n statementRemovals: (0, util_1.dropIfEmpty)(this.statements.removals.map(s => s._toJson())),\n managedPolicyAdditions: (0, util_1.dropIfEmpty)(this.managedPolicies.additions.map(s => s._toJson())),\n managedPolicyRemovals: (0, util_1.dropIfEmpty)(this.managedPolicies.removals.map(s => s._toJson())),\n });\n }\n readPropertyChange(propertyChange) {\n switch (propertyChange.scrutinyType) {\n case service_spec_types_1.PropertyScrutinyType.InlineIdentityPolicies:\n // AWS::IAM::{ Role | User | Group }.Policies\n this.statements.addOld(...this.readIdentityPolicies(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.statements.addNew(...this.readIdentityPolicies(propertyChange.newValue, propertyChange.resourceLogicalId));\n break;\n case service_spec_types_1.PropertyScrutinyType.InlineResourcePolicy:\n // Any PolicyDocument on a resource (including AssumeRolePolicyDocument)\n // Special-case AWS::SSO::PermissionSet as a pseudo-principal in the IAM statement changes output.\n if (propertyChange.resourceType === 'AWS::SSO::PermissionSet') {\n this.statements.addOld(...this.readPermissionSetInlinePolicy(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.statements.addNew(...this.readPermissionSetInlinePolicy(propertyChange.newValue, propertyChange.resourceLogicalId));\n }\n else {\n // Existing behaviour for all other resources\n this.statements.addOld(...this.readResourceStatements(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.statements.addNew(...this.readResourceStatements(propertyChange.newValue, propertyChange.resourceLogicalId));\n }\n break;\n case service_spec_types_1.PropertyScrutinyType.ManagedPolicies:\n // Just a list of managed policies\n this.managedPolicies.addOld(...this.readManagedPolicies(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.managedPolicies.addNew(...this.readManagedPolicies(propertyChange.newValue, propertyChange.resourceLogicalId));\n break;\n }\n }\n readResourceChange(resourceChange) {\n switch (resourceChange.scrutinyType) {\n case service_spec_types_1.ResourceScrutinyType.IdentityPolicyResource:\n // AWS::IAM::Policy\n this.statements.addOld(...this.readIdentityPolicyResource(resourceChange.oldProperties));\n this.statements.addNew(...this.readIdentityPolicyResource(resourceChange.newProperties));\n break;\n case service_spec_types_1.ResourceScrutinyType.ResourcePolicyResource:\n // AWS::*::{Bucket,Queue,Topic}Policy\n this.statements.addOld(...this.readResourcePolicyResource(resourceChange.oldProperties));\n this.statements.addNew(...this.readResourcePolicyResource(resourceChange.newProperties));\n break;\n case service_spec_types_1.ResourceScrutinyType.LambdaPermission:\n this.statements.addOld(...this.readLambdaStatements(resourceChange.oldProperties));\n this.statements.addNew(...this.readLambdaStatements(resourceChange.newProperties));\n break;\n case service_spec_types_1.ResourceScrutinyType.SsoPermissionSet:\n this.ssoPermissionSets.addOld(...this.readSsoPermissionSet(resourceChange.oldProperties, resourceChange.resourceLogicalId));\n this.ssoPermissionSets.addNew(...this.readSsoPermissionSet(resourceChange.newProperties, resourceChange.resourceLogicalId));\n break;\n case service_spec_types_1.ResourceScrutinyType.SsoAssignmentResource:\n this.ssoAssignments.addOld(...this.readSsoAssignments(resourceChange.oldProperties, resourceChange.resourceLogicalId));\n this.ssoAssignments.addNew(...this.readSsoAssignments(resourceChange.newProperties, resourceChange.resourceLogicalId));\n break;\n case service_spec_types_1.ResourceScrutinyType.SsoInstanceACAConfigResource:\n this.ssoInstanceACAConfigs.addOld(...this.readSsoInstanceACAConfigs(resourceChange.oldProperties, resourceChange.resourceLogicalId));\n this.ssoInstanceACAConfigs.addNew(...this.readSsoInstanceACAConfigs(resourceChange.newProperties, resourceChange.resourceLogicalId));\n break;\n }\n }\n /**\n * Parse a list of policies on an identity\n */\n readIdentityPolicies(policies, logicalId) {\n if (policies === undefined || !Array.isArray(policies)) {\n return [];\n }\n const appliesToPrincipal = 'AWS:${' + logicalId + '}';\n return (0, util_1.flatMap)(policies, (policy) => {\n // check if the Policy itself is not an intrinsic, like an Fn::If\n const unparsedStatement = policy.PolicyDocument?.Statement\n ? policy.PolicyDocument.Statement\n : policy;\n return defaultPrincipal(appliesToPrincipal, (0, statement_1.parseStatements)((0, render_intrinsics_1.renderIntrinsics)(unparsedStatement)));\n });\n }\n /**\n * Parse an IAM::Policy resource\n */\n readIdentityPolicyResource(properties) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n const principals = (properties.Groups || []).concat(properties.Users || []).concat(properties.Roles || []);\n return (0, util_1.flatMap)(principals, (principal) => {\n const ref = 'AWS:' + principal;\n return defaultPrincipal(ref, (0, statement_1.parseStatements)(properties.PolicyDocument.Statement));\n });\n }\n readSsoInstanceACAConfigs(properties, logicalId) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n return [new iam_identity_center_1.SsoInstanceACAConfig({\n cfnLogicalId: '${' + logicalId + '}',\n ssoInstanceArn: properties.InstanceArn,\n accessControlAttributes: properties.AccessControlAttributes,\n })];\n }\n readSsoAssignments(properties, logicalId) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n return [new iam_identity_center_1.SsoAssignment({\n cfnLogicalId: '${' + logicalId + '}',\n ssoInstanceArn: properties.InstanceArn,\n permissionSetArn: properties.PermissionSetArn,\n principalId: properties.PrincipalId,\n principalType: properties.PrincipalType,\n targetId: properties.TargetId,\n targetType: properties.TargetType,\n })];\n }\n readSsoPermissionSet(properties, logicalId) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n return [new iam_identity_center_1.SsoPermissionSet({\n cfnLogicalId: '${' + logicalId + '}',\n name: properties.Name,\n ssoInstanceArn: properties.InstanceArn,\n ssoCustomerManagedPolicyReferences: properties.CustomerManagedPolicyReferences,\n ssoPermissionsBoundary: properties.PermissionsBoundary,\n })];\n }\n readPermissionSetInlinePolicy(policy, logicalId) {\n if (policy === undefined) {\n return [];\n }\n // For PermissionSet inline policies:\n // - Resource: still defaulted to the PermissionSet ARN when wildcarded\n // - Principal: a pseudo-principal that identifies the PermissionSet\n const appliesToResource = '${' + logicalId + '.Arn}';\n const appliesToPrincipal = 'AWS:${' + logicalId + '}';\n const statements = (0, statement_1.parseStatements)((0, render_intrinsics_1.renderIntrinsics)(policy.Statement));\n // Keeping the existing behaviour for Resource…\n defaultResource(appliesToResource, statements);\n // …and additionally injecting a pseudo-principal for readability\n defaultPrincipal(appliesToPrincipal, statements);\n return statements;\n }\n readResourceStatements(policy, logicalId) {\n if (policy === undefined) {\n return [];\n }\n const appliesToResource = '${' + logicalId + '.Arn}';\n return defaultResource(appliesToResource, (0, statement_1.parseStatements)((0, render_intrinsics_1.renderIntrinsics)(policy.Statement)));\n }\n /**\n * Parse an AWS::*::{Bucket,Topic,Queue}policy\n */\n readResourcePolicyResource(properties) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n const policyKeys = Object.keys(properties).filter(key => key.indexOf('Policy') > -1);\n // Find the key that identifies the resource(s) this policy applies to\n const resourceKeys = Object.keys(properties).filter(key => !policyKeys.includes(key) && !key.endsWith('Name'));\n let resources = resourceKeys.length === 1 ? properties[resourceKeys[0]] : ['???'];\n // For some resources, this is a singleton string, for some it's an array\n if (!Array.isArray(resources)) {\n resources = [resources];\n }\n return (0, util_1.flatMap)(resources, (resource) => {\n return defaultResource(resource, (0, statement_1.parseStatements)(properties[policyKeys[0]].Statement));\n });\n }\n readManagedPolicies(policyArns, logicalId) {\n if (!policyArns) {\n return [];\n }\n const rep = '${' + logicalId + '}';\n return managed_policy_1.ManagedPolicyAttachment.parseManagedPolicies(rep, (0, render_intrinsics_1.renderIntrinsics)(policyArns));\n }\n readLambdaStatements(properties) {\n if (!properties) {\n return [];\n }\n return [(0, statement_1.parseLambdaPermission)((0, render_intrinsics_1.renderIntrinsics)(properties))];\n }\n}\nexports.IamChanges = IamChanges;\nIamChanges.IamPropertyScrutinies = [\n service_spec_types_1.PropertyScrutinyType.InlineIdentityPolicies,\n service_spec_types_1.PropertyScrutinyType.InlineResourcePolicy,\n service_spec_types_1.PropertyScrutinyType.ManagedPolicies,\n];\nIamChanges.IamResourceScrutinies = [\n service_spec_types_1.ResourceScrutinyType.ResourcePolicyResource,\n service_spec_types_1.ResourceScrutinyType.IdentityPolicyResource,\n service_spec_types_1.ResourceScrutinyType.LambdaPermission,\n service_spec_types_1.ResourceScrutinyType.SsoAssignmentResource,\n service_spec_types_1.ResourceScrutinyType.SsoInstanceACAConfigResource,\n service_spec_types_1.ResourceScrutinyType.SsoPermissionSet,\n];\n/**\n * Set an undefined or wildcarded principal on these statements\n */\nfunction defaultPrincipal(principal, statements) {\n statements.forEach(s => s.principals.replaceEmpty(principal));\n statements.forEach(s => s.principals.replaceStar(principal));\n return statements;\n}\n/**\n * Set an undefined or wildcarded resource on these statements\n */\nfunction defaultResource(resource, statements) {\n statements.forEach(s => s.resources.replaceEmpty(resource));\n statements.forEach(s => s.resources.replaceStar(resource));\n return statements;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWNoYW5nZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvRUFBeUY7QUFDekYsK0JBQStCO0FBRS9CLCtEQUE4RjtBQUU5RixxREFBMkQ7QUFFM0QsMkNBQXFFO0FBR3JFLDBDQUFpRDtBQUNqRCw0REFBd0Q7QUFDeEQsa0NBQW9GO0FBT3BGOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBdUJyQixZQUFZLEtBQXNCO1FBUGxDLG1KQUFtSjtRQUNuSSxlQUFVLEdBQUcsSUFBSSw2QkFBa0IsRUFBYSxDQUFDO1FBQ2pELG9CQUFlLEdBQUcsSUFBSSw2QkFBa0IsRUFBMkIsQ0FBQztRQUNwRSxzQkFBaUIsR0FBRyxJQUFJLDZCQUFrQixFQUFvQixDQUFDO1FBQy9ELG1CQUFjLEdBQUcsSUFBSSw2QkFBa0IsRUFBaUIsQ0FBQztRQUN6RCwwQkFBcUIsR0FBRyxJQUFJLDZCQUFrQixFQUF3QixDQUFDO1FBR3JGLEtBQUssTUFBTSxjQUFjLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsS0FBSyxNQUFNLGNBQWMsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFF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Z0JBQWdCO0lBQ3JDLHlDQUFvQixDQUFDLHFCQUFxQjtJQUMxQyx5Q0FBb0IsQ0FBQyw0QkFBNEI7SUFDakQseUNBQW9CLENBQUMsZ0JBQWdCO0NBQ3RDLEFBUGtDLENBT2pDO0FBNGNKOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxTQUFpQixFQUFFLFVBQXVCO0lBQ2xFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLFFBQWdCLEVBQUUsVUFBdUI7SUFDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDM0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5U2NydXRpbnlUeXBlLCBSZXNvdXJjZVNjcnV0aW55VHlwZSB9IGZyb20gJ0Bhd3MtY2RrL3NlcnZpY2Utc3BlYy10eXBlcyc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IElTc29JbnN0YW5jZUFDQUNvbmZpZywgSVNzb1Blcm1pc3Npb25TZXQgfSBmcm9tICcuL2lhbS1pZGVudGl0eS1jZW50ZXInO1xuaW1wb3J0IHsgU3NvQXNzaWdubWVudCwgU3NvSW5zdGFuY2VBQ0FDb25maWcsIFNzb1Blcm1pc3Npb25TZXQgfSBmcm9tICcuL2lhbS1pZGVudGl0eS1jZW50ZXInO1xuaW1wb3J0IHR5cGUgeyBNYW5hZ2VkUG9saWN5SnNvbiB9IGZyb20gJy4vbWFuYWdlZC1wb2xpY3knO1xuaW1wb3J0IHsgTWFuYWdlZFBvbGljeUF0dGFjaG1lbnQgfSBmcm9tICcuL21hbmFnZWQtcG9saWN5JztcbmltcG9ydCB0eXBlIHsgU3RhdGVtZW50LCBTdGF0ZW1lbnRKc29uIH0gZnJvbSAnLi9zdGF0ZW1lbnQnO1xuaW1wb3J0IHsgcGFyc2VMYW1iZGFQZXJtaXNzaW9uLCBwYXJzZVN0YXRlbWVudHMgfSBmcm9tICcuL3N0YXRlbWVudCc7XG5pbXBvcnQgdHlwZSB7IE1heWJlUGFyc2VkIH0gZnJvbSAnLi4vZGlmZi9tYXliZS1wYXJzZWQnO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUNoYW5nZSwgUHJvcGVydHlNYXAsIFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBEaWZmYWJsZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9kaWZmYWJsZSc7XG5pbXBvcnQgeyByZW5kZXJJbnRyaW5zaWNzIH0gZnJvbSAnLi4vcmVuZGVyLWludHJpbnNpY3MnO1xuaW1wb3J0IHsgZGVlcFJlbW92ZVVuZGVmaW5lZCwgZHJvcElmRW1wdHksIGZsYXRNYXAsIG1ha2VDb21wYXJhdG9yIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWFtQ2hhbmdlc1Byb3BzIHtcbiAgcHJvcGVydHlDaGFuZ2VzOiBQcm9wZXJ0eUNoYW5nZVtdO1xuICByZXNvdXJjZUNoYW5nZXM6IFJlc291cmNlQ2hhbmdlW107XG59XG5cbi8qKlxuICogQ2hhbmdlcyB0byBJQU0gc3RhdGVtZW50cyBhbmQgSUFNIGlkZW50aXR5IGNlbnRlclxuICovXG5leHBvcnQgY2xhc3MgSWFtQ2hhbmdlcyB7XG4gIHB1YmxpYyBzdGF0aWMgSWFtUHJvcGVydHlTY3J1dGluaWVzID0gW1xuICAgIFByb3BlcnR5U2NydXRpbnlUeXBlLklubGluZUlkZW50aXR5UG9saWNpZXMsXG4gICAgUHJvcGVydHlTY3J1dGlueVR5cGUuSW5saW5lUmVzb3VyY2VQb2xpY3ksXG4gICAgUHJvcGVydHlTY3J1dGlueVR5cGUuTWFuYWdlZFBvbGljaWVzLFxuICBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgSWFtUmVzb3VyY2VTY3J1dGluaWVzID0gW1xuICAgIFJlc291cmNlU2NydXRpbnlUeXBlLlJlc291cmNlUG9saWN5UmVzb3VyY2UsXG4gICAgUmVzb3VyY2VTY3J1dGlueVR5cGUuSWRlbnRpdHlQb2xpY3lSZXNvdXJjZSxcbiAgICBSZXNvdXJjZVNjcnV0aW55VHlwZS5MYW1iZGFQZXJtaXNzaW9uLFxuICAgIFJlc291cmNlU2NydXRpbnlUeXBlLlNzb0Fzc2lnbm1lbnRSZXNvdXJjZSxcbiAgICBSZXNvdXJjZVNjcnV0aW55VHlwZS5Tc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlLFxuICAgIFJlc291cmNlU2NydXRpbnlUeXBlLlNzb1Blcm1pc3Npb25TZXQsXG4gIF07XG5cbiAgLy8gZWFjaCBlbnRyeSBpbiBhIERpZmZhYmxlQ29sbGVjdGlvbiBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgc2luZ2xlIHJvdyBvZiB0aGUgc2VjdXJpdHkgY2hhbmdlcyB0YWJsZSB0aGF0IGlzIHByZXNlbnRlZCBmb3IgY2RrIGRpZmYgYW5kIGNkayBkZXBsb3kuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZW1lbnRzID0gbmV3IERpZmZhYmxlQ29sbGVjdGlvbjxTdGF0ZW1lbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBtYW5hZ2VkUG9saWNpZXMgPSBuZXcgRGlmZmFibGVDb2xsZWN0aW9uPE1hbmFnZWRQb2xpY3lBdHRhY2htZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc3NvUGVybWlzc2lvblNldHMgPSBuZXcgRGlmZmFibGVDb2xsZWN0aW9uPFNzb1Blcm1pc3Npb25TZXQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzc29Bc3NpZ25tZW50cyA9IG5ldyBEaWZmYWJsZUNvbGxlY3Rpb248U3NvQXNzaWdubWVudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNzb0luc3RhbmNlQUNBQ29uZmlncyA9IG5ldyBEaWZmYWJsZUNvbGxlY3Rpb248U3NvSW5zdGFuY2VBQ0FDb25maWc+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IElhbUNoYW5nZXNQcm9wcykge1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlDaGFuZ2Ugb2YgcHJvcHMucHJvcGVydHlDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnJlYWRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eUNoYW5nZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVzb3VyY2VDaGFuZ2Ugb2YgcHJvcHMucmVzb3VyY2VDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnJlYWRSZXNvdXJjZUNoYW5nZShyZXNvdXJjZUNoYW5nZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZW1lbnRzLmNhbGN1bGF0ZURpZmYoKTtcbiAgICB0aGlzLm1hbmFnZWRQb2xpY2llcy5jYWxjdWxhdGVEaWZmKCk7XG4gICAgdGhpcy5zc29QZXJtaXNzaW9uU2V0cy5jYWxjdWxhdGVEaWZmKCk7XG4gICAgdGhpcy5zc29Bc3NpZ25tZW50cy5jYWxjdWxhdGVEaWZmKCk7XG4gICAgdGhpcy5zc29JbnN0YW5jZUFDQUNvbmZpZ3MuY2FsY3VsYXRlRGlmZigpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNDaGFuZ2VzKCkge1xuICAgIHJldHVybiAodGhpcy5zdGF0ZW1lbnRzLmhhc0NoYW5nZXNcbiAgICAgIHx8IHRoaXMubWFuYWdlZFBvbGljaWVzLmhhc0NoYW5nZXNcbiAgICAgIHx8IHRoaXMuc3NvUGVybWlzc2lvblNldHMuaGFzQ2hhbmdlc1xuICAgICAgfHwgdGhpcy5zc29Bc3NpZ25tZW50cy5oYXNDaGFuZ2VzXG4gICAgICB8fCB0aGlzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNDaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgY2hhbmdlcyBpbmNsdWRlIGJyb2FkZW5lZCBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBQZXJtaXNzaW9ucyBhcmUgYnJvYWRlbmVkIGlmIHBvc2l0aXZlIHN0YXRlbWVudHMgYXJlIGFkZGVkIG9yXG4gICAqIG5lZ2F0aXZlIHN0YXRlbWVudHMgYXJlIHJlbW92ZWQsIG9yIGlmIG1hbmFnZWQgcG9saWNpZXMgYXJlIGFkZGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBwZXJtaXNzaW9uc0Jyb2FkZW5lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnRzLmFkZGl0aW9ucy5zb21lKHMgPT4gIXMuaXNOZWdhdGl2ZVN0YXRlbWVudClcbiAgICAgICAgfHwgdGhpcy5zdGF0ZW1lbnRzLnJlbW92YWxzLnNvbWUocyA9PiBzLmlzTmVnYXRpdmVTdGF0ZW1lbnQpXG4gICAgICAgIHx8IHRoaXMubWFuYWdlZFBvbGljaWVzLmhhc0FkZGl0aW9uc1xuICAgICAgICB8fCB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLmhhc0FkZGl0aW9uc1xuICAgICAgICB8fCB0aGlzLnNzb0Fzc2lnbm1lbnRzLmhhc0FkZGl0aW9uc1xuICAgICAgICB8fCB0aGlzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNBZGRpdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgc3VtbWFyeSB0YWJsZSBvZiBjaGFuZ2VzXG4gICAqL1xuICBwdWJsaWMgc3VtbWFyaXplU3RhdGVtZW50cygpOiBzdHJpbmdbXVtdIHtcbiAgICBjb25zdCByZXQ6IHN0cmluZ1tdW10gPSBbXTtcblxuICAgIGNvbnN0IGhlYWRlciA9IFsnJywgJ1Jlc291cmNlJywgJ0VmZmVjdCcsICdBY3Rpb24nLCAnUHJpbmNpcGFsJywgJ0NvbmRpdGlvbiddO1xuXG4gICAgLy8gRmlyc3QgZ2VuZXJhdGUgYWxsIGxpbmVzLCB0aGVuIHNvcnQgb24gUmVzb3VyY2Ugc28gdGhhdCBzaW1pbGFyIHJlc291cmNlcyBhcmUgdG9nZXRoZXJcbiAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiB0aGlzLnN0YXRlbWVudHMuYWRkaXRpb25zKSB7XG4gICAgICBjb25zdCByZW5kZXJlZFN0YXRlbWVudCA9IHN0YXRlbWVudC5yZW5kZXIoKTtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJysnLFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5yZXNvdXJjZSxcbiAgICAgICAgcmVuZGVyZWRTdGF0ZW1lbnQuZWZmZWN0LFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5hY3Rpb24sXG4gICAgICAgIHJlbmRlcmVkU3RhdGVtZW50LnByaW5jaXBhbCxcbiAgICAgICAgcmVuZGVyZWRTdGF0ZW1lbnQuY29uZGl0aW9uLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiB0aGlzLnN0YXRlbWVudHMucmVtb3ZhbHMpIHtcbiAgICAgIGNvbnN0IHJlbmRlcmVkU3RhdGVtZW50ID0gc3RhdGVtZW50LnJlbmRlcigpO1xuICAgICAgcmV0LnB1c2goW1xuICAgICAgICAnLScsXG4gICAgICAgIHJlbmRlcmVkU3RhdGVtZW50LnJlc291cmNlLFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5lZmZlY3QsXG4gICAgICAgIHJlbmRlcmVkU3RhdGVtZW50LmFjdGlvbixcbiAgICAgICAgcmVuZGVyZWRTdGF0ZW1lbnQucHJpbmNpcGFsLFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5jb25kaXRpb24sXG4gICAgICBdLm1hcChzID0+IGNoYWxrLnJlZChzKSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgYnkgMm5kIGNvbHVtblxuICAgIHJldC5zb3J0KG1ha2VDb21wYXJhdG9yKChyb3c6IHN0cmluZ1tdKSA9PiBbcm93WzFdXSkpO1xuXG4gICAgcmV0LnNwbGljZSgwLCAwLCBoZWFkZXIpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBzdW1tYXJpemVNYW5hZ2VkUG9saWNpZXMoKTogc3RyaW5nW11bXSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXVtdID0gW107XG4gICAgY29uc3QgaGVhZGVyID0gWycnLCAnUmVzb3VyY2UnLCAnTWFuYWdlZCBQb2xpY3kgQVJOJ107XG5cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGRpdGlvbnMpIHtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJysnLFxuICAgICAgICBhdHQuaWRlbnRpdHlBcm4sXG4gICAgICAgIGF0dC5tYW5hZ2VkUG9saWN5QXJuLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLm1hbmFnZWRQb2xpY2llcy5yZW1vdmFscykge1xuICAgICAgcmV0LnB1c2goW1xuICAgICAgICAnLScsXG4gICAgICAgIGF0dC5pZGVudGl0eUFybixcbiAgICAgICAgYXR0Lm1hbmFnZWRQb2xpY3lBcm4sXG4gICAgICBdLm1hcChzID0+IGNoYWxrLnJlZChzKSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgYnkgMm5kIGNvbHVtblxuICAgIHJldC5zb3J0KG1ha2VDb21wYXJhdG9yKChyb3c6IHN0cmluZ1tdKSA9PiBbcm93WzFdXSkpO1xuXG4gICAgcmV0LnNwbGljZSgwLCAwLCBoZWFkZXIpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBzdW1tYXJpemVTc29Bc3NpZ25tZW50cygpOiBzdHJpbmdbXVtdIHtcbiAgICBjb25zdCByZXQ6IHN0cmluZ1tdW10gPSBbXTtcbiAgICBjb25zdCBoZWFkZXIgPSBbJycsICdSZXNvdXJjZScsICdJbnN0YW5jZUFybicsICdQZXJtaXNzaW9uU2V0QXJuJywgJ1ByaW5jaXBhbElkJywgJ1ByaW5jaXBhbFR5cGUnLCAnVGFyZ2V0SWQnLCAnVGFyZ2V0VHlwZSddO1xuXG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5zc29Bc3NpZ25tZW50cy5hZGRpdGlvbnMpIHtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJysnLFxuICAgICAgICBhdHQuY2ZuTG9naWNhbElkIHx8ICcnLFxuICAgICAgICBhdHQuc3NvSW5zdGFuY2VBcm4gfHwgJycsXG4gICAgICAgIGF0dC5wZXJtaXNzaW9uU2V0QXJuIHx8ICcnLFxuICAgICAgICBhdHQucHJpbmNpcGFsSWQgfHwgJycsXG4gICAgICAgIGF0dC5wcmluY2lwYWxUeXBlIHx8ICcnLFxuICAgICAgICBhdHQudGFyZ2V0SWQgfHwgJycsXG4gICAgICAgIGF0dC50YXJnZXRUeXBlIHx8ICcnLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLnNzb0Fzc2lnbm1lbnRzLnJlbW92YWxzKSB7XG4gICAgICByZXQucHVzaChbXG4gICAgICAgICctJyxcbiAgICAgICAgYXR0LmNmbkxvZ2ljYWxJZCB8fCAnJyxcbiAgICAgICAgYXR0LnNzb0luc3RhbmNlQXJuIHx8ICcnLFxuICAgICAgICBhdHQucGVybWlzc2lvblNldEFybiB8fCAnJyxcbiAgICAgICAgYXR0LnByaW5jaXBhbElkIHx8ICcnLFxuICAgICAgICBhdHQucHJpbmNpcGFsVHlwZSB8fCAnJyxcbiAgICAgICAgYXR0LnRhcmdldElkIHx8ICcnLFxuICAgICAgICBhdHQudGFyZ2V0VHlwZSB8fCAnJyxcbiAgICAgIF0ubWFwKHMgPT4gY2hhbGsucmVkKHMpKSk7XG4gICAgfVxuXG4gICAgLy8gU29ydCBieSByZXNvdXJjZSBuYW1lIHRvIGVuc3VyZSBhIHVuaXF1ZSB2YWx1ZSBpcyB1c2VkIGZvciBzb3J0aW5nXG4gICAgcmV0LnNvcnQobWFrZUNvbXBhcmF0b3IoKHJvdzogc3RyaW5nW10pID0+IFtyb3dbMV1dKSk7XG4gICAgcmV0LnNwbGljZSgwLCAwLCBoZWFkZXIpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBzdW1tYXJpemVTc29JbnN0YW5jZUFDQUNvbmZpZ3MoKTogc3RyaW5nW11bXSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXVtdID0gW107XG4gICAgY29uc3QgaGVhZGVyID0gWycnLCAnUmVzb3VyY2UnLCAnSW5zdGFuY2VBcm4nLCAnQWNjZXNzQ29udHJvbEF0dHJpYnV0ZXMnXTtcblxuICAgIGZ1bmN0aW9uIGZvcm1hdEFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGUoYWNhOiBJU3NvSW5zdGFuY2VBQ0FDb25maWcuQWNjZXNzQ29udHJvbEF0dHJpYnV0ZSk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gYEtleTogJHthY2E/LktleX0sIFZhbHVlczogWyR7YWNhPy5WYWx1ZT8uU291cmNlLmpvaW4oJywgJyl9XWA7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5zc29JbnN0YW5jZUFDQUNvbmZpZ3MuYWRkaXRpb25zKSB7XG4gICAgICByZXQucHVzaChbXG4gICAgICAgICcrJyxcbiAgICAgICAgYXR0LmNmbkxvZ2ljYWxJZCB8fCAnJyxcbiAgICAgICAgYXR0LnNzb0luc3RhbmNlQXJuIHx8ICcnLFxuICAgICAgICBhdHQuYWNjZXNzQ29udHJvbEF0dHJpYnV0ZXM/Lm1hcChmb3JtYXRBY2Nlc3NDb250cm9sQXR0cmlidXRlKS5qb2luKCdcXG4nKSB8fCAnJyxcbiAgICAgIF0ubWFwKHMgPT4gY2hhbGsuZ3JlZW4ocykpKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5zc29JbnN0YW5jZUFDQUNvbmZpZ3MucmVtb3ZhbHMpIHtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJy0nLFxuICAgICAgICBhdHQuY2ZuTG9naWNhbElkIHx8ICcnLFxuICAgICAgICBhdHQuc3NvSW5zdGFuY2VBcm4gfHwgJycsXG4gICAgICAgIGF0dC5hY2Nlc3NDb250cm9sQXR0cmlidXRlcz8ubWFwKGZvcm1hdEFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGUpLmpvaW4oJ1xcbicpIHx8ICcnLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5yZWQocykpKTtcbiAgICB9XG5cbiAgICAvLyBTb3J0IGJ5IHJlc291cmNlIG5hbWUgdG8gZW5zdXJlIGEgdW5pcXVlIHZhbHVlIGlzIHVzZWQgZm9yIHNvcnRpbmdcbiAgICByZXQuc29ydChtYWtlQ29tcGFyYXRvcigocm93OiBzdHJpbmdbXSkgPT4gW3Jvd1sxXV0pKTtcbiAgICByZXQuc3BsaWNlKDAsIDAsIGhlYWRlcik7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIHN1bW1hcml6ZVNzb1Blcm1pc3Npb25TZXRzKCk6IHN0cmluZ1tdW10ge1xuICAgIGNvbnN0IHJldDogc3RyaW5nW11bXSA9IFtdO1xuICAgIGNvbnN0IGhlYWRlciA9IFsnJywgJ1Jlc291cmNlJywgJ0luc3RhbmNlQXJuJywgJ1Blcm1pc3Npb25TZXQgbmFtZScsICdQZXJtaXNzaW9uc0JvdW5kYXJ5JywgJ0N1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZXMnXTtcblxuICAgIGZ1bmN0aW9uIGZvcm1hdE1hbmFnZWRQb2xpY3lSZWYoczogSVNzb1Blcm1pc3Npb25TZXQuQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgTmFtZTogJHtzPy5OYW1lIHx8ICcnfSwgUGF0aDogJHtzPy5QYXRoIHx8ICcnfWA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZm9ybWF0U3NvUGVybWlzc2lvbnNCb3VuZGFyeShzc29QYjogSVNzb1Blcm1pc3Npb25TZXQuUGVybWlzc2lvbnNCb3VuZGFyeSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAvLyBNYW5hZ2VkUG9saWN5QXJuIE9SIEN1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZSBjYW4gYmUgc3BlY2lmaWVkIC0tIGJ1dCBub3QgYm90aC5cbiAgICAgIGlmIChzc29QYj8uTWFuYWdlZFBvbGljeUFybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBgTWFuYWdlZFBvbGljeUFybjogJHtzc29QYj8uTWFuYWdlZFBvbGljeUFybiB8fCAnJ31gO1xuICAgICAgfSBlbHNlIGlmIChzc29QYj8uQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGBDdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2U6IHtcXG4gICR7Zm9ybWF0TWFuYWdlZFBvbGljeVJlZihzc29QYj8uQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlKX1cXG59YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLmFkZGl0aW9ucykge1xuICAgICAgcmV0LnB1c2goW1xuICAgICAgICAnKycsXG4gICAgICAgIGF0dC5jZm5Mb2dpY2FsSWQgfHwgJycsXG4gICAgICAgIGF0dC5zc29JbnN0YW5jZUFybiB8fCAnJyxcbiAgICAgICAgYXR0Lm5hbWUgfHwgJycsXG4gICAgICAgIGZvcm1hdFNzb1Blcm1pc3Npb25zQm91bmRhcnkoYXR0LnNzb1Blcm1pc3Npb25zQm91bmRhcnkpLFxuICAgICAgICBhdHQuc3NvQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlcz8ubWFwKGZvcm1hdE1hbmFnZWRQb2xpY3lSZWYpLmpvaW4oJ1xcbicpIHx8ICcnLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLnJlbW92YWxzKSB7XG4gICAgICByZXQucHVzaChbXG4gICAgICAgICctJyxcbiAgICAgICAgYXR0LmNmbkxvZ2ljYWxJZCB8fCAnJyxcbiAgICAgICAgYXR0LnNzb0luc3RhbmNlQXJuIHx8ICcnLFxuICAgICAgICBhdHQubmFtZSB8fCAnJyxcbiAgICAgICAgZm9ybWF0U3NvUGVybWlzc2lvbnNCb3VuZGFyeShhdHQuc3NvUGVybWlzc2lvbnNCb3VuZGFyeSksXG4gICAgICAgIGF0dC5zc29DdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2VzPy5tYXAoZm9ybWF0TWFuYWdlZFBvbGljeVJlZikuam9pbignXFxuJykgfHwgJycsXG4gICAgICBdLm1hcChzID0+IGNoYWxrLnJlZChzKSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgYnkgcmVzb3VyY2UgbmFtZSB0byBlbnN1cmUgYSB1bmlxdWUgdmFsdWUgaXMgdXNlZCBmb3Igc29ydGluZ1xuICAgIHJldC5zb3J0KG1ha2VDb21wYXJhdG9yKChyb3c6IHN0cmluZ1tdKSA9PiBbcm93WzFdXSkpO1xuICAgIHJldC5zcGxpY2UoMCwgMCwgaGVhZGVyKTtcblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBJYW1DaGFuZ2VzSnNvbiB7XG4gICAgcmV0dXJuIGRlZXBSZW1vdmVVbmRlZmluZWQoe1xuICAgICAgc3RhdGVtZW50QWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLnN0YXRlbWVudHMuYWRkaXRpb25zLm1hcChzID0+IHMuX3RvSnNvbigpKSksXG4gICAgICBzdGF0ZW1lbnRSZW1vdmFsczogZHJvcElmRW1wdHkodGhpcy5zdGF0ZW1lbnRzLnJlbW92YWxzLm1hcChzID0+IHMuX3RvSnNvbigpKSksXG4gICAgICBtYW5hZ2VkUG9saWN5QWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGRpdGlvbnMubWFwKHMgPT4gcy5fdG9Kc29uKCkpKSxcbiAgICAgIG1hbmFnZWRQb2xpY3lSZW1vdmFsczogZHJvcElmRW1wdHkodGhpcy5tYW5hZ2VkUG9saWNpZXMucmVtb3ZhbHMubWFwKHMgPT4gcy5fdG9Kc29uKCkpKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5Q2hhbmdlOiBQcm9wZXJ0eUNoYW5nZSkge1xuICAgIHN3aXRjaCAocHJvcGVydHlDaGFuZ2Uuc2NydXRpbnlUeXBlKSB7XG4gICAgICBjYXNlIFByb3BlcnR5U2NydXRpbnlUeXBlLklubGluZUlkZW50aXR5UG9saWNpZXM6XG4gICAgICAgIC8vIEFXUzo6SUFNOjp7IFJvbGUgfCBVc2VyIHwgR3JvdXAgfS5Qb2xpY2llc1xuICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkT2xkKC4uLnRoaXMucmVhZElkZW50aXR5UG9saWNpZXMocHJvcGVydHlDaGFuZ2Uub2xkVmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGROZXcoLi4udGhpcy5yZWFkSWRlbnRpdHlQb2xpY2llcyhwcm9wZXJ0eUNoYW5nZS5uZXdWYWx1ZSwgcHJvcGVydHlDaGFuZ2UucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByb3BlcnR5U2NydXRpbnlUeXBlLklubGluZVJlc291cmNlUG9saWN5OlxuICAgICAgICAvLyBBbnkgUG9saWN5RG9jdW1lbnQgb24gYSByZXNvdXJjZSAoaW5jbHVkaW5nIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudClcbiAgICAgICAgLy8gU3BlY2lhbC1jYXNlIEFXUzo6U1NPOjpQZXJtaXNzaW9uU2V0IGFzIGEgcHNldWRvLXByaW5jaXBhbCBpbiB0aGUgSUFNIHN0YXRlbWVudCBjaGFuZ2VzIG91dHB1dC5cbiAgICAgICAgaWYgKHByb3BlcnR5Q2hhbmdlLnJlc291cmNlVHlwZSA9PT0gJ0FXUzo6U1NPOjpQZXJtaXNzaW9uU2V0Jykge1xuICAgICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGRPbGQoLi4udGhpcy5yZWFkUGVybWlzc2lvblNldElubGluZVBvbGljeShwcm9wZXJ0eUNoYW5nZS5vbGRWYWx1ZSwgcHJvcGVydHlDaGFuZ2UucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkTmV3KC4uLnRoaXMucmVhZFBlcm1pc3Npb25TZXRJbmxpbmVQb2xpY3kocHJvcGVydHlDaGFuZ2UubmV3VmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXhpc3RpbmcgYmVoYXZpb3VyIGZvciBhbGwgb3RoZXIgcmVzb3VyY2VzXG4gICAgICAgICAgdGhpcy5zdGF0ZW1lbnRzLmFkZE9sZCguLi50aGlzLnJlYWRSZXNvdXJjZVN0YXRlbWVudHMocHJvcGVydHlDaGFuZ2Uub2xkVmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgICAgdGhpcy5zdGF0ZW1lbnRzLmFkZE5ldyguLi50aGlzLnJlYWRSZXNvdXJjZVN0YXRlbWVudHMocHJvcGVydHlDaGFuZ2UubmV3VmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByb3BlcnR5U2NydXRpbnlUeXBlLk1hbmFnZWRQb2xpY2llczpcbiAgICAgICAgLy8gSnVzdCBhIGxpc3Qgb2YgbWFuYWdlZCBwb2xpY2llc1xuICAgICAgICB0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGRPbGQoLi4udGhpcy5yZWFkTWFuYWdlZFBvbGljaWVzKHByb3BlcnR5Q2hhbmdlLm9sZFZhbHVlLCBwcm9wZXJ0eUNoYW5nZS5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgICAgICB0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGROZXcoLi4udGhpcy5yZWFkTWFuYWdlZFBvbGljaWVzKHByb3BlcnR5Q2hhbmdlLm5ld1ZhbHVlLCBwcm9wZXJ0eUNoYW5nZS5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRSZXNvdXJjZUNoYW5nZShyZXNvdXJjZUNoYW5nZTogUmVzb3VyY2VDaGFuZ2UpIHtcbiAgICBzd2l0Y2ggKHJlc291cmNlQ2hhbmdlLnNjcnV0aW55VHlwZSkge1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5JZGVudGl0eVBvbGljeVJlc291cmNlOlxuICAgICAgICAvLyBBV1M6OklBTTo6UG9saWN5XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGRPbGQoLi4udGhpcy5yZWFkSWRlbnRpdHlQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzKSk7XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGROZXcoLi4udGhpcy5yZWFkSWRlbnRpdHlQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5SZXNvdXJjZVBvbGljeVJlc291cmNlOlxuICAgICAgICAvLyBBV1M6Oio6OntCdWNrZXQsUXVldWUsVG9waWN9UG9saWN5XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGRPbGQoLi4udGhpcy5yZWFkUmVzb3VyY2VQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzKSk7XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGROZXcoLi4udGhpcy5yZWFkUmVzb3VyY2VQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5MYW1iZGFQZXJtaXNzaW9uOlxuICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkT2xkKC4uLnRoaXMucmVhZExhbWJkYVN0YXRlbWVudHMocmVzb3VyY2VDaGFuZ2Uub2xkUHJvcGVydGllcykpO1xuICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkTmV3KC4uLnRoaXMucmVhZExhbWJkYVN0YXRlbWVudHMocmVzb3VyY2VDaGFuZ2UubmV3UHJvcGVydGllcykpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUmVzb3VyY2VTY3J1dGlueVR5cGUuU3NvUGVybWlzc2lvblNldDpcbiAgICAgICAgdGhpcy5zc29QZXJtaXNzaW9uU2V0cy5hZGRPbGQoLi4udGhpcy5yZWFkU3NvUGVybWlzc2lvblNldChyZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzLCByZXNvdXJjZUNoYW5nZS5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgICAgICB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLmFkZE5ldyguLi50aGlzLnJlYWRTc29QZXJtaXNzaW9uU2V0KHJlc291cmNlQ2hhbmdlLm5ld1Byb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5Tc29Bc3NpZ25tZW50UmVzb3VyY2U6XG4gICAgICAgIHRoaXMuc3NvQXNzaWdubWVudHMuYWRkT2xkKC4uLnRoaXMucmVhZFNzb0Fzc2lnbm1lbnRzKHJlc291cmNlQ2hhbmdlLm9sZFByb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIHRoaXMuc3NvQXNzaWdubWVudHMuYWRkTmV3KC4uLnRoaXMucmVhZFNzb0Fzc2lnbm1lbnRzKHJlc291cmNlQ2hhbmdlLm5ld1Byb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5Tc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlOlxuICAgICAgICB0aGlzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5hZGRPbGQoLi4udGhpcy5yZWFkU3NvSW5zdGFuY2VBQ0FDb25maWdzKHJlc291cmNlQ2hhbmdlLm9sZFByb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIHRoaXMuc3NvSW5zdGFuY2VBQ0FDb25maWdzLmFkZE5ldyguLi50aGlzLnJlYWRTc29JbnN0YW5jZUFDQUNvbmZpZ3MocmVzb3VyY2VDaGFuZ2UubmV3UHJvcGVydGllcywgcmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGEgbGlzdCBvZiBwb2xpY2llcyBvbiBhbiBpZGVudGl0eVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkSWRlbnRpdHlQb2xpY2llcyhwb2xpY2llczogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAocG9saWNpZXMgPT09IHVuZGVmaW5lZCB8fCAhQXJyYXkuaXNBcnJheShwb2xpY2llcykpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHBsaWVzVG9QcmluY2lwYWwgPSAnQVdTOiR7JyArIGxvZ2ljYWxJZCArICd9JztcblxuICAgIHJldHVybiBmbGF0TWFwKHBvbGljaWVzLCAocG9saWN5OiBhbnkpID0+IHtcbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBQb2xpY3kgaXRzZWxmIGlzIG5vdCBhbiBpbnRyaW5zaWMsIGxpa2UgYW4gRm46OklmXG4gICAgICBjb25zdCB1bnBhcnNlZFN0YXRlbWVudCA9IHBvbGljeS5Qb2xpY3lEb2N1bWVudD8uU3RhdGVtZW50XG4gICAgICAgID8gcG9saWN5LlBvbGljeURvY3VtZW50LlN0YXRlbWVudFxuICAgICAgICA6IHBvbGljeTtcbiAgICAgIHJldHVybiBkZWZhdWx0UHJpbmNpcGFsKGFwcGxpZXNUb1ByaW5jaXBhbCwgcGFyc2VTdGF0ZW1lbnRzKHJlbmRlckludHJpbnNpY3ModW5wYXJzZWRTdGF0ZW1lbnQpKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYW4gSUFNOjpQb2xpY3kgcmVzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgcmVhZElkZW50aXR5UG9saWN5UmVzb3VyY2UocHJvcGVydGllczogYW55KTogU3RhdGVtZW50W10ge1xuICAgIGlmIChwcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzID0gcmVuZGVySW50cmluc2ljcyhwcm9wZXJ0aWVzKTtcblxuICAgIGNvbnN0IHByaW5jaXBhbHMgPSAocHJvcGVydGllcy5Hcm91cHMgfHwgW10pLmNvbmNhdChwcm9wZXJ0aWVzLlVzZXJzIHx8IFtdKS5jb25jYXQocHJvcGVydGllcy5Sb2xlcyB8fCBbXSk7XG4gICAgcmV0dXJuIGZsYXRNYXAocHJpbmNpcGFscywgKHByaW5jaXBhbDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCByZWYgPSAnQVdTOicgKyBwcmluY2lwYWw7XG4gICAgICByZXR1cm4gZGVmYXVsdFByaW5jaXBhbChyZWYsIHBhcnNlU3RhdGVtZW50cyhwcm9wZXJ0aWVzLlBvbGljeURvY3VtZW50LlN0YXRlbWVudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkU3NvSW5zdGFuY2VBQ0FDb25maWdzKHByb3BlcnRpZXM6IGFueSwgbG9naWNhbElkOiBzdHJpbmcpOiBTc29JbnN0YW5jZUFDQUNvbmZpZ1tdIHtcbiAgICBpZiAocHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcHJvcGVydGllcyA9IHJlbmRlckludHJpbnNpY3MocHJvcGVydGllcyk7XG5cbiAgICByZXR1cm4gW25ldyBTc29JbnN0YW5jZUFDQUNvbmZpZyh7XG4gICAgICBjZm5Mb2dpY2FsSWQ6ICckeycgKyBsb2dpY2FsSWQgKyAnfScsXG4gICAgICBzc29JbnN0YW5jZUFybjogcHJvcGVydGllcy5JbnN0YW5jZUFybixcbiAgICAgIGFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVzOiBwcm9wZXJ0aWVzLkFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVzLFxuICAgIH0pXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFNzb0Fzc2lnbm1lbnRzKHByb3BlcnRpZXM6IGFueSwgbG9naWNhbElkOiBzdHJpbmcpOiBTc29Bc3NpZ25tZW50W10ge1xuICAgIGlmIChwcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzID0gcmVuZGVySW50cmluc2ljcyhwcm9wZXJ0aWVzKTtcblxuICAgIHJldHVybiBbbmV3IFNzb0Fzc2lnbm1lbnQoe1xuICAgICAgY2ZuTG9naWNhbElkOiAnJHsnICsgbG9naWNhbElkICsgJ30nLFxuICAgICAgc3NvSW5zdGFuY2VBcm46IHByb3BlcnRpZXMuSW5zdGFuY2VBcm4sXG4gICAgICBwZXJtaXNzaW9uU2V0QXJuOiBwcm9wZXJ0aWVzLlBlcm1pc3Npb25TZXRBcm4sXG4gICAgICBwcmluY2lwYWxJZDogcHJvcGVydGllcy5QcmluY2lwYWxJZCxcbiAgICAgIHByaW5jaXBhbFR5cGU6IHByb3BlcnRpZXMuUHJpbmNpcGFsVHlwZSxcbiAgICAgIHRhcmdldElkOiBwcm9wZXJ0aWVzLlRhcmdldElkLFxuICAgICAgdGFyZ2V0VHlwZTogcHJvcGVydGllcy5UYXJnZXRUeXBlLFxuICAgIH0pXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFNzb1Blcm1pc3Npb25TZXQocHJvcGVydGllczogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFNzb1Blcm1pc3Npb25TZXRbXSB7XG4gICAgaWYgKHByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHByb3BlcnRpZXMgPSByZW5kZXJJbnRyaW5zaWNzKHByb3BlcnRpZXMpO1xuXG4gICAgcmV0dXJuIFtuZXcgU3NvUGVybWlzc2lvblNldCh7XG4gICAgICBjZm5Mb2dpY2FsSWQ6ICckeycgKyBsb2dpY2FsSWQgKyAnfScsXG4gICAgICBuYW1lOiBwcm9wZXJ0aWVzLk5hbWUsXG4gICAgICBzc29JbnN0YW5jZUFybjogcHJvcGVydGllcy5JbnN0YW5jZUFybixcbiAgICAgIHNzb0N1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZXM6IHByb3BlcnRpZXMuQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlcyxcbiAgICAgIHNzb1Blcm1pc3Npb25zQm91bmRhcnk6IHByb3BlcnRpZXMuUGVybWlzc2lvbnNCb3VuZGFyeSxcbiAgICB9KV07XG4gIH1cblxuICBwcml2YXRlIHJlYWRQZXJtaXNzaW9uU2V0SW5saW5lUG9saWN5KHBvbGljeTogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAocG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvLyBGb3IgUGVybWlzc2lvblNldCBpbmxpbmUgcG9saWNpZXM6XG4gICAgLy8gLSBSZXNvdXJjZTogc3RpbGwgZGVmYXVsdGVkIHRvIHRoZSBQZXJtaXNzaW9uU2V0IEFSTiB3aGVuIHdpbGRjYXJkZWRcbiAgICAvLyAtIFByaW5jaXBhbDogYSBwc2V1ZG8tcHJpbmNpcGFsIHRoYXQgaWRlbnRpZmllcyB0aGUgUGVybWlzc2lvblNldFxuICAgIGNvbnN0IGFwcGxpZXNUb1Jlc291cmNlID0gJyR7JyArIGxvZ2ljYWxJZCArICcuQXJufSc7XG4gICAgY29uc3QgYXBwbGllc1RvUHJpbmNpcGFsID0gJ0FXUzokeycgKyBsb2dpY2FsSWQgKyAnfSc7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRzID0gcGFyc2VTdGF0ZW1lbnRzKHJlbmRlckludHJpbnNpY3MocG9saWN5LlN0YXRlbWVudCkpO1xuXG4gICAgLy8gS2VlcGluZyB0aGUgZXhpc3RpbmcgYmVoYXZpb3VyIGZvciBSZXNvdXJjZeKAplxuICAgIGRlZmF1bHRSZXNvdXJjZShhcHBsaWVzVG9SZXNvdXJjZSwgc3RhdGVtZW50cyk7XG4gICAgLy8g4oCmYW5kIGFkZGl0aW9uYWxseSBpbmplY3RpbmcgYSBwc2V1ZG8tcHJpbmNpcGFsIGZvciByZWFkYWJpbGl0eVxuICAgIGRlZmF1bHRQcmluY2lwYWwoYXBwbGllc1RvUHJpbmNpcGFsLCBzdGF0ZW1lbnRzKTtcblxuICAgIHJldHVybiBzdGF0ZW1lbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkUmVzb3VyY2VTdGF0ZW1lbnRzKHBvbGljeTogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAocG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHBsaWVzVG9SZXNvdXJjZSA9ICckeycgKyBsb2dpY2FsSWQgKyAnLkFybn0nO1xuICAgIHJldHVybiBkZWZhdWx0UmVzb3VyY2UoYXBwbGllc1RvUmVzb3VyY2UsIHBhcnNlU3RhdGVtZW50cyhyZW5kZXJJbnRyaW5zaWNzKHBvbGljeS5TdGF0ZW1lbnQpKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYW4gQVdTOjoqOjp7QnVja2V0LFRvcGljLFF1ZXVlfXBvbGljeVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkUmVzb3VyY2VQb2xpY3lSZXNvdXJjZShwcm9wZXJ0aWVzOiBhbnkpOiBTdGF0ZW1lbnRbXSB7XG4gICAgaWYgKHByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHByb3BlcnRpZXMgPSByZW5kZXJJbnRyaW5zaWNzKHByb3BlcnRpZXMpO1xuXG4gICAgY29uc3QgcG9saWN5S2V5cyA9IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmZpbHRlcihrZXkgPT4ga2V5LmluZGV4T2YoJ1BvbGljeScpID4gLTEpO1xuXG4gICAgLy8gRmluZCB0aGUga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgcmVzb3VyY2UocykgdGhpcyBwb2xpY3kgYXBwbGllcyB0b1xuICAgIGNvbnN0IHJlc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmZpbHRlcihrZXkgPT4gIXBvbGljeUtleXMuaW5jbHVkZXMoa2V5KSAmJiAha2V5LmVuZHNXaXRoKCdOYW1lJykpO1xuICAgIGxldCByZXNvdXJjZXMgPSByZXNvdXJjZUtleXMubGVuZ3RoID09PSAxID8gcHJvcGVydGllc1tyZXNvdXJjZUtleXNbMF1dIDogWyc/Pz8nXTtcblxuICAgIC8vIEZvciBzb21lIHJlc291cmNlcywgdGhpcyBpcyBhIHNpbmdsZXRvbiBzdHJpbmcsIGZvciBzb21lIGl0J3MgYW4gYXJyYXlcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzb3VyY2VzKSkge1xuICAgICAgcmVzb3VyY2VzID0gW3Jlc291cmNlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGZsYXRNYXAocmVzb3VyY2VzLCAocmVzb3VyY2U6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGRlZmF1bHRSZXNvdXJjZShyZXNvdXJjZSwgcGFyc2VTdGF0ZW1lbnRzKHByb3BlcnRpZXNbcG9saWN5S2V5c1swXV0uU3RhdGVtZW50KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRNYW5hZ2VkUG9saWNpZXMocG9saWN5QXJuczogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50W10ge1xuICAgIGlmICghcG9saWN5QXJucykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcCA9ICckeycgKyBsb2dpY2FsSWQgKyAnfSc7XG4gICAgcmV0dXJuIE1hbmFnZWRQb2xpY3lBdHRhY2htZW50LnBhcnNlTWFuYWdlZFBvbGljaWVzKHJlcCwgcmVuZGVySW50cmluc2ljcyhwb2xpY3lBcm5zKSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRMYW1iZGFTdGF0ZW1lbnRzKHByb3BlcnRpZXM/OiBQcm9wZXJ0eU1hcCk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAoIXByb3BlcnRpZXMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3BhcnNlTGFtYmRhUGVybWlzc2lvbihyZW5kZXJJbnRyaW5zaWNzKHByb3BlcnRpZXMpKV07XG4gIH1cbn1cblxuLyoqXG4gKiBTZXQgYW4gdW5kZWZpbmVkIG9yIHdpbGRjYXJkZWQgcHJpbmNpcGFsIG9uIHRoZXNlIHN0YXRlbWVudHNcbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFByaW5jaXBhbChwcmluY2lwYWw6IHN0cmluZywgc3RhdGVtZW50czogU3RhdGVtZW50W10pIHtcbiAgc3RhdGVtZW50cy5mb3JFYWNoKHMgPT4gcy5wcmluY2lwYWxzLnJlcGxhY2VFbXB0eShwcmluY2lwYWwpKTtcbiAgc3RhdGVtZW50cy5mb3JFYWNoKHMgPT4gcy5wcmluY2lwYWxzLnJlcGxhY2VTdGFyKHByaW5jaXBhbCkpO1xuICByZXR1cm4gc3RhdGVtZW50cztcbn1cblxuLyoqXG4gKiBTZXQgYW4gdW5kZWZpbmVkIG9yIHdpbGRjYXJkZWQgcmVzb3VyY2Ugb24gdGhlc2Ugc3RhdGVtZW50c1xuICovXG5mdW5jdGlvbiBkZWZhdWx0UmVzb3VyY2UocmVzb3VyY2U6IHN0cmluZywgc3RhdGVtZW50czogU3RhdGVtZW50W10pIHtcbiAgc3RhdGVtZW50cy5mb3JFYWNoKHMgPT4gcy5yZXNvdXJjZXMucmVwbGFjZUVtcHR5KHJlc291cmNlKSk7XG4gIHN0YXRlbWVudHMuZm9yRWFjaChzID0+IHMucmVzb3VyY2VzLnJlcGxhY2VTdGFyKHJlc291cmNlKSk7XG4gIHJldHVybiBzdGF0ZW1lbnRzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElhbUNoYW5nZXNKc29uIHtcbiAgc3RhdGVtZW50QWRkaXRpb25zPzogQXJyYXk8TWF5YmVQYXJzZWQ8U3RhdGVtZW50SnNvbj4+O1xuICBzdGF0ZW1lbnRSZW1vdmFscz86IEFycmF5PE1heWJlUGFyc2VkPFN0YXRlbWVudEpzb24+PjtcbiAgbWFuYWdlZFBvbGljeUFkZGl0aW9ucz86IEFycmF5PE1heWJlUGFyc2VkPE1hbmFnZWRQb2xpY3lKc29uPj47XG4gIG1hbmFnZWRQb2xpY3lSZW1vdmFscz86IEFycmF5PE1heWJlUGFyc2VkPE1hbmFnZWRQb2xpY3lKc29uPj47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SsoInstanceACAConfig = exports.SsoAssignment = exports.SsoPermissionSet = void 0;\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst deepEqual = require('fast-deep-equal');\nclass SsoPermissionSet {\n constructor(props) {\n this.cfnLogicalId = props.cfnLogicalId;\n this.name = props.name;\n this.ssoInstanceArn = props.ssoInstanceArn;\n this.ssoPermissionsBoundary = props.ssoPermissionsBoundary;\n this.ssoCustomerManagedPolicyReferences = props.ssoCustomerManagedPolicyReferences;\n }\n equal(other) {\n return deepEqual(this, other);\n }\n}\nexports.SsoPermissionSet = SsoPermissionSet;\nclass SsoAssignment {\n constructor(props) {\n this.cfnLogicalId = props.cfnLogicalId;\n this.ssoInstanceArn = props.ssoInstanceArn;\n this.permissionSetArn = props.permissionSetArn;\n this.principalId = props.principalId;\n this.principalType = props.principalType;\n this.targetId = props.targetId;\n this.targetType = props.targetType;\n }\n equal(other) {\n return deepEqual(this, other);\n }\n}\nexports.SsoAssignment = SsoAssignment;\nclass SsoInstanceACAConfig {\n constructor(props) {\n this.cfnLogicalId = props.cfnLogicalId;\n this.ssoInstanceArn = props.ssoInstanceArn;\n this.accessControlAttributes = props.accessControlAttributes;\n }\n equal(other) {\n return deepEqual(this, other);\n }\n}\nexports.SsoInstanceACAConfig = SsoInstanceACAConfig;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWlkZW50aXR5LWNlbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlhbS1pZGVudGl0eS1jZW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQXdCN0MsTUFBYSxnQkFBZ0I7SUFPM0IsWUFBWSxLQUE4QjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxLQUFLLENBQUMsa0NBQWtDLENBQUM7SUFDckYsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUF1QjtRQUNsQyxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBbEJELDRDQWtCQztBQWNELE1BQWEsYUFBYTtJQVN4QixZQUFZLEtBQTJCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFvQjtRQUMvQixPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBdEJELHNDQXNCQztBQXNCRCxNQUFhLG9CQUFvQjtJQUsvQixZQUFZLEtBQWtDO1FBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUMvRCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQTJCO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFkRCxvREFjQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBkZWVwRXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKTtcblxuLyoqXG4gKiBUaGlzIG5hbWVzcGFjZSBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIEwxIENmblBlcm1pc3Npb25TZXQsIG90aGVyIHRoYW5cbiAqIGNhcGl0YWxpemF0aW9uLCBzaW5jZSB0aGUgdmFsdWVzIGNvbWUgZnJvbSBmcm9tIGEgcGFyc2VkIENGTiB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBJU3NvUGVybWlzc2lvblNldCB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgUHJvcHMge1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBzc29JbnN0YW5jZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IHNzb1Blcm1pc3Npb25zQm91bmRhcnk6IElTc29QZXJtaXNzaW9uU2V0LlBlcm1pc3Npb25zQm91bmRhcnkgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgc3NvQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlczogSVNzb1Blcm1pc3Npb25TZXQuQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlW10gfCB1bmRlZmluZWQ7XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uc0JvdW5kYXJ5IHtcbiAgICByZWFkb25seSBDdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2U/OiBDdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2U7XG4gICAgcmVhZG9ubHkgTWFuYWdlZFBvbGljeUFybj86IHN0cmluZztcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZSB7XG4gICAgcmVhZG9ubHkgTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3NvUGVybWlzc2lvblNldCBpbXBsZW1lbnRzIElTc29QZXJtaXNzaW9uU2V0LlByb3BzIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IGNmbkxvZ2ljYWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgc3NvSW5zdGFuY2VBcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHNzb1Blcm1pc3Npb25zQm91bmRhcnk6IElTc29QZXJtaXNzaW9uU2V0LlBlcm1pc3Npb25zQm91bmRhcnkgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBzc29DdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2VzOiBJU3NvUGVybWlzc2lvblNldC5DdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2VbXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogSVNzb1Blcm1pc3Npb25TZXQuUHJvcHMpIHtcbiAgICB0aGlzLmNmbkxvZ2ljYWxJZCA9IHByb3BzLmNmbkxvZ2ljYWxJZDtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMuc3NvSW5zdGFuY2VBcm4gPSBwcm9wcy5zc29JbnN0YW5jZUFybjtcbiAgICB0aGlzLnNzb1Blcm1pc3Npb25zQm91bmRhcnkgPSBwcm9wcy5zc29QZXJtaXNzaW9uc0JvdW5kYXJ5O1xuICAgIHRoaXMuc3NvQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlcyA9IHByb3BzLnNzb0N1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZXM7XG4gIH1cblxuICBwdWJsaWMgZXF1YWwob3RoZXI6IFNzb1Blcm1pc3Npb25TZXQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGVlcEVxdWFsKHRoaXMsIG90aGVyKTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIElTc29Bc3NpZ25tZW50IHtcbiAgZXhwb3J0IGludGVyZmFjZSBQcm9wcyB7XG4gICAgcmVhZG9ubHkgc3NvSW5zdGFuY2VBcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBwZXJtaXNzaW9uU2V0QXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgcHJpbmNpcGFsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBwcmluY2lwYWxUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgdGFyZ2V0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSB0YXJnZXRUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNzb0Fzc2lnbm1lbnQgaW1wbGVtZW50cyBJU3NvQXNzaWdubWVudC5Qcm9wcyB7XG4gIHB1YmxpYyByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHNzb0luc3RhbmNlQXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBwZXJtaXNzaW9uU2V0QXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBwcmluY2lwYWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbmNpcGFsVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogSVNzb0Fzc2lnbm1lbnQuUHJvcHMpIHtcbiAgICB0aGlzLmNmbkxvZ2ljYWxJZCA9IHByb3BzLmNmbkxvZ2ljYWxJZDtcbiAgICB0aGlzLnNzb0luc3RhbmNlQXJuID0gcHJvcHMuc3NvSW5zdGFuY2VBcm47XG4gICAgdGhpcy5wZXJtaXNzaW9uU2V0QXJuID0gcHJvcHMucGVybWlzc2lvblNldEFybjtcbiAgICB0aGlzLnByaW5jaXBhbElkID0gcHJvcHMucHJpbmNpcGFsSWQ7XG4gICAgdGhpcy5wcmluY2lwYWxUeXBlID0gcHJvcHMucHJpbmNpcGFsVHlwZTtcbiAgICB0aGlzLnRhcmdldElkID0gcHJvcHMudGFyZ2V0SWQ7XG4gICAgdGhpcy50YXJnZXRUeXBlID0gcHJvcHMudGFyZ2V0VHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBlcXVhbChvdGhlcjogU3NvQXNzaWdubWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkZWVwRXF1YWwodGhpcywgb3RoZXIpO1xuICB9XG59XG5cbi8qKlxuICogQVdTOjpTU086Okluc3RhbmNlQWNjZXNzQ29udHJvbEF0dHJpYnV0ZUNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3NvSW5zdGFuY2VBQ0FDb25maWdQcm9wcyB7XG4gIHNzb0luc3RhbmNlQXJuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgSVNzb0luc3RhbmNlQUNBQ29uZmlnIHtcbiAgZXhwb3J0IHR5cGUgQWNjZXNzQ29udHJvbEF0dHJpYnV0ZSA9IHtcbiAgICBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBWYWx1ZTogeyBTb3VyY2U6IHN0cmluZ1tdIH0gfCB1bmRlZmluZWQ7XG4gIH0gfCB1bmRlZmluZWQ7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQcm9wcyB7XG4gICAgcmVhZG9ubHkgc3NvSW5zdGFuY2VBcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBhY2Nlc3NDb250cm9sQXR0cmlidXRlcz86IEFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3NvSW5zdGFuY2VBQ0FDb25maWcgaW1wbGVtZW50cyBJU3NvSW5zdGFuY2VBQ0FDb25maWcuUHJvcHMge1xuICBwdWJsaWMgcmVhZG9ubHkgY2ZuTG9naWNhbElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBzc29JbnN0YW5jZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXNzQ29udHJvbEF0dHJpYnV0ZXM/OiBJU3NvSW5zdGFuY2VBQ0FDb25maWcuQWNjZXNzQ29udHJvbEF0dHJpYnV0ZVtdIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBJU3NvSW5zdGFuY2VBQ0FDb25maWcuUHJvcHMpIHtcbiAgICB0aGlzLmNmbkxvZ2ljYWxJZCA9IHByb3BzLmNmbkxvZ2ljYWxJZDtcbiAgICB0aGlzLnNzb0luc3RhbmNlQXJuID0gcHJvcHMuc3NvSW5zdGFuY2VBcm47XG4gICAgdGhpcy5hY2Nlc3NDb250cm9sQXR0cmlidXRlcyA9IHByb3BzLmFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVzO1xuICB9XG5cbiAgcHVibGljIGVxdWFsKG90aGVyOiBTc29JbnN0YW5jZUFDQUNvbmZpZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkZWVwRXF1YWwodGhpcywgb3RoZXIpO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ManagedPolicyAttachment = void 0;\nconst maybe_parsed_1 = require(\"../diff/maybe-parsed\");\nclass ManagedPolicyAttachment {\n static parseManagedPolicies(identityArn, arns) {\n return typeof arns === 'string'\n ? [new ManagedPolicyAttachment(identityArn, arns)]\n : arns.map((arn) => new ManagedPolicyAttachment(identityArn, arn));\n }\n constructor(identityArn, managedPolicyArn) {\n this.identityArn = identityArn;\n this.managedPolicyArn = managedPolicyArn;\n }\n equal(other) {\n return this.identityArn === other.identityArn\n && this.managedPolicyArn === other.managedPolicyArn;\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return (0, maybe_parsed_1.mkParsed)({\n identityArn: this.identityArn,\n managedPolicyArn: this.managedPolicyArn,\n });\n }\n}\nexports.ManagedPolicyAttachment = ManagedPolicyAttachment;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1wb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5hZ2VkLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBZ0Q7QUFFaEQsTUFBYSx1QkFBdUI7SUFDM0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsSUFBdUI7UUFDN0UsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRO1lBQzdCLENBQUMsQ0FBQyxDQUFDLElBQUksdUJBQXVCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxZQUE0QixXQUFtQixFQUFrQixnQkFBd0I7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBa0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0lBQ3pGLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBOEI7UUFDekMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxXQUFXO2VBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksT0FBTztRQUNaLE9BQU8sSUFBQSx1QkFBUSxFQUFDO1lBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0JELDBEQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVQYXJzZWQgfSBmcm9tICcuLi9kaWZmL21heWJlLXBhcnNlZCc7XG5pbXBvcnQgeyBta1BhcnNlZCB9IGZyb20gJy4uL2RpZmYvbWF5YmUtcGFyc2VkJztcblxuZXhwb3J0IGNsYXNzIE1hbmFnZWRQb2xpY3lBdHRhY2htZW50IHtcbiAgcHVibGljIHN0YXRpYyBwYXJzZU1hbmFnZWRQb2xpY2llcyhpZGVudGl0eUFybjogc3RyaW5nLCBhcm5zOiBzdHJpbmcgfCBzdHJpbmdbXSk6IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50W10ge1xuICAgIHJldHVybiB0eXBlb2YgYXJucyA9PT0gJ3N0cmluZydcbiAgICAgID8gW25ldyBNYW5hZ2VkUG9saWN5QXR0YWNobWVudChpZGVudGl0eUFybiwgYXJucyldXG4gICAgICA6IGFybnMubWFwKChhcm46IHN0cmluZykgPT4gbmV3IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50KGlkZW50aXR5QXJuLCBhcm4pKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBpZGVudGl0eUFybjogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgbWFuYWdlZFBvbGljeUFybjogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgZXF1YWwob3RoZXI6IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlBcm4gPT09IG90aGVyLmlkZW50aXR5QXJuXG4gICAgICAgICYmIHRoaXMubWFuYWdlZFBvbGljeUFybiA9PT0gb3RoZXIubWFuYWdlZFBvbGljeUFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtYWNoaW5lLXJlYWRhYmxlIHZlcnNpb24gb2YgdGhlIGNoYW5nZXMuXG4gICAqIFRoaXMgaXMgb25seSB1c2VkIGluIHRlc3RzLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdG9Kc29uKCk6IE1heWJlUGFyc2VkPE1hbmFnZWRQb2xpY3lKc29uPiB7XG4gICAgcmV0dXJuIG1rUGFyc2VkKHtcbiAgICAgIGlkZW50aXR5QXJuOiB0aGlzLmlkZW50aXR5QXJuLFxuICAgICAgbWFuYWdlZFBvbGljeUFybjogdGhpcy5tYW5hZ2VkUG9saWN5QXJuLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlZFBvbGljeUpzb24ge1xuICBpZGVudGl0eUFybjogc3RyaW5nO1xuICBtYW5hZ2VkUG9saWN5QXJuOiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Effect = exports.Targets = exports.Statement = void 0;\nexports.parseStatements = parseStatements;\nexports.parseLambdaPermission = parseLambdaPermission;\nexports.renderCondition = renderCondition;\nconst maybe_parsed_1 = require(\"../diff/maybe-parsed\");\nconst util_1 = require(\"../util\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst deepEqual = require('fast-deep-equal');\nclass Statement {\n constructor(statement) {\n if (typeof statement === 'string') {\n this.sid = undefined;\n this.effect = Effect.Unknown;\n this.resources = new Targets({}, '', '');\n this.actions = new Targets({}, '', '');\n this.principals = new Targets({}, '', '');\n this.condition = undefined;\n this.serializedIntrinsic = statement;\n }\n else {\n this.sid = expectString(statement.Sid);\n this.effect = expectEffect(statement.Effect);\n this.resources = new Targets(statement, 'Resource', 'NotResource');\n this.actions = new Targets(statement, 'Action', 'NotAction');\n this.principals = new Targets(statement, 'Principal', 'NotPrincipal');\n this.condition = statement.Condition;\n this.serializedIntrinsic = undefined;\n }\n }\n /**\n * Whether this statement is equal to the other statement\n */\n equal(other) {\n return (this.sid === other.sid\n && this.effect === other.effect\n && this.serializedIntrinsic === other.serializedIntrinsic\n && this.resources.equal(other.resources)\n && this.actions.equal(other.actions)\n && this.principals.equal(other.principals)\n && deepEqual(this.condition, other.condition));\n }\n render() {\n return this.serializedIntrinsic\n ? {\n resource: this.serializedIntrinsic,\n effect: '',\n action: '',\n principal: this.principals.render(), // these will be replaced by the call to replaceEmpty() from IamChanges\n condition: '',\n }\n : {\n resource: this.resources.render(),\n effect: this.effect,\n action: this.actions.render(),\n principal: this.principals.render(),\n condition: renderCondition(this.condition),\n };\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return this.serializedIntrinsic\n ? (0, maybe_parsed_1.mkUnparseable)(this.serializedIntrinsic)\n : (0, maybe_parsed_1.mkParsed)((0, util_1.deepRemoveUndefined)({\n sid: this.sid,\n effect: this.effect,\n resources: this.resources._toJson(),\n principals: this.principals._toJson(),\n actions: this.actions._toJson(),\n condition: this.condition,\n }));\n }\n /**\n * Whether this is a negative statement\n *\n * A statement is negative if any of its targets are negative, inverted\n * if the Effect is Deny.\n */\n get isNegativeStatement() {\n const notTarget = this.actions.not || this.principals.not || this.resources.not;\n return this.effect === Effect.Allow ? notTarget : !notTarget;\n }\n}\nexports.Statement = Statement;\n/**\n * Parse a list of statements from undefined, a Statement, or a list of statements\n */\nfunction parseStatements(x) {\n if (x === undefined) {\n x = [];\n }\n if (!Array.isArray(x)) {\n x = [x];\n }\n return x.map((s) => new Statement(s));\n}\n/**\n * Parse a Statement from a Lambda::Permission object\n *\n * This is actually what Lambda adds to the policy document if you call AddPermission.\n */\nfunction parseLambdaPermission(x) {\n // Construct a statement from\n const statement = {\n Effect: 'Allow',\n Action: x.Action,\n Resource: x.FunctionName,\n };\n if (x.Principal !== undefined) {\n if (x.Principal === '*') {\n // *\n statement.Principal = '*';\n }\n else if (/^\\d{12}$/.test(x.Principal)) {\n // Account number\n // eslint-disable-next-line @cdklabs/no-literal-partition\n statement.Principal = { AWS: `arn:aws:iam::${x.Principal}:root` };\n }\n else {\n // Assume it's a service principal\n // We might get this wrong vs. the previous one for tokens. Nothing to be done\n // about that. It's only for human readable consumption after all.\n statement.Principal = { Service: x.Principal };\n }\n }\n if (x.SourceArn !== undefined) {\n if (statement.Condition === undefined) {\n statement.Condition = {};\n }\n statement.Condition.ArnLike = { 'AWS:SourceArn': x.SourceArn };\n }\n if (x.SourceAccount !== undefined) {\n if (statement.Condition === undefined) {\n statement.Condition = {};\n }\n statement.Condition.StringEquals = { 'AWS:SourceAccount': x.SourceAccount };\n }\n if (x.EventSourceToken !== undefined) {\n if (statement.Condition === undefined) {\n statement.Condition = {};\n }\n statement.Condition.StringEquals = { 'lambda:EventSourceToken': x.EventSourceToken };\n }\n return new Statement(statement);\n}\n/**\n * Targets for a field\n */\nclass Targets {\n constructor(statement, positiveKey, negativeKey) {\n if (negativeKey in statement) {\n this.values = forceListOfStrings(statement[negativeKey]);\n this.not = true;\n }\n else {\n this.values = forceListOfStrings(statement[positiveKey]);\n this.not = false;\n }\n this.values.sort();\n }\n get empty() {\n return this.values.length === 0;\n }\n /**\n * Whether this set of targets is equal to the other set of targets\n */\n equal(other) {\n return this.not === other.not && deepEqual(this.values.sort(), other.values.sort());\n }\n /**\n * If the current value set is empty, put this in it\n */\n replaceEmpty(replacement) {\n if (this.empty) {\n this.values.push(replacement);\n }\n }\n /**\n * If the actions contains a '*', replace with this string.\n */\n replaceStar(replacement) {\n for (let i = 0; i < this.values.length; i++) {\n if (this.values[i] === '*') {\n this.values[i] = replacement;\n }\n }\n this.values.sort();\n }\n /**\n * Render into a summary table cell\n */\n render() {\n return this.not\n ? this.values.map(s => `NOT ${s}`).join('\\n')\n : this.values.join('\\n');\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return { not: this.not, values: this.values };\n }\n}\nexports.Targets = Targets;\nvar Effect;\n(function (Effect) {\n Effect[\"Unknown\"] = \"Unknown\";\n Effect[\"Allow\"] = \"Allow\";\n Effect[\"Deny\"] = \"Deny\";\n})(Effect || (exports.Effect = Effect = {}));\nfunction expectString(x) {\n return typeof x === 'string' ? x : undefined;\n}\nfunction expectEffect(x) {\n if (x === Effect.Allow || x === Effect.Deny) {\n return x;\n }\n return Effect.Unknown;\n}\nfunction forceListOfStrings(x) {\n if (typeof x === 'string') {\n return [x];\n }\n if (typeof x === 'undefined' || x === null) {\n return [];\n }\n if (Array.isArray(x)) {\n return x.map(e => forceListOfStrings(e).join(','));\n }\n if (typeof x === 'object' && x !== null) {\n const ret = [];\n for (const [key, value] of Object.entries(x)) {\n ret.push(...forceListOfStrings(value).map(s => `${key}:${s}`));\n }\n return ret;\n }\n return [`${x}`];\n}\n/**\n * Render the Condition column\n */\nfunction renderCondition(condition) {\n if (!condition || Object.keys(condition).length === 0) {\n return '';\n }\n const jsonRepresentation = JSON.stringify(condition, undefined, 2);\n // The JSON representation looks like this:\n //\n // {\n // \"ArnLike\": {\n // \"AWS:SourceArn\": \"${MyTopic86869434}\"\n // }\n // }\n //\n // We can make it more compact without losing information by getting rid of the outermost braces\n // and the indentation.\n const lines = jsonRepresentation.split('\\n');\n return lines.slice(1, lines.length - 1).map(s => s.slice(2)).join('\\n');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhdGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9KQSwwQ0FRQztBQU9ELHNEQTJDQztBQTRIRCwwQ0FrQkM7QUEzVkQsdURBQStEO0FBQy9ELGtDQUE4QztBQUU5Qyx5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdDLE1BQWEsU0FBUztJQWlDcEIsWUFBWSxTQUE4QjtRQUN4QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVB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RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRSwyQ0FBMkM7SUFDM0MsRUFBRTtJQUNGLEtBQUs7SUFDTCxrQkFBa0I7SUFDbEIsNkNBQTZDO0lBQzdDLE9BQU87SUFDUCxLQUFLO0lBQ0wsRUFBRTtJQUNGLGdHQUFnRztJQUNoRyx1QkFBdUI7SUFDdkIsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1heWJlUGFyc2VkIH0gZnJvbSAnLi4vZGlmZi9tYXliZS1wYXJzZWQnO1xuaW1wb3J0IHsgbWtQYXJzZWQsIG1rVW5wYXJzZWFibGUgfSBmcm9tICcuLi9kaWZmL21heWJlLXBhcnNlZCc7XG5pbXBvcnQgeyBkZWVwUmVtb3ZlVW5kZWZpbmVkIH0gZnJvbSAnLi4vdXRpbCc7XG5cbi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBkZWVwRXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKTtcblxuZXhwb3J0IGNsYXNzIFN0YXRlbWVudCB7XG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgSURcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU3RhdGVtZW50IGVmZmVjdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVmZmVjdDogRWZmZWN0O1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IFRhcmdldHM7XG5cbiAgLyoqXG4gICAqIFByaW5jaXBhbHNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmluY2lwYWxzOiBUYXJnZXRzO1xuXG4gIC8qKlxuICAgKiBBY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uczogVGFyZ2V0cztcblxuICAvKipcbiAgICogT2JqZWN0IHdpdGggY29uZGl0aW9uc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmRpdGlvbj86IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcmlhbGl6ZWRJbnRyaW5zaWM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAgfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuc2lkID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lZmZlY3QgPSBFZmZlY3QuVW5rbm93bjtcbiAgICAgIHRoaXMucmVzb3VyY2VzID0gbmV3IFRhcmdldHMoe30sICcnLCAnJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyh7fSwgJycsICcnKTtcbiAgICAgIHRoaXMucHJpbmNpcGFscyA9IG5ldyBUYXJnZXRzKHt9LCAnJywgJycpO1xuICAgICAgdGhpcy5jb25kaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSBzdGF0ZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2lkID0gZXhwZWN0U3RyaW5nKHN0YXRlbWVudC5TaWQpO1xuICAgICAgdGhpcy5lZmZlY3QgPSBleHBlY3RFZmZlY3Qoc3RhdGVtZW50LkVmZmVjdCk7XG4gICAgICB0aGlzLnJlc291cmNlcyA9IG5ldyBUYXJnZXRzKHN0YXRlbWVudCwgJ1Jlc291cmNlJywgJ05vdFJlc291cmNlJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdBY3Rpb24nLCAnTm90QWN0aW9uJyk7XG4gICAgICB0aGlzLnByaW5jaXBhbHMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdQcmluY2lwYWwnLCAnTm90UHJpbmNpcGFsJyk7XG4gICAgICB0aGlzLmNvbmRpdGlvbiA9IHN0YXRlbWVudC5Db25kaXRpb247XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdGF0ZW1lbnQgaXMgZXF1YWwgdG8gdGhlIG90aGVyIHN0YXRlbWVudFxuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBTdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuc2lkID09PSBvdGhlci5zaWRcbiAgICAgICYmIHRoaXMuZWZmZWN0ID09PSBvdGhlci5lZmZlY3RcbiAgICAgICYmIHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyA9PT0gb3RoZXIuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgJiYgdGhpcy5yZXNvdXJjZXMuZXF1YWwob3RoZXIucmVzb3VyY2VzKVxuICAgICAgJiYgdGhpcy5hY3Rpb25zLmVxdWFsKG90aGVyLmFjdGlvbnMpXG4gICAgICAmJiB0aGlzLnByaW5jaXBhbHMuZXF1YWwob3RoZXIucHJpbmNpcGFscylcbiAgICAgICYmIGRlZXBFcXVhbCh0aGlzLmNvbmRpdGlvbiwgb3RoZXIuY29uZGl0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFJlbmRlcmVkU3RhdGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVkSW50cmluc2ljXG4gICAgICA/IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyxcbiAgICAgICAgZWZmZWN0OiAnJyxcbiAgICAgICAgYWN0aW9uOiAnJyxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksIC8vIHRoZXNlIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGNhbGwgdG8gcmVwbGFjZUVtcHR5KCkgZnJvbSBJYW1DaGFuZ2VzXG4gICAgICAgIGNvbmRpdGlvbjogJycsXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMucmVzb3VyY2VzLnJlbmRlcigpLFxuICAgICAgICBlZmZlY3Q6IHRoaXMuZWZmZWN0LFxuICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9ucy5yZW5kZXIoKSxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksXG4gICAgICAgIGNvbmRpdGlvbjogcmVuZGVyQ29uZGl0aW9uKHRoaXMuY29uZGl0aW9uKSxcbiAgICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBNYXliZVBhcnNlZDxTdGF0ZW1lbnRKc29uPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgPyBta1VucGFyc2VhYmxlKHRoaXMuc2VyaWFsaXplZEludHJpbnNpYylcbiAgICAgIDogbWtQYXJzZWQoZGVlcFJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICAgIHNpZDogdGhpcy5zaWQsXG4gICAgICAgIGVmZmVjdDogdGhpcy5lZmZlY3QsXG4gICAgICAgIHJlc291cmNlczogdGhpcy5yZXNvdXJjZXMuX3RvSnNvbigpLFxuICAgICAgICBwcmluY2lwYWxzOiB0aGlzLnByaW5jaXBhbHMuX3RvSnNvbigpLFxuICAgICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMuX3RvSnNvbigpLFxuICAgICAgICBjb25kaXRpb246IHRoaXMuY29uZGl0aW9uLFxuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIG5lZ2F0aXZlIHN0YXRlbWVudFxuICAgKlxuICAgKiBBIHN0YXRlbWVudCBpcyBuZWdhdGl2ZSBpZiBhbnkgb2YgaXRzIHRhcmdldHMgYXJlIG5lZ2F0aXZlLCBpbnZlcnRlZFxuICAgKiBpZiB0aGUgRWZmZWN0IGlzIERlbnkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzTmVnYXRpdmVTdGF0ZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm90VGFyZ2V0ID0gdGhpcy5hY3Rpb25zLm5vdCB8fCB0aGlzLnByaW5jaXBhbHMubm90IHx8IHRoaXMucmVzb3VyY2VzLm5vdDtcbiAgICByZXR1cm4gdGhpcy5lZmZlY3QgPT09IEVmZmVjdC5BbGxvdyA/IG5vdFRhcmdldCA6ICFub3RUYXJnZXQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJlZFN0YXRlbWVudCB7XG4gIHJlYWRvbmx5IHJlc291cmNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVmZmVjdDogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcHJpbmNpcGFsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbmRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlbWVudEpzb24ge1xuICBzaWQ/OiBzdHJpbmc7XG4gIGVmZmVjdDogc3RyaW5nO1xuICByZXNvdXJjZXM6IFRhcmdldHNKc29uO1xuICBhY3Rpb25zOiBUYXJnZXRzSnNvbjtcbiAgcHJpbmNpcGFsczogVGFyZ2V0c0pzb247XG4gIGNvbmRpdGlvbj86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRzSnNvbiB7XG4gIG5vdDogYm9vbGVhbjtcbiAgdmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIGxpc3Qgb2Ygc3RhdGVtZW50cyBmcm9tIHVuZGVmaW5lZCwgYSBTdGF0ZW1lbnQsIG9yIGEgbGlzdCBvZiBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YXRlbWVudHMoeDogYW55KTogU3RhdGVtZW50W10ge1xuICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgeCA9IFtdO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHggPSBbeF07XG4gIH1cbiAgcmV0dXJuIHgubWFwKChzOiBhbnkpID0+IG5ldyBTdGF0ZW1lbnQocykpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgU3RhdGVtZW50IGZyb20gYSBMYW1iZGE6OlBlcm1pc3Npb24gb2JqZWN0XG4gKlxuICogVGhpcyBpcyBhY3R1YWxseSB3aGF0IExhbWJkYSBhZGRzIHRvIHRoZSBwb2xpY3kgZG9jdW1lbnQgaWYgeW91IGNhbGwgQWRkUGVybWlzc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGFtYmRhUGVybWlzc2lvbih4OiBhbnkpOiBTdGF0ZW1lbnQge1xuICAvLyBDb25zdHJ1Y3QgYSBzdGF0ZW1lbnQgZnJvbVxuICBjb25zdCBzdGF0ZW1lbnQ6IGFueSA9IHtcbiAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgQWN0aW9uOiB4LkFjdGlvbixcbiAgICBSZXNvdXJjZTogeC5GdW5jdGlvbk5hbWUsXG4gIH07XG5cbiAgaWYgKHguUHJpbmNpcGFsICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoeC5QcmluY2lwYWwgPT09ICcqJykge1xuICAgICAgLy8gKlxuICAgICAgc3RhdGVtZW50LlByaW5jaXBhbCA9ICcqJztcbiAgICB9IGVsc2UgaWYgKC9eXFxkezEyfSQvLnRlc3QoeC5QcmluY2lwYWwpKSB7XG4gICAgICAvLyBBY2NvdW50IG51bWJlclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL25vLWxpdGVyYWwtcGFydGl0aW9uXG4gICAgICBzdGF0ZW1lbnQuUHJpbmNpcGFsID0geyBBV1M6IGBhcm46YXdzOmlhbTo6JHt4LlByaW5jaXBhbH06cm9vdGAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGl0J3MgYSBzZXJ2aWNlIHByaW5jaXBhbFxuICAgICAgLy8gV2UgbWlnaHQgZ2V0IHRoaXMgd3JvbmcgdnMuIHRoZSBwcmV2aW91cyBvbmUgZm9yIHRva2Vucy4gTm90aGluZyB0byBiZSBkb25lXG4gICAgICAvLyBhYm91dCB0aGF0LiBJdCdzIG9ubHkgZm9yIGh1bWFuIHJlYWRhYmxlIGNvbnN1bXB0aW9uIGFmdGVyIGFsbC5cbiAgICAgIHN0YXRlbWVudC5QcmluY2lwYWwgPSB7IFNlcnZpY2U6IHguUHJpbmNpcGFsIH07XG4gICAgfVxuICB9XG4gIGlmICh4LlNvdXJjZUFybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHN0YXRlbWVudC5Db25kaXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RhdGVtZW50LkNvbmRpdGlvbiA9IHt9O1xuICAgIH1cbiAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uLkFybkxpa2UgPSB7ICdBV1M6U291cmNlQXJuJzogeC5Tb3VyY2VBcm4gfTtcbiAgfVxuICBpZiAoeC5Tb3VyY2VBY2NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnQVdTOlNvdXJjZUFjY291bnQnOiB4LlNvdXJjZUFjY291bnQgfTtcbiAgfVxuICBpZiAoeC5FdmVudFNvdXJjZVRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnbGFtYmRhOkV2ZW50U291cmNlVG9rZW4nOiB4LkV2ZW50U291cmNlVG9rZW4gfTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU3RhdGVtZW50KHN0YXRlbWVudCk7XG59XG5cbi8qKlxuICogVGFyZ2V0cyBmb3IgYSBmaWVsZFxuICovXG5leHBvcnQgY2xhc3MgVGFyZ2V0cyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIG9mIHRoZSB0YXJnZXRzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBtYXRjaGVyc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAsIHBvc2l0aXZlS2V5OiBzdHJpbmcsIG5lZ2F0aXZlS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAobmVnYXRpdmVLZXkgaW4gc3RhdGVtZW50KSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IGZvcmNlTGlzdE9mU3RyaW5ncyhzdGF0ZW1lbnRbbmVnYXRpdmVLZXldKTtcbiAgICAgIHRoaXMubm90ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZXMgPSBmb3JjZUxpc3RPZlN0cmluZ3Moc3RhdGVtZW50W3Bvc2l0aXZlS2V5XSk7XG4gICAgICB0aGlzLm5vdCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHNldCBvZiB0YXJnZXRzIGlzIGVxdWFsIHRvIHRoZSBvdGhlciBzZXQgb2YgdGFyZ2V0c1xuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBUYXJnZXRzKSB7XG4gICAgcmV0dXJuIHRoaXMubm90ID09PSBvdGhlci5ub3QgJiYgZGVlcEVxdWFsKHRoaXMudmFsdWVzLnNvcnQoKSwgb3RoZXIudmFsdWVzLnNvcnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGN1cnJlbnQgdmFsdWUgc2V0IGlzIGVtcHR5LCBwdXQgdGhpcyBpbiBpdFxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VFbXB0eShyZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2gocmVwbGFjZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgYWN0aW9ucyBjb250YWlucyBhICcqJywgcmVwbGFjZSB3aXRoIHRoaXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VTdGFyKHJlcGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZXNbaV0gPT09ICcqJykge1xuICAgICAgICB0aGlzLnZhbHVlc1tpXSA9IHJlcGxhY2VtZW50O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGludG8gYSBzdW1tYXJ5IHRhYmxlIGNlbGxcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ub3RcbiAgICAgID8gdGhpcy52YWx1ZXMubWFwKHMgPT4gYE5PVCAke3N9YCkuam9pbignXFxuJylcbiAgICAgIDogdGhpcy52YWx1ZXMuam9pbignXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBUYXJnZXRzSnNvbiB7XG4gICAgcmV0dXJuIHsgbm90OiB0aGlzLm5vdCwgdmFsdWVzOiB0aGlzLnZhbHVlcyB9O1xuICB9XG59XG5cbnR5cGUgVW5rbm93bk1hcCA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuXG5leHBvcnQgZW51bSBFZmZlY3Qge1xuICBVbmtub3duID0gJ1Vua25vd24nLFxuICBBbGxvdyA9ICdBbGxvdycsXG4gIERlbnkgPSAnRGVueScsXG59XG5cbmZ1bmN0aW9uIGV4cGVjdFN0cmluZyh4OiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnc3RyaW5nJyA/IHggOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdEVmZmVjdCh4OiB1bmtub3duKTogRWZmZWN0IHtcbiAgaWYgKHggPT09IEVmZmVjdC5BbGxvdyB8fCB4ID09PSBFZmZlY3QuRGVueSkge1xuICAgIHJldHVybiB4IGFzIEVmZmVjdDtcbiAgfVxuICByZXR1cm4gRWZmZWN0LlVua25vd247XG59XG5cbmZ1bmN0aW9uIGZvcmNlTGlzdE9mU3RyaW5ncyh4OiB1bmtub3duKTogc3RyaW5nW10ge1xuICBpZiAodHlwZW9mIHggPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFt4XTtcbiAgfVxuICBpZiAodHlwZW9mIHggPT09ICd1bmRlZmluZWQnIHx8IHggPT09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lm1hcChlID0+IGZvcmNlTGlzdE9mU3RyaW5ncyhlKS5qb2luKCcsJykpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHgpKSB7XG4gICAgICByZXQucHVzaCguLi5mb3JjZUxpc3RPZlN0cmluZ3ModmFsdWUpLm1hcChzID0+IGAke2tleX06JHtzfWApKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHJldHVybiBbYCR7eH1gXTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIENvbmRpdGlvbiBjb2x1bW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNvbmRpdGlvbihjb25kaXRpb246IGFueSk6IHN0cmluZyB7XG4gIGlmICghY29uZGl0aW9uIHx8IE9iamVjdC5rZXlzKGNvbmRpdGlvbikubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGNvbnN0IGpzb25SZXByZXNlbnRhdGlvbiA9IEpTT04uc3RyaW5naWZ5KGNvbmRpdGlvbiwgdW5kZWZpbmVkLCAyKTtcblxuICAvLyBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBsb29rcyBsaWtlIHRoaXM6XG4gIC8vXG4gIC8vICB7XG4gIC8vICAgIFwiQXJuTGlrZVwiOiB7XG4gIC8vICAgICAgXCJBV1M6U291cmNlQXJuXCI6IFwiJHtNeVRvcGljODY4Njk0MzR9XCJcbiAgLy8gICAgfVxuICAvLyAgfVxuICAvL1xuICAvLyBXZSBjYW4gbWFrZSBpdCBtb3JlIGNvbXBhY3Qgd2l0aG91dCBsb3NpbmcgaW5mb3JtYXRpb24gYnkgZ2V0dGluZyByaWQgb2YgdGhlIG91dGVybW9zdCBicmFjZXNcbiAgLy8gYW5kIHRoZSBpbmRlbnRhdGlvbi5cbiAgY29uc3QgbGluZXMgPSBqc29uUmVwcmVzZW50YXRpb24uc3BsaXQoJ1xcbicpO1xuICByZXR1cm4gbGluZXMuc2xpY2UoMSwgbGluZXMubGVuZ3RoIC0gMSkubWFwKHMgPT4gcy5zbGljZSgyKSkuam9pbignXFxuJyk7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mangleLikeCloudFormation = exports.deepEqual = void 0;\n__exportStar(require(\"./diff-template\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./format-foreach\"), exports);\n__exportStar(require(\"./format-table\"), exports);\n__exportStar(require(\"./mappings\"), exports);\nvar util_1 = require(\"./diff/util\");\nObject.defineProperty(exports, \"deepEqual\", { enumerable: true, get: function () { return util_1.deepEqual; } });\nObject.defineProperty(exports, \"mangleLikeCloudFormation\", { enumerable: true, get: function () { return util_1.mangleLikeCloudFormation; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQywyQ0FBeUI7QUFDekIsbURBQWlDO0FBQ2pDLGlEQUErQjtBQUMvQiw2Q0FBMkI7QUFDM0Isb0NBQWtFO0FBQXpELGlHQUFBLFNBQVMsT0FBQTtBQUFFLGdIQUFBLHdCQUF3QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWZmLXRlbXBsYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0LWZvcmVhY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtYXQtdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBwaW5ncyc7XG5leHBvcnQgeyBkZWVwRXF1YWwsIG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbiB9IGZyb20gJy4vZGlmZi91dGlsJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatEnvironmentSectionHeader = formatEnvironmentSectionHeader;\nexports.formatTypedMappings = formatTypedMappings;\nexports.formatAmbiguousMappings = formatAmbiguousMappings;\nconst chalk = require(\"chalk\");\nconst format_1 = require(\"./format\");\nconst format_table_1 = require(\"./format-table\");\nfunction formatEnvironmentSectionHeader(stream, env) {\n const formatter = new format_1.Formatter(stream, {});\n formatter.printSectionHeader(`${env}\\n`);\n}\nfunction formatTypedMappings(stream, mappings) {\n if (mappings.length > 0) {\n const header = [['Resource Type', 'Old Construct Path', 'New Construct Path']];\n const rows = mappings.map((m) => [m.type, m.sourcePath, m.destinationPath]);\n const formatter = new format_1.Formatter(stream, {});\n formatter.print('The following resources were moved or renamed:');\n formatter.print(chalk.green((0, format_table_1.formatTable)(header.concat(rows), undefined)));\n formatter.print(' ');\n }\n}\nfunction formatAmbiguousMappings(stream, pairs) {\n const tables = pairs.map(renderTable);\n const formatter = new format_1.Formatter(stream, {});\n formatter.print('Detected ambiguities:');\n formatter.print(tables.join('\\n\\n'));\n formatter.print(' ');\n formatter.print(chalk.yellow('Please provide an override file to resolve these ambiguous mappings.'));\n formatter.print(' ');\n function renderTable([removed, added]) {\n return (0, format_table_1.formatTable)([['', 'Resource'], renderRemoval(removed), renderAddition(added)], undefined);\n }\n function renderRemoval(locations) {\n return [chalk.red('-'), chalk.red(renderLocations(locations))];\n }\n function renderAddition(locations) {\n return [chalk.green('+'), chalk.green(renderLocations(locations))];\n }\n function renderLocations(locs) {\n return locs.join('\\n');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBwaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLHdFQUdDO0FBRUQsa0RBVUM7QUFFRCwwREE0QkM7QUF2REQsK0JBQStCO0FBQy9CLHFDQUFxQztBQUNyQyxpREFBNkM7QUFRN0MsU0FBZ0IsOEJBQThCLENBQUMsTUFBNkIsRUFBRSxHQUFXO0lBQ3ZGLE1BQU0sU0FBUyxHQUFHLElBQUksa0JBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsTUFBNkIsRUFBRSxRQUF3QjtJQUN6RixJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1QyxTQUFTLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUEsMEJBQVcsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQ3JDLE1BQTZCLEVBQzdCLEtBQTZCO0lBRTdCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU1QyxTQUFTLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsc0VBQXNFLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFckIsU0FBUyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUF1QjtRQUN6RCxPQUFPLElBQUEsMEJBQVcsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsU0FBbUI7UUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxTQUFTLGNBQWMsQ0FBQyxTQUFtQjtRQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFNBQVMsZUFBZSxDQUFDLElBQWM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgRm9ybWF0dGVyIH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgZm9ybWF0VGFibGUgfSBmcm9tICcuL2Zvcm1hdC10YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRNYXBwaW5nIHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2VQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RW52aXJvbm1lbnRTZWN0aW9uSGVhZGVyKHN0cmVhbTogTm9kZUpTLldyaXRhYmxlU3RyZWFtLCBlbnY6IHN0cmluZykge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwge30pO1xuICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uSGVhZGVyKGAke2Vudn1cXG5gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFR5cGVkTWFwcGluZ3Moc3RyZWFtOiBOb2RlSlMuV3JpdGFibGVTdHJlYW0sIG1hcHBpbmdzOiBUeXBlZE1hcHBpbmdbXSkge1xuICBpZiAobWFwcGluZ3MubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGhlYWRlciA9IFtbJ1Jlc291cmNlIFR5cGUnLCAnT2xkIENvbnN0cnVjdCBQYXRoJywgJ05ldyBDb25zdHJ1Y3QgUGF0aCddXTtcbiAgICBjb25zdCByb3dzID0gbWFwcGluZ3MubWFwKChtKSA9PiBbbS50eXBlLCBtLnNvdXJjZVBhdGgsIG0uZGVzdGluYXRpb25QYXRoXSk7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEZvcm1hdHRlcihzdHJlYW0sIHt9KTtcblxuICAgIGZvcm1hdHRlci5wcmludCgnVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2VyZSBtb3ZlZCBvciByZW5hbWVkOicpO1xuICAgIGZvcm1hdHRlci5wcmludChjaGFsay5ncmVlbihmb3JtYXRUYWJsZShoZWFkZXIuY29uY2F0KHJvd3MpLCB1bmRlZmluZWQpKSk7XG4gICAgZm9ybWF0dGVyLnByaW50KCcgJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFtYmlndW91c01hcHBpbmdzKFxuICBzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSxcbiAgcGFpcnM6IFtzdHJpbmdbXSwgc3RyaW5nW11dW10sXG4pIHtcbiAgY29uc3QgdGFibGVzID0gcGFpcnMubWFwKHJlbmRlclRhYmxlKTtcbiAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEZvcm1hdHRlcihzdHJlYW0sIHt9KTtcblxuICBmb3JtYXR0ZXIucHJpbnQoJ0RldGVjdGVkIGFtYmlndWl0aWVzOicpO1xuICBmb3JtYXR0ZXIucHJpbnQodGFibGVzLmpvaW4oJ1xcblxcbicpKTtcbiAgZm9ybWF0dGVyLnByaW50KCcgJyk7XG4gIGZvcm1hdHRlci5wcmludChjaGFsay55ZWxsb3coJ1BsZWFzZSBwcm92aWRlIGFuIG92ZXJyaWRlIGZpbGUgdG8gcmVzb2x2ZSB0aGVzZSBhbWJpZ3VvdXMgbWFwcGluZ3MuJykpO1xuICBmb3JtYXR0ZXIucHJpbnQoJyAnKTtcblxuICBmdW5jdGlvbiByZW5kZXJUYWJsZShbcmVtb3ZlZCwgYWRkZWRdOiBbc3RyaW5nW10sIHN0cmluZ1tdXSkge1xuICAgIHJldHVybiBmb3JtYXRUYWJsZShbWycnLCAnUmVzb3VyY2UnXSwgcmVuZGVyUmVtb3ZhbChyZW1vdmVkKSwgcmVuZGVyQWRkaXRpb24oYWRkZWQpXSwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlclJlbW92YWwobG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsucmVkKCctJyksIGNoYWxrLnJlZChyZW5kZXJMb2NhdGlvbnMobG9jYXRpb25zKSldO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVuZGVyQWRkaXRpb24obG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsuZ3JlZW4oJysnKSwgY2hhbGsuZ3JlZW4ocmVuZGVyTG9jYXRpb25zKGxvY2F0aW9ucykpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlckxvY2F0aW9ucyhsb2NzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBsb2NzLmpvaW4oJ1xcbicpO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecurityGroupChanges = void 0;\nconst chalk = require(\"chalk\");\nconst security_group_rule_1 = require(\"./security-group-rule\");\nconst diffable_1 = require(\"../diffable\");\nconst render_intrinsics_1 = require(\"../render-intrinsics\");\nconst util_1 = require(\"../util\");\n/**\n * Changes to IAM statements\n */\nclass SecurityGroupChanges {\n constructor(props) {\n this.ingress = new diffable_1.DiffableCollection();\n this.egress = new diffable_1.DiffableCollection();\n // Group rules\n for (const ingressProp of props.ingressRulePropertyChanges) {\n this.ingress.addOld(...this.readInlineRules(ingressProp.oldValue, ingressProp.resourceLogicalId));\n this.ingress.addNew(...this.readInlineRules(ingressProp.newValue, ingressProp.resourceLogicalId));\n }\n for (const egressProp of props.egressRulePropertyChanges) {\n this.egress.addOld(...this.readInlineRules(egressProp.oldValue, egressProp.resourceLogicalId));\n this.egress.addNew(...this.readInlineRules(egressProp.newValue, egressProp.resourceLogicalId));\n }\n // Rule resources\n for (const ingressRes of props.ingressRuleResourceChanges) {\n this.ingress.addOld(...this.readRuleResource(ingressRes.oldProperties));\n this.ingress.addNew(...this.readRuleResource(ingressRes.newProperties));\n }\n for (const egressRes of props.egressRuleResourceChanges) {\n this.egress.addOld(...this.readRuleResource(egressRes.oldProperties));\n this.egress.addNew(...this.readRuleResource(egressRes.newProperties));\n }\n this.ingress.calculateDiff();\n this.egress.calculateDiff();\n }\n get hasChanges() {\n return this.ingress.hasChanges || this.egress.hasChanges;\n }\n /**\n * Return a summary table of changes\n */\n summarize() {\n const ret = [];\n const header = ['', 'Group', 'Dir', 'Protocol', 'Peer'];\n const inWord = 'In';\n const outWord = 'Out';\n // Render a single rule to the table (curried function so we can map it across rules easily--thank you JavaScript!)\n const renderRule = (plusMin, inOut) => (rule) => [\n plusMin,\n rule.groupId,\n inOut,\n rule.describeProtocol(),\n rule.describePeer(),\n ].map(s => plusMin === '+' ? chalk.green(s) : chalk.red(s));\n // First generate all lines, sort later\n ret.push(...this.ingress.additions.map(renderRule('+', inWord)));\n ret.push(...this.egress.additions.map(renderRule('+', outWord)));\n ret.push(...this.ingress.removals.map(renderRule('-', inWord)));\n ret.push(...this.egress.removals.map(renderRule('-', outWord)));\n // Sort by group name then ingress/egress (ingress first)\n ret.sort((0, util_1.makeComparator)((row) => [row[1], row[2].indexOf(inWord) > -1 ? 0 : 1]));\n ret.splice(0, 0, header);\n return ret;\n }\n toJson() {\n return (0, util_1.deepRemoveUndefined)({\n ingressRuleAdditions: (0, util_1.dropIfEmpty)(this.ingress.additions.map(s => s.toJson())),\n ingressRuleRemovals: (0, util_1.dropIfEmpty)(this.ingress.removals.map(s => s.toJson())),\n egressRuleAdditions: (0, util_1.dropIfEmpty)(this.egress.additions.map(s => s.toJson())),\n egressRuleRemovals: (0, util_1.dropIfEmpty)(this.egress.removals.map(s => s.toJson())),\n });\n }\n get rulesAdded() {\n return this.ingress.hasAdditions\n || this.egress.hasAdditions;\n }\n readInlineRules(rules, logicalId) {\n if (!rules || !Array.isArray(rules)) {\n return [];\n }\n // UnCloudFormation so the parser works in an easier domain\n const ref = '${' + logicalId + '.GroupId}';\n return rules.flatMap((r) => {\n const rendered = (0, render_intrinsics_1.renderIntrinsics)(r);\n // SecurityGroupRule is not robust against unparsed objects\n return typeof rendered === 'object' ? [new security_group_rule_1.SecurityGroupRule(rendered, ref)] : [];\n });\n }\n readRuleResource(resource) {\n if (!resource) {\n return [];\n }\n // UnCloudFormation so the parser works in an easier domain\n return [new security_group_rule_1.SecurityGroupRule((0, render_intrinsics_1.renderIntrinsics)(resource))];\n }\n}\nexports.SecurityGroupChanges = SecurityGroupChanges;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWdyb3VwLWNoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBRS9CLCtEQUEwRDtBQUUxRCwwQ0FBaUQ7QUFDakQsNERBQXdEO0FBQ3hELGtDQUEyRTtBQVMzRTs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBSS9CLFlBQVksS0FBZ0M7UUFINUIsWUFBTyxHQUFHLElBQUksNkJBQWtCLEVBQXFCLENBQUM7UUFDdEQsV0FBTSxHQUFHLElBQUksNkJBQWtCLEVBQXFCLENBQUM7UUFHbkUsY0FBYztRQUNkLEtBQUssTUFBTSxXQUFXLElBQUksS0FBSyxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUNsRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFDRCxLQUFLLE1BQU0sVUFBVSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUNq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QztJQUVPLGVBQWUsQ0FBQyxLQUFVLEVBQUUsU0FBaUI7UUFDbkQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCwyREFBMkQ7UUFFM0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBQSxvQ0FBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUNyQywyREFBMkQ7WUFDM0QsT0FBTyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWE7UUFDcEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsMkRBQTJEO1FBRTNELE9BQU8sQ0FBQyxJQUFJLHVDQUFpQixDQUFDLElBQUEsb0NBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQXpHRCxvREF5R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IFJ1bGVKc29uIH0gZnJvbSAnLi9zZWN1cml0eS1ncm91cC1ydWxlJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBSdWxlIH0gZnJvbSAnLi9zZWN1cml0eS1ncm91cC1ydWxlJztcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlDaGFuZ2UsIFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBEaWZmYWJsZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9kaWZmYWJsZSc7XG5pbXBvcnQgeyByZW5kZXJJbnRyaW5zaWNzIH0gZnJvbSAnLi4vcmVuZGVyLWludHJpbnNpY3MnO1xuaW1wb3J0IHsgZGVlcFJlbW92ZVVuZGVmaW5lZCwgZHJvcElmRW1wdHksIG1ha2VDb21wYXJhdG9yIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENoYW5nZXNQcm9wcyB7XG4gIGluZ3Jlc3NSdWxlUHJvcGVydHlDaGFuZ2VzOiBQcm9wZXJ0eUNoYW5nZVtdO1xuICBpbmdyZXNzUnVsZVJlc291cmNlQ2hhbmdlczogUmVzb3VyY2VDaGFuZ2VbXTtcbiAgZWdyZXNzUnVsZVJlc291cmNlQ2hhbmdlczogUmVzb3VyY2VDaGFuZ2VbXTtcbiAgZWdyZXNzUnVsZVByb3BlcnR5Q2hhbmdlczogUHJvcGVydHlDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBDaGFuZ2VzIHRvIElBTSBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWN1cml0eUdyb3VwQ2hhbmdlcyB7XG4gIHB1YmxpYyByZWFkb25seSBpbmdyZXNzID0gbmV3IERpZmZhYmxlQ29sbGVjdGlvbjxTZWN1cml0eUdyb3VwUnVsZT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGVncmVzcyA9IG5ldyBEaWZmYWJsZUNvbGxlY3Rpb248U2VjdXJpdHlHcm91cFJ1bGU+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFNlY3VyaXR5R3JvdXBDaGFuZ2VzUHJvcHMpIHtcbiAgICAvLyBHcm91cCBydWxlc1xuICAgIGZvciAoY29uc3QgaW5ncmVzc1Byb3Agb2YgcHJvcHMuaW5ncmVzc1J1bGVQcm9wZXJ0eUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuaW5ncmVzcy5hZGRPbGQoLi4udGhpcy5yZWFkSW5saW5lUnVsZXMoaW5ncmVzc1Byb3Aub2xkVmFsdWUsIGluZ3Jlc3NQcm9wLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICB0aGlzLmluZ3Jlc3MuYWRkTmV3KC4uLnRoaXMucmVhZElubGluZVJ1bGVzKGluZ3Jlc3NQcm9wLm5ld1ZhbHVlLCBpbmdyZXNzUHJvcC5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGVncmVzc1Byb3Agb2YgcHJvcHMuZWdyZXNzUnVsZVByb3BlcnR5Q2hhbmdlcykge1xuICAgICAgdGhpcy5lZ3Jlc3MuYWRkT2xkKC4uLnRoaXMucmVhZElubGluZVJ1bGVzKGVncmVzc1Byb3Aub2xkVmFsdWUsIGVncmVzc1Byb3AucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgIHRoaXMuZWdyZXNzLmFkZE5ldyguLi50aGlzLnJlYWRJbmxpbmVSdWxlcyhlZ3Jlc3NQcm9wLm5ld1ZhbHVlLCBlZ3Jlc3NQcm9wLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgfVxuXG4gICAgLy8gUnVsZSByZXNvdXJjZXNcbiAgICBmb3IgKGNvbnN0IGluZ3Jlc3NSZXMgb2YgcHJvcHMuaW5ncmVzc1J1bGVSZXNvdXJjZUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuaW5ncmVzcy5hZGRPbGQoLi4udGhpcy5yZWFkUnVsZVJlc291cmNlKGluZ3Jlc3NSZXMub2xkUHJvcGVydGllcykpO1xuICAgICAgdGhpcy5pbmdyZXNzLmFkZE5ldyguLi50aGlzLnJlYWRSdWxlUmVzb3VyY2UoaW5ncmVzc1Jlcy5uZXdQcm9wZXJ0aWVzKSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZWdyZXNzUmVzIG9mIHByb3BzLmVncmVzc1J1bGVSZXNvdXJjZUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuZWdyZXNzLmFkZE9sZCguLi50aGlzLnJlYWRSdWxlUmVzb3VyY2UoZWdyZXNzUmVzLm9sZFByb3BlcnRpZXMpKTtcbiAgICAgIHRoaXMuZWdyZXNzLmFkZE5ldyguLi50aGlzLnJlYWRSdWxlUmVzb3VyY2UoZWdyZXNzUmVzLm5ld1Byb3BlcnRpZXMpKTtcbiAgICB9XG5cbiAgICB0aGlzLmluZ3Jlc3MuY2FsY3VsYXRlRGlmZigpO1xuICAgIHRoaXMuZWdyZXNzLmNhbGN1bGF0ZURpZmYoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5pbmdyZXNzLmhhc0NoYW5nZXMgfHwgdGhpcy5lZ3Jlc3MuaGFzQ2hhbmdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzdW1tYXJ5IHRhYmxlIG9mIGNoYW5nZXNcbiAgICovXG4gIHB1YmxpYyBzdW1tYXJpemUoKTogc3RyaW5nW11bXSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXVtdID0gW107XG5cbiAgICBjb25zdCBoZWFkZXIgPSBbJycsICdHcm91cCcsICdEaXInLCAnUHJvdG9jb2wnLCAnUGVlciddO1xuXG4gICAgY29uc3QgaW5Xb3JkID0gJ0luJztcbiAgICBjb25zdCBvdXRXb3JkID0gJ091dCc7XG5cbiAgICAvLyBSZW5kZXIgYSBzaW5nbGUgcnVsZSB0byB0aGUgdGFibGUgKGN1cnJpZWQgZnVuY3Rpb24gc28gd2UgY2FuIG1hcCBpdCBhY3Jvc3MgcnVsZXMgZWFzaWx5LS10aGFuayB5b3UgSmF2YVNjcmlwdCEpXG4gICAgY29uc3QgcmVuZGVyUnVsZSA9IChwbHVzTWluOiBzdHJpbmcsIGluT3V0OiBzdHJpbmcpID0+IChydWxlOiBTZWN1cml0eUdyb3VwUnVsZSkgPT4gW1xuICAgICAgcGx1c01pbixcbiAgICAgIHJ1bGUuZ3JvdXBJZCxcbiAgICAgIGluT3V0LFxuICAgICAgcnVsZS5kZXNjcmliZVByb3RvY29sKCksXG4gICAgICBydWxlLmRlc2NyaWJlUGVlcigpLFxuICAgIF0ubWFwKHMgPT4gcGx1c01pbiA9PT0gJysnID8gY2hhbGsuZ3JlZW4ocykgOiBjaGFsay5yZWQocykpO1xuXG4gICAgLy8gRmlyc3QgZ2VuZXJhdGUgYWxsIGxpbmVzLCBzb3J0IGxhdGVyXG4gICAgcmV0LnB1c2goLi4udGhpcy5pbmdyZXNzLmFkZGl0aW9ucy5tYXAocmVuZGVyUnVsZSgnKycsIGluV29yZCkpKTtcbiAgICByZXQucHVzaCguLi50aGlzLmVncmVzcy5hZGRpdGlvbnMubWFwKHJlbmRlclJ1bGUoJysnLCBvdXRXb3JkKSkpO1xuICAgIHJldC5wdXNoKC4uLnRoaXMuaW5ncmVzcy5yZW1vdmFscy5tYXAocmVuZGVyUnVsZSgnLScsIGluV29yZCkpKTtcbiAgICByZXQucHVzaCguLi50aGlzLmVncmVzcy5yZW1vdmFscy5tYXAocmVuZGVyUnVsZSgnLScsIG91dFdvcmQpKSk7XG5cbiAgICAvLyBTb3J0IGJ5IGdyb3VwIG5hbWUgdGhlbiBpbmdyZXNzL2VncmVzcyAoaW5ncmVzcyBmaXJzdClcbiAgICByZXQuc29ydChtYWtlQ29tcGFyYXRvcigocm93OiBzdHJpbmdbXSkgPT4gW3Jvd1sxXSwgcm93WzJdLmluZGV4T2YoaW5Xb3JkKSA+IC0xID8gMCA6IDFdKSk7XG5cbiAgICByZXQuc3BsaWNlKDAsIDAsIGhlYWRlcik7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIHRvSnNvbigpOiBTZWN1cml0eUdyb3VwQ2hhbmdlc0pzb24ge1xuICAgIHJldHVybiBkZWVwUmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIGluZ3Jlc3NSdWxlQWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLmluZ3Jlc3MuYWRkaXRpb25zLm1hcChzID0+IHMudG9Kc29uKCkpKSxcbiAgICAgIGluZ3Jlc3NSdWxlUmVtb3ZhbHM6IGRyb3BJZkVtcHR5KHRoaXMuaW5ncmVzcy5yZW1vdmFscy5tYXAocyA9PiBzLnRvSnNvbigpKSksXG4gICAgICBlZ3Jlc3NSdWxlQWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLmVncmVzcy5hZGRpdGlvbnMubWFwKHMgPT4gcy50b0pzb24oKSkpLFxuICAgICAgZWdyZXNzUnVsZVJlbW92YWxzOiBkcm9wSWZFbXB0eSh0aGlzLmVncmVzcy5yZW1vdmFscy5tYXAocyA9PiBzLnRvSnNvbigpKSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJ1bGVzQWRkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5ncmVzcy5oYXNBZGRpdGlvbnNcbiAgICAgICAgfHwgdGhpcy5lZ3Jlc3MuaGFzQWRkaXRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkSW5saW5lUnVsZXMocnVsZXM6IGFueSwgbG9naWNhbElkOiBzdHJpbmcpOiBTZWN1cml0eUdyb3VwUnVsZVtdIHtcbiAgICBpZiAoIXJ1bGVzIHx8ICFBcnJheS5pc0FycmF5KHJ1bGVzKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8vIFVuQ2xvdWRGb3JtYXRpb24gc28gdGhlIHBhcnNlciB3b3JrcyBpbiBhbiBlYXNpZXIgZG9tYWluXG5cbiAgICBjb25zdCByZWYgPSAnJHsnICsgbG9naWNhbElkICsgJy5Hcm91cElkfSc7XG4gICAgcmV0dXJuIHJ1bGVzLmZsYXRNYXAoKHI6IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVuZGVyZWQgPSByZW5kZXJJbnRyaW5zaWNzKHIpO1xuICAgICAgLy8gU2VjdXJpdHlHcm91cFJ1bGUgaXMgbm90IHJvYnVzdCBhZ2FpbnN0IHVucGFyc2VkIG9iamVjdHNcbiAgICAgIHJldHVybiB0eXBlb2YgcmVuZGVyZWQgPT09ICdvYmplY3QnID8gW25ldyBTZWN1cml0eUdyb3VwUnVsZShyZW5kZXJlZCwgcmVmKV0gOiBbXTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFJ1bGVSZXNvdXJjZShyZXNvdXJjZTogYW55KTogU2VjdXJpdHlHcm91cFJ1bGVbXSB7XG4gICAgaWYgKCFyZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8vIFVuQ2xvdWRGb3JtYXRpb24gc28gdGhlIHBhcnNlciB3b3JrcyBpbiBhbiBlYXNpZXIgZG9tYWluXG5cbiAgICByZXR1cm4gW25ldyBTZWN1cml0eUdyb3VwUnVsZShyZW5kZXJJbnRyaW5zaWNzKHJlc291cmNlKSldO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENoYW5nZXNKc29uIHtcbiAgaW5ncmVzc1J1bGVBZGRpdGlvbnM/OiBSdWxlSnNvbltdO1xuICBpbmdyZXNzUnVsZVJlbW92YWxzPzogUnVsZUpzb25bXTtcbiAgZWdyZXNzUnVsZUFkZGl0aW9ucz86IFJ1bGVKc29uW107XG4gIGVncmVzc1J1bGVSZW1vdmFscz86IFJ1bGVKc29uW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecurityGroupRule = void 0;\n/**\n * A single security group rule, either egress or ingress\n */\nclass SecurityGroupRule {\n constructor(ruleObject, groupRef) {\n this.ipProtocol = ruleObject.IpProtocol?.toString() || '*unknown*';\n this.fromPort = ruleObject.FromPort;\n this.toPort = ruleObject.ToPort;\n this.groupId = ruleObject.GroupId || groupRef || '*unknown*'; // In case of an inline rule\n this.peer =\n findFirst(ruleObject, ['CidrIp', 'CidrIpv6'], (ip) => ({ kind: 'cidr-ip', ip }))\n ||\n findFirst(ruleObject, ['DestinationSecurityGroupId', 'SourceSecurityGroupId'], (securityGroupId) => ({ kind: 'security-group', securityGroupId }))\n ||\n findFirst(ruleObject, ['DestinationPrefixListId', 'SourcePrefixListId'], (prefixListId) => ({ kind: 'prefix-list', prefixListId }));\n }\n equal(other) {\n return this.ipProtocol === other.ipProtocol\n && this.fromPort === other.fromPort\n && this.toPort === other.toPort\n && peerEqual(this.peer, other.peer);\n }\n describeProtocol() {\n if (this.ipProtocol === '-1') {\n return 'Everything';\n }\n const ipProtocol = this.ipProtocol.toUpperCase();\n if (this.fromPort === -1) {\n return `All ${ipProtocol}`;\n }\n if (this.fromPort === this.toPort) {\n return `${ipProtocol} ${this.fromPort}`;\n }\n return `${ipProtocol} ${this.fromPort}-${this.toPort}`;\n }\n describePeer() {\n if (this.peer) {\n switch (this.peer.kind) {\n case 'cidr-ip':\n if (this.peer.ip === '0.0.0.0/0') {\n return 'Everyone (IPv4)';\n }\n if (this.peer.ip === '::/0') {\n return 'Everyone (IPv6)';\n }\n return `${this.peer.ip}`;\n case 'prefix-list': return `${this.peer.prefixListId}`;\n case 'security-group': return `${this.peer.securityGroupId}`;\n }\n }\n return '?';\n }\n toJson() {\n return {\n groupId: this.groupId,\n ipProtocol: this.ipProtocol,\n fromPort: this.fromPort,\n toPort: this.toPort,\n peer: this.peer,\n };\n }\n}\nexports.SecurityGroupRule = SecurityGroupRule;\nfunction peerEqual(a, b) {\n if ((a === undefined) !== (b === undefined)) {\n return false;\n }\n if (a === undefined) {\n return true;\n }\n if (a.kind !== b.kind) {\n return false;\n }\n switch (a.kind) {\n case 'cidr-ip': return a.ip === b.ip;\n case 'security-group': return a.securityGroupId === b.securityGroupId;\n case 'prefix-list': return a.prefixListId === b.prefixListId;\n }\n}\nfunction findFirst(obj, keys, fn) {\n for (const key of keys) {\n try {\n if (key in obj) {\n return fn(obj[key]);\n }\n }\n catch (e) {\n debugger;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWdyb3VwLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQTBCNUIsWUFBWSxVQUFlLEVBQUUsUUFBaUI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sSUFBSSxRQUFRLElBQUksV0FBVyxDQUFDLENBQUMsNEJBQTRCO1FBRTFGLElBQUksQ0FBQyxJQUFJO1lBQ0wsU0FBUyxDQUFDLFVBQVUsRUFDbEIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQ3RCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWlCLENBQUEsQ0FBQzs7b0JBRWxELFNBQVMsQ0FBQyxVQUFVLEVBQ2xCLENBQUMsNEJBQTRCLEVBQUUsdUJBQXVCLENBQUMsRUFDdkQsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUF3QixDQUFBLENBQUM7O29CQUUxRixTQUFTLENBQUMsVUFBVSxFQUNsQixDQUFDLHlCQUF5QixFQUFFLG9CQUFvQixDQUFDLEVBQ2pELENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQXFCLENBQUEsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBd0I7UUFDbkMs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LENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEtBQU0sQ0FBYyxDQUFDLGVBQWUsQ0FBQztRQUNwRixLQUFLLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksS0FBTSxDQUFjLENBQUMsWUFBWSxDQUFDO0lBQzdFLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUksR0FBUSxFQUFFLElBQWMsRUFBRSxFQUFvQjtJQUNsRSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQztZQUNILElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNmLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLFFBQVEsQ0FBQztRQUNYLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzaW5nbGUgc2VjdXJpdHkgZ3JvdXAgcnVsZSwgZWl0aGVyIGVncmVzcyBvciBpbmdyZXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWN1cml0eUdyb3VwUnVsZSB7XG4gIC8qKlxuICAgKiBHcm91cCBJRCBvZiB0aGUgZ3JvdXAgdGhpcyBydWxlIGFwcGxpZXMgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQIHByb3RvY29sIHRoaXMgcnVsZSBhcHBsaWVzIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBQcm90b2NvbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBwb3J0IHJhbmdlIHRoaXMgcnVsZSBhcHBsaWVzIHRvLCBvciBJQ01QIHR5cGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmcm9tUG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogRW5kIG9mIHBvcnQgcmFuZ2UgdGhpcyBydWxlIGFwcGxpZXMgdG8sIG9yIElDTVAgY29kZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRvUG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogUGVlciBvZiB0aGlzIHJ1bGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwZWVyPzogUnVsZVBlZXI7XG5cbiAgY29uc3RydWN0b3IocnVsZU9iamVjdDogYW55LCBncm91cFJlZj86IHN0cmluZykge1xuICAgIHRoaXMuaXBQcm90b2NvbCA9IHJ1bGVPYmplY3QuSXBQcm90b2NvbD8udG9TdHJpbmcoKSB8fCAnKnVua25vd24qJztcbiAgICB0aGlzLmZyb21Qb3J0ID0gcnVsZU9iamVjdC5Gcm9tUG9ydDtcbiAgICB0aGlzLnRvUG9ydCA9IHJ1bGVPYmplY3QuVG9Qb3J0O1xuICAgIHRoaXMuZ3JvdXBJZCA9IHJ1bGVPYmplY3QuR3JvdXBJZCB8fCBncm91cFJlZiB8fCAnKnVua25vd24qJzsgLy8gSW4gY2FzZSBvZiBhbiBpbmxpbmUgcnVsZVxuXG4gICAgdGhpcy5wZWVyID1cbiAgICAgICAgZmluZEZpcnN0KHJ1bGVPYmplY3QsXG4gICAgICAgICAgWydDaWRySXAnLCAnQ2lkcklwdjYnXSxcbiAgICAgICAgICAoaXApID0+ICh7IGtpbmQ6ICdjaWRyLWlwJywgaXAgfSBhcyBDaWRySXBQZWVyKSlcbiAgICAgICAgfHxcbiAgICAgICAgZmluZEZpcnN0KHJ1bGVPYmplY3QsXG4gICAgICAgICAgWydEZXN0aW5hdGlvblNlY3VyaXR5R3JvdXBJZCcsICdTb3VyY2VTZWN1cml0eUdyb3VwSWQnXSxcbiAgICAgICAgICAoc2VjdXJpdHlHcm91cElkKSA9PiAoeyBraW5kOiAnc2VjdXJpdHktZ3JvdXAnLCBzZWN1cml0eUdyb3VwSWQgfSBhcyBTZWN1cml0eUdyb3VwUGVlcikpXG4gICAgICAgIHx8XG4gICAgICAgIGZpbmRGaXJzdChydWxlT2JqZWN0LFxuICAgICAgICAgIFsnRGVzdGluYXRpb25QcmVmaXhMaXN0SWQnLCAnU291cmNlUHJlZml4TGlzdElkJ10sXG4gICAgICAgICAgKHByZWZpeExpc3RJZCkgPT4gKHsga2luZDogJ3ByZWZpeC1saXN0JywgcHJlZml4TGlzdElkIH0gYXMgUHJlZml4TGlzdFBlZXIpKTtcbiAgfVxuXG4gIHB1YmxpYyBlcXVhbChvdGhlcjogU2VjdXJpdHlHcm91cFJ1bGUpIHtcbiAgICByZXR1cm4gdGhpcy5pcFByb3RvY29sID09PSBvdGhlci5pcFByb3RvY29sXG4gICAgICAgICYmIHRoaXMuZnJvbVBvcnQgPT09IG90aGVyLmZyb21Qb3J0XG4gICAgICAgICYmIHRoaXMudG9Qb3J0ID09PSBvdGhlci50b1BvcnRcbiAgICAgICAgJiYgcGVlckVxdWFsKHRoaXMucGVlciwgb3RoZXIucGVlcik7XG4gIH1cblxuICBwdWJsaWMgZGVzY3JpYmVQcm90b2NvbCgpIHtcbiAgICBpZiAodGhpcy5pcFByb3RvY29sID09PSAnLTEnKSB7XG4gICAgICByZXR1cm4gJ0V2ZXJ5dGhpbmcnO1xuICAgIH1cblxuICAgIGNvbnN0IGlwUHJvdG9jb2wgPSB0aGlzLmlwUHJvdG9jb2wudG9VcHBlckNhc2UoKTtcblxuICAgIGlmICh0aGlzLmZyb21Qb3J0ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGBBbGwgJHtpcFByb3RvY29sfWA7XG4gICAgfVxuICAgIGlmICh0aGlzLmZyb21Qb3J0ID09PSB0aGlzLnRvUG9ydCkge1xuICAgICAgcmV0dXJuIGAke2lwUHJvdG9jb2x9ICR7dGhpcy5mcm9tUG9ydH1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7aXBQcm90b2NvbH0gJHt0aGlzLmZyb21Qb3J0fS0ke3RoaXMudG9Qb3J0fWA7XG4gIH1cblxuICBwdWJsaWMgZGVzY3JpYmVQZWVyKCkge1xuICAgIGlmICh0aGlzLnBlZXIpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5wZWVyLmtpbmQpIHtcbiAgICAgICAgY2FzZSAnY2lkci1pcCc6XG4gICAgICAgICAgaWYgKHRoaXMucGVlci5pcCA9PT0gJzAuMC4wLjAvMCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnRXZlcnlvbmUgKElQdjQpJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMucGVlci5pcCA9PT0gJzo6LzAnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0V2ZXJ5b25lIChJUHY2KSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBgJHt0aGlzLnBlZXIuaXB9YDtcbiAgICAgICAgY2FzZSAncHJlZml4LWxpc3QnOiByZXR1cm4gYCR7dGhpcy5wZWVyLnByZWZpeExpc3RJZH1gO1xuICAgICAgICBjYXNlICdzZWN1cml0eS1ncm91cCc6IHJldHVybiBgJHt0aGlzLnBlZXIuc2VjdXJpdHlHcm91cElkfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICc/JztcbiAgfVxuXG4gIHB1YmxpYyB0b0pzb24oKTogUnVsZUpzb24ge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cElkOiB0aGlzLmdyb3VwSWQsXG4gICAgICBpcFByb3RvY29sOiB0aGlzLmlwUHJvdG9jb2wsXG4gICAgICBmcm9tUG9ydDogdGhpcy5mcm9tUG9ydCxcbiAgICAgIHRvUG9ydDogdGhpcy50b1BvcnQsXG4gICAgICBwZWVyOiB0aGlzLnBlZXIsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpZHJJcFBlZXIge1xuICBraW5kOiAnY2lkci1pcCc7XG4gIGlwOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cFBlZXIge1xuICBraW5kOiAnc2VjdXJpdHktZ3JvdXAnO1xuICBzZWN1cml0eUdyb3VwSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVmaXhMaXN0UGVlciB7XG4gIGtpbmQ6ICdwcmVmaXgtbGlzdCc7XG4gIHByZWZpeExpc3RJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSdWxlUGVlciA9IENpZHJJcFBlZXIgfCBTZWN1cml0eUdyb3VwUGVlciB8IFByZWZpeExpc3RQZWVyO1xuXG5mdW5jdGlvbiBwZWVyRXF1YWwoYT86IFJ1bGVQZWVyLCBiPzogUnVsZVBlZXIpIHtcbiAgaWYgKChhID09PSB1bmRlZmluZWQpICE9PSAoYiA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoYS5raW5kICE9PSBiIS5raW5kKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN3aXRjaCAoYS5raW5kKSB7XG4gICAgY2FzZSAnY2lkci1pcCc6IHJldHVybiBhLmlwID09PSAoYiBhcyB0eXBlb2YgYSkuaXA7XG4gICAgY2FzZSAnc2VjdXJpdHktZ3JvdXAnOiByZXR1cm4gYS5zZWN1cml0eUdyb3VwSWQgPT09IChiIGFzIHR5cGVvZiBhKS5zZWN1cml0eUdyb3VwSWQ7XG4gICAgY2FzZSAncHJlZml4LWxpc3QnOiByZXR1cm4gYS5wcmVmaXhMaXN0SWQgPT09IChiIGFzIHR5cGVvZiBhKS5wcmVmaXhMaXN0SWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEZpcnN0PFQ+KG9iajogYW55LCBrZXlzOiBzdHJpbmdbXSwgZm46ICh4OiBzdHJpbmcpID0+IFQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIHRyeSB7XG4gICAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICByZXR1cm4gZm4ob2JqW2tleV0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGRlYnVnZ2VyO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVKc29uIHtcbiAgZ3JvdXBJZDogc3RyaW5nO1xuICBpcFByb3RvY29sOiBzdHJpbmc7XG4gIGZyb21Qb3J0PzogbnVtYmVyO1xuICB0b1BvcnQ/OiBudW1iZXI7XG4gIHBlZXI/OiBSdWxlUGVlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renderIntrinsics = renderIntrinsics;\n/**\n * Turn CloudFormation intrinsics into strings\n *\n * ------\n *\n * This stringification is not intended to be mechanically reversible! It's intended\n * to be understood by humans!\n *\n * ------\n *\n * Turns Fn::GetAtt and Fn::Ref objects into the same strings that can be\n * parsed by Fn::Sub, but without the surrounding intrinsics.\n *\n * Evaluates Fn::Join directly if the second argument is a literal list of strings.\n *\n * Removes list and object values evaluating to { Ref: 'AWS::NoValue' }.\n *\n * For other intrinsics we choose a string representation that CloudFormation\n * cannot actually parse, but is comprehensible to humans.\n */\nfunction renderIntrinsics(x) {\n if (Array.isArray(x)) {\n return x.filter(el => !isNoValue(el)).map(renderIntrinsics);\n }\n if (isNoValue(x)) {\n return undefined;\n }\n const intrinsic = getIntrinsic(x);\n if (intrinsic) {\n if (intrinsic.fn === 'Ref') {\n return '${' + intrinsic.args + '}';\n }\n if (intrinsic.fn === 'Fn::GetAtt') {\n return '${' + intrinsic.args[0] + '.' + intrinsic.args[1] + '}';\n }\n if (intrinsic.fn === 'Fn::Join') {\n return unCloudFormationFnJoin(intrinsic.args[0], intrinsic.args[1]);\n }\n return stringifyIntrinsic(intrinsic.fn, intrinsic.args);\n }\n if (typeof x === 'object' && x !== null) {\n const ret = {};\n for (const [key, value] of Object.entries(x)) {\n if (!isNoValue(value)) {\n ret[key] = renderIntrinsics(value);\n }\n }\n return ret;\n }\n return x;\n}\nfunction unCloudFormationFnJoin(separator, args) {\n if (Array.isArray(args)) {\n return args.filter(el => !isNoValue(el)).map(renderIntrinsics).join(separator);\n }\n return stringifyIntrinsic('Fn::Join', [separator, args]);\n}\nfunction stringifyIntrinsic(fn, args) {\n return JSON.stringify({ [fn]: renderIntrinsics(args) });\n}\nfunction getIntrinsic(x) {\n if (x === undefined || x === null || Array.isArray(x)) {\n return undefined;\n }\n if (typeof x !== 'object') {\n return undefined;\n }\n const keys = Object.keys(x);\n return keys.length === 1 && (keys[0] === 'Ref' || keys[0].startsWith('Fn::')) ? { fn: keys[0], args: x[keys[0]] } : undefined;\n}\nfunction isNoValue(x) {\n const int = getIntrinsic(x);\n return int && int.fn === 'Ref' && int.args === 'AWS::NoValue';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWludHJpbnNpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZW5kZXItaW50cmluc2ljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9CQSw0Q0FpQ0M7QUFyREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxDQUFNO0lBQ3JDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbEUsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoQyxPQUFPLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsSUFBUztJQUMxRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsSUFBUztJQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsQ0FBTTtJQUMxQixJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEksQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLENBQU07SUFDdkIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR1cm4gQ2xvdWRGb3JtYXRpb24gaW50cmluc2ljcyBpbnRvIHN0cmluZ3NcbiAqXG4gKiAtLS0tLS1cbiAqXG4gKiBUaGlzIHN0cmluZ2lmaWNhdGlvbiBpcyBub3QgaW50ZW5kZWQgdG8gYmUgbWVjaGFuaWNhbGx5IHJldmVyc2libGUhIEl0J3MgaW50ZW5kZWRcbiAqIHRvIGJlIHVuZGVyc3Rvb2QgYnkgaHVtYW5zIVxuICpcbiAqIC0tLS0tLVxuICpcbiAqIFR1cm5zIEZuOjpHZXRBdHQgYW5kIEZuOjpSZWYgb2JqZWN0cyBpbnRvIHRoZSBzYW1lIHN0cmluZ3MgdGhhdCBjYW4gYmVcbiAqIHBhcnNlZCBieSBGbjo6U3ViLCBidXQgd2l0aG91dCB0aGUgc3Vycm91bmRpbmcgaW50cmluc2ljcy5cbiAqXG4gKiBFdmFsdWF0ZXMgRm46OkpvaW4gZGlyZWN0bHkgaWYgdGhlIHNlY29uZCBhcmd1bWVudCBpcyBhIGxpdGVyYWwgbGlzdCBvZiBzdHJpbmdzLlxuICpcbiAqIFJlbW92ZXMgbGlzdCBhbmQgb2JqZWN0IHZhbHVlcyBldmFsdWF0aW5nIHRvIHsgUmVmOiAnQVdTOjpOb1ZhbHVlJyB9LlxuICpcbiAqIEZvciBvdGhlciBpbnRyaW5zaWNzIHdlIGNob29zZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiB0aGF0IENsb3VkRm9ybWF0aW9uXG4gKiBjYW5ub3QgYWN0dWFsbHkgcGFyc2UsIGJ1dCBpcyBjb21wcmVoZW5zaWJsZSB0byBodW1hbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJbnRyaW5zaWNzKHg6IGFueSk6IGFueSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHguZmlsdGVyKGVsID0+ICFpc05vVmFsdWUoZWwpKS5tYXAocmVuZGVySW50cmluc2ljcyk7XG4gIH1cblxuICBpZiAoaXNOb1ZhbHVlKHgpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGludHJpbnNpYyA9IGdldEludHJpbnNpYyh4KTtcbiAgaWYgKGludHJpbnNpYykge1xuICAgIGlmIChpbnRyaW5zaWMuZm4gPT09ICdSZWYnKSB7XG4gICAgICByZXR1cm4gJyR7JyArIGludHJpbnNpYy5hcmdzICsgJ30nO1xuICAgIH1cbiAgICBpZiAoaW50cmluc2ljLmZuID09PSAnRm46OkdldEF0dCcpIHtcbiAgICAgIHJldHVybiAnJHsnICsgaW50cmluc2ljLmFyZ3NbMF0gKyAnLicgKyBpbnRyaW5zaWMuYXJnc1sxXSArICd9JztcbiAgICB9XG4gICAgaWYgKGludHJpbnNpYy5mbiA9PT0gJ0ZuOjpKb2luJykge1xuICAgICAgcmV0dXJuIHVuQ2xvdWRGb3JtYXRpb25GbkpvaW4oaW50cmluc2ljLmFyZ3NbMF0sIGludHJpbnNpYy5hcmdzWzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmluZ2lmeUludHJpbnNpYyhpbnRyaW5zaWMuZm4sIGludHJpbnNpYy5hcmdzKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgeCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJldDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoeCkpIHtcbiAgICAgIGlmICghaXNOb1ZhbHVlKHZhbHVlKSkge1xuICAgICAgICByZXRba2V5XSA9IHJlbmRlckludHJpbnNpY3ModmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG4gIHJldHVybiB4O1xufVxuXG5mdW5jdGlvbiB1bkNsb3VkRm9ybWF0aW9uRm5Kb2luKHNlcGFyYXRvcjogc3RyaW5nLCBhcmdzOiBhbnkpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJncykpIHtcbiAgICByZXR1cm4gYXJncy5maWx0ZXIoZWwgPT4gIWlzTm9WYWx1ZShlbCkpLm1hcChyZW5kZXJJbnRyaW5zaWNzKS5qb2luKHNlcGFyYXRvcik7XG4gIH1cbiAgcmV0dXJuIHN0cmluZ2lmeUludHJpbnNpYygnRm46OkpvaW4nLCBbc2VwYXJhdG9yLCBhcmdzXSk7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUludHJpbnNpYyhmbjogc3RyaW5nLCBhcmdzOiBhbnkpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgW2ZuXTogcmVuZGVySW50cmluc2ljcyhhcmdzKSB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0SW50cmluc2ljKHg6IGFueSk6IEludHJpbnNpYyB8IHVuZGVmaW5lZCB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCB8fCBBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAodHlwZW9mIHggIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoeCk7XG4gIHJldHVybiBrZXlzLmxlbmd0aCA9PT0gMSAmJiAoa2V5c1swXSA9PT0gJ1JlZicgfHwga2V5c1swXS5zdGFydHNXaXRoKCdGbjo6JykpID8geyBmbjoga2V5c1swXSwgYXJnczogeFtrZXlzWzBdXSB9IDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpc05vVmFsdWUoeDogYW55KSB7XG4gIGNvbnN0IGludCA9IGdldEludHJpbnNpYyh4KTtcbiAgcmV0dXJuIGludCAmJiBpbnQuZm4gPT09ICdSZWYnICYmIGludC5hcmdzID09PSAnQVdTOjpOb1ZhbHVlJztcbn1cblxuaW50ZXJmYWNlIEludHJpbnNpYyB7XG4gIGZuOiBzdHJpbmc7XG4gIGFyZ3M6IGFueTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeComparator = makeComparator;\nexports.dropIfEmpty = dropIfEmpty;\nexports.deepRemoveUndefined = deepRemoveUndefined;\nexports.flatMap = flatMap;\n/**\n * Turn a (multi-key) extraction function into a comparator for use in Array.sort()\n */\nfunction makeComparator(keyFn) {\n return (a, b) => {\n const keyA = keyFn(a);\n const keyB = keyFn(b);\n const len = Math.min(keyA.length, keyB.length);\n for (let i = 0; i < len; i++) {\n const c = compare(keyA[i], keyB[i]);\n if (c !== 0) {\n return c;\n }\n }\n // Arrays are the same up to the min length -- shorter array sorts first\n return keyA.length - keyB.length;\n };\n}\nfunction compare(a, b) {\n if (a < b) {\n return -1;\n }\n if (b < a) {\n return 1;\n }\n return 0;\n}\nfunction dropIfEmpty(xs) {\n return xs.length > 0 ? xs : undefined;\n}\nfunction deepRemoveUndefined(x) {\n if (typeof x === undefined || x === null) {\n return x;\n }\n if (Array.isArray(x)) {\n return x.map(deepRemoveUndefined);\n }\n if (typeof x === 'object') {\n for (const [key, value] of Object.entries(x)) {\n x[key] = deepRemoveUndefined(value);\n if (x[key] === undefined) {\n delete x[key];\n }\n }\n return x;\n }\n return x;\n}\nfunction flatMap(xs, f) {\n const ret = new Array();\n for (const x of xs) {\n ret.push(...f(x));\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSx3Q0FnQkM7QUFZRCxrQ0FFQztBQUVELGtEQWlCQztBQUVELDBCQU1DO0FBNUREOztHQUVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFPLEtBQW9CO0lBQ3ZELE9BQU8sQ0FBQyxDQUFJLEVBQUUsQ0FBSSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztRQUNILENBQUM7UUFFRCx3RUFBd0U7UUFDeEUsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFJLENBQUksRUFBRSxDQUFJO0lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBSSxFQUFPO0lBQ3BDLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxDQUFNO0lBQ3hDLElBQUksT0FBTyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFnQixPQUFPLENBQU8sRUFBTyxFQUFFLENBQWdCO0lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHVybiBhIChtdWx0aS1rZXkpIGV4dHJhY3Rpb24gZnVuY3Rpb24gaW50byBhIGNvbXBhcmF0b3IgZm9yIHVzZSBpbiBBcnJheS5zb3J0KClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDb21wYXJhdG9yPFQsIFU+KGtleUZuOiAoeDogVCkgPT4gVVtdKSB7XG4gIHJldHVybiAoYTogVCwgYjogVCkgPT4ge1xuICAgIGNvbnN0IGtleUEgPSBrZXlGbihhKTtcbiAgICBjb25zdCBrZXlCID0ga2V5Rm4oYik7XG4gICAgY29uc3QgbGVuID0gTWF0aC5taW4oa2V5QS5sZW5ndGgsIGtleUIubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGMgPSBjb21wYXJlKGtleUFbaV0sIGtleUJbaV0pO1xuICAgICAgaWYgKGMgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQXJyYXlzIGFyZSB0aGUgc2FtZSB1cCB0byB0aGUgbWluIGxlbmd0aCAtLSBzaG9ydGVyIGFycmF5IHNvcnRzIGZpcnN0XG4gICAgcmV0dXJuIGtleUEubGVuZ3RoIC0ga2V5Qi5sZW5ndGg7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmU8VD4oYTogVCwgYjogVCkge1xuICBpZiAoYSA8IGIpIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgaWYgKGIgPCBhKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkcm9wSWZFbXB0eTxUPih4czogVFtdKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHhzLmxlbmd0aCA+IDAgPyB4cyA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBSZW1vdmVVbmRlZmluZWQoeDogYW55KTogYW55IHtcbiAgaWYgKHR5cGVvZiB4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCkge1xuICAgIHJldHVybiB4O1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHgubWFwKGRlZXBSZW1vdmVVbmRlZmluZWQpO1xuICB9XG4gIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh4KSkge1xuICAgICAgeFtrZXldID0gZGVlcFJlbW92ZVVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgICBpZiAoeFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGVsZXRlIHhba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHg7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0TWFwPFQsIFU+KHhzOiBUW10sIGY6ICh4OiBUKSA9PiBVW10pOiBVW10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goLi4uZih4KSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==","function _aws_cdk_cx_api_VpcSubnetGroupType(p) {\n}\nfunction _aws_cdk_cx_api_VpcSubnet(p) {\n}\nfunction _aws_cdk_cx_api_VpcSubnetGroup(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (p.subnets != null)\n for (const o of p.subnets)\n if (!visitedObjects.has(o))\n _aws_cdk_cx_api_VpcSubnet(o);\n if (!visitedObjects.has(p.type))\n _aws_cdk_cx_api_VpcSubnetGroupType(p.type);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_VpcContextResponse(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (p.subnetGroups != null)\n for (const o of p.subnetGroups)\n if (!visitedObjects.has(o))\n _aws_cdk_cx_api_VpcSubnetGroup(o);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_LoadBalancerIpAddressType(p) {\n}\nfunction _aws_cdk_cx_api_LoadBalancerContextResponse(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (!visitedObjects.has(p.ipAddressType))\n _aws_cdk_cx_api_LoadBalancerIpAddressType(p.ipAddressType);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_LoadBalancerListenerContextResponse(p) {\n}\nfunction _aws_cdk_cx_api_EndpointServiceAvailabilityZonesContextQuery(p) {\n}\nfunction _aws_cdk_cx_api_SecurityGroupContextResponse(p) {\n}\nfunction _aws_cdk_cx_api_KeyContextResponse(p) {\n}\nfunction _aws_cdk_cx_api_AwsCloudFormationStackProperties(p) {\n}\nfunction _aws_cdk_cx_api_CloudArtifact(p) {\n}\nfunction _aws_cdk_cx_api_AssetManifestArtifact(p) {\n}\nfunction _aws_cdk_cx_api_CloudFormationStackArtifact(p) {\n}\nfunction _aws_cdk_cx_api_TreeCloudArtifact(p) {\n}\nfunction _aws_cdk_cx_api_NestedCloudAssemblyArtifact(p) {\n}\nfunction _aws_cdk_cx_api_CloudAssembly(p) {\n}\nfunction _aws_cdk_cx_api_CloudAssemblyBuilderProps(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (!visitedObjects.has(p.parentBuilder))\n _aws_cdk_cx_api_CloudAssemblyBuilder(p.parentBuilder);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_CloudAssemblyBuilder(p) {\n}\nfunction _aws_cdk_cx_api_RuntimeInfo(p) {\n}\nfunction _aws_cdk_cx_api_MetadataEntry(p) {\n}\nfunction _aws_cdk_cx_api_MissingContext(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (\"key\" in p)\n print(\"@aws-cdk/cx-api.MissingContext#key\", \"moved to package 'cloud-assembly-schema'\");\n if (\"props\" in p)\n print(\"@aws-cdk/cx-api.MissingContext#props\", \"moved to package 'cloud-assembly-schema'\");\n if (\"provider\" in p)\n print(\"@aws-cdk/cx-api.MissingContext#provider\", \"moved to package 'cloud-assembly-schema'\");\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_AssemblyBuildOptions(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (\"runtimeInfo\" in p)\n print(\"@aws-cdk/cx-api.AssemblyBuildOptions#runtimeInfo\", \"All template modifications that should result from this should\\nhave already been inserted into the template.\");\n if (!visitedObjects.has(p.runtimeInfo))\n _aws_cdk_cx_api_RuntimeInfo(p.runtimeInfo);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_Environment(p) {\n}\nfunction _aws_cdk_cx_api_EnvironmentUtils(p) {\n}\nfunction _aws_cdk_cx_api_SynthesisMessageLevel(p) {\n}\nfunction _aws_cdk_cx_api_MetadataEntryResult(p) {\n}\nfunction _aws_cdk_cx_api_SynthesisMessage(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (!visitedObjects.has(p.level))\n _aws_cdk_cx_api_SynthesisMessageLevel(p.level);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_EnvironmentPlaceholders(p) {\n}\nfunction _aws_cdk_cx_api_EnvironmentPlaceholderValues(p) {\n}\nfunction _aws_cdk_cx_api_IEnvironmentPlaceholderProvider(p) {\n}\nfunction print(name, deprecationMessage) {\n const deprecated = process.env.JSII_DEPRECATED;\n const deprecationMode = [\"warn\", \"fail\", \"quiet\"].includes(deprecated) ? deprecated : \"warn\";\n const message = `${name} is deprecated.\\n ${deprecationMessage.trim()}\\n This API will be removed in the next major release.`;\n switch (deprecationMode) {\n case \"fail\":\n throw new DeprecationError(message);\n case \"warn\":\n console.warn(\"[WARNING]\", message);\n break;\n }\n}\nfunction getPropertyDescriptor(obj, prop) {\n const descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n if (descriptor) {\n return descriptor;\n }\n const proto = Object.getPrototypeOf(obj);\n const prototypeDescriptor = proto && getPropertyDescriptor(proto, prop);\n if (prototypeDescriptor) {\n return prototypeDescriptor;\n }\n return {};\n}\nconst visitedObjects = new Set();\nclass DeprecationError extends Error {\n constructor(...args) {\n super(...args);\n Object.defineProperty(this, \"name\", {\n configurable: false,\n enumerable: true,\n value: \"DeprecationError\",\n writable: false,\n });\n }\n}\nmodule.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_cx_api_VpcSubnetGroupType, _aws_cdk_cx_api_VpcSubnet, _aws_cdk_cx_api_VpcSubnetGroup, _aws_cdk_cx_api_VpcContextResponse, _aws_cdk_cx_api_LoadBalancerIpAddressType, _aws_cdk_cx_api_LoadBalancerContextResponse, _aws_cdk_cx_api_LoadBalancerListenerContextResponse, _aws_cdk_cx_api_EndpointServiceAvailabilityZonesContextQuery, _aws_cdk_cx_api_SecurityGroupContextResponse, _aws_cdk_cx_api_KeyContextResponse, _aws_cdk_cx_api_AwsCloudFormationStackProperties, _aws_cdk_cx_api_CloudArtifact, _aws_cdk_cx_api_AssetManifestArtifact, _aws_cdk_cx_api_CloudFormationStackArtifact, _aws_cdk_cx_api_TreeCloudArtifact, _aws_cdk_cx_api_NestedCloudAssemblyArtifact, _aws_cdk_cx_api_CloudAssembly, _aws_cdk_cx_api_CloudAssemblyBuilderProps, _aws_cdk_cx_api_CloudAssemblyBuilder, _aws_cdk_cx_api_RuntimeInfo, _aws_cdk_cx_api_MetadataEntry, _aws_cdk_cx_api_MissingContext, _aws_cdk_cx_api_AssemblyBuildOptions, _aws_cdk_cx_api_Environment, _aws_cdk_cx_api_EnvironmentUtils, _aws_cdk_cx_api_SynthesisMessageLevel, _aws_cdk_cx_api_MetadataEntryResult, _aws_cdk_cx_api_SynthesisMessage, _aws_cdk_cx_api_EnvironmentPlaceholders, _aws_cdk_cx_api_EnvironmentPlaceholderValues, _aws_cdk_cx_api_IEnvironmentPlaceholderProvider };\n","\"use strict\";\n// --------------------------------------------------------------------------------\n// This file declares context keys that are used by the CLI to control the\n// behavior of CDK apps. Contrary to feature flags (which are defined under\n// `features.ts`) these options are not bound to be removed in the next major\n// version.\n// --------------------------------------------------------------------------------\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BUNDLING_STACKS = exports.DISABLE_LOGICAL_ID_METADATA = exports.DISABLE_METADATA_STACK_TRACE = exports.DISABLE_ASSET_STAGING_CONTEXT = exports.ANALYTICS_REPORTING_ENABLED_CONTEXT = exports.PATH_METADATA_ENABLE_CONTEXT = void 0;\n/**\n * Enables the embedding of the \"aws:cdk:path\" in CloudFormation template metadata.\n */\nexports.PATH_METADATA_ENABLE_CONTEXT = 'aws:cdk:enable-path-metadata';\n/**\n * Enable the collection and reporting of version information.\n */\nexports.ANALYTICS_REPORTING_ENABLED_CONTEXT = 'aws:cdk:version-reporting';\n/**\n * Disable asset staging (for use with SAM CLI).\n *\n * Disabling asset staging means that copyable assets will not be copied to the\n * output directory and will be referenced with absolute paths.\n *\n * Not copied to the output directory: this is so users can iterate on the\n * Lambda source and run SAM CLI without having to re-run CDK (note: we\n * cannot achieve this for bundled assets, if assets are bundled they\n * will have to re-run CDK CLI to re-bundle updated versions).\n *\n * Absolute path: SAM CLI expects `cwd`-relative paths in a resource's\n * `aws:asset:path` metadata. In order to be predictable, we will always output\n * absolute paths.\n */\nexports.DISABLE_ASSET_STAGING_CONTEXT = 'aws:cdk:disable-asset-staging';\n/**\n * If this context key is set, the CDK will stage assets under the specified\n * directory. Otherwise, assets will not be staged.\n * Omits stack traces from construct metadata entries.\n */\nexports.DISABLE_METADATA_STACK_TRACE = 'aws:cdk:disable-stack-trace';\n/**\n * If this context key is set, the CDK will not store logical ID\n * metadata in the manifest.\n */\nexports.DISABLE_LOGICAL_ID_METADATA = 'aws:cdk:disable-logicalId-metadata';\n/**\n * Run bundling for stacks specified in this context key\n */\nexports.BUNDLING_STACKS = 'aws:cdk:bundling-stacks';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtRkFBbUY7QUFDbkYsMEVBQTBFO0FBQzFFLDJFQUEyRTtBQUMzRSw2RUFBNkU7QUFDN0UsV0FBVztBQUNYLG1GQUFtRjs7O0FBRW5GOztHQUVHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBRyw4QkFBOEIsQ0FBQztBQUUzRTs7R0FFRztBQUNVLFFBQUEsbUNBQW1DLEdBQUcsMkJBQTJCLENBQUM7QUFFL0U7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLCtCQUErQixDQUFDO0FBRTdFOzs7O0dBSUc7QUFDVSxRQUFBLDRCQUE0QixHQUFHLDZCQUE2QixDQUFDO0FBRTFFOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsb0NBQW9DLENBQUM7QUFFaEY7O0dBRUc7QUFDVSxRQUFBLGVBQWUsR0FBRyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgZGVjbGFyZXMgY29udGV4dCBrZXlzIHRoYXQgYXJlIHVzZWQgYnkgdGhlIENMSSB0byBjb250cm9sIHRoZVxuLy8gYmVoYXZpb3Igb2YgQ0RLIGFwcHMuIENvbnRyYXJ5IHRvIGZlYXR1cmUgZmxhZ3MgKHdoaWNoIGFyZSBkZWZpbmVkIHVuZGVyXG4vLyBgZmVhdHVyZXMudHNgKSB0aGVzZSBvcHRpb25zIGFyZSBub3QgYm91bmQgdG8gYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvclxuLy8gdmVyc2lvbi5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICovXG5leHBvcnQgY29uc3QgUEFUSF9NRVRBREFUQV9FTkFCTEVfQ09OVEVYVCA9ICdhd3M6Y2RrOmVuYWJsZS1wYXRoLW1ldGFkYXRhJztcblxuLyoqXG4gKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZyBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgQU5BTFlUSUNTX1JFUE9SVElOR19FTkFCTEVEX0NPTlRFWFQgPSAnYXdzOmNkazp2ZXJzaW9uLXJlcG9ydGluZyc7XG5cbi8qKlxuICogRGlzYWJsZSBhc3NldCBzdGFnaW5nIChmb3IgdXNlIHdpdGggU0FNIENMSSkuXG4gKlxuICogRGlzYWJsaW5nIGFzc2V0IHN0YWdpbmcgbWVhbnMgdGhhdCBjb3B5YWJsZSBhc3NldHMgd2lsbCBub3QgYmUgY29waWVkIHRvIHRoZVxuICogb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgcGF0aHMuXG4gKlxuICogTm90IGNvcGllZCB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeTogdGhpcyBpcyBzbyB1c2VycyBjYW4gaXRlcmF0ZSBvbiB0aGVcbiAqIExhbWJkYSBzb3VyY2UgYW5kIHJ1biBTQU0gQ0xJIHdpdGhvdXQgaGF2aW5nIHRvIHJlLXJ1biBDREsgKG5vdGU6IHdlXG4gKiBjYW5ub3QgYWNoaWV2ZSB0aGlzIGZvciBidW5kbGVkIGFzc2V0cywgaWYgYXNzZXRzIGFyZSBidW5kbGVkIHRoZXlcbiAqIHdpbGwgaGF2ZSB0byByZS1ydW4gQ0RLIENMSSB0byByZS1idW5kbGUgdXBkYXRlZCB2ZXJzaW9ucykuXG4gKlxuICogQWJzb2x1dGUgcGF0aDogU0FNIENMSSBleHBlY3RzIGBjd2RgLXJlbGF0aXZlIHBhdGhzIGluIGEgcmVzb3VyY2Unc1xuICogYGF3czphc3NldDpwYXRoYCBtZXRhZGF0YS4gSW4gb3JkZXIgdG8gYmUgcHJlZGljdGFibGUsIHdlIHdpbGwgYWx3YXlzIG91dHB1dFxuICogYWJzb2x1dGUgcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBESVNBQkxFX0FTU0VUX1NUQUdJTkdfQ09OVEVYVCA9ICdhd3M6Y2RrOmRpc2FibGUtYXNzZXQtc3RhZ2luZyc7XG5cbi8qKlxuICogSWYgdGhpcyBjb250ZXh0IGtleSBpcyBzZXQsIHRoZSBDREsgd2lsbCBzdGFnZSBhc3NldHMgdW5kZXIgdGhlIHNwZWNpZmllZFxuICogZGlyZWN0b3J5LiBPdGhlcndpc2UsIGFzc2V0cyB3aWxsIG5vdCBiZSBzdGFnZWQuXG4gKiBPbWl0cyBzdGFjayB0cmFjZXMgZnJvbSBjb25zdHJ1Y3QgbWV0YWRhdGEgZW50cmllcy5cbiAqL1xuZXhwb3J0IGNvbnN0IERJU0FCTEVfTUVUQURBVEFfU1RBQ0tfVFJBQ0UgPSAnYXdzOmNkazpkaXNhYmxlLXN0YWNrLXRyYWNlJztcblxuLyoqXG4gKiBJZiB0aGlzIGNvbnRleHQga2V5IGlzIHNldCwgdGhlIENESyB3aWxsIG5vdCBzdG9yZSBsb2dpY2FsIElEXG4gKiBtZXRhZGF0YSBpbiB0aGUgbWFuaWZlc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBESVNBQkxFX0xPR0lDQUxfSURfTUVUQURBVEEgPSAnYXdzOmNkazpkaXNhYmxlLWxvZ2ljYWxJZC1tZXRhZGF0YSc7XG5cbi8qKlxuICogUnVuIGJ1bmRsaW5nIGZvciBzdGFja3Mgc3BlY2lmaWVkIGluIHRoaXMgY29udGV4dCBrZXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJVTkRMSU5HX1NUQUNLUyA9ICdhd3M6Y2RrOmJ1bmRsaW5nLXN0YWNrcyc7XG4iXX0=","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst ASSET_MANIFEST_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.AssetManifestArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass AssetManifestArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `AssetManifestArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `AssetManifestArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isAssetManifestArtifact(art) {\n return art && typeof art === 'object' && art[ASSET_MANIFEST_ARTIFACT_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, AssetManifestArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid AssetManifestArtifact. Missing \"file\" property');\n }\n this.file = path.resolve(this.assembly.directory, properties.file);\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n }\n /**\n * The Asset Manifest contents\n */\n get contents() {\n if (this._contents !== undefined) {\n return this._contents;\n }\n const contents = this._contents = JSON.parse(fs.readFileSync(this.file, 'utf-8'));\n return contents;\n }\n}\nexports.AssetManifestArtifact = AssetManifestArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nAssetManifestArtifact[_a] = { fqn: \"@aws-cdk/cx-api.AssetManifestArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'AssetManifestArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(AssetManifestArtifact.prototype, ASSET_MANIFEST_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLHNEQUFrRDtBQUVsRCw0Q0FBc0Q7QUFFdEQsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFeEY7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLDhCQUFhO0lBQ3REOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFhLEdBQVE7UUFDeEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzNFO0lBcUJELFlBQVksUUFBdUIsRUFBRSxJQUFZLEVBQUUsUUFBbUM7UUFDcEYsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7Ozs7OzsrQ0ExQ3ZCLHFCQUFxQjs7OztRQTRDOUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQXFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksMEJBQWtCLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUN6RixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsVUFBVSxDQUFDLDZCQUE2QixDQUFDO1FBQzlFLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxVQUFVLENBQUMsaUNBQWlDLENBQUM7S0FDdkY7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxRQUFRLENBQUM7S0FDakI7O0FBL0RILHNEQWdFQzs7O0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSwyQkFBMkIsRUFBRTtJQUNsRixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4uL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuLi9wcml2YXRlL2Vycm9yJztcblxuY29uc3QgQVNTRVRfTUFOSUZFU1RfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCcpO1xuXG4vKipcbiAqIEFzc2V0IG1hbmlmZXN0IGlzIGEgZGVzY3JpcHRpb24gb2YgYSBzZXQgb2YgYXNzZXRzIHdoaWNoIG5lZWQgdG8gYmUgYnVpbHQgYW5kIHB1Ymxpc2hlZFxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRNYW5pZmVzdEFydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgQXNzZXRNYW5pZmVzdEFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBBc3NldE1hbmlmZXN0QXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh0aGlzOiB2b2lkLCBhcnQ6IGFueSk6IGFydCBpcyBBc3NldE1hbmlmZXN0QXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgYXJ0W0FTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTV07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgYXNzZXQgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogTmFtZSBvZiBTU00gcGFyYW1ldGVyIHdpdGggYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEaXNjb3ZlciBTU00gcGFyYW1ldGVyIGJ5IHJlYWRpbmcgc3RhY2tcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29udGVudHM/OiBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0O1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0UHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMuZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBBc3NldE1hbmlmZXN0QXJ0aWZhY3QuIE1pc3NpbmcgXCJmaWxlXCIgcHJvcGVydHknKTtcbiAgICB9XG4gICAgdGhpcy5maWxlID0gcGF0aC5yZXNvbHZlKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCBwcm9wZXJ0aWVzLmZpbGUpO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFzc2V0IE1hbmlmZXN0IGNvbnRlbnRzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRlbnRzKCk6IGN4c2NoZW1hLkFzc2V0TWFuaWZlc3Qge1xuICAgIGlmICh0aGlzLl9jb250ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29udGVudHM7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudHMgPSB0aGlzLl9jb250ZW50cyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHRoaXMuZmlsZSwgJ3V0Zi04JykpO1xuICAgIHJldHVybiBjb250ZW50cztcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnQXNzZXRNYW5pZmVzdEFydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEFzc2V0TWFuaWZlc3RBcnRpZmFjdC5wcm90b3R5cGUsIEFTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationStackArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst environment_1 = require(\"../environment\");\nconst error_1 = require(\"../private/error\");\nconst CLOUDFORMATION_STACK_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.CloudFormationStackArtifact');\nclass CloudFormationStackArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `CloudFormationStackArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `CloudFormationStackArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isCloudFormationStackArtifact(art) {\n return art && typeof art === 'object' && art[CLOUDFORMATION_STACK_ARTIFACT_SYM];\n }\n constructor(assembly, artifactId, artifact) {\n super(assembly, artifactId, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, CloudFormationStackArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n if (!properties.templateFile) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing \"templateFile\" property in cloud assembly manifest');\n }\n if (!artifact.environment) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing environment');\n }\n this.environment = environment_1.EnvironmentUtils.parse(artifact.environment);\n this.templateFile = properties.templateFile;\n this.parameters = properties.parameters ?? {};\n // We get the tags from 'properties' if available (cloud assembly format >= 6.0.0), otherwise\n // from the stack metadata\n this.tags = properties.tags ?? this.tagsFromMetadata();\n this.notificationArns = properties.notificationArns;\n this.assumeRoleArn = properties.assumeRoleArn;\n this.assumeRoleExternalId = properties.assumeRoleExternalId;\n this.assumeRoleAdditionalOptions = properties.assumeRoleAdditionalOptions;\n this.cloudFormationExecutionRoleArn = properties.cloudFormationExecutionRoleArn;\n this.stackTemplateAssetObjectUrl = properties.stackTemplateAssetObjectUrl;\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n this.terminationProtection = properties.terminationProtection;\n this.validateOnSynth = properties.validateOnSynth;\n this.lookupRole = properties.lookupRole;\n this.stackName = properties.stackName || artifactId;\n this.assets = this.findMetadataByType(cxschema.ArtifactMetadataEntryType.ASSET).map(e => e.data);\n this.displayName = this.stackName === artifactId\n ? this.hierarchicalId\n : `${this.hierarchicalId} (${this.stackName})`;\n this.name = this.stackName; // backwards compat\n this.originalName = this.stackName;\n }\n /**\n * Full path to the template file\n */\n get templateFullPath() {\n return path.join(this.assembly.directory, this.templateFile);\n }\n /**\n * The CloudFormation template for this stack.\n */\n get template() {\n if (this._template === undefined) {\n this._template = JSON.parse(fs.readFileSync(this.templateFullPath, 'utf-8'));\n }\n return this._template;\n }\n tagsFromMetadata() {\n const ret = {};\n for (const metadataEntry of this.findMetadataByType(cxschema.ArtifactMetadataEntryType.STACK_TAGS)) {\n for (const tag of (metadataEntry.data ?? [])) {\n ret[tag.key] = tag.value;\n }\n }\n return ret;\n }\n}\nexports.CloudFormationStackArtifact = CloudFormationStackArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nCloudFormationStackArtifact[_a] = { fqn: \"@aws-cdk/cx-api.CloudFormationStackArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'CloudFormationStackArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(CloudFormationStackArtifact.prototype, CLOUDFORMATION_STACK_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDJEQUEyRDtBQUMzRCxzREFBa0Q7QUFFbEQsZ0RBQStEO0FBQy9ELDRDQUFzRDtBQUN0RCxNQUFNLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUVwRyxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0tBQ2pGO0lBbUlELFlBQVksUUFBdUIsRUFBRSxVQUFrQixFQUFFLFFBQW1DO1FBQzFGLEtBQUssQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDOzs7Ozs7K0NBeEo3QiwyQkFBMkI7Ozs7UUEwSnBDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUE4QyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLDBCQUFrQixDQUFDLG1HQUFtRyxDQUFDLENBQUM7UUFDcEksQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLDREQUE0RCxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJ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QUMzQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ1o7O0FBeE5ILGtFQXlOQzs7O0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRTtJQUM5RixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4uL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB0eXBlIHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEVudmlyb25tZW50LCBFbnZpcm9ubWVudFV0aWxzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vcHJpdmF0ZS9lcnJvcic7XG5jb25zdCBDTE9VREZPUk1BVElPTl9TVEFDS19BUlRJRkFDVF9TWU0gPSBTeW1ib2wuZm9yKCdAYXdzLWNkay9jeC1hcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0Jyk7XG5cbmV4cG9ydCBjbGFzcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgZXh0ZW5kcyBDbG91ZEFydGlmYWN0IHtcbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgYXJ0YCBpcyBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgaW5zdGVhZCBvZiBgaW5zdGFuY2VvZmAgdG8gcHJvcGVybHkgZGV0ZWN0IGBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgXG4gICAqIGluc3RhbmNlcywgZXZlbiB3aGVuIHRoZSBjb25zdHJ1Y3QgbGlicmFyeSBpcyBzeW1saW5rZWQuXG4gICAqXG4gICAqIEV4cGxhbmF0aW9uOiBpbiBKYXZhU2NyaXB0LCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgIGxpYnJhcnkgb25cbiAgICogZGlzayBhcmUgc2VlbiBhcyBpbmRlcGVuZGVudCwgY29tcGxldGVseSBkaWZmZXJlbnQgbGlicmFyaWVzLiBBcyBhXG4gICAqIGNvbnNlcXVlbmNlLCB0aGUgY2xhc3MgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgaW4gZWFjaCBjb3B5IG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5XG4gICAqIGlzIHNlZW4gYXMgYSBkaWZmZXJlbnQgY2xhc3MsIGFuZCBhbiBpbnN0YW5jZSBvZiBvbmUgY2xhc3Mgd2lsbCBub3QgdGVzdCBhc1xuICAgKiBgaW5zdGFuY2VvZmAgdGhlIG90aGVyIGNsYXNzLiBgbnBtIGluc3RhbGxgIHdpbGwgbm90IGNyZWF0ZSBpbnN0YWxsYXRpb25zXG4gICAqIGxpa2UgdGhpcywgYnV0IHVzZXJzIG1heSBtYW51YWxseSBzeW1saW5rIGNvbnN0cnVjdCBsaWJyYXJpZXMgdG9nZXRoZXIgb3JcbiAgICogdXNlIGEgbW9ub3JlcG8gdG9vbDogaW4gdGhvc2UgY2FzZXMsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWBcbiAgICogbGlicmFyeSBjYW4gYmUgYWNjaWRlbnRhbGx5IGluc3RhbGxlZCwgYW5kIGBpbnN0YW5jZW9mYCB3aWxsIGJlaGF2ZVxuICAgKiB1bnByZWRpY3RhYmx5LiBJdCBpcyBzYWZlc3QgdG8gYXZvaWQgdXNpbmcgYGluc3RhbmNlb2ZgLCBhbmQgdXNpbmdcbiAgICogdGhpcyB0eXBlLXRlc3RpbmcgbWV0aG9kIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGFydDogYW55KTogYXJ0IGlzIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB7XG4gICAgcmV0dXJuIGFydCAmJiB0eXBlb2YgYXJ0ID09PSAnb2JqZWN0JyAmJiBhcnRbQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZUZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIG5hbWUgYXMgZGVmaW5lZCBpbiB0aGUgQ0RLIGFwcC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvcmlnaW5hbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW55IGFzc2V0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldHM6IGN4c2NoZW1hLkFzc2V0TWV0YWRhdGFFbnRyeVtdO1xuXG4gIC8qKlxuICAgKiBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2xvdWRGb3JtYXRpb24gdGFncyB0byBwYXNzIHRvIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWdzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNOUyBUb3BpY3MgdGhhdCB3aWxsIHJlY2VpdmUgc3RhY2sgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIG5hbWUgb2YgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoaXMgc3RhY2suIFNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdXNlclxuICAgKiBpbnRlcmZhY2VzLiBJZiB0aGUgc3RhY2tOYW1lIGhhcyBub3QgYmVlbiBzZXQgZXhwbGljaXRseSwgb3IgaGFzIGJlZW4gc2V0XG4gICAqIHRvIGFydGlmYWN0SWQsIGl0IHdpbGwgcmV0dXJuIHRoZSBoaWVyYXJjaGljYWxJZCBvZiB0aGUgc3RhY2suIE90aGVyd2lzZSxcbiAgICogaXQgd2lsbCByZXR1cm4gc29tZXRoaW5nIGxpa2UgXCI8aGllcmFyY2hpY2FsSWQ+ICg8c3RhY2tOYW1lPilcIlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoaXMgc3RhY2suXG4gICAqIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gYHN0YWNrTmFtZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBpbnRvIHdoaWNoIHRvIGRlcGxveSB0aGlzIGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcblxuICAvKipcbiAgICogVGhlIHJvbGUgdGhhdCBuZWVkcyB0byBiZSBhc3N1bWVkIHRvIGRlcGxveSB0aGUgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0ZXJuYWwgSUQgdG8gdXNlIHdoZW4gYXNzdW1pbmcgcm9sZSBmb3IgY2xvdWRmb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlIGZvciBjbG91ZGZvcm1hdGlvbiBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogLSBgUm9sZUFybmAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUFybmAgcHJvcGVydHkgaW5zdGVhZC5cbiAgICogLSBgRXh0ZXJuYWxJZGAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUV4dGVybmFsSWRgIGluc3RlYWQuXG4gICAqIC0gYFRyYW5zaXRpdmVUYWdLZXlzYCBkZWZhdWx0cyB0byB1c2UgYWxsIGtleXMgKGlmIGFueSkgc3BlY2lmaWVkIGluIGBUYWdzYC4gRS5nLCBhbGwgdGFncyBhcmUgdHJhbnNpdGl2ZSBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgaXMgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIHBhc3NlZCAoY3VycmVudGx5IGFzc3VtZWQgcm9sZS9jcmVkZW50aWFscyBhcmUgdXNlZClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRvIHVzZSB0byBsb29rIHVwIHZhbHVlcyBmcm9tIHRoZSB0YXJnZXQgQVdTIGFjY291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9va3VwUm9sZT86IGN4c2NoZW1hLkJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBzdGFjayB0ZW1wbGF0ZSBoYXMgYWxyZWFkeSBiZWVuIGluY2x1ZGVkIGluIHRoZSBhc3NldCBtYW5pZmVzdCwgaXRzIGFzc2V0IFVSTFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCB1cGxvYWRlZCB5ZXQsIHVwbG9hZCBqdXN0IGJlZm9yZSBkZXBsb3lpbmdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgU1NNIHBhcmFtZXRlciB3aXRoIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGlzY292ZXIgU1NNIHBhcmFtZXRlciBieSByZWFkaW5nIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RhY2sgc2hvdWxkIGJlIHZhbGlkYXRlZCBieSB0aGUgQ0xJIGFmdGVyIHN5bnRoZXNpc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdGVPblN5bnRoPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF90ZW1wbGF0ZTogYW55IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBhcnRpZmFjdElkOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIGFydGlmYWN0SWQsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMudGVtcGxhdGVGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbnZhbGlkIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0LiBNaXNzaW5nIFwidGVtcGxhdGVGaWxlXCIgcHJvcGVydHkgaW4gY2xvdWQgYXNzZW1ibHkgbWFuaWZlc3QnKTtcbiAgICB9XG4gICAgaWYgKCFhcnRpZmFjdC5lbnZpcm9ubWVudCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdC4gTWlzc2luZyBlbnZpcm9ubWVudCcpO1xuICAgIH1cbiAgICB0aGlzLmVudmlyb25tZW50ID0gRW52aXJvbm1lbnRVdGlscy5wYXJzZShhcnRpZmFjdC5lbnZpcm9ubWVudCk7XG4gICAgdGhpcy50ZW1wbGF0ZUZpbGUgPSBwcm9wZXJ0aWVzLnRlbXBsYXRlRmlsZTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwcm9wZXJ0aWVzLnBhcmFtZXRlcnMgPz8ge307XG5cbiAgICAvLyBXZSBnZXQgdGhlIHRhZ3MgZnJvbSAncHJvcGVydGllcycgaWYgYXZhaWxhYmxlIChjbG91ZCBhc3NlbWJseSBmb3JtYXQgPj0gNi4wLjApLCBvdGhlcndpc2VcbiAgICAvLyBmcm9tIHRoZSBzdGFjayBtZXRhZGF0YVxuICAgIHRoaXMudGFncyA9IHByb3BlcnRpZXMudGFncyA/PyB0aGlzLnRhZ3NGcm9tTWV0YWRhdGEoKTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkFybnMgPSBwcm9wZXJ0aWVzLm5vdGlmaWNhdGlvbkFybnM7XG4gICAgdGhpcy5hc3N1bWVSb2xlQXJuID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQXJuO1xuICAgIHRoaXMuYXNzdW1lUm9sZUV4dGVybmFsSWQgPSBwcm9wZXJ0aWVzLmFzc3VtZVJvbGVFeHRlcm5hbElkO1xuICAgIHRoaXMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gICAgdGhpcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4gPSBwcm9wZXJ0aWVzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybjtcbiAgICB0aGlzLnN0YWNrVGVtcGxhdGVBc3NldE9iamVjdFVybCA9IHByb3BlcnRpZXMuc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gICAgdGhpcy50ZXJtaW5hdGlvblByb3RlY3Rpb24gPSBwcm9wZXJ0aWVzLnRlcm1pbmF0aW9uUHJvdGVjdGlvbjtcbiAgICB0aGlzLnZhbGlkYXRlT25TeW50aCA9IHByb3BlcnRpZXMudmFsaWRhdGVPblN5bnRoO1xuICAgIHRoaXMubG9va3VwUm9sZSA9IHByb3BlcnRpZXMubG9va3VwUm9sZTtcblxuICAgIHRoaXMuc3RhY2tOYW1lID0gcHJvcGVydGllcy5zdGFja05hbWUgfHwgYXJ0aWZhY3RJZDtcbiAgICB0aGlzLmFzc2V0cyA9IHRoaXMuZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuQVNTRVQpLm1hcChlID0+IGUuZGF0YSBhcyBjeHNjaGVtYS5Bc3NldE1ldGFkYXRhRW50cnkpO1xuXG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMuc3RhY2tOYW1lID09PSBhcnRpZmFjdElkXG4gICAgICA/IHRoaXMuaGllcmFyY2hpY2FsSWRcbiAgICAgIDogYCR7dGhpcy5oaWVyYXJjaGljYWxJZH0gKCR7dGhpcy5zdGFja05hbWV9KWA7XG5cbiAgICB0aGlzLm5hbWUgPSB0aGlzLnN0YWNrTmFtZTsgLy8gYmFja3dhcmRzIGNvbXBhdFxuICAgIHRoaXMub3JpZ2luYWxOYW1lID0gdGhpcy5zdGFja05hbWU7XG4gIH1cblxuICAvKipcbiAgICogRnVsbCBwYXRoIHRvIHRoZSB0ZW1wbGF0ZSBmaWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRlbXBsYXRlRnVsbFBhdGgoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGhpcy50ZW1wbGF0ZUZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogYW55IHtcbiAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdGVtcGxhdGUgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLnRlbXBsYXRlRnVsbFBhdGgsICd1dGYtOCcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSB0YWdzRnJvbU1ldGFkYXRhKCkge1xuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgbWV0YWRhdGFFbnRyeSBvZiB0aGlzLmZpbmRNZXRhZGF0YUJ5VHlwZShjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLlNUQUNLX1RBR1MpKSB7XG4gICAgICBmb3IgKGNvbnN0IHRhZyBvZiAobWV0YWRhdGFFbnRyeS5kYXRhID8/IFtdKSBhcyBjeHNjaGVtYS5TdGFja1RhZ3NNZXRhZGF0YUVudHJ5KSB7XG4gICAgICAgIHJldFt0YWcua2V5XSA9IHRhZy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5wcm90b3R5cGUsIENMT1VERk9STUFUSU9OX1NUQUNLX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst nested_cloud_assembly_artifact_1 = require(\"./nested-cloud-assembly-artifact\");\nconst cloud_assembly_1 = require(\"../cloud-assembly\");\nconst cacheSym = Symbol();\n/**\n * The nested Assembly\n *\n * Declared in a different file to break circular dep between CloudAssembly and NestedCloudAssemblyArtifact\n */\nObject.defineProperty(nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact.prototype, 'nestedAssembly', {\n get() {\n if (!this[cacheSym]) {\n this[cacheSym] = new cloud_assembly_1.CloudAssembly(this.fullPath);\n }\n return this[cacheSym];\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5lc3RlZC1jbG91ZC1hc3NlbWJseS1hcnRpZmFjdC1hdWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxRkFBK0U7QUFDL0Usc0RBQWtEO0FBRWxELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBRTFCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDREQUEyQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtJQUM3RSxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2QjtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCB9IGZyb20gJy4vbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5cbmNvbnN0IGNhY2hlU3ltID0gU3ltYm9sKCk7XG5cbi8qKlxuICogVGhlIG5lc3RlZCBBc3NlbWJseVxuICpcbiAqIERlY2xhcmVkIGluIGEgZGlmZmVyZW50IGZpbGUgdG8gYnJlYWsgY2lyY3VsYXIgZGVwIGJldHdlZW4gQ2xvdWRBc3NlbWJseSBhbmQgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QucHJvdG90eXBlLCAnbmVzdGVkQXNzZW1ibHknLCB7XG4gIGdldCgpIHtcbiAgICBpZiAoIXRoaXNbY2FjaGVTeW1dKSB7XG4gICAgICB0aGlzW2NhY2hlU3ltXSA9IG5ldyBDbG91ZEFzc2VtYmx5KHRoaXMuZnVsbFBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpc1tjYWNoZVN5bV07XG4gIH0sXG59KTtcbiJdfQ==","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NestedCloudAssemblyArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst NESTED_CLOUD_ASSEMBLY_SYM = Symbol.for('@aws-cdk/cx-api.NestedCloudAssemblyArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass NestedCloudAssemblyArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `NestedCloudAssemblyArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `NestedCloudAssemblyArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isNestedCloudAssemblyArtifact(art) {\n return art && typeof art === 'object' && art[NESTED_CLOUD_ASSEMBLY_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, NestedCloudAssemblyArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n this.directoryName = properties.directoryName;\n this.displayName = properties.displayName ?? name;\n }\n /**\n * Full path to the nested assembly directory\n */\n get fullPath() {\n return path.join(this.assembly.directory, this.directoryName);\n }\n}\nexports.NestedCloudAssemblyArtifact = NestedCloudAssemblyArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nNestedCloudAssemblyArtifact[_a] = { fqn: \"@aws-cdk/cx-api.NestedCloudAssemblyArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'NestedCloudAssemblyArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(NestedCloudAssemblyArtifact.prototype, NESTED_CLOUD_ASSEMBLY_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDZCQUE2QjtBQUU3QixzREFBa0Q7QUFHbEQsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFNUY7O0dBRUc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQ3pFO0lBWUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzs7Ozs7OytDQWpDdkIsMkJBQTJCOzs7O1FBbUNwQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBMkMsQ0FBQztRQUM5RixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztLQUNuRDtJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDL0Q7O0FBN0NILGtFQThDQzs7O0FBV0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSx5QkFBeUIsRUFBRTtJQUN0RixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4uL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB0eXBlIHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcblxuY29uc3QgTkVTVEVEX0NMT1VEX0FTU0VNQkxZX1NZTSA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2N4LWFwaS5OZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QnKTtcblxuLyoqXG4gKiBBc3NldCBtYW5pZmVzdCBpcyBhIGRlc2NyaXB0aW9uIG9mIGEgc2V0IG9mIGFzc2V0cyB3aGljaCBuZWVkIHRvIGJlIGJ1aWx0IGFuZCBwdWJsaXNoZWRcbiAqL1xuZXhwb3J0IGNsYXNzIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCBleHRlbmRzIENsb3VkQXJ0aWZhY3Qge1xuICAvKipcbiAgICogQ2hlY2tzIGlmIGBhcnRgIGlzIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuXG4gICAqXG4gICAqIFVzZSB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGBpbnN0YW5jZW9mYCB0byBwcm9wZXJseSBkZXRlY3QgYE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdGBcbiAgICogaW5zdGFuY2VzLCBldmVuIHdoZW4gdGhlIGNvbnN0cnVjdCBsaWJyYXJ5IGlzIHN5bWxpbmtlZC5cbiAgICpcbiAgICogRXhwbGFuYXRpb246IGluIEphdmFTY3JpcHQsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeSBvblxuICAgKiBkaXNrIGFyZSBzZWVuIGFzIGluZGVwZW5kZW50LCBjb21wbGV0ZWx5IGRpZmZlcmVudCBsaWJyYXJpZXMuIEFzIGFcbiAgICogY29uc2VxdWVuY2UsIHRoZSBjbGFzcyBgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0YCBpbiBlYWNoIGNvcHkgb2YgdGhlIGBjeC1hcGlgIGxpYnJhcnlcbiAgICogaXMgc2VlbiBhcyBhIGRpZmZlcmVudCBjbGFzcywgYW5kIGFuIGluc3RhbmNlIG9mIG9uZSBjbGFzcyB3aWxsIG5vdCB0ZXN0IGFzXG4gICAqIGBpbnN0YW5jZW9mYCB0aGUgb3RoZXIgY2xhc3MuIGBucG0gaW5zdGFsbGAgd2lsbCBub3QgY3JlYXRlIGluc3RhbGxhdGlvbnNcbiAgICogbGlrZSB0aGlzLCBidXQgdXNlcnMgbWF5IG1hbnVhbGx5IHN5bWxpbmsgY29uc3RydWN0IGxpYnJhcmllcyB0b2dldGhlciBvclxuICAgKiB1c2UgYSBtb25vcmVwbyB0b29sOiBpbiB0aG9zZSBjYXNlcywgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYFxuICAgKiBsaWJyYXJ5IGNhbiBiZSBhY2NpZGVudGFsbHkgaW5zdGFsbGVkLCBhbmQgYGluc3RhbmNlb2ZgIHdpbGwgYmVoYXZlXG4gICAqIHVucHJlZGljdGFibHkuIEl0IGlzIHNhZmVzdCB0byBhdm9pZCB1c2luZyBgaW5zdGFuY2VvZmAsIGFuZCB1c2luZ1xuICAgKiB0aGlzIHR5cGUtdGVzdGluZyBtZXRob2QgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0OiBhbnkpOiBhcnQgaXMgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgICByZXR1cm4gYXJ0ICYmIHR5cGVvZiBhcnQgPT09ICdvYmplY3QnICYmIGFydFtORVNURURfQ0xPVURfQVNTRU1CTFlfU1lNXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIGFzc2V0IG1hbmlmZXN0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IG5hbWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5OZXN0ZWRDbG91ZEFzc2VtYmx5UHJvcGVydGllcztcbiAgICB0aGlzLmRpcmVjdG9yeU5hbWUgPSBwcm9wZXJ0aWVzLmRpcmVjdG9yeU5hbWU7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHByb3BlcnRpZXMuZGlzcGxheU5hbWUgPz8gbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdWxsIHBhdGggdG8gdGhlIG5lc3RlZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBnZXQgZnVsbFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCB0aGlzLmRpcmVjdG9yeU5hbWUpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgLyoqXG4gICAqIFRoZSBuZXN0ZWQgQXNzZW1ibHlcbiAgICovXG4gIHJlYWRvbmx5IG5lc3RlZEFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5O1xuXG4gIC8vIERlY2xhcmVkIGluIGEgZGlmZmVyZW50IGZpbGVcbn1cblxuLyoqXG4gKiBNYXJrIGFsbCBpbnN0YW5jZXMgb2YgJ05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCdcbiAqXG4gKiBXaHkgbm90IHB1dCB0aGlzIGluIHRoZSBjb25zdHJ1Y3Rvcj8gQmVjYXVzZSB0aGlzIGlzIGEgY2xhc3MgcHJvcGVydHksXG4gKiBub3QgYW4gaW5zdGFuY2UgcHJvcGVydHkuIEl0IGFwcGxpZXMgdG8gYWxsIGluc3RhbmNlcyBvZiB0aGUgY2xhc3MuXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QucHJvdG90eXBlLCBORVNURURfQ0xPVURfQVNTRU1CTFlfU1lNLCB7XG4gIHZhbHVlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgd3JpdGFibGU6IGZhbHNlLFxufSk7XG4iXX0=","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TreeCloudArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst TREE_CLOUD_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.TreeCloudArtifact');\nclass TreeCloudArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `TreeCloudArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `TreeCloudArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isTreeCloudArtifact(art) {\n return art && typeof art === 'object' && art[TREE_CLOUD_ARTIFACT_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, TreeCloudArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid TreeCloudArtifact. Missing \"file\" property');\n }\n this.file = properties.file;\n }\n}\nexports.TreeCloudArtifact = TreeCloudArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nTreeCloudArtifact[_a] = { fqn: \"@aws-cdk/cx-api.TreeCloudArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'TreeCloudArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(TreeCloudArtifact.prototype, TREE_CLOUD_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jbG91ZC1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUtY2xvdWQtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esc0RBQWtEO0FBRWxELDRDQUFzRDtBQUV0RCxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUVoRixNQUFhLGlCQUFrQixTQUFRLDhCQUFhO0lBQ2xEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVE7UUFDeEMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBQ3ZFO0lBSUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzs7Ozs7OytDQXpCdkIsaUJBQWlCOzs7O1FBMkIxQixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBb0MsQ0FBQztRQUN2RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7S0FDN0I7O0FBaENILDhDQWlDQzs7O0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRTtJQUMxRSxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uL3ByaXZhdGUvZXJyb3InO1xuXG5jb25zdCBUUkVFX0NMT1VEX0FSVElGQUNUX1NZTSA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2N4LWFwaS5UcmVlQ2xvdWRBcnRpZmFjdCcpO1xuXG5leHBvcnQgY2xhc3MgVHJlZUNsb3VkQXJ0aWZhY3QgZXh0ZW5kcyBDbG91ZEFydGlmYWN0IHtcbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgYXJ0YCBpcyBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgaW5zdGVhZCBvZiBgaW5zdGFuY2VvZmAgdG8gcHJvcGVybHkgZGV0ZWN0IGBUcmVlQ2xvdWRBcnRpZmFjdGBcbiAgICogaW5zdGFuY2VzLCBldmVuIHdoZW4gdGhlIGNvbnN0cnVjdCBsaWJyYXJ5IGlzIHN5bWxpbmtlZC5cbiAgICpcbiAgICogRXhwbGFuYXRpb246IGluIEphdmFTY3JpcHQsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeSBvblxuICAgKiBkaXNrIGFyZSBzZWVuIGFzIGluZGVwZW5kZW50LCBjb21wbGV0ZWx5IGRpZmZlcmVudCBsaWJyYXJpZXMuIEFzIGFcbiAgICogY29uc2VxdWVuY2UsIHRoZSBjbGFzcyBgVHJlZUNsb3VkQXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc1RyZWVDbG91ZEFydGlmYWN0KGFydDogYW55KTogYXJ0IGlzIFRyZWVDbG91ZEFydGlmYWN0IHtcbiAgICByZXR1cm4gYXJ0ICYmIHR5cGVvZiBhcnQgPT09ICdvYmplY3QnICYmIGFydFtUUkVFX0NMT1VEX0FSVElGQUNUX1NZTV07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZmlsZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5UcmVlQXJ0aWZhY3RQcm9wZXJ0aWVzO1xuICAgIGlmICghcHJvcGVydGllcy5maWxlKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbnZhbGlkIFRyZWVDbG91ZEFydGlmYWN0LiBNaXNzaW5nIFwiZmlsZVwiIHByb3BlcnR5Jyk7XG4gICAgfVxuICAgIHRoaXMuZmlsZSA9IHByb3BlcnRpZXMuZmlsZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnVHJlZUNsb3VkQXJ0aWZhY3QnXG4gKlxuICogV2h5IG5vdCBwdXQgdGhpcyBpbiB0aGUgY29uc3RydWN0b3I/IEJlY2F1c2UgdGhpcyBpcyBhIGNsYXNzIHByb3BlcnR5LFxuICogbm90IGFuIGluc3RhbmNlIHByb3BlcnR5LiBJdCBhcHBsaWVzIHRvIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVHJlZUNsb3VkQXJ0aWZhY3QucHJvdG90eXBlLCBUUkVFX0NMT1VEX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASSET_PREFIX_SEPARATOR = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = exports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = exports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = exports.ASSET_RESOURCE_METADATA_PATH_KEY = exports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = void 0;\n/**\n * If this is set in the context, the aws:asset:xxx metadata entries will not be\n * added to the template. This is used, for example, when we run integrationt\n * tests.\n */\nexports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = 'aws:cdk:enable-asset-metadata';\n/**\n * Metadata added to the CloudFormation template entries that map local assets\n * to resources.\n */\nexports.ASSET_RESOURCE_METADATA_PATH_KEY = 'aws:asset:path';\nexports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = 'aws:asset:dockerfile-path';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = 'aws:asset:docker-build-args';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = 'aws:asset:docker-build-secrets';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = 'aws:asset:docker-build-ssh';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = 'aws:asset:docker-build-target';\nexports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = 'aws:asset:property';\nexports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = 'aws:asset:is-bundled';\nexports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = 'aws:asset:docker-outputs';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = 'aws:asset:docker-cache-from';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = 'aws:asset:docker-cache-to';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = 'aws:asset:docker-cache-disabled';\n/**\n * Separator string that separates the prefix separator from the object key separator.\n *\n * Asset keys will look like:\n *\n * /assets/MyConstruct12345678/||abcdef12345.zip\n *\n * This allows us to encode both the prefix and the full location in a single\n * CloudFormation Template Parameter.\n */\nexports.ASSET_PREFIX_SEPARATOR = '||';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDVSxRQUFBLHVDQUF1QyxHQUFHLCtCQUErQixDQUFDO0FBRXZGOzs7R0FHRztBQUNVLFFBQUEsZ0NBQWdDLEdBQUcsZ0JBQWdCLENBQUM7QUFDcEQsUUFBQSwyQ0FBMkMsR0FBRywyQkFBMkIsQ0FBQztBQUMxRSxRQUFBLDZDQUE2QyxHQUFHLDZCQUE2QixDQUFDO0FBQzlFLFFBQUEsZ0RBQWdELEdBQUcsZ0NBQWdDLENBQUM7QUFDcEYsUUFBQSw0Q0FBNEMsR0FBRyw0QkFBNEIsQ0FBQztBQUM1RSxRQUFBLCtDQUErQyxHQUFHLCtCQUErQixDQUFDO0FBQ2xGLFFBQUEsb0NBQW9DLEdBQUcsb0JBQW9CLENBQUM7QUFDNUQsUUFBQSxzQ0FBc0MsR0FBRyxzQkFBc0IsQ0FBQztBQUNoRSxRQUFBLDBDQUEwQyxHQUFHLDBCQUEwQixDQUFDO0FBQ3hFLFFBQUEsNkNBQTZDLEdBQUcsNkJBQTZCLENBQUM7QUFDOUUsUUFBQSwyQ0FBMkMsR0FBRywyQkFBMkIsQ0FBQztBQUMxRSxRQUFBLGlEQUFpRCxHQUFHLGlDQUFpQyxDQUFDO0FBRW5HOzs7Ozs7Ozs7R0FTRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJZiB0aGlzIGlzIHNldCBpbiB0aGUgY29udGV4dCwgdGhlIGF3czphc3NldDp4eHggbWV0YWRhdGEgZW50cmllcyB3aWxsIG5vdCBiZVxuICogYWRkZWQgdG8gdGhlIHRlbXBsYXRlLiBUaGlzIGlzIHVzZWQsIGZvciBleGFtcGxlLCB3aGVuIHdlIHJ1biBpbnRlZ3JhdGlvbnRcbiAqIHRlc3RzLlxuICovXG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRU5BQkxFRF9DT05URVhUID0gJ2F3czpjZGs6ZW5hYmxlLWFzc2V0LW1ldGFkYXRhJztcblxuLyoqXG4gKiBNZXRhZGF0YSBhZGRlZCB0byB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZW50cmllcyB0aGF0IG1hcCBsb2NhbCBhc3NldHNcbiAqIHRvIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX1BBVEhfS0VZID0gJ2F3czphc3NldDpwYXRoJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJGSUxFX1BBVEhfS0VZID0gJ2F3czphc3NldDpkb2NrZXJmaWxlLXBhdGgnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9BUkdTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLWFyZ3MnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9TRUNSRVRTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLXNlY3JldHMnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9TU0hfS0VZID0gJ2F3czphc3NldDpkb2NrZXItYnVpbGQtc3NoJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQlVJTERfVEFSR0VUX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLXRhcmdldCc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfUFJPUEVSVFlfS0VZID0gJ2F3czphc3NldDpwcm9wZXJ0eSc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfSVNfQlVORExFRF9LRVkgPSAnYXdzOmFzc2V0OmlzLWJ1bmRsZWQnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9PVVRQVVRTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLW91dHB1dHMnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9DQUNIRV9GUk9NX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWNhY2hlLWZyb20nO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9DQUNIRV9UT19LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1jYWNoZS10byc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0NBQ0hFX0RJU0FCTEVEX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWNhY2hlLWRpc2FibGVkJztcblxuLyoqXG4gKiBTZXBhcmF0b3Igc3RyaW5nIHRoYXQgc2VwYXJhdGVzIHRoZSBwcmVmaXggc2VwYXJhdG9yIGZyb20gdGhlIG9iamVjdCBrZXkgc2VwYXJhdG9yLlxuICpcbiAqIEFzc2V0IGtleXMgd2lsbCBsb29rIGxpa2U6XG4gKlxuICogICAgL2Fzc2V0cy9NeUNvbnN0cnVjdDEyMzQ1Njc4L3x8YWJjZGVmMTIzNDUuemlwXG4gKlxuICogVGhpcyBhbGxvd3MgdXMgdG8gZW5jb2RlIGJvdGggdGhlIHByZWZpeCBhbmQgdGhlIGZ1bGwgbG9jYXRpb24gaW4gYSBzaW5nbGVcbiAqIENsb3VkRm9ybWF0aW9uIFRlbXBsYXRlIFBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IEFTU0VUX1BSRUZJWF9TRVBBUkFUT1IgPSAnfHwnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst asset_manifest_artifact_1 = require(\"./artifacts/asset-manifest-artifact\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\n/**\n * Add the 'fromManifest' factory function\n *\n * It is defined in a separate file to avoid circular dependencies between 'cloud-artifact.ts'\n * and all of its subclass files.\n */\ncloud_artifact_1.CloudArtifact.fromManifest = function fromManifest(assembly, id, artifact) {\n switch (artifact.type) {\n case cxschema.ArtifactType.AWS_CLOUDFORMATION_STACK:\n return new cloudformation_artifact_1.CloudFormationStackArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.CDK_TREE:\n return new tree_cloud_artifact_1.TreeCloudArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.ASSET_MANIFEST:\n return new asset_manifest_artifact_1.AssetManifestArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY:\n return new nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact(assembly, id, artifact);\n default:\n return undefined;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QtYXVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtYXJ0aWZhY3QtYXVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUZBQTRFO0FBQzVFLGlGQUFrRjtBQUNsRiwrRkFBeUY7QUFDekYseUVBQW9FO0FBQ3BFLHFEQUFpRDtBQUVqRCwyREFBMkQ7QUFFM0Q7Ozs7O0dBS0c7QUFDSCw4QkFBYSxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FDaEQsUUFBdUIsRUFDdkIsRUFBVSxFQUNWLFFBQW1DO0lBRW5DLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFlBQVksQ0FBQyx3QkFBd0I7WUFDakQsT0FBTyxJQUFJLHFEQUEyQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDakMsT0FBTyxJQUFJLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWM7WUFDdkMsT0FBTyxJQUFJLCtDQUFxQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLHFCQUFxQjtZQUM5QyxPQUFPLElBQUksNERBQTJCLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRTtZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NldE1hbmlmZXN0QXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9hc3NldC1tYW5pZmVzdC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9jbG91ZGZvcm1hdGlvbi1hcnRpZmFjdCc7XG5pbXBvcnQgeyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9uZXN0ZWQtY2xvdWQtYXNzZW1ibHktYXJ0aWZhY3QnO1xuaW1wb3J0IHsgVHJlZUNsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy90cmVlLWNsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5cbi8qKlxuICogQWRkIHRoZSAnZnJvbU1hbmlmZXN0JyBmYWN0b3J5IGZ1bmN0aW9uXG4gKlxuICogSXQgaXMgZGVmaW5lZCBpbiBhIHNlcGFyYXRlIGZpbGUgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGJldHdlZW4gJ2Nsb3VkLWFydGlmYWN0LnRzJ1xuICogYW5kIGFsbCBvZiBpdHMgc3ViY2xhc3MgZmlsZXMuXG4gKi9cbkNsb3VkQXJ0aWZhY3QuZnJvbU1hbmlmZXN0ID0gZnVuY3Rpb24gZnJvbU1hbmlmZXN0KFxuICBhc3NlbWJseTogQ2xvdWRBc3NlbWJseSxcbiAgaWQ6IHN0cmluZyxcbiAgYXJ0aWZhY3Q6IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QsXG4pOiBDbG91ZEFydGlmYWN0IHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChhcnRpZmFjdC50eXBlKSB7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQVdTX0NMT1VERk9STUFUSU9OX1NUQUNLOlxuICAgICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQ0RLX1RSRUU6XG4gICAgICByZXR1cm4gbmV3IFRyZWVDbG91ZEFydGlmYWN0KGFzc2VtYmx5LCBpZCwgYXJ0aWZhY3QpO1xuICAgIGNhc2UgY3hzY2hlbWEuQXJ0aWZhY3RUeXBlLkFTU0VUX01BTklGRVNUOlxuICAgICAgcmV0dXJuIG5ldyBBc3NldE1hbmlmZXN0QXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuTkVTVEVEX0NMT1VEX0FTU0VNQkxZOlxuICAgICAgcmV0dXJuIG5ldyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXX0=","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst metadata_1 = require(\"./metadata\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst error_1 = require(\"./private/error\");\n/**\n * Represents an artifact within a cloud assembly.\n */\nclass CloudArtifact {\n /**\n * Returns a subclass of `CloudArtifact` based on the artifact type defined in the artifact manifest.\n *\n * @param assembly The cloud assembly from which to load the artifact\n * @param id The artifact ID\n * @param artifact The artifact manifest\n * @returns the `CloudArtifact` that matches the artifact type or `undefined` if it's an artifact type that is unrecognized by this module.\n */\n static fromManifest(assembly, id, artifact) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.fromManifest);\n }\n throw error;\n }\n // Implementation is defined in a separate file to break cyclic dependencies\n void (assembly), void (id), void (artifact);\n throw new error_1.CloudAssemblyError('Implementation not overridden yet');\n }\n constructor(assembly, id, manifest) {\n this.assembly = assembly;\n this.id = id;\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, CloudArtifact);\n }\n throw error;\n }\n this.manifest = manifest;\n this.messages = this.renderMessages();\n this._dependencyIDs = manifest.dependencies || [];\n }\n /**\n * Returns all the artifacts that this artifact depends on.\n */\n get dependencies() {\n if (this._deps) {\n return this._deps;\n }\n this._deps = this._dependencyIDs.map(id => {\n const dep = this.assembly.tryGetArtifact(id);\n if (!dep) {\n throw new error_1.CloudAssemblyError(`Artifact ${this.id} depends on non-existing artifact ${id}`);\n }\n return dep;\n });\n return this._deps;\n }\n /**\n * @returns all the metadata entries of a specific type in this artifact.\n */\n findMetadataByType(type) {\n const result = new Array();\n for (const path of Object.keys(this.manifest.metadata || {})) {\n for (const entry of (this.manifest.metadata || {})[path]) {\n if (entry.type === type) {\n result.push({ path, ...entry });\n }\n }\n }\n return result;\n }\n renderMessages() {\n const messages = new Array();\n for (const [id, metadata] of Object.entries(this.manifest.metadata || {})) {\n for (const entry of metadata) {\n let level;\n switch (entry.type) {\n case cxschema.ArtifactMetadataEntryType.WARN:\n level = metadata_1.SynthesisMessageLevel.WARNING;\n break;\n case cxschema.ArtifactMetadataEntryType.ERROR:\n level = metadata_1.SynthesisMessageLevel.ERROR;\n break;\n case cxschema.ArtifactMetadataEntryType.INFO:\n level = metadata_1.SynthesisMessageLevel.INFO;\n break;\n default:\n continue;\n }\n messages.push({ level, entry, id });\n }\n }\n return messages;\n }\n /**\n * An identifier that shows where this artifact is located in the tree\n * of nested assemblies, based on their manifests. Defaults to the normal\n * id. Should only be used in user interfaces.\n */\n get hierarchicalId() {\n return this.manifest.displayName ?? this.id;\n }\n}\nexports.CloudArtifact = CloudArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nCloudArtifact[_a] = { fqn: \"@aws-cdk/cx-api.CloudArtifact\", version: \"2.212.0\" };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx5Q0FBMEY7QUFDMUYsMkRBQTJEO0FBQzNELDJDQUFxRDtBQThCckQ7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBdUIsRUFBRSxFQUFVLEVBQUUsUUFBbUM7Ozs7Ozs7Ozs7UUFDakcsNEVBQTRFO1FBQzVFLEtBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0tBQ25FO0lBdUJELFlBQXNDLFFBQXVCLEVBQWtCLEVBQVUsRUFBRSxRQUFtQztRQUF4RixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBQWtCLE9BQUUsR0FBRixFQUFFLENBQVE7Ozs7OzsrQ0FwQzlFLGFBQWE7Ozs7UUFxQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7S0FDbkQ7SUFFRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN4QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxJQUFJLDBCQUFrQixDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUscUNBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0YsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDbkI7SUFFRDs7T0FFRztJQUNJLGtCQUFrQixDQUFDLElBQVk7UUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7UUFDaEQsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDN0QsS0FBSyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxFQUFvQixDQUFDO1FBRS9DLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0UsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxLQUE0QixDQUFDO2dCQUNqQyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbkIsS0FBSyxRQUFRLENBQUMseUJBQXlCLENBQUMsSUFBSTt3QkFDMUMsS0FBSyxHQUFHLGdDQUFxQixDQUFDLE9BQU8sQ0FBQzt3QkFDdEMsTUFBTTtvQkFDUixLQUFLLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLO3dCQUMzQyxLQUFLLEdBQUcsZ0NBQXFCLENBQUMsS0FBSyxDQUFDO3dCQUNwQyxNQUFNO29CQUNSLEtBQUssUUFBUSxDQUFDLHlCQUF5QixDQUFDLElBQUk7d0JBQzFDLEtBQUssR0FBRyxnQ0FBcUIsQ0FBQyxJQUFJLENBQUM7d0JBQ25DLE1BQU07b0JBQ1I7d0JBQ0UsU0FBUztnQkFDYixDQUFDO2dCQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUVEOzs7O09BSUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO0tBQzdDOztBQTVHSCxzQ0E2R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IE1ldGFkYXRhRW50cnlSZXN1bHQsIFN5bnRoZXNpc01lc3NhZ2UsIFN5bnRoZXNpc01lc3NhZ2VMZXZlbCB9IGZyb20gJy4vbWV0YWRhdGEnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4vcHJpdmF0ZS9lcnJvcic7XG5cbi8qKlxuICogQXJ0aWZhY3QgcHJvcGVydGllcyBmb3IgQ2xvdWRGb3JtYXRpb24gc3RhY2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nsb3VkRm9ybWF0aW9uU3RhY2tQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIEEgZmlsZSByZWxhdGl2ZSB0byB0aGUgYXNzZW1ibHkgcm9vdCB3aGljaCBjb250YWlucyB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZm9yIHRoaXMgc3RhY2suXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZUZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWVzIGZvciBDbG91ZEZvcm1hdGlvbiBzdGFjayBwYXJhbWV0ZXJzIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB3aGVuIHRoZSBzdGFjayBpcyBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRvIHVzZSBmb3IgdGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrLlxuICAgKiBAZGVmYXVsdCAtIG5hbWUgZGVyaXZlZCBmcm9tIGFydGlmYWN0IElEXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gZm9yIHRoaXMgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXJ0aWZhY3Qgd2l0aGluIGEgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEFydGlmYWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdWJjbGFzcyBvZiBgQ2xvdWRBcnRpZmFjdGAgYmFzZWQgb24gdGhlIGFydGlmYWN0IHR5cGUgZGVmaW5lZCBpbiB0aGUgYXJ0aWZhY3QgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBwYXJhbSBhc3NlbWJseSBUaGUgY2xvdWQgYXNzZW1ibHkgZnJvbSB3aGljaCB0byBsb2FkIHRoZSBhcnRpZmFjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGFydGlmYWN0IElEXG4gICAqIEBwYXJhbSBhcnRpZmFjdCBUaGUgYXJ0aWZhY3QgbWFuaWZlc3RcbiAgICogQHJldHVybnMgdGhlIGBDbG91ZEFydGlmYWN0YCB0aGF0IG1hdGNoZXMgdGhlIGFydGlmYWN0IHR5cGUgb3IgYHVuZGVmaW5lZGAgaWYgaXQncyBhbiBhcnRpZmFjdCB0eXBlIHRoYXQgaXMgdW5yZWNvZ25pemVkIGJ5IHRoaXMgbW9kdWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTWFuaWZlc3QoYXNzZW1ibHk6IENsb3VkQXNzZW1ibHksIGlkOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgLy8gSW1wbGVtZW50YXRpb24gaXMgZGVmaW5lZCBpbiBhIHNlcGFyYXRlIGZpbGUgdG8gYnJlYWsgY3ljbGljIGRlcGVuZGVuY2llc1xuICAgIHZvaWQoYXNzZW1ibHkpLCB2b2lkKGlkKSwgdm9pZChhcnRpZmFjdCk7XG4gICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW1wbGVtZW50YXRpb24gbm90IG92ZXJyaWRkZW4geWV0Jyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0J3MgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYW5pZmVzdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdDtcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBtZXNzYWdlcyBleHRyYWN0ZWQgZnJvbSB0aGUgYXJ0aWZhY3QncyBtZXRhZGF0YS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXNzYWdlczogU3ludGhlc2lzTWVzc2FnZVtdO1xuXG4gIC8qKlxuICAgKiBJRHMgb2YgYWxsIGRlcGVuZGVuY2llcy4gVXNlZCB3aGVuIHRvcG9sb2dpY2FsbHkgc29ydGluZyB0aGUgYXJ0aWZhY3RzIHdpdGhpbiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IF9kZXBlbmRlbmN5SURzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2FjaGUgb2YgcmVzb2x2ZWQgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGVwcz86IENsb3VkQXJ0aWZhY3RbXTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZywgbWFuaWZlc3Q6IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QpIHtcbiAgICB0aGlzLm1hbmlmZXN0ID0gbWFuaWZlc3Q7XG4gICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMucmVuZGVyTWVzc2FnZXMoKTtcbiAgICB0aGlzLl9kZXBlbmRlbmN5SURzID0gbWFuaWZlc3QuZGVwZW5kZW5jaWVzIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBhcnRpZmFjdHMgdGhhdCB0aGlzIGFydGlmYWN0IGRlcGVuZHMgb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRlcGVuZGVuY2llcygpOiBDbG91ZEFydGlmYWN0W10ge1xuICAgIGlmICh0aGlzLl9kZXBzKSB7IHJldHVybiB0aGlzLl9kZXBzOyB9XG5cbiAgICB0aGlzLl9kZXBzID0gdGhpcy5fZGVwZW5kZW5jeUlEcy5tYXAoaWQgPT4ge1xuICAgICAgY29uc3QgZGVwID0gdGhpcy5hc3NlbWJseS50cnlHZXRBcnRpZmFjdChpZCk7XG4gICAgICBpZiAoIWRlcCkge1xuICAgICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBBcnRpZmFjdCAke3RoaXMuaWR9IGRlcGVuZHMgb24gbm9uLWV4aXN0aW5nIGFydGlmYWN0ICR7aWR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVwO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2RlcHM7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHRoZSBtZXRhZGF0YSBlbnRyaWVzIG9mIGEgc3BlY2lmaWMgdHlwZSBpbiB0aGlzIGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIGZpbmRNZXRhZGF0YUJ5VHlwZSh0eXBlOiBzdHJpbmcpOiBNZXRhZGF0YUVudHJ5UmVzdWx0W10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxNZXRhZGF0YUVudHJ5UmVzdWx0PigpO1xuICAgIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyh0aGlzLm1hbmlmZXN0Lm1ldGFkYXRhIHx8IHt9KSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiAodGhpcy5tYW5pZmVzdC5tZXRhZGF0YSB8fCB7fSlbcGF0aF0pIHtcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IHR5cGUpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh7IHBhdGgsIC4uLmVudHJ5IH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlck1lc3NhZ2VzKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gbmV3IEFycmF5PFN5bnRoZXNpc01lc3NhZ2U+KCk7XG5cbiAgICBmb3IgKGNvbnN0IFtpZCwgbWV0YWRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3QubWV0YWRhdGEgfHwgeyB9KSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBtZXRhZGF0YSkge1xuICAgICAgICBsZXQgbGV2ZWw6IFN5bnRoZXNpc01lc3NhZ2VMZXZlbDtcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLldBUk46XG4gICAgICAgICAgICBsZXZlbCA9IFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5XQVJOSU5HO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLkVSUk9SOlxuICAgICAgICAgICAgbGV2ZWwgPSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwuRVJST1I7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuSU5GTzpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk87XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbGV2ZWwsIGVudHJ5LCBpZCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gIH1cblxuICAvKipcbiAgICogQW4gaWRlbnRpZmllciB0aGF0IHNob3dzIHdoZXJlIHRoaXMgYXJ0aWZhY3QgaXMgbG9jYXRlZCBpbiB0aGUgdHJlZVxuICAgKiBvZiBuZXN0ZWQgYXNzZW1ibGllcywgYmFzZWQgb24gdGhlaXIgbWFuaWZlc3RzLiBEZWZhdWx0cyB0byB0aGUgbm9ybWFsXG4gICAqIGlkLiBTaG91bGQgb25seSBiZSB1c2VkIGluIHVzZXIgaW50ZXJmYWNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGllcmFyY2hpY2FsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYW5pZmVzdC5kaXNwbGF5TmFtZSA/PyB0aGlzLmlkO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyBuilder = exports.CloudAssembly = void 0;\nconst jsiiDeprecationWarnings = require(\"../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\nconst toposort_1 = require(\"./toposort\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst error_1 = require(\"./private/error\");\nconst CLOUD_ASSEMBLY_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssembly');\n/**\n * The name of the root manifest file of the assembly.\n */\nconst MANIFEST_FILE = 'manifest.json';\n/**\n * Represents a deployable cloud application.\n */\nclass CloudAssembly {\n /**\n * Return whether the given object is a CloudAssembly.\n *\n * We do attribute detection since we can't reliably use 'instanceof'.\n */\n static isCloudAssembly(x) {\n return x !== null && typeof (x) === 'object' && CLOUD_ASSEMBLY_SYMBOL in x;\n }\n /**\n * Reads a cloud assembly from the specified directory.\n * @param directory The root directory of the assembly.\n */\n constructor(directory, loadOptions) {\n this.directory = directory;\n this.manifest = cxschema.Manifest.loadAssemblyManifest(path.join(directory, MANIFEST_FILE), loadOptions);\n this.version = this.manifest.version;\n this.artifacts = this.renderArtifacts(loadOptions?.topoSort ?? true);\n this.runtime = this.manifest.runtime || { libraries: {} };\n Object.defineProperty(this, CLOUD_ASSEMBLY_SYMBOL, { value: true });\n // force validation of deps by accessing 'depends' on all artifacts\n this.validateDeps();\n }\n /**\n * Attempts to find an artifact with a specific identity.\n * @returns A `CloudArtifact` object or `undefined` if the artifact does not exist in this assembly.\n * @param id The artifact ID\n */\n tryGetArtifact(id) {\n return this.artifacts.find(a => a.id === id);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * Will only search the current assembly.\n *\n * @param stackName the name of the CloudFormation stack.\n * @throws if there is no stack artifact by that name\n * @throws if there is more than one stack with the same stack name. You can\n * use `getStackArtifact(stack.artifactId)` instead.\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackByName(stackName) {\n const artifacts = this.artifacts.filter(a => a instanceof cloudformation_artifact_1.CloudFormationStackArtifact && a.stackName === stackName);\n if (!artifacts || artifacts.length === 0) {\n throw new error_1.CloudAssemblyError(`Unable to find stack with stack name \"${stackName}\"`);\n }\n if (artifacts.length > 1) {\n // eslint-disable-next-line max-len\n throw new error_1.CloudAssemblyError(`There are multiple stacks with the stack name \"${stackName}\" (${artifacts.map(a => a.id).join(',')}). Use \"getStackArtifact(id)\" instead`);\n }\n return artifacts[0];\n }\n /**\n * Returns a CloudFormation stack artifact by name from this assembly.\n * @deprecated renamed to `getStackByName` (or `getStackArtifact(id)`)\n */\n getStack(stackName) {\n try {\n jsiiDeprecationWarnings.print(\"@aws-cdk/cx-api.CloudAssembly#getStack\", \"renamed to `getStackByName` (or `getStackArtifact(id)`)\");\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.getStack);\n }\n throw error;\n }\n return this.getStackByName(stackName);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * @param artifactId the artifact id of the stack (can be obtained through `stack.artifactId`).\n * @throws if there is no stack artifact with that id\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackArtifact(artifactId) {\n const artifact = this.tryGetArtifactRecursively(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof cloudformation_artifact_1.CloudFormationStackArtifact)) {\n throw new error_1.CloudAssemblyError(`Artifact ${artifactId} is not a CloudFormation stack`);\n }\n return artifact;\n }\n tryGetArtifactRecursively(artifactId) {\n return this.stacksRecursively.find(a => a.id === artifactId);\n }\n /**\n * Returns all the stacks, including the ones in nested assemblies\n */\n get stacksRecursively() {\n function search(stackArtifacts, assemblies) {\n if (assemblies.length === 0) {\n return stackArtifacts;\n }\n const [head, ...tail] = assemblies;\n const nestedAssemblies = head.nestedAssemblies.map(asm => asm.nestedAssembly);\n return search(stackArtifacts.concat(head.stacks), tail.concat(nestedAssemblies));\n }\n return search([], [this]);\n }\n /**\n * Returns a nested assembly artifact.\n *\n * @param artifactId The artifact ID of the nested assembly\n */\n getNestedAssemblyArtifact(artifactId) {\n const artifact = this.tryGetArtifact(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact)) {\n throw new error_1.CloudAssemblyError(`Found artifact '${artifactId}' but it's not a nested cloud assembly`);\n }\n return artifact;\n }\n /**\n * Returns a nested assembly.\n *\n * @param artifactId The artifact ID of the nested assembly\n */\n getNestedAssembly(artifactId) {\n return this.getNestedAssemblyArtifact(artifactId).nestedAssembly;\n }\n /**\n * Returns the tree metadata artifact from this assembly.\n * @throws if there is no metadata artifact by that name\n * @returns a `TreeCloudArtifact` object if there is one defined in the manifest, `undefined` otherwise.\n */\n tree() {\n const trees = this.artifacts.filter(a => a.manifest.type === cxschema.ArtifactType.CDK_TREE);\n if (trees.length === 0) {\n return undefined;\n }\n else if (trees.length > 1) {\n throw new error_1.CloudAssemblyError(`Multiple artifacts of type ${cxschema.ArtifactType.CDK_TREE} found in manifest`);\n }\n const tree = trees[0];\n if (!(tree instanceof tree_cloud_artifact_1.TreeCloudArtifact)) {\n throw new error_1.CloudAssemblyError('\"Tree\" artifact is not of expected type');\n }\n return tree;\n }\n /**\n * @returns all the CloudFormation stack artifacts that are included in this assembly.\n */\n get stacks() {\n return this.artifacts.filter(isCloudFormationStackArtifact);\n function isCloudFormationStackArtifact(x) {\n return x instanceof cloudformation_artifact_1.CloudFormationStackArtifact;\n }\n }\n /**\n * The nested assembly artifacts in this assembly\n */\n get nestedAssemblies() {\n return this.artifacts.filter(isNestedCloudAssemblyArtifact);\n function isNestedCloudAssemblyArtifact(x) {\n return x instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact;\n }\n }\n validateDeps() {\n for (const artifact of this.artifacts) {\n ignore(artifact.dependencies);\n }\n }\n renderArtifacts(topoSort) {\n const result = new Array();\n for (const [name, artifact] of Object.entries(this.manifest.artifacts || {})) {\n const cloudartifact = cloud_artifact_1.CloudArtifact.fromManifest(this, name, artifact);\n if (cloudartifact) {\n result.push(cloudartifact);\n }\n }\n return topoSort ? (0, toposort_1.topologicalSort)(result, x => x.id, x => x._dependencyIDs) : result;\n }\n}\nexports.CloudAssembly = CloudAssembly;\n_a = JSII_RTTI_SYMBOL_1;\nCloudAssembly[_a] = { fqn: \"@aws-cdk/cx-api.CloudAssembly\", version: \"2.212.0\" };\n/**\n * Can be used to build a cloud assembly.\n */\nclass CloudAssemblyBuilder {\n /**\n * Initializes a cloud assembly builder.\n * @param outdir The output directory, uses temporary directory if undefined\n */\n constructor(outdir, props = {}) {\n this.artifacts = {};\n this.missing = new Array();\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssemblyBuilderProps(props);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, CloudAssemblyBuilder);\n }\n throw error;\n }\n this.outdir = determineOutputDirectory(outdir);\n this.assetOutdir = props.assetOutdir ?? this.outdir;\n this.parentBuilder = props.parentBuilder;\n // we leverage the fact that outdir is long-lived to avoid staging assets into it\n // that were already staged (copying can be expensive). this is achieved by the fact\n // that assets use a source hash as their name. other artifacts, and the manifest itself,\n // will overwrite existing files as needed.\n ensureDirSync(this.outdir);\n }\n /**\n * Adds an artifact into the cloud assembly.\n * @param id The ID of the artifact.\n * @param manifest The artifact manifest\n */\n addArtifact(id, manifest) {\n this.artifacts[id] = filterUndefined(manifest);\n }\n /**\n * Reports that some context is missing in order for this cloud assembly to be fully synthesized.\n * @param missing Missing context information.\n */\n addMissing(missing) {\n if (this.missing.every(m => m.key !== missing.key)) {\n this.missing.push(missing);\n }\n // Also report in parent\n this.parentBuilder?.addMissing(missing);\n }\n /**\n * Finalizes the cloud assembly into the output directory returns a\n * `CloudAssembly` object that can be used to inspect the assembly.\n */\n buildAssembly(options = {}) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_AssemblyBuildOptions(options);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.buildAssembly);\n }\n throw error;\n }\n // explicitly initializing this type will help us detect\n // breaking changes. (For example adding a required property will break compilation).\n let manifest = {\n version: cxschema.Manifest.version(),\n artifacts: this.artifacts,\n runtime: options.runtimeInfo,\n missing: this.missing.length > 0 ? this.missing : undefined,\n };\n // now we can filter\n manifest = filterUndefined(manifest);\n const manifestFilePath = path.join(this.outdir, MANIFEST_FILE);\n cxschema.Manifest.saveAssemblyManifest(manifest, manifestFilePath);\n // \"backwards compatibility\": in order for the old CLI to tell the user they\n // need a new version, we'll emit the legacy manifest with only \"version\".\n // this will result in an error \"CDK Toolkit >= CLOUD_ASSEMBLY_VERSION is required in order to interact with this program.\"\n fs.writeFileSync(path.join(this.outdir, 'cdk.out'), JSON.stringify({ version: manifest.version }));\n return new CloudAssembly(this.outdir);\n }\n /**\n * Creates a nested cloud assembly\n */\n createNestedAssembly(artifactId, displayName) {\n const directoryName = artifactId;\n const innerAsmDir = path.join(this.outdir, directoryName);\n this.addArtifact(artifactId, {\n type: cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY,\n properties: {\n directoryName,\n displayName,\n },\n });\n return new CloudAssemblyBuilder(innerAsmDir, {\n // Reuse the same asset output directory as the current Casm builder\n assetOutdir: this.assetOutdir,\n parentBuilder: this,\n });\n }\n /**\n * Delete the cloud assembly directory\n */\n delete() {\n fs.rmSync(this.outdir, { recursive: true, force: true });\n }\n}\nexports.CloudAssemblyBuilder = CloudAssemblyBuilder;\n_b = JSII_RTTI_SYMBOL_1;\nCloudAssemblyBuilder[_b] = { fqn: \"@aws-cdk/cx-api.CloudAssemblyBuilder\", version: \"2.212.0\" };\n/**\n * Returns a copy of `obj` without undefined values in maps or arrays.\n */\nfunction filterUndefined(obj) {\n if (Array.isArray(obj)) {\n return obj.filter(x => x !== undefined).map(x => filterUndefined(x));\n }\n if (typeof (obj) === 'object') {\n const ret = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined) {\n continue;\n }\n ret[key] = filterUndefined(value);\n }\n return ret;\n }\n return obj;\n}\nfunction ignore(_x) {\n return;\n}\n/**\n * Turn the given optional output directory into a fixed output directory\n */\nfunction determineOutputDirectory(outdir) {\n return outdir ?? fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out'));\n}\nfunction ensureDirSync(dir) {\n if (fs.existsSync(dir)) {\n if (!fs.statSync(dir).isDirectory()) {\n throw new error_1.CloudAssemblyError(`${dir} must be a directory`);\n }\n }\n else {\n fs.mkdirSync(dir, { recursive: true });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUs3QixpRkFBa0Y7QUFDbEYsK0ZBQXlGO0FBQ3pGLHlFQUFvRTtBQUNwRSxxREFBaUQ7QUFDakQseUNBQTZDO0FBQzdDLDJEQUEyRDtBQUMzRCwyQ0FBcUQ7QUFFckQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFMUU7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBTTtRQUNsQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxxQkFBcUIsSUFBSSxDQUFDLENBQUM7S0FDM0U7SUEyQkQ7OztPQUdHO0lBQ0gsWUFBWSxTQUFpQixFQUFFLFdBQTBDO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUks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LENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsU0FBUztZQUNYLENBQUM7WUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxFQUFPO0lBQ3JCLE9BQU87QUFDVCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLE1BQWU7SUFDL0MsT0FBTyxNQUFNLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsR0FBVztJQUNoQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbi8vIFRoaXMgaXMgZGVsaWJlcmF0ZWx5IGltcG9ydGluZyB0aGUgaW50ZXJmYWNlIGZyb20gdGhlIGV4dGVybmFsIHBhY2thZ2UuXG4vLyBXZSB3YW50IHRoaXMsIHNvIHRoYXQganNpaSBsYW5ndWFnZSBwYWNrYWdlcyBjYW4gZGVwZW5kIG9uIEBhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYVxuLy8gaW5zdGVhZCBvZiBiZWluZyBmb3JjZWQgdG8gdGFrZSBhIGRlcGVuZGVuY3kgb24gdGhlIG11Y2ggbGFyZ2VyIGF3cy1jZGstbGliLlxuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9jbG91ZGZvcm1hdGlvbi1hcnRpZmFjdCc7XG5pbXBvcnQgeyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9uZXN0ZWQtY2xvdWQtYXNzZW1ibHktYXJ0aWZhY3QnO1xuaW1wb3J0IHsgVHJlZUNsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy90cmVlLWNsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IHRvcG9sb2dpY2FsU29ydCB9IGZyb20gJy4vdG9wb3NvcnQnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4vcHJpdmF0ZS9lcnJvcic7XG5cbmNvbnN0IENMT1VEX0FTU0VNQkxZX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2N4LWFwaS5DbG91ZEFzc2VtYmx5Jyk7XG5cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHJvb3QgbWFuaWZlc3QgZmlsZSBvZiB0aGUgYXNzZW1ibHkuXG4gKi9cbmNvbnN0IE1BTklGRVNUX0ZJTEUgPSAnbWFuaWZlc3QuanNvbic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRlcGxveWFibGUgY2xvdWQgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEFzc2VtYmx5IGltcGxlbWVudHMgSUNsb3VkQXNzZW1ibHkge1xuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhIENsb3VkQXNzZW1ibHkuXG4gICAqXG4gICAqIFdlIGRvIGF0dHJpYnV0ZSBkZXRlY3Rpb24gc2luY2Ugd2UgY2FuJ3QgcmVsaWFibHkgdXNlICdpbnN0YW5jZW9mJy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNDbG91ZEFzc2VtYmx5KHg6IGFueSk6IHggaXMgQ2xvdWRBc3NlbWJseSB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mKHgpID09PSAnb2JqZWN0JyAmJiBDTE9VRF9BU1NFTUJMWV9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NoZW1hIHZlcnNpb24gb2YgdGhlIGFzc2VtYmx5IG1hbmlmZXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogQWxsIGFydGlmYWN0cyBpbmNsdWRlZCBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFydGlmYWN0czogQ2xvdWRBcnRpZmFjdFtdO1xuXG4gIC8qKlxuICAgKiBSdW50aW1lIGluZm9ybWF0aW9uIHN1Y2ggYXMgbW9kdWxlIHZlcnNpb25zIHVzZWQgdG8gc3ludGhlc2l6ZSB0aGlzIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJ1bnRpbWU6IGN4c2NoZW1hLlJ1bnRpbWVJbmZvO1xuXG4gIC8qKlxuICAgKiBUaGUgcmF3IGFzc2VtYmx5IG1hbmlmZXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0OiBjeHNjaGVtYS5Bc3NlbWJseU1hbmlmZXN0O1xuXG4gIC8qKlxuICAgKiBSZWFkcyBhIGNsb3VkIGFzc2VtYmx5IGZyb20gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgVGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBhc3NlbWJseS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRpcmVjdG9yeTogc3RyaW5nLCBsb2FkT3B0aW9ucz86IGN4c2NoZW1hLkxvYWRNYW5pZmVzdE9wdGlvbnMpIHtcbiAgICB0aGlzLmRpcmVjdG9yeSA9IGRpcmVjdG9yeTtcblxuICAgIHRoaXMubWFuaWZlc3QgPSBjeHNjaGVtYS5NYW5pZmVzdC5sb2FkQXNzZW1ibHlNYW5pZmVzdChwYXRoLmpvaW4oZGlyZWN0b3J5LCBNQU5JRkVTVF9GSUxFKSwgbG9hZE9wdGlvbnMpO1xuICAgIHRoaXMudmVyc2lvbiA9IHRoaXMubWFuaWZlc3QudmVyc2lvbjtcbiAgICB0aGlzLmFydGlmYWN0cyA9IHRoaXMucmVuZGVyQXJ0aWZhY3RzKGxvYWRPcHRpb25zPy50b3BvU29ydCA/PyB0cnVlKTtcbiAgICB0aGlzLnJ1bnRpbWUgPSB0aGlzLm1hbmlmZXN0LnJ1bnRpbWUgfHwgeyBsaWJyYXJpZXM6IHsgfSB9O1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIENMT1VEX0FTU0VNQkxZX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIC8vIGZvcmNlIHZhbGlkYXRpb24gb2YgZGVwcyBieSBhY2Nlc3NpbmcgJ2RlcGVuZHMnIG9uIGFsbCBhcnRpZmFjdHNcbiAgICB0aGlzLnZhbGlkYXRlRGVwcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGZpbmQgYW4gYXJ0aWZhY3Qgd2l0aCBhIHNwZWNpZmljIGlkZW50aXR5LlxuICAgKiBAcmV0dXJucyBBIGBDbG91ZEFydGlmYWN0YCBvYmplY3Qgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGFydGlmYWN0IGRvZXMgbm90IGV4aXN0IGluIHRoaXMgYXNzZW1ibHkuXG4gICAqIEBwYXJhbSBpZCBUaGUgYXJ0aWZhY3QgSURcbiAgICovXG4gIHB1YmxpYyB0cnlHZXRBcnRpZmFjdChpZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0IGZyb20gdGhpcyBhc3NlbWJseS5cbiAgICpcbiAgICogV2lsbCBvbmx5IHNlYXJjaCB0aGUgY3VycmVudCBhc3NlbWJseS5cbiAgICpcbiAgICogQHBhcmFtIHN0YWNrTmFtZSB0aGUgbmFtZSBvZiB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gc3RhY2sgYXJ0aWZhY3QgYnkgdGhhdCBuYW1lXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBzdGFjayB3aXRoIHRoZSBzYW1lIHN0YWNrIG5hbWUuIFlvdSBjYW5cbiAgICogdXNlIGBnZXRTdGFja0FydGlmYWN0KHN0YWNrLmFydGlmYWN0SWQpYCBpbnN0ZWFkLlxuICAgKiBAcmV0dXJucyBhIGBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBnZXRTdGFja0J5TmFtZShzdGFja05hbWU6IHN0cmluZyk6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB7XG4gICAgY29uc3QgYXJ0aWZhY3RzID0gdGhpcy5hcnRpZmFjdHMuZmlsdGVyKGEgPT4gYSBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCAmJiBhLnN0YWNrTmFtZSA9PT0gc3RhY2tOYW1lKTtcbiAgICBpZiAoIWFydGlmYWN0cyB8fCBhcnRpZmFjdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBVbmFibGUgdG8gZmluZCBzdGFjayB3aXRoIHN0YWNrIG5hbWUgXCIke3N0YWNrTmFtZX1cImApO1xuICAgIH1cblxuICAgIGlmIChhcnRpZmFjdHMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFRoZXJlIGFyZSBtdWx0aXBsZSBzdGFja3Mgd2l0aCB0aGUgc3RhY2sgbmFtZSBcIiR7c3RhY2tOYW1lfVwiICgke2FydGlmYWN0cy5tYXAoYSA9PiBhLmlkKS5qb2luKCcsJyl9KS4gVXNlIFwiZ2V0U3RhY2tBcnRpZmFjdChpZClcIiBpbnN0ZWFkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFydGlmYWN0c1swXSBhcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0IGJ5IG5hbWUgZnJvbSB0aGlzIGFzc2VtYmx5LlxuICAgKiBAZGVwcmVjYXRlZCByZW5hbWVkIHRvIGBnZXRTdGFja0J5TmFtZWAgKG9yIGBnZXRTdGFja0FydGlmYWN0KGlkKWApXG4gICAqL1xuICBwdWJsaWMgZ2V0U3RhY2soc3RhY2tOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdGFja0J5TmFtZShzdGFja05hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdCBmcm9tIHRoaXMgYXNzZW1ibHkuXG4gICAqXG4gICAqIEBwYXJhbSBhcnRpZmFjdElkIHRoZSBhcnRpZmFjdCBpZCBvZiB0aGUgc3RhY2sgKGNhbiBiZSBvYnRhaW5lZCB0aHJvdWdoIGBzdGFjay5hcnRpZmFjdElkYCkuXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gc3RhY2sgYXJ0aWZhY3Qgd2l0aCB0aGF0IGlkXG4gICAqIEByZXR1cm5zIGEgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrQXJ0aWZhY3QoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdCA9IHRoaXMudHJ5R2V0QXJ0aWZhY3RSZWN1cnNpdmVseShhcnRpZmFjdElkKTtcblxuICAgIGlmICghYXJ0aWZhY3QpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFVuYWJsZSB0byBmaW5kIGFydGlmYWN0IHdpdGggaWQgXCIke2FydGlmYWN0SWR9XCJgKTtcbiAgICB9XG5cbiAgICBpZiAoIShhcnRpZmFjdCBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYEFydGlmYWN0ICR7YXJ0aWZhY3RJZH0gaXMgbm90IGEgQ2xvdWRGb3JtYXRpb24gc3RhY2tgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJ0aWZhY3Q7XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEFydGlmYWN0UmVjdXJzaXZlbHkoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tzUmVjdXJzaXZlbHkuZmluZChhID0+IGEuaWQgPT09IGFydGlmYWN0SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBzdGFja3MsIGluY2x1ZGluZyB0aGUgb25lcyBpbiBuZXN0ZWQgYXNzZW1ibGllc1xuICAgKi9cbiAgcHVibGljIGdldCBzdGFja3NSZWN1cnNpdmVseSgpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgZnVuY3Rpb24gc2VhcmNoKHN0YWNrQXJ0aWZhY3RzOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSwgYXNzZW1ibGllczogQ2xvdWRBc3NlbWJseVtdKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10ge1xuICAgICAgaWYgKGFzc2VtYmxpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdGFja0FydGlmYWN0cztcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2hlYWQsIC4uLnRhaWxdID0gYXNzZW1ibGllcztcbiAgICAgIGNvbnN0IG5lc3RlZEFzc2VtYmxpZXMgPSBoZWFkLm5lc3RlZEFzc2VtYmxpZXMubWFwKGFzbSA9PiBhc20ubmVzdGVkQXNzZW1ibHkpO1xuICAgICAgcmV0dXJuIHNlYXJjaChzdGFja0FydGlmYWN0cy5jb25jYXQoaGVhZC5zdGFja3MpLCB0YWlsLmNvbmNhdChuZXN0ZWRBc3NlbWJsaWVzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlYXJjaChbXSwgW3RoaXNdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmVzdGVkIGFzc2VtYmx5IGFydGlmYWN0LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCBUaGUgYXJ0aWZhY3QgSUQgb2YgdGhlIG5lc3RlZCBhc3NlbWJseVxuICAgKi9cbiAgcHVibGljIGdldE5lc3RlZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3RJZDogc3RyaW5nKTogTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdCA9IHRoaXMudHJ5R2V0QXJ0aWZhY3QoYXJ0aWZhY3RJZCk7XG4gICAgaWYgKCFhcnRpZmFjdCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgVW5hYmxlIHRvIGZpbmQgYXJ0aWZhY3Qgd2l0aCBpZCBcIiR7YXJ0aWZhY3RJZH1cImApO1xuICAgIH1cblxuICAgIGlmICghKGFydGlmYWN0IGluc3RhbmNlb2YgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0KSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgRm91bmQgYXJ0aWZhY3QgJyR7YXJ0aWZhY3RJZH0nIGJ1dCBpdCdzIG5vdCBhIG5lc3RlZCBjbG91ZCBhc3NlbWJseWApO1xuICAgIH1cblxuICAgIHJldHVybiBhcnRpZmFjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmVzdGVkIGFzc2VtYmx5LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCBUaGUgYXJ0aWZhY3QgSUQgb2YgdGhlIG5lc3RlZCBhc3NlbWJseVxuICAgKi9cbiAgcHVibGljIGdldE5lc3RlZEFzc2VtYmx5KGFydGlmYWN0SWQ6IHN0cmluZyk6IENsb3VkQXNzZW1ibHkge1xuICAgIHJldHVybiB0aGlzLmdldE5lc3RlZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3RJZCkubmVzdGVkQXNzZW1ibHk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdHJlZSBtZXRhZGF0YSBhcnRpZmFjdCBmcm9tIHRoaXMgYXNzZW1ibHkuXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gbWV0YWRhdGEgYXJ0aWZhY3QgYnkgdGhhdCBuYW1lXG4gICAqIEByZXR1cm5zIGEgYFRyZWVDbG91ZEFydGlmYWN0YCBvYmplY3QgaWYgdGhlcmUgaXMgb25lIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0LCBgdW5kZWZpbmVkYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgdHJlZSgpOiBUcmVlQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdHJlZXMgPSB0aGlzLmFydGlmYWN0cy5maWx0ZXIoYSA9PiBhLm1hbmlmZXN0LnR5cGUgPT09IGN4c2NoZW1hLkFydGlmYWN0VHlwZS5DREtfVFJFRSk7XG4gICAgaWYgKHRyZWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKHRyZWVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYE11bHRpcGxlIGFydGlmYWN0cyBvZiB0eXBlICR7Y3hzY2hlbWEuQXJ0aWZhY3RUeXBlLkNES19UUkVFfSBmb3VuZCBpbiBtYW5pZmVzdGApO1xuICAgIH1cbiAgICBjb25zdCB0cmVlID0gdHJlZXNbMF07XG5cbiAgICBpZiAoISh0cmVlIGluc3RhbmNlb2YgVHJlZUNsb3VkQXJ0aWZhY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdcIlRyZWVcIiBhcnRpZmFjdCBpcyBub3Qgb2YgZXhwZWN0ZWQgdHlwZScpO1xuICAgIH1cblxuICAgIHJldHVybiB0cmVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGFsbCB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3RzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN0YWNrcygpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbHRlcihpc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk7XG5cbiAgICBmdW5jdGlvbiBpc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4OiBhbnkpOiB4IGlzIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB7XG4gICAgICByZXR1cm4geCBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5lc3RlZCBhc3NlbWJseSBhcnRpZmFjdHMgaW4gdGhpcyBhc3NlbWJseVxuICAgKi9cbiAgcHVibGljIGdldCBuZXN0ZWRBc3NlbWJsaWVzKCk6IE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5hcnRpZmFjdHMuZmlsdGVyKGlzTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0KTtcblxuICAgIGZ1bmN0aW9uIGlzTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0KHg6IGFueSk6IHggaXMgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVEZXBzKCkge1xuICAgIGZvciAoY29uc3QgYXJ0aWZhY3Qgb2YgdGhpcy5hcnRpZmFjdHMpIHtcbiAgICAgIGlnbm9yZShhcnRpZmFjdC5kZXBlbmRlbmNpZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXJ0aWZhY3RzKHRvcG9Tb3J0OiBib29sZWFuKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PENsb3VkQXJ0aWZhY3Q+KCk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgYXJ0aWZhY3RdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3QuYXJ0aWZhY3RzIHx8IHsgfSkpIHtcbiAgICAgIGNvbnN0IGNsb3VkYXJ0aWZhY3QgPSBDbG91ZEFydGlmYWN0LmZyb21NYW5pZmVzdCh0aGlzLCBuYW1lLCBhcnRpZmFjdCk7XG4gICAgICBpZiAoY2xvdWRhcnRpZmFjdCkge1xuICAgICAgICByZXN1bHQucHVzaChjbG91ZGFydGlmYWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG9wb1NvcnQgPyB0b3BvbG9naWNhbFNvcnQocmVzdWx0LCB4ID0+IHguaWQsIHggPT4geC5fZGVwZW5kZW5jeUlEcykgOiByZXN1bHQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgQ2xvdWRBc3NlbWJseUJ1aWxkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZEFzc2VtYmx5QnVpbGRlclByb3BzIHtcbiAgLyoqXG4gICAqIFVzZSB0aGUgZ2l2ZW4gYXNzZXQgb3V0cHV0IGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNhbWUgYXMgdGhlIG1hbmlmZXN0IG91dGRpclxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRPdXRkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgYnVpbGRlciBpcyBmb3IgYSBuZXN0ZWQgYXNzZW1ibHksIHRoZSBwYXJlbnQgYXNzZW1ibHkgYnVpbGRlclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgaXMgYSByb290IGFzc2VtYmx5XG4gICAqL1xuICByZWFkb25seSBwYXJlbnRCdWlsZGVyPzogQ2xvdWRBc3NlbWJseUJ1aWxkZXI7XG59XG5cbi8qKlxuICogQ2FuIGJlIHVzZWQgdG8gYnVpbGQgYSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQXNzZW1ibHlCdWlsZGVyIHtcbiAgLyoqXG4gICAqIFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcmVzdWx0aW5nIGNsb3VkIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIGFzc2V0cyBvZiB0aGlzIENsb3VkIEFzc2VtYmx5IHNob3VsZCBiZSBzdG9yZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldE91dGRpcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXJ0aWZhY3RzOiB7IFtpZDogc3RyaW5nXTogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCB9ID0geyB9O1xuICBwcml2YXRlIHJlYWRvbmx5IG1pc3NpbmcgPSBuZXcgQXJyYXk8Y3hzY2hlbWEuTWlzc2luZ0NvbnRleHQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50QnVpbGRlcj86IENsb3VkQXNzZW1ibHlCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhIGNsb3VkIGFzc2VtYmx5IGJ1aWxkZXIuXG4gICAqIEBwYXJhbSBvdXRkaXIgVGhlIG91dHB1dCBkaXJlY3RvcnksIHVzZXMgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpZiB1bmRlZmluZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG91dGRpcj86IHN0cmluZywgcHJvcHM6IENsb3VkQXNzZW1ibHlCdWlsZGVyUHJvcHMgPSB7fSkge1xuICAgIHRoaXMub3V0ZGlyID0gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcik7XG4gICAgdGhpcy5hc3NldE91dGRpciA9IHByb3BzLmFzc2V0T3V0ZGlyID8/IHRoaXMub3V0ZGlyO1xuICAgIHRoaXMucGFyZW50QnVpbGRlciA9IHByb3BzLnBhcmVudEJ1aWxkZXI7XG5cbiAgICAvLyB3ZSBsZXZlcmFnZSB0aGUgZmFjdCB0aGF0IG91dGRpciBpcyBsb25nLWxpdmVkIHRvIGF2b2lkIHN0YWdpbmcgYXNzZXRzIGludG8gaXRcbiAgICAvLyB0aGF0IHdlcmUgYWxyZWFkeSBzdGFnZWQgKGNvcHlpbmcgY2FuIGJlIGV4cGVuc2l2ZSkuIHRoaXMgaXMgYWNoaWV2ZWQgYnkgdGhlIGZhY3RcbiAgICAvLyB0aGF0IGFzc2V0cyB1c2UgYSBzb3VyY2UgaGFzaCBhcyB0aGVpciBuYW1lLiBvdGhlciBhcnRpZmFjdHMsIGFuZCB0aGUgbWFuaWZlc3QgaXRzZWxmLFxuICAgIC8vIHdpbGwgb3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzIGFzIG5lZWRlZC5cbiAgICBlbnN1cmVEaXJTeW5jKHRoaXMub3V0ZGlyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFydGlmYWN0IGludG8gdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBhcnRpZmFjdC5cbiAgICogQHBhcmFtIG1hbmlmZXN0IFRoZSBhcnRpZmFjdCBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFkZEFydGlmYWN0KGlkOiBzdHJpbmcsIG1hbmlmZXN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgdGhpcy5hcnRpZmFjdHNbaWRdID0gZmlsdGVyVW5kZWZpbmVkKG1hbmlmZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnRzIHRoYXQgc29tZSBjb250ZXh0IGlzIG1pc3NpbmcgaW4gb3JkZXIgZm9yIHRoaXMgY2xvdWQgYXNzZW1ibHkgdG8gYmUgZnVsbHkgc3ludGhlc2l6ZWQuXG4gICAqIEBwYXJhbSBtaXNzaW5nIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRNaXNzaW5nKG1pc3Npbmc6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMubWlzc2luZy5ldmVyeShtID0+IG0ua2V5ICE9PSBtaXNzaW5nLmtleSkpIHtcbiAgICAgIHRoaXMubWlzc2luZy5wdXNoKG1pc3NpbmcpO1xuICAgIH1cbiAgICAvLyBBbHNvIHJlcG9ydCBpbiBwYXJlbnRcbiAgICB0aGlzLnBhcmVudEJ1aWxkZXI/LmFkZE1pc3NpbmcobWlzc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogRmluYWxpemVzIHRoZSBjbG91ZCBhc3NlbWJseSBpbnRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHJldHVybnMgYVxuICAgKiBgQ2xvdWRBc3NlbWJseWAgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5zcGVjdCB0aGUgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgYnVpbGRBc3NlbWJseShvcHRpb25zOiBBc3NlbWJseUJ1aWxkT3B0aW9ucyA9IHsgfSk6IENsb3VkQXNzZW1ibHkge1xuICAgIC8vIGV4cGxpY2l0bHkgaW5pdGlhbGl6aW5nIHRoaXMgdHlwZSB3aWxsIGhlbHAgdXMgZGV0ZWN0XG4gICAgLy8gYnJlYWtpbmcgY2hhbmdlcy4gKEZvciBleGFtcGxlIGFkZGluZyBhIHJlcXVpcmVkIHByb3BlcnR5IHdpbGwgYnJlYWsgY29tcGlsYXRpb24pLlxuICAgIGxldCBtYW5pZmVzdDogY3hzY2hlbWEuQXNzZW1ibHlNYW5pZmVzdCA9IHtcbiAgICAgIHZlcnNpb246IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKSxcbiAgICAgIGFydGlmYWN0czogdGhpcy5hcnRpZmFjdHMsXG4gICAgICBydW50aW1lOiBvcHRpb25zLnJ1bnRpbWVJbmZvLFxuICAgICAgbWlzc2luZzogdGhpcy5taXNzaW5nLmxlbmd0aCA+IDAgPyB0aGlzLm1pc3NpbmcgOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIC8vIG5vdyB3ZSBjYW4gZmlsdGVyXG4gICAgbWFuaWZlc3QgPSBmaWx0ZXJVbmRlZmluZWQobWFuaWZlc3QpO1xuXG4gICAgY29uc3QgbWFuaWZlc3RGaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dGRpciwgTUFOSUZFU1RfRklMRSk7XG4gICAgY3hzY2hlbWEuTWFuaWZlc3Quc2F2ZUFzc2VtYmx5TWFuaWZlc3QobWFuaWZlc3QsIG1hbmlmZXN0RmlsZVBhdGgpO1xuXG4gICAgLy8gXCJiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVwiOiBpbiBvcmRlciBmb3IgdGhlIG9sZCBDTEkgdG8gdGVsbCB0aGUgdXNlciB0aGV5XG4gICAgLy8gbmVlZCBhIG5ldyB2ZXJzaW9uLCB3ZSdsbCBlbWl0IHRoZSBsZWdhY3kgbWFuaWZlc3Qgd2l0aCBvbmx5IFwidmVyc2lvblwiLlxuICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgXCJDREsgVG9vbGtpdCA+PSBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGludGVyYWN0IHdpdGggdGhpcyBwcm9ncmFtLlwiXG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGhpcy5vdXRkaXIsICdjZGsub3V0JyksIEpTT04uc3RyaW5naWZ5KHsgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbiB9KSk7XG5cbiAgICByZXR1cm4gbmV3IENsb3VkQXNzZW1ibHkodGhpcy5vdXRkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXN0ZWQgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVOZXN0ZWRBc3NlbWJseShhcnRpZmFjdElkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlOYW1lID0gYXJ0aWZhY3RJZDtcbiAgICBjb25zdCBpbm5lckFzbURpciA9IHBhdGguam9pbih0aGlzLm91dGRpciwgZGlyZWN0b3J5TmFtZSk7XG5cbiAgICB0aGlzLmFkZEFydGlmYWN0KGFydGlmYWN0SWQsIHtcbiAgICAgIHR5cGU6IGN4c2NoZW1hLkFydGlmYWN0VHlwZS5ORVNURURfQ0xPVURfQVNTRU1CTFksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGRpcmVjdG9yeU5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgfSBhcyBjeHNjaGVtYS5OZXN0ZWRDbG91ZEFzc2VtYmx5UHJvcGVydGllcyxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgQ2xvdWRBc3NlbWJseUJ1aWxkZXIoaW5uZXJBc21EaXIsIHtcbiAgICAgIC8vIFJldXNlIHRoZSBzYW1lIGFzc2V0IG91dHB1dCBkaXJlY3RvcnkgYXMgdGhlIGN1cnJlbnQgQ2FzbSBidWlsZGVyXG4gICAgICBhc3NldE91dGRpcjogdGhpcy5hc3NldE91dGRpcixcbiAgICAgIHBhcmVudEJ1aWxkZXI6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBkZWxldGUoKSB7XG4gICAgZnMucm1TeW5jKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Igd2hlbiBgUnVudGltZUluZm9gXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5zeW50aFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVJbmZvIGV4dGVuZHMgY3hzY2hlbWEuUnVudGltZUluZm8ge1xuXG59XG5cbi8qKlxuICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIHdoZW4gYE1ldGFkYXRhRW50cnlgXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5tZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhRW50cnkgZXh0ZW5kcyBjeHNjaGVtYS5NZXRhZGF0YUVudHJ5IHtcblxufVxuXG4vKipcbiAqIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciB3aGVuIGBNaXNzaW5nQ29udGV4dGBcbiAqIHdhcyBkZWZpbmVkIGhlcmUuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaXRzIHVzZWQgYXMgYW4gaW5wdXQgaW4gdGhlIHN0YWJsZVxuICogQGF3cy1jZGsvY29yZSBsaWJyYXJ5LlxuICpcbiAqIEBkZXByZWNhdGVkIG1vdmVkIHRvIHBhY2thZ2UgJ2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSdcbiAqIEBzZWUgY29yZS5TdGFjay5yZXBvcnRNaXNzaW5nQ29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBwcm92aWRlci1zcGVjaWZpYyBvcHRpb25zLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm9wczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseUJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHRoZSBzcGVjaWZpZWQgcnVudGltZSBpbmZvcm1hdGlvbiAobW9kdWxlIHZlcnNpb25zKSBpbiBtYW5pZmVzdC5cbiAgICogQGRlZmF1bHQgLSBpZiB0aGlzIG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkLCBydW50aW1lIGluZm8gd2lsbCBub3QgYmUgaW5jbHVkZWRcbiAgICogQGRlcHJlY2F0ZWQgQWxsIHRlbXBsYXRlIG1vZGlmaWNhdGlvbnMgdGhhdCBzaG91bGQgcmVzdWx0IGZyb20gdGhpcyBzaG91bGRcbiAgICogaGF2ZSBhbHJlYWR5IGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBydW50aW1lSW5mbz86IFJ1bnRpbWVJbmZvO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBjb3B5IG9mIGBvYmpgIHdpdGhvdXQgdW5kZWZpbmVkIHZhbHVlcyBpbiBtYXBzIG9yIGFycmF5cy5cbiAqL1xuZnVuY3Rpb24gZmlsdGVyVW5kZWZpbmVkKG9iajogYW55KTogYW55IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmouZmlsdGVyKHggPT4geCAhPT0gdW5kZWZpbmVkKS5tYXAoeCA9PiBmaWx0ZXJVbmRlZmluZWQoeCkpO1xuICB9XG5cbiAgaWYgKHR5cGVvZihvYmopID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJldDogYW55ID0geyB9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcmV0W2tleV0gPSBmaWx0ZXJVbmRlZmluZWQodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gaWdub3JlKF94OiBhbnkpIHtcbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIFR1cm4gdGhlIGdpdmVuIG9wdGlvbmFsIG91dHB1dCBkaXJlY3RvcnkgaW50byBhIGZpeGVkIG91dHB1dCBkaXJlY3RvcnlcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcj86IHN0cmluZykge1xuICByZXR1cm4gb3V0ZGlyID8/IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihmcy5yZWFscGF0aFN5bmMob3MudG1wZGlyKCkpLCAnY2RrLm91dCcpKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlRGlyU3luYyhkaXI6IHN0cmluZykge1xuICBpZiAoZnMuZXhpc3RzU3luYyhkaXIpKSB7XG4gICAgaWYgKCFmcy5zdGF0U3luYyhkaXIpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYCR7ZGlyfSBtdXN0IGJlIGEgZGlyZWN0b3J5YCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZzLm1rZGlyU3luYyhkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybnMganVzdCBhbiBBTUkgSURcbiAqL1xuZXhwb3J0IHR5cGUgQW1pQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = void 0;\n/**\n * This context key is used to determine the value of `stack.availabilityZones`\n * when a stack is not associated with a specific account/region (env-agnostic).\n *\n * If this key is passed in the context, the values will be used. Otherwise, a\n * system-fallback which uses `Fn::GetAZs` will be used.\n */\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = 'aws:cdk:availability-zones:fallback';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWxhYmlsaXR5LXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXZhaWxhYmlsaXR5LXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7R0FNRztBQUNVLFFBQUEsc0NBQXNDLEdBQUcscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29udGV4dCBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIGBzdGFjay5hdmFpbGFiaWxpdHlab25lc2BcbiAqIHdoZW4gYSBzdGFjayBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYWNjb3VudC9yZWdpb24gKGVudi1hZ25vc3RpYykuXG4gKlxuICogSWYgdGhpcyBrZXkgaXMgcGFzc2VkIGluIHRoZSBjb250ZXh0LCB0aGUgdmFsdWVzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCBhXG4gKiBzeXN0ZW0tZmFsbGJhY2sgd2hpY2ggdXNlcyBgRm46OkdldEFac2Agd2lsbCBiZSB1c2VkLlxuICovXG5leHBvcnQgY29uc3QgQVZBSUxBQklMSVRZX1pPTkVfRkFMTEJBQ0tfQ09OVEVYVF9LRVkgPSAnYXdzOmNkazphdmFpbGFiaWxpdHktem9uZXM6ZmFsbGJhY2snO1xuXG4vKipcbiAqIFJlc3BvbnNlIG9mIHRoZSBBWiBwcm92aWRlciBsb29rcyBsaWtlIHRoaXNcbiAqL1xuZXhwb3J0IHR5cGUgQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UmVzcG9uc2UgPSBzdHJpbmdbXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = void 0;\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = 'endpoint-service-availability-zones';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLDJDQUEyQyxHQUFHLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuXG4vKipcbiAqIFF1ZXJ5IHRvIGhvc3RlZCB6b25lIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSB7XG4gIC8qKlxuICAgKiBRdWVyeSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBRdWVyeSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgc2VydmljZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBvZiB0aGUgQVogcHJvdmlkZXIgbG9va3MgbGlrZSB0aGlzXG4gKi9cbmV4cG9ydCB0eXBlIEVuZHBvaW50U2VydmljZUF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nW107XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIGtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRSZXNwb25zZSB7XG5cbiAgLyoqXG4gICAqIElkIG9mIHRoZSBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerIpAddressType = void 0;\n/**\n * Load balancer ip address type.\n */\nvar LoadBalancerIpAddressType;\n(function (LoadBalancerIpAddressType) {\n /**\n * IPV4 ip address\n */\n LoadBalancerIpAddressType[\"IPV4\"] = \"ipv4\";\n /**\n * Dual stack address\n */\n LoadBalancerIpAddressType[\"DUAL_STACK\"] = \"dualstack\";\n /**\n * IPv6 only public addresses, with private IPv4 and IPv6 addresses\n */\n LoadBalancerIpAddressType[\"DUAL_STACK_WITHOUT_PUBLIC_IPV4\"] = \"dualstack-without-public-ipv4\";\n})(LoadBalancerIpAddressType || (exports.LoadBalancerIpAddressType = LoadBalancerIpAddressType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvYWQtYmFsYW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLHlCQWVYO0FBZkQsV0FBWSx5QkFBeUI7SUFDbkM7O09BRUc7SUFDSCwwQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxREFBd0IsQ0FBQTtJQUV4Qjs7T0FFRztJQUNILDZGQUFnRSxDQUFBO0FBQ2xFLENBQUMsRUFmVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWVwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTG9hZCBiYWxhbmNlciBpcCBhZGRyZXNzIHR5cGUuXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlcklwQWRkcmVzc1R5cGUge1xuICAvKipcbiAgICogSVBWNCBpcCBhZGRyZXNzXG4gICAqL1xuICBJUFY0ID0gJ2lwdjQnLFxuXG4gIC8qKlxuICAgKiBEdWFsIHN0YWNrIGFkZHJlc3NcbiAgICovXG4gIERVQUxfU1RBQ0sgPSAnZHVhbHN0YWNrJyxcblxuICAvKipcbiAgICogSVB2NiBvbmx5IHB1YmxpYyBhZGRyZXNzZXMsIHdpdGggcHJpdmF0ZSBJUHY0IGFuZCBJUHY2IGFkZHJlc3Nlc1xuICAgKi9cbiAgRFVBTF9TVEFDS19XSVRIT1VUX1BVQkxJQ19JUFY0ID0gJ2R1YWxzdGFjay13aXRob3V0LXB1YmxpYy1pcHY0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhvc3RlZCB6b25lIElEIG9mIHRoZSBsb2FkIGJhbGFuY2VyJ3MgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3MgRE5TIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckRuc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiBJUCBhZGRyZXNzXG4gICAqL1xuICByZWFkb25seSBpcEFkZHJlc3NUeXBlOiBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3Mgc2VjdXJpdHkgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTG9hZCBiYWxhbmNlcidzIFZQQ1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxpc3RlbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdGhlIGxpc3RlbmVyIGlzIGxpc3RlbmluZyBvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyUG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXBzIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIFNlY3VyaXR5R3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENvbnRleHRSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAncyBpZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzZWN1cml0eSBncm91cCBhbGxvd3MgYWxsIG91dGJvdW5kIHRyYWZmaWMuIFRoaXMgd2lsbCBiZSB0cnVlXG4gICAqIHdoZW4gdGhlIHNlY3VyaXR5IGdyb3VwIGhhcyBhbGwtcHJvdG9jb2wgZWdyZXNzIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBib3RoXG4gICAqIGAwLjAuMC4wLzBgIGFuZCBgOjovMGAuXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kOiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VpcSubnetGroupType = void 0;\n/**\n * The type of subnet group.\n * Same as SubnetType in the aws-cdk-lib/aws-ec2 package,\n * but we can't use that because of cyclical dependencies.\n */\nvar VpcSubnetGroupType;\n(function (VpcSubnetGroupType) {\n /** Public subnet group type. */\n VpcSubnetGroupType[\"PUBLIC\"] = \"Public\";\n /** Private subnet group type. */\n VpcSubnetGroupType[\"PRIVATE\"] = \"Private\";\n /** Isolated subnet group type. */\n VpcSubnetGroupType[\"ISOLATED\"] = \"Isolated\";\n})(VpcSubnetGroupType || (exports.VpcSubnetGroupType = VpcSubnetGroupType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxJQUFZLGtCQVNYO0FBVEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0NBQWdDO0lBQ2hDLHVDQUFpQixDQUFBO0lBRWpCLGlDQUFpQztJQUNqQyx5Q0FBbUIsQ0FBQTtJQUVuQixrQ0FBa0M7SUFDbEMsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVRXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgdHlwZSBvZiBzdWJuZXQgZ3JvdXAuXG4gKiBTYW1lIGFzIFN1Ym5ldFR5cGUgaW4gdGhlIGF3cy1jZGstbGliL2F3cy1lYzIgcGFja2FnZSxcbiAqIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBiZWNhdXNlIG9mIGN5Y2xpY2FsIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGVudW0gVnBjU3VibmV0R3JvdXBUeXBlIHtcbiAgLyoqIFB1YmxpYyBzdWJuZXQgZ3JvdXAgdHlwZS4gKi9cbiAgUFVCTElDID0gJ1B1YmxpYycsXG5cbiAgLyoqIFByaXZhdGUgc3VibmV0IGdyb3VwIHR5cGUuICovXG4gIFBSSVZBVEUgPSAnUHJpdmF0ZScsXG5cbiAgLyoqIElzb2xhdGVkIHN1Ym5ldCBncm91cCB0eXBlLiAqL1xuICBJU09MQVRFRCA9ICdJc29sYXRlZCcsXG59XG5cbi8qKlxuICogQSBzdWJuZXQgcmVwcmVzZW50YXRpb24gdGhhdCB0aGUgVlBDIHByb3ZpZGVyIHVzZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0IHtcbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIG9mIHRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGlzIHN1Ym5ldCBpcyBpblxuICAgKiAoZm9yIGV4YW1wbGUsICd1cy13ZXN0LTJhJykuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSByb3V0ZSB0YWJsZSBmb3IgdGhpcyBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHJvdXRlVGFibGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDSURSIHJhbmdlIG9mIHRoZSBzdWJuZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDSURSIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNpZHI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBncm91cCBvZiBzdWJuZXRzIHJldHVybmVkIGJ5IHRoZSBWUEMgcHJvdmlkZXIuXG4gKiBUaGUgaW5jbHVkZWQgc3VibmV0cyBkbyBOT1QgaGF2ZSB0byBiZSBzeW1tZXRyaWMhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0R3JvdXAge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN1Ym5ldCBncm91cCxcbiAgICogZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0IHRoZSB0YWdzIG9mIG9mIHRoZSBzdWJuZXRzXG4gICAqIHRoYXQgYmVsb25nIHRvIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgdHlwZSBvZiB0aGUgc3VibmV0IGdyb3VwLiAqL1xuICByZWFkb25seSB0eXBlOiBWcGNTdWJuZXRHcm91cFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBncm91cC5cbiAgICogVGhlcmUgaXMgbm8gY29uZGl0aW9uIHRoYXQgdGhlIHN1Ym5ldHMgaGF2ZSB0byBiZSBzeW1tZXRyaWNcbiAgICogaW4gdGhlIGdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0czogVnBjU3VibmV0W107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhIGRpc2NvdmVyZWQgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFJlc3BvbnNlIHtcblxuICAvKipcbiAgICogVlBDIGlkXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgY2lkclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENJRFIgaW5mb3JtYXRpb24gbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBWnNcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwdWJsaWMgc3VibmV0c1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMocHVibGljR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzLlxuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwcml2YXRlIHN1Ym5ldHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwc1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKHByaXZhdGVHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBpc29sYXRlZCBzdWJuZXRzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhpc29sYXRlZEdyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IGlzb2xhdGVkU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHMuXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIFZQTiBnYXRld2F5IElEXG4gICAqL1xuICByZWFkb25seSB2cG5HYXRld2F5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgZ3JvdXBzIGRpc2NvdmVyZWQgZm9yIHRoZSBnaXZlbiBWUEMuXG4gICAqIFVubGlrZSB0aGUgYWJvdmUgcHJvcGVydGllcywgdGhpcyB3aWxsIGluY2x1ZGUgYXN5bW1ldHJpYyBzdWJuZXRzLFxuICAgKiBpZiB0aGUgVlBDIGhhcyBhbnkuXG4gICAqIFRoaXMgcHJvcGVydHkgd2lsbCBvbmx5IGJlIHBvcHVsYXRlZCBpZiBgVnBjQ29udGV4dFF1ZXJ5LnJldHVybkFzeW1tZXRyaWNTdWJuZXRzYFxuICAgKiBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN1Ym5ldCBncm91cHMgd2lsbCBiZSByZXR1cm5lZCB1bmxlc3MgYFZwY0NvbnRleHRRdWVyeS5yZXR1cm5Bc3ltbWV0cmljU3VibmV0c2AgaXMgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBzPzogVnBjU3VibmV0R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBpbiB3aGljaCB0aGUgVlBDIGlzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlZ2lvbiBvZiB0aGUgcGFyZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgQVdTIGFjY291bnQgdGhhdCBvd25zIHRoZSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBhY2NvdW50IGlkIG9mIHRoZSBwYXJlbnQgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG93bmVyQWNjb3VudElkPzogc3RyaW5nO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSMPARAM_NO_INVALIDATE = exports.PROVIDER_ERROR_KEY = exports.TOOLKIT_VERSION_ENV = exports.CLI_VERSION_ENV = exports.CLI_ASM_VERSION_ENV = exports.DEFAULT_REGION_ENV = exports.DEFAULT_ACCOUNT_ENV = exports.CONTEXT_OVERFLOW_LOCATION_ENV = exports.CONTEXT_ENV = exports.OUTDIR_ENV = void 0;\n// output directory into which to emit synthesis outputs. CDK doesn't allow outdir\n// to be specified both through the CDK_OUTDIR environment variable and the through\n// aws:cdk:outdir context.\nexports.OUTDIR_ENV = 'CDK_OUTDIR';\nexports.CONTEXT_ENV = 'CDK_CONTEXT_JSON';\n/**\n * The name of the temporary file where the context is stored.\n */\nexports.CONTEXT_OVERFLOW_LOCATION_ENV = 'CONTEXT_OVERFLOW_LOCATION_ENV';\n/**\n * Environment variable set by the CDK CLI with the default AWS account ID.\n */\nexports.DEFAULT_ACCOUNT_ENV = 'CDK_DEFAULT_ACCOUNT';\n/**\n * Environment variable set by the CDK CLI with the default AWS region.\n */\nexports.DEFAULT_REGION_ENV = 'CDK_DEFAULT_REGION';\n/**\n * Version of Cloud Assembly expected by CDK Toolkit.\n *\n * Despite it's name, this value applies to all version of the CDK Toolkit, not just the CLI.\n *\n * CLI started emitting this at 1.10.1\n */\nexports.CLI_ASM_VERSION_ENV = 'CDK_CLI_ASM_VERSION';\n/**\n * Version of the CLI currently running.\n *\n * CLI started emitting this at 1.10.1\n * Will not be present if the CDK app is run by any Toolkit variation other than the CLI.\n */\nexports.CLI_VERSION_ENV = 'CDK_CLI_VERSION';\n/**\n * Package & version of the CDK Toolkit running the app.\n *\n * In the format \"@x.y.z\", e.g \"aws-cdk@2.1006.0\" or \"@aws-cdk/toolkit-lib@1.0.0\"\n */\nexports.TOOLKIT_VERSION_ENV = 'CDK_TOOLKIT_VERSION';\n/**\n * If a context value is an object with this key, it indicates an error\n */\nexports.PROVIDER_ERROR_KEY = '$providerError';\n/**\n * This SSM parameter does not invalidate the template\n *\n * If this string occurs in the description of an SSM parameter, the CLI\n * will not assume that the stack must always be redeployed.\n */\nexports.SSMPARAM_NO_INVALIDATE = '[cdk:skip]';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3hhcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjeGFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRkFBa0Y7QUFDbEYsbUZBQW1GO0FBQ25GLDBCQUEwQjtBQUNiLFFBQUEsVUFBVSxHQUFHLFlBQVksQ0FBQztBQUMxQixRQUFBLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztBQUU5Qzs7R0FFRztBQUNVLFFBQUEsNkJBQTZCLEdBQUcsK0JBQStCLENBQUM7QUFFN0U7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBRXpEOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztBQUV2RDs7Ozs7O0dBTUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBRXpEOzs7OztHQUtHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7QUFFekQ7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDO0FBRW5EOzs7OztHQUtHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBvdXRwdXQgZGlyZWN0b3J5IGludG8gd2hpY2ggdG8gZW1pdCBzeW50aGVzaXMgb3V0cHV0cy4gQ0RLIGRvZXNuJ3QgYWxsb3cgb3V0ZGlyXG4vLyB0byBiZSBzcGVjaWZpZWQgYm90aCB0aHJvdWdoIHRoZSBDREtfT1VURElSIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZCB0aGUgdGhyb3VnaFxuLy8gYXdzOmNkazpvdXRkaXIgY29udGV4dC5cbmV4cG9ydCBjb25zdCBPVVRESVJfRU5WID0gJ0NES19PVVRESVInO1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfRU5WID0gJ0NES19DT05URVhUX0pTT04nO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSB0ZW1wb3JhcnkgZmlsZSB3aGVyZSB0aGUgY29udGV4dCBpcyBzdG9yZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBDT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOViA9ICdDT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOVic7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUgc2V0IGJ5IHRoZSBDREsgQ0xJIHdpdGggdGhlIGRlZmF1bHQgQVdTIGFjY291bnQgSUQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FDQ09VTlRfRU5WID0gJ0NES19ERUZBVUxUX0FDQ09VTlQnO1xuXG4vKipcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlIHNldCBieSB0aGUgQ0RLIENMSSB3aXRoIHRoZSBkZWZhdWx0IEFXUyByZWdpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFR0lPTl9FTlYgPSAnQ0RLX0RFRkFVTFRfUkVHSU9OJztcblxuLyoqXG4gKiBWZXJzaW9uIG9mIENsb3VkIEFzc2VtYmx5IGV4cGVjdGVkIGJ5IENESyBUb29sa2l0LlxuICpcbiAqIERlc3BpdGUgaXQncyBuYW1lLCB0aGlzIHZhbHVlIGFwcGxpZXMgdG8gYWxsIHZlcnNpb24gb2YgdGhlIENESyBUb29sa2l0LCBub3QganVzdCB0aGUgQ0xJLlxuICpcbiAqIENMSSBzdGFydGVkIGVtaXR0aW5nIHRoaXMgYXQgMS4xMC4xXG4gKi9cbmV4cG9ydCBjb25zdCBDTElfQVNNX1ZFUlNJT05fRU5WID0gJ0NES19DTElfQVNNX1ZFUlNJT04nO1xuXG4vKipcbiAqIFZlcnNpb24gb2YgdGhlIENMSSBjdXJyZW50bHkgcnVubmluZy5cbiAqXG4gKiBDTEkgc3RhcnRlZCBlbWl0dGluZyB0aGlzIGF0IDEuMTAuMVxuICogV2lsbCBub3QgYmUgcHJlc2VudCBpZiB0aGUgQ0RLIGFwcCBpcyBydW4gYnkgYW55IFRvb2xraXQgdmFyaWF0aW9uIG90aGVyIHRoYW4gdGhlIENMSS5cbiAqL1xuZXhwb3J0IGNvbnN0IENMSV9WRVJTSU9OX0VOViA9ICdDREtfQ0xJX1ZFUlNJT04nO1xuXG4vKipcbiAqIFBhY2thZ2UgJiB2ZXJzaW9uIG9mIHRoZSBDREsgVG9vbGtpdCBydW5uaW5nIHRoZSBhcHAuXG4gKlxuICogSW4gdGhlIGZvcm1hdCBcIjxwYWNrYWdlPkB4LnkuelwiLCBlLmcgIFwiYXdzLWNka0AyLjEwMDYuMFwiIG9yIFwiQGF3cy1jZGsvdG9vbGtpdC1saWJAMS4wLjBcIlxuICovXG5leHBvcnQgY29uc3QgVE9PTEtJVF9WRVJTSU9OX0VOViA9ICdDREtfVE9PTEtJVF9WRVJTSU9OJztcblxuLyoqXG4gKiBJZiBhIGNvbnRleHQgdmFsdWUgaXMgYW4gb2JqZWN0IHdpdGggdGhpcyBrZXksIGl0IGluZGljYXRlcyBhbiBlcnJvclxuICovXG5leHBvcnQgY29uc3QgUFJPVklERVJfRVJST1JfS0VZID0gJyRwcm92aWRlckVycm9yJztcblxuLyoqXG4gKiBUaGlzIFNTTSBwYXJhbWV0ZXIgZG9lcyBub3QgaW52YWxpZGF0ZSB0aGUgdGVtcGxhdGVcbiAqXG4gKiBJZiB0aGlzIHN0cmluZyBvY2N1cnMgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIGFuIFNTTSBwYXJhbWV0ZXIsIHRoZSBDTElcbiAqIHdpbGwgbm90IGFzc3VtZSB0aGF0IHRoZSBzdGFjayBtdXN0IGFsd2F5cyBiZSByZWRlcGxveWVkLlxuICovXG5leHBvcnQgY29uc3QgU1NNUEFSQU1fTk9fSU5WQUxJREFURSA9ICdbY2RrOnNraXBdJztcbiJdfQ==","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentUtils = exports.UNKNOWN_REGION = exports.UNKNOWN_ACCOUNT = void 0;\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst error_1 = require(\"./private/error\");\n/**\n * Parser for the artifact environment field.\n *\n * Account validation is relaxed to allow account aliasing in the future.\n */\nconst AWS_ENV_REGEX = /aws\\:\\/\\/([a-z0-9A-Z\\-\\@\\.\\_]+)\\/([a-z\\-0-9]+)/;\nexports.UNKNOWN_ACCOUNT = 'unknown-account';\nexports.UNKNOWN_REGION = 'unknown-region';\nclass EnvironmentUtils {\n static parse(environment) {\n const env = AWS_ENV_REGEX.exec(environment);\n if (!env) {\n throw new error_1.CloudAssemblyError(`Unable to parse environment specification \"${environment}\". ` +\n 'Expected format: aws://account/region');\n }\n const [, account, region] = env;\n if (!account || !region) {\n throw new error_1.CloudAssemblyError(`Invalid environment specification: ${environment}`);\n }\n return { account, region, name: environment };\n }\n /**\n * Build an environment object from an account and region\n */\n static make(account, region) {\n return { account, region, name: this.format(account, region) };\n }\n /**\n * Format an environment string from an account and region\n */\n static format(account, region) {\n return `aws://${account}/${region}`;\n }\n}\nexports.EnvironmentUtils = EnvironmentUtils;\n_a = JSII_RTTI_SYMBOL_1;\nEnvironmentUtils[_a] = { fqn: \"@aws-cdk/cx-api.EnvironmentUtils\", version: \"2.212.0\" };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUFxRDtBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsZ0RBQWdELENBQUM7QUFnQjFELFFBQUEsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBQ3BDLFFBQUEsY0FBYyxHQUFHLGdCQUFnQixDQUFDO0FBRS9DLE1BQWEsZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBbUI7UUFDckMsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksMEJBQWtCLENBQzFCLDhDQUE4QyxXQUFXLEtBQUs7Z0JBQzlELHVDQUF1QyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxzQ0FBc0MsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO0tBQy9DO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0tBQ2hFO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQ2xELE9BQU8sU0FBUyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7S0FDckM7O0FBN0JILDRDQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4vcHJpdmF0ZS9lcnJvcic7XG5cbi8qKlxuICogUGFyc2VyIGZvciB0aGUgYXJ0aWZhY3QgZW52aXJvbm1lbnQgZmllbGQuXG4gKlxuICogQWNjb3VudCB2YWxpZGF0aW9uIGlzIHJlbGF4ZWQgdG8gYWxsb3cgYWNjb3VudCBhbGlhc2luZyBpbiB0aGUgZnV0dXJlLlxuICovXG5jb25zdCBBV1NfRU5WX1JFR0VYID0gL2F3c1xcOlxcL1xcLyhbYS16MC05QS1aXFwtXFxAXFwuXFxfXSspXFwvKFthLXpcXC0wLTldKykvO1xuXG4vKipcbiAqIE1vZGVscyBhbiBBV1MgZXhlY3V0aW9uIGVudmlyb25tZW50LCBmb3IgdXNlIHdpdGhpbiB0aGUgQ0RLIHRvb2xraXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuICAvKiogVGhlIGFyYml0cmFyeSBuYW1lIG9mIHRoaXMgZW52aXJvbm1lbnQgKHVzZXItc2V0LCBvciBhdCBsZWFzdCB1c2VyLW1lYW5pbmdmdWwpICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKiogVGhlIEFXUyBhY2NvdW50IHRoaXMgZW52aXJvbm1lbnQgZGVwbG95cyBpbnRvICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAvKiogVGhlIEFXUyByZWdpb24gbmFtZSB3aGVyZSB0aGlzIGVudmlyb25tZW50IGRlcGxveXMgaW50byAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFVOS05PV05fQUNDT1VOVCA9ICd1bmtub3duLWFjY291bnQnO1xuZXhwb3J0IGNvbnN0IFVOS05PV05fUkVHSU9OID0gJ3Vua25vd24tcmVnaW9uJztcblxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50VXRpbHMge1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKGVudmlyb25tZW50OiBzdHJpbmcpOiBFbnZpcm9ubWVudCB7XG4gICAgY29uc3QgZW52ID0gQVdTX0VOVl9SRUdFWC5leGVjKGVudmlyb25tZW50KTtcbiAgICBpZiAoIWVudikge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihcbiAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBlbnZpcm9ubWVudCBzcGVjaWZpY2F0aW9uIFwiJHtlbnZpcm9ubWVudH1cIi4gYCArXG4gICAgICAgICdFeHBlY3RlZCBmb3JtYXQ6IGF3czovL2FjY291bnQvcmVnaW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgWywgYWNjb3VudCwgcmVnaW9uXSA9IGVudjtcbiAgICBpZiAoIWFjY291bnQgfHwgIXJlZ2lvbikge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgSW52YWxpZCBlbnZpcm9ubWVudCBzcGVjaWZpY2F0aW9uOiAke2Vudmlyb25tZW50fWApO1xuICAgIH1cblxuICAgIHJldHVybiB7IGFjY291bnQsIHJlZ2lvbiwgbmFtZTogZW52aXJvbm1lbnQgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiBlbnZpcm9ubWVudCBvYmplY3QgZnJvbSBhbiBhY2NvdW50IGFuZCByZWdpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFrZShhY2NvdW50OiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nKTogRW52aXJvbm1lbnQge1xuICAgIHJldHVybiB7IGFjY291bnQsIHJlZ2lvbiwgbmFtZTogdGhpcy5mb3JtYXQoYWNjb3VudCwgcmVnaW9uKSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBhbiBlbnZpcm9ubWVudCBzdHJpbmcgZnJvbSBhbiBhY2NvdW50IGFuZCByZWdpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0KGFjY291bnQ6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgYXdzOi8vJHthY2NvdW50fS8ke3JlZ2lvbn1gO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY = exports.AUTOSCALING_GENERATE_LAUNCH_TEMPLATE = exports.EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID = exports.EFS_DENY_ANONYMOUS_ACCESS = exports.KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL = exports.KMS_ALIAS_NAME_REF = exports.INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION = exports.APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID = exports.EC2_RESTRICT_DEFAULT_SECURITY_GROUP = exports.ENABLE_EMR_SERVICE_POLICY_V2 = exports.REDSHIFT_COLUMN_ID = exports.SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY = exports.EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA = exports.APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID = exports.CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP = exports.DATABASE_PROXY_UNIQUE_RESOURCE_NAME = exports.AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT = exports.ROUTE53_PATTERNS_USE_CERTIFICATE = exports.S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY = exports.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER = exports.EVENTS_TARGET_QUEUE_SAME_ACCOUNT = exports.ENABLE_PARTITION_LITERALS = exports.APIGATEWAY_DISABLE_CLOUDWATCH_ROLE = exports.SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY = exports.S3_CREATE_DEFAULT_LOGGING_POLICY = exports.CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME = exports.VALIDATE_SNAPSHOT_REMOVAL_POLICY = exports.IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME = exports.IAM_MINIMIZE_POLICIES = exports.ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME = exports.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME = exports.ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER = exports.TARGET_PARTITIONS = exports.CHECK_SECRET_USAGE = exports.CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021 = exports.LAMBDA_RECOGNIZE_LAYER_VERSION = exports.LAMBDA_RECOGNIZE_VERSION_PROPS = exports.EFS_DEFAULT_ENCRYPTION_AT_REST = exports.APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID = exports.RDS_LOWERCASE_DB_IDENTIFIER = exports.ECS_REMOVE_DEFAULT_DESIRED_COUNT = exports.S3_GRANT_WRITE_WITHOUT_ACL = exports.KMS_DEFAULT_KEY_POLICIES = exports.SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME = exports.DOCKER_IGNORE_SUPPORT = exports.STACK_RELATIVE_EXPORTS_CONTEXT = exports.NEW_STYLE_STACK_SYNTHESIS_CONTEXT = exports.ENABLE_DIFF_NO_FAIL = exports.ENABLE_DIFF_NO_FAIL_CONTEXT = exports.ENABLE_STACK_NAME_DUPLICATES_CONTEXT = void 0;\nexports.CURRENT_MV = exports.FLAGS = exports.USE_CDK_MANAGED_LAMBDA_LOGGROUP = exports.S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT = exports.USE_RESOURCEID_FOR_VPCV2_MIGRATION = exports.EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESSONLYINTERNETGATEWAY = exports.S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS = exports.PIPELINE_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE = exports.LOG_USER_POOL_CLIENT_SECRET_VALUE = exports.DYNAMODB_TABLE_RETAIN_TABLE_REPLICA = exports.ASPECT_PRIORITIES_MUTATING = exports.EVENTBUS_POLICY_SID_REQUIRED = exports.PIPELINE_REDUCE_STAGE_ROLE_TRUST_SCOPE = exports.SET_UNIQUE_REPLICATION_ROLE_NAME = exports.LAMBDA_CREATE_NEW_POLICIES_WITH_ADDTOROLEPOLICY = exports.ENABLE_ADDITIONAL_METADATA_COLLECTION = exports.IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS = exports.ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT = exports.Disable_ECS_IMDS_Blocking = exports.Enable_IMDS_Blocking_Deprecated_Feature = exports.USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE = exports.SIGNER_PROFILE_NAME_PASSED_TO_CFN = exports.ASPECT_STABILIZATION = exports.BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT = exports.STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2 = exports.STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY = exports.LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES = exports.CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS = exports.USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY = exports.APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION = exports.EC2_SUM_TIMEOUT_ENABLED = exports.DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA = exports.REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS = exports.EXPLICIT_STACK_TAGS = exports.USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK = exports.S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET = exports.LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT = exports.ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM = exports.EBS_DEFAULT_GP3 = exports.EKS_NODEGROUP_NAME = exports.PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE = exports.KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE = exports.CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2 = exports.CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE = exports.LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION = exports.CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME = exports.APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION = exports.AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS = exports.RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS = exports.LAMBDA_NODEJS_USE_LATEST_RUNTIME = void 0;\nexports.NEW_PROJECT_DEFAULT_CONTEXT = exports.FUTURE_FLAGS = exports.FUTURE_FLAGS_EXPIRED = exports.CURRENT_VERSION_FLAG_DEFAULTS = exports.CURRENTLY_RECOMMENDED_FLAGS = exports.CURRENT_VERSION_EXPIRED_FLAGS = void 0;\nexports.futureFlagDefault = futureFlagDefault;\nconst flag_modeling_1 = require(\"./private/flag-modeling\");\n////////////////////////////////////////////////////////////////////////\n//\n// This file defines context keys that enable certain features that are\n// implemented behind a flag in order to preserve backwards compatibility for\n// existing apps. When a new app is initialized through `cdk init`, the CLI will\n// automatically add enable these features by adding them to the generated\n// `cdk.json` file.\n//\n////////////////////////////////////////////////////////////////////////\n//\n// !!! IMPORTANT !!!\n//\n// When you introduce a new flag, set its 'introducedIn.v2' value to the literal string\n// 'V2·NEXT', without the dot.\n//\n// DO NOT USE A VARIABLE. DO NOT DEFINE A CONSTANT. The actual value will be string-replaced at\n// version bump time.\n//\n////////////////////////////////////////////////////////////////////////\n//\n// There are three types of flags: ApiDefault, BugFix, and VisibleContext flags.\n//\n// - ApiDefault flags: change the behavior or defaults of the construct library.\n// It is still possible to achieve the old behavior via the official API\n// but changes are necessary (e.g. passing a boolean flag).\n//\n// Implications for future Major Version:\n// - The recommended value will become the default value.\n// - Flags of this type will be removed (code changes will become mandatory).\n//\n// - BugFix flags: the old infra we used to generate is no longer recommended.\n// The old behavior cannot be achieved anymore using the official API (only\n// by making sure the feature flag is unset). Mostly used for infra-impacting\n// bugfixes or enhanced security defaults.\n//\n// Implications for future Major Version:\n// - The recommended value will become the default value.\n// - Flag will never be removed (no other way to achieve legacy behavior).\n//\n// - VisibleContext flags: not really a feature flag, but configurable context which is\n// advertised by putting the context in the `cdk.json` file of new projects.\n//\n// See https://github.com/aws/aws-cdk-rfcs/blob/master/text/0055-feature-flags.md\n// --------------------------------------------------------------------------------\nexports.ENABLE_STACK_NAME_DUPLICATES_CONTEXT = '@aws-cdk/core:enableStackNameDuplicates';\nexports.ENABLE_DIFF_NO_FAIL_CONTEXT = 'aws-cdk:enableDiffNoFail';\n/** @deprecated use `ENABLE_DIFF_NO_FAIL_CONTEXT` */\nexports.ENABLE_DIFF_NO_FAIL = exports.ENABLE_DIFF_NO_FAIL_CONTEXT;\nexports.NEW_STYLE_STACK_SYNTHESIS_CONTEXT = '@aws-cdk/core:newStyleStackSynthesis';\nexports.STACK_RELATIVE_EXPORTS_CONTEXT = '@aws-cdk/core:stackRelativeExports';\nexports.DOCKER_IGNORE_SUPPORT = '@aws-cdk/aws-ecr-assets:dockerIgnoreSupport';\nexports.SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME = '@aws-cdk/aws-secretsmanager:parseOwnedSecretName';\nexports.KMS_DEFAULT_KEY_POLICIES = '@aws-cdk/aws-kms:defaultKeyPolicies';\nexports.S3_GRANT_WRITE_WITHOUT_ACL = '@aws-cdk/aws-s3:grantWriteWithoutAcl';\nexports.ECS_REMOVE_DEFAULT_DESIRED_COUNT = '@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount';\nexports.RDS_LOWERCASE_DB_IDENTIFIER = '@aws-cdk/aws-rds:lowercaseDbIdentifier';\nexports.APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID = '@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId';\nexports.EFS_DEFAULT_ENCRYPTION_AT_REST = '@aws-cdk/aws-efs:defaultEncryptionAtRest';\nexports.LAMBDA_RECOGNIZE_VERSION_PROPS = '@aws-cdk/aws-lambda:recognizeVersionProps';\nexports.LAMBDA_RECOGNIZE_LAYER_VERSION = '@aws-cdk/aws-lambda:recognizeLayerVersion';\nexports.CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021 = '@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021';\nexports.CHECK_SECRET_USAGE = '@aws-cdk/core:checkSecretUsage';\nexports.TARGET_PARTITIONS = '@aws-cdk/core:target-partitions';\nexports.ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER = '@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver';\nexports.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME = '@aws-cdk/aws-ec2:uniqueImdsv2TemplateName';\nexports.ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME = '@aws-cdk/aws-ecs:arnFormatIncludesClusterName';\nexports.IAM_MINIMIZE_POLICIES = '@aws-cdk/aws-iam:minimizePolicies';\nexports.IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME = '@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName';\nexports.VALIDATE_SNAPSHOT_REMOVAL_POLICY = '@aws-cdk/core:validateSnapshotRemovalPolicy';\nexports.CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME = '@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName';\nexports.S3_CREATE_DEFAULT_LOGGING_POLICY = '@aws-cdk/aws-s3:createDefaultLoggingPolicy';\nexports.SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY = '@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption';\nexports.APIGATEWAY_DISABLE_CLOUDWATCH_ROLE = '@aws-cdk/aws-apigateway:disableCloudWatchRole';\nexports.ENABLE_PARTITION_LITERALS = '@aws-cdk/core:enablePartitionLiterals';\nexports.EVENTS_TARGET_QUEUE_SAME_ACCOUNT = '@aws-cdk/aws-events:eventsTargetQueueSameAccount';\nexports.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER = '@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker';\nexports.S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY = '@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy';\nexports.ROUTE53_PATTERNS_USE_CERTIFICATE = '@aws-cdk/aws-route53-patters:useCertificate';\nexports.AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT = '@aws-cdk/customresources:installLatestAwsSdkDefault';\nexports.DATABASE_PROXY_UNIQUE_RESOURCE_NAME = '@aws-cdk/aws-rds:databaseProxyUniqueResourceName';\nexports.CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP = '@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup';\nexports.APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID = '@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId';\nexports.EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA = '@aws-cdk/aws-ec2:launchTemplateDefaultUserData';\nexports.SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY = '@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments';\nexports.REDSHIFT_COLUMN_ID = '@aws-cdk/aws-redshift:columnId';\nexports.ENABLE_EMR_SERVICE_POLICY_V2 = '@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2';\nexports.EC2_RESTRICT_DEFAULT_SECURITY_GROUP = '@aws-cdk/aws-ec2:restrictDefaultSecurityGroup';\nexports.APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID = '@aws-cdk/aws-apigateway:requestValidatorUniqueId';\nexports.INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION = '@aws-cdk/core:includePrefixInUniqueNameGeneration';\nexports.KMS_ALIAS_NAME_REF = '@aws-cdk/aws-kms:aliasNameRef';\nexports.KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL = '@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal';\nexports.EFS_DENY_ANONYMOUS_ACCESS = '@aws-cdk/aws-efs:denyAnonymousAccess';\nexports.EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID = '@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId';\nexports.AUTOSCALING_GENERATE_LAUNCH_TEMPLATE = '@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig';\nexports.ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY = '@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby';\nexports.LAMBDA_NODEJS_USE_LATEST_RUNTIME = '@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion';\nexports.RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS = '@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials';\nexports.AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS = '@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters';\nexports.APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION = '@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier';\nexports.CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME = '@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource';\nexports.LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION = '@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction';\nexports.CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE = '@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse';\nexports.CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2 = '@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2';\nexports.KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE = '@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope';\nexports.PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE = '@aws-cdk/pipelines:reduceAssetRoleTrustScope';\nexports.EKS_NODEGROUP_NAME = '@aws-cdk/aws-eks:nodegroupNameAttribute';\nexports.EBS_DEFAULT_GP3 = '@aws-cdk/aws-ec2:ebsDefaultGp3Volume';\nexports.ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM = '@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm';\nexports.LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT = '@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault';\nexports.S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET = '@aws-cdk/aws-s3:keepNotificationInImportedBucket';\nexports.USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK = '@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask';\nexports.EXPLICIT_STACK_TAGS = '@aws-cdk/core:explicitStackTags';\nexports.REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS = '@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions';\nexports.DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA = '@aws-cdk/aws-dynamodb:resourcePolicyPerReplica';\nexports.EC2_SUM_TIMEOUT_ENABLED = '@aws-cdk/aws-ec2:ec2SumTImeoutEnabled';\nexports.APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION = '@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission';\nexports.USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY = '@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId';\nexports.CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS = '@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics';\nexports.LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES = '@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages';\nexports.STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY = '@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy';\nexports.STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2 = '@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2';\nexports.BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT = '@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault';\nexports.ASPECT_STABILIZATION = '@aws-cdk/core:aspectStabilization';\nexports.SIGNER_PROFILE_NAME_PASSED_TO_CFN = '@aws-cdk/aws-signer:signingProfileNamePassedToCfn';\nexports.USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE = '@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource';\nexports.Enable_IMDS_Blocking_Deprecated_Feature = '@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature';\nexports.Disable_ECS_IMDS_Blocking = '@aws-cdk/aws-ecs:disableEcsImdsBlocking';\nexports.ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT = '@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault';\nexports.IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS = '@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections';\nexports.ENABLE_ADDITIONAL_METADATA_COLLECTION = '@aws-cdk/core:enableAdditionalMetadataCollection';\nexports.LAMBDA_CREATE_NEW_POLICIES_WITH_ADDTOROLEPOLICY = '@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy';\nexports.SET_UNIQUE_REPLICATION_ROLE_NAME = '@aws-cdk/aws-s3:setUniqueReplicationRoleName';\nexports.PIPELINE_REDUCE_STAGE_ROLE_TRUST_SCOPE = '@aws-cdk/pipelines:reduceStageRoleTrustScope';\nexports.EVENTBUS_POLICY_SID_REQUIRED = '@aws-cdk/aws-events:requireEventBusPolicySid';\nexports.ASPECT_PRIORITIES_MUTATING = '@aws-cdk/core:aspectPrioritiesMutating';\nexports.DYNAMODB_TABLE_RETAIN_TABLE_REPLICA = '@aws-cdk/aws-dynamodb:retainTableReplica';\nexports.LOG_USER_POOL_CLIENT_SECRET_VALUE = '@aws-cdk/cognito:logUserPoolClientSecretValue';\nexports.PIPELINE_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE = '@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope';\nexports.S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS = '@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions';\nexports.EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESSONLYINTERNETGATEWAY = '@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway';\nexports.USE_RESOURCEID_FOR_VPCV2_MIGRATION = '@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration';\nexports.S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT = '@aws-cdk/aws-s3:publicAccessBlockedByDefault';\nexports.USE_CDK_MANAGED_LAMBDA_LOGGROUP = '@aws-cdk/aws-lambda:useCdkManagedLogGroup';\nexports.FLAGS = {\n //////////////////////////////////////////////////////////////////////\n [exports.SIGNER_PROFILE_NAME_PASSED_TO_CFN]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Pass signingProfileName to CfnSigningProfile',\n detailsMd: `\n When enabled, the \\`signingProfileName\\` property is passed to the L1 \\`CfnSigningProfile\\` construct,\n which ensures that the AWS Signer profile is created with the specified name.\n \n When disabled, the \\`signingProfileName\\` is not passed to CloudFormation, maintaining backward\n compatibility with existing deployments where CloudFormation auto-generated profile names.\n \n This feature flag is needed because enabling it can cause existing signing profiles to be\n replaced during deployment if a \\`signingProfileName\\` was specified but not previously used\n in the CloudFormation template.`,\n introducedIn: { v2: '2.212.0' },\n recommendedValue: true,\n unconfiguredBehavesLike: { v2: false },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_STACK_NAME_DUPLICATES_CONTEXT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Allow multiple stacks with the same name',\n detailsMd: `\n If this is set, multiple stacks can use the same stack name (e.g. deployed to\n different environments). This means that the name of the synthesized template\n file will be based on the construct path and not on the defined \\`stackName\\`\n of the stack.`,\n recommendedValue: true,\n introducedIn: { v1: '1.16.0' },\n unconfiguredBehavesLike: { v2: true },\n compatibilityWithOldBehaviorMd: 'Pass stack identifiers to the CLI instead of stack names.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_DIFF_NO_FAIL_CONTEXT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Make `cdk diff` not fail when there are differences',\n detailsMd: `\n Determines what status code \\`cdk diff\\` should return when the specified stack\n differs from the deployed stack or the local CloudFormation template:\n\n * \\`aws-cdk:enableDiffNoFail=true\\` => status code == 0\n * \\`aws-cdk:enableDiffNoFail=false\\` => status code == 1\n\n You can override this behavior with the --fail flag:\n\n * \\`--fail\\` => status code == 1\n * \\`--no-fail\\` => status code == 0`,\n introducedIn: { v1: '1.19.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Specify `--fail` to the CLI.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.NEW_STYLE_STACK_SYNTHESIS_CONTEXT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Switch to new stack synthesis method which enables CI/CD',\n detailsMd: `\n If this flag is specified, all \\`Stack\\`s will use the \\`DefaultStackSynthesizer\\` by\n default. If it is not set, they will use the \\`LegacyStackSynthesizer\\`.`,\n introducedIn: { v1: '1.39.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.STACK_RELATIVE_EXPORTS_CONTEXT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Name exports based on the construct paths relative to the stack, rather than the global construct path',\n detailsMd: `\n Combined with the stack name this relative construct path is good enough to\n ensure uniqueness, and makes the export names robust against refactoring\n the location of the stack in the construct tree (specifically, moving the Stack\n into a Stage).`,\n introducedIn: { v1: '1.58.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.DOCKER_IGNORE_SUPPORT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'DockerImageAsset properly supports `.dockerignore` files by default',\n detailsMd: `\n If this flag is not set, the default behavior for \\`DockerImageAsset\\` is to use\n glob semantics for \\`.dockerignore\\` files. If this flag is set, the default behavior\n is standard Docker ignore semantics.\n\n This is a feature flag as the old behavior was technically incorrect but\n users may have come to depend on it.`,\n introducedIn: { v1: '1.73.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Update your `.dockerignore` file to match standard Docker ignore rules, if necessary.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Fix the referencing of SecretsManager names from ARNs',\n detailsMd: `\n Secret.secretName for an \"owned\" secret will attempt to parse the secretName from the ARN,\n rather than the default full resource name, which includes the SecretsManager suffix.\n\n If this flag is not set, Secret.secretName will include the SecretsManager suffix, which cannot be directly\n used by SecretsManager.DescribeSecret, and must be parsed by the user first (e.g., Fn:Join, Fn:Select, Fn:Split).`,\n introducedIn: { v1: '1.77.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Use `parseArn(secret.secretName).resourceName` to emulate the incorrect old parsing.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_DEFAULT_KEY_POLICIES]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Tighten default KMS key policies',\n detailsMd: `\n KMS Keys start with a default key policy that grants the account access to administer the key,\n mirroring the behavior of the KMS SDK/CLI/Console experience. Users may override the default key\n policy by specifying their own.\n\n If this flag is not set, the default key policy depends on the setting of the \\`trustAccountIdentities\\`\n flag. If false (the default, for backwards-compatibility reasons), the default key policy somewhat\n resembles the default admin key policy, but with the addition of 'GenerateDataKey' permissions. If\n true, the policy matches what happens when this feature flag is set.\n\n Additionally, if this flag is not set and the user supplies a custom key policy, this will be appended\n to the key's default policy (rather than replacing it).`,\n introducedIn: { v1: '1.78.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `trustAccountIdentities: false` to `Key` construct to restore the old behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_GRANT_WRITE_WITHOUT_ACL]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Remove `PutObjectAcl` from Bucket.grantWrite',\n detailsMd: `\n Change the old 's3:PutObject*' permission to 's3:PutObject' on Bucket,\n as the former includes 's3:PutObjectAcl',\n which could be used to grant read/write object access to IAM principals in other accounts.\n Use a feature flag to make sure existing customers who might be relying\n on the overly-broad permissions are not broken.`,\n introducedIn: { v1: '1.85.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Call `bucket.grantPutAcl()` in addition to `bucket.grantWrite()` to grant ACL permissions.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_REMOVE_DEFAULT_DESIRED_COUNT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Do not specify a default DesiredCount for ECS services',\n detailsMd: `\n ApplicationLoadBalancedServiceBase, ApplicationMultipleTargetGroupServiceBase,\n NetworkLoadBalancedServiceBase, NetworkMultipleTargetGroupServiceBase, and\n QueueProcessingServiceBase currently determine a default value for the desired count of\n a CfnService if a desiredCount is not provided. The result of this is that on every\n deployment, the service count is reset to the fixed value, even if it was autoscaled.\n\n If this flag is not set, the default behaviour for CfnService.desiredCount is to set a\n desiredCount of 1, if one is not provided. If true, a default will not be defined for\n CfnService.desiredCount and as such desiredCount will be undefined, if one is not provided.`,\n introducedIn: { v1: '1.92.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'You can pass `desiredCount: 1` explicitly, but you should never need this.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.RDS_LOWERCASE_DB_IDENTIFIER]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Force lowercasing of RDS Cluster names in CDK',\n detailsMd: `\n Cluster names must be lowercase, and the service will lowercase the name when the cluster\n is created. However, CDK did not use to know about this, and would use the user-provided name\n referencing the cluster, which would fail if it happened to be mixed-case.\n\n With this flag, lowercase the name in CDK so we can reference it properly.\n\n Must be behind a permanent flag because changing a name from mixed case to lowercase between deployments\n would lead CloudFormation to think the name was changed and would trigger a cluster replacement\n (losing data!).`,\n introducedIn: { v1: '1.97.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Allow adding/removing multiple UsagePlanKeys independently',\n detailsMd: `\n The UsagePlanKey resource connects an ApiKey with a UsagePlan. API Gateway does not allow more than one UsagePlanKey\n for any given UsagePlan and ApiKey combination. For this reason, CloudFormation cannot replace this resource without\n either the UsagePlan or ApiKey changing.\n\n The feature addition to support multiple UsagePlanKey resources - 142bd0e2 - recognized this and attempted to keep\n existing UsagePlanKey logical ids unchanged.\n However, this intentionally caused the logical id of the UsagePlanKey to be sensitive to order. That is, when\n the 'first' UsagePlanKey resource is removed, the logical id of the 'second' assumes what was originally the 'first',\n which again is disallowed.\n\n In effect, there is no way to get out of this mess in a backwards compatible way, while supporting existing stacks.\n This flag changes the logical id layout of UsagePlanKey to not be sensitive to order.`,\n introducedIn: { v1: '1.98.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EFS_DEFAULT_ENCRYPTION_AT_REST]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enable this feature flag to have elastic file systems encrypted at rest by default.',\n detailsMd: `\n Encryption can also be configured explicitly using the \\`encrypted\\` property.\n `,\n introducedIn: { v1: '1.98.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass the `encrypted: false` property to the `FileSystem` construct to disable encryption.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_RECOGNIZE_VERSION_PROPS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.',\n detailsMd: `\n The previous calculation incorrectly considered properties of the \\`AWS::Lambda::Function\\` resource that did\n not constitute creating a new Version.\n\n See 'currentVersion' section in the aws-lambda module's README for more details.`,\n introducedIn: { v1: '1.106.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_RECOGNIZE_LAYER_VERSION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.',\n detailsMd: `\n This flag correct incorporates Lambda Layer properties into the Lambda Function Version.\n\n See 'currentVersion' section in the aws-lambda module's README for more details.`,\n introducedIn: { v1: '1.159.0', v2: '2.27.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.',\n detailsMd: `\n The security policy can also be configured explicitly using the \\`minimumProtocolVersion\\` property.`,\n introducedIn: { v1: '1.117.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CHECK_SECRET_USAGE]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations',\n detailsMd: `\n With this flag enabled, \\`SecretValue\\` instances can only be passed to\n constructs that accept \\`SecretValue\\`s; otherwise, \\`unsafeUnwrap()\\` must be\n called to use it as a regular string.`,\n introducedIn: { v1: '1.153.0', v2: '2.21.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.TARGET_PARTITIONS]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'What regions to include in lookup tables of environment agnostic stacks',\n detailsMd: `\n Has no effect on stacks that have a defined region, but will limit the amount\n of unnecessary regions included in stacks without a known region.\n\n The type of this value should be a list of strings.`,\n introducedIn: { v1: '1.137.0', v2: '2.4.0' },\n recommendedValue: ['aws', 'aws-cn'],\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'ECS extensions will automatically add an `awslogs` driver if no logging is specified',\n detailsMd: `\n Enable this feature flag to configure default logging behavior for the ECS Service Extensions. This will enable the\n \\`awslogs\\` log driver for the application container of the service to send the container logs to CloudWatch Logs.\n\n This is a feature flag as the new behavior provides a better default experience for the users.`,\n introducedIn: { v1: '1.140.0', v2: '2.8.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Specify a log driver explicitly.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names.',\n detailsMd: `\n Previously, the generated Launch Template names were only unique within a stack because they were based only on the\n \\`Instance\\` construct ID. If another stack that has an \\`Instance\\` with the same construct ID is deployed in the same\n account and region, the deployments would always fail as the generated Launch Template names were the same.\n\n The new implementation addresses this issue by generating the Launch Template name with the \\`Names.uniqueId\\` method.`,\n introducedIn: { v1: '1.140.0', v2: '2.8.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID.',\n detailsMd: `\n If this flag is not set, the old ARN format (without cluster name) for ECS is used.\n If this flag is set, the new ARN format (with cluster name) for ECS is used.\n\n This is a feature flag as the old format is still valid for existing ECS clusters.\n\n See https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids\n `,\n introducedIn: { v2: '2.35.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.IAM_MINIMIZE_POLICIES]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'Minimize IAM policies by combining Statements',\n detailsMd: `\n Minimize IAM policies by combining Principals, Actions and Resources of two\n Statements in the policies, as long as it doesn't change the meaning of the\n policy.`,\n introducedIn: { v1: '1.150.0', v2: '2.18.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.VALIDATE_SNAPSHOT_REMOVAL_POLICY]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Error on snapshot removal policies on resources that do not support it.',\n detailsMd: `\n Makes sure we do not allow snapshot removal policy on resources that do not support it.\n If supplied on an unsupported resource, CloudFormation ignores the policy altogether.\n This flag will reduce confusion and unexpected loss of data when erroneously supplying\n the snapshot removal policy.`,\n introducedIn: { v2: '2.28.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'The old behavior was incorrect. Update your source to not specify SNAPSHOT policies on resources that do not support it.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Generate key aliases that include the stack name',\n detailsMd: `\n Enable this feature flag to have CodePipeline generate a unique cross account key alias name using the stack name.\n\n Previously, when creating multiple pipelines with similar naming conventions and when crossAccountKeys is true,\n the KMS key alias name created for these pipelines may be the same due to how the uniqueId is generated.\n\n This new implementation creates a stack safe resource name for the alias using the stack name instead of the stack ID.\n `,\n introducedIn: { v2: '2.29.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_CREATE_DEFAULT_LOGGING_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist.',\n detailsMd: `\n For example, in order to send VPC flow logs to an S3 bucket, there is a specific Bucket Policy\n that needs to be attached to the bucket. If you create the bucket without a policy and then add the\n bucket as the flow log destination, the service will automatically create the bucket policy with the\n necessary permissions. If you were to then try and add your own bucket policy CloudFormation will throw\n and error indicating that a bucket policy already exists.\n\n In cases where we know what the required policy is we can go ahead and create the policy so we can\n remain in control of it.\n\n @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3\n `,\n introducedIn: { v2: '2.31.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Restrict KMS key policy for encrypted Queues a bit more',\n detailsMd: `\n Enable this feature flag to restrict the decryption of a SQS queue, which is subscribed to a SNS topic, to\n only the topic which it is subscribed to and not the whole SNS service of an account.\n\n Previously the decryption was only restricted to the SNS service principal. To make the SQS subscription more\n secure, it is a good practice to restrict the decryption further and only allow the connected SNS topic to decryption\n the subscribed queue.`,\n introducedIn: { v2: '2.32.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_DISABLE_CLOUDWATCH_ROLE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Make default CloudWatch Role behavior safe for multiple API Gateways in one environment',\n detailsMd: `\n Enable this feature flag to change the default behavior for aws-apigateway.RestApi and aws-apigateway.SpecRestApi\n to _not_ create a CloudWatch role and Account. There is only a single ApiGateway account per AWS\n environment which means that each time you create a RestApi in your account the ApiGateway account\n is overwritten. If at some point the newest RestApi is deleted, the ApiGateway Account and CloudWatch\n role will also be deleted, breaking any existing ApiGateways that were depending on them.\n\n When this flag is enabled you should either create the ApiGateway account and CloudWatch role\n separately _or_ only enable the cloudWatchRole on a single RestApi.\n `,\n introducedIn: { v2: '2.38.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_PARTITION_LITERALS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Make ARNs concrete if AWS partition is known',\n // eslint-disable-next-line @cdklabs/no-literal-partition\n detailsMd: `\n Enable this feature flag to get partition names as string literals in Stacks with known regions defined in\n their environment, such as \"aws\" or \"aws-cn\". Previously the CloudFormation intrinsic function\n \"Ref: AWS::Partition\" was used. For example:\n\n \\`\\`\\`yaml\n Principal:\n AWS:\n Fn::Join:\n - \"\"\n - - \"arn:\"\n - Ref: AWS::Partition\n - :iam::123456789876:root\n \\`\\`\\`\n\n becomes:\n\n \\`\\`\\`yaml\n Principal:\n AWS: \"arn:aws:iam::123456789876:root\"\n \\`\\`\\`\n\n The intrinsic function will still be used in Stacks where no region is defined or the region's partition\n is unknown.\n `,\n introducedIn: { v2: '2.38.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EVENTS_TARGET_QUEUE_SAME_ACCOUNT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Event Rules may only push to encrypted SQS queues in the same account',\n detailsMd: `\n This flag applies to SQS Queues that are used as the target of event Rules. When enabled, only principals\n from the same account as the Rule can send messages. If a queue is unencrypted, this restriction will\n always apply, regardless of the value of this flag.\n `,\n introducedIn: { v2: '2.51.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Avoid setting the \"ECS\" deployment controller when adding a circuit breaker',\n detailsMd: `\n Enable this feature flag to avoid setting the \"ECS\" deployment controller when adding a circuit breaker to an\n ECS Service, as this will trigger a full replacement which fails to deploy when using set service names.\n This does not change any behaviour as the default deployment controller when it is not defined is ECS.\n\n This is a feature flag as the new behavior provides a better default experience for the users.\n `,\n introducedIn: { v2: '2.51.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in.',\n detailsMd: `\n Without this, importing the same role in multiple places could lead to the permissions given for one version of the imported role\n to overwrite permissions given to the role at a different place where it was imported. This was due to all imported instances\n of a role using the same default policy name.\n\n This new implementation creates default policy names based on the constructs node path in their stack.\n `,\n introducedIn: { v2: '2.60.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Use S3 Bucket Policy instead of ACLs for Server Access Logging',\n detailsMd: `\n Enable this feature flag to use S3 Bucket Policy for granting permission fo Server Access Logging\n rather than using the canned \\`LogDeliveryWrite\\` ACL. ACLs do not work when Object Ownership is\n enabled on the bucket.\n\n This flag uses a Bucket Policy statement to allow Server Access Log delivery, following best\n practices for S3.\n\n @see https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html\n `,\n introducedIn: { v2: '2.60.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ROUTE53_PATTERNS_USE_CERTIFICATE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Use the official `Certificate` resource instead of `DnsValidatedCertificate`',\n detailsMd: `\n Enable this feature flag to use the official CloudFormation supported \\`Certificate\\` resource instead\n of the deprecated \\`DnsValidatedCertificate\\` construct. If this flag is enabled and you are creating\n the stack in a region other than us-east-1 then you must also set \\`crossRegionReferences=true\\` on the\n stack.\n `,\n introducedIn: { v2: '2.61.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Define a `DnsValidatedCertificate` explicitly and pass in the `certificate` property',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Whether to install the latest SDK by default in AwsCustomResource',\n detailsMd: `\n This was originally introduced and enabled by default to not be limited by the SDK version\n that's installed on AWS Lambda. However, it creates issues for Lambdas bound to VPCs that\n do not have internet access, or in environments where 'npmjs.com' is not available.\n\n The recommended setting is to disable the default installation behavior, and pass the\n flag on a resource-by-resource basis to enable it if necessary.\n `,\n compatibilityWithOldBehaviorMd: 'Set installLatestAwsSdk: true on all resources that need it.',\n introducedIn: { v2: '2.60.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.DATABASE_PROXY_UNIQUE_RESOURCE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Use unique resource name for Database Proxy',\n detailsMd: `\n If this flag is not set, the default behavior for \\`DatabaseProxy\\` is\n to use \\`id\\` of the constructor for \\`dbProxyName\\` when it's not specified in the argument.\n In this case, users can't deploy \\`DatabaseProxy\\`s that have the same \\`id\\` in the same region.\n\n If this flag is set, the default behavior is to use unique resource names for each \\`DatabaseProxy\\`.\n\n This is a feature flag as the old behavior was technically incorrect, but users may have come to depend on it.\n `,\n introducedIn: { v2: '2.65.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Remove CloudWatch alarms from deployment group',\n detailsMd: `\n Enable this flag to be able to remove all CloudWatch alarms from a deployment group by removing\n the alarms from the construct. If this flag is not set, removing all alarms from the construct\n will still leave the alarms configured for the deployment group.\n `,\n introducedIn: { v2: '2.65.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Include authorizer configuration in the calculation of the API deployment logical ID.',\n detailsMd: `\n The logical ID of the AWS::ApiGateway::Deployment resource is calculated by hashing\n the API configuration, including methods, and resources, etc. Enable this feature flag\n to also include the configuration of any authorizer attached to the API in the\n calculation, so any changes made to an authorizer will create a new deployment.\n `,\n introducedIn: { v2: '2.66.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Define user data for a launch template by default when a machine image is provided.',\n detailsMd: `\n The ec2.LaunchTemplate construct did not define user data when a machine image is\n provided despite the document. If this is set, a user data is automatically defined\n according to the OS of the machine image.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.67.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'SecretTargetAttachments uses the ResourcePolicy of the attached Secret.',\n detailsMd: `\n Enable this feature flag to make SecretTargetAttachments use the ResourcePolicy of the attached Secret.\n SecretTargetAttachments are created to connect a Secret to a target resource.\n In CDK code, they behave like regular Secret and can be used as a stand-in in most situations.\n Previously, adding to the ResourcePolicy of a SecretTargetAttachment did attempt to create a separate ResourcePolicy for the same Secret.\n However Secrets can only have a single ResourcePolicy, causing the CloudFormation deployment to fail.\n\n When enabling this feature flag for an existing Stack, ResourcePolicies created via a SecretTargetAttachment will need replacement.\n This won't be possible without intervention due to limitation outlined above.\n First remove all permissions granted to the Secret and deploy without the ResourcePolicies.\n Then you can re-add the permissions and deploy again.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.67.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.REDSHIFT_COLUMN_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Whether to use an ID to track Redshift column changes',\n detailsMd: `\n Redshift columns are identified by their \\`name\\`. If a column is renamed, the old column\n will be dropped and a new column will be created. This can cause data loss.\n\n This flag enables the use of an \\`id\\` attribute for Redshift columns. If this flag is enabled, the\n internal CDK architecture will track changes of Redshift columns through their \\`id\\`, rather\n than their \\`name\\`. This will prevent data loss when columns are renamed.\n\n **NOTE** - Enabling this flag comes at a **risk**. When enabled, update the \\`id\\`s of all columns,\n **however** do not change the \\`names\\`s of the columns. If the \\`name\\`s of the columns are changed during\n initial deployment, the columns will be dropped and recreated, causing data loss. After the initial deployment\n of the \\`id\\`s, the \\`name\\`s of the columns can be changed without data loss.\n `,\n introducedIn: { v2: '2.68.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_EMR_SERVICE_POLICY_V2]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable AmazonEMRServicePolicy_v2 managed policies',\n detailsMd: `\n If this flag is not set, the default behavior for \\`EmrCreateCluster\\` is\n to use \\`AmazonElasticMapReduceRole\\` managed policies.\n\n If this flag is set, the default behavior is to use the new \\`AmazonEMRServicePolicy_v2\\`\n managed policies.\n\n This is a feature flag as the old behavior will be deprecated, but some resources may require manual\n intervention since they might not have the appropriate tags propagated automatically.\n `,\n introducedIn: { v2: '2.72.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_RESTRICT_DEFAULT_SECURITY_GROUP]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Restrict access to the VPC default security group',\n detailsMd: `\n Enable this feature flag to remove the default ingress/egress rules from the\n VPC default security group.\n\n When a VPC is created, a default security group is created as well and this cannot\n be deleted. The default security group is created with ingress/egress rules that allow\n _all_ traffic. [AWS Security best practices recommend](https://docs.aws.amazon.com/securityhub/latest/userguide/ec2-controls.html#ec2-2)\n removing these ingress/egress rules in order to restrict access to the default security group.\n `,\n introducedIn: { v2: '2.78.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: `\n To allow all ingress/egress traffic to the VPC default security group you\n can set the \\`restrictDefaultSecurityGroup: false\\`.\n `,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Generate a unique id for each RequestValidator added to a method',\n detailsMd: `\n This flag allows multiple RequestValidators to be added to a RestApi when\n providing the \\`RequestValidatorOptions\\` in the \\`addMethod()\\` method.\n\n If the flag is not set then only a single RequestValidator can be added in this way.\n Any additional RequestValidators have to be created directly with \\`new RequestValidator\\`.\n `,\n introducedIn: { v2: '2.78.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_ALIAS_NAME_REF]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'KMS Alias name and keyArn will have implicit reference to KMS Key',\n detailsMd: `\n This flag allows an implicit dependency to be created between KMS Alias and KMS Key\n when referencing key.aliasName or key.keyArn.\n\n If the flag is not set then a raw string is passed as the Alias name and no\n implicit dependencies will be set.\n `,\n introducedIn: { v2: '2.83.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition',\n detailsMd: `\n This flag enables the grant methods (grant, grantDecrypt, grantEncrypt, etc.) on Aliases imported\n by name to grant permissions based on the 'kms:ResourceAliases' condition rather than no-op grants.\n When disabled, grant calls on imported aliases will be dropped (no-op) to maintain compatibility.\n `,\n introducedIn: { v2: '2.202.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Remove calls to the grant* methods on the aliases referenced by name',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.AUTOSCALING_GENERATE_LAUNCH_TEMPLATE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Generate a launch template when creating an AutoScalingGroup',\n detailsMd: `\n Enable this flag to allow AutoScalingGroups to generate a launch template when being created.\n Launch configurations have been deprecated and cannot be created in AWS Accounts created after\n December 31, 2023. Existing 'AutoScalingGroup' properties used for creating a launch configuration\n will now create an equivalent 'launchTemplate'. Alternatively, users can provide an explicit\n 'launchTemplate' or 'mixedInstancesPolicy'. When this flag is enabled a 'launchTemplate' will\n attempt to set user data according to the OS of the machine image if explicit user data is not\n provided.\n `,\n introducedIn: { v2: '2.88.0' },\n compatibilityWithOldBehaviorMd: `\n If backwards compatibility needs to be maintained due to an existing autoscaling group\n using a launch config, set this flag to false.\n `,\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Include the stack prefix in the stack name generation process',\n detailsMd: `\n This flag prevents the prefix of a stack from making the stack's name longer than the 128 character limit.\n\n If the flag is set, the prefix is included in the stack name generation process.\n If the flag is not set, then the prefix of the stack is prepended to the generated stack name.\n\n **NOTE** - Enabling this flag comes at a **risk**. If you have already deployed stacks, changing the status of this\n feature flag can lead to a change in stacks' name. Changing a stack name mean recreating the whole stack, which\n is not viable in some productive setups.\n `,\n introducedIn: { v2: '2.84.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EFS_DENY_ANONYMOUS_ACCESS]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'EFS denies anonymous clients accesses',\n detailsMd: `\n This flag adds the file system policy that denies anonymous clients\n access to \\`efs.FileSystem\\`.\n\n If this flag is not set, \\`efs.FileSystem\\` will allow all anonymous clients\n that can access over the network.`,\n introducedIn: { v2: '2.93.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'You can pass `allowAnonymousAccess: true` so allow anonymous clients access.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables support for Multi-AZ with Standby deployment for opensearch domains',\n detailsMd: `\n If this is set, an opensearch domain will automatically be created with\n multi-az with standby enabled.\n `,\n introducedIn: { v2: '2.88.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `capacity.multiAzWithStandbyEnabled: false` to `Domain` construct to restore the old behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_NODEJS_USE_LATEST_RUNTIME]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default',\n detailsMd: `\n If this is set, and a \\`runtime\\` prop is not passed to, Lambda NodeJs\n functions will us the latest version of the runtime provided by the Lambda\n service. Do not use this if you your lambda function is reliant on dependencies\n shipped as part of the runtime environment.\n `,\n introducedIn: { v2: '2.93.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `runtime: lambda.Runtime.NODEJS_16_X` to `Function` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, mount targets will have a stable logicalId that is linked to the associated subnet.',\n detailsMd: `\n When this feature flag is enabled, each mount target will have a stable\n logicalId that is linked to the associated subnet. If the flag is set to\n false then the logicalIds of the mount targets can change if the number of\n subnets changes.\n\n Set this flag to false for existing mount targets.\n `,\n introducedIn: { v2: '2.93.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change.',\n detailsMd: `\n When this feature flag is enabled, a scope of \\`InstanceParameterGroup\\` for\n \\`AuroraClusterInstance\\` with each parameters will change to AuroraClusterInstance\n from AuroraCluster.\n\n If the flag is set to false then it can only make one \\`AuroraClusterInstance\\`\n with each \\`InstanceParameterGroup\\` in the AuroraCluster.\n `,\n introducedIn: { v2: '2.97.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id.',\n detailsMd: `\n When this feature flag is enabled, we use the IGraphqlApi ARN rather than ID when creating or updating CfnSourceApiAssociation in\n the GraphqlApi construct. Using the ARN allows the association to support an association with a source api or merged api in another account.\n Note that for existing source api associations created with this flag disabled, enabling the flag will lead to a resource replacement.\n `,\n introducedIn: { v2: '2.97.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials.',\n detailsMd: `\n The \\`credentials\\` property on the \\`DatabaseClusterFromSnapshotProps\\`\n interface was deprecated with the new \\`snapshotCredentials\\` property being\n recommended. Before deprecating \\`credentials\\`, a secret would be generated\n while rendering credentials if the \\`credentials\\` property was undefined or\n if a secret wasn't provided via the \\`credentials\\` property. This behavior\n is replicated with the new \\`snapshotCredentials\\` property, but the original\n \\`credentials\\` secret can still be created resulting in an extra database\n secret.\n\n Set this flag to prevent rendering deprecated \\`credentials\\` and creating an\n extra database secret when only using \\`snapshotCredentials\\` to create an RDS\n database cluster from a snapshot.\n `,\n introducedIn: { v2: '2.98.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the CodeCommit source action is using the default branch name \\'main\\'.',\n detailsMd: `\n When setting up a CodeCommit source action for the source stage of a pipeline, please note that the\n default branch is \\'master\\'.\n However, with the activation of this feature flag, the default branch is updated to \\'main\\'.\n `,\n introducedIn: { v2: '2.103.1' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID.',\n detailsMd: `\n When this feature flag is enabled, a logical ID of \\`LambdaPermission\\` for a\n \\`LambdaAction\\` will include an alarm ID. Therefore multiple alarms for the same Lambda\n can be created with \\`LambdaAction\\`.\n\n If the flag is set to false then it can only make one alarm for the Lambda with\n \\`LambdaAction\\`.\n `,\n introducedIn: { v2: '2.124.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables Pipeline to set the default value for crossAccountKeys to false.',\n detailsMd: `\n When this feature flag is enabled, and the \\`crossAccountKeys\\` property is not provided in a \\`Pipeline\\`\n construct, the construct automatically defaults the value of this property to false.\n `,\n introducedIn: { v2: '2.127.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `crossAccountKeys: true` to `Pipeline` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables Pipeline to set the default pipeline type to V2.',\n detailsMd: `\n When this feature flag is enabled, and the \\`pipelineType\\` property is not provided in a \\`Pipeline\\`\n construct, the construct automatically defaults the value of this property to \\`PipelineType.V2\\`.\n `,\n introducedIn: { v2: '2.133.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `pipelineType: PipelineType.V1` to `Pipeline` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only.',\n detailsMd: `\n When this feature flag is enabled and calling KMS key grant method, the created IAM policy will reduce the resource scope from\n '*' to this specific granting KMS key.\n `,\n introducedIn: { v2: '2.134.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Remove the root account principal from PipelineAssetsFileRole trust policy',\n detailsMd: `\n When this feature flag is enabled, the root account principal will not be added to the trust policy of asset role.\n When this feature flag is disabled, it will keep the root account principal in the trust policy.\n `,\n introducedIn: { v2: '2.141.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to add the root account principal back',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EKS_NODEGROUP_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix.',\n detailsMd: `\n When this feature flag is enabled, the nodegroupName attribute will be exactly the name of the nodegroup without\n any prefix.\n `,\n introducedIn: { v2: '2.139.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EBS_DEFAULT_GP3]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, the default volume type of the EBS volume will be GP3',\n detailsMd: `\n When this featuer flag is enabled, the default volume type of the EBS volume will be \\`EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3\\`.\n `,\n introducedIn: { v2: '2.140.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `volumeType: EbsDeviceVolumeType.GENERAL_PURPOSE_SSD` to `Volume` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, remove default deployment alarm settings',\n detailsMd: `\n When this featuer flag is enabled, remove the default deployment alarm settings when creating a AWS ECS service.\n `,\n introducedIn: { v2: '2.143.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Set AWS::ECS::Service \\'DeploymentAlarms\\' manually to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default',\n detailsMd: `\n This results in 'logApiResponseData' being passed as true to the custom resource provider. This will cause the custom resource handler to receive an 'Update' event. If you don't\n have an SDK call configured for the 'Update' event and you're dependent on specific SDK call response data, you will see this error from CFN:\n\n CustomResource attribute error: Vendor response doesn't contain attribute in object. See https://github.com/aws/aws-cdk/issues/29949) for more details.\n\n Unlike most feature flags, we don't recommend setting this feature flag to true. However, if you're using the 'AwsCustomResource' construct with 'logApiResponseData' as true in\n the event object, then setting this feature flag will keep this behavior. Otherwise, setting this feature flag to false will trigger an 'Update' event by removing the 'logApiResponseData'\n property from the event object.\n `,\n introducedIn: { v2: '2.145.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack.',\n detailsMd: `\n Currently, adding notifications to a bucket where it was created by ourselves will override notification added where it is imported.\n\n When this feature flag is enabled, adding notifications to a bucket in the current stack will only update notification defined in this stack.\n Other notifications that are not managed by this stack will be kept.\n `,\n introducedIn: { v2: '2.155.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.',\n detailsMd: `\n Currently, 'inputPath' and 'outputPath' from the TaskStateBase Props is being used under BedrockInvokeModelProps to define S3URI under 'input' and 'output' fields\n of State Machine Task definition.\n\n When this feature flag is enabled, specify newly introduced props 's3InputUri' and\n 's3OutputUri' to populate S3 uri under input and output fields in state machine task definition for Bedrock invoke model.\n\n `,\n introducedIn: { v2: '2.156.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to use input and output path fields for s3 URI',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EXPLICIT_STACK_TAGS]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, stack tags need to be assigned explicitly on a Stack.',\n detailsMd: `\n Without this feature flag enabled, if tags are added to a Stack using\n \\`Tags.of(scope).add(...)\\`, they will be added to both the stack and all resources\n in the stack template.\n\n That leads to the tags being applied twice: once in the template, and once\n again automatically by CloudFormation, which will apply all stack tags to\n all resources in the stack. This leads to loss of control, as the\n \\`excludeResourceTypes\\` option of the Tags API will not have any effect.\n\n With this flag enabled, tags added to a stack using \\`Tags.of(...)\\` are ignored,\n and Stack tags must be configured explicitly on the Stack object.\n `,\n introducedIn: { v2: '2.205.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Configure stack-level tags using `new Stack(..., { tags: { ... } })`.',\n },\n [exports.Enable_IMDS_Blocking_Deprecated_Feature]: {\n type: flag_modeling_1.FlagType.Temporary,\n summary: 'When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated ' +\n 'commands will be added to UserData to block container accessing IMDS. ' +\n '**Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**',\n detailsMd: `\n In an ECS Cluster with \\`MachineImageType.AMAZON_LINUX_2\\`, the canContainersAccessInstanceRole=false option attempts to add commands to block containers from\n accessing IMDS. Set this flag to true in order to use new and updated commands. Please note that this\n feature alone with this feature flag will be deprecated by **end of 2025** as CDK cannot\n guarantee the correct execution of the feature in all platforms. See [Github discussion](https://github.com/aws/aws-cdk/discussions/32609) for more information.\n It is recommended to follow ECS documentation to block IMDS for your specific platform and cluster configuration.\n `,\n introducedIn: { v2: '2.175.0' },\n recommendedValue: false,\n compatibilityWithOldBehaviorMd: 'Set this flag to false in order to continue using old and outdated commands. ' +\n 'However, it is **not** recommended.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.Disable_ECS_IMDS_Blocking]: {\n type: flag_modeling_1.FlagType.Temporary,\n summary: 'When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false.' +\n ' **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**',\n detailsMd: `\n In an ECS Cluster with \\`MachineImageType.AMAZON_LINUX_2\\`, the canContainersAccessInstanceRole=false option attempts to add commands to block containers from\n accessing IMDS. CDK cannot guarantee the correct execution of the feature in all platforms. Setting this feature flag\n to true will ensure CDK does not attempt to implement IMDS blocking. By **end of 2025**, CDK will remove the\n IMDS blocking feature. See [Github discussion](https://github.com/aws/aws-cdk/discussions/32609) for more information.\n\n It is recommended to follow ECS documentation to block IMDS for your specific platform and cluster configuration.\n `,\n introducedIn: { v2: '2.175.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'It is strongly recommended to set this flag to true. However, if necessary, set ' +\n 'this flag to false to continue using the old implementation.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration',\n detailsMd: `\n Currently, we automatically add a number of cloudwatch permissions to the task role when no cloudwatch log group is\n specified as logConfiguration and it will grant 'Resources': ['*'] to the task role.\n\n When this feature flag is enabled, we will only grant the necessary permissions when users specify cloudwatch log group.\n `,\n introducedIn: { v2: '2.159.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to continue grant permissions to log group when no log group is specified',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas',\n detailsMd: `\n If this flag is not set, the default behavior for \\`TableV2\\` is to use a different \\`resourcePolicy\\` for each replica.\n\n If this flag is set to false, the behavior is that each replica shares the same \\`resourcePolicy\\` as the source table.\n This will prevent you from creating a new table which has an additional replica and a resource policy.\n\n This is a feature flag as the old behavior was technically incorrect but users may have come to depend on it.`,\n introducedIn: { v2: '2.164.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_SUM_TIMEOUT_ENABLED]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together.',\n detailsMd: `\n Currently is both initOptions.timeout and resourceSignalTimeout are both specified in the options for creating an EC2 Instance,\n only the value from 'resourceSignalTimeout' will be used.\n\n When this feature flag is enabled, if both initOptions.timeout and resourceSignalTimeout are specified, the values will to be summed together.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.160.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn.',\n detailsMd: `\n Currently, when using a Lambda authorizer with an AppSync GraphQL API, the AWS CDK automatically generates the necessary AWS::Lambda::Permission\n to allow the AppSync API to invoke the Lambda authorizer. This permission is overly permissive because it lacks a SourceArn, meaning\n it allows invocations from any source.\n\n When this feature flag is enabled, the AWS::Lambda::Permission will be properly scoped with the SourceArn corresponding to the\n specific AppSync GraphQL API.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.161.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`',\n detailsMd: `\n Currently, the value of the property 'instanceResourceId' in construct 'DatabaseInstanceReadReplica' is not correct, and set to 'DbInstanceArn' which is not correct when it is used to create the IAM Policy in the grantConnect method.\n\n When this feature flag is enabled, the value of that property will be as expected set to 'DbiResourceId' attribute, and that will fix the grantConnect method.\n `,\n introducedIn: { v2: '2.161.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to use `DbInstanceArn` as value for property `instanceResourceId`',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values.',\n detailsMd: `\n Without enabling this feature flag, \\`cfn-include\\` will silently drop resource update or create policies that contain CFN Intrinsics if they include non-primitive values.\n\n Enabling this feature flag will make \\`cfn-include\\` throw on these templates, unless you specify the logical ID of the resource in the 'unhydratedResources' property.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.161.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications.',\n detailsMd: `\n Currently, when bundling Lambda functions with the non-latest runtime that supports AWS SDK JavaScript (v3), only the '@aws-sdk/*' packages are excluded by default.\n However, this can cause version mismatches between the '@aws-sdk/*' and '@smithy/*' packages, as they are tightly coupled dependencies in AWS SDK v3.\n\n When this feature flag is enabled, both '@aws-sdk/*' and '@smithy/*' packages will be excluded during the bundling process. This ensures that no mismatches\n occur between these tightly coupled dependencies when using the AWS SDK v3 in Lambda functions.\n `,\n introducedIn: { v2: '2.161.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN.',\n detailsMd: `\n Currently, in the IAM Run Ecs policy generated by SFN EcsRunTask(), CDK will construct the ARN with wildcard attached at the end.\n The revision number at the end will be replaced with a wildcard which it shouldn't.\n\n When this feature flag is enabled, if the task definition is created in the stack, the 'Resource' section will 'Ref' the taskDefinition.\n `,\n introducedIn: { v2: '2.163.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2.',\n detailsMd: `\n Currently, if the machineImage property of the BastionHost construct defaults to using the latest Amazon Linux 2\n AMI. Amazon Linux 2 hits end-of-life in June 2025, so using Amazon Linux 2023 by default is a more future-proof\n and secure option.\n\n When this feature flag is enabled, if you do not pass the machineImage property to the BastionHost construct,\n the latest Amazon Linux 2023 version will be used instead of Amazon Linux 2.\n `,\n introducedIn: { v2: '2.172.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag or explicitly pass an Amazon Linux 2 machine image to the BastionHost construct.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ASPECT_STABILIZATION]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'When enabled, a stabilization loop will be run when invoking Aspects during synthesis.',\n detailsMd: `\n Currently, when Aspects are invoked in one single pass of the construct tree.\n This means that the Aspects that create other Aspects are not run and Aspects that create new nodes of the tree sometimes do not inherit their parent Aspects.\n\n When this feature flag is enabled, a stabilization loop is run to recurse the construct tree multiple times when invoking Aspects.\n `,\n unconfiguredBehavesLike: { v2: true },\n introducedIn: { v2: '2.172.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource.',\n detailsMd: `\n When this feature flag is enabled, a new method will be used to get the DNS Name of the user pool domain target. The old method\n creates a custom resource internally, but the new method doesn't need a custom resource.\n\n If the flag is set to false then a custom resource will be created when using \\`UserPoolDomainTarget\\`.\n `,\n introducedIn: { v2: '2.174.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere',\n detailsMd: `\n For internet facing ALBs with 'dualstack-without-public-ipv4' IP address type, the default security group rules\n will allow IPv6 ingress from anywhere (::/0). Previously, the default security group rules would only allow IPv4 ingress.\n\n Using a feature flag to make sure existing customers who might be relying\n on the overly restrictive permissions are not broken.`,\n introducedIn: { v2: '2.176.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to only allow IPv4 ingress in the default security group rules.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the default behaviour of OIDC provider will reject unauthorized connections',\n detailsMd: `\n When this feature flag is enabled, the default behaviour of OIDC Provider's custom resource handler will\n default to reject unauthorized connections when downloading CA Certificates.\n\n When this feature flag is disabled, the behaviour will be the same as current and will allow downloading\n thumbprints from unsecure connections.`,\n introducedIn: { v2: '2.177.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to allow unsecure OIDC connection.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_ADDITIONAL_METADATA_COLLECTION]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues.',\n detailsMd: `\n When this feature flag is enabled, CDK expands the scope of usage data collection to include the following:\n * L2 construct property keys - Collect which property keys you use from the L2 constructs in your app. This includes property keys nested in dictionary objects.\n * L2 construct property values of BOOL and ENUM types - Collect property key values of only BOOL and ENUM types. All other types, such as string values or construct references will be redacted.\n * L2 construct method usage - Collection method name, parameter keys and parameter values of BOOL and ENUM type.\n `,\n introducedIn: { v2: '2.178.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_CREATE_NEW_POLICIES_WITH_ADDTOROLEPOLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: '[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement',\n detailsMd: `\n [Deprecated default feature] When this feature flag is enabled, Lambda will create new inline policies with AddToRolePolicy.\n The purpose of this is to prevent lambda from creating a dependency on the Default Policy Statement.\n This solves an issue where a circular dependency could occur if adding lambda to something like a Cognito Trigger, then adding the User Pool to the lambda execution role permissions.\n However in the current implementation, we have removed a dependency of the lambda function on the policy. In addition to this, a Role will be attached to the Policy instead of an inline policy being attached to the role.\n This will create a data race condition in the CloudFormation template because the creation of the Lambda function no longer waits for the policy to be created. Having said that, we are not deprecating the feature (we are defaulting the feature flag to false for new stacks) since this feature can still be used to get around the circular dependency issue (issue-7016) particularly in cases where the lambda resource creation doesnt need to depend on the policy resource creation.\n We recommend to unset the feature flag if already set which will restore the original behavior.\n `,\n introducedIn: { v2: '2.180.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SET_UNIQUE_REPLICATION_ROLE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, CDK will automatically generate a unique role name that is used for s3 object replication.',\n detailsMd: `\n When performing cross-account S3 replication, we need to explicitly specify a role name for the replication execution role.\n When this feature flag is enabled, a unique role name is specified only when performing cross-account replication.\n When disabled, 'CDKReplicationRole' is always specified.\n `,\n introducedIn: { v2: '2.182.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.PIPELINE_REDUCE_STAGE_ROLE_TRUST_SCOPE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Remove the root account principal from Stage addActions trust policy',\n detailsMd: `\n When this feature flag is enabled, the root account principal will not be added to the trust policy of stage role.\n When this feature flag is disabled, it will keep the root account principal in the trust policy.\n\n For cross-account cases, when this feature flag is enabled the trust policy will be scoped to the role only.\n If you are providing a custom role, you will need to ensure 'roleName' is specified or set to PhysicalName.GENERATE_IF_NEEDED.\n `,\n introducedIn: { v2: '2.184.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to add the root account principal back',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EVENTBUS_POLICY_SID_REQUIRED]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals.',\n detailsMd: `\n Currently, when granting permissions to service principals using grantPutEventsTo(), the operation silently fails\n because service principals require resource policies with Statement IDs.\n\n When this flag is enabled:\n - Resource policies will be created with Statement IDs for service principals\n - The operation will succeed as expected\n\n When this flag is disabled:\n - A warning will be emitted\n - The grant operation will be dropped\n - No permissions will be added\n\n This fixes the issue where permissions were silently not being added for service principals.\n `,\n introducedIn: { v2: '2.186.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ASPECT_PRIORITIES_MUTATING]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING.',\n detailsMd: `\n Custom Aspects you add have a priority of DEFAULT (500) if you don't\n assign a more specific priority, which is higher than MUTATING (200). This\n is relevant if a custom Aspect you add and an Aspect added by CDK try to\n configure the same value.\n\n If this flag is set to false (old behavior), Aspects added by CDK are also\n added with a priority of DEFAULT; because their priorities are equal, the\n Aspects that is closest to the target construct executes last (either\n yours or the Aspect added by the CDK).\n\n If this flag is set to true (recommended behavior), Aspects added by CDK are added\n with a priority of MUTATING, and custom Aspects you add with DEFAULT\n priority will always execute last and \"win\" the write. If you need Aspects\n added by CDK to run after yours, your Aspect needs to have a priority of\n MUTATING or lower.\n\n This setting only applies to Aspects that were already being added for you\n before version 2.172.0. Aspects introduced since that version will always\n be added with a priority of MUTATING, independent of this feature flag.\n `,\n introducedIn: { v2: '2.189.1' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: `\n To add mutating Aspects controlling construct values that can be overridden\n by Aspects added by CDK, give them MUTATING priority:\n\n \\`\\`\\`\n Aspects.of(stack).add(new MyCustomAspect(), {\n priority: AspectPriority.MUTATING,\n });\n \\`\\`\\`\n `,\n },\n [exports.DYNAMODB_TABLE_RETAIN_TABLE_REPLICA]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, table replica will be default to the removal policy of source table unless specified otherwise.',\n detailsMd: `\n Currently, table replica will always be deleted when stack deletes regardless of source table's deletion policy.\n When enabled, table replica will be default to the removal policy of source table unless specified otherwise.\n `,\n introducedIn: { v2: '2.187.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LOG_USER_POOL_CLIENT_SECRET_VALUE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs.',\n detailsMd: `\n When this feature flag is enabled, the SDK API call response to desribe user pool client values will be logged in the custom\n resource lambda function logs.\n\n When this feature flag is disabled, the SDK API call response to describe user pool client values will not be logged in the custom\n resource lambda function logs.\n `,\n introducedIn: { v2: '2.187.0' },\n unconfiguredBehavesLike: { v2: false },\n recommendedValue: false,\n compatibilityWithOldBehaviorMd: 'Enable the feature flag to keep the old behavior and log the client secret values',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.PIPELINE_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, scopes down the trust policy for the cross-account action role',\n detailsMd: `\n When this feature flag is enabled, the trust policy of the cross-account action role will be scoped to the pipeline role.\n If you are providing a custom role, you will need to ensure 'roleName' is specified or set to PhysicalName.GENERATE_IF_NEEDED.\n When this feature flag is disabled, it will keep the root account principal in the trust policy.\n `,\n introducedIn: { v2: '2.189.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to add the root account principal back',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter',\n detailsMd: `\n When this feature flag is enabled, the resultWriterV2 property is used instead of resultWriter in DistributedMap class.\n resultWriterV2 uses ResultWriterV2 class in StepFunctions ASL and can have either Bucket/Prefix or WriterConfig or both.\n `,\n introducedIn: { v2: '2.188.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag and set resultWriter in DistributedMap',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Add an S3 trust policy to a KMS key resource policy for SNS subscriptions.',\n detailsMd: `\n When this feature flag is enabled, a S3 trust policy will be added to the KMS key resource policy for encrypted SNS subscriptions.\n `,\n introducedIn: { v2: '2.195.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESSONLYINTERNETGATEWAY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC.',\n detailsMd: `\n When this feature flag is enabled, EgressOnlyGateway resource will not be created when you create a vpc with only public subnets.\n `,\n introducedIn: { v2: '2.196.0' },\n recommendedValue: true,\n },\n /// ///////////////////////////////////////////////////////////////////\n [exports.USE_RESOURCEID_FOR_VPCV2_MIGRATION]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, use resource IDs for VPC V2 migration',\n detailsMd: `\n When this feature flag is enabled, the VPC V2 migration will use resource IDs instead of getAtt references\n for migrating resources from VPC V1 to VPC V2. This helps ensure a smoother migration path between\n the two versions.\n `,\n introducedIn: { v2: '2.196.0' },\n recommendedValue: false,\n unconfiguredBehavesLike: { v2: false },\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to use getAtt references for VPC V2 migration',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined.',\n detailsMd: `\n When BlockPublicAccess is not set at all, s3's default behavior will be to set all options to true in aws console.\n The previous behavior in cdk before this feature was; if only some of the BlockPublicAccessOptions were set (not all 4), then the ones undefined would default to false.\n This is counter intuitive to the console behavior where the options would start in true state and a user would uncheck the boxes as needed.\n The new behavior from this feature will allow a user, for example, to set 1 of the 4 BlockPublicAccessOpsions to false, and on deployment the other 3 will remain true.\n `,\n introducedIn: { v2: '2.196.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USE_CDK_MANAGED_LAMBDA_LOGGROUP]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, CDK creates and manages loggroup for the lambda function',\n detailsMd: `\n When this feature flag is enabled, CDK will create a loggroup for lambda function with default properties\n which supports CDK features Tag propagation, Property Injectors, Aspects\n if the cdk app doesnt pass a 'logRetention' or 'logGroup' explicitly.\n LogGroups created via 'logRetention' do not support Tag propagation, Property Injectors, Aspects.\n LogGroups created via 'logGroup' created in CDK support Tag propagation, Property Injectors, Aspects.\n\n When this feature flag is disabled, a loggroup is created by Lambda service on first invocation\n of the function (existing behavior).\n LogGroups created in this way do not support Tag propagation, Property Injectors, Aspects.\n\n DO NOT ENABLE: If you have and existing app defining a lambda function and\n have not supplied a logGroup or logRetention prop and your lambda function has\n executed at least once, the logGroup has been already created with the same name\n so your deployment will start failing.\n Refer aws-lambda/README.md for more details on Customizing Log Group creation.\n `,\n introducedIn: { v2: '2.200.0' },\n unconfiguredBehavesLike: { v2: false },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to let lambda service create logGroup or specify logGroup or logRetention',\n },\n};\nexports.CURRENT_MV = 'v2';\n/**\n * The list of future flags that are now expired. This is going to be used to identify\n * and block usages of old feature flags in the new major version of CDK.\n */\nexports.CURRENT_VERSION_EXPIRED_FLAGS = Object.entries(exports.FLAGS)\n .filter(([_, flag]) => flag.introducedIn[exports.CURRENT_MV] === undefined)\n .map(([name, _]) => name).sort();\n/**\n * Flag values that should apply for new projects\n *\n * This contains flags that satisfy both criteria of:\n *\n * - They are configurable for the current major version line.\n * - The recommended value is different from the unconfigured value (i.e.,\n * configuring a flag is useful)\n */\nexports.CURRENTLY_RECOMMENDED_FLAGS = Object.fromEntries(Object.entries(exports.FLAGS)\n .filter(([_, flag]) => flag.introducedIn[exports.CURRENT_MV] !== undefined)\n .filter(([_, flag]) => flag.recommendedValue !== flag.unconfiguredBehavesLike?.[exports.CURRENT_MV])\n .map(([name, flag]) => [name, flag.recommendedValue]));\n/**\n * The default values of each of these flags in the current major version.\n *\n * This is the effective value of the flag, unless it's overridden via\n * context.\n *\n * Adding new flags here is only allowed during the pre-release period of a new\n * major version!\n */\nexports.CURRENT_VERSION_FLAG_DEFAULTS = Object.fromEntries(Object.entries(exports.FLAGS)\n .filter(([_, flag]) => flag.unconfiguredBehavesLike?.[exports.CURRENT_MV] !== undefined)\n .map(([name, flag]) => [name, flag.unconfiguredBehavesLike?.[exports.CURRENT_MV]]));\nfunction futureFlagDefault(flag) {\n const value = exports.CURRENT_VERSION_FLAG_DEFAULTS[flag] ?? false;\n if (typeof value !== 'boolean') {\n // This should never happen, if this error is thrown it's a bug\n // eslint-disable-next-line @cdklabs/no-throw-default-error\n throw new Error(`futureFlagDefault: default type of flag '${flag}' should be boolean, got '${typeof value}'`);\n }\n return value;\n}\n// Nobody should have been using any of this, but you never know\n/** @deprecated use CURRENT_VERSION_EXPIRED_FLAGS instead */\nexports.FUTURE_FLAGS_EXPIRED = exports.CURRENT_VERSION_EXPIRED_FLAGS;\n/** @deprecated do not use at all! */\nexports.FUTURE_FLAGS = Object.fromEntries(Object.entries(exports.CURRENTLY_RECOMMENDED_FLAGS)\n .filter(([_, v]) => typeof v === 'boolean'));\n/** @deprecated do not use at all! */\nexports.NEW_PROJECT_DEFAULT_CONTEXT = Object.fromEntries(Object.entries(exports.CURRENTLY_RECOMMENDED_FLAGS)\n .filter(([_, v]) => typeof v !== 'boolean'));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQStzREEsOENBUUM7QUF2dERELDJEQUE2RDtBQUU3RCx3RUFBd0U7QUFDeEUsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSw2RUFBNkU7QUFDN0UsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSxtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLHdFQUF3RTtBQUN4RSxFQUFFO0FBQ0YscUJBQXFCO0FBQ3JCLEVBQUU7QUFDRix3RkFBd0Y7QUFDeEYsOEJBQThCO0FBQzlCLEVBQUU7QUFDRixnR0FBZ0c7QUFDaEcsc0JBQXNCO0FBQ3RCLEVBQUU7QUFDRix3RUFBd0U7QUFDeEUsRUFBRTtBQUNGLGdGQUFnRjtBQUNoRixFQUFFO0FBQ0YsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsRUFBRTtBQUNGLDJDQUEyQztBQUMzQywyREFBMkQ7QUFDM0QsK0VBQStFO0FBQy9FLEVBQUU7QUFDRiw4RUFBOEU7QUFDOUUsNkVBQTZFO0FBQzdFLCtFQUErRTtBQUMvRSw0Q0FBNEM7QUFDNUMsRUFBRTtBQUNGLDJDQUEyQztBQUMzQywyREFBMkQ7QUFDM0QsNEVBQTRFO0FBQzVFLEVBQUU7QUFDRix1RkFBdUY7QUFDdkYsOEVBQThFO0FBQzlFLEVBQUU7QUFDRixpRkFBaUY7QUFDakYsbUZBQW1GO0FBRXRFLFFBQUEsb0NBQW9DLEdBQUcseUNBQXlDLENBQUM7QUFDakYsUUFBQSwyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQztBQUN0RSxvREFBb0Q7QUFDdkMsUUFBQSxtQkFBbUIsR0FBRyxtQ0FBMkIsQ0FBQztBQUNsRCxRQUFBLGlDQUFpQyxHQUFHLHNDQUFzQyxDQUFDO0FBQzNFLFFBQUEsOEJBQThCLEdBQUcsb0NBQW9DLENBQUM7QUFDdEUsUUFBQSxxQkFBcUIsR0FBRyw2Q0FBNkMsQ0FBQztBQUN0RSxRQUFBLHVD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SUFDM0QsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMvQiwrREFBK0Q7UUFDL0QsMkRBQTJEO1FBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLElBQUksNkJBQTZCLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsZ0VBQWdFO0FBRWhFLDREQUE0RDtBQUMvQyxRQUFBLG9CQUFvQixHQUFHLHFDQUE2QixDQUFDO0FBRWxFLHFDQUFxQztBQUN4QixRQUFBLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUNBQTJCLENBQUM7S0FDdkYsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFL0MscUNBQXFDO0FBQ3hCLFFBQUEsMkJBQTJCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG1DQUEyQixDQUFDO0tBQ3RHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ0luZm8sIEZsYWdUeXBlIH0gZnJvbSAnLi9wcml2YXRlL2ZsYWctbW9kZWxpbmcnO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBUaGlzIGZpbGUgZGVmaW5lcyBjb250ZXh0IGtleXMgdGhhdCBlbmFibGUgY2VydGFpbiBmZWF0dXJlcyB0aGF0IGFyZVxuLy8gaW1wbGVtZW50ZWQgYmVoaW5kIGEgZmxhZyBpbiBvcmRlciB0byBwcmVzZXJ2ZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Jcbi8vIGV4aXN0aW5nIGFwcHMuIFdoZW4gYSBuZXcgYXBwIGlzIGluaXRpYWxpemVkIHRocm91Z2ggYGNkayBpbml0YCwgdGhlIENMSSB3aWxsXG4vLyBhdXRvbWF0aWNhbGx5IGFkZCBlbmFibGUgdGhlc2UgZmVhdHVyZXMgYnkgYWRkaW5nIHRoZW0gdG8gdGhlIGdlbmVyYXRlZFxuLy8gYGNkay5qc29uYCBmaWxlLlxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy9cbi8vICAhISEgSU1QT1JUQU5UICEhIVxuLy9cbi8vICBXaGVuIHlvdSBpbnRyb2R1Y2UgYSBuZXcgZmxhZywgc2V0IGl0cyAnaW50cm9kdWNlZEluLnYyJyB2YWx1ZSB0byB0aGUgbGl0ZXJhbCBzdHJpbmdcbi8vICdWMsK3TkVYVCcsIHdpdGhvdXQgdGhlIGRvdC5cbi8vXG4vLyAgRE8gTk9UIFVTRSBBIFZBUklBQkxFLiBETyBOT1QgREVGSU5FIEEgQ09OU1RBTlQuIFRoZSBhY3R1YWwgdmFsdWUgd2lsbCBiZSBzdHJpbmctcmVwbGFjZWQgYXRcbi8vICB2ZXJzaW9uIGJ1bXAgdGltZS5cbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBUaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgZmxhZ3M6IEFwaURlZmF1bHQsIEJ1Z0ZpeCwgYW5kIFZpc2libGVDb250ZXh0IGZsYWdzLlxuLy9cbi8vIC0gQXBpRGVmYXVsdCBmbGFnczogY2hhbmdlIHRoZSBiZWhhdmlvciBvciBkZWZhdWx0cyBvZiB0aGUgY29uc3RydWN0IGxpYnJhcnkuXG4vLyAgIEl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIGFjaGlldmUgdGhlIG9sZCBiZWhhdmlvciB2aWEgdGhlIG9mZmljaWFsIEFQSVxuLy8gICBidXQgY2hhbmdlcyBhcmUgbmVjZXNzYXJ5IChlLmcuIHBhc3NpbmcgYSBib29sZWFuIGZsYWcpLlxuLy9cbi8vICAgSW1wbGljYXRpb25zIGZvciBmdXR1cmUgTWFqb3IgVmVyc2lvbjpcbi8vICAgLSBUaGUgcmVjb21tZW5kZWQgdmFsdWUgd2lsbCBiZWNvbWUgdGhlIGRlZmF1bHQgdmFsdWUuXG4vLyAgIC0gRmxhZ3Mgb2YgdGhpcyB0eXBlIHdpbGwgYmUgcmVtb3ZlZCAoY29kZSBjaGFuZ2VzIHdpbGwgYmVjb21lIG1hbmRhdG9yeSkuXG4vL1xuLy8gLSBCdWdGaXggZmxhZ3M6IHRoZSBvbGQgaW5mcmEgd2UgdXNlZCB0byBnZW5lcmF0ZSBpcyBubyBsb25nZXIgcmVjb21tZW5kZWQuXG4vLyAgIFRoZSBvbGQgYmVoYXZpb3IgY2Fubm90IGJlIGFjaGlldmVkIGFueW1vcmUgdXNpbmcgdGhlIG9mZmljaWFsIEFQSSAob25seVxuLy8gICBieSBtYWtpbmcgc3VyZSB0aGUgZmVhdHVyZSBmbGFnIGlzIHVuc2V0KS4gTW9zdGx5IHVzZWQgZm9yIGluZnJhLWltcGFjdGluZ1xuLy8gICBidWdmaXhlcyBvciBlbmhhbmNlZCBzZWN1cml0eSBkZWZhdWx0cy5cbi8vXG4vLyAgIEltcGxpY2F0aW9ucyBmb3IgZnV0dXJlIE1ham9yIFZlcnNpb246XG4vLyAgIC0gVGhlIHJlY29tbWVuZGVkIHZhbHVlIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IHZhbHVlLlxuLy8gICAtIEZsYWcgd2lsbCBuZXZlciBiZSByZW1vdmVkIChubyBvdGhlciB3YXkgdG8gYWNoaWV2ZSBsZWdhY3kgYmVoYXZpb3IpLlxuLy9cbi8vIC0gVmlzaWJsZUNvbnRleHQgZmxhZ3M6IG5vdCByZWFsbHkgYSBmZWF0dXJlIGZsYWcsIGJ1dCBjb25maWd1cmFibGUgY29udGV4dCB3aGljaCBpc1xuLy8gICBhZHZlcnRpc2VkIGJ5IHB1dHRpbmcgdGhlIGNvbnRleHQgaW4gdGhlIGBjZGsuanNvbmAgZmlsZSBvZiBuZXcgcHJvamVjdHMuXG4vL1xuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay1yZmNzL2Jsb2IvbWFzdGVyL3RleHQvMDA1NS1mZWF0dXJlLWZsYWdzLm1kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgRU5BQkxFX1NUQUNLX05BTUVfRFVQTElDQVRFU19DT05URVhUID0gJ0Bhd3MtY2RrL2NvcmU6ZW5hYmxlU3RhY2tOYW1lRHVwbGljYXRlcyc7XG5leHBvcnQgY29uc3QgRU5BQkxFX0RJRkZfTk9fRkFJTF9DT05URVhUID0gJ2F3cy1jZGs6ZW5hYmxlRGlmZk5vRmFpbCc7XG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBFTkFCTEVfRElGRl9OT19GQUlMX0NPTlRFWFRgICovXG5leHBvcnQgY29uc3QgRU5BQkxFX0RJRkZfTk9fRkFJTCA9IEVOQUJMRV9ESUZGX05PX0ZBSUxfQ09OVEVYVDtcbmV4cG9ydCBjb25zdCBORVdfU1RZTEVfU1RBQ0tfU1lOVEhFU0lTX0NPTlRFWFQgPSAnQGF3cy1jZGsvY29yZTpuZXdTdHlsZVN0YWNrU3ludGhlc2lzJztcbmV4cG9ydCBjb25zdCBTVEFDS19SRUxBVElWRV9FWFBPUlRTX0NPTlRFWFQgPSAnQGF3cy1jZGsvY29yZTpzdGFja1JlbGF0aXZlRXhwb3J0cyc7XG5leHBvcnQgY29uc3QgRE9DS0VSX0lHTk9SRV9TVVBQT1JUID0gJ0Bhd3MtY2RrL2F3cy1lY3ItYXNzZXRzOmRvY2tlcklnbm9yZVN1cHBvcnQnO1xuZXhwb3J0IGNvbnN0IFNFQ1JFVFNfTUFOQUdFUl9QQVJTRV9PV05FRF9TRUNSRVRfTkFNRSA9ICdAYXdzLWNkay9hd3Mtc2VjcmV0c21hbmFnZXI6cGFyc2VPd25lZFNlY3JldE5hbWUnO1xuZXhwb3J0IGNvbnN0IEtNU19ERUZBVUxUX0tFWV9QT0xJQ0lFUyA9ICdAYXdzLWNkay9hd3Mta21zOmRlZmF1bHRLZXlQb2xpY2llcyc7XG5leHBvcnQgY29uc3QgUzNfR1JBTlRfV1JJVEVfV0lUSE9VVF9BQ0wgPSAnQGF3cy1jZGsvYXdzLXMzOmdyYW50V3JpdGVXaXRob3V0QWNsJztcbmV4cG9ydCBjb25zdCBFQ1NfUkVNT1ZFX0RFRkFVTFRfREVTSVJFRF9DT1VOVCA9ICdAYXdzLWNkay9hd3MtZWNzLXBhdHRlcm5zOnJlbW92ZURlZmF1bHREZXNpcmVkQ291bnQnO1xuZXhwb3J0IGNvbnN0IFJEU19MT1dFUkNBU0VfREJfSURFTlRJRklFUiA9ICdAYXdzLWNkay9hd3MtcmRzOmxvd2VyY2FzZURiSWRlbnRpZmllcic7XG5leHBvcnQgY29uc3QgQVBJR0FURVdBWV9VU0FHRVBMQU5LRVlfT1JERVJJTlNFTlNJVElWRV9JRCA9ICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheTp1c2FnZVBsYW5LZXlPcmRlckluc2Vuc2l0aXZlSWQnO1xuZXhwb3J0IGNvbnN0IEVGU19ERUZBVUxUX0VOQ1JZUFRJT05fQVRfUkVTVCA9ICdAYXdzLWNkay9hd3MtZWZzOmRlZmF1bHRFbmNyeXB0aW9uQXRSZXN0JztcbmV4cG9ydCBjb25zdCBMQU1CREFfUkVDT0dOSVpFX1ZFUlNJT05fUFJPUFMgPSAnQGF3cy1jZGsvYXdzLWxhbWJkYTpyZWNvZ25pemVWZXJzaW9uUHJvcHMnO1xuZXhwb3J0IGNvbnN0IExBTUJEQV9SRUNPR05JWkVfTEFZRVJfVkVSU0lPTiA9ICdAYXdzLWNkay9hd3MtbGFtYmRhOnJlY29nbml6ZUxheWVyVmVyc2lvbic7XG5leHBvcnQgY29uc3QgQ0xPVURGUk9OVF9ERUZBVUxUX1NFQ1VSSVRZX1BPTElDWV9UTFNfVjFfMl8yMDIxID0gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250OmRlZmF1bHRTZWN1cml0eVBvbGljeVRMU3YxLjJfMjAyMSc7XG5leHBvcnQgY29uc3QgQ0hFQ0tfU0VDUkVUX1VTQUdFID0gJ0Bhd3MtY2RrL2NvcmU6Y2hlY2tTZWNyZXRVc2FnZSc7XG5leHBvcnQgY29uc3QgVEFSR0VUX1BBUlRJVElPTlMgPSAnQGF3cy1jZGsvY29yZTp0YXJnZXQtcGFydGl0aW9ucyc7XG5leHBvcnQgY29uc3QgRUNTX1NFUlZJQ0VfRVhURU5TSU9OU19FTkFCTEVfREVGQVVMVF9MT0dfRFJJVkVSID0gJ0Bhd3MtY2RrLWNvbnRhaW5lcnMvZWNzLXNlcnZpY2UtZXh0ZW5zaW9uczplbmFibGVEZWZhdWx0TG9nRHJpdmVyJztcbmV4cG9ydCBjb25zdCBFQzJfVU5JUVVFX0lNRFNWMl9MQVVOQ0hfVEVNUExBVEVfTkFNRSA9ICdAYXdzLWNkay9hd3MtZWMyOnVuaXF1ZUltZHN2MlRlbXBsYXRlTmFtZSc7XG5leHBvcnQgY29uc3QgRUNTX0FSTl9GT1JNQVRfSU5DTFVERVNfQ0xVU1RFUl9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1lY3M6YXJuRm9ybWF0SW5jbHVkZXNDbHVzdGVyTmFtZSc7XG5leHBvcnQgY29uc3QgSUFNX01JTklNSVpFX1BPTElDSUVTID0gJ0Bhd3MtY2RrL2F3cy1pYW06bWluaW1pemVQb2xpY2llcyc7XG5leHBvcnQgY29uc3QgSUFNX0lNUE9SVEVEX1JPTEVfU1RBQ0tfU0FGRV9ERUZBVUxUX1BPTElDWV9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1pYW06aW1wb3J0ZWRSb2xlU3RhY2tTYWZlRGVmYXVsdFBvbGljeU5hbWUnO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRFX1NOQVBTSE9UX1JFTU9WQUxfUE9MSUNZID0gJ0Bhd3MtY2RrL2NvcmU6dmFsaWRhdGVTbmFwc2hvdFJlbW92YWxQb2xpY3knO1xuZXhwb3J0IGNvbnN0IENPREVQSVBFTElORV9DUk9TU19BQ0NPVU5UX0tFWV9BTElBU19TVEFDS19TQUZFX1JFU09VUkNFX05BTUUgPSAnQGF3cy1jZGsvYXdzLWNvZGVwaXBlbGluZTpjcm9zc0FjY291bnRLZXlBbGlhc1N0YWNrU2FmZVJlc291cmNlTmFtZSc7XG5leHBvcnQgY29uc3QgUzNfQ1JFQVRFX0RFRkFVTFRfTE9HR0lOR19QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXMzOmNyZWF0ZURlZmF1bHRMb2dnaW5nUG9saWN5JztcbmV4cG9ydCBjb25zdCBTTlNfU1VCU0NSSVBUSU9OU19TUVNfREVDUllQVElPTl9QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXNucy1zdWJzY3JpcHRpb25zOnJlc3RyaWN0U3FzRGVzY3J5cHRpb24nO1xuZXhwb3J0IGNvbnN0IEFQSUdBVEVXQVlfRElTQUJMRV9DTE9VRFdBVENIX1JPTEUgPSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6ZGlzYWJsZUNsb3VkV2F0Y2hSb2xlJztcbmV4cG9ydCBjb25zdCBFTkFCTEVfUEFSVElUSU9OX0xJVEVSQUxTID0gJ0Bhd3MtY2RrL2NvcmU6ZW5hYmxlUGFydGl0aW9uTGl0ZXJhbHMnO1xuZXhwb3J0IGNvbnN0IEVWRU5UU19UQVJHRVRfUVVFVUVfU0FNRV9BQ0NPVU5UID0gJ0Bhd3MtY2RrL2F3cy1ldmVudHM6ZXZlbnRzVGFyZ2V0UXVldWVTYW1lQWNjb3VudCc7XG5leHBvcnQgY29uc3QgRUNTX0RJU0FCTEVfRVhQTElDSVRfREVQTE9ZTUVOVF9DT05UUk9MTEVSX0ZPUl9DSVJDVUlUX0JSRUFLRVIgPSAnQGF3cy1jZGsvYXdzLWVjczpkaXNhYmxlRXhwbGljaXREZXBsb3ltZW50Q29udHJvbGxlckZvckNpcmN1aXRCcmVha2VyJztcbmV4cG9ydCBjb25zdCBTM19TRVJWRVJfQUNDRVNTX0xPR1NfVVNFX0JVQ0tFVF9QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXMzOnNlcnZlckFjY2Vzc0xvZ3NVc2VCdWNrZXRQb2xpY3knO1xuZXhwb3J0IGNvbnN0IFJPVVRFNTNfUEFUVEVSTlNfVVNFX0NFUlRJRklDQVRFID0gJ0Bhd3MtY2RrL2F3cy1yb3V0ZTUzLXBhdHRlcnM6dXNlQ2VydGlmaWNhdGUnO1xuZXhwb3J0IGNvbnN0IEFXU19DVVNUT01fUkVTT1VSQ0VfTEFURVNUX1NES19ERUZBVUxUID0gJ0Bhd3MtY2RrL2N1c3RvbXJlc291cmNlczppbnN0YWxsTGF0ZXN0QXdzU2RrRGVmYXVsdCc7XG5leHBvcnQgY29uc3QgREFUQUJBU0VfUFJPWFlfVU5JUVVFX1JFU09VUkNFX05BTUUgPSAnQGF3cy1jZGsvYXdzLXJkczpkYXRhYmFzZVByb3h5VW5pcXVlUmVzb3VyY2VOYW1lJztcbmV4cG9ydCBjb25zdCBDT0RFREVQTE9ZX1JFTU9WRV9BTEFSTVNfRlJPTV9ERVBMT1lNRU5UX0dST1VQID0gJ0Bhd3MtY2RrL2F3cy1jb2RlZGVwbG95OnJlbW92ZUFsYXJtc0Zyb21EZXBsb3ltZW50R3JvdXAnO1xuZXhwb3J0IGNvbnN0IEFQSUdBVEVXQVlfQVVUSE9SSVpFUl9DSEFOR0VfREVQTE9ZTUVOVF9MT0dJQ0FMX0lEID0gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5OmF1dGhvcml6ZXJDaGFuZ2VEZXBsb3ltZW50TG9naWNhbElkJztcbmV4cG9ydCBjb25zdCBFQzJfTEFVTkNIX1RFTVBMQVRFX0RFRkFVTFRfVVNFUl9EQVRBID0gJ0Bhd3MtY2RrL2F3cy1lYzI6bGF1bmNoVGVtcGxhdGVEZWZhdWx0VXNlckRhdGEnO1xuZXhwb3J0IGNvbnN0IFNFQ1JFVFNfTUFOQUdFUl9UQVJHRVRfQVRUQUNITUVOVF9SRVNPVVJDRV9QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXNlY3JldHNtYW5hZ2VyOnVzZUF0dGFjaGVkU2VjcmV0UmVzb3VyY2VQb2xpY3lGb3JTZWNyZXRUYXJnZXRBdHRhY2htZW50cyc7XG5leHBvcnQgY29uc3QgUkVEU0hJRlRfQ09MVU1OX0lEID0gJ0Bhd3MtY2RrL2F3cy1yZWRzaGlmdDpjb2x1bW5JZCc7XG5leHBvcnQgY29uc3QgRU5BQkxFX0VNUl9TRVJWSUNFX1BPTElDWV9WMiA9ICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrczplbmFibGVFbXJTZXJ2aWNlUG9saWN5VjInO1xuZXhwb3J0IGNvbnN0IEVDMl9SRVNUUklDVF9ERUZBVUxUX1NFQ1VSSVRZX0dST1VQID0gJ0Bhd3MtY2RrL2F3cy1lYzI6cmVzdHJpY3REZWZhdWx0U2VjdXJpdHlHcm91cCc7XG5leHBvcnQgY29uc3QgQVBJR0FURVdBWV9SRVFVRVNUX1ZBTElEQVRPUl9VTklRVUVfSUQgPSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6cmVxdWVzdFZhbGlkYXRvclVuaXF1ZUlkJztcbmV4cG9ydCBjb25zdCBJTkNMVURFX1BSRUZJWF9JTl9VTklRVUVfTkFNRV9HRU5FUkFUSU9OID0gJ0Bhd3MtY2RrL2NvcmU6aW5jbHVkZVByZWZpeEluVW5pcXVlTmFtZUdlbmVyYXRpb24nO1xuZXhwb3J0IGNvbnN0IEtNU19BTElBU19OQU1FX1JFRiA9ICdAYXdzLWNkay9hd3Mta21zOmFsaWFzTmFtZVJlZic7XG5leHBvcnQgY29uc3QgS01TX0FQUExZX0lNUE9SVEVEX0FMSUFTX1BFUk1JU1NJT05TX1RPX1BSSU5DSVBBTCA9ICdAYXdzLWNkay9hd3Mta21zOmFwcGx5SW1wb3J0ZWRBbGlhc1Blcm1pc3Npb25zVG9QcmluY2lwYWwnO1xuZXhwb3J0IGNvbnN0IEVGU19ERU5ZX0FOT05ZTU9VU19BQ0NFU1MgPSAnQGF3cy1jZGsvYXdzLWVmczpkZW55QW5vbnltb3VzQWNjZXNzJztcbmV4cG9ydCBjb25zdCBFRlNfTU9VTlRUQVJHRVRfT1JERVJJTlNFTlNJVElWRV9MT0dJQ0FMX0lEID0gJ0Bhd3MtY2RrL2F3cy1lZnM6bW91bnRUYXJnZXRPcmRlckluc2Vuc2l0aXZlTG9naWNhbElkJztcbmV4cG9ydCBjb25zdCBBVVRPU0NBTElOR19HRU5FUkFURV9MQVVOQ0hfVEVNUExBVEUgPSAnQGF3cy1jZGsvYXdzLWF1dG9zY2FsaW5nOmdlbmVyYXRlTGF1bmNoVGVtcGxhdGVJbnN0ZWFkT2ZMYXVuY2hDb25maWcnO1xuZXhwb3J0IGNvbnN0IEVOQUJMRV9PUEVOU0VBUkNIX01VTFRJQVpfV0lUSF9TVEFOREJZID0gJ0Bhd3MtY2RrL2F3cy1vcGVuc2VhcmNoc2VydmljZTplbmFibGVPcGVuc2VhcmNoTXVsdGlBeldpdGhTdGFuZGJ5JztcbmV4cG9ydCBjb25zdCBMQU1CREFfTk9ERUpTX1VTRV9MQVRFU1RfUlVOVElNRSA9ICdAYXdzLWNkay9hd3MtbGFtYmRhLW5vZGVqczp1c2VMYXRlc3RSdW50aW1lVmVyc2lvbic7XG5leHBvcnQgY29uc3QgUkRTX1BSRVZFTlRfUkVOREVSSU5HX0RFUFJFQ0FURURfQ1JFREVOVElBTFMgPSAnQGF3cy1jZGsvYXdzLXJkczpwcmV2ZW50UmVuZGVyaW5nRGVwcmVjYXRlZENyZWRlbnRpYWxzJztcbmV4cG9ydCBjb25zdCBBVVJPUkFfQ0xVU1RFUl9DSEFOR0VfU0NPUEVfT0ZfSU5TVEFOQ0VfUEFSQU1FVEVSX0dST1VQX1dJVEhfRUFDSF9QQVJBTUVURVJTID0gJ0Bhd3MtY2RrL2F3cy1yZHM6YXVyb3JhQ2x1c3RlckNoYW5nZVNjb3BlT2ZJbnN0YW5jZVBhcmFtZXRlckdyb3VwV2l0aEVhY2hQYXJhbWV0ZXJzJztcbmV4cG9ydCBjb25zdCBBUFBTWU5DX0VOQUJMRV9VU0VfQVJOX0lERU5USUZJRVJfU09VUkNFX0FQSV9BU1NPQ0lBVElPTiA9ICdAYXdzLWNkay9hd3MtYXBwc3luYzp1c2VBcm5Gb3JTb3VyY2VBcGlBc3NvY2lhdGlvbklkZW50aWZpZXInO1xuZXhwb3J0IGNvbnN0IENPREVDT01NSVRfU09VUkNFX0FDVElPTl9ERUZBVUxUX0JSQU5DSF9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9uczp1c2VOZXdEZWZhdWx0QnJhbmNoRm9yQ29kZUNvbW1pdFNvdXJjZSc7XG5leHBvcnQgY29uc3QgTEFNQkRBX1BFUk1JU1NJT05fTE9HSUNBTF9JRF9GT1JfTEFNQkRBX0FDVElPTiA9ICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaC1hY3Rpb25zOmNoYW5nZUxhbWJkYVBlcm1pc3Npb25Mb2dpY2FsSWRGb3JMYW1iZGFBY3Rpb24nO1xuZXhwb3J0IGNvbnN0IENPREVQSVBFTElORV9DUk9TU19BQ0NPVU5UX0tFWVNfREVGQVVMVF9WQUxVRV9UT19GQUxTRSA9ICdAYXdzLWNkay9hd3MtY29kZXBpcGVsaW5lOmNyb3NzQWNjb3VudEtleXNEZWZhdWx0VmFsdWVUb0ZhbHNlJztcbmV4cG9ydCBjb25zdCBDT0RFUElQRUxJTkVfREVGQVVMVF9QSVBFTElORV9UWVBFX1RPX1YyID0gJ0Bhd3MtY2RrL2F3cy1jb2RlcGlwZWxpbmU6ZGVmYXVsdFBpcGVsaW5lVHlwZVRvVjInO1xuZXhwb3J0IGNvbnN0IEtNU19SRURVQ0VfQ1JPU1NfQUNDT1VOVF9SRUdJT05fUE9MSUNZX1NDT1BFID0gJ0Bhd3MtY2RrL2F3cy1rbXM6cmVkdWNlQ3Jvc3NBY2NvdW50UmVnaW9uUG9saWN5U2NvcGUnO1xuZXhwb3J0IGNvbnN0IFBJUEVMSU5FX1JFRFVDRV9BU1NFVF9ST0xFX1RSVVNUX1NDT1BFID0gJ0Bhd3MtY2RrL3BpcGVsaW5lczpyZWR1Y2VBc3NldFJvbGVUcnVzdFNjb3BlJztcbmV4cG9ydCBjb25zdCBFS1NfTk9ERUdST1VQX05BTUUgPSAnQGF3cy1jZGsvYXdzLWVrczpub2RlZ3JvdXBOYW1lQXR0cmlidXRlJztcbmV4cG9ydCBjb25zdCBFQlNfREVGQVVMVF9HUDMgPSAnQGF3cy1jZGsvYXdzLWVjMjplYnNEZWZhdWx0R3AzVm9sdW1lJztcbmV4cG9ydCBjb25zdCBFQ1NfUkVNT1ZFX0RFRkFVTFRfREVQTE9ZTUVOVF9BTEFSTSA9ICdAYXdzLWNkay9hd3MtZWNzOnJlbW92ZURlZmF1bHREZXBsb3ltZW50QWxhcm0nO1xuZXhwb3J0IGNvbnN0IExPR19BUElfUkVTUE9OU0VfREFUQV9QUk9QRVJUWV9UUlVFX0RFRkFVTFQgPSAnQGF3cy1jZGsvY3VzdG9tLXJlc291cmNlczpsb2dBcGlSZXNwb25zZURhdGFQcm9wZXJ0eVRydWVEZWZhdWx0JztcbmV4cG9ydCBjb25zdCBTM19LRUVQX05PVElGSUNBVElPTl9JTl9JTVBPUlRFRF9CVUNLRVQgPSAnQGF3cy1jZGsvYXdzLXMzOmtlZXBOb3RpZmljYXRpb25JbkltcG9ydGVkQnVja2V0JztcbmV4cG9ydCBjb25zdCBVU0VfTkVXX1MzVVJJX1BBUkFNRVRFUlNfRk9SX0JFRFJPQ0tfSU5WT0tFX01PREVMX1RBU0sgPSAnQGF3cy1jZGsvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3M6dXNlTmV3UzNVcmlQYXJhbWV0ZXJzRm9yQmVkcm9ja0ludm9rZU1vZGVsVGFzayc7XG5leHBvcnQgY29uc3QgRVhQTElDSVRfU1RBQ0tfVEFHUyA9ICdAYXdzLWNkay9jb3JlOmV4cGxpY2l0U3RhY2tUYWdzJztcbmV4cG9ydCBjb25zdCBSRURVQ0VfRUMyX0ZBUkdBVEVfQ0xPVURXQVRDSF9QRVJNSVNTSU9OUyA9ICdAYXdzLWNkay9hd3MtZWNzOnJlZHVjZUVjMkZhcmdhdGVDbG91ZFdhdGNoUGVybWlzc2lvbnMnO1xuZXhwb3J0IGNvbnN0IERZTkFNT0RCX1RBQkxFVjJfUkVTT1VSQ0VfUE9MSUNZX1BFUl9SRVBMSUNBID0gJ0Bhd3MtY2RrL2F3cy1keW5hbW9kYjpyZXNvdXJjZVBvbGljeVBlclJlcGxpY2EnO1xuZXhwb3J0IGNvbnN0IEVDMl9TVU1fVElNRU9VVF9FTkFCTEVEID0gJ0Bhd3MtY2RrL2F3cy1lYzI6ZWMyU3VtVEltZW91dEVuYWJsZWQnO1xuZXhwb3J0IGNvbnN0IEFQUFNZTkNfR1JBUEhRTEFQSV9TQ09QRV9MQU1CREFfRlVOQ1RJT05fUEVSTUlTU0lPTiA9ICdAYXdzLWNkay9hd3MtYXBwc3luYzphcHBTeW5jR3JhcGhRTEFQSVNjb3BlTGFtYmRhUGVybWlzc2lvbic7XG5leHBvcnQgY29uc3QgVVNFX0NPUlJFQ1RfVkFMVUVfRk9SX0lOU1RBTkNFX1JFU09VUkNFX0lEX1BST1BFUlRZID0gJ0Bhd3MtY2RrL2F3cy1yZHM6c2V0Q29ycmVjdFZhbHVlRm9yRGF0YWJhc2VJbnN0YW5jZVJlYWRSZXBsaWNhSW5zdGFuY2VSZXNvdXJjZUlkJztcbmV4cG9ydCBjb25zdCBDRk5fSU5DTFVERV9SRUpFQ1RfQ09NUExFWF9SRVNPVVJDRV9VUERBVEVfQ1JFQVRFX1BPTElDWV9JTlRSSU5TSUNTID0gJ0Bhd3MtY2RrL2NvcmU6Y2ZuSW5jbHVkZVJlamVjdENvbXBsZXhSZXNvdXJjZVVwZGF0ZUNyZWF0ZVBvbGljeUludHJpbnNpY3MnO1xuZXhwb3J0IGNvbnN0IExBTUJEQV9OT0RFSlNfU0RLX1YzX0VYQ0xVREVfU01JVEhZX1BBQ0tBR0VTID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtbm9kZWpzOnNka1YzRXhjbHVkZVNtaXRoeVBhY2thZ2VzJztcbmV4cG9ydCBjb25zdCBTVEVQRlVOQ1RJT05TX1RBU0tTX0ZJWF9SVU5fRUNTX1RBU0tfUE9MSUNZID0gJ0Bhd3MtY2RrL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzOmZpeFJ1bkVjc1Rhc2tQb2xpY3knO1xuZXhwb3J0IGNvbnN0IFNURVBGVU5DVElPTlNfVVNFX0RJU1RSSUJVVEVEX01BUF9SRVNVTFRfV1JJVEVSX1YyID0gJ0Bhd3MtY2RrL2F3cy1zdGVwZnVuY3Rpb25zOnVzZURpc3RyaWJ1dGVkTWFwUmVzdWx0V3JpdGVyVjInO1xuZXhwb3J0IGNvbnN0IEJBU1RJT05fSE9TVF9VU0VfQU1BWk9OX0xJTlVYXzIwMjNfQllfREVGQVVMVCA9ICdAYXdzLWNkay9hd3MtZWMyOmJhc3Rpb25Ib3N0VXNlQW1hem9uTGludXgyMDIzQnlEZWZhdWx0JztcbmV4cG9ydCBjb25zdCBBU1BFQ1RfU1RBQklMSVpBVElPTiA9ICdAYXdzLWNkay9jb3JlOmFzcGVjdFN0YWJpbGl6YXRpb24nO1xuZXhwb3J0IGNvbnN0IFNJR05FUl9QUk9GSUxFX05BTUVfUEFTU0VEX1RPX0NGTiA9ICdAYXdzLWNkay9hd3Mtc2lnbmVyOnNpZ25pbmdQcm9maWxlTmFtZVBhc3NlZFRvQ2ZuJztcbmV4cG9ydCBjb25zdCBVU0VSX1BPT0xfRE9NQUlOX05BTUVfTUVUSE9EX1dJVEhPVVRfQ1VTVE9NX1JFU09VUkNFID0gJ0Bhd3MtY2RrL2F3cy1yb3V0ZTUzLXRhcmdldHM6dXNlclBvb2xEb21haW5OYW1lTWV0aG9kV2l0aG91dEN1c3RvbVJlc291cmNlJztcbmV4cG9ydCBjb25zdCBFbmFibGVfSU1EU19CbG9ja2luZ19EZXByZWNhdGVkX0ZlYXR1cmUgPSAnQGF3cy1jZGsvYXdzLWVjczplbmFibGVJbWRzQmxvY2tpbmdEZXByZWNhdGVkRmVhdHVyZSc7XG5leHBvcnQgY29uc3QgRGlzYWJsZV9FQ1NfSU1EU19CbG9ja2luZyA9ICdAYXdzLWNkay9hd3MtZWNzOmRpc2FibGVFY3NJbWRzQmxvY2tpbmcnO1xuZXhwb3J0IGNvbnN0IEFMQl9EVUFMU1RBQ0tfV0lUSE9VVF9QVUJMSUNfSVBWNF9TRUNVUklUWV9HUk9VUF9SVUxFU19ERUZBVUxUID0gJ0Bhd3MtY2RrL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ1YyOmFsYkR1YWxzdGFja1dpdGhvdXRQdWJsaWNJcHY0U2VjdXJpdHlHcm91cFJ1bGVzRGVmYXVsdCc7XG5leHBvcnQgY29uc3QgSUFNX09JRENfUkVKRUNUX1VOQVVUSE9SSVpFRF9DT05ORUNUSU9OUyA9ICdAYXdzLWNkay9hd3MtaWFtOm9pZGNSZWplY3RVbmF1dGhvcml6ZWRDb25uZWN0aW9ucyc7XG5leHBvcnQgY29uc3QgRU5BQkxFX0FERElUSU9OQUxfTUVUQURBVEFfQ09MTEVDVElPTiA9ICdAYXdzLWNkay9jb3JlOmVuYWJsZUFkZGl0aW9uYWxNZXRhZGF0YUNvbGxlY3Rpb24nO1xuZXhwb3J0IGNvbnN0IExBTUJEQV9DUkVBVEVfTkVXX1BPTElDSUVTX1dJVEhfQUREVE9ST0xFUE9MSUNZID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6Y3JlYXRlTmV3UG9saWNpZXNXaXRoQWRkVG9Sb2xlUG9saWN5JztcbmV4cG9ydCBjb25zdCBTRVRfVU5JUVVFX1JFUExJQ0FUSU9OX1JPTEVfTkFNRSA9ICdAYXdzLWNkay9hd3MtczM6c2V0VW5pcXVlUmVwbGljYXRpb25Sb2xlTmFtZSc7XG5leHBvcnQgY29uc3QgUElQRUxJTkVfUkVEVUNFX1NUQUdFX1JPTEVfVFJVU1RfU0NPUEUgPSAnQGF3cy1jZGsvcGlwZWxpbmVzOnJlZHVjZVN0YWdlUm9sZVRydXN0U2NvcGUnO1xuZXhwb3J0IGNvbnN0IEVWRU5UQlVTX1BPTElDWV9TSURfUkVRVUlSRUQgPSAnQGF3cy1jZGsvYXdzLWV2ZW50czpyZXF1aXJlRXZlbnRCdXNQb2xpY3lTaWQnO1xuZXhwb3J0IGNvbnN0IEFTUEVDVF9QUklPUklUSUVTX01VVEFUSU5HID0gJ0Bhd3MtY2RrL2NvcmU6YXNwZWN0UHJpb3JpdGllc011dGF0aW5nJztcbmV4cG9ydCBjb25zdCBEWU5BTU9EQl9UQUJMRV9SRVRBSU5fVEFCTEVfUkVQTElDQSA9ICdAYXdzLWNkay9hd3MtZHluYW1vZGI6cmV0YWluVGFibGVSZXBsaWNhJztcbmV4cG9ydCBjb25zdCBMT0dfVVNFUl9QT09MX0NMSUVOVF9TRUNSRVRfVkFMVUUgPSAnQGF3cy1jZGsvY29nbml0bzpsb2dVc2VyUG9vbENsaWVudFNlY3JldFZhbHVlJztcbmV4cG9ydCBjb25zdCBQSVBFTElORV9SRURVQ0VfQ1JPU1NfQUNDT1VOVF9BQ1RJT05fUk9MRV9UUlVTVF9TQ09QRSA9ICdAYXdzLWNkay9waXBlbGluZXM6cmVkdWNlQ3Jvc3NBY2NvdW50QWN0aW9uUm9sZVRydXN0U2NvcGUnO1xuZXhwb3J0IGNvbnN0IFMzX1RSVVNUX0tFWV9QT0xJQ1lfRk9SX1NOU19TVUJTQ1JJUFRJT05TID0gJ0Bhd3MtY2RrL3MzLW5vdGlmaWNhdGlvbnM6YWRkUzNUcnVzdEtleVBvbGljeUZvclNuc1N1YnNjcmlwdGlvbnMnO1xuZXhwb3J0IGNvbnN0IEVDMl9SRVFVSVJFX1BSSVZBVEVfU1VCTkVUU19GT1JfRUdSRVNTT05MWUlOVEVSTkVUR0FURVdBWSA9ICdAYXdzLWNkay9hd3MtZWMyOnJlcXVpcmVQcml2YXRlU3VibmV0c0ZvckVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXknO1xuZXhwb3J0IGNvbnN0IFVTRV9SRVNPVVJDRUlEX0ZPUl9WUENWMl9NSUdSQVRJT04gPSAnQGF3cy1jZGsvYXdzLWVjMi1hbHBoYTp1c2VSZXNvdXJjZUlkRm9yVnBjVjJNaWdyYXRpb24nO1xuZXhwb3J0IGNvbnN0IFMzX1BVQkxJQ19BQ0NFU1NfQkxPQ0tFRF9CWV9ERUZBVUxUID0gJ0Bhd3MtY2RrL2F3cy1zMzpwdWJsaWNBY2Nlc3NCbG9ja2VkQnlEZWZhdWx0JztcbmV4cG9ydCBjb25zdCBVU0VfQ0RLX01BTkFHRURfTEFNQkRBX0xPR0dST1VQID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6dXNlQ2RrTWFuYWdlZExvZ0dyb3VwJztcblxuZXhwb3J0IGNvbnN0IEZMQUdTOiBSZWNvcmQ8c3RyaW5nLCBGbGFnSW5mbz4gPSB7XG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1NJR05FUl9QUk9GSUxFX05BTUVfUEFTU0VEX1RPX0NGTl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1Bhc3Mgc2lnbmluZ1Byb2ZpbGVOYW1lIHRvIENmblNpZ25pbmdQcm9maWxlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gZW5hYmxlZCwgdGhlIFxcYHNpZ25pbmdQcm9maWxlTmFtZVxcYCBwcm9wZXJ0eSBpcyBwYXNzZWQgdG8gdGhlIEwxIFxcYENmblNpZ25pbmdQcm9maWxlXFxgIGNvbnN0cnVjdCxcbiAgICAgIHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgQVdTIFNpZ25lciBwcm9maWxlIGlzIGNyZWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuXG4gICAgICBcbiAgICAgIFdoZW4gZGlzYWJsZWQsIHRoZSBcXGBzaWduaW5nUHJvZmlsZU5hbWVcXGAgaXMgbm90IHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbiwgbWFpbnRhaW5pbmcgYmFja3dhcmRcbiAgICAgIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBkZXBsb3ltZW50cyB3aGVyZSBDbG91ZEZvcm1hdGlvbiBhdXRvLWdlbmVyYXRlZCBwcm9maWxlIG5hbWVzLlxuICAgICAgXG4gICAgICBUaGlzIGZlYXR1cmUgZmxhZyBpcyBuZWVkZWQgYmVjYXVzZSBlbmFibGluZyBpdCBjYW4gY2F1c2UgZXhpc3Rpbmcgc2lnbmluZyBwcm9maWxlcyB0byBiZVxuICAgICAgcmVwbGFjZWQgZHVyaW5nIGRlcGxveW1lbnQgaWYgYSBcXGBzaWduaW5nUHJvZmlsZU5hbWVcXGAgd2FzIHNwZWNpZmllZCBidXQgbm90IHByZXZpb3VzbHkgdXNlZFxuICAgICAgaW4gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4yMTIuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiBmYWxzZSB9LFxuICB9LFxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFTkFCTEVfU1RBQ0tfTkFNRV9EVVBMSUNBVEVTX0NPTlRFWFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnQWxsb3cgbXVsdGlwbGUgc3RhY2tzIHdpdGggdGhlIHNhbWUgbmFtZScsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBJZiB0aGlzIGlzIHNldCwgbXVsdGlwbGUgc3RhY2tzIGNhbiB1c2UgdGhlIHNhbWUgc3RhY2sgbmFtZSAoZS5nLiBkZXBsb3llZCB0b1xuICAgICAgZGlmZmVyZW50IGVudmlyb25tZW50cykuIFRoaXMgbWVhbnMgdGhhdCB0aGUgbmFtZSBvZiB0aGUgc3ludGhlc2l6ZWQgdGVtcGxhdGVcbiAgICAgIGZpbGUgd2lsbCBiZSBiYXNlZCBvbiB0aGUgY29uc3RydWN0IHBhdGggYW5kIG5vdCBvbiB0aGUgZGVmaW5lZCBcXGBzdGFja05hbWVcXGBcbiAgICAgIG9mIHRoZSBzdGFjay5gLFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xNi4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnUGFzcyBzdGFjayBpZGVudGlmaWVycyB0byB0aGUgQ0xJIGluc3RlYWQgb2Ygc3RhY2sgbmFtZXMuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFTkFCTEVfRElGRl9OT19GQUlMX0NPTlRFWFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnTWFrZSBgY2RrIGRpZmZgIG5vdCBmYWlsIHdoZW4gdGhlcmUgYXJlIGRpZmZlcmVuY2VzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIERldGVybWluZXMgd2hhdCBzdGF0dXMgY29kZSBcXGBjZGsgZGlmZlxcYCBzaG91bGQgcmV0dXJuIHdoZW4gdGhlIHNwZWNpZmllZCBzdGFja1xuICAgICAgZGlmZmVycyBmcm9tIHRoZSBkZXBsb3llZCBzdGFjayBvciB0aGUgbG9jYWwgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGU6XG5cbiAgICAgICogXFxgYXdzLWNkazplbmFibGVEaWZmTm9GYWlsPXRydWVcXGAgPT4gc3RhdHVzIGNvZGUgPT0gMFxuICAgICAgKiBcXGBhd3MtY2RrOmVuYWJsZURpZmZOb0ZhaWw9ZmFsc2VcXGAgPT4gc3RhdHVzIGNvZGUgPT0gMVxuXG4gICAgICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYmVoYXZpb3Igd2l0aCB0aGUgLS1mYWlsIGZsYWc6XG5cbiAgICAgICogXFxgLS1mYWlsXFxgID0+IHN0YXR1cyBjb2RlID09IDFcbiAgICAgICogXFxgLS1uby1mYWlsXFxgID0+IHN0YXR1cyBjb2RlID09IDBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MTogJzEuMTkuMCcgfSxcbiAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZTogeyB2MjogdHJ1ZSB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnU3BlY2lmeSBgLS1mYWlsYCB0byB0aGUgQ0xJLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTkVXX1NUWUxFX1NUQUNLX1NZTlRIRVNJU19DT05URVhUXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnU3dpdGNoIHRvIG5ldyBzdGFjayBzeW50aGVzaXMgbWV0aG9kIHdoaWNoIGVuYWJsZXMgQ0kvQ0QnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBmbGFnIGlzIHNwZWNpZmllZCwgYWxsIFxcYFN0YWNrXFxgcyB3aWxsIHVzZSB0aGUgXFxgRGVmYXVsdFN0YWNrU3ludGhlc2l6ZXJcXGAgYnlcbiAgICAgIGRlZmF1bHQuIElmIGl0IGlzIG5vdCBzZXQsIHRoZXkgd2lsbCB1c2UgdGhlIFxcYExlZ2FjeVN0YWNrU3ludGhlc2l6ZXJcXGAuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjM5LjAnLCB2MjogJzIuMC4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTVEFDS19SRUxBVElWRV9FWFBPUlRTX0NPTlRFWFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdOYW1lIGV4cG9ydHMgYmFzZWQgb24gdGhlIGNvbnN0cnVjdCBwYXRocyByZWxhdGl2ZSB0byB0aGUgc3RhY2ssIHJhdGhlciB0aGFuIHRoZSBnbG9iYWwgY29uc3RydWN0IHBhdGgnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ29tYmluZWQgd2l0aCB0aGUgc3RhY2sgbmFtZSB0aGlzIHJlbGF0aXZlIGNvbnN0cnVjdCBwYXRoIGlzIGdvb2QgZW5vdWdoIHRvXG4gICAgICBlbnN1cmUgdW5pcXVlbmVzcywgYW5kIG1ha2VzIHRoZSBleHBvcnQgbmFtZXMgcm9idXN0IGFnYWluc3QgcmVmYWN0b3JpbmdcbiAgICAgIHRoZSBsb2NhdGlvbiBvZiB0aGUgc3RhY2sgaW4gdGhlIGNvbnN0cnVjdCB0cmVlIChzcGVjaWZpY2FsbHksIG1vdmluZyB0aGUgU3RhY2tcbiAgICAgIGludG8gYSBTdGFnZSkuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjU4LjAnLCB2MjogJzIuMC4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtET0NLRVJfSUdOT1JFX1NVUFBPUlRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRG9ja2VySW1hZ2VBc3NldCBwcm9wZXJseSBzdXBwb3J0cyBgLmRvY2tlcmlnbm9yZWAgZmlsZXMgYnkgZGVmYXVsdCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIFxcYERvY2tlckltYWdlQXNzZXRcXGAgaXMgdG8gdXNlXG4gICAgICBnbG9iIHNlbWFudGljcyBmb3IgXFxgLmRvY2tlcmlnbm9yZVxcYCBmaWxlcy4gSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgIGlzIHN0YW5kYXJkIERvY2tlciBpZ25vcmUgc2VtYW50aWNzLlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBvbGQgYmVoYXZpb3Igd2FzIHRlY2huaWNhbGx5IGluY29ycmVjdCBidXRcbiAgICAgIHVzZXJzIG1heSBoYXZlIGNvbWUgdG8gZGVwZW5kIG9uIGl0LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS43My4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdVcGRhdGUgeW91ciBgLmRvY2tlcmlnbm9yZWAgZmlsZSB0byBtYXRjaCBzdGFuZGFyZCBEb2NrZXIgaWdub3JlIHJ1bGVzLCBpZiBuZWNlc3NhcnkuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTRUNSRVRTX01BTkFHRVJfUEFSU0VfT1dORURfU0VDUkVUX05BTUVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRml4IHRoZSByZWZlcmVuY2luZyBvZiBTZWNyZXRzTWFuYWdlciBuYW1lcyBmcm9tIEFSTnMnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgU2VjcmV0LnNlY3JldE5hbWUgZm9yIGFuIFwib3duZWRcIiBzZWNyZXQgd2lsbCBhdHRlbXB0IHRvIHBhcnNlIHRoZSBzZWNyZXROYW1lIGZyb20gdGhlIEFSTixcbiAgICAgIHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0IGZ1bGwgcmVzb3VyY2UgbmFtZSwgd2hpY2ggaW5jbHVkZXMgdGhlIFNlY3JldHNNYW5hZ2VyIHN1ZmZpeC5cblxuICAgICAgSWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIFNlY3JldC5zZWNyZXROYW1lIHdpbGwgaW5jbHVkZSB0aGUgU2VjcmV0c01hbmFnZXIgc3VmZml4LCB3aGljaCBjYW5ub3QgYmUgZGlyZWN0bHlcbiAgICAgIHVzZWQgYnkgU2VjcmV0c01hbmFnZXIuRGVzY3JpYmVTZWNyZXQsIGFuZCBtdXN0IGJlIHBhcnNlZCBieSB0aGUgdXNlciBmaXJzdCAoZS5nLiwgRm46Sm9pbiwgRm46U2VsZWN0LCBGbjpTcGxpdCkuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjc3LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1VzZSBgcGFyc2VBcm4oc2VjcmV0LnNlY3JldE5hbWUpLnJlc291cmNlTmFtZWAgdG8gZW11bGF0ZSB0aGUgaW5jb3JyZWN0IG9sZCBwYXJzaW5nLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbS01TX0RFRkFVTFRfS0VZX1BPTElDSUVTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1RpZ2h0ZW4gZGVmYXVsdCBLTVMga2V5IHBvbGljaWVzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEtNUyBLZXlzIHN0YXJ0IHdpdGggYSBkZWZhdWx0IGtleSBwb2xpY3kgdGhhdCBncmFudHMgdGhlIGFjY291bnQgYWNjZXNzIHRvIGFkbWluaXN0ZXIgdGhlIGtleSxcbiAgICAgIG1pcnJvcmluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIEtNUyBTREsvQ0xJL0NvbnNvbGUgZXhwZXJpZW5jZS4gVXNlcnMgbWF5IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGtleVxuICAgICAgcG9saWN5IGJ5IHNwZWNpZnlpbmcgdGhlaXIgb3duLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQga2V5IHBvbGljeSBkZXBlbmRzIG9uIHRoZSBzZXR0aW5nIG9mIHRoZSBcXGB0cnVzdEFjY291bnRJZGVudGl0aWVzXFxgXG4gICAgICBmbGFnLiBJZiBmYWxzZSAodGhlIGRlZmF1bHQsIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zKSwgdGhlIGRlZmF1bHQga2V5IHBvbGljeSBzb21ld2hhdFxuICAgICAgcmVzZW1ibGVzIHRoZSBkZWZhdWx0IGFkbWluIGtleSBwb2xpY3ksIGJ1dCB3aXRoIHRoZSBhZGRpdGlvbiBvZiAnR2VuZXJhdGVEYXRhS2V5JyBwZXJtaXNzaW9ucy4gSWZcbiAgICAgIHRydWUsIHRoZSBwb2xpY3kgbWF0Y2hlcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBzZXQuXG5cbiAgICAgIEFkZGl0aW9uYWxseSwgaWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQgYW5kIHRoZSB1c2VyIHN1cHBsaWVzIGEgY3VzdG9tIGtleSBwb2xpY3ksIHRoaXMgd2lsbCBiZSBhcHBlbmRlZFxuICAgICAgdG8gdGhlIGtleSdzIGRlZmF1bHQgcG9saWN5IChyYXRoZXIgdGhhbiByZXBsYWNpbmcgaXQpLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS43OC4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdQYXNzIGB0cnVzdEFjY291bnRJZGVudGl0aWVzOiBmYWxzZWAgdG8gYEtleWAgY29uc3RydWN0IHRvIHJlc3RvcmUgdGhlIG9sZCBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1MzX0dSQU5UX1dSSVRFX1dJVEhPVVRfQUNMXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1JlbW92ZSBgUHV0T2JqZWN0QWNsYCBmcm9tIEJ1Y2tldC5ncmFudFdyaXRlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIENoYW5nZSB0aGUgb2xkICdzMzpQdXRPYmplY3QqJyBwZXJtaXNzaW9uIHRvICdzMzpQdXRPYmplY3QnIG9uIEJ1Y2tldCxcbiAgICAgIGFzIHRoZSBmb3JtZXIgaW5jbHVkZXMgJ3MzOlB1dE9iamVjdEFjbCcsXG4gICAgICB3aGljaCBjb3VsZCBiZSB1c2VkIHRvIGdyYW50IHJlYWQvd3JpdGUgb2JqZWN0IGFjY2VzcyB0byBJQU0gcHJpbmNpcGFscyBpbiBvdGhlciBhY2NvdW50cy5cbiAgICAgIFVzZSBhIGZlYXR1cmUgZmxhZyB0byBtYWtlIHN1cmUgZXhpc3RpbmcgY3VzdG9tZXJzIHdobyBtaWdodCBiZSByZWx5aW5nXG4gICAgICBvbiB0aGUgb3Zlcmx5LWJyb2FkIHBlcm1pc3Npb25zIGFyZSBub3QgYnJva2VuLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS44NS4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdDYWxsIGBidWNrZXQuZ3JhbnRQdXRBY2woKWAgaW4gYWRkaXRpb24gdG8gYGJ1Y2tldC5ncmFudFdyaXRlKClgIHRvIGdyYW50IEFDTCBwZXJtaXNzaW9ucy4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VDU19SRU1PVkVfREVGQVVMVF9ERVNJUkVEX0NPVU5UXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ0RvIG5vdCBzcGVjaWZ5IGEgZGVmYXVsdCBEZXNpcmVkQ291bnQgZm9yIEVDUyBzZXJ2aWNlcycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFNlcnZpY2VCYXNlLCBBcHBsaWNhdGlvbk11bHRpcGxlVGFyZ2V0R3JvdXBTZXJ2aWNlQmFzZSxcbiAgICAgIE5ldHdvcmtMb2FkQmFsYW5jZWRTZXJ2aWNlQmFzZSwgTmV0d29ya011bHRpcGxlVGFyZ2V0R3JvdXBTZXJ2aWNlQmFzZSwgYW5kXG4gICAgICBRdWV1ZVByb2Nlc3NpbmdTZXJ2aWNlQmFzZSBjdXJyZW50bHkgZGV0ZXJtaW5lIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGRlc2lyZWQgY291bnQgb2ZcbiAgICAgIGEgQ2ZuU2VydmljZSBpZiBhIGRlc2lyZWRDb3VudCBpcyBub3QgcHJvdmlkZWQuIFRoZSByZXN1bHQgb2YgdGhpcyBpcyB0aGF0IG9uIGV2ZXJ5XG4gICAgICBkZXBsb3ltZW50LCB0aGUgc2VydmljZSBjb3VudCBpcyByZXNldCB0byB0aGUgZml4ZWQgdmFsdWUsIGV2ZW4gaWYgaXQgd2FzIGF1dG9zY2FsZWQuXG5cbiAgICAgIElmIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgZm9yIENmblNlcnZpY2UuZGVzaXJlZENvdW50IGlzIHRvIHNldCBhXG4gICAgICBkZXNpcmVkQ291bnQgb2YgMSwgaWYgb25lIGlzIG5vdCBwcm92aWRlZC4gSWYgdHJ1ZSwgYSBkZWZhdWx0IHdpbGwgbm90IGJlIGRlZmluZWQgZm9yXG4gICAgICBDZm5TZXJ2aWNlLmRlc2lyZWRDb3VudCBhbmQgYXMgc3VjaCBkZXNpcmVkQ291bnQgd2lsbCBiZSB1bmRlZmluZWQsIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjkyLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1lvdSBjYW4gcGFzcyBgZGVzaXJlZENvdW50OiAxYCBleHBsaWNpdGx5LCBidXQgeW91IHNob3VsZCBuZXZlciBuZWVkIHRoaXMuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtSRFNfTE9XRVJDQVNFX0RCX0lERU5USUZJRVJdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdGb3JjZSBsb3dlcmNhc2luZyBvZiBSRFMgQ2x1c3RlciBuYW1lcyBpbiBDREsnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ2x1c3RlciBuYW1lcyBtdXN0IGJlIGxvd2VyY2FzZSwgYW5kIHRoZSBzZXJ2aWNlIHdpbGwgbG93ZXJjYXNlIHRoZSBuYW1lIHdoZW4gdGhlIGNsdXN0ZXJcbiAgICAgIGlzIGNyZWF0ZWQuIEhvd2V2ZXIsIENESyBkaWQgbm90IHVzZSB0byBrbm93IGFib3V0IHRoaXMsIGFuZCB3b3VsZCB1c2UgdGhlIHVzZXItcHJvdmlkZWQgbmFtZVxuICAgICAgcmVmZXJlbmNpbmcgdGhlIGNsdXN0ZXIsIHdoaWNoIHdvdWxkIGZhaWwgaWYgaXQgaGFwcGVuZWQgdG8gYmUgbWl4ZWQtY2FzZS5cblxuICAgICAgV2l0aCB0aGlzIGZsYWcsIGxvd2VyY2FzZSB0aGUgbmFtZSBpbiBDREsgc28gd2UgY2FuIHJlZmVyZW5jZSBpdCBwcm9wZXJseS5cblxuICAgICAgTXVzdCBiZSBiZWhpbmQgYSBwZXJtYW5lbnQgZmxhZyBiZWNhdXNlIGNoYW5naW5nIGEgbmFtZSBmcm9tIG1peGVkIGNhc2UgdG8gbG93ZXJjYXNlIGJldHdlZW4gZGVwbG95bWVudHNcbiAgICAgIHdvdWxkIGxlYWQgQ2xvdWRGb3JtYXRpb24gdG8gdGhpbmsgdGhlIG5hbWUgd2FzIGNoYW5nZWQgYW5kIHdvdWxkIHRyaWdnZXIgYSBjbHVzdGVyIHJlcGxhY2VtZW50XG4gICAgICAobG9zaW5nIGRhdGEhKS5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MTogJzEuOTcuMCcsIHYyOiAnMi4wLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQSUdBVEVXQVlfVVNBR0VQTEFOS0VZX09SREVSSU5TRU5TSVRJVkVfSURdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdBbGxvdyBhZGRpbmcvcmVtb3ZpbmcgbXVsdGlwbGUgVXNhZ2VQbGFuS2V5cyBpbmRlcGVuZGVudGx5JyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBVc2FnZVBsYW5LZXkgcmVzb3VyY2UgY29ubmVjdHMgYW4gQXBpS2V5IHdpdGggYSBVc2FnZVBsYW4uIEFQSSBHYXRld2F5IGRvZXMgbm90IGFsbG93IG1vcmUgdGhhbiBvbmUgVXNhZ2VQbGFuS2V5XG4gICAgICBmb3IgYW55IGdpdmVuIFVzYWdlUGxhbiBhbmQgQXBpS2V5IGNvbWJpbmF0aW9uLiBGb3IgdGhpcyByZWFzb24sIENsb3VkRm9ybWF0aW9uIGNhbm5vdCByZXBsYWNlIHRoaXMgcmVzb3VyY2Ugd2l0aG91dFxuICAgICAgZWl0aGVyIHRoZSBVc2FnZVBsYW4gb3IgQXBpS2V5IGNoYW5naW5nLlxuXG4gICAgICBUaGUgZmVhdHVyZSBhZGRpdGlvbiB0byBzdXBwb3J0IG11bHRpcGxlIFVzYWdlUGxhbktleSByZXNvdXJjZXMgLSAxNDJiZDBlMiAtIHJlY29nbml6ZWQgdGhpcyBhbmQgYXR0ZW1wdGVkIHRvIGtlZXBcbiAgICAgIGV4aXN0aW5nIFVzYWdlUGxhbktleSBsb2dpY2FsIGlkcyB1bmNoYW5nZWQuXG4gICAgICBIb3dldmVyLCB0aGlzIGludGVudGlvbmFsbHkgY2F1c2VkIHRoZSBsb2dpY2FsIGlkIG9mIHRoZSBVc2FnZVBsYW5LZXkgdG8gYmUgc2Vuc2l0aXZlIHRvIG9yZGVyLiBUaGF0IGlzLCB3aGVuXG4gICAgICB0aGUgJ2ZpcnN0JyBVc2FnZVBsYW5LZXkgcmVzb3VyY2UgaXMgcmVtb3ZlZCwgdGhlIGxvZ2ljYWwgaWQgb2YgdGhlICdzZWNvbmQnIGFzc3VtZXMgd2hhdCB3YXMgb3JpZ2luYWxseSB0aGUgJ2ZpcnN0JyxcbiAgICAgIHdoaWNoIGFnYWluIGlzIGRpc2FsbG93ZWQuXG5cbiAgICAgIEluIGVmZmVjdCwgdGhlcmUgaXMgbm8gd2F5IHRvIGdldCBvdXQgb2YgdGhpcyBtZXNzIGluIGEgYmFja3dhcmRzIGNvbXBhdGlibGUgd2F5LCB3aGlsZSBzdXBwb3J0aW5nIGV4aXN0aW5nIHN0YWNrcy5cbiAgICAgIFRoaXMgZmxhZyBjaGFuZ2VzIHRoZSBsb2dpY2FsIGlkIGxheW91dCBvZiBVc2FnZVBsYW5LZXkgdG8gbm90IGJlIHNlbnNpdGl2ZSB0byBvcmRlci5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MTogJzEuOTguMCcsIHYyOiAnMi4wLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VGU19ERUZBVUxUX0VOQ1JZUFRJT05fQVRfUkVTVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gaGF2ZSBlbGFzdGljIGZpbGUgc3lzdGVtcyBlbmNyeXB0ZWQgYXQgcmVzdCBieSBkZWZhdWx0LicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmNyeXB0aW9uIGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgZXhwbGljaXRseSB1c2luZyB0aGUgXFxgZW5jcnlwdGVkXFxgIHByb3BlcnR5LlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjk4LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgdGhlIGBlbmNyeXB0ZWQ6IGZhbHNlYCBwcm9wZXJ0eSB0byB0aGUgYEZpbGVTeXN0ZW1gIGNvbnN0cnVjdCB0byBkaXNhYmxlIGVuY3J5cHRpb24uJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtMQU1CREFfUkVDT0dOSVpFX1ZFUlNJT05fUFJPUFNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gb3B0IGluIHRvIHRoZSB1cGRhdGVkIGxvZ2ljYWwgaWQgY2FsY3VsYXRpb24gZm9yIExhbWJkYSBWZXJzaW9uIGNyZWF0ZWQgdXNpbmcgdGhlICBgZm4uY3VycmVudFZlcnNpb25gLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGUgcHJldmlvdXMgY2FsY3VsYXRpb24gaW5jb3JyZWN0bHkgY29uc2lkZXJlZCBwcm9wZXJ0aWVzIG9mIHRoZSBcXGBBV1M6OkxhbWJkYTo6RnVuY3Rpb25cXGAgcmVzb3VyY2UgdGhhdCBkaWRcbiAgICAgIG5vdCBjb25zdGl0dXRlIGNyZWF0aW5nIGEgbmV3IFZlcnNpb24uXG5cbiAgICAgIFNlZSAnY3VycmVudFZlcnNpb24nIHNlY3Rpb24gaW4gdGhlIGF3cy1sYW1iZGEgbW9kdWxlJ3MgUkVBRE1FIGZvciBtb3JlIGRldGFpbHMuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjEwNi4wJywgdjI6ICcyLjAuMCcgfSxcbiAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZTogeyB2MjogdHJ1ZSB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTEFNQkRBX1JFQ09HTklaRV9MQVlFUl9WRVJTSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIG9wdCBpbiB0byB0aGUgdXBkYXRlZCBsb2dpY2FsIGlkIGNhbGN1bGF0aW9uIGZvciBMYW1iZGEgVmVyc2lvbiBjcmVhdGVkIHVzaW5nIHRoZSBgZm4uY3VycmVudFZlcnNpb25gLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGlzIGZsYWcgY29ycmVjdCBpbmNvcnBvcmF0ZXMgTGFtYmRhIExheWVyIHByb3BlcnRpZXMgaW50byB0aGUgTGFtYmRhIEZ1bmN0aW9uIFZlcnNpb24uXG5cbiAgICAgIFNlZSAnY3VycmVudFZlcnNpb24nIHNlY3Rpb24gaW4gdGhlIGF3cy1sYW1iZGEgbW9kdWxlJ3MgUkVBRE1FIGZvciBtb3JlIGRldGFpbHMuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjE1OS4wJywgdjI6ICcyLjI3LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDTE9VREZST05UX0RFRkFVTFRfU0VDVVJJVFlfUE9MSUNZX1RMU19WMV8yXzIwMjFdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gaGF2ZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbnMgdXNlIHRoZSBzZWN1cml0eSBwb2xpY3kgVExTdjEuMl8yMDIxIGJ5IGRlZmF1bHQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBzZWN1cml0eSBwb2xpY3kgY2FuIGFsc28gYmUgY29uZmlndXJlZCBleHBsaWNpdGx5IHVzaW5nIHRoZSBcXGBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uXFxgIHByb3BlcnR5LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xMTcuMCcsIHYyOiAnMi4wLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NIRUNLX1NFQ1JFVF9VU0FHRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5WaXNpYmxlQ29udGV4dCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlIHRoaXMgZmxhZyB0byBtYWtlIGl0IGltcG9zc2libGUgdG8gYWNjaWRlbnRhbGx5IHVzZSBTZWNyZXRWYWx1ZXMgaW4gdW5zYWZlIGxvY2F0aW9ucycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaXRoIHRoaXMgZmxhZyBlbmFibGVkLCBcXGBTZWNyZXRWYWx1ZVxcYCBpbnN0YW5jZXMgY2FuIG9ubHkgYmUgcGFzc2VkIHRvXG4gICAgICBjb25zdHJ1Y3RzIHRoYXQgYWNjZXB0IFxcYFNlY3JldFZhbHVlXFxgczsgb3RoZXJ3aXNlLCBcXGB1bnNhZmVVbndyYXAoKVxcYCBtdXN0IGJlXG4gICAgICBjYWxsZWQgdG8gdXNlIGl0IGFzIGEgcmVndWxhciBzdHJpbmcuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjE1My4wJywgdjI6ICcyLjIxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtUQVJHRVRfUEFSVElUSU9OU106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5WaXNpYmxlQ29udGV4dCxcbiAgICBzdW1tYXJ5OiAnV2hhdCByZWdpb25zIHRvIGluY2x1ZGUgaW4gbG9va3VwIHRhYmxlcyBvZiBlbnZpcm9ubWVudCBhZ25vc3RpYyBzdGFja3MnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSGFzIG5vIGVmZmVjdCBvbiBzdGFja3MgdGhhdCBoYXZlIGEgZGVmaW5lZCByZWdpb24sIGJ1dCB3aWxsIGxpbWl0IHRoZSBhbW91bnRcbiAgICAgIG9mIHVubmVjZXNzYXJ5IHJlZ2lvbnMgaW5jbHVkZWQgaW4gc3RhY2tzIHdpdGhvdXQgYSBrbm93biByZWdpb24uXG5cbiAgICAgIFRoZSB0eXBlIG9mIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBzdHJpbmdzLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xMzcuMCcsIHYyOiAnMi40LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogWydhd3MnLCAnYXdzLWNuJ10sXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUNTX1NFUlZJQ0VfRVhURU5TSU9OU19FTkFCTEVfREVGQVVMVF9MT0dfRFJJVkVSXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ0VDUyBleHRlbnNpb25zIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYW4gYGF3c2xvZ3NgIGRyaXZlciBpZiBubyBsb2dnaW5nIGlzIHNwZWNpZmllZCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gY29uZmlndXJlIGRlZmF1bHQgbG9nZ2luZyBiZWhhdmlvciBmb3IgdGhlIEVDUyBTZXJ2aWNlIEV4dGVuc2lvbnMuIFRoaXMgd2lsbCBlbmFibGUgdGhlXG4gICAgICBcXGBhd3Nsb2dzXFxgIGxvZyBkcml2ZXIgZm9yIHRoZSBhcHBsaWNhdGlvbiBjb250YWluZXIgb2YgdGhlIHNlcnZpY2UgdG8gc2VuZCB0aGUgY29udGFpbmVyIGxvZ3MgdG8gQ2xvdWRXYXRjaCBMb2dzLlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBuZXcgYmVoYXZpb3IgcHJvdmlkZXMgYSBiZXR0ZXIgZGVmYXVsdCBleHBlcmllbmNlIGZvciB0aGUgdXNlcnMuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjE0MC4wJywgdjI6ICcyLjguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1NwZWNpZnkgYSBsb2cgZHJpdmVyIGV4cGxpY2l0bHkuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQzJfVU5JUVVFX0lNRFNWMl9MQVVOQ0hfVEVNUExBVEVfTkFNRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBoYXZlIExhdW5jaCBUZW1wbGF0ZXMgZ2VuZXJhdGVkIGJ5IHRoZSBgSW5zdGFuY2VSZXF1aXJlSW1kc3YyQXNwZWN0YCB1c2UgdW5pcXVlIG5hbWVzLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBQcmV2aW91c2x5LCB0aGUgZ2VuZXJhdGVkIExhdW5jaCBUZW1wbGF0ZSBuYW1lcyB3ZXJlIG9ubHkgdW5pcXVlIHdpdGhpbiBhIHN0YWNrIGJlY2F1c2UgdGhleSB3ZXJlIGJhc2VkIG9ubHkgb24gdGhlXG4gICAgICBcXGBJbnN0YW5jZVxcYCBjb25zdHJ1Y3QgSUQuIElmIGFub3RoZXIgc3RhY2sgdGhhdCBoYXMgYW4gXFxgSW5zdGFuY2VcXGAgd2l0aCB0aGUgc2FtZSBjb25zdHJ1Y3QgSUQgaXMgZGVwbG95ZWQgaW4gdGhlIHNhbWVcbiAgICAgIGFjY291bnQgYW5kIHJlZ2lvbiwgdGhlIGRlcGxveW1lbnRzIHdvdWxkIGFsd2F5cyBmYWlsIGFzIHRoZSBnZW5lcmF0ZWQgTGF1bmNoIFRlbXBsYXRlIG5hbWVzIHdlcmUgdGhlIHNhbWUuXG5cbiAgICAgIFRoZSBuZXcgaW1wbGVtZW50YXRpb24gYWRkcmVzc2VzIHRoaXMgaXNzdWUgYnkgZ2VuZXJhdGluZyB0aGUgTGF1bmNoIFRlbXBsYXRlIG5hbWUgd2l0aCB0aGUgXFxgTmFtZXMudW5pcXVlSWRcXGAgbWV0aG9kLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xNDAuMCcsIHYyOiAnMi44LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQ1NfQVJOX0ZPUk1BVF9JTkNMVURFU19DTFVTVEVSX05BTUVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdBUk4gZm9ybWF0IHVzZWQgYnkgRUNTLiBJbiB0aGUgbmV3IEFSTiBmb3JtYXQsIHRoZSBjbHVzdGVyIG5hbWUgaXMgcGFydCBvZiB0aGUgcmVzb3VyY2UgSUQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIElmIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCB0aGUgb2xkIEFSTiBmb3JtYXQgKHdpdGhvdXQgY2x1c3RlciBuYW1lKSBmb3IgRUNTIGlzIHVzZWQuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0LCB0aGUgbmV3IEFSTiBmb3JtYXQgKHdpdGggY2x1c3RlciBuYW1lKSBmb3IgRUNTIGlzIHVzZWQuXG5cbiAgICAgIFRoaXMgaXMgYSBmZWF0dXJlIGZsYWcgYXMgdGhlIG9sZCBmb3JtYXQgaXMgc3RpbGwgdmFsaWQgZm9yIGV4aXN0aW5nIEVDUyBjbHVzdGVycy5cblxuICAgICAgU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2Vjcy1hY2NvdW50LXNldHRpbmdzLmh0bWwjZWNzLXJlc291cmNlLWlkc1xuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjM1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtJQU1fTUlOSU1JWkVfUE9MSUNJRVNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuVmlzaWJsZUNvbnRleHQsXG4gICAgc3VtbWFyeTogJ01pbmltaXplIElBTSBwb2xpY2llcyBieSBjb21iaW5pbmcgU3RhdGVtZW50cycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBNaW5pbWl6ZSBJQU0gcG9saWNpZXMgYnkgY29tYmluaW5nIFByaW5jaXBhbHMsIEFjdGlvbnMgYW5kIFJlc291cmNlcyBvZiB0d29cbiAgICAgIFN0YXRlbWVudHMgaW4gdGhlIHBvbGljaWVzLCBhcyBsb25nIGFzIGl0IGRvZXNuJ3QgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHRoZVxuICAgICAgcG9saWN5LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xNTAuMCcsIHYyOiAnMi4xOC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVkFMSURBVEVfU05BUFNIT1RfUkVNT1ZBTF9QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRXJyb3Igb24gc25hcHNob3QgcmVtb3ZhbCBwb2xpY2llcyBvbiByZXNvdXJjZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBpdC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgTWFrZXMgc3VyZSB3ZSBkbyBub3QgYWxsb3cgc25hcHNob3QgcmVtb3ZhbCBwb2xpY3kgb24gcmVzb3VyY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQuXG4gICAgICBJZiBzdXBwbGllZCBvbiBhbiB1bnN1cHBvcnRlZCByZXNvdXJjZSwgQ2xvdWRGb3JtYXRpb24gaWdub3JlcyB0aGUgcG9saWN5IGFsdG9nZXRoZXIuXG4gICAgICBUaGlzIGZsYWcgd2lsbCByZWR1Y2UgY29uZnVzaW9uIGFuZCB1bmV4cGVjdGVkIGxvc3Mgb2YgZGF0YSB3aGVuIGVycm9uZW91c2x5IHN1cHBseWluZ1xuICAgICAgdGhlIHNuYXBzaG90IHJlbW92YWwgcG9saWN5LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4yOC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnVGhlIG9sZCBiZWhhdmlvciB3YXMgaW5jb3JyZWN0LiBVcGRhdGUgeW91ciBzb3VyY2UgdG8gbm90IHNwZWNpZnkgU05BUFNIT1QgcG9saWNpZXMgb24gcmVzb3VyY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDT0RFUElQRUxJTkVfQ1JPU1NfQUNDT1VOVF9LRVlfQUxJQVNfU1RBQ0tfU0FGRV9SRVNPVVJDRV9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnR2VuZXJhdGUga2V5IGFsaWFzZXMgdGhhdCBpbmNsdWRlIHRoZSBzdGFjayBuYW1lJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBoYXZlIENvZGVQaXBlbGluZSBnZW5lcmF0ZSBhIHVuaXF1ZSBjcm9zcyBhY2NvdW50IGtleSBhbGlhcyBuYW1lIHVzaW5nIHRoZSBzdGFjayBuYW1lLlxuXG4gICAgICBQcmV2aW91c2x5LCB3aGVuIGNyZWF0aW5nIG11bHRpcGxlIHBpcGVsaW5lcyB3aXRoIHNpbWlsYXIgbmFtaW5nIGNvbnZlbnRpb25zIGFuZCB3aGVuIGNyb3NzQWNjb3VudEtleXMgaXMgdHJ1ZSxcbiAgICAgIHRoZSBLTVMga2V5IGFsaWFzIG5hbWUgY3JlYXRlZCBmb3IgdGhlc2UgcGlwZWxpbmVzIG1heSBiZSB0aGUgc2FtZSBkdWUgdG8gaG93IHRoZSB1bmlxdWVJZCBpcyBnZW5lcmF0ZWQuXG5cbiAgICAgIFRoaXMgbmV3IGltcGxlbWVudGF0aW9uIGNyZWF0ZXMgYSBzdGFjayBzYWZlIHJlc291cmNlIG5hbWUgZm9yIHRoZSBhbGlhcyB1c2luZyB0aGUgc3RhY2sgbmFtZSBpbnN0ZWFkIG9mIHRoZSBzdGFjayBJRC5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4yOS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUzNfQ1JFQVRFX0RFRkFVTFRfTE9HR0lOR19QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gY3JlYXRlIGFuIFMzIGJ1Y2tldCBwb2xpY3kgYnkgZGVmYXVsdCBpbiBjYXNlcyB3aGVyZSBhbiBBV1Mgc2VydmljZSB3b3VsZCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aGUgUG9saWN5IGlmIG9uZSBkb2VzIG5vdCBleGlzdC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRm9yIGV4YW1wbGUsIGluIG9yZGVyIHRvIHNlbmQgVlBDIGZsb3cgbG9ncyB0byBhbiBTMyBidWNrZXQsIHRoZXJlIGlzIGEgc3BlY2lmaWMgQnVja2V0IFBvbGljeVxuICAgICAgdGhhdCBuZWVkcyB0byBiZSBhdHRhY2hlZCB0byB0aGUgYnVja2V0LiBJZiB5b3UgY3JlYXRlIHRoZSBidWNrZXQgd2l0aG91dCBhIHBvbGljeSBhbmQgdGhlbiBhZGQgdGhlXG4gICAgICBidWNrZXQgYXMgdGhlIGZsb3cgbG9nIGRlc3RpbmF0aW9uLCB0aGUgc2VydmljZSB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBidWNrZXQgcG9saWN5IHdpdGggdGhlXG4gICAgICBuZWNlc3NhcnkgcGVybWlzc2lvbnMuIElmIHlvdSB3ZXJlIHRvIHRoZW4gdHJ5IGFuZCBhZGQgeW91ciBvd24gYnVja2V0IHBvbGljeSBDbG91ZEZvcm1hdGlvbiB3aWxsIHRocm93XG4gICAgICBhbmQgZXJyb3IgaW5kaWNhdGluZyB0aGF0IGEgYnVja2V0IHBvbGljeSBhbHJlYWR5IGV4aXN0cy5cblxuICAgICAgSW4gY2FzZXMgd2hlcmUgd2Uga25vdyB3aGF0IHRoZSByZXF1aXJlZCBwb2xpY3kgaXMgd2UgY2FuIGdvIGFoZWFkIGFuZCBjcmVhdGUgdGhlIHBvbGljeSBzbyB3ZSBjYW5cbiAgICAgIHJlbWFpbiBpbiBjb250cm9sIG9mIGl0LlxuXG4gICAgICBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9sb2dzL0FXUy1sb2dzLWFuZC1yZXNvdXJjZS1wb2xpY3kuaHRtbCNBV1MtbG9ncy1pbmZyYXN0cnVjdHVyZS1TM1xuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjMxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTTlNfU1VCU0NSSVBUSU9OU19TUVNfREVDUllQVElPTl9QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdSZXN0cmljdCBLTVMga2V5IHBvbGljeSBmb3IgZW5jcnlwdGVkIFF1ZXVlcyBhIGJpdCBtb3JlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byByZXN0cmljdCB0aGUgZGVjcnlwdGlvbiBvZiBhIFNRUyBxdWV1ZSwgd2hpY2ggaXMgc3Vic2NyaWJlZCB0byBhIFNOUyB0b3BpYywgdG9cbiAgICAgIG9ubHkgdGhlIHRvcGljIHdoaWNoIGl0IGlzIHN1YnNjcmliZWQgdG8gYW5kIG5vdCB0aGUgd2hvbGUgU05TIHNlcnZpY2Ugb2YgYW4gYWNjb3VudC5cblxuICAgICAgUHJldmlvdXNseSB0aGUgZGVjcnlwdGlvbiB3YXMgb25seSByZXN0cmljdGVkIHRvIHRoZSBTTlMgc2VydmljZSBwcmluY2lwYWwuIFRvIG1ha2UgdGhlIFNRUyBzdWJzY3JpcHRpb24gbW9yZVxuICAgICAgc2VjdXJlLCBpdCBpcyBhIGdvb2QgcHJhY3RpY2UgdG8gcmVzdHJpY3QgdGhlIGRlY3J5cHRpb24gZnVydGhlciBhbmQgb25seSBhbGxvdyB0aGUgY29ubmVjdGVkIFNOUyB0b3BpYyB0byBkZWNyeXB0aW9uXG4gICAgICB0aGUgc3Vic2NyaWJlZCBxdWV1ZS5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMzIuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQSUdBVEVXQVlfRElTQUJMRV9DTE9VRFdBVENIX1JPTEVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdNYWtlIGRlZmF1bHQgQ2xvdWRXYXRjaCBSb2xlIGJlaGF2aW9yIHNhZmUgZm9yIG11bHRpcGxlIEFQSSBHYXRld2F5cyBpbiBvbmUgZW52aXJvbm1lbnQnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgYXdzLWFwaWdhdGV3YXkuUmVzdEFwaSBhbmQgYXdzLWFwaWdhdGV3YXkuU3BlY1Jlc3RBcGlcbiAgICAgIHRvIF9ub3RfIGNyZWF0ZSBhIENsb3VkV2F0Y2ggcm9sZSBhbmQgQWNjb3VudC4gVGhlcmUgaXMgb25seSBhIHNpbmdsZSBBcGlHYXRld2F5IGFjY291bnQgcGVyIEFXU1xuICAgICAgZW52aXJvbm1lbnQgd2hpY2ggbWVhbnMgdGhhdCBlYWNoIHRpbWUgeW91IGNyZWF0ZSBhIFJlc3RBcGkgaW4geW91ciBhY2NvdW50IHRoZSBBcGlHYXRld2F5IGFjY291bnRcbiAgICAgIGlzIG92ZXJ3cml0dGVuLiBJZiBhdCBzb21lIHBvaW50IHRoZSBuZXdlc3QgUmVzdEFwaSBpcyBkZWxldGVkLCB0aGUgQXBpR2F0ZXdheSBBY2NvdW50IGFuZCBDbG91ZFdhdGNoXG4gICAgICByb2xlIHdpbGwgYWxzbyBiZSBkZWxldGVkLCBicmVha2luZyBhbnkgZXhpc3RpbmcgQXBpR2F0ZXdheXMgdGhhdCB3ZXJlIGRlcGVuZGluZyBvbiB0aGVtLlxuXG4gICAgICBXaGVuIHRoaXMgZmxhZyBpcyBlbmFibGVkIHlvdSBzaG91bGQgZWl0aGVyIGNyZWF0ZSB0aGUgQXBpR2F0ZXdheSBhY2NvdW50IGFuZCBDbG91ZFdhdGNoIHJvbGVcbiAgICAgIHNlcGFyYXRlbHkgX29yXyBvbmx5IGVuYWJsZSB0aGUgY2xvdWRXYXRjaFJvbGUgb24gYSBzaW5nbGUgUmVzdEFwaS5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4zOC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX1BBUlRJVElPTl9MSVRFUkFMU106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ01ha2UgQVJOcyBjb25jcmV0ZSBpZiBBV1MgcGFydGl0aW9uIGlzIGtub3duJyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvbm8tbGl0ZXJhbC1wYXJ0aXRpb25cbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBnZXQgcGFydGl0aW9uIG5hbWVzIGFzIHN0cmluZyBsaXRlcmFscyBpbiBTdGFja3Mgd2l0aCBrbm93biByZWdpb25zIGRlZmluZWQgaW5cbiAgICAgIHRoZWlyIGVudmlyb25tZW50LCBzdWNoIGFzIFwiYXdzXCIgb3IgXCJhd3MtY25cIi4gIFByZXZpb3VzbHkgdGhlIENsb3VkRm9ybWF0aW9uIGludHJpbnNpYyBmdW5jdGlvblxuICAgICAgXCJSZWY6IEFXUzo6UGFydGl0aW9uXCIgd2FzIHVzZWQuICBGb3IgZXhhbXBsZTpcblxuICAgICAgXFxgXFxgXFxgeWFtbFxuICAgICAgUHJpbmNpcGFsOlxuICAgICAgICBBV1M6XG4gICAgICAgICAgRm46OkpvaW46XG4gICAgICAgICAgICAtIFwiXCJcbiAgICAgICAgICAgIC0gLSBcImFybjpcIlxuICAgICAgICAgICAgICAtIFJlZjogQVdTOjpQYXJ0aXRpb25cbiAgICAgICAgICAgICAgLSA6aWFtOjoxMjM0NTY3ODk4NzY6cm9vdFxuICAgICAgXFxgXFxgXFxgXG5cbiAgICAgIGJlY29tZXM6XG5cbiAgICAgIFxcYFxcYFxcYHlhbWxcbiAgICAgIFByaW5jaXBhbDpcbiAgICAgICAgQVdTOiBcImFybjphd3M6aWFtOjoxMjM0NTY3ODk4NzY6cm9vdFwiXG4gICAgICBcXGBcXGBcXGBcblxuICAgICAgVGhlIGludHJpbnNpYyBmdW5jdGlvbiB3aWxsIHN0aWxsIGJlIHVzZWQgaW4gU3RhY2tzIHdoZXJlIG5vIHJlZ2lvbiBpcyBkZWZpbmVkIG9yIHRoZSByZWdpb24ncyBwYXJ0aXRpb25cbiAgICAgIGlzIHVua25vd24uXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMzguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VWRU5UU19UQVJHRVRfUVVFVUVfU0FNRV9BQ0NPVU5UXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnRXZlbnQgUnVsZXMgbWF5IG9ubHkgcHVzaCB0byBlbmNyeXB0ZWQgU1FTIHF1ZXVlcyBpbiB0aGUgc2FtZSBhY2NvdW50JyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoaXMgZmxhZyBhcHBsaWVzIHRvIFNRUyBRdWV1ZXMgdGhhdCBhcmUgdXNlZCBhcyB0aGUgdGFyZ2V0IG9mIGV2ZW50IFJ1bGVzLiBXaGVuIGVuYWJsZWQsIG9ubHkgcHJpbmNpcGFsc1xuICAgICAgZnJvbSB0aGUgc2FtZSBhY2NvdW50IGFzIHRoZSBSdWxlIGNhbiBzZW5kIG1lc3NhZ2VzLiBJZiBhIHF1ZXVlIGlzIHVuZW5jcnlwdGVkLCB0aGlzIHJlc3RyaWN0aW9uIHdpbGxcbiAgICAgIGFsd2F5cyBhcHBseSwgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBmbGFnLlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjUxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQ1NfRElTQUJMRV9FWFBMSUNJVF9ERVBMT1lNRU5UX0NPTlRST0xMRVJfRk9SX0NJUkNVSVRfQlJFQUtFUl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0F2b2lkIHNldHRpbmcgdGhlIFwiRUNTXCIgZGVwbG95bWVudCBjb250cm9sbGVyIHdoZW4gYWRkaW5nIGEgY2lyY3VpdCBicmVha2VyJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBhdm9pZCBzZXR0aW5nIHRoZSBcIkVDU1wiIGRlcGxveW1lbnQgY29udHJvbGxlciB3aGVuIGFkZGluZyBhIGNpcmN1aXQgYnJlYWtlciB0byBhblxuICAgICAgRUNTIFNlcnZpY2UsIGFzIHRoaXMgd2lsbCB0cmlnZ2VyIGEgZnVsbCByZXBsYWNlbWVudCB3aGljaCBmYWlscyB0byBkZXBsb3kgd2hlbiB1c2luZyBzZXQgc2VydmljZSBuYW1lcy5cbiAgICAgIFRoaXMgZG9lcyBub3QgY2hhbmdlIGFueSBiZWhhdmlvdXIgYXMgdGhlIGRlZmF1bHQgZGVwbG95bWVudCBjb250cm9sbGVyIHdoZW4gaXQgaXMgbm90IGRlZmluZWQgaXMgRUNTLlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBuZXcgYmVoYXZpb3IgcHJvdmlkZXMgYSBiZXR0ZXIgZGVmYXVsdCBleHBlcmllbmNlIGZvciB0aGUgdXNlcnMuXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNTEuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0lBTV9JTVBPUlRFRF9ST0xFX1NUQUNLX1NBRkVfREVGQVVMVF9QT0xJQ1lfTkFNRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSB0aGlzIGZlYXR1cmUgdG8gYnkgZGVmYXVsdCBjcmVhdGUgZGVmYXVsdCBwb2xpY3kgbmFtZXMgZm9yIGltcG9ydGVkIHJvbGVzIHRoYXQgZGVwZW5kIG9uIHRoZSBzdGFjayB0aGUgcm9sZSBpcyBpbi4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2l0aG91dCB0aGlzLCBpbXBvcnRpbmcgdGhlIHNhbWUgcm9sZSBpbiBtdWx0aXBsZSBwbGFjZXMgY291bGQgbGVhZCB0byB0aGUgcGVybWlzc2lvbnMgZ2l2ZW4gZm9yIG9uZSB2ZXJzaW9uIG9mIHRoZSBpbXBvcnRlZCByb2xlXG4gICAgICB0byBvdmVyd3JpdGUgcGVybWlzc2lvbnMgZ2l2ZW4gdG8gdGhlIHJvbGUgYXQgYSBkaWZmZXJlbnQgcGxhY2Ugd2hlcmUgaXQgd2FzIGltcG9ydGVkLiBUaGlzIHdhcyBkdWUgdG8gYWxsIGltcG9ydGVkIGluc3RhbmNlc1xuICAgICAgb2YgYSByb2xlIHVzaW5nIHRoZSBzYW1lIGRlZmF1bHQgcG9saWN5IG5hbWUuXG5cbiAgICAgIFRoaXMgbmV3IGltcGxlbWVudGF0aW9uIGNyZWF0ZXMgZGVmYXVsdCBwb2xpY3kgbmFtZXMgYmFzZWQgb24gdGhlIGNvbnN0cnVjdHMgbm9kZSBwYXRoIGluIHRoZWlyIHN0YWNrLlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjYwLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTM19TRVJWRVJfQUNDRVNTX0xPR1NfVVNFX0JVQ0tFVF9QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdVc2UgUzMgQnVja2V0IFBvbGljeSBpbnN0ZWFkIG9mIEFDTHMgZm9yIFNlcnZlciBBY2Nlc3MgTG9nZ2luZycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gdXNlIFMzIEJ1Y2tldCBQb2xpY3kgZm9yIGdyYW50aW5nIHBlcm1pc3Npb24gZm8gU2VydmVyIEFjY2VzcyBMb2dnaW5nXG4gICAgICByYXRoZXIgdGhhbiB1c2luZyB0aGUgY2FubmVkIFxcYExvZ0RlbGl2ZXJ5V3JpdGVcXGAgQUNMLiBBQ0xzIGRvIG5vdCB3b3JrIHdoZW4gT2JqZWN0IE93bmVyc2hpcCBpc1xuICAgICAgZW5hYmxlZCBvbiB0aGUgYnVja2V0LlxuXG4gICAgICBUaGlzIGZsYWcgdXNlcyBhIEJ1Y2tldCBQb2xpY3kgc3RhdGVtZW50IHRvIGFsbG93IFNlcnZlciBBY2Nlc3MgTG9nIGRlbGl2ZXJ5LCBmb2xsb3dpbmcgYmVzdFxuICAgICAgcHJhY3RpY2VzIGZvciBTMy5cblxuICAgICAgQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9lbmFibGUtc2VydmVyLWFjY2Vzcy1sb2dnaW5nLmh0bWxcbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjAuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JPVVRFNTNfUEFUVEVSTlNfVVNFX0NFUlRJRklDQVRFXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1VzZSB0aGUgb2ZmaWNpYWwgYENlcnRpZmljYXRlYCByZXNvdXJjZSBpbnN0ZWFkIG9mIGBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZWAnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIHVzZSB0aGUgb2ZmaWNpYWwgQ2xvdWRGb3JtYXRpb24gc3VwcG9ydGVkIFxcYENlcnRpZmljYXRlXFxgIHJlc291cmNlIGluc3RlYWRcbiAgICAgIG9mIHRoZSBkZXByZWNhdGVkIFxcYERuc1ZhbGlkYXRlZENlcnRpZmljYXRlXFxgIGNvbnN0cnVjdC4gSWYgdGhpcyBmbGFnIGlzIGVuYWJsZWQgYW5kIHlvdSBhcmUgY3JlYXRpbmdcbiAgICAgIHRoZSBzdGFjayBpbiBhIHJlZ2lvbiBvdGhlciB0aGFuIHVzLWVhc3QtMSB0aGVuIHlvdSBtdXN0IGFsc28gc2V0IFxcYGNyb3NzUmVnaW9uUmVmZXJlbmNlcz10cnVlXFxgIG9uIHRoZVxuICAgICAgc3RhY2suXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjEuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0RlZmluZSBhIGBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZWAgZXhwbGljaXRseSBhbmQgcGFzcyBpbiB0aGUgYGNlcnRpZmljYXRlYCBwcm9wZXJ0eScsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbQVdTX0NVU1RPTV9SRVNPVVJDRV9MQVRFU1RfU0RLX0RFRkFVTFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hldGhlciB0byBpbnN0YWxsIHRoZSBsYXRlc3QgU0RLIGJ5IGRlZmF1bHQgaW4gQXdzQ3VzdG9tUmVzb3VyY2UnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgVGhpcyB3YXMgb3JpZ2luYWxseSBpbnRyb2R1Y2VkIGFuZCBlbmFibGVkIGJ5IGRlZmF1bHQgdG8gbm90IGJlIGxpbWl0ZWQgYnkgdGhlIFNESyB2ZXJzaW9uXG4gICAgICB0aGF0J3MgaW5zdGFsbGVkIG9uIEFXUyBMYW1iZGEuIEhvd2V2ZXIsIGl0IGNyZWF0ZXMgaXNzdWVzIGZvciBMYW1iZGFzIGJvdW5kIHRvIFZQQ3MgdGhhdFxuICAgICAgZG8gbm90IGhhdmUgaW50ZXJuZXQgYWNjZXNzLCBvciBpbiBlbnZpcm9ubWVudHMgd2hlcmUgJ25wbWpzLmNvbScgaXMgbm90IGF2YWlsYWJsZS5cblxuICAgICAgVGhlIHJlY29tbWVuZGVkIHNldHRpbmcgaXMgdG8gZGlzYWJsZSB0aGUgZGVmYXVsdCBpbnN0YWxsYXRpb24gYmVoYXZpb3IsIGFuZCBwYXNzIHRoZVxuICAgICAgZmxhZyBvbiBhIHJlc291cmNlLWJ5LXJlc291cmNlIGJhc2lzIHRvIGVuYWJsZSBpdCBpZiBuZWNlc3NhcnkuXG4gICAgYCxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdTZXQgaW5zdGFsbExhdGVzdEF3c1NkazogdHJ1ZSBvbiBhbGwgcmVzb3VyY2VzIHRoYXQgbmVlZCBpdC4nLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjAuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtEQVRBQkFTRV9QUk9YWV9VTklRVUVfUkVTT1VSQ0VfTkFNRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1VzZSB1bmlxdWUgcmVzb3VyY2UgbmFtZSBmb3IgRGF0YWJhc2UgUHJveHknLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBcXGBEYXRhYmFzZVByb3h5XFxgIGlzXG4gICAgICB0byB1c2UgXFxgaWRcXGAgb2YgdGhlIGNvbnN0cnVjdG9yIGZvciBcXGBkYlByb3h5TmFtZVxcYCB3aGVuIGl0J3Mgbm90IHNwZWNpZmllZCBpbiB0aGUgYXJndW1lbnQuXG4gICAgICBJbiB0aGlzIGNhc2UsIHVzZXJzIGNhbid0IGRlcGxveSBcXGBEYXRhYmFzZVByb3h5XFxgcyB0aGF0IGhhdmUgdGhlIHNhbWUgXFxgaWRcXGAgaW4gdGhlIHNhbWUgcmVnaW9uLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0LCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byB1c2UgdW5pcXVlIHJlc291cmNlIG5hbWVzIGZvciBlYWNoIFxcYERhdGFiYXNlUHJveHlcXGAuXG5cbiAgICAgIFRoaXMgaXMgYSBmZWF0dXJlIGZsYWcgYXMgdGhlIG9sZCBiZWhhdmlvciB3YXMgdGVjaG5pY2FsbHkgaW5jb3JyZWN0LCBidXQgdXNlcnMgbWF5IGhhdmUgY29tZSB0byBkZXBlbmQgb24gaXQuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjY1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDT0RFREVQTE9ZX1JFTU9WRV9BTEFSTVNfRlJPTV9ERVBMT1lNRU5UX0dST1VQXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnUmVtb3ZlIENsb3VkV2F0Y2ggYWxhcm1zIGZyb20gZGVwbG95bWVudCBncm91cCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmbGFnIHRvIGJlIGFibGUgdG8gcmVtb3ZlIGFsbCBDbG91ZFdhdGNoIGFsYXJtcyBmcm9tIGEgZGVwbG95bWVudCBncm91cCBieSByZW1vdmluZ1xuICAgICAgdGhlIGFsYXJtcyBmcm9tIHRoZSBjb25zdHJ1Y3QuIElmIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCByZW1vdmluZyBhbGwgYWxhcm1zIGZyb20gdGhlIGNvbnN0cnVjdFxuICAgICAgd2lsbCBzdGlsbCBsZWF2ZSB0aGUgYWxhcm1zIGNvbmZpZ3VyZWQgZm9yIHRoZSBkZXBsb3ltZW50IGdyb3VwLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi42NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbQVBJR0FURVdBWV9BVVRIT1JJWkVSX0NIQU5HRV9ERVBMT1lNRU5UX0xPR0lDQUxfSURdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdJbmNsdWRlIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbiBpbiB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIEFQSSBkZXBsb3ltZW50IGxvZ2ljYWwgSUQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBsb2dpY2FsIElEIG9mIHRoZSBBV1M6OkFwaUdhdGV3YXk6OkRlcGxveW1lbnQgcmVzb3VyY2UgaXMgY2FsY3VsYXRlZCBieSBoYXNoaW5nXG4gICAgICB0aGUgQVBJIGNvbmZpZ3VyYXRpb24sIGluY2x1ZGluZyBtZXRob2RzLCBhbmQgcmVzb3VyY2VzLCBldGMuIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZ1xuICAgICAgdG8gYWxzbyBpbmNsdWRlIHRoZSBjb25maWd1cmF0aW9uIG9mIGFueSBhdXRob3JpemVyIGF0dGFjaGVkIHRvIHRoZSBBUEkgaW4gdGhlXG4gICAgICBjYWxjdWxhdGlvbiwgc28gYW55IGNoYW5nZXMgbWFkZSB0byBhbiBhdXRob3JpemVyIHdpbGwgY3JlYXRlIGEgbmV3IGRlcGxveW1lbnQuXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VDMl9MQVVOQ0hfVEVNUExBVEVfREVGQVVMVF9VU0VSX0RBVEFdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdEZWZpbmUgdXNlciBkYXRhIGZvciBhIGxhdW5jaCB0ZW1wbGF0ZSBieSBkZWZhdWx0IHdoZW4gYSBtYWNoaW5lIGltYWdlIGlzIHByb3ZpZGVkLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGUgZWMyLkxhdW5jaFRlbXBsYXRlIGNvbnN0cnVjdCBkaWQgbm90IGRlZmluZSB1c2VyIGRhdGEgd2hlbiBhIG1hY2hpbmUgaW1hZ2UgaXNcbiAgICAgIHByb3ZpZGVkIGRlc3BpdGUgdGhlIGRvY3VtZW50LiBJZiB0aGlzIGlzIHNldCwgYSB1c2VyIGRhdGEgaXMgYXV0b21hdGljYWxseSBkZWZpbmVkXG4gICAgICBhY2NvcmRpbmcgdG8gdGhlIE9TIG9mIHRoZSBtYWNoaW5lIGltYWdlLlxuICAgICAgYCxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjcuMCcgfSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTRUNSRVRTX01BTkFHRVJfVEFSR0VUX0FUVEFDSE1FTlRfUkVTT1VSQ0VfUE9MSUNZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnU2VjcmV0VGFyZ2V0QXR0YWNobWVudHMgdXNlcyB0aGUgUmVzb3VyY2VQb2xpY3kgb2YgdGhlIGF0dGFjaGVkIFNlY3JldC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIG1ha2UgU2VjcmV0VGFyZ2V0QXR0YWNobWVudHMgdXNlIHRoZSBSZXNvdXJjZVBvbGljeSBvZiB0aGUgYXR0YWNoZWQgU2VjcmV0LlxuICAgICAgU2VjcmV0VGFyZ2V0QXR0YWNobWVudHMgYXJlIGNyZWF0ZWQgdG8gY29ubmVjdCBhIFNlY3JldCB0byBhIHRhcmdldCByZXNvdXJjZS5cbiAgICAgIEluIENESyBjb2RlLCB0aGV5IGJlaGF2ZSBsaWtlIHJlZ3VsYXIgU2VjcmV0IGFuZCBjYW4gYmUgdXNlZCBhcyBhIHN0YW5kLWluIGluIG1vc3Qgc2l0dWF0aW9ucy5cbiAgICAgIFByZXZpb3VzbHksIGFkZGluZyB0byB0aGUgUmVzb3VyY2VQb2xpY3kgb2YgYSBTZWNyZXRUYXJnZXRBdHRhY2htZW50IGRpZCBhdHRlbXB0IHRvIGNyZWF0ZSBhIHNlcGFyYXRlIFJlc291cmNlUG9saWN5IGZvciB0aGUgc2FtZSBTZWNyZXQuXG4gICAgICBIb3dldmVyIFNlY3JldHMgY2FuIG9ubHkgaGF2ZSBhIHNpbmdsZSBSZXNvdXJjZVBvbGljeSwgY2F1c2luZyB0aGUgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCB0byBmYWlsLlxuXG4gICAgICBXaGVuIGVuYWJsaW5nIHRoaXMgZmVhdHVyZSBmbGFnIGZvciBhbiBleGlzdGluZyBTdGFjaywgUmVzb3VyY2VQb2xpY2llcyBjcmVhdGVkIHZpYSBhIFNlY3JldFRhcmdldEF0dGFjaG1lbnQgd2lsbCBuZWVkIHJlcGxhY2VtZW50LlxuICAgICAgVGhpcyB3b24ndCBiZSBwb3NzaWJsZSB3aXRob3V0IGludGVydmVudGlvbiBkdWUgdG8gbGltaXRhdGlvbiBvdXRsaW5lZCBhYm92ZS5cbiAgICAgIEZpcnN0IHJlbW92ZSBhbGwgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byB0aGUgU2VjcmV0IGFuZCBkZXBsb3kgd2l0aG91dCB0aGUgUmVzb3VyY2VQb2xpY2llcy5cbiAgICAgIFRoZW4geW91IGNhbiByZS1hZGQgdGhlIHBlcm1pc3Npb25zIGFuZCBkZXBsb3kgYWdhaW4uXG4gICAgICBgLFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi42Ny4wJyB9LFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JFRFNISUZUX0NPTFVNTl9JRF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZXRoZXIgdG8gdXNlIGFuIElEIHRvIHRyYWNrIFJlZHNoaWZ0IGNvbHVtbiBjaGFuZ2VzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFJlZHNoaWZ0IGNvbHVtbnMgYXJlIGlkZW50aWZpZWQgYnkgdGhlaXIgXFxgbmFtZVxcYC4gSWYgYSBjb2x1bW4gaXMgcmVuYW1lZCwgdGhlIG9sZCBjb2x1bW5cbiAgICAgIHdpbGwgYmUgZHJvcHBlZCBhbmQgYSBuZXcgY29sdW1uIHdpbGwgYmUgY3JlYXRlZC4gVGhpcyBjYW4gY2F1c2UgZGF0YSBsb3NzLlxuXG4gICAgICBUaGlzIGZsYWcgZW5hYmxlcyB0aGUgdXNlIG9mIGFuIFxcYGlkXFxgIGF0dHJpYnV0ZSBmb3IgUmVkc2hpZnQgY29sdW1ucy4gSWYgdGhpcyBmbGFnIGlzIGVuYWJsZWQsIHRoZVxuICAgICAgaW50ZXJuYWwgQ0RLIGFyY2hpdGVjdHVyZSB3aWxsIHRyYWNrIGNoYW5nZXMgb2YgUmVkc2hpZnQgY29sdW1ucyB0aHJvdWdoIHRoZWlyIFxcYGlkXFxgLCByYXRoZXJcbiAgICAgIHRoYW4gdGhlaXIgXFxgbmFtZVxcYC4gVGhpcyB3aWxsIHByZXZlbnQgZGF0YSBsb3NzIHdoZW4gY29sdW1ucyBhcmUgcmVuYW1lZC5cblxuICAgICAgKipOT1RFKiogLSBFbmFibGluZyB0aGlzIGZsYWcgY29tZXMgYXQgYSAqKnJpc2sqKi4gV2hlbiBlbmFibGVkLCB1cGRhdGUgdGhlIFxcYGlkXFxgcyBvZiBhbGwgY29sdW1ucyxcbiAgICAgICoqaG93ZXZlcioqIGRvIG5vdCBjaGFuZ2UgdGhlIFxcYG5hbWVzXFxgcyBvZiB0aGUgY29sdW1ucy4gSWYgdGhlIFxcYG5hbWVcXGBzIG9mIHRoZSBjb2x1bW5zIGFyZSBjaGFuZ2VkIGR1cmluZ1xuICAgICAgaW5pdGlhbCBkZXBsb3ltZW50LCB0aGUgY29sdW1ucyB3aWxsIGJlIGRyb3BwZWQgYW5kIHJlY3JlYXRlZCwgY2F1c2luZyBkYXRhIGxvc3MuIEFmdGVyIHRoZSBpbml0aWFsIGRlcGxveW1lbnRcbiAgICAgIG9mIHRoZSBcXGBpZFxcYHMsIHRoZSBcXGBuYW1lXFxgcyBvZiB0aGUgY29sdW1ucyBjYW4gYmUgY2hhbmdlZCB3aXRob3V0IGRhdGEgbG9zcy5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi42OC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX0VNUl9TRVJWSUNFX1BPTElDWV9WMl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSBBbWF6b25FTVJTZXJ2aWNlUG9saWN5X3YyIG1hbmFnZWQgcG9saWNpZXMnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBcXGBFbXJDcmVhdGVDbHVzdGVyXFxgIGlzXG4gICAgICB0byB1c2UgXFxgQW1hem9uRWxhc3RpY01hcFJlZHVjZVJvbGVcXGAgbWFuYWdlZCBwb2xpY2llcy5cblxuICAgICAgSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gdXNlIHRoZSBuZXcgXFxgQW1hem9uRU1SU2VydmljZVBvbGljeV92MlxcYFxuICAgICAgbWFuYWdlZCBwb2xpY2llcy5cblxuICAgICAgVGhpcyBpcyBhIGZlYXR1cmUgZmxhZyBhcyB0aGUgb2xkIGJlaGF2aW9yIHdpbGwgYmUgZGVwcmVjYXRlZCwgYnV0IHNvbWUgcmVzb3VyY2VzIG1heSByZXF1aXJlIG1hbnVhbFxuICAgICAgaW50ZXJ2ZW50aW9uIHNpbmNlIHRoZXkgbWlnaHQgbm90IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHRhZ3MgcHJvcGFnYXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjcyLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQzJfUkVTVFJJQ1RfREVGQVVMVF9TRUNVUklUWV9HUk9VUF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdSZXN0cmljdCBhY2Nlc3MgdG8gdGhlIFZQQyBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byByZW1vdmUgdGhlIGRlZmF1bHQgaW5ncmVzcy9lZ3Jlc3MgcnVsZXMgZnJvbSB0aGVcbiAgICAgIFZQQyBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwLlxuXG4gICAgICBXaGVuIGEgVlBDIGlzIGNyZWF0ZWQsIGEgZGVmYXVsdCBzZWN1cml0eSBncm91cCBpcyBjcmVhdGVkIGFzIHdlbGwgYW5kIHRoaXMgY2Fubm90XG4gICAgICBiZSBkZWxldGVkLiBUaGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBpcyBjcmVhdGVkIHdpdGggaW5ncmVzcy9lZ3Jlc3MgcnVsZXMgdGhhdCBhbGxvd1xuICAgICAgX2FsbF8gdHJhZmZpYy4gW0FXUyBTZWN1cml0eSBiZXN0IHByYWN0aWNlcyByZWNvbW1lbmRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2VjMi1jb250cm9scy5odG1sI2VjMi0yKVxuICAgICAgcmVtb3ZpbmcgdGhlc2UgaW5ncmVzcy9lZ3Jlc3MgcnVsZXMgaW4gb3JkZXIgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi43OC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiBgXG4gICAgICBUbyBhbGxvdyBhbGwgaW5ncmVzcy9lZ3Jlc3MgdHJhZmZpYyB0byB0aGUgVlBDIGRlZmF1bHQgc2VjdXJpdHkgZ3JvdXAgeW91XG4gICAgICBjYW4gc2V0IHRoZSBcXGByZXN0cmljdERlZmF1bHRTZWN1cml0eUdyb3VwOiBmYWxzZVxcYC5cbiAgICBgLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQSUdBVEVXQVlfUkVRVUVTVF9WQUxJREFUT1JfVU5JUVVFX0lEXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnR2VuZXJhdGUgYSB1bmlxdWUgaWQgZm9yIGVhY2ggUmVxdWVzdFZhbGlkYXRvciBhZGRlZCB0byBhIG1ldGhvZCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGlzIGZsYWcgYWxsb3dzIG11bHRpcGxlIFJlcXVlc3RWYWxpZGF0b3JzIHRvIGJlIGFkZGVkIHRvIGEgUmVzdEFwaSB3aGVuXG4gICAgICBwcm92aWRpbmcgdGhlIFxcYFJlcXVlc3RWYWxpZGF0b3JPcHRpb25zXFxgIGluIHRoZSBcXGBhZGRNZXRob2QoKVxcYCBtZXRob2QuXG5cbiAgICAgIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQgdGhlbiBvbmx5IGEgc2luZ2xlIFJlcXVlc3RWYWxpZGF0b3IgY2FuIGJlIGFkZGVkIGluIHRoaXMgd2F5LlxuICAgICAgQW55IGFkZGl0aW9uYWwgUmVxdWVzdFZhbGlkYXRvcnMgaGF2ZSB0byBiZSBjcmVhdGVkIGRpcmVjdGx5IHdpdGggXFxgbmV3IFJlcXVlc3RWYWxpZGF0b3JcXGAuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjc4LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtLTVNfQUxJQVNfTkFNRV9SRUZdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdLTVMgQWxpYXMgbmFtZSBhbmQga2V5QXJuIHdpbGwgaGF2ZSBpbXBsaWNpdCByZWZlcmVuY2UgdG8gS01TIEtleScsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGlzIGZsYWcgYWxsb3dzIGFuIGltcGxpY2l0IGRlcGVuZGVuY3kgdG8gYmUgY3JlYXRlZCBiZXR3ZWVuIEtNUyBBbGlhcyBhbmQgS01TIEtleVxuICAgICAgd2hlbiByZWZlcmVuY2luZyBrZXkuYWxpYXNOYW1lIG9yIGtleS5rZXlBcm4uXG5cbiAgICAgIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQgdGhlbiBhIHJhdyBzdHJpbmcgaXMgcGFzc2VkIGFzIHRoZSBBbGlhcyBuYW1lIGFuZCBub1xuICAgICAgaW1wbGljaXQgZGVwZW5kZW5jaWVzIHdpbGwgYmUgc2V0LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi44My4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbS01TX0FQUExZX0lNUE9SVEVEX0FMSUFTX1BFUk1JU1NJT05TX1RPX1BSSU5DSVBBTF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSBncmFudCBtZXRob2RzIG9uIEFsaWFzZXMgaW1wb3J0ZWQgYnkgbmFtZSB0byB1c2Uga21zOlJlc291cmNlQWxpYXNlcyBjb25kaXRpb24nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgVGhpcyBmbGFnIGVuYWJsZXMgdGhlIGdyYW50IG1ldGhvZHMgKGdyYW50LCBncmFudERlY3J5cHQsIGdyYW50RW5jcnlwdCwgZXRjLikgb24gQWxpYXNlcyBpbXBvcnRlZFxuICAgICAgYnkgbmFtZSB0byBncmFudCBwZXJtaXNzaW9ucyBiYXNlZCBvbiB0aGUgJ2ttczpSZXNvdXJjZUFsaWFzZXMnIGNvbmRpdGlvbiByYXRoZXIgdGhhbiBuby1vcCBncmFudHMuXG4gICAgICBXaGVuIGRpc2FibGVkLCBncmFudCBjYWxscyBvbiBpbXBvcnRlZCBhbGlhc2VzIHdpbGwgYmUgZHJvcHBlZCAobm8tb3ApIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjIwMi4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnUmVtb3ZlIGNhbGxzIHRvIHRoZSBncmFudCogbWV0aG9kcyBvbiB0aGUgYWxpYXNlcyByZWZlcmVuY2VkIGJ5IG5hbWUnLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FVVE9TQ0FMSU5HX0dFTkVSQVRFX0xBVU5DSF9URU1QTEFURV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0dlbmVyYXRlIGEgbGF1bmNoIHRlbXBsYXRlIHdoZW4gY3JlYXRpbmcgYW4gQXV0b1NjYWxpbmdHcm91cCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmbGFnIHRvIGFsbG93IEF1dG9TY2FsaW5nR3JvdXBzIHRvIGdlbmVyYXRlIGEgbGF1bmNoIHRlbXBsYXRlIHdoZW4gYmVpbmcgY3JlYXRlZC5cbiAgICAgIExhdW5jaCBjb25maWd1cmF0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgY2Fubm90IGJlIGNyZWF0ZWQgaW4gQVdTIEFjY291bnRzIGNyZWF0ZWQgYWZ0ZXJcbiAgICAgIERlY2VtYmVyIDMxLCAyMDIzLiBFeGlzdGluZyAnQXV0b1NjYWxpbmdHcm91cCcgcHJvcGVydGllcyB1c2VkIGZvciBjcmVhdGluZyBhIGxhdW5jaCBjb25maWd1cmF0aW9uXG4gICAgICB3aWxsIG5vdyBjcmVhdGUgYW4gZXF1aXZhbGVudCAnbGF1bmNoVGVtcGxhdGUnLiBBbHRlcm5hdGl2ZWx5LCB1c2VycyBjYW4gcHJvdmlkZSBhbiBleHBsaWNpdFxuICAgICAgJ2xhdW5jaFRlbXBsYXRlJyBvciAnbWl4ZWRJbnN0YW5jZXNQb2xpY3knLiBXaGVuIHRoaXMgZmxhZyBpcyBlbmFibGVkIGEgJ2xhdW5jaFRlbXBsYXRlJyB3aWxsXG4gICAgICBhdHRlbXB0IHRvIHNldCB1c2VyIGRhdGEgYWNjb3JkaW5nIHRvIHRoZSBPUyBvZiB0aGUgbWFjaGluZSBpbWFnZSBpZiBleHBsaWNpdCB1c2VyIGRhdGEgaXMgbm90XG4gICAgICBwcm92aWRlZC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuODguMCcgfSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6IGBcbiAgICAgIElmIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIG1haW50YWluZWQgZHVlIHRvIGFuIGV4aXN0aW5nIGF1dG9zY2FsaW5nIGdyb3VwXG4gICAgICB1c2luZyBhIGxhdW5jaCBjb25maWcsIHNldCB0aGlzIGZsYWcgdG8gZmFsc2UuXG4gICAgYCxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0lOQ0xVREVfUFJFRklYX0lOX1VOSVFVRV9OQU1FX0dFTkVSQVRJT05dOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdJbmNsdWRlIHRoZSBzdGFjayBwcmVmaXggaW4gdGhlIHN0YWNrIG5hbWUgZ2VuZXJhdGlvbiBwcm9jZXNzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoaXMgZmxhZyBwcmV2ZW50cyB0aGUgcHJlZml4IG9mIGEgc3RhY2sgZnJvbSBtYWtpbmcgdGhlIHN0YWNrJ3MgbmFtZSBsb25nZXIgdGhhbiB0aGUgMTI4IGNoYXJhY3RlciBsaW1pdC5cblxuICAgICAgSWYgdGhlIGZsYWcgaXMgc2V0LCB0aGUgcHJlZml4IGlzIGluY2x1ZGVkIGluIHRoZSBzdGFjayBuYW1lIGdlbmVyYXRpb24gcHJvY2Vzcy5cbiAgICAgIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQsIHRoZW4gdGhlIHByZWZpeCBvZiB0aGUgc3RhY2sgaXMgcHJlcGVuZGVkIHRvIHRoZSBnZW5lcmF0ZWQgc3RhY2sgbmFtZS5cblxuICAgICAgKipOT1RFKiogLSBFbmFibGluZyB0aGlzIGZsYWcgY29tZXMgYXQgYSAqKnJpc2sqKi4gSWYgeW91IGhhdmUgYWxyZWFkeSBkZXBsb3llZCBzdGFja3MsIGNoYW5naW5nIHRoZSBzdGF0dXMgb2YgdGhpc1xuICAgICAgZmVhdHVyZSBmbGFnIGNhbiBsZWFkIHRvIGEgY2hhbmdlIGluIHN0YWNrcycgbmFtZS4gQ2hhbmdpbmcgYSBzdGFjayBuYW1lIG1lYW4gcmVjcmVhdGluZyB0aGUgd2hvbGUgc3RhY2ssIHdoaWNoXG4gICAgICBpcyBub3QgdmlhYmxlIGluIHNvbWUgcHJvZHVjdGl2ZSBzZXR1cHMuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjg0LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFRlNfREVOWV9BTk9OWU1PVVNfQUNDRVNTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ0VGUyBkZW5pZXMgYW5vbnltb3VzIGNsaWVudHMgYWNjZXNzZXMnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgVGhpcyBmbGFnIGFkZHMgdGhlIGZpbGUgc3lzdGVtIHBvbGljeSB0aGF0IGRlbmllcyBhbm9ueW1vdXMgY2xpZW50c1xuICAgICAgYWNjZXNzIHRvIFxcYGVmcy5GaWxlU3lzdGVtXFxgLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgXFxgZWZzLkZpbGVTeXN0ZW1cXGAgd2lsbCBhbGxvdyBhbGwgYW5vbnltb3VzIGNsaWVudHNcbiAgICAgIHRoYXQgY2FuIGFjY2VzcyBvdmVyIHRoZSBuZXR3b3JrLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi45My4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnWW91IGNhbiBwYXNzIGBhbGxvd0Fub255bW91c0FjY2VzczogdHJ1ZWAgc28gYWxsb3cgYW5vbnltb3VzIGNsaWVudHMgYWNjZXNzLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX09QRU5TRUFSQ0hfTVVMVElBWl9XSVRIX1NUQU5EQlldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBzdXBwb3J0IGZvciBNdWx0aS1BWiB3aXRoIFN0YW5kYnkgZGVwbG95bWVudCBmb3Igb3BlbnNlYXJjaCBkb21haW5zJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIElmIHRoaXMgaXMgc2V0LCBhbiBvcGVuc2VhcmNoIGRvbWFpbiB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY3JlYXRlZCB3aXRoXG4gICAgICBtdWx0aS1heiB3aXRoIHN0YW5kYnkgZW5hYmxlZC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuODguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgYGNhcGFjaXR5Lm11bHRpQXpXaXRoU3RhbmRieUVuYWJsZWQ6IGZhbHNlYCB0byBgRG9tYWluYCBjb25zdHJ1Y3QgdG8gcmVzdG9yZSB0aGUgb2xkIGJlaGF2aW9yLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTEFNQkRBX05PREVKU19VU0VfTEFURVNUX1JVTlRJTUVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBhd3MtbGFtYmRhLW5vZGVqcy5GdW5jdGlvbiB0byB1c2UgdGhlIGxhdGVzdCBhdmFpbGFibGUgTm9kZUpzIHJ1bnRpbWUgYXMgdGhlIGRlZmF1bHQnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBpcyBzZXQsIGFuZCBhIFxcYHJ1bnRpbWVcXGAgcHJvcCBpcyBub3QgcGFzc2VkIHRvLCBMYW1iZGEgTm9kZUpzXG4gICAgICBmdW5jdGlvbnMgd2lsbCB1cyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUgcHJvdmlkZWQgYnkgdGhlIExhbWJkYVxuICAgICAgc2VydmljZS4gRG8gbm90IHVzZSB0aGlzIGlmIHlvdSB5b3VyIGxhbWJkYSBmdW5jdGlvbiBpcyByZWxpYW50IG9uIGRlcGVuZGVuY2llc1xuICAgICAgc2hpcHBlZCBhcyBwYXJ0IG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi45My4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnUGFzcyBgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1hgIHRvIGBGdW5jdGlvbmAgY29uc3RydWN0IHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzIGJlaGF2aW9yLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUZTX01PVU5UVEFSR0VUX09SREVSSU5TRU5TSVRJVkVfTE9HSUNBTF9JRF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgbW91bnQgdGFyZ2V0cyB3aWxsIGhhdmUgYSBzdGFibGUgbG9naWNhbElkIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBhc3NvY2lhdGVkIHN1Ym5ldC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBlYWNoIG1vdW50IHRhcmdldCB3aWxsIGhhdmUgYSBzdGFibGVcbiAgICAgIGxvZ2ljYWxJZCB0aGF0IGlzIGxpbmtlZCB0byB0aGUgYXNzb2NpYXRlZCBzdWJuZXQuIElmIHRoZSBmbGFnIGlzIHNldCB0b1xuICAgICAgZmFsc2UgdGhlbiB0aGUgbG9naWNhbElkcyBvZiB0aGUgbW91bnQgdGFyZ2V0cyBjYW4gY2hhbmdlIGlmIHRoZSBudW1iZXIgb2ZcbiAgICAgIHN1Ym5ldHMgY2hhbmdlcy5cblxuICAgICAgU2V0IHRoaXMgZmxhZyB0byBmYWxzZSBmb3IgZXhpc3RpbmcgbW91bnQgdGFyZ2V0cy5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTMuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FVUk9SQV9DTFVTVEVSX0NIQU5HRV9TQ09QRV9PRl9JTlNUQU5DRV9QQVJBTUVURVJfR1JPVVBfV0lUSF9FQUNIX1BBUkFNRVRFUlNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGEgc2NvcGUgb2YgSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCBmb3IgQXVyb3JhQ2x1c3Rlckluc3RhbmNlIHdpdGggZWFjaCBwYXJhbWV0ZXJzIHdpbGwgY2hhbmdlLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGEgc2NvcGUgb2YgXFxgSW5zdGFuY2VQYXJhbWV0ZXJHcm91cFxcYCBmb3JcbiAgICAgIFxcYEF1cm9yYUNsdXN0ZXJJbnN0YW5jZVxcYCB3aXRoIGVhY2ggcGFyYW1ldGVycyB3aWxsIGNoYW5nZSB0byBBdXJvcmFDbHVzdGVySW5zdGFuY2VcbiAgICAgIGZyb20gQXVyb3JhQ2x1c3Rlci5cblxuICAgICAgSWYgdGhlIGZsYWcgaXMgc2V0IHRvIGZhbHNlIHRoZW4gaXQgY2FuIG9ubHkgbWFrZSBvbmUgXFxgQXVyb3JhQ2x1c3Rlckluc3RhbmNlXFxgXG4gICAgICB3aXRoIGVhY2ggXFxgSW5zdGFuY2VQYXJhbWV0ZXJHcm91cFxcYCBpbiB0aGUgQXVyb3JhQ2x1c3Rlci5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTcuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQUFNZTkNfRU5BQkxFX1VTRV9BUk5fSURFTlRJRklFUl9TT1VSQ0VfQVBJX0FTU09DSUFUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB3aWxsIGFsd2F5cyB1c2UgdGhlIGFybiBmb3IgaWRlbnRpZmllcnMgZm9yIENmblNvdXJjZUFwaUFzc29jaWF0aW9uIGluIHRoZSBHcmFwaHFsQXBpIGNvbnN0cnVjdCByYXRoZXIgdGhhbiBpZC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB3ZSB1c2UgdGhlIElHcmFwaHFsQXBpIEFSTiByYXRoZXIgdGhhbiBJRCB3aGVuIGNyZWF0aW5nIG9yIHVwZGF0aW5nIENmblNvdXJjZUFwaUFzc29jaWF0aW9uIGluXG4gICAgICB0aGUgR3JhcGhxbEFwaSBjb25zdHJ1Y3QuIFVzaW5nIHRoZSBBUk4gYWxsb3dzIHRoZSBhc3NvY2lhdGlvbiB0byBzdXBwb3J0IGFuIGFzc29jaWF0aW9uIHdpdGggYSBzb3VyY2UgYXBpIG9yIG1lcmdlZCBhcGkgaW4gYW5vdGhlciBhY2NvdW50LlxuICAgICAgTm90ZSB0aGF0IGZvciBleGlzdGluZyBzb3VyY2UgYXBpIGFzc29jaWF0aW9ucyBjcmVhdGVkIHdpdGggdGhpcyBmbGFnIGRpc2FibGVkLCBlbmFibGluZyB0aGUgZmxhZyB3aWxsIGxlYWQgdG8gYSByZXNvdXJjZSByZXBsYWNlbWVudC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTcuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JEU19QUkVWRU5UX1JFTkRFUklOR19ERVBSRUNBVEVEX0NSRURFTlRJQUxTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBjcmVhdGluZyBhbiBSRFMgZGF0YWJhc2UgY2x1c3RlciBmcm9tIGEgc25hcHNob3Qgd2lsbCBvbmx5IHJlbmRlciBjcmVkZW50aWFscyBmb3Igc25hcHNob3QgY3JlZGVudGlhbHMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBcXGBjcmVkZW50aWFsc1xcYCBwcm9wZXJ0eSBvbiB0aGUgXFxgRGF0YWJhc2VDbHVzdGVyRnJvbVNuYXBzaG90UHJvcHNcXGBcbiAgICAgIGludGVyZmFjZSB3YXMgZGVwcmVjYXRlZCB3aXRoIHRoZSBuZXcgXFxgc25hcHNob3RDcmVkZW50aWFsc1xcYCBwcm9wZXJ0eSBiZWluZ1xuICAgICAgcmVjb21tZW5kZWQuIEJlZm9yZSBkZXByZWNhdGluZyBcXGBjcmVkZW50aWFsc1xcYCwgYSBzZWNyZXQgd291bGQgYmUgZ2VuZXJhdGVkXG4gICAgICB3aGlsZSByZW5kZXJpbmcgY3JlZGVudGlhbHMgaWYgdGhlIFxcYGNyZWRlbnRpYWxzXFxgIHByb3BlcnR5IHdhcyB1bmRlZmluZWQgb3JcbiAgICAgIGlmIGEgc2VjcmV0IHdhc24ndCBwcm92aWRlZCB2aWEgdGhlIFxcYGNyZWRlbnRpYWxzXFxgIHByb3BlcnR5LiBUaGlzIGJlaGF2aW9yXG4gICAgICBpcyByZXBsaWNhdGVkIHdpdGggdGhlIG5ldyBcXGBzbmFwc2hvdENyZWRlbnRpYWxzXFxgIHByb3BlcnR5LCBidXQgdGhlIG9yaWdpbmFsXG4gICAgICBcXGBjcmVkZW50aWFsc1xcYCBzZWNyZXQgY2FuIHN0aWxsIGJlIGNyZWF0ZWQgcmVzdWx0aW5nIGluIGFuIGV4dHJhIGRhdGFiYXNlXG4gICAgICBzZWNyZXQuXG5cbiAgICAgIFNldCB0aGlzIGZsYWcgdG8gcHJldmVudCByZW5kZXJpbmcgZGVwcmVjYXRlZCBcXGBjcmVkZW50aWFsc1xcYCBhbmQgY3JlYXRpbmcgYW5cbiAgICAgIGV4dHJhIGRhdGFiYXNlIHNlY3JldCB3aGVuIG9ubHkgdXNpbmcgXFxgc25hcHNob3RDcmVkZW50aWFsc1xcYCB0byBjcmVhdGUgYW4gUkRTXG4gICAgICBkYXRhYmFzZSBjbHVzdGVyIGZyb20gYSBzbmFwc2hvdC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NPREVDT01NSVRfU09VUkNFX0FDVElPTl9ERUZBVUxUX0JSQU5DSF9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgQ29kZUNvbW1pdCBzb3VyY2UgYWN0aW9uIGlzIHVzaW5nIHRoZSBkZWZhdWx0IGJyYW5jaCBuYW1lIFxcJ21haW5cXCcuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gc2V0dGluZyB1cCBhIENvZGVDb21taXQgc291cmNlIGFjdGlvbiBmb3IgdGhlIHNvdXJjZSBzdGFnZSBvZiBhIHBpcGVsaW5lLCBwbGVhc2Ugbm90ZSB0aGF0IHRoZVxuICAgICAgZGVmYXVsdCBicmFuY2ggaXMgXFwnbWFzdGVyXFwnLlxuICAgICAgSG93ZXZlciwgd2l0aCB0aGUgYWN0aXZhdGlvbiBvZiB0aGlzIGZlYXR1cmUgZmxhZywgdGhlIGRlZmF1bHQgYnJhbmNoIGlzIHVwZGF0ZWQgdG8gXFwnbWFpblxcJy5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTAzLjEnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtMQU1CREFfUEVSTUlTU0lPTl9MT0dJQ0FMX0lEX0ZPUl9MQU1CREFfQUNUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgbG9naWNhbCBJRCBvZiBhIExhbWJkYSBwZXJtaXNzaW9uIGZvciBhIExhbWJkYSBhY3Rpb24gaW5jbHVkZXMgYW4gYWxhcm0gSUQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYSBsb2dpY2FsIElEIG9mIFxcYExhbWJkYVBlcm1pc3Npb25cXGAgZm9yIGFcbiAgICAgIFxcYExhbWJkYUFjdGlvblxcYCB3aWxsIGluY2x1ZGUgYW4gYWxhcm0gSUQuIFRoZXJlZm9yZSBtdWx0aXBsZSBhbGFybXMgZm9yIHRoZSBzYW1lIExhbWJkYVxuICAgICAgY2FuIGJlIGNyZWF0ZWQgd2l0aCBcXGBMYW1iZGFBY3Rpb25cXGAuXG5cbiAgICAgIElmIHRoZSBmbGFnIGlzIHNldCB0byBmYWxzZSB0aGVuIGl0IGNhbiBvbmx5IG1ha2Ugb25lIGFsYXJtIGZvciB0aGUgTGFtYmRhIHdpdGhcbiAgICAgIFxcYExhbWJkYUFjdGlvblxcYC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTI0LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDT0RFUElQRUxJTkVfQ1JPU1NfQUNDT1VOVF9LRVlTX0RFRkFVTFRfVkFMVUVfVE9fRkFMU0VdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBQaXBlbGluZSB0byBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGNyb3NzQWNjb3VudEtleXMgdG8gZmFsc2UuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYW5kIHRoZSBcXGBjcm9zc0FjY291bnRLZXlzXFxgIHByb3BlcnR5IGlzIG5vdCBwcm92aWRlZCBpbiBhIFxcYFBpcGVsaW5lXFxgXG4gICAgICBjb25zdHJ1Y3QsIHRoZSBjb25zdHJ1Y3QgYXV0b21hdGljYWxseSBkZWZhdWx0cyB0aGUgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSB0byBmYWxzZS5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTI3LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdQYXNzIGBjcm9zc0FjY291bnRLZXlzOiB0cnVlYCB0byBgUGlwZWxpbmVgIGNvbnN0cnVjdCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NPREVQSVBFTElORV9ERUZBVUxUX1BJUEVMSU5FX1RZUEVfVE9fVjJdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBQaXBlbGluZSB0byBzZXQgdGhlIGRlZmF1bHQgcGlwZWxpbmUgdHlwZSB0byBWMi4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBhbmQgdGhlIFxcYHBpcGVsaW5lVHlwZVxcYCBwcm9wZXJ0eSBpcyBub3QgcHJvdmlkZWQgaW4gYSBcXGBQaXBlbGluZVxcYFxuICAgICAgY29uc3RydWN0LCB0aGUgY29uc3RydWN0IGF1dG9tYXRpY2FsbHkgZGVmYXVsdHMgdGhlIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgdG8gXFxgUGlwZWxpbmVUeXBlLlYyXFxgLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xMzMuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgYHBpcGVsaW5lVHlwZTogUGlwZWxpbmVUeXBlLlYxYCB0byBgUGlwZWxpbmVgIGNvbnN0cnVjdCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0tNU19SRURVQ0VfQ1JPU1NfQUNDT1VOVF9SRUdJT05fUE9MSUNZX1NDT1BFXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBJQU0gUG9saWN5IGNyZWF0ZWQgZnJvbSBLTVMga2V5IGdyYW50IHdpbGwgcmVkdWNlIHRoZSByZXNvdXJjZSBzY29wZSB0byB0aGlzIGtleSBvbmx5LicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQgYW5kIGNhbGxpbmcgS01TIGtleSBncmFudCBtZXRob2QsIHRoZSBjcmVhdGVkIElBTSBwb2xpY3kgd2lsbCByZWR1Y2UgdGhlIHJlc291cmNlIHNjb3BlIGZyb21cbiAgICAgICcqJyB0byB0aGlzIHNwZWNpZmljIGdyYW50aW5nIEtNUyBrZXkuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjEzNC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUElQRUxJTkVfUkVEVUNFX0FTU0VUX1JPTEVfVFJVU1RfU0NPUEVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnUmVtb3ZlIHRoZSByb290IGFjY291bnQgcHJpbmNpcGFsIGZyb20gUGlwZWxpbmVBc3NldHNGaWxlUm9sZSB0cnVzdCBwb2xpY3knLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgcm9vdCBhY2NvdW50IHByaW5jaXBhbCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgdHJ1c3QgcG9saWN5IG9mIGFzc2V0IHJvbGUuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCBpdCB3aWxsIGtlZXAgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgaW4gdGhlIHRydXN0IHBvbGljeS5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTQxLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBhZGQgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgYmFjaycsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUtTX05PREVHUk9VUF9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBub2RlZ3JvdXBOYW1lIGF0dHJpYnV0ZSBvZiB0aGUgcHJvdmlzaW9uZWQgRUtTIE5vZGVHcm91cCB3aWxsIG5vdCBoYXZlIHRoZSBjbHVzdGVyIG5hbWUgcHJlZml4LicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHRoZSBub2RlZ3JvdXBOYW1lIGF0dHJpYnV0ZSB3aWxsIGJlIGV4YWN0bHkgdGhlIG5hbWUgb2YgdGhlIG5vZGVncm91cCB3aXRob3V0XG4gICAgICBhbnkgcHJlZml4LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xMzkuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VCU19ERUZBVUxUX0dQM106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBkZWZhdWx0IHZvbHVtZSB0eXBlIG9mIHRoZSBFQlMgdm9sdW1lIHdpbGwgYmUgR1AzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dWVyIGZsYWcgaXMgZW5hYmxlZCwgdGhlIGRlZmF1bHQgdm9sdW1lIHR5cGUgb2YgdGhlIEVCUyB2b2x1bWUgd2lsbCBiZSBcXGBFYnNEZXZpY2VWb2x1bWVUeXBlLkdFTkVSQUxfUFVSUE9TRV9TU0RfR1AzXFxgLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNDAuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgYHZvbHVtZVR5cGU6IEVic0RldmljZVZvbHVtZVR5cGUuR0VORVJBTF9QVVJQT1NFX1NTRGAgdG8gYFZvbHVtZWAgY29uc3RydWN0IHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzIGJlaGF2aW9yLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUNTX1JFTU9WRV9ERUZBVUxUX0RFUExPWU1FTlRfQUxBUk1dOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCByZW1vdmUgZGVmYXVsdCBkZXBsb3ltZW50IGFsYXJtIHNldHRpbmdzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dWVyIGZsYWcgaXMgZW5hYmxlZCwgcmVtb3ZlIHRoZSBkZWZhdWx0IGRlcGxveW1lbnQgYWxhcm0gc2V0dGluZ3Mgd2hlbiBjcmVhdGluZyBhIEFXUyBFQ1Mgc2VydmljZS5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTQzLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdTZXQgQVdTOjpFQ1M6OlNlcnZpY2UgXFwnRGVwbG95bWVudEFsYXJtc1xcJyBtYW51YWxseSB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0xPR19BUElfUkVTUE9OU0VfREFUQV9QUk9QRVJUWV9UUlVFX0RFRkFVTFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBjdXN0b20gcmVzb3VyY2UgdXNlZCBmb3IgYEF3c0N1c3RvbVJlc291cmNlYCB3aWxsIGNvbmZpZ3VyZSB0aGUgYGxvZ0FwaVJlc3BvbnNlRGF0YWAgcHJvcGVydHkgYXMgdHJ1ZSBieSBkZWZhdWx0JyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoaXMgcmVzdWx0cyBpbiAnbG9nQXBpUmVzcG9uc2VEYXRhJyBiZWluZyBwYXNzZWQgYXMgdHJ1ZSB0byB0aGUgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVyLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGN1c3RvbSByZXNvdXJjZSBoYW5kbGVyIHRvIHJlY2VpdmUgYW4gJ1VwZGF0ZScgZXZlbnQuIElmIHlvdSBkb24ndFxuICAgICAgaGF2ZSBhbiBTREsgY2FsbCBjb25maWd1cmVkIGZvciB0aGUgJ1VwZGF0ZScgZXZlbnQgYW5kIHlvdSdyZSBkZXBlbmRlbnQgb24gc3BlY2lmaWMgU0RLIGNhbGwgcmVzcG9uc2UgZGF0YSwgeW91IHdpbGwgc2VlIHRoaXMgZXJyb3IgZnJvbSBDRk46XG5cbiAgICAgIEN1c3RvbVJlc291cmNlIGF0dHJpYnV0ZSBlcnJvcjogVmVuZG9yIHJlc3BvbnNlIGRvZXNuJ3QgY29udGFpbiA8YXR0cmlidXRlLW5hbWU+IGF0dHJpYnV0ZSBpbiBvYmplY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzI5OTQ5KSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gICAgICBVbmxpa2UgbW9zdCBmZWF0dXJlIGZsYWdzLCB3ZSBkb24ndCByZWNvbW1lbmQgc2V0dGluZyB0aGlzIGZlYXR1cmUgZmxhZyB0byB0cnVlLiBIb3dldmVyLCBpZiB5b3UncmUgdXNpbmcgdGhlICdBd3NDdXN0b21SZXNvdXJjZScgY29uc3RydWN0IHdpdGggJ2xvZ0FwaVJlc3BvbnNlRGF0YScgYXMgdHJ1ZSBpblxuICAgICAgdGhlIGV2ZW50IG9iamVjdCwgdGhlbiBzZXR0aW5nIHRoaXMgZmVhdHVyZSBmbGFnIHdpbGwga2VlcCB0aGlzIGJlaGF2aW9yLiBPdGhlcndpc2UsIHNldHRpbmcgdGhpcyBmZWF0dXJlIGZsYWcgdG8gZmFsc2Ugd2lsbCB0cmlnZ2VyIGFuICdVcGRhdGUnIGV2ZW50IGJ5IHJlbW92aW5nIHRoZSAnbG9nQXBpUmVzcG9uc2VEYXRhJ1xuICAgICAgcHJvcGVydHkgZnJvbSB0aGUgZXZlbnQgb2JqZWN0LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNDUuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTM19LRUVQX05PVElGSUNBVElPTl9JTl9JTVBPUlRFRF9CVUNLRVRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIEFkZGluZyBub3RpZmljYXRpb25zIHRvIGEgYnVja2V0IGluIHRoZSBjdXJyZW50IHN0YWNrIHdpbGwgbm90IHJlbW92ZSBub3RpZmljYXRpb24gZnJvbSBpbXBvcnRlZCBzdGFjay4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ3VycmVudGx5LCBhZGRpbmcgbm90aWZpY2F0aW9ucyB0byBhIGJ1Y2tldCB3aGVyZSBpdCB3YXMgY3JlYXRlZCBieSBvdXJzZWx2ZXMgd2lsbCBvdmVycmlkZSBub3RpZmljYXRpb24gYWRkZWQgd2hlcmUgaXQgaXMgaW1wb3J0ZWQuXG5cbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYWRkaW5nIG5vdGlmaWNhdGlvbnMgdG8gYSBidWNrZXQgaW4gdGhlIGN1cnJlbnQgc3RhY2sgd2lsbCBvbmx5IHVwZGF0ZSBub3RpZmljYXRpb24gZGVmaW5lZCBpbiB0aGlzIHN0YWNrLlxuICAgICAgT3RoZXIgbm90aWZpY2F0aW9ucyB0aGF0IGFyZSBub3QgbWFuYWdlZCBieSB0aGlzIHN0YWNrIHdpbGwgYmUga2VwdC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTU1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogZmFsc2UsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFX05FV19TM1VSSV9QQVJBTUVURVJTX0ZPUl9CRURST0NLX0lOVk9LRV9NT0RFTF9UQVNLXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB1c2UgbmV3IHByb3BzIGZvciBTMyBVUkkgZmllbGQgaW4gdGFzayBkZWZpbml0aW9uIG9mIHN0YXRlIG1hY2hpbmUgZm9yIGJlZHJvY2sgaW52b2tlIG1vZGVsLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgQ3VycmVudGx5LCAnaW5wdXRQYXRoJyBhbmQgJ291dHB1dFBhdGgnIGZyb20gdGhlIFRhc2tTdGF0ZUJhc2UgUHJvcHMgaXMgYmVpbmcgdXNlZCB1bmRlciBCZWRyb2NrSW52b2tlTW9kZWxQcm9wcyB0byBkZWZpbmUgUzNVUkkgdW5kZXIgJ2lucHV0JyBhbmQgJ291dHB1dCcgZmllbGRzXG4gICAgb2YgU3RhdGUgTWFjaGluZSBUYXNrIGRlZmluaXRpb24uXG5cbiAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHNwZWNpZnkgbmV3bHkgaW50cm9kdWNlZCBwcm9wcyAnczNJbnB1dFVyaScgYW5kXG4gICAgJ3MzT3V0cHV0VXJpJyB0byBwb3B1bGF0ZSBTMyB1cmkgdW5kZXIgaW5wdXQgYW5kIG91dHB1dCBmaWVsZHMgaW4gc3RhdGUgbWFjaGluZSB0YXNrIGRlZmluaXRpb24gZm9yIEJlZHJvY2sgaW52b2tlIG1vZGVsLlxuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE1Ni4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdXNlIGlucHV0IGFuZCBvdXRwdXQgcGF0aCBmaWVsZHMgZm9yIHMzIFVSSScsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRVhQTElDSVRfU1RBQ0tfVEFHU106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHN0YWNrIHRhZ3MgbmVlZCB0byBiZSBhc3NpZ25lZCBleHBsaWNpdGx5IG9uIGEgU3RhY2suJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBXaXRob3V0IHRoaXMgZmVhdHVyZSBmbGFnIGVuYWJsZWQsIGlmIHRhZ3MgYXJlIGFkZGVkIHRvIGEgU3RhY2sgdXNpbmdcbiAgICBcXGBUYWdzLm9mKHNjb3BlKS5hZGQoLi4uKVxcYCwgdGhleSB3aWxsIGJlIGFkZGVkIHRvIGJvdGggdGhlIHN0YWNrIGFuZCBhbGwgcmVzb3VyY2VzXG4gICAgaW4gdGhlIHN0YWNrIHRlbXBsYXRlLlxuXG4gICAgVGhhdCBsZWFkcyB0byB0aGUgdGFncyBiZWluZyBhcHBsaWVkIHR3aWNlOiBvbmNlIGluIHRoZSB0ZW1wbGF0ZSwgYW5kIG9uY2VcbiAgICBhZ2FpbiBhdXRvbWF0aWNhbGx5IGJ5IENsb3VkRm9ybWF0aW9uLCB3aGljaCB3aWxsIGFwcGx5IGFsbCBzdGFjayB0YWdzIHRvXG4gICAgYWxsIHJlc291cmNlcyBpbiB0aGUgc3RhY2suIFRoaXMgbGVhZHMgdG8gbG9zcyBvZiBjb250cm9sLCBhcyB0aGVcbiAgICBcXGBleGNsdWRlUmVzb3VyY2VUeXBlc1xcYCBvcHRpb24gb2YgdGhlIFRhZ3MgQVBJIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdC5cblxuICAgIFdpdGggdGhpcyBmbGFnIGVuYWJsZWQsIHRhZ3MgYWRkZWQgdG8gYSBzdGFjayB1c2luZyBcXGBUYWdzLm9mKC4uLilcXGAgYXJlIGlnbm9yZWQsXG4gICAgYW5kIFN0YWNrIHRhZ3MgbXVzdCBiZSBjb25maWd1cmVkIGV4cGxpY2l0bHkgb24gdGhlIFN0YWNrIG9iamVjdC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMjA1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdDb25maWd1cmUgc3RhY2stbGV2ZWwgdGFncyB1c2luZyBgbmV3IFN0YWNrKC4uLiwgeyB0YWdzOiB7IC4uLiB9IH0pYC4nLFxuICB9LFxuICBbRW5hYmxlX0lNRFNfQmxvY2tpbmdfRGVwcmVjYXRlZF9GZWF0dXJlXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLlRlbXBvcmFyeSxcbiAgICBzdW1tYXJ5OiAnV2hlbiBzZXQgdG8gdHJ1ZSBhbG9uZyB3aXRoIGNhbkNvbnRhaW5lcnNBY2Nlc3NJbnN0YW5jZVJvbGU9ZmFsc2UgaW4gRUNTIGNsdXN0ZXIsIG5ldyB1cGRhdGVkICcgK1xuICAgICAgJ2NvbW1hbmRzIHdpbGwgYmUgYWRkZWQgdG8gVXNlckRhdGEgdG8gYmxvY2sgY29udGFpbmVyIGFjY2Vzc2luZyBJTURTLiAnICtcbiAgICAgICcqKkFwcGxpY2FibGUgdG8gTGludXggb25seS4gSU1QT1JUQU5UOiBTZWUgW2RldGFpbHMuXSgjYXdzLWNka2F3cy1lY3NlbmFibGVJbWRzQmxvY2tpbmdEZXByZWNhdGVkRmVhdHVyZSkqKicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgSW4gYW4gRUNTIENsdXN0ZXIgd2l0aCBcXGBNYWNoaW5lSW1hZ2VUeXBlLkFNQVpPTl9MSU5VWF8yXFxgLCB0aGUgY2FuQ29udGFpbmVyc0FjY2Vzc0luc3RhbmNlUm9sZT1mYWxzZSBvcHRpb24gYXR0ZW1wdHMgdG8gYWRkIGNvbW1hbmRzIHRvIGJsb2NrIGNvbnRhaW5lcnMgZnJvbVxuICAgIGFjY2Vzc2luZyBJTURTLiBTZXQgdGhpcyBmbGFnIHRvIHRydWUgaW4gb3JkZXIgdG8gdXNlIG5ldyBhbmQgdXBkYXRlZCBjb21tYW5kcy4gUGxlYXNlIG5vdGUgdGhhdCB0aGlzXG4gICAgZmVhdHVyZSBhbG9uZSB3aXRoIHRoaXMgZmVhdHVyZSBmbGFnIHdpbGwgYmUgZGVwcmVjYXRlZCBieSA8aW5zPioqZW5kIG9mIDIwMjUqKjwvaW5zPiBhcyBDREsgY2Fubm90XG4gICAgZ3VhcmFudGVlIHRoZSBjb3JyZWN0IGV4ZWN1dGlvbiBvZiB0aGUgZmVhdHVyZSBpbiBhbGwgcGxhdGZvcm1zLiBTZWUgW0dpdGh1YiBkaXNjdXNzaW9uXShodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvZGlzY3Vzc2lvbnMvMzI2MDkpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgIEl0IGlzIHJlY29tbWVuZGVkIHRvIGZvbGxvdyBFQ1MgZG9jdW1lbnRhdGlvbiB0byBibG9jayBJTURTIGZvciB5b3VyIHNwZWNpZmljIHBsYXRmb3JtIGFuZCBjbHVzdGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE3NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IGZhbHNlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1NldCB0aGlzIGZsYWcgdG8gZmFsc2UgaW4gb3JkZXIgdG8gY29udGludWUgdXNpbmcgb2xkIGFuZCBvdXRkYXRlZCBjb21tYW5kcy4gJyArXG4gICAgICAnSG93ZXZlciwgaXQgaXMgKipub3QqKiByZWNvbW1lbmRlZC4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0Rpc2FibGVfRUNTX0lNRFNfQmxvY2tpbmddOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuVGVtcG9yYXJ5LFxuICAgIHN1bW1hcnk6ICdXaGVuIHNldCB0byB0cnVlLCBDREsgc3ludGggd2lsbCB0aHJvdyBleGNlcHRpb24gaWYgY2FuQ29udGFpbmVyc0FjY2Vzc0luc3RhbmNlUm9sZSBpcyBmYWxzZS4nICtcbiAgICAgICcgKipJTVBPUlRBTlQ6IFNlZSBbZGV0YWlscy5dKCNhd3MtY2RrYXdzLWVjc2Rpc2FibGVFY3NJbWRzQmxvY2tpbmcpKionLFxuICAgIGRldGFpbHNNZDogYFxuICAgIEluIGFuIEVDUyBDbHVzdGVyIHdpdGggXFxgTWFjaGluZUltYWdlVHlwZS5BTUFaT05fTElOVVhfMlxcYCwgdGhlIGNhbkNvbnRhaW5lcnNBY2Nlc3NJbnN0YW5jZVJvbGU9ZmFsc2Ugb3B0aW9uIGF0dGVtcHRzIHRvIGFkZCBjb21tYW5kcyB0byBibG9jayBjb250YWluZXJzIGZyb21cbiAgICBhY2Nlc3NpbmcgSU1EUy4gQ0RLIGNhbm5vdCBndWFyYW50ZWUgdGhlIGNvcnJlY3QgZXhlY3V0aW9uIG9mIHRoZSBmZWF0dXJlIGluIGFsbCBwbGF0Zm9ybXMuIFNldHRpbmcgdGhpcyBmZWF0dXJlIGZsYWdcbiAgICB0byB0cnVlIHdpbGwgZW5zdXJlIENESyBkb2VzIG5vdCBhdHRlbXB0IHRvIGltcGxlbWVudCBJTURTIGJsb2NraW5nLiBCeSA8aW5zPioqZW5kIG9mIDIwMjUqKjwvaW5zPiwgQ0RLIHdpbGwgcmVtb3ZlIHRoZVxuICAgIElNRFMgYmxvY2tpbmcgZmVhdHVyZS4gU2VlIFtHaXRodWIgZGlzY3Vzc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Rpc2N1c3Npb25zLzMyNjA5KSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuICAgIEl0IGlzIHJlY29tbWVuZGVkIHRvIGZvbGxvdyBFQ1MgZG9jdW1lbnRhdGlvbiB0byBibG9jayBJTURTIGZvciB5b3VyIHNwZWNpZmljIHBsYXRmb3JtIGFuZCBjbHVzdGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE3NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gc2V0IHRoaXMgZmxhZyB0byB0cnVlLiBIb3dldmVyLCBpZiBuZWNlc3NhcnksIHNldCAnICtcbiAgICAgICd0aGlzIGZsYWcgdG8gZmFsc2UgdG8gY29udGludWUgdXNpbmcgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbi4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JFRFVDRV9FQzJfRkFSR0FURV9DTE9VRFdBVENIX1BFUk1JU1NJT05TXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB3ZSB3aWxsIG9ubHkgZ3JhbnQgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyB3aGVuIHVzZXJzIHNwZWNpZnkgY2xvdWR3YXRjaCBsb2cgZ3JvdXAgdGhyb3VnaCBsb2dDb25maWd1cmF0aW9uJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBDdXJyZW50bHksIHdlIGF1dG9tYXRpY2FsbHkgYWRkIGEgbnVtYmVyIG9mIGNsb3Vkd2F0Y2ggcGVybWlzc2lvbnMgdG8gdGhlIHRhc2sgcm9sZSB3aGVuIG5vIGNsb3Vkd2F0Y2ggbG9nIGdyb3VwIGlzXG4gICAgc3BlY2lmaWVkIGFzIGxvZ0NvbmZpZ3VyYXRpb24gYW5kIGl0IHdpbGwgZ3JhbnQgJ1Jlc291cmNlcyc6IFsnKiddIHRvIHRoZSB0YXNrIHJvbGUuXG5cbiAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHdlIHdpbGwgb25seSBncmFudCB0aGUgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHdoZW4gdXNlcnMgc3BlY2lmeSBjbG91ZHdhdGNoIGxvZyBncm91cC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTU5LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gY29udGludWUgZ3JhbnQgcGVybWlzc2lvbnMgdG8gbG9nIGdyb3VwIHdoZW4gbm8gbG9nIGdyb3VwIGlzIHNwZWNpZmllZCcsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRFlOQU1PREJfVEFCTEVWMl9SRVNPVVJDRV9QT0xJQ1lfUEVSX1JFUExJQ0FdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQgd2lsbCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBhIHJlc291cmNlIHBvbGljeSBwZXIgcmVwbGljYSwgYW5kIG5vdCBjb3B5IHRoZSBzb3VyY2UgdGFibGUgcG9saWN5IHRvIGFsbCByZXBsaWNhcycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIFxcYFRhYmxlVjJcXGAgaXMgdG8gdXNlIGEgZGlmZmVyZW50IFxcYHJlc291cmNlUG9saWN5XFxgIGZvciBlYWNoIHJlcGxpY2EuXG5cbiAgICAgIElmIHRoaXMgZmxhZyBpcyBzZXQgdG8gZmFsc2UsIHRoZSBiZWhhdmlvciBpcyB0aGF0IGVhY2ggcmVwbGljYSBzaGFyZXMgdGhlIHNhbWUgXFxgcmVzb3VyY2VQb2xpY3lcXGAgYXMgdGhlIHNvdXJjZSB0YWJsZS5cbiAgICAgIFRoaXMgd2lsbCBwcmV2ZW50IHlvdSBmcm9tIGNyZWF0aW5nIGEgbmV3IHRhYmxlIHdoaWNoIGhhcyBhbiBhZGRpdGlvbmFsIHJlcGxpY2EgYW5kIGEgcmVzb3VyY2UgcG9saWN5LlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBvbGQgYmVoYXZpb3Igd2FzIHRlY2huaWNhbGx5IGluY29ycmVjdCBidXQgdXNlcnMgbWF5IGhhdmUgY29tZSB0byBkZXBlbmQgb24gaXQuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE2NC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUMyX1NVTV9USU1FT1VUX0VOQUJMRURdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGluaXRPcHRpb25zLnRpbWVvdXQgYW5kIHJlc291cmNlU2lnbmFsVGltZW91dCB2YWx1ZXMgd2lsbCBiZSBzdW1tZWQgdG9nZXRoZXIuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEN1cnJlbnRseSBpcyBib3RoIGluaXRPcHRpb25zLnRpbWVvdXQgYW5kIHJlc291cmNlU2lnbmFsVGltZW91dCBhcmUgYm90aCBzcGVjaWZpZWQgaW4gdGhlIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGFuIEVDMiBJbnN0YW5jZSxcbiAgICAgIG9ubHkgdGhlIHZhbHVlIGZyb20gJ3Jlc291cmNlU2lnbmFsVGltZW91dCcgd2lsbCBiZSB1c2VkLlxuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGlmIGJvdGggaW5pdE9wdGlvbnMudGltZW91dCBhbmQgcmVzb3VyY2VTaWduYWxUaW1lb3V0IGFyZSBzcGVjaWZpZWQsIHRoZSB2YWx1ZXMgd2lsbCB0byBiZSBzdW1tZWQgdG9nZXRoZXIuXG4gICAgICBgLFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNjAuMCcgfSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtBUFBTWU5DX0dSQVBIUUxBUElfU0NPUEVfTEFNQkRBX0ZVTkNUSU9OX1BFUk1JU1NJT05dOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGEgTGFtYmRhIGF1dGhvcml6ZXIgUGVybWlzc2lvbiBjcmVhdGVkIHdoZW4gdXNpbmcgR3JhcGhxbEFwaSB3aWxsIGJlIHByb3Blcmx5IHNjb3BlZCB3aXRoIGEgU291cmNlQXJuLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICAgIEN1cnJlbnRseSwgd2hlbiB1c2luZyBhIExhbWJkYSBhdXRob3JpemVyIHdpdGggYW4gQXBwU3luYyBHcmFwaFFMIEFQSSwgdGhlIEFXUyBDREsgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgdGhlIG5lY2Vzc2FyeSBBV1M6OkxhbWJkYTo6UGVybWlzc2lvblxuICAgICAgICB0byBhbGxvdyB0aGUgQXBwU3luYyBBUEkgdG8gaW52b2tlIHRoZSBMYW1iZGEgYXV0aG9yaXplci4gVGhpcyBwZXJtaXNzaW9uIGlzIG92ZXJseSBwZXJtaXNzaXZlIGJlY2F1c2UgaXQgbGFja3MgYSBTb3VyY2VBcm4sIG1lYW5pbmdcbiAgICAgICAgaXQgYWxsb3dzIGludm9jYXRpb25zIGZyb20gYW55IHNvdXJjZS5cblxuICAgICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHRoZSBBV1M6OkxhbWJkYTo6UGVybWlzc2lvbiB3aWxsIGJlIHByb3Blcmx5IHNjb3BlZCB3aXRoIHRoZSBTb3VyY2VBcm4gY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgICAgc3BlY2lmaWMgQXBwU3luYyBHcmFwaFFMIEFQSS5cbiAgICAgICAgYCxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTYxLjAnIH0sXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFX0NPUlJFQ1RfVkFMVUVfRk9SX0lOU1RBTkNFX1JFU09VUkNFX0lEX1BST1BFUlRZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgdmFsdWUgb2YgcHJvcGVydHkgYGluc3RhbmNlUmVzb3VyY2VJZGAgaW4gY29uc3RydWN0IGBEYXRhYmFzZUluc3RhbmNlUmVhZFJlcGxpY2FgIHdpbGwgYmUgc2V0IHRvIHRoZSBjb3JyZWN0IHZhbHVlIHdoaWNoIGlzIGBEYmlSZXNvdXJjZUlkYCBpbnN0ZWFkIG9mIGN1cnJlbnRseSBgRGJJbnN0YW5jZUFybmAnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ3VycmVudGx5LCB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5ICdpbnN0YW5jZVJlc291cmNlSWQnIGluIGNvbnN0cnVjdCAnRGF0YWJhc2VJbnN0YW5jZVJlYWRSZXBsaWNhJyBpcyBub3QgY29ycmVjdCwgYW5kIHNldCB0byAnRGJJbnN0YW5jZUFybicgd2hpY2ggaXMgbm90IGNvcnJlY3Qgd2hlbiBpdCBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgSUFNIFBvbGljeSBpbiB0aGUgZ3JhbnRDb25uZWN0IG1ldGhvZC5cblxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgdmFsdWUgb2YgdGhhdCBwcm9wZXJ0eSB3aWxsIGJlIGFzIGV4cGVjdGVkIHNldCB0byAnRGJpUmVzb3VyY2VJZCcgYXR0cmlidXRlLCBhbmQgdGhhdCB3aWxsIGZpeCB0aGUgZ3JhbnRDb25uZWN0IG1ldGhvZC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTYxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdXNlIGBEYkluc3RhbmNlQXJuYCBhcyB2YWx1ZSBmb3IgcHJvcGVydHkgYGluc3RhbmNlUmVzb3VyY2VJZGAnLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NGTl9JTkNMVURFX1JFSkVDVF9DT01QTEVYX1JFU09VUkNFX1VQREFURV9DUkVBVEVfUE9MSUNZX0lOVFJJTlNJQ1NdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIENGTiB0ZW1wbGF0ZXMgYWRkZWQgd2l0aCBgY2ZuLWluY2x1ZGVgIHdpbGwgZXJyb3IgaWYgdGhlIHRlbXBsYXRlIGNvbnRhaW5zIFJlc291cmNlIFVwZGF0ZSBvciBDcmVhdGUgcG9saWNpZXMgd2l0aCBDRk4gSW50cmluc2ljcyB0aGF0IGluY2x1ZGUgbm9uLXByaW1pdGl2ZSB2YWx1ZXMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBXaXRob3V0IGVuYWJsaW5nIHRoaXMgZmVhdHVyZSBmbGFnLCBcXGBjZm4taW5jbHVkZVxcYCB3aWxsIHNpbGVudGx5IGRyb3AgcmVzb3VyY2UgdXBkYXRlIG9yIGNyZWF0ZSBwb2xpY2llcyB0aGF0IGNvbnRhaW4gQ0ZOIEludHJpbnNpY3MgaWYgdGhleSBpbmNsdWRlIG5vbi1wcmltaXRpdmUgdmFsdWVzLlxuXG4gICAgRW5hYmxpbmcgdGhpcyBmZWF0dXJlIGZsYWcgd2lsbCBtYWtlIFxcYGNmbi1pbmNsdWRlXFxgIHRocm93IG9uIHRoZXNlIHRlbXBsYXRlcywgdW5sZXNzIHlvdSBzcGVjaWZ5IHRoZSBsb2dpY2FsIElEIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgJ3VuaHlkcmF0ZWRSZXNvdXJjZXMnIHByb3BlcnR5LlxuICAgIGAsXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE2MS4wJyB9LFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0xBTUJEQV9OT0RFSlNfU0RLX1YzX0VYQ0xVREVfU01JVEhZX1BBQ0tBR0VTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBib3RoIGBAYXdzLXNka2AgYW5kIGBAc21pdGh5YCBwYWNrYWdlcyB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIExhbWJkYSBOb2RlLmpzIDE4LnggcnVudGltZSB0byBwcmV2ZW50IHZlcnNpb24gbWlzbWF0Y2hlcyBpbiBidW5kbGVkIGFwcGxpY2F0aW9ucy4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ3VycmVudGx5LCB3aGVuIGJ1bmRsaW5nIExhbWJkYSBmdW5jdGlvbnMgd2l0aCB0aGUgbm9uLWxhdGVzdCBydW50aW1lIHRoYXQgc3VwcG9ydHMgQVdTIFNESyBKYXZhU2NyaXB0ICh2MyksIG9ubHkgdGhlICdAYXdzLXNkay8qJyBwYWNrYWdlcyBhcmUgZXhjbHVkZWQgYnkgZGVmYXVsdC5cbiAgICAgIEhvd2V2ZXIsIHRoaXMgY2FuIGNhdXNlIHZlcnNpb24gbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSAnQGF3cy1zZGsvKicgYW5kICdAc21pdGh5LyonIHBhY2thZ2VzLCBhcyB0aGV5IGFyZSB0aWdodGx5IGNvdXBsZWQgZGVwZW5kZW5jaWVzIGluIEFXUyBTREsgdjMuXG5cbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYm90aCAnQGF3cy1zZGsvKicgYW5kICdAc21pdGh5LyonIHBhY2thZ2VzIHdpbGwgYmUgZXhjbHVkZWQgZHVyaW5nIHRoZSBidW5kbGluZyBwcm9jZXNzLiBUaGlzIGVuc3VyZXMgdGhhdCBubyBtaXNtYXRjaGVzXG4gICAgICBvY2N1ciBiZXR3ZWVuIHRoZXNlIHRpZ2h0bHkgY291cGxlZCBkZXBlbmRlbmNpZXMgd2hlbiB1c2luZyB0aGUgQVdTIFNESyB2MyBpbiBMYW1iZGEgZnVuY3Rpb25zLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNjEuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1NURVBGVU5DVElPTlNfVEFTS1NfRklYX1JVTl9FQ1NfVEFTS19QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSByZXNvdXJjZSBvZiBJQU0gUnVuIEVjcyBwb2xpY3kgZ2VuZXJhdGVkIGJ5IFNGTiBFY3NSdW5UYXNrIHdpbGwgcmVmZXJlbmNlIHRoZSBkZWZpbml0aW9uLCBpbnN0ZWFkIG9mIGNvbnN0cnVjdGluZyBBUk4uJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEN1cnJlbnRseSwgaW4gdGhlIElBTSBSdW4gRWNzIHBvbGljeSBnZW5lcmF0ZWQgYnkgU0ZOIEVjc1J1blRhc2soKSwgQ0RLIHdpbGwgY29uc3RydWN0IHRoZSBBUk4gd2l0aCB3aWxkY2FyZCBhdHRhY2hlZCBhdCB0aGUgZW5kLlxuICAgICAgVGhlIHJldmlzaW9uIG51bWJlciBhdCB0aGUgZW5kIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBhIHdpbGRjYXJkIHdoaWNoIGl0IHNob3VsZG4ndC5cblxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBpZiB0aGUgdGFzayBkZWZpbml0aW9uIGlzIGNyZWF0ZWQgaW4gdGhlIHN0YWNrLCB0aGUgJ1Jlc291cmNlJyBzZWN0aW9uIHdpbGwgJ1JlZicgdGhlIHRhc2tEZWZpbml0aW9uLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNjMuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0JBU1RJT05fSE9TVF9VU0VfQU1BWk9OX0xJTlVYXzIwMjNfQllfREVGQVVMVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBCYXN0aW9uSG9zdCBjb25zdHJ1Y3Qgd2lsbCB1c2UgdGhlIGxhdGVzdCBBbWF6b24gTGludXggMjAyMyBBTUksIGluc3RlYWQgb2YgQW1hem9uIExpbnV4IDIuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEN1cnJlbnRseSwgaWYgdGhlIG1hY2hpbmVJbWFnZSBwcm9wZXJ0eSBvZiB0aGUgQmFzdGlvbkhvc3QgY29uc3RydWN0IGRlZmF1bHRzIHRvIHVzaW5nIHRoZSBsYXRlc3QgQW1hem9uIExpbnV4IDJcbiAgICAgIEFNSS4gQW1hem9uIExpbnV4IDIgaGl0cyBlbmQtb2YtbGlmZSBpbiBKdW5lIDIwMjUsIHNvIHVzaW5nIEFtYXpvbiBMaW51eCAyMDIzIGJ5IGRlZmF1bHQgaXMgYSBtb3JlIGZ1dHVyZS1wcm9vZlxuICAgICAgYW5kIHNlY3VyZSBvcHRpb24uXG5cbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgaWYgeW91IGRvIG5vdCBwYXNzIHRoZSBtYWNoaW5lSW1hZ2UgcHJvcGVydHkgdG8gdGhlIEJhc3Rpb25Ib3N0IGNvbnN0cnVjdCxcbiAgICAgIHRoZSBsYXRlc3QgQW1hem9uIExpbnV4IDIwMjMgdmVyc2lvbiB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiBBbWF6b24gTGludXggMi5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTcyLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgb3IgZXhwbGljaXRseSBwYXNzIGFuIEFtYXpvbiBMaW51eCAyIG1hY2hpbmUgaW1hZ2UgdG8gdGhlIEJhc3Rpb25Ib3N0IGNvbnN0cnVjdC4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FTUEVDVF9TVEFCSUxJWkFUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLlZpc2libGVDb250ZXh0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGEgc3RhYmlsaXphdGlvbiBsb29wIHdpbGwgYmUgcnVuIHdoZW4gaW52b2tpbmcgQXNwZWN0cyBkdXJpbmcgc3ludGhlc2lzLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXJyZW50bHksIHdoZW4gQXNwZWN0cyBhcmUgaW52b2tlZCBpbiBvbmUgc2luZ2xlIHBhc3Mgb2YgdGhlIGNvbnN0cnVjdCB0cmVlLlxuICAgICAgVGhpcyBtZWFucyB0aGF0IHRoZSBBc3BlY3RzIHRoYXQgY3JlYXRlIG90aGVyIEFzcGVjdHMgYXJlIG5vdCBydW4gYW5kIEFzcGVjdHMgdGhhdCBjcmVhdGUgbmV3IG5vZGVzIG9mIHRoZSB0cmVlIHNvbWV0aW1lcyBkbyBub3QgaW5oZXJpdCB0aGVpciBwYXJlbnQgQXNwZWN0cy5cblxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBhIHN0YWJpbGl6YXRpb24gbG9vcCBpcyBydW4gdG8gcmVjdXJzZSB0aGUgY29uc3RydWN0IHRyZWUgbXVsdGlwbGUgdGltZXMgd2hlbiBpbnZva2luZyBBc3BlY3RzLlxuICAgIGAsXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE3Mi4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFUl9QT09MX0RPTUFJTl9OQU1FX01FVEhPRF9XSVRIT1VUX0NVU1RPTV9SRVNPVVJDRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgdXNlIGEgbmV3IG1ldGhvZCBmb3IgRE5TIE5hbWUgb2YgdXNlciBwb29sIGRvbWFpbiB0YXJnZXQgd2l0aG91dCBjcmVhdGluZyBhIGN1c3RvbSByZXNvdXJjZS4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYSBuZXcgbWV0aG9kIHdpbGwgYmUgdXNlZCB0byBnZXQgdGhlIEROUyBOYW1lIG9mIHRoZSB1c2VyIHBvb2wgZG9tYWluIHRhcmdldC4gVGhlIG9sZCBtZXRob2RcbiAgICBjcmVhdGVzIGEgY3VzdG9tIHJlc291cmNlIGludGVybmFsbHksIGJ1dCB0aGUgbmV3IG1ldGhvZCBkb2Vzbid0IG5lZWQgYSBjdXN0b20gcmVzb3VyY2UuXG5cbiAgICBJZiB0aGUgZmxhZyBpcyBzZXQgdG8gZmFsc2UgdGhlbiBhIGN1c3RvbSByZXNvdXJjZSB3aWxsIGJlIGNyZWF0ZWQgd2hlbiB1c2luZyBcXGBVc2VyUG9vbERvbWFpblRhcmdldFxcYC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTc0LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtBTEJfRFVBTFNUQUNLX1dJVEhPVVRfUFVCTElDX0lQVjRfU0VDVVJJVFlfR1JPVVBfUlVMRVNfREVGQVVMVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgdGhlIGRlZmF1bHQgc2VjdXJpdHkgZ3JvdXAgaW5ncmVzcyBydWxlcyB3aWxsIGFsbG93IElQdjYgaW5ncmVzcyBmcm9tIGFueXdoZXJlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEZvciBpbnRlcm5ldCBmYWNpbmcgQUxCcyB3aXRoICdkdWFsc3RhY2std2l0aG91dC1wdWJsaWMtaXB2NCcgSVAgYWRkcmVzcyB0eXBlLCB0aGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBydWxlc1xuICAgICAgd2lsbCBhbGxvdyBJUHY2IGluZ3Jlc3MgZnJvbSBhbnl3aGVyZSAoOjovMCkuIFByZXZpb3VzbHksIHRoZSBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwIHJ1bGVzIHdvdWxkIG9ubHkgYWxsb3cgSVB2NCBpbmdyZXNzLlxuXG4gICAgICBVc2luZyBhIGZlYXR1cmUgZmxhZyB0byBtYWtlIHN1cmUgZXhpc3RpbmcgY3VzdG9tZXJzIHdobyBtaWdodCBiZSByZWx5aW5nXG4gICAgICBvbiB0aGUgb3Zlcmx5IHJlc3RyaWN0aXZlIHBlcm1pc3Npb25zIGFyZSBub3QgYnJva2VuLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNzYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBvbmx5IGFsbG93IElQdjQgaW5ncmVzcyBpbiB0aGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBydWxlcy4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0lBTV9PSURDX1JFSkVDVF9VTkFVVEhPUklaRURfQ09OTkVDVElPTlNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiBPSURDIHByb3ZpZGVyIHdpbGwgcmVqZWN0IHVuYXV0aG9yaXplZCBjb25uZWN0aW9ucycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiBPSURDIFByb3ZpZGVyJ3MgY3VzdG9tIHJlc291cmNlIGhhbmRsZXIgd2lsbFxuICAgICAgZGVmYXVsdCB0byByZWplY3QgdW5hdXRob3JpemVkIGNvbm5lY3Rpb25zIHdoZW4gZG93bmxvYWRpbmcgQ0EgQ2VydGlmaWNhdGVzLlxuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgdGhlIHNhbWUgYXMgY3VycmVudCBhbmQgd2lsbCBhbGxvdyBkb3dubG9hZGluZ1xuICAgICAgdGh1bWJwcmludHMgZnJvbSB1bnNlY3VyZSBjb25uZWN0aW9ucy5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTc3LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gYWxsb3cgdW5zZWN1cmUgT0lEQyBjb25uZWN0aW9uLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX0FERElUSU9OQUxfTUVUQURBVEFfQ09MTEVDVElPTl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5WaXNpYmxlQ29udGV4dCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBDREsgd2lsbCBleHBhbmQgdGhlIHNjb3BlIG9mIHVzYWdlIGRhdGEgY29sbGVjdGVkIHRvIGJldHRlciBpbmZvcm0gQ0RLIGRldmVsb3BtZW50IGFuZCBpbXByb3ZlIGNvbW11bmljYXRpb24gZm9yIHNlY3VyaXR5IGNvbmNlcm5zIGFuZCBlbWVyZ2luZyBpc3N1ZXMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIENESyBleHBhbmRzIHRoZSBzY29wZSBvZiB1c2FnZSBkYXRhIGNvbGxlY3Rpb24gdG8gaW5jbHVkZSB0aGUgZm9sbG93aW5nOlxuICAgICAgKiBMMiBjb25zdHJ1Y3QgcHJvcGVydHkga2V5cyAtIENvbGxlY3Qgd2hpY2ggcHJvcGVydHkga2V5cyB5b3UgdXNlIGZyb20gdGhlIEwyIGNvbnN0cnVjdHMgaW4geW91ciBhcHAuIFRoaXMgaW5jbHVkZXMgcHJvcGVydHkga2V5cyBuZXN0ZWQgaW4gZGljdGlvbmFyeSBvYmplY3RzLlxuICAgICAgKiBMMiBjb25zdHJ1Y3QgcHJvcGVydHkgdmFsdWVzIG9mIEJPT0wgYW5kIEVOVU0gdHlwZXMgLSBDb2xsZWN0IHByb3BlcnR5IGtleSB2YWx1ZXMgb2Ygb25seSBCT09MIGFuZCBFTlVNIHR5cGVzLiBBbGwgb3RoZXIgdHlwZXMsIHN1Y2ggYXMgc3RyaW5nIHZhbHVlcyBvciBjb25zdHJ1Y3QgcmVmZXJlbmNlcyB3aWxsIGJlIHJlZGFjdGVkLlxuICAgICAgKiBMMiBjb25zdHJ1Y3QgbWV0aG9kIHVzYWdlIC0gQ29sbGVjdGlvbiBtZXRob2QgbmFtZSwgcGFyYW1ldGVyIGtleXMgYW5kIHBhcmFtZXRlciB2YWx1ZXMgb2YgQk9PTCBhbmQgRU5VTSB0eXBlLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNzguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0xBTUJEQV9DUkVBVEVfTkVXX1BPTElDSUVTX1dJVEhfQUREVE9ST0xFUE9MSUNZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnW0RlcHJlY2F0ZWRdIFdoZW4gZW5hYmxlZCwgTGFtYmRhIHdpbGwgY3JlYXRlIG5ldyBpbmxpbmUgcG9saWNpZXMgd2l0aCBBZGRUb1JvbGVQb2xpY3kgaW5zdGVhZCBvZiBhZGRpbmcgdG8gdGhlIERlZmF1bHQgUG9saWN5IFN0YXRlbWVudCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBbRGVwcmVjYXRlZCBkZWZhdWx0IGZlYXR1cmVdIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgTGFtYmRhIHdpbGwgY3JlYXRlIG5ldyBpbmxpbmUgcG9saWNpZXMgd2l0aCBBZGRUb1JvbGVQb2xpY3kuXG4gICAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIHByZXZlbnQgbGFtYmRhIGZyb20gY3JlYXRpbmcgYSBkZXBlbmRlbmN5IG9uIHRoZSBEZWZhdWx0IFBvbGljeSBTdGF0ZW1lbnQuXG4gICAgICBUaGlzIHNvbHZlcyBhbiBpc3N1ZSB3aGVyZSBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgY291bGQgb2NjdXIgaWYgYWRkaW5nIGxhbWJkYSB0byBzb21ldGhpbmcgbGlrZSBhIENvZ25pdG8gVHJpZ2dlciwgdGhlbiBhZGRpbmcgdGhlIFVzZXIgUG9vbCB0byB0aGUgbGFtYmRhIGV4ZWN1dGlvbiByb2xlIHBlcm1pc3Npb25zLlxuICAgICAgSG93ZXZlciBpbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgd2UgaGF2ZSByZW1vdmVkIGEgZGVwZW5kZW5jeSBvZiB0aGUgbGFtYmRhIGZ1bmN0aW9uIG9uIHRoZSBwb2xpY3kuIEluIGFkZGl0aW9uIHRvIHRoaXMsIGEgUm9sZSB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBQb2xpY3kgaW5zdGVhZCBvZiBhbiBpbmxpbmUgcG9saWN5IGJlaW5nIGF0dGFjaGVkIHRvIHRoZSByb2xlLlxuICAgICAgVGhpcyB3aWxsIGNyZWF0ZSBhIGRhdGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGJlY2F1c2UgdGhlIGNyZWF0aW9uIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gbm8gbG9uZ2VyIHdhaXRzIGZvciB0aGUgcG9saWN5IHRvIGJlIGNyZWF0ZWQuIEhhdmluZyBzYWlkIHRoYXQsIHdlIGFyZSBub3QgZGVwcmVjYXRpbmcgdGhlIGZlYXR1cmUgKHdlIGFyZSBkZWZhdWx0aW5nIHRoZSBmZWF0dXJlIGZsYWcgdG8gZmFsc2UgZm9yIG5ldyBzdGFja3MpIHNpbmNlIHRoaXMgZmVhdHVyZSBjYW4gc3RpbGwgYmUgdXNlZCB0byBnZXQgYXJvdW5kIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IGlzc3VlIChpc3N1ZS03MDE2KSBwYXJ0aWN1bGFybHkgaW4gY2FzZXMgd2hlcmUgdGhlIGxhbWJkYSByZXNvdXJjZSBjcmVhdGlvbiBkb2VzbnQgbmVlZCB0byBkZXBlbmQgb24gdGhlIHBvbGljeSByZXNvdXJjZSBjcmVhdGlvbi5cbiAgICAgIFdlIHJlY29tbWVuZCB0byB1bnNldCB0aGUgZmVhdHVyZSBmbGFnIGlmIGFscmVhZHkgc2V0IHdoaWNoIHdpbGwgcmVzdG9yZSB0aGUgb3JpZ2luYWwgYmVoYXZpb3IuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4MC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IGZhbHNlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1NFVF9VTklRVUVfUkVQTElDQVRJT05fUk9MRV9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBDREsgd2lsbCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgdW5pcXVlIHJvbGUgbmFtZSB0aGF0IGlzIHVzZWQgZm9yIHMzIG9iamVjdCByZXBsaWNhdGlvbi4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiBwZXJmb3JtaW5nIGNyb3NzLWFjY291bnQgUzMgcmVwbGljYXRpb24sIHdlIG5lZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5IGEgcm9sZSBuYW1lIGZvciB0aGUgcmVwbGljYXRpb24gZXhlY3V0aW9uIHJvbGUuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGEgdW5pcXVlIHJvbGUgbmFtZSBpcyBzcGVjaWZpZWQgb25seSB3aGVuIHBlcmZvcm1pbmcgY3Jvc3MtYWNjb3VudCByZXBsaWNhdGlvbi5cbiAgICAgIFdoZW4gZGlzYWJsZWQsICdDREtSZXBsaWNhdGlvblJvbGUnIGlzIGFsd2F5cyBzcGVjaWZpZWQuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4Mi4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUElQRUxJTkVfUkVEVUNFX1NUQUdFX1JPTEVfVFJVU1RfU0NPUEVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnUmVtb3ZlIHRoZSByb290IGFjY291bnQgcHJpbmNpcGFsIGZyb20gU3RhZ2UgYWRkQWN0aW9ucyB0cnVzdCBwb2xpY3knLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgcm9vdCBhY2NvdW50IHByaW5jaXBhbCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgdHJ1c3QgcG9saWN5IG9mIHN0YWdlIHJvbGUuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCBpdCB3aWxsIGtlZXAgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgaW4gdGhlIHRydXN0IHBvbGljeS5cblxuICAgICAgRm9yIGNyb3NzLWFjY291bnQgY2FzZXMsIHdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCB0aGUgdHJ1c3QgcG9saWN5IHdpbGwgYmUgc2NvcGVkIHRvIHRoZSByb2xlIG9ubHkuXG4gICAgICBJZiB5b3UgYXJlIHByb3ZpZGluZyBhIGN1c3RvbSByb2xlLCB5b3Ugd2lsbCBuZWVkIHRvIGVuc3VyZSAncm9sZU5hbWUnIGlzIHNwZWNpZmllZCBvciBzZXQgdG8gUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTg0LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBhZGQgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgYmFjaycsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRVZFTlRCVVNfUE9MSUNZX1NJRF9SRVFVSVJFRF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgZ3JhbnRQdXRFdmVudHNUbygpIHdpbGwgdXNlIHJlc291cmNlIHBvbGljaWVzIHdpdGggU3RhdGVtZW50IElEcyBmb3Igc2VydmljZSBwcmluY2lwYWxzLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXJyZW50bHksIHdoZW4gZ3JhbnRpbmcgcGVybWlzc2lvbnMgdG8gc2VydmljZSBwcmluY2lwYWxzIHVzaW5nIGdyYW50UHV0RXZlbnRzVG8oKSwgdGhlIG9wZXJhdGlvbiBzaWxlbnRseSBmYWlsc1xuICAgICAgYmVjYXVzZSBzZXJ2aWNlIHByaW5jaXBhbHMgcmVxdWlyZSByZXNvdXJjZSBwb2xpY2llcyB3aXRoIFN0YXRlbWVudCBJRHMuXG5cbiAgICAgIFdoZW4gdGhpcyBmbGFnIGlzIGVuYWJsZWQ6XG4gICAgICAtIFJlc291cmNlIHBvbGljaWVzIHdpbGwgYmUgY3JlYXRlZCB3aXRoIFN0YXRlbWVudCBJRHMgZm9yIHNlcnZpY2UgcHJpbmNpcGFsc1xuICAgICAgLSBUaGUgb3BlcmF0aW9uIHdpbGwgc3VjY2VlZCBhcyBleHBlY3RlZFxuXG4gICAgICBXaGVuIHRoaXMgZmxhZyBpcyBkaXNhYmxlZDpcbiAgICAgIC0gQSB3YXJuaW5nIHdpbGwgYmUgZW1pdHRlZFxuICAgICAgLSBUaGUgZ3JhbnQgb3BlcmF0aW9uIHdpbGwgYmUgZHJvcHBlZFxuICAgICAgLSBObyBwZXJtaXNzaW9ucyB3aWxsIGJlIGFkZGVkXG5cbiAgICAgIFRoaXMgZml4ZXMgdGhlIGlzc3VlIHdoZXJlIHBlcm1pc3Npb25zIHdlcmUgc2lsZW50bHkgbm90IGJlaW5nIGFkZGVkIGZvciBzZXJ2aWNlIHByaW5jaXBhbHMuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4Ni4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbQVNQRUNUX1BSSU9SSVRJRVNfTVVUQVRJTkddOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBzZXQgdG8gdHJ1ZSwgQXNwZWN0cyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGxpYnJhcnkgb24geW91ciBiZWhhbGYgd2lsbCBiZSBnaXZlbiBhIHByaW9yaXR5IG9mIE1VVEFUSU5HLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXN0b20gQXNwZWN0cyB5b3UgYWRkIGhhdmUgYSBwcmlvcml0eSBvZiBERUZBVUxUICg1MDApIGlmIHlvdSBkb24ndFxuICAgICAgYXNzaWduIGEgbW9yZSBzcGVjaWZpYyBwcmlvcml0eSwgd2hpY2ggaXMgaGlnaGVyIHRoYW4gTVVUQVRJTkcgKDIwMCkuIFRoaXNcbiAgICAgIGlzIHJlbGV2YW50IGlmIGEgY3VzdG9tIEFzcGVjdCB5b3UgYWRkIGFuZCBhbiBBc3BlY3QgYWRkZWQgYnkgQ0RLIHRyeSB0b1xuICAgICAgY29uZmlndXJlIHRoZSBzYW1lIHZhbHVlLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIGZhbHNlIChvbGQgYmVoYXZpb3IpLCBBc3BlY3RzIGFkZGVkIGJ5IENESyBhcmUgYWxzb1xuICAgICAgYWRkZWQgd2l0aCBhIHByaW9yaXR5IG9mIERFRkFVTFQ7IGJlY2F1c2UgdGhlaXIgcHJpb3JpdGllcyBhcmUgZXF1YWwsIHRoZVxuICAgICAgQXNwZWN0cyB0aGF0IGlzIGNsb3Nlc3QgdG8gdGhlIHRhcmdldCBjb25zdHJ1Y3QgZXhlY3V0ZXMgbGFzdCAoZWl0aGVyXG4gICAgICB5b3VycyBvciB0aGUgQXNwZWN0IGFkZGVkIGJ5IHRoZSBDREspLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIHRydWUgKHJlY29tbWVuZGVkIGJlaGF2aW9yKSwgQXNwZWN0cyBhZGRlZCBieSBDREsgYXJlIGFkZGVkXG4gICAgICB3aXRoIGEgcHJpb3JpdHkgb2YgTVVUQVRJTkcsIGFuZCBjdXN0b20gQXNwZWN0cyB5b3UgYWRkIHdpdGggREVGQVVMVFxuICAgICAgcHJpb3JpdHkgd2lsbCBhbHdheXMgZXhlY3V0ZSBsYXN0IGFuZCBcIndpblwiIHRoZSB3cml0ZS4gSWYgeW91IG5lZWQgQXNwZWN0c1xuICAgICAgYWRkZWQgYnkgQ0RLIHRvIHJ1biBhZnRlciB5b3VycywgeW91ciBBc3BlY3QgbmVlZHMgdG8gaGF2ZSBhIHByaW9yaXR5IG9mXG4gICAgICBNVVRBVElORyBvciBsb3dlci5cblxuICAgICAgVGhpcyBzZXR0aW5nIG9ubHkgYXBwbGllcyB0byBBc3BlY3RzIHRoYXQgd2VyZSBhbHJlYWR5IGJlaW5nIGFkZGVkIGZvciB5b3VcbiAgICAgIGJlZm9yZSB2ZXJzaW9uIDIuMTcyLjAuIEFzcGVjdHMgaW50cm9kdWNlZCBzaW5jZSB0aGF0IHZlcnNpb24gd2lsbCBhbHdheXNcbiAgICAgIGJlIGFkZGVkIHdpdGggYSBwcmlvcml0eSBvZiBNVVRBVElORywgaW5kZXBlbmRlbnQgb2YgdGhpcyBmZWF0dXJlIGZsYWcuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4OS4xJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiBgXG4gICAgICBUbyBhZGQgbXV0YXRpbmcgQXNwZWN0cyBjb250cm9sbGluZyBjb25zdHJ1Y3QgdmFsdWVzIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW5cbiAgICAgIGJ5IEFzcGVjdHMgYWRkZWQgYnkgQ0RLLCBnaXZlIHRoZW0gTVVUQVRJTkcgcHJpb3JpdHk6XG5cbiAgICAgIFxcYFxcYFxcYFxuICAgICAgQXNwZWN0cy5vZihzdGFjaykuYWRkKG5ldyBNeUN1c3RvbUFzcGVjdCgpLCB7XG4gICAgICAgIHByaW9yaXR5OiBBc3BlY3RQcmlvcml0eS5NVVRBVElORyxcbiAgICAgIH0pO1xuICAgICAgXFxgXFxgXFxgXG4gICAgYCxcbiAgfSxcbiAgW0RZTkFNT0RCX1RBQkxFX1JFVEFJTl9UQUJMRV9SRVBMSUNBXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0YWJsZSByZXBsaWNhIHdpbGwgYmUgZGVmYXVsdCB0byB0aGUgcmVtb3ZhbCBwb2xpY3kgb2Ygc291cmNlIHRhYmxlIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXJyZW50bHksIHRhYmxlIHJlcGxpY2Egd2lsbCBhbHdheXMgYmUgZGVsZXRlZCB3aGVuIHN0YWNrIGRlbGV0ZXMgcmVnYXJkbGVzcyBvZiBzb3VyY2UgdGFibGUncyBkZWxldGlvbiBwb2xpY3kuXG4gICAgICBXaGVuIGVuYWJsZWQsIHRhYmxlIHJlcGxpY2Egd2lsbCBiZSBkZWZhdWx0IHRvIHRoZSByZW1vdmFsIHBvbGljeSBvZiBzb3VyY2UgdGFibGUgdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4Ny4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTE9HX1VTRVJfUE9PTF9DTElFTlRfU0VDUkVUX1ZBTFVFXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1doZW4gZGlzYWJsZWQsIHRoZSB2YWx1ZSBvZiB0aGUgdXNlciBwb29sIGNsaWVudCBzZWNyZXQgd2lsbCBub3QgYmUgbG9nZ2VkIGluIHRoZSBjdXN0b20gcmVzb3VyY2UgbGFtYmRhIGZ1bmN0aW9uIGxvZ3MuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgdGhlIFNESyBBUEkgY2FsbCByZXNwb25zZSB0byBkZXNyaWJlIHVzZXIgcG9vbCBjbGllbnQgdmFsdWVzIHdpbGwgYmUgbG9nZ2VkIGluIHRoZSBjdXN0b21cbiAgICAgIHJlc291cmNlIGxhbWJkYSBmdW5jdGlvbiBsb2dzLlxuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCB0aGUgU0RLIEFQSSBjYWxsIHJlc3BvbnNlIHRvIGRlc2NyaWJlIHVzZXIgcG9vbCBjbGllbnQgdmFsdWVzIHdpbGwgbm90IGJlIGxvZ2dlZCBpbiB0aGUgY3VzdG9tXG4gICAgICByZXNvdXJjZSBsYW1iZGEgZnVuY3Rpb24gbG9ncy5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTg3LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IGZhbHNlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogZmFsc2UsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnRW5hYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8ga2VlcCB0aGUgb2xkIGJlaGF2aW9yIGFuZCBsb2cgdGhlIGNsaWVudCBzZWNyZXQgdmFsdWVzJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtQSVBFTElORV9SRURVQ0VfQ1JPU1NfQUNDT1VOVF9BQ1RJT05fUk9MRV9UUlVTVF9TQ09QRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHNjb3BlcyBkb3duIHRoZSB0cnVzdCBwb2xpY3kgZm9yIHRoZSBjcm9zcy1hY2NvdW50IGFjdGlvbiByb2xlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgdHJ1c3QgcG9saWN5IG9mIHRoZSBjcm9zcy1hY2NvdW50IGFjdGlvbiByb2xlIHdpbGwgYmUgc2NvcGVkIHRvIHRoZSBwaXBlbGluZSByb2xlLlxuICAgICAgICBJZiB5b3UgYXJlIHByb3ZpZGluZyBhIGN1c3RvbSByb2xlLCB5b3Ugd2lsbCBuZWVkIHRvIGVuc3VyZSAncm9sZU5hbWUnIGlzIHNwZWNpZmllZCBvciBzZXQgdG8gUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRC5cbiAgICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBkaXNhYmxlZCwgaXQgd2lsbCBrZWVwIHRoZSByb290IGFjY291bnQgcHJpbmNpcGFsIGluIHRoZSB0cnVzdCBwb2xpY3kuXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTg5LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBhZGQgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgYmFjaycsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbU1RFUEZVTkNUSU9OU19VU0VfRElTVFJJQlVURURfTUFQX1JFU1VMVF9XUklURVJfVjJdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgcmVzdWx0V3JpdGVyVjIgcHJvcGVydHkgb2YgRGlzdHJpYnV0ZWRNYXAgd2lsbCBiZSB1c2VkIGluc3RlZCBvZiByZXN1bHRXcml0ZXInLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgcmVzdWx0V3JpdGVyVjIgcHJvcGVydHkgaXMgdXNlZCBpbnN0ZWFkIG9mIHJlc3VsdFdyaXRlciBpbiBEaXN0cmlidXRlZE1hcCBjbGFzcy5cbiAgICAgIHJlc3VsdFdyaXRlclYyIHVzZXMgUmVzdWx0V3JpdGVyVjIgY2xhc3MgaW4gU3RlcEZ1bmN0aW9ucyBBU0wgYW5kIGNhbiBoYXZlIGVpdGhlciBCdWNrZXQvUHJlZml4IG9yIFdyaXRlckNvbmZpZyBvciBib3RoLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xODguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyBhbmQgc2V0IHJlc3VsdFdyaXRlciBpbiBEaXN0cmlidXRlZE1hcCcsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUzNfVFJVU1RfS0VZX1BPTElDWV9GT1JfU05TX1NVQlNDUklQVElPTlNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdBZGQgYW4gUzMgdHJ1c3QgcG9saWN5IHRvIGEgS01TIGtleSByZXNvdXJjZSBwb2xpY3kgZm9yIFNOUyBzdWJzY3JpcHRpb25zLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGEgUzMgdHJ1c3QgcG9saWN5IHdpbGwgYmUgYWRkZWQgdG8gdGhlIEtNUyBrZXkgcmVzb3VyY2UgcG9saWN5IGZvciBlbmNyeXB0ZWQgU05TIHN1YnNjcmlwdGlvbnMuXG4gICAgICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE5NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUMyX1JFUVVJUkVfUFJJVkFURV9TVUJORVRTX0ZPUl9FR1JFU1NPTkxZSU5URVJORVRHQVRFV0FZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgRWdyZXNzT25seUdhdGV3YXkgcmVzb3VyY2UgaXMgb25seSBjcmVhdGVkIGlmIHByaXZhdGUgc3VibmV0cyBhcmUgZGVmaW5lZCBpbiB0aGUgZHVhbC1zdGFjayBWUEMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgRWdyZXNzT25seUdhdGV3YXkgcmVzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCB3aGVuIHlvdSBjcmVhdGUgYSB2cGMgd2l0aCBvbmx5IHB1YmxpYyBzdWJuZXRzLlxuICAgICAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xOTYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtVU0VfUkVTT1VSQ0VJRF9GT1JfVlBDVjJfTUlHUkFUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgdXNlIHJlc291cmNlIElEcyBmb3IgVlBDIFYyIG1pZ3JhdGlvbicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgdGhlIFZQQyBWMiBtaWdyYXRpb24gd2lsbCB1c2UgcmVzb3VyY2UgSURzIGluc3RlYWQgb2YgZ2V0QXR0IHJlZmVyZW5jZXNcbiAgICAgICAgZm9yIG1pZ3JhdGluZyByZXNvdXJjZXMgZnJvbSBWUEMgVjEgdG8gVlBDIFYyLiBUaGlzIGhlbHBzIGVuc3VyZSBhIHNtb290aGVyIG1pZ3JhdGlvbiBwYXRoIGJldHdlZW5cbiAgICAgICAgdGhlIHR3byB2ZXJzaW9ucy5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xOTYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZSxcbiAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZTogeyB2MjogZmFsc2UgfSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdXNlIGdldEF0dCByZWZlcmVuY2VzIGZvciBWUEMgVjIgbWlncmF0aW9uJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTM19QVUJMSUNfQUNDRVNTX0JMT0NLRURfQllfREVGQVVMVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgc2V0dGluZyBhbnkgY29tYmluYXRpb24gb2Ygb3B0aW9ucyBmb3IgQmxvY2tQdWJsaWNBY2Nlc3Mgd2lsbCBhdXRvbWF0aWNhbGx5IHNldCB0cnVlIGZvciBhbnkgb3B0aW9ucyBub3QgZGVmaW5lZC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiBCbG9ja1B1YmxpY0FjY2VzcyBpcyBub3Qgc2V0IGF0IGFsbCwgczMncyBkZWZhdWx0IGJlaGF2aW9yIHdpbGwgYmUgdG8gc2V0IGFsbCBvcHRpb25zIHRvIHRydWUgaW4gYXdzIGNvbnNvbGUuXG4gICAgICBUaGUgcHJldmlvdXMgYmVoYXZpb3IgaW4gY2RrIGJlZm9yZSB0aGlzIGZlYXR1cmUgd2FzOyBpZiBvbmx5IHNvbWUgb2YgdGhlIEJsb2NrUHVibGljQWNjZXNzT3B0aW9ucyB3ZXJlIHNldCAobm90IGFsbCA0KSwgdGhlbiB0aGUgb25lcyB1bmRlZmluZWQgd291bGQgZGVmYXVsdCB0byBmYWxzZS5cbiAgICAgIFRoaXMgaXMgY291bnRlciBpbnR1aXRpdmUgdG8gdGhlIGNvbnNvbGUgYmVoYXZpb3Igd2hlcmUgdGhlIG9wdGlvbnMgd291bGQgc3RhcnQgaW4gdHJ1ZSBzdGF0ZSBhbmQgYSB1c2VyIHdvdWxkIHVuY2hlY2sgdGhlIGJveGVzIGFzIG5lZWRlZC5cbiAgICAgIFRoZSBuZXcgYmVoYXZpb3IgZnJvbSB0aGlzIGZlYXR1cmUgd2lsbCBhbGxvdyBhIHVzZXIsIGZvciBleGFtcGxlLCB0byBzZXQgMSBvZiB0aGUgNCBCbG9ja1B1YmxpY0FjY2Vzc09wc2lvbnMgdG8gZmFsc2UsIGFuZCBvbiBkZXBsb3ltZW50IHRoZSBvdGhlciAzIHdpbGwgcmVtYWluIHRydWUuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE5Ni4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFX0NES19NQU5BR0VEX0xBTUJEQV9MT0dHUk9VUF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIENESyBjcmVhdGVzIGFuZCBtYW5hZ2VzIGxvZ2dyb3VwIGZvciB0aGUgbGFtYmRhIGZ1bmN0aW9uJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBDREsgd2lsbCBjcmVhdGUgYSBsb2dncm91cCBmb3IgbGFtYmRhIGZ1bmN0aW9uIHdpdGggZGVmYXVsdCBwcm9wZXJ0aWVzXG4gICAgICAgIHdoaWNoIHN1cHBvcnRzIENESyBmZWF0dXJlcyBUYWcgcHJvcGFnYXRpb24sIFByb3BlcnR5IEluamVjdG9ycywgQXNwZWN0c1xuICAgICAgICBpZiB0aGUgY2RrIGFwcCBkb2VzbnQgcGFzcyBhICdsb2dSZXRlbnRpb24nIG9yICdsb2dHcm91cCcgZXhwbGljaXRseS5cbiAgICAgICAgTG9nR3JvdXBzIGNyZWF0ZWQgdmlhICdsb2dSZXRlbnRpb24nIGRvIG5vdCBzdXBwb3J0IFRhZyBwcm9wYWdhdGlvbiwgUHJvcGVydHkgSW5qZWN0b3JzLCBBc3BlY3RzLlxuICAgICAgICBMb2dHcm91cHMgY3JlYXRlZCB2aWEgJ2xvZ0dyb3VwJyBjcmVhdGVkIGluIENESyBzdXBwb3J0IFRhZyBwcm9wYWdhdGlvbiwgUHJvcGVydHkgSW5qZWN0b3JzLCBBc3BlY3RzLlxuXG4gICAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZGlzYWJsZWQsIGEgbG9nZ3JvdXAgaXMgY3JlYXRlZCBieSBMYW1iZGEgc2VydmljZSBvbiBmaXJzdCBpbnZvY2F0aW9uXG4gICAgICAgIG9mIHRoZSBmdW5jdGlvbiAoZXhpc3RpbmcgYmVoYXZpb3IpLlxuICAgICAgICBMb2dHcm91cHMgY3JlYXRlZCBpbiB0aGlzIHdheSBkbyBub3Qgc3VwcG9ydCBUYWcgcHJvcGFnYXRpb24sIFByb3BlcnR5IEluamVjdG9ycywgQXNwZWN0cy5cblxuICAgICAgICBETyBOT1QgRU5BQkxFOiBJZiB5b3UgaGF2ZSBhbmQgZXhpc3RpbmcgYXBwIGRlZmluaW5nIGEgbGFtYmRhIGZ1bmN0aW9uIGFuZFxuICAgICAgICBoYXZlIG5vdCBzdXBwbGllZCBhIGxvZ0dyb3VwIG9yIGxvZ1JldGVudGlvbiBwcm9wIGFuZCB5b3VyIGxhbWJkYSBmdW5jdGlvbiBoYXNcbiAgICAgICAgZXhlY3V0ZWQgYXQgbGVhc3Qgb25jZSwgdGhlIGxvZ0dyb3VwIGhhcyBiZWVuIGFscmVhZHkgY3JlYXRlZCB3aXRoIHRoZSBzYW1lIG5hbWVcbiAgICAgICAgc28geW91ciBkZXBsb3ltZW50IHdpbGwgc3RhcnQgZmFpbGluZy5cbiAgICAgICAgUmVmZXIgYXdzLWxhbWJkYS9SRUFETUUubWQgZm9yIG1vcmUgZGV0YWlscyBvbiBDdXN0b21pemluZyBMb2cgR3JvdXAgY3JlYXRpb24uXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMjAwLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IGZhbHNlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gbGV0IGxhbWJkYSBzZXJ2aWNlIGNyZWF0ZSBsb2dHcm91cCBvciBzcGVjaWZ5IGxvZ0dyb3VwIG9yIGxvZ1JldGVudGlvbicsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgQ1VSUkVOVF9NViA9ICd2Mic7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgZnV0dXJlIGZsYWdzIHRoYXQgYXJlIG5vdyBleHBpcmVkLiBUaGlzIGlzIGdvaW5nIHRvIGJlIHVzZWQgdG8gaWRlbnRpZnlcbiAqIGFuZCBibG9jayB1c2FnZXMgb2Ygb2xkIGZlYXR1cmUgZmxhZ3MgaW4gdGhlIG5ldyBtYWpvciB2ZXJzaW9uIG9mIENESy5cbiAqL1xuZXhwb3J0IGNvbnN0IENVUlJFTlRfVkVSU0lPTl9FWFBJUkVEX0ZMQUdTOiBzdHJpbmdbXSA9IE9iamVjdC5lbnRyaWVzKEZMQUdTKVxuICAuZmlsdGVyKChbXywgZmxhZ10pID0+IGZsYWcuaW50cm9kdWNlZEluW0NVUlJFTlRfTVZdID09PSB1bmRlZmluZWQpXG4gIC5tYXAoKFtuYW1lLCBfXSkgPT4gbmFtZSkuc29ydCgpO1xuXG4vKipcbiAqIEZsYWcgdmFsdWVzIHRoYXQgc2hvdWxkIGFwcGx5IGZvciBuZXcgcHJvamVjdHNcbiAqXG4gKiBUaGlzIGNvbnRhaW5zIGZsYWdzIHRoYXQgc2F0aXNmeSBib3RoIGNyaXRlcmlhIG9mOlxuICpcbiAqIC0gVGhleSBhcmUgY29uZmlndXJhYmxlIGZvciB0aGUgY3VycmVudCBtYWpvciB2ZXJzaW9uIGxpbmUuXG4gKiAtIFRoZSByZWNvbW1lbmRlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgdW5jb25maWd1cmVkIHZhbHVlIChpLmUuLFxuICogICBjb25maWd1cmluZyBhIGZsYWcgaXMgdXNlZnVsKVxuICovXG5leHBvcnQgY29uc3QgQ1VSUkVOVExZX1JFQ09NTUVOREVEX0ZMQUdTID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBPYmplY3QuZW50cmllcyhGTEFHUylcbiAgICAuZmlsdGVyKChbXywgZmxhZ10pID0+IGZsYWcuaW50cm9kdWNlZEluW0NVUlJFTlRfTVZdICE9PSB1bmRlZmluZWQpXG4gICAgLmZpbHRlcigoW18sIGZsYWddKSA9PiBmbGFnLnJlY29tbWVuZGVkVmFsdWUgIT09IGZsYWcudW5jb25maWd1cmVkQmVoYXZlc0xpa2U/LltDVVJSRU5UX01WXSlcbiAgICAubWFwKChbbmFtZSwgZmxhZ10pID0+IFtuYW1lLCBmbGFnLnJlY29tbWVuZGVkVmFsdWVdKSxcbik7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgdmFsdWVzIG9mIGVhY2ggb2YgdGhlc2UgZmxhZ3MgaW4gdGhlIGN1cnJlbnQgbWFqb3IgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIGlzIHRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhlIGZsYWcsIHVubGVzcyBpdCdzIG92ZXJyaWRkZW4gdmlhXG4gKiBjb250ZXh0LlxuICpcbiAqIEFkZGluZyBuZXcgZmxhZ3MgaGVyZSBpcyBvbmx5IGFsbG93ZWQgZHVyaW5nIHRoZSBwcmUtcmVsZWFzZSBwZXJpb2Qgb2YgYSBuZXdcbiAqIG1ham9yIHZlcnNpb24hXG4gKi9cbmV4cG9ydCBjb25zdCBDVVJSRU5UX1ZFUlNJT05fRkxBR19ERUZBVUxUUyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhGTEFHUylcbiAgLmZpbHRlcigoW18sIGZsYWddKSA9PiBmbGFnLnVuY29uZmlndXJlZEJlaGF2ZXNMaWtlPy5bQ1VSUkVOVF9NVl0gIT09IHVuZGVmaW5lZClcbiAgLm1hcCgoW25hbWUsIGZsYWddKSA9PiBbbmFtZSwgZmxhZy51bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZT8uW0NVUlJFTlRfTVZdXSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gZnV0dXJlRmxhZ0RlZmF1bHQoZmxhZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHZhbHVlID0gQ1VSUkVOVF9WRVJTSU9OX0ZMQUdfREVGQVVMVFNbZmxhZ10gPz8gZmFsc2U7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgaWYgdGhpcyBlcnJvciBpcyB0aHJvd24gaXQncyBhIGJ1Z1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9uby10aHJvdy1kZWZhdWx0LWVycm9yXG4gICAgdGhyb3cgbmV3IEVycm9yKGBmdXR1cmVGbGFnRGVmYXVsdDogZGVmYXVsdCB0eXBlIG9mIGZsYWcgJyR7ZmxhZ30nIHNob3VsZCBiZSBib29sZWFuLCBnb3QgJyR7dHlwZW9mIHZhbHVlfSdgKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8vIE5vYm9keSBzaG91bGQgaGF2ZSBiZWVuIHVzaW5nIGFueSBvZiB0aGlzLCBidXQgeW91IG5ldmVyIGtub3dcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBDVVJSRU5UX1ZFUlNJT05fRVhQSVJFRF9GTEFHUyBpbnN0ZWFkICovXG5leHBvcnQgY29uc3QgRlVUVVJFX0ZMQUdTX0VYUElSRUQgPSBDVVJSRU5UX1ZFUlNJT05fRVhQSVJFRF9GTEFHUztcblxuLyoqIEBkZXByZWNhdGVkIGRvIG5vdCB1c2UgYXQgYWxsISAqL1xuZXhwb3J0IGNvbnN0IEZVVFVSRV9GTEFHUyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhDVVJSRU5UTFlfUkVDT01NRU5ERURfRkxBR1MpXG4gIC5maWx0ZXIoKFtfLCB2XSkgPT4gdHlwZW9mIHYgPT09ICdib29sZWFuJykpO1xuXG4vKiogQGRlcHJlY2F0ZWQgZG8gbm90IHVzZSBhdCBhbGwhICovXG5leHBvcnQgY29uc3QgTkVXX1BST0pFQ1RfREVGQVVMVF9DT05URVhUID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKENVUlJFTlRMWV9SRUNPTU1FTkRFRF9GTEFHUylcbiAgLmZpbHRlcigoW18sIHZdKSA9PiB0eXBlb2YgdiAhPT0gJ2Jvb2xlYW4nKSk7XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./cxapi\"), exports);\n__exportStar(require(\"./context/vpc\"), exports);\n__exportStar(require(\"./context/ami\"), exports);\n__exportStar(require(\"./context/load-balancer\"), exports);\n__exportStar(require(\"./context/availability-zones\"), exports);\n__exportStar(require(\"./context/endpoint-service-availability-zones\"), exports);\n__exportStar(require(\"./context/security-group\"), exports);\n__exportStar(require(\"./context/key\"), exports);\n__exportStar(require(\"./cloud-artifact\"), exports);\nrequire(\"./cloud-artifact-aug\");\n__exportStar(require(\"./artifacts/asset-manifest-artifact\"), exports);\n__exportStar(require(\"./artifacts/cloudformation-artifact\"), exports);\n__exportStar(require(\"./artifacts/tree-cloud-artifact\"), exports);\n__exportStar(require(\"./artifacts/nested-cloud-assembly-artifact\"), exports);\nrequire(\"./artifacts/nested-cloud-assembly-artifact-aug\");\n__exportStar(require(\"./cloud-assembly\"), exports);\n__exportStar(require(\"./assets\"), exports);\n__exportStar(require(\"./environment\"), exports);\n__exportStar(require(\"./metadata\"), exports);\n__exportStar(require(\"./features\"), exports);\n__exportStar(require(\"./placeholders\"), exports);\n__exportStar(require(\"./app\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLGdEQUE4QjtBQUM5QixnREFBOEI7QUFDOUIsMERBQXdDO0FBQ3hDLCtEQUE2QztBQUM3QyxnRkFBOEQ7QUFDOUQsMkRBQXlDO0FBQ3pDLGdEQUE4QjtBQUM5QixtREFBaUM7QUFDakMsZ0NBQThCO0FBQzlCLHNFQUFvRDtBQUNwRCxzRUFBb0Q7QUFDcEQsa0VBQWdEO0FBQ2hELDZFQUEyRDtBQUMzRCwwREFBd0Q7QUFDeEQsbURBQWlDO0FBQ2pDLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIsNkNBQTJCO0FBQzNCLDZDQUEyQjtBQUMzQixpREFBK0I7QUFDL0Isd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jeGFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQvdnBjJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9hbWknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2xvYWQtYmFsYW5jZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2F2YWlsYWJpbGl0eS16b25lcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQvZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L3NlY3VyaXR5LWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgJy4vY2xvdWQtYXJ0aWZhY3QtYXVnJztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Fzc2V0LW1hbmlmZXN0LWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Nsb3VkZm9ybWF0aW9uLWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL3RyZWUtY2xvdWQtYXJ0aWZhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRhZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGxhY2Vob2xkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SynthesisMessageLevel = exports.PATH_METADATA_KEY = void 0;\n/**\n * The key used when CDK path is embedded in **CloudFormation template** metadata (not cdk metadata).\n */\nexports.PATH_METADATA_KEY = 'aws:cdk:path';\nvar SynthesisMessageLevel;\n(function (SynthesisMessageLevel) {\n SynthesisMessageLevel[\"INFO\"] = \"info\";\n SynthesisMessageLevel[\"WARNING\"] = \"warning\";\n SynthesisMessageLevel[\"ERROR\"] = \"error\";\n})(SynthesisMessageLevel || (exports.SynthesisMessageLevel = SynthesisMessageLevel = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBRWhELElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsNENBQW1CLENBQUE7SUFDbkIsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFJaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFRoZSBrZXkgdXNlZCB3aGVuIENESyBwYXRoIGlzIGVtYmVkZGVkIGluICoqQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUqKiBtZXRhZGF0YSAobm90IGNkayBtZXRhZGF0YSkuXG4gKi9cbmV4cG9ydCBjb25zdCBQQVRIX01FVEFEQVRBX0tFWSA9ICdhd3M6Y2RrOnBhdGgnO1xuXG5leHBvcnQgZW51bSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwge1xuICBJTkZPID0gJ2luZm8nLFxuICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxuICBFUlJPUiA9ICdlcnJvcicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFFbnRyeVJlc3VsdCBleHRlbmRzIGN4c2NoZW1hLk1ldGFkYXRhRW50cnkge1xuICAvKipcbiAgICogVGhlIHBhdGggaW4gd2hpY2ggdGhpcyBlbnRyeSB3YXMgZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdHMgaW4gdGhlIHN0YWNrJ3MgQ29uc3RydWN0IHRyZWVcbiAqL1xuZXhwb3J0IHR5cGUgU3RhY2tNZXRhZGF0YSA9IHsgW3BhdGg6IHN0cmluZ106IGN4c2NoZW1hLk1ldGFkYXRhRW50cnlbXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXNpc01lc3NhZ2Uge1xuICByZWFkb25seSBsZXZlbDogU3ludGhlc2lzTWVzc2FnZUxldmVsO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBlbnRyeTogY3hzY2hlbWEuTWV0YWRhdGFFbnRyeTtcbn1cbiJdfQ==","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentPlaceholders = void 0;\nconst jsiiDeprecationWarnings = require(\"../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\n/**\n * Placeholders which can be used manifests\n *\n * These can occur both in the Asset Manifest as well as the general\n * Cloud Assembly manifest.\n */\nclass EnvironmentPlaceholders {\n /**\n * Replace the environment placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\n static replace(object, values) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_EnvironmentPlaceholderValues(values);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.replace);\n }\n throw error;\n }\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, values.region);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, values.accountId);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, values.partition);\n return value;\n });\n }\n /**\n * Like 'replace', but asynchronous\n */\n static async replaceAsync(object, provider) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_IEnvironmentPlaceholderProvider(provider);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.replaceAsync);\n }\n throw error;\n }\n let needRegion = false;\n let needAccountId = false;\n let needPartition = false;\n this.recurse(object, value => {\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_REGION) > 1) {\n needRegion = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_ACCOUNT) > 1) {\n needAccountId = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_PARTITION) > 1) {\n needPartition = true;\n }\n return value;\n });\n const region = needRegion ? await provider.region() : undefined;\n const accountId = needAccountId ? await provider.accountId() : undefined;\n const partition = needPartition ? await provider.partition() : undefined;\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, region ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, accountId ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, partition ?? 'WONTHAPPEN');\n return value;\n });\n }\n static recurse(value, cb) {\n if (typeof value === 'string') {\n return cb(value);\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(x => this.recurse(x, cb));\n }\n const ret = {};\n for (const [key, inner] of Object.entries(value)) {\n ret[key] = this.recurse(inner, cb);\n }\n return ret;\n }\n}\nexports.EnvironmentPlaceholders = EnvironmentPlaceholders;\n_a = JSII_RTTI_SYMBOL_1;\nEnvironmentPlaceholders[_a] = { fqn: \"@aws-cdk/cx-api.EnvironmentPlaceholders\", version: \"2.212.0\" };\n/**\n * Insert this into the destination fields to be replaced with the current region\n */\nEnvironmentPlaceholders.CURRENT_REGION = '${AWS::Region}';\n/**\n * Insert this into the destination fields to be replaced with the current account\n */\nEnvironmentPlaceholders.CURRENT_ACCOUNT = '${AWS::AccountId}';\n/**\n * Insert this into the destination fields to be replaced with the current partition\n */\nEnvironmentPlaceholders.CURRENT_PARTITION = '${AWS::Partition}';\n/**\n * A \"replace-all\" function that doesn't require us escaping a literal string to a regex\n */\nfunction replaceAll(s, search, replace) {\n return s.split(search).join(replace);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsTUFBYSx1QkFBdUI7SUFnQmxDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsTUFBb0M7Ozs7Ozs7Ozs7UUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNsQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pGLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckYsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBVyxFQUFFLFFBQXlDOzs7Ozs7Ozs7O1FBQ3JGLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQUMsQ0FBQztZQUNyRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUFDLENBQUM7WUFDekYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUFDLENBQUM7WUFDM0YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoRSxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXpFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDbEMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsY0FBYyxFQUFFLE1BQU0sSUFBSSxZQUFZLENBQUMsQ0FBQztZQUMxRixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsU0FBUyxJQUFJLFlBQVksQ0FBQyxDQUFDO1lBQzlGLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLGlCQUFpQixFQUFFLFNBQVMsSUFBSSxZQUFZLENBQUMsQ0FBQztZQUNoRyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFTyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQVUsRUFBRSxFQUF5QjtRQUMxRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQ3BELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUFDLE9BQU8sS0FBSyxDQUFDO1FBQUMsQ0FBQztRQUNsRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBRXpFLE1BQU0sR0FBRyxHQUF3QixFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ1o7O0FBcEVILDBEQXFFQzs7O0FBcEVDOztHQUVHO0FBQ29CLHNDQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFFekQ7O0dBRUc7QUFDb0IsdUNBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUU3RDs7R0FFRztBQUNvQix5Q0FBaUIsR0FBRyxtQkFBbUIsQ0FBQztBQWlHakU7O0dBRUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxDQUFTLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUQsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQbGFjZWhvbGRlcnMgd2hpY2ggY2FuIGJlIHVzZWQgbWFuaWZlc3RzXG4gKlxuICogVGhlc2UgY2FuIG9jY3VyIGJvdGggaW4gdGhlIEFzc2V0IE1hbmlmZXN0IGFzIHdlbGwgYXMgdGhlIGdlbmVyYWxcbiAqIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0LlxuICovXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMge1xuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENVUlJFTlRfUkVHSU9OID0gJyR7QVdTOjpSZWdpb259JztcblxuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgYWNjb3VudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDVVJSRU5UX0FDQ09VTlQgPSAnJHtBV1M6OkFjY291bnRJZH0nO1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgdGhpcyBpbnRvIHRoZSBkZXN0aW5hdGlvbiBmaWVsZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgY3VycmVudCBwYXJ0aXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1VSUkVOVF9QQVJUSVRJT04gPSAnJHtBV1M6OlBhcnRpdGlvbn0nO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnMgaW4gYWxsIHN0cmluZ3MgZm91bmQgaW4gYSBjb21wbGV4IG9iamVjdC5cbiAgICpcbiAgICogRHVwbGljYXRlZCBiZXR3ZWVuIGNkay1hc3NldHMgYW5kIGF3cy1jZGsgQ0xJIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIGdvb2Qgc2luZ2xlIHBsYWNlIHRvIHB1dCBpdFxuICAgKiAodGhleSdyZSBub21pbmFsbHkgaW5kZXBlbmRlbnQgdG9vbHMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZXBsYWNlKG9iamVjdDogYW55LCB2YWx1ZXM6IEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlY3Vyc2Uob2JqZWN0LCB2YWx1ZSA9PiB7XG4gICAgICB2YWx1ZSA9IHJlcGxhY2VBbGwodmFsdWUsIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfUkVHSU9OLCB2YWx1ZXMucmVnaW9uKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9BQ0NPVU5ULCB2YWx1ZXMuYWNjb3VudElkKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04sIHZhbHVlcy5wYXJ0aXRpb24pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2UgJ3JlcGxhY2UnLCBidXQgYXN5bmNocm9ub3VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlcGxhY2VBc3luYyhvYmplY3Q6IGFueSwgcHJvdmlkZXI6IElFbnZpcm9ubWVudFBsYWNlaG9sZGVyUHJvdmlkZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBuZWVkUmVnaW9uID0gZmFsc2U7XG4gICAgbGV0IG5lZWRBY2NvdW50SWQgPSBmYWxzZTtcbiAgICBsZXQgbmVlZFBhcnRpdGlvbiA9IGZhbHNlO1xuXG4gICAgdGhpcy5yZWN1cnNlKG9iamVjdCwgdmFsdWUgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04pID4gMSkgeyBuZWVkUmVnaW9uID0gdHJ1ZTsgfVxuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9BQ0NPVU5UKSA+IDEpIHsgbmVlZEFjY291bnRJZCA9IHRydWU7IH1cbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfUEFSVElUSU9OKSA+IDEpIHsgbmVlZFBhcnRpdGlvbiA9IHRydWU7IH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZ2lvbiA9IG5lZWRSZWdpb24gPyBhd2FpdCBwcm92aWRlci5yZWdpb24oKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBuZWVkQWNjb3VudElkID8gYXdhaXQgcHJvdmlkZXIuYWNjb3VudElkKCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFydGl0aW9uID0gbmVlZFBhcnRpdGlvbiA/IGF3YWl0IHByb3ZpZGVyLnBhcnRpdGlvbigpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMucmVjdXJzZShvYmplY3QsIHZhbHVlID0+IHtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04sIHJlZ2lvbiA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX0FDQ09VTlQsIGFjY291bnRJZCA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX1BBUlRJVElPTiwgcGFydGl0aW9uID8/ICdXT05USEFQUEVOJyk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWN1cnNlKHZhbHVlOiBhbnksIGNiOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7IHJldHVybiBjYih2YWx1ZSk7IH1cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkgeyByZXR1cm4gdmFsdWU7IH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHsgcmV0dXJuIHZhbHVlLm1hcCh4ID0+IHRoaXMucmVjdXJzZSh4LCBjYikpOyB9XG5cbiAgICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGlubmVyXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIHJldFtrZXldID0gdGhpcy5yZWN1cnNlKGlubmVyLCBjYik7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlcyBmb3IgdGhlIGVudmlyb25tZW50IHBsYWNlaG9sZGVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcnRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXJvbm1lbnRQbGFjZWhvbGRlclByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmVnaW9uXG4gICAqL1xuICByZWdpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIGFjY291bnRJZCgpOiBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcGFydGl0aW9uXG4gICAqL1xuICBwYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEEgXCJyZXBsYWNlLWFsbFwiIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzIGVzY2FwaW5nIGEgbGl0ZXJhbCBzdHJpbmcgdG8gYSByZWdleFxuICovXG5mdW5jdGlvbiByZXBsYWNlQWxsKHM6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZykge1xuICByZXR1cm4gcy5zcGxpdChzZWFyY2gpLmpvaW4ocmVwbGFjZSk7XG59XG4iXX0=","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _CloudAssemblyError_time;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyError = void 0;\nconst ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssemblyError');\n/**\n * A CloudAssemblyError is thrown for issues with the synthesized CloudAssembly.\n *\n * These are typically exceptions that are unexpected for end-users,\n * and should only occur during abnormal operation, e.g. when the synthesis\n * didn't fully complete.\n *\n * @internal\n */\nclass CloudAssemblyError extends Error {\n /**\n * The time the error was thrown.\n */\n get time() {\n return __classPrivateFieldGet(this, _CloudAssemblyError_time, \"f\");\n }\n get type() {\n return 'assembly';\n }\n constructor(msg) {\n super(msg);\n _CloudAssemblyError_time.set(this, void 0);\n Object.setPrototypeOf(this, CloudAssemblyError.prototype);\n Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });\n this.name = new.target.name;\n __classPrivateFieldSet(this, _CloudAssemblyError_time, new Date().toISOString(), \"f\");\n }\n}\nexports.CloudAssemblyError = CloudAssemblyError;\n_CloudAssemblyError_time = new WeakMap();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUUvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUczQzs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sdUJBQUEsSUFBSSxnQ0FBTSxDQUFDO0tBQ25CO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxVQUFVLENBQUM7S0FDbkI7SUFFRCxZQUFZLEdBQVc7UUFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBZGIsMkNBQWM7UUFnQlosTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzVCLHVCQUFBLElBQUksNEJBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsTUFBQSxDQUFDO0tBQ3ZDO0NBQ0Y7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQVNTRU1CTFlfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkQXNzZW1ibHlFcnJvcicpO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseUVycm9yIGlzIHRocm93biBmb3IgaXNzdWVzIHdpdGggdGhlIHN5bnRoZXNpemVkIENsb3VkQXNzZW1ibHkuXG4gKlxuICogVGhlc2UgYXJlIHR5cGljYWxseSBleGNlcHRpb25zIHRoYXQgYXJlIHVuZXhwZWN0ZWQgZm9yIGVuZC11c2VycyxcbiAqIGFuZCBzaG91bGQgb25seSBvY2N1ciBkdXJpbmcgYWJub3JtYWwgb3BlcmF0aW9uLCBlLmcuIHdoZW4gdGhlIHN5bnRoZXNpc1xuICogZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRBc3NlbWJseUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAjdGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZXJyb3Igd2FzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGltZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiN0aW1lO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCk6ICdhc3NlbWJseScge1xuICAgIHJldHVybiAnYXNzZW1ibHknO1xuICB9XG5cbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtc2cpO1xuXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIENsb3VkQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLm5hbWUgPSBuZXcudGFyZ2V0Lm5hbWU7XG4gICAgdGhpcy4jdGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAGIC_V2NEXT = exports.FlagType = void 0;\nexports.compareVersions = compareVersions;\nvar FlagType;\n(function (FlagType) {\n /**\n * Change the default behavior of the API\n *\n * The old behavior is still valid, and possible to achieve with source\n * code changes, but we recommend the new behavior instead.\n *\n * Also valid for changes that don't affect CloudFormation, but the CXAPI\n * contract.\n */\n FlagType[FlagType[\"ApiDefault\"] = 0] = \"ApiDefault\";\n /**\n * Address a bug in a way that requires contract breaking or has availability implications for existing infrastructure\n *\n * The old behavior is not recommended, and shouldn't have been possible in the first place.\n * We only have this flag because we can't roll out the fix to everyone\n * automatically for fear of breakage.\n */\n FlagType[FlagType[\"BugFix\"] = 1] = \"BugFix\";\n /**\n * Advertise the presence of this context option in `cdk.json`\n */\n FlagType[FlagType[\"VisibleContext\"] = 2] = \"VisibleContext\";\n /**\n * Use this type for flags that are to be removed on a set date\n */\n FlagType[FlagType[\"Temporary\"] = 3] = \"Temporary\";\n})(FlagType || (exports.FlagType = FlagType = {}));\n/**\n * The magic value that will be substituted at version bump time with the actual\n * new V2 version.\n *\n * Do not import this constant in the `features.ts` file, or the substitution\n * process won't work.\n */\nexports.MAGIC_V2NEXT = 'V2NEXT';\n/**\n * Compare two versions, returning -1, 0, or 1.\n */\nfunction compareVersions(a, b) {\n if (a === b) {\n return 0;\n }\n if (a === undefined) {\n return -1;\n }\n if (b === undefined) {\n return 1;\n }\n const as = a.split('.').map(x => parseInt(x, 10));\n const bs = b.split('.').map(x => parseInt(x, 10));\n if (a === exports.MAGIC_V2NEXT) {\n return bs[0] <= 2 ? 1 : -1;\n }\n if (b === exports.MAGIC_V2NEXT) {\n return as[0] <= 2 ? -1 : 1;\n }\n for (let i = 0; i < Math.min(as.length, bs.length); i++) {\n if (as[i] < bs[i]) {\n return -1;\n }\n if (as[i] > bs[i]) {\n return 1;\n }\n }\n return as.length - bs.length;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy1tb2RlbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZsYWctbW9kZWxpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUZBLDBDQWdCQztBQXpHRCxJQUFZLFFBOEJYO0FBOUJELFdBQVksUUFBUTtJQUNsQjs7Ozs7Ozs7T0FRRztJQUNILG1EQUFVLENBQUE7SUFFVjs7Ozs7O09BTUc7SUFDSCwyQ0FBTSxDQUFBO0lBRU47O09BRUc7SUFDSCwyREFBYyxDQUFBO0lBRWQ7O09BRUc7SUFDSCxpREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQTlCVyxRQUFRLHdCQUFSLFFBQVEsUUE4Qm5CO0FBK0NEOzs7Ozs7R0FNRztBQUNVLFFBQUEsWUFBWSxHQUFHLFFBQVEsQ0FBQztBQUVyQzs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxDQUFxQixFQUFFLENBQXFCO0lBQzFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQzFCLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLENBQUMsQ0FBQztJQUFDLENBQUM7SUFFbEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbEQsSUFBSSxDQUFDLEtBQUssb0JBQVksRUFBRSxDQUFDO1FBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsS0FBSyxvQkFBWSxFQUFFLENBQUM7UUFBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEQsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZsYWdUeXBlIHtcbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgQVBJXG4gICAqXG4gICAqIFRoZSBvbGQgYmVoYXZpb3IgaXMgc3RpbGwgdmFsaWQsIGFuZCBwb3NzaWJsZSB0byBhY2hpZXZlIHdpdGggc291cmNlXG4gICAqIGNvZGUgY2hhbmdlcywgYnV0IHdlIHJlY29tbWVuZCB0aGUgbmV3IGJlaGF2aW9yIGluc3RlYWQuXG4gICAqXG4gICAqIEFsc28gdmFsaWQgZm9yIGNoYW5nZXMgdGhhdCBkb24ndCBhZmZlY3QgQ2xvdWRGb3JtYXRpb24sIGJ1dCB0aGUgQ1hBUElcbiAgICogY29udHJhY3QuXG4gICAqL1xuICBBcGlEZWZhdWx0LFxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGEgYnVnIGluIGEgd2F5IHRoYXQgcmVxdWlyZXMgY29udHJhY3QgYnJlYWtpbmcgb3IgaGFzIGF2YWlsYWJpbGl0eSBpbXBsaWNhdGlvbnMgZm9yIGV4aXN0aW5nIGluZnJhc3RydWN0dXJlXG4gICAqXG4gICAqIFRoZSBvbGQgYmVoYXZpb3IgaXMgbm90IHJlY29tbWVuZGVkLCBhbmQgc2hvdWxkbid0IGhhdmUgYmVlbiBwb3NzaWJsZSBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAqIFdlIG9ubHkgaGF2ZSB0aGlzIGZsYWcgYmVjYXVzZSB3ZSBjYW4ndCByb2xsIG91dCB0aGUgZml4IHRvIGV2ZXJ5b25lXG4gICAqIGF1dG9tYXRpY2FsbHkgZm9yIGZlYXIgb2YgYnJlYWthZ2UuXG4gICAqL1xuICBCdWdGaXgsXG5cbiAgLyoqXG4gICAqIEFkdmVydGlzZSB0aGUgcHJlc2VuY2Ugb2YgdGhpcyBjb250ZXh0IG9wdGlvbiBpbiBgY2RrLmpzb25gXG4gICAqL1xuICBWaXNpYmxlQ29udGV4dCxcblxuICAvKipcbiAgICogVXNlIHRoaXMgdHlwZSBmb3IgZmxhZ3MgdGhhdCBhcmUgdG8gYmUgcmVtb3ZlZCBvbiBhIHNldCBkYXRlXG4gICAqL1xuICBUZW1wb3JhcnksXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhZ0luZm9CYXNlIHtcbiAgLyoqIFNpbmdsZS1saW5lIGRlc2NyaXB0aW9uIGZvciB0aGUgZmxhZyAqL1xuICByZWFkb25seSBzdW1tYXJ5OiBzdHJpbmc7XG4gIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhlIGZsYWcgKE1hcmtkb3duKSAqL1xuICByZWFkb25seSBkZXRhaWxzTWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFZlcnNpb24gbnVtYmVyIHRoZSBmbGFnIHdhcyBpbnRyb2R1Y2VkIGluIGVhY2ggdmVyc2lvbiBsaW5lLlxuICAgKlxuICAgKiBgdW5kZWZpbmVkYCBtZWFucyBmbGFnIGlzIG5vdCBjb25maWd1cmFibGUgaW4gdGhhdCBsaW5lOyBidXQgaWZcbiAgICogYHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlYCBpcyBzZXQgZm9yIHRoYXQgbGluZSwgd2Ugd2lsbCBkb2N1bWVudCB0aGUgZGVmYXVsdFxuICAgKiBiZWhhdmlvciAoZXZlbiB0aG91Z2ggaXQncyBub3QgY29uZmlndXJhYmxlKS5cbiAgICovXG4gIHJlYWRvbmx5IGludHJvZHVjZWRJbjogeyB2MT86IHN0cmluZzsgdjI/OiBzdHJpbmcgfTtcbiAgLyoqIFdoYXQgeW91IHdvdWxkIGxpa2UgbmV3IHVzZXJzIHRvIHNldCB0aGlzIGZsYWcgdG8gKGRlZmF1bHQgaW4gbmV3IHByb2plY3RzKSAqL1xuICByZWFkb25seSByZWNvbW1lbmRlZFZhbHVlOiBhbnk7XG4gIC8qKlxuICAgKiBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIENMSSBsaWJyYXJ5IHdpbGwgYmVoYXZlIGFzIGlmIHRoZSBmbGFnIHdhcyBzZXQgdG8gPHRoaXM+LlxuICAgKlxuICAgKiBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgd2Ugd2lsbCBhc3N1bWUgeW91IG1lYW50IGBmYWxzZWAsIGFuZCB0aGUgYHJlY29tbWVuZGVkVmFsdWVgIGlzIGB0cnVlYC5cbiAgICpcbiAgICogVGhpcyB2YWx1ZSBpcyBtb3N0IHVzZWZ1bCBmb3IgZmxhZ3MgdGhhdCBhbGxvdyBvcHRpbmcgb3V0IG9mIHVuZGVzaXJhYmxlIGJlaGF2aW9yLiBUbyBhdm9pZCBoYXZpbmdcbiAgICogdG8gd29yZCBvdXIgZmxhZyBuYW1lIGxpa2UgYHNraXBVbmRlc2lyYWJsZUJlaGF2aW9yYCBhbmQgcGVvcGxlIGhhdmluZyB0byBkbyBib29sZWFuIGd5bW5hc3RpY3MgaW5cbiAgICogdGhlaXIgaGVhZCwgd2Ugd2lsbCBuYW1lIHRoZSBmbGFnIGBkb1VuZGVzaXJhYmxlQmVoYXZpb3JgLCBzZXRcbiAgICogYHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB0cnVlYCwgYW5kIGByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZWAuXG4gICAqXG4gICAqIEFnYWluOiB0aGUgdmFsdWUgeW91IHB1dCBoZXJlIHNob3VsZCBkZXNjcmliZSB3aGF0ZXZlciB2YWx1ZSBnZXRzIHVzIHRoZVxuICAgKiBsZWdhY3kgYmVoYXZpb3IsIGZyb20gYmVmb3JlIHRoaXMgZmxhZyB3YXMgaW50cm9kdWNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlPzogeyB2MT86IGFueTsgdjI/OiBhbnkgfTtcbn1cblxuLyoqIEZsYWcgaW5mb3JtYXRpb24sIGFkZGluZyByZXF1aXJlZCBmaWVsZHMgaWYgcHJlc2VudCAqL1xuZXhwb3J0IHR5cGUgRmxhZ0luZm8gPSBGbGFnSW5mb0Jhc2UgJiAoXG4gIHwgeyByZWFkb25seSB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0O1xuXG4gICAgLyoqIERlc2NyaWJlIGhvdyB0byB1c2UgdGhlIEFQSSB0byBhY2hpZXZlIHByZS1mbGFnIGJlaGF2aW9yLCBpZiB0aGUgZmxhZyBpcyBzZXQgKE1hcmtkb3duKSAqL1xuICAgIHJlYWRvbmx5IGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogc3RyaW5nOyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiBGbGFnVHlwZS5CdWdGaXg7XG4gICAgLyoqIERlc2NyaWJlIGhvdyB0byBkZWFsIHdpdGggdGhlIGNoYW5nZSBpZiB0aGUgZmxhZyBpcyBzZXQgKE1hcmtkb3duKSAqL1xuICAgIHJlYWRvbmx5IGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZD86IHN0cmluZzsgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogRmxhZ1R5cGUuVmlzaWJsZUNvbnRleHQgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogRmxhZ1R5cGUuVGVtcG9yYXJ5O1xuICAgIHJlYWRvbmx5IGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZD86IHN0cmluZzsgfVxuKTtcblxuLyoqXG4gKiBUaGUgbWFnaWMgdmFsdWUgdGhhdCB3aWxsIGJlIHN1YnN0aXR1dGVkIGF0IHZlcnNpb24gYnVtcCB0aW1lIHdpdGggdGhlIGFjdHVhbFxuICogbmV3IFYyIHZlcnNpb24uXG4gKlxuICogRG8gbm90IGltcG9ydCB0aGlzIGNvbnN0YW50IGluIHRoZSBgZmVhdHVyZXMudHNgIGZpbGUsIG9yIHRoZSBzdWJzdGl0dXRpb25cbiAqIHByb2Nlc3Mgd29uJ3Qgd29yay5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BR0lDX1YyTkVYVCA9ICdWMk5FWFQnO1xuXG4vKipcbiAqIENvbXBhcmUgdHdvIHZlcnNpb25zLCByZXR1cm5pbmcgLTEsIDAsIG9yIDEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlVmVyc2lvbnMoYTogc3RyaW5nIHwgdW5kZWZpbmVkLCBiOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICBpZiAoYSA9PT0gYikgeyByZXR1cm4gMDsgfVxuICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiAtMTsgfVxuICBpZiAoYiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiAxOyB9XG5cbiAgY29uc3QgYXMgPSBhLnNwbGl0KCcuJykubWFwKHggPT4gcGFyc2VJbnQoeCwgMTApKTtcbiAgY29uc3QgYnMgPSBiLnNwbGl0KCcuJykubWFwKHggPT4gcGFyc2VJbnQoeCwgMTApKTtcblxuICBpZiAoYSA9PT0gTUFHSUNfVjJORVhUKSB7IHJldHVybiBic1swXSA8PSAyID8gMSA6IC0xOyB9XG4gIGlmIChiID09PSBNQUdJQ19WMk5FWFQpIHsgcmV0dXJuIGFzWzBdIDw9IDIgPyAtMSA6IDE7IH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKGFzLmxlbmd0aCwgYnMubGVuZ3RoKTsgaSsrKSB7XG4gICAgaWYgKGFzW2ldIDwgYnNbaV0pIHsgcmV0dXJuIC0xOyB9XG4gICAgaWYgKGFzW2ldID4gYnNbaV0pIHsgcmV0dXJuIDE7IH1cbiAgfVxuICByZXR1cm4gYXMubGVuZ3RoIC0gYnMubGVuZ3RoO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.topologicalSort = topologicalSort;\nconst error_1 = require(\"./private/error\");\n/**\n * Return a topological sort of all elements of xs, according to the given dependency functions\n *\n * Dependencies outside the referenced set are ignored.\n *\n * Not a stable sort, but in order to keep the order as stable as possible, we'll sort by key\n * among elements of equal precedence.\n */\nfunction topologicalSort(xs, keyFn, depFn) {\n const remaining = new Map();\n for (const element of xs) {\n const key = keyFn(element);\n remaining.set(key, { key, element, dependencies: depFn(element) });\n }\n const ret = new Array();\n while (remaining.size > 0) {\n // All elements with no more deps in the set can be ordered\n const selectable = Array.from(remaining.values()).filter(e => e.dependencies.every(d => !remaining.has(d)));\n selectable.sort((a, b) => a.key < b.key ? -1 : b.key < a.key ? 1 : 0);\n for (const selected of selectable) {\n ret.push(selected.element);\n remaining.delete(selected.key);\n }\n // If we didn't make any progress, we got stuck\n if (selectable.length === 0) {\n throw new error_1.CloudAssemblyError(`Could not determine ordering between: ${Array.from(remaining.keys()).join(', ')}`);\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wb3NvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b3Bvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLDBDQTBCQztBQXZDRCwyQ0FBcUQ7QUFLckQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBSSxFQUFlLEVBQUUsS0FBaUIsRUFBRSxLQUFpQjtJQUN0RixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUNwRCxLQUFLLE1BQU0sT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsT0FBTyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLDJEQUEyRDtRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELCtDQUErQztRQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLHlDQUF5QyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL3ByaXZhdGUvZXJyb3InO1xuXG5leHBvcnQgdHlwZSBLZXlGdW5jPFQ+ID0gKHg6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIERlcEZ1bmM8VD4gPSAoeDogVCkgPT4gc3RyaW5nW107XG5cbi8qKlxuICogUmV0dXJuIGEgdG9wb2xvZ2ljYWwgc29ydCBvZiBhbGwgZWxlbWVudHMgb2YgeHMsIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZGVwZW5kZW5jeSBmdW5jdGlvbnNcbiAqXG4gKiBEZXBlbmRlbmNpZXMgb3V0c2lkZSB0aGUgcmVmZXJlbmNlZCBzZXQgYXJlIGlnbm9yZWQuXG4gKlxuICogTm90IGEgc3RhYmxlIHNvcnQsIGJ1dCBpbiBvcmRlciB0byBrZWVwIHRoZSBvcmRlciBhcyBzdGFibGUgYXMgcG9zc2libGUsIHdlJ2xsIHNvcnQgYnkga2V5XG4gKiBhbW9uZyBlbGVtZW50cyBvZiBlcXVhbCBwcmVjZWRlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9wb2xvZ2ljYWxTb3J0PFQ+KHhzOiBJdGVyYWJsZTxUPiwga2V5Rm46IEtleUZ1bmM8VD4sIGRlcEZuOiBEZXBGdW5jPFQ+KTogVFtdIHtcbiAgY29uc3QgcmVtYWluaW5nID0gbmV3IE1hcDxzdHJpbmcsIFRvcG9FbGVtZW50PFQ+PigpO1xuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgeHMpIHtcbiAgICBjb25zdCBrZXkgPSBrZXlGbihlbGVtZW50KTtcbiAgICByZW1haW5pbmcuc2V0KGtleSwgeyBrZXksIGVsZW1lbnQsIGRlcGVuZGVuY2llczogZGVwRm4oZWxlbWVudCkgfSk7XG4gIH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VD4oKTtcbiAgd2hpbGUgKHJlbWFpbmluZy5zaXplID4gMCkge1xuICAgIC8vIEFsbCBlbGVtZW50cyB3aXRoIG5vIG1vcmUgZGVwcyBpbiB0aGUgc2V0IGNhbiBiZSBvcmRlcmVkXG4gICAgY29uc3Qgc2VsZWN0YWJsZSA9IEFycmF5LmZyb20ocmVtYWluaW5nLnZhbHVlcygpKS5maWx0ZXIoZSA9PiBlLmRlcGVuZGVuY2llcy5ldmVyeShkID0+ICFyZW1haW5pbmcuaGFzKGQpKSk7XG5cbiAgICBzZWxlY3RhYmxlLnNvcnQoKGEsIGIpID0+IGEua2V5IDwgYi5rZXkgPyAtMSA6IGIua2V5IDwgYS5rZXkgPyAxIDogMCk7XG5cbiAgICBmb3IgKGNvbnN0IHNlbGVjdGVkIG9mIHNlbGVjdGFibGUpIHtcbiAgICAgIHJldC5wdXNoKHNlbGVjdGVkLmVsZW1lbnQpO1xuICAgICAgcmVtYWluaW5nLmRlbGV0ZShzZWxlY3RlZC5rZXkpO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGRpZG4ndCBtYWtlIGFueSBwcm9ncmVzcywgd2UgZ290IHN0dWNrXG4gICAgaWYgKHNlbGVjdGFibGUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBDb3VsZCBub3QgZGV0ZXJtaW5lIG9yZGVyaW5nIGJldHdlZW46ICR7QXJyYXkuZnJvbShyZW1haW5pbmcua2V5cygpKS5qb2luKCcsICcpfWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmludGVyZmFjZSBUb3BvRWxlbWVudDxUPiB7XG4gIGtleTogc3RyaW5nO1xuICBkZXBlbmRlbmNpZXM6IHN0cmluZ1tdO1xuICBlbGVtZW50OiBUO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types/database\"), exports);\n__exportStar(require(\"./types/resource\"), exports);\n__exportStar(require(\"./types/augmentations\"), exports);\n__exportStar(require(\"./types/event\"), exports);\n__exportStar(require(\"./types/metrics\"), exports);\n__exportStar(require(\"./types/diff\"), exports);\n__exportStar(require(\"./types/common\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyxtREFBaUM7QUFDakMsd0RBQXNDO0FBQ3RDLGdEQUE4QjtBQUM5QixrREFBZ0M7QUFDaEMsK0NBQTZCO0FBQzdCLGlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMvZGF0YWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9yZXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2F1Z21lbnRhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL21ldHJpY3MnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvY29tbW9uJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVnbWVudGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9hdWdtZW50YXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBdWdtZW50YXRpb25zIGZvciBhIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGVcbiAqXG4gKiBBdWdtZW50YXRpb25zIGFyZSBhIGRlcHJlY2F0ZWQgbWVjaGFuaXNtIGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgbWV0cmljc1xuICogZnVuY3Rpb25zIGZvciBjZXJ0YWluIHJlc291cmNlcywgdXRpbGl6aW5nIFR5cGVTY3JpcHQgbWl4aW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQXVnbWVudGF0aW9uIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIE1ldHJpYyBhdWdtZW50YXRpb25zIGZvciB0aGlzIHJlc291cmNlIHR5cGVcbiAgICovXG4gIG1ldHJpY3M/OiBSZXNvdXJjZU1ldHJpY0F1Z21lbnRhdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGNsYXNzIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGtlYmFiIGNhc2VkIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWUgKyAnLWJhc2UnXG4gICAqL1xuICBiYXNlQ2xhc3NGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgbmFtZSArICdCYXNlJ1xuICAgKi9cbiAgYmFzZUNsYXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBpbnRlcmZhY2UgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzYW1lIGFzIGBgY2xhc3NGaWxlYGAuXG4gICAqL1xuICBpbnRlcmZhY2VGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdJJyArIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWVcbiAgICovXG4gIGludGVyZmFjZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSXNBdWdtZW50ZWRSZXNvdXJjZSA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgUmVzb3VyY2VBdWdtZW50YXRpb24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljQXVnbWVudGF0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG9mIG1ldHJpY3MgZm9yIHRoaXMgc2VydmljZVxuICAgKi9cbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSByZXNvdXJjZSBjbGFzcyB0aGF0IHByb3ZpZGUgdmFsdWVzIGZvciB0aGUgZGltZW5zaW9uc1xuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYHsgUXVldWVOYW1lOiAncXVldWVOYW1lJyB9YCBzYXlzIHRoYXQgdGhlIG1ldHJpYyBoYXMgYSBgUXVldWVOYW1lYFxuICAgKiBkaW1lbnNpb24sIGZvciB3aGljaCB0aGUgdmFsdWUgY2FuIGJlIG9idGFpbmVkIGJ5IHJlYWRpbmcgYHRoaXMucXVldWVOYW1lYC5cbiAgICovXG4gIGRpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWNzIGZvciB0aGlzIHJlc291cmNlXG4gICAqL1xuICBtZXRyaWNzOiBSZXNvdXJjZU1ldHJpY1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljIHtcbiAgLyoqXG4gICAqIFVwcGVyY2FzZS1maXJzdCBtZXRyaWMgbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudGF0aW9uIGxpbmVcbiAgICovXG4gIGRvY3VtZW50YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGV2ZW4gY291bnQgKDEgZ2V0cyBlbWl0dGVkIGV2ZXJ5IHRpbWUgc29tZXRoaW5nIG9jY3VycylcbiAgICpcbiAgICogQGRlZmF1bHQgTWV0cmljVHlwZS5BdHRyaWJcbiAgICovXG4gIHR5cGU/OiBNZXRyaWNUeXBlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRyaWNUeXBlID1cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgbWVhc3VyaW5nIGEgYXR0cmlidXRlIG9mIHRoZSBldmVudC5cbiAgICpcbiAgICogVHlwaWNhbCBleGFtcGxlcyBvZiB0aGlzIHdvdWxkIGJlIGR1cmF0aW9uLCBvciByZXF1ZXN0IHNpemUsIG9yIHNpbWlsYXIuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGFnZ3JlZ2F0ZSBmb3IgdGhpcyB0eXBlIG9mIGV2ZW50IGlzIFwiQXZnXCIuXG4gICAqL1xuICB8ICdhdHRyaWInXG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgYW5kIHRoZSB2YWx1ZSBpcyBhbHdheXMgYDFgLlxuICAgKlxuICAgKiBPbmx5IFwiU3VtXCIgaXMgYSBtZWFuaW5nZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljOyBhbGwgb3RoZXJcbiAgICogYWdncmVnYXRpb25zIHdpbGwgb25seSBldmVyIHByb2R1Y2UgdGhlIHZhbHVlIGAxYC5cbiAgICovXG4gIHwgJ2NvdW50J1xuXG4gIC8qKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBlbWl0dGVkIHBlcmlvZGljYWxseSwgcmVwcmVzZW50aW5nIGEgc3lzdGVtIHByb3BlcnR5LlxuICAgKlxuICAgKiBUaGUgbWV0cmljIG1lYXN1cmVzIHNvbWUgZ2xvYmFsIGV2ZXItY2hhbmdpbmcgcHJvcGVydHksIGFuZCBkb2VzIG5vdFxuICAgKiBtZWFzdXJlIGV2ZW50cy4gVGhlIG1vc3QgdXNlZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljIGlzIFwiTWF4XCIuXG4gICAqL1xuICB8ICdnYXVnZSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5LCBSZWZlcmVuY2UgfSBmcm9tICdAY2RrbGFicy90c2tiJztcblxuZXhwb3J0IHR5cGUgR2VuZXJpY1Byb3BlcnR5VHlwZTxUIGV4dGVuZHMgRW50aXR5PiA9XG4gIHwgUHJpbWl0aXZlVHlwZVxuICB8IEdlbmVyaWNEZWZpbml0aW9uUmVmZXJlbmNlPFQ+XG4gIHwgQnVpbHRpblRhZ1R5cGVcbiAgfCBBcnJheVR5cGU8R2VuZXJpY1Byb3BlcnR5VHlwZTxUPj5cbiAgfCBNYXBUeXBlPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+XG4gIHwgVHlwZVVuaW9uPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+O1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVUeXBlID1cbiAgfCBTdHJpbmdUeXBlXG4gIHwgTnVtYmVyVHlwZVxuICB8IEludGVnZXJUeXBlXG4gIHwgQm9vbGVhblR5cGVcbiAgfCBKc29uVHlwZVxuICB8IERhdGVUaW1lVHlwZVxuICB8IE51bGxUeXBlXG4gIHwgQnVpbHRpblRhZ1R5cGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdzdHJpbmcnO1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogc3RyaW5nW107XG59XG4vKipcbiAqIFRoZSBcImxlZ2FjeVwiIHRhZyB0eXBlICh1c2VkIGluIHRoZSBvbGQgcmVzb3VyY2Ugc3BlYylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsdGluVGFnVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICd0YWcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlclR5cGUge1xuICByZWFkb25seSB0eXBlOiAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdpbnRlZ2VyJztcbiAgcmVhZG9ubHkgYWxsb3dlZFZhbHVlcz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2Jvb2xlYW4nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2pzb24nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdkYXRlLXRpbWUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bGxUeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ251bGwnO1xufVxuXG4vKipcbiAqXG4gKiBUIGlzIHRoZSBlbnRpdHkgdHlwZSBmb3IgY29tcG91bmQgb2JqZWN0cy5cbiAqXG4gKiBGb3IgZXhhbXBsZTogVHlwZURlZmluaXRpb24sIEV2ZW50VHlwZURlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY0RlZmluaXRpb25SZWZlcmVuY2U8VCBleHRlbmRzIEVudGl0eT4ge1xuICByZWFkb25seSB0eXBlOiAncmVmJztcbiAgcmVhZG9ubHkgcmVmZXJlbmNlOiBSZWZlcmVuY2U8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2FycmF5JztcbiAgcmVhZG9ubHkgZWxlbWVudDogRTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ21hcCc7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVVuaW9uPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ3VuaW9uJztcbiAgcmVhZG9ubHkgdHlwZXM6IEVbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichSpecDatabase = void 0;\nexports.emptyDatabase = emptyDatabase;\nexports.loadDatabase = loadDatabase;\nconst fs_1 = require(\"fs\");\nconst zlib_1 = require(\"zlib\");\nconst tskb_1 = require(\"@cdklabs/tskb\");\nfunction emptyDatabase() {\n return new tskb_1.Database({\n resource: (0, tskb_1.entityCollection)().index({\n cloudFormationType: (0, tskb_1.fieldIndex)('cloudFormationType', tskb_1.stringCmp),\n }),\n region: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n service: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n cloudFormationNamespace: (0, tskb_1.fieldIndex)('cloudFormationNamespace', tskb_1.stringCmp),\n }),\n eventTypeDefinition: (0, tskb_1.entityCollection)(),\n typeDefinition: (0, tskb_1.entityCollection)(),\n augmentations: (0, tskb_1.entityCollection)(),\n metric: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n namespace: (0, tskb_1.fieldIndex)('namespace', tskb_1.stringCmp),\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n dimensionSet: (0, tskb_1.entityCollection)().index({\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n event: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n }, (r) => ({\n hasResource: r.relationship('service', 'resource'),\n regionHasResource: r.relationship('region', 'resource'),\n regionHasService: r.relationship('region', 'service'),\n usesType: r.relationship('resource', 'typeDefinition'),\n isAugmented: r.relationship('resource', 'augmentations'),\n usesDimensionSet: r.relationship('metric', 'dimensionSet'),\n resourceHasMetric: r.relationship('resource', 'metric'),\n serviceHasMetric: r.relationship('service', 'metric'),\n resourceHasDimensionSet: r.relationship('resource', 'dimensionSet'),\n serviceHasDimensionSet: r.relationship('service', 'dimensionSet'),\n resourceHasEvent: r.relationship('resource', 'event'),\n serviceHasEvent: r.relationship('service', 'event'),\n eventUsesType: r.relationship('event', 'eventTypeDefinition'),\n }));\n}\nasync function loadDatabase(pathToDb) {\n const db = emptyDatabase();\n const contents = await fs_1.promises.readFile(pathToDb);\n const json = pathToDb.endsWith('.gz') ? (0, zlib_1.gunzipSync)(contents).toString('utf-8') : contents.toString('utf-8');\n db.load(JSON.parse(json));\n return db;\n}\n/**\n * Helpers for working with a SpecDatabase\n */\nclass RichSpecDatabase {\n constructor(db) {\n this.db = db;\n }\n /**\n * Find all resources of a given type\n */\n resourceByType(cfnType, operation = 'resourceByType') {\n const res = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType);\n if (res.length === 0) {\n throw new Error(`${operation}: no such resource: ${cfnType}`);\n }\n return res[0];\n }\n /**\n * All type definitions used by a certain resource\n */\n resourceTypeDefs(cfnType) {\n const resource = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType).only();\n return this.db.follow('usesType', resource).map((x) => x.entity);\n }\n /**\n * Find a type definition from a given property type\n */\n tryFindDef(type) {\n return type.type === 'ref' ? this.db.get('typeDefinition', type.reference.$ref) : undefined;\n }\n}\nexports.RichSpecDatabase = RichSpecDatabase;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLHNDQTRDQztBQUVELG9DQU1DO0FBOUVELDJCQUFvQztBQUNwQywrQkFBa0M7QUFDbEMsd0NBQWtGO0FBd0JsRixTQUFnQixhQUFhO0lBQzNCLE9BQU8sSUFBSSxlQUFRLENBQ2pCO1FBQ0UsUUFBUSxFQUFFLElBQUEsdUJBQWdCLEdBQVksQ0FBQyxLQUFLLENBQUM7WUFDM0Msa0JBQWtCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLG9CQUFvQixFQUFFLGdCQUFTLENBQUM7U0FDaEUsQ0FBQztRQUNGLE1BQU0sRUFBRSxJQUFBLHVCQUFnQixHQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7U0FDcEMsQ0FBQztRQUNGLE9BQU8sRUFBRSxJQUFBLHVCQUFnQixHQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3pDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7WUFDbkMsdUJBQXVCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLHlCQUF5QixFQUFFLGdCQUFTLENBQUM7U0FDMUUsQ0FBQztRQUNGLG1CQUFtQixFQUFFLElBQUEsdUJBQWdCLEdBQXVCO1FBQzVELGNBQWMsRUFBRSxJQUFBLHVCQUFnQixHQUFrQjtRQUNsRCxhQUFhLEVBQUUsSUFBQSx1QkFBZ0IsR0FBd0I7UUFDdkQsTUFBTSxFQUFFLElBQUEsdUJBQWdCLEdBQVUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUEsaUJBQVUsRUFBQyxNQUFNLEVBQUUsZ0JBQVMsQ0FBQztZQUNuQyxTQUFTLEVBQUUsSUFBQSxpQkFBVSxFQUFDLFdBQVcsRUFBRSxnQkFBUyxDQUFDO1lBQzdDLFFBQVEsRUFBRSxJQUFBLGlC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LHVCQUF1QixPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLElBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM5RixDQUFDO0NBQ0Y7QUE1QkQsNENBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBndW56aXBTeW5jIH0gZnJvbSAnemxpYic7XG5pbXBvcnQgeyBEYXRhYmFzZSwgZW50aXR5Q29sbGVjdGlvbiwgZmllbGRJbmRleCwgc3RyaW5nQ21wIH0gZnJvbSAnQGNka2xhYnMvdHNrYic7XG5pbXBvcnQgeyBJc0F1Z21lbnRlZFJlc291cmNlLCBSZXNvdXJjZUF1Z21lbnRhdGlvbiB9IGZyb20gJy4vYXVnbWVudGF0aW9ucyc7XG5pbXBvcnQgeyBSZXNvdXJjZUhhc0V2ZW50LCBFdmVudCwgRXZlbnRVc2VzVHlwZSwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgc2VydmljZUhhc0V2ZW50IH0gZnJvbSAnLi9ldmVudCc7XG5pbXBvcnQge1xuICBEaW1lbnNpb25TZXQsXG4gIE1ldHJpYyxcbiAgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQsXG4gIFNlcnZpY2VIYXNEaW1lbnNpb25TZXQsXG4gIFVzZXNEaW1lbnNpb25TZXQsXG4gIFJlc291cmNlSGFzTWV0cmljLFxuICBTZXJ2aWNlSGFzTWV0cmljLFxufSBmcm9tICcuL21ldHJpY3MnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFNlcnZpY2UsXG4gIFR5cGVEZWZpbml0aW9uLFxuICBQcm9wZXJ0eVR5cGUsXG4gIFJlZ2lvbixcbiAgSGFzUmVzb3VyY2UsXG4gIFJlZ2lvbkhhc1Jlc291cmNlLFxuICBSZWdpb25IYXNTZXJ2aWNlLFxuICBVc2VzVHlwZSxcbn0gZnJvbSAnLi9yZXNvdXJjZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eURhdGFiYXNlKCkge1xuICByZXR1cm4gbmV3IERhdGFiYXNlKFxuICAgIHtcbiAgICAgIHJlc291cmNlOiBlbnRpdHlDb2xsZWN0aW9uPFJlc291cmNlPigpLmluZGV4KHtcbiAgICAgICAgY2xvdWRGb3JtYXRpb25UeXBlOiBmaWVsZEluZGV4KCdjbG91ZEZvcm1hdGlvblR5cGUnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICByZWdpb246IGVudGl0eUNvbGxlY3Rpb248UmVnaW9uPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIHNlcnZpY2U6IGVudGl0eUNvbGxlY3Rpb248U2VydmljZT4oKS5pbmRleCh7XG4gICAgICAgIG5hbWU6IGZpZWxkSW5kZXgoJ25hbWUnLCBzdHJpbmdDbXApLFxuICAgICAgICBjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZTogZmllbGRJbmRleCgnY2xvdWRGb3JtYXRpb25OYW1lc3BhY2UnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICBldmVudFR5cGVEZWZpbml0aW9uOiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50VHlwZURlZmluaXRpb24+KCksXG4gICAgICB0eXBlRGVmaW5pdGlvbjogZW50aXR5Q29sbGVjdGlvbjxUeXBlRGVmaW5pdGlvbj4oKSxcbiAgICAgIGF1Z21lbnRhdGlvbnM6IGVudGl0eUNvbGxlY3Rpb248UmVzb3VyY2VBdWdtZW50YXRpb24+KCksXG4gICAgICBtZXRyaWM6IGVudGl0eUNvbGxlY3Rpb248TWV0cmljPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICAgIG5hbWVzcGFjZTogZmllbGRJbmRleCgnbmFtZXNwYWNlJywgc3RyaW5nQ21wKSxcbiAgICAgICAgZGVkdXBLZXk6IGZpZWxkSW5kZXgoJ2RlZHVwS2V5Jywgc3RyaW5nQ21wKSxcbiAgICAgIH0pLFxuICAgICAgZGltZW5zaW9uU2V0OiBlbnRpdHlDb2xsZWN0aW9uPERpbWVuc2lvblNldD4oKS5pbmRleCh7XG4gICAgICAgIGRlZHVwS2V5OiBmaWVsZEluZGV4KCdkZWR1cEtleScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIGV2ZW50OiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50PigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICB9LFxuICAgIChyKSA9PiAoe1xuICAgICAgaGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPEhhc1Jlc291cmNlPignc2VydmljZScsICdyZXNvdXJjZScpLFxuICAgICAgcmVnaW9uSGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPFJlZ2lvbkhhc1Jlc291cmNlPigncmVnaW9uJywgJ3Jlc291cmNlJyksXG4gICAgICByZWdpb25IYXNTZXJ2aWNlOiByLnJlbGF0aW9uc2hpcDxSZWdpb25IYXNTZXJ2aWNlPigncmVnaW9uJywgJ3NlcnZpY2UnKSxcbiAgICAgIHVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxVc2VzVHlwZT4oJ3Jlc291cmNlJywgJ3R5cGVEZWZpbml0aW9uJyksXG4gICAgICBpc0F1Z21lbnRlZDogci5yZWxhdGlvbnNoaXA8SXNBdWdtZW50ZWRSZXNvdXJjZT4oJ3Jlc291cmNlJywgJ2F1Z21lbnRhdGlvbnMnKSxcbiAgICAgIHVzZXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFVzZXNEaW1lbnNpb25TZXQ+KCdtZXRyaWMnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICByZXNvdXJjZUhhc01ldHJpYzogci5yZWxhdGlvbnNoaXA8UmVzb3VyY2VIYXNNZXRyaWM+KCdyZXNvdXJjZScsICdtZXRyaWMnKSxcbiAgICAgIHNlcnZpY2VIYXNNZXRyaWM6IHIucmVsYXRpb25zaGlwPFNlcnZpY2VIYXNNZXRyaWM+KCdzZXJ2aWNlJywgJ21ldHJpYycpLFxuICAgICAgcmVzb3VyY2VIYXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRGltZW5zaW9uU2V0PigncmVzb3VyY2UnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICBzZXJ2aWNlSGFzRGltZW5zaW9uU2V0OiByLnJlbGF0aW9uc2hpcDxTZXJ2aWNlSGFzRGltZW5zaW9uU2V0Pignc2VydmljZScsICdkaW1lbnNpb25TZXQnKSxcbiAgICAgIHJlc291cmNlSGFzRXZlbnQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRXZlbnQ+KCdyZXNvdXJjZScsICdldmVudCcpLFxuICAgICAgc2VydmljZUhhc0V2ZW50OiByLnJlbGF0aW9uc2hpcDxzZXJ2aWNlSGFzRXZlbnQ+KCdzZXJ2aWNlJywgJ2V2ZW50JyksXG4gICAgICBldmVudFVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxFdmVudFVzZXNUeXBlPignZXZlbnQnLCAnZXZlbnRUeXBlRGVmaW5pdGlvbicpLFxuICAgIH0pLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZERhdGFiYXNlKHBhdGhUb0RiOiBzdHJpbmcpIHtcbiAgY29uc3QgZGIgPSBlbXB0eURhdGFiYXNlKCk7XG4gIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aFRvRGIpO1xuICBjb25zdCBqc29uID0gcGF0aFRvRGIuZW5kc1dpdGgoJy5neicpID8gZ3VuemlwU3luYyhjb250ZW50cykudG9TdHJpbmcoJ3V0Zi04JykgOiBjb250ZW50cy50b1N0cmluZygndXRmLTgnKTtcbiAgZGIubG9hZChKU09OLnBhcnNlKGpzb24pKTtcbiAgcmV0dXJuIGRiO1xufVxuXG5leHBvcnQgdHlwZSBTcGVjRGF0YWJhc2UgPSBSZXR1cm5UeXBlPHR5cGVvZiBlbXB0eURhdGFiYXNlPjtcblxuLyoqXG4gKiBIZWxwZXJzIGZvciB3b3JraW5nIHdpdGggYSBTcGVjRGF0YWJhc2VcbiAqL1xuZXhwb3J0IGNsYXNzIFJpY2hTcGVjRGF0YWJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRiOiBTcGVjRGF0YWJhc2UpIHt9XG5cbiAgLyoqXG4gICAqIEZpbmQgYWxsIHJlc291cmNlcyBvZiBhIGdpdmVuIHR5cGVcbiAgICovXG4gIHB1YmxpYyByZXNvdXJjZUJ5VHlwZShjZm5UeXBlOiBzdHJpbmcsIG9wZXJhdGlvbiA9ICdyZXNvdXJjZUJ5VHlwZScpOiBSZXNvdXJjZSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5kYi5sb29rdXAoJ3Jlc291cmNlJywgJ2Nsb3VkRm9ybWF0aW9uVHlwZScsICdlcXVhbHMnLCBjZm5UeXBlKTtcbiAgICBpZiAocmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29wZXJhdGlvbn06IG5vIHN1Y2ggcmVzb3VyY2U6ICR7Y2ZuVHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgdHlwZSBkZWZpbml0aW9ucyB1c2VkIGJ5IGEgY2VydGFpbiByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlc291cmNlVHlwZURlZnMoY2ZuVHlwZTogc3RyaW5nKTogcmVhZG9ubHkgVHlwZURlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLmRiLmxvb2t1cCgncmVzb3VyY2UnLCAnY2xvdWRGb3JtYXRpb25UeXBlJywgJ2VxdWFscycsIGNmblR5cGUpLm9ubHkoKTtcbiAgICByZXR1cm4gdGhpcy5kYi5mb2xsb3coJ3VzZXNUeXBlJywgcmVzb3VyY2UpLm1hcCgoeCkgPT4geC5lbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSB0eXBlIGRlZmluaXRpb24gZnJvbSBhIGdpdmVuIHByb3BlcnR5IHR5cGVcbiAgICovXG4gIHB1YmxpYyB0cnlGaW5kRGVmKHR5cGU6IFByb3BlcnR5VHlwZSk6IFR5cGVEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdHlwZS50eXBlID09PSAncmVmJyA/IHRoaXMuZGIuZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHR5cGUucmVmZXJlbmNlLiRyZWYpIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudCwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgRXZlbnRQcm9wZXJ0eSB9IGZyb20gJy4vZXZlbnQnO1xuaW1wb3J0IHsgRGltZW5zaW9uLCBEaW1lbnNpb25TZXQsIE1ldHJpYyB9IGZyb20gJy4vbWV0cmljcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIFByb3BlcnR5LCBSZXNvdXJjZSwgU2VydmljZSwgVHlwZURlZmluaXRpb24gfSBmcm9tICcuL3Jlc291cmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGVjRGF0YWJhc2VEaWZmIHtcbiAgc2VydmljZXM6IE1hcERpZmY8U2VydmljZSwgVXBkYXRlZFNlcnZpY2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3REaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogRVtdO1xuICByZWFkb25seSByZW1vdmVkPzogRVtdO1xuICByZWFkb25seSB1cGRhdGVkPzogRURbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBEaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogUmVjb3JkPHN0cmluZywgRT47XG4gIHJlYWRvbmx5IHJlbW92ZWQ/OiBSZWNvcmQ8c3RyaW5nLCBFPjtcbiAgcmVhZG9ubHkgdXBkYXRlZD86IFJlY29yZDxzdHJpbmcsIEVEPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkU2VydmljZSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPFNlcnZpY2VbJ25hbWUnXT47XG4gIHJlYWRvbmx5IHNob3J0TmFtZT86IFNjYWxhckRpZmY8U2VydmljZVsnc2hvcnROYW1lJ10+O1xuICByZWFkb25seSBjYXBpdGFsaXplZD86IFNjYWxhckRpZmY8U2VydmljZVsnY2FwaXRhbGl6ZWQnXT47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uTmFtZXNwYWNlPzogU2NhbGFyRGlmZjxTZXJ2aWNlWydjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZSddPjtcbiAgcmVhZG9ubHkgcmVzb3VyY2VEaWZmPzogTWFwRGlmZjxSZXNvdXJjZSwgVXBkYXRlZFJlc291cmNlPjtcbiAgcmVhZG9ubHkgbWV0cmljcz86IE1hcERpZmY8TWV0cmljLCBDaGFuZ2VkTWV0cmljPjtcbiAgcmVhZG9ubHkgZXZlbnREaWZmPzogTWFwRGlmZjxFdmVudCwgVXBkYXRlZEV2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkTWV0cmljIHtcbiAgcmVhZG9ubHkgc3RhdGlzdGljPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGltZW5zaW9uU2V0cz86IE1hcERpZmY8RGltZW5zaW9uU2V0LCBDaGFuZ2VkRGltZW5zaW9uU2V0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkRGltZW5zaW9uU2V0IHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGltZW5zaW9ucz86IFNjYWxhckRpZmY8RGltZW5zaW9uW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uVHlwZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25UcmFuc2Zvcm0/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGRvY3VtZW50YXRpb24/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBNYXBEaWZmPFByb3BlcnR5LCBVcGRhdGVkUHJvcGVydHk+O1xuICByZWFkb25seSBhdHRyaWJ1dGVzPzogTWFwRGlmZjxBdHRyaWJ1dGUsIFVwZGF0ZWRBdHRyaWJ1dGU+O1xuICByZWFkb25seSBhcm5UZW1wbGF0ZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgaXNTdGF0ZWZ1bD86IFNjYWxhckRpZmY8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IHRhZ0luZm9ybWF0aW9uPzogU2NhbGFyRGlmZjxSZXNvdXJjZVsndGFnSW5mb3JtYXRpb24nXT47XG4gIHJlYWRvbmx5IHNjcnV0aW5pemFibGU/OiBTY2FsYXJEaWZmPFJlc291cmNlWydzY3J1dGluaXphYmxlJ10+O1xuICByZWFkb25seSB2ZW5kZWRMb2dzPzogU2NhbGFyRGlmZjxSZXNvdXJjZVsndmVuZGVkTG9ncyddPjtcbiAgcmVhZG9ubHkgdHlwZURlZmluaXRpb25EaWZmPzogTWFwRGlmZjxUeXBlRGVmaW5pdGlvbiwgVXBkYXRlZFR5cGVEZWZpbml0aW9uPjtcbiAgcmVhZG9ubHkgcHJpbWFyeUlkZW50aWZpZXI/OiBTY2FsYXJEaWZmPHN0cmluZ1tdPjtcbiAgcmVhZG9ubHkgY2ZuUmVmSWRlbnRpZmllcj86IFNjYWxhckRpZmY8c3RyaW5nW10+O1xuICByZWFkb25seSBtZXRyaWNzPzogTWFwRGlmZjxNZXRyaWMsIENoYW5nZWRNZXRyaWM+O1xuICByZWFkb25seSBldmVudHM/OiBNYXBEaWZmPEV2ZW50LCBVcGRhdGVkRXZlbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRQcm9wZXJ0eSB7XG4gIHJlYWRvbmx5IG9sZDogUHJvcGVydHk7XG4gIHJlYWRvbmx5IG5ldzogUHJvcGVydHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZEF0dHJpYnV0ZSB7XG4gIHJlYWRvbmx5IG9sZDogQXR0cmlidXRlO1xuICByZWFkb25seSBuZXc6IEF0dHJpYnV0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkVHlwZURlZmluaXRpb24ge1xuICByZWFkb25seSBuYW1lPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkb2N1bWVudGF0aW9uPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogTWFwRGlmZjxQcm9wZXJ0eSwgVXBkYXRlZFByb3BlcnR5PjtcbiAgcmVhZG9ubHkgbXVzdFJlbmRlckZvckJ3Q29tcGF0PzogU2NhbGFyRGlmZjxib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkRXZlbnQge1xuICByZWFkb25seSBuYW1lPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgc291cmNlPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkZXRhaWxUeXBlPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSByZXNvdXJjZXNGaWVsZD86IFNjYWxhckRpZmY8RXZlbnRbJ3Jlc291cmNlc0ZpZWxkJ10+O1xuICByZWFkb25seSByb290UHJvcGVydHk/OiBTY2FsYXJEaWZmPEV2ZW50Wydyb290UHJvcGVydHknXT47XG4gIHJlYWRvbmx5IHR5cGVEZWZpbml0aW9uRGlmZj86IE1hcERpZmY8RXZlbnRUeXBlRGVmaW5pdGlvbiwgVXBkYXRlZEV2ZW50VHlwZURlZmluaXRpb24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRFdmVudFR5cGVEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IE1hcERpZmY8RXZlbnRQcm9wZXJ0eSwgVXBkYXRlZEV2ZW50UHJvcGVydHk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRFdmVudFByb3BlcnR5IHtcbiAgcmVhZG9ubHkgb2xkOiBFdmVudFByb3BlcnR5O1xuICByZWFkb25seSBuZXc6IEV2ZW50UHJvcGVydHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhbGFyRGlmZjxBPiB7XG4gIHJlYWRvbmx5IG9sZD86IEE7XG4gIHJlYWRvbmx5IG5ldz86IEE7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgUmVmZXJlbmNlLCBSZWxhdGlvbnNoaXAgfSBmcm9tICdAY2RrbGFicy90c2tiJztcbmltcG9ydCB7IEdlbmVyaWNQcm9wZXJ0eVR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgU2VydmljZSB9IGZyb20gJy4vcmVzb3VyY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIEV2ZW50QnJpZGdlIHNjaGVtYVxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNAT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRXZlbnRCcmlkZ2Ugc2NoZW1hIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSB2YWx1ZSBmb3IgdGhpcyBldmVudFxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRldGFpbFR5cGUgdmFsdWUgZm9yIHRoaXMgZXZlbnRcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0IENyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbFR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEVhY2ggaXRlbSBpcyBhIGBSZXNvdXJjZUZpZWxkYCBkZXNjcmliaW5nIHdoaWNoIHByb3BlcnR5IChmaWVsZE5hbWUpXG4gICAqIGluIHRoZSBldmVudCBwYXlsb2FkIGNvbnRhaW5zIGEgcmVzb3VyY2UgaWRlbnRpZmllciBhbmQgdGhlIGFzc29jaWF0ZWRcbiAgICogdHlwZWQgZGVmaW5pdGlvbiBmb3IgdGhhdCByZXNvdXJjZSAodGhlIGB0eXBlYCByZWZlcmVuY2UpLlxuICAgKlxuICAgKiBAZXhhbXBsZSBPYmplY3QgQ3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzRmllbGQ6IEFycmF5PFJlc291cmNlRmllbGQ+O1xuICAvKipcbiAgICogcm9vdFByb3BlcnR5IGhhcyB0aGUgcmVmZXJlbmNlIGZvciB0aGUgcm9vdCBwcm9wZXJ0eSBmb3IgdGhpcyBldmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdFByb3BlcnR5OiBSZWZlcmVuY2U8RXZlbnRUeXBlRGVmaW5pdGlvbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VGaWVsZCB7XG4gIHR5cGU6IFJlZmVyZW5jZTxFdmVudFR5cGVEZWZpbml0aW9uPjtcbiAgZmllbGROYW1lPzogc3RyaW5nO1xuICByZXNvdXJjZTogUmVmZXJlbmNlPFJlc291cmNlPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNFdmVudCA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBzZXJ2aWNlSGFzRXZlbnQgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBFdmVudFByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBFdmVudFByb3BlcnR5PjtcbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqL1xuICB0eXBlOiBHZW5lcmljUHJvcGVydHlUeXBlPEV2ZW50VHlwZURlZmluaXRpb24+O1xuICAvKipcbiAgICogSXMgdGhpcyBwcm9wZXJ0eSByZXF1aXJlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHR5cGVcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBFdmVudFByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50VXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8RXZlbnQsIEV2ZW50VHlwZURlZmluaXRpb24+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFNlcnZpY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBIE1ldHJpYyBEaW1lbnNpb24gKG5vdCBhbiBlbnRpdHkpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGRpbWVuc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQSBwb3RlbnRpYWwgdmFsdWUgZm9yIHRoaXMgZGltZW5zaW9uXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNldCBvZiBNZXRyaWMgRGltZW5zaW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uU2V0IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIEEgdW5pcXVlIHZhbHVlIHVzZWQgdG8gZGVkdXBsaWNhdGUgdGhlIGVudGl0eVxuICAgKi9cbiAgZGVkdXBLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoaXMgZGltZW5zaW9uIHNldFxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRpbWVuc2lvbnMgaW4gdGhpcyBzZXRcbiAgICovXG4gIGRpbWVuc2lvbnM6IERpbWVuc2lvbltdO1xufVxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIERpbWVuc2lvblNldD47XG5leHBvcnQgdHlwZSBTZXJ2aWNlSGFzRGltZW5zaW9uU2V0ID0gUmVsYXRpb25zaGlwPFNlcnZpY2UsIERpbWVuc2lvblNldD47XG5cbi8qKlxuICogQSBDbG91ZFdhdGNoIE1ldHJpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpYyBleHRlbmRzIEVudGl0eSB7XG4gIC8qKlxuICAgKiBNZXRyaWMgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIG1ldHJpY1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCAoc3VnZ2VzdGVkKSBzdGF0aXN0aWMgZm9yIHRoaXMgbWV0cmljXG4gICAqL1xuICByZWFkb25seSBzdGF0aXN0aWM6IHN0cmluZztcbiAgLyoqXG4gICAqIEEgdW5pcXVlIHZhbHVlIHVzZWQgdG8gZGVkdXBsaWNhdGUgdGhlIGVudGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgZGVkdXBLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIG9mIHRoZSBtZXRyaWNcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgVXNlc0RpbWVuc2lvblNldCA9IFJlbGF0aW9uc2hpcDxNZXRyaWMsIERpbWVuc2lvblNldD47XG5leHBvcnQgdHlwZSBSZXNvdXJjZUhhc01ldHJpYyA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgTWV0cmljPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VIYXNNZXRyaWMgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgTWV0cmljPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichPropertyType = exports.PropertyScrutinyType = exports.ResourceScrutinyType = exports.Deprecation = exports.RichAttribute = exports.RichProperty = exports.RichTypedField = void 0;\nexports.isCollectionType = isCollectionType;\nconst sorting_1 = require(\"../util/sorting\");\nclass RichTypedField {\n constructor(field) {\n this.field = field;\n if (field === undefined) {\n throw new Error('Field is undefined');\n }\n }\n types() {\n return [...(this.field.previousTypes ?? []), this.field.type];\n }\n /**\n * Update the type of this property with a new type\n *\n * Only if it's not in the set of types already.\n *\n * Returns true if the type was updated.\n */\n updateType(type) {\n const richType = new RichPropertyType(type);\n // Only add this type if we don't already have it. We are only doing comparisons where 'integer' and 'number'\n // are treated the same, for all other types we need strict equality. We used to use 'assignableTo' as a\n // condition, but these types will be rendered in both co- and contravariant positions, and so we really can't\n // do much better than full equality.\n if (this.types().some((t) => richType.equals(t))) {\n // Nothing to do, type is already in there.\n // But if the new type has allowedValues, merge them into the current type.\n if ((type.type === 'string' || type.type === 'integer') && type.allowedValues) {\n if (this.field.type.type === type.type) {\n this.field.type.allowedValues = type.allowedValues;\n }\n }\n return false;\n }\n // Special case: if the new type is `string` and the old type is `date-time`, we assume this is\n // the same type but we dropped some formatting information. No need to make this a separate type.\n if (type.type === 'string' && this.types().some((t) => t.type === 'date-time')) {\n return false;\n }\n // Special case: if the new type is `string` and the old type is `json`, we assume this is a correction\n // of a bug; the old type was incorrectly typed as Json, and we're now correcting this. Since this was a\n // bug, we don't need to keep the old type: it was never accurate.\n //\n // We could be more broad, and only maintain type history if we go from\n // `json` -> `named type`, or `named type` -> `named type`. For now I'm\n // wary of destroying too much information; we'll just do the fix specifically\n // for `json` -> `string`.\n if (type.type === 'string' && this.field.type.type === 'json') {\n this.field.type = type;\n return true;\n }\n if (!this.field.previousTypes) {\n this.field.previousTypes = [];\n }\n this.field.previousTypes.push(this.field.type);\n this.field.type = type;\n return true;\n }\n}\nexports.RichTypedField = RichTypedField;\nclass RichProperty extends RichTypedField {\n constructor(property) {\n super(property);\n }\n}\nexports.RichProperty = RichProperty;\nclass RichAttribute extends RichTypedField {\n constructor(attr) {\n super(attr);\n }\n}\nexports.RichAttribute = RichAttribute;\nvar Deprecation;\n(function (Deprecation) {\n /**\n * Not deprecated\n */\n Deprecation[\"NONE\"] = \"NONE\";\n /**\n * Warn about use\n */\n Deprecation[\"WARN\"] = \"WARN\";\n /**\n * Do not emit the value at all\n *\n * (Handle properties that were incorrectly added to the spec)\n */\n Deprecation[\"IGNORE\"] = \"IGNORE\";\n})(Deprecation || (exports.Deprecation = Deprecation = {}));\nfunction isCollectionType(x) {\n return x.type === 'array' || x.type === 'map';\n}\n/**\n * Mark a resource as a resource that needs additional scrutiy when added, removed or changed\n *\n * Used to mark resources that represent security policies.\n */\nvar ResourceScrutinyType;\n(function (ResourceScrutinyType) {\n /**\n * No additional scrutiny\n */\n ResourceScrutinyType[\"None\"] = \"None\";\n /**\n * An externally attached policy document to a resource\n *\n * (Common for SQS, SNS, S3, ...)\n */\n ResourceScrutinyType[\"ResourcePolicyResource\"] = \"ResourcePolicyResource\";\n /**\n * This is an IAM policy on an identity resource\n *\n * (Basically saying: this is AWS::IAM::Policy)\n */\n ResourceScrutinyType[\"IdentityPolicyResource\"] = \"IdentityPolicyResource\";\n /**\n * This is a Lambda Permission policy\n */\n ResourceScrutinyType[\"LambdaPermission\"] = \"LambdaPermission\";\n /**\n * An ingress rule object\n */\n ResourceScrutinyType[\"IngressRuleResource\"] = \"IngressRuleResource\";\n /**\n * A set of egress rules\n */\n ResourceScrutinyType[\"EgressRuleResource\"] = \"EgressRuleResource\";\n /**\n * AWS::SSO::Assignment\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoAssignmentResource\"] = \"SsoAssignmentResource\";\n /**\n * AWS::SSO::InstanceAccessControlAttributeConfiguration\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoInstanceACAConfigResource\"] = \"SsoInstanceACAConfigResource\";\n /**\n * AWS::SSO::PermissionSet\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoPermissionSet\"] = \"SsoPermissionSet\";\n})(ResourceScrutinyType || (exports.ResourceScrutinyType = ResourceScrutinyType = {}));\n/**\n * Mark a property as a property that needs additional scrutiny when it changes\n *\n * Used to mark sensitive properties that have security-related implications.\n */\nvar PropertyScrutinyType;\n(function (PropertyScrutinyType) {\n /**\n * No additional scrutiny\n */\n PropertyScrutinyType[\"None\"] = \"None\";\n /**\n * This is an IAM policy directly on a resource\n */\n PropertyScrutinyType[\"InlineResourcePolicy\"] = \"InlineResourcePolicy\";\n /**\n * Either an AssumeRolePolicyDocument or a dictionary of policy documents\n */\n PropertyScrutinyType[\"InlineIdentityPolicies\"] = \"InlineIdentityPolicies\";\n /**\n * A list of managed policies (on an identity resource)\n */\n PropertyScrutinyType[\"ManagedPolicies\"] = \"ManagedPolicies\";\n /**\n * A set of ingress rules (on a security group)\n */\n PropertyScrutinyType[\"IngressRules\"] = \"IngressRules\";\n /**\n * A set of egress rules (on a security group)\n */\n PropertyScrutinyType[\"EgressRules\"] = \"EgressRules\";\n})(PropertyScrutinyType || (exports.PropertyScrutinyType = PropertyScrutinyType = {}));\nclass RichPropertyType {\n constructor(type) {\n this.type = type;\n }\n equals(rhs) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return rhs.type === this.type.type;\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).equals(rhs.element);\n case 'ref':\n return rhs.type === 'ref' && this.type.reference.$ref === rhs.reference.$ref;\n case 'union':\n const lhsKey = this.sortKey();\n const rhsKey = new RichPropertyType(rhs).sortKey();\n return lhsKey.length === rhsKey.length && lhsKey.every((l, i) => l === rhsKey[i]);\n }\n }\n /**\n * Whether the current type is JavaScript-equal to the RHS type\n *\n * Same as normal equality, but consider `integer` and `number` the same types.\n */\n javascriptEquals(rhs) {\n switch (this.type.type) {\n case 'number':\n case 'integer':\n // Widening\n return rhs.type === 'integer' || rhs.type === 'number';\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).javascriptEquals(rhs.element);\n case 'union':\n if (rhs.type !== 'union') {\n return false;\n }\n // Every type in this union needs to be equal one type in RHS\n return this.type.types.every((t1) => rhs.types.some((t2) => new RichPropertyType(t1).javascriptEquals(t2)));\n default:\n // For anything else, need strict equality\n return this.equals(rhs);\n }\n }\n /**\n * Whether the current type is assignable to the RHS type.\n *\n * This is means every type member of the LHS must be present in the RHS type\n */\n assignableTo(rhs) {\n const extractMembers = (type) => (type.type == 'union' ? type.types : [type]);\n const asRichType = (type) => new RichPropertyType(type);\n const rhsMembers = extractMembers(rhs);\n for (const lhsMember of extractMembers(this.type).map(asRichType)) {\n if (!rhsMembers.some((type) => lhsMember.equals(type))) {\n return false;\n }\n }\n return true;\n }\n /**\n * Return a version of this type, but with all type unions in a regularized order\n */\n normalize(db) {\n switch (this.type.type) {\n case 'array':\n case 'map':\n return new RichPropertyType({\n type: this.type.type,\n element: new RichPropertyType(this.type.element).normalize(db).type,\n });\n case 'union':\n const types = this.type.types\n .map((t) => new RichPropertyType(t).normalize(db))\n .map((t) => [t, t.sortKey(db)]);\n types.sort((0, sorting_1.sortKeyComparator)(([_, sortKey]) => sortKey));\n return new RichPropertyType({\n type: 'union',\n types: types.map(([t, _]) => t.type),\n });\n default:\n return this;\n }\n }\n stringify(db, withId = true) {\n switch (this.type.type) {\n case 'string':\n return this.type.allowedValues ? `string<${this.type.allowedValues.join('|')}>` : 'string';\n case 'integer':\n return this.type.allowedValues ? `integer<${this.type.allowedValues.join('|')}>` : 'integer';\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'tag':\n return this.type.type;\n case 'array':\n return `Array<${new RichPropertyType(this.type.element).stringify(db, withId)}>`;\n case 'map':\n return `Map`;\n case 'ref':\n const type = db.get('typeDefinition', this.type.reference);\n return withId ? `${type.name}(${this.type.reference.$ref})` : type.name;\n case 'union':\n return this.type.types.map((t) => new RichPropertyType(t).stringify(db, withId)).join(' | ');\n }\n }\n /**\n * Return a sortable key based on this type\n *\n * If a database is given, type definitions will be sorted based on type name,\n * otherwise on identifier\n */\n sortKey(db) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return ['0', this.type.type];\n case 'array':\n case 'map':\n return ['1', this.type.type, ...new RichPropertyType(this.type.element).sortKey(db)];\n case 'ref':\n return ['2', this.type.type, db?.get('typeDefinition', this.type.reference)?.name ?? this.type.reference.$ref];\n case 'union':\n const typeKeys = this.type.types.map((t) => new RichPropertyType(t).sortKey(db));\n typeKeys.sort((0, sorting_1.sortKeyComparator)((x) => x));\n return ['3', this.type.type, ...typeKeys.flatMap((x) => x)];\n }\n }\n}\nexports.RichPropertyType = RichPropertyType;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK1NBLDRDQUVDO0FBOVNELDZDQUFvRDtBQWtNcEQsTUFBYSxjQUFjO0lBQ3pCLFlBQTZCLEtBQStDO1FBQS9DLFVBQUssR0FBTCxLQUFLLENBQTBDO1FBQzFFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxJQUFrQjtRQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVDLDZHQUE2RztRQUM3Ryx3R0FBd0c7UUFDeEcsOEdBQThHO1FBQzlHLHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pELDJDQUEyQztZQUMzQywyRUFBMkU7WUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JB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QWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSwyQkFBaUIsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXhKRCw0Q0F3SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgQXJyYXlUeXBlLCBNYXBUeXBlLCBHZW5lcmljUHJvcGVydHlUeXBlLCBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFNwZWNEYXRhYmFzZSB9IGZyb20gJy4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgc29ydEtleUNvbXBhcmF0b3IgfSBmcm9tICcuLi91dGlsL3NvcnRpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eSB7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBIYXNSZWdpb24gPSBSZWxhdGlvbnNoaXA8UGFydGl0aW9uLCBSZWdpb24sIHsgaXNQcmltYXJ5PzogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHNlcnZpY2UgaW5jbHVkaW5nIHRoZSBncm91cCBwcmVmaXgsIGxvd2VyY2FzZWQgYW5kIGh5cGhlbmF0ZWQuXG4gICAqXG4gICAqIEUuZy4gYEFXUzo6RHluYW1vREJgIC0+IGBhd3MtZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGF3cy1keW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogT25seSB0aGUgc2VydmljZSBwYXJ0IG9mIHRoZSBuYW1lLCBsb3dlcmNhc2VkLlxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBzaG9ydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzaG9ydG5hbWUgb2YgdGhlIHNlcnZpY2UgaW4gY2FwaXRhbGl6ZWQgZm9ybVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgRHluYW1vREJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBjYXBpdGFsaXplZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbXBsZXRlIGNsb3VkZm9ybWF0aW9uIHN0eWxlIG5hbWVzcGFjZSBvZiB0aGUgc2VydmljZVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYFxuICAgKlxuICAgKiBAZXhhbXBsZSBkeW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25OYW1lc3BhY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50YXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlIGV4dGVuZHMgRW50aXR5IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHNldCwgdGhpcyBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm0gaXMgcmVxdWlyZWQgYnkgdGhlIHJlc291cmNlXG4gICAqL1xuICBjbG91ZEZvcm1hdGlvblRyYW5zZm9ybT86IHN0cmluZztcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW1hcnkgaWRlbnRpZmllciwgb3IgaWRlbnRpZmllcnMsIGluIENsb3VkIENvbnRyb2wgQVBJXG4gICAqXG4gICAqIFVuaXF1ZWx5IGlkZW50aWZpZXMgYSByZXNvdXJjZSBpbiBhbiBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHJlYWQgZnJvbSB0aGUgc2NoZW1hLCB3aGljaCBhbHdheXMgcGVydGFpbnMgdG8gdGhlIENDQVBJIGlkZW50aWZpZXIuXG4gICAqIFR5cGljYWxseSB0aGUgc2FtZSBhcyB0aGUgQ2xvdWRGb3JtYXRpb24gaWRlbnRpZmllciwgYnV0IG5vdCBuZWNlc3NhcmlseS5cbiAgICovXG4gIHByaW1hcnlJZGVudGlmaWVyPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcmltYXJ5IGlkZW50aWZpZXIsIG9yIGlkZW50aWZpZXJzLCBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBXaGF0ZXZlciBnZXRzIHJldHVybmVkIHdoZW4geW91IGNhbGwgYHsgUmVmIH1gIGEgcmVzb3VyY2UuIFR5cGljYWxseSB0aGVcbiAgICogdmFsdWUgdGhhdCBvdGhlciByZXNvdXJjZXMgaW4gdGhlIHNhbWUgc2VydmljZSBleHBlY3QgdG8gc2VlIGFzIHRoZSB3YXkgdG9cbiAgICogcmVmZXJlbmNlIHRoaXMgcmVzb3VyY2UgKG5hbWUgb3IgQVJOIG9yIElkKS5cbiAgICpcbiAgICogSWYgbWlzc2luZywgdGhlIGBjZm5SZWZJZGVudGlmaWVyYCBpcyB0aGUgc2FtZSBhcyB0aGUgKENDLUFQSSkgYHByaW1hcnlJZGVudGlmaWVyYC5cbiAgICovXG4gIGNmblJlZklkZW50aWZpZXI/OiBzdHJpbmdbXTtcblxuICByZWFkb25seSBwcm9wZXJ0aWVzOiBSZXNvdXJjZVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIEF0dHJpYnV0ZT47XG4gIHJlYWRvbmx5IHZhbGlkYXRpb25zPzogdW5rbm93bjtcbiAgYXJuVGVtcGxhdGU/OiBzdHJpbmc7XG4gIGlzU3RhdGVmdWw/OiBib29sZWFuO1xuICB2ZW5kZWRMb2dzPzogVmVuZGVkTG9nc1tdO1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFnZ2FiaWxpdHkgb2YgdGhpcyByZXNvdXJjZVxuICAgKlxuICAgKiBVbmRlZmluZWQgaWYgdGhlIHJlc291cmNlIGlzIG5vdCB0YWdnYWJsZS5cbiAgICovXG4gIHRhZ0luZm9ybWF0aW9uPzogVGFnSW5mb3JtYXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2hhbmdlcyB0byB0aGlzIHJlc291cmNlIG5lZWQgdG8gYmUgc2NydXRpbml6ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgUmVzb3VyY2VTY3J1dGlueVR5cGUuTk9ORVxuICAgKi9cbiAgc2NydXRpbml6YWJsZT86IFJlc291cmNlU2NydXRpbnlUeXBlO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhdGhzIHRvIHByb3BlcnRpZXMgdGhhdCBhbHNvIGNhdXNlIHJlcGxhY2VtZW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGluZGljYXRlIHRoYXQgY2VydGFpbiBwcm9wZXJ0eSBwYXRocyBpbnRvIHRoaXMgcmVzb3VyY2VcbiAgICogd2lsbCBjYXVzZSByZXBsYWNlbWVudDsgb25seSByZXBsYWNlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWRcbiAgICogYnkgdGFnZ2luZyB0aGUgcHJvcGVydHkgaW4gYSB0eXBlIGRlZmluaXRpb24gd2lsbCBiZSBpbmNsdWRlZCBoZXJlXG4gICAqIChmb3IgZXhhbXBsZSwgYmVjYXVzZSB0aGUgdGFnZ2VkIHByb3BlcnR5IHdvdWxkIGJlIGluIGEgcHJlZGVmaW5lZFxuICAgKiB0eXBlIGxpa2UgYHRhZ2ApLlxuICAgKlxuICAgKiBBbGwgcHJvcGVydGllcyBpbiB0aGlzIGxpc3Qgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYGNhdXNlc1JlcGxhY2VtZW50OiAneWVzJ2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIGFkZGl0aW9uYWxSZXBsYWNlbWVudFByb3BlcnRpZXM/OiBzdHJpbmdbXVtdO1xufVxuXG5leHBvcnQgdHlwZSBSZXNvdXJjZVByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFJlc291cmNlUHJvcGVydGllcztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgcmVuZGVyIHRoaXMgdHlwZSBldmVuIGlmIGl0IGlzIHVudXNlZC5cbiAgICovXG4gIG11c3RSZW5kZXJGb3JCd0NvbXBhdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHkge1xuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2YgdGhlIHByb3BlcnR5XG4gICAqL1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJcyB0aGlzIHByb3BlcnR5IHJlcXVpcmVkXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHR5cGUgb2YgdGhpcyBwcm9wZXJ0eVxuICAgKi9cbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuXG4gIC8qKlxuICAgKiBBbiBvcmRlcmVkIGxpc3Qgb2YgcHJldmlvdXMgdHlwZXMgb2YgdGhpcyBwcm9wZXJ0eSBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICpcbiAgICogRG9lcyBub3QgaW5jbHVkZSB0aGUgY3VycmVudCB0eXBlLCB1c2UgYHR5cGVgIGZvciB0aGlzLlxuICAgKi9cbiAgcHJldmlvdXNUeXBlcz86IFByb3BlcnR5VHlwZVtdO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRhdGlvbiB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqXG4gICAqIFRoaXMgdmFsdWUgaXMgbm90IGRpcmVjdGx5IGZ1bmN0aW9uYWw7IGl0IGRlc2NyaWJlcyBob3cgdGhlIHVuZGVybHlpbmcgcmVzb3VyY2VcbiAgICogd2lsbCBiZWhhdmUgaWYgdGhlIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCB1bmtub3duXG4gICAqL1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIGRlcHJlY2F0ZWQ/OiBEZXByZWNhdGlvbjtcblxuICAvKipcbiAgICogV2hldGhlciBjaGFuZ2VzIHRvIHRoaXMgcHJvcGVydHkgbmVlZHMgdG8gYmUgc2NydXRpbml6ZWQgc3BlY2lhbGx5XG4gICAqXG4gICAqIEBkZWZhdWx0IFByb3BlcnR5U2NydXRpbnlUeXBlLk5PTkVcbiAgICovXG4gIHNjcnV0aW5pemFibGU/OiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29udGFpbmluZyByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkIGlmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAnbm8nXG4gICAqL1xuICBjYXVzZXNSZXBsYWNlbWVudD86ICd5ZXMnIHwgJ25vJyB8ICdtYXliZSc7XG5cbiAgLyoqXG4gICAqIFJlbGF0aW9uc2hpcCByZWZlcmVuY2VzIHRvIG90aGVyIENsb3VkRm9ybWF0aW9uIHJlc291cmNlc1xuICAgKi9cbiAgcmVsYXRpb25zaGlwUmVmcz86IFJlbGF0aW9uc2hpcFJlZltdO1xufVxuXG5leHBvcnQgY2xhc3MgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBQaWNrPFByb3BlcnR5LCAndHlwZScgfCAncHJldmlvdXNUeXBlcyc+KSB7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmllbGQgaXMgdW5kZWZpbmVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHR5cGVzKCk6IFByb3BlcnR5VHlwZVtdIHtcbiAgICByZXR1cm4gWy4uLih0aGlzLmZpZWxkLnByZXZpb3VzVHlwZXMgPz8gW10pLCB0aGlzLmZpZWxkLnR5cGVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5IHdpdGggYSBuZXcgdHlwZVxuICAgKlxuICAgKiBPbmx5IGlmIGl0J3Mgbm90IGluIHRoZSBzZXQgb2YgdHlwZXMgYWxyZWFkeS5cbiAgICpcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB0eXBlIHdhcyB1cGRhdGVkLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVR5cGUodHlwZTogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmljaFR5cGUgPSBuZXcgUmljaFByb3BlcnR5VHlwZSh0eXBlKTtcblxuICAgIC8vIE9ubHkgYWRkIHRoaXMgdHlwZSBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgaXQuIFdlIGFyZSBvbmx5IGRvaW5nIGNvbXBhcmlzb25zIHdoZXJlICdpbnRlZ2VyJyBhbmQgJ251bWJlcidcbiAgICAvLyBhcmUgdHJlYXRlZCB0aGUgc2FtZSwgZm9yIGFsbCBvdGhlciB0eXBlcyB3ZSBuZWVkIHN0cmljdCBlcXVhbGl0eS4gV2UgdXNlZCB0byB1c2UgJ2Fzc2lnbmFibGVUbycgYXMgYVxuICAgIC8vIGNvbmRpdGlvbiwgYnV0IHRoZXNlIHR5cGVzIHdpbGwgYmUgcmVuZGVyZWQgaW4gYm90aCBjby0gYW5kIGNvbnRyYXZhcmlhbnQgcG9zaXRpb25zLCBhbmQgc28gd2UgcmVhbGx5IGNhbid0XG4gICAgLy8gZG8gbXVjaCBiZXR0ZXIgdGhhbiBmdWxsIGVxdWFsaXR5LlxuICAgIGlmICh0aGlzLnR5cGVzKCkuc29tZSgodCkgPT4gcmljaFR5cGUuZXF1YWxzKHQpKSkge1xuICAgICAgLy8gTm90aGluZyB0byBkbywgdHlwZSBpcyBhbHJlYWR5IGluIHRoZXJlLlxuICAgICAgLy8gQnV0IGlmIHRoZSBuZXcgdHlwZSBoYXMgYWxsb3dlZFZhbHVlcywgbWVyZ2UgdGhlbSBpbnRvIHRoZSBjdXJyZW50IHR5cGUuXG4gICAgICBpZiAoKHR5cGUudHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZS50eXBlID09PSAnaW50ZWdlcicpICYmIHR5cGUuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICBpZiAodGhpcy5maWVsZC50eXBlLnR5cGUgPT09IHR5cGUudHlwZSkge1xuICAgICAgICAgICh0aGlzLmZpZWxkLnR5cGUgYXMgYW55KS5hbGxvd2VkVmFsdWVzID0gdHlwZS5hbGxvd2VkVmFsdWVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBjYXNlOiBpZiB0aGUgbmV3IHR5cGUgaXMgYHN0cmluZ2AgYW5kIHRoZSBvbGQgdHlwZSBpcyBgZGF0ZS10aW1lYCwgd2UgYXNzdW1lIHRoaXMgaXNcbiAgICAvLyB0aGUgc2FtZSB0eXBlIGJ1dCB3ZSBkcm9wcGVkIHNvbWUgZm9ybWF0dGluZyBpbmZvcm1hdGlvbi4gTm8gbmVlZCB0byBtYWtlIHRoaXMgYSBzZXBhcmF0ZSB0eXBlLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMudHlwZXMoKS5zb21lKCh0KSA9PiB0LnR5cGUgPT09ICdkYXRlLXRpbWUnKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgY2FzZTogaWYgdGhlIG5ldyB0eXBlIGlzIGBzdHJpbmdgIGFuZCB0aGUgb2xkIHR5cGUgaXMgYGpzb25gLCB3ZSBhc3N1bWUgdGhpcyBpcyBhIGNvcnJlY3Rpb25cbiAgICAvLyBvZiBhIGJ1ZzsgdGhlIG9sZCB0eXBlIHdhcyBpbmNvcnJlY3RseSB0eXBlZCBhcyBKc29uLCBhbmQgd2UncmUgbm93IGNvcnJlY3RpbmcgdGhpcy4gU2luY2UgdGhpcyB3YXMgYVxuICAgIC8vIGJ1Zywgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIHRoZSBvbGQgdHlwZTogaXQgd2FzIG5ldmVyIGFjY3VyYXRlLlxuICAgIC8vXG4gICAgLy8gV2UgY291bGQgYmUgbW9yZSBicm9hZCwgYW5kIG9ubHkgbWFpbnRhaW4gdHlwZSBoaXN0b3J5IGlmIHdlIGdvIGZyb21cbiAgICAvLyBganNvbmAgLT4gYG5hbWVkIHR5cGVgLCBvciBgbmFtZWQgdHlwZWAgLT4gYG5hbWVkIHR5cGVgLiAgRm9yIG5vdyBJJ21cbiAgICAvLyB3YXJ5IG9mIGRlc3Ryb3lpbmcgdG9vIG11Y2ggaW5mb3JtYXRpb247IHdlJ2xsIGp1c3QgZG8gdGhlIGZpeCBzcGVjaWZpY2FsbHlcbiAgICAvLyBmb3IgYGpzb25gIC0+IGBzdHJpbmdgLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMuZmllbGQudHlwZS50eXBlID09PSAnanNvbicpIHtcbiAgICAgIHRoaXMuZmllbGQudHlwZSA9IHR5cGU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZmllbGQucHJldmlvdXNUeXBlcykge1xuICAgICAgdGhpcy5maWVsZC5wcmV2aW91c1R5cGVzID0gW107XG4gICAgfVxuICAgIHRoaXMuZmllbGQucHJldmlvdXNUeXBlcy5wdXNoKHRoaXMuZmllbGQudHlwZSk7XG4gICAgdGhpcy5maWVsZC50eXBlID0gdHlwZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmljaFByb3BlcnR5IGV4dGVuZHMgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogUHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJpY2hBdHRyaWJ1dGUgZXh0ZW5kcyBSaWNoVHlwZWRGaWVsZCB7XG4gIGNvbnN0cnVjdG9yKGF0dHI6IEF0dHJpYnV0ZSkge1xuICAgIHN1cGVyKGF0dHIpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuICAvKipcbiAgICogQW4gb3JkZXJlZCBsaXN0IG9mIHByZXZpb3VzIHR5cGVzIG9mIHRoaXMgcHJvcGVydHkgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAqXG4gICAqIERvZXMgbm90IGluY2x1ZGUgdGhlIGN1cnJlbnQgdHlwZSwgdXNlIGB0eXBlYCBmb3IgdGhpcy5cbiAgICovXG4gIHByZXZpb3VzVHlwZXM/OiBQcm9wZXJ0eVR5cGVbXTtcbn1cblxuZXhwb3J0IGVudW0gRGVwcmVjYXRpb24ge1xuICAvKipcbiAgICogTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIE5PTkUgPSAnTk9ORScsXG5cbiAgLyoqXG4gICAqIFdhcm4gYWJvdXQgdXNlXG4gICAqL1xuICBXQVJOID0gJ1dBUk4nLFxuXG4gIC8qKlxuICAgKiBEbyBub3QgZW1pdCB0aGUgdmFsdWUgYXQgYWxsXG4gICAqXG4gICAqIChIYW5kbGUgcHJvcGVydGllcyB0aGF0IHdlcmUgaW5jb3JyZWN0bHkgYWRkZWQgdG8gdGhlIHNwZWMpXG4gICAqL1xuICBJR05PUkUgPSAnSUdOT1JFJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29sbGVjdGlvblR5cGUoeDogUHJvcGVydHlUeXBlKTogeCBpcyBBcnJheVR5cGU8YW55PiB8IE1hcFR5cGU8YW55PiB7XG4gIHJldHVybiB4LnR5cGUgPT09ICdhcnJheScgfHwgeC50eXBlID09PSAnbWFwJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdJbmZvcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0aGF0IGhvbGRzIHRoZSB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdQcm9wZXJ0eU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBpbnN0cnVjdCBjZGsuVGFnTWFuYWdlciBob3cgdG8gaGFuZGxlIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhbnQ6IFRhZ1ZhcmlhbnQ7XG59XG5cbmV4cG9ydCB0eXBlIFRhZ1ZhcmlhbnQgPSAnc3RhbmRhcmQnIHwgJ2FzZycgfCAnbWFwJztcblxuZXhwb3J0IHR5cGUgSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgUmVzb3VyY2U+O1xuZXhwb3J0IHR5cGUgUmVnaW9uSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8UmVnaW9uLCBSZXNvdXJjZT47XG5leHBvcnQgdHlwZSBSZWdpb25IYXNTZXJ2aWNlID0gUmVsYXRpb25zaGlwPFJlZ2lvbiwgU2VydmljZT47XG5leHBvcnQgdHlwZSBSZXNvdXJjZURvYyA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRG9jdW1lbnRhdGlvbj47XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFNlcnZpY2U+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFJlc291cmNlPjtcblxuZXhwb3J0IHR5cGUgVXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIFR5cGVEZWZpbml0aW9uPjtcblxuLyoqXG4gKiBNYXJrIGEgcmVzb3VyY2UgYXMgYSByZXNvdXJjZSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpeSB3aGVuIGFkZGVkLCByZW1vdmVkIG9yIGNoYW5nZWRcbiAqXG4gKiBVc2VkIHRvIG1hcmsgcmVzb3VyY2VzIHRoYXQgcmVwcmVzZW50IHNlY3VyaXR5IHBvbGljaWVzLlxuICovXG5leHBvcnQgZW51bSBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIC8qKlxuICAgKiBObyBhZGRpdGlvbmFsIHNjcnV0aW55XG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbGx5IGF0dGFjaGVkIHBvbGljeSBkb2N1bWVudCB0byBhIHJlc291cmNlXG4gICAqXG4gICAqIChDb21tb24gZm9yIFNRUywgU05TLCBTMywgLi4uKVxuICAgKi9cbiAgUmVzb3VyY2VQb2xpY3lSZXNvdXJjZSA9ICdSZXNvdXJjZVBvbGljeVJlc291cmNlJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IG9uIGFuIGlkZW50aXR5IHJlc291cmNlXG4gICAqXG4gICAqIChCYXNpY2FsbHkgc2F5aW5nOiB0aGlzIGlzIEFXUzo6SUFNOjpQb2xpY3kpXG4gICAqL1xuICBJZGVudGl0eVBvbGljeVJlc291cmNlID0gJ0lkZW50aXR5UG9saWN5UmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgTGFtYmRhIFBlcm1pc3Npb24gcG9saWN5XG4gICAqL1xuICBMYW1iZGFQZXJtaXNzaW9uID0gJ0xhbWJkYVBlcm1pc3Npb24nLFxuXG4gIC8qKlxuICAgKiBBbiBpbmdyZXNzIHJ1bGUgb2JqZWN0XG4gICAqL1xuICBJbmdyZXNzUnVsZVJlc291cmNlID0gJ0luZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlZ3Jlc3MgcnVsZXNcbiAgICovXG4gIEVncmVzc1J1bGVSZXNvdXJjZSA9ICdFZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBV1M6OlNTTzo6QXNzaWdubWVudFxuICAgKlxuICAgKiBJQU0gSWRlbnRpdHkgQ2VudGVyIChmb3JtZXJseSBrbm93biBhcyBTU08pXG4gICAqL1xuICBTc29Bc3NpZ25tZW50UmVzb3VyY2UgPSAnU3NvQXNzaWdubWVudFJlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086Okluc3RhbmNlQWNjZXNzQ29udHJvbEF0dHJpYnV0ZUNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvSW5zdGFuY2VBQ0FDb25maWdSZXNvdXJjZSA9ICdTc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086OlBlcm1pc3Npb25TZXRcbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvUGVybWlzc2lvblNldCA9ICdTc29QZXJtaXNzaW9uU2V0Jyxcbn1cblxuLyoqXG4gKiBNYXJrIGEgcHJvcGVydHkgYXMgYSBwcm9wZXJ0eSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpbnkgd2hlbiBpdCBjaGFuZ2VzXG4gKlxuICogVXNlZCB0byBtYXJrIHNlbnNpdGl2ZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGltcGxpY2F0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gUHJvcGVydHlTY3J1dGlueVR5cGUge1xuICAvKipcbiAgICogTm8gYWRkaXRpb25hbCBzY3J1dGlueVxuICAgKi9cbiAgTm9uZSA9ICdOb25lJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IGRpcmVjdGx5IG9uIGEgcmVzb3VyY2VcbiAgICovXG4gIElubGluZVJlc291cmNlUG9saWN5ID0gJ0lubGluZVJlc291cmNlUG9saWN5JyxcblxuICAvKipcbiAgICogRWl0aGVyIGFuIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudCBvciBhIGRpY3Rpb25hcnkgb2YgcG9saWN5IGRvY3VtZW50c1xuICAgKi9cbiAgSW5saW5lSWRlbnRpdHlQb2xpY2llcyA9ICdJbmxpbmVJZGVudGl0eVBvbGljaWVzJyxcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG1hbmFnZWQgcG9saWNpZXMgKG9uIGFuIGlkZW50aXR5IHJlc291cmNlKVxuICAgKi9cbiAgTWFuYWdlZFBvbGljaWVzID0gJ01hbmFnZWRQb2xpY2llcycsXG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGluZ3Jlc3MgcnVsZXMgKG9uIGEgc2VjdXJpdHkgZ3JvdXApXG4gICAqL1xuICBJbmdyZXNzUnVsZXMgPSAnSW5ncmVzc1J1bGVzJyxcblxuICAvKipcbiAgICogQSBzZXQgb2YgZWdyZXNzIHJ1bGVzIChvbiBhIHNlY3VyaXR5IGdyb3VwKVxuICAgKi9cbiAgRWdyZXNzUnVsZXMgPSAnRWdyZXNzUnVsZXMnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSByZWxhdGlvbnNoaXAgcmVmZXJlbmNlIHRvIGFub3RoZXIgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbnNoaXBSZWYge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgdGhpcyBwcm9wZXJ0eSByZWZlcmVuY2VzXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IG5hbWUgd2l0aGluIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIChlLmcuLCBcIklkXCIpXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGVsaXZlcnkgZGVzdGluYXRpb24gdGhhdCBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBzZW5kIGxvZ3MgdG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxpdmVyeURlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHNlcnZpY2UgdGhhdCBpcyBpbmdlc3RpbmcgdGhlIGxvZ3MsIGNhbiBiZSBTMyB8IEZIIHwgQ1dMIHwgWFJBWVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25UeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBmb3JtYXQgb2YgbG9ncyBzZW50IHRvIHRoaXMgZGVsaXZlcnkgZGVzdGluYXRpb24sIGNhbiBiZSBqc29uIHwgcGFycXVldCB8IHczYyB8IHBsYWluIHwgcmF3IHwgdW5kZWZpbmVkXG4gICAqIFdoYXQgZm9ybWF0cyBhcmUgYXZhbGlibGUgdmFyeSBiYXNlZCBvbiBkZXN0aW5hdGlvblR5cGVcbiAgICogUzMgZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBqc29uLCBwbGFpbiwgdzNjLCBvciBwYXJxdWV0XG4gICAqIENsb3Vkd2F0Y2ggZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBwbGFpbiBvciBqc29uXG4gICAqIEZpcmVob3NlIGRlc3RpbmF0aW9uIHR5cGVzIGNhbiBhY2NlcHQganNvbiwgcmF3LCBvciBwYXJxdWV0XG4gICAqIFhSYXkgZGVzdGluYXRpb24gdHlwZXMgZG8gbm90IHVzZSBvdXRwdXQgZm9ybWF0c1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0Rm9ybWF0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0eXBlIG9mIGxvZyB0aGF0IGEgQ2xvdWRmb3JtYXRpb24gUmVzb3VyY2UgY2FuIHByb2R1Y2UgYW5kIHdoYXQgZGVzdGluYXRpb25zIGNhbiBjb25zdW1lIHRoZW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZW5kZWRMb2dzIHtcbiAgLyoqXG4gICAqIFdoYXQgdmVyc2lvbiBvZiBwZXJtaXNzaW9ucyB0aGUgZGVzdGluYXRpb24gc3VwcG9ydHMgVjEgfCBWMlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnNWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUeXBlIG9mIGxvZyBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBwcm9kdWNlXG4gICAqL1xuICByZWFkb25seSBsb2dUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHRoZSBkZXN0aW5hdGlvbnMgdGhlIGNhbiBjb25zdW1lIHRob3NlIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uczogRGVsaXZlcnlEZXN0aW5hdGlvbltdO1xuICAvKipcbiAgICogUmVjb3JkIGZpZWxkcyB0aGF0IGFyZSBtYW5kYXRvcnkgdG8gYmUgZGVsaXZlcmVkXG4gICAqL1xuICBtYW5kYXRvcnlGaWVsZHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFJlY29yZCBmaWVsZHMgdGhhdCBjYW4gYmUgb3B0aW9uYWxseSBkZWxpdmVyZWRcbiAgICovXG4gIG9wdGlvbmFsRmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBSaWNoUHJvcGVydHlUeXBlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0eXBlOiBQcm9wZXJ0eVR5cGUpIHt9XG5cbiAgcHVibGljIGVxdWFscyhyaHM6IFByb3BlcnR5VHlwZSk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgY2FzZSAnanNvbic6XG4gICAgICBjYXNlICdudWxsJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHJocy50eXBlID09PSB0aGlzLnR5cGUudHlwZTtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmVxdWFscyhyaHMuZWxlbWVudCk7XG4gICAgICBjYXNlICdyZWYnOlxuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdyZWYnICYmIHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZiA9PT0gcmhzLnJlZmVyZW5jZS4kcmVmO1xuICAgICAgY2FzZSAndW5pb24nOlxuICAgICAgICBjb25zdCBsaHNLZXkgPSB0aGlzLnNvcnRLZXkoKTtcbiAgICAgICAgY29uc3QgcmhzS2V5ID0gbmV3IFJpY2hQcm9wZXJ0eVR5cGUocmhzKS5zb3J0S2V5KCk7XG4gICAgICAgIHJldHVybiBsaHNLZXkubGVuZ3RoID09PSByaHNLZXkubGVuZ3RoICYmIGxoc0tleS5ldmVyeSgobCwgaSkgPT4gbCA9PT0gcmhzS2V5W2ldKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY3VycmVudCB0eXBlIGlzIEphdmFTY3JpcHQtZXF1YWwgdG8gdGhlIFJIUyB0eXBlXG4gICAqXG4gICAqIFNhbWUgYXMgbm9ybWFsIGVxdWFsaXR5LCBidXQgY29uc2lkZXIgYGludGVnZXJgIGFuZCBgbnVtYmVyYCB0aGUgc2FtZSB0eXBlcy5cbiAgICovXG4gIHB1YmxpYyBqYXZhc2NyaXB0RXF1YWxzKHJoczogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAvLyBXaWRlbmluZ1xuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdpbnRlZ2VyJyB8fCByaHMudHlwZSA9PT0gJ251bWJlcic7XG5cbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmphdmFzY3JpcHRFcXVhbHMocmhzLmVsZW1lbnQpO1xuXG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGlmIChyaHMudHlwZSAhPT0gJ3VuaW9uJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFdmVyeSB0eXBlIGluIHRoaXMgdW5pb24gbmVlZHMgdG8gYmUgZXF1YWwgb25lIHR5cGUgaW4gUkhTXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMuZXZlcnkoKHQxKSA9PiByaHMudHlwZXMuc29tZSgodDIpID0+IG5ldyBSaWNoUHJvcGVydHlUeXBlKHQxKS5qYXZhc2NyaXB0RXF1YWxzKHQyKSkpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBGb3IgYW55dGhpbmcgZWxzZSwgbmVlZCBzdHJpY3QgZXF1YWxpdHlcbiAgICAgICAgcmV0dXJuIHRoaXMuZXF1YWxzKHJocyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgdHlwZSBpcyBhc3NpZ25hYmxlIHRvIHRoZSBSSFMgdHlwZS5cbiAgICpcbiAgICogVGhpcyBpcyBtZWFucyBldmVyeSB0eXBlIG1lbWJlciBvZiB0aGUgTEhTIG11c3QgYmUgcHJlc2VudCBpbiB0aGUgUkhTIHR5cGVcbiAgICovXG4gIHB1YmxpYyBhc3NpZ25hYmxlVG8ocmhzOiBQcm9wZXJ0eVR5cGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHRyYWN0TWVtYmVycyA9ICh0eXBlOiBQcm9wZXJ0eVR5cGUpOiBQcm9wZXJ0eVR5cGVbXSA9PiAodHlwZS50eXBlID09ICd1bmlvbicgPyB0eXBlLnR5cGVzIDogW3R5cGVdKTtcbiAgICBjb25zdCBhc1JpY2hUeXBlID0gKHR5cGU6IFByb3BlcnR5VHlwZSk6IFJpY2hQcm9wZXJ0eVR5cGUgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodHlwZSk7XG5cbiAgICBjb25zdCByaHNNZW1iZXJzID0gZXh0cmFjdE1lbWJlcnMocmhzKTtcbiAgICBmb3IgKGNvbnN0IGxoc01lbWJlciBvZiBleHRyYWN0TWVtYmVycyh0aGlzLnR5cGUpLm1hcChhc1JpY2hUeXBlKSkge1xuICAgICAgaWYgKCFyaHNNZW1iZXJzLnNvbWUoKHR5cGUpID0+IGxoc01lbWJlci5lcXVhbHModHlwZSkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB2ZXJzaW9uIG9mIHRoaXMgdHlwZSwgYnV0IHdpdGggYWxsIHR5cGUgdW5pb25zIGluIGEgcmVndWxhcml6ZWQgb3JkZXJcbiAgICovXG4gIHB1YmxpYyBub3JtYWxpemUoZGI6IFNwZWNEYXRhYmFzZSk6IFJpY2hQcm9wZXJ0eVR5cGUge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBuZXcgUmljaFByb3BlcnR5VHlwZSh7XG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLnR5cGUsXG4gICAgICAgICAgZWxlbWVudDogbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLm5vcm1hbGl6ZShkYikudHlwZSxcbiAgICAgICAgfSk7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVzID0gdGhpcy50eXBlLnR5cGVzXG4gICAgICAgICAgLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkubm9ybWFsaXplKGRiKSlcbiAgICAgICAgICAubWFwKCh0KSA9PiBbdCwgdC5zb3J0S2V5KGRiKV0gYXMgY29uc3QpO1xuICAgICAgICB0eXBlcy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKChbXywgc29ydEtleV0pID0+IHNvcnRLZXkpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSaWNoUHJvcGVydHlUeXBlKHtcbiAgICAgICAgICB0eXBlOiAndW5pb24nLFxuICAgICAgICAgIHR5cGVzOiB0eXBlcy5tYXAoKFt0LCBfXSkgPT4gdC50eXBlKSxcbiAgICAgICAgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RyaW5naWZ5KGRiOiBTcGVjRGF0YWJhc2UsIHdpdGhJZCA9IHRydWUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcyA/IGBzdHJpbmc8JHt0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcy5qb2luKCd8Jyl9PmAgOiAnc3RyaW5nJztcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmFsbG93ZWRWYWx1ZXMgPyBgaW50ZWdlcjwke3RoaXMudHlwZS5hbGxvd2VkVmFsdWVzLmpvaW4oJ3wnKX0+YCA6ICdpbnRlZ2VyJztcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS50eXBlO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICByZXR1cm4gYEFycmF5PCR7bmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLnN0cmluZ2lmeShkYiwgd2l0aElkKX0+YDtcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBgTWFwPHN0cmluZywgJHtuZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc3RyaW5naWZ5KGRiLCB3aXRoSWQpfT5gO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgY29uc3QgdHlwZSA9IGRiLmdldCgndHlwZURlZmluaXRpb24nLCB0aGlzLnR5cGUucmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuIHdpdGhJZCA/IGAke3R5cGUubmFtZX0oJHt0aGlzLnR5cGUucmVmZXJlbmNlLiRyZWZ9KWAgOiB0eXBlLm5hbWU7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMubWFwKCh0KSA9PiBuZXcgUmljaFByb3BlcnR5VHlwZSh0KS5zdHJpbmdpZnkoZGIsIHdpdGhJZCkpLmpvaW4oJyB8ICcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzb3J0YWJsZSBrZXkgYmFzZWQgb24gdGhpcyB0eXBlXG4gICAqXG4gICAqIElmIGEgZGF0YWJhc2UgaXMgZ2l2ZW4sIHR5cGUgZGVmaW5pdGlvbnMgd2lsbCBiZSBzb3J0ZWQgYmFzZWQgb24gdHlwZSBuYW1lLFxuICAgKiBvdGhlcndpc2Ugb24gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIHNvcnRLZXkoZGI/OiBTcGVjRGF0YWJhc2UpOiBzdHJpbmdbXSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICd0YWcnOlxuICAgICAgICByZXR1cm4gWycwJywgdGhpcy50eXBlLnR5cGVdO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnbWFwJzpcbiAgICAgICAgcmV0dXJuIFsnMScsIHRoaXMudHlwZS50eXBlLCAuLi5uZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc29ydEtleShkYildO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgcmV0dXJuIFsnMicsIHRoaXMudHlwZS50eXBlLCBkYj8uZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHRoaXMudHlwZS5yZWZlcmVuY2UpPy5uYW1lID8/IHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZl07XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVLZXlzID0gdGhpcy50eXBlLnR5cGVzLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkuc29ydEtleShkYikpO1xuICAgICAgICB0eXBlS2V5cy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKCh4KSA9PiB4KSk7XG4gICAgICAgIHJldHVybiBbJzMnLCB0aGlzLnR5cGUudHlwZSwgLi4udHlwZUtleXMuZmxhdE1hcCgoeCkgPT4geCldO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVR5cGUgPSBHZW5lcmljUHJvcGVydHlUeXBlPFR5cGVEZWZpbml0aW9uPjtcbmV4cG9ydCB0eXBlIERlZmluaXRpb25SZWZlcmVuY2UgPSBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZTxUeXBlRGVmaW5pdGlvbj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortKeyComparator = sortKeyComparator;\n/**\n * Make a sorting comparator that will sort by a given sort key\n */\nfunction sortKeyComparator(keyFn) {\n return (a, b) => {\n const ak = keyFn(a);\n const bk = keyFn(b);\n for (let i = 0; i < ak.length && i < bk.length; i++) {\n const av = ak[i];\n const bv = bk[i];\n let diff = 0;\n if (typeof av === 'number' && typeof bv === 'number') {\n diff = av - bv;\n }\n else if (typeof av === 'string' && typeof bv === 'string') {\n diff = av.localeCompare(bv);\n }\n if (diff !== 0) {\n return diff;\n }\n }\n return bk.length - ak.length;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3NvcnRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4Q0F1QkM7QUExQkQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBSSxLQUF1QztJQUMxRSxPQUFPLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBVSxFQUFFO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNiLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDO2lCQUFNLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1ha2UgYSBzb3J0aW5nIGNvbXBhcmF0b3IgdGhhdCB3aWxsIHNvcnQgYnkgYSBnaXZlbiBzb3J0IGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydEtleUNvbXBhcmF0b3I8QT4oa2V5Rm46ICh4OiBBKSA9PiBBcnJheTxzdHJpbmcgfCBudW1iZXI+KSB7XG4gIHJldHVybiAoYTogQSwgYjogQSk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgYWsgPSBrZXlGbihhKTtcbiAgICBjb25zdCBiayA9IGtleUZuKGIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhay5sZW5ndGggJiYgaSA8IGJrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhdiA9IGFrW2ldO1xuICAgICAgY29uc3QgYnYgPSBia1tpXTtcblxuICAgICAgbGV0IGRpZmYgPSAwO1xuICAgICAgaWYgKHR5cGVvZiBhdiA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGJ2ID09PSAnbnVtYmVyJykge1xuICAgICAgICBkaWZmID0gYXYgLSBidjtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGF2ID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgYnYgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRpZmYgPSBhdi5sb2NhbGVDb21wYXJlKGJ2KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpZmYgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGRpZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJrLmxlbmd0aCAtIGFrLmxlbmd0aDtcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BootstrapTemplate = exports.BootstrapSource = exports.BootstrapStackParameters = exports.BootstrapEnvironments = void 0;\nconst path = require(\"path\");\nconst private_1 = require(\"./private\");\nconst private_2 = require(\"../../api/cloud-assembly/private\");\nconst private_3 = require(\"../../api/io/private\");\nconst private_4 = require(\"../../toolkit/private\");\nconst util_1 = require(\"../../util\");\n/**\n * Create manage bootstrap environments\n */\nclass BootstrapEnvironments {\n envProvider;\n /**\n * Create from a list of environment descriptors\n * List of strings like `['aws://012345678912/us-east-1', 'aws://234567890123/eu-west-1']`\n */\n static fromList(environments) {\n return new BootstrapEnvironments((0, private_1.environmentsFromDescriptors)(environments));\n }\n /**\n * Create from a cloud assembly source\n */\n static fromCloudAssemblySource(cx) {\n return new BootstrapEnvironments(async (ioHost) => {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_3.asIoHelper)(ioHost, 'bootstrap');\n const assembly = __addDisposableResource(env_1, await (0, private_4.assemblyFromSource)(ioHelper, cx), true);\n const stackCollection = await assembly.selectStacksV2(private_2.ALL_STACKS);\n return stackCollection.stackArtifacts.map(stack => stack.environment);\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n });\n }\n constructor(envProvider) {\n this.envProvider = envProvider;\n }\n /**\n * Compute the bootstrap enviornments\n *\n * @internal\n */\n async getEnvironments(ioHost) {\n if (Array.isArray(this.envProvider)) {\n return this.envProvider;\n }\n return this.envProvider(ioHost);\n }\n}\nexports.BootstrapEnvironments = BootstrapEnvironments;\n/**\n * Parameters of the bootstrapping template with flexible configuration options\n */\nclass BootstrapStackParameters {\n /**\n * Use only existing parameters on the stack.\n */\n static onlyExisting() {\n return new BootstrapStackParameters({}, true);\n }\n /**\n * Use exactly these parameters and remove any other existing parameters from the stack.\n */\n static exactly(params) {\n return new BootstrapStackParameters(params, false);\n }\n /**\n * Define additional parameters for the stack, while keeping existing parameters for unspecified values.\n */\n static withExisting(params) {\n return new BootstrapStackParameters(params, true);\n }\n /**\n * The parameters as a Map for easy access and manipulation\n */\n parameters;\n keepExistingParameters;\n constructor(params, usePreviousParameters = true) {\n this.keepExistingParameters = usePreviousParameters;\n this.parameters = params;\n }\n}\nexports.BootstrapStackParameters = BootstrapStackParameters;\n/**\n * Source configuration for bootstrap operations\n */\nclass BootstrapSource {\n /**\n * Use the default bootstrap template\n */\n static default() {\n return { source: 'default' };\n }\n /**\n * Use a custom bootstrap template\n */\n static customTemplate(templateFile) {\n return {\n source: 'custom',\n templateFile,\n };\n }\n}\nexports.BootstrapSource = BootstrapSource;\n/**\n * Represents a bootstrap template that can be serialized to YAML or JSON\n */\nclass BootstrapTemplate {\n template;\n /**\n * Load a bootstrap template from a source\n *\n * @param source - The bootstrap template source configuration\n * @returns A BootstrapTemplate instance\n */\n static async fromSource(source = { source: 'default' }) {\n let template;\n switch (source.source) {\n case 'custom':\n template = await (0, util_1.loadStructuredFile)(source.templateFile);\n break;\n case 'default':\n template = await (0, util_1.loadStructuredFile)(path.join((0, util_1.bundledPackageRootDir)(__dirname), 'lib', 'api', 'bootstrap', 'bootstrap-template.yaml'));\n break;\n }\n return new BootstrapTemplate(template);\n }\n constructor(template) {\n this.template = template;\n }\n /**\n * Serialize the template as YAML\n *\n * @returns The template as a YAML string\n */\n asYAML() {\n return (0, util_1.serializeStructure)(this.template, false);\n }\n /**\n * Serialize the template as JSON\n *\n * @returns The template as a JSON string\n */\n asJSON() {\n return (0, util_1.serializeStructure)(this.template, true);\n }\n}\nexports.BootstrapTemplate = BootstrapTemplate;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBRTdCLHVDQUF3RDtBQUV4RCw4REFBOEQ7QUFFOUQsa0RBQWtEO0FBRWxELG1EQUEyRDtBQUMzRCxxQ0FBMkY7QUFFM0Y7O0dBRUc7QUFDSCxNQUFhLHFCQUFxQjtJQXFCSztJQXBCckM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFzQjtRQUNwQyxPQUFPLElBQUkscUJBQXFCLENBQUMsSUFBQSxxQ0FBMkIsRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUF3QjtRQUNyRCxPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQWUsRUFBRSxFQUFFOzs7Z0JBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUEsb0JBQVUsRUFBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ2pELE1BQVksUUFBUSxrQ0FBRyxNQUFNLElBQUEsNEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFBLENBQUM7Z0JBQzlELE1BQU0sZUFBZSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBVSxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7O1NBQ3ZFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxXQUFzRjtRQUF0RixnQkFBVyxHQUFYLFdBQVcsQ0FBMkU7SUFFM0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQWU7UUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQXBDRCxzREFvQ0M7QUFxSkQ7O0dBRUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNuQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUEyQjtRQUMvQyxPQUFPLElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBMkI7UUFDcEQsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxVQUFVLENBQXVCO0lBQ2pDLHNCQUFzQixDQUFVO0lBRWhELFlBQW9CLE1BQTRCLEVBQUUscUJBQXFCLEdBQUcsSUFBSTtRQUM1RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBaENELDREQWdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBb0I7UUFDeEMsT0FBTztZQUNMLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFlBQVk7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBakJELDBDQWlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFzQlM7SUFyQnJDOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBcUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ2hGLElBQUksUUFBYSxDQUFDO1FBRWxCLFFBQVEsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLEtBQUssUUFBUTtnQkFDWCxRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekQsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSw0QkFBcUIsRUFBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZJLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFxQyxRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUExQ0QsOENBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IGVudmlyb25tZW50c0Zyb21EZXNjcmlwdG9ycyB9IGZyb20gJy4vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEFMTF9TVEFDS1MgfSBmcm9tICcuLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElJb0hvc3QgfSBmcm9tICcuLi8uLi9hcGkvaW8nO1xuaW1wb3J0IHsgYXNJb0hlbHBlciB9IGZyb20gJy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tU291cmNlIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IGJ1bmRsZWRQYWNrYWdlUm9vdERpciwgbG9hZFN0cnVjdHVyZWRGaWxlLCBzZXJpYWxpemVTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBDcmVhdGUgbWFuYWdlIGJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgZnJvbSBhIGxpc3Qgb2YgZW52aXJvbm1lbnQgZGVzY3JpcHRvcnNcbiAgICogTGlzdCBvZiBzdHJpbmdzIGxpa2UgYFsnYXdzOi8vMDEyMzQ1Njc4OTEyL3VzLWVhc3QtMScsICdhd3M6Ly8yMzQ1Njc4OTAxMjMvZXUtd2VzdC0xJ11gXG4gICAqL1xuICBzdGF0aWMgZnJvbUxpc3QoZW52aXJvbm1lbnRzOiBzdHJpbmdbXSk6IEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBFbnZpcm9ubWVudHMoZW52aXJvbm1lbnRzRnJvbURlc2NyaXB0b3JzKGVudmlyb25tZW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBzdGF0aWMgZnJvbUNsb3VkQXNzZW1ibHlTb3VyY2UoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlKTogQm9vdHN0cmFwRW52aXJvbm1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcEVudmlyb25tZW50cyhhc3luYyAoaW9Ib3N0OiBJSW9Ib3N0KSA9PiB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIoaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZShpb0hlbHBlciwgY3gpO1xuICAgICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoQUxMX1NUQUNLUyk7XG4gICAgICByZXR1cm4gc3RhY2tDb2xsZWN0aW9uLnN0YWNrQXJ0aWZhY3RzLm1hcChzdGFjayA9PiBzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW52UHJvdmlkZXI6IGN4YXBpLkVudmlyb25tZW50W10gfCAoKGlvSG9zdDogSUlvSG9zdCkgPT4gUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPikpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdGhlIGJvb3RzdHJhcCBlbnZpb3JubWVudHNcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBnZXRFbnZpcm9ubWVudHMoaW9Ib3N0OiBJSW9Ib3N0KTogUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5lbnZQcm92aWRlcikpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudlByb3ZpZGVyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnZQcm92aWRlcihpb0hvc3QpO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIHdoZW4gZGVwbG95aW5nIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwRW52aXJvbm1lbnRQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgc291cmNlIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBvbmx5IGNyZWF0ZSBpdCBhbmQgbGVhdmUgaXQgaW4gcmV2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIGZvciBjZGt0b29sa2l0IHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tcHJvdGVjdC1zdGFja3MuaHRtbFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIGRlcGxveW1lbnQgaWYgYSBib290c3RyYXAgc3RhY2sgYWxyZWFkeSBleGlzdHNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVyIHZhbHVlcyBmb3IgdGhlIGJvb3RzdHJhcHBpbmcgdGVtcGxhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRvIGJlIGdpdmVuIHRvIHRoZSBDREsgQm9vdHN0cmFwIGJ1Y2tldFxuICAgKiBCeSBkZWZhdWx0LCBhIG5hbWUgaXMgZ2VuZXJhdGVkIGJ5IENsb3VkRm9ybWF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgYW4gZXhpc3RpbmcgS01TIGtleSB0byBiZSB1c2VkIGZvciBlbmNyeXB0aW5nIGl0ZW1zIGluIHRoZSBidWNrZXRcbiAgICogQnkgZGVmYXVsdCwgdGhlIGRlZmF1bHQgS01TIGtleSBpcyB1c2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSBrbXNLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gY3JlYXRlIGEgbmV3IGN1c3RvbWVyIG1hc3RlciBrZXkgKENNSylcbiAgICpcbiAgICogT25seSBhcHBsaWVzIHRvIG1vZGVybiBib290c3RyYXBwaW5nXG4gICAqIExlZ2FjeSBib290c3RyYXBwaW5nIHdpbGwgbmV2ZXIgY3JlYXRlIGEgQ01LLCBvbmx5IHVzZSB0aGUgZGVmYXVsdCBTMyBrZXlcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUN1c3RvbWVyTWFzdGVyS2V5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgYXJlIHRydXN0ZWQgdG8gZGVwbG95IGludG8gdGhlIGVudmlyb25tZW50IGJlaW5nIGJvb3RzdHJhcHBlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdHJ1c3RlZEFjY291bnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IGFyZSB0cnVzdGVkIHRvIGxvb2sgdXAgdmFsdWVzIGluIHRoZSBlbnZpcm9ubWVudCBiZWluZyBib290c3RyYXBwZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBzaG91bGQgbm90IGJlIHRydXN0ZWQgYnkgdGhlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudFxuICAgKiBJZiB0aGVzZSBhY2NvdW50cyBhcmUgYWxyZWFkeSB0cnVzdGVkLCB0aGV5IHdpbGwgYmUgcmVtb3ZlZCBvbiBib290c3RyYXBwaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB1bnRydXN0ZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOcyBvZiB0aGUgSUFNIG1hbmFnZWQgcG9saWNpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIHJvbGUgcGVyZm9ybWluZyBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50c1xuICAgKiBJbiBtb3N0IGNhc2VzLCB0aGlzIHdpbGwgYmUgdGhlIEFkbWluaXN0cmF0b3JBY2Nlc3MgcG9saWN5XG4gICAqIEF0IGxlYXN0IG9uZSBwb2xpY3kgaXMgcmVxdWlyZWQgaWYgYHRydXN0ZWRBY2NvdW50c2Agd2VyZSBwYXNzZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllciB0byBkaXN0aW5ndWlzaCBtdWx0aXBsZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRzXG4gICAqIFRoZSBkZWZhdWx0IHF1YWxpZmllciBpcyBhbiBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBzdHJpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgJ2huYjY1OWZkcydcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIFMzIFN0YWdpbmcgQnVja2V0IFB1YmxpYyBBY2Nlc3MgQmxvY2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgY3VzdG9tZXIncyBjdXN0b20gcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ25vLW9wJztcbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50Qm9vdHN0cmFwUmVzdWx0W107XG4gIGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBvZiB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZSB3aXRoIGZsZXhpYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IEJvb3RzdHJhcFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RhY2ssIHdoaWxlIGtlZXBpbmcgZXhpc3RpbmcgcGFyYW1ldGVycyBmb3IgdW5zcGVjaWZpZWQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoRXhpc3RpbmcocGFyYW1zOiBCb290c3RyYXBQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBhcyBhIE1hcCBmb3IgZWFzeSBhY2Nlc3MgYW5kIG1hbmlwdWxhdGlvblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBCb290c3RyYXBQYXJhbWV0ZXJzO1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtcz86IEJvb3RzdHJhcFBhcmFtZXRlcnMsIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1zO1xuICB9XG59XG5cbi8qKlxuICogU291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGJvb3RzdHJhcCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTb3VyY2Uge1xuICAvKipcbiAgICogVXNlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGRlZmF1bHQoKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7IHNvdXJjZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgY3VzdG9tIGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGN1c3RvbVRlbXBsYXRlKHRlbXBsYXRlRmlsZTogc3RyaW5nKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICdjdXN0b20nLFxuICAgICAgdGVtcGxhdGVGaWxlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYm9vdHN0cmFwIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHNlcmlhbGl6ZWQgdG8gWUFNTCBvciBKU09OXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBUZW1wbGF0ZSB7XG4gIC8qKlxuICAgKiBMb2FkIGEgYm9vdHN0cmFwIHRlbXBsYXRlIGZyb20gYSBzb3VyY2VcbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZSAtIFRoZSBib290c3RyYXAgdGVtcGxhdGUgc291cmNlIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQSBCb290c3RyYXBUZW1wbGF0ZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGZyb21Tb3VyY2Uoc291cmNlOiBCb290c3RyYXBPcHRpb25zWydzb3VyY2UnXSA9IHsgc291cmNlOiAnZGVmYXVsdCcgfSk6IFByb21pc2U8Qm9vdHN0cmFwVGVtcGxhdGU+IHtcbiAgICBsZXQgdGVtcGxhdGU6IGFueTtcblxuICAgIHN3aXRjaCAoc291cmNlLnNvdXJjZSkge1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgdGVtcGxhdGUgPSBhd2FpdCBsb2FkU3RydWN0dXJlZEZpbGUoc291cmNlLnRlbXBsYXRlRmlsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgIHRlbXBsYXRlID0gYXdhaXQgbG9hZFN0cnVjdHVyZWRGaWxlKHBhdGguam9pbihidW5kbGVkUGFja2FnZVJvb3REaXIoX19kaXJuYW1lKSwgJ2xpYicsICdhcGknLCAnYm9vdHN0cmFwJywgJ2Jvb3RzdHJhcC10ZW1wbGF0ZS55YW1sJykpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFRlbXBsYXRlKHRlbXBsYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZTogYW55KSB7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0ZW1wbGF0ZSBhcyBZQU1MXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0ZW1wbGF0ZSBhcyBhIFlBTUwgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgYXNZQU1MKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZSh0aGlzLnRlbXBsYXRlLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0ZW1wbGF0ZSBhcyBKU09OXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0ZW1wbGF0ZSBhcyBhIEpTT04gc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgYXNKU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZSh0aGlzLnRlbXBsYXRlLCB0cnVlKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.environmentsFromDescriptors = environmentsFromDescriptors;\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\n/**\n * Given a set of \"/\" strings, construct environments for them\n */\nfunction environmentsFromDescriptors(envSpecs) {\n const ret = new Array();\n for (const spec of envSpecs) {\n const parts = spec.replace(/^aws:\\/\\//, '').split('/');\n if (parts.length !== 2) {\n throw new toolkit_error_1.ToolkitError('InvalidEnvironmentFormat', `Expected environment name in format 'aws:///', got: ${spec}`);\n }\n ret.push({\n name: spec,\n account: parts[0],\n region: parts[1],\n });\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxrRUFpQkM7QUF0QkQsa0VBQThEO0FBRTlEOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsUUFBa0I7SUFDNUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQXFCLENBQUM7SUFFM0MsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDBCQUEwQixFQUFFLHdFQUF3RSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JJLENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ1AsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqQixNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBHaXZlbiBhIHNldCBvZiBcIjxhY2NvdW50Pi88cmVnaW9uPlwiIHN0cmluZ3MsIGNvbnN0cnVjdCBlbnZpcm9ubWVudHMgZm9yIHRoZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudmlyb25tZW50c0Zyb21EZXNjcmlwdG9ycyhlbnZTcGVjczogc3RyaW5nW10pOiBjeGFwaS5FbnZpcm9ubWVudFtdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PGN4YXBpLkVudmlyb25tZW50PigpO1xuXG4gIGZvciAoY29uc3Qgc3BlYyBvZiBlbnZTcGVjcykge1xuICAgIGNvbnN0IHBhcnRzID0gc3BlYy5yZXBsYWNlKC9eYXdzOlxcL1xcLy8sICcnKS5zcGxpdCgnLycpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRFbnZpcm9ubWVudEZvcm1hdCcsIGBFeHBlY3RlZCBlbnZpcm9ubWVudCBuYW1lIGluIGZvcm1hdCAnYXdzOi8vPGFjY291bnQ+LzxyZWdpb24+JywgZ290OiAke3NwZWN9YCk7XG4gICAgfVxuXG4gICAgcmV0LnB1c2goe1xuICAgICAgbmFtZTogc3BlYyxcbiAgICAgIGFjY291bnQ6IHBhcnRzWzBdLFxuICAgICAgcmVnaW9uOiBwYXJ0c1sxXSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackParameters = exports.AssetBuildTime = void 0;\n/**\n * When to build assets\n */\nvar AssetBuildTime;\n(function (AssetBuildTime) {\n /**\n * Build all assets before deploying the first stack\n *\n * This is intended for expensive Docker image builds; so that if the Docker image build\n * fails, no stacks are unnecessarily deployed (with the attendant wait time).\n */\n AssetBuildTime[\"ALL_BEFORE_DEPLOY\"] = \"all-before-deploy\";\n /**\n * Build assets just-in-time, before publishing\n */\n AssetBuildTime[\"JUST_IN_TIME\"] = \"just-in-time\";\n})(AssetBuildTime || (exports.AssetBuildTime = AssetBuildTime = {}));\nclass StackParameters {\n /**\n * Use only existing parameters on the stack.\n */\n static onlyExisting() {\n return new StackParameters({}, true);\n }\n /**\n * Use exactly these parameters and remove any other existing parameters from the stack.\n */\n static exactly(params) {\n return new StackParameters(params, false);\n }\n /**\n * Define additional parameters for the stack, while keeping existing parameters for unspecified values.\n */\n static withExisting(params) {\n return new StackParameters(params, true);\n }\n parameters;\n keepExistingParameters;\n constructor(params, usePreviousParameters = true) {\n this.keepExistingParameters = usePreviousParameters;\n this.parameters = new Map(Object.entries(params));\n }\n}\nexports.StackParameters = StackParameters;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1RUE7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxNQUFhLGVBQWU7SUFDMUI7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQThDO1FBQ2xFLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBOEM7UUFDdkUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVlLFVBQVUsQ0FBa0M7SUFDNUMsc0JBQXNCLENBQVU7SUFFaEQsWUFBb0IsTUFBOEMsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1FBQzlGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE3QkQsMENBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQgfCBIb3Rzd2FwRGVwbG95bWVudDtcblxuLyoqXG4gKiBVc2Ugc3RhY2sgQVBJcyB0byB0aGUgZGVwbG95IHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3REZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZGlyZWN0Jztcbn1cblxuLyoqXG4gKiBVc2UgY2hhbmdlLXNldCBBUElzIHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnY2hhbmdlLXNldCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgY2hhbmdlc2V0IG9yIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY2hhbmdlIHNldCBpbXBvcnRzIHJlc291cmNlcyB0aGF0IGFscmVhZHkgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkcmlmdC1hd2FyZSBjaGFuZ2Ugc2V0IHRoYXQgYnJpbmdzIGFjdHVhbCByZXNvdXJjZSBzdGF0ZXMgaW4gbGluZSB3aXRoIHRlbXBsYXRlIGRlZmluaXRpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV2ZXJ0RHJpZnQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBlcmZvcm0gYSAnaG90c3dhcCcgZGVwbG95bWVudCB0byBkZXBsb3kgYSBzdGFjayBjaGFuZ2VzXG4gKlxuICogQSAnaG90c3dhcCcgZGVwbG95bWVudCB3aWxsIGF0dGVtcHQgdG8gc2hvcnQtY2lyY3VpdCBDbG91ZEZvcm1hdGlvblxuICogYW5kIHVwZGF0ZSB0aGUgYWZmZWN0ZWQgcmVzb3VyY2VzIGxpa2UgTGFtYmRhIGZ1bmN0aW9ucyBkaXJlY3RseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwRGVwbG95bWVudCB7XG4gIHJlYWRvbmx5IG1ldGhvZDogJ2hvdHN3YXAnO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgb3ZlcnJpZGVzIGZvciBob3Rzd2FwIGRlcGxveW1lbnRzLlxuICAgKiBDdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgYnkgRUNTLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG92ZXJyaWRlc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IEhvdHN3YXBQcm9wZXJ0aWVzO1xuXG4gIC8qKlxuICAgKiBGYWxsIGJhY2sgdG8gYSBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50IHdoZW4gYSBub24taG90c3dhcHBhYmxlIGNoYW5nZSBpcyBkZXRlY3RlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERvIG5vdCBmYWxsIGJhY2sgdG8gYSBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSBmYWxsYmFjaz86IERpcmVjdERlcGxveW1lbnQgfCBDaGFuZ2VTZXREZXBsb3ltZW50O1xufVxuXG4vKipcbiAqIFdoZW4gdG8gYnVpbGQgYXNzZXRzXG4gKi9cbmV4cG9ydCBlbnVtIEFzc2V0QnVpbGRUaW1lIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGFsbCBhc3NldHMgYmVmb3JlIGRlcGxveWluZyB0aGUgZmlyc3Qgc3RhY2tcbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbmRlZCBmb3IgZXhwZW5zaXZlIERvY2tlciBpbWFnZSBidWlsZHM7IHNvIHRoYXQgaWYgdGhlIERvY2tlciBpbWFnZSBidWlsZFxuICAgKiBmYWlscywgbm8gc3RhY2tzIGFyZSB1bm5lY2Vzc2FyaWx5IGRlcGxveWVkICh3aXRoIHRoZSBhdHRlbmRhbnQgd2FpdCB0aW1lKS5cbiAgICovXG4gIEFMTF9CRUZPUkVfREVQTE9ZID0gJ2FsbC1iZWZvcmUtZGVwbG95JyxcblxuICAvKipcbiAgICogQnVpbGQgYXNzZXRzIGp1c3QtaW4tdGltZSwgYmVmb3JlIHB1Ymxpc2hpbmdcbiAgICovXG4gIEpVU1RfSU5fVElNRSA9ICdqdXN0LWluLXRpbWUnLFxufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHN0YWNrLCB3aGlsZSBrZWVwaW5nIGV4aXN0aW5nIHBhcmFtZXRlcnMgZm9yIHVuc3BlY2lmaWVkIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aEV4aXN0aW5nKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIHB1YmxpYyByZWFkb25seSBrZWVwRXhpc3RpbmdQYXJhbWV0ZXJzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgdXNlUHJldmlvdXNQYXJhbWV0ZXJzID0gdHJ1ZSkge1xuICAgIHRoaXMua2VlcEV4aXN0aW5nUGFyYW1ldGVycyA9IHVzZVByZXZpb3VzUGFyYW1ldGVycztcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKHBhcmFtcykpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gZGVwbG95XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogUm9sZSB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3kgZXZlbiBpZiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBvbmUgd2UgYXJlIGFib3V0IHRvIGRlcGxveS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlcGxveW1lbnQgbWV0aG9kXG4gICAqXG4gICAqIEBkZWZhdWx0IENoYW5nZVNldERlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xuXG4gIC8qKlxuICAgKiBSb2xsYmFjayBmYWlsZWQgZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sbGJhY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IG9ycGhhbiByZXNvdXJjZXMgdGhhdCBmYWlsZWQgZHVyaW5nIHJvbGxiYWNrXG4gICAqXG4gICAqIEhhcyBubyBlZmZlY3QgaWYgYHJvbGxiYWNrYCBpcyBgZmFsc2VgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgb3JwaGFuRmFpbGVkUmVzb3VyY2VzRHVyaW5nUm9sbGJhY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3JjZSBhc3NldCBwdWJsaXNoaW5nIGV2ZW4gaWYgdGhlIGFzc2V0cyBoYXZlIG5vdCBjaGFuZ2VkXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZUFzc2V0UHVibGlzaGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldXNlIHRoZSBhc3NldHMgd2l0aCB0aGUgZ2l2ZW4gYXNzZXQgSURzXG4gICAqL1xuICByZWFkb25seSByZXVzZUFzc2V0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXMgZGVwbG95bWVudHMgKGRlcGVuZGVuY3kgcGVybWl0dGluZykgdG8gZXhlY3V0ZS5cbiAgICogVGhlIGRlZmF1bHQgaXMgJzEnLCB3aGljaCBleGVjdXRlcyBhbGwgZGVwbG95bWVudHMgc2VyaWFsbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNlbmQgbG9ncyBmcm9tIGFsbCBDbG91ZFdhdGNoIGxvZyBncm91cHMgaW4gdGhlIHRlbXBsYXRlXG4gICAqIHRvIHRoZSBJb0hvc3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFSTnMgb2YgU05TIHRvcGljcyB0aGF0IENsb3VkRm9ybWF0aW9uIHdpbGwgbm90aWZ5IHdpdGggc3RhY2sgcmVsYXRlZCBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGFncyB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFN0YWNrIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHVzZWQgYXQgZGVwbG95IHRpbWVcbiAgICogQGRlZmF1bHQgU3RhY2tQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIGZpbGUgd2hlcmUgc3RhY2sgb3V0cHV0cyB3aWxsIGJlIHdyaXR0ZW4gYWZ0ZXIgYSBzdWNjZXNzZnVsIGRlcGxveSBhcyBKU09OXG4gICAqIEBkZWZhdWx0IC0gT3V0cHV0cyBhcmUgbm90IHdyaXR0ZW4gdG8gYW55IGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHNGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZC9wdWJsaXNoIGFzc2V0cyBmb3IgYSBzaW5nbGUgc3RhY2sgaW4gcGFyYWxsZWxcbiAgICpcbiAgICogSW5kZXBlbmRlbnQgb2Ygd2hldGhlciBzdGFja3MgYXJlIGJlaW5nIGRvbmUgaW4gcGFyYWxsZWwgb3Igbm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0UGFyYWxsZWxpc20/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBhc3NldCBidWlsZHMgdG8gcnVuIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBvbmx5IGhhcyBhbiBlZmZlY3QgaWYgYGFzc2V0UGFyYWxsZWxpc21gIGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0QnVpbGRDb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIEVDUyBob3Rzd2Fwc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjc0hvdHN3YXBQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBsb3dlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgbXVzdCByZW1haW5cbiAgICogaW4gdGhlIFJVTk5JTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB1cHBlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgYXJlIGFsbG93ZWRcbiAgICogaW4gdGhlIFJVTk5JTkcgb3IgUEVORElORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgdG8gcmVhY2ggc3RhYmxlIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBFQ1Mgc3BlY2lmaWMgaG90c3dhcCBwcm9wZXJ0eSBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGVjcz86IEVjc0hvdHN3YXBQcm9wZXJ0aWVzO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2xvZ3MtbW9uaXRvci9sb2dzLW1vbml0b3InO1xuXG4vKipcbiAqIERlcGxveSBvcHRpb25zIG5lZWRlZCBieSB0aGUgd2F0Y2ggY29tbWFuZC5cbiAqXG4gKiBUaGVzZSBvcHRpb25zIGFyZSBub3QgcHVibGljIGZhY2luZy5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlRGVwbG95T3B0aW9ucyBleHRlbmRzIERlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGV4dHJhIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyIHdoZW4gcGVyZm9ybWluZyBBV1MgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdGhpbmcgZXh0cmEgaXMgYXBwZW5kZWQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyXG4gICAqL1xuICByZWFkb25seSBleHRyYVVzZXJBZ2VudD86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gdGhlIGxvZyBtb25pdG9yIHZpYVxuICAgKiBjbG91ZFdhdGNoTG9nTW9uaXRvci5zZXRMb2dHcm91cHMoKTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3QgbW9uaXRvcmluZyBDbG91ZFdhdGNoIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dNb25pdG9yPzogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_DEPLOY_CHANGE_SET_NAME = void 0;\nexports.isChangeSetDeployment = isChangeSetDeployment;\nexports.isExecutingChangeSetDeployment = isExecutingChangeSetDeployment;\nexports.isNonExecutingChangeSetDeployment = isNonExecutingChangeSetDeployment;\nexports.toExecuteChangeSetDeployment = toExecuteChangeSetDeployment;\nexports.DEFAULT_DEPLOY_CHANGE_SET_NAME = 'cdk-deploy-change-set';\n/**\n * Returns true if the deployment method is a change-set deployment.\n */\nfunction isChangeSetDeployment(method) {\n return method?.method === 'change-set';\n}\n/**\n * Returns true if the deployment method is a change-set deployment that will execute.\n */\nfunction isExecutingChangeSetDeployment(method) {\n return isChangeSetDeployment(method) && (method.execute ?? true);\n}\n/**\n * Returns true if the deployment method is a change-set deployment that will not execute.\n */\nfunction isNonExecutingChangeSetDeployment(method) {\n return isChangeSetDeployment(method) && (method.execute === false);\n}\n/**\n * Create an ExecuteChangeSetDeployment from a ChangeSetDeployment.\n */\nfunction toExecuteChangeSetDeployment(method) {\n return {\n method: 'execute-change-set',\n changeSetName: method.changeSetName ?? exports.DEFAULT_DEPLOY_CHANGE_SET_NAME,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC1tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ltZW50LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEwQkEsc0RBRUM7QUFLRCx3RUFFQztBQUtELDhFQUVDO0FBS0Qsb0VBS0M7QUFsRFksUUFBQSw4QkFBOEIsR0FBRyx1QkFBdUIsQ0FBQztBQXFCdEU7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxNQUF5QjtJQUM3RCxPQUFPLE1BQU0sRUFBRSxNQUFNLEtBQUssWUFBWSxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDhCQUE4QixDQUFDLE1BQXlCO0lBQ3RFLE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGlDQUFpQyxDQUFDLE1BQXlCO0lBQ3pFLE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDRCQUE0QixDQUFDLE1BQTJCO0lBQ3RFLE9BQU87UUFDTCxNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYSxJQUFJLHNDQUE4QjtLQUN0RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGVwbG95bWVudCwgRGVwbG95bWVudE1ldGhvZCB9IGZyb20gJy4uJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREVQTE9ZX0NIQU5HRV9TRVRfTkFNRSA9ICdjZGstZGVwbG95LWNoYW5nZS1zZXQnO1xuXG4vKipcbiAqIEV4ZWN1dGUgYSBwcmV2aW91c2x5IGNyZWF0ZWQgY2hhbmdlIHNldC5cbiAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgZGVwbG95bWVudCBtZXRob2QgdXNlZCBieSB0aGUgdHdvLXBoYXNlIGRlcGxveSBmbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZXhlY3V0ZS1jaGFuZ2Utc2V0JztcbiAgcmVhZG9ubHkgY2hhbmdlU2V0TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY2hhbmdlIHNldCBkZXBsb3ltZW50IHRoYXQgd2lsbCBleGVjdXRlLlxuICovXG5leHBvcnQgdHlwZSBFeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50ID0gQ2hhbmdlU2V0RGVwbG95bWVudCAmIHsgZXhlY3V0ZTogdHJ1ZSB9O1xuXG4vKipcbiAqIEEgY2hhbmdlIHNldCBkZXBsb3ltZW50IHRoYXQgd2lsbCBub3QgZXhlY3V0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgTm9uRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudCA9IENoYW5nZVNldERlcGxveW1lbnQgJiB7IGV4ZWN1dGU6IGZhbHNlIH07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBkZXBsb3ltZW50IG1ldGhvZCBpcyBhIGNoYW5nZS1zZXQgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2hhbmdlU2V0RGVwbG95bWVudChtZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kKTogbWV0aG9kIGlzIENoYW5nZVNldERlcGxveW1lbnQge1xuICByZXR1cm4gbWV0aG9kPy5tZXRob2QgPT09ICdjaGFuZ2Utc2V0Jztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRlcGxveW1lbnQgbWV0aG9kIGlzIGEgY2hhbmdlLXNldCBkZXBsb3ltZW50IHRoYXQgd2lsbCBleGVjdXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50KG1ldGhvZD86IERlcGxveW1lbnRNZXRob2QpOiBtZXRob2QgaXMgRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudCB7XG4gIHJldHVybiBpc0NoYW5nZVNldERlcGxveW1lbnQobWV0aG9kKSAmJiAobWV0aG9kLmV4ZWN1dGUgPz8gdHJ1ZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBkZXBsb3ltZW50IG1ldGhvZCBpcyBhIGNoYW5nZS1zZXQgZGVwbG95bWVudCB0aGF0IHdpbGwgbm90IGV4ZWN1dGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05vbkV4ZWN1dGluZ0NoYW5nZVNldERlcGxveW1lbnQobWV0aG9kPzogRGVwbG95bWVudE1ldGhvZCk6IG1ldGhvZCBpcyBOb25FeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmV0dXJuIGlzQ2hhbmdlU2V0RGVwbG95bWVudChtZXRob2QpICYmIChtZXRob2QuZXhlY3V0ZSA9PT0gZmFsc2UpO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudCBmcm9tIGEgQ2hhbmdlU2V0RGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRXhlY3V0ZUNoYW5nZVNldERlcGxveW1lbnQobWV0aG9kOiBDaGFuZ2VTZXREZXBsb3ltZW50KTogRXhlY3V0ZUNoYW5nZVNldERlcGxveW1lbnQge1xuICByZXR1cm4ge1xuICAgIG1ldGhvZDogJ2V4ZWN1dGUtY2hhbmdlLXNldCcsXG4gICAgY2hhbmdlU2V0TmFtZTogbWV0aG9kLmNoYW5nZVNldE5hbWUgPz8gREVGQVVMVF9ERVBMT1lfQ0hBTkdFX1NFVF9OQU1FLFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildParameterMap = buildParameterMap;\nexports.removePublishedAssetsFromWorkGraph = removePublishedAssetsFromWorkGraph;\nfunction buildParameterMap(parameters) {\n const parameterMap = {};\n parameterMap['*'] = {};\n const entries = parameters?.entries() ?? [];\n for (const [key, value] of entries) {\n const [stack, parameter] = key.split(':', 2);\n if (!parameter) {\n parameterMap['*'][stack] = value;\n }\n else {\n if (!parameterMap[stack]) {\n parameterMap[stack] = {};\n }\n parameterMap[stack][parameter] = value;\n }\n }\n return parameterMap;\n}\n/**\n * Remove the asset publishing and building from the work graph for assets that are already in place\n */\nasync function removePublishedAssetsFromWorkGraph(graph, deployments, options) {\n await graph.removeUnnecessaryAssets(assetNode => deployments.isSingleAssetPublished(assetNode.assetManifest, assetNode.asset, {\n stack: assetNode.parentStack,\n roleArn: options.roleArn,\n stackName: assetNode.parentStack.stackName,\n }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw4Q0FvQkM7QUFLRCxnRkFNQztBQS9CRCxTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0NBQWtDLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3pILE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50cyB9IGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cyc7XG5pbXBvcnQgdHlwZSB7IFdvcmtHcmFwaCB9IGZyb20gJy4uLy4uLy4uL2FwaS93b3JrLWdyYXBoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGFyYW1ldGVyTWFwKHBhcmFtZXRlcnM/OiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KTogeyBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfSB7XG4gIGNvbnN0IHBhcmFtZXRlck1hcDoge1xuICAgIFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgfSA9IHt9O1xuICBwYXJhbWV0ZXJNYXBbJyonXSA9IHt9O1xuXG4gIGNvbnN0IGVudHJpZXMgPSBwYXJhbWV0ZXJzPy5lbnRyaWVzKCkgPz8gW107XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBbc3RhY2ssIHBhcmFtZXRlcl0gPSBrZXkuc3BsaXQoJzonLCAyKSBhcyBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdO1xuICAgIGlmICghcGFyYW1ldGVyKSB7XG4gICAgICBwYXJhbWV0ZXJNYXBbJyonXVtzdGFja10gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFwYXJhbWV0ZXJNYXBbc3RhY2tdKSB7XG4gICAgICAgIHBhcmFtZXRlck1hcFtzdGFja10gPSB7fTtcbiAgICAgIH1cbiAgICAgIHBhcmFtZXRlck1hcFtzdGFja11bcGFyYW1ldGVyXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJhbWV0ZXJNYXA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBhc3NldCBwdWJsaXNoaW5nIGFuZCBidWlsZGluZyBmcm9tIHRoZSB3b3JrIGdyYXBoIGZvciBhc3NldHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBwbGFjZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVtb3ZlUHVibGlzaGVkQXNzZXRzRnJvbVdvcmtHcmFwaChncmFwaDogV29ya0dyYXBoLCBkZXBsb3ltZW50czogRGVwbG95bWVudHMsIG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgYXdhaXQgZ3JhcGgucmVtb3ZlVW5uZWNlc3NhcnlBc3NldHMoYXNzZXROb2RlID0+IGRlcGxveW1lbnRzLmlzU2luZ2xlQXNzZXRQdWJsaXNoZWQoYXNzZXROb2RlLmFzc2V0TWFuaWZlc3QsIGFzc2V0Tm9kZS5hc3NldCwge1xuICAgIHN0YWNrOiBhc3NldE5vZGUucGFyZW50U3RhY2ssXG4gICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIHN0YWNrTmFtZTogYXNzZXROb2RlLnBhcmVudFN0YWNrLnN0YWNrTmFtZSxcbiAgfSkpO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./deploy-options\"), exports);\n__exportStar(require(\"./deployment-method\"), exports);\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLHNEQUFvQztBQUNwQyw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RlcGxveS1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwbG95bWVudC1tZXRob2QnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJuIG9mIHRoZSBJQU0gcm9sZSB0byB1c2UgZm9yIHRoZSBzdGFjayBkZXN0cm95IG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGRlc3Ryb3lzIChkZXBlbmRlbmN5IHBlcm1pdHRpbmcpIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogbnVtYmVyO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffMethod = void 0;\nclass DiffMethod {\n method;\n options;\n /**\n * Use a changeset to compute the diff.\n *\n * This will create, analyze, and subsequently delete a changeset against the CloudFormation stack.\n */\n static ChangeSet(options = {}) {\n return new class extends DiffMethod {\n options;\n constructor(opts) {\n super('change-set', opts);\n this.options = opts;\n }\n }(options);\n }\n static TemplateOnly(options = {}) {\n return new class extends DiffMethod {\n options;\n constructor(opts) {\n super('template-only', opts);\n this.options = opts;\n }\n }(options);\n }\n /**\n * Use a local template file to compute the diff.\n */\n static LocalFile(path) {\n return new class extends DiffMethod {\n options;\n constructor(opts) {\n super('local-file', opts);\n this.options = opts;\n }\n }({ path });\n }\n constructor(method, options) {\n this.method = method;\n this.options = options;\n }\n}\nexports.DiffMethod = DiffMethod;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0EsTUFBYSxVQUFVO0lBd0NIO0lBQ0E7SUF4Q2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBbUI7WUFDbkQsWUFBbUIsSUFBMEI7Z0JBQzNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNrQixNQUFxRCxFQUNyRCxPQUFnRjtRQURoRixXQUFNLEdBQU4sTUFBTSxDQUErQztRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUF5RTtJQUVsRyxDQUFDO0NBQ0Y7QUE1Q0QsZ0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBkaWZmIGFnYWluc3QgdGhlIHRlbXBsYXRlIGFmdGVyIHRoZSBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm1zIGluc2lkZSBpdCBoYXZlIGJlZW4gZXhlY3V0ZWRcbiAgICogKGFzIG9wcG9zZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLCB0aGUgZGVmYXVsdCwgd2hpY2ggY29udGFpbnMgdGhlIHVucHJvY2Vzc2VkIFRyYW5zZm9ybXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGlmZk9wdGlvbnMgZXh0ZW5kcyBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmYWxsaW5nIGJhY2sgdG8gdGVtcGxhdGUtYmFzZWQgZGlmZiBpbiBjYXNlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaXMgbm90IHBvc3NpYmxlIG9yIHJlc3VsdHMgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIGZvciBzdGFja3MgY29udGFpbmluZyBuZXN0ZWQgc3RhY2tzIG9yIHdoZW4gY2hhbmdlIHNldCBwZXJtaXNzaW9ucyBhcmVuJ3QgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja1RvVGVtcGxhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBkaWZmIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsRmlsZURpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGxvY2FsIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmTWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBhIGNoYW5nZXNldCB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlLCBhbmFseXplLCBhbmQgc3Vic2VxdWVudGx5IGRlbGV0ZSBhIGNoYW5nZXNldCBhZ2FpbnN0IHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ2hhbmdlU2V0KG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zID0ge30pOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2hhbmdlU2V0RGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2NoYW5nZS1zZXQnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBUZW1wbGF0ZU9ubHkob3B0aW9uczogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucykge1xuICAgICAgICBzdXBlcigndGVtcGxhdGUtb25seScsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgfVxuICAgIH0ob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgbG9jYWwgdGVtcGxhdGUgZmlsZSB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBMb2NhbEZpbGUocGF0aDogc3RyaW5nKTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IHsgcGF0aDogc3RyaW5nIH07XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogTG9jYWxGaWxlRGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2xvY2FsLWZpbGUnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KHsgcGF0aCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogJ2NoYW5nZS1zZXQnIHwgJ3RlbXBsYXRlLW9ubHknIHwgJ2xvY2FsLWZpbGUnLFxuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBDaGFuZ2VTZXREaWZmT3B0aW9ucyB8IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnMgfCBMb2NhbEZpbGVEaWZmT3B0aW9ucyxcbiAgKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZGlmZiBtZXRob2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gY3JlYXRlIGEgc3RhY2sgZGlmZi5cbiAgICpcbiAgICogVXNlIGNoYW5nZXNldCBkaWZmIGZvciB0aGUgaGlnaGVzdCBmaWRlbGl0eSwgaW5jbHVkaW5nIGFuYWx5emUgcmVzb3VyY2UgcmVwbGFjZW1lbnRzLlxuICAgKiBJbiB0aGlzIG1ldGhvZCwgZGlmZiB3aWxsIHVzZSB0aGUgZGVwbG95IHJvbGUgaW5zdGVhZCBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIFVzZSB0ZW1wbGF0ZS1vbmx5IGRpZmYgZm9yIGEgZmFzdGVyLCBsZXNzIGFjY3VyYXRlIGRpZmYgdGhhdCBkb2Vzbid0IHJlcXVpcmVcbiAgICogcGVybWlzc2lvbnMgdG8gY3JlYXRlIGEgY2hhbmdlLXNldC5cbiAgICpcbiAgICogVXNlIGxvY2FsLXRlbXBsYXRlIGRpZmYgZm9yIGEgZmFzdCwgbG9jYWwtb25seSBkaWZmIHRoYXQgZG9lc24ndCByZXF1aXJlXG4gICAqIGFueSBwZXJtaXNzaW9ucyBvciBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IERpZmZNZXRob2QuQ2hhbmdlU2V0XG4gICAqL1xuICByZWFkb25seSBtZXRob2Q/OiBEaWZmTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdHJpY3QgZGlmZiBtb2RlXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIG5vdCBmaWx0ZXIgb3V0IEFXUzo6Q0RLOjpNZXRhZGF0YSByZXNvdXJjZXMsIG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIG9yIHRoZSBDaGVja0Jvb3RzdHJhcFZlcnNpb25SdWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgbGluZXMgb2YgY29udGV4dCB0byBzaG93IGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHJlc291cmNlIG1vdmVzIGluIHRoZSBkaWZmLiBUaGVzZSBhcmUgdGhlIHNhbWUgbW92ZXMgdGhhdCBhcmUgZGV0ZWN0ZWRcbiAgICogYnkgdGhlIGByZWZhY3RvcmAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVNb3Zlcz86IGJvb2xlYW47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareDiff = prepareDiff;\nexports.appendObject = appendObject;\nconst fs = require(\"fs-extra\");\nconst uuid = require(\"uuid\");\nconst __1 = require(\"..\");\nconst cfnApi = require(\"../../../api/deployments/cfn-api\");\nconst resource_import_1 = require(\"../../../api/resource-import\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../../util\");\nconst mapping_helpers_1 = require(\"../../refactor/private/mapping-helpers\");\nfunction prepareDiff(ioHelper, stacks, deployments, sdkProvider, options) {\n switch (options.method?.method ?? __1.DiffMethod.ChangeSet().method) {\n case 'local-file':\n return localFileDiff(stacks, options);\n case 'template-only':\n return cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, false);\n case 'change-set':\n return cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, true);\n default:\n throw new toolkit_error_1.ToolkitError('UnknownDiffMethod', (0, util_1.formatErrorMessage)(`Unknown diff method ${options.method}`));\n }\n}\nasync function localFileDiff(stacks, options) {\n const methodOptions = (options.method?.options ?? {});\n // Compare single stack against fixed template\n if (stacks.stackCount !== 1) {\n throw new toolkit_error_1.ToolkitError('SingleStackRequired', 'Can only select one stack when comparing to fixed template. Use --exclusively to avoid selecting multiple stacks.');\n }\n if (!(await fs.pathExists(methodOptions.path))) {\n throw new toolkit_error_1.ToolkitError('TemplateFileNotFound', `There is no file at ${methodOptions.path}`);\n }\n const file = fs.readFileSync(methodOptions.path).toString();\n const template = (0, util_1.deserializeStructure)(file);\n return [{\n oldTemplate: template,\n newTemplate: stacks.firstStack,\n }];\n}\nasync function cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, includeChangeSet) {\n const templateInfos = [];\n const methodOptions = (options.method?.options ?? {});\n const allMappings = options.includeMoves\n ? await (0, mapping_helpers_1.mappingsByEnvironment)(stacks.stackArtifacts, sdkProvider, true)\n : [];\n // Compare N stacks against deployed templates\n for (const stack of stacks.stackArtifacts) {\n const templateWithNestedStacks = await deployments.readCurrentTemplateWithNestedStacks(stack, methodOptions.compareAgainstProcessedTemplate);\n const currentTemplate = templateWithNestedStacks.deployedRootTemplate;\n const nestedStacks = templateWithNestedStacks.nestedStacks;\n const migrator = new resource_import_1.ResourceMigrator({ deployments, ioHelper });\n const resourcesToImport = await migrator.tryGetResources(await deployments.resolveEnvironment(stack));\n if (resourcesToImport) {\n (0, resource_import_1.removeNonImportResources)(stack);\n }\n const changeSet = includeChangeSet ? await changeSetDiff(ioHelper, deployments, stack, sdkProvider, resourcesToImport, methodOptions.parameters, methodOptions.fallbackToTemplate, methodOptions.importExistingResources) : undefined;\n // If the changeset includes nested stacks, describe each nested changeset\n // and attach it to the corresponding entry in nestedStacks.\n if (changeSet) {\n await attachNestedChangeSetData(deployments, stack, changeSet, nestedStacks);\n }\n const mappings = allMappings.find(m => m.environment.region === stack.environment.region && m.environment.account === stack.environment.account)?.mappings ?? {};\n templateInfos.push({\n oldTemplate: currentTemplate,\n newTemplate: stack,\n isImport: !!resourcesToImport,\n nestedStacks,\n changeSet,\n mappings,\n });\n }\n return templateInfos;\n}\nasync function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resourcesToImport, parameters = {}, fallBackToTemplate = true, importExistingResources = false) {\n return cfnApi.createDiffChangeSet(ioHelper, {\n stack,\n uuid: uuid.v4(),\n deployments,\n willExecute: false,\n sdkProvider,\n parameters: parameters,\n resourcesToImport,\n failOnError: !fallBackToTemplate,\n importExistingResources,\n });\n}\n/**\n * Walk the root changeset's Changes looking for nested stack resources\n * that have their own ChangeSetId. Describe each nested changeset and\n * attach it to the matching entry in the nestedStacks map.\n */\nasync function attachNestedChangeSetData(deployments, stack, rootChangeSet, nestedStacks) {\n const env = await deployments.envs.accessStackForReadOnlyStackOperations(stack);\n const cfn = env.sdk.cloudFormation();\n for (const change of rootChangeSet.Changes ?? []) {\n const rc = change.ResourceChange;\n if (rc?.ResourceType !== 'AWS::CloudFormation::Stack' || !rc.ChangeSetId || !rc.LogicalResourceId) {\n continue;\n }\n const nested = nestedStacks[rc.LogicalResourceId];\n if (!nested) {\n continue;\n }\n const nestedChangeSet = await cfn.describeChangeSet({\n ChangeSetName: rc.ChangeSetId,\n StackName: rc.PhysicalResourceId ?? rc.LogicalResourceId,\n });\n // Replace the entry with one that includes the changeset\n nestedStacks[rc.LogicalResourceId] = {\n ...nested,\n changeSet: nestedChangeSet,\n };\n // Recurse into deeper nesting levels\n if (nestedChangeSet && Object.keys(nested.nestedStackTemplates).length > 0) {\n await attachNestedChangeSetData(deployments, stack, nestedChangeSet, nested.nestedStackTemplates);\n }\n }\n}\n/**\n * Appends all properties from obj2 to obj1.\n * obj2 values take priority in the case of collisions.\n *\n * @param obj1 - The object to modify\n * @param obj2 - The object to consume\n *\n * @returns obj1 with all properties from obj2\n */\nfunction appendObject(obj1, obj2) {\n // Directly modify obj1 by adding all properties from obj2\n for (const key in obj2) {\n obj1[key] = obj2[key];\n }\n // Return the modified obj1\n return obj1;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsa0NBaUJDO0FBcUtELG9DQVdDO0FBbE5ELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFFN0IsMEJBQWdDO0FBS2hDLDJEQUEyRDtBQUkzRCxrRUFBMEY7QUFDMUYsa0VBQThEO0FBQzlELHdDQUF5RTtBQUN6RSw0RUFBK0U7QUFFL0UsU0FBZ0IsV0FBVyxDQUN6QixRQUFrQixFQUNsQixNQUF1QixFQUN2QixXQUF3QixFQUN4QixXQUF3QixFQUN4QixPQUFvQjtJQUVwQixRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLGNBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxLQUFLLFlBQVk7WUFDZixPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0UsS0FBSyxZQUFZO1lBQ2YsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RTtZQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUEseUJBQWtCLEVBQUMsdUJBQXVCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQXVCLEVBQUUsT0FBb0I7SUFDeEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQXlCLENBQUM7SUFFOUUsOENBQThD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Q3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0ICogYXMgY2ZuQXBpIGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cy9jZm4tYXBpJztcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVJbmZvIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2RpZmYnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVzb3VyY2UtaW1wb3J0JztcbmltcG9ydCB7IHJlbW92ZU5vbkltcG9ydFJlc291cmNlcywgUmVzb3VyY2VNaWdyYXRvciB9IGZyb20gJy4uLy4uLy4uL2FwaS9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGRlc2VyaWFsaXplU3RydWN0dXJlLCBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlsJztcbmltcG9ydCB7IG1hcHBpbmdzQnlFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3JlZmFjdG9yL3ByaXZhdGUvbWFwcGluZy1oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVEaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIHN3aXRjaCAob3B0aW9ucy5tZXRob2Q/Lm1ldGhvZCA/PyBEaWZmTWV0aG9kLkNoYW5nZVNldCgpLm1ldGhvZCkge1xuICAgIGNhc2UgJ2xvY2FsLWZpbGUnOlxuICAgICAgcmV0dXJuIGxvY2FsRmlsZURpZmYoc3RhY2tzLCBvcHRpb25zKTtcbiAgICBjYXNlICd0ZW1wbGF0ZS1vbmx5JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgZmFsc2UpO1xuICAgIGNhc2UgJ2NoYW5nZS1zZXQnOlxuICAgICAgcmV0dXJuIGNmbkRpZmYoaW9IZWxwZXIsIHN0YWNrcywgZGVwbG95bWVudHMsIG9wdGlvbnMsIHNka1Byb3ZpZGVyLCB0cnVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5rbm93bkRpZmZNZXRob2QnLCBmb3JtYXRFcnJvck1lc3NhZ2UoYFVua25vd24gZGlmZiBtZXRob2QgJHtvcHRpb25zLm1ldGhvZH1gKSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9jYWxGaWxlRGlmZihzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgb3B0aW9uczogRGlmZk9wdGlvbnMpOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSAob3B0aW9ucy5tZXRob2Q/Lm9wdGlvbnMgPz8ge30pIGFzIExvY2FsRmlsZURpZmZPcHRpb25zO1xuXG4gIC8vIENvbXBhcmUgc2luZ2xlIHN0YWNrIGFnYWluc3QgZml4ZWQgdGVtcGxhdGVcbiAgaWYgKHN0YWNrcy5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdTaW5nbGVTdGFja1JlcXVpcmVkJyxcbiAgICAgICdDYW4gb25seSBzZWxlY3Qgb25lIHN0YWNrIHdoZW4gY29tcGFyaW5nIHRvIGZpeGVkIHRlbXBsYXRlLiBVc2UgLS1leGNsdXNpdmVseSB0byBhdm9pZCBzZWxlY3RpbmcgbXVsdGlwbGUgc3RhY2tzLicsXG4gICAgKTtcbiAgfVxuXG4gIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMobWV0aG9kT3B0aW9ucy5wYXRoKSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUZW1wbGF0ZUZpbGVOb3RGb3VuZCcsIGBUaGVyZSBpcyBubyBmaWxlIGF0ICR7bWV0aG9kT3B0aW9ucy5wYXRofWApO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGZzLnJlYWRGaWxlU3luYyhtZXRob2RPcHRpb25zLnBhdGgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gZGVzZXJpYWxpemVTdHJ1Y3R1cmUoZmlsZSk7XG5cbiAgcmV0dXJuIFt7XG4gICAgb2xkVGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBzdGFja3MuZmlyc3RTdGFjayxcbiAgfV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNmbkRpZmYoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW5jbHVkZUNoYW5nZVNldDogYm9vbGVhbixcbik6IFByb21pc2U8VGVtcGxhdGVJbmZvW10+IHtcbiAgY29uc3QgdGVtcGxhdGVJbmZvcyA9IFtdO1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBDaGFuZ2VTZXREaWZmT3B0aW9ucztcblxuICBjb25zdCBhbGxNYXBwaW5ncyA9IG9wdGlvbnMuaW5jbHVkZU1vdmVzXG4gICAgPyBhd2FpdCBtYXBwaW5nc0J5RW52aXJvbm1lbnQoc3RhY2tzLnN0YWNrQXJ0aWZhY3RzLCBzZGtQcm92aWRlciwgdHJ1ZSlcbiAgICA6IFtdO1xuXG4gIC8vIENvbXBhcmUgTiBzdGFja3MgYWdhaW5zdCBkZXBsb3llZCB0ZW1wbGF0ZXNcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3Muc3RhY2tBcnRpZmFjdHMpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MgPSBhd2FpdCBkZXBsb3ltZW50cy5yZWFkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhcbiAgICAgIHN0YWNrLFxuICAgICAgbWV0aG9kT3B0aW9ucy5jb21wYXJlQWdhaW5zdFByb2Nlc3NlZFRlbXBsYXRlLFxuICAgICk7XG4gICAgY29uc3QgY3VycmVudFRlbXBsYXRlID0gdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLmRlcGxveWVkUm9vdFRlbXBsYXRlO1xuICAgIGNvbnN0IG5lc3RlZFN0YWNrcyA9IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcy5uZXN0ZWRTdGFja3M7XG5cbiAgICBjb25zdCBtaWdyYXRvciA9IG5ldyBSZXNvdXJjZU1pZ3JhdG9yKHsgZGVwbG95bWVudHMsIGlvSGVscGVyIH0pO1xuICAgIGNvbnN0IHJlc291cmNlc1RvSW1wb3J0ID0gYXdhaXQgbWlncmF0b3IudHJ5R2V0UmVzb3VyY2VzKGF3YWl0IGRlcGxveW1lbnRzLnJlc29sdmVFbnZpcm9ubWVudChzdGFjaykpO1xuICAgIGlmIChyZXNvdXJjZXNUb0ltcG9ydCkge1xuICAgICAgcmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKHN0YWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFuZ2VTZXQgPSBpbmNsdWRlQ2hhbmdlU2V0ID8gYXdhaXQgY2hhbmdlU2V0RGlmZihcbiAgICAgIGlvSGVscGVyLFxuICAgICAgZGVwbG95bWVudHMsXG4gICAgICBzdGFjayxcbiAgICAgIHNka1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICBtZXRob2RPcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICBtZXRob2RPcHRpb25zLmZhbGxiYWNrVG9UZW1wbGF0ZSxcbiAgICAgIG1ldGhvZE9wdGlvbnMuaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXMsXG4gICAgKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIElmIHRoZSBjaGFuZ2VzZXQgaW5jbHVkZXMgbmVzdGVkIHN0YWNrcywgZGVzY3JpYmUgZWFjaCBuZXN0ZWQgY2hhbmdlc2V0XG4gICAgLy8gYW5kIGF0dGFjaCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBlbnRyeSBpbiBuZXN0ZWRTdGFja3MuXG4gICAgaWYgKGNoYW5nZVNldCkge1xuICAgICAgYXdhaXQgYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShkZXBsb3ltZW50cywgc3RhY2ssIGNoYW5nZVNldCwgbmVzdGVkU3RhY2tzKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBwaW5ncyA9IGFsbE1hcHBpbmdzLmZpbmQobSA9PlxuICAgICAgbS5lbnZpcm9ubWVudC5yZWdpb24gPT09IHN0YWNrLmVudmlyb25tZW50LnJlZ2lvbiAmJiBtLmVudmlyb25tZW50LmFjY291bnQgPT09IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgKT8ubWFwcGluZ3MgPz8ge307XG5cbiAgICB0ZW1wbGF0ZUluZm9zLnB1c2goe1xuICAgICAgb2xkVGVtcGxhdGU6IGN1cnJlbnRUZW1wbGF0ZSxcbiAgICAgIG5ld1RlbXBsYXRlOiBzdGFjayxcbiAgICAgIGlzSW1wb3J0OiAhIXJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbmVzdGVkU3RhY2tzLFxuICAgICAgY2hhbmdlU2V0LFxuICAgICAgbWFwcGluZ3MsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVtcGxhdGVJbmZvcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hhbmdlU2V0RGlmZihcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgcmVzb3VyY2VzVG9JbXBvcnQ/OiBSZXNvdXJjZXNUb0ltcG9ydCxcbiAgcGFyYW1ldGVyczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gPSB7fSxcbiAgZmFsbEJhY2tUb1RlbXBsYXRlOiBib29sZWFuID0gdHJ1ZSxcbiAgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM6IGJvb2xlYW4gPSBmYWxzZSxcbik6IFByb21pc2U8YW55IHwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiBjZm5BcGkuY3JlYXRlRGlmZkNoYW5nZVNldChpb0hlbHBlciwge1xuICAgIHN0YWNrLFxuICAgIHV1aWQ6IHV1aWQudjQoKSxcbiAgICBkZXBsb3ltZW50cyxcbiAgICB3aWxsRXhlY3V0ZTogZmFsc2UsXG4gICAgc2RrUHJvdmlkZXIsXG4gICAgcGFyYW1ldGVyczogcGFyYW1ldGVycyxcbiAgICByZXNvdXJjZXNUb0ltcG9ydCxcbiAgICBmYWlsT25FcnJvcjogIWZhbGxCYWNrVG9UZW1wbGF0ZSxcbiAgICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgfSk7XG59XG5cbi8qKlxuICogV2FsayB0aGUgcm9vdCBjaGFuZ2VzZXQncyBDaGFuZ2VzIGxvb2tpbmcgZm9yIG5lc3RlZCBzdGFjayByZXNvdXJjZXNcbiAqIHRoYXQgaGF2ZSB0aGVpciBvd24gQ2hhbmdlU2V0SWQuIERlc2NyaWJlIGVhY2ggbmVzdGVkIGNoYW5nZXNldCBhbmRcbiAqIGF0dGFjaCBpdCB0byB0aGUgbWF0Y2hpbmcgZW50cnkgaW4gdGhlIG5lc3RlZFN0YWNrcyBtYXAuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGF0dGFjaE5lc3RlZENoYW5nZVNldERhdGEoXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcm9vdENoYW5nZVNldDogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0LFxuICBuZXN0ZWRTdGFja3M6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBlbnYgPSBhd2FpdCBkZXBsb3ltZW50cy5lbnZzLmFjY2Vzc1N0YWNrRm9yUmVhZE9ubHlTdGFja09wZXJhdGlvbnMoc3RhY2spO1xuICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG5cbiAgZm9yIChjb25zdCBjaGFuZ2Ugb2Ygcm9vdENoYW5nZVNldC5DaGFuZ2VzID8/IFtdKSB7XG4gICAgY29uc3QgcmMgPSBjaGFuZ2UuUmVzb3VyY2VDaGFuZ2U7XG4gICAgaWYgKHJjPy5SZXNvdXJjZVR5cGUgIT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgfHwgIXJjLkNoYW5nZVNldElkIHx8ICFyYy5Mb2dpY2FsUmVzb3VyY2VJZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbmVzdGVkID0gbmVzdGVkU3RhY2tzW3JjLkxvZ2ljYWxSZXNvdXJjZUlkXTtcbiAgICBpZiAoIW5lc3RlZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbmVzdGVkQ2hhbmdlU2V0ID0gYXdhaXQgY2ZuLmRlc2NyaWJlQ2hhbmdlU2V0KHtcbiAgICAgIENoYW5nZVNldE5hbWU6IHJjLkNoYW5nZVNldElkLFxuICAgICAgU3RhY2tOYW1lOiByYy5QaHlzaWNhbFJlc291cmNlSWQgPz8gcmMuTG9naWNhbFJlc291cmNlSWQsXG4gICAgfSk7XG5cbiAgICAvLyBSZXBsYWNlIHRoZSBlbnRyeSB3aXRoIG9uZSB0aGF0IGluY2x1ZGVzIHRoZSBjaGFuZ2VzZXRcbiAgICAobmVzdGVkU3RhY2tzIGFzIGFueSlbcmMuTG9naWNhbFJlc291cmNlSWRdID0ge1xuICAgICAgLi4ubmVzdGVkLFxuICAgICAgY2hhbmdlU2V0OiBuZXN0ZWRDaGFuZ2VTZXQsXG4gICAgfTtcblxuICAgIC8vIFJlY3Vyc2UgaW50byBkZWVwZXIgbmVzdGluZyBsZXZlbHNcbiAgICBpZiAobmVzdGVkQ2hhbmdlU2V0ICYmIE9iamVjdC5rZXlzKG5lc3RlZC5uZXN0ZWRTdGFja1RlbXBsYXRlcykubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShkZXBsb3ltZW50cywgc3RhY2ssIG5lc3RlZENoYW5nZVNldCwgbmVzdGVkLm5lc3RlZFN0YWNrVGVtcGxhdGVzKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBlbmRzIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMiB0byBvYmoxLlxuICogb2JqMiB2YWx1ZXMgdGFrZSBwcmlvcml0eSBpbiB0aGUgY2FzZSBvZiBjb2xsaXNpb25zLlxuICpcbiAqIEBwYXJhbSBvYmoxIC0gVGhlIG9iamVjdCB0byBtb2RpZnlcbiAqIEBwYXJhbSBvYmoyIC0gVGhlIG9iamVjdCB0byBjb25zdW1lXG4gKlxuICogQHJldHVybnMgb2JqMSB3aXRoIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kT2JqZWN0PFQ+KFxuICBvYmoxOiB7IFtuYW1lOiBzdHJpbmddOiBUIH0sXG4gIG9iajI6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbik6IHsgW25hbWU6IHN0cmluZ106IFQgfSB7XG4gIC8vIERpcmVjdGx5IG1vZGlmeSBvYmoxIGJ5IGFkZGluZyBhbGwgcHJvcGVydGllcyBmcm9tIG9iajJcbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqMikge1xuICAgIG9iajFba2V5XSA9IG9iajJba2V5XTtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqMVxuICByZXR1cm4gb2JqMTtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEcmlmdE9wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHN0YWNrcyB0byBjaGVjayBmb3IgZHJpZnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xufVxuXG4vKipcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZHJpZnQgYXMgZm9ybWF0dGVkIGRyaWZ0IG91dHB1dFxuICpcbiAqIEEgbWlzc2luZyB0eXBlIGltcGxpZXMgbm8gZHJpZnQgb2YgdGhpcyB0eXBlLlxuICogSWYgbm8gZHJpZnQgd2FzIGRldGVjdGVkIGF0IGFsbCwgYWxsIHdpbGwgYmUgbWlzc2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZWREcmlmdCB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBoYXZlIG5vdCBjaGFuZ2VkXG4gICAqL1xuICByZWFkb25seSB1bmNoYW5nZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB0aGF0IHdlcmUgbm90IGNoZWNrZWQgZm9yIGRyaWZ0IG9yIGhhdmUgYW4gVU5LTk9XTiBkcmlmdCBzdGF0dXNcbiAgICovXG4gIHJlYWRvbmx5IHVuY2hlY2tlZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHdpdGggZHJpZnRcbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCAoZHJpZnQpXG4gICAqL1xuICByZWFkb25seSBkZWxldGVkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbWJpbmVkIGRyaWZ0IGZvciBzZWxlY3RlZCBzdGFja3Mgb2YgdGhlIGFwcFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyaWZ0UmVzdWx0IHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiByZXNvdXJjZXMgd2l0aCBkcmlmdC4gSWYgdW5kZWZpbmVkLCB0aGVuIGFuIGVycm9yIG9jY3VycmVkXG4gICAqIGFuZCByZXNvdXJjZXMgd2VyZSBub3QgcHJvcGVybHkgY2hlY2tlZCBmb3IgZHJpZnQuXG4gICAqL1xuICByZWFkb25seSBudW1SZXNvdXJjZXNXaXRoRHJpZnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogSG93IG1hbnkgcmVzb3VyY2VzIHdlcmUgbm90IGNoZWNrZWQgZm9yIGRyaWZ0LiBJZiB1bmRlZmluZWQsIHRoZW4gYW5cbiAgICogZXJyb3Igb2NjdXJyZWQgYW5kIHJlc291cmNlcyB3ZXJlIG5vdCBwcm9wZXJseSBjaGVja2VkIGZvciBkcmlmdC5cbiAgICovXG4gIHJlYWRvbmx5IG51bVJlc291cmNlc1VuY2hlY2tlZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgZHJpZnRcbiAgICovXG4gIHJlYWRvbmx5IGZvcm1hdHRlZERyaWZ0OiBGb3JtYXR0ZWREcmlmdDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./bootstrap\"), exports);\n__exportStar(require(\"./deploy\"), exports);\n__exportStar(require(\"./destroy\"), exports);\n__exportStar(require(\"./diff\"), exports);\n__exportStar(require(\"./drift\"), exports);\n__exportStar(require(\"./list\"), exports);\n__exportStar(require(\"./publish-assets\"), exports);\n__exportStar(require(\"./refactor\"), exports);\n__exportStar(require(\"./rollback\"), exports);\n__exportStar(require(\"./synth\"), exports);\n__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIseUNBQXVCO0FBQ3ZCLDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIsbURBQWlDO0FBQ2pDLDZDQUEyQjtBQUMzQiw2Q0FBMkI7QUFDM0IsMENBQXdCO0FBQ3hCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwbG95JztcbmV4cG9ydCAqIGZyb20gJy4vZGVzdHJveSc7XG5leHBvcnQgKiBmcm9tICcuL2RpZmYnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmlmdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9wdWJsaXNoLWFzc2V0cyc7XG5leHBvcnQgKiBmcm9tICcuL3JlZmFjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcm9sbGJhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zeW50aCc7XG5leHBvcnQgKiBmcm9tICcuL3dhdGNoJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogU3RhY2tTZWxlY3Rvcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFzc2V0c09wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHN0YWNrcyB0byBwdWJsaXNoIGFzc2V0cyBmb3JcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBBbHdheXMgcHVibGlzaCBhc3NldHMsIGV2ZW4gaWYgdGhleSBhcmUgYWxyZWFkeSBwdWJsaXNoZWRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGFzc2V0IG9wZXJhdGlvbnMgKGJ1aWxkaW5nIGFuZCBwdWJsaXNoaW5nKVxuICAgKlxuICAgKiBAZGVmYXVsdCA0XG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW5jeT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoQXNzZXRzUmVzdWx0IHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXRzIHRoYXQgd2VyZSBwdWJsaXNoZWRcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hlZEFzc2V0czogSU1hbmlmZXN0RW50cnlbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWZhY3Rvck9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBvbmx5IHNob3cgdGhlIHByb3Bvc2VkIHJlZmFjdG9yLCB3aXRob3V0IGFwcGx5aW5nIGl0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG92ZXJyaWRlcyB0byBiZSBhcHBsaWVkIHRvIHJlc29sdmUgcG9zc2libGUgYW1iaWd1aXRpZXMgaW4gdGhlXG4gICAqIGNvbXB1dGVkIGxpc3Qgb2YgbWFwcGluZ3MuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBNYXBwaW5nR3JvdXBbXTtcblxuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gY29tcGFyZSB3aXRoIHRoZSBkZXBsb3llZCBzdGFja3MgaW4gdGhlXG4gICAqIHRhcmdldCBlbnZpcm9ubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBuYW1lcyBvZiBhZGRpdGlvbmFsIGRlcGxveWVkIHN0YWNrcyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgY29tcGFyaXNvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxTdGFja05hbWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZG8gdGhlIHJlZmFjdG9yIHdpdGhvdXQgcHJvbXB0aW5nIHRoZSB1c2VyIGZvciBjb25maXJtYXRpb24uXG4gICAqL1xuICBmb3JjZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gYXNzdW1lIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHJlZmFjdG9yLlxuICAgKi9cbiAgcm9sZUFybj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwaW5nR3JvdXAge1xuICAvKipcbiAgICogVGhlIGFjY291bnQgSUQgb2YgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSBtYXBwaW5nIGlzIHZhbGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGUgbWFwcGluZyBpcyB2YWxpZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgcmVzb3VyY2UgbWFwcGluZ3MsIHdoZXJlIGVhY2gga2V5IGlzIHRoZSBzb3VyY2UgbG9jYXRpb25cbiAgICogYW5kIHRoZSB2YWx1ZSBpcyB0aGUgZGVzdGluYXRpb24gbG9jYXRpb24uIExvY2F0aW9ucyBtdXN0IGJlIGluIHRoZSBmb3JtYXRcbiAgICogYFN0YWNrTmFtZS5Mb2dpY2FsSWRgLiBUaGUgc291cmNlIG11c3QgcmVmZXIgdG8gYSBsb2NhdGlvbiB3aGVyZSB0aGVyZSBpc1xuICAgKiBhIHJlc291cmNlIGN1cnJlbnRseSBkZXBsb3llZCwgd2hpbGUgdGhlIGRlc3RpbmF0aW9uIG11c3QgcmVmZXIgdG8gYVxuICAgKiBsb2NhdGlvbiB0aGF0IGlzIG5vdCBhbHJlYWR5IG9jY3VwaWVkIGJ5IGFueSByZXNvdXJjZS5cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczoge1xuICAgIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseMappingGroups = parseMappingGroups;\nexports.mappingsByEnvironment = mappingsByEnvironment;\nconst refactoring_1 = require(\"../../../api/refactoring\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nfunction parseMappingGroups(s) {\n const mappingGroups = doParse();\n // Validate that there are no duplicate destinations.\n // By construction, there are no duplicate sources, already.\n for (let group of mappingGroups) {\n const destinations = new Set();\n for (const destination of Object.values(group.resources)) {\n if (destinations.has(destination)) {\n throw new toolkit_error_1.ToolkitError('DuplicateDestinationResource', `Duplicate destination resource '${destination}' in environment ${group.account}/${group.region}`);\n }\n destinations.add(destination);\n }\n }\n return mappingGroups;\n function doParse() {\n const content = JSON.parse(s);\n if (content.environments || !Array.isArray(content.environments)) {\n return content.environments;\n }\n else {\n throw new toolkit_error_1.ToolkitError('MissingEnvironmentsArray', \"Expected an 'environments' array\");\n }\n }\n}\nasync function mappingsByEnvironment(stackArtifacts, sdkProvider, ignoreModifications) {\n const groups = await (0, refactoring_1.groupStacks)(sdkProvider, stackArtifacts, []);\n return groups.map((group) => {\n const context = new refactoring_1.RefactoringContext({\n ...group,\n ignoreModifications,\n });\n return {\n environment: context.environment,\n mappings: Object.fromEntries(context.mappings.map((m) => [m.source.toLocationString(), m.destination.toLocationString()])),\n };\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwcGluZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsZ0RBNkJDO0FBT0Qsc0RBa0JDO0FBekRELDBEQUEyRTtBQUMzRSxrRUFBOEQ7QUFFOUQsU0FBZ0Isa0JBQWtCLENBQUMsQ0FBUztJQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUVoQyxxREFBcUQ7SUFDckQsNERBQTREO0lBQzVELEtBQUssSUFBSSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7UUFDaEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUV2QyxLQUFLLE1BQU0sV0FBVyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sSUFBSSw0QkFBWSxDQUNwQiw4QkFBOEIsRUFDOUIsbUNBQW1DLFdBQVcsb0JBQW9CLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUNsRyxDQUFDO1lBQ0osQ0FBQztZQUNELFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztJQUVyQixTQUFTLE9BQU87UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakUsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLDRCQUFZLENBQUMsMEJBQTBCLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFPTSxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLGNBQW1ELEVBQ25ELFdBQXdCLEVBQ3hCLG1CQUE2QjtJQUU3QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEseUJBQVcsRUFBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksZ0NBQWtCLENBQUM7WUFDckMsR0FBRyxLQUFLO1lBQ1IsbUJBQW1CO1NBQ3BCLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUM3RjtTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IE1hcHBpbmdHcm91cCB9IGZyb20gJy4uJztcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWF1dGgvc2RrLXByb3ZpZGVyJztcbmltcG9ydCB7IGdyb3VwU3RhY2tzLCBSZWZhY3RvcmluZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVmYWN0b3JpbmcnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWFwcGluZ0dyb3VwcyhzOiBzdHJpbmcpIHtcbiAgY29uc3QgbWFwcGluZ0dyb3VwcyA9IGRvUGFyc2UoKTtcblxuICAvLyBWYWxpZGF0ZSB0aGF0IHRoZXJlIGFyZSBubyBkdXBsaWNhdGUgZGVzdGluYXRpb25zLlxuICAvLyBCeSBjb25zdHJ1Y3Rpb24sIHRoZXJlIGFyZSBubyBkdXBsaWNhdGUgc291cmNlcywgYWxyZWFkeS5cbiAgZm9yIChsZXQgZ3JvdXAgb2YgbWFwcGluZ0dyb3Vwcykge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBkZXN0aW5hdGlvbiBvZiBPYmplY3QudmFsdWVzKGdyb3VwLnJlc291cmNlcykpIHtcbiAgICAgIGlmIChkZXN0aW5hdGlvbnMuaGFzKGRlc3RpbmF0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdEdXBsaWNhdGVEZXN0aW5hdGlvblJlc291cmNlJyxcbiAgICAgICAgICBgRHVwbGljYXRlIGRlc3RpbmF0aW9uIHJlc291cmNlICcke2Rlc3RpbmF0aW9ufScgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZGVzdGluYXRpb25zLmFkZChkZXN0aW5hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdHcm91cHM7XG5cbiAgZnVuY3Rpb24gZG9QYXJzZSgpOiBNYXBwaW5nR3JvdXBbXSB7XG4gICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2Uocyk7XG4gICAgaWYgKGNvbnRlbnQuZW52aXJvbm1lbnRzIHx8ICFBcnJheS5pc0FycmF5KGNvbnRlbnQuZW52aXJvbm1lbnRzKSkge1xuICAgICAgcmV0dXJuIGNvbnRlbnQuZW52aXJvbm1lbnRzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdNaXNzaW5nRW52aXJvbm1lbnRzQXJyYXknLCBcIkV4cGVjdGVkIGFuICdlbnZpcm9ubWVudHMnIGFycmF5XCIpO1xuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgRW52aXJvbm1lbnRTcGVjaWZpY01hcHBpbmdzIHtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xuICByZWFkb25seSBtYXBwaW5nczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hcHBpbmdzQnlFbnZpcm9ubWVudChcbiAgc3RhY2tBcnRpZmFjdHM6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlnbm9yZU1vZGlmaWNhdGlvbnM/OiBib29sZWFuLFxuKTogUHJvbWlzZTxFbnZpcm9ubWVudFNwZWNpZmljTWFwcGluZ3NbXT4ge1xuICBjb25zdCBncm91cHMgPSBhd2FpdCBncm91cFN0YWNrcyhzZGtQcm92aWRlciwgc3RhY2tBcnRpZmFjdHMsIFtdKTtcbiAgcmV0dXJuIGdyb3Vwcy5tYXAoKGdyb3VwKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IG5ldyBSZWZhY3RvcmluZ0NvbnRleHQoe1xuICAgICAgLi4uZ3JvdXAsXG4gICAgICBpZ25vcmVNb2RpZmljYXRpb25zLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBlbnZpcm9ubWVudDogY29udGV4dC5lbnZpcm9ubWVudCxcbiAgICAgIG1hcHBpbmdzOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIGNvbnRleHQubWFwcGluZ3MubWFwKChtKSA9PiBbbS5zb3VyY2UudG9Mb2NhdGlvblN0cmluZygpLCBtLmRlc3RpbmF0aW9uLnRvTG9jYXRpb25TdHJpbmcoKV0pLFxuICAgICAgKSxcbiAgICB9O1xuICB9KTtcbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBSb2xsYmFja09wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gcm9sbGJhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBSb2xlIHRvIHBhc3MgdG8gQ2xvdWRGb3JtYXRpb24gZm9yIGRlcGxveW1lbnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHN0YWNrIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgZmFpbGVkIHRoZSByb2xsYmFjayBvciBub3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkZhaWxlZFJlc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvZ2ljYWwgSURzIG9mIHJlc291cmNlcyB0byBvcnBoYW5cbiAgICpcbiAgICogVGhlc2UgcmVzb3VyY2VzIHdpbGwgYmUgc2tpcHBlZCBmcm9tIHRoZSByb2xsIGJhY2suXG4gICAqIFNwZWNpZnkgdGhpcyBwcm9wZXJ0eSB0byBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgY2FuJ3QgYmUgc3VjY2Vzc2Z1bGx5IHJvbGxlZCBiYWNrLlxuICAgKiBXZSByZWNvbW1lbmQgdGhhdCB5b3UgdHJvdWJsZXNob290IHJlc291cmNlcyBiZWZvcmUgc2tpcHBpbmcgdGhlbS5cbiAgICogQWZ0ZXIgdGhlIHJvbGxiYWNrIGlzIGNvbXBsZXRlLCB0aGUgc3RhdGUgb2YgdGhlIHNraXBwZWQgcmVzb3VyY2VzIHdpbGwgYmUgaW5jb25zaXN0ZW50IHdpdGhcbiAgICogdGhlIHN0YXRlIG9mIHRoZSByZXNvdXJjZXMgaW4gdGhlIHN0YWNrLiBCZWZvcmUgcGVyZm9ybWluZyBhbm90aGVyIHN0YWNrIHVwZGF0ZSxcbiAgICogeW91IG11c3QgdXBkYXRlIHRoZSBzdGFjayBvciByZXNvdXJjZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIGVhY2ggb3RoZXIuIElmIHlvdSBkb24ndFxuICAgKiBzdWJzZXF1ZW50IHN0YWNrIHVwZGF0ZXMgbWlnaHQgZmFpbCwgYW5kIHRoZSBzdGFjayB3aWxsIGJlY29tZSB1bnJlY292ZXJhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHJlc291cmNlcyBhcmUgb3JwaGFuZWRcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkxvZ2ljYWxJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB2YWxpZGF0ZSB0aGUgdmVyc2lvbiBvZiB0aGUgYm9vdHN0cmFwIHN0YWNrIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlQm9vdHN0cmFwU3RhY2tWZXJzaW9uPzogYm9vbGVhbjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBTeW50aE9wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHRoZSBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIEFmdGVyIHN5bnRoZXNpcywgdmFsaWRhdGUgc3RhY2tzIHdpdGggdGhlIFwidmFsaWRhdGVPblN5bnRoXCIgYXR0cmlidXRlIHNldCAoY2FuIGFsc28gYmUgY29udHJvbGxlZCB3aXRoIENES19WQUxJREFUSU9OKVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZVN0YWNrcz86IGJvb2xlYW47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50TWV0aG9kLCBCYXNlRGVwbG95T3B0aW9ucyB9IGZyb20gJy4uL2RlcGxveSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hPcHRpb25zIGV4dGVuZHMgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogV2F0Y2ggdGhlIGZpbGVzIGluIHRoaXMgbGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBmaWxlcyBpbiB0aGUgd2F0Y2hEaXJcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWdub3JlIHdhdGNoaW5nIHRoZSBmaWxlcyBpbiB0aGlzIGxpc3RcbiAgICpcbiAgICogSGlkZGVuIGZpbGVzICh0aG9zZSB3aG9zZSBuYW1lcyBiZWdpbiB3aXRoIGEgZG90IGAuYCkgYXJlIGFsd2F5cyBleGNsdWRlZCxcbiAgICogaXJyZXNwZWN0aXZlbHkgb2YgdGhpcyBvcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwYXR0ZXJucyBleGNsdWRpbmcgbGlrZWx5IGlycmVsZXZhbnQgZmlsZXMgZm9yIGFsbCBDREsgc3VwcG9ydGVkIHByb2dyYW1taW5nIGxhbmd1YWdlcywgdGhpcyBsaXN0IHdpbGwgY2hhbmdlIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3RvcnkgdXNlZCBmb3Igd2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlcGxveW1lbnQgbWV0aG9kXG4gICAqXG4gICAqIEBkZWZhdWx0IEhvdHN3YXBEZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kPzogRGVwbG95bWVudE1ldGhvZDtcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGEgYGNkay53YXRjaCgpYCBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdhdGNoZXIgZXh0ZW5kcyBBc3luY0Rpc3Bvc2FibGUge1xuICAvKipcbiAgICogU3RvcCB0aGUgd2F0Y2hlciBhbmQgd2FpdCBmb3IgdGhlIGN1cnJlbnQgd2F0Y2ggaXRlcmF0aW9uIHRvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBBbiBhbGlhcyBmb3IgYFtTeW1ib2wuYXN5bmNEaXNwb3NlXWAsIGFzIGEgbW9yZSByZWFkYWJsZSBhbHRlcm5hdGl2ZSBmb3JcbiAgICogZW52aXJvbm1lbnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgRGlzcG9zYWJsZSBBUElzIHlldC5cbiAgICovXG4gIGRpc3Bvc2UoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogV2FpdCBmb3IgdGhlIHdhdGNoZXIgdG8gc3RvcC5cbiAgICpcbiAgICogVGhlIHdhdGNoZXIgd2lsbCBvbmx5IHN0b3AgaWYgYGRpc3Bvc2UoKWAgb3IgYFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpYCBhcmUgY2FsbGVkLlxuICAgKlxuICAgKiBJZiBuZWl0aGVyIG9mIHRob3NlIGlzIGNhbGxlZCwgYXdhaXRpbmcgdGhpcyBwcm9taXNlIHdpbGwgd2FpdCBmb3JldmVyLlxuICAgKi9cbiAgd2FpdEZvckVuZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WATCH_EXCLUDE_DEFAULTS = void 0;\n/**\n * A list of generic files that normally don't need to be watched.\n * This list is agnostic to the used programming language and should only match files\n * that are unlikely to be valid files in any of the supported languages.\n */\nexports.WATCH_EXCLUDE_DEFAULTS = [\n // CDK\n 'README.md',\n 'cdk*.json',\n // JS\n 'package*.json',\n 'yarn.lock',\n 'pnpm-lock.yaml',\n 'bun.lockb',\n 'bun.lock',\n 'deno.lock',\n // TS\n 'tsconfig*.json',\n '**/*.d.ts',\n 'test',\n // Python\n 'requirements*.txt',\n 'source.bat',\n '**/__init__.py',\n '**/__pycache__',\n 'tests',\n // C# & F#\n '**/*.sln',\n '**/*.csproj',\n '**/*.fsproj',\n // Go\n 'go.mod',\n 'go.sum',\n '**/*test.go',\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNVLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsTUFBTTtJQUNOLFdBQVc7SUFDWCxXQUFXO0lBQ1gsS0FBSztJQUNMLGVBQWU7SUFDZixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsV0FBVztJQUNYLEtBQUs7SUFDTCxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLE1BQU07SUFDTixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxVQUFVO0lBQ1YsVUFBVTtJQUNWLGFBQWE7SUFDYixhQUFhO0lBQ2IsS0FBSztJQUNMLFFBQVE7SUFDUixRQUFRO0lBQ1IsYUFBYTtDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgbGlzdCBvZiBnZW5lcmljIGZpbGVzIHRoYXQgbm9ybWFsbHkgZG9uJ3QgbmVlZCB0byBiZSB3YXRjaGVkLlxuICogVGhpcyBsaXN0IGlzIGFnbm9zdGljIHRvIHRoZSB1c2VkIHByb2dyYW1taW5nIGxhbmd1YWdlIGFuZCBzaG91bGQgb25seSBtYXRjaCBmaWxlc1xuICogdGhhdCBhcmUgdW5saWtlbHkgdG8gYmUgdmFsaWQgZmlsZXMgaW4gYW55IG9mIHRoZSBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLlxuICovXG5leHBvcnQgY29uc3QgV0FUQ0hfRVhDTFVERV9ERUZBVUxUUyA9IFtcbiAgLy8gQ0RLXG4gICdSRUFETUUubWQnLFxuICAnY2RrKi5qc29uJyxcbiAgLy8gSlNcbiAgJ3BhY2thZ2UqLmpzb24nLFxuICAneWFybi5sb2NrJyxcbiAgJ3BucG0tbG9jay55YW1sJyxcbiAgJ2J1bi5sb2NrYicsXG4gICdidW4ubG9jaycsXG4gICdkZW5vLmxvY2snLFxuICAvLyBUU1xuICAndHNjb25maWcqLmpzb24nLFxuICAnKiovKi5kLnRzJyxcbiAgJ3Rlc3QnLFxuICAvLyBQeXRob25cbiAgJ3JlcXVpcmVtZW50cyoudHh0JyxcbiAgJ3NvdXJjZS5iYXQnLFxuICAnKiovX19pbml0X18ucHknLFxuICAnKiovX19weWNhY2hlX18nLFxuICAndGVzdHMnLFxuICAvLyBDIyAmIEYjXG4gICcqKi8qLnNsbicsXG4gICcqKi8qLmNzcHJvaicsXG4gICcqKi8qLmZzcHJvaicsXG4gIC8vIEdvXG4gICdnby5tb2QnLFxuICAnZ28uc3VtJyxcbiAgJyoqLyp0ZXN0LmdvJyxcbl07XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccountAccessKeyCache = void 0;\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst util_1 = require(\"../../util\");\n/**\n * Disk cache which maps access key IDs to account IDs.\n * Usage:\n * cache.get(accessKey) => accountId | undefined\n * cache.put(accessKey, accountId)\n */\nclass AccountAccessKeyCache {\n /**\n * Max number of entries in the cache, after which the cache will be reset.\n */\n static MAX_ENTRIES = 1000;\n /**\n * The default path used for the accounts access key cache\n */\n static get DEFAULT_PATH() {\n // needs to be a getter because cdkCacheDir can be set via env variable and might change\n return path.join((0, util_1.cdkCacheDir)(), 'accounts_partitions.json');\n }\n cacheFile;\n debug;\n /**\n * @param filePath - Path to the cache file\n */\n constructor(filePath = AccountAccessKeyCache.DEFAULT_PATH, debugFn) {\n this.cacheFile = filePath;\n this.debug = debugFn;\n }\n /**\n * Tries to fetch the account ID from cache. If it's not in the cache, invokes\n * the resolver function which should retrieve the account ID and return it.\n * Then, it will be stored into disk cache returned.\n *\n * Example:\n *\n * const accountId = cache.fetch(accessKey, async () => {\n * return await fetchAccountIdFromSomewhere(accessKey);\n * });\n */\n async fetch(accessKeyId, resolver) {\n // try to get account ID based on this access key ID from disk.\n const cached = await this.get(accessKeyId);\n if (cached) {\n await this.debug(`Retrieved account ID ${cached.accountId} from disk cache`);\n return cached;\n }\n // if it's not in the cache, resolve and put in cache.\n const account = await resolver();\n if (account) {\n await this.put(accessKeyId, account);\n }\n return account;\n }\n /** Get the account ID from an access key or undefined if not in cache */\n async get(accessKeyId) {\n const map = await this.loadMap();\n return map[accessKeyId];\n }\n /** Put a mapping between access key and account ID */\n async put(accessKeyId, account) {\n let map = await this.loadMap();\n // nuke cache if it's too big.\n if (Object.keys(map).length >= AccountAccessKeyCache.MAX_ENTRIES) {\n map = {};\n }\n map[accessKeyId] = account;\n await this.saveMap(map);\n }\n async loadMap() {\n try {\n return await fs.readJson(this.cacheFile);\n }\n catch (e) {\n // File doesn't exist or is not readable. This is a cache,\n // pretend we successfully loaded an empty map.\n if (e.code === 'ENOENT' || e.code === 'EACCES') {\n return {};\n }\n // File is not JSON, could be corrupted because of concurrent writes.\n // Again, an empty cache is fine.\n if (e instanceof SyntaxError) {\n return {};\n }\n throw e;\n }\n }\n async saveMap(map) {\n try {\n await fs.ensureFile(this.cacheFile);\n await fs.writeJson(this.cacheFile, map, { spaces: 2 });\n }\n catch (e) {\n // File doesn't exist or file/dir isn't writable. This is a cache,\n // if we can't write it then too bad.\n if (e.code === 'ENOENT' || e.code === 'EACCES' || e.code === 'EROFS') {\n return;\n }\n throw e;\n }\n }\n}\nexports.AccountAccessKeyCache = AccountAccessKeyCache;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFjY291bnQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixxQ0FBeUM7QUFFekM7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFxQjtJQUNoQzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRTFDOztPQUVHO0lBQ0ksTUFBTSxLQUFLLFlBQVk7UUFDNUIsd0ZBQXdGO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGtCQUFXLEdBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFZ0IsU0FBUyxDQUFTO0lBRWxCLEtBQUssQ0FBaUM7SUFFdkQ7O09BRUc7SUFDSCxZQUFZLFdBQW1CLHFCQUFxQixDQUFDLFlBQVksRUFBRSxPQUF1QztRQUN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQW9CLFdBQW1CLEVBQUUsUUFBMEI7UUFDbkYsK0RBQStEO1FBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixNQUFNLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELHlFQUF5RTtJQUNsRSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQW1CO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFtQixFQUFFLE9BQWdCO1FBQ3BELElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRS9CLDhCQUE4QjtRQUM5QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDWCxDQUFDO1FBRUQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUMzQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQiwwREFBMEQ7WUFDMUQsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QscUVBQXFFO1lBQ3JFLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsWUFBWSxXQUFXLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBdUM7UUFDM0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixrRUFBa0U7WUFDbEUscUNBQXFDO1lBQ3JDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDckUsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDOztBQXZHSCxzREF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBY2NvdW50IH0gZnJvbSAnLi9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHsgY2RrQ2FjaGVEaXIgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBEaXNrIGNhY2hlIHdoaWNoIG1hcHMgYWNjZXNzIGtleSBJRHMgdG8gYWNjb3VudCBJRHMuXG4gKiBVc2FnZTpcbiAqICAgY2FjaGUuZ2V0KGFjY2Vzc0tleSkgPT4gYWNjb3VudElkIHwgdW5kZWZpbmVkXG4gKiAgIGNhY2hlLnB1dChhY2Nlc3NLZXksIGFjY291bnRJZClcbiAqL1xuZXhwb3J0IGNsYXNzIEFjY291bnRBY2Nlc3NLZXlDYWNoZSB7XG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGNhY2hlLCBhZnRlciB3aGljaCB0aGUgY2FjaGUgd2lsbCBiZSByZXNldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFYX0VOVFJJRVMgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBwYXRoIHVzZWQgZm9yIHRoZSBhY2NvdW50cyBhY2Nlc3Mga2V5IGNhY2hlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBERUZBVUxUX1BBVEgoKTogc3RyaW5nIHtcbiAgICAvLyBuZWVkcyB0byBiZSBhIGdldHRlciBiZWNhdXNlIGNka0NhY2hlRGlyIGNhbiBiZSBzZXQgdmlhIGVudiB2YXJpYWJsZSBhbmQgbWlnaHQgY2hhbmdlXG4gICAgcmV0dXJuIHBhdGguam9pbihjZGtDYWNoZURpcigpLCAnYWNjb3VudHNfcGFydGl0aW9ucy5qc29uJyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRmlsZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWc6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gUGF0aCB0byB0aGUgY2FjaGUgZmlsZVxuICAgKi9cbiAgY29uc3RydWN0b3IoZmlsZVBhdGg6IHN0cmluZyA9IEFjY291bnRBY2Nlc3NLZXlDYWNoZS5ERUZBVUxUX1BBVEgsIGRlYnVnRm46IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgIHRoaXMuY2FjaGVGaWxlID0gZmlsZVBhdGg7XG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnRm47XG4gIH1cblxuICAvKipcbiAgICogVHJpZXMgdG8gZmV0Y2ggdGhlIGFjY291bnQgSUQgZnJvbSBjYWNoZS4gSWYgaXQncyBub3QgaW4gdGhlIGNhY2hlLCBpbnZva2VzXG4gICAqIHRoZSByZXNvbHZlciBmdW5jdGlvbiB3aGljaCBzaG91bGQgcmV0cmlldmUgdGhlIGFjY291bnQgSUQgYW5kIHJldHVybiBpdC5cbiAgICogVGhlbiwgaXQgd2lsbCBiZSBzdG9yZWQgaW50byBkaXNrIGNhY2hlIHJldHVybmVkLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiAgICBjb25zdCBhY2NvdW50SWQgPSBjYWNoZS5mZXRjaChhY2Nlc3NLZXksIGFzeW5jICgpID0+IHtcbiAgICogICAgICByZXR1cm4gYXdhaXQgZmV0Y2hBY2NvdW50SWRGcm9tU29tZXdoZXJlKGFjY2Vzc0tleSk7XG4gICAqICAgIH0pO1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGZldGNoPEEgZXh0ZW5kcyBBY2NvdW50PihhY2Nlc3NLZXlJZDogc3RyaW5nLCByZXNvbHZlcjogKCkgPT4gUHJvbWlzZTxBPikge1xuICAgIC8vIHRyeSB0byBnZXQgYWNjb3VudCBJRCBiYXNlZCBvbiB0aGlzIGFjY2VzcyBrZXkgSUQgZnJvbSBkaXNrLlxuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0KGFjY2Vzc0tleUlkKTtcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlYnVnKGBSZXRyaWV2ZWQgYWNjb3VudCBJRCAke2NhY2hlZC5hY2NvdW50SWR9IGZyb20gZGlzayBjYWNoZWApO1xuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG5cbiAgICAvLyBpZiBpdCdzIG5vdCBpbiB0aGUgY2FjaGUsIHJlc29sdmUgYW5kIHB1dCBpbiBjYWNoZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgcmVzb2x2ZXIoKTtcbiAgICBpZiAoYWNjb3VudCkge1xuICAgICAgYXdhaXQgdGhpcy5wdXQoYWNjZXNzS2V5SWQsIGFjY291bnQpO1xuICAgIH1cblxuICAgIHJldHVybiBhY2NvdW50O1xuICB9XG5cbiAgLyoqIEdldCB0aGUgYWNjb3VudCBJRCBmcm9tIGFuIGFjY2VzcyBrZXkgb3IgdW5kZWZpbmVkIGlmIG5vdCBpbiBjYWNoZSAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0KGFjY2Vzc0tleUlkOiBzdHJpbmcpOiBQcm9taXNlPEFjY291bnQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLmxvYWRNYXAoKTtcbiAgICByZXR1cm4gbWFwW2FjY2Vzc0tleUlkXTtcbiAgfVxuXG4gIC8qKiBQdXQgYSBtYXBwaW5nIGJldHdlZW4gYWNjZXNzIGtleSBhbmQgYWNjb3VudCBJRCAqL1xuICBwdWJsaWMgYXN5bmMgcHV0KGFjY2Vzc0tleUlkOiBzdHJpbmcsIGFjY291bnQ6IEFjY291bnQpIHtcbiAgICBsZXQgbWFwID0gYXdhaXQgdGhpcy5sb2FkTWFwKCk7XG5cbiAgICAvLyBudWtlIGNhY2hlIGlmIGl0J3MgdG9vIGJpZy5cbiAgICBpZiAoT2JqZWN0LmtleXMobWFwKS5sZW5ndGggPj0gQWNjb3VudEFjY2Vzc0tleUNhY2hlLk1BWF9FTlRSSUVTKSB7XG4gICAgICBtYXAgPSB7fTtcbiAgICB9XG5cbiAgICBtYXBbYWNjZXNzS2V5SWRdID0gYWNjb3VudDtcbiAgICBhd2FpdCB0aGlzLnNhdmVNYXAobWFwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1hcCgpOiBQcm9taXNlPHsgW2FjY2Vzc0tleUlkOiBzdHJpbmddOiBBY2NvdW50IH0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRKc29uKHRoaXMuY2FjaGVGaWxlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBpcyBub3QgcmVhZGFibGUuIFRoaXMgaXMgYSBjYWNoZSxcbiAgICAgIC8vIHByZXRlbmQgd2Ugc3VjY2Vzc2Z1bGx5IGxvYWRlZCBhbiBlbXB0eSBtYXAuXG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJyB8fCBlLmNvZGUgPT09ICdFQUNDRVMnKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIC8vIEZpbGUgaXMgbm90IEpTT04sIGNvdWxkIGJlIGNvcnJ1cHRlZCBiZWNhdXNlIG9mIGNvbmN1cnJlbnQgd3JpdGVzLlxuICAgICAgLy8gQWdhaW4sIGFuIGVtcHR5IGNhY2hlIGlzIGZpbmUuXG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlTWFwKG1hcDogeyBbYWNjZXNzS2V5SWQ6IHN0cmluZ106IEFjY291bnQgfSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5lbnN1cmVGaWxlKHRoaXMuY2FjaGVGaWxlKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSnNvbih0aGlzLmNhY2hlRmlsZSwgbWFwLCB7IHNwYWNlczogMiB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBmaWxlL2RpciBpc24ndCB3cml0YWJsZS4gVGhpcyBpcyBhIGNhY2hlLFxuICAgICAgLy8gaWYgd2UgY2FuJ3Qgd3JpdGUgaXQgdGhlbiB0b28gYmFkLlxuICAgICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcgfHwgZS5jb2RlID09PSAnRUFDQ0VTJyB8fCBlLmNvZGUgPT09ICdFUk9GUycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCliCompatible = void 0;\nexports.sdkRequestHandler = sdkRequestHandler;\nconst node_util_1 = require(\"node:util\");\nconst credential_providers_1 = require(\"@aws-sdk/credential-providers\");\nconst ec2_metadata_service_1 = require(\"@aws-sdk/ec2-metadata-service\");\nconst shared_ini_file_loader_1 = require(\"@smithy/shared-ini-file-loader\");\nconst ec2_detection_1 = require(\"./ec2-detection\");\nconst provider_caching_1 = require(\"./provider-caching\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst private_1 = require(\"../io/private\");\nconst DEFAULT_CONNECTION_TIMEOUT = 10000;\nconst DEFAULT_TIMEOUT = 300000;\n/**\n * Behaviors to match AWS CLI\n *\n * See these links:\n *\n * https://docs.aws.amazon.com/cli/latest/topic/config-vars.html\n * https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html\n */\nclass AwsCliCompatible {\n ioHelper;\n requestHandler;\n logger;\n constructor(ioHelper, requestHandler, logger) {\n this.ioHelper = ioHelper;\n this.requestHandler = requestHandler;\n this.logger = logger;\n }\n async baseConfig(profile) {\n const credentialProvider = await this.credentialChainBuilder({\n profile,\n logger: this.logger,\n });\n const defaultRegion = await this.region(profile);\n return { credentialProvider, defaultRegion };\n }\n /**\n * Build an AWS CLI-compatible credential chain provider\n *\n * The credential chain returned by this function is always caching.\n */\n async credentialChainBuilder(options = {}) {\n const clientConfig = {\n requestHandler: this.requestHandler,\n customUserAgent: 'aws-cdk',\n logger: options.logger,\n };\n // Super hacky solution to https://github.com/aws/aws-cdk/issues/32510, proposed by the SDK team.\n //\n // Summary of the problem: we were reading the region from the config file and passing it to\n // the credential providers. However, in the case of SSO, this makes the credential provider\n // use that region to do the SSO flow, which is incorrect. The region that should be used for\n // that is the one set in the sso_session section of the config file.\n //\n // The idea here: the \"clientConfig\" is for configuring the inner auth client directly,\n // and has the highest priority, whereas \"parentClientConfig\" is the upper data client\n // and has lower priority than the sso_region but still higher priority than STS global region.\n const parentClientConfig = {\n region: await this.region(options.profile),\n };\n /**\n * The previous implementation matched AWS CLI behavior:\n *\n * If a profile is explicitly set using `--profile`,\n * we use that to the exclusion of everything else.\n *\n * Note: this does not apply to AWS_PROFILE,\n * environment credentials still take precedence over AWS_PROFILE\n */\n if (options.profile) {\n return (0, provider_caching_1.makeCachingProvider)((0, credential_providers_1.fromIni)({\n profile: options.profile,\n ignoreCache: true,\n mfaCodeProvider: this.tokenCodeFn.bind(this),\n clientConfig,\n parentClientConfig,\n logger: options.logger,\n }));\n }\n const envProfile = process.env.AWS_PROFILE || process.env.AWS_DEFAULT_PROFILE;\n /**\n * Env AWS - EnvironmentCredentials with string AWS\n * Env Amazon - EnvironmentCredentials with string AMAZON\n * Profile Credentials - PatchedSharedIniFileCredentials with implicit profile, credentials file, http options, and token fn\n * SSO with implicit profile only\n * SharedIniFileCredentials with implicit profile and preferStaticCredentials true (profile with source_profile)\n * Shared Credential file that points to Environment Credentials with AWS prefix\n * Shared Credential file that points to EC2 Metadata\n * Shared Credential file that points to ECS Credentials\n * SSO Credentials - SsoCredentials with implicit profile and http options\n * ProcessCredentials with implicit profile\n * ECS Credentials - ECSCredentials with no input OR Web Identity - TokenFileWebIdentityCredentials with no input OR EC2 Metadata - EC2MetadataCredentials with no input\n *\n * These translate to:\n * fromEnv()\n * fromSSO()/fromIni()\n * fromProcess()\n * fromContainerMetadata()\n * fromTokenFile()\n * fromInstanceMetadata()\n *\n * The NodeProviderChain is already cached.\n */\n // Skip the IMDS credential provider if we're not on EC2, to avoid a\n // 1-2 second timeout on non-EC2 machines.\n if (process.env.AWS_EC2_METADATA_DISABLED === undefined && !(0, ec2_detection_1.isEc2Instance)()) {\n process.env.AWS_EC2_METADATA_DISABLED = 'true';\n }\n // This chain respects the AWS_EC2_METADATA_DISABLED envvar, which can otherwise\n // not be easily disabled using a property.\n const nodeProviderChain = (0, credential_providers_1.fromNodeProviderChain)({\n profile: envProfile,\n clientConfig,\n parentClientConfig,\n logger: options.logger,\n mfaCodeProvider: this.tokenCodeFn.bind(this),\n ignoreCache: true,\n });\n return shouldPrioritizeEnv()\n ? (0, credential_providers_1.createCredentialChain)((0, credential_providers_1.fromEnv)(), nodeProviderChain).expireAfter(60 * 60_000)\n : nodeProviderChain;\n }\n /**\n * Attempts to get the region from a number of sources and falls back to us-east-1 if no region can be found,\n * as is done in the AWS CLI.\n *\n * The order of priority is the following:\n *\n * 1. Environment variables specifying region, with both an AWS prefix and AMAZON prefix\n * to maintain backwards compatibility, and without `DEFAULT` in the name because\n * Lambda and CodeBuild set the $AWS_REGION variable.\n * 2. Regions listed in the Shared Ini Files - First checking for the profile provided\n * and then checking for the default profile.\n * 3. IMDS instance identity region from the Metadata Service.\n * 4. us-east-1\n */\n async region(maybeProfile) {\n const defaultRegion = 'us-east-1';\n const profile = maybeProfile || process.env.AWS_PROFILE || process.env.AWS_DEFAULT_PROFILE || 'default';\n const region = process.env.AWS_REGION ||\n process.env.AMAZON_REGION ||\n process.env.AWS_DEFAULT_REGION ||\n process.env.AMAZON_DEFAULT_REGION ||\n (await this.getRegionFromIni(profile)) ||\n (await this.regionFromMetadataService());\n if (!region) {\n const usedProfile = !profile ? '' : ` (profile: \"${profile}\")`;\n await this.ioHelper.defaults.debug(`Unable to determine AWS region from environment or AWS configuration${usedProfile}, defaulting to '${defaultRegion}'`);\n return defaultRegion;\n }\n return region;\n }\n /**\n * The MetadataService class will attempt to fetch the instance identity document from\n * IMDSv2 first, and then will attempt v1 as a fallback.\n *\n * If this fails, we will use us-east-1 as the region so no error should be thrown.\n * @returns The region for the instance identity\n */\n async regionFromMetadataService() {\n if (!(0, ec2_detection_1.isEc2Instance)()) {\n return undefined;\n }\n await this.ioHelper.defaults.debug('Looking up AWS region in the EC2 Instance Metadata Service (IMDS).');\n try {\n const metadataService = new ec2_metadata_service_1.MetadataService({\n httpOptions: {\n timeout: 1000,\n },\n });\n await metadataService.fetchMetadataToken();\n const document = await metadataService.request('/latest/dynamic/instance-identity/document', {});\n return JSON.parse(document).region;\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Unable to retrieve AWS region from IMDS: ${e}`);\n }\n }\n /**\n * Looks up the region of the provided profile. If no region is present,\n * it will attempt to lookup the default region.\n * @param profile - The profile to use to lookup the region\n * @returns The region for the profile or default profile, if present. Otherwise returns undefined.\n */\n async getRegionFromIni(profile) {\n const sharedFiles = await (0, shared_ini_file_loader_1.loadSharedConfigFiles)({ ignoreCache: true });\n // Priority:\n //\n // credentials come before config because aws-cli v1 behaves like that.\n //\n // 1. profile-region-in-credentials\n // 2. profile-region-in-config\n // 3. default-region-in-credentials\n // 4. default-region-in-config\n return this.getRegionFromIniFile(profile, sharedFiles.credentialsFile)\n ?? this.getRegionFromIniFile(profile, sharedFiles.configFile)\n ?? this.getRegionFromIniFile('default', sharedFiles.credentialsFile)\n ?? this.getRegionFromIniFile('default', sharedFiles.configFile);\n }\n getRegionFromIniFile(profile, data) {\n return data?.[profile]?.region;\n }\n /**\n * Ask user for MFA token for given MFA device\n *\n * Result is send to callback function for SDK to authorize the request\n */\n async tokenCodeFn(deviceArn) {\n const debugFn = (msg, ...args) => this.ioHelper.defaults.debug((0, node_util_1.format)(msg, ...args));\n await debugFn('Require MFA token from MFA device with ARN', deviceArn);\n try {\n const token = await this.ioHelper.requestResponse(private_1.IO.CDK_SDK_I1100.req(`MFA token for ${deviceArn}`, {\n deviceArn,\n }, ''));\n await debugFn('Successfully got MFA token from user');\n return token;\n }\n catch (err) {\n await debugFn('Failed to get MFA token', err);\n const e = new toolkit_error_1.AuthenticationError('MfaTokenError', `Error fetching MFA token: ${err.message ?? err}`);\n e.name = 'SharedIniFileCredentialsProviderFailure';\n throw e;\n }\n }\n}\nexports.AwsCliCompatible = AwsCliCompatible;\n/**\n * We used to support both AWS and AMAZON prefixes for these environment variables.\n *\n * Adding this for backward compatibility.\n */\nfunction shouldPrioritizeEnv() {\n const id = process.env.AWS_ACCESS_KEY_ID || process.env.AMAZON_ACCESS_KEY_ID;\n const key = process.env.AWS_SECRET_ACCESS_KEY || process.env.AMAZON_SECRET_ACCESS_KEY;\n if (!!id && !!key) {\n process.env.AWS_ACCESS_KEY_ID = id;\n process.env.AWS_SECRET_ACCESS_KEY = key;\n const sessionToken = process.env.AWS_SESSION_TOKEN ?? process.env.AMAZON_SESSION_TOKEN;\n if (sessionToken) {\n process.env.AWS_SESSION_TOKEN = sessionToken;\n }\n return true;\n }\n return false;\n}\nfunction sdkRequestHandler(agent) {\n return {\n connectionTimeout: DEFAULT_CONNECTION_TIMEOUT,\n requestTimeout: DEFAULT_TIMEOUT,\n httpsAgent: agent,\n httpAgent: agent,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2xpLWNvbXBhdGlibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3NjbGktY29tcGF0aWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2UkEsOENBT0M7QUFuU0QseUNBQW1DO0FBRW5DLHdFQUErRztBQUMvRyx3RUFBZ0U7QUFDaEUsMkVBQXVFO0FBRXZFLG1EQUFnRDtBQUNoRCx5REFBeUQ7QUFFekQsK0RBQWtFO0FBQ2xFLDJDQUFrRDtBQUVsRCxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUN6QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7QUFFL0I7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1YsUUFBUSxDQUFXO0lBQ25CLGNBQWMsQ0FBeUI7SUFDdkMsTUFBTSxDQUFjO0lBRXJDLFlBQW1CLFFBQWtCLEVBQUUsY0FBc0MsRUFBRSxNQUFtQjtRQUNoRyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFnQjtRQUN0QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQzNELE9BQU87WUFDUCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxzQkFBc0IsQ0FDakMsVUFBa0MsRUFBRTtRQUVwQyxNQUFNLFlBQVksR0FBRztZQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFD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Y0FBYyxFQUFFLGVBQWU7UUFDL0IsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLEtBQUs7S0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnbm9kZTpodHRwcyc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNyZWRlbnRpYWxDaGFpbiwgZnJvbUVudiwgZnJvbUluaSwgZnJvbU5vZGVQcm92aWRlckNoYWluIH0gZnJvbSAnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlcnMnO1xuaW1wb3J0IHsgTWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnQGF3cy1zZGsvZWMyLW1ldGFkYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgbG9hZFNoYXJlZENvbmZpZ0ZpbGVzIH0gZnJvbSAnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEhhbmRsZXJTZXR0aW5ncyB9IGZyb20gJy4vYmFzZS1jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBpc0VjMkluc3RhbmNlIH0gZnJvbSAnLi9lYzItZGV0ZWN0aW9uJztcbmltcG9ydCB7IG1ha2VDYWNoaW5nUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVyLWNhY2hpbmcnO1xuaW1wb3J0IHR5cGUgeyBJU2RrTG9nZ2VyIH0gZnJvbSAnLi9zZGstbG9nZ2VyJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuY29uc3QgREVGQVVMVF9DT05ORUNUSU9OX1RJTUVPVVQgPSAxMDAwMDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVCA9IDMwMDAwMDtcblxuLyoqXG4gKiBCZWhhdmlvcnMgdG8gbWF0Y2ggQVdTIENMSVxuICpcbiAqIFNlZSB0aGVzZSBsaW5rczpcbiAqXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC90b3BpYy9jb25maWctdmFycy5odG1sXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1lbnZ2YXJzLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0NsaUNvbXBhdGlibGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0SGFuZGxlcjogUmVxdWVzdEhhbmRsZXJTZXR0aW5ncztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIsIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzLCBsb2dnZXI/OiBJU2RrTG9nZ2VyKSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMucmVxdWVzdEhhbmRsZXIgPSByZXF1ZXN0SGFuZGxlcjtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBiYXNlQ29uZmlnKHByb2ZpbGU/OiBzdHJpbmcpOiBQcm9taXNlPHsgY3JlZGVudGlhbFByb3ZpZGVyOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7IGRlZmF1bHRSZWdpb246IHN0cmluZyB9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbFByb3ZpZGVyID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsQ2hhaW5CdWlsZGVyKHtcbiAgICAgIHByb2ZpbGUsXG4gICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlZmF1bHRSZWdpb24gPSBhd2FpdCB0aGlzLnJlZ2lvbihwcm9maWxlKTtcbiAgICByZXR1cm4geyBjcmVkZW50aWFsUHJvdmlkZXIsIGRlZmF1bHRSZWdpb24gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiBBV1MgQ0xJLWNvbXBhdGlibGUgY3JlZGVudGlhbCBjaGFpbiBwcm92aWRlclxuICAgKlxuICAgKiBUaGUgY3JlZGVudGlhbCBjaGFpbiByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGlzIGFsd2F5cyBjYWNoaW5nLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWRlbnRpYWxDaGFpbkJ1aWxkZXIoXG4gICAgb3B0aW9uczogQ3JlZGVudGlhbENoYWluT3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcj4ge1xuICAgIGNvbnN0IGNsaWVudENvbmZpZyA9IHtcbiAgICAgIHJlcXVlc3RIYW5kbGVyOiB0aGlzLnJlcXVlc3RIYW5kbGVyLFxuICAgICAgY3VzdG9tVXNlckFnZW50OiAnYXdzLWNkaycsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgIH07XG5cbiAgICAvLyBTdXBlciBoYWNreSBzb2x1dGlvbiB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzMyNTEwLCBwcm9wb3NlZCBieSB0aGUgU0RLIHRlYW0uXG4gICAgLy9cbiAgICAvLyBTdW1tYXJ5IG9mIHRoZSBwcm9ibGVtOiB3ZSB3ZXJlIHJlYWRpbmcgdGhlIHJlZ2lvbiBmcm9tIHRoZSBjb25maWcgZmlsZSBhbmQgcGFzc2luZyBpdCB0b1xuICAgIC8vIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVycy4gSG93ZXZlciwgaW4gdGhlIGNhc2Ugb2YgU1NPLCB0aGlzIG1ha2VzIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVyXG4gICAgLy8gdXNlIHRoYXQgcmVnaW9uIHRvIGRvIHRoZSBTU08gZmxvdywgd2hpY2ggaXMgaW5jb3JyZWN0LiBUaGUgcmVnaW9uIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yXG4gICAgLy8gdGhhdCBpcyB0aGUgb25lIHNldCBpbiB0aGUgc3NvX3Nlc3Npb24gc2VjdGlvbiBvZiB0aGUgY29uZmlnIGZpbGUuXG4gICAgLy9cbiAgICAvLyBUaGUgaWRlYSBoZXJlOiB0aGUgXCJjbGllbnRDb25maWdcIiBpcyBmb3IgY29uZmlndXJpbmcgdGhlIGlubmVyIGF1dGggY2xpZW50IGRpcmVjdGx5LFxuICAgIC8vIGFuZCBoYXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHksIHdoZXJlYXMgXCJwYXJlbnRDbGllbnRDb25maWdcIiBpcyB0aGUgdXBwZXIgZGF0YSBjbGllbnRcbiAgICAvLyBhbmQgaGFzIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHNzb19yZWdpb24gYnV0IHN0aWxsIGhpZ2hlciBwcmlvcml0eSB0aGFuIFNUUyBnbG9iYWwgcmVnaW9uLlxuICAgIGNvbnN0IHBhcmVudENsaWVudENvbmZpZyA9IHtcbiAgICAgIHJlZ2lvbjogYXdhaXQgdGhpcy5yZWdpb24ob3B0aW9ucy5wcm9maWxlKSxcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBtYXRjaGVkIEFXUyBDTEkgYmVoYXZpb3I6XG4gICAgICpcbiAgICAgKiBJZiBhIHByb2ZpbGUgaXMgZXhwbGljaXRseSBzZXQgdXNpbmcgYC0tcHJvZmlsZWAsXG4gICAgICogd2UgdXNlIHRoYXQgdG8gdGhlIGV4Y2x1c2lvbiBvZiBldmVyeXRoaW5nIGVsc2UuXG4gICAgICpcbiAgICAgKiBOb3RlOiB0aGlzIGRvZXMgbm90IGFwcGx5IHRvIEFXU19QUk9GSUxFLFxuICAgICAqIGVudmlyb25tZW50IGNyZWRlbnRpYWxzIHN0aWxsIHRha2UgcHJlY2VkZW5jZSBvdmVyIEFXU19QUk9GSUxFXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucHJvZmlsZSkge1xuICAgICAgcmV0dXJuIG1ha2VDYWNoaW5nUHJvdmlkZXIoZnJvbUluaSh7XG4gICAgICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgICAgICAgaWdub3JlQ2FjaGU6IHRydWUsXG4gICAgICAgIG1mYUNvZGVQcm92aWRlcjogdGhpcy50b2tlbkNvZGVGbi5iaW5kKHRoaXMpLFxuICAgICAgICBjbGllbnRDb25maWcsXG4gICAgICAgIHBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnZQcm9maWxlID0gcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRTtcblxuICAgIC8qKlxuICAgICAqIEVudiBBV1MgLSBFbnZpcm9ubWVudENyZWRlbnRpYWxzIHdpdGggc3RyaW5nIEFXU1xuICAgICAqIEVudiBBbWF6b24gLSBFbnZpcm9ubWVudENyZWRlbnRpYWxzIHdpdGggc3RyaW5nIEFNQVpPTlxuICAgICAqIFByb2ZpbGUgQ3JlZGVudGlhbHMgLSBQYXRjaGVkU2hhcmVkSW5pRmlsZUNyZWRlbnRpYWxzIHdpdGggaW1wbGljaXQgcHJvZmlsZSwgY3JlZGVudGlhbHMgZmlsZSwgaHR0cCBvcHRpb25zLCBhbmQgdG9rZW4gZm5cbiAgICAgKiAgICBTU08gd2l0aCBpbXBsaWNpdCBwcm9maWxlIG9ubHlcbiAgICAgKiAgICBTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlIGFuZCBwcmVmZXJTdGF0aWNDcmVkZW50aWFscyB0cnVlIChwcm9maWxlIHdpdGggc291cmNlX3Byb2ZpbGUpXG4gICAgICogICAgU2hhcmVkIENyZWRlbnRpYWwgZmlsZSB0aGF0IHBvaW50cyB0byBFbnZpcm9ubWVudCBDcmVkZW50aWFscyB3aXRoIEFXUyBwcmVmaXhcbiAgICAgKiAgICBTaGFyZWQgQ3JlZGVudGlhbCBmaWxlIHRoYXQgcG9pbnRzIHRvIEVDMiBNZXRhZGF0YVxuICAgICAqICAgIFNoYXJlZCBDcmVkZW50aWFsIGZpbGUgdGhhdCBwb2ludHMgdG8gRUNTIENyZWRlbnRpYWxzXG4gICAgICogU1NPIENyZWRlbnRpYWxzIC0gU3NvQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlIGFuZCBodHRwIG9wdGlvbnNcbiAgICAgKiBQcm9jZXNzQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlXG4gICAgICogRUNTIENyZWRlbnRpYWxzIC0gRUNTQ3JlZGVudGlhbHMgd2l0aCBubyBpbnB1dCBPUiBXZWIgSWRlbnRpdHkgLSBUb2tlbkZpbGVXZWJJZGVudGl0eUNyZWRlbnRpYWxzIHdpdGggbm8gaW5wdXQgT1IgRUMyIE1ldGFkYXRhIC0gRUMyTWV0YWRhdGFDcmVkZW50aWFscyB3aXRoIG5vIGlucHV0XG4gICAgICpcbiAgICAgKiBUaGVzZSB0cmFuc2xhdGUgdG86XG4gICAgICogZnJvbUVudigpXG4gICAgICogZnJvbVNTTygpL2Zyb21JbmkoKVxuICAgICAqIGZyb21Qcm9jZXNzKClcbiAgICAgKiBmcm9tQ29udGFpbmVyTWV0YWRhdGEoKVxuICAgICAqIGZyb21Ub2tlbkZpbGUoKVxuICAgICAqIGZyb21JbnN0YW5jZU1ldGFkYXRhKClcbiAgICAgKlxuICAgICAqIFRoZSBOb2RlUHJvdmlkZXJDaGFpbiBpcyBhbHJlYWR5IGNhY2hlZC5cbiAgICAgKi9cblxuICAgIC8vIFNraXAgdGhlIElNRFMgY3JlZGVudGlhbCBwcm92aWRlciBpZiB3ZSdyZSBub3Qgb24gRUMyLCB0byBhdm9pZCBhXG4gICAgLy8gMS0yIHNlY29uZCB0aW1lb3V0IG9uIG5vbi1FQzIgbWFjaGluZXMuXG4gICAgaWYgKHByb2Nlc3MuZW52LkFXU19FQzJfTUVUQURBVEFfRElTQUJMRUQgPT09IHVuZGVmaW5lZCAmJiAhaXNFYzJJbnN0YW5jZSgpKSB7XG4gICAgICBwcm9jZXNzLmVudi5BV1NfRUMyX01FVEFEQVRBX0RJU0FCTEVEID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIFRoaXMgY2hhaW4gcmVzcGVjdHMgdGhlIEFXU19FQzJfTUVUQURBVEFfRElTQUJMRUQgZW52dmFyLCB3aGljaCBjYW4gb3RoZXJ3aXNlXG4gICAgLy8gbm90IGJlIGVhc2lseSBkaXNhYmxlZCB1c2luZyBhIHByb3BlcnR5LlxuICAgIGNvbnN0IG5vZGVQcm92aWRlckNoYWluID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IGVudlByb2ZpbGUsXG4gICAgICBjbGllbnRDb25maWcsXG4gICAgICBwYXJlbnRDbGllbnRDb25maWcsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzaG91bGRQcmlvcml0aXplRW52KClcbiAgICAgID8gY3JlYXRlQ3JlZGVudGlhbENoYWluKGZyb21FbnYoKSwgbm9kZVByb3ZpZGVyQ2hhaW4pLmV4cGlyZUFmdGVyKDYwICogNjBfMDAwKVxuICAgICAgOiBub2RlUHJvdmlkZXJDaGFpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBnZXQgdGhlIHJlZ2lvbiBmcm9tIGEgbnVtYmVyIG9mIHNvdXJjZXMgYW5kIGZhbGxzIGJhY2sgdG8gdXMtZWFzdC0xIGlmIG5vIHJlZ2lvbiBjYW4gYmUgZm91bmQsXG4gICAqIGFzIGlzIGRvbmUgaW4gdGhlIEFXUyBDTEkuXG4gICAqXG4gICAqIFRoZSBvcmRlciBvZiBwcmlvcml0eSBpcyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAxLiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgc3BlY2lmeWluZyByZWdpb24sIHdpdGggYm90aCBhbiBBV1MgcHJlZml4IGFuZCBBTUFaT04gcHJlZml4XG4gICAqICAgIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBhbmQgd2l0aG91dCBgREVGQVVMVGAgaW4gdGhlIG5hbWUgYmVjYXVzZVxuICAgKiAgICBMYW1iZGEgYW5kIENvZGVCdWlsZCBzZXQgdGhlICRBV1NfUkVHSU9OIHZhcmlhYmxlLlxuICAgKiAyLiBSZWdpb25zIGxpc3RlZCBpbiB0aGUgU2hhcmVkIEluaSBGaWxlcyAtIEZpcnN0IGNoZWNraW5nIGZvciB0aGUgcHJvZmlsZSBwcm92aWRlZFxuICAgKiAgICBhbmQgdGhlbiBjaGVja2luZyBmb3IgdGhlIGRlZmF1bHQgcHJvZmlsZS5cbiAgICogMy4gSU1EUyBpbnN0YW5jZSBpZGVudGl0eSByZWdpb24gZnJvbSB0aGUgTWV0YWRhdGEgU2VydmljZS5cbiAgICogNC4gdXMtZWFzdC0xXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaW9uKG1heWJlUHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBtYXliZVByb2ZpbGUgfHwgcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRSB8fCAnZGVmYXVsdCc7XG5cbiAgICBjb25zdCByZWdpb24gPVxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQU1BWk9OX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OIHx8XG4gICAgICBwcm9jZXNzLmVudi5BTUFaT05fREVGQVVMVF9SRUdJT04gfHxcbiAgICAgIChhd2FpdCB0aGlzLmdldFJlZ2lvbkZyb21JbmkocHJvZmlsZSkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy5yZWdpb25Gcm9tTWV0YWRhdGFTZXJ2aWNlKCkpO1xuXG4gICAgaWYgKCFyZWdpb24pIHtcbiAgICAgIGNvbnN0IHVzZWRQcm9maWxlID0gIXByb2ZpbGUgPyAnJyA6IGAgKHByb2ZpbGU6IFwiJHtwcm9maWxlfVwiKWA7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKFxuICAgICAgICBgVW5hYmxlIHRvIGRldGVybWluZSBBV1MgcmVnaW9uIGZyb20gZW52aXJvbm1lbnQgb3IgQVdTIGNvbmZpZ3VyYXRpb24ke3VzZWRQcm9maWxlfSwgZGVmYXVsdGluZyB0byAnJHtkZWZhdWx0UmVnaW9ufSdgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkZWZhdWx0UmVnaW9uO1xuICAgIH1cblxuICAgIHJldHVybiByZWdpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIE1ldGFkYXRhU2VydmljZSBjbGFzcyB3aWxsIGF0dGVtcHQgdG8gZmV0Y2ggdGhlIGluc3RhbmNlIGlkZW50aXR5IGRvY3VtZW50IGZyb21cbiAgICogSU1EU3YyIGZpcnN0LCBhbmQgdGhlbiB3aWxsIGF0dGVtcHQgdjEgYXMgYSBmYWxsYmFjay5cbiAgICpcbiAgICogSWYgdGhpcyBmYWlscywgd2Ugd2lsbCB1c2UgdXMtZWFzdC0xIGFzIHRoZSByZWdpb24gc28gbm8gZXJyb3Igc2hvdWxkIGJlIHRocm93bi5cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIGluc3RhbmNlIGlkZW50aXR5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZ2lvbkZyb21NZXRhZGF0YVNlcnZpY2UoKSB7XG4gICAgaWYgKCFpc0VjMkluc3RhbmNlKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZygnTG9va2luZyB1cCBBV1MgcmVnaW9uIGluIHRoZSBFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZSAoSU1EUykuJyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhU2VydmljZSA9IG5ldyBNZXRhZGF0YVNlcnZpY2Uoe1xuICAgICAgICBodHRwT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IDEwMDAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWV0YWRhdGFTZXJ2aWNlLmZldGNoTWV0YWRhdGFUb2tlbigpO1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBhd2FpdCBtZXRhZGF0YVNlcnZpY2UucmVxdWVzdCgnL2xhdGVzdC9keW5hbWljL2luc3RhbmNlLWlkZW50aXR5L2RvY3VtZW50Jywge30pO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZG9jdW1lbnQpLnJlZ2lvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBVbmFibGUgdG8gcmV0cmlldmUgQVdTIHJlZ2lvbiBmcm9tIElNRFM6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgdXAgdGhlIHJlZ2lvbiBvZiB0aGUgcHJvdmlkZWQgcHJvZmlsZS4gSWYgbm8gcmVnaW9uIGlzIHByZXNlbnQsXG4gICAqIGl0IHdpbGwgYXR0ZW1wdCB0byBsb29rdXAgdGhlIGRlZmF1bHQgcmVnaW9uLlxuICAgKiBAcGFyYW0gcHJvZmlsZSAtIFRoZSBwcm9maWxlIHRvIHVzZSB0byBsb29rdXAgdGhlIHJlZ2lvblxuICAgKiBAcmV0dXJucyBUaGUgcmVnaW9uIGZvciB0aGUgcHJvZmlsZSBvciBkZWZhdWx0IHByb2ZpbGUsIGlmIHByZXNlbnQuIE90aGVyd2lzZSByZXR1cm5zIHVuZGVmaW5lZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVnaW9uRnJvbUluaShwcm9maWxlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHNoYXJlZEZpbGVzID0gYXdhaXQgbG9hZFNoYXJlZENvbmZpZ0ZpbGVzKHsgaWdub3JlQ2FjaGU6IHRydWUgfSk7XG5cbiAgICAvLyBQcmlvcml0eTpcbiAgICAvL1xuICAgIC8vIGNyZWRlbnRpYWxzIGNvbWUgYmVmb3JlIGNvbmZpZyBiZWNhdXNlIGF3cy1jbGkgdjEgYmVoYXZlcyBsaWtlIHRoYXQuXG4gICAgLy9cbiAgICAvLyAxLiBwcm9maWxlLXJlZ2lvbi1pbi1jcmVkZW50aWFsc1xuICAgIC8vIDIuIHByb2ZpbGUtcmVnaW9uLWluLWNvbmZpZ1xuICAgIC8vIDMuIGRlZmF1bHQtcmVnaW9uLWluLWNyZWRlbnRpYWxzXG4gICAgLy8gNC4gZGVmYXVsdC1yZWdpb24taW4tY29uZmlnXG5cbiAgICByZXR1cm4gdGhpcy5nZXRSZWdpb25Gcm9tSW5pRmlsZShwcm9maWxlLCBzaGFyZWRGaWxlcy5jcmVkZW50aWFsc0ZpbGUpXG4gICAgPz8gdGhpcy5nZXRSZWdpb25Gcm9tSW5pRmlsZShwcm9maWxlLCBzaGFyZWRGaWxlcy5jb25maWdGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUoJ2RlZmF1bHQnLCBzaGFyZWRGaWxlcy5jcmVkZW50aWFsc0ZpbGUpXG4gICAgPz8gdGhpcy5nZXRSZWdpb25Gcm9tSW5pRmlsZSgnZGVmYXVsdCcsIHNoYXJlZEZpbGVzLmNvbmZpZ0ZpbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWdpb25Gcm9tSW5pRmlsZShwcm9maWxlOiBzdHJpbmcsIGRhdGE/OiBhbnkpIHtcbiAgICByZXR1cm4gZGF0YT8uW3Byb2ZpbGVdPy5yZWdpb247XG4gIH1cblxuICAvKipcbiAgICogQXNrIHVzZXIgZm9yIE1GQSB0b2tlbiBmb3IgZ2l2ZW4gTUZBIGRldmljZVxuICAgKlxuICAgKiBSZXN1bHQgaXMgc2VuZCB0byBjYWxsYmFjayBmdW5jdGlvbiBmb3IgU0RLIHRvIGF1dGhvcml6ZSB0aGUgcmVxdWVzdFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0b2tlbkNvZGVGbihkZXZpY2VBcm46IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVidWdGbiA9IChtc2c6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KG1zZywgLi4uYXJncykpO1xuICAgIGF3YWl0IGRlYnVnRm4oJ1JlcXVpcmUgTUZBIHRva2VuIGZyb20gTUZBIGRldmljZSB3aXRoIEFSTicsIGRldmljZUFybik7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VuOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmlvSGVscGVyLnJlcXVlc3RSZXNwb25zZShJTy5DREtfU0RLX0kxMTAwLnJlcShgTUZBIHRva2VuIGZvciAke2RldmljZUFybn1gLCB7XG4gICAgICAgIGRldmljZUFybixcbiAgICAgIH0sICcnKSk7XG5cbiAgICAgIGF3YWl0IGRlYnVnRm4oJ1N1Y2Nlc3NmdWxseSBnb3QgTUZBIHRva2VuIGZyb20gdXNlcicpO1xuICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBhd2FpdCBkZWJ1Z0ZuKCdGYWlsZWQgdG8gZ2V0IE1GQSB0b2tlbicsIGVycik7XG4gICAgICBjb25zdCBlID0gbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ01mYVRva2VuRXJyb3InLCBgRXJyb3IgZmV0Y2hpbmcgTUZBIHRva2VuOiAke2Vyci5tZXNzYWdlID8/IGVycn1gKTtcbiAgICAgIGUubmFtZSA9ICdTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHNQcm92aWRlckZhaWx1cmUnO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBXZSB1c2VkIHRvIHN1cHBvcnQgYm90aCBBV1MgYW5kIEFNQVpPTiBwcmVmaXhlcyBmb3IgdGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEFkZGluZyB0aGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICovXG5mdW5jdGlvbiBzaG91bGRQcmlvcml0aXplRW52KCkge1xuICBjb25zdCBpZCA9IHByb2Nlc3MuZW52LkFXU19BQ0NFU1NfS0VZX0lEIHx8IHByb2Nlc3MuZW52LkFNQVpPTl9BQ0NFU1NfS0VZX0lEO1xuICBjb25zdCBrZXkgPSBwcm9jZXNzLmVudi5BV1NfU0VDUkVUX0FDQ0VTU19LRVkgfHwgcHJvY2Vzcy5lbnYuQU1BWk9OX1NFQ1JFVF9BQ0NFU1NfS0VZO1xuXG4gIGlmICghIWlkICYmICEha2V5KSB7XG4gICAgcHJvY2Vzcy5lbnYuQVdTX0FDQ0VTU19LRVlfSUQgPSBpZDtcbiAgICBwcm9jZXNzLmVudi5BV1NfU0VDUkVUX0FDQ0VTU19LRVkgPSBrZXk7XG5cbiAgICBjb25zdCBzZXNzaW9uVG9rZW4gPSBwcm9jZXNzLmVudi5BV1NfU0VTU0lPTl9UT0tFTiA/PyBwcm9jZXNzLmVudi5BTUFaT05fU0VTU0lPTl9UT0tFTjtcbiAgICBpZiAoc2Vzc2lvblRva2VuKSB7XG4gICAgICBwcm9jZXNzLmVudi5BV1NfU0VTU0lPTl9UT0tFTiA9IHNlc3Npb25Ub2tlbjtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVkZW50aWFsQ2hhaW5PcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbG9nZ2VyPzogSVNka0xvZ2dlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNka1JlcXVlc3RIYW5kbGVyKGFnZW50PzogQWdlbnQpOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzIHtcbiAgcmV0dXJuIHtcbiAgICBjb25uZWN0aW9uVGltZW91dDogREVGQVVMVF9DT05ORUNUSU9OX1RJTUVPVVQsXG4gICAgcmVxdWVzdFRpbWVvdXQ6IERFRkFVTFRfVElNRU9VVCxcbiAgICBodHRwc0FnZW50OiBhZ2VudCxcbiAgICBodHRwQWdlbnQ6IGFnZW50LFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseCredentials = void 0;\nconst awscli_compatible_1 = require(\"./awscli-compatible\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst sdk_logger_1 = require(\"./sdk-logger\");\nconst private_1 = require(\"../io/private\");\nclass BaseCredentials {\n /**\n * Use no base credentials\n *\n * There will be no current account and no current region during synthesis. To\n * successfully deploy with this set of base credentials:\n *\n * - The CDK app must provide concrete accounts and regions during synthesis\n * - Credential plugins must be installed to provide credentials for those\n * accounts.\n */\n static none() {\n return new class {\n async sdkBaseConfig() {\n return {\n credentialProvider: () => {\n throw new toolkit_error_1.AuthenticationError('NoBaseCredentials', 'No credentials available due to BaseCredentials.none()');\n },\n };\n }\n toString() {\n return 'BaseCredentials.none()';\n }\n };\n }\n /**\n * Obtain base credentials and base region the same way the AWS CLI would\n *\n * Credentials and region will be read from the environment first, falling back\n * to INI files or other sources if available.\n *\n * The profile name is configurable.\n */\n static awsCliCompatible(options = {}) {\n return new class {\n async sdkBaseConfig(ioHost, clientConfig) {\n const ioHelper = private_1.IoHelper.fromActionAwareIoHost(ioHost);\n const awsCli = new awscli_compatible_1.AwsCliCompatible(ioHelper, clientConfig.requestHandler ?? {}, new sdk_logger_1.IoHostSdkLogger(ioHelper));\n const ret = await awsCli.baseConfig(options.profile);\n return options.defaultRegion\n ? { ...ret, defaultRegion: options.defaultRegion }\n : ret;\n }\n toString() {\n return `BaseCredentials.awsCliCompatible(${JSON.stringify(options)})`;\n }\n };\n }\n /**\n * Use a custom SDK identity provider for the base credentials\n *\n * If your provider uses STS calls to obtain base credentials, you must make\n * sure to also configure the necessary HTTP options (like proxy and user\n * agent) and the region on the STS client directly; the toolkit code cannot\n * do this for you.\n */\n static custom(options) {\n return new class {\n sdkBaseConfig() {\n return Promise.resolve({\n credentialProvider: options.provider,\n defaultRegion: options.region,\n });\n }\n toString() {\n return `BaseCredentials.custom(${JSON.stringify({\n ...options,\n provider: '...',\n })})`;\n }\n };\n }\n}\nexports.BaseCredentials = BaseCredentials;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jcmVkZW50aWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UtY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkRBQXVEO0FBQ3ZELCtEQUFrRTtBQUVsRSw2Q0FBK0M7QUFDL0MsMkNBQXlDO0FBa0R6QyxNQUFhLGVBQWU7SUFDMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLElBQUk7UUFDaEIsT0FBTyxJQUFJO1lBQ0YsS0FBSyxDQUFDLGFBQWE7Z0JBQ3hCLE9BQU87b0JBQ0wsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO3dCQUN2QixNQUFNLElBQUksbUNBQW1CLENBQUMsbUJBQW1CLEVBQUUsd0RBQXdELENBQUMsQ0FBQztvQkFDL0csQ0FBQztpQkFDRixDQUFDO1lBQ0osQ0FBQztZQUVNLFFBQVE7Z0JBQ2IsT0FBTyx3QkFBd0IsQ0FBQztZQUNsQyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQW1DLEVBQUU7UUFDbEUsT0FBTyxJQUFJO1lBQ0YsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUEwQixFQUFFLFlBQWlDO2dCQUN0RixNQUFNLFFBQVEsR0FBRyxrQkFBUSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLG9DQUFnQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFBRSxJQUFJLDRCQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFFaEgsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckQsT0FBTyxPQUFPLENBQUMsYUFBYTtvQkFDMUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUU7b0JBQ2xELENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDVixDQUFDO1lBRU0sUUFBUTtnQkFDYixPQUFPLG9DQUFvQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDeEUsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBb0M7UUFDdkQsT0FBTyxJQUFJO1lBQ0YsYUFBYTtnQkFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO29CQUNyQixrQkFBa0IsRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDcEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2lCQUM5QixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRU0sUUFBUTtnQkFDYixPQUFPLDBCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDO29CQUM5QyxHQUFHLE9BQU87b0JBQ1YsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCLENBQUMsR0FBRyxDQUFDO1lBQ1IsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE5RUQsMENBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBodHRwIGZyb20gJ25vZGU6aHR0cCc7XG5pbXBvcnQgdHlwZSAqIGFzIGh0dHBzIGZyb20gJ25vZGU6aHR0cHMnO1xuaW1wb3J0IHR5cGUgeyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB7IEF3c0NsaUNvbXBhdGlibGUgfSBmcm9tICcuL2F3c2NsaS1jb21wYXRpYmxlJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uQXdhcmVJb0hvc3QgfSBmcm9tICcuLi9pbyc7XG5pbXBvcnQgeyBJb0hvc3RTZGtMb2dnZXIgfSBmcm9tICcuL3Nkay1sb2dnZXInO1xuaW1wb3J0IHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuLyoqXG4gKiBTZXR0aW5ncyBmb3IgdGhlIHJlcXVlc3QgaGFuZGxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEhhbmRsZXJTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIDAsIHdoaWNoIGRpc2FibGVzIHRoZSB0aW1lb3V0LlxuICAgKi9cbiAgY29ubmVjdGlvblRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhIHJlcXVlc3QgY2FuIHRha2UgYmVmb3JlIGF1dG9tYXRpY2FsbHkgYmVpbmcgdGVybWluYXRlZC5cbiAgICogRGVmYXVsdHMgdG8gMCwgd2hpY2ggZGlzYWJsZXMgdGhlIHRpbWVvdXQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEFuIGh0dHAuQWdlbnQgdG8gYmUgdXNlZFxuICAgKi9cbiAgaHR0cEFnZW50PzogaHR0cC5BZ2VudDtcbiAgLyoqXG4gICAqIEFuIGh0dHBzLkFnZW50IHRvIGJlIHVzZWRcbiAgICovXG4gIGh0dHBzQWdlbnQ/OiBodHRwcy5BZ2VudDtcbn1cblxuLyoqXG4gKiBBbiBTREsgY29uZmlnIHRoYXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtCYXNlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFsIHByb3ZpZGVyIHRvIHVzZSBmb3IgU0RLIGNhbGxzLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCByZWdpb24gdG8gdXNlIGZvciBTREsgY2FsbHMuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0UmVnaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNka0Jhc2VDbGllbnRDb25maWcge1xuICByZXF1ZXN0SGFuZGxlcj86IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJhc2VDcmVkZW50aWFsc1Byb3ZpZGVyIHtcbiAgc2RrQmFzZUNvbmZpZyhpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCwgY2xpZW50Q29uZmlnOiBTZGtCYXNlQ2xpZW50Q29uZmlnKTogUHJvbWlzZTxTZGtCYXNlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VDcmVkZW50aWFscyB7XG4gIC8qKlxuICAgKiBVc2Ugbm8gYmFzZSBjcmVkZW50aWFsc1xuICAgKlxuICAgKiBUaGVyZSB3aWxsIGJlIG5vIGN1cnJlbnQgYWNjb3VudCBhbmQgbm8gY3VycmVudCByZWdpb24gZHVyaW5nIHN5bnRoZXNpcy4gVG9cbiAgICogc3VjY2Vzc2Z1bGx5IGRlcGxveSB3aXRoIHRoaXMgc2V0IG9mIGJhc2UgY3JlZGVudGlhbHM6XG4gICAqXG4gICAqIC0gVGhlIENESyBhcHAgbXVzdCBwcm92aWRlIGNvbmNyZXRlIGFjY291bnRzIGFuZCByZWdpb25zIGR1cmluZyBzeW50aGVzaXNcbiAgICogLSBDcmVkZW50aWFsIHBsdWdpbnMgbXVzdCBiZSBpbnN0YWxsZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyBmb3IgdGhvc2VcbiAgICogICBhY2NvdW50cy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbm9uZSgpOiBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgICAgcHVibGljIGFzeW5jIHNka0Jhc2VDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY3JlZGVudGlhbFByb3ZpZGVyOiAoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcignTm9CYXNlQ3JlZGVudGlhbHMnLCAnTm8gY3JlZGVudGlhbHMgYXZhaWxhYmxlIGR1ZSB0byBCYXNlQ3JlZGVudGlhbHMubm9uZSgpJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gJ0Jhc2VDcmVkZW50aWFscy5ub25lKCknO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogT2J0YWluIGJhc2UgY3JlZGVudGlhbHMgYW5kIGJhc2UgcmVnaW9uIHRoZSBzYW1lIHdheSB0aGUgQVdTIENMSSB3b3VsZFxuICAgKlxuICAgKiBDcmVkZW50aWFscyBhbmQgcmVnaW9uIHdpbGwgYmUgcmVhZCBmcm9tIHRoZSBlbnZpcm9ubWVudCBmaXJzdCwgZmFsbGluZyBiYWNrXG4gICAqIHRvIElOSSBmaWxlcyBvciBvdGhlciBzb3VyY2VzIGlmIGF2YWlsYWJsZS5cbiAgICpcbiAgICogVGhlIHByb2ZpbGUgbmFtZSBpcyBjb25maWd1cmFibGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGF3c0NsaUNvbXBhdGlibGUob3B0aW9uczogQXdzQ2xpQ29tcGF0aWJsZU9wdGlvbnMgPSB7fSk6IElCYXNlQ3JlZGVudGlhbHNQcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBpbXBsZW1lbnRzIElCYXNlQ3JlZGVudGlhbHNQcm92aWRlciB7XG4gICAgICBwdWJsaWMgYXN5bmMgc2RrQmFzZUNvbmZpZyhpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCwgY2xpZW50Q29uZmlnOiBTZGtCYXNlQ2xpZW50Q29uZmlnKSB7XG4gICAgICAgIGNvbnN0IGlvSGVscGVyID0gSW9IZWxwZXIuZnJvbUFjdGlvbkF3YXJlSW9Ib3N0KGlvSG9zdCk7XG4gICAgICAgIGNvbnN0IGF3c0NsaSA9IG5ldyBBd3NDbGlDb21wYXRpYmxlKGlvSGVscGVyLCBjbGllbnRDb25maWcucmVxdWVzdEhhbmRsZXIgPz8ge30sIG5ldyBJb0hvc3RTZGtMb2dnZXIoaW9IZWxwZXIpKTtcblxuICAgICAgICBjb25zdCByZXQgPSBhd2FpdCBhd3NDbGkuYmFzZUNvbmZpZyhvcHRpb25zLnByb2ZpbGUpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5kZWZhdWx0UmVnaW9uXG4gICAgICAgICAgPyB7IC4uLnJldCwgZGVmYXVsdFJlZ2lvbjogb3B0aW9ucy5kZWZhdWx0UmVnaW9uIH1cbiAgICAgICAgICA6IHJldDtcbiAgICAgIH1cblxuICAgICAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gYEJhc2VDcmVkZW50aWFscy5hd3NDbGlDb21wYXRpYmxlKCR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9KWA7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYSBjdXN0b20gU0RLIGlkZW50aXR5IHByb3ZpZGVyIGZvciB0aGUgYmFzZSBjcmVkZW50aWFsc1xuICAgKlxuICAgKiBJZiB5b3VyIHByb3ZpZGVyIHVzZXMgU1RTIGNhbGxzIHRvIG9idGFpbiBiYXNlIGNyZWRlbnRpYWxzLCB5b3UgbXVzdCBtYWtlXG4gICAqIHN1cmUgdG8gYWxzbyBjb25maWd1cmUgdGhlIG5lY2Vzc2FyeSBIVFRQIG9wdGlvbnMgKGxpa2UgcHJveHkgYW5kIHVzZXJcbiAgICogYWdlbnQpIGFuZCB0aGUgcmVnaW9uIG9uIHRoZSBTVFMgY2xpZW50IGRpcmVjdGx5OyB0aGUgdG9vbGtpdCBjb2RlIGNhbm5vdFxuICAgKiBkbyB0aGlzIGZvciB5b3UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShvcHRpb25zOiBDdXN0b21CYXNlQ3JlZGVudGlhbHNPcHRpb24pOiBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgICAgcHVibGljIHNka0Jhc2VDb25maWcoKTogUHJvbWlzZTxTZGtCYXNlQ29uZmlnPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlcjogb3B0aW9ucy5wcm92aWRlcixcbiAgICAgICAgICBkZWZhdWx0UmVnaW9uOiBvcHRpb25zLnJlZ2lvbixcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIGBCYXNlQ3JlZGVudGlhbHMuY3VzdG9tKCR7SlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgcHJvdmlkZXI6ICcuLi4nLFxuICAgICAgICB9KX0pYDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2xpQ29tcGF0aWJsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHByb2ZpbGUgdG8gcmVhZCBmcm9tIGB+Ly5hd3MvY3JlZGVudGlhbHNgLlxuICAgKlxuICAgKiBJZiBub3Qgc3VwcGxpZWQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19QUk9GSUxFIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2UgZW52aXJvbm1lbnQgdmFyaWFibGUgaWYgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIGEgZGlmZmVyZW50IGRlZmF1bHQgcmVnaW9uIHRoYW4gdGhlIG9uZSBpbiB0aGUgcHJvZmlsZVxuICAgKlxuICAgKiBJZiBub3Qgc3VwcGxpZWQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19SRUdJT04gd2lsbCBiZSB1c2VkLCBvclxuICAgKiB3aGF0ZXZlciByZWdpb24gaXMgc2V0IGluIHRoZSBpbmRpY2F0ZWQgcHJvZmlsZSBpbiBgfi8uYXdzL2NvbmZpZ2AuXG4gICAqIElmIG5vIHJlZ2lvbiBpcyBzZXQgaW4gdGhlIHByb2ZpbGUgdGhlIHJlZ2lvbiBpbiBgW2RlZmF1bHRdYCB3aWxsXG4gICAqIGJlIHVzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHJlZ2lvbiBmcm9tIGB+Ly5hd3MvY29uZmlnYC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRSZWdpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQmFzZUNyZWRlbnRpYWxzT3B0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyBwcm92aWRlciB0byB1c2UgdG8gb2J0YWluIGJhc2UgY3JlZGVudGlhbHNcbiAgICpcbiAgICogSWYgeW91ciBwcm92aWRlciB1c2VzIFNUUyBjYWxscyB0byBvYnRhaW4gYmFzZSBjcmVkZW50aWFscywgeW91IG11c3QgbWFrZVxuICAgKiBzdXJlIHRvIGFsc28gY29uZmlndXJlIHRoZSBuZWNlc3NhcnkgSFRUUCBvcHRpb25zIChsaWtlIHByb3h5IGFuZCB1c2VyXG4gICAqIGFnZW50KSBvbiB0aGUgU1RTIGNsaWVudCBkaXJlY3RseTsgdGhlIHRvb2xraXQgY29kZSBjYW5ub3QgZG8gdGhpcyBmb3IgeW91LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcjtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgcmVnaW9uIHRvIHN5bnRoZXNpemUgZm9yXG4gICAqXG4gICAqIENESyBhcHBsaWNhdGlvbnMgY2FuIG92ZXJyaWRlIHRoaXMgcmVnaW9uLiBOT1RFOiB0aGlzIHJlZ2lvbiB3aWxsICpub3QqXG4gICAqIGFmZmVjdCBhbnkgU1RTIGNhbGxzIG1hZGUgYnkgdGhlIGdpdmVuIHByb3ZpZGVyLCBpZiBhbnkuIFlvdSBuZWVkIHRvIGNvbmZpZ3VyZVxuICAgKiB5b3VyIGNyZWRlbnRpYWwgcHJvdmlkZXIgc2VwYXJhdGVseS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3VzLWVhc3QtMSdcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cached = cached;\nexports.cachedAsync = cachedAsync;\n/**\n * Cache the result of a function on an object\n *\n * We could have used @decorators to make this nicer but we don't use them anywhere yet,\n * so let's keep it simple and readable.\n */\nfunction cached(obj, sym, fn) {\n if (!(sym in obj)) {\n obj[sym] = fn();\n }\n return obj[sym];\n}\n/**\n * Like 'cached', but async\n */\nasync function cachedAsync(obj, sym, fn) {\n if (!(sym in obj)) {\n obj[sym] = await fn();\n }\n return obj[sym];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2FjaGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsd0JBS0M7QUFLRCxrQ0FLQztBQXJCRDs7Ozs7R0FLRztBQUNILFNBQWdCLE1BQU0sQ0FBc0IsR0FBTSxFQUFFLEdBQVcsRUFBRSxFQUFXO0lBQzFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLEdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBUSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLFdBQVcsQ0FBc0IsR0FBTSxFQUFFLEdBQVcsRUFBRSxFQUFvQjtJQUM5RixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixHQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBUSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FjaGUgdGhlIHJlc3VsdCBvZiBhIGZ1bmN0aW9uIG9uIGFuIG9iamVjdFxuICpcbiAqIFdlIGNvdWxkIGhhdmUgdXNlZCBAZGVjb3JhdG9ycyB0byBtYWtlIHRoaXMgbmljZXIgYnV0IHdlIGRvbid0IHVzZSB0aGVtIGFueXdoZXJlIHlldCxcbiAqIHNvIGxldCdzIGtlZXAgaXQgc2ltcGxlIGFuZCByZWFkYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlZDxBIGV4dGVuZHMgb2JqZWN0LCBCPihvYmo6IEEsIHN5bTogc3ltYm9sLCBmbjogKCkgPT4gQik6IEIge1xuICBpZiAoIShzeW0gaW4gb2JqKSkge1xuICAgIChvYmogYXMgYW55KVtzeW1dID0gZm4oKTtcbiAgfVxuICByZXR1cm4gKG9iaiBhcyBhbnkpW3N5bV07XG59XG5cbi8qKlxuICogTGlrZSAnY2FjaGVkJywgYnV0IGFzeW5jXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjYWNoZWRBc3luYzxBIGV4dGVuZHMgb2JqZWN0LCBCPihvYmo6IEEsIHN5bTogc3ltYm9sLCBmbjogKCkgPT4gUHJvbWlzZTxCPik6IFByb21pc2U8Qj4ge1xuICBpZiAoIShzeW0gaW4gb2JqKSkge1xuICAgIChvYmogYXMgYW55KVtzeW1dID0gYXdhaXQgZm4oKTtcbiAgfVxuICByZXR1cm4gKG9iaiBhcyBhbnkpW3N5bV07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CredentialPlugins = void 0;\nconst util_1 = require(\"util\");\nconst provider_caching_1 = require(\"./provider-caching\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_2 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\n/**\n * Cache for credential providers.\n *\n * Given an account and an operating mode (read or write) will return an\n * appropriate credential provider for credentials for the given account. The\n * credential provider will be cached so that multiple AWS clients for the same\n * environment will not make multiple network calls to obtain credentials.\n *\n * Will use default credentials if they are for the right account; otherwise,\n * all loaded credential provider plugins will be tried to obtain credentials\n * for the given account.\n */\nclass CredentialPlugins {\n host;\n ioHelper;\n cache = {};\n constructor(host, ioHelper) {\n this.host = host;\n this.ioHelper = ioHelper;\n }\n async fetchCredentialsFor(awsAccountId, mode) {\n const key = `${awsAccountId}-${mode}`;\n if (!(key in this.cache)) {\n this.cache[key] = await this.lookupCredentials(awsAccountId, mode);\n }\n return this.cache[key];\n }\n get availablePluginNames() {\n return this.host.credentialProviderSources.map((s) => s.name);\n }\n async lookupCredentials(awsAccountId, mode) {\n const triedSources = [];\n // Otherwise, inspect the various credential sources we have\n for (const source of this.host.credentialProviderSources) {\n let available;\n try {\n available = await source.isAvailable();\n }\n catch (e) {\n // This shouldn't happen, but let's guard against it anyway\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_W0100.msg(`Uncaught exception in ${source.name}: ${(0, util_2.formatErrorMessage)(e)}`));\n available = false;\n }\n if (!available) {\n await this.ioHelper.defaults.debug(`Credentials source ${source.name} is not available, ignoring it.`);\n continue;\n }\n triedSources.push(source);\n let canProvide;\n try {\n canProvide = await source.canProvideCredentials(awsAccountId);\n }\n catch (e) {\n // This shouldn't happen, but let's guard against it anyway\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_W0100.msg(`Uncaught exception in ${source.name}: ${(0, util_2.formatErrorMessage)(e)}`));\n canProvide = false;\n }\n if (!canProvide) {\n continue;\n }\n await this.ioHelper.defaults.debug(`Using ${source.name} credentials for account ${awsAccountId}`);\n return {\n credentials: await v3ProviderFromPlugin(() => source.getProvider(awsAccountId, mode, {\n supportsV3Providers: true,\n })),\n pluginName: source.name,\n };\n }\n return undefined;\n }\n}\nexports.CredentialPlugins = CredentialPlugins;\n/**\n * Take a function that calls the plugin, and turn it into an SDKv3-compatible credential provider.\n *\n * What we will do is the following:\n *\n * - Query the plugin and see what kind of result it gives us.\n * - If the result is self-refreshing or doesn't need refreshing, we turn it into an SDKv3 provider\n * and return it directly.\n * * If the underlying return value is a provider, we will make it a caching provider\n * (because we can't know if it will cache by itself or not).\n * * If the underlying return value is a static credential, caching isn't relevant.\n * * If the underlying return value is V2 credentials, those have caching built-in.\n * - If the result is a static credential that expires, we will wrap it in an SDKv3 provider\n * that will query the plugin again when the credential expires.\n */\nasync function v3ProviderFromPlugin(producer) {\n const initial = await producer();\n if (isV3Provider(initial)) {\n // Already a provider, make caching\n return (0, provider_caching_1.makeCachingProvider)(initial);\n }\n else if (isV3Credentials(initial) && initial.expiration === undefined) {\n // Static credentials that don't need refreshing nor caching\n return () => Promise.resolve(initial);\n }\n else if (isV3Credentials(initial) && initial.expiration !== undefined) {\n // Static credentials that do need refreshing and caching\n return refreshFromPluginProvider(initial, producer);\n }\n else if (isV2Credentials(initial)) {\n // V2 credentials that refresh and cache themselves\n return v3ProviderFromV2Credentials(initial);\n }\n else {\n throw new toolkit_error_1.AuthenticationError('InvalidPluginCredentials', `Plugin returned a value that doesn't resemble AWS credentials: ${(0, util_1.inspect)(initial)}`);\n }\n}\n/**\n * Converts a V2 credential into a V3-compatible provider\n */\nfunction v3ProviderFromV2Credentials(x) {\n return async () => {\n // Get will fetch or refresh as necessary\n await x.getPromise();\n return {\n accessKeyId: x.accessKeyId,\n secretAccessKey: x.secretAccessKey,\n sessionToken: x.sessionToken,\n expiration: x.expireTime ?? undefined,\n };\n };\n}\nfunction refreshFromPluginProvider(current, producer) {\n return async () => {\n if ((0, provider_caching_1.credentialsAboutToExpire)(current)) {\n const newCreds = await producer();\n if (!isV3Credentials(newCreds)) {\n throw new toolkit_error_1.AuthenticationError('PluginCredentialTypeMismatch', `Plugin initially returned static V3 credentials but now returned something else: ${(0, util_1.inspect)(newCreds)}`);\n }\n current = newCreds;\n }\n return current;\n };\n}\nfunction isV3Provider(x) {\n return typeof x === 'function';\n}\nfunction isV2Credentials(x) {\n return !!(x && typeof x === 'object' && x.getPromise);\n}\nfunction isV3Credentials(x) {\n return !!(x && typeof x === 'object' && x.accessKeyId && !isV2Credentials(x));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3JlZGVudGlhbC1wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQix5REFBbUY7QUFDbkYsK0RBQWtFO0FBQ2xFLHFDQUFnRDtBQUNoRCwyQ0FBa0Q7QUFJbEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFhLGlCQUFpQjtJQUdDO0lBQW1DO0lBRi9DLEtBQUssR0FBZ0UsRUFBRSxDQUFDO0lBRXpGLFlBQTZCLElBQWdCLEVBQW1CLFFBQWtCO1FBQXJELFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUNsRixDQUFDO0lBRU0sS0FBSyxDQUFDLG1CQUFtQixDQUFDLFlBQW9CLEVBQUUsSUFBVTtRQUMvRCxNQUFNLEdBQUcsR0FBRyxHQUFHLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsWUFBb0IsRUFBRSxJQUFVO1FBQzlELE1BQU0sWUFBWSxHQUErQixFQUFFLENBQUM7UUFDcEQsNERBQTREO1FBQzVELEtBQUss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QjtJQUMzQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsQ0FBdUI7SUFDOUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFLLENBQWdDLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLENBQXVCO0lBQzlDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluc3BlY3QgfSBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgQ3JlZGVudGlhbFByb3ZpZGVyU291cmNlLCBGb3JSZWFkaW5nLCBGb3JXcml0aW5nLCBQbHVnaW5Qcm92aWRlclJlc3VsdCwgU0RLdjJDb21wYXRpYmxlQ3JlZGVudGlhbHMsIFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciwgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbHMgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB7IGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSwgbWFrZUNhY2hpbmdQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXItY2FjaGluZyc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luSG9zdCB9IGZyb20gJy4uL3BsdWdpbic7XG5pbXBvcnQgdHlwZSB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4vbW9kZSc7XG5cbi8qKlxuICogQ2FjaGUgZm9yIGNyZWRlbnRpYWwgcHJvdmlkZXJzLlxuICpcbiAqIEdpdmVuIGFuIGFjY291bnQgYW5kIGFuIG9wZXJhdGluZyBtb2RlIChyZWFkIG9yIHdyaXRlKSB3aWxsIHJldHVybiBhblxuICogYXBwcm9wcmlhdGUgY3JlZGVudGlhbCBwcm92aWRlciBmb3IgY3JlZGVudGlhbHMgZm9yIHRoZSBnaXZlbiBhY2NvdW50LiBUaGVcbiAqIGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBiZSBjYWNoZWQgc28gdGhhdCBtdWx0aXBsZSBBV1MgY2xpZW50cyBmb3IgdGhlIHNhbWVcbiAqIGVudmlyb25tZW50IHdpbGwgbm90IG1ha2UgbXVsdGlwbGUgbmV0d29yayBjYWxscyB0byBvYnRhaW4gY3JlZGVudGlhbHMuXG4gKlxuICogV2lsbCB1c2UgZGVmYXVsdCBjcmVkZW50aWFscyBpZiB0aGV5IGFyZSBmb3IgdGhlIHJpZ2h0IGFjY291bnQ7IG90aGVyd2lzZSxcbiAqIGFsbCBsb2FkZWQgY3JlZGVudGlhbCBwcm92aWRlciBwbHVnaW5zIHdpbGwgYmUgdHJpZWQgdG8gb2J0YWluIGNyZWRlbnRpYWxzXG4gKiBmb3IgdGhlIGdpdmVuIGFjY291bnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDcmVkZW50aWFsUGx1Z2lucyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGU6IHsgW2tleTogc3RyaW5nXTogUGx1Z2luQ3JlZGVudGlhbHNGZXRjaFJlc3VsdCB8IHVuZGVmaW5lZCB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBob3N0OiBQbHVnaW5Ib3N0LCBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcikge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoQ3JlZGVudGlhbHNGb3IoYXdzQWNjb3VudElkOiBzdHJpbmcsIG1vZGU6IE1vZGUpOiBQcm9taXNlPFBsdWdpbkNyZWRlbnRpYWxzRmV0Y2hSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBrZXkgPSBgJHthd3NBY2NvdW50SWR9LSR7bW9kZX1gO1xuICAgIGlmICghKGtleSBpbiB0aGlzLmNhY2hlKSkge1xuICAgICAgdGhpcy5jYWNoZVtrZXldID0gYXdhaXQgdGhpcy5sb29rdXBDcmVkZW50aWFscyhhd3NBY2NvdW50SWQsIG1vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYWNoZVtrZXldO1xuICB9XG5cbiAgcHVibGljIGdldCBhdmFpbGFibGVQbHVnaW5OYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdC5jcmVkZW50aWFsUHJvdmlkZXJTb3VyY2VzLm1hcCgocykgPT4gcy5uYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9va3VwQ3JlZGVudGlhbHMoYXdzQWNjb3VudElkOiBzdHJpbmcsIG1vZGU6IE1vZGUpOiBQcm9taXNlPFBsdWdpbkNyZWRlbnRpYWxzRmV0Y2hSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB0cmllZFNvdXJjZXM6IENyZWRlbnRpYWxQcm92aWRlclNvdXJjZVtdID0gW107XG4gICAgLy8gT3RoZXJ3aXNlLCBpbnNwZWN0IHRoZSB2YXJpb3VzIGNyZWRlbnRpYWwgc291cmNlcyB3ZSBoYXZlXG4gICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgdGhpcy5ob3N0LmNyZWRlbnRpYWxQcm92aWRlclNvdXJjZXMpIHtcbiAgICAgIGxldCBhdmFpbGFibGU6IGJvb2xlYW47XG4gICAgICB0cnkge1xuICAgICAgICBhdmFpbGFibGUgPSBhd2FpdCBzb3VyY2UuaXNBdmFpbGFibGUoKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4sIGJ1dCBsZXQncyBndWFyZCBhZ2FpbnN0IGl0IGFueXdheVxuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9XMDEwMC5tc2coYFVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiAke3NvdXJjZS5uYW1lfTogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCkpO1xuICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFhdmFpbGFibGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgQ3JlZGVudGlhbHMgc291cmNlICR7c291cmNlLm5hbWV9IGlzIG5vdCBhdmFpbGFibGUsIGlnbm9yaW5nIGl0LmApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRyaWVkU291cmNlcy5wdXNoKHNvdXJjZSk7XG4gICAgICBsZXQgY2FuUHJvdmlkZTogYm9vbGVhbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNhblByb3ZpZGUgPSBhd2FpdCBzb3VyY2UuY2FuUHJvdmlkZUNyZWRlbnRpYWxzKGF3c0FjY291bnRJZCk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBidXQgbGV0J3MgZ3VhcmQgYWdhaW5zdCBpdCBhbnl3YXlcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfVzAxMDAubXNnKGBVbmNhdWdodCBleGNlcHRpb24gaW4gJHtzb3VyY2UubmFtZX06ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWApKTtcbiAgICAgICAgY2FuUHJvdmlkZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCFjYW5Qcm92aWRlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgVXNpbmcgJHtzb3VyY2UubmFtZX0gY3JlZGVudGlhbHMgZm9yIGFjY291bnQgJHthd3NBY2NvdW50SWR9YCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNyZWRlbnRpYWxzOiBhd2FpdCB2M1Byb3ZpZGVyRnJvbVBsdWdpbigoKSA9PiBzb3VyY2UuZ2V0UHJvdmlkZXIoYXdzQWNjb3VudElkLCBtb2RlIGFzIEZvclJlYWRpbmcgfCBGb3JXcml0aW5nLCB7XG4gICAgICAgICAgc3VwcG9ydHNWM1Byb3ZpZGVyczogdHJ1ZSxcbiAgICAgICAgfSkpLFxuICAgICAgICBwbHVnaW5OYW1lOiBzb3VyY2UubmFtZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXN1bHQgZnJvbSB0cnlpbmcgdG8gZmV0Y2ggY3JlZGVudGlhbHMgZnJvbSB0aGUgUGx1Z2luIGhvc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5DcmVkZW50aWFsc0ZldGNoUmVzdWx0IHtcbiAgLyoqXG4gICAqIFNESy12MyBjb21wYXRpYmxlIGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxzOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgcGx1Z2luIHRoYXQgc3VjY2Vzc2Z1bGx5IHByb3ZpZGVkIGNyZWRlbnRpYWxzXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGFrZSBhIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlIHBsdWdpbiwgYW5kIHR1cm4gaXQgaW50byBhbiBTREt2My1jb21wYXRpYmxlIGNyZWRlbnRpYWwgcHJvdmlkZXIuXG4gKlxuICogV2hhdCB3ZSB3aWxsIGRvIGlzIHRoZSBmb2xsb3dpbmc6XG4gKlxuICogLSBRdWVyeSB0aGUgcGx1Z2luIGFuZCBzZWUgd2hhdCBraW5kIG9mIHJlc3VsdCBpdCBnaXZlcyB1cy5cbiAqIC0gSWYgdGhlIHJlc3VsdCBpcyBzZWxmLXJlZnJlc2hpbmcgb3IgZG9lc24ndCBuZWVkIHJlZnJlc2hpbmcsIHdlIHR1cm4gaXQgaW50byBhbiBTREt2MyBwcm92aWRlclxuICogICBhbmQgcmV0dXJuIGl0IGRpcmVjdGx5LlxuICogICAqIElmIHRoZSB1bmRlcmx5aW5nIHJldHVybiB2YWx1ZSBpcyBhIHByb3ZpZGVyLCB3ZSB3aWxsIG1ha2UgaXQgYSBjYWNoaW5nIHByb3ZpZGVyXG4gKiAgICAgKGJlY2F1c2Ugd2UgY2FuJ3Qga25vdyBpZiBpdCB3aWxsIGNhY2hlIGJ5IGl0c2VsZiBvciBub3QpLlxuICogICAqIElmIHRoZSB1bmRlcmx5aW5nIHJldHVybiB2YWx1ZSBpcyBhIHN0YXRpYyBjcmVkZW50aWFsLCBjYWNoaW5nIGlzbid0IHJlbGV2YW50LlxuICogICAqIElmIHRoZSB1bmRlcmx5aW5nIHJldHVybiB2YWx1ZSBpcyBWMiBjcmVkZW50aWFscywgdGhvc2UgaGF2ZSBjYWNoaW5nIGJ1aWx0LWluLlxuICogLSBJZiB0aGUgcmVzdWx0IGlzIGEgc3RhdGljIGNyZWRlbnRpYWwgdGhhdCBleHBpcmVzLCB3ZSB3aWxsIHdyYXAgaXQgaW4gYW4gU0RLdjMgcHJvdmlkZXJcbiAqICAgdGhhdCB3aWxsIHF1ZXJ5IHRoZSBwbHVnaW4gYWdhaW4gd2hlbiB0aGUgY3JlZGVudGlhbCBleHBpcmVzLlxuICovXG5hc3luYyBmdW5jdGlvbiB2M1Byb3ZpZGVyRnJvbVBsdWdpbihwcm9kdWNlcjogKCkgPT4gUHJvbWlzZTxQbHVnaW5Qcm92aWRlclJlc3VsdD4pOiBQcm9taXNlPFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcj4ge1xuICBjb25zdCBpbml0aWFsID0gYXdhaXQgcHJvZHVjZXIoKTtcblxuICBpZiAoaXNWM1Byb3ZpZGVyKGluaXRpYWwpKSB7XG4gICAgLy8gQWxyZWFkeSBhIHByb3ZpZGVyLCBtYWtlIGNhY2hpbmdcbiAgICByZXR1cm4gbWFrZUNhY2hpbmdQcm92aWRlcihpbml0aWFsKTtcbiAgfSBlbHNlIGlmIChpc1YzQ3JlZGVudGlhbHMoaW5pdGlhbCkgJiYgaW5pdGlhbC5leHBpcmF0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBTdGF0aWMgY3JlZGVudGlhbHMgdGhhdCBkb24ndCBuZWVkIHJlZnJlc2hpbmcgbm9yIGNhY2hpbmdcbiAgICByZXR1cm4gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGluaXRpYWwpO1xuICB9IGVsc2UgaWYgKGlzVjNDcmVkZW50aWFscyhpbml0aWFsKSAmJiBpbml0aWFsLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIFN0YXRpYyBjcmVkZW50aWFscyB0aGF0IGRvIG5lZWQgcmVmcmVzaGluZyBhbmQgY2FjaGluZ1xuICAgIHJldHVybiByZWZyZXNoRnJvbVBsdWdpblByb3ZpZGVyKGluaXRpYWwsIHByb2R1Y2VyKTtcbiAgfSBlbHNlIGlmIChpc1YyQ3JlZGVudGlhbHMoaW5pdGlhbCkpIHtcbiAgICAvLyBWMiBjcmVkZW50aWFscyB0aGF0IHJlZnJlc2ggYW5kIGNhY2hlIHRoZW1zZWx2ZXNcbiAgICByZXR1cm4gdjNQcm92aWRlckZyb21WMkNyZWRlbnRpYWxzKGluaXRpYWwpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKCdJbnZhbGlkUGx1Z2luQ3JlZGVudGlhbHMnLCBgUGx1Z2luIHJldHVybmVkIGEgdmFsdWUgdGhhdCBkb2Vzbid0IHJlc2VtYmxlIEFXUyBjcmVkZW50aWFsczogJHtpbnNwZWN0KGluaXRpYWwpfWApO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBWMiBjcmVkZW50aWFsIGludG8gYSBWMy1jb21wYXRpYmxlIHByb3ZpZGVyXG4gKi9cbmZ1bmN0aW9uIHYzUHJvdmlkZXJGcm9tVjJDcmVkZW50aWFscyh4OiBTREt2MkNvbXBhdGlibGVDcmVkZW50aWFscyk6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciB7XG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgLy8gR2V0IHdpbGwgZmV0Y2ggb3IgcmVmcmVzaCBhcyBuZWNlc3NhcnlcbiAgICBhd2FpdCB4LmdldFByb21pc2UoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY2Nlc3NLZXlJZDogeC5hY2Nlc3NLZXlJZCxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogeC5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IHguc2Vzc2lvblRva2VuLFxuICAgICAgZXhwaXJhdGlvbjogeC5leHBpcmVUaW1lID8/IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiByZWZyZXNoRnJvbVBsdWdpblByb3ZpZGVyKFxuICBjdXJyZW50OiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFscyxcbiAgcHJvZHVjZXI6ICgpID0+IFByb21pc2U8UGx1Z2luUHJvdmlkZXJSZXN1bHQ+LFxuKTogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICBpZiAoY3JlZGVudGlhbHNBYm91dFRvRXhwaXJlKGN1cnJlbnQpKSB7XG4gICAgICBjb25zdCBuZXdDcmVkcyA9IGF3YWl0IHByb2R1Y2VyKCk7XG4gICAgICBpZiAoIWlzVjNDcmVkZW50aWFscyhuZXdDcmVkcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ1BsdWdpbkNyZWRlbnRpYWxUeXBlTWlzbWF0Y2gnLCBgUGx1Z2luIGluaXRpYWxseSByZXR1cm5lZCBzdGF0aWMgVjMgY3JlZGVudGlhbHMgYnV0IG5vdyByZXR1cm5lZCBzb21ldGhpbmcgZWxzZTogJHtpbnNwZWN0KG5ld0NyZWRzKX1gKTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBuZXdDcmVkcztcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVjNQcm92aWRlcih4OiBQbHVnaW5Qcm92aWRlclJlc3VsdCk6IHggaXMgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBpc1YyQ3JlZGVudGlhbHMoeDogUGx1Z2luUHJvdmlkZXJSZXN1bHQpOiB4IGlzIFNES3YyQ29tcGF0aWJsZUNyZWRlbnRpYWxzIHtcbiAgcmV0dXJuICEhKHggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmICh4IGFzIFNES3YyQ29tcGF0aWJsZUNyZWRlbnRpYWxzKS5nZXRQcm9taXNlKTtcbn1cblxuZnVuY3Rpb24gaXNWM0NyZWRlbnRpYWxzKHg6IFBsdWdpblByb3ZpZGVyUmVzdWx0KTogeCBpcyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFscyB7XG4gIHJldHVybiAhISh4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmFjY2Vzc0tleUlkICYmICFpc1YyQ3JlZGVudGlhbHMoeCkpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEc2Instance = isEc2Instance;\nconst node_child_process_1 = require(\"node:child_process\");\nconst node_fs_1 = require(\"node:fs\");\nconst node_os_1 = require(\"node:os\");\n/**\n * Detect whether we are running on an EC2 instance by inspecting local system\n * metadata. This avoids the 1-2 second IMDS timeout on non-EC2 machines.\n *\n * Detection methods per platform (per AWS docs\n * https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/identify_ec2_instances.html):\n * - Linux: check DMI board_asset_tag for an EC2 instance ID, or hypervisor UUID for \"ec2\" prefix\n * - Windows: check DMI board_asset_tag via registry\n * - macOS and other platforms: assumed not EC2\n *\n * The result is cached for the lifetime of the process.\n */\nlet cachedIsEc2;\nfunction isEc2Instance() {\n if (cachedIsEc2 !== undefined) {\n return cachedIsEc2;\n }\n cachedIsEc2 = detectEc2();\n return cachedIsEc2;\n}\nfunction detectEc2() {\n const os = (0, node_os_1.platform)();\n try {\n if (os === 'linux') {\n return detectEc2Linux();\n }\n if (os === 'win32') {\n return detectEc2Windows();\n }\n // macOS and other platforms: not EC2\n // (EC2 Mac instances run on dedicated Mac minis with a Linux-based Nitro\n // hypervisor, but the guest OS sees itself as darwin. In practice these are\n // extremely rare for CDK CLI usage. If needed, this can be extended.)\n return false;\n }\n catch {\n // If detection fails, assume EC2. This makes us slightly slower but nothing\n // will unexpectedly break.\n return true;\n }\n}\nfunction detectEc2Linux() {\n // Nitro instances expose the instance ID as the board asset tag\n const boardAssetTag = '/sys/devices/virtual/dmi/id/board_asset_tag';\n if ((0, node_fs_1.existsSync)(boardAssetTag)) {\n const tag = (0, node_fs_1.readFileSync)(boardAssetTag, 'utf-8').trim();\n if (tag.startsWith('i-')) {\n return true;\n }\n }\n // Xen (PV) instances expose a UUID starting with \"ec2\" via the hypervisor\n const hypervisorUuid = '/sys/hypervisor/uuid';\n if ((0, node_fs_1.existsSync)(hypervisorUuid)) {\n const uuid = (0, node_fs_1.readFileSync)(hypervisorUuid, 'utf-8').trim().toLowerCase();\n if (uuid.startsWith('ec2')) {\n return true;\n }\n }\n return false;\n}\nfunction detectEc2Windows() {\n // On Windows EC2 instances the board asset tag is an instance ID, readable\n // from the registry without elevated privileges.\n const tag = (0, node_child_process_1.execSync)('reg query \"HKLM\\\\SYSTEM\\\\HardwareConfig\\\\Current\" /v BaseBoardAssetTag 2>nul', { encoding: 'utf-8', timeout: 500 }).trim();\n // Output contains \"BaseBoardAssetTag REG_SZ i-0abc...\"\n if (/i-[0-9a-f]+/i.test(tag)) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMyLWRldGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjMi1kZXRlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsc0NBTUM7QUF2QkQsMkRBQThDO0FBQzlDLHFDQUFtRDtBQUNuRCxxQ0FBbUM7QUFFbkM7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxJQUFJLFdBQWdDLENBQUM7QUFDckMsU0FBZ0IsYUFBYTtJQUMzQixJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM5QixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBQ0QsV0FBVyxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQzFCLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLFNBQVM7SUFDaEIsTUFBTSxFQUFFLEdBQUcsSUFBQSxrQkFBUSxHQUFFLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsSUFBSSxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFDRCxxQ0FBcUM7UUFDckMseUVBQXlFO1FBQ3pFLDRFQUE0RTtRQUM1RSxzRUFBc0U7UUFDdEUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsNEVBQTRFO1FBQzVFLDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjO0lBQ3JCLGdFQUFnRTtJQUNoRSxNQUFNLGFBQWEsR0FBRyw2Q0FBNkMsQ0FBQztJQUNwRSxJQUFJLElBQUEsb0JBQVUsRUFBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUEsc0JBQVksRUFBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEQsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQztJQUM5QyxJQUFJLElBQUEsb0JBQVUsRUFBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUEsc0JBQVksRUFBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLDJFQUEyRTtJQUMzRSxpREFBaUQ7SUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBQSw2QkFBUSxFQUNsQiw4RUFBOEUsRUFDOUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDcEMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNULDZEQUE2RDtJQUM3RCxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IHBsYXRmb3JtIH0gZnJvbSAnbm9kZTpvcyc7XG5cbi8qKlxuICogRGV0ZWN0IHdoZXRoZXIgd2UgYXJlIHJ1bm5pbmcgb24gYW4gRUMyIGluc3RhbmNlIGJ5IGluc3BlY3RpbmcgbG9jYWwgc3lzdGVtXG4gKiBtZXRhZGF0YS4gVGhpcyBhdm9pZHMgdGhlIDEtMiBzZWNvbmQgSU1EUyB0aW1lb3V0IG9uIG5vbi1FQzIgbWFjaGluZXMuXG4gKlxuICogRGV0ZWN0aW9uIG1ldGhvZHMgcGVyIHBsYXRmb3JtIChwZXIgQVdTIGRvY3NcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9pZGVudGlmeV9lYzJfaW5zdGFuY2VzLmh0bWwpOlxuICogLSBMaW51eDogY2hlY2sgRE1JIGJvYXJkX2Fzc2V0X3RhZyBmb3IgYW4gRUMyIGluc3RhbmNlIElELCBvciBoeXBlcnZpc29yIFVVSUQgZm9yIFwiZWMyXCIgcHJlZml4XG4gKiAtIFdpbmRvd3M6IGNoZWNrIERNSSBib2FyZF9hc3NldF90YWcgdmlhIHJlZ2lzdHJ5XG4gKiAtIG1hY09TIGFuZCBvdGhlciBwbGF0Zm9ybXM6IGFzc3VtZWQgbm90IEVDMlxuICpcbiAqIFRoZSByZXN1bHQgaXMgY2FjaGVkIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIHByb2Nlc3MuXG4gKi9cbmxldCBjYWNoZWRJc0VjMjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBpc0VjMkluc3RhbmNlKCk6IGJvb2xlYW4ge1xuICBpZiAoY2FjaGVkSXNFYzIgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjYWNoZWRJc0VjMjtcbiAgfVxuICBjYWNoZWRJc0VjMiA9IGRldGVjdEVjMigpO1xuICByZXR1cm4gY2FjaGVkSXNFYzI7XG59XG5cbmZ1bmN0aW9uIGRldGVjdEVjMigpOiBib29sZWFuIHtcbiAgY29uc3Qgb3MgPSBwbGF0Zm9ybSgpO1xuICB0cnkge1xuICAgIGlmIChvcyA9PT0gJ2xpbnV4Jykge1xuICAgICAgcmV0dXJuIGRldGVjdEVjMkxpbnV4KCk7XG4gICAgfVxuICAgIGlmIChvcyA9PT0gJ3dpbjMyJykge1xuICAgICAgcmV0dXJuIGRldGVjdEVjMldpbmRvd3MoKTtcbiAgICB9XG4gICAgLy8gbWFjT1MgYW5kIG90aGVyIHBsYXRmb3Jtczogbm90IEVDMlxuICAgIC8vIChFQzIgTWFjIGluc3RhbmNlcyBydW4gb24gZGVkaWNhdGVkIE1hYyBtaW5pcyB3aXRoIGEgTGludXgtYmFzZWQgTml0cm9cbiAgICAvLyBoeXBlcnZpc29yLCBidXQgdGhlIGd1ZXN0IE9TIHNlZXMgaXRzZWxmIGFzIGRhcndpbi4gSW4gcHJhY3RpY2UgdGhlc2UgYXJlXG4gICAgLy8gZXh0cmVtZWx5IHJhcmUgZm9yIENESyBDTEkgdXNhZ2UuIElmIG5lZWRlZCwgdGhpcyBjYW4gYmUgZXh0ZW5kZWQuKVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gSWYgZGV0ZWN0aW9uIGZhaWxzLCBhc3N1bWUgRUMyLiBUaGlzIG1ha2VzIHVzIHNsaWdodGx5IHNsb3dlciBidXQgbm90aGluZ1xuICAgIC8vIHdpbGwgdW5leHBlY3RlZGx5IGJyZWFrLlxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRldGVjdEVjMkxpbnV4KCk6IGJvb2xlYW4ge1xuICAvLyBOaXRybyBpbnN0YW5jZXMgZXhwb3NlIHRoZSBpbnN0YW5jZSBJRCBhcyB0aGUgYm9hcmQgYXNzZXQgdGFnXG4gIGNvbnN0IGJvYXJkQXNzZXRUYWcgPSAnL3N5cy9kZXZpY2VzL3ZpcnR1YWwvZG1pL2lkL2JvYXJkX2Fzc2V0X3RhZyc7XG4gIGlmIChleGlzdHNTeW5jKGJvYXJkQXNzZXRUYWcpKSB7XG4gICAgY29uc3QgdGFnID0gcmVhZEZpbGVTeW5jKGJvYXJkQXNzZXRUYWcsICd1dGYtOCcpLnRyaW0oKTtcbiAgICBpZiAodGFnLnN0YXJ0c1dpdGgoJ2ktJykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFhlbiAoUFYpIGluc3RhbmNlcyBleHBvc2UgYSBVVUlEIHN0YXJ0aW5nIHdpdGggXCJlYzJcIiB2aWEgdGhlIGh5cGVydmlzb3JcbiAgY29uc3QgaHlwZXJ2aXNvclV1aWQgPSAnL3N5cy9oeXBlcnZpc29yL3V1aWQnO1xuICBpZiAoZXhpc3RzU3luYyhoeXBlcnZpc29yVXVpZCkpIHtcbiAgICBjb25zdCB1dWlkID0gcmVhZEZpbGVTeW5jKGh5cGVydmlzb3JVdWlkLCAndXRmLTgnKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAodXVpZC5zdGFydHNXaXRoKCdlYzInKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBkZXRlY3RFYzJXaW5kb3dzKCk6IGJvb2xlYW4ge1xuICAvLyBPbiBXaW5kb3dzIEVDMiBpbnN0YW5jZXMgdGhlIGJvYXJkIGFzc2V0IHRhZyBpcyBhbiBpbnN0YW5jZSBJRCwgcmVhZGFibGVcbiAgLy8gZnJvbSB0aGUgcmVnaXN0cnkgd2l0aG91dCBlbGV2YXRlZCBwcml2aWxlZ2VzLlxuICBjb25zdCB0YWcgPSBleGVjU3luYyhcbiAgICAncmVnIHF1ZXJ5IFwiSEtMTVxcXFxTWVNURU1cXFxcSGFyZHdhcmVDb25maWdcXFxcQ3VycmVudFwiIC92IEJhc2VCb2FyZEFzc2V0VGFnIDI+bnVsJyxcbiAgICB7IGVuY29kaW5nOiAndXRmLTgnLCB0aW1lb3V0OiA1MDAgfSxcbiAgKS50cmltKCk7XG4gIC8vIE91dHB1dCBjb250YWlucyBcIkJhc2VCb2FyZEFzc2V0VGFnICAgIFJFR19TWiAgICBpLTBhYmMuLi5cIlxuICBpZiAoL2ktWzAtOWEtZl0rL2kudGVzdCh0YWcpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./base-credentials\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLHFEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWNyZWRlbnRpYWxzJztcbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultCliUserAgent = exports.credentialsAboutToExpire = exports.CredentialPlugins = exports.setSdkTracing = exports.AwsCliCompatible = exports.cached = exports.AccountAccessKeyCache = void 0;\n__exportStar(require(\"../sdk\"), exports);\n__exportStar(require(\"../sdk-provider\"), exports);\n__exportStar(require(\"../sdk-logger\"), exports);\n// temporary testing exports\nvar account_cache_1 = require(\"../account-cache\");\nObject.defineProperty(exports, \"AccountAccessKeyCache\", { enumerable: true, get: function () { return account_cache_1.AccountAccessKeyCache; } });\nvar cached_1 = require(\"../cached\");\nObject.defineProperty(exports, \"cached\", { enumerable: true, get: function () { return cached_1.cached; } });\nvar awscli_compatible_1 = require(\"../awscli-compatible\");\nObject.defineProperty(exports, \"AwsCliCompatible\", { enumerable: true, get: function () { return awscli_compatible_1.AwsCliCompatible; } });\nvar tracing_1 = require(\"../tracing\");\nObject.defineProperty(exports, \"setSdkTracing\", { enumerable: true, get: function () { return tracing_1.setSdkTracing; } });\nvar credential_plugins_1 = require(\"../credential-plugins\");\nObject.defineProperty(exports, \"CredentialPlugins\", { enumerable: true, get: function () { return credential_plugins_1.CredentialPlugins; } });\nvar provider_caching_1 = require(\"../provider-caching\");\nObject.defineProperty(exports, \"credentialsAboutToExpire\", { enumerable: true, get: function () { return provider_caching_1.credentialsAboutToExpire; } });\nvar user_agent_1 = require(\"../user-agent\");\nObject.defineProperty(exports, \"defaultCliUserAgent\", { enumerable: true, get: function () { return user_agent_1.defaultCliUserAgent; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2QixrREFBZ0M7QUFDaEMsZ0RBQThCO0FBRTlCLDRCQUE0QjtBQUM1QixrREFBeUQ7QUFBaEQsc0hBQUEscUJBQXFCLE9BQUE7QUFDOUIsb0NBQW1DO0FBQTFCLGdHQUFBLE1BQU0sT0FBQTtBQUNmLDBEQUF3RDtBQUEvQyxxSEFBQSxnQkFBZ0IsT0FBQTtBQUN6QixzQ0FBMkM7QUFBbEMsd0dBQUEsYUFBYSxPQUFBO0FBQ3RCLDREQUEwRDtBQUFqRCx1SEFBQSxpQkFBaUIsT0FBQTtBQUMxQix3REFBK0Q7QUFBdEQsNEhBQUEsd0JBQXdCLE9BQUE7QUFDakMsNENBQW9EO0FBQTNDLGlIQUFBLG1CQUFtQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vc2RrJztcbmV4cG9ydCAqIGZyb20gJy4uL3Nkay1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuLi9zZGstbG9nZ2VyJztcblxuLy8gdGVtcG9yYXJ5IHRlc3RpbmcgZXhwb3J0c1xuZXhwb3J0IHsgQWNjb3VudEFjY2Vzc0tleUNhY2hlIH0gZnJvbSAnLi4vYWNjb3VudC1jYWNoZSc7XG5leHBvcnQgeyBjYWNoZWQgfSBmcm9tICcuLi9jYWNoZWQnO1xuZXhwb3J0IHsgQXdzQ2xpQ29tcGF0aWJsZSB9IGZyb20gJy4uL2F3c2NsaS1jb21wYXRpYmxlJztcbmV4cG9ydCB7IHNldFNka1RyYWNpbmcgfSBmcm9tICcuLi90cmFjaW5nJztcbmV4cG9ydCB7IENyZWRlbnRpYWxQbHVnaW5zIH0gZnJvbSAnLi4vY3JlZGVudGlhbC1wbHVnaW5zJztcbmV4cG9ydCB7IGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSB9IGZyb20gJy4uL3Byb3ZpZGVyLWNhY2hpbmcnO1xuZXhwb3J0IHsgZGVmYXVsdENsaVVzZXJBZ2VudCB9IGZyb20gJy4uL3VzZXItYWdlbnQnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCachingProvider = makeCachingProvider;\nexports.credentialsAboutToExpire = credentialsAboutToExpire;\nconst property_provider_1 = require(\"@smithy/property-provider\");\n/**\n * Wrap a credential provider in a cache\n *\n * Some credential providers in the SDKv3 are cached (the default Node\n * chain, specifically) but most others are not.\n *\n * Since we want to avoid duplicate calls to `AssumeRole`, or duplicate\n * MFA prompts or what have you, we are going to liberally wrap providers\n * in caches which will return the cached value until it expires.\n */\nfunction makeCachingProvider(provider) {\n return (0, property_provider_1.memoize)(provider, credentialsAboutToExpire, (token) => !!token.expiration);\n}\nfunction credentialsAboutToExpire(token) {\n const expiryMarginSecs = 5;\n // token.expiration is sometimes null\n return !!token.expiration && token.expiration.getTime() - Date.now() < expiryMarginSecs * 1000;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItY2FjaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGVyLWNhY2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxrREFNQztBQUVELDREQUlDO0FBeEJELGlFQUFvRDtBQUVwRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxRQUEyQztJQUM3RSxPQUFPLElBQUEsMkJBQU8sRUFDWixRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxLQUFpQztJQUN4RSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUMzQixxQ0FBcUM7SUFDckMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDakcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyLCBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFscyB9IGZyb20gJ0Bhd3MtY2RrL2NsaS1wbHVnaW4tY29udHJhY3QnO1xuaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInO1xuXG4vKipcbiAqIFdyYXAgYSBjcmVkZW50aWFsIHByb3ZpZGVyIGluIGEgY2FjaGVcbiAqXG4gKiBTb21lIGNyZWRlbnRpYWwgcHJvdmlkZXJzIGluIHRoZSBTREt2MyBhcmUgY2FjaGVkICh0aGUgZGVmYXVsdCBOb2RlXG4gKiBjaGFpbiwgc3BlY2lmaWNhbGx5KSBidXQgbW9zdCBvdGhlcnMgYXJlIG5vdC5cbiAqXG4gKiBTaW5jZSB3ZSB3YW50IHRvIGF2b2lkIGR1cGxpY2F0ZSBjYWxscyB0byBgQXNzdW1lUm9sZWAsIG9yIGR1cGxpY2F0ZVxuICogTUZBIHByb21wdHMgb3Igd2hhdCBoYXZlIHlvdSwgd2UgYXJlIGdvaW5nIHRvIGxpYmVyYWxseSB3cmFwIHByb3ZpZGVyc1xuICogaW4gY2FjaGVzIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjYWNoZWQgdmFsdWUgdW50aWwgaXQgZXhwaXJlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDYWNoaW5nUHJvdmlkZXIocHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcik6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciB7XG4gIHJldHVybiBtZW1vaXplKFxuICAgIHByb3ZpZGVyLFxuICAgIGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSxcbiAgICAodG9rZW4pID0+ICEhdG9rZW4uZXhwaXJhdGlvbixcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSh0b2tlbjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbHMpIHtcbiAgY29uc3QgZXhwaXJ5TWFyZ2luU2VjcyA9IDU7XG4gIC8vIHRva2VuLmV4cGlyYXRpb24gaXMgc29tZXRpbWVzIG51bGxcbiAgcmV0dXJuICEhdG9rZW4uZXhwaXJhdGlvbiAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPCBleHBpcnlNYXJnaW5TZWNzICogMTAwMDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IoHostSdkLogger = void 0;\nexports.formatSdkLoggerContent = formatSdkLoggerContent;\nconst util_1 = require(\"util\");\nconst util_2 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nclass IoHostSdkLogger {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n notify(level, ...content) {\n void this.ioHelper.notify(private_1.IO.CDK_SDK_I0100.msg((0, util_1.format)('[SDK %s] %s', level, formatSdkLoggerContent(content)), {\n sdkLevel: level,\n content,\n }));\n }\n trace(..._content) {\n // This is too much detail for our logs\n // this.notify('trace', ...content);\n }\n debug(..._content) {\n // This is too much detail for our logs\n // this.notify('debug', ...content);\n }\n /**\n * Info is called mostly (exclusively?) for successful API calls\n *\n * Payload:\n *\n * (Note the input contains entire CFN templates, for example)\n *\n * ```\n * {\n * clientName: 'S3Client',\n * commandName: 'GetBucketLocationCommand',\n * input: {\n * Bucket: '.....',\n * ExpectedBucketOwner: undefined\n * },\n * output: { LocationConstraint: 'eu-central-1' },\n * metadata: {\n * httpStatusCode: 200,\n * requestId: '....',\n * extendedRequestId: '...',\n * cfId: undefined,\n * attempts: 1,\n * totalRetryDelay: 0\n * }\n * }\n * ```\n */\n info(...content) {\n this.notify('info', ...content);\n }\n warn(...content) {\n this.notify('warn', ...content);\n }\n /**\n * Error is called mostly (exclusively?) for failing API calls\n *\n * Payload (input would be the entire API call arguments).\n *\n * ```\n * {\n * clientName: 'STSClient',\n * commandName: 'GetCallerIdentityCommand',\n * input: {},\n * error: AggregateError [ECONNREFUSED]:\n * at internalConnectMultiple (node:net:1121:18)\n * at afterConnectMultiple (node:net:1688:7) {\n * code: 'ECONNREFUSED',\n * '$metadata': { attempts: 3, totalRetryDelay: 600 },\n * [errors]: [ [Error], [Error] ]\n * },\n * metadata: { attempts: 3, totalRetryDelay: 600 }\n * }\n * ```\n */\n error(...content) {\n this.notify('error', ...content);\n }\n}\nexports.IoHostSdkLogger = IoHostSdkLogger;\n/**\n * This can be anything.\n *\n * For debug, it seems to be mostly strings.\n * For info, it seems to be objects.\n *\n * Stringify and join without separator.\n */\nfunction formatSdkLoggerContent(content) {\n if (content.length === 1) {\n const apiFmt = formatApiCall(content[0]);\n if (apiFmt) {\n return apiFmt;\n }\n }\n return content.map((x) => typeof x === 'string' ? x : (0, util_1.inspect)(x)).join('');\n}\nfunction formatApiCall(content) {\n if (!isSdkApiCallSuccess(content) && !isSdkApiCallError(content)) {\n return undefined;\n }\n const service = content.clientName.replace(/Client$/, '');\n const api = content.commandName.replace(/Command$/, '');\n const parts = [];\n if ((content.metadata?.attempts ?? 0) > 1) {\n parts.push(`[${content.metadata?.attempts} attempts, ${content.metadata?.totalRetryDelay}ms retry]`);\n }\n parts.push(`${service}.${api}(${JSON.stringify(content.input, util_2.replacerBufferWithInfo)})`);\n if (isSdkApiCallSuccess(content)) {\n parts.push('-> OK');\n }\n else {\n parts.push(`-> ${content.error}`);\n }\n return parts.join(' ');\n}\nfunction isSdkApiCallSuccess(x) {\n return x && typeof x === 'object' && x.commandName && x.output;\n}\nfunction isSdkApiCallError(x) {\n return x && typeof x === 'object' && x.commandName && x.error;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNkay1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEdBLHdEQVFDO0FBbEhELCtCQUF1QztBQUN2QyxxQ0FBb0Q7QUFFcEQsMkNBQW1DO0FBVW5DLE1BQWEsZUFBZTtJQUNULFFBQVEsQ0FBVztJQUVwQyxZQUFtQixRQUFrQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQWdDLEVBQUUsR0FBRyxPQUFjO1FBQ2hFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBQSxhQUFNLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQzVHLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTztTQUNSLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLFFBQWU7UUFDN0IsdUNBQXVDO1FBQ3ZDLG9DQUFvQztJQUN0QyxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsUUFBZTtRQUM3Qix1Q0FBdUM7UUFDdkMsb0NBQW9DO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDSSxJQUFJLENBQUMsR0FBRyxPQUFjO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFHLE9BQWM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsT0FBYztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQW5GRCwwQ0FtRkM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBYztJQUNuRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsY0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxPQUFZO0lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakUsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFeEQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLGNBQWMsT0FBTyxDQUFDLFFBQVEsRUFBRSxlQUFlLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsNkJBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUYsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEIsQ0FBQztTQUFNLENBQUM7UUFDTixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBbUJELFNBQVMsbUJBQW1CLENBQUMsQ0FBTTtJQUNqQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLENBQU07SUFDL0IsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5zcGVjdCwgZm9ybWF0IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgeyByZXBsYWNlckJ1ZmZlcldpdGhJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZGtMb2dnZXIge1xuICB0cmFjZT86ICguLi5jb250ZW50OiBhbnlbXSkgPT4gdm9pZDtcbiAgZGVidWc6ICguLi5jb250ZW50OiBhbnlbXSkgPT4gdm9pZDtcbiAgaW5mbzogKC4uLmNvbnRlbnQ6IGFueVtdKSA9PiB2b2lkO1xuICB3YXJuOiAoLi4uY29udGVudDogYW55W10pID0+IHZvaWQ7XG4gIGVycm9yOiAoLi4uY29udGVudDogYW55W10pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBJb0hvc3RTZGtMb2dnZXIgaW1wbGVtZW50cyBJU2RrTG9nZ2VyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5KGxldmVsOiAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCAuLi5jb250ZW50OiBhbnlbXSkge1xuICAgIHZvaWQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1NES19JMDEwMC5tc2coZm9ybWF0KCdbU0RLICVzXSAlcycsIGxldmVsLCBmb3JtYXRTZGtMb2dnZXJDb250ZW50KGNvbnRlbnQpKSwge1xuICAgICAgc2RrTGV2ZWw6IGxldmVsLFxuICAgICAgY29udGVudCxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2UoLi4uX2NvbnRlbnQ6IGFueVtdKSB7XG4gICAgLy8gVGhpcyBpcyB0b28gbXVjaCBkZXRhaWwgZm9yIG91ciBsb2dzXG4gICAgLy8gdGhpcy5ub3RpZnkoJ3RyYWNlJywgLi4uY29udGVudCk7XG4gIH1cblxuICBwdWJsaWMgZGVidWcoLi4uX2NvbnRlbnQ6IGFueVtdKSB7XG4gICAgLy8gVGhpcyBpcyB0b28gbXVjaCBkZXRhaWwgZm9yIG91ciBsb2dzXG4gICAgLy8gdGhpcy5ub3RpZnkoJ2RlYnVnJywgLi4uY29udGVudCk7XG4gIH1cblxuICAvKipcbiAgICogSW5mbyBpcyBjYWxsZWQgbW9zdGx5IChleGNsdXNpdmVseT8pIGZvciBzdWNjZXNzZnVsIEFQSSBjYWxsc1xuICAgKlxuICAgKiBQYXlsb2FkOlxuICAgKlxuICAgKiAoTm90ZSB0aGUgaW5wdXQgY29udGFpbnMgZW50aXJlIENGTiB0ZW1wbGF0ZXMsIGZvciBleGFtcGxlKVxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiAgIGNsaWVudE5hbWU6ICdTM0NsaWVudCcsXG4gICAqICAgY29tbWFuZE5hbWU6ICdHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmQnLFxuICAgKiAgIGlucHV0OiB7XG4gICAqICAgICBCdWNrZXQ6ICcuLi4uLicsXG4gICAqICAgICBFeHBlY3RlZEJ1Y2tldE93bmVyOiB1bmRlZmluZWRcbiAgICogICB9LFxuICAgKiAgIG91dHB1dDogeyBMb2NhdGlvbkNvbnN0cmFpbnQ6ICdldS1jZW50cmFsLTEnIH0sXG4gICAqICAgbWV0YWRhdGE6IHtcbiAgICogICAgIGh0dHBTdGF0dXNDb2RlOiAyMDAsXG4gICAqICAgICByZXF1ZXN0SWQ6ICcuLi4uJyxcbiAgICogICAgIGV4dGVuZGVkUmVxdWVzdElkOiAnLi4uJyxcbiAgICogICAgIGNmSWQ6IHVuZGVmaW5lZCxcbiAgICogICAgIGF0dGVtcHRzOiAxLFxuICAgKiAgICAgdG90YWxSZXRyeURlbGF5OiAwXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGluZm8oLi4uY29udGVudDogYW55W10pIHtcbiAgICB0aGlzLm5vdGlmeSgnaW5mbycsIC4uLmNvbnRlbnQpO1xuICB9XG5cbiAgcHVibGljIHdhcm4oLi4uY29udGVudDogYW55W10pIHtcbiAgICB0aGlzLm5vdGlmeSgnd2FybicsIC4uLmNvbnRlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVycm9yIGlzIGNhbGxlZCBtb3N0bHkgKGV4Y2x1c2l2ZWx5PykgZm9yIGZhaWxpbmcgQVBJIGNhbGxzXG4gICAqXG4gICAqIFBheWxvYWQgKGlucHV0IHdvdWxkIGJlIHRoZSBlbnRpcmUgQVBJIGNhbGwgYXJndW1lbnRzKS5cbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICBjbGllbnROYW1lOiAnU1RTQ2xpZW50JyxcbiAgICogICBjb21tYW5kTmFtZTogJ0dldENhbGxlcklkZW50aXR5Q29tbWFuZCcsXG4gICAqICAgaW5wdXQ6IHt9LFxuICAgKiAgIGVycm9yOiBBZ2dyZWdhdGVFcnJvciBbRUNPTk5SRUZVU0VEXTpcbiAgICogICAgICAgYXQgaW50ZXJuYWxDb25uZWN0TXVsdGlwbGUgKG5vZGU6bmV0OjExMjE6MTgpXG4gICAqICAgICAgIGF0IGFmdGVyQ29ubmVjdE11bHRpcGxlIChub2RlOm5ldDoxNjg4OjcpIHtcbiAgICogICAgIGNvZGU6ICdFQ09OTlJFRlVTRUQnLFxuICAgKiAgICAgJyRtZXRhZGF0YSc6IHsgYXR0ZW1wdHM6IDMsIHRvdGFsUmV0cnlEZWxheTogNjAwIH0sXG4gICAqICAgICBbZXJyb3JzXTogWyBbRXJyb3JdLCBbRXJyb3JdIF1cbiAgICogICB9LFxuICAgKiAgIG1ldGFkYXRhOiB7IGF0dGVtcHRzOiAzLCB0b3RhbFJldHJ5RGVsYXk6IDYwMCB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgZXJyb3IoLi4uY29udGVudDogYW55W10pIHtcbiAgICB0aGlzLm5vdGlmeSgnZXJyb3InLCAuLi5jb250ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgY2FuIGJlIGFueXRoaW5nLlxuICpcbiAqIEZvciBkZWJ1ZywgaXQgc2VlbXMgdG8gYmUgbW9zdGx5IHN0cmluZ3MuXG4gKiBGb3IgaW5mbywgaXQgc2VlbXMgdG8gYmUgb2JqZWN0cy5cbiAqXG4gKiBTdHJpbmdpZnkgYW5kIGpvaW4gd2l0aG91dCBzZXBhcmF0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTZGtMb2dnZXJDb250ZW50KGNvbnRlbnQ6IGFueVtdKSB7XG4gIGlmIChjb250ZW50Lmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGFwaUZtdCA9IGZvcm1hdEFwaUNhbGwoY29udGVudFswXSk7XG4gICAgaWYgKGFwaUZtdCkge1xuICAgICAgcmV0dXJuIGFwaUZtdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvbnRlbnQubWFwKCh4KSA9PiB0eXBlb2YgeCA9PT0gJ3N0cmluZycgPyB4IDogaW5zcGVjdCh4KSkuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEFwaUNhbGwoY29udGVudDogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFpc1Nka0FwaUNhbGxTdWNjZXNzKGNvbnRlbnQpICYmICFpc1Nka0FwaUNhbGxFcnJvcihjb250ZW50KSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzZXJ2aWNlID0gY29udGVudC5jbGllbnROYW1lLnJlcGxhY2UoL0NsaWVudCQvLCAnJyk7XG4gIGNvbnN0IGFwaSA9IGNvbnRlbnQuY29tbWFuZE5hbWUucmVwbGFjZSgvQ29tbWFuZCQvLCAnJyk7XG5cbiAgY29uc3QgcGFydHMgPSBbXTtcbiAgaWYgKChjb250ZW50Lm1ldGFkYXRhPy5hdHRlbXB0cyA/PyAwKSA+IDEpIHtcbiAgICBwYXJ0cy5wdXNoKGBbJHtjb250ZW50Lm1ldGFkYXRhPy5hdHRlbXB0c30gYXR0ZW1wdHMsICR7Y29udGVudC5tZXRhZGF0YT8udG90YWxSZXRyeURlbGF5fW1zIHJldHJ5XWApO1xuICB9XG5cbiAgcGFydHMucHVzaChgJHtzZXJ2aWNlfS4ke2FwaX0oJHtKU09OLnN0cmluZ2lmeShjb250ZW50LmlucHV0LCByZXBsYWNlckJ1ZmZlcldpdGhJbmZvKX0pYCk7XG5cbiAgaWYgKGlzU2RrQXBpQ2FsbFN1Y2Nlc3MoY29udGVudCkpIHtcbiAgICBwYXJ0cy5wdXNoKCctPiBPSycpO1xuICB9IGVsc2Uge1xuICAgIHBhcnRzLnB1c2goYC0+ICR7Y29udGVudC5lcnJvcn1gKTtcbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKCcgJyk7XG59XG5cbmludGVyZmFjZSBTZGtBcGlDYWxsQmFzZSB7XG4gIGNsaWVudE5hbWU6IHN0cmluZztcbiAgY29tbWFuZE5hbWU6IHN0cmluZztcbiAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBtZXRhZGF0YT86IHtcbiAgICBodHRwU3RhdHVzQ29kZT86IG51bWJlcjtcbiAgICByZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgZXh0ZW5kZWRSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgY2ZJZD86IHN0cmluZztcbiAgICBhdHRlbXB0cz86IG51bWJlcjtcbiAgICB0b3RhbFJldHJ5RGVsYXk/OiBudW1iZXI7XG4gIH07XG59XG5cbnR5cGUgU2RrQXBpQ2FsbFN1Y2Nlc3MgPSBTZGtBcGlDYWxsQmFzZSAmIHsgb3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9O1xudHlwZSBTZGtBcGlDYWxsRXJyb3IgPSBTZGtBcGlDYWxsQmFzZSAmIHsgZXJyb3I6IEVycm9yIH07XG5cbmZ1bmN0aW9uIGlzU2RrQXBpQ2FsbFN1Y2Nlc3MoeDogYW55KTogeCBpcyBTZGtBcGlDYWxsU3VjY2VzcyB7XG4gIHJldHVybiB4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmNvbW1hbmROYW1lICYmIHgub3V0cHV0O1xufVxuXG5mdW5jdGlvbiBpc1Nka0FwaUNhbGxFcnJvcih4OiBhbnkpOiB4IGlzIFNka0FwaUNhbGxFcnJvciB7XG4gIHJldHVybiB4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmNvbW1hbmROYW1lICYmIHguZXJyb3I7XG59XG4iXX0=","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SdkProvider_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SdkProvider = void 0;\nexports.initContextProviderSdk = initContextProviderSdk;\nconst os = require(\"os\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst credential_providers_1 = require(\"@aws-sdk/credential-providers\");\nconst awscli_compatible_1 = require(\"./awscli-compatible\");\nconst cached_1 = require(\"./cached\");\nconst credential_plugins_1 = require(\"./credential-plugins\");\nconst provider_caching_1 = require(\"./provider-caching\");\nconst sdk_1 = require(\"./sdk\");\nconst tracing_1 = require(\"./tracing\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\nconst CACHED_ACCOUNT = Symbol('cached_account');\n/**\n * Creates instances of the AWS SDK appropriate for a given account/region.\n *\n * Behavior is as follows:\n *\n * - First, a set of \"base\" credentials are established\n * - If a target environment is given and the default (\"current\") SDK credentials are for\n * that account, return those; otherwise\n * - If a target environment is given, scan all credential provider plugins\n * for credentials, and return those if found; otherwise\n * - Return default (\"current\") SDK credentials, noting that they might be wrong.\n *\n * - Second, a role may optionally need to be assumed. Use the base credentials\n * established in the previous process to assume that role.\n * - If assuming the role fails and the base credentials are for the correct\n * account, return those. This is a fallback for people who are trying to interact\n * with a Default Synthesized stack and already have right credentials setup.\n *\n * Typical cases we see in the wild:\n * - Credential plugin setup that, although not recommended, works for them\n * - Seeded terminal with `ReadOnly` credentials in order to do `cdk diff`--the `ReadOnly`\n * role doesn't have `sts:AssumeRole` and will fail for no real good reason.\n */\nlet SdkProvider = SdkProvider_1 = class SdkProvider {\n /**\n * Create a new SdkProvider which gets its defaults in a way that behaves like the AWS CLI does\n *\n * The AWS SDK for JS behaves slightly differently from the AWS CLI in a number of ways; see the\n * class `AwsCliCompatible` for the details.\n *\n * @param options - Options for the default SDK provider\n * @param profile - Profile to read from ~/.aws\n * @returns a configured SdkProvider\n */\n static async withAwsCliCompatibleDefaults(options, profile) {\n (0, tracing_1.callTrace)(SdkProvider_1.withAwsCliCompatibleDefaults.name, SdkProvider_1.constructor.name, options.logger);\n const config = await new awscli_compatible_1.AwsCliCompatible(options.ioHelper, options.requestHandler ?? {}, options.logger).baseConfig(profile);\n return new SdkProvider_1(config.credentialProvider, config.defaultRegion, options);\n }\n defaultRegion;\n defaultCredentialProvider;\n plugins;\n requestHandler;\n ioHelper;\n logger;\n constructor(defaultCredentialProvider, defaultRegion, options) {\n this.defaultCredentialProvider = defaultCredentialProvider;\n this.defaultRegion = defaultRegion ?? 'us-east-1';\n this.requestHandler = options.requestHandler ?? {};\n this.ioHelper = options.ioHelper;\n this.logger = options.logger;\n this.plugins = new credential_plugins_1.CredentialPlugins(options.pluginHost ?? new plugin_1.PluginHost(), this.ioHelper);\n }\n /**\n * Return an SDK which can do operations in the given environment\n *\n * The `environment` parameter is resolved first (see `resolveEnvironment()`).\n */\n async forEnvironment(environment, mode, options) {\n const env = await this.resolveEnvironment(environment);\n const baseCreds = await this.obtainBaseCredentials(env.account, mode);\n // At this point, we need at least SOME credentials\n if (baseCreds.source === 'none') {\n throw new toolkit_error_1.AuthenticationError('NoCredentials', fmtObtainCredentialsError(env.account, baseCreds));\n }\n // Simple case is if we don't need to \"assumeRole\" here. If so, we must now have credentials for the right\n // account.\n if (options?.assumeRoleArn === undefined) {\n if (baseCreds.source === 'incorrectDefault') {\n throw new toolkit_error_1.AuthenticationError('IncorrectDefaultCredentials', fmtObtainCredentialsError(env.account, baseCreds));\n }\n // Our current credentials must be valid and not expired. Confirm that before we get into doing\n // actual CloudFormation calls, which might take a long time to hang.\n const sdk = this._makeSdk(baseCreds.credentials, env.region);\n await sdk.validateCredentials();\n return { sdk, didAssumeRole: false };\n }\n try {\n // We will proceed to AssumeRole using whatever we've been given.\n const sdk = await this.withAssumedRole(baseCreds, options.assumeRoleArn, options.assumeRoleExternalId, options.assumeRoleAdditionalOptions, env.region);\n return { sdk, didAssumeRole: true };\n }\n catch (err) {\n if (err.name === 'ExpiredToken') {\n throw toolkit_error_1.AuthenticationError.withCause('AssumeRoleExpiredToken', 'Assuming role failed: ExpiredToken', err);\n }\n // AssumeRole failed. Proceed and warn *if and only if* the baseCredentials were already for the right account\n // or returned from a plugin. This is to cover some current setups for people using plugins or preferring to\n // feed the CLI credentials which are sufficient by themselves. Prefer to assume the correct role if we can,\n // but if we can't then let's just try with available credentials anyway.\n if (baseCreds.source === 'correctDefault' || baseCreds.source === 'plugin') {\n await this.ioHelper.defaults.debug(err.message);\n await this.ioHelper.defaults.warn(`${fmtObtainedCredentials(baseCreds)} could not be used to assume '${options.assumeRoleArn}', but are for the right account. Proceeding anyway.`);\n return {\n sdk: this._makeSdk(baseCreds.credentials, env.region),\n didAssumeRole: false,\n };\n }\n throw err;\n }\n }\n /**\n * Return the partition that base credentials are for\n *\n * Returns `undefined` if there are no base credentials.\n */\n async baseCredentialsPartition(environment, mode) {\n const env = await this.resolveEnvironment(environment);\n const baseCreds = await this.obtainBaseCredentials(env.account, mode);\n if (baseCreds.source === 'none') {\n return undefined;\n }\n return (await this._makeSdk(baseCreds.credentials, env.region).currentAccount()).partition;\n }\n /**\n * Resolve the environment for a stack\n *\n * Replaces the magic values `UNKNOWN_REGION` and `UNKNOWN_ACCOUNT`\n * with the defaults for the current SDK configuration (`~/.aws/config` or\n * otherwise).\n *\n * It is an error if `UNKNOWN_ACCOUNT` is used but the user hasn't configured\n * any SDK credentials.\n */\n async resolveEnvironment(env) {\n const region = env.region !== cloud_assembly_api_1.UNKNOWN_REGION ? env.region : this.defaultRegion;\n const account = env.account !== cloud_assembly_api_1.UNKNOWN_ACCOUNT ? env.account : (await this.defaultAccount())?.accountId;\n if (!account) {\n throw new toolkit_error_1.AuthenticationError('UnresolvedAccount', 'Unable to resolve AWS account to use. It must be either configured when you define your CDK Stack, or through the environment');\n }\n return {\n region,\n account,\n name: cloud_assembly_api_1.EnvironmentUtils.format(account, region),\n };\n }\n /**\n * The account we'd auth into if we used default credentials.\n *\n * Default credentials are the set of ambiently configured credentials using\n * one of the environment variables, or ~/.aws/credentials, or the *one*\n * profile that was passed into the CLI.\n *\n * Might return undefined if there are no default/ambient credentials\n * available (in which case the user should better hope they have\n * credential plugins configured).\n *\n * Uses a cache to avoid STS calls if we don't need 'em.\n */\n async defaultAccount() {\n return (0, cached_1.cached)(this, CACHED_ACCOUNT, async () => {\n try {\n return await this._makeSdk(this.defaultCredentialProvider, this.defaultRegion).currentAccount();\n }\n catch (e) {\n // Treat 'ExpiredToken' specially. This is a common situation that people may find themselves in, and\n // they are complaining about if we fail 'cdk synth' on them. We loudly complain in order to show that\n // the current situation is probably undesirable, but we don't fail.\n if (e.name === 'ExpiredToken') {\n await this.ioHelper.defaults.warn('There are expired AWS credentials in your environment. The CDK app will synth without current account information.');\n return undefined;\n }\n await this.ioHelper.defaults.debug(`Unable to determine the default AWS account (${e.name}): ${(0, util_1.formatErrorMessage)(e)}`);\n return undefined;\n }\n });\n }\n /**\n * Get credentials for the given account ID in the given mode\n *\n * 1. Use the default credentials if the destination account matches the\n * current credentials' account.\n * 2. Otherwise try all credential plugins.\n * 3. Fail if neither of these yield any credentials.\n * 4. Return a failure if any of them returned credentials\n */\n async obtainBaseCredentials(accountId, mode) {\n // First try 'current' credentials\n const defaultAccountId = (await this.defaultAccount())?.accountId;\n if (defaultAccountId === accountId) {\n return {\n source: 'correctDefault',\n credentials: await this.defaultCredentialProvider,\n };\n }\n // Then try the plugins\n const pluginCreds = await this.plugins.fetchCredentialsFor(accountId, mode);\n if (pluginCreds) {\n return { source: 'plugin', ...pluginCreds };\n }\n // Fall back to default credentials with a note that they're not the right ones yet\n if (defaultAccountId !== undefined) {\n return {\n source: 'incorrectDefault',\n accountId: defaultAccountId,\n credentials: await this.defaultCredentialProvider,\n unusedPlugins: this.plugins.availablePluginNames,\n };\n }\n // Apparently we didn't find any at all\n return {\n source: 'none',\n unusedPlugins: this.plugins.availablePluginNames,\n };\n }\n /**\n * Return an SDK which uses assumed role credentials\n *\n * The base credentials used to retrieve the assumed role credentials will be the\n * same credentials returned by obtainCredentials if an environment and mode is passed,\n * otherwise it will be the current credentials.\n */\n async withAssumedRole(mainCredentials, roleArn, externalId, additionalOptions, region) {\n await this.ioHelper.defaults.debug(`Assuming role '${roleArn}'.`);\n region = region ?? this.defaultRegion;\n const sourceDescription = fmtObtainedCredentials(mainCredentials);\n try {\n const credentials = await (0, provider_caching_1.makeCachingProvider)((0, credential_providers_1.fromTemporaryCredentials)({\n masterCredentials: mainCredentials.credentials,\n params: {\n RoleArn: roleArn,\n ExternalId: externalId,\n RoleSessionName: `aws-cdk-${safeUsername()}`,\n ...additionalOptions,\n TransitiveTagKeys: additionalOptions?.Tags ? additionalOptions.Tags.map((t) => t.Key) : undefined,\n },\n clientConfig: {\n region,\n requestHandler: this.requestHandler,\n customUserAgent: 'aws-cdk',\n logger: this.logger,\n },\n logger: this.logger,\n }));\n // Call the provider at least once here, to catch an error if it occurs\n await credentials();\n return this._makeSdk(credentials, region);\n }\n catch (err) {\n if (err.name === 'ExpiredToken') {\n throw err;\n }\n await this.ioHelper.defaults.debug(`Assuming role failed: ${err.message}`);\n throw new toolkit_error_1.AuthenticationError('AssumeRoleFailed', [\n 'Could not assume role in target account',\n ...(sourceDescription ? [`using ${sourceDescription}`] : []),\n err.message,\n \". Please make sure that this role exists in the account. If it doesn't exist, (re)-bootstrap the environment \" +\n \"with the right '--trust', using the latest version of the CDK CLI.\",\n ].join(' '));\n }\n }\n /**\n * Factory function that creates a new SDK instance\n *\n * This is a function here, instead of all the places where this is used creating a `new SDK`\n * instance, so that it is trivial to mock from tests.\n *\n * Use like this:\n *\n * ```ts\n * const mockSdk = jest.spyOn(SdkProvider.prototype, '_makeSdk').mockReturnValue(new MockSdk());\n * // ...\n * mockSdk.mockRestore();\n * ```\n *\n * @internal\n */\n _makeSdk(credProvider, region) {\n return new sdk_1.SDK(credProvider, region, this.requestHandler, this.ioHelper, this.logger);\n }\n};\nexports.SdkProvider = SdkProvider;\nexports.SdkProvider = SdkProvider = SdkProvider_1 = __decorate([\n tracing_1.traceMemberMethods\n], SdkProvider);\n/**\n * Return the username with characters invalid for a RoleSessionName removed\n *\n * @see https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters\n */\nfunction safeUsername() {\n try {\n return os.userInfo().username.replace(/[^\\w+=,.@-]/g, '@');\n }\n catch {\n return 'noname';\n }\n}\n/**\n * Isolating the code that translates calculation errors into human error messages\n *\n * We cover the following cases:\n *\n * - No credentials are available at all\n * - Default credentials are for the wrong account\n */\nfunction fmtObtainCredentialsError(targetAccountId, obtainResult) {\n const msg = [`Need to perform AWS calls for account ${targetAccountId}`];\n switch (obtainResult.source) {\n case 'incorrectDefault':\n msg.push(`but the current credentials are for ${obtainResult.accountId}`);\n break;\n case 'none':\n msg.push('but no credentials have been configured');\n }\n if (obtainResult.unusedPlugins.length > 0) {\n msg.push(`and none of these plugins found any: ${obtainResult.unusedPlugins.join(', ')}`);\n }\n return msg.join(', ');\n}\n/**\n * Format a message indicating where we got base credentials for the assume role\n *\n * We cover the following cases:\n *\n * - Default credentials for the right account\n * - Default credentials for the wrong account\n * - Credentials returned from a plugin\n */\nfunction fmtObtainedCredentials(obtainResult) {\n switch (obtainResult.source) {\n case 'correctDefault':\n return 'current credentials';\n case 'plugin':\n return `credentials returned by plugin '${obtainResult.pluginName}'`;\n case 'incorrectDefault':\n const msg = [];\n msg.push(`current credentials (which are for account ${obtainResult.accountId}`);\n if (obtainResult.unusedPlugins.length > 0) {\n msg.push(`, and none of the following plugins provided credentials: ${obtainResult.unusedPlugins.join(', ')}`);\n }\n msg.push(')');\n return msg.join('');\n }\n}\n/**\n * Instantiate an SDK for context providers. This function ensures that all\n * lookup assume role options are used when context providers perform lookups.\n */\nasync function initContextProviderSdk(aws, options) {\n const account = options.account;\n const region = options.region;\n const creds = {\n assumeRoleArn: options.lookupRoleArn,\n assumeRoleExternalId: options.lookupRoleExternalId,\n assumeRoleAdditionalOptions: options.assumeRoleAdditionalOptions,\n };\n return (await aws.forEnvironment(cloud_assembly_api_1.EnvironmentUtils.make(account, region), plugin_1.Mode.ForReading, creds)).sdk;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2RrLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUF1aEJBLHdEQVdDO0FBbGlCRCx5QkFBeUI7QUFHekIsb0VBQWdHO0FBR2hHLHdFQUF5RTtBQUN6RSwyREFBdUQ7QUFFdkQscUNBQWtDO0FBQ2xDLDZEQUF5RDtBQUN6RCx5REFBeUQ7QUFDekQsK0JBQTRCO0FBQzVCLHVDQUEwRDtBQUMxRCwrREFBa0U7QUFDbEUscUNBQWdEO0FBRWhELHNDQUE2QztBQThCN0MsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUE2QmhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUksSUFBTSxXQUFXLG1CQUFqQixNQUFNLFdBQVc7SUFDdEI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUEyQixFQUFFLE9BQWdCO1FBQzVGLElBQUEsbUJBQVMsRUFBQyxhQUFXLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLGFBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksb0NBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlILE9BQU8sSUFBSSxhQUFXLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVlLGFBQWEsQ0FBUztJQUNyQix5QkFBeUIsQ0FBb0M7SUFDN0QsT0FBTyxDQUFDO0lBQ1IsY0FBYyxDQUF5QjtJQUN2QyxRQUFRLENB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O1lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVkLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxHQUFnQixFQUFFLE9BQWlDO0lBQzlGLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUU5QixNQUFNLEtBQUssR0FBdUI7UUFDaEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQ3BDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7UUFDbEQsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLDJCQUEyQjtLQUNqRSxDQUFDO0lBRUYsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQyxxQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLGFBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDeEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB0eXBlIHsgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnQGF3cy1jZGsvY2xpLXBsdWdpbi1jb250cmFjdCc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50VXRpbHMsIFVOS05PV05fQUNDT1VOVCwgVU5LTk9XTl9SRUdJT04gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBBc3N1bWVSb2xlQ29tbWFuZElucHV0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXN0cyc7XG5pbXBvcnQgeyBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMgfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBBd3NDbGlDb21wYXRpYmxlIH0gZnJvbSAnLi9hd3NjbGktY29tcGF0aWJsZSc7XG5pbXBvcnQgdHlwZSB7IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3MgfSBmcm9tICcuL2Jhc2UtY3JlZGVudGlhbHMnO1xuaW1wb3J0IHsgY2FjaGVkIH0gZnJvbSAnLi9jYWNoZWQnO1xuaW1wb3J0IHsgQ3JlZGVudGlhbFBsdWdpbnMgfSBmcm9tICcuL2NyZWRlbnRpYWwtcGx1Z2lucyc7XG5pbXBvcnQgeyBtYWtlQ2FjaGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlci1jYWNoaW5nJztcbmltcG9ydCB7IFNESyB9IGZyb20gJy4vc2RrJztcbmltcG9ydCB7IGNhbGxUcmFjZSwgdHJhY2VNZW1iZXJNZXRob2RzIH0gZnJvbSAnLi90cmFjaW5nJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBQbHVnaW5Ib3N0LCBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luJztcbmltcG9ydCB0eXBlIHsgSVNka0xvZ2dlciB9IGZyb20gJy4vc2RrLWxvZ2dlcic7XG5cbmV4cG9ydCB0eXBlIEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IFBhcnRpYWw8T21pdDxBc3N1bWVSb2xlQ29tbWFuZElucHV0LCAnRXh0ZXJuYWxJZCcgfCAnUm9sZUFybic+PjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZGVmYXVsdCBTREsgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtQcm92aWRlck9wdGlvbnMge1xuICAvKipcbiAgICogQW4gSU8gaGVscGVyIGZvciBlbWl0dGluZyBtZXNzYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVxdWVzdCBoYW5kbGVyIHNldHRpbmdzXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0SGFuZGxlcj86IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIEEgcGx1Z2luIGhvc3RcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbkhvc3Q/OiBQbHVnaW5Ib3N0O1xuXG4gIC8qKlxuICAgKiBBbiBTREsgbG9nZ2VyXG4gICAqL1xuICByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xufVxuXG5jb25zdCBDQUNIRURfQUNDT1VOVCA9IFN5bWJvbCgnY2FjaGVkX2FjY291bnQnKTtcblxuLyoqXG4gKiBTREsgY29uZmlndXJhdGlvbiBmb3IgYSBnaXZlbiBlbnZpcm9ubWVudFxuICogJ2ZvckVudmlyb25tZW50JyB3aWxsIGF0dGVtcHQgdG8gYXNzdW1lIGEgcm9sZSBhbmQgaWYgaXRcbiAqIGlzIG5vdCBzdWNjZXNzZnVsLCB0aGVuIGl0IHdpbGwgZWl0aGVyOlxuICogICAxLiBDaGVjayB0byBzZWUgaWYgdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgKGxvY2FsIGNyZWRlbnRpYWxzIHRoZSBDTEkgd2FzIGV4ZWN1dGVkIHdpdGgpXG4gKiAgICAgIGFyZSBmb3IgdGhlIGdpdmVuIGVudmlyb25tZW50LiBJZiB0aGV5IGFyZSB0aGVuIHJldHVybiB0aG9zZS5cbiAqICAgMi4gSWYgdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgYXJlIG5vdCBmb3IgdGhlIGdpdmVuIGVudmlyb25tZW50IHRoZW5cbiAqICAgICAgdGhyb3cgYW4gZXJyb3JcbiAqXG4gKiAnZGlkQXNzdW1lUm9sZScgYWxsb3dzIGNhbGxlcnMgdG8gd2hldGhlciB0aGV5IGFyZSByZWNlaXZpbmcgdGhlIGFzc3VtZSByb2xlXG4gKiBjcmVkZW50aWFscyBvciB0aGUgZGVmYXVsdCBjcmVkZW50aWFscy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtGb3JFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgU0RLIGZvciB0aGUgZ2l2ZW4gZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHNkazogU0RLO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgYXNzdW1lIHJvbGUgd2FzIHN1Y2Nlc3NmdWwuXG4gICAqIElmIHRoZSBhc3N1bWUgcm9sZSB3YXMgbm90IHN1Y2Nlc3NmdWwgKGZhbHNlKVxuICAgKiB0aGVuIHRoYXQgbWVhbnMgdGhhdCB0aGUgJ3NkaycgcmV0dXJuZWQgY29udGFpbnNcbiAgICogdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgKG5vdCB0aGUgYXNzdW1lIHJvbGUgY3JlZGVudGlhbHMpXG4gICAqL1xuICByZWFkb25seSBkaWRBc3N1bWVSb2xlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgaW5zdGFuY2VzIG9mIHRoZSBBV1MgU0RLIGFwcHJvcHJpYXRlIGZvciBhIGdpdmVuIGFjY291bnQvcmVnaW9uLlxuICpcbiAqIEJlaGF2aW9yIGlzIGFzIGZvbGxvd3M6XG4gKlxuICogLSBGaXJzdCwgYSBzZXQgb2YgXCJiYXNlXCIgY3JlZGVudGlhbHMgYXJlIGVzdGFibGlzaGVkXG4gKiAgIC0gSWYgYSB0YXJnZXQgZW52aXJvbm1lbnQgaXMgZ2l2ZW4gYW5kIHRoZSBkZWZhdWx0IChcImN1cnJlbnRcIikgU0RLIGNyZWRlbnRpYWxzIGFyZSBmb3JcbiAqICAgICB0aGF0IGFjY291bnQsIHJldHVybiB0aG9zZTsgb3RoZXJ3aXNlXG4gKiAgIC0gSWYgYSB0YXJnZXQgZW52aXJvbm1lbnQgaXMgZ2l2ZW4sIHNjYW4gYWxsIGNyZWRlbnRpYWwgcHJvdmlkZXIgcGx1Z2luc1xuICogICAgIGZvciBjcmVkZW50aWFscywgYW5kIHJldHVybiB0aG9zZSBpZiBmb3VuZDsgb3RoZXJ3aXNlXG4gKiAgIC0gUmV0dXJuIGRlZmF1bHQgKFwiY3VycmVudFwiKSBTREsgY3JlZGVudGlhbHMsIG5vdGluZyB0aGF0IHRoZXkgbWlnaHQgYmUgd3JvbmcuXG4gKlxuICogLSBTZWNvbmQsIGEgcm9sZSBtYXkgb3B0aW9uYWxseSBuZWVkIHRvIGJlIGFzc3VtZWQuIFVzZSB0aGUgYmFzZSBjcmVkZW50aWFsc1xuICogICBlc3RhYmxpc2hlZCBpbiB0aGUgcHJldmlvdXMgcHJvY2VzcyB0byBhc3N1bWUgdGhhdCByb2xlLlxuICogICAtIElmIGFzc3VtaW5nIHRoZSByb2xlIGZhaWxzIGFuZCB0aGUgYmFzZSBjcmVkZW50aWFscyBhcmUgZm9yIHRoZSBjb3JyZWN0XG4gKiAgICAgYWNjb3VudCwgcmV0dXJuIHRob3NlLiBUaGlzIGlzIGEgZmFsbGJhY2sgZm9yIHBlb3BsZSB3aG8gYXJlIHRyeWluZyB0byBpbnRlcmFjdFxuICogICAgIHdpdGggYSBEZWZhdWx0IFN5bnRoZXNpemVkIHN0YWNrIGFuZCBhbHJlYWR5IGhhdmUgcmlnaHQgY3JlZGVudGlhbHMgc2V0dXAuXG4gKlxuICogICAgIFR5cGljYWwgY2FzZXMgd2Ugc2VlIGluIHRoZSB3aWxkOlxuICogICAgIC0gQ3JlZGVudGlhbCBwbHVnaW4gc2V0dXAgdGhhdCwgYWx0aG91Z2ggbm90IHJlY29tbWVuZGVkLCB3b3JrcyBmb3IgdGhlbVxuICogICAgIC0gU2VlZGVkIHRlcm1pbmFsIHdpdGggYFJlYWRPbmx5YCBjcmVkZW50aWFscyBpbiBvcmRlciB0byBkbyBgY2RrIGRpZmZgLS10aGUgYFJlYWRPbmx5YFxuICogICAgICAgcm9sZSBkb2Vzbid0IGhhdmUgYHN0czpBc3N1bWVSb2xlYCBhbmQgd2lsbCBmYWlsIGZvciBubyByZWFsIGdvb2QgcmVhc29uLlxuICovXG5AdHJhY2VNZW1iZXJNZXRob2RzXG5leHBvcnQgY2xhc3MgU2RrUHJvdmlkZXIge1xuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IFNka1Byb3ZpZGVyIHdoaWNoIGdldHMgaXRzIGRlZmF1bHRzIGluIGEgd2F5IHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBBV1MgQ0xJIGRvZXNcbiAgICpcbiAgICogVGhlIEFXUyBTREsgZm9yIEpTIGJlaGF2ZXMgc2xpZ2h0bHkgZGlmZmVyZW50bHkgZnJvbSB0aGUgQVdTIENMSSBpbiBhIG51bWJlciBvZiB3YXlzOyBzZWUgdGhlXG4gICAqIGNsYXNzIGBBd3NDbGlDb21wYXRpYmxlYCBmb3IgdGhlIGRldGFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgdGhlIGRlZmF1bHQgU0RLIHByb3ZpZGVyXG4gICAqIEBwYXJhbSBwcm9maWxlIC0gUHJvZmlsZSB0byByZWFkIGZyb20gfi8uYXdzXG4gICAqIEByZXR1cm5zIGEgY29uZmlndXJlZCBTZGtQcm92aWRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyB3aXRoQXdzQ2xpQ29tcGF0aWJsZURlZmF1bHRzKG9wdGlvbnM6IFNka1Byb3ZpZGVyT3B0aW9ucywgcHJvZmlsZT86IHN0cmluZykge1xuICAgIGNhbGxUcmFjZShTZGtQcm92aWRlci53aXRoQXdzQ2xpQ29tcGF0aWJsZURlZmF1bHRzLm5hbWUsIFNka1Byb3ZpZGVyLmNvbnN0cnVjdG9yLm5hbWUsIG9wdGlvbnMubG9nZ2VyKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBuZXcgQXdzQ2xpQ29tcGF0aWJsZShvcHRpb25zLmlvSGVscGVyLCBvcHRpb25zLnJlcXVlc3RIYW5kbGVyID8/IHt9LCBvcHRpb25zLmxvZ2dlcikuYmFzZUNvbmZpZyhwcm9maWxlKTtcbiAgICByZXR1cm4gbmV3IFNka1Byb3ZpZGVyKGNvbmZpZy5jcmVkZW50aWFsUHJvdmlkZXIsIGNvbmZpZy5kZWZhdWx0UmVnaW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0UmVnaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENyZWRlbnRpYWxQcm92aWRlcjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3M7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcj86IElTZGtMb2dnZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGRlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcixcbiAgICBkZWZhdWx0UmVnaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogU2RrUHJvdmlkZXJPcHRpb25zLFxuICApIHtcbiAgICB0aGlzLmRlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSBkZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyO1xuICAgIHRoaXMuZGVmYXVsdFJlZ2lvbiA9IGRlZmF1bHRSZWdpb24gPz8gJ3VzLWVhc3QtMSc7XG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlciA9IG9wdGlvbnMucmVxdWVzdEhhbmRsZXIgPz8ge307XG4gICAgdGhpcy5pb0hlbHBlciA9IG9wdGlvbnMuaW9IZWxwZXI7XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICB0aGlzLnBsdWdpbnMgPSBuZXcgQ3JlZGVudGlhbFBsdWdpbnMob3B0aW9ucy5wbHVnaW5Ib3N0ID8/IG5ldyBQbHVnaW5Ib3N0KCksIHRoaXMuaW9IZWxwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBTREsgd2hpY2ggY2FuIGRvIG9wZXJhdGlvbnMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqXG4gICAqIFRoZSBgZW52aXJvbm1lbnRgIHBhcmFtZXRlciBpcyByZXNvbHZlZCBmaXJzdCAoc2VlIGByZXNvbHZlRW52aXJvbm1lbnQoKWApLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZvckVudmlyb25tZW50KFxuICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBtb2RlOiBNb2RlLFxuICAgIG9wdGlvbnM/OiBDcmVkZW50aWFsc09wdGlvbnMsXG4gICk6IFByb21pc2U8U2RrRm9yRW52aXJvbm1lbnQ+IHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLnJlc29sdmVFbnZpcm9ubWVudChlbnZpcm9ubWVudCk7XG5cbiAgICBjb25zdCBiYXNlQ3JlZHMgPSBhd2FpdCB0aGlzLm9idGFpbkJhc2VDcmVkZW50aWFscyhlbnYuYWNjb3VudCwgbW9kZSk7XG5cbiAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBuZWVkIGF0IGxlYXN0IFNPTUUgY3JlZGVudGlhbHNcbiAgICBpZiAoYmFzZUNyZWRzLnNvdXJjZSA9PT0gJ25vbmUnKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcignTm9DcmVkZW50aWFscycsIGZtdE9idGFpbkNyZWRlbnRpYWxzRXJyb3IoZW52LmFjY291bnQsIGJhc2VDcmVkcykpO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZSBjYXNlIGlzIGlmIHdlIGRvbid0IG5lZWQgdG8gXCJhc3N1bWVSb2xlXCIgaGVyZS4gSWYgc28sIHdlIG11c3Qgbm93IGhhdmUgY3JlZGVudGlhbHMgZm9yIHRoZSByaWdodFxuICAgIC8vIGFjY291bnQuXG4gICAgaWYgKG9wdGlvbnM/LmFzc3VtZVJvbGVBcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGJhc2VDcmVkcy5zb3VyY2UgPT09ICdpbmNvcnJlY3REZWZhdWx0Jykge1xuICAgICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcignSW5jb3JyZWN0RGVmYXVsdENyZWRlbnRpYWxzJywgZm10T2J0YWluQ3JlZGVudGlhbHNFcnJvcihlbnYuYWNjb3VudCwgYmFzZUNyZWRzKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE91ciBjdXJyZW50IGNyZWRlbnRpYWxzIG11c3QgYmUgdmFsaWQgYW5kIG5vdCBleHBpcmVkLiBDb25maXJtIHRoYXQgYmVmb3JlIHdlIGdldCBpbnRvIGRvaW5nXG4gICAgICAvLyBhY3R1YWwgQ2xvdWRGb3JtYXRpb24gY2FsbHMsIHdoaWNoIG1pZ2h0IHRha2UgYSBsb25nIHRpbWUgdG8gaGFuZy5cbiAgICAgIGNvbnN0IHNkayA9IHRoaXMuX21ha2VTZGsoYmFzZUNyZWRzLmNyZWRlbnRpYWxzLCBlbnYucmVnaW9uKTtcbiAgICAgIGF3YWl0IHNkay52YWxpZGF0ZUNyZWRlbnRpYWxzKCk7XG4gICAgICByZXR1cm4geyBzZGssIGRpZEFzc3VtZVJvbGU6IGZhbHNlIH07XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdlIHdpbGwgcHJvY2VlZCB0byBBc3N1bWVSb2xlIHVzaW5nIHdoYXRldmVyIHdlJ3ZlIGJlZW4gZ2l2ZW4uXG4gICAgICBjb25zdCBzZGsgPSBhd2FpdCB0aGlzLndpdGhBc3N1bWVkUm9sZShcbiAgICAgICAgYmFzZUNyZWRzLFxuICAgICAgICBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICAgIG9wdGlvbnMuYXNzdW1lUm9sZUV4dGVybmFsSWQsXG4gICAgICAgIG9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgICAgICBlbnYucmVnaW9uLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHsgc2RrLCBkaWRBc3N1bWVSb2xlOiB0cnVlIH07XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIubmFtZSA9PT0gJ0V4cGlyZWRUb2tlbicpIHtcbiAgICAgICAgdGhyb3cgQXV0aGVudGljYXRpb25FcnJvci53aXRoQ2F1c2UoJ0Fzc3VtZVJvbGVFeHBpcmVkVG9rZW4nLCAnQXNzdW1pbmcgcm9sZSBmYWlsZWQ6IEV4cGlyZWRUb2tlbicsIGVycik7XG4gICAgICB9XG5cbiAgICAgIC8vIEFzc3VtZVJvbGUgZmFpbGVkLiBQcm9jZWVkIGFuZCB3YXJuICppZiBhbmQgb25seSBpZiogdGhlIGJhc2VDcmVkZW50aWFscyB3ZXJlIGFscmVhZHkgZm9yIHRoZSByaWdodCBhY2NvdW50XG4gICAgICAvLyBvciByZXR1cm5lZCBmcm9tIGEgcGx1Z2luLiBUaGlzIGlzIHRvIGNvdmVyIHNvbWUgY3VycmVudCBzZXR1cHMgZm9yIHBlb3BsZSB1c2luZyBwbHVnaW5zIG9yIHByZWZlcnJpbmcgdG9cbiAgICAgIC8vIGZlZWQgdGhlIENMSSBjcmVkZW50aWFscyB3aGljaCBhcmUgc3VmZmljaWVudCBieSB0aGVtc2VsdmVzLiBQcmVmZXIgdG8gYXNzdW1lIHRoZSBjb3JyZWN0IHJvbGUgaWYgd2UgY2FuLFxuICAgICAgLy8gYnV0IGlmIHdlIGNhbid0IHRoZW4gbGV0J3MganVzdCB0cnkgd2l0aCBhdmFpbGFibGUgY3JlZGVudGlhbHMgYW55d2F5LlxuICAgICAgaWYgKGJhc2VDcmVkcy5zb3VyY2UgPT09ICdjb3JyZWN0RGVmYXVsdCcgfHwgYmFzZUNyZWRzLnNvdXJjZSA9PT0gJ3BsdWdpbicpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhlcnIubWVzc2FnZSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIGAke2ZtdE9idGFpbmVkQ3JlZGVudGlhbHMoYmFzZUNyZWRzKX0gY291bGQgbm90IGJlIHVzZWQgdG8gYXNzdW1lICcke29wdGlvbnMuYXNzdW1lUm9sZUFybn0nLCBidXQgYXJlIGZvciB0aGUgcmlnaHQgYWNjb3VudC4gUHJvY2VlZGluZyBhbnl3YXkuYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZGs6IHRoaXMuX21ha2VTZGsoYmFzZUNyZWRzLmNyZWRlbnRpYWxzLCBlbnYucmVnaW9uKSxcbiAgICAgICAgICBkaWRBc3N1bWVSb2xlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcnRpdGlvbiB0aGF0IGJhc2UgY3JlZGVudGlhbHMgYXJlIGZvclxuICAgKlxuICAgKiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZXJlIGFyZSBubyBiYXNlIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJhc2VDcmVkZW50aWFsc1BhcnRpdGlvbihlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsIG1vZGU6IE1vZGUpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMucmVzb2x2ZUVudmlyb25tZW50KGVudmlyb25tZW50KTtcbiAgICBjb25zdCBiYXNlQ3JlZHMgPSBhd2FpdCB0aGlzLm9idGFpbkJhc2VDcmVkZW50aWFscyhlbnYuYWNjb3VudCwgbW9kZSk7XG4gICAgaWYgKGJhc2VDcmVkcy5zb3VyY2UgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLl9tYWtlU2RrKGJhc2VDcmVkcy5jcmVkZW50aWFscywgZW52LnJlZ2lvbikuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIGVudmlyb25tZW50IGZvciBhIHN0YWNrXG4gICAqXG4gICAqIFJlcGxhY2VzIHRoZSBtYWdpYyB2YWx1ZXMgYFVOS05PV05fUkVHSU9OYCBhbmQgYFVOS05PV05fQUNDT1VOVGBcbiAgICogd2l0aCB0aGUgZGVmYXVsdHMgZm9yIHRoZSBjdXJyZW50IFNESyBjb25maWd1cmF0aW9uIChgfi8uYXdzL2NvbmZpZ2Agb3JcbiAgICogb3RoZXJ3aXNlKS5cbiAgICpcbiAgICogSXQgaXMgYW4gZXJyb3IgaWYgYFVOS05PV05fQUNDT1VOVGAgaXMgdXNlZCBidXQgdGhlIHVzZXIgaGFzbid0IGNvbmZpZ3VyZWRcbiAgICogYW55IFNESyBjcmVkZW50aWFscy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlRW52aXJvbm1lbnQoZW52OiBFbnZpcm9ubWVudCk6IFByb21pc2U8RW52aXJvbm1lbnQ+IHtcbiAgICBjb25zdCByZWdpb24gPSBlbnYucmVnaW9uICE9PSBVTktOT1dOX1JFR0lPTiA/IGVudi5yZWdpb24gOiB0aGlzLmRlZmF1bHRSZWdpb247XG4gICAgY29uc3QgYWNjb3VudCA9IGVudi5hY2NvdW50ICE9PSBVTktOT1dOX0FDQ09VTlQgPyBlbnYuYWNjb3VudCA6IChhd2FpdCB0aGlzLmRlZmF1bHRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG5cbiAgICBpZiAoIWFjY291bnQpIHtcbiAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgICAgICAnVW5yZXNvbHZlZEFjY291bnQnLFxuICAgICAgICAnVW5hYmxlIHRvIHJlc29sdmUgQVdTIGFjY291bnQgdG8gdXNlLiBJdCBtdXN0IGJlIGVpdGhlciBjb25maWd1cmVkIHdoZW4geW91IGRlZmluZSB5b3VyIENESyBTdGFjaywgb3IgdGhyb3VnaCB0aGUgZW52aXJvbm1lbnQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVnaW9uLFxuICAgICAgYWNjb3VudCxcbiAgICAgIG5hbWU6IEVudmlyb25tZW50VXRpbHMuZm9ybWF0KGFjY291bnQsIHJlZ2lvbiksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCB3ZSdkIGF1dGggaW50byBpZiB3ZSB1c2VkIGRlZmF1bHQgY3JlZGVudGlhbHMuXG4gICAqXG4gICAqIERlZmF1bHQgY3JlZGVudGlhbHMgYXJlIHRoZSBzZXQgb2YgYW1iaWVudGx5IGNvbmZpZ3VyZWQgY3JlZGVudGlhbHMgdXNpbmdcbiAgICogb25lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIG9yIH4vLmF3cy9jcmVkZW50aWFscywgb3IgdGhlICpvbmUqXG4gICAqIHByb2ZpbGUgdGhhdCB3YXMgcGFzc2VkIGludG8gdGhlIENMSS5cbiAgICpcbiAgICogTWlnaHQgcmV0dXJuIHVuZGVmaW5lZCBpZiB0aGVyZSBhcmUgbm8gZGVmYXVsdC9hbWJpZW50IGNyZWRlbnRpYWxzXG4gICAqIGF2YWlsYWJsZSAoaW4gd2hpY2ggY2FzZSB0aGUgdXNlciBzaG91bGQgYmV0dGVyIGhvcGUgdGhleSBoYXZlXG4gICAqIGNyZWRlbnRpYWwgcGx1Z2lucyBjb25maWd1cmVkKS5cbiAgICpcbiAgICogVXNlcyBhIGNhY2hlIHRvIGF2b2lkIFNUUyBjYWxscyBpZiB3ZSBkb24ndCBuZWVkICdlbS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWZhdWx0QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gY2FjaGVkKHRoaXMsIENBQ0hFRF9BQ0NPVU5ULCBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fbWFrZVNkayh0aGlzLmRlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIsIHRoaXMuZGVmYXVsdFJlZ2lvbikuY3VycmVudEFjY291bnQoKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBUcmVhdCAnRXhwaXJlZFRva2VuJyBzcGVjaWFsbHkuIFRoaXMgaXMgYSBjb21tb24gc2l0dWF0aW9uIHRoYXQgcGVvcGxlIG1heSBmaW5kIHRoZW1zZWx2ZXMgaW4sIGFuZFxuICAgICAgICAvLyB0aGV5IGFyZSBjb21wbGFpbmluZyBhYm91dCBpZiB3ZSBmYWlsICdjZGsgc3ludGgnIG9uIHRoZW0uIFdlIGxvdWRseSBjb21wbGFpbiBpbiBvcmRlciB0byBzaG93IHRoYXRcbiAgICAgICAgLy8gdGhlIGN1cnJlbnQgc2l0dWF0aW9uIGlzIHByb2JhYmx5IHVuZGVzaXJhYmxlLCBidXQgd2UgZG9uJ3QgZmFpbC5cbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ0V4cGlyZWRUb2tlbicpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgICAnVGhlcmUgYXJlIGV4cGlyZWQgQVdTIGNyZWRlbnRpYWxzIGluIHlvdXIgZW52aXJvbm1lbnQuIFRoZSBDREsgYXBwIHdpbGwgc3ludGggd2l0aG91dCBjdXJyZW50IGFjY291bnQgaW5mb3JtYXRpb24uJyxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBVbmFibGUgdG8gZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IEFXUyBhY2NvdW50ICgke2UubmFtZX0pOiAke2Zvcm1hdEVycm9yTWVzc2FnZShlKX1gKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3JlZGVudGlhbHMgZm9yIHRoZSBnaXZlbiBhY2NvdW50IElEIGluIHRoZSBnaXZlbiBtb2RlXG4gICAqXG4gICAqIDEuIFVzZSB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBpZiB0aGUgZGVzdGluYXRpb24gYWNjb3VudCBtYXRjaGVzIHRoZVxuICAgKiAgICBjdXJyZW50IGNyZWRlbnRpYWxzJyBhY2NvdW50LlxuICAgKiAyLiBPdGhlcndpc2UgdHJ5IGFsbCBjcmVkZW50aWFsIHBsdWdpbnMuXG4gICAqIDMuIEZhaWwgaWYgbmVpdGhlciBvZiB0aGVzZSB5aWVsZCBhbnkgY3JlZGVudGlhbHMuXG4gICAqIDQuIFJldHVybiBhIGZhaWx1cmUgaWYgYW55IG9mIHRoZW0gcmV0dXJuZWQgY3JlZGVudGlhbHNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgb2J0YWluQmFzZUNyZWRlbnRpYWxzKGFjY291bnRJZDogc3RyaW5nLCBtb2RlOiBNb2RlKTogUHJvbWlzZTxPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQ+IHtcbiAgICAvLyBGaXJzdCB0cnkgJ2N1cnJlbnQnIGNyZWRlbnRpYWxzXG4gICAgY29uc3QgZGVmYXVsdEFjY291bnRJZCA9IChhd2FpdCB0aGlzLmRlZmF1bHRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG4gICAgaWYgKGRlZmF1bHRBY2NvdW50SWQgPT09IGFjY291bnRJZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc291cmNlOiAnY29ycmVjdERlZmF1bHQnLFxuICAgICAgICBjcmVkZW50aWFsczogYXdhaXQgdGhpcy5kZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUaGVuIHRyeSB0aGUgcGx1Z2luc1xuICAgIGNvbnN0IHBsdWdpbkNyZWRzID0gYXdhaXQgdGhpcy5wbHVnaW5zLmZldGNoQ3JlZGVudGlhbHNGb3IoYWNjb3VudElkLCBtb2RlKTtcbiAgICBpZiAocGx1Z2luQ3JlZHMpIHtcbiAgICAgIHJldHVybiB7IHNvdXJjZTogJ3BsdWdpbicsIC4uLnBsdWdpbkNyZWRzIH07XG4gICAgfVxuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGRlZmF1bHQgY3JlZGVudGlhbHMgd2l0aCBhIG5vdGUgdGhhdCB0aGV5J3JlIG5vdCB0aGUgcmlnaHQgb25lcyB5ZXRcbiAgICBpZiAoZGVmYXVsdEFjY291bnRJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzb3VyY2U6ICdpbmNvcnJlY3REZWZhdWx0JyxcbiAgICAgICAgYWNjb3VudElkOiBkZWZhdWx0QWNjb3VudElkLFxuICAgICAgICBjcmVkZW50aWFsczogYXdhaXQgdGhpcy5kZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyLFxuICAgICAgICB1bnVzZWRQbHVnaW5zOiB0aGlzLnBsdWdpbnMuYXZhaWxhYmxlUGx1Z2luTmFtZXMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEFwcGFyZW50bHkgd2UgZGlkbid0IGZpbmQgYW55IGF0IGFsbFxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICdub25lJyxcbiAgICAgIHVudXNlZFBsdWdpbnM6IHRoaXMucGx1Z2lucy5hdmFpbGFibGVQbHVnaW5OYW1lcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBTREsgd2hpY2ggdXNlcyBhc3N1bWVkIHJvbGUgY3JlZGVudGlhbHNcbiAgICpcbiAgICogVGhlIGJhc2UgY3JlZGVudGlhbHMgdXNlZCB0byByZXRyaWV2ZSB0aGUgYXNzdW1lZCByb2xlIGNyZWRlbnRpYWxzIHdpbGwgYmUgdGhlXG4gICAqIHNhbWUgY3JlZGVudGlhbHMgcmV0dXJuZWQgYnkgb2J0YWluQ3JlZGVudGlhbHMgaWYgYW4gZW52aXJvbm1lbnQgYW5kIG1vZGUgaXMgcGFzc2VkLFxuICAgKiBvdGhlcndpc2UgaXQgd2lsbCBiZSB0aGUgY3VycmVudCBjcmVkZW50aWFscy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgd2l0aEFzc3VtZWRSb2xlKFxuICAgIG1haW5DcmVkZW50aWFsczogRXhjbHVkZTxPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQsIHsgc291cmNlOiAnbm9uZScgfT4sXG4gICAgcm9sZUFybjogc3RyaW5nLFxuICAgIGV4dGVybmFsSWQ/OiBzdHJpbmcsXG4gICAgYWRkaXRpb25hbE9wdGlvbnM/OiBBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgcmVnaW9uPzogc3RyaW5nLFxuICApOiBQcm9taXNlPFNESz4ge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYEFzc3VtaW5nIHJvbGUgJyR7cm9sZUFybn0nLmApO1xuXG4gICAgcmVnaW9uID0gcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbjtcblxuICAgIGNvbnN0IHNvdXJjZURlc2NyaXB0aW9uID0gZm10T2J0YWluZWRDcmVkZW50aWFscyhtYWluQ3JlZGVudGlhbHMpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgbWFrZUNhY2hpbmdQcm92aWRlcihmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgICBtYXN0ZXJDcmVkZW50aWFsczogbWFpbkNyZWRlbnRpYWxzLmNyZWRlbnRpYWxzLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBSb2xlQXJuOiByb2xlQXJuLFxuICAgICAgICAgIEV4dGVybmFsSWQ6IGV4dGVybmFsSWQsXG4gICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBgYXdzLWNkay0ke3NhZmVVc2VybmFtZSgpfWAsXG4gICAgICAgICAgLi4uYWRkaXRpb25hbE9wdGlvbnMsXG4gICAgICAgICAgVHJhbnNpdGl2ZVRhZ0tleXM6IGFkZGl0aW9uYWxPcHRpb25zPy5UYWdzID8gYWRkaXRpb25hbE9wdGlvbnMuVGFncy5tYXAoKHQpID0+IHQuS2V5ISkgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICAgIGNsaWVudENvbmZpZzoge1xuICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogdGhpcy5yZXF1ZXN0SGFuZGxlcixcbiAgICAgICAgICBjdXN0b21Vc2VyQWdlbnQ6ICdhd3MtY2RrJyxcbiAgICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgICB9LFxuICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgfSkpO1xuXG4gICAgICAvLyBDYWxsIHRoZSBwcm92aWRlciBhdCBsZWFzdCBvbmNlIGhlcmUsIHRvIGNhdGNoIGFuIGVycm9yIGlmIGl0IG9jY3Vyc1xuICAgICAgYXdhaXQgY3JlZGVudGlhbHMoKTtcblxuICAgICAgcmV0dXJuIHRoaXMuX21ha2VTZGsoY3JlZGVudGlhbHMsIHJlZ2lvbik7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIubmFtZSA9PT0gJ0V4cGlyZWRUb2tlbicpIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBBc3N1bWluZyByb2xlIGZhaWxlZDogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgICAgICAnQXNzdW1lUm9sZUZhaWxlZCcsXG4gICAgICAgIFtcbiAgICAgICAgICAnQ291bGQgbm90IGFzc3VtZSByb2xlIGluIHRhcmdldCBhY2NvdW50JyxcbiAgICAgICAgICAuLi4oc291cmNlRGVzY3JpcHRpb24gPyBbYHVzaW5nICR7c291cmNlRGVzY3JpcHRpb259YF0gOiBbXSksXG4gICAgICAgICAgZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgXCIuIFBsZWFzZSBtYWtlIHN1cmUgdGhhdCB0aGlzIHJvbGUgZXhpc3RzIGluIHRoZSBhY2NvdW50LiBJZiBpdCBkb2Vzbid0IGV4aXN0LCAocmUpLWJvb3RzdHJhcCB0aGUgZW52aXJvbm1lbnQgXCIgK1xuICAgICAgICAgICAgXCJ3aXRoIHRoZSByaWdodCAnLS10cnVzdCcsIHVzaW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgQ0RLIENMSS5cIixcbiAgICAgICAgXS5qb2luKCcgJyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIG5ldyBTREsgaW5zdGFuY2VcbiAgICpcbiAgICogVGhpcyBpcyBhIGZ1bmN0aW9uIGhlcmUsIGluc3RlYWQgb2YgYWxsIHRoZSBwbGFjZXMgd2hlcmUgdGhpcyBpcyB1c2VkIGNyZWF0aW5nIGEgYG5ldyBTREtgXG4gICAqIGluc3RhbmNlLCBzbyB0aGF0IGl0IGlzIHRyaXZpYWwgdG8gbW9jayBmcm9tIHRlc3RzLlxuICAgKlxuICAgKiBVc2UgbGlrZSB0aGlzOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBtb2NrU2RrID0gamVzdC5zcHlPbihTZGtQcm92aWRlci5wcm90b3R5cGUsICdfbWFrZVNkaycpLm1vY2tSZXR1cm5WYWx1ZShuZXcgTW9ja1NkaygpKTtcbiAgICogLy8gLi4uXG4gICAqIG1vY2tTZGsubW9ja1Jlc3RvcmUoKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9tYWtlU2RrKFxuICAgIGNyZWRQcm92aWRlcjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gbmV3IFNESyhjcmVkUHJvdmlkZXIsIHJlZ2lvbiwgdGhpcy5yZXF1ZXN0SGFuZGxlciwgdGhpcy5pb0hlbHBlciwgdGhpcy5sb2dnZXIpO1xuICB9XG59XG5cbi8qKlxuICogQW4gQVdTIGFjY291bnRcbiAqXG4gKiBBbiBBV1MgYWNjb3VudCBhbHdheXMgZXhpc3RzIGluIG9ubHkgb25lIHBhcnRpdGlvbi4gVXN1YWxseSB3ZSBkb24ndCBjYXJlIGFib3V0XG4gKiB0aGUgcGFydGl0aW9uLCBidXQgd2hlbiB3ZSBuZWVkIHRvIGZvcm0gQVJOcyB3ZSBkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gKCdhd3MnIG9yICdhd3MtY24nIG9yIG90aGVyd2lzZSlcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgdXNlcm5hbWUgd2l0aCBjaGFyYWN0ZXJzIGludmFsaWQgZm9yIGEgUm9sZVNlc3Npb25OYW1lIHJlbW92ZWRcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9TVFMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQXNzdW1lUm9sZS5odG1sI0FQSV9Bc3N1bWVSb2xlX1JlcXVlc3RQYXJhbWV0ZXJzXG4gKi9cbmZ1bmN0aW9uIHNhZmVVc2VybmFtZSgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gb3MudXNlckluZm8oKS51c2VybmFtZS5yZXBsYWNlKC9bXlxcdys9LC5ALV0vZywgJ0AnKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICdub25hbWUnO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igb2J0YWluaW5nIGNyZWRlbnRpYWxzIGZvciBhbiBlbnZpcm9ubWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWRlbnRpYWxzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSByb2xlIHRoYXQgbmVlZHMgdG8gYmUgYXNzdW1lZCwgaWYgYW55XG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHRlcm5hbCBJRCByZXF1aXJlZCB0byBhc3N1bWUgdGhlIGdpdmVuIHJvbGUuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlRXh0ZXJuYWxJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2Vzc2lvbiB0YWdzIHJlcXVpcmVkIHRvIGFzc3VtZSB0aGUgZ2l2ZW4gcm9sZS5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Ygb2J0YWluaW5nIGJhc2UgY3JlZGVudGlhbHNcbiAqL1xudHlwZSBPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQgPVxuICB8IHsgc291cmNlOiAnY29ycmVjdERlZmF1bHQnOyBjcmVkZW50aWFsczogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIH1cbiAgfCB7IHNvdXJjZTogJ3BsdWdpbic7IHBsdWdpbk5hbWU6IHN0cmluZzsgY3JlZGVudGlhbHM6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciB9XG4gIHwge1xuICAgIHNvdXJjZTogJ2luY29ycmVjdERlZmF1bHQnO1xuICAgIGNyZWRlbnRpYWxzOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG4gICAgYWNjb3VudElkOiBzdHJpbmc7XG4gICAgdW51c2VkUGx1Z2luczogc3RyaW5nW107XG4gIH1cbiAgfCB7IHNvdXJjZTogJ25vbmUnOyB1bnVzZWRQbHVnaW5zOiBzdHJpbmdbXSB9O1xuXG4vKipcbiAqIElzb2xhdGluZyB0aGUgY29kZSB0aGF0IHRyYW5zbGF0ZXMgY2FsY3VsYXRpb24gZXJyb3JzIGludG8gaHVtYW4gZXJyb3IgbWVzc2FnZXNcbiAqXG4gKiBXZSBjb3ZlciB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICpcbiAqIC0gTm8gY3JlZGVudGlhbHMgYXJlIGF2YWlsYWJsZSBhdCBhbGxcbiAqIC0gRGVmYXVsdCBjcmVkZW50aWFscyBhcmUgZm9yIHRoZSB3cm9uZyBhY2NvdW50XG4gKi9cbmZ1bmN0aW9uIGZtdE9idGFpbkNyZWRlbnRpYWxzRXJyb3IoXG4gIHRhcmdldEFjY291bnRJZDogc3RyaW5nLFxuICBvYnRhaW5SZXN1bHQ6IE9idGFpbkJhc2VDcmVkZW50aWFsc1Jlc3VsdCAmIHtcbiAgICBzb3VyY2U6ICdub25lJyB8ICdpbmNvcnJlY3REZWZhdWx0JztcbiAgfSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1zZyA9IFtgTmVlZCB0byBwZXJmb3JtIEFXUyBjYWxscyBmb3IgYWNjb3VudCAke3RhcmdldEFjY291bnRJZH1gXTtcbiAgc3dpdGNoIChvYnRhaW5SZXN1bHQuc291cmNlKSB7XG4gICAgY2FzZSAnaW5jb3JyZWN0RGVmYXVsdCc6XG4gICAgICBtc2cucHVzaChgYnV0IHRoZSBjdXJyZW50IGNyZWRlbnRpYWxzIGFyZSBmb3IgJHtvYnRhaW5SZXN1bHQuYWNjb3VudElkfWApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm9uZSc6XG4gICAgICBtc2cucHVzaCgnYnV0IG5vIGNyZWRlbnRpYWxzIGhhdmUgYmVlbiBjb25maWd1cmVkJyk7XG4gIH1cbiAgaWYgKG9idGFpblJlc3VsdC51bnVzZWRQbHVnaW5zLmxlbmd0aCA+IDApIHtcbiAgICBtc2cucHVzaChgYW5kIG5vbmUgb2YgdGhlc2UgcGx1Z2lucyBmb3VuZCBhbnk6ICR7b2J0YWluUmVzdWx0LnVudXNlZFBsdWdpbnMuam9pbignLCAnKX1gKTtcbiAgfVxuICByZXR1cm4gbXNnLmpvaW4oJywgJyk7XG59XG5cbi8qKlxuICogRm9ybWF0IGEgbWVzc2FnZSBpbmRpY2F0aW5nIHdoZXJlIHdlIGdvdCBiYXNlIGNyZWRlbnRpYWxzIGZvciB0aGUgYXNzdW1lIHJvbGVcbiAqXG4gKiBXZSBjb3ZlciB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICpcbiAqIC0gRGVmYXVsdCBjcmVkZW50aWFscyBmb3IgdGhlIHJpZ2h0IGFjY291bnRcbiAqIC0gRGVmYXVsdCBjcmVkZW50aWFscyBmb3IgdGhlIHdyb25nIGFjY291bnRcbiAqIC0gQ3JlZGVudGlhbHMgcmV0dXJuZWQgZnJvbSBhIHBsdWdpblxuICovXG5mdW5jdGlvbiBmbXRPYnRhaW5lZENyZWRlbnRpYWxzKG9idGFpblJlc3VsdDogRXhjbHVkZTxPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQsIHsgc291cmNlOiAnbm9uZScgfT4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKG9idGFpblJlc3VsdC5zb3VyY2UpIHtcbiAgICBjYXNlICdjb3JyZWN0RGVmYXVsdCc6XG4gICAgICByZXR1cm4gJ2N1cnJlbnQgY3JlZGVudGlhbHMnO1xuICAgIGNhc2UgJ3BsdWdpbic6XG4gICAgICByZXR1cm4gYGNyZWRlbnRpYWxzIHJldHVybmVkIGJ5IHBsdWdpbiAnJHtvYnRhaW5SZXN1bHQucGx1Z2luTmFtZX0nYDtcbiAgICBjYXNlICdpbmNvcnJlY3REZWZhdWx0JzpcbiAgICAgIGNvbnN0IG1zZyA9IFtdO1xuICAgICAgbXNnLnB1c2goYGN1cnJlbnQgY3JlZGVudGlhbHMgKHdoaWNoIGFyZSBmb3IgYWNjb3VudCAke29idGFpblJlc3VsdC5hY2NvdW50SWR9YCk7XG5cbiAgICAgIGlmIChvYnRhaW5SZXN1bHQudW51c2VkUGx1Z2lucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG1zZy5wdXNoKGAsIGFuZCBub25lIG9mIHRoZSBmb2xsb3dpbmcgcGx1Z2lucyBwcm92aWRlZCBjcmVkZW50aWFsczogJHtvYnRhaW5SZXN1bHQudW51c2VkUGx1Z2lucy5qb2luKCcsICcpfWApO1xuICAgICAgfVxuICAgICAgbXNnLnB1c2goJyknKTtcblxuICAgICAgcmV0dXJuIG1zZy5qb2luKCcnKTtcbiAgfVxufVxuXG4vKipcbiAqIEluc3RhbnRpYXRlIGFuIFNESyBmb3IgY29udGV4dCBwcm92aWRlcnMuIFRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IGFsbFxuICogbG9va3VwIGFzc3VtZSByb2xlIG9wdGlvbnMgYXJlIHVzZWQgd2hlbiBjb250ZXh0IHByb3ZpZGVycyBwZXJmb3JtIGxvb2t1cHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0Q29udGV4dFByb3ZpZGVyU2RrKGF3czogU2RrUHJvdmlkZXIsIG9wdGlvbnM6IENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyk6IFByb21pc2U8U0RLPiB7XG4gIGNvbnN0IGFjY291bnQgPSBvcHRpb25zLmFjY291bnQ7XG4gIGNvbnN0IHJlZ2lvbiA9IG9wdGlvbnMucmVnaW9uO1xuXG4gIGNvbnN0IGNyZWRzOiBDcmVkZW50aWFsc09wdGlvbnMgPSB7XG4gICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5sb29rdXBSb2xlQXJuLFxuICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmxvb2t1cFJvbGVFeHRlcm5hbElkLFxuICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gIH07XG5cbiAgcmV0dXJuIChhd2FpdCBhd3MuZm9yRW52aXJvbm1lbnQoRW52aXJvbm1lbnRVdGlscy5tYWtlKGFjY291bnQsIHJlZ2lvbiksIE1vZGUuRm9yUmVhZGluZywgY3JlZHMpKS5zZGs7XG59XG4iXX0=","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDK = void 0;\nconst client_appsync_1 = require(\"@aws-sdk/client-appsync\");\nconst client_bedrock_agentcore_control_1 = require(\"@aws-sdk/client-bedrock-agentcore-control\");\nconst client_cloudcontrol_1 = require(\"@aws-sdk/client-cloudcontrol\");\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\nconst client_cloudwatch_logs_1 = require(\"@aws-sdk/client-cloudwatch-logs\");\nconst client_codebuild_1 = require(\"@aws-sdk/client-codebuild\");\nconst client_ec2_1 = require(\"@aws-sdk/client-ec2\");\nconst client_ecr_1 = require(\"@aws-sdk/client-ecr\");\nconst client_ecs_1 = require(\"@aws-sdk/client-ecs\");\nconst client_elastic_load_balancing_v2_1 = require(\"@aws-sdk/client-elastic-load-balancing-v2\");\nconst client_iam_1 = require(\"@aws-sdk/client-iam\");\nconst client_kms_1 = require(\"@aws-sdk/client-kms\");\nconst client_lambda_1 = require(\"@aws-sdk/client-lambda\");\nconst client_route_53_1 = require(\"@aws-sdk/client-route-53\");\nconst client_s3_1 = require(\"@aws-sdk/client-s3\");\nconst client_secrets_manager_1 = require(\"@aws-sdk/client-secrets-manager\");\nconst client_sfn_1 = require(\"@aws-sdk/client-sfn\");\nconst client_ssm_1 = require(\"@aws-sdk/client-ssm\");\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst lib_storage_1 = require(\"@aws-sdk/lib-storage\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst account_cache_1 = require(\"./account-cache\");\nconst cached_1 = require(\"./cached\");\nconst tracing_1 = require(\"./tracing\");\nconst user_agent_1 = require(\"./user-agent\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\n/**\n * Base functionality of SDK without credential fetching\n */\nlet SDK = class SDK {\n credProvider;\n currentRegion;\n config;\n accountCache;\n /**\n * STS is used to check credential validity, don't do too many retries.\n */\n stsRetryStrategy = new util_retry_1.ConfiguredRetryStrategy(3, (attempt) => 100 * (2 ** attempt));\n /**\n * Whether we have proof that the credentials have not expired\n *\n * We need to do some manual plumbing around this because the JS SDKv2 treats `ExpiredToken`\n * as retriable and we have hefty retries on CFN calls making the CLI hang for a good 15 minutes\n * if the credentials have expired.\n */\n _credentialsValidated = false;\n /**\n * A function to create debug messages\n */\n debug;\n constructor(credProvider, region, requestHandler, ioHelper, logger) {\n this.credProvider = credProvider;\n const debugFn = async (msg) => ioHelper.defaults.debug(msg);\n this.accountCache = new account_cache_1.AccountAccessKeyCache(account_cache_1.AccountAccessKeyCache.DEFAULT_PATH, debugFn);\n this.debug = debugFn;\n this.config = {\n region,\n credentials: credProvider,\n requestHandler,\n retryStrategy: new util_retry_1.ConfiguredRetryStrategy(7, (attempt) => 300 * (2 ** attempt)),\n customUserAgent: (0, user_agent_1.defaultCliUserAgent)(),\n logger: logger ? makeSdkLoggerSafeByBindingThis(logger) : undefined,\n };\n this.currentRegion = region;\n }\n appendCustomUserAgent(userAgentData) {\n if (!userAgentData) {\n return;\n }\n const currentCustomUserAgent = this.config.customUserAgent;\n this.config.customUserAgent = currentCustomUserAgent ? `${currentCustomUserAgent} ${userAgentData}` : userAgentData;\n }\n removeCustomUserAgent(userAgentData) {\n this.config.customUserAgent = this.config.customUserAgent?.replace(userAgentData, '');\n }\n appsync() {\n const client = new client_appsync_1.AppSyncClient(this.config);\n return {\n getSchemaCreationStatus: (input) => client.send(new client_appsync_1.GetSchemaCreationStatusCommand(input)),\n startSchemaCreation: (input) => client.send(new client_appsync_1.StartSchemaCreationCommand(input)),\n updateApiKey: (input) => client.send(new client_appsync_1.UpdateApiKeyCommand(input)),\n updateFunction: (input) => client.send(new client_appsync_1.UpdateFunctionCommand(input)),\n updateResolver: (input) => client.send(new client_appsync_1.UpdateResolverCommand(input)),\n // Pagination Functions\n listFunctions: async (input) => {\n const functions = Array();\n const paginator = (0, client_appsync_1.paginateListFunctions)({ client }, input);\n for await (const page of paginator) {\n functions.push(...(page.functions || []));\n }\n return functions;\n },\n };\n }\n bedrockAgentCoreControl() {\n const client = new client_bedrock_agentcore_control_1.BedrockAgentCoreControlClient(this.config);\n return {\n getAgentRuntime: (input) => client.send(new client_bedrock_agentcore_control_1.GetAgentRuntimeCommand(input)),\n updateAgentRuntime: (input) => client.send(new client_bedrock_agentcore_control_1.UpdateAgentRuntimeCommand(input)),\n };\n }\n cloudControl() {\n const client = new client_cloudcontrol_1.CloudControlClient(this.config);\n return {\n listResources: (input) => client.send(new client_cloudcontrol_1.ListResourcesCommand(input)),\n getResource: (input) => client.send(new client_cloudcontrol_1.GetResourceCommand(input)),\n updateResource: (input) => client.send(new client_cloudcontrol_1.UpdateResourceCommand(input)),\n };\n }\n cloudFormation() {\n const client = new client_cloudformation_1.CloudFormationClient({\n ...this.config,\n retryStrategy: new util_retry_1.ConfiguredRetryStrategy(11, (attempt) => 1000 * (2 ** attempt)),\n });\n return {\n continueUpdateRollback: async (input) => client.send(new client_cloudformation_1.ContinueUpdateRollbackCommand(input)),\n createChangeSet: (input) => client.send(new client_cloudformation_1.CreateChangeSetCommand(input)),\n createGeneratedTemplate: (input) => client.send(new client_cloudformation_1.CreateGeneratedTemplateCommand(input)),\n createStack: (input) => client.send(new client_cloudformation_1.CreateStackCommand(input)),\n deleteChangeSet: (input) => client.send(new client_cloudformation_1.DeleteChangeSetCommand(input)),\n deleteGeneratedTemplate: (input) => client.send(new client_cloudformation_1.DeleteGeneratedTemplateCommand(input)),\n deleteStack: (input) => client.send(new client_cloudformation_1.DeleteStackCommand(input)),\n detectStackDrift: (input) => client.send(new client_cloudformation_1.DetectStackDriftCommand(input)),\n detectStackResourceDrift: (input) => client.send(new client_cloudformation_1.DetectStackResourceDriftCommand(input)),\n describeEvents: (input) => client.send(new client_cloudformation_1.DescribeEventsCommand(input)),\n describeChangeSet: (input) => client.send(new client_cloudformation_1.DescribeChangeSetCommand(input)),\n describeGeneratedTemplate: (input) => client.send(new client_cloudformation_1.DescribeGeneratedTemplateCommand(input)),\n describeResourceScan: (input) => client.send(new client_cloudformation_1.DescribeResourceScanCommand(input)),\n describeStackDriftDetectionStatus: (input) => client.send(new client_cloudformation_1.DescribeStackDriftDetectionStatusCommand(input)),\n describeStackResourceDrifts: (input) => client.send(new client_cloudformation_1.DescribeStackResourceDriftsCommand(input)),\n describeStacks: (input) => client.send(new client_cloudformation_1.DescribeStacksCommand(input)),\n describeStackResources: (input) => client.send(new client_cloudformation_1.DescribeStackResourcesCommand(input)),\n describeType: (input) => client.send(new client_cloudformation_1.DescribeTypeCommand(input)),\n executeChangeSet: (input) => client.send(new client_cloudformation_1.ExecuteChangeSetCommand(input)),\n getGeneratedTemplate: (input) => client.send(new client_cloudformation_1.GetGeneratedTemplateCommand(input)),\n getTemplate: (input) => client.send(new client_cloudformation_1.GetTemplateCommand(input)),\n getTemplateSummary: (input) => client.send(new client_cloudformation_1.GetTemplateSummaryCommand(input)),\n listExports: (input) => client.send(new client_cloudformation_1.ListExportsCommand(input)),\n listResourceScanRelatedResources: (input) => client.send(new client_cloudformation_1.ListResourceScanRelatedResourcesCommand(input)),\n listResourceScanResources: (input) => client.send(new client_cloudformation_1.ListResourceScanResourcesCommand(input)),\n listResourceScans: (input) => client.send(new client_cloudformation_1.ListResourceScansCommand(input)),\n listStacks: (input) => client.send(new client_cloudformation_1.ListStacksCommand(input)),\n rollbackStack: (input) => client.send(new client_cloudformation_1.RollbackStackCommand(input)),\n startResourceScan: (input) => client.send(new client_cloudformation_1.StartResourceScanCommand(input)),\n updateStack: (input) => client.send(new client_cloudformation_1.UpdateStackCommand(input)),\n updateTerminationProtection: (input) => client.send(new client_cloudformation_1.UpdateTerminationProtectionCommand(input)),\n describeStackEvents: (input) => {\n return client.send(new client_cloudformation_1.DescribeStackEventsCommand(input));\n },\n listStackResources: async (input) => {\n const stackResources = Array();\n const paginator = (0, client_cloudformation_1.paginateListStackResources)({ client }, input);\n for await (const page of paginator) {\n stackResources.push(...(page?.StackResourceSummaries || []));\n }\n return stackResources;\n },\n paginatedListStacks: async (input) => {\n const stackResources = Array();\n const paginator = (0, client_cloudformation_1.paginateListStacks)({ client }, input);\n for await (const page of paginator) {\n stackResources.push(...(page?.StackSummaries || []));\n }\n return stackResources;\n },\n paginatedDescribeEvents: async (input) => {\n const stackResources = Array();\n const paginator = (0, client_cloudformation_1.paginateDescribeEvents)({ client }, input);\n for await (const page of paginator) {\n stackResources.push(...(page.OperationEvents || []));\n }\n return stackResources;\n },\n createStackRefactor: (input) => {\n return client.send(new client_cloudformation_1.CreateStackRefactorCommand(input));\n },\n executeStackRefactor: (input) => {\n return client.send(new client_cloudformation_1.ExecuteStackRefactorCommand(input));\n },\n waitUntilStackRefactorCreateComplete: (input) => {\n return (0, client_cloudformation_1.waitUntilStackRefactorCreateComplete)({\n client,\n maxWaitTime: 600,\n minDelay: 6,\n maxDelay: 6,\n }, input);\n },\n waitUntilStackRefactorExecuteComplete: (input) => {\n return (0, client_cloudformation_1.waitUntilStackRefactorExecuteComplete)({\n client,\n maxWaitTime: 600,\n minDelay: 6,\n maxDelay: 6,\n }, input);\n },\n getHookResult: (input) => client.send(new client_cloudformation_1.GetHookResultCommand(input)),\n };\n }\n cloudWatchLogs() {\n const client = new client_cloudwatch_logs_1.CloudWatchLogsClient(this.config);\n return {\n describeLogGroups: (input) => client.send(new client_cloudwatch_logs_1.DescribeLogGroupsCommand(input)),\n filterLogEvents: (input) => client.send(new client_cloudwatch_logs_1.FilterLogEventsCommand(input)),\n };\n }\n codeBuild() {\n const client = new client_codebuild_1.CodeBuildClient(this.config);\n return {\n updateProject: (input) => client.send(new client_codebuild_1.UpdateProjectCommand(input)),\n };\n }\n ec2() {\n const client = new client_ec2_1.EC2Client(this.config);\n return {\n describeAvailabilityZones: (input) => client.send(new client_ec2_1.DescribeAvailabilityZonesCommand(input)),\n describeImages: (input) => client.send(new client_ec2_1.DescribeImagesCommand(input)),\n describeInstances: (input) => client.send(new client_ec2_1.DescribeInstancesCommand(input)),\n describeRouteTables: (input) => client.send(new client_ec2_1.DescribeRouteTablesCommand(input)),\n describeSecurityGroups: (input) => client.send(new client_ec2_1.DescribeSecurityGroupsCommand(input)),\n describeSubnets: (input) => client.send(new client_ec2_1.DescribeSubnetsCommand(input)),\n describeVpcEndpointServices: (input) => client.send(new client_ec2_1.DescribeVpcEndpointServicesCommand(input)),\n describeVpcs: (input) => client.send(new client_ec2_1.DescribeVpcsCommand(input)),\n describeVpnGateways: (input) => client.send(new client_ec2_1.DescribeVpnGatewaysCommand(input)),\n };\n }\n ecr() {\n const client = new client_ecr_1.ECRClient(this.config);\n return {\n batchDeleteImage: (input) => client.send(new client_ecr_1.BatchDeleteImageCommand(input)),\n batchGetImage: (input) => client.send(new client_ecr_1.BatchGetImageCommand(input)),\n createRepository: (input) => client.send(new client_ecr_1.CreateRepositoryCommand(input)),\n describeImages: (input) => client.send(new client_ecr_1.DescribeImagesCommand(input)),\n describeRepositories: (input) => client.send(new client_ecr_1.DescribeRepositoriesCommand(input)),\n getAuthorizationToken: (input) => client.send(new client_ecr_1.GetAuthorizationTokenCommand(input)),\n listImages: (input) => client.send(new client_ecr_1.ListImagesCommand(input)),\n putImage: (input) => client.send(new client_ecr_1.PutImageCommand(input)),\n putImageScanningConfiguration: (input) => client.send(new client_ecr_1.PutImageScanningConfigurationCommand(input)),\n };\n }\n ecs() {\n const client = new client_ecs_1.ECSClient(this.config);\n return {\n listClusters: (input) => client.send(new client_ecs_1.ListClustersCommand(input)),\n registerTaskDefinition: (input) => client.send(new client_ecs_1.RegisterTaskDefinitionCommand(input)),\n updateService: (input) => client.send(new client_ecs_1.UpdateServiceCommand(input)),\n // Waiters\n waitUntilServicesStable: (input, timeoutSeconds) => {\n return (0, client_ecs_1.waitUntilServicesStable)({\n client,\n maxWaitTime: timeoutSeconds ?? 600,\n minDelay: 6,\n maxDelay: 6,\n }, input);\n },\n };\n }\n elbv2() {\n const client = new client_elastic_load_balancing_v2_1.ElasticLoadBalancingV2Client(this.config);\n return {\n describeListeners: (input) => client.send(new client_elastic_load_balancing_v2_1.DescribeListenersCommand(input)),\n describeLoadBalancers: (input) => client.send(new client_elastic_load_balancing_v2_1.DescribeLoadBalancersCommand(input)),\n describeTags: (input) => client.send(new client_elastic_load_balancing_v2_1.DescribeTagsCommand(input)),\n // Pagination Functions\n paginateDescribeListeners: async (input) => {\n const listeners = Array();\n const paginator = (0, client_elastic_load_balancing_v2_1.paginateDescribeListeners)({ client }, input);\n for await (const page of paginator) {\n listeners.push(...(page?.Listeners || []));\n }\n return listeners;\n },\n paginateDescribeLoadBalancers: async (input) => {\n const loadBalancers = Array();\n const paginator = (0, client_elastic_load_balancing_v2_1.paginateDescribeLoadBalancers)({ client }, input);\n for await (const page of paginator) {\n loadBalancers.push(...(page?.LoadBalancers || []));\n }\n return loadBalancers;\n },\n };\n }\n iam() {\n const client = new client_iam_1.IAMClient(this.config);\n return {\n createPolicy: (input) => client.send(new client_iam_1.CreatePolicyCommand(input)),\n getPolicy: (input) => client.send(new client_iam_1.GetPolicyCommand(input)),\n getRole: (input) => client.send(new client_iam_1.GetRoleCommand(input)),\n };\n }\n kms() {\n const client = new client_kms_1.KMSClient(this.config);\n return {\n describeKey: (input) => client.send(new client_kms_1.DescribeKeyCommand(input)),\n listAliases: (input) => client.send(new client_kms_1.ListAliasesCommand(input)),\n };\n }\n lambda() {\n const client = new client_lambda_1.LambdaClient(this.config);\n return {\n invokeCommand: (input) => client.send(new client_lambda_1.InvokeCommand(input)),\n publishVersion: (input) => client.send(new client_lambda_1.PublishVersionCommand(input)),\n updateAlias: (input) => client.send(new client_lambda_1.UpdateAliasCommand(input)),\n updateFunctionCode: (input) => client.send(new client_lambda_1.UpdateFunctionCodeCommand(input)),\n updateFunctionConfiguration: (input) => client.send(new client_lambda_1.UpdateFunctionConfigurationCommand(input)),\n // Waiters\n waitUntilFunctionUpdated: (minDelaySeconds, maxDelaySeconds, input) => {\n return (0, client_lambda_1.waitUntilFunctionUpdatedV2)({\n client,\n maxDelay: maxDelaySeconds,\n minDelay: minDelaySeconds,\n maxWaitTime: maxDelaySeconds * 60,\n }, input);\n },\n };\n }\n route53() {\n const client = new client_route_53_1.Route53Client(this.config);\n return {\n getHostedZone: (input) => client.send(new client_route_53_1.GetHostedZoneCommand(input)),\n listHostedZones: (input) => client.send(new client_route_53_1.ListHostedZonesCommand(input)),\n listHostedZonesByName: (input) => client.send(new client_route_53_1.ListHostedZonesByNameCommand(input)),\n };\n }\n s3() {\n const client = new client_s3_1.S3Client(this.config);\n return {\n deleteObjects: (input) => client.send(new client_s3_1.DeleteObjectsCommand({\n ...input,\n ChecksumAlgorithm: 'SHA256',\n })),\n deleteObjectTagging: (input) => client.send(new client_s3_1.DeleteObjectTaggingCommand(input)),\n getBucketEncryption: (input) => client.send(new client_s3_1.GetBucketEncryptionCommand(input)),\n getBucketLocation: (input) => client.send(new client_s3_1.GetBucketLocationCommand(input)),\n getObject: (input) => client.send(new client_s3_1.GetObjectCommand(input)),\n getObjectTagging: (input) => client.send(new client_s3_1.GetObjectTaggingCommand(input)),\n listObjectsV2: (input) => client.send(new client_s3_1.ListObjectsV2Command(input)),\n putObjectTagging: (input) => client.send(new client_s3_1.PutObjectTaggingCommand({\n ...input,\n ChecksumAlgorithm: 'SHA256',\n })),\n upload: (input) => {\n try {\n const upload = new lib_storage_1.Upload({\n client,\n params: { ...input, ChecksumAlgorithm: 'SHA256' },\n });\n return upload.done();\n }\n catch (e) {\n throw new toolkit_error_1.AuthenticationError('S3UploadFailed', `Upload failed: ${(0, util_1.formatErrorMessage)(e)}`);\n }\n },\n };\n }\n secretsManager() {\n const client = new client_secrets_manager_1.SecretsManagerClient(this.config);\n return {\n getSecretValue: (input) => client.send(new client_secrets_manager_1.GetSecretValueCommand(input)),\n };\n }\n ssm() {\n const client = new client_ssm_1.SSMClient(this.config);\n return {\n getParameter: (input) => client.send(new client_ssm_1.GetParameterCommand(input)),\n };\n }\n stepFunctions() {\n const client = new client_sfn_1.SFNClient(this.config);\n return {\n updateStateMachine: (input) => client.send(new client_sfn_1.UpdateStateMachineCommand(input)),\n };\n }\n /**\n * The AWS SDK v3 requires a client config and a command in order to get an endpoint for\n * any given service.\n */\n async getUrlSuffix(region) {\n const cfn = new client_cloudformation_1.CloudFormationClient({ region });\n const endpoint = await (0, middleware_endpoint_1.getEndpointFromInstructions)({}, client_cloudformation_1.DescribeStackResourcesCommand, { ...cfn.config });\n return endpoint.url.hostname.split(`${region}.`).pop();\n }\n async currentAccount() {\n return (0, cached_1.cachedAsync)(this, CURRENT_ACCOUNT_KEY, async () => {\n const creds = await this.credProvider();\n return this.accountCache.fetch(creds.accessKeyId, async () => {\n // if we don't have one, resolve from STS and store in cache.\n await this.debug('Looking up default account ID from STS');\n const client = new client_sts_1.STSClient({\n ...this.config,\n retryStrategy: this.stsRetryStrategy,\n });\n const command = new client_sts_1.GetCallerIdentityCommand({});\n const result = await client.send(command);\n const accountId = result.Account;\n const partition = result.Arn.split(':')[1];\n if (!accountId) {\n throw new toolkit_error_1.AuthenticationError('NoAccountId', \"STS didn't return an account ID\");\n }\n await this.debug(`Default account ID: ${accountId}`);\n // Save another STS call later if this one already succeeded\n this._credentialsValidated = true;\n return { accountId, partition };\n });\n });\n }\n /**\n * Make sure the the current credentials are not expired\n */\n async validateCredentials() {\n if (this._credentialsValidated) {\n return;\n }\n const client = new client_sts_1.STSClient({ ...this.config, retryStrategy: this.stsRetryStrategy });\n await client.send(new client_sts_1.GetCallerIdentityCommand({}));\n this._credentialsValidated = true;\n }\n};\nexports.SDK = SDK;\nexports.SDK = SDK = __decorate([\n tracing_1.traceMemberMethods\n], SDK);\nconst CURRENT_ACCOUNT_KEY = Symbol('current_account_key');\n/**\n * Make the SDK logger safe against raw function invocations\n *\n * The SDK expects the logger to be an object with a number of functions, but it\n * doesn't necessarily keep 'this' bound all the time; sometimes it will copy\n * functions off of the object and call them from a variable.\n *\n * By how JavaScript works, this drops the 'this' reference. Make sure 'this' is\n * bound at all times.\n *\n * @see https://github.com/aws/aws-sdk-js-v3/issues/7297\n */\nfunction makeSdkLoggerSafeByBindingThis(logger) {\n return {\n debug: logger.debug.bind(logger),\n info: logger.info.bind(logger),\n warn: logger.warn.bind(logger),\n error: logger.error.bind(logger),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWVBLDREQVFpQztBQU9qQyxnR0FJbUQ7QUFTbkQsc0VBTXNDO0FBNkV0QywwRUEyQ3dDO0FBUXhDLDRFQUl5QztBQUN6QyxnRUFLbUM7QUFDbkMsb0RBNkI2QjtBQXFCN0Isb0RBVzZCO0FBVTdCLG9EQU02QjtBQVc3QixnR0FPbUQ7QUFDbkQsb0RBVzZCO0FBQzdCLG9EQVE2QjtBQUM3QiwwREFrQmdDO0FBQ2hDLDhEQVdrQztBQXFCbEMsa0RBVTRCO0FBQzVCLDRFQUt5QztBQUt6QyxvREFHNkI7QUFDN0Isb0RBSzZCO0FBQzdCLG9EQUEwRTtBQUMxRSxzREFBOEM7QUFDOUMscUVBQTBFO0FBQzFFLG1EQUE2RDtBQUU3RCxtREFBd0Q7QUFFeEQscUNBQXVDO0FBR3ZDLHVDQUErQztBQUMvQyw2Q0FBbUQ7QUFDbkQsK0RBQWtFO0FBQ2xFLHFDQUFnRDtBQThOaEQ7O0dBRUc7QUFFSSxJQUFNLEdBQUcsR0FBVCxNQUFNLEdBQUc7SUEyQks7SUExQkgsYUFBYSxDQUFTO0lBRXRCLE1BQU0sQ0FBdUI7SUFFNUIsWUFBWSxDQUFDO0lBRTlCOztPQUVHO0lBQ2MsZ0JBQWdCLEdBQUcsSUFBSSxvQ0FBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXRHOzs7Ozs7T0FNRztJQUNLLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUV0Qzs7T0FFRztJQUNjLEtBQUssQ0FBaUM7SUFFdkQsWUFDbUIsWUFBK0MsRUFDaEUsTUFBYyxFQUNkLGNBQXNDLEVBQ3RDLFFBQWtCLEVBQ2xCLE1BQW1CO1FBSkYsaUJBQVksR0FBWixZQUFZLENBQW1DO1FBTWhFLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsRUFBRSxD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QU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFFMUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLDhCQUE4QixDQUFDLE1BQWtCO0lBQ3hELE9BQU87UUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHtcbiAgRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuICBHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RnVuY3Rpb25zQ29tbWFuZElucHV0LFxuICBTdGFydFNjaGVtYUNyZWF0aW9uQ29tbWFuZElucHV0LFxuICBTdGFydFNjaGVtYUNyZWF0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQXBpS2V5Q29tbWFuZElucHV0LFxuICBVcGRhdGVBcGlLZXlDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVSZXNvbHZlckNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlUmVzb2x2ZXJDb21tYW5kT3V0cHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtYXBwc3luYyc7XG5pbXBvcnQge1xuICBBcHBTeW5jQ2xpZW50LFxuICBHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmQsXG4gIHBhZ2luYXRlTGlzdEZ1bmN0aW9ucyxcbiAgU3RhcnRTY2hlbWFDcmVhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUFwaUtleUNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgVXBkYXRlUmVzb2x2ZXJDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtYXBwc3luYyc7XG5pbXBvcnQgdHlwZSB7XG4gIEdldEFnZW50UnVudGltZUNvbW1hbmRJbnB1dCxcbiAgR2V0QWdlbnRSdW50aW1lQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZElucHV0LFxuICBVcGRhdGVBZ2VudFJ1bnRpbWVDb21tYW5kT3V0cHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbCc7XG5pbXBvcnQge1xuICBCZWRyb2NrQWdlbnRDb3JlQ29udHJvbENsaWVudCxcbiAgR2V0QWdlbnRSdW50aW1lQ29tbWFuZCxcbiAgVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWJlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wnO1xuaW1wb3J0IHR5cGUge1xuICBHZXRSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgR2V0UmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBMaXN0UmVzb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZVJlc291cmNlQ29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkY29udHJvbCc7XG5pbXBvcnQge1xuICBVcGRhdGVSZXNvdXJjZUNvbW1hbmQsXG5cbiAgQ2xvdWRDb250cm9sQ2xpZW50LFxuICBHZXRSZXNvdXJjZUNvbW1hbmQsXG4gIExpc3RSZXNvdXJjZXNDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRjb250cm9sJztcbmltcG9ydCB0eXBlIHtcbiAgQ29udGludWVVcGRhdGVSb2xsYmFja0NvbW1hbmRJbnB1dCxcbiAgQ29udGludWVVcGRhdGVSb2xsYmFja0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhY2tFdmVudHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YWNrc0NvbW1hbmRJbnB1dCxcbiAgTGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQsXG4gIFJvbGxiYWNrU3RhY2tDb21tYW5kSW5wdXQsXG4gIFJvbGxiYWNrU3RhY2tDb21tYW5kT3V0cHV0LFxuICBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgQ3JlYXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0LFxuICBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlU3RhY2tDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdGFja1JlZmFjdG9yQ29tbWFuZElucHV0LFxuICBEZWxldGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZElucHV0LFxuICBEZWxldGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBEZWxldGVTdGFja0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZElucHV0LFxuICBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrRXZlbnRzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVTdGFja3NDb21tYW5kT3V0cHV0LFxuICBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0LFxuICBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dCxcbiAgR2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gIEdldEdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dCxcbiAgR2V0VGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gIEdldFRlbXBsYXRlQ29tbWFuZE91dHB1dCxcbiAgR2V0VGVtcGxhdGVTdW1tYXJ5Q29tbWFuZElucHV0LFxuICBHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kT3V0cHV0LFxuICBMaXN0RXhwb3J0c0NvbW1hbmRJbnB1dCxcbiAgTGlzdEV4cG9ydHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRJbnB1dCxcbiAgTGlzdFJlc291cmNlU2NhblJlbGF0ZWRSZXNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBMaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJlc291cmNlU2NhbnNDb21tYW5kSW5wdXQsXG4gIExpc3RSZXNvdXJjZVNjYW5zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YWNrUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBTdGFydFJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCxcbiAgU3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCxcbiAgVXBkYXRlU3RhY2tDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb25Db21tYW5kSW5wdXQsXG4gIFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YWNrU3VtbWFyeSxcbiAgRGVzY3JpYmVTdGFja0RyaWZ0RGV0ZWN0aW9uU3RhdHVzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kT3V0cHV0LFxuICBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZElucHV0LFxuICBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZE91dHB1dCxcbiAgRGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZElucHV0LFxuICBEZXRlY3RTdGFja1Jlc291cmNlRHJpZnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kSW5wdXQsXG4gIEV4ZWN1dGVTdGFja1JlZmFjdG9yQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQsXG4gIENyZWF0ZVN0YWNrUmVmYWN0b3JDb21tYW5kT3V0cHV0LFxuICBFeGVjdXRlU3RhY2tSZWZhY3RvckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlVHlwZUNvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVUeXBlQ29tbWFuZE91dHB1dCxcbiAgR2V0SG9va1Jlc3VsdENvbW1hbmRJbnB1dCxcbiAgR2V0SG9va1Jlc3VsdENvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQge1xuICBwYWdpbmF0ZURlc2NyaWJlRXZlbnRzLFxuXG4gIHBhZ2luYXRlTGlzdFN0YWNrcyxcbiAgQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kLFxuICBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kLFxuICBDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmQsXG4gIENyZWF0ZVN0YWNrQ29tbWFuZCxcbiAgQ3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmQsXG4gIERlbGV0ZUNoYW5nZVNldENvbW1hbmQsXG4gIERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZCxcbiAgRGVsZXRlU3RhY2tDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZCxcbiAgRGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmQsXG4gIERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kLFxuICBEZXNjcmliZVN0YWNrc0NvbW1hbmQsXG4gIEV4ZWN1dGVDaGFuZ2VTZXRDb21tYW5kLFxuICBFeGVjdXRlU3RhY2tSZWZhY3RvckNvbW1hbmQsXG4gIEdldEdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZCxcbiAgR2V0VGVtcGxhdGVDb21tYW5kLFxuICBHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kLFxuICBMaXN0RXhwb3J0c0NvbW1hbmQsXG4gIExpc3RSZXNvdXJjZVNjYW5SZWxhdGVkUmVzb3VyY2VzQ29tbWFuZCxcbiAgTGlzdFJlc291cmNlU2NhblJlc291cmNlc0NvbW1hbmQsXG4gIExpc3RSZXNvdXJjZVNjYW5zQ29tbWFuZCxcbiAgTGlzdFN0YWNrc0NvbW1hbmQsXG4gIHBhZ2luYXRlTGlzdFN0YWNrUmVzb3VyY2VzLFxuICBSb2xsYmFja1N0YWNrQ29tbWFuZCxcbiAgU3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kLFxuICBVcGRhdGVTdGFja0NvbW1hbmQsXG4gIFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmQsXG4gIERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmQsXG4gIERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmQsXG4gIERldGVjdFN0YWNrRHJpZnRDb21tYW5kLFxuICBEZXRlY3RTdGFja1Jlc291cmNlRHJpZnRDb21tYW5kLFxuICB3YWl0VW50aWxTdGFja1JlZmFjdG9yQ3JlYXRlQ29tcGxldGUsXG4gIHdhaXRVbnRpbFN0YWNrUmVmYWN0b3JFeGVjdXRlQ29tcGxldGUsXG4gIERlc2NyaWJlVHlwZUNvbW1hbmQsXG4gIEdldEhvb2tSZXN1bHRDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25FdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbi9kaXN0LXR5cGVzL21vZGVscy9tb2RlbHNfMCc7XG5pbXBvcnQgdHlwZSB7XG4gIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9ncyc7XG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc0NsaWVudCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzJztcbmltcG9ydCB7XG4gIENvZGVCdWlsZENsaWVudCxcbiAgVXBkYXRlUHJvamVjdENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUHJvamVjdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQcm9qZWN0Q29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZGVidWlsZCc7XG5pbXBvcnQge1xuICBEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQXZhaWxhYmlsaXR5Wm9uZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUltYWdlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluc3RhbmNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUm91dGVUYWJsZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN1Ym5ldHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3VibmV0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN1Ym5ldHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVnBjc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZwY3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVnBuR2F0ZXdheXNDb21tYW5kT3V0cHV0LFxuICBFQzJDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lYzInO1xuaW1wb3J0IHR5cGUge1xuICBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZElucHV0LFxuICBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZE91dHB1dCxcbiAgTGlzdEltYWdlc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEltYWdlc0NvbW1hbmRPdXRwdXQsXG4gIFB1dEltYWdlQ29tbWFuZElucHV0LFxuICBQdXRJbWFnZUNvbW1hbmRPdXRwdXQsXG4gIEJhdGNoR2V0SW1hZ2VDb21tYW5kSW5wdXQsXG4gIEJhdGNoR2V0SW1hZ2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZElucHV0LFxuICBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQgYXMgRUNSRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZE91dHB1dCBhcyBFQ1JEZXNjcmliZUltYWdlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRPdXRwdXQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRJbnB1dCxcbiAgR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dCxcbiAgUHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFB1dEltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjcic7XG5pbXBvcnQge1xuICBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZCxcbiAgQ3JlYXRlUmVwb3NpdG9yeUNvbW1hbmQsXG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZCBhcyBFQ1JEZXNjcmliZUltYWdlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZCxcbiAgRUNSQ2xpZW50LFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kLFxuICBMaXN0SW1hZ2VzQ29tbWFuZCxcbiAgUHV0SW1hZ2VDb21tYW5kLFxuICBQdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEJhdGNoR2V0SW1hZ2VDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWNyJztcbmltcG9ydCB0eXBlIHtcbiAgRGVzY3JpYmVTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgUmVnaXN0ZXJUYXNrRGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgTGlzdENsdXN0ZXJzQ29tbWFuZElucHV0LFxuICBMaXN0Q2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICBSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2VydmljZUNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlU2VydmljZUNvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3MnO1xuaW1wb3J0IHtcbiAgRUNTQ2xpZW50LFxuICBMaXN0Q2x1c3RlcnNDb21tYW5kLFxuICBSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZCxcbiAgVXBkYXRlU2VydmljZUNvbW1hbmQsXG4gIHdhaXRVbnRpbFNlcnZpY2VzU3RhYmxlLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWNzJztcbmltcG9ydCB0eXBlIHtcbiAgTGlzdGVuZXIsXG4gIExvYWRCYWxhbmNlcixcbiAgRGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZUxvYWRCYWxhbmNlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVRhZ3NDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlVGFnc0NvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lbGFzdGljLWxvYWQtYmFsYW5jaW5nLXYyJztcbmltcG9ydCB7XG4gIERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVUYWdzQ29tbWFuZCxcbiAgRWxhc3RpY0xvYWRCYWxhbmNpbmdWMkNsaWVudCxcbiAgcGFnaW5hdGVEZXNjcmliZUxpc3RlbmVycyxcbiAgcGFnaW5hdGVEZXNjcmliZUxvYWRCYWxhbmNlcnMsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lbGFzdGljLWxvYWQtYmFsYW5jaW5nLXYyJztcbmltcG9ydCB7XG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVDb21tYW5kLFxuICB0eXBlIEdldFJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZUNvbW1hbmRPdXRwdXQsXG4gIElBTUNsaWVudCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWlhbSc7XG5pbXBvcnQge1xuICBEZXNjcmliZUtleUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0LFxuICBLTVNDbGllbnQsXG4gIExpc3RBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnO1xuaW1wb3J0IHtcbiAgSW52b2tlQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW52b2tlQ29tbWFuZE91dHB1dCxcbiAgTGFtYmRhQ2xpZW50LFxuICBQdWJsaXNoVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgUHVibGlzaFZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHVibGlzaFZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWRWMixcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWxhbWJkYSc7XG5pbXBvcnQge1xuICBHZXRIb3N0ZWRab25lQ29tbWFuZCxcbiAgdHlwZSBHZXRIb3N0ZWRab25lQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEhvc3RlZFpvbmVDb21tYW5kT3V0cHV0LFxuICBMaXN0SG9zdGVkWm9uZXNCeU5hbWVDb21tYW5kLFxuICB0eXBlIExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SG9zdGVkWm9uZXNCeU5hbWVDb21tYW5kT3V0cHV0LFxuICBMaXN0SG9zdGVkWm9uZXNDb21tYW5kLFxuICB0eXBlIExpc3RIb3N0ZWRab25lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SG9zdGVkWm9uZXNDb21tYW5kT3V0cHV0LFxuICBSb3V0ZTUzQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtcm91dGUtNTMnO1xuaW1wb3J0IHR5cGUge1xuICBEZWxldGVPYmplY3RzQ29tbWFuZElucHV0LFxuICBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQsXG4gIEdldE9iamVjdFRhZ2dpbmdDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdFRhZ2dpbmdDb21tYW5kT3V0cHV0LFxuICBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0LFxuICBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dCxcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0T2JqZWN0Q29tbWFuZElucHV0LFxuICBHZXRPYmplY3RDb21tYW5kT3V0cHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHtcbiAgRGVsZXRlT2JqZWN0c0NvbW1hbmQsXG4gIERlbGV0ZU9iamVjdFRhZ2dpbmdDb21tYW5kLFxuICBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kLFxuICBHZXRPYmplY3RDb21tYW5kLFxuICBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNWMkNvbW1hbmQsXG4gIFB1dE9iamVjdFRhZ2dpbmdDb21tYW5kLFxuICBTM0NsaWVudCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcbmltcG9ydCB7XG4gIEdldFNlY3JldFZhbHVlQ29tbWFuZCxcbiAgdHlwZSBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRPdXRwdXQsXG4gIFNlY3JldHNNYW5hZ2VyQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyJztcbmltcG9ydCB0eXBlIHtcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtc2ZuJztcbmltcG9ydCB7XG4gIFNGTkNsaWVudCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNmbic7XG5pbXBvcnQge1xuICBHZXRQYXJhbWV0ZXJDb21tYW5kLFxuICB0eXBlIEdldFBhcmFtZXRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQYXJhbWV0ZXJDb21tYW5kT3V0cHV0LFxuICBTU01DbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zc20nO1xuaW1wb3J0IHsgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kLCBTVFNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3RzJztcbmltcG9ydCB7IFVwbG9hZCB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1zdG9yYWdlJztcbmltcG9ydCB7IGdldEVuZHBvaW50RnJvbUluc3RydWN0aW9ucyB9IGZyb20gJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCc7XG5pbXBvcnQgeyBDb25maWd1cmVkUmV0cnlTdHJhdGVneSB9IGZyb20gJ0BzbWl0aHkvdXRpbC1yZXRyeSc7XG5pbXBvcnQgdHlwZSB7IFdhaXRlclJlc3VsdCB9IGZyb20gJ0BzbWl0aHkvdXRpbC13YWl0ZXInO1xuaW1wb3J0IHsgQWNjb3VudEFjY2Vzc0tleUNhY2hlIH0gZnJvbSAnLi9hY2NvdW50LWNhY2hlJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEhhbmRsZXJTZXR0aW5ncyB9IGZyb20gJy4vYmFzZS1jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBjYWNoZWRBc3luYyB9IGZyb20gJy4vY2FjaGVkJztcbmltcG9ydCB0eXBlIHsgSVNka0xvZ2dlciB9IGZyb20gJy4vc2RrLWxvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IEFjY291bnQgfSBmcm9tICcuL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgeyB0cmFjZU1lbWJlck1ldGhvZHMgfSBmcm9tICcuL3RyYWNpbmcnO1xuaW1wb3J0IHsgZGVmYXVsdENsaVVzZXJBZ2VudCB9IGZyb20gJy4vdXNlci1hZ2VudCc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFMzQ2xpZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJZiBBUElzIGFyZSB1c2VkIHRoYXQgcmVxdWlyZSBNRDUgY2hlY2tzdW1zLlxuICAgKlxuICAgKiBTb21lIFMzIEFQSXMgaW4gU0RLdjIgaGF2ZSBhIGJ1ZyB0aGF0IGFsd2F5cyByZXF1aXJlcyB0aGVtIHRvIHVzZSBhIE1ENSBjaGVja3N1bS5cbiAgICogVGhlc2UgQVBJcyBhcmUgbm90IGdvaW5nIHRvIGJlIHN1cHBvcnRlZCBpbiBhIEZJUFMgZW52aXJvbm1lbnQuXG4gICAqL1xuICBuZWVkc01kNUNoZWNrc3Vtcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBTREsgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2RrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGRlc2NyaXB0aXZlIHN0cmluZ3MgdGhhdCBpbmRpY2F0ZSB3aGVyZSB0aGUgXCJBc3N1bWVSb2xlXCIgY3JlZGVudGlhbHMgYXJlIGNvbWluZyBmcm9tXG4gICAqXG4gICAqIFdpbGwgYmUgcHJpbnRlZCBpbiBhbiBlcnJvciBtZXNzYWdlIHRvIGhlbHAgdXNlcnMgZGlhZ25vc2UgYXV0aCBwcm9ibGVtcy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVDcmVkZW50aWFsc1NvdXJjZURlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vLyBUT0RPOiBzdGlsbCBzb21lIGNsZWFudXAgaGVyZS4gTWFrZSB0aGUgcGFnaW5hdGlvbiBmdW5jdGlvbnMgZG8gYWxsIHRoZSB3b3JrIGhlcmUgaW5zdGVhZCBvZiBpbiBpbmRpdmlkdWFsIHBhY2thZ2VzLlxuLy8gQWxzbyBhZGQgYXN5bmMvYXdhaXQuIERvZXMgdGhhdCBhY3R1YWxseSBtYXR0ZXIgaW4gdGhpcyBjb250ZXh0PyBGaW5kIG91dCBhbmQgdXBkYXRlIGFjY29yZGluZ2x5LlxuXG4vLyBBbHNvIGFkZCBub3RlcyB0byB0aGUgUFIgYWJvdXQgd2h5IHlvdSBpbXBvcnRlZCBldmVyeXRoaW5nIGluZGl2aWR1YWxseSBhbmQgdXNlZCAndHlwZScgc28gcmV2aWV3ZXJzIGRvbid0IGhhdmUgdG8gYXNrLlxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25PcHRpb25zIHtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGNyZWRlbnRpYWxzOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzO1xuICByZXRyeVN0cmF0ZWd5OiBDb25maWd1cmVkUmV0cnlTdHJhdGVneTtcbiAgY3VzdG9tVXNlckFnZW50OiBzdHJpbmc7XG4gIGxvZ2dlcj86IElTZGtMb2dnZXI7XG4gIHMzRGlzYWJsZUJvZHlTaWduaW5nPzogYm9vbGVhbjtcbiAgY29tcHV0ZUNoZWNrc3Vtcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcFN5bmNDbGllbnQge1xuICBnZXRTY2hlbWFDcmVhdGlvblN0YXR1cyhpbnB1dDogR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZE91dHB1dD47XG4gIHN0YXJ0U2NoZW1hQ3JlYXRpb24oaW5wdXQ6IFN0YXJ0U2NoZW1hQ3JlYXRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YXJ0U2NoZW1hQ3JlYXRpb25Db21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlQXBpS2V5KGlucHV0OiBVcGRhdGVBcGlLZXlDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFwaUtleUNvbW1hbmRPdXRwdXQ+O1xuICB1cGRhdGVGdW5jdGlvbihpbnB1dDogVXBkYXRlRnVuY3Rpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dD47XG4gIHVwZGF0ZVJlc29sdmVyKGlucHV0OiBVcGRhdGVSZXNvbHZlckNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlUmVzb2x2ZXJDb21tYW5kT3V0cHV0PjtcbiAgLy8gUGFnaW5hdGlvbiBmdW5jdGlvbnNcbiAgbGlzdEZ1bmN0aW9ucyhpbnB1dDogTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RnVuY3Rpb25Db25maWd1cmF0aW9uW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCZWRyb2NrQWdlbnRDb3JlQ29udHJvbENsaWVudCB7XG4gIGdldEFnZW50UnVudGltZShpbnB1dDogR2V0QWdlbnRSdW50aW1lQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRBZ2VudFJ1bnRpbWVDb21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlQWdlbnRSdW50aW1lKGlucHV0OiBVcGRhdGVBZ2VudFJ1bnRpbWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFnZW50UnVudGltZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZENvbnRyb2xDbGllbnQge1xuICBsaXN0UmVzb3VyY2VzKGlucHV0OiBMaXN0UmVzb3VyY2VzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0UmVzb3VyY2VzQ29tbWFuZE91dHB1dD47XG4gIGdldFJlc291cmNlKGlucHV0OiBHZXRSZXNvdXJjZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0UmVzb3VyY2VDb21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlUmVzb3VyY2UoaW5wdXQ6IFVwZGF0ZVJlc291cmNlQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEZvcm1hdGlvbkNsaWVudCB7XG4gIGNvbnRpbnVlVXBkYXRlUm9sbGJhY2soaW5wdXQ6IENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kT3V0cHV0PjtcbiAgY3JlYXRlQ2hhbmdlU2V0KGlucHV0OiBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPENyZWF0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+O1xuICBjcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZShpbnB1dDogQ3JlYXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQpOiBQcm9taXNlPENyZWF0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD47XG4gIGNyZWF0ZVN0YWNrKGlucHV0OiBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlU3RhY2tDb21tYW5kT3V0cHV0PjtcbiAgZGVsZXRlQ2hhbmdlU2V0KGlucHV0OiBEZWxldGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+O1xuICBkZWxldGVHZW5lcmF0ZWRUZW1wbGF0ZShpbnB1dDogRGVsZXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD47XG4gIGRlbGV0ZVN0YWNrKGlucHV0OiBEZWxldGVTdGFja0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlU3RhY2tDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVFdmVudHMoaW5wdXQ6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZUNoYW5nZVNldChpbnB1dDogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGUoXG4gICAgaW5wdXQ6IERlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gICk6IFByb21pc2U8RGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVJlc291cmNlU2NhbihpbnB1dDogRGVzY3JpYmVSZXNvdXJjZVNjYW5Db21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1cyhpbnB1dDogRGVzY3JpYmVTdGFja0RyaWZ0RGV0ZWN0aW9uU3RhdHVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVTdGFja3MoaW5wdXQ6IERlc2NyaWJlU3RhY2tzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrc0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHMoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlU3RhY2tSZXNvdXJjZXMoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kT3V0cHV0PjtcbiAgZGV0ZWN0U3RhY2tEcmlmdChpbnB1dDogRGV0ZWN0U3RhY2tEcmlmdENvbW1hbmRJbnB1dCk6IFByb21pc2U8RGV0ZWN0U3RhY2tEcmlmdENvbW1hbmRPdXRwdXQ+O1xuICBkZXRlY3RTdGFja1Jlc291cmNlRHJpZnQoaW5wdXQ6IERldGVjdFN0YWNrUmVzb3VyY2VEcmlmdENvbW1hbmRJbnB1dCk6IFByb21pc2U8RGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlVHlwZShpbnB1dDogRGVzY3JpYmVUeXBlQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVR5cGVDb21tYW5kT3V0cHV0PjtcbiAgZXhlY3V0ZUNoYW5nZVNldChpbnB1dDogRXhlY3V0ZUNoYW5nZVNldENvbW1hbmRJbnB1dCk6IFByb21pc2U8RXhlY3V0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+O1xuICBnZXRHZW5lcmF0ZWRUZW1wbGF0ZShpbnB1dDogR2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD47XG4gIGdldFRlbXBsYXRlKGlucHV0OiBHZXRUZW1wbGF0ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0VGVtcGxhdGVDb21tYW5kT3V0cHV0PjtcbiAgZ2V0VGVtcGxhdGVTdW1tYXJ5KGlucHV0OiBHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFRlbXBsYXRlU3VtbWFyeUNvbW1hbmRPdXRwdXQ+O1xuICBsaXN0RXhwb3J0cyhpbnB1dDogTGlzdEV4cG9ydHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RFeHBvcnRzQ29tbWFuZE91dHB1dD47XG4gIGxpc3RSZXNvdXJjZVNjYW5SZWxhdGVkUmVzb3VyY2VzKFxuICAgIGlucHV0OiBMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRPdXRwdXQ+O1xuICBsaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzKFxuICAgIGlucHV0OiBMaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICApOiBQcm9taXNlPExpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXNDb21tYW5kT3V0cHV0PjtcbiAgbGlzdFJlc291cmNlU2NhbnMoaW5wdXQ/OiBMaXN0UmVzb3VyY2VTY2Fuc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdFJlc291cmNlU2NhbnNDb21tYW5kT3V0cHV0PjtcbiAgbGlzdFN0YWNrcyhpbnB1dDogTGlzdFN0YWNrc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQ+O1xuICByb2xsYmFja1N0YWNrKGlucHV0OiBSb2xsYmFja1N0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxSb2xsYmFja1N0YWNrQ29tbWFuZE91dHB1dD47XG4gIHN0YXJ0UmVzb3VyY2VTY2FuKGlucHV0OiBTdGFydFJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlU3RhY2soaW5wdXQ6IFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVTdGFja0NvbW1hbmRPdXRwdXQ+O1xuICB1cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb24oXG4gICAgaW5wdXQ6IFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxVcGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb25Db21tYW5kT3V0cHV0PjtcbiAgLy8gUGFnaW5hdGlvbiBmdW5jdGlvbnNcbiAgZGVzY3JpYmVTdGFja0V2ZW50cyhpbnB1dDogRGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRPdXRwdXQ+O1xuICBsaXN0U3RhY2tSZXNvdXJjZXMoaW5wdXQ6IExpc3RTdGFja1Jlc291cmNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhY2tSZXNvdXJjZVN1bW1hcnlbXT47XG4gIHBhZ2luYXRlZExpc3RTdGFja3MoaW5wdXQ6IExpc3RTdGFja3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YWNrU3VtbWFyeVtdPjtcbiAgcGFnaW5hdGVkRGVzY3JpYmVFdmVudHMoaW5wdXQ6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxPcGVyYXRpb25FdmVudFtdPjtcbiAgY3JlYXRlU3RhY2tSZWZhY3RvcihpbnB1dDogQ3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmRPdXRwdXQ+O1xuICBleGVjdXRlU3RhY2tSZWZhY3RvcihpbnB1dDogRXhlY3V0ZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQpOiBQcm9taXNlPEV4ZWN1dGVTdGFja1JlZmFjdG9yQ29tbWFuZE91dHB1dD47XG4gIHdhaXRVbnRpbFN0YWNrUmVmYWN0b3JDcmVhdGVDb21wbGV0ZShpbnB1dDogRGVzY3JpYmVTdGFja1JlZmFjdG9yQ29tbWFuZElucHV0KTogUHJvbWlzZTxXYWl0ZXJSZXN1bHQ+O1xuICB3YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlKGlucHV0OiBEZXNjcmliZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQpOiBQcm9taXNlPFdhaXRlclJlc3VsdD47XG4gIGdldEhvb2tSZXN1bHQoaW5wdXQ6IEdldEhvb2tSZXN1bHRDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEhvb2tSZXN1bHRDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2xvdWRXYXRjaExvZ3NDbGllbnQge1xuICBkZXNjcmliZUxvZ0dyb3VwcyhpbnB1dDogRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dD47XG4gIGZpbHRlckxvZ0V2ZW50cyhpbnB1dDogRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxGaWx0ZXJMb2dFdmVudHNDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29kZUJ1aWxkQ2xpZW50IHtcbiAgdXBkYXRlUHJvamVjdChpbnB1dDogVXBkYXRlUHJvamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlUHJvamVjdENvbW1hbmRPdXRwdXQ+O1xufVxuZXhwb3J0IGludGVyZmFjZSBJRUMyQ2xpZW50IHtcbiAgZGVzY3JpYmVBdmFpbGFiaWxpdHlab25lcyhcbiAgICBpbnB1dDogRGVzY3JpYmVBdmFpbGFiaWxpdHlab25lc0NvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVJbnN0YW5jZXMoaW5wdXQ6IERlc2NyaWJlSW5zdGFuY2VzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUluc3RhbmNlc0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVJvdXRlVGFibGVzKGlucHV0OiBEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlU2VjdXJpdHlHcm91cHMoaW5wdXQ6IERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVTdWJuZXRzKGlucHV0OiBEZXNjcmliZVN1Ym5ldHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3VibmV0c0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXMoXG4gICAgaW5wdXQ6IERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxEZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVWcGNzKGlucHV0OiBEZXNjcmliZVZwY3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVnBjc0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVZwbkdhdGV3YXlzKGlucHV0OiBEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVDUkNsaWVudCB7XG4gIGJhdGNoRGVsZXRlSW1hZ2UoaW5wdXQ6IEJhdGNoRGVsZXRlSW1hZ2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPEJhdGNoRGVsZXRlSW1hZ2VDb21tYW5kT3V0cHV0PjtcbiAgYmF0Y2hHZXRJbWFnZShpbnB1dDogQmF0Y2hHZXRJbWFnZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8QmF0Y2hHZXRJbWFnZUNvbW1hbmRPdXRwdXQ+O1xuICBjcmVhdGVSZXBvc2l0b3J5KGlucHV0OiBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBFQ1JEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RUNSRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVSZXBvc2l0b3JpZXMoaW5wdXQ6IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRPdXRwdXQ+O1xuICBnZXRBdXRob3JpemF0aW9uVG9rZW4oaW5wdXQ6IEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD47XG4gIGxpc3RJbWFnZXMoaW5wdXQ6IExpc3RJbWFnZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgcHV0SW1hZ2UoaW5wdXQ6IFB1dEltYWdlQ29tbWFuZElucHV0KTogUHJvbWlzZTxQdXRJbWFnZUNvbW1hbmRPdXRwdXQ+O1xuICBwdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbihcbiAgICBpbnB1dDogUHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICk6IFByb21pc2U8UHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRUNTQ2xpZW50IHtcbiAgbGlzdENsdXN0ZXJzKGlucHV0OiBMaXN0Q2x1c3RlcnNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RDbHVzdGVyc0NvbW1hbmRPdXRwdXQ+O1xuICByZWdpc3RlclRhc2tEZWZpbml0aW9uKGlucHV0OiBSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZE91dHB1dD47XG4gIHVwZGF0ZVNlcnZpY2UoaW5wdXQ6IFVwZGF0ZVNlcnZpY2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZVNlcnZpY2VDb21tYW5kT3V0cHV0PjtcbiAgLy8gV2FpdGVyc1xuICB3YWl0VW50aWxTZXJ2aWNlc1N0YWJsZShpbnB1dDogRGVzY3JpYmVTZXJ2aWNlc0NvbW1hbmRJbnB1dCwgdGltZW91dFNlY29uZHM/OiBudW1iZXIpOiBQcm9taXNlPFdhaXRlclJlc3VsdD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVsYXN0aWNMb2FkQmFsYW5jaW5nVjJDbGllbnQge1xuICBkZXNjcmliZUxpc3RlbmVycyhpbnB1dDogRGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlTG9hZEJhbGFuY2VycyhpbnB1dDogRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUxvYWRCYWxhbmNlcnNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVUYWdzKGlucHV0OiBEZXNjcmliZVRhZ3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVGFnc0NvbW1hbmRPdXRwdXQ+O1xuICAvLyBQYWdpbmF0aW9uXG4gIHBhZ2luYXRlRGVzY3JpYmVMaXN0ZW5lcnMoaW5wdXQ6IERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0ZW5lcltdPjtcbiAgcGFnaW5hdGVEZXNjcmliZUxvYWRCYWxhbmNlcnMoaW5wdXQ6IERlc2NyaWJlTG9hZEJhbGFuY2Vyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TG9hZEJhbGFuY2VyW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJQU1DbGllbnQge1xuICBjcmVhdGVQb2xpY3koaW5wdXQ6IENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dD47XG4gIGdldFBvbGljeShpbnB1dDogR2V0UG9saWN5Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRQb2xpY3lDb21tYW5kT3V0cHV0PjtcbiAgZ2V0Um9sZShpbnB1dDogR2V0Um9sZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0Um9sZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElLTVNDbGllbnQge1xuICBkZXNjcmliZUtleShpbnB1dDogRGVzY3JpYmVLZXlDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlS2V5Q29tbWFuZE91dHB1dD47XG4gIGxpc3RBbGlhc2VzKGlucHV0OiBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFtYmRhQ2xpZW50IHtcbiAgaW52b2tlQ29tbWFuZChpbnB1dDogSW52b2tlQ29tbWFuZElucHV0KTogUHJvbWlzZTxJbnZva2VDb21tYW5kT3V0cHV0PjtcbiAgcHVibGlzaFZlcnNpb24oaW5wdXQ6IFB1Ymxpc2hWZXJzaW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxQdWJsaXNoVmVyc2lvbkNvbW1hbmRPdXRwdXQ+O1xuICB1cGRhdGVBbGlhcyhpbnB1dDogVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dD47XG4gIHVwZGF0ZUZ1bmN0aW9uQ29kZShpbnB1dDogVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uKFxuICAgIGlucHV0OiBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICk6IFByb21pc2U8VXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dD47XG4gIC8vIFdhaXRlcnNcbiAgd2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkKG1pbkRlbGF5U2Vjb25kczogbnVtYmVyLCBtYXhEZWxheVNlY29uZHM6IG51bWJlciwgaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8V2FpdGVyUmVzdWx0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUm91dGU1M0NsaWVudCB7XG4gIGdldEhvc3RlZFpvbmUoaW5wdXQ6IEdldEhvc3RlZFpvbmVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEhvc3RlZFpvbmVDb21tYW5kT3V0cHV0PjtcbiAgbGlzdEhvc3RlZFpvbmVzKGlucHV0OiBMaXN0SG9zdGVkWm9uZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RIb3N0ZWRab25lc0NvbW1hbmRPdXRwdXQ+O1xuICBsaXN0SG9zdGVkWm9uZXNCeU5hbWUoaW5wdXQ6IExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEhvc3RlZFpvbmVzQnlOYW1lQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVMzQ2xpZW50IHtcbiAgZGVsZXRlT2JqZWN0cyhpbnB1dDogRGVsZXRlT2JqZWN0c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlT2JqZWN0c0NvbW1hbmRPdXRwdXQ+O1xuICBkZWxldGVPYmplY3RUYWdnaW5nKGlucHV0OiBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dD47XG4gIGdldEJ1Y2tldEVuY3J5cHRpb24oaW5wdXQ6IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0PjtcbiAgZ2V0QnVja2V0TG9jYXRpb24oaW5wdXQ6IEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRPdXRwdXQ+O1xuICBnZXRPYmplY3QoaW5wdXQ6IEdldE9iamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0T2JqZWN0Q29tbWFuZE91dHB1dD47XG4gIGdldE9iamVjdFRhZ2dpbmcoaW5wdXQ6IEdldE9iamVjdFRhZ2dpbmdDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldE9iamVjdFRhZ2dpbmdDb21tYW5kT3V0cHV0PjtcbiAgbGlzdE9iamVjdHNWMihpbnB1dDogTGlzdE9iamVjdHNWMkNvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdE9iamVjdHNWMkNvbW1hbmRPdXRwdXQ+O1xuICBwdXRPYmplY3RUYWdnaW5nKGlucHV0OiBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0KTogUHJvbWlzZTxQdXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dD47XG4gIHVwbG9hZChpbnB1dDogUHV0T2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWNyZXRzTWFuYWdlckNsaWVudCB7XG4gIGdldFNlY3JldFZhbHVlKGlucHV0OiBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU1NNQ2xpZW50IHtcbiAgZ2V0UGFyYW1ldGVyKGlucHV0OiBHZXRQYXJhbWV0ZXJDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFBhcmFtZXRlckNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGVwRnVuY3Rpb25zQ2xpZW50IHtcbiAgdXBkYXRlU3RhdGVNYWNoaW5lKGlucHV0OiBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG4vKipcbiAqIEJhc2UgZnVuY3Rpb25hbGl0eSBvZiBTREsgd2l0aG91dCBjcmVkZW50aWFsIGZldGNoaW5nXG4gKi9cbkB0cmFjZU1lbWJlck1ldGhvZHNcbmV4cG9ydCBjbGFzcyBTREsge1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFJlZ2lvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IENvbmZpZ3VyYXRpb25PcHRpb25zO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWNjb3VudENhY2hlO1xuXG4gIC8qKlxuICAgKiBTVFMgaXMgdXNlZCB0byBjaGVjayBjcmVkZW50aWFsIHZhbGlkaXR5LCBkb24ndCBkbyB0b28gbWFueSByZXRyaWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdHNSZXRyeVN0cmF0ZWd5ID0gbmV3IENvbmZpZ3VyZWRSZXRyeVN0cmF0ZWd5KDMsIChhdHRlbXB0KSA9PiAxMDAgKiAoMiAqKiBhdHRlbXB0KSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgd2UgaGF2ZSBwcm9vZiB0aGF0IHRoZSBjcmVkZW50aWFscyBoYXZlIG5vdCBleHBpcmVkXG4gICAqXG4gICAqIFdlIG5lZWQgdG8gZG8gc29tZSBtYW51YWwgcGx1bWJpbmcgYXJvdW5kIHRoaXMgYmVjYXVzZSB0aGUgSlMgU0RLdjIgdHJlYXRzIGBFeHBpcmVkVG9rZW5gXG4gICAqIGFzIHJldHJpYWJsZSBhbmQgd2UgaGF2ZSBoZWZ0eSByZXRyaWVzIG9uIENGTiBjYWxscyBtYWtpbmcgdGhlIENMSSBoYW5nIGZvciBhIGdvb2QgMTUgbWludXRlc1xuICAgKiBpZiB0aGUgY3JlZGVudGlhbHMgaGF2ZSBleHBpcmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlZGVudGlhbHNWYWxpZGF0ZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byBjcmVhdGUgZGVidWcgbWVzc2FnZXNcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWc6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZWRQcm92aWRlcjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzLFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBsb2dnZXI/OiBJU2RrTG9nZ2VyLFxuICApIHtcbiAgICBjb25zdCBkZWJ1Z0ZuID0gYXN5bmMgKG1zZzogc3RyaW5nKSA9PiBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhtc2cpO1xuICAgIHRoaXMuYWNjb3VudENhY2hlID0gbmV3IEFjY291bnRBY2Nlc3NLZXlDYWNoZShBY2NvdW50QWNjZXNzS2V5Q2FjaGUuREVGQVVMVF9QQVRILCBkZWJ1Z0ZuKTtcbiAgICB0aGlzLmRlYnVnID0gZGVidWdGbjtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIHJlZ2lvbixcbiAgICAgIGNyZWRlbnRpYWxzOiBjcmVkUHJvdmlkZXIsXG4gICAgICByZXF1ZXN0SGFuZGxlcixcbiAgICAgIHJldHJ5U3RyYXRlZ3k6IG5ldyBDb25maWd1cmVkUmV0cnlTdHJhdGVneSg3LCAoYXR0ZW1wdCkgPT4gMzAwICogKDIgKiogYXR0ZW1wdCkpLFxuICAgICAgY3VzdG9tVXNlckFnZW50OiBkZWZhdWx0Q2xpVXNlckFnZW50KCksXG4gICAgICBsb2dnZXI6IGxvZ2dlciA/IG1ha2VTZGtMb2dnZXJTYWZlQnlCaW5kaW5nVGhpcyhsb2dnZXIpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgdGhpcy5jdXJyZW50UmVnaW9uID0gcmVnaW9uO1xuICB9XG5cbiAgcHVibGljIGFwcGVuZEN1c3RvbVVzZXJBZ2VudCh1c2VyQWdlbnREYXRhPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1c2VyQWdlbnREYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudEN1c3RvbVVzZXJBZ2VudCA9IHRoaXMuY29uZmlnLmN1c3RvbVVzZXJBZ2VudDtcbiAgICB0aGlzLmNvbmZpZy5jdXN0b21Vc2VyQWdlbnQgPSBjdXJyZW50Q3VzdG9tVXNlckFnZW50ID8gYCR7Y3VycmVudEN1c3RvbVVzZXJBZ2VudH0gJHt1c2VyQWdlbnREYXRhfWAgOiB1c2VyQWdlbnREYXRhO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUN1c3RvbVVzZXJBZ2VudCh1c2VyQWdlbnREYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZy5jdXN0b21Vc2VyQWdlbnQgPSB0aGlzLmNvbmZpZy5jdXN0b21Vc2VyQWdlbnQ/LnJlcGxhY2UodXNlckFnZW50RGF0YSwgJycpO1xuICB9XG5cbiAgcHVibGljIGFwcHN5bmMoKTogSUFwcFN5bmNDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcHBTeW5jQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U2NoZW1hQ3JlYXRpb25TdGF0dXM6IChcbiAgICAgICAgaW5wdXQ6IEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHN0YXJ0U2NoZW1hQ3JlYXRpb246IChpbnB1dDogU3RhcnRTY2hlbWFDcmVhdGlvbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhcnRTY2hlbWFDcmVhdGlvbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBTdGFydFNjaGVtYUNyZWF0aW9uQ29tbWFuZChpbnB1dCkpLFxuICAgICAgdXBkYXRlQXBpS2V5OiAoaW5wdXQ6IFVwZGF0ZUFwaUtleUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlQXBpS2V5Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZUFwaUtleUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZUZ1bmN0aW9uOiAoaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVGdW5jdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZVJlc29sdmVyOiAoaW5wdXQ6IFVwZGF0ZVJlc29sdmVyQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVSZXNvbHZlckNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVSZXNvbHZlckNvbW1hbmQoaW5wdXQpKSxcblxuICAgICAgLy8gUGFnaW5hdGlvbiBGdW5jdGlvbnNcbiAgICAgIGxpc3RGdW5jdGlvbnM6IGFzeW5jIChpbnB1dDogTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RnVuY3Rpb25Db25maWd1cmF0aW9uW10+ID0+IHtcbiAgICAgICAgY29uc3QgZnVuY3Rpb25zID0gQXJyYXk8RnVuY3Rpb25Db25maWd1cmF0aW9uPigpO1xuICAgICAgICBjb25zdCBwYWdpbmF0b3IgPSBwYWdpbmF0ZUxpc3RGdW5jdGlvbnMoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgZnVuY3Rpb25zLnB1c2goLi4uKHBhZ2UuZnVuY3Rpb25zIHx8IFtdKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucztcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBiZWRyb2NrQWdlbnRDb3JlQ29udHJvbCgpOiBJQmVkcm9ja0FnZW50Q29yZUNvbnRyb2xDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBCZWRyb2NrQWdlbnRDb3JlQ29udHJvbENsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldEFnZW50UnVudGltZTogKGlucHV0OiBHZXRBZ2VudFJ1bnRpbWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEFnZW50UnVudGltZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRBZ2VudFJ1bnRpbWVDb21tYW5kKGlucHV0KSksXG4gICAgICB1cGRhdGVBZ2VudFJ1bnRpbWU6IChpbnB1dDogVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVBZ2VudFJ1bnRpbWVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2xvdWRDb250cm9sKCk6IElDbG91ZENvbnRyb2xDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbG91ZENvbnRyb2xDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBsaXN0UmVzb3VyY2VzOiAoaW5wdXQ6IExpc3RSZXNvdXJjZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RSZXNvdXJjZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdFJlc291cmNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldFJlc291cmNlOiAoaW5wdXQ6IEdldFJlc291cmNlQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRSZXNvdXJjZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZVJlc291cmNlOiAoaW5wdXQ6IFVwZGF0ZVJlc291cmNlQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVSZXNvdXJjZUNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGNsb3VkRm9ybWF0aW9uKCk6IElDbG91ZEZvcm1hdGlvbkNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsb3VkRm9ybWF0aW9uQ2xpZW50KHtcbiAgICAgIC4uLnRoaXMuY29uZmlnLFxuICAgICAgcmV0cnlTdHJhdGVneTogbmV3IENvbmZpZ3VyZWRSZXRyeVN0cmF0ZWd5KDExLCAoYXR0ZW1wdDogbnVtYmVyKSA9PiAxMDAwICogKDIgKiogYXR0ZW1wdCkpLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBjb250aW51ZVVwZGF0ZVJvbGxiYWNrOiBhc3luYyAoXG4gICAgICAgIGlucHV0OiBDb250aW51ZVVwZGF0ZVJvbGxiYWNrQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxDb250aW51ZVVwZGF0ZVJvbGxiYWNrQ29tbWFuZE91dHB1dD4gPT4gY2xpZW50LnNlbmQobmV3IENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kKGlucHV0KSksXG4gICAgICBjcmVhdGVDaGFuZ2VTZXQ6IChpbnB1dDogQ3JlYXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgQ3JlYXRlQ2hhbmdlU2V0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgY3JlYXRlR2VuZXJhdGVkVGVtcGxhdGU6IChcbiAgICAgICAgaW5wdXQ6IENyZWF0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGNyZWF0ZVN0YWNrOiAoaW5wdXQ6IENyZWF0ZVN0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVTdGFja0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBDcmVhdGVTdGFja0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlbGV0ZUNoYW5nZVNldDogKGlucHV0OiBEZWxldGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZWxldGVDaGFuZ2VTZXRDb21tYW5kKGlucHV0KSksXG4gICAgICBkZWxldGVHZW5lcmF0ZWRUZW1wbGF0ZTogKFxuICAgICAgICBpbnB1dDogRGVsZXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD4gPT4gY2xpZW50LnNlbmQobmV3IERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVsZXRlU3RhY2s6IChpbnB1dDogRGVsZXRlU3RhY2tDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZVN0YWNrQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlbGV0ZVN0YWNrQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGV0ZWN0U3RhY2tEcmlmdDogKGlucHV0OiBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZElucHV0KTogUHJvbWlzZTxEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERldGVjdFN0YWNrRHJpZnRDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXRlY3RTdGFja1Jlc291cmNlRHJpZnQ6IChpbnB1dDogRGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZElucHV0KTogUHJvbWlzZTxEZXRlY3RTdGFja1Jlc291cmNlRHJpZnRDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVFdmVudHM6IChpbnB1dDogRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlRXZlbnRzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVDaGFuZ2VTZXQ6IChpbnB1dDogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZTogKFxuICAgICAgICBpbnB1dDogRGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8RGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVSZXNvdXJjZVNjYW46IChpbnB1dDogRGVzY3JpYmVSZXNvdXJjZVNjYW5Db21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVTdGFja0RyaWZ0RGV0ZWN0aW9uU3RhdHVzOiAoaW5wdXQ6IERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmRJbnB1dCk6XG4gICAgICBQcm9taXNlPERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHM6IChpbnB1dDogRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVTdGFja3M6IChpbnB1dDogRGVzY3JpYmVTdGFja3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3RhY2tzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVTdGFja1Jlc291cmNlczogKGlucHV0OiBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVR5cGU6IChpbnB1dDogRGVzY3JpYmVUeXBlQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVR5cGVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVUeXBlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZXhlY3V0ZUNoYW5nZVNldDogKGlucHV0OiBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0KTogUHJvbWlzZTxFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEV4ZWN1dGVDaGFuZ2VTZXRDb21tYW5kKGlucHV0KSksXG4gICAgICBnZXRHZW5lcmF0ZWRUZW1wbGF0ZTogKGlucHV0OiBHZXRHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kKGlucHV0KSksXG4gICAgICBnZXRUZW1wbGF0ZTogKGlucHV0OiBHZXRUZW1wbGF0ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0VGVtcGxhdGVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0VGVtcGxhdGVDb21tYW5kKGlucHV0KSksXG4gICAgICBnZXRUZW1wbGF0ZVN1bW1hcnk6IChpbnB1dDogR2V0VGVtcGxhdGVTdW1tYXJ5Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0VGVtcGxhdGVTdW1tYXJ5Q29tbWFuZChpbnB1dCkpLFxuICAgICAgbGlzdEV4cG9ydHM6IChpbnB1dDogTGlzdEV4cG9ydHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RFeHBvcnRzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IExpc3RFeHBvcnRzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgbGlzdFJlc291cmNlU2NhblJlbGF0ZWRSZXNvdXJjZXM6IChcbiAgICAgICAgaW5wdXQ6IExpc3RSZXNvdXJjZVNjYW5SZWxhdGVkUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXM6IChcbiAgICAgICAgaW5wdXQ6IExpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPExpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXNDb21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgTGlzdFJlc291cmNlU2NhblJlc291cmNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RSZXNvdXJjZVNjYW5zOiAoaW5wdXQ6IExpc3RSZXNvdXJjZVNjYW5zQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0UmVzb3VyY2VTY2Fuc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0UmVzb3VyY2VTY2Fuc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RTdGFja3M6IChpbnB1dDogTGlzdFN0YWNrc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0U3RhY2tzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcm9sbGJhY2tTdGFjazogKGlucHV0OiBSb2xsYmFja1N0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxSb2xsYmFja1N0YWNrQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFJvbGxiYWNrU3RhY2tDb21tYW5kKGlucHV0KSksXG4gICAgICBzdGFydFJlc291cmNlU2NhbjogKGlucHV0OiBTdGFydFJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgU3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kKGlucHV0KSksXG4gICAgICB1cGRhdGVTdGFjazogKGlucHV0OiBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlU3RhY2tDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgVXBkYXRlU3RhY2tDb21tYW5kKGlucHV0KSksXG4gICAgICB1cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb246IChcbiAgICAgICAgaW5wdXQ6IFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8VXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlU3RhY2tFdmVudHM6IChpbnB1dDogRGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRPdXRwdXQ+ID0+IHtcbiAgICAgICAgcmV0dXJuIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN0YWNrRXZlbnRzQ29tbWFuZChpbnB1dCkpO1xuICAgICAgfSxcbiAgICAgIGxpc3RTdGFja1Jlc291cmNlczogYXN5bmMgKGlucHV0OiBMaXN0U3RhY2tSZXNvdXJjZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YWNrUmVzb3VyY2VTdW1tYXJ5W10+ID0+IHtcbiAgICAgICAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBBcnJheTxTdGFja1Jlc291cmNlU3VtbWFyeT4oKTtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yID0gcGFnaW5hdGVMaXN0U3RhY2tSZXNvdXJjZXMoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgc3RhY2tSZXNvdXJjZXMucHVzaCguLi4ocGFnZT8uU3RhY2tSZXNvdXJjZVN1bW1hcmllcyB8fCBbXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGFja1Jlc291cmNlcztcbiAgICAgIH0sXG4gICAgICBwYWdpbmF0ZWRMaXN0U3RhY2tzOiBhc3luYyAoaW5wdXQ6IExpc3RTdGFja3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YWNrU3VtbWFyeVtdPiA9PiB7XG4gICAgICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gQXJyYXk8U3RhY2tTdW1tYXJ5PigpO1xuICAgICAgICBjb25zdCBwYWdpbmF0b3IgPSBwYWdpbmF0ZUxpc3RTdGFja3MoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgc3RhY2tSZXNvdXJjZXMucHVzaCguLi4ocGFnZT8uU3RhY2tTdW1tYXJpZXMgfHwgW10pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RhY2tSZXNvdXJjZXM7XG4gICAgICB9LFxuICAgICAgcGFnaW5hdGVkRGVzY3JpYmVFdmVudHM6IGFzeW5jIChpbnB1dDogRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPE9wZXJhdGlvbkV2ZW50W10+ID0+IHtcbiAgICAgICAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBBcnJheTxPcGVyYXRpb25FdmVudD4oKTtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yID0gcGFnaW5hdGVEZXNjcmliZUV2ZW50cyh7IGNsaWVudCB9LCBpbnB1dCk7XG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgcGFnZSBvZiBwYWdpbmF0b3IpIHtcbiAgICAgICAgICBzdGFja1Jlc291cmNlcy5wdXNoKC4uLihwYWdlLk9wZXJhdGlvbkV2ZW50cyB8fCBbXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGFja1Jlc291cmNlcztcbiAgICAgIH0sXG4gICAgICBjcmVhdGVTdGFja1JlZmFjdG9yOiAoaW5wdXQ6IENyZWF0ZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQpOiBQcm9taXNlPENyZWF0ZVN0YWNrUmVmYWN0b3JDb21tYW5kT3V0cHV0PiA9PiB7XG4gICAgICAgIHJldHVybiBjbGllbnQuc2VuZChuZXcgQ3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmQoaW5wdXQpKTtcbiAgICAgIH0sXG4gICAgICBleGVjdXRlU3RhY2tSZWZhY3RvcjogKGlucHV0OiBFeGVjdXRlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8RXhlY3V0ZVN0YWNrUmVmYWN0b3JDb21tYW5kT3V0cHV0PiA9PiB7XG4gICAgICAgIHJldHVybiBjbGllbnQuc2VuZChuZXcgRXhlY3V0ZVN0YWNrUmVmYWN0b3JDb21tYW5kKGlucHV0KSk7XG4gICAgICB9LFxuICAgICAgd2FpdFVudGlsU3RhY2tSZWZhY3RvckNyZWF0ZUNvbXBsZXRlOiAoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8V2FpdGVyUmVzdWx0PiA9PiB7XG4gICAgICAgIHJldHVybiB3YWl0VW50aWxTdGFja1JlZmFjdG9yQ3JlYXRlQ29tcGxldGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgbWF4V2FpdFRpbWU6IDYwMCxcbiAgICAgICAgICAgIG1pbkRlbGF5OiA2LFxuICAgICAgICAgICAgbWF4RGVsYXk6IDYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB3YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlOiAoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8V2FpdGVyUmVzdWx0PiA9PiB7XG4gICAgICAgIHJldHVybiB3YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICAgIG1heFdhaXRUaW1lOiA2MDAsXG4gICAgICAgICAgICBtaW5EZWxheTogNixcbiAgICAgICAgICAgIG1heERlbGF5OiA2LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgZ2V0SG9va1Jlc3VsdDogKGlucHV0OiBHZXRIb29rUmVzdWx0Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRIb29rUmVzdWx0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEhvb2tSZXN1bHRDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjbG91ZFdhdGNoTG9ncygpOiBJQ2xvdWRXYXRjaExvZ3NDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbG91ZFdhdGNoTG9nc0NsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc2NyaWJlTG9nR3JvdXBzOiAoaW5wdXQ6IERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGZpbHRlckxvZ0V2ZW50czogKGlucHV0OiBGaWx0ZXJMb2dFdmVudHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBGaWx0ZXJMb2dFdmVudHNDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjb2RlQnVpbGQoKTogSUNvZGVCdWlsZENsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENvZGVCdWlsZENsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZVByb2plY3Q6IChpbnB1dDogVXBkYXRlUHJvamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlUHJvamVjdENvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVQcm9qZWN0Q29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZWMyKCk6IElFQzJDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBFQzJDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzOiAoXG4gICAgICAgIGlucHV0OiBEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZE91dHB1dD4gPT4gY2xpZW50LnNlbmQobmV3IERlc2NyaWJlQXZhaWxhYmlsaXR5Wm9uZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZUltYWdlczogKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbWFnZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZUluc3RhbmNlczogKGlucHV0OiBEZXNjcmliZUluc3RhbmNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVJvdXRlVGFibGVzOiAoaW5wdXQ6IERlc2NyaWJlUm91dGVUYWJsZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUm91dGVUYWJsZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVSb3V0ZVRhYmxlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlU2VjdXJpdHlHcm91cHM6IChcbiAgICAgICAgaW5wdXQ6IERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVTZWN1cml0eUdyb3Vwc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlU3VibmV0czogKGlucHV0OiBEZXNjcmliZVN1Ym5ldHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3VibmV0c0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN1Ym5ldHNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXM6IChcbiAgICAgICAgaW5wdXQ6IERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8RGVzY3JpYmVWcGNFbmRwb2ludFNlcnZpY2VzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlVnBjczogKGlucHV0OiBEZXNjcmliZVZwY3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVnBjc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVZwY3NDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVZwbkdhdGV3YXlzOiAoaW5wdXQ6IERlc2NyaWJlVnBuR2F0ZXdheXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVnBuR2F0ZXdheXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVWcG5HYXRld2F5c0NvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGVjcigpOiBJRUNSQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgRUNSQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgYmF0Y2hEZWxldGVJbWFnZTogKGlucHV0OiBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZElucHV0KTogUHJvbWlzZTxCYXRjaERlbGV0ZUltYWdlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEJhdGNoRGVsZXRlSW1hZ2VDb21tYW5kKGlucHV0KSksXG4gICAgICBiYXRjaEdldEltYWdlOiAoaW5wdXQ6IEJhdGNoR2V0SW1hZ2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPEJhdGNoR2V0SW1hZ2VDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgQmF0Y2hHZXRJbWFnZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGNyZWF0ZVJlcG9zaXRvcnk6IChpbnB1dDogQ3JlYXRlUmVwb3NpdG9yeUNvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlUmVwb3NpdG9yeUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVJbWFnZXM6IChpbnB1dDogRUNSRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPEVDUkRlc2NyaWJlSW1hZ2VzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEVDUkRlc2NyaWJlSW1hZ2VzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVSZXBvc2l0b3JpZXM6IChpbnB1dDogRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QXV0aG9yaXphdGlvblRva2VuOiAoaW5wdXQ6IEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RJbWFnZXM6IChpbnB1dDogTGlzdEltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEltYWdlc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0SW1hZ2VzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcHV0SW1hZ2U6IChpbnB1dDogUHV0SW1hZ2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPFB1dEltYWdlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFB1dEltYWdlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb246IChcbiAgICAgICAgaW5wdXQ6IFB1dEltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxQdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBQdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGVjcygpOiBJRUNTQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgRUNTQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgbGlzdENsdXN0ZXJzOiAoaW5wdXQ6IExpc3RDbHVzdGVyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdENsdXN0ZXJzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IExpc3RDbHVzdGVyc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHJlZ2lzdGVyVGFza0RlZmluaXRpb246IChcbiAgICAgICAgaW5wdXQ6IFJlZ2lzdGVyVGFza0RlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPFJlZ2lzdGVyVGFza0RlZmluaXRpb25Db21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgUmVnaXN0ZXJUYXNrRGVmaW5pdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZVNlcnZpY2U6IChpbnB1dDogVXBkYXRlU2VydmljZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlU2VydmljZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVTZXJ2aWNlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgLy8gV2FpdGVyc1xuICAgICAgd2FpdFVudGlsU2VydmljZXNTdGFibGU6IChpbnB1dDogRGVzY3JpYmVTZXJ2aWNlc0NvbW1hbmRJbnB1dCwgdGltZW91dFNlY29uZHM/OiBudW1iZXIpOiBQcm9taXNlPFdhaXRlclJlc3VsdD4gPT4ge1xuICAgICAgICByZXR1cm4gd2FpdFVudGlsU2VydmljZXNTdGFibGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgbWF4V2FpdFRpbWU6IHRpbWVvdXRTZWNvbmRzID8/IDYwMCxcbiAgICAgICAgICAgIG1pbkRlbGF5OiA2LFxuICAgICAgICAgICAgbWF4RGVsYXk6IDYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBlbGJ2MigpOiBJRWxhc3RpY0xvYWRCYWxhbmNpbmdWMkNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEVsYXN0aWNMb2FkQmFsYW5jaW5nVjJDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUxpc3RlbmVyczogKGlucHV0OiBEZXNjcmliZUxpc3RlbmVyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZUxvYWRCYWxhbmNlcnM6IChpbnB1dDogRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUxvYWRCYWxhbmNlcnNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVUYWdzOiAoaW5wdXQ6IERlc2NyaWJlVGFnc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVUYWdzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVGFnc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIC8vIFBhZ2luYXRpb24gRnVuY3Rpb25zXG4gICAgICBwYWdpbmF0ZURlc2NyaWJlTGlzdGVuZXJzOiBhc3luYyAoaW5wdXQ6IERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0ZW5lcltdPiA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IEFycmF5PExpc3RlbmVyPigpO1xuICAgICAgICBjb25zdCBwYWdpbmF0b3IgPSBwYWdpbmF0ZURlc2NyaWJlTGlzdGVuZXJzKHsgY2xpZW50IH0sIGlucHV0KTtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBwYWdlIG9mIHBhZ2luYXRvcikge1xuICAgICAgICAgIGxpc3RlbmVycy5wdXNoKC4uLihwYWdlPy5MaXN0ZW5lcnMgfHwgW10pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlzdGVuZXJzO1xuICAgICAgfSxcbiAgICAgIHBhZ2luYXRlRGVzY3JpYmVMb2FkQmFsYW5jZXJzOiBhc3luYyAoaW5wdXQ6IERlc2NyaWJlTG9hZEJhbGFuY2Vyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TG9hZEJhbGFuY2VyW10+ID0+IHtcbiAgICAgICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IEFycmF5PExvYWRCYWxhbmNlcj4oKTtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yID0gcGFnaW5hdGVEZXNjcmliZUxvYWRCYWxhbmNlcnMoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgbG9hZEJhbGFuY2Vycy5wdXNoKC4uLihwYWdlPy5Mb2FkQmFsYW5jZXJzIHx8IFtdKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvYWRCYWxhbmNlcnM7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaWFtKCk6IElJQU1DbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBJQU1DbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBjcmVhdGVQb2xpY3k6IChpbnB1dDogQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVQb2xpY3lDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgQ3JlYXRlUG9saWN5Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0UG9saWN5OiAoaW5wdXQ6IEdldFBvbGljeUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0UG9saWN5Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldFBvbGljeUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldFJvbGU6IChpbnB1dDogR2V0Um9sZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0Um9sZUNvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBHZXRSb2xlQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMga21zKCk6IElLTVNDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBLTVNDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUtleTogKGlucHV0OiBEZXNjcmliZUtleUNvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVLZXlDb21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0QWxpYXNlczogKGlucHV0OiBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdEFsaWFzZXNDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBsYW1iZGEoKTogSUxhbWJkYUNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IExhbWJkYUNsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGludm9rZUNvbW1hbmQ6IChpbnB1dDogSW52b2tlQ29tbWFuZElucHV0KTogUHJvbWlzZTxJbnZva2VDb21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgSW52b2tlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcHVibGlzaFZlcnNpb246IChpbnB1dDogUHVibGlzaFZlcnNpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPFB1Ymxpc2hWZXJzaW9uQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFB1Ymxpc2hWZXJzaW9uQ29tbWFuZChpbnB1dCkpLFxuICAgICAgdXBkYXRlQWxpYXM6IChpbnB1dDogVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZUFsaWFzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgdXBkYXRlRnVuY3Rpb25Db2RlOiAoaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbjogKFxuICAgICAgICBpbnB1dDogVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZChpbnB1dCkpLFxuICAgICAgLy8gV2FpdGVyc1xuICAgICAgd2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkOiAoXG4gICAgICAgIG1pbkRlbGF5U2Vjb25kczogbnVtYmVyLFxuICAgICAgICBtYXhEZWxheVNlY29uZHM6IG51bWJlcixcbiAgICAgICAgaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8V2FpdGVyUmVzdWx0PiA9PiB7XG4gICAgICAgIHJldHVybiB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWRWMihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICBtYXhEZWxheTogbWF4RGVsYXlTZWNvbmRzLFxuICAgICAgICAgICAgbWluRGVsYXk6IG1pbkRlbGF5U2Vjb25kcyxcbiAgICAgICAgICAgIG1heFdhaXRUaW1lOiBtYXhEZWxheVNlY29uZHMgKiA2MCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlucHV0LFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJvdXRlNTMoKTogSVJvdXRlNTNDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBSb3V0ZTUzQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0SG9zdGVkWm9uZTogKGlucHV0OiBHZXRIb3N0ZWRab25lQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRIb3N0ZWRab25lQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEhvc3RlZFpvbmVDb21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0SG9zdGVkWm9uZXM6IChpbnB1dDogTGlzdEhvc3RlZFpvbmVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0SG9zdGVkWm9uZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdEhvc3RlZFpvbmVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgbGlzdEhvc3RlZFpvbmVzQnlOYW1lOiAoaW5wdXQ6IExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEhvc3RlZFpvbmVzQnlOYW1lQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHMzKCk6IElTM0NsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFMzQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGVsZXRlT2JqZWN0czogKGlucHV0OiBEZWxldGVPYmplY3RzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlbGV0ZU9iamVjdHNDb21tYW5kKHtcbiAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICBDaGVja3N1bUFsZ29yaXRobTogJ1NIQTI1NicsXG4gICAgICAgIH0pKSxcbiAgICAgIGRlbGV0ZU9iamVjdFRhZ2dpbmc6IChpbnB1dDogRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QnVja2V0RW5jcnlwdGlvbjogKGlucHV0OiBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBnZXRCdWNrZXRMb2NhdGlvbjogKGlucHV0OiBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBnZXRPYmplY3Q6IChpbnB1dDogR2V0T2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRPYmplY3RDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0T2JqZWN0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0T2JqZWN0VGFnZ2luZzogKGlucHV0OiBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldE9iamVjdFRhZ2dpbmdDb21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0T2JqZWN0c1YyOiAoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdE9iamVjdHNWMkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHB1dE9iamVjdFRhZ2dpbmc6IChpbnB1dDogUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCk6IFByb21pc2U8UHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZCh7XG4gICAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgICAgQ2hlY2tzdW1BbGdvcml0aG06ICdTSEEyNTYnLFxuICAgICAgICB9KSksXG4gICAgICB1cGxvYWQ6IChpbnB1dDogUHV0T2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRPdXRwdXQ+ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB1cGxvYWQgPSBuZXcgVXBsb2FkKHtcbiAgICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICAgIHBhcmFtczogeyAuLi5pbnB1dCwgQ2hlY2tzdW1BbGdvcml0aG06ICdTSEEyNTYnIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gdXBsb2FkLmRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ1MzVXBsb2FkRmFpbGVkJywgYFVwbG9hZCBmYWlsZWQ6ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc2VjcmV0c01hbmFnZXIoKTogSVNlY3JldHNNYW5hZ2VyQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBnZXRTZWNyZXRWYWx1ZTogKGlucHV0OiBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0U2VjcmV0VmFsdWVDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzc20oKTogSVNTTUNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFNTTUNsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFBhcmFtZXRlcjogKGlucHV0OiBHZXRQYXJhbWV0ZXJDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFBhcmFtZXRlckNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRQYXJhbWV0ZXJDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwRnVuY3Rpb25zKCk6IElTdGVwRnVuY3Rpb25zQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU0ZOQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgdXBkYXRlU3RhdGVNYWNoaW5lOiAoaW5wdXQ6IFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgU0RLIHYzIHJlcXVpcmVzIGEgY2xpZW50IGNvbmZpZyBhbmQgYSBjb21tYW5kIGluIG9yZGVyIHRvIGdldCBhbiBlbmRwb2ludCBmb3JcbiAgICogYW55IGdpdmVuIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VXJsU3VmZml4KHJlZ2lvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjZm4gPSBuZXcgQ2xvdWRGb3JtYXRpb25DbGllbnQoeyByZWdpb24gfSk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBhd2FpdCBnZXRFbmRwb2ludEZyb21JbnN0cnVjdGlvbnMoe30sIERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kLCB7IC4uLmNmbi5jb25maWcgfSk7XG4gICAgcmV0dXJuIGVuZHBvaW50LnVybC5ob3N0bmFtZS5zcGxpdChgJHtyZWdpb259LmApLnBvcCgpITtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICByZXR1cm4gY2FjaGVkQXN5bmModGhpcywgQ1VSUkVOVF9BQ0NPVU5UX0tFWSwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCB0aGlzLmNyZWRQcm92aWRlcigpO1xuICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudENhY2hlLmZldGNoKGNyZWRzLmFjY2Vzc0tleUlkLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIGlmIHdlIGRvbid0IGhhdmUgb25lLCByZXNvbHZlIGZyb20gU1RTIGFuZCBzdG9yZSBpbiBjYWNoZS5cbiAgICAgICAgYXdhaXQgdGhpcy5kZWJ1ZygnTG9va2luZyB1cCBkZWZhdWx0IGFjY291bnQgSUQgZnJvbSBTVFMnKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gbmV3IFNUU0NsaWVudCh7XG4gICAgICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgICAgICAgcmV0cnlTdHJhdGVneTogdGhpcy5zdHNSZXRyeVN0cmF0ZWd5LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQoe30pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChjb21tYW5kKTtcbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gcmVzdWx0LkFjY291bnQ7XG4gICAgICAgIGNvbnN0IHBhcnRpdGlvbiA9IHJlc3VsdC5Bcm4hLnNwbGl0KCc6JylbMV07XG4gICAgICAgIGlmICghYWNjb3VudElkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ05vQWNjb3VudElkJywgXCJTVFMgZGlkbid0IHJldHVybiBhbiBhY2NvdW50IElEXCIpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZGVidWcoYERlZmF1bHQgYWNjb3VudCBJRDogJHthY2NvdW50SWR9YCk7XG5cbiAgICAgICAgLy8gU2F2ZSBhbm90aGVyIFNUUyBjYWxsIGxhdGVyIGlmIHRoaXMgb25lIGFscmVhZHkgc3VjY2VlZGVkXG4gICAgICAgIHRoaXMuX2NyZWRlbnRpYWxzVmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHsgYWNjb3VudElkLCBwYXJ0aXRpb24gfTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2Ugc3VyZSB0aGUgdGhlIGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIG5vdCBleHBpcmVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVDcmVkZW50aWFscygpIHtcbiAgICBpZiAodGhpcy5fY3JlZGVudGlhbHNWYWxpZGF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU1RTQ2xpZW50KHsgLi4udGhpcy5jb25maWcsIHJldHJ5U3RyYXRlZ3k6IHRoaXMuc3RzUmV0cnlTdHJhdGVneSB9KTtcbiAgICBhd2FpdCBjbGllbnQuc2VuZChuZXcgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kKHt9KSk7XG4gICAgdGhpcy5fY3JlZGVudGlhbHNWYWxpZGF0ZWQgPSB0cnVlO1xuICB9XG59XG5cbmNvbnN0IENVUlJFTlRfQUNDT1VOVF9LRVkgPSBTeW1ib2woJ2N1cnJlbnRfYWNjb3VudF9rZXknKTtcblxuLyoqXG4gKiBNYWtlIHRoZSBTREsgbG9nZ2VyIHNhZmUgYWdhaW5zdCByYXcgZnVuY3Rpb24gaW52b2NhdGlvbnNcbiAqXG4gKiBUaGUgU0RLIGV4cGVjdHMgdGhlIGxvZ2dlciB0byBiZSBhbiBvYmplY3Qgd2l0aCBhIG51bWJlciBvZiBmdW5jdGlvbnMsIGJ1dCBpdFxuICogZG9lc24ndCBuZWNlc3NhcmlseSBrZWVwICd0aGlzJyBib3VuZCBhbGwgdGhlIHRpbWU7IHNvbWV0aW1lcyBpdCB3aWxsIGNvcHlcbiAqIGZ1bmN0aW9ucyBvZmYgb2YgdGhlIG9iamVjdCBhbmQgY2FsbCB0aGVtIGZyb20gYSB2YXJpYWJsZS5cbiAqXG4gKiBCeSBob3cgSmF2YVNjcmlwdCB3b3JrcywgdGhpcyBkcm9wcyB0aGUgJ3RoaXMnIHJlZmVyZW5jZS4gTWFrZSBzdXJlICd0aGlzJyBpc1xuICogYm91bmQgYXQgYWxsIHRpbWVzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL2lzc3Vlcy83Mjk3XG4gKi9cbmZ1bmN0aW9uIG1ha2VTZGtMb2dnZXJTYWZlQnlCaW5kaW5nVGhpcyhsb2dnZXI6IElTZGtMb2dnZXIpOiBJU2RrTG9nZ2VyIHtcbiAgcmV0dXJuIHtcbiAgICBkZWJ1ZzogbG9nZ2VyLmRlYnVnLmJpbmQobG9nZ2VyKSxcbiAgICBpbmZvOiBsb2dnZXIuaW5mby5iaW5kKGxvZ2dlciksXG4gICAgd2FybjogbG9nZ2VyLndhcm4uYmluZChsb2dnZXIpLFxuICAgIGVycm9yOiBsb2dnZXIuZXJyb3IuYmluZChsb2dnZXIpLFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setSdkTracing = setSdkTracing;\nexports.callTrace = callTrace;\nexports.traceMemberMethods = traceMemberMethods;\nlet ENABLED = false;\nlet INDENT = 0;\nfunction setSdkTracing(enabled) {\n ENABLED = enabled;\n}\n/**\n * Method decorator to trace a single static or member method, any time it's called\n */\nfunction callTrace(fn, className, logger) {\n if (!ENABLED || !logger) {\n return;\n }\n logger.info(`[trace] ${' '.repeat(INDENT)}${className || '(anonymous)'}#${fn}()`);\n}\n/**\n * Method decorator to trace a single member method any time it's called\n */\nfunction traceCall(receiver, _propertyKey, descriptor, parentClassName) {\n const fn = descriptor.value;\n const className = typeof receiver === 'function' ? receiver.name : parentClassName;\n descriptor.value = function (...args) {\n const logger = this.logger;\n if (!ENABLED || typeof logger?.info !== 'function') {\n return fn.apply(this, args);\n }\n logger.info.apply(logger, [`[trace] ${' '.repeat(INDENT)}${className || this.constructor.name || '(anonymous)'}#${fn.name}()`]);\n INDENT += 2;\n const ret = fn.apply(this, args);\n if (ret instanceof Promise) {\n return ret.finally(() => {\n INDENT -= 2;\n });\n }\n else {\n INDENT -= 2;\n return ret;\n }\n };\n return descriptor;\n}\n/**\n * Class decorator, enable tracing for all member methods on this class\n * @deprecated this doesn't work well with localized logging instances, don't use\n */\nfunction traceMemberMethods(constructor) {\n // Instance members\n for (const [name, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(constructor.prototype))) {\n if (typeof descriptor.value !== 'function') {\n continue;\n }\n const newDescriptor = traceCall(constructor.prototype, name, descriptor, constructor.name) ?? descriptor;\n Object.defineProperty(constructor.prototype, name, newDescriptor);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyYWNpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxzQ0FFQztBQUtELDhCQU1DO0FBbUNELGdEQVNDO0FBNURELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztBQUNwQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZixTQUFnQixhQUFhLENBQUMsT0FBZ0I7SUFDNUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUNwQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixTQUFTLENBQUMsRUFBVSxFQUFFLFNBQWtCLEVBQUUsTUFBbUI7SUFDM0UsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxJQUFJLGFBQWEsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsU0FBUyxDQUFDLFFBQWdCLEVBQUUsWUFBb0IsRUFBRSxVQUE4QixFQUFFLGVBQXdCO0lBQ2pILE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDNUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFFbkYsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztRQUN6QyxNQUFNLE1BQU0sR0FBSSxJQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxNQUFNLEVBQUUsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ25ELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksYUFBYSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEksTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVaLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksR0FBRyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLENBQUMsQ0FBQztZQUNaLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUMsQ0FBQztJQUNGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxXQUFxQjtJQUN0RCxtQkFBbUI7SUFDbkIsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekcsSUFBSSxPQUFPLFVBQVUsQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDM0MsU0FBUztRQUNYLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUM7UUFDekcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVNka0xvZ2dlciB9IGZyb20gJy4vc2RrLWxvZ2dlcic7XG5cbmxldCBFTkFCTEVEID0gZmFsc2U7XG5sZXQgSU5ERU5UID0gMDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNka1RyYWNpbmcoZW5hYmxlZDogYm9vbGVhbikge1xuICBFTkFCTEVEID0gZW5hYmxlZDtcbn1cblxuLyoqXG4gKiBNZXRob2QgZGVjb3JhdG9yIHRvIHRyYWNlIGEgc2luZ2xlIHN0YXRpYyBvciBtZW1iZXIgbWV0aG9kLCBhbnkgdGltZSBpdCdzIGNhbGxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsbFRyYWNlKGZuOiBzdHJpbmcsIGNsYXNzTmFtZT86IHN0cmluZywgbG9nZ2VyPzogSVNka0xvZ2dlcikge1xuICBpZiAoIUVOQUJMRUQgfHwgIWxvZ2dlcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGBbdHJhY2VdICR7JyAnLnJlcGVhdChJTkRFTlQpfSR7Y2xhc3NOYW1lIHx8ICcoYW5vbnltb3VzKSd9IyR7Zm59KClgKTtcbn1cblxuLyoqXG4gKiBNZXRob2QgZGVjb3JhdG9yIHRvIHRyYWNlIGEgc2luZ2xlIG1lbWJlciBtZXRob2QgYW55IHRpbWUgaXQncyBjYWxsZWRcbiAqL1xuZnVuY3Rpb24gdHJhY2VDYWxsKHJlY2VpdmVyOiBvYmplY3QsIF9wcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IsIHBhcmVudENsYXNzTmFtZT86IHN0cmluZykge1xuICBjb25zdCBmbiA9IGRlc2NyaXB0b3IudmFsdWU7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHR5cGVvZiByZWNlaXZlciA9PT0gJ2Z1bmN0aW9uJyA/IHJlY2VpdmVyLm5hbWUgOiBwYXJlbnRDbGFzc05hbWU7XG5cbiAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGxvZ2dlciA9ICh0aGlzIGFzIGFueSkubG9nZ2VyO1xuICAgIGlmICghRU5BQkxFRCB8fCB0eXBlb2YgbG9nZ2VyPy5pbmZvICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgfVxuXG4gICAgbG9nZ2VyLmluZm8uYXBwbHkobG9nZ2VyLCBbYFt0cmFjZV0gJHsnICcucmVwZWF0KElOREVOVCl9JHtjbGFzc05hbWUgfHwgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIHx8ICcoYW5vbnltb3VzKSd9IyR7Zm4ubmFtZX0oKWBdKTtcbiAgICBJTkRFTlQgKz0gMjtcblxuICAgIGNvbnN0IHJldCA9IGZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIGlmIChyZXQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICByZXR1cm4gcmV0LmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBJTkRFTlQgLT0gMjtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBJTkRFTlQgLT0gMjtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9O1xuICByZXR1cm4gZGVzY3JpcHRvcjtcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWNvcmF0b3IsIGVuYWJsZSB0cmFjaW5nIGZvciBhbGwgbWVtYmVyIG1ldGhvZHMgb24gdGhpcyBjbGFzc1xuICogQGRlcHJlY2F0ZWQgdGhpcyBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIGxvY2FsaXplZCBsb2dnaW5nIGluc3RhbmNlcywgZG9uJ3QgdXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZU1lbWJlck1ldGhvZHMoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gIC8vIEluc3RhbmNlIG1lbWJlcnNcbiAgZm9yIChjb25zdCBbbmFtZSwgZGVzY3JpcHRvcl0gb2YgT2JqZWN0LmVudHJpZXMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoY29uc3RydWN0b3IucHJvdG90eXBlKSkpIHtcbiAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBuZXdEZXNjcmlwdG9yID0gdHJhY2VDYWxsKGNvbnN0cnVjdG9yLnByb3RvdHlwZSwgbmFtZSwgZGVzY3JpcHRvciwgY29uc3RydWN0b3IubmFtZSkgPz8gZGVzY3JpcHRvcjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uc3RydWN0b3IucHJvdG90eXBlLCBuYW1lLCBuZXdEZXNjcmlwdG9yKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBodHRwcyBmcm9tICdub2RlOmh0dHBzJztcbmltcG9ydCB0eXBlIHsgSUJhc2VDcmVkZW50aWFsc1Byb3ZpZGVyIH0gZnJvbSAnLi9iYXNlLWNyZWRlbnRpYWxzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZGVmYXVsdCBTREsgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtDb25maWcge1xuICAvKipcbiAgICogVGhlIGJhc2UgY3JlZGVudGlhbHMgYW5kIHJlZ2lvbiB1c2VkIHRvIHNlZWQgdGhlIFRvb2xraXQgd2l0aFxuICAgKlxuICAgKiBAZGVmYXVsdCBCYXNlQ3JlZGVudGlhbHMuYXdzQ2xpQ29tcGF0aWJsZSgpXG4gICAqL1xuICByZWFkb25seSBiYXNlQ3JlZGVudGlhbHM/OiBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIEhUVFAgb3B0aW9ucyBmb3IgU0RLXG4gICAqL1xuICByZWFkb25seSBodHRwT3B0aW9ucz86IFNka0h0dHBPcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGluZGl2aWR1YWwgU0RLc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNka0h0dHBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhZ2VudCByZXNwb25zaWJsZSBmb3IgbWFraW5nIHRoZSBuZXR3b3JrIHJlcXVlc3RzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBzbyBzZXQgdXAgYSBwcm94eSBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIHNoYXJlZCBnbG9iYWwgbm9kZSBhZ2VudFxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnQ/OiBodHRwcy5BZ2VudDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultCliUserAgent = defaultCliUserAgent;\nconst path = require(\"path\");\nconst util_1 = require(\"./util\");\nconst util_2 = require(\"../../util\");\n/**\n * Find the package.json from the main toolkit.\n *\n * If we can't read it for some reason, try to do something reasonable anyway.\n * Fall back to argv[1], or a standard string if that is undefined for some reason.\n */\nfunction defaultCliUserAgent() {\n const root = (0, util_2.bundledPackageRootDir)(__dirname, false);\n const pkg = JSON.parse((root ? (0, util_1.readIfPossible)(path.join(root, 'package.json')) : undefined) ?? '{}');\n const name = pkg.name ?? path.basename(process.argv[1] ?? 'cdk-cli');\n const version = pkg.version ?? '';\n return `${name}/${version}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxrREFNQztBQWZELDZCQUE2QjtBQUM3QixpQ0FBd0M7QUFDeEMscUNBQW1EO0FBQ25EOzs7OztHQUtHO0FBQ0gsU0FBZ0IsbUJBQW1CO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUEsNEJBQXFCLEVBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEscUJBQWMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNyRyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUNyRSxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQztJQUMzQyxPQUFPLEdBQUcsSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcmVhZElmUG9zc2libGUgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgYnVuZGxlZFBhY2thZ2VSb290RGlyIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG4vKipcbiAqIEZpbmQgdGhlIHBhY2thZ2UuanNvbiBmcm9tIHRoZSBtYWluIHRvb2xraXQuXG4gKlxuICogSWYgd2UgY2FuJ3QgcmVhZCBpdCBmb3Igc29tZSByZWFzb24sIHRyeSB0byBkbyBzb21ldGhpbmcgcmVhc29uYWJsZSBhbnl3YXkuXG4gKiBGYWxsIGJhY2sgdG8gYXJndlsxXSwgb3IgYSBzdGFuZGFyZCBzdHJpbmcgaWYgdGhhdCBpcyB1bmRlZmluZWQgZm9yIHNvbWUgcmVhc29uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdENsaVVzZXJBZ2VudCgpIHtcbiAgY29uc3Qgcm9vdCA9IGJ1bmRsZWRQYWNrYWdlUm9vdERpcihfX2Rpcm5hbWUsIGZhbHNlKTtcbiAgY29uc3QgcGtnID0gSlNPTi5wYXJzZSgocm9vdCA/IHJlYWRJZlBvc3NpYmxlKHBhdGguam9pbihyb290LCAncGFja2FnZS5qc29uJykpIDogdW5kZWZpbmVkKSA/PyAne30nKTtcbiAgY29uc3QgbmFtZSA9IHBrZy5uYW1lID8/IHBhdGguYmFzZW5hbWUocHJvY2Vzcy5hcmd2WzFdID8/ICdjZGstY2xpJyk7XG4gIGNvbnN0IHZlcnNpb24gPSBwa2cudmVyc2lvbiA/PyAnPHVua25vd24+JztcbiAgcmV0dXJuIGAke25hbWV9LyR7dmVyc2lvbn1gO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readIfPossible = readIfPossible;\nconst fs = require(\"fs-extra\");\n/**\n * Read a file if it exists, or return undefined\n *\n * Not async because it is used in the constructor\n */\nfunction readIfPossible(filename) {\n try {\n if (!fs.pathExistsSync(filename)) {\n return undefined;\n }\n return fs.readFileSync(filename, { encoding: 'utf-8' });\n }\n catch (e) {\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSx3Q0FTQztBQWhCRCwrQkFBK0I7QUFFL0I7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxRQUFnQjtJQUM3QyxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qKlxuICogUmVhZCBhIGZpbGUgaWYgaXQgZXhpc3RzLCBvciByZXR1cm4gdW5kZWZpbmVkXG4gKlxuICogTm90IGFzeW5jIGJlY2F1c2UgaXQgaXMgdXNlZCBpbiB0aGUgY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJZlBvc3NpYmxlKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGlmICghZnMucGF0aEV4aXN0c1N5bmMoZmlsZW5hbWUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bootstrapper = void 0;\nconst path = require(\"path\");\nconst deploy_bootstrap_1 = require(\"./deploy-bootstrap\");\nconst legacy_template_1 = require(\"./legacy-template\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\nclass Bootstrapper {\n source;\n ioHelper;\n constructor(source = { source: 'default' }, ioHelper) {\n this.source = source;\n this.ioHelper = ioHelper;\n }\n bootstrapEnvironment(environment, sdkProvider, options = {}) {\n switch (this.source.source) {\n case 'legacy':\n return this.legacyBootstrap(environment, sdkProvider, options);\n case 'default':\n return this.modernBootstrap(environment, sdkProvider, options);\n case 'custom':\n return this.customBootstrap(environment, sdkProvider, options);\n }\n }\n async showTemplate(json) {\n const template = await this.loadTemplate();\n process.stdout.write(`${(0, util_1.serializeStructure)(template, json)}\\n`);\n }\n /**\n * Deploy legacy bootstrap stack\n *\n */\n async legacyBootstrap(environment, sdkProvider, options = {}) {\n const params = options.parameters ?? {};\n if (params.trustedAccounts?.length) {\n throw new toolkit_error_1.ToolkitError('TrustRequiresModernBootstrap', '--trust can only be passed for the modern bootstrap experience.');\n }\n if (params.cloudFormationExecutionPolicies?.length) {\n throw new toolkit_error_1.ToolkitError('ExecutionPoliciesRequiresModernBootstrap', '--cloudformation-execution-policies can only be passed for the modern bootstrap experience.');\n }\n if (params.createCustomerMasterKey !== undefined) {\n throw new toolkit_error_1.ToolkitError('CustomerKeyRequiresModernBootstrap', '--bootstrap-customer-key can only be passed for the modern bootstrap experience.');\n }\n if (params.qualifier) {\n throw new toolkit_error_1.ToolkitError('QualifierRequiresModernBootstrap', '--qualifier can only be passed for the modern bootstrap experience.');\n }\n const toolkitStackName = options.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n const current = await deploy_bootstrap_1.BootstrapStack.lookup(sdkProvider, environment, toolkitStackName, this.ioHelper);\n return current.update(await this.loadTemplate(params), {}, {\n ...options,\n terminationProtection: options.terminationProtection ?? current.terminationProtection,\n });\n }\n /**\n * Deploy CI/CD-ready bootstrap stack from template\n *\n */\n async modernBootstrap(environment, sdkProvider, options = {}) {\n const params = options.parameters ?? {};\n const bootstrapTemplate = await this.loadTemplate();\n const toolkitStackName = options.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n const current = await deploy_bootstrap_1.BootstrapStack.lookup(sdkProvider, environment, toolkitStackName, this.ioHelper);\n const partition = await current.partition();\n if (params.createCustomerMasterKey !== undefined && params.kmsKeyId) {\n throw new toolkit_error_1.ToolkitError('ConflictingKmsKeyOptions', \"You cannot pass '--bootstrap-kms-key-id' and '--bootstrap-customer-key' together. Specify one or the other\");\n }\n // If people re-bootstrap, existing parameter values are reused so that people don't accidentally change the configuration\n // on their bootstrap stack (this happens automatically in deployStack). However, to do proper validation on the\n // combined arguments (such that if --trust has been given, --cloudformation-execution-policies is necessary as well)\n // we need to take this parameter reuse into account.\n //\n // Ideally we'd do this inside the template, but the `Rules` section of CFN\n // templates doesn't seem to be able to express the conditions that we need\n // (can't use Fn::Join or reference Conditions) so we do it here instead.\n const allTrusted = new Set([\n ...params.trustedAccounts ?? [],\n ...params.trustedAccountsForLookup ?? [],\n ]);\n const invalid = intersection(allTrusted, new Set(params.untrustedAccounts));\n if (invalid.size > 0) {\n throw new toolkit_error_1.ToolkitError('AccountBothTrustedAndUntrusted', `Accounts cannot be both trusted and untrusted. Found: ${[...invalid].join(',')}`);\n }\n const removeUntrusted = (accounts) => accounts.filter(acc => !params.untrustedAccounts?.map(String).includes(String(acc)));\n const trustedAccounts = removeUntrusted(params.trustedAccounts ?? splitCfnArray(current.parameters.TrustedAccounts));\n await this.ioHelper.defaults.info(`Trusted accounts for deployment: ${trustedAccounts.length > 0 ? trustedAccounts.join(', ') : '(none)'}`);\n const trustedAccountsForLookup = removeUntrusted(params.trustedAccountsForLookup ?? splitCfnArray(current.parameters.TrustedAccountsForLookup));\n await this.ioHelper.defaults.info(`Trusted accounts for lookup: ${trustedAccountsForLookup.length > 0 ? trustedAccountsForLookup.join(', ') : '(none)'}`);\n const cloudFormationExecutionPolicies = params.cloudFormationExecutionPolicies ?? splitCfnArray(current.parameters.CloudFormationExecutionPolicies);\n if (trustedAccounts.length === 0 && cloudFormationExecutionPolicies.length === 0) {\n // For self-trust it's okay to default to AdministratorAccess, and it improves the usability of bootstrapping a lot.\n //\n // We don't actually make the implicitly policy a physical parameter. The template will infer it instead,\n // we simply do the UI advertising that behavior here.\n //\n // If we DID make it an explicit parameter, we wouldn't be able to tell the difference between whether\n // we inferred it or whether the user told us, and the sequence:\n //\n // $ cdk bootstrap\n // $ cdk bootstrap --trust 1234\n //\n // Would leave AdministratorAccess policies with a trust relationship, without the user explicitly\n // approving the trust policy.\n const implicitPolicy = `arn:${partition}:iam::aws:policy/AdministratorAccess`;\n await this.ioHelper.defaults.warn(`Using default execution policy of '${implicitPolicy}'. Pass '--cloudformation-execution-policies' to customize.`);\n }\n else if (cloudFormationExecutionPolicies.length === 0) {\n throw new toolkit_error_1.ToolkitError('MissingExecutionPoliciesForTrust', `Please pass \\'--cloudformation-execution-policies\\' when using \\'--trust\\' to specify deployment permissions. Try a managed policy of the form \\'arn:${partition}:iam::aws:policy/\\'.`);\n }\n else {\n // Remind people what the current settings are\n await this.ioHelper.defaults.info(`Execution policies: ${cloudFormationExecutionPolicies.join(', ')}`);\n }\n // * If an ARN is given, that ARN. Otherwise:\n // * '-' if customerKey = false\n // * '' if customerKey = true\n // * if customerKey is also not given\n // * undefined if we already had a value in place (reusing what we had)\n // * '-' if this is the first time we're deploying this stack (or upgrading from old to new bootstrap)\n const currentKmsKeyId = current.parameters.FileAssetsBucketKmsKeyId;\n const kmsKeyId = params.kmsKeyId ??\n (params.createCustomerMasterKey === true\n ? CREATE_NEW_KEY\n : params.createCustomerMasterKey === false || currentKmsKeyId === undefined\n ? USE_AWS_MANAGED_KEY\n : undefined);\n /* A permissions boundary can be provided via:\n * - the flag indicating the example one should be used\n * - the name indicating the custom permissions boundary to be used\n * Re-bootstrapping will NOT be blocked by either tightening or relaxing the permissions' boundary.\n */\n // InputPermissionsBoundary is an `any` type and if it is not defined it\n // appears as an empty string ''. We need to force it to evaluate an empty string\n // as undefined\n const currentPermissionsBoundary = current.parameters.InputPermissionsBoundary || undefined;\n const inputPolicyName = params.examplePermissionsBoundary\n ? CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY\n : params.customPermissionsBoundary;\n let policyName;\n if (inputPolicyName) {\n // If the example policy is not already in place, it must be created.\n const sdk = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForWriting)).sdk;\n policyName = await this.getPolicyName(environment, sdk, inputPolicyName, partition, params);\n }\n if (currentPermissionsBoundary !== policyName) {\n if (!currentPermissionsBoundary) {\n await this.ioHelper.defaults.warn(`Adding new permissions boundary ${policyName}`);\n }\n else if (!policyName) {\n await this.ioHelper.defaults.warn(`Removing existing permissions boundary ${currentPermissionsBoundary}`);\n }\n else {\n await this.ioHelper.defaults.warn(`Changing permissions boundary from ${currentPermissionsBoundary} to ${policyName}`);\n }\n }\n const bootstrapTemplateParameters = {\n FileAssetsBucketName: params.bucketName,\n FileAssetsBucketKmsKeyId: kmsKeyId,\n // Empty array becomes empty string\n TrustedAccounts: trustedAccounts.join(','),\n TrustedAccountsForLookup: trustedAccountsForLookup.join(','),\n CloudFormationExecutionPolicies: cloudFormationExecutionPolicies.join(','),\n Qualifier: params.qualifier,\n PublicAccessBlockConfiguration: params.publicAccessBlockConfiguration || params.publicAccessBlockConfiguration === undefined\n ? 'true'\n : 'false',\n InputPermissionsBoundary: policyName,\n };\n const templateParameters = await this.templateParameters();\n // Conditionally set these parameters: only set these parameters if they are accepted by the template.\n // If we pass them unconditionally, older customized templates that don't know about these\n // parameters yet will fail to deploy.\n if (params.denyExternalId !== undefined) {\n if (!templateParameters.includes('DenyExternalId')) {\n throw new toolkit_error_1.ToolkitError('DenyExternalIdNotSupported', 'The selected bootstrap template does not accept the DenyExternalId parameter');\n }\n bootstrapTemplateParameters.DenyExternalId = `${params.denyExternalId}`;\n }\n return current.update(bootstrapTemplate, bootstrapTemplateParameters, {\n ...options,\n terminationProtection: options.terminationProtection ?? current.terminationProtection,\n });\n }\n async getPolicyName(environment, sdk, permissionsBoundary, partition, params) {\n if (permissionsBoundary !== CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY) {\n this.validatePolicyName(permissionsBoundary);\n return Promise.resolve(permissionsBoundary);\n }\n // if no Qualifier is supplied, resort to the default one\n const arn = await this.getExamplePermissionsBoundary(params.qualifier ?? 'hnb659fds', partition, environment.account, sdk);\n const policyName = arn.split('/').pop();\n if (!policyName) {\n throw new toolkit_error_1.ToolkitError('PermissionBoundaryRetrievalFailed', 'Could not retrieve the example permission boundary!');\n }\n return Promise.resolve(policyName);\n }\n async getExamplePermissionsBoundary(qualifier, partition, account, sdk) {\n const iam = sdk.iam();\n let policyName = `cdk-${qualifier}-permissions-boundary`;\n const arn = `arn:${partition}:iam::${account}:policy/${policyName}`;\n try {\n let getPolicyResp = await iam.getPolicy({ PolicyArn: arn });\n if (getPolicyResp.Policy) {\n return arn;\n }\n }\n catch (e) {\n // https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html#API_GetPolicy_Errors\n if (e.name === 'NoSuchEntity') {\n // noop, proceed with creating the policy\n }\n else {\n throw e;\n }\n }\n const policyDoc = {\n Version: '2012-10-17',\n Statement: [\n {\n Action: ['*'],\n Resource: '*',\n Effect: 'Allow',\n Sid: 'ExplicitAllowAll',\n },\n {\n Condition: {\n StringEquals: {\n 'iam:PermissionsBoundary': `arn:${partition}:iam::${account}:policy/cdk-${qualifier}-permissions-boundary`,\n },\n },\n Action: [\n 'iam:CreateUser',\n 'iam:CreateRole',\n 'iam:PutRolePermissionsBoundary',\n 'iam:PutUserPermissionsBoundary',\n ],\n Resource: '*',\n Effect: 'Allow',\n Sid: 'DenyAccessIfRequiredPermBoundaryIsNotBeingApplied',\n },\n {\n Action: [\n 'iam:CreatePolicyVersion',\n 'iam:DeletePolicy',\n 'iam:DeletePolicyVersion',\n 'iam:SetDefaultPolicyVersion',\n ],\n Resource: `arn:${partition}:iam::${account}:policy/cdk-${qualifier}-permissions-boundary`,\n Effect: 'Deny',\n Sid: 'DenyPermBoundaryIAMPolicyAlteration',\n },\n {\n Action: ['iam:DeleteUserPermissionsBoundary', 'iam:DeleteRolePermissionsBoundary'],\n Resource: '*',\n Effect: 'Deny',\n Sid: 'DenyRemovalOfPermBoundaryFromAnyUserOrRole',\n },\n ],\n };\n const request = {\n PolicyName: policyName,\n PolicyDocument: JSON.stringify(policyDoc),\n };\n const createPolicyResponse = await iam.createPolicy(request);\n if (createPolicyResponse.Policy?.Arn) {\n return createPolicyResponse.Policy.Arn;\n }\n else {\n throw new toolkit_error_1.ToolkitError('PermissionBoundaryCreateFailed', `Could not retrieve the example permission boundary ${arn}!`);\n }\n }\n validatePolicyName(permissionsBoundary) {\n // https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html\n // Added support for policy names with a path\n // See https://github.com/aws/aws-cdk/issues/26320\n const regexp = /[\\w+\\/=,.@-]+/;\n const matches = regexp.exec(permissionsBoundary);\n if (!(matches && matches.length === 1 && matches[0] === permissionsBoundary)) {\n throw new toolkit_error_1.ToolkitError('InvalidPermissionBoundaryName', `The permissions boundary name ${permissionsBoundary} does not match the IAM conventions.`);\n }\n }\n async customBootstrap(environment, sdkProvider, options = {}) {\n // Look at the template, decide whether it's most likely a legacy or modern bootstrap\n // template, and use the right bootstrapper for that.\n const version = (0, deploy_bootstrap_1.bootstrapVersionFromTemplate)(await this.loadTemplate());\n if (version === 0) {\n return this.legacyBootstrap(environment, sdkProvider, options);\n }\n else {\n return this.modernBootstrap(environment, sdkProvider, options);\n }\n }\n /**\n * Return the set of parameter names accepted by the current bootstrapping template\n */\n async templateParameters(legacyParams = {}) {\n const template = await this.loadTemplate(legacyParams);\n return Object.keys(template.Parameters ?? {});\n }\n async loadTemplate(legacyParams = {}) {\n switch (this.source.source) {\n case 'custom':\n return (0, util_1.loadStructuredFile)(this.source.templateFile);\n case 'default':\n return (0, util_1.loadStructuredFile)(path.join((0, util_1.bundledPackageRootDir)(__dirname), 'lib', 'api', 'bootstrap', 'bootstrap-template.yaml'));\n case 'legacy':\n return (0, legacy_template_1.legacyBootstrapTemplate)(legacyParams);\n }\n }\n}\nexports.Bootstrapper = Bootstrapper;\n/**\n * Magic parameter value that will cause the bootstrap-template.yml to NOT create a CMK but use the default key\n */\nconst USE_AWS_MANAGED_KEY = 'AWS_MANAGED_KEY';\n/**\n * Magic parameter value that will cause the bootstrap-template.yml to create a CMK\n */\nconst CREATE_NEW_KEY = '';\n/**\n * Parameter value indicating the use of the default, CDK provided permissions boundary for bootstrap-template.yml\n */\nconst CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY = 'CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY';\n/**\n * Split an array-like CloudFormation parameter on ,\n *\n * An empty string is the empty array (instead of `['']`).\n */\nfunction splitCfnArray(xs) {\n if (xs === '' || xs === undefined) {\n return [];\n }\n return xs.split(',');\n}\nfunction intersection(xs, ys) {\n return new Set(Array.from(xs).filter(x => ys.has(x)));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUc3Qix5REFBa0Y7QUFDbEYsdURBQTREO0FBQzVELCtEQUEyRDtBQUMzRCxxQ0FBMkY7QUFJM0Ysc0NBQWlDO0FBQ2pDLGtEQUE2RDtBQUk3RCxNQUFhLFlBQVk7SUFJSjtJQUhGLFFBQVEsQ0FBVztJQUVwQyxZQUNtQixTQUEwQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFDaEUsUUFBa0I7UUFERCxXQUFNLEdBQU4sTUFBTSxDQUF5QztRQUdoRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU0sb0JBQW9CLENBQ3pCLFdBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLFVBQXVDLEVBQUU7UUFFekMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRSxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDakUsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFhO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBQSx5QkFBa0IsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsZUFBZSxDQUMzQixXQUE4QixFQUM5QixXQUF3QixFQUN4QixVQUF1QyxFQUFFO1FBRXpDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBRXhDLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksNEJBQVksQ0FBQyw4QkFBOEIsRUFBRSxpRUFBaUUsQ0FBQyxDQUFDO1FBQzVILENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksNEJBQVksQ0FBQywwQ0FBMEMsRUFBRSw2RkFBNkYsQ0FBQyxDQUFDO1FBQ3BLLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyx1QkFBdUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqRCxNQUFNLElBQUksNEJBQVksQ0FBQyxvQ0FBb0MsRUFBRSxrRkFBa0YsQ0FBQyxDQUFDO1FBQ25KLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksNEJBQVksQ0FBQyxrQ0FBa0MsRUFBRSxxRUFBcUUsQ0FBQyxDQUFDO1FBQ3BJLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSx5Q0FBMEIsQ0FBQztRQUNoRixNQUFNLE9BQU8sR0FBRyxNQUFNLGlDQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUMvQixFQUFFLEVBQ0Y7WUFDRSxHQUFHLE9BQU87WUFDVixxQkFBcUIsRUFBRSxPQUFPLENBQUMscUJBQXFCLElBQUksT0FBTyxDQUFDLHFCQUFxQjtTQUN0RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssS0FBSyxDQUFDLGVBQWUsQ0FDM0IsV0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsVUFBdUMsRUFBRTtRQUV6QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUV4QyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLHlDQUEwQixDQUFDO1FBQ2hGLE1BQU0sT0FBTyxHQUFHLE1BQU0saUNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkcsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFNUMsSUFBSSxNQUFNLENBQUMsdUJBQXVCLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRSxNQUFNLElBQUksNEJBQVksQ0FDcEIsMEJBQTBCLEVBQzFCLDRHQUE0RyxDQUM3RyxDQUFDO1FBQ0osQ0FBQztRQUVELDBIQUEwSDtRQUMxSCxnSEFBZ0g7UUFDaEgscUhBQXFIO1FBQ3JILHFEQUFxRDtRQUNyRCxFQUFFO1FBQ0YsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSx5RUFBeUU7UUFDekUsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDekIsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUU7WUFDL0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLElBQUksRUFBRTtTQUN6QyxDQUFDLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLGdDQUFnQyxFQUFFLHlEQUF5RCxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5SSxDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FDN0MsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RixNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3JILE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMvQixvQ0FBb0MsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUN6RyxDQUFDO1FBRUYsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQzlDLE1BQU0sQ0FBQyx3QkFBd0IsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUM5RixDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQy9CLGdDQUFnQyx3QkFBd0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUN2SCxDQUFDO1FBRUYsTUFBTSwrQkFBK0IsR0FDbkMsTUFBTSxDQUFDLCtCQUErQixJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDOUcsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakYsb0hBQW9IO1lBQ3BILEVBQUU7WUFDRix5R0FBeUc7WUFDekcsc0RBQXNEO1lBQ3RELEVBQUU7WUFDRixzR0FBc0c7WUFDdEcsZ0VBQWdFO1lBQ2hFLEVBQUU7WUFDRixrQkFBa0I7WUFDbEIsK0JBQStCO1lBQy9CLEVBQUU7WUFDRixrR0FBa0c7WUFDbEcsOEJBQThCO1lBQzlCLE1BQU0sY0FBYyxHQUFHLE9BQU8sU0FBUyxzQ0FBc0MsQ0FBQztZQUM5RSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDL0Isc0NBQXNDLGNBQWMsNkRBQTZELENBQ2xILENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSwrQkFBK0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLDRCQUFZLENBQ3BCLGtDQUFrQyxFQUNsQyx3SkFBd0osU0FBUyxrQ0FBa0MsQ0FDcE0sQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sOENBQThDO1lBQzlDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QiwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsaUNBQWlDO1FBQ2pDLCtCQUErQjtRQUMvQix1Q0FBdUM7UUFDdkMsMkVBQTJFO1FBQzNFLDBHQUEwRztRQUMxRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUNaLE1BQU0sQ0FBQyxRQUFRO1lBQ2YsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEtBQUssSUFBSTtnQkFDdEMsQ0FBQyxDQUFDLGNBQWM7Z0JBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEtBQUssS0FBSyxJQUFJLGVBQWUsS0FBSyxTQUFTO29CQUN6RSxDQUFDLENBQUMsbUJBQW1CO29CQUNyQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkI7Ozs7V0FJRztRQUVILHdFQUF3RTtRQUN4RSxpRkFBaUY7UUFDakYsZUFBZTtRQUNmLE1BQU0sMEJBQTBCLEdBQXVCLE9BQU8sQ0FBQyxVQUFVLENBQUMsd0JBQXdCLElBQUksU0FBUyxDQUFDO1FBQ2hILE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQywwQkFBMEI7WUFDdkQsQ0FBQyxDQUFDLGtDQUFrQztZQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDO1FBQ3JDLElBQUksVUFBOEIsQ0FBQztRQUNuQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLHFFQUFxRTtZQUNyRSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsYUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2pGLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFDRCxJQUFJLDBCQUEwQixLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDL0IsbUNBQW1DLFVBQVUsRUFBRSxDQUNoRCxDQUFDO1lBQ0osQ0FBQztpQkFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMvQiwwQ0FBMEMsMEJBQTBCLEVBQUUsQ0FDdkUsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDL0Isc0NBQXNDLDBCQUEwQixPQUFPLFVBQVUsRUFBRSxDQUNwRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLDJCQUEyQixHQUF1QztZQUN0RSxvQkFBb0IsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUN2Qyx3QkFBd0IsRUFBRSxRQUFRO1lBQ2xDLG1DQUFtQztZQUNuQyxlQUFlLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDMUMsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUM1RCwrQkFBK0IsRUFBRSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQzFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQiw4QkFBOEIsRUFDNUIsTUFBTSxDQUFDLDhCQUE4QixJQUFJLE1BQU0sQ0FBQyw4QkFBOEIsS0FBSyxTQUFTO2dCQUMxRixDQUFDLENBQUMsTUFBTTtnQkFDUixDQUFDLENBQUMsT0FBTztZQUNiLHdCQUF3QixFQUFFLFVBQVU7U0FDckMsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUzRCxzR0FBc0c7UUFDdEcsMEZBQTBGO1FBQzFGLHNDQUFzQztRQUN0QyxJQUFJLE1BQU0sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sSUFBSSw0QkFBWSxDQUFDLDRCQUE0QixFQUFFLDhFQUE4RSxDQUFDLENBQUM7WUFDdkksQ0FBQztZQUNELDJCQUEyQixDQUFDLGNBQWMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxRSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFO1lBQ3BFLEdBQUcsT0FBTztZQUNWLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxPQUFPLENBQUMscUJBQXFCO1NBQ3RGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUN6QixXQUE4QixFQUM5QixHQUFRLEVBQ1IsbUJBQTJCLEVBQzNCLFNBQWlCLEVBQ2pCLE1BQStCO1FBRS9CLElBQUksbUJBQW1CLEtBQUssa0NBQWtDLEVBQUUsQ0FBQztZQUMvRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM3QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QseURBQXlEO1FBQ3pELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixDQUNsRCxNQUFNLENBQUMsU0FBUyxJQUFJLFdBQVcsRUFDL0IsU0FBUyxFQUNULFdBQVcsQ0FBQyxPQUFPLEVBQ25CLEdBQUcsQ0FDSixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLDRCQUFZLENBQUMsbUNBQW1DLEVBQUUscURBQXFELENBQUMsQ0FBQztRQUNySCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxLQUFLLENBQUMsNkJBQTZCLENBQ3pDLFNBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixHQUFRO1FBRVIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksVUFBVSxHQUFHLE9BQU8sU0FBUyx1QkFBdUIsQ0FBQztRQUN6RCxNQUFNLEdBQUcsR0FBRyxPQUFPLFNBQVMsU0FBUyxPQUFPLFdBQVcsVUFBVSxFQUFFLENBQUM7UUFFcEUsSUFBSSxDQUFDO1lBQ0gsSUFBSSxhQUFhLEdBQUcsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDNUQsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLDhGQUE4RjtZQUM5RixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQzlCLHlDQUF5QztZQUMzQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHO1lBQ2hCLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUM7b0JBQ2IsUUFBUSxFQUFFLEdBQUc7b0JBQ2IsTUFBTSxFQUFFLE9BQU87b0JBQ2YsR0FBRyxFQUFFLGtCQUFrQjtpQkFDeEI7Z0JBQ0Q7b0JBQ0UsU0FBUyxFQUFFO3dCQUNULFlBQVksRUFBRTs0QkFDWix5QkFBeUIsRUFBRSxPQUFPLFNBQVMsU0FBUyxPQUFPLGVBQWUsU0FBUyx1QkFBdUI7eUJBQzNHO3FCQUNGO29CQUNELE1BQU0sRUFBRTt3QkFDTixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZ0NBQWdDO3dCQUNoQyxnQ0FBZ0M7cUJBQ2pDO29CQUNELFFBQVEsRUFBRSxHQUFHO29CQUNiLE1BQU0sRUFBRSxPQUFPO29CQUNmLEdBQUcsRUFBRSxtREFBbUQ7aUJBQ3pEO2dCQUNEO29CQUNFLE1BQU0sRUFBRTt3QkFDTix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qiw2QkFBNkI7cUJBQzlCO29CQUNELFFBQVEsRUFBRSxPQUFPLFNBQVMsU0FBUyxPQUFPLGVBQWUsU0FBUyx1QkFBdUI7b0JBQ3pGLE1BQU0sRUFBRSxNQUFNO29CQUNkLEdBQUcsRUFBRSxxQ0FBcUM7aUJBQzNDO2dCQUNEO29CQUNFLE1BQU0sRUFBRSxDQUFDLG1DQUFtQyxFQUFFLG1DQUFtQyxDQUFDO29CQUNsRixRQUFRLEVBQUUsR0FBRztvQkFDYixNQUFNLEVBQUUsTUFBTTtvQkFDZCxHQUFHLEVBQUUsNENBQTRDO2lCQUNsRDthQUNGO1NBQ0YsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHO1lBQ2QsVUFBVSxFQUFFLFVBQVU7WUFDdEIsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1NBQzFDLENBQUM7UUFDRixNQUFNLG9CQUFvQixHQUFHLE1BQU0sR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNyQyxPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDekMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksNEJBQVksQ0FBQyxnQ0FBZ0MsRUFBRSxzREFBc0QsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN6SCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLG1CQUEyQjtRQUNwRCw0RUFBNEU7UUFDNUUsNkNBQTZDO1FBQzdDLGtEQUFrRDtRQUNsRCxNQUFNLE1BQU0sR0FBVyxlQUFlLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQzdFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLCtCQUErQixFQUFFLGlDQUFpQyxtQkFBbUIsc0NBQXNDLENBQUMsQ0FBQztRQUN0SixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlLENBQzNCLFdBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLFVBQXVDLEVBQUU7UUFFekMscUZBQXFGO1FBQ3JGLHFEQUFxRDtRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFBLCtDQUE0QixFQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGtCQUFrQixDQUFDLGVBQXdDLEVBQUU7UUFDekUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXZELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQXdDLEVBQUU7UUFDbkUsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFBLHlCQUFrQixFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSw0QkFBcUIsRUFBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDL0gsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBQSx5Q0FBdUIsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbFlELG9DQWtZQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztBQUU5Qzs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQjs7R0FFRztBQUNILE1BQU0sa0NBQWtDLEdBQUcsb0NBQW9DLENBQUM7QUFFaEY7Ozs7R0FJRztBQUNILFNBQVMsYUFBYSxDQUFDLEVBQXNCO0lBQzNDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBSSxFQUFVLEVBQUUsRUFBVTtJQUM3QyxPQUFPLElBQUksR0FBRyxDQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcEVudmlyb25tZW50T3B0aW9ucywgQm9vdHN0cmFwcGluZ1BhcmFtZXRlcnMgfSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5pbXBvcnQgeyBCb290c3RyYXBTdGFjaywgYm9vdHN0cmFwVmVyc2lvbkZyb21UZW1wbGF0ZSB9IGZyb20gJy4vZGVwbG95LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBsZWdhY3lCb290c3RyYXBUZW1wbGF0ZSB9IGZyb20gJy4vbGVnYWN5LXRlbXBsYXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBidW5kbGVkUGFja2FnZVJvb3REaXIsIGxvYWRTdHJ1Y3R1cmVkRmlsZSwgc2VyaWFsaXplU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESywgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5pbXBvcnQgeyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbmV4cG9ydCB0eXBlIEJvb3RzdHJhcFNvdXJjZSA9IHsgc291cmNlOiAnbGVnYWN5JyB9IHwgeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwcGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IEJvb3RzdHJhcFNvdXJjZSA9IHsgc291cmNlOiAnZGVmYXVsdCcgfSxcbiAgICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICkge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHB1YmxpYyBib290c3RyYXBFbnZpcm9ubWVudChcbiAgICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsXG4gICAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICAgIG9wdGlvbnM6IEJvb3RzdHJhcEVudmlyb25tZW50T3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIHN3aXRjaCAodGhpcy5zb3VyY2Uuc291cmNlKSB7XG4gICAgICBjYXNlICdsZWdhY3knOlxuICAgICAgICByZXR1cm4gdGhpcy5sZWdhY3lCb290c3RyYXAoZW52aXJvbm1lbnQsIHNka1Byb3ZpZGVyLCBvcHRpb25zKTtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICByZXR1cm4gdGhpcy5tb2Rlcm5Cb290c3RyYXAoZW52aXJvbm1lbnQsIHNka1Byb3ZpZGVyLCBvcHRpb25zKTtcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUJvb3RzdHJhcChlbnZpcm9ubWVudCwgc2RrUHJvdmlkZXIsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaG93VGVtcGxhdGUoanNvbjogYm9vbGVhbikge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgdGhpcy5sb2FkVGVtcGxhdGUoKTtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHtzZXJpYWxpemVTdHJ1Y3R1cmUodGVtcGxhdGUsIGpzb24pfVxcbmApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBsZWdhY3kgYm9vdHN0cmFwIHN0YWNrXG4gICAqXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxlZ2FjeUJvb3RzdHJhcChcbiAgICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsXG4gICAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICAgIG9wdGlvbnM6IEJvb3RzdHJhcEVudmlyb25tZW50T3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG9wdGlvbnMucGFyYW1ldGVycyA/PyB7fTtcblxuICAgIGlmIChwYXJhbXMudHJ1c3RlZEFjY291bnRzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RydXN0UmVxdWlyZXNNb2Rlcm5Cb290c3RyYXAnLCAnLS10cnVzdCBjYW4gb25seSBiZSBwYXNzZWQgZm9yIHRoZSBtb2Rlcm4gYm9vdHN0cmFwIGV4cGVyaWVuY2UuJyk7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdFeGVjdXRpb25Qb2xpY2llc1JlcXVpcmVzTW9kZXJuQm9vdHN0cmFwJywgJy0tY2xvdWRmb3JtYXRpb24tZXhlY3V0aW9uLXBvbGljaWVzIGNhbiBvbmx5IGJlIHBhc3NlZCBmb3IgdGhlIG1vZGVybiBib290c3RyYXAgZXhwZXJpZW5jZS4nKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5jcmVhdGVDdXN0b21lck1hc3RlcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDdXN0b21lcktleVJlcXVpcmVzTW9kZXJuQm9vdHN0cmFwJywgJy0tYm9vdHN0cmFwLWN1c3RvbWVyLWtleSBjYW4gb25seSBiZSBwYXNzZWQgZm9yIHRoZSBtb2Rlcm4gYm9vdHN0cmFwIGV4cGVyaWVuY2UuJyk7XG4gICAgfVxuICAgIGlmIChwYXJhbXMucXVhbGlmaWVyKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdRdWFsaWZpZXJSZXF1aXJlc01vZGVybkJvb3RzdHJhcCcsICctLXF1YWxpZmllciBjYW4gb25seSBiZSBwYXNzZWQgZm9yIHRoZSBtb2Rlcm4gYm9vdHN0cmFwIGV4cGVyaWVuY2UuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9vbGtpdFN0YWNrTmFtZSA9IG9wdGlvbnMudG9vbGtpdFN0YWNrTmFtZSA/PyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRTtcbiAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgQm9vdHN0cmFwU3RhY2subG9va3VwKHNka1Byb3ZpZGVyLCBlbnZpcm9ubWVudCwgdG9vbGtpdFN0YWNrTmFtZSwgdGhpcy5pb0hlbHBlcik7XG4gICAgcmV0dXJuIGN1cnJlbnQudXBkYXRlKFxuICAgICAgYXdhaXQgdGhpcy5sb2FkVGVtcGxhdGUocGFyYW1zKSxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IG9wdGlvbnMudGVybWluYXRpb25Qcm90ZWN0aW9uID8/IGN1cnJlbnQudGVybWluYXRpb25Qcm90ZWN0aW9uLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBDSS9DRC1yZWFkeSBib290c3RyYXAgc3RhY2sgZnJvbSB0ZW1wbGF0ZVxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBtb2Rlcm5Cb290c3RyYXAoXG4gICAgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LFxuICAgIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgICBvcHRpb25zOiBCb290c3RyYXBFbnZpcm9ubWVudE9wdGlvbnMgPSB7fSxcbiAgKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBvcHRpb25zLnBhcmFtZXRlcnMgPz8ge307XG5cbiAgICBjb25zdCBib290c3RyYXBUZW1wbGF0ZSA9IGF3YWl0IHRoaXMubG9hZFRlbXBsYXRlKCk7XG5cbiAgICBjb25zdCB0b29sa2l0U3RhY2tOYW1lID0gb3B0aW9ucy50b29sa2l0U3RhY2tOYW1lID8/IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCBCb290c3RyYXBTdGFjay5sb29rdXAoc2RrUHJvdmlkZXIsIGVudmlyb25tZW50LCB0b29sa2l0U3RhY2tOYW1lLCB0aGlzLmlvSGVscGVyKTtcbiAgICBjb25zdCBwYXJ0aXRpb24gPSBhd2FpdCBjdXJyZW50LnBhcnRpdGlvbigpO1xuXG4gICAgaWYgKHBhcmFtcy5jcmVhdGVDdXN0b21lck1hc3RlcktleSAhPT0gdW5kZWZpbmVkICYmIHBhcmFtcy5rbXNLZXlJZCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgJ0NvbmZsaWN0aW5nS21zS2V5T3B0aW9ucycsXG4gICAgICAgIFwiWW91IGNhbm5vdCBwYXNzICctLWJvb3RzdHJhcC1rbXMta2V5LWlkJyBhbmQgJy0tYm9vdHN0cmFwLWN1c3RvbWVyLWtleScgdG9nZXRoZXIuIFNwZWNpZnkgb25lIG9yIHRoZSBvdGhlclwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBJZiBwZW9wbGUgcmUtYm9vdHN0cmFwLCBleGlzdGluZyBwYXJhbWV0ZXIgdmFsdWVzIGFyZSByZXVzZWQgc28gdGhhdCBwZW9wbGUgZG9uJ3QgYWNjaWRlbnRhbGx5IGNoYW5nZSB0aGUgY29uZmlndXJhdGlvblxuICAgIC8vIG9uIHRoZWlyIGJvb3RzdHJhcCBzdGFjayAodGhpcyBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgaW4gZGVwbG95U3RhY2spLiBIb3dldmVyLCB0byBkbyBwcm9wZXIgdmFsaWRhdGlvbiBvbiB0aGVcbiAgICAvLyBjb21iaW5lZCBhcmd1bWVudHMgKHN1Y2ggdGhhdCBpZiAtLXRydXN0IGhhcyBiZWVuIGdpdmVuLCAtLWNsb3VkZm9ybWF0aW9uLWV4ZWN1dGlvbi1wb2xpY2llcyBpcyBuZWNlc3NhcnkgYXMgd2VsbClcbiAgICAvLyB3ZSBuZWVkIHRvIHRha2UgdGhpcyBwYXJhbWV0ZXIgcmV1c2UgaW50byBhY2NvdW50LlxuICAgIC8vXG4gICAgLy8gSWRlYWxseSB3ZSdkIGRvIHRoaXMgaW5zaWRlIHRoZSB0ZW1wbGF0ZSwgYnV0IHRoZSBgUnVsZXNgIHNlY3Rpb24gb2YgQ0ZOXG4gICAgLy8gdGVtcGxhdGVzIGRvZXNuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIGV4cHJlc3MgdGhlIGNvbmRpdGlvbnMgdGhhdCB3ZSBuZWVkXG4gICAgLy8gKGNhbid0IHVzZSBGbjo6Sm9pbiBvciByZWZlcmVuY2UgQ29uZGl0aW9ucykgc28gd2UgZG8gaXQgaGVyZSBpbnN0ZWFkLlxuICAgIGNvbnN0IGFsbFRydXN0ZWQgPSBuZXcgU2V0KFtcbiAgICAgIC4uLnBhcmFtcy50cnVzdGVkQWNjb3VudHMgPz8gW10sXG4gICAgICAuLi5wYXJhbXMudHJ1c3RlZEFjY291bnRzRm9yTG9va3VwID8/IFtdLFxuICAgIF0pO1xuICAgIGNvbnN0IGludmFsaWQgPSBpbnRlcnNlY3Rpb24oYWxsVHJ1c3RlZCwgbmV3IFNldChwYXJhbXMudW50cnVzdGVkQWNjb3VudHMpKTtcbiAgICBpZiAoaW52YWxpZC5zaXplID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQWNjb3VudEJvdGhUcnVzdGVkQW5kVW50cnVzdGVkJywgYEFjY291bnRzIGNhbm5vdCBiZSBib3RoIHRydXN0ZWQgYW5kIHVudHJ1c3RlZC4gRm91bmQ6ICR7Wy4uLmludmFsaWRdLmpvaW4oJywnKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZW1vdmVVbnRydXN0ZWQgPSAoYWNjb3VudHM6IHN0cmluZ1tdKSA9PlxuICAgICAgYWNjb3VudHMuZmlsdGVyKGFjYyA9PiAhcGFyYW1zLnVudHJ1c3RlZEFjY291bnRzPy5tYXAoU3RyaW5nKS5pbmNsdWRlcyhTdHJpbmcoYWNjKSkpO1xuXG4gICAgY29uc3QgdHJ1c3RlZEFjY291bnRzID0gcmVtb3ZlVW50cnVzdGVkKHBhcmFtcy50cnVzdGVkQWNjb3VudHMgPz8gc3BsaXRDZm5BcnJheShjdXJyZW50LnBhcmFtZXRlcnMuVHJ1c3RlZEFjY291bnRzKSk7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5pbmZvKFxuICAgICAgYFRydXN0ZWQgYWNjb3VudHMgZm9yIGRlcGxveW1lbnQ6ICR7dHJ1c3RlZEFjY291bnRzLmxlbmd0aCA+IDAgPyB0cnVzdGVkQWNjb3VudHMuam9pbignLCAnKSA6ICcobm9uZSknfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cCA9IHJlbW92ZVVudHJ1c3RlZChcbiAgICAgIHBhcmFtcy50cnVzdGVkQWNjb3VudHNGb3JMb29rdXAgPz8gc3BsaXRDZm5BcnJheShjdXJyZW50LnBhcmFtZXRlcnMuVHJ1c3RlZEFjY291bnRzRm9yTG9va3VwKSxcbiAgICApO1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhcbiAgICAgIGBUcnVzdGVkIGFjY291bnRzIGZvciBsb29rdXA6ICR7dHJ1c3RlZEFjY291bnRzRm9yTG9va3VwLmxlbmd0aCA+IDAgPyB0cnVzdGVkQWNjb3VudHNGb3JMb29rdXAuam9pbignLCAnKSA6ICcobm9uZSknfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXMgPVxuICAgICAgcGFyYW1zLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXMgPz8gc3BsaXRDZm5BcnJheShjdXJyZW50LnBhcmFtZXRlcnMuQ2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcyk7XG4gICAgaWYgKHRydXN0ZWRBY2NvdW50cy5sZW5ndGggPT09IDAgJiYgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIEZvciBzZWxmLXRydXN0IGl0J3Mgb2theSB0byBkZWZhdWx0IHRvIEFkbWluaXN0cmF0b3JBY2Nlc3MsIGFuZCBpdCBpbXByb3ZlcyB0aGUgdXNhYmlsaXR5IG9mIGJvb3RzdHJhcHBpbmcgYSBsb3QuXG4gICAgICAvL1xuICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgbWFrZSB0aGUgaW1wbGljaXRseSBwb2xpY3kgYSBwaHlzaWNhbCBwYXJhbWV0ZXIuIFRoZSB0ZW1wbGF0ZSB3aWxsIGluZmVyIGl0IGluc3RlYWQsXG4gICAgICAvLyB3ZSBzaW1wbHkgZG8gdGhlIFVJIGFkdmVydGlzaW5nIHRoYXQgYmVoYXZpb3IgaGVyZS5cbiAgICAgIC8vXG4gICAgICAvLyBJZiB3ZSBESUQgbWFrZSBpdCBhbiBleHBsaWNpdCBwYXJhbWV0ZXIsIHdlIHdvdWxkbid0IGJlIGFibGUgdG8gdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHdoZXRoZXJcbiAgICAgIC8vIHdlIGluZmVycmVkIGl0IG9yIHdoZXRoZXIgdGhlIHVzZXIgdG9sZCB1cywgYW5kIHRoZSBzZXF1ZW5jZTpcbiAgICAgIC8vXG4gICAgICAvLyAkIGNkayBib290c3RyYXBcbiAgICAgIC8vICQgY2RrIGJvb3RzdHJhcCAtLXRydXN0IDEyMzRcbiAgICAgIC8vXG4gICAgICAvLyBXb3VsZCBsZWF2ZSBBZG1pbmlzdHJhdG9yQWNjZXNzIHBvbGljaWVzIHdpdGggYSB0cnVzdCByZWxhdGlvbnNoaXAsIHdpdGhvdXQgdGhlIHVzZXIgZXhwbGljaXRseVxuICAgICAgLy8gYXBwcm92aW5nIHRoZSB0cnVzdCBwb2xpY3kuXG4gICAgICBjb25zdCBpbXBsaWNpdFBvbGljeSA9IGBhcm46JHtwYXJ0aXRpb259OmlhbTo6YXdzOnBvbGljeS9BZG1pbmlzdHJhdG9yQWNjZXNzYDtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgYFVzaW5nIGRlZmF1bHQgZXhlY3V0aW9uIHBvbGljeSBvZiAnJHtpbXBsaWNpdFBvbGljeX0nLiBQYXNzICctLWNsb3VkZm9ybWF0aW9uLWV4ZWN1dGlvbi1wb2xpY2llcycgdG8gY3VzdG9taXplLmAsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdNaXNzaW5nRXhlY3V0aW9uUG9saWNpZXNGb3JUcnVzdCcsXG4gICAgICAgIGBQbGVhc2UgcGFzcyBcXCctLWNsb3VkZm9ybWF0aW9uLWV4ZWN1dGlvbi1wb2xpY2llc1xcJyB3aGVuIHVzaW5nIFxcJy0tdHJ1c3RcXCcgdG8gc3BlY2lmeSBkZXBsb3ltZW50IHBlcm1pc3Npb25zLiBUcnkgYSBtYW5hZ2VkIHBvbGljeSBvZiB0aGUgZm9ybSBcXCdhcm46JHtwYXJ0aXRpb259OmlhbTo6YXdzOnBvbGljeS88UG9saWN5TmFtZT5cXCcuYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbWluZCBwZW9wbGUgd2hhdCB0aGUgY3VycmVudCBzZXR0aW5ncyBhcmVcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgRXhlY3V0aW9uIHBvbGljaWVzOiAke2Nsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXMuam9pbignLCAnKX1gKTtcbiAgICB9XG5cbiAgICAvLyAqIElmIGFuIEFSTiBpcyBnaXZlbiwgdGhhdCBBUk4uIE90aGVyd2lzZTpcbiAgICAvLyAgICogJy0nIGlmIGN1c3RvbWVyS2V5ID0gZmFsc2VcbiAgICAvLyAgICogJycgaWYgY3VzdG9tZXJLZXkgPSB0cnVlXG4gICAgLy8gICAqIGlmIGN1c3RvbWVyS2V5IGlzIGFsc28gbm90IGdpdmVuXG4gICAgLy8gICAgICogdW5kZWZpbmVkIGlmIHdlIGFscmVhZHkgaGFkIGEgdmFsdWUgaW4gcGxhY2UgKHJldXNpbmcgd2hhdCB3ZSBoYWQpXG4gICAgLy8gICAgICogJy0nIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UncmUgZGVwbG95aW5nIHRoaXMgc3RhY2sgKG9yIHVwZ3JhZGluZyBmcm9tIG9sZCB0byBuZXcgYm9vdHN0cmFwKVxuICAgIGNvbnN0IGN1cnJlbnRLbXNLZXlJZCA9IGN1cnJlbnQucGFyYW1ldGVycy5GaWxlQXNzZXRzQnVja2V0S21zS2V5SWQ7XG4gICAgY29uc3Qga21zS2V5SWQgPVxuICAgICAgcGFyYW1zLmttc0tleUlkID8/XG4gICAgICAocGFyYW1zLmNyZWF0ZUN1c3RvbWVyTWFzdGVyS2V5ID09PSB0cnVlXG4gICAgICAgID8gQ1JFQVRFX05FV19LRVlcbiAgICAgICAgOiBwYXJhbXMuY3JlYXRlQ3VzdG9tZXJNYXN0ZXJLZXkgPT09IGZhbHNlIHx8IGN1cnJlbnRLbXNLZXlJZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBVU0VfQVdTX01BTkFHRURfS0VZXG4gICAgICAgICAgOiB1bmRlZmluZWQpO1xuXG4gICAgLyogQSBwZXJtaXNzaW9ucyBib3VuZGFyeSBjYW4gYmUgcHJvdmlkZWQgdmlhOlxuICAgICAqICAgIC0gdGhlIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhhbXBsZSBvbmUgc2hvdWxkIGJlIHVzZWRcbiAgICAgKiAgICAtIHRoZSBuYW1lIGluZGljYXRpbmcgdGhlIGN1c3RvbSBwZXJtaXNzaW9ucyBib3VuZGFyeSB0byBiZSB1c2VkXG4gICAgICogUmUtYm9vdHN0cmFwcGluZyB3aWxsIE5PVCBiZSBibG9ja2VkIGJ5IGVpdGhlciB0aWdodGVuaW5nIG9yIHJlbGF4aW5nIHRoZSBwZXJtaXNzaW9ucycgYm91bmRhcnkuXG4gICAgICovXG5cbiAgICAvLyBJbnB1dFBlcm1pc3Npb25zQm91bmRhcnkgaXMgYW4gYGFueWAgdHlwZSBhbmQgaWYgaXQgaXMgbm90IGRlZmluZWQgaXRcbiAgICAvLyBhcHBlYXJzIGFzIGFuIGVtcHR5IHN0cmluZyAnJy4gV2UgbmVlZCB0byBmb3JjZSBpdCB0byBldmFsdWF0ZSBhbiBlbXB0eSBzdHJpbmdcbiAgICAvLyBhcyB1bmRlZmluZWRcbiAgICBjb25zdCBjdXJyZW50UGVybWlzc2lvbnNCb3VuZGFyeTogc3RyaW5nIHwgdW5kZWZpbmVkID0gY3VycmVudC5wYXJhbWV0ZXJzLklucHV0UGVybWlzc2lvbnNCb3VuZGFyeSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgaW5wdXRQb2xpY3lOYW1lID0gcGFyYW1zLmV4YW1wbGVQZXJtaXNzaW9uc0JvdW5kYXJ5XG4gICAgICA/IENES19CT09UU1RSQVBfUEVSTUlTU0lPTlNfQk9VTkRBUllcbiAgICAgIDogcGFyYW1zLmN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk7XG4gICAgbGV0IHBvbGljeU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAoaW5wdXRQb2xpY3lOYW1lKSB7XG4gICAgICAvLyBJZiB0aGUgZXhhbXBsZSBwb2xpY3kgaXMgbm90IGFscmVhZHkgaW4gcGxhY2UsIGl0IG11c3QgYmUgY3JlYXRlZC5cbiAgICAgIGNvbnN0IHNkayA9IChhd2FpdCBzZGtQcm92aWRlci5mb3JFbnZpcm9ubWVudChlbnZpcm9ubWVudCwgTW9kZS5Gb3JXcml0aW5nKSkuc2RrO1xuICAgICAgcG9saWN5TmFtZSA9IGF3YWl0IHRoaXMuZ2V0UG9saWN5TmFtZShlbnZpcm9ubWVudCwgc2RrLCBpbnB1dFBvbGljeU5hbWUsIHBhcnRpdGlvbiwgcGFyYW1zKTtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRQZXJtaXNzaW9uc0JvdW5kYXJ5ICE9PSBwb2xpY3lOYW1lKSB7XG4gICAgICBpZiAoIWN1cnJlbnRQZXJtaXNzaW9uc0JvdW5kYXJ5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBgQWRkaW5nIG5ldyBwZXJtaXNzaW9ucyBib3VuZGFyeSAke3BvbGljeU5hbWV9YCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoIXBvbGljeU5hbWUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIGBSZW1vdmluZyBleGlzdGluZyBwZXJtaXNzaW9ucyBib3VuZGFyeSAke2N1cnJlbnRQZXJtaXNzaW9uc0JvdW5kYXJ5fWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgYENoYW5naW5nIHBlcm1pc3Npb25zIGJvdW5kYXJ5IGZyb20gJHtjdXJyZW50UGVybWlzc2lvbnNCb3VuZGFyeX0gdG8gJHtwb2xpY3lOYW1lfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYm9vdHN0cmFwVGVtcGxhdGVQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+ID0ge1xuICAgICAgRmlsZUFzc2V0c0J1Y2tldE5hbWU6IHBhcmFtcy5idWNrZXROYW1lLFxuICAgICAgRmlsZUFzc2V0c0J1Y2tldEttc0tleUlkOiBrbXNLZXlJZCxcbiAgICAgIC8vIEVtcHR5IGFycmF5IGJlY29tZXMgZW1wdHkgc3RyaW5nXG4gICAgICBUcnVzdGVkQWNjb3VudHM6IHRydXN0ZWRBY2NvdW50cy5qb2luKCcsJyksXG4gICAgICBUcnVzdGVkQWNjb3VudHNGb3JMb29rdXA6IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cC5qb2luKCcsJyksXG4gICAgICBDbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblBvbGljaWVzOiBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblBvbGljaWVzLmpvaW4oJywnKSxcbiAgICAgIFF1YWxpZmllcjogcGFyYW1zLnF1YWxpZmllcixcbiAgICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjpcbiAgICAgICAgcGFyYW1zLnB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbiB8fCBwYXJhbXMucHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/ICd0cnVlJ1xuICAgICAgICAgIDogJ2ZhbHNlJyxcbiAgICAgIElucHV0UGVybWlzc2lvbnNCb3VuZGFyeTogcG9saWN5TmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdGVtcGxhdGVQYXJhbWV0ZXJzID0gYXdhaXQgdGhpcy50ZW1wbGF0ZVBhcmFtZXRlcnMoKTtcblxuICAgIC8vIENvbmRpdGlvbmFsbHkgc2V0IHRoZXNlIHBhcmFtZXRlcnM6IG9ubHkgc2V0IHRoZXNlIHBhcmFtZXRlcnMgaWYgdGhleSBhcmUgYWNjZXB0ZWQgYnkgdGhlIHRlbXBsYXRlLlxuICAgIC8vIElmIHdlIHBhc3MgdGhlbSB1bmNvbmRpdGlvbmFsbHksIG9sZGVyIGN1c3RvbWl6ZWQgdGVtcGxhdGVzIHRoYXQgZG9uJ3Qga25vdyBhYm91dCB0aGVzZVxuICAgIC8vIHBhcmFtZXRlcnMgeWV0IHdpbGwgZmFpbCB0byBkZXBsb3kuXG4gICAgaWYgKHBhcmFtcy5kZW55RXh0ZXJuYWxJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIXRlbXBsYXRlUGFyYW1ldGVycy5pbmNsdWRlcygnRGVueUV4dGVybmFsSWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEZW55RXh0ZXJuYWxJZE5vdFN1cHBvcnRlZCcsICdUaGUgc2VsZWN0ZWQgYm9vdHN0cmFwIHRlbXBsYXRlIGRvZXMgbm90IGFjY2VwdCB0aGUgRGVueUV4dGVybmFsSWQgcGFyYW1ldGVyJyk7XG4gICAgICB9XG4gICAgICBib290c3RyYXBUZW1wbGF0ZVBhcmFtZXRlcnMuRGVueUV4dGVybmFsSWQgPSBgJHtwYXJhbXMuZGVueUV4dGVybmFsSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudC51cGRhdGUoYm9vdHN0cmFwVGVtcGxhdGUsIGJvb3RzdHJhcFRlbXBsYXRlUGFyYW1ldGVycywge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHRlcm1pbmF0aW9uUHJvdGVjdGlvbjogb3B0aW9ucy50ZXJtaW5hdGlvblByb3RlY3Rpb24gPz8gY3VycmVudC50ZXJtaW5hdGlvblByb3RlY3Rpb24sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFBvbGljeU5hbWUoXG4gICAgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LFxuICAgIHNkazogU0RLLFxuICAgIHBlcm1pc3Npb25zQm91bmRhcnk6IHN0cmluZyxcbiAgICBwYXJ0aXRpb246IHN0cmluZyxcbiAgICBwYXJhbXM6IEJvb3RzdHJhcHBpbmdQYXJhbWV0ZXJzLFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmIChwZXJtaXNzaW9uc0JvdW5kYXJ5ICE9PSBDREtfQk9PVFNUUkFQX1BFUk1JU1NJT05TX0JPVU5EQVJZKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlUG9saWN5TmFtZShwZXJtaXNzaW9uc0JvdW5kYXJ5KTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocGVybWlzc2lvbnNCb3VuZGFyeSk7XG4gICAgfVxuICAgIC8vIGlmIG5vIFF1YWxpZmllciBpcyBzdXBwbGllZCwgcmVzb3J0IHRvIHRoZSBkZWZhdWx0IG9uZVxuICAgIGNvbnN0IGFybiA9IGF3YWl0IHRoaXMuZ2V0RXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnkoXG4gICAgICBwYXJhbXMucXVhbGlmaWVyID8/ICdobmI2NTlmZHMnLFxuICAgICAgcGFydGl0aW9uLFxuICAgICAgZW52aXJvbm1lbnQuYWNjb3VudCxcbiAgICAgIHNkayxcbiAgICApO1xuICAgIGNvbnN0IHBvbGljeU5hbWUgPSBhcm4uc3BsaXQoJy8nKS5wb3AoKTtcbiAgICBpZiAoIXBvbGljeU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Blcm1pc3Npb25Cb3VuZGFyeVJldHJpZXZhbEZhaWxlZCcsICdDb3VsZCBub3QgcmV0cmlldmUgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBib3VuZGFyeSEnKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwb2xpY3lOYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnkoXG4gICAgcXVhbGlmaWVyOiBzdHJpbmcsXG4gICAgcGFydGl0aW9uOiBzdHJpbmcsXG4gICAgYWNjb3VudDogc3RyaW5nLFxuICAgIHNkazogU0RLLFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGlhbSA9IHNkay5pYW0oKTtcblxuICAgIGxldCBwb2xpY3lOYW1lID0gYGNkay0ke3F1YWxpZmllcn0tcGVybWlzc2lvbnMtYm91bmRhcnlgO1xuICAgIGNvbnN0IGFybiA9IGBhcm46JHtwYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpwb2xpY3kvJHtwb2xpY3lOYW1lfWA7XG5cbiAgICB0cnkge1xuICAgICAgbGV0IGdldFBvbGljeVJlc3AgPSBhd2FpdCBpYW0uZ2V0UG9saWN5KHsgUG9saWN5QXJuOiBhcm4gfSk7XG4gICAgICBpZiAoZ2V0UG9saWN5UmVzcC5Qb2xpY3kpIHtcbiAgICAgICAgcmV0dXJuIGFybjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0UG9saWN5Lmh0bWwjQVBJX0dldFBvbGljeV9FcnJvcnNcbiAgICAgIGlmIChlLm5hbWUgPT09ICdOb1N1Y2hFbnRpdHknKSB7XG4gICAgICAgIC8vIG5vb3AsIHByb2NlZWQgd2l0aCBjcmVhdGluZyB0aGUgcG9saWN5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvbGljeURvYyA9IHtcbiAgICAgIFZlcnNpb246ICcyMDEyLTEwLTE3JyxcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBbJyonXSxcbiAgICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBTaWQ6ICdFeHBsaWNpdEFsbG93QWxsJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIENvbmRpdGlvbjoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdpYW06UGVybWlzc2lvbnNCb3VuZGFyeSc6IGBhcm46JHtwYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpwb2xpY3kvY2RrLSR7cXVhbGlmaWVyfS1wZXJtaXNzaW9ucy1ib3VuZGFyeWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAnaWFtOkNyZWF0ZVVzZXInLFxuICAgICAgICAgICAgJ2lhbTpDcmVhdGVSb2xlJyxcbiAgICAgICAgICAgICdpYW06UHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnknLFxuICAgICAgICAgICAgJ2lhbTpQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBTaWQ6ICdEZW55QWNjZXNzSWZSZXF1aXJlZFBlcm1Cb3VuZGFyeUlzTm90QmVpbmdBcHBsaWVkJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogW1xuICAgICAgICAgICAgJ2lhbTpDcmVhdGVQb2xpY3lWZXJzaW9uJyxcbiAgICAgICAgICAgICdpYW06RGVsZXRlUG9saWN5JyxcbiAgICAgICAgICAgICdpYW06RGVsZXRlUG9saWN5VmVyc2lvbicsXG4gICAgICAgICAgICAnaWFtOlNldERlZmF1bHRQb2xpY3lWZXJzaW9uJyxcbiAgICAgICAgICBdLFxuICAgICAgICAgIFJlc291cmNlOiBgYXJuOiR7cGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cG9saWN5L2Nkay0ke3F1YWxpZmllcn0tcGVybWlzc2lvbnMtYm91bmRhcnlgLFxuICAgICAgICAgIEVmZmVjdDogJ0RlbnknLFxuICAgICAgICAgIFNpZDogJ0RlbnlQZXJtQm91bmRhcnlJQU1Qb2xpY3lBbHRlcmF0aW9uJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogWydpYW06RGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnknLCAnaWFtOkRlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5J10sXG4gICAgICAgICAgUmVzb3VyY2U6ICcqJyxcbiAgICAgICAgICBFZmZlY3Q6ICdEZW55JyxcbiAgICAgICAgICBTaWQ6ICdEZW55UmVtb3ZhbE9mUGVybUJvdW5kYXJ5RnJvbUFueVVzZXJPclJvbGUnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBQb2xpY3lOYW1lOiBwb2xpY3lOYW1lLFxuICAgICAgUG9saWN5RG9jdW1lbnQ6IEpTT04uc3RyaW5naWZ5KHBvbGljeURvYyksXG4gICAgfTtcbiAgICBjb25zdCBjcmVhdGVQb2xpY3lSZXNwb25zZSA9IGF3YWl0IGlhbS5jcmVhdGVQb2xpY3kocmVxdWVzdCk7XG4gICAgaWYgKGNyZWF0ZVBvbGljeVJlc3BvbnNlLlBvbGljeT8uQXJuKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUG9saWN5UmVzcG9uc2UuUG9saWN5LkFybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignUGVybWlzc2lvbkJvdW5kYXJ5Q3JlYXRlRmFpbGVkJywgYENvdWxkIG5vdCByZXRyaWV2ZSB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGJvdW5kYXJ5ICR7YXJufSFgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUG9saWN5TmFtZShwZXJtaXNzaW9uc0JvdW5kYXJ5OiBzdHJpbmcpIHtcbiAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVBvbGljeS5odG1sXG4gICAgLy8gQWRkZWQgc3VwcG9ydCBmb3IgcG9saWN5IG5hbWVzIHdpdGggYSBwYXRoXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMjYzMjBcbiAgICBjb25zdCByZWdleHA6IFJlZ0V4cCA9IC9bXFx3K1xcLz0sLkAtXSsvO1xuICAgIGNvbnN0IG1hdGNoZXMgPSByZWdleHAuZXhlYyhwZXJtaXNzaW9uc0JvdW5kYXJ5KTtcbiAgICBpZiAoIShtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID09PSAxICYmIG1hdGNoZXNbMF0gPT09IHBlcm1pc3Npb25zQm91bmRhcnkpKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbnZhbGlkUGVybWlzc2lvbkJvdW5kYXJ5TmFtZScsIGBUaGUgcGVybWlzc2lvbnMgYm91bmRhcnkgbmFtZSAke3Blcm1pc3Npb25zQm91bmRhcnl9IGRvZXMgbm90IG1hdGNoIHRoZSBJQU0gY29udmVudGlvbnMuYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjdXN0b21Cb290c3RyYXAoXG4gICAgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LFxuICAgIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgICBvcHRpb25zOiBCb290c3RyYXBFbnZpcm9ubWVudE9wdGlvbnMgPSB7fSxcbiAgKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICAvLyBMb29rIGF0IHRoZSB0ZW1wbGF0ZSwgZGVjaWRlIHdoZXRoZXIgaXQncyBtb3N0IGxpa2VseSBhIGxlZ2FjeSBvciBtb2Rlcm4gYm9vdHN0cmFwXG4gICAgLy8gdGVtcGxhdGUsIGFuZCB1c2UgdGhlIHJpZ2h0IGJvb3RzdHJhcHBlciBmb3IgdGhhdC5cbiAgICBjb25zdCB2ZXJzaW9uID0gYm9vdHN0cmFwVmVyc2lvbkZyb21UZW1wbGF0ZShhd2FpdCB0aGlzLmxvYWRUZW1wbGF0ZSgpKTtcbiAgICBpZiAodmVyc2lvbiA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMubGVnYWN5Qm9vdHN0cmFwKGVudmlyb25tZW50LCBzZGtQcm92aWRlciwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVybkJvb3RzdHJhcChlbnZpcm9ubWVudCwgc2RrUHJvdmlkZXIsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNldCBvZiBwYXJhbWV0ZXIgbmFtZXMgYWNjZXB0ZWQgYnkgdGhlIGN1cnJlbnQgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0ZW1wbGF0ZVBhcmFtZXRlcnMobGVnYWN5UGFyYW1zOiBCb290c3RyYXBwaW5nUGFyYW1ldGVycyA9IHt9KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgdGhpcy5sb2FkVGVtcGxhdGUobGVnYWN5UGFyYW1zKTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyh0ZW1wbGF0ZS5QYXJhbWV0ZXJzID8/IHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFRlbXBsYXRlKGxlZ2FjeVBhcmFtczogQm9vdHN0cmFwcGluZ1BhcmFtZXRlcnMgPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgc3dpdGNoICh0aGlzLnNvdXJjZS5zb3VyY2UpIHtcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgIHJldHVybiBsb2FkU3RydWN0dXJlZEZpbGUodGhpcy5zb3VyY2UudGVtcGxhdGVGaWxlKTtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICByZXR1cm4gbG9hZFN0cnVjdHVyZWRGaWxlKHBhdGguam9pbihidW5kbGVkUGFja2FnZVJvb3REaXIoX19kaXJuYW1lKSwgJ2xpYicsICdhcGknLCAnYm9vdHN0cmFwJywgJ2Jvb3RzdHJhcC10ZW1wbGF0ZS55YW1sJykpO1xuICAgICAgY2FzZSAnbGVnYWN5JzpcbiAgICAgICAgcmV0dXJuIGxlZ2FjeUJvb3RzdHJhcFRlbXBsYXRlKGxlZ2FjeVBhcmFtcyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTWFnaWMgcGFyYW1ldGVyIHZhbHVlIHRoYXQgd2lsbCBjYXVzZSB0aGUgYm9vdHN0cmFwLXRlbXBsYXRlLnltbCB0byBOT1QgY3JlYXRlIGEgQ01LIGJ1dCB1c2UgdGhlIGRlZmF1bHQga2V5XG4gKi9cbmNvbnN0IFVTRV9BV1NfTUFOQUdFRF9LRVkgPSAnQVdTX01BTkFHRURfS0VZJztcblxuLyoqXG4gKiBNYWdpYyBwYXJhbWV0ZXIgdmFsdWUgdGhhdCB3aWxsIGNhdXNlIHRoZSBib290c3RyYXAtdGVtcGxhdGUueW1sIHRvIGNyZWF0ZSBhIENNS1xuICovXG5jb25zdCBDUkVBVEVfTkVXX0tFWSA9ICcnO1xuLyoqXG4gKiBQYXJhbWV0ZXIgdmFsdWUgaW5kaWNhdGluZyB0aGUgdXNlIG9mIHRoZSBkZWZhdWx0LCBDREsgcHJvdmlkZWQgcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcC10ZW1wbGF0ZS55bWxcbiAqL1xuY29uc3QgQ0RLX0JPT1RTVFJBUF9QRVJNSVNTSU9OU19CT1VOREFSWSA9ICdDREtfQk9PVFNUUkFQX1BFUk1JU1NJT05TX0JPVU5EQVJZJztcblxuLyoqXG4gKiBTcGxpdCBhbiBhcnJheS1saWtlIENsb3VkRm9ybWF0aW9uIHBhcmFtZXRlciBvbiAsXG4gKlxuICogQW4gZW1wdHkgc3RyaW5nIGlzIHRoZSBlbXB0eSBhcnJheSAoaW5zdGVhZCBvZiBgWycnXWApLlxuICovXG5mdW5jdGlvbiBzcGxpdENmbkFycmF5KHhzOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gIGlmICh4cyA9PT0gJycgfHwgeHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4geHMuc3BsaXQoJywnKTtcbn1cblxuZnVuY3Rpb24gaW50ZXJzZWN0aW9uPEE+KHhzOiBTZXQ8QT4sIHlzOiBTZXQ8QT4pOiBTZXQ8QT4ge1xuICByZXR1cm4gbmV3IFNldDxBPihBcnJheS5mcm9tKHhzKS5maWx0ZXIoeCA9PiB5cy5oYXMoeCkpKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_BOOTSTRAP_VARIANT = exports.BOOTSTRAP_VARIANT_PARAMETER = exports.BOOTSTRAP_VERSION_RESOURCE = exports.BOOTSTRAP_VERSION_OUTPUT = exports.BUCKET_DOMAIN_NAME_OUTPUT = exports.REPOSITORY_NAME_OUTPUT = exports.BUCKET_NAME_OUTPUT = void 0;\nexports.BUCKET_NAME_OUTPUT = 'BucketName';\nexports.REPOSITORY_NAME_OUTPUT = 'ImageRepositoryName';\nexports.BUCKET_DOMAIN_NAME_OUTPUT = 'BucketDomainName';\nexports.BOOTSTRAP_VERSION_OUTPUT = 'BootstrapVersion';\nexports.BOOTSTRAP_VERSION_RESOURCE = 'CdkBootstrapVersion';\nexports.BOOTSTRAP_VARIANT_PARAMETER = 'BootstrapVariant';\n/**\n * The assumed vendor of a template in case it is not set\n */\nexports.DEFAULT_BOOTSTRAP_VARIANT = 'AWS CDK: Default Resources';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlhLFFBQUEsa0JBQWtCLEdBQUcsWUFBWSxDQUFDO0FBQ2xDLFFBQUEsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7QUFDL0MsUUFBQSx5QkFBeUIsR0FBRyxrQkFBa0IsQ0FBQztBQUMvQyxRQUFBLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0FBQzlDLFFBQUEsMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDbkQsUUFBQSwyQkFBMkIsR0FBRyxrQkFBa0IsQ0FBQztBQUU5RDs7R0FFRztBQUNVLFFBQUEseUJBQXlCLEdBQUcsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJvb3RzdHJhcFNvdXJjZSB9IGZyb20gJy4vYm9vdHN0cmFwLWVudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vdGFncyc7XG5cbmV4cG9ydCBjb25zdCBCVUNLRVRfTkFNRV9PVVRQVVQgPSAnQnVja2V0TmFtZSc7XG5leHBvcnQgY29uc3QgUkVQT1NJVE9SWV9OQU1FX09VVFBVVCA9ICdJbWFnZVJlcG9zaXRvcnlOYW1lJztcbmV4cG9ydCBjb25zdCBCVUNLRVRfRE9NQUlOX05BTUVfT1VUUFVUID0gJ0J1Y2tldERvbWFpbk5hbWUnO1xuZXhwb3J0IGNvbnN0IEJPT1RTVFJBUF9WRVJTSU9OX09VVFBVVCA9ICdCb290c3RyYXBWZXJzaW9uJztcbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfVkVSU0lPTl9SRVNPVVJDRSA9ICdDZGtCb290c3RyYXBWZXJzaW9uJztcbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfVkFSSUFOVF9QQVJBTUVURVIgPSAnQm9vdHN0cmFwVmFyaWFudCc7XG5cbi8qKlxuICogVGhlIGFzc3VtZWQgdmVuZG9yIG9mIGEgdGVtcGxhdGUgaW4gY2FzZSBpdCBpcyBub3Qgc2V0XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JPT1RTVFJBUF9WQVJJQU5UID0gJ0FXUyBDREs6IERlZmF1bHQgUmVzb3VyY2VzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYm9vdHN0cmFwRW52aXJvbm1lbnQgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwRW52aXJvbm1lbnRPcHRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcm9sZUFybj86IFN0cmluZ1dpdGhvdXRQbGFjZWhvbGRlcnM7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBCb290c3RyYXBwaW5nUGFyYW1ldGVycztcbiAgcmVhZG9ubHkgZm9yY2VEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgYm9vdHN0cmFwIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTW9kZXJuIHYyLXN0eWxlIGJvb3RzdHJhcHBpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZT86IEJvb3RzdHJhcFNvdXJjZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBleGVjdXRlIHRoZSBjaGFuZ2VzZXQgb3Igb25seSBjcmVhdGUgaXQgYW5kIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRhZ3MgZm9yIGNka3Rvb2xraXQgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb24uXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvdXNpbmctY2ZuLXByb3RlY3Qtc3RhY2tzLmh0bWxcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVybWluYXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIHByZXZpb3VzIHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBJZiBub3Qgc2V0LCBhbGwgcGFyYW1ldGVycyBtdXN0IGJlIHNwZWNpZmllZCBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgdXNlUHJldmlvdXNQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcHBpbmdQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRvIGJlIGdpdmVuIHRvIHRoZSBDREsgQm9vdHN0cmFwIGJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5hbWUgaXMgZ2VuZXJhdGVkIGJ5IENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgYW4gZXhpc3RpbmcgS01TIGtleSB0byBiZSB1c2VkIGZvciBlbmNyeXB0aW5nIGl0ZW1zIGluIHRoZSBidWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBkZWZhdWx0IEtNUyBrZXkgb3IgY3JlYXRlIGEgY3VzdG9tIG9uZVxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGNyZWF0ZSBhIG5ldyBjdXN0b21lciBtYXN0ZXIga2V5IChDTUspXG4gICAqXG4gICAqIE9ubHkgYXBwbGllcyB0byBtb2Rlcm4gYm9vdHN0cmFwcGluZy4gTGVnYWN5IGJvb3RzdHJhcHBpbmcgd2lsbCBuZXZlciBjcmVhdGVcbiAgICogYSBDTUssIG9ubHkgdXNlIHRoZSBkZWZhdWx0IFMzIGtleS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUN1c3RvbWVyTWFzdGVyS2V5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgYXJlIHRydXN0ZWQgdG8gZGVwbG95IGludG8gdGhlIGVudmlyb25tZW50IGJlaW5nIGJvb3RzdHJhcHBlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHRoZSBib290c3RyYXBwZWQgYWNjb3VudCBjYW4gZGVwbG95IGludG8gdGhpcyBlbnZpcm9ubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdHJ1c3RlZEFjY291bnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IGFyZSB0cnVzdGVkIHRvIGxvb2sgdXAgdmFsdWVzIGluIHRoZSBlbnZpcm9ubWVudCBiZWluZyBib290c3RyYXBwZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gT25seSB0aGUgYm9vdHN0cmFwcGVkIGFjY291bnQgY2FuIGxvb2sgdXAgdmFsdWVzIGluIHRoaXMgZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBzaG91bGQgbm90IGJlIHRydXN0ZWQgYnkgdGhlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudC5cbiAgICogSWYgdGhlc2UgYWNjb3VudHMgYXJlIGFscmVhZHkgdHJ1c3RlZCwgdGhleSB3aWxsIGJlIHJlbW92ZWQgb24gYm9vdHN0cmFwcGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhY2NvdW50IHdpbGwgYmUgdW50cnVzdGVkXG4gICAqL1xuICByZWFkb25seSB1bnRydXN0ZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOcyBvZiB0aGUgSUFNIG1hbmFnZWQgcG9saWNpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIHJvbGUgcGVyZm9ybWluZyBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50cy5cbiAgICogSW4gbW9zdCBjYXNlcywgdGhpcyB3aWxsIGJlIHRoZSBBZG1pbmlzdHJhdG9yQWNjZXNzIHBvbGljeS5cbiAgICogQXQgbGVhc3Qgb25lIHBvbGljeSBpcyByZXF1aXJlZCBpZiBgdHJ1c3RlZEFjY291bnRzYCB3ZXJlIHBhc3NlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgcm9sZSB3aWxsIGhhdmUgbm8gcG9saWNpZXMgYXR0YWNoZWRcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllciB0byBkaXN0aW5ndWlzaCBtdWx0aXBsZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBxdWFsaWZpZXJcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIFMzIFN0YWdpbmcgQnVja2V0IFB1YmxpYyBBY2Nlc3MgQmxvY2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgY3VzdG9tZXIncyBjdXN0b20gcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVueSBBc3N1bWVSb2xlIGNhbGxzIHdpdGggYW4gRXh0ZXJuYWxJZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRlbXBsYXRlIGRlZmF1bHQgKHRydWUpXG4gICAqL1xuICByZWFkb25seSBkZW55RXh0ZXJuYWxJZD86IGJvb2xlYW47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BootstrapStack = void 0;\nexports.bootstrapVersionFromTemplate = bootstrapVersionFromTemplate;\nexports.bootstrapVariantFromTemplate = bootstrapVariantFromTemplate;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\nconst fs = require(\"fs-extra\");\nconst bootstrap_props_1 = require(\"./bootstrap-props\");\nconst deployments_1 = require(\"../deployments\");\nconst deploy_stack_1 = require(\"../deployments/deploy-stack\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\n/**\n * A class to hold state around stack bootstrapping\n *\n * This class exists so we can break bootstrapping into 2 phases:\n *\n * ```ts\n * const current = BootstrapStack.lookup(...);\n * // ...\n * current.update(newTemplate, ...);\n * ```\n *\n * And do something in between the two phases (such as look at the\n * current bootstrap stack and doing something intelligent).\n */\nclass BootstrapStack {\n sdkProvider;\n sdk;\n resolvedEnvironment;\n toolkitStackName;\n currentToolkitInfo;\n ioHelper;\n static async lookup(sdkProvider, environment, toolkitStackName, ioHelper) {\n toolkitStackName = toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n const resolvedEnvironment = await sdkProvider.resolveEnvironment(environment);\n const sdk = (await sdkProvider.forEnvironment(resolvedEnvironment, plugin_1.Mode.ForWriting)).sdk;\n const currentToolkitInfo = await toolkit_info_1.ToolkitInfo.lookup(resolvedEnvironment, sdk, ioHelper, toolkitStackName);\n return new BootstrapStack(sdkProvider, sdk, resolvedEnvironment, toolkitStackName, currentToolkitInfo, ioHelper);\n }\n constructor(sdkProvider, sdk, resolvedEnvironment, toolkitStackName, currentToolkitInfo, ioHelper) {\n this.sdkProvider = sdkProvider;\n this.sdk = sdk;\n this.resolvedEnvironment = resolvedEnvironment;\n this.toolkitStackName = toolkitStackName;\n this.currentToolkitInfo = currentToolkitInfo;\n this.ioHelper = ioHelper;\n }\n get parameters() {\n return this.currentToolkitInfo.found ? this.currentToolkitInfo.bootstrapStack.parameters : {};\n }\n get terminationProtection() {\n return this.currentToolkitInfo.found ? this.currentToolkitInfo.bootstrapStack.terminationProtection : undefined;\n }\n async partition() {\n return (await this.sdk.currentAccount()).partition;\n }\n /**\n * Perform the actual deployment of a bootstrap stack, given a template and some parameters\n */\n async update(template, parameters, options) {\n if (this.currentToolkitInfo.found && !options.forceDeployment) {\n // Safety checks\n const abortResponse = {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: {},\n stackArn: this.currentToolkitInfo.bootstrapStack.stackId,\n };\n // Validate that the bootstrap stack we're trying to replace is from the same variant as the one we're trying to deploy\n const currentVariant = this.currentToolkitInfo.variant;\n const newVariant = bootstrapVariantFromTemplate(template);\n if (currentVariant !== newVariant) {\n await this.ioHelper.defaults.warn(`Bootstrap stack already exists, containing '${currentVariant}'. Not overwriting it with a template containing '${newVariant}' (use --force if you intend to overwrite)`);\n return abortResponse;\n }\n // Validate that we're not downgrading the bootstrap stack\n const newVersion = bootstrapVersionFromTemplate(template);\n const currentVersion = this.currentToolkitInfo.version;\n if (newVersion < currentVersion) {\n await this.ioHelper.defaults.warn(`Bootstrap stack already at version ${currentVersion}. Not downgrading it to version ${newVersion} (use --force if you intend to downgrade)`);\n if (newVersion === 0) {\n // A downgrade with 0 as target version means we probably have a new-style bootstrap in the account,\n // and an old-style bootstrap as current target, which means the user probably forgot to put this flag in.\n await this.ioHelper.defaults.warn(\"(Did you set the '@aws-cdk/core:newStyleStackSynthesis' feature flag in cdk.json?)\");\n }\n return abortResponse;\n }\n }\n const outdir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdk-bootstrap'));\n try {\n const builder = new cloud_assembly_api_1.CloudAssemblyBuilder(outdir);\n const templateFile = `${this.toolkitStackName}.template.json`;\n await fs.writeJson(path.join(builder.outdir, templateFile), template, {\n spaces: 2,\n });\n builder.addArtifact(this.toolkitStackName, {\n type: cloud_assembly_schema_1.ArtifactType.AWS_CLOUDFORMATION_STACK,\n environment: cloud_assembly_api_1.EnvironmentUtils.format(this.resolvedEnvironment.account, this.resolvedEnvironment.region),\n properties: {\n templateFile,\n terminationProtection: options.terminationProtection ?? false,\n },\n });\n const assembly = builder.buildAssembly();\n const ret = await (0, deploy_stack_1.deployStack)({\n stack: assembly.getStackByName(this.toolkitStackName),\n resolvedEnvironment: this.resolvedEnvironment,\n sdk: this.sdk,\n sdkProvider: this.sdkProvider,\n forceDeployment: options.forceDeployment,\n roleArn: options.roleArn,\n tags: options.tags,\n deploymentMethod: { method: 'change-set', execute: options.execute },\n parameters,\n usePreviousParameters: options.usePreviousParameters ?? true,\n // Obviously we can't need a bootstrap stack to deploy a bootstrap stack\n envResources: new environment_1.NoBootstrapStackEnvironmentResources(this.resolvedEnvironment, this.sdk, this.ioHelper),\n }, this.ioHelper);\n (0, deployments_1.assertIsSuccessfulDeployStackResult)(ret);\n return ret;\n }\n finally {\n await fs.rm(outdir, { recursive: true, force: true });\n }\n }\n}\nexports.BootstrapStack = BootstrapStack;\nfunction bootstrapVersionFromTemplate(template) {\n const versionSources = [\n template.Outputs?.[bootstrap_props_1.BOOTSTRAP_VERSION_OUTPUT]?.Value,\n template.Resources?.[bootstrap_props_1.BOOTSTRAP_VERSION_RESOURCE]?.Properties?.Value,\n ];\n for (const vs of versionSources) {\n if (typeof vs === 'number') {\n return vs;\n }\n if (typeof vs === 'string' && !isNaN(parseInt(vs, 10))) {\n return parseInt(vs, 10);\n }\n }\n return 0;\n}\nfunction bootstrapVariantFromTemplate(template) {\n return template.Parameters?.[bootstrap_props_1.BOOTSTRAP_VARIANT_PARAMETER]?.Default ?? bootstrap_props_1.DEFAULT_BOOTSTRAP_VARIANT;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlcGxveS1ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEpBLG9FQWVDO0FBRUQsb0VBRUM7QUFqTEQseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3QixvRUFBcUY7QUFDckYsMEVBQThEO0FBQzlELCtCQUErQjtBQUUvQix1REFLMkI7QUFHM0IsZ0RBQXFFO0FBQ3JFLDhEQUEwRDtBQUMxRCxnREFBc0U7QUFFdEUsc0NBQWlDO0FBQ2pDLGtEQUEwRTtBQUUxRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxjQUFjO0lBYU47SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBakJaLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQXdCLEVBQUUsV0FBd0IsRUFBRSxnQkFBd0IsRUFBRSxRQUFrQjtRQUN6SCxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSx5Q0FBMEIsQ0FBQztRQUVsRSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sV0FBVyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLGFBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUV6RixNQUFNLGtCQUFrQixHQUFHLE1BQU0sMEJBQVcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTFHLE9BQU8sSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsWUFDbUIsV0FBd0IsRUFDeEIsR0FBUSxFQUNSLG1CQUFnQyxFQUNoQyxnQkFBd0IsRUFD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LFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyw2Q0FBMkIsQ0FBQyxFQUFFLE9BQU8sSUFBSSwyQ0FBeUIsQ0FBQztBQUNsRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnQgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUJ1aWxkZXIsIEVudmlyb25tZW50VXRpbHMgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgQXJ0aWZhY3RUeXBlIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi9ib290c3RyYXAtcHJvcHMnO1xuaW1wb3J0IHtcbiAgQk9PVFNUUkFQX1ZBUklBTlRfUEFSQU1FVEVSLFxuICBCT09UU1RSQVBfVkVSU0lPTl9PVVRQVVQsXG4gIEJPT1RTVFJBUF9WRVJTSU9OX1JFU09VUkNFLFxuICBERUZBVUxUX0JPT1RTVFJBUF9WQVJJQU5ULFxufSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5pbXBvcnQgdHlwZSB7IFNESywgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgYXNzZXJ0SXNTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi9kZXBsb3ltZW50cyc7XG5pbXBvcnQgeyBkZXBsb3lTdGFjayB9IGZyb20gJy4uL2RlcGxveW1lbnRzL2RlcGxveS1zdGFjayc7XG5pbXBvcnQgeyBOb0Jvb3RzdHJhcFN0YWNrRW52aXJvbm1lbnRSZXNvdXJjZXMgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luJztcbmltcG9ydCB7IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FLCBUb29sa2l0SW5mbyB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbi8qKlxuICogQSBjbGFzcyB0byBob2xkIHN0YXRlIGFyb3VuZCBzdGFjayBib290c3RyYXBwaW5nXG4gKlxuICogVGhpcyBjbGFzcyBleGlzdHMgc28gd2UgY2FuIGJyZWFrIGJvb3RzdHJhcHBpbmcgaW50byAyIHBoYXNlczpcbiAqXG4gKiBgYGB0c1xuICogY29uc3QgY3VycmVudCA9IEJvb3RzdHJhcFN0YWNrLmxvb2t1cCguLi4pO1xuICogLy8gLi4uXG4gKiBjdXJyZW50LnVwZGF0ZShuZXdUZW1wbGF0ZSwgLi4uKTtcbiAqIGBgYFxuICpcbiAqIEFuZCBkbyBzb21ldGhpbmcgaW4gYmV0d2VlbiB0aGUgdHdvIHBoYXNlcyAoc3VjaCBhcyBsb29rIGF0IHRoZVxuICogY3VycmVudCBib290c3RyYXAgc3RhY2sgYW5kIGRvaW5nIHNvbWV0aGluZyBpbnRlbGxpZ2VudCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTdGFjayB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbG9va3VwKHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlciwgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LCB0b29sa2l0U3RhY2tOYW1lOiBzdHJpbmcsIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRvb2xraXRTdGFja05hbWUgPSB0b29sa2l0U3RhY2tOYW1lID8/IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FO1xuXG4gICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudCA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChlbnZpcm9ubWVudCk7XG4gICAgY29uc3Qgc2RrID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KHJlc29sdmVkRW52aXJvbm1lbnQsIE1vZGUuRm9yV3JpdGluZykpLnNkaztcblxuICAgIGNvbnN0IGN1cnJlbnRUb29sa2l0SW5mbyA9IGF3YWl0IFRvb2xraXRJbmZvLmxvb2t1cChyZXNvbHZlZEVudmlyb25tZW50LCBzZGssIGlvSGVscGVyLCB0b29sa2l0U3RhY2tOYW1lKTtcblxuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwU3RhY2soc2RrUHJvdmlkZXIsIHNkaywgcmVzb2x2ZWRFbnZpcm9ubWVudCwgdG9vbGtpdFN0YWNrTmFtZSwgY3VycmVudFRvb2xraXRJbmZvLCBpb0hlbHBlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZGs6IFNESyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVkRW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcmFtZXRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFRvb2xraXRJbmZvLmZvdW5kID8gdGhpcy5jdXJyZW50VG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVycyA6IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCB0ZXJtaW5hdGlvblByb3RlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFRvb2xraXRJbmZvLmZvdW5kID8gdGhpcy5jdXJyZW50VG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBhcnRpdGlvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gdGhlIGFjdHVhbCBkZXBsb3ltZW50IG9mIGEgYm9vdHN0cmFwIHN0YWNrLCBnaXZlbiBhIHRlbXBsYXRlIGFuZCBzb21lIHBhcmFtZXRlcnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyB1cGRhdGUoXG4gICAgdGVtcGxhdGU6IGFueSxcbiAgICBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+LFxuICAgIG9wdGlvbnM6IE9taXQ8Qm9vdHN0cmFwRW52aXJvbm1lbnRPcHRpb25zLCAncGFyYW1ldGVycyc+LFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRUb29sa2l0SW5mby5mb3VuZCAmJiAhb3B0aW9ucy5mb3JjZURlcGxveW1lbnQpIHtcbiAgICAgIC8vIFNhZmV0eSBjaGVja3NcbiAgICAgIGNvbnN0IGFib3J0UmVzcG9uc2UgPSB7XG4gICAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgICAgbm9PcDogdHJ1ZSxcbiAgICAgICAgb3V0cHV0czoge30sXG4gICAgICAgIHN0YWNrQXJuOiB0aGlzLmN1cnJlbnRUb29sa2l0SW5mby5ib290c3RyYXBTdGFjay5zdGFja0lkLFxuICAgICAgfSBzYXRpc2ZpZXMgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0O1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBib290c3RyYXAgc3RhY2sgd2UncmUgdHJ5aW5nIHRvIHJlcGxhY2UgaXMgZnJvbSB0aGUgc2FtZSB2YXJpYW50IGFzIHRoZSBvbmUgd2UncmUgdHJ5aW5nIHRvIGRlcGxveVxuICAgICAgY29uc3QgY3VycmVudFZhcmlhbnQgPSB0aGlzLmN1cnJlbnRUb29sa2l0SW5mby52YXJpYW50O1xuICAgICAgY29uc3QgbmV3VmFyaWFudCA9IGJvb3RzdHJhcFZhcmlhbnRGcm9tVGVtcGxhdGUodGVtcGxhdGUpO1xuICAgICAgaWYgKGN1cnJlbnRWYXJpYW50ICE9PSBuZXdWYXJpYW50KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBgQm9vdHN0cmFwIHN0YWNrIGFscmVhZHkgZXhpc3RzLCBjb250YWluaW5nICcke2N1cnJlbnRWYXJpYW50fScuIE5vdCBvdmVyd3JpdGluZyBpdCB3aXRoIGEgdGVtcGxhdGUgY29udGFpbmluZyAnJHtuZXdWYXJpYW50fScgKHVzZSAtLWZvcmNlIGlmIHlvdSBpbnRlbmQgdG8gb3ZlcndyaXRlKWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBhYm9ydFJlc3BvbnNlO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IHdlJ3JlIG5vdCBkb3duZ3JhZGluZyB0aGUgYm9vdHN0cmFwIHN0YWNrXG4gICAgICBjb25zdCBuZXdWZXJzaW9uID0gYm9vdHN0cmFwVmVyc2lvbkZyb21UZW1wbGF0ZSh0ZW1wbGF0ZSk7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IHRoaXMuY3VycmVudFRvb2xraXRJbmZvLnZlcnNpb247XG4gICAgICBpZiAobmV3VmVyc2lvbiA8IGN1cnJlbnRWZXJzaW9uKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBgQm9vdHN0cmFwIHN0YWNrIGFscmVhZHkgYXQgdmVyc2lvbiAke2N1cnJlbnRWZXJzaW9ufS4gTm90IGRvd25ncmFkaW5nIGl0IHRvIHZlcnNpb24gJHtuZXdWZXJzaW9ufSAodXNlIC0tZm9yY2UgaWYgeW91IGludGVuZCB0byBkb3duZ3JhZGUpYCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG5ld1ZlcnNpb24gPT09IDApIHtcbiAgICAgICAgICAvLyBBIGRvd25ncmFkZSB3aXRoIDAgYXMgdGFyZ2V0IHZlcnNpb24gbWVhbnMgd2UgcHJvYmFibHkgaGF2ZSBhIG5ldy1zdHlsZSBib290c3RyYXAgaW4gdGhlIGFjY291bnQsXG4gICAgICAgICAgLy8gYW5kIGFuIG9sZC1zdHlsZSBib290c3RyYXAgYXMgY3VycmVudCB0YXJnZXQsIHdoaWNoIG1lYW5zIHRoZSB1c2VyIHByb2JhYmx5IGZvcmdvdCB0byBwdXQgdGhpcyBmbGFnIGluLlxuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICAgIFwiKERpZCB5b3Ugc2V0IHRoZSAnQGF3cy1jZGsvY29yZTpuZXdTdHlsZVN0YWNrU3ludGhlc2lzJyBmZWF0dXJlIGZsYWcgaW4gY2RrLmpzb24/KVwiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFib3J0UmVzcG9uc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstYm9vdHN0cmFwJykpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IENsb3VkQXNzZW1ibHlCdWlsZGVyKG91dGRpcik7XG4gICAgICBjb25zdCB0ZW1wbGF0ZUZpbGUgPSBgJHt0aGlzLnRvb2xraXRTdGFja05hbWV9LnRlbXBsYXRlLmpzb25gO1xuICAgICAgYXdhaXQgZnMud3JpdGVKc29uKHBhdGguam9pbihidWlsZGVyLm91dGRpciwgdGVtcGxhdGVGaWxlKSwgdGVtcGxhdGUsIHtcbiAgICAgICAgc3BhY2VzOiAyLFxuICAgICAgfSk7XG5cbiAgICAgIGJ1aWxkZXIuYWRkQXJ0aWZhY3QodGhpcy50b29sa2l0U3RhY2tOYW1lLCB7XG4gICAgICAgIHR5cGU6IEFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0ssXG4gICAgICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFV0aWxzLmZvcm1hdCh0aGlzLnJlc29sdmVkRW52aXJvbm1lbnQuYWNjb3VudCwgdGhpcy5yZXNvbHZlZEVudmlyb25tZW50LnJlZ2lvbiksXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB0ZW1wbGF0ZUZpbGUsXG4gICAgICAgICAgdGVybWluYXRpb25Qcm90ZWN0aW9uOiBvcHRpb25zLnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhc3NlbWJseSA9IGJ1aWxkZXIuYnVpbGRBc3NlbWJseSgpO1xuXG4gICAgICBjb25zdCByZXQgPSBhd2FpdCBkZXBsb3lTdGFjayh7XG4gICAgICAgIHN0YWNrOiBhc3NlbWJseS5nZXRTdGFja0J5TmFtZSh0aGlzLnRvb2xraXRTdGFja05hbWUpLFxuICAgICAgICByZXNvbHZlZEVudmlyb25tZW50OiB0aGlzLnJlc29sdmVkRW52aXJvbm1lbnQsXG4gICAgICAgIHNkazogdGhpcy5zZGssXG4gICAgICAgIHNka1Byb3ZpZGVyOiB0aGlzLnNka1Byb3ZpZGVyLFxuICAgICAgICBmb3JjZURlcGxveW1lbnQ6IG9wdGlvbnMuZm9yY2VEZXBsb3ltZW50LFxuICAgICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgIHRhZ3M6IG9wdGlvbnMudGFncyxcbiAgICAgICAgZGVwbG95bWVudE1ldGhvZDogeyBtZXRob2Q6ICdjaGFuZ2Utc2V0JywgZXhlY3V0ZTogb3B0aW9ucy5leGVjdXRlIH0sXG4gICAgICAgIHBhcmFtZXRlcnMsXG4gICAgICAgIHVzZVByZXZpb3VzUGFyYW1ldGVyczogb3B0aW9ucy51c2VQcmV2aW91c1BhcmFtZXRlcnMgPz8gdHJ1ZSxcbiAgICAgICAgLy8gT2J2aW91c2x5IHdlIGNhbid0IG5lZWQgYSBib290c3RyYXAgc3RhY2sgdG8gZGVwbG95IGEgYm9vdHN0cmFwIHN0YWNrXG4gICAgICAgIGVudlJlc291cmNlczogbmV3IE5vQm9vdHN0cmFwU3RhY2tFbnZpcm9ubWVudFJlc291cmNlcyh0aGlzLnJlc29sdmVkRW52aXJvbm1lbnQsIHRoaXMuc2RrLCB0aGlzLmlvSGVscGVyKSxcbiAgICAgIH0sIHRoaXMuaW9IZWxwZXIpO1xuXG4gICAgICBhc3NlcnRJc1N1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdChyZXQpO1xuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBmcy5ybShvdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcFZlcnNpb25Gcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSk6IG51bWJlciB7XG4gIGNvbnN0IHZlcnNpb25Tb3VyY2VzID0gW1xuICAgIHRlbXBsYXRlLk91dHB1dHM/LltCT09UU1RSQVBfVkVSU0lPTl9PVVRQVVRdPy5WYWx1ZSxcbiAgICB0ZW1wbGF0ZS5SZXNvdXJjZXM/LltCT09UU1RSQVBfVkVSU0lPTl9SRVNPVVJDRV0/LlByb3BlcnRpZXM/LlZhbHVlLFxuICBdO1xuXG4gIGZvciAoY29uc3QgdnMgb2YgdmVyc2lvblNvdXJjZXMpIHtcbiAgICBpZiAodHlwZW9mIHZzID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHZzO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZzID09PSAnc3RyaW5nJyAmJiAhaXNOYU4ocGFyc2VJbnQodnMsIDEwKSkpIHtcbiAgICAgIHJldHVybiBwYXJzZUludCh2cywgMTApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcFZhcmlhbnRGcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiB0ZW1wbGF0ZS5QYXJhbWV0ZXJzPy5bQk9PVFNUUkFQX1ZBUklBTlRfUEFSQU1FVEVSXT8uRGVmYXVsdCA/PyBERUZBVUxUX0JPT1RTVFJBUF9WQVJJQU5UO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.legacyBootstrapTemplate = void 0;\n__exportStar(require(\"./bootstrap-environment\"), exports);\n__exportStar(require(\"./bootstrap-props\"), exports);\n// testing exports\nvar legacy_template_1 = require(\"./legacy-template\");\nObject.defineProperty(exports, \"legacyBootstrapTemplate\", { enumerable: true, get: function () { return legacy_template_1.legacyBootstrapTemplate; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUF3QztBQUN4QyxvREFBa0M7QUFFbEMsa0JBQWtCO0FBQ2xCLHFEQUE0RDtBQUFuRCwwSEFBQSx1QkFBdUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwLWVudmlyb25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwLXByb3BzJztcblxuLy8gdGVzdGluZyBleHBvcnRzXG5leHBvcnQgeyBsZWdhY3lCb290c3RyYXBUZW1wbGF0ZSB9IGZyb20gJy4vbGVnYWN5LXRlbXBsYXRlJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.legacyBootstrapTemplate = legacyBootstrapTemplate;\nconst bootstrap_props_1 = require(\"./bootstrap-props\");\nfunction legacyBootstrapTemplate(params) {\n return {\n Description: 'The CDK Toolkit Stack. It was created by `cdk bootstrap` and manages resources necessary for managing your Cloud Applications with AWS CDK.',\n Conditions: {\n UsePublicAccessBlockConfiguration: {\n 'Fn::Equals': [\n params.publicAccessBlockConfiguration || params.publicAccessBlockConfiguration === undefined ? 'true' : 'false',\n 'true',\n ],\n },\n },\n Resources: {\n StagingBucket: {\n Type: 'AWS::S3::Bucket',\n Properties: {\n BucketName: params.bucketName,\n AccessControl: 'Private',\n BucketEncryption: {\n ServerSideEncryptionConfiguration: [{\n ServerSideEncryptionByDefault: {\n SSEAlgorithm: 'aws:kms',\n KMSMasterKeyID: params.kmsKeyId,\n },\n }],\n },\n PublicAccessBlockConfiguration: {\n 'Fn::If': [\n 'UsePublicAccessBlockConfiguration',\n {\n BlockPublicAcls: true,\n BlockPublicPolicy: true,\n IgnorePublicAcls: true,\n RestrictPublicBuckets: true,\n },\n { Ref: 'AWS::NoValue' },\n ],\n },\n },\n },\n StagingBucketPolicy: {\n Type: 'AWS::S3::BucketPolicy',\n Properties: {\n Bucket: { Ref: 'StagingBucket' },\n PolicyDocument: {\n Id: 'AccessControl',\n Version: '2012-10-17',\n Statement: [\n {\n Sid: 'AllowSSLRequestsOnly',\n Action: 's3:*',\n Effect: 'Deny',\n Resource: [\n { 'Fn::Sub': '${StagingBucket.Arn}' },\n { 'Fn::Sub': '${StagingBucket.Arn}/*' },\n ],\n Condition: {\n Bool: { 'aws:SecureTransport': 'false' },\n },\n Principal: '*',\n },\n ],\n },\n },\n },\n },\n Outputs: {\n [bootstrap_props_1.BUCKET_NAME_OUTPUT]: {\n Description: 'The name of the S3 bucket owned by the CDK toolkit stack',\n Value: { Ref: 'StagingBucket' },\n },\n [bootstrap_props_1.BUCKET_DOMAIN_NAME_OUTPUT]: {\n Description: 'The domain name of the S3 bucket owned by the CDK toolkit stack',\n Value: { 'Fn::GetAtt': ['StagingBucket', 'RegionalDomainName'] },\n },\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsMERBNEVDO0FBOUVELHVEQUFrRjtBQUVsRixTQUFnQix1QkFBdUIsQ0FBQyxNQUErQjtJQUNyRSxPQUFPO1FBQ0wsV0FBVyxFQUFFLDZJQUE2STtRQUMxSixVQUFVLEVBQUU7WUFDVixpQ0FBaUMsRUFBRTtnQkFDakMsWUFBWSxFQUFFO29CQUNaLE1BQU0sQ0FBQyw4QkFBOEIsSUFBSSxNQUFNLENBQUMsOEJBQThCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87b0JBQy9HLE1BQU07aUJBQ1A7YUFDRjtTQUNGO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsYUFBYSxFQUFFO2dCQUNiLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7b0JBQzdCLGFBQWEsRUFBRSxTQUFTO29CQUN4QixnQkFBZ0IsRUFBRTt3QkFDaEIsaUNBQWlDLEVBQUUsQ0FBQztnQ0FDbEMsNkJBQTZCLEVBQUU7b0NBQzdCLFlBQVksRUFBRSxTQUFTO29DQUN2QixjQUFjLEVBQUUsTUFBTSxDQUFDLFFBQVE7aUNBQ2hDOzZCQUNGLENBQUM7cUJBQ0g7b0JBQ0QsOEJBQThCLEVBQUU7d0JBQzlCLFFBQVEsRUFBRTs0QkFDUixtQ0FBbUM7NEJBQ25DO2dDQUNFLGVBQWUsRUFBRSxJQUFJO2dDQUNyQixpQkFBaUIsRUFBRSxJQUFJO2dDQUN2QixnQkFBZ0IsRUFBRSxJQUFJO2dDQUN0QixxQkFBcUIsRUFBRSxJQUFJOzZCQUM1Qjs0QkFDRCxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUU7eUJBQ3hCO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxtQkFBbUIsRUFBRTtnQkFDbkIsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUU7b0JBQ2hDLGNBQWMsRUFBRTt3QkFDZCxFQUFFLEVBQUUsZUFBZTt3QkFDbkIsT0FBTyxFQUFFLFlBQVk7d0JBQ3JCLFNBQVMsRUFBRTs0QkFDVDtnQ0FDRSxHQUFHLEVBQUUsc0JBQXNCO2dDQUMzQixNQUFNLEVBQUUsTUFBTTtnQ0FDZCxNQUFNLEVBQUUsTUFBTTtnQ0FDZCxRQUFRLEVBQUU7b0NBQ1IsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUU7b0NBQ3JDLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFO2lDQUN4QztnQ0FDRCxTQUFTLEVBQUU7b0NBQ1QsSUFBSSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFO2lDQUN6QztnQ0FDRCxTQUFTLEVBQUUsR0FBRzs2QkFDZjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxDQUFDLG9DQUFrQixDQUFDLEVBQUU7Z0JBQ3BCLFdBQVcsRUFBRSwwREFBMEQ7Z0JBQ3ZFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUU7YUFDaEM7WUFDRCxDQUFDLDJDQUF5QixDQUFDLEVBQUU7Z0JBQzNCLFdBQVcsRUFBRSxpRUFBaUU7Z0JBQzlFLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2FBQ2pFO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQm9vdHN0cmFwcGluZ1BhcmFtZXRlcnMgfSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5pbXBvcnQgeyBCVUNLRVRfRE9NQUlOX05BTUVfT1VUUFVULCBCVUNLRVRfTkFNRV9PVVRQVVQgfSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBsZWdhY3lCb290c3RyYXBUZW1wbGF0ZShwYXJhbXM6IEJvb3RzdHJhcHBpbmdQYXJhbWV0ZXJzKTogYW55IHtcbiAgcmV0dXJuIHtcbiAgICBEZXNjcmlwdGlvbjogJ1RoZSBDREsgVG9vbGtpdCBTdGFjay4gSXQgd2FzIGNyZWF0ZWQgYnkgYGNkayBib290c3RyYXBgIGFuZCBtYW5hZ2VzIHJlc291cmNlcyBuZWNlc3NhcnkgZm9yIG1hbmFnaW5nIHlvdXIgQ2xvdWQgQXBwbGljYXRpb25zIHdpdGggQVdTIENESy4nLFxuICAgIENvbmRpdGlvbnM6IHtcbiAgICAgIFVzZVB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAnRm46OkVxdWFscyc6IFtcbiAgICAgICAgICBwYXJhbXMucHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIHx8IHBhcmFtcy5wdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24gPT09IHVuZGVmaW5lZCA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgICAgJ3RydWUnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIFJlc291cmNlczoge1xuICAgICAgU3RhZ2luZ0J1Y2tldDoge1xuICAgICAgICBUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIEJ1Y2tldE5hbWU6IHBhcmFtcy5idWNrZXROYW1lLFxuICAgICAgICAgIEFjY2Vzc0NvbnRyb2w6ICdQcml2YXRlJyxcbiAgICAgICAgICBCdWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFt7XG4gICAgICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiAnYXdzOmttcycsXG4gICAgICAgICAgICAgICAgS01TTWFzdGVyS2V5SUQ6IHBhcmFtcy5rbXNLZXlJZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAnRm46OklmJzogW1xuICAgICAgICAgICAgICAnVXNlUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uJyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEJsb2NrUHVibGljQWNsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgICAgICAgICAgIFJlc3RyaWN0UHVibGljQnVja2V0czogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBSZWY6ICdBV1M6Ok5vVmFsdWUnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgU3RhZ2luZ0J1Y2tldFBvbGljeToge1xuICAgICAgICBUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIEJ1Y2tldDogeyBSZWY6ICdTdGFnaW5nQnVja2V0JyB9LFxuICAgICAgICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICAgICAgICBJZDogJ0FjY2Vzc0NvbnRyb2wnLFxuICAgICAgICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnLFxuICAgICAgICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBTaWQ6ICdBbGxvd1NTTFJlcXVlc3RzT25seScsXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnczM6KicsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnRGVueScsXG4gICAgICAgICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgICAgICAgIHsgJ0ZuOjpTdWInOiAnJHtTdGFnaW5nQnVja2V0LkFybn0nIH0sXG4gICAgICAgICAgICAgICAgICB7ICdGbjo6U3ViJzogJyR7U3RhZ2luZ0J1Y2tldC5Bcm59LyonIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBDb25kaXRpb246IHtcbiAgICAgICAgICAgICAgICAgIEJvb2w6IHsgJ2F3czpTZWN1cmVUcmFuc3BvcnQnOiAnZmFsc2UnIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBQcmluY2lwYWw6ICcqJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBPdXRwdXRzOiB7XG4gICAgICBbQlVDS0VUX05BTUVfT1VUUFVUXToge1xuICAgICAgICBEZXNjcmlwdGlvbjogJ1RoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgb3duZWQgYnkgdGhlIENESyB0b29sa2l0IHN0YWNrJyxcbiAgICAgICAgVmFsdWU6IHsgUmVmOiAnU3RhZ2luZ0J1Y2tldCcgfSxcbiAgICAgIH0sXG4gICAgICBbQlVDS0VUX0RPTUFJTl9OQU1FX09VVFBVVF06IHtcbiAgICAgICAgRGVzY3JpcHRpb246ICdUaGUgZG9tYWluIG5hbWUgb2YgdGhlIFMzIGJ1Y2tldCBvd25lZCBieSB0aGUgQ0RLIHRvb2xraXQgc3RhY2snLFxuICAgICAgICBWYWx1ZTogeyAnRm46OkdldEF0dCc6IFsnU3RhZ2luZ0J1Y2tldCcsICdSZWdpb25hbERvbWFpbk5hbWUnXSB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CachedCloudAssembly = void 0;\nrequire(\"../../private/dispose-polyfill\");\nconst borrowed_assembly_1 = require(\"./private/borrowed-assembly\");\n/**\n * A CloudAssemblySource that is caching its result once produced.\n *\n * Most Toolkit interactions should use a cached source. Not caching is\n * relevant when the source changes frequently and it is to expensive to predict\n * if the source has changed.\n *\n * The `CachedCloudAssembly` is both itself a readable CloudAssembly, as well as\n * a Cloud Assembly Source. The lifetimes of cloud assemblies produced by this\n * source are coupled to the lifetime of the `CachedCloudAssembly`. In other\n * words: the `dispose()` functions of those cloud assemblies don't do anything;\n * only the `dispose()` function of the `CachedCloudAssembly` will be used.\n *\n * NOTE: if we are concerned about borrowed assemblies outliving the parent\n * (i.e. the parent getting disposed while someone is still working with the\n * borrowed copies), we could consider referencing counting here. That seems\n * unnecessarily complicated for now, we will just assume that everyone is\n * being a good citizen an borrowed copies are only used by the toolkit and\n * immediately disposed of.\n *\n * Because `dispose()` is a no-op on the borrowed assembly, you can omit it\n * without changing behavior, but that would turn into a leak if we ever introduced\n * reference counting. Failing to dispose the result if a `produce()` call of a\n * `CachedCloudAssembly` is considered a bug.\n */\nclass CachedCloudAssembly {\n asm;\n constructor(asm) {\n this.asm = asm;\n }\n get cloudAssembly() {\n return this.asm.cloudAssembly;\n }\n async produce() {\n return new borrowed_assembly_1.BorrowedAssembly(this.asm.cloudAssembly);\n }\n _unlock() {\n return this.asm._unlock();\n }\n dispose() {\n return this.asm.dispose();\n }\n [Symbol.asyncDispose]() {\n return this.dispose();\n }\n}\nexports.CachedCloudAssembly = CachedCloudAssembly;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhY2hlZC1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXdDO0FBRXhDLG1FQUErRDtBQUcvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDdEIsR0FBRyxDQUF5QjtJQUVwQyxZQUFtQixHQUEyQjtRQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBMUJELGtEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vLi4vcHJpdmF0ZS9kaXNwb3NlLXBvbHlmaWxsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEJvcnJvd2VkQXNzZW1ibHkgfSBmcm9tICcuL3ByaXZhdGUvYm9ycm93ZWQtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseVNvdXJjZSB0aGF0IGlzIGNhY2hpbmcgaXRzIHJlc3VsdCBvbmNlIHByb2R1Y2VkLlxuICpcbiAqIE1vc3QgVG9vbGtpdCBpbnRlcmFjdGlvbnMgc2hvdWxkIHVzZSBhIGNhY2hlZCBzb3VyY2UuIE5vdCBjYWNoaW5nIGlzXG4gKiByZWxldmFudCB3aGVuIHRoZSBzb3VyY2UgY2hhbmdlcyBmcmVxdWVudGx5IGFuZCBpdCBpcyB0byBleHBlbnNpdmUgdG8gcHJlZGljdFxuICogaWYgdGhlIHNvdXJjZSBoYXMgY2hhbmdlZC5cbiAqXG4gKiBUaGUgYENhY2hlZENsb3VkQXNzZW1ibHlgIGlzIGJvdGggaXRzZWxmIGEgcmVhZGFibGUgQ2xvdWRBc3NlbWJseSwgYXMgd2VsbCBhc1xuICogYSBDbG91ZCBBc3NlbWJseSBTb3VyY2UuIFRoZSBsaWZldGltZXMgb2YgY2xvdWQgYXNzZW1ibGllcyBwcm9kdWNlZCBieSB0aGlzXG4gKiBzb3VyY2UgYXJlIGNvdXBsZWQgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAuIEluIG90aGVyXG4gKiB3b3JkczogdGhlIGBkaXNwb3NlKClgIGZ1bmN0aW9ucyBvZiB0aG9zZSBjbG91ZCBhc3NlbWJsaWVzIGRvbid0IGRvIGFueXRoaW5nO1xuICogb25seSB0aGUgYGRpc3Bvc2UoKWAgZnVuY3Rpb24gb2YgdGhlIGBDYWNoZWRDbG91ZEFzc2VtYmx5YCB3aWxsIGJlIHVzZWQuXG4gKlxuICogTk9URTogaWYgd2UgYXJlIGNvbmNlcm5lZCBhYm91dCBib3Jyb3dlZCBhc3NlbWJsaWVzIG91dGxpdmluZyB0aGUgcGFyZW50XG4gKiAoaS5lLiB0aGUgcGFyZW50IGdldHRpbmcgZGlzcG9zZWQgd2hpbGUgc29tZW9uZSBpcyBzdGlsbCB3b3JraW5nIHdpdGggdGhlXG4gKiBib3Jyb3dlZCBjb3BpZXMpLCB3ZSBjb3VsZCBjb25zaWRlciByZWZlcmVuY2luZyBjb3VudGluZyBoZXJlLiBUaGF0IHNlZW1zXG4gKiB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkIGZvciBub3csIHdlIHdpbGwganVzdCBhc3N1bWUgdGhhdCBldmVyeW9uZSBpc1xuICogYmVpbmcgYSBnb29kIGNpdGl6ZW4gYW4gYm9ycm93ZWQgY29waWVzIGFyZSBvbmx5IHVzZWQgYnkgdGhlIHRvb2xraXQgYW5kXG4gKiBpbW1lZGlhdGVseSBkaXNwb3NlZCBvZi5cbiAqXG4gKiBCZWNhdXNlIGBkaXNwb3NlKClgIGlzIGEgbm8tb3Agb24gdGhlIGJvcnJvd2VkIGFzc2VtYmx5LCB5b3UgY2FuIG9taXQgaXRcbiAqIHdpdGhvdXQgY2hhbmdpbmcgYmVoYXZpb3IsIGJ1dCB0aGF0IHdvdWxkIHR1cm4gaW50byBhIGxlYWsgaWYgd2UgZXZlciBpbnRyb2R1Y2VkXG4gKiByZWZlcmVuY2UgY291bnRpbmcuIEZhaWxpbmcgdG8gZGlzcG9zZSB0aGUgcmVzdWx0IGlmIGEgYHByb2R1Y2UoKWAgY2FsbCBvZiBhXG4gKiBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAgaXMgY29uc2lkZXJlZCBhIGJ1Zy5cbiAqL1xuZXhwb3J0IGNsYXNzIENhY2hlZENsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIHByaXZhdGUgYXNtOiBJUmVhZGFibGVDbG91ZEFzc2VtYmx5O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihhc206IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkpIHtcbiAgICB0aGlzLmFzbSA9IGFzbTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvdWRBc3NlbWJseSgpOiBjeGFwaS5DbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4gdGhpcy5hc20uY2xvdWRBc3NlbWJseTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcm9kdWNlKCk6IFByb21pc2U8SVJlYWRhYmxlQ2xvdWRBc3NlbWJseT4ge1xuICAgIHJldHVybiBuZXcgQm9ycm93ZWRBc3NlbWJseSh0aGlzLmFzbS5jbG91ZEFzc2VtYmx5KTtcbiAgfVxuXG4gIHB1YmxpYyBfdW5sb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmFzbS5fdW5sb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hc20uZGlzcG9zZSgpO1xuICB9XG5cbiAgcHVibGljIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MemoryContext = exports.FileContext = exports.CdkAppMultiContext = void 0;\nexports.persistableContext = persistableContext;\nconst fs_1 = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst context_1 = require(\"../context\");\nconst settings_1 = require(\"../settings\");\n/**\n * A context store as used by a CDK app.\n *\n * Will source context from the following locations:\n *\n * - Any context values passed to the constructor (expected\n * to come from the command line, treated as ephemeral).\n * - The `context` key in `/cdk.json`.\n * - `/cdk.context.json`.\n * - The `context` key in `~/.cdk.json`.\n *\n * Updates will be written to `/cdk.context.json`.\n */\nclass CdkAppMultiContext {\n commandlineContext;\n _context;\n configContextFile;\n projectContextFile;\n userConfigFile;\n constructor(appDirectory, commandlineContext) {\n this.commandlineContext = commandlineContext;\n this.configContextFile = path.join(appDirectory, 'cdk.json');\n this.projectContextFile = path.join(appDirectory, 'cdk.context.json');\n this.userConfigFile = path.join(os.homedir() ?? '/tmp', '.cdk.json');\n }\n async read() {\n const context = await this.asyncInitialize();\n return context.all;\n }\n async update(updates) {\n const context = await this.asyncInitialize();\n for (const [key, value] of Object.entries(updates)) {\n context.set(key, value);\n }\n await context.save(this.projectContextFile);\n }\n /**\n * Initialize the `Context` object\n *\n * This code all exists to reuse code that's already there, to minimize\n * the chances of the new code behaving subtly differently than the\n * old code.\n *\n * It might be most of this is unnecessary now...\n */\n async asyncInitialize() {\n if (this._context) {\n return this._context;\n }\n const contextSources = [\n { bag: new settings_1.Settings(this.commandlineContext, true) },\n {\n fileName: this.configContextFile,\n bag: (await settingsFromFile(this.configContextFile)).subSettings(['context']).makeReadOnly(),\n },\n {\n fileName: this.projectContextFile,\n bag: await settingsFromFile(this.projectContextFile),\n },\n {\n fileName: this.userConfigFile,\n bag: (await settingsFromFile(this.userConfigFile)).subSettings(['context']).makeReadOnly(),\n },\n ];\n this._context = new context_1.Context(...contextSources);\n return this._context;\n }\n}\nexports.CdkAppMultiContext = CdkAppMultiContext;\n/**\n * On-disk context stored in a single file\n */\nclass FileContext {\n fileName;\n _cache;\n constructor(fileName) {\n this.fileName = fileName;\n }\n async read() {\n if (!this._cache) {\n try {\n this._cache = JSON.parse(await fs_1.promises.readFile(this.fileName, 'utf-8'));\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n this._cache = {};\n }\n else {\n throw e;\n }\n }\n }\n if (!this._cache || typeof this._cache !== 'object') {\n throw new toolkit_error_1.ToolkitError('InvalidContextFile', `${this.fileName} must contain an object, got: ${JSON.stringify(this._cache)}`);\n }\n return this._cache;\n }\n async update(updates) {\n this._cache = {\n ...await this.read(),\n ...updates,\n };\n const persistable = persistableContext(this._cache);\n await fs_1.promises.writeFile(this.fileName, JSON.stringify(persistable, undefined, 2), 'utf-8');\n }\n}\nexports.FileContext = FileContext;\n/**\n * An in-memory context store\n */\nclass MemoryContext {\n context = {};\n constructor(initialContext) {\n this.context = { ...initialContext };\n }\n read() {\n return Promise.resolve(this.context);\n }\n update(updates) {\n this.context = {\n ...this.context,\n ...updates,\n };\n return Promise.resolve();\n }\n}\nexports.MemoryContext = MemoryContext;\n/**\n * Filter the given context, leaving only entries that should be persisted\n */\nfunction persistableContext(context) {\n return Object.fromEntries(Object.entries(context)\n .filter(([_, value]) => !isTransientValue(value)));\n}\nfunction isTransientValue(x) {\n return x && typeof x === 'object' && x[settings_1.TRANSIENT_CONTEXT_KEY];\n}\nasync function settingsFromFile(filename) {\n try {\n const data = JSON.parse(await fs_1.promises.readFile(filename, 'utf-8'));\n return new settings_1.Settings(data);\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return new settings_1.Settings();\n }\n throw e;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMktBLGdEQUdDO0FBOUtELDJCQUFvQztBQUNwQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtEQUEyRDtBQUUzRCx3Q0FBcUM7QUFDckMsMENBQThEO0FBMEI5RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLGtCQUFrQjtJQU1zQjtJQUwzQyxRQUFRLENBQVc7SUFDbkIsaUJBQWlCLENBQVM7SUFDMUIsa0JBQWtCLENBQVM7SUFDM0IsY0FBYyxDQUFTO0lBRS9CLFlBQVksWUFBb0IsRUFBbUIsa0JBQTRDO1FBQTVDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMEI7UUFDN0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFnQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENB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QUM7UUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sYUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUksbUJBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRCYWcgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IFNldHRpbmdzLCBUUkFOU0lFTlRfQ09OVEVYVF9LRVkgfSBmcm9tICcuLi9zZXR0aW5ncyc7XG5cbi8qKlxuICogQSBzdG9yYWdlIHBsYWNlIGZvciBjb250ZXh0IHVzZWQgaW4gc3ludGhlc2lzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRTdG9yZSB7XG4gIC8qKlxuICAgKiBSZWFkIHRoZSBjb250ZXh0IGZyb20gdGhlIGNvbnRleHQgc3RvcmUsIHBsdXMgYWxsIHVwZGF0ZXMgd2UgaGF2ZSBtYWRlIHNvIGZhci5cbiAgICovXG4gIHJlYWQoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG5cbiAgLyoqXG4gICAqIENvbW1pdCB0aGUgZ2l2ZW4gdXBkYXRlcyB0byB0aGUgY29udGV4dCBzdG9yZVxuICAgKlxuICAgKiBgdW5kZWZpbmVkYCBpcyB1c2VkIGFzIGEgdmFsdWUgdG8gaW5kaWNhdGUgdGhhdCB0aGUga2V5IG5lZWRzIHRvIGJlIHJlbW92ZWQuXG4gICAqXG4gICAqIElmIGEgY29udGV4dCB2YWx1ZSBpcyBhbiBvYmplY3QgdGhhdCBpcyBhIHN1cGVyc2V0IG9mIGB7IFtUUkFOU0lFTlRfQ09OVEVYVF9LRVldOiB0cnVlIH1gXG4gICAqIGl0ICpzaG91bGQqIGJlIHJldHVybmVkIGJ5IHN1YnNlcXVlbnQgYHJlYWQoKWAgb3BlcmF0aW9ucyBvbiB0aGlzIG9iamVjdCxcbiAgICogYnV0IGl0ICpzaG91bGQgbm90KiBiZSBwZXJzaXN0ZWQgdG8gcGVybWFuZW50IHN0b3JhZ2UuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoZSBgcGVyc2lzdGFibGVDb250ZXh0KClgIGZ1bmN0aW9uIHRvIGZpbHRlciBhIGNvbnRleHQgZGljdGlvbmFyeVxuICAgKiBkb3duIHRvIHJlbW92ZSBhbGwgdmFsdWVzIHRoYXQgc2hvdWxkbid0IGJlIHBlcnNpc3RlZC5cbiAgICovXG4gIHVwZGF0ZSh1cGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQSBjb250ZXh0IHN0b3JlIGFzIHVzZWQgYnkgYSBDREsgYXBwLlxuICpcbiAqIFdpbGwgc291cmNlIGNvbnRleHQgZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcbiAqXG4gKiAtIEFueSBjb250ZXh0IHZhbHVlcyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yIChleHBlY3RlZFxuICogICB0byBjb21lIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgdHJlYXRlZCBhcyBlcGhlbWVyYWwpLlxuICogLSBUaGUgYGNvbnRleHRgIGtleSBpbiBgPGFwcERpcmVjdG9yeT4vY2RrLmpzb25gLlxuICogLSBgPGFwcERpcmVjdG9yeT4vY2RrLmNvbnRleHQuanNvbmAuXG4gKiAtIFRoZSBgY29udGV4dGAga2V5IGluIGB+Ly5jZGsuanNvbmAuXG4gKlxuICogVXBkYXRlcyB3aWxsIGJlIHdyaXR0ZW4gdG8gYDxhcHBEaXJlY3Rvcnk+L2Nkay5jb250ZXh0Lmpzb25gLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrQXBwTXVsdGlDb250ZXh0IGltcGxlbWVudHMgSUNvbnRleHRTdG9yZSB7XG4gIHByaXZhdGUgX2NvbnRleHQ/OiBDb250ZXh0O1xuICBwcml2YXRlIGNvbmZpZ0NvbnRleHRGaWxlOiBzdHJpbmc7XG4gIHByaXZhdGUgcHJvamVjdENvbnRleHRGaWxlOiBzdHJpbmc7XG4gIHByaXZhdGUgdXNlckNvbmZpZ0ZpbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihhcHBEaXJlY3Rvcnk6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kbGluZUNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHRoaXMuY29uZmlnQ29udGV4dEZpbGUgPSBwYXRoLmpvaW4oYXBwRGlyZWN0b3J5LCAnY2RrLmpzb24nKTtcbiAgICB0aGlzLnByb2plY3RDb250ZXh0RmlsZSA9IHBhdGguam9pbihhcHBEaXJlY3RvcnksICdjZGsuY29udGV4dC5qc29uJyk7XG4gICAgdGhpcy51c2VyQ29uZmlnRmlsZSA9IHBhdGguam9pbihvcy5ob21lZGlyKCkgPz8gJy90bXAnLCAnLmNkay5qc29uJyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZCgpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgY29udGV4dCA9IGF3YWl0IHRoaXMuYXN5bmNJbml0aWFsaXplKCk7XG4gICAgcmV0dXJuIGNvbnRleHQuYWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZSh1cGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSBhd2FpdCB0aGlzLmFzeW5jSW5pdGlhbGl6ZSgpO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHVwZGF0ZXMpKSB7XG4gICAgICBjb250ZXh0LnNldChrZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICBhd2FpdCBjb250ZXh0LnNhdmUodGhpcy5wcm9qZWN0Q29udGV4dEZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGBDb250ZXh0YCBvYmplY3RcbiAgICpcbiAgICogVGhpcyBjb2RlIGFsbCBleGlzdHMgdG8gcmV1c2UgY29kZSB0aGF0J3MgYWxyZWFkeSB0aGVyZSwgdG8gbWluaW1pemVcbiAgICogdGhlIGNoYW5jZXMgb2YgdGhlIG5ldyBjb2RlIGJlaGF2aW5nIHN1YnRseSBkaWZmZXJlbnRseSB0aGFuIHRoZVxuICAgKiBvbGQgY29kZS5cbiAgICpcbiAgICogSXQgbWlnaHQgYmUgbW9zdCBvZiB0aGlzIGlzIHVubmVjZXNzYXJ5IG5vdy4uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBhc3luY0luaXRpYWxpemUoKTogUHJvbWlzZTxDb250ZXh0PiB7XG4gICAgaWYgKHRoaXMuX2NvbnRleHQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRTb3VyY2VzOiBDb250ZXh0QmFnW10gPSBbXG4gICAgICB7IGJhZzogbmV3IFNldHRpbmdzKHRoaXMuY29tbWFuZGxpbmVDb250ZXh0LCB0cnVlKSB9LFxuICAgICAge1xuICAgICAgICBmaWxlTmFtZTogdGhpcy5jb25maWdDb250ZXh0RmlsZSxcbiAgICAgICAgYmFnOiAoYXdhaXQgc2V0dGluZ3NGcm9tRmlsZSh0aGlzLmNvbmZpZ0NvbnRleHRGaWxlKSkuc3ViU2V0dGluZ3MoWydjb250ZXh0J10pLm1ha2VSZWFkT25seSgpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmlsZU5hbWU6IHRoaXMucHJvamVjdENvbnRleHRGaWxlLFxuICAgICAgICBiYWc6IGF3YWl0IHNldHRpbmdzRnJvbUZpbGUodGhpcy5wcm9qZWN0Q29udGV4dEZpbGUpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmlsZU5hbWU6IHRoaXMudXNlckNvbmZpZ0ZpbGUsXG4gICAgICAgIGJhZzogKGF3YWl0IHNldHRpbmdzRnJvbUZpbGUodGhpcy51c2VyQ29uZmlnRmlsZSkpLnN1YlNldHRpbmdzKFsnY29udGV4dCddKS5tYWtlUmVhZE9ubHkoKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHRoaXMuX2NvbnRleHQgPSBuZXcgQ29udGV4dCguLi5jb250ZXh0U291cmNlcyk7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gIH1cbn1cblxuLyoqXG4gKiBPbi1kaXNrIGNvbnRleHQgc3RvcmVkIGluIGEgc2luZ2xlIGZpbGVcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVDb250ZXh0IGltcGxlbWVudHMgSUNvbnRleHRTdG9yZSB7XG4gIHByaXZhdGUgX2NhY2hlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZCgpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgaWYgKCF0aGlzLl9jYWNoZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fY2FjaGUgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHRoaXMuZmlsZU5hbWUsICd1dGYtOCcpKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICAgIHRoaXMuX2NhY2hlID0ge307XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMuX2NhY2hlIHx8IHR5cGVvZiB0aGlzLl9jYWNoZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRDb250ZXh0RmlsZScsIGAke3RoaXMuZmlsZU5hbWV9IG11c3QgY29udGFpbiBhbiBvYmplY3QsIGdvdDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLl9jYWNoZSl9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jYWNoZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGUodXBkYXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9jYWNoZSA9IHtcbiAgICAgIC4uLmF3YWl0IHRoaXMucmVhZCgpLFxuICAgICAgLi4udXBkYXRlcyxcbiAgICB9O1xuXG4gICAgY29uc3QgcGVyc2lzdGFibGUgPSBwZXJzaXN0YWJsZUNvbnRleHQodGhpcy5fY2FjaGUpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0aGlzLmZpbGVOYW1lLCBKU09OLnN0cmluZ2lmeShwZXJzaXN0YWJsZSwgdW5kZWZpbmVkLCAyKSwgJ3V0Zi04Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbi1tZW1vcnkgY29udGV4dCBzdG9yZVxuICovXG5leHBvcnQgY2xhc3MgTWVtb3J5Q29udGV4dCBpbXBsZW1lbnRzIElDb250ZXh0U3RvcmUge1xuICBwcml2YXRlIGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgY29uc3RydWN0b3IoaW5pdGlhbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHRoaXMuY29udGV4dCA9IHsgLi4uaW5pdGlhbENvbnRleHQgfTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHVwZGF0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb250ZXh0ID0ge1xuICAgICAgLi4udGhpcy5jb250ZXh0LFxuICAgICAgLi4udXBkYXRlcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG59XG5cbi8qKlxuICogRmlsdGVyIHRoZSBnaXZlbiBjb250ZXh0LCBsZWF2aW5nIG9ubHkgZW50cmllcyB0aGF0IHNob3VsZCBiZSBwZXJzaXN0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlcnNpc3RhYmxlQ29udGV4dChjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhjb250ZXh0KVxuICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+ICFpc1RyYW5zaWVudFZhbHVlKHZhbHVlKSkpO1xufVxuXG5mdW5jdGlvbiBpc1RyYW5zaWVudFZhbHVlKHg6IHVua25vd24pIHtcbiAgcmV0dXJuIHggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmICh4IGFzIGFueSlbVFJBTlNJRU5UX0NPTlRFWFRfS0VZXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0dGluZ3NGcm9tRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxTZXR0aW5ncz4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCAndXRmLTgnKSk7XG4gICAgcmV0dXJuIG5ldyBTZXR0aW5ncyhkYXRhKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgIHJldHVybiBuZXcgU2V0dGluZ3MoKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareDefaultEnvironment = prepareDefaultEnvironment;\nexports.contextFromSettings = contextFromSettings;\nexports.synthParametersFromSettings = synthParametersFromSettings;\nexports.spaceAvailableForContext = spaceAvailableForContext;\nexports.guessExecutable = guessExecutable;\nconst path = require(\"path\");\nconst cxapi = require(\"@aws-cdk/cx-api\");\nconst fs = require(\"fs-extra\");\n/**\n * If we don't have region/account defined in context, we fall back to the default SDK behavior\n * where region is retrieved from ~/.aws/config and account is based on default credentials provider\n * chain and then STS is queried.\n *\n * This is done opportunistically: for example, if we can't access STS for some reason or the region\n * is not configured, the context value will be 'null' and there could failures down the line. In\n * some cases, synthesis does not require region/account information at all, so that might be perfectly\n * fine in certain scenarios.\n *\n * @param context - The context key/value bash.\n */\nasync function prepareDefaultEnvironment(aws, debugFn) {\n const env = {};\n env[cxapi.DEFAULT_REGION_ENV] = aws.defaultRegion;\n await debugFn(`Setting \"${cxapi.DEFAULT_REGION_ENV}\" environment variable to ${env[cxapi.DEFAULT_REGION_ENV]}`);\n const accountId = (await aws.defaultAccount())?.accountId;\n if (accountId) {\n env[cxapi.DEFAULT_ACCOUNT_ENV] = accountId;\n await debugFn(`Setting \"${cxapi.DEFAULT_ACCOUNT_ENV}\" environment variable to ${env[cxapi.DEFAULT_ACCOUNT_ENV]}`);\n }\n return env;\n}\n/**\n * Create context from settings.\n *\n * Mutates the `context` object and returns it.\n */\nfunction contextFromSettings(settings) {\n const context = {};\n const pathMetadata = settings.get(['pathMetadata']) ?? true;\n if (pathMetadata) {\n context[cxapi.PATH_METADATA_ENABLE_CONTEXT] = true;\n }\n const assetMetadata = settings.get(['assetMetadata']) ?? true;\n if (assetMetadata) {\n context[cxapi.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT] = true;\n }\n const versionReporting = settings.get(['versionReporting']) ?? true;\n if (versionReporting) {\n context[cxapi.ANALYTICS_REPORTING_ENABLED_CONTEXT] = true;\n }\n // We need to keep on doing this for framework version from before this flag was deprecated.\n if (!versionReporting) {\n context['aws:cdk:disable-version-reporting'] = true;\n }\n const stagingEnabled = settings.get(['staging']) ?? true;\n if (!stagingEnabled) {\n context[cxapi.DISABLE_ASSET_STAGING_CONTEXT] = true;\n }\n const bundlingStacks = settings.get(['bundlingStacks']) ?? ['**'];\n context[cxapi.BUNDLING_STACKS] = bundlingStacks;\n return context;\n}\n/**\n * Convert settings to context/environment variables\n */\nfunction synthParametersFromSettings(settings) {\n return {\n context: contextFromSettings(settings),\n env: {\n // An environment variable instead of a context variable, so it can also\n // be accessed in framework code where we don't have access to a construct tree.\n ...settings.get(['debug']) ? { CDK_DEBUG: 'true' } : {},\n },\n };\n}\nfunction spaceAvailableForContext(env, limit) {\n const size = (value) => value != null ? Buffer.byteLength(value) : 0;\n const usedSpace = Object.entries(env)\n .map(([k, v]) => k === cxapi.CONTEXT_ENV ? size(k) : size(k) + size(v))\n .reduce((a, b) => a + b, 0);\n return Math.max(0, limit - usedSpace);\n}\n/**\n * Guess the executable from the command-line argument\n *\n * Input is the \"app\" string the user gave us. Output is the command line we are going to execute.\n *\n * - On Windows: it's hard to verify if registry associations have or have not\n * been set up for this file type (i.e., ShellExec'ing the file will work or not),\n * so we'll assume the worst and take control ourselves.\n *\n * - On POSIX: if the file is NOT marked as executable, guess the interpreter. If it is executable,\n * the correct interpreter should be in the file's shebang and we just execute it directly.\n *\n * The behavior of only guessing the interpreter if the command line is a single file name\n * is a bit limited: we can't put a `.js` file with arguments in the command line and have\n * it work properly. Nevertheless, this is the behavior we have had for a long time and nobody\n * has really complained about it, so we'll keep it for now.\n */\nasync function guessExecutable(commandLine, debugFn) {\n // The command line with spaces in it could reference a file on disk. If true,\n // we quote it and return that, optionally by prefixing an interpreter.\n const fullFile = await checkFile(commandLine);\n if (fullFile) {\n return guessInterpreter(fullFile);\n }\n // Otherwise, the first word on the command line could reference a file on\n // disk (quoted or non-quoted). If true, we optionally prefix an interpreter.\n const [first, rest] = splitFirstShellWord(commandLine);\n const firstFile = await checkFile(first);\n if (firstFile) {\n return `${guessInterpreter(firstFile)} ${rest}`.trim();\n }\n // We couldn't parse it, so just use the given command line.\n await debugFn(`Not a file: '${commandLine}'. Using '${commandLine} as command-line`);\n return commandLine;\n}\n/**\n * Guess the right interpreter to use to execute the given file and return a (partial) command line to execute it.\n *\n * This may entail:\n *\n * - Prefixing an interpreter if necessary\n * - Quoting the file name if necessary\n */\nfunction guessInterpreter(file) {\n const isWindows = process.platform === 'win32';\n const handler = EXTENSION_MAP[path.extname(file.fileName)];\n if (handler && (!file.isExecutable || isWindows)) {\n return handler(file.fileName);\n }\n return quoteSpaces(file.fileName);\n}\n/**\n * Mapping of extensions to command-line generators\n */\nconst EXTENSION_MAP = {\n '.js': executeNode,\n};\n/**\n * Execute the given file with the same 'node' process as is running the current process\n */\nfunction executeNode(scriptFile) {\n return `${quoteSpaces(process.execPath)} ${quoteSpaces(scriptFile)}`;\n}\n/**\n * Parse off the first quoted or unquoted shell word.\n */\nfunction splitFirstShellWord(commandLine) {\n commandLine = commandLine.trim();\n if (commandLine[0] === '\"') {\n // Split on the next quote, ignore any escaping\n const endQuote = commandLine.indexOf('\"', 1);\n return endQuote > -1 ? [commandLine.slice(1, endQuote), commandLine.slice(endQuote + 1).trim()] : [commandLine, ''];\n }\n else {\n // Split on the first space\n const space = commandLine.indexOf(' ');\n return space > -1 ? [commandLine.slice(0, space), commandLine.slice(space + 1)] : [commandLine, ''];\n }\n}\n/**\n * Look up a file and see if it exists and is executable\n */\nasync function checkFile(fileName) {\n try {\n const fstat = await fs.stat(fileName);\n return {\n fileName,\n // eslint-disable-next-line no-bitwise\n isExecutable: (fstat.mode & fs.constants.X_OK) !== 0,\n };\n }\n catch {\n return undefined;\n }\n}\n/**\n * Quote a shell part if it contains spaces\n *\n * We're only interested in spaces, nothing else.\n */\nfunction quoteSpaces(part) {\n if (part.includes(' ')) {\n return `\"${part}\"`;\n }\n return part;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFCQSw4REFnQkM7QUFPRCxrREFpQ0M7QUFLRCxrRUFZQztBQUVELDREQVFDO0FBbUJELDBDQW1CQztBQTlJRCw2QkFBNkI7QUFDN0IseUNBQXlDO0FBQ3pDLCtCQUErQjtBQU8vQjs7Ozs7Ozs7Ozs7R0FXRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsR0FBZ0IsRUFDaEIsT0FBdUM7SUFFdkMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO0lBRXBCLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2xELE1BQU0sT0FBTyxDQUFDLFlBQVksS0FBSyxDQUFDLGtCQUFrQiw2QkFBNkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVoSCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDO0lBQzFELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxDQUFDLFlBQVksS0FBSyxDQUFDLG1CQUFtQiw2QkFBNkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG1CQUFtQixDQUNqQyxRQUFrQjtJQUVsQixNQUFNLE9BQU8sR0FBNEIsRUFBRSxDQUFDO0lBRTVDLE1BQU0sWUFBWSxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FB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TUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLE9BQU87WUFDTCxRQUFRO1lBQ1Isc0NBQXNDO1lBQ3RDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFPRDs7OztHQUlHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksSUFBSSxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5ncyB9IGZyb20gJy4uL3NldHRpbmdzJztcblxuZXhwb3J0IHR5cGUgRW52ID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbmV4cG9ydCB0eXBlIENvbnRleHQgPSB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfTtcblxuLyoqXG4gKiBJZiB3ZSBkb24ndCBoYXZlIHJlZ2lvbi9hY2NvdW50IGRlZmluZWQgaW4gY29udGV4dCwgd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IFNESyBiZWhhdmlvclxuICogd2hlcmUgcmVnaW9uIGlzIHJldHJpZXZlZCBmcm9tIH4vLmF3cy9jb25maWcgYW5kIGFjY291bnQgaXMgYmFzZWQgb24gZGVmYXVsdCBjcmVkZW50aWFscyBwcm92aWRlclxuICogY2hhaW4gYW5kIHRoZW4gU1RTIGlzIHF1ZXJpZWQuXG4gKlxuICogVGhpcyBpcyBkb25lIG9wcG9ydHVuaXN0aWNhbGx5OiBmb3IgZXhhbXBsZSwgaWYgd2UgY2FuJ3QgYWNjZXNzIFNUUyBmb3Igc29tZSByZWFzb24gb3IgdGhlIHJlZ2lvblxuICogaXMgbm90IGNvbmZpZ3VyZWQsIHRoZSBjb250ZXh0IHZhbHVlIHdpbGwgYmUgJ251bGwnIGFuZCB0aGVyZSBjb3VsZCBmYWlsdXJlcyBkb3duIHRoZSBsaW5lLiBJblxuICogc29tZSBjYXNlcywgc3ludGhlc2lzIGRvZXMgbm90IHJlcXVpcmUgcmVnaW9uL2FjY291bnQgaW5mb3JtYXRpb24gYXQgYWxsLCBzbyB0aGF0IG1pZ2h0IGJlIHBlcmZlY3RseVxuICogZmluZSBpbiBjZXJ0YWluIHNjZW5hcmlvcy5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IGtleS92YWx1ZSBiYXNoLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZURlZmF1bHRFbnZpcm9ubWVudChcbiAgYXdzOiBTZGtQcm92aWRlcixcbiAgZGVidWdGbjogKG1zZzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+LFxuKTogUHJvbWlzZTxFbnY+IHtcbiAgY29uc3QgZW52OiBFbnYgPSB7fTtcblxuICBlbnZbY3hhcGkuREVGQVVMVF9SRUdJT05fRU5WXSA9IGF3cy5kZWZhdWx0UmVnaW9uO1xuICBhd2FpdCBkZWJ1Z0ZuKGBTZXR0aW5nIFwiJHtjeGFwaS5ERUZBVUxUX1JFR0lPTl9FTlZ9XCIgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gJHtlbnZbY3hhcGkuREVGQVVMVF9SRUdJT05fRU5WXX1gKTtcblxuICBjb25zdCBhY2NvdW50SWQgPSAoYXdhaXQgYXdzLmRlZmF1bHRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG4gIGlmIChhY2NvdW50SWQpIHtcbiAgICBlbnZbY3hhcGkuREVGQVVMVF9BQ0NPVU5UX0VOVl0gPSBhY2NvdW50SWQ7XG4gICAgYXdhaXQgZGVidWdGbihgU2V0dGluZyBcIiR7Y3hhcGkuREVGQVVMVF9BQ0NPVU5UX0VOVn1cIiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byAke2VudltjeGFwaS5ERUZBVUxUX0FDQ09VTlRfRU5WXX1gKTtcbiAgfVxuXG4gIHJldHVybiBlbnY7XG59XG5cbi8qKlxuICogQ3JlYXRlIGNvbnRleHQgZnJvbSBzZXR0aW5ncy5cbiAqXG4gKiBNdXRhdGVzIHRoZSBgY29udGV4dGAgb2JqZWN0IGFuZCByZXR1cm5zIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udGV4dEZyb21TZXR0aW5ncyhcbiAgc2V0dGluZ3M6IFNldHRpbmdzLFxuKSB7XG4gIGNvbnN0IGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgY29uc3QgcGF0aE1ldGFkYXRhOiBib29sZWFuID0gc2V0dGluZ3MuZ2V0KFsncGF0aE1ldGFkYXRhJ10pID8/IHRydWU7XG4gIGlmIChwYXRoTWV0YWRhdGEpIHtcbiAgICBjb250ZXh0W2N4YXBpLlBBVEhfTUVUQURBVEFfRU5BQkxFX0NPTlRFWFRdID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGFzc2V0TWV0YWRhdGE6IGJvb2xlYW4gPSBzZXR0aW5ncy5nZXQoWydhc3NldE1ldGFkYXRhJ10pID8/IHRydWU7XG4gIGlmIChhc3NldE1ldGFkYXRhKSB7XG4gICAgY29udGV4dFtjeGFwaS5BU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9FTkFCTEVEX0NPTlRFWFRdID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25SZXBvcnRpbmc6IGJvb2xlYW4gPSBzZXR0aW5ncy5nZXQoWyd2ZXJzaW9uUmVwb3J0aW5nJ10pID8/IHRydWU7XG4gIGlmICh2ZXJzaW9uUmVwb3J0aW5nKSB7XG4gICAgY29udGV4dFtjeGFwaS5BTkFMWVRJQ1NfUkVQT1JUSU5HX0VOQUJMRURfQ09OVEVYVF0gPSB0cnVlO1xuICB9XG4gIC8vIFdlIG5lZWQgdG8ga2VlcCBvbiBkb2luZyB0aGlzIGZvciBmcmFtZXdvcmsgdmVyc2lvbiBmcm9tIGJlZm9yZSB0aGlzIGZsYWcgd2FzIGRlcHJlY2F0ZWQuXG4gIGlmICghdmVyc2lvblJlcG9ydGluZykge1xuICAgIGNvbnRleHRbJ2F3czpjZGs6ZGlzYWJsZS12ZXJzaW9uLXJlcG9ydGluZyddID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IHN0YWdpbmdFbmFibGVkID0gc2V0dGluZ3MuZ2V0KFsnc3RhZ2luZyddKSA/PyB0cnVlO1xuICBpZiAoIXN0YWdpbmdFbmFibGVkKSB7XG4gICAgY29udGV4dFtjeGFwaS5ESVNBQkxFX0FTU0VUX1NUQUdJTkdfQ09OVEVYVF0gPSB0cnVlO1xuICB9XG5cbiAgY29uc3QgYnVuZGxpbmdTdGFja3MgPSBzZXR0aW5ncy5nZXQoWydidW5kbGluZ1N0YWNrcyddKSA/PyBbJyoqJ107XG4gIGNvbnRleHRbY3hhcGkuQlVORExJTkdfU1RBQ0tTXSA9IGJ1bmRsaW5nU3RhY2tzO1xuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG4vKipcbiAqIENvbnZlcnQgc2V0dGluZ3MgdG8gY29udGV4dC9lbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN5bnRoUGFyYW1ldGVyc0Zyb21TZXR0aW5ncyhzZXR0aW5nczogU2V0dGluZ3MpOiB7XG4gIGNvbnRleHQ6IENvbnRleHQ7XG4gIGVudjogRW52O1xufSB7XG4gIHJldHVybiB7XG4gICAgY29udGV4dDogY29udGV4dEZyb21TZXR0aW5ncyhzZXR0aW5ncyksXG4gICAgZW52OiB7XG4gICAgICAvLyBBbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgY29udGV4dCB2YXJpYWJsZSwgc28gaXQgY2FuIGFsc29cbiAgICAgIC8vIGJlIGFjY2Vzc2VkIGluIGZyYW1ld29yayBjb2RlIHdoZXJlIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGEgY29uc3RydWN0IHRyZWUuXG4gICAgICAuLi5zZXR0aW5ncy5nZXQoWydkZWJ1ZyddKSA/IHsgQ0RLX0RFQlVHOiAndHJ1ZScgfSA6IHt9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGFjZUF2YWlsYWJsZUZvckNvbnRleHQoZW52OiBFbnYsIGxpbWl0OiBudW1iZXIpIHtcbiAgY29uc3Qgc2l6ZSA9ICh2YWx1ZT86IHN0cmluZykgPT4gdmFsdWUgIT0gbnVsbCA/IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlKSA6IDA7XG5cbiAgY29uc3QgdXNlZFNwYWNlID0gT2JqZWN0LmVudHJpZXMoZW52KVxuICAgIC5tYXAoKFtrLCB2XSkgPT4gayA9PT0gY3hhcGkuQ09OVEVYVF9FTlYgPyBzaXplKGspIDogc2l6ZShrKSArIHNpemUodikpXG4gICAgLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApO1xuXG4gIHJldHVybiBNYXRoLm1heCgwLCBsaW1pdCAtIHVzZWRTcGFjZSk7XG59XG5cbi8qKlxuICogR3Vlc3MgdGhlIGV4ZWN1dGFibGUgZnJvbSB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50XG4gKlxuICogSW5wdXQgaXMgdGhlIFwiYXBwXCIgc3RyaW5nIHRoZSB1c2VyIGdhdmUgdXMuIE91dHB1dCBpcyB0aGUgY29tbWFuZCBsaW5lIHdlIGFyZSBnb2luZyB0byBleGVjdXRlLlxuICpcbiAqIC0gT24gV2luZG93czogaXQncyBoYXJkIHRvIHZlcmlmeSBpZiByZWdpc3RyeSBhc3NvY2lhdGlvbnMgaGF2ZSBvciBoYXZlIG5vdFxuICogICBiZWVuIHNldCB1cCBmb3IgdGhpcyBmaWxlIHR5cGUgKGkuZS4sIFNoZWxsRXhlYydpbmcgdGhlIGZpbGUgd2lsbCB3b3JrIG9yIG5vdCksXG4gKiAgIHNvIHdlJ2xsIGFzc3VtZSB0aGUgd29yc3QgYW5kIHRha2UgY29udHJvbCBvdXJzZWx2ZXMuXG4gKlxuICogLSBPbiBQT1NJWDogaWYgdGhlIGZpbGUgaXMgTk9UIG1hcmtlZCBhcyBleGVjdXRhYmxlLCBndWVzcyB0aGUgaW50ZXJwcmV0ZXIuIElmIGl0IGlzIGV4ZWN1dGFibGUsXG4gKiAgIHRoZSBjb3JyZWN0IGludGVycHJldGVyIHNob3VsZCBiZSBpbiB0aGUgZmlsZSdzIHNoZWJhbmcgYW5kIHdlIGp1c3QgZXhlY3V0ZSBpdCBkaXJlY3RseS5cbiAqXG4gKiBUaGUgYmVoYXZpb3Igb2Ygb25seSBndWVzc2luZyB0aGUgaW50ZXJwcmV0ZXIgaWYgdGhlIGNvbW1hbmQgbGluZSBpcyBhIHNpbmdsZSBmaWxlIG5hbWVcbiAqIGlzIGEgYml0IGxpbWl0ZWQ6IHdlIGNhbid0IHB1dCBhIGAuanNgIGZpbGUgd2l0aCBhcmd1bWVudHMgaW4gdGhlIGNvbW1hbmQgbGluZSBhbmQgaGF2ZVxuICogaXQgd29yayBwcm9wZXJseS4gTmV2ZXJ0aGVsZXNzLCB0aGlzIGlzIHRoZSBiZWhhdmlvciB3ZSBoYXZlIGhhZCBmb3IgYSBsb25nIHRpbWUgYW5kIG5vYm9keVxuICogaGFzIHJlYWxseSBjb21wbGFpbmVkIGFib3V0IGl0LCBzbyB3ZSdsbCBrZWVwIGl0IGZvciBub3cuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBndWVzc0V4ZWN1dGFibGUoY29tbWFuZExpbmU6IHN0cmluZywgZGVidWdGbjogKG1zZzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgLy8gVGhlIGNvbW1hbmQgbGluZSB3aXRoIHNwYWNlcyBpbiBpdCBjb3VsZCByZWZlcmVuY2UgYSBmaWxlIG9uIGRpc2suIElmIHRydWUsXG4gIC8vIHdlIHF1b3RlIGl0IGFuZCByZXR1cm4gdGhhdCwgb3B0aW9uYWxseSBieSBwcmVmaXhpbmcgYW4gaW50ZXJwcmV0ZXIuXG4gIGNvbnN0IGZ1bGxGaWxlID0gYXdhaXQgY2hlY2tGaWxlKGNvbW1hbmRMaW5lKTtcbiAgaWYgKGZ1bGxGaWxlKSB7XG4gICAgcmV0dXJuIGd1ZXNzSW50ZXJwcmV0ZXIoZnVsbEZpbGUpO1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB0aGUgZmlyc3Qgd29yZCBvbiB0aGUgY29tbWFuZCBsaW5lIGNvdWxkIHJlZmVyZW5jZSBhIGZpbGUgb25cbiAgLy8gZGlzayAocXVvdGVkIG9yIG5vbi1xdW90ZWQpLiBJZiB0cnVlLCB3ZSBvcHRpb25hbGx5IHByZWZpeCBhbiBpbnRlcnByZXRlci5cbiAgY29uc3QgW2ZpcnN0LCByZXN0XSA9IHNwbGl0Rmlyc3RTaGVsbFdvcmQoY29tbWFuZExpbmUpO1xuICBjb25zdCBmaXJzdEZpbGUgPSBhd2FpdCBjaGVja0ZpbGUoZmlyc3QpO1xuICBpZiAoZmlyc3RGaWxlKSB7XG4gICAgcmV0dXJuIGAke2d1ZXNzSW50ZXJwcmV0ZXIoZmlyc3RGaWxlKX0gJHtyZXN0fWAudHJpbSgpO1xuICB9XG5cbiAgLy8gV2UgY291bGRuJ3QgcGFyc2UgaXQsIHNvIGp1c3QgdXNlIHRoZSBnaXZlbiBjb21tYW5kIGxpbmUuXG4gIGF3YWl0IGRlYnVnRm4oYE5vdCBhIGZpbGU6ICcke2NvbW1hbmRMaW5lfScuIFVzaW5nICcke2NvbW1hbmRMaW5lfSBhcyBjb21tYW5kLWxpbmVgKTtcbiAgcmV0dXJuIGNvbW1hbmRMaW5lO1xufVxuXG4vKipcbiAqIEd1ZXNzIHRoZSByaWdodCBpbnRlcnByZXRlciB0byB1c2UgdG8gZXhlY3V0ZSB0aGUgZ2l2ZW4gZmlsZSBhbmQgcmV0dXJuIGEgKHBhcnRpYWwpIGNvbW1hbmQgbGluZSB0byBleGVjdXRlIGl0LlxuICpcbiAqIFRoaXMgbWF5IGVudGFpbDpcbiAqXG4gKiAtIFByZWZpeGluZyBhbiBpbnRlcnByZXRlciBpZiBuZWNlc3NhcnlcbiAqIC0gUXVvdGluZyB0aGUgZmlsZSBuYW1lIGlmIG5lY2Vzc2FyeVxuICovXG5mdW5jdGlvbiBndWVzc0ludGVycHJldGVyKGZpbGU6IEZpbGVJbmZvKTogc3RyaW5nIHtcbiAgY29uc3QgaXNXaW5kb3dzID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJztcblxuICBjb25zdCBoYW5kbGVyID0gRVhURU5TSU9OX01BUFtwYXRoLmV4dG5hbWUoZmlsZS5maWxlTmFtZSldO1xuICBpZiAoaGFuZGxlciAmJiAoIWZpbGUuaXNFeGVjdXRhYmxlIHx8IGlzV2luZG93cykpIHtcbiAgICByZXR1cm4gaGFuZGxlcihmaWxlLmZpbGVOYW1lKTtcbiAgfVxuXG4gIHJldHVybiBxdW90ZVNwYWNlcyhmaWxlLmZpbGVOYW1lKTtcbn1cblxuLyoqXG4gKiBNYXBwaW5nIG9mIGV4dGVuc2lvbnMgdG8gY29tbWFuZC1saW5lIGdlbmVyYXRvcnNcbiAqL1xuY29uc3QgRVhURU5TSU9OX01BUDogUmVjb3JkPHN0cmluZywgQ29tbWFuZEdlbmVyYXRvcj4gPSB7XG4gICcuanMnOiBleGVjdXRlTm9kZSxcbn07XG5cbnR5cGUgQ29tbWFuZEdlbmVyYXRvciA9IChmaWxlOiBzdHJpbmcpID0+IHN0cmluZztcblxuLyoqXG4gKiBFeGVjdXRlIHRoZSBnaXZlbiBmaWxlIHdpdGggdGhlIHNhbWUgJ25vZGUnIHByb2Nlc3MgYXMgaXMgcnVubmluZyB0aGUgY3VycmVudCBwcm9jZXNzXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVOb2RlKHNjcmlwdEZpbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtxdW90ZVNwYWNlcyhwcm9jZXNzLmV4ZWNQYXRoKX0gJHtxdW90ZVNwYWNlcyhzY3JpcHRGaWxlKX1gO1xufVxuXG4vKipcbiAqIFBhcnNlIG9mZiB0aGUgZmlyc3QgcXVvdGVkIG9yIHVucXVvdGVkIHNoZWxsIHdvcmQuXG4gKi9cbmZ1bmN0aW9uIHNwbGl0Rmlyc3RTaGVsbFdvcmQoY29tbWFuZExpbmU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10ge1xuICBjb21tYW5kTGluZSA9IGNvbW1hbmRMaW5lLnRyaW0oKTtcbiAgaWYgKGNvbW1hbmRMaW5lWzBdID09PSAnXCInKSB7XG4gICAgLy8gU3BsaXQgb24gdGhlIG5leHQgcXVvdGUsIGlnbm9yZSBhbnkgZXNjYXBpbmdcbiAgICBjb25zdCBlbmRRdW90ZSA9IGNvbW1hbmRMaW5lLmluZGV4T2YoJ1wiJywgMSk7XG4gICAgcmV0dXJuIGVuZFF1b3RlID4gLTEgPyBbY29tbWFuZExpbmUuc2xpY2UoMSwgZW5kUXVvdGUpLCBjb21tYW5kTGluZS5zbGljZShlbmRRdW90ZSArIDEpLnRyaW0oKV0gOiBbY29tbWFuZExpbmUsICcnXTtcbiAgfSBlbHNlIHtcbiAgICAvLyBTcGxpdCBvbiB0aGUgZmlyc3Qgc3BhY2VcbiAgICBjb25zdCBzcGFjZSA9IGNvbW1hbmRMaW5lLmluZGV4T2YoJyAnKTtcbiAgICByZXR1cm4gc3BhY2UgPiAtMSA/IFtjb21tYW5kTGluZS5zbGljZSgwLCBzcGFjZSksIGNvbW1hbmRMaW5lLnNsaWNlKHNwYWNlICsgMSldIDogW2NvbW1hbmRMaW5lLCAnJ107XG4gIH1cbn1cblxuLyoqXG4gKiBMb29rIHVwIGEgZmlsZSBhbmQgc2VlIGlmIGl0IGV4aXN0cyBhbmQgaXMgZXhlY3V0YWJsZVxuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja0ZpbGUoZmlsZU5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZUluZm8gfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBmc3RhdCA9IGF3YWl0IGZzLnN0YXQoZmlsZU5hbWUpO1xuICAgIHJldHVybiB7XG4gICAgICBmaWxlTmFtZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgICBpc0V4ZWN1dGFibGU6IChmc3RhdC5tb2RlICYgZnMuY29uc3RhbnRzLlhfT0spICE9PSAwLFxuICAgIH07XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEZpbGVJbmZvIHtcbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgaXNFeGVjdXRhYmxlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFF1b3RlIGEgc2hlbGwgcGFydCBpZiBpdCBjb250YWlucyBzcGFjZXNcbiAqXG4gKiBXZSdyZSBvbmx5IGludGVyZXN0ZWQgaW4gc3BhY2VzLCBub3RoaW5nIGVsc2UuXG4gKi9cbmZ1bmN0aW9uIHF1b3RlU3BhY2VzKHBhcnQ6IHN0cmluZykge1xuICBpZiAocGFydC5pbmNsdWRlcygnICcpKSB7XG4gICAgcmV0dXJuIGBcIiR7cGFydH1cImA7XG4gIH1cbiAgcmV0dXJuIHBhcnQ7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackSelectionStrategy = exports.ExpandStackSelection = void 0;\nvar stack_selector_1 = require(\"./stack-selector\");\nObject.defineProperty(exports, \"ExpandStackSelection\", { enumerable: true, get: function () { return stack_selector_1.ExpandStackSelection; } });\nObject.defineProperty(exports, \"StackSelectionStrategy\", { enumerable: true, get: function () { return stack_selector_1.StackSelectionStrategy; } });\n__exportStar(require(\"./cached-source\"), exports);\n__exportStar(require(\"./source-builder\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./context-store\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFnRjtBQUF2RSxzSEFBQSxvQkFBb0IsT0FBQTtBQUFFLHdIQUFBLHNCQUFzQixPQUFBO0FBRXJELGtEQUFnQztBQUNoQyxtREFBaUM7QUFDakMsMENBQXdCO0FBQ3hCLGtEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEV4cGFuZFN0YWNrU2VsZWN0aW9uLCBTdGFja1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9zdGFjay1zZWxlY3Rvcic7XG5leHBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuL3N0YWNrLXNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY2FjaGVkLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NvdXJjZS1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LXN0b3JlJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BorrowedAssembly = void 0;\nrequire(\"../../../private/dispose-polyfill\");\n/**\n * An implementation of `IReadableCloudAssembly` that does nothing except hold on to the CloudAssembly object\n *\n * It does not own a lock, and it does not clean the underlying directory.\n */\nclass BorrowedAssembly {\n cloudAssembly;\n constructor(cloudAssembly) {\n this.cloudAssembly = cloudAssembly;\n }\n async _unlock() {\n }\n async dispose() {\n }\n async [Symbol.asyncDispose]() {\n }\n}\nexports.BorrowedAssembly = BorrowedAssembly;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93ZWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJib3Jyb3dlZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFJM0M7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWdCO0lBQ0M7SUFBNUIsWUFBNEIsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO0lBQzlELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztJQUNwQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBWkQsNENBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uLy4uLy4uL3ByaXZhdGUvZGlzcG9zZS1wb2x5ZmlsbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYElSZWFkYWJsZUNsb3VkQXNzZW1ibHlgIHRoYXQgZG9lcyBub3RoaW5nIGV4Y2VwdCBob2xkIG9uIHRvIHRoZSBDbG91ZEFzc2VtYmx5IG9iamVjdFxuICpcbiAqIEl0IGRvZXMgbm90IG93biBhIGxvY2ssIGFuZCBpdCBkb2VzIG5vdCBjbGVhbiB0aGUgdW5kZXJseWluZyBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dlZEFzc2VtYmx5IGltcGxlbWVudHMgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbG91ZEFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5KSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxufVxuXG4iXX0=","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextAwareCloudAssemblySource = void 0;\nconst disposable_box_1 = require(\"./disposable-box\");\nconst contextproviders = require(\"../../../context-providers\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst private_1 = require(\"../../io/private\");\nconst helpers_1 = require(\"./helpers\");\nconst sets_1 = require(\"../../../util/sets\");\n/**\n * A CloudAssemblySource that wraps another CloudAssemblySource and runs a lookup loop on it\n *\n * This means that if the underlying CloudAssemblySource produces a manifest\n * with provider queries in it, the `ContextAwareCloudAssemblySource` will\n * perform the necessary context lookups and invoke the underlying\n * `CloudAssemblySource` again with thew missing context information.\n *\n * This is only useful if the underlying `CloudAssemblySource` can respond to\n * this new context information (it must be a CDK app source); if it is just a\n * static directory, then the contents of the assembly won't change in response\n * to context.\n *\n * The context is passed between `ContextAwareCloudAssemblySource` and the wrapped\n * cloud assembly source via a contex file on disk, so the wrapped assembly source\n * should re-read the context file on every invocation.\n */\nclass ContextAwareCloudAssemblySource {\n source;\n props;\n canLookup;\n context;\n ioHelper;\n constructor(source, props) {\n this.source = source;\n this.props = props;\n this.canLookup = props.lookups ?? true;\n this.context = props.contextStore;\n this.ioHelper = props.services.ioHelper;\n }\n /**\n * Produce a Cloud Assembly, i.e. a set of stacks\n */\n async produce() {\n // We may need to run the cloud assembly source multiple times in order to satisfy all missing context\n // (When the source producer runs, it will tell us about context it wants to use\n // but it missing. We'll then look up the context and run the executable again, and\n // again, until it doesn't complain anymore or we've stopped making progress).\n let previouslyMissingKeys;\n while (true) {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const readableAsm = __addDisposableResource(env_1, new disposable_box_1.AsyncDisposableBox(await this.source.produce()), true);\n const assembly = readableAsm.value.cloudAssembly;\n if (assembly.manifest.missing && assembly.manifest.missing.length > 0) {\n const missingKeysSet = (0, helpers_1.missingContextKeys)(assembly.manifest.missing);\n const missingKeys = Array.from(missingKeysSet);\n if (!this.canLookup) {\n throw new toolkit_error_1.ToolkitError('ContextLookupsDisabled', 'Context lookups have been disabled. '\n + 'Make sure all necessary context is already in \\'cdk.context.json\\' by running \\'cdk synth\\' on a machine with sufficient AWS credentials and committing the result. '\n + `Missing context keys: '${missingKeys.join(', ')}'`);\n }\n let tryLookup = true;\n if (previouslyMissingKeys && (0, sets_1.equalSets)(missingKeysSet, previouslyMissingKeys)) {\n await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0240.msg('Not making progress trying to resolve environmental context. Giving up.', { missingKeys }));\n tryLookup = false;\n }\n previouslyMissingKeys = missingKeysSet;\n if (tryLookup) {\n await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0241.msg('Some context information is missing. Fetching...', { missingKeys }));\n const contextUpdates = await contextproviders.provideContextValues(assembly.manifest.missing, this.props.services.sdkProvider, this.props.services.pluginHost, this.ioHelper);\n await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0042.msg('Writing context updates...', {\n context: contextUpdates,\n }));\n await this.context.update(contextUpdates);\n // Execute again. Unlock the assembly here so that the producer can acquire\n // a read lock on the directory again.\n await readableAsm.value._unlock();\n continue;\n }\n }\n return readableAsm.take();\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n }\n }\n}\nexports.ContextAwareCloudAssemblySource = ContextAwareCloudAssemblySource;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1hd2FyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250ZXh0LWF3YXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXNEO0FBQ3RELCtEQUErRDtBQUUvRCxrRUFBOEQ7QUFFOUQsOENBQXNDO0FBR3RDLHVDQUErQztBQUMvQyw2Q0FBK0M7QUF3Qi9DOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBYSwrQkFBK0I7SUFLYjtJQUErQztJQUpwRSxTQUFTLENBQVU7SUFDbkIsT0FBTyxDQUFnQjtJQUN2QixRQUFRLENBQVc7SUFFM0IsWUFBNkIsTUFBNEIsRUFBbUIsS0FBcUM7UUFBcEYsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFBbUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDL0csSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTztRQUNsQixzR0FBc0c7UUFDdEcsZ0ZBQWdGO1FBQ2hGLG1GQUFtRjtRQUNuRiw4RUFBOEU7UUFDOUUsSUFBSSxxQkFBOEMsQ0FBQztRQUNuRCxPQUFPLElBQUksRUFBRSxDQUFDOzs7Z0JBQ1osTUFBWSxXQUFXLGtDQUFHLElBQUksbUNBQWtCLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQUEsQ0FBQztnQkFFOUUsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ2pELElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN0RSxNQUFNLGNBQWMsR0FBRyxJQUFBLDRCQUFrQixFQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3JFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBRS9DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3BCLE1BQU0sSUFBSSw0QkFBWSxDQUNwQix3QkFBd0IsRUFDeEIsc0NBQXNDOzhCQUNwQyxzS0FBc0s7OEJBQ3RLLDBCQUEwQixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0QsQ0FBQztvQkFFRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLElBQUkscUJBQXFCLElBQUksSUFBQSxnQkFBUyxFQUFDLGNBQWMsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7d0JBQzlFLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyx5RUFBeUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDbEosU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDcEIsQ0FBQztvQkFFRCxxQkFBcUIsR0FBRyxjQUFjLENBQUM7b0JBRXZDLElBQUksU0FBUyxFQUFFLENBQUM7d0JBQ2QsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUMzSCxNQUFNLGNBQWMsR0FBRyxNQUFNLGdCQUFnQixDQUFDLG9CQUFvQixDQUNoRSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQzlCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQzt3QkFFRixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUU7NEJBQ2pGLE9BQU8sRUFBRSxjQUFjO3lCQUN4QixDQUFDLENBQUMsQ0FBQzt3QkFDSixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUUxQywyRUFBMkU7d0JBQzNFLHNDQUFzQzt3QkFDdEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNsQyxTQUFTO29CQUNYLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7U0FDM0I7SUFDSCxDQUFDO0NBQ0Y7QUFwRUQsMEVBb0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNEaXNwb3NhYmxlQm94IH0gZnJvbSAnLi9kaXNwb3NhYmxlLWJveCc7XG5pbXBvcnQgKiBhcyBjb250ZXh0cHJvdmlkZXJzIGZyb20gJy4uLy4uLy4uL2NvbnRleHQtcHJvdmlkZXJzJztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uLy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dFN0b3JlIH0gZnJvbSAnLi4vY29udGV4dC1zdG9yZSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlLCBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbWlzc2luZ0NvbnRleHRLZXlzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGVxdWFsU2V0cyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvc2V0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzIHtcbiAgLyoqXG4gICAqIEFXUyBvYmplY3QgKHVzZWQgYnkgY29udGV4dHByb3ZpZGVyKVxuICAgKiBAZGVwcmVjYXRlZCBjb250ZXh0IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgdG9vbGtpdCBpdHNlbGZcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXM7XG5cbiAgLyoqXG4gICAqIExvY2F0aW9uIHRvIHJlYWQgYW5kIHdyaXRlIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRTdG9yZTogSUNvbnRleHRTdG9yZTtcblxuICAvKipcbiAgICogRW5hYmxlIGNvbnRleHQgbG9va3Vwcy5cbiAgICpcbiAgICogUHJvZHVjaW5nIGEgYGN4YXBpLkNsb3VkQXNzZW1ibHlgIHdpbGwgZmFpbCBpZiB0aGlzIGlzIGRpc2FibGVkIGFuZCBjb250ZXh0IGxvb2t1cHMgbmVlZCB0byBiZSBwZXJmb3JtZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseVNvdXJjZSB0aGF0IHdyYXBzIGFub3RoZXIgQ2xvdWRBc3NlbWJseVNvdXJjZSBhbmQgcnVucyBhIGxvb2t1cCBsb29wIG9uIGl0XG4gKlxuICogVGhpcyBtZWFucyB0aGF0IGlmIHRoZSB1bmRlcmx5aW5nIENsb3VkQXNzZW1ibHlTb3VyY2UgcHJvZHVjZXMgYSBtYW5pZmVzdFxuICogd2l0aCBwcm92aWRlciBxdWVyaWVzIGluIGl0LCB0aGUgYENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2VgIHdpbGxcbiAqIHBlcmZvcm0gdGhlIG5lY2Vzc2FyeSBjb250ZXh0IGxvb2t1cHMgYW5kIGludm9rZSB0aGUgdW5kZXJseWluZ1xuICogYENsb3VkQXNzZW1ibHlTb3VyY2VgIGFnYWluIHdpdGggdGhldyBtaXNzaW5nIGNvbnRleHQgaW5mb3JtYXRpb24uXG4gKlxuICogVGhpcyBpcyBvbmx5IHVzZWZ1bCBpZiB0aGUgdW5kZXJseWluZyBgQ2xvdWRBc3NlbWJseVNvdXJjZWAgY2FuIHJlc3BvbmQgdG9cbiAqIHRoaXMgbmV3IGNvbnRleHQgaW5mb3JtYXRpb24gKGl0IG11c3QgYmUgYSBDREsgYXBwIHNvdXJjZSk7IGlmIGl0IGlzIGp1c3QgYVxuICogc3RhdGljIGRpcmVjdG9yeSwgdGhlbiB0aGUgY29udGVudHMgb2YgdGhlIGFzc2VtYmx5IHdvbid0IGNoYW5nZSBpbiByZXNwb25zZVxuICogdG8gY29udGV4dC5cbiAqXG4gKiBUaGUgY29udGV4dCBpcyBwYXNzZWQgYmV0d2VlbiBgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZWAgYW5kIHRoZSB3cmFwcGVkXG4gKiBjbG91ZCBhc3NlbWJseSBzb3VyY2UgdmlhIGEgY29udGV4IGZpbGUgb24gZGlzaywgc28gdGhlIHdyYXBwZWQgYXNzZW1ibHkgc291cmNlXG4gKiBzaG91bGQgcmUtcmVhZCB0aGUgY29udGV4dCBmaWxlIG9uIGV2ZXJ5IGludm9jYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlIGltcGxlbWVudHMgSUNsb3VkQXNzZW1ibHlTb3VyY2Uge1xuICBwcml2YXRlIGNhbkxvb2t1cDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBjb250ZXh0OiBJQ29udGV4dFN0b3JlO1xuICBwcml2YXRlIGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNvdXJjZTogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcykge1xuICAgIHRoaXMuY2FuTG9va3VwID0gcHJvcHMubG9va3VwcyA/PyB0cnVlO1xuICAgIHRoaXMuY29udGV4dCA9IHByb3BzLmNvbnRleHRTdG9yZTtcbiAgICB0aGlzLmlvSGVscGVyID0gcHJvcHMuc2VydmljZXMuaW9IZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICogUHJvZHVjZSBhIENsb3VkIEFzc2VtYmx5LCBpLmUuIGEgc2V0IG9mIHN0YWNrc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHByb2R1Y2UoKTogUHJvbWlzZTxJUmVhZGFibGVDbG91ZEFzc2VtYmx5PiB7XG4gICAgLy8gV2UgbWF5IG5lZWQgdG8gcnVuIHRoZSBjbG91ZCBhc3NlbWJseSBzb3VyY2UgbXVsdGlwbGUgdGltZXMgaW4gb3JkZXIgdG8gc2F0aXNmeSBhbGwgbWlzc2luZyBjb250ZXh0XG4gICAgLy8gKFdoZW4gdGhlIHNvdXJjZSBwcm9kdWNlciBydW5zLCBpdCB3aWxsIHRlbGwgdXMgYWJvdXQgY29udGV4dCBpdCB3YW50cyB0byB1c2VcbiAgICAvLyBidXQgaXQgbWlzc2luZy4gV2UnbGwgdGhlbiBsb29rIHVwIHRoZSBjb250ZXh0IGFuZCBydW4gdGhlIGV4ZWN1dGFibGUgYWdhaW4sIGFuZFxuICAgIC8vIGFnYWluLCB1bnRpbCBpdCBkb2Vzbid0IGNvbXBsYWluIGFueW1vcmUgb3Igd2UndmUgc3RvcHBlZCBtYWtpbmcgcHJvZ3Jlc3MpLlxuICAgIGxldCBwcmV2aW91c2x5TWlzc2luZ0tleXM6IFNldDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBhd2FpdCB1c2luZyByZWFkYWJsZUFzbSA9IG5ldyBBc3luY0Rpc3Bvc2FibGVCb3goYXdhaXQgdGhpcy5zb3VyY2UucHJvZHVjZSgpKTtcblxuICAgICAgY29uc3QgYXNzZW1ibHkgPSByZWFkYWJsZUFzbS52YWx1ZS5jbG91ZEFzc2VtYmx5O1xuICAgICAgaWYgKGFzc2VtYmx5Lm1hbmlmZXN0Lm1pc3NpbmcgJiYgYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdLZXlzU2V0ID0gbWlzc2luZ0NvbnRleHRLZXlzKGFzc2VtYmx5Lm1hbmlmZXN0Lm1pc3NpbmcpO1xuICAgICAgICBjb25zdCBtaXNzaW5nS2V5cyA9IEFycmF5LmZyb20obWlzc2luZ0tleXNTZXQpO1xuXG4gICAgICAgIGlmICghdGhpcy5jYW5Mb29rdXApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICAgJ0NvbnRleHRMb29rdXBzRGlzYWJsZWQnLFxuICAgICAgICAgICAgJ0NvbnRleHQgbG9va3VwcyBoYXZlIGJlZW4gZGlzYWJsZWQuICdcbiAgICAgICAgICAgICsgJ01ha2Ugc3VyZSBhbGwgbmVjZXNzYXJ5IGNvbnRleHQgaXMgYWxyZWFkeSBpbiBcXCdjZGsuY29udGV4dC5qc29uXFwnIGJ5IHJ1bm5pbmcgXFwnY2RrIHN5bnRoXFwnIG9uIGEgbWFjaGluZSB3aXRoIHN1ZmZpY2llbnQgQVdTIGNyZWRlbnRpYWxzIGFuZCBjb21taXR0aW5nIHRoZSByZXN1bHQuICdcbiAgICAgICAgICAgICsgYE1pc3NpbmcgY29udGV4dCBrZXlzOiAnJHttaXNzaW5nS2V5cy5qb2luKCcsICcpfSdgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0cnlMb29rdXAgPSB0cnVlO1xuICAgICAgICBpZiAocHJldmlvdXNseU1pc3NpbmdLZXlzICYmIGVxdWFsU2V0cyhtaXNzaW5nS2V5c1NldCwgcHJldmlvdXNseU1pc3NpbmdLZXlzKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDI0MC5tc2coJ05vdCBtYWtpbmcgcHJvZ3Jlc3MgdHJ5aW5nIHRvIHJlc29sdmUgZW52aXJvbm1lbnRhbCBjb250ZXh0LiBHaXZpbmcgdXAuJywgeyBtaXNzaW5nS2V5cyB9KSk7XG4gICAgICAgICAgdHJ5TG9va3VwID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c2x5TWlzc2luZ0tleXMgPSBtaXNzaW5nS2V5c1NldDtcblxuICAgICAgICBpZiAodHJ5TG9va3VwKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMjQxLm1zZygnU29tZSBjb250ZXh0IGluZm9ybWF0aW9uIGlzIG1pc3NpbmcuIEZldGNoaW5nLi4uJywgeyBtaXNzaW5nS2V5cyB9KSk7XG4gICAgICAgICAgY29uc3QgY29udGV4dFVwZGF0ZXMgPSBhd2FpdCBjb250ZXh0cHJvdmlkZXJzLnByb3ZpZGVDb250ZXh0VmFsdWVzKFxuICAgICAgICAgICAgYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZyxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc2VydmljZXMuc2RrUHJvdmlkZXIsXG4gICAgICAgICAgICB0aGlzLnByb3BzLnNlcnZpY2VzLnBsdWdpbkhvc3QsXG4gICAgICAgICAgICB0aGlzLmlvSGVscGVyLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAwNDIubXNnKCdXcml0aW5nIGNvbnRleHQgdXBkYXRlcy4uLicsIHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHRVcGRhdGVzLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRleHQudXBkYXRlKGNvbnRleHRVcGRhdGVzKTtcblxuICAgICAgICAgIC8vIEV4ZWN1dGUgYWdhaW4uIFVubG9jayB0aGUgYXNzZW1ibHkgaGVyZSBzbyB0aGF0IHRoZSBwcm9kdWNlciBjYW4gYWNxdWlyZVxuICAgICAgICAgIC8vIGEgcmVhZCBsb2NrIG9uIHRoZSBkaXJlY3RvcnkgYWdhaW4uXG4gICAgICAgICAgYXdhaXQgcmVhZGFibGVBc20udmFsdWUuX3VubG9jaygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWFkYWJsZUFzbS50YWtlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncDisposableBox = void 0;\nrequire(\"../../../private/dispose-polyfill\");\n/**\n * An async disposable whose disposable value can be prevented from being disposed.\n *\n * This is useful if you are temporarily holding onto a disposable value, and are planning\n * to return it from a function, but want to clean it up if something fails in the middle.\n *\n * The purpose of this class is pretty similar to `DisposableStack`, but this\n * class doesn't depend on the runtime providing that class (Node 24+ only), and\n * `DisposableStack`s \"move()\" API is awkward.\n *\n * Example:\n *\n * ```ts\n * async function someFunction() {\n * await using box = new AsyncDisposableBox(someDisposableValue());\n * // ...\n * return box.take();\n * }\n * ```\n */\nclass AsyncDisposableBox {\n value;\n shouldDispose = true;\n constructor(value) {\n this.value = value;\n }\n /**\n * Remove the value from the Box, preventing it from being disposed in the future.\n *\n * Should be the last line of the containing function.\n */\n take() {\n this.shouldDispose = false;\n return this.value;\n }\n [Symbol.asyncDispose]() {\n if (this.shouldDispose) {\n return this.value[Symbol.asyncDispose]();\n }\n return Promise.resolve();\n }\n}\nexports.AsyncDisposableBox = AsyncDisposableBox;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS1ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXNwb3NhYmxlLWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFhLGtCQUFrQjtJQUdEO0lBRnBCLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFFN0IsWUFBNEIsS0FBUTtRQUFSLFVBQUssR0FBTCxLQUFLLENBQUc7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJO1FBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUF0QkQsZ0RBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuXG4vKipcbiAqIEFuIGFzeW5jIGRpc3Bvc2FibGUgd2hvc2UgZGlzcG9zYWJsZSB2YWx1ZSBjYW4gYmUgcHJldmVudGVkIGZyb20gYmVpbmcgZGlzcG9zZWQuXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgaWYgeW91IGFyZSB0ZW1wb3JhcmlseSBob2xkaW5nIG9udG8gYSBkaXNwb3NhYmxlIHZhbHVlLCBhbmQgYXJlIHBsYW5uaW5nXG4gKiB0byByZXR1cm4gaXQgZnJvbSBhIGZ1bmN0aW9uLCBidXQgd2FudCB0byBjbGVhbiBpdCB1cCBpZiBzb21ldGhpbmcgZmFpbHMgaW4gdGhlIG1pZGRsZS5cbiAqXG4gKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHByZXR0eSBzaW1pbGFyIHRvIGBEaXNwb3NhYmxlU3RhY2tgLCBidXQgdGhpc1xuICogY2xhc3MgZG9lc24ndCBkZXBlbmQgb24gdGhlIHJ1bnRpbWUgcHJvdmlkaW5nIHRoYXQgY2xhc3MgKE5vZGUgMjQrIG9ubHkpLCBhbmRcbiAqIGBEaXNwb3NhYmxlU3RhY2tgcyBcIm1vdmUoKVwiIEFQSSBpcyBhd2t3YXJkLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqIGFzeW5jIGZ1bmN0aW9uIHNvbWVGdW5jdGlvbigpIHtcbiAqICAgYXdhaXQgdXNpbmcgYm94ID0gbmV3IEFzeW5jRGlzcG9zYWJsZUJveChzb21lRGlzcG9zYWJsZVZhbHVlKCkpO1xuICogICAvLyAuLi5cbiAqICAgcmV0dXJuIGJveC50YWtlKCk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEFzeW5jRGlzcG9zYWJsZUJveDxUIGV4dGVuZHMgQXN5bmNEaXNwb3NhYmxlPiBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG4gIHByaXZhdGUgc2hvdWxkRGlzcG9zZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHZhbHVlOiBUKSB7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSB2YWx1ZSBmcm9tIHRoZSBCb3gsIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyBkaXNwb3NlZCBpbiB0aGUgZnV0dXJlLlxuICAgKlxuICAgKiBTaG91bGQgYmUgdGhlIGxhc3QgbGluZSBvZiB0aGUgY29udGFpbmluZyBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyB0YWtlKCk6IFQge1xuICAgIHRoaXMuc2hvdWxkRGlzcG9zZSA9IGZhbHNlO1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2VMaWtlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zaG91bGREaXNwb3NlKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.execInChildProcess = execInChildProcess;\nconst child_process = require(\"child_process\");\nconst fs_1 = require(\"fs\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst split = require(\"split2\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\n/**\n * Execute a command line in a child process\n *\n * Based on the errors it throws, this assumes the process it is executing is a CDK app.\n */\nasync function execInChildProcess(commandAndArgs, options = {}) {\n const captureOutput = options.captureOutput ?? true;\n return new Promise((ok, fail) => {\n // We use a slightly lower-level interface to:\n //\n // - Pass arguments in an array instead of a string, to get around a\n // number of quoting issues introduced by the intermediate shell layer\n // (which would be different between Linux and Windows).\n //\n // - We have to capture any output to stdout and stderr sp we can pass it on to the IoHost\n // To ensure messages get to the user fast, we will emit every full line we receive.\n const proc = child_process.spawn(commandAndArgs, {\n stdio: captureOutput ? ['ignore', 'pipe', 'pipe'] : ['ignore', 'inherit', 'inherit'],\n detached: false,\n cwd: options.cwd,\n env: {\n // On Windwows, Python will default to cp1252 when not connected to a terminal, but we\n // expect it to be UTF-8 below (to be able to split on lines).\n PYTHONIOENCODING: 'utf-8',\n ...options.env,\n },\n // We are using 'shell: true' on purprose. Traditionally we have allowed shell features in\n // this string, so we have to continue to do so into the future. On Windows, this is simply\n // necessary to run .bat and .cmd files properly.\n // Code scanning tools will flag this as a risk. The input comes from a trusted source,\n // so it does not represent a security risk.\n shell: true,\n });\n const eventPublisher = options.eventPublisher ?? ((type, line) => {\n switch (type) {\n case 'data_stdout':\n process.stdout.write(line + '\\n');\n return;\n case 'data_stderr':\n process.stderr.write(line + '\\n');\n return;\n case 'open':\n case 'close':\n return;\n }\n });\n const stderr = new Array();\n if (captureOutput) {\n proc.stdout.pipe(split()).on('data', (line) => eventPublisher('data_stdout', line));\n proc.stderr.pipe(split()).on('data', (line) => {\n stderr.push(line);\n return eventPublisher('data_stderr', line);\n });\n }\n proc.on('error', (e) => {\n fail(toolkit_error_1.AssemblyError.withCause(`Failed to execute CDK app: ${commandAndArgs}`, e));\n });\n proc.on('exit', code => {\n if (code === 0) {\n return ok();\n }\n else {\n const stdErrString = stderr.join('\\n');\n let cause;\n if (stderr.length) {\n cause = new Error(stdErrString);\n cause.name = 'ExecutionError';\n }\n let error = toolkit_error_1.AssemblyError.withCause(`${commandAndArgs}: Subprocess exited with error ${code}`, cause);\n // Search for an error code, and throw that if we have it\n if (options.errorCodeFile) {\n const contents = tryReadFile(options.errorCodeFile);\n if (contents) {\n const errorInStdErr = contents.split('\\n')[0];\n if (errorInStdErr) {\n // Attach the synth error code. We don't need to change the message; the underlying error will already have been\n // printed to stderr.\n error.attachSynthesisErrorCode(errorInStdErr);\n }\n }\n }\n return fail(error);\n }\n });\n });\n}\nfunction tryReadFile(name) {\n try {\n return (0, fs_1.readFileSync)(name, 'utf-8');\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return undefined;\n }\n throw e;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV4ZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyQkEsZ0RBMkZDO0FBdEhELCtDQUErQztBQUMvQywyQkFBa0M7QUFDbEMsaUVBQWlFO0FBQ2pFLGdDQUFpQztBQUNqQyxrRUFBK0Q7QUFrQi9EOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsY0FBc0IsRUFBRSxVQUF1QixFQUFFO0lBQ3hGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBRXBELE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDcEMsOENBQThDO1FBQzlDLEVBQUU7UUFDRixvRUFBb0U7UUFDcEUsd0VBQXdFO1FBQ3hFLDBEQUEwRDtRQUMxRCxFQUFFO1FBQ0YsMEZBQTBGO1FBQzFGLHNGQUFzRjtRQUN0RixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUMvQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7WUFDcEYsUUFBUSxFQUFFLEtBQUs7WUFDZixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsR0FBRyxFQUFFO2dCQUNILHNGQUFzRjtnQkFDdEYsOERBQThEO2dCQUM5RCxnQkFBZ0IsRUFBRSxPQUFPO2dCQUN6QixHQUFHLE9BQU8sQ0FBQyxHQUFHO2FBQ2Y7WUFFRCwwRkFBMEY7WUFDMUYsMkZBQTJGO1lBQzNGLGlEQUFpRDtZQUNqRCx1RkFBdUY7WUFDdkYsNENBQTRDO1lBQzVDLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQW1CLE9BQU8sQ0FBQyxjQUFjLElB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L0IsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFBLGlCQUFZLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuaW1wb3J0IHNwbGl0ID0gcmVxdWlyZSgnc3BsaXQyJyk7XG5pbXBvcnQgeyBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxudHlwZSBFdmVudFB1Ymxpc2hlciA9IChldmVudDogJ29wZW4nIHwgJ2RhdGFfc3Rkb3V0JyB8ICdkYXRhX3N0ZGVycicgfCAnY2xvc2UnLCBsaW5lOiBzdHJpbmcpID0+IHZvaWQ7XG5cbmludGVyZmFjZSBFeGVjT3B0aW9ucyB7XG4gIGV2ZW50UHVibGlzaGVyPzogRXZlbnRQdWJsaXNoZXI7XG4gIGVudj86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gIGN3ZD86IHN0cmluZztcbiAgZXJyb3JDb2RlRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBjYXB0dXJlIG91dHB1dCBhbmQgc2VuZCBpdCBpbnRvIHRoZSBldmVudCBwdWJsaXNoZXIsIG9yIHN0ZG91dCBpZiBubyBldmVudCBwdWJsaXNoZXIgaXMgc3VwcGxpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNhcHR1cmVPdXRwdXQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV4ZWN1dGUgYSBjb21tYW5kIGxpbmUgaW4gYSBjaGlsZCBwcm9jZXNzXG4gKlxuICogQmFzZWQgb24gdGhlIGVycm9ycyBpdCB0aHJvd3MsIHRoaXMgYXNzdW1lcyB0aGUgcHJvY2VzcyBpdCBpcyBleGVjdXRpbmcgaXMgYSBDREsgYXBwLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY0luQ2hpbGRQcm9jZXNzKGNvbW1hbmRBbmRBcmdzOiBzdHJpbmcsIG9wdGlvbnM6IEV4ZWNPcHRpb25zID0ge30pIHtcbiAgY29uc3QgY2FwdHVyZU91dHB1dCA9IG9wdGlvbnMuY2FwdHVyZU91dHB1dCA/PyB0cnVlO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigob2ssIGZhaWwpID0+IHtcbiAgICAvLyBXZSB1c2UgYSBzbGlnaHRseSBsb3dlci1sZXZlbCBpbnRlcmZhY2UgdG86XG4gICAgLy9cbiAgICAvLyAtIFBhc3MgYXJndW1lbnRzIGluIGFuIGFycmF5IGluc3RlYWQgb2YgYSBzdHJpbmcsIHRvIGdldCBhcm91bmQgYVxuICAgIC8vICAgbnVtYmVyIG9mIHF1b3RpbmcgaXNzdWVzIGludHJvZHVjZWQgYnkgdGhlIGludGVybWVkaWF0ZSBzaGVsbCBsYXllclxuICAgIC8vICAgKHdoaWNoIHdvdWxkIGJlIGRpZmZlcmVudCBiZXR3ZWVuIExpbnV4IGFuZCBXaW5kb3dzKS5cbiAgICAvL1xuICAgIC8vIC0gV2UgaGF2ZSB0byBjYXB0dXJlIGFueSBvdXRwdXQgdG8gc3Rkb3V0IGFuZCBzdGRlcnIgc3Agd2UgY2FuIHBhc3MgaXQgb24gdG8gdGhlIElvSG9zdFxuICAgIC8vICAgVG8gZW5zdXJlIG1lc3NhZ2VzIGdldCB0byB0aGUgdXNlciBmYXN0LCB3ZSB3aWxsIGVtaXQgZXZlcnkgZnVsbCBsaW5lIHdlIHJlY2VpdmUuXG4gICAgY29uc3QgcHJvYyA9IGNoaWxkX3Byb2Nlc3Muc3Bhd24oY29tbWFuZEFuZEFyZ3MsIHtcbiAgICAgIHN0ZGlvOiBjYXB0dXJlT3V0cHV0ID8gWydpZ25vcmUnLCAncGlwZScsICdwaXBlJ10gOiBbJ2lnbm9yZScsICdpbmhlcml0JywgJ2luaGVyaXQnXSxcbiAgICAgIGRldGFjaGVkOiBmYWxzZSxcbiAgICAgIGN3ZDogb3B0aW9ucy5jd2QsXG4gICAgICBlbnY6IHtcbiAgICAgICAgLy8gT24gV2luZHdvd3MsIFB5dGhvbiB3aWxsIGRlZmF1bHQgdG8gY3AxMjUyIHdoZW4gbm90IGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLCBidXQgd2VcbiAgICAgICAgLy8gZXhwZWN0IGl0IHRvIGJlIFVURi04IGJlbG93ICh0byBiZSBhYmxlIHRvIHNwbGl0IG9uIGxpbmVzKS5cbiAgICAgICAgUFlUSE9OSU9FTkNPRElORzogJ3V0Zi04JyxcbiAgICAgICAgLi4ub3B0aW9ucy5lbnYsXG4gICAgICB9LFxuXG4gICAgICAvLyBXZSBhcmUgdXNpbmcgJ3NoZWxsOiB0cnVlJyBvbiBwdXJwcm9zZS4gVHJhZGl0aW9uYWxseSB3ZSBoYXZlIGFsbG93ZWQgc2hlbGwgZmVhdHVyZXMgaW5cbiAgICAgIC8vIHRoaXMgc3RyaW5nLCBzbyB3ZSBoYXZlIHRvIGNvbnRpbnVlIHRvIGRvIHNvIGludG8gdGhlIGZ1dHVyZS4gT24gV2luZG93cywgdGhpcyBpcyBzaW1wbHlcbiAgICAgIC8vIG5lY2Vzc2FyeSB0byBydW4gLmJhdCBhbmQgLmNtZCBmaWxlcyBwcm9wZXJseS5cbiAgICAgIC8vIENvZGUgc2Nhbm5pbmcgdG9vbHMgd2lsbCBmbGFnIHRoaXMgYXMgYSByaXNrLiBUaGUgaW5wdXQgY29tZXMgZnJvbSBhIHRydXN0ZWQgc291cmNlLFxuICAgICAgLy8gc28gaXQgZG9lcyBub3QgcmVwcmVzZW50IGEgc2VjdXJpdHkgcmlzay5cbiAgICAgIHNoZWxsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZXZlbnRQdWJsaXNoZXI6IEV2ZW50UHVibGlzaGVyID0gb3B0aW9ucy5ldmVudFB1Ymxpc2hlciA/PyAoKHR5cGUsIGxpbmUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUobGluZSArICdcXG4nKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgJ2RhdGFfc3RkZXJyJzpcbiAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShsaW5lICsgJ1xcbicpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnb3Blbic6XG4gICAgICAgIGNhc2UgJ2Nsb3NlJzpcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGRlcnIgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgaWYgKGNhcHR1cmVPdXRwdXQpIHtcbiAgICAgIHByb2Muc3Rkb3V0IS5waXBlKHNwbGl0KCkpLm9uKCdkYXRhJywgKGxpbmUpID0+IGV2ZW50UHVibGlzaGVyKCdkYXRhX3N0ZG91dCcsIGxpbmUpKTtcbiAgICAgIHByb2Muc3RkZXJyIS5waXBlKHNwbGl0KCkpLm9uKCdkYXRhJywgKGxpbmUpID0+IHtcbiAgICAgICAgc3RkZXJyLnB1c2gobGluZSk7XG4gICAgICAgIHJldHVybiBldmVudFB1Ymxpc2hlcignZGF0YV9zdGRlcnInLCBsaW5lKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb2Mub24oJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgIGZhaWwoQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoYEZhaWxlZCB0byBleGVjdXRlIENESyBhcHA6ICR7Y29tbWFuZEFuZEFyZ3N9YCwgZSkpO1xuICAgIH0pO1xuXG4gICAgcHJvYy5vbignZXhpdCcsIGNvZGUgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG9rKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGRFcnJTdHJpbmcgPSBzdGRlcnIuam9pbignXFxuJyk7XG5cbiAgICAgICAgbGV0IGNhdXNlOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHN0ZGVyci5sZW5ndGgpIHtcbiAgICAgICAgICBjYXVzZSA9IG5ldyBFcnJvcihzdGRFcnJTdHJpbmcpO1xuICAgICAgICAgIGNhdXNlLm5hbWUgPSAnRXhlY3V0aW9uRXJyb3InO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVycm9yID0gQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoYCR7Y29tbWFuZEFuZEFyZ3N9OiBTdWJwcm9jZXNzIGV4aXRlZCB3aXRoIGVycm9yICR7Y29kZX1gLCBjYXVzZSk7XG5cbiAgICAgICAgLy8gU2VhcmNoIGZvciBhbiBlcnJvciBjb2RlLCBhbmQgdGhyb3cgdGhhdCBpZiB3ZSBoYXZlIGl0XG4gICAgICAgIGlmIChvcHRpb25zLmVycm9yQ29kZUZpbGUpIHtcbiAgICAgICAgICBjb25zdCBjb250ZW50cyA9IHRyeVJlYWRGaWxlKG9wdGlvbnMuZXJyb3JDb2RlRmlsZSk7XG4gICAgICAgICAgaWYgKGNvbnRlbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvckluU3RkRXJyID0gY29udGVudHMuc3BsaXQoJ1xcbicpWzBdO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JJblN0ZEVycikge1xuICAgICAgICAgICAgICAvLyBBdHRhY2ggdGhlIHN5bnRoIGVycm9yIGNvZGUuIFdlIGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZSBtZXNzYWdlOyB0aGUgdW5kZXJseWluZyBlcnJvciB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuXG4gICAgICAgICAgICAgIC8vIHByaW50ZWQgdG8gc3RkZXJyLlxuICAgICAgICAgICAgICBlcnJvci5hdHRhY2hTeW50aGVzaXNFcnJvckNvZGUoZXJyb3JJblN0ZEVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhaWwoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdHJ5UmVhZEZpbGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVhZEZpbGVTeW5jKG5hbWUsICd1dGYtOCcpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.temporarilyWriteEnv = temporarilyWriteEnv;\nexports.missingContextKeys = missingContextKeys;\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\n/**\n * Temporarily overwrite the `process.env` with a new `env`\n *\n * We make the environment immutable in case there are accidental\n * concurrent accesses.\n */\nfunction temporarilyWriteEnv(env) {\n const oldEnv = process.env;\n process.env = detectSynthvarConflicts({\n ...process.env,\n ...env,\n });\n return {\n [Symbol.dispose]() {\n process.env = oldEnv;\n },\n };\n}\n/**\n * Return an environment-like object that throws if certain keys are set\n *\n * We only throw on specific environment variables to catch the case of\n * concurrent synths. We can't do all variables because there are some\n * routines somewhere that modify things like `JSII_DEPRECATED` globally.\n */\nfunction detectSynthvarConflicts(obj) {\n return new Proxy(obj, {\n get(target, prop) {\n return target[prop];\n },\n set(target, prop, value) {\n if (['CDK_CONTEXT', 'CDK_OUTDIR'].includes(String(prop))) {\n throw new toolkit_error_1.ToolkitError('EnvImmutableDuringSynth', 'process.env is temporarily immutable. Set \\'clobberEnv: false\\' if you want to run multiple \\'fromAssemblyBuilder\\' synths concurrently');\n }\n target[prop] = value;\n return true;\n },\n });\n}\n/**\n * Return all keys of missing context items\n */\nfunction missingContextKeys(missing) {\n return new Set((missing || []).map((m) => m.key));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxrREFhQztBQTJCRCxnREFFQztBQWxERCxrRUFBOEQ7QUFFOUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxHQUEyQjtJQUM3RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRTNCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLENBQUM7UUFDcEMsR0FBRyxPQUFPLENBQUMsR0FBRztRQUNkLEdBQUcsR0FBRztLQUNQLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHVCQUF1QixDQUFtQixHQUFNO0lBQ3ZELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ3BCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSTtZQUNkLE9BQVEsTUFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sSUFBSSw0QkFBWSxDQUFDLHlCQUF5QixFQUFFLHlJQUF5SSxDQUFDLENBQUM7WUFDL0wsQ0FBQztZQUNBLE1BQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsT0FBMEI7SUFDM0QsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1pc3NpbmdDb250ZXh0IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8qKlxuICogVGVtcG9yYXJpbHkgb3ZlcndyaXRlIHRoZSBgcHJvY2Vzcy5lbnZgIHdpdGggYSBuZXcgYGVudmBcbiAqXG4gKiBXZSBtYWtlIHRoZSBlbnZpcm9ubWVudCBpbW11dGFibGUgaW4gY2FzZSB0aGVyZSBhcmUgYWNjaWRlbnRhbFxuICogY29uY3VycmVudCBhY2Nlc3Nlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBvcmFyaWx5V3JpdGVFbnYoZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIGNvbnN0IG9sZEVudiA9IHByb2Nlc3MuZW52O1xuXG4gIHByb2Nlc3MuZW52ID0gZGV0ZWN0U3ludGh2YXJDb25mbGljdHMoe1xuICAgIC4uLnByb2Nlc3MuZW52LFxuICAgIC4uLmVudixcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuICAgICAgcHJvY2Vzcy5lbnYgPSBvbGRFbnY7XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYW4gZW52aXJvbm1lbnQtbGlrZSBvYmplY3QgdGhhdCB0aHJvd3MgaWYgY2VydGFpbiBrZXlzIGFyZSBzZXRcbiAqXG4gKiBXZSBvbmx5IHRocm93IG9uIHNwZWNpZmljIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBjYXRjaCB0aGUgY2FzZSBvZlxuICogY29uY3VycmVudCBzeW50aHMuIFdlIGNhbid0IGRvIGFsbCB2YXJpYWJsZXMgYmVjYXVzZSB0aGVyZSBhcmUgc29tZVxuICogcm91dGluZXMgc29tZXdoZXJlIHRoYXQgbW9kaWZ5IHRoaW5ncyBsaWtlIGBKU0lJX0RFUFJFQ0FURURgIGdsb2JhbGx5LlxuICovXG5mdW5jdGlvbiBkZXRlY3RTeW50aHZhckNvbmZsaWN0czxBIGV4dGVuZHMgb2JqZWN0PihvYmo6IEEpIHtcbiAgcmV0dXJuIG5ldyBQcm94eShvYmosIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgICByZXR1cm4gKHRhcmdldCBhcyBhbnkpW3Byb3BdO1xuICAgIH0sXG4gICAgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUpIHtcbiAgICAgIGlmIChbJ0NES19DT05URVhUJywgJ0NES19PVVRESVInXS5pbmNsdWRlcyhTdHJpbmcocHJvcCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0VudkltbXV0YWJsZUR1cmluZ1N5bnRoJywgJ3Byb2Nlc3MuZW52IGlzIHRlbXBvcmFyaWx5IGltbXV0YWJsZS4gU2V0IFxcJ2Nsb2JiZXJFbnY6IGZhbHNlXFwnIGlmIHlvdSB3YW50IHRvIHJ1biBtdWx0aXBsZSBcXCdmcm9tQXNzZW1ibHlCdWlsZGVyXFwnIHN5bnRocyBjb25jdXJyZW50bHknKTtcbiAgICAgIH1cbiAgICAgICh0YXJnZXQgYXMgYW55KVtwcm9wXSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBrZXlzIG9mIG1pc3NpbmcgY29udGV4dCBpdGVtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ0NvbnRleHRLZXlzKG1pc3Npbmc/OiBNaXNzaW5nQ29udGV4dFtdKTogU2V0PHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFNldCgobWlzc2luZyB8fCBbXSkubWFwKChtKSA9PiBtLmtleSkpO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./context-aware-source\"), exports);\n__exportStar(require(\"./stack-assembly\"), exports);\n__exportStar(require(\"./exec\"), exports);\n__exportStar(require(\"./prepare-source\"), exports);\n__exportStar(require(\"./stack-selectors\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQXVDO0FBQ3ZDLG1EQUFpQztBQUNqQyx5Q0FBdUI7QUFDdkIsbURBQWlDO0FBQ2pDLG9EQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFjay1hc3NlbWJseSc7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVwYXJlLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLXNlbGVjdG9ycyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExecutionEnvironment = void 0;\nexports.writeContextToEnv = writeContextToEnv;\nexports.findConstructLibraryVersion = findConstructLibraryVersion;\nexports.frameworkSupportsContextOverflow = frameworkSupportsContextOverflow;\nexports.assemblyFromDirectory = assemblyFromDirectory;\nexports.settingsFromSynthOptions = settingsFromSynthOptions;\nexports.parametersFromSynthOptions = parametersFromSynthOptions;\nrequire(\"../../../private/dispose-polyfill\");\nconst os = require(\"node:os\");\nconst path = require(\"node:path\");\nconst node_util_1 = require(\"node:util\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cxapi = require(\"@aws-cdk/cx-api\");\nconst fs = require(\"fs-extra\");\nconst semver_1 = require(\"semver\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../../util\");\nconst private_1 = require(\"../../io/private\");\nconst rwlock_1 = require(\"../../rwlock\");\nconst settings_1 = require(\"../../settings\");\nconst tree_1 = require(\"../../tree\");\nconst environment_1 = require(\"../environment\");\nclass ExecutionEnvironment {\n /**\n * Create an ExecutionEnvironment\n *\n * An ExecutionEnvironment holds a writer lock on the given directory which will\n * be cleaned up when the object is disposed.\n *\n * A temporary directory will be created if none is supplied, which will be cleaned\n * up when this object is disposed.\n *\n * If `markSuccessful()` is called, the writer lock is converted to a reader lock\n * and temporary directories will not be cleaned up anymore.\n */\n static async create(services, options) {\n let outDirIsTemporary = false;\n let dir = options.outdir;\n if (!dir) {\n outDirIsTemporary = true;\n dir = fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out'));\n }\n const lock = await new rwlock_1.RWLock(dir).acquireWrite();\n const opts = {\n outdir: dir,\n resolveDefaultAppEnv: options.resolveDefaultAppEnv,\n };\n return new ExecutionEnvironment(services, opts, {\n lock,\n outDirIsTemporary,\n });\n }\n /**\n * Should the outdir be disposed of.\n */\n get shouldDisposeOutDir() {\n return this.shouldClean;\n }\n /**\n * The directory the cloud assembly will be written to.\n */\n outdir;\n options;\n ioHelper;\n sdkProvider;\n debugFn;\n lock;\n shouldClean;\n constructor(services, options, { lock, outDirIsTemporary }) {\n this.ioHelper = services.ioHelper;\n this.sdkProvider = services.sdkProvider;\n this.debugFn = (msg) => this.ioHelper.defaults.debug(msg);\n this.lock = lock;\n this.shouldClean = outDirIsTemporary;\n this.outdir = options.outdir;\n this.options = options;\n }\n async [Symbol.asyncDispose]() {\n await this.lock?.release();\n if (this.shouldDisposeOutDir) {\n await fs.rm(this.outdir, { recursive: true, force: true });\n }\n }\n /**\n * Mark the execution as successful, which stops the writer lock from being released upon disposal\n */\n async markSuccessful() {\n if (!this.lock) {\n throw new TypeError('Cannot mark successful more than once');\n }\n const readLock = await this.lock.convertToReaderLock();\n this.lock = undefined;\n this.shouldClean = false;\n return { readLock };\n }\n /**\n * Begin an execution in this environment\n *\n * This will acquire a write lock on the given environment. The write lock\n * will be released automatically when the return object is disposed, unless it\n * is converted to a reader lock.\n */\n async beginExecution() {\n const lock = await new rwlock_1.RWLock(this.outdir).acquireWrite();\n let converted = false;\n return {\n async writeToReadLock() {\n converted = true;\n return lock.convertToReaderLock();\n },\n [Symbol.asyncDispose]: async () => {\n // Release if not converted\n if (!converted) {\n await lock.release();\n }\n },\n };\n }\n /**\n * Guess the executable from the command-line argument\n *\n * Only do this if the file is NOT marked as executable. If it is,\n * we'll defer to the shebang inside the file itself.\n *\n * If we're on Windows, we ALWAYS take the handler, since it's hard to\n * verify if registry associations have or have not been set up for this\n * file type, so we'll assume the worst and take control.\n */\n guessExecutable(app) {\n return (0, environment_1.guessExecutable)(app, this.debugFn);\n }\n /**\n * If we don't have region/account defined in context, we fall back to the default SDK behavior\n * where region is retrieved from ~/.aws/config and account is based on default credentials provider\n * chain and then STS is queried.\n *\n * This is done opportunistically: for example, if we can't access STS for some reason or the region\n * is not configured, the context value will be 'null' and there could failures down the line. In\n * some cases, synthesis does not require region/account information at all, so that might be perfectly\n * fine in certain scenarios.\n */\n async defaultEnvVars() {\n const debugFn = (msg) => this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0010.msg(msg));\n const env = this.options.resolveDefaultAppEnv ? await (0, environment_1.prepareDefaultEnvironment)(this.sdkProvider, debugFn) : {};\n env[cxapi.OUTDIR_ENV] = this.outdir;\n await debugFn((0, node_util_1.format)('outdir:', this.outdir));\n // CLI version information\n env[cxapi.CLI_ASM_VERSION_ENV] = cxschema.Manifest.version();\n env[cxapi.CLI_VERSION_ENV] = (0, util_1.versionNumber)();\n await debugFn((0, node_util_1.format)('env:', env));\n return env;\n }\n /**\n * Run code from a different working directory\n */\n async changeDir(block, workingDir) {\n const originalWorkingDir = process.cwd();\n try {\n if (workingDir) {\n process.chdir(workingDir);\n }\n return await block();\n }\n finally {\n if (workingDir) {\n process.chdir(originalWorkingDir);\n }\n }\n }\n}\nexports.ExecutionEnvironment = ExecutionEnvironment;\n/**\n * Serializes the given context to a set if environment variables environment variables\n *\n * Needs to know the size of the rest of the env because that's necessary to do\n * an overflow computation on Windows. This function will mutate the given\n * environment in-place. It should be called as the very last operation on the\n * environment, because afterwards is might be at the maximum size.\n *\n * This *would* have returned an `IAsyncDisposable` but that requires messing\n * with TypeScript type definitions to use it in aws-cdk, so returning an\n * explicit cleanup function is easier.\n *\n * `completeness` indicates whether this `env` block represents the full `env`\n * that will be passed to a subprocess, or whether it will be mixed into\n * `process.env` later.\n */\nfunction writeContextToEnv(env, context, completeness) {\n let contextOverflowLocation = null;\n // On Windows, all envvars together must fit in a 32k block ()\n // On Linux, a single entry may not exceed 131k; but we're treating it as all together because that's safe\n // and it's a single execution path for both platforms.\n const envVariableSizeLimit = os.platform() === 'win32' ? 32760 : 131072;\n const completeEnv = { ...completeness === 'add-process-env-later' ? process.env : {}, ...env };\n const [smallContext, overflow] = (0, util_1.splitBySize)(context, (0, environment_1.spaceAvailableForContext)(completeEnv, envVariableSizeLimit));\n // Store the safe part in the environment variable\n env[cxapi.CONTEXT_ENV] = JSON.stringify(smallContext);\n // If there was any overflow, write it to a temporary file\n if (Object.keys(overflow ?? {}).length > 0) {\n const contextDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk-context'));\n contextOverflowLocation = path.join(contextDir, 'context-overflow.json');\n fs.writeJSONSync(contextOverflowLocation, overflow);\n env[cxapi.CONTEXT_OVERFLOW_LOCATION_ENV] = contextOverflowLocation;\n }\n return async () => {\n if (contextOverflowLocation) {\n await fs.promises.rm(path.dirname(contextOverflowLocation), { recursive: true, force: true });\n }\n };\n}\n/**\n * Checks if a given assembly supports context overflow, warn otherwise.\n *\n * @param assembly - the assembly to check\n */\nasync function checkContextOverflowSupport(tree, ioHelper) {\n // We're dealing with an old version of the framework here. It is unaware of the temporary\n // file, which means that it will ignore the context overflow.\n if (!frameworkSupportsContextOverflow(tree)) {\n await ioHelper.notify(private_1.IO.CDK_ASSEMBLY_W0010.msg('Part of the context could not be sent to the application. Please update the AWS CDK library to the latest version.'));\n }\n}\n/**\n * Find the `aws-cdk-lib` library version by inspecting construct tree debug information\n */\nfunction findConstructLibraryVersion(tree) {\n let ret = undefined;\n (0, tree_1.some)(tree, node => {\n const fqn = node.constructInfo?.fqn;\n const version = node.constructInfo?.version;\n if (fqn?.startsWith('aws-cdk-lib.') || fqn?.startsWith('@aws-cdk/core.')) {\n ret = version;\n return true;\n }\n return false;\n });\n return ret !== '0.0.0' ? ret : undefined;\n}\n/**\n * Checks if the framework supports context overflow\n */\nfunction frameworkSupportsContextOverflow(tree) {\n const version = findConstructLibraryVersion(tree);\n return !version || !(0, semver_1.lte)(version, '2.38.0');\n}\n/**\n * Safely create an assembly from a cloud assembly directory\n */\nasync function assemblyFromDirectory(assemblyDir, ioHelper, loadOptions = {}) {\n try {\n const assembly = new cloud_assembly_api_1.CloudAssembly(assemblyDir, {\n skipVersionCheck: !(loadOptions.checkVersion ?? true),\n skipEnumCheck: !(loadOptions.checkEnums ?? true),\n // We sort as we deploy\n topoSort: false,\n });\n const tree = await (0, tree_1.loadTree)(assembly, ioHelper.defaults.trace.bind(ioHelper.defaults));\n await checkContextOverflowSupport(tree, ioHelper);\n return assembly;\n }\n catch (err) {\n if (err.message.includes(cxschema.VERSION_MISMATCH)) {\n // this means the CLI version is too old.\n // we instruct the user to upgrade.\n const message = 'This AWS CDK Toolkit is not compatible with the AWS CDK library used by your application. Please upgrade to the latest version.';\n await ioHelper.notify(private_1.IO.CDK_ASSEMBLY_E1111.msg(message, { error: err }));\n throw new toolkit_error_1.ToolkitError('AssemblyVersionMismatch', `${message}\\n(${err.message}`);\n }\n throw err;\n }\n}\nfunction settingsFromSynthOptions(synthOpts = {}) {\n return new settings_1.Settings({\n debug: false,\n pathMetadata: true,\n versionReporting: true,\n assetMetadata: true,\n assetStaging: true,\n ...synthOpts,\n }, true);\n}\n/**\n * Turn synthesis options into context/environment variables that will go to the CDK app\n *\n * These are parameters that control the synthesis operation, configurable by the user\n * from the outside of the app.\n */\nfunction parametersFromSynthOptions(synthOptions) {\n return (0, environment_1.synthParametersFromSettings)(settingsFromSynthOptions(synthOptions ?? {}));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVwYXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxT0EsOENBMkJDO0FBa0JELGtFQWNDO0FBS0QsNEVBSUM7QUFLRCxzREF1QkM7QUFFRCw0REFTQztBQVFELGdFQUVDO0FBMVZELDZDQUEyQztBQUMzQyw4QkFBOEI7QUFDOUIsa0NBQWtDO0FBQ2xDLHlDQUFtQztBQUNuQyxvRUFBNEQ7QUFDNUQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywrQkFBK0I7QUFDL0IsbUNBQTZCO0FBRTdCLGtFQUE4RDtBQUM5RCx3Q0FBMkQ7QUFHM0QsOENBQXNDO0FBRXRDLHlDQUFzQztBQUN0Qyw2Q0FBMEM7QUFFMUMscUNBQTRDO0FBRTVDLGdEQUFtSTtBQW1CbkksTUFBYSxvQkFBb0I7SUFDL0I7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUF5QixFQUFFLE9BQW9DO1FBQ3hGLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLEdBQUcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksZUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxELE1BQU0sSUFBSSxHQUFHO1lBQ1gsTUFBTSxFQUFFLEdBQUc7WUFDWCxvQkFBb0IsRUFBRSxPQUFPLENBQUMsb0JBQW9CO1NB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LENBQUMsQ0FBQztRQUVsRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDcEQseUNBQXlDO1lBQ3pDLG1DQUFtQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxpSUFBaUksQ0FBQztZQUNsSixNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsT0FBTyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDRCxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsWUFBNkIsRUFBRTtJQUN0RSxPQUFPLElBQUksbUJBQVEsQ0FBQztRQUNsQixLQUFLLEVBQUUsS0FBSztRQUNaLFlBQVksRUFBRSxJQUFJO1FBQ2xCLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsR0FBRyxTQUFTO0tBQ2IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLFlBQThCO0lBQ3ZFLE9BQU8sSUFBQSx5Q0FBMkIsRUFBQyx3QkFBd0IsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGx0ZSB9IGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvcHJpdmF0ZSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgc3BsaXRCeVNpemUsIHZlcnNpb25OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9pby9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElSZWFkTG9jaywgSVdyaXRlTG9jayB9IGZyb20gJy4uLy4uL3J3bG9jayc7XG5pbXBvcnQgeyBSV0xvY2sgfSBmcm9tICcuLi8uLi9yd2xvY2snO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXR0aW5ncyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdFRyZWVOb2RlIH0gZnJvbSAnLi4vLi4vdHJlZSc7XG5pbXBvcnQgeyBsb2FkVHJlZSwgc29tZSB9IGZyb20gJy4uLy4uL3RyZWUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0LCBFbnYgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBwcmVwYXJlRGVmYXVsdEVudmlyb25tZW50LCBzcGFjZUF2YWlsYWJsZUZvckNvbnRleHQsIGd1ZXNzRXhlY3V0YWJsZSwgc3ludGhQYXJhbWV0ZXJzRnJvbVNldHRpbmdzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBBcHBTeW50aE9wdGlvbnMsIExvYWRBc3NlbWJseU9wdGlvbnMgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0aW9uRW52aXJvbm1lbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdGhlIGNsb3VkIGFzc2VtYmx5IHdpbGwgYmUgd3JpdHRlbiB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGFzIG91dHB1dCBkaXJlY3RvcnksIHRoaXMgd2lsbCBiZSBjbGVhbmVkIHVwIHdoZW4gdGhpcyBvYmplY3QgaXMgZGlzcG9zZWRcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb2x2ZSBhbmQgYWRkIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGFwcCdzIGRlZmF1bHQgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBtYWtlIGEgY2FsbCB0byBTVFMsIHdoaWNoIGlzIG5vdCBhbHdheXMgZGVzaXJhYmxlIGUuZy4gaWYgdGhlIGVudiBpcyBleHBsaWNpdGx5IHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVEZWZhdWx0QXBwRW52OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgRXhlY3V0aW9uRW52aXJvbm1lbnQgaW1wbGVtZW50cyBBc3luY0Rpc3Bvc2FibGUge1xuICAvKipcbiAgICogQ3JlYXRlIGFuIEV4ZWN1dGlvbkVudmlyb25tZW50XG4gICAqXG4gICAqIEFuIEV4ZWN1dGlvbkVudmlyb25tZW50IGhvbGRzIGEgd3JpdGVyIGxvY2sgb24gdGhlIGdpdmVuIGRpcmVjdG9yeSB3aGljaCB3aWxsXG4gICAqIGJlIGNsZWFuZWQgdXAgd2hlbiB0aGUgb2JqZWN0IGlzIGRpc3Bvc2VkLlxuICAgKlxuICAgKiBBIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGlmIG5vbmUgaXMgc3VwcGxpZWQsIHdoaWNoIHdpbGwgYmUgY2xlYW5lZFxuICAgKiB1cCB3aGVuIHRoaXMgb2JqZWN0IGlzIGRpc3Bvc2VkLlxuICAgKlxuICAgKiBJZiBgbWFya1N1Y2Nlc3NmdWwoKWAgaXMgY2FsbGVkLCB0aGUgd3JpdGVyIGxvY2sgaXMgY29udmVydGVkIHRvIGEgcmVhZGVyIGxvY2tcbiAgICogYW5kIHRlbXBvcmFyeSBkaXJlY3RvcmllcyB3aWxsIG5vdCBiZSBjbGVhbmVkIHVwIGFueW1vcmUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNyZWF0ZShzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzLCBvcHRpb25zOiBFeGVjdXRpb25FbnZpcm9ubWVudE9wdGlvbnMpIHtcbiAgICBsZXQgb3V0RGlySXNUZW1wb3JhcnkgPSBmYWxzZTtcbiAgICBsZXQgZGlyID0gb3B0aW9ucy5vdXRkaXI7XG4gICAgaWYgKCFkaXIpIHtcbiAgICAgIG91dERpcklzVGVtcG9yYXJ5ID0gdHJ1ZTtcbiAgICAgIGRpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihmcy5yZWFscGF0aFN5bmMob3MudG1wZGlyKCkpLCAnY2RrLm91dCcpKTtcbiAgICB9XG4gICAgY29uc3QgbG9jayA9IGF3YWl0IG5ldyBSV0xvY2soZGlyKS5hY3F1aXJlV3JpdGUoKTtcblxuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICBvdXRkaXI6IGRpcixcbiAgICAgIHJlc29sdmVEZWZhdWx0QXBwRW52OiBvcHRpb25zLnJlc29sdmVEZWZhdWx0QXBwRW52LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEV4ZWN1dGlvbkVudmlyb25tZW50KHNlcnZpY2VzLCBvcHRzLCB7XG4gICAgICBsb2NrLFxuICAgICAgb3V0RGlySXNUZW1wb3JhcnksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBvdXRkaXIgYmUgZGlzcG9zZWQgb2YuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3VsZERpc3Bvc2VPdXREaXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkQ2xlYW47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0aGUgY2xvdWQgYXNzZW1ibHkgd2lsbCBiZSB3cml0dGVuIHRvLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8RXhlY3V0aW9uRW52aXJvbm1lbnRPcHRpb25zPjtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYnVnRm46IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcHJpdmF0ZSBsb2NrOiBJV3JpdGVMb2NrIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHNob3VsZENsZWFuOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyxcbiAgICBvcHRpb25zOiBSZXF1aXJlZDxFeGVjdXRpb25FbnZpcm9ubWVudE9wdGlvbnM+LFxuICAgIHsgbG9jaywgb3V0RGlySXNUZW1wb3JhcnkgfToge1xuICAgICAgcmVhZG9ubHkgb3V0RGlySXNUZW1wb3Jhcnk6IGJvb2xlYW47XG4gICAgICByZWFkb25seSBsb2NrOiBJV3JpdGVMb2NrO1xuICAgIH0sXG4gICkge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBzZXJ2aWNlcy5pb0hlbHBlcjtcbiAgICB0aGlzLnNka1Byb3ZpZGVyID0gc2VydmljZXMuc2RrUHJvdmlkZXI7XG4gICAgdGhpcy5kZWJ1Z0ZuID0gKG1zZzogc3RyaW5nKSA9PiB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKG1zZyk7XG4gICAgdGhpcy5sb2NrID0gbG9jaztcbiAgICB0aGlzLnNob3VsZENsZWFuID0gb3V0RGlySXNUZW1wb3Jhcnk7XG4gICAgdGhpcy5vdXRkaXIgPSBvcHRpb25zLm91dGRpcjtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpIHtcbiAgICBhd2FpdCB0aGlzLmxvY2s/LnJlbGVhc2UoKTtcblxuICAgIGlmICh0aGlzLnNob3VsZERpc3Bvc2VPdXREaXIpIHtcbiAgICAgIGF3YWl0IGZzLnJtKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGV4ZWN1dGlvbiBhcyBzdWNjZXNzZnVsLCB3aGljaCBzdG9wcyB0aGUgd3JpdGVyIGxvY2sgZnJvbSBiZWluZyByZWxlYXNlZCB1cG9uIGRpc3Bvc2FsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbWFya1N1Y2Nlc3NmdWwoKSB7XG4gICAgaWYgKCF0aGlzLmxvY2spIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBtYXJrIHN1Y2Nlc3NmdWwgbW9yZSB0aGFuIG9uY2UnKTtcbiAgICB9XG4gICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCB0aGlzLmxvY2suY29udmVydFRvUmVhZGVyTG9jaygpO1xuICAgIHRoaXMubG9jayA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNob3VsZENsZWFuID0gZmFsc2U7XG4gICAgcmV0dXJuIHsgcmVhZExvY2sgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWdpbiBhbiBleGVjdXRpb24gaW4gdGhpcyBlbnZpcm9ubWVudFxuICAgKlxuICAgKiBUaGlzIHdpbGwgYWNxdWlyZSBhIHdyaXRlIGxvY2sgb24gdGhlIGdpdmVuIGVudmlyb25tZW50LiBUaGUgd3JpdGUgbG9ja1xuICAgKiB3aWxsIGJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcmV0dXJuIG9iamVjdCBpcyBkaXNwb3NlZCwgdW5sZXNzIGl0XG4gICAqIGlzIGNvbnZlcnRlZCB0byBhIHJlYWRlciBsb2NrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJlZ2luRXhlY3V0aW9uKCk6IFByb21pc2U8eyB3cml0ZVRvUmVhZExvY2soKTogUHJvbWlzZTxJUmVhZExvY2s+IH0gJiBBc3luY0Rpc3Bvc2FibGU+IHtcbiAgICBjb25zdCBsb2NrID0gYXdhaXQgbmV3IFJXTG9jayh0aGlzLm91dGRpcikuYWNxdWlyZVdyaXRlKCk7XG5cbiAgICBsZXQgY29udmVydGVkID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFzeW5jIHdyaXRlVG9SZWFkTG9jaygpIHtcbiAgICAgICAgY29udmVydGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGxvY2suY29udmVydFRvUmVhZGVyTG9jaygpO1xuICAgICAgfSxcbiAgICAgIFtTeW1ib2wuYXN5bmNEaXNwb3NlXTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBSZWxlYXNlIGlmIG5vdCBjb252ZXJ0ZWRcbiAgICAgICAgaWYgKCFjb252ZXJ0ZWQpIHtcbiAgICAgICAgICBhd2FpdCBsb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEd1ZXNzIHRoZSBleGVjdXRhYmxlIGZyb20gdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudFxuICAgKlxuICAgKiBPbmx5IGRvIHRoaXMgaWYgdGhlIGZpbGUgaXMgTk9UIG1hcmtlZCBhcyBleGVjdXRhYmxlLiBJZiBpdCBpcyxcbiAgICogd2UnbGwgZGVmZXIgdG8gdGhlIHNoZWJhbmcgaW5zaWRlIHRoZSBmaWxlIGl0c2VsZi5cbiAgICpcbiAgICogSWYgd2UncmUgb24gV2luZG93cywgd2UgQUxXQVlTIHRha2UgdGhlIGhhbmRsZXIsIHNpbmNlIGl0J3MgaGFyZCB0b1xuICAgKiB2ZXJpZnkgaWYgcmVnaXN0cnkgYXNzb2NpYXRpb25zIGhhdmUgb3IgaGF2ZSBub3QgYmVlbiBzZXQgdXAgZm9yIHRoaXNcbiAgICogZmlsZSB0eXBlLCBzbyB3ZSdsbCBhc3N1bWUgdGhlIHdvcnN0IGFuZCB0YWtlIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgZ3Vlc3NFeGVjdXRhYmxlKGFwcDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gZ3Vlc3NFeGVjdXRhYmxlKGFwcCwgdGhpcy5kZWJ1Z0ZuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB3ZSBkb24ndCBoYXZlIHJlZ2lvbi9hY2NvdW50IGRlZmluZWQgaW4gY29udGV4dCwgd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IFNESyBiZWhhdmlvclxuICAgKiB3aGVyZSByZWdpb24gaXMgcmV0cmlldmVkIGZyb20gfi8uYXdzL2NvbmZpZyBhbmQgYWNjb3VudCBpcyBiYXNlZCBvbiBkZWZhdWx0IGNyZWRlbnRpYWxzIHByb3ZpZGVyXG4gICAqIGNoYWluIGFuZCB0aGVuIFNUUyBpcyBxdWVyaWVkLlxuICAgKlxuICAgKiBUaGlzIGlzIGRvbmUgb3Bwb3J0dW5pc3RpY2FsbHk6IGZvciBleGFtcGxlLCBpZiB3ZSBjYW4ndCBhY2Nlc3MgU1RTIGZvciBzb21lIHJlYXNvbiBvciB0aGUgcmVnaW9uXG4gICAqIGlzIG5vdCBjb25maWd1cmVkLCB0aGUgY29udGV4dCB2YWx1ZSB3aWxsIGJlICdudWxsJyBhbmQgdGhlcmUgY291bGQgZmFpbHVyZXMgZG93biB0aGUgbGluZS4gSW5cbiAgICogc29tZSBjYXNlcywgc3ludGhlc2lzIGRvZXMgbm90IHJlcXVpcmUgcmVnaW9uL2FjY291bnQgaW5mb3JtYXRpb24gYXQgYWxsLCBzbyB0aGF0IG1pZ2h0IGJlIHBlcmZlY3RseVxuICAgKiBmaW5lIGluIGNlcnRhaW4gc2NlbmFyaW9zLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlZmF1bHRFbnZWYXJzKCk6IFByb21pc2U8RW52PiB7XG4gICAgY29uc3QgZGVidWdGbiA9IChtc2c6IHN0cmluZykgPT4gdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMDEwLm1zZyhtc2cpKTtcbiAgICBjb25zdCBlbnYgPSB0aGlzLm9wdGlvbnMucmVzb2x2ZURlZmF1bHRBcHBFbnYgPyBhd2FpdCBwcmVwYXJlRGVmYXVsdEVudmlyb25tZW50KHRoaXMuc2RrUHJvdmlkZXIsIGRlYnVnRm4pIDoge307XG5cbiAgICBlbnZbY3hhcGkuT1VURElSX0VOVl0gPSB0aGlzLm91dGRpcjtcbiAgICBhd2FpdCBkZWJ1Z0ZuKGZvcm1hdCgnb3V0ZGlyOicsIHRoaXMub3V0ZGlyKSk7XG5cbiAgICAvLyBDTEkgdmVyc2lvbiBpbmZvcm1hdGlvblxuICAgIGVudltjeGFwaS5DTElfQVNNX1ZFUlNJT05fRU5WXSA9IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKTtcbiAgICBlbnZbY3hhcGkuQ0xJX1ZFUlNJT05fRU5WXSA9IHZlcnNpb25OdW1iZXIoKTtcblxuICAgIGF3YWl0IGRlYnVnRm4oZm9ybWF0KCdlbnY6JywgZW52KSk7XG4gICAgcmV0dXJuIGVudjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gY29kZSBmcm9tIGEgZGlmZmVyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hhbmdlRGlyPFQ+KGJsb2NrOiAoKSA9PiBQcm9taXNlPFQ+LCB3b3JraW5nRGlyPzogc3RyaW5nKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxXb3JraW5nRGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgICB0cnkge1xuICAgICAgaWYgKHdvcmtpbmdEaXIpIHtcbiAgICAgICAgcHJvY2Vzcy5jaGRpcih3b3JraW5nRGlyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh3b3JraW5nRGlyKSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIob3JpZ2luYWxXb3JraW5nRGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBjb250ZXh0IHRvIGEgc2V0IGlmIGVudmlyb25tZW50IHZhcmlhYmxlcyBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqXG4gKiBOZWVkcyB0byBrbm93IHRoZSBzaXplIG9mIHRoZSByZXN0IG9mIHRoZSBlbnYgYmVjYXVzZSB0aGF0J3MgbmVjZXNzYXJ5IHRvIGRvXG4gKiBhbiBvdmVyZmxvdyBjb21wdXRhdGlvbiBvbiBXaW5kb3dzLiBUaGlzIGZ1bmN0aW9uIHdpbGwgbXV0YXRlIHRoZSBnaXZlblxuICogZW52aXJvbm1lbnQgaW4tcGxhY2UuIEl0IHNob3VsZCBiZSBjYWxsZWQgYXMgdGhlIHZlcnkgbGFzdCBvcGVyYXRpb24gb24gdGhlXG4gKiBlbnZpcm9ubWVudCwgYmVjYXVzZSBhZnRlcndhcmRzIGlzIG1pZ2h0IGJlIGF0IHRoZSBtYXhpbXVtIHNpemUuXG4gKlxuICogVGhpcyAqd291bGQqIGhhdmUgcmV0dXJuZWQgYW4gYElBc3luY0Rpc3Bvc2FibGVgIGJ1dCB0aGF0IHJlcXVpcmVzIG1lc3NpbmdcbiAqIHdpdGggVHlwZVNjcmlwdCB0eXBlIGRlZmluaXRpb25zIHRvIHVzZSBpdCBpbiBhd3MtY2RrLCBzbyByZXR1cm5pbmcgYW5cbiAqIGV4cGxpY2l0IGNsZWFudXAgZnVuY3Rpb24gaXMgZWFzaWVyLlxuICpcbiAqIGBjb21wbGV0ZW5lc3NgIGluZGljYXRlcyB3aGV0aGVyIHRoaXMgYGVudmAgYmxvY2sgcmVwcmVzZW50cyB0aGUgZnVsbCBgZW52YFxuICogdGhhdCB3aWxsIGJlIHBhc3NlZCB0byBhIHN1YnByb2Nlc3MsIG9yIHdoZXRoZXIgaXQgd2lsbCBiZSBtaXhlZCBpbnRvXG4gKiBgcHJvY2Vzcy5lbnZgIGxhdGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVDb250ZXh0VG9FbnYoZW52OiBFbnYsIGNvbnRleHQ6IENvbnRleHQsIGNvbXBsZXRlbmVzczogJ2FkZC1wcm9jZXNzLWVudi1sYXRlcicgfCAnZW52LWlzLWNvbXBsZXRlJykge1xuICBsZXQgY29udGV4dE92ZXJmbG93TG9jYXRpb24gPSBudWxsO1xuXG4gIC8vIE9uIFdpbmRvd3MsIGFsbCBlbnZ2YXJzIHRvZ2V0aGVyIG11c3QgZml0IGluIGEgMzJrIGJsb2NrICg8aHR0cHM6Ly9kZXZibG9ncy5taWNyb3NvZnQuY29tL29sZG5ld3RoaW5nLzIwMTAwMjAzLTAwPilcbiAgLy8gT24gTGludXgsIGEgc2luZ2xlIGVudHJ5IG1heSBub3QgZXhjZWVkIDEzMWs7IGJ1dCB3ZSdyZSB0cmVhdGluZyBpdCBhcyBhbGwgdG9nZXRoZXIgYmVjYXVzZSB0aGF0J3Mgc2FmZVxuICAvLyBhbmQgaXQncyBhIHNpbmdsZSBleGVjdXRpb24gcGF0aCBmb3IgYm90aCBwbGF0Zm9ybXMuXG4gIGNvbnN0IGVudlZhcmlhYmxlU2l6ZUxpbWl0ID0gb3MucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJyA/IDMyNzYwIDogMTMxMDcyO1xuXG4gIGNvbnN0IGNvbXBsZXRlRW52ID0geyAuLi5jb21wbGV0ZW5lc3MgPT09ICdhZGQtcHJvY2Vzcy1lbnYtbGF0ZXInID8gcHJvY2Vzcy5lbnYgOiB7fSwgLi4uZW52IH07XG4gIGNvbnN0IFtzbWFsbENvbnRleHQsIG92ZXJmbG93XSA9IHNwbGl0QnlTaXplKGNvbnRleHQsIHNwYWNlQXZhaWxhYmxlRm9yQ29udGV4dChjb21wbGV0ZUVudiwgZW52VmFyaWFibGVTaXplTGltaXQpKTtcblxuICAvLyBTdG9yZSB0aGUgc2FmZSBwYXJ0IGluIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICBlbnZbY3hhcGkuQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoc21hbGxDb250ZXh0KTtcblxuICAvLyBJZiB0aGVyZSB3YXMgYW55IG92ZXJmbG93LCB3cml0ZSBpdCB0byBhIHRlbXBvcmFyeSBmaWxlXG4gIGlmIChPYmplY3Qua2V5cyhvdmVyZmxvdyA/PyB7fSkubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGNvbnRleHREaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstY29udGV4dCcpKTtcbiAgICBjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiA9IHBhdGguam9pbihjb250ZXh0RGlyLCAnY29udGV4dC1vdmVyZmxvdy5qc29uJyk7XG4gICAgZnMud3JpdGVKU09OU3luYyhjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiwgb3ZlcmZsb3cpO1xuICAgIGVudltjeGFwaS5DT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOVl0gPSBjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbjtcbiAgfVxuXG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgaWYgKGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uKSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy5ybShwYXRoLmRpcm5hbWUoY29udGV4dE92ZXJmbG93TG9jYXRpb24pLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIGFzc2VtYmx5IHN1cHBvcnRzIGNvbnRleHQgb3ZlcmZsb3csIHdhcm4gb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBhc3NlbWJseSAtIHRoZSBhc3NlbWJseSB0byBjaGVja1xuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja0NvbnRleHRPdmVyZmxvd1N1cHBvcnQodHJlZTogQ29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQsIGlvSGVscGVyOiBJb0hlbHBlcik6IFByb21pc2U8dm9pZD4ge1xuICAvLyBXZSdyZSBkZWFsaW5nIHdpdGggYW4gb2xkIHZlcnNpb24gb2YgdGhlIGZyYW1ld29yayBoZXJlLiBJdCBpcyB1bmF3YXJlIG9mIHRoZSB0ZW1wb3JhcnlcbiAgLy8gZmlsZSwgd2hpY2ggbWVhbnMgdGhhdCBpdCB3aWxsIGlnbm9yZSB0aGUgY29udGV4dCBvdmVyZmxvdy5cbiAgaWYgKCFmcmFtZXdvcmtTdXBwb3J0c0NvbnRleHRPdmVyZmxvdyh0cmVlKSkge1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfVzAwMTAubXNnKCdQYXJ0IG9mIHRoZSBjb250ZXh0IGNvdWxkIG5vdCBiZSBzZW50IHRvIHRoZSBhcHBsaWNhdGlvbi4gUGxlYXNlIHVwZGF0ZSB0aGUgQVdTIENESyBsaWJyYXJ5IHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4nKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBGaW5kIHRoZSBgYXdzLWNkay1saWJgIGxpYnJhcnkgdmVyc2lvbiBieSBpbnNwZWN0aW5nIGNvbnN0cnVjdCB0cmVlIGRlYnVnIGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29uc3RydWN0TGlicmFyeVZlcnNpb24odHJlZTogQ29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBsZXQgcmV0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgc29tZSh0cmVlLCBub2RlID0+IHtcbiAgICBjb25zdCBmcW4gPSBub2RlLmNvbnN0cnVjdEluZm8/LmZxbjtcbiAgICBjb25zdCB2ZXJzaW9uID0gbm9kZS5jb25zdHJ1Y3RJbmZvPy52ZXJzaW9uO1xuICAgIGlmIChmcW4/LnN0YXJ0c1dpdGgoJ2F3cy1jZGstbGliLicpIHx8IGZxbj8uc3RhcnRzV2l0aCgnQGF3cy1jZGsvY29yZS4nKSkge1xuICAgICAgcmV0ID0gdmVyc2lvbjtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xuXG4gIHJldHVybiByZXQgIT09ICcwLjAuMCcgPyByZXQgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBmcmFtZXdvcmsgc3VwcG9ydHMgY29udGV4dCBvdmVyZmxvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJhbWV3b3JrU3VwcG9ydHNDb250ZXh0T3ZlcmZsb3codHJlZTogQ29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgY29uc3QgdmVyc2lvbiA9IGZpbmRDb25zdHJ1Y3RMaWJyYXJ5VmVyc2lvbih0cmVlKTtcblxuICByZXR1cm4gIXZlcnNpb24gfHwgIWx0ZSh2ZXJzaW9uLCAnMi4zOC4wJyk7XG59XG5cbi8qKlxuICogU2FmZWx5IGNyZWF0ZSBhbiBhc3NlbWJseSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3NlbWJseUZyb21EaXJlY3RvcnkoYXNzZW1ibHlEaXI6IHN0cmluZywgaW9IZWxwZXI6IElvSGVscGVyLCBsb2FkT3B0aW9uczogTG9hZEFzc2VtYmx5T3B0aW9ucyA9IHt9KSB7XG4gIHRyeSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgQ2xvdWRBc3NlbWJseShhc3NlbWJseURpciwge1xuICAgICAgc2tpcFZlcnNpb25DaGVjazogIShsb2FkT3B0aW9ucy5jaGVja1ZlcnNpb24gPz8gdHJ1ZSksXG4gICAgICBza2lwRW51bUNoZWNrOiAhKGxvYWRPcHRpb25zLmNoZWNrRW51bXMgPz8gdHJ1ZSksXG4gICAgICAvLyBXZSBzb3J0IGFzIHdlIGRlcGxveVxuICAgICAgdG9wb1NvcnQ6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdHJlZSA9IGF3YWl0IGxvYWRUcmVlKGFzc2VtYmx5LCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZS5iaW5kKGlvSGVscGVyLmRlZmF1bHRzKSk7XG4gICAgYXdhaXQgY2hlY2tDb250ZXh0T3ZlcmZsb3dTdXBwb3J0KHRyZWUsIGlvSGVscGVyKTtcblxuICAgIHJldHVybiBhc3NlbWJseTtcbiAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICBpZiAoZXJyLm1lc3NhZ2UuaW5jbHVkZXMoY3hzY2hlbWEuVkVSU0lPTl9NSVNNQVRDSCkpIHtcbiAgICAgIC8vIHRoaXMgbWVhbnMgdGhlIENMSSB2ZXJzaW9uIGlzIHRvbyBvbGQuXG4gICAgICAvLyB3ZSBpbnN0cnVjdCB0aGUgdXNlciB0byB1cGdyYWRlLlxuICAgICAgY29uc3QgbWVzc2FnZSA9ICdUaGlzIEFXUyBDREsgVG9vbGtpdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBBV1MgQ0RLIGxpYnJhcnkgdXNlZCBieSB5b3VyIGFwcGxpY2F0aW9uLiBQbGVhc2UgdXBncmFkZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24uJztcbiAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTExMTEubXNnKG1lc3NhZ2UsIHsgZXJyb3I6IGVyciB9KSk7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdBc3NlbWJseVZlcnNpb25NaXNtYXRjaCcsIGAke21lc3NhZ2V9XFxuKCR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dGluZ3NGcm9tU3ludGhPcHRpb25zKHN5bnRoT3B0czogQXBwU3ludGhPcHRpb25zID0ge30pOiBTZXR0aW5ncyB7XG4gIHJldHVybiBuZXcgU2V0dGluZ3Moe1xuICAgIGRlYnVnOiBmYWxzZSxcbiAgICBwYXRoTWV0YWRhdGE6IHRydWUsXG4gICAgdmVyc2lvblJlcG9ydGluZzogdHJ1ZSxcbiAgICBhc3NldE1ldGFkYXRhOiB0cnVlLFxuICAgIGFzc2V0U3RhZ2luZzogdHJ1ZSxcbiAgICAuLi5zeW50aE9wdHMsXG4gIH0sIHRydWUpO1xufVxuXG4vKipcbiAqIFR1cm4gc3ludGhlc2lzIG9wdGlvbnMgaW50byBjb250ZXh0L2Vudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IHdpbGwgZ28gdG8gdGhlIENESyBhcHBcbiAqXG4gKiBUaGVzZSBhcmUgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgdGhlIHN5bnRoZXNpcyBvcGVyYXRpb24sIGNvbmZpZ3VyYWJsZSBieSB0aGUgdXNlclxuICogZnJvbSB0aGUgb3V0c2lkZSBvZiB0aGUgYXBwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyYW1ldGVyc0Zyb21TeW50aE9wdGlvbnMoc3ludGhPcHRpb25zPzogQXBwU3ludGhPcHRpb25zKSB7XG4gIHJldHVybiBzeW50aFBhcmFtZXRlcnNGcm9tU2V0dGluZ3Moc2V0dGluZ3NGcm9tU3ludGhPcHRpb25zKHN5bnRoT3B0aW9ucyA/PyB7fSkpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReadableCloudAssembly = void 0;\nconst node_fs_1 = require(\"node:fs\");\n/**\n * The canonical implementation of `IReadableCloudAssembly`\n *\n * Holds a read lock that is unlocked on disposal, as well as optionally deletes the\n * cloud assembly directory.\n */\nclass ReadableCloudAssembly {\n cloudAssembly;\n lock;\n options;\n constructor(cloudAssembly, lock, options) {\n this.cloudAssembly = cloudAssembly;\n this.lock = lock;\n this.options = options;\n }\n async _unlock() {\n return this.lock.release();\n }\n async dispose() {\n await this.lock.release();\n if (this.options?.deleteOnDispose) {\n await node_fs_1.promises.rm(this.cloudAssembly.directory, { recursive: true, force: true });\n }\n }\n [Symbol.asyncDispose]() {\n return this.dispose();\n }\n}\nexports.ReadableCloudAssembly = ReadableCloudAssembly;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGFibGUtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWFkYWJsZS1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBeUM7QUFjekM7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFxQjtJQUVkO0lBQ0M7SUFDQTtJQUhuQixZQUNrQixhQUFrQyxFQUNqQyxJQUFlLEVBQ2YsT0FBc0M7UUFGdkMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2pDLFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUErQjtJQUV6RCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sa0JBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDSCxDQUFDO0lBRU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQXRCRCxzREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBJUmVhZExvY2sgfSBmcm9tICcuLi8uLi9yd2xvY2snO1xuaW1wb3J0IHR5cGUgeyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRhYmxlQ2xvdWRBc3NlbWJseU9wdGlvbnMge1xuICAvKipcbiAgICogRGVsZXRlIHRoZSBDbG91ZCBBc3NlbWJseSBkaXJlY3Rvcnkgd2hlbiB0aGUgb2JqZWN0IGlzIGRpc3Bvc2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZWxldGVPbkRpc3Bvc2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBjYW5vbmljYWwgaW1wbGVtZW50YXRpb24gb2YgYElSZWFkYWJsZUNsb3VkQXNzZW1ibHlgXG4gKlxuICogSG9sZHMgYSByZWFkIGxvY2sgdGhhdCBpcyB1bmxvY2tlZCBvbiBkaXNwb3NhbCwgYXMgd2VsbCBhcyBvcHRpb25hbGx5IGRlbGV0ZXMgdGhlXG4gKiBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNsb3VkQXNzZW1ibHk6IGN4YXBpLkNsb3VkQXNzZW1ibHksXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NrOiBJUmVhZExvY2ssXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zPzogUmVhZGFibGVDbG91ZEFzc2VtYmx5T3B0aW9ucyxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NrLnJlbGVhc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9jay5yZWxlYXNlKCk7XG4gICAgaWYgKHRoaXMub3B0aW9ucz8uZGVsZXRlT25EaXNwb3NlKSB7XG4gICAgICBhd2FpdCBmcy5ybSh0aGlzLmNsb3VkQXNzZW1ibHkuZGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackAssembly = void 0;\nrequire(\"../../../private/dispose-polyfill\");\nconst semver_1 = require(\"semver\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst stack_assembly_1 = require(\"../stack-assembly\");\nconst stack_collection_1 = require(\"../stack-collection\");\nconst stack_selector_1 = require(\"../stack-selector\");\n/**\n * A single Cloud Assembly wrapped to provide additional stack operations.\n */\nclass StackAssembly extends stack_assembly_1.BaseStackAssembly {\n _asm;\n constructor(_asm, ioHelper) {\n super(_asm.cloudAssembly, ioHelper);\n this._asm = _asm;\n }\n get cloudAssembly() {\n return this._asm.cloudAssembly;\n }\n async _unlock() {\n return this._asm._unlock();\n }\n async dispose() {\n return this._asm.dispose();\n }\n async [Symbol.asyncDispose]() {\n return this.dispose();\n }\n /**\n * Improved stack selection interface with a single selector\n * @throws when the assembly does not contain any stacks, unless `selector.failOnEmpty` is `false`\n * @throws when individual selection strategies are not satisfied\n */\n async selectStacksV2(selector) {\n const asm = this.assembly;\n const topLevelStacks = asm.stacks;\n const allStacks = (0, semver_1.major)(asm.version) < 10 ? asm.stacks : asm.stacksRecursively;\n if (allStacks.length === 0 && (selector.failOnEmpty ?? true)) {\n throw new toolkit_error_1.ToolkitError('NoStacksInApp', 'This app contains no stacks');\n }\n const extend = expandToExtendEnum(selector.expand);\n const patterns = StackAssembly.sanitizePatterns(selector.patterns ?? []);\n switch (selector.strategy) {\n case stack_selector_1.StackSelectionStrategy.ALL_STACKS:\n return new stack_collection_1.StackCollection(this, allStacks);\n case stack_selector_1.StackSelectionStrategy.MAIN_ASSEMBLY:\n if (topLevelStacks.length < 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('NoStackInMainAssembly', 'No stack found in the main cloud assembly. Use \"list\" to print manifest');\n }\n return this.extendStacks(topLevelStacks, allStacks, extend);\n case stack_selector_1.StackSelectionStrategy.ONLY_SINGLE:\n if (topLevelStacks.length !== 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('MultipleStacksWithoutSelector', 'Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\\n' +\n `Stacks: ${allStacks.map(x => x.hierarchicalId).join(' · ')}`);\n }\n return new stack_collection_1.StackCollection(this, topLevelStacks);\n default:\n const matched = await this.selectMatchingStacks(allStacks, patterns, extend);\n if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE\n && matched.stackCount !== 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('AmbiguousStackSelection', `Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);\n }\n if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH\n && matched.stackCount < 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('NoStacksMatched', `Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);\n }\n return matched;\n }\n }\n /**\n * Select all stacks.\n *\n * This method never throws and can safely be used as a basis for other calculations.\n *\n * @returns a `StackCollection` of all stacks\n */\n selectAllStacks() {\n const allStacks = (0, semver_1.major)(this.assembly.version) < 10 ? this.assembly.stacks : this.assembly.stacksRecursively;\n return new stack_collection_1.StackCollection(this, allStacks);\n }\n /**\n * Select all stacks that have the validateOnSynth flag et.\n *\n * @returns a `StackCollection` of all stacks that needs to be validated\n */\n selectStacksForValidation() {\n const allStacks = this.selectAllStacks();\n return allStacks.filter((art) => art.validateOnSynth ?? false);\n }\n}\nexports.StackAssembly = StackAssembly;\nfunction expandToExtendEnum(extend) {\n switch (extend) {\n case stack_selector_1.ExpandStackSelection.DOWNSTREAM:\n return stack_assembly_1.ExtendedStackSelection.Downstream;\n case stack_selector_1.ExpandStackSelection.UPSTREAM:\n return stack_assembly_1.ExtendedStackSelection.Upstream;\n case stack_selector_1.ExpandStackSelection.NONE:\n return stack_assembly_1.ExtendedStackSelection.None;\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFDM0MsbUNBQStCO0FBQy9CLGtFQUE4RDtBQUU5RCxzREFBMkc7QUFDM0csMERBQXNEO0FBRXRELHNEQUFpRjtBQUdqRjs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLGtDQUFpQjtJQUNyQjtJQUE3QixZQUE2QixJQUE0QixFQUFFLFFBQWtCO1FBQzNFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRFQsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFFekQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBdUI7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUEsY0FBSyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdB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LGlCQUFpQixDQUFDO1FBQzdHLE9BQU8sSUFBSSxrQ0FBZSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUF5QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQXRHRCxzQ0FzR0M7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQTZCO0lBQ3ZELFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLHFDQUFvQixDQUFDLFVBQVU7WUFDbEMsT0FBTyx1Q0FBeUIsQ0FBQyxVQUFVLENBQUM7UUFDOUMsS0FBSyxxQ0FBb0IsQ0FBQyxRQUFRO1lBQ2hDLE9BQU8sdUNBQXlCLENBQUMsUUFBUSxDQUFDO1FBQzVDLEtBQUsscUNBQW9CLENBQUMsSUFBSTtZQUM1QixPQUFPLHVDQUF5QixDQUFDLElBQUksQ0FBQztRQUN4QztZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0IHsgbWFqb3IgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9pby9wcml2YXRlJztcbmltcG9ydCB7IEJhc2VTdGFja0Fzc2VtYmx5LCBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIGFzIENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gfSBmcm9tICcuLi9zdGFjay1hc3NlbWJseSc7XG5pbXBvcnQgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi9zdGFjay1jb2xsZWN0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB7IEV4cGFuZFN0YWNrU2VsZWN0aW9uLCBTdGFja1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vc3RhY2stc2VsZWN0b3InO1xuaW1wb3J0IHR5cGUgeyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEEgc2luZ2xlIENsb3VkIEFzc2VtYmx5IHdyYXBwZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHN0YWNrIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0Fzc2VtYmx5IGV4dGVuZHMgQmFzZVN0YWNrQXNzZW1ibHkgaW1wbGVtZW50cyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfYXNtOiBJUmVhZGFibGVDbG91ZEFzc2VtYmx5LCBpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgICBzdXBlcihfYXNtLmNsb3VkQXNzZW1ibHksIGlvSGVscGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvdWRBc3NlbWJseSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXNtLmNsb3VkQXNzZW1ibHk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5fYXNtLl91bmxvY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCkge1xuICAgIHJldHVybiB0aGlzLl9hc20uZGlzcG9zZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wcm92ZWQgc3RhY2sgc2VsZWN0aW9uIGludGVyZmFjZSB3aXRoIGEgc2luZ2xlIHNlbGVjdG9yXG4gICAqIEB0aHJvd3Mgd2hlbiB0aGUgYXNzZW1ibHkgZG9lcyBub3QgY29udGFpbiBhbnkgc3RhY2tzLCB1bmxlc3MgYHNlbGVjdG9yLmZhaWxPbkVtcHR5YCBpcyBgZmFsc2VgXG4gICAqIEB0aHJvd3Mgd2hlbiBpbmRpdmlkdWFsIHNlbGVjdGlvbiBzdHJhdGVnaWVzIGFyZSBub3Qgc2F0aXNmaWVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0U3RhY2tzVjIoc2VsZWN0b3I6IFN0YWNrU2VsZWN0b3IpOiBQcm9taXNlPFN0YWNrQ29sbGVjdGlvbj4ge1xuICAgIGNvbnN0IGFzbSA9IHRoaXMuYXNzZW1ibHk7XG4gICAgY29uc3QgdG9wTGV2ZWxTdGFja3MgPSBhc20uc3RhY2tzO1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IG1ham9yKGFzbS52ZXJzaW9uKSA8IDEwID8gYXNtLnN0YWNrcyA6IGFzbS5zdGFja3NSZWN1cnNpdmVseTtcblxuICAgIGlmIChhbGxTdGFja3MubGVuZ3RoID09PSAwICYmIChzZWxlY3Rvci5mYWlsT25FbXB0eSA/PyB0cnVlKSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignTm9TdGFja3NJbkFwcCcsICdUaGlzIGFwcCBjb250YWlucyBubyBzdGFja3MnKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbmQgPSBleHBhbmRUb0V4dGVuZEVudW0oc2VsZWN0b3IuZXhwYW5kKTtcbiAgICBjb25zdCBwYXR0ZXJucyA9IFN0YWNrQXNzZW1ibHkuc2FuaXRpemVQYXR0ZXJucyhzZWxlY3Rvci5wYXR0ZXJucyA/PyBbXSk7XG5cbiAgICBzd2l0Y2ggKHNlbGVjdG9yLnN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuQUxMX1NUQUNLUzpcbiAgICAgICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgYWxsU3RhY2tzKTtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5NQUlOX0FTU0VNQkxZOlxuICAgICAgICBpZiAodG9wTGV2ZWxTdGFja3MubGVuZ3RoIDwgMSkge1xuICAgICAgICAgIC8vIEB0b2RvIHRleHQgc2hvdWxkIHByb2JhYmx5IGJlIGhhbmRsZWQgaW4gaW8gaG9zdFxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ05vU3RhY2tJbk1haW5Bc3NlbWJseScsICdObyBzdGFjayBmb3VuZCBpbiB0aGUgbWFpbiBjbG91ZCBhc3NlbWJseS4gVXNlIFwibGlzdFwiIHRvIHByaW50IG1hbmlmZXN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kU3RhY2tzKHRvcExldmVsU3RhY2tzLCBhbGxTdGFja3MsIGV4dGVuZCk7XG4gICAgICBjYXNlIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuT05MWV9TSU5HTEU6XG4gICAgICAgIGlmICh0b3BMZXZlbFN0YWNrcy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdNdWx0aXBsZVN0YWNrc1dpdGhvdXRTZWxlY3RvcicsICdTaW5jZSB0aGlzIGFwcCBpbmNsdWRlcyBtb3JlIHRoYW4gYSBzaW5nbGUgc3RhY2ssIHNwZWNpZnkgd2hpY2ggc3RhY2tzIHRvIHVzZSAod2lsZGNhcmRzIGFyZSBzdXBwb3J0ZWQpIG9yIHNwZWNpZnkgYC0tYWxsYFxcbicgK1xuICAgICAgICAgIGBTdGFja3M6ICR7YWxsU3RhY2tzLm1hcCh4ID0+IHguaGllcmFyY2hpY2FsSWQpLmpvaW4oJyDCtyAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCB0b3BMZXZlbFN0YWNrcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBtYXRjaGVkID0gYXdhaXQgdGhpcy5zZWxlY3RNYXRjaGluZ1N0YWNrcyhhbGxTdGFja3MsIHBhdHRlcm5zLCBleHRlbmQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0b3Iuc3RyYXRlZ3kgPT09IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuUEFUVEVSTl9NVVNUX01BVENIX1NJTkdMRVxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCAhPT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICAgJ0FtYmlndW91c1N0YWNrU2VsZWN0aW9uJyxcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSFxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCA8IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgICdOb1N0YWNrc01hdGNoZWQnLFxuICAgICAgICAgICAgYFN0YWNrIHNlbGVjdGlvbiBpcyBhbWJpZ3VvdXMsIHBsZWFzZSBjaG9vc2UgYSBzcGVjaWZpYyBzdGFjayBmb3IgaW1wb3J0IFske2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcsJyl9XWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYWxsIHN0YWNrcy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgbmV2ZXIgdGhyb3dzIGFuZCBjYW4gc2FmZWx5IGJlIHVzZWQgYXMgYSBiYXNpcyBmb3Igb3RoZXIgY2FsY3VsYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBhIGBTdGFja0NvbGxlY3Rpb25gIG9mIGFsbCBzdGFja3NcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RBbGxTdGFja3MoKSB7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gbWFqb3IodGhpcy5hc3NlbWJseS52ZXJzaW9uKSA8IDEwID8gdGhpcy5hc3NlbWJseS5zdGFja3MgOiB0aGlzLmFzc2VtYmx5LnN0YWNrc1JlY3Vyc2l2ZWx5O1xuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMsIGFsbFN0YWNrcyk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFsbCBzdGFja3MgdGhhdCBoYXZlIHRoZSB2YWxpZGF0ZU9uU3ludGggZmxhZyBldC5cbiAgICpcbiAgICogQHJldHVybnMgYSBgU3RhY2tDb2xsZWN0aW9uYCBvZiBhbGwgc3RhY2tzIHRoYXQgbmVlZHMgdG8gYmUgdmFsaWRhdGVkXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0U3RhY2tzRm9yVmFsaWRhdGlvbigpIHtcbiAgICBjb25zdCBhbGxTdGFja3MgPSB0aGlzLnNlbGVjdEFsbFN0YWNrcygpO1xuICAgIHJldHVybiBhbGxTdGFja3MuZmlsdGVyKChhcnQpID0+IGFydC52YWxpZGF0ZU9uU3ludGggPz8gZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4cGFuZFRvRXh0ZW5kRW51bShleHRlbmQ/OiBFeHBhbmRTdGFja1NlbGVjdGlvbik6IENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKGV4dGVuZCkge1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uRE9XTlNUUkVBTTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLkRvd25zdHJlYW07XG4gICAgY2FzZSBFeHBhbmRTdGFja1NlbGVjdGlvbi5VUFNUUkVBTTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLlVwc3RyZWFtO1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uTk9ORTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLk5vbmU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ALL_STACKS = void 0;\nconst stack_selector_1 = require(\"../stack-selector\");\nexports.ALL_STACKS = {\n strategy: stack_selector_1.StackSelectionStrategy.ALL_STACKS,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUEyRDtBQUU5QyxRQUFBLFVBQVUsR0FBa0I7SUFDdkMsUUFBUSxFQUFFLHVDQUFzQixDQUFDLFVBQVU7Q0FDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB7IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5cbmV4cG9ydCBjb25zdCBBTExfU1RBQ0tTOiBTdGFja1NlbGVjdG9yID0ge1xuICBzdHJhdGVneTogU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTLFxufTtcbiJdfQ==","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblySourceBuilder = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst fs = require(\"fs-extra\");\nconst context_store_1 = require(\"./context-store\");\nconst rwlock_1 = require(\"../rwlock\");\nconst cached_source_1 = require(\"./cached-source\");\nconst context_aware_source_1 = require(\"./private/context-aware-source\");\nconst exec_1 = require(\"./private/exec\");\nconst prepare_source_1 = require(\"./private/prepare-source\");\nconst readable_assembly_1 = require(\"./private/readable-assembly\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_2 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nconst helpers_1 = require(\"./private/helpers\");\nclass CloudAssemblySourceBuilder {\n /**\n * Create a Cloud Assembly from a Cloud Assembly builder function.\n *\n * ## Outdir\n *\n * If no output directory is given, it will synthesize into a temporary system\n * directory. The temporary directory will be cleaned up, unless\n * `disposeOutdir: false`.\n *\n * A write lock will be acquired on the output directory for the duration of\n * the CDK app synthesis (which means that no two apps can synthesize at the\n * same time), and after synthesis a read lock will be acquired on the\n * directory. This means that while the CloudAssembly is being used, no CDK\n * app synthesis can take place into that directory.\n *\n * ## Context\n *\n * If no `contextStore` is given, a `MemoryContext` will be used. This means\n * no provider lookups will be persisted anywhere by default. Use a different\n * type of context store if you want persistence between synth operations.\n *\n * @param builder - the builder function\n * @param props - additional configuration properties\n * @returns the CloudAssembly source\n */\n async fromAssemblyBuilder(builder, props = {}) {\n const services = await this.sourceBuilderServices();\n const contextStore = props.contextStore ?? new context_store_1.MemoryContext();\n const contextAssemblyProps = {\n services,\n contextStore,\n lookups: props.lookups,\n };\n const outdir = props.outdir ? path.resolve(props.outdir) : undefined;\n return new context_aware_source_1.ContextAwareCloudAssemblySource({\n produce: async () => {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const execution = __addDisposableResource(env_1, await prepare_source_1.ExecutionEnvironment.create(services, {\n outdir,\n resolveDefaultAppEnv: props.resolveDefaultEnvironment ?? true,\n }), true);\n const synthParams = (0, prepare_source_1.parametersFromSynthOptions)(props.synthOptions);\n const fullContext = {\n ...await contextStore.read(),\n ...synthParams.context,\n };\n await services.ioHelper.defaults.debug((0, util_1.format)('context:', fullContext));\n const env = (0, util_2.noUndefined)({\n // Versioning, outdir, default account and region\n ...await execution.defaultEnvVars(),\n // Environment variables derived from settings\n ...synthParams.env,\n });\n const cleanupContextTemp = (0, prepare_source_1.writeContextToEnv)(env, fullContext, 'env-is-complete');\n const _cleanupEnv = __addDisposableResource(env_1, (props.clobberEnv ?? true) ? (0, helpers_1.temporarilyWriteEnv)(env) : undefined, false);\n let assembly;\n try {\n assembly = await builder({\n outdir: execution.outdir,\n context: fullContext,\n env,\n });\n }\n catch (error) {\n // re-throw toolkit errors unchanged\n if (toolkit_error_1.ToolkitError.isToolkitError(error)) {\n throw error;\n }\n // otherwise, wrap into an assembly error\n throw toolkit_error_1.AssemblyError.withCause('Assembly builder failed', error);\n }\n finally {\n await cleanupContextTemp();\n }\n // Convert what we got to the definitely correct type we're expecting, a cxapi.CloudAssembly\n const asm = cxapi.CloudAssembly.isCloudAssembly(assembly)\n ? assembly\n : await (0, prepare_source_1.assemblyFromDirectory)(assembly.directory, services.ioHelper, props.loadAssemblyOptions);\n const success = await execution.markSuccessful();\n const deleteOnDispose = props.disposeOutdir ?? execution.shouldDisposeOutDir;\n return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n },\n }, contextAssemblyProps);\n }\n /**\n * Creates a Cloud Assembly from an existing assembly directory.\n *\n * A read lock will be acquired for the directory. This means that while\n * the CloudAssembly is being used, no CDK app synthesis can take place into\n * that directory.\n *\n * @param directory - directory the directory of a already produced Cloud Assembly.\n * @returns the CloudAssembly source\n */\n async fromAssemblyDirectory(directory, props = {}) {\n const services = await this.sourceBuilderServices();\n return {\n async produce() {\n await services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0150.msg('--app points to a cloud assembly, so we bypass synth'));\n const readLock = await new rwlock_1.RWLock(directory).acquireRead();\n try {\n const asm = await (0, prepare_source_1.assemblyFromDirectory)(directory, services.ioHelper, props.loadAssemblyOptions);\n const assembly = new readable_assembly_1.ReadableCloudAssembly(asm, readLock, { deleteOnDispose: false });\n if (assembly.cloudAssembly.manifest.missing && assembly.cloudAssembly.manifest.missing.length > 0) {\n if (props.failOnMissingContext ?? true) {\n const missingKeysSet = (0, helpers_1.missingContextKeys)(assembly.cloudAssembly.manifest.missing);\n const missingKeys = Array.from(missingKeysSet);\n throw toolkit_error_1.AssemblyError.withCause('Assembly contains missing context. ' +\n \"Make sure all necessary context is already in 'cdk.context.json' by running 'cdk synth' on a machine with sufficient AWS credentials and committing the result. \" +\n `Missing context keys: '${missingKeys.join(', ')}'`, 'Error producing assembly');\n }\n }\n return new cached_source_1.CachedCloudAssembly(assembly);\n }\n catch (e) {\n await readLock.release();\n throw e;\n }\n },\n };\n }\n /**\n * Use an AWS CDK app exectuable as source.\n *\n * `app` is a command line that will be executed to produce a Cloud Assembly.\n * The command will be executed in a shell, so it must come from a trusted source.\n *\n * The subprocess will execute in `workingDirectory`, which defaults to\n * the current process' working directory if not given.\n *\n * ## Outdir\n *\n * If an output directory is supplied, relative paths are evaluated with\n * respect to the current process' working directory. If an output directory\n * is not supplied, the default is a `cdk.out` directory underneath\n * `workingDirectory`. The output directory will not be cleaned up unless\n * `disposeOutdir: true`.\n *\n * A write lock will be acquired on the output directory for the duration of\n * the CDK app synthesis (which means that no two apps can synthesize at the\n * same time), and after synthesis a read lock will be acquired on the\n * directory. This means that while the CloudAssembly is being used, no CDK\n * app synthesis can take place into that directory.\n *\n * ## Context\n *\n * If no `contextStore` is given, a `CdkAppMultiContext` will be used, initialized\n * to the app's `workingDirectory`. This means that context will be loaded from\n * all the CDK's default context sources, and updates will be written to\n * `cdk.context.json`.\n *\n * @param props - additional configuration properties\n * @returns the CloudAssembly source\n */\n async fromCdkApp(app, props = {}) {\n const services = await this.sourceBuilderServices();\n const workingDirectory = props.workingDirectory ?? process.cwd();\n const outdir = props.outdir ? path.resolve(props.outdir) : path.resolve(workingDirectory, 'cdk.out');\n const contextStore = props.contextStore ?? new context_store_1.CdkAppMultiContext(workingDirectory);\n const contextAssemblyProps = {\n services,\n contextStore,\n lookups: props.lookups,\n };\n return new context_aware_source_1.ContextAwareCloudAssemblySource({\n produce: async () => {\n const env_2 = { stack: [], error: void 0, hasError: false };\n try {\n try {\n fs.mkdirpSync(outdir);\n }\n catch (e) {\n throw new toolkit_error_1.ToolkitError('OutputDirectoryCreateFailed', `Could not create output directory at '${outdir}' (${e.message}).`);\n }\n const execution = __addDisposableResource(env_2, await prepare_source_1.ExecutionEnvironment.create(services, {\n outdir,\n resolveDefaultAppEnv: props.resolveDefaultEnvironment ?? true,\n }), true);\n const commandLine = await execution.guessExecutable(app);\n const synthParams = (0, prepare_source_1.parametersFromSynthOptions)(props.synthOptions);\n const fullContext = {\n ...await contextStore.read(),\n ...synthParams.context,\n };\n await services.ioHelper.defaults.debug((0, util_1.format)('context:', fullContext));\n const env = (0, util_2.noUndefined)({\n // Need to start with full env of `writeContextToEnv` will not be able to do the size\n // calculation correctly.\n ...process.env,\n // User gave us something\n ...props.env,\n // Versioning, outdir, default account and region\n ...await execution.defaultEnvVars(),\n // Environment variables derived from settings\n ...synthParams.env,\n });\n const cleanupTemp = (0, prepare_source_1.writeContextToEnv)(env, fullContext, 'env-is-complete');\n try {\n await (0, exec_1.execInChildProcess)(commandLine, {\n eventPublisher: async (type, line) => {\n switch (type) {\n case 'data_stdout':\n await services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I1001.msg(line));\n break;\n case 'data_stderr':\n await services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_E1002.msg(line));\n break;\n }\n },\n env,\n cwd: workingDirectory,\n });\n }\n finally {\n await cleanupTemp();\n }\n const asm = await (0, prepare_source_1.assemblyFromDirectory)(outdir, services.ioHelper, props.loadAssemblyOptions);\n const success = await execution.markSuccessful();\n const deleteOnDispose = props.disposeOutdir ?? execution.shouldDisposeOutDir;\n return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });\n }\n catch (e_2) {\n env_2.error = e_2;\n env_2.hasError = true;\n }\n finally {\n const result_2 = __disposeResources(env_2);\n if (result_2)\n await result_2;\n }\n },\n }, contextAssemblyProps);\n }\n}\nexports.CloudAssemblySourceBuilder = CloudAssemblySourceBuilder;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUE4QjtBQUM5QixxREFBcUQ7QUFFckQsK0JBQStCO0FBQy9CLG1EQUF3RjtBQUN4RixzQ0FBbUM7QUFDbkMsbURBQXNEO0FBRXRELHlFQUFpRjtBQUNqRix5Q0FBb0Q7QUFDcEQsNkRBQXNJO0FBQ3RJLG1FQUFvRTtBQUdwRSwrREFBMEU7QUFDMUUscUNBQXlDO0FBQ3pDLDJDQUFtQztBQUNuQywrQ0FBNEU7QUErUTVFLE1BQXNCLDBCQUEwQjtJQU85Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUM5QixPQUF3QixFQUN4QixRQUFvQyxFQUFFO1FBRXRDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLDZCQUFhLEVBQUUsQ0FBQztRQUMvRCxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxRQUFRO1lBQ1IsWUFBWTtZQUNaLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVyRSxPQUFPLElBQUksc0RBQStCLENBQ3hDO1lBQ0UsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFOzs7b0JBQ2xCLE1BQVksU0FBUyxrQ0FBRyxNQUFNLHFDQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVB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a0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3Q0FDaEUsTUFBTTtvQ0FDUixLQUFLLGFBQWE7d0NBQ2hCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dDQUNoRSxNQUFNO2dDQUNWLENBQUM7NEJBQ0gsQ0FBQzs0QkFDRCxHQUFHOzRCQUNILEdBQUcsRUFBRSxnQkFBZ0I7eUJBQ3RCLENBQUMsQ0FBQztvQkFDTCxDQUFDOzRCQUFTLENBQUM7d0JBQ1QsTUFBTSxXQUFXLEVBQUUsQ0FBQztvQkFDdEIsQ0FBQztvQkFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsc0NBQXFCLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBRTlGLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNqRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDN0UsT0FBTyxJQUFJLHlDQUFxQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7YUFDOUU7U0FDRixFQUNELG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaFFELGdFQWdRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBDZGtBcHBNdWx0aUNvbnRleHQsIE1lbW9yeUNvbnRleHQsIHR5cGUgSUNvbnRleHRTdG9yZSB9IGZyb20gJy4vY29udGV4dC1zdG9yZSc7XG5pbXBvcnQgeyBSV0xvY2sgfSBmcm9tICcuLi9yd2xvY2snO1xuaW1wb3J0IHsgQ2FjaGVkQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vY2FjaGVkLXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vcHJpdmF0ZS9jb250ZXh0LWF3YXJlLXNvdXJjZSc7XG5pbXBvcnQgeyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi9wcml2YXRlL2NvbnRleHQtYXdhcmUtc291cmNlJztcbmltcG9ydCB7IGV4ZWNJbkNoaWxkUHJvY2VzcyB9IGZyb20gJy4vcHJpdmF0ZS9leGVjJztcbmltcG9ydCB7IEV4ZWN1dGlvbkVudmlyb25tZW50LCBhc3NlbWJseUZyb21EaXJlY3RvcnksIHBhcmFtZXRlcnNGcm9tU3ludGhPcHRpb25zLCB3cml0ZUNvbnRleHRUb0VudiB9IGZyb20gJy4vcHJpdmF0ZS9wcmVwYXJlLXNvdXJjZSc7XG5pbXBvcnQgeyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuL3ByaXZhdGUvcmVhZGFibGUtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0U2VydmljZXMgfSBmcm9tICcuLi8uLi90b29sa2l0L3ByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yLCBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IG5vVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgbWlzc2luZ0NvbnRleHRLZXlzLCB0ZW1wb3JhcmlseVdyaXRlRW52IH0gZnJvbSAnLi9wcml2YXRlL2hlbHBlcnMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHRoYXQgd291bGQgbm9ybWFsbHkgYmUgcGFzc2VkIHRvIGEgQ0RLIGFwcCB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICpcbiAgICogVGhpcyBjb250YWlucyB2YXJpYWJsZXMgaW50ZW5kZWQgZm9yIHRoZSB1c2VyIHBvcnRpb24gb2YgYSBDREsgYXBwIChub3RhYmx5XG4gICAqIGBDREtfREVGQVVMVF9BQ0NPVU5UYCBhbmQgYENES19ERUZBVUxUX1JFR0lPTmApLCB3aGljaCB5b3UgY2FuIGZyZWVseSByZWFkLlxuICAgKlxuICAgKiBJdCBhbHNvIGNvbnRhaW5zIHZhcmlhYmxlcyBpbnRlbmRlZCBmb3IgdGhlIENESyBUb29sa2l0IHRvIGNvbW11bmljYXRlIHdpdGhcbiAgICogdGhlIGludGVybmFscyBvZiB0aGUgY29uc3RydWN0IGxpYnJhcnksIGxpa2UgYENES19ERUJVR2AgYW5kXG4gICAqIGBDREtfQ0xJX0FTTV9WRVJTSU9OYC4gUmVhZGluZyB0aGVzZSBsYXR0ZXIgdmFyaWFibGVzIGlzIHBvc3NpYmxlIGJ1dCBub3RcbiAgICogcmVjb21tZW5kZWQsIGFzIHRoZWlyIG1lYW5pbmcgbWF5IGNoYW5nZSB3aXRob3V0IG5vdGljZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgc3ludGhlc2lzIHBhcmFtZXRlcnMgYW5kIHByb2R1Y2VzIGEgQ2xvdWQgQXNzZW1ibHlcbiAqXG4gKiBNb3N0IHR5cGljYWxseSwgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGhlcmUgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhXG4gKiBgY2RrLkFwcGAsIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2YgYGFwcC5zeW50aCgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURpcmVjdG9yeVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZmFpbCBpZiB0aGUgc3ludGhlc2l6ZWQgYXNzZW1ibHkgY29udGFpbnNcbiAgICogbWlzc2luZyBjb250ZXh0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxPbk1pc3NpbmdDb250ZXh0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyBhIENMSSBmcm9tIGFuIEFXUyBDREsgQXBwIGRpcmVjdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRW1pdHMgdGhlIHN5bnRoZXNpemVkIGNsb3VkIGFzc2VtYmx5IGludG8gdGhlIGdpdmVuIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBcImNkay5vdXRcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGNvbnRleHQgbG9va3Vwcy5cbiAgICpcbiAgICogU3ludGhlc2lzIGZhaWxzIGlmIHRoaXMgaXMgZGlzYWJsZWQgYW5kIGNvbnRleHQgbG9va3VwcyBuZWVkIHRvIGJlIHBlcmZvcm1lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3Vwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgY29udGV4dCBzdG9yZSBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICpcbiAgICogVGhlIGNvbnRleHQgc3RvcmUgd2lsbCBiZSB1c2VkIHRvIHNvdXJjZSBpbml0aWFsIGNvbnRleHQgdmFsdWVzLFxuICAgKiBhbmQgdXBkYXRlZCB2YWx1ZXMgd2lsbCBiZSBzdG9yZWQgaGVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBlbmRzIG9uIHRoZSBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRTdG9yZT86IElDb250ZXh0U3RvcmU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdGhhdCBhcmUgcGFzc2VkIHRocm91Z2ggdGhlIGNvbnRleHQgdG8gYSBDREsgYXBwIG9uIHN5bnRoXG4gICAqL1xuICByZWFkb25seSBzeW50aE9wdGlvbnM/OiBBcHBTeW50aE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcblxuICAvKipcbiAgICogRGVsZXRlIHRoZSBgb3V0ZGlyYCB3aGVuIHRoZSBhc3NlbWJseSBpcyBkaXNwb3NlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGB0cnVlYCBpZiBgb3V0ZGlyYCBpcyBub3QgZ2l2ZW4sIGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBkaXNwb3NlT3V0ZGlyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgY3VycmVudCBkZWZhdWx0IGVudmlyb25tZW50IGFuIHByb3ZpZGUgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHRoZSBhcHAuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBtYWtlIGEgKGNhY2hlZCkgY2FsbCB0byBTVFMgdG8gcmVzb2x2ZSB0aGUgY3VycmVudCBhY2NvdW50IHVzaW5nXG4gICAqIGJhc2UgY3JlZGVudGlhbHMuIFRoZSBiZWhhdmlvciBpcyBub3QgYWx3YXlzIGRlc2lyYWJsZSBhbmQgY2FuIGFkZFxuICAgKiB1bm5lY2Vzc2FyeSBkZWxheXMsIGUuZy4gd2hlbiBhbiBhcHAgc3BlY2lmaWVzIGFuIGVudmlyb25tZW50IGV4cGxpY2l0bHlcbiAgICogb3Igd2hlbiBsb2NhbCBhY3Rpb25zIGFyZSBiZSBwZXJmb3JtZWQgd2l0aG91dCBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVEZWZhdWx0RW52aXJvbm1lbnQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgZnJvbUFzc2VtYmx5QnVpbGRlcmAgQXNzZW1ibHkgU291cmNlIGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbUFzc2VtYmx5QnVpbGRlck9wdGlvbnMgZXh0ZW5kcyBBc3NlbWJseVNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIE11dGF0ZSBjdXJyZW50IHByb2Nlc3MnIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBjb21tdW5pY2F0ZSB3aXRoIENESyBhcHBcbiAgICpcbiAgICogVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGUgVG9vbGtpdCB1c2VzIHRvIHBhc3NcbiAgICogaW5mb3JtYXRpb24gdG8gdGhlIENESyBhcHAuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIGN1cnJlbnRcbiAgICogcHJvY2VzcycgZ2xvYmFsIHNoYXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYmVmb3JlIHRoZSBidWlsZGVyIGlzIGludm9rZWQsXG4gICAqIGFuZCB5b3UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBlbHNlLiBIb3dldmVyLCBiZWNhdXNlIHRoaXMgbXV0YXRlc1xuICAgKiBzaGFyZWQgc3RhdGUgaXQgaXMgbm90IHNhZmUgdG8gcnVuIG11bHRpcGxlIGJ1aWxkZXJzIGNvbmN1cnJlbnRseS5cbiAgICpcbiAgICogU2V0IHRoaXMgdG8gYGZhbHNlYCB0byBhdm9pZCBtdXRhdGluZyB0aGUgc2hhcmVkIGVudmlyb25tZW50LiBJbnN0ZWFkLFxuICAgKiB5b3Ugd2lsbCBuZWVkIHRvIHBhc3MgdGhlIGBvdXRkaXJgIGFuZCBgY29udGV4dGAgdG8gdGhlIGBBcHBgIGNvbnN0cnVjdG9yXG4gICAqIGRpcmVjdGx5IGluIHlvdXIgYnVpbGRlciwgYW5kIGluc3BlY3QgdGhlIGBlbnZgIG1hcCBkaXJlY3RseVxuICAgKiBmb3IgaW5mb3JtYXRpb24gbGlrZSB0aGUgYENES19ERUZBVUxUX0FDQ09VTlRgIGFuZCBgQ0RLX0RFRkFVTFRfUkVHSU9OYC5cbiAgICpcbiAgICogYGBgdHNcbiAgICogY29uc3QgY3ggPSBhd2FpdCB0b29sa2l0LmZyb21Bc3NlbWJseUJ1aWxkZXIoYXN5bmMgKHByb3BzKSA9PiB7XG4gICAqICAgLy8gSW1wb3J0YW50OiBwYXNzIG9uIHN5bnRoZXNpcyBwYXJhbWV0ZXJzXG4gICAqICAgY29uc3QgYXBwID0gbmV3IGNvcmUuQXBwKHtcbiAgICogICAgIG91dGRpcjogcHJvcHMub3V0ZGlyLFxuICAgKiAgICAgY29udGV4dDogcHJvcHMuY29udGV4dCxcbiAgICogICB9KTtcbiAgICpcbiAgICogICBuZXcgTXlTdGFjayhhcHAsICdNeVN0YWNrJywge1xuICAgKiAgICAgZW52OiB7XG4gICAqICAgICAgIGFjY291bnQ6IHByb3BzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULFxuICAgKiAgICAgICByZWdpb246IHByb3BzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG4gICAqICAgICB9LFxuICAgKiAgIH0pO1xuICAgKlxuICAgKiAgIC8vIC4uLlxuICAgKiB9LCB7XG4gICAqICAgY2xvYmJlckVudjogZmFsc2UsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xvYmJlckVudj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGBmcm9tQ2RrQXBwYCBBc3NlbWJseSBTb3VyY2UgY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9tQ2RrQXBwT3B0aW9ucyBleHRlbmRzIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYXBwbGljYXRpb24gaW4gdGhpcyB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICAgKlxuICAgKiBUaGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2lsbCBiZSBzZXQgaW4gYWRkaXRpb24gdG8gdGhlIGVudmlyb25tZW50XG4gICAqIHZhcmlhYmxlcyBjdXJyZW50bHkgc2V0IGluIHRoZSBwcm9jZXNzLiBBIHZhbHVlIG9mIGB1bmRlZmluZWRgIHdpbGxcbiAgICogdW5zZXQgYSBwYXJ0aWN1bGFyIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyB0aGF0IGFyZSBwYXNzZWQgdG8gYSBDREsgYXBwIHZpYSB0aGUgY29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFN5bnRoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZWJ1ZyB0aGUgQ0RLIGFwcC5cbiAgICogTG9ncyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGR1cmluZyBzeW50aGVzaXMsIHN1Y2ggYXMgY3JlYXRpb24gc3RhY2sgdHJhY2VzIG9mIHRva2Vucy5cbiAgICogVGhpcyBhbHNvIHNldHMgdGhlIGBDREtfREVCVUdgIGVudiB2YXJpYWJsZSBhbmQgd2lsbCBzbG93IGRvd24gc3ludGhlc2lzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBlbWJlZGRpbmcgb2YgdGhlIFwiYXdzOmNkazpwYXRoXCIgaW4gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBhdGhNZXRhZGF0YT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgY29sbGVjdGlvbiBhbmQgcmVwb3J0aW5nIG9mIHZlcnNpb24gaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25SZXBvcnRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGUgZW5hYmxlZCwgYGF3czphc3NldDp4eHhgIG1ldGFkYXRhIGVudHJpZXMgYXJlIGFkZGVkIHRvIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRGlzYWJsaW5nIHRoaXMgY2FuIGJlIHVzZWZ1bCBpbiBjZXJ0YWluIGNhc2VzIGxpa2UgaW50ZWdyYXRpb24gdGVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYXNzZXQgc3RhZ2luZy5cbiAgICpcbiAgICogRGlzYWJsaW5nIGFzc2V0IHN0YWdpbmcgbWVhbnMgdGhhdCBjb3B5YWJsZSBhc3NldHMgd2lsbCBub3QgYmUgY29waWVkIHRvIHRoZVxuICAgKiBvdXRwdXQgZGlyZWN0b3J5IGFuZCB3aWxsIGJlIHJlZmVyZW5jZWQgd2l0aCBhYnNvbHV0ZSBwYXRocy5cbiAgICpcbiAgICogTm90IGNvcGllZCB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeTogdGhpcyBpcyBzbyB1c2VycyBjYW4gaXRlcmF0ZSBvbiB0aGVcbiAgICogTGFtYmRhIHNvdXJjZSBhbmQgcnVuIFNBTSBDTEkgd2l0aG91dCBoYXZpbmcgdG8gcmUtcnVuIENESyAobm90ZTogd2VcbiAgICogY2Fubm90IGFjaGlldmUgdGhpcyBmb3IgYnVuZGxlZCBhc3NldHMsIGlmIGFzc2V0cyBhcmUgYnVuZGxlZCB0aGV5XG4gICAqIHdpbGwgaGF2ZSB0byByZS1ydW4gQ0RLIENMSSB0byByZS1idW5kbGUgdXBkYXRlZCB2ZXJzaW9ucykuXG4gICAqXG4gICAqIEFic29sdXRlIHBhdGg6IFNBTSBDTEkgZXhwZWN0cyBgY3dkYC1yZWxhdGl2ZSBwYXRocyBpbiBhIHJlc291cmNlJ3NcbiAgICogYGF3czphc3NldDpwYXRoYCBtZXRhZGF0YS4gSW4gb3JkZXIgdG8gYmUgcHJlZGljdGFibGUsIHdlIHdpbGwgYWx3YXlzIG91dHB1dFxuICAgKiBhYnNvbHV0ZSBwYXRocy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRTdGFnaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VsZWN0IHdoaWNoIHN0YWNrcyBzaG91bGQgaGF2ZSBhc3NldCBidW5kbGluZyBlbmFibGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtcIioqXCJdIC0gYWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxpbmdGb3JTdGFja3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBjb25maWd1cmUgbG9hZGluZyBvZiB0aGUgYXNzZW1ibHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc3ludGhlc2l6ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2FkQXNzZW1ibHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIENoZWNrIHRoZSBUb29sa2l0IHN1cHBvcnRzIHRoZSBDbG91ZCBBc3NlbWJseSBTY2hlbWEgdmVyc2lvblxuICAgKlxuICAgKiBXaGVuIGRpc2FibGVkLCBhbGxvd3MgdG8gVG9vbGtpdCB0byByZWFkIGEgbmV3ZXIgY2xvdWQgYXNzZW1ibHkgdGhhbiB0aGUgQ1ggQVBJIGlzIGRlc2lnbmVkXG4gICAqIHRvIHN1cHBvcnQuIFlvdXIgYXBwbGljYXRpb24gbWF5IG5vdCBiZSBhd2FyZSBvZiBhbGwgZmVhdHVyZXMgdGhhdCBpbiB1c2UgaW4gdGhlIENsb3VkIEFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjaGVja1ZlcnNpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBlbnVtcyB0byBvbmx5IGhhdmUga25vd24gdmFsdWVzXG4gICAqXG4gICAqIFdoZW4gZGlzYWJsZWQsIHRoZSBUb29sa2l0IG1heSByZWFkIGVudW0gdmFsdWVzIGl0IGRvZXNuJ3Qga25vdyBhYm91dCB5ZXQuXG4gICAqIFlvdSB3aWxsIGhhdmUgdG8gbWFrZSBzdXJlIHRvIGFsd2F5cyBjaGVjayB0aGUgdmFsdWVzIG9mIGVudW1zIHlvdSBlbmNvdW50ZXIgaW4gdGhlIG1hbmlmZXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjaGVja0VudW1zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHtcbiAgLyoqXG4gICAqIEhlbHBlciB0byBwcm92aWRlIHRoZSBDbG91ZEFzc2VtYmx5U291cmNlQnVpbGRlciB3aXRoIHJlcXVpcmVkIHRvb2xraXQgc2VydmljZXNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc291cmNlQnVpbGRlclNlcnZpY2VzKCk6IFByb21pc2U8VG9vbGtpdFNlcnZpY2VzPjtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhIENsb3VkIEFzc2VtYmx5IGJ1aWxkZXIgZnVuY3Rpb24uXG4gICAqXG4gICAqICMjIE91dGRpclxuICAgKlxuICAgKiBJZiBubyBvdXRwdXQgZGlyZWN0b3J5IGlzIGdpdmVuLCBpdCB3aWxsIHN5bnRoZXNpemUgaW50byBhIHRlbXBvcmFyeSBzeXN0ZW1cbiAgICogZGlyZWN0b3J5LiBUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aWxsIGJlIGNsZWFuZWQgdXAsIHVubGVzc1xuICAgKiBgZGlzcG9zZU91dGRpcjogZmFsc2VgLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZSB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREtcbiAgICogYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiAjIyBDb250ZXh0XG4gICAqXG4gICAqIElmIG5vIGBjb250ZXh0U3RvcmVgIGlzIGdpdmVuLCBhIGBNZW1vcnlDb250ZXh0YCB3aWxsIGJlIHVzZWQuIFRoaXMgbWVhbnNcbiAgICogbm8gcHJvdmlkZXIgbG9va3VwcyB3aWxsIGJlIHBlcnNpc3RlZCBhbnl3aGVyZSBieSBkZWZhdWx0LiBVc2UgYSBkaWZmZXJlbnRcbiAgICogdHlwZSBvZiBjb250ZXh0IHN0b3JlIGlmIHlvdSB3YW50IHBlcnNpc3RlbmNlIGJldHdlZW4gc3ludGggb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGJ1aWxkZXIgLSB0aGUgYnVpbGRlciBmdW5jdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgLSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlCdWlsZGVyKFxuICAgIGJ1aWxkZXI6IEFzc2VtYmx5QnVpbGRlcixcbiAgICBwcm9wczogRnJvbUFzc2VtYmx5QnVpbGRlck9wdGlvbnMgPSB7fSxcbiAgKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICBjb25zdCBjb250ZXh0U3RvcmUgPSBwcm9wcy5jb250ZXh0U3RvcmUgPz8gbmV3IE1lbW9yeUNvbnRleHQoKTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0U3RvcmUsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPyBwYXRoLnJlc29sdmUocHJvcHMub3V0ZGlyKSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHVzaW5nIGV4ZWN1dGlvbiA9IGF3YWl0IEV4ZWN1dGlvbkVudmlyb25tZW50LmNyZWF0ZShzZXJ2aWNlcywge1xuICAgICAgICAgICAgb3V0ZGlyLFxuICAgICAgICAgICAgcmVzb2x2ZURlZmF1bHRBcHBFbnY6IHByb3BzLnJlc29sdmVEZWZhdWx0RW52aXJvbm1lbnQgPz8gdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHN5bnRoUGFyYW1zID0gcGFyYW1ldGVyc0Zyb21TeW50aE9wdGlvbnMocHJvcHMuc3ludGhPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IGZ1bGxDb250ZXh0ID0ge1xuICAgICAgICAgICAgLi4uYXdhaXQgY29udGV4dFN0b3JlLnJlYWQoKSxcbiAgICAgICAgICAgIC4uLnN5bnRoUGFyYW1zLmNvbnRleHQsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnY29udGV4dDonLCBmdWxsQ29udGV4dCkpO1xuXG4gICAgICAgICAgY29uc3QgZW52ID0gbm9VbmRlZmluZWQoe1xuICAgICAgICAgICAgLy8gVmVyc2lvbmluZywgb3V0ZGlyLCBkZWZhdWx0IGFjY291bnQgYW5kIHJlZ2lvblxuICAgICAgICAgICAgLi4uYXdhaXQgZXhlY3V0aW9uLmRlZmF1bHRFbnZWYXJzKCksXG4gICAgICAgICAgICAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZXMgZGVyaXZlZCBmcm9tIHNldHRpbmdzXG4gICAgICAgICAgICAuLi5zeW50aFBhcmFtcy5lbnYsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBjbGVhbnVwQ29udGV4dFRlbXAgPSB3cml0ZUNvbnRleHRUb0VudihlbnYsIGZ1bGxDb250ZXh0LCAnZW52LWlzLWNvbXBsZXRlJyk7XG4gICAgICAgICAgdXNpbmcgX2NsZWFudXBFbnYgPSAocHJvcHMuY2xvYmJlckVudiA/PyB0cnVlKSA/IHRlbXBvcmFyaWx5V3JpdGVFbnYoZW52KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICBsZXQgYXNzZW1ibHk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFzc2VtYmx5ID0gYXdhaXQgYnVpbGRlcih7XG4gICAgICAgICAgICAgIG91dGRpcjogZXhlY3V0aW9uLm91dGRpcixcbiAgICAgICAgICAgICAgY29udGV4dDogZnVsbENvbnRleHQsXG4gICAgICAgICAgICAgIGVudixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAvLyByZS10aHJvdyB0b29sa2l0IGVycm9ycyB1bmNoYW5nZWRcbiAgICAgICAgICAgIGlmIChUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3cmFwIGludG8gYW4gYXNzZW1ibHkgZXJyb3JcbiAgICAgICAgICAgIHRocm93IEFzc2VtYmx5RXJyb3Iud2l0aENhdXNlKCdBc3NlbWJseSBidWlsZGVyIGZhaWxlZCcsIGVycm9yKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgYXdhaXQgY2xlYW51cENvbnRleHRUZW1wKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ29udmVydCB3aGF0IHdlIGdvdCB0byB0aGUgZGVmaW5pdGVseSBjb3JyZWN0IHR5cGUgd2UncmUgZXhwZWN0aW5nLCBhIGN4YXBpLkNsb3VkQXNzZW1ibHlcbiAgICAgICAgICBjb25zdCBhc20gPSBjeGFwaS5DbG91ZEFzc2VtYmx5LmlzQ2xvdWRBc3NlbWJseShhc3NlbWJseSlcbiAgICAgICAgICAgID8gYXNzZW1ibHlcbiAgICAgICAgICAgIDogYXdhaXQgYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGFzc2VtYmx5LmRpcmVjdG9yeSwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuXG4gICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IGV4ZWN1dGlvbi5tYXJrU3VjY2Vzc2Z1bCgpO1xuICAgICAgICAgIGNvbnN0IGRlbGV0ZU9uRGlzcG9zZSA9IHByb3BzLmRpc3Bvc2VPdXRkaXIgPz8gZXhlY3V0aW9uLnNob3VsZERpc3Bvc2VPdXREaXI7XG4gICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCBzdWNjZXNzLnJlYWRMb2NrLCB7IGRlbGV0ZU9uRGlzcG9zZSB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGFuIGV4aXN0aW5nIGFzc2VtYmx5IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQSByZWFkIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBmb3IgdGhlIGRpcmVjdG9yeS4gVGhpcyBtZWFucyB0aGF0IHdoaWxlXG4gICAqIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENESyBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG9cbiAgICogdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBkaXJlY3RvcnkgdGhlIGRpcmVjdG9yeSBvZiBhIGFscmVhZHkgcHJvZHVjZWQgQ2xvdWQgQXNzZW1ibHkuXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21Bc3NlbWJseURpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgcHJvcHM6IEFzc2VtYmx5RGlyZWN0b3J5UHJvcHMgPSB7fSk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhc3luYyBwcm9kdWNlKCkge1xuICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMTUwLm1zZygnLS1hcHAgcG9pbnRzIHRvIGEgY2xvdWQgYXNzZW1ibHksIHNvIHdlIGJ5cGFzcyBzeW50aCcpKTtcbiAgICAgICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCBuZXcgUldMb2NrKGRpcmVjdG9yeSkuYWNxdWlyZVJlYWQoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3RvcnkoZGlyZWN0b3J5LCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG4gICAgICAgICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgUmVhZGFibGVDbG91ZEFzc2VtYmx5KGFzbSwgcmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBmYWxzZSB9KTtcbiAgICAgICAgICBpZiAoYXNzZW1ibHkuY2xvdWRBc3NlbWJseS5tYW5pZmVzdC5taXNzaW5nICYmIGFzc2VtYmx5LmNsb3VkQXNzZW1ibHkubWFuaWZlc3QubWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAocHJvcHMuZmFpbE9uTWlzc2luZ0NvbnRleHQgPz8gdHJ1ZSkge1xuICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nS2V5c1NldCA9IG1pc3NpbmdDb250ZXh0S2V5cyhhc3NlbWJseS5jbG91ZEFzc2VtYmx5Lm1hbmlmZXN0Lm1pc3NpbmcpO1xuICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nS2V5cyA9IEFycmF5LmZyb20obWlzc2luZ0tleXNTZXQpO1xuICAgICAgICAgICAgICB0aHJvdyBBc3NlbWJseUVycm9yLndpdGhDYXVzZShcbiAgICAgICAgICAgICAgICAnQXNzZW1ibHkgY29udGFpbnMgbWlzc2luZyBjb250ZXh0LiAnICtcbiAgICAgICAgICAgICAgICAgIFwiTWFrZSBzdXJlIGFsbCBuZWNlc3NhcnkgY29udGV4dCBpcyBhbHJlYWR5IGluICdjZGsuY29udGV4dC5qc29uJyBieSBydW5uaW5nICdjZGsgc3ludGgnIG9uIGEgbWFjaGluZSB3aXRoIHN1ZmZpY2llbnQgQVdTIGNyZWRlbnRpYWxzIGFuZCBjb21taXR0aW5nIHRoZSByZXN1bHQuIFwiICtcbiAgICAgICAgICAgICAgICAgIGBNaXNzaW5nIGNvbnRleHQga2V5czogJyR7bWlzc2luZ0tleXMuam9pbignLCAnKX0nYCxcbiAgICAgICAgICAgICAgICAnRXJyb3IgcHJvZHVjaW5nIGFzc2VtYmx5JyxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRDbG91ZEFzc2VtYmx5KGFzc2VtYmx5KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGF3YWl0IHJlYWRMb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBhbiBBV1MgQ0RLIGFwcCBleGVjdHVhYmxlIGFzIHNvdXJjZS5cbiAgICpcbiAgICogYGFwcGAgaXMgYSBjb21tYW5kIGxpbmUgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHRvIHByb2R1Y2UgYSBDbG91ZCBBc3NlbWJseS5cbiAgICogVGhlIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZCBpbiBhIHNoZWxsLCBzbyBpdCBtdXN0IGNvbWUgZnJvbSBhIHRydXN0ZWQgc291cmNlLlxuICAgKlxuICAgKiBUaGUgc3VicHJvY2VzcyB3aWxsIGV4ZWN1dGUgaW4gYHdvcmtpbmdEaXJlY3RvcnlgLCB3aGljaCBkZWZhdWx0cyB0b1xuICAgKiB0aGUgY3VycmVudCBwcm9jZXNzJyB3b3JraW5nIGRpcmVjdG9yeSBpZiBub3QgZ2l2ZW4uXG4gICAqXG4gICAqICMjIE91dGRpclxuICAgKlxuICAgKiBJZiBhbiBvdXRwdXQgZGlyZWN0b3J5IGlzIHN1cHBsaWVkLCByZWxhdGl2ZSBwYXRocyBhcmUgZXZhbHVhdGVkIHdpdGhcbiAgICogcmVzcGVjdCB0byB0aGUgY3VycmVudCBwcm9jZXNzJyB3b3JraW5nIGRpcmVjdG9yeS4gSWYgYW4gb3V0cHV0IGRpcmVjdG9yeVxuICAgKiBpcyBub3Qgc3VwcGxpZWQsIHRoZSBkZWZhdWx0IGlzIGEgYGNkay5vdXRgIGRpcmVjdG9yeSB1bmRlcm5lYXRoXG4gICAqIGB3b3JraW5nRGlyZWN0b3J5YC4gVGhlIG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBub3QgYmUgY2xlYW5lZCB1cCB1bmxlc3NcbiAgICogYGRpc3Bvc2VPdXRkaXI6IHRydWVgLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuICBUaGlzIG1lYW5zIHRoYXQgd2hpbGUgdGhlIENsb3VkQXNzZW1ibHkgaXMgYmVpbmcgdXNlZCwgbm8gQ0RLXG4gICAqIGFwcCBzeW50aGVzaXMgY2FuIHRha2UgcGxhY2UgaW50byB0aGF0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogIyMgQ29udGV4dFxuICAgKlxuICAgKiBJZiBubyBgY29udGV4dFN0b3JlYCBpcyBnaXZlbiwgYSBgQ2RrQXBwTXVsdGlDb250ZXh0YCB3aWxsIGJlIHVzZWQsIGluaXRpYWxpemVkXG4gICAqIHRvIHRoZSBhcHAncyBgd29ya2luZ0RpcmVjdG9yeWAuIFRoaXMgbWVhbnMgdGhhdCBjb250ZXh0IHdpbGwgYmUgbG9hZGVkIGZyb21cbiAgICogYWxsIHRoZSBDREsncyBkZWZhdWx0IGNvbnRleHQgc291cmNlcywgYW5kIHVwZGF0ZXMgd2lsbCBiZSB3cml0dGVuIHRvXG4gICAqIGBjZGsuY29udGV4dC5qc29uYC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUNka0FwcChhcHA6IHN0cmluZywgcHJvcHM6IEZyb21DZGtBcHBPcHRpb25zID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IHByb3BzLndvcmtpbmdEaXJlY3RvcnkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPyBwYXRoLnJlc29sdmUocHJvcHMub3V0ZGlyKSA6IHBhdGgucmVzb2x2ZSh3b3JraW5nRGlyZWN0b3J5LCAnY2RrLm91dCcpO1xuXG4gICAgY29uc3QgY29udGV4dFN0b3JlID0gcHJvcHMuY29udGV4dFN0b3JlID8/IG5ldyBDZGtBcHBNdWx0aUNvbnRleHQod29ya2luZ0RpcmVjdG9yeSk7XG5cbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0U3RvcmUsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZnMubWtkaXJwU3luYyhvdXRkaXIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignT3V0cHV0RGlyZWN0b3J5Q3JlYXRlRmFpbGVkJywgYENvdWxkIG5vdCBjcmVhdGUgb3V0cHV0IGRpcmVjdG9yeSBhdCAnJHtvdXRkaXJ9JyAoJHtlLm1lc3NhZ2V9KS5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCB1c2luZyBleGVjdXRpb24gPSBhd2FpdCBFeGVjdXRpb25FbnZpcm9ubWVudC5jcmVhdGUoc2VydmljZXMsIHtcbiAgICAgICAgICAgIG91dGRpcixcbiAgICAgICAgICAgIHJlc29sdmVEZWZhdWx0QXBwRW52OiBwcm9wcy5yZXNvbHZlRGVmYXVsdEVudmlyb25tZW50ID8/IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBjb21tYW5kTGluZSA9IGF3YWl0IGV4ZWN1dGlvbi5ndWVzc0V4ZWN1dGFibGUoYXBwKTtcblxuICAgICAgICAgIGNvbnN0IHN5bnRoUGFyYW1zID0gcGFyYW1ldGVyc0Zyb21TeW50aE9wdGlvbnMocHJvcHMuc3ludGhPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IGZ1bGxDb250ZXh0ID0ge1xuICAgICAgICAgICAgLi4uYXdhaXQgY29udGV4dFN0b3JlLnJlYWQoKSxcbiAgICAgICAgICAgIC4uLnN5bnRoUGFyYW1zLmNvbnRleHQsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnY29udGV4dDonLCBmdWxsQ29udGV4dCkpO1xuXG4gICAgICAgICAgY29uc3QgZW52ID0gbm9VbmRlZmluZWQoe1xuICAgICAgICAgICAgLy8gTmVlZCB0byBzdGFydCB3aXRoIGZ1bGwgZW52IG9mIGB3cml0ZUNvbnRleHRUb0VudmAgd2lsbCBub3QgYmUgYWJsZSB0byBkbyB0aGUgc2l6ZVxuICAgICAgICAgICAgLy8gY2FsY3VsYXRpb24gY29ycmVjdGx5LlxuICAgICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgICAvLyBVc2VyIGdhdmUgdXMgc29tZXRoaW5nXG4gICAgICAgICAgICAuLi5wcm9wcy5lbnYsXG4gICAgICAgICAgICAvLyBWZXJzaW9uaW5nLCBvdXRkaXIsIGRlZmF1bHQgYWNjb3VudCBhbmQgcmVnaW9uXG4gICAgICAgICAgICAuLi5hd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKSxcbiAgICAgICAgICAgIC8vIEVudmlyb25tZW50IHZhcmlhYmxlcyBkZXJpdmVkIGZyb20gc2V0dGluZ3NcbiAgICAgICAgICAgIC4uLnN5bnRoUGFyYW1zLmVudixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBjbGVhbnVwVGVtcCA9IHdyaXRlQ29udGV4dFRvRW52KGVudiwgZnVsbENvbnRleHQsICdlbnYtaXMtY29tcGxldGUnKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZXhlY0luQ2hpbGRQcm9jZXNzKGNvbW1hbmRMaW5lLCB7XG4gICAgICAgICAgICAgIGV2ZW50UHVibGlzaGVyOiBhc3luYyAodHlwZSwgbGluZSkgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRvdXQnOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kxMDAxLm1zZyhsaW5lKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRlcnInOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0UxMDAyLm1zZyhsaW5lKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZW52LFxuICAgICAgICAgICAgICBjd2Q6IHdvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgYXdhaXQgY2xlYW51cFRlbXAoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZXhlY3V0aW9uLm1hcmtTdWNjZXNzZnVsKCk7XG4gICAgICAgICAgY29uc3QgZGVsZXRlT25EaXNwb3NlID0gcHJvcHMuZGlzcG9zZU91dGRpciA/PyBleGVjdXRpb24uc2hvdWxkRGlzcG9zZU91dERpcjtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHN1Y2Nlc3MucmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseStackAssembly = exports.ExtendedStackSelection = void 0;\nconst chalk = require(\"chalk\");\nconst picomatch_1 = require(\"picomatch\");\nconst stack_collection_1 = require(\"./stack-collection\");\nconst util_1 = require(\"../../util\");\n/**\n * When selecting stacks, what other stacks to include because of dependencies\n */\nvar ExtendedStackSelection;\n(function (ExtendedStackSelection) {\n /**\n * Don't select any extra stacks\n */\n ExtendedStackSelection[ExtendedStackSelection[\"None\"] = 0] = \"None\";\n /**\n * Include stacks that this stack depends on\n */\n ExtendedStackSelection[ExtendedStackSelection[\"Upstream\"] = 1] = \"Upstream\";\n /**\n * Include stacks that depend on this stack\n */\n ExtendedStackSelection[ExtendedStackSelection[\"Downstream\"] = 2] = \"Downstream\";\n})(ExtendedStackSelection || (exports.ExtendedStackSelection = ExtendedStackSelection = {}));\n/**\n * A single Cloud Assembly and the operations we do on it to deploy the artifacts inside\n */\nclass BaseStackAssembly {\n assembly;\n /**\n * Sanitize a list of stack match patterns\n */\n static sanitizePatterns(patterns) {\n let sanitized = patterns.filter(s => s != null); // filter null/undefined\n sanitized = [...new Set(sanitized)]; // make them unique\n return sanitized;\n }\n /**\n * The directory this CloudAssembly was read from\n */\n directory;\n /**\n * The IoHelper used for messaging\n */\n ioHelper;\n constructor(assembly, ioHelper) {\n this.assembly = assembly;\n this.directory = assembly.directory;\n this.ioHelper = ioHelper;\n }\n /**\n * Select a single stack by its ID\n */\n stackById(stackId) {\n return new stack_collection_1.StackCollection(this, [this.assembly.getStackArtifact(stackId)]);\n }\n async selectMatchingStacks(stacks, patterns, extend = ExtendedStackSelection.None) {\n const matchingPattern = (pattern) => (stack) => (0, picomatch_1.isMatch)(stack.hierarchicalId, pattern);\n const matchedStacks = (0, util_1.flatten)(patterns.map(pattern => stacks.filter(matchingPattern(pattern))));\n return this.extendStacks(matchedStacks, stacks, extend);\n }\n async extendStacks(matched, all, extend = ExtendedStackSelection.None) {\n const allStacks = new Map();\n for (const stack of all) {\n allStacks.set(stack.hierarchicalId, stack);\n }\n const index = indexByHierarchicalId(matched);\n switch (extend) {\n case ExtendedStackSelection.Downstream:\n await includeDownstreamStacks(this.ioHelper, index, allStacks);\n break;\n case ExtendedStackSelection.Upstream:\n await includeUpstreamStacks(this.ioHelper, index, allStacks);\n break;\n }\n // Filter original array because it is in the right order\n const selectedList = all.filter(s => index.has(s.hierarchicalId));\n return new stack_collection_1.StackCollection(this, selectedList);\n }\n}\nexports.BaseStackAssembly = BaseStackAssembly;\nfunction indexByHierarchicalId(stacks) {\n const result = new Map();\n for (const stack of stacks) {\n result.set(stack.hierarchicalId, stack);\n }\n return result;\n}\n/**\n * Calculate the transitive closure of stack dependents.\n *\n * Modifies `selectedStacks` in-place.\n */\nasync function includeDownstreamStacks(ioHelper, selectedStacks, allStacks) {\n const added = new Array();\n let madeProgress;\n do {\n madeProgress = false;\n for (const [id, stack] of allStacks) {\n // Select this stack if it's not selected yet AND it depends on a stack that's in the selected set\n if (!selectedStacks.has(id) && (stack.dependencies || []).some(dep => selectedStacks.has(dep.id))) {\n selectedStacks.set(id, stack);\n added.push(id);\n madeProgress = true;\n }\n }\n } while (madeProgress);\n if (added.length > 0) {\n await ioHelper.defaults.info(`Including depending stacks: ${chalk.bold(added.join(', '))}`);\n }\n}\n/**\n * Calculate the transitive closure of stack dependencies.\n *\n * Modifies `selectedStacks` in-place.\n */\nasync function includeUpstreamStacks(ioHelper, selectedStacks, allStacks) {\n const added = new Array();\n let madeProgress = true;\n while (madeProgress) {\n madeProgress = false;\n for (const stack of selectedStacks.values()) {\n // Select an additional stack if it's not selected yet and a dependency of a selected stack (and exists, obviously)\n for (const dependencyId of stack.dependencies.map(x => x.manifest.displayName ?? x.id)) {\n if (!selectedStacks.has(dependencyId) && allStacks.has(dependencyId)) {\n added.push(dependencyId);\n selectedStacks.set(dependencyId, allStacks.get(dependencyId));\n madeProgress = true;\n }\n }\n }\n }\n if (added.length > 0) {\n await ioHelper.defaults.info(`Including dependency stacks: ${chalk.bold(added.join(', '))}`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQkFBK0I7QUFDL0IseUNBQWlEO0FBQ2pELHlEQUFxRDtBQUNyRCxxQ0FBcUM7QUFlckM7O0dBRUc7QUFDSCxJQUFZLHNCQWVYO0FBZkQsV0FBWSxzQkFBc0I7SUFDaEM7O09BRUc7SUFDSCxtRUFBSSxDQUFBO0lBRUo7O09BRUc7SUFDSCwyRUFBUSxDQUFBO0lBRVI7O09BRUc7SUFDSCwrRUFBVSxDQUFBO0FBQ1osQ0FBQyxFQWZXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBZWpDO0FBRUQ7O0dBRUc7QUFDSCxNQUFzQixpQkFBaUI7SUFvQlQ7SUFuQjVCOztPQUVHO0lBQ08sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWtCO1FBQ2xELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7UUFDekUsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1FBQ3hELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUVsQzs7T0FFRztJQUNnQixRQUFRLENBQVc7SUFFdEMsWUFBNEIsUUFBNkIsRUFBRSxRQUFrQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLE9BQWU7UUFDOUIsT0FBTyxJQUFJLGtDQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxD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QyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3pCLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFFLENBQUMsQ0FBQztvQkFDL0QsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBpc01hdGNoIGFzIHBpY29tYXRjaCB9IGZyb20gJ3BpY29tYXRjaCc7XG5pbXBvcnQgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuL3N0YWNrLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgZmxhdHRlbiB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUvaW8taGVscGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3RhY2tBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHRoaXMgQ2xvdWRBc3NlbWJseSB3YXMgcmVhZCBmcm9tXG4gICAqL1xuICBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogU2VsZWN0IGEgc2luZ2xlIHN0YWNrIGJ5IGl0cyBJRFxuICAgKi9cbiAgc3RhY2tCeUlkKHN0YWNrSWQ6IHN0cmluZyk6IFN0YWNrQ29sbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBXaGVuIHNlbGVjdGluZyBzdGFja3MsIHdoYXQgb3RoZXIgc3RhY2tzIHRvIGluY2x1ZGUgYmVjYXVzZSBvZiBkZXBlbmRlbmNpZXNcbiAqL1xuZXhwb3J0IGVudW0gRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBEb24ndCBzZWxlY3QgYW55IGV4dHJhIHN0YWNrc1xuICAgKi9cbiAgTm9uZSxcblxuICAvKipcbiAgICogSW5jbHVkZSBzdGFja3MgdGhhdCB0aGlzIHN0YWNrIGRlcGVuZHMgb25cbiAgICovXG4gIFVwc3RyZWFtLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGlzIHN0YWNrXG4gICAqL1xuICBEb3duc3RyZWFtLFxufVxuXG4vKipcbiAqIEEgc2luZ2xlIENsb3VkIEFzc2VtYmx5IGFuZCB0aGUgb3BlcmF0aW9ucyB3ZSBkbyBvbiBpdCB0byBkZXBsb3kgdGhlIGFydGlmYWN0cyBpbnNpZGVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTdGFja0Fzc2VtYmx5IGltcGxlbWVudHMgSVN0YWNrQXNzZW1ibHkge1xuICAvKipcbiAgICogU2FuaXRpemUgYSBsaXN0IG9mIHN0YWNrIG1hdGNoIHBhdHRlcm5zXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIHNhbml0aXplUGF0dGVybnMocGF0dGVybnM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGxldCBzYW5pdGl6ZWQgPSBwYXR0ZXJucy5maWx0ZXIocyA9PiBzICE9IG51bGwpOyAvLyBmaWx0ZXIgbnVsbC91bmRlZmluZWRcbiAgICBzYW5pdGl6ZWQgPSBbLi4ubmV3IFNldChzYW5pdGl6ZWQpXTsgLy8gbWFrZSB0aGVtIHVuaXF1ZVxuICAgIHJldHVybiBzYW5pdGl6ZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0aGlzIENsb3VkQXNzZW1ibHkgd2FzIHJlYWQgZnJvbVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSW9IZWxwZXIgdXNlZCBmb3IgbWVzc2FnaW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogY3hhcGkuQ2xvdWRBc3NlbWJseSwgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgdGhpcy5kaXJlY3RvcnkgPSBhc3NlbWJseS5kaXJlY3Rvcnk7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpbmdsZSBzdGFjayBieSBpdHMgSURcbiAgICovXG4gIHB1YmxpYyBzdGFja0J5SWQoc3RhY2tJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgW3RoaXMuYXNzZW1ibHkuZ2V0U3RhY2tBcnRpZmFjdChzdGFja0lkKV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNlbGVjdE1hdGNoaW5nU3RhY2tzKFxuICAgIHN0YWNrczogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10sXG4gICAgcGF0dGVybnM6IHN0cmluZ1tdLFxuICAgIGV4dGVuZDogRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiA9IEV4dGVuZGVkU3RhY2tTZWxlY3Rpb24uTm9uZSxcbiAgKTogUHJvbWlzZTxTdGFja0NvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBtYXRjaGluZ1BhdHRlcm4gPSAocGF0dGVybjogc3RyaW5nKSA9PiAoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkgPT4gcGljb21hdGNoKHN0YWNrLmhpZXJhcmNoaWNhbElkLCBwYXR0ZXJuKTtcbiAgICBjb25zdCBtYXRjaGVkU3RhY2tzID0gZmxhdHRlbihwYXR0ZXJucy5tYXAocGF0dGVybiA9PiBzdGFja3MuZmlsdGVyKG1hdGNoaW5nUGF0dGVybihwYXR0ZXJuKSkpKTtcblxuICAgIHJldHVybiB0aGlzLmV4dGVuZFN0YWNrcyhtYXRjaGVkU3RhY2tzLCBzdGFja3MsIGV4dGVuZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZXh0ZW5kU3RhY2tzKFxuICAgIG1hdGNoZWQ6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLFxuICAgIGFsbDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10sXG4gICAgZXh0ZW5kOiBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uID0gRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Ob25lLFxuICApIHtcbiAgICBjb25zdCBhbGxTdGFja3MgPSBuZXcgTWFwPHN0cmluZywgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0PigpO1xuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgYWxsKSB7XG4gICAgICBhbGxTdGFja3Muc2V0KHN0YWNrLmhpZXJhcmNoaWNhbElkLCBzdGFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXggPSBpbmRleEJ5SGllcmFyY2hpY2FsSWQobWF0Y2hlZCk7XG5cbiAgICBzd2l0Y2ggKGV4dGVuZCkge1xuICAgICAgY2FzZSBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLkRvd25zdHJlYW06XG4gICAgICAgIGF3YWl0IGluY2x1ZGVEb3duc3RyZWFtU3RhY2tzKHRoaXMuaW9IZWxwZXIsIGluZGV4LCBhbGxTdGFja3MpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5VcHN0cmVhbTpcbiAgICAgICAgYXdhaXQgaW5jbHVkZVVwc3RyZWFtU3RhY2tzKHRoaXMuaW9IZWxwZXIsIGluZGV4LCBhbGxTdGFja3MpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgb3JpZ2luYWwgYXJyYXkgYmVjYXVzZSBpdCBpcyBpbiB0aGUgcmlnaHQgb3JkZXJcbiAgICBjb25zdCBzZWxlY3RlZExpc3QgPSBhbGwuZmlsdGVyKHMgPT4gaW5kZXguaGFzKHMuaGllcmFyY2hpY2FsSWQpKTtcblxuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMsIHNlbGVjdGVkTGlzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5kZXhCeUhpZXJhcmNoaWNhbElkKHN0YWNrczogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10pOiBNYXA8c3RyaW5nLCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4oKTtcblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIHJlc3VsdC5zZXQoc3RhY2suaGllcmFyY2hpY2FsSWQsIHN0YWNrKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSB0cmFuc2l0aXZlIGNsb3N1cmUgb2Ygc3RhY2sgZGVwZW5kZW50cy5cbiAqXG4gKiBNb2RpZmllcyBgc2VsZWN0ZWRTdGFja3NgIGluLXBsYWNlLlxuICovXG5hc3luYyBmdW5jdGlvbiBpbmNsdWRlRG93bnN0cmVhbVN0YWNrcyhcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzZWxlY3RlZFN0YWNrczogTWFwPHN0cmluZywgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0PixcbiAgYWxsU3RhY2tzOiBNYXA8c3RyaW5nLCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+LFxuKSB7XG4gIGNvbnN0IGFkZGVkID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBsZXQgbWFkZVByb2dyZXNzO1xuICBkbyB7XG4gICAgbWFkZVByb2dyZXNzID0gZmFsc2U7XG5cbiAgICBmb3IgKGNvbnN0IFtpZCwgc3RhY2tdIG9mIGFsbFN0YWNrcykge1xuICAgICAgLy8gU2VsZWN0IHRoaXMgc3RhY2sgaWYgaXQncyBub3Qgc2VsZWN0ZWQgeWV0IEFORCBpdCBkZXBlbmRzIG9uIGEgc3RhY2sgdGhhdCdzIGluIHRoZSBzZWxlY3RlZCBzZXRcbiAgICAgIGlmICghc2VsZWN0ZWRTdGFja3MuaGFzKGlkKSAmJiAoc3RhY2suZGVwZW5kZW5jaWVzIHx8IFtdKS5zb21lKGRlcCA9PiBzZWxlY3RlZFN0YWNrcy5oYXMoZGVwLmlkKSkpIHtcbiAgICAgICAgc2VsZWN0ZWRTdGFja3Muc2V0KGlkLCBzdGFjayk7XG4gICAgICAgIGFkZGVkLnB1c2goaWQpO1xuICAgICAgICBtYWRlUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAobWFkZVByb2dyZXNzKTtcblxuICBpZiAoYWRkZWQubGVuZ3RoID4gMCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oYEluY2x1ZGluZyBkZXBlbmRpbmcgc3RhY2tzOiAke2NoYWxrLmJvbGQoYWRkZWQuam9pbignLCAnKSl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGhlIHRyYW5zaXRpdmUgY2xvc3VyZSBvZiBzdGFjayBkZXBlbmRlbmNpZXMuXG4gKlxuICogTW9kaWZpZXMgYHNlbGVjdGVkU3RhY2tzYCBpbi1wbGFjZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5jbHVkZVVwc3RyZWFtU3RhY2tzKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHNlbGVjdGVkU3RhY2tzOiBNYXA8c3RyaW5nLCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+LFxuICBhbGxTdGFja3M6IE1hcDxzdHJpbmcsIGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4sXG4pIHtcbiAgY29uc3QgYWRkZWQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBsZXQgbWFkZVByb2dyZXNzID0gdHJ1ZTtcbiAgd2hpbGUgKG1hZGVQcm9ncmVzcykge1xuICAgIG1hZGVQcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBzdGFjayBvZiBzZWxlY3RlZFN0YWNrcy52YWx1ZXMoKSkge1xuICAgICAgLy8gU2VsZWN0IGFuIGFkZGl0aW9uYWwgc3RhY2sgaWYgaXQncyBub3Qgc2VsZWN0ZWQgeWV0IGFuZCBhIGRlcGVuZGVuY3kgb2YgYSBzZWxlY3RlZCBzdGFjayAoYW5kIGV4aXN0cywgb2J2aW91c2x5KVxuICAgICAgZm9yIChjb25zdCBkZXBlbmRlbmN5SWQgb2Ygc3RhY2suZGVwZW5kZW5jaWVzLm1hcCh4ID0+IHgubWFuaWZlc3QuZGlzcGxheU5hbWUgPz8geC5pZCkpIHtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFN0YWNrcy5oYXMoZGVwZW5kZW5jeUlkKSAmJiBhbGxTdGFja3MuaGFzKGRlcGVuZGVuY3lJZCkpIHtcbiAgICAgICAgICBhZGRlZC5wdXNoKGRlcGVuZGVuY3lJZCk7XG4gICAgICAgICAgc2VsZWN0ZWRTdGFja3Muc2V0KGRlcGVuZGVuY3lJZCwgYWxsU3RhY2tzLmdldChkZXBlbmRlbmN5SWQpISk7XG4gICAgICAgICAgbWFkZVByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChhZGRlZC5sZW5ndGggPiAwKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgSW5jbHVkaW5nIGRlcGVuZGVuY3kgc3RhY2tzOiAke2NoYWxrLmJvbGQoYWRkZWQuam9pbignLCAnKSl9YCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackCollection = void 0;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\n/**\n * A collection of stacks and related artifacts\n *\n * In practice, not all artifacts in the CloudAssembly are created equal;\n * stacks can be selected independently, but other artifacts such as asset\n * bundles cannot.\n */\nclass StackCollection {\n assembly;\n stackArtifacts;\n constructor(assembly, stackArtifacts) {\n this.assembly = assembly;\n this.stackArtifacts = stackArtifacts;\n }\n get stackCount() {\n return this.stackArtifacts.length;\n }\n get firstStack() {\n if (this.stackCount < 1) {\n throw new toolkit_error_1.ToolkitError('EmptyStackCollection', 'StackCollection contains no stack artifacts (trying to access the first one)');\n }\n return this.stackArtifacts[0];\n }\n get stackIds() {\n return this.stackArtifacts.map(s => s.id);\n }\n get hierarchicalIds() {\n return this.stackArtifacts.map(s => s.hierarchicalId);\n }\n withDependencies() {\n const allData = [];\n for (const stack of this.stackArtifacts) {\n const data = {\n id: stack.displayName ?? stack.id,\n name: stack.stackName,\n environment: stack.environment,\n // Might be huge so load it lazily\n get metadata() {\n return stack.metadata;\n },\n dependencies: [],\n };\n for (const dependencyId of stack.dependencies.map(x => x.id)) {\n if (dependencyId.includes('.assets')) {\n continue;\n }\n const depStack = this.assembly.stackById(dependencyId);\n if (depStack.firstStack.dependencies.filter((dep) => !(dep.id).includes('.assets')).length > 0) {\n for (const stackDetail of depStack.withDependencies()) {\n data.dependencies.push({\n id: stackDetail.id,\n dependencies: stackDetail.dependencies,\n });\n }\n }\n else {\n data.dependencies.push({\n id: depStack.firstStack.displayName ?? depStack.firstStack.id,\n dependencies: [],\n });\n }\n }\n allData.push(data);\n }\n return allData;\n }\n reversed() {\n const arts = [...this.stackArtifacts];\n arts.reverse();\n return new StackCollection(this.assembly, arts);\n }\n filter(predicate) {\n return new StackCollection(this.assembly, this.stackArtifacts.filter(predicate));\n }\n concat(...others) {\n return new StackCollection(this.assembly, this.stackArtifacts.concat(...others.map(o => o.stackArtifacts)));\n }\n /**\n * Extracts 'aws:cdk:warning|info|error' metadata entries from the stack synthesis\n */\n async validateMetadata(failAt = 'error', logger = async () => {\n }) {\n let warnings = false;\n let errors = false;\n for (const stack of this.stackArtifacts) {\n for (const message of stack.messages) {\n switch (message.level) {\n case cloud_assembly_api_1.SynthesisMessageLevel.WARNING:\n warnings = true;\n await logger('warn', message);\n break;\n case cloud_assembly_api_1.SynthesisMessageLevel.ERROR:\n errors = true;\n await logger('error', message);\n break;\n case cloud_assembly_api_1.SynthesisMessageLevel.INFO:\n await logger('info', message);\n break;\n }\n }\n }\n if (errors && failAt != 'none') {\n const error = toolkit_error_1.AssemblyError.withStacks('Found errors', this.stackArtifacts);\n error.attachSynthesisErrorCode('AnnotationErrors');\n throw error;\n }\n if (warnings && failAt === 'warn') {\n const error = toolkit_error_1.AssemblyError.withStacks('Found warnings (--strict mode)', this.stackArtifacts);\n error.attachSynthesisErrorCode('StrictAnnotationWarnings');\n throw error;\n }\n }\n}\nexports.StackCollection = StackCollection;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0VBQW9FO0FBR3BFLCtEQUEwRTtBQUUxRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWU7SUFDRTtJQUEwQztJQUF0RSxZQUE0QixRQUF3QixFQUFrQixjQUFtRDtRQUE3RixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFrQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUM7SUFDekgsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHNCQUFzQixFQUFFLDhFQUE4RSxDQUFDLENBQUM7UUFDakksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBaUI7Z0JBQ3pCLEVBQUUsRUFBRSxLQUFLLENBQUMs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RSxDQUFDO2dCQUNyQyxRQUFRLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDdEIsS0FBSywwQ0FBcUIsQ0FBQyxPQUFPO3dCQUNoQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3dCQUNoQixNQUFNLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQzlCLE1BQU07b0JBQ1IsS0FBSywwQ0FBcUIsQ0FBQyxLQUFLO3dCQUM5QixNQUFNLEdBQUcsSUFBSSxDQUFDO3dCQUNkLE1BQU0sTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDL0IsTUFBTTtvQkFDUixLQUFLLDBDQUFxQixDQUFDLElBQUk7d0JBQzdCLE1BQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDOUIsTUFBTTtnQkFDVixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE1BQU0sSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7WUFDL0IsTUFBTSxLQUFLLEdBQUcsNkJBQWEsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1RSxLQUFLLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNuRCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLFFBQVEsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDbEMsTUFBTSxLQUFLLEdBQUcsNkJBQWEsQ0FBQyxVQUFVLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlGLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQzNELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFIRCwwQ0EwSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBTeW50aGVzaXNNZXNzYWdlTGV2ZWwgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBJU3RhY2tBc3NlbWJseSB9IGZyb20gJy4vc3RhY2stYXNzZW1ibHknO1xuaW1wb3J0IHsgdHlwZSBTdGFja0RldGFpbHMgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9zdGFjay1kZXRhaWxzJztcbmltcG9ydCB7IEFzc2VtYmx5RXJyb3IsIFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIHN0YWNrcyBhbmQgcmVsYXRlZCBhcnRpZmFjdHNcbiAqXG4gKiBJbiBwcmFjdGljZSwgbm90IGFsbCBhcnRpZmFjdHMgaW4gdGhlIENsb3VkQXNzZW1ibHkgYXJlIGNyZWF0ZWQgZXF1YWw7XG4gKiBzdGFja3MgY2FuIGJlIHNlbGVjdGVkIGluZGVwZW5kZW50bHksIGJ1dCBvdGhlciBhcnRpZmFjdHMgc3VjaCBhcyBhc3NldFxuICogYnVuZGxlcyBjYW5ub3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0NvbGxlY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IElTdGFja0Fzc2VtYmx5LCBwdWJsaWMgcmVhZG9ubHkgc3RhY2tBcnRpZmFjdHM6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBmaXJzdFN0YWNrKCkge1xuICAgIGlmICh0aGlzLnN0YWNrQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdFbXB0eVN0YWNrQ29sbGVjdGlvbicsICdTdGFja0NvbGxlY3Rpb24gY29udGFpbnMgbm8gc3RhY2sgYXJ0aWZhY3RzICh0cnlpbmcgdG8gYWNjZXNzIHRoZSBmaXJzdCBvbmUpJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YWNrQXJ0aWZhY3RzWzBdO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFja0lkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubWFwKHMgPT4gcy5pZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhpZXJhcmNoaWNhbElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubWFwKHMgPT4gcy5oaWVyYXJjaGljYWxJZCk7XG4gIH1cblxuICBwdWJsaWMgd2l0aERlcGVuZGVuY2llcygpOiBTdGFja0RldGFpbHNbXSB7XG4gICAgY29uc3QgYWxsRGF0YTogU3RhY2tEZXRhaWxzW10gPSBbXTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgdGhpcy5zdGFja0FydGlmYWN0cykge1xuICAgICAgY29uc3QgZGF0YTogU3RhY2tEZXRhaWxzID0ge1xuICAgICAgICBpZDogc3RhY2suZGlzcGxheU5hbWUgPz8gc3RhY2suaWQsXG4gICAgICAgIG5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWNrLmVudmlyb25tZW50LFxuXG4gICAgICAgIC8vIE1pZ2h0IGJlIGh1Z2Ugc28gbG9hZCBpdCBsYXppbHlcbiAgICAgICAgZ2V0IG1ldGFkYXRhKCkge1xuICAgICAgICAgIHJldHVybiBzdGFjay5tZXRhZGF0YTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBbXSxcbiAgICAgIH07XG5cbiAgICAgIGZvciAoY29uc3QgZGVwZW5kZW5jeUlkIG9mIHN0YWNrLmRlcGVuZGVuY2llcy5tYXAoeCA9PiB4LmlkKSkge1xuICAgICAgICBpZiAoZGVwZW5kZW5jeUlkLmluY2x1ZGVzKCcuYXNzZXRzJykpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlcFN0YWNrID0gdGhpcy5hc3NlbWJseS5zdGFja0J5SWQoZGVwZW5kZW5jeUlkKTtcblxuICAgICAgICBpZiAoZGVwU3RhY2suZmlyc3RTdGFjay5kZXBlbmRlbmNpZXMuZmlsdGVyKChkZXApID0+ICEoZGVwLmlkKS5pbmNsdWRlcygnLmFzc2V0cycpKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBzdGFja0RldGFpbCBvZiBkZXBTdGFjay53aXRoRGVwZW5kZW5jaWVzKCkpIHtcbiAgICAgICAgICAgIGRhdGEuZGVwZW5kZW5jaWVzLnB1c2goe1xuICAgICAgICAgICAgICBpZDogc3RhY2tEZXRhaWwuaWQsXG4gICAgICAgICAgICAgIGRlcGVuZGVuY2llczogc3RhY2tEZXRhaWwuZGVwZW5kZW5jaWVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGEuZGVwZW5kZW5jaWVzLnB1c2goe1xuICAgICAgICAgICAgaWQ6IGRlcFN0YWNrLmZpcnN0U3RhY2suZGlzcGxheU5hbWUgPz8gZGVwU3RhY2suZmlyc3RTdGFjay5pZCxcbiAgICAgICAgICAgIGRlcGVuZGVuY2llczogW10sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWxsRGF0YS5wdXNoKGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxEYXRhO1xuICB9XG5cbiAgcHVibGljIHJldmVyc2VkKCkge1xuICAgIGNvbnN0IGFydHMgPSBbLi4udGhpcy5zdGFja0FydGlmYWN0c107XG4gICAgYXJ0cy5yZXZlcnNlKCk7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcy5hc3NlbWJseSwgYXJ0cyk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKGFydDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSA9PiBib29sZWFuKTogU3RhY2tDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLmFzc2VtYmx5LCB0aGlzLnN0YWNrQXJ0aWZhY3RzLmZpbHRlcihwcmVkaWNhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25jYXQoLi4ub3RoZXJzOiBTdGFja0NvbGxlY3Rpb25bXSk6IFN0YWNrQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcy5hc3NlbWJseSwgdGhpcy5zdGFja0FydGlmYWN0cy5jb25jYXQoLi4ub3RoZXJzLm1hcChvID0+IG8uc3RhY2tBcnRpZmFjdHMpKSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgJ2F3czpjZGs6d2FybmluZ3xpbmZvfGVycm9yJyBtZXRhZGF0YSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrIHN5bnRoZXNpc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlTWV0YWRhdGEoXG4gICAgZmFpbEF0OiAnd2FybicgfCAnZXJyb3InIHwgJ25vbmUnID0gJ2Vycm9yJyxcbiAgICBsb2dnZXI6IChsZXZlbDogJ2luZm8nIHwgJ2Vycm9yJyB8ICd3YXJuJywgbXNnOiBjeGFwaS5TeW50aGVzaXNNZXNzYWdlKSA9PiBQcm9taXNlPHZvaWQ+ID0gYXN5bmMgKCkgPT4ge1xuICAgIH0sXG4gICkge1xuICAgIGxldCB3YXJuaW5ncyA9IGZhbHNlO1xuICAgIGxldCBlcnJvcnMgPSBmYWxzZTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgdGhpcy5zdGFja0FydGlmYWN0cykge1xuICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIHN0YWNrLm1lc3NhZ2VzKSB7XG4gICAgICAgIHN3aXRjaCAobWVzc2FnZS5sZXZlbCkge1xuICAgICAgICAgIGNhc2UgU3ludGhlc2lzTWVzc2FnZUxldmVsLldBUk5JTkc6XG4gICAgICAgICAgICB3YXJuaW5ncyA9IHRydWU7XG4gICAgICAgICAgICBhd2FpdCBsb2dnZXIoJ3dhcm4nLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU3ludGhlc2lzTWVzc2FnZUxldmVsLkVSUk9SOlxuICAgICAgICAgICAgZXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgIGF3YWl0IGxvZ2dlcignZXJyb3InLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk86XG4gICAgICAgICAgICBhd2FpdCBsb2dnZXIoJ2luZm8nLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycyAmJiBmYWlsQXQgIT0gJ25vbmUnKSB7XG4gICAgICBjb25zdCBlcnJvciA9IEFzc2VtYmx5RXJyb3Iud2l0aFN0YWNrcygnRm91bmQgZXJyb3JzJywgdGhpcy5zdGFja0FydGlmYWN0cyk7XG4gICAgICBlcnJvci5hdHRhY2hTeW50aGVzaXNFcnJvckNvZGUoJ0Fubm90YXRpb25FcnJvcnMnKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmICh3YXJuaW5ncyAmJiBmYWlsQXQgPT09ICd3YXJuJykge1xuICAgICAgY29uc3QgZXJyb3IgPSBBc3NlbWJseUVycm9yLndpdGhTdGFja3MoJ0ZvdW5kIHdhcm5pbmdzICgtLXN0cmljdCBtb2RlKScsIHRoaXMuc3RhY2tBcnRpZmFjdHMpO1xuICAgICAgZXJyb3IuYXR0YWNoU3ludGhlc2lzRXJyb3JDb2RlKCdTdHJpY3RBbm5vdGF0aW9uV2FybmluZ3MnKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpandStackSelection = exports.StackSelectionStrategy = void 0;\n/**\n * Which stacks should be selected from a cloud assembly\n */\nvar StackSelectionStrategy;\n(function (StackSelectionStrategy) {\n /**\n * Returns all stacks in the app regardless of patterns,\n * including stacks inside nested assemblies.\n */\n StackSelectionStrategy[\"ALL_STACKS\"] = \"all-stacks\";\n /**\n * Returns all stacks in the main (top level) assembly only.\n */\n StackSelectionStrategy[\"MAIN_ASSEMBLY\"] = \"main-assembly\";\n /**\n * If the assembly includes a single stack, returns it.\n * Otherwise throws an exception.\n */\n StackSelectionStrategy[\"ONLY_SINGLE\"] = \"only-single\";\n /**\n * Return stacks matched by patterns.\n * If no stacks are found, execution is halted successfully.\n * Most likely you don't want to use this but `StackSelectionStrategy.MUST_MATCH_PATTERN`\n */\n StackSelectionStrategy[\"PATTERN_MATCH\"] = \"pattern-match\";\n /**\n * Return stacks matched by patterns.\n * Throws an exception if the patterns don't match at least one stack in the assembly.\n */\n StackSelectionStrategy[\"PATTERN_MUST_MATCH\"] = \"pattern-must-match\";\n /**\n * Returns if exactly one stack is matched by the pattern(s).\n * Throws an exception if no stack, or more than exactly one stack are matched.\n */\n StackSelectionStrategy[\"PATTERN_MUST_MATCH_SINGLE\"] = \"pattern-must-match-single\";\n})(StackSelectionStrategy || (exports.StackSelectionStrategy = StackSelectionStrategy = {}));\n/**\n * When selecting stacks, what other stacks to include because of dependencies\n */\nvar ExpandStackSelection;\n(function (ExpandStackSelection) {\n /**\n * Don't select any extra stacks\n */\n ExpandStackSelection[\"NONE\"] = \"none\";\n /**\n * Include stacks that this stack depends on\n */\n ExpandStackSelection[\"UPSTREAM\"] = \"upstream\";\n /**\n * Include stacks that depend on this stack\n */\n ExpandStackSelection[\"DOWNSTREAM\"] = \"downstream\";\n /**\n * @TODO\n * Include both directions.\n * I.e. stacks that this stack depends on, and stacks that depend on this stack.\n */\n // FULL = 'full',\n})(ExpandStackSelection || (exports.ExpandStackSelection = ExpandStackSelection = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksc0JBb0NYO0FBcENELFdBQVksc0JBQXNCO0lBQ2hDOzs7T0FHRztJQUNILG1EQUF5QixDQUFBO0lBRXpCOztPQUVHO0lBQ0gseURBQStCLENBQUE7SUFFL0I7OztPQUdHO0lBQ0gscURBQTJCLENBQUE7SUFFM0I7Ozs7T0FJRztJQUNILHlEQUErQixDQUFBO0lBRS9COzs7T0FHRztJQUNILG1FQUF5QyxDQUFBO0lBRXpDOzs7T0FHRztJQUNILGlGQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFwQ1csc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFvQ2pDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLG9CQXNCWDtBQXRCRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILHFDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDZDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsaURBQXlCLENBQUE7SUFFekI7Ozs7T0FJRztJQUNILGlCQUFpQjtBQUNuQixDQUFDLEVBdEJXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBc0IvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2hpY2ggc3RhY2tzIHNob3VsZCBiZSBzZWxlY3RlZCBmcm9tIGEgY2xvdWQgYXNzZW1ibHlcbiAqL1xuZXhwb3J0IGVudW0gU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBzdGFja3MgaW4gdGhlIGFwcCByZWdhcmRsZXNzIG9mIHBhdHRlcm5zLFxuICAgKiBpbmNsdWRpbmcgc3RhY2tzIGluc2lkZSBuZXN0ZWQgYXNzZW1ibGllcy5cbiAgICovXG4gIEFMTF9TVEFDS1MgPSAnYWxsLXN0YWNrcycsXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN0YWNrcyBpbiB0aGUgbWFpbiAodG9wIGxldmVsKSBhc3NlbWJseSBvbmx5LlxuICAgKi9cbiAgTUFJTl9BU1NFTUJMWSA9ICdtYWluLWFzc2VtYmx5JyxcblxuICAvKipcbiAgICogSWYgdGhlIGFzc2VtYmx5IGluY2x1ZGVzIGEgc2luZ2xlIHN0YWNrLCByZXR1cm5zIGl0LlxuICAgKiBPdGhlcndpc2UgdGhyb3dzIGFuIGV4Y2VwdGlvbi5cbiAgICovXG4gIE9OTFlfU0lOR0xFID0gJ29ubHktc2luZ2xlJyxcblxuICAvKipcbiAgICogUmV0dXJuIHN0YWNrcyBtYXRjaGVkIGJ5IHBhdHRlcm5zLlxuICAgKiBJZiBubyBzdGFja3MgYXJlIGZvdW5kLCBleGVjdXRpb24gaXMgaGFsdGVkIHN1Y2Nlc3NmdWxseS5cbiAgICogTW9zdCBsaWtlbHkgeW91IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgYnV0IGBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1VU1RfTUFUQ0hfUEFUVEVSTmBcbiAgICovXG4gIFBBVFRFUk5fTUFUQ0ggPSAncGF0dGVybi1tYXRjaCcsXG5cbiAgLyoqXG4gICAqIFJldHVybiBzdGFja3MgbWF0Y2hlZCBieSBwYXR0ZXJucy5cbiAgICogVGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybnMgZG9uJ3QgbWF0Y2ggYXQgbGVhc3Qgb25lIHN0YWNrIGluIHRoZSBhc3NlbWJseS5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSCA9ICdwYXR0ZXJuLW11c3QtbWF0Y2gnLFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIGV4YWN0bHkgb25lIHN0YWNrIGlzIG1hdGNoZWQgYnkgdGhlIHBhdHRlcm4ocykuXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgbm8gc3RhY2ssIG9yIG1vcmUgdGhhbiBleGFjdGx5IG9uZSBzdGFjayBhcmUgbWF0Y2hlZC5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEUgPSAncGF0dGVybi1tdXN0LW1hdGNoLXNpbmdsZScsXG59XG5cbi8qKlxuICogV2hlbiBzZWxlY3Rpbmcgc3RhY2tzLCB3aGF0IG90aGVyIHN0YWNrcyB0byBpbmNsdWRlIGJlY2F1c2Ugb2YgZGVwZW5kZW5jaWVzXG4gKi9cbmV4cG9ydCBlbnVtIEV4cGFuZFN0YWNrU2VsZWN0aW9uIHtcbiAgLyoqXG4gICAqIERvbid0IHNlbGVjdCBhbnkgZXh0cmEgc3RhY2tzXG4gICAqL1xuICBOT05FID0gJ25vbmUnLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IHRoaXMgc3RhY2sgZGVwZW5kcyBvblxuICAgKi9cbiAgVVBTVFJFQU0gPSAndXBzdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGlzIHN0YWNrXG4gICAqL1xuICBET1dOU1RSRUFNID0gJ2Rvd25zdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBAVE9ET1xuICAgKiBJbmNsdWRlIGJvdGggZGlyZWN0aW9ucy5cbiAgICogSS5lLiBzdGFja3MgdGhhdCB0aGlzIHN0YWNrIGRlcGVuZHMgb24sIGFuZCBzdGFja3MgdGhhdCBkZXBlbmQgb24gdGhpcyBzdGFjay5cbiAgICovXG4gIC8vIEZVTEwgPSAnZnVsbCcsXG59XG5cbi8qKlxuICogQSBzcGVjaWZpY2F0aW9uIG9mIHdoaWNoIHN0YWNrcyBzaG91bGQgYmUgc2VsZWN0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlbGVjdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBiZWhhdmlvciBpZiBpZiBubyBzZWxlY3RvcnMgYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgc3RyYXRlZ3k6IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXR0ZXJucyB0byBtYXRjaCB0aGUgc3RhY2sgaGllcmFyY2hpY2FsIGlkc1xuICAgKiBPbmx5IHVzZWQgd2l0aCBgUEFUVEVSTl8qYCBzZWxlY3Rpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIHBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4cGFuZCB0aGUgc2VsZWN0aW9uIHRvIHVwc3RyZWFtL2Rvd25zdHJlYW0gc3RhY2tzLlxuICAgKiBAZGVmYXVsdCBFeHBhbmRTdGFja1NlbGVjdGlvbi5Ob25lIG9ubHkgc2VsZWN0IHRoZSBzcGVjaWZpZWQvbWF0Y2hlZCBzdGFja3NcbiAgICovXG4gIGV4cGFuZD86IEV4cGFuZFN0YWNrU2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIGFzc2VtYmx5IGNvbnRhaW5zIG5vIHN0YWNrcy5cbiAgICogU2V0IHRvIGBmYWxzZWAsIHRvIGhhbHQgZXhlY3V0aW9uIGZvciBlbXB0eSBhc3NlbWJsaWVzIHdpdGhvdXQgZXJyb3IuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBhY3Rpb25zIGNhbiBzdGlsbCB0aHJvdyBpZiBhIHN0YWNrIHNlbGVjdGlvbiByZXN1bHQgaXMgZW1wdHksXG4gICAqIGJ1dCB0aGUgYXNzZW1ibHkgY29udGFpbnMgc3RhY2tzIGluIHByaW5jaXBsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZmFpbE9uRW1wdHk/OiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEFzc2VtYmx5U291cmNlIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBDbG91ZEFzc2VtYmx5IGZyb20gdGhlIGN1cnJlbnQgc291cmNlXG4gICAqL1xuICBwcm9kdWNlKCk6IFByb21pc2U8SVJlYWRhYmxlQ2xvdWRBc3NlbWJseT47XG59XG5cbi8qKlxuICogQSB2ZXJzaW9uIG9mIHRoZSBDbG91ZEFzc2VtYmx5IHRoYXQgaXMgc2FmZSB0byByZWFkIGZyb21cbiAqXG4gKiBJbiBwcmFjdGljZSwgdGhpcyBtZWFucyBpdCBob2xkcyBhIGxvY2sgd2hpY2ggcHJldmVudHMgb3RoZXJcbiAqIHByb2R1Y2VycyBmcm9tIG92ZXJ3cml0aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgYmFja2luZyBjbG91ZFxuICogYXNzZW1ibHkgZGlyZWN0b3J5LlxuICpcbiAqIFRoZSByZWNlaXZlciBvZiBhbiBgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseWAgbXVzdCBhbHdheXMgZGlzcG9zZSBvZiB0aGVcbiAqIG9iamVjdCFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIENsb3VkIEFzc2VtYmx5XG4gICAqL1xuICByZWFkb25seSBjbG91ZEFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5O1xuXG4gIC8qKlxuICAgKiBSZWxlYXNlIHRoZSBsb2NrIG9uIHRoZSBDbG91ZCBBc3NlbWJseSBkaXJlY3Rvcnkgb25seS5cbiAgICpcbiAgICogQ29uc3VtZXIgY29kZSBzaG91bGQgbmV2ZXIgY2FsbCB0aGlzLiBUaGlzIG1ldGhvZCBvbmx5IGV4aXN0cyBmb3IgdGhlXG4gICAqIGJlbmVmaXQgb2YgYENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2VgLCBzbyB0aGF0IGl0IGNhbiB1bmxvY2sgYVxuICAgKiBwcm9kdWNlZCBidXQgaW5jb21wbGV0ZSBDbG91ZCBBc3NlbWJseSBkaXJlY3Rvcnkgd2l0aCB0aGUgZ29hbCBvZlxuICAgKiBzeW50aGVzaXppbmcgaW50byBpdCBhZ2Fpbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfdW5sb2NrKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIERpc3Bvc2Ugb2YgdGhlIENsb3VkIEFzc2VtYmx5XG4gICAqXG4gICAqIFRoaXMgZG9lcyAyIHRoaW5nczpcbiAgICpcbiAgICogLSBSZWxlYXNlIHRoZSBsb2NrIG9uIHRoZSBDbG91ZCBBc3NlbWJseSBkaXJlY3RvcnlcbiAgICogLSBEZWxldGUgdGhlIGJhY2tpbmcgZGlyZWN0b3J5LCBpZiBpdCBpcyBhIHRlbXBvcmFyeSBkaXJlY3RvcnkuXG4gICAqL1xuICBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEFzeW5jIGRpc3Bvc2UgY2xlYW51cCBmdW5jdGlvblxuICAgKlxuICAgKiBBbiBhbGlhcyBmb3IgYGRpc3Bvc2VgIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBgYXdhaXQgdXNpbmdgLlxuICAgKi9cbiAgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2U8dm9pZD47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS = exports.EvaluateCloudFormationTemplate = exports.CfnEvaluationException = exports.LazyLookupExport = exports.LookupExportError = exports.LazyListStackResources = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst resource_metadata_1 = require(\"../resource-metadata\");\nclass LazyListStackResources {\n sdk;\n stackName;\n stackResources;\n constructor(sdk, stackName) {\n this.sdk = sdk;\n this.stackName = stackName;\n }\n async listStackResources() {\n if (this.stackResources === undefined) {\n this.stackResources = this.sdk.cloudFormation().listStackResources({\n StackName: this.stackName,\n });\n }\n return this.stackResources;\n }\n}\nexports.LazyListStackResources = LazyListStackResources;\nclass LookupExportError extends Error {\n}\nexports.LookupExportError = LookupExportError;\nclass LazyLookupExport {\n sdk;\n cachedExports = {};\n constructor(sdk) {\n this.sdk = sdk;\n }\n async lookupExport(name) {\n if (this.cachedExports[name]) {\n return this.cachedExports[name];\n }\n for await (const cfnExport of this.listExports()) {\n if (!cfnExport.Name) {\n continue; // ignore any result that omits a name\n }\n this.cachedExports[cfnExport.Name] = cfnExport;\n if (cfnExport.Name === name) {\n return cfnExport;\n }\n }\n return undefined; // export not found\n }\n // TODO: Paginate\n async *listExports() {\n let nextToken = undefined;\n while (true) {\n const response = await this.sdk.cloudFormation().listExports({ NextToken: nextToken });\n for (const cfnExport of response.Exports ?? []) {\n yield cfnExport;\n }\n if (!response.NextToken) {\n return;\n }\n nextToken = response.NextToken;\n }\n }\n}\nexports.LazyLookupExport = LazyLookupExport;\nclass CfnEvaluationException extends Error {\n}\nexports.CfnEvaluationException = CfnEvaluationException;\nclass EvaluateCloudFormationTemplate {\n stackArtifact;\n stackName;\n template;\n context;\n account;\n region;\n partition;\n sdk;\n nestedStacks;\n stackResources;\n lookupExport;\n cachedUrlSuffix;\n _cloudControl;\n constructor(props) {\n this.stackArtifact = props.stackArtifact;\n this.stackName = props.stackName ?? props.stackArtifact.stackName;\n this.template = props.template ?? props.stackArtifact.template;\n this.context = {\n 'AWS::AccountId': props.account,\n 'AWS::Region': props.region,\n 'AWS::Partition': props.partition,\n ...props.parameters,\n };\n this.account = props.account;\n this.region = props.region;\n this.partition = props.partition;\n this.sdk = props.sdk;\n // We need names of nested stack so we can evaluate cross stack references\n this.nestedStacks = props.nestedStacks ?? {};\n // The current resources of the Stack.\n // We need them to figure out the physical name of a resource in case it wasn't specified by the user.\n // We fetch it lazily, to save a service call, in case all hotswapped resources have their physical names set.\n this.stackResources = new LazyListStackResources(this.sdk, this.stackName);\n // CloudFormation Exports lookup to be able to resolve Fn::ImportValue intrinsics in template\n this.lookupExport = new LazyLookupExport(this.sdk);\n }\n get cloudControl() {\n if (!this._cloudControl) {\n this._cloudControl = this.sdk.cloudControl();\n }\n return this._cloudControl;\n }\n // clones current EvaluateCloudFormationTemplate object, but updates the stack name\n async createNestedEvaluateCloudFormationTemplate(stackName, nestedTemplate, nestedStackParameters) {\n const evaluatedParams = await this.evaluateCfnExpression(nestedStackParameters);\n return new EvaluateCloudFormationTemplate({\n stackArtifact: this.stackArtifact,\n stackName,\n template: nestedTemplate,\n parameters: evaluatedParams,\n account: this.account,\n region: this.region,\n partition: this.partition,\n sdk: this.sdk,\n nestedStacks: this.nestedStacks,\n });\n }\n async establishResourcePhysicalName(logicalId, physicalNameInCfnTemplate) {\n if (physicalNameInCfnTemplate != null) {\n try {\n return await this.evaluateCfnExpression(physicalNameInCfnTemplate);\n }\n catch (e) {\n // If we can't evaluate the resource's name CloudFormation expression,\n // just look it up in the currently deployed Stack\n if (!(e instanceof CfnEvaluationException)) {\n throw e;\n }\n }\n }\n return this.findPhysicalNameFor(logicalId);\n }\n async findPhysicalNameFor(logicalId) {\n const stackResources = await this.stackResources.listStackResources();\n return stackResources.find((sr) => sr.LogicalResourceId === logicalId)?.PhysicalResourceId;\n }\n async findLogicalIdForPhysicalName(physicalName) {\n const stackResources = await this.stackResources.listStackResources();\n return stackResources.find((sr) => sr.PhysicalResourceId === physicalName)?.LogicalResourceId;\n }\n findReferencesTo(logicalId) {\n const ret = new Array();\n for (const [resourceLogicalId, resourceDef] of Object.entries(this.template?.Resources ?? {})) {\n if (logicalId !== resourceLogicalId && this.references(logicalId, resourceDef)) {\n ret.push({\n ...resourceDef,\n LogicalId: resourceLogicalId,\n });\n }\n }\n return ret;\n }\n async evaluateCfnExpression(cfnExpression) {\n const self = this;\n /**\n * Evaluates CloudFormation intrinsic functions\n *\n * Note that supported intrinsic functions are documented in README.md -- please update\n * list of supported functions when adding new evaluations\n *\n * See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html\n */\n class CfnIntrinsics {\n evaluateIntrinsic(intrinsic) {\n const intrinsicFunc = this[intrinsic.name];\n if (!intrinsicFunc) {\n throw new CfnEvaluationException(`CloudFormation function ${intrinsic.name} is not supported`);\n }\n const argsAsArray = Array.isArray(intrinsic.args) ? intrinsic.args : [intrinsic.args];\n return intrinsicFunc.apply(this, argsAsArray);\n }\n async 'Fn::Join'(separator, args) {\n const evaluatedArgs = await self.evaluateCfnExpression(args);\n return evaluatedArgs.join(separator);\n }\n async 'Fn::Split'(separator, args) {\n const evaluatedArgs = await self.evaluateCfnExpression(args);\n return evaluatedArgs.split(separator);\n }\n async 'Fn::Select'(index, args) {\n const evaluatedArgs = await self.evaluateCfnExpression(args);\n return evaluatedArgs[index];\n }\n async Ref(logicalId) {\n const refTarget = await self.findRefTarget(logicalId);\n if (refTarget) {\n return refTarget;\n }\n else {\n throw new CfnEvaluationException(`Parameter or resource '${logicalId}' could not be found for evaluation`);\n }\n }\n async 'Fn::GetAtt'(logicalId, attributeName) {\n // ToDo handle the 'logicalId.attributeName' form of Fn::GetAtt\n const attrValue = await self.findGetAttTarget(logicalId, attributeName);\n if (attrValue) {\n return attrValue;\n }\n else {\n throw new CfnEvaluationException(`Attribute '${attributeName}' of resource '${logicalId}' could not be found for evaluation`);\n }\n }\n async 'Fn::Sub'(template, explicitPlaceholders) {\n const placeholders = explicitPlaceholders ? await self.evaluateCfnExpression(explicitPlaceholders) : {};\n return asyncGlobalReplace(template, /\\${([^}]*)}/g, (key) => {\n if (key in placeholders) {\n return placeholders[key];\n }\n else {\n const splitKey = key.split('.');\n return splitKey.length === 1 ? this.Ref(key) : this['Fn::GetAtt'](splitKey[0], splitKey.slice(1).join('.'));\n }\n });\n }\n async 'Fn::ImportValue'(name) {\n const exported = await self.lookupExport.lookupExport(name);\n if (!exported) {\n throw new CfnEvaluationException(`Export '${name}' could not be found for evaluation`);\n }\n if (!exported.Value) {\n throw new CfnEvaluationException(`Export '${name}' exists without a value`);\n }\n return exported.Value;\n }\n }\n if (cfnExpression == null) {\n return cfnExpression;\n }\n if (Array.isArray(cfnExpression)) {\n // Small arrays in practice\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(cfnExpression.map((expr) => this.evaluateCfnExpression(expr)));\n }\n if (typeof cfnExpression === 'object') {\n const intrinsic = this.parseIntrinsic(cfnExpression);\n if (intrinsic) {\n return new CfnIntrinsics().evaluateIntrinsic(intrinsic);\n }\n else {\n const ret = {};\n for (const [key, val] of Object.entries(cfnExpression)) {\n ret[key] = await this.evaluateCfnExpression(val);\n }\n return ret;\n }\n }\n return cfnExpression;\n }\n /**\n * Best-effort attempt to construct the Cloud Control API primary identifier for a resource.\n *\n * Cloud Control compound identifiers are pipe-delimited, ordered by the `primaryIdentifier`\n * array in the resource type schema (e.g. `DatabaseName|TableName` for `AWS::Glue::Table`).\n *\n * CloudFormation's `PhysicalResourceId` (the `physicalId` parameter here) is the `Ref` return\n * value for the resource, which is resource-type-specific and may not correspond to the Cloud\n * Control Primary Identifier.\n *\n * For properties present in the template, we resolve them directly. For properties NOT in the\n * template (e.g. service-generated read-only values), we fall back to `physicalId`. This is\n * only correct when:\n *\n * - Exactly one property in the identifier is missing from the template, AND\n * - That property happens to be the one that `Ref` returns for this resource type.\n *\n * If multiple properties are missing, `physicalId` is reused for all of them.\n */\n async evaluateCloudControlIdentifier(logicalId, resourceType, physicalId) {\n if (resourceType in exports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS) {\n const primaryProps = exports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS[resourceType];\n const parts = [];\n for (const propName of primaryProps) {\n const templateVal = this.getResourceProperty(logicalId, propName);\n if (templateVal) {\n parts.push(await this.evaluateCfnExpression(templateVal));\n }\n else {\n // Not in template — assume this is the Ref return value. See doc comment for caveats.\n parts.push(physicalId);\n }\n }\n return parts.join('|');\n }\n return physicalId;\n }\n getResourceProperty(logicalId, propertyName) {\n return this.template.Resources?.[logicalId]?.Properties?.[propertyName];\n }\n metadataFor(logicalId) {\n return (0, resource_metadata_1.resourceMetadata)(this.stackArtifact, logicalId);\n }\n references(logicalId, templateElement) {\n if (typeof templateElement === 'string') {\n return logicalId === templateElement;\n }\n if (templateElement == null) {\n return false;\n }\n if (Array.isArray(templateElement)) {\n return templateElement.some((el) => this.references(logicalId, el));\n }\n if (typeof templateElement === 'object') {\n return Object.values(templateElement).some((el) => this.references(logicalId, el));\n }\n return false;\n }\n parseIntrinsic(x) {\n const keys = Object.keys(x);\n if (keys.length === 1 && (keys[0].startsWith('Fn::') || keys[0] === 'Ref')) {\n return {\n name: keys[0],\n args: x[keys[0]],\n };\n }\n return undefined;\n }\n async findRefTarget(logicalId) {\n // first, check to see if the Ref is a Parameter who's value we have\n if (logicalId === 'AWS::URLSuffix') {\n if (!this.cachedUrlSuffix) {\n this.cachedUrlSuffix = await this.sdk.getUrlSuffix(this.region);\n }\n return this.cachedUrlSuffix;\n }\n // Try finding the ref in the passed in parameters\n const parameterTarget = this.context[logicalId];\n if (parameterTarget) {\n return parameterTarget;\n }\n // If not in the passed in parameters, see if there is a default value in the template parameter that was not passed in\n const defaultParameterValue = this.template.Parameters?.[logicalId]?.Default;\n if (defaultParameterValue) {\n return defaultParameterValue;\n }\n // if it's not a Parameter, we need to search in the current Stack resources\n return this.findGetAttTarget(logicalId);\n }\n async findGetAttTarget(logicalId, attribute) {\n // Handle case where the attribute is referencing a stack output (used in nested stacks to share parameters)\n // See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-cloudformation.html#w2ab1c17c23c19b5\n if (logicalId === 'Outputs' && attribute) {\n return this.evaluateCfnExpression(this.template.Outputs[attribute]?.Value);\n }\n const stackResources = await this.stackResources.listStackResources();\n const foundResource = stackResources.find((sr) => sr.LogicalResourceId === logicalId);\n if (!foundResource) {\n return undefined;\n }\n if (foundResource.ResourceType == 'AWS::CloudFormation::Stack' && attribute?.startsWith('Outputs.')) {\n const dependantStack = this.findNestedStack(logicalId, this.nestedStacks);\n if (!dependantStack || !dependantStack.physicalName) {\n // this is a newly created nested stack and cannot be hotswapped\n return undefined;\n }\n const evaluateCfnTemplate = await this.createNestedEvaluateCloudFormationTemplate(dependantStack.physicalName, dependantStack.generatedTemplate, dependantStack.generatedTemplate.Parameters);\n // Split Outputs. into 'Outputs' and '' and recursively call evaluate\n return evaluateCfnTemplate.evaluateCfnExpression({\n 'Fn::GetAtt': attribute.split(/\\.(.*)/s),\n });\n }\n // now, we need to format the appropriate identifier depending on the resource type,\n // and the requested attribute name\n return this.formatResourceAttribute(foundResource, attribute);\n }\n findNestedStack(logicalId, nestedStacks) {\n for (const nestedStackLogicalId of Object.keys(nestedStacks)) {\n if (nestedStackLogicalId === logicalId) {\n return nestedStacks[nestedStackLogicalId];\n }\n const checkInNestedChildStacks = this.findNestedStack(logicalId, nestedStacks[nestedStackLogicalId].nestedStackTemplates);\n if (checkInNestedChildStacks)\n return checkInNestedChildStacks;\n }\n return undefined;\n }\n async formatResourceAttribute(resource, attribute) {\n const physicalId = resource.PhysicalResourceId;\n // no attribute means Ref expression, for which we use the physical ID directly\n if (!attribute) {\n return physicalId;\n }\n const resourceTypeFormats = RESOURCE_TYPE_ATTRIBUTES_FORMATS[resource.ResourceType];\n if (resourceTypeFormats) {\n const attributeFormatFunc = resourceTypeFormats[attribute];\n if (attributeFormatFunc) {\n const service = this.getServiceOfResource(resource);\n const resourceTypeArnPart = this.getResourceTypeArnPartOfResource(resource);\n return attributeFormatFunc({\n partition: this.partition,\n service,\n region: this.region,\n account: this.account,\n resourceType: resourceTypeArnPart,\n resourceName: physicalId,\n });\n }\n }\n try {\n const identifier = await this.evaluateCloudControlIdentifier(resource.LogicalResourceId, resource.ResourceType, physicalId);\n const response = await this.cloudControl.getResource({\n TypeName: resource.ResourceType,\n Identifier: identifier,\n });\n const props = JSON.parse(response.ResourceDescription?.Properties ?? '{}');\n if (attribute in props) {\n return props[attribute];\n }\n }\n catch (error) {\n // Cloud Control lookup failed — fall through to the error below\n throw new CfnEvaluationException(`Could not find '${attribute}' attribute of the '${resource.ResourceType}' resource because` +\n `an error occured while attempting to retrieve the information: '${error.name}:${error.message}'`);\n }\n throw new CfnEvaluationException(`We don't support the '${attribute}' attribute of the '${resource.ResourceType}' resource. This is a CDK limitation. ` +\n 'Please report it at https://github.com/aws/aws-cdk/issues/new/choose');\n }\n getServiceOfResource(resource) {\n return resource.ResourceType.split('::')[1].toLowerCase();\n }\n getResourceTypeArnPartOfResource(resource) {\n const resourceType = resource.ResourceType;\n const specialCaseResourceType = RESOURCE_TYPE_SPECIAL_NAMES[resourceType]?.resourceType;\n return specialCaseResourceType\n ? specialCaseResourceType\n : // this is the default case\n resourceType.split('::')[2].toLowerCase();\n }\n}\nexports.EvaluateCloudFormationTemplate = EvaluateCloudFormationTemplate;\n/**\n * Resources where the CloudFormation physical resource ID ({ Ref }) disagrees\n * with the Cloud Control API primary identifier.\n *\n * Maps resource type to the CC primary identifier property names.\n * For resources NOT in this map, the physical resource ID can be used\n * directly as the CC primary identifier.\n */\nexports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS = {\n 'AWS::ApiGateway::Authorizer': ['RestApiId', 'AuthorizerId'],\n 'AWS::ApiGateway::Deployment': ['DeploymentId', 'RestApiId'],\n 'AWS::ApiGateway::Model': ['RestApiId', 'Name'],\n 'AWS::ApiGateway::RequestValidator': ['RestApiId', 'RequestValidatorId'],\n 'AWS::ApiGateway::DocumentationPart': ['DocumentationPartId', 'RestApiId'],\n 'AWS::ApiGateway::Resource': ['RestApiId', 'ResourceId'],\n 'AWS::ApiGateway::Stage': ['RestApiId', 'StageName'],\n 'AWS::ApiGatewayV2::ApiMapping': ['ApiMappingId', 'DomainName'],\n 'AWS::ApiGatewayV2::Authorizer': ['AuthorizerId', 'ApiId'],\n 'AWS::ApiGatewayV2::Deployment': ['ApiId', 'DeploymentId'],\n 'AWS::ApiGatewayV2::Integration': ['ApiId', 'IntegrationId'],\n 'AWS::ApiGatewayV2::IntegrationResponse': ['ApiId', 'IntegrationId', 'IntegrationResponseId'],\n 'AWS::ApiGatewayV2::Model': ['ApiId', 'ModelId'],\n 'AWS::ApiGatewayV2::Route': ['ApiId', 'RouteId'],\n 'AWS::ApiGatewayV2::RouteResponse': ['ApiId', 'RouteId', 'RouteResponseId'],\n 'AWS::ApiGatewayV2::Stage': ['Id'],\n 'AWS::AppConfig::ConfigurationProfile': ['ApplicationId', 'ConfigurationProfileId'],\n 'AWS::AppConfig::Environment': ['ApplicationId', 'EnvironmentId'],\n 'AWS::AppConfig::HostedConfigurationVersion': ['ApplicationId', 'ConfigurationProfileId', 'VersionNumber'],\n 'AWS::AppMesh::GatewayRoute': ['Id'],\n 'AWS::AppMesh::Mesh': ['Id'],\n 'AWS::AppMesh::Route': ['Id'],\n 'AWS::AppMesh::VirtualGateway': ['Id'],\n 'AWS::AppMesh::VirtualNode': ['Id'],\n 'AWS::AppMesh::VirtualRouter': ['Id'],\n 'AWS::AppMesh::VirtualService': ['Id'],\n 'AWS::AppSync::ApiKey': ['ApiKeyId'],\n 'AWS::AppSync::GraphQLApi': ['ApiId'],\n 'AWS::Batch::JobDefinition': ['JobDefinitionName'],\n 'AWS::CloudWatch::InsightRule': ['Id'],\n 'AWS::CodeBuild::Project': ['Id'],\n 'AWS::CodeBuild::ReportGroup': ['Id'],\n 'AWS::CodeDeploy::DeploymentGroup': ['ApplicationName', 'DeploymentGroupName'],\n 'AWS::CodePipeline::Webhook': ['Id'],\n 'AWS::Cognito::UserPoolClient': ['UserPoolId', 'ClientId'],\n 'AWS::Cognito::UserPoolDomain': ['UserPoolId', 'Domain'],\n 'AWS::Cognito::UserPoolGroup': ['UserPoolId', 'GroupName'],\n 'AWS::Cognito::UserPoolIdentityProvider': ['UserPoolId', 'ProviderName'],\n 'AWS::Cognito::UserPoolResourceServer': ['UserPoolId', 'Identifier'],\n 'AWS::Cognito::UserPoolUser': ['UserPoolId', 'Username'],\n 'AWS::DAX::Cluster': ['Id'],\n 'AWS::DAX::ParameterGroup': ['Id'],\n 'AWS::DAX::SubnetGroup': ['Id'],\n 'AWS::DMS::EventSubscription': ['Id'],\n 'AWS::EC2::EIP': ['PublicIp', 'AllocationId'],\n 'AWS::ECS::Service': ['ServiceArn', 'Cluster'],\n 'AWS::ElastiCache::CacheCluster': ['Id'],\n 'AWS::ElasticLoadBalancing::LoadBalancer': ['Id'],\n 'AWS::ElastiCache::User': ['UserId'],\n 'AWS::Elasticsearch::Domain': ['Id'],\n 'AWS::Events::Rule': ['Arn'],\n 'AWS::EventSchemas::RegistryPolicy': ['Id'],\n 'AWS::Glue::DevEndpoint': ['Id'],\n 'AWS::Glue::Workflow': ['Id'],\n 'AWS::IoT::Policy': ['Id'],\n 'AWS::Logs::LogStream': ['LogGroupName', 'LogStreamName'],\n 'AWS::Logs::SubscriptionFilter': ['FilterName', 'LogGroupName'],\n 'AWS::MediaConvert::JobTemplate': ['Id'],\n 'AWS::MediaConvert::Preset': ['Id'],\n 'AWS::MediaConvert::Queue': ['Id'],\n 'AWS::Route53::RecordSet': ['Id'],\n 'AWS::SageMaker::Device': ['Device/DeviceName'],\n 'AWS::SecretsManager::ResourcePolicy': ['Id'],\n 'AWS::SecretsManager::SecretTargetAttachment': ['Id'],\n 'AWS::SES::ReceiptRuleSet': ['Id'],\n 'AWS::SSM::MaintenanceWindowTarget': ['WindowId', 'WindowTargetId'],\n 'AWS::SSM::MaintenanceWindowTask': ['WindowId', 'WindowTaskId'],\n};\n/**\n * Usually, we deduce the names of the service and the resource type used to format the ARN from the CloudFormation resource type.\n * For a CFN type like AWS::Service::ResourceType, the second segment becomes the service name, and the third the resource type\n * (after converting both of them to lowercase).\n * However, some resource types break this simple convention, and we need to special-case them.\n * This map is for storing those cases.\n */\nconst RESOURCE_TYPE_SPECIAL_NAMES = {\n 'AWS::Events::EventBus': {\n resourceType: 'event-bus',\n },\n};\nconst RESOURCE_TYPE_ATTRIBUTES_FORMATS = {\n 'AWS::IAM::Role': { Arn: iamArnFmt },\n 'AWS::IAM::User': { Arn: iamArnFmt },\n 'AWS::IAM::Group': { Arn: iamArnFmt },\n 'AWS::S3::Bucket': { Arn: s3ArnFmt },\n 'AWS::Lambda::Function': { Arn: stdColonResourceArnFmt },\n 'AWS::Events::EventBus': {\n Arn: stdSlashResourceArnFmt,\n // the name attribute of the EventBus is the same as the Ref\n Name: (parts) => parts.resourceName,\n },\n 'AWS::DynamoDB::Table': { Arn: stdSlashResourceArnFmt },\n 'AWS::AppSync::GraphQLApi': { ApiId: appsyncGraphQlApiApiIdFmt },\n 'AWS::AppSync::FunctionConfiguration': {\n FunctionId: appsyncGraphQlFunctionIDFmt,\n },\n 'AWS::AppSync::DataSource': { Name: appsyncGraphQlDataSourceNameFmt },\n 'AWS::KMS::Key': { Arn: stdSlashResourceArnFmt },\n};\nfunction iamArnFmt(parts) {\n // we skip region for IAM resources\n return `arn:${parts.partition}:${parts.service}::${parts.account}:${parts.resourceType}/${parts.resourceName}`;\n}\nfunction s3ArnFmt(parts) {\n // we skip account, region and resourceType for S3 resources\n return `arn:${parts.partition}:${parts.service}:::${parts.resourceName}`;\n}\nfunction stdColonResourceArnFmt(parts) {\n // this is a standard format for ARNs like: arn:aws:service:region:account:resourceType:resourceName\n return `arn:${parts.partition}:${parts.service}:${parts.region}:${parts.account}:${parts.resourceType}:${parts.resourceName}`;\n}\nfunction stdSlashResourceArnFmt(parts) {\n // this is a standard format for ARNs like: arn:aws:service:region:account:resourceType/resourceName\n return `arn:${parts.partition}:${parts.service}:${parts.region}:${parts.account}:${parts.resourceType}/${parts.resourceName}`;\n}\nfunction appsyncGraphQlApiApiIdFmt(parts) {\n // arn:aws:appsync:us-east-1:111111111111:apis/\n return parts.resourceName.split('/')[1];\n}\nfunction appsyncGraphQlFunctionIDFmt(parts) {\n // arn:aws:appsync:us-east-1:111111111111:apis//functions/\n return parts.resourceName.split('/')[3];\n}\nfunction appsyncGraphQlDataSourceNameFmt(parts) {\n // arn:aws:appsync:us-east-1:111111111111:apis//datasources/\n return parts.resourceName.split('/')[3];\n}\nasync function asyncGlobalReplace(str, regex, cb) {\n if (!regex.global) {\n throw new toolkit_error_1.ToolkitError('RegexMissingGlobalFlag', 'Regex must be created with /g flag');\n }\n const ret = new Array();\n let start = 0;\n while (true) {\n const match = regex.exec(str);\n if (!match) {\n break;\n }\n ret.push(str.substring(start, match.index));\n ret.push(await cb(match[1]));\n start = regex.lastIndex;\n }\n ret.push(str.slice(start));\n return ret.join('');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdGUtY2xvdWRmb3JtYXRpb24tdGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSwrREFBMkQ7QUFHM0QsNERBQXdEO0FBTXhELE1BQWEsc0JBQXNCO0lBSWQ7SUFDQTtJQUpYLGNBQWMsQ0FBOEM7SUFFcEUsWUFDbUIsR0FBUSxFQUNSLFNBQWlCO1FBRGpCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDUixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRXBDLENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzthQUMxQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQWpCRCx3REFpQkM7QUFNRCxNQUFhLGlCQUFrQixTQUFRLEtBQUs7Q0FDM0M7QUFERCw4Q0FDQztBQUVELE1BQWEsZ0JBQWdCO0lBR0U7SUFGckIsYUFBYSxHQUErQixFQUFFLENBQUM7SUFFdkQsWUFBNkIsR0FBUTtRQUFSLFFBQUcsR0FBSCxHQUFHLENBQUs7SUFDckMsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBWTtRQUM3QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFX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LENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNSLENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFM0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEV4cG9ydCwgTGlzdEV4cG9ydHNDb21tYW5kT3V0cHV0LCBTdGFja1Jlc291cmNlU3VtbWFyeSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi9uZXN0ZWQtc3RhY2staGVscGVycyc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlIH0gZnJvbSAnLi9zdGFjay1oZWxwZXJzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IElDbG91ZENvbnRyb2xDbGllbnQsIFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZU1ldGFkYXRhIH0gZnJvbSAnLi4vcmVzb3VyY2UtbWV0YWRhdGEnO1xuaW1wb3J0IHsgcmVzb3VyY2VNZXRhZGF0YSB9IGZyb20gJy4uL3Jlc291cmNlLW1ldGFkYXRhJztcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0U3RhY2tSZXNvdXJjZXMge1xuICBsaXN0U3RhY2tSZXNvdXJjZXMoKTogUHJvbWlzZTxTdGFja1Jlc291cmNlU3VtbWFyeVtdPjtcbn1cblxuZXhwb3J0IGNsYXNzIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgaW1wbGVtZW50cyBMaXN0U3RhY2tSZXNvdXJjZXMge1xuICBwcml2YXRlIHN0YWNrUmVzb3VyY2VzOiBQcm9taXNlPFN0YWNrUmVzb3VyY2VTdW1tYXJ5W10+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2RrOiBTREssXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGFja05hbWU6IHN0cmluZyxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdFN0YWNrUmVzb3VyY2VzKCk6IFByb21pc2U8U3RhY2tSZXNvdXJjZVN1bW1hcnlbXT4ge1xuICAgIGlmICh0aGlzLnN0YWNrUmVzb3VyY2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3RhY2tSZXNvdXJjZXMgPSB0aGlzLnNkay5jbG91ZEZvcm1hdGlvbigpLmxpc3RTdGFja1Jlc291cmNlcyh7XG4gICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tSZXNvdXJjZXM7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29rdXBFeHBvcnQge1xuICBsb29rdXBFeHBvcnQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxFeHBvcnQgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgY2xhc3MgTG9va3VwRXhwb3J0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5cbmV4cG9ydCBjbGFzcyBMYXp5TG9va3VwRXhwb3J0IGltcGxlbWVudHMgTG9va3VwRXhwb3J0IHtcbiAgcHJpdmF0ZSBjYWNoZWRFeHBvcnRzOiB7IFtuYW1lOiBzdHJpbmddOiBFeHBvcnQgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2RrOiBTREspIHtcbiAgfVxuXG4gIGFzeW5jIGxvb2t1cEV4cG9ydChuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEV4cG9ydCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICh0aGlzLmNhY2hlZEV4cG9ydHNbbmFtZV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlZEV4cG9ydHNbbmFtZV07XG4gICAgfVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBjZm5FeHBvcnQgb2YgdGhpcy5saXN0RXhwb3J0cygpKSB7XG4gICAgICBpZiAoIWNmbkV4cG9ydC5OYW1lKSB7XG4gICAgICAgIGNvbnRpbnVlOyAvLyBpZ25vcmUgYW55IHJlc3VsdCB0aGF0IG9taXRzIGEgbmFtZVxuICAgICAgfVxuICAgICAgdGhpcy5jYWNoZWRFeHBvcnRzW2NmbkV4cG9ydC5OYW1lXSA9IGNmbkV4cG9ydDtcblxuICAgICAgaWYgKGNmbkV4cG9ydC5OYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiBjZm5FeHBvcnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZXhwb3J0IG5vdCBmb3VuZFxuICB9XG5cbiAgLy8gVE9ETzogUGFnaW5hdGVcbiAgcHJpdmF0ZSBhc3luYyAqbGlzdEV4cG9ydHMoKSB7XG4gICAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCByZXNwb25zZTogTGlzdEV4cG9ydHNDb21tYW5kT3V0cHV0ID0gYXdhaXQgdGhpcy5zZGsuY2xvdWRGb3JtYXRpb24oKS5saXN0RXhwb3J0cyh7IE5leHRUb2tlbjogbmV4dFRva2VuIH0pO1xuICAgICAgZm9yIChjb25zdCBjZm5FeHBvcnQgb2YgcmVzcG9uc2UuRXhwb3J0cyA/PyBbXSkge1xuICAgICAgICB5aWVsZCBjZm5FeHBvcnQ7XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2UuTmV4dFRva2VuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG5leHRUb2tlbiA9IHJlc3BvbnNlLk5leHRUb2tlbjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENmbkV2YWx1YXRpb25FeGNlcHRpb24gZXh0ZW5kcyBFcnJvciB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgTG9naWNhbElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IFR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgUHJvcGVydGllczogeyBbcDogc3RyaW5nXTogYW55IH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlUHJvcHMge1xuICByZWFkb25seSBzdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIHJlYWRvbmx5IHN0YWNrTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBUZW1wbGF0ZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogeyBbcGFyYW1ldGVyTmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBzZGs6IFNESztcbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tzPzoge1xuICAgIFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXM7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUge1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tBcnRpZmFjdDogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2RrOiBTREs7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmVzdGVkU3RhY2tzOiB7XG4gICAgW25lc3RlZFN0YWNrTG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcztcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja1Jlc291cmNlczogTGlzdFN0YWNrUmVzb3VyY2VzO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvb2t1cEV4cG9ydDogTG9va3VwRXhwb3J0O1xuXG4gIHByaXZhdGUgY2FjaGVkVXJsU3VmZml4OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2Nsb3VkQ29udHJvbDogSUNsb3VkQ29udHJvbENsaWVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlUHJvcHMpIHtcbiAgICB0aGlzLnN0YWNrQXJ0aWZhY3QgPSBwcm9wcy5zdGFja0FydGlmYWN0O1xuICAgIHRoaXMuc3RhY2tOYW1lID0gcHJvcHMuc3RhY2tOYW1lID8/IHByb3BzLnN0YWNrQXJ0aWZhY3Quc3RhY2tOYW1lO1xuICAgIHRoaXMudGVtcGxhdGUgPSBwcm9wcy50ZW1wbGF0ZSA/PyBwcm9wcy5zdGFja0FydGlmYWN0LnRlbXBsYXRlO1xuICAgIHRoaXMuY29udGV4dCA9IHtcbiAgICAgICdBV1M6OkFjY291bnRJZCc6IHByb3BzLmFjY291bnQsXG4gICAgICAnQVdTOjpSZWdpb24nOiBwcm9wcy5yZWdpb24sXG4gICAgICAnQVdTOjpQYXJ0aXRpb24nOiBwcm9wcy5wYXJ0aXRpb24sXG4gICAgICAuLi5wcm9wcy5wYXJhbWV0ZXJzLFxuICAgIH07XG4gICAgdGhpcy5hY2NvdW50ID0gcHJvcHMuYWNjb3VudDtcbiAgICB0aGlzLnJlZ2lvbiA9IHByb3BzLnJlZ2lvbjtcbiAgICB0aGlzLnBhcnRpdGlvbiA9IHByb3BzLnBhcnRpdGlvbjtcbiAgICB0aGlzLnNkayA9IHByb3BzLnNkaztcblxuICAgIC8vIFdlIG5lZWQgbmFtZXMgb2YgbmVzdGVkIHN0YWNrIHNvIHdlIGNhbiBldmFsdWF0ZSBjcm9zcyBzdGFjayByZWZlcmVuY2VzXG4gICAgdGhpcy5uZXN0ZWRTdGFja3MgPSBwcm9wcy5uZXN0ZWRTdGFja3MgPz8ge307XG5cbiAgICAvLyBUaGUgY3VycmVudCByZXNvdXJjZXMgb2YgdGhlIFN0YWNrLlxuICAgIC8vIFdlIG5lZWQgdGhlbSB0byBmaWd1cmUgb3V0IHRoZSBwaHlzaWNhbCBuYW1lIG9mIGEgcmVzb3VyY2UgaW4gY2FzZSBpdCB3YXNuJ3Qgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLlxuICAgIC8vIFdlIGZldGNoIGl0IGxhemlseSwgdG8gc2F2ZSBhIHNlcnZpY2UgY2FsbCwgaW4gY2FzZSBhbGwgaG90c3dhcHBlZCByZXNvdXJjZXMgaGF2ZSB0aGVpciBwaHlzaWNhbCBuYW1lcyBzZXQuXG4gICAgdGhpcy5zdGFja1Jlc291cmNlcyA9IG5ldyBMYXp5TGlzdFN0YWNrUmVzb3VyY2VzKHRoaXMuc2RrLCB0aGlzLnN0YWNrTmFtZSk7XG5cbiAgICAvLyBDbG91ZEZvcm1hdGlvbiBFeHBvcnRzIGxvb2t1cCB0byBiZSBhYmxlIHRvIHJlc29sdmUgRm46OkltcG9ydFZhbHVlIGludHJpbnNpY3MgaW4gdGVtcGxhdGVcbiAgICB0aGlzLmxvb2t1cEV4cG9ydCA9IG5ldyBMYXp5TG9va3VwRXhwb3J0KHRoaXMuc2RrKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNsb3VkQ29udHJvbCgpOiBJQ2xvdWRDb250cm9sQ2xpZW50IHtcbiAgICBpZiAoIXRoaXMuX2Nsb3VkQ29udHJvbCkge1xuICAgICAgdGhpcy5fY2xvdWRDb250cm9sID0gdGhpcy5zZGsuY2xvdWRDb250cm9sKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jbG91ZENvbnRyb2w7XG4gIH1cblxuICAvLyBjbG9uZXMgY3VycmVudCBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgb2JqZWN0LCBidXQgdXBkYXRlcyB0aGUgc3RhY2sgbmFtZVxuICBwdWJsaWMgYXN5bmMgY3JlYXRlTmVzdGVkRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIG5lc3RlZFRlbXBsYXRlOiBUZW1wbGF0ZSxcbiAgICBuZXN0ZWRTdGFja1BhcmFtZXRlcnM6IHsgW3BhcmFtZXRlck5hbWU6IHN0cmluZ106IGFueSB9LFxuICApIHtcbiAgICBjb25zdCBldmFsdWF0ZWRQYXJhbXMgPSBhd2FpdCB0aGlzLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihuZXN0ZWRTdGFja1BhcmFtZXRlcnMpO1xuICAgIHJldHVybiBuZXcgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKHtcbiAgICAgIHN0YWNrQXJ0aWZhY3Q6IHRoaXMuc3RhY2tBcnRpZmFjdCxcbiAgICAgIHN0YWNrTmFtZSxcbiAgICAgIHRlbXBsYXRlOiBuZXN0ZWRUZW1wbGF0ZSxcbiAgICAgIHBhcmFtZXRlcnM6IGV2YWx1YXRlZFBhcmFtcyxcbiAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICBwYXJ0aXRpb246IHRoaXMucGFydGl0aW9uLFxuICAgICAgc2RrOiB0aGlzLnNkayxcbiAgICAgIG5lc3RlZFN0YWNrczogdGhpcy5uZXN0ZWRTdGFja3MsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZXN0YWJsaXNoUmVzb3VyY2VQaHlzaWNhbE5hbWUoXG4gICAgbG9naWNhbElkOiBzdHJpbmcsXG4gICAgcGh5c2ljYWxOYW1lSW5DZm5UZW1wbGF0ZTogYW55LFxuICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmIChwaHlzaWNhbE5hbWVJbkNmblRlbXBsYXRlICE9IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihwaHlzaWNhbE5hbWVJbkNmblRlbXBsYXRlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gSWYgd2UgY2FuJ3QgZXZhbHVhdGUgdGhlIHJlc291cmNlJ3MgbmFtZSBDbG91ZEZvcm1hdGlvbiBleHByZXNzaW9uLFxuICAgICAgICAvLyBqdXN0IGxvb2sgaXQgdXAgaW4gdGhlIGN1cnJlbnRseSBkZXBsb3llZCBTdGFja1xuICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbikpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbmRQaHlzaWNhbE5hbWVGb3IobG9naWNhbElkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmaW5kUGh5c2ljYWxOYW1lRm9yKGxvZ2ljYWxJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzdGFja1Jlc291cmNlcyA9IGF3YWl0IHRoaXMuc3RhY2tSZXNvdXJjZXMubGlzdFN0YWNrUmVzb3VyY2VzKCk7XG4gICAgcmV0dXJuIHN0YWNrUmVzb3VyY2VzLmZpbmQoKHNyKSA9PiBzci5Mb2dpY2FsUmVzb3VyY2VJZCA9PT0gbG9naWNhbElkKT8uUGh5c2ljYWxSZXNvdXJjZUlkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpbmRMb2dpY2FsSWRGb3JQaHlzaWNhbE5hbWUocGh5c2ljYWxOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5zdGFja1Jlc291cmNlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICByZXR1cm4gc3RhY2tSZXNvdXJjZXMuZmluZCgoc3IpID0+IHNyLlBoeXNpY2FsUmVzb3VyY2VJZCA9PT0gcGh5c2ljYWxOYW1lKT8uTG9naWNhbFJlc291cmNlSWQ7XG4gIH1cblxuICBwdWJsaWMgZmluZFJlZmVyZW5jZXNUbyhsb2dpY2FsSWQ6IHN0cmluZyk6IEFycmF5PFJlc291cmNlRGVmaW5pdGlvbj4ge1xuICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxSZXNvdXJjZURlZmluaXRpb24+KCk7XG4gICAgZm9yIChjb25zdCBbcmVzb3VyY2VMb2dpY2FsSWQsIHJlc291cmNlRGVmXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnRlbXBsYXRlPy5SZXNvdXJjZXMgPz8ge30pKSB7XG4gICAgICBpZiAobG9naWNhbElkICE9PSByZXNvdXJjZUxvZ2ljYWxJZCAmJiB0aGlzLnJlZmVyZW5jZXMobG9naWNhbElkLCByZXNvdXJjZURlZikpIHtcbiAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgIC4uLihyZXNvdXJjZURlZiBhcyBhbnkpLFxuICAgICAgICAgIExvZ2ljYWxJZDogcmVzb3VyY2VMb2dpY2FsSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihjZm5FeHByZXNzaW9uOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIC8qKlxuICAgICAqIEV2YWx1YXRlcyBDbG91ZEZvcm1hdGlvbiBpbnRyaW5zaWMgZnVuY3Rpb25zXG4gICAgICpcbiAgICAgKiBOb3RlIHRoYXQgc3VwcG9ydGVkIGludHJpbnNpYyBmdW5jdGlvbnMgYXJlIGRvY3VtZW50ZWQgaW4gUkVBRE1FLm1kIC0tIHBsZWFzZSB1cGRhdGVcbiAgICAgKiBsaXN0IG9mIHN1cHBvcnRlZCBmdW5jdGlvbnMgd2hlbiBhZGRpbmcgbmV3IGV2YWx1YXRpb25zXG4gICAgICpcbiAgICAgKiBTZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2ludHJpbnNpYy1mdW5jdGlvbi1yZWZlcmVuY2UuaHRtbFxuICAgICAqL1xuICAgIGNsYXNzIENmbkludHJpbnNpY3Mge1xuICAgICAgcHVibGljIGV2YWx1YXRlSW50cmluc2ljKGludHJpbnNpYzogSW50cmluc2ljKTogYW55IHtcbiAgICAgICAgY29uc3QgaW50cmluc2ljRnVuYyA9ICh0aGlzIGFzIGFueSlbaW50cmluc2ljLm5hbWVdO1xuICAgICAgICBpZiAoIWludHJpbnNpY0Z1bmMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbihgQ2xvdWRGb3JtYXRpb24gZnVuY3Rpb24gJHtpbnRyaW5zaWMubmFtZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJnc0FzQXJyYXkgPSBBcnJheS5pc0FycmF5KGludHJpbnNpYy5hcmdzKSA/IGludHJpbnNpYy5hcmdzIDogW2ludHJpbnNpYy5hcmdzXTtcblxuICAgICAgICByZXR1cm4gaW50cmluc2ljRnVuYy5hcHBseSh0aGlzLCBhcmdzQXNBcnJheSk7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jICdGbjo6Sm9pbicoc2VwYXJhdG9yOiBzdHJpbmcsIGFyZ3M6IGFueVtdKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgZXZhbHVhdGVkQXJncyA9IGF3YWl0IHNlbGYuZXZhbHVhdGVDZm5FeHByZXNzaW9uKGFyZ3MpO1xuICAgICAgICByZXR1cm4gZXZhbHVhdGVkQXJncy5qb2luKHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jICdGbjo6U3BsaXQnKHNlcGFyYXRvcjogc3RyaW5nLCBhcmdzOiBhbnkpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRBcmdzID0gYXdhaXQgc2VsZi5ldmFsdWF0ZUNmbkV4cHJlc3Npb24oYXJncyk7XG4gICAgICAgIHJldHVybiBldmFsdWF0ZWRBcmdzLnNwbGl0KHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jICdGbjo6U2VsZWN0JyhpbmRleDogbnVtYmVyLCBhcmdzOiBhbnlbXSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRlZEFyZ3MgPSBhd2FpdCBzZWxmLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihhcmdzKTtcbiAgICAgICAgcmV0dXJuIGV2YWx1YXRlZEFyZ3NbaW5kZXhdO1xuICAgICAgfVxuXG4gICAgICBhc3luYyBSZWYobG9naWNhbElkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCByZWZUYXJnZXQgPSBhd2FpdCBzZWxmLmZpbmRSZWZUYXJnZXQobG9naWNhbElkKTtcbiAgICAgICAgaWYgKHJlZlRhcmdldCkge1xuICAgICAgICAgIHJldHVybiByZWZUYXJnZXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oYFBhcmFtZXRlciBvciByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBjb3VsZCBub3QgYmUgZm91bmQgZm9yIGV2YWx1YXRpb25gKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhc3luYyAnRm46OkdldEF0dCcobG9naWNhbElkOiBzdHJpbmcsIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIC8vIFRvRG8gaGFuZGxlIHRoZSAnbG9naWNhbElkLmF0dHJpYnV0ZU5hbWUnIGZvcm0gb2YgRm46OkdldEF0dFxuICAgICAgICBjb25zdCBhdHRyVmFsdWUgPSBhd2FpdCBzZWxmLmZpbmRHZXRBdHRUYXJnZXQobG9naWNhbElkLCBhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgaWYgKGF0dHJWYWx1ZSkge1xuICAgICAgICAgIHJldHVybiBhdHRyVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oXG4gICAgICAgICAgICBgQXR0cmlidXRlICcke2F0dHJpYnV0ZU5hbWV9JyBvZiByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBjb3VsZCBub3QgYmUgZm91bmQgZm9yIGV2YWx1YXRpb25gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXN5bmMgJ0ZuOjpTdWInKHRlbXBsYXRlOiBzdHJpbmcsIGV4cGxpY2l0UGxhY2Vob2xkZXJzPzogeyBbdmFyaWFibGU6IHN0cmluZ106IHN0cmluZyB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzID0gZXhwbGljaXRQbGFjZWhvbGRlcnMgPyBhd2FpdCBzZWxmLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihleHBsaWNpdFBsYWNlaG9sZGVycykgOiB7fTtcblxuICAgICAgICByZXR1cm4gYXN5bmNHbG9iYWxSZXBsYWNlKHRlbXBsYXRlLCAvXFwkeyhbXn1dKil9L2csIChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoa2V5IGluIHBsYWNlaG9sZGVycykge1xuICAgICAgICAgICAgcmV0dXJuIHBsYWNlaG9sZGVyc1trZXldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdEtleSA9IGtleS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgcmV0dXJuIHNwbGl0S2V5Lmxlbmd0aCA9PT0gMSA/IHRoaXMuUmVmKGtleSkgOiB0aGlzWydGbjo6R2V0QXR0J10oc3BsaXRLZXlbMF0sIHNwbGl0S2V5LnNsaWNlKDEpLmpvaW4oJy4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgYXN5bmMgJ0ZuOjpJbXBvcnRWYWx1ZScobmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgZXhwb3J0ZWQgPSBhd2FpdCBzZWxmLmxvb2t1cEV4cG9ydC5sb29rdXBFeHBvcnQobmFtZSk7XG4gICAgICAgIGlmICghZXhwb3J0ZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbihgRXhwb3J0ICcke25hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgZm9yIGV2YWx1YXRpb25gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWV4cG9ydGVkLlZhbHVlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oYEV4cG9ydCAnJHtuYW1lfScgZXhpc3RzIHdpdGhvdXQgYSB2YWx1ZWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBvcnRlZC5WYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2ZuRXhwcmVzc2lvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY2ZuRXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShjZm5FeHByZXNzaW9uKSkge1xuICAgICAgLy8gU21hbGwgYXJyYXlzIGluIHByYWN0aWNlXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChjZm5FeHByZXNzaW9uLm1hcCgoZXhwcikgPT4gdGhpcy5ldmFsdWF0ZUNmbkV4cHJlc3Npb24oZXhwcikpKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNmbkV4cHJlc3Npb24gPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBpbnRyaW5zaWMgPSB0aGlzLnBhcnNlSW50cmluc2ljKGNmbkV4cHJlc3Npb24pO1xuICAgICAgaWYgKGludHJpbnNpYykge1xuICAgICAgICByZXR1cm4gbmV3IENmbkludHJpbnNpY3MoKS5ldmFsdWF0ZUludHJpbnNpYyhpbnRyaW5zaWMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmV0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhjZm5FeHByZXNzaW9uKSkge1xuICAgICAgICAgIHJldFtrZXldID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odmFsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjZm5FeHByZXNzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlc3QtZWZmb3J0IGF0dGVtcHQgdG8gY29uc3RydWN0IHRoZSBDbG91ZCBDb250cm9sIEFQSSBwcmltYXJ5IGlkZW50aWZpZXIgZm9yIGEgcmVzb3VyY2UuXG4gICAqXG4gICAqIENsb3VkIENvbnRyb2wgY29tcG91bmQgaWRlbnRpZmllcnMgYXJlIHBpcGUtZGVsaW1pdGVkLCBvcmRlcmVkIGJ5IHRoZSBgcHJpbWFyeUlkZW50aWZpZXJgXG4gICAqIGFycmF5IGluIHRoZSByZXNvdXJjZSB0eXBlIHNjaGVtYSAoZS5nLiBgRGF0YWJhc2VOYW1lfFRhYmxlTmFtZWAgZm9yIGBBV1M6OkdsdWU6OlRhYmxlYCkuXG4gICAqXG4gICAqIENsb3VkRm9ybWF0aW9uJ3MgYFBoeXNpY2FsUmVzb3VyY2VJZGAgKHRoZSBgcGh5c2ljYWxJZGAgcGFyYW1ldGVyIGhlcmUpIGlzIHRoZSBgUmVmYCByZXR1cm5cbiAgICogdmFsdWUgZm9yIHRoZSByZXNvdXJjZSwgd2hpY2ggaXMgcmVzb3VyY2UtdHlwZS1zcGVjaWZpYyBhbmQgbWF5IG5vdCBjb3JyZXNwb25kIHRvIHRoZSBDbG91ZFxuICAgKiBDb250cm9sIFByaW1hcnkgSWRlbnRpZmllci5cbiAgICpcbiAgICogRm9yIHByb3BlcnRpZXMgcHJlc2VudCBpbiB0aGUgdGVtcGxhdGUsIHdlIHJlc29sdmUgdGhlbSBkaXJlY3RseS4gRm9yIHByb3BlcnRpZXMgTk9UIGluIHRoZVxuICAgKiB0ZW1wbGF0ZSAoZS5nLiBzZXJ2aWNlLWdlbmVyYXRlZCByZWFkLW9ubHkgdmFsdWVzKSwgd2UgZmFsbCBiYWNrIHRvIGBwaHlzaWNhbElkYC4gVGhpcyBpc1xuICAgKiBvbmx5IGNvcnJlY3Qgd2hlbjpcbiAgICpcbiAgICogLSBFeGFjdGx5IG9uZSBwcm9wZXJ0eSBpbiB0aGUgaWRlbnRpZmllciBpcyBtaXNzaW5nIGZyb20gdGhlIHRlbXBsYXRlLCBBTkRcbiAgICogLSBUaGF0IHByb3BlcnR5IGhhcHBlbnMgdG8gYmUgdGhlIG9uZSB0aGF0IGBSZWZgIHJldHVybnMgZm9yIHRoaXMgcmVzb3VyY2UgdHlwZS5cbiAgICpcbiAgICogSWYgbXVsdGlwbGUgcHJvcGVydGllcyBhcmUgbWlzc2luZywgYHBoeXNpY2FsSWRgIGlzIHJldXNlZCBmb3IgYWxsIG9mIHRoZW0uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXZhbHVhdGVDbG91ZENvbnRyb2xJZGVudGlmaWVyKGxvZ2ljYWxJZDogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZywgcGh5c2ljYWxJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAocmVzb3VyY2VUeXBlIGluIFJFU09VUkNFX1RZUEVfUFJJTUFSWV9JREVOVElGSUVSUykge1xuICAgICAgY29uc3QgcHJpbWFyeVByb3BzID0gUkVTT1VSQ0VfVFlQRV9QUklNQVJZX0lERU5USUZJRVJTW3Jlc291cmNlVHlwZV07XG4gICAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBwcmltYXJ5UHJvcHMpIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVWYWwgPSB0aGlzLmdldFJlc291cmNlUHJvcGVydHkobG9naWNhbElkLCBwcm9wTmFtZSk7XG4gICAgICAgIGlmICh0ZW1wbGF0ZVZhbCkge1xuICAgICAgICAgIHBhcnRzLnB1c2goYXdhaXQgdGhpcy5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odGVtcGxhdGVWYWwpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBOb3QgaW4gdGVtcGxhdGUg4oCUIGFzc3VtZSB0aGlzIGlzIHRoZSBSZWYgcmV0dXJuIHZhbHVlLiBTZWUgZG9jIGNvbW1lbnQgZm9yIGNhdmVhdHMuXG4gICAgICAgICAgcGFydHMucHVzaChwaHlzaWNhbElkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJ3wnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBoeXNpY2FsSWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVzb3VyY2VQcm9wZXJ0eShsb2dpY2FsSWQ6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlLlJlc291cmNlcz8uW2xvZ2ljYWxJZF0/LlByb3BlcnRpZXM/Lltwcm9wZXJ0eU5hbWVdO1xuICB9XG5cbiAgcHVibGljIG1ldGFkYXRhRm9yKGxvZ2ljYWxJZDogc3RyaW5nKTogUmVzb3VyY2VNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHJlc291cmNlTWV0YWRhdGEodGhpcy5zdGFja0FydGlmYWN0LCBsb2dpY2FsSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZlcmVuY2VzKGxvZ2ljYWxJZDogc3RyaW5nLCB0ZW1wbGF0ZUVsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdGVtcGxhdGVFbGVtZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGxvZ2ljYWxJZCA9PT0gdGVtcGxhdGVFbGVtZW50O1xuICAgIH1cblxuICAgIGlmICh0ZW1wbGF0ZUVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRlbXBsYXRlRWxlbWVudCkpIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZUVsZW1lbnQuc29tZSgoZWwpID0+IHRoaXMucmVmZXJlbmNlcyhsb2dpY2FsSWQsIGVsKSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0ZW1wbGF0ZUVsZW1lbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0ZW1wbGF0ZUVsZW1lbnQpLnNvbWUoKGVsKSA9PiB0aGlzLnJlZmVyZW5jZXMobG9naWNhbElkLCBlbCkpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VJbnRyaW5zaWMoeDogYW55KTogSW50cmluc2ljIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoeCk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAxICYmIChrZXlzWzBdLnN0YXJ0c1dpdGgoJ0ZuOjonKSB8fCBrZXlzWzBdID09PSAnUmVmJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGtleXNbMF0sXG4gICAgICAgIGFyZ3M6IHhba2V5c1swXV0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kUmVmVGFyZ2V0KGxvZ2ljYWxJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAvLyBmaXJzdCwgY2hlY2sgdG8gc2VlIGlmIHRoZSBSZWYgaXMgYSBQYXJhbWV0ZXIgd2hvJ3MgdmFsdWUgd2UgaGF2ZVxuICAgIGlmIChsb2dpY2FsSWQgPT09ICdBV1M6OlVSTFN1ZmZpeCcpIHtcbiAgICAgIGlmICghdGhpcy5jYWNoZWRVcmxTdWZmaXgpIHtcbiAgICAgICAgdGhpcy5jYWNoZWRVcmxTdWZmaXggPSBhd2FpdCB0aGlzLnNkay5nZXRVcmxTdWZmaXgodGhpcy5yZWdpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWRVcmxTdWZmaXg7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGZpbmRpbmcgdGhlIHJlZiBpbiB0aGUgcGFzc2VkIGluIHBhcmFtZXRlcnNcbiAgICBjb25zdCBwYXJhbWV0ZXJUYXJnZXQgPSB0aGlzLmNvbnRleHRbbG9naWNhbElkXTtcbiAgICBpZiAocGFyYW1ldGVyVGFyZ2V0KSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyVGFyZ2V0O1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBpbiB0aGUgcGFzc2VkIGluIHBhcmFtZXRlcnMsIHNlZSBpZiB0aGVyZSBpcyBhIGRlZmF1bHQgdmFsdWUgaW4gdGhlIHRlbXBsYXRlIHBhcmFtZXRlciB0aGF0IHdhcyBub3QgcGFzc2VkIGluXG4gICAgY29uc3QgZGVmYXVsdFBhcmFtZXRlclZhbHVlID0gdGhpcy50ZW1wbGF0ZS5QYXJhbWV0ZXJzPy5bbG9naWNhbElkXT8uRGVmYXVsdDtcbiAgICBpZiAoZGVmYXVsdFBhcmFtZXRlclZhbHVlKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFBhcmFtZXRlclZhbHVlO1xuICAgIH1cblxuICAgIC8vIGlmIGl0J3Mgbm90IGEgUGFyYW1ldGVyLCB3ZSBuZWVkIHRvIHNlYXJjaCBpbiB0aGUgY3VycmVudCBTdGFjayByZXNvdXJjZXNcbiAgICByZXR1cm4gdGhpcy5maW5kR2V0QXR0VGFyZ2V0KGxvZ2ljYWxJZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZpbmRHZXRBdHRUYXJnZXQobG9naWNhbElkOiBzdHJpbmcsIGF0dHJpYnV0ZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgLy8gSGFuZGxlIGNhc2Ugd2hlcmUgdGhlIGF0dHJpYnV0ZSBpcyByZWZlcmVuY2luZyBhIHN0YWNrIG91dHB1dCAodXNlZCBpbiBuZXN0ZWQgc3RhY2tzIHRvIHNoYXJlIHBhcmFtZXRlcnMpXG4gICAgLy8gU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3F1aWNrcmVmLWNsb3VkZm9ybWF0aW9uLmh0bWwjdzJhYjFjMTdjMjNjMTliNVxuICAgIGlmIChsb2dpY2FsSWQgPT09ICdPdXRwdXRzJyAmJiBhdHRyaWJ1dGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih0aGlzLnRlbXBsYXRlLk91dHB1dHNbYXR0cmlidXRlXT8uVmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5zdGFja1Jlc291cmNlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICBjb25zdCBmb3VuZFJlc291cmNlID0gc3RhY2tSZXNvdXJjZXMuZmluZCgoc3IpID0+IHNyLkxvZ2ljYWxSZXNvdXJjZUlkID09PSBsb2dpY2FsSWQpO1xuICAgIGlmICghZm91bmRSZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoZm91bmRSZXNvdXJjZS5SZXNvdXJjZVR5cGUgPT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyAmJiBhdHRyaWJ1dGU/LnN0YXJ0c1dpdGgoJ091dHB1dHMuJykpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGFudFN0YWNrID0gdGhpcy5maW5kTmVzdGVkU3RhY2sobG9naWNhbElkLCB0aGlzLm5lc3RlZFN0YWNrcyk7XG4gICAgICBpZiAoIWRlcGVuZGFudFN0YWNrIHx8ICFkZXBlbmRhbnRTdGFjay5waHlzaWNhbE5hbWUpIHtcbiAgICAgICAgLy8gdGhpcyBpcyBhIG5ld2x5IGNyZWF0ZWQgbmVzdGVkIHN0YWNrIGFuZCBjYW5ub3QgYmUgaG90c3dhcHBlZFxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZXZhbHVhdGVDZm5UZW1wbGF0ZSA9IGF3YWl0IHRoaXMuY3JlYXRlTmVzdGVkRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKFxuICAgICAgICBkZXBlbmRhbnRTdGFjay5waHlzaWNhbE5hbWUsXG4gICAgICAgIGRlcGVuZGFudFN0YWNrLmdlbmVyYXRlZFRlbXBsYXRlLFxuICAgICAgICBkZXBlbmRhbnRTdGFjay5nZW5lcmF0ZWRUZW1wbGF0ZS5QYXJhbWV0ZXJzISxcbiAgICAgICk7XG5cbiAgICAgIC8vIFNwbGl0IE91dHB1dHMuPHJlZk5hbWU+IGludG8gJ091dHB1dHMnIGFuZCAnPHJlZk5hbWU+JyBhbmQgcmVjdXJzaXZlbHkgY2FsbCBldmFsdWF0ZVxuICAgICAgcmV0dXJuIGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHtcbiAgICAgICAgJ0ZuOjpHZXRBdHQnOiBhdHRyaWJ1dGUuc3BsaXQoL1xcLiguKikvcyksXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gbm93LCB3ZSBuZWVkIHRvIGZvcm1hdCB0aGUgYXBwcm9wcmlhdGUgaWRlbnRpZmllciBkZXBlbmRpbmcgb24gdGhlIHJlc291cmNlIHR5cGUsXG4gICAgLy8gYW5kIHRoZSByZXF1ZXN0ZWQgYXR0cmlidXRlIG5hbWVcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRSZXNvdXJjZUF0dHJpYnV0ZShmb3VuZFJlc291cmNlLCBhdHRyaWJ1dGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTmVzdGVkU3RhY2soXG4gICAgbG9naWNhbElkOiBzdHJpbmcsXG4gICAgbmVzdGVkU3RhY2tzOiB7XG4gICAgICBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzO1xuICAgIH0sXG4gICk6IE5lc3RlZFN0YWNrVGVtcGxhdGVzIHwgdW5kZWZpbmVkIHtcbiAgICBmb3IgKGNvbnN0IG5lc3RlZFN0YWNrTG9naWNhbElkIG9mIE9iamVjdC5rZXlzKG5lc3RlZFN0YWNrcykpIHtcbiAgICAgIGlmIChuZXN0ZWRTdGFja0xvZ2ljYWxJZCA9PT0gbG9naWNhbElkKSB7XG4gICAgICAgIHJldHVybiBuZXN0ZWRTdGFja3NbbmVzdGVkU3RhY2tMb2dpY2FsSWRdO1xuICAgICAgfVxuICAgICAgY29uc3QgY2hlY2tJbk5lc3RlZENoaWxkU3RhY2tzID0gdGhpcy5maW5kTmVzdGVkU3RhY2soXG4gICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgbmVzdGVkU3RhY2tzW25lc3RlZFN0YWNrTG9naWNhbElkXS5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICAgICk7XG4gICAgICBpZiAoY2hlY2tJbk5lc3RlZENoaWxkU3RhY2tzKSByZXR1cm4gY2hlY2tJbk5lc3RlZENoaWxkU3RhY2tzO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmb3JtYXRSZXNvdXJjZUF0dHJpYnV0ZShyZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnksIGF0dHJpYnV0ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwaHlzaWNhbElkID0gcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkO1xuXG4gICAgLy8gbm8gYXR0cmlidXRlIG1lYW5zIFJlZiBleHByZXNzaW9uLCBmb3Igd2hpY2ggd2UgdXNlIHRoZSBwaHlzaWNhbCBJRCBkaXJlY3RseVxuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gcGh5c2ljYWxJZDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZVR5cGVGb3JtYXRzID0gUkVTT1VSQ0VfVFlQRV9BVFRSSUJVVEVTX0ZPUk1BVFNbcmVzb3VyY2UuUmVzb3VyY2VUeXBlIV07XG4gICAgaWYgKHJlc291cmNlVHlwZUZvcm1hdHMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZUZvcm1hdEZ1bmMgPSByZXNvdXJjZVR5cGVGb3JtYXRzW2F0dHJpYnV0ZV07XG4gICAgICBpZiAoYXR0cmlidXRlRm9ybWF0RnVuYykge1xuICAgICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5nZXRTZXJ2aWNlT2ZSZXNvdXJjZShyZXNvdXJjZSk7XG4gICAgICAgIGNvbnN0IHJlc291cmNlVHlwZUFyblBhcnQgPSB0aGlzLmdldFJlc291cmNlVHlwZUFyblBhcnRPZlJlc291cmNlKHJlc291cmNlKTtcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZUZvcm1hdEZ1bmMoe1xuICAgICAgICAgIHBhcnRpdGlvbjogdGhpcy5wYXJ0aXRpb24sXG4gICAgICAgICAgc2VydmljZSxcbiAgICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlVHlwZUFyblBhcnQsXG4gICAgICAgICAgcmVzb3VyY2VOYW1lOiBwaHlzaWNhbElkISxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBhd2FpdCB0aGlzLmV2YWx1YXRlQ2xvdWRDb250cm9sSWRlbnRpZmllcihyZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZCEsIHJlc291cmNlLlJlc291cmNlVHlwZSEsIHBoeXNpY2FsSWQhKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsb3VkQ29udHJvbC5nZXRSZXNvdXJjZSh7XG4gICAgICAgIFR5cGVOYW1lOiByZXNvdXJjZS5SZXNvdXJjZVR5cGUhLFxuICAgICAgICBJZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBwcm9wcyA9IEpTT04ucGFyc2UocmVzcG9uc2UuUmVzb3VyY2VEZXNjcmlwdGlvbj8uUHJvcGVydGllcyA/PyAne30nKTtcbiAgICAgIGlmIChhdHRyaWJ1dGUgaW4gcHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzW2F0dHJpYnV0ZV07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgLy8gQ2xvdWQgQ29udHJvbCBsb29rdXAgZmFpbGVkIOKAlCBmYWxsIHRocm91Z2ggdG8gdGhlIGVycm9yIGJlbG93XG4gICAgICB0aHJvdyBuZXcgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbihgQ291bGQgbm90IGZpbmQgJyR7YXR0cmlidXRlfScgYXR0cmlidXRlIG9mIHRoZSAnJHtyZXNvdXJjZS5SZXNvdXJjZVR5cGV9JyByZXNvdXJjZSBiZWNhdXNlYCArXG4gICAgICAgIGBhbiBlcnJvciBvY2N1cmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gcmV0cmlldmUgdGhlIGluZm9ybWF0aW9uOiAnJHtlcnJvci5uYW1lfToke2Vycm9yLm1lc3NhZ2V9J2ApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBDZm5FdmFsdWF0aW9uRXhjZXB0aW9uKFxuICAgICAgYFdlIGRvbid0IHN1cHBvcnQgdGhlICcke2F0dHJpYnV0ZX0nIGF0dHJpYnV0ZSBvZiB0aGUgJyR7cmVzb3VyY2UuUmVzb3VyY2VUeXBlfScgcmVzb3VyY2UuIFRoaXMgaXMgYSBDREsgbGltaXRhdGlvbi4gYCArXG4gICAgICAgICdQbGVhc2UgcmVwb3J0IGl0IGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvbmV3L2Nob29zZScsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VydmljZU9mUmVzb3VyY2UocmVzb3VyY2U6IFN0YWNrUmVzb3VyY2VTdW1tYXJ5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb3VyY2UuUmVzb3VyY2VUeXBlIS5zcGxpdCgnOjonKVsxXS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXNvdXJjZVR5cGVBcm5QYXJ0T2ZSZXNvdXJjZShyZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IHJlc291cmNlLlJlc291cmNlVHlwZSE7XG4gICAgY29uc3Qgc3BlY2lhbENhc2VSZXNvdXJjZVR5cGUgPSBSRVNPVVJDRV9UWVBFX1NQRUNJQUxfTkFNRVNbcmVzb3VyY2VUeXBlXT8ucmVzb3VyY2VUeXBlO1xuICAgIHJldHVybiBzcGVjaWFsQ2FzZVJlc291cmNlVHlwZVxuICAgICAgPyBzcGVjaWFsQ2FzZVJlc291cmNlVHlwZVxuICAgICAgOiAvLyB0aGlzIGlzIHRoZSBkZWZhdWx0IGNhc2VcbiAgICAgIHJlc291cmNlVHlwZS5zcGxpdCgnOjonKVsyXS50b0xvd2VyQ2FzZSgpO1xuICB9XG59XG5cbmludGVyZmFjZSBBcm5QYXJ0cyB7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSByZXNvdXJjZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvdXJjZXMgd2hlcmUgdGhlIENsb3VkRm9ybWF0aW9uIHBoeXNpY2FsIHJlc291cmNlIElEICh7IFJlZiB9KSBkaXNhZ3JlZXNcbiAqIHdpdGggdGhlIENsb3VkIENvbnRyb2wgQVBJIHByaW1hcnkgaWRlbnRpZmllci5cbiAqXG4gKiBNYXBzIHJlc291cmNlIHR5cGUgdG8gdGhlIENDIHByaW1hcnkgaWRlbnRpZmllciBwcm9wZXJ0eSBuYW1lcy5cbiAqIEZvciByZXNvdXJjZXMgTk9UIGluIHRoaXMgbWFwLCB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgSUQgY2FuIGJlIHVzZWRcbiAqIGRpcmVjdGx5IGFzIHRoZSBDQyBwcmltYXJ5IGlkZW50aWZpZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9UWVBFX1BSSU1BUllfSURFTlRJRklFUlM6IHsgW3R5cGU6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7XG4gICdBV1M6OkFwaUdhdGV3YXk6OkF1dGhvcml6ZXInOiBbJ1Jlc3RBcGlJZCcsICdBdXRob3JpemVySWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6RGVwbG95bWVudCc6IFsnRGVwbG95bWVudElkJywgJ1Jlc3RBcGlJZCddLFxuICAnQVdTOjpBcGlHYXRld2F5OjpNb2RlbCc6IFsnUmVzdEFwaUlkJywgJ05hbWUnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6UmVxdWVzdFZhbGlkYXRvcic6IFsnUmVzdEFwaUlkJywgJ1JlcXVlc3RWYWxpZGF0b3JJZCddLFxuICAnQVdTOjpBcGlHYXRld2F5OjpEb2N1bWVudGF0aW9uUGFydCc6IFsnRG9jdW1lbnRhdGlvblBhcnRJZCcsICdSZXN0QXBpSWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6UmVzb3VyY2UnOiBbJ1Jlc3RBcGlJZCcsICdSZXNvdXJjZUlkJ10sXG4gICdBV1M6OkFwaUdhdGV3YXk6OlN0YWdlJzogWydSZXN0QXBpSWQnLCAnU3RhZ2VOYW1lJ10sXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZyc6IFsnQXBpTWFwcGluZ0lkJywgJ0RvbWFpbk5hbWUnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpBdXRob3JpemVyJzogWydBdXRob3JpemVySWQnLCAnQXBpSWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpEZXBsb3ltZW50JzogWydBcGlJZCcsICdEZXBsb3ltZW50SWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbic6IFsnQXBpSWQnLCAnSW50ZWdyYXRpb25JZCddLFxuICAnQVdTOjpBcGlHYXRld2F5VjI6OkludGVncmF0aW9uUmVzcG9uc2UnOiBbJ0FwaUlkJywgJ0ludGVncmF0aW9uSWQnLCAnSW50ZWdyYXRpb25SZXNwb25zZUlkJ10sXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6TW9kZWwnOiBbJ0FwaUlkJywgJ01vZGVsSWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpSb3V0ZSc6IFsnQXBpSWQnLCAnUm91dGVJZCddLFxuICAnQVdTOjpBcGlHYXRld2F5VjI6OlJvdXRlUmVzcG9uc2UnOiBbJ0FwaUlkJywgJ1JvdXRlSWQnLCAnUm91dGVSZXNwb25zZUlkJ10sXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnOiBbJ0lkJ10sXG4gICdBV1M6OkFwcENvbmZpZzo6Q29uZmlndXJhdGlvblByb2ZpbGUnOiBbJ0FwcGxpY2F0aW9uSWQnLCAnQ29uZmlndXJhdGlvblByb2ZpbGVJZCddLFxuICAnQVdTOjpBcHBDb25maWc6OkVudmlyb25tZW50JzogWydBcHBsaWNhdGlvbklkJywgJ0Vudmlyb25tZW50SWQnXSxcbiAgJ0FXUzo6QXBwQ29uZmlnOjpIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbic6IFsnQXBwbGljYXRpb25JZCcsICdDb25maWd1cmF0aW9uUHJvZmlsZUlkJywgJ1ZlcnNpb25OdW1iZXInXSxcbiAgJ0FXUzo6QXBwTWVzaDo6R2F0ZXdheVJvdXRlJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpNZXNoJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpSb3V0ZSc6IFsnSWQnXSxcbiAgJ0FXUzo6QXBwTWVzaDo6VmlydHVhbEdhdGV3YXknOiBbJ0lkJ10sXG4gICdBV1M6OkFwcE1lc2g6OlZpcnR1YWxOb2RlJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpWaXJ0dWFsUm91dGVyJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpWaXJ0dWFsU2VydmljZSc6IFsnSWQnXSxcbiAgJ0FXUzo6QXBwU3luYzo6QXBpS2V5JzogWydBcGlLZXlJZCddLFxuICAnQVdTOjpBcHBTeW5jOjpHcmFwaFFMQXBpJzogWydBcGlJZCddLFxuICAnQVdTOjpCYXRjaDo6Sm9iRGVmaW5pdGlvbic6IFsnSm9iRGVmaW5pdGlvbk5hbWUnXSxcbiAgJ0FXUzo6Q2xvdWRXYXRjaDo6SW5zaWdodFJ1bGUnOiBbJ0lkJ10sXG4gICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCc6IFsnSWQnXSxcbiAgJ0FXUzo6Q29kZUJ1aWxkOjpSZXBvcnRHcm91cCc6IFsnSWQnXSxcbiAgJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJzogWydBcHBsaWNhdGlvbk5hbWUnLCAnRGVwbG95bWVudEdyb3VwTmFtZSddLFxuICAnQVdTOjpDb2RlUGlwZWxpbmU6OldlYmhvb2snOiBbJ0lkJ10sXG4gICdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50JzogWydVc2VyUG9vbElkJywgJ0NsaWVudElkJ10sXG4gICdBV1M6OkNvZ25pdG86OlVzZXJQb29sRG9tYWluJzogWydVc2VyUG9vbElkJywgJ0RvbWFpbiddLFxuICAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbEdyb3VwJzogWydVc2VyUG9vbElkJywgJ0dyb3VwTmFtZSddLFxuICAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbElkZW50aXR5UHJvdmlkZXInOiBbJ1VzZXJQb29sSWQnLCAnUHJvdmlkZXJOYW1lJ10sXG4gICdBV1M6OkNvZ25pdG86OlVzZXJQb29sUmVzb3VyY2VTZXJ2ZXInOiBbJ1VzZXJQb29sSWQnLCAnSWRlbnRpZmllciddLFxuICAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbFVzZXInOiBbJ1VzZXJQb29sSWQnLCAnVXNlcm5hbWUnXSxcbiAgJ0FXUzo6REFYOjpDbHVzdGVyJzogWydJZCddLFxuICAnQVdTOjpEQVg6OlBhcmFtZXRlckdyb3VwJzogWydJZCddLFxuICAnQVdTOjpEQVg6OlN1Ym5ldEdyb3VwJzogWydJZCddLFxuICAnQVdTOjpETVM6OkV2ZW50U3Vic2NyaXB0aW9uJzogWydJZCddLFxuICAnQVdTOjpFQzI6OkVJUCc6IFsnUHVibGljSXAnLCAnQWxsb2NhdGlvbklkJ10sXG4gICdBV1M6OkVDUzo6U2VydmljZSc6IFsnU2VydmljZUFybicsICdDbHVzdGVyJ10sXG4gICdBV1M6OkVsYXN0aUNhY2hlOjpDYWNoZUNsdXN0ZXInOiBbJ0lkJ10sXG4gICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nOjpMb2FkQmFsYW5jZXInOiBbJ0lkJ10sXG4gICdBV1M6OkVsYXN0aUNhY2hlOjpVc2VyJzogWydVc2VySWQnXSxcbiAgJ0FXUzo6RWxhc3RpY3NlYXJjaDo6RG9tYWluJzogWydJZCddLFxuICAnQVdTOjpFdmVudHM6OlJ1bGUnOiBbJ0FybiddLFxuICAnQVdTOjpFdmVudFNjaGVtYXM6OlJlZ2lzdHJ5UG9saWN5JzogWydJZCddLFxuICAnQVdTOjpHbHVlOjpEZXZFbmRwb2ludCc6IFsnSWQnXSxcbiAgJ0FXUzo6R2x1ZTo6V29ya2Zsb3cnOiBbJ0lkJ10sXG4gICdBV1M6OklvVDo6UG9saWN5JzogWydJZCddLFxuICAnQVdTOjpMb2dzOjpMb2dTdHJlYW0nOiBbJ0xvZ0dyb3VwTmFtZScsICdMb2dTdHJlYW1OYW1lJ10sXG4gICdBV1M6OkxvZ3M6OlN1YnNjcmlwdGlvbkZpbHRlcic6IFsnRmlsdGVyTmFtZScsICdMb2dHcm91cE5hbWUnXSxcbiAgJ0FXUzo6TWVkaWFDb252ZXJ0OjpKb2JUZW1wbGF0ZSc6IFsnSWQnXSxcbiAgJ0FXUzo6TWVkaWFDb252ZXJ0OjpQcmVzZXQnOiBbJ0lkJ10sXG4gICdBV1M6Ok1lZGlhQ29udmVydDo6UXVldWUnOiBbJ0lkJ10sXG4gICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCc6IFsnSWQnXSxcbiAgJ0FXUzo6U2FnZU1ha2VyOjpEZXZpY2UnOiBbJ0RldmljZS9EZXZpY2VOYW1lJ10sXG4gICdBV1M6OlNlY3JldHNNYW5hZ2VyOjpSZXNvdXJjZVBvbGljeSc6IFsnSWQnXSxcbiAgJ0FXUzo6U2VjcmV0c01hbmFnZXI6OlNlY3JldFRhcmdldEF0dGFjaG1lbnQnOiBbJ0lkJ10sXG4gICdBV1M6OlNFUzo6UmVjZWlwdFJ1bGVTZXQnOiBbJ0lkJ10sXG4gICdBV1M6OlNTTTo6TWFpbnRlbmFuY2VXaW5kb3dUYXJnZXQnOiBbJ1dpbmRvd0lkJywgJ1dpbmRvd1RhcmdldElkJ10sXG4gICdBV1M6OlNTTTo6TWFpbnRlbmFuY2VXaW5kb3dUYXNrJzogWydXaW5kb3dJZCcsICdXaW5kb3dUYXNrSWQnXSxcbn07XG5cbi8qKlxuICogVXN1YWxseSwgd2UgZGVkdWNlIHRoZSBuYW1lcyBvZiB0aGUgc2VydmljZSBhbmQgdGhlIHJlc291cmNlIHR5cGUgdXNlZCB0byBmb3JtYXQgdGhlIEFSTiBmcm9tIHRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlLlxuICogRm9yIGEgQ0ZOIHR5cGUgbGlrZSBBV1M6OlNlcnZpY2U6OlJlc291cmNlVHlwZSwgdGhlIHNlY29uZCBzZWdtZW50IGJlY29tZXMgdGhlIHNlcnZpY2UgbmFtZSwgYW5kIHRoZSB0aGlyZCB0aGUgcmVzb3VyY2UgdHlwZVxuICogKGFmdGVyIGNvbnZlcnRpbmcgYm90aCBvZiB0aGVtIHRvIGxvd2VyY2FzZSkuXG4gKiBIb3dldmVyLCBzb21lIHJlc291cmNlIHR5cGVzIGJyZWFrIHRoaXMgc2ltcGxlIGNvbnZlbnRpb24sIGFuZCB3ZSBuZWVkIHRvIHNwZWNpYWwtY2FzZSB0aGVtLlxuICogVGhpcyBtYXAgaXMgZm9yIHN0b3JpbmcgdGhvc2UgY2FzZXMuXG4gKi9cbmNvbnN0IFJFU09VUkNFX1RZUEVfU1BFQ0lBTF9OQU1FUzoge1xuICBbdHlwZTogc3RyaW5nXTogeyByZXNvdXJjZVR5cGU6IHN0cmluZyB9O1xufSA9IHtcbiAgJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cyc6IHtcbiAgICByZXNvdXJjZVR5cGU6ICdldmVudC1idXMnLFxuICB9LFxufTtcblxuY29uc3QgUkVTT1VSQ0VfVFlQRV9BVFRSSUJVVEVTX0ZPUk1BVFM6IHtcbiAgW3R5cGU6IHN0cmluZ106IHsgW2F0dHJpYnV0ZTogc3RyaW5nXTogKHBhcnRzOiBBcm5QYXJ0cykgPT4gc3RyaW5nIH07XG59ID0ge1xuICAnQVdTOjpJQU06OlJvbGUnOiB7IEFybjogaWFtQXJuRm10IH0sXG4gICdBV1M6OklBTTo6VXNlcic6IHsgQXJuOiBpYW1Bcm5GbXQgfSxcbiAgJ0FXUzo6SUFNOjpHcm91cCc6IHsgQXJuOiBpYW1Bcm5GbXQgfSxcbiAgJ0FXUzo6UzM6OkJ1Y2tldCc6IHsgQXJuOiBzM0FybkZtdCB9LFxuICAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJzogeyBBcm46IHN0ZENvbG9uUmVzb3VyY2VBcm5GbXQgfSxcbiAgJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cyc6IHtcbiAgICBBcm46IHN0ZFNsYXNoUmVzb3VyY2VBcm5GbXQsXG4gICAgLy8gdGhlIG5hbWUgYXR0cmlidXRlIG9mIHRoZSBFdmVudEJ1cyBpcyB0aGUgc2FtZSBhcyB0aGUgUmVmXG4gICAgTmFtZTogKHBhcnRzKSA9PiBwYXJ0cy5yZXNvdXJjZU5hbWUsXG4gIH0sXG4gICdBV1M6OkR5bmFtb0RCOjpUYWJsZSc6IHsgQXJuOiBzdGRTbGFzaFJlc291cmNlQXJuRm10IH0sXG4gICdBV1M6OkFwcFN5bmM6OkdyYXBoUUxBcGknOiB7IEFwaUlkOiBhcHBzeW5jR3JhcGhRbEFwaUFwaUlkRm10IH0sXG4gICdBV1M6OkFwcFN5bmM6OkZ1bmN0aW9uQ29uZmlndXJhdGlvbic6IHtcbiAgICBGdW5jdGlvbklkOiBhcHBzeW5jR3JhcGhRbEZ1bmN0aW9uSURGbXQsXG4gIH0sXG4gICdBV1M6OkFwcFN5bmM6OkRhdGFTb3VyY2UnOiB7IE5hbWU6IGFwcHN5bmNHcmFwaFFsRGF0YVNvdXJjZU5hbWVGbXQgfSxcbiAgJ0FXUzo6S01TOjpLZXknOiB7IEFybjogc3RkU2xhc2hSZXNvdXJjZUFybkZtdCB9LFxufTtcblxuZnVuY3Rpb24gaWFtQXJuRm10KHBhcnRzOiBBcm5QYXJ0cyk6IHN0cmluZyB7XG4gIC8vIHdlIHNraXAgcmVnaW9uIGZvciBJQU0gcmVzb3VyY2VzXG4gIHJldHVybiBgYXJuOiR7cGFydHMucGFydGl0aW9ufToke3BhcnRzLnNlcnZpY2V9Ojoke3BhcnRzLmFjY291bnR9OiR7cGFydHMucmVzb3VyY2VUeXBlfS8ke3BhcnRzLnJlc291cmNlTmFtZX1gO1xufVxuXG5mdW5jdGlvbiBzM0FybkZtdChwYXJ0czogQXJuUGFydHMpOiBzdHJpbmcge1xuICAvLyB3ZSBza2lwIGFjY291bnQsIHJlZ2lvbiBhbmQgcmVzb3VyY2VUeXBlIGZvciBTMyByZXNvdXJjZXNcbiAgcmV0dXJuIGBhcm46JHtwYXJ0cy5wYXJ0aXRpb259OiR7cGFydHMuc2VydmljZX06Ojoke3BhcnRzLnJlc291cmNlTmFtZX1gO1xufVxuXG5mdW5jdGlvbiBzdGRDb2xvblJlc291cmNlQXJuRm10KHBhcnRzOiBBcm5QYXJ0cyk6IHN0cmluZyB7XG4gIC8vIHRoaXMgaXMgYSBzdGFuZGFyZCBmb3JtYXQgZm9yIEFSTnMgbGlrZTogYXJuOmF3czpzZXJ2aWNlOnJlZ2lvbjphY2NvdW50OnJlc291cmNlVHlwZTpyZXNvdXJjZU5hbWVcbiAgcmV0dXJuIGBhcm46JHtwYXJ0cy5wYXJ0aXRpb259OiR7cGFydHMuc2VydmljZX06JHtwYXJ0cy5yZWdpb259OiR7cGFydHMuYWNjb3VudH06JHtwYXJ0cy5yZXNvdXJjZVR5cGV9OiR7cGFydHMucmVzb3VyY2VOYW1lfWA7XG59XG5cbmZ1bmN0aW9uIHN0ZFNsYXNoUmVzb3VyY2VBcm5GbXQocGFydHM6IEFyblBhcnRzKTogc3RyaW5nIHtcbiAgLy8gdGhpcyBpcyBhIHN0YW5kYXJkIGZvcm1hdCBmb3IgQVJOcyBsaWtlOiBhcm46YXdzOnNlcnZpY2U6cmVnaW9uOmFjY291bnQ6cmVzb3VyY2VUeXBlL3Jlc291cmNlTmFtZVxuICByZXR1cm4gYGFybjoke3BhcnRzLnBhcnRpdGlvbn06JHtwYXJ0cy5zZXJ2aWNlfToke3BhcnRzLnJlZ2lvbn06JHtwYXJ0cy5hY2NvdW50fToke3BhcnRzLnJlc291cmNlVHlwZX0vJHtwYXJ0cy5yZXNvdXJjZU5hbWV9YDtcbn1cblxuZnVuY3Rpb24gYXBwc3luY0dyYXBoUWxBcGlBcGlJZEZtdChwYXJ0czogQXJuUGFydHMpOiBzdHJpbmcge1xuICAvLyBhcm46YXdzOmFwcHN5bmM6dXMtZWFzdC0xOjExMTExMTExMTExMTphcGlzLzxhcGlJZD5cbiAgcmV0dXJuIHBhcnRzLnJlc291cmNlTmFtZS5zcGxpdCgnLycpWzFdO1xufVxuXG5mdW5jdGlvbiBhcHBzeW5jR3JhcGhRbEZ1bmN0aW9uSURGbXQocGFydHM6IEFyblBhcnRzKTogc3RyaW5nIHtcbiAgLy8gYXJuOmF3czphcHBzeW5jOnVzLWVhc3QtMToxMTExMTExMTExMTE6YXBpcy88YXBpSWQ+L2Z1bmN0aW9ucy88ZnVuY3Rpb25JZD5cbiAgcmV0dXJuIHBhcnRzLnJlc291cmNlTmFtZS5zcGxpdCgnLycpWzNdO1xufVxuXG5mdW5jdGlvbiBhcHBzeW5jR3JhcGhRbERhdGFTb3VyY2VOYW1lRm10KHBhcnRzOiBBcm5QYXJ0cyk6IHN0cmluZyB7XG4gIC8vIGFybjphd3M6YXBwc3luYzp1cy1lYXN0LTE6MTExMTExMTExMTExOmFwaXMvPGFwaUlkPi9kYXRhc291cmNlcy88bmFtZT5cbiAgcmV0dXJuIHBhcnRzLnJlc291cmNlTmFtZS5zcGxpdCgnLycpWzNdO1xufVxuXG5pbnRlcmZhY2UgSW50cmluc2ljIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBhcmdzOiBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFzeW5jR2xvYmFsUmVwbGFjZShzdHI6IHN0cmluZywgcmVnZXg6IFJlZ0V4cCwgY2I6ICh4OiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmICghcmVnZXguZ2xvYmFsKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignUmVnZXhNaXNzaW5nR2xvYmFsRmxhZycsICdSZWdleCBtdXN0IGJlIGNyZWF0ZWQgd2l0aCAvZyBmbGFnJyk7XG4gIH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBsZXQgc3RhcnQgPSAwO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhzdHIpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldC5wdXNoKHN0ci5zdWJzdHJpbmcoc3RhcnQsIG1hdGNoLmluZGV4KSk7XG4gICAgcmV0LnB1c2goYXdhaXQgY2IobWF0Y2hbMV0pKTtcblxuICAgIHN0YXJ0ID0gcmVnZXgubGFzdEluZGV4O1xuICB9XG4gIHJldC5wdXNoKHN0ci5zbGljZShzdGFydCkpO1xuXG4gIHJldHVybiByZXQuam9pbignJyk7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./evaluate-cloudformation-template\"), exports);\n__exportStar(require(\"./template-body-parameter\"), exports);\n__exportStar(require(\"./nested-stack-helpers\"), exports);\n__exportStar(require(\"./stack-helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUVBQW1EO0FBQ25ELDREQUEwQztBQUMxQyx5REFBdUM7QUFDdkMsa0RBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlLWJvZHktcGFyYW1ldGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbmVzdGVkLXN0YWNrLWhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFjay1oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadCurrentTemplateWithNestedStacks = loadCurrentTemplateWithNestedStacks;\nexports.loadCurrentTemplate = loadCurrentTemplate;\nexports.templateContainsNestedStacks = templateContainsNestedStacks;\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst evaluate_cloudformation_template_1 = require(\"./evaluate-cloudformation-template\");\nconst stack_helpers_1 = require(\"./stack-helpers\");\nconst util_1 = require(\"../../util\");\n/**\n * Reads the currently deployed template and all of its nested stack templates from CloudFormation.\n */\nasync function loadCurrentTemplateWithNestedStacks(rootStackArtifact, sdk, retrieveProcessedTemplate = false) {\n const deployedRootTemplate = await loadCurrentTemplate(rootStackArtifact, sdk, retrieveProcessedTemplate);\n const nestedStacks = await loadNestedStacks(rootStackArtifact, sdk, {\n generatedTemplate: rootStackArtifact.template,\n deployedTemplate: deployedRootTemplate,\n deployedStackName: rootStackArtifact.stackName,\n });\n return {\n deployedRootTemplate,\n nestedStacks,\n };\n}\n/**\n * Returns the currently deployed template from CloudFormation that corresponds to `stackArtifact`.\n */\nasync function loadCurrentTemplate(stackArtifact, sdk, retrieveProcessedTemplate = false) {\n return loadCurrentStackTemplate(stackArtifact.stackName, sdk, retrieveProcessedTemplate);\n}\nasync function loadCurrentStackTemplate(stackName, sdk, retrieveProcessedTemplate = false) {\n const cfn = sdk.cloudFormation();\n const stack = await stack_helpers_1.CloudFormationStack.lookup(cfn, stackName, retrieveProcessedTemplate);\n return stack.template();\n}\nasync function loadNestedStacks(rootStackArtifact, sdk, parentTemplates) {\n const listStackResources = parentTemplates.deployedStackName\n ? new evaluate_cloudformation_template_1.LazyListStackResources(sdk, parentTemplates.deployedStackName)\n : undefined;\n const nestedStacks = {};\n for (const [nestedStackLogicalId, generatedNestedStackResource] of Object.entries(parentTemplates.generatedTemplate.Resources ?? {})) {\n if (!isCdkManagedNestedStack(generatedNestedStackResource)) {\n continue;\n }\n const assetPath = generatedNestedStackResource.Metadata['aws:asset:path'];\n const nestedStackTemplates = await getNestedStackTemplates(rootStackArtifact, assetPath, nestedStackLogicalId, listStackResources, sdk);\n nestedStacks[nestedStackLogicalId] = {\n deployedTemplate: nestedStackTemplates.deployedTemplate,\n generatedTemplate: nestedStackTemplates.generatedTemplate,\n physicalName: nestedStackTemplates.deployedStackName,\n nestedStackTemplates: await loadNestedStacks(rootStackArtifact, sdk, nestedStackTemplates),\n };\n }\n return nestedStacks;\n}\nasync function getNestedStackTemplates(rootStackArtifact, nestedTemplateAssetPath, nestedStackLogicalId, listStackResources, sdk) {\n const nestedTemplatePath = path.join(rootStackArtifact.assembly.directory, nestedTemplateAssetPath);\n // CFN generates the nested stack name in the form `ParentStackName-NestedStackLogicalID-SomeHashWeCan'tCompute,\n // the arn is of the form: arn:aws:cloudformation:region:123456789012:stack/NestedStackName/AnotherHashWeDon'tNeed\n // so we get the ARN and manually extract the name.\n const nestedStackArn = await getNestedStackArn(nestedStackLogicalId, listStackResources);\n const deployedStackName = nestedStackArn?.slice(nestedStackArn.indexOf('/') + 1, nestedStackArn.lastIndexOf('/'));\n return {\n generatedTemplate: JSON.parse(fs.readFileSync(nestedTemplatePath, 'utf-8')),\n deployedTemplate: deployedStackName ? await loadCurrentStackTemplate(deployedStackName, sdk) : {},\n deployedStackName,\n };\n}\nasync function getNestedStackArn(nestedStackLogicalId, listStackResources) {\n try {\n const stackResources = await listStackResources?.listStackResources();\n return stackResources?.find((sr) => sr.LogicalResourceId === nestedStackLogicalId)?.PhysicalResourceId;\n }\n catch (e) {\n if ((0, util_1.formatErrorMessage)(e).startsWith('Stack with id ') && (0, util_1.formatErrorMessage)(e).endsWith(' does not exist')) {\n return;\n }\n throw e;\n }\n}\nfunction isCdkManagedNestedStack(stackResource) {\n return (stackResource.Type === 'AWS::CloudFormation::Stack' &&\n stackResource.Metadata &&\n stackResource.Metadata['aws:asset:path']);\n}\n/**\n * Returns true if the given template contains any `AWS::CloudFormation::Stack` resources.\n */\nfunction templateContainsNestedStacks(template) {\n return Object.values(template?.Resources ?? {}).some((resource) => resource.Type === 'AWS::CloudFormation::Stack');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLXN0YWNrLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJuZXN0ZWQtc3RhY2staGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSxrRkFnQkM7QUFLRCxrREFNQztBQWdHRCxvRUFJQztBQWxKRCw2QkFBNkI7QUFHN0IsK0JBQStCO0FBQy9CLHlGQUFxRztBQUNyRyxtREFBcUU7QUFDckUscUNBQWdEO0FBVWhEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLG1DQUFtQyxDQUN2RCxpQkFBOEMsRUFDOUMsR0FBUSxFQUNSLDRCQUFxQyxLQUFLO0lBRTFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUMxRyxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtRQUNsRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO1FBQzdDLGdCQUFnQixFQUFFLG9CQUFvQjtRQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTO0tBQy9DLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxvQkFBb0I7UUFDcEIsWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLGFBQTBDLEVBQzFDLEdBQVEsRUFDUiw0QkFBcUMsS0FBSztJQUUxQyxPQUFPLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELEtBQUssVUFBVSx3QkFBd0IsQ0FDckMsU0FBaUIsRUFDakIsR0FBUSxFQUNSLDRCQUFxQyxLQUFLO0lBRTFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1DQUFtQixD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SUFDekcsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsSUFBSSxJQUFBLHlCQUFrQixFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM1RyxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sQ0FBQyxDQUFDO0lBQ1YsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLGFBQWtCO0lBQ2pELE9BQU8sQ0FDTCxhQUFhLENBQUMsSUFBSSxLQUFLLDRCQUE0QjtRQUNuRCxhQUFhLENBQUMsUUFBUTtRQUN0QixhQUFhLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQ3pDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw0QkFBNEIsQ0FBQyxRQUFhO0lBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbEQsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssNEJBQTRCLENBQ2xFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IExhenlMaXN0U3RhY2tSZXNvdXJjZXMsIHR5cGUgTGlzdFN0YWNrUmVzb3VyY2VzIH0gZnJvbSAnLi9ldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvblN0YWNrLCB0eXBlIFRlbXBsYXRlIH0gZnJvbSAnLi9zdGFjay1oZWxwZXJzJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBSb290VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzIHtcbiAgcmVhZG9ubHkgZGVwbG95ZWRSb290VGVtcGxhdGU6IFRlbXBsYXRlO1xuICByZWFkb25seSBuZXN0ZWRTdGFja3M6IHtcbiAgICBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzO1xuICB9O1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjdXJyZW50bHkgZGVwbG95ZWQgdGVtcGxhdGUgYW5kIGFsbCBvZiBpdHMgbmVzdGVkIHN0YWNrIHRlbXBsYXRlcyBmcm9tIENsb3VkRm9ybWF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MoXG4gIHJvb3RTdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNkazogU0RLLFxuICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4pOiBQcm9taXNlPFJvb3RUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3M+IHtcbiAgY29uc3QgZGVwbG95ZWRSb290VGVtcGxhdGUgPSBhd2FpdCBsb2FkQ3VycmVudFRlbXBsYXRlKHJvb3RTdGFja0FydGlmYWN0LCBzZGssIHJldHJpZXZlUHJvY2Vzc2VkVGVtcGxhdGUpO1xuICBjb25zdCBuZXN0ZWRTdGFja3MgPSBhd2FpdCBsb2FkTmVzdGVkU3RhY2tzKHJvb3RTdGFja0FydGlmYWN0LCBzZGssIHtcbiAgICBnZW5lcmF0ZWRUZW1wbGF0ZTogcm9vdFN0YWNrQXJ0aWZhY3QudGVtcGxhdGUsXG4gICAgZGVwbG95ZWRUZW1wbGF0ZTogZGVwbG95ZWRSb290VGVtcGxhdGUsXG4gICAgZGVwbG95ZWRTdGFja05hbWU6IHJvb3RTdGFja0FydGlmYWN0LnN0YWNrTmFtZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkZXBsb3llZFJvb3RUZW1wbGF0ZSxcbiAgICBuZXN0ZWRTdGFja3MsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudGx5IGRlcGxveWVkIHRlbXBsYXRlIGZyb20gQ2xvdWRGb3JtYXRpb24gdGhhdCBjb3JyZXNwb25kcyB0byBgc3RhY2tBcnRpZmFjdGAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQ3VycmVudFRlbXBsYXRlKFxuICBzdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNkazogU0RLLFxuICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4pOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gIHJldHVybiBsb2FkQ3VycmVudFN0YWNrVGVtcGxhdGUoc3RhY2tBcnRpZmFjdC5zdGFja05hbWUsIHNkaywgcmV0cmlldmVQcm9jZXNzZWRUZW1wbGF0ZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRDdXJyZW50U3RhY2tUZW1wbGF0ZShcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gIHNkazogU0RLLFxuICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4pOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gIGNvbnN0IGNmbiA9IHNkay5jbG91ZEZvcm1hdGlvbigpO1xuICBjb25zdCBzdGFjayA9IGF3YWl0IENsb3VkRm9ybWF0aW9uU3RhY2subG9va3VwKGNmbiwgc3RhY2tOYW1lLCByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlKTtcbiAgcmV0dXJuIHN0YWNrLnRlbXBsYXRlKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWROZXN0ZWRTdGFja3MoXG4gIHJvb3RTdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNkazogU0RLLFxuICBwYXJlbnRUZW1wbGF0ZXM6IFN0YWNrVGVtcGxhdGVzLFxuKTogUHJvbWlzZTx7IFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfT4ge1xuICBjb25zdCBsaXN0U3RhY2tSZXNvdXJjZXMgPSBwYXJlbnRUZW1wbGF0ZXMuZGVwbG95ZWRTdGFja05hbWVcbiAgICA/IG5ldyBMYXp5TGlzdFN0YWNrUmVzb3VyY2VzKHNkaywgcGFyZW50VGVtcGxhdGVzLmRlcGxveWVkU3RhY2tOYW1lKVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBuZXN0ZWRTdGFja3M6IHsgW25lc3RlZFN0YWNrTG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9ID0ge307XG4gIGZvciAoY29uc3QgW25lc3RlZFN0YWNrTG9naWNhbElkLCBnZW5lcmF0ZWROZXN0ZWRTdGFja1Jlc291cmNlXSBvZiBPYmplY3QuZW50cmllcyhcbiAgICBwYXJlbnRUZW1wbGF0ZXMuZ2VuZXJhdGVkVGVtcGxhdGUuUmVzb3VyY2VzID8/IHt9LFxuICApKSB7XG4gICAgaWYgKCFpc0Nka01hbmFnZWROZXN0ZWRTdGFjayhnZW5lcmF0ZWROZXN0ZWRTdGFja1Jlc291cmNlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRQYXRoID0gZ2VuZXJhdGVkTmVzdGVkU3RhY2tSZXNvdXJjZS5NZXRhZGF0YVsnYXdzOmFzc2V0OnBhdGgnXTtcbiAgICBjb25zdCBuZXN0ZWRTdGFja1RlbXBsYXRlcyA9IGF3YWl0IGdldE5lc3RlZFN0YWNrVGVtcGxhdGVzKFxuICAgICAgcm9vdFN0YWNrQXJ0aWZhY3QsXG4gICAgICBhc3NldFBhdGgsXG4gICAgICBuZXN0ZWRTdGFja0xvZ2ljYWxJZCxcbiAgICAgIGxpc3RTdGFja1Jlc291cmNlcyxcbiAgICAgIHNkayxcbiAgICApO1xuXG4gICAgbmVzdGVkU3RhY2tzW25lc3RlZFN0YWNrTG9naWNhbElkXSA9IHtcbiAgICAgIGRlcGxveWVkVGVtcGxhdGU6IG5lc3RlZFN0YWNrVGVtcGxhdGVzLmRlcGxveWVkVGVtcGxhdGUsXG4gICAgICBnZW5lcmF0ZWRUZW1wbGF0ZTogbmVzdGVkU3RhY2tUZW1wbGF0ZXMuZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICAgICBwaHlzaWNhbE5hbWU6IG5lc3RlZFN0YWNrVGVtcGxhdGVzLmRlcGxveWVkU3RhY2tOYW1lLFxuICAgICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IGF3YWl0IGxvYWROZXN0ZWRTdGFja3Mocm9vdFN0YWNrQXJ0aWZhY3QsIHNkaywgbmVzdGVkU3RhY2tUZW1wbGF0ZXMpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbmVzdGVkU3RhY2tzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXROZXN0ZWRTdGFja1RlbXBsYXRlcyhcbiAgcm9vdFN0YWNrQXJ0aWZhY3Q6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgbmVzdGVkVGVtcGxhdGVBc3NldFBhdGg6IHN0cmluZyxcbiAgbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZyxcbiAgbGlzdFN0YWNrUmVzb3VyY2VzOiBMaXN0U3RhY2tSZXNvdXJjZXMgfCB1bmRlZmluZWQsXG4gIHNkazogU0RLLFxuKTogUHJvbWlzZTxTdGFja1RlbXBsYXRlcz4ge1xuICBjb25zdCBuZXN0ZWRUZW1wbGF0ZVBhdGggPSBwYXRoLmpvaW4ocm9vdFN0YWNrQXJ0aWZhY3QuYXNzZW1ibHkuZGlyZWN0b3J5LCBuZXN0ZWRUZW1wbGF0ZUFzc2V0UGF0aCk7XG5cbiAgLy8gQ0ZOIGdlbmVyYXRlcyB0aGUgbmVzdGVkIHN0YWNrIG5hbWUgaW4gdGhlIGZvcm0gYFBhcmVudFN0YWNrTmFtZS1OZXN0ZWRTdGFja0xvZ2ljYWxJRC1Tb21lSGFzaFdlQ2FuJ3RDb21wdXRlLFxuICAvLyB0aGUgYXJuIGlzIG9mIHRoZSBmb3JtOiBhcm46YXdzOmNsb3VkZm9ybWF0aW9uOnJlZ2lvbjoxMjM0NTY3ODkwMTI6c3RhY2svTmVzdGVkU3RhY2tOYW1lL0Fub3RoZXJIYXNoV2VEb24ndE5lZWRcbiAgLy8gc28gd2UgZ2V0IHRoZSBBUk4gYW5kIG1hbnVhbGx5IGV4dHJhY3QgdGhlIG5hbWUuXG4gIGNvbnN0IG5lc3RlZFN0YWNrQXJuID0gYXdhaXQgZ2V0TmVzdGVkU3RhY2tBcm4obmVzdGVkU3RhY2tMb2dpY2FsSWQsIGxpc3RTdGFja1Jlc291cmNlcyk7XG4gIGNvbnN0IGRlcGxveWVkU3RhY2tOYW1lID0gbmVzdGVkU3RhY2tBcm4/LnNsaWNlKG5lc3RlZFN0YWNrQXJuLmluZGV4T2YoJy8nKSArIDEsIG5lc3RlZFN0YWNrQXJuLmxhc3RJbmRleE9mKCcvJykpO1xuXG4gIHJldHVybiB7XG4gICAgZ2VuZXJhdGVkVGVtcGxhdGU6IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKG5lc3RlZFRlbXBsYXRlUGF0aCwgJ3V0Zi04JykpLFxuICAgIGRlcGxveWVkVGVtcGxhdGU6IGRlcGxveWVkU3RhY2tOYW1lID8gYXdhaXQgbG9hZEN1cnJlbnRTdGFja1RlbXBsYXRlKGRlcGxveWVkU3RhY2tOYW1lLCBzZGspIDoge30sXG4gICAgZGVwbG95ZWRTdGFja05hbWUsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5lc3RlZFN0YWNrQXJuKFxuICBuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nLFxuICBsaXN0U3RhY2tSZXNvdXJjZXM/OiBMaXN0U3RhY2tSZXNvdXJjZXMsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgbGlzdFN0YWNrUmVzb3VyY2VzPy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICByZXR1cm4gc3RhY2tSZXNvdXJjZXM/LmZpbmQoKHNyKSA9PiBzci5Mb2dpY2FsUmVzb3VyY2VJZCA9PT0gbmVzdGVkU3RhY2tMb2dpY2FsSWQpPy5QaHlzaWNhbFJlc291cmNlSWQ7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChmb3JtYXRFcnJvck1lc3NhZ2UoZSkuc3RhcnRzV2l0aCgnU3RhY2sgd2l0aCBpZCAnKSAmJiBmb3JtYXRFcnJvck1lc3NhZ2UoZSkuZW5kc1dpdGgoJyBkb2VzIG5vdCBleGlzdCcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDZGtNYW5hZ2VkTmVzdGVkU3RhY2soc3RhY2tSZXNvdXJjZTogYW55KTogc3RhY2tSZXNvdXJjZSBpcyBOZXN0ZWRTdGFja1Jlc291cmNlIHtcbiAgcmV0dXJuIChcbiAgICBzdGFja1Jlc291cmNlLlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgJiZcbiAgICBzdGFja1Jlc291cmNlLk1ldGFkYXRhICYmXG4gICAgc3RhY2tSZXNvdXJjZS5NZXRhZGF0YVsnYXdzOmFzc2V0OnBhdGgnXVxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGVtcGxhdGUgY29udGFpbnMgYW55IGBBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFja2AgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGVDb250YWluc05lc3RlZFN0YWNrcyh0ZW1wbGF0ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKHRlbXBsYXRlPy5SZXNvdXJjZXMgPz8ge30pLnNvbWUoXG4gICAgKHJlc291cmNlOiBhbnkpID0+IHJlc291cmNlLlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmVzdGVkU3RhY2tUZW1wbGF0ZXMge1xuICByZWFkb25seSBwaHlzaWNhbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgZGVwbG95ZWRUZW1wbGF0ZTogVGVtcGxhdGU7XG4gIHJlYWRvbmx5IGdlbmVyYXRlZFRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IHtcbiAgICBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzO1xuICB9O1xuICAvKipcbiAgICogVGhlIGNoYW5nZXNldCBmb3IgdGhpcyBuZXN0ZWQgc3RhY2ssIGlmIGF2YWlsYWJsZS5cbiAgICogUG9wdWxhdGVkIHdoZW4gdGhlIHJvb3QgY2hhbmdlc2V0IHdhcyBjcmVhdGVkIHdpdGggYEluY2x1ZGVOZXN0ZWRTdGFja3NgLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0O1xufVxuXG5pbnRlcmZhY2UgU3RhY2tUZW1wbGF0ZXMge1xuICByZWFkb25seSBnZW5lcmF0ZWRUZW1wbGF0ZTogYW55O1xuICByZWFkb25seSBkZXBsb3llZFRlbXBsYXRlOiBhbnk7XG4gIHJlYWRvbmx5IGRlcGxveWVkU3RhY2tOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmludGVyZmFjZSBOZXN0ZWRTdGFja1Jlc291cmNlIHtcbiAgcmVhZG9ubHkgTWV0YWRhdGE6IHsgJ2F3czphc3NldDpwYXRoJzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IFByb3BlcnRpZXM6IGFueTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationStack = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst stack_events_1 = require(\"../stack-events\");\n/**\n * Represents an (existing) Stack in CloudFormation\n *\n * Bundle and cache some information that we need during deployment (so we don't have to make\n * repeated calls to CloudFormation).\n */\nclass CloudFormationStack {\n cfn;\n stackName;\n stack;\n retrieveProcessedTemplate;\n static async lookup(cfn, stackName, retrieveProcessedTemplate = false) {\n try {\n const response = await cfn.describeStacks({ StackName: stackName });\n return new CloudFormationStack(cfn, stackName, response.Stacks && response.Stacks[0], retrieveProcessedTemplate);\n }\n catch (e) {\n if (e.name === 'ValidationError' && (0, util_1.formatErrorMessage)(e) === `Stack with id ${stackName} does not exist`) {\n return new CloudFormationStack(cfn, stackName, undefined);\n }\n throw e;\n }\n }\n /**\n * Return a copy of the given stack that does not exist\n *\n * It's a little silly that it needs arguments to do that, but there we go.\n */\n static doesNotExist(cfn, stackName) {\n return new CloudFormationStack(cfn, stackName);\n }\n /**\n * From static information (for testing)\n */\n static fromStaticInformation(cfn, stackName, stack) {\n return new CloudFormationStack(cfn, stackName, stack);\n }\n _template;\n constructor(cfn, stackName, stack, retrieveProcessedTemplate = false) {\n this.cfn = cfn;\n this.stackName = stackName;\n this.stack = stack;\n this.retrieveProcessedTemplate = retrieveProcessedTemplate;\n }\n /**\n * Retrieve the stack's deployed template\n *\n * Cached, so will only be retrieved once. Will return an empty\n * structure if the stack does not exist.\n */\n async template() {\n if (!this.exists) {\n return {};\n }\n if (this._template === undefined) {\n const response = await this.cfn.getTemplate({\n StackName: this.stackName,\n TemplateStage: this.retrieveProcessedTemplate ? 'Processed' : 'Original',\n });\n this._template = (response.TemplateBody && (0, util_1.deserializeStructure)(response.TemplateBody)) || {};\n }\n return this._template;\n }\n /**\n * Whether the stack exists\n */\n get exists() {\n return this.stack !== undefined;\n }\n /**\n * The stack's ID (which is the same as its ARN)\n *\n * Throws if the stack doesn't exist.\n */\n get stackId() {\n this.assertExists();\n return this.stack.StackId;\n }\n /**\n * The stack's current outputs\n *\n * Empty object if the stack doesn't exist\n */\n get outputs() {\n if (!this.exists) {\n return {};\n }\n const result = {};\n (this.stack.Outputs || []).forEach((output) => {\n result[output.OutputKey] = output.OutputValue;\n });\n return result;\n }\n /**\n * The stack's status\n *\n * Special status NOT_FOUND if the stack does not exist.\n */\n get stackStatus() {\n if (!this.exists) {\n return new stack_events_1.StackStatus('NOT_FOUND', 'Stack not found during lookup');\n }\n return stack_events_1.StackStatus.fromStackDescription(this.stack);\n }\n /**\n * The stack's current tags\n *\n * Empty list if the stack does not exist\n */\n get tags() {\n return this.stack?.Tags || [];\n }\n /**\n * SNS Topic ARNs that will receive stack events.\n *\n * Empty list if the stack does not exist\n */\n get notificationArns() {\n return this.stack?.NotificationARNs ?? [];\n }\n /**\n * Return the names of all current parameters to the stack\n *\n * Empty list if the stack does not exist.\n */\n get parameterNames() {\n return Object.keys(this.parameters);\n }\n /**\n * Return the names and values of all current parameters to the stack\n *\n * Empty object if the stack does not exist.\n */\n get parameters() {\n if (!this.exists) {\n return {};\n }\n const ret = {};\n for (const param of this.stack.Parameters ?? []) {\n ret[param.ParameterKey] = param.ResolvedValue ?? param.ParameterValue;\n }\n return ret;\n }\n /**\n * Return the termination protection of the stack\n */\n get terminationProtection() {\n return this.stack?.EnableTerminationProtection;\n }\n assertExists() {\n if (!this.exists) {\n throw new toolkit_error_1.ToolkitError('StackNotFound', `No stack named '${this.stackName}'`);\n }\n }\n}\nexports.CloudFormationStack = CloudFormationStack;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2staGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0RBQTJEO0FBQzNELHFDQUFzRTtBQUV0RSxrREFBOEM7QUFjOUM7Ozs7O0dBS0c7QUFDSCxNQUFhLG1CQUFtQjtJQW9DWDtJQUNEO0lBQ0M7SUFDQTtJQXRDWixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDeEIsR0FBMEIsRUFDMUIsU0FBaUIsRUFDakIsNEJBQXFDLEtBQUs7UUFFMUMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDbkgsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGlCQUFpQixJQUFJLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLFNBQVMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDMUcsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUEwQixFQUFFLFNBQWlCO1FBQ3RFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixD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QUNILElBQVcsVUFBVTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7UUFDdkMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNqRCxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLGNBQWUsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUM7SUFDakQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksNEJBQVksQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFwS0Qsa0RBb0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFjaywgVGFnIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UsIGRlc2VyaWFsaXplU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEZvcm1hdGlvbkNsaWVudCB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgU3RhY2tTdGF0dXMgfSBmcm9tICcuLi9zdGFjay1ldmVudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlIHtcbiAgUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUGFyYW1ldGVyPjtcbiAgW3NlY3Rpb246IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVBhcmFtZXRlciB7XG4gIFR5cGU6IHN0cmluZztcbiAgRGVmYXVsdD86IGFueTtcbiAgRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIChleGlzdGluZykgU3RhY2sgaW4gQ2xvdWRGb3JtYXRpb25cbiAqXG4gKiBCdW5kbGUgYW5kIGNhY2hlIHNvbWUgaW5mb3JtYXRpb24gdGhhdCB3ZSBuZWVkIGR1cmluZyBkZXBsb3ltZW50IChzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2VcbiAqIHJlcGVhdGVkIGNhbGxzIHRvIENsb3VkRm9ybWF0aW9uKS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkRm9ybWF0aW9uU3RhY2sge1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGxvb2t1cChcbiAgICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgICBzdGFja05hbWU6IHN0cmluZyxcbiAgICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICk6IFByb21pc2U8Q2xvdWRGb3JtYXRpb25TdGFjaz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNmbi5kZXNjcmliZVN0YWNrcyh7IFN0YWNrTmFtZTogc3RhY2tOYW1lIH0pO1xuICAgICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvblN0YWNrKGNmbiwgc3RhY2tOYW1lLCByZXNwb25zZS5TdGFja3MgJiYgcmVzcG9uc2UuU3RhY2tzWzBdLCByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgPT09ICdWYWxpZGF0aW9uRXJyb3InICYmIGZvcm1hdEVycm9yTWVzc2FnZShlKSA9PT0gYFN0YWNrIHdpdGggaWQgJHtzdGFja05hbWV9IGRvZXMgbm90IGV4aXN0YCkge1xuICAgICAgICByZXR1cm4gbmV3IENsb3VkRm9ybWF0aW9uU3RhY2soY2ZuLCBzdGFja05hbWUsIHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBjb3B5IG9mIHRoZSBnaXZlbiBzdGFjayB0aGF0IGRvZXMgbm90IGV4aXN0XG4gICAqXG4gICAqIEl0J3MgYSBsaXR0bGUgc2lsbHkgdGhhdCBpdCBuZWVkcyBhcmd1bWVudHMgdG8gZG8gdGhhdCwgYnV0IHRoZXJlIHdlIGdvLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkb2VzTm90RXhpc3QoY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsIHN0YWNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvblN0YWNrKGNmbiwgc3RhY2tOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGcm9tIHN0YXRpYyBpbmZvcm1hdGlvbiAoZm9yIHRlc3RpbmcpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGF0aWNJbmZvcm1hdGlvbihjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCwgc3RhY2tOYW1lOiBzdHJpbmcsIHN0YWNrOiBTdGFjaykge1xuICAgIHJldHVybiBuZXcgQ2xvdWRGb3JtYXRpb25TdGFjayhjZm4sIHN0YWNrTmFtZSwgc3RhY2spO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGVtcGxhdGU6IGFueTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGFjaz86IFN0YWNrLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmV0cmlldmVQcm9jZXNzZWRUZW1wbGF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgc3RhY2sncyBkZXBsb3llZCB0ZW1wbGF0ZVxuICAgKlxuICAgKiBDYWNoZWQsIHNvIHdpbGwgb25seSBiZSByZXRyaWV2ZWQgb25jZS4gV2lsbCByZXR1cm4gYW4gZW1wdHlcbiAgICogc3RydWN0dXJlIGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB0ZW1wbGF0ZSgpOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gICAgaWYgKCF0aGlzLmV4aXN0cykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2ZuLmdldFRlbXBsYXRlKHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgICAgVGVtcGxhdGVTdGFnZTogdGhpcy5yZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlID8gJ1Byb2Nlc3NlZCcgOiAnT3JpZ2luYWwnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl90ZW1wbGF0ZSA9IChyZXNwb25zZS5UZW1wbGF0ZUJvZHkgJiYgZGVzZXJpYWxpemVTdHJ1Y3R1cmUocmVzcG9uc2UuVGVtcGxhdGVCb2R5KSkgfHwge307XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzdGFjayBleGlzdHNcbiAgICovXG4gIHB1YmxpYyBnZXQgZXhpc3RzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YWNrICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0YWNrJ3MgSUQgKHdoaWNoIGlzIHRoZSBzYW1lIGFzIGl0cyBBUk4pXG4gICAqXG4gICAqIFRocm93cyBpZiB0aGUgc3RhY2sgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhY2tJZCgpIHtcbiAgICB0aGlzLmFzc2VydEV4aXN0cygpO1xuICAgIHJldHVybiB0aGlzLnN0YWNrIS5TdGFja0lkITtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sncyBjdXJyZW50IG91dHB1dHNcbiAgICpcbiAgICogRW1wdHkgb2JqZWN0IGlmIHRoZSBzdGFjayBkb2Vzbid0IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLmV4aXN0cykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgKHRoaXMuc3RhY2shLk91dHB1dHMgfHwgW10pLmZvckVhY2goKG91dHB1dCkgPT4ge1xuICAgICAgcmVzdWx0W291dHB1dC5PdXRwdXRLZXkhXSA9IG91dHB1dC5PdXRwdXRWYWx1ZSE7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sncyBzdGF0dXNcbiAgICpcbiAgICogU3BlY2lhbCBzdGF0dXMgTk9UX0ZPVU5EIGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhY2tTdGF0dXMoKTogU3RhY2tTdGF0dXMge1xuICAgIGlmICghdGhpcy5leGlzdHMpIHtcbiAgICAgIHJldHVybiBuZXcgU3RhY2tTdGF0dXMoJ05PVF9GT1VORCcsICdTdGFjayBub3QgZm91bmQgZHVyaW5nIGxvb2t1cCcpO1xuICAgIH1cbiAgICByZXR1cm4gU3RhY2tTdGF0dXMuZnJvbVN0YWNrRGVzY3JpcHRpb24odGhpcy5zdGFjayEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjaydzIGN1cnJlbnQgdGFnc1xuICAgKlxuICAgKiBFbXB0eSBsaXN0IGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgcHVibGljIGdldCB0YWdzKCk6IFRhZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjaz8uVGFncyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTTlMgVG9waWMgQVJOcyB0aGF0IHdpbGwgcmVjZWl2ZSBzdGFjayBldmVudHMuXG4gICAqXG4gICAqIEVtcHR5IGxpc3QgaWYgdGhlIHN0YWNrIGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IG5vdGlmaWNhdGlvbkFybnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnN0YWNrPy5Ob3RpZmljYXRpb25BUk5zID8/IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbmFtZXMgb2YgYWxsIGN1cnJlbnQgcGFyYW1ldGVycyB0byB0aGUgc3RhY2tcbiAgICpcbiAgICogRW1wdHkgbGlzdCBpZiB0aGUgc3RhY2sgZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhcmFtZXRlck5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG5hbWVzIGFuZCB2YWx1ZXMgb2YgYWxsIGN1cnJlbnQgcGFyYW1ldGVycyB0byB0aGUgc3RhY2tcbiAgICpcbiAgICogRW1wdHkgb2JqZWN0IGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGFyYW1ldGVycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuZXhpc3RzKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgcGFyYW0gb2YgdGhpcy5zdGFjayEuUGFyYW1ldGVycyA/PyBbXSkge1xuICAgICAgcmV0W3BhcmFtLlBhcmFtZXRlcktleSFdID0gcGFyYW0uUmVzb2x2ZWRWYWx1ZSA/PyBwYXJhbS5QYXJhbWV0ZXJWYWx1ZSE7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIG9mIHRoZSBzdGFja1xuICAgKi9cbiAgcHVibGljIGdldCB0ZXJtaW5hdGlvblByb3RlY3Rpb24oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2s/LkVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgYXNzZXJ0RXhpc3RzKCkge1xuICAgIGlmICghdGhpcy5leGlzdHMpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrTm90Rm91bmQnLCBgTm8gc3RhY2sgbmFtZWQgJyR7dGhpcy5zdGFja05hbWV9J2ApO1xuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeBodyParameter = makeBodyParameter;\nexports.restUrlFromManifest = restUrlFromManifest;\nconst fs = require(\"node:fs/promises\");\nconst path = require(\"node:path\");\nconst util = require(\"node:util\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst client_s3_1 = require(\"@aws-sdk/client-s3\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst chalk = require(\"chalk\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst LARGE_TEMPLATE_SIZE_KB = 50;\n/**\n * Prepares the body parameter for +CreateChangeSet+.\n *\n * If the template is small enough to be inlined into the API call, just return\n * it immediately.\n *\n * Otherwise, add it to the asset manifest to get uploaded to the staging\n * bucket and return its coordinates. If there is no staging bucket, an error\n * is thrown.\n *\n * @param stack - the synthesized stack that provides the CloudFormation template\n * @param toolkitInfo - information about the toolkit stack\n */\nasync function makeBodyParameter(ioHelper, stack, resolvedEnvironment, assetManifest, resources, overrideTemplate) {\n // If the template has already been uploaded to S3, just use it from there.\n if (stack.stackTemplateAssetObjectUrl && !overrideTemplate) {\n return {\n TemplateURL: await restUrlFromManifest(stack.stackTemplateAssetObjectUrl, resolvedEnvironment),\n };\n }\n // Otherwise, pass via API call (if small) or upload here (if large)\n const templateJson = (0, util_1.toYAML)(overrideTemplate ?? stack.template);\n if (templateJson.length <= LARGE_TEMPLATE_SIZE_KB * 1024) {\n return { TemplateBody: templateJson };\n }\n const toolkitInfo = await resources.lookupToolkit();\n if (!toolkitInfo.found) {\n await ioHelper.defaults.error(util.format(`The template for stack \"${stack.displayName}\" is ${Math.round(templateJson.length / 1024)}KiB. ` +\n `Templates larger than ${LARGE_TEMPLATE_SIZE_KB}KiB must be uploaded to S3.\\n` +\n 'Run the following command in order to setup an S3 bucket in this environment, and then re-deploy:\\n\\n', chalk.blue(`\\t$ cdk bootstrap ${resolvedEnvironment.name}\\n`)));\n throw new toolkit_error_1.ToolkitError('TemplateTooLargeToDeploy', 'Template too large to deploy (\"cdk bootstrap\" is required)');\n }\n const templateHash = (0, util_1.contentHash)(templateJson);\n const key = `cdk/${stack.id}/${templateHash}.yml`;\n let templateFile = stack.templateFile;\n if (overrideTemplate) {\n // Add a variant of this template\n templateFile = `${stack.templateFile}-${templateHash}.yaml`;\n const templateFilePath = path.join(stack.assembly.directory, templateFile);\n await fs.writeFile(templateFilePath, templateJson, { encoding: 'utf-8' });\n }\n assetManifest.addFileAsset(templateHash, {\n path: templateFile,\n }, {\n bucketName: toolkitInfo.bucketName,\n objectKey: key,\n });\n const templateURL = `${toolkitInfo.bucketUrl}/${key}`;\n await ioHelper.defaults.debug(`Storing template in S3 at: ${templateURL}`);\n return { TemplateURL: templateURL };\n}\n/**\n * Format an S3 URL in the manifest for use with CloudFormation\n *\n * Replaces environment placeholders (which this field may contain),\n * and reformats s3://.../... urls into S3 REST URLs (which CloudFormation\n * expects).\n *\n * We need to return the official region- and partition-specific URL for AWS S3\n * here, so we use the SDK's information about endpoints. At the same time, the\n * SDK allows overriding this URL by setting an environment variable\n * (specifically $AWS_ENDPOINT_URL_S3) but we want to *not* honor that, because\n * there's a 99.9% chance this URL will not be routable from AWS CloudFormation.\n *\n * To allow for the off chance that someone is running this tool against a\n * custom build of CloudFormation that does need a specific S3 endpoint passed\n * to it, we'll introduce a new environment variable that we'll respect instead:\n *\n * AWS_ENDPOINT_URL_S3_FOR_CLOUDFORMATION\n */\nasync function restUrlFromManifest(url, environment) {\n const doNotUseMarker = '**DONOTUSE**';\n const region = environment.region;\n // This URL may contain placeholders, so still substitute those.\n url = cloud_assembly_api_1.EnvironmentPlaceholders.replace(url, {\n accountId: environment.account,\n region,\n partition: doNotUseMarker,\n });\n // Yes, this is extremely crude, but we don't actually need this so I'm not inclined to spend\n // a lot of effort trying to thread the right value to this location.\n if (url.indexOf(doNotUseMarker) > -1) {\n throw new toolkit_error_1.ToolkitError('PartitionPlaceholderNotSupported', \"Cannot use '${AWS::Partition}' in the 'stackTemplateAssetObjectUrl' field\");\n }\n const s3Url = url.match(/s3:\\/\\/([^/]+)\\/(.*)$/);\n if (!s3Url) {\n return url;\n }\n // We need to pass an 'https://s3.REGION.amazonaws.com[.cn]/bucket/object' URL to CloudFormation, but we\n // got an 's3://bucket/object' URL instead. Construct the rest API URL here.\n const bucketName = s3Url[1];\n const objectKey = s3Url[2];\n const originalOverrideS3Endpoint = process.env.AWS_ENDPOINT_URL_S3;\n setEnv('AWS_ENDPOINT_URL_S3', process.env.AWS_ENDPOINT_URL_S3_FOR_CLOUDFORMATION);\n try {\n // SDK v3 no longer allows for getting endpoints from only region.\n // A command and client config must now be provided.\n const s3 = new client_s3_1.S3Client({ region });\n const endpoint = await (0, middleware_endpoint_1.getEndpointFromInstructions)({}, client_s3_1.HeadObjectCommand, {\n ...s3.config,\n });\n return `${endpoint.url.origin}/${bucketName}/${objectKey}`;\n }\n finally {\n setEnv('AWS_ENDPOINT_URL_S3', originalOverrideS3Endpoint);\n }\n}\nfunction setEnv(name, value) {\n if (value) {\n process.env[name] = value;\n }\n else {\n delete process.env[name];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtYm9keS1wYXJhbWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZW1wbGF0ZS1ib2R5LXBhcmFtZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw4Q0E2REM7QUFxQkQsa0RBd0NDO0FBM0pELHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFDbEMsa0NBQWtDO0FBQ2xDLG9FQUEwSDtBQUMxSCxrREFBaUU7QUFDakUscUVBQTBFO0FBQzFFLCtCQUErQjtBQUMvQiwrREFBMkQ7QUFDM0QscUNBQWlEO0FBVWpELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRWxDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsUUFBa0IsRUFDbEIsS0FBa0MsRUFDbEMsbUJBQWdDLEVBQ2hDLGFBQW1DLEVBQ25DLFNBQStCLEVBQy9CLGdCQUFzQjtJQUV0QiwyRUFBMkU7SUFDM0UsSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNELE9BQU87WUFDTCxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsbUJBQW1CLENBQUM7U0FDL0YsQ0FBQztJQUNKLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsTUFBTSxZQUFZLEdBQUcsSUFBQSxhQUFNLEVBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWhFLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxzQkFBc0IsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQzNCLElBQUksQ0FBQyxNQUFNLENBQ1QsMkJBQTJCLEtBQUssQ0FBQyxXQUFXLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2pHLHlCQUF5QixzQkFBc0IsK0JBQStCO1lBQzlFLHVHQUF1RyxFQUN2RyxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUM5RCxDQUNGLENBQUM7UUFFRixNQUFNLElBQUksNEJBQVksQ0FBQywwQkFBMEIsRUFBRSw0REFBNEQsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLGtCQUFXLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsTUFBTSxHQUFHLEdBQUcsT0FBTyxLQUFLLENBQUMsRUFBRSxJQUFJLFlBQVksTUFBTSxDQUFDO0lBRWxELElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDdEMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLGlDQUFpQztRQUNqQyxZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLFlBQVksT0FBTyxDQUFDO1FBQzVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMzRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUFZLENBQ3hCLFlBQVksRUFDWjtRQUNFLElBQUksRUFBRSxZQUFZO0tBQ25CLEVBQ0Q7UUFDRSxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7UUFDbEMsU0FBUyxFQUFFLEdBQUc7S0FDZixDQUNGLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdEQsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUFDLEdBQVcsRUFBRSxXQUF3QjtJQUM3RSxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdEMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxnRUFBZ0U7SUFDaEUsR0FBRyxHQUFHLDRDQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDekMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQzlCLE1BQU07UUFDTixTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDLENBQUM7SUFFSCw2RkFBNkY7SUFDN0YscUVBQXFFO0lBQ3JFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSw0QkFBWSxDQUFDLGtDQUFrQyxFQUFFLDJFQUEyRSxDQUFDLENBQUM7SUFDMUksQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCx3R0FBd0c7SUFDeEcsNEVBQTRFO0lBQzVFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFM0IsTUFBTSwwQkFBMEIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO0lBQ25FLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDbEYsSUFBSSxDQUFDO1FBQ0gsa0VBQWtFO1FBQ2xFLG9EQUFvRDtRQUNwRCxNQUFNLEVBQUUsR0FBRyxJQUFJLG9CQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxpREFBMkIsRUFBQyxFQUFFLEVBQUUsNkJBQWlCLEVBQUU7WUFDeEUsR0FBRyxFQUFFLENBQUMsTUFBTTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLElBQVksRUFBRSxLQUF5QjtJQUNyRCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHR5cGUgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCB0eXBlIEVudmlyb25tZW50LCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBIZWFkT2JqZWN0Q29tbWFuZCwgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgZ2V0RW5kcG9pbnRGcm9tSW5zdHJ1Y3Rpb25zIH0gZnJvbSAnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50JztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBjb250ZW50SGFzaCwgdG9ZQU1MIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVCb2R5UGFyYW1ldGVyID0ge1xuICBUZW1wbGF0ZUJvZHk/OiBzdHJpbmc7XG4gIFRlbXBsYXRlVVJMPzogc3RyaW5nO1xufTtcblxuY29uc3QgTEFSR0VfVEVNUExBVEVfU0laRV9LQiA9IDUwO1xuXG4vKipcbiAqIFByZXBhcmVzIHRoZSBib2R5IHBhcmFtZXRlciBmb3IgK0NyZWF0ZUNoYW5nZVNldCsuXG4gKlxuICogSWYgdGhlIHRlbXBsYXRlIGlzIHNtYWxsIGVub3VnaCB0byBiZSBpbmxpbmVkIGludG8gdGhlIEFQSSBjYWxsLCBqdXN0IHJldHVyblxuICogaXQgaW1tZWRpYXRlbHkuXG4gKlxuICogT3RoZXJ3aXNlLCBhZGQgaXQgdG8gdGhlIGFzc2V0IG1hbmlmZXN0IHRvIGdldCB1cGxvYWRlZCB0byB0aGUgc3RhZ2luZ1xuICogYnVja2V0IGFuZCByZXR1cm4gaXRzIGNvb3JkaW5hdGVzLiBJZiB0aGVyZSBpcyBubyBzdGFnaW5nIGJ1Y2tldCwgYW4gZXJyb3JcbiAqIGlzIHRocm93bi5cbiAqXG4gKiBAcGFyYW0gc3RhY2sgICAgIC0gdGhlIHN5bnRoZXNpemVkIHN0YWNrIHRoYXQgcHJvdmlkZXMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gKiBAcGFyYW0gdG9vbGtpdEluZm8gLSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdG9vbGtpdCBzdGFja1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZUJvZHlQYXJhbWV0ZXIoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2s6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gIGFzc2V0TWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RCdWlsZGVyLFxuICByZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzLFxuICBvdmVycmlkZVRlbXBsYXRlPzogYW55LFxuKTogUHJvbWlzZTxUZW1wbGF0ZUJvZHlQYXJhbWV0ZXI+IHtcbiAgLy8gSWYgdGhlIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gdXBsb2FkZWQgdG8gUzMsIGp1c3QgdXNlIGl0IGZyb20gdGhlcmUuXG4gIGlmIChzdGFjay5zdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmwgJiYgIW92ZXJyaWRlVGVtcGxhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVGVtcGxhdGVVUkw6IGF3YWl0IHJlc3RVcmxGcm9tTWFuaWZlc3Qoc3RhY2suc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsLCByZXNvbHZlZEVudmlyb25tZW50KSxcbiAgICB9O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBwYXNzIHZpYSBBUEkgY2FsbCAoaWYgc21hbGwpIG9yIHVwbG9hZCBoZXJlIChpZiBsYXJnZSlcbiAgY29uc3QgdGVtcGxhdGVKc29uID0gdG9ZQU1MKG92ZXJyaWRlVGVtcGxhdGUgPz8gc3RhY2sudGVtcGxhdGUpO1xuXG4gIGlmICh0ZW1wbGF0ZUpzb24ubGVuZ3RoIDw9IExBUkdFX1RFTVBMQVRFX1NJWkVfS0IgKiAxMDI0KSB7XG4gICAgcmV0dXJuIHsgVGVtcGxhdGVCb2R5OiB0ZW1wbGF0ZUpzb24gfTtcbiAgfVxuXG4gIGNvbnN0IHRvb2xraXRJbmZvID0gYXdhaXQgcmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKTtcbiAgaWYgKCF0b29sa2l0SW5mby5mb3VuZCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgIGBUaGUgdGVtcGxhdGUgZm9yIHN0YWNrIFwiJHtzdGFjay5kaXNwbGF5TmFtZX1cIiBpcyAke01hdGgucm91bmQodGVtcGxhdGVKc29uLmxlbmd0aCAvIDEwMjQpfUtpQi4gYCArXG4gICAgICAgIGBUZW1wbGF0ZXMgbGFyZ2VyIHRoYW4gJHtMQVJHRV9URU1QTEFURV9TSVpFX0tCfUtpQiBtdXN0IGJlIHVwbG9hZGVkIHRvIFMzLlxcbmAgK1xuICAgICAgICAnUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiBvcmRlciB0byBzZXR1cCBhbiBTMyBidWNrZXQgaW4gdGhpcyBlbnZpcm9ubWVudCwgYW5kIHRoZW4gcmUtZGVwbG95OlxcblxcbicsXG4gICAgICAgIGNoYWxrLmJsdWUoYFxcdCQgY2RrIGJvb3RzdHJhcCAke3Jlc29sdmVkRW52aXJvbm1lbnQubmFtZX1cXG5gKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RlbXBsYXRlVG9vTGFyZ2VUb0RlcGxveScsICdUZW1wbGF0ZSB0b28gbGFyZ2UgdG8gZGVwbG95IChcImNkayBib290c3RyYXBcIiBpcyByZXF1aXJlZCknKTtcbiAgfVxuXG4gIGNvbnN0IHRlbXBsYXRlSGFzaCA9IGNvbnRlbnRIYXNoKHRlbXBsYXRlSnNvbik7XG4gIGNvbnN0IGtleSA9IGBjZGsvJHtzdGFjay5pZH0vJHt0ZW1wbGF0ZUhhc2h9LnltbGA7XG5cbiAgbGV0IHRlbXBsYXRlRmlsZSA9IHN0YWNrLnRlbXBsYXRlRmlsZTtcbiAgaWYgKG92ZXJyaWRlVGVtcGxhdGUpIHtcbiAgICAvLyBBZGQgYSB2YXJpYW50IG9mIHRoaXMgdGVtcGxhdGVcbiAgICB0ZW1wbGF0ZUZpbGUgPSBgJHtzdGFjay50ZW1wbGF0ZUZpbGV9LSR7dGVtcGxhdGVIYXNofS55YW1sYDtcbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVQYXRoID0gcGF0aC5qb2luKHN0YWNrLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGVtcGxhdGVGaWxlKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUodGVtcGxhdGVGaWxlUGF0aCwgdGVtcGxhdGVKc29uLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICB9XG5cbiAgYXNzZXRNYW5pZmVzdC5hZGRGaWxlQXNzZXQoXG4gICAgdGVtcGxhdGVIYXNoLFxuICAgIHtcbiAgICAgIHBhdGg6IHRlbXBsYXRlRmlsZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHRvb2xraXRJbmZvLmJ1Y2tldE5hbWUsXG4gICAgICBvYmplY3RLZXk6IGtleSxcbiAgICB9LFxuICApO1xuXG4gIGNvbnN0IHRlbXBsYXRlVVJMID0gYCR7dG9vbGtpdEluZm8uYnVja2V0VXJsfS8ke2tleX1gO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgU3RvcmluZyB0ZW1wbGF0ZSBpbiBTMyBhdDogJHt0ZW1wbGF0ZVVSTH1gKTtcbiAgcmV0dXJuIHsgVGVtcGxhdGVVUkw6IHRlbXBsYXRlVVJMIH07XG59XG5cbi8qKlxuICogRm9ybWF0IGFuIFMzIFVSTCBpbiB0aGUgbWFuaWZlc3QgZm9yIHVzZSB3aXRoIENsb3VkRm9ybWF0aW9uXG4gKlxuICogUmVwbGFjZXMgZW52aXJvbm1lbnQgcGxhY2Vob2xkZXJzICh3aGljaCB0aGlzIGZpZWxkIG1heSBjb250YWluKSxcbiAqIGFuZCByZWZvcm1hdHMgczM6Ly8uLi4vLi4uIHVybHMgaW50byBTMyBSRVNUIFVSTHMgKHdoaWNoIENsb3VkRm9ybWF0aW9uXG4gKiBleHBlY3RzKS5cbiAqXG4gKiBXZSBuZWVkIHRvIHJldHVybiB0aGUgb2ZmaWNpYWwgcmVnaW9uLSBhbmQgcGFydGl0aW9uLXNwZWNpZmljIFVSTCBmb3IgQVdTIFMzXG4gKiBoZXJlLCBzbyB3ZSB1c2UgdGhlIFNESydzIGluZm9ybWF0aW9uIGFib3V0IGVuZHBvaW50cy4gQXQgdGhlIHNhbWUgdGltZSwgdGhlXG4gKiBTREsgYWxsb3dzIG92ZXJyaWRpbmcgdGhpcyBVUkwgYnkgc2V0dGluZyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICogKHNwZWNpZmljYWxseSAkQVdTX0VORFBPSU5UX1VSTF9TMykgYnV0IHdlIHdhbnQgdG8gKm5vdCogaG9ub3IgdGhhdCwgYmVjYXVzZVxuICogdGhlcmUncyBhIDk5LjklIGNoYW5jZSB0aGlzIFVSTCB3aWxsIG5vdCBiZSByb3V0YWJsZSBmcm9tIEFXUyBDbG91ZEZvcm1hdGlvbi5cbiAqXG4gKiBUbyBhbGxvdyBmb3IgdGhlIG9mZiBjaGFuY2UgdGhhdCBzb21lb25lIGlzIHJ1bm5pbmcgdGhpcyB0b29sIGFnYWluc3QgYVxuICogY3VzdG9tIGJ1aWxkIG9mIENsb3VkRm9ybWF0aW9uIHRoYXQgZG9lcyBuZWVkIGEgc3BlY2lmaWMgUzMgZW5kcG9pbnQgcGFzc2VkXG4gKiB0byBpdCwgd2UnbGwgaW50cm9kdWNlIGEgbmV3IGVudmlyb25tZW50IHZhcmlhYmxlIHRoYXQgd2UnbGwgcmVzcGVjdCBpbnN0ZWFkOlxuICpcbiAqICBBV1NfRU5EUE9JTlRfVVJMX1MzX0ZPUl9DTE9VREZPUk1BVElPTlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzdFVybEZyb21NYW5pZmVzdCh1cmw6IHN0cmluZywgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZG9Ob3RVc2VNYXJrZXIgPSAnKipET05PVFVTRSoqJztcbiAgY29uc3QgcmVnaW9uID0gZW52aXJvbm1lbnQucmVnaW9uO1xuICAvLyBUaGlzIFVSTCBtYXkgY29udGFpbiBwbGFjZWhvbGRlcnMsIHNvIHN0aWxsIHN1YnN0aXR1dGUgdGhvc2UuXG4gIHVybCA9IEVudmlyb25tZW50UGxhY2Vob2xkZXJzLnJlcGxhY2UodXJsLCB7XG4gICAgYWNjb3VudElkOiBlbnZpcm9ubWVudC5hY2NvdW50LFxuICAgIHJlZ2lvbixcbiAgICBwYXJ0aXRpb246IGRvTm90VXNlTWFya2VyLFxuICB9KTtcblxuICAvLyBZZXMsIHRoaXMgaXMgZXh0cmVtZWx5IGNydWRlLCBidXQgd2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0aGlzIHNvIEknbSBub3QgaW5jbGluZWQgdG8gc3BlbmRcbiAgLy8gYSBsb3Qgb2YgZWZmb3J0IHRyeWluZyB0byB0aHJlYWQgdGhlIHJpZ2h0IHZhbHVlIHRvIHRoaXMgbG9jYXRpb24uXG4gIGlmICh1cmwuaW5kZXhPZihkb05vdFVzZU1hcmtlcikgPiAtMSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1BhcnRpdGlvblBsYWNlaG9sZGVyTm90U3VwcG9ydGVkJywgXCJDYW5ub3QgdXNlICcke0FXUzo6UGFydGl0aW9ufScgaW4gdGhlICdzdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmwnIGZpZWxkXCIpO1xuICB9XG5cbiAgY29uc3QgczNVcmwgPSB1cmwubWF0Y2goL3MzOlxcL1xcLyhbXi9dKylcXC8oLiopJC8pO1xuICBpZiAoIXMzVXJsKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gcGFzcyBhbiAnaHR0cHM6Ly9zMy5SRUdJT04uYW1hem9uYXdzLmNvbVsuY25dL2J1Y2tldC9vYmplY3QnIFVSTCB0byBDbG91ZEZvcm1hdGlvbiwgYnV0IHdlXG4gIC8vIGdvdCBhbiAnczM6Ly9idWNrZXQvb2JqZWN0JyBVUkwgaW5zdGVhZC4gQ29uc3RydWN0IHRoZSByZXN0IEFQSSBVUkwgaGVyZS5cbiAgY29uc3QgYnVja2V0TmFtZSA9IHMzVXJsWzFdO1xuICBjb25zdCBvYmplY3RLZXkgPSBzM1VybFsyXTtcblxuICBjb25zdCBvcmlnaW5hbE92ZXJyaWRlUzNFbmRwb2ludCA9IHByb2Nlc3MuZW52LkFXU19FTkRQT0lOVF9VUkxfUzM7XG4gIHNldEVudignQVdTX0VORFBPSU5UX1VSTF9TMycsIHByb2Nlc3MuZW52LkFXU19FTkRQT0lOVF9VUkxfUzNfRk9SX0NMT1VERk9STUFUSU9OKTtcbiAgdHJ5IHtcbiAgICAvLyBTREsgdjMgbm8gbG9uZ2VyIGFsbG93cyBmb3IgZ2V0dGluZyBlbmRwb2ludHMgZnJvbSBvbmx5IHJlZ2lvbi5cbiAgICAvLyBBIGNvbW1hbmQgYW5kIGNsaWVudCBjb25maWcgbXVzdCBub3cgYmUgcHJvdmlkZWQuXG4gICAgY29uc3QgczMgPSBuZXcgUzNDbGllbnQoeyByZWdpb24gfSk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBhd2FpdCBnZXRFbmRwb2ludEZyb21JbnN0cnVjdGlvbnMoe30sIEhlYWRPYmplY3RDb21tYW5kLCB7XG4gICAgICAuLi5zMy5jb25maWcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYCR7ZW5kcG9pbnQudXJsLm9yaWdpbn0vJHtidWNrZXROYW1lfS8ke29iamVjdEtleX1gO1xuICB9IGZpbmFsbHkge1xuICAgIHNldEVudignQVdTX0VORFBPSU5UX1VSTF9TMycsIG9yaWdpbmFsT3ZlcnJpZGVTM0VuZHBvaW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRFbnYobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIHByb2Nlc3MuZW52W25hbWVdID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHByb2Nlc3MuZW52W25hbWVdO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = exports.PROJECT_CONTEXT = exports.TRANSIENT_CONTEXT_KEY = void 0;\nconst settings_1 = require(\"./settings\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nvar settings_2 = require(\"./settings\");\nObject.defineProperty(exports, \"TRANSIENT_CONTEXT_KEY\", { enumerable: true, get: function () { return settings_2.TRANSIENT_CONTEXT_KEY; } });\nexports.PROJECT_CONTEXT = 'cdk.context.json';\n/**\n * Class that supports overlaying property bags\n *\n * Reads come from the first property bag that can has the given key,\n * writes go to the first property bag that is not readonly. A write\n * will remove the value from all property bags after the first\n * writable one.\n */\nclass Context {\n bags;\n fileNames;\n constructor(...bags) {\n this.bags = bags.length > 0 ? bags.map((b) => b.bag) : [new settings_1.Settings()];\n this.fileNames =\n bags.length > 0 ? bags.map((b) => b.fileName) : ['default'];\n }\n get keys() {\n return Object.keys(this.all);\n }\n has(key) {\n return this.keys.indexOf(key) > -1;\n }\n get all() {\n let ret = new settings_1.Settings();\n // In reverse order so keys to the left overwrite keys to the right of them\n for (const bag of [...this.bags].reverse()) {\n ret = ret.merge(bag);\n }\n return ret.all;\n }\n get(key) {\n for (const bag of this.bags) {\n const v = bag.get([key]);\n if (v !== undefined) {\n return v;\n }\n }\n return undefined;\n }\n set(key, value) {\n for (const bag of this.bags) {\n if (bag.readOnly) {\n continue;\n }\n // All bags past the first one have the value erased\n bag.set([key], value);\n value = undefined;\n }\n }\n unset(key) {\n this.set(key, undefined);\n }\n clear() {\n for (const key of this.keys) {\n this.unset(key);\n }\n }\n /**\n * Save a specific context file\n */\n async save(fileName) {\n const index = this.fileNames.indexOf(fileName);\n // File not found, don't do anything in this scenario\n if (index === -1) {\n return this;\n }\n const bag = this.bags[index];\n if (bag.readOnly) {\n throw new toolkit_error_1.ToolkitError('ContextReadOnly', `Context file ${fileName} is read only!`);\n }\n await bag.save(fileName);\n return this;\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXNDO0FBQ3RDLDREQUF3RDtBQUV4RCx1Q0FBbUQ7QUFBMUMsaUhBQUEscUJBQXFCLE9BQUE7QUFDakIsUUFBQSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFlbEQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsT0FBTztJQUNELElBQUksQ0FBYTtJQUNqQixTQUFTLENBQXlCO0lBRW5ELFlBQVksR0FBRyxJQUFrQjtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsU0FBUztZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsR0FBRztRQUNaLElBQUksR0FBRyxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO1FBRXpCLDJFQUEyRTtRQUMzRSxLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVztRQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDaEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pCLFNBQVM7WUFDWCxDQUFDO1lBRUQsb0RBQW9EO1lBQ3BELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QixLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQVc7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLEtBQUs7UUFDVixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLHFEQUFxRDtRQUNyRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLDRCQUFZLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLFFBQVEsZ0JBQWdCLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBaEZELDBCQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNldHRpbmdzIH0gZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG5leHBvcnQgeyBUUkFOU0lFTlRfQ09OVEVYVF9LRVkgfSBmcm9tICcuL3NldHRpbmdzJztcbmV4cG9ydCBjb25zdCBQUk9KRUNUX0NPTlRFWFQgPSAnY2RrLmNvbnRleHQuanNvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dEJhZyB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBuYW1lIG9mIHRoZSBjb250ZXh0LiBXaWxsIGJlIHVzZWQgdG8gcG90ZW50aWFsbHlcbiAgICogc2F2ZSBuZXcgY29udGV4dCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBmaWxlLlxuICAgKi9cbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IHZhbHVlcy5cbiAgICovXG4gIGJhZzogU2V0dGluZ3M7XG59XG5cbi8qKlxuICogQ2xhc3MgdGhhdCBzdXBwb3J0cyBvdmVybGF5aW5nIHByb3BlcnR5IGJhZ3NcbiAqXG4gKiBSZWFkcyBjb21lIGZyb20gdGhlIGZpcnN0IHByb3BlcnR5IGJhZyB0aGF0IGNhbiBoYXMgdGhlIGdpdmVuIGtleSxcbiAqIHdyaXRlcyBnbyB0byB0aGUgZmlyc3QgcHJvcGVydHkgYmFnIHRoYXQgaXMgbm90IHJlYWRvbmx5LiBBIHdyaXRlXG4gKiB3aWxsIHJlbW92ZSB0aGUgdmFsdWUgZnJvbSBhbGwgcHJvcGVydHkgYmFncyBhZnRlciB0aGUgZmlyc3RcbiAqIHdyaXRhYmxlIG9uZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJhZ3M6IFNldHRpbmdzW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZU5hbWVzOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmJhZ3M6IENvbnRleHRCYWdbXSkge1xuICAgIHRoaXMuYmFncyA9IGJhZ3MubGVuZ3RoID4gMCA/IGJhZ3MubWFwKChiKSA9PiBiLmJhZykgOiBbbmV3IFNldHRpbmdzKCldO1xuICAgIHRoaXMuZmlsZU5hbWVzID1cbiAgICAgIGJhZ3MubGVuZ3RoID4gMCA/IGJhZ3MubWFwKChiKSA9PiBiLmZpbGVOYW1lKSA6IFsnZGVmYXVsdCddO1xuICB9XG5cbiAgcHVibGljIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5hbGwpO1xuICB9XG5cbiAgcHVibGljIGhhcyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmtleXMuaW5kZXhPZihrZXkpID4gLTE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFsbCgpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBsZXQgcmV0ID0gbmV3IFNldHRpbmdzKCk7XG5cbiAgICAvLyBJbiByZXZlcnNlIG9yZGVyIHNvIGtleXMgdG8gdGhlIGxlZnQgb3ZlcndyaXRlIGtleXMgdG8gdGhlIHJpZ2h0IG9mIHRoZW1cbiAgICBmb3IgKGNvbnN0IGJhZyBvZiBbLi4udGhpcy5iYWdzXS5yZXZlcnNlKCkpIHtcbiAgICAgIHJldCA9IHJldC5tZXJnZShiYWcpO1xuICAgIH1cblxuICAgIHJldHVybiByZXQuYWxsO1xuICB9XG5cbiAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgZm9yIChjb25zdCBiYWcgb2YgdGhpcy5iYWdzKSB7XG4gICAgICBjb25zdCB2ID0gYmFnLmdldChba2V5XSk7XG4gICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGZvciAoY29uc3QgYmFnIG9mIHRoaXMuYmFncykge1xuICAgICAgaWYgKGJhZy5yZWFkT25seSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQWxsIGJhZ3MgcGFzdCB0aGUgZmlyc3Qgb25lIGhhdmUgdGhlIHZhbHVlIGVyYXNlZFxuICAgICAgYmFnLnNldChba2V5XSwgdmFsdWUpO1xuICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVuc2V0KGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXQoa2V5LCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cykge1xuICAgICAgdGhpcy51bnNldChrZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIGEgc3BlY2lmaWMgY29udGV4dCBmaWxlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZShmaWxlTmFtZTogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbGVOYW1lcy5pbmRleE9mKGZpbGVOYW1lKTtcblxuICAgIC8vIEZpbGUgbm90IGZvdW5kLCBkb24ndCBkbyBhbnl0aGluZyBpbiB0aGlzIHNjZW5hcmlvXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29uc3QgYmFnID0gdGhpcy5iYWdzW2luZGV4XTtcbiAgICBpZiAoYmFnLnJlYWRPbmx5KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDb250ZXh0UmVhZE9ubHknLCBgQ29udGV4dCBmaWxlICR7ZmlsZU5hbWV9IGlzIHJlYWQgb25seSFgKTtcbiAgICB9XG5cbiAgICBhd2FpdCBiYWcuc2F2ZShmaWxlTmFtZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestBuilder = void 0;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nclass AssetManifestBuilder {\n manifest = {\n version: cxschema.Manifest.version(),\n files: {},\n dockerImages: {},\n };\n addFileAsset(id, source, destination) {\n this.manifest.files[id] = {\n source,\n destinations: {\n current: destination,\n },\n };\n }\n addDockerImageAsset(id, source, destination) {\n this.manifest.dockerImages[id] = {\n source,\n destinations: {\n current: destination,\n },\n };\n }\n toManifest(directory) {\n return new cdk_assets_lib_1.AssetManifest(directory, this.manifest);\n }\n}\nexports.AssetManifestBuilder = AssetManifestBuilder;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LW1hbmlmZXN0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQXdEO0FBQ3hELDJEQUEyRDtBQUUzRCxNQUFhLG9CQUFvQjtJQUNkLFFBQVEsR0FBMkI7UUFDbEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ3BDLEtBQUssRUFBRSxFQUFFO1FBQ1QsWUFBWSxFQUFFLEVBQUU7S0FDakIsQ0FBQztJQUVLLFlBQVksQ0FBQyxFQUFVLEVBQUUsTUFBMkIsRUFBRSxXQUFxQztRQUNoRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQU0sQ0FBQyxFQUFFLENBQUMsR0FBRztZQUN6QixNQUFNO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxFQUFVLEVBQUUsTUFBa0MsRUFBRSxXQUE0QztRQUNySCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQWEsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUNoQyxNQUFNO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsU0FBaUI7UUFDakMsT0FBTyxJQUFJLDhCQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUE1QkQsb0RBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXRNYW5pZmVzdCB9IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBBc3NldE1hbmlmZXN0QnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWFuaWZlc3Q6IGN4c2NoZW1hLkFzc2V0TWFuaWZlc3QgPSB7XG4gICAgdmVyc2lvbjogY3hzY2hlbWEuTWFuaWZlc3QudmVyc2lvbigpLFxuICAgIGZpbGVzOiB7fSxcbiAgICBkb2NrZXJJbWFnZXM6IHt9LFxuICB9O1xuXG4gIHB1YmxpYyBhZGRGaWxlQXNzZXQoaWQ6IHN0cmluZywgc291cmNlOiBjeHNjaGVtYS5GaWxlU291cmNlLCBkZXN0aW5hdGlvbjogY3hzY2hlbWEuRmlsZURlc3RpbmF0aW9uKSB7XG4gICAgdGhpcy5tYW5pZmVzdC5maWxlcyFbaWRdID0ge1xuICAgICAgc291cmNlLFxuICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgIGN1cnJlbnQ6IGRlc3RpbmF0aW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFkZERvY2tlckltYWdlQXNzZXQoaWQ6IHN0cmluZywgc291cmNlOiBjeHNjaGVtYS5Eb2NrZXJJbWFnZVNvdXJjZSwgZGVzdGluYXRpb246IGN4c2NoZW1hLkRvY2tlckltYWdlRGVzdGluYXRpb24pIHtcbiAgICB0aGlzLm1hbmlmZXN0LmRvY2tlckltYWdlcyFbaWRdID0ge1xuICAgICAgc291cmNlLFxuICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgIGN1cnJlbnQ6IGRlc3RpbmF0aW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWFuaWZlc3QoZGlyZWN0b3J5OiBzdHJpbmcpOiBBc3NldE1hbmlmZXN0IHtcbiAgICByZXR1cm4gbmV3IEFzc2V0TWFuaWZlc3QoZGlyZWN0b3J5LCB0aGlzLm1hbmlmZXN0KTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasePublishProgressListener = exports.PublishingAws = void 0;\nexports.publishAssets = publishAssets;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst private_1 = require(\"../io/private\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Use cdk-assets to publish all assets in the given manifest.\n *\n * @deprecated used in legacy deployments only, should be migrated at some point\n */\nasync function publishAssets(manifest, sdk, targetEnv, options, ioHelper) {\n // This shouldn't really happen (it's a programming error), but we don't have\n // the types here to guide us. Do an runtime validation to be super super sure.\n if (targetEnv.account === undefined ||\n targetEnv.account === cloud_assembly_api_1.UNKNOWN_ACCOUNT ||\n targetEnv.region === undefined ||\n targetEnv.account === cloud_assembly_api_1.UNKNOWN_REGION) {\n throw new toolkit_error_1.ToolkitError('UnresolvedEnvironment', `Asset publishing requires resolved account and region, got ${JSON.stringify(targetEnv)}`);\n }\n const publisher = new cdk_assets_lib_1.AssetPublishing(manifest, {\n aws: new PublishingAws(sdk, targetEnv),\n progressListener: new PublishingProgressListener(ioHelper),\n throwOnError: false,\n publishInParallel: options.parallel ?? true,\n buildAssets: true,\n publishAssets: true,\n });\n await publisher.publish({ allowCrossAccount: options.allowCrossAccount });\n if (publisher.hasFailures) {\n throw new toolkit_error_1.ToolkitError('AssetPublishFailed', 'Failed to publish one or more assets. See the error messages above for more information.');\n }\n}\nclass PublishingAws {\n aws;\n targetEnv;\n sdkCache = new Map();\n constructor(\n /**\n * The base SDK to work with\n */\n aws, \n /**\n * Environment where the stack we're deploying is going\n */\n targetEnv) {\n this.aws = aws;\n this.targetEnv = targetEnv;\n }\n async discoverPartition() {\n return (await this.aws.baseCredentialsPartition(this.targetEnv, plugin_1.Mode.ForWriting)) ?? 'aws';\n }\n async discoverDefaultRegion() {\n return this.targetEnv.region;\n }\n async discoverCurrentAccount() {\n const account = await this.aws.defaultAccount();\n return (account ?? {\n accountId: '',\n partition: 'aws',\n });\n }\n async discoverTargetAccount(options) {\n return (await this.sdk(options)).currentAccount();\n }\n async s3Client(options) {\n return (await this.sdk(options)).s3();\n }\n async ecrClient(options) {\n return (await this.sdk(options)).ecr();\n }\n async secretsManagerClient(options) {\n return (await this.sdk(options)).secretsManager();\n }\n /**\n * Get an SDK appropriate for the given client options\n */\n async sdk(options) {\n const env = {\n ...this.targetEnv,\n region: options.region ?? this.targetEnv.region, // Default: same region as the stack\n };\n const cacheKeyMap = {\n env, // region, name, account\n assumeRuleArn: options.assumeRoleArn,\n assumeRoleExternalId: options.assumeRoleExternalId,\n };\n if (options.assumeRoleAdditionalOptions) {\n cacheKeyMap.assumeRoleAdditionalOptions = options.assumeRoleAdditionalOptions;\n }\n const cacheKey = JSON.stringify(cacheKeyMap);\n const maybeSdk = this.sdkCache.get(cacheKey);\n if (maybeSdk) {\n return maybeSdk;\n }\n const sdk = (await this.aws.forEnvironment(env, plugin_1.Mode.ForWriting, {\n assumeRoleArn: options.assumeRoleArn,\n assumeRoleExternalId: options.assumeRoleExternalId,\n assumeRoleAdditionalOptions: options.assumeRoleAdditionalOptions,\n })).sdk;\n this.sdkCache.set(cacheKey, sdk);\n return sdk;\n }\n}\nexports.PublishingAws = PublishingAws;\nconst EVENT_TO_MSG_MAKER = {\n // tracked events\n start: private_1.IO.CDK_ASSETS_I5270,\n success: private_1.IO.CDK_ASSETS_I5275,\n fail: private_1.IO.CDK_ASSETS_E5279,\n // debug events\n build: private_1.IO.CDK_ASSETS_I5271,\n cached: private_1.IO.CDK_ASSETS_I5271,\n check: private_1.IO.CDK_ASSETS_I5271,\n debug: private_1.IO.CDK_ASSETS_I5271,\n found: private_1.IO.CDK_ASSETS_I5271,\n upload: private_1.IO.CDK_ASSETS_I5271,\n shell_open: private_1.IO.CDK_ASSETS_I5271,\n // dropped events\n shell_stderr: false,\n shell_stdout: false,\n shell_close: false,\n};\nclass BasePublishProgressListener {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n onPublishEvent(type, event) {\n const io = EVENT_TO_MSG_MAKER[type];\n if (io) {\n const message = this.getMessage(type, event);\n void this.ioHelper.notify(io.msg(message, {\n type,\n message,\n progressPercentage: event.percentComplete,\n asset: event.currentAsset,\n }));\n }\n }\n}\nexports.BasePublishProgressListener = BasePublishProgressListener;\nclass PublishingProgressListener extends BasePublishProgressListener {\n getMessage(type, event) {\n return `[${event.percentComplete}%] ${type}: ${event.message}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LXB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMENBLHNDQThCQztBQTVERCw0REFFaUM7QUFDakMsb0VBQWdHO0FBRWhHLCtEQUEyRDtBQUczRCwyQ0FBbUM7QUFDbkMsc0NBQWlDO0FBZ0JqQzs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FDakMsUUFBdUIsRUFDdkIsR0FBZ0IsRUFDaEIsU0FBc0IsRUFDdEIsT0FBNkIsRUFDN0IsUUFBa0I7SUFFbEIsNkVBQTZFO0lBQzdFLCtFQUErRTtJQUMvRSxJQUNFLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUztRQUMvQixTQUFTLENBQUMsT0FBTyxLQUFLLG9DQUFlO1FBQ3JDLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUztRQUM5QixTQUFTLENBQUMsT0FBTyxLQUFLLG1DQUFjLEVBQ3BDLENBQUM7UUFDRCxNQUFNLElBQUksNEJBQVksQ0FBQyx1QkFBdUIsRUFBRSw4REFBOEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0ksQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUksZ0NBQWUsQ0FBQyxRQUFRLEVBQUU7UUFDOUMsR0FBRyxFQUFFLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDdEMsZ0JBQWdCLEVBQUUsSUFBSSwwQkFBMEIsQ0FBQyxRQUFRLENBQUM7UUFDMUQsWUFBWSxFQUFFLEtBQUs7UUFDbkIsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJO1FBQzNDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGFBQWEsRUFBRSxJQUFJO0tBQ3BCLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENB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QUFDO1FBQ3BDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3QyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUN4QyxJQUFJO2dCQUNKLE9BQU87Z0JBQ1Asa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGVBQWU7Z0JBQ3pDLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWTthQUMxQixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFyQkQsa0VBcUJDO0FBRUQsTUFBTSwwQkFBMkIsU0FBUSwyQkFBMkI7SUFDeEQsVUFBVSxDQUFDLElBQWUsRUFBRSxLQUF1QjtRQUMzRCxPQUFPLElBQUksS0FBSyxDQUFDLGVBQWUsTUFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ2xpZW50T3B0aW9ucyxcbiAgRXZlbnRUeXBlLFxuICBBY2NvdW50LFxuICBBc3NldE1hbmlmZXN0LFxuICBJQXdzLFxuICBJRUNSQ2xpZW50LFxuICBJUHVibGlzaFByb2dyZXNzLFxuICBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXIsXG4gIElTM0NsaWVudCxcbiAgSVNlY3JldHNNYW5hZ2VyQ2xpZW50LFxufSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQge1xuICBBc3NldFB1Ymxpc2hpbmcsXG59IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCB7IHR5cGUgRW52aXJvbm1lbnQsIFVOS05PV05fQUNDT1VOVCwgVU5LTk9XTl9SRUdJT04gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBQdWJsaXNoQXNzZXRFdmVudCB9IGZyb20gJy4uLy4uL3BheWxvYWRzL2RlcGxveSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvTWVzc2FnZU1ha2VyLCBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuXG5pbnRlcmZhY2UgUHVibGlzaEFzc2V0c09wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBidWlsZC9wdWJsaXNoIGFzc2V0cyBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIFRvIHJlbWFpbiBiYWNrd2FyZCBjb21wYXRpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNkay1hc3NldHMgaXMgYWxsb3dlZCB0byBkbyBjcm9zcyBhY2NvdW50IHB1Ymxpc2hpbmcuXG4gICAqL1xuICByZWFkb25seSBhbGxvd0Nyb3NzQWNjb3VudDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVc2UgY2RrLWFzc2V0cyB0byBwdWJsaXNoIGFsbCBhc3NldHMgaW4gdGhlIGdpdmVuIG1hbmlmZXN0LlxuICpcbiAqIEBkZXByZWNhdGVkIHVzZWQgaW4gbGVnYWN5IGRlcGxveW1lbnRzIG9ubHksIHNob3VsZCBiZSBtaWdyYXRlZCBhdCBzb21lIHBvaW50XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoQXNzZXRzKFxuICBtYW5pZmVzdDogQXNzZXRNYW5pZmVzdCxcbiAgc2RrOiBTZGtQcm92aWRlcixcbiAgdGFyZ2V0RW52OiBFbnZpcm9ubWVudCxcbiAgb3B0aW9uczogUHVibGlzaEFzc2V0c09wdGlvbnMsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbikge1xuICAvLyBUaGlzIHNob3VsZG4ndCByZWFsbHkgaGFwcGVuIChpdCdzIGEgcHJvZ3JhbW1pbmcgZXJyb3IpLCBidXQgd2UgZG9uJ3QgaGF2ZVxuICAvLyB0aGUgdHlwZXMgaGVyZSB0byBndWlkZSB1cy4gRG8gYW4gcnVudGltZSB2YWxpZGF0aW9uIHRvIGJlIHN1cGVyIHN1cGVyIHN1cmUuXG4gIGlmIChcbiAgICB0YXJnZXRFbnYuYWNjb3VudCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdGFyZ2V0RW52LmFjY291bnQgPT09IFVOS05PV05fQUNDT1VOVCB8fFxuICAgIHRhcmdldEVudi5yZWdpb24gPT09IHVuZGVmaW5lZCB8fFxuICAgIHRhcmdldEVudi5hY2NvdW50ID09PSBVTktOT1dOX1JFR0lPTlxuICApIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdVbnJlc29sdmVkRW52aXJvbm1lbnQnLCBgQXNzZXQgcHVibGlzaGluZyByZXF1aXJlcyByZXNvbHZlZCBhY2NvdW50IGFuZCByZWdpb24sIGdvdCAke0pTT04uc3RyaW5naWZ5KHRhcmdldEVudil9YCk7XG4gIH1cblxuICBjb25zdCBwdWJsaXNoZXIgPSBuZXcgQXNzZXRQdWJsaXNoaW5nKG1hbmlmZXN0LCB7XG4gICAgYXdzOiBuZXcgUHVibGlzaGluZ0F3cyhzZGssIHRhcmdldEVudiksXG4gICAgcHJvZ3Jlc3NMaXN0ZW5lcjogbmV3IFB1Ymxpc2hpbmdQcm9ncmVzc0xpc3RlbmVyKGlvSGVscGVyKSxcbiAgICB0aHJvd09uRXJyb3I6IGZhbHNlLFxuICAgIHB1Ymxpc2hJblBhcmFsbGVsOiBvcHRpb25zLnBhcmFsbGVsID8/IHRydWUsXG4gICAgYnVpbGRBc3NldHM6IHRydWUsXG4gICAgcHVibGlzaEFzc2V0czogdHJ1ZSxcbiAgfSk7XG4gIGF3YWl0IHB1Ymxpc2hlci5wdWJsaXNoKHsgYWxsb3dDcm9zc0FjY291bnQ6IG9wdGlvbnMuYWxsb3dDcm9zc0FjY291bnQgfSk7XG4gIGlmIChwdWJsaXNoZXIuaGFzRmFpbHVyZXMpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdBc3NldFB1Ymxpc2hGYWlsZWQnLCAnRmFpbGVkIHRvIHB1Ymxpc2ggb25lIG9yIG1vcmUgYXNzZXRzLiBTZWUgdGhlIGVycm9yIG1lc3NhZ2VzIGFib3ZlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaXNoaW5nQXdzIGltcGxlbWVudHMgSUF3cyB7XG4gIHByaXZhdGUgc2RrQ2FjaGU6IE1hcDxTdHJpbmcsIFNESz4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgU0RLIHRvIHdvcmsgd2l0aFxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlcixcblxuICAgIC8qKlxuICAgICAqIEVudmlyb25tZW50IHdoZXJlIHRoZSBzdGFjayB3ZSdyZSBkZXBsb3lpbmcgaXMgZ29pbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldEVudjogRW52aXJvbm1lbnQsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmF3cy5iYXNlQ3JlZGVudGlhbHNQYXJ0aXRpb24odGhpcy50YXJnZXRFbnYsIE1vZGUuRm9yV3JpdGluZykpID8/ICdhd3MnO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyRGVmYXVsdFJlZ2lvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnRhcmdldEVudi5yZWdpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgdGhpcy5hd3MuZGVmYXVsdEFjY291bnQoKTtcbiAgICByZXR1cm4gKFxuICAgICAgYWNjb3VudCA/PyB7XG4gICAgICAgIGFjY291bnRJZDogJzx1bmtub3duIGFjY291bnQ+JyxcbiAgICAgICAgcGFydGl0aW9uOiAnYXdzJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuY3VycmVudEFjY291bnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzM0NsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJUzNDbGllbnQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc2RrKG9wdGlvbnMpKS5zMygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVjckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJRUNSQ2xpZW50PiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuZWNyKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VjcmV0c01hbmFnZXJDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVNlY3JldHNNYW5hZ2VyQ2xpZW50PiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuc2VjcmV0c01hbmFnZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIGFwcHJvcHJpYXRlIGZvciB0aGUgZ2l2ZW4gY2xpZW50IG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc2RrKG9wdGlvbnM6IENsaWVudE9wdGlvbnMpOiBQcm9taXNlPFNESz4ge1xuICAgIGNvbnN0IGVudiA9IHtcbiAgICAgIC4uLnRoaXMudGFyZ2V0RW52LFxuICAgICAgcmVnaW9uOiBvcHRpb25zLnJlZ2lvbiA/PyB0aGlzLnRhcmdldEVudi5yZWdpb24sIC8vIERlZmF1bHQ6IHNhbWUgcmVnaW9uIGFzIHRoZSBzdGFja1xuICAgIH07XG5cbiAgICBjb25zdCBjYWNoZUtleU1hcDogYW55ID0ge1xuICAgICAgZW52LCAvLyByZWdpb24sIG5hbWUsIGFjY291bnRcbiAgICAgIGFzc3VtZVJ1bGVBcm46IG9wdGlvbnMuYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMpIHtcbiAgICAgIGNhY2hlS2V5TWFwLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IG9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gSlNPTi5zdHJpbmdpZnkoY2FjaGVLZXlNYXApO1xuXG4gICAgY29uc3QgbWF5YmVTZGsgPSB0aGlzLnNka0NhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKG1heWJlU2RrKSB7XG4gICAgICByZXR1cm4gbWF5YmVTZGs7XG4gICAgfVxuXG4gICAgY29uc3Qgc2RrID0gKFxuICAgICAgYXdhaXQgdGhpcy5hd3MuZm9yRW52aXJvbm1lbnQoXG4gICAgICAgIGVudixcbiAgICAgICAgTW9kZS5Gb3JXcml0aW5nLFxuICAgICAgICB7XG4gICAgICAgICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5hc3N1bWVSb2xlQXJuLFxuICAgICAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgKS5zZGs7XG4gICAgdGhpcy5zZGtDYWNoZS5zZXQoY2FjaGVLZXksIHNkayk7XG5cbiAgICByZXR1cm4gc2RrO1xuICB9XG59XG5cbmNvbnN0IEVWRU5UX1RPX01TR19NQUtFUjogUmVjb3JkPEV2ZW50VHlwZSwgSW9NZXNzYWdlTWFrZXI8UHVibGlzaEFzc2V0RXZlbnQ+IHwgZmFsc2U+ID0ge1xuICAvLyB0cmFja2VkIGV2ZW50c1xuICBzdGFydDogSU8uQ0RLX0FTU0VUU19JNTI3MCxcbiAgc3VjY2VzczogSU8uQ0RLX0FTU0VUU19JNTI3NSxcbiAgZmFpbDogSU8uQ0RLX0FTU0VUU19FNTI3OSxcblxuICAvLyBkZWJ1ZyBldmVudHNcbiAgYnVpbGQ6IElPLkNES19BU1NFVFNfSTUyNzEsXG4gIGNhY2hlZDogSU8uQ0RLX0FTU0VUU19JNTI3MSxcbiAgY2hlY2s6IElPLkNES19BU1NFVFNfSTUyNzEsXG4gIGRlYnVnOiBJTy5DREtfQVNTRVRTX0k1MjcxLFxuICBmb3VuZDogSU8uQ0RLX0FTU0VUU19JNTI3MSxcbiAgdXBsb2FkOiBJTy5DREtfQVNTRVRTX0k1MjcxLFxuICBzaGVsbF9vcGVuOiBJTy5DREtfQVNTRVRTX0k1MjcxLFxuXG4gIC8vIGRyb3BwZWQgZXZlbnRzXG4gIHNoZWxsX3N0ZGVycjogZmFsc2UsXG4gIHNoZWxsX3N0ZG91dDogZmFsc2UsXG4gIHNoZWxsX2Nsb3NlOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUHVibGlzaFByb2dyZXNzTGlzdGVuZXIgaW1wbGVtZW50cyBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXIge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRNZXNzYWdlKHR5cGU6IEV2ZW50VHlwZSwgZXZlbnQ6IElQdWJsaXNoUHJvZ3Jlc3MpOiBzdHJpbmc7XG5cbiAgcHVibGljIG9uUHVibGlzaEV2ZW50KHR5cGU6IEV2ZW50VHlwZSwgZXZlbnQ6IElQdWJsaXNoUHJvZ3Jlc3MpOiB2b2lkIHtcbiAgICBjb25zdCBpbyA9IEVWRU5UX1RPX01TR19NQUtFUlt0eXBlXTtcbiAgICBpZiAoaW8pIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmdldE1lc3NhZ2UodHlwZSwgZXZlbnQpO1xuICAgICAgdm9pZCB0aGlzLmlvSGVscGVyLm5vdGlmeShpby5tc2cobWVzc2FnZSwge1xuICAgICAgICB0eXBlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBwcm9ncmVzc1BlcmNlbnRhZ2U6IGV2ZW50LnBlcmNlbnRDb21wbGV0ZSxcbiAgICAgICAgYXNzZXQ6IGV2ZW50LmN1cnJlbnRBc3NldCxcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgUHVibGlzaGluZ1Byb2dyZXNzTGlzdGVuZXIgZXh0ZW5kcyBCYXNlUHVibGlzaFByb2dyZXNzTGlzdGVuZXIge1xuICBwcm90ZWN0ZWQgZ2V0TWVzc2FnZSh0eXBlOiBFdmVudFR5cGUsIGV2ZW50OiBJUHVibGlzaFByb2dyZXNzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFske2V2ZW50LnBlcmNlbnRDb21wbGV0ZX0lXSAke3R5cGV9OiAke2V2ZW50Lm1lc3NhZ2V9YDtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addMetadataAssetsToManifest = addMetadataAssetsToManifest;\nconst path = require(\"path\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst chalk = require(\"chalk\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\n/**\n * Take the metadata assets from the given stack and add them to the given asset manifest\n *\n * Returns the CloudFormation parameters that need to be sent to the template to\n * pass Asset coordinates.\n */\nasync function addMetadataAssetsToManifest(ioHelper, stack, assetManifest, envResources, reuse) {\n reuse = reuse || [];\n const assets = stack.assets;\n if (assets.length === 0) {\n return {};\n }\n const toolkitInfo = await envResources.lookupToolkit();\n if (!toolkitInfo.found) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ToolkitError('BootstrapStackRequired', `This stack uses assets, so the toolkit stack must be deployed to the environment (Run \"${chalk.blue('cdk bootstrap ' + stack.environment.name)}\")`);\n }\n const params = {};\n for (const asset of assets) {\n // FIXME: Should have excluded by construct path here instead of by unique ID, preferably using\n // picomatch so we can support globs. Maybe take up during artifact refactoring.\n const reuseAsset = reuse.indexOf(asset.id) > -1;\n if (reuseAsset) {\n await ioHelper.defaults.debug(`Reusing asset ${asset.id}: ${JSON.stringify(asset)}`);\n continue;\n }\n await ioHelper.defaults.debug(`Preparing asset ${asset.id}: ${JSON.stringify(asset)}`);\n if (!stack.assembly) {\n throw new toolkit_error_1.ToolkitError('AssemblyRequired', 'Unexpected: stack assembly is required in order to find assets in assembly directory');\n }\n Object.assign(params, await prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo));\n }\n return params;\n}\n// eslint-disable-next-line @stylistic/max-len\nasync function prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo) {\n switch (asset.packaging) {\n case 'zip':\n case 'file':\n return prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, asset.packaging === 'zip' ? cxschema.FileAssetPackaging.ZIP_DIRECTORY : cxschema.FileAssetPackaging.FILE);\n case 'container-image':\n return prepareDockerImageAsset(asset, assetManifest, envResources);\n default:\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ToolkitError('UnsupportedPackaging', `Unsupported packaging type: ${asset.packaging}. You might need to upgrade your aws-cdk toolkit to support this asset type.`);\n }\n}\nasync function prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, packaging) {\n const extension = packaging === cxschema.FileAssetPackaging.ZIP_DIRECTORY ? '.zip' : path.extname(asset.path);\n const baseName = `${asset.sourceHash}${extension}`;\n // Simplify key: assets/abcdef/abcdef.zip is kinda silly and unnecessary, so if they're the same just pick one component.\n const s3Prefix = asset.id === asset.sourceHash ? 'assets/' : `assets/${asset.id}/`;\n const key = `${s3Prefix}${baseName}`;\n const s3url = `s3://${toolkitInfo.bucketName}/${key}`;\n await ioHelper.defaults.debug(`Storing asset ${asset.path} at ${s3url}`);\n assetManifest.addFileAsset(asset.sourceHash, {\n path: asset.path,\n packaging,\n }, {\n bucketName: toolkitInfo.bucketName,\n objectKey: key,\n });\n return {\n [asset.s3BucketParameter]: toolkitInfo.bucketName,\n [asset.s3KeyParameter]: `${s3Prefix}${cxapi.ASSET_PREFIX_SEPARATOR}${baseName}`,\n [asset.artifactHashParameter]: asset.sourceHash,\n };\n}\nasync function prepareDockerImageAsset(asset, assetManifest, envResources) {\n // Pre-1.21.0, repositoryName can be specified by the user or can be left out, in which case we make\n // a per-asset repository which will get adopted and cleaned up along with the stack.\n // Post-1.21.0, repositoryName will always be specified and it will be a shared repository between\n // all assets, and asset will have imageTag specified as well. Validate the combination.\n if (!asset.imageNameParameter && (!asset.repositoryName || !asset.imageTag)) {\n throw new toolkit_error_1.ToolkitError('InvalidDockerAssetConfig', 'Invalid Docker image asset configuration: \"repositoryName\" and \"imageTag\" are required when \"imageNameParameter\" is left out');\n }\n const repositoryName = asset.repositoryName ?? 'cdk/' + asset.id.replace(/[:/]/g, '-').toLowerCase();\n // Make sure the repository exists, since the 'cdk-assets' tool will not create it for us.\n const { repositoryUri } = await envResources.prepareEcrRepository(repositoryName);\n const imageTag = asset.imageTag ?? asset.sourceHash;\n assetManifest.addDockerImageAsset(asset.sourceHash, {\n directory: asset.path,\n dockerBuildArgs: asset.buildArgs,\n dockerBuildSecrets: asset.buildSecrets,\n dockerBuildSsh: asset.buildSsh,\n dockerBuildTarget: asset.target,\n dockerFile: asset.file,\n networkMode: asset.networkMode,\n platform: asset.platform,\n dockerOutputs: asset.outputs,\n }, {\n repositoryName,\n imageTag,\n });\n if (!asset.imageNameParameter) {\n return {};\n }\n return { [asset.imageNameParameter]: `${repositoryUri}:${imageTag}` };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLGtFQXlDQztBQXpERCw2QkFBNkI7QUFDN0IscURBQXFEO0FBQ3JELDJEQUEyRDtBQUMzRCwrQkFBK0I7QUFFL0IsK0RBQTJEO0FBSzNEOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxRQUFrQixFQUNsQixLQUF3QyxFQUN4QyxhQUFtQyxFQUNuQyxZQUFrQyxFQUNsQyxLQUFnQjtJQUVoQixLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNwQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRTVCLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLDhDQUE4QztRQUM5QyxNQUFNLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsRUFBRSwwRkFBMEYsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsV0FBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6TSxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztJQUUxQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLCtGQUErRjtRQUMvRixnRkFBZ0Y7UUFDaEYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxL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WTtRQUN0QyxjQUFjLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDOUIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU07UUFDL0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ3RCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPO0tBQzdCLEVBQUU7UUFDRCxjQUFjO1FBQ2QsUUFBUTtLQUNULENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxHQUFHLGFBQWEsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi9hc3NldC1tYW5pZmVzdC1idWlsZGVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0SW5mbyB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbi8qKlxuICogVGFrZSB0aGUgbWV0YWRhdGEgYXNzZXRzIGZyb20gdGhlIGdpdmVuIHN0YWNrIGFuZCBhZGQgdGhlbSB0byB0aGUgZ2l2ZW4gYXNzZXQgbWFuaWZlc3RcbiAqXG4gKiBSZXR1cm5zIHRoZSBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXJzIHRoYXQgbmVlZCB0byBiZSBzZW50IHRvIHRoZSB0ZW1wbGF0ZSB0b1xuICogcGFzcyBBc3NldCBjb29yZGluYXRlcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZE1ldGFkYXRhQXNzZXRzVG9NYW5pZmVzdChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0QnVpbGRlcixcbiAgZW52UmVzb3VyY2VzOiBFbnZpcm9ubWVudFJlc291cmNlcyxcbiAgcmV1c2U/OiBzdHJpbmdbXSxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICByZXVzZSA9IHJldXNlIHx8IFtdO1xuICBjb25zdCBhc3NldHMgPSBzdGFjay5hc3NldHM7XG5cbiAgaWYgKGFzc2V0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCB0b29sa2l0SW5mbyA9IGF3YWl0IGVudlJlc291cmNlcy5sb29rdXBUb29sa2l0KCk7XG4gIGlmICghdG9vbGtpdEluZm8uZm91bmQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwU3RhY2tSZXF1aXJlZCcsIGBUaGlzIHN0YWNrIHVzZXMgYXNzZXRzLCBzbyB0aGUgdG9vbGtpdCBzdGFjayBtdXN0IGJlIGRlcGxveWVkIHRvIHRoZSBlbnZpcm9ubWVudCAoUnVuIFwiJHtjaGFsay5ibHVlKCdjZGsgYm9vdHN0cmFwICcgKyBzdGFjay5lbnZpcm9ubWVudCEubmFtZSl9XCIpYCk7XG4gIH1cblxuICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IGFzc2V0IG9mIGFzc2V0cykge1xuICAgIC8vIEZJWE1FOiBTaG91bGQgaGF2ZSBleGNsdWRlZCBieSBjb25zdHJ1Y3QgcGF0aCBoZXJlIGluc3RlYWQgb2YgYnkgdW5pcXVlIElELCBwcmVmZXJhYmx5IHVzaW5nXG4gICAgLy8gcGljb21hdGNoIHNvIHdlIGNhbiBzdXBwb3J0IGdsb2JzLiBNYXliZSB0YWtlIHVwIGR1cmluZyBhcnRpZmFjdCByZWZhY3RvcmluZy5cbiAgICBjb25zdCByZXVzZUFzc2V0ID0gcmV1c2UuaW5kZXhPZihhc3NldC5pZCkgPiAtMTtcblxuICAgIGlmIChyZXVzZUFzc2V0KSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmV1c2luZyBhc3NldCAke2Fzc2V0LmlkfTogJHtKU09OLnN0cmluZ2lmeShhc3NldCl9YCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUHJlcGFyaW5nIGFzc2V0ICR7YXNzZXQuaWR9OiAke0pTT04uc3RyaW5naWZ5KGFzc2V0KX1gKTtcbiAgICBpZiAoIXN0YWNrLmFzc2VtYmx5KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdBc3NlbWJseVJlcXVpcmVkJywgJ1VuZXhwZWN0ZWQ6IHN0YWNrIGFzc2VtYmx5IGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGZpbmQgYXNzZXRzIGluIGFzc2VtYmx5IGRpcmVjdG9yeScpO1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBhd2FpdCBwcmVwYXJlQXNzZXQoaW9IZWxwZXIsIGFzc2V0LCBhc3NldE1hbmlmZXN0LCBlbnZSZXNvdXJjZXMsIHRvb2xraXRJbmZvKSk7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG5hc3luYyBmdW5jdGlvbiBwcmVwYXJlQXNzZXQoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgYXNzZXQ6IGN4c2NoZW1hLkFzc2V0TWV0YWRhdGFFbnRyeSxcbiAgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIGVudlJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXMsXG4gIHRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICBzd2l0Y2ggKGFzc2V0LnBhY2thZ2luZykge1xuICAgIGNhc2UgJ3ppcCc6XG4gICAgY2FzZSAnZmlsZSc6XG4gICAgICByZXR1cm4gcHJlcGFyZUZpbGVBc3NldChcbiAgICAgICAgaW9IZWxwZXIsXG4gICAgICAgIGFzc2V0LFxuICAgICAgICBhc3NldE1hbmlmZXN0LFxuICAgICAgICB0b29sa2l0SW5mbyxcbiAgICAgICAgYXNzZXQucGFja2FnaW5nID09PSAnemlwJyA/IGN4c2NoZW1hLkZpbGVBc3NldFBhY2thZ2luZy5aSVBfRElSRUNUT1JZIDogY3hzY2hlbWEuRmlsZUFzc2V0UGFja2FnaW5nLkZJTEUpO1xuICAgIGNhc2UgJ2NvbnRhaW5lci1pbWFnZSc6XG4gICAgICByZXR1cm4gcHJlcGFyZURvY2tlckltYWdlQXNzZXQoYXNzZXQsIGFzc2V0TWFuaWZlc3QsIGVudlJlc291cmNlcyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Vuc3VwcG9ydGVkUGFja2FnaW5nJywgYFVuc3VwcG9ydGVkIHBhY2thZ2luZyB0eXBlOiAkeyhhc3NldCBhcyBhbnkpLnBhY2thZ2luZ30uIFlvdSBtaWdodCBuZWVkIHRvIHVwZ3JhZGUgeW91ciBhd3MtY2RrIHRvb2xraXQgdG8gc3VwcG9ydCB0aGlzIGFzc2V0IHR5cGUuYCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUZpbGVBc3NldChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBhc3NldDogY3hzY2hlbWEuRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSxcbiAgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIHRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbiAgcGFja2FnaW5nOiBjeHNjaGVtYS5GaWxlQXNzZXRQYWNrYWdpbmcsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gcGFja2FnaW5nID09PSBjeHNjaGVtYS5GaWxlQXNzZXRQYWNrYWdpbmcuWklQX0RJUkVDVE9SWSA/ICcuemlwJyA6IHBhdGguZXh0bmFtZShhc3NldC5wYXRoKTtcbiAgY29uc3QgYmFzZU5hbWUgPSBgJHthc3NldC5zb3VyY2VIYXNofSR7ZXh0ZW5zaW9ufWA7XG4gIC8vIFNpbXBsaWZ5IGtleTogYXNzZXRzL2FiY2RlZi9hYmNkZWYuemlwIGlzIGtpbmRhIHNpbGx5IGFuZCB1bm5lY2Vzc2FyeSwgc28gaWYgdGhleSdyZSB0aGUgc2FtZSBqdXN0IHBpY2sgb25lIGNvbXBvbmVudC5cbiAgY29uc3QgczNQcmVmaXggPSBhc3NldC5pZCA9PT0gYXNzZXQuc291cmNlSGFzaCA/ICdhc3NldHMvJyA6IGBhc3NldHMvJHthc3NldC5pZH0vYDtcbiAgY29uc3Qga2V5ID0gYCR7czNQcmVmaXh9JHtiYXNlTmFtZX1gO1xuICBjb25zdCBzM3VybCA9IGBzMzovLyR7dG9vbGtpdEluZm8uYnVja2V0TmFtZX0vJHtrZXl9YDtcblxuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgU3RvcmluZyBhc3NldCAke2Fzc2V0LnBhdGh9IGF0ICR7czN1cmx9YCk7XG5cbiAgYXNzZXRNYW5pZmVzdC5hZGRGaWxlQXNzZXQoYXNzZXQuc291cmNlSGFzaCwge1xuICAgIHBhdGg6IGFzc2V0LnBhdGgsXG4gICAgcGFja2FnaW5nLFxuICB9LCB7XG4gICAgYnVja2V0TmFtZTogdG9vbGtpdEluZm8uYnVja2V0TmFtZSxcbiAgICBvYmplY3RLZXk6IGtleSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBbYXNzZXQuczNCdWNrZXRQYXJhbWV0ZXJdOiB0b29sa2l0SW5mby5idWNrZXROYW1lLFxuICAgIFthc3NldC5zM0tleVBhcmFtZXRlcl06IGAke3MzUHJlZml4fSR7Y3hhcGkuQVNTRVRfUFJFRklYX1NFUEFSQVRPUn0ke2Jhc2VOYW1lfWAsXG4gICAgW2Fzc2V0LmFydGlmYWN0SGFzaFBhcmFtZXRlcl06IGFzc2V0LnNvdXJjZUhhc2gsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByZXBhcmVEb2NrZXJJbWFnZUFzc2V0KFxuICBhc3NldDogY3hzY2hlbWEuQ29udGFpbmVySW1hZ2VBc3NldE1ldGFkYXRhRW50cnksXG4gIGFzc2V0TWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RCdWlsZGVyLFxuICBlbnZSZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIC8vIFByZS0xLjIxLjAsIHJlcG9zaXRvcnlOYW1lIGNhbiBiZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIgb3IgY2FuIGJlIGxlZnQgb3V0LCBpbiB3aGljaCBjYXNlIHdlIG1ha2VcbiAgLy8gYSBwZXItYXNzZXQgcmVwb3NpdG9yeSB3aGljaCB3aWxsIGdldCBhZG9wdGVkIGFuZCBjbGVhbmVkIHVwIGFsb25nIHdpdGggdGhlIHN0YWNrLlxuICAvLyBQb3N0LTEuMjEuMCwgcmVwb3NpdG9yeU5hbWUgd2lsbCBhbHdheXMgYmUgc3BlY2lmaWVkIGFuZCBpdCB3aWxsIGJlIGEgc2hhcmVkIHJlcG9zaXRvcnkgYmV0d2VlblxuICAvLyBhbGwgYXNzZXRzLCBhbmQgYXNzZXQgd2lsbCBoYXZlIGltYWdlVGFnIHNwZWNpZmllZCBhcyB3ZWxsLiBWYWxpZGF0ZSB0aGUgY29tYmluYXRpb24uXG4gIGlmICghYXNzZXQuaW1hZ2VOYW1lUGFyYW1ldGVyICYmICghYXNzZXQucmVwb3NpdG9yeU5hbWUgfHwgIWFzc2V0LmltYWdlVGFnKSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWREb2NrZXJBc3NldENvbmZpZycsICdJbnZhbGlkIERvY2tlciBpbWFnZSBhc3NldCBjb25maWd1cmF0aW9uOiBcInJlcG9zaXRvcnlOYW1lXCIgYW5kIFwiaW1hZ2VUYWdcIiBhcmUgcmVxdWlyZWQgd2hlbiBcImltYWdlTmFtZVBhcmFtZXRlclwiIGlzIGxlZnQgb3V0Jyk7XG4gIH1cblxuICBjb25zdCByZXBvc2l0b3J5TmFtZSA9IGFzc2V0LnJlcG9zaXRvcnlOYW1lID8/ICdjZGsvJyArIGFzc2V0LmlkLnJlcGxhY2UoL1s6L10vZywgJy0nKS50b0xvd2VyQ2FzZSgpO1xuXG4gIC8vIE1ha2Ugc3VyZSB0aGUgcmVwb3NpdG9yeSBleGlzdHMsIHNpbmNlIHRoZSAnY2RrLWFzc2V0cycgdG9vbCB3aWxsIG5vdCBjcmVhdGUgaXQgZm9yIHVzLlxuICBjb25zdCB7IHJlcG9zaXRvcnlVcmkgfSA9IGF3YWl0IGVudlJlc291cmNlcy5wcmVwYXJlRWNyUmVwb3NpdG9yeShyZXBvc2l0b3J5TmFtZSk7XG4gIGNvbnN0IGltYWdlVGFnID0gYXNzZXQuaW1hZ2VUYWcgPz8gYXNzZXQuc291cmNlSGFzaDtcblxuICBhc3NldE1hbmlmZXN0LmFkZERvY2tlckltYWdlQXNzZXQoYXNzZXQuc291cmNlSGFzaCwge1xuICAgIGRpcmVjdG9yeTogYXNzZXQucGF0aCxcbiAgICBkb2NrZXJCdWlsZEFyZ3M6IGFzc2V0LmJ1aWxkQXJncyxcbiAgICBkb2NrZXJCdWlsZFNlY3JldHM6IGFzc2V0LmJ1aWxkU2VjcmV0cyxcbiAgICBkb2NrZXJCdWlsZFNzaDogYXNzZXQuYnVpbGRTc2gsXG4gICAgZG9ja2VyQnVpbGRUYXJnZXQ6IGFzc2V0LnRhcmdldCxcbiAgICBkb2NrZXJGaWxlOiBhc3NldC5maWxlLFxuICAgIG5ldHdvcmtNb2RlOiBhc3NldC5uZXR3b3JrTW9kZSxcbiAgICBwbGF0Zm9ybTogYXNzZXQucGxhdGZvcm0sXG4gICAgZG9ja2VyT3V0cHV0czogYXNzZXQub3V0cHV0cyxcbiAgfSwge1xuICAgIHJlcG9zaXRvcnlOYW1lLFxuICAgIGltYWdlVGFnLFxuICB9KTtcblxuICBpZiAoIWFzc2V0LmltYWdlTmFtZVBhcmFtZXRlcikge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICByZXR1cm4geyBbYXNzZXQuaW1hZ2VOYW1lUGFyYW1ldGVyXTogYCR7cmVwb3NpdG9yeVVyaX06JHtpbWFnZVRhZ31gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParameterValues = exports.TemplateParameters = void 0;\nexports.waitForChangeSet = waitForChangeSet;\nexports.createDiffChangeSet = createDiffChangeSet;\nexports.uploadStackTemplateAssets = uploadStackTemplateAssets;\nexports.createChangeSet = createChangeSet;\nexports.changeSetHasNoChanges = changeSetHasNoChanges;\nexports.waitForStackDelete = waitForStackDelete;\nexports.waitForStackDeploy = waitForStackDeploy;\nexports.stabilizeStack = stabilizeStack;\nconst util_1 = require(\"util\");\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\nconst asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst cloudformation_1 = require(\"../cloudformation\");\n/**\n * Describe a changeset in CloudFormation, regardless of its current state.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the Stack the ChangeSet belongs to\n * @param changeSetName - the name of the ChangeSet\n * @param fetchAll - if true, fetches all pages of the change set description.\n *\n * @returns CloudFormation information about the ChangeSet\n */\nasync function describeChangeSet(cfn, stackName, changeSetName, { fetchAll }) {\n const response = await cfn.describeChangeSet({\n StackName: stackName,\n ChangeSetName: changeSetName,\n });\n // If fetchAll is true, traverse all pages from the change set description.\n while (fetchAll && response.NextToken != null) {\n const nextPage = await cfn.describeChangeSet({\n StackName: stackName,\n ChangeSetName: response.ChangeSetId ?? changeSetName,\n NextToken: response.NextToken,\n });\n // Consolidate the changes\n if (nextPage.Changes != null) {\n response.Changes = response.Changes != null ? response.Changes.concat(nextPage.Changes) : nextPage.Changes;\n }\n // Forward the new NextToken\n response.NextToken = nextPage.NextToken;\n }\n return response;\n}\n/**\n * Waits for a function to return non-+undefined+ before returning.\n *\n * @param valueProvider - a function that will return a value that is not +undefined+ once the wait should be over\n * @param timeout - the time to wait between two calls to +valueProvider+\n *\n * @returns the value that was returned by +valueProvider+\n */\nasync function waitFor(valueProvider, timeout = 5000) {\n while (true) {\n const result = await valueProvider();\n if (result === null) {\n return undefined;\n }\n else if (result !== undefined) {\n return result;\n }\n await new Promise((cb) => setTimeout(cb, timeout));\n }\n}\n/**\n * Waits for a ChangeSet to be available for triggering a StackUpdate.\n *\n * Will return a changeset that is either ready to be executed or has no changes.\n * Will throw in other cases.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the Stack that the ChangeSet belongs to\n * @param changeSetName - the name of the ChangeSet\n * @param fetchAll - if true, fetches all pages of the ChangeSet before returning.\n *\n * @returns the CloudFormation description of the ChangeSet\n */\nasync function waitForChangeSet(cfn, ioHelper, stackName, changeSetName, { fetchAll, validationReporter }) {\n await ioHelper.defaults.debug((0, util_1.format)('Waiting for changeset %s on stack %s to finish creating...', changeSetName, stackName));\n const ret = await waitFor(async () => {\n const description = await describeChangeSet(cfn, stackName, changeSetName, {\n fetchAll,\n });\n // The following doesn't use a switch because tsc will not allow fall-through, UNLESS it is allows\n // EVERYWHERE that uses this library directly or indirectly, which is undesirable.\n if (description.Status === 'CREATE_PENDING' || description.Status === 'CREATE_IN_PROGRESS') {\n await ioHelper.defaults.debug((0, util_1.format)('Changeset %s on stack %s is still creating', changeSetName, stackName));\n return undefined;\n }\n if (description.Status === client_cloudformation_1.ChangeSetStatus.CREATE_COMPLETE || changeSetHasNoChanges(description)) {\n return description;\n }\n const isEarlyValidationError = description.Status === client_cloudformation_1.ChangeSetStatus.FAILED &&\n description.StatusReason?.includes('AWS::EarlyValidation');\n if (isEarlyValidationError) {\n const details = await validationReporter?.fetchDetails(changeSetName, stackName);\n if (details) {\n throw new toolkit_error_1.DeploymentError(details, 'EarlyValidationFailure');\n }\n }\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.DeploymentError(`Failed to create ChangeSet ${changeSetName} on ${stackName}: ${description.Status || 'NO_STATUS'}, ${description.StatusReason || 'no reason provided'}`, 'ChangeSetCreationFailed');\n });\n if (!ret) {\n throw new toolkit_error_1.DeploymentError('Change set took too long to be created; aborting', 'ChangeSetTimeout');\n }\n return ret;\n}\n/**\n * Create a changeset for a diff operation\n */\nasync function createDiffChangeSet(ioHelper, options) {\n return uploadBodyParameterAndCreateChangeSet(ioHelper, {\n ...options,\n includeNestedStacks: (0, cloudformation_1.templateContainsNestedStacks)(options.stack.template),\n });\n}\n/**\n * Returns all file entries from an AssetManifestArtifact that look like templates.\n *\n * This is used in the `uploadBodyParameterAndCreateChangeSet` function to find\n * all template asset files to build and publish.\n *\n * Returns a tuple of [AssetManifest, FileManifestEntry[]]\n */\nfunction templatesFromAssetManifestArtifact(artifact) {\n const assets = [];\n const fileName = artifact.file;\n const assetManifest = cdk_assets_lib_1.AssetManifest.fromFile(fileName);\n assetManifest.entries.forEach((entry) => {\n if (entry.type === 'file') {\n const source = entry.source;\n if (source.path && source.path.endsWith('.template.json')) {\n assets.push(entry);\n }\n }\n });\n return [assetManifest, assets];\n}\nasync function uploadBodyParameterAndCreateChangeSet(ioHelper, options) {\n try {\n await uploadStackTemplateAssets(options.stack, options.deployments);\n const env = await options.deployments.envs.accessStackForMutableStackOperations(options.stack);\n const bodyParameter = await (0, cloudformation_1.makeBodyParameter)(ioHelper, options.stack, env.resolvedEnvironment, new asset_manifest_builder_1.AssetManifestBuilder(), env.resources);\n const cfn = env.sdk.cloudFormation();\n const stack = await cloudformation_1.CloudFormationStack.lookup(cfn, options.stack.stackName, false);\n // A stack in REVIEW_IN_PROGRESS was created by a previous CREATE changeset\n // that was never executed. Treat it as non-existent for changeset purposes.\n const exists = stack.exists && stack.stackStatus.name !== 'REVIEW_IN_PROGRESS';\n const executionRoleArn = await env.replacePlaceholders(options.stack.cloudFormationExecutionRoleArn);\n await ioHelper.defaults.info('Hold on while we create a read-only change set to get a diff with accurate replacement information (use --method=template to use a less accurate but faster template-only diff)\\n');\n return await createChangeSet(ioHelper, {\n cfn,\n changeSetName: 'cdk-diff-change-set',\n stack: options.stack,\n exists,\n uuid: options.uuid,\n willExecute: options.willExecute,\n bodyParameter,\n parameters: options.parameters,\n resourcesToImport: options.resourcesToImport,\n importExistingResources: options.importExistingResources,\n includeNestedStacks: options.includeNestedStacks,\n role: executionRoleArn,\n });\n }\n catch (e) {\n // This function is currently only used by diff so these messages are diff-specific\n if (options.failOnError) {\n throw toolkit_error_1.ToolkitError.withCause('ChangeSetCreationFailed', 'Could not create a change set, and \\'--method=change-set\\' was specified. Please check your permissions or use \\'--method=auto\\' to allow falling back to a template diff.', e);\n }\n await ioHelper.defaults.debug(String(e));\n await ioHelper.defaults.info('Could not create a change set, will base the diff on template differences (run again with -v to see the reason)\\n');\n return undefined;\n }\n}\n/**\n * Uploads the assets that look like templates for this CloudFormation stack\n *\n * This is necessary for any CloudFormation call that needs the template, it may need\n * to be uploaded to an S3 bucket first. We have to follow the instructions in the\n * asset manifest, because technically that is the only place that knows about\n * bucket and assumed roles and such.\n */\nasync function uploadStackTemplateAssets(stack, deployments) {\n for (const artifact of stack.dependencies) {\n // Skip artifact if it is not an Asset Manifest Artifact\n if (!cxapi.AssetManifestArtifact.isAssetManifestArtifact(artifact)) {\n continue;\n }\n const [assetManifest, file_entries] = templatesFromAssetManifestArtifact(artifact);\n for (const entry of file_entries) {\n await deployments.buildSingleAsset(artifact, assetManifest, entry, {\n stack,\n });\n await deployments.publishSingleAsset(assetManifest, entry, {\n stack,\n });\n }\n }\n}\nasync function createChangeSet(ioHelper, options) {\n if (options.exists) {\n await cleanupOldChangeset(options.cfn, ioHelper, options.changeSetName, options.stack.stackName);\n }\n await ioHelper.defaults.debug(`Attempting to create ChangeSet with name ${options.changeSetName} for stack ${options.stack.stackName}`);\n const templateParams = TemplateParameters.fromTemplate(options.stack.template);\n const stackParams = templateParams.supplyAll(options.parameters);\n const changeSet = await options.cfn.createChangeSet({\n StackName: options.stack.stackName,\n ChangeSetName: options.changeSetName,\n ChangeSetType: options.resourcesToImport ? 'IMPORT' : options.exists ? 'UPDATE' : 'CREATE',\n Description: `CDK Changeset for diff ${options.uuid}`,\n ClientToken: `diff${options.uuid}`,\n TemplateURL: options.bodyParameter.TemplateURL,\n TemplateBody: options.bodyParameter.TemplateBody,\n Parameters: stackParams.apiParameters,\n ResourcesToImport: options.resourcesToImport,\n ImportExistingResources: options.importExistingResources,\n IncludeNestedStacks: options.includeNestedStacks || undefined,\n RoleARN: options.role,\n Tags: toCfnTags(options.stack.tags),\n Capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM', 'CAPABILITY_AUTO_EXPAND'],\n });\n await ioHelper.defaults.debug((0, util_1.format)('Initiated creation of changeset: %s; waiting for it to finish creating...', changeSet.Id));\n // Fetching all pages if we'll execute, so we can have the correct change count when monitoring.\n const createdChangeSet = await waitForChangeSet(options.cfn, ioHelper, options.stack.stackName, options.changeSetName, {\n fetchAll: options.willExecute,\n });\n await cleanupOldChangeset(options.cfn, ioHelper, options.changeSetName, options.stack.stackName);\n return createdChangeSet;\n}\nfunction toCfnTags(tags) {\n return Object.entries(tags).map(([k, v]) => ({\n Key: k,\n Value: v,\n }));\n}\nasync function cleanupOldChangeset(cfn, ioHelper, changeSetName, stackName) {\n // Delete any existing change sets generated by CDK since change set names must be unique.\n // The delete request is successful as long as the stack exists (even if the change set does not exist).\n await ioHelper.defaults.debug(`Removing existing change set with name ${changeSetName} if it exists`);\n await cfn.deleteChangeSet({\n StackName: stackName,\n ChangeSetName: changeSetName,\n });\n}\n/**\n * Return true if the given change set has no changes\n *\n * This must be determined from the status, not the 'Changes' array on the\n * object; the latter can be empty because no resources were changed, but if\n * there are changes to Outputs, the change set can still be executed.\n */\nfunction changeSetHasNoChanges(description) {\n const noChangeErrorPrefixes = [\n // Error message for a regular template\n \"The submitted information didn't contain changes.\",\n // Error message when a Transform is involved (see #10650)\n 'No updates are to be performed.',\n ];\n return (description.Status === 'FAILED' && noChangeErrorPrefixes.some((p) => (description.StatusReason ?? '').startsWith(p)));\n}\n/**\n * Waits for a CloudFormation stack to stabilize in a complete/available state\n * after a delete operation is issued.\n *\n * Fails if the stack is in a FAILED state. Will not fail if the stack was\n * already deleted.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the stack to wait for after a delete\n *\n * @returns the CloudFormation description of the stabilized stack after the delete attempt\n */\nasync function waitForStackDelete(cfn, ioHelper, stackName) {\n const stack = await stabilizeStack(cfn, ioHelper, stackName);\n if (!stack) {\n return undefined;\n }\n const status = stack.stackStatus;\n if (status.isFailure) {\n throw new toolkit_error_1.ToolkitError('StackDeleteFailed', `The stack named ${stackName} is in a failed state. You may need to delete it from the AWS console : ${status}`);\n }\n else if (status.isDeleted) {\n return undefined;\n }\n return stack;\n}\n/**\n * Waits for a CloudFormation stack to stabilize in a complete/available state\n * after an update/create operation is issued.\n *\n * Fails if the stack is in a FAILED state, ROLLBACK state, or DELETED state.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the stack to wait for after an update\n *\n * @returns the CloudFormation description of the stabilized stack after the update attempt\n */\nasync function waitForStackDeploy(cfn, ioHelper, stackName) {\n const stack = await stabilizeStack(cfn, ioHelper, stackName);\n if (!stack) {\n return undefined;\n }\n const status = stack.stackStatus;\n if (status.isCreationFailure) {\n throw new toolkit_error_1.ToolkitError('StackCreationFailed', `The stack named ${stackName} failed creation, it may need to be manually deleted from the AWS console: ${status}`);\n }\n else if (!status.isDeploySuccess) {\n throw new toolkit_error_1.DeploymentError(`The stack named ${stackName} failed to deploy: ${status}`, 'StackDeployFailed');\n }\n return stack;\n}\n/**\n * Wait for a stack to become stable (no longer _IN_PROGRESS), returning it\n */\nasync function stabilizeStack(cfn, ioHelper, stackName) {\n await ioHelper.defaults.debug((0, util_1.format)('Waiting for stack %s to finish creating or updating...', stackName));\n return waitFor(async () => {\n const stack = await cloudformation_1.CloudFormationStack.lookup(cfn, stackName);\n if (!stack.exists) {\n await ioHelper.defaults.debug((0, util_1.format)('Stack %s does not exist', stackName));\n return null;\n }\n const status = stack.stackStatus;\n if (status.isInProgress) {\n await ioHelper.defaults.debug((0, util_1.format)('Stack %s has an ongoing operation in progress and is not stable (%s)', stackName, status));\n return undefined;\n }\n else if (status.isReviewInProgress) {\n // This may happen if a stack creation operation is interrupted before the ChangeSet execution starts. Recovering\n // from this would requiring manual intervention (deleting or executing the pending ChangeSet), and failing to do\n // so will result in an endless wait here (the ChangeSet wont delete or execute itself). Instead of blocking\n // \"forever\" we proceed as if the stack was existing and stable. If there is a concurrent operation that just\n // hasn't finished proceeding just yet, either this operation or the concurrent one may fail due to the other one\n // having made progress. Which is fine. I guess.\n await ioHelper.defaults.debug((0, util_1.format)('Stack %s is in REVIEW_IN_PROGRESS state. Considering this is a stable status (%s)', stackName, status));\n }\n return stack;\n });\n}\n/**\n * The set of (formal) parameters that have been declared in a template\n */\nclass TemplateParameters {\n params;\n static fromTemplate(template) {\n return new TemplateParameters(template.Parameters || {});\n }\n constructor(params) {\n this.params = params;\n }\n /**\n * Calculate stack parameters to pass from the given desired parameter values\n *\n * Will throw if parameters without a Default value or a Previous value are not\n * supplied.\n */\n supplyAll(updates) {\n return new ParameterValues(this.params, updates);\n }\n /**\n * From the template, the given desired values and the current values, calculate the changes to the stack parameters\n *\n * Will take into account parameters already set on the template (will emit\n * 'UsePreviousValue: true' for those unless the value is changed), and will\n * throw if parameters without a Default value or a Previous value are not\n * supplied.\n */\n updateExisting(updates, previousValues) {\n return new ParameterValues(this.params, updates, previousValues);\n }\n}\nexports.TemplateParameters = TemplateParameters;\n/**\n * The set of parameters we're going to pass to a Stack\n */\nclass ParameterValues {\n formalParams;\n values = {};\n apiParameters = [];\n constructor(formalParams, updates, previousValues = {}) {\n this.formalParams = formalParams;\n const missingRequired = new Array();\n for (const [key, formalParam] of Object.entries(this.formalParams)) {\n // Check updates first, then use the previous value (if available), then use\n // the default (if available).\n //\n // If we don't find a parameter value using any of these methods, then that's an error.\n const updatedValue = updates[key];\n if (updatedValue !== undefined) {\n this.values[key] = updatedValue;\n this.apiParameters.push({\n ParameterKey: key,\n ParameterValue: updates[key],\n });\n continue;\n }\n if (key in previousValues) {\n this.values[key] = previousValues[key];\n this.apiParameters.push({ ParameterKey: key, UsePreviousValue: true });\n continue;\n }\n if (formalParam.Default !== undefined) {\n this.values[key] = formalParam.Default;\n continue;\n }\n // Oh no\n missingRequired.push(key);\n }\n if (missingRequired.length > 0) {\n throw new toolkit_error_1.ToolkitError('MissingParameters', `The following CloudFormation Parameters are missing a value: ${missingRequired.join(', ')}`);\n }\n // Just append all supplied overrides that aren't really expected (this\n // will fail CFN but maybe people made typos that they want to be notified\n // of)\n const unknownParam = ([key, _]) => this.formalParams[key] === undefined;\n const hasValue = ([_, value]) => !!value;\n for (const [key, value] of Object.entries(updates).filter(unknownParam).filter(hasValue)) {\n this.values[key] = value;\n this.apiParameters.push({ ParameterKey: key, ParameterValue: value });\n }\n }\n /**\n * Whether this set of parameter updates will change the actual stack values\n */\n hasChanges(currentValues) {\n // If any of the parameters are SSM parameters, deploying must always happen\n // because we can't predict what the values will be. We will allow some\n // parameters to opt out of this check by having a magic string in their description.\n if (Object.values(this.formalParams).some((p) => p.Type.startsWith('AWS::SSM::Parameter::') && !p.Description?.includes(cloud_assembly_api_1.SSMPARAM_NO_INVALIDATE))) {\n return 'ssm';\n }\n // Otherwise we're dirty if:\n // - any of the existing values are removed, or changed\n if (Object.entries(currentValues).some(([key, value]) => !(key in this.values) || value !== this.values[key])) {\n return true;\n }\n // - any of the values we're setting are new\n if (Object.keys(this.values).some((key) => !(key in currentValues))) {\n return true;\n }\n return false;\n }\n}\nexports.ParameterValues = ParameterValues;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNmbi1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0dBLDRDQThDQztBQXVDRCxrREFRQztBQTJGRCw4REFpQkM7QUFFRCwwQ0FzQ0M7QUErQkQsc0RBV0M7QUFjRCxnREFvQkM7QUFhRCxnREFzQkM7QUFLRCx3Q0E0QkM7QUF6ZUQsK0JBQThCO0FBRTlCLDREQUF3RDtBQUN4RCxxREFBcUQ7QUFDckQsb0VBQXFFO0FBT3JFLDBFQUV3QztBQUN4QyxxRUFBZ0U7QUFFaEUsK0RBQTRFO0FBRzVFLHNEQUF5RztBQVF6Rzs7Ozs7Ozs7O0dBU0c7QUFDSCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLEdBQTBCLEVBQzFCLFNBQWlCLEVBQ2pCLGFBQXFCLEVBQ3JCLEVBQUUsUUFBUSxFQUF5QjtJQUVuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztRQUMzQyxTQUFTLEVBQUUsU0FBUztRQUNwQixhQUFhLEVBQUUsYUFBYTtLQUM3QixDQUFDLENBQUM7SUFFSCwyRUFBMkU7SUFDM0UsT0FBTyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztZQUMzQyxTQUFTLEVBQUUsU0FBUztZQUNwQixhQUFhLEVBQUUsUUFBUSxDQUFDLFdBQVcsSUFBSSxhQUFhO1lBQ3BELFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztTQUM5QixDQUFDLENBQUM7UUFFSCwwQkFBMEI7UUFDMUIsSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFP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RyxJQUFJLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQXBGRCwwQ0FvRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgRmlsZU1hbmlmZXN0RW50cnkgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgeyBBc3NldE1hbmlmZXN0IH0gZnJvbSAnQGF3cy1jZGsvY2RrLWFzc2V0cy1saWInO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFNTTVBBUkFNX05PX0lOVkFMSURBVEUgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUge1xuICBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIFBhcmFtZXRlcixcbiAgUmVzb3VyY2VUb0ltcG9ydCxcbiAgVGFnLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlU2V0U3RhdHVzLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgQXNzZXRNYW5pZmVzdEJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0LW1hbmlmZXN0LWJ1aWxkZXInO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50cyB9IGZyb20gJy4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgRGVwbG95bWVudEVycm9yLCBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRGb3JtYXRpb25DbGllbnQsIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlLCBUZW1wbGF0ZUJvZHlQYXJhbWV0ZXIsIFRlbXBsYXRlUGFyYW1ldGVyIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFjaywgbWFrZUJvZHlQYXJhbWV0ZXIsIHRlbXBsYXRlQ29udGFpbnNOZXN0ZWRTdGFja3MgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlc1RvSW1wb3J0IH0gZnJvbSAnLi4vcmVzb3VyY2UtaW1wb3J0JztcblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uUmVwb3J0ZXIge1xuICBmZXRjaERldGFpbHMoY2hhbmdlU2V0TmFtZTogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZSBhIGNoYW5nZXNldCBpbiBDbG91ZEZvcm1hdGlvbiwgcmVnYXJkbGVzcyBvZiBpdHMgY3VycmVudCBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0gY2ZuICAgICAgICAgICAtIGEgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gKiBAcGFyYW0gc3RhY2tOYW1lICAgICAtIHRoZSBuYW1lIG9mIHRoZSBTdGFjayB0aGUgQ2hhbmdlU2V0IGJlbG9uZ3MgdG9cbiAqIEBwYXJhbSBjaGFuZ2VTZXROYW1lIC0gdGhlIG5hbWUgb2YgdGhlIENoYW5nZVNldFxuICogQHBhcmFtIGZldGNoQWxsICAgICAgLSBpZiB0cnVlLCBmZXRjaGVzIGFsbCBwYWdlcyBvZiB0aGUgY2hhbmdlIHNldCBkZXNjcmlwdGlvbi5cbiAqXG4gKiBAcmV0dXJucyAgICAgICBDbG91ZEZvcm1hdGlvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ2hhbmdlU2V0XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRlc2NyaWJlQ2hhbmdlU2V0KFxuICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gIGNoYW5nZVNldE5hbWU6IHN0cmluZyxcbiAgeyBmZXRjaEFsbCB9OiB7IGZldGNoQWxsOiBib29sZWFuIH0sXG4pOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNmbi5kZXNjcmliZUNoYW5nZVNldCh7XG4gICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgfSk7XG5cbiAgLy8gSWYgZmV0Y2hBbGwgaXMgdHJ1ZSwgdHJhdmVyc2UgYWxsIHBhZ2VzIGZyb20gdGhlIGNoYW5nZSBzZXQgZGVzY3JpcHRpb24uXG4gIHdoaWxlIChmZXRjaEFsbCAmJiByZXNwb25zZS5OZXh0VG9rZW4gIT0gbnVsbCkge1xuICAgIGNvbnN0IG5leHRQYWdlID0gYXdhaXQgY2ZuLmRlc2NyaWJlQ2hhbmdlU2V0KHtcbiAgICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgICAgQ2hhbmdlU2V0TmFtZTogcmVzcG9uc2UuQ2hhbmdlU2V0SWQgPz8gY2hhbmdlU2V0TmFtZSxcbiAgICAgIE5leHRUb2tlbjogcmVzcG9uc2UuTmV4dFRva2VuLFxuICAgIH0pO1xuXG4gICAgLy8gQ29uc29saWRhdGUgdGhlIGNoYW5nZXNcbiAgICBpZiAobmV4dFBhZ2UuQ2hhbmdlcyAhPSBudWxsKSB7XG4gICAgICByZXNwb25zZS5DaGFuZ2VzID0gcmVzcG9uc2UuQ2hhbmdlcyAhPSBudWxsID8gcmVzcG9uc2UuQ2hhbmdlcy5jb25jYXQobmV4dFBhZ2UuQ2hhbmdlcykgOiBuZXh0UGFnZS5DaGFuZ2VzO1xuICAgIH1cblxuICAgIC8vIEZvcndhcmQgdGhlIG5ldyBOZXh0VG9rZW5cbiAgICByZXNwb25zZS5OZXh0VG9rZW4gPSBuZXh0UGFnZS5OZXh0VG9rZW47XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbi8qKlxuICogV2FpdHMgZm9yIGEgZnVuY3Rpb24gdG8gcmV0dXJuIG5vbi0rdW5kZWZpbmVkKyBiZWZvcmUgcmV0dXJuaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVByb3ZpZGVyIC0gYSBmdW5jdGlvbiB0aGF0IHdpbGwgcmV0dXJuIGEgdmFsdWUgdGhhdCBpcyBub3QgK3VuZGVmaW5lZCsgb25jZSB0aGUgd2FpdCBzaG91bGQgYmUgb3ZlclxuICogQHBhcmFtIHRpbWVvdXQgICAgIC0gdGhlIHRpbWUgdG8gd2FpdCBiZXR3ZWVuIHR3byBjYWxscyB0byArdmFsdWVQcm92aWRlcitcbiAqXG4gKiBAcmV0dXJucyAgICAgICB0aGUgdmFsdWUgdGhhdCB3YXMgcmV0dXJuZWQgYnkgK3ZhbHVlUHJvdmlkZXIrXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3I8VD4oXG4gIHZhbHVlUHJvdmlkZXI6ICgpID0+IFByb21pc2U8VCB8IG51bGwgfCB1bmRlZmluZWQ+LFxuICB0aW1lb3V0OiBudW1iZXIgPSA1MDAwLFxuKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPiB7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsdWVQcm92aWRlcigpO1xuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgYXdhaXQgbmV3IFByb21pc2UoKGNiKSA9PiBzZXRUaW1lb3V0KGNiLCB0aW1lb3V0KSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXYWl0cyBmb3IgYSBDaGFuZ2VTZXQgdG8gYmUgYXZhaWxhYmxlIGZvciB0cmlnZ2VyaW5nIGEgU3RhY2tVcGRhdGUuXG4gKlxuICogV2lsbCByZXR1cm4gYSBjaGFuZ2VzZXQgdGhhdCBpcyBlaXRoZXIgcmVhZHkgdG8gYmUgZXhlY3V0ZWQgb3IgaGFzIG5vIGNoYW5nZXMuXG4gKiBXaWxsIHRocm93IGluIG90aGVyIGNhc2VzLlxuICpcbiAqIEBwYXJhbSBjZm4gICAgICAgICAgIC0gYSBDbG91ZEZvcm1hdGlvbiBjbGllbnRcbiAqIEBwYXJhbSBzdGFja05hbWUgICAgIC0gdGhlIG5hbWUgb2YgdGhlIFN0YWNrIHRoYXQgdGhlIENoYW5nZVNldCBiZWxvbmdzIHRvXG4gKiBAcGFyYW0gY2hhbmdlU2V0TmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBDaGFuZ2VTZXRcbiAqIEBwYXJhbSBmZXRjaEFsbCAgICAgIC0gaWYgdHJ1ZSwgZmV0Y2hlcyBhbGwgcGFnZXMgb2YgdGhlIENoYW5nZVNldCBiZWZvcmUgcmV0dXJuaW5nLlxuICpcbiAqIEByZXR1cm5zICAgICAgIHRoZSBDbG91ZEZvcm1hdGlvbiBkZXNjcmlwdGlvbiBvZiB0aGUgQ2hhbmdlU2V0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ2hhbmdlU2V0KFxuICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja05hbWU6IHN0cmluZyxcbiAgY2hhbmdlU2V0TmFtZTogc3RyaW5nLFxuICB7IGZldGNoQWxsLCB2YWxpZGF0aW9uUmVwb3J0ZXIgfTogeyBmZXRjaEFsbDogYm9vbGVhbjsgdmFsaWRhdGlvblJlcG9ydGVyPzogVmFsaWRhdGlvblJlcG9ydGVyIH0sXG4pOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4ge1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ1dhaXRpbmcgZm9yIGNoYW5nZXNldCAlcyBvbiBzdGFjayAlcyB0byBmaW5pc2ggY3JlYXRpbmcuLi4nLCBjaGFuZ2VTZXROYW1lLCBzdGFja05hbWUpKTtcbiAgY29uc3QgcmV0ID0gYXdhaXQgd2FpdEZvcihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBkZXNjcmliZUNoYW5nZVNldChjZm4sIHN0YWNrTmFtZSwgY2hhbmdlU2V0TmFtZSwge1xuICAgICAgZmV0Y2hBbGwsXG4gICAgfSk7XG4gICAgLy8gVGhlIGZvbGxvd2luZyBkb2Vzbid0IHVzZSBhIHN3aXRjaCBiZWNhdXNlIHRzYyB3aWxsIG5vdCBhbGxvdyBmYWxsLXRocm91Z2gsIFVOTEVTUyBpdCBpcyBhbGxvd3NcbiAgICAvLyBFVkVSWVdIRVJFIHRoYXQgdXNlcyB0aGlzIGxpYnJhcnkgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwgd2hpY2ggaXMgdW5kZXNpcmFibGUuXG4gICAgaWYgKGRlc2NyaXB0aW9uLlN0YXR1cyA9PT0gJ0NSRUFURV9QRU5ESU5HJyB8fCBkZXNjcmlwdGlvbi5TdGF0dXMgPT09ICdDUkVBVEVfSU5fUFJPR1JFU1MnKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ0NoYW5nZXNldCAlcyBvbiBzdGFjayAlcyBpcyBzdGlsbCBjcmVhdGluZycsIGNoYW5nZVNldE5hbWUsIHN0YWNrTmFtZSkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoZGVzY3JpcHRpb24uU3RhdHVzID09PSBDaGFuZ2VTZXRTdGF0dXMuQ1JFQVRFX0NPTVBMRVRFIHx8IGNoYW5nZVNldEhhc05vQ2hhbmdlcyhkZXNjcmlwdGlvbikpIHtcbiAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBpc0Vhcmx5VmFsaWRhdGlvbkVycm9yID0gZGVzY3JpcHRpb24uU3RhdHVzID09PSBDaGFuZ2VTZXRTdGF0dXMuRkFJTEVEICYmXG4gICAgICBkZXNjcmlwdGlvbi5TdGF0dXNSZWFzb24/LmluY2x1ZGVzKCdBV1M6OkVhcmx5VmFsaWRhdGlvbicpO1xuXG4gICAgaWYgKGlzRWFybHlWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGNvbnN0IGRldGFpbHMgPSBhd2FpdCB2YWxpZGF0aW9uUmVwb3J0ZXI/LmZldGNoRGV0YWlscyhjaGFuZ2VTZXROYW1lLCBzdGFja05hbWUpO1xuICAgICAgaWYgKGRldGFpbHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IERlcGxveW1lbnRFcnJvcihkZXRhaWxzLCAnRWFybHlWYWxpZGF0aW9uRmFpbHVyZScpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgdGhyb3cgbmV3IERlcGxveW1lbnRFcnJvcihcbiAgICAgIGBGYWlsZWQgdG8gY3JlYXRlIENoYW5nZVNldCAke2NoYW5nZVNldE5hbWV9IG9uICR7c3RhY2tOYW1lfTogJHtkZXNjcmlwdGlvbi5TdGF0dXMgfHwgJ05PX1NUQVRVUyd9LCAke1xuICAgICAgICBkZXNjcmlwdGlvbi5TdGF0dXNSZWFzb24gfHwgJ25vIHJlYXNvbiBwcm92aWRlZCdcbiAgICAgIH1gLFxuICAgICAgJ0NoYW5nZVNldENyZWF0aW9uRmFpbGVkJyxcbiAgICApO1xuICB9KTtcblxuICBpZiAoIXJldCkge1xuICAgIHRocm93IG5ldyBEZXBsb3ltZW50RXJyb3IoJ0NoYW5nZSBzZXQgdG9vayB0b28gbG9uZyB0byBiZSBjcmVhdGVkOyBhYm9ydGluZycsICdDaGFuZ2VTZXRUaW1lb3V0Jyk7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgdHlwZSBQcmVwYXJlQ2hhbmdlU2V0T3B0aW9ucyA9IHtcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzO1xuICB1dWlkOiBzdHJpbmc7XG4gIHdpbGxFeGVjdXRlOiBib29sZWFuO1xuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG4gIHBhcmFtZXRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9O1xuICByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0O1xuICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcz86IGJvb2xlYW47XG4gIGluY2x1ZGVOZXN0ZWRTdGFja3M/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmYXVsdCBiZWhhdmlvciBpcyB0byBsb2cgQVdTIENsb3VkRm9ybWF0aW9uIGVycm9ycyBhbmQgbW92ZSBvbi4gU2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSB0byBpbnN0ZWFkXG4gICAqIGZhaWwgb24gZXJyb3JzIHJlY2VpdmVkIGJ5IEFXUyBDbG91ZEZvcm1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGZhaWxPbkVycm9yPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUNoYW5nZVNldE9wdGlvbnMgPSB7XG4gIGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50O1xuICBjaGFuZ2VTZXROYW1lOiBzdHJpbmc7XG4gIHdpbGxFeGVjdXRlOiBib29sZWFuO1xuICBleGlzdHM6IGJvb2xlYW47XG4gIHV1aWQ6IHN0cmluZztcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgYm9keVBhcmFtZXRlcjogVGVtcGxhdGVCb2R5UGFyYW1ldGVyO1xuICBwYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgcmVzb3VyY2VzVG9JbXBvcnQ/OiBSZXNvdXJjZVRvSW1wb3J0W107XG4gIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzPzogYm9vbGVhbjtcbiAgaW5jbHVkZU5lc3RlZFN0YWNrcz86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIENyZWF0ZSBhIGNoYW5nZXNldCBmb3IgYSBkaWZmIG9wZXJhdGlvblxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGlmZkNoYW5nZVNldChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBvcHRpb25zOiBQcmVwYXJlQ2hhbmdlU2V0T3B0aW9ucyxcbik6IFByb21pc2U8RGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IHwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiB1cGxvYWRCb2R5UGFyYW1ldGVyQW5kQ3JlYXRlQ2hhbmdlU2V0KGlvSGVscGVyLCB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBpbmNsdWRlTmVzdGVkU3RhY2tzOiB0ZW1wbGF0ZUNvbnRhaW5zTmVzdGVkU3RhY2tzKG9wdGlvbnMuc3RhY2sudGVtcGxhdGUpLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBmaWxlIGVudHJpZXMgZnJvbSBhbiBBc3NldE1hbmlmZXN0QXJ0aWZhY3QgdGhhdCBsb29rIGxpa2UgdGVtcGxhdGVzLlxuICpcbiAqIFRoaXMgaXMgdXNlZCBpbiB0aGUgYHVwbG9hZEJvZHlQYXJhbWV0ZXJBbmRDcmVhdGVDaGFuZ2VTZXRgIGZ1bmN0aW9uIHRvIGZpbmRcbiAqIGFsbCB0ZW1wbGF0ZSBhc3NldCBmaWxlcyB0byBidWlsZCBhbmQgcHVibGlzaC5cbiAqXG4gKiBSZXR1cm5zIGEgdHVwbGUgb2YgW0Fzc2V0TWFuaWZlc3QsIEZpbGVNYW5pZmVzdEVudHJ5W11dXG4gKi9cbmZ1bmN0aW9uIHRlbXBsYXRlc0Zyb21Bc3NldE1hbmlmZXN0QXJ0aWZhY3QoXG4gIGFydGlmYWN0OiBjeGFwaS5Bc3NldE1hbmlmZXN0QXJ0aWZhY3QsXG4pOiBbQXNzZXRNYW5pZmVzdCwgRmlsZU1hbmlmZXN0RW50cnlbXV0ge1xuICBjb25zdCBhc3NldHM6IEZpbGVNYW5pZmVzdEVudHJ5W10gPSBbXTtcbiAgY29uc3QgZmlsZU5hbWUgPSBhcnRpZmFjdC5maWxlO1xuICBjb25zdCBhc3NldE1hbmlmZXN0ID0gQXNzZXRNYW5pZmVzdC5mcm9tRmlsZShmaWxlTmFtZSk7XG5cbiAgYXNzZXRNYW5pZmVzdC5lbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgaWYgKGVudHJ5LnR5cGUgPT09ICdmaWxlJykge1xuICAgICAgY29uc3Qgc291cmNlID0gKGVudHJ5IGFzIEZpbGVNYW5pZmVzdEVudHJ5KS5zb3VyY2U7XG4gICAgICBpZiAoc291cmNlLnBhdGggJiYgc291cmNlLnBhdGguZW5kc1dpdGgoJy50ZW1wbGF0ZS5qc29uJykpIHtcbiAgICAgICAgYXNzZXRzLnB1c2goZW50cnkgYXMgRmlsZU1hbmlmZXN0RW50cnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBbYXNzZXRNYW5pZmVzdCwgYXNzZXRzXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBsb2FkQm9keVBhcmFtZXRlckFuZENyZWF0ZUNoYW5nZVNldChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBvcHRpb25zOiBQcmVwYXJlQ2hhbmdlU2V0T3B0aW9ucyxcbik6IFByb21pc2U8RGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgdXBsb2FkU3RhY2tUZW1wbGF0ZUFzc2V0cyhvcHRpb25zLnN0YWNrLCBvcHRpb25zLmRlcGxveW1lbnRzKTtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCBvcHRpb25zLmRlcGxveW1lbnRzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKG9wdGlvbnMuc3RhY2spO1xuXG4gICAgY29uc3QgYm9keVBhcmFtZXRlciA9IGF3YWl0IG1ha2VCb2R5UGFyYW1ldGVyKFxuICAgICAgaW9IZWxwZXIsXG4gICAgICBvcHRpb25zLnN0YWNrLFxuICAgICAgZW52LnJlc29sdmVkRW52aXJvbm1lbnQsXG4gICAgICBuZXcgQXNzZXRNYW5pZmVzdEJ1aWxkZXIoKSxcbiAgICAgIGVudi5yZXNvdXJjZXMsXG4gICAgKTtcbiAgICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLCBmYWxzZSk7XG4gICAgLy8gQSBzdGFjayBpbiBSRVZJRVdfSU5fUFJPR1JFU1Mgd2FzIGNyZWF0ZWQgYnkgYSBwcmV2aW91cyBDUkVBVEUgY2hhbmdlc2V0XG4gICAgLy8gdGhhdCB3YXMgbmV2ZXIgZXhlY3V0ZWQuIFRyZWF0IGl0IGFzIG5vbi1leGlzdGVudCBmb3IgY2hhbmdlc2V0IHB1cnBvc2VzLlxuICAgIGNvbnN0IGV4aXN0cyA9IHN0YWNrLmV4aXN0cyAmJiBzdGFjay5zdGFja1N0YXR1cy5uYW1lICE9PSAnUkVWSUVXX0lOX1BST0dSRVNTJztcblxuICAgIGNvbnN0IGV4ZWN1dGlvblJvbGVBcm4gPSBhd2FpdCBlbnYucmVwbGFjZVBsYWNlaG9sZGVycyhvcHRpb25zLnN0YWNrLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybik7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhcbiAgICAgICdIb2xkIG9uIHdoaWxlIHdlIGNyZWF0ZSBhIHJlYWQtb25seSBjaGFuZ2Ugc2V0IHRvIGdldCBhIGRpZmYgd2l0aCBhY2N1cmF0ZSByZXBsYWNlbWVudCBpbmZvcm1hdGlvbiAodXNlIC0tbWV0aG9kPXRlbXBsYXRlIHRvIHVzZSBhIGxlc3MgYWNjdXJhdGUgYnV0IGZhc3RlciB0ZW1wbGF0ZS1vbmx5IGRpZmYpXFxuJyxcbiAgICApO1xuXG4gICAgcmV0dXJuIGF3YWl0IGNyZWF0ZUNoYW5nZVNldChpb0hlbHBlciwge1xuICAgICAgY2ZuLFxuICAgICAgY2hhbmdlU2V0TmFtZTogJ2Nkay1kaWZmLWNoYW5nZS1zZXQnLFxuICAgICAgc3RhY2s6IG9wdGlvbnMuc3RhY2ssXG4gICAgICBleGlzdHMsXG4gICAgICB1dWlkOiBvcHRpb25zLnV1aWQsXG4gICAgICB3aWxsRXhlY3V0ZTogb3B0aW9ucy53aWxsRXhlY3V0ZSxcbiAgICAgIGJvZHlQYXJhbWV0ZXIsXG4gICAgICBwYXJhbWV0ZXJzOiBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICByZXNvdXJjZXNUb0ltcG9ydDogb3B0aW9ucy5yZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzOiBvcHRpb25zLmltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgICAgaW5jbHVkZU5lc3RlZFN0YWNrczogb3B0aW9ucy5pbmNsdWRlTmVzdGVkU3RhY2tzLFxuICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZUFybixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IGRpZmYgc28gdGhlc2UgbWVzc2FnZXMgYXJlIGRpZmYtc3BlY2lmaWNcbiAgICBpZiAob3B0aW9ucy5mYWlsT25FcnJvcikge1xuICAgICAgdGhyb3cgVG9vbGtpdEVycm9yLndpdGhDYXVzZSgnQ2hhbmdlU2V0Q3JlYXRpb25GYWlsZWQnLCAnQ291bGQgbm90IGNyZWF0ZSBhIGNoYW5nZSBzZXQsIGFuZCBcXCctLW1ldGhvZD1jaGFuZ2Utc2V0XFwnIHdhcyBzcGVjaWZpZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zIG9yIHVzZSBcXCctLW1ldGhvZD1hdXRvXFwnIHRvIGFsbG93IGZhbGxpbmcgYmFjayB0byBhIHRlbXBsYXRlIGRpZmYuJywgZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoU3RyaW5nKGUpKTtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKFxuICAgICAgJ0NvdWxkIG5vdCBjcmVhdGUgYSBjaGFuZ2Ugc2V0LCB3aWxsIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMgKHJ1biBhZ2FpbiB3aXRoIC12IHRvIHNlZSB0aGUgcmVhc29uKVxcbicsXG4gICAgKTtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBVcGxvYWRzIHRoZSBhc3NldHMgdGhhdCBsb29rIGxpa2UgdGVtcGxhdGVzIGZvciB0aGlzIENsb3VkRm9ybWF0aW9uIHN0YWNrXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGFueSBDbG91ZEZvcm1hdGlvbiBjYWxsIHRoYXQgbmVlZHMgdGhlIHRlbXBsYXRlLCBpdCBtYXkgbmVlZFxuICogdG8gYmUgdXBsb2FkZWQgdG8gYW4gUzMgYnVja2V0IGZpcnN0LiBXZSBoYXZlIHRvIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZVxuICogYXNzZXQgbWFuaWZlc3QsIGJlY2F1c2UgdGVjaG5pY2FsbHkgdGhhdCBpcyB0aGUgb25seSBwbGFjZSB0aGF0IGtub3dzIGFib3V0XG4gKiBidWNrZXQgYW5kIGFzc3VtZWQgcm9sZXMgYW5kIHN1Y2guXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGxvYWRTdGFja1RlbXBsYXRlQXNzZXRzKHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cykge1xuICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIHN0YWNrLmRlcGVuZGVuY2llcykge1xuICAgIC8vIFNraXAgYXJ0aWZhY3QgaWYgaXQgaXMgbm90IGFuIEFzc2V0IE1hbmlmZXN0IEFydGlmYWN0XG4gICAgaWYgKCFjeGFwaS5Bc3NldE1hbmlmZXN0QXJ0aWZhY3QuaXNBc3NldE1hbmlmZXN0QXJ0aWZhY3QoYXJ0aWZhY3QpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBbYXNzZXRNYW5pZmVzdCwgZmlsZV9lbnRyaWVzXSA9IHRlbXBsYXRlc0Zyb21Bc3NldE1hbmlmZXN0QXJ0aWZhY3QoYXJ0aWZhY3QpO1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZmlsZV9lbnRyaWVzKSB7XG4gICAgICBhd2FpdCBkZXBsb3ltZW50cy5idWlsZFNpbmdsZUFzc2V0KGFydGlmYWN0LCBhc3NldE1hbmlmZXN0LCBlbnRyeSwge1xuICAgICAgICBzdGFjayxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgZGVwbG95bWVudHMucHVibGlzaFNpbmdsZUFzc2V0KGFzc2V0TWFuaWZlc3QsIGVudHJ5LCB7XG4gICAgICAgIHN0YWNrLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVDaGFuZ2VTZXQoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgb3B0aW9uczogQ3JlYXRlQ2hhbmdlU2V0T3B0aW9ucyxcbik6IFByb21pc2U8RGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0PiB7XG4gIGlmIChvcHRpb25zLmV4aXN0cykge1xuICAgIGF3YWl0IGNsZWFudXBPbGRDaGFuZ2VzZXQob3B0aW9ucy5jZm4sIGlvSGVscGVyLCBvcHRpb25zLmNoYW5nZVNldE5hbWUsIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lKTtcbiAgfVxuXG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBBdHRlbXB0aW5nIHRvIGNyZWF0ZSBDaGFuZ2VTZXQgd2l0aCBuYW1lICR7b3B0aW9ucy5jaGFuZ2VTZXROYW1lfSBmb3Igc3RhY2sgJHtvcHRpb25zLnN0YWNrLnN0YWNrTmFtZX1gKTtcblxuICBjb25zdCB0ZW1wbGF0ZVBhcmFtcyA9IFRlbXBsYXRlUGFyYW1ldGVycy5mcm9tVGVtcGxhdGUob3B0aW9ucy5zdGFjay50ZW1wbGF0ZSk7XG4gIGNvbnN0IHN0YWNrUGFyYW1zID0gdGVtcGxhdGVQYXJhbXMuc3VwcGx5QWxsKG9wdGlvbnMucGFyYW1ldGVycyk7XG5cbiAgY29uc3QgY2hhbmdlU2V0ID0gYXdhaXQgb3B0aW9ucy5jZm4uY3JlYXRlQ2hhbmdlU2V0KHtcbiAgICBTdGFja05hbWU6IG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgIENoYW5nZVNldE5hbWU6IG9wdGlvbnMuY2hhbmdlU2V0TmFtZSxcbiAgICBDaGFuZ2VTZXRUeXBlOiBvcHRpb25zLnJlc291cmNlc1RvSW1wb3J0ID8gJ0lNUE9SVCcgOiBvcHRpb25zLmV4aXN0cyA/ICdVUERBVEUnIDogJ0NSRUFURScsXG4gICAgRGVzY3JpcHRpb246IGBDREsgQ2hhbmdlc2V0IGZvciBkaWZmICR7b3B0aW9ucy51dWlkfWAsXG4gICAgQ2xpZW50VG9rZW46IGBkaWZmJHtvcHRpb25zLnV1aWR9YCxcbiAgICBUZW1wbGF0ZVVSTDogb3B0aW9ucy5ib2R5UGFyYW1ldGVyLlRlbXBsYXRlVVJMLFxuICAgIFRlbXBsYXRlQm9keTogb3B0aW9ucy5ib2R5UGFyYW1ldGVyLlRlbXBsYXRlQm9keSxcbiAgICBQYXJhbWV0ZXJzOiBzdGFja1BhcmFtcy5hcGlQYXJhbWV0ZXJzLFxuICAgIFJlc291cmNlc1RvSW1wb3J0OiBvcHRpb25zLnJlc291cmNlc1RvSW1wb3J0LFxuICAgIEltcG9ydEV4aXN0aW5nUmVzb3VyY2VzOiBvcHRpb25zLmltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgIEluY2x1ZGVOZXN0ZWRTdGFja3M6IG9wdGlvbnMuaW5jbHVkZU5lc3RlZFN0YWNrcyB8fCB1bmRlZmluZWQsXG4gICAgUm9sZUFSTjogb3B0aW9ucy5yb2xlLFxuICAgIFRhZ3M6IHRvQ2ZuVGFncyhvcHRpb25zLnN0YWNrLnRhZ3MpLFxuICAgIENhcGFiaWxpdGllczogWydDQVBBQklMSVRZX0lBTScsICdDQVBBQklMSVRZX05BTUVEX0lBTScsICdDQVBBQklMSVRZX0FVVE9fRVhQQU5EJ10sXG4gIH0pO1xuXG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnSW5pdGlhdGVkIGNyZWF0aW9uIG9mIGNoYW5nZXNldDogJXM7IHdhaXRpbmcgZm9yIGl0IHRvIGZpbmlzaCBjcmVhdGluZy4uLicsIGNoYW5nZVNldC5JZCkpO1xuICAvLyBGZXRjaGluZyBhbGwgcGFnZXMgaWYgd2UnbGwgZXhlY3V0ZSwgc28gd2UgY2FuIGhhdmUgdGhlIGNvcnJlY3QgY2hhbmdlIGNvdW50IHdoZW4gbW9uaXRvcmluZy5cbiAgY29uc3QgY3JlYXRlZENoYW5nZVNldCA9IGF3YWl0IHdhaXRGb3JDaGFuZ2VTZXQob3B0aW9ucy5jZm4sIGlvSGVscGVyLCBvcHRpb25zLnN0YWNrLnN0YWNrTmFtZSwgb3B0aW9ucy5jaGFuZ2VTZXROYW1lLCB7XG4gICAgZmV0Y2hBbGw6IG9wdGlvbnMud2lsbEV4ZWN1dGUsXG4gIH0pO1xuICBhd2FpdCBjbGVhbnVwT2xkQ2hhbmdlc2V0KG9wdGlvbnMuY2ZuLCBpb0hlbHBlciwgb3B0aW9ucy5jaGFuZ2VTZXROYW1lLCBvcHRpb25zLnN0YWNrLnN0YWNrTmFtZSk7XG5cbiAgcmV0dXJuIGNyZWF0ZWRDaGFuZ2VTZXQ7XG59XG5cbmZ1bmN0aW9uIHRvQ2ZuVGFncyh0YWdzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0pOiBUYWdbXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyh0YWdzKS5tYXAoKFtrLCB2XSkgPT4gKHtcbiAgICBLZXk6IGssXG4gICAgVmFsdWU6IHYsXG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xlYW51cE9sZENoYW5nZXNldChcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgY2hhbmdlU2V0TmFtZTogc3RyaW5nLFxuICBzdGFja05hbWU6IHN0cmluZyxcbikge1xuICAvLyBEZWxldGUgYW55IGV4aXN0aW5nIGNoYW5nZSBzZXRzIGdlbmVyYXRlZCBieSBDREsgc2luY2UgY2hhbmdlIHNldCBuYW1lcyBtdXN0IGJlIHVuaXF1ZS5cbiAgLy8gVGhlIGRlbGV0ZSByZXF1ZXN0IGlzIHN1Y2Nlc3NmdWwgYXMgbG9uZyBhcyB0aGUgc3RhY2sgZXhpc3RzIChldmVuIGlmIHRoZSBjaGFuZ2Ugc2V0IGRvZXMgbm90IGV4aXN0KS5cbiAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYFJlbW92aW5nIGV4aXN0aW5nIGNoYW5nZSBzZXQgd2l0aCBuYW1lICR7Y2hhbmdlU2V0TmFtZX0gaWYgaXQgZXhpc3RzYCk7XG4gIGF3YWl0IGNmbi5kZWxldGVDaGFuZ2VTZXQoe1xuICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgIENoYW5nZVNldE5hbWU6IGNoYW5nZVNldE5hbWUsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBjaGFuZ2Ugc2V0IGhhcyBubyBjaGFuZ2VzXG4gKlxuICogVGhpcyBtdXN0IGJlIGRldGVybWluZWQgZnJvbSB0aGUgc3RhdHVzLCBub3QgdGhlICdDaGFuZ2VzJyBhcnJheSBvbiB0aGVcbiAqIG9iamVjdDsgdGhlIGxhdHRlciBjYW4gYmUgZW1wdHkgYmVjYXVzZSBubyByZXNvdXJjZXMgd2VyZSBjaGFuZ2VkLCBidXQgaWZcbiAqIHRoZXJlIGFyZSBjaGFuZ2VzIHRvIE91dHB1dHMsIHRoZSBjaGFuZ2Ugc2V0IGNhbiBzdGlsbCBiZSBleGVjdXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZVNldEhhc05vQ2hhbmdlcyhkZXNjcmlwdGlvbjogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0KSB7XG4gIGNvbnN0IG5vQ2hhbmdlRXJyb3JQcmVmaXhlcyA9IFtcbiAgICAvLyBFcnJvciBtZXNzYWdlIGZvciBhIHJlZ3VsYXIgdGVtcGxhdGVcbiAgICBcIlRoZSBzdWJtaXR0ZWQgaW5mb3JtYXRpb24gZGlkbid0IGNvbnRhaW4gY2hhbmdlcy5cIixcbiAgICAvLyBFcnJvciBtZXNzYWdlIHdoZW4gYSBUcmFuc2Zvcm0gaXMgaW52b2x2ZWQgKHNlZSAjMTA2NTApXG4gICAgJ05vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZC4nLFxuICBdO1xuXG4gIHJldHVybiAoXG4gICAgZGVzY3JpcHRpb24uU3RhdHVzID09PSAnRkFJTEVEJyAmJiBub0NoYW5nZUVycm9yUHJlZml4ZXMuc29tZSgocCkgPT4gKGRlc2NyaXB0aW9uLlN0YXR1c1JlYXNvbiA/PyAnJykuc3RhcnRzV2l0aChwKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBXYWl0cyBmb3IgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayB0byBzdGFiaWxpemUgaW4gYSBjb21wbGV0ZS9hdmFpbGFibGUgc3RhdGVcbiAqIGFmdGVyIGEgZGVsZXRlIG9wZXJhdGlvbiBpcyBpc3N1ZWQuXG4gKlxuICogRmFpbHMgaWYgdGhlIHN0YWNrIGlzIGluIGEgRkFJTEVEIHN0YXRlLiBXaWxsIG5vdCBmYWlsIGlmIHRoZSBzdGFjayB3YXNcbiAqIGFscmVhZHkgZGVsZXRlZC5cbiAqXG4gKiBAcGFyYW0gY2ZuICAgICAgICAtIGEgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gKiBAcGFyYW0gc3RhY2tOYW1lICAgICAgLSB0aGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gd2FpdCBmb3IgYWZ0ZXIgYSBkZWxldGVcbiAqXG4gKiBAcmV0dXJucyAgICAgdGhlIENsb3VkRm9ybWF0aW9uIGRlc2NyaXB0aW9uIG9mIHRoZSBzdGFiaWxpemVkIHN0YWNrIGFmdGVyIHRoZSBkZWxldGUgYXR0ZW1wdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvclN0YWNrRGVsZXRlKFxuICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja05hbWU6IHN0cmluZyxcbik6IFByb21pc2U8Q2xvdWRGb3JtYXRpb25TdGFjayB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBzdGFjayA9IGF3YWl0IHN0YWJpbGl6ZVN0YWNrKGNmbiwgaW9IZWxwZXIsIHN0YWNrTmFtZSk7XG4gIGlmICghc3RhY2spIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgc3RhdHVzID0gc3RhY2suc3RhY2tTdGF0dXM7XG4gIGlmIChzdGF0dXMuaXNGYWlsdXJlKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdTdGFja0RlbGV0ZUZhaWxlZCcsXG4gICAgICBgVGhlIHN0YWNrIG5hbWVkICR7c3RhY2tOYW1lfSBpcyBpbiBhIGZhaWxlZCBzdGF0ZS4gWW91IG1heSBuZWVkIHRvIGRlbGV0ZSBpdCBmcm9tIHRoZSBBV1MgY29uc29sZSA6ICR7c3RhdHVzfWAsXG4gICAgKTtcbiAgfSBlbHNlIGlmIChzdGF0dXMuaXNEZWxldGVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gc3RhY2s7XG59XG5cbi8qKlxuICogV2FpdHMgZm9yIGEgQ2xvdWRGb3JtYXRpb24gc3RhY2sgdG8gc3RhYmlsaXplIGluIGEgY29tcGxldGUvYXZhaWxhYmxlIHN0YXRlXG4gKiBhZnRlciBhbiB1cGRhdGUvY3JlYXRlIG9wZXJhdGlvbiBpcyBpc3N1ZWQuXG4gKlxuICogRmFpbHMgaWYgdGhlIHN0YWNrIGlzIGluIGEgRkFJTEVEIHN0YXRlLCBST0xMQkFDSyBzdGF0ZSwgb3IgREVMRVRFRCBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0gY2ZuICAgICAgICAtIGEgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gKiBAcGFyYW0gc3RhY2tOYW1lICAgICAgLSB0aGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gd2FpdCBmb3IgYWZ0ZXIgYW4gdXBkYXRlXG4gKlxuICogQHJldHVybnMgICAgIHRoZSBDbG91ZEZvcm1hdGlvbiBkZXNjcmlwdGlvbiBvZiB0aGUgc3RhYmlsaXplZCBzdGFjayBhZnRlciB0aGUgdXBkYXRlIGF0dGVtcHRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JTdGFja0RlcGxveShcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPENsb3VkRm9ybWF0aW9uU3RhY2sgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgc3RhY2sgPSBhd2FpdCBzdGFiaWxpemVTdGFjayhjZm4sIGlvSGVscGVyLCBzdGFja05hbWUpO1xuICBpZiAoIXN0YWNrKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHN0YXR1cyA9IHN0YWNrLnN0YWNrU3RhdHVzO1xuXG4gIGlmIChzdGF0dXMuaXNDcmVhdGlvbkZhaWx1cmUpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgJ1N0YWNrQ3JlYXRpb25GYWlsZWQnLFxuICAgICAgYFRoZSBzdGFjayBuYW1lZCAke3N0YWNrTmFtZX0gZmFpbGVkIGNyZWF0aW9uLCBpdCBtYXkgbmVlZCB0byBiZSBtYW51YWxseSBkZWxldGVkIGZyb20gdGhlIEFXUyBjb25zb2xlOiAke3N0YXR1c31gLFxuICAgICk7XG4gIH0gZWxzZSBpZiAoIXN0YXR1cy5pc0RlcGxveVN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKGBUaGUgc3RhY2sgbmFtZWQgJHtzdGFja05hbWV9IGZhaWxlZCB0byBkZXBsb3k6ICR7c3RhdHVzfWAsICdTdGFja0RlcGxveUZhaWxlZCcpO1xuICB9XG5cbiAgcmV0dXJuIHN0YWNrO1xufVxuXG4vKipcbiAqIFdhaXQgZm9yIGEgc3RhY2sgdG8gYmVjb21lIHN0YWJsZSAobm8gbG9uZ2VyIF9JTl9QUk9HUkVTUyksIHJldHVybmluZyBpdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhYmlsaXplU3RhY2soXG4gIGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrTmFtZTogc3RyaW5nLFxuKSB7XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnV2FpdGluZyBmb3Igc3RhY2sgJXMgdG8gZmluaXNoIGNyZWF0aW5nIG9yIHVwZGF0aW5nLi4uJywgc3RhY2tOYW1lKSk7XG4gIHJldHVybiB3YWl0Rm9yKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBzdGFjayA9IGF3YWl0IENsb3VkRm9ybWF0aW9uU3RhY2subG9va3VwKGNmbiwgc3RhY2tOYW1lKTtcbiAgICBpZiAoIXN0YWNrLmV4aXN0cykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KCdTdGFjayAlcyBkb2VzIG5vdCBleGlzdCcsIHN0YWNrTmFtZSkpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHN0YXR1cyA9IHN0YWNrLnN0YWNrU3RhdHVzO1xuICAgIGlmIChzdGF0dXMuaXNJblByb2dyZXNzKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ1N0YWNrICVzIGhhcyBhbiBvbmdvaW5nIG9wZXJhdGlvbiBpbiBwcm9ncmVzcyBhbmQgaXMgbm90IHN0YWJsZSAoJXMpJywgc3RhY2tOYW1lLCBzdGF0dXMpKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmIChzdGF0dXMuaXNSZXZpZXdJblByb2dyZXNzKSB7XG4gICAgICAvLyBUaGlzIG1heSBoYXBwZW4gaWYgYSBzdGFjayBjcmVhdGlvbiBvcGVyYXRpb24gaXMgaW50ZXJydXB0ZWQgYmVmb3JlIHRoZSBDaGFuZ2VTZXQgZXhlY3V0aW9uIHN0YXJ0cy4gUmVjb3ZlcmluZ1xuICAgICAgLy8gZnJvbSB0aGlzIHdvdWxkIHJlcXVpcmluZyBtYW51YWwgaW50ZXJ2ZW50aW9uIChkZWxldGluZyBvciBleGVjdXRpbmcgdGhlIHBlbmRpbmcgQ2hhbmdlU2V0KSwgYW5kIGZhaWxpbmcgdG8gZG9cbiAgICAgIC8vIHNvIHdpbGwgcmVzdWx0IGluIGFuIGVuZGxlc3Mgd2FpdCBoZXJlICh0aGUgQ2hhbmdlU2V0IHdvbnQgZGVsZXRlIG9yIGV4ZWN1dGUgaXRzZWxmKS4gSW5zdGVhZCBvZiBibG9ja2luZ1xuICAgICAgLy8gXCJmb3JldmVyXCIgd2UgcHJvY2VlZCBhcyBpZiB0aGUgc3RhY2sgd2FzIGV4aXN0aW5nIGFuZCBzdGFibGUuIElmIHRoZXJlIGlzIGEgY29uY3VycmVudCBvcGVyYXRpb24gdGhhdCBqdXN0XG4gICAgICAvLyBoYXNuJ3QgZmluaXNoZWQgcHJvY2VlZGluZyBqdXN0IHlldCwgZWl0aGVyIHRoaXMgb3BlcmF0aW9uIG9yIHRoZSBjb25jdXJyZW50IG9uZSBtYXkgZmFpbCBkdWUgdG8gdGhlIG90aGVyIG9uZVxuICAgICAgLy8gaGF2aW5nIG1hZGUgcHJvZ3Jlc3MuIFdoaWNoIGlzIGZpbmUuIEkgZ3Vlc3MuXG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ1N0YWNrICVzIGlzIGluIFJFVklFV19JTl9QUk9HUkVTUyBzdGF0ZS4gQ29uc2lkZXJpbmcgdGhpcyBpcyBhIHN0YWJsZSBzdGF0dXMgKCVzKScsIHN0YWNrTmFtZSwgc3RhdHVzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9KTtcbn1cblxuLyoqXG4gKiBUaGUgc2V0IG9mIChmb3JtYWwpIHBhcmFtZXRlcnMgdGhhdCBoYXZlIGJlZW4gZGVjbGFyZWQgaW4gYSB0ZW1wbGF0ZVxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVQYXJhbWV0ZXJzIHtcbiAgcHVibGljIHN0YXRpYyBmcm9tVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZVBhcmFtZXRlcnModGVtcGxhdGUuUGFyYW1ldGVycyB8fCB7fSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhcmFtczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVQYXJhbWV0ZXI+KSB7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHN0YWNrIHBhcmFtZXRlcnMgdG8gcGFzcyBmcm9tIHRoZSBnaXZlbiBkZXNpcmVkIHBhcmFtZXRlciB2YWx1ZXNcbiAgICpcbiAgICogV2lsbCB0aHJvdyBpZiBwYXJhbWV0ZXJzIHdpdGhvdXQgYSBEZWZhdWx0IHZhbHVlIG9yIGEgUHJldmlvdXMgdmFsdWUgYXJlIG5vdFxuICAgKiBzdXBwbGllZC5cbiAgICovXG4gIHB1YmxpYyBzdXBwbHlBbGwodXBkYXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPik6IFBhcmFtZXRlclZhbHVlcyB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJWYWx1ZXModGhpcy5wYXJhbXMsIHVwZGF0ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZyb20gdGhlIHRlbXBsYXRlLCB0aGUgZ2l2ZW4gZGVzaXJlZCB2YWx1ZXMgYW5kIHRoZSBjdXJyZW50IHZhbHVlcywgY2FsY3VsYXRlIHRoZSBjaGFuZ2VzIHRvIHRoZSBzdGFjayBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIFdpbGwgdGFrZSBpbnRvIGFjY291bnQgcGFyYW1ldGVycyBhbHJlYWR5IHNldCBvbiB0aGUgdGVtcGxhdGUgKHdpbGwgZW1pdFxuICAgKiAnVXNlUHJldmlvdXNWYWx1ZTogdHJ1ZScgZm9yIHRob3NlIHVubGVzcyB0aGUgdmFsdWUgaXMgY2hhbmdlZCksIGFuZCB3aWxsXG4gICAqIHRocm93IGlmIHBhcmFtZXRlcnMgd2l0aG91dCBhIERlZmF1bHQgdmFsdWUgb3IgYSBQcmV2aW91cyB2YWx1ZSBhcmUgbm90XG4gICAqIHN1cHBsaWVkLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUV4aXN0aW5nKFxuICAgIHVwZGF0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4sXG4gICAgcHJldmlvdXNWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICk6IFBhcmFtZXRlclZhbHVlcyB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJWYWx1ZXModGhpcy5wYXJhbXMsIHVwZGF0ZXMsIHByZXZpb3VzVmFsdWVzKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBzZXQgb2YgcGFyYW1ldGVycyB3ZSdyZSBnb2luZyB0byBwYXNzIHRvIGEgU3RhY2tcbiAqL1xuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclZhbHVlcyB7XG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgcHVibGljIHJlYWRvbmx5IGFwaVBhcmFtZXRlcnM6IFBhcmFtZXRlcltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYWxQYXJhbXM6IFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUGFyYW1ldGVyPixcbiAgICB1cGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+LFxuICAgIHByZXZpb3VzVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge30sXG4gICkge1xuICAgIGNvbnN0IG1pc3NpbmdSZXF1aXJlZCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIGZvcm1hbFBhcmFtXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1hbFBhcmFtcykpIHtcbiAgICAgIC8vIENoZWNrIHVwZGF0ZXMgZmlyc3QsIHRoZW4gdXNlIHRoZSBwcmV2aW91cyB2YWx1ZSAoaWYgYXZhaWxhYmxlKSwgdGhlbiB1c2VcbiAgICAgIC8vIHRoZSBkZWZhdWx0IChpZiBhdmFpbGFibGUpLlxuICAgICAgLy9cbiAgICAgIC8vIElmIHdlIGRvbid0IGZpbmQgYSBwYXJhbWV0ZXIgdmFsdWUgdXNpbmcgYW55IG9mIHRoZXNlIG1ldGhvZHMsIHRoZW4gdGhhdCdzIGFuIGVycm9yLlxuICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdXBkYXRlc1trZXldO1xuICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsdWVzW2tleV0gPSB1cGRhdGVkVmFsdWU7XG4gICAgICAgIHRoaXMuYXBpUGFyYW1ldGVycy5wdXNoKHtcbiAgICAgICAgICBQYXJhbWV0ZXJLZXk6IGtleSxcbiAgICAgICAgICBQYXJhbWV0ZXJWYWx1ZTogdXBkYXRlc1trZXldLFxuICAgICAgICB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkgaW4gcHJldmlvdXNWYWx1ZXMpIHtcbiAgICAgICAgdGhpcy52YWx1ZXNba2V5XSA9IHByZXZpb3VzVmFsdWVzW2tleV07XG4gICAgICAgIHRoaXMuYXBpUGFyYW1ldGVycy5wdXNoKHsgUGFyYW1ldGVyS2V5OiBrZXksIFVzZVByZXZpb3VzVmFsdWU6IHRydWUgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybWFsUGFyYW0uRGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsdWVzW2tleV0gPSBmb3JtYWxQYXJhbS5EZWZhdWx0O1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gT2ggbm9cbiAgICAgIG1pc3NpbmdSZXF1aXJlZC5wdXNoKGtleSk7XG4gICAgfVxuXG4gICAgaWYgKG1pc3NpbmdSZXF1aXJlZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdNaXNzaW5nUGFyYW1ldGVycycsIGBUaGUgZm9sbG93aW5nIENsb3VkRm9ybWF0aW9uIFBhcmFtZXRlcnMgYXJlIG1pc3NpbmcgYSB2YWx1ZTogJHttaXNzaW5nUmVxdWlyZWQuam9pbignLCAnKX1gKTtcbiAgICB9XG5cbiAgICAvLyBKdXN0IGFwcGVuZCBhbGwgc3VwcGxpZWQgb3ZlcnJpZGVzIHRoYXQgYXJlbid0IHJlYWxseSBleHBlY3RlZCAodGhpc1xuICAgIC8vIHdpbGwgZmFpbCBDRk4gYnV0IG1heWJlIHBlb3BsZSBtYWRlIHR5cG9zIHRoYXQgdGhleSB3YW50IHRvIGJlIG5vdGlmaWVkXG4gICAgLy8gb2YpXG4gICAgY29uc3QgdW5rbm93blBhcmFtID0gKFtrZXksIF9dOiBbc3RyaW5nLCBhbnldKSA9PiB0aGlzLmZvcm1hbFBhcmFtc1trZXldID09PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgaGFzVmFsdWUgPSAoW18sIHZhbHVlXTogW3N0cmluZywgYW55XSkgPT4gISF2YWx1ZTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh1cGRhdGVzKS5maWx0ZXIodW5rbm93blBhcmFtKS5maWx0ZXIoaGFzVmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbHVlc1trZXldID0gdmFsdWUhO1xuICAgICAgdGhpcy5hcGlQYXJhbWV0ZXJzLnB1c2goeyBQYXJhbWV0ZXJLZXk6IGtleSwgUGFyYW1ldGVyVmFsdWU6IHZhbHVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc2V0IG9mIHBhcmFtZXRlciB1cGRhdGVzIHdpbGwgY2hhbmdlIHRoZSBhY3R1YWwgc3RhY2sgdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgaGFzQ2hhbmdlcyhjdXJyZW50VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUGFyYW1ldGVyQ2hhbmdlcyB7XG4gICAgLy8gSWYgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIGFyZSBTU00gcGFyYW1ldGVycywgZGVwbG95aW5nIG11c3QgYWx3YXlzIGhhcHBlblxuICAgIC8vIGJlY2F1c2Ugd2UgY2FuJ3QgcHJlZGljdCB3aGF0IHRoZSB2YWx1ZXMgd2lsbCBiZS4gV2Ugd2lsbCBhbGxvdyBzb21lXG4gICAgLy8gcGFyYW1ldGVycyB0byBvcHQgb3V0IG9mIHRoaXMgY2hlY2sgYnkgaGF2aW5nIGEgbWFnaWMgc3RyaW5nIGluIHRoZWlyIGRlc2NyaXB0aW9uLlxuICAgIGlmIChcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtYWxQYXJhbXMpLnNvbWUoXG4gICAgICAgIChwKSA9PiBwLlR5cGUuc3RhcnRzV2l0aCgnQVdTOjpTU006OlBhcmFtZXRlcjo6JykgJiYgIXAuRGVzY3JpcHRpb24/LmluY2x1ZGVzKFNTTVBBUkFNX05PX0lOVkFMSURBVEUpLFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuICdzc20nO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSB3ZSdyZSBkaXJ0eSBpZjpcbiAgICAvLyAtIGFueSBvZiB0aGUgZXhpc3RpbmcgdmFsdWVzIGFyZSByZW1vdmVkLCBvciBjaGFuZ2VkXG4gICAgaWYgKE9iamVjdC5lbnRyaWVzKGN1cnJlbnRWYWx1ZXMpLnNvbWUoKFtrZXksIHZhbHVlXSkgPT4gIShrZXkgaW4gdGhpcy52YWx1ZXMpIHx8IHZhbHVlICE9PSB0aGlzLnZhbHVlc1trZXldKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gLSBhbnkgb2YgdGhlIHZhbHVlcyB3ZSdyZSBzZXR0aW5nIGFyZSBuZXdcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy52YWx1ZXMpLnNvbWUoKGtleSkgPT4gIShrZXkgaW4gY3VycmVudFZhbHVlcykpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgUGFyYW1ldGVyQ2hhbmdlcyA9IGJvb2xlYW4gfCAnc3NtJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.determineAllowCrossAccountAssetPublishing = determineAllowCrossAccountAssetPublishing;\nexports.getBootstrapStackInfo = getBootstrapStackInfo;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nasync function determineAllowCrossAccountAssetPublishing(sdk, ioHelper, customStackName) {\n try {\n const stackName = customStackName || 'CDKToolkit';\n const stackInfo = await getBootstrapStackInfo(sdk, stackName);\n if (!stackInfo.hasStagingBucket) {\n // indicates an intentional cross account setup\n return true;\n }\n if (stackInfo.bootstrapVersion >= 21) {\n // bootstrap stack version 21 contains a fix that will prevent cross\n // account publishing on the IAM level\n // https://github.com/aws/aws-cdk/pull/30823\n return true;\n }\n // If there is a staging bucket AND the bootstrap version is old, then we want to protect\n // against accidental cross-account publishing.\n return false;\n }\n catch (e) {\n // You would think we would need to fail closed here, but the reality is\n // that we get here if we couldn't find the bootstrap stack: that is\n // completely valid, and many large organizations may have their own method\n // of creating bootstrap resources. If they do, there's nothing for us to validate,\n // but we can't use that as a reason to disallow cross-account publishing. We'll just\n // have to trust they did their due diligence. So we fail open.\n await ioHelper.defaults.debug(`Error determining cross account asset publishing: ${e}`);\n await ioHelper.defaults.debug('Defaulting to allowing cross account asset publishing');\n return true;\n }\n}\nasync function getBootstrapStackInfo(sdk, stackName) {\n try {\n const cfn = sdk.cloudFormation();\n const stackResponse = await cfn.describeStacks({ StackName: stackName });\n if (!stackResponse.Stacks || stackResponse.Stacks.length === 0) {\n throw new toolkit_error_1.ToolkitError('ToolkitStackNotFound', `Toolkit stack ${stackName} not found`);\n }\n const stack = stackResponse.Stacks[0];\n const versionOutput = stack.Outputs?.find(output => output.OutputKey === 'BootstrapVersion');\n if (!versionOutput?.OutputValue) {\n throw new toolkit_error_1.ToolkitError('BootstrapVersionNotFound', `Unable to find BootstrapVersion output in the toolkit stack ${stackName}`);\n }\n const bootstrapVersion = parseInt(versionOutput.OutputValue);\n if (isNaN(bootstrapVersion)) {\n throw new toolkit_error_1.ToolkitError('InvalidBootstrapVersion', `Invalid BootstrapVersion value: ${versionOutput.OutputValue}`);\n }\n // try to get bucketname from the logical resource id. If there is no\n // bucketname, or the value doesn't look like an S3 bucket name, we assume\n // the bucket doesn't exist (this is for the case where a template customizer did\n // not dare to remove the Output, but put a dummy value there like '' or '-' or '***').\n //\n // We would have preferred to look at the stack resources here, but\n // unfortunately the deploy role doesn't have permissions call DescribeStackResources.\n const bucketName = stack.Outputs?.find(output => output.OutputKey === 'BucketName')?.OutputValue;\n // Must begin and end with letter or number.\n const hasStagingBucket = !!(bucketName && bucketName.match(/^[a-z0-9]/) && bucketName.match(/[a-z0-9]$/));\n return {\n hasStagingBucket,\n bootstrapVersion,\n };\n }\n catch (e) {\n throw new toolkit_error_1.ToolkitError('ToolkitStackInfoError', `Error retrieving toolkit stack info: ${e}`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsOEZBbUNDO0FBT0Qsc0RBdUNDO0FBckZELCtEQUEyRDtBQUlwRCxLQUFLLFVBQVUseUNBQXlDLENBQzdELEdBQVEsRUFDUixRQUFrQixFQUNsQixlQUF3QjtJQUV4QixJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxlQUFlLElBQUksWUFBWSxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHLE1BQU0scUJBQXFCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNoQywrQ0FBK0M7WUFDL0MsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLENBQUM7WUFDckMsb0VBQW9FO1lBQ3BFLHNDQUFzQztZQUN0Qyw0Q0FBNEM7WUFDNUMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQseUZBQXlGO1FBQ3pGLCtDQUErQztRQUMvQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsd0VBQXdFO1FBQ3hFLG9FQUFvRTtRQUNwRSwyRUFBMkU7UUFDM0UsbUZBQW1GO1FBQ25GLHFGQUFxRjtRQUNyRiwrREFBK0Q7UUFDL0QsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQU9NLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsU0FBaUI7SUFDckUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9ELE1BQU0sSUFBSSw0QkFBWSxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixTQUFTLFlBQVksQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdGLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLDRCQUFZLENBQUMsMEJBQTBCLEVBQUUsK0RBQStELFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakksQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDRCQUFZLENBQUMseUJBQXlCLEVBQUUsbUNBQW1DLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILENBQUM7UUFFRCxxRUFBcUU7UUFDckUsMEVBQTBFO1FBQzFFLGlGQUFpRjtRQUNqRix1RkFBdUY7UUFDdkYsRUFBRTtRQUNGLG1FQUFtRTtRQUNuRSxzRkFBc0Y7UUFDdEYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLFlBQVksQ0FBQyxFQUFFLFdBQVcsQ0FBQztRQUNqRyw0Q0FBNEM7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFMUcsT0FBTztZQUNMLGdCQUFnQjtZQUNoQixnQkFBZ0I7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLDRCQUFZLENBQUMsdUJBQXVCLEVBQUUsd0NBQXdDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRldGVybWluZUFsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nKFxuICBzZGs6IFNESyxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBjdXN0b21TdGFja05hbWU/OiBzdHJpbmcsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBjdXN0b21TdGFja05hbWUgfHwgJ0NES1Rvb2xraXQnO1xuICAgIGNvbnN0IHN0YWNrSW5mbyA9IGF3YWl0IGdldEJvb3RzdHJhcFN0YWNrSW5mbyhzZGssIHN0YWNrTmFtZSk7XG5cbiAgICBpZiAoIXN0YWNrSW5mby5oYXNTdGFnaW5nQnVja2V0KSB7XG4gICAgICAvLyBpbmRpY2F0ZXMgYW4gaW50ZW50aW9uYWwgY3Jvc3MgYWNjb3VudCBzZXR1cFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YWNrSW5mby5ib290c3RyYXBWZXJzaW9uID49IDIxKSB7XG4gICAgICAvLyBib290c3RyYXAgc3RhY2sgdmVyc2lvbiAyMSBjb250YWlucyBhIGZpeCB0aGF0IHdpbGwgcHJldmVudCBjcm9zc1xuICAgICAgLy8gYWNjb3VudCBwdWJsaXNoaW5nIG9uIHRoZSBJQU0gbGV2ZWxcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzMwODIzXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhIHN0YWdpbmcgYnVja2V0IEFORCB0aGUgYm9vdHN0cmFwIHZlcnNpb24gaXMgb2xkLCB0aGVuIHdlIHdhbnQgdG8gcHJvdGVjdFxuICAgIC8vIGFnYWluc3QgYWNjaWRlbnRhbCBjcm9zcy1hY2NvdW50IHB1Ymxpc2hpbmcuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gWW91IHdvdWxkIHRoaW5rIHdlIHdvdWxkIG5lZWQgdG8gZmFpbCBjbG9zZWQgaGVyZSwgYnV0IHRoZSByZWFsaXR5IGlzXG4gICAgLy8gdGhhdCB3ZSBnZXQgaGVyZSBpZiB3ZSBjb3VsZG4ndCBmaW5kIHRoZSBib290c3RyYXAgc3RhY2s6IHRoYXQgaXNcbiAgICAvLyBjb21wbGV0ZWx5IHZhbGlkLCBhbmQgbWFueSBsYXJnZSBvcmdhbml6YXRpb25zIG1heSBoYXZlIHRoZWlyIG93biBtZXRob2RcbiAgICAvLyBvZiBjcmVhdGluZyBib290c3RyYXAgcmVzb3VyY2VzLiBJZiB0aGV5IGRvLCB0aGVyZSdzIG5vdGhpbmcgZm9yIHVzIHRvIHZhbGlkYXRlLFxuICAgIC8vIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBhcyBhIHJlYXNvbiB0byBkaXNhbGxvdyBjcm9zcy1hY2NvdW50IHB1Ymxpc2hpbmcuIFdlJ2xsIGp1c3RcbiAgICAvLyBoYXZlIHRvIHRydXN0IHRoZXkgZGlkIHRoZWlyIGR1ZSBkaWxpZ2VuY2UuIFNvIHdlIGZhaWwgb3Blbi5cbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgRXJyb3IgZGV0ZXJtaW5pbmcgY3Jvc3MgYWNjb3VudCBhc3NldCBwdWJsaXNoaW5nOiAke2V9YCk7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoJ0RlZmF1bHRpbmcgdG8gYWxsb3dpbmcgY3Jvc3MgYWNjb3VudCBhc3NldCBwdWJsaXNoaW5nJyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEJvb3RzdHJhcFN0YWNrSW5mbyB7XG4gIGhhc1N0YWdpbmdCdWNrZXQ6IGJvb2xlYW47XG4gIGJvb3RzdHJhcFZlcnNpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJvb3RzdHJhcFN0YWNrSW5mbyhzZGs6IFNESywgc3RhY2tOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJvb3RzdHJhcFN0YWNrSW5mbz4ge1xuICB0cnkge1xuICAgIGNvbnN0IGNmbiA9IHNkay5jbG91ZEZvcm1hdGlvbigpO1xuICAgIGNvbnN0IHN0YWNrUmVzcG9uc2UgPSBhd2FpdCBjZm4uZGVzY3JpYmVTdGFja3MoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KTtcblxuICAgIGlmICghc3RhY2tSZXNwb25zZS5TdGFja3MgfHwgc3RhY2tSZXNwb25zZS5TdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUb29sa2l0U3RhY2tOb3RGb3VuZCcsIGBUb29sa2l0IHN0YWNrICR7c3RhY2tOYW1lfSBub3QgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFjayA9IHN0YWNrUmVzcG9uc2UuU3RhY2tzWzBdO1xuICAgIGNvbnN0IHZlcnNpb25PdXRwdXQgPSBzdGFjay5PdXRwdXRzPy5maW5kKG91dHB1dCA9PiBvdXRwdXQuT3V0cHV0S2V5ID09PSAnQm9vdHN0cmFwVmVyc2lvbicpO1xuXG4gICAgaWYgKCF2ZXJzaW9uT3V0cHV0Py5PdXRwdXRWYWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwVmVyc2lvbk5vdEZvdW5kJywgYFVuYWJsZSB0byBmaW5kIEJvb3RzdHJhcFZlcnNpb24gb3V0cHV0IGluIHRoZSB0b29sa2l0IHN0YWNrICR7c3RhY2tOYW1lfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGJvb3RzdHJhcFZlcnNpb24gPSBwYXJzZUludCh2ZXJzaW9uT3V0cHV0Lk91dHB1dFZhbHVlKTtcbiAgICBpZiAoaXNOYU4oYm9vdHN0cmFwVmVyc2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRCb290c3RyYXBWZXJzaW9uJywgYEludmFsaWQgQm9vdHN0cmFwVmVyc2lvbiB2YWx1ZTogJHt2ZXJzaW9uT3V0cHV0Lk91dHB1dFZhbHVlfWApO1xuICAgIH1cblxuICAgIC8vIHRyeSB0byBnZXQgYnVja2V0bmFtZSBmcm9tIHRoZSBsb2dpY2FsIHJlc291cmNlIGlkLiBJZiB0aGVyZSBpcyBub1xuICAgIC8vIGJ1Y2tldG5hbWUsIG9yIHRoZSB2YWx1ZSBkb2Vzbid0IGxvb2sgbGlrZSBhbiBTMyBidWNrZXQgbmFtZSwgd2UgYXNzdW1lXG4gICAgLy8gdGhlIGJ1Y2tldCBkb2Vzbid0IGV4aXN0ICh0aGlzIGlzIGZvciB0aGUgY2FzZSB3aGVyZSBhIHRlbXBsYXRlIGN1c3RvbWl6ZXIgZGlkXG4gICAgLy8gbm90IGRhcmUgdG8gcmVtb3ZlIHRoZSBPdXRwdXQsIGJ1dCBwdXQgYSBkdW1teSB2YWx1ZSB0aGVyZSBsaWtlICcnIG9yICctJyBvciAnKioqJykuXG4gICAgLy9cbiAgICAvLyBXZSB3b3VsZCBoYXZlIHByZWZlcnJlZCB0byBsb29rIGF0IHRoZSBzdGFjayByZXNvdXJjZXMgaGVyZSwgYnV0XG4gICAgLy8gdW5mb3J0dW5hdGVseSB0aGUgZGVwbG95IHJvbGUgZG9lc24ndCBoYXZlIHBlcm1pc3Npb25zIGNhbGwgRGVzY3JpYmVTdGFja1Jlc291cmNlcy5cbiAgICBjb25zdCBidWNrZXROYW1lID0gc3RhY2suT3V0cHV0cz8uZmluZChvdXRwdXQgPT4gb3V0cHV0Lk91dHB1dEtleSA9PT0gJ0J1Y2tldE5hbWUnKT8uT3V0cHV0VmFsdWU7XG4gICAgLy8gTXVzdCBiZWdpbiBhbmQgZW5kIHdpdGggbGV0dGVyIG9yIG51bWJlci5cbiAgICBjb25zdCBoYXNTdGFnaW5nQnVja2V0ID0gISEoYnVja2V0TmFtZSAmJiBidWNrZXROYW1lLm1hdGNoKC9eW2EtejAtOV0vKSAmJiBidWNrZXROYW1lLm1hdGNoKC9bYS16MC05XSQvKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaGFzU3RhZ2luZ0J1Y2tldCxcbiAgICAgIGJvb3RzdHJhcFZlcnNpb24sXG4gICAgfTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Rvb2xraXRTdGFja0luZm9FcnJvcicsIGBFcnJvciByZXRyaWV2aW5nIHRvb2xraXQgc3RhY2sgaW5mbzogJHtlfWApO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deployStack = deployStack;\nexports.destroyStack = destroyStack;\nconst util_1 = require(\"util\");\nconst chalk = require(\"chalk\");\nconst uuid = require(\"uuid\");\nconst asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nconst asset_publishing_1 = require(\"./asset-publishing\");\nconst assets_1 = require(\"./assets\");\nconst cfn_api_1 = require(\"./cfn-api\");\nconst checks_1 = require(\"./checks\");\nconst deployment_method_1 = require(\"../../actions/deploy/private/deployment-method\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_2 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst environment_1 = require(\"../environment\");\nconst common_1 = require(\"../hotswap/common\");\nconst hotswap_deployments_1 = require(\"../hotswap/hotswap-deployments\");\nconst stack_events_1 = require(\"../stack-events\");\nconst early_validation_1 = require(\"./early-validation\");\nasync function deployStack(options, ioHelper) {\n const stackArtifact = options.stack;\n const stackEnv = options.resolvedEnvironment;\n let deploymentMethod = options.deploymentMethod ?? { method: 'change-set' };\n options.sdk.appendCustomUserAgent(options.extraUserAgent);\n const cfn = options.sdk.cloudFormation();\n const deployName = options.deployName || stackArtifact.stackName;\n let cloudFormationStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n if (cloudFormationStack.stackStatus.isCreationFailure) {\n await ioHelper.defaults.debug(`Found existing stack ${deployName} that had previously failed creation. Deleting it before attempting to re-create it.`);\n await cfn.deleteStack({ StackName: deployName });\n const deletedStack = await (0, cfn_api_1.waitForStackDelete)(cfn, ioHelper, deployName);\n if (deletedStack && deletedStack.stackStatus.name !== 'DELETE_COMPLETE') {\n throw new toolkit_error_1.DeploymentError(`Failed deleting stack ${deployName} that had previously failed creation (current state: ${deletedStack.stackStatus})`, 'FailedStackCleanupFailed');\n }\n // Update variable to mark that the stack does not exist anymore, but avoid\n // doing an actual lookup in CloudFormation (which would be silly to do if\n // we just deleted it).\n cloudFormationStack = cloudformation_1.CloudFormationStack.doesNotExist(cfn, deployName);\n }\n // Detect \"legacy\" assets (which remain in the metadata) and publish them via\n // an ad-hoc asset manifest, while passing their locations via template\n // parameters.\n const legacyAssets = new asset_manifest_builder_1.AssetManifestBuilder();\n const assetParams = await (0, assets_1.addMetadataAssetsToManifest)(ioHelper, stackArtifact, legacyAssets, options.envResources, options.reuseAssets);\n const finalParameterValues = { ...options.parameters, ...assetParams };\n const templateParams = cfn_api_1.TemplateParameters.fromTemplate(stackArtifact.template);\n const stackParams = options.usePreviousParameters\n ? templateParams.updateExisting(finalParameterValues, cloudFormationStack.parameters)\n : templateParams.supplyAll(finalParameterValues);\n if (await canSkipDeploy(options, cloudFormationStack, stackParams.hasChanges(cloudFormationStack.parameters), ioHelper)) {\n await ioHelper.defaults.debug(`${deployName}: skipping deployment (use --force to override)`);\n // if we can skip deployment and we are performing a hotswap, let the user know\n // that no hotswap deployment happened\n if (deploymentMethod?.method === 'hotswap') {\n await ioHelper.defaults.info((0, util_1.format)(`\\n ${common_1.ICON} %s\\n`, chalk.bold('hotswap deployment skipped - no changes were detected (use --force to override)')));\n }\n return {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: cloudFormationStack.outputs,\n stackArn: cloudFormationStack.stackId,\n };\n }\n else {\n await ioHelper.defaults.debug(`${deployName}: deploying...`);\n }\n const bodyParameter = await (0, cloudformation_1.makeBodyParameter)(ioHelper, stackArtifact, options.resolvedEnvironment, legacyAssets, options.envResources, options.overrideTemplate);\n let bootstrapStackName;\n try {\n bootstrapStackName = (await options.envResources.lookupToolkit()).stackName;\n }\n catch (e) {\n await ioHelper.defaults.debug(`Could not determine the bootstrap stack name: ${e}`);\n }\n await (0, asset_publishing_1.publishAssets)(legacyAssets.toManifest(stackArtifact.assembly.directory), options.sdkProvider, stackEnv, {\n parallel: options.assetParallelism,\n allowCrossAccount: await (0, checks_1.determineAllowCrossAccountAssetPublishing)(options.sdk, ioHelper, bootstrapStackName),\n }, ioHelper);\n // attempt to short-circuit the deployment if possible\n if (deploymentMethod?.method === 'hotswap') {\n try {\n const hotswapModeNew = deploymentMethod?.fallback ? 'fall-back' : 'hotswap-only';\n const hotswapPropertyOverrides = deploymentMethod.properties\n ? (0, common_1.createHotswapPropertyOverrides)(deploymentMethod.properties)\n : new common_1.HotswapPropertyOverrides();\n const hotswapDeploymentResult = await (0, hotswap_deployments_1.tryHotswapDeployment)(options.sdkProvider, ioHelper, stackParams.values, cloudFormationStack, stackArtifact, hotswapModeNew, hotswapPropertyOverrides);\n if (hotswapDeploymentResult) {\n return hotswapDeploymentResult;\n }\n await ioHelper.defaults.info((0, util_1.format)('Could not perform a hotswap deployment, as the stack %s contains non-Asset changes', stackArtifact.displayName));\n }\n catch (e) {\n if (!(e instanceof cloudformation_1.CfnEvaluationException)) {\n throw e;\n }\n await ioHelper.defaults.info((0, util_1.format)('Could not perform a hotswap deployment, because the CloudFormation template could not be resolved: %s', (0, util_2.formatErrorMessage)(e)));\n }\n if (deploymentMethod.fallback) {\n await ioHelper.defaults.info('Falling back to doing a full deployment');\n options.sdk.appendCustomUserAgent('cdk-hotswap/fallback');\n deploymentMethod = deploymentMethod.fallback;\n }\n else {\n return {\n type: 'did-deploy-stack',\n noOp: true,\n stackArn: cloudFormationStack.stackId,\n outputs: cloudFormationStack.outputs,\n };\n }\n }\n // could not short-circuit the deployment, perform a full CFN deploy instead\n const fullDeployment = new FullCloudFormationDeployment(deploymentMethod, options, cloudFormationStack, stackArtifact, stackParams, bodyParameter, ioHelper);\n return fullDeployment.performDeployment();\n}\n/**\n * This class shares state and functionality between the different full deployment modes\n */\nclass FullCloudFormationDeployment {\n deploymentMethod;\n options;\n cloudFormationStack;\n stackArtifact;\n stackParams;\n bodyParameter;\n ioHelper;\n cfn;\n stackName;\n update;\n verb;\n uuid;\n constructor(deploymentMethod, options, cloudFormationStack, stackArtifact, stackParams, bodyParameter, ioHelper) {\n this.deploymentMethod = deploymentMethod;\n this.options = options;\n this.cloudFormationStack = cloudFormationStack;\n this.stackArtifact = stackArtifact;\n this.stackParams = stackParams;\n this.bodyParameter = bodyParameter;\n this.ioHelper = ioHelper;\n this.cfn = options.sdk.cloudFormation();\n this.stackName = options.deployName ?? stackArtifact.stackName;\n this.update = cloudFormationStack.exists && cloudFormationStack.stackStatus.name !== 'REVIEW_IN_PROGRESS';\n this.verb = this.update ? 'update' : 'create';\n this.uuid = uuid.v4();\n }\n async performDeployment() {\n const deploymentMethod = this.deploymentMethod ?? { method: 'change-set' };\n if (deploymentMethod.method === 'direct' && this.options.resourcesToImport) {\n throw new toolkit_error_1.ToolkitError('ImportRequiresChangeSet', 'Importing resources requires a changeset deployment');\n }\n switch (deploymentMethod.method) {\n case 'change-set':\n return this.changeSetDeployment(deploymentMethod);\n case 'execute-change-set':\n return this.executeExistingChangeSet(deploymentMethod);\n case 'direct':\n return this.directDeployment();\n }\n }\n async changeSetDeployment(deploymentMethod) {\n const changeSetName = deploymentMethod.changeSetName ?? deployment_method_1.DEFAULT_DEPLOY_CHANGE_SET_NAME;\n const execute = deploymentMethod.execute ?? true;\n const importExistingResources = deploymentMethod.importExistingResources ?? false;\n const revertDrift = deploymentMethod.revertDrift ?? false;\n const changeSetDescription = await this.createChangeSet(changeSetName, execute, importExistingResources, revertDrift);\n await this.updateTerminationProtection();\n if ((0, cfn_api_1.changeSetHasNoChanges)(changeSetDescription)) {\n await this.ioHelper.defaults.debug((0, util_1.format)('No changes are to be performed on %s.', this.stackName));\n if (execute) {\n await this.ioHelper.defaults.debug((0, util_1.format)('Deleting empty change set %s', changeSetDescription.ChangeSetId));\n await this.cfn.deleteChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSetName,\n });\n }\n if (this.options.forceDeployment) {\n await this.ioHelper.defaults.warn([\n 'You used the --force flag, but CloudFormation reported that the deployment would not make any changes.',\n 'According to CloudFormation, all resources are already up-to-date with the state in your CDK app.',\n '',\n 'You cannot use the --force flag to get rid of changes you made in the console. Try using',\n 'CloudFormation drift detection instead: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html',\n ].join('\\n'));\n }\n return {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: this.cloudFormationStack.outputs,\n stackArn: changeSetDescription.StackId,\n };\n }\n if (!execute) {\n await this.ioHelper.defaults.info((0, util_1.format)('Changeset %s created and waiting in review for manual execution (--no-execute)', changeSetDescription.ChangeSetId));\n return {\n type: 'did-deploy-stack',\n noOp: false,\n outputs: this.cloudFormationStack.outputs,\n stackArn: changeSetDescription.StackId,\n changeSet: changeSetDescription,\n };\n }\n // If there are replacements in the changeset, check the rollback flag and stack status\n return this.checkAndExecuteChangeSet(changeSetDescription);\n }\n async executeExistingChangeSet(deploymentMethod) {\n await this.updateTerminationProtection();\n // The change set was already created and validated during the prepare phase,\n // just describe it to get the info needed for execution.\n const changeSetDescription = await this.cfn.describeChangeSet({\n StackName: this.stackName,\n ChangeSetName: deploymentMethod.changeSetName,\n });\n return this.checkAndExecuteChangeSet(changeSetDescription);\n }\n /**\n * Check rollback/replacement constraints and execute the change set if all checks pass.\n */\n async checkAndExecuteChangeSet(changeSetDescription) {\n if (changeSetDescription.Status !== 'CREATE_COMPLETE') {\n const status = changeSetDescription.Status ?? 'UNKNOWN';\n const reason = changeSetDescription.StatusReason ? `: ${changeSetDescription.StatusReason}` : '';\n throw new toolkit_error_1.ToolkitError('ChangeSetNotReady', `Change set '${changeSetDescription.ChangeSetName}' on stack '${this.stackName}' is not ready for execution (status: ${status}${reason})`);\n }\n const replacement = hasReplacement(changeSetDescription);\n const isPausedFailState = this.cloudFormationStack.stackStatus.isRollbackable;\n const rollback = this.options.rollback ?? true;\n if (isPausedFailState && replacement) {\n return { type: 'failpaused-need-rollback-first', reason: 'replacement', status: this.cloudFormationStack.stackStatus.name };\n }\n if (isPausedFailState && rollback) {\n return { type: 'failpaused-need-rollback-first', reason: 'not-norollback', status: this.cloudFormationStack.stackStatus.name };\n }\n if (!rollback && replacement) {\n return { type: 'replacement-requires-rollback' };\n }\n return this.executeChangeSet(changeSetDescription);\n }\n async createChangeSet(changeSetName, willExecute, importExistingResources, revertDrift) {\n await this.cleanupOldChangeset(changeSetName);\n await this.ioHelper.defaults.debug(`Attempting to create ChangeSet with name ${changeSetName} to ${this.verb} stack ${this.stackName}`);\n await this.ioHelper.defaults.info((0, util_1.format)('%s: creating CloudFormation changeset...', chalk.bold(this.stackName)));\n const changeSet = await this.cfn.createChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSetName,\n ChangeSetType: this.options.resourcesToImport ? 'IMPORT' : this.update ? 'UPDATE' : 'CREATE',\n ResourcesToImport: this.options.resourcesToImport,\n Description: `CDK Changeset for execution ${this.uuid}`,\n ClientToken: `create${this.uuid}`,\n ImportExistingResources: importExistingResources,\n DeploymentMode: revertDrift ? 'REVERT_DRIFT' : undefined,\n ...this.commonPrepareOptions(),\n });\n await this.ioHelper.defaults.debug((0, util_1.format)('Initiated creation of changeset: %s; waiting for it to finish creating...', changeSet.Id));\n // Fetching all pages if we'll execute, so we can have the correct change count when monitoring.\n const environmentResourcesRegistry = new environment_1.EnvironmentResourcesRegistry();\n const envResources = environmentResourcesRegistry.for(this.options.resolvedEnvironment, this.options.sdk, this.ioHelper);\n const validationReporter = new early_validation_1.EarlyValidationReporter(this.options.sdk, envResources);\n try {\n return await (0, cfn_api_1.waitForChangeSet)(this.cfn, this.ioHelper, this.stackName, changeSetName, {\n fetchAll: willExecute,\n validationReporter,\n });\n }\n catch (e) {\n if (importExistingResources && toolkit_error_1.ToolkitError.isDeploymentError(e) && e.deploymentErrorCode === 'ChangeSetCreationFailed') {\n throw new toolkit_error_1.DeploymentError(this.enhanceImportErrorMessage(e.message), 'ChangeSetCreationFailed');\n }\n throw e;\n }\n }\n /**\n * Enhance an import-related changeset error message by mapping CFN logical IDs to CDK construct paths.\n */\n enhanceImportErrorMessage(message) {\n // Only enhance the specific CFN error about importing existing resources\n if (!message.includes('CloudFormation is attempting to import some resources because they already exist in your account')) {\n return message;\n }\n const marker = 'The affected resources are ';\n const markerIndex = message.indexOf(marker);\n if (markerIndex === -1) {\n return message;\n }\n // Only extract logical IDs from the \"The affected resources are ...\" suffix\n const resourceList = message.substring(markerIndex + marker.length);\n const logicalIdPattern = /\\b([A-Za-z][A-Za-z0-9]+)\\s+\\(\\{/g;\n const resources = this.stackArtifact.template?.Resources ?? {};\n const affected = [];\n for (const match of resourceList.matchAll(logicalIdPattern)) {\n const logicalId = match[1];\n const path = resources[logicalId]?.Metadata?.['aws:cdk:path'];\n affected.push(path ? ` - ${path} (${logicalId})` : ` - ${logicalId}`);\n }\n return [\n `Import of existing resources failed for stack '${this.stackName}' because the following resources need a DeletionPolicy of 'Retain' or 'RetainExceptOnCreate':`,\n ...affected,\n '',\n \"Set the removal policy to 'RemovalPolicy.RETAIN' or 'RemovalPolicy.RETAIN_ON_UPDATE_OR_DELETE' on these resources.\",\n 'See https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resources-removal',\n ].join('\\n');\n }\n async executeChangeSet(changeSet) {\n await this.ioHelper.defaults.debug((0, util_1.format)('Initiating execution of changeset %s on stack %s', changeSet.ChangeSetId, this.stackName));\n await this.cfn.executeChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSet.ChangeSetName,\n ClientRequestToken: `exec${this.uuid}`,\n ...this.commonExecuteOptions(),\n });\n await this.ioHelper.defaults.debug((0, util_1.format)('Execution of changeset %s on stack %s has started; waiting for the update to complete...', changeSet.ChangeSetId, this.stackName));\n // +1 for the extra event emitted from updates.\n const changeSetLength = (changeSet.Changes ?? []).length + (this.update ? 1 : 0);\n return this.monitorDeployment(changeSet.CreationTime, changeSetLength);\n }\n async cleanupOldChangeset(changeSetName) {\n if (this.cloudFormationStack.exists) {\n // Delete any existing change sets generated by CDK since change set names must be unique.\n // The delete request is successful as long as the stack exists (even if the change set does not exist).\n await this.ioHelper.defaults.debug(`Removing existing change set with name ${changeSetName} if it exists`);\n await this.cfn.deleteChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSetName,\n });\n }\n }\n async updateTerminationProtection() {\n // Update termination protection only if it has changed.\n const terminationProtection = this.stackArtifact.terminationProtection ?? false;\n if (!!this.cloudFormationStack.terminationProtection !== terminationProtection) {\n await this.ioHelper.defaults.debug((0, util_1.format)('Updating termination protection from %s to %s for stack %s', this.cloudFormationStack.terminationProtection, terminationProtection, this.stackName));\n await this.cfn.updateTerminationProtection({\n StackName: this.stackName,\n EnableTerminationProtection: terminationProtection,\n });\n await this.ioHelper.defaults.debug((0, util_1.format)('Termination protection updated to %s for stack %s', terminationProtection, this.stackName));\n }\n }\n async directDeployment() {\n await this.ioHelper.defaults.info((0, util_1.format)('%s: %s stack...', chalk.bold(this.stackName), this.update ? 'updating' : 'creating'));\n const startTime = new Date();\n if (this.update) {\n await this.updateTerminationProtection();\n try {\n await this.cfn.updateStack({\n StackName: this.stackName,\n ClientRequestToken: `update${this.uuid}`,\n ...this.commonPrepareOptions(),\n ...this.commonExecuteOptions(),\n });\n }\n catch (err) {\n if (err.message === 'No updates are to be performed.') {\n await this.ioHelper.defaults.debug((0, util_1.format)('No updates are to be performed for stack %s', this.stackName));\n return {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: this.cloudFormationStack.outputs,\n stackArn: this.cloudFormationStack.stackId,\n };\n }\n throw err;\n }\n return this.monitorDeployment(startTime, undefined);\n }\n else {\n // Take advantage of the fact that we can set termination protection during create\n const terminationProtection = this.stackArtifact.terminationProtection ?? false;\n await this.cfn.createStack({\n StackName: this.stackName,\n ClientRequestToken: `create${this.uuid}`,\n ...(terminationProtection ? { EnableTerminationProtection: true } : undefined),\n ...this.commonPrepareOptions(),\n ...this.commonExecuteOptions(),\n });\n return this.monitorDeployment(startTime, undefined);\n }\n }\n async monitorDeployment(startTime, expectedChanges) {\n const monitor = new stack_events_1.StackActivityMonitor({\n cfn: this.cfn,\n stack: this.stackArtifact,\n stackName: this.stackName,\n resourcesTotal: expectedChanges,\n ioHelper: this.ioHelper,\n changeSetCreationTime: startTime,\n envResources: this.options.envResources,\n });\n await monitor.start();\n let finalState = this.cloudFormationStack;\n try {\n const successStack = await (0, cfn_api_1.waitForStackDeploy)(this.cfn, this.ioHelper, this.stackName);\n // This shouldn't really happen, but catch it anyway. You never know.\n if (!successStack) {\n throw new toolkit_error_1.DeploymentError('Stack deploy failed (the stack disappeared while we were deploying it)', toolkit_error_1.DeploymentErrorCodes.STACK_DISAPPEARED_ERROR_CODE);\n }\n finalState = successStack;\n }\n catch (e) {\n throw new toolkit_error_1.DeploymentError(suffixWithErrors((0, util_2.formatErrorMessage)(e), monitor.allErrorMessages), monitor.rootCauseErrorCode ?? 'StackDeployFailed');\n }\n finally {\n await monitor.stop();\n }\n await this.ioHelper.defaults.debug((0, util_1.format)('Stack %s has completed updating', this.stackName));\n return {\n type: 'did-deploy-stack',\n noOp: false,\n outputs: finalState.outputs,\n stackArn: finalState.stackId,\n };\n }\n /**\n * Return the options that are shared between CreateStack, UpdateStack and CreateChangeSet\n */\n commonPrepareOptions() {\n return {\n Capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM', 'CAPABILITY_AUTO_EXPAND'],\n NotificationARNs: this.options.notificationArns,\n Parameters: this.stackParams.apiParameters,\n RoleARN: this.options.roleArn,\n TemplateBody: this.bodyParameter.TemplateBody,\n TemplateURL: this.bodyParameter.TemplateURL,\n Tags: this.options.tags,\n };\n }\n /**\n * Return the options that are shared between UpdateStack and CreateChangeSet\n *\n * Be careful not to add in keys for options that aren't used, as the features may not have been\n * deployed everywhere yet.\n */\n commonExecuteOptions() {\n const shouldDisableRollback = this.options.rollback === false;\n return {\n StackName: this.stackName,\n ...(shouldDisableRollback ? { DisableRollback: true } : undefined),\n };\n }\n}\nasync function destroyStack(options, ioHelper) {\n const deployName = options.deployName || options.stack.stackName;\n const cfn = options.sdk.cloudFormation();\n const currentStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n if (!currentStack.exists) {\n return {};\n }\n const monitor = new stack_events_1.StackActivityMonitor({\n cfn,\n stack: options.stack,\n stackName: deployName,\n ioHelper: ioHelper,\n });\n await monitor.start();\n try {\n await cfn.deleteStack({ StackName: deployName, RoleARN: options.roleArn });\n const destroyedStack = await (0, cfn_api_1.waitForStackDelete)(cfn, ioHelper, deployName);\n if (destroyedStack && destroyedStack.stackStatus.name !== 'DELETE_COMPLETE') {\n throw new toolkit_error_1.DeploymentError(`Failed to destroy ${deployName}: ${destroyedStack.stackStatus}`, 'StackDestroyFailed');\n }\n return { stackArn: currentStack.stackId };\n }\n catch (e) {\n throw new toolkit_error_1.DeploymentError(suffixWithErrors((0, util_2.formatErrorMessage)(e), monitor.allErrorMessages), monitor.rootCauseErrorCode ?? 'StackDestroyFailed');\n }\n finally {\n if (monitor) {\n await monitor.stop();\n }\n }\n}\n/**\n * Checks whether we can skip deployment\n *\n * We do this in a complicated way by preprocessing (instead of just\n * looking at the changeset), because if there are nested stacks involved\n * the changeset will always show the nested stacks as needing to be\n * updated, and the deployment will take a long time to in effect not\n * do anything.\n */\nasync function canSkipDeploy(deployStackOptions, cloudFormationStack, parameterChanges, ioHelper) {\n const deployName = deployStackOptions.deployName || deployStackOptions.stack.stackName;\n await ioHelper.defaults.debug(`${deployName}: checking if we can skip deploy`);\n // Forced deploy\n if (deployStackOptions.forceDeployment) {\n await ioHelper.defaults.debug(`${deployName}: forced deployment`);\n return false;\n }\n // Creating changeset only (default true), never skip\n if (deployStackOptions.deploymentMethod?.method === 'change-set' &&\n deployStackOptions.deploymentMethod.execute === false) {\n await ioHelper.defaults.debug(`${deployName}: --no-execute, always creating change set`);\n return false;\n }\n // Executing an existing change set, never skip\n if (deployStackOptions.deploymentMethod?.method === 'execute-change-set') {\n await ioHelper.defaults.debug(`${deployName}: executing existing change set, never skip`);\n return false;\n }\n // Drift-aware\n if (deployStackOptions.deploymentMethod?.method === 'change-set' &&\n deployStackOptions.deploymentMethod.revertDrift) {\n await ioHelper.defaults.debug(`${deployName}: --revert-drift, always creating change set`);\n return false;\n }\n // No existing stack\n if (!cloudFormationStack.exists) {\n await ioHelper.defaults.debug(`${deployName}: no existing stack`);\n return false;\n }\n // Template has changed (assets taken into account here)\n if (JSON.stringify(deployStackOptions.stack.template) !== JSON.stringify(await cloudFormationStack.template())) {\n await ioHelper.defaults.debug(`${deployName}: template has changed`);\n return false;\n }\n // Tags have changed\n if (!compareTags(cloudFormationStack.tags, deployStackOptions.tags ?? [])) {\n await ioHelper.defaults.debug(`${deployName}: tags have changed`);\n return false;\n }\n // Notification arns have changed\n if (!arrayEquals(cloudFormationStack.notificationArns, deployStackOptions.notificationArns ?? [])) {\n await ioHelper.defaults.debug(`${deployName}: notification arns have changed`);\n return false;\n }\n // Termination protection has been updated\n if (!!deployStackOptions.stack.terminationProtection !== !!cloudFormationStack.terminationProtection) {\n await ioHelper.defaults.debug(`${deployName}: termination protection has been updated`);\n return false;\n }\n // Parameters have changed\n if (parameterChanges) {\n if (parameterChanges === 'ssm') {\n await ioHelper.defaults.debug(`${deployName}: some parameters come from SSM so we have to assume they may have changed`);\n }\n else {\n await ioHelper.defaults.debug(`${deployName}: parameters have changed`);\n }\n return false;\n }\n // Existing stack is in a failed state\n if (cloudFormationStack.stackStatus.isFailure) {\n await ioHelper.defaults.debug(`${deployName}: stack is in a failure state`);\n return false;\n }\n // We can skip deploy\n return true;\n}\n/**\n * Compares two list of tags, returns true if identical.\n */\nfunction compareTags(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (const aTag of a) {\n const bTag = b.find((tag) => tag.Key === aTag.Key);\n if (!bTag || bTag.Value !== aTag.Value) {\n return false;\n }\n }\n return true;\n}\nfunction suffixWithErrors(msg, errors) {\n return errors && errors.length > 0 ? `${msg}: ${errors.join(', ')}` : msg;\n}\nfunction arrayEquals(a, b) {\n return a.every((item) => b.includes(item)) && b.every((item) => a.includes(item));\n}\nfunction hasReplacement(cs) {\n return (cs.Changes ?? []).some(c => {\n const a = c.ResourceChange?.PolicyAction;\n return a === 'ReplaceAndDelete' || a === 'ReplaceAndRetain' || a === 'ReplaceAndSnapshot';\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ01BLGtDQXFKQztBQTJaRCxvQ0ErQkM7QUEvd0JELCtCQUE4QjtBQVU5QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLHFFQUFnRTtBQUNoRSx5REFBbUQ7QUFDbkQscUNBQXVEO0FBS3ZELHVDQU1tQjtBQUNuQixxQ0FBcUU7QUFHckUsc0ZBQWdHO0FBQ2hHLCtEQUFrRztBQUNsRyxxQ0FBZ0Q7QUFHaEQsc0RBQW1HO0FBRW5HLGdEQUE4RDtBQUM5RCw4Q0FBbUc7QUFDbkcsd0VBQXNFO0FBR3RFLGtEQUF1RDtBQUN2RCx5REFBNkQ7QUFzSnRELEtBQUssVUFBVSxXQUFXLENBQUMsT0FBMkIsRUFBRSxRQUFrQjtJQUMvRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUU3QyxJQUFJLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUNqRSxJQUFJLG1CQUFtQixHQUFHLE1BQU0sb0NBQW1CLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUU1RSxJQUFJLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RELE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFL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Q0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNqQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQztRQUN6QyxPQUFPLENBQUMsS0FBSyxrQkFBa0IsSUFBSSxDQUFDLEtBQUssa0JBQWtCLElBQUksQ0FBQyxLQUFLLG9CQUFvQixDQUFDO0lBQzVGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUge1xuICBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQsXG4gIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIEV4ZWN1dGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBUYWcsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgQXNzZXRNYW5pZmVzdEJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0LW1hbmlmZXN0LWJ1aWxkZXInO1xuaW1wb3J0IHsgcHVibGlzaEFzc2V0cyB9IGZyb20gJy4vYXNzZXQtcHVibGlzaGluZyc7XG5pbXBvcnQgeyBhZGRNZXRhZGF0YUFzc2V0c1RvTWFuaWZlc3QgfSBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBhcmFtZXRlclZhbHVlcyxcbiAgUGFyYW1ldGVyQ2hhbmdlcyxcbn0gZnJvbSAnLi9jZm4tYXBpJztcbmltcG9ydCB7XG4gIGNoYW5nZVNldEhhc05vQ2hhbmdlcyxcbiAgVGVtcGxhdGVQYXJhbWV0ZXJzLFxuICB3YWl0Rm9yQ2hhbmdlU2V0LFxuICB3YWl0Rm9yU3RhY2tEZXBsb3ksXG4gIHdhaXRGb3JTdGFja0RlbGV0ZSxcbn0gZnJvbSAnLi9jZm4tYXBpJztcbmltcG9ydCB7IGRldGVybWluZUFsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nIH0gZnJvbSAnLi9jaGVja3MnO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3lTdGFja1Jlc3VsdCwgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi9kZXBsb3ltZW50LXJlc3VsdCc7XG5pbXBvcnQgdHlwZSB7IENoYW5nZVNldERlcGxveW1lbnQsIERlcGxveW1lbnRNZXRob2QsIERpcmVjdERlcGxveW1lbnQgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2RlcGxveSc7XG5pbXBvcnQgeyBERUZBVUxUX0RFUExPWV9DSEFOR0VfU0VUX05BTUUgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2RlcGxveS9wcml2YXRlL2RlcGxveW1lbnQtbWV0aG9kJztcbmltcG9ydCB7IERlcGxveW1lbnRFcnJvciwgRGVwbG95bWVudEVycm9yQ29kZXMsIFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLLCBTZGtQcm92aWRlciwgSUNsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlQm9keVBhcmFtZXRlciB9IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IG1ha2VCb2R5UGFyYW1ldGVyLCBDZm5FdmFsdWF0aW9uRXhjZXB0aW9uLCBDbG91ZEZvcm1hdGlvblN0YWNrIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcywgU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsIElDT04sIGNyZWF0ZUhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyB9IGZyb20gJy4uL2hvdHN3YXAvY29tbW9uJztcbmltcG9ydCB7IHRyeUhvdHN3YXBEZXBsb3ltZW50IH0gZnJvbSAnLi4vaG90c3dhcC9ob3Rzd2FwLWRlcGxveW1lbnRzJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuLi9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgU3RhY2tBY3Rpdml0eU1vbml0b3IgfSBmcm9tICcuLi9zdGFjay1ldmVudHMnO1xuaW1wb3J0IHsgRWFybHlWYWxpZGF0aW9uUmVwb3J0ZXIgfSBmcm9tICcuL2Vhcmx5LXZhbGlkYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudCB9IGZyb20gJy4uLy4uL2FjdGlvbnMvZGVwbG95L3ByaXZhdGUvZGVwbG95bWVudC1tZXRob2QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVN0YWNrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gYmUgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB0byBkZXBsb3kgdGhpcyBzdGFjayBpblxuICAgKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgb24gdGhlIHN0YWNrIGFydGlmYWN0IG1heSBiZSB1bnJlc29sdmVkLCB0aGlzIG9uZVxuICAgKiBtdXN0IGJlIHJlc29sdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb2x2ZWRFbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdG8gdXNlIGZvciBkZXBsb3lpbmcgdGhlIHN0YWNrXG4gICAqXG4gICAqIFNob3VsZCBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCB0aGUgY29ycmVjdCByb2xlIHdpdGggd2hpY2hcbiAgICogc3RhY2sgb3BlcmF0aW9ucyBzaG91bGQgYmUgcGVyZm9ybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2RrOiBTREs7XG5cbiAgLyoqXG4gICAqIFNESyBwcm92aWRlciAoc2VlZGVkIHdpdGggZGVmYXVsdCBjcmVkZW50aWFscylcbiAgICpcbiAgICogV2lsbCBiZSB1c2VkIHRvOlxuICAgKlxuICAgKiAtIFB1Ymxpc2ggYXNzZXRzLCBlaXRoZXIgbGVnYWN5IGFzc2V0cyBvciBsYXJnZSBDRk4gdGVtcGxhdGVzXG4gICAqICAgdGhhdCBhcmVuJ3QgdGhlbXNlbHZlcyBhc3NldHMgZnJvbSBhIG1hbmlmZXN0LiAoTmVlZHMgYW4gU0RLXG4gICAqICAgUHJvdmlkZXIgYmVjYXVzZSB0aGUgZmlsZSBwdWJsaXNoaW5nIHJvbGUgaXMgZGVjbGFyZWQgYXMgcGFydFxuICAgKiAgIG9mIHRoZSBhc3NldCkuXG4gICAqIC0gSG90c3dhcFxuICAgKi9cbiAgcmVhZG9ubHkgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYm9vdHN0cmFwIHN0YWNrIGZvdW5kIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGVudlJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXM7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiB0byBleGVjdXRlIHRoZSBjaGFuZ2Ugc2V0XG4gICAqXG4gICAqIFRvIG9idGFpbiBhIGBTdHJpbmdXaXRob3V0UGxhY2Vob2xkZXJzYCwgcnVuIGEgcmVndWxhclxuICAgKiBzdHJpbmcgdGhvdWdoIGBUYXJnZXRFbnZpcm9ubWVudC5yZXBsYWNlUGxhY2Vob2xkZXJzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleGVjdXRpb24gcm9sZTsgQ2xvdWRGb3JtYXRpb24gZWl0aGVyIHVzZXMgdGhlIHJvbGUgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aFxuICAgKiB0aGUgc3RhY2ssIG9yIG90aGVyd2lzZSB1c2VzIGN1cnJlbnQgQVdTIGNyZWRlbnRpYWxzXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycztcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9uIEFSTnMgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiB0byBub3RpZnkgd2hlbiB0aGUgY2hhbmdlIHNldCBoYXMgY29tcGxldGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIHRvIGRlcGxveSB0aGUgc3RhY2sgdW5kZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOYW1lIGZyb20gYXNzZW1ibHlcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXQgSURzIHdoaWNoIHNob3VsZG4ndCBiZSBidWlsdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJ1aWxkIGFsbCBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiB0byBhZGQgdG8gc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoYXQgZGVwbG95bWVudCBtZXRob2QgdG8gdXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ2hhbmdlIHNldCB3aXRoIGRlZmF1bHRzXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kPzogRGVwbG95bWVudE1ldGhvZCB8IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY29sbGVjdGlvbiBvZiBleHRyYSBwYXJhbWV0ZXJzXG4gICAqIChpbiBhZGRpdGlvbiB0byB0aG9zZSB1c2VkIGZvciBhc3NldHMpXG4gICAqIHRvIHBhc3MgdG8gdGhlIGRlcGxveWVkIHRlbXBsYXRlLlxuICAgKiBOb3RlIHRoYXQgcGFyYW1ldGVycyB3aXRoIGB1bmRlZmluZWRgIG9yIGVtcHR5IHZhbHVlcyB3aWxsIGJlIGlnbm9yZWQsXG4gICAqIGFuZCBub3QgcGFzc2VkIHRvIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFVzZSBwcmV2aW91cyB2YWx1ZXMgZm9yIHVuc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAgICpcbiAgICogSWYgbm90IHNldCwgYWxsIHBhcmFtZXRlcnMgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGV2ZXJ5IGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB1c2VQcmV2aW91c1BhcmFtZXRlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXBsb3kgZXZlbiBpZiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBvbmUgd2UgYXJlIGFib3V0IHRvIGRlcGxveS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIGZhaWxlZCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBleHRyYSBzdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlciB3aGVuIHBlcmZvcm1pbmcgQVdTIFNESyBjYWxscy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3RoaW5nIGV4dHJhIGlzIGFwcGVuZGVkIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlclxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFVc2VyQWdlbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCwgY2hhbmdlIHNldCBvZiB0eXBlIElNUE9SVCB3aWxsIGJlIGNyZWF0ZWQsIGFuZCByZXNvdXJjZXNUb0ltcG9ydFxuICAgKiBwYXNzZWQgdG8gaXQuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0O1xuXG4gIC8qKlxuICAgKiBJZiBwcmVzZW50LCB1c2UgdGhpcyBnaXZlbiB0ZW1wbGF0ZSBpbnN0ZWFkIG9mIHRoZSBzdG9yZWQgb25lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBzdG9yZWQgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlVGVtcGxhdGU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYnVpbGQvcHVibGlzaCBhc3NldHMgaW4gcGFyYWxsZWxcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSBUbyByZW1haW4gYmFja3dhcmQgY29tcGF0aWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0UGFyYWxsZWxpc20/OiBib29sZWFuO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVwbG95U3RhY2sob3B0aW9uczogRGVwbG95U3RhY2tPcHRpb25zLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBQcm9taXNlPERlcGxveVN0YWNrUmVzdWx0PiB7XG4gIGNvbnN0IHN0YWNrQXJ0aWZhY3QgPSBvcHRpb25zLnN0YWNrO1xuICBjb25zdCBzdGFja0VudiA9IG9wdGlvbnMucmVzb2x2ZWRFbnZpcm9ubWVudDtcblxuICBsZXQgZGVwbG95bWVudE1ldGhvZCA9IG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZCA/PyB7IG1ldGhvZDogJ2NoYW5nZS1zZXQnIH07XG4gIG9wdGlvbnMuc2RrLmFwcGVuZEN1c3RvbVVzZXJBZ2VudChvcHRpb25zLmV4dHJhVXNlckFnZW50KTtcbiAgY29uc3QgY2ZuID0gb3B0aW9ucy5zZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgY29uc3QgZGVwbG95TmFtZSA9IG9wdGlvbnMuZGVwbG95TmFtZSB8fCBzdGFja0FydGlmYWN0LnN0YWNrTmFtZTtcbiAgbGV0IGNsb3VkRm9ybWF0aW9uU3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIGRlcGxveU5hbWUpO1xuXG4gIGlmIChjbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrU3RhdHVzLmlzQ3JlYXRpb25GYWlsdXJlKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoXG4gICAgICBgRm91bmQgZXhpc3Rpbmcgc3RhY2sgJHtkZXBsb3lOYW1lfSB0aGF0IGhhZCBwcmV2aW91c2x5IGZhaWxlZCBjcmVhdGlvbi4gRGVsZXRpbmcgaXQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcmUtY3JlYXRlIGl0LmAsXG4gICAgKTtcbiAgICBhd2FpdCBjZm4uZGVsZXRlU3RhY2soeyBTdGFja05hbWU6IGRlcGxveU5hbWUgfSk7XG4gICAgY29uc3QgZGVsZXRlZFN0YWNrID0gYXdhaXQgd2FpdEZvclN0YWNrRGVsZXRlKGNmbiwgaW9IZWxwZXIsIGRlcGxveU5hbWUpO1xuICAgIGlmIChkZWxldGVkU3RhY2sgJiYgZGVsZXRlZFN0YWNrLnN0YWNrU3RhdHVzLm5hbWUgIT09ICdERUxFVEVfQ09NUExFVEUnKSB7XG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKFxuICAgICAgICBgRmFpbGVkIGRlbGV0aW5nIHN0YWNrICR7ZGVwbG95TmFtZX0gdGhhdCBoYWQgcHJldmlvdXNseSBmYWlsZWQgY3JlYXRpb24gKGN1cnJlbnQgc3RhdGU6ICR7ZGVsZXRlZFN0YWNrLnN0YWNrU3RhdHVzfSlgLFxuICAgICAgICAnRmFpbGVkU3RhY2tDbGVhbnVwRmFpbGVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIFVwZGF0ZSB2YXJpYWJsZSB0byBtYXJrIHRoYXQgdGhlIHN0YWNrIGRvZXMgbm90IGV4aXN0IGFueW1vcmUsIGJ1dCBhdm9pZFxuICAgIC8vIGRvaW5nIGFuIGFjdHVhbCBsb29rdXAgaW4gQ2xvdWRGb3JtYXRpb24gKHdoaWNoIHdvdWxkIGJlIHNpbGx5IHRvIGRvIGlmXG4gICAgLy8gd2UganVzdCBkZWxldGVkIGl0KS5cbiAgICBjbG91ZEZvcm1hdGlvblN0YWNrID0gQ2xvdWRGb3JtYXRpb25TdGFjay5kb2VzTm90RXhpc3QoY2ZuLCBkZXBsb3lOYW1lKTtcbiAgfVxuXG4gIC8vIERldGVjdCBcImxlZ2FjeVwiIGFzc2V0cyAod2hpY2ggcmVtYWluIGluIHRoZSBtZXRhZGF0YSkgYW5kIHB1Ymxpc2ggdGhlbSB2aWFcbiAgLy8gYW4gYWQtaG9jIGFzc2V0IG1hbmlmZXN0LCB3aGlsZSBwYXNzaW5nIHRoZWlyIGxvY2F0aW9ucyB2aWEgdGVtcGxhdGVcbiAgLy8gcGFyYW1ldGVycy5cbiAgY29uc3QgbGVnYWN5QXNzZXRzID0gbmV3IEFzc2V0TWFuaWZlc3RCdWlsZGVyKCk7XG4gIGNvbnN0IGFzc2V0UGFyYW1zID0gYXdhaXQgYWRkTWV0YWRhdGFBc3NldHNUb01hbmlmZXN0KFxuICAgIGlvSGVscGVyLFxuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgbGVnYWN5QXNzZXRzLFxuICAgIG9wdGlvbnMuZW52UmVzb3VyY2VzLFxuICAgIG9wdGlvbnMucmV1c2VBc3NldHMsXG4gICk7XG5cbiAgY29uc3QgZmluYWxQYXJhbWV0ZXJWYWx1ZXMgPSB7IC4uLm9wdGlvbnMucGFyYW1ldGVycywgLi4uYXNzZXRQYXJhbXMgfTtcblxuICBjb25zdCB0ZW1wbGF0ZVBhcmFtcyA9IFRlbXBsYXRlUGFyYW1ldGVycy5mcm9tVGVtcGxhdGUoc3RhY2tBcnRpZmFjdC50ZW1wbGF0ZSk7XG4gIGNvbnN0IHN0YWNrUGFyYW1zID0gb3B0aW9ucy51c2VQcmV2aW91c1BhcmFtZXRlcnNcbiAgICA/IHRlbXBsYXRlUGFyYW1zLnVwZGF0ZUV4aXN0aW5nKGZpbmFsUGFyYW1ldGVyVmFsdWVzLCBjbG91ZEZvcm1hdGlvblN0YWNrLnBhcmFtZXRlcnMpXG4gICAgOiB0ZW1wbGF0ZVBhcmFtcy5zdXBwbHlBbGwoZmluYWxQYXJhbWV0ZXJWYWx1ZXMpO1xuXG4gIGlmIChhd2FpdCBjYW5Ta2lwRGVwbG95KG9wdGlvbnMsIGNsb3VkRm9ybWF0aW9uU3RhY2ssIHN0YWNrUGFyYW1zLmhhc0NoYW5nZXMoY2xvdWRGb3JtYXRpb25TdGFjay5wYXJhbWV0ZXJzKSwgaW9IZWxwZXIpKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IHNraXBwaW5nIGRlcGxveW1lbnQgKHVzZSAtLWZvcmNlIHRvIG92ZXJyaWRlKWApO1xuICAgIC8vIGlmIHdlIGNhbiBza2lwIGRlcGxveW1lbnQgYW5kIHdlIGFyZSBwZXJmb3JtaW5nIGEgaG90c3dhcCwgbGV0IHRoZSB1c2VyIGtub3dcbiAgICAvLyB0aGF0IG5vIGhvdHN3YXAgZGVwbG95bWVudCBoYXBwZW5lZFxuICAgIGlmIChkZXBsb3ltZW50TWV0aG9kPy5tZXRob2QgPT09ICdob3Rzd2FwJykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhcbiAgICAgICAgZm9ybWF0KFxuICAgICAgICAgIGBcXG4gJHtJQ09OfSAlc1xcbmAsXG4gICAgICAgICAgY2hhbGsuYm9sZCgnaG90c3dhcCBkZXBsb3ltZW50IHNraXBwZWQgLSBubyBjaGFuZ2VzIHdlcmUgZGV0ZWN0ZWQgKHVzZSAtLWZvcmNlIHRvIG92ZXJyaWRlKScpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgIG5vT3A6IHRydWUsXG4gICAgICBvdXRwdXRzOiBjbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgICBzdGFja0FybjogY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja0lkLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IGRlcGxveWluZy4uLmApO1xuICB9XG5cbiAgY29uc3QgYm9keVBhcmFtZXRlciA9IGF3YWl0IG1ha2VCb2R5UGFyYW1ldGVyKFxuICAgIGlvSGVscGVyLFxuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgb3B0aW9ucy5yZXNvbHZlZEVudmlyb25tZW50LFxuICAgIGxlZ2FjeUFzc2V0cyxcbiAgICBvcHRpb25zLmVudlJlc291cmNlcyxcbiAgICBvcHRpb25zLm92ZXJyaWRlVGVtcGxhdGUsXG4gICk7XG4gIGxldCBib290c3RyYXBTdGFja05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICBib290c3RyYXBTdGFja05hbWUgPSAoYXdhaXQgb3B0aW9ucy5lbnZSZXNvdXJjZXMubG9va3VwVG9vbGtpdCgpKS5zdGFja05hbWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgQ291bGQgbm90IGRldGVybWluZSB0aGUgYm9vdHN0cmFwIHN0YWNrIG5hbWU6ICR7ZX1gKTtcbiAgfVxuICBhd2FpdCBwdWJsaXNoQXNzZXRzKGxlZ2FjeUFzc2V0cy50b01hbmlmZXN0KHN0YWNrQXJ0aWZhY3QuYXNzZW1ibHkuZGlyZWN0b3J5KSwgb3B0aW9ucy5zZGtQcm92aWRlciwgc3RhY2tFbnYsIHtcbiAgICBwYXJhbGxlbDogb3B0aW9ucy5hc3NldFBhcmFsbGVsaXNtLFxuICAgIGFsbG93Q3Jvc3NBY2NvdW50OiBhd2FpdCBkZXRlcm1pbmVBbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZyhvcHRpb25zLnNkaywgaW9IZWxwZXIsIGJvb3RzdHJhcFN0YWNrTmFtZSksXG4gIH0sIGlvSGVscGVyKTtcblxuICAvLyBhdHRlbXB0IHRvIHNob3J0LWNpcmN1aXQgdGhlIGRlcGxveW1lbnQgaWYgcG9zc2libGVcbiAgaWYgKGRlcGxveW1lbnRNZXRob2Q/Lm1ldGhvZCA9PT0gJ2hvdHN3YXAnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhvdHN3YXBNb2RlTmV3ID0gZGVwbG95bWVudE1ldGhvZD8uZmFsbGJhY2sgPyAnZmFsbC1iYWNrJyA6ICdob3Rzd2FwLW9ubHknO1xuICAgICAgY29uc3QgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzID0gZGVwbG95bWVudE1ldGhvZC5wcm9wZXJ0aWVzXG4gICAgICAgID8gY3JlYXRlSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKGRlcGxveW1lbnRNZXRob2QucHJvcGVydGllcylcbiAgICAgICAgOiBuZXcgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKCk7XG5cbiAgICAgIGNvbnN0IGhvdHN3YXBEZXBsb3ltZW50UmVzdWx0ID0gYXdhaXQgdHJ5SG90c3dhcERlcGxveW1lbnQoXG4gICAgICAgIG9wdGlvbnMuc2RrUHJvdmlkZXIsXG4gICAgICAgIGlvSGVscGVyLFxuICAgICAgICBzdGFja1BhcmFtcy52YWx1ZXMsXG4gICAgICAgIGNsb3VkRm9ybWF0aW9uU3RhY2ssXG4gICAgICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgICAgIGhvdHN3YXBNb2RlTmV3LFxuICAgICAgICBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICAgICApO1xuXG4gICAgICBpZiAoaG90c3dhcERlcGxveW1lbnRSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGhvdHN3YXBEZXBsb3ltZW50UmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGZvcm1hdChcbiAgICAgICAgJ0NvdWxkIG5vdCBwZXJmb3JtIGEgaG90c3dhcCBkZXBsb3ltZW50LCBhcyB0aGUgc3RhY2sgJXMgY29udGFpbnMgbm9uLUFzc2V0IGNoYW5nZXMnLFxuICAgICAgICBzdGFja0FydGlmYWN0LmRpc3BsYXlOYW1lLFxuICAgICAgKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIENmbkV2YWx1YXRpb25FeGNlcHRpb24pKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGZvcm1hdChcbiAgICAgICAgJ0NvdWxkIG5vdCBwZXJmb3JtIGEgaG90c3dhcCBkZXBsb3ltZW50LCBiZWNhdXNlIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6ICVzJyxcbiAgICAgICAgZm9ybWF0RXJyb3JNZXNzYWdlKGUpLFxuICAgICAgKSk7XG4gICAgfVxuXG4gICAgaWYgKGRlcGxveW1lbnRNZXRob2QuZmFsbGJhY2spIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ0ZhbGxpbmcgYmFjayB0byBkb2luZyBhIGZ1bGwgZGVwbG95bWVudCcpO1xuICAgICAgb3B0aW9ucy5zZGsuYXBwZW5kQ3VzdG9tVXNlckFnZW50KCdjZGstaG90c3dhcC9mYWxsYmFjaycpO1xuICAgICAgZGVwbG95bWVudE1ldGhvZCA9IGRlcGxveW1lbnRNZXRob2QuZmFsbGJhY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgICAgbm9PcDogdHJ1ZSxcbiAgICAgICAgc3RhY2tBcm46IGNsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tJZCxcbiAgICAgICAgb3V0cHV0czogY2xvdWRGb3JtYXRpb25TdGFjay5vdXRwdXRzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBjb3VsZCBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGVwbG95bWVudCwgcGVyZm9ybSBhIGZ1bGwgQ0ZOIGRlcGxveSBpbnN0ZWFkXG4gIGNvbnN0IGZ1bGxEZXBsb3ltZW50ID0gbmV3IEZ1bGxDbG91ZEZvcm1hdGlvbkRlcGxveW1lbnQoXG4gICAgZGVwbG95bWVudE1ldGhvZCxcbiAgICBvcHRpb25zLFxuICAgIGNsb3VkRm9ybWF0aW9uU3RhY2ssXG4gICAgc3RhY2tBcnRpZmFjdCxcbiAgICBzdGFja1BhcmFtcyxcbiAgICBib2R5UGFyYW1ldGVyLFxuICAgIGlvSGVscGVyLFxuICApO1xuICByZXR1cm4gZnVsbERlcGxveW1lbnQucGVyZm9ybURlcGxveW1lbnQoKTtcbn1cblxudHlwZSBDb21tb25QcmVwYXJlT3B0aW9ucyA9IGtleW9mIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0ICZcbmtleW9mIFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0ICZcbmtleW9mIENyZWF0ZUNoYW5nZVNldENvbW1hbmRJbnB1dDtcbnR5cGUgQ29tbW9uRXhlY3V0ZU9wdGlvbnMgPSBrZXlvZiBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCAmXG5rZXlvZiBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCAmXG5rZXlvZiBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0O1xuXG4vKipcbiAqIFRoaXMgY2xhc3Mgc2hhcmVzIHN0YXRlIGFuZCBmdW5jdGlvbmFsaXR5IGJldHdlZW4gdGhlIGRpZmZlcmVudCBmdWxsIGRlcGxveW1lbnQgbW9kZXNcbiAqL1xuY2xhc3MgRnVsbENsb3VkRm9ybWF0aW9uRGVwbG95bWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcmI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kOiBEaXJlY3REZXBsb3ltZW50IHwgQ2hhbmdlU2V0RGVwbG95bWVudCB8IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogRGVwbG95U3RhY2tPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25TdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjayxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrQXJ0aWZhY3Q6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrUGFyYW1zOiBQYXJhbWV0ZXJWYWx1ZXMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBib2R5UGFyYW1ldGVyOiBUZW1wbGF0ZUJvZHlQYXJhbWV0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICkge1xuICAgIHRoaXMuY2ZuID0gb3B0aW9ucy5zZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgICB0aGlzLnN0YWNrTmFtZSA9IG9wdGlvbnMuZGVwbG95TmFtZSA/PyBzdGFja0FydGlmYWN0LnN0YWNrTmFtZTtcblxuICAgIHRoaXMudXBkYXRlID0gY2xvdWRGb3JtYXRpb25TdGFjay5leGlzdHMgJiYgY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5uYW1lICE9PSAnUkVWSUVXX0lOX1BST0dSRVNTJztcbiAgICB0aGlzLnZlcmIgPSB0aGlzLnVwZGF0ZSA/ICd1cGRhdGUnIDogJ2NyZWF0ZSc7XG4gICAgdGhpcy51dWlkID0gdXVpZC52NCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBlcmZvcm1EZXBsb3ltZW50KCk6IFByb21pc2U8RGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBkZXBsb3ltZW50TWV0aG9kID0gdGhpcy5kZXBsb3ltZW50TWV0aG9kID8/IHsgbWV0aG9kOiAnY2hhbmdlLXNldCcgfTtcblxuICAgIGlmIChkZXBsb3ltZW50TWV0aG9kLm1ldGhvZCA9PT0gJ2RpcmVjdCcgJiYgdGhpcy5vcHRpb25zLnJlc291cmNlc1RvSW1wb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbXBvcnRSZXF1aXJlc0NoYW5nZVNldCcsICdJbXBvcnRpbmcgcmVzb3VyY2VzIHJlcXVpcmVzIGEgY2hhbmdlc2V0IGRlcGxveW1lbnQnKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGRlcGxveW1lbnRNZXRob2QubWV0aG9kKSB7XG4gICAgICBjYXNlICdjaGFuZ2Utc2V0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlU2V0RGVwbG95bWVudChkZXBsb3ltZW50TWV0aG9kKTtcblxuICAgICAgY2FzZSAnZXhlY3V0ZS1jaGFuZ2Utc2V0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZUV4aXN0aW5nQ2hhbmdlU2V0KGRlcGxveW1lbnRNZXRob2QpO1xuXG4gICAgICBjYXNlICdkaXJlY3QnOlxuICAgICAgICByZXR1cm4gdGhpcy5kaXJlY3REZXBsb3ltZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGFuZ2VTZXREZXBsb3ltZW50KGRlcGxveW1lbnRNZXRob2Q6IENoYW5nZVNldERlcGxveW1lbnQpOiBQcm9taXNlPERlcGxveVN0YWNrUmVzdWx0PiB7XG4gICAgY29uc3QgY2hhbmdlU2V0TmFtZSA9IGRlcGxveW1lbnRNZXRob2QuY2hhbmdlU2V0TmFtZSA/PyBERUZBVUxUX0RFUExPWV9DSEFOR0VfU0VUX05BTUU7XG4gICAgY29uc3QgZXhlY3V0ZSA9IGRlcGxveW1lbnRNZXRob2QuZXhlY3V0ZSA/PyB0cnVlO1xuICAgIGNvbnN0IGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzID0gZGVwbG95bWVudE1ldGhvZC5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyA/PyBmYWxzZTtcbiAgICBjb25zdCByZXZlcnREcmlmdCA9IGRlcGxveW1lbnRNZXRob2QucmV2ZXJ0RHJpZnQgPz8gZmFsc2U7XG4gICAgY29uc3QgY2hhbmdlU2V0RGVzY3JpcHRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNoYW5nZVNldChjaGFuZ2VTZXROYW1lLCBleGVjdXRlLCBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcywgcmV2ZXJ0RHJpZnQpO1xuICAgIGF3YWl0IHRoaXMudXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uKCk7XG5cbiAgICBpZiAoY2hhbmdlU2V0SGFzTm9DaGFuZ2VzKGNoYW5nZVNldERlc2NyaXB0aW9uKSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ05vIGNoYW5nZXMgYXJlIHRvIGJlIHBlcmZvcm1lZCBvbiAlcy4nLCB0aGlzLnN0YWNrTmFtZSkpO1xuICAgICAgaWYgKGV4ZWN1dGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ0RlbGV0aW5nIGVtcHR5IGNoYW5nZSBzZXQgJXMnLCBjaGFuZ2VTZXREZXNjcmlwdGlvbi5DaGFuZ2VTZXRJZCkpO1xuICAgICAgICBhd2FpdCB0aGlzLmNmbi5kZWxldGVDaGFuZ2VTZXQoe1xuICAgICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICAgICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VEZXBsb3ltZW50KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBbXG4gICAgICAgICAgICAnWW91IHVzZWQgdGhlIC0tZm9yY2UgZmxhZywgYnV0IENsb3VkRm9ybWF0aW9uIHJlcG9ydGVkIHRoYXQgdGhlIGRlcGxveW1lbnQgd291bGQgbm90IG1ha2UgYW55IGNoYW5nZXMuJyxcbiAgICAgICAgICAgICdBY2NvcmRpbmcgdG8gQ2xvdWRGb3JtYXRpb24sIGFsbCByZXNvdXJjZXMgYXJlIGFscmVhZHkgdXAtdG8tZGF0ZSB3aXRoIHRoZSBzdGF0ZSBpbiB5b3VyIENESyBhcHAuJyxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJ1lvdSBjYW5ub3QgdXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gZ2V0IHJpZCBvZiBjaGFuZ2VzIHlvdSBtYWRlIGluIHRoZSBjb25zb2xlLiBUcnkgdXNpbmcnLFxuICAgICAgICAgICAgJ0Nsb3VkRm9ybWF0aW9uIGRyaWZ0IGRldGVjdGlvbiBpbnN0ZWFkOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tc3RhY2stZHJpZnQuaHRtbCcsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RpZC1kZXBsb3ktc3RhY2snLFxuICAgICAgICBub09wOiB0cnVlLFxuICAgICAgICBvdXRwdXRzOiB0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2sub3V0cHV0cyxcbiAgICAgICAgc3RhY2tBcm46IGNoYW5nZVNldERlc2NyaXB0aW9uLlN0YWNrSWQhLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoIWV4ZWN1dGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXQoXG4gICAgICAgICdDaGFuZ2VzZXQgJXMgY3JlYXRlZCBhbmQgd2FpdGluZyBpbiByZXZpZXcgZm9yIG1hbnVhbCBleGVjdXRpb24gKC0tbm8tZXhlY3V0ZSknLFxuICAgICAgICBjaGFuZ2VTZXREZXNjcmlwdGlvbi5DaGFuZ2VTZXRJZCxcbiAgICAgICkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RpZC1kZXBsb3ktc3RhY2snLFxuICAgICAgICBub09wOiBmYWxzZSxcbiAgICAgICAgb3V0cHV0czogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgICAgIHN0YWNrQXJuOiBjaGFuZ2VTZXREZXNjcmlwdGlvbi5TdGFja0lkISxcbiAgICAgICAgY2hhbmdlU2V0OiBjaGFuZ2VTZXREZXNjcmlwdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHJlcGxhY2VtZW50cyBpbiB0aGUgY2hhbmdlc2V0LCBjaGVjayB0aGUgcm9sbGJhY2sgZmxhZyBhbmQgc3RhY2sgc3RhdHVzXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tBbmRFeGVjdXRlQ2hhbmdlU2V0KGNoYW5nZVNldERlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUV4aXN0aW5nQ2hhbmdlU2V0KGRlcGxveW1lbnRNZXRob2Q6IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50KTogUHJvbWlzZTxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uKCk7XG5cbiAgICAvLyBUaGUgY2hhbmdlIHNldCB3YXMgYWxyZWFkeSBjcmVhdGVkIGFuZCB2YWxpZGF0ZWQgZHVyaW5nIHRoZSBwcmVwYXJlIHBoYXNlLFxuICAgIC8vIGp1c3QgZGVzY3JpYmUgaXQgdG8gZ2V0IHRoZSBpbmZvIG5lZWRlZCBmb3IgZXhlY3V0aW9uLlxuICAgIGNvbnN0IGNoYW5nZVNldERlc2NyaXB0aW9uID0gYXdhaXQgdGhpcy5jZm4uZGVzY3JpYmVDaGFuZ2VTZXQoe1xuICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIENoYW5nZVNldE5hbWU6IGRlcGxveW1lbnRNZXRob2QuY2hhbmdlU2V0TmFtZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmNoZWNrQW5kRXhlY3V0ZUNoYW5nZVNldChjaGFuZ2VTZXREZXNjcmlwdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgcm9sbGJhY2svcmVwbGFjZW1lbnQgY29uc3RyYWludHMgYW5kIGV4ZWN1dGUgdGhlIGNoYW5nZSBzZXQgaWYgYWxsIGNoZWNrcyBwYXNzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjaGVja0FuZEV4ZWN1dGVDaGFuZ2VTZXQoY2hhbmdlU2V0RGVzY3JpcHRpb246IERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dCk6IFByb21pc2U8RGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBpZiAoY2hhbmdlU2V0RGVzY3JpcHRpb24uU3RhdHVzICE9PSAnQ1JFQVRFX0NPTVBMRVRFJykge1xuICAgICAgY29uc3Qgc3RhdHVzID0gY2hhbmdlU2V0RGVzY3JpcHRpb24uU3RhdHVzID8/ICdVTktOT1dOJztcbiAgICAgIGNvbnN0IHJlYXNvbiA9IGNoYW5nZVNldERlc2NyaXB0aW9uLlN0YXR1c1JlYXNvbiA/IGA6ICR7Y2hhbmdlU2V0RGVzY3JpcHRpb24uU3RhdHVzUmVhc29ufWAgOiAnJztcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdDaGFuZ2VTZXROb3RSZWFkeScsXG4gICAgICAgIGBDaGFuZ2Ugc2V0ICcke2NoYW5nZVNldERlc2NyaXB0aW9uLkNoYW5nZVNldE5hbWV9JyBvbiBzdGFjayAnJHt0aGlzLnN0YWNrTmFtZX0nIGlzIG5vdCByZWFkeSBmb3IgZXhlY3V0aW9uIChzdGF0dXM6ICR7c3RhdHVzfSR7cmVhc29ufSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXBsYWNlbWVudCA9IGhhc1JlcGxhY2VtZW50KGNoYW5nZVNldERlc2NyaXB0aW9uKTtcbiAgICBjb25zdCBpc1BhdXNlZEZhaWxTdGF0ZSA9IHRoaXMuY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5pc1JvbGxiYWNrYWJsZTtcbiAgICBjb25zdCByb2xsYmFjayA9IHRoaXMub3B0aW9ucy5yb2xsYmFjayA/PyB0cnVlO1xuICAgIGlmIChpc1BhdXNlZEZhaWxTdGF0ZSAmJiByZXBsYWNlbWVudCkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogJ2ZhaWxwYXVzZWQtbmVlZC1yb2xsYmFjay1maXJzdCcsIHJlYXNvbjogJ3JlcGxhY2VtZW50Jywgc3RhdHVzOiB0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tTdGF0dXMubmFtZSB9O1xuICAgIH1cbiAgICBpZiAoaXNQYXVzZWRGYWlsU3RhdGUgJiYgcm9sbGJhY2spIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdmYWlscGF1c2VkLW5lZWQtcm9sbGJhY2stZmlyc3QnLCByZWFzb246ICdub3Qtbm9yb2xsYmFjaycsIHN0YXR1czogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrU3RhdHVzLm5hbWUgfTtcbiAgICB9XG4gICAgaWYgKCFyb2xsYmFjayAmJiByZXBsYWNlbWVudCkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogJ3JlcGxhY2VtZW50LXJlcXVpcmVzLXJvbGxiYWNrJyB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVDaGFuZ2VTZXQoY2hhbmdlU2V0RGVzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDaGFuZ2VTZXQoY2hhbmdlU2V0TmFtZTogc3RyaW5nLCB3aWxsRXhlY3V0ZTogYm9vbGVhbiwgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM6IGJvb2xlYW4sIHJldmVydERyaWZ0OiBib29sZWFuKSB7XG4gICAgYXdhaXQgdGhpcy5jbGVhbnVwT2xkQ2hhbmdlc2V0KGNoYW5nZVNldE5hbWUpO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgQXR0ZW1wdGluZyB0byBjcmVhdGUgQ2hhbmdlU2V0IHdpdGggbmFtZSAke2NoYW5nZVNldE5hbWV9IHRvICR7dGhpcy52ZXJifSBzdGFjayAke3RoaXMuc3RhY2tOYW1lfWApO1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXQoJyVzOiBjcmVhdGluZyBDbG91ZEZvcm1hdGlvbiBjaGFuZ2VzZXQuLi4nLCBjaGFsay5ib2xkKHRoaXMuc3RhY2tOYW1lKSkpO1xuICAgIGNvbnN0IGNoYW5nZVNldCA9IGF3YWl0IHRoaXMuY2ZuLmNyZWF0ZUNoYW5nZVNldCh7XG4gICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgICAgIENoYW5nZVNldFR5cGU6IHRoaXMub3B0aW9ucy5yZXNvdXJjZXNUb0ltcG9ydCA/ICdJTVBPUlQnIDogdGhpcy51cGRhdGUgPyAnVVBEQVRFJyA6ICdDUkVBVEUnLFxuICAgICAgUmVzb3VyY2VzVG9JbXBvcnQ6IHRoaXMub3B0aW9ucy5yZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIERlc2NyaXB0aW9uOiBgQ0RLIENoYW5nZXNldCBmb3IgZXhlY3V0aW9uICR7dGhpcy51dWlkfWAsXG4gICAgICBDbGllbnRUb2tlbjogYGNyZWF0ZSR7dGhpcy51dWlkfWAsXG4gICAgICBJbXBvcnRFeGlzdGluZ1Jlc291cmNlczogaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXMsXG4gICAgICBEZXBsb3ltZW50TW9kZTogcmV2ZXJ0RHJpZnQgPyAnUkVWRVJUX0RSSUZUJyA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLnRoaXMuY29tbW9uUHJlcGFyZU9wdGlvbnMoKSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KCdJbml0aWF0ZWQgY3JlYXRpb24gb2YgY2hhbmdlc2V0OiAlczsgd2FpdGluZyBmb3IgaXQgdG8gZmluaXNoIGNyZWF0aW5nLi4uJywgY2hhbmdlU2V0LklkKSk7XG4gICAgLy8gRmV0Y2hpbmcgYWxsIHBhZ2VzIGlmIHdlJ2xsIGV4ZWN1dGUsIHNvIHdlIGNhbiBoYXZlIHRoZSBjb3JyZWN0IGNoYW5nZSBjb3VudCB3aGVuIG1vbml0b3JpbmcuXG4gICAgY29uc3QgZW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSA9IG5ldyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5KCk7XG4gICAgY29uc3QgZW52UmVzb3VyY2VzID0gZW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeS5mb3IodGhpcy5vcHRpb25zLnJlc29sdmVkRW52aXJvbm1lbnQsIHRoaXMub3B0aW9ucy5zZGssIHRoaXMuaW9IZWxwZXIpO1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXBvcnRlciA9IG5ldyBFYXJseVZhbGlkYXRpb25SZXBvcnRlcih0aGlzLm9wdGlvbnMuc2RrLCBlbnZSZXNvdXJjZXMpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgd2FpdEZvckNoYW5nZVNldCh0aGlzLmNmbiwgdGhpcy5pb0hlbHBlciwgdGhpcy5zdGFja05hbWUsIGNoYW5nZVNldE5hbWUsIHtcbiAgICAgICAgZmV0Y2hBbGw6IHdpbGxFeGVjdXRlLFxuICAgICAgICB2YWxpZGF0aW9uUmVwb3J0ZXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChpbXBvcnRFeGlzdGluZ1Jlc291cmNlcyAmJiBUb29sa2l0RXJyb3IuaXNEZXBsb3ltZW50RXJyb3IoZSkgJiYgZS5kZXBsb3ltZW50RXJyb3JDb2RlID09PSAnQ2hhbmdlU2V0Q3JlYXRpb25GYWlsZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBEZXBsb3ltZW50RXJyb3IodGhpcy5lbmhhbmNlSW1wb3J0RXJyb3JNZXNzYWdlKGUubWVzc2FnZSksICdDaGFuZ2VTZXRDcmVhdGlvbkZhaWxlZCcpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW5oYW5jZSBhbiBpbXBvcnQtcmVsYXRlZCBjaGFuZ2VzZXQgZXJyb3IgbWVzc2FnZSBieSBtYXBwaW5nIENGTiBsb2dpY2FsIElEcyB0byBDREsgY29uc3RydWN0IHBhdGhzLlxuICAgKi9cbiAgcHJpdmF0ZSBlbmhhbmNlSW1wb3J0RXJyb3JNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gT25seSBlbmhhbmNlIHRoZSBzcGVjaWZpYyBDRk4gZXJyb3IgYWJvdXQgaW1wb3J0aW5nIGV4aXN0aW5nIHJlc291cmNlc1xuICAgIGlmICghbWVzc2FnZS5pbmNsdWRlcygnQ2xvdWRGb3JtYXRpb24gaXMgYXR0ZW1wdGluZyB0byBpbXBvcnQgc29tZSByZXNvdXJjZXMgYmVjYXVzZSB0aGV5IGFscmVhZHkgZXhpc3QgaW4geW91ciBhY2NvdW50JykpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcmtlciA9ICdUaGUgYWZmZWN0ZWQgcmVzb3VyY2VzIGFyZSAnO1xuICAgIGNvbnN0IG1hcmtlckluZGV4ID0gbWVzc2FnZS5pbmRleE9mKG1hcmtlcik7XG4gICAgaWYgKG1hcmtlckluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLy8gT25seSBleHRyYWN0IGxvZ2ljYWwgSURzIGZyb20gdGhlIFwiVGhlIGFmZmVjdGVkIHJlc291cmNlcyBhcmUgLi4uXCIgc3VmZml4XG4gICAgY29uc3QgcmVzb3VyY2VMaXN0ID0gbWVzc2FnZS5zdWJzdHJpbmcobWFya2VySW5kZXggKyBtYXJrZXIubGVuZ3RoKTtcbiAgICBjb25zdCBsb2dpY2FsSWRQYXR0ZXJuID0gL1xcYihbQS1aYS16XVtBLVphLXowLTldKylcXHMrXFwoXFx7L2c7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gdGhpcy5zdGFja0FydGlmYWN0LnRlbXBsYXRlPy5SZXNvdXJjZXMgPz8ge307XG5cbiAgICBjb25zdCBhZmZlY3RlZDogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIHJlc291cmNlTGlzdC5tYXRjaEFsbChsb2dpY2FsSWRQYXR0ZXJuKSkge1xuICAgICAgY29uc3QgbG9naWNhbElkID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCBwYXRoID0gcmVzb3VyY2VzW2xvZ2ljYWxJZF0/Lk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddO1xuICAgICAgYWZmZWN0ZWQucHVzaChwYXRoID8gYCAgLSAke3BhdGh9ICgke2xvZ2ljYWxJZH0pYCA6IGAgIC0gJHtsb2dpY2FsSWR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIGBJbXBvcnQgb2YgZXhpc3RpbmcgcmVzb3VyY2VzIGZhaWxlZCBmb3Igc3RhY2sgJyR7dGhpcy5zdGFja05hbWV9JyBiZWNhdXNlIHRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzIG5lZWQgYSBEZWxldGlvblBvbGljeSBvZiAnUmV0YWluJyBvciAnUmV0YWluRXhjZXB0T25DcmVhdGUnOmAsXG4gICAgICAuLi5hZmZlY3RlZCxcbiAgICAgICcnLFxuICAgICAgXCJTZXQgdGhlIHJlbW92YWwgcG9saWN5IHRvICdSZW1vdmFsUG9saWN5LlJFVEFJTicgb3IgJ1JlbW92YWxQb2xpY3kuUkVUQUlOX09OX1VQREFURV9PUl9ERUxFVEUnIG9uIHRoZXNlIHJlc291cmNlcy5cIixcbiAgICAgICdTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay92Mi9ndWlkZS9yZXNvdXJjZXMuaHRtbCNyZXNvdXJjZXMtcmVtb3ZhbCcsXG4gICAgXS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUNoYW5nZVNldChjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dCk6IFByb21pc2U8U3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0PiB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ0luaXRpYXRpbmcgZXhlY3V0aW9uIG9mIGNoYW5nZXNldCAlcyBvbiBzdGFjayAlcycsIGNoYW5nZVNldC5DaGFuZ2VTZXRJZCwgdGhpcy5zdGFja05hbWUpKTtcblxuICAgIGF3YWl0IHRoaXMuY2ZuLmV4ZWN1dGVDaGFuZ2VTZXQoe1xuICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIENoYW5nZVNldE5hbWU6IGNoYW5nZVNldC5DaGFuZ2VTZXROYW1lISxcbiAgICAgIENsaWVudFJlcXVlc3RUb2tlbjogYGV4ZWMke3RoaXMudXVpZH1gLFxuICAgICAgLi4udGhpcy5jb21tb25FeGVjdXRlT3B0aW9ucygpLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhcbiAgICAgIGZvcm1hdChcbiAgICAgICAgJ0V4ZWN1dGlvbiBvZiBjaGFuZ2VzZXQgJXMgb24gc3RhY2sgJXMgaGFzIHN0YXJ0ZWQ7IHdhaXRpbmcgZm9yIHRoZSB1cGRhdGUgdG8gY29tcGxldGUuLi4nLFxuICAgICAgICBjaGFuZ2VTZXQuQ2hhbmdlU2V0SWQsXG4gICAgICAgIHRoaXMuc3RhY2tOYW1lLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgLy8gKzEgZm9yIHRoZSBleHRyYSBldmVudCBlbWl0dGVkIGZyb20gdXBkYXRlcy5cbiAgICBjb25zdCBjaGFuZ2VTZXRMZW5ndGg6IG51bWJlciA9IChjaGFuZ2VTZXQuQ2hhbmdlcyA/PyBbXSkubGVuZ3RoICsgKHRoaXMudXBkYXRlID8gMSA6IDApO1xuICAgIHJldHVybiB0aGlzLm1vbml0b3JEZXBsb3ltZW50KGNoYW5nZVNldC5DcmVhdGlvblRpbWUhLCBjaGFuZ2VTZXRMZW5ndGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhbnVwT2xkQ2hhbmdlc2V0KGNoYW5nZVNldE5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2suZXhpc3RzKSB7XG4gICAgICAvLyBEZWxldGUgYW55IGV4aXN0aW5nIGNoYW5nZSBzZXRzIGdlbmVyYXRlZCBieSBDREsgc2luY2UgY2hhbmdlIHNldCBuYW1lcyBtdXN0IGJlIHVuaXF1ZS5cbiAgICAgIC8vIFRoZSBkZWxldGUgcmVxdWVzdCBpcyBzdWNjZXNzZnVsIGFzIGxvbmcgYXMgdGhlIHN0YWNrIGV4aXN0cyAoZXZlbiBpZiB0aGUgY2hhbmdlIHNldCBkb2VzIG5vdCBleGlzdCkuXG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBSZW1vdmluZyBleGlzdGluZyBjaGFuZ2Ugc2V0IHdpdGggbmFtZSAke2NoYW5nZVNldE5hbWV9IGlmIGl0IGV4aXN0c2ApO1xuICAgICAgYXdhaXQgdGhpcy5jZm4uZGVsZXRlQ2hhbmdlU2V0KHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uKCkge1xuICAgIC8vIFVwZGF0ZSB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIG9ubHkgaWYgaXQgaGFzIGNoYW5nZWQuXG4gICAgY29uc3QgdGVybWluYXRpb25Qcm90ZWN0aW9uID0gdGhpcy5zdGFja0FydGlmYWN0LnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZTtcbiAgICBpZiAoISF0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uICE9PSB0ZXJtaW5hdGlvblByb3RlY3Rpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoXG4gICAgICAgIGZvcm1hdCAoXG4gICAgICAgICAgJ1VwZGF0aW5nIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gZnJvbSAlcyB0byAlcyBmb3Igc3RhY2sgJXMnLFxuICAgICAgICAgIHRoaXMuY2xvdWRGb3JtYXRpb25TdGFjay50ZXJtaW5hdGlvblByb3RlY3Rpb24sXG4gICAgICAgICAgdGVybWluYXRpb25Qcm90ZWN0aW9uLFxuICAgICAgICAgIHRoaXMuc3RhY2tOYW1lLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2ZuLnVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbih7XG4gICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICAgIEVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvbjogdGVybWluYXRpb25Qcm90ZWN0aW9uLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnVGVybWluYXRpb24gcHJvdGVjdGlvbiB1cGRhdGVkIHRvICVzIGZvciBzdGFjayAlcycsIHRlcm1pbmF0aW9uUHJvdGVjdGlvbiwgdGhpcy5zdGFja05hbWUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRpcmVjdERlcGxveW1lbnQoKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmluZm8oZm9ybWF0KCclczogJXMgc3RhY2suLi4nLCBjaGFsay5ib2xkKHRoaXMuc3RhY2tOYW1lKSwgdGhpcy51cGRhdGUgPyAndXBkYXRpbmcnIDogJ2NyZWF0aW5nJykpO1xuXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoKTtcblxuICAgIGlmICh0aGlzLnVwZGF0ZSkge1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb24oKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jZm4udXBkYXRlU3RhY2soe1xuICAgICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICAgICAgQ2xpZW50UmVxdWVzdFRva2VuOiBgdXBkYXRlJHt0aGlzLnV1aWR9YCxcbiAgICAgICAgICAuLi50aGlzLmNvbW1vblByZXBhcmVPcHRpb25zKCksXG4gICAgICAgICAgLi4udGhpcy5jb21tb25FeGVjdXRlT3B0aW9ucygpLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgIGlmIChlcnIubWVzc2FnZSA9PT0gJ05vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZC4nKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ05vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZCBmb3Igc3RhY2sgJXMnLCB0aGlzLnN0YWNrTmFtZSkpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnZGlkLWRlcGxveS1zdGFjaycsXG4gICAgICAgICAgICBub09wOiB0cnVlLFxuICAgICAgICAgICAgb3V0cHV0czogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgICAgICAgICBzdGFja0FybjogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLm1vbml0b3JEZXBsb3ltZW50KHN0YXJ0VGltZSwgdW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCB3ZSBjYW4gc2V0IHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gZHVyaW5nIGNyZWF0ZVxuICAgICAgY29uc3QgdGVybWluYXRpb25Qcm90ZWN0aW9uID0gdGhpcy5zdGFja0FydGlmYWN0LnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZTtcblxuICAgICAgYXdhaXQgdGhpcy5jZm4uY3JlYXRlU3RhY2soe1xuICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgICBDbGllbnRSZXF1ZXN0VG9rZW46IGBjcmVhdGUke3RoaXMudXVpZH1gLFxuICAgICAgICAuLi4odGVybWluYXRpb25Qcm90ZWN0aW9uID8geyBFbmFibGVUZXJtaW5hdGlvblByb3RlY3Rpb246IHRydWUgfSA6IHVuZGVmaW5lZCksXG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJlcGFyZU9wdGlvbnMoKSxcbiAgICAgICAgLi4udGhpcy5jb21tb25FeGVjdXRlT3B0aW9ucygpLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0aGlzLm1vbml0b3JEZXBsb3ltZW50KHN0YXJ0VGltZSwgdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1vbml0b3JEZXBsb3ltZW50KHN0YXJ0VGltZTogRGF0ZSwgZXhwZWN0ZWRDaGFuZ2VzOiBudW1iZXIgfCB1bmRlZmluZWQpOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGNvbnN0IG1vbml0b3IgPSBuZXcgU3RhY2tBY3Rpdml0eU1vbml0b3Ioe1xuICAgICAgY2ZuOiB0aGlzLmNmbixcbiAgICAgIHN0YWNrOiB0aGlzLnN0YWNrQXJ0aWZhY3QsXG4gICAgICBzdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgcmVzb3VyY2VzVG90YWw6IGV4cGVjdGVkQ2hhbmdlcyxcbiAgICAgIGlvSGVscGVyOiB0aGlzLmlvSGVscGVyLFxuICAgICAgY2hhbmdlU2V0Q3JlYXRpb25UaW1lOiBzdGFydFRpbWUsXG4gICAgICBlbnZSZXNvdXJjZXM6IHRoaXMub3B0aW9ucy5lbnZSZXNvdXJjZXMsXG4gICAgfSk7XG4gICAgYXdhaXQgbW9uaXRvci5zdGFydCgpO1xuXG4gICAgbGV0IGZpbmFsU3RhdGUgPSB0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2s7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3NTdGFjayA9IGF3YWl0IHdhaXRGb3JTdGFja0RlcGxveSh0aGlzLmNmbiwgdGhpcy5pb0hlbHBlciwgdGhpcy5zdGFja05hbWUpO1xuXG4gICAgICAvLyBUaGlzIHNob3VsZG4ndCByZWFsbHkgaGFwcGVuLCBidXQgY2F0Y2ggaXQgYW55d2F5LiBZb3UgbmV2ZXIga25vdy5cbiAgICAgIGlmICghc3VjY2Vzc1N0YWNrKSB7XG4gICAgICAgIHRocm93IG5ldyBEZXBsb3ltZW50RXJyb3IoJ1N0YWNrIGRlcGxveSBmYWlsZWQgKHRoZSBzdGFjayBkaXNhcHBlYXJlZCB3aGlsZSB3ZSB3ZXJlIGRlcGxveWluZyBpdCknLCBEZXBsb3ltZW50RXJyb3JDb2Rlcy5TVEFDS19ESVNBUFBFQVJFRF9FUlJPUl9DT0RFKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsU3RhdGUgPSBzdWNjZXNzU3RhY2s7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKHN1ZmZpeFdpdGhFcnJvcnMoZm9ybWF0RXJyb3JNZXNzYWdlKGUpLCBtb25pdG9yLmFsbEVycm9yTWVzc2FnZXMpLCBtb25pdG9yLnJvb3RDYXVzZUVycm9yQ29kZSA/PyAnU3RhY2tEZXBsb3lGYWlsZWQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgbW9uaXRvci5zdG9wKCk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KCdTdGFjayAlcyBoYXMgY29tcGxldGVkIHVwZGF0aW5nJywgdGhpcy5zdGFja05hbWUpKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2RpZC1kZXBsb3ktc3RhY2snLFxuICAgICAgbm9PcDogZmFsc2UsXG4gICAgICBvdXRwdXRzOiBmaW5hbFN0YXRlLm91dHB1dHMsXG4gICAgICBzdGFja0FybjogZmluYWxTdGF0ZS5zdGFja0lkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBvcHRpb25zIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIENyZWF0ZVN0YWNrLCBVcGRhdGVTdGFjayBhbmQgQ3JlYXRlQ2hhbmdlU2V0XG4gICAqL1xuICBwcml2YXRlIGNvbW1vblByZXBhcmVPcHRpb25zKCk6IFBhcnRpYWw8UGljazxVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCwgQ29tbW9uUHJlcGFyZU9wdGlvbnM+PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIENhcGFiaWxpdGllczogWydDQVBBQklMSVRZX0lBTScsICdDQVBBQklMSVRZX05BTUVEX0lBTScsICdDQVBBQklMSVRZX0FVVE9fRVhQQU5EJ10sXG4gICAgICBOb3RpZmljYXRpb25BUk5zOiB0aGlzLm9wdGlvbnMubm90aWZpY2F0aW9uQXJucyxcbiAgICAgIFBhcmFtZXRlcnM6IHRoaXMuc3RhY2tQYXJhbXMuYXBpUGFyYW1ldGVycyxcbiAgICAgIFJvbGVBUk46IHRoaXMub3B0aW9ucy5yb2xlQXJuLFxuICAgICAgVGVtcGxhdGVCb2R5OiB0aGlzLmJvZHlQYXJhbWV0ZXIuVGVtcGxhdGVCb2R5LFxuICAgICAgVGVtcGxhdGVVUkw6IHRoaXMuYm9keVBhcmFtZXRlci5UZW1wbGF0ZVVSTCxcbiAgICAgIFRhZ3M6IHRoaXMub3B0aW9ucy50YWdzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBvcHRpb25zIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIFVwZGF0ZVN0YWNrIGFuZCBDcmVhdGVDaGFuZ2VTZXRcbiAgICpcbiAgICogQmUgY2FyZWZ1bCBub3QgdG8gYWRkIGluIGtleXMgZm9yIG9wdGlvbnMgdGhhdCBhcmVuJ3QgdXNlZCwgYXMgdGhlIGZlYXR1cmVzIG1heSBub3QgaGF2ZSBiZWVuXG4gICAqIGRlcGxveWVkIGV2ZXJ5d2hlcmUgeWV0LlxuICAgKi9cbiAgcHJpdmF0ZSBjb21tb25FeGVjdXRlT3B0aW9ucygpOiBQYXJ0aWFsPFBpY2s8VXBkYXRlU3RhY2tDb21tYW5kSW5wdXQsIENvbW1vbkV4ZWN1dGVPcHRpb25zPj4ge1xuICAgIGNvbnN0IHNob3VsZERpc2FibGVSb2xsYmFjayA9IHRoaXMub3B0aW9ucy5yb2xsYmFjayA9PT0gZmFsc2U7XG5cbiAgICByZXR1cm4ge1xuICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIC4uLihzaG91bGREaXNhYmxlUm9sbGJhY2sgPyB7IERpc2FibGVSb2xsYmFjazogdHJ1ZSB9IDogdW5kZWZpbmVkKSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzdHJveVN0YWNrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gYmUgZGVzdHJveWVkXG4gICAqL1xuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuXG4gIHNkazogU0RLO1xuICByb2xlQXJuPzogc3RyaW5nO1xuICBkZXBsb3lOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lTdGFja1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzdGFjayB0aGF0IHdhcyBkZXN0cm95ZWQsIGlmIGFueS5cbiAgICpcbiAgICogSWYgdGhlIHN0YWNrIGRpZG4ndCBleGlzdCB0byBiZWdpbiB3aXRoLCB0aGUgb3BlcmF0aW9uIHdpbGwgc3VjY2VlZFxuICAgKiBidXQgdGhpcyB2YWx1ZSB3aWxsIGJlIHVuZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrQXJuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVzdHJveVN0YWNrKG9wdGlvbnM6IERlc3Ryb3lTdGFja09wdGlvbnMsIGlvSGVscGVyOiBJb0hlbHBlcik6IFByb21pc2U8RGVzdHJveVN0YWNrUmVzdWx0PiB7XG4gIGNvbnN0IGRlcGxveU5hbWUgPSBvcHRpb25zLmRlcGxveU5hbWUgfHwgb3B0aW9ucy5zdGFjay5zdGFja05hbWU7XG4gIGNvbnN0IGNmbiA9IG9wdGlvbnMuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG5cbiAgY29uc3QgY3VycmVudFN0YWNrID0gYXdhaXQgQ2xvdWRGb3JtYXRpb25TdGFjay5sb29rdXAoY2ZuLCBkZXBsb3lOYW1lKTtcbiAgaWYgKCFjdXJyZW50U3RhY2suZXhpc3RzKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0IG1vbml0b3IgPSBuZXcgU3RhY2tBY3Rpdml0eU1vbml0b3Ioe1xuICAgIGNmbixcbiAgICBzdGFjazogb3B0aW9ucy5zdGFjayxcbiAgICBzdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgaW9IZWxwZXI6IGlvSGVscGVyLFxuICB9KTtcbiAgYXdhaXQgbW9uaXRvci5zdGFydCgpO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgY2ZuLmRlbGV0ZVN0YWNrKHsgU3RhY2tOYW1lOiBkZXBsb3lOYW1lLCBSb2xlQVJOOiBvcHRpb25zLnJvbGVBcm4gfSk7XG4gICAgY29uc3QgZGVzdHJveWVkU3RhY2sgPSBhd2FpdCB3YWl0Rm9yU3RhY2tEZWxldGUoY2ZuLCBpb0hlbHBlciwgZGVwbG95TmFtZSk7XG4gICAgaWYgKGRlc3Ryb3llZFN0YWNrICYmIGRlc3Ryb3llZFN0YWNrLnN0YWNrU3RhdHVzLm5hbWUgIT09ICdERUxFVEVfQ09NUExFVEUnKSB7XG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKGBGYWlsZWQgdG8gZGVzdHJveSAke2RlcGxveU5hbWV9OiAke2Rlc3Ryb3llZFN0YWNrLnN0YWNrU3RhdHVzfWAsICdTdGFja0Rlc3Ryb3lGYWlsZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGFja0FybjogY3VycmVudFN0YWNrLnN0YWNrSWQgfTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgdGhyb3cgbmV3IERlcGxveW1lbnRFcnJvcihzdWZmaXhXaXRoRXJyb3JzKGZvcm1hdEVycm9yTWVzc2FnZShlKSwgbW9uaXRvci5hbGxFcnJvck1lc3NhZ2VzKSwgbW9uaXRvci5yb290Q2F1c2VFcnJvckNvZGUgPz8gJ1N0YWNrRGVzdHJveUZhaWxlZCcpO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChtb25pdG9yKSB7XG4gICAgICBhd2FpdCBtb25pdG9yLnN0b3AoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB3ZSBjYW4gc2tpcCBkZXBsb3ltZW50XG4gKlxuICogV2UgZG8gdGhpcyBpbiBhIGNvbXBsaWNhdGVkIHdheSBieSBwcmVwcm9jZXNzaW5nIChpbnN0ZWFkIG9mIGp1c3RcbiAqIGxvb2tpbmcgYXQgdGhlIGNoYW5nZXNldCksIGJlY2F1c2UgaWYgdGhlcmUgYXJlIG5lc3RlZCBzdGFja3MgaW52b2x2ZWRcbiAqIHRoZSBjaGFuZ2VzZXQgd2lsbCBhbHdheXMgc2hvdyB0aGUgbmVzdGVkIHN0YWNrcyBhcyBuZWVkaW5nIHRvIGJlXG4gKiB1cGRhdGVkLCBhbmQgdGhlIGRlcGxveW1lbnQgd2lsbCB0YWtlIGEgbG9uZyB0aW1lIHRvIGluIGVmZmVjdCBub3RcbiAqIGRvIGFueXRoaW5nLlxuICovXG5hc3luYyBmdW5jdGlvbiBjYW5Ta2lwRGVwbG95KFxuICBkZXBsb3lTdGFja09wdGlvbnM6IERlcGxveVN0YWNrT3B0aW9ucyxcbiAgY2xvdWRGb3JtYXRpb25TdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjayxcbiAgcGFyYW1ldGVyQ2hhbmdlczogUGFyYW1ldGVyQ2hhbmdlcyxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGRlcGxveU5hbWUgPSBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95TmFtZSB8fCBkZXBsb3lTdGFja09wdGlvbnMuc3RhY2suc3RhY2tOYW1lO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogY2hlY2tpbmcgaWYgd2UgY2FuIHNraXAgZGVwbG95YCk7XG5cbiAgLy8gRm9yY2VkIGRlcGxveVxuICBpZiAoZGVwbG95U3RhY2tPcHRpb25zLmZvcmNlRGVwbG95bWVudCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBmb3JjZWQgZGVwbG95bWVudGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENyZWF0aW5nIGNoYW5nZXNldCBvbmx5IChkZWZhdWx0IHRydWUpLCBuZXZlciBza2lwXG4gIGlmIChcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZD8ubWV0aG9kID09PSAnY2hhbmdlLXNldCcgJiZcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZC5leGVjdXRlID09PSBmYWxzZVxuICApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogLS1uby1leGVjdXRlLCBhbHdheXMgY3JlYXRpbmcgY2hhbmdlIHNldGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEV4ZWN1dGluZyBhbiBleGlzdGluZyBjaGFuZ2Ugc2V0LCBuZXZlciBza2lwXG4gIGlmIChkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZD8ubWV0aG9kID09PSAnZXhlY3V0ZS1jaGFuZ2Utc2V0Jykge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBleGVjdXRpbmcgZXhpc3RpbmcgY2hhbmdlIHNldCwgbmV2ZXIgc2tpcGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIERyaWZ0LWF3YXJlXG4gIGlmIChcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZD8ubWV0aG9kID09PSAnY2hhbmdlLXNldCcgJiZcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZC5yZXZlcnREcmlmdFxuICApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogLS1yZXZlcnQtZHJpZnQsIGFsd2F5cyBjcmVhdGluZyBjaGFuZ2Ugc2V0YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gTm8gZXhpc3Rpbmcgc3RhY2tcbiAgaWYgKCFjbG91ZEZvcm1hdGlvblN0YWNrLmV4aXN0cykge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBubyBleGlzdGluZyBzdGFja2ApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFRlbXBsYXRlIGhhcyBjaGFuZ2VkIChhc3NldHMgdGFrZW4gaW50byBhY2NvdW50IGhlcmUpXG4gIGlmIChKU09OLnN0cmluZ2lmeShkZXBsb3lTdGFja09wdGlvbnMuc3RhY2sudGVtcGxhdGUpICE9PSBKU09OLnN0cmluZ2lmeShhd2FpdCBjbG91ZEZvcm1hdGlvblN0YWNrLnRlbXBsYXRlKCkpKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IHRlbXBsYXRlIGhhcyBjaGFuZ2VkYCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gVGFncyBoYXZlIGNoYW5nZWRcbiAgaWYgKCFjb21wYXJlVGFncyhjbG91ZEZvcm1hdGlvblN0YWNrLnRhZ3MsIGRlcGxveVN0YWNrT3B0aW9ucy50YWdzID8/IFtdKSkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiB0YWdzIGhhdmUgY2hhbmdlZGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIE5vdGlmaWNhdGlvbiBhcm5zIGhhdmUgY2hhbmdlZFxuICBpZiAoIWFycmF5RXF1YWxzKGNsb3VkRm9ybWF0aW9uU3RhY2subm90aWZpY2F0aW9uQXJucywgZGVwbG95U3RhY2tPcHRpb25zLm5vdGlmaWNhdGlvbkFybnMgPz8gW10pKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IG5vdGlmaWNhdGlvbiBhcm5zIGhhdmUgY2hhbmdlZGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaGFzIGJlZW4gdXBkYXRlZFxuICBpZiAoISFkZXBsb3lTdGFja09wdGlvbnMuc3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uICE9PSAhIWNsb3VkRm9ybWF0aW9uU3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaGFzIGJlZW4gdXBkYXRlZGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFBhcmFtZXRlcnMgaGF2ZSBjaGFuZ2VkXG4gIGlmIChwYXJhbWV0ZXJDaGFuZ2VzKSB7XG4gICAgaWYgKHBhcmFtZXRlckNoYW5nZXMgPT09ICdzc20nKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogc29tZSBwYXJhbWV0ZXJzIGNvbWUgZnJvbSBTU00gc28gd2UgaGF2ZSB0byBhc3N1bWUgdGhleSBtYXkgaGF2ZSBjaGFuZ2VkYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBwYXJhbWV0ZXJzIGhhdmUgY2hhbmdlZGApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBFeGlzdGluZyBzdGFjayBpcyBpbiBhIGZhaWxlZCBzdGF0ZVxuICBpZiAoY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5pc0ZhaWx1cmUpIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogc3RhY2sgaXMgaW4gYSBmYWlsdXJlIHN0YXRlYCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gV2UgY2FuIHNraXAgZGVwbG95XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENvbXBhcmVzIHR3byBsaXN0IG9mIHRhZ3MsIHJldHVybnMgdHJ1ZSBpZiBpZGVudGljYWwuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVUYWdzKGE6IFRhZ1tdLCBiOiBUYWdbXSk6IGJvb2xlYW4ge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChjb25zdCBhVGFnIG9mIGEpIHtcbiAgICBjb25zdCBiVGFnID0gYi5maW5kKCh0YWcpID0+IHRhZy5LZXkgPT09IGFUYWcuS2V5KTtcblxuICAgIGlmICghYlRhZyB8fCBiVGFnLlZhbHVlICE9PSBhVGFnLlZhbHVlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHN1ZmZpeFdpdGhFcnJvcnMobXNnOiBzdHJpbmcsIGVycm9ycz86IHN0cmluZ1tdKSB7XG4gIHJldHVybiBlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCA+IDAgPyBgJHttc2d9OiAke2Vycm9ycy5qb2luKCcsICcpfWAgOiBtc2c7XG59XG5cbmZ1bmN0aW9uIGFycmF5RXF1YWxzKGE6IGFueVtdLCBiOiBhbnlbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5ldmVyeSgoaXRlbSkgPT4gYi5pbmNsdWRlcyhpdGVtKSkgJiYgYi5ldmVyeSgoaXRlbSkgPT4gYS5pbmNsdWRlcyhpdGVtKSk7XG59XG5cbmZ1bmN0aW9uIGhhc1JlcGxhY2VtZW50KGNzOiBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQpIHtcbiAgcmV0dXJuIChjcy5DaGFuZ2VzID8/IFtdKS5zb21lKGMgPT4ge1xuICAgIGNvbnN0IGEgPSBjLlJlc291cmNlQ2hhbmdlPy5Qb2xpY3lBY3Rpb247XG4gICAgcmV0dXJuIGEgPT09ICdSZXBsYWNlQW5kRGVsZXRlJyB8fCBhID09PSAnUmVwbGFjZUFuZFJldGFpbicgfHwgYSA9PT0gJ1JlcGxhY2VBbmRTbmFwc2hvdCc7XG4gIH0pO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertIsSuccessfulDeployStackResult = assertIsSuccessfulDeployStackResult;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nfunction assertIsSuccessfulDeployStackResult(x) {\n if (x.type !== 'did-deploy-stack') {\n throw new toolkit_error_1.ToolkitError('UnexpectedDeployResult', `Unexpected deployStack result. This should not happen: ${JSON.stringify(x)}. If you are seeing this error, please report it at https://github.com/aws/aws-cdk/issues/new/choose.`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC1yZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ltZW50LXJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1DQSxrRkFJQztBQXRDRCwrREFBMkQ7QUFrQzNELFNBQWdCLG1DQUFtQyxDQUFDLENBQW9CO0lBQ3RFLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHdCQUF3QixFQUFFLDBEQUEwRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx1R0FBdUcsQ0FBQyxDQUFDO0lBQ3ZPLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IHR5cGUgRGVwbG95U3RhY2tSZXN1bHQgPVxuICB8IFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdFxuICB8IE5lZWRSb2xsYmFja0ZpcnN0RGVwbG95U3RhY2tSZXN1bHRcbiAgfCBSZXBsYWNlbWVudFJlcXVpcmVzUm9sbGJhY2tTdGFja1Jlc3VsdFxuICA7XG5cbi8qKiBTdWNjZXNzZnVsbHkgZGVwbG95ZWQgYSBzdGFjayAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQge1xuICByZWFkb25seSB0eXBlOiAnZGlkLWRlcGxveS1zdGFjayc7XG4gIHJlYWRvbmx5IG5vT3A6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG91dHB1dHM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBzdGFja0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIHNldCB0aGF0IHdhcyBjcmVhdGVkIGR1cmluZyBkZXBsb3ltZW50LCBpZiBhbnkuXG4gICAqIFBvcHVsYXRlZCB3aGVuIHVzaW5nIGBjaGFuZ2Utc2V0YCBkZXBsb3ltZW50IG1ldGhvZCB3aXRoIGBleGVjdXRlOiBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VTZXQ/OiBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ7XG59XG5cbi8qKiBUaGUgc3RhY2sgaXMgY3VycmVudGx5IGluIGEgZmFpbHBhdXNlZCBzdGF0ZSwgYW5kIG5lZWRzIHRvIGJlIHJvbGxlZCBiYWNrIGJlZm9yZSB0aGUgZGVwbG95bWVudCAqL1xuZXhwb3J0IGludGVyZmFjZSBOZWVkUm9sbGJhY2tGaXJzdERlcGxveVN0YWNrUmVzdWx0IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2ZhaWxwYXVzZWQtbmVlZC1yb2xsYmFjay1maXJzdCc7XG4gIHJlYWRvbmx5IHJlYXNvbjogJ25vdC1ub3JvbGxiYWNrJyB8ICdyZXBsYWNlbWVudCc7XG4gIHJlYWRvbmx5IHN0YXR1czogc3RyaW5nO1xufVxuXG4vKiogVGhlIHVwY29taW5nIGNoYW5nZSBoYXMgYSByZXBsYWNlbWVudCwgd2hpY2ggcmVxdWlyZXMgZGVwbG95aW5nIHdpdGggLS1yb2xsYmFjayAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlbWVudFJlcXVpcmVzUm9sbGJhY2tTdGFja1Jlc3VsdCB7XG4gIHJlYWRvbmx5IHR5cGU6ICdyZXBsYWNlbWVudC1yZXF1aXJlcy1yb2xsYmFjayc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJc1N1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCh4OiBEZXBsb3lTdGFja1Jlc3VsdCk6IGFzc2VydHMgeCBpcyBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQge1xuICBpZiAoeC50eXBlICE9PSAnZGlkLWRlcGxveS1zdGFjaycpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdVbmV4cGVjdGVkRGVwbG95UmVzdWx0JywgYFVuZXhwZWN0ZWQgZGVwbG95U3RhY2sgcmVzdWx0LiBUaGlzIHNob3VsZCBub3QgaGFwcGVuOiAke0pTT04uc3RyaW5naWZ5KHgpfS4gSWYgeW91IGFyZSBzZWVpbmcgdGhpcyBlcnJvciwgcGxlYXNlIHJlcG9ydCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzL25ldy9jaG9vc2UuYCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deployments = void 0;\nconst crypto_1 = require(\"crypto\");\nconst cdk_assets = require(\"@aws-cdk/cdk-assets-lib\");\nconst chalk = require(\"chalk\");\nconst asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nconst asset_publishing_1 = require(\"./asset-publishing\");\nconst cfn_api_1 = require(\"./cfn-api\");\nconst checks_1 = require(\"./checks\");\nconst deploy_stack_1 = require(\"./deploy-stack\");\nconst deployment_method_1 = require(\"../../actions/deploy/private/deployment-method\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst environment_1 = require(\"../environment\");\nconst stack_events_1 = require(\"../stack-events\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\nconst BOOTSTRAP_STACK_VERSION_FOR_ROLLBACK = 23;\n/**\n * Scope for a single set of deployments from a set of Cloud Assembly Artifacts\n *\n * Manages lookup of SDKs, Bootstrap stacks, etc.\n */\nclass Deployments {\n props;\n envs;\n /**\n * SDK provider for asset publishing (do not use for anything else).\n *\n * This SDK provider is only allowed to be used for that purpose, nothing else.\n *\n * It's not a different object, but the field name should imply that this\n * object should not be used directly, except to pass to asset handling routines.\n */\n assetSdkProvider;\n /**\n * SDK provider for passing to deployStack\n *\n * This SDK provider is only allowed to be used for that purpose, nothing else.\n *\n * It's not a different object, but the field name should imply that this\n * object should not be used directly, except to pass to `deployStack`.\n */\n deployStackSdkProvider;\n publisherCache = new Map();\n _allowCrossAccountAssetPublishing;\n ioHelper;\n constructor(props) {\n this.props = props;\n this.assetSdkProvider = props.sdkProvider;\n this.deployStackSdkProvider = props.sdkProvider;\n this.ioHelper = props.ioHelper;\n this.envs = new environment_1.EnvironmentAccess(props.sdkProvider, props.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME, this.ioHelper);\n }\n /**\n * Resolves the environment for a stack.\n */\n async resolveEnvironment(stack) {\n return this.envs.resolveStackEnvironment(stack);\n }\n async readCurrentTemplateWithNestedStacks(rootStackArtifact, retrieveProcessedTemplate = false) {\n const env = await this.envs.accessStackForLookupBestEffort(rootStackArtifact);\n return (0, cloudformation_1.loadCurrentTemplateWithNestedStacks)(rootStackArtifact, env.sdk, retrieveProcessedTemplate);\n }\n async readCurrentTemplate(stackArtifact) {\n await this.ioHelper.defaults.debug(`Reading existing template for stack ${stackArtifact.displayName}.`);\n const env = await this.envs.accessStackForLookupBestEffort(stackArtifact);\n return (0, cloudformation_1.loadCurrentTemplate)(stackArtifact, env.sdk);\n }\n async resourceIdentifierSummaries(stackArtifact) {\n await this.ioHelper.defaults.debug(`Retrieving template summary for stack ${stackArtifact.displayName}.`);\n // Currently, needs to use `deploy-role` since it may need to read templates in the staging\n // bucket which have been encrypted with a KMS key (and lookup-role may not read encrypted things)\n const env = await this.envs.accessStackForReadOnlyStackOperations(stackArtifact);\n const cfn = env.sdk.cloudFormation();\n await (0, cfn_api_1.uploadStackTemplateAssets)(stackArtifact, this);\n // Upload the template, if necessary, before passing it to CFN\n const builder = new asset_manifest_builder_1.AssetManifestBuilder();\n const cfnParam = await (0, cloudformation_1.makeBodyParameter)(this.ioHelper, stackArtifact, env.resolvedEnvironment, builder, env.resources);\n // If the `makeBodyParameter` before this added assets, make sure to publish them before\n // calling the API.\n const addedAssets = builder.toManifest(stackArtifact.assembly.directory);\n for (const entry of addedAssets.entries) {\n await this.buildSingleAsset('no-version-validation', addedAssets, entry, {\n stack: stackArtifact,\n });\n await this.publishSingleAsset(addedAssets, entry, {\n stack: stackArtifact,\n });\n }\n const response = await cfn.getTemplateSummary(cfnParam);\n if (!response.ResourceIdentifierSummaries) {\n await this.ioHelper.defaults.debug('GetTemplateSummary API call did not return \"ResourceIdentifierSummaries\"');\n }\n return response.ResourceIdentifierSummaries ?? [];\n }\n async deployStack(options) {\n const env = await this.envs.accessStackForMutableStackOperations(options.stack);\n // Do a verification of the bootstrap stack version\n await this.validateBootstrapStackVersion(options.stack.stackName, options.stack.requiresBootstrapStackVersion, options.stack.bootstrapStackVersionSsmParameter, env.resources);\n const executionRoleArn = await env.replacePlaceholders(options.roleArn ?? options.stack.cloudFormationExecutionRoleArn);\n return (0, deploy_stack_1.deployStack)({\n stack: options.stack,\n resolvedEnvironment: env.resolvedEnvironment,\n deployName: options.deployName,\n notificationArns: options.notificationArns,\n sdk: env.sdk,\n sdkProvider: this.deployStackSdkProvider,\n roleArn: executionRoleArn,\n reuseAssets: options.reuseAssets,\n envResources: env.resources,\n tags: options.tags,\n deploymentMethod: options.deploymentMethod,\n forceDeployment: options.forceDeployment,\n parameters: options.parameters,\n usePreviousParameters: options.usePreviousParameters,\n rollback: options.rollback,\n extraUserAgent: options.extraUserAgent,\n resourcesToImport: options.resourcesToImport,\n overrideTemplate: options.overrideTemplate,\n assetParallelism: options.assetParallelism,\n }, this.ioHelper);\n }\n /**\n * Create a change set for a stack without executing it.\n *\n * Returns the result if the change set was successfully created, or undefined\n * if the prepare returned a non-success result (e.g. rollback needed).\n */\n async prepareStack(options) {\n const result = await this.deployStack({\n ...options,\n deploymentMethod: { ...options.deploymentMethod, execute: false },\n });\n // With execute: false, the only possible result type is did-deploy-stack\n // (either noOp for empty change sets, or with a changeSet description).\n // Rollback/replacement checks are only reached when executing.\n if (result.type !== 'did-deploy-stack') {\n return undefined;\n }\n // Clean up empty change sets if requested (i.e. when the caller forced\n // execute: false internally, not when the user explicitly asked for --no-execute).\n if (result.noOp && options.cleanupOnNoOp) {\n const changeSetName = options.deploymentMethod.changeSetName ?? deployment_method_1.DEFAULT_DEPLOY_CHANGE_SET_NAME;\n await this.cleanupChangeSet(options.stack, changeSetName);\n }\n return result;\n }\n /**\n * Clean up a change set that was created by prepareStack but never executed.\n * If the stack was created in REVIEW_IN_PROGRESS state (new stack), delete the stack too.\n */\n async cleanupChangeSet(stack, changeSetName) {\n const env = await this.envs.accessStackForMutableStackOperations(stack);\n const cfn = env.sdk.cloudFormation();\n const deployName = stack.stackName;\n const cloudFormationStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n if (!cloudFormationStack.exists) {\n return;\n }\n await cfn.deleteChangeSet({ StackName: deployName, ChangeSetName: changeSetName });\n // If the stack was newly created for this change set, it will be in REVIEW_IN_PROGRESS.\n // Delete it and wait for the deletion to complete so we don't leave an empty stack behind.\n if (cloudFormationStack.stackStatus.name === 'REVIEW_IN_PROGRESS') {\n await cfn.deleteStack({ StackName: deployName });\n await (0, cfn_api_1.waitForStackDelete)(cfn, this.ioHelper, deployName);\n }\n }\n async rollbackStack(options) {\n let resourcesToSkip = options.orphanLogicalIds ?? [];\n if (options.orphanFailedResources && resourcesToSkip.length > 0) {\n throw new toolkit_error_1.ToolkitError('ConflictingRollbackOptions', 'Cannot combine --force with --orphan');\n }\n const env = await this.envs.accessStackForMutableStackOperations(options.stack);\n if (options.validateBootstrapStackVersion ?? true) {\n // Do a verification of the bootstrap stack version\n await this.validateBootstrapStackVersion(options.stack.stackName, BOOTSTRAP_STACK_VERSION_FOR_ROLLBACK, options.stack.bootstrapStackVersionSsmParameter, env.resources);\n }\n const cfn = env.sdk.cloudFormation();\n const deployName = options.stack.stackName;\n // We loop in case of `--force` and the stack ends up in `CONTINUE_UPDATE_ROLLBACK`.\n let maxLoops = 10;\n while (maxLoops--) {\n const cloudFormationStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n const stackArn = cloudFormationStack.stackId;\n const executionRoleArn = await env.replacePlaceholders(options.roleArn ?? options.stack.cloudFormationExecutionRoleArn);\n switch (cloudFormationStack.stackStatus.rollbackChoice) {\n case stack_events_1.RollbackChoice.NONE:\n await this.ioHelper.defaults.warn(`Stack ${deployName} does not need a rollback: ${cloudFormationStack.stackStatus}`);\n return { stackArn: cloudFormationStack.stackId, notInRollbackableState: true };\n case stack_events_1.RollbackChoice.START_ROLLBACK:\n await this.ioHelper.defaults.debug(`Initiating rollback of stack ${deployName}`);\n await cfn.rollbackStack({\n StackName: deployName,\n RoleARN: executionRoleArn,\n ClientRequestToken: (0, crypto_1.randomUUID)(),\n // Enabling this is just the better overall default, the only reason it isn't the upstream default is backwards compatibility\n RetainExceptOnCreate: true,\n });\n break;\n case stack_events_1.RollbackChoice.CONTINUE_UPDATE_ROLLBACK:\n if (options.orphanFailedResources) {\n // Find the failed resources from the deployment and automatically skip them\n // (Using deployment log because we definitely have `DescribeStackEvents` permissions, and we might not have\n // `DescribeStackResources` permissions).\n const poller = new stack_events_1.StackEventPoller(cfn, {\n stackName: deployName,\n stackStatuses: ['ROLLBACK_IN_PROGRESS', 'UPDATE_ROLLBACK_IN_PROGRESS'],\n });\n await poller.poll();\n resourcesToSkip = poller.resourceErrors\n .filter((r) => !r.isStackEvent && r.parentStackLogicalIds.length === 0)\n .map((r) => r.event.LogicalResourceId ?? '');\n }\n const skipDescription = resourcesToSkip.length > 0 ? ` (orphaning: ${resourcesToSkip.join(', ')})` : '';\n await this.ioHelper.defaults.warn(`Continuing rollback of stack ${deployName}${skipDescription}`);\n await cfn.continueUpdateRollback({\n StackName: deployName,\n ClientRequestToken: (0, crypto_1.randomUUID)(),\n RoleARN: executionRoleArn,\n ResourcesToSkip: resourcesToSkip,\n });\n break;\n case stack_events_1.RollbackChoice.ROLLBACK_FAILED:\n await this.ioHelper.defaults.warn(`Stack ${deployName} failed creation and rollback. This state cannot be rolled back. You can recreate this stack by running 'cdk deploy'.`);\n return { stackArn, notInRollbackableState: true };\n default:\n throw new toolkit_error_1.ToolkitError('UnexpectedRollbackChoice', `Unexpected rollback choice: ${cloudFormationStack.stackStatus.rollbackChoice}`);\n }\n const monitor = new stack_events_1.StackActivityMonitor({\n cfn,\n stack: options.stack,\n stackName: deployName,\n ioHelper: this.ioHelper,\n });\n await monitor.start();\n let stackErrorMessage = undefined;\n let finalStackState = cloudFormationStack;\n try {\n const successStack = await (0, cfn_api_1.stabilizeStack)(cfn, this.ioHelper, deployName);\n // This shouldn't really happen, but catch it anyway. You never know.\n if (!successStack) {\n throw new toolkit_error_1.ToolkitError('StackDisappeared', 'Stack deploy failed (the stack disappeared while we were rolling it back)');\n }\n finalStackState = successStack;\n const errors = monitor.allErrorMessages.join(', ');\n if (errors) {\n stackErrorMessage = errors;\n }\n }\n catch (e) {\n stackErrorMessage = suffixWithErrors((0, util_1.formatErrorMessage)(e), monitor.allErrorMessages);\n }\n finally {\n await monitor.stop();\n }\n if (finalStackState.stackStatus.isRollbackSuccess || !stackErrorMessage) {\n return { stackArn, success: true };\n }\n // Either we need to ignore some resources to continue the rollback, or something went wrong\n if (finalStackState.stackStatus.rollbackChoice === stack_events_1.RollbackChoice.CONTINUE_UPDATE_ROLLBACK && options.orphanFailedResources) {\n // Do another loop-de-loop\n continue;\n }\n throw new toolkit_error_1.DeploymentError(`${stackErrorMessage} (fix problem and retry, or orphan these resources using --orphan or --force)`, monitor.rootCauseErrorCode ?? 'RollbackFailed');\n }\n throw new toolkit_error_1.ToolkitError('RollbackStalled', \"Rollback did not finish after a large number of iterations; stopping because it looks like we're not making progress anymore. You can retry if rollback was progressing as expected.\");\n }\n async destroyStack(options) {\n const env = await this.envs.accessStackForMutableStackOperations(options.stack);\n const executionRoleArn = await env.replacePlaceholders(options.roleArn ?? options.stack.cloudFormationExecutionRoleArn);\n return (0, deploy_stack_1.destroyStack)({\n sdk: env.sdk,\n roleArn: executionRoleArn,\n stack: options.stack,\n deployName: options.deployName,\n }, this.ioHelper);\n }\n async stackExists(options) {\n let env;\n if (options.tryLookupRole) {\n env = await this.envs.accessStackForLookupBestEffort(options.stack);\n }\n else {\n env = await this.envs.accessStackForReadOnlyStackOperations(options.stack);\n }\n const stack = await cloudformation_1.CloudFormationStack.lookup(env.sdk.cloudFormation(), options.deployName ?? options.stack.stackName);\n return stack.exists;\n }\n /**\n * Build a single asset from an asset manifest\n *\n * If an assert manifest artifact is given, the bootstrap stack version\n * will be validated according to the constraints in that manifest artifact.\n * If that is not necessary, `'no-version-validation'` can be passed.\n */\n // eslint-disable-next-line @stylistic/max-len\n async buildSingleAsset(assetArtifact, assetManifest, asset, options) {\n if (assetArtifact !== 'no-version-validation') {\n const env = await this.envs.accessStackForReadOnlyStackOperations(options.stack);\n await this.validateBootstrapStackVersion(options.stack.stackName, assetArtifact.requiresBootstrapStackVersion, assetArtifact.bootstrapStackVersionSsmParameter, env.resources);\n }\n const resolvedEnvironment = await this.envs.resolveStackEnvironment(options.stack);\n const publisher = this.cachedPublisher(assetManifest, resolvedEnvironment, options.stackName);\n await publisher.buildEntry(asset);\n if (publisher.hasFailures) {\n throw new toolkit_error_1.ToolkitError('AssetBuildFailed', `Failed to build asset ${asset.displayName(false)}`);\n }\n }\n /**\n * Publish a single asset from an asset manifest\n */\n async publishSingleAsset(assetManifest, asset, options) {\n const stackEnv = await this.envs.resolveStackEnvironment(options.stack);\n // No need to validate anymore, we already did that during build\n const publisher = this.cachedPublisher(assetManifest, stackEnv, options.stackName);\n await publisher.publishEntry(asset, {\n allowCrossAccount: await this.allowCrossAccountAssetPublishingForEnv(options.stack),\n force: options.forcePublish,\n });\n if (publisher.hasFailures) {\n throw toolkit_error_1.ToolkitError.withCause('AssetPublishFailed', `Failed to publish asset ${asset.displayName(true)}`, new AggregateError(publisher.failures.map(f => f.error)));\n }\n }\n async allowCrossAccountAssetPublishingForEnv(stack) {\n if (this._allowCrossAccountAssetPublishing === undefined) {\n const env = await this.envs.accessStackForReadOnlyStackOperations(stack);\n this._allowCrossAccountAssetPublishing = await (0, checks_1.determineAllowCrossAccountAssetPublishing)(env.sdk, this.ioHelper, this.props.toolkitStackName);\n }\n return this._allowCrossAccountAssetPublishing;\n }\n /**\n * Return whether a single asset has been published already\n */\n async isSingleAssetPublished(assetManifest, asset, options) {\n const stackEnv = await this.envs.resolveStackEnvironment(options.stack);\n const publisher = this.cachedPublisher(assetManifest, stackEnv, options.stackName);\n return publisher.isEntryPublished(asset);\n }\n /**\n * Validate that the bootstrap stack has the right version for this stack\n *\n * Call into envResources.validateVersion, but prepend the stack name in case of failure.\n */\n async validateBootstrapStackVersion(stackName, requiresBootstrapStackVersion, bootstrapStackVersionSsmParameter, envResources) {\n try {\n await envResources.validateVersion(requiresBootstrapStackVersion, bootstrapStackVersionSsmParameter);\n }\n catch (e) {\n throw new toolkit_error_1.ToolkitError('BootstrapVersionValidation', `${stackName}: ${(0, util_1.formatErrorMessage)(e)}`);\n }\n }\n cachedPublisher(assetManifest, env, stackName) {\n const existing = this.publisherCache.get(assetManifest);\n if (existing) {\n return existing;\n }\n const prefix = stackName ? `${chalk.bold(stackName)}: ` : '';\n const publisher = new cdk_assets.AssetPublishing(assetManifest, {\n // The AssetPublishing class takes care of role assuming etc, so it's okay to\n // give it a direct `SdkProvider`.\n aws: new asset_publishing_1.PublishingAws(this.assetSdkProvider, env),\n progressListener: new ParallelSafeAssetProgress(prefix, this.ioHelper),\n });\n this.publisherCache.set(assetManifest, publisher);\n return publisher;\n }\n}\nexports.Deployments = Deployments;\n/**\n * Asset progress that doesn't do anything with percentages (currently)\n */\nclass ParallelSafeAssetProgress extends asset_publishing_1.BasePublishProgressListener {\n prefix;\n constructor(prefix, ioHelper) {\n super(ioHelper);\n this.prefix = prefix;\n }\n getMessage(type, event) {\n return `${this.prefix}${type}: ${event.message}`;\n }\n}\nfunction suffixWithErrors(msg, errors) {\n return errors && errors.length > 0 ? `${msg}: ${errors.join(', ')}` : msg;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ltZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsc0RBQXNEO0FBRXRELCtCQUErQjtBQUMvQixxRUFBZ0U7QUFDaEUseURBRzRCO0FBQzVCLHVDQUltQjtBQUNuQixxQ0FBcUU7QUFFckUsaURBQTJEO0FBRzNELHNGQUFnRztBQUVoRywrREFBNEU7QUFDNUUscUNBQWdEO0FBTWhELHNEQUsyQjtBQUMzQixnREFBOEU7QUFHOUUsa0RBQXlGO0FBRXpGLGtEQUE2RDtBQUU3RCxNQUFNLG9DQUFvQyxHQUFHLEVBQUUsQ0FBQztBQXNPaEQ7Ozs7R0FJRztBQUNILE1BQWEsV0FBVztJQTZCTztJQTVCYixJQUFJLENBQW9CO0lBRXhDOzs7Ozs7O09BT0c7SUFDYyxnQkFBZ0IsQ0FBYztJQUUvQzs7Ozs7OztPQU9HO0lBQ2Msc0JBQXNCLENBQWM7SUFFcEMsY0FBYyxHQUFHLElBQUksR0FBRyxFQUF3RCxDQUFDO0lBRTFGLGlDQUFpQyxDQUFzQjtJQUU5QyxRQUFRLENBQVc7SUFFcEMsWUFBNkIsS0FBdUI7UUFBdkIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSwrQkFBaUIsQ0FDL0IsS0FBSyxDQUFDLFdBQVcsRUFDakIsS0FBSyxDQUFDLGdCQUFnQixJQUFJLHlDQUEwQixFQUNwRCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBd0M7UUFDdEUs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LHlCQUEwQixTQUFRLDhDQUEyQjtJQUNoRCxNQUFNLENBQVM7SUFFaEMsWUFBWSxNQUFjLEVBQUUsUUFBa0I7UUFDNUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxVQUFVLENBQUMsSUFBMEIsRUFBRSxLQUFrQztRQUNqRixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQUVELFNBQVMsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLE1BQWlCO0lBQ3RELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBjZGtfYXNzZXRzIGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi9hc3NldC1tYW5pZmVzdC1idWlsZGVyJztcbmltcG9ydCB7XG4gIEJhc2VQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lcixcbiAgUHVibGlzaGluZ0F3cyxcbn0gZnJvbSAnLi9hc3NldC1wdWJsaXNoaW5nJztcbmltcG9ydCB7XG4gIHN0YWJpbGl6ZVN0YWNrLFxuICB1cGxvYWRTdGFja1RlbXBsYXRlQXNzZXRzLFxuICB3YWl0Rm9yU3RhY2tEZWxldGUsXG59IGZyb20gJy4vY2ZuLWFwaSc7XG5pbXBvcnQgeyBkZXRlcm1pbmVBbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZyB9IGZyb20gJy4vY2hlY2tzJztcblxuaW1wb3J0IHsgZGVwbG95U3RhY2ssIGRlc3Ryb3lTdGFjayB9IGZyb20gJy4vZGVwbG95LXN0YWNrJztcbmltcG9ydCB0eXBlIHsgRGVwbG95U3RhY2tSZXN1bHQsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4vZGVwbG95bWVudC1yZXN1bHQnO1xuaW1wb3J0IHR5cGUgeyBDaGFuZ2VTZXREZXBsb3ltZW50LCBEZXBsb3ltZW50TWV0aG9kIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kZXBsb3knO1xuaW1wb3J0IHsgREVGQVVMVF9ERVBMT1lfQ0hBTkdFX1NFVF9OQU1FIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kZXBsb3kvcHJpdmF0ZS9kZXBsb3ltZW50LW1ldGhvZCc7XG5pbXBvcnQgdHlwZSB7IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kZXBsb3kvcHJpdmF0ZS9kZXBsb3ltZW50LW1ldGhvZCc7XG5pbXBvcnQgeyBEZXBsb3ltZW50RXJyb3IsIFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHtcbiAgVGVtcGxhdGUsXG4gIFJvb3RUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MsXG59IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uU3RhY2ssXG4gIGxvYWRDdXJyZW50VGVtcGxhdGUsXG4gIGxvYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLFxuICBtYWtlQm9keVBhcmFtZXRlcixcbn0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudFJlc291cmNlcywgRW52aXJvbm1lbnRBY2Nlc3MgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlSWRlbnRpZmllclN1bW1hcmllcywgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuLi9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgU3RhY2tBY3Rpdml0eU1vbml0b3IsIFN0YWNrRXZlbnRQb2xsZXIsIFJvbGxiYWNrQ2hvaWNlIH0gZnJvbSAnLi4vc3RhY2stZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vdGFncyc7XG5pbXBvcnQgeyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbmNvbnN0IEJPT1RTVFJBUF9TVEFDS19WRVJTSU9OX0ZPUl9ST0xMQkFDSyA9IDIzO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVN0YWNrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdGFjayB0byBkZXBsb3lcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGlvbiByb2xlIGZvciB0aGUgZGVwbG95bWVudCAocGFzcyB0aHJvdWdoIHRvIENsb3VkRm9ybWF0aW9uKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEN1cnJlbnQgcm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVG9waWMgQVJOcyB0byBzZW5kIGEgbWVzc2FnZSB3aGVuIGRlcGxveW1lbnQgZmluaXNoZXMgKHBhc3MgdGhyb3VnaCB0byBDbG91ZEZvcm1hdGlvbilcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBub3RpZmljYXRpb25zXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIG5hbWUgdW5kZXIgd2hpY2ggc3RhY2sgd2lsbCBiZSBkZXBsb3llZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZSBhcnRpZmFjdCBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBkZXBsb3lOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSB0b29sa2l0IHN0YWNrLCBpZiBub3QgdGhlIGRlZmF1bHQgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAnQ0RLVG9vbGtpdCdcbiAgICovXG4gIHJlYWRvbmx5IHRvb2xraXRTdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXQgSURzIHdoaWNoIHNob3VsZCBOT1QgYmUgYnVpbHQgb3IgdXBsb2FkZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBCdWlsZCBhbGwgYXNzZXRzXG4gICAqL1xuICByZWFkb25seSByZXVzZUFzc2V0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0YWdzIChwYXNzIHRocm91Z2ggdG8gQ2xvdWRGb3JtYXRpb24pXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB0aGUgZGVwbG95bWVudCBtZXRob2QgKGRpcmVjdCBvciB1c2luZyBhIGNoYW5nZSBzZXQpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ2hhbmdlIHNldCB3aXRoIGRlZmF1bHQgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudE1ldGhvZD86IERlcGxveW1lbnRNZXRob2QgfCBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudDtcblxuICAvKipcbiAgICogRm9yY2UgZGVwbG95bWVudCwgZXZlbiBpZiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBvbmUgd2UgYXJlIGFib3V0IHRvIGRlcGxveS5cbiAgICogQGRlZmF1bHQgZmFsc2UgZGVwbG95bWVudCB3aWxsIGJlIHNraXBwZWQgaWYgdGhlIHRlbXBsYXRlIGlzIGlkZW50aWNhbFxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXh0cmEgcGFyYW1ldGVycyBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFVzZSBwcmV2aW91cyB2YWx1ZXMgZm9yIHVuc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAgICpcbiAgICogSWYgbm90IHNldCwgYWxsIHBhcmFtZXRlcnMgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGV2ZXJ5IGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHVzZVByZXZpb3VzUGFyYW1ldGVycz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIGZhaWxlZCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBleHRyYSBzdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlciB3aGVuIHBlcmZvcm1pbmcgQVdTIFNESyBjYWxscy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3RoaW5nIGV4dHJhIGlzIGFwcGVuZGVkIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlclxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFVc2VyQWdlbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZXhpc3RpbmcgcmVzb3VyY2VzIHRvIGJlIElNUE9SVEVEIGludG8gdGhlIHN0YWNrLCBpbnN0ZWFkIG9mIGJlaW5nIENSRUFURURcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlc1RvSW1wb3J0PzogUmVzb3VyY2VzVG9JbXBvcnQ7XG5cbiAgLyoqXG4gICAqIElmIHByZXNlbnQsIHVzZSB0aGlzIGdpdmVuIHRlbXBsYXRlIGluc3RlYWQgb2YgdGhlIHN0b3JlZCBvbmVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2UgdGhlIHN0b3JlZCB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVUZW1wbGF0ZT86IGFueTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBidWlsZC9wdWJsaXNoIGFzc2V0cyBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIFRvIHJlbWFpbiBiYWNrd2FyZCBjb21wYXRpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRQYXJhbGxlbGlzbT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcGFyZVN0YWNrT3B0aW9ucyBleHRlbmRzIE9taXQ8RGVwbG95U3RhY2tPcHRpb25zLCAnZGVwbG95bWVudE1ldGhvZCc+IHtcbiAgLyoqXG4gICAqIFRoZSBjaGFuZ2Utc2V0IGRlcGxveW1lbnQgbWV0aG9kIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q6IENoYW5nZVNldERlcGxveW1lbnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2xlYW4gdXAgdGhlIGNoYW5nZSBzZXQgaWYgaXQgaGFzIG5vIGNoYW5nZXMuXG4gICAqXG4gICAqIFNldCB0byB0cnVlIHdoZW4gdGhlIGNhbGxlciBmb3JjZWQgZXhlY3V0ZTogZmFsc2UgaW50ZXJuYWxseVxuICAgKiAodHdvLXBoYXNlIGRlcGxveSkuIFNldCB0byBmYWxzZSB3aGVuIHRoZSB1c2VyIGV4cGxpY2l0bHlcbiAgICogYXNrZWQgZm9yIC0tbm8tZXhlY3V0ZSAocHJlcGFyZS1jaGFuZ2Utc2V0KS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNsZWFudXBPbk5vT3A/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGxiYWNrU3RhY2tPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0YWNrIHRvIHJvbGwgYmFja1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogRXhlY3V0aW9uIHJvbGUgZm9yIHRoZSBkZXBsb3ltZW50IChwYXNzIHRocm91Z2ggdG8gQ2xvdWRGb3JtYXRpb24pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VycmVudCByb2xlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSB0b29sa2l0IHN0YWNrLCBpZiBub3QgdGhlIGRlZmF1bHQgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAnQ0RLVG9vbGtpdCdcbiAgICovXG4gIHJlYWRvbmx5IHRvb2xraXRTdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBvcnBoYW4gYWxsIGZhaWxlZCByZXNvdXJjZXMgZHVyaW5nIHRoZSByb2xsYmFja1xuICAgKlxuICAgKiBUaGlzIHdpbGwgZm9yY2UgYSByb2xsYmFjayB0aGF0IG90aGVyd2lzZSB3b3VsZCBoYXZlIGZhaWxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkZhaWxlZFJlc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9ycGhhbiB0aGUgcmVzb3VyY2VzIHdpdGggdGhlIGdpdmVuIGxvZ2ljYWwgSURzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb3JwaGFuaW5nXG4gICAqL1xuICByZWFkb25seSBvcnBoYW5Mb2dpY2FsSWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIHZlcnNpb24gb2YgdGhlIGJvb3RzdHJhcCBzdGFjayBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZUJvb3RzdHJhcFN0YWNrVmVyc2lvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFJvbGxiYWNrU3RhY2tSZXN1bHQgPSB7IHJlYWRvbmx5IHN0YWNrQXJuOiBzdHJpbmcgfSAmIChcbiAgfCB7IHJlYWRvbmx5IG5vdEluUm9sbGJhY2thYmxlU3RhdGU6IHRydWUgfVxuICB8IHsgcmVhZG9ubHkgc3VjY2VzczogdHJ1ZTsgbm90SW5Sb2xsYmFja2FibGVTdGF0ZT86IHVuZGVmaW5lZCB9XG4pO1xuXG5pbnRlcmZhY2UgQXNzZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0YWNrIHdpdGggYXNzZXRzIHRvIGJ1aWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogRXhlY3V0aW9uIHJvbGUgZm9yIHRoZSBidWlsZGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXJyZW50IHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTdGFja0Fzc2V0c09wdGlvbnMgZXh0ZW5kcyBBc3NldE9wdGlvbnMge1xuICAvKipcbiAgICogU3RhY2sgbmFtZSB0aGlzIGFzc2V0IGlzIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUHVibGlzaFN0YWNrQXNzZXRzT3B0aW9ucyBleHRlbmRzIEFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdGFjayBuYW1lIHRoaXMgYXNzZXQgaXMgZm9yXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsd2F5cyBwdWJsaXNoLCBldmVuIGlmIGl0IGFscmVhZHkgZXhpc3RzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZVB1Ymxpc2g/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lTdGFja09wdGlvbnMge1xuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBkZXBsb3lOYW1lPzogc3RyaW5nO1xuICByb2xlQXJuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRXhpc3RzT3B0aW9ucyB7XG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIGRlcGxveU5hbWU/OiBzdHJpbmc7XG4gIHRyeUxvb2t1cFJvbGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRzUHJvcHMge1xuICByZWFkb25seSBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG4gIHJlYWRvbmx5IHRvb2xraXRTdGFja05hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbn1cblxuLyoqXG4gKiBTY29wZSBmb3IgYSBzaW5nbGUgc2V0IG9mIGRlcGxveW1lbnRzIGZyb20gYSBzZXQgb2YgQ2xvdWQgQXNzZW1ibHkgQXJ0aWZhY3RzXG4gKlxuICogTWFuYWdlcyBsb29rdXAgb2YgU0RLcywgQm9vdHN0cmFwIHN0YWNrcywgZXRjLlxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudHMge1xuICBwdWJsaWMgcmVhZG9ubHkgZW52czogRW52aXJvbm1lbnRBY2Nlc3M7XG5cbiAgLyoqXG4gICAqIFNESyBwcm92aWRlciBmb3IgYXNzZXQgcHVibGlzaGluZyAoZG8gbm90IHVzZSBmb3IgYW55dGhpbmcgZWxzZSkuXG4gICAqXG4gICAqIFRoaXMgU0RLIHByb3ZpZGVyIGlzIG9ubHkgYWxsb3dlZCB0byBiZSB1c2VkIGZvciB0aGF0IHB1cnBvc2UsIG5vdGhpbmcgZWxzZS5cbiAgICpcbiAgICogSXQncyBub3QgYSBkaWZmZXJlbnQgb2JqZWN0LCBidXQgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGltcGx5IHRoYXQgdGhpc1xuICAgKiBvYmplY3Qgc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5LCBleGNlcHQgdG8gcGFzcyB0byBhc3NldCBoYW5kbGluZyByb3V0aW5lcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZXRTZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIFNESyBwcm92aWRlciBmb3IgcGFzc2luZyB0byBkZXBsb3lTdGFja1xuICAgKlxuICAgKiBUaGlzIFNESyBwcm92aWRlciBpcyBvbmx5IGFsbG93ZWQgdG8gYmUgdXNlZCBmb3IgdGhhdCBwdXJwb3NlLCBub3RoaW5nIGVsc2UuXG4gICAqXG4gICAqIEl0J3Mgbm90IGEgZGlmZmVyZW50IG9iamVjdCwgYnV0IHRoZSBmaWVsZCBuYW1lIHNob3VsZCBpbXBseSB0aGF0IHRoaXNcbiAgICogb2JqZWN0IHNob3VsZCBub3QgYmUgdXNlZCBkaXJlY3RseSwgZXhjZXB0IHRvIHBhc3MgdG8gYGRlcGxveVN0YWNrYC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95U3RhY2tTZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwdWJsaXNoZXJDYWNoZSA9IG5ldyBNYXA8Y2RrX2Fzc2V0cy5Bc3NldE1hbmlmZXN0LCBjZGtfYXNzZXRzLkFzc2V0UHVibGlzaGluZz4oKTtcblxuICBwcml2YXRlIF9hbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBEZXBsb3ltZW50c1Byb3BzKSB7XG4gICAgdGhpcy5hc3NldFNka1Byb3ZpZGVyID0gcHJvcHMuc2RrUHJvdmlkZXI7XG4gICAgdGhpcy5kZXBsb3lTdGFja1Nka1Byb3ZpZGVyID0gcHJvcHMuc2RrUHJvdmlkZXI7XG4gICAgdGhpcy5pb0hlbHBlciA9IHByb3BzLmlvSGVscGVyO1xuICAgIHRoaXMuZW52cyA9IG5ldyBFbnZpcm9ubWVudEFjY2VzcyhcbiAgICAgIHByb3BzLnNka1Byb3ZpZGVyLFxuICAgICAgcHJvcHMudG9vbGtpdFN0YWNrTmFtZSA/PyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSxcbiAgICAgIHRoaXMuaW9IZWxwZXIsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgZW52aXJvbm1lbnQgZm9yIGEgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZUVudmlyb25tZW50KHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpOiBQcm9taXNlPGN4YXBpLkVudmlyb25tZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZW52cy5yZXNvbHZlU3RhY2tFbnZpcm9ubWVudChzdGFjayk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MoXG4gICAgcm9vdFN0YWNrQXJ0aWZhY3Q6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICk6IFByb21pc2U8Um9vdFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcz4ge1xuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0Zvckxvb2t1cEJlc3RFZmZvcnQocm9vdFN0YWNrQXJ0aWZhY3QpO1xuICAgIHJldHVybiBsb2FkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhyb290U3RhY2tBcnRpZmFjdCwgZW52LnNkaywgcmV0cmlldmVQcm9jZXNzZWRUZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZEN1cnJlbnRUZW1wbGF0ZShzdGFja0FydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmVhZGluZyBleGlzdGluZyB0ZW1wbGF0ZSBmb3Igc3RhY2sgJHtzdGFja0FydGlmYWN0LmRpc3BsYXlOYW1lfS5gKTtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JMb29rdXBCZXN0RWZmb3J0KHN0YWNrQXJ0aWZhY3QpO1xuICAgIHJldHVybiBsb2FkQ3VycmVudFRlbXBsYXRlKHN0YWNrQXJ0aWZhY3QsIGVudi5zZGspO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlc291cmNlSWRlbnRpZmllclN1bW1hcmllcyhcbiAgICBzdGFja0FydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gICk6IFByb21pc2U8UmVzb3VyY2VJZGVudGlmaWVyU3VtbWFyaWVzPiB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmV0cmlldmluZyB0ZW1wbGF0ZSBzdW1tYXJ5IGZvciBzdGFjayAke3N0YWNrQXJ0aWZhY3QuZGlzcGxheU5hbWV9LmApO1xuICAgIC8vIEN1cnJlbnRseSwgbmVlZHMgdG8gdXNlIGBkZXBsb3ktcm9sZWAgc2luY2UgaXQgbWF5IG5lZWQgdG8gcmVhZCB0ZW1wbGF0ZXMgaW4gdGhlIHN0YWdpbmdcbiAgICAvLyBidWNrZXQgd2hpY2ggaGF2ZSBiZWVuIGVuY3J5cHRlZCB3aXRoIGEgS01TIGtleSAoYW5kIGxvb2t1cC1yb2xlIG1heSBub3QgcmVhZCBlbmNyeXB0ZWQgdGhpbmdzKVxuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0ZvclJlYWRPbmx5U3RhY2tPcGVyYXRpb25zKHN0YWNrQXJ0aWZhY3QpO1xuICAgIGNvbnN0IGNmbiA9IGVudi5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICAgIGF3YWl0IHVwbG9hZFN0YWNrVGVtcGxhdGVBc3NldHMoc3RhY2tBcnRpZmFjdCwgdGhpcyk7XG5cbiAgICAvLyBVcGxvYWQgdGhlIHRlbXBsYXRlLCBpZiBuZWNlc3NhcnksIGJlZm9yZSBwYXNzaW5nIGl0IHRvIENGTlxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQXNzZXRNYW5pZmVzdEJ1aWxkZXIoKTtcbiAgICBjb25zdCBjZm5QYXJhbSA9IGF3YWl0IG1ha2VCb2R5UGFyYW1ldGVyKFxuICAgICAgdGhpcy5pb0hlbHBlcixcbiAgICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgICBlbnYucmVzb2x2ZWRFbnZpcm9ubWVudCxcbiAgICAgIGJ1aWxkZXIsXG4gICAgICBlbnYucmVzb3VyY2VzLFxuICAgICk7XG5cbiAgICAvLyBJZiB0aGUgYG1ha2VCb2R5UGFyYW1ldGVyYCBiZWZvcmUgdGhpcyBhZGRlZCBhc3NldHMsIG1ha2Ugc3VyZSB0byBwdWJsaXNoIHRoZW0gYmVmb3JlXG4gICAgLy8gY2FsbGluZyB0aGUgQVBJLlxuICAgIGNvbnN0IGFkZGVkQXNzZXRzID0gYnVpbGRlci50b01hbmlmZXN0KHN0YWNrQXJ0aWZhY3QuYXNzZW1ibHkuZGlyZWN0b3J5KTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGFkZGVkQXNzZXRzLmVudHJpZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuYnVpbGRTaW5nbGVBc3NldCgnbm8tdmVyc2lvbi12YWxpZGF0aW9uJywgYWRkZWRBc3NldHMsIGVudHJ5LCB7XG4gICAgICAgIHN0YWNrOiBzdGFja0FydGlmYWN0LFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLnB1Ymxpc2hTaW5nbGVBc3NldChhZGRlZEFzc2V0cywgZW50cnksIHtcbiAgICAgICAgc3RhY2s6IHN0YWNrQXJ0aWZhY3QsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNmbi5nZXRUZW1wbGF0ZVN1bW1hcnkoY2ZuUGFyYW0pO1xuICAgIGlmICghcmVzcG9uc2UuUmVzb3VyY2VJZGVudGlmaWVyU3VtbWFyaWVzKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKCdHZXRUZW1wbGF0ZVN1bW1hcnkgQVBJIGNhbGwgZGlkIG5vdCByZXR1cm4gXCJSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXNcIicpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2UuUmVzb3VyY2VJZGVudGlmaWVyU3VtbWFyaWVzID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlcGxveVN0YWNrKG9wdGlvbnM6IERlcGxveVN0YWNrT3B0aW9ucyk6IFByb21pc2U8RGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKG9wdGlvbnMuc3RhY2spO1xuXG4gICAgLy8gRG8gYSB2ZXJpZmljYXRpb24gb2YgdGhlIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAgYXdhaXQgdGhpcy52YWxpZGF0ZUJvb3RzdHJhcFN0YWNrVmVyc2lvbihcbiAgICAgIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgb3B0aW9ucy5zdGFjay5yZXF1aXJlc0Jvb3RzdHJhcFN0YWNrVmVyc2lvbixcbiAgICAgIG9wdGlvbnMuc3RhY2suYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyLFxuICAgICAgZW52LnJlc291cmNlcyk7XG5cbiAgICBjb25zdCBleGVjdXRpb25Sb2xlQXJuID0gYXdhaXQgZW52LnJlcGxhY2VQbGFjZWhvbGRlcnMob3B0aW9ucy5yb2xlQXJuID8/IG9wdGlvbnMuc3RhY2suY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlQXJuKTtcblxuICAgIHJldHVybiBkZXBsb3lTdGFjayh7XG4gICAgICBzdGFjazogb3B0aW9ucy5zdGFjayxcbiAgICAgIHJlc29sdmVkRW52aXJvbm1lbnQ6IGVudi5yZXNvbHZlZEVudmlyb25tZW50LFxuICAgICAgZGVwbG95TmFtZTogb3B0aW9ucy5kZXBsb3lOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uQXJuczogb3B0aW9ucy5ub3RpZmljYXRpb25Bcm5zLFxuICAgICAgc2RrOiBlbnYuc2RrLFxuICAgICAgc2RrUHJvdmlkZXI6IHRoaXMuZGVwbG95U3RhY2tTZGtQcm92aWRlcixcbiAgICAgIHJvbGVBcm46IGV4ZWN1dGlvblJvbGVBcm4sXG4gICAgICByZXVzZUFzc2V0czogb3B0aW9ucy5yZXVzZUFzc2V0cyxcbiAgICAgIGVudlJlc291cmNlczogZW52LnJlc291cmNlcyxcbiAgICAgIHRhZ3M6IG9wdGlvbnMudGFncyxcbiAgICAgIGRlcGxveW1lbnRNZXRob2Q6IG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZCxcbiAgICAgIGZvcmNlRGVwbG95bWVudDogb3B0aW9ucy5mb3JjZURlcGxveW1lbnQsXG4gICAgICBwYXJhbWV0ZXJzOiBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICB1c2VQcmV2aW91c1BhcmFtZXRlcnM6IG9wdGlvbnMudXNlUHJldmlvdXNQYXJhbWV0ZXJzLFxuICAgICAgcm9sbGJhY2s6IG9wdGlvbnMucm9sbGJhY2ssXG4gICAgICBleHRyYVVzZXJBZ2VudDogb3B0aW9ucy5leHRyYVVzZXJBZ2VudCxcbiAgICAgIHJlc291cmNlc1RvSW1wb3J0OiBvcHRpb25zLnJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgb3ZlcnJpZGVUZW1wbGF0ZTogb3B0aW9ucy5vdmVycmlkZVRlbXBsYXRlLFxuICAgICAgYXNzZXRQYXJhbGxlbGlzbTogb3B0aW9ucy5hc3NldFBhcmFsbGVsaXNtLFxuICAgIH0sIHRoaXMuaW9IZWxwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNoYW5nZSBzZXQgZm9yIGEgc3RhY2sgd2l0aG91dCBleGVjdXRpbmcgaXQuXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHJlc3VsdCBpZiB0aGUgY2hhbmdlIHNldCB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQsIG9yIHVuZGVmaW5lZFxuICAgKiBpZiB0aGUgcHJlcGFyZSByZXR1cm5lZCBhIG5vbi1zdWNjZXNzIHJlc3VsdCAoZS5nLiByb2xsYmFjayBuZWVkZWQpLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHByZXBhcmVTdGFjayhcbiAgICBvcHRpb25zOiBQcmVwYXJlU3RhY2tPcHRpb25zLFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGVwbG95U3RhY2soe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGRlcGxveW1lbnRNZXRob2Q6IHsgLi4ub3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLCBleGVjdXRlOiBmYWxzZSB9LFxuICAgIH0pO1xuXG4gICAgLy8gV2l0aCBleGVjdXRlOiBmYWxzZSwgdGhlIG9ubHkgcG9zc2libGUgcmVzdWx0IHR5cGUgaXMgZGlkLWRlcGxveS1zdGFja1xuICAgIC8vIChlaXRoZXIgbm9PcCBmb3IgZW1wdHkgY2hhbmdlIHNldHMsIG9yIHdpdGggYSBjaGFuZ2VTZXQgZGVzY3JpcHRpb24pLlxuICAgIC8vIFJvbGxiYWNrL3JlcGxhY2VtZW50IGNoZWNrcyBhcmUgb25seSByZWFjaGVkIHdoZW4gZXhlY3V0aW5nLlxuICAgIGlmIChyZXN1bHQudHlwZSAhPT0gJ2RpZC1kZXBsb3ktc3RhY2snKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIENsZWFuIHVwIGVtcHR5IGNoYW5nZSBzZXRzIGlmIHJlcXVlc3RlZCAoaS5lLiB3aGVuIHRoZSBjYWxsZXIgZm9yY2VkXG4gICAgLy8gZXhlY3V0ZTogZmFsc2UgaW50ZXJuYWxseSwgbm90IHdoZW4gdGhlIHVzZXIgZXhwbGljaXRseSBhc2tlZCBmb3IgLS1uby1leGVjdXRlKS5cbiAgICBpZiAocmVzdWx0Lm5vT3AgJiYgb3B0aW9ucy5jbGVhbnVwT25Ob09wKSB7XG4gICAgICBjb25zdCBjaGFuZ2VTZXROYW1lID0gb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLmNoYW5nZVNldE5hbWUgPz8gREVGQVVMVF9ERVBMT1lfQ0hBTkdFX1NFVF9OQU1FO1xuICAgICAgYXdhaXQgdGhpcy5jbGVhbnVwQ2hhbmdlU2V0KG9wdGlvbnMuc3RhY2ssIGNoYW5nZVNldE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gdXAgYSBjaGFuZ2Ugc2V0IHRoYXQgd2FzIGNyZWF0ZWQgYnkgcHJlcGFyZVN0YWNrIGJ1dCBuZXZlciBleGVjdXRlZC5cbiAgICogSWYgdGhlIHN0YWNrIHdhcyBjcmVhdGVkIGluIFJFVklFV19JTl9QUk9HUkVTUyBzdGF0ZSAobmV3IHN0YWNrKSwgZGVsZXRlIHRoZSBzdGFjayB0b28uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xlYW51cENoYW5nZVNldChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBjaGFuZ2VTZXROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKHN0YWNrKTtcbiAgICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG4gICAgY29uc3QgZGVwbG95TmFtZSA9IHN0YWNrLnN0YWNrTmFtZTtcblxuICAgIGNvbnN0IGNsb3VkRm9ybWF0aW9uU3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIGRlcGxveU5hbWUpO1xuICAgIGlmICghY2xvdWRGb3JtYXRpb25TdGFjay5leGlzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBjZm4uZGVsZXRlQ2hhbmdlU2V0KHsgU3RhY2tOYW1lOiBkZXBsb3lOYW1lLCBDaGFuZ2VTZXROYW1lOiBjaGFuZ2VTZXROYW1lIH0pO1xuXG4gICAgLy8gSWYgdGhlIHN0YWNrIHdhcyBuZXdseSBjcmVhdGVkIGZvciB0aGlzIGNoYW5nZSBzZXQsIGl0IHdpbGwgYmUgaW4gUkVWSUVXX0lOX1BST0dSRVNTLlxuICAgIC8vIERlbGV0ZSBpdCBhbmQgd2FpdCBmb3IgdGhlIGRlbGV0aW9uIHRvIGNvbXBsZXRlIHNvIHdlIGRvbid0IGxlYXZlIGFuIGVtcHR5IHN0YWNrIGJlaGluZC5cbiAgICBpZiAoY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5uYW1lID09PSAnUkVWSUVXX0lOX1BST0dSRVNTJykge1xuICAgICAgYXdhaXQgY2ZuLmRlbGV0ZVN0YWNrKHsgU3RhY2tOYW1lOiBkZXBsb3lOYW1lIH0pO1xuICAgICAgYXdhaXQgd2FpdEZvclN0YWNrRGVsZXRlKGNmbiwgdGhpcy5pb0hlbHBlciwgZGVwbG95TmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJvbGxiYWNrU3RhY2sob3B0aW9uczogUm9sbGJhY2tTdGFja09wdGlvbnMpOiBQcm9taXNlPFJvbGxiYWNrU3RhY2tSZXN1bHQ+IHtcbiAgICBsZXQgcmVzb3VyY2VzVG9Ta2lwOiBzdHJpbmdbXSA9IG9wdGlvbnMub3JwaGFuTG9naWNhbElkcyA/PyBbXTtcbiAgICBpZiAob3B0aW9ucy5vcnBoYW5GYWlsZWRSZXNvdXJjZXMgJiYgcmVzb3VyY2VzVG9Ta2lwLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0NvbmZsaWN0aW5nUm9sbGJhY2tPcHRpb25zJywgJ0Nhbm5vdCBjb21iaW5lIC0tZm9yY2Ugd2l0aCAtLW9ycGhhbicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0Zvck11dGFibGVTdGFja09wZXJhdGlvbnMob3B0aW9ucy5zdGFjayk7XG5cbiAgICBpZiAob3B0aW9ucy52YWxpZGF0ZUJvb3RzdHJhcFN0YWNrVmVyc2lvbiA/PyB0cnVlKSB7XG4gICAgICAvLyBEbyBhIHZlcmlmaWNhdGlvbiBvZiB0aGUgYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24oXG4gICAgICAgIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBCT09UU1RSQVBfU1RBQ0tfVkVSU0lPTl9GT1JfUk9MTEJBQ0ssXG4gICAgICAgIG9wdGlvbnMuc3RhY2suYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyLFxuICAgICAgICBlbnYucmVzb3VyY2VzKTtcbiAgICB9XG5cbiAgICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG4gICAgY29uc3QgZGVwbG95TmFtZSA9IG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lO1xuXG4gICAgLy8gV2UgbG9vcCBpbiBjYXNlIG9mIGAtLWZvcmNlYCBhbmQgdGhlIHN0YWNrIGVuZHMgdXAgaW4gYENPTlRJTlVFX1VQREFURV9ST0xMQkFDS2AuXG4gICAgbGV0IG1heExvb3BzID0gMTA7XG4gICAgd2hpbGUgKG1heExvb3BzLS0pIHtcbiAgICAgIGNvbnN0IGNsb3VkRm9ybWF0aW9uU3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIGRlcGxveU5hbWUpO1xuICAgICAgY29uc3Qgc3RhY2tBcm4gPSBjbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrSWQ7XG5cbiAgICAgIGNvbnN0IGV4ZWN1dGlvblJvbGVBcm4gPSBhd2FpdCBlbnYucmVwbGFjZVBsYWNlaG9sZGVycyhvcHRpb25zLnJvbGVBcm4gPz8gb3B0aW9ucy5zdGFjay5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4pO1xuXG4gICAgICBzd2l0Y2ggKGNsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tTdGF0dXMucm9sbGJhY2tDaG9pY2UpIHtcbiAgICAgICAgY2FzZSBSb2xsYmFja0Nob2ljZS5OT05FOlxuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihgU3RhY2sgJHtkZXBsb3lOYW1lfSBkb2VzIG5vdCBuZWVkIGEgcm9sbGJhY2s6ICR7Y2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1c31gKTtcbiAgICAgICAgICByZXR1cm4geyBzdGFja0FybjogY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja0lkLCBub3RJblJvbGxiYWNrYWJsZVN0YXRlOiB0cnVlIH07XG5cbiAgICAgICAgY2FzZSBSb2xsYmFja0Nob2ljZS5TVEFSVF9ST0xMQkFDSzpcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBJbml0aWF0aW5nIHJvbGxiYWNrIG9mIHN0YWNrICR7ZGVwbG95TmFtZX1gKTtcbiAgICAgICAgICBhd2FpdCBjZm4ucm9sbGJhY2tTdGFjayh7XG4gICAgICAgICAgICBTdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgICAgICAgICBSb2xlQVJOOiBleGVjdXRpb25Sb2xlQXJuLFxuICAgICAgICAgICAgQ2xpZW50UmVxdWVzdFRva2VuOiByYW5kb21VVUlEKCksXG4gICAgICAgICAgICAvLyBFbmFibGluZyB0aGlzIGlzIGp1c3QgdGhlIGJldHRlciBvdmVyYWxsIGRlZmF1bHQsIHRoZSBvbmx5IHJlYXNvbiBpdCBpc24ndCB0aGUgdXBzdHJlYW0gZGVmYXVsdCBpcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgUmV0YWluRXhjZXB0T25DcmVhdGU6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBSb2xsYmFja0Nob2ljZS5DT05USU5VRV9VUERBVEVfUk9MTEJBQ0s6XG4gICAgICAgICAgaWYgKG9wdGlvbnMub3JwaGFuRmFpbGVkUmVzb3VyY2VzKSB7XG4gICAgICAgICAgICAvLyBGaW5kIHRoZSBmYWlsZWQgcmVzb3VyY2VzIGZyb20gdGhlIGRlcGxveW1lbnQgYW5kIGF1dG9tYXRpY2FsbHkgc2tpcCB0aGVtXG4gICAgICAgICAgICAvLyAoVXNpbmcgZGVwbG95bWVudCBsb2cgYmVjYXVzZSB3ZSBkZWZpbml0ZWx5IGhhdmUgYERlc2NyaWJlU3RhY2tFdmVudHNgIHBlcm1pc3Npb25zLCBhbmQgd2UgbWlnaHQgbm90IGhhdmVcbiAgICAgICAgICAgIC8vIGBEZXNjcmliZVN0YWNrUmVzb3VyY2VzYCBwZXJtaXNzaW9ucykuXG4gICAgICAgICAgICBjb25zdCBwb2xsZXIgPSBuZXcgU3RhY2tFdmVudFBvbGxlcihjZm4sIHtcbiAgICAgICAgICAgICAgc3RhY2tOYW1lOiBkZXBsb3lOYW1lLFxuICAgICAgICAgICAgICBzdGFja1N0YXR1c2VzOiBbJ1JPTExCQUNLX0lOX1BST0dSRVNTJywgJ1VQREFURV9ST0xMQkFDS19JTl9QUk9HUkVTUyddLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhd2FpdCBwb2xsZXIucG9sbCgpO1xuICAgICAgICAgICAgcmVzb3VyY2VzVG9Ta2lwID0gcG9sbGVyLnJlc291cmNlRXJyb3JzXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHIpID0+ICFyLmlzU3RhY2tFdmVudCAmJiByLnBhcmVudFN0YWNrTG9naWNhbElkcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICAgIC5tYXAoKHIpID0+IHIuZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHNraXBEZXNjcmlwdGlvbiA9IHJlc291cmNlc1RvU2tpcC5sZW5ndGggPiAwID8gYCAob3JwaGFuaW5nOiAke3Jlc291cmNlc1RvU2tpcC5qb2luKCcsICcpfSlgIDogJyc7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKGBDb250aW51aW5nIHJvbGxiYWNrIG9mIHN0YWNrICR7ZGVwbG95TmFtZX0ke3NraXBEZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgICBhd2FpdCBjZm4uY29udGludWVVcGRhdGVSb2xsYmFjayh7XG4gICAgICAgICAgICBTdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgICAgICAgICBDbGllbnRSZXF1ZXN0VG9rZW46IHJhbmRvbVVVSUQoKSxcbiAgICAgICAgICAgIFJvbGVBUk46IGV4ZWN1dGlvblJvbGVBcm4sXG4gICAgICAgICAgICBSZXNvdXJjZXNUb1NraXA6IHJlc291cmNlc1RvU2tpcCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFJvbGxiYWNrQ2hvaWNlLlJPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgICBgU3RhY2sgJHtkZXBsb3lOYW1lfSBmYWlsZWQgY3JlYXRpb24gYW5kIHJvbGxiYWNrLiBUaGlzIHN0YXRlIGNhbm5vdCBiZSByb2xsZWQgYmFjay4gWW91IGNhbiByZWNyZWF0ZSB0aGlzIHN0YWNrIGJ5IHJ1bm5pbmcgJ2NkayBkZXBsb3knLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4geyBzdGFja0Fybiwgbm90SW5Sb2xsYmFja2FibGVTdGF0ZTogdHJ1ZSB9O1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5leHBlY3RlZFJvbGxiYWNrQ2hvaWNlJywgYFVuZXhwZWN0ZWQgcm9sbGJhY2sgY2hvaWNlOiAke2Nsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tTdGF0dXMucm9sbGJhY2tDaG9pY2V9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1vbml0b3IgPSBuZXcgU3RhY2tBY3Rpdml0eU1vbml0b3Ioe1xuICAgICAgICBjZm4sXG4gICAgICAgIHN0YWNrOiBvcHRpb25zLnN0YWNrLFxuICAgICAgICBzdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgICAgIGlvSGVscGVyOiB0aGlzLmlvSGVscGVyLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBtb25pdG9yLnN0YXJ0KCk7XG5cbiAgICAgIGxldCBzdGFja0Vycm9yTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IGZpbmFsU3RhY2tTdGF0ZSA9IGNsb3VkRm9ybWF0aW9uU3RhY2s7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzdWNjZXNzU3RhY2sgPSBhd2FpdCBzdGFiaWxpemVTdGFjayhjZm4sIHRoaXMuaW9IZWxwZXIsIGRlcGxveU5hbWUpO1xuXG4gICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IHJlYWxseSBoYXBwZW4sIGJ1dCBjYXRjaCBpdCBhbnl3YXkuIFlvdSBuZXZlciBrbm93LlxuICAgICAgICBpZiAoIXN1Y2Nlc3NTdGFjaykge1xuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrRGlzYXBwZWFyZWQnLCAnU3RhY2sgZGVwbG95IGZhaWxlZCAodGhlIHN0YWNrIGRpc2FwcGVhcmVkIHdoaWxlIHdlIHdlcmUgcm9sbGluZyBpdCBiYWNrKScpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsU3RhY2tTdGF0ZSA9IHN1Y2Nlc3NTdGFjaztcblxuICAgICAgICBjb25zdCBlcnJvcnMgPSBtb25pdG9yLmFsbEVycm9yTWVzc2FnZXMuam9pbignLCAnKTtcbiAgICAgICAgaWYgKGVycm9ycykge1xuICAgICAgICAgIHN0YWNrRXJyb3JNZXNzYWdlID0gZXJyb3JzO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgc3RhY2tFcnJvck1lc3NhZ2UgPSBzdWZmaXhXaXRoRXJyb3JzKGZvcm1hdEVycm9yTWVzc2FnZShlKSwgbW9uaXRvci5hbGxFcnJvck1lc3NhZ2VzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGF3YWl0IG1vbml0b3Iuc3RvcCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmluYWxTdGFja1N0YXRlLnN0YWNrU3RhdHVzLmlzUm9sbGJhY2tTdWNjZXNzIHx8ICFzdGFja0Vycm9yTWVzc2FnZSkge1xuICAgICAgICByZXR1cm4geyBzdGFja0Fybiwgc3VjY2VzczogdHJ1ZSB9O1xuICAgICAgfVxuXG4gICAgICAvLyBFaXRoZXIgd2UgbmVlZCB0byBpZ25vcmUgc29tZSByZXNvdXJjZXMgdG8gY29udGludWUgdGhlIHJvbGxiYWNrLCBvciBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgaWYgKGZpbmFsU3RhY2tTdGF0ZS5zdGFja1N0YXR1cy5yb2xsYmFja0Nob2ljZSA9PT0gUm9sbGJhY2tDaG9pY2UuQ09OVElOVUVfVVBEQVRFX1JPTExCQUNLICYmIG9wdGlvbnMub3JwaGFuRmFpbGVkUmVzb3VyY2VzKSB7XG4gICAgICAgIC8vIERvIGFub3RoZXIgbG9vcC1kZS1sb29wXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKFxuICAgICAgICBgJHtzdGFja0Vycm9yTWVzc2FnZX0gKGZpeCBwcm9ibGVtIGFuZCByZXRyeSwgb3Igb3JwaGFuIHRoZXNlIHJlc291cmNlcyB1c2luZyAtLW9ycGhhbiBvciAtLWZvcmNlKWAsXG4gICAgICAgIG1vbml0b3Iucm9vdENhdXNlRXJyb3JDb2RlID8/ICdSb2xsYmFja0ZhaWxlZCcsXG4gICAgICApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgJ1JvbGxiYWNrU3RhbGxlZCcsXG4gICAgICBcIlJvbGxiYWNrIGRpZCBub3QgZmluaXNoIGFmdGVyIGEgbGFyZ2UgbnVtYmVyIG9mIGl0ZXJhdGlvbnM7IHN0b3BwaW5nIGJlY2F1c2UgaXQgbG9va3MgbGlrZSB3ZSdyZSBub3QgbWFraW5nIHByb2dyZXNzIGFueW1vcmUuIFlvdSBjYW4gcmV0cnkgaWYgcm9sbGJhY2sgd2FzIHByb2dyZXNzaW5nIGFzIGV4cGVjdGVkLlwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVzdHJveVN0YWNrKG9wdGlvbnM6IERlc3Ryb3lTdGFja09wdGlvbnMpIHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKG9wdGlvbnMuc3RhY2spO1xuICAgIGNvbnN0IGV4ZWN1dGlvblJvbGVBcm4gPSBhd2FpdCBlbnYucmVwbGFjZVBsYWNlaG9sZGVycyhvcHRpb25zLnJvbGVBcm4gPz8gb3B0aW9ucy5zdGFjay5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4pO1xuXG4gICAgcmV0dXJuIGRlc3Ryb3lTdGFjayh7XG4gICAgICBzZGs6IGVudi5zZGssXG4gICAgICByb2xlQXJuOiBleGVjdXRpb25Sb2xlQXJuLFxuICAgICAgc3RhY2s6IG9wdGlvbnMuc3RhY2ssXG4gICAgICBkZXBsb3lOYW1lOiBvcHRpb25zLmRlcGxveU5hbWUsXG4gICAgfSwgdGhpcy5pb0hlbHBlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3RhY2tFeGlzdHMob3B0aW9uczogU3RhY2tFeGlzdHNPcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbGV0IGVudjtcbiAgICBpZiAob3B0aW9ucy50cnlMb29rdXBSb2xlKSB7XG4gICAgICBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JMb29rdXBCZXN0RWZmb3J0KG9wdGlvbnMuc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JSZWFkT25seVN0YWNrT3BlcmF0aW9ucyhvcHRpb25zLnN0YWNrKTtcbiAgICB9XG4gICAgY29uc3Qgc3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCksIG9wdGlvbnMuZGVwbG95TmFtZSA/PyBvcHRpb25zLnN0YWNrLnN0YWNrTmFtZSk7XG4gICAgcmV0dXJuIHN0YWNrLmV4aXN0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHNpbmdsZSBhc3NldCBmcm9tIGFuIGFzc2V0IG1hbmlmZXN0XG4gICAqXG4gICAqIElmIGFuIGFzc2VydCBtYW5pZmVzdCBhcnRpZmFjdCBpcyBnaXZlbiwgdGhlIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAqIHdpbGwgYmUgdmFsaWRhdGVkIGFjY29yZGluZyB0byB0aGUgY29uc3RyYWludHMgaW4gdGhhdCBtYW5pZmVzdCBhcnRpZmFjdC5cbiAgICogSWYgdGhhdCBpcyBub3QgbmVjZXNzYXJ5LCBgJ25vLXZlcnNpb24tdmFsaWRhdGlvbidgIGNhbiBiZSBwYXNzZWQuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gIHB1YmxpYyBhc3luYyBidWlsZFNpbmdsZUFzc2V0KFxuICAgIGFzc2V0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCB8ICduby12ZXJzaW9uLXZhbGlkYXRpb24nLFxuICAgIGFzc2V0TWFuaWZlc3Q6IGNka19hc3NldHMuQXNzZXRNYW5pZmVzdCxcbiAgICBhc3NldDogY2RrX2Fzc2V0cy5JTWFuaWZlc3RFbnRyeSxcbiAgICBvcHRpb25zOiBCdWlsZFN0YWNrQXNzZXRzT3B0aW9ucyxcbiAgKSB7XG4gICAgaWYgKGFzc2V0QXJ0aWZhY3QgIT09ICduby12ZXJzaW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JSZWFkT25seVN0YWNrT3BlcmF0aW9ucyhvcHRpb25zLnN0YWNrKTtcbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24oXG4gICAgICAgIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBhc3NldEFydGlmYWN0LnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uLFxuICAgICAgICBhc3NldEFydGlmYWN0LmJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlcixcbiAgICAgICAgZW52LnJlc291cmNlcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudCA9IGF3YWl0IHRoaXMuZW52cy5yZXNvbHZlU3RhY2tFbnZpcm9ubWVudChvcHRpb25zLnN0YWNrKTtcblxuICAgIGNvbnN0IHB1Ymxpc2hlciA9IHRoaXMuY2FjaGVkUHVibGlzaGVyKGFzc2V0TWFuaWZlc3QsIHJlc29sdmVkRW52aXJvbm1lbnQsIG9wdGlvbnMuc3RhY2tOYW1lKTtcbiAgICBhd2FpdCBwdWJsaXNoZXIuYnVpbGRFbnRyeShhc3NldCk7XG4gICAgaWYgKHB1Ymxpc2hlci5oYXNGYWlsdXJlcykge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQXNzZXRCdWlsZEZhaWxlZCcsIGBGYWlsZWQgdG8gYnVpbGQgYXNzZXQgJHthc3NldC5kaXNwbGF5TmFtZShmYWxzZSl9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBzaW5nbGUgYXNzZXQgZnJvbSBhbiBhc3NldCBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2hTaW5nbGVBc3NldChcbiAgICBhc3NldE1hbmlmZXN0OiBjZGtfYXNzZXRzLkFzc2V0TWFuaWZlc3QsXG4gICAgYXNzZXQ6IGNka19hc3NldHMuSU1hbmlmZXN0RW50cnksXG4gICAgb3B0aW9uczogUHVibGlzaFN0YWNrQXNzZXRzT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc3RhY2tFbnYgPSBhd2FpdCB0aGlzLmVudnMucmVzb2x2ZVN0YWNrRW52aXJvbm1lbnQob3B0aW9ucy5zdGFjayk7XG5cbiAgICAvLyBObyBuZWVkIHRvIHZhbGlkYXRlIGFueW1vcmUsIHdlIGFscmVhZHkgZGlkIHRoYXQgZHVyaW5nIGJ1aWxkXG4gICAgY29uc3QgcHVibGlzaGVyID0gdGhpcy5jYWNoZWRQdWJsaXNoZXIoYXNzZXRNYW5pZmVzdCwgc3RhY2tFbnYsIG9wdGlvbnMuc3RhY2tOYW1lKTtcbiAgICBhd2FpdCBwdWJsaXNoZXIucHVibGlzaEVudHJ5KGFzc2V0LCB7XG4gICAgICBhbGxvd0Nyb3NzQWNjb3VudDogYXdhaXQgdGhpcy5hbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZ0ZvckVudihvcHRpb25zLnN0YWNrKSxcbiAgICAgIGZvcmNlOiBvcHRpb25zLmZvcmNlUHVibGlzaCxcbiAgICB9KTtcbiAgICBpZiAocHVibGlzaGVyLmhhc0ZhaWx1cmVzKSB7XG4gICAgICB0aHJvdyBUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdBc3NldFB1Ymxpc2hGYWlsZWQnLCBgRmFpbGVkIHRvIHB1Ymxpc2ggYXNzZXQgJHthc3NldC5kaXNwbGF5TmFtZSh0cnVlKX1gLCBuZXcgQWdncmVnYXRlRXJyb3IocHVibGlzaGVyLmZhaWx1cmVzLm1hcChmID0+IGYuZXJyb3IpKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZ0ZvckVudihzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuX2FsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0ZvclJlYWRPbmx5U3RhY2tPcGVyYXRpb25zKHN0YWNrKTtcbiAgICAgIHRoaXMuX2FsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nID0gYXdhaXQgZGV0ZXJtaW5lQWxsb3dDcm9zc0FjY291bnRBc3NldFB1Ymxpc2hpbmcoZW52LnNkaywgdGhpcy5pb0hlbHBlciwgdGhpcy5wcm9wcy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIGEgc2luZ2xlIGFzc2V0IGhhcyBiZWVuIHB1Ymxpc2hlZCBhbHJlYWR5XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNTaW5nbGVBc3NldFB1Ymxpc2hlZChcbiAgICBhc3NldE1hbmlmZXN0OiBjZGtfYXNzZXRzLkFzc2V0TWFuaWZlc3QsXG4gICAgYXNzZXQ6IGNka19hc3NldHMuSU1hbmlmZXN0RW50cnksXG4gICAgb3B0aW9uczogUHVibGlzaFN0YWNrQXNzZXRzT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc3RhY2tFbnYgPSBhd2FpdCB0aGlzLmVudnMucmVzb2x2ZVN0YWNrRW52aXJvbm1lbnQob3B0aW9ucy5zdGFjayk7XG4gICAgY29uc3QgcHVibGlzaGVyID0gdGhpcy5jYWNoZWRQdWJsaXNoZXIoYXNzZXRNYW5pZmVzdCwgc3RhY2tFbnYsIG9wdGlvbnMuc3RhY2tOYW1lKTtcbiAgICByZXR1cm4gcHVibGlzaGVyLmlzRW50cnlQdWJsaXNoZWQoYXNzZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoYXQgdGhlIGJvb3RzdHJhcCBzdGFjayBoYXMgdGhlIHJpZ2h0IHZlcnNpb24gZm9yIHRoaXMgc3RhY2tcbiAgICpcbiAgICogQ2FsbCBpbnRvIGVudlJlc291cmNlcy52YWxpZGF0ZVZlcnNpb24sIGJ1dCBwcmVwZW5kIHRoZSBzdGFjayBuYW1lIGluIGNhc2Ugb2YgZmFpbHVyZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24oXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBlbnZSZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzLFxuICApIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZW52UmVzb3VyY2VzLnZhbGlkYXRlVmVyc2lvbihyZXF1aXJlc0Jvb3RzdHJhcFN0YWNrVmVyc2lvbiwgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFZlcnNpb25WYWxpZGF0aW9uJywgYCR7c3RhY2tOYW1lfTogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYWNoZWRQdWJsaXNoZXIoYXNzZXRNYW5pZmVzdDogY2RrX2Fzc2V0cy5Bc3NldE1hbmlmZXN0LCBlbnY6IGN4YXBpLkVudmlyb25tZW50LCBzdGFja05hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMucHVibGlzaGVyQ2FjaGUuZ2V0KGFzc2V0TWFuaWZlc3QpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSBzdGFja05hbWUgPyBgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9OiBgIDogJyc7XG4gICAgY29uc3QgcHVibGlzaGVyID0gbmV3IGNka19hc3NldHMuQXNzZXRQdWJsaXNoaW5nKGFzc2V0TWFuaWZlc3QsIHtcbiAgICAgIC8vIFRoZSBBc3NldFB1Ymxpc2hpbmcgY2xhc3MgdGFrZXMgY2FyZSBvZiByb2xlIGFzc3VtaW5nIGV0Yywgc28gaXQncyBva2F5IHRvXG4gICAgICAvLyBnaXZlIGl0IGEgZGlyZWN0IGBTZGtQcm92aWRlcmAuXG4gICAgICBhd3M6IG5ldyBQdWJsaXNoaW5nQXdzKHRoaXMuYXNzZXRTZGtQcm92aWRlciwgZW52KSxcbiAgICAgIHByb2dyZXNzTGlzdGVuZXI6IG5ldyBQYXJhbGxlbFNhZmVBc3NldFByb2dyZXNzKHByZWZpeCwgdGhpcy5pb0hlbHBlciksXG4gICAgfSk7XG4gICAgdGhpcy5wdWJsaXNoZXJDYWNoZS5zZXQoYXNzZXRNYW5pZmVzdCwgcHVibGlzaGVyKTtcbiAgICByZXR1cm4gcHVibGlzaGVyO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXQgcHJvZ3Jlc3MgdGhhdCBkb2Vzbid0IGRvIGFueXRoaW5nIHdpdGggcGVyY2VudGFnZXMgKGN1cnJlbnRseSlcbiAqL1xuY2xhc3MgUGFyYWxsZWxTYWZlQXNzZXRQcm9ncmVzcyBleHRlbmRzIEJhc2VQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJlZml4OiBzdHJpbmcsIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHN1cGVyKGlvSGVscGVyKTtcbiAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRNZXNzYWdlKHR5cGU6IGNka19hc3NldHMuRXZlbnRUeXBlLCBldmVudDogY2RrX2Fzc2V0cy5JUHVibGlzaFByb2dyZXNzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5wcmVmaXh9JHt0eXBlfTogJHtldmVudC5tZXNzYWdlfWA7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VmZml4V2l0aEVycm9ycyhtc2c6IHN0cmluZywgZXJyb3JzPzogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoID4gMCA/IGAke21zZ306ICR7ZXJyb3JzLmpvaW4oJywgJyl9YCA6IG1zZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EarlyValidationReporter = void 0;\n/**\n * A ValidationReporter that checks for early validation errors right after\n * creating the change set. If any are found, it throws an error listing all validation failures.\n * If the DescribeEvents API call fails (for example, due to insufficient permissions),\n * it logs a warning instead.\n */\nclass EarlyValidationReporter {\n sdk;\n envResources;\n constructor(sdk, envResources) {\n this.sdk = sdk;\n this.envResources = envResources;\n }\n async fetchDetails(changeSetName, stackName) {\n let operationEvents = [];\n try {\n operationEvents = await this.getFailedEvents(stackName, changeSetName);\n }\n catch (error) {\n let currentVersion = undefined;\n try {\n currentVersion = (await this.envResources.lookupToolkit()).version;\n }\n catch (e) {\n }\n return `The template cannot be deployed because of early validation errors, but retrieving more details about those\nerrors failed (${error}). Make sure you have permissions to call the DescribeEvents API, or re-bootstrap\nyour environment by running 'cdk bootstrap' to update the Bootstrap CDK Toolkit stack.\nBootstrap toolkit stack version 30 or later is needed; current version: ${currentVersion ?? 'unknown'}.`;\n }\n let message = `ChangeSet '${changeSetName}' on stack '${stackName}' failed early validation`;\n if (operationEvents.length > 0) {\n const failures = operationEvents\n .map((event) => ` - ${event.ValidationStatusReason} (at ${event.ValidationPath})`)\n .join('\\n');\n message += `:\\n${failures}\\n`;\n }\n return message;\n }\n async getFailedEvents(stackName, changeSetName) {\n return this.sdk.cloudFormation().paginatedDescribeEvents({\n StackName: stackName,\n ChangeSetName: changeSetName,\n Filters: {\n FailedEvents: true,\n },\n });\n }\n}\nexports.EarlyValidationReporter = EarlyValidationReporter;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFybHktdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVhcmx5LXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0E7Ozs7O0dBS0c7QUFDSCxNQUFhLHVCQUF1QjtJQUNMO0lBQTJCO0lBQXhELFlBQTZCLEdBQVEsRUFBbUIsWUFBa0M7UUFBN0QsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFtQixpQkFBWSxHQUFaLFlBQVksQ0FBc0I7SUFDMUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZLENBQUMsYUFBcUIsRUFBRSxTQUFpQjtRQUNoRSxJQUFJLGVBQWUsR0FBcUIsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQztZQUNILGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxjQUFjLEdBQXVCLFNBQVMsQ0FBQztZQUNuRCxJQUFJLENBQUM7Z0JBQ0gsY0FBYyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3JFLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2IsQ0FBQztZQUVELE9BQU87aUJBQ0ksS0FBSzs7MEVBRW9ELGNBQWMsSUFBSSxTQUFTLEdBQUcsQ0FBQztRQUNyRyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsY0FBYyxhQUFhLGVBQWUsU0FBUywyQkFBMkIsQ0FBQztRQUM3RixJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxRQUFRLEdBQUcsZUFBZTtpQkFDN0IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxzQkFBc0IsUUFBUSxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUM7aUJBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVkLE9BQU8sSUFBSSxNQUFNLFFBQVEsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFpQixFQUFFLGFBQXFCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN2RCxTQUFTLEVBQUUsU0FBUztZQUNwQixhQUFhLEVBQUUsYUFBYTtZQUM1QixPQUFPLEVBQUU7Z0JBQ1AsWUFBWSxFQUFFLElBQUk7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF6Q0QsMERBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25FdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25SZXBvcnRlciB9IGZyb20gJy4vY2ZuLWFwaSc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3Nkayc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuXG4vKipcbiAqIEEgVmFsaWRhdGlvblJlcG9ydGVyIHRoYXQgY2hlY2tzIGZvciBlYXJseSB2YWxpZGF0aW9uIGVycm9ycyByaWdodCBhZnRlclxuICogY3JlYXRpbmcgdGhlIGNoYW5nZSBzZXQuIElmIGFueSBhcmUgZm91bmQsIGl0IHRocm93cyBhbiBlcnJvciBsaXN0aW5nIGFsbCB2YWxpZGF0aW9uIGZhaWx1cmVzLlxuICogSWYgdGhlIERlc2NyaWJlRXZlbnRzIEFQSSBjYWxsIGZhaWxzIChmb3IgZXhhbXBsZSwgZHVlIHRvIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucyksXG4gKiBpdCBsb2dzIGEgd2FybmluZyBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgRWFybHlWYWxpZGF0aW9uUmVwb3J0ZXIgaW1wbGVtZW50cyBWYWxpZGF0aW9uUmVwb3J0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNkazogU0RLLCBwcml2YXRlIHJlYWRvbmx5IGVudlJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmZXRjaERldGFpbHMoY2hhbmdlU2V0TmFtZTogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IG9wZXJhdGlvbkV2ZW50czogT3BlcmF0aW9uRXZlbnRbXSA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBvcGVyYXRpb25FdmVudHMgPSBhd2FpdCB0aGlzLmdldEZhaWxlZEV2ZW50cyhzdGFja05hbWUsIGNoYW5nZVNldE5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsZXQgY3VycmVudFZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGN1cnJlbnRWZXJzaW9uID0gKGF3YWl0IHRoaXMuZW52UmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKSkudmVyc2lvbjtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGBUaGUgdGVtcGxhdGUgY2Fubm90IGJlIGRlcGxveWVkIGJlY2F1c2Ugb2YgZWFybHkgdmFsaWRhdGlvbiBlcnJvcnMsIGJ1dCByZXRyaWV2aW5nIG1vcmUgZGV0YWlscyBhYm91dCB0aG9zZVxuZXJyb3JzIGZhaWxlZCAoJHtlcnJvcn0pLiBNYWtlIHN1cmUgeW91IGhhdmUgcGVybWlzc2lvbnMgdG8gY2FsbCB0aGUgRGVzY3JpYmVFdmVudHMgQVBJLCBvciByZS1ib290c3RyYXBcbnlvdXIgZW52aXJvbm1lbnQgYnkgcnVubmluZyAnY2RrIGJvb3RzdHJhcCcgdG8gdXBkYXRlIHRoZSBCb290c3RyYXAgQ0RLIFRvb2xraXQgc3RhY2suXG5Cb290c3RyYXAgdG9vbGtpdCBzdGFjayB2ZXJzaW9uIDMwIG9yIGxhdGVyIGlzIG5lZWRlZDsgY3VycmVudCB2ZXJzaW9uOiAke2N1cnJlbnRWZXJzaW9uID8/ICd1bmtub3duJ30uYDtcbiAgICB9XG5cbiAgICBsZXQgbWVzc2FnZSA9IGBDaGFuZ2VTZXQgJyR7Y2hhbmdlU2V0TmFtZX0nIG9uIHN0YWNrICcke3N0YWNrTmFtZX0nIGZhaWxlZCBlYXJseSB2YWxpZGF0aW9uYDtcbiAgICBpZiAob3BlcmF0aW9uRXZlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZhaWx1cmVzID0gb3BlcmF0aW9uRXZlbnRzXG4gICAgICAgIC5tYXAoKGV2ZW50KSA9PiBgICAtICR7ZXZlbnQuVmFsaWRhdGlvblN0YXR1c1JlYXNvbn0gKGF0ICR7ZXZlbnQuVmFsaWRhdGlvblBhdGh9KWApXG4gICAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgICAgbWVzc2FnZSArPSBgOlxcbiR7ZmFpbHVyZXN9XFxuYDtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEZhaWxlZEV2ZW50cyhzdGFja05hbWU6IHN0cmluZywgY2hhbmdlU2V0TmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2RrLmNsb3VkRm9ybWF0aW9uKCkucGFnaW5hdGVkRGVzY3JpYmVFdmVudHMoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICBDaGFuZ2VTZXROYW1lOiBjaGFuZ2VTZXROYW1lLFxuICAgICAgRmlsdGVyczoge1xuICAgICAgICBGYWlsZWRFdmVudHM6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestBuilder = exports.addMetadataAssetsToManifest = void 0;\n__exportStar(require(\"./deployments\"), exports);\n__exportStar(require(\"./deployment-result\"), exports);\n// testing exports\n__exportStar(require(\"./checks\"), exports);\nvar assets_1 = require(\"./assets\");\nObject.defineProperty(exports, \"addMetadataAssetsToManifest\", { enumerable: true, get: function () { return assets_1.addMetadataAssetsToManifest; } });\nvar asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nObject.defineProperty(exports, \"AssetManifestBuilder\", { enumerable: true, get: function () { return asset_manifest_builder_1.AssetManifestBuilder; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QjtBQUM5QixzREFBb0M7QUFFcEMsa0JBQWtCO0FBQ2xCLDJDQUF5QjtBQUN6QixtQ0FBdUQ7QUFBOUMscUhBQUEsMkJBQTJCLE9BQUE7QUFDcEMsbUVBQWdFO0FBQXZELDhIQUFBLG9CQUFvQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZXBsb3ltZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveW1lbnQtcmVzdWx0JztcblxuLy8gdGVzdGluZyBleHBvcnRzXG5leHBvcnQgKiBmcm9tICcuL2NoZWNrcyc7XG5leHBvcnQgeyBhZGRNZXRhZGF0YUFzc2V0c1RvTWFuaWZlc3QgfSBmcm9tICcuL2Fzc2V0cyc7XG5leHBvcnQgeyBBc3NldE1hbmlmZXN0QnVpbGRlciB9IGZyb20gJy4vYXNzZXQtbWFuaWZlc3QtYnVpbGRlcic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffFormatter = void 0;\nconst node_util_1 = require(\"node:util\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst chalk = require(\"chalk\");\nconst payloads_1 = require(\"../../payloads\");\nconst streams_1 = require(\"../streams\");\n/**\n * Class for formatting the diff output\n */\nclass DiffFormatter {\n templateInfo;\n stackName;\n isImport;\n mappings;\n /**\n * Cache of computed TemplateDiffs, indexed by stack name.\n */\n cache = new Map();\n constructor(props) {\n this.templateInfo = props.templateInfo;\n this.stackName = props.templateInfo.newTemplate.displayName ?? props.templateInfo.newTemplate.stackName;\n this.isImport = props.templateInfo.isImport ?? false;\n this.mappings = props.templateInfo.mappings ?? {};\n }\n get diffs() {\n return Object.fromEntries(this.cache);\n }\n /**\n * Compute the diff for a single stack. Results are cached by stack name.\n *\n * @param stackName - The name to cache the diff under\n * @param oldTemplate - The deployed template\n * @param newTemplate - The new/generated template (read from the artifact)\n * @param changeSet - The CloudFormation changeset for this specific stack, if available\n * @param mappings - Resource move mappings\n */\n computeDiff(stackName, oldTemplate, newTemplate, changeSet, mappings) {\n if (!this.cache.has(stackName)) {\n const templateDiff = (0, cloudformation_diff_1.fullDiff)(oldTemplate, newTemplate, changeSet, this.isImport);\n const setMove = (change, direction, location) => {\n if (location != null) {\n const [sourceStackName, sourceLogicalId] = location.split('.');\n change.move = {\n direction,\n stackName: sourceStackName,\n resourceLogicalId: sourceLogicalId,\n };\n }\n };\n templateDiff.resources.forEachDifference((id, change) => {\n const location = `${stackName}.${id}`;\n if (change.isAddition && Object.values(mappings).includes(location)) {\n setMove(change, 'from', Object.keys(mappings).find(k => mappings[k] === location));\n }\n else if (change.isRemoval && Object.keys(mappings).includes(location)) {\n setMove(change, 'to', mappings[location]);\n }\n });\n this.cache.set(stackName, templateDiff);\n }\n return this.cache.get(stackName);\n }\n /**\n * Format the stack diff, including all nested stacks.\n */\n formatStackDiff(options = {}) {\n return this.formatStackDiffHelper({\n oldTemplate: this.templateInfo.oldTemplate,\n newTemplate: this.templateInfo.newTemplate.template,\n stackName: this.stackName,\n nestedStacks: this.templateInfo.nestedStacks,\n changeSet: this.templateInfo.changeSet,\n mappings: this.mappings,\n logicalIdMap: buildLogicalToPathMap(this.templateInfo.newTemplate),\n }, options);\n }\n formatStackDiffHelper(params, options = {}) {\n const { oldTemplate, newTemplate, stackName, nestedStacks, changeSet, mappings, logicalIdMap } = params;\n const diff = this.computeDiff(stackName, oldTemplate, newTemplate, changeSet, mappings);\n const stream = new streams_1.StringWriteStream();\n let numStacksWithChanges = 0;\n let formattedDiff = '';\n let filteredChangesCount = 0;\n try {\n // must output the stack name if there are differences, even if quiet\n if (stackName && (!options.quiet || !diff.isEmpty)) {\n stream.write((0, node_util_1.format)(`Stack ${chalk.bold(stackName)}\\n`));\n }\n if (!options.quiet && this.isImport) {\n stream.write('Parameters and rules created during migration do not affect resource configuration.\\n');\n }\n // detect and filter out mangled characters from the diff\n let activeDiff = diff;\n if (diff.differenceCount && !options.strict) {\n const mangledNewTemplate = JSON.parse((0, cloudformation_diff_1.mangleLikeCloudFormation)(JSON.stringify(newTemplate)));\n const mangledDiff = (0, cloudformation_diff_1.fullDiff)(oldTemplate, mangledNewTemplate, changeSet);\n filteredChangesCount = Math.max(0, diff.differenceCount - mangledDiff.differenceCount);\n if (filteredChangesCount > 0) {\n activeDiff = mangledDiff;\n }\n }\n // filter out 'AWS::CDK::Metadata' resources from the template\n // filter out 'CheckBootstrapVersion' rules from the template\n if (!options.strict) {\n obscureDiff(activeDiff);\n }\n if (!activeDiff.isEmpty) {\n numStacksWithChanges++;\n (0, cloudformation_diff_1.formatDifferences)(stream, activeDiff, {\n ...logicalIdMapFromTemplate(oldTemplate),\n ...logicalIdMapFromTemplate(newTemplate),\n ...logicalIdMap,\n }, options.contextLines);\n }\n else if (!options.quiet) {\n stream.write(chalk.green('There were no differences\\n'));\n }\n if (filteredChangesCount > 0) {\n stream.write(chalk.yellow(`Omitted ${filteredChangesCount} changes because they are likely mangled non-ASCII characters. Use --strict to print them.\\n`));\n }\n }\n finally {\n formattedDiff = stream.toString();\n stream.end();\n }\n // Recurse into nested stacks\n for (const [logicalId, nestedStack] of Object.entries(nestedStacks ?? {})) {\n const nextDiff = this.formatStackDiffHelper({\n oldTemplate: nestedStack.deployedTemplate,\n newTemplate: nestedStack.generatedTemplate,\n stackName: nestedStack.physicalName ?? logicalId,\n nestedStacks: nestedStack.nestedStackTemplates,\n changeSet: nestedStack.changeSet,\n mappings,\n logicalIdMap: {},\n }, options);\n numStacksWithChanges += nextDiff.numStacksWithChanges;\n formattedDiff += nextDiff.formattedDiff;\n }\n return { numStacksWithChanges, formattedDiff };\n }\n /**\n * Format the security diff, including all nested stacks.\n */\n formatSecurityDiff(options = {}) {\n const { formattedDiff, permissionChangeType, numStacksWithChanges } = this.formatSecurityDiffHelper({\n oldTemplate: this.templateInfo.oldTemplate,\n newTemplate: this.templateInfo.newTemplate.template,\n stackName: this.stackName,\n nestedStacks: this.templateInfo.nestedStacks,\n changeSet: this.templateInfo.changeSet,\n logicalIdMap: buildLogicalToPathMap(this.templateInfo.newTemplate),\n }, options);\n return { formattedDiff, permissionChangeType, numStacksWithChanges };\n }\n formatSecurityDiffHelper(params, options = {}) {\n const { oldTemplate, newTemplate, stackName, nestedStacks, changeSet, logicalIdMap } = params;\n const diff = this.computeDiff(stackName, oldTemplate, newTemplate, changeSet, this.mappings);\n const permissionChangeType = permissionTypeFromDiff(diff);\n const stream = new streams_1.StringWriteStream();\n if (!options.quiet || permissionChangeType !== payloads_1.PermissionChangeType.NONE) {\n stream.write((0, node_util_1.format)(`Stack ${chalk.bold(stackName)}\\n`));\n }\n try {\n (0, cloudformation_diff_1.formatSecurityChanges)(stream, diff, {\n ...logicalIdMapFromTemplate(newTemplate),\n ...logicalIdMap,\n });\n }\n finally {\n stream.end();\n }\n let formattedDiff = stream.toString();\n if (!options.quiet && permissionChangeType === payloads_1.PermissionChangeType.NONE) {\n formattedDiff += chalk.green('There were no security-related changes (limitations: https://github.com/aws/aws-cdk/issues/1299)\\n');\n }\n let numStacksWithChanges = permissionChangeType !== payloads_1.PermissionChangeType.NONE ? 1 : 0;\n let escalatedPermissionType = permissionChangeType;\n // Recurse into nested stacks\n for (const [logicalId, nestedStack] of Object.entries(nestedStacks ?? {})) {\n const nestedResult = this.formatSecurityDiffHelper({\n oldTemplate: nestedStack.deployedTemplate,\n newTemplate: nestedStack.generatedTemplate,\n stackName: nestedStack.physicalName ?? logicalId,\n nestedStacks: nestedStack.nestedStackTemplates,\n changeSet: nestedStack.changeSet,\n }, options);\n formattedDiff += nestedResult.formattedDiff ? '\\n' + nestedResult.formattedDiff : '';\n numStacksWithChanges += nestedResult.numStacksWithChanges;\n // Escalate: if any nested stack broadens permissions, the whole thing broadens\n if (nestedResult.permissionChangeType === payloads_1.PermissionChangeType.BROADENING) {\n escalatedPermissionType = payloads_1.PermissionChangeType.BROADENING;\n }\n else if (nestedResult.permissionChangeType === payloads_1.PermissionChangeType.NON_BROADENING\n && escalatedPermissionType === payloads_1.PermissionChangeType.NONE) {\n escalatedPermissionType = payloads_1.PermissionChangeType.NON_BROADENING;\n }\n }\n return { formattedDiff, permissionChangeType: escalatedPermissionType, numStacksWithChanges };\n }\n}\nexports.DiffFormatter = DiffFormatter;\nfunction permissionTypeFromDiff(diff) {\n if (diff.permissionsBroadened) {\n return payloads_1.PermissionChangeType.BROADENING;\n }\n else if (diff.permissionsAnyChanges) {\n return payloads_1.PermissionChangeType.NON_BROADENING;\n }\n return payloads_1.PermissionChangeType.NONE;\n}\nfunction buildLogicalToPathMap(stack) {\n const map = {};\n for (const md of stack.findMetadataByType(cxschema.ArtifactMetadataEntryType.LOGICAL_ID)) {\n map[md.data] = md.path;\n }\n return map;\n}\nfunction logicalIdMapFromTemplate(template) {\n const ret = {};\n for (const [logicalId, resource] of Object.entries((template.Resources ?? {}))) {\n const path = resource?.Metadata?.['aws:cdk:path'];\n if (path) {\n ret[logicalId] = path;\n }\n }\n return ret;\n}\n/**\n * Remove any template elements that we don't want to show users.\n * This is currently:\n * - AWS::CDK::Metadata resource\n * - CheckBootstrapVersion Rule\n */\nfunction obscureDiff(diff) {\n if (diff.unknown) {\n // see https://github.com/aws/aws-cdk/issues/17942\n diff.unknown = diff.unknown.filter(change => {\n if (!change) {\n return true;\n }\n if (change.newValue?.CheckBootstrapVersion) {\n return false;\n }\n if (change.oldValue?.CheckBootstrapVersion) {\n return false;\n }\n return true;\n });\n }\n if (diff.resources) {\n diff.resources = diff.resources.filter(change => {\n if (!change) {\n return true;\n }\n if (change.newResourceType === 'AWS::CDK::Metadata') {\n return false;\n }\n if (change.oldResourceType === 'AWS::CDK::Metadata') {\n return false;\n }\n return true;\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBbUM7QUFFbkMsMkRBQTJEO0FBQzNELHNFQVFzQztBQUN0QywrQkFBK0I7QUFDL0IsNkNBQXNEO0FBRXRELHdDQUErQztBQTBJL0M7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDUCxZQUFZLENBQWU7SUFDM0IsU0FBUyxDQUFTO0lBQ2xCLFFBQVEsQ0FBVTtJQUNsQixRQUFRLENBQXlCO0lBRWxEOztPQUVHO0lBQ2MsS0FBSyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBRXpELFlBQVksS0FBeUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN4RyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxXQUFXLENBQ2pCLFNBQWlCLEVBQ2pCLFdBQXFCLEVBQ3JCLFdBQXFCLEVBQ3JCLFNBQThDLEVBQzlDLFFBQWdDO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sWUFBWSxHQUFHLElB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QU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxlQUFlLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztnQkFDcEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3BELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHtcbiAgZm9ybWF0RGlmZmVyZW5jZXMsXG4gIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyxcbiAgZnVsbERpZmYsXG4gIG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbixcbiAgdHlwZSBEZXNjcmliZUNoYW5nZVNldE91dHB1dCxcbiAgdHlwZSBSZXNvdXJjZURpZmZlcmVuY2UsXG4gIHR5cGUgVGVtcGxhdGVEaWZmLFxufSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IFBlcm1pc3Npb25DaGFuZ2VUeXBlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHR5cGUgeyBOZXN0ZWRTdGFja1RlbXBsYXRlcywgVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBTdHJpbmdXcml0ZVN0cmVhbSB9IGZyb20gJy4uL3N0cmVhbXMnO1xuXG4vKipcbiAqIE91dHB1dCBvZiBmb3JtYXRTZWN1cml0eURpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFNlY3VyaXR5RGlmZk91dHB1dCB7XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgc2VjdXJpdHkgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwZXJtaXNzaW9uIGNoYW5nZXMgaW4gdGhlIHNlY3VyaXR5IGRpZmYuXG4gICAqIFRoZSBJb0hvc3Qgd2lsbCB1c2UgdGhpcyB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gcHJpbnQuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogUGVybWlzc2lvbkNoYW5nZVR5cGU7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBzdGFja3Mgd2l0aCBzZWN1cml0eSBjaGFuZ2VzXG4gICAqL1xuICByZWFkb25seSBudW1TdGFja3NXaXRoQ2hhbmdlczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE91dHB1dCBvZiBmb3JtYXRTdGFja0RpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFN0YWNrRGlmZk91dHB1dCB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2Ygc3RhY2tzIHdpdGggZGlmZiBjaGFuZ2VzXG4gICAqL1xuICByZWFkb25seSBudW1TdGFja3NXaXRoQ2hhbmdlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgRGlmZiBGb3JtYXR0ZXJcbiAqL1xuaW50ZXJmYWNlIERpZmZGb3JtYXR0ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIHRoZSBUZW1wbGF0ZSB0aGF0IGlzIGJlaW5nIGRpZmZlZC5cbiAgICogSW5jbHVkZXMgdGhlIG9sZC9jdXJyZW50IHN0YXRlIG9mIHRoZSBzdGFjayBhcyB3ZWxsIGFzIHRoZSBuZXcgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZUluZm86IFRlbXBsYXRlSW5mbztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHNwZWNpZmljIHRvIGZvcm1hdHRpbmcgdGhlIHN0YWNrIGRpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFN0YWNrRGlmZk9wdGlvbnMge1xuICAvKipcbiAgICogZG8gbm90IGZpbHRlciBvdXQgQVdTOjpDREs6Ok1ldGFkYXRhIG9yIFJ1bGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdHJpY3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBsaW5lcyBvZiBjb250ZXh0IHRvIHVzZSBpbiBhcmJpdHJhcnkgSlNPTiBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogc2lsZW5jZXMgXFwnVGhlcmUgd2VyZSBubyBkaWZmZXJlbmNlc1xcJyBtZXNzYWdlc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUmV1c2FibGVTdGFja0RpZmZPcHRpb25zIGV4dGVuZHMgRm9ybWF0U3RhY2tEaWZmT3B0aW9ucyB7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBzcGVjaWZpYyB0byBmb3JtYXR0aW5nIHRoZSBzZWN1cml0eSBkaWZmXG4gKi9cbmludGVyZmFjZSBGb3JtYXRTZWN1cml0eURpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIHNpbGVuY2VzIHN0YWNrIG5hbWVzIGFuZCAnbm8gY2hhbmdlcycgbWVzc2FnZXMgZm9yIHN0YWNrcyB3aXRob3V0IHNlY3VyaXR5IGNoYW5nZXNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBvbiBhIHRlbXBsYXRlJ3Mgb2xkL25ldyBzdGF0ZVxuICogdGhhdCBpcyB1c2VkIGZvciBkaWZmLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgb2xkL2V4aXN0aW5nIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBvbGRUZW1wbGF0ZTogVGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuZXcgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IG5ld1RlbXBsYXRlOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIEEgQ2xvdWRGb3JtYXRpb24gQ2hhbmdlU2V0IHRvIGhlbHAgdGhlIGRpZmYgb3BlcmF0aW9uLlxuICAgKiBQcm9iYWJseSBjcmVhdGVkIHZpYSBgY3JlYXRlRGlmZkNoYW5nZVNldGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBhbnkgaW1wb3J0ZWQgcmVzb3VyY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpc0ltcG9ydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFueSBuZXN0ZWQgc3RhY2tzIGluY2x1ZGVkIGluIHRoZSB0ZW1wbGF0ZVxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tzPzoge1xuICAgIFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1hcHBpbmdzIG9mIG9sZCBsb2NhdGlvbnMgdG8gbmV3IGxvY2F0aW9ucy4gSWYgdGhlc2UgYXJlIHByb3ZpZGVkLFxuICAgKiBmb3IgYWxsIHJlc291cmNlcyB0aGF0IHdlcmUgbW92ZWQsIHRoZWlyIGNvcnJlc3BvbmRpbmcgYWRkaXRpb25cbiAgICogYW5kIHJlbW92YWwgbGluZXMgd2lsbCBiZSBhdWdtZW50ZWQgd2l0aCB0aGUgbG9jYXRpb24gdGhleSB3ZXJlXG4gICAqIG1vdmVkIGZvbSBhbmQgdG8sIHJlc3BlY3RpdmVseS5cbiAgICovXG4gIHJlYWRvbmx5IG1hcHBpbmdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBDbGFzcyBmb3IgZm9ybWF0dGluZyB0aGUgZGlmZiBvdXRwdXRcbiAqL1xuZXhwb3J0IGNsYXNzIERpZmZGb3JtYXR0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlSW5mbzogVGVtcGxhdGVJbmZvO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzSW1wb3J0OiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IG1hcHBpbmdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBDYWNoZSBvZiBjb21wdXRlZCBUZW1wbGF0ZURpZmZzLCBpbmRleGVkIGJ5IHN0YWNrIG5hbWUuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFRlbXBsYXRlRGlmZj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogRGlmZkZvcm1hdHRlclByb3BzKSB7XG4gICAgdGhpcy50ZW1wbGF0ZUluZm8gPSBwcm9wcy50ZW1wbGF0ZUluZm87XG4gICAgdGhpcy5zdGFja05hbWUgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUuZGlzcGxheU5hbWUgPz8gcHJvcHMudGVtcGxhdGVJbmZvLm5ld1RlbXBsYXRlLnN0YWNrTmFtZTtcbiAgICB0aGlzLmlzSW1wb3J0ID0gcHJvcHMudGVtcGxhdGVJbmZvLmlzSW1wb3J0ID8/IGZhbHNlO1xuICAgIHRoaXMubWFwcGluZ3MgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubWFwcGluZ3MgPz8ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZzKCkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5jYWNoZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZSB0aGUgZGlmZiBmb3IgYSBzaW5nbGUgc3RhY2suIFJlc3VsdHMgYXJlIGNhY2hlZCBieSBzdGFjayBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhY2tOYW1lIC0gVGhlIG5hbWUgdG8gY2FjaGUgdGhlIGRpZmYgdW5kZXJcbiAgICogQHBhcmFtIG9sZFRlbXBsYXRlIC0gVGhlIGRlcGxveWVkIHRlbXBsYXRlXG4gICAqIEBwYXJhbSBuZXdUZW1wbGF0ZSAtIFRoZSBuZXcvZ2VuZXJhdGVkIHRlbXBsYXRlIChyZWFkIGZyb20gdGhlIGFydGlmYWN0KVxuICAgKiBAcGFyYW0gY2hhbmdlU2V0IC0gVGhlIENsb3VkRm9ybWF0aW9uIGNoYW5nZXNldCBmb3IgdGhpcyBzcGVjaWZpYyBzdGFjaywgaWYgYXZhaWxhYmxlXG4gICAqIEBwYXJhbSBtYXBwaW5ncyAtIFJlc291cmNlIG1vdmUgbWFwcGluZ3NcbiAgICovXG4gIHByaXZhdGUgY29tcHV0ZURpZmYoXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgb2xkVGVtcGxhdGU6IFRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBUZW1wbGF0ZSxcbiAgICBjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0IHwgdW5kZWZpbmVkLFxuICAgIG1hcHBpbmdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICApOiBUZW1wbGF0ZURpZmYge1xuICAgIGlmICghdGhpcy5jYWNoZS5oYXMoc3RhY2tOYW1lKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVEaWZmID0gZnVsbERpZmYob2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQsIHRoaXMuaXNJbXBvcnQpO1xuXG4gICAgICBjb25zdCBzZXRNb3ZlID0gKGNoYW5nZTogUmVzb3VyY2VEaWZmZXJlbmNlLCBkaXJlY3Rpb246ICdmcm9tJyB8ICd0bycsIGxvY2F0aW9uPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChsb2NhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgW3NvdXJjZVN0YWNrTmFtZSwgc291cmNlTG9naWNhbElkXSA9IGxvY2F0aW9uLnNwbGl0KCcuJyk7XG4gICAgICAgICAgY2hhbmdlLm1vdmUgPSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICBzdGFja05hbWU6IHNvdXJjZVN0YWNrTmFtZSxcbiAgICAgICAgICAgIHJlc291cmNlTG9naWNhbElkOiBzb3VyY2VMb2dpY2FsSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdGVtcGxhdGVEaWZmLnJlc291cmNlcy5mb3JFYWNoRGlmZmVyZW5jZSgoaWQsIGNoYW5nZSkgPT4ge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGAke3N0YWNrTmFtZX0uJHtpZH1gO1xuICAgICAgICBpZiAoY2hhbmdlLmlzQWRkaXRpb24gJiYgT2JqZWN0LnZhbHVlcyhtYXBwaW5ncykuaW5jbHVkZXMobG9jYXRpb24pKSB7XG4gICAgICAgICAgc2V0TW92ZShjaGFuZ2UsICdmcm9tJywgT2JqZWN0LmtleXMobWFwcGluZ3MpLmZpbmQoayA9PiBtYXBwaW5nc1trXSA9PT0gbG9jYXRpb24pKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNSZW1vdmFsICYmIE9iamVjdC5rZXlzKG1hcHBpbmdzKS5pbmNsdWRlcyhsb2NhdGlvbikpIHtcbiAgICAgICAgICBzZXRNb3ZlKGNoYW5nZSwgJ3RvJywgbWFwcGluZ3NbbG9jYXRpb25dKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY2FjaGUuc2V0KHN0YWNrTmFtZSwgdGVtcGxhdGVEaWZmKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHN0YWNrTmFtZSkhO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgc3RhY2sgZGlmZiwgaW5jbHVkaW5nIGFsbCBuZXN0ZWQgc3RhY2tzLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdFN0YWNrRGlmZihvcHRpb25zOiBGb3JtYXRTdGFja0RpZmZPcHRpb25zID0ge30pOiBGb3JtYXRTdGFja0RpZmZPdXRwdXQge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFN0YWNrRGlmZkhlbHBlcih7XG4gICAgICBvbGRUZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZUluZm8ub2xkVGVtcGxhdGUsXG4gICAgICBuZXdUZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUudGVtcGxhdGUsXG4gICAgICBzdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgbmVzdGVkU3RhY2tzOiB0aGlzLnRlbXBsYXRlSW5mby5uZXN0ZWRTdGFja3MsXG4gICAgICBjaGFuZ2VTZXQ6IHRoaXMudGVtcGxhdGVJbmZvLmNoYW5nZVNldCxcbiAgICAgIG1hcHBpbmdzOiB0aGlzLm1hcHBpbmdzLFxuICAgICAgbG9naWNhbElkTWFwOiBidWlsZExvZ2ljYWxUb1BhdGhNYXAodGhpcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUpLFxuICAgIH0sIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRTdGFja0RpZmZIZWxwZXIocGFyYW1zOiB7XG4gICAgb2xkVGVtcGxhdGU6IFRlbXBsYXRlO1xuICAgIG5ld1RlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgICBzdGFja05hbWU6IHN0cmluZztcbiAgICBuZXN0ZWRTdGFja3M6IHsgW25lc3RlZFN0YWNrTG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9IHwgdW5kZWZpbmVkO1xuICAgIGNoYW5nZVNldDogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgfCB1bmRlZmluZWQ7XG4gICAgbWFwcGluZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgbG9naWNhbElkTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICB9LCBvcHRpb25zOiBSZXVzYWJsZVN0YWNrRGlmZk9wdGlvbnMgPSB7fSk6IEZvcm1hdFN0YWNrRGlmZk91dHB1dCB7XG4gICAgY29uc3QgeyBvbGRUZW1wbGF0ZSwgbmV3VGVtcGxhdGUsIHN0YWNrTmFtZSwgbmVzdGVkU3RhY2tzLCBjaGFuZ2VTZXQsIG1hcHBpbmdzLCBsb2dpY2FsSWRNYXAgfSA9IHBhcmFtcztcblxuICAgIGNvbnN0IGRpZmYgPSB0aGlzLmNvbXB1dGVEaWZmKHN0YWNrTmFtZSwgb2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQsIG1hcHBpbmdzKTtcblxuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuICAgIGxldCBudW1TdGFja3NXaXRoQ2hhbmdlcyA9IDA7XG4gICAgbGV0IGZvcm1hdHRlZERpZmYgPSAnJztcbiAgICBsZXQgZmlsdGVyZWRDaGFuZ2VzQ291bnQgPSAwO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIG11c3Qgb3V0cHV0IHRoZSBzdGFjayBuYW1lIGlmIHRoZXJlIGFyZSBkaWZmZXJlbmNlcywgZXZlbiBpZiBxdWlldFxuICAgICAgaWYgKHN0YWNrTmFtZSAmJiAoIW9wdGlvbnMucXVpZXQgfHwgIWRpZmYuaXNFbXB0eSkpIHtcbiAgICAgICAgc3RyZWFtLndyaXRlKGZvcm1hdChgU3RhY2sgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9XFxuYCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9wdGlvbnMucXVpZXQgJiYgdGhpcy5pc0ltcG9ydCkge1xuICAgICAgICBzdHJlYW0ud3JpdGUoJ1BhcmFtZXRlcnMgYW5kIHJ1bGVzIGNyZWF0ZWQgZHVyaW5nIG1pZ3JhdGlvbiBkbyBub3QgYWZmZWN0IHJlc291cmNlIGNvbmZpZ3VyYXRpb24uXFxuJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRldGVjdCBhbmQgZmlsdGVyIG91dCBtYW5nbGVkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZGlmZlxuICAgICAgbGV0IGFjdGl2ZURpZmYgPSBkaWZmO1xuICAgICAgaWYgKGRpZmYuZGlmZmVyZW5jZUNvdW50ICYmICFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBjb25zdCBtYW5nbGVkTmV3VGVtcGxhdGUgPSBKU09OLnBhcnNlKG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbihKU09OLnN0cmluZ2lmeShuZXdUZW1wbGF0ZSkpKTtcbiAgICAgICAgY29uc3QgbWFuZ2xlZERpZmYgPSBmdWxsRGlmZihvbGRUZW1wbGF0ZSwgbWFuZ2xlZE5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQpO1xuICAgICAgICBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IE1hdGgubWF4KDAsIGRpZmYuZGlmZmVyZW5jZUNvdW50IC0gbWFuZ2xlZERpZmYuZGlmZmVyZW5jZUNvdW50KTtcbiAgICAgICAgaWYgKGZpbHRlcmVkQ2hhbmdlc0NvdW50ID4gMCkge1xuICAgICAgICAgIGFjdGl2ZURpZmYgPSBtYW5nbGVkRGlmZjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBmaWx0ZXIgb3V0ICdBV1M6OkNESzo6TWV0YWRhdGEnIHJlc291cmNlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgLy8gZmlsdGVyIG91dCAnQ2hlY2tCb290c3RyYXBWZXJzaW9uJyBydWxlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKCFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBvYnNjdXJlRGlmZihhY3RpdmVEaWZmKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFhY3RpdmVEaWZmLmlzRW1wdHkpIHtcbiAgICAgICAgbnVtU3RhY2tzV2l0aENoYW5nZXMrKztcblxuICAgICAgICBmb3JtYXREaWZmZXJlbmNlcyhzdHJlYW0sIGFjdGl2ZURpZmYsIHtcbiAgICAgICAgICAuLi5sb2dpY2FsSWRNYXBGcm9tVGVtcGxhdGUob2xkVGVtcGxhdGUpLFxuICAgICAgICAgIC4uLmxvZ2ljYWxJZE1hcEZyb21UZW1wbGF0ZShuZXdUZW1wbGF0ZSksXG4gICAgICAgICAgLi4ubG9naWNhbElkTWFwLFxuICAgICAgICB9LCBvcHRpb25zLmNvbnRleHRMaW5lcyk7XG4gICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLnF1aWV0KSB7XG4gICAgICAgIHN0cmVhbS53cml0ZShjaGFsay5ncmVlbignVGhlcmUgd2VyZSBubyBkaWZmZXJlbmNlc1xcbicpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbHRlcmVkQ2hhbmdlc0NvdW50ID4gMCkge1xuICAgICAgICBzdHJlYW0ud3JpdGUoY2hhbGsueWVsbG93KGBPbWl0dGVkICR7ZmlsdGVyZWRDaGFuZ2VzQ291bnR9IGNoYW5nZXMgYmVjYXVzZSB0aGV5IGFyZSBsaWtlbHkgbWFuZ2xlZCBub24tQVNDSUkgY2hhcmFjdGVycy4gVXNlIC0tc3RyaWN0IHRvIHByaW50IHRoZW0uXFxuYCkpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBmb3JtYXR0ZWREaWZmID0gc3RyZWFtLnRvU3RyaW5nKCk7XG4gICAgICBzdHJlYW0uZW5kKCk7XG4gICAgfVxuXG4gICAgLy8gUmVjdXJzZSBpbnRvIG5lc3RlZCBzdGFja3NcbiAgICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIG5lc3RlZFN0YWNrXSBvZiBPYmplY3QuZW50cmllcyhuZXN0ZWRTdGFja3MgPz8ge30pKSB7XG4gICAgICBjb25zdCBuZXh0RGlmZiA9IHRoaXMuZm9ybWF0U3RhY2tEaWZmSGVscGVyKHtcbiAgICAgICAgb2xkVGVtcGxhdGU6IG5lc3RlZFN0YWNrLmRlcGxveWVkVGVtcGxhdGUsXG4gICAgICAgIG5ld1RlbXBsYXRlOiBuZXN0ZWRTdGFjay5nZW5lcmF0ZWRUZW1wbGF0ZSxcbiAgICAgICAgc3RhY2tOYW1lOiBuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUgPz8gbG9naWNhbElkLFxuICAgICAgICBuZXN0ZWRTdGFja3M6IG5lc3RlZFN0YWNrLm5lc3RlZFN0YWNrVGVtcGxhdGVzLFxuICAgICAgICBjaGFuZ2VTZXQ6IG5lc3RlZFN0YWNrLmNoYW5nZVNldCxcbiAgICAgICAgbWFwcGluZ3MsXG4gICAgICAgIGxvZ2ljYWxJZE1hcDoge30sXG4gICAgICB9LCBvcHRpb25zKTtcbiAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzICs9IG5leHREaWZmLm51bVN0YWNrc1dpdGhDaGFuZ2VzO1xuICAgICAgZm9ybWF0dGVkRGlmZiArPSBuZXh0RGlmZi5mb3JtYXR0ZWREaWZmO1xuICAgIH1cblxuICAgIHJldHVybiB7IG51bVN0YWNrc1dpdGhDaGFuZ2VzLCBmb3JtYXR0ZWREaWZmIH07XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IHRoZSBzZWN1cml0eSBkaWZmLCBpbmNsdWRpbmcgYWxsIG5lc3RlZCBzdGFja3MuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0U2VjdXJpdHlEaWZmKG9wdGlvbnM6IEZvcm1hdFNlY3VyaXR5RGlmZk9wdGlvbnMgPSB7fSk6IEZvcm1hdFNlY3VyaXR5RGlmZk91dHB1dCB7XG4gICAgY29uc3QgeyBmb3JtYXR0ZWREaWZmLCBwZXJtaXNzaW9uQ2hhbmdlVHlwZSwgbnVtU3RhY2tzV2l0aENoYW5nZXMgfSA9IHRoaXMuZm9ybWF0U2VjdXJpdHlEaWZmSGVscGVyKHtcbiAgICAgIG9sZFRlbXBsYXRlOiB0aGlzLnRlbXBsYXRlSW5mby5vbGRUZW1wbGF0ZSxcbiAgICAgIG5ld1RlbXBsYXRlOiB0aGlzLnRlbXBsYXRlSW5mby5uZXdUZW1wbGF0ZS50ZW1wbGF0ZSxcbiAgICAgIHN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICBuZXN0ZWRTdGFja3M6IHRoaXMudGVtcGxhdGVJbmZvLm5lc3RlZFN0YWNrcyxcbiAgICAgIGNoYW5nZVNldDogdGhpcy50ZW1wbGF0ZUluZm8uY2hhbmdlU2V0LFxuICAgICAgbG9naWNhbElkTWFwOiBidWlsZExvZ2ljYWxUb1BhdGhNYXAodGhpcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUpLFxuICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHsgZm9ybWF0dGVkRGlmZiwgcGVybWlzc2lvbkNoYW5nZVR5cGUsIG51bVN0YWNrc1dpdGhDaGFuZ2VzIH07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFNlY3VyaXR5RGlmZkhlbHBlcihwYXJhbXM6IHtcbiAgICBvbGRUZW1wbGF0ZTogVGVtcGxhdGU7XG4gICAgbmV3VGVtcGxhdGU6IFRlbXBsYXRlO1xuICAgIHN0YWNrTmFtZTogc3RyaW5nO1xuICAgIG5lc3RlZFN0YWNrczogeyBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gfCB1bmRlZmluZWQ7XG4gICAgY2hhbmdlU2V0OiBEZXNjcmliZUNoYW5nZVNldE91dHB1dCB8IHVuZGVmaW5lZDtcbiAgICBsb2dpY2FsSWRNYXA/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICB9LCBvcHRpb25zOiBGb3JtYXRTZWN1cml0eURpZmZPcHRpb25zID0ge30pOiBGb3JtYXRTZWN1cml0eURpZmZPdXRwdXQge1xuICAgIGNvbnN0IHsgb2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBzdGFja05hbWUsIG5lc3RlZFN0YWNrcywgY2hhbmdlU2V0LCBsb2dpY2FsSWRNYXAgfSA9IHBhcmFtcztcblxuICAgIGNvbnN0IGRpZmYgPSB0aGlzLmNvbXB1dGVEaWZmKHN0YWNrTmFtZSwgb2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQsIHRoaXMubWFwcGluZ3MpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25DaGFuZ2VUeXBlID0gcGVybWlzc2lvblR5cGVGcm9tRGlmZihkaWZmKTtcblxuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuICAgIGlmICghb3B0aW9ucy5xdWlldCB8fCBwZXJtaXNzaW9uQ2hhbmdlVHlwZSAhPT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORSkge1xuICAgICAgc3RyZWFtLndyaXRlKGZvcm1hdChgU3RhY2sgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9XFxuYCkpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBmb3JtYXRTZWN1cml0eUNoYW5nZXMoc3RyZWFtLCBkaWZmLCB7XG4gICAgICAgIC4uLmxvZ2ljYWxJZE1hcEZyb21UZW1wbGF0ZShuZXdUZW1wbGF0ZSksXG4gICAgICAgIC4uLmxvZ2ljYWxJZE1hcCxcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzdHJlYW0uZW5kKCk7XG4gICAgfVxuXG4gICAgbGV0IGZvcm1hdHRlZERpZmYgPSBzdHJlYW0udG9TdHJpbmcoKTtcbiAgICBpZiAoIW9wdGlvbnMucXVpZXQgJiYgcGVybWlzc2lvbkNoYW5nZVR5cGUgPT09IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTkUpIHtcbiAgICAgIGZvcm1hdHRlZERpZmYgKz0gY2hhbGsuZ3JlZW4oJ1RoZXJlIHdlcmUgbm8gc2VjdXJpdHktcmVsYXRlZCBjaGFuZ2VzIChsaW1pdGF0aW9uczogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMjk5KVxcbicpO1xuICAgIH1cbiAgICBsZXQgbnVtU3RhY2tzV2l0aENoYW5nZXMgPSBwZXJtaXNzaW9uQ2hhbmdlVHlwZSAhPT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORSA/IDEgOiAwO1xuICAgIGxldCBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSA9IHBlcm1pc3Npb25DaGFuZ2VUeXBlO1xuXG4gICAgLy8gUmVjdXJzZSBpbnRvIG5lc3RlZCBzdGFja3NcbiAgICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIG5lc3RlZFN0YWNrXSBvZiBPYmplY3QuZW50cmllcyhuZXN0ZWRTdGFja3MgPz8ge30pKSB7XG4gICAgICBjb25zdCBuZXN0ZWRSZXN1bHQgPSB0aGlzLmZvcm1hdFNlY3VyaXR5RGlmZkhlbHBlcih7XG4gICAgICAgIG9sZFRlbXBsYXRlOiBuZXN0ZWRTdGFjay5kZXBsb3llZFRlbXBsYXRlLFxuICAgICAgICBuZXdUZW1wbGF0ZTogbmVzdGVkU3RhY2suZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICAgICAgIHN0YWNrTmFtZTogbmVzdGVkU3RhY2sucGh5c2ljYWxOYW1lID8/IGxvZ2ljYWxJZCxcbiAgICAgICAgbmVzdGVkU3RhY2tzOiBuZXN0ZWRTdGFjay5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICAgICAgY2hhbmdlU2V0OiBuZXN0ZWRTdGFjay5jaGFuZ2VTZXQsXG4gICAgICB9LCBvcHRpb25zKTtcbiAgICAgIGZvcm1hdHRlZERpZmYgKz0gbmVzdGVkUmVzdWx0LmZvcm1hdHRlZERpZmYgPyAnXFxuJyArIG5lc3RlZFJlc3VsdC5mb3JtYXR0ZWREaWZmIDogJyc7XG4gICAgICBudW1TdGFja3NXaXRoQ2hhbmdlcyArPSBuZXN0ZWRSZXN1bHQubnVtU3RhY2tzV2l0aENoYW5nZXM7XG4gICAgICAvLyBFc2NhbGF0ZTogaWYgYW55IG5lc3RlZCBzdGFjayBicm9hZGVucyBwZXJtaXNzaW9ucywgdGhlIHdob2xlIHRoaW5nIGJyb2FkZW5zXG4gICAgICBpZiAobmVzdGVkUmVzdWx0LnBlcm1pc3Npb25DaGFuZ2VUeXBlID09PSBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5CUk9BREVOSU5HKSB7XG4gICAgICAgIGVzY2FsYXRlZFBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvbkNoYW5nZVR5cGUuQlJPQURFTklORztcbiAgICAgIH0gZWxzZSBpZiAobmVzdGVkUmVzdWx0LnBlcm1pc3Npb25DaGFuZ2VUeXBlID09PSBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5OT05fQlJPQURFTklOR1xuICAgICAgICAmJiBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSA9PT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORSkge1xuICAgICAgICBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSA9IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTl9CUk9BREVOSU5HO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGZvcm1hdHRlZERpZmYsIHBlcm1pc3Npb25DaGFuZ2VUeXBlOiBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSwgbnVtU3RhY2tzV2l0aENoYW5nZXMgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwZXJtaXNzaW9uVHlwZUZyb21EaWZmKGRpZmY6IFRlbXBsYXRlRGlmZik6IFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgaWYgKGRpZmYucGVybWlzc2lvbnNCcm9hZGVuZWQpIHtcbiAgICByZXR1cm4gUGVybWlzc2lvbkNoYW5nZVR5cGUuQlJPQURFTklORztcbiAgfSBlbHNlIGlmIChkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcykge1xuICAgIHJldHVybiBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5OT05fQlJPQURFTklORztcbiAgfVxuICByZXR1cm4gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMb2dpY2FsVG9QYXRoTWFwKHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpIHtcbiAgY29uc3QgbWFwOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgZm9yIChjb25zdCBtZCBvZiBzdGFjay5maW5kTWV0YWRhdGFCeVR5cGUoY3hzY2hlbWEuQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5MT0dJQ0FMX0lEKSkge1xuICAgIG1hcFttZC5kYXRhIGFzIHN0cmluZ10gPSBtZC5wYXRoO1xuICB9XG4gIHJldHVybiBtYXA7XG59XG5cbmZ1bmN0aW9uIGxvZ2ljYWxJZE1hcEZyb21UZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGUpIHtcbiAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgZm9yIChjb25zdCBbbG9naWNhbElkLCByZXNvdXJjZV0gb2YgT2JqZWN0LmVudHJpZXMoKHRlbXBsYXRlLlJlc291cmNlcyA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgYW55PikpIHtcbiAgICBjb25zdCBwYXRoID0gcmVzb3VyY2U/Lk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddO1xuICAgIGlmIChwYXRoKSB7XG4gICAgICByZXRbbG9naWNhbElkXSA9IHBhdGg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGFueSB0ZW1wbGF0ZSBlbGVtZW50cyB0aGF0IHdlIGRvbid0IHdhbnQgdG8gc2hvdyB1c2Vycy5cbiAqIFRoaXMgaXMgY3VycmVudGx5OlxuICogLSBBV1M6OkNESzo6TWV0YWRhdGEgcmVzb3VyY2VcbiAqIC0gQ2hlY2tCb290c3RyYXBWZXJzaW9uIFJ1bGVcbiAqL1xuZnVuY3Rpb24gb2JzY3VyZURpZmYoZGlmZjogVGVtcGxhdGVEaWZmKSB7XG4gIGlmIChkaWZmLnVua25vd24pIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNzk0MlxuICAgIGRpZmYudW5rbm93biA9IGRpZmYudW5rbm93bi5maWx0ZXIoY2hhbmdlID0+IHtcbiAgICAgIGlmICghY2hhbmdlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZS5uZXdWYWx1ZT8uQ2hlY2tCb290c3RyYXBWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2Uub2xkVmFsdWU/LkNoZWNrQm9vdHN0cmFwVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChkaWZmLnJlc291cmNlcykge1xuICAgIGRpZmYucmVzb3VyY2VzID0gZGlmZi5yZXNvdXJjZXMuZmlsdGVyKGNoYW5nZSA9PiB7XG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2UubmV3UmVzb3VyY2VUeXBlID09PSAnQVdTOjpDREs6Ok1ldGFkYXRhJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlLm9sZFJlc291cmNlVHlwZSA9PT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./diff-formatter\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWZmLWZvcm1hdHRlcic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DriftFormatter = void 0;\nconst node_util_1 = require(\"node:util\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\nconst chalk = require(\"chalk\");\n/**\n * Class for formatting drift detection output\n */\nclass DriftFormatter {\n stackName;\n stack;\n resourceDriftResults;\n allStackResources;\n constructor(props) {\n this.stack = props.stack;\n this.stackName = props.stack.displayName ?? props.stack.stackName;\n this.resourceDriftResults = props.resourceDrifts;\n this.allStackResources = new Map();\n Object.keys(this.stack.template.Resources || {}).forEach(id => {\n const resource = this.stack.template.Resources[id];\n // always ignore the metadata resource\n if (resource.Type === 'AWS::CDK::Metadata') {\n return;\n }\n this.allStackResources.set(id, resource.Type);\n });\n }\n /**\n * Format the stack drift detection results\n */\n formatStackDrift() {\n const formatterOutput = this.formatStackDriftChanges(this.buildLogicalToPathMap());\n // we are only interested in actual drifts (and ignore the metadata resource)\n const actualDrifts = this.resourceDriftResults.filter(d => (d.StackResourceDriftStatus === 'MODIFIED' || d.StackResourceDriftStatus === 'DELETED')\n && d.ResourceType !== 'AWS::CDK::Metadata');\n // must output the stack name if there are drifts\n const stackHeader = (0, node_util_1.format)(`Stack ${chalk.bold(this.stackName)}\\n`);\n if (actualDrifts.length === 0) {\n const finalResult = chalk.green('No drift detected\\n');\n return {\n numResourcesWithDrift: 0,\n numResourcesUnchecked: this.allStackResources.size - this.resourceDriftResults.length,\n stackHeader,\n unchecked: formatterOutput.unchecked,\n summary: finalResult,\n };\n }\n const finalResult = chalk.yellow(`\\n${actualDrifts.length} resource${actualDrifts.length === 1 ? '' : 's'} ${actualDrifts.length === 1 ? 'has' : 'have'} drifted from their expected configuration\\n`);\n return {\n numResourcesWithDrift: actualDrifts.length,\n numResourcesUnchecked: this.allStackResources.size - this.resourceDriftResults.length,\n stackHeader,\n unchanged: formatterOutput.unchanged,\n unchecked: formatterOutput.unchecked,\n modified: formatterOutput.modified,\n deleted: formatterOutput.deleted,\n summary: finalResult,\n };\n }\n buildLogicalToPathMap() {\n const map = {};\n for (const md of this.stack.findMetadataByType(cxschema.ArtifactMetadataEntryType.LOGICAL_ID)) {\n map[md.data] = md.path;\n }\n return map;\n }\n /**\n * Renders stack drift information\n *\n * @param logicalToPathMap - A map from logical ID to construct path\n */\n formatStackDriftChanges(logicalToPathMap = {}) {\n if (this.resourceDriftResults.length === 0) {\n return {};\n }\n let unchanged;\n let unchecked;\n let modified;\n let deleted;\n const drifts = this.resourceDriftResults;\n // Process unchanged resources\n const unchangedResources = drifts.filter(d => d.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.IN_SYNC);\n if (unchangedResources.length > 0) {\n unchanged = this.printSectionHeader('Resources In Sync');\n for (const drift of unchangedResources) {\n if (!drift.LogicalResourceId || !drift.ResourceType)\n continue;\n unchanged += `${CONTEXT} ${chalk.cyan(drift.ResourceType)} ${this.formatLogicalId(logicalToPathMap, drift.LogicalResourceId)}\\n`;\n }\n unchanged += this.printSectionFooter();\n }\n // Process all unchecked and unknown resources\n const uncheckedResources = Array.from(this.allStackResources.keys()).filter((logicalId) => {\n const drift = drifts.find((d) => d.LogicalResourceId === logicalId);\n return !drift || drift.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.UNKNOWN;\n });\n if (uncheckedResources.length > 0) {\n unchecked = this.printSectionHeader('Unchecked Resources');\n for (const logicalId of uncheckedResources) {\n const resourceType = this.allStackResources.get(logicalId);\n unchecked += `${CONTEXT} ${chalk.cyan(resourceType)} ${this.formatLogicalId(logicalToPathMap, logicalId)}\\n`;\n }\n unchecked += this.printSectionFooter();\n }\n // Process modified resources (exclude AWS::CDK::Metadata)\n const modifiedResources = drifts.filter(d => d.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.MODIFIED\n && d.ResourceType !== 'AWS::CDK::Metadata');\n if (modifiedResources.length > 0) {\n modified = this.printSectionHeader('Modified Resources');\n for (const drift of modifiedResources) {\n if (!drift.LogicalResourceId || !drift.ResourceType)\n continue;\n modified += `${UPDATE} ${chalk.cyan(drift.ResourceType)} ${this.formatLogicalId(logicalToPathMap, drift.LogicalResourceId)}\\n`;\n if (drift.PropertyDifferences) {\n const propDiffs = drift.PropertyDifferences;\n for (let i = 0; i < propDiffs.length; i++) {\n const diff = propDiffs[i];\n if (!diff.PropertyPath)\n continue;\n const difference = new cloudformation_diff_1.Difference(diff.ExpectedValue, diff.ActualValue);\n modified += this.formatTreeDiff(diff.PropertyPath, difference, i === propDiffs.length - 1);\n }\n }\n }\n modified += this.printSectionFooter();\n }\n // Process deleted resources (exclude AWS::CDK::Metadata)\n const deletedResources = drifts.filter(d => d.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.DELETED\n && d.ResourceType !== 'AWS::CDK::Metadata');\n if (deletedResources.length > 0) {\n deleted = this.printSectionHeader('Deleted Resources');\n for (const drift of deletedResources) {\n if (!drift.LogicalResourceId || !drift.ResourceType)\n continue;\n deleted += `${REMOVAL} ${chalk.cyan(drift.ResourceType)} ${this.formatLogicalId(logicalToPathMap, drift.LogicalResourceId)}\\n`;\n }\n deleted += this.printSectionFooter();\n }\n return { unchanged, unchecked, modified, deleted };\n }\n formatLogicalId(logicalToPathMap, logicalId) {\n const path = logicalToPathMap[logicalId];\n if (!path)\n return logicalId;\n let normalizedPath = path;\n if (normalizedPath.startsWith('/')) {\n normalizedPath = normalizedPath.slice(1);\n }\n let parts = normalizedPath.split('/');\n if (parts.length > 1) {\n parts = parts.slice(1);\n // remove the last component if it's \"Resource\" or \"Default\" (if we have more than a single component)\n if (parts.length > 1) {\n const last = parts[parts.length - 1];\n if (last === 'Resource' || last === 'Default') {\n parts = parts.slice(0, parts.length - 1);\n }\n }\n normalizedPath = parts.join('/');\n }\n return `${normalizedPath} ${chalk.gray(logicalId)}`;\n }\n printSectionHeader(title) {\n return `${chalk.underline(chalk.bold(title))}\\n`;\n }\n printSectionFooter() {\n return '\\n';\n }\n formatTreeDiff(propertyPath, difference, isLast) {\n let result = (0, node_util_1.format)(' %s─ %s %s\\n', isLast ? '└' : '├', difference.isAddition ? ADDITION :\n difference.isRemoval ? REMOVAL :\n UPDATE, propertyPath);\n if (difference.isUpdate) {\n result += (0, node_util_1.format)(' ├─ %s %s\\n', REMOVAL, chalk.red(difference.oldValue));\n result += (0, node_util_1.format)(' └─ %s %s\\n', ADDITION, chalk.green(difference.newValue));\n }\n return result;\n }\n}\nexports.DriftFormatter = DriftFormatter;\nconst ADDITION = chalk.green('[+]');\nconst CONTEXT = chalk.grey('[ ]');\nconst UPDATE = chalk.yellow('[~]');\nconst REMOVAL = chalk.red('[-]');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZHJpZnQtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFtQztBQUVuQywyREFBMkQ7QUFDM0Qsc0VBQTBEO0FBRTFELDBFQUEwRTtBQUMxRSwrQkFBK0I7QUE4RC9COztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBQ1QsU0FBUyxDQUFTO0lBRWpCLEtBQUssQ0FBb0M7SUFDekMsb0JBQW9CLENBQXVCO0lBQzNDLGlCQUFpQixDQUFzQjtJQUV4RCxZQUFZLEtBQTBCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBRWpELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELHNDQUFzQztZQUN0QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztnQkFDM0MsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09B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QUFDLENBQUM7QUFDcEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IERpZmZlcmVuY2UgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSZXNvdXJjZURyaWZ0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEZvcm1hdHRlZERyaWZ0IH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kcmlmdCc7XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBEcmlmdCBGb3JtYXR0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcmlmdEZvcm1hdHRlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogVGhlIHJlc3VsdHMgb2Ygc3RhY2sgZHJpZnQgZGV0ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZURyaWZ0czogU3RhY2tSZXNvdXJjZURyaWZ0W107XG59XG5cbmludGVyZmFjZSBEcmlmdEZvcm1hdHRlck91dHB1dCB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcmVzb3VyY2VzIHdpdGggZHJpZnQuIElmIHVuZGVmaW5lZCwgdGhlbiBhbiBlcnJvciBvY2N1cnJlZFxuICAgKiBhbmQgcmVzb3VyY2VzIHdlcmUgbm90IHByb3Blcmx5IGNoZWNrZWQgZm9yIGRyaWZ0LlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtUmVzb3VyY2VzV2l0aERyaWZ0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IHJlc291cmNlcyB3ZXJlIG5vdCBjaGVja2VkIGZvciBkcmlmdC4gSWYgdW5kZWZpbmVkLCB0aGVuIGFuXG4gICAqIGVycm9yIG9jY3VycmVkIGFuZCByZXNvdXJjZXMgd2VyZSBub3QgcHJvcGVybHkgY2hlY2tlZCBmb3IgZHJpZnQuXG4gICAqL1xuICByZWFkb25seSBudW1SZXNvdXJjZXNVbmNoZWNrZWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHRoYXQgaGF2ZSBub3QgY2hhbmdlZFxuICAgKi9cbiAgcmVhZG9ubHkgdW5jaGFuZ2VkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCB3ZXJlIG5vdCBjaGVja2VkIGZvciBkcmlmdCBvciBoYXZlIGFuIFVOS05PV04gZHJpZnQgc3RhdHVzXG4gICAqL1xuICByZWFkb25seSB1bmNoZWNrZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB3aXRoIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSBtb2RpZmllZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQgKGRyaWZ0KVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhlYWRlciwgY29udGFpbmluZyB0aGUgc3RhY2sgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tIZWFkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbmFsIHJlc3VsdHMgKHN1bW1hcnkpIG9mIHRoZSBkcmlmdCByZXN1bHRzXG4gICAqL1xuICByZWFkb25seSBzdW1tYXJ5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2xhc3MgZm9yIGZvcm1hdHRpbmcgZHJpZnQgZGV0ZWN0aW9uIG91dHB1dFxuICovXG5leHBvcnQgY2xhc3MgRHJpZnRGb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlRHJpZnRSZXN1bHRzOiBTdGFja1Jlc291cmNlRHJpZnRbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxTdGFja1Jlc291cmNlczogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogRHJpZnRGb3JtYXR0ZXJQcm9wcykge1xuICAgIHRoaXMuc3RhY2sgPSBwcm9wcy5zdGFjaztcbiAgICB0aGlzLnN0YWNrTmFtZSA9IHByb3BzLnN0YWNrLmRpc3BsYXlOYW1lID8/IHByb3BzLnN0YWNrLnN0YWNrTmFtZTtcbiAgICB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzID0gcHJvcHMucmVzb3VyY2VEcmlmdHM7XG5cbiAgICB0aGlzLmFsbFN0YWNrUmVzb3VyY2VzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLnN0YWNrLnRlbXBsYXRlLlJlc291cmNlcyB8fCB7fSkuZm9yRWFjaChpZCA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMuc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzW2lkXTtcbiAgICAgIC8vIGFsd2F5cyBpZ25vcmUgdGhlIG1ldGFkYXRhIHJlc291cmNlXG4gICAgICBpZiAocmVzb3VyY2UuVHlwZSA9PT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hbGxTdGFja1Jlc291cmNlcy5zZXQoaWQsIHJlc291cmNlLlR5cGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgc3RhY2sgZHJpZnQgZGV0ZWN0aW9uIHJlc3VsdHNcbiAgICovXG4gIHB1YmxpYyBmb3JtYXRTdGFja0RyaWZ0KCk6IERyaWZ0Rm9ybWF0dGVyT3V0cHV0IHtcbiAgICBjb25zdCBmb3JtYXR0ZXJPdXRwdXQgPSB0aGlzLmZvcm1hdFN0YWNrRHJpZnRDaGFuZ2VzKHRoaXMuYnVpbGRMb2dpY2FsVG9QYXRoTWFwKCkpO1xuXG4gICAgLy8gd2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBhY3R1YWwgZHJpZnRzIChhbmQgaWdub3JlIHRoZSBtZXRhZGF0YSByZXNvdXJjZSlcbiAgICBjb25zdCBhY3R1YWxEcmlmdHMgPSB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzLmZpbHRlcihkID0+XG4gICAgICAoZC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09ICdNT0RJRklFRCcgfHwgZC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09ICdERUxFVEVEJylcbiAgICAgICYmIGQuUmVzb3VyY2VUeXBlICE9PSAnQVdTOjpDREs6Ok1ldGFkYXRhJyk7XG5cbiAgICAvLyBtdXN0IG91dHB1dCB0aGUgc3RhY2sgbmFtZSBpZiB0aGVyZSBhcmUgZHJpZnRzXG4gICAgY29uc3Qgc3RhY2tIZWFkZXIgPSBmb3JtYXQoYFN0YWNrICR7Y2hhbGsuYm9sZCh0aGlzLnN0YWNrTmFtZSl9XFxuYCk7XG5cbiAgICBpZiAoYWN0dWFsRHJpZnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgZmluYWxSZXN1bHQgPSBjaGFsay5ncmVlbignTm8gZHJpZnQgZGV0ZWN0ZWRcXG4nKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG51bVJlc291cmNlc1dpdGhEcmlmdDogMCxcbiAgICAgICAgbnVtUmVzb3VyY2VzVW5jaGVja2VkOiB0aGlzLmFsbFN0YWNrUmVzb3VyY2VzLnNpemUgLSB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzLmxlbmd0aCxcbiAgICAgICAgc3RhY2tIZWFkZXIsXG4gICAgICAgIHVuY2hlY2tlZDogZm9ybWF0dGVyT3V0cHV0LnVuY2hlY2tlZCxcbiAgICAgICAgc3VtbWFyeTogZmluYWxSZXN1bHQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmFsUmVzdWx0ID0gY2hhbGsueWVsbG93KGBcXG4ke2FjdHVhbERyaWZ0cy5sZW5ndGh9IHJlc291cmNlJHthY3R1YWxEcmlmdHMubGVuZ3RoID09PSAxID8gJycgOiAncyd9ICR7YWN0dWFsRHJpZnRzLmxlbmd0aCA9PT0gMSA/ICdoYXMnIDogJ2hhdmUnfSBkcmlmdGVkIGZyb20gdGhlaXIgZXhwZWN0ZWQgY29uZmlndXJhdGlvblxcbmApO1xuICAgIHJldHVybiB7XG4gICAgICBudW1SZXNvdXJjZXNXaXRoRHJpZnQ6IGFjdHVhbERyaWZ0cy5sZW5ndGgsXG4gICAgICBudW1SZXNvdXJjZXNVbmNoZWNrZWQ6IHRoaXMuYWxsU3RhY2tSZXNvdXJjZXMuc2l6ZSAtIHRoaXMucmVzb3VyY2VEcmlmdFJlc3VsdHMubGVuZ3RoLFxuICAgICAgc3RhY2tIZWFkZXIsXG4gICAgICB1bmNoYW5nZWQ6IGZvcm1hdHRlck91dHB1dC51bmNoYW5nZWQsXG4gICAgICB1bmNoZWNrZWQ6IGZvcm1hdHRlck91dHB1dC51bmNoZWNrZWQsXG4gICAgICBtb2RpZmllZDogZm9ybWF0dGVyT3V0cHV0Lm1vZGlmaWVkLFxuICAgICAgZGVsZXRlZDogZm9ybWF0dGVyT3V0cHV0LmRlbGV0ZWQsXG4gICAgICBzdW1tYXJ5OiBmaW5hbFJlc3VsdCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExvZ2ljYWxUb1BhdGhNYXAoKSB7XG4gICAgY29uc3QgbWFwOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IG1kIG9mIHRoaXMuc3RhY2suZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRCkpIHtcbiAgICAgIG1hcFttZC5kYXRhIGFzIHN0cmluZ10gPSBtZC5wYXRoO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgc3RhY2sgZHJpZnQgaW5mb3JtYXRpb25cbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxUb1BhdGhNYXAgLSBBIG1hcCBmcm9tIGxvZ2ljYWwgSUQgdG8gY29uc3RydWN0IHBhdGhcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0U3RhY2tEcmlmdENoYW5nZXMoXG4gICAgbG9naWNhbFRvUGF0aE1hcDogeyBbbG9naWNhbElkOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9KTogRm9ybWF0dGVkRHJpZnQge1xuICAgIGlmICh0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGxldCB1bmNoYW5nZWQ7XG4gICAgbGV0IHVuY2hlY2tlZDtcbiAgICBsZXQgbW9kaWZpZWQ7XG4gICAgbGV0IGRlbGV0ZWQ7XG5cbiAgICBjb25zdCBkcmlmdHMgPSB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzO1xuXG4gICAgLy8gUHJvY2VzcyB1bmNoYW5nZWQgcmVzb3VyY2VzXG4gICAgY29uc3QgdW5jaGFuZ2VkUmVzb3VyY2VzID0gZHJpZnRzLmZpbHRlcihkID0+IGQuU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzID09PSBTdGFja1Jlc291cmNlRHJpZnRTdGF0dXMuSU5fU1lOQyk7XG4gICAgaWYgKHVuY2hhbmdlZFJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICB1bmNoYW5nZWQgPSB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignUmVzb3VyY2VzIEluIFN5bmMnKTtcblxuICAgICAgZm9yIChjb25zdCBkcmlmdCBvZiB1bmNoYW5nZWRSZXNvdXJjZXMpIHtcbiAgICAgICAgaWYgKCFkcmlmdC5Mb2dpY2FsUmVzb3VyY2VJZCB8fCAhZHJpZnQuUmVzb3VyY2VUeXBlKSBjb250aW51ZTtcbiAgICAgICAgdW5jaGFuZ2VkICs9IGAke0NPTlRFWFR9ICR7Y2hhbGsuY3lhbihkcmlmdC5SZXNvdXJjZVR5cGUpfSAke3RoaXMuZm9ybWF0TG9naWNhbElkKGxvZ2ljYWxUb1BhdGhNYXAsIGRyaWZ0LkxvZ2ljYWxSZXNvdXJjZUlkKX1cXG5gO1xuICAgICAgfVxuICAgICAgdW5jaGFuZ2VkICs9IHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBhbGwgdW5jaGVja2VkIGFuZCB1bmtub3duIHJlc291cmNlc1xuICAgIGNvbnN0IHVuY2hlY2tlZFJlc291cmNlcyA9IEFycmF5LmZyb20odGhpcy5hbGxTdGFja1Jlc291cmNlcy5rZXlzKCkpLmZpbHRlcigobG9naWNhbElkKSA9PiB7XG4gICAgICBjb25zdCBkcmlmdCA9IGRyaWZ0cy5maW5kKChkKSA9PiBkLkxvZ2ljYWxSZXNvdXJjZUlkID09PSBsb2dpY2FsSWQpO1xuICAgICAgcmV0dXJuICFkcmlmdCB8fCBkcmlmdC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09IFN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cy5VTktOT1dOO1xuICAgIH0pO1xuICAgIGlmICh1bmNoZWNrZWRSZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgdW5jaGVja2VkID0gdGhpcy5wcmludFNlY3Rpb25IZWFkZXIoJ1VuY2hlY2tlZCBSZXNvdXJjZXMnKTtcbiAgICAgIGZvciAoY29uc3QgbG9naWNhbElkIG9mIHVuY2hlY2tlZFJlc291cmNlcykge1xuICAgICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSB0aGlzLmFsbFN0YWNrUmVzb3VyY2VzLmdldChsb2dpY2FsSWQpO1xuICAgICAgICB1bmNoZWNrZWQgKz0gYCR7Q09OVEVYVH0gJHtjaGFsay5jeWFuKHJlc291cmNlVHlwZSl9ICR7dGhpcy5mb3JtYXRMb2dpY2FsSWQobG9naWNhbFRvUGF0aE1hcCwgbG9naWNhbElkKX1cXG5gO1xuICAgICAgfVxuICAgICAgdW5jaGVja2VkICs9IHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBtb2RpZmllZCByZXNvdXJjZXMgKGV4Y2x1ZGUgQVdTOjpDREs6Ok1ldGFkYXRhKVxuICAgIGNvbnN0IG1vZGlmaWVkUmVzb3VyY2VzID0gZHJpZnRzLmZpbHRlcihkID0+XG4gICAgICBkLlN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyA9PT0gU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzLk1PRElGSUVEXG4gICAgICAmJiBkLlJlc291cmNlVHlwZSAhPT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpO1xuICAgIGlmIChtb2RpZmllZFJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBtb2RpZmllZCA9IHRoaXMucHJpbnRTZWN0aW9uSGVhZGVyKCdNb2RpZmllZCBSZXNvdXJjZXMnKTtcblxuICAgICAgZm9yIChjb25zdCBkcmlmdCBvZiBtb2RpZmllZFJlc291cmNlcykge1xuICAgICAgICBpZiAoIWRyaWZ0LkxvZ2ljYWxSZXNvdXJjZUlkIHx8ICFkcmlmdC5SZXNvdXJjZVR5cGUpIGNvbnRpbnVlO1xuICAgICAgICBtb2RpZmllZCArPSBgJHtVUERBVEV9ICR7Y2hhbGsuY3lhbihkcmlmdC5SZXNvdXJjZVR5cGUpfSAke3RoaXMuZm9ybWF0TG9naWNhbElkKGxvZ2ljYWxUb1BhdGhNYXAsIGRyaWZ0LkxvZ2ljYWxSZXNvdXJjZUlkKX1cXG5gO1xuICAgICAgICBpZiAoZHJpZnQuUHJvcGVydHlEaWZmZXJlbmNlcykge1xuICAgICAgICAgIGNvbnN0IHByb3BEaWZmcyA9IGRyaWZ0LlByb3BlcnR5RGlmZmVyZW5jZXM7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wRGlmZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBwcm9wRGlmZnNbaV07XG4gICAgICAgICAgICBpZiAoIWRpZmYuUHJvcGVydHlQYXRoKSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBuZXcgRGlmZmVyZW5jZShkaWZmLkV4cGVjdGVkVmFsdWUsIGRpZmYuQWN0dWFsVmFsdWUpO1xuICAgICAgICAgICAgbW9kaWZpZWQgKz0gdGhpcy5mb3JtYXRUcmVlRGlmZihkaWZmLlByb3BlcnR5UGF0aCwgZGlmZmVyZW5jZSwgaSA9PT0gcHJvcERpZmZzLmxlbmd0aCAtIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbW9kaWZpZWQgKz0gdGhpcy5wcmludFNlY3Rpb25Gb290ZXIoKTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIGRlbGV0ZWQgcmVzb3VyY2VzIChleGNsdWRlIEFXUzo6Q0RLOjpNZXRhZGF0YSlcbiAgICBjb25zdCBkZWxldGVkUmVzb3VyY2VzID0gZHJpZnRzLmZpbHRlcihkID0+XG4gICAgICBkLlN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyA9PT0gU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzLkRFTEVURURcbiAgICAgICYmIGQuUmVzb3VyY2VUeXBlICE9PSAnQVdTOjpDREs6Ok1ldGFkYXRhJyk7XG4gICAgaWYgKGRlbGV0ZWRSZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgZGVsZXRlZCA9IHRoaXMucHJpbnRTZWN0aW9uSGVhZGVyKCdEZWxldGVkIFJlc291cmNlcycpO1xuICAgICAgZm9yIChjb25zdCBkcmlmdCBvZiBkZWxldGVkUmVzb3VyY2VzKSB7XG4gICAgICAgIGlmICghZHJpZnQuTG9naWNhbFJlc291cmNlSWQgfHwgIWRyaWZ0LlJlc291cmNlVHlwZSkgY29udGludWU7XG4gICAgICAgIGRlbGV0ZWQgKz0gYCR7UkVNT1ZBTH0gJHtjaGFsay5jeWFuKGRyaWZ0LlJlc291cmNlVHlwZSl9ICR7dGhpcy5mb3JtYXRMb2dpY2FsSWQobG9naWNhbFRvUGF0aE1hcCwgZHJpZnQuTG9naWNhbFJlc291cmNlSWQpfVxcbmA7XG4gICAgICB9XG4gICAgICBkZWxldGVkICs9IHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgdW5jaGFuZ2VkLCB1bmNoZWNrZWQsIG1vZGlmaWVkLCBkZWxldGVkIH07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdExvZ2ljYWxJZChsb2dpY2FsVG9QYXRoTWFwOiB7IFtsb2dpY2FsSWQ6IHN0cmluZ106IHN0cmluZyB9LCBsb2dpY2FsSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGF0aCA9IGxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXTtcbiAgICBpZiAoIXBhdGgpIHJldHVybiBsb2dpY2FsSWQ7XG5cbiAgICBsZXQgbm9ybWFsaXplZFBhdGggPSBwYXRoO1xuICAgIGlmIChub3JtYWxpemVkUGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgIG5vcm1hbGl6ZWRQYXRoID0gbm9ybWFsaXplZFBhdGguc2xpY2UoMSk7XG4gICAgfVxuXG4gICAgbGV0IHBhcnRzID0gbm9ybWFsaXplZFBhdGguc3BsaXQoJy8nKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgcGFydHMgPSBwYXJ0cy5zbGljZSgxKTtcblxuICAgICAgLy8gcmVtb3ZlIHRoZSBsYXN0IGNvbXBvbmVudCBpZiBpdCdzIFwiUmVzb3VyY2VcIiBvciBcIkRlZmF1bHRcIiAoaWYgd2UgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgY29tcG9uZW50KVxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbGFzdCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAobGFzdCA9PT0gJ1Jlc291cmNlJyB8fCBsYXN0ID09PSAnRGVmYXVsdCcpIHtcbiAgICAgICAgICBwYXJ0cyA9IHBhcnRzLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5vcm1hbGl6ZWRQYXRoID0gcGFydHMuam9pbignLycpO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtub3JtYWxpemVkUGF0aH0gJHtjaGFsay5ncmF5KGxvZ2ljYWxJZCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgcHJpbnRTZWN0aW9uSGVhZGVyKHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtjaGFsay51bmRlcmxpbmUoY2hhbGsuYm9sZCh0aXRsZSkpfVxcbmA7XG4gIH1cblxuICBwcml2YXRlIHByaW50U2VjdGlvbkZvb3RlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnXFxuJztcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VHJlZURpZmYocHJvcGVydHlQYXRoOiBzdHJpbmcsIGRpZmZlcmVuY2U6IERpZmZlcmVuY2U8c3RyaW5nPiwgaXNMYXN0OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gZm9ybWF0KCcgJXPilIAgJXMgJXNcXG4nLCBpc0xhc3QgPyAn4pSUJyA6ICfilJwnLFxuICAgICAgZGlmZmVyZW5jZS5pc0FkZGl0aW9uID8gQURESVRJT04gOlxuICAgICAgICBkaWZmZXJlbmNlLmlzUmVtb3ZhbCA/IFJFTU9WQUwgOlxuICAgICAgICAgIFVQREFURSxcbiAgICAgIHByb3BlcnR5UGF0aCxcbiAgICApO1xuICAgIGlmIChkaWZmZXJlbmNlLmlzVXBkYXRlKSB7XG4gICAgICByZXN1bHQgKz0gZm9ybWF0KCcgICAgIOKUnOKUgCAlcyAlc1xcbicsIFJFTU9WQUwsIGNoYWxrLnJlZChkaWZmZXJlbmNlLm9sZFZhbHVlKSk7XG4gICAgICByZXN1bHQgKz0gZm9ybWF0KCcgICAgIOKUlOKUgCAlcyAlc1xcbicsIEFERElUSU9OLCBjaGFsay5ncmVlbihkaWZmZXJlbmNlLm5ld1ZhbHVlKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY29uc3QgQURESVRJT04gPSBjaGFsay5ncmVlbignWytdJyk7XG5jb25zdCBDT05URVhUID0gY2hhbGsuZ3JleSgnWyBdJyk7XG5jb25zdCBVUERBVEUgPSBjaGFsay55ZWxsb3coJ1t+XScpO1xuY29uc3QgUkVNT1ZBTCA9IGNoYWxrLnJlZCgnWy1dJyk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.detectStackDrift = detectStackDrift;\nconst node_util_1 = require(\"node:util\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst string_manipulation_1 = require(\"../../util/string-manipulation\");\n/**\n * Detect drift for a CloudFormation stack and wait for the detection to complete\n *\n * @param cfn - a CloudFormation client\n * @param ioHelper - helper for IO operations\n * @param stackName - the name of the stack to check for drift\n * @returns the CloudFormation description of the drift detection results\n */\nasync function detectStackDrift(cfn, ioHelper, stackName) {\n // Start drift detection\n const driftDetection = await cfn.detectStackDrift({\n StackName: stackName,\n });\n await ioHelper.defaults.trace((0, node_util_1.format)('Detecting drift with ID %s for stack %s...', driftDetection.StackDriftDetectionId, stackName));\n // Wait for drift detection to complete\n const driftStatus = await waitForDriftDetection(cfn, ioHelper, driftDetection.StackDriftDetectionId);\n // Handle UNKNOWN stack drift status\n if (driftStatus?.StackDriftStatus === 'UNKNOWN') {\n await ioHelper.defaults.trace('Stack drift status is UNKNOWN. This may occur when CloudFormation is unable to detect drift for at least one resource and all other resources are IN_SYNC.\\n' +\n `Reason: ${(0, string_manipulation_1.formatReason)(driftStatus.DetectionStatusReason)}`);\n }\n // Get the drift results, including resources with UNKNOWN status\n const driftResults = await cfn.describeStackResourceDrifts({\n StackName: stackName,\n });\n // Log warning for any resources with UNKNOWN status\n const unknownResources = driftResults.StackResourceDrifts?.filter(drift => drift.StackResourceDriftStatus === 'UNKNOWN');\n if (unknownResources && unknownResources.length > 0) {\n await ioHelper.defaults.trace('Some resources have UNKNOWN drift status. This may be due to insufficient permissions or throttling:\\n' +\n unknownResources.map(r => ` - ${r.LogicalResourceId}: ${(0, string_manipulation_1.formatReason)(r.DriftStatusReason)}`).join('\\n'));\n }\n return driftResults;\n}\n/**\n * Wait for a drift detection operation to complete\n */\nasync function waitForDriftDetection(cfn, ioHelper, driftDetectionId) {\n const maxWaitForDrift = 300_000; // if takes longer than 5min, fail\n const timeBetweenOutputs = 10_000; // how long to wait before telling user we're still checking\n const timeBetweenApiCalls = 2_000; // wait 2s per API call\n const deadline = Date.now() + maxWaitForDrift;\n let checkIn = Date.now() + timeBetweenOutputs;\n while (true) {\n const response = await cfn.describeStackDriftDetectionStatus({\n StackDriftDetectionId: driftDetectionId,\n });\n if (response.DetectionStatus === 'DETECTION_COMPLETE') {\n return response;\n }\n if (response.DetectionStatus === 'DETECTION_FAILED') {\n throw new toolkit_error_1.ToolkitError('DriftDetectionFailed', `Drift detection failed: ${(0, string_manipulation_1.formatReason)(response.DetectionStatusReason)}`);\n }\n if (Date.now() > deadline) {\n throw new toolkit_error_1.ToolkitError('DriftDetectionTimeout', `Drift detection failed: Timed out after ${maxWaitForDrift / 1000} seconds.`);\n }\n if (Date.now() > checkIn) {\n await ioHelper.defaults.trace('Waiting for drift detection to complete...');\n checkIn = Date.now() + timeBetweenOutputs;\n }\n // Wait a short while between API calls so we don't create a flood\n await new Promise(resolve => setTimeout(resolve, timeBetweenApiCalls));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkcmlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWVBLDRDQTZDQztBQTVERCx5Q0FBbUM7QUFFbkMsK0RBQTJEO0FBQzNELHdFQUE4RDtBQUk5RDs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxHQUEwQixFQUMxQixRQUFrQixFQUNsQixTQUFpQjtJQUVqQix3QkFBd0I7SUFDeEIsTUFBTSxjQUFjLEdBQUcsTUFBTSxHQUFHLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsU0FBUyxFQUFFLFNBQVM7S0FDckIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FDM0IsSUFBQSxrQkFBTSxFQUFDLDRDQUE0QyxFQUFFLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FDdEcsQ0FBQztJQUVGLHVDQUF1QztJQUN2QyxNQUFNLFdBQVcsR0FBRyxNQUFNLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLHFCQUFzQixDQUFDLENBQUM7SUFFdEcsb0NBQW9DO0lBQ3BDLElBQUksV0FBVyxFQUFFLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQzNCLDhKQUE4SjtZQUM5SixXQUFXLElBQUEsa0NBQVksRUFBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxNQUFNLFlBQVksR0FBRyxNQUFNLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztRQUN6RCxTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDLENBQUM7SUFFSCxvREFBb0Q7SUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUMvRCxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsS0FBSyxTQUFTLENBQ3RELENBQUM7SUFFRixJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUMzQix3R0FBd0c7WUFDeEcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3ZCLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixLQUFLLElBQUEsa0NBQVksRUFBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUNuRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxxQkFBcUIsQ0FDbEMsR0FBMEIsRUFDMUIsUUFBa0IsRUFDbEIsZ0JBQXdCO0lBRXhCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGtDQUFrQztJQUNuRSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLDREQUE0RDtJQUMvRixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxDQUFDLHVCQUF1QjtJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsZUFBZSxDQUFDO0lBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztJQUU5QyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsaUNBQWlDLENBQUM7WUFDM0QscUJBQXFCLEVBQUUsZ0JBQWdCO1NBQ3hDLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLGVBQWUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3RELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxlQUFlLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUNwRCxNQUFNLElBQUksNEJBQVksQ0FBQyxzQkFBc0IsRUFBRSwyQkFBMkIsSUFBQSxrQ0FBWSxFQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1SCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLDRCQUFZLENBQUMsdUJBQXVCLEVBQUUsMkNBQTJDLGVBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBQ2hJLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDNUUsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztRQUM1QyxDQUFDO1FBRUQsa0VBQWtFO1FBQ2xFLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgdHlwZSB7IERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmRPdXRwdXQsIERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdFJlYXNvbiB9IGZyb20gJy4uLy4uL3V0aWwvc3RyaW5nLW1hbmlwdWxhdGlvbic7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEZvcm1hdGlvbkNsaWVudCB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG4vKipcbiAqIERldGVjdCBkcmlmdCBmb3IgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhbmQgd2FpdCBmb3IgdGhlIGRldGVjdGlvbiB0byBjb21wbGV0ZVxuICpcbiAqIEBwYXJhbSBjZm4gLSBhIENsb3VkRm9ybWF0aW9uIGNsaWVudFxuICogQHBhcmFtIGlvSGVscGVyIC0gaGVscGVyIGZvciBJTyBvcGVyYXRpb25zXG4gKiBAcGFyYW0gc3RhY2tOYW1lIC0gdGhlIG5hbWUgb2YgdGhlIHN0YWNrIHRvIGNoZWNrIGZvciBkcmlmdFxuICogQHJldHVybnMgdGhlIENsb3VkRm9ybWF0aW9uIGRlc2NyaXB0aW9uIG9mIHRoZSBkcmlmdCBkZXRlY3Rpb24gcmVzdWx0c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV0ZWN0U3RhY2tEcmlmdChcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmRPdXRwdXQ+IHtcbiAgLy8gU3RhcnQgZHJpZnQgZGV0ZWN0aW9uXG4gIGNvbnN0IGRyaWZ0RGV0ZWN0aW9uID0gYXdhaXQgY2ZuLmRldGVjdFN0YWNrRHJpZnQoe1xuICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICB9KTtcblxuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZShcbiAgICBmb3JtYXQoJ0RldGVjdGluZyBkcmlmdCB3aXRoIElEICVzIGZvciBzdGFjayAlcy4uLicsIGRyaWZ0RGV0ZWN0aW9uLlN0YWNrRHJpZnREZXRlY3Rpb25JZCwgc3RhY2tOYW1lKSxcbiAgKTtcblxuICAvLyBXYWl0IGZvciBkcmlmdCBkZXRlY3Rpb24gdG8gY29tcGxldGVcbiAgY29uc3QgZHJpZnRTdGF0dXMgPSBhd2FpdCB3YWl0Rm9yRHJpZnREZXRlY3Rpb24oY2ZuLCBpb0hlbHBlciwgZHJpZnREZXRlY3Rpb24uU3RhY2tEcmlmdERldGVjdGlvbklkISk7XG5cbiAgLy8gSGFuZGxlIFVOS05PV04gc3RhY2sgZHJpZnQgc3RhdHVzXG4gIGlmIChkcmlmdFN0YXR1cz8uU3RhY2tEcmlmdFN0YXR1cyA9PT0gJ1VOS05PV04nKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMudHJhY2UoXG4gICAgICAnU3RhY2sgZHJpZnQgc3RhdHVzIGlzIFVOS05PV04uIFRoaXMgbWF5IG9jY3VyIHdoZW4gQ2xvdWRGb3JtYXRpb24gaXMgdW5hYmxlIHRvIGRldGVjdCBkcmlmdCBmb3IgYXQgbGVhc3Qgb25lIHJlc291cmNlIGFuZCBhbGwgb3RoZXIgcmVzb3VyY2VzIGFyZSBJTl9TWU5DLlxcbicgK1xuICAgICAgYFJlYXNvbjogJHtmb3JtYXRSZWFzb24oZHJpZnRTdGF0dXMuRGV0ZWN0aW9uU3RhdHVzUmVhc29uKX1gLFxuICAgICk7XG4gIH1cblxuICAvLyBHZXQgdGhlIGRyaWZ0IHJlc3VsdHMsIGluY2x1ZGluZyByZXNvdXJjZXMgd2l0aCBVTktOT1dOIHN0YXR1c1xuICBjb25zdCBkcmlmdFJlc3VsdHMgPSBhd2FpdCBjZm4uZGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzKHtcbiAgICBTdGFja05hbWU6IHN0YWNrTmFtZSxcbiAgfSk7XG5cbiAgLy8gTG9nIHdhcm5pbmcgZm9yIGFueSByZXNvdXJjZXMgd2l0aCBVTktOT1dOIHN0YXR1c1xuICBjb25zdCB1bmtub3duUmVzb3VyY2VzID0gZHJpZnRSZXN1bHRzLlN0YWNrUmVzb3VyY2VEcmlmdHM/LmZpbHRlcihcbiAgICBkcmlmdCA9PiBkcmlmdC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09ICdVTktOT1dOJyxcbiAgKTtcblxuICBpZiAodW5rbm93blJlc291cmNlcyAmJiB1bmtub3duUmVzb3VyY2VzLmxlbmd0aCA+IDApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZShcbiAgICAgICdTb21lIHJlc291cmNlcyBoYXZlIFVOS05PV04gZHJpZnQgc3RhdHVzLiBUaGlzIG1heSBiZSBkdWUgdG8gaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zIG9yIHRocm90dGxpbmc6XFxuJyArXG4gICAgICB1bmtub3duUmVzb3VyY2VzLm1hcChyID0+XG4gICAgICAgIGAgIC0gJHtyLkxvZ2ljYWxSZXNvdXJjZUlkfTogJHtmb3JtYXRSZWFzb24oci5EcmlmdFN0YXR1c1JlYXNvbil9YCxcbiAgICAgICkuam9pbignXFxuJyksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBkcmlmdFJlc3VsdHM7XG59XG5cbi8qKlxuICogV2FpdCBmb3IgYSBkcmlmdCBkZXRlY3Rpb24gb3BlcmF0aW9uIHRvIGNvbXBsZXRlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JEcmlmdERldGVjdGlvbihcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgZHJpZnREZXRlY3Rpb25JZDogc3RyaW5nLFxuKTogUHJvbWlzZTxEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kT3V0cHV0IHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IG1heFdhaXRGb3JEcmlmdCA9IDMwMF8wMDA7IC8vIGlmIHRha2VzIGxvbmdlciB0aGFuIDVtaW4sIGZhaWxcbiAgY29uc3QgdGltZUJldHdlZW5PdXRwdXRzID0gMTBfMDAwOyAvLyBob3cgbG9uZyB0byB3YWl0IGJlZm9yZSB0ZWxsaW5nIHVzZXIgd2UncmUgc3RpbGwgY2hlY2tpbmdcbiAgY29uc3QgdGltZUJldHdlZW5BcGlDYWxscyA9IDJfMDAwOyAvLyB3YWl0IDJzIHBlciBBUEkgY2FsbFxuICBjb25zdCBkZWFkbGluZSA9IERhdGUubm93KCkgKyBtYXhXYWl0Rm9yRHJpZnQ7XG4gIGxldCBjaGVja0luID0gRGF0ZS5ub3coKSArIHRpbWVCZXR3ZWVuT3V0cHV0cztcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2ZuLmRlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1cyh7XG4gICAgICBTdGFja0RyaWZ0RGV0ZWN0aW9uSWQ6IGRyaWZ0RGV0ZWN0aW9uSWQsXG4gICAgfSk7XG5cbiAgICBpZiAocmVzcG9uc2UuRGV0ZWN0aW9uU3RhdHVzID09PSAnREVURUNUSU9OX0NPTVBMRVRFJykge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5EZXRlY3Rpb25TdGF0dXMgPT09ICdERVRFQ1RJT05fRkFJTEVEJykge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignRHJpZnREZXRlY3Rpb25GYWlsZWQnLCBgRHJpZnQgZGV0ZWN0aW9uIGZhaWxlZDogJHtmb3JtYXRSZWFzb24ocmVzcG9uc2UuRGV0ZWN0aW9uU3RhdHVzUmVhc29uKX1gKTtcbiAgICB9XG5cbiAgICBpZiAoRGF0ZS5ub3coKSA+IGRlYWRsaW5lKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEcmlmdERldGVjdGlvblRpbWVvdXQnLCBgRHJpZnQgZGV0ZWN0aW9uIGZhaWxlZDogVGltZWQgb3V0IGFmdGVyICR7bWF4V2FpdEZvckRyaWZ0IC8gMTAwMH0gc2Vjb25kcy5gKTtcbiAgICB9XG5cbiAgICBpZiAoRGF0ZS5ub3coKSA+IGNoZWNrSW4pIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLnRyYWNlKCdXYWl0aW5nIGZvciBkcmlmdCBkZXRlY3Rpb24gdG8gY29tcGxldGUuLi4nKTtcbiAgICAgIGNoZWNrSW4gPSBEYXRlLm5vdygpICsgdGltZUJldHdlZW5PdXRwdXRzO1xuICAgIH1cblxuICAgIC8vIFdhaXQgYSBzaG9ydCB3aGlsZSBiZXR3ZWVuIEFQSSBjYWxscyBzbyB3ZSBkb24ndCBjcmVhdGUgYSBmbG9vZFxuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lQmV0d2VlbkFwaUNhbGxzKSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./drift-formatter\"), exports);\n__exportStar(require(\"./drift\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQWtDO0FBQ2xDLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJpZnQtZm9ybWF0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZHJpZnQnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentAccess = void 0;\nconst environment_resources_1 = require(\"./environment-resources\");\nconst placeholders_1 = require(\"./placeholders\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Access particular AWS resources, based on information from the CX manifest\n *\n * It is not possible to grab direct access to AWS credentials; 9 times out of 10\n * we have to allow for role assumption, and role assumption can only work if\n * there is a CX Manifest that contains a role ARN.\n *\n * This class exists so new code isn't tempted to go and get SDK credentials directly.\n */\nclass EnvironmentAccess {\n sdkProvider;\n sdkCache = new Map();\n environmentResources;\n ioHelper;\n constructor(sdkProvider, toolkitStackName, ioHelper) {\n this.sdkProvider = sdkProvider;\n this.environmentResources = new environment_resources_1.EnvironmentResourcesRegistry(toolkitStackName);\n this.ioHelper = ioHelper;\n }\n /**\n * Resolves the environment for a stack.\n */\n async resolveStackEnvironment(stack) {\n return this.sdkProvider.resolveEnvironment(stack.environment);\n }\n /**\n * Get an SDK to access the given stack's environment for stack operations\n *\n * Will ask plugins for readonly credentials if available, use the default\n * AWS credentials if not.\n *\n * Will assume the deploy role if configured on the stack. Check the default `deploy-role`\n * policies to see what you can do with this role.\n */\n async accessStackForReadOnlyStackOperations(stack) {\n return this.accessStackForStackOperations(stack, plugin_1.Mode.ForReading);\n }\n /**\n * Get an SDK to access the given stack's environment for stack operations\n *\n * Will ask plugins for mutating credentials if available, use the default AWS\n * credentials if not. The `mode` parameter is only used for querying\n * plugins.\n *\n * Will assume the deploy role if configured on the stack. Check the default `deploy-role`\n * policies to see what you can do with this role.\n */\n async accessStackForMutableStackOperations(stack) {\n return this.accessStackForStackOperations(stack, plugin_1.Mode.ForWriting);\n }\n /**\n * Get an SDK to access the given stack's environment for environmental lookups\n *\n * Will use a plugin if available, use the default AWS credentials if not.\n * The `mode` parameter is only used for querying plugins.\n *\n * Will assume the lookup role if configured on the stack. Check the default `lookup-role`\n * policies to see what you can do with this role. It can generally read everything\n * in the account that does not require KMS access.\n *\n * ---\n *\n * For backwards compatibility reasons, there are some scenarios that are handled here:\n *\n * 1. The lookup role may not exist (it was added in bootstrap stack version 7). If so:\n * a. Return the default credentials if the default credentials are for the stack account\n * (you will notice this as `isFallbackCredentials=true`).\n * b. Throw an error if the default credentials are not for the stack account.\n *\n * 2. The lookup role may not have the correct permissions (for example, ReadOnlyAccess was added in\n * bootstrap stack version 8); the stack will have a minimum version number on it.\n * a. If it does not we throw an error which should be handled in the calling\n * function (and fallback to use a different role, etc)\n *\n * Upon success, caller will have an SDK for the right account, which may or may not have\n * the right permissions.\n */\n async accessStackForLookup(stack) {\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `The stack ${stack.displayName} does not have an environment`);\n }\n const lookupEnv = await this.prepareSdk({\n environment: stack.environment,\n mode: plugin_1.Mode.ForReading,\n assumeRoleArn: stack.lookupRole?.arn,\n assumeRoleExternalId: stack.lookupRole?.assumeRoleExternalId,\n assumeRoleAdditionalOptions: stack.lookupRole?.assumeRoleAdditionalOptions,\n });\n // if we succeed in assuming the lookup role, make sure we have the correct bootstrap stack version\n if (lookupEnv.didAssumeRole && stack.lookupRole?.bootstrapStackVersionSsmParameter && stack.lookupRole.requiresBootstrapStackVersion) {\n const version = await lookupEnv.resources.versionFromSsmParameter(stack.lookupRole.bootstrapStackVersionSsmParameter);\n if (version < stack.lookupRole.requiresBootstrapStackVersion) {\n throw new toolkit_error_1.ToolkitError('InsufficientBootstrapStackVersion', `Bootstrap stack version '${stack.lookupRole.requiresBootstrapStackVersion}' is required, found version '${version}'. To get rid of this error, please upgrade to bootstrap version >= ${stack.lookupRole.requiresBootstrapStackVersion}`);\n }\n }\n if (lookupEnv.isFallbackCredentials) {\n const arn = await lookupEnv.replacePlaceholders(stack.lookupRole?.arn);\n await this.ioHelper.defaults.warn(`Lookup role ${arn} was not assumed. Proceeding with default credentials.`);\n }\n return lookupEnv;\n }\n /**\n * Get an SDK to access the given stack's environment for reading stack attributes\n *\n * Will use a plugin if available, use the default AWS credentials if not.\n * The `mode` parameter is only used for querying plugins.\n *\n * Will try to assume the lookup role if given, will use the regular stack operations\n * access (deploy-role) otherwise. When calling this, you should assume that you will get\n * the least privileged role, so don't try to use it for anything the `deploy-role`\n * wouldn't be able to do. Also you cannot rely on being able to read encrypted anything.\n */\n async accessStackForLookupBestEffort(stack) {\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `The stack ${stack.displayName} does not have an environment`);\n }\n try {\n return await this.accessStackForLookup(stack);\n }\n catch (e) {\n await this.ioHelper.defaults.warn(`${(0, util_1.formatErrorMessage)(e)}`);\n }\n return this.accessStackForStackOperations(stack, plugin_1.Mode.ForReading);\n }\n /**\n * Get an SDK to access the given stack's environment for stack operations\n *\n * Will use a plugin if available, use the default AWS credentials if not.\n * The `mode` parameter is only used for querying plugins.\n *\n * Will assume the deploy role if configured on the stack. Check the default `deploy-role`\n * policies to see what you can do with this role.\n */\n async accessStackForStackOperations(stack, mode) {\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `The stack ${stack.displayName} does not have an environment`);\n }\n return this.prepareSdk({\n environment: stack.environment,\n mode,\n assumeRoleArn: stack.assumeRoleArn,\n assumeRoleExternalId: stack.assumeRoleExternalId,\n assumeRoleAdditionalOptions: stack.assumeRoleAdditionalOptions,\n });\n }\n /**\n * Prepare an SDK for use in the given environment and optionally with a role assumed.\n */\n async prepareSdk(options) {\n const resolvedEnvironment = await this.sdkProvider.resolveEnvironment(options.environment);\n // Substitute any placeholders with information about the current environment\n const { assumeRoleArn } = await (0, placeholders_1.replaceEnvPlaceholders)({\n assumeRoleArn: options.assumeRoleArn,\n }, resolvedEnvironment, this.sdkProvider);\n const stackSdk = await this.cachedSdkForEnvironment(resolvedEnvironment, options.mode, {\n assumeRoleArn,\n assumeRoleExternalId: options.assumeRoleExternalId,\n assumeRoleAdditionalOptions: options.assumeRoleAdditionalOptions,\n });\n return {\n sdk: stackSdk.sdk,\n resolvedEnvironment,\n resources: this.environmentResources.for(resolvedEnvironment, stackSdk.sdk, this.ioHelper),\n // If we asked for a role, did not successfully assume it, and yet got here without an exception: that\n // means we must have fallback credentials.\n isFallbackCredentials: !stackSdk.didAssumeRole && !!assumeRoleArn,\n didAssumeRole: stackSdk.didAssumeRole,\n replacePlaceholders: async (str) => {\n const ret = await (0, placeholders_1.replaceEnvPlaceholders)({ str }, resolvedEnvironment, this.sdkProvider);\n return ret.str;\n },\n };\n }\n async cachedSdkForEnvironment(environment, mode, options) {\n const cacheKeyElements = [\n environment.account,\n environment.region,\n `${mode}`,\n options?.assumeRoleArn ?? '',\n options?.assumeRoleExternalId ?? '',\n ];\n if (options?.assumeRoleAdditionalOptions) {\n cacheKeyElements.push(JSON.stringify(options.assumeRoleAdditionalOptions));\n }\n const cacheKey = cacheKeyElements.join(':');\n const existing = this.sdkCache.get(cacheKey);\n if (existing) {\n return existing;\n }\n const ret = await this.sdkProvider.forEnvironment(environment, mode, options);\n this.sdkCache.set(cacheKey, ret);\n return ret;\n }\n}\nexports.EnvironmentAccess = EnvironmentAccess;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtYWNjZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnQtYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1FQUF1RTtBQUV2RSxpREFBd0Q7QUFDeEQsK0RBQTJEO0FBQzNELHFDQUFnRDtBQUdoRCxzQ0FBaUM7QUFFakM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGlCQUFpQjtJQUtDO0lBSlosUUFBUSxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO0lBQ2hELG9CQUFvQixDQUErQjtJQUNuRCxRQUFRLENBQVc7SUFFcEMsWUFBNkIsV0FBd0IsRUFBRSxnQkFBd0IsRUFBRSxRQUFrQjtRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNuRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxvREFBNEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxLQUF3QztRQUMzRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxLQUF3QztRQUN6RixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsYUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsS0FBd0M7UUFDeEYsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLGFBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMEJHO0lBQ0ksS0FB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dHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSB9IGZyb20gJy4vZW52aXJvbm1lbnQtcmVzb3VyY2VzJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycyB9IGZyb20gJy4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuL3BsYWNlaG9sZGVycyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESywgQ3JlZGVudGlhbHNPcHRpb25zLCBTZGtGb3JFbnZpcm9ubWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuXG4vKipcbiAqIEFjY2VzcyBwYXJ0aWN1bGFyIEFXUyByZXNvdXJjZXMsIGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIENYIG1hbmlmZXN0XG4gKlxuICogSXQgaXMgbm90IHBvc3NpYmxlIHRvIGdyYWIgZGlyZWN0IGFjY2VzcyB0byBBV1MgY3JlZGVudGlhbHM7IDkgdGltZXMgb3V0IG9mIDEwXG4gKiB3ZSBoYXZlIHRvIGFsbG93IGZvciByb2xlIGFzc3VtcHRpb24sIGFuZCByb2xlIGFzc3VtcHRpb24gY2FuIG9ubHkgd29yayBpZlxuICogdGhlcmUgaXMgYSBDWCBNYW5pZmVzdCB0aGF0IGNvbnRhaW5zIGEgcm9sZSBBUk4uXG4gKlxuICogVGhpcyBjbGFzcyBleGlzdHMgc28gbmV3IGNvZGUgaXNuJ3QgdGVtcHRlZCB0byBnbyBhbmQgZ2V0IFNESyBjcmVkZW50aWFscyBkaXJlY3RseS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50QWNjZXNzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzZGtDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBTZGtGb3JFbnZpcm9ubWVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnZpcm9ubWVudFJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeTtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsIHRvb2xraXRTdGFja05hbWU6IHN0cmluZywgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgdGhpcy5lbnZpcm9ubWVudFJlc291cmNlcyA9IG5ldyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5KHRvb2xraXRTdGFja05hbWUpO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgZW52aXJvbm1lbnQgZm9yIGEgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZVN0YWNrRW52aXJvbm1lbnQoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8Y3hhcGkuRW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZGtQcm92aWRlci5yZXNvbHZlRW52aXJvbm1lbnQoc3RhY2suZW52aXJvbm1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBTREsgdG8gYWNjZXNzIHRoZSBnaXZlbiBzdGFjaydzIGVudmlyb25tZW50IGZvciBzdGFjayBvcGVyYXRpb25zXG4gICAqXG4gICAqIFdpbGwgYXNrIHBsdWdpbnMgZm9yIHJlYWRvbmx5IGNyZWRlbnRpYWxzIGlmIGF2YWlsYWJsZSwgdXNlIHRoZSBkZWZhdWx0XG4gICAqIEFXUyBjcmVkZW50aWFscyBpZiBub3QuXG4gICAqXG4gICAqIFdpbGwgYXNzdW1lIHRoZSBkZXBsb3kgcm9sZSBpZiBjb25maWd1cmVkIG9uIHRoZSBzdGFjay4gQ2hlY2sgdGhlIGRlZmF1bHQgYGRlcGxveS1yb2xlYFxuICAgKiBwb2xpY2llcyB0byBzZWUgd2hhdCB5b3UgY2FuIGRvIHdpdGggdGhpcyByb2xlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjY2Vzc1N0YWNrRm9yUmVhZE9ubHlTdGFja09wZXJhdGlvbnMoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8VGFyZ2V0RW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjaywgTW9kZS5Gb3JSZWFkaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIHRvIGFjY2VzcyB0aGUgZ2l2ZW4gc3RhY2sncyBlbnZpcm9ubWVudCBmb3Igc3RhY2sgb3BlcmF0aW9uc1xuICAgKlxuICAgKiBXaWxsIGFzayBwbHVnaW5zIGZvciBtdXRhdGluZyBjcmVkZW50aWFscyBpZiBhdmFpbGFibGUsIHVzZSB0aGUgZGVmYXVsdCBBV1NcbiAgICogY3JlZGVudGlhbHMgaWYgbm90LiAgVGhlIGBtb2RlYCBwYXJhbWV0ZXIgaXMgb25seSB1c2VkIGZvciBxdWVyeWluZ1xuICAgKiBwbHVnaW5zLlxuICAgKlxuICAgKiBXaWxsIGFzc3VtZSB0aGUgZGVwbG95IHJvbGUgaWYgY29uZmlndXJlZCBvbiB0aGUgc3RhY2suIENoZWNrIHRoZSBkZWZhdWx0IGBkZXBsb3ktcm9sZWBcbiAgICogcG9saWNpZXMgdG8gc2VlIHdoYXQgeW91IGNhbiBkbyB3aXRoIHRoaXMgcm9sZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY2Nlc3NTdGFja0Zvck11dGFibGVTdGFja09wZXJhdGlvbnMoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8VGFyZ2V0RW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjaywgTW9kZS5Gb3JXcml0aW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIHRvIGFjY2VzcyB0aGUgZ2l2ZW4gc3RhY2sncyBlbnZpcm9ubWVudCBmb3IgZW52aXJvbm1lbnRhbCBsb29rdXBzXG4gICAqXG4gICAqIFdpbGwgdXNlIGEgcGx1Z2luIGlmIGF2YWlsYWJsZSwgdXNlIHRoZSBkZWZhdWx0IEFXUyBjcmVkZW50aWFscyBpZiBub3QuXG4gICAqIFRoZSBgbW9kZWAgcGFyYW1ldGVyIGlzIG9ubHkgdXNlZCBmb3IgcXVlcnlpbmcgcGx1Z2lucy5cbiAgICpcbiAgICogV2lsbCBhc3N1bWUgdGhlIGxvb2t1cCByb2xlIGlmIGNvbmZpZ3VyZWQgb24gdGhlIHN0YWNrLiBDaGVjayB0aGUgZGVmYXVsdCBgbG9va3VwLXJvbGVgXG4gICAqIHBvbGljaWVzIHRvIHNlZSB3aGF0IHlvdSBjYW4gZG8gd2l0aCB0aGlzIHJvbGUuIEl0IGNhbiBnZW5lcmFsbHkgcmVhZCBldmVyeXRoaW5nXG4gICAqIGluIHRoZSBhY2NvdW50IHRoYXQgZG9lcyBub3QgcmVxdWlyZSBLTVMgYWNjZXNzLlxuICAgKlxuICAgKiAtLS1cbiAgICpcbiAgICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHRoZXJlIGFyZSBzb21lIHNjZW5hcmlvcyB0aGF0IGFyZSBoYW5kbGVkIGhlcmU6XG4gICAqXG4gICAqICAxLiBUaGUgbG9va3VwIHJvbGUgbWF5IG5vdCBleGlzdCAoaXQgd2FzIGFkZGVkIGluIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIDcpLiBJZiBzbzpcbiAgICogICAgIGEuIFJldHVybiB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBpZiB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBhcmUgZm9yIHRoZSBzdGFjayBhY2NvdW50XG4gICAqICAgICAgICAoeW91IHdpbGwgbm90aWNlIHRoaXMgYXMgYGlzRmFsbGJhY2tDcmVkZW50aWFscz10cnVlYCkuXG4gICAqICAgICBiLiBUaHJvdyBhbiBlcnJvciBpZiB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBhcmUgbm90IGZvciB0aGUgc3RhY2sgYWNjb3VudC5cbiAgICpcbiAgICogIDIuIFRoZSBsb29rdXAgcm9sZSBtYXkgbm90IGhhdmUgdGhlIGNvcnJlY3QgcGVybWlzc2lvbnMgKGZvciBleGFtcGxlLCBSZWFkT25seUFjY2VzcyB3YXMgYWRkZWQgaW5cbiAgICogICAgIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIDgpOyB0aGUgc3RhY2sgd2lsbCBoYXZlIGEgbWluaW11bSB2ZXJzaW9uIG51bWJlciBvbiBpdC5cbiAgICogICAgIGEuIElmIGl0IGRvZXMgbm90IHdlIHRocm93IGFuIGVycm9yIHdoaWNoIHNob3VsZCBiZSBoYW5kbGVkIGluIHRoZSBjYWxsaW5nXG4gICAqICAgICAgICBmdW5jdGlvbiAoYW5kIGZhbGxiYWNrIHRvIHVzZSBhIGRpZmZlcmVudCByb2xlLCBldGMpXG4gICAqXG4gICAqIFVwb24gc3VjY2VzcywgY2FsbGVyIHdpbGwgaGF2ZSBhbiBTREsgZm9yIHRoZSByaWdodCBhY2NvdW50LCB3aGljaCBtYXkgb3IgbWF5IG5vdCBoYXZlXG4gICAqIHRoZSByaWdodCBwZXJtaXNzaW9ucy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY2Nlc3NTdGFja0Zvckxvb2t1cChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KTogUHJvbWlzZTxUYXJnZXRFbnZpcm9ubWVudD4ge1xuICAgIGlmICghc3RhY2suZW52aXJvbm1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrRW52aXJvbm1lbnRNaXNzaW5nJywgYFRoZSBzdGFjayAke3N0YWNrLmRpc3BsYXlOYW1lfSBkb2VzIG5vdCBoYXZlIGFuIGVudmlyb25tZW50YCk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9va3VwRW52ID0gYXdhaXQgdGhpcy5wcmVwYXJlU2RrKHtcbiAgICAgIGVudmlyb25tZW50OiBzdGFjay5lbnZpcm9ubWVudCxcbiAgICAgIG1vZGU6IE1vZGUuRm9yUmVhZGluZyxcbiAgICAgIGFzc3VtZVJvbGVBcm46IHN0YWNrLmxvb2t1cFJvbGU/LmFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBzdGFjay5sb29rdXBSb2xlPy5hc3N1bWVSb2xlRXh0ZXJuYWxJZCxcbiAgICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogc3RhY2subG9va3VwUm9sZT8uYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgLy8gaWYgd2Ugc3VjY2VlZCBpbiBhc3N1bWluZyB0aGUgbG9va3VwIHJvbGUsIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBjb3JyZWN0IGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAgaWYgKGxvb2t1cEVudi5kaWRBc3N1bWVSb2xlICYmIHN0YWNrLmxvb2t1cFJvbGU/LmJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlciAmJiBzdGFjay5sb29rdXBSb2xlLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uKSB7XG4gICAgICBjb25zdCB2ZXJzaW9uID0gYXdhaXQgbG9va3VwRW52LnJlc291cmNlcy52ZXJzaW9uRnJvbVNzbVBhcmFtZXRlcihzdGFjay5sb29rdXBSb2xlLmJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlcik7XG4gICAgICBpZiAodmVyc2lvbiA8IHN0YWNrLmxvb2t1cFJvbGUucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignSW5zdWZmaWNpZW50Qm9vdHN0cmFwU3RhY2tWZXJzaW9uJywgYEJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uICcke3N0YWNrLmxvb2t1cFJvbGUucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb259JyBpcyByZXF1aXJlZCwgZm91bmQgdmVyc2lvbiAnJHt2ZXJzaW9ufScuIFRvIGdldCByaWQgb2YgdGhpcyBlcnJvciwgcGxlYXNlIHVwZ3JhZGUgdG8gYm9vdHN0cmFwIHZlcnNpb24gPj0gJHtzdGFjay5sb29rdXBSb2xlLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9ufWApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobG9va3VwRW52LmlzRmFsbGJhY2tDcmVkZW50aWFscykge1xuICAgICAgY29uc3QgYXJuID0gYXdhaXQgbG9va3VwRW52LnJlcGxhY2VQbGFjZWhvbGRlcnMoc3RhY2subG9va3VwUm9sZT8uYXJuKTtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihgTG9va3VwIHJvbGUgJHthcm59IHdhcyBub3QgYXNzdW1lZC4gUHJvY2VlZGluZyB3aXRoIGRlZmF1bHQgY3JlZGVudGlhbHMuYCk7XG4gICAgfVxuICAgIHJldHVybiBsb29rdXBFbnY7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIFNESyB0byBhY2Nlc3MgdGhlIGdpdmVuIHN0YWNrJ3MgZW52aXJvbm1lbnQgZm9yIHJlYWRpbmcgc3RhY2sgYXR0cmlidXRlc1xuICAgKlxuICAgKiBXaWxsIHVzZSBhIHBsdWdpbiBpZiBhdmFpbGFibGUsIHVzZSB0aGUgZGVmYXVsdCBBV1MgY3JlZGVudGlhbHMgaWYgbm90LlxuICAgKiBUaGUgYG1vZGVgIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgZm9yIHF1ZXJ5aW5nIHBsdWdpbnMuXG4gICAqXG4gICAqIFdpbGwgdHJ5IHRvIGFzc3VtZSB0aGUgbG9va3VwIHJvbGUgaWYgZ2l2ZW4sIHdpbGwgdXNlIHRoZSByZWd1bGFyIHN0YWNrIG9wZXJhdGlvbnNcbiAgICogYWNjZXNzIChkZXBsb3ktcm9sZSkgb3RoZXJ3aXNlLiBXaGVuIGNhbGxpbmcgdGhpcywgeW91IHNob3VsZCBhc3N1bWUgdGhhdCB5b3Ugd2lsbCBnZXRcbiAgICogdGhlIGxlYXN0IHByaXZpbGVnZWQgcm9sZSwgc28gZG9uJ3QgdHJ5IHRvIHVzZSBpdCBmb3IgYW55dGhpbmcgdGhlIGBkZXBsb3ktcm9sZWBcbiAgICogd291bGRuJ3QgYmUgYWJsZSB0byBkby4gQWxzbyB5b3UgY2Fubm90IHJlbHkgb24gYmVpbmcgYWJsZSB0byByZWFkIGVuY3J5cHRlZCBhbnl0aGluZy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY2Nlc3NTdGFja0Zvckxvb2t1cEJlc3RFZmZvcnQoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8VGFyZ2V0RW52aXJvbm1lbnQ+IHtcbiAgICBpZiAoIXN0YWNrLmVudmlyb25tZW50KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdTdGFja0Vudmlyb25tZW50TWlzc2luZycsIGBUaGUgc3RhY2sgJHtzdGFjay5kaXNwbGF5TmFtZX0gZG9lcyBub3QgaGF2ZSBhbiBlbnZpcm9ubWVudGApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY2Nlc3NTdGFja0Zvckxvb2t1cChzdGFjayk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oYCR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjaywgTW9kZS5Gb3JSZWFkaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIHRvIGFjY2VzcyB0aGUgZ2l2ZW4gc3RhY2sncyBlbnZpcm9ubWVudCBmb3Igc3RhY2sgb3BlcmF0aW9uc1xuICAgKlxuICAgKiBXaWxsIHVzZSBhIHBsdWdpbiBpZiBhdmFpbGFibGUsIHVzZSB0aGUgZGVmYXVsdCBBV1MgY3JlZGVudGlhbHMgaWYgbm90LlxuICAgKiBUaGUgYG1vZGVgIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgZm9yIHF1ZXJ5aW5nIHBsdWdpbnMuXG4gICAqXG4gICAqIFdpbGwgYXNzdW1lIHRoZSBkZXBsb3kgcm9sZSBpZiBjb25maWd1cmVkIG9uIHRoZSBzdGFjay4gQ2hlY2sgdGhlIGRlZmF1bHQgYGRlcGxveS1yb2xlYFxuICAgKiBwb2xpY2llcyB0byBzZWUgd2hhdCB5b3UgY2FuIGRvIHdpdGggdGhpcyByb2xlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBhY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBtb2RlOiBNb2RlKTogUHJvbWlzZTxUYXJnZXRFbnZpcm9ubWVudD4ge1xuICAgIGlmICghc3RhY2suZW52aXJvbm1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrRW52aXJvbm1lbnRNaXNzaW5nJywgYFRoZSBzdGFjayAke3N0YWNrLmRpc3BsYXlOYW1lfSBkb2VzIG5vdCBoYXZlIGFuIGVudmlyb25tZW50YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJlcGFyZVNkayh7XG4gICAgICBlbnZpcm9ubWVudDogc3RhY2suZW52aXJvbm1lbnQsXG4gICAgICBtb2RlLFxuICAgICAgYXNzdW1lUm9sZUFybjogc3RhY2suYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBzdGFjay5hc3N1bWVSb2xlRXh0ZXJuYWxJZCxcbiAgICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogc3RhY2suYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYW4gU0RLIGZvciB1c2UgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50IGFuZCBvcHRpb25hbGx5IHdpdGggYSByb2xlIGFzc3VtZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHByZXBhcmVTZGsoXG4gICAgb3B0aW9uczogUHJlcGFyZVNka1JvbGVPcHRpb25zLFxuICApOiBQcm9taXNlPFRhcmdldEVudmlyb25tZW50PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudCA9IGF3YWl0IHRoaXMuc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KG9wdGlvbnMuZW52aXJvbm1lbnQpO1xuXG4gICAgLy8gU3Vic3RpdHV0ZSBhbnkgcGxhY2Vob2xkZXJzIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnRcbiAgICBjb25zdCB7IGFzc3VtZVJvbGVBcm4gfSA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5hc3N1bWVSb2xlQXJuLFxuICAgIH0sIHJlc29sdmVkRW52aXJvbm1lbnQsIHRoaXMuc2RrUHJvdmlkZXIpO1xuXG4gICAgY29uc3Qgc3RhY2tTZGsgPSBhd2FpdCB0aGlzLmNhY2hlZFNka0ZvckVudmlyb25tZW50KHJlc29sdmVkRW52aXJvbm1lbnQsIG9wdGlvbnMubW9kZSwge1xuICAgICAgYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zOiBvcHRpb25zLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzZGs6IHN0YWNrU2RrLnNkayxcbiAgICAgIHJlc29sdmVkRW52aXJvbm1lbnQsXG4gICAgICByZXNvdXJjZXM6IHRoaXMuZW52aXJvbm1lbnRSZXNvdXJjZXMuZm9yKHJlc29sdmVkRW52aXJvbm1lbnQsIHN0YWNrU2RrLnNkaywgdGhpcy5pb0hlbHBlciksXG4gICAgICAvLyBJZiB3ZSBhc2tlZCBmb3IgYSByb2xlLCBkaWQgbm90IHN1Y2Nlc3NmdWxseSBhc3N1bWUgaXQsIGFuZCB5ZXQgZ290IGhlcmUgd2l0aG91dCBhbiBleGNlcHRpb246IHRoYXRcbiAgICAgIC8vIG1lYW5zIHdlIG11c3QgaGF2ZSBmYWxsYmFjayBjcmVkZW50aWFscy5cbiAgICAgIGlzRmFsbGJhY2tDcmVkZW50aWFsczogIXN0YWNrU2RrLmRpZEFzc3VtZVJvbGUgJiYgISFhc3N1bWVSb2xlQXJuLFxuICAgICAgZGlkQXNzdW1lUm9sZTogc3RhY2tTZGsuZGlkQXNzdW1lUm9sZSxcbiAgICAgIHJlcGxhY2VQbGFjZWhvbGRlcnM6IGFzeW5jIDxBIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkPihzdHI6IEEpID0+IHtcbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgcmVwbGFjZUVudlBsYWNlaG9sZGVycyh7IHN0ciB9LCByZXNvbHZlZEVudmlyb25tZW50LCB0aGlzLnNka1Byb3ZpZGVyKTtcbiAgICAgICAgcmV0dXJuIHJldC5zdHI7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNhY2hlZFNka0ZvckVudmlyb25tZW50KFxuICAgIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbiAgICBtb2RlOiBNb2RlLFxuICAgIG9wdGlvbnM/OiBDcmVkZW50aWFsc09wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IGNhY2hlS2V5RWxlbWVudHMgPSBbXG4gICAgICBlbnZpcm9ubWVudC5hY2NvdW50LFxuICAgICAgZW52aXJvbm1lbnQucmVnaW9uLFxuICAgICAgYCR7bW9kZX1gLFxuICAgICAgb3B0aW9ucz8uYXNzdW1lUm9sZUFybiA/PyAnJyxcbiAgICAgIG9wdGlvbnM/LmFzc3VtZVJvbGVFeHRlcm5hbElkID8/ICcnLFxuICAgIF07XG5cbiAgICBpZiAob3B0aW9ucz8uYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zKSB7XG4gICAgICBjYWNoZUtleUVsZW1lbnRzLnB1c2goSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZUtleSA9IGNhY2hlS2V5RWxlbWVudHMuam9pbignOicpO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5zZGtDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBjb25zdCByZXQgPSBhd2FpdCB0aGlzLnNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KGVudmlyb25tZW50LCBtb2RlLCBvcHRpb25zKTtcbiAgICB0aGlzLnNka0NhY2hlLnNldChjYWNoZUtleSwgcmV0KTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG59XG5cbi8qKlxuICogU0RLIG9idGFpbmVkIGJ5IGFzc3VtaW5nIHRoZSBkZXBsb3kgcm9sZVxuICogZm9yIGEgZ2l2ZW4gZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgU0RLIGZvciB0aGUgZ2l2ZW4gZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHNkazogU0RLO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb2x2ZWQgZW52aXJvbm1lbnQgZm9yIHRoZSBzdGFja1xuICAgKiAobm8gbW9yZSAndW5rbm93bi1hY2NvdW50L3Vua25vd24tcmVnaW9uJylcbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVkRW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgY2xhc3MgZm9yIGVudmlyb25tZW50YWwgcmVzb3VyY2VzIHRvIGhlbHAgdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHdlIGFzc3VtZWQgYSByb2xlIGluIHRoZSBwcm9jZXNzIG9mIGdldHRpbmcgdGhlc2UgY3JlZGVudGlhbHNcbiAgICovXG4gIHJlYWRvbmx5IGRpZEFzc3VtZVJvbGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZXNlIGFyZSBmYWxsYmFjayBjcmVkZW50aWFsc1xuICAgKlxuICAgKiBGYWxsYmFjayBjcmVkZW50aWFscyBtZWFucyB0aGF0IGFzc3VtaW5nIHRoZSBpbnRlbmRlZCByb2xlIGZhaWxlZCwgYnV0IHRoZVxuICAgKiBiYXNlIGNyZWRlbnRpYWxzIGhhcHBlbiB0byBiZSBmb3IgdGhlIHJpZ2h0IGFjY291bnQgc28gd2UganVzdCBwaWNrZWQgdGhvc2VcbiAgICogYW5kIGhvcGUgdGhlIGZ1dHVyZSBTREsgY2FsbHMgc3VjY2VlZC5cbiAgICpcbiAgICogVGhpcyBpcyBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1lY2hhbmlzbSBmcm9tIGFyb3VuZCB0aGUgdGltZSB3ZSBpbnRyb2R1Y2VkXG4gICAqIGRlcGxveW1lbnQgcm9sZXMuXG4gICAqL1xuICByZWFkb25seSBpc0ZhbGxiYWNrQ3JlZGVudGlhbHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgZW52aXJvbm1lbnQgcGxhY2Vob2xkZXJzIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBlbnZpcm9ubWVudFxuICAgKi9cbiAgcmVwbGFjZVBsYWNlaG9sZGVycyh4OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBQcm9taXNlPFN0cmluZ1dpdGhvdXRQbGFjZWhvbGRlcnMgfCB1bmRlZmluZWQ+O1xufVxuXG5pbnRlcmZhY2UgUHJlcGFyZVNka1JvbGVPcHRpb25zIHtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xuICByZWFkb25seSBtb2RlOiBNb2RlO1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuICByZWFkb25seSBhc3N1bWVSb2xlRXh0ZXJuYWxJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoBootstrapStackEnvironmentResources = exports.EnvironmentResources = exports.EnvironmentResourcesRegistry = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst notices_1 = require(\"../notices\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\n/**\n * Registry class for `EnvironmentResources`.\n *\n * The state management of this class is a bit non-standard. We want to cache\n * data related to toolkit stacks and SSM parameters, but we are not in charge\n * of ensuring caching of SDKs. Since `EnvironmentResources` needs an SDK to\n * function, we treat it as an ephemeral class, and store the actual cached data\n * in `EnvironmentResourcesRegistry`.\n */\nclass EnvironmentResourcesRegistry {\n toolkitStackName;\n cache = new Map();\n constructor(toolkitStackName) {\n this.toolkitStackName = toolkitStackName;\n }\n for(resolvedEnvironment, sdk, ioHelper) {\n const key = `${resolvedEnvironment.account}:${resolvedEnvironment.region}`;\n let envCache = this.cache.get(key);\n if (!envCache) {\n envCache = emptyCache();\n this.cache.set(key, envCache);\n }\n return new EnvironmentResources(resolvedEnvironment, sdk, ioHelper, envCache, this.toolkitStackName);\n }\n}\nexports.EnvironmentResourcesRegistry = EnvironmentResourcesRegistry;\n/**\n * Interface with the account and region we're deploying into\n *\n * Manages lookups for bootstrapped resources, falling back to the legacy \"CDK Toolkit\"\n * original bootstrap stack if necessary.\n *\n * The state management of this class is a bit non-standard. We want to cache\n * data related to toolkit stacks and SSM parameters, but we are not in charge\n * of ensuring caching of SDKs. Since `EnvironmentResources` needs an SDK to\n * function, we treat it as an ephemeral class, and store the actual cached data\n * in `EnvironmentResourcesRegistry`.\n */\nclass EnvironmentResources {\n environment;\n sdk;\n ioHelper;\n cache;\n toolkitStackName;\n constructor(environment, sdk, ioHelper, cache, toolkitStackName) {\n this.environment = environment;\n this.sdk = sdk;\n this.ioHelper = ioHelper;\n this.cache = cache;\n this.toolkitStackName = toolkitStackName;\n }\n /**\n * Look up the toolkit for a given environment, using a given SDK\n */\n async lookupToolkit() {\n if (!this.cache.toolkitInfo) {\n this.cache.toolkitInfo = await toolkit_info_1.ToolkitInfo.lookup(this.environment, this.sdk, this.ioHelper, this.toolkitStackName);\n }\n return this.cache.toolkitInfo;\n }\n /**\n * Validate that the bootstrap stack version matches or exceeds the expected version\n *\n * Use the SSM parameter name to read the version number if given, otherwise use the version\n * discovered on the bootstrap stack.\n *\n * Pass in the SSM parameter name so we can cache the lookups an don't need to do the same\n * lookup again and again for every artifact.\n */\n async validateVersion(expectedVersion, ssmParameterName) {\n if (expectedVersion === undefined) {\n // No requirement\n return;\n }\n const defExpectedVersion = expectedVersion;\n if (ssmParameterName !== undefined) {\n try {\n doValidate(await this.versionFromSsmParameter(ssmParameterName), this.environment);\n return;\n }\n catch (e) {\n if (e.name !== 'AccessDeniedException') {\n throw e;\n }\n // This is a fallback! The bootstrap template that goes along with this change introduces\n // a new 'ssm:GetParameter' permission, but when run using the previous bootstrap template we\n // won't have the permissions yet to read the version, so we won't be able to show the\n // message telling the user they need to update! When we see an AccessDeniedException, fall\n // back to the version we read from Stack Outputs; but ONLY if the version we discovered via\n // outputs is legitimately an old version. If it's newer than that, something else must be broken,\n // so let it fail as it would if we didn't have this fallback.\n const bootstrapStack = await this.lookupToolkit();\n if (bootstrapStack.found && bootstrapStack.version < BOOTSTRAP_TEMPLATE_VERSION_INTRODUCING_GETPARAMETER) {\n await this.ioHelper.defaults.warn(`Could not read SSM parameter ${ssmParameterName}: ${(0, util_1.formatErrorMessage)(e)}, falling back to version from ${bootstrapStack}`);\n doValidate(bootstrapStack.version, this.environment);\n return;\n }\n throw new toolkit_error_1.ToolkitError('BootstrapVersionSsmConfirmationFailed', `This CDK deployment requires bootstrap stack version '${expectedVersion}', but during the confirmation via SSM parameter ${ssmParameterName} the following error occurred: ${e}`);\n }\n }\n // No SSM parameter\n const bootstrapStack = await this.lookupToolkit();\n doValidate(bootstrapStack.version, this.environment);\n function doValidate(version, environment) {\n const notices = notices_1.Notices.get();\n if (notices) {\n // if `Notices` hasn't been initialized there is probably a good\n // reason for it. handle gracefully.\n notices.addBootstrappedEnvironment({ bootstrapStackVersion: version, environment });\n }\n if (defExpectedVersion > version) {\n throw new toolkit_error_1.ToolkitError('OutdatedBootstrapStack', `This CDK deployment requires bootstrap stack version '${expectedVersion}', found '${version}'. Please run 'cdk bootstrap'.`);\n }\n }\n }\n /**\n * Read a version from an SSM parameter, cached\n */\n async versionFromSsmParameter(parameterName) {\n const existing = this.cache.ssmParameters.get(parameterName);\n if (existing !== undefined) {\n return existing;\n }\n const ssm = this.sdk.ssm();\n try {\n const result = await ssm.getParameter({\n Name: parameterName,\n // A custom template might use a SecureString for this, so we request the decrypted parameter.\n // The flag is safe to set, since it will be ignored for unencrypted parameters.\n // It is still up to user to ensure that all roles have sufficient permissions,\n // however when using AWS Managed Keys, SSM is granted decryption permissions by default.\n WithDecryption: true,\n });\n const asNumber = parseInt(`${result.Parameter?.Value}`, 10);\n if (isNaN(asNumber)) {\n throw new toolkit_error_1.ToolkitError('SsmParameterNotANumber', `SSM parameter ${parameterName} not a number: ${result.Parameter?.Value}`);\n }\n this.cache.ssmParameters.set(parameterName, asNumber);\n return asNumber;\n }\n catch (e) {\n if (e.name === 'ParameterNotFound') {\n throw new toolkit_error_1.ToolkitError('SsmParameterNotFound', `SSM parameter ${parameterName} not found. Has the environment been bootstrapped? Please run \\'cdk bootstrap\\' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)`);\n }\n throw e;\n }\n }\n async prepareEcrRepository(repositoryName) {\n if (!this.sdk) {\n throw new toolkit_error_1.ToolkitError('SdkNotInitialized', 'ToolkitInfo needs to have been initialized with an sdk to call prepareEcrRepository');\n }\n const ecr = this.sdk.ecr();\n // check if repo already exists\n try {\n await this.ioHelper.defaults.debug(`${repositoryName}: checking if ECR repository already exists`);\n const describeResponse = await ecr.describeRepositories({\n repositoryNames: [repositoryName],\n });\n const existingRepositoryUri = describeResponse.repositories[0]?.repositoryUri;\n if (existingRepositoryUri) {\n return { repositoryUri: existingRepositoryUri };\n }\n }\n catch (e) {\n if (e.name !== 'RepositoryNotFoundException') {\n throw e;\n }\n }\n // create the repo (tag it so it will be easier to garbage collect in the future)\n await this.ioHelper.defaults.debug(`${repositoryName}: creating ECR repository`);\n const assetTag = { Key: 'awscdk:asset', Value: 'true' };\n const response = await ecr.createRepository({\n repositoryName,\n tags: [assetTag],\n });\n const repositoryUri = response.repository?.repositoryUri;\n if (!repositoryUri) {\n throw new toolkit_error_1.ToolkitError('EcrRepositoryCreateFailed', `CreateRepository did not return a repository URI for ${repositoryUri}`);\n }\n // configure image scanning on push (helps in identifying software vulnerabilities, no additional charge)\n await this.ioHelper.defaults.debug(`${repositoryName}: enable image scanning`);\n await ecr.putImageScanningConfiguration({\n repositoryName,\n imageScanningConfiguration: { scanOnPush: true },\n });\n return { repositoryUri };\n }\n}\nexports.EnvironmentResources = EnvironmentResources;\nclass NoBootstrapStackEnvironmentResources extends EnvironmentResources {\n constructor(environment, sdk, ioHelper) {\n super(environment, sdk, ioHelper, emptyCache());\n }\n /**\n * Look up the toolkit for a given environment, using a given SDK\n */\n async lookupToolkit() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackRequired', 'Trying to perform an operation that requires a bootstrap stack; you should not see this error, this is a bug in the CDK CLI.');\n }\n}\nexports.NoBootstrapStackEnvironmentResources = NoBootstrapStackEnvironmentResources;\nfunction emptyCache() {\n return {\n ssmParameters: new Map(),\n toolkitInfo: undefined,\n };\n}\n/**\n * The bootstrap template version that introduced ssm:GetParameter\n */\nconst BOOTSTRAP_TEMPLATE_VERSION_INTRODUCING_GETPARAMETER = 5;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnQtcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtEQUEyRDtBQUMzRCxxQ0FBZ0Q7QUFHaEQsd0NBQXFDO0FBQ3JDLGtEQUFzRTtBQUV0RTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsNEJBQTRCO0lBR1Y7SUFGWixLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7SUFFN0QsWUFBNkIsZ0JBQXlCO1FBQXpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUztJQUN0RCxDQUFDO0lBRU0sR0FBRyxDQUFDLG1CQUFnQyxFQUFFLEdBQVEsRUFBRSxRQUFrQjtRQUN2RSxNQUFNLEdBQUcsR0FBRyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzRSxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxRQUFRLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLElBQUksb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNGO0FBZkQsb0VBZUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQWEsb0JBQW9CO0lBRWI7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUxuQixZQUNrQixXQUF3QixFQUN2QixHQUFRLEVBQ1IsUUFBa0IsRUFDbEIsS0FBdUIsRUFDdkIsZ0JBQXlCO1FBSjFCLGdCQUFXLEdBQVgs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QUFJLEdBQUcsRUFBRTtRQUN4QixXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxtREFBbUQsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBOb3RpY2VzIH0gZnJvbSAnLi4vbm90aWNlcyc7XG5pbXBvcnQgeyB0eXBlIEVjclJlcG9zaXRvcnlJbmZvLCBUb29sa2l0SW5mbyB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbi8qKlxuICogUmVnaXN0cnkgY2xhc3MgZm9yIGBFbnZpcm9ubWVudFJlc291cmNlc2AuXG4gKlxuICogVGhlIHN0YXRlIG1hbmFnZW1lbnQgb2YgdGhpcyBjbGFzcyBpcyBhIGJpdCBub24tc3RhbmRhcmQuIFdlIHdhbnQgdG8gY2FjaGVcbiAqIGRhdGEgcmVsYXRlZCB0byB0b29sa2l0IHN0YWNrcyBhbmQgU1NNIHBhcmFtZXRlcnMsIGJ1dCB3ZSBhcmUgbm90IGluIGNoYXJnZVxuICogb2YgZW5zdXJpbmcgY2FjaGluZyBvZiBTREtzLiBTaW5jZSBgRW52aXJvbm1lbnRSZXNvdXJjZXNgIG5lZWRzIGFuIFNESyB0b1xuICogZnVuY3Rpb24sIHdlIHRyZWF0IGl0IGFzIGFuIGVwaGVtZXJhbCBjbGFzcywgYW5kIHN0b3JlIHRoZSBhY3R1YWwgY2FjaGVkIGRhdGFcbiAqIGluIGBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5YC5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEVudmlyb25tZW50Q2FjaGU+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0b29sa2l0U3RhY2tOYW1lPzogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgZm9yKHJlc29sdmVkRW52aXJvbm1lbnQ6IEVudmlyb25tZW50LCBzZGs6IFNESywgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgY29uc3Qga2V5ID0gYCR7cmVzb2x2ZWRFbnZpcm9ubWVudC5hY2NvdW50fToke3Jlc29sdmVkRW52aXJvbm1lbnQucmVnaW9ufWA7XG4gICAgbGV0IGVudkNhY2hlID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICBpZiAoIWVudkNhY2hlKSB7XG4gICAgICBlbnZDYWNoZSA9IGVtcHR5Q2FjaGUoKTtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgZW52Q2FjaGUpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEVudmlyb25tZW50UmVzb3VyY2VzKHJlc29sdmVkRW52aXJvbm1lbnQsIHNkaywgaW9IZWxwZXIsIGVudkNhY2hlLCB0aGlzLnRvb2xraXRTdGFja05hbWUpO1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdpdGggdGhlIGFjY291bnQgYW5kIHJlZ2lvbiB3ZSdyZSBkZXBsb3lpbmcgaW50b1xuICpcbiAqIE1hbmFnZXMgbG9va3VwcyBmb3IgYm9vdHN0cmFwcGVkIHJlc291cmNlcywgZmFsbGluZyBiYWNrIHRvIHRoZSBsZWdhY3kgXCJDREsgVG9vbGtpdFwiXG4gKiBvcmlnaW5hbCBib290c3RyYXAgc3RhY2sgaWYgbmVjZXNzYXJ5LlxuICpcbiAqIFRoZSBzdGF0ZSBtYW5hZ2VtZW50IG9mIHRoaXMgY2xhc3MgaXMgYSBiaXQgbm9uLXN0YW5kYXJkLiBXZSB3YW50IHRvIGNhY2hlXG4gKiBkYXRhIHJlbGF0ZWQgdG8gdG9vbGtpdCBzdGFja3MgYW5kIFNTTSBwYXJhbWV0ZXJzLCBidXQgd2UgYXJlIG5vdCBpbiBjaGFyZ2VcbiAqIG9mIGVuc3VyaW5nIGNhY2hpbmcgb2YgU0RLcy4gU2luY2UgYEVudmlyb25tZW50UmVzb3VyY2VzYCBuZWVkcyBhbiBTREsgdG9cbiAqIGZ1bmN0aW9uLCB3ZSB0cmVhdCBpdCBhcyBhbiBlcGhlbWVyYWwgY2xhc3MsIGFuZCBzdG9yZSB0aGUgYWN0dWFsIGNhY2hlZCBkYXRhXG4gKiBpbiBgRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeWAuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudFJlc291cmNlcyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZGs6IFNESyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlOiBFbnZpcm9ubWVudENhY2hlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZT86IHN0cmluZyxcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogTG9vayB1cCB0aGUgdG9vbGtpdCBmb3IgYSBnaXZlbiBlbnZpcm9ubWVudCwgdXNpbmcgYSBnaXZlbiBTREtcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb29rdXBUb29sa2l0KCkge1xuICAgIGlmICghdGhpcy5jYWNoZS50b29sa2l0SW5mbykge1xuICAgICAgdGhpcy5jYWNoZS50b29sa2l0SW5mbyA9IGF3YWl0IFRvb2xraXRJbmZvLmxvb2t1cCh0aGlzLmVudmlyb25tZW50LCB0aGlzLnNkaywgdGhpcy5pb0hlbHBlciwgdGhpcy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUudG9vbGtpdEluZm87XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhhdCB0aGUgYm9vdHN0cmFwIHN0YWNrIHZlcnNpb24gbWF0Y2hlcyBvciBleGNlZWRzIHRoZSBleHBlY3RlZCB2ZXJzaW9uXG4gICAqXG4gICAqIFVzZSB0aGUgU1NNIHBhcmFtZXRlciBuYW1lIHRvIHJlYWQgdGhlIHZlcnNpb24gbnVtYmVyIGlmIGdpdmVuLCBvdGhlcndpc2UgdXNlIHRoZSB2ZXJzaW9uXG4gICAqIGRpc2NvdmVyZWQgb24gdGhlIGJvb3RzdHJhcCBzdGFjay5cbiAgICpcbiAgICogUGFzcyBpbiB0aGUgU1NNIHBhcmFtZXRlciBuYW1lIHNvIHdlIGNhbiBjYWNoZSB0aGUgbG9va3VwcyBhbiBkb24ndCBuZWVkIHRvIGRvIHRoZSBzYW1lXG4gICAqIGxvb2t1cCBhZ2FpbiBhbmQgYWdhaW4gZm9yIGV2ZXJ5IGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlVmVyc2lvbihleHBlY3RlZFZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZCwgc3NtUGFyYW1ldGVyTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKGV4cGVjdGVkVmVyc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBObyByZXF1aXJlbWVudFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWZFeHBlY3RlZFZlcnNpb24gPSBleHBlY3RlZFZlcnNpb247XG5cbiAgICBpZiAoc3NtUGFyYW1ldGVyTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBkb1ZhbGlkYXRlKGF3YWl0IHRoaXMudmVyc2lvbkZyb21Tc21QYXJhbWV0ZXIoc3NtUGFyYW1ldGVyTmFtZSksIHRoaXMuZW52aXJvbm1lbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKGUubmFtZSAhPT0gJ0FjY2Vzc0RlbmllZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyBhIGZhbGxiYWNrISBUaGUgYm9vdHN0cmFwIHRlbXBsYXRlIHRoYXQgZ29lcyBhbG9uZyB3aXRoIHRoaXMgY2hhbmdlIGludHJvZHVjZXNcbiAgICAgICAgLy8gYSBuZXcgJ3NzbTpHZXRQYXJhbWV0ZXInIHBlcm1pc3Npb24sIGJ1dCB3aGVuIHJ1biB1c2luZyB0aGUgcHJldmlvdXMgYm9vdHN0cmFwIHRlbXBsYXRlIHdlXG4gICAgICAgIC8vIHdvbid0IGhhdmUgdGhlIHBlcm1pc3Npb25zIHlldCB0byByZWFkIHRoZSB2ZXJzaW9uLCBzbyB3ZSB3b24ndCBiZSBhYmxlIHRvIHNob3cgdGhlXG4gICAgICAgIC8vIG1lc3NhZ2UgdGVsbGluZyB0aGUgdXNlciB0aGV5IG5lZWQgdG8gdXBkYXRlISBXaGVuIHdlIHNlZSBhbiBBY2Nlc3NEZW5pZWRFeGNlcHRpb24sIGZhbGxcbiAgICAgICAgLy8gYmFjayB0byB0aGUgdmVyc2lvbiB3ZSByZWFkIGZyb20gU3RhY2sgT3V0cHV0czsgYnV0IE9OTFkgaWYgdGhlIHZlcnNpb24gd2UgZGlzY292ZXJlZCB2aWFcbiAgICAgICAgLy8gb3V0cHV0cyBpcyBsZWdpdGltYXRlbHkgYW4gb2xkIHZlcnNpb24uIElmIGl0J3MgbmV3ZXIgdGhhbiB0aGF0LCBzb21ldGhpbmcgZWxzZSBtdXN0IGJlIGJyb2tlbixcbiAgICAgICAgLy8gc28gbGV0IGl0IGZhaWwgYXMgaXQgd291bGQgaWYgd2UgZGlkbid0IGhhdmUgdGhpcyBmYWxsYmFjay5cbiAgICAgICAgY29uc3QgYm9vdHN0cmFwU3RhY2sgPSBhd2FpdCB0aGlzLmxvb2t1cFRvb2xraXQoKTtcbiAgICAgICAgaWYgKGJvb3RzdHJhcFN0YWNrLmZvdW5kICYmIGJvb3RzdHJhcFN0YWNrLnZlcnNpb24gPCBCT09UU1RSQVBfVEVNUExBVEVfVkVSU0lPTl9JTlRST0RVQ0lOR19HRVRQQVJBTUVURVIpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgICBgQ291bGQgbm90IHJlYWQgU1NNIHBhcmFtZXRlciAke3NzbVBhcmFtZXRlck5hbWV9OiAke2Zvcm1hdEVycm9yTWVzc2FnZShlKX0sIGZhbGxpbmcgYmFjayB0byB2ZXJzaW9uIGZyb20gJHtib290c3RyYXBTdGFja31gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgZG9WYWxpZGF0ZShib290c3RyYXBTdGFjay52ZXJzaW9uLCB0aGlzLmVudmlyb25tZW50KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdCb290c3RyYXBWZXJzaW9uU3NtQ29uZmlybWF0aW9uRmFpbGVkJyxcbiAgICAgICAgICBgVGhpcyBDREsgZGVwbG95bWVudCByZXF1aXJlcyBib290c3RyYXAgc3RhY2sgdmVyc2lvbiAnJHtleHBlY3RlZFZlcnNpb259JywgYnV0IGR1cmluZyB0aGUgY29uZmlybWF0aW9uIHZpYSBTU00gcGFyYW1ldGVyICR7c3NtUGFyYW1ldGVyTmFtZX0gdGhlIGZvbGxvd2luZyBlcnJvciBvY2N1cnJlZDogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gU1NNIHBhcmFtZXRlclxuICAgIGNvbnN0IGJvb3RzdHJhcFN0YWNrID0gYXdhaXQgdGhpcy5sb29rdXBUb29sa2l0KCk7XG4gICAgZG9WYWxpZGF0ZShib290c3RyYXBTdGFjay52ZXJzaW9uLCB0aGlzLmVudmlyb25tZW50KTtcblxuICAgIGZ1bmN0aW9uIGRvVmFsaWRhdGUodmVyc2lvbjogbnVtYmVyLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpIHtcbiAgICAgIGNvbnN0IG5vdGljZXMgPSBOb3RpY2VzLmdldCgpO1xuICAgICAgaWYgKG5vdGljZXMpIHtcbiAgICAgICAgLy8gaWYgYE5vdGljZXNgIGhhc24ndCBiZWVuIGluaXRpYWxpemVkIHRoZXJlIGlzIHByb2JhYmx5IGEgZ29vZFxuICAgICAgICAvLyByZWFzb24gZm9yIGl0LiBoYW5kbGUgZ3JhY2VmdWxseS5cbiAgICAgICAgbm90aWNlcy5hZGRCb290c3RyYXBwZWRFbnZpcm9ubWVudCh7IGJvb3RzdHJhcFN0YWNrVmVyc2lvbjogdmVyc2lvbiwgZW52aXJvbm1lbnQgfSk7XG4gICAgICB9XG4gICAgICBpZiAoZGVmRXhwZWN0ZWRWZXJzaW9uID4gdmVyc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdPdXRkYXRlZEJvb3RzdHJhcFN0YWNrJyxcbiAgICAgICAgICBgVGhpcyBDREsgZGVwbG95bWVudCByZXF1aXJlcyBib290c3RyYXAgc3RhY2sgdmVyc2lvbiAnJHtleHBlY3RlZFZlcnNpb259JywgZm91bmQgJyR7dmVyc2lvbn0nLiBQbGVhc2UgcnVuICdjZGsgYm9vdHN0cmFwJy5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIGEgdmVyc2lvbiBmcm9tIGFuIFNTTSBwYXJhbWV0ZXIsIGNhY2hlZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZlcnNpb25Gcm9tU3NtUGFyYW1ldGVyKHBhcmFtZXRlck5hbWU6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmNhY2hlLnNzbVBhcmFtZXRlcnMuZ2V0KHBhcmFtZXRlck5hbWUpO1xuICAgIGlmIChleGlzdGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuXG4gICAgY29uc3Qgc3NtID0gdGhpcy5zZGsuc3NtKCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3NtLmdldFBhcmFtZXRlcih7XG4gICAgICAgIE5hbWU6IHBhcmFtZXRlck5hbWUsXG4gICAgICAgIC8vIEEgY3VzdG9tIHRlbXBsYXRlIG1pZ2h0IHVzZSBhIFNlY3VyZVN0cmluZyBmb3IgdGhpcywgc28gd2UgcmVxdWVzdCB0aGUgZGVjcnlwdGVkIHBhcmFtZXRlci5cbiAgICAgICAgLy8gVGhlIGZsYWcgaXMgc2FmZSB0byBzZXQsIHNpbmNlIGl0IHdpbGwgYmUgaWdub3JlZCBmb3IgdW5lbmNyeXB0ZWQgcGFyYW1ldGVycy5cbiAgICAgICAgLy8gSXQgaXMgc3RpbGwgdXAgdG8gdXNlciB0byBlbnN1cmUgdGhhdCBhbGwgcm9sZXMgaGF2ZSBzdWZmaWNpZW50IHBlcm1pc3Npb25zLFxuICAgICAgICAvLyBob3dldmVyIHdoZW4gdXNpbmcgQVdTIE1hbmFnZWQgS2V5cywgU1NNIGlzIGdyYW50ZWQgZGVjcnlwdGlvbiBwZXJtaXNzaW9ucyBieSBkZWZhdWx0LlxuICAgICAgICBXaXRoRGVjcnlwdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhc051bWJlciA9IHBhcnNlSW50KGAke3Jlc3VsdC5QYXJhbWV0ZXI/LlZhbHVlfWAsIDEwKTtcbiAgICAgIGlmIChpc05hTihhc051bWJlcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU3NtUGFyYW1ldGVyTm90QU51bWJlcicsIGBTU00gcGFyYW1ldGVyICR7cGFyYW1ldGVyTmFtZX0gbm90IGEgbnVtYmVyOiAke3Jlc3VsdC5QYXJhbWV0ZXI/LlZhbHVlfWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNhY2hlLnNzbVBhcmFtZXRlcnMuc2V0KHBhcmFtZXRlck5hbWUsIGFzTnVtYmVyKTtcbiAgICAgIHJldHVybiBhc051bWJlcjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgPT09ICdQYXJhbWV0ZXJOb3RGb3VuZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAnU3NtUGFyYW1ldGVyTm90Rm91bmQnLFxuICAgICAgICAgIGBTU00gcGFyYW1ldGVyICR7cGFyYW1ldGVyTmFtZX0gbm90IGZvdW5kLiBIYXMgdGhlIGVudmlyb25tZW50IGJlZW4gYm9vdHN0cmFwcGVkPyBQbGVhc2UgcnVuIFxcJ2NkayBib290c3RyYXBcXCcgKHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2xhdGVzdC9ndWlkZS9ib290c3RyYXBwaW5nLmh0bWwpYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHByZXBhcmVFY3JSZXBvc2l0b3J5KHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEVjclJlcG9zaXRvcnlJbmZvPiB7XG4gICAgaWYgKCF0aGlzLnNkaykge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2RrTm90SW5pdGlhbGl6ZWQnLCAnVG9vbGtpdEluZm8gbmVlZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGggYW4gc2RrIHRvIGNhbGwgcHJlcGFyZUVjclJlcG9zaXRvcnknKTtcbiAgICB9XG4gICAgY29uc3QgZWNyID0gdGhpcy5zZGsuZWNyKCk7XG5cbiAgICAvLyBjaGVjayBpZiByZXBvIGFscmVhZHkgZXhpc3RzXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7cmVwb3NpdG9yeU5hbWV9OiBjaGVja2luZyBpZiBFQ1IgcmVwb3NpdG9yeSBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgY29uc3QgZGVzY3JpYmVSZXNwb25zZSA9IGF3YWl0IGVjci5kZXNjcmliZVJlcG9zaXRvcmllcyh7XG4gICAgICAgIHJlcG9zaXRvcnlOYW1lczogW3JlcG9zaXRvcnlOYW1lXSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXhpc3RpbmdSZXBvc2l0b3J5VXJpID0gZGVzY3JpYmVSZXNwb25zZS5yZXBvc2l0b3JpZXMhWzBdPy5yZXBvc2l0b3J5VXJpO1xuICAgICAgaWYgKGV4aXN0aW5nUmVwb3NpdG9yeVVyaSkge1xuICAgICAgICByZXR1cm4geyByZXBvc2l0b3J5VXJpOiBleGlzdGluZ1JlcG9zaXRvcnlVcmkgfTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdSZXBvc2l0b3J5Tm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIHRoZSByZXBvICh0YWcgaXQgc28gaXQgd2lsbCBiZSBlYXNpZXIgdG8gZ2FyYmFnZSBjb2xsZWN0IGluIHRoZSBmdXR1cmUpXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtyZXBvc2l0b3J5TmFtZX06IGNyZWF0aW5nIEVDUiByZXBvc2l0b3J5YCk7XG4gICAgY29uc3QgYXNzZXRUYWcgPSB7IEtleTogJ2F3c2Nkazphc3NldCcsIFZhbHVlOiAndHJ1ZScgfTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjci5jcmVhdGVSZXBvc2l0b3J5KHtcbiAgICAgIHJlcG9zaXRvcnlOYW1lLFxuICAgICAgdGFnczogW2Fzc2V0VGFnXSxcbiAgICB9KTtcbiAgICBjb25zdCByZXBvc2l0b3J5VXJpID0gcmVzcG9uc2UucmVwb3NpdG9yeT8ucmVwb3NpdG9yeVVyaTtcbiAgICBpZiAoIXJlcG9zaXRvcnlVcmkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0VjclJlcG9zaXRvcnlDcmVhdGVGYWlsZWQnLCBgQ3JlYXRlUmVwb3NpdG9yeSBkaWQgbm90IHJldHVybiBhIHJlcG9zaXRvcnkgVVJJIGZvciAke3JlcG9zaXRvcnlVcml9YCk7XG4gICAgfVxuXG4gICAgLy8gY29uZmlndXJlIGltYWdlIHNjYW5uaW5nIG9uIHB1c2ggKGhlbHBzIGluIGlkZW50aWZ5aW5nIHNvZnR3YXJlIHZ1bG5lcmFiaWxpdGllcywgbm8gYWRkaXRpb25hbCBjaGFyZ2UpXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtyZXBvc2l0b3J5TmFtZX06IGVuYWJsZSBpbWFnZSBzY2FubmluZ2ApO1xuICAgIGF3YWl0IGVjci5wdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbih7XG4gICAgICByZXBvc2l0b3J5TmFtZSxcbiAgICAgIGltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uOiB7IHNjYW5PblB1c2g6IHRydWUgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHJlcG9zaXRvcnlVcmkgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm9Cb290c3RyYXBTdGFja0Vudmlyb25tZW50UmVzb3VyY2VzIGV4dGVuZHMgRW52aXJvbm1lbnRSZXNvdXJjZXMge1xuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsIHNkazogU0RLLCBpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCwgc2RrLCBpb0hlbHBlciwgZW1wdHlDYWNoZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rIHVwIHRoZSB0b29sa2l0IGZvciBhIGdpdmVuIGVudmlyb25tZW50LCB1c2luZyBhIGdpdmVuIFNES1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvb2t1cFRvb2xraXQoKTogUHJvbWlzZTxUb29sa2l0SW5mbz4ge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAnQm9vdHN0cmFwU3RhY2tSZXF1aXJlZCcsXG4gICAgICAnVHJ5aW5nIHRvIHBlcmZvcm0gYW4gb3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMgYSBib290c3RyYXAgc3RhY2s7IHlvdSBzaG91bGQgbm90IHNlZSB0aGlzIGVycm9yLCB0aGlzIGlzIGEgYnVnIGluIHRoZSBDREsgQ0xJLicsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgdGhhdCBpcyBjYWNoZWQgb24gYSBwZXItZW52aXJvbm1lbnQgbGV2ZWxcbiAqXG4gKiBUaGlzIGNhY2hlIG1heSBiZSBzaGFyZWQgYmV0d2VlbiBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBgRW52aXJvbm1lbnRSZXNvdXJjZXNgIGNsYXNzLlxuICovXG5pbnRlcmZhY2UgRW52aXJvbm1lbnRDYWNoZSB7XG4gIHJlYWRvbmx5IHNzbVBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIG51bWJlcj47XG4gIHRvb2xraXRJbmZvPzogVG9vbGtpdEluZm87XG59XG5cbmZ1bmN0aW9uIGVtcHR5Q2FjaGUoKTogRW52aXJvbm1lbnRDYWNoZSB7XG4gIHJldHVybiB7XG4gICAgc3NtUGFyYW1ldGVyczogbmV3IE1hcCgpLFxuICAgIHRvb2xraXRJbmZvOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogVGhlIGJvb3RzdHJhcCB0ZW1wbGF0ZSB2ZXJzaW9uIHRoYXQgaW50cm9kdWNlZCBzc206R2V0UGFyYW1ldGVyXG4gKi9cbmNvbnN0IEJPT1RTVFJBUF9URU1QTEFURV9WRVJTSU9OX0lOVFJPRFVDSU5HX0dFVFBBUkFNRVRFUiA9IDU7XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./environment-access\"), exports);\n__exportStar(require(\"./environment-resources\"), exports);\n__exportStar(require(\"./placeholders\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXFDO0FBQ3JDLDBEQUF3QztBQUN4QyxpREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50LWFjY2Vzcyc7XG5leHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50LXJlc291cmNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsYWNlaG9sZGVycyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceEnvPlaceholders = replaceEnvPlaceholders;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.\n */\nasync function replaceEnvPlaceholders(object, env, sdkProvider) {\n return cloud_assembly_api_1.EnvironmentPlaceholders.replaceAsync(object, {\n accountId: () => Promise.resolve(env.account),\n region: () => Promise.resolve(env.region),\n partition: async () => {\n // There's no good way to get the partition!\n // We should have had it already, except we don't.\n //\n // Best we can do is ask the \"base credentials\" for this environment for their partition. Cross-partition\n // AssumeRole'ing will never work anyway, so this answer won't be wrong (it will just be slow!)\n return (await sdkProvider.baseCredentialsPartition(env, plugin_1.Mode.ForReading)) ?? 'aws';\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsd0RBaUJDO0FBekJELG9FQUF3RjtBQUd4RixzQ0FBaUM7QUFFakM7O0dBRUc7QUFDSSxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLE1BQVMsRUFDVCxHQUFnQixFQUNoQixXQUF3QjtJQUV4QixPQUFPLDRDQUF1QixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7UUFDbEQsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM3QyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3pDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNwQiw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELEVBQUU7WUFDRix5R0FBeUc7WUFDekcsK0ZBQStGO1lBQy9GLE9BQU8sQ0FBQyxNQUFNLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsYUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3JGLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBCcmFuZGVkIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luJztcblxuLyoqXG4gKiBSZXBsYWNlIHRoZSB7QUNDT1VOVH0gYW5kIHtSRUdJT059IHBsYWNlaG9sZGVycyBpbiBhbGwgc3RyaW5ncyBmb3VuZCBpbiBhIGNvbXBsZXggb2JqZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwbGFjZUVudlBsYWNlaG9sZGVyczxBIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPj4oXG4gIG9iamVjdDogQSxcbiAgZW52OiBFbnZpcm9ubWVudCxcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuKTogUHJvbWlzZTx7IFtrIGluIGtleW9mIEFdOiBTdHJpbmdXaXRob3V0UGxhY2Vob2xkZXJzIHwgdW5kZWZpbmVkIH0+IHtcbiAgcmV0dXJuIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLnJlcGxhY2VBc3luYyhvYmplY3QsIHtcbiAgICBhY2NvdW50SWQ6ICgpID0+IFByb21pc2UucmVzb2x2ZShlbnYuYWNjb3VudCksXG4gICAgcmVnaW9uOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoZW52LnJlZ2lvbiksXG4gICAgcGFydGl0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBUaGVyZSdzIG5vIGdvb2Qgd2F5IHRvIGdldCB0aGUgcGFydGl0aW9uIVxuICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgaGFkIGl0IGFscmVhZHksIGV4Y2VwdCB3ZSBkb24ndC5cbiAgICAgIC8vXG4gICAgICAvLyBCZXN0IHdlIGNhbiBkbyBpcyBhc2sgdGhlIFwiYmFzZSBjcmVkZW50aWFsc1wiIGZvciB0aGlzIGVudmlyb25tZW50IGZvciB0aGVpciBwYXJ0aXRpb24uIENyb3NzLXBhcnRpdGlvblxuICAgICAgLy8gQXNzdW1lUm9sZSdpbmcgd2lsbCBuZXZlciB3b3JrIGFueXdheSwgc28gdGhpcyBhbnN3ZXIgd29uJ3QgYmUgd3JvbmcgKGl0IHdpbGwganVzdCBiZSBzbG93ISlcbiAgICAgIHJldHVybiAoYXdhaXQgc2RrUHJvdmlkZXIuYmFzZUNyZWRlbnRpYWxzUGFydGl0aW9uKGVudiwgTW9kZS5Gb3JSZWFkaW5nKSkgPz8gJ2F3cyc7XG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFN0cmluZ1dpdGhvdXRQbGFjZWhvbGRlcnMgPSBCcmFuZGVkPHN0cmluZywgJ05vUGxhY2Vob2xkZXJzJz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableAppSyncChange = isHotswappableAppSyncChange;\nconst common_1 = require(\"./common\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nasync function isHotswappableAppSyncChange(logicalId, change, evaluateCfnTemplate) {\n const isResolver = change.newValue.Type === 'AWS::AppSync::Resolver';\n const isFunction = change.newValue.Type === 'AWS::AppSync::FunctionConfiguration';\n const isGraphQLSchema = change.newValue.Type === 'AWS::AppSync::GraphQLSchema';\n const isAPIKey = change.newValue.Type === 'AWS::AppSync::ApiKey';\n if (!isResolver && !isFunction && !isGraphQLSchema && !isAPIKey) {\n return [];\n }\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, [\n 'RequestMappingTemplate',\n 'RequestMappingTemplateS3Location',\n 'ResponseMappingTemplate',\n 'ResponseMappingTemplateS3Location',\n 'Code',\n 'CodeS3Location',\n 'Definition',\n 'DefinitionS3Location',\n 'Expires',\n ]);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n const namesOfHotswappableChanges = Object.keys(classifiedChanges.hotswappableProps);\n if (namesOfHotswappableChanges.length > 0) {\n let physicalName = undefined;\n const arn = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, isFunction ? change.newValue.Properties?.Name : undefined);\n if (isResolver) {\n const arnParts = arn?.split('/');\n physicalName = arnParts ? `${arnParts[3]}.${arnParts[5]}` : undefined;\n }\n else {\n physicalName = arn;\n }\n // nothing do here\n if (!physicalName) {\n return ret;\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId,\n resourceType: change.newValue.Type,\n physicalName,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'appsync',\n apply: async (sdk) => {\n const sdkProperties = {\n ...change.oldValue.Properties,\n Definition: change.newValue.Properties?.Definition,\n DefinitionS3Location: change.newValue.Properties?.DefinitionS3Location,\n requestMappingTemplate: change.newValue.Properties?.RequestMappingTemplate,\n requestMappingTemplateS3Location: change.newValue.Properties?.RequestMappingTemplateS3Location,\n responseMappingTemplate: change.newValue.Properties?.ResponseMappingTemplate,\n responseMappingTemplateS3Location: change.newValue.Properties?.ResponseMappingTemplateS3Location,\n code: change.newValue.Properties?.Code,\n codeS3Location: change.newValue.Properties?.CodeS3Location,\n expires: change.newValue.Properties?.Expires,\n };\n const evaluatedResourceProperties = await evaluateCfnTemplate.evaluateCfnExpression(sdkProperties);\n const sdkRequestObject = (0, util_1.transformObjectKeys)(evaluatedResourceProperties, util_1.lowerCaseFirstCharacter);\n // resolve s3 location files as SDK doesn't take in s3 location but inline code\n if (sdkRequestObject.requestMappingTemplateS3Location) {\n sdkRequestObject.requestMappingTemplate = await fetchFileFromS3(sdkRequestObject.requestMappingTemplateS3Location, sdk);\n delete sdkRequestObject.requestMappingTemplateS3Location;\n }\n if (sdkRequestObject.responseMappingTemplateS3Location) {\n sdkRequestObject.responseMappingTemplate = await fetchFileFromS3(sdkRequestObject.responseMappingTemplateS3Location, sdk);\n delete sdkRequestObject.responseMappingTemplateS3Location;\n }\n if (sdkRequestObject.definitionS3Location) {\n sdkRequestObject.definition = await fetchFileFromS3(sdkRequestObject.definitionS3Location, sdk);\n delete sdkRequestObject.definitionS3Location;\n }\n if (sdkRequestObject.codeS3Location) {\n sdkRequestObject.code = await fetchFileFromS3(sdkRequestObject.codeS3Location, sdk);\n delete sdkRequestObject.codeS3Location;\n }\n if (isResolver) {\n await sdk.appsync().updateResolver(sdkRequestObject);\n }\n else if (isFunction) {\n // Function version is only applicable when using VTL and mapping templates\n // Runtime only applicable when using code (JS mapping templates)\n if (sdkRequestObject.code) {\n delete sdkRequestObject.functionVersion;\n }\n else {\n delete sdkRequestObject.runtime;\n }\n const functions = await sdk.appsync().listFunctions({ apiId: sdkRequestObject.apiId });\n const { functionId } = functions.find((fn) => fn.name === physicalName) ?? {};\n // Updating multiple functions at the same time or along with graphql schema results in `ConcurrentModificationException`\n await exponentialBackOffRetry(() => sdk.appsync().updateFunction({\n ...sdkRequestObject,\n functionId: functionId,\n }), 6, 1000, 'ConcurrentModificationException');\n }\n else if (isGraphQLSchema) {\n let schemaCreationResponse = await sdk\n .appsync()\n .startSchemaCreation(sdkRequestObject);\n while (schemaCreationResponse.status &&\n ['PROCESSING', 'DELETING'].some((status) => status === schemaCreationResponse.status)) {\n await sleep(1000); // poll every second\n const getSchemaCreationStatusRequest = {\n apiId: sdkRequestObject.apiId,\n };\n schemaCreationResponse = await sdk.appsync().getSchemaCreationStatus(getSchemaCreationStatusRequest);\n }\n if (schemaCreationResponse.status === 'FAILED') {\n throw new toolkit_error_1.ToolkitError('SchemaCreationFailed', schemaCreationResponse.details ?? 'Schema creation has failed.');\n }\n }\n else {\n // isApiKey\n if (!sdkRequestObject.id) {\n // ApiKeyId is optional in CFN but required in SDK. Grab the KeyId from physicalArn if not available as part of CFN template\n const arnParts = physicalName?.split('/');\n if (arnParts && arnParts.length === 4) {\n sdkRequestObject.id = arnParts[3];\n }\n }\n await sdk.appsync().updateApiKey(sdkRequestObject);\n }\n },\n });\n }\n return ret;\n}\nasync function fetchFileFromS3(s3Url, sdk) {\n const s3PathParts = s3Url.split('/');\n const s3Bucket = s3PathParts[2]; // first two are \"s3:\" and \"\" due to s3://\n const s3Key = s3PathParts.splice(3).join('/'); // after removing first three we reconstruct the key\n return (await sdk.s3().getObject({ Bucket: s3Bucket, Key: s3Key })).Body?.transformToString();\n}\nasync function exponentialBackOffRetry(fn, numOfRetries, backOff, errorCodeToRetry) {\n try {\n await fn();\n }\n catch (error) {\n if (error && error.name === errorCodeToRetry && numOfRetries > 0) {\n await sleep(backOff); // time to wait doubles everytime function fails, starts at 1 second\n await exponentialBackOffRetry(fn, numOfRetries - 1, backOff * 2, errorCodeToRetry);\n }\n else {\n throw error;\n }\n }\n}\nasync function sleep(ms) {\n return new Promise((ok) => setTimeout(ok, ms));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwc3luYy1tYXBwaW5nLXRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcHN5bmMtbWFwcGluZy10ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSxrRUE0SkM7QUF2S0QscUNBR2tCO0FBRWxCLCtEQUEyRDtBQUMzRCxxQ0FBMEU7QUFLbkUsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQ7SUFFbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUM7SUFDckUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUsscUNBQXFDLENBQUM7SUFDbEYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssNkJBQTZCLENBQUM7SUFDL0UsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssc0JBQXNCLENBQUM7SUFDakUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFvQixFQUFFLENBQUM7SUFFaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLHdCQUFlLEVBQUMsTUFBTSxFQUFFO1FBQ2hELHdCQUF3QjtRQUN4QixrQ0FBa0M7UUFDbEMseUJBQXlCO1FBQ3pCLG1DQUFtQztRQUNuQyxNQUFNO1FBQ04sZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIsU0FBUztLQUNWLENBQUMsQ0FBQztJQUNILGlCQUFpQixDQUFDLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVELE1BQU0sMEJBQTBCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFB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Q0gsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsb0VBQW9FO1lBQzFGLE1BQU0sdUJBQXVCLENBQUMsRUFBRSxFQUFFLFlBQVksR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDN0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hcHBzeW5jJztcbmltcG9ydCB7XG4gIHR5cGUgSG90c3dhcENoYW5nZSxcbiAgY2xhc3NpZnlDaGFuZ2VzLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgbG93ZXJDYXNlRmlyc3RDaGFyYWN0ZXIsIHRyYW5zZm9ybU9iamVjdEtleXMgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5cbmltcG9ydCB0eXBlIHsgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgY29uc3QgaXNSZXNvbHZlciA9IGNoYW5nZS5uZXdWYWx1ZS5UeXBlID09PSAnQVdTOjpBcHBTeW5jOjpSZXNvbHZlcic7XG4gIGNvbnN0IGlzRnVuY3Rpb24gPSBjaGFuZ2UubmV3VmFsdWUuVHlwZSA9PT0gJ0FXUzo6QXBwU3luYzo6RnVuY3Rpb25Db25maWd1cmF0aW9uJztcbiAgY29uc3QgaXNHcmFwaFFMU2NoZW1hID0gY2hhbmdlLm5ld1ZhbHVlLlR5cGUgPT09ICdBV1M6OkFwcFN5bmM6OkdyYXBoUUxTY2hlbWEnO1xuICBjb25zdCBpc0FQSUtleSA9IGNoYW5nZS5uZXdWYWx1ZS5UeXBlID09PSAnQVdTOjpBcHBTeW5jOjpBcGlLZXknO1xuICBpZiAoIWlzUmVzb2x2ZXIgJiYgIWlzRnVuY3Rpb24gJiYgIWlzR3JhcGhRTFNjaGVtYSAmJiAhaXNBUElLZXkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXQ6IEhvdHN3YXBDaGFuZ2VbXSA9IFtdO1xuXG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgW1xuICAgICdSZXF1ZXN0TWFwcGluZ1RlbXBsYXRlJyxcbiAgICAnUmVxdWVzdE1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24nLFxuICAgICdSZXNwb25zZU1hcHBpbmdUZW1wbGF0ZScsXG4gICAgJ1Jlc3BvbnNlTWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbicsXG4gICAgJ0NvZGUnLFxuICAgICdDb2RlUzNMb2NhdGlvbicsXG4gICAgJ0RlZmluaXRpb24nLFxuICAgICdEZWZpbml0aW9uUzNMb2NhdGlvbicsXG4gICAgJ0V4cGlyZXMnLFxuICBdKTtcbiAgY2xhc3NpZmllZENoYW5nZXMucmVwb3J0Tm9uSG90c3dhcHBhYmxlUHJvcGVydHlDaGFuZ2VzKHJldCk7XG5cbiAgY29uc3QgbmFtZXNPZkhvdHN3YXBwYWJsZUNoYW5nZXMgPSBPYmplY3Qua2V5cyhjbGFzc2lmaWVkQ2hhbmdlcy5ob3Rzd2FwcGFibGVQcm9wcyk7XG4gIGlmIChuYW1lc09mSG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgbGV0IHBoeXNpY2FsTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFybiA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXN0YWJsaXNoUmVzb3VyY2VQaHlzaWNhbE5hbWUoXG4gICAgICBsb2dpY2FsSWQsXG4gICAgICBpc0Z1bmN0aW9uID8gY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/Lk5hbWUgOiB1bmRlZmluZWQsXG4gICAgKTtcbiAgICBpZiAoaXNSZXNvbHZlcikge1xuICAgICAgY29uc3QgYXJuUGFydHMgPSBhcm4/LnNwbGl0KCcvJyk7XG4gICAgICBwaHlzaWNhbE5hbWUgPSBhcm5QYXJ0cyA/IGAke2FyblBhcnRzWzNdfS4ke2FyblBhcnRzWzVdfWAgOiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBoeXNpY2FsTmFtZSA9IGFybjtcbiAgICB9XG5cbiAgICAvLyBub3RoaW5nIGRvIGhlcmVcbiAgICBpZiAoIXBoeXNpY2FsTmFtZSkge1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICByZXQucHVzaCh7XG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgY2F1c2U6IGNoYW5nZSxcbiAgICAgICAgcmVzb3VyY2VzOiBbe1xuICAgICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgICByZXNvdXJjZVR5cGU6IGNoYW5nZS5uZXdWYWx1ZS5UeXBlLFxuICAgICAgICAgIHBoeXNpY2FsTmFtZSxcbiAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICB9XSxcbiAgICAgIH0sXG4gICAgICBob3Rzd2FwcGFibGU6IHRydWUsXG4gICAgICBzZXJ2aWNlOiAnYXBwc3luYycsXG4gICAgICBhcHBseTogYXN5bmMgKHNkazogU0RLKSA9PiB7XG4gICAgICAgIGNvbnN0IHNka1Byb3BlcnRpZXM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgICAgIC4uLmNoYW5nZS5vbGRWYWx1ZS5Qcm9wZXJ0aWVzLFxuICAgICAgICAgIERlZmluaXRpb246IGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5EZWZpbml0aW9uLFxuICAgICAgICAgIERlZmluaXRpb25TM0xvY2F0aW9uOiBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uRGVmaW5pdGlvblMzTG9jYXRpb24sXG4gICAgICAgICAgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZTogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJlcXVlc3RNYXBwaW5nVGVtcGxhdGUsXG4gICAgICAgICAgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb246IGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5SZXF1ZXN0TWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbixcbiAgICAgICAgICByZXNwb25zZU1hcHBpbmdUZW1wbGF0ZTogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlLFxuICAgICAgICAgIHJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbjogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbixcbiAgICAgICAgICBjb2RlOiBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uQ29kZSxcbiAgICAgICAgICBjb2RlUzNMb2NhdGlvbjogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LkNvZGVTM0xvY2F0aW9uLFxuICAgICAgICAgIGV4cGlyZXM6IGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5FeHBpcmVzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRSZXNvdXJjZVByb3BlcnRpZXMgPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihzZGtQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3Qgc2RrUmVxdWVzdE9iamVjdCA9IHRyYW5zZm9ybU9iamVjdEtleXMoZXZhbHVhdGVkUmVzb3VyY2VQcm9wZXJ0aWVzLCBsb3dlckNhc2VGaXJzdENoYXJhY3Rlcik7XG5cbiAgICAgICAgLy8gcmVzb2x2ZSBzMyBsb2NhdGlvbiBmaWxlcyBhcyBTREsgZG9lc24ndCB0YWtlIGluIHMzIGxvY2F0aW9uIGJ1dCBpbmxpbmUgY29kZVxuICAgICAgICBpZiAoc2RrUmVxdWVzdE9iamVjdC5yZXF1ZXN0TWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbikge1xuICAgICAgICAgIHNka1JlcXVlc3RPYmplY3QucmVxdWVzdE1hcHBpbmdUZW1wbGF0ZSA9IGF3YWl0IGZldGNoRmlsZUZyb21TMyhcbiAgICAgICAgICAgIHNka1JlcXVlc3RPYmplY3QucmVxdWVzdE1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24sXG4gICAgICAgICAgICBzZGssXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWxldGUgc2RrUmVxdWVzdE9iamVjdC5yZXF1ZXN0TWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2RrUmVxdWVzdE9iamVjdC5yZXNwb25zZU1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24pIHtcbiAgICAgICAgICBzZGtSZXF1ZXN0T2JqZWN0LnJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlID0gYXdhaXQgZmV0Y2hGaWxlRnJvbVMzKFxuICAgICAgICAgICAgc2RrUmVxdWVzdE9iamVjdC5yZXNwb25zZU1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24sXG4gICAgICAgICAgICBzZGssXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWxldGUgc2RrUmVxdWVzdE9iamVjdC5yZXNwb25zZU1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNka1JlcXVlc3RPYmplY3QuZGVmaW5pdGlvblMzTG9jYXRpb24pIHtcbiAgICAgICAgICBzZGtSZXF1ZXN0T2JqZWN0LmRlZmluaXRpb24gPSBhd2FpdCBmZXRjaEZpbGVGcm9tUzMoc2RrUmVxdWVzdE9iamVjdC5kZWZpbml0aW9uUzNMb2NhdGlvbiwgc2RrKTtcbiAgICAgICAgICBkZWxldGUgc2RrUmVxdWVzdE9iamVjdC5kZWZpbml0aW9uUzNMb2NhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2RrUmVxdWVzdE9iamVjdC5jb2RlUzNMb2NhdGlvbikge1xuICAgICAgICAgIHNka1JlcXVlc3RPYmplY3QuY29kZSA9IGF3YWl0IGZldGNoRmlsZUZyb21TMyhzZGtSZXF1ZXN0T2JqZWN0LmNvZGVTM0xvY2F0aW9uLCBzZGspO1xuICAgICAgICAgIGRlbGV0ZSBzZGtSZXF1ZXN0T2JqZWN0LmNvZGVTM0xvY2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzUmVzb2x2ZXIpIHtcbiAgICAgICAgICBhd2FpdCBzZGsuYXBwc3luYygpLnVwZGF0ZVJlc29sdmVyKHNka1JlcXVlc3RPYmplY3QpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRnVuY3Rpb24pIHtcbiAgICAgICAgICAvLyBGdW5jdGlvbiB2ZXJzaW9uIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nIFZUTCBhbmQgbWFwcGluZyB0ZW1wbGF0ZXNcbiAgICAgICAgICAvLyBSdW50aW1lIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nIGNvZGUgKEpTIG1hcHBpbmcgdGVtcGxhdGVzKVxuICAgICAgICAgIGlmIChzZGtSZXF1ZXN0T2JqZWN0LmNvZGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBzZGtSZXF1ZXN0T2JqZWN0LmZ1bmN0aW9uVmVyc2lvbjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHNka1JlcXVlc3RPYmplY3QucnVudGltZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmdW5jdGlvbnMgPSBhd2FpdCBzZGsuYXBwc3luYygpLmxpc3RGdW5jdGlvbnMoeyBhcGlJZDogc2RrUmVxdWVzdE9iamVjdC5hcGlJZCB9KTtcbiAgICAgICAgICBjb25zdCB7IGZ1bmN0aW9uSWQgfSA9IGZ1bmN0aW9ucy5maW5kKChmbikgPT4gZm4ubmFtZSA9PT0gcGh5c2ljYWxOYW1lKSA/PyB7fTtcbiAgICAgICAgICAvLyBVcGRhdGluZyBtdWx0aXBsZSBmdW5jdGlvbnMgYXQgdGhlIHNhbWUgdGltZSBvciBhbG9uZyB3aXRoIGdyYXBocWwgc2NoZW1hIHJlc3VsdHMgaW4gYENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25gXG4gICAgICAgICAgYXdhaXQgZXhwb25lbnRpYWxCYWNrT2ZmUmV0cnkoXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICBzZGsuYXBwc3luYygpLnVwZGF0ZUZ1bmN0aW9uKHtcbiAgICAgICAgICAgICAgICAuLi5zZGtSZXF1ZXN0T2JqZWN0LFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uSWQ6IGZ1bmN0aW9uSWQsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgNixcbiAgICAgICAgICAgIDEwMDAsXG4gICAgICAgICAgICAnQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbicsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0dyYXBoUUxTY2hlbWEpIHtcbiAgICAgICAgICBsZXQgc2NoZW1hQ3JlYXRpb25SZXNwb25zZTogR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kT3V0cHV0ID0gYXdhaXQgc2RrXG4gICAgICAgICAgICAuYXBwc3luYygpXG4gICAgICAgICAgICAuc3RhcnRTY2hlbWFDcmVhdGlvbihzZGtSZXF1ZXN0T2JqZWN0KTtcbiAgICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICBzY2hlbWFDcmVhdGlvblJlc3BvbnNlLnN0YXR1cyAmJlxuICAgICAgICAgICAgWydQUk9DRVNTSU5HJywgJ0RFTEVUSU5HJ10uc29tZSgoc3RhdHVzKSA9PiBzdGF0dXMgPT09IHNjaGVtYUNyZWF0aW9uUmVzcG9uc2Uuc3RhdHVzKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgYXdhaXQgc2xlZXAoMTAwMCk7IC8vIHBvbGwgZXZlcnkgc2Vjb25kXG4gICAgICAgICAgICBjb25zdCBnZXRTY2hlbWFDcmVhdGlvblN0YXR1c1JlcXVlc3Q6IEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZElucHV0ID0ge1xuICAgICAgICAgICAgICBhcGlJZDogc2RrUmVxdWVzdE9iamVjdC5hcGlJZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzY2hlbWFDcmVhdGlvblJlc3BvbnNlID0gYXdhaXQgc2RrLmFwcHN5bmMoKS5nZXRTY2hlbWFDcmVhdGlvblN0YXR1cyhnZXRTY2hlbWFDcmVhdGlvblN0YXR1c1JlcXVlc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2NoZW1hQ3JlYXRpb25SZXNwb25zZS5zdGF0dXMgPT09ICdGQUlMRUQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdTY2hlbWFDcmVhdGlvbkZhaWxlZCcsIHNjaGVtYUNyZWF0aW9uUmVzcG9uc2UuZGV0YWlscyA/PyAnU2NoZW1hIGNyZWF0aW9uIGhhcyBmYWlsZWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGlzQXBpS2V5XG4gICAgICAgICAgaWYgKCFzZGtSZXF1ZXN0T2JqZWN0LmlkKSB7XG4gICAgICAgICAgICAvLyBBcGlLZXlJZCBpcyBvcHRpb25hbCBpbiBDRk4gYnV0IHJlcXVpcmVkIGluIFNESy4gR3JhYiB0aGUgS2V5SWQgZnJvbSBwaHlzaWNhbEFybiBpZiBub3QgYXZhaWxhYmxlIGFzIHBhcnQgb2YgQ0ZOIHRlbXBsYXRlXG4gICAgICAgICAgICBjb25zdCBhcm5QYXJ0cyA9IHBoeXNpY2FsTmFtZT8uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChhcm5QYXJ0cyAmJiBhcm5QYXJ0cy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgICAgc2RrUmVxdWVzdE9iamVjdC5pZCA9IGFyblBhcnRzWzNdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhd2FpdCBzZGsuYXBwc3luYygpLnVwZGF0ZUFwaUtleShzZGtSZXF1ZXN0T2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoRmlsZUZyb21TMyhzM1VybDogc3RyaW5nLCBzZGs6IFNESykge1xuICBjb25zdCBzM1BhdGhQYXJ0cyA9IHMzVXJsLnNwbGl0KCcvJyk7XG4gIGNvbnN0IHMzQnVja2V0ID0gczNQYXRoUGFydHNbMl07IC8vIGZpcnN0IHR3byBhcmUgXCJzMzpcIiBhbmQgXCJcIiBkdWUgdG8gczM6Ly9cbiAgY29uc3QgczNLZXkgPSBzM1BhdGhQYXJ0cy5zcGxpY2UoMykuam9pbignLycpOyAvLyBhZnRlciByZW1vdmluZyBmaXJzdCB0aHJlZSB3ZSByZWNvbnN0cnVjdCB0aGUga2V5XG4gIHJldHVybiAoYXdhaXQgc2RrLnMzKCkuZ2V0T2JqZWN0KHsgQnVja2V0OiBzM0J1Y2tldCwgS2V5OiBzM0tleSB9KSkuQm9keT8udHJhbnNmb3JtVG9TdHJpbmcoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhwb25lbnRpYWxCYWNrT2ZmUmV0cnkoZm46ICgpID0+IFByb21pc2U8YW55PiwgbnVtT2ZSZXRyaWVzOiBudW1iZXIsIGJhY2tPZmY6IG51bWJlciwgZXJyb3JDb2RlVG9SZXRyeTogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZm4oKTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmIChlcnJvciAmJiBlcnJvci5uYW1lID09PSBlcnJvckNvZGVUb1JldHJ5ICYmIG51bU9mUmV0cmllcyA+IDApIHtcbiAgICAgIGF3YWl0IHNsZWVwKGJhY2tPZmYpOyAvLyB0aW1lIHRvIHdhaXQgZG91YmxlcyBldmVyeXRpbWUgZnVuY3Rpb24gZmFpbHMsIHN0YXJ0cyBhdCAxIHNlY29uZFxuICAgICAgYXdhaXQgZXhwb25lbnRpYWxCYWNrT2ZmUmV0cnkoZm4sIG51bU9mUmV0cmllcyAtIDEsIGJhY2tPZmYgKiAyLCBlcnJvckNvZGVUb1JldHJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChvaykgPT4gc2V0VGltZW91dChvaywgbXMpKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableCloudControlChange = isHotswappableCloudControlChange;\nconst common_1 = require(\"./common\");\nconst payloads_1 = require(\"../../payloads\");\nconst cloudformation_1 = require(\"../cloudformation\");\nasync function isHotswappableCloudControlChange(logicalId, change, evaluateCfnTemplate, _hotswapPropertyOverrides) {\n const ret = [];\n const changedPropNames = Object.keys(change.propertyUpdates);\n if (changedPropNames.length === 0) {\n return ret;\n }\n const classifiedChanges = (0, common_1.classifyChanges)(change, changedPropNames);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n if (classifiedChanges.namesOfHotswappableProps.length === 0) {\n return ret;\n }\n const resourceType = change.newValue.Type;\n const identifier = await resolveCloudControlIdentifier(logicalId, resourceType, evaluateCfnTemplate);\n if (!identifier) {\n ret.push((0, common_1.nonHotswappableChange)(change, payloads_1.NonHotswappableReason.RESOURCE_UNSUPPORTED, 'Could not determine the physical name or primary identifier of the resource, so Cloud Control API cannot hotswap it.'));\n return ret;\n }\n // Eagerly evaluate property values so that unresolvable references\n // are caught here and the resource is classified as non-hotswappable\n // instead of failing at apply time. This is for resources that depend\n // on resources where an update means replacement.\n const evaluatedProps = {};\n for (const propName of classifiedChanges.namesOfHotswappableProps) {\n try {\n evaluatedProps[propName] = await evaluateCfnTemplate.evaluateCfnExpression(change.propertyUpdates[propName].newValue);\n }\n catch (e) {\n if (e instanceof cloudformation_1.CfnEvaluationException) {\n ret.push((0, common_1.nonHotswappableChange)(change, payloads_1.NonHotswappableReason.RESOURCE_UNSUPPORTED, `Property '${propName}' of resource '${logicalId}' has been replaced and could not be resolved: ${e.message}`));\n return ret;\n }\n throw e;\n }\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId,\n resourceType,\n physicalName: identifier,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'cloudcontrol',\n apply: async (sdk) => {\n const cloudControl = sdk.cloudControl();\n const patchOps = [];\n for (const propName of classifiedChanges.namesOfHotswappableProps) {\n const diff = change.propertyUpdates[propName];\n const newValue = evaluatedProps[propName];\n if (diff.isRemoval) {\n patchOps.push({ op: 'remove', path: `/${propName}` });\n }\n else if (diff.isAddition) {\n patchOps.push({ op: 'add', path: `/${propName}`, value: newValue });\n }\n else {\n patchOps.push({ op: 'replace', path: `/${propName}`, value: newValue });\n }\n }\n // nothing to hotswap\n if (patchOps.length === 0) {\n return;\n }\n await cloudControl.updateResource({\n TypeName: resourceType,\n Identifier: identifier,\n PatchDocument: JSON.stringify(patchOps),\n });\n },\n });\n return ret;\n}\n/**\n * Resolves the Cloud Control API identifier for a resource.\n *\n * CCAPI resources with compound primary identifiers need their identifiers to be\n * built by joining each component with \"|\". CloudFormation's PhysicalResourceId\n * only returns a single value, which doesn't work for compound keys.\n *\n * Falls back to the CloudFormation physical resource ID for when the schema cannot be retrieved.\n */\nasync function resolveCloudControlIdentifier(logicalId, resourceType, evaluateCfnTemplate) {\n const cfnPhysicalId = await evaluateCfnTemplate.findPhysicalNameFor(logicalId);\n if (!cfnPhysicalId) {\n return undefined;\n }\n return evaluateCfnTemplate.evaluateCloudControlIdentifier(logicalId, resourceType, cfnPhysicalId);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtY29udHJvbC1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkLWNvbnRyb2wtcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSw0RUFnR0M7QUF0R0QscUNBQWtFO0FBQ2xFLDZDQUF1RDtBQUd2RCxzREFBZ0c7QUFFekYsS0FBSyxVQUFVLGdDQUFnQyxDQUNwRCxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQsRUFDbkQseUJBQWtDO0lBRWxDLE1BQU0sR0FBRyxHQUFvQixFQUFFLENBQUM7SUFFaEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3RCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxNQUFNLGlCQUFpQixHQUFHLElBQUEsd0JBQWUsRUFBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxpQkFBaUIsQ0FBQyxvQ0FBb0MsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU1RCxJQUFJLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUUxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLDZCQUE2QixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNyRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFxQixFQUM1QixNQUFNLEVBQ04sZ0NBQXFCLENBQUMsb0JBQW9CLEVBQzFDLHNIQUFzSCxDQUN2SCxDQUFDLENBQUM7UUFDSCxPQUFP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QUVEOzs7Ozs7OztHQVFHO0FBQ0gsS0FBSyxVQUFVLDZCQUE2QixDQUMxQyxTQUFpQixFQUNqQixZQUFvQixFQUNwQixtQkFBbUQ7SUFFbkQsTUFBTSxhQUFhLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sbUJBQW1CLENBQUMsOEJBQThCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNwRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBIb3Rzd2FwQ2hhbmdlIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgY2xhc3NpZnlDaGFuZ2VzLCBub25Ib3Rzd2FwcGFibGVDaGFuZ2UgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBOb25Ib3Rzd2FwcGFibGVSZWFzb24gfSBmcm9tICcuLi8uLi9wYXlsb2Fkcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbiwgdHlwZSBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZShcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbiAgX2hvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogdW5rbm93bixcbik6IFByb21pc2U8SG90c3dhcENoYW5nZVtdPiB7XG4gIGNvbnN0IHJldDogSG90c3dhcENoYW5nZVtdID0gW107XG5cbiAgY29uc3QgY2hhbmdlZFByb3BOYW1lcyA9IE9iamVjdC5rZXlzKGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMpO1xuICBpZiAoY2hhbmdlZFByb3BOYW1lcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gcmV0O1xuICB9XG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgY2hhbmdlZFByb3BOYW1lcyk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuXG4gIGlmIChjbGFzc2lmaWVkQ2hhbmdlcy5uYW1lc09mSG90c3dhcHBhYmxlUHJvcHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlVHlwZSA9IGNoYW5nZS5uZXdWYWx1ZS5UeXBlO1xuXG4gIGNvbnN0IGlkZW50aWZpZXIgPSBhd2FpdCByZXNvbHZlQ2xvdWRDb250cm9sSWRlbnRpZmllcihsb2dpY2FsSWQsIHJlc291cmNlVHlwZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG4gIGlmICghaWRlbnRpZmllcikge1xuICAgIHJldC5wdXNoKG5vbkhvdHN3YXBwYWJsZUNoYW5nZShcbiAgICAgIGNoYW5nZSxcbiAgICAgIE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9VTlNVUFBPUlRFRCxcbiAgICAgICdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBwaHlzaWNhbCBuYW1lIG9yIHByaW1hcnkgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UsIHNvIENsb3VkIENvbnRyb2wgQVBJIGNhbm5vdCBob3Rzd2FwIGl0LicsXG4gICAgKSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8vIEVhZ2VybHkgZXZhbHVhdGUgcHJvcGVydHkgdmFsdWVzIHNvIHRoYXQgdW5yZXNvbHZhYmxlIHJlZmVyZW5jZXNcbiAgLy8gYXJlIGNhdWdodCBoZXJlIGFuZCB0aGUgcmVzb3VyY2UgaXMgY2xhc3NpZmllZCBhcyBub24taG90c3dhcHBhYmxlXG4gIC8vIGluc3RlYWQgb2YgZmFpbGluZyBhdCBhcHBseSB0aW1lLiBUaGlzIGlzIGZvciByZXNvdXJjZXMgdGhhdCBkZXBlbmRcbiAgLy8gb24gcmVzb3VyY2VzIHdoZXJlIGFuIHVwZGF0ZSBtZWFucyByZXBsYWNlbWVudC5cbiAgY29uc3QgZXZhbHVhdGVkUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBjbGFzc2lmaWVkQ2hhbmdlcy5uYW1lc09mSG90c3dhcHBhYmxlUHJvcHMpIHtcbiAgICB0cnkge1xuICAgICAgZXZhbHVhdGVkUHJvcHNbcHJvcE5hbWVdID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24oXG4gICAgICAgIGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXNbcHJvcE5hbWVdLm5ld1ZhbHVlLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIENmbkV2YWx1YXRpb25FeGNlcHRpb24pIHtcbiAgICAgICAgcmV0LnB1c2gobm9uSG90c3dhcHBhYmxlQ2hhbmdlKFxuICAgICAgICAgIGNoYW5nZSxcbiAgICAgICAgICBOb25Ib3Rzd2FwcGFibGVSZWFzb24uUkVTT1VSQ0VfVU5TVVBQT1JURUQsXG4gICAgICAgICAgYFByb3BlcnR5ICcke3Byb3BOYW1lfScgb2YgcmVzb3VyY2UgJyR7bG9naWNhbElkfScgaGFzIGJlZW4gcmVwbGFjZWQgYW5kIGNvdWxkIG5vdCBiZSByZXNvbHZlZDogJHtlLm1lc3NhZ2V9YCxcbiAgICAgICAgKSk7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldC5wdXNoKHtcbiAgICBjaGFuZ2U6IHtcbiAgICAgIGNhdXNlOiBjaGFuZ2UsXG4gICAgICByZXNvdXJjZXM6IFt7XG4gICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgcmVzb3VyY2VUeXBlLFxuICAgICAgICBwaHlzaWNhbE5hbWU6IGlkZW50aWZpZXIsXG4gICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICB9XSxcbiAgICB9LFxuICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICBzZXJ2aWNlOiAnY2xvdWRjb250cm9sJyxcbiAgICBhcHBseTogYXN5bmMgKHNkazogU0RLKSA9PiB7XG4gICAgICBjb25zdCBjbG91ZENvbnRyb2wgPSBzZGsuY2xvdWRDb250cm9sKCk7XG5cbiAgICAgIGNvbnN0IHBhdGNoT3BzOiBBcnJheTx7IG9wOiBzdHJpbmc7IHBhdGg6IHN0cmluZzsgdmFsdWU/OiBhbnkgfT4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgY2xhc3NpZmllZENoYW5nZXMubmFtZXNPZkhvdHN3YXBwYWJsZVByb3BzKSB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBjaGFuZ2UucHJvcGVydHlVcGRhdGVzW3Byb3BOYW1lXTtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBldmFsdWF0ZWRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIGlmIChkaWZmLmlzUmVtb3ZhbCkge1xuICAgICAgICAgIHBhdGNoT3BzLnB1c2goeyBvcDogJ3JlbW92ZScsIHBhdGg6IGAvJHtwcm9wTmFtZX1gIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGRpZmYuaXNBZGRpdGlvbikge1xuICAgICAgICAgIHBhdGNoT3BzLnB1c2goeyBvcDogJ2FkZCcsIHBhdGg6IGAvJHtwcm9wTmFtZX1gLCB2YWx1ZTogbmV3VmFsdWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0Y2hPcHMucHVzaCh7IG9wOiAncmVwbGFjZScsIHBhdGg6IGAvJHtwcm9wTmFtZX1gLCB2YWx1ZTogbmV3VmFsdWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gbm90aGluZyB0byBob3Rzd2FwXG4gICAgICBpZiAocGF0Y2hPcHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgY2xvdWRDb250cm9sLnVwZGF0ZVJlc291cmNlKHtcbiAgICAgICAgVHlwZU5hbWU6IHJlc291cmNlVHlwZSxcbiAgICAgICAgSWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgUGF0Y2hEb2N1bWVudDogSlNPTi5zdHJpbmdpZnkocGF0Y2hPcHMpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgQ2xvdWQgQ29udHJvbCBBUEkgaWRlbnRpZmllciBmb3IgYSByZXNvdXJjZS5cbiAqXG4gKiBDQ0FQSSByZXNvdXJjZXMgd2l0aCBjb21wb3VuZCBwcmltYXJ5IGlkZW50aWZpZXJzIG5lZWQgdGhlaXIgaWRlbnRpZmllcnMgdG8gYmVcbiAqIGJ1aWx0IGJ5IGpvaW5pbmcgZWFjaCBjb21wb25lbnQgd2l0aCBcInxcIi4gQ2xvdWRGb3JtYXRpb24ncyBQaHlzaWNhbFJlc291cmNlSWRcbiAqIG9ubHkgcmV0dXJucyBhIHNpbmdsZSB2YWx1ZSwgd2hpY2ggZG9lc24ndCB3b3JrIGZvciBjb21wb3VuZCBrZXlzLlxuICpcbiAqIEZhbGxzIGJhY2sgdG8gdGhlIENsb3VkRm9ybWF0aW9uIHBoeXNpY2FsIHJlc291cmNlIElEIGZvciB3aGVuIHRoZSBzY2hlbWEgY2Fubm90IGJlIHJldHJpZXZlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNsb3VkQ29udHJvbElkZW50aWZpZXIoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgY2ZuUGh5c2ljYWxJZCA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZmluZFBoeXNpY2FsTmFtZUZvcihsb2dpY2FsSWQpO1xuICBpZiAoIWNmblBoeXNpY2FsSWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDbG91ZENvbnRyb2xJZGVudGlmaWVyKGxvZ2ljYWxJZCwgcmVzb3VyY2VUeXBlLCBjZm5QaHlzaWNhbElkKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableCodeBuildProjectChange = isHotswappableCodeBuildProjectChange;\nconst common_1 = require(\"./common\");\nconst util_1 = require(\"../../util\");\nasync function isHotswappableCodeBuildProjectChange(logicalId, change, evaluateCfnTemplate) {\n if (change.newValue.Type !== 'AWS::CodeBuild::Project') {\n return [];\n }\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['Source', 'Environment', 'SourceVersion']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n if (classifiedChanges.namesOfHotswappableProps.length > 0) {\n const updateProjectInput = {\n name: '',\n };\n const projectName = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, change.newValue.Properties?.Name);\n // nothing to do jere\n if (!projectName) {\n return ret;\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId: logicalId,\n resourceType: change.newValue.Type,\n physicalName: projectName,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'codebuild',\n apply: async (sdk) => {\n updateProjectInput.name = projectName;\n for (const updatedPropName in change.propertyUpdates) {\n const updatedProp = change.propertyUpdates[updatedPropName];\n switch (updatedPropName) {\n case 'Source':\n updateProjectInput.source = (0, util_1.transformObjectKeys)(await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue), convertSourceCloudformationKeyToSdkKey);\n break;\n case 'Environment':\n updateProjectInput.environment = await (0, util_1.transformObjectKeys)(await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue), util_1.lowerCaseFirstCharacter);\n break;\n case 'SourceVersion':\n updateProjectInput.sourceVersion = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue);\n break;\n }\n }\n await sdk.codeBuild().updateProject(updateProjectInput);\n },\n });\n }\n return ret;\n}\nfunction convertSourceCloudformationKeyToSdkKey(key) {\n if (key.toLowerCase() === 'buildspec') {\n return key.toLowerCase();\n }\n return (0, util_1.lowerCaseFirstCharacter)(key);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1idWlsZC1wcm9qZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvZGUtYnVpbGQtcHJvamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxvRkFxRUM7QUE5RUQscUNBR2tCO0FBRWxCLHFDQUEwRTtBQUluRSxLQUFLLFVBQVUsb0NBQW9DLENBQ3hELFNBQWlCLEVBQ2pCLE1BQXNCLEVBQ3RCLG1CQUFtRDtJQUVuRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLHlCQUF5QixFQUFFLENBQUM7UUFDdkQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQW9CLEVBQUUsQ0FBQztJQUVoQyxNQUFNLGlCQUFpQixHQUFHLElBQUEsd0JBQWUsRUFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDOUYsaUJBQWlCLENBQUMsb0NBQW9DLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUQsSUFBSSxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxrQkFBa0IsR0FBOEI7WUFDcEQsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FDekUsU0FBUyxFQUNULE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FDakMsQ0FBQztRQUVGLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNQLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsTUFBTTtnQkFDYixTQUFTLEVBQUUsQ0FBQzt3QkFDVixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTt3QkFDbEMsWUFBWSxFQUFFLFdBQVc7d0JBQ3pCLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO3FCQUNyRCxDQUFDO2FBQ0g7WUFDRCxZQUFZLEVBQUUsSUFBSTtZQUNsQixPQUFPLEVBQUUsV0FBVztZQUNwQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQVEsRUFBRSxFQUFFO2dCQUN4QixrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO2dCQUV0QyxLQUFLLE1BQU0sZUFBZSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDckQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDNUQsUUFBUSxlQUFlLEVBQUUsQ0FBQzt3QkFDeEIsS0FBSyxRQUFROzRCQUNYLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxJQUFBLDBCQUFtQixFQUM3QyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFDckUsc0NBQXNDLENBQ3ZDLENBQUM7NEJBQ0YsTUFBTTt3QkFDUixLQUFLLGFBQWE7NEJBQ2hCLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxNQUFNLElBQUEsMEJBQW1CLEVBQ3hELE1BQU0sbUJBQW1CLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUNyRSw4QkFBdUIsQ0FDeEIsQ0FBQzs0QkFDRixNQUFNO3dCQUNSLEtBQUssZUFBZTs0QkFDbEIsa0JBQWtCLENBQUMsYUFBYSxHQUFHLE1BQU0sbUJBQW1CLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUN6RyxNQUFNO29CQUNWLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMxRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsc0NBQXNDLENBQUMsR0FBVztJQUN6RCxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxJQUFBLDhCQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwZGF0ZVByb2plY3RDb21tYW5kSW5wdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY29kZWJ1aWxkJztcbmltcG9ydCB7XG4gIHR5cGUgSG90c3dhcENoYW5nZSxcbiAgY2xhc3NpZnlDaGFuZ2VzLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgeyBsb3dlckNhc2VGaXJzdENoYXJhY3RlciwgdHJhbnNmb3JtT2JqZWN0S2V5cyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNIb3Rzd2FwcGFibGVDb2RlQnVpbGRQcm9qZWN0Q2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSAnQVdTOjpDb2RlQnVpbGQ6OlByb2plY3QnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcmV0OiBIb3Rzd2FwQ2hhbmdlW10gPSBbXTtcblxuICBjb25zdCBjbGFzc2lmaWVkQ2hhbmdlcyA9IGNsYXNzaWZ5Q2hhbmdlcyhjaGFuZ2UsIFsnU291cmNlJywgJ0Vudmlyb25tZW50JywgJ1NvdXJjZVZlcnNpb24nXSk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuICBpZiAoY2xhc3NpZmllZENoYW5nZXMubmFtZXNPZkhvdHN3YXBwYWJsZVByb3BzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCB1cGRhdGVQcm9qZWN0SW5wdXQ6IFVwZGF0ZVByb2plY3RDb21tYW5kSW5wdXQgPSB7XG4gICAgICBuYW1lOiAnJyxcbiAgICB9O1xuICAgIGNvbnN0IHByb2plY3ROYW1lID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5lc3RhYmxpc2hSZXNvdXJjZVBoeXNpY2FsTmFtZShcbiAgICAgIGxvZ2ljYWxJZCxcbiAgICAgIGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5OYW1lLFxuICAgICk7XG5cbiAgICAvLyBub3RoaW5nIHRvIGRvIGplcmVcbiAgICBpZiAoIXByb2plY3ROYW1lKSB7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIHJldC5wdXNoKHtcbiAgICAgIGNoYW5nZToge1xuICAgICAgICBjYXVzZTogY2hhbmdlLFxuICAgICAgICByZXNvdXJjZXM6IFt7XG4gICAgICAgICAgbG9naWNhbElkOiBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2UubmV3VmFsdWUuVHlwZSxcbiAgICAgICAgICBwaHlzaWNhbE5hbWU6IHByb2plY3ROYW1lLFxuICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgIH1dLFxuICAgICAgfSxcbiAgICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICAgIHNlcnZpY2U6ICdjb2RlYnVpbGQnLFxuICAgICAgYXBwbHk6IGFzeW5jIChzZGs6IFNESykgPT4ge1xuICAgICAgICB1cGRhdGVQcm9qZWN0SW5wdXQubmFtZSA9IHByb2plY3ROYW1lO1xuXG4gICAgICAgIGZvciAoY29uc3QgdXBkYXRlZFByb3BOYW1lIGluIGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMpIHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkUHJvcCA9IGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXNbdXBkYXRlZFByb3BOYW1lXTtcbiAgICAgICAgICBzd2l0Y2ggKHVwZGF0ZWRQcm9wTmFtZSkge1xuICAgICAgICAgICAgY2FzZSAnU291cmNlJzpcbiAgICAgICAgICAgICAgdXBkYXRlUHJvamVjdElucHV0LnNvdXJjZSA9IHRyYW5zZm9ybU9iamVjdEtleXMoXG4gICAgICAgICAgICAgICAgYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWUpLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRTb3VyY2VDbG91ZGZvcm1hdGlvbktleVRvU2RrS2V5LFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Vudmlyb25tZW50JzpcbiAgICAgICAgICAgICAgdXBkYXRlUHJvamVjdElucHV0LmVudmlyb25tZW50ID0gYXdhaXQgdHJhbnNmb3JtT2JqZWN0S2V5cyhcbiAgICAgICAgICAgICAgICBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZSksXG4gICAgICAgICAgICAgICAgbG93ZXJDYXNlRmlyc3RDaGFyYWN0ZXIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU291cmNlVmVyc2lvbic6XG4gICAgICAgICAgICAgIHVwZGF0ZVByb2plY3RJbnB1dC5zb3VyY2VWZXJzaW9uID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWUpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzZGsuY29kZUJ1aWxkKCkudXBkYXRlUHJvamVjdCh1cGRhdGVQcm9qZWN0SW5wdXQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRTb3VyY2VDbG91ZGZvcm1hdGlvbktleVRvU2RrS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnYnVpbGRzcGVjJykge1xuICAgIHJldHVybiBrZXkudG9Mb3dlckNhc2UoKTtcbiAgfVxuICByZXR1cm4gbG93ZXJDYXNlRmlyc3RDaGFyYWN0ZXIoa2V5KTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EcsHotswapProperties = exports.HotswapPropertyOverrides = exports.HotswapMode = exports.ICON = void 0;\nexports.createHotswapPropertyOverrides = createHotswapPropertyOverrides;\nexports.classifyChanges = classifyChanges;\nexports.nonHotswappableChange = nonHotswappableChange;\nexports.nonHotswappableResource = nonHotswappableResource;\nconst hotswap_1 = require(\"../../payloads/hotswap\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nexports.ICON = '✨';\nvar HotswapMode;\n(function (HotswapMode) {\n /**\n * Will fall back to CloudFormation when a non-hotswappable change is detected\n */\n HotswapMode[\"FALL_BACK\"] = \"fall-back\";\n /**\n * Will not fall back to CloudFormation when a non-hotswappable change is detected\n */\n HotswapMode[\"HOTSWAP_ONLY\"] = \"hotswap-only\";\n /**\n * Will not attempt to hotswap anything and instead go straight to CloudFormation\n */\n HotswapMode[\"FULL_DEPLOYMENT\"] = \"full-deployment\";\n})(HotswapMode || (exports.HotswapMode = HotswapMode = {}));\n/**\n * Represents configuration property overrides for hotswap deployments\n */\nclass HotswapPropertyOverrides {\n // Each supported resource type will have its own properties. Currently this is ECS\n ecs;\n constructor(ecs) {\n this.ecs = ecs;\n }\n}\nexports.HotswapPropertyOverrides = HotswapPropertyOverrides;\n/**\n * Represents configuration properties for ECS hotswap deployments\n */\nclass EcsHotswapProperties {\n // The lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount\n minimumHealthyPercent;\n // The upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount\n maximumHealthyPercent;\n // The number of seconds to wait for a single service to reach stable state.\n stabilizationTimeoutSeconds;\n constructor(minimumHealthyPercent, maximumHealthyPercent, stabilizationTimeoutSeconds) {\n if (minimumHealthyPercent !== undefined && minimumHealthyPercent < 0) {\n throw new toolkit_error_1.ToolkitError('InvalidEcsMinHealthyPercent', 'hotswap-ecs-minimum-healthy-percent can\\'t be a negative number');\n }\n if (maximumHealthyPercent !== undefined && maximumHealthyPercent < 0) {\n throw new toolkit_error_1.ToolkitError('InvalidEcsMaxHealthyPercent', 'hotswap-ecs-maximum-healthy-percent can\\'t be a negative number');\n }\n if (stabilizationTimeoutSeconds !== undefined && stabilizationTimeoutSeconds < 0) {\n throw new toolkit_error_1.ToolkitError('InvalidEcsStabilizationTimeout', 'hotswap-ecs-stabilization-timeout-seconds can\\'t be a negative number');\n }\n // In order to preserve the current behaviour, when minimumHealthyPercent is not defined, it will be set to the currently default value of 0\n if (minimumHealthyPercent == undefined) {\n this.minimumHealthyPercent = 0;\n }\n else {\n this.minimumHealthyPercent = minimumHealthyPercent;\n }\n this.maximumHealthyPercent = maximumHealthyPercent;\n this.stabilizationTimeoutSeconds = stabilizationTimeoutSeconds;\n }\n /**\n * Check if any hotswap properties are defined\n * @returns true if all properties are undefined, false otherwise\n */\n isEmpty() {\n return this.minimumHealthyPercent === 0 && this.maximumHealthyPercent === undefined;\n }\n}\nexports.EcsHotswapProperties = EcsHotswapProperties;\n/**\n * Create the HotswapPropertyOverrides class out of the Interface exposed to users\n */\nfunction createHotswapPropertyOverrides(props) {\n return new HotswapPropertyOverrides(new EcsHotswapProperties(props.ecs?.minimumHealthyPercent, props.ecs?.maximumHealthyPercent, props.ecs?.stabilizationTimeoutSeconds));\n}\nclass ClassifiedChanges {\n change;\n hotswappableProps;\n nonHotswappableProps;\n constructor(change, hotswappableProps, nonHotswappableProps) {\n this.change = change;\n this.hotswappableProps = hotswappableProps;\n this.nonHotswappableProps = nonHotswappableProps;\n }\n reportNonHotswappablePropertyChanges(ret) {\n const nonHotswappablePropNames = Object.keys(this.nonHotswappableProps);\n if (nonHotswappablePropNames.length > 0) {\n const tagOnlyChange = nonHotswappablePropNames.length === 1 && nonHotswappablePropNames[0] === 'Tags';\n const reason = tagOnlyChange ? hotswap_1.NonHotswappableReason.TAGS : hotswap_1.NonHotswappableReason.PROPERTIES;\n const description = tagOnlyChange ? 'Tags are not hotswappable' : `resource properties '${nonHotswappablePropNames}' are not hotswappable on this resource type`;\n ret.push(nonHotswappableChange(this.change, reason, description, this.nonHotswappableProps));\n }\n }\n get namesOfHotswappableProps() {\n return Object.keys(this.hotswappableProps);\n }\n}\nfunction classifyChanges(xs, hotswappablePropNames) {\n const hotswappableProps = {};\n const nonHotswappableProps = {};\n for (const [name, propDiff] of Object.entries(xs.propertyUpdates)) {\n if (hotswappablePropNames.includes(name)) {\n hotswappableProps[name] = propDiff;\n }\n else {\n nonHotswappableProps[name] = propDiff;\n }\n }\n return new ClassifiedChanges(xs, hotswappableProps, nonHotswappableProps);\n}\nfunction nonHotswappableChange(change, reason, description, nonHotswappableProps, hotswapOnlyVisible = true) {\n return {\n hotswappable: false,\n hotswapOnlyVisible,\n change: {\n reason,\n description,\n subject: {\n type: 'Resource',\n logicalId: change.logicalId,\n resourceType: change.newValue.Type,\n rejectedProperties: Object.keys(nonHotswappableProps ?? change.propertyUpdates),\n metadata: change.metadata,\n },\n },\n };\n}\nfunction nonHotswappableResource(change) {\n return {\n hotswappable: false,\n change: {\n reason: hotswap_1.NonHotswappableReason.RESOURCE_UNSUPPORTED,\n description: 'This resource type is not supported for hotswap deployments',\n subject: {\n type: 'Resource',\n logicalId: change.logicalId,\n resourceType: change.newValue.Type,\n rejectedProperties: Object.keys(change.propertyUpdates),\n metadata: change.metadata,\n },\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRIQSx3RUFNQztBQWlDRCwwQ0FhQztBQUVELHNEQXNCQztBQUVELDBEQWVDO0FBdE5ELG9EQUErRDtBQUMvRCwrREFBMkQ7QUFHOUMsUUFBQSxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBNkN4QixJQUFZLFdBZVg7QUFmRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDRDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsa0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQWZXLFdBQVcsMkJBQVgsV0FBVyxRQWV0QjtBQUVEOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkMsbUZBQW1GO0lBQzFFLEdBQUcsQ0FBeUI7SUFFckMsWUFBb0IsR0FBMkI7UUFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBUEQsNERBT0M7QUFFRDs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBQy9CLHVKQUF1SjtJQUM5SSxxQkFBcUIsQ0FBVTtJQUN4QyxrS0FBa0s7SUFDekoscUJBQXFCLENBQVU7SUFDeEMsNEVBQTRFO0lBQ25FLDJCQUEyQixDQUFVO0lBRTlDLFlBQW9CLHFCQUE4QixFQUFFLHFCQUE4QixFQUFFLDJCQUFvQztRQUN0SCxJQUFJLHFCQUFxQixLQUFLLFNBQVMsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLEVBQUcsQ0FBQztZQUN0RSxNQUFNLElBQUksNEJBQVksQ0FBQyw2QkFBNkIsRUFBRSxpRUFBaUUsQ0FBQyxDQUFDO1FBQzNILENBQUM7UUFDRCxJQUFJLHFCQUFxQixLQUFLLFNBQVMsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLEVBQUcsQ0FBQztZQUN0RSxNQUFNLElBQUksNEJBQVksQ0FBQyw2QkFBNkIsRUFBRSxpRUFBaUUsQ0FBQyxD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QUFDO2dCQUN2RCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDMUI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eURpZmZlcmVuY2UgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgSG90c3dhcFByb3BlcnRpZXMsIEVjc0hvdHN3YXBQcm9wZXJ0aWVzIGFzIElFY3NIb3Rzd2FwUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBIb3Rzd2FwcGFibGVDaGFuZ2UsIE5vbkhvdHN3YXBwYWJsZUNoYW5nZSwgUmVzb3VyY2VDaGFuZ2UgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9ob3Rzd2FwJztcbmltcG9ydCB7IE5vbkhvdHN3YXBwYWJsZVJlYXNvbiB9IGZyb20gJy4uLy4uL3BheWxvYWRzL2hvdHN3YXAnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgU0RLIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5cbmV4cG9ydCBjb25zdCBJQ09OID0gJ+KcqCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3dhcE9wZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBNYXJrcyB0aGUgb3BlcmF0aW9uIGFzIGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaG90c3dhcHBhYmxlOiB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSBiZWluZyBob3Rzd2FwcGVkLlxuICAgKiBVc2VkIHRvIHNldCBhIGN1c3RvbSBVc2VyLUFnZW50IGZvciBTREsgY2FsbHMuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIG9mIHRoZSBjaGFuZ2UgdGhhdCBpcyBhcHBsaWVkIGFzIHBhcnQgb2YgdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlOiBIb3Rzd2FwcGFibGVDaGFuZ2U7XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGhvdHN3YXAgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBhcHBseTogKHNkazogU0RLKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlamVjdGVkQ2hhbmdlIHtcbiAgLyoqXG4gICAqIE1hcmtzIHRoZSBjaGFuZ2UgYXMgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaG90c3dhcHBhYmxlOiBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBjaGFuZ2UgdGhhdCBnb3QgcmVqZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZTogTm9uSG90c3dhcHBhYmxlQ2hhbmdlO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGlzIGNoYW5nZSB3aGVuIGxpc3Rpbmcgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIGluIEhPVFNXQVBfT05MWSBtb2RlLiBEb2VzIG5vdCBhZmZlY3RcbiAgICogbGlzdGluZyBpbiBGQUxMX0JBQ0sgbW9kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaG90c3dhcE9ubHlWaXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgSG90c3dhcENoYW5nZSA9IEhvdHN3YXBPcGVyYXRpb24gfCBSZWplY3RlZENoYW5nZTtcblxuZXhwb3J0IGVudW0gSG90c3dhcE1vZGUge1xuICAvKipcbiAgICogV2lsbCBmYWxsIGJhY2sgdG8gQ2xvdWRGb3JtYXRpb24gd2hlbiBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIGlzIGRldGVjdGVkXG4gICAqL1xuICBGQUxMX0JBQ0sgPSAnZmFsbC1iYWNrJyxcblxuICAvKipcbiAgICogV2lsbCBub3QgZmFsbCBiYWNrIHRvIENsb3VkRm9ybWF0aW9uIHdoZW4gYSBub24taG90c3dhcHBhYmxlIGNoYW5nZSBpcyBkZXRlY3RlZFxuICAgKi9cbiAgSE9UU1dBUF9PTkxZID0gJ2hvdHN3YXAtb25seScsXG5cbiAgLyoqXG4gICAqIFdpbGwgbm90IGF0dGVtcHQgdG8gaG90c3dhcCBhbnl0aGluZyBhbmQgaW5zdGVhZCBnbyBzdHJhaWdodCB0byBDbG91ZEZvcm1hdGlvblxuICAgKi9cbiAgRlVMTF9ERVBMT1lNRU5UID0gJ2Z1bGwtZGVwbG95bWVudCcsXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50c1xuICovXG5leHBvcnQgY2xhc3MgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzIGltcGxlbWVudHMgSG90c3dhcFByb3BlcnRpZXMge1xuICAvLyBFYWNoIHN1cHBvcnRlZCByZXNvdXJjZSB0eXBlIHdpbGwgaGF2ZSBpdHMgb3duIHByb3BlcnRpZXMuIEN1cnJlbnRseSB0aGlzIGlzIEVDU1xuICByZWFkb25seSBlY3M/OiBJRWNzSG90c3dhcFByb3BlcnRpZXM7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yIChlY3M/OiBJRWNzSG90c3dhcFByb3BlcnRpZXMpIHtcbiAgICB0aGlzLmVjcyA9IGVjcztcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciBFQ1MgaG90c3dhcCBkZXBsb3ltZW50c1xuICovXG5leHBvcnQgY2xhc3MgRWNzSG90c3dhcFByb3BlcnRpZXMgaW1wbGVtZW50cyBJRWNzSG90c3dhcFByb3BlcnRpZXMge1xuICAvLyBUaGUgbG93ZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IG11c3QgcmVtYWluIGluIHRoZSBSVU5OSU5HIHN0YXRlIGR1cmluZyBhIGRlcGxveW1lbnQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgZGVzaXJlZENvdW50XG4gIHJlYWRvbmx5IG1pbmltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcbiAgLy8gVGhlIHVwcGVyIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgeW91ciBzZXJ2aWNlJ3MgdGFza3MgdGhhdCBhcmUgYWxsb3dlZCBpbiB0aGUgUlVOTklORyBvciBQRU5ESU5HIHN0YXRlIGR1cmluZyBhIGRlcGxveW1lbnQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgZGVzaXJlZENvdW50XG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcbiAgLy8gVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgdG8gcmVhY2ggc3RhYmxlIHN0YXRlLlxuICByZWFkb25seSBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHM/OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yIChtaW5pbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXIsIG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlciwgc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzPzogbnVtYmVyKSB7XG4gICAgaWYgKG1pbmltdW1IZWFsdGh5UGVyY2VudCAhPT0gdW5kZWZpbmVkICYmIG1pbmltdW1IZWFsdGh5UGVyY2VudCA8IDAgKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbnZhbGlkRWNzTWluSGVhbHRoeVBlcmNlbnQnLCAnaG90c3dhcC1lY3MtbWluaW11bS1oZWFsdGh5LXBlcmNlbnQgY2FuXFwndCBiZSBhIG5lZ2F0aXZlIG51bWJlcicpO1xuICAgIH1cbiAgICBpZiAobWF4aW11bUhlYWx0aHlQZXJjZW50ICE9PSB1bmRlZmluZWQgJiYgbWF4aW11bUhlYWx0aHlQZXJjZW50IDwgMCApIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRFY3NNYXhIZWFsdGh5UGVyY2VudCcsICdob3Rzd2FwLWVjcy1tYXhpbXVtLWhlYWx0aHktcGVyY2VudCBjYW5cXCd0IGJlIGEgbmVnYXRpdmUgbnVtYmVyJyk7XG4gICAgfVxuICAgIGlmIChzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgIT09IHVuZGVmaW5lZCAmJiBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgPCAwICkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignSW52YWxpZEVjc1N0YWJpbGl6YXRpb25UaW1lb3V0JywgJ2hvdHN3YXAtZWNzLXN0YWJpbGl6YXRpb24tdGltZW91dC1zZWNvbmRzIGNhblxcJ3QgYmUgYSBuZWdhdGl2ZSBudW1iZXInKTtcbiAgICB9XG4gICAgLy8gSW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGN1cnJlbnQgYmVoYXZpb3VyLCB3aGVuIG1pbmltdW1IZWFsdGh5UGVyY2VudCBpcyBub3QgZGVmaW5lZCwgaXQgd2lsbCBiZSBzZXQgdG8gdGhlIGN1cnJlbnRseSBkZWZhdWx0IHZhbHVlIG9mIDBcbiAgICBpZiAobWluaW11bUhlYWx0aHlQZXJjZW50ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5taW5pbXVtSGVhbHRoeVBlcmNlbnQgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1pbmltdW1IZWFsdGh5UGVyY2VudCA9IG1pbmltdW1IZWFsdGh5UGVyY2VudDtcbiAgICB9XG4gICAgdGhpcy5tYXhpbXVtSGVhbHRoeVBlcmNlbnQgPSBtYXhpbXVtSGVhbHRoeVBlcmNlbnQ7XG4gICAgdGhpcy5zdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgPSBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW55IGhvdHN3YXAgcHJvcGVydGllcyBhcmUgZGVmaW5lZFxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGFsbCBwcm9wZXJ0aWVzIGFyZSB1bmRlZmluZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWluaW11bUhlYWx0aHlQZXJjZW50ID09PSAwICYmIHRoaXMubWF4aW11bUhlYWx0aHlQZXJjZW50ID09PSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgdGhlIEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyBjbGFzcyBvdXQgb2YgdGhlIEludGVyZmFjZSBleHBvc2VkIHRvIHVzZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMocHJvcHM6IEhvdHN3YXBQcm9wZXJ0aWVzKTogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzIHtcbiAgcmV0dXJuIG5ldyBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMobmV3IEVjc0hvdHN3YXBQcm9wZXJ0aWVzKFxuICAgIHByb3BzLmVjcz8ubWluaW11bUhlYWx0aHlQZXJjZW50LFxuICAgIHByb3BzLmVjcz8ubWF4aW11bUhlYWx0aHlQZXJjZW50LFxuICAgIHByb3BzLmVjcz8uc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzLFxuICApKTtcbn1cblxudHlwZSBQcm9wRGlmZnMgPSBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pj47XG5cbmNsYXNzIENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuICAgIHB1YmxpYyByZWFkb25seSBob3Rzd2FwcGFibGVQcm9wczogUHJvcERpZmZzLFxuICAgIHB1YmxpYyByZWFkb25seSBub25Ib3Rzd2FwcGFibGVQcm9wczogUHJvcERpZmZzLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyByZXBvcnROb25Ib3Rzd2FwcGFibGVQcm9wZXJ0eUNoYW5nZXMocmV0OiBIb3Rzd2FwQ2hhbmdlW10pOiB2b2lkIHtcbiAgICBjb25zdCBub25Ib3Rzd2FwcGFibGVQcm9wTmFtZXMgPSBPYmplY3Qua2V5cyh0aGlzLm5vbkhvdHN3YXBwYWJsZVByb3BzKTtcbiAgICBpZiAobm9uSG90c3dhcHBhYmxlUHJvcE5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHRhZ09ubHlDaGFuZ2UgPSBub25Ib3Rzd2FwcGFibGVQcm9wTmFtZXMubGVuZ3RoID09PSAxICYmIG5vbkhvdHN3YXBwYWJsZVByb3BOYW1lc1swXSA9PT0gJ1RhZ3MnO1xuICAgICAgY29uc3QgcmVhc29uID0gdGFnT25seUNoYW5nZSA/IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5UQUdTIDogTm9uSG90c3dhcHBhYmxlUmVhc29uLlBST1BFUlRJRVM7XG4gICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRhZ09ubHlDaGFuZ2UgPyAnVGFncyBhcmUgbm90IGhvdHN3YXBwYWJsZScgOiBgcmVzb3VyY2UgcHJvcGVydGllcyAnJHtub25Ib3Rzd2FwcGFibGVQcm9wTmFtZXN9JyBhcmUgbm90IGhvdHN3YXBwYWJsZSBvbiB0aGlzIHJlc291cmNlIHR5cGVgO1xuXG4gICAgICByZXQucHVzaChub25Ib3Rzd2FwcGFibGVDaGFuZ2UoXG4gICAgICAgIHRoaXMuY2hhbmdlLFxuICAgICAgICByZWFzb24sXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICB0aGlzLm5vbkhvdHN3YXBwYWJsZVByb3BzLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBuYW1lc09mSG90c3dhcHBhYmxlUHJvcHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmhvdHN3YXBwYWJsZVByb3BzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlDaGFuZ2VzKHhzOiBSZXNvdXJjZUNoYW5nZSwgaG90c3dhcHBhYmxlUHJvcE5hbWVzOiBzdHJpbmdbXSk6IENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgY29uc3QgaG90c3dhcHBhYmxlUHJvcHM6IFByb3BEaWZmcyA9IHt9O1xuICBjb25zdCBub25Ib3Rzd2FwcGFibGVQcm9wczogUHJvcERpZmZzID0ge307XG5cbiAgZm9yIChjb25zdCBbbmFtZSwgcHJvcERpZmZdIG9mIE9iamVjdC5lbnRyaWVzKHhzLnByb3BlcnR5VXBkYXRlcykpIHtcbiAgICBpZiAoaG90c3dhcHBhYmxlUHJvcE5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICBob3Rzd2FwcGFibGVQcm9wc1tuYW1lXSA9IHByb3BEaWZmO1xuICAgIH0gZWxzZSB7XG4gICAgICBub25Ib3Rzd2FwcGFibGVQcm9wc1tuYW1lXSA9IHByb3BEaWZmO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgQ2xhc3NpZmllZENoYW5nZXMoeHMsIGhvdHN3YXBwYWJsZVByb3BzLCBub25Ib3Rzd2FwcGFibGVQcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVDaGFuZ2UoXG4gIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICBub25Ib3Rzd2FwcGFibGVQcm9wcz86IFByb3BEaWZmcyxcbiAgaG90c3dhcE9ubHlWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSxcbik6IFJlamVjdGVkQ2hhbmdlIHtcbiAgcmV0dXJuIHtcbiAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgIGhvdHN3YXBPbmx5VmlzaWJsZSxcbiAgICBjaGFuZ2U6IHtcbiAgICAgIHJlYXNvbixcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgc3ViamVjdDoge1xuICAgICAgICB0eXBlOiAnUmVzb3VyY2UnLFxuICAgICAgICBsb2dpY2FsSWQ6IGNoYW5nZS5sb2dpY2FsSWQsXG4gICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgIHJlamVjdGVkUHJvcGVydGllczogT2JqZWN0LmtleXMobm9uSG90c3dhcHBhYmxlUHJvcHMgPz8gY2hhbmdlLnByb3BlcnR5VXBkYXRlcyksXG4gICAgICAgIG1ldGFkYXRhOiBjaGFuZ2UubWV0YWRhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZShjaGFuZ2U6IFJlc291cmNlQ2hhbmdlKTogUmVqZWN0ZWRDaGFuZ2Uge1xuICByZXR1cm4ge1xuICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgY2hhbmdlOiB7XG4gICAgICByZWFzb246IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9VTlNVUFBPUlRFRCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyByZXNvdXJjZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMnLFxuICAgICAgc3ViamVjdDoge1xuICAgICAgICB0eXBlOiAnUmVzb3VyY2UnLFxuICAgICAgICBsb2dpY2FsSWQ6IGNoYW5nZS5sb2dpY2FsSWQsXG4gICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgIHJlamVjdGVkUHJvcGVydGllczogT2JqZWN0LmtleXMoY2hhbmdlLnByb3BlcnR5VXBkYXRlcyksXG4gICAgICAgIG1ldGFkYXRhOiBjaGFuZ2UubWV0YWRhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableEcsServiceChange = isHotswappableEcsServiceChange;\nconst common_1 = require(\"./common\");\nconst hotswap_1 = require(\"../../payloads/hotswap\");\nconst util_1 = require(\"../../util\");\nconst ECS_SERVICE_RESOURCE_TYPE = 'AWS::ECS::Service';\nasync function isHotswappableEcsServiceChange(logicalId, change, evaluateCfnTemplate, hotswapPropertyOverrides) {\n // the only resource change we can evaluate here is an ECS TaskDefinition\n if (change.newValue.Type !== 'AWS::ECS::TaskDefinition') {\n return [];\n }\n const ret = [];\n // We only allow a change in the ContainerDefinitions of the TaskDefinition for now -\n // it contains the image and environment variables, so seems like a safe bet for now.\n // We might revisit this decision in the future though!\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['ContainerDefinitions']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n // find all ECS Services that reference the TaskDefinition that changed\n const resourcesReferencingTaskDef = evaluateCfnTemplate.findReferencesTo(logicalId);\n const ecsServiceResourcesReferencingTaskDef = resourcesReferencingTaskDef.filter((r) => r.Type === ECS_SERVICE_RESOURCE_TYPE);\n const ecsServicesReferencingTaskDef = new Array();\n for (const ecsServiceResource of ecsServiceResourcesReferencingTaskDef) {\n const serviceArn = await evaluateCfnTemplate.findPhysicalNameFor(ecsServiceResource.LogicalId);\n if (serviceArn) {\n ecsServicesReferencingTaskDef.push({\n logicalId: ecsServiceResource.LogicalId,\n serviceArn,\n });\n }\n }\n if (ecsServicesReferencingTaskDef.length === 0) {\n /**\n * ECS Services can have a task definition that doesn't refer to the task definition being updated.\n * We have to log this as a non-hotswappable change to the task definition, but when we do,\n * we wind up hotswapping the task definition and logging it as a non-hotswappable change.\n *\n * This logic prevents us from logging that change as non-hotswappable when we hotswap it.\n */\n ret.push((0, common_1.nonHotswappableChange)(change, hotswap_1.NonHotswappableReason.DEPENDENCY_UNSUPPORTED, 'No ECS services reference the changed task definition', undefined, false));\n }\n if (resourcesReferencingTaskDef.length > ecsServicesReferencingTaskDef.length) {\n // if something besides an ECS Service is referencing the TaskDefinition,\n // hotswap is not possible in FALL_BACK mode\n const nonEcsServiceTaskDefRefs = resourcesReferencingTaskDef.filter((r) => r.Type !== ECS_SERVICE_RESOURCE_TYPE);\n for (const taskRef of nonEcsServiceTaskDefRefs) {\n ret.push((0, common_1.nonHotswappableChange)(change, hotswap_1.NonHotswappableReason.DEPENDENCY_UNSUPPORTED, `A resource '${taskRef.LogicalId}' with Type '${taskRef.Type}' that is not an ECS Service was found referencing the changed TaskDefinition '${logicalId}'`));\n }\n }\n const namesOfHotswappableChanges = Object.keys(classifiedChanges.hotswappableProps);\n if (namesOfHotswappableChanges.length > 0) {\n const taskDefinitionResource = await prepareTaskDefinitionChange(evaluateCfnTemplate, logicalId, change);\n ret.push({\n change: {\n cause: change,\n resources: [\n {\n logicalId,\n resourceType: change.newValue.Type,\n physicalName: await taskDefinitionResource.Family,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n ...ecsServicesReferencingTaskDef.map((ecsService) => ({\n resourceType: ECS_SERVICE_RESOURCE_TYPE,\n physicalName: ecsService.serviceArn.split('/')[2],\n logicalId: ecsService.logicalId,\n metadata: evaluateCfnTemplate.metadataFor(ecsService.logicalId),\n })),\n ],\n },\n hotswappable: true,\n service: 'ecs-service',\n apply: async (sdk) => {\n // Step 1 - update the changed TaskDefinition, creating a new TaskDefinition Revision\n // we need to lowercase the evaluated TaskDef from CloudFormation,\n // as the AWS SDK uses lowercase property names for these\n // The SDK requires more properties here than its worth doing explicit typing for\n // instead, just use all the old values in the diff to fill them in implicitly\n renameCfnPropertiesToSdkProperties(taskDefinitionResource);\n const lowercasedTaskDef = (0, util_1.transformObjectKeys)(taskDefinitionResource, util_1.lowerCaseFirstCharacter, {\n // All the properties that take arbitrary string as keys i.e. { \"string\" : \"string\" }\n // https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html#API_RegisterTaskDefinition_RequestSyntax\n ContainerDefinitions: {\n DockerLabels: true,\n FirelensConfiguration: {\n Options: true,\n },\n LogConfiguration: {\n Options: true,\n },\n },\n Volumes: {\n DockerVolumeConfiguration: {\n DriverOpts: true,\n Labels: true,\n },\n },\n });\n const registerTaskDefResponse = await sdk.ecs().registerTaskDefinition(lowercasedTaskDef);\n const taskDefRevArn = registerTaskDefResponse.taskDefinition?.taskDefinitionArn;\n let ecsHotswapProperties = hotswapPropertyOverrides.ecs;\n let minimumHealthyPercent = ecsHotswapProperties?.minimumHealthyPercent;\n let maximumHealthyPercent = ecsHotswapProperties?.maximumHealthyPercent;\n let stabilizationTimeoutSeconds = ecsHotswapProperties?.stabilizationTimeoutSeconds;\n // Step 2 - update the services using that TaskDefinition to point to the new TaskDefinition Revision\n // Forcing New Deployment and setting Minimum Healthy Percent to 0.\n // As CDK HotSwap is development only, this seems the most efficient way to ensure all tasks are replaced immediately, regardless of original amount\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(ecsServicesReferencingTaskDef.map(async (service) => {\n const cluster = service.serviceArn.split('/')[1];\n const update = await sdk.ecs().updateService({\n service: service.serviceArn,\n taskDefinition: taskDefRevArn,\n cluster,\n forceNewDeployment: true,\n deploymentConfiguration: {\n minimumHealthyPercent: minimumHealthyPercent !== undefined ? minimumHealthyPercent : 0,\n maximumPercent: maximumHealthyPercent !== undefined ? maximumHealthyPercent : undefined,\n },\n });\n await sdk.ecs().waitUntilServicesStable({\n cluster: update.service?.clusterArn,\n services: [service.serviceArn],\n }, stabilizationTimeoutSeconds);\n }));\n },\n });\n }\n return ret;\n}\nfunction renameCfnPropertiesToSdkProperties(object) {\n // CloudFormation uses ProxyConfigurationProperties but SDK expects properties\n if (object.ProxyConfiguration?.ProxyConfigurationProperties !== undefined) {\n object.ProxyConfiguration.properties = object.ProxyConfiguration.ProxyConfigurationProperties;\n delete object.ProxyConfiguration.ProxyConfigurationProperties;\n }\n}\nasync function prepareTaskDefinitionChange(evaluateCfnTemplate, logicalId, change) {\n const taskDefinitionResource = {\n ...change.oldValue.Properties,\n ContainerDefinitions: change.newValue.Properties?.ContainerDefinitions,\n };\n // first, let's get the name of the family\n const familyNameOrArn = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, taskDefinitionResource?.Family);\n if (!familyNameOrArn) {\n // if the Family property has not been provided, and we can't find it in the current Stack,\n // this means hotswapping is not possible\n return;\n }\n // the physical name of the Task Definition in CloudFormation includes its current revision number at the end,\n // remove it if needed\n const familyNameOrArnParts = familyNameOrArn.split(':');\n const family = familyNameOrArnParts.length > 1\n ? // familyNameOrArn is actually an ARN, of the format 'arn:aws:ecs:region:account:task-definition/:'\n // so, take the 6th element, at index 5, and split it on '/'\n familyNameOrArnParts[5].split('/')[1]\n : // otherwise, familyNameOrArn is just the simple name evaluated from the CloudFormation template\n familyNameOrArn;\n // then, let's evaluate the body of the remainder of the TaskDef (without the Family property)\n return {\n ...(await evaluateCfnTemplate.evaluateCfnExpression({\n ...(taskDefinitionResource ?? {}),\n Family: undefined,\n })),\n Family: family,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNzLXNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWNzLXNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsd0VBc0pDO0FBaktELHFDQUdrQjtBQUNsQixvREFBb0Y7QUFDcEYscUNBQTBFO0FBSTFFLE1BQU0seUJBQXlCLEdBQUcsbUJBQW1CLENBQUM7QUFFL0MsS0FBSyxVQUFVLDhCQUE4QixDQUNsRCxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQsRUFDbkQsd0JBQWtEO0lBRWxELHlFQUF5RTtJQUN6RSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLDBCQUEwQixFQUFFLENBQUM7UUFDeEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQW9CLEVBQUUsQ0FBQztJQUVoQyxxRkFBcUY7SUFDckYscUZBQXFGO0lBQ3JGLHVEQUF1RDtJQUN2RCxNQUFNLGlCQUFpQixHQUFHLElBQUEsd0JBQWUsRUFBQyxNQUFNLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDNUUsaUJBQWlCLENBQUMsb0NBQW9DLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFNUQsdUVBQXVFO0lBQ3ZFLE1BQU0sMkJBQTJCLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEYsTUFBTSxxQ0FBcUMsR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQzlFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLHlCQUF5QixDQUM1QyxDQUFDO0lBQ0YsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO0lBQzlELEtBQUssTUFBTSxrQkFBa0IsSUFBSSxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsU0FBUyxD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NkIsQ0FDN0UsU0FBUyxFQUNULHNCQUFzQixFQUFFLE1BQU0sQ0FDL0IsQ0FBQztJQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQiwyRkFBMkY7UUFDM0YseUNBQXlDO1FBQ3pDLE9BQU87SUFDVCxDQUFDO0lBQ0QsOEdBQThHO0lBQzlHLHNCQUFzQjtJQUN0QixNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsTUFBTSxNQUFNLEdBQ1Ysb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDN0IsQ0FBQyxDQUFDLDZIQUE2SDtZQUNqSSw0REFBNEQ7WUFDMUQsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsZ0dBQWdHO1lBQ2xHLGVBQWUsQ0FBQztJQUNwQiw4RkFBOEY7SUFDOUYsT0FBTztRQUNMLEdBQUcsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDO1lBQ2xELEdBQUcsQ0FBQyxzQkFBc0IsSUFBSSxFQUFFLENBQUM7WUFDakMsTUFBTSxFQUFFLFNBQVM7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICBIb3Rzd2FwQ2hhbmdlLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge1xuICBjbGFzc2lmeUNoYW5nZXMsXG4gIG5vbkhvdHN3YXBwYWJsZUNoYW5nZSxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgTm9uSG90c3dhcHBhYmxlUmVhc29uLCB0eXBlIFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgeyBsb3dlckNhc2VGaXJzdENoYXJhY3RlciwgdHJhbnNmb3JtT2JqZWN0S2V5cyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuXG5jb25zdCBFQ1NfU0VSVklDRV9SRVNPVVJDRV9UWVBFID0gJ0FXUzo6RUNTOjpTZXJ2aWNlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzSG90c3dhcHBhYmxlRWNzU2VydmljZUNoYW5nZShcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT4ge1xuICAvLyB0aGUgb25seSByZXNvdXJjZSBjaGFuZ2Ugd2UgY2FuIGV2YWx1YXRlIGhlcmUgaXMgYW4gRUNTIFRhc2tEZWZpbml0aW9uXG4gIGlmIChjaGFuZ2UubmV3VmFsdWUuVHlwZSAhPT0gJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXQ6IEhvdHN3YXBDaGFuZ2VbXSA9IFtdO1xuXG4gIC8vIFdlIG9ubHkgYWxsb3cgYSBjaGFuZ2UgaW4gdGhlIENvbnRhaW5lckRlZmluaXRpb25zIG9mIHRoZSBUYXNrRGVmaW5pdGlvbiBmb3Igbm93IC1cbiAgLy8gaXQgY29udGFpbnMgdGhlIGltYWdlIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHNlZW1zIGxpa2UgYSBzYWZlIGJldCBmb3Igbm93LlxuICAvLyBXZSBtaWdodCByZXZpc2l0IHRoaXMgZGVjaXNpb24gaW4gdGhlIGZ1dHVyZSB0aG91Z2ghXG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgWydDb250YWluZXJEZWZpbml0aW9ucyddKTtcbiAgY2xhc3NpZmllZENoYW5nZXMucmVwb3J0Tm9uSG90c3dhcHBhYmxlUHJvcGVydHlDaGFuZ2VzKHJldCk7XG5cbiAgLy8gZmluZCBhbGwgRUNTIFNlcnZpY2VzIHRoYXQgcmVmZXJlbmNlIHRoZSBUYXNrRGVmaW5pdGlvbiB0aGF0IGNoYW5nZWRcbiAgY29uc3QgcmVzb3VyY2VzUmVmZXJlbmNpbmdUYXNrRGVmID0gZXZhbHVhdGVDZm5UZW1wbGF0ZS5maW5kUmVmZXJlbmNlc1RvKGxvZ2ljYWxJZCk7XG4gIGNvbnN0IGVjc1NlcnZpY2VSZXNvdXJjZXNSZWZlcmVuY2luZ1Rhc2tEZWYgPSByZXNvdXJjZXNSZWZlcmVuY2luZ1Rhc2tEZWYuZmlsdGVyKFxuICAgIChyKSA9PiByLlR5cGUgPT09IEVDU19TRVJWSUNFX1JFU09VUkNFX1RZUEUsXG4gICk7XG4gIGNvbnN0IGVjc1NlcnZpY2VzUmVmZXJlbmNpbmdUYXNrRGVmID0gbmV3IEFycmF5PEVjc1NlcnZpY2U+KCk7XG4gIGZvciAoY29uc3QgZWNzU2VydmljZVJlc291cmNlIG9mIGVjc1NlcnZpY2VSZXNvdXJjZXNSZWZlcmVuY2luZ1Rhc2tEZWYpIHtcbiAgICBjb25zdCBzZXJ2aWNlQXJuID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5maW5kUGh5c2ljYWxOYW1lRm9yKGVjc1NlcnZpY2VSZXNvdXJjZS5Mb2dpY2FsSWQpO1xuICAgIGlmIChzZXJ2aWNlQXJuKSB7XG4gICAgICBlY3NTZXJ2aWNlc1JlZmVyZW5jaW5nVGFza0RlZi5wdXNoKHtcbiAgICAgICAgbG9naWNhbElkOiBlY3NTZXJ2aWNlUmVzb3VyY2UuTG9naWNhbElkLFxuICAgICAgICBzZXJ2aWNlQXJuLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGlmIChlY3NTZXJ2aWNlc1JlZmVyZW5jaW5nVGFza0RlZi5sZW5ndGggPT09IDApIHtcbiAgICAvKipcbiAgICAgKiBFQ1MgU2VydmljZXMgY2FuIGhhdmUgYSB0YXNrIGRlZmluaXRpb24gdGhhdCBkb2Vzbid0IHJlZmVyIHRvIHRoZSB0YXNrIGRlZmluaXRpb24gYmVpbmcgdXBkYXRlZC5cbiAgICAgKiBXZSBoYXZlIHRvIGxvZyB0aGlzIGFzIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgdG8gdGhlIHRhc2sgZGVmaW5pdGlvbiwgYnV0IHdoZW4gd2UgZG8sXG4gICAgICogd2Ugd2luZCB1cCBob3Rzd2FwcGluZyB0aGUgdGFzayBkZWZpbml0aW9uIGFuZCBsb2dnaW5nIGl0IGFzIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGxvZ2ljIHByZXZlbnRzIHVzIGZyb20gbG9nZ2luZyB0aGF0IGNoYW5nZSBhcyBub24taG90c3dhcHBhYmxlIHdoZW4gd2UgaG90c3dhcCBpdC5cbiAgICAgKi9cbiAgICByZXQucHVzaChub25Ib3Rzd2FwcGFibGVDaGFuZ2UoXG4gICAgICBjaGFuZ2UsXG4gICAgICBOb25Ib3Rzd2FwcGFibGVSZWFzb24uREVQRU5ERU5DWV9VTlNVUFBPUlRFRCxcbiAgICAgICdObyBFQ1Mgc2VydmljZXMgcmVmZXJlbmNlIHRoZSBjaGFuZ2VkIHRhc2sgZGVmaW5pdGlvbicsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBmYWxzZSxcbiAgICApKTtcbiAgfVxuICBpZiAocmVzb3VyY2VzUmVmZXJlbmNpbmdUYXNrRGVmLmxlbmd0aCA+IGVjc1NlcnZpY2VzUmVmZXJlbmNpbmdUYXNrRGVmLmxlbmd0aCkge1xuICAgIC8vIGlmIHNvbWV0aGluZyBiZXNpZGVzIGFuIEVDUyBTZXJ2aWNlIGlzIHJlZmVyZW5jaW5nIHRoZSBUYXNrRGVmaW5pdGlvbixcbiAgICAvLyBob3Rzd2FwIGlzIG5vdCBwb3NzaWJsZSBpbiBGQUxMX0JBQ0sgbW9kZVxuICAgIGNvbnN0IG5vbkVjc1NlcnZpY2VUYXNrRGVmUmVmcyA9IHJlc291cmNlc1JlZmVyZW5jaW5nVGFza0RlZi5maWx0ZXIoKHIpID0+IHIuVHlwZSAhPT0gRUNTX1NFUlZJQ0VfUkVTT1VSQ0VfVFlQRSk7XG4gICAgZm9yIChjb25zdCB0YXNrUmVmIG9mIG5vbkVjc1NlcnZpY2VUYXNrRGVmUmVmcykge1xuICAgICAgcmV0LnB1c2gobm9uSG90c3dhcHBhYmxlQ2hhbmdlKFxuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5ERVBFTkRFTkNZX1VOU1VQUE9SVEVELFxuICAgICAgICBgQSByZXNvdXJjZSAnJHt0YXNrUmVmLkxvZ2ljYWxJZH0nIHdpdGggVHlwZSAnJHt0YXNrUmVmLlR5cGV9JyB0aGF0IGlzIG5vdCBhbiBFQ1MgU2VydmljZSB3YXMgZm91bmQgcmVmZXJlbmNpbmcgdGhlIGNoYW5nZWQgVGFza0RlZmluaXRpb24gJyR7bG9naWNhbElkfSdgLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbmFtZXNPZkhvdHN3YXBwYWJsZUNoYW5nZXMgPSBPYmplY3Qua2V5cyhjbGFzc2lmaWVkQ2hhbmdlcy5ob3Rzd2FwcGFibGVQcm9wcyk7XG4gIGlmIChuYW1lc09mSG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgdGFza0RlZmluaXRpb25SZXNvdXJjZSA9IGF3YWl0IHByZXBhcmVUYXNrRGVmaW5pdGlvbkNoYW5nZShldmFsdWF0ZUNmblRlbXBsYXRlLCBsb2dpY2FsSWQsIGNoYW5nZSk7XG4gICAgcmV0LnB1c2goe1xuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIGNhdXNlOiBjaGFuZ2UsXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgICAgICBwaHlzaWNhbE5hbWU6IGF3YWl0IHRhc2tEZWZpbml0aW9uUmVzb3VyY2UuRmFtaWx5LFxuICAgICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLmVjc1NlcnZpY2VzUmVmZXJlbmNpbmdUYXNrRGVmLm1hcCgoZWNzU2VydmljZSkgPT4gKHtcbiAgICAgICAgICAgIHJlc291cmNlVHlwZTogRUNTX1NFUlZJQ0VfUkVTT1VSQ0VfVFlQRSxcbiAgICAgICAgICAgIHBoeXNpY2FsTmFtZTogZWNzU2VydmljZS5zZXJ2aWNlQXJuLnNwbGl0KCcvJylbMl0sXG4gICAgICAgICAgICBsb2dpY2FsSWQ6IGVjc1NlcnZpY2UubG9naWNhbElkLFxuICAgICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IoZWNzU2VydmljZS5sb2dpY2FsSWQpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBob3Rzd2FwcGFibGU6IHRydWUsXG4gICAgICBzZXJ2aWNlOiAnZWNzLXNlcnZpY2UnLFxuICAgICAgYXBwbHk6IGFzeW5jIChzZGs6IFNESykgPT4ge1xuICAgICAgICAvLyBTdGVwIDEgLSB1cGRhdGUgdGhlIGNoYW5nZWQgVGFza0RlZmluaXRpb24sIGNyZWF0aW5nIGEgbmV3IFRhc2tEZWZpbml0aW9uIFJldmlzaW9uXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gbG93ZXJjYXNlIHRoZSBldmFsdWF0ZWQgVGFza0RlZiBmcm9tIENsb3VkRm9ybWF0aW9uLFxuICAgICAgICAvLyBhcyB0aGUgQVdTIFNESyB1c2VzIGxvd2VyY2FzZSBwcm9wZXJ0eSBuYW1lcyBmb3IgdGhlc2VcblxuICAgICAgICAvLyBUaGUgU0RLIHJlcXVpcmVzIG1vcmUgcHJvcGVydGllcyBoZXJlIHRoYW4gaXRzIHdvcnRoIGRvaW5nIGV4cGxpY2l0IHR5cGluZyBmb3JcbiAgICAgICAgLy8gaW5zdGVhZCwganVzdCB1c2UgYWxsIHRoZSBvbGQgdmFsdWVzIGluIHRoZSBkaWZmIHRvIGZpbGwgdGhlbSBpbiBpbXBsaWNpdGx5XG4gICAgICAgIHJlbmFtZUNmblByb3BlcnRpZXNUb1Nka1Byb3BlcnRpZXModGFza0RlZmluaXRpb25SZXNvdXJjZSk7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZWRUYXNrRGVmID0gdHJhbnNmb3JtT2JqZWN0S2V5cyh0YXNrRGVmaW5pdGlvblJlc291cmNlLCBsb3dlckNhc2VGaXJzdENoYXJhY3Rlciwge1xuICAgICAgICAgIC8vIEFsbCB0aGUgcHJvcGVydGllcyB0aGF0IHRha2UgYXJiaXRyYXJ5IHN0cmluZyBhcyBrZXlzIGkuZS4geyBcInN0cmluZ1wiIDogXCJzdHJpbmdcIiB9XG4gICAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZWdpc3RlclRhc2tEZWZpbml0aW9uLmh0bWwjQVBJX1JlZ2lzdGVyVGFza0RlZmluaXRpb25fUmVxdWVzdFN5bnRheFxuICAgICAgICAgIENvbnRhaW5lckRlZmluaXRpb25zOiB7XG4gICAgICAgICAgICBEb2NrZXJMYWJlbHM6IHRydWUsXG4gICAgICAgICAgICBGaXJlbGVuc0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgT3B0aW9uczogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBMb2dDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgIE9wdGlvbnM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgVm9sdW1lczoge1xuICAgICAgICAgICAgRG9ja2VyVm9sdW1lQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICBEcml2ZXJPcHRzOiB0cnVlLFxuICAgICAgICAgICAgICBMYWJlbHM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZWdpc3RlclRhc2tEZWZSZXNwb25zZSA9IGF3YWl0IHNkay5lY3MoKS5yZWdpc3RlclRhc2tEZWZpbml0aW9uKGxvd2VyY2FzZWRUYXNrRGVmKTtcbiAgICAgICAgY29uc3QgdGFza0RlZlJldkFybiA9IHJlZ2lzdGVyVGFza0RlZlJlc3BvbnNlLnRhc2tEZWZpbml0aW9uPy50YXNrRGVmaW5pdGlvbkFybjtcblxuICAgICAgICBsZXQgZWNzSG90c3dhcFByb3BlcnRpZXMgPSBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMuZWNzO1xuICAgICAgICBsZXQgbWluaW11bUhlYWx0aHlQZXJjZW50ID0gZWNzSG90c3dhcFByb3BlcnRpZXM/Lm1pbmltdW1IZWFsdGh5UGVyY2VudDtcbiAgICAgICAgbGV0IG1heGltdW1IZWFsdGh5UGVyY2VudCA9IGVjc0hvdHN3YXBQcm9wZXJ0aWVzPy5tYXhpbXVtSGVhbHRoeVBlcmNlbnQ7XG4gICAgICAgIGxldCBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgPSBlY3NIb3Rzd2FwUHJvcGVydGllcz8uc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzO1xuXG4gICAgICAgIC8vIFN0ZXAgMiAtIHVwZGF0ZSB0aGUgc2VydmljZXMgdXNpbmcgdGhhdCBUYXNrRGVmaW5pdGlvbiB0byBwb2ludCB0byB0aGUgbmV3IFRhc2tEZWZpbml0aW9uIFJldmlzaW9uXG4gICAgICAgIC8vIEZvcmNpbmcgTmV3IERlcGxveW1lbnQgYW5kIHNldHRpbmcgTWluaW11bSBIZWFsdGh5IFBlcmNlbnQgdG8gMC5cbiAgICAgICAgLy8gQXMgQ0RLIEhvdFN3YXAgaXMgZGV2ZWxvcG1lbnQgb25seSwgdGhpcyBzZWVtcyB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IHRvIGVuc3VyZSBhbGwgdGFza3MgYXJlIHJlcGxhY2VkIGltbWVkaWF0ZWx5LCByZWdhcmRsZXNzIG9mIG9yaWdpbmFsIGFtb3VudFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgZWNzU2VydmljZXNSZWZlcmVuY2luZ1Rhc2tEZWYubWFwKGFzeW5jIChzZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbHVzdGVyID0gc2VydmljZS5zZXJ2aWNlQXJuLnNwbGl0KCcvJylbMV07XG4gICAgICAgICAgICBjb25zdCB1cGRhdGUgPSBhd2FpdCBzZGsuZWNzKCkudXBkYXRlU2VydmljZSh7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2Uuc2VydmljZUFybixcbiAgICAgICAgICAgICAgdGFza0RlZmluaXRpb246IHRhc2tEZWZSZXZBcm4sXG4gICAgICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgICAgIGZvcmNlTmV3RGVwbG95bWVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgZGVwbG95bWVudENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICBtaW5pbXVtSGVhbHRoeVBlcmNlbnQ6IG1pbmltdW1IZWFsdGh5UGVyY2VudCAhPT0gdW5kZWZpbmVkID8gbWluaW11bUhlYWx0aHlQZXJjZW50IDogMCxcbiAgICAgICAgICAgICAgICBtYXhpbXVtUGVyY2VudDogbWF4aW11bUhlYWx0aHlQZXJjZW50ICE9PSB1bmRlZmluZWQgPyBtYXhpbXVtSGVhbHRoeVBlcmNlbnQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgc2RrLmVjcygpLndhaXRVbnRpbFNlcnZpY2VzU3RhYmxlKHtcbiAgICAgICAgICAgICAgY2x1c3RlcjogdXBkYXRlLnNlcnZpY2U/LmNsdXN0ZXJBcm4sXG4gICAgICAgICAgICAgIHNlcnZpY2VzOiBbc2VydmljZS5zZXJ2aWNlQXJuXSxcbiAgICAgICAgICAgIH0sIHN0YWJpbGl6YXRpb25UaW1lb3V0U2Vjb25kcyk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuaW50ZXJmYWNlIEVjc1NlcnZpY2Uge1xuICByZWFkb25seSBsb2dpY2FsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2VydmljZUFybjogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiByZW5hbWVDZm5Qcm9wZXJ0aWVzVG9TZGtQcm9wZXJ0aWVzKG9iamVjdDogYW55KTogdm9pZCB7XG4gIC8vIENsb3VkRm9ybWF0aW9uIHVzZXMgUHJveHlDb25maWd1cmF0aW9uUHJvcGVydGllcyBidXQgU0RLIGV4cGVjdHMgcHJvcGVydGllc1xuICBpZiAob2JqZWN0LlByb3h5Q29uZmlndXJhdGlvbj8uUHJveHlDb25maWd1cmF0aW9uUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgb2JqZWN0LlByb3h5Q29uZmlndXJhdGlvbi5wcm9wZXJ0aWVzID0gb2JqZWN0LlByb3h5Q29uZmlndXJhdGlvbi5Qcm94eUNvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzO1xuICAgIGRlbGV0ZSBvYmplY3QuUHJveHlDb25maWd1cmF0aW9uLlByb3h5Q29uZmlndXJhdGlvblByb3BlcnRpZXM7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVRhc2tEZWZpbml0aW9uQ2hhbmdlKFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuKSB7XG4gIGNvbnN0IHRhc2tEZWZpbml0aW9uUmVzb3VyY2U6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge1xuICAgIC4uLmNoYW5nZS5vbGRWYWx1ZS5Qcm9wZXJ0aWVzLFxuICAgIENvbnRhaW5lckRlZmluaXRpb25zOiBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uQ29udGFpbmVyRGVmaW5pdGlvbnMsXG4gIH07XG4gIC8vIGZpcnN0LCBsZXQncyBnZXQgdGhlIG5hbWUgb2YgdGhlIGZhbWlseVxuICBjb25zdCBmYW1pbHlOYW1lT3JBcm4gPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmVzdGFibGlzaFJlc291cmNlUGh5c2ljYWxOYW1lKFxuICAgIGxvZ2ljYWxJZCxcbiAgICB0YXNrRGVmaW5pdGlvblJlc291cmNlPy5GYW1pbHksXG4gICk7XG4gIGlmICghZmFtaWx5TmFtZU9yQXJuKSB7XG4gICAgLy8gaWYgdGhlIEZhbWlseSBwcm9wZXJ0eSBoYXMgbm90IGJlZW4gcHJvdmlkZWQsIGFuZCB3ZSBjYW4ndCBmaW5kIGl0IGluIHRoZSBjdXJyZW50IFN0YWNrLFxuICAgIC8vIHRoaXMgbWVhbnMgaG90c3dhcHBpbmcgaXMgbm90IHBvc3NpYmxlXG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIHRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoZSBUYXNrIERlZmluaXRpb24gaW4gQ2xvdWRGb3JtYXRpb24gaW5jbHVkZXMgaXRzIGN1cnJlbnQgcmV2aXNpb24gbnVtYmVyIGF0IHRoZSBlbmQsXG4gIC8vIHJlbW92ZSBpdCBpZiBuZWVkZWRcbiAgY29uc3QgZmFtaWx5TmFtZU9yQXJuUGFydHMgPSBmYW1pbHlOYW1lT3JBcm4uc3BsaXQoJzonKTtcbiAgY29uc3QgZmFtaWx5ID1cbiAgICBmYW1pbHlOYW1lT3JBcm5QYXJ0cy5sZW5ndGggPiAxXG4gICAgICA/IC8vIGZhbWlseU5hbWVPckFybiBpcyBhY3R1YWxseSBhbiBBUk4sIG9mIHRoZSBmb3JtYXQgJ2Fybjphd3M6ZWNzOnJlZ2lvbjphY2NvdW50OnRhc2stZGVmaW5pdGlvbi88ZmFtaWx5LW5hbWU+OjxyZXZpc2lvbi1ucj4nXG4gICAgLy8gc28sIHRha2UgdGhlIDZ0aCBlbGVtZW50LCBhdCBpbmRleCA1LCBhbmQgc3BsaXQgaXQgb24gJy8nXG4gICAgICBmYW1pbHlOYW1lT3JBcm5QYXJ0c1s1XS5zcGxpdCgnLycpWzFdXG4gICAgICA6IC8vIG90aGVyd2lzZSwgZmFtaWx5TmFtZU9yQXJuIGlzIGp1c3QgdGhlIHNpbXBsZSBuYW1lIGV2YWx1YXRlZCBmcm9tIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgICAgZmFtaWx5TmFtZU9yQXJuO1xuICAvLyB0aGVuLCBsZXQncyBldmFsdWF0ZSB0aGUgYm9keSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSBUYXNrRGVmICh3aXRob3V0IHRoZSBGYW1pbHkgcHJvcGVydHkpXG4gIHJldHVybiB7XG4gICAgLi4uKGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHtcbiAgICAgIC4uLih0YXNrRGVmaW5pdGlvblJlc291cmNlID8/IHt9KSxcbiAgICAgIEZhbWlseTogdW5kZWZpbmVkLFxuICAgIH0pKSxcbiAgICBGYW1pbHk6IGZhbWlseSxcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tryHotswapDeployment = tryHotswapDeployment;\nconst util_1 = require(\"util\");\nconst cfn_diff = require(\"@aws-cdk/cloudformation-diff\");\nconst chalk = require(\"chalk\");\nconst payloads_1 = require(\"../../payloads\");\nconst util_2 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst appsync_mapping_templates_1 = require(\"./appsync-mapping-templates\");\nconst code_build_projects_1 = require(\"./code-build-projects\");\nconst common_1 = require(\"./common\");\nconst ecs_services_1 = require(\"./ecs-services\");\nconst lambda_functions_1 = require(\"./lambda-functions\");\nconst s3_bucket_deployments_1 = require(\"./s3-bucket-deployments\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst private_1 = require(\"../io/private\");\nconst plugin_1 = require(\"../plugin\");\nconst cloud_control_resource_1 = require(\"./cloud-control-resource\");\n// Must use a require() otherwise esbuild complains about calling a namespace\n// eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/consistent-type-imports\nconst pLimit = require('p-limit');\nconst RESOURCE_DETECTORS = {\n // Lambda\n 'AWS::Lambda::Function': lambda_functions_1.isHotswappableLambdaFunctionChange,\n 'AWS::Lambda::Version': lambda_functions_1.isHotswappableLambdaFunctionChange,\n 'AWS::Lambda::Alias': lambda_functions_1.isHotswappableLambdaFunctionChange,\n // AppSync\n 'AWS::AppSync::Resolver': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::AppSync::FunctionConfiguration': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::AppSync::GraphQLSchema': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::AppSync::ApiKey': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::ECS::TaskDefinition': ecs_services_1.isHotswappableEcsServiceChange,\n 'AWS::CodeBuild::Project': code_build_projects_1.isHotswappableCodeBuildProjectChange,\n 'Custom::CDKBucketDeployment': s3_bucket_deployments_1.isHotswappableS3BucketDeploymentChange,\n 'AWS::IAM::Policy': async (logicalId, change, evaluateCfnTemplate) => {\n // If the policy is for a S3BucketDeploymentChange, we can ignore the change\n if (await (0, s3_bucket_deployments_1.skipChangeForS3DeployCustomResourcePolicy)(logicalId, change, evaluateCfnTemplate)) {\n return [];\n }\n return [(0, common_1.nonHotswappableResource)(change)];\n },\n 'AWS::CDK::Metadata': async () => [],\n // Resources that use CCAPIS\n 'AWS::ApiGateway::RestApi': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGateway::Deployment': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGateway::Method': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGatewayV2::Api': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGatewayV2::Integration': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::Bedrock::Agent': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::Events::Rule': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::DynamoDB::Table': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::DynamoDB::GlobalTable': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::SQS::Queue': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::CloudWatch::Alarm': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::CloudWatch::CompositeAlarm': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::CloudWatch::Dashboard': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::StepFunctions::StateMachine': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::BedrockAgentCore::Runtime': cloud_control_resource_1.isHotswappableCloudControlChange,\n};\n/**\n * Perform a hotswap deployment, short-circuiting CloudFormation if possible.\n * If it's not possible to short-circuit the deployment\n * (because the CDK Stack contains changes that cannot be deployed without CloudFormation),\n * returns `undefined`.\n */\nasync function tryHotswapDeployment(sdkProvider, ioHelper, assetParams, cloudFormationStack, stackArtifact, hotswapMode, hotswapPropertyOverrides) {\n const hotswapSpan = await ioHelper.span(private_1.SPAN.HOTSWAP).begin({\n stack: stackArtifact,\n mode: hotswapMode,\n });\n const result = await hotswapDeployment(sdkProvider, hotswapSpan, assetParams, stackArtifact, hotswapMode, hotswapPropertyOverrides);\n await hotswapSpan.end(result);\n // This is a hotswap error that was caught during the hotswapDeployment function\n // It is thrown after the hotswap span ends so it can be reported to telemetry\n if (result.error) {\n throw result.error;\n }\n if (result?.hotswapped === true) {\n return {\n type: 'did-deploy-stack',\n noOp: result.hotswappableChanges.length === 0,\n stackArn: cloudFormationStack.stackId,\n outputs: cloudFormationStack.outputs,\n };\n }\n return undefined;\n}\n/**\n * Perform a hotswap deployment, short-circuiting CloudFormation if possible.\n * Returns information about the attempted hotswap deployment\n */\nasync function hotswapDeployment(sdkProvider, ioSpan, assetParams, stack, hotswapMode, hotswapPropertyOverrides) {\n // resolve the environment, so we can substitute things like AWS::Region in CFN expressions\n const resolvedEnv = await sdkProvider.resolveEnvironment(stack.environment);\n // create a new SDK using the CLI credentials, because the default one will not work for new-style synthesis -\n // it assumes the bootstrap deploy Role, which doesn't have permissions to update Lambda functions\n const sdk = (await sdkProvider.forEnvironment(resolvedEnv, plugin_1.Mode.ForWriting)).sdk;\n const currentTemplate = await (0, cloudformation_1.loadCurrentTemplateWithNestedStacks)(stack, sdk);\n const evaluateCfnTemplate = new cloudformation_1.EvaluateCloudFormationTemplate({\n stackArtifact: stack,\n parameters: assetParams,\n account: resolvedEnv.account,\n region: resolvedEnv.region,\n partition: (await sdk.currentAccount()).partition,\n sdk,\n nestedStacks: currentTemplate.nestedStacks,\n });\n const stackChanges = cfn_diff.fullDiff(currentTemplate.deployedRootTemplate, stack.template);\n const { hotswappable, nonHotswappable } = await classifyResourceChanges(stackChanges, evaluateCfnTemplate, sdk, currentTemplate.nestedStacks, hotswapPropertyOverrides);\n await logRejectedChanges(ioSpan, nonHotswappable, hotswapMode);\n const hotswappableChanges = hotswappable.map(o => o.change);\n const nonHotswappableChanges = nonHotswappable.map(n => n.change);\n await ioSpan.notify(private_1.IO.CDK_TOOLKIT_I5401.msg('Hotswap plan created', {\n stack,\n mode: hotswapMode,\n hotswappableChanges,\n nonHotswappableChanges,\n }));\n // preserve classic hotswap behavior\n if (hotswapMode === 'fall-back') {\n if (nonHotswappableChanges.length > 0) {\n return {\n stack,\n mode: hotswapMode,\n hotswapped: false,\n hotswappableChanges,\n nonHotswappableChanges,\n };\n }\n }\n // apply the short-circuitable changes\n let error;\n try {\n await applyAllHotswapOperations(sdk, ioSpan, hotswappable);\n }\n catch (e) {\n error = e;\n }\n return {\n stack,\n mode: hotswapMode,\n hotswapped: !error,\n hotswappableChanges,\n nonHotswappableChanges,\n error,\n };\n}\n/**\n * Classifies all changes to all resources as either hotswappable or not.\n * Metadata changes are excluded from the list of (non)hotswappable resources.\n */\nasync function classifyResourceChanges(stackChanges, evaluateCfnTemplate, sdk, nestedStackNames, hotswapPropertyOverrides) {\n const resourceDifferences = getStackResourceDifferences(stackChanges);\n const promises = [];\n const hotswappableResources = new Array();\n const nonHotswappableResources = new Array();\n const nestedStackTasks = [];\n const limit = pLimit(10);\n for (const logicalId of Object.keys(stackChanges.outputs.changes)) {\n nonHotswappableResources.push({\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.OUTPUT,\n description: 'output was changed',\n subject: {\n type: 'Output',\n logicalId,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n });\n }\n // gather the results of the detector functions\n for (const [logicalId, change] of Object.entries(resourceDifferences)) {\n if (change.newValue?.Type === 'AWS::CloudFormation::Stack' && change.oldValue?.Type === 'AWS::CloudFormation::Stack') {\n nestedStackTasks.push(limit(() => findNestedHotswappableChanges(logicalId, change, nestedStackNames, evaluateCfnTemplate, sdk, hotswapPropertyOverrides)));\n continue;\n }\n const hotswappableChangeCandidate = isCandidateForHotswapping(logicalId, change, evaluateCfnTemplate);\n // we don't need to run this through the detector functions, we can already judge this\n if ('hotswappable' in hotswappableChangeCandidate) {\n if (!hotswappableChangeCandidate.hotswappable) {\n nonHotswappableResources.push(hotswappableChangeCandidate);\n }\n continue;\n }\n const resourceType = hotswappableChangeCandidate.newValue.Type;\n if (resourceType in RESOURCE_DETECTORS) {\n // run detector functions lazily to prevent unhandled promise rejections\n promises.push(() => RESOURCE_DETECTORS[resourceType](logicalId, hotswappableChangeCandidate, evaluateCfnTemplate, hotswapPropertyOverrides));\n }\n else {\n nonHotswappableResources.push((0, common_1.nonHotswappableResource)(hotswappableChangeCandidate));\n }\n }\n // resolve all nested stack and detector results in parallel\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const nestedResults = await Promise.all(nestedStackTasks);\n for (const nested of nestedResults) {\n hotswappableResources.push(...nested.hotswappable);\n nonHotswappableResources.push(...nested.nonHotswappable);\n }\n const changesDetectionResults = [];\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const detectorResults = await Promise.all(promises.map((fn) => limit(fn)));\n for (const hotswapDetectionResults of detectorResults) {\n changesDetectionResults.push(hotswapDetectionResults);\n }\n for (const resourceDetectionResults of changesDetectionResults) {\n for (const propertyResult of resourceDetectionResults) {\n propertyResult.hotswappable\n ? hotswappableResources.push(propertyResult)\n : nonHotswappableResources.push(propertyResult);\n }\n }\n return {\n hotswappable: hotswappableResources,\n nonHotswappable: nonHotswappableResources,\n };\n}\n/**\n * Returns all changes to resources in the given Stack.\n *\n * @param stackChanges - the collection of all changes to a given Stack\n */\nfunction getStackResourceDifferences(stackChanges) {\n // we need to collapse logical ID rename changes into one change,\n // as they are represented in stackChanges as a pair of two changes: one addition and one removal\n const allResourceChanges = stackChanges.resources.changes;\n const allRemovalChanges = filterDict(allResourceChanges, (resChange) => resChange.isRemoval);\n const allNonRemovalChanges = filterDict(allResourceChanges, (resChange) => !resChange.isRemoval);\n for (const [logId, nonRemovalChange] of Object.entries(allNonRemovalChanges)) {\n if (nonRemovalChange.isAddition) {\n const addChange = nonRemovalChange;\n // search for an identical removal change\n const identicalRemovalChange = Object.entries(allRemovalChanges).find(([_, remChange]) => {\n return changesAreForSameResource(remChange, addChange);\n });\n // if we found one, then this means this is a rename change\n if (identicalRemovalChange) {\n const [removedLogId, removedResourceChange] = identicalRemovalChange;\n allNonRemovalChanges[logId] = makeRenameDifference(removedResourceChange, addChange);\n // delete the removal change that forms the rename pair\n delete allRemovalChanges[removedLogId];\n }\n }\n }\n // the final result are all of the remaining removal changes,\n // plus all of the non-removal changes\n // (we saved the rename changes in that object already)\n return {\n ...allRemovalChanges,\n ...allNonRemovalChanges,\n };\n}\n/** Filters an object with string keys based on whether the callback returns 'true' for the given value in the object. */\nfunction filterDict(dict, func) {\n return Object.entries(dict).reduce((acc, [key, t]) => {\n if (func(t)) {\n acc[key] = t;\n }\n return acc;\n }, {});\n}\n/** Finds any hotswappable changes in all nested stacks. */\nasync function findNestedHotswappableChanges(logicalId, change, nestedStackTemplates, evaluateCfnTemplate, sdk, hotswapPropertyOverrides) {\n const nestedStack = nestedStackTemplates[logicalId];\n if (!nestedStack.physicalName) {\n return {\n hotswappable: [],\n nonHotswappable: [\n {\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.NESTED_STACK_CREATION,\n description: 'newly created nested stacks cannot be hotswapped',\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: 'AWS::CloudFormation::Stack',\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n },\n ],\n };\n }\n const evaluateNestedCfnTemplate = await evaluateCfnTemplate.createNestedEvaluateCloudFormationTemplate(nestedStack.physicalName, nestedStack.generatedTemplate, change.newValue?.Properties?.Parameters);\n const nestedDiff = cfn_diff.fullDiff(nestedStackTemplates[logicalId].deployedTemplate, nestedStackTemplates[logicalId].generatedTemplate);\n return classifyResourceChanges(nestedDiff, evaluateNestedCfnTemplate, sdk, nestedStackTemplates[logicalId].nestedStackTemplates, hotswapPropertyOverrides);\n}\n/** Returns 'true' if a pair of changes is for the same resource. */\nfunction changesAreForSameResource(oldChange, newChange) {\n return (oldChange.oldResourceType === newChange.newResourceType &&\n // this isn't great, but I don't want to bring in something like underscore just for this comparison\n JSON.stringify(oldChange.oldProperties) === JSON.stringify(newChange.newProperties));\n}\nfunction makeRenameDifference(remChange, addChange) {\n return new cfn_diff.ResourceDifference(\n // we have to fill in the old value, because otherwise this will be classified as a non-hotswappable change\n remChange.oldValue, addChange.newValue, {\n resourceType: {\n oldType: remChange.oldResourceType,\n newType: addChange.newResourceType,\n },\n propertyDiffs: addChange.propertyDiffs,\n otherDiffs: addChange.otherDiffs,\n });\n}\n/**\n * Returns a `HotswappableChangeCandidate` if the change is hotswappable\n * Returns an empty `HotswappableChange` if the change is to CDK::Metadata\n * Returns a `NonHotswappableChange` if the change is not hotswappable\n */\nfunction isCandidateForHotswapping(logicalId, change, evaluateCfnTemplate) {\n // a resource has been removed OR a resource has been added; we can't short-circuit that change\n if (!change.oldValue) {\n return {\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.RESOURCE_CREATION,\n description: `resource '${logicalId}' was created by this deployment`,\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: change.newValue.Type,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n };\n }\n else if (!change.newValue) {\n return {\n hotswappable: false,\n logicalId,\n change: {\n reason: payloads_1.NonHotswappableReason.RESOURCE_DELETION,\n description: `resource '${logicalId}' was destroyed by this deployment`,\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: change.oldValue.Type,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n };\n }\n // a resource has had its type changed\n if (change.newValue.Type !== change.oldValue.Type) {\n return {\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.RESOURCE_TYPE_CHANGED,\n description: `resource '${logicalId}' had its type changed from '${change.oldValue?.Type}' to '${change.newValue?.Type}'`,\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: change.newValue.Type,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n };\n }\n return {\n logicalId,\n oldValue: change.oldValue,\n newValue: change.newValue,\n propertyUpdates: change.propertyUpdates,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n };\n}\nasync function applyAllHotswapOperations(sdk, ioSpan, hotswappableChanges) {\n if (hotswappableChanges.length === 0) {\n return Promise.resolve([]);\n }\n await ioSpan.defaults.info(`\\n${common_1.ICON} hotswapping resources:`);\n const limit = pLimit(10);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(hotswappableChanges.map(hotswapOperation => limit(() => {\n return applyHotswapOperation(sdk, ioSpan, hotswapOperation);\n })));\n}\nasync function applyHotswapOperation(sdk, ioSpan, hotswapOperation) {\n // note the type of service that was successfully hotswapped in the User-Agent\n const customUserAgent = `cdk-hotswap/success-${hotswapOperation.service}`;\n sdk.appendCustomUserAgent(customUserAgent);\n const resourceText = (r) => r.description ?? `${r.resourceType} '${r.physicalName ?? r.logicalId}'`;\n await ioSpan.notify(private_1.IO.CDK_TOOLKIT_I5402.msg(hotswapOperation.change.resources.map(r => (0, util_1.format)(` ${common_1.ICON} %s`, chalk.bold(resourceText(r)))).join('\\n'), hotswapOperation.change));\n // if the SDK call fails, an error will be thrown by the SDK\n // and will prevent the green 'hotswapped!' text from being displayed\n try {\n await hotswapOperation.apply(sdk);\n }\n catch (e) {\n if (e.name === 'TimeoutError' || e.name === 'AbortError') {\n const result = JSON.parse((0, util_2.formatErrorMessage)(e));\n const error = new toolkit_error_1.ToolkitError('HotswapWaiterFailed', formatWaiterErrorResult(result));\n error.name = e.name;\n throw error;\n }\n throw e;\n }\n await ioSpan.notify(private_1.IO.CDK_TOOLKIT_I5403.msg(hotswapOperation.change.resources.map(r => (0, util_1.format)(` ${common_1.ICON} %s %s`, chalk.bold(resourceText(r)), chalk.green('hotswapped!'))).join('\\n'), hotswapOperation.change));\n sdk.removeCustomUserAgent(customUserAgent);\n}\nfunction formatWaiterErrorResult(result) {\n const main = [\n `Resource is not in the expected state due to waiter status: ${result.state}`,\n result.reason ? `${result.reason}.` : '',\n ].join('. ');\n if (result.observedResponses != null) {\n const observedResponses = Object\n .entries(result.observedResponses)\n .map(([msg, count]) => ` - ${msg} (${count})`)\n .join('\\n');\n return `${main} Observed responses:\\n${observedResponses}`;\n }\n return main;\n}\nasync function logRejectedChanges(ioSpan, rejectedChanges, hotswapMode) {\n if (rejectedChanges.length === 0) {\n return;\n }\n /**\n * EKS Services can have a task definition that doesn't refer to the task definition being updated.\n * We have to log this as a non-hotswappable change to the task definition, but when we do,\n * we wind up hotswapping the task definition and logging it as a non-hotswappable change.\n *\n * This logic prevents us from logging that change as non-hotswappable when we hotswap it.\n */\n if (hotswapMode === 'hotswap-only') {\n rejectedChanges = rejectedChanges.filter((change) => change.hotswapOnlyVisible === true);\n if (rejectedChanges.length === 0) {\n return;\n }\n }\n const messages = ['']; // start with empty line\n if (hotswapMode === 'hotswap-only') {\n messages.push((0, util_1.format)('%s %s', chalk.red('⚠️'), chalk.red('The following non-hotswappable changes were found. To reconcile these using CloudFormation, specify --hotswap-fallback')));\n }\n else {\n messages.push((0, util_1.format)('%s %s', chalk.red('⚠️'), chalk.red('The following non-hotswappable changes were found:')));\n }\n for (const { change } of rejectedChanges) {\n messages.push(' ' + nonHotswappableChangeMessage(change));\n }\n messages.push(''); // newline\n await ioSpan.defaults.info(messages.join('\\n'));\n}\n/**\n * Formats a NonHotswappableChange\n */\nfunction nonHotswappableChangeMessage(change) {\n const subject = change.subject;\n const reason = change.description ?? change.reason;\n switch (subject.type) {\n case 'Output':\n return (0, util_1.format)('output: %s, reason: %s', chalk.bold(subject.logicalId), chalk.red(reason));\n case 'Resource':\n return nonHotswappableResourceMessage(subject, reason);\n }\n}\n/**\n * Formats a non-hotswappable resource subject\n */\nfunction nonHotswappableResourceMessage(subject, reason) {\n if (subject.rejectedProperties?.length) {\n return (0, util_1.format)('resource: %s, type: %s, rejected changes: %s, reason: %s', chalk.bold(subject.logicalId), chalk.bold(subject.resourceType), chalk.bold(subject.rejectedProperties), chalk.red(reason));\n }\n return (0, util_1.format)('resource: %s, type: %s, reason: %s', chalk.bold(subject.logicalId), chalk.bold(subject.resourceType), chalk.red(reason));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90c3dhcC1kZXBsb3ltZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvdHN3YXAtZGVwbG95bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1R0Esb0RBeUNDO0FBaEpELCtCQUE4QjtBQUU5Qix5REFBeUQ7QUFFekQsK0JBQStCO0FBRS9CLDZDQUF1RDtBQUN2RCxxQ0FBZ0Q7QUFHaEQsc0RBQXdHO0FBQ3hHLDJFQUEwRTtBQUMxRSwrREFBNkU7QUFPN0UscUNBR2tCO0FBQ2xCLGlEQUFnRTtBQUNoRSx5REFBd0U7QUFDeEUsbUVBR2lDO0FBQ2pDLCtEQUEyRDtBQUUzRCwyQ0FBeUM7QUFFekMsc0NBQWlDO0FBQ2pDLHFFQUE0RTtBQUU1RSw2RUFBNkU7QUFDN0UsNEdBQTRHO0FBQzVHLE1BQU0sTUFBTSxHQUE2QixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFXNUQsTUFBTSxrQkFBa0IsR0FBdUM7SUFDN0QsU0FBUztJQUNULHVCQUF1QixFQUFFLHFEQUFrQztJQUMzRCxzQkFBc0IsRUFBRSxxREFBa0M7SUFDMUQsb0JBQW9CLEVBQUUscURBQWtDO0lBRXhELFVBQVU7SUFDVix3QkFBd0IsRUFBRSx1REFBMkI7SUFDckQscUNBQXFDLEVBQUUsdURBQTJCO0lBQ2xFLDZCQUE2QixFQUFFLHVEQUEyQjtJQUMxRCxzQkFBc0IsRUFBRSx1REFBMkI7SUFFbkQsMEJBQTBCLEVBQUUsNkNBQThCO0lBQzFELHlCQUF5QixFQUFFLDBEQUFvQztJQUMvRCw2QkFBNkIsRUFBRSw4REFBc0M7SUFDckUsa0JBQWtCLEVBQUUsS0FBSyxFQUN2QixTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQsRUFDekIsRUFBRTtRQUM1Qiw0RUFBNEU7UUFDNUUsSUFBSSxNQUFNLElBQUEsaUVBQXlDLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDNUYsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFD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QVMsOEJBQThCLENBQUMsT0FBd0IsRUFBRSxNQUFjO0lBQzlFLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBQSxhQUFNLEVBQ1gsMERBQTBELEVBQzFELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFDdEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUEsYUFBTSxFQUNYLG9DQUFvQyxFQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQ2hDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQ2xCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjZm5fZGlmZiBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgV2FpdGVyUmVzdWx0IH0gZnJvbSAnQHNtaXRoeS91dGlsLXdhaXRlcic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFmZmVjdGVkUmVzb3VyY2UsIEhvdHN3YXBSZXN1bHQsIFJlc291cmNlU3ViamVjdCwgUmVzb3VyY2VDaGFuZ2UsIE5vbkhvdHN3YXBwYWJsZUNoYW5nZSB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IE5vbkhvdHN3YXBwYWJsZVJlYXNvbiB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2ssIE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgbG9hZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MsIEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSB9IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGlzSG90c3dhcHBhYmxlQXBwU3luY0NoYW5nZSB9IGZyb20gJy4vYXBwc3luYy1tYXBwaW5nLXRlbXBsYXRlcyc7XG5pbXBvcnQgeyBpc0hvdHN3YXBwYWJsZUNvZGVCdWlsZFByb2plY3RDaGFuZ2UgfSBmcm9tICcuL2NvZGUtYnVpbGQtcHJvamVjdHMnO1xuaW1wb3J0IHR5cGUge1xuICBIb3Rzd2FwQ2hhbmdlLFxuICBIb3Rzd2FwT3BlcmF0aW9uLFxuICBSZWplY3RlZENoYW5nZSxcbiAgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge1xuICBJQ09OLFxuICBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZSxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVFY3NTZXJ2aWNlQ2hhbmdlIH0gZnJvbSAnLi9lY3Mtc2VydmljZXMnO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVMYW1iZGFGdW5jdGlvbkNoYW5nZSB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9ucyc7XG5pbXBvcnQge1xuICBza2lwQ2hhbmdlRm9yUzNEZXBsb3lDdXN0b21SZXNvdXJjZVBvbGljeSxcbiAgaXNIb3Rzd2FwcGFibGVTM0J1Y2tldERlcGxveW1lbnRDaGFuZ2UsXG59IGZyb20gJy4vczMtYnVja2V0LWRlcGxveW1lbnRzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uL2RlcGxveW1lbnRzJztcbmltcG9ydCB7IElPLCBTUEFOIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElNZXNzYWdlU3BhbiwgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UgfSBmcm9tICcuL2Nsb3VkLWNvbnRyb2wtcmVzb3VyY2UnO1xuXG4vLyBNdXN0IHVzZSBhIHJlcXVpcmUoKSBvdGhlcndpc2UgZXNidWlsZCBjb21wbGFpbnMgYWJvdXQgY2FsbGluZyBhIG5hbWVzcGFjZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMsQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1pbXBvcnRzXG5jb25zdCBwTGltaXQ6IHR5cGVvZiBpbXBvcnQoJ3AtbGltaXQnKSA9IHJlcXVpcmUoJ3AtbGltaXQnKTtcblxudHlwZSBIb3Rzd2FwRGV0ZWN0b3IgPSAoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKSA9PiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT47XG5cbnR5cGUgSG90c3dhcE1vZGUgPSAnaG90c3dhcC1vbmx5JyB8ICdmYWxsLWJhY2snO1xuXG5jb25zdCBSRVNPVVJDRV9ERVRFQ1RPUlM6IHsgW2tleTogc3RyaW5nXTogSG90c3dhcERldGVjdG9yIH0gPSB7XG4gIC8vIExhbWJkYVxuICAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJzogaXNIb3Rzd2FwcGFibGVMYW1iZGFGdW5jdGlvbkNoYW5nZSxcbiAgJ0FXUzo6TGFtYmRhOjpWZXJzaW9uJzogaXNIb3Rzd2FwcGFibGVMYW1iZGFGdW5jdGlvbkNoYW5nZSxcbiAgJ0FXUzo6TGFtYmRhOjpBbGlhcyc6IGlzSG90c3dhcHBhYmxlTGFtYmRhRnVuY3Rpb25DaGFuZ2UsXG5cbiAgLy8gQXBwU3luY1xuICAnQVdTOjpBcHBTeW5jOjpSZXNvbHZlcic6IGlzSG90c3dhcHBhYmxlQXBwU3luY0NoYW5nZSxcbiAgJ0FXUzo6QXBwU3luYzo6RnVuY3Rpb25Db25maWd1cmF0aW9uJzogaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlLFxuICAnQVdTOjpBcHBTeW5jOjpHcmFwaFFMU2NoZW1hJzogaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlLFxuICAnQVdTOjpBcHBTeW5jOjpBcGlLZXknOiBpc0hvdHN3YXBwYWJsZUFwcFN5bmNDaGFuZ2UsXG5cbiAgJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbic6IGlzSG90c3dhcHBhYmxlRWNzU2VydmljZUNoYW5nZSxcbiAgJ0FXUzo6Q29kZUJ1aWxkOjpQcm9qZWN0JzogaXNIb3Rzd2FwcGFibGVDb2RlQnVpbGRQcm9qZWN0Q2hhbmdlLFxuICAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JzogaXNIb3Rzd2FwcGFibGVTM0J1Y2tldERlcGxveW1lbnRDaGFuZ2UsXG4gICdBV1M6OklBTTo6UG9saWN5JzogYXN5bmMgKFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gICAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICApOiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT4gPT4ge1xuICAgIC8vIElmIHRoZSBwb2xpY3kgaXMgZm9yIGEgUzNCdWNrZXREZXBsb3ltZW50Q2hhbmdlLCB3ZSBjYW4gaWdub3JlIHRoZSBjaGFuZ2VcbiAgICBpZiAoYXdhaXQgc2tpcENoYW5nZUZvclMzRGVwbG95Q3VzdG9tUmVzb3VyY2VQb2xpY3kobG9naWNhbElkLCBjaGFuZ2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtub25Ib3Rzd2FwcGFibGVSZXNvdXJjZShjaGFuZ2UpXTtcbiAgfSxcblxuICAnQVdTOjpDREs6Ok1ldGFkYXRhJzogYXN5bmMgKCkgPT4gW10sXG5cbiAgLy8gUmVzb3VyY2VzIHRoYXQgdXNlIENDQVBJU1xuICAnQVdTOjpBcGlHYXRld2F5OjpSZXN0QXBpJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkFwaUdhdGV3YXk6OkRlcGxveW1lbnQnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6TWV0aG9kJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6SW50ZWdyYXRpb24nOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6QmVkcm9jazo6QWdlbnQnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6RXZlbnRzOjpSdWxlJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkR5bmFtb0RCOjpUYWJsZSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6U1FTOjpRdWV1ZSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpDbG91ZFdhdGNoOjpBbGFybSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpDbG91ZFdhdGNoOjpDb21wb3NpdGVBbGFybSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpDbG91ZFdhdGNoOjpEYXNoYm9hcmQnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkJlZHJvY2tBZ2VudENvcmU6OlJ1bnRpbWUnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbn07XG5cbi8qKlxuICogUGVyZm9ybSBhIGhvdHN3YXAgZGVwbG95bWVudCwgc2hvcnQtY2lyY3VpdGluZyBDbG91ZEZvcm1hdGlvbiBpZiBwb3NzaWJsZS5cbiAqIElmIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHNob3J0LWNpcmN1aXQgdGhlIGRlcGxveW1lbnRcbiAqIChiZWNhdXNlIHRoZSBDREsgU3RhY2sgY29udGFpbnMgY2hhbmdlcyB0aGF0IGNhbm5vdCBiZSBkZXBsb3llZCB3aXRob3V0IENsb3VkRm9ybWF0aW9uKSxcbiAqIHJldHVybnMgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cnlIb3Rzd2FwRGVwbG95bWVudChcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIGFzc2V0UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICBjbG91ZEZvcm1hdGlvblN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrLFxuICBzdGFja0FydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIGhvdHN3YXBNb2RlOiBIb3Rzd2FwTW9kZSxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBob3Rzd2FwU3BhbiA9IGF3YWl0IGlvSGVscGVyLnNwYW4oU1BBTi5IT1RTV0FQKS5iZWdpbih7XG4gICAgc3RhY2s6IHN0YWNrQXJ0aWZhY3QsXG4gICAgbW9kZTogaG90c3dhcE1vZGUsXG4gIH0pO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGhvdHN3YXBEZXBsb3ltZW50KFxuICAgIHNka1Byb3ZpZGVyLFxuICAgIGhvdHN3YXBTcGFuLFxuICAgIGFzc2V0UGFyYW1zLFxuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgaG90c3dhcE1vZGUsXG4gICAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICApO1xuXG4gIGF3YWl0IGhvdHN3YXBTcGFuLmVuZChyZXN1bHQpO1xuXG4gIC8vIFRoaXMgaXMgYSBob3Rzd2FwIGVycm9yIHRoYXQgd2FzIGNhdWdodCBkdXJpbmcgdGhlIGhvdHN3YXBEZXBsb3ltZW50IGZ1bmN0aW9uXG4gIC8vIEl0IGlzIHRocm93biBhZnRlciB0aGUgaG90c3dhcCBzcGFuIGVuZHMgc28gaXQgY2FuIGJlIHJlcG9ydGVkIHRvIHRlbGVtZXRyeVxuICBpZiAocmVzdWx0LmVycm9yKSB7XG4gICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICB9XG5cbiAgaWYgKHJlc3VsdD8uaG90c3dhcHBlZCA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZGlkLWRlcGxveS1zdGFjaycsXG4gICAgICBub09wOiByZXN1bHQuaG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPT09IDAsXG4gICAgICBzdGFja0FybjogY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja0lkLFxuICAgICAgb3V0cHV0czogY2xvdWRGb3JtYXRpb25TdGFjay5vdXRwdXRzLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBlcmZvcm0gYSBob3Rzd2FwIGRlcGxveW1lbnQsIHNob3J0LWNpcmN1aXRpbmcgQ2xvdWRGb3JtYXRpb24gaWYgcG9zc2libGUuXG4gKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdHRlbXB0ZWQgaG90c3dhcCBkZXBsb3ltZW50XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGhvdHN3YXBEZXBsb3ltZW50KFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlvU3BhbjogSU1lc3NhZ2VTcGFuPGFueT4sXG4gIGFzc2V0UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBob3Rzd2FwTW9kZTogSG90c3dhcE1vZGUsXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxPbWl0PEhvdHN3YXBSZXN1bHQsICdkdXJhdGlvbic+PiB7XG4gIC8vIHJlc29sdmUgdGhlIGVudmlyb25tZW50LCBzbyB3ZSBjYW4gc3Vic3RpdHV0ZSB0aGluZ3MgbGlrZSBBV1M6OlJlZ2lvbiBpbiBDRk4gZXhwcmVzc2lvbnNcbiAgY29uc3QgcmVzb2x2ZWRFbnYgPSBhd2FpdCBzZGtQcm92aWRlci5yZXNvbHZlRW52aXJvbm1lbnQoc3RhY2suZW52aXJvbm1lbnQpO1xuICAvLyBjcmVhdGUgYSBuZXcgU0RLIHVzaW5nIHRoZSBDTEkgY3JlZGVudGlhbHMsIGJlY2F1c2UgdGhlIGRlZmF1bHQgb25lIHdpbGwgbm90IHdvcmsgZm9yIG5ldy1zdHlsZSBzeW50aGVzaXMgLVxuICAvLyBpdCBhc3N1bWVzIHRoZSBib290c3RyYXAgZGVwbG95IFJvbGUsIHdoaWNoIGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9ucyB0byB1cGRhdGUgTGFtYmRhIGZ1bmN0aW9uc1xuICBjb25zdCBzZGsgPSAoYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQocmVzb2x2ZWRFbnYsIE1vZGUuRm9yV3JpdGluZykpLnNkaztcblxuICBjb25zdCBjdXJyZW50VGVtcGxhdGUgPSBhd2FpdCBsb2FkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhzdGFjaywgc2RrKTtcblxuICBjb25zdCBldmFsdWF0ZUNmblRlbXBsYXRlID0gbmV3IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSh7XG4gICAgc3RhY2tBcnRpZmFjdDogc3RhY2ssXG4gICAgcGFyYW1ldGVyczogYXNzZXRQYXJhbXMsXG4gICAgYWNjb3VudDogcmVzb2x2ZWRFbnYuYWNjb3VudCxcbiAgICByZWdpb246IHJlc29sdmVkRW52LnJlZ2lvbixcbiAgICBwYXJ0aXRpb246IChhd2FpdCBzZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uLFxuICAgIHNkayxcbiAgICBuZXN0ZWRTdGFja3M6IGN1cnJlbnRUZW1wbGF0ZS5uZXN0ZWRTdGFja3MsXG4gIH0pO1xuXG4gIGNvbnN0IHN0YWNrQ2hhbmdlcyA9IGNmbl9kaWZmLmZ1bGxEaWZmKGN1cnJlbnRUZW1wbGF0ZS5kZXBsb3llZFJvb3RUZW1wbGF0ZSwgc3RhY2sudGVtcGxhdGUpO1xuICBjb25zdCB7IGhvdHN3YXBwYWJsZSwgbm9uSG90c3dhcHBhYmxlIH0gPSBhd2FpdCBjbGFzc2lmeVJlc291cmNlQ2hhbmdlcyhcbiAgICBzdGFja0NoYW5nZXMsXG4gICAgZXZhbHVhdGVDZm5UZW1wbGF0ZSxcbiAgICBzZGssXG4gICAgY3VycmVudFRlbXBsYXRlLm5lc3RlZFN0YWNrcywgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICApO1xuXG4gIGF3YWl0IGxvZ1JlamVjdGVkQ2hhbmdlcyhpb1NwYW4sIG5vbkhvdHN3YXBwYWJsZSwgaG90c3dhcE1vZGUpO1xuXG4gIGNvbnN0IGhvdHN3YXBwYWJsZUNoYW5nZXMgPSBob3Rzd2FwcGFibGUubWFwKG8gPT4gby5jaGFuZ2UpO1xuICBjb25zdCBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzID0gbm9uSG90c3dhcHBhYmxlLm1hcChuID0+IG4uY2hhbmdlKTtcblxuICBhd2FpdCBpb1NwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k1NDAxLm1zZygnSG90c3dhcCBwbGFuIGNyZWF0ZWQnLCB7XG4gICAgc3RhY2ssXG4gICAgbW9kZTogaG90c3dhcE1vZGUsXG4gICAgaG90c3dhcHBhYmxlQ2hhbmdlcyxcbiAgICBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzLFxuICB9KSk7XG5cbiAgLy8gcHJlc2VydmUgY2xhc3NpYyBob3Rzd2FwIGJlaGF2aW9yXG4gIGlmIChob3Rzd2FwTW9kZSA9PT0gJ2ZhbGwtYmFjaycpIHtcbiAgICBpZiAobm9uSG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFjayxcbiAgICAgICAgbW9kZTogaG90c3dhcE1vZGUsXG4gICAgICAgIGhvdHN3YXBwZWQ6IGZhbHNlLFxuICAgICAgICBob3Rzd2FwcGFibGVDaGFuZ2VzLFxuICAgICAgICBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBhcHBseSB0aGUgc2hvcnQtY2lyY3VpdGFibGUgY2hhbmdlc1xuICBsZXQgZXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGF3YWl0IGFwcGx5QWxsSG90c3dhcE9wZXJhdGlvbnMoc2RrLCBpb1NwYW4sIGhvdHN3YXBwYWJsZSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGVycm9yID0gZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3RhY2ssXG4gICAgbW9kZTogaG90c3dhcE1vZGUsXG4gICAgaG90c3dhcHBlZDogIWVycm9yLFxuICAgIGhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgbm9uSG90c3dhcHBhYmxlQ2hhbmdlcyxcbiAgICBlcnJvcixcbiAgfTtcbn1cblxuaW50ZXJmYWNlIENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgaG90c3dhcHBhYmxlOiBIb3Rzd2FwT3BlcmF0aW9uW107XG4gIG5vbkhvdHN3YXBwYWJsZTogUmVqZWN0ZWRDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBDbGFzc2lmaWVzIGFsbCBjaGFuZ2VzIHRvIGFsbCByZXNvdXJjZXMgYXMgZWl0aGVyIGhvdHN3YXBwYWJsZSBvciBub3QuXG4gKiBNZXRhZGF0YSBjaGFuZ2VzIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBsaXN0IG9mIChub24paG90c3dhcHBhYmxlIHJlc291cmNlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2xhc3NpZnlSZXNvdXJjZUNoYW5nZXMoXG4gIHN0YWNrQ2hhbmdlczogY2ZuX2RpZmYuVGVtcGxhdGVEaWZmLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIHNkazogU0RLLFxuICBuZXN0ZWRTdGFja05hbWVzOiB7IFtuZXN0ZWRTdGFja05hbWU6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0sXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxDbGFzc2lmaWVkQ2hhbmdlcz4ge1xuICBjb25zdCByZXNvdXJjZURpZmZlcmVuY2VzID0gZ2V0U3RhY2tSZXNvdXJjZURpZmZlcmVuY2VzKHN0YWNrQ2hhbmdlcyk7XG5cbiAgY29uc3QgcHJvbWlzZXM6IEFycmF5PCgpID0+IFByb21pc2U8SG90c3dhcENoYW5nZVtdPj4gPSBbXTtcbiAgY29uc3QgaG90c3dhcHBhYmxlUmVzb3VyY2VzID0gbmV3IEFycmF5PEhvdHN3YXBPcGVyYXRpb24+KCk7XG4gIGNvbnN0IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcyA9IG5ldyBBcnJheTxSZWplY3RlZENoYW5nZT4oKTtcbiAgY29uc3QgbmVzdGVkU3RhY2tUYXNrczogQXJyYXk8UHJvbWlzZTxDbGFzc2lmaWVkQ2hhbmdlcz4+ID0gW107XG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcblxuICBmb3IgKGNvbnN0IGxvZ2ljYWxJZCBvZiBPYmplY3Qua2V5cyhzdGFja0NoYW5nZXMub3V0cHV0cy5jaGFuZ2VzKSkge1xuICAgIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHtcbiAgICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb24uT1VUUFVULFxuICAgICAgICBkZXNjcmlwdGlvbjogJ291dHB1dCB3YXMgY2hhbmdlZCcsXG4gICAgICAgIHN1YmplY3Q6IHtcbiAgICAgICAgICB0eXBlOiAnT3V0cHV0JyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy8gZ2F0aGVyIHRoZSByZXN1bHRzIG9mIHRoZSBkZXRlY3RvciBmdW5jdGlvbnNcbiAgZm9yIChjb25zdCBbbG9naWNhbElkLCBjaGFuZ2VdIG9mIE9iamVjdC5lbnRyaWVzKHJlc291cmNlRGlmZmVyZW5jZXMpKSB7XG4gICAgaWYgKGNoYW5nZS5uZXdWYWx1ZT8uVHlwZSA9PT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyAmJiBjaGFuZ2Uub2xkVmFsdWU/LlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycpIHtcbiAgICAgIG5lc3RlZFN0YWNrVGFza3MucHVzaChsaW1pdCgoKSA9PiBmaW5kTmVzdGVkSG90c3dhcHBhYmxlQ2hhbmdlcyhcbiAgICAgICAgbG9naWNhbElkLFxuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIG5lc3RlZFN0YWNrTmFtZXMsXG4gICAgICAgIGV2YWx1YXRlQ2ZuVGVtcGxhdGUsXG4gICAgICAgIHNkayxcbiAgICAgICAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICAgICAgKSkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlID0gaXNDYW5kaWRhdGVGb3JIb3Rzd2FwcGluZyhsb2dpY2FsSWQsIGNoYW5nZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG4gICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBydW4gdGhpcyB0aHJvdWdoIHRoZSBkZXRlY3RvciBmdW5jdGlvbnMsIHdlIGNhbiBhbHJlYWR5IGp1ZGdlIHRoaXNcbiAgICBpZiAoJ2hvdHN3YXBwYWJsZScgaW4gaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlKSB7XG4gICAgICBpZiAoIWhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZS5ob3Rzd2FwcGFibGUpIHtcbiAgICAgICAgbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLnB1c2goaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlKTtcbiAgICAgIH1cblxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VUeXBlOiBzdHJpbmcgPSBob3Rzd2FwcGFibGVDaGFuZ2VDYW5kaWRhdGUubmV3VmFsdWUuVHlwZTtcbiAgICBpZiAocmVzb3VyY2VUeXBlIGluIFJFU09VUkNFX0RFVEVDVE9SUykge1xuICAgICAgLy8gcnVuIGRldGVjdG9yIGZ1bmN0aW9ucyBsYXppbHkgdG8gcHJldmVudCB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zXG4gICAgICBwcm9taXNlcy5wdXNoKCgpID0+XG4gICAgICAgIFJFU09VUkNFX0RFVEVDVE9SU1tyZXNvdXJjZVR5cGVdKGxvZ2ljYWxJZCwgaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlLCBldmFsdWF0ZUNmblRlbXBsYXRlLCBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLnB1c2gobm9uSG90c3dhcHBhYmxlUmVzb3VyY2UoaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVzb2x2ZSBhbGwgbmVzdGVkIHN0YWNrIGFuZCBkZXRlY3RvciByZXN1bHRzIGluIHBhcmFsbGVsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICBjb25zdCBuZXN0ZWRSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwobmVzdGVkU3RhY2tUYXNrcyk7XG4gIGZvciAoY29uc3QgbmVzdGVkIG9mIG5lc3RlZFJlc3VsdHMpIHtcbiAgICBob3Rzd2FwcGFibGVSZXNvdXJjZXMucHVzaCguLi5uZXN0ZWQuaG90c3dhcHBhYmxlKTtcbiAgICBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZXMucHVzaCguLi5uZXN0ZWQubm9uSG90c3dhcHBhYmxlKTtcbiAgfVxuXG4gIGNvbnN0IGNoYW5nZXNEZXRlY3Rpb25SZXN1bHRzOiBBcnJheTxIb3Rzd2FwQ2hhbmdlW10+ID0gW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICBjb25zdCBkZXRlY3RvclJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcy5tYXAoKGZuKSA9PiBsaW1pdChmbikpKTtcbiAgZm9yIChjb25zdCBob3Rzd2FwRGV0ZWN0aW9uUmVzdWx0cyBvZiBkZXRlY3RvclJlc3VsdHMpIHtcbiAgICBjaGFuZ2VzRGV0ZWN0aW9uUmVzdWx0cy5wdXNoKGhvdHN3YXBEZXRlY3Rpb25SZXN1bHRzKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgcmVzb3VyY2VEZXRlY3Rpb25SZXN1bHRzIG9mIGNoYW5nZXNEZXRlY3Rpb25SZXN1bHRzKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eVJlc3VsdCBvZiByZXNvdXJjZURldGVjdGlvblJlc3VsdHMpIHtcbiAgICAgIHByb3BlcnR5UmVzdWx0LmhvdHN3YXBwYWJsZVxuICAgICAgICA/IGhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KVxuICAgICAgICA6IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhvdHN3YXBwYWJsZTogaG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICAgIG5vbkhvdHN3YXBwYWJsZTogbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIGNoYW5nZXMgdG8gcmVzb3VyY2VzIGluIHRoZSBnaXZlbiBTdGFjay5cbiAqXG4gKiBAcGFyYW0gc3RhY2tDaGFuZ2VzIC0gdGhlIGNvbGxlY3Rpb24gb2YgYWxsIGNoYW5nZXMgdG8gYSBnaXZlbiBTdGFja1xuICovXG5mdW5jdGlvbiBnZXRTdGFja1Jlc291cmNlRGlmZmVyZW5jZXMoc3RhY2tDaGFuZ2VzOiBjZm5fZGlmZi5UZW1wbGF0ZURpZmYpOiB7XG4gIFtsb2dpY2FsSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZTtcbn0ge1xuICAvLyB3ZSBuZWVkIHRvIGNvbGxhcHNlIGxvZ2ljYWwgSUQgcmVuYW1lIGNoYW5nZXMgaW50byBvbmUgY2hhbmdlLFxuICAvLyBhcyB0aGV5IGFyZSByZXByZXNlbnRlZCBpbiBzdGFja0NoYW5nZXMgYXMgYSBwYWlyIG9mIHR3byBjaGFuZ2VzOiBvbmUgYWRkaXRpb24gYW5kIG9uZSByZW1vdmFsXG4gIGNvbnN0IGFsbFJlc291cmNlQ2hhbmdlczogeyBbbG9nSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSB9ID0gc3RhY2tDaGFuZ2VzLnJlc291cmNlcy5jaGFuZ2VzO1xuICBjb25zdCBhbGxSZW1vdmFsQ2hhbmdlcyA9IGZpbHRlckRpY3QoYWxsUmVzb3VyY2VDaGFuZ2VzLCAocmVzQ2hhbmdlKSA9PiByZXNDaGFuZ2UuaXNSZW1vdmFsKTtcbiAgY29uc3QgYWxsTm9uUmVtb3ZhbENoYW5nZXMgPSBmaWx0ZXJEaWN0KGFsbFJlc291cmNlQ2hhbmdlcywgKHJlc0NoYW5nZSkgPT4gIXJlc0NoYW5nZS5pc1JlbW92YWwpO1xuICBmb3IgKGNvbnN0IFtsb2dJZCwgbm9uUmVtb3ZhbENoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoYWxsTm9uUmVtb3ZhbENoYW5nZXMpKSB7XG4gICAgaWYgKG5vblJlbW92YWxDaGFuZ2UuaXNBZGRpdGlvbikge1xuICAgICAgY29uc3QgYWRkQ2hhbmdlID0gbm9uUmVtb3ZhbENoYW5nZTtcbiAgICAgIC8vIHNlYXJjaCBmb3IgYW4gaWRlbnRpY2FsIHJlbW92YWwgY2hhbmdlXG4gICAgICBjb25zdCBpZGVudGljYWxSZW1vdmFsQ2hhbmdlID0gT2JqZWN0LmVudHJpZXMoYWxsUmVtb3ZhbENoYW5nZXMpLmZpbmQoKFtfLCByZW1DaGFuZ2VdKSA9PiB7XG4gICAgICAgIHJldHVybiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKHJlbUNoYW5nZSwgYWRkQ2hhbmdlKTtcbiAgICAgIH0pO1xuICAgICAgLy8gaWYgd2UgZm91bmQgb25lLCB0aGVuIHRoaXMgbWVhbnMgdGhpcyBpcyBhIHJlbmFtZSBjaGFuZ2VcbiAgICAgIGlmIChpZGVudGljYWxSZW1vdmFsQ2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IFtyZW1vdmVkTG9nSWQsIHJlbW92ZWRSZXNvdXJjZUNoYW5nZV0gPSBpZGVudGljYWxSZW1vdmFsQ2hhbmdlO1xuICAgICAgICBhbGxOb25SZW1vdmFsQ2hhbmdlc1tsb2dJZF0gPSBtYWtlUmVuYW1lRGlmZmVyZW5jZShyZW1vdmVkUmVzb3VyY2VDaGFuZ2UsIGFkZENoYW5nZSk7XG4gICAgICAgIC8vIGRlbGV0ZSB0aGUgcmVtb3ZhbCBjaGFuZ2UgdGhhdCBmb3JtcyB0aGUgcmVuYW1lIHBhaXJcbiAgICAgICAgZGVsZXRlIGFsbFJlbW92YWxDaGFuZ2VzW3JlbW92ZWRMb2dJZF07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgYXJlIGFsbCBvZiB0aGUgcmVtYWluaW5nIHJlbW92YWwgY2hhbmdlcyxcbiAgLy8gcGx1cyBhbGwgb2YgdGhlIG5vbi1yZW1vdmFsIGNoYW5nZXNcbiAgLy8gKHdlIHNhdmVkIHRoZSByZW5hbWUgY2hhbmdlcyBpbiB0aGF0IG9iamVjdCBhbHJlYWR5KVxuICByZXR1cm4ge1xuICAgIC4uLmFsbFJlbW92YWxDaGFuZ2VzLFxuICAgIC4uLmFsbE5vblJlbW92YWxDaGFuZ2VzLFxuICB9O1xufVxuXG4vKiogRmlsdGVycyBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5cyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBjYWxsYmFjayByZXR1cm5zICd0cnVlJyBmb3IgdGhlIGdpdmVuIHZhbHVlIGluIHRoZSBvYmplY3QuICovXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PFQ+KGRpY3Q6IHsgW2tleTogc3RyaW5nXTogVCB9LCBmdW5jOiAodDogVCkgPT4gYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogVCB9IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRpY3QpLnJlZHVjZShcbiAgICAoYWNjLCBba2V5LCB0XSkgPT4ge1xuICAgICAgaWYgKGZ1bmModCkpIHtcbiAgICAgICAgYWNjW2tleV0gPSB0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogVCB9LFxuICApO1xufVxuXG4vKiogRmluZHMgYW55IGhvdHN3YXBwYWJsZSBjaGFuZ2VzIGluIGFsbCBuZXN0ZWQgc3RhY2tzLiAqL1xuYXN5bmMgZnVuY3Rpb24gZmluZE5lc3RlZEhvdHN3YXBwYWJsZUNoYW5nZXMoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IHsgW25lc3RlZFN0YWNrTmFtZTogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICBzZGs6IFNESyxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPENsYXNzaWZpZWRDaGFuZ2VzPiB7XG4gIGNvbnN0IG5lc3RlZFN0YWNrID0gbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXTtcbiAgaWYgKCFuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBbXSxcbiAgICAgIG5vbkhvdHN3YXBwYWJsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgICAgICBjaGFuZ2U6IHtcbiAgICAgICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLk5FU1RFRF9TVEFDS19DUkVBVElPTixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnbmV3bHkgY3JlYXRlZCBuZXN0ZWQgc3RhY2tzIGNhbm5vdCBiZSBob3Rzd2FwcGVkJyxcbiAgICAgICAgICAgIHN1YmplY3Q6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBldmFsdWF0ZU5lc3RlZENmblRlbXBsYXRlID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5jcmVhdGVOZXN0ZWRFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoXG4gICAgbmVzdGVkU3RhY2sucGh5c2ljYWxOYW1lLFxuICAgIG5lc3RlZFN0YWNrLmdlbmVyYXRlZFRlbXBsYXRlLFxuICAgIGNoYW5nZS5uZXdWYWx1ZT8uUHJvcGVydGllcz8uUGFyYW1ldGVycyxcbiAgKTtcblxuICBjb25zdCBuZXN0ZWREaWZmID0gY2ZuX2RpZmYuZnVsbERpZmYoXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5kZXBsb3llZFRlbXBsYXRlLFxuICAgIG5lc3RlZFN0YWNrVGVtcGxhdGVzW2xvZ2ljYWxJZF0uZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICk7XG5cbiAgcmV0dXJuIGNsYXNzaWZ5UmVzb3VyY2VDaGFuZ2VzKFxuICAgIG5lc3RlZERpZmYsXG4gICAgZXZhbHVhdGVOZXN0ZWRDZm5UZW1wbGF0ZSxcbiAgICBzZGssXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICk7XG59XG5cbi8qKiBSZXR1cm5zICd0cnVlJyBpZiBhIHBhaXIgb2YgY2hhbmdlcyBpcyBmb3IgdGhlIHNhbWUgcmVzb3VyY2UuICovXG5mdW5jdGlvbiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKFxuICBvbGRDaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmV3Q2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBvbGRDaGFuZ2Uub2xkUmVzb3VyY2VUeXBlID09PSBuZXdDaGFuZ2UubmV3UmVzb3VyY2VUeXBlICYmXG4gICAgLy8gdGhpcyBpc24ndCBncmVhdCwgYnV0IEkgZG9uJ3Qgd2FudCB0byBicmluZyBpbiBzb21ldGhpbmcgbGlrZSB1bmRlcnNjb3JlIGp1c3QgZm9yIHRoaXMgY29tcGFyaXNvblxuICAgIEpTT04uc3RyaW5naWZ5KG9sZENoYW5nZS5vbGRQcm9wZXJ0aWVzKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3Q2hhbmdlLm5ld1Byb3BlcnRpZXMpXG4gICk7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZW5hbWVEaWZmZXJlbmNlKFxuICByZW1DaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgYWRkQ2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZShcbiAgICAvLyB3ZSBoYXZlIHRvIGZpbGwgaW4gdGhlIG9sZCB2YWx1ZSwgYmVjYXVzZSBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIGNsYXNzaWZpZWQgYXMgYSBub24taG90c3dhcHBhYmxlIGNoYW5nZVxuICAgIHJlbUNoYW5nZS5vbGRWYWx1ZSxcbiAgICBhZGRDaGFuZ2UubmV3VmFsdWUsXG4gICAge1xuICAgICAgcmVzb3VyY2VUeXBlOiB7XG4gICAgICAgIG9sZFR5cGU6IHJlbUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUsXG4gICAgICAgIG5ld1R5cGU6IGFkZENoYW5nZS5uZXdSZXNvdXJjZVR5cGUsXG4gICAgICB9LFxuICAgICAgcHJvcGVydHlEaWZmczogKGFkZENoYW5nZSBhcyBhbnkpLnByb3BlcnR5RGlmZnMsXG4gICAgICBvdGhlckRpZmZzOiAoYWRkQ2hhbmdlIGFzIGFueSkub3RoZXJEaWZmcyxcbiAgICB9LFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBgSG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlYCBpZiB0aGUgY2hhbmdlIGlzIGhvdHN3YXBwYWJsZVxuICogUmV0dXJucyBhbiBlbXB0eSBgSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIHRvIENESzo6TWV0YWRhdGFcbiAqIFJldHVybnMgYSBgTm9uSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIG5vdCBob3Rzd2FwcGFibGVcbiAqL1xuZnVuY3Rpb24gaXNDYW5kaWRhdGVGb3JIb3Rzd2FwcGluZyhcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogY2ZuX2RpZmYuUmVzb3VyY2VEaWZmZXJlbmNlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBSZWplY3RlZENoYW5nZSB8IFJlc291cmNlQ2hhbmdlIHtcbiAgLy8gYSByZXNvdXJjZSBoYXMgYmVlbiByZW1vdmVkIE9SIGEgcmVzb3VyY2UgaGFzIGJlZW4gYWRkZWQ7IHdlIGNhbid0IHNob3J0LWNpcmN1aXQgdGhhdCBjaGFuZ2VcbiAgaWYgKCFjaGFuZ2Uub2xkVmFsdWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgIGNoYW5nZToge1xuICAgICAgICByZWFzb246IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9DUkVBVElPTixcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyB3YXMgY3JlYXRlZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2UubmV3VmFsdWUhLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBlbHNlIGlmICghY2hhbmdlLm5ld1ZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgICBsb2dpY2FsSWQsXG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb24uUkVTT1VSQ0VfREVMRVRJT04sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgcmVzb3VyY2UgJyR7bG9naWNhbElkfScgd2FzIGRlc3Ryb3llZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2Uub2xkVmFsdWUuVHlwZSxcbiAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gYSByZXNvdXJjZSBoYXMgaGFkIGl0cyB0eXBlIGNoYW5nZWRcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSBjaGFuZ2Uub2xkVmFsdWUuVHlwZSkge1xuICAgIHJldHVybiB7XG4gICAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLlJFU09VUkNFX1RZUEVfQ0hBTkdFRCxcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBoYWQgaXRzIHR5cGUgY2hhbmdlZCBmcm9tICcke2NoYW5nZS5vbGRWYWx1ZT8uVHlwZX0nIHRvICcke2NoYW5nZS5uZXdWYWx1ZT8uVHlwZX0nYCxcbiAgICAgICAgc3ViamVjdDoge1xuICAgICAgICAgIHR5cGU6ICdSZXNvdXJjZScsXG4gICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbG9naWNhbElkLFxuICAgIG9sZFZhbHVlOiBjaGFuZ2Uub2xkVmFsdWUsXG4gICAgbmV3VmFsdWU6IGNoYW5nZS5uZXdWYWx1ZSxcbiAgICBwcm9wZXJ0eVVwZGF0ZXM6IGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMsXG4gICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlBbGxIb3Rzd2FwT3BlcmF0aW9ucyhzZGs6IFNESywgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PiwgaG90c3dhcHBhYmxlQ2hhbmdlczogSG90c3dhcE9wZXJhdGlvbltdKTogUHJvbWlzZTx2b2lkW10+IHtcbiAgaWYgKGhvdHN3YXBwYWJsZUNoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gIH1cblxuICBhd2FpdCBpb1NwYW4uZGVmYXVsdHMuaW5mbyhgXFxuJHtJQ09OfSBob3Rzd2FwcGluZyByZXNvdXJjZXM6YCk7XG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gIHJldHVybiBQcm9taXNlLmFsbChob3Rzd2FwcGFibGVDaGFuZ2VzLm1hcChob3Rzd2FwT3BlcmF0aW9uID0+IGxpbWl0KCgpID0+IHtcbiAgICByZXR1cm4gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkaywgaW9TcGFuLCBob3Rzd2FwT3BlcmF0aW9uKTtcbiAgfSkpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkazogU0RLLCBpb1NwYW46IElNZXNzYWdlU3Bhbjxhbnk+LCBob3Rzd2FwT3BlcmF0aW9uOiBIb3Rzd2FwT3BlcmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIG5vdGUgdGhlIHR5cGUgb2Ygc2VydmljZSB0aGF0IHdhcyBzdWNjZXNzZnVsbHkgaG90c3dhcHBlZCBpbiB0aGUgVXNlci1BZ2VudFxuICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBgY2RrLWhvdHN3YXAvc3VjY2Vzcy0ke2hvdHN3YXBPcGVyYXRpb24uc2VydmljZX1gO1xuICBzZGsuYXBwZW5kQ3VzdG9tVXNlckFnZW50KGN1c3RvbVVzZXJBZ2VudCk7XG4gIGNvbnN0IHJlc291cmNlVGV4dCA9IChyOiBBZmZlY3RlZFJlc291cmNlKSA9PiByLmRlc2NyaXB0aW9uID8/IGAke3IucmVzb3VyY2VUeXBlfSAnJHtyLnBoeXNpY2FsTmFtZSA/PyByLmxvZ2ljYWxJZH0nYDtcblxuICBhd2FpdCBpb1NwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k1NDAyLm1zZyhcbiAgICBob3Rzd2FwT3BlcmF0aW9uLmNoYW5nZS5yZXNvdXJjZXMubWFwKHIgPT4gZm9ybWF0KGAgICAke0lDT059ICVzYCwgY2hhbGsuYm9sZChyZXNvdXJjZVRleHQocikpKSkuam9pbignXFxuJyksXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UsXG4gICkpO1xuXG4gIC8vIGlmIHRoZSBTREsgY2FsbCBmYWlscywgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gYnkgdGhlIFNES1xuICAvLyBhbmQgd2lsbCBwcmV2ZW50IHRoZSBncmVlbiAnaG90c3dhcHBlZCEnIHRleHQgZnJvbSBiZWluZyBkaXNwbGF5ZWRcbiAgdHJ5IHtcbiAgICBhd2FpdCBob3Rzd2FwT3BlcmF0aW9uLmFwcGx5KHNkayk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLm5hbWUgPT09ICdUaW1lb3V0RXJyb3InIHx8IGUubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IFdhaXRlclJlc3VsdCA9IEpTT04ucGFyc2UoZm9ybWF0RXJyb3JNZXNzYWdlKGUpKTtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IFRvb2xraXRFcnJvcignSG90c3dhcFdhaXRlckZhaWxlZCcsIGZvcm1hdFdhaXRlckVycm9yUmVzdWx0KHJlc3VsdCkpO1xuICAgICAgZXJyb3IubmFtZSA9IGUubmFtZTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgYXdhaXQgaW9TcGFuLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTQwMy5tc2coXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UucmVzb3VyY2VzLm1hcChyID0+IGZvcm1hdChgICAgJHtJQ09OfSAlcyAlc2AsIGNoYWxrLmJvbGQocmVzb3VyY2VUZXh0KHIpKSwgY2hhbGsuZ3JlZW4oJ2hvdHN3YXBwZWQhJykpKS5qb2luKCdcXG4nKSxcbiAgICBob3Rzd2FwT3BlcmF0aW9uLmNoYW5nZSxcbiAgKSk7XG5cbiAgc2RrLnJlbW92ZUN1c3RvbVVzZXJBZ2VudChjdXN0b21Vc2VyQWdlbnQpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRXYWl0ZXJFcnJvclJlc3VsdChyZXN1bHQ6IFdhaXRlclJlc3VsdCkge1xuICBjb25zdCBtYWluID0gW1xuICAgIGBSZXNvdXJjZSBpcyBub3QgaW4gdGhlIGV4cGVjdGVkIHN0YXRlIGR1ZSB0byB3YWl0ZXIgc3RhdHVzOiAke3Jlc3VsdC5zdGF0ZX1gLFxuICAgIHJlc3VsdC5yZWFzb24gPyBgJHtyZXN1bHQucmVhc29ufS5gIDogJycsXG4gIF0uam9pbignLiAnKTtcblxuICBpZiAocmVzdWx0Lm9ic2VydmVkUmVzcG9uc2VzICE9IG51bGwpIHtcbiAgICBjb25zdCBvYnNlcnZlZFJlc3BvbnNlcyA9IE9iamVjdFxuICAgICAgLmVudHJpZXMocmVzdWx0Lm9ic2VydmVkUmVzcG9uc2VzKVxuICAgICAgLm1hcCgoW21zZywgY291bnRdKSA9PiBgICAtICR7bXNnfSAoJHtjb3VudH0pYClcbiAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgIHJldHVybiBgJHttYWlufSBPYnNlcnZlZCByZXNwb25zZXM6XFxuJHtvYnNlcnZlZFJlc3BvbnNlc31gO1xuICB9XG5cbiAgcmV0dXJuIG1haW47XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvZ1JlamVjdGVkQ2hhbmdlcyhcbiAgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PixcbiAgcmVqZWN0ZWRDaGFuZ2VzOiBSZWplY3RlZENoYW5nZVtdLFxuICBob3Rzd2FwTW9kZTogSG90c3dhcE1vZGUsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHJlamVjdGVkQ2hhbmdlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLyoqXG4gICAqIEVLUyBTZXJ2aWNlcyBjYW4gaGF2ZSBhIHRhc2sgZGVmaW5pdGlvbiB0aGF0IGRvZXNuJ3QgcmVmZXIgdG8gdGhlIHRhc2sgZGVmaW5pdGlvbiBiZWluZyB1cGRhdGVkLlxuICAgKiBXZSBoYXZlIHRvIGxvZyB0aGlzIGFzIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgdG8gdGhlIHRhc2sgZGVmaW5pdGlvbiwgYnV0IHdoZW4gd2UgZG8sXG4gICAqIHdlIHdpbmQgdXAgaG90c3dhcHBpbmcgdGhlIHRhc2sgZGVmaW5pdGlvbiBhbmQgbG9nZ2luZyBpdCBhcyBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlLlxuICAgKlxuICAgKiBUaGlzIGxvZ2ljIHByZXZlbnRzIHVzIGZyb20gbG9nZ2luZyB0aGF0IGNoYW5nZSBhcyBub24taG90c3dhcHBhYmxlIHdoZW4gd2UgaG90c3dhcCBpdC5cbiAgICovXG4gIGlmIChob3Rzd2FwTW9kZSA9PT0gJ2hvdHN3YXAtb25seScpIHtcbiAgICByZWplY3RlZENoYW5nZXMgPSByZWplY3RlZENoYW5nZXMuZmlsdGVyKChjaGFuZ2UpID0+IGNoYW5nZS5ob3Rzd2FwT25seVZpc2libGUgPT09IHRydWUpO1xuXG4gICAgaWYgKHJlamVjdGVkQ2hhbmdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBjb25zdCBtZXNzYWdlcyA9IFsnJ107IC8vIHN0YXJ0IHdpdGggZW1wdHkgbGluZVxuXG4gIGlmIChob3Rzd2FwTW9kZSA9PT0gJ2hvdHN3YXAtb25seScpIHtcbiAgICBtZXNzYWdlcy5wdXNoKGZvcm1hdCgnJXMgJXMnLCBjaGFsay5yZWQoJ+KaoO+4jycpLCBjaGFsay5yZWQoJ1RoZSBmb2xsb3dpbmcgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIHdlcmUgZm91bmQuIFRvIHJlY29uY2lsZSB0aGVzZSB1c2luZyBDbG91ZEZvcm1hdGlvbiwgc3BlY2lmeSAtLWhvdHN3YXAtZmFsbGJhY2snKSkpO1xuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2VzLnB1c2goZm9ybWF0KCclcyAlcycsIGNoYWxrLnJlZCgn4pqg77iPJyksIGNoYWxrLnJlZCgnVGhlIGZvbGxvd2luZyBub24taG90c3dhcHBhYmxlIGNoYW5nZXMgd2VyZSBmb3VuZDonKSkpO1xuICB9XG5cbiAgZm9yIChjb25zdCB7IGNoYW5nZSB9IG9mIHJlamVjdGVkQ2hhbmdlcykge1xuICAgIG1lc3NhZ2VzLnB1c2goJyAgICAnICsgbm9uSG90c3dhcHBhYmxlQ2hhbmdlTWVzc2FnZShjaGFuZ2UpKTtcbiAgfVxuICBtZXNzYWdlcy5wdXNoKCcnKTsgLy8gbmV3bGluZVxuXG4gIGF3YWl0IGlvU3Bhbi5kZWZhdWx0cy5pbmZvKG1lc3NhZ2VzLmpvaW4oJ1xcbicpKTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgTm9uSG90c3dhcHBhYmxlQ2hhbmdlXG4gKi9cbmZ1bmN0aW9uIG5vbkhvdHN3YXBwYWJsZUNoYW5nZU1lc3NhZ2UoY2hhbmdlOiBOb25Ib3Rzd2FwcGFibGVDaGFuZ2UpOiBzdHJpbmcge1xuICBjb25zdCBzdWJqZWN0ID0gY2hhbmdlLnN1YmplY3Q7XG4gIGNvbnN0IHJlYXNvbiA9IGNoYW5nZS5kZXNjcmlwdGlvbiA/PyBjaGFuZ2UucmVhc29uO1xuXG4gIHN3aXRjaCAoc3ViamVjdC50eXBlKSB7XG4gICAgY2FzZSAnT3V0cHV0JzpcbiAgICAgIHJldHVybiBmb3JtYXQoXG4gICAgICAgICdvdXRwdXQ6ICVzLCByZWFzb246ICVzJyxcbiAgICAgICAgY2hhbGsuYm9sZChzdWJqZWN0LmxvZ2ljYWxJZCksXG4gICAgICAgIGNoYWxrLnJlZChyZWFzb24pLFxuICAgICAgKTtcbiAgICBjYXNlICdSZXNvdXJjZSc6XG4gICAgICByZXR1cm4gbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VNZXNzYWdlKHN1YmplY3QsIHJlYXNvbik7XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgbm9uLWhvdHN3YXBwYWJsZSByZXNvdXJjZSBzdWJqZWN0XG4gKi9cbmZ1bmN0aW9uIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlTWVzc2FnZShzdWJqZWN0OiBSZXNvdXJjZVN1YmplY3QsIHJlYXNvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN1YmplY3QucmVqZWN0ZWRQcm9wZXJ0aWVzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZm9ybWF0KFxuICAgICAgJ3Jlc291cmNlOiAlcywgdHlwZTogJXMsIHJlamVjdGVkIGNoYW5nZXM6ICVzLCByZWFzb246ICVzJyxcbiAgICAgIGNoYWxrLmJvbGQoc3ViamVjdC5sb2dpY2FsSWQpLFxuICAgICAgY2hhbGsuYm9sZChzdWJqZWN0LnJlc291cmNlVHlwZSksXG4gICAgICBjaGFsay5ib2xkKHN1YmplY3QucmVqZWN0ZWRQcm9wZXJ0aWVzKSxcbiAgICAgIGNoYWxrLnJlZChyZWFzb24pLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZm9ybWF0KFxuICAgICdyZXNvdXJjZTogJXMsIHR5cGU6ICVzLCByZWFzb246ICVzJyxcbiAgICBjaGFsay5ib2xkKHN1YmplY3QubG9naWNhbElkKSxcbiAgICBjaGFsay5ib2xkKHN1YmplY3QucmVzb3VyY2VUeXBlKSxcbiAgICBjaGFsay5yZWQocmVhc29uKSxcbiAgKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableLambdaFunctionChange = isHotswappableLambdaFunctionChange;\nconst stream_1 = require(\"stream\");\nconst common_1 = require(\"./common\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst archiver = require('archiver');\nasync function isHotswappableLambdaFunctionChange(logicalId, change, evaluateCfnTemplate) {\n // if the change is for a Lambda Version, we just ignore it\n // we will publish a new version when we get to hotswapping the actual Function this Version points to\n // (Versions can't be changed in CloudFormation anyway, they're immutable)\n if (change.newValue.Type === 'AWS::Lambda::Version') {\n return [];\n }\n // we handle Aliases specially too\n // the actual alias update will happen if we change the function\n if (change.newValue.Type === 'AWS::Lambda::Alias') {\n return classifyAliasChanges(change);\n }\n if (change.newValue.Type !== 'AWS::Lambda::Function') {\n return [];\n }\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['Code', 'Environment', 'Description']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n const functionName = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, change.newValue.Properties?.FunctionName);\n const namesOfHotswappableChanges = Object.keys(classifiedChanges.hotswappableProps);\n if (functionName && namesOfHotswappableChanges.length > 0) {\n const lambdaCodeChange = await evaluateLambdaFunctionProps(classifiedChanges.hotswappableProps, change.newValue.Properties?.Runtime, evaluateCfnTemplate);\n // nothing to do here\n if (lambdaCodeChange === undefined) {\n return ret;\n }\n const dependencies = await dependantResources(logicalId, functionName, evaluateCfnTemplate);\n ret.push({\n change: {\n cause: change,\n resources: [\n {\n logicalId,\n resourceType: change.newValue.Type,\n physicalName: functionName,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n ...dependencies,\n ],\n },\n hotswappable: true,\n service: 'lambda',\n apply: async (sdk) => {\n const lambda = sdk.lambda();\n const operations = [];\n if (lambdaCodeChange.code !== undefined || lambdaCodeChange.configurations !== undefined) {\n if (lambdaCodeChange.code !== undefined) {\n await lambda.updateFunctionCode({\n FunctionName: functionName,\n S3Bucket: lambdaCodeChange.code.s3Bucket,\n S3Key: lambdaCodeChange.code.s3Key,\n ImageUri: lambdaCodeChange.code.imageUri,\n ZipFile: lambdaCodeChange.code.functionCodeZip,\n S3ObjectVersion: lambdaCodeChange.code.s3ObjectVersion,\n });\n await waitForLambdasPropertiesUpdateToFinish(lambda, functionName);\n }\n if (lambdaCodeChange.configurations !== undefined) {\n const updateRequest = {\n FunctionName: functionName,\n };\n if (lambdaCodeChange.configurations.description !== undefined) {\n updateRequest.Description = lambdaCodeChange.configurations.description;\n }\n if (lambdaCodeChange.configurations.environment !== undefined) {\n updateRequest.Environment = lambdaCodeChange.configurations.environment;\n }\n await lambda.updateFunctionConfiguration(updateRequest);\n await waitForLambdasPropertiesUpdateToFinish(lambda, functionName);\n }\n // only if the code changed is there any point in publishing a new Version\n const versions = dependencies.filter((d) => d.resourceType === 'AWS::Lambda::Version');\n if (versions.length) {\n const publishVersionPromise = lambda.publishVersion({\n FunctionName: functionName,\n });\n const aliases = dependencies.filter((d) => d.resourceType === 'AWS::Lambda::Alias');\n if (aliases.length) {\n // we need to wait for the Version to finish publishing\n const versionUpdate = await publishVersionPromise;\n for (const alias of aliases) {\n operations.push(lambda.updateAlias({\n FunctionName: functionName,\n Name: alias.physicalName,\n FunctionVersion: versionUpdate.Version,\n }));\n }\n }\n else {\n operations.push(publishVersionPromise);\n }\n }\n }\n // run all of our updates in parallel\n // Limited set of updates per function\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(operations);\n },\n });\n }\n return ret;\n}\n/**\n * Determines which changes to this Alias are hotswappable or not\n */\nfunction classifyAliasChanges(change) {\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['FunctionVersion']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n // we only want to report not hotswappable changes to aliases\n // the actual alias update will happen if we change the function\n return ret;\n}\n/**\n * Evaluates the hotswappable properties of an AWS::Lambda::Function and\n * Returns a `LambdaFunctionChange` if the change is hotswappable.\n * Returns `undefined` if the change is not hotswappable.\n */\nasync function evaluateLambdaFunctionProps(hotswappablePropChanges, runtime, evaluateCfnTemplate) {\n /*\n * At first glance, we would want to initialize these using the \"previous\" values (change.oldValue),\n * in case only one of them changed, like the key, and the Bucket stayed the same.\n * However, that actually fails for old-style synthesis, which uses CFN Parameters!\n * Because the names of the Parameters depend on the hash of the Asset,\n * the Parameters used for the \"old\" values no longer exist in `assetParams` at this point,\n * which means we don't have the correct values available to evaluate the CFN expression with.\n * Fortunately, the diff will always include both the s3Bucket and s3Key parts of the Lambda's Code property,\n * even if only one of them was actually changed,\n * which means we don't need the \"old\" values at all, and we can safely initialize these with just `''`.\n */\n let code = undefined;\n let description = undefined;\n let environment = undefined;\n for (const updatedPropName in hotswappablePropChanges) {\n const updatedProp = hotswappablePropChanges[updatedPropName];\n switch (updatedPropName) {\n case 'Code':\n let s3Bucket, s3Key, s3ObjectVersion, imageUri, functionCodeZip;\n for (const newPropName in updatedProp.newValue) {\n switch (newPropName) {\n case 'S3Bucket':\n s3Bucket = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'S3Key':\n s3Key = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'S3ObjectVersion':\n s3ObjectVersion = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'ImageUri':\n imageUri = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'ZipFile':\n // We must create a zip package containing a file with the inline code\n const functionCode = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n const functionRuntime = await evaluateCfnTemplate.evaluateCfnExpression(runtime);\n if (!functionRuntime) {\n return undefined;\n }\n // file extension must be chosen depending on the runtime\n const codeFileExt = determineCodeFileExtFromRuntime(functionRuntime);\n functionCodeZip = await zipString(`index.${codeFileExt}`, functionCode);\n break;\n }\n }\n code = {\n s3Bucket,\n s3Key,\n s3ObjectVersion,\n imageUri,\n functionCodeZip,\n };\n break;\n case 'Description':\n description = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue);\n break;\n case 'Environment':\n environment = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue);\n break;\n default:\n // we will never get here, but just in case we do throw an error\n throw new toolkit_error_1.ToolkitError('UnexpectedHotswapProperty', 'while apply()ing, found a property that cannot be hotswapped. Please report this at github.com/aws/aws-cdk/issues/new/choose');\n }\n }\n const configurations = description || environment ? { description, environment } : undefined;\n return code || configurations ? { code, configurations } : undefined;\n}\n/**\n * Compress a string as a file, returning a promise for the zip buffer\n * https://github.com/archiverjs/node-archiver/issues/342\n */\nfunction zipString(fileName, rawString) {\n return new Promise((resolve, reject) => {\n const buffers = [];\n const converter = new stream_1.Writable();\n converter._write = (chunk, _, callback) => {\n buffers.push(chunk);\n process.nextTick(callback);\n };\n converter.on('finish', () => {\n resolve(Buffer.concat(buffers));\n });\n const archive = archiver('zip');\n archive.on('error', (err) => {\n reject(err);\n });\n archive.pipe(converter);\n archive.append(rawString, {\n name: fileName,\n date: new Date('1980-01-01T00:00:00.000Z'), // Add date to make resulting zip file deterministic\n });\n void archive.finalize();\n });\n}\n/**\n * After a Lambda Function is updated, it cannot be updated again until the\n * `State=Active` and the `LastUpdateStatus=Successful`.\n *\n * Depending on the configuration of the Lambda Function this could happen relatively quickly\n * or very slowly. For example, Zip based functions _not_ in a VPC can take ~1 second whereas VPC\n * or Container functions can take ~25 seconds (and 'idle' VPC functions can take minutes).\n */\nasync function waitForLambdasPropertiesUpdateToFinish(lambda, functionName) {\n const minDelaySeconds = 1;\n const maxDelaySeconds = 10;\n await lambda.waitUntilFunctionUpdated(minDelaySeconds, maxDelaySeconds, {\n FunctionName: functionName,\n });\n}\n/**\n * Get file extension from Lambda runtime string.\n * We use this extension to create a deployment package from Lambda inline code.\n */\nfunction determineCodeFileExtFromRuntime(runtime) {\n if (runtime.startsWith('node')) {\n return 'js';\n }\n if (runtime.startsWith('python')) {\n return 'py';\n }\n // Currently inline code only supports Node.js and Python, ignoring other runtimes.\n // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#aws-properties-lambda-function-code-properties\n throw new cloudformation_1.CfnEvaluationException(`runtime ${runtime} is unsupported, only node.js and python runtimes are currently supported.`);\n}\n/**\n * Finds all Versions that reference an AWS::Lambda::Function with logical ID `logicalId`\n * and Aliases that reference those Versions.\n */\nasync function versionsAndAliases(logicalId, evaluateCfnTemplate) {\n // find all Lambda Versions that reference this Function\n const versionsReferencingFunction = evaluateCfnTemplate\n .findReferencesTo(logicalId)\n .filter((r) => r.Type === 'AWS::Lambda::Version');\n // find all Lambda Aliases that reference the above Versions\n const aliasesReferencingVersions = (0, util_1.flatMap)(versionsReferencingFunction, v => evaluateCfnTemplate.findReferencesTo(v.LogicalId));\n return { versionsReferencingFunction, aliasesReferencingVersions };\n}\nasync function dependantResources(logicalId, functionName, evaluateCfnTemplate) {\n const candidates = await versionsAndAliases(logicalId, evaluateCfnTemplate);\n // Limited set of updates per function\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const aliases = await Promise.all(candidates.aliasesReferencingVersions.map(async (a) => {\n const name = await evaluateCfnTemplate.evaluateCfnExpression(a.Properties?.Name);\n return {\n logicalId: a.LogicalId,\n resourceType: a.Type,\n physicalName: name,\n description: `${a.Type} '${name}' for AWS::Lambda::Function '${functionName}'`,\n metadata: evaluateCfnTemplate.metadataFor(a.LogicalId),\n };\n }));\n const versions = candidates.versionsReferencingFunction.map((v) => ({\n logicalId: v.LogicalId,\n resourceType: v.Type,\n description: `${v.Type} for AWS::Lambda::Function '${functionName}'`,\n metadata: evaluateCfnTemplate.metadataFor(v.LogicalId),\n }));\n return [\n ...versions,\n ...aliases,\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxhbWJkYS1mdW5jdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSxnRkErSEM7QUE5SUQsbUNBQWtDO0FBSWxDLHFDQUEyQztBQUUzQywrREFBMkQ7QUFDM0QscUNBQXFDO0FBRXJDLHNEQUFnRztBQUVoRyx5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUU5QixLQUFLLFVBQVUsa0NBQWtDLENBQ3RELFNBQWlCLEVBQ2pCLE1BQXNCLEVBQ3RCLG1CQUFtRDtJQUVuRCwyREFBMkQ7SUFDM0Qsc0dBQXNHO0lBQ3RHLDBFQUEwRTtJQUMxRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLHNCQUFzQixFQUFFLENBQUM7UUFDcEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLGdFQUFnRTtJQUNoRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7UUFDbEQsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3JELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFvQixFQUFFLENBQUM7SUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLHdCQUFlLEVBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzFGLGlCQUFpQixDQUFDLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVELE1BQU0sWUFBWSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsNkJBQTZCLENBQzFFLFNBQVMs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U0FDdkQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNqRTtRQUNFLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztRQUN0QixZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDcEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksK0JBQStCLFlBQVksR0FBRztRQUNwRSxRQUFRLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7S0FDdkQsQ0FDRixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsR0FBRyxRQUFRO1FBQ1gsR0FBRyxPQUFPO0tBQ1gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5RGlmZmVyZW5jZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtbGFtYmRhJztcbmltcG9ydCB0eXBlIHsgSG90c3dhcENoYW5nZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGNsYXNzaWZ5Q2hhbmdlcyB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB0eXBlIHsgQWZmZWN0ZWRSZXNvdXJjZSwgUmVzb3VyY2VDaGFuZ2UgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9ob3Rzd2FwJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElMYW1iZGFDbGllbnQsIFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbiwgdHlwZSBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5cbi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBhcmNoaXZlciA9IHJlcXVpcmUoJ2FyY2hpdmVyJyk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0hvdHN3YXBwYWJsZUxhbWJkYUZ1bmN0aW9uQ2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgLy8gaWYgdGhlIGNoYW5nZSBpcyBmb3IgYSBMYW1iZGEgVmVyc2lvbiwgd2UganVzdCBpZ25vcmUgaXRcbiAgLy8gd2Ugd2lsbCBwdWJsaXNoIGEgbmV3IHZlcnNpb24gd2hlbiB3ZSBnZXQgdG8gaG90c3dhcHBpbmcgdGhlIGFjdHVhbCBGdW5jdGlvbiB0aGlzIFZlcnNpb24gcG9pbnRzIHRvXG4gIC8vIChWZXJzaW9ucyBjYW4ndCBiZSBjaGFuZ2VkIGluIENsb3VkRm9ybWF0aW9uIGFueXdheSwgdGhleSdyZSBpbW11dGFibGUpXG4gIGlmIChjaGFuZ2UubmV3VmFsdWUuVHlwZSA9PT0gJ0FXUzo6TGFtYmRhOjpWZXJzaW9uJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vIHdlIGhhbmRsZSBBbGlhc2VzIHNwZWNpYWxseSB0b29cbiAgLy8gdGhlIGFjdHVhbCBhbGlhcyB1cGRhdGUgd2lsbCBoYXBwZW4gaWYgd2UgY2hhbmdlIHRoZSBmdW5jdGlvblxuICBpZiAoY2hhbmdlLm5ld1ZhbHVlLlR5cGUgPT09ICdBV1M6OkxhbWJkYTo6QWxpYXMnKSB7XG4gICAgcmV0dXJuIGNsYXNzaWZ5QWxpYXNDaGFuZ2VzKGNoYW5nZSk7XG4gIH1cblxuICBpZiAoY2hhbmdlLm5ld1ZhbHVlLlR5cGUgIT09ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcmV0OiBIb3Rzd2FwQ2hhbmdlW10gPSBbXTtcbiAgY29uc3QgY2xhc3NpZmllZENoYW5nZXMgPSBjbGFzc2lmeUNoYW5nZXMoY2hhbmdlLCBbJ0NvZGUnLCAnRW52aXJvbm1lbnQnLCAnRGVzY3JpcHRpb24nXSk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuXG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXN0YWJsaXNoUmVzb3VyY2VQaHlzaWNhbE5hbWUoXG4gICAgbG9naWNhbElkLFxuICAgIGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5GdW5jdGlvbk5hbWUsXG4gICk7XG4gIGNvbnN0IG5hbWVzT2ZIb3Rzd2FwcGFibGVDaGFuZ2VzID0gT2JqZWN0LmtleXMoY2xhc3NpZmllZENoYW5nZXMuaG90c3dhcHBhYmxlUHJvcHMpO1xuICBpZiAoZnVuY3Rpb25OYW1lICYmIG5hbWVzT2ZIb3Rzd2FwcGFibGVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBsYW1iZGFDb2RlQ2hhbmdlID0gYXdhaXQgZXZhbHVhdGVMYW1iZGFGdW5jdGlvblByb3BzKFxuICAgICAgY2xhc3NpZmllZENoYW5nZXMuaG90c3dhcHBhYmxlUHJvcHMsXG4gICAgICBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uUnVudGltZSxcbiAgICAgIGV2YWx1YXRlQ2ZuVGVtcGxhdGUsXG4gICAgKTtcblxuICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZVxuICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gYXdhaXQgZGVwZW5kYW50UmVzb3VyY2VzKGxvZ2ljYWxJZCwgZnVuY3Rpb25OYW1lLCBldmFsdWF0ZUNmblRlbXBsYXRlKTtcblxuICAgIHJldC5wdXNoKHtcbiAgICAgIGNoYW5nZToge1xuICAgICAgICBjYXVzZTogY2hhbmdlLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6IGNoYW5nZS5uZXdWYWx1ZS5UeXBlLFxuICAgICAgICAgICAgcGh5c2ljYWxOYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uZGVwZW5kZW5jaWVzLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICAgIHNlcnZpY2U6ICdsYW1iZGEnLFxuICAgICAgYXBwbHk6IGFzeW5jIChzZGs6IFNESykgPT4ge1xuICAgICAgICBjb25zdCBsYW1iZGEgPSBzZGsubGFtYmRhKCk7XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbnM6IFByb21pc2U8YW55PltdID0gW107XG5cbiAgICAgICAgaWYgKGxhbWJkYUNvZGVDaGFuZ2UuY29kZSAhPT0gdW5kZWZpbmVkIHx8IGxhbWJkYUNvZGVDaGFuZ2UuY29uZmlndXJhdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlLmNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgbGFtYmRhLnVwZGF0ZUZ1bmN0aW9uQ29kZSh7XG4gICAgICAgICAgICAgIEZ1bmN0aW9uTmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgICBTM0J1Y2tldDogbGFtYmRhQ29kZUNoYW5nZS5jb2RlLnMzQnVja2V0LFxuICAgICAgICAgICAgICBTM0tleTogbGFtYmRhQ29kZUNoYW5nZS5jb2RlLnMzS2V5LFxuICAgICAgICAgICAgICBJbWFnZVVyaTogbGFtYmRhQ29kZUNoYW5nZS5jb2RlLmltYWdlVXJpLFxuICAgICAgICAgICAgICBaaXBGaWxlOiBsYW1iZGFDb2RlQ2hhbmdlLmNvZGUuZnVuY3Rpb25Db2RlWmlwLFxuICAgICAgICAgICAgICBTM09iamVjdFZlcnNpb246IGxhbWJkYUNvZGVDaGFuZ2UuY29kZS5zM09iamVjdFZlcnNpb24sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgd2FpdEZvckxhbWJkYXNQcm9wZXJ0aWVzVXBkYXRlVG9GaW5pc2gobGFtYmRhLCBmdW5jdGlvbk5hbWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlLmNvbmZpZ3VyYXRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVJlcXVlc3Q6IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCA9IHtcbiAgICAgICAgICAgICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGxhbWJkYUNvZGVDaGFuZ2UuY29uZmlndXJhdGlvbnMuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0LkRlc2NyaXB0aW9uID0gbGFtYmRhQ29kZUNoYW5nZS5jb25maWd1cmF0aW9ucy5kZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlLmNvbmZpZ3VyYXRpb25zLmVudmlyb25tZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdXBkYXRlUmVxdWVzdC5FbnZpcm9ubWVudCA9IGxhbWJkYUNvZGVDaGFuZ2UuY29uZmlndXJhdGlvbnMuZW52aXJvbm1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBsYW1iZGEudXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uKHVwZGF0ZVJlcXVlc3QpO1xuICAgICAgICAgICAgYXdhaXQgd2FpdEZvckxhbWJkYXNQcm9wZXJ0aWVzVXBkYXRlVG9GaW5pc2gobGFtYmRhLCBmdW5jdGlvbk5hbWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG9ubHkgaWYgdGhlIGNvZGUgY2hhbmdlZCBpcyB0aGVyZSBhbnkgcG9pbnQgaW4gcHVibGlzaGluZyBhIG5ldyBWZXJzaW9uXG4gICAgICAgICAgY29uc3QgdmVyc2lvbnMgPSBkZXBlbmRlbmNpZXMuZmlsdGVyKChkKSA9PiBkLnJlc291cmNlVHlwZSA9PT0gJ0FXUzo6TGFtYmRhOjpWZXJzaW9uJyk7XG4gICAgICAgICAgaWYgKHZlcnNpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgcHVibGlzaFZlcnNpb25Qcm9taXNlID0gbGFtYmRhLnB1Ymxpc2hWZXJzaW9uKHtcbiAgICAgICAgICAgICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgYWxpYXNlcyA9IGRlcGVuZGVuY2llcy5maWx0ZXIoKGQpID0+IGQucmVzb3VyY2VUeXBlID09PSAnQVdTOjpMYW1iZGE6OkFsaWFzJyk7XG4gICAgICAgICAgICBpZiAoYWxpYXNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgVmVyc2lvbiB0byBmaW5pc2ggcHVibGlzaGluZ1xuICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9uVXBkYXRlID0gYXdhaXQgcHVibGlzaFZlcnNpb25Qcm9taXNlO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIGFsaWFzZXMpIHtcbiAgICAgICAgICAgICAgICBvcGVyYXRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICBsYW1iZGEudXBkYXRlQWxpYXMoe1xuICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbk5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgTmFtZTogYWxpYXMucGh5c2ljYWxOYW1lLFxuICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblZlcnNpb246IHZlcnNpb25VcGRhdGUuVmVyc2lvbixcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbnMucHVzaChwdWJsaXNoVmVyc2lvblByb21pc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJ1biBhbGwgb2Ygb3VyIHVwZGF0ZXMgaW4gcGFyYWxsZWxcbiAgICAgICAgLy8gTGltaXRlZCBzZXQgb2YgdXBkYXRlcyBwZXIgZnVuY3Rpb25cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKG9wZXJhdGlvbnMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBjaGFuZ2VzIHRvIHRoaXMgQWxpYXMgYXJlIGhvdHN3YXBwYWJsZSBvciBub3RcbiAqL1xuZnVuY3Rpb24gY2xhc3NpZnlBbGlhc0NoYW5nZXMoY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSk6IEhvdHN3YXBDaGFuZ2VbXSB7XG4gIGNvbnN0IHJldDogSG90c3dhcENoYW5nZVtdID0gW107XG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgWydGdW5jdGlvblZlcnNpb24nXSk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuXG4gIC8vIHdlIG9ubHkgd2FudCB0byByZXBvcnQgbm90IGhvdHN3YXBwYWJsZSBjaGFuZ2VzIHRvIGFsaWFzZXNcbiAgLy8gdGhlIGFjdHVhbCBhbGlhcyB1cGRhdGUgd2lsbCBoYXBwZW4gaWYgd2UgY2hhbmdlIHRoZSBmdW5jdGlvblxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRXZhbHVhdGVzIHRoZSBob3Rzd2FwcGFibGUgcHJvcGVydGllcyBvZiBhbiBBV1M6OkxhbWJkYTo6RnVuY3Rpb24gYW5kXG4gKiBSZXR1cm5zIGEgYExhbWJkYUZ1bmN0aW9uQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIGhvdHN3YXBwYWJsZS5cbiAqIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGNoYW5nZSBpcyBub3QgaG90c3dhcHBhYmxlLlxuICovXG5hc3luYyBmdW5jdGlvbiBldmFsdWF0ZUxhbWJkYUZ1bmN0aW9uUHJvcHMoXG4gIGhvdHN3YXBwYWJsZVByb3BDaGFuZ2VzOiBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pj4sXG4gIHJ1bnRpbWU6IHN0cmluZyxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxMYW1iZGFGdW5jdGlvbkNoYW5nZSB8IHVuZGVmaW5lZD4ge1xuICAvKlxuICAgKiBBdCBmaXJzdCBnbGFuY2UsIHdlIHdvdWxkIHdhbnQgdG8gaW5pdGlhbGl6ZSB0aGVzZSB1c2luZyB0aGUgXCJwcmV2aW91c1wiIHZhbHVlcyAoY2hhbmdlLm9sZFZhbHVlKSxcbiAgICogaW4gY2FzZSBvbmx5IG9uZSBvZiB0aGVtIGNoYW5nZWQsIGxpa2UgdGhlIGtleSwgYW5kIHRoZSBCdWNrZXQgc3RheWVkIHRoZSBzYW1lLlxuICAgKiBIb3dldmVyLCB0aGF0IGFjdHVhbGx5IGZhaWxzIGZvciBvbGQtc3R5bGUgc3ludGhlc2lzLCB3aGljaCB1c2VzIENGTiBQYXJhbWV0ZXJzIVxuICAgKiBCZWNhdXNlIHRoZSBuYW1lcyBvZiB0aGUgUGFyYW1ldGVycyBkZXBlbmQgb24gdGhlIGhhc2ggb2YgdGhlIEFzc2V0LFxuICAgKiB0aGUgUGFyYW1ldGVycyB1c2VkIGZvciB0aGUgXCJvbGRcIiB2YWx1ZXMgbm8gbG9uZ2VyIGV4aXN0IGluIGBhc3NldFBhcmFtc2AgYXQgdGhpcyBwb2ludCxcbiAgICogd2hpY2ggbWVhbnMgd2UgZG9uJ3QgaGF2ZSB0aGUgY29ycmVjdCB2YWx1ZXMgYXZhaWxhYmxlIHRvIGV2YWx1YXRlIHRoZSBDRk4gZXhwcmVzc2lvbiB3aXRoLlxuICAgKiBGb3J0dW5hdGVseSwgdGhlIGRpZmYgd2lsbCBhbHdheXMgaW5jbHVkZSBib3RoIHRoZSBzM0J1Y2tldCBhbmQgczNLZXkgcGFydHMgb2YgdGhlIExhbWJkYSdzIENvZGUgcHJvcGVydHksXG4gICAqIGV2ZW4gaWYgb25seSBvbmUgb2YgdGhlbSB3YXMgYWN0dWFsbHkgY2hhbmdlZCxcbiAgICogd2hpY2ggbWVhbnMgd2UgZG9uJ3QgbmVlZCB0aGUgXCJvbGRcIiB2YWx1ZXMgYXQgYWxsLCBhbmQgd2UgY2FuIHNhZmVseSBpbml0aWFsaXplIHRoZXNlIHdpdGgganVzdCBgJydgLlxuICAgKi9cbiAgbGV0IGNvZGU6IExhbWJkYUZ1bmN0aW9uQ29kZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgbGV0IGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGxldCBlbnZpcm9ubWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IHVwZGF0ZWRQcm9wTmFtZSBpbiBob3Rzd2FwcGFibGVQcm9wQ2hhbmdlcykge1xuICAgIGNvbnN0IHVwZGF0ZWRQcm9wID0gaG90c3dhcHBhYmxlUHJvcENoYW5nZXNbdXBkYXRlZFByb3BOYW1lXTtcblxuICAgIHN3aXRjaCAodXBkYXRlZFByb3BOYW1lKSB7XG4gICAgICBjYXNlICdDb2RlJzpcbiAgICAgICAgbGV0IHMzQnVja2V0LCBzM0tleSwgczNPYmplY3RWZXJzaW9uLCBpbWFnZVVyaSwgZnVuY3Rpb25Db2RlWmlwO1xuXG4gICAgICAgIGZvciAoY29uc3QgbmV3UHJvcE5hbWUgaW4gdXBkYXRlZFByb3AubmV3VmFsdWUpIHtcbiAgICAgICAgICBzd2l0Y2ggKG5ld1Byb3BOYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdTM0J1Y2tldCc6XG4gICAgICAgICAgICAgIHMzQnVja2V0ID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWVbbmV3UHJvcE5hbWVdKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTM0tleSc6XG4gICAgICAgICAgICAgIHMzS2V5ID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWVbbmV3UHJvcE5hbWVdKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTM09iamVjdFZlcnNpb24nOlxuICAgICAgICAgICAgICBzM09iamVjdFZlcnNpb24gPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZVtuZXdQcm9wTmFtZV0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0ltYWdlVXJpJzpcbiAgICAgICAgICAgICAgaW1hZ2VVcmkgPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZVtuZXdQcm9wTmFtZV0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1ppcEZpbGUnOlxuICAgICAgICAgICAgICAvLyBXZSBtdXN0IGNyZWF0ZSBhIHppcCBwYWNrYWdlIGNvbnRhaW5pbmcgYSBmaWxlIHdpdGggdGhlIGlubGluZSBjb2RlXG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uQ29kZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHVwZGF0ZWRQcm9wLm5ld1ZhbHVlW25ld1Byb3BOYW1lXSk7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uUnVudGltZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHJ1bnRpbWUpO1xuICAgICAgICAgICAgICBpZiAoIWZ1bmN0aW9uUnVudGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gZmlsZSBleHRlbnNpb24gbXVzdCBiZSBjaG9zZW4gZGVwZW5kaW5nIG9uIHRoZSBydW50aW1lXG4gICAgICAgICAgICAgIGNvbnN0IGNvZGVGaWxlRXh0ID0gZGV0ZXJtaW5lQ29kZUZpbGVFeHRGcm9tUnVudGltZShmdW5jdGlvblJ1bnRpbWUpO1xuICAgICAgICAgICAgICBmdW5jdGlvbkNvZGVaaXAgPSBhd2FpdCB6aXBTdHJpbmcoYGluZGV4LiR7Y29kZUZpbGVFeHR9YCwgZnVuY3Rpb25Db2RlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvZGUgPSB7XG4gICAgICAgICAgczNCdWNrZXQsXG4gICAgICAgICAgczNLZXksXG4gICAgICAgICAgczNPYmplY3RWZXJzaW9uLFxuICAgICAgICAgIGltYWdlVXJpLFxuICAgICAgICAgIGZ1bmN0aW9uQ29kZVppcCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEZXNjcmlwdGlvbic6XG4gICAgICAgIGRlc2NyaXB0aW9uID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Vudmlyb25tZW50JzpcbiAgICAgICAgZW52aXJvbm1lbnQgPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gd2Ugd2lsbCBuZXZlciBnZXQgaGVyZSwgYnV0IGp1c3QgaW4gY2FzZSB3ZSBkbyB0aHJvdyBhbiBlcnJvclxuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdVbmV4cGVjdGVkSG90c3dhcFByb3BlcnR5JyxcbiAgICAgICAgICAnd2hpbGUgYXBwbHkoKWluZywgZm91bmQgYSBwcm9wZXJ0eSB0aGF0IGNhbm5vdCBiZSBob3Rzd2FwcGVkLiBQbGVhc2UgcmVwb3J0IHRoaXMgYXQgZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvbmV3L2Nob29zZScsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29uZmlndXJhdGlvbnMgPSBkZXNjcmlwdGlvbiB8fCBlbnZpcm9ubWVudCA/IHsgZGVzY3JpcHRpb24sIGVudmlyb25tZW50IH0gOiB1bmRlZmluZWQ7XG4gIHJldHVybiBjb2RlIHx8IGNvbmZpZ3VyYXRpb25zID8geyBjb2RlLCBjb25maWd1cmF0aW9ucyB9IDogdW5kZWZpbmVkO1xufVxuXG5pbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25Db2RlIHtcbiAgcmVhZG9ubHkgczNCdWNrZXQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHMzS2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBzM09iamVjdFZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlVXJpPzogc3RyaW5nO1xuICByZWFkb25seSBmdW5jdGlvbkNvZGVaaXA/OiBCdWZmZXI7XG59XG5cbmludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25zIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uQ2hhbmdlIHtcbiAgcmVhZG9ubHkgY29kZT86IExhbWJkYUZ1bmN0aW9uQ29kZTtcbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbnM/OiBMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25zO1xufVxuXG4vKipcbiAqIENvbXByZXNzIGEgc3RyaW5nIGFzIGEgZmlsZSwgcmV0dXJuaW5nIGEgcHJvbWlzZSBmb3IgdGhlIHppcCBidWZmZXJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hcmNoaXZlcmpzL25vZGUtYXJjaGl2ZXIvaXNzdWVzLzM0MlxuICovXG5mdW5jdGlvbiB6aXBTdHJpbmcoZmlsZU5hbWU6IHN0cmluZywgcmF3U3RyaW5nOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGJ1ZmZlcnM6IEJ1ZmZlcltdID0gW107XG5cbiAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgV3JpdGFibGUoKTtcblxuICAgIGNvbnZlcnRlci5fd3JpdGUgPSAoY2h1bms6IEJ1ZmZlciwgXzogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgYnVmZmVycy5wdXNoKGNodW5rKTtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBjb252ZXJ0ZXIub24oJ2ZpbmlzaCcsICgpID0+IHtcbiAgICAgIHJlc29sdmUoQnVmZmVyLmNvbmNhdChidWZmZXJzKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBhcmNoaXZlID0gYXJjaGl2ZXIoJ3ppcCcpO1xuXG4gICAgYXJjaGl2ZS5vbignZXJyb3InLCAoZXJyOiBhbnkpID0+IHtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH0pO1xuXG4gICAgYXJjaGl2ZS5waXBlKGNvbnZlcnRlcik7XG5cbiAgICBhcmNoaXZlLmFwcGVuZChyYXdTdHJpbmcsIHtcbiAgICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgICAgZGF0ZTogbmV3IERhdGUoJzE5ODAtMDEtMDFUMDA6MDA6MDAuMDAwWicpLCAvLyBBZGQgZGF0ZSB0byBtYWtlIHJlc3VsdGluZyB6aXAgZmlsZSBkZXRlcm1pbmlzdGljXG4gICAgfSk7XG5cbiAgICB2b2lkIGFyY2hpdmUuZmluYWxpemUoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQWZ0ZXIgYSBMYW1iZGEgRnVuY3Rpb24gaXMgdXBkYXRlZCwgaXQgY2Fubm90IGJlIHVwZGF0ZWQgYWdhaW4gdW50aWwgdGhlXG4gKiBgU3RhdGU9QWN0aXZlYCBhbmQgdGhlIGBMYXN0VXBkYXRlU3RhdHVzPVN1Y2Nlc3NmdWxgLlxuICpcbiAqIERlcGVuZGluZyBvbiB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgTGFtYmRhIEZ1bmN0aW9uIHRoaXMgY291bGQgaGFwcGVuIHJlbGF0aXZlbHkgcXVpY2tseVxuICogb3IgdmVyeSBzbG93bHkuIEZvciBleGFtcGxlLCBaaXAgYmFzZWQgZnVuY3Rpb25zIF9ub3RfIGluIGEgVlBDIGNhbiB0YWtlIH4xIHNlY29uZCB3aGVyZWFzIFZQQ1xuICogb3IgQ29udGFpbmVyIGZ1bmN0aW9ucyBjYW4gdGFrZSB+MjUgc2Vjb25kcyAoYW5kICdpZGxlJyBWUEMgZnVuY3Rpb25zIGNhbiB0YWtlIG1pbnV0ZXMpLlxuICovXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yTGFtYmRhc1Byb3BlcnRpZXNVcGRhdGVUb0ZpbmlzaChcbiAgbGFtYmRhOiBJTGFtYmRhQ2xpZW50LFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtaW5EZWxheVNlY29uZHMgPSAxO1xuICBjb25zdCBtYXhEZWxheVNlY29uZHMgPSAxMDtcblxuICBhd2FpdCBsYW1iZGEud2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkKG1pbkRlbGF5U2Vjb25kcywgbWF4RGVsYXlTZWNvbmRzLCB7XG4gICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBmaWxlIGV4dGVuc2lvbiBmcm9tIExhbWJkYSBydW50aW1lIHN0cmluZy5cbiAqIFdlIHVzZSB0aGlzIGV4dGVuc2lvbiB0byBjcmVhdGUgYSBkZXBsb3ltZW50IHBhY2thZ2UgZnJvbSBMYW1iZGEgaW5saW5lIGNvZGUuXG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZUNvZGVGaWxlRXh0RnJvbVJ1bnRpbWUocnVudGltZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHJ1bnRpbWUuc3RhcnRzV2l0aCgnbm9kZScpKSB7XG4gICAgcmV0dXJuICdqcyc7XG4gIH1cbiAgaWYgKHJ1bnRpbWUuc3RhcnRzV2l0aCgncHl0aG9uJykpIHtcbiAgICByZXR1cm4gJ3B5JztcbiAgfVxuICAvLyBDdXJyZW50bHkgaW5saW5lIGNvZGUgb25seSBzdXBwb3J0cyBOb2RlLmpzIGFuZCBQeXRob24sIGlnbm9yaW5nIG90aGVyIHJ1bnRpbWVzLlxuICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1sYW1iZGEtZnVuY3Rpb24tY29kZS5odG1sI2F3cy1wcm9wZXJ0aWVzLWxhbWJkYS1mdW5jdGlvbi1jb2RlLXByb3BlcnRpZXNcbiAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oXG4gICAgYHJ1bnRpbWUgJHtydW50aW1lfSBpcyB1bnN1cHBvcnRlZCwgb25seSBub2RlLmpzIGFuZCBweXRob24gcnVudGltZXMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuYCxcbiAgKTtcbn1cblxuLyoqXG4gKiBGaW5kcyBhbGwgVmVyc2lvbnMgdGhhdCByZWZlcmVuY2UgYW4gQVdTOjpMYW1iZGE6OkZ1bmN0aW9uIHdpdGggbG9naWNhbCBJRCBgbG9naWNhbElkYFxuICogYW5kIEFsaWFzZXMgdGhhdCByZWZlcmVuY2UgdGhvc2UgVmVyc2lvbnMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZlcnNpb25zQW5kQWxpYXNlcyhsb2dpY2FsSWQ6IHN0cmluZywgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKSB7XG4gIC8vIGZpbmQgYWxsIExhbWJkYSBWZXJzaW9ucyB0aGF0IHJlZmVyZW5jZSB0aGlzIEZ1bmN0aW9uXG4gIGNvbnN0IHZlcnNpb25zUmVmZXJlbmNpbmdGdW5jdGlvbiA9IGV2YWx1YXRlQ2ZuVGVtcGxhdGVcbiAgICAuZmluZFJlZmVyZW5jZXNUbyhsb2dpY2FsSWQpXG4gICAgLmZpbHRlcigocikgPT4gci5UeXBlID09PSAnQVdTOjpMYW1iZGE6OlZlcnNpb24nKTtcbiAgLy8gZmluZCBhbGwgTGFtYmRhIEFsaWFzZXMgdGhhdCByZWZlcmVuY2UgdGhlIGFib3ZlIFZlcnNpb25zXG4gIGNvbnN0IGFsaWFzZXNSZWZlcmVuY2luZ1ZlcnNpb25zID0gZmxhdE1hcCh2ZXJzaW9uc1JlZmVyZW5jaW5nRnVuY3Rpb24sIHYgPT5cbiAgICBldmFsdWF0ZUNmblRlbXBsYXRlLmZpbmRSZWZlcmVuY2VzVG8odi5Mb2dpY2FsSWQpKTtcblxuICByZXR1cm4geyB2ZXJzaW9uc1JlZmVyZW5jaW5nRnVuY3Rpb24sIGFsaWFzZXNSZWZlcmVuY2luZ1ZlcnNpb25zIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRlcGVuZGFudFJlc291cmNlcyhcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBQcm9taXNlPEFycmF5PEFmZmVjdGVkUmVzb3VyY2U+PiB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBhd2FpdCB2ZXJzaW9uc0FuZEFsaWFzZXMobG9naWNhbElkLCBldmFsdWF0ZUNmblRlbXBsYXRlKTtcblxuICAvLyBMaW1pdGVkIHNldCBvZiB1cGRhdGVzIHBlciBmdW5jdGlvblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgY29uc3QgYWxpYXNlcyA9IGF3YWl0IFByb21pc2UuYWxsKGNhbmRpZGF0ZXMuYWxpYXNlc1JlZmVyZW5jaW5nVmVyc2lvbnMubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKGEuUHJvcGVydGllcz8uTmFtZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2ljYWxJZDogYS5Mb2dpY2FsSWQsXG4gICAgICByZXNvdXJjZVR5cGU6IGEuVHlwZSxcbiAgICAgIHBoeXNpY2FsTmFtZTogbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgJHthLlR5cGV9ICcke25hbWV9JyBmb3IgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uICcke2Z1bmN0aW9uTmFtZX0nYCxcbiAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGEuTG9naWNhbElkKSxcbiAgICB9O1xuICB9KSk7XG5cbiAgY29uc3QgdmVyc2lvbnMgPSBjYW5kaWRhdGVzLnZlcnNpb25zUmVmZXJlbmNpbmdGdW5jdGlvbi5tYXAoKHYpID0+IChcbiAgICB7XG4gICAgICBsb2dpY2FsSWQ6IHYuTG9naWNhbElkLFxuICAgICAgcmVzb3VyY2VUeXBlOiB2LlR5cGUsXG4gICAgICBkZXNjcmlwdGlvbjogYCR7di5UeXBlfSBmb3IgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uICcke2Z1bmN0aW9uTmFtZX0nYCxcbiAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKHYuTG9naWNhbElkKSxcbiAgICB9XG4gICkpO1xuXG4gIHJldHVybiBbXG4gICAgLi4udmVyc2lvbnMsXG4gICAgLi4uYWxpYXNlcyxcbiAgXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableS3BucketDeploymentChange = isHotswappableS3BucketDeploymentChange;\nexports.skipChangeForS3DeployCustomResourcePolicy = skipChangeForS3DeployCustomResourcePolicy;\n/**\n * This means that the value is required to exist by CloudFormation's Custom Resource API (or our S3 Bucket Deployment Lambda's API)\n * but the actual value specified is irrelevant\n */\nconst REQUIRED_BY_CFN = 'required-to-be-present-by-cfn';\nconst CDK_BUCKET_DEPLOYMENT_CFN_TYPE = 'Custom::CDKBucketDeployment';\nasync function isHotswappableS3BucketDeploymentChange(logicalId, change, evaluateCfnTemplate) {\n // In old-style synthesis, the policy used by the lambda to copy assets Ref's the assets directly,\n // meaning that the changes made to the Policy are artifacts that can be safely ignored\n const ret = [];\n if (change.newValue.Type !== CDK_BUCKET_DEPLOYMENT_CFN_TYPE) {\n return [];\n }\n // no classification to be done here; all the properties of this custom resource thing are hotswappable\n const customResourceProperties = await evaluateCfnTemplate.evaluateCfnExpression({\n ...change.newValue.Properties,\n ServiceToken: undefined,\n });\n // note that this gives the ARN of the lambda, not the name. This is fine though, the invoke() sdk call will take either\n const functionName = await evaluateCfnTemplate.evaluateCfnExpression(change.newValue.Properties?.ServiceToken);\n if (!functionName) {\n return ret;\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId,\n physicalName: customResourceProperties.DestinationBucketName,\n resourceType: CDK_BUCKET_DEPLOYMENT_CFN_TYPE,\n description: `Contents of AWS::S3::Bucket '${customResourceProperties.DestinationBucketName}'`,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'custom-s3-deployment',\n apply: async (sdk) => {\n await sdk.lambda().invokeCommand({\n FunctionName: functionName,\n // Lambda refuses to take a direct JSON object and requires it to be stringify()'d\n Payload: JSON.stringify({\n RequestType: 'Update',\n ResponseURL: REQUIRED_BY_CFN,\n PhysicalResourceId: REQUIRED_BY_CFN,\n StackId: REQUIRED_BY_CFN,\n RequestId: REQUIRED_BY_CFN,\n LogicalResourceId: REQUIRED_BY_CFN,\n ResourceProperties: stringifyObject(customResourceProperties), // JSON.stringify() doesn't turn the actual objects to strings, but the lambda expects strings\n }),\n });\n },\n });\n return ret;\n}\nasync function skipChangeForS3DeployCustomResourcePolicy(iamPolicyLogicalId, change, evaluateCfnTemplate) {\n if (change.newValue.Type !== 'AWS::IAM::Policy') {\n return false;\n }\n const roles = change.newValue.Properties?.Roles;\n // If no roles are referenced, the policy is definitely not used for a S3Deployment\n if (!roles || !roles.length) {\n return false;\n }\n // Check if every role this policy is referenced by is only used for a S3Deployment\n for (const role of roles) {\n const roleArn = await evaluateCfnTemplate.evaluateCfnExpression(role);\n const roleLogicalId = await evaluateCfnTemplate.findLogicalIdForPhysicalName(roleArn);\n // We must assume this role is used for something else, because we can't check it\n if (!roleLogicalId) {\n return false;\n }\n // Find all interesting reference to the role\n const roleRefs = evaluateCfnTemplate\n .findReferencesTo(roleLogicalId)\n // we are not interested in the reference from the original policy - it always exists\n .filter((roleRef) => !(roleRef.Type == 'AWS::IAM::Policy' && roleRef.LogicalId === iamPolicyLogicalId));\n // Check if the role is only used for S3Deployment\n // We know this is the case, if S3Deployment -> Lambda -> Role is satisfied for every reference\n // And we have at least one reference.\n const isRoleOnlyForS3Deployment = roleRefs.length >= 1 &&\n roleRefs.every((roleRef) => {\n if (roleRef.Type === 'AWS::Lambda::Function') {\n const lambdaRefs = evaluateCfnTemplate.findReferencesTo(roleRef.LogicalId);\n // Every reference must be to the custom resource and at least one reference must be present\n return (lambdaRefs.length >= 1 && lambdaRefs.every((lambdaRef) => lambdaRef.Type === 'Custom::CDKBucketDeployment'));\n }\n return false;\n });\n // We have determined this role is used for something else, so we can't skip the change\n if (!isRoleOnlyForS3Deployment) {\n return false;\n }\n }\n // We have checked that any use of this policy is only for S3Deployment and we can safely skip it\n return true;\n}\nfunction stringifyObject(obj) {\n if (obj == null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(stringifyObject);\n }\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n const ret = {};\n for (const [k, v] of Object.entries(obj)) {\n ret[k] = stringifyObject(v);\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWRlcGxveW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiczMtYnVja2V0LWRlcGxveW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsd0ZBd0RDO0FBRUQsOEZBdURDO0FBekhEOzs7R0FHRztBQUNILE1BQU0sZUFBZSxHQUFHLCtCQUErQixDQUFDO0FBRXhELE1BQU0sOEJBQThCLEdBQUcsNkJBQTZCLENBQUM7QUFFOUQsS0FBSyxVQUFVLHNDQUFzQyxDQUMxRCxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQ7SUFFbkQsa0dBQWtHO0lBQ2xHLHVGQUF1RjtJQUN2RixNQUFNLEdBQUcsR0FBb0IsRUFBRSxDQUFDO0lBRWhDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssOEJBQThCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCx1R0FBdUc7SUFDdkcsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDO1FBQy9FLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVO1FBQzdCLFlBQVksRUFBRSxTQUFTO0tBQ3hCLENBQUMsQ0FBQztJQUVILHdIQUF3SDtJQUN4SCxNQUFNLFlBQVksR0FBRyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9HLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsQ0FBQztvQkFDVixTQUFTO29CQUNULFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxxQkFBcUI7b0JBQzVELFlBQVksRUFBRSw4QkFBOEI7b0JBQzVD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Q0FBQyxDQUFDO1FBRUwsdUZBQXVGO1FBQ3ZGLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxpR0FBaUc7SUFDakcsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsR0FBUTtJQUMvQixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUF5QixFQUFFLENBQUM7SUFDckMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhvdHN3YXBDaGFuZ2UgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogVGhpcyBtZWFucyB0aGF0IHRoZSB2YWx1ZSBpcyByZXF1aXJlZCB0byBleGlzdCBieSBDbG91ZEZvcm1hdGlvbidzIEN1c3RvbSBSZXNvdXJjZSBBUEkgKG9yIG91ciBTMyBCdWNrZXQgRGVwbG95bWVudCBMYW1iZGEncyBBUEkpXG4gKiBidXQgdGhlIGFjdHVhbCB2YWx1ZSBzcGVjaWZpZWQgaXMgaXJyZWxldmFudFxuICovXG5jb25zdCBSRVFVSVJFRF9CWV9DRk4gPSAncmVxdWlyZWQtdG8tYmUtcHJlc2VudC1ieS1jZm4nO1xuXG5jb25zdCBDREtfQlVDS0VUX0RFUExPWU1FTlRfQ0ZOX1RZUEUgPSAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzSG90c3dhcHBhYmxlUzNCdWNrZXREZXBsb3ltZW50Q2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgLy8gSW4gb2xkLXN0eWxlIHN5bnRoZXNpcywgdGhlIHBvbGljeSB1c2VkIGJ5IHRoZSBsYW1iZGEgdG8gY29weSBhc3NldHMgUmVmJ3MgdGhlIGFzc2V0cyBkaXJlY3RseSxcbiAgLy8gbWVhbmluZyB0aGF0IHRoZSBjaGFuZ2VzIG1hZGUgdG8gdGhlIFBvbGljeSBhcmUgYXJ0aWZhY3RzIHRoYXQgY2FuIGJlIHNhZmVseSBpZ25vcmVkXG4gIGNvbnN0IHJldDogSG90c3dhcENoYW5nZVtdID0gW107XG5cbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSBDREtfQlVDS0VUX0RFUExPWU1FTlRfQ0ZOX1RZUEUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyBubyBjbGFzc2lmaWNhdGlvbiB0byBiZSBkb25lIGhlcmU7IGFsbCB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGN1c3RvbSByZXNvdXJjZSB0aGluZyBhcmUgaG90c3dhcHBhYmxlXG4gIGNvbnN0IGN1c3RvbVJlc291cmNlUHJvcGVydGllcyA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHtcbiAgICAuLi5jaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcyxcbiAgICBTZXJ2aWNlVG9rZW46IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgLy8gbm90ZSB0aGF0IHRoaXMgZ2l2ZXMgdGhlIEFSTiBvZiB0aGUgbGFtYmRhLCBub3QgdGhlIG5hbWUuIFRoaXMgaXMgZmluZSB0aG91Z2gsIHRoZSBpbnZva2UoKSBzZGsgY2FsbCB3aWxsIHRha2UgZWl0aGVyXG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5TZXJ2aWNlVG9rZW4pO1xuICBpZiAoIWZ1bmN0aW9uTmFtZSkge1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXQucHVzaCh7XG4gICAgY2hhbmdlOiB7XG4gICAgICBjYXVzZTogY2hhbmdlLFxuICAgICAgcmVzb3VyY2VzOiBbe1xuICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgIHBoeXNpY2FsTmFtZTogY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzLkRlc3RpbmF0aW9uQnVja2V0TmFtZSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBDREtfQlVDS0VUX0RFUExPWU1FTlRfQ0ZOX1RZUEUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQ29udGVudHMgb2YgQVdTOjpTMzo6QnVja2V0ICcke2N1c3RvbVJlc291cmNlUHJvcGVydGllcy5EZXN0aW5hdGlvbkJ1Y2tldE5hbWV9J2AsXG4gICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICB9XSxcbiAgICB9LFxuICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICBzZXJ2aWNlOiAnY3VzdG9tLXMzLWRlcGxveW1lbnQnLFxuICAgIGFwcGx5OiBhc3luYyAoc2RrOiBTREspID0+IHtcbiAgICAgIGF3YWl0IHNkay5sYW1iZGEoKS5pbnZva2VDb21tYW5kKHtcbiAgICAgICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgIC8vIExhbWJkYSByZWZ1c2VzIHRvIHRha2UgYSBkaXJlY3QgSlNPTiBvYmplY3QgYW5kIHJlcXVpcmVzIGl0IHRvIGJlIHN0cmluZ2lmeSgpJ2RcbiAgICAgICAgUGF5bG9hZDogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIFJlcXVlc3RUeXBlOiAnVXBkYXRlJyxcbiAgICAgICAgICBSZXNwb25zZVVSTDogUkVRVUlSRURfQllfQ0ZOLFxuICAgICAgICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogUkVRVUlSRURfQllfQ0ZOLFxuICAgICAgICAgIFN0YWNrSWQ6IFJFUVVJUkVEX0JZX0NGTixcbiAgICAgICAgICBSZXF1ZXN0SWQ6IFJFUVVJUkVEX0JZX0NGTixcbiAgICAgICAgICBMb2dpY2FsUmVzb3VyY2VJZDogUkVRVUlSRURfQllfQ0ZOLFxuICAgICAgICAgIFJlc291cmNlUHJvcGVydGllczogc3RyaW5naWZ5T2JqZWN0KGN1c3RvbVJlc291cmNlUHJvcGVydGllcyksIC8vIEpTT04uc3RyaW5naWZ5KCkgZG9lc24ndCB0dXJuIHRoZSBhY3R1YWwgb2JqZWN0cyB0byBzdHJpbmdzLCBidXQgdGhlIGxhbWJkYSBleHBlY3RzIHN0cmluZ3NcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2tpcENoYW5nZUZvclMzRGVwbG95Q3VzdG9tUmVzb3VyY2VQb2xpY3koXG4gIGlhbVBvbGljeUxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSAnQVdTOjpJQU06OlBvbGljeScpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgcm9sZXM6IHN0cmluZ1tdID0gY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJvbGVzO1xuXG4gIC8vIElmIG5vIHJvbGVzIGFyZSByZWZlcmVuY2VkLCB0aGUgcG9saWN5IGlzIGRlZmluaXRlbHkgbm90IHVzZWQgZm9yIGEgUzNEZXBsb3ltZW50XG4gIGlmICghcm9sZXMgfHwgIXJvbGVzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIGV2ZXJ5IHJvbGUgdGhpcyBwb2xpY3kgaXMgcmVmZXJlbmNlZCBieSBpcyBvbmx5IHVzZWQgZm9yIGEgUzNEZXBsb3ltZW50XG4gIGZvciAoY29uc3Qgcm9sZSBvZiByb2xlcykge1xuICAgIGNvbnN0IHJvbGVBcm4gPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihyb2xlKTtcbiAgICBjb25zdCByb2xlTG9naWNhbElkID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5maW5kTG9naWNhbElkRm9yUGh5c2ljYWxOYW1lKHJvbGVBcm4pO1xuXG4gICAgLy8gV2UgbXVzdCBhc3N1bWUgdGhpcyByb2xlIGlzIHVzZWQgZm9yIHNvbWV0aGluZyBlbHNlLCBiZWNhdXNlIHdlIGNhbid0IGNoZWNrIGl0XG4gICAgaWYgKCFyb2xlTG9naWNhbElkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gRmluZCBhbGwgaW50ZXJlc3RpbmcgcmVmZXJlbmNlIHRvIHRoZSByb2xlXG4gICAgY29uc3Qgcm9sZVJlZnMgPSBldmFsdWF0ZUNmblRlbXBsYXRlXG4gICAgICAuZmluZFJlZmVyZW5jZXNUbyhyb2xlTG9naWNhbElkKVxuICAgICAgLy8gd2UgYXJlIG5vdCBpbnRlcmVzdGVkIGluIHRoZSByZWZlcmVuY2UgZnJvbSB0aGUgb3JpZ2luYWwgcG9saWN5IC0gaXQgYWx3YXlzIGV4aXN0c1xuICAgICAgLmZpbHRlcigocm9sZVJlZikgPT4gIShyb2xlUmVmLlR5cGUgPT0gJ0FXUzo6SUFNOjpQb2xpY3knICYmIHJvbGVSZWYuTG9naWNhbElkID09PSBpYW1Qb2xpY3lMb2dpY2FsSWQpKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSByb2xlIGlzIG9ubHkgdXNlZCBmb3IgUzNEZXBsb3ltZW50XG4gICAgLy8gV2Uga25vdyB0aGlzIGlzIHRoZSBjYXNlLCBpZiBTM0RlcGxveW1lbnQgLT4gTGFtYmRhIC0+IFJvbGUgaXMgc2F0aXNmaWVkIGZvciBldmVyeSByZWZlcmVuY2VcbiAgICAvLyBBbmQgd2UgaGF2ZSBhdCBsZWFzdCBvbmUgcmVmZXJlbmNlLlxuICAgIGNvbnN0IGlzUm9sZU9ubHlGb3JTM0RlcGxveW1lbnQgPVxuICAgICAgcm9sZVJlZnMubGVuZ3RoID49IDEgJiZcbiAgICAgIHJvbGVSZWZzLmV2ZXJ5KChyb2xlUmVmKSA9PiB7XG4gICAgICAgIGlmIChyb2xlUmVmLlR5cGUgPT09ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgbGFtYmRhUmVmcyA9IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZmluZFJlZmVyZW5jZXNUbyhyb2xlUmVmLkxvZ2ljYWxJZCk7XG4gICAgICAgICAgLy8gRXZlcnkgcmVmZXJlbmNlIG11c3QgYmUgdG8gdGhlIGN1c3RvbSByZXNvdXJjZSBhbmQgYXQgbGVhc3Qgb25lIHJlZmVyZW5jZSBtdXN0IGJlIHByZXNlbnRcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbGFtYmRhUmVmcy5sZW5ndGggPj0gMSAmJiBsYW1iZGFSZWZzLmV2ZXJ5KChsYW1iZGFSZWYpID0+IGxhbWJkYVJlZi5UeXBlID09PSAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgLy8gV2UgaGF2ZSBkZXRlcm1pbmVkIHRoaXMgcm9sZSBpcyB1c2VkIGZvciBzb21ldGhpbmcgZWxzZSwgc28gd2UgY2FuJ3Qgc2tpcCB0aGUgY2hhbmdlXG4gICAgaWYgKCFpc1JvbGVPbmx5Rm9yUzNEZXBsb3ltZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgaGF2ZSBjaGVja2VkIHRoYXQgYW55IHVzZSBvZiB0aGlzIHBvbGljeSBpcyBvbmx5IGZvciBTM0RlcGxveW1lbnQgYW5kIHdlIGNhbiBzYWZlbHkgc2tpcCBpdFxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5T2JqZWN0KG9iajogYW55KTogYW55IHtcbiAgaWYgKG9iaiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoc3RyaW5naWZ5T2JqZWN0KTtcbiAgfVxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gb2JqLnRvU3RyaW5nKCk7XG4gIH1cblxuICBjb25zdCByZXQ6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICByZXRba10gPSBzdHJpbmdpZnlPYmplY3Qodik7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./io-host\"), exports);\n__exportStar(require(\"./io-message\"), exports);\n__exportStar(require(\"./toolkit-action\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLCtDQUE2QjtBQUM3QixtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lvLWhvc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pby1tZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGtpdC1hY3Rpb24nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8taG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW9NZXNzYWdlLCBJb1JlcXVlc3QgfSBmcm9tICcuL2lvLW1lc3NhZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJb0hvc3Qge1xuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlLlxuICAgKiBUaGUgY2FsbGVyIHdhaXRzIHVudGlsIHRoZSBub3RpZmljYXRpb24gY29tcGxldGVzLlxuICAgKi9cbiAgbm90aWZ5KG1zZzogSW9NZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlIHRoYXQgcmVxdWlyZXMgYSByZXNwb25zZS5cbiAgICpcbiAgICogSWYgdGhlIGhvc3QgZG9lcyBub3QgcmV0dXJuIGEgcmVzcG9uc2UgdGhlIHN1Z2dlc3RlZFxuICAgKiBkZWZhdWx0IHJlc3BvbnNlIGZyb20gdGhlIGlucHV0IG1lc3NhZ2Ugd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVxdWVzdFJlc3BvbnNlPFQ+KG1zZzogSW9SZXF1ZXN0PHVua25vd24sIFQ+KTogUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uQXdhcmVJb0hvc3Qge1xuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlLlxuICAgKiBUaGUgY2FsbGVyIHdhaXRzIHVudGlsIHRoZSBub3RpZmljYXRpb24gY29tcGxldGVzLlxuICAgKi9cbiAgbm90aWZ5KG1zZzogT21pdDxJb01lc3NhZ2U8dW5rbm93bj4sICdhY3Rpb24nPik6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHRoZSBob3N0IG9mIGEgbWVzc2FnZSB0aGF0IHJlcXVpcmVzIGEgcmVzcG9uc2UuXG4gICAqXG4gICAqIElmIHRoZSBob3N0IGRvZXMgbm90IHJldHVybiBhIHJlc3BvbnNlIHRoZSBzdWdnZXN0ZWRcbiAgICogZGVmYXVsdCByZXNwb25zZSBmcm9tIHRoZSBpbnB1dCBtZXNzYWdlIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlcXVlc3RSZXNwb25zZTxUPihtc2c6IE9taXQ8SW9SZXF1ZXN0PHVua25vd24sIFQ+LCAnYWN0aW9uJz4pOiBQcm9taXNlPFQ+O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVG9vbGtpdEFjdGlvbiB9IGZyb20gJy4vdG9vbGtpdC1hY3Rpb24nO1xuXG4vKipcbiAqIFRoZSByZXBvcnRpbmcgbGV2ZWwgb2YgdGhlIG1lc3NhZ2UuXG4gKiBBbGwgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBvcnRlZCwgaXQncyB1cCB0byB0aGUgSW9Ib3N0IHRvIGRlY2lkZSB3aGF0IHRvIGxvZy5cbiAqL1xuZXhwb3J0IHR5cGUgSW9NZXNzYWdlTGV2ZWwgPSAnZXJyb3InfCAncmVzdWx0JyB8ICd3YXJuJyB8ICdpbmZvJyB8ICdkZWJ1ZycgfCAndHJhY2UnO1xuXG4vKipcbiAqIEEgdmFsaWQgbWVzc2FnZSBjb2RlLlxuICovXG5leHBvcnQgdHlwZSBJb01lc3NhZ2VDb2RlID0gYENES18ke3N0cmluZ31fJHsnRScgfCAnVycgfCAnSSd9JHtudW1iZXJ9JHtudW1iZXJ9JHtudW1iZXJ9JHtudW1iZXJ9YDtcblxuLyoqXG4gKiBBbiBJTyBtZXNzYWdlIGVtaXR0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW9NZXNzYWdlPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSB0aW1lIHRoZSBtZXNzYWdlIHdhcyBlbWl0dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZTogRGF0ZTtcblxuICAvKipcbiAgICogVGhlIHJlY29tbWVuZGVkIGxvZyBsZXZlbCBvZiB0aGUgbWVzc2FnZS5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBpbmRpY2F0aXZlIGxldmVsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgdG8gZXhwbGljaXRseSBtYXRjaCBtZXNzYWdlcywgaW5zdGVhZCBtYXRjaCB0aGUgYGNvZGVgLlxuICAgKiBUaGUgbGV2ZWwgb2YgYSBtZXNzYWdlIG1heSBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuXG4gICAqL1xuICByZWFkb25seSBsZXZlbDogSW9NZXNzYWdlTGV2ZWw7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdGhhdCB0cmlnZ2VyZWQgdGhlIG1lc3NhZ2UuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IFRvb2xraXRBY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgc2hvcnQgbWVzc2FnZSBjb2RlIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGEgbWVzc2FnZSB0eXBlIHVzaW5nIHRoZSBmb3JtYXQgQ0RLX1tDQVRFR09SWV1fW0UvVy9JXVswMDAwLTk5OTldLlxuICAgKlxuICAgKiBFdmVyeSBjb2RlIHJlbGVhdGVzIHRvIGEgbWVzc2FnZSB3aXRoIGEgc3BlY2lmaWMgcGF5bG9hZC5cbiAgICogTWVzc2FnZXMgd2l0aG91dCBjb2RlIGFyZSBjb25zaWRlcmVkIGdlbmVyaWMgYW5kIGRvIG5vdCBoYXZlIGEgcGF5bG9hZC5cbiAgICpcbiAgICogVGhlIGxldmVsIGluZGljYXRvciBmb2xsb3dzIHRoZXNlIHJ1bGVzOlxuICAgKiAtICdFJyBmb3IgZXJyb3IgbGV2ZWwgbWVzc2FnZXNcbiAgICogLSAnVycgZm9yIHdhcm5pbmcgbGV2ZWwgbWVzc2FnZXNcbiAgICogLSAnSScgZm9yIGluZm8vZGVidWcvdHJhY2UgbGV2ZWwgbWVzc2FnZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS90b29sa2l0LWxpYi9tZXNzYWdlLXJlZ2lzdHJ5L1xuICAgKi9cbiAgcmVhZG9ubHkgY29kZT86IElvTWVzc2FnZUNvZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHRleHQuXG4gICAqXG4gICAqIFRoaXMgaXMgc2FmZSB0byBwcmludCB0byBhbiBlbmQtdXNlci5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgbWVzc2FnZSBzcGFuLCB0aGlzIG1lc3NhZ2UgYmVsb25ncyB0by5cbiAgICpcbiAgICogQSBtZXNzYWdlIHNwYW4sIGdyb3VwcyBtdWx0aXBsZSBtZXNzYWdlcyB0b2dldGhlciB0aGF0IHNlbWFudGljYWxseSByZWxhdGVkIHRvIHRoZSBzYW1lIG9wZXJhdGlvbi5cbiAgICogVGhpcyBpcyBhbiBvdGhlcndpc2UgbWVhbmluZ2xlc3MgaWRlbnRpZmllci5cbiAgICpcbiAgICogQSBtZXNzYWdlIHdpdGhvdXQgYSBgc3BhbklkYCwgZG9lcyBub3QgYmVsb25nIHRvIGEgc3Bhbi5cbiAgICovXG4gIHJlYWRvbmx5IHNwYW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIGF0dGFjaGVkIHRvIHRoZSBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogVDtcbn1cblxuLyoqXG4gKiBBbiBJTyByZXF1ZXN0IGVtaXR0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW9SZXF1ZXN0PFQsIFU+IGV4dGVuZHMgSW9NZXNzYWdlPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHJlc3BvbnNlIHRoYXQgd2lsbCBiZSB1c2VkIGlmIG5vIGRhdGEgaXMgcmV0dXJuZWQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0UmVzcG9uc2U6IFU7XG5cbiAgcmVhZG9ubHkgY29kZTogSW9NZXNzYWdlQ29kZTtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./io-host-wrappers\"), exports);\n__exportStar(require(\"./io-helper\"), exports);\n__exportStar(require(\"./level-priority\"), exports);\n__exportStar(require(\"./span\"), exports);\n__exportStar(require(\"./message-maker\"), exports);\n__exportStar(require(\"./messages\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLDhDQUE0QjtBQUM1QixtREFBaUM7QUFDakMseUNBQXVCO0FBQ3ZCLGtEQUFnQztBQUNoQyw2Q0FBMkI7QUFDM0IsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pby1ob3N0LXdyYXBwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vaW8taGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGV2ZWwtcHJpb3JpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9zcGFuJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IoDefaultMessages = void 0;\nconst util = require(\"util\");\n/**\n * Helper class to emit standard log messages to an IoHost\n *\n * It wraps an `IoHelper`, and adds convenience methods to emit default messages\n * for the various log levels.\n */\nclass IoDefaultMessages {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n async notify(msg) {\n return this.ioHelper.notify({\n ...msg,\n code: undefined,\n });\n }\n async error(input, ...args) {\n return this.emitMessage('error', input, ...args);\n }\n async warn(input, ...args) {\n return this.emitMessage('warn', input, ...args);\n }\n async warning(input, ...args) {\n return this.emitMessage('warn', input, ...args);\n }\n async info(input, ...args) {\n return this.emitMessage('info', input, ...args);\n }\n async debug(input, ...args) {\n return this.emitMessage('debug', input, ...args);\n }\n async trace(input, ...args) {\n return this.emitMessage('trace', input, ...args);\n }\n async result(input, ...args) {\n return this.emitMessage('result', input, ...args);\n }\n /**\n * Makes a default message object from a level and a message\n */\n msg(level, input, ...args) {\n // Format message if args are provided\n const message = args.length > 0 ? util.format(input, ...args) : input;\n return {\n time: new Date(),\n level,\n message,\n data: undefined,\n };\n }\n async emitMessage(level, input, ...args) {\n return this.ioHelper.notify(this.msg(level, input, ...args));\n }\n}\nexports.IoDefaultMessages = IoDefaultMessages;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tZGVmYXVsdC1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWRlZmF1bHQtbWVzc2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBSTdCOzs7OztHQUtHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDWCxRQUFRLENBQVc7SUFFcEMsWUFBWSxRQUFrQjtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUE2QztRQUMvRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzFCLEdBQUcsR0FBRztZQUNOLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDbEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUNsRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQUMsS0FBcUIsRUFBRSxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2pFLHNDQUFzQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRXRFLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDaEIsS0FBSztZQUNMLE9BQU87WUFDUCxJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBcUIsRUFBRSxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUE1REQsOENBNERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uTGVzc01lc3NhZ2UsIElvSGVscGVyIH0gZnJvbSAnLi9pby1oZWxwZXInO1xuaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2VMZXZlbCB9IGZyb20gJy4uL2lvLW1lc3NhZ2UnO1xuXG4vKipcbiAqIEhlbHBlciBjbGFzcyB0byBlbWl0IHN0YW5kYXJkIGxvZyBtZXNzYWdlcyB0byBhbiBJb0hvc3RcbiAqXG4gKiBJdCB3cmFwcyBhbiBgSW9IZWxwZXJgLCBhbmQgYWRkcyBjb252ZW5pZW5jZSBtZXRob2RzIHRvIGVtaXQgZGVmYXVsdCBtZXNzYWdlc1xuICogZm9yIHRoZSB2YXJpb3VzIGxvZyBsZXZlbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBJb0RlZmF1bHRNZXNzYWdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBub3RpZnkobXNnOiBPbWl0PEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+LCAnY29kZSc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIGNvZGU6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBlcnJvcihpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbWl0TWVzc2FnZSgnZXJyb3InLCBpbnB1dCwgLi4uYXJncyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgd2FybihpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbWl0TWVzc2FnZSgnd2FybicsIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB3YXJuaW5nKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKCd3YXJuJywgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluZm8oaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdE1lc3NhZ2UoJ2luZm8nLCBpbnB1dCwgLi4uYXJncyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVidWcoaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdE1lc3NhZ2UoJ2RlYnVnJywgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRyYWNlKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKCd0cmFjZScsIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXN1bHQoaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdE1lc3NhZ2UoJ3Jlc3VsdCcsIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcyBhIGRlZmF1bHQgbWVzc2FnZSBvYmplY3QgZnJvbSBhIGxldmVsIGFuZCBhIG1lc3NhZ2VcbiAgICovXG4gIHB1YmxpYyBtc2cobGV2ZWw6IElvTWVzc2FnZUxldmVsLCBpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBBY3Rpb25MZXNzTWVzc2FnZTx1bmRlZmluZWQ+IHtcbiAgICAvLyBGb3JtYXQgbWVzc2FnZSBpZiBhcmdzIGFyZSBwcm92aWRlZFxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhcmdzLmxlbmd0aCA+IDAgPyB1dGlsLmZvcm1hdChpbnB1dCwgLi4uYXJncykgOiBpbnB1dDtcblxuICAgIHJldHVybiB7XG4gICAgICB0aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgbGV2ZWwsXG4gICAgICBtZXNzYWdlLFxuICAgICAgZGF0YTogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVtaXRNZXNzYWdlKGxldmVsOiBJb01lc3NhZ2VMZXZlbCwgaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KHRoaXMubXNnKGxldmVsLCBpbnB1dCwgLi4uYXJncykpO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IoHelper = void 0;\nexports.asIoHelper = asIoHelper;\nconst io_default_messages_1 = require(\"./io-default-messages\");\nconst span_1 = require(\"./span\");\n/**\n * A class containing helper tools to interact with IoHost\n */\nclass IoHelper {\n static fromIoHost(ioHost, action) {\n return new IoHelper({\n notify: (msg) => ioHost.notify({\n ...msg,\n action: action,\n }),\n requestResponse: (msg) => ioHost.requestResponse({\n ...msg,\n action: action,\n }),\n });\n }\n static fromActionAwareIoHost(ioHost) {\n return new IoHelper(ioHost);\n }\n /**\n * Simplified access to emit default messages.\n */\n defaults;\n ioHost;\n constructor(ioHost) {\n this.ioHost = ioHost;\n this.defaults = new io_default_messages_1.IoDefaultMessages(this);\n }\n /**\n * Forward a message to the IoHost, while injection the current action\n */\n notify(msg) {\n return this.ioHost.notify(msg);\n }\n /**\n * Forward a request to the IoHost, while injection the current action\n */\n requestResponse(msg) {\n return this.ioHost.requestResponse(msg);\n }\n /**\n * Create a new marker from a given registry entry\n */\n span(definition) {\n return new span_1.SpanMaker(this, definition, (ioHost) => IoHelper.fromActionAwareIoHost(ioHost));\n }\n}\nexports.IoHelper = IoHelper;\n/**\n * Wraps an IoHost and creates an IoHelper from it\n */\nfunction asIoHelper(ioHost, action) {\n return IoHelper.fromIoHost(ioHost, action);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW8taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9FQSxnQ0FFQztBQW5FRCwrREFBMEQ7QUFFMUQsaUNBQW1DO0FBS25DOztHQUVHO0FBQ0gsTUFBYSxRQUFRO0lBQ1osTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFlLEVBQUUsTUFBcUI7UUFDN0QsT0FBTyxJQUFJLFFBQVEsQ0FBQztZQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUF1QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxHQUFHLEdBQUc7Z0JBQ04sTUFBTSxFQUFFLE1BQU07YUFDZixDQUFDO1lBQ0YsZUFBZSxFQUFFLENBQUksR0FBMEIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztnQkFDekUsR0FBRyxHQUFHO2dCQUNOLE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBMEI7UUFDNUQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDYSxRQUFRLENBQW9CO0lBRTNCLE1BQU0sQ0FBcUI7SUFFNUMsWUFBb0IsTUFBMEI7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVDQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxHQUErQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBSSxHQUFrQztRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBc0MsVUFBZ0M7UUFDL0UsT0FBTyxJQUFJLGdCQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztDQUNGO0FBbERELDRCQWtEQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE1BQWUsRUFBRSxNQUFxQjtJQUMvRCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElBY3Rpb25Bd2FyZUlvSG9zdCwgSUlvSG9zdCB9IGZyb20gJy4uL2lvLWhvc3QnO1xuaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2UsIElvUmVxdWVzdCB9IGZyb20gJy4uL2lvLW1lc3NhZ2UnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0QWN0aW9uIH0gZnJvbSAnLi4vdG9vbGtpdC1hY3Rpb24nO1xuaW1wb3J0IHsgSW9EZWZhdWx0TWVzc2FnZXMgfSBmcm9tICcuL2lvLWRlZmF1bHQtbWVzc2FnZXMnO1xuaW1wb3J0IHR5cGUgeyBTcGFuRW5kLCBTcGFuRGVmaW5pdGlvbiB9IGZyb20gJy4vc3Bhbic7XG5pbXBvcnQgeyBTcGFuTWFrZXIgfSBmcm9tICcuL3NwYW4nO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25MZXNzTWVzc2FnZTxUPiA9IE9taXQ8SW9NZXNzYWdlPFQ+LCAnYWN0aW9uJz47XG5leHBvcnQgdHlwZSBBY3Rpb25MZXNzUmVxdWVzdDxULCBVPiA9IE9taXQ8SW9SZXF1ZXN0PFQsIFU+LCAnYWN0aW9uJz47XG5cbi8qKlxuICogQSBjbGFzcyBjb250YWluaW5nIGhlbHBlciB0b29scyB0byBpbnRlcmFjdCB3aXRoIElvSG9zdFxuICovXG5leHBvcnQgY2xhc3MgSW9IZWxwZXIgaW1wbGVtZW50cyBJSW9Ib3N0LCBJQWN0aW9uQXdhcmVJb0hvc3Qge1xuICBwdWJsaWMgc3RhdGljIGZyb21Jb0hvc3QoaW9Ib3N0OiBJSW9Ib3N0LCBhY3Rpb246IFRvb2xraXRBY3Rpb24pIHtcbiAgICByZXR1cm4gbmV3IElvSGVscGVyKHtcbiAgICAgIG5vdGlmeTogKG1zZzogSW9NZXNzYWdlPHVua25vd24+KSA9PiBpb0hvc3Qubm90aWZ5KHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIH0pLFxuICAgICAgcmVxdWVzdFJlc3BvbnNlOiA8VD4obXNnOiBJb1JlcXVlc3Q8dW5rbm93biwgVD4pID0+IGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb21BY3Rpb25Bd2FyZUlvSG9zdChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkge1xuICAgIHJldHVybiBuZXcgSW9IZWxwZXIoaW9Ib3N0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaW1wbGlmaWVkIGFjY2VzcyB0byBlbWl0IGRlZmF1bHQgbWVzc2FnZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdHM6IElvRGVmYXVsdE1lc3NhZ2VzO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW9Ib3N0OiBJQWN0aW9uQXdhcmVJb0hvc3Q7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkge1xuICAgIHRoaXMuaW9Ib3N0ID0gaW9Ib3N0O1xuICAgIHRoaXMuZGVmYXVsdHMgPSBuZXcgSW9EZWZhdWx0TWVzc2FnZXModGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogRm9yd2FyZCBhIG1lc3NhZ2UgdG8gdGhlIElvSG9zdCwgd2hpbGUgaW5qZWN0aW9uIHRoZSBjdXJyZW50IGFjdGlvblxuICAgKi9cbiAgcHVibGljIG5vdGlmeShtc2c6IEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9Ib3N0Lm5vdGlmeShtc2cpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcndhcmQgYSByZXF1ZXN0IHRvIHRoZSBJb0hvc3QsIHdoaWxlIGluamVjdGlvbiB0aGUgY3VycmVudCBhY3Rpb25cbiAgICovXG4gIHB1YmxpYyByZXF1ZXN0UmVzcG9uc2U8VD4obXNnOiBBY3Rpb25MZXNzUmVxdWVzdDx1bmtub3duLCBUPik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmlvSG9zdC5yZXF1ZXN0UmVzcG9uc2UobXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgbWFya2VyIGZyb20gYSBnaXZlbiByZWdpc3RyeSBlbnRyeVxuICAgKi9cbiAgcHVibGljIHNwYW48UyBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIFNwYW5FbmQ+KGRlZmluaXRpb246IFNwYW5EZWZpbml0aW9uPFMsIEU+KSB7XG4gICAgcmV0dXJuIG5ldyBTcGFuTWFrZXIodGhpcywgZGVmaW5pdGlvbiwgKGlvSG9zdCkgPT4gSW9IZWxwZXIuZnJvbUFjdGlvbkF3YXJlSW9Ib3N0KGlvSG9zdCkpO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYW4gSW9Ib3N0IGFuZCBjcmVhdGVzIGFuIElvSGVscGVyIGZyb20gaXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzSW9IZWxwZXIoaW9Ib3N0OiBJSW9Ib3N0LCBhY3Rpb246IFRvb2xraXRBY3Rpb24pOiBJb0hlbHBlciB7XG4gIHJldHVybiBJb0hlbHBlci5mcm9tSW9Ib3N0KGlvSG9zdCwgYWN0aW9uKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withoutColor = withoutColor;\nexports.withoutEmojis = withoutEmojis;\nexports.withTrimmedWhitespace = withTrimmedWhitespace;\n/**\n * An IoHost wrapper that strips out ANSI colors and styles from the message before\n * sending the message to the given IoHost\n */\nfunction withoutColor(ioHost) {\n return {\n notify: async (msg) => {\n await ioHost.notify({\n ...msg,\n message: stripColor(msg.message),\n });\n },\n requestResponse: async (msg) => {\n return ioHost.requestResponse({\n ...msg,\n message: stripColor(msg.message),\n });\n },\n };\n}\nfunction stripColor(msg) {\n return msg.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '');\n}\n/**\n * An IoHost wrapper that strips out emojis from the message before\n * sending the message to the given IoHost\n */\nfunction withoutEmojis(ioHost) {\n return {\n notify: async (msg) => {\n await ioHost.notify({\n ...msg,\n message: stripEmojis(msg.message),\n });\n },\n requestResponse: async (msg) => {\n return ioHost.requestResponse({\n ...msg,\n message: stripEmojis(msg.message),\n });\n },\n };\n}\nfunction stripEmojis(msg) {\n // https://www.unicode.org/reports/tr51/#def_emoji_presentation\n return msg.replace(/\\p{Emoji_Presentation}/gu, '');\n}\n/**\n * An IoHost wrapper that trims whitespace at the beginning and end of messages.\n * This is required, since after removing emojis and ANSI colors,\n * we might end up with floating whitespace at either end.\n */\nfunction withTrimmedWhitespace(ioHost) {\n return {\n notify: async (msg) => {\n await ioHost.notify({\n ...msg,\n message: msg.message.trim(),\n });\n },\n requestResponse: async (msg) => {\n return ioHost.requestResponse({\n ...msg,\n message: msg.message.trim(),\n });\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8taG9zdC13cmFwcGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWhvc3Qtd3JhcHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvQ0FlQztBQVVELHNDQWVDO0FBWUQsc0RBZUM7QUF2RUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWU7SUFDMUMsT0FBTztRQUNMLE1BQU0sRUFBRSxLQUFLLEVBQUssR0FBaUIsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDbEIsR0FBRyxHQUFHO2dCQUNOLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUNqQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsZUFBZSxFQUFFLEtBQUssRUFBUSxHQUFvQixFQUFFLEVBQUU7WUFDcEQsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUM1QixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDZFQUE2RSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hHLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQUMsTUFBZTtJQUMzQyxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBSyxHQUFpQixFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNsQixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2FBQ2xDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxlQUFlLEVBQUUsS0FBSyxFQUFRLEdBQW9CLEVBQUUsRUFBRTtZQUNwRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUM7Z0JBQzVCLEdBQUcsR0FBRztnQkFDTixPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBVztJQUM5QiwrREFBK0Q7SUFDL0QsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBZTtJQUNuRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBSyxHQUFpQixFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNsQixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO2FBQzVCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxlQUFlLEVBQUUsS0FBSyxFQUFRLEdBQW9CLEVBQUUsRUFBRTtZQUNwRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUM7Z0JBQzVCLEdBQUcsR0FBRztnQkFDTixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2UsIElvUmVxdWVzdCwgSUlvSG9zdCB9IGZyb20gJy4uLyc7XG5cbi8qKlxuICogQW4gSW9Ib3N0IHdyYXBwZXIgdGhhdCBzdHJpcHMgb3V0IEFOU0kgY29sb3JzIGFuZCBzdHlsZXMgZnJvbSB0aGUgbWVzc2FnZSBiZWZvcmVcbiAqIHNlbmRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIGdpdmVuIElvSG9zdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dENvbG9yKGlvSG9zdDogSUlvSG9zdCk6IElJb0hvc3Qge1xuICByZXR1cm4ge1xuICAgIG5vdGlmeTogYXN5bmMgPFQ+KG1zZzogSW9NZXNzYWdlPFQ+KSA9PiB7XG4gICAgICBhd2FpdCBpb0hvc3Qubm90aWZ5KHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBtZXNzYWdlOiBzdHJpcENvbG9yKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcmVxdWVzdFJlc3BvbnNlOiBhc3luYyA8VCwgVT4obXNnOiBJb1JlcXVlc3Q8VCwgVT4pID0+IHtcbiAgICAgIHJldHVybiBpb0hvc3QucmVxdWVzdFJlc3BvbnNlKHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBtZXNzYWdlOiBzdHJpcENvbG9yKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmlwQ29sb3IobXNnOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbXNnLnJlcGxhY2UoL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZywgJycpO1xufVxuXG4vKipcbiAqIEFuIElvSG9zdCB3cmFwcGVyIHRoYXQgc3RyaXBzIG91dCBlbW9qaXMgZnJvbSB0aGUgbWVzc2FnZSBiZWZvcmVcbiAqIHNlbmRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIGdpdmVuIElvSG9zdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dEVtb2ppcyhpb0hvc3Q6IElJb0hvc3QpOiBJSW9Ib3N0IHtcbiAgcmV0dXJuIHtcbiAgICBub3RpZnk6IGFzeW5jIDxUPihtc2c6IElvTWVzc2FnZTxUPikgPT4ge1xuICAgICAgYXdhaXQgaW9Ib3N0Lm5vdGlmeSh7XG4gICAgICAgIC4uLm1zZyxcbiAgICAgICAgbWVzc2FnZTogc3RyaXBFbW9qaXMobXNnLm1lc3NhZ2UpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICByZXF1ZXN0UmVzcG9uc2U6IGFzeW5jIDxULCBVPihtc2c6IElvUmVxdWVzdDxULCBVPikgPT4ge1xuICAgICAgcmV0dXJuIGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIG1lc3NhZ2U6IHN0cmlwRW1vamlzKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmlwRW1vamlzKG1zZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjUxLyNkZWZfZW1vamlfcHJlc2VudGF0aW9uXG4gIHJldHVybiBtc2cucmVwbGFjZSgvXFxwe0Vtb2ppX1ByZXNlbnRhdGlvbn0vZ3UsICcnKTtcbn1cblxuLyoqXG4gKiBBbiBJb0hvc3Qgd3JhcHBlciB0aGF0IHRyaW1zIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIG1lc3NhZ2VzLlxuICogVGhpcyBpcyByZXF1aXJlZCwgc2luY2UgYWZ0ZXIgcmVtb3ZpbmcgZW1vamlzIGFuZCBBTlNJIGNvbG9ycyxcbiAqIHdlIG1pZ2h0IGVuZCB1cCB3aXRoIGZsb2F0aW5nIHdoaXRlc3BhY2UgYXQgZWl0aGVyIGVuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhUcmltbWVkV2hpdGVzcGFjZShpb0hvc3Q6IElJb0hvc3QpOiBJSW9Ib3N0IHtcbiAgcmV0dXJuIHtcbiAgICBub3RpZnk6IGFzeW5jIDxUPihtc2c6IElvTWVzc2FnZTxUPikgPT4ge1xuICAgICAgYXdhaXQgaW9Ib3N0Lm5vdGlmeSh7XG4gICAgICAgIC4uLm1zZyxcbiAgICAgICAgbWVzc2FnZTogbXNnLm1lc3NhZ2UudHJpbSgpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICByZXF1ZXN0UmVzcG9uc2U6IGFzeW5jIDxULCBVPihtc2c6IElvUmVxdWVzdDxULCBVPikgPT4ge1xuICAgICAgcmV0dXJuIGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIG1lc3NhZ2U6IG1zZy5tZXNzYWdlLnRyaW0oKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMessageRelevantForLevel = isMessageRelevantForLevel;\n/**\n * Keep this list ordered from most to least verbose.\n * Every level \"includes\" all of the levels below it.\n * This is used to compare levels of messages to determine what should be logged.\n */\nconst levels = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'result',\n 'error',\n];\n// compare levels helper\n// helper to convert the array into a map with numbers\nconst orderedLevels = Object.fromEntries(Object.entries(levels).map(a => a.reverse()));\nfunction compareFn(a, b) {\n return orderedLevels[a] - orderedLevels[b];\n}\n/**\n * Determines if a message is relevant for the given log level.\n *\n * @param msg - The message to compare.\n * @param level - The level to compare against.\n * @returns true if the message is relevant for the given level.\n */\nfunction isMessageRelevantForLevel(msg, level) {\n return compareFn(msg.level, level) >= 0;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV2ZWwtcHJpb3JpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsZXZlbC1wcmlvcml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThCQSw4REFFQztBQTlCRDs7OztHQUlHO0FBQ0gsTUFBTSxNQUFNLEdBQUc7SUFDYixPQUFPO0lBQ1AsT0FBTztJQUNQLE1BQU07SUFDTixNQUFNO0lBQ04sUUFBUTtJQUNSLE9BQU87Q0FDQyxDQUFDO0FBRVgsd0JBQXdCO0FBQ3hCLHNEQUFzRDtBQUN0RCxNQUFNLGFBQWEsR0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUgsU0FBUyxTQUFTLENBQUMsQ0FBaUIsRUFBRSxDQUFpQjtJQUNyRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLEdBQThCLEVBQUUsS0FBcUI7SUFDN0YsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW9NZXNzYWdlTGV2ZWwgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIEtlZXAgdGhpcyBsaXN0IG9yZGVyZWQgZnJvbSBtb3N0IHRvIGxlYXN0IHZlcmJvc2UuXG4gKiBFdmVyeSBsZXZlbCBcImluY2x1ZGVzXCIgYWxsIG9mIHRoZSBsZXZlbHMgYmVsb3cgaXQuXG4gKiBUaGlzIGlzIHVzZWQgdG8gY29tcGFyZSBsZXZlbHMgb2YgbWVzc2FnZXMgdG8gZGV0ZXJtaW5lIHdoYXQgc2hvdWxkIGJlIGxvZ2dlZC5cbiAqL1xuY29uc3QgbGV2ZWxzID0gW1xuICAndHJhY2UnLFxuICAnZGVidWcnLFxuICAnaW5mbycsXG4gICd3YXJuJyxcbiAgJ3Jlc3VsdCcsXG4gICdlcnJvcicsXG5dIGFzIGNvbnN0O1xuXG4vLyBjb21wYXJlIGxldmVscyBoZWxwZXJcbi8vIGhlbHBlciB0byBjb252ZXJ0IHRoZSBhcnJheSBpbnRvIGEgbWFwIHdpdGggbnVtYmVyc1xuY29uc3Qgb3JkZXJlZExldmVsczogUmVjb3JkPHR5cGVvZiBsZXZlbHNbbnVtYmVyXSwgbnVtYmVyPiA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhsZXZlbHMpLm1hcChhID0+IGEucmV2ZXJzZSgpKSk7XG5mdW5jdGlvbiBjb21wYXJlRm4oYTogSW9NZXNzYWdlTGV2ZWwsIGI6IElvTWVzc2FnZUxldmVsKTogbnVtYmVyIHtcbiAgcmV0dXJuIG9yZGVyZWRMZXZlbHNbYV0gLSBvcmRlcmVkTGV2ZWxzW2JdO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBtZXNzYWdlIGlzIHJlbGV2YW50IGZvciB0aGUgZ2l2ZW4gbG9nIGxldmVsLlxuICpcbiAqIEBwYXJhbSBtc2cgLSBUaGUgbWVzc2FnZSB0byBjb21wYXJlLlxuICogQHBhcmFtIGxldmVsIC0gVGhlIGxldmVsIHRvIGNvbXBhcmUgYWdhaW5zdC5cbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG1lc3NhZ2UgaXMgcmVsZXZhbnQgZm9yIHRoZSBnaXZlbiBsZXZlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWVzc2FnZVJlbGV2YW50Rm9yTGV2ZWwobXNnOiB7IGxldmVsOiBJb01lc3NhZ2VMZXZlbCB9LCBsZXZlbDogSW9NZXNzYWdlTGV2ZWwpOiBib29sZWFuIHtcbiAgcmV0dXJuIGNvbXBhcmVGbihtc2cubGV2ZWwsIGxldmVsKSA+PSAwO1xufVxuXG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.confirm = exports.result = exports.error = exports.warn = exports.info = exports.debug = exports.trace = void 0;\nexports.question = question;\n/**\n * Produce an IoMessageMaker for the provided level and code info.\n */\nfunction message(level, details) {\n const maker = (text, data) => ({\n time: new Date(),\n level,\n code: details.code,\n message: text,\n data,\n });\n return {\n ...details,\n level,\n msg: maker,\n is: (m) => m.code === details.code,\n };\n}\nconst trace = (details) => message('trace', details);\nexports.trace = trace;\nconst debug = (details) => message('debug', details);\nexports.debug = debug;\nconst info = (details) => message('info', details);\nexports.info = info;\nconst warn = (details) => message('warn', details);\nexports.warn = warn;\nconst error = (details) => message('error', details);\nexports.error = error;\nconst result = (details) => message('result', details);\nexports.result = result;\n/**\n * Produce an IoRequestMaker for the provided level and request info.\n */\nfunction request(level, details) {\n const maker = (text, data) => ({\n time: new Date(),\n level,\n code: details.code,\n message: text,\n data,\n defaultResponse: details.defaultResponse,\n });\n return {\n ...details,\n level,\n req: maker,\n };\n}\n/**\n * A request that is a simple yes/no question, with the expectation that 'yes' is the default.\n */\nconst confirm = (details) => request('info', {\n ...details,\n defaultResponse: true,\n});\nexports.confirm = confirm;\n/**\n * An open ended question with a string answer, typically provided on-demand by a user.\n */\nfunction question(details) {\n const level = 'info';\n const maker = (text, data, defaultResponse) => ({\n time: new Date(),\n level,\n code: details.code,\n message: text,\n data,\n defaultResponse,\n });\n return {\n ...details,\n level,\n req: maker,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1tYWtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lc3NhZ2UtbWFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUpBLDRCQWdCQztBQW5IRDs7R0FFRztBQUNILFNBQVMsT0FBTyxDQUFpQixLQUFxQixFQUFFLE9BQWlCO0lBQ3ZFLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDaEIsS0FBSztRQUNMLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUk7S0FDb0IsQ0FBQSxDQUFDO0lBRTNCLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixLQUFLO1FBQ0wsR0FBRyxFQUFFLEtBQVk7UUFDakIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSTtLQUN0RCxDQUFDO0FBQ0osQ0FBQztBQXlCTSxNQUFNLEtBQUssR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTdGLFFBQUEsS0FBSyxTQUF3RjtBQUNuRyxNQUFNLEtBQUssR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTdGLFFBQUEsS0FBSyxTQUF3RjtBQUNuRyxNQUFNLElBQUksR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTNGLFFBQUEsSUFBSSxRQUF1RjtBQUNqRyxNQUFNLElBQUksR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTNGLFFBQUEsSUFBSSxRQUF1RjtBQUNqRyxNQUFNLEtBQUssR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTdGLFFBQUEsS0FBSyxTQUF3RjtBQUNuRyxNQUFNLE1BQU0sR0FBRyxDQUFvQyxPQUEyQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTNHLFFBQUEsTUFBTSxVQUFxRztBQW9CeEg7O0dBRUc7QUFDSCxTQUFTLE9BQU8sQ0FBcUMsS0FBcUIsRUFBRSxPQUF1QjtJQUNqRyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxJQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1FBQ2hCLEtBQUs7UUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsT0FBTyxFQUFFLElBQUk7UUFDYixJQUFJO1FBQ0osZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO0tBQ2IsQ0FBQSxDQUFDO0lBRTlCLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixLQUFLO1FBQ0wsR0FBRyxFQUFFLEtBQVk7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQW9DLE9BQWdFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBYSxNQUFNLEVBQUU7SUFDMUosR0FBRyxPQUFPO0lBQ1YsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyxDQUFDO0FBSFUsUUFBQSxPQUFPLFdBR2pCO0FBRUg7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUksT0FBaUI7SUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3JCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQU8sRUFBRSxlQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtRQUNoQixLQUFLO1FBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsSUFBSTtRQUNKLGVBQWU7S0FDaUIsQ0FBQSxDQUFDO0lBRW5DLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixLQUFLO1FBQ0wsR0FBRyxFQUFFLEtBQVk7S0FDbEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElvTWVzc2FnZSwgSW9NZXNzYWdlQ29kZSwgSW9NZXNzYWdlTGV2ZWwgfSBmcm9tICcuLi9pby1tZXNzYWdlJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uTGVzc01lc3NhZ2UsIEFjdGlvbkxlc3NSZXF1ZXN0IH0gZnJvbSAnLi9pby1oZWxwZXInO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIGZvciBlYWNoIElPIE1lc3NhZ2UgQ29kZS5cbiAqL1xuaW50ZXJmYWNlIENvZGVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGNvZGUuXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBJb01lc3NhZ2VDb2RlO1xuXG4gIC8qKlxuICAgKiBBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBtZWFuaW5nIG9mIHRoaXMgSU8gTWVzc2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYXlsb2FkIGludGVyZmFjZSwgaWYgYXBwbGljYWJsZS5cbiAgICogU29tZSBJbyBNZXNzYWdlcyBpbmNsdWRlIGEgcGF5bG9hZCwgd2l0aCBhIHNwZWNpZmljIGludGVyZmFjZS4gVGhlIG5hbWUgb2ZcbiAgICogdGhlIGludGVyZmFjZSBpcyBzcGVjaWZpZWQgaGVyZSBzbyB0aGF0IGl0IGNhbiBiZSBsaW5rZWQgd2l0aCB0aGUgbWVzc2FnZVxuICAgKiB3aGVuIGRvY3VtZW50YXRpb24gaXMgZ2VuZXJhdGVkLlxuICAgKlxuICAgKiBUaGUgaW50ZXJmYWNlIF9tdXN0XyBiZSBleHBvc2VkIGRpcmVjdGx5IGZyb20gdG9vbGtpdC1saWIsIHNvIHRoYXQgaXQgd2lsbFxuICAgKiBoYXZlIGEgZG9jdW1lbnRhdGlvbiBwYWdlIGdlbmVyYXRlZCAodGhhdCBjYW4gYmUgbGlua2VkIHRvKS5cbiAgICovXG4gIHJlYWRvbmx5IGludGVyZmFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgZWFjaCBJTyBNZXNzYWdlXG4gKi9cbmludGVyZmFjZSBNZXNzYWdlSW5mbyBleHRlbmRzIENvZGVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGxldmVsXG4gICAqL1xuICByZWFkb25seSBsZXZlbDogSW9NZXNzYWdlTGV2ZWw7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIHRoYXQgY2FuIHByb2R1Y2UgbWVzc2FnZXMgZm9yIGEgc3BlY2lmaWMgY29kZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJb01lc3NhZ2VNYWtlcjxUPiBleHRlbmRzIE1lc3NhZ2VJbmZvIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG1lc3NhZ2UgZm9yIHRoaXMgY29kZSwgd2l0aCBvciB3aXRob3V0IHBheWxvYWQuXG4gICAqL1xuICBtc2c6IFtUXSBleHRlbmRzIFtBYnNlbnREYXRhXSA/IChtZXNzYWdlOiBzdHJpbmcpID0+IEFjdGlvbkxlc3NNZXNzYWdlPEFic2VudERhdGE+IDogKG1lc3NhZ2U6IHN0cmluZywgZGF0YTogVCkgPT4gQWN0aW9uTGVzc01lc3NhZ2U8VD47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYElvTWVzc2FnZWAgaW5zdGFuY2UgbWF0Y2hlcyB0aGUgY3VycmVudCBtZXNzYWdlIGRlZmluaXRpb25cbiAgICovXG4gIGlzKHg6IElvTWVzc2FnZTx1bmtub3duPik6IHggaXMgSW9NZXNzYWdlPFQ+O1xufVxuXG4vKipcbiAqIFByb2R1Y2UgYW4gSW9NZXNzYWdlTWFrZXIgZm9yIHRoZSBwcm92aWRlZCBsZXZlbCBhbmQgY29kZSBpbmZvLlxuICovXG5mdW5jdGlvbiBtZXNzYWdlPFQgPSBBYnNlbnREYXRhPihsZXZlbDogSW9NZXNzYWdlTGV2ZWwsIGRldGFpbHM6IENvZGVJbmZvKTogSW9NZXNzYWdlTWFrZXI8VD4ge1xuICBjb25zdCBtYWtlciA9ICh0ZXh0OiBzdHJpbmcsIGRhdGE6IFQpID0+ICh7XG4gICAgdGltZTogbmV3IERhdGUoKSxcbiAgICBsZXZlbCxcbiAgICBjb2RlOiBkZXRhaWxzLmNvZGUsXG4gICAgbWVzc2FnZTogdGV4dCxcbiAgICBkYXRhLFxuICB9IGFzIEFjdGlvbkxlc3NNZXNzYWdlPFQ+KTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRldGFpbHMsXG4gICAgbGV2ZWwsXG4gICAgbXNnOiBtYWtlciBhcyBhbnksXG4gICAgaXM6IChtKTogbSBpcyBJb01lc3NhZ2U8VD4gPT4gbS5jb2RlID09PSBkZXRhaWxzLmNvZGUsXG4gIH07XG59XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgaXMgaW1wb3NzaWJsZSBmb3IgYSB1c2VyIHRvIHJlcGxpY2F0ZVxuICogVGhpcyBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IHJlc3VsdHMgYWx3YXlzIGhhdmUgYSBwcm9wZXIgdHlwZSBnZW5lcmljIGRlY2xhcmVkLlxuICovXG5kZWNsYXJlIGNvbnN0IHByaXZhdGVLZXk6IHVuaXF1ZSBzeW1ib2w7XG5leHBvcnQgdHlwZSBJbXBvc3NpYmxlVHlwZSA9IHtcbiAgcmVhZG9ubHkgW3ByaXZhdGVLZXldOiB0eXBlb2YgcHJpdmF0ZUtleTtcbn07XG5cbi8vIENyZWF0ZSBgSW9NZXNzYWdlTWFrZXJgcyBmb3IgYSBnaXZlbiBsZXZlbCBhbmQgdHlwZSBjaGVjayB0aGF0IGNhbGxzIHdpdGggcGF5bG9hZCBhcmUgdXNpbmcgdGhlIGNvcnJlY3QgaW50ZXJmYWNlXG50eXBlIENvZGVJbmZvTWF5YmVJbnRlcmZhY2U8VD4gPSBbVF0gZXh0ZW5kcyBbQWJzZW50RGF0YV0gPyBPbWl0PENvZGVJbmZvLCAnaW50ZXJmYWNlJz4gOiBSZXF1aXJlZDxDb2RlSW5mbz47XG5cbi8qKlxuICogVGhlIHR5cGUgd2UgdXNlIHRvIHJlcHJlc2VudCBhbiBhYnNlbnQgZGF0YSBmaWVsZFxuICpcbiAqIFRoaXMgaXMgaGVyZSB0byBtYWtlIGl0IGVhc3kgdG8gY2hhbmdlIGJldHdlZW4gYHVuZGVmaW5lZGAsIGB2b2lkYFxuICogYW5kIGBuZXZlcmAuXG4gKlxuICogTm90IGEgbG90IG9mIGRpZmZlcmVuY2UgYmV0d2VlbiBgdW5kZWZpbmVkYCBhbmQgYHZvaWRgLCBidXQgYHZvaWRgXG4gKiByZWFkcyBiZXR0ZXIuXG4gKi9cbnR5cGUgQWJzZW50RGF0YSA9IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCB0cmFjZSA9IDxUID0gQWJzZW50RGF0YT4oZGV0YWlsczogQ29kZUluZm9NYXliZUludGVyZmFjZTxUPikgPT4gbWVzc2FnZTxUPigndHJhY2UnLCBkZXRhaWxzKTtcbmV4cG9ydCBjb25zdCBkZWJ1ZyA9IDxUID0gQWJzZW50RGF0YT4oZGV0YWlsczogQ29kZUluZm9NYXliZUludGVyZmFjZTxUPikgPT4gbWVzc2FnZTxUPignZGVidWcnLCBkZXRhaWxzKTtcbmV4cG9ydCBjb25zdCBpbmZvID0gPFQgPSBBYnNlbnREYXRhPihkZXRhaWxzOiBDb2RlSW5mb01heWJlSW50ZXJmYWNlPFQ+KSA9PiBtZXNzYWdlPFQ+KCdpbmZvJywgZGV0YWlscyk7XG5leHBvcnQgY29uc3Qgd2FybiA9IDxUID0gQWJzZW50RGF0YT4oZGV0YWlsczogQ29kZUluZm9NYXliZUludGVyZmFjZTxUPikgPT4gbWVzc2FnZTxUPignd2FybicsIGRldGFpbHMpO1xuZXhwb3J0IGNvbnN0IGVycm9yID0gPFQgPSBBYnNlbnREYXRhPihkZXRhaWxzOiBDb2RlSW5mb01heWJlSW50ZXJmYWNlPFQ+KSA9PiBtZXNzYWdlPFQ+KCdlcnJvcicsIGRldGFpbHMpO1xuZXhwb3J0IGNvbnN0IHJlc3VsdCA9IDxUIGV4dGVuZHMgb2JqZWN0ID0gSW1wb3NzaWJsZVR5cGU+KGRldGFpbHM6IFJlcXVpcmVkPENvZGVJbmZvPikgPT4gbWVzc2FnZTxUPigncmVzdWx0JywgZGV0YWlscyk7XG5cbmludGVyZmFjZSBSZXF1ZXN0SW5mbzxVPiBleHRlbmRzIENvZGVJbmZvIHtcbiAgcmVhZG9ubHkgZGVmYXVsdFJlc3BvbnNlOiBVO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSB0aGF0IGNhbiBwcm9kdWNlIHJlcXVlc3RzIGZvciBhIHNwZWNpZmljIGNvZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW9SZXF1ZXN0TWFrZXI8VCwgVT4gZXh0ZW5kcyBNZXNzYWdlSW5mbyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciB0aGlzIGNvZGUsIHdpdGggb3Igd2l0aG91dCBwYXlsb2FkLlxuICAgKi9cbiAgcmVxOiBbVF0gZXh0ZW5kcyBbQWJzZW50RGF0YV1cbiAgICA/IChtZXNzYWdlOiBzdHJpbmcpID0+IEFjdGlvbkxlc3NNZXNzYWdlPEFic2VudERhdGE+XG4gICAgOiBbVV0gZXh0ZW5kcyBbYm9vbGVhbl1cbiAgICAgID8gKG1lc3NhZ2U6IHN0cmluZywgZGF0YTogVCkgPT4gQWN0aW9uTGVzc1JlcXVlc3Q8VCwgVT5cbiAgICAgIDogKG1lc3NhZ2U6IHN0cmluZywgZGF0YTogVCwgZGVmYXVsdFJlc3BvbnNlOiBVKSA9PiBBY3Rpb25MZXNzUmVxdWVzdDxULCBVPjtcbn1cblxuLyoqXG4gKiBQcm9kdWNlIGFuIElvUmVxdWVzdE1ha2VyIGZvciB0aGUgcHJvdmlkZWQgbGV2ZWwgYW5kIHJlcXVlc3QgaW5mby5cbiAqL1xuZnVuY3Rpb24gcmVxdWVzdDxUID0gQWJzZW50RGF0YSwgVSA9IEltcG9zc2libGVUeXBlPihsZXZlbDogSW9NZXNzYWdlTGV2ZWwsIGRldGFpbHM6IFJlcXVlc3RJbmZvPFU+KTogSW9SZXF1ZXN0TWFrZXI8VCwgVT4ge1xuICBjb25zdCBtYWtlciA9ICh0ZXh0OiBzdHJpbmcsIGRhdGE6IFQpID0+ICh7XG4gICAgdGltZTogbmV3IERhdGUoKSxcbiAgICBsZXZlbCxcbiAgICBjb2RlOiBkZXRhaWxzLmNvZGUsXG4gICAgbWVzc2FnZTogdGV4dCxcbiAgICBkYXRhLFxuICAgIGRlZmF1bHRSZXNwb25zZTogZGV0YWlscy5kZWZhdWx0UmVzcG9uc2UsXG4gIH0gYXMgQWN0aW9uTGVzc1JlcXVlc3Q8VCwgVT4pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZGV0YWlscyxcbiAgICBsZXZlbCxcbiAgICByZXE6IG1ha2VyIGFzIGFueSxcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHJlcXVlc3QgdGhhdCBpcyBhIHNpbXBsZSB5ZXMvbm8gcXVlc3Rpb24sIHdpdGggdGhlIGV4cGVjdGF0aW9uIHRoYXQgJ3llcycgaXMgdGhlIGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBjb25zdCBjb25maXJtID0gPFQgZXh0ZW5kcyBvYmplY3QgPSBJbXBvc3NpYmxlVHlwZT4oZGV0YWlsczogUmVxdWlyZWQ8T21pdDxSZXF1ZXN0SW5mbzxib29sZWFuPiwgJ2RlZmF1bHRSZXNwb25zZSc+PikgPT4gcmVxdWVzdDxULCBib29sZWFuPignaW5mbycsIHtcbiAgLi4uZGV0YWlscyxcbiAgZGVmYXVsdFJlc3BvbnNlOiB0cnVlLFxufSk7XG5cbi8qKlxuICogQW4gb3BlbiBlbmRlZCBxdWVzdGlvbiB3aXRoIGEgc3RyaW5nIGFuc3dlciwgdHlwaWNhbGx5IHByb3ZpZGVkIG9uLWRlbWFuZCBieSBhIHVzZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWVzdGlvbjxUPihkZXRhaWxzOiBDb2RlSW5mbyk6IElvUmVxdWVzdE1ha2VyPFQsIHN0cmluZz4ge1xuICBjb25zdCBsZXZlbCA9ICdpbmZvJztcbiAgY29uc3QgbWFrZXIgPSAodGV4dDogc3RyaW5nLCBkYXRhOiBULCBkZWZhdWx0UmVzcG9uc2U6IHN0cmluZykgPT4gKHtcbiAgICB0aW1lOiBuZXcgRGF0ZSgpLFxuICAgIGxldmVsLFxuICAgIGNvZGU6IGRldGFpbHMuY29kZSxcbiAgICBtZXNzYWdlOiB0ZXh0LFxuICAgIGRhdGEsXG4gICAgZGVmYXVsdFJlc3BvbnNlLFxuICB9IGFzIEFjdGlvbkxlc3NSZXF1ZXN0PFQsIHN0cmluZz4pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZGV0YWlscyxcbiAgICBsZXZlbCxcbiAgICByZXE6IG1ha2VyIGFzIGFueSxcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPAN = exports.IO = void 0;\nconst make = require(\"./message-maker\");\n/**\n * We have a rough system by which we assign message codes:\n * - First digit groups messages by action, e.g. synth or deploy\n * - X000-X009 are reserved for timings\n * - X900-X999 are reserved for results\n */\nexports.IO = {\n // warnings & errors\n CDK_TOOLKIT_W0100: make.warn({\n code: 'CDK_TOOLKIT_W0100',\n description: 'Credential plugin warnings',\n }),\n // 1: Synth (1xxx)\n CDK_TOOLKIT_I1000: make.info({\n code: 'CDK_TOOLKIT_I1000',\n description: 'Provides synthesis times.',\n interface: 'Operation',\n }),\n CDK_TOOLKIT_I1001: make.trace({\n code: 'CDK_TOOLKIT_I1001',\n description: 'Cloud Assembly synthesis is starting',\n interface: 'StackSelectionDetails',\n }),\n CDK_TOOLKIT_I1901: make.result({\n code: 'CDK_TOOLKIT_I1901',\n description: 'Provides stack data',\n interface: 'StackAndAssemblyData',\n }),\n CDK_TOOLKIT_I1902: make.result({\n code: 'CDK_TOOLKIT_I1902',\n description: 'Successfully deployed stacks',\n interface: 'AssemblyData',\n }),\n // 2: List (2xxx)\n CDK_TOOLKIT_I2901: make.result({\n code: 'CDK_TOOLKIT_I2901',\n description: 'Provides details on the selected stacks and their dependencies',\n interface: 'StackDetailsPayload',\n }),\n // 3: Import & Migrate\n CDK_TOOLKIT_I3100: make.confirm({\n code: 'CDK_TOOLKIT_I3100',\n description: 'Confirm the import of a specific resource',\n interface: 'ResourceImportRequest',\n }),\n CDK_TOOLKIT_I3110: make.question({\n code: 'CDK_TOOLKIT_I3110',\n description: 'Additional information is needed to identify a resource',\n interface: 'ResourceIdentificationRequest',\n }),\n CDK_TOOLKIT_E3900: make.error({\n code: 'CDK_TOOLKIT_E3900',\n description: 'Resource import failed',\n interface: 'ErrorPayload',\n }),\n // 4: Diff (40xx - 44xx)\n CDK_TOOLKIT_I4000: make.trace({\n code: 'CDK_TOOLKIT_I4000',\n description: 'Diff stacks is starting',\n interface: 'StackSelectionDetails',\n }),\n CDK_TOOLKIT_I4001: make.result({\n code: 'CDK_TOOLKIT_I4001',\n description: 'Output of the diff command',\n interface: 'DiffResult',\n }),\n CDK_TOOLKIT_I4002: make.result({\n code: 'CDK_TOOLKIT_I4002',\n description: 'The diff for a single stack',\n interface: 'StackDiff',\n }),\n // 4: Drift (45xx - 49xx)\n CDK_TOOLKIT_I4500: make.trace({\n code: 'CDK_TOOLKIT_I4500',\n description: 'Drift detection is starting',\n interface: 'StackSelectionDetails',\n }),\n CDK_TOOLKIT_I4509: make.result({\n code: 'CDK_TOOLKIT_I4592',\n description: 'Results of the drift',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I4590: make.result({\n code: 'CDK_TOOLKIT_I4590',\n description: 'Results of a stack drift',\n interface: 'DriftResultPayload',\n }),\n CDK_TOOLKIT_W4591: make.warn({\n code: 'CDK_TOOLKIT_W4591',\n description: 'Missing drift result fort a stack.',\n interface: 'SingleStack',\n }),\n // 5: Deploy & Watch (5xxx)\n CDK_TOOLKIT_I5000: make.info({\n code: 'CDK_TOOLKIT_I5000',\n description: 'Provides deployment times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I5001: make.info({\n code: 'CDK_TOOLKIT_I5001',\n description: 'Provides total time in deploy action, including synth and rollback',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I5002: make.info({\n code: 'CDK_TOOLKIT_I5002',\n description: 'Provides time for resource migration',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_W5021: make.warn({\n code: 'CDK_TOOLKIT_W5021',\n description: 'Empty non-existent stack, deployment is skipped',\n }),\n CDK_TOOLKIT_W5022: make.warn({\n code: 'CDK_TOOLKIT_W5022',\n description: 'Empty existing stack, stack will be destroyed',\n }),\n CDK_TOOLKIT_I5031: make.info({\n code: 'CDK_TOOLKIT_I5031',\n description: 'Informs about any log groups that are traced as part of the deployment',\n }),\n CDK_TOOLKIT_I5032: make.debug({\n code: 'CDK_TOOLKIT_I5032',\n description: 'Start monitoring log groups',\n interface: 'CloudWatchLogMonitorControlEvent',\n }),\n CDK_TOOLKIT_I5033: make.info({\n code: 'CDK_TOOLKIT_I5033',\n description: 'A log event received from Cloud Watch',\n interface: 'CloudWatchLogEvent',\n }),\n CDK_TOOLKIT_I5034: make.debug({\n code: 'CDK_TOOLKIT_I5034',\n description: 'Stop monitoring log groups',\n interface: 'CloudWatchLogMonitorControlEvent',\n }),\n CDK_TOOLKIT_E5035: make.error({\n code: 'CDK_TOOLKIT_E5035',\n description: 'A log monitoring error',\n interface: 'ErrorPayload',\n }),\n CDK_TOOLKIT_I5050: make.confirm({\n code: 'CDK_TOOLKIT_I5050',\n description: 'Confirm rollback during deployment',\n interface: 'ConfirmationRequest',\n }),\n CDK_TOOLKIT_I5060: make.confirm({\n code: 'CDK_TOOLKIT_I5060',\n description: 'Confirm deploy security sensitive changes',\n interface: 'DeployConfirmationRequest',\n }),\n CDK_TOOLKIT_I5100: make.info({\n code: 'CDK_TOOLKIT_I5100',\n description: 'Stack deploy progress',\n interface: 'StackDeployProgress',\n }),\n // Assets (52xx)\n CDK_TOOLKIT_I5210: make.trace({\n code: 'CDK_TOOLKIT_I5210',\n description: 'Started building a specific asset',\n interface: 'BuildAsset',\n }),\n CDK_TOOLKIT_I5211: make.trace({\n code: 'CDK_TOOLKIT_I5211',\n description: 'Building the asset has completed',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I5220: make.trace({\n code: 'CDK_TOOLKIT_I5220',\n description: 'Started publishing a specific asset',\n interface: 'PublishAsset',\n }),\n CDK_TOOLKIT_I5221: make.trace({\n code: 'CDK_TOOLKIT_I5221',\n description: 'Publishing the asset has completed',\n interface: 'Duration',\n }),\n CDK_ASSETS_I5270: make.info({\n code: 'CDK_ASSETS_I5270',\n description: 'Publishing the asset has started',\n interface: 'PublishAssetEvent',\n }),\n CDK_ASSETS_I5271: make.debug({\n code: 'CDK_ASSETS_I5271',\n description: 'Debug messaged emitted during publishing of the asset',\n interface: 'PublishAssetEvent',\n }),\n CDK_ASSETS_I5275: make.info({\n code: 'CDK_ASSETS_I5275',\n description: 'Publishing the asset has completed successfully',\n interface: 'PublishAssetEvent',\n }),\n CDK_ASSETS_E5279: make.error({\n code: 'CDK_ASSETS_E5279',\n description: 'There was an error while publishing the asset',\n interface: 'PublishAssetEvent',\n }),\n // Watch (53xx)\n CDK_TOOLKIT_I5310: make.debug({\n code: 'CDK_TOOLKIT_I5310',\n description: 'The computed settings used for file watching',\n interface: 'WatchSettings',\n }),\n CDK_TOOLKIT_I5311: make.info({\n code: 'CDK_TOOLKIT_I5311',\n description: 'File watching started',\n interface: 'FileWatchEvent',\n }),\n CDK_TOOLKIT_I5312: make.info({\n code: 'CDK_TOOLKIT_I5312',\n description: 'File event detected, starting deployment',\n interface: 'FileWatchEvent',\n }),\n CDK_TOOLKIT_I5313: make.info({\n code: 'CDK_TOOLKIT_I5313',\n description: 'File event detected during active deployment, changes are queued',\n interface: 'FileWatchEvent',\n }),\n CDK_TOOLKIT_I5314: make.info({\n code: 'CDK_TOOLKIT_I5314',\n description: 'Initial watch deployment started',\n }),\n CDK_TOOLKIT_I5315: make.info({\n code: 'CDK_TOOLKIT_I5315',\n description: 'Queued watch deployment started',\n }),\n // Hotswap (54xx)\n CDK_TOOLKIT_I5400: make.trace({\n code: 'CDK_TOOLKIT_I5400',\n description: 'Attempting a hotswap deployment',\n interface: 'HotswapDeploymentAttempt',\n }),\n CDK_TOOLKIT_I5401: make.trace({\n code: 'CDK_TOOLKIT_I5401',\n description: 'Computed details for the hotswap deployment',\n interface: 'HotswapDeploymentDetails',\n }),\n CDK_TOOLKIT_I5402: make.info({\n code: 'CDK_TOOLKIT_I5402',\n description: 'A hotswappable change is processed as part of a hotswap deployment',\n interface: 'HotswappableChange',\n }),\n CDK_TOOLKIT_I5403: make.info({\n code: 'CDK_TOOLKIT_I5403',\n description: 'The hotswappable change has completed processing',\n interface: 'HotswappableChange',\n }),\n CDK_TOOLKIT_I5410: make.info({\n code: 'CDK_TOOLKIT_I5410',\n description: 'Hotswap deployment has ended, a full deployment might still follow if needed',\n interface: 'HotswapResult',\n }),\n // Stack Monitor (55xx)\n CDK_TOOLKIT_I5501: make.info({\n code: 'CDK_TOOLKIT_I5501',\n description: 'Stack Monitoring: Start monitoring of a single stack',\n interface: 'StackMonitoringControlEvent',\n }),\n CDK_TOOLKIT_I5502: make.info({\n code: 'CDK_TOOLKIT_I5502',\n description: 'Stack Monitoring: Activity event for a single stack',\n interface: 'StackActivity',\n }),\n CDK_TOOLKIT_I5503: make.info({\n code: 'CDK_TOOLKIT_I5503',\n description: 'Stack Monitoring: Finished monitoring of a single stack',\n interface: 'StackMonitoringControlEvent',\n }),\n // Success (59xx)\n CDK_TOOLKIT_I5900: make.result({\n code: 'CDK_TOOLKIT_I5900',\n description: 'Deployment results on success',\n interface: 'SuccessfulDeployStackResult',\n }),\n CDK_TOOLKIT_I5901: make.info({\n code: 'CDK_TOOLKIT_I5901',\n description: 'Generic deployment success messages',\n }),\n CDK_TOOLKIT_W5400: make.warn({\n code: 'CDK_TOOLKIT_W5400',\n description: 'Hotswap disclosure message',\n }),\n CDK_TOOLKIT_E5001: make.error({\n code: 'CDK_TOOLKIT_E5001',\n description: 'No stacks found',\n }),\n CDK_TOOLKIT_E5500: make.error({\n code: 'CDK_TOOLKIT_E5500',\n description: 'Stack Monitoring error',\n interface: 'ErrorPayload',\n }),\n // 6: Rollback (6xxx)\n CDK_TOOLKIT_I6000: make.info({\n code: 'CDK_TOOLKIT_I6000',\n description: 'Provides rollback times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I6100: make.info({\n code: 'CDK_TOOLKIT_I6100',\n description: 'Stack rollback progress',\n interface: 'StackRollbackProgress',\n }),\n CDK_TOOLKIT_E6001: make.error({\n code: 'CDK_TOOLKIT_E6001',\n description: 'No stacks found',\n }),\n CDK_TOOLKIT_E6900: make.error({\n code: 'CDK_TOOLKIT_E6900',\n description: 'Rollback failed',\n interface: 'ErrorPayload',\n }),\n // 7: Destroy (7xxx)\n CDK_TOOLKIT_I7000: make.info({\n code: 'CDK_TOOLKIT_I7000',\n description: 'Provides destroy times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I7001: make.trace({\n code: 'CDK_TOOLKIT_I7001',\n description: 'Provides destroy time for a single stack',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I7010: make.confirm({\n code: 'CDK_TOOLKIT_I7010',\n description: 'Confirm destroy stacks',\n interface: 'ConfirmationRequest',\n }),\n CDK_TOOLKIT_I7100: make.info({\n code: 'CDK_TOOLKIT_I7100',\n description: 'Stack destroy progress',\n interface: 'StackDestroyProgress',\n }),\n CDK_TOOLKIT_I7101: make.trace({\n code: 'CDK_TOOLKIT_I7101',\n description: 'Start stack destroying',\n interface: 'StackDestroy',\n }),\n CDK_TOOLKIT_I7900: make.result({\n code: 'CDK_TOOLKIT_I7900',\n description: 'Stack deletion succeeded',\n interface: 'cxapi.CloudFormationStackArtifact',\n }),\n CDK_TOOLKIT_E7010: make.error({\n code: 'CDK_TOOLKIT_E7010',\n description: 'Action was aborted due to negative confirmation of request',\n }),\n CDK_TOOLKIT_E7900: make.error({\n code: 'CDK_TOOLKIT_E7900',\n description: 'Stack deletion failed',\n interface: 'ErrorPayload',\n }),\n // 8. Refactor (8xxx)\n CDK_TOOLKIT_E8900: make.error({\n code: 'CDK_TOOLKIT_E8900',\n description: 'Stack refactor failed',\n interface: 'ErrorPayload',\n }),\n CDK_TOOLKIT_I8900: make.result({\n code: 'CDK_TOOLKIT_I8900',\n description: 'Refactor result',\n interface: 'RefactorResult',\n }),\n CDK_TOOLKIT_I8910: make.confirm({\n code: 'CDK_TOOLKIT_I8910',\n description: 'Confirm refactor',\n interface: 'ConfirmationRequest',\n }),\n CDK_TOOLKIT_W8010: make.warn({\n code: 'CDK_TOOLKIT_W8010',\n description: 'Refactor execution not yet supported',\n }),\n // 9: Bootstrap, gc, flags & publish (9xxx)\n CDK_TOOLKIT_I9000: make.info({\n code: 'CDK_TOOLKIT_I9000',\n description: 'Provides bootstrap times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I9100: make.info({\n code: 'CDK_TOOLKIT_I9100',\n description: 'Bootstrap progress',\n interface: 'BootstrapEnvironmentProgress',\n }),\n // gc (92xx)\n CDK_TOOLKIT_I9210: make.question({\n code: 'CDK_TOOLKIT_I9210',\n description: 'Confirm the deletion of a batch of assets',\n interface: 'AssetBatchDeletionRequest',\n }),\n CDK_TOOLKIT_I9900: make.result({\n code: 'CDK_TOOLKIT_I9900',\n description: 'Bootstrap results on success',\n interface: 'cxapi.Environment',\n }),\n CDK_TOOLKIT_E9900: make.error({\n code: 'CDK_TOOLKIT_E9900',\n description: 'Bootstrap failed',\n interface: 'ErrorPayload',\n }),\n // flags (93xx)\n CDK_TOOLKIT_I9300: make.info({\n code: 'CDK_TOOLKIT_I9300',\n description: 'Confirm the feature flag configuration changes',\n interface: 'FeatureFlagChangeRequest',\n }),\n // publish (94xx)\n CDK_TOOLKIT_I9400: make.info({\n code: 'CDK_TOOLKIT_I9400',\n description: 'All assets are already published',\n }),\n CDK_TOOLKIT_I9401: make.info({\n code: 'CDK_TOOLKIT_I9401',\n description: 'Publishing assets',\n interface: 'AssetsPayload',\n }),\n CDK_TOOLKIT_I9402: make.result({\n code: 'CDK_TOOLKIT_I9402',\n description: 'Publish assets results on success',\n interface: 'AssetsPayload',\n }),\n // Notices\n CDK_TOOLKIT_I0100: make.info({\n code: 'CDK_TOOLKIT_I0100',\n description: 'Notices decoration (the header or footer of a list of notices)',\n }),\n CDK_TOOLKIT_W0101: make.warn({\n code: 'CDK_TOOLKIT_W0101',\n description: 'A notice that is marked as a warning',\n }),\n CDK_TOOLKIT_E0101: make.error({\n code: 'CDK_TOOLKIT_E0101',\n description: 'A notice that is marked as an error',\n }),\n CDK_TOOLKIT_I0101: make.info({\n code: 'CDK_TOOLKIT_I0101',\n description: 'A notice that is marked as informational',\n }),\n // Assembly codes\n CDK_ASSEMBLY_I0010: make.debug({\n code: 'CDK_ASSEMBLY_I0010',\n description: 'Generic environment preparation debug messages',\n }),\n CDK_ASSEMBLY_W0010: make.warn({\n code: 'CDK_ASSEMBLY_W0010',\n description: 'Emitted if the found framework version does not support context overflow',\n }),\n CDK_ASSEMBLY_I0042: make.debug({\n code: 'CDK_ASSEMBLY_I0042',\n description: 'Writing context updates',\n interface: 'UpdatedContext',\n }),\n CDK_ASSEMBLY_I0240: make.debug({\n code: 'CDK_ASSEMBLY_I0240',\n description: 'Context lookup was stopped as no further progress was made. ',\n interface: 'MissingContext',\n }),\n CDK_ASSEMBLY_I0241: make.debug({\n code: 'CDK_ASSEMBLY_I0241',\n description: 'Fetching missing context. This is an iterative message that may appear multiple times with different missing keys.',\n interface: 'MissingContext',\n }),\n CDK_ASSEMBLY_I1000: make.debug({\n code: 'CDK_ASSEMBLY_I1000',\n description: 'Cloud assembly output starts',\n }),\n CDK_ASSEMBLY_I1001: make.info({\n code: 'CDK_ASSEMBLY_I1001',\n description: 'Output lines emitted by the cloud assembly to stdout',\n }),\n CDK_ASSEMBLY_E1002: make.error({\n code: 'CDK_ASSEMBLY_E1002',\n description: 'Output lines emitted by the cloud assembly to stderr',\n }),\n CDK_ASSEMBLY_I1003: make.info({\n code: 'CDK_ASSEMBLY_I1003',\n description: 'Cloud assembly output finished',\n }),\n CDK_ASSEMBLY_E1111: make.error({\n code: 'CDK_ASSEMBLY_E1111',\n description: 'Incompatible CDK CLI version. Upgrade needed.',\n interface: 'ErrorPayload',\n }),\n CDK_ASSEMBLY_I0150: make.debug({\n code: 'CDK_ASSEMBLY_I0150',\n description: 'Indicates the use of a pre-synthesized cloud assembly directory',\n }),\n CDK_ASSEMBLY_I0300: make.info({\n code: 'CDK_ASSEMBLY_I0300',\n description: 'An info message emitted by a Context Provider',\n interface: 'ContextProviderMessageSource',\n }),\n CDK_ASSEMBLY_I0301: make.debug({\n code: 'CDK_ASSEMBLY_I0301',\n description: 'A debug message emitted by a Context Provider',\n interface: 'ContextProviderMessageSource',\n }),\n // Assembly Annotations\n CDK_ASSEMBLY_I9999: make.info({\n code: 'CDK_ASSEMBLY_I9999',\n description: 'Annotations emitted by the cloud assembly',\n interface: 'cxapi.SynthesisMessage',\n }),\n CDK_ASSEMBLY_W9999: make.warn({\n code: 'CDK_ASSEMBLY_W9999',\n description: 'Warnings emitted by the cloud assembly',\n interface: 'cxapi.SynthesisMessage',\n }),\n CDK_ASSEMBLY_E9999: make.error({\n code: 'CDK_ASSEMBLY_E9999',\n description: 'Errors emitted by the cloud assembly',\n interface: 'cxapi.SynthesisMessage',\n }),\n // SDK codes\n CDK_SDK_I0100: make.trace({\n code: 'CDK_SDK_I0100',\n description: 'An SDK trace. SDK traces are emitted as traces to the IoHost, but contain the original SDK logging level.',\n interface: 'SdkTrace',\n }),\n CDK_SDK_I1100: make.question({\n code: 'CDK_SDK_I1100',\n description: 'Get an MFA token for an MFA device.',\n interface: 'MfaTokenRequest',\n }),\n};\n//////////////////////////////////////////////////////////////////////////////////////////\n/**\n * Payload type of the end message must extend Duration\n */\nexports.SPAN = {\n SYNTH_ASSEMBLY: {\n name: 'Synthesis',\n start: exports.IO.CDK_TOOLKIT_I1001,\n end: exports.IO.CDK_TOOLKIT_I1000,\n },\n DEPLOY_STACK: {\n name: 'Deployment',\n start: exports.IO.CDK_TOOLKIT_I5100,\n end: exports.IO.CDK_TOOLKIT_I5001,\n },\n ROLLBACK_STACK: {\n name: 'Rollback',\n start: exports.IO.CDK_TOOLKIT_I6100,\n end: exports.IO.CDK_TOOLKIT_I6000,\n },\n DIFF_STACK: {\n name: 'Diff',\n start: exports.IO.CDK_TOOLKIT_I4000,\n end: exports.IO.CDK_TOOLKIT_I4001,\n },\n DRIFT_APP: {\n name: 'Drift',\n start: exports.IO.CDK_TOOLKIT_I4000,\n end: exports.IO.CDK_TOOLKIT_I4509,\n },\n DESTROY_STACK: {\n name: 'Destroy',\n start: exports.IO.CDK_TOOLKIT_I7100,\n end: exports.IO.CDK_TOOLKIT_I7001,\n },\n DESTROY_ACTION: {\n name: 'Destroy',\n start: exports.IO.CDK_TOOLKIT_I7101,\n end: exports.IO.CDK_TOOLKIT_I7000,\n },\n BOOTSTRAP_SINGLE: {\n name: 'Bootstrap',\n start: exports.IO.CDK_TOOLKIT_I9100,\n end: exports.IO.CDK_TOOLKIT_I9000,\n },\n BUILD_ASSET: {\n name: 'Build Asset',\n start: exports.IO.CDK_TOOLKIT_I5210,\n end: exports.IO.CDK_TOOLKIT_I5211,\n },\n PUBLISH_ASSET: {\n name: 'Publish Asset',\n start: exports.IO.CDK_TOOLKIT_I5220,\n end: exports.IO.CDK_TOOLKIT_I5221,\n },\n HOTSWAP: {\n name: 'hotswap-deployment',\n start: exports.IO.CDK_TOOLKIT_I5400,\n end: exports.IO.CDK_TOOLKIT_I5410,\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFnQ3hDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBWTtRQUN0QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFdBQVc7S0FDdkIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXdCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUF1QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBZTtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw4QkFBOEI7UUFDM0MsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFzQjtRQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnRUFBZ0U7UUFDN0UsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQXdCO1FBQ3JELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFnQztRQUM5RCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx5REFBeUQ7UUFDdEUsU0FBUyxFQUFFLCtCQUErQjtLQUMzQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLHdCQUF3QjtJQUN4QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUF3QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx5QkFBeUI7UUFDdEMsU0FBUyxFQUFFLHVCQUF1QjtLQUNuQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBYTtRQUN6QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw0QkFBNEI7UUFDekMsU0FBUyxFQUFFLFlBQVk7S0FDeEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQVk7UUFDeEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLFNBQVMsRUFBRSxXQUFXO0tBQ3ZCLENBQUM7SUFFRix5QkFBeUI7SUFDekIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBd0I7UUFDbkQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLFNBQVMsRUFBRSx1QkFBdUI7S0FDbkMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQVc7UUFDdkMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsc0JBQXNCO1FBQ25DLFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFxQjtRQUNqRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwwQkFBMEI7UUFDdkMsU0FBUyxFQUFFLG9CQUFvQjtLQUNoQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBYztRQUN4QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvQ0FBb0M7UUFDakQsU0FBUyxFQUFFLGFBQWE7S0FDekIsQ0FBQztJQUVGLDJCQUEyQjtJQUMzQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFXO1FBQ3JDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvRUFBb0U7UUFDakYsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQVc7UUFDckMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsc0NBQXNDO1FBQ25ELFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRCxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwrQ0FBK0M7S0FDN0QsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsd0VBQXdFO0tBQ3RGLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFtQztRQUM5RCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw2QkFBNkI7UUFDMUMsU0FBUyxFQUFFLGtDQUFrQztLQUM5QyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBcUI7UUFDL0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsdUNBQXVDO1FBQ3BELFNBQVMsRUFBRSxvQkFBb0I7S0FDaEMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQW1DO1FBQzlELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDRCQUE0QjtRQUN6QyxTQUFTLEVBQUUsa0NBQWtDO0tBQzlDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFlO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBc0I7UUFDbkQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsb0NBQW9DO1FBQ2pELFNBQVMsRUFBRSxxQkFBcUI7S0FDakMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQTRCO1FBQ3pELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxTQUFTLEVBQUUsMkJBQTJCO0tBQ3ZDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFzQjtRQUNoRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWE7UUFDeEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsbUNBQW1DO1FBQ2hELFNBQVMsRUFBRSxZQUFZO0tBQ3hCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFXO1FBQ3RDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGtDQUFrQztRQUMvQyxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQ0FBcUM7UUFDbEQsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQVc7UUFDdEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsb0NBQW9DO1FBQ2pELFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFFRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFvQjtRQUM3QyxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFBRSxrQ0FBa0M7UUFDL0MsU0FBUyxFQUFFLG1CQUFtQjtLQUMvQixDQUFDO0lBQ0YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBb0I7UUFDOUMsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsdURBQXVEO1FBQ3BFLFNBQVMsRUFBRSxtQkFBbUI7S0FDL0IsQ0FBQztJQUNGLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQW9CO1FBQzdDLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsV0FBVyxFQUFFLGlEQUFpRDtRQUM5RCxTQUFTLEVBQUUsbUJBQW1CO0tBQy9CLENBQUM7SUFDRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFvQjtRQUM5QyxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFBRSwrQ0FBK0M7UUFDNUQsU0FBUyxFQUFFLG1CQUFtQjtLQUMvQixDQUFDO0lBRUYsZUFBZTtJQUNmLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWdCO1FBQzNDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDhDQUE4QztRQUMzRCxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBaUI7UUFDM0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsdUJBQXVCO1FBQ3BDLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQWlCO1FBQzNDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDBDQUEwQztRQUN2RCxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFpQjtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxrRUFBa0U7UUFDL0UsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxrQ0FBa0M7S0FDaEQsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaUNBQWlDO0tBQy9DLENBQUM7SUFFRixpQkFBaUI7SUFDakIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBMkI7UUFDdEQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaUNBQWlDO1FBQzlDLFNBQVMsRUFBRSwwQkFBMEI7S0FDdEMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQTJCO1FBQ3RELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDZDQUE2QztRQUMxRCxTQUFTLEVBQUUsMEJBQTBCO0tBQ3RDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFxQjtRQUMvQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvRUFBb0U7UUFDakYsU0FBUyxFQUFFLG9CQUFvQjtLQUNoQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBcUI7UUFDL0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsa0RBQWtEO1FBQy9ELFNBQVMsRUFBRSxvQkFBb0I7S0FDaEMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQWdCO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDhFQUE4RTtRQUMzRixTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDO0lBRUYsdUJBQXVCO0lBQ3ZCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQThCO1FBQ3hELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNEQUFzRDtRQUNuRSxTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFnQjtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxREFBcUQ7UUFDbEUsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQThCO1FBQ3hELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHlEQUF5RDtRQUN0RSxTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDLENBQUM7SUFFRixpQkFBaUI7SUFDakIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBOEI7UUFDMUQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsK0JBQStCO1FBQzVDLFNBQVMsRUFBRSw2QkFBNkI7S0FDekMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUscUNBQXFDO0tBQ25ELENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDRCQUE0QjtLQUMxQyxDQUFDO0lBRUYsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxpQkFBaUI7S0FDL0IsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWU7UUFDMUMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsd0JBQXdCO1FBQ3JDLFNBQVMsRUFBRSxjQUFjO0tBQzFCLENBQUM7SUFFRixxQkFBcUI7SUFDckIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx5QkFBeUI7UUFDdEMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQXdCO1FBQ2xELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHlCQUF5QjtRQUN0QyxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlCQUFpQjtLQUMvQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxpQkFBaUI7UUFDOUIsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLG9CQUFvQjtJQUNwQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFXO1FBQ3JDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBVztRQUN0QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwwQ0FBMEM7UUFDdkQsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQXNCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxTQUFTLEVBQUUscUJBQXFCO0tBQ2pDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUF1QjtRQUNqRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQW9DO1FBQ2hFLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxTQUFTLEVBQUUsbUNBQW1DO0tBQy9DLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDREQUE0RDtLQUMxRSxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLHFCQUFxQjtJQUNyQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFlO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHVCQUF1QjtRQUNwQyxTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDO0lBRUYsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBaUI7UUFDN0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQztJQUVGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQXNCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixTQUFTLEVBQUUscUJBQXFCO0tBQ2pDLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztLQUNwRCxDQUFDO0lBRUYsMkNBQTJDO0lBQzNDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQVc7UUFDckMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsMEJBQTBCO1FBQ3ZDLFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUErQjtRQUN6RCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsU0FBUyxFQUFFLDhCQUE4QjtLQUMxQyxDQUFDO0lBRUYsWUFBWTtJQUNaLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQTRCO1FBQzFELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxTQUFTLEVBQUUsMkJBQTJCO0tBQ3ZDLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFxQztRQUNqRSxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw4QkFBOEI7UUFDM0MsU0FBUyxFQUFFLG1CQUFtQjtLQUMvQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxrQkFBa0I7UUFDL0IsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGVBQWU7SUFDZixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUEyQjtRQUNyRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnREFBZ0Q7UUFDN0QsU0FBUyxFQUFFLDBCQUEwQjtLQUN0QyxDQUFDO0lBRUYsaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsa0NBQWtDO0tBQ2hELENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFnQjtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxtQkFBbUI7UUFDaEMsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQWdCO1FBQzVDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLG1DQUFtQztRQUNoRCxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDO0lBRUYsVUFBVTtJQUNWLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsZ0VBQWdFO0tBQzlFLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztLQUNwRCxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQ0FBcUM7S0FDbkQsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsMENBQTBDO0tBQ3hELENBQUM7SUFFRixpQkFBaUI7SUFDakIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSxnREFBZ0Q7S0FDOUQsQ0FBQztJQUNGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsMEVBQTBFO0tBQ3hGLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFpQjtRQUM3QyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSx5QkFBeUI7UUFDdEMsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QixDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBaUI7UUFDN0MsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsOERBQThEO1FBQzNFLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQztJQUNGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWlCO1FBQzdDLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLG9IQUFvSDtRQUNqSSxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLDhCQUE4QjtLQUM1QyxDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSxzREFBc0Q7S0FDcEUsQ0FBQztJQUNGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsc0RBQXNEO0tBQ3BFLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLGdDQUFnQztLQUM5QyxDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMzQyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSwrQ0FBK0M7UUFDNUQsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQVE7UUFDcEMsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsaUVBQWlFO0tBQy9FLENBQUM7SUFFRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUErQjtRQUMxRCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSwrQ0FBK0M7UUFDNUQsU0FBUyxFQUFFLDhCQUE4QjtLQUMxQyxDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBK0I7UUFDM0QsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsK0NBQStDO1FBQzVELFNBQVMsRUFBRSw4QkFBOEI7S0FDMUMsQ0FBQztJQUVGLHVCQUF1QjtJQUN2QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUF5QjtRQUNwRCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSwyQ0FBMkM7UUFDeEQsU0FBUyxFQUFFLHdCQUF3QjtLQUNwQyxDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBeUI7UUFDcEQsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsd0NBQXdDO1FBQ3JELFNBQVMsRUFBRSx3QkFBd0I7S0FDcEMsQ0FBQztJQUNGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXlCO1FBQ3JELElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsd0JBQXdCO0tBQ3BDLENBQUM7SUFFRixZQUFZO0lBQ1osYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQVc7UUFDbEMsSUFBSSxFQUFFLGVBQWU7UUFDckIsV0FBVyxFQUFFLDJHQUEyRztRQUN4SCxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0lBQ0YsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQWtCO1FBQzVDLElBQUksRUFBRSxlQUFlO1FBQ3JCLFdBQVcsRUFBRSxxQ0FBcUM7UUFDbEQsU0FBUyxFQUFFLGlCQUFpQjtLQUM3QixDQUFDO0NBQ0gsQ0FBQztBQUVGLDBGQUEwRjtBQUUxRjs7R0FFRztBQUNVLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxXQUFXO1FBQ2pCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsWUFBWSxFQUFFO1FBQ1osSUFBSSxFQUFFLFlBQVk7UUFDbEIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsVUFBVTtRQUNoQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixJQUFJLEVBQUUsV0FBVztRQUNqQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxhQUFhO1FBQ25CLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0NBQ2lELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IFNwYW5EZWZpbml0aW9uIH0gZnJvbSAnLi9zcGFuJztcbmltcG9ydCB0eXBlIHsgU3RhY2tEaWZmLCBEaWZmUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHR5cGUgeyBCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvYm9vdHN0cmFwLWVudmlyb25tZW50LXByb2dyZXNzJztcbmltcG9ydCB0eXBlIHsgTWlzc2luZ0NvbnRleHQsIFVwZGF0ZWRDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkQXNzZXQsIERlcGxveUNvbmZpcm1hdGlvblJlcXVlc3QsIFB1Ymxpc2hBc3NldCwgUHVibGlzaEFzc2V0RXZlbnQsIFN0YWNrRGVwbG95UHJvZ3Jlc3MsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RlcGxveSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGVzdHJveSwgU3RhY2tEZXN0cm95UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXN0cm95JztcbmltcG9ydCB0eXBlIHsgRHJpZnRSZXN1bHRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZHJpZnQnO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlRmxhZ0NoYW5nZVJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9mbGFncyc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0QmF0Y2hEZWxldGlvblJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9nYyc7XG5pbXBvcnQgdHlwZSB7IEhvdHN3YXBEZXBsb3ltZW50RGV0YWlscywgSG90c3dhcERlcGxveW1lbnRBdHRlbXB0LCBIb3Rzd2FwcGFibGVDaGFuZ2UsIEhvdHN3YXBSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9ob3Rzd2FwJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VJZGVudGlmaWNhdGlvblJlcXVlc3QsIFJlc291cmNlSW1wb3J0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2ltcG9ydCc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGV0YWlsc1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9saXN0JztcbmltcG9ydCB0eXBlIHsgQ2xvdWRXYXRjaExvZ0V2ZW50LCBDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2xvZ3MtbW9uaXRvcic7XG5pbXBvcnQgdHlwZSB7IEFzc2V0c1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9wdWJsaXNoLWFzc2V0cyc7XG5pbXBvcnQgdHlwZSB7IFJlZmFjdG9yUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcmVmYWN0b3InO1xuaW1wb3J0IHR5cGUgeyBTdGFja1JvbGxiYWNrUHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9yb2xsYmFjayc7XG5pbXBvcnQgdHlwZSB7IE1mYVRva2VuUmVxdWVzdCwgU2RrVHJhY2UgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zZGsnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0FjdGl2aXR5LCBTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zdGFjay1hY3Rpdml0eSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0aW9uRGV0YWlscyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3N5bnRoJztcbmltcG9ydCB0eXBlIHtcbiAgQXNzZW1ibHlEYXRhLFxuICBDb25maXJtYXRpb25SZXF1ZXN0LFxuICBDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlLFxuICBEdXJhdGlvbixcbiAgRXJyb3JQYXlsb2FkLFxuICBPcGVyYXRpb24sXG4gIFNpbmdsZVN0YWNrLFxuICBTdGFja0FuZEFzc2VtYmx5RGF0YSxcbn0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBGaWxlV2F0Y2hFdmVudCwgV2F0Y2hTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3dhdGNoJztcblxuLyoqXG4gKiBXZSBoYXZlIGEgcm91Z2ggc3lzdGVtIGJ5IHdoaWNoIHdlIGFzc2lnbiBtZXNzYWdlIGNvZGVzOlxuICogLSBGaXJzdCBkaWdpdCBncm91cHMgbWVzc2FnZXMgYnkgYWN0aW9uLCBlLmcuIHN5bnRoIG9yIGRlcGxveVxuICogLSBYMDAwLVgwMDkgYXJlIHJlc2VydmVkIGZvciB0aW1pbmdzXG4gKiAtIFg5MDAtWDk5OSBhcmUgcmVzZXJ2ZWQgZm9yIHJlc3VsdHNcbiAqL1xuZXhwb3J0IGNvbnN0IElPID0ge1xuICAvLyB3YXJuaW5ncyAmIGVycm9yc1xuICBDREtfVE9PTEtJVF9XMDEwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3JlZGVudGlhbCBwbHVnaW4gd2FybmluZ3MnLFxuICB9KSxcblxuICAvLyAxOiBTeW50aCAoMXh4eClcbiAgQ0RLX1RPT0xLSVRfSTEwMDA6IG1ha2UuaW5mbzxPcGVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTEwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgc3ludGhlc2lzIHRpbWVzLicsXG4gICAgaW50ZXJmYWNlOiAnT3BlcmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxMDAxOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBBc3NlbWJseSBzeW50aGVzaXMgaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTkwMTogbWFrZS5yZXN1bHQ8U3RhY2tBbmRBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgc3RhY2sgZGF0YScsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tBbmRBc3NlbWJseURhdGEnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDI6IG1ha2UucmVzdWx0PEFzc2VtYmx5RGF0YT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTkwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsbHkgZGVwbG95ZWQgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NlbWJseURhdGEnLFxuICB9KSxcblxuICAvLyAyOiBMaXN0ICgyeHh4KVxuICBDREtfVE9PTEtJVF9JMjkwMTogbWFrZS5yZXN1bHQ8U3RhY2tEZXRhaWxzUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMjkwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXRhaWxzIG9uIHRoZSBzZWxlY3RlZCBzdGFja3MgYW5kIHRoZWlyIGRlcGVuZGVuY2llcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXRhaWxzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDM6IEltcG9ydCAmIE1pZ3JhdGVcbiAgQ0RLX1RPT0xLSVRfSTMxMDA6IG1ha2UuY29uZmlybTxSZXNvdXJjZUltcG9ydFJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTMxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgaW1wb3J0IG9mIGEgc3BlY2lmaWMgcmVzb3VyY2UnLFxuICAgIGludGVyZmFjZTogJ1Jlc291cmNlSW1wb3J0UmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMzExMDogbWFrZS5xdWVzdGlvbjxSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMzExMCcsXG4gICAgZGVzY3JpcHRpb246ICdBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byBpZGVudGlmeSBhIHJlc291cmNlJyxcbiAgICBpbnRlcmZhY2U6ICdSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMzkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTM5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgaW1wb3J0IGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNDogRGlmZiAoNDB4eCAtIDQ0eHgpXG4gIENES19UT09MS0lUX0k0MDAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEaWZmIHN0YWNrcyBpcyBzdGFydGluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tTZWxlY3Rpb25EZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAxOiBtYWtlLnJlc3VsdDxEaWZmUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kJyxcbiAgICBpbnRlcmZhY2U6ICdEaWZmUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAyOiBtYWtlLnJlc3VsdDxTdGFja0RpZmY+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGRpZmYgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RpZmYnLFxuICB9KSxcblxuICAvLyA0OiBEcmlmdCAoNDV4eCAtIDQ5eHgpXG4gIENES19UT09MS0lUX0k0NTAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDUwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEcmlmdCBkZXRlY3Rpb24gaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDUwOTogbWFrZS5yZXN1bHQ8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTInLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiB0aGUgZHJpZnQnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0NTkwOiBtYWtlLnJlc3VsdDxEcmlmdFJlc3VsdFBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiBhIHN0YWNrIGRyaWZ0JyxcbiAgICBpbnRlcmZhY2U6ICdEcmlmdFJlc3VsdFBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzQ1OTE6IG1ha2Uud2FybjxTaW5nbGVTdGFjaz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNDU5MScsXG4gICAgZGVzY3JpcHRpb246ICdNaXNzaW5nIGRyaWZ0IHJlc3VsdCBmb3J0IGEgc3RhY2suJyxcbiAgICBpbnRlcmZhY2U6ICdTaW5nbGVTdGFjaycsXG4gIH0pLFxuXG4gIC8vIDU6IERlcGxveSAmIFdhdGNoICg1eHh4KVxuICBDREtfVE9PTEtJVF9JNTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlcGxveW1lbnQgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDAxOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgdG90YWwgdGltZSBpbiBkZXBsb3kgYWN0aW9uLCBpbmNsdWRpbmcgc3ludGggYW5kIHJvbGxiYWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMjogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRpbWUgZm9yIHJlc291cmNlIG1pZ3JhdGlvbicsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzUwMjE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1MDIxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtcHR5IG5vbi1leGlzdGVudCBzdGFjaywgZGVwbG95bWVudCBpcyBza2lwcGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIyOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMicsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBleGlzdGluZyBzdGFjaywgc3RhY2sgd2lsbCBiZSBkZXN0cm95ZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZm9ybXMgYWJvdXQgYW55IGxvZyBncm91cHMgdGhhdCBhcmUgdHJhY2VkIGFzIHBhcnQgb2YgdGhlIGRlcGxveW1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzI6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzMzogbWFrZS5pbmZvPENsb3VkV2F0Y2hMb2dFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMycsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBldmVudCByZWNlaXZlZCBmcm9tIENsb3VkIFdhdGNoJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzQ6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzQnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RvcCBtb25pdG9yaW5nIGxvZyBncm91cHMnLFxuICAgIGludGVyZmFjZTogJ0Nsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U1MDM1OiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAzNScsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBtb25pdG9yaW5nIGVycm9yJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcm9sbGJhY2sgZHVyaW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNjA6IG1ha2UuY29uZmlybTxEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDYwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gZGVwbG95IHNlY3VyaXR5IHNlbnNpdGl2ZSBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MTAwOiBtYWtlLmluZm88U3RhY2tEZXBsb3lQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZXBsb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVwbG95UHJvZ3Jlc3MnLFxuICB9KSxcblxuICAvLyBBc3NldHMgKDUyeHgpXG4gIENES19UT09MS0lUX0k1MjEwOiBtYWtlLnRyYWNlPEJ1aWxkQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBidWlsZGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdCdWlsZEFzc2V0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MjExOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0J1aWxkaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMDogbWFrZS50cmFjZTxQdWJsaXNoQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBwdWJsaXNoaW5nIGEgc3BlY2lmaWMgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIyMScsXG4gICAgZGVzY3JpcHRpb246ICdQdWJsaXNoaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuXG4gIENES19BU1NFVFNfSTUyNzA6IG1ha2UuaW5mbzxQdWJsaXNoQXNzZXRFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRVRTX0k1MjcwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgdGhlIGFzc2V0IGhhcyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuICBDREtfQVNTRVRTX0k1MjcxOiBtYWtlLmRlYnVnPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfSTUyNzEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVidWcgbWVzc2FnZWQgZW1pdHRlZCBkdXJpbmcgcHVibGlzaGluZyBvZiB0aGUgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldEV2ZW50JyxcbiAgfSksXG4gIENES19BU1NFVFNfSTUyNzU6IG1ha2UuaW5mbzxQdWJsaXNoQXNzZXRFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRVRTX0k1Mjc1JyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgdGhlIGFzc2V0IGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuICBDREtfQVNTRVRTX0U1Mjc5OiBtYWtlLmVycm9yPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfRTUyNzknLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHB1Ymxpc2hpbmcgdGhlIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuXG4gIC8vIFdhdGNoICg1M3h4KVxuICBDREtfVE9PTEtJVF9JNTMxMDogbWFrZS5kZWJ1ZzxXYXRjaFNldHRpbmdzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBjb21wdXRlZCBzZXR0aW5ncyB1c2VkIGZvciBmaWxlIHdhdGNoaW5nJyxcbiAgICBpbnRlcmZhY2U6ICdXYXRjaFNldHRpbmdzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzExOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSB3YXRjaGluZyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMjogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQsIHN0YXJ0aW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzEzOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTMnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSBldmVudCBkZXRlY3RlZCBkdXJpbmcgYWN0aXZlIGRlcGxveW1lbnQsIGNoYW5nZXMgYXJlIHF1ZXVlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTQ6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzE0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0luaXRpYWwgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE1OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNScsXG4gICAgZGVzY3JpcHRpb246ICdRdWV1ZWQgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG5cbiAgLy8gSG90c3dhcCAoNTR4eClcbiAgQ0RLX1RPT0xLSVRfSTU0MDA6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnRBdHRlbXB0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0F0dGVtcHRpbmcgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMTogbWFrZS50cmFjZTxIb3Rzd2FwRGVwbG95bWVudERldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29tcHV0ZWQgZGV0YWlscyBmb3IgdGhlIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcERlcGxveW1lbnREZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAyOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgaG90c3dhcHBhYmxlIGNoYW5nZSBpcyBwcm9jZXNzZWQgYXMgcGFydCBvZiBhIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAzOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBob3Rzd2FwcGFibGUgY2hhbmdlIGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZycsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDEwOiBtYWtlLmluZm88SG90c3dhcFJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQxMCcsXG4gICAgZGVzY3JpcHRpb246ICdIb3Rzd2FwIGRlcGxveW1lbnQgaGFzIGVuZGVkLCBhIGZ1bGwgZGVwbG95bWVudCBtaWdodCBzdGlsbCBmb2xsb3cgaWYgbmVlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwUmVzdWx0JyxcbiAgfSksXG5cbiAgLy8gU3RhY2sgTW9uaXRvciAoNTV4eClcbiAgQ0RLX1RPT0xLSVRfSTU1MDE6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogU3RhcnQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAyOiBtYWtlLmluZm88U3RhY2tBY3Rpdml0eT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTUwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nOiBBY3Rpdml0eSBldmVudCBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQWN0aXZpdHknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU1MDM6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogRmluaXNoZWQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG5cbiAgLy8gU3VjY2VzcyAoNTl4eClcbiAgQ0RLX1RPT0xLSVRfSTU5MDA6IG1ha2UucmVzdWx0PFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEZXBsb3ltZW50IHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1OTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGRlcGxveW1lbnQgc3VjY2VzcyBtZXNzYWdlcycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTQwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzU0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkaXNjbG9zdXJlIG1lc3NhZ2UnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNTAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTUwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTU1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNjogUm9sbGJhY2sgKDZ4eHgpXG4gIENES19UT09MS0lUX0k2MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTYwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgcm9sbGJhY2sgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k2MTAwOiBtYWtlLmluZm88U3RhY2tSb2xsYmFja1Byb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIHJvbGxiYWNrIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1JvbGxiYWNrUHJvZ3Jlc3MnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNjAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNjkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTY5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUm9sbGJhY2sgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA3OiBEZXN0cm95ICg3eHh4KVxuICBDREtfVE9PTEtJVF9JNzAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDAxOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZSBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDEwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlc3Ryb3kgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAwOiBtYWtlLmluZm88U3RhY2tEZXN0cm95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVzdHJveSBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXN0cm95UHJvZ3Jlc3MnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcxMDE6IG1ha2UudHJhY2U8U3RhY2tEZXN0cm95Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IHN0YWNrIGRlc3Ryb3lpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveScsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k3OTAwOiBtYWtlLnJlc3VsdDxjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTc5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVsZXRpb24gc3VjY2VlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNzAxMDogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3MDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FjdGlvbiB3YXMgYWJvcnRlZCBkdWUgdG8gbmVnYXRpdmUgY29uZmlybWF0aW9uIG9mIHJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTc5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gOC4gUmVmYWN0b3IgKDh4eHgpXG4gIENES19UT09MS0lUX0U4OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByZWZhY3RvciBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k4OTAwOiBtYWtlLnJlc3VsdDxSZWZhY3RvclJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciByZXN1bHQnLFxuICAgIGludGVyZmFjZTogJ1JlZmFjdG9yUmVzdWx0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTg5MTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k4OTEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcmVmYWN0b3InLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9XODAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzgwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgZXhlY3V0aW9uIG5vdCB5ZXQgc3VwcG9ydGVkJyxcbiAgfSksXG5cbiAgLy8gOTogQm9vdHN0cmFwLCBnYywgZmxhZ3MgJiBwdWJsaXNoICg5eHh4KVxuICBDREtfVE9PTEtJVF9JOTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGJvb3RzdHJhcCB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTkxMDA6IG1ha2UuaW5mbzxCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcycsXG4gIH0pLFxuXG4gIC8vIGdjICg5Mnh4KVxuICBDREtfVE9PTEtJVF9JOTIxMDogbWFrZS5xdWVzdGlvbjxBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gdGhlIGRlbGV0aW9uIG9mIGEgYmF0Y2ggb2YgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTk5MDA6IG1ha2UucmVzdWx0PHsgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50IH0+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuRW52aXJvbm1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTk5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIGZsYWdzICg5M3h4KVxuICBDREtfVE9PTEtJVF9JOTMwMDogbWFrZS5pbmZvPEZlYXR1cmVGbGFnQ2hhbmdlUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIHRoZSBmZWF0dXJlIGZsYWcgY29uZmlndXJhdGlvbiBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdGZWF0dXJlRmxhZ0NoYW5nZVJlcXVlc3QnLFxuICB9KSxcblxuICAvLyBwdWJsaXNoICg5NHh4KVxuICBDREtfVE9PTEtJVF9JOTQwMDogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQWxsIGFzc2V0cyBhcmUgYWxyZWFkeSBwdWJsaXNoZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTk0MDE6IG1ha2UuaW5mbzxBc3NldHNQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5NDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldHNQYXlsb2FkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k5NDAyOiBtYWtlLnJlc3VsdDxBc3NldHNQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2ggYXNzZXRzIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnQXNzZXRzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIE5vdGljZXNcbiAgQ0RLX1RPT0xLSVRfSTAxMDA6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vdGljZXMgZGVjb3JhdGlvbiAodGhlIGhlYWRlciBvciBmb290ZXIgb2YgYSBsaXN0IG9mIG5vdGljZXMpJyxcbiAgfSksXG4gIENES19UT09MS0lUX1cwMTAxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhIHdhcm5pbmcnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTAxMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhbiBlcnJvcicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMDEwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBub3RpY2UgdGhhdCBpcyBtYXJrZWQgYXMgaW5mb3JtYXRpb25hbCcsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IGNvZGVzXG4gIENES19BU1NFTUJMWV9JMDAxMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGVudmlyb25tZW50IHByZXBhcmF0aW9uIGRlYnVnIG1lc3NhZ2VzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XMDAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1cwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtaXR0ZWQgaWYgdGhlIGZvdW5kIGZyYW1ld29yayB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgY29udGV4dCBvdmVyZmxvdycsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAwNDI6IG1ha2UuZGVidWc8VXBkYXRlZENvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDQyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1dyaXRpbmcgY29udGV4dCB1cGRhdGVzJyxcbiAgICBpbnRlcmZhY2U6ICdVcGRhdGVkQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDA6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbnRleHQgbG9va3VwIHdhcyBzdG9wcGVkIGFzIG5vIGZ1cnRoZXIgcHJvZ3Jlc3Mgd2FzIG1hZGUuICcsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMjQxOiBtYWtlLmRlYnVnPE1pc3NpbmdDb250ZXh0Pih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDI0MScsXG4gICAgZGVzY3JpcHRpb246ICdGZXRjaGluZyBtaXNzaW5nIGNvbnRleHQuIFRoaXMgaXMgYW4gaXRlcmF0aXZlIG1lc3NhZ2UgdGhhdCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1pc3Npbmcga2V5cy4nLFxuICAgIGludGVyZmFjZTogJ01pc3NpbmdDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgc3RhcnRzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRvdXQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMDAyOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRlcnInLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAzOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgYXNzZW1ibHkgb3V0cHV0IGZpbmlzaGVkJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FMTExMTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMTExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luY29tcGF0aWJsZSBDREsgQ0xJIHZlcnNpb24uIFVwZ3JhZGUgbmVlZGVkLicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgQ0RLX0FTU0VNQkxZX0kwMTUwOiBtYWtlLmRlYnVnPG5ldmVyPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDE1MCcsXG4gICAgZGVzY3JpcHRpb246ICdJbmRpY2F0ZXMgdGhlIHVzZSBvZiBhIHByZS1zeW50aGVzaXplZCBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnknLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAzMDA6IG1ha2UuaW5mbzxDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBbiBpbmZvIG1lc3NhZ2UgZW1pdHRlZCBieSBhIENvbnRleHQgUHJvdmlkZXInLFxuICAgIGludGVyZmFjZTogJ0NvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMzAxOiBtYWtlLmRlYnVnPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgZGVidWcgbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IEFubm90YXRpb25zXG4gIENES19BU1NFTUJMWV9JOTk5OTogbWFrZS5pbmZvPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0k5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Fubm90YXRpb25zIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XOTk5OTogbWFrZS53YXJuPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1c5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1dhcm5pbmdzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FOTk5OTogbWFrZS5lcnJvcjxjeGFwaS5TeW50aGVzaXNNZXNzYWdlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9FOTk5OScsXG4gICAgZGVzY3JpcHRpb246ICdFcnJvcnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcblxuICAvLyBTREsgY29kZXNcbiAgQ0RLX1NES19JMDEwMDogbWFrZS50cmFjZTxTZGtUcmFjZT4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIFNESyB0cmFjZS4gU0RLIHRyYWNlcyBhcmUgZW1pdHRlZCBhcyB0cmFjZXMgdG8gdGhlIElvSG9zdCwgYnV0IGNvbnRhaW4gdGhlIG9yaWdpbmFsIFNESyBsb2dnaW5nIGxldmVsLicsXG4gICAgaW50ZXJmYWNlOiAnU2RrVHJhY2UnLFxuICB9KSxcbiAgQ0RLX1NES19JMTEwMDogbWFrZS5xdWVzdGlvbjxNZmFUb2tlblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1NES19JMTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYW4gTUZBIHRva2VuIGZvciBhbiBNRkEgZGV2aWNlLicsXG4gICAgaW50ZXJmYWNlOiAnTWZhVG9rZW5SZXF1ZXN0JyxcbiAgfSksXG59O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBQYXlsb2FkIHR5cGUgb2YgdGhlIGVuZCBtZXNzYWdlIG11c3QgZXh0ZW5kIER1cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBTUEFOID0ge1xuICBTWU5USF9BU1NFTUJMWToge1xuICAgIG5hbWU6ICdTeW50aGVzaXMnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JMTAwMSxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0kxMDAwLFxuICB9LFxuICBERVBMT1lfU1RBQ0s6IHtcbiAgICBuYW1lOiAnRGVwbG95bWVudCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MTAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUwMDEsXG4gIH0sXG4gIFJPTExCQUNLX1NUQUNLOiB7XG4gICAgbmFtZTogJ1JvbGxiYWNrJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTYxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNjAwMCxcbiAgfSxcbiAgRElGRl9TVEFDSzoge1xuICAgIG5hbWU6ICdEaWZmJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTQwMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNDAwMSxcbiAgfSxcbiAgRFJJRlRfQVBQOiB7XG4gICAgbmFtZTogJ0RyaWZ0JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTQwMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNDUwOSxcbiAgfSxcbiAgREVTVFJPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMSxcbiAgfSxcbiAgREVTVFJPWV9BQ1RJT046IHtcbiAgICBuYW1lOiAnRGVzdHJveScsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k3MTAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTcwMDAsXG4gIH0sXG4gIEJPT1RTVFJBUF9TSU5HTEU6IHtcbiAgICBuYW1lOiAnQm9vdHN0cmFwJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTkxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JOTAwMCxcbiAgfSxcbiAgQlVJTERfQVNTRVQ6IHtcbiAgICBuYW1lOiAnQnVpbGQgQXNzZXQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTIxMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1MjExLFxuICB9LFxuICBQVUJMSVNIX0FTU0VUOiB7XG4gICAgbmFtZTogJ1B1Ymxpc2ggQXNzZXQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTIyMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1MjIxLFxuICB9LFxuICBIT1RTV0FQOiB7XG4gICAgbmFtZTogJ2hvdHN3YXAtZGVwbG95bWVudCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1NDAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTU0MTAsXG4gIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBTcGFuRGVmaW5pdGlvbjxhbnksIGFueT4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpanMaker = void 0;\nconst util = require(\"node:util\");\nconst uuid = require(\"uuid\");\nconst util_1 = require(\"../../../util\");\n/**\n * Helper class to make spans around blocks of work\n *\n * Blocks are enclosed by a start and end message.\n * All messages of the span share a unique id.\n * The end message contains the time passed between start and end.\n */\nclass SpanMaker {\n definition;\n ioHelper;\n makeHelper;\n constructor(ioHelper, definition, makeHelper) {\n this.definition = definition;\n this.ioHelper = ioHelper;\n this.makeHelper = makeHelper;\n }\n async begin(a, b) {\n const span = new MessageSpan(this.ioHelper, this.definition, this.makeHelper);\n const startInput = parseArgs(a, b);\n const startMsg = startInput.message ?? `Starting ${this.definition.name} ...`;\n const startPayload = startInput.payload;\n await span.notify(this.definition.start.msg(startMsg, startPayload));\n return span;\n }\n}\nexports.SpanMaker = SpanMaker;\nclass MessageSpan {\n asHelper;\n definition;\n ioHelper;\n spanId;\n startTime;\n timingMsgTemplate;\n counters = {};\n openTimers = new Set();\n constructor(ioHelper, definition, makeHelper) {\n this.definition = definition;\n this.ioHelper = ioHelper;\n this.spanId = uuid.v4();\n this.startTime = new Date().getTime();\n this.timingMsgTemplate = '\\n✨ %s time: %ds\\n';\n this.asHelper = makeHelper(this);\n }\n get defaults() {\n return this.asHelper.defaults;\n }\n async elapsedTime() {\n return this.time();\n }\n async timing(maker, message) {\n const duration = this.time();\n const timingMsg = message ? message : util.format(this.timingMsgTemplate, this.definition.name, duration.asSec);\n await this.notify(maker.msg(timingMsg, {\n duration: duration.asMs,\n }));\n return duration;\n }\n async notify(msg) {\n return this.ioHelper.notify(withSpanId(this.spanId, msg));\n }\n async end(x, y) {\n const duration = this.time();\n for (const t of this.openTimers) {\n t.stop();\n }\n this.openTimers.clear();\n const endInput = parseArgs(x, y);\n const endMsg = endInput.message ?? util.format(this.timingMsgTemplate, this.definition.name, duration.asSec);\n const endPayload = endInput.payload;\n await this.notify(this.definition.end.msg(endMsg, {\n duration: duration.asMs,\n ...(Object.keys(this.counters).length > 0 ? { counters: this.counters } : {}),\n ...endPayload,\n }));\n return duration;\n }\n incCounter(name, delta = 1) {\n this.counters[name] = (this.counters[name] ?? 0) + delta;\n }\n async requestResponse(msg) {\n return this.ioHelper.requestResponse(withSpanId(this.spanId, msg));\n }\n startTimer(name) {\n const start = Date.now();\n const t = {\n stop: () => {\n this.openTimers.delete(t);\n this.incCounter(`${name}_ms`, Math.floor(Date.now() - start) / 1000);\n this.incCounter(`${name}_cnt`, 1);\n },\n };\n this.openTimers.add(t);\n return t;\n }\n time() {\n const elapsedTime = new Date().getTime() - this.startTime;\n return {\n asMs: elapsedTime,\n asSec: (0, util_1.formatTime)(elapsedTime),\n };\n }\n}\nfunction parseArgs(first, second) {\n const firstIsMessage = typeof first === 'string';\n // When the first argument is a string or we have a second argument, then the first arg is the message\n const message = (firstIsMessage || second) ? first : undefined;\n // When the first argument is a string or we have a second argument,\n // then the second arg is the payload, otherwise the first arg is the payload\n const payload = (firstIsMessage || second) ? second : first;\n return {\n message,\n payload,\n };\n}\nfunction withSpanId(span, message) {\n return {\n ...message,\n span,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNwYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQWtDO0FBQ2xDLDZCQUE2QjtBQUk3Qix3Q0FBMkM7QUEySDNDOzs7Ozs7R0FNRztBQUNILE1BQWEsU0FBUztJQUNILFVBQVUsQ0FBdUI7SUFDakMsUUFBUSxDQUFXO0lBQzVCLFVBQVUsQ0FBMkM7SUFFN0QsWUFBbUIsUUFBa0IsRUFBRSxVQUFnQyxFQUFFLFVBQW9EO1FBQzNILElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFRTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQU0sRUFBRSxDQUFLO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxJQUFJLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUM5RSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUExQkQsOEJBMEJDO0FBRUQsTUFBTSxXQUFXO0lBQ0MsUUFBUSxDQUFXO0lBRWxCLFVBQVUsQ0FBdUI7SUFDakMsUUFBUSxD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Q0FBQztRQUMxRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLElBQUEsaUJBQVUsRUFBQyxXQUFXLENBQUM7U0FDL0IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELFNBQVMsU0FBUyxDQUFJLEtBQVUsRUFBRSxNQUFVO0lBQzFDLE1BQU0sY0FBYyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUVqRCxzR0FBc0c7SUFDdEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRS9ELG9FQUFvRTtJQUNwRSw2RUFBNkU7SUFDN0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPO1FBQ1AsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQW1CLElBQVksRUFBRSxPQUFVO0lBQzVELE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25MZXNzTWVzc2FnZSwgQWN0aW9uTGVzc1JlcXVlc3QsIElvSGVscGVyIH0gZnJvbSAnLi9pby1oZWxwZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHsgZm9ybWF0VGltZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uQXdhcmVJb0hvc3QgfSBmcm9tICcuLi9pby1ob3N0JztcbmltcG9ydCB0eXBlIHsgSW9EZWZhdWx0TWVzc2FnZXMgfSBmcm9tICcuL2lvLWRlZmF1bHQtbWVzc2FnZXMnO1xuXG4vKipcbiAqIFRoZXNlIGRhdGEgZmllbGRzIGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGJ5IGVuZGluZyBhIHNwYW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFuRW5kIHtcbiAgcmVhZG9ubHkgZHVyYXRpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgY291bnRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNwZWNpZmljIHNwYW5cbiAqXG4gKiBBIHNwYW4gZGVmaW5pdGlvbiBpcyBhIHBhaXIgb2YgYElvTWVzc2FnZU1ha2VyYHMgdG8gY3JlYXRlIGEgc3RhcnQgYW5kIGVuZCBtZXNzYWdlIG9mIHRoZSBzcGFuIHJlc3BlY3RpdmVseS5cbiAqIEl0IGFsc28gaGFzIGEgZGlzcGxheSBuYW1lLCB0aGF0IGlzIHVzZWQgZm9yIGF1dG8tZ2VuZXJhdGVkIG1lc3NhZ2UgdGV4dCB3aGVuIHRoZXkgYXJlIG5vdCBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFuRGVmaW5pdGlvbjxTIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgU3BhbkVuZD4ge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXJ0OiBtYWtlLklvTWVzc2FnZU1ha2VyPFM+O1xuICByZWFkb25seSBlbmQ6IG1ha2UuSW9NZXNzYWdlTWFrZXI8RT47XG59XG5cbi8qKlxuICogQXJndW1lbnRzIHRvIHRoZSBzcGFuLmVuZCgpIGZ1bmN0aW9uXG4gKlxuICogYFNwYW5FbmRBcmd1bWVudHM8VD5gIGFyZSB0aGUgZmllbGRzIHRoYXQgYSB1c2VyIHN0aWxsIG5lZWRzIHRvIHN1cHBseSwgaXRcbiAqIGZpZWxkcyBpbiB0aGUgdHlwZSBgVGAgdGhhdCBhcmVuJ3QgYWxzbyBpbiBgU3BhbkVuZGAuIGBTcGFuRW5kYCByZXByZXNlbnRzXG4gKiBmaWVsZHMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBhZGRlZCBieSB0aGUgdW5kZXJseWluZyBgZW5kYCBmdW5jdGlvbi5cbiAqXG4gKiBGaWVsZHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBgU3BhbkVuZGAgYXJlIHN0aWxsIHJlbmRlcmVkIGFzIG9wdGlvbmFscywgc28geW91XG4gKiBjYW4gb3ZlcnJpZGUgdGhlbSAoYnV0IHlvdSBkb24ndCBoYXZlIHRvKS5cbiAqXG4gKiAtIERvZXMgdGhlIGZvbGxvd2luZzogZmllbGRzIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIGBUYCBhbmQgYFNwYW5FbmRgIGFyZVxuICogICBtYWRlIG9wdGlvbmFsLCBhbmQgdGhlIHJlc3Qgb2YgdGhlIGtleXMgb2YgYFRgIGFyZSByZXF1aXJlZC5cbiAqXG4gKiAtIElmIGBUYCBpcyBmdWxseSBzdWJzdW1lZCBieSB0aGUgYFNwYW5FbmRgIHR5cGUsIHRoZW4gYW4gb2JqZWN0IHR5cGUgd2l0aFxuICogICBhbGwgZmllbGRzIG9wdGlvbmFsLCBPUiAndm9pZCcgc28geW91IGNhbiBhdm9pZCBwYXNzaW5nIGFuIGFyZ3VtZW50IGF0IGFsbC5cbiAqL1xudHlwZSBTcGFuRW5kQXJndW1lbnRzPFQ+ID0ga2V5b2YgVCBleHRlbmRzIGtleW9mIFNwYW5FbmRcbiAgPyAoUGljazxQYXJ0aWFsPFNwYW5FbmQ+LCBrZXlvZiBUICYga2V5b2YgU3BhbkVuZD4gfCB2b2lkKVxuICA6IE9wdGlvbmFsPFQsIGtleW9mIFQgJiBrZXlvZiBTcGFuRW5kPjtcblxuLyoqXG4gKiBVc2VkIGluIGNvbmRpdGlvbmFsIHR5cGVzIHRvIGNoZWNrIGlmIGEgdHlwZSAoZS5nLiBhZnRlciBvbWl0dGluZyBmaWVsZHMpIGlzIGFuIGVtcHR5IG9iamVjdFxuICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBjb3VudGVyLWludHVpdGl2ZSBuZWl0aGVyIGBvYmplY3RgIG5vciBge31gIHJlcHJlc2VudCB0aGF0LlxuICovXG50eXBlIEVtcHR5T2JqZWN0ID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIGZvcmNlIGEgcGFyYW1ldGVyIHRvIGJlIG5vdCBwcmVzZW50IG9mIHRoZSBjb21wdXRlZCB0eXBlIGlzIGFuIGVtcHR5IG9iamVjdFxuICovXG50eXBlIFZvaWRXaGVuRW1wdHk8VD4gPSBUIGV4dGVuZHMgRW1wdHlPYmplY3QgPyB2b2lkIDogVDtcblxuLyoqXG4gKiBNYWtlIHNvbWUgcHJvcGVydGllcyBvcHRpb25hbFxuICovXG50eXBlIE9wdGlvbmFsPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiBQaWNrPFBhcnRpYWw8VD4sIEs+O1xuXG4vKipcbiAqIEVuZGluZyB0aGUgc3BhbiByZXR1cm5zIHRoZSBvYnNlcnZlZCBkdXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsYXBzZWRUaW1lIHtcbiAgcmVhZG9ubHkgYXNNczogbnVtYmVyO1xuICByZWFkb25seSBhc1NlYzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgbWVzc2FnZSBzcGFuIHRoYXQgY2FuIGJlIGVuZGVkIGFuZCByZWFkIHRpbWVzIGZyb21cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWVzc2FnZVNwYW48RSBleHRlbmRzIFNwYW5FbmQ+IGV4dGVuZHMgSUFjdGlvbkF3YXJlSW9Ib3N0IHtcbiAgLyoqXG4gICAqIEFuIElvSGVscGVyIHdyYXBwZWQgYXJvdW5kIHRoZSBzcGFuLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNIZWxwZXI6IElvSGVscGVyO1xuICAvKipcbiAgICogQW4gSW9EZWZhdWx0TWVzc2FnZXMgd3JhcHBlZCBhcm91bmQgdGhlIHNwYW4uXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0czogSW9EZWZhdWx0TWVzc2FnZXM7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdGltZSBlbGFwc2VkIHNpbmNlIHRoZSBzdGFydFxuICAgKi9cbiAgZWxhcHNlZFRpbWUoKTogUHJvbWlzZTxFbGFwc2VkVGltZT47XG4gIC8qKlxuICAgKiBTZW5kcyBhIHNpbXBsZSwgZ2VuZXJpYyBtZXNzYWdlIHdpdGggdGhlIGN1cnJlbnQgdGltaW5nXG4gICAqIEZvciBtb3JlIGNvbXBsZXggaW50ZXJtZWRpYXRlIG1lc3NhZ2VzLCBnZXQgdGhlIGBlbGFwc2VkVGltZWAgYW5kIHVzZSBgbm90aWZ5YFxuICAgKi9cbiAgdGltaW5nKG1ha2VyOiBtYWtlLklvTWVzc2FnZU1ha2VyPER1cmF0aW9uPiwgbWVzc2FnZT86IHN0cmluZyk6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogRW5kIHRoZSBzcGFuIHdpdGggYSBwYXlsb2FkXG4gICAqL1xuICBlbmQocGF5bG9hZDogU3BhbkVuZEFyZ3VtZW50czxFPik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogRW5kIHRoZSBzcGFuIHdpdGggYSBtZXNzYWdlIGFuZCBwYXlsb2FkXG4gICAqL1xuICBlbmQobWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBTcGFuRW5kQXJndW1lbnRzPEU+KTogUHJvbWlzZTxFbGFwc2VkVGltZT47XG5cbiAgLyoqXG4gICAqIEluY3JlbWVudCBhIGNvdW50ZXJcbiAgICovXG4gIGluY0NvdW50ZXIobmFtZTogc3RyaW5nLCBkZWx0YT86IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG5ldyB0aW1lciBvYmplY3RcbiAgICpcbiAgICogSXQgd2lsbCBiZSBhZGRlZCBpbnRvIHRoZSBzcGFuIGRhdGEgd2hlbiBpdCdzIHN0b3BwZWQuIEFsbCBvcGVuIHRpbWVycyBhcmVcbiAgICogYXV0b21hdGljYWxseSBzdG9wcGVkIHdoZW4gdGhlIHNwYW4gaXMgZW5kZWQuXG4gICAqXG4gICAqIFRpbWVycyBhcmUgdWx0aW1hdGVseSBhZGRlZCB0byB0aGUgYGNvdW50ZXJzYCBhcnJheSB3aXRoIGA8bmFtZT5fbXNgIGFuZFxuICAgKiBgPG5hbWU+X2NudGAga2V5cy5cbiAgICovXG4gIHN0YXJ0VGltZXIobmFtZTogc3RyaW5nKTogSVRpbWVyO1xufVxuXG4vKipcbiAqIEEgdGltZXIgdG8gdGltZSBhbiBvcGVyYXRpb24gaW4gYSBzcGFuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUaW1lciB7XG4gIHN0b3AoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgdG8gbWFrZSBzcGFucyBhcm91bmQgYmxvY2tzIG9mIHdvcmtcbiAqXG4gKiBCbG9ja3MgYXJlIGVuY2xvc2VkIGJ5IGEgc3RhcnQgYW5kIGVuZCBtZXNzYWdlLlxuICogQWxsIG1lc3NhZ2VzIG9mIHRoZSBzcGFuIHNoYXJlIGEgdW5pcXVlIGlkLlxuICogVGhlIGVuZCBtZXNzYWdlIGNvbnRhaW5zIHRoZSB0aW1lIHBhc3NlZCBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTcGFuTWFrZXI8UyBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIFNwYW5FbmQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPjtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgbWFrZUhlbHBlcjogKGlvSG9zdDogSUFjdGlvbkF3YXJlSW9Ib3N0KSA9PiBJb0hlbHBlcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPiwgbWFrZUhlbHBlcjogKGlvSG9zdDogSUFjdGlvbkF3YXJlSW9Ib3N0KSA9PiBJb0hlbHBlcikge1xuICAgIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMubWFrZUhlbHBlciA9IG1ha2VIZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIHRoZSBzcGFuIGFuZCBpbml0aWFsbHkgbm90aWZpZXMgdGhlIElvSG9zdFxuICAgKiBAcmV0dXJucyBhIG1lc3NhZ2Ugc3BhblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJlZ2luKHBheWxvYWQ6IFZvaWRXaGVuRW1wdHk8Uz4pOiBQcm9taXNlPElNZXNzYWdlU3BhbjxFPj47XG4gIHB1YmxpYyBhc3luYyBiZWdpbihtZXNzYWdlOiBzdHJpbmcsIHBheWxvYWQ6IFMpOiBQcm9taXNlPElNZXNzYWdlU3BhbjxFPj47XG4gIHB1YmxpYyBhc3luYyBiZWdpbihhOiBhbnksIGI/OiBTKTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+IHtcbiAgICBjb25zdCBzcGFuID0gbmV3IE1lc3NhZ2VTcGFuKHRoaXMuaW9IZWxwZXIsIHRoaXMuZGVmaW5pdGlvbiwgdGhpcy5tYWtlSGVscGVyKTtcbiAgICBjb25zdCBzdGFydElucHV0ID0gcGFyc2VBcmdzPFM+KGEsIGIpO1xuICAgIGNvbnN0IHN0YXJ0TXNnID0gc3RhcnRJbnB1dC5tZXNzYWdlID8/IGBTdGFydGluZyAke3RoaXMuZGVmaW5pdGlvbi5uYW1lfSAuLi5gO1xuICAgIGNvbnN0IHN0YXJ0UGF5bG9hZCA9IHN0YXJ0SW5wdXQucGF5bG9hZDtcbiAgICBhd2FpdCBzcGFuLm5vdGlmeSh0aGlzLmRlZmluaXRpb24uc3RhcnQubXNnKHN0YXJ0TXNnLCBzdGFydFBheWxvYWQpKTtcblxuICAgIHJldHVybiBzcGFuO1xuICB9XG59XG5cbmNsYXNzIE1lc3NhZ2VTcGFuPFMgZXh0ZW5kcyBvYmplY3QsIEUgZXh0ZW5kcyBTcGFuRW5kPiBpbXBsZW1lbnRzIElNZXNzYWdlU3BhbjxFPiB7XG4gIHB1YmxpYyByZWFkb25seSBhc0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPjtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3BhbklkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhcnRUaW1lOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGltaW5nTXNnVGVtcGxhdGU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb3VudGVyczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IG9wZW5UaW1lcnMgPSBuZXcgU2V0PElUaW1lcj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPiwgbWFrZUhlbHBlcjogKGlvSG9zdDogSUFjdGlvbkF3YXJlSW9Ib3N0KSA9PiBJb0hlbHBlcikge1xuICAgIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMuc3BhbklkID0gdXVpZC52NCgpO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgdGhpcy50aW1pbmdNc2dUZW1wbGF0ZSA9ICdcXG7inKggICVzIHRpbWU6ICVkc1xcbic7XG4gICAgdGhpcy5hc0hlbHBlciA9IG1ha2VIZWxwZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRzKCk6IElvRGVmYXVsdE1lc3NhZ2VzIHtcbiAgICByZXR1cm4gdGhpcy5hc0hlbHBlci5kZWZhdWx0cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBlbGFwc2VkVGltZSgpOiBQcm9taXNlPEVsYXBzZWRUaW1lPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZSgpO1xuICB9XG4gIHB1YmxpYyBhc3luYyB0aW1pbmcobWFrZXI6IG1ha2UuSW9NZXNzYWdlTWFrZXI8RHVyYXRpb24+LCBtZXNzYWdlPzogc3RyaW5nKTogUHJvbWlzZTxFbGFwc2VkVGltZT4ge1xuICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy50aW1lKCk7XG4gICAgY29uc3QgdGltaW5nTXNnID0gbWVzc2FnZSA/IG1lc3NhZ2UgOiB1dGlsLmZvcm1hdCh0aGlzLnRpbWluZ01zZ1RlbXBsYXRlLCB0aGlzLmRlZmluaXRpb24ubmFtZSwgZHVyYXRpb24uYXNTZWMpO1xuICAgIGF3YWl0IHRoaXMubm90aWZ5KG1ha2VyLm1zZyh0aW1pbmdNc2csIHtcbiAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbi5hc01zLFxuICAgIH0pKTtcbiAgICByZXR1cm4gZHVyYXRpb247XG4gIH1cbiAgcHVibGljIGFzeW5jIG5vdGlmeShtc2c6IEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KHdpdGhTcGFuSWQodGhpcy5zcGFuSWQsIG1zZykpO1xuICB9XG4gIHB1YmxpYyBhc3luYyBlbmQoeDogYW55LCB5PzogU3BhbkVuZEFyZ3VtZW50czxFPik6IFByb21pc2U8RWxhcHNlZFRpbWU+IHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMudGltZSgpO1xuXG4gICAgZm9yIChjb25zdCB0IG9mIHRoaXMub3BlblRpbWVycykge1xuICAgICAgdC5zdG9wKCk7XG4gICAgfVxuICAgIHRoaXMub3BlblRpbWVycy5jbGVhcigpO1xuXG4gICAgY29uc3QgZW5kSW5wdXQgPSBwYXJzZUFyZ3M8U3BhbkVuZEFyZ3VtZW50czxFPj4oeCwgeSk7XG4gICAgY29uc3QgZW5kTXNnID0gZW5kSW5wdXQubWVzc2FnZSA/PyB1dGlsLmZvcm1hdCh0aGlzLnRpbWluZ01zZ1RlbXBsYXRlLCB0aGlzLmRlZmluaXRpb24ubmFtZSwgZHVyYXRpb24uYXNTZWMpO1xuICAgIGNvbnN0IGVuZFBheWxvYWQgPSBlbmRJbnB1dC5wYXlsb2FkO1xuXG4gICAgYXdhaXQgdGhpcy5ub3RpZnkodGhpcy5kZWZpbml0aW9uLmVuZC5tc2coXG4gICAgICBlbmRNc2csIHtcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLmFzTXMsXG4gICAgICAgIC4uLihPYmplY3Qua2V5cyh0aGlzLmNvdW50ZXJzKS5sZW5ndGggPiAwID8geyBjb3VudGVyczogdGhpcy5jb3VudGVycyB9IDoge30pLFxuICAgICAgICAuLi5lbmRQYXlsb2FkLFxuICAgICAgfSBhcyBFKSk7XG5cbiAgICByZXR1cm4gZHVyYXRpb247XG4gIH1cblxuICBwdWJsaWMgaW5jQ291bnRlcihuYW1lOiBzdHJpbmcsIGRlbHRhOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgdGhpcy5jb3VudGVyc1tuYW1lXSA9ICh0aGlzLmNvdW50ZXJzW25hbWVdID8/IDApICsgZGVsdGE7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdFJlc3BvbnNlPFQ+KG1zZzogQWN0aW9uTGVzc1JlcXVlc3Q8dW5rbm93biwgVD4pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2Uod2l0aFNwYW5JZCh0aGlzLnNwYW5JZCwgbXNnKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnRUaW1lcihuYW1lOiBzdHJpbmcpOiBJVGltZXIge1xuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IHQ6IElUaW1lciA9IHtcbiAgICAgIHN0b3A6ICgpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuVGltZXJzLmRlbGV0ZSh0KTtcbiAgICAgICAgdGhpcy5pbmNDb3VudGVyKGAke25hbWV9X21zYCwgTWF0aC5mbG9vcihEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCk7XG4gICAgICAgIHRoaXMuaW5jQ291bnRlcihgJHtuYW1lfV9jbnRgLCAxKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm9wZW5UaW1lcnMuYWRkKHQpO1xuICAgIHJldHVybiB0O1xuICB9XG5cbiAgcHJpdmF0ZSB0aW1lKCkge1xuICAgIGNvbnN0IGVsYXBzZWRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLnN0YXJ0VGltZTtcbiAgICByZXR1cm4ge1xuICAgICAgYXNNczogZWxhcHNlZFRpbWUsXG4gICAgICBhc1NlYzogZm9ybWF0VGltZShlbGFwc2VkVGltZSksXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3M8Uz4oZmlyc3Q6IGFueSwgc2Vjb25kPzogUyk6IHsgbWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkOyBwYXlsb2FkOiBTIH0ge1xuICBjb25zdCBmaXJzdElzTWVzc2FnZSA9IHR5cGVvZiBmaXJzdCA9PT0gJ3N0cmluZyc7XG5cbiAgLy8gV2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcgb3Igd2UgaGF2ZSBhIHNlY29uZCBhcmd1bWVudCwgdGhlbiB0aGUgZmlyc3QgYXJnIGlzIHRoZSBtZXNzYWdlXG4gIGNvbnN0IG1lc3NhZ2UgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IGZpcnN0IDogdW5kZWZpbmVkO1xuXG4gIC8vIFdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgc3RyaW5nIG9yIHdlIGhhdmUgYSBzZWNvbmQgYXJndW1lbnQsXG4gIC8vIHRoZW4gdGhlIHNlY29uZCBhcmcgaXMgdGhlIHBheWxvYWQsIG90aGVyd2lzZSB0aGUgZmlyc3QgYXJnIGlzIHRoZSBwYXlsb2FkXG4gIGNvbnN0IHBheWxvYWQgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IHNlY29uZCA6IGZpcnN0O1xuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZSxcbiAgICBwYXlsb2FkLFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRoU3BhbklkPFQgZXh0ZW5kcyBvYmplY3Q+KHNwYW46IHN0cmluZywgbWVzc2FnZTogVCk6IFQgJiB7IHNwYW46IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5tZXNzYWdlLFxuICAgIHNwYW4sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWYWxpZCByZXBvcnRpbmcgY2F0ZWdvcmllcyBmb3IgbWVzc2FnZXMuXG4gKi9cbmV4cG9ydCB0eXBlIElvTWVzc2FnZUNvZGVDYXRlZ29yeSA9ICdUT09MS0lUJyB8ICdTREsnIHwgJ0FTU0VUUycgfCAnQVNTRU1CTFknO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sa2l0LWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY3VycmVudCBhY3Rpb24gYmVpbmcgcGVyZm9ybWVkIGJ5IHRoZSBUb29sa2l0LlxuICovXG5leHBvcnQgdHlwZSBUb29sa2l0QWN0aW9uID1cbnwgJ2Fzc2VtYmx5J1xufCAnYm9vdHN0cmFwJ1xufCAnc3ludGgnXG58ICdsaXN0J1xufCAnZGlmZidcbnwgJ2RlcGxveSdcbnwgJ2RyaWZ0J1xufCAncm9sbGJhY2snXG58ICdwdWJsaXNoLWFzc2V0cydcbnwgJ3dhdGNoJ1xufCAnZGVzdHJveSdcbnwgJ2RvY3RvcidcbnwgJ2djJ1xufCAnaW1wb3J0J1xufCAnbWV0YWRhdGEnXG58ICdpbml0J1xufCAnbWlncmF0ZSdcbnwgJ3JlZmFjdG9yJ1xufCAnZmxhZ3MnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findCloudWatchLogGroups = findCloudWatchLogGroups;\nconst util_1 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\n// resource types that have associated CloudWatch Log Groups that should _not_ be monitored\nconst IGNORE_LOGS_RESOURCE_TYPES = ['AWS::EC2::FlowLog', 'AWS::CloudTrail::Trail', 'AWS::CodeBuild::Project'];\nasync function findCloudWatchLogGroups(sdkProvider, ioHelper, stackArtifact) {\n let sdk;\n const resolvedEnv = await sdkProvider.resolveEnvironment(stackArtifact.environment);\n // try to assume the lookup role and fallback to the default credentials\n try {\n sdk = (await new environment_1.EnvironmentAccess(sdkProvider, toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME, ioHelper).accessStackForLookup(stackArtifact)).sdk;\n }\n catch (e) {\n await ioHelper.defaults.debug(`Failed to access SDK environment: ${(0, util_1.formatErrorMessage)(e)}`);\n sdk = (await sdkProvider.forEnvironment(resolvedEnv, plugin_1.Mode.ForReading)).sdk;\n }\n const listStackResources = new cloudformation_1.LazyListStackResources(sdk, stackArtifact.stackName);\n const evaluateCfnTemplate = new cloudformation_1.EvaluateCloudFormationTemplate({\n stackArtifact,\n parameters: {},\n account: resolvedEnv.account,\n region: resolvedEnv.region,\n partition: (await sdk.currentAccount()).partition,\n sdk,\n });\n const stackResources = await listStackResources.listStackResources();\n const logGroupNames = findAllLogGroupNames(stackResources, evaluateCfnTemplate);\n return {\n env: resolvedEnv,\n sdk,\n logGroupNames,\n };\n}\n/**\n * Determine if a CloudWatch Log Group is associated\n * with an ignored resource\n */\nfunction isReferencedFromIgnoredResource(logGroupResource, evaluateCfnTemplate) {\n const resourcesReferencingLogGroup = evaluateCfnTemplate.findReferencesTo(logGroupResource.LogicalResourceId);\n return resourcesReferencingLogGroup.some((reference) => {\n return IGNORE_LOGS_RESOURCE_TYPES.includes(reference.Type);\n });\n}\nconst cloudWatchLogsResolvers = {\n 'AWS::Logs::LogGroup': (resource, evaluateCfnTemplate) => {\n if (isReferencedFromIgnoredResource(resource, evaluateCfnTemplate)) {\n return undefined;\n }\n return resource.PhysicalResourceId?.toString();\n },\n // Resource types that will create a CloudWatch log group with a specific name if one is not provided.\n // The keys are CFN resource types, and the values are the name of the physical name property of that resource\n // and the service name that is used in the automatically created CloudWatch log group.\n 'AWS::Lambda::Function': (resource, evaluateCfnTemplate) => {\n const loggingConfig = evaluateCfnTemplate.getResourceProperty(resource.LogicalResourceId, 'LoggingConfig');\n if (loggingConfig?.LogGroup) {\n // if LogGroup is a string then use it as the LogGroupName as it is referred by LogGroup.fromLogGroupArn in CDK\n if (typeof loggingConfig.LogGroup === 'string') {\n return loggingConfig.LogGroup;\n }\n // if { Ref: '...' } is used then try to resolve the LogGroupName from the referenced resource in the template\n if (typeof loggingConfig.LogGroup === 'object') {\n if (loggingConfig.LogGroup.Ref) {\n return evaluateCfnTemplate.getResourceProperty(loggingConfig.LogGroup.Ref, 'LogGroupName');\n }\n }\n }\n return `/aws/lambda/${resource.PhysicalResourceId}`;\n },\n};\n/**\n * Find all CloudWatch Log Groups in the deployed template.\n * This will find both explicitly created Log Groups (excluding those associated with ignored resources)\n * and Log Groups created implicitly (i.e. Lambda Functions)\n */\nfunction findAllLogGroupNames(stackResources, evaluateCfnTemplate) {\n const logGroupNames = [];\n for (const resource of stackResources) {\n const logGroupResolver = cloudWatchLogsResolvers[resource.ResourceType];\n if (logGroupResolver) {\n const logGroupName = logGroupResolver(resource, evaluateCfnTemplate);\n if (logGroupName) {\n logGroupNames.push(logGroupName);\n }\n }\n }\n return logGroupNames;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG91ZHdhdGNoLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaW5kLWNsb3Vkd2F0Y2gtbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSwwREFpQ0M7QUFwRUQscUNBQWdEO0FBRWhELHNEQUEyRjtBQUMzRixnREFBbUQ7QUFFbkQsc0NBQWlDO0FBQ2pDLGtEQUE2RDtBQUU3RCwyRkFBMkY7QUFDM0YsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUEwQnZHLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsV0FBd0IsRUFDeEIsUUFBa0IsRUFDbEIsYUFBMEM7SUFFMUMsSUFBSSxHQUFRLENBQUM7SUFDYixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEYsd0VBQXdFO0lBQ3hFLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSwrQkFBaUIsQ0FBQyxXQUFXLEVBQUUseUNBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDakksQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsSUFBQSx5QkFBa0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUYsR0FBRyxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxhQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDN0UsQ0FBQztJQUVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx1Q0FBc0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BG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QWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBFbnZpcm9ubWVudCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrUmVzb3VyY2VTdW1tYXJ5IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudEFjY2VzcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgfSBmcm9tICcuLi90b29sa2l0LWluZm8nO1xuXG4vLyByZXNvdXJjZSB0eXBlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBDbG91ZFdhdGNoIExvZyBHcm91cHMgdGhhdCBzaG91bGQgX25vdF8gYmUgbW9uaXRvcmVkXG5jb25zdCBJR05PUkVfTE9HU19SRVNPVVJDRV9UWVBFUyA9IFsnQVdTOjpFQzI6OkZsb3dMb2cnLCAnQVdTOjpDbG91ZFRyYWlsOjpUcmFpbCcsICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCddO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gbmVlZGVkIHRvIG1vbml0b3IgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gKiBmb3VuZCBpbiBhIGdpdmVuIENsb3VkRm9ybWF0aW9uIFN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm91bmRMb2dHcm91cHNSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHJlc29sdmVkIGVudmlyb25tZW50IChhY2NvdW50L3JlZ2lvbikgdGhhdCB0aGUgbG9nXG4gICAqIGdyb3VwcyBhcmUgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIGV2ZW50cyBmcm9tIHRoZSBDbG91ZFdhdGNoXG4gICAqIExvZyBHcm91cHMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSByZWxldmFudCBDbG91ZFdhdGNoIExvZyBHcm91cHNcbiAgICogaW4gdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRDbG91ZFdhdGNoTG9nR3JvdXBzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tBcnRpZmFjdDogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuKTogUHJvbWlzZTxGb3VuZExvZ0dyb3Vwc1Jlc3VsdD4ge1xuICBsZXQgc2RrOiBTREs7XG4gIGNvbnN0IHJlc29sdmVkRW52ID0gYXdhaXQgc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrQXJ0aWZhY3QuZW52aXJvbm1lbnQpO1xuICAvLyB0cnkgdG8gYXNzdW1lIHRoZSBsb29rdXAgcm9sZSBhbmQgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgY3JlZGVudGlhbHNcbiAgdHJ5IHtcbiAgICBzZGsgPSAoYXdhaXQgbmV3IEVudmlyb25tZW50QWNjZXNzKHNka1Byb3ZpZGVyLCBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSwgaW9IZWxwZXIpLmFjY2Vzc1N0YWNrRm9yTG9va3VwKHN0YWNrQXJ0aWZhY3QpKS5zZGs7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBGYWlsZWQgdG8gYWNjZXNzIFNESyBlbnZpcm9ubWVudDogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCk7XG4gICAgc2RrID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KHJlc29sdmVkRW52LCBNb2RlLkZvclJlYWRpbmcpKS5zZGs7XG4gIH1cblxuICBjb25zdCBsaXN0U3RhY2tSZXNvdXJjZXMgPSBuZXcgTGF6eUxpc3RTdGFja1Jlc291cmNlcyhzZGssIHN0YWNrQXJ0aWZhY3Quc3RhY2tOYW1lKTtcbiAgY29uc3QgZXZhbHVhdGVDZm5UZW1wbGF0ZSA9IG5ldyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoe1xuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgcGFyYW1ldGVyczoge30sXG4gICAgYWNjb3VudDogcmVzb2x2ZWRFbnYuYWNjb3VudCxcbiAgICByZWdpb246IHJlc29sdmVkRW52LnJlZ2lvbixcbiAgICBwYXJ0aXRpb246IChhd2FpdCBzZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uLFxuICAgIHNkayxcbiAgfSk7XG5cbiAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBhd2FpdCBsaXN0U3RhY2tSZXNvdXJjZXMubGlzdFN0YWNrUmVzb3VyY2VzKCk7XG4gIGNvbnN0IGxvZ0dyb3VwTmFtZXMgPSBmaW5kQWxsTG9nR3JvdXBOYW1lcyhzdGFja1Jlc291cmNlcywgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBlbnY6IHJlc29sdmVkRW52LFxuICAgIHNkayxcbiAgICBsb2dHcm91cE5hbWVzLFxuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIENsb3VkV2F0Y2ggTG9nIEdyb3VwIGlzIGFzc29jaWF0ZWRcbiAqIHdpdGggYW4gaWdub3JlZCByZXNvdXJjZVxuICovXG5mdW5jdGlvbiBpc1JlZmVyZW5jZWRGcm9tSWdub3JlZFJlc291cmNlKFxuICBsb2dHcm91cFJlc291cmNlOiBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHJlc291cmNlc1JlZmVyZW5jaW5nTG9nR3JvdXAgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmZpbmRSZWZlcmVuY2VzVG8obG9nR3JvdXBSZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZCEpO1xuICByZXR1cm4gcmVzb3VyY2VzUmVmZXJlbmNpbmdMb2dHcm91cC5zb21lKChyZWZlcmVuY2UpID0+IHtcbiAgICByZXR1cm4gSUdOT1JFX0xPR1NfUkVTT1VSQ0VfVFlQRVMuaW5jbHVkZXMocmVmZXJlbmNlLlR5cGUpO1xuICB9KTtcbn1cblxudHlwZSBDbG91ZFdhdGNoTG9nc1Jlc29sdmVyID0gKFxuICByZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnksXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBjbG91ZFdhdGNoTG9nc1Jlc29sdmVyczogUmVjb3JkPHN0cmluZywgQ2xvdWRXYXRjaExvZ3NSZXNvbHZlcj4gPSB7XG4gICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJzogKHJlc291cmNlLCBldmFsdWF0ZUNmblRlbXBsYXRlKSA9PiB7XG4gICAgaWYgKGlzUmVmZXJlbmNlZEZyb21JZ25vcmVkUmVzb3VyY2UocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkPy50b1N0cmluZygpO1xuICB9LFxuXG4gIC8vIFJlc291cmNlIHR5cGVzIHRoYXQgd2lsbCBjcmVhdGUgYSBDbG91ZFdhdGNoIGxvZyBncm91cCB3aXRoIGEgc3BlY2lmaWMgbmFtZSBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICAvLyBUaGUga2V5cyBhcmUgQ0ZOIHJlc291cmNlIHR5cGVzLCBhbmQgdGhlIHZhbHVlcyBhcmUgdGhlIG5hbWUgb2YgdGhlIHBoeXNpY2FsIG5hbWUgcHJvcGVydHkgb2YgdGhhdCByZXNvdXJjZVxuICAvLyBhbmQgdGhlIHNlcnZpY2UgbmFtZSB0aGF0IGlzIHVzZWQgaW4gdGhlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBDbG91ZFdhdGNoIGxvZyBncm91cC5cbiAgJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbic6IChyZXNvdXJjZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxvZ2dpbmdDb25maWcgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmdldFJlc291cmNlUHJvcGVydHkocmVzb3VyY2UuTG9naWNhbFJlc291cmNlSWQhLCAnTG9nZ2luZ0NvbmZpZycpO1xuICAgIGlmIChsb2dnaW5nQ29uZmlnPy5Mb2dHcm91cCkge1xuICAgICAgLy8gaWYgTG9nR3JvdXAgaXMgYSBzdHJpbmcgdGhlbiB1c2UgaXQgYXMgdGhlIExvZ0dyb3VwTmFtZSBhcyBpdCBpcyByZWZlcnJlZCBieSBMb2dHcm91cC5mcm9tTG9nR3JvdXBBcm4gaW4gQ0RLXG4gICAgICBpZiAodHlwZW9mIGxvZ2dpbmdDb25maWcuTG9nR3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB7IFJlZjogJy4uLicgfSBpcyB1c2VkIHRoZW4gdHJ5IHRvIHJlc29sdmUgdGhlIExvZ0dyb3VwTmFtZSBmcm9tIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKHR5cGVvZiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAobG9nZ2luZ0NvbmZpZy5Mb2dHcm91cC5SZWYpIHtcbiAgICAgICAgICByZXR1cm4gZXZhbHVhdGVDZm5UZW1wbGF0ZS5nZXRSZXNvdXJjZVByb3BlcnR5KGxvZ2dpbmdDb25maWcuTG9nR3JvdXAuUmVmLCAnTG9nR3JvdXBOYW1lJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYC9hd3MvbGFtYmRhLyR7cmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkfWA7XG4gIH0sXG59O1xuXG4vKipcbiAqIEZpbmQgYWxsIENsb3VkV2F0Y2ggTG9nIEdyb3VwcyBpbiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUuXG4gKiBUaGlzIHdpbGwgZmluZCBib3RoIGV4cGxpY2l0bHkgY3JlYXRlZCBMb2cgR3JvdXBzIChleGNsdWRpbmcgdGhvc2UgYXNzb2NpYXRlZCB3aXRoIGlnbm9yZWQgcmVzb3VyY2VzKVxuICogYW5kIExvZyBHcm91cHMgY3JlYXRlZCBpbXBsaWNpdGx5IChpLmUuIExhbWJkYSBGdW5jdGlvbnMpXG4gKi9cbmZ1bmN0aW9uIGZpbmRBbGxMb2dHcm91cE5hbWVzKFxuICBzdGFja1Jlc291cmNlczogU3RhY2tSZXNvdXJjZVN1bW1hcnlbXSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVzb3VyY2Ugb2Ygc3RhY2tSZXNvdXJjZXMpIHtcbiAgICBjb25zdCBsb2dHcm91cFJlc29sdmVyID0gY2xvdWRXYXRjaExvZ3NSZXNvbHZlcnNbcmVzb3VyY2UuUmVzb3VyY2VUeXBlIV07XG4gICAgaWYgKGxvZ0dyb3VwUmVzb2x2ZXIpIHtcbiAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGxvZ0dyb3VwUmVzb2x2ZXIocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpO1xuICAgICAgaWYgKGxvZ0dyb3VwTmFtZSkge1xuICAgICAgICBsb2dHcm91cE5hbWVzLnB1c2gobG9nR3JvdXBOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9nR3JvdXBOYW1lcztcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./logs-monitor\"), exports);\n__exportStar(require(\"./find-cloudwatch-logs\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQStCO0FBQy9CLHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9ncy1tb25pdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1jbG91ZHdhdGNoLWxvZ3MnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudWatchLogEventMonitor = void 0;\nconst util = require(\"util\");\nconst chalk = require(\"chalk\");\nconst uuid = require(\"uuid\");\nconst util_1 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nclass CloudWatchLogEventMonitor {\n /**\n * Determines which events not to display\n */\n startTime;\n /**\n * Map of environment (account:region) to LogGroupsAccessSettings\n */\n envsLogGroupsAccessSettings = new Map();\n /**\n * After reading events from all CloudWatch log groups\n * how long should we wait to read more events.\n *\n * If there is some error with reading events (i.e. Throttle)\n * then this is also how long we wait until we try again\n */\n pollingInterval = 2_000;\n monitorId;\n ioHelper;\n currentTick;\n constructor(props) {\n this.startTime = props.startTime?.getTime() ?? Date.now();\n this.ioHelper = props.ioHelper;\n }\n /**\n * resume reading/printing events\n */\n async activate() {\n this.monitorId = uuid.v4();\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5032.msg('Start monitoring log groups', {\n monitor: this.monitorId,\n logGroupNames: this.logGroupNames(),\n }));\n // tick schedules the next tick as well\n await this.tick();\n }\n /**\n * deactivates the monitor so no new events are read\n * use case for this is when we are in the middle of performing a deployment\n * and don't want to interweave all the logs together with the CFN\n * deployment logs\n *\n * Also resets the start time to be when the new deployment was triggered\n * and clears the list of tracked log groups\n */\n async deactivate() {\n const oldMonitorId = this.monitorId;\n this.monitorId = undefined;\n this.startTime = Date.now();\n clearTimeout(this.currentTick);\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5034.msg('Stopped monitoring log groups', {\n monitor: oldMonitorId,\n logGroupNames: this.logGroupNames(),\n }));\n this.envsLogGroupsAccessSettings.clear();\n }\n /**\n * Adds CloudWatch log groups to read log events from.\n * Since we could be watching multiple stacks that deploy to\n * multiple environments (account+region), we need to store a list of log groups\n * per env along with the SDK object that has access to read from\n * that environment.\n */\n addLogGroups(env, sdk, logGroupNames) {\n const awsEnv = `${env.account}:${env.region}`;\n const logGroupsStartTimes = logGroupNames.reduce((acc, groupName) => {\n acc[groupName] = this.startTime;\n return acc;\n }, {});\n this.envsLogGroupsAccessSettings.set(awsEnv, {\n sdk,\n logGroupsStartTimes: {\n ...this.envsLogGroupsAccessSettings.get(awsEnv)?.logGroupsStartTimes,\n ...logGroupsStartTimes,\n },\n });\n }\n logGroupNames() {\n return Array.from(this.envsLogGroupsAccessSettings.values()).flatMap((settings) => Object.keys(settings.logGroupsStartTimes));\n }\n scheduleNextTick() {\n if (!this.monitorId) {\n return;\n }\n this.currentTick = setTimeout(() => void this.tick(), this.pollingInterval);\n }\n async tick() {\n // excluding from codecoverage because this\n // doesn't always run (depends on timing)\n /* c8 ignore start */\n if (!this.monitorId) {\n return;\n }\n /* c8 ignore stop */\n try {\n const events = (0, util_1.flatten)(await this.readNewEvents());\n for (const event of events) {\n await this.print(event);\n }\n // We might have been stop()ped while the network call was in progress.\n if (!this.monitorId) {\n return;\n }\n }\n catch (e) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E5035.msg(`Error occurred while monitoring logs: ${String(e)}`, { error: e }));\n }\n this.scheduleNextTick();\n }\n /**\n * Reads all new log events from a set of CloudWatch Log Groups\n * in parallel\n */\n async readNewEvents() {\n const promises = [];\n for (const settings of this.envsLogGroupsAccessSettings.values()) {\n for (const group of Object.keys(settings.logGroupsStartTimes)) {\n promises.push(this.readEventsFromLogGroup(settings, group));\n }\n }\n // Limited set of log groups\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(promises);\n }\n /**\n * Print out a cloudwatch event\n */\n async print(event) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5033.msg(util.format('[%s] %s %s', chalk.blue(event.logGroupName), chalk.yellow(event.timestamp.toLocaleTimeString()), event.message.trim()), event));\n }\n /**\n * Reads all new log events from a CloudWatch Log Group\n * starting at either the time the hotswap was triggered or\n * when the last event was read on the previous tick\n */\n async readEventsFromLogGroup(logGroupsAccessSettings, logGroupName) {\n const events = [];\n // log events from some service are ingested faster than others\n // so we need to track the start/end time for each log group individually\n // to make sure that we process all events from each log group\n const startTime = logGroupsAccessSettings.logGroupsStartTimes[logGroupName] ?? this.startTime;\n let endTime = startTime;\n try {\n const response = await logGroupsAccessSettings.sdk.cloudWatchLogs().filterLogEvents({\n logGroupName: logGroupName,\n limit: 100,\n startTime: startTime,\n });\n const filteredEvents = response.events ?? [];\n for (const event of filteredEvents) {\n if (event.message) {\n events.push({\n message: event.message,\n logGroupName,\n timestamp: event.timestamp ? new Date(event.timestamp) : new Date(),\n });\n if (event.timestamp && endTime < event.timestamp) {\n endTime = event.timestamp;\n }\n }\n }\n // As long as there are _any_ events in the log group `filterLogEvents` will return a nextToken.\n // This is true even if these events are before `startTime`. So if we have 100 events and a nextToken\n // then assume that we have hit the limit and let the user know some messages have been suppressed.\n // We are essentially showing them a sampling (10000 events printed out is not very useful)\n if (filteredEvents.length === 100 && response.nextToken) {\n events.push({\n message: '>>> `watch` shows only the first 100 log messages - the rest have been truncated...',\n logGroupName,\n timestamp: new Date(endTime),\n });\n }\n }\n catch (e) {\n // with Lambda functions the CloudWatch is not created\n // until something is logged, so just keep polling until\n // there is somthing to find\n if (e.name === 'ResourceNotFoundException') {\n return [];\n }\n throw e;\n }\n logGroupsAccessSettings.logGroupsStartTimes[logGroupName] = endTime + 1;\n return events;\n }\n}\nexports.CloudWatchLogEventMonitor = CloudWatchLogEventMonitor;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLHFDQUFxQztBQUVyQywyQ0FBbUM7QUFvQ25DLE1BQWEseUJBQXlCO0lBQ3BDOztPQUVHO0lBQ0ssU0FBUyxDQUFTO0lBRTFCOztPQUVHO0lBQ2MsMkJBQTJCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFFMUY7Ozs7OztPQU1HO0lBQ2MsZUFBZSxHQUFXLEtBQUssQ0FBQztJQUUxQyxTQUFTLENBQVU7SUFFVCxRQUFRLENBQVc7SUFDNUIsV0FBVyxDQUFrQjtJQUVyQyxZQUFZLEtBQXFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRTNCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRTtZQUNqRixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDdkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7U0FDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSix1Q0FBdUM7UUFDdkMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFD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LEVBQUUscUZBQXFGO29CQUM5RixZQUFZO29CQUNaLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQzdCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixzREFBc0Q7WUFDdEQsd0RBQXdEO1lBQ3hELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssMkJBQTJCLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0QsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUN4RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUE5TkQsOERBOE5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCB9IGZyb20gJy4uLy4uL3BheWxvYWRzL2xvZ3MtbW9uaXRvcic7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRyYWNraW5nIGluZm9ybWF0aW9uIG9uIHRoZSBsb2cgZ3JvdXBzIHRoYXQgYXJlXG4gKiBiZWluZyBtb25pdG9yZWRcbiAqL1xuaW50ZXJmYWNlIExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBTREsgZm9yIGEgZ2l2ZW4gZW52aXJvbm1lbnQgKGFjY291bnQvcmVnaW9uKVxuICAgKi9cbiAgcmVhZG9ubHkgc2RrOiBTREs7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGxvZyBncm91cHMgYW5kIGFzc29jaWF0ZWQgc3RhcnRUaW1lIGluIGEgZ2l2ZW4gYWNjb3VudC5cbiAgICpcbiAgICogVGhlIG1vbml0b3Igd2lsbCByZWFkIGV2ZW50cyBmcm9tIHRoZSBsb2cgZ3JvdXAgc3RhcnRpbmcgYXQgdGhlXG4gICAqIGFzc29jaWF0ZWQgc3RhcnRUaW1lXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHNTdGFydFRpbWVzOiB7IFtsb2dHcm91cE5hbWU6IHN0cmluZ106IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSW9Ib3N0IHVzZWQgZm9yIG1lc3NhZ2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBmcm9tIHdoaWNoIHdlIHN0YXJ0IHJlYWRpbmcgbG9nIG1lc3NhZ2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm93XG4gICAqL1xuICByZWFkb25seSBzdGFydFRpbWU/OiBEYXRlO1xufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvciB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoaWNoIGV2ZW50cyBub3QgdG8gZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFRpbWU6IG51bWJlcjtcblxuICAvKipcbiAgICogTWFwIG9mIGVudmlyb25tZW50IChhY2NvdW50OnJlZ2lvbikgdG8gTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzID0gbmV3IE1hcDxzdHJpbmcsIExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzPigpO1xuXG4gIC8qKlxuICAgKiBBZnRlciByZWFkaW5nIGV2ZW50cyBmcm9tIGFsbCBDbG91ZFdhdGNoIGxvZyBncm91cHNcbiAgICogaG93IGxvbmcgc2hvdWxkIHdlIHdhaXQgdG8gcmVhZCBtb3JlIGV2ZW50cy5cbiAgICpcbiAgICogSWYgdGhlcmUgaXMgc29tZSBlcnJvciB3aXRoIHJlYWRpbmcgZXZlbnRzIChpLmUuIFRocm90dGxlKVxuICAgKiB0aGVuIHRoaXMgaXMgYWxzbyBob3cgbG9uZyB3ZSB3YWl0IHVudGlsIHdlIHRyeSBhZ2FpblxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwb2xsaW5nSW50ZXJ2YWw6IG51bWJlciA9IDJfMDAwO1xuXG4gIHB1YmxpYyBtb25pdG9ySWQ/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgY3VycmVudFRpY2s/OiBOb2RlSlMuVGltZW91dDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvclByb3BzKSB7XG4gICAgdGhpcy5zdGFydFRpbWUgPSBwcm9wcy5zdGFydFRpbWU/LmdldFRpbWUoKSA/PyBEYXRlLm5vdygpO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBwcm9wcy5pb0hlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXN1bWUgcmVhZGluZy9wcmludGluZyBldmVudHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY3RpdmF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLm1vbml0b3JJZCA9IHV1aWQudjQoKTtcblxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MDMyLm1zZygnU3RhcnQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJywge1xuICAgICAgbW9uaXRvcjogdGhpcy5tb25pdG9ySWQsXG4gICAgICBsb2dHcm91cE5hbWVzOiB0aGlzLmxvZ0dyb3VwTmFtZXMoKSxcbiAgICB9KSk7XG5cbiAgICAvLyB0aWNrIHNjaGVkdWxlcyB0aGUgbmV4dCB0aWNrIGFzIHdlbGxcbiAgICBhd2FpdCB0aGlzLnRpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWFjdGl2YXRlcyB0aGUgbW9uaXRvciBzbyBubyBuZXcgZXZlbnRzIGFyZSByZWFkXG4gICAqIHVzZSBjYXNlIGZvciB0aGlzIGlzIHdoZW4gd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgcGVyZm9ybWluZyBhIGRlcGxveW1lbnRcbiAgICogYW5kIGRvbid0IHdhbnQgdG8gaW50ZXJ3ZWF2ZSBhbGwgdGhlIGxvZ3MgdG9nZXRoZXIgd2l0aCB0aGUgQ0ZOXG4gICAqIGRlcGxveW1lbnQgbG9nc1xuICAgKlxuICAgKiBBbHNvIHJlc2V0cyB0aGUgc3RhcnQgdGltZSB0byBiZSB3aGVuIHRoZSBuZXcgZGVwbG95bWVudCB3YXMgdHJpZ2dlcmVkXG4gICAqIGFuZCBjbGVhcnMgdGhlIGxpc3Qgb2YgdHJhY2tlZCBsb2cgZ3JvdXBzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVhY3RpdmF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvbGRNb25pdG9ySWQgPSB0aGlzLm1vbml0b3JJZCE7XG4gICAgdGhpcy5tb25pdG9ySWQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmN1cnJlbnRUaWNrKTtcblxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MDM0Lm1zZygnU3RvcHBlZCBtb25pdG9yaW5nIGxvZyBncm91cHMnLCB7XG4gICAgICBtb25pdG9yOiBvbGRNb25pdG9ySWQsXG4gICAgICBsb2dHcm91cE5hbWVzOiB0aGlzLmxvZ0dyb3VwTmFtZXMoKSxcbiAgICB9KSk7XG5cbiAgICB0aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgQ2xvdWRXYXRjaCBsb2cgZ3JvdXBzIHRvIHJlYWQgbG9nIGV2ZW50cyBmcm9tLlxuICAgKiBTaW5jZSB3ZSBjb3VsZCBiZSB3YXRjaGluZyBtdWx0aXBsZSBzdGFja3MgdGhhdCBkZXBsb3kgdG9cbiAgICogbXVsdGlwbGUgZW52aXJvbm1lbnRzIChhY2NvdW50K3JlZ2lvbiksIHdlIG5lZWQgdG8gc3RvcmUgYSBsaXN0IG9mIGxvZyBncm91cHNcbiAgICogcGVyIGVudiBhbG9uZyB3aXRoIHRoZSBTREsgb2JqZWN0IHRoYXQgaGFzIGFjY2VzcyB0byByZWFkIGZyb21cbiAgICogdGhhdCBlbnZpcm9ubWVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRMb2dHcm91cHMoZW52OiBjeGFwaS5FbnZpcm9ubWVudCwgc2RrOiBTREssIGxvZ0dyb3VwTmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgYXdzRW52ID0gYCR7ZW52LmFjY291bnR9OiR7ZW52LnJlZ2lvbn1gO1xuICAgIGNvbnN0IGxvZ0dyb3Vwc1N0YXJ0VGltZXMgPSBsb2dHcm91cE5hbWVzLnJlZHVjZShcbiAgICAgIChhY2MsIGdyb3VwTmFtZSkgPT4ge1xuICAgICAgICBhY2NbZ3JvdXBOYW1lXSA9IHRoaXMuc3RhcnRUaW1lO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIHsgW2xvZ0dyb3VwTmFtZTogc3RyaW5nXTogbnVtYmVyIH0sXG4gICAgKTtcbiAgICB0aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5zZXQoYXdzRW52LCB7XG4gICAgICBzZGssXG4gICAgICBsb2dHcm91cHNTdGFydFRpbWVzOiB7XG4gICAgICAgIC4uLnRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmdldChhd3NFbnYpPy5sb2dHcm91cHNTdGFydFRpbWVzLFxuICAgICAgICAuLi5sb2dHcm91cHNTdGFydFRpbWVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9nR3JvdXBOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MudmFsdWVzKCkpLmZsYXRNYXAoKHNldHRpbmdzKSA9PiBPYmplY3Qua2V5cyhzZXR0aW5ncy5sb2dHcm91cHNTdGFydFRpbWVzKSk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlTmV4dFRpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFRpY2sgPSBzZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50aWNrKCksIHRoaXMucG9sbGluZ0ludGVydmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBleGNsdWRpbmcgZnJvbSBjb2RlY292ZXJhZ2UgYmVjYXVzZSB0aGlzXG4gICAgLy8gZG9lc24ndCBhbHdheXMgcnVuIChkZXBlbmRzIG9uIHRpbWluZylcbiAgICAvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbiAgICBpZiAoIXRoaXMubW9uaXRvcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8qIGM4IGlnbm9yZSBzdG9wICovXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZXZlbnRzID0gZmxhdHRlbihhd2FpdCB0aGlzLnJlYWROZXdFdmVudHMoKSk7XG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICBhd2FpdCB0aGlzLnByaW50KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBiZWVuIHN0b3AoKXBlZCB3aGlsZSB0aGUgbmV0d29yayBjYWxsIHdhcyBpbiBwcm9ncmVzcy5cbiAgICAgIGlmICghdGhpcy5tb25pdG9ySWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTUwMzUubXNnKGBFcnJvciBvY2N1cnJlZCB3aGlsZSBtb25pdG9yaW5nIGxvZ3M6ICR7U3RyaW5nKGUpfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMuc2NoZWR1bGVOZXh0VGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGFsbCBuZXcgbG9nIGV2ZW50cyBmcm9tIGEgc2V0IG9mIENsb3VkV2F0Y2ggTG9nIEdyb3Vwc1xuICAgKiBpbiBwYXJhbGxlbFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZWFkTmV3RXZlbnRzKCk6IFByb21pc2U8QXJyYXk8QXJyYXk8Q2xvdWRXYXRjaExvZ0V2ZW50Pj4+IHtcbiAgICBjb25zdCBwcm9taXNlczogQXJyYXk8UHJvbWlzZTxBcnJheTxDbG91ZFdhdGNoTG9nRXZlbnQ+Pj4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNldHRpbmdzIG9mIHRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLnZhbHVlcygpKSB7XG4gICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIE9iamVjdC5rZXlzKHNldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXMpKSB7XG4gICAgICAgIHByb21pc2VzLnB1c2godGhpcy5yZWFkRXZlbnRzRnJvbUxvZ0dyb3VwKHNldHRpbmdzLCBncm91cCkpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBMaW1pdGVkIHNldCBvZiBsb2cgZ3JvdXBzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludCBvdXQgYSBjbG91ZHdhdGNoIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHByaW50KGV2ZW50OiBDbG91ZFdhdGNoTG9nRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTAzMy5tc2coXG4gICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgJ1slc10gJXMgJXMnLFxuICAgICAgICBjaGFsay5ibHVlKGV2ZW50LmxvZ0dyb3VwTmFtZSksXG4gICAgICAgIGNoYWxrLnllbGxvdyhldmVudC50aW1lc3RhbXAudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICBldmVudC5tZXNzYWdlLnRyaW0oKSxcbiAgICAgICksXG4gICAgICBldmVudCxcbiAgICApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhbGwgbmV3IGxvZyBldmVudHMgZnJvbSBhIENsb3VkV2F0Y2ggTG9nIEdyb3VwXG4gICAqIHN0YXJ0aW5nIGF0IGVpdGhlciB0aGUgdGltZSB0aGUgaG90c3dhcCB3YXMgdHJpZ2dlcmVkIG9yXG4gICAqIHdoZW4gdGhlIGxhc3QgZXZlbnQgd2FzIHJlYWQgb24gdGhlIHByZXZpb3VzIHRpY2tcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVhZEV2ZW50c0Zyb21Mb2dHcm91cChcbiAgICBsb2dHcm91cHNBY2Nlc3NTZXR0aW5nczogTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MsXG4gICAgbG9nR3JvdXBOYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8QXJyYXk8Q2xvdWRXYXRjaExvZ0V2ZW50Pj4ge1xuICAgIGNvbnN0IGV2ZW50czogQ2xvdWRXYXRjaExvZ0V2ZW50W10gPSBbXTtcblxuICAgIC8vIGxvZyBldmVudHMgZnJvbSBzb21lIHNlcnZpY2UgYXJlIGluZ2VzdGVkIGZhc3RlciB0aGFuIG90aGVyc1xuICAgIC8vIHNvIHdlIG5lZWQgdG8gdHJhY2sgdGhlIHN0YXJ0L2VuZCB0aW1lIGZvciBlYWNoIGxvZyBncm91cCBpbmRpdmlkdWFsbHlcbiAgICAvLyB0byBtYWtlIHN1cmUgdGhhdCB3ZSBwcm9jZXNzIGFsbCBldmVudHMgZnJvbSBlYWNoIGxvZyBncm91cFxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXNbbG9nR3JvdXBOYW1lXSA/PyB0aGlzLnN0YXJ0VGltZTtcbiAgICBsZXQgZW5kVGltZSA9IHN0YXJ0VGltZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBsb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5zZGsuY2xvdWRXYXRjaExvZ3MoKS5maWx0ZXJMb2dFdmVudHMoe1xuICAgICAgICBsb2dHcm91cE5hbWU6IGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgbGltaXQ6IDEwMCxcbiAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkRXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzID8/IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGZpbHRlcmVkRXZlbnRzKSB7XG4gICAgICAgIGlmIChldmVudC5tZXNzYWdlKSB7XG4gICAgICAgICAgZXZlbnRzLnB1c2goe1xuICAgICAgICAgICAgbWVzc2FnZTogZXZlbnQubWVzc2FnZSxcbiAgICAgICAgICAgIGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wID8gbmV3IERhdGUoZXZlbnQudGltZXN0YW1wKSA6IG5ldyBEYXRlKCksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoZXZlbnQudGltZXN0YW1wICYmIGVuZFRpbWUgPCBldmVudC50aW1lc3RhbXApIHtcbiAgICAgICAgICAgIGVuZFRpbWUgPSBldmVudC50aW1lc3RhbXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBBcyBsb25nIGFzIHRoZXJlIGFyZSBfYW55XyBldmVudHMgaW4gdGhlIGxvZyBncm91cCBgZmlsdGVyTG9nRXZlbnRzYCB3aWxsIHJldHVybiBhIG5leHRUb2tlbi5cbiAgICAgIC8vIFRoaXMgaXMgdHJ1ZSBldmVuIGlmIHRoZXNlIGV2ZW50cyBhcmUgYmVmb3JlIGBzdGFydFRpbWVgLiBTbyBpZiB3ZSBoYXZlIDEwMCBldmVudHMgYW5kIGEgbmV4dFRva2VuXG4gICAgICAvLyB0aGVuIGFzc3VtZSB0aGF0IHdlIGhhdmUgaGl0IHRoZSBsaW1pdCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgc29tZSBtZXNzYWdlcyBoYXZlIGJlZW4gc3VwcHJlc3NlZC5cbiAgICAgIC8vIFdlIGFyZSBlc3NlbnRpYWxseSBzaG93aW5nIHRoZW0gYSBzYW1wbGluZyAoMTAwMDAgZXZlbnRzIHByaW50ZWQgb3V0IGlzIG5vdCB2ZXJ5IHVzZWZ1bClcbiAgICAgIGlmIChmaWx0ZXJlZEV2ZW50cy5sZW5ndGggPT09IDEwMCAmJiByZXNwb25zZS5uZXh0VG9rZW4pIHtcbiAgICAgICAgZXZlbnRzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6ICc+Pj4gYHdhdGNoYCBzaG93cyBvbmx5IHRoZSBmaXJzdCAxMDAgbG9nIG1lc3NhZ2VzIC0gdGhlIHJlc3QgaGF2ZSBiZWVuIHRydW5jYXRlZC4uLicsXG4gICAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZW5kVGltZSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgLy8gd2l0aCBMYW1iZGEgZnVuY3Rpb25zIHRoZSBDbG91ZFdhdGNoIGlzIG5vdCBjcmVhdGVkXG4gICAgICAvLyB1bnRpbCBzb21ldGhpbmcgaXMgbG9nZ2VkLCBzbyBqdXN0IGtlZXAgcG9sbGluZyB1bnRpbFxuICAgICAgLy8gdGhlcmUgaXMgc29tdGhpbmcgdG8gZmluZFxuICAgICAgaWYgKGUubmFtZSA9PT0gJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXNbbG9nR3JvdXBOYW1lXSA9IGVuZFRpbWUgKyAxO1xuICAgIHJldHVybiBldmVudHM7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkDetector = void 0;\nconst https = require(\"node:https\");\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst util_1 = require(\"../../util\");\nconst TIME_TO_LIVE_SUCCESS = 60 * 60 * 1000; // 1 hour\nconst CACHE_FILE_PATH = path.join((0, util_1.cdkCacheDir)(), 'connection.json');\n/**\n * Detects internet connectivity by making a lightweight request to the notices endpoint\n */\nclass NetworkDetector {\n /**\n * Check if internet connectivity is available\n */\n static async hasConnectivity(agent) {\n const cachedData = await this.load();\n const expiration = cachedData.expiration ?? 0;\n if (Date.now() > expiration) {\n try {\n const connected = await this.ping(agent);\n const updatedData = {\n expiration: Date.now() + TIME_TO_LIVE_SUCCESS,\n hasConnectivity: connected,\n };\n await this.save(updatedData);\n return connected;\n }\n catch {\n return false;\n }\n }\n else {\n return cachedData.hasConnectivity;\n }\n }\n // We are observing lots of timeouts when running in a massively parallel\n // integration test environment, so wait for a longer timeout there.\n //\n // In production, have a short timeout to not hold up the user experience.\n static TIMEOUT = process.env.TESTING_CDK ? 30_000 : 3_000;\n static URL = 'https://cli.cdk.dev-tools.aws.dev/notices.json';\n static async load() {\n const defaultValue = {\n expiration: 0,\n hasConnectivity: false,\n };\n try {\n return fs.existsSync(CACHE_FILE_PATH)\n ? await fs.readJSON(CACHE_FILE_PATH)\n : defaultValue;\n }\n catch {\n return defaultValue;\n }\n }\n static async save(cached) {\n try {\n await fs.ensureFile(CACHE_FILE_PATH);\n await fs.writeJSON(CACHE_FILE_PATH, cached);\n }\n catch {\n // Silently ignore cache save errors\n }\n }\n static ping(agent) {\n const options = {\n method: 'HEAD',\n agent: agent,\n timeout: this.TIMEOUT,\n };\n return new Promise((resolve) => {\n const req = https.request(NetworkDetector.URL, options, (res) => {\n resolve(res.statusCode !== undefined && res.statusCode < 500);\n });\n req.on('error', () => resolve(false));\n req.on('timeout', () => {\n req.destroy();\n resolve(false);\n });\n req.end();\n });\n }\n}\nexports.NetworkDetector = NetworkDetector;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1kZXRlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5ldHdvcmstZGV0ZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBQW9DO0FBRXBDLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IscUNBQXlDO0FBT3pDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxTQUFTO0FBQ3RELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxrQkFBVyxHQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUVwRTs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQW1CO1FBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sV0FBVyxHQUFHO29CQUNsQixVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLG9CQUFvQjtvQkFDN0MsZUFBZSxFQUFFLFNBQVM7aUJBQzNCLENBQUM7Z0JBQ0YsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLG9FQUFvRTtJQUNwRSxFQUFFO0lBQ0YsMEVBQTBFO0lBQ2xFLE1BQU0sQ0FBVSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25FLE1BQU0sQ0FBVSxHQUFHLEdBQUcsZ0RBQWdELENBQUM7SUFFdkUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLFVBQVUsRUFBRSxDQUFDO1lBQ2IsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQztZQUNILE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUF1QjtnQkFDMUQsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNuQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUEwQjtRQUNsRCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDckMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asb0NBQW9DO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFtQjtRQUNyQyxNQUFNLE9BQU8sR0FBbUI7WUFDOUIsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQ3ZCLGVBQWUsQ0FBQyxHQUFHLEVBQ25CLE9BQU8sRUFDUCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FDRixDQUFDO1lBQ0YsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNyQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBRUgsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9FSCwwQ0FnRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBodHRwcyBmcm9tICdub2RlOmh0dHBzJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdub2RlOmh0dHBzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBjZGtDYWNoZURpciB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG5pbnRlcmZhY2UgQ2FjaGVkQ29ubmVjdGl2aXR5IHtcbiAgZXhwaXJhdGlvbjogbnVtYmVyO1xuICBoYXNDb25uZWN0aXZpdHk6IGJvb2xlYW47XG59XG5cbmNvbnN0IFRJTUVfVE9fTElWRV9TVUNDRVNTID0gNjAgKiA2MCAqIDEwMDA7IC8vIDEgaG91clxuY29uc3QgQ0FDSEVfRklMRV9QQVRIID0gcGF0aC5qb2luKGNka0NhY2hlRGlyKCksICdjb25uZWN0aW9uLmpzb24nKTtcblxuLyoqXG4gKiBEZXRlY3RzIGludGVybmV0IGNvbm5lY3Rpdml0eSBieSBtYWtpbmcgYSBsaWdodHdlaWdodCByZXF1ZXN0IHRvIHRoZSBub3RpY2VzIGVuZHBvaW50XG4gKi9cbmV4cG9ydCBjbGFzcyBOZXR3b3JrRGV0ZWN0b3Ige1xuICAvKipcbiAgICogQ2hlY2sgaWYgaW50ZXJuZXQgY29ubmVjdGl2aXR5IGlzIGF2YWlsYWJsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBoYXNDb25uZWN0aXZpdHkoYWdlbnQ/OiBodHRwcy5BZ2VudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNhY2hlZERhdGEgPSBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICBjb25zdCBleHBpcmF0aW9uID0gY2FjaGVkRGF0YS5leHBpcmF0aW9uID8/IDA7XG5cbiAgICBpZiAoRGF0ZS5ub3coKSA+IGV4cGlyYXRpb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3RlZCA9IGF3YWl0IHRoaXMucGluZyhhZ2VudCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0ge1xuICAgICAgICAgIGV4cGlyYXRpb246IERhdGUubm93KCkgKyBUSU1FX1RPX0xJVkVfU1VDQ0VTUyxcbiAgICAgICAgICBoYXNDb25uZWN0aXZpdHk6IGNvbm5lY3RlZCxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlKHVwZGF0ZWREYXRhKTtcbiAgICAgICAgcmV0dXJuIGNvbm5lY3RlZDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjYWNoZWREYXRhLmhhc0Nvbm5lY3Rpdml0eTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBhcmUgb2JzZXJ2aW5nIGxvdHMgb2YgdGltZW91dHMgd2hlbiBydW5uaW5nIGluIGEgbWFzc2l2ZWx5IHBhcmFsbGVsXG4gIC8vIGludGVncmF0aW9uIHRlc3QgZW52aXJvbm1lbnQsIHNvIHdhaXQgZm9yIGEgbG9uZ2VyIHRpbWVvdXQgdGhlcmUuXG4gIC8vXG4gIC8vIEluIHByb2R1Y3Rpb24sIGhhdmUgYSBzaG9ydCB0aW1lb3V0IHRvIG5vdCBob2xkIHVwIHRoZSB1c2VyIGV4cGVyaWVuY2UuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRJTUVPVVQgPSBwcm9jZXNzLmVudi5URVNUSU5HX0NESyA/IDMwXzAwMCA6IDNfMDAwO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVUkwgPSAnaHR0cHM6Ly9jbGkuY2RrLmRldi10b29scy5hd3MuZGV2L25vdGljZXMuanNvbic7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgbG9hZCgpOiBQcm9taXNlPENhY2hlZENvbm5lY3Rpdml0eT4ge1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAgIGV4cGlyYXRpb246IDAsXG4gICAgICBoYXNDb25uZWN0aXZpdHk6IGZhbHNlLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZzLmV4aXN0c1N5bmMoQ0FDSEVfRklMRV9QQVRIKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKU09OKENBQ0hFX0ZJTEVfUEFUSCkgYXMgQ2FjaGVkQ29ubmVjdGl2aXR5XG4gICAgICAgIDogZGVmYXVsdFZhbHVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyBzYXZlKGNhY2hlZDogQ2FjaGVkQ29ubmVjdGl2aXR5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZzLmVuc3VyZUZpbGUoQ0FDSEVfRklMRV9QQVRIKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSlNPTihDQUNIRV9GSUxFX1BBVEgsIGNhY2hlZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTaWxlbnRseSBpZ25vcmUgY2FjaGUgc2F2ZSBlcnJvcnNcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwaW5nKGFnZW50PzogaHR0cHMuQWdlbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ0hFQUQnLFxuICAgICAgYWdlbnQ6IGFnZW50LFxuICAgICAgdGltZW91dDogdGhpcy5USU1FT1VULFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IGh0dHBzLnJlcXVlc3QoXG4gICAgICAgIE5ldHdvcmtEZXRlY3Rvci5VUkwsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlcy5zdGF0dXNDb2RlICE9PSB1bmRlZmluZWQgJiYgcmVzLnN0YXR1c0NvZGUgPCA1MDApO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIHJlcS5vbignZXJyb3InLCAoKSA9PiByZXNvbHZlKGZhbHNlKSk7XG4gICAgICByZXEub24oJ3RpbWVvdXQnLCAoKSA9PiB7XG4gICAgICAgIHJlcS5kZXN0cm95KCk7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlcS5lbmQoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CachedDataSource = void 0;\nconst fs = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst TIME_TO_LIVE_SUCCESS = 60 * 60 * 1000; // 1 hour\nconst TIME_TO_LIVE_ERROR = 1 * 60 * 1000; // 1 minute\nclass CachedDataSource {\n ioHelper;\n fileName;\n dataSource;\n skipCache;\n constructor(ioHelper, fileName, dataSource, skipCache) {\n this.ioHelper = ioHelper;\n this.fileName = fileName;\n this.dataSource = dataSource;\n this.skipCache = skipCache;\n }\n async fetch() {\n const cachedData = await this.load();\n const data = cachedData.notices;\n const expiration = cachedData.expiration ?? 0;\n if (Date.now() > expiration || this.skipCache) {\n let updatedData = cachedData;\n try {\n updatedData = await this.fetchInner();\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Could not refresh notices: ${e}`);\n updatedData = {\n expiration: Date.now() + TIME_TO_LIVE_ERROR,\n notices: [],\n };\n throw toolkit_error_1.ToolkitError.withCause('NoticesFetchFailed', 'Failed to load CDK notices. Please try again later.', e);\n }\n finally {\n await this.save(updatedData);\n }\n return updatedData.notices;\n }\n else {\n await this.ioHelper.defaults.debug(`Reading cached notices from ${this.fileName}`);\n return data;\n }\n }\n async fetchInner() {\n return {\n expiration: Date.now() + TIME_TO_LIVE_SUCCESS,\n notices: await this.dataSource.fetch(),\n };\n }\n async load() {\n const defaultValue = {\n expiration: 0,\n notices: [],\n };\n try {\n return fs.existsSync(this.fileName)\n ? await fs.readJSON(this.fileName)\n : defaultValue;\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Failed to load notices from cache: ${e}`);\n return defaultValue;\n }\n }\n async save(cached) {\n try {\n await fs.ensureFile(this.fileName);\n await fs.writeJSON(this.fileName, cached);\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Failed to store notices in the cache: ${e}`);\n }\n }\n}\nexports.CachedDataSource = CachedDataSource;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2FjaGVkLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQiwrREFBMkQ7QUFRM0QsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVM7QUFDdEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7QUFFckQsTUFBYSxnQkFBZ0I7SUFFUjtJQUNBO0lBQ0E7SUFDQTtJQUpuQixZQUNtQixRQUFrQixFQUNsQixRQUFnQixFQUNoQixVQUE0QixFQUM1QixTQUFtQjtRQUhuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBVTtJQUV0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxXQUFXLEdBQWtCLFVBQVUsQ0FBQztZQUU1QyxJQUFJLENBQUM7Z0JBQ0gsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxXQUFXLEdBQUc7b0JBQ1osVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxrQkFBa0I7b0JBQzNDLE9BQU8sRUFBRSxFQUFFO2lCQUNaLENBQUM7Z0JBQ0YsTUFBTSw0QkFBWSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxxREFBcUQsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRyxDQUFDO29CQUFTLENBQUM7Z0JBQ1QsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbkYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLG9CQUFvQjtZQUM3QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtTQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLFVBQVUsRUFBRSxDQUFDO1lBQ2IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBRUYsSUFBSSxDQUFDO1lBQ0gsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBa0I7Z0JBQ25ELENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDbkIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RSxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBcUI7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFuRUQsNENBbUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBOb3RpY2UsIE5vdGljZURhdGFTb3VyY2UgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbmludGVyZmFjZSBDYWNoZWROb3RpY2VzIHtcbiAgZXhwaXJhdGlvbjogbnVtYmVyO1xuICBub3RpY2VzOiBOb3RpY2VbXTtcbn1cblxuY29uc3QgVElNRV9UT19MSVZFX1NVQ0NFU1MgPSA2MCAqIDYwICogMTAwMDsgLy8gMSBob3VyXG5jb25zdCBUSU1FX1RPX0xJVkVfRVJST1IgPSAxICogNjAgKiAxMDAwOyAvLyAxIG1pbnV0ZVxuXG5leHBvcnQgY2xhc3MgQ2FjaGVkRGF0YVNvdXJjZSBpbXBsZW1lbnRzIE5vdGljZURhdGFTb3VyY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBOb3RpY2VEYXRhU291cmNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2tpcENhY2hlPzogYm9vbGVhbixcbiAgKSB7XG4gIH1cblxuICBhc3luYyBmZXRjaCgpOiBQcm9taXNlPE5vdGljZVtdPiB7XG4gICAgY29uc3QgY2FjaGVkRGF0YSA9IGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIGNvbnN0IGRhdGEgPSBjYWNoZWREYXRhLm5vdGljZXM7XG4gICAgY29uc3QgZXhwaXJhdGlvbiA9IGNhY2hlZERhdGEuZXhwaXJhdGlvbiA/PyAwO1xuXG4gICAgaWYgKERhdGUubm93KCkgPiBleHBpcmF0aW9uIHx8IHRoaXMuc2tpcENhY2hlKSB7XG4gICAgICBsZXQgdXBkYXRlZERhdGE6IENhY2hlZE5vdGljZXMgPSBjYWNoZWREYXRhO1xuXG4gICAgICB0cnkge1xuICAgICAgICB1cGRhdGVkRGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2hJbm5lcigpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBDb3VsZCBub3QgcmVmcmVzaCBub3RpY2VzOiAke2V9YCk7XG4gICAgICAgIHVwZGF0ZWREYXRhID0ge1xuICAgICAgICAgIGV4cGlyYXRpb246IERhdGUubm93KCkgKyBUSU1FX1RPX0xJVkVfRVJST1IsXG4gICAgICAgICAgbm90aWNlczogW10sXG4gICAgICAgIH07XG4gICAgICAgIHRocm93IFRvb2xraXRFcnJvci53aXRoQ2F1c2UoJ05vdGljZXNGZXRjaEZhaWxlZCcsICdGYWlsZWQgdG8gbG9hZCBDREsgbm90aWNlcy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLCBlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZSh1cGRhdGVkRGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXBkYXRlZERhdGEubm90aWNlcztcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmVhZGluZyBjYWNoZWQgbm90aWNlcyBmcm9tICR7dGhpcy5maWxlTmFtZX1gKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hJbm5lcigpOiBQcm9taXNlPENhY2hlZE5vdGljZXM+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZXhwaXJhdGlvbjogRGF0ZS5ub3coKSArIFRJTUVfVE9fTElWRV9TVUNDRVNTLFxuICAgICAgbm90aWNlczogYXdhaXQgdGhpcy5kYXRhU291cmNlLmZldGNoKCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPENhY2hlZE5vdGljZXM+IHtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSB7XG4gICAgICBleHBpcmF0aW9uOiAwLFxuICAgICAgbm90aWNlczogW10sXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnMuZXhpc3RzU3luYyh0aGlzLmZpbGVOYW1lKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKU09OKHRoaXMuZmlsZU5hbWUpIGFzIENhY2hlZE5vdGljZXNcbiAgICAgICAgOiBkZWZhdWx0VmFsdWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgRmFpbGVkIHRvIGxvYWQgbm90aWNlcyBmcm9tIGNhY2hlOiAke2V9YCk7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZShjYWNoZWQ6IENhY2hlZE5vdGljZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMuZW5zdXJlRmlsZSh0aGlzLmZpbGVOYW1lKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSlNPTih0aGlzLmZpbGVOYW1lLCBjYWNoZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYEZhaWxlZCB0byBzdG9yZSBub3RpY2VzIGluIHRoZSBjYWNoZTogJHtlfWApO1xuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FilteredNotice = exports.NoticesFilter = void 0;\nconst semver = require(\"semver\");\nconst guess_language_1 = require(\"../../util/guess-language\");\nconst tree_1 = require(\"../tree\");\n/**\n * Normalizes the given components structure into DNF form\n */\nfunction normalizeComponents(xs) {\n return xs.map(x => Array.isArray(x) ? x : [x]);\n}\n/**\n * Returns the DNF components for a notice.\n * Uses componentsV2 when schemaVersion is '2', otherwise falls back to components.\n */\nfunction dnfComponents(notice) {\n if (notice.schemaVersion === '2' && notice.componentsV2) {\n return normalizeComponents(notice.componentsV2);\n }\n return normalizeComponents(notice.components);\n}\nfunction renderComponent(c) {\n if (c.name.startsWith('language:')) {\n return `${(0, guess_language_1.languageDisplayName)(c.name.slice('language:'.length))} apps`;\n }\n return `${c.name}: ${c.version}`;\n}\nfunction renderConjunction(xs) {\n return xs.map(renderComponent).join(' AND ');\n}\nclass NoticesFilter {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n async filter(options) {\n const components = [\n ...(await this.constructTreeComponents(options.outDir)),\n ...(await this.otherComponents(options)),\n ];\n return this.findForNamedComponents(options.data, components);\n }\n /**\n * From a set of input options, return the notices components we are searching for\n */\n async otherComponents(options) {\n // Bootstrap environments\n let bootstrappedEnvironments = [];\n for (const env of options.bootstrappedEnvironments) {\n const semverBootstrapVersion = semver.coerce(env.bootstrapStackVersion);\n if (!semverBootstrapVersion) {\n // we don't throw because notices should never crash the cli.\n await this.ioHelper.defaults.warning(`While filtering notices, could not coerce bootstrap version '${env.bootstrapStackVersion}' into semver`);\n continue;\n }\n bootstrappedEnvironments.push({\n name: 'bootstrap',\n version: `${semverBootstrapVersion}`,\n dynamicName: 'ENVIRONMENTS',\n dynamicValue: env.environment.name,\n });\n }\n return [\n // CLI\n {\n name: 'cli',\n version: options.cliVersion,\n },\n // Node version\n {\n name: 'node',\n version: process.version.replace(/^v/, ''), // remove the 'v' prefix.\n dynamicName: 'node',\n },\n // Bootstrap environments\n ...bootstrappedEnvironments,\n // Language\n ...(options.language ? [{\n name: `language:${options.language}`,\n version: '0.0.0',\n dynamicName: 'LANGUAGE',\n dynamicValue: (0, guess_language_1.languageDisplayName)(options.language),\n }] : []),\n ];\n }\n /**\n * Based on a set of component names, find all notices that match one of the given components\n */\n findForNamedComponents(data, actualComponents) {\n return data.flatMap(notice => {\n const ors = this.resolveAliases(dnfComponents(notice));\n // Find the first set of the disjunctions of which all components match against the actual components.\n // Return the actual components we found so that we can inject their dynamic values. A single filter\n // component can match more than one actual component\n for (const ands of ors) {\n const matched = ands.map(affected => actualComponents.filter(actual => this.componentNameMatches(affected, actual) && semver.satisfies(actual.version, affected.version, { includePrerelease: true })));\n // For every clause in the filter we matched one or more components\n if (matched.every(xs => xs.length > 0)) {\n const ret = new FilteredNotice(notice);\n this.addDynamicValues(matched.flatMap(x => x), ret, notice.dynamicValues);\n return [ret];\n }\n }\n return [];\n });\n }\n /**\n * Whether the given \"affected component\" name applies to the given actual component name.\n *\n * The name matches if the name is exactly the same, or the name in the notice\n * is a prefix of the node name when the query ends in '.'.\n */\n componentNameMatches(pattern, actual) {\n return pattern.name.endsWith('.') ? actual.name.startsWith(pattern.name) : pattern.name === actual.name;\n }\n /**\n * Adds dynamic values from the given ActualComponents\n *\n * If there are multiple components with the same dynamic name, they are joined\n * by the separator declared in `specs[name].separator`, defaulting to `','`.\n */\n addDynamicValues(comps, notice, specs) {\n const dynamicValues = {};\n for (const comp of comps) {\n if (comp.dynamicName) {\n dynamicValues[comp.dynamicName] = dynamicValues[comp.dynamicName] ?? [];\n dynamicValues[comp.dynamicName].push(comp.dynamicValue ?? comp.version);\n }\n }\n for (const [key, values] of Object.entries(dynamicValues)) {\n notice.addDynamicValue(key, values.join(specs?.[key]?.separator ?? ','));\n }\n }\n /**\n * Treat 'framework' as an alias for either `aws-cdk-lib.` or `@aws-cdk/core.`.\n *\n * Because it's EITHER `aws-cdk-lib` or `@aws-cdk/core`, we need to add multiple\n * arrays at the top level.\n */\n resolveAliases(ors) {\n return ors.flatMap(ands => {\n const hasFramework = ands.find(c => c.name === 'framework');\n if (!hasFramework) {\n return [ands];\n }\n return [\n ands.map(c => c.name === 'framework' ? { ...c, name: '@aws-cdk/core.' } : c),\n ands.map(c => c.name === 'framework' ? { ...c, name: 'aws-cdk-lib.' } : c),\n ];\n });\n }\n /**\n * Load the construct tree from the given directory and return its components\n */\n async constructTreeComponents(manifestDir) {\n const tree = await (0, tree_1.loadTreeFromDir)(manifestDir, (msg) => this.ioHelper.defaults.trace(msg));\n if (!tree) {\n return [];\n }\n const ret = [];\n recurse(tree);\n return ret;\n function recurse(x) {\n if (x.constructInfo?.fqn && x.constructInfo?.version) {\n ret.push({\n name: x.constructInfo?.fqn,\n version: x.constructInfo?.version,\n });\n }\n for (const child of Object.values(x.children ?? {})) {\n recurse(child);\n }\n }\n }\n}\nexports.NoticesFilter = NoticesFilter;\n/**\n * Notice after passing the filter. A filter can augment a notice with\n * dynamic values as it has access to the dynamic matching data.\n */\nclass FilteredNotice {\n notice;\n dynamicValues = {};\n constructor(notice) {\n this.notice = notice;\n }\n addDynamicValue(key, value) {\n this.dynamicValues[`{resolve:${key}}`] = value;\n }\n format() {\n const componentsValue = dnfComponents(this.notice).map(renderConjunction).join(', ');\n return this.resolveDynamicValues([\n `${this.notice.issueNumber}\\t${this.notice.title}`,\n this.formatOverview(),\n `\\tAffected versions: ${componentsValue}`,\n `\\tMore information at: https://github.com/aws/aws-cdk/issues/${this.notice.issueNumber}`,\n ].join('\\n\\n') + '\\n');\n }\n formatOverview() {\n const wrap = (s) => s.replace(/(?![^\\n]{1,60}$)([^\\n]{1,60})\\s/g, '$1\\n');\n const heading = 'Overview: ';\n const separator = `\\n\\t${' '.repeat(heading.length)}`;\n const content = wrap(this.notice.overview)\n .split('\\n')\n .join(separator);\n return '\\t' + heading + content;\n }\n resolveDynamicValues(input) {\n const pattern = new RegExp(Object.keys(this.dynamicValues).join('|'), 'g');\n return input.replace(pattern, (matched) => this.dynamicValues[matched] ?? matched);\n }\n}\nexports.FilteredNotice = FilteredNotice;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUNqQyw4REFBZ0U7QUFHaEUsa0NBQTBDO0FBRzFDOztHQUVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxFQUFrQztJQUM3RCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNuQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4RCxPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLENBQVk7SUFDbkMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sR0FBRyxJQUFBLG9DQUFtQixFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekUsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxFQUFlO0lBQ3hDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQW1ERCxNQUFhLGFBQWE7SUFDUCxRQUFRLENBQVc7SUFFcEMsWUFBWSxRQUFrQjtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFtQztRQUNyRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFtQztRQUMvRCx5QkFBeUI7UUFDekIsSUFBSSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNuRCxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzVCLDZEQUE2RDtnQkFDN0QsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0VBQWdFLEdBQUcsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLENBQUM7Z0JBQy9JLFNBQVM7WUFDWCxDQUFDO1lBRUQsd0JBQXdCLENBQUMsSUFBSSxDQUFDO2dCQUM1QixJQUFJLEVBQUUsV0FBVztnQkFDakIsT0FBTyxFQUFFLEdBQUcsc0JBQXNCLEVBQUU7Z0JBQ3BDLFdBQVcsRUFBRSxjQUFjO2dCQUMzQixZQUFZLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJO2FBQ25DLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTTtZQUNOO2dCQUNFLElBQUksRUFBRSxLQUFLO2dCQUNYLE9BQU8sRUFBRSxPQUFPLENBQUMsVUFBVTthQUM1QjtZQUVELGVBQWU7WUFDZjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLHlCQUF5QjtnQkFDckUsV0FBVyxFQUFFLE1BQU07YUFDcEI7WUFFRCx5QkFBeUI7WUFDekIsR0FBRyx3QkFBd0I7WUFFM0IsV0FBVztZQUNYLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QixJQUFJLEVBQUUsWUFBWSxPQUFPLENBQUMsUUFBUSxFQUFFO29CQUNwQyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsV0FBVyxFQUFFLFVBQVU7b0JBQ3ZCLFlBQVksRUFBRSxJQUFBLG9DQUFtQixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7aUJBQ3BELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLHNCQUFzQixDQUFDLElBQWMsRUFBRSxnQkFBbUM7UUFDaEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFdkQsc0dBQXNHO1lBQ3RHLG9HQUFvRztZQUNwRyxxREFBcUQ7WUFDckQsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNwRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRW5JLG1FQUFtRTtnQkFDbkUsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUMxRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssb0JBQW9CLENBQUMsT0FBa0IsRUFBRSxNQUF1QjtRQUN0RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxnQkFBZ0IsQ0FDdEIsS0FBd0IsRUFDeEIsTUFBc0IsRUFDdEIsS0FBd0M7UUFFeEMsTUFBTSxhQUFhLEdBQTZCLEVBQUUsQ0FBQztRQUNuRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4RSxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRSxDQUFDO1FBQ0gsQ0FBQztRQUNELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssY0FBYyxDQUFDLEdBQWtCO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixDQUFDO1lBRUQsT0FBTztnQkFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxXQUFtQjtRQUN2RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsc0JBQWUsRUFBQyxXQUFXLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFzQixFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2QsT0FBTyxHQUFHLENBQUM7UUFFWCxTQUFTLE9BQU8sQ0FBQyxDQUFvQjtZQUNuQyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ3JELEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ1AsSUFBSSxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsR0FBRztvQkFDMUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTztpQkFDbEMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFLRCxzQ0EwS0M7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLGNBQWM7SUFHVTtJQUZsQixhQUFhLEdBQThCLEVBQUUsQ0FBQztJQUUvRCxZQUFtQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNqRCxDQUFDO0lBRU0sZUFBZSxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQy9CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQix3QkFBd0IsZUFBZSxFQUFFO1lBQ3pDLGdFQUFnRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtTQUMxRixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLElBQUksR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzthQUN2QyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5CLE9BQU8sSUFBSSxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWE7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUM7SUFDckYsQ0FBQztDQUNGO0FBcENELHdDQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgbGFuZ3VhZ2VEaXNwbGF5TmFtZSB9IGZyb20gJy4uLy4uL3V0aWwvZ3Vlc3MtbGFuZ3VhZ2UnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RUcmVlTm9kZSB9IGZyb20gJy4uL3RyZWUnO1xuaW1wb3J0IHsgbG9hZFRyZWVGcm9tRGlyIH0gZnJvbSAnLi4vdHJlZSc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcHBlZEVudmlyb25tZW50LCBDb21wb25lbnQsIER5bmFtaWNWYWx1ZVNwZWMsIE5vdGljZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIGdpdmVuIGNvbXBvbmVudHMgc3RydWN0dXJlIGludG8gRE5GIGZvcm1cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50cyh4czogQXJyYXk8Q29tcG9uZW50IHwgQ29tcG9uZW50W10+KTogQ29tcG9uZW50W11bXSB7XG4gIHJldHVybiB4cy5tYXAoeCA9PiBBcnJheS5pc0FycmF5KHgpID8geCA6IFt4XSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgRE5GIGNvbXBvbmVudHMgZm9yIGEgbm90aWNlLlxuICogVXNlcyBjb21wb25lbnRzVjIgd2hlbiBzY2hlbWFWZXJzaW9uIGlzICcyJywgb3RoZXJ3aXNlIGZhbGxzIGJhY2sgdG8gY29tcG9uZW50cy5cbiAqL1xuZnVuY3Rpb24gZG5mQ29tcG9uZW50cyhub3RpY2U6IE5vdGljZSk6IENvbXBvbmVudFtdW10ge1xuICBpZiAobm90aWNlLnNjaGVtYVZlcnNpb24gPT09ICcyJyAmJiBub3RpY2UuY29tcG9uZW50c1YyKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbXBvbmVudHMobm90aWNlLmNvbXBvbmVudHNWMik7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZUNvbXBvbmVudHMobm90aWNlLmNvbXBvbmVudHMpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJDb21wb25lbnQoYzogQ29tcG9uZW50KTogc3RyaW5nIHtcbiAgaWYgKGMubmFtZS5zdGFydHNXaXRoKCdsYW5ndWFnZTonKSkge1xuICAgIHJldHVybiBgJHtsYW5ndWFnZURpc3BsYXlOYW1lKGMubmFtZS5zbGljZSgnbGFuZ3VhZ2U6Jy5sZW5ndGgpKX0gYXBwc2A7XG4gIH1cbiAgcmV0dXJuIGAke2MubmFtZX06ICR7Yy52ZXJzaW9ufWA7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckNvbmp1bmN0aW9uKHhzOiBDb21wb25lbnRbXSk6IHN0cmluZyB7XG4gIHJldHVybiB4cy5tYXAocmVuZGVyQ29tcG9uZW50KS5qb2luKCcgQU5EICcpO1xufVxuXG5pbnRlcmZhY2UgQWN0dWFsQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBjb21wb25lbnRcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogSWYgbWF0Y2hlZCwgdW5kZXIgd2hhdCBuYW1lIHNob3VsZCBpdCBiZSBhZGRlZCB0byB0aGUgc2V0IG9mIGR5bmFtaWMgdmFsdWVzXG4gICAqXG4gICAqIFRoZXNlIHdpbGwgYmUgdXNlZCB0byBzdWJzdGl0dXRlIHBsYWNlaG9sZGVycyBpbiB0aGUgbWVzc2FnZSBzdHJpbmcsIHdoZXJlXG4gICAqIHBsYWNlaG9sZGVycyBsb29rIGxpa2UgYHtyZXNvbHZlOlhZWn1gLlxuICAgKlxuICAgKiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGNvbXBvbmVudCB3aXRoIHRoZSBzYW1lIGR5bmFtaWMgbmFtZSwgdGhleSBhcmVcbiAgICogam9pbmVkIGJ5ICcsJy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEb24ndCBhZGQgdG8gdGhlIHNldCBvZiBkeW5hbWljIHZhbHVlc1xuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIG1hdGNoZWQsIHdoYXQgd2Ugc2hvdWxkIHB1dCBpbiB0aGUgc2V0IG9mIGR5bmFtaWMgdmFsdWVzIGluc3RlYWQgb2YgdGhlIHZlcnNpb24uXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiBgZHluYW1pY05hbWVgIGlzIHNldDsgYnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgYWN0dWFsIHZlcnNpb25cbiAgICogb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY1ZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGljZXNGaWx0ZXJGaWx0ZXJPcHRpb25zIHtcbiAgcmVhZG9ubHkgZGF0YTogTm90aWNlW107XG4gIHJlYWRvbmx5IGNsaVZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgb3V0RGlyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJvb3RzdHJhcHBlZEVudmlyb25tZW50czogQm9vdHN0cmFwcGVkRW52aXJvbm1lbnRbXTtcblxuICAvKipcbiAgICogVGhlIGRldGVjdGVkIENESyBhcHAgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGFuZ3VhZ2UgY29tcG9uZW50IGlzIGFkZGVkXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE5vdGljZXNGaWx0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlsdGVyKG9wdGlvbnM6IE5vdGljZXNGaWx0ZXJGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxGaWx0ZXJlZE5vdGljZVtdPiB7XG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICAgIC4uLihhd2FpdCB0aGlzLmNvbnN0cnVjdFRyZWVDb21wb25lbnRzKG9wdGlvbnMub3V0RGlyKSksXG4gICAgICAuLi4oYXdhaXQgdGhpcy5vdGhlckNvbXBvbmVudHMob3B0aW9ucykpLFxuICAgIF07XG5cbiAgICByZXR1cm4gdGhpcy5maW5kRm9yTmFtZWRDb21wb25lbnRzKG9wdGlvbnMuZGF0YSwgY29tcG9uZW50cyk7XG4gIH1cblxuICAvKipcbiAgICogRnJvbSBhIHNldCBvZiBpbnB1dCBvcHRpb25zLCByZXR1cm4gdGhlIG5vdGljZXMgY29tcG9uZW50cyB3ZSBhcmUgc2VhcmNoaW5nIGZvclxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBvdGhlckNvbXBvbmVudHMob3B0aW9uczogTm90aWNlc0ZpbHRlckZpbHRlck9wdGlvbnMpOiBQcm9taXNlPEFjdHVhbENvbXBvbmVudFtdPiB7XG4gICAgLy8gQm9vdHN0cmFwIGVudmlyb25tZW50c1xuICAgIGxldCBib290c3RyYXBwZWRFbnZpcm9ubWVudHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGVudiBvZiBvcHRpb25zLmJvb3RzdHJhcHBlZEVudmlyb25tZW50cykge1xuICAgICAgY29uc3Qgc2VtdmVyQm9vdHN0cmFwVmVyc2lvbiA9IHNlbXZlci5jb2VyY2UoZW52LmJvb3RzdHJhcFN0YWNrVmVyc2lvbik7XG4gICAgICBpZiAoIXNlbXZlckJvb3RzdHJhcFZlcnNpb24pIHtcbiAgICAgICAgLy8gd2UgZG9uJ3QgdGhyb3cgYmVjYXVzZSBub3RpY2VzIHNob3VsZCBuZXZlciBjcmFzaCB0aGUgY2xpLlxuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm5pbmcoYFdoaWxlIGZpbHRlcmluZyBub3RpY2VzLCBjb3VsZCBub3QgY29lcmNlIGJvb3RzdHJhcCB2ZXJzaW9uICcke2Vudi5ib290c3RyYXBTdGFja1ZlcnNpb259JyBpbnRvIHNlbXZlcmApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgYm9vdHN0cmFwcGVkRW52aXJvbm1lbnRzLnB1c2goe1xuICAgICAgICBuYW1lOiAnYm9vdHN0cmFwJyxcbiAgICAgICAgdmVyc2lvbjogYCR7c2VtdmVyQm9vdHN0cmFwVmVyc2lvbn1gLFxuICAgICAgICBkeW5hbWljTmFtZTogJ0VOVklST05NRU5UUycsXG4gICAgICAgIGR5bmFtaWNWYWx1ZTogZW52LmVudmlyb25tZW50Lm5hbWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgLy8gQ0xJXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjbGknLFxuICAgICAgICB2ZXJzaW9uOiBvcHRpb25zLmNsaVZlcnNpb24sXG4gICAgICB9LFxuXG4gICAgICAvLyBOb2RlIHZlcnNpb25cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25vZGUnLFxuICAgICAgICB2ZXJzaW9uOiBwcm9jZXNzLnZlcnNpb24ucmVwbGFjZSgvXnYvLCAnJyksIC8vIHJlbW92ZSB0aGUgJ3YnIHByZWZpeC5cbiAgICAgICAgZHluYW1pY05hbWU6ICdub2RlJyxcbiAgICAgIH0sXG5cbiAgICAgIC8vIEJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAgICAgIC4uLmJvb3RzdHJhcHBlZEVudmlyb25tZW50cyxcblxuICAgICAgLy8gTGFuZ3VhZ2VcbiAgICAgIC4uLihvcHRpb25zLmxhbmd1YWdlID8gW3tcbiAgICAgICAgbmFtZTogYGxhbmd1YWdlOiR7b3B0aW9ucy5sYW5ndWFnZX1gLFxuICAgICAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgICBkeW5hbWljTmFtZTogJ0xBTkdVQUdFJyxcbiAgICAgICAgZHluYW1pY1ZhbHVlOiBsYW5ndWFnZURpc3BsYXlOYW1lKG9wdGlvbnMubGFuZ3VhZ2UpLFxuICAgICAgfV0gOiBbXSksXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCYXNlZCBvbiBhIHNldCBvZiBjb21wb25lbnQgbmFtZXMsIGZpbmQgYWxsIG5vdGljZXMgdGhhdCBtYXRjaCBvbmUgb2YgdGhlIGdpdmVuIGNvbXBvbmVudHNcbiAgICovXG4gIHByaXZhdGUgZmluZEZvck5hbWVkQ29tcG9uZW50cyhkYXRhOiBOb3RpY2VbXSwgYWN0dWFsQ29tcG9uZW50czogQWN0dWFsQ29tcG9uZW50W10pOiBGaWx0ZXJlZE5vdGljZVtdIHtcbiAgICByZXR1cm4gZGF0YS5mbGF0TWFwKG5vdGljZSA9PiB7XG4gICAgICBjb25zdCBvcnMgPSB0aGlzLnJlc29sdmVBbGlhc2VzKGRuZkNvbXBvbmVudHMobm90aWNlKSk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHNldCBvZiB0aGUgZGlzanVuY3Rpb25zIG9mIHdoaWNoIGFsbCBjb21wb25lbnRzIG1hdGNoIGFnYWluc3QgdGhlIGFjdHVhbCBjb21wb25lbnRzLlxuICAgICAgLy8gUmV0dXJuIHRoZSBhY3R1YWwgY29tcG9uZW50cyB3ZSBmb3VuZCBzbyB0aGF0IHdlIGNhbiBpbmplY3QgdGhlaXIgZHluYW1pYyB2YWx1ZXMuIEEgc2luZ2xlIGZpbHRlclxuICAgICAgLy8gY29tcG9uZW50IGNhbiBtYXRjaCBtb3JlIHRoYW4gb25lIGFjdHVhbCBjb21wb25lbnRcbiAgICAgIGZvciAoY29uc3QgYW5kcyBvZiBvcnMpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGFuZHMubWFwKGFmZmVjdGVkID0+IGFjdHVhbENvbXBvbmVudHMuZmlsdGVyKGFjdHVhbCA9PlxuICAgICAgICAgIHRoaXMuY29tcG9uZW50TmFtZU1hdGNoZXMoYWZmZWN0ZWQsIGFjdHVhbCkgJiYgc2VtdmVyLnNhdGlzZmllcyhhY3R1YWwudmVyc2lvbiwgYWZmZWN0ZWQudmVyc2lvbiwgeyBpbmNsdWRlUHJlcmVsZWFzZTogdHJ1ZSB9KSkpO1xuXG4gICAgICAgIC8vIEZvciBldmVyeSBjbGF1c2UgaW4gdGhlIGZpbHRlciB3ZSBtYXRjaGVkIG9uZSBvciBtb3JlIGNvbXBvbmVudHNcbiAgICAgICAgaWYgKG1hdGNoZWQuZXZlcnkoeHMgPT4geHMubGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICBjb25zdCByZXQgPSBuZXcgRmlsdGVyZWROb3RpY2Uobm90aWNlKTtcbiAgICAgICAgICB0aGlzLmFkZER5bmFtaWNWYWx1ZXMobWF0Y2hlZC5mbGF0TWFwKHggPT4geCksIHJldCwgbm90aWNlLmR5bmFtaWNWYWx1ZXMpO1xuICAgICAgICAgIHJldHVybiBbcmV0XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW107XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2l2ZW4gXCJhZmZlY3RlZCBjb21wb25lbnRcIiBuYW1lIGFwcGxpZXMgdG8gdGhlIGdpdmVuIGFjdHVhbCBjb21wb25lbnQgbmFtZS5cbiAgICpcbiAgICogVGhlIG5hbWUgbWF0Y2hlcyBpZiB0aGUgbmFtZSBpcyBleGFjdGx5IHRoZSBzYW1lLCBvciB0aGUgbmFtZSBpbiB0aGUgbm90aWNlXG4gICAqIGlzIGEgcHJlZml4IG9mIHRoZSBub2RlIG5hbWUgd2hlbiB0aGUgcXVlcnkgZW5kcyBpbiAnLicuXG4gICAqL1xuICBwcml2YXRlIGNvbXBvbmVudE5hbWVNYXRjaGVzKHBhdHRlcm46IENvbXBvbmVudCwgYWN0dWFsOiBBY3R1YWxDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGF0dGVybi5uYW1lLmVuZHNXaXRoKCcuJykgPyBhY3R1YWwubmFtZS5zdGFydHNXaXRoKHBhdHRlcm4ubmFtZSkgOiBwYXR0ZXJuLm5hbWUgPT09IGFjdHVhbC5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgZHluYW1pYyB2YWx1ZXMgZnJvbSB0aGUgZ2l2ZW4gQWN0dWFsQ29tcG9uZW50c1xuICAgKlxuICAgKiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgY29tcG9uZW50cyB3aXRoIHRoZSBzYW1lIGR5bmFtaWMgbmFtZSwgdGhleSBhcmUgam9pbmVkXG4gICAqIGJ5IHRoZSBzZXBhcmF0b3IgZGVjbGFyZWQgaW4gYHNwZWNzW25hbWVdLnNlcGFyYXRvcmAsIGRlZmF1bHRpbmcgdG8gYCcsJ2AuXG4gICAqL1xuICBwcml2YXRlIGFkZER5bmFtaWNWYWx1ZXMoXG4gICAgY29tcHM6IEFjdHVhbENvbXBvbmVudFtdLFxuICAgIG5vdGljZTogRmlsdGVyZWROb3RpY2UsXG4gICAgc3BlY3M/OiBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljVmFsdWVTcGVjPixcbiAgKSB7XG4gICAgY29uc3QgZHluYW1pY1ZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gICAgZm9yIChjb25zdCBjb21wIG9mIGNvbXBzKSB7XG4gICAgICBpZiAoY29tcC5keW5hbWljTmFtZSkge1xuICAgICAgICBkeW5hbWljVmFsdWVzW2NvbXAuZHluYW1pY05hbWVdID0gZHluYW1pY1ZhbHVlc1tjb21wLmR5bmFtaWNOYW1lXSA/PyBbXTtcbiAgICAgICAgZHluYW1pY1ZhbHVlc1tjb21wLmR5bmFtaWNOYW1lXS5wdXNoKGNvbXAuZHluYW1pY1ZhbHVlID8/IGNvbXAudmVyc2lvbik7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVzXSBvZiBPYmplY3QuZW50cmllcyhkeW5hbWljVmFsdWVzKSkge1xuICAgICAgbm90aWNlLmFkZER5bmFtaWNWYWx1ZShrZXksIHZhbHVlcy5qb2luKHNwZWNzPy5ba2V5XT8uc2VwYXJhdG9yID8/ICcsJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmVhdCAnZnJhbWV3b3JrJyBhcyBhbiBhbGlhcyBmb3IgZWl0aGVyIGBhd3MtY2RrLWxpYi5gIG9yIGBAYXdzLWNkay9jb3JlLmAuXG4gICAqXG4gICAqIEJlY2F1c2UgaXQncyBFSVRIRVIgYGF3cy1jZGstbGliYCBvciBgQGF3cy1jZGsvY29yZWAsIHdlIG5lZWQgdG8gYWRkIG11bHRpcGxlXG4gICAqIGFycmF5cyBhdCB0aGUgdG9wIGxldmVsLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlQWxpYXNlcyhvcnM6IENvbXBvbmVudFtdW10pOiBDb21wb25lbnRbXVtdIHtcbiAgICByZXR1cm4gb3JzLmZsYXRNYXAoYW5kcyA9PiB7XG4gICAgICBjb25zdCBoYXNGcmFtZXdvcmsgPSBhbmRzLmZpbmQoYyA9PiBjLm5hbWUgPT09ICdmcmFtZXdvcmsnKTtcbiAgICAgIGlmICghaGFzRnJhbWV3b3JrKSB7XG4gICAgICAgIHJldHVybiBbYW5kc107XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIGFuZHMubWFwKGMgPT4gYy5uYW1lID09PSAnZnJhbWV3b3JrJyA/IHsgLi4uYywgbmFtZTogJ0Bhd3MtY2RrL2NvcmUuJyB9IDogYyksXG4gICAgICAgIGFuZHMubWFwKGMgPT4gYy5uYW1lID09PSAnZnJhbWV3b3JrJyA/IHsgLi4uYywgbmFtZTogJ2F3cy1jZGstbGliLicgfSA6IGMpLFxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBjb25zdHJ1Y3QgdHJlZSBmcm9tIHRoZSBnaXZlbiBkaXJlY3RvcnkgYW5kIHJldHVybiBpdHMgY29tcG9uZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjb25zdHJ1Y3RUcmVlQ29tcG9uZW50cyhtYW5pZmVzdERpcjogc3RyaW5nKTogUHJvbWlzZTxBY3R1YWxDb21wb25lbnRbXT4ge1xuICAgIGNvbnN0IHRyZWUgPSBhd2FpdCBsb2FkVHJlZUZyb21EaXIobWFuaWZlc3REaXIsIChtc2c6IHN0cmluZykgPT4gdGhpcy5pb0hlbHBlci5kZWZhdWx0cy50cmFjZShtc2cpKTtcbiAgICBpZiAoIXRyZWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXQ6IEFjdHVhbENvbXBvbmVudFtdID0gW107XG4gICAgcmVjdXJzZSh0cmVlKTtcbiAgICByZXR1cm4gcmV0O1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzZSh4OiBDb25zdHJ1Y3RUcmVlTm9kZSkge1xuICAgICAgaWYgKHguY29uc3RydWN0SW5mbz8uZnFuICYmIHguY29uc3RydWN0SW5mbz8udmVyc2lvbikge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgbmFtZTogeC5jb25zdHJ1Y3RJbmZvPy5mcW4sXG4gICAgICAgICAgdmVyc2lvbjogeC5jb25zdHJ1Y3RJbmZvPy52ZXJzaW9uLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBPYmplY3QudmFsdWVzKHguY2hpbGRyZW4gPz8ge30pKSB7XG4gICAgICAgIHJlY3Vyc2UoY2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIE5vdGljZSBhZnRlciBwYXNzaW5nIHRoZSBmaWx0ZXIuIEEgZmlsdGVyIGNhbiBhdWdtZW50IGEgbm90aWNlIHdpdGhcbiAqIGR5bmFtaWMgdmFsdWVzIGFzIGl0IGhhcyBhY2Nlc3MgdG8gdGhlIGR5bmFtaWMgbWF0Y2hpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbHRlcmVkTm90aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkeW5hbWljVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBub3RpY2U6IE5vdGljZSkge1xuICB9XG5cbiAgcHVibGljIGFkZER5bmFtaWNWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZHluYW1pY1ZhbHVlc1tge3Jlc29sdmU6JHtrZXl9fWBdID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tcG9uZW50c1ZhbHVlID0gZG5mQ29tcG9uZW50cyh0aGlzLm5vdGljZSkubWFwKHJlbmRlckNvbmp1bmN0aW9uKS5qb2luKCcsICcpO1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVEeW5hbWljVmFsdWVzKFtcbiAgICAgIGAke3RoaXMubm90aWNlLmlzc3VlTnVtYmVyfVxcdCR7dGhpcy5ub3RpY2UudGl0bGV9YCxcbiAgICAgIHRoaXMuZm9ybWF0T3ZlcnZpZXcoKSxcbiAgICAgIGBcXHRBZmZlY3RlZCB2ZXJzaW9uczogJHtjb21wb25lbnRzVmFsdWV9YCxcbiAgICAgIGBcXHRNb3JlIGluZm9ybWF0aW9uIGF0OiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLyR7dGhpcy5ub3RpY2UuaXNzdWVOdW1iZXJ9YCxcbiAgICBdLmpvaW4oJ1xcblxcbicpICsgJ1xcbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRPdmVydmlldygpIHtcbiAgICBjb25zdCB3cmFwID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC8oPyFbXlxcbl17MSw2MH0kKShbXlxcbl17MSw2MH0pXFxzL2csICckMVxcbicpO1xuXG4gICAgY29uc3QgaGVhZGluZyA9ICdPdmVydmlldzogJztcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBgXFxuXFx0JHsnICcucmVwZWF0KGhlYWRpbmcubGVuZ3RoKX1gO1xuICAgIGNvbnN0IGNvbnRlbnQgPSB3cmFwKHRoaXMubm90aWNlLm92ZXJ2aWV3KVxuICAgICAgLnNwbGl0KCdcXG4nKVxuICAgICAgLmpvaW4oc2VwYXJhdG9yKTtcblxuICAgIHJldHVybiAnXFx0JyArIGhlYWRpbmcgKyBjb250ZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRHluYW1pY1ZhbHVlcyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChPYmplY3Qua2V5cyh0aGlzLmR5bmFtaWNWYWx1ZXMpLmpvaW4oJ3wnKSwgJ2cnKTtcbiAgICByZXR1cm4gaW5wdXQucmVwbGFjZShwYXR0ZXJuLCAobWF0Y2hlZCkgPT4gdGhpcy5keW5hbWljVmFsdWVzW21hdGNoZWRdID8/IG1hdGNoZWQpO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./notices\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ub3RpY2VzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Notices = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"../../util\");\nconst cached_data_source_1 = require(\"./cached-data-source\");\nconst filter_1 = require(\"./filter\");\nconst web_data_source_1 = require(\"./web-data-source\");\nconst private_1 = require(\"../io/private\");\nconst CACHE_FILE_PATH = path.join((0, util_1.cdkCacheDir)(), 'notices.json');\n/**\n * Provides access to notices the CLI can display.\n */\nclass Notices {\n /**\n * Create an instance. Note that this replaces the singleton.\n */\n static create(props) {\n this._instance = new Notices(props);\n return this._instance;\n }\n /**\n * Get the singleton instance. May return `undefined` if `create` has not been called.\n */\n static get() {\n return this._instance;\n }\n static _instance;\n context;\n output;\n language;\n acknowledgedIssueNumbers;\n httpOptions;\n ioHelper;\n cliVersion;\n data = new Set();\n // sets don't deduplicate interfaces, so we use a map.\n bootstrappedEnvironments = new Map();\n constructor(props) {\n this.context = props.context;\n this.acknowledgedIssueNumbers = new Set(this.context.get('acknowledged-issue-numbers') ?? []);\n this.output = props.output ?? 'cdk.out';\n this.language = props.language;\n this.httpOptions = props.httpOptions ?? {};\n this.ioHelper = (0, private_1.asIoHelper)(props.ioHost, 'notices' /* forcing a CliAction to a ToolkitAction */);\n this.cliVersion = props.cliVersion;\n }\n /**\n * Add a bootstrap information to filter on. Can have multiple values\n * in case of multi-environment deployments.\n */\n addBootstrappedEnvironment(bootstrapped) {\n const key = [\n bootstrapped.bootstrapStackVersion,\n bootstrapped.environment.account,\n bootstrapped.environment.region,\n bootstrapped.environment.name,\n ].join(':');\n this.bootstrappedEnvironments.set(key, bootstrapped);\n }\n /**\n * Refresh the list of notices this instance is aware of.\n *\n * This method throws an error if the data source fails to fetch notices.\n * When using, consider if execution should halt immdiately or if catching the error and continuing is more appropriate\n *\n * @throws on failure to refresh the data source\n */\n async refresh(options = {}) {\n const innerDataSource = options.dataSource ?? new web_data_source_1.WebsiteNoticeDataSource(this.ioHelper, this.httpOptions);\n const dataSource = new cached_data_source_1.CachedDataSource(this.ioHelper, CACHE_FILE_PATH, innerDataSource, options.force ?? false);\n const notices = await dataSource.fetch();\n this.data = new Set(notices);\n }\n /**\n * Filter the data source for relevant notices\n */\n async filter(options = {}) {\n return new filter_1.NoticesFilter(this.ioHelper).filter({\n data: this.noticesFromData(options.includeAcknowledged ?? false),\n cliVersion: this.cliVersion,\n outDir: this.output,\n bootstrappedEnvironments: Array.from(this.bootstrappedEnvironments.values()),\n language: this.language,\n });\n }\n /**\n * Display the relevant notices (unless context dictates we shouldn't).\n */\n async display(options = {}) {\n const filteredNotices = await this.filter(options);\n if (filteredNotices.length > 0) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0100.msg([\n '',\n 'NOTICES (What\\'s this? https://github.com/aws/aws-cdk/wiki/CLI-Notices)',\n '',\n ].join('\\n')));\n for (const filtered of filteredNotices) {\n const formatted = filtered.format() + '\\n';\n switch (filtered.notice.severity) {\n case 'warning':\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_W0101.msg(formatted));\n break;\n case 'error':\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E0101.msg(formatted));\n break;\n default:\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0101.msg(formatted));\n break;\n }\n }\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0100.msg(`If you don't want to see a notice anymore, use \"cdk acknowledge \". For example, \"cdk acknowledge ${filteredNotices[0].notice.issueNumber}\".`));\n }\n if (options.showTotal ?? false) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0100.msg(`\\nThere are ${filteredNotices.length} unacknowledged notice(s).`));\n }\n }\n /**\n * List all notices available in the data source.\n *\n * @param includeAcknowlegded - Whether to include acknowledged notices.\n */\n noticesFromData(includeAcknowlegded = false) {\n const data = Array.from(this.data);\n if (includeAcknowlegded) {\n return data;\n }\n return data.filter(n => !this.acknowledgedIssueNumbers.has(n.issueNumber));\n }\n}\nexports.Notices = Notices;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5vdGljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkJBQTZCO0FBQzdCLHFDQUF5QztBQUd6Qyw2REFBd0Q7QUFFeEQscUNBQXlDO0FBRXpDLHVEQUE0RDtBQUU1RCwyQ0FBK0M7QUFFL0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGtCQUFXLEdBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztBQXNGakU7O0dBRUc7QUFDSCxNQUFhLE9BQU87SUFDbEI7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQW1CO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxHQUFHO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxNQUFNLENBQUMsU0FBUyxDQUFzQjtJQUU3QixPQUFPLENBQVU7SUFDakIsTUFBTSxDQUFTO0lBQ2YsUUFBUSxDQUFVO0lBQ2xCLHdCQUF3QixDQUFjO0lBQ3RDLFdBQVcsQ0FBcUI7SUFDaEMsUUFBUSxDQUFXO0lBQ25CLFVBQVUsQ0FBUztJQUU1QixJQUFJLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFdEMsc0RBQXNEO0lBQ3JDLHdCQUF3QixHQUF5QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTVGLFlBQW9CLEtBQW1CO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RixJ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LENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0NBQ0Y7QUF2SUQsMEJBdUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJ2h0dHBzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjZGtDYWNoZURpciB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IElJb0hvc3QgfSBmcm9tICcuLi9pbyc7XG5pbXBvcnQgeyBDYWNoZWREYXRhU291cmNlIH0gZnJvbSAnLi9jYWNoZWQtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJlZE5vdGljZSB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IE5vdGljZXNGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcHBlZEVudmlyb25tZW50LCBOb3RpY2UsIE5vdGljZURhdGFTb3VyY2UgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFdlYnNpdGVOb3RpY2VEYXRhU291cmNlIH0gZnJvbSAnLi93ZWItZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8sIGFzSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuY29uc3QgQ0FDSEVfRklMRV9QQVRIID0gcGF0aC5qb2luKGNka0NhY2hlRGlyKCksICdub3RpY2VzLmpzb24nKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgSFRUUFMgcmVxdWVzdHMgbWFkZSBieSBOb3RpY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWNlc0h0dHBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhZ2VudCByZXNwb25zaWJsZSBmb3IgbWFraW5nIHRoZSBuZXR3b3JrIHJlcXVlc3RzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBzbyBzZXQgdXAgYSBwcm94eSBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIHNoYXJlZCBnbG9iYWwgbm9kZSBhZ2VudFxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnQ/OiBBZ2VudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpY2VzUHJvcHMge1xuICAvKipcbiAgICogQ0RLIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEdsb2JhbCBDTEkgb3B0aW9uIGZvciBvdXRwdXQgZGlyZWN0b3J5IGZvciBzeW50aGVzaXplZCBjbG91ZCBhc3NlbWJseVxuICAgKlxuICAgKiBAZGVmYXVsdCAnY2RrLm91dCdcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRldGVjdGVkIENESyBhcHAgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGFuZ3VhZ2UgZmlsdGVyaW5nXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIEhUVFBTIHJlcXVlc3RzIG1hZGUgYnkgTm90aWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE9wdGlvbnM/OiBOb3RpY2VzSHR0cE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXJlIG1lc3NhZ2VzIGFyZSBnb2luZyB0byBiZSBzZW50XG4gICAqL1xuICByZWFkb25seSBpb0hvc3Q6IElJb0hvc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBDTElcbiAgICovXG4gIHJlYWRvbmx5IGNsaVZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpY2VzRmlsdGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIG5vdGljZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhY2tub3dsZWRnZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlQWNrbm93bGVkZ2VkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpY2VzRGlzcGxheU9wdGlvbnMgZXh0ZW5kcyBOb3RpY2VzRmlsdGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFwcGVuZCB0aGUgdG90YWwgbnVtYmVyIG9mIHVuYWNrbm93bGVkZ2VkIG5vdGljZXMgdG8gdGhlIGRpc3BsYXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzaG93VG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGljZXNSZWZyZXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIGEgY2FjaGUgcmVmcmVzaCByZWdhcmRsZXNzIG9mIGV4cGlyYXRpb24gdGltZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGF0YSBzb3VyY2UgZm9yIGZldGNoIG5vdGljZXMgZnJvbS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBXZWJzaXRlTm90aWNlRGF0YVNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVNvdXJjZT86IE5vdGljZURhdGFTb3VyY2U7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYWNjZXNzIHRvIG5vdGljZXMgdGhlIENMSSBjYW4gZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vdGljZXMge1xuICAvKipcbiAgICogQ3JlYXRlIGFuIGluc3RhbmNlLiBOb3RlIHRoYXQgdGhpcyByZXBsYWNlcyB0aGUgc2luZ2xldG9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUocHJvcHM6IE5vdGljZXNQcm9wcyk6IE5vdGljZXMge1xuICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IE5vdGljZXMocHJvcHMpO1xuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZS4gTWF5IHJldHVybiBgdW5kZWZpbmVkYCBpZiBgY3JlYXRlYCBoYXMgbm90IGJlZW4gY2FsbGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQoKTogTm90aWNlcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBOb3RpY2VzIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogQ29udGV4dDtcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZT86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBhY2tub3dsZWRnZWRJc3N1ZU51bWJlcnM6IFNldDxOdW1iZXI+O1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHBPcHRpb25zOiBOb3RpY2VzSHR0cE9wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaVZlcnNpb246IHN0cmluZztcblxuICBwcml2YXRlIGRhdGE6IFNldDxOb3RpY2U+ID0gbmV3IFNldCgpO1xuXG4gIC8vIHNldHMgZG9uJ3QgZGVkdXBsaWNhdGUgaW50ZXJmYWNlcywgc28gd2UgdXNlIGEgbWFwLlxuICBwcml2YXRlIHJlYWRvbmx5IGJvb3RzdHJhcHBlZEVudmlyb25tZW50czogTWFwPHN0cmluZywgQm9vdHN0cmFwcGVkRW52aXJvbm1lbnQ+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJvcHM6IE5vdGljZXNQcm9wcykge1xuICAgIHRoaXMuY29udGV4dCA9IHByb3BzLmNvbnRleHQ7XG4gICAgdGhpcy5hY2tub3dsZWRnZWRJc3N1ZU51bWJlcnMgPSBuZXcgU2V0KHRoaXMuY29udGV4dC5nZXQoJ2Fja25vd2xlZGdlZC1pc3N1ZS1udW1iZXJzJykgPz8gW10pO1xuICAgIHRoaXMub3V0cHV0ID0gcHJvcHMub3V0cHV0ID8/ICdjZGsub3V0JztcbiAgICB0aGlzLmxhbmd1YWdlID0gcHJvcHMubGFuZ3VhZ2U7XG4gICAgdGhpcy5odHRwT3B0aW9ucyA9IHByb3BzLmh0dHBPcHRpb25zID8/IHt9O1xuICAgIHRoaXMuaW9IZWxwZXIgPSBhc0lvSGVscGVyKHByb3BzLmlvSG9zdCwgJ25vdGljZXMnIGFzIGFueSAvKiBmb3JjaW5nIGEgQ2xpQWN0aW9uIHRvIGEgVG9vbGtpdEFjdGlvbiAqLyk7XG4gICAgdGhpcy5jbGlWZXJzaW9uID0gcHJvcHMuY2xpVmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBib290c3RyYXAgaW5mb3JtYXRpb24gdG8gZmlsdGVyIG9uLiBDYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXNcbiAgICogaW4gY2FzZSBvZiBtdWx0aS1lbnZpcm9ubWVudCBkZXBsb3ltZW50cy5cbiAgICovXG4gIHB1YmxpYyBhZGRCb290c3RyYXBwZWRFbnZpcm9ubWVudChib290c3RyYXBwZWQ6IEJvb3RzdHJhcHBlZEVudmlyb25tZW50KSB7XG4gICAgY29uc3Qga2V5ID0gW1xuICAgICAgYm9vdHN0cmFwcGVkLmJvb3RzdHJhcFN0YWNrVmVyc2lvbixcbiAgICAgIGJvb3RzdHJhcHBlZC5lbnZpcm9ubWVudC5hY2NvdW50LFxuICAgICAgYm9vdHN0cmFwcGVkLmVudmlyb25tZW50LnJlZ2lvbixcbiAgICAgIGJvb3RzdHJhcHBlZC5lbnZpcm9ubWVudC5uYW1lLFxuICAgIF0uam9pbignOicpO1xuICAgIHRoaXMuYm9vdHN0cmFwcGVkRW52aXJvbm1lbnRzLnNldChrZXksIGJvb3RzdHJhcHBlZCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaCB0aGUgbGlzdCBvZiBub3RpY2VzIHRoaXMgaW5zdGFuY2UgaXMgYXdhcmUgb2YuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHRocm93cyBhbiBlcnJvciBpZiB0aGUgZGF0YSBzb3VyY2UgZmFpbHMgdG8gZmV0Y2ggbm90aWNlcy5cbiAgICogV2hlbiB1c2luZywgY29uc2lkZXIgaWYgZXhlY3V0aW9uIHNob3VsZCBoYWx0IGltbWRpYXRlbHkgb3IgaWYgY2F0Y2hpbmcgdGhlIGVycm9yIGFuZCBjb250aW51aW5nIGlzIG1vcmUgYXBwcm9wcmlhdGVcbiAgICpcbiAgICogQHRocm93cyBvbiBmYWlsdXJlIHRvIHJlZnJlc2ggdGhlIGRhdGEgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVmcmVzaChvcHRpb25zOiBOb3RpY2VzUmVmcmVzaE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGlubmVyRGF0YVNvdXJjZSA9IG9wdGlvbnMuZGF0YVNvdXJjZSA/PyBuZXcgV2Vic2l0ZU5vdGljZURhdGFTb3VyY2UodGhpcy5pb0hlbHBlciwgdGhpcy5odHRwT3B0aW9ucyk7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IG5ldyBDYWNoZWREYXRhU291cmNlKHRoaXMuaW9IZWxwZXIsIENBQ0hFX0ZJTEVfUEFUSCwgaW5uZXJEYXRhU291cmNlLCBvcHRpb25zLmZvcmNlID8/IGZhbHNlKTtcbiAgICBjb25zdCBub3RpY2VzID0gYXdhaXQgZGF0YVNvdXJjZS5mZXRjaCgpO1xuICAgIHRoaXMuZGF0YSA9IG5ldyBTZXQobm90aWNlcyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIHRoZSBkYXRhIHNvdXJjZSBmb3IgcmVsZXZhbnQgbm90aWNlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGZpbHRlcihvcHRpb25zOiBOb3RpY2VzRGlzcGxheU9wdGlvbnMgPSB7fSk6IFByb21pc2U8RmlsdGVyZWROb3RpY2VbXT4ge1xuICAgIHJldHVybiBuZXcgTm90aWNlc0ZpbHRlcih0aGlzLmlvSGVscGVyKS5maWx0ZXIoe1xuICAgICAgZGF0YTogdGhpcy5ub3RpY2VzRnJvbURhdGEob3B0aW9ucy5pbmNsdWRlQWNrbm93bGVkZ2VkID8/IGZhbHNlKSxcbiAgICAgIGNsaVZlcnNpb246IHRoaXMuY2xpVmVyc2lvbixcbiAgICAgIG91dERpcjogdGhpcy5vdXRwdXQsXG4gICAgICBib290c3RyYXBwZWRFbnZpcm9ubWVudHM6IEFycmF5LmZyb20odGhpcy5ib290c3RyYXBwZWRFbnZpcm9ubWVudHMudmFsdWVzKCkpLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheSB0aGUgcmVsZXZhbnQgbm90aWNlcyAodW5sZXNzIGNvbnRleHQgZGljdGF0ZXMgd2Ugc2hvdWxkbid0KS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkaXNwbGF5KG9wdGlvbnM6IE5vdGljZXNEaXNwbGF5T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsdGVyZWROb3RpY2VzID0gYXdhaXQgdGhpcy5maWx0ZXIob3B0aW9ucyk7XG5cbiAgICBpZiAoZmlsdGVyZWROb3RpY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kwMTAwLm1zZyhbXG4gICAgICAgICcnLFxuICAgICAgICAnTk9USUNFUyAgICAgICAgIChXaGF0XFwncyB0aGlzPyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvd2lraS9DTEktTm90aWNlcyknLFxuICAgICAgICAnJyxcbiAgICAgIF0uam9pbignXFxuJykpKTtcbiAgICAgIGZvciAoY29uc3QgZmlsdGVyZWQgb2YgZmlsdGVyZWROb3RpY2VzKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZpbHRlcmVkLmZvcm1hdCgpICsgJ1xcbic7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyZWQubm90aWNlLnNldmVyaXR5KSB7XG4gICAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9XMDEwMS5tc2coZm9ybWF0dGVkKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FMDEwMS5tc2coZm9ybWF0dGVkKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTAxMDEubXNnKGZvcm1hdHRlZCkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kwMTAwLm1zZyhcbiAgICAgICAgYElmIHlvdSBkb24ndCB3YW50IHRvIHNlZSBhIG5vdGljZSBhbnltb3JlLCB1c2UgXCJjZGsgYWNrbm93bGVkZ2UgPGlkPlwiLiBGb3IgZXhhbXBsZSwgXCJjZGsgYWNrbm93bGVkZ2UgJHtmaWx0ZXJlZE5vdGljZXNbMF0ubm90aWNlLmlzc3VlTnVtYmVyfVwiLmAsXG4gICAgICApKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5zaG93VG90YWwgPz8gZmFsc2UpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kwMTAwLm1zZyhcbiAgICAgICAgYFxcblRoZXJlIGFyZSAke2ZpbHRlcmVkTm90aWNlcy5sZW5ndGh9IHVuYWNrbm93bGVkZ2VkIG5vdGljZShzKS5gLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIG5vdGljZXMgYXZhaWxhYmxlIGluIHRoZSBkYXRhIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIGluY2x1ZGVBY2tub3dsZWdkZWQgLSBXaGV0aGVyIHRvIGluY2x1ZGUgYWNrbm93bGVkZ2VkIG5vdGljZXMuXG4gICAqL1xuICBwcml2YXRlIG5vdGljZXNGcm9tRGF0YShpbmNsdWRlQWNrbm93bGVnZGVkID0gZmFsc2UpOiBOb3RpY2VbXSB7XG4gICAgY29uc3QgZGF0YSA9IEFycmF5LmZyb20odGhpcy5kYXRhKTtcblxuICAgIGlmIChpbmNsdWRlQWNrbm93bGVnZGVkKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YS5maWx0ZXIobiA9PiAhdGhpcy5hY2tub3dsZWRnZWRJc3N1ZU51bWJlcnMuaGFzKG4uaXNzdWVOdW1iZXIpKTtcbiAgfVxufVxuXG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsiteNoticeDataSource = exports.WebsiteNoticeDataSourceProps = void 0;\nconst https = require(\"node:https\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst network_detector_1 = require(\"../network-detector/network-detector\");\n/**\n * A data source that fetches notices from the CDK notices data source\n */\nclass WebsiteNoticeDataSourceProps {\n /**\n * The URL to load notices from.\n *\n * Note this must be a valid JSON document in the CDK notices data schema.\n *\n * @see https://github.com/cdklabs/aws-cdk-notices\n *\n * @default - Official CDK notices\n */\n url;\n /**\n * The agent responsible for making the network requests.\n *\n * Use this so set up a proxy connection.\n *\n * @default - Uses the shared global node agent\n */\n agent;\n}\nexports.WebsiteNoticeDataSourceProps = WebsiteNoticeDataSourceProps;\nclass WebsiteNoticeDataSource {\n ioHelper;\n /**\n * The URL notices are loaded from.\n */\n url;\n agent;\n constructor(ioHelper, props = {}) {\n this.ioHelper = ioHelper;\n this.agent = props.agent;\n this.url = props.url ?? 'https://cli.cdk.dev-tools.aws.dev/notices.json';\n }\n async fetch() {\n // Check connectivity before attempting network request\n const hasConnectivity = await network_detector_1.NetworkDetector.hasConnectivity(this.agent);\n if (!hasConnectivity) {\n throw new toolkit_error_1.ToolkitError('NoConnectivity', 'No internet connectivity detected');\n }\n // We are observing lots of timeouts when running in a massively parallel\n // integration test environment, so wait for a longer timeout there.\n //\n // In production, have a short timeout to not hold up the user experience.\n const timeout = process.env.CDK_NOTICES_TIMEOUT !== undefined\n ? parseInt(process.env.CDK_NOTICES_TIMEOUT, 10)\n : process.env.TESTING_CDK\n ? 30_000 : 3_000;\n const options = {\n agent: this.agent,\n };\n const notices = await new Promise((resolve, reject) => {\n let req;\n let timer = setTimeout(() => {\n if (req) {\n req.destroy(new toolkit_error_1.ToolkitError('RequestTimeout', 'Request timed out'));\n }\n }, timeout);\n timer.unref();\n try {\n req = https.get(this.url, options, res => {\n if (res.statusCode === 200) {\n res.setEncoding('utf8');\n let rawData = '';\n res.on('data', (chunk) => {\n rawData += chunk;\n });\n res.on('end', () => {\n try {\n const data = JSON.parse(rawData).notices;\n if (!data) {\n throw new toolkit_error_1.ToolkitError('MissingNoticesKey', \"'notices' key is missing from received data\");\n }\n resolve(data ?? []);\n }\n catch (e) {\n reject(toolkit_error_1.ToolkitError.withCause('NoticesParseError', `Parse error: ${(0, util_1.formatErrorMessage)(e)}`, e));\n }\n });\n res.on('error', e => {\n reject(toolkit_error_1.ToolkitError.withCause('NoticesResponseError', (0, util_1.formatErrorMessage)(e), e));\n });\n }\n else {\n reject(new toolkit_error_1.ToolkitError('HttpStatusError', `${(0, util_1.humanHttpStatusError)(res.statusCode)} (Status code: ${res.statusCode})`));\n }\n });\n req.on('error', e => {\n reject(toolkit_error_1.ToolkitError.withCause('NetworkError', (0, util_1.humanNetworkError)(e), e));\n });\n }\n catch (e) {\n reject(toolkit_error_1.ToolkitError.withCause('NoticesRequestError', (0, util_1.formatErrorMessage)(e), e));\n }\n });\n await this.ioHelper.defaults.debug('Notices refreshed');\n return notices;\n }\n}\nexports.WebsiteNoticeDataSource = WebsiteNoticeDataSource;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2ViLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG9DQUFvQztBQUVwQywrREFBMkQ7QUFDM0QscUNBQXlGO0FBRXpGLDJFQUF1RTtBQUV2RTs7R0FFRztBQUNILE1BQWEsNEJBQTRCO0lBQ3ZDOzs7Ozs7OztPQVFHO0lBQ00sR0FBRyxDQUFnQjtJQUU1Qjs7Ozs7O09BTUc7SUFDTSxLQUFLLENBQWU7Q0FDOUI7QUFwQkQsb0VBb0JDO0FBRUQsTUFBYSx1QkFBdUI7SUFRTDtJQVA3Qjs7T0FFRztJQUNhLEdBQUcsQ0FBTTtJQUVSLEtBQUssQ0FBZTtJQUVyQyxZQUE2QixRQUFrQixFQUFFLFFBQXNDLEVBQUU7UUFBNUQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLGdEQUFnRCxDQUFDO0lBQzNFLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULHVEQUF1RDtRQUN2RCxNQUFNLGVBQWUsR0FBRyxNQUFNLGtDQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLDRCQUFZLENBQUMsZ0JBQWdCLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLG9FQUFvRTtRQUNwRSxFQUFFO1FBQ0YsMEVBQTBFO1FBQzFFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEtBQUssU0FBUztZQUMzRCxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQy9D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QkFDaEIsTUFBTSxDQUFDLDRCQUFZLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQXJGRCwwREFxRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsaWVudFJlcXVlc3QgfSBmcm9tICdub2RlOmh0dHAnO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJ25vZGU6aHR0cHMnO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSAnbm9kZTpodHRwcyc7XG5pbXBvcnQgdHlwZSB7IE5vdGljZSwgTm90aWNlRGF0YVNvdXJjZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSwgaHVtYW5IdHRwU3RhdHVzRXJyb3IsIGh1bWFuTmV0d29ya0Vycm9yIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBOZXR3b3JrRGV0ZWN0b3IgfSBmcm9tICcuLi9uZXR3b3JrLWRldGVjdG9yL25ldHdvcmstZGV0ZWN0b3InO1xuXG4vKipcbiAqIEEgZGF0YSBzb3VyY2UgdGhhdCBmZXRjaGVzIG5vdGljZXMgZnJvbSB0aGUgQ0RLIG5vdGljZXMgZGF0YSBzb3VyY2VcbiAqL1xuZXhwb3J0IGNsYXNzIFdlYnNpdGVOb3RpY2VEYXRhU291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCB0byBsb2FkIG5vdGljZXMgZnJvbS5cbiAgICpcbiAgICogTm90ZSB0aGlzIG11c3QgYmUgYSB2YWxpZCBKU09OIGRvY3VtZW50IGluIHRoZSBDREsgbm90aWNlcyBkYXRhIHNjaGVtYS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9hd3MtY2RrLW5vdGljZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPZmZpY2lhbCBDREsgbm90aWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nIHwgVVJMO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdlbnQgcmVzcG9uc2libGUgZm9yIG1ha2luZyB0aGUgbmV0d29yayByZXF1ZXN0cy5cbiAgICpcbiAgICogVXNlIHRoaXMgc28gc2V0IHVwIGEgcHJveHkgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2VzIHRoZSBzaGFyZWQgZ2xvYmFsIG5vZGUgYWdlbnRcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50PzogaHR0cHMuQWdlbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJzaXRlTm90aWNlRGF0YVNvdXJjZSBpbXBsZW1lbnRzIE5vdGljZURhdGFTb3VyY2Uge1xuICAvKipcbiAgICogVGhlIFVSTCBub3RpY2VzIGFyZSBsb2FkZWQgZnJvbS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cmw6IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFnZW50PzogaHR0cHMuQWdlbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXIsIHByb3BzOiBXZWJzaXRlTm90aWNlRGF0YVNvdXJjZVByb3BzID0ge30pIHtcbiAgICB0aGlzLmFnZW50ID0gcHJvcHMuYWdlbnQ7XG4gICAgdGhpcy51cmwgPSBwcm9wcy51cmwgPz8gJ2h0dHBzOi8vY2xpLmNkay5kZXYtdG9vbHMuYXdzLmRldi9ub3RpY2VzLmpzb24nO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2goKTogUHJvbWlzZTxOb3RpY2VbXT4ge1xuICAgIC8vIENoZWNrIGNvbm5lY3Rpdml0eSBiZWZvcmUgYXR0ZW1wdGluZyBuZXR3b3JrIHJlcXVlc3RcbiAgICBjb25zdCBoYXNDb25uZWN0aXZpdHkgPSBhd2FpdCBOZXR3b3JrRGV0ZWN0b3IuaGFzQ29ubmVjdGl2aXR5KHRoaXMuYWdlbnQpO1xuICAgIGlmICghaGFzQ29ubmVjdGl2aXR5KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdOb0Nvbm5lY3Rpdml0eScsICdObyBpbnRlcm5ldCBjb25uZWN0aXZpdHkgZGV0ZWN0ZWQnKTtcbiAgICB9XG5cbiAgICAvLyBXZSBhcmUgb2JzZXJ2aW5nIGxvdHMgb2YgdGltZW91dHMgd2hlbiBydW5uaW5nIGluIGEgbWFzc2l2ZWx5IHBhcmFsbGVsXG4gICAgLy8gaW50ZWdyYXRpb24gdGVzdCBlbnZpcm9ubWVudCwgc28gd2FpdCBmb3IgYSBsb25nZXIgdGltZW91dCB0aGVyZS5cbiAgICAvL1xuICAgIC8vIEluIHByb2R1Y3Rpb24sIGhhdmUgYSBzaG9ydCB0aW1lb3V0IHRvIG5vdCBob2xkIHVwIHRoZSB1c2VyIGV4cGVyaWVuY2UuXG4gICAgY29uc3QgdGltZW91dCA9IHByb2Nlc3MuZW52LkNES19OT1RJQ0VTX1RJTUVPVVQgIT09IHVuZGVmaW5lZFxuICAgICAgPyBwYXJzZUludChwcm9jZXNzLmVudi5DREtfTk9USUNFU19USU1FT1VULCAxMClcbiAgICAgIDogcHJvY2Vzcy5lbnYuVEVTVElOR19DREtcbiAgICAgICAgPyAzMF8wMDAgOiAzXzAwMDtcblxuICAgIGNvbnN0IG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgYWdlbnQ6IHRoaXMuYWdlbnQsXG4gICAgfTtcblxuICAgIGNvbnN0IG5vdGljZXMgPSBhd2FpdCBuZXcgUHJvbWlzZTxOb3RpY2VbXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbGV0IHJlcTogQ2xpZW50UmVxdWVzdCB8IHVuZGVmaW5lZDtcblxuICAgICAgbGV0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChyZXEpIHtcbiAgICAgICAgICByZXEuZGVzdHJveShuZXcgVG9vbGtpdEVycm9yKCdSZXF1ZXN0VGltZW91dCcsICdSZXF1ZXN0IHRpbWVkIG91dCcpKTtcbiAgICAgICAgfVxuICAgICAgfSwgdGltZW91dCk7XG5cbiAgICAgIHRpbWVyLnVucmVmKCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJlcSA9IGh0dHBzLmdldChcbiAgICAgICAgICB0aGlzLnVybCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgICByZXMuc2V0RW5jb2RpbmcoJ3V0ZjgnKTtcbiAgICAgICAgICAgICAgbGV0IHJhd0RhdGEgPSAnJztcbiAgICAgICAgICAgICAgcmVzLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgcmF3RGF0YSArPSBjaHVuaztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJlcy5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyYXdEYXRhKS5ub3RpY2VzIGFzIE5vdGljZVtdO1xuICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ01pc3NpbmdOb3RpY2VzS2V5JywgXCInbm90aWNlcycga2V5IGlzIG1pc3NpbmcgZnJvbSByZWNlaXZlZCBkYXRhXCIpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhID8/IFtdKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgICAgICAgIHJlamVjdChUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdOb3RpY2VzUGFyc2VFcnJvcicsIGBQYXJzZSBlcnJvcjogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCwgZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJlcy5vbignZXJyb3InLCBlID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QoVG9vbGtpdEVycm9yLndpdGhDYXVzZSgnTm90aWNlc1Jlc3BvbnNlRXJyb3InLCBmb3JtYXRFcnJvck1lc3NhZ2UoZSksIGUpKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QobmV3IFRvb2xraXRFcnJvcignSHR0cFN0YXR1c0Vycm9yJywgYCR7aHVtYW5IdHRwU3RhdHVzRXJyb3IocmVzLnN0YXR1c0NvZGUhKX0gKFN0YXR1cyBjb2RlOiAke3Jlcy5zdGF0dXNDb2RlfSlgKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgcmVxLm9uKCdlcnJvcicsIGUgPT4ge1xuICAgICAgICAgIHJlamVjdChUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdOZXR3b3JrRXJyb3InLCBodW1hbk5ldHdvcmtFcnJvcihlKSwgZSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICByZWplY3QoVG9vbGtpdEVycm9yLndpdGhDYXVzZSgnTm90aWNlc1JlcXVlc3RFcnJvcicsIGZvcm1hdEVycm9yTWVzc2FnZShlKSwgZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZygnTm90aWNlcyByZWZyZXNoZWQnKTtcbiAgICByZXR1cm4gbm90aWNlcztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isContextProviderPlugin = isContextProviderPlugin;\nfunction isContextProviderPlugin(x) {\n return typeof x === 'object' && !!x && !!x.getValue;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wcm92aWRlci1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250ZXh0LXByb3ZpZGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLDBEQUVDO0FBRkQsU0FBZ0IsdUJBQXVCLENBQUMsQ0FBVTtJQUNoRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFTLENBQUMsUUFBUSxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGdldFZhbHVlKGFyZ3M6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQcm9taXNlPGFueT47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRleHRQcm92aWRlclBsdWdpbih4OiB1bmtub3duKTogeCBpcyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICByZXR1cm4gdHlwZW9mIHggPT09ICdvYmplY3QnICYmICEheCAmJiAhISh4IGFzIGFueSkuZ2V0VmFsdWU7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./plugin\"), exports);\n__exportStar(require(\"./mode\"), exports);\n__exportStar(require(\"./context-provider-plugin\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLHlDQUF1QjtBQUN2Qiw0REFBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL21vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLXBsdWdpbic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mode = void 0;\nvar Mode;\n(function (Mode) {\n Mode[Mode[\"ForReading\"] = 0] = \"ForReading\";\n Mode[Mode[\"ForWriting\"] = 1] = \"ForWriting\";\n})(Mode || (exports.Mode = Mode = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsSUFBWSxJQUdYO0FBSEQsV0FBWSxJQUFJO0lBQ2QsMEJBQWEsQ0FBNEIsZ0JBQUEsQ0FBQTtJQUN6QywwQkFBYSxDQUE0QixnQkFBQSxDQUFBO0FBQzNDLENBQUMsRUFIVyxJQUFJLG9CQUFKLElBQUksUUFHZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRm9yUmVhZGluZyBhcyBQbHVnaW5Gb3JSZWFkaW5nLCBGb3JXcml0aW5nIGFzIFBsdWdpbkZvcldyaXRpbmcgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcblxuZXhwb3J0IGVudW0gTW9kZSB7XG4gIEZvclJlYWRpbmcgPSAwIHNhdGlzZmllcyBQbHVnaW5Gb3JSZWFkaW5nLFxuICBGb3JXcml0aW5nID0gMSBzYXRpc2ZpZXMgUGx1Z2luRm9yV3JpdGluZyxcbn1cbiJdfQ==",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceMapping = exports.ResourceLocation = void 0;\n/**\n * This class mirrors the `ResourceLocation` interface from CloudFormation,\n * but is richer, since it has a reference to the stack object, rather than\n * merely the stack name.\n */\nclass ResourceLocation {\n stack;\n logicalResourceId;\n constructor(stack, logicalResourceId) {\n this.stack = stack;\n this.logicalResourceId = logicalResourceId;\n }\n toPath() {\n const resource = this.stack.template.Resources?.[this.logicalResourceId];\n const result = resource?.Metadata?.['aws:cdk:path'];\n if (result != null) {\n return result;\n }\n // If the path is not available, we can use stack name and logical ID\n return this.toLocationString();\n }\n toLocationString() {\n return `${this.stack.stackName}.${this.logicalResourceId}`;\n }\n getType() {\n const resource = this.stack.template.Resources?.[this.logicalResourceId ?? ''];\n return resource?.Type ?? 'Unknown';\n }\n equalTo(other) {\n return this.logicalResourceId === other.logicalResourceId && this.stack.stackName === other.stack.stackName;\n }\n get stackName() {\n return this.stack.stackName;\n }\n}\nexports.ResourceLocation = ResourceLocation;\n/**\n * A mapping between a source and a destination location.\n */\nclass ResourceMapping {\n source;\n destination;\n constructor(source, destination) {\n this.source = source;\n this.destination = destination;\n }\n toTypedMapping() {\n return {\n // the type is the same in both source and destination,\n // so we can use either one\n type: this.source.getType(),\n sourcePath: this.source.toPath(),\n destinationPath: this.destination.toPath(),\n };\n }\n toCloudFormation() {\n return {\n Source: {\n StackName: this.source.stack.stackName,\n LogicalResourceId: this.source.logicalResourceId,\n },\n Destination: {\n StackName: this.destination.stack.stackName,\n LogicalResourceId: this.destination.logicalResourceId,\n },\n };\n }\n}\nexports.ResourceMapping = ResourceMapping;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEyQkE7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWdCO0lBQ0M7SUFBNEM7SUFBeEUsWUFBNEIsS0FBMEIsRUFBa0IsaUJBQXlCO1FBQXJFLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQWtCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtJQUNqRyxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVwRCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQscUVBQXFFO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVNLE9BQU87UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxRQUFRLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQXVCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBaENELDRDQWdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQ0U7SUFBMEM7SUFBdEUsWUFBNEIsTUFBd0IsRUFBa0IsV0FBNkI7UUFBdkUsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFBa0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQ25HLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU87WUFDTCx1REFBdUQ7WUFDdkQsMkJBQTJCO1lBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDaEMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU87WUFDTCxNQUFNLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQ3RDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCO2FBQ2pEO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUMzQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQjthQUN0RDtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUExQkQsMENBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBUeXBlZE1hcHBpbmcgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VNYXBwaW5nIGFzIENmblJlc291cmNlTWFwcGluZyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25SZXNvdXJjZSB7XG4gIFR5cGU6IHN0cmluZztcbiAgUHJvcGVydGllcz86IGFueTtcbiAgTWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBEZXBlbmRzT24/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvblRlbXBsYXRlIHtcbiAgUmVzb3VyY2VzPzoge1xuICAgIFtsb2dpY2FsSWQ6IHN0cmluZ106IENsb3VkRm9ybWF0aW9uUmVzb3VyY2U7XG4gIH07XG4gIE91dHB1dHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBSdWxlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIFBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRm9ybWF0aW9uU3RhY2sge1xuICByZWFkb25seSBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0ZW1wbGF0ZTogQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZTtcbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIG1pcnJvcnMgdGhlIGBSZXNvdXJjZUxvY2F0aW9uYCBpbnRlcmZhY2UgZnJvbSBDbG91ZEZvcm1hdGlvbixcbiAqIGJ1dCBpcyByaWNoZXIsIHNpbmNlIGl0IGhhcyBhIHJlZmVyZW5jZSB0byB0aGUgc3RhY2sgb2JqZWN0LCByYXRoZXIgdGhhblxuICogbWVyZWx5IHRoZSBzdGFjayBuYW1lLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VMb2NhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjaywgcHVibGljIHJlYWRvbmx5IGxvZ2ljYWxSZXNvdXJjZUlkOiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyB0b1BhdGgoKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMuc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzPy5bdGhpcy5sb2dpY2FsUmVzb3VyY2VJZF07XG4gICAgY29uc3QgcmVzdWx0ID0gcmVzb3VyY2U/Lk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddO1xuXG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBwYXRoIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbiB1c2Ugc3RhY2sgbmFtZSBhbmQgbG9naWNhbCBJRFxuICAgIHJldHVybiB0aGlzLnRvTG9jYXRpb25TdHJpbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0xvY2F0aW9uU3RyaW5nKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0uJHt0aGlzLmxvZ2ljYWxSZXNvdXJjZUlkfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5zdGFjay50ZW1wbGF0ZS5SZXNvdXJjZXM/Llt0aGlzLmxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnXTtcbiAgICByZXR1cm4gcmVzb3VyY2U/LlR5cGUgPz8gJ1Vua25vd24nO1xuICB9XG5cbiAgcHVibGljIGVxdWFsVG8ob3RoZXI6IFJlc291cmNlTG9jYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY2FsUmVzb3VyY2VJZCA9PT0gb3RoZXIubG9naWNhbFJlc291cmNlSWQgJiYgdGhpcy5zdGFjay5zdGFja05hbWUgPT09IG90aGVyLnN0YWNrLnN0YWNrTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2suc3RhY2tOYW1lO1xuICB9XG59XG5cbi8qKlxuICogQSBtYXBwaW5nIGJldHdlZW4gYSBzb3VyY2UgYW5kIGEgZGVzdGluYXRpb24gbG9jYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZU1hcHBpbmcge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBSZXNvdXJjZUxvY2F0aW9uLCBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IFJlc291cmNlTG9jYXRpb24pIHtcbiAgfVxuXG4gIHB1YmxpYyB0b1R5cGVkTWFwcGluZygpOiBUeXBlZE1hcHBpbmcge1xuICAgIHJldHVybiB7XG4gICAgICAvLyB0aGUgdHlwZSBpcyB0aGUgc2FtZSBpbiBib3RoIHNvdXJjZSBhbmQgZGVzdGluYXRpb24sXG4gICAgICAvLyBzbyB3ZSBjYW4gdXNlIGVpdGhlciBvbmVcbiAgICAgIHR5cGU6IHRoaXMuc291cmNlLmdldFR5cGUoKSxcbiAgICAgIHNvdXJjZVBhdGg6IHRoaXMuc291cmNlLnRvUGF0aCgpLFxuICAgICAgZGVzdGluYXRpb25QYXRoOiB0aGlzLmRlc3RpbmF0aW9uLnRvUGF0aCgpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9DbG91ZEZvcm1hdGlvbigpOiBDZm5SZXNvdXJjZU1hcHBpbmcge1xuICAgIHJldHVybiB7XG4gICAgICBTb3VyY2U6IHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnNvdXJjZS5zdGFjay5zdGFja05hbWUsXG4gICAgICAgIExvZ2ljYWxSZXNvdXJjZUlkOiB0aGlzLnNvdXJjZS5sb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAgIH0sXG4gICAgICBEZXN0aW5hdGlvbjoge1xuICAgICAgICBTdGFja05hbWU6IHRoaXMuZGVzdGluYXRpb24uc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBMb2dpY2FsUmVzb3VyY2VJZDogdGhpcy5kZXN0aW5hdGlvbi5sb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RefactoringContext = void 0;\nexports.replaceAwsPlaceholders = replaceAwsPlaceholders;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloudformation_1 = require(\"./cloudformation\");\nconst digest_1 = require(\"./digest\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst sets_1 = require(\"../../util/sets\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Encapsulates the information for refactoring resources in a single environment.\n */\nclass RefactoringContext {\n _mappings = [];\n ambiguousMoves = [];\n localStacks;\n assumeRoleArn;\n environment;\n constructor(props) {\n this.environment = props.environment;\n const moves = resourceMoves(props.deployedStacks, props.localStacks, 'direct', props.ignoreModifications);\n const additionalOverrides = structuralOverrides(props.deployedStacks, props.localStacks);\n const overrides = (props.overrides ?? []).concat(additionalOverrides);\n const [nonAmbiguousMoves, ambiguousMoves] = partitionByAmbiguity(overrides, moves);\n this.ambiguousMoves = ambiguousMoves;\n this.localStacks = props.localStacks;\n this.assumeRoleArn = props.assumeRoleArn;\n this._mappings = resourceMappings(nonAmbiguousMoves);\n }\n get ambiguousPaths() {\n return this.ambiguousMoves.map(([a, b]) => [convert(a), convert(b)]);\n function convert(locations) {\n return locations.map((l) => l.toPath());\n }\n }\n get mappings() {\n return this._mappings;\n }\n async execute(stackDefinitions, sdkProvider, ioHelper) {\n if (this.mappings.length === 0) {\n return;\n }\n const assumeRoleArn = this.assumeRoleArn ?? await this.findRoleToAssume(sdkProvider);\n const sdk = (await sdkProvider.forEnvironment(this.environment, plugin_1.Mode.ForWriting, {\n assumeRoleArn,\n })).sdk;\n await this.checkBootstrapVersion(sdk, ioHelper);\n const cfn = sdk.cloudFormation();\n const mappings = this.mappings;\n const input = {\n ResourceMappings: mappings.map((m) => m.toCloudFormation()),\n StackDefinitions: stackDefinitions,\n };\n const refactor = await cfn.createStackRefactor(input);\n await cfn.waitUntilStackRefactorCreateComplete({\n StackRefactorId: refactor.StackRefactorId,\n });\n await cfn.executeStackRefactor({\n StackRefactorId: refactor.StackRefactorId,\n });\n await cfn.waitUntilStackRefactorExecuteComplete({\n StackRefactorId: refactor.StackRefactorId,\n });\n }\n async checkBootstrapVersion(sdk, ioHelper) {\n const environmentResourcesRegistry = new environment_1.EnvironmentResourcesRegistry();\n const envResources = environmentResourcesRegistry.for(this.environment, sdk, ioHelper);\n let bootstrapVersion = undefined;\n try {\n // Try to get the bootstrap version\n bootstrapVersion = (await envResources.lookupToolkit()).version;\n }\n catch (e) {\n // But if we can't, keep going. Maybe we can still succeed.\n }\n if (bootstrapVersion != null && bootstrapVersion < 28) {\n const environment = `aws://${this.environment.account}/${this.environment.region}`;\n throw new toolkit_error_1.ToolkitError('BootstrapVersionTooLow', `The CDK toolkit stack in environment ${environment} doesn't support refactoring. Please run 'cdk bootstrap ${environment}' to update it.`);\n }\n }\n async findRoleToAssume(sdkProvider) {\n // To execute a refactor, we need the deployment role ARN for the given\n // environment. Most toolkit commands get the information about which roles to\n // assume from the cloud assembly (and ultimately from the CDK framework). Refactor\n // is different because it is not the application/framework that dictates what the\n // toolkit should do, but it is the toolkit itself that has to figure it out.\n //\n // Nevertheless, the cloud assembly is the most reliable source for this kind of\n // information. For the deployment role ARN, in particular, what we do here\n // is look at all the stacks for a given environment in the cloud assembly and\n // extract the deployment role ARN that is common to all of them. If no role is\n // found, we go ahead without assuming a role. If there is more than one role,\n // we consider that an invariant was violated, and throw an error.\n const env = this.environment;\n const roleArns = new Set(this.localStacks\n .filter((s) => s.environment.account === env.account && s.environment.region === env.region)\n .map((s) => s.assumeRoleArn));\n if (roleArns.size === 0) {\n return undefined;\n }\n if (roleArns.size !== 1) {\n // Unlikely to happen. But if it does, we can't proceed\n throw new toolkit_error_1.ToolkitError('MultipleDeploymentRoles', `Multiple stacks in environment aws://${env.account}/${env.region} have different deployment role ARNs. Cannot proceed.`);\n }\n const arn = Array.from(roleArns)[0];\n if (arn != null) {\n const resolvedEnv = await sdkProvider.resolveEnvironment(env);\n const region = resolvedEnv.region;\n return (await replaceAwsPlaceholders({ region, assumeRoleArn: arn }, new cdk_assets_lib_1.DefaultAwsClient())).assumeRoleArn;\n }\n // If we couldn't find a role ARN, we can proceed without assuming a role.\n // Maybe the default credentials have permissions to do what we need.\n return undefined;\n }\n}\nexports.RefactoringContext = RefactoringContext;\n/**\n * Generates an automatic list of overrides that can be deduced from the structure of the opposite resource graph.\n * Suppose we have the following resource graph:\n *\n * A --> B\n * C --> D\n *\n * such that B and D are identical, but A is different from C. Then digest(B) = digest(D). If both resources are moved,\n * we have an ambiguity. But if we reverse the arrows:\n *\n * A <-- B\n * C <-- D\n *\n * then digest(B) ≠ digest(D), because they now have different dependencies. If we compute the mappings from this\n * opposite graph, we can use them as a set of overrides to disambiguate the original moves.\n *\n */\nfunction structuralOverrides(deployedStacks, localStacks) {\n const moves = resourceMoves(deployedStacks, localStacks, 'opposite', true);\n const [nonAmbiguousMoves] = partitionByAmbiguity([], moves);\n return resourceMappings(nonAmbiguousMoves);\n}\nfunction resourceMoves(before, after, direction = 'direct', ignoreModifications = false) {\n const digestsBefore = resourceDigests(before, direction);\n const digestsAfter = resourceDigests(after, direction);\n if (!(ignoreModifications || isomorphic(digestsBefore, digestsAfter))) {\n const message = ['A refactor operation cannot add, remove or update resources. Only resource moves and renames are allowed.'];\n const locationsForDigests = (a, b) => {\n return Array.from((0, sets_1.setDiff)(new Set(Object.keys(a)), new Set(Object.keys(b)))).flatMap(k => a[k]);\n };\n const formatList = (locs, icon) => locs.map(x => ` [${icon}] ${x.toPath()}`).sort().join('\\n');\n const stackNames = (stacks) => stacks.length === 0\n ? 'NONE'\n : stacks\n .map((s) => s.stackName)\n .sort()\n .join(', ');\n const onlyDeployedLocs = locationsForDigests(digestsBefore, digestsAfter);\n const onlyLocalLocs = locationsForDigests(digestsAfter, digestsBefore);\n const onlyDeployedPaths = new Set(onlyDeployedLocs.map(l => l.toPath()));\n const onlyLocalPaths = new Set(onlyLocalLocs.map(l => l.toPath()));\n const differentPaths = new Set(Array.from(onlyDeployedPaths).filter(p => onlyLocalPaths.has(p)));\n const onlyDeployed = formatList(onlyDeployedLocs.filter(l => !differentPaths.has(l.toPath())), '-');\n const onlyLocal = formatList(onlyLocalLocs.filter(l => !differentPaths.has(l.toPath())), '+');\n const different = formatList([...onlyDeployedLocs, ...onlyLocalLocs].filter(l => differentPaths.has(l.toPath())), '~');\n if (onlyDeployed.length > 0) {\n message.push(`The following resources are present only in the AWS environment:\\n${onlyDeployed}`);\n }\n if (onlyLocal.length > 0) {\n message.push(`\\nThe following resources are present only in your CDK application:\\n${onlyLocal}`);\n }\n if (different.length > 0) {\n message.push(`\\nThe following resources are different in your CDK application and the AWS environment:\\n${different}`);\n }\n message.push('');\n message.push('The following stacks were used in the comparison:');\n message.push(` - Deployed: ${stackNames(before)}`);\n message.push(` - Local: ${stackNames(after)}`);\n message.push('');\n message.push('Hint: by default, only deployed stacks that have the same name as a local stack are included.');\n message.push('If you want to include additional deployed stacks for comparison, re-run the command with the option \\'--additional-stack-name=\\' for each stack.');\n throw new toolkit_error_1.ToolkitError('RefactorResourceMismatch', message.join('\\n'));\n }\n return Object.values(removeUnmovedResources(zip(digestsBefore, digestsAfter)));\n}\n/**\n * Whether two sets of resources have the same elements (uniquely identified by the digest), and\n * each element is in the same number of locations. The locations themselves may be different.\n */\nfunction isomorphic(a, b) {\n const sameKeys = (0, sets_1.equalSets)(new Set(Object.keys(a)), new Set(Object.keys(b)));\n return sameKeys && Object.entries(a).every(([digest, locations]) => locations.length === b[digest].length);\n}\nfunction removeUnmovedResources(moves) {\n const result = {};\n for (const [hash, [before, after]] of Object.entries(moves)) {\n const common = before.filter((b) => after.some((a) => a.equalTo(b)));\n result[hash] = [\n before.filter((b) => !common.some((c) => b.equalTo(c))),\n after.filter((a) => !common.some((c) => a.equalTo(c))),\n ];\n }\n return result;\n}\n/**\n * For each hash, identifying a single resource, zip the two lists of locations,\n * producing a resource move\n */\nfunction zip(m1, m2) {\n const result = {};\n for (const [hash, locations] of Object.entries(m1)) {\n if (hash in m2) {\n result[hash] = [locations, m2[hash]];\n }\n else {\n result[hash] = [locations, []];\n }\n }\n for (const [hash, locations] of Object.entries(m2)) {\n if (!(hash in m1)) {\n result[hash] = [[], locations];\n }\n }\n return result;\n}\n/**\n * Computes a list of pairs [digest, location] for each resource in the stack.\n */\nfunction resourceDigests(stacks, direction) {\n // index stacks by name\n const stacksByName = new Map();\n for (const stack of stacks) {\n stacksByName.set(stack.stackName, stack);\n }\n const digests = (0, digest_1.computeResourceDigests)(stacks, direction);\n return groupByKey(Object.entries(digests).map(([loc, digest]) => {\n const [stackName, logicalId] = loc.split('.');\n const location = new cloudformation_1.ResourceLocation(stacksByName.get(stackName), logicalId);\n return [digest, location];\n }));\n function groupByKey(entries) {\n const result = {};\n for (const [key, value] of entries) {\n if (key in result) {\n result[key].push(value);\n }\n else {\n result[key] = [value];\n }\n }\n return result;\n }\n}\nfunction isAmbiguousMove(move) {\n const [pre, post] = move;\n // A move is considered ambiguous if two conditions are met:\n // 1. Both sides have at least one element (otherwise, it's just addition or deletion)\n // 2. At least one side has more than one element\n return pre.length > 0 && post.length > 0 && (pre.length > 1 || post.length > 1);\n}\nfunction resourceMappings(movements) {\n return movements\n .filter(([pre, post]) => pre.length === 1 && post.length === 1 && !pre[0].equalTo(post[0]))\n .map(([pre, post]) => new cloudformation_1.ResourceMapping(pre[0], post[0]));\n}\n/**\n * Partitions a list of moves into non-ambiguous and ambiguous moves.\n * @param overrides - The list of overrides to disambiguate moves\n * @param moves - a pair of lists of moves. First: non-ambiguous, second: ambiguous\n */\nfunction partitionByAmbiguity(overrides, moves) {\n const ambiguous = [];\n const nonAmbiguous = [];\n for (let move of moves) {\n if (!isAmbiguousMove(move)) {\n nonAmbiguous.push(move);\n }\n else {\n for (const override of overrides) {\n const resolvedMove = resolve(override, move);\n if (resolvedMove != null) {\n nonAmbiguous.push(resolvedMove);\n move = remove(override, move);\n }\n }\n // One last chance to be non-ambiguous\n if (!isAmbiguousMove(move)) {\n nonAmbiguous.push(move);\n }\n else {\n ambiguous.push(move);\n }\n }\n }\n function resolve(override, move) {\n const [pre, post] = move;\n const source = pre.find((loc) => loc.equalTo(override.source));\n const destination = post.find((loc) => loc.equalTo(override.destination));\n return (source && destination) ? [[source], [destination]] : undefined;\n }\n function remove(override, move) {\n const [pre, post] = move;\n return [\n pre.filter(loc => !loc.equalTo(override.source)),\n post.filter(loc => !loc.equalTo(override.destination)),\n ];\n }\n return [nonAmbiguous, ambiguous];\n}\n/**\n * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\nasync function replaceAwsPlaceholders(object, aws) {\n let partition = async () => {\n const p = await aws.discoverPartition();\n partition = () => Promise.resolve(p);\n return p;\n };\n let account = async () => {\n const a = await aws.discoverCurrentAccount();\n account = () => Promise.resolve(a);\n return a;\n };\n return cloud_assembly_api_1.EnvironmentPlaceholders.replaceAsync(object, {\n async region() {\n return object.region ?? aws.discoverDefaultRegion();\n },\n async accountId() {\n return (await account()).accountId;\n },\n async partition() {\n return partition();\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc1pBLHdEQTJCQztBQWpiRCw0REFBc0U7QUFFdEUsb0VBQXNFO0FBR3RFLHFEQUFxRTtBQUVyRSxxQ0FBa0Q7QUFDbEQsK0RBQTJEO0FBQzNELDBDQUFxRDtBQUdyRCxnREFBOEQ7QUFFOUQsc0NBQWlDO0FBa0JqQzs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBQ1osU0FBUyxHQUFzQixFQUFFLENBQUM7SUFDbEMsY0FBYyxHQUFtQixFQUFFLENBQUM7SUFDcEMsV0FBVyxDQUF3QjtJQUNuQyxhQUFhLENBQVU7SUFDeEIsV0FBVyxDQUFjO0lBRXpDLFlBQVksS0FBZ0M7UUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFHLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsU0FBUyxPQUFPLENBQUMsU0FBNkI7WUFDNUMsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQW1DLEVBQUUsV0FBd0IsRUFBRSxRQUFrQjtRQUNwRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRixNQUFNLEdBQUcsR0FBRyxDQUNWLE1BQU0sV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEUsYUFBYTtTQUNkLENBQUMsQ0FDSCxDQUFDLEdBQUcsQ0FBQztRQUVOLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUUvQixNQUFNLEtBQUssR0FBRztZQUNaLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNELGdCQUFnQixFQUFFLGdCQUFnQjtTQUNuQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEQsTUFBTSxHQUFHLENBQUMsb0NBQW9DLENBQUM7WUFDN0MsZUFBZSxFQUFFLFFBQVEsQ0FBQyxlQUFlO1NBQzFDLENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyxDQUFDLG9CQUFvQixDQUFDO1lBQzdCLGVBQWUsRUFBRSxRQUFRLENBQUMsZUFBZTtTQUMxQyxDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQztZQUM5QyxlQUFlLEVBQUUsUUFBUSxDQUFDLGVBQWU7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsUUFBa0I7UUFDOUQsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLDBDQUE0QixFQUFFLENBQUM7UUFDeEUsTUFBTSxZQUFZLEdBQUcsNEJBQTRCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksZ0JBQWdCLEdBQXVCLFNBQVMsQ0FBQztRQUNyRCxJQUFJLENBQUM7WUFDSCxtQ0FBbUM7WUFDbkMsZ0JBQWdCLEdBQUcsQ0FBQyxNQUFNLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNsRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLDJEQUEyRDtRQUM3RCxDQUFDO1FBQ0QsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLElBQUksZ0JBQWdCLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDdEQsTUFBTSxXQUFXLEdBQUcsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25GLE1BQU0sSUFBSSw0QkFBWSxDQUNwQix3QkFBd0IsRUFDeEIsd0NBQXdDLFdBQVcsMkRBQTJELFdBQVcsaUJBQWlCLENBQzNJLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUNyRCx1RUFBdUU7UUFDdkUsOEVBQThFO1FBQzlFLG1GQUFtRjtRQUNuRixrRkFBa0Y7UUFDbEYsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixnRkFBZ0Y7UUFDaEYsMkVBQTJFO1FBQzNFLDhFQUE4RTtRQUM5RSwrRUFBK0U7UUFDL0UsOEVBQThFO1FBQzlFLGtFQUFrRTtRQUVsRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUN0QixJQUFJLENBQUMsV0FBVzthQUNiLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDO2FBQzNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUMvQixDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsdURBQXVEO1lBQ3ZELE1BQU0sSUFBSSw0QkFBWSxDQUNwQix5QkFBeUIsRUFDekIsd0NBQXdDLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE1BQU0sdURBQXVELENBQ3pILENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5RCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxNQUFNLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLGlDQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUM5RyxDQUFDO1FBRUQsMEVBQTBFO1FBQzFFLHFFQUFxRTtRQUNyRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFuSUQsZ0RBbUlDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLGNBQXFDLEVBQUUsV0FBa0M7SUFDcEcsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxPQUFPLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNwQixNQUE2QixFQUM3QixLQUE0QixFQUM1QixZQUE0QixRQUFRLEVBQ3BDLHNCQUErQixLQUFLO0lBQ3BDLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDekQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV2RCxJQUFJLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxNQUFNLE9BQU8sR0FBRyxDQUFDLDJHQUEyRyxDQUFDLENBQUM7UUFFOUgsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQXFDLEVBQUUsQ0FBcUMsRUFBRSxFQUFFO1lBQzNHLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFBLGNBQU8sRUFBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztRQUNuRyxDQUFDLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQXdCLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FDNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9ELE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBNkIsRUFBRSxFQUFFLENBQ25ELE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNqQixDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxNQUFNO2lCQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztpQkFDdkIsSUFBSSxFQUFFO2lCQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxRSxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEcsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZILElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLHFFQUFxRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyx3RUFBd0UsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRyxDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkZBQTZGLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDekgsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxJQUFJLENBQUUsaUJBQWlCLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLElBQUksQ0FBRSxjQUFjLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLCtGQUErRixDQUFDLENBQUM7UUFDOUcsT0FBTyxDQUFDLElBQUksQ0FBQywwSkFBMEosQ0FBQyxDQUFDO1FBRXpLLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFVBQVUsQ0FBQyxDQUFxQyxFQUFFLENBQXFDO0lBQzlGLE1BQU0sUUFBUSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxRQUFRLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0csQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsS0FBbUM7SUFDakUsTUFBTSxNQUFNLEdBQWlDLEVBQUUsQ0FBQztJQUNoRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FB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Q3JDLENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUztZQUNiLE9BQU8sU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0QXdzQ2xpZW50LCB0eXBlIElBd3MgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50UGxhY2Vob2xkZXJzIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgU3RhY2tEZWZpbml0aW9uIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFjayB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgUmVzb3VyY2VMb2NhdGlvbiwgUmVzb3VyY2VNYXBwaW5nIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRGlyZWN0aW9uIH0gZnJvbSAnLi9kaWdlc3QnO1xuaW1wb3J0IHsgY29tcHV0ZVJlc291cmNlRGlnZXN0cyB9IGZyb20gJy4vZGlnZXN0JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBlcXVhbFNldHMsIHNldERpZmYgfSBmcm9tICcuLi8uLi91dGlsL3NldHMnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9zZGsnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNldCBvZiBwb3NzaWJsZSBtb3ZlcyBvZiBhIHJlc291cmNlIGZyb20gb25lIGxvY2F0aW9uXG4gKiB0byBhbm90aGVyLiBJbiB0aGUgaWRlYWwgY2FzZSwgdGhlcmUgaXMgb25seSBvbmUgc291cmNlIGFuZCBvbmx5IG9uZVxuICogZGVzdGluYXRpb24uXG4gKi9cbnR5cGUgUmVzb3VyY2VNb3ZlID0gW1Jlc291cmNlTG9jYXRpb25bXSwgUmVzb3VyY2VMb2NhdGlvbltdXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZWZhY3RvcmluZ0NvbnRleHRPcHRpb25zIHtcbiAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuICBsb2NhbFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdO1xuICBkZXBsb3llZFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdO1xuICBvdmVycmlkZXM/OiBSZXNvdXJjZU1hcHBpbmdbXTtcbiAgYXNzdW1lUm9sZUFybj86IHN0cmluZztcbiAgaWdub3JlTW9kaWZpY2F0aW9ucz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgcmVmYWN0b3JpbmcgcmVzb3VyY2VzIGluIGEgc2luZ2xlIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgY2xhc3MgUmVmYWN0b3JpbmdDb250ZXh0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwcGluZ3M6IFJlc291cmNlTWFwcGluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgYW1iaWd1b3VzTW92ZXM6IFJlc291cmNlTW92ZVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBSZWZhY3RvcmluZ0NvbnRleHRPcHRpb25zKSB7XG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IHByb3BzLmVudmlyb25tZW50O1xuICAgIGNvbnN0IG1vdmVzID0gcmVzb3VyY2VNb3Zlcyhwcm9wcy5kZXBsb3llZFN0YWNrcywgcHJvcHMubG9jYWxTdGFja3MsICdkaXJlY3QnLCBwcm9wcy5pZ25vcmVNb2RpZmljYXRpb25zKTtcbiAgICBjb25zdCBhZGRpdGlvbmFsT3ZlcnJpZGVzID0gc3RydWN0dXJhbE92ZXJyaWRlcyhwcm9wcy5kZXBsb3llZFN0YWNrcywgcHJvcHMubG9jYWxTdGFja3MpO1xuICAgIGNvbnN0IG92ZXJyaWRlcyA9IChwcm9wcy5vdmVycmlkZXMgPz8gW10pLmNvbmNhdChhZGRpdGlvbmFsT3ZlcnJpZGVzKTtcbiAgICBjb25zdCBbbm9uQW1iaWd1b3VzTW92ZXMsIGFtYmlndW91c01vdmVzXSA9IHBhcnRpdGlvbkJ5QW1iaWd1aXR5KG92ZXJyaWRlcywgbW92ZXMpO1xuICAgIHRoaXMuYW1iaWd1b3VzTW92ZXMgPSBhbWJpZ3VvdXNNb3ZlcztcbiAgICB0aGlzLmxvY2FsU3RhY2tzID0gcHJvcHMubG9jYWxTdGFja3M7XG4gICAgdGhpcy5hc3N1bWVSb2xlQXJuID0gcHJvcHMuYXNzdW1lUm9sZUFybjtcblxuICAgIHRoaXMuX21hcHBpbmdzID0gcmVzb3VyY2VNYXBwaW5ncyhub25BbWJpZ3VvdXNNb3Zlcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFtYmlndW91c1BhdGhzKCk6IFtzdHJpbmdbXSwgc3RyaW5nW11dW10ge1xuICAgIHJldHVybiB0aGlzLmFtYmlndW91c01vdmVzLm1hcCgoW2EsIGJdKSA9PiBbY29udmVydChhKSwgY29udmVydChiKV0pO1xuXG4gICAgZnVuY3Rpb24gY29udmVydChsb2NhdGlvbnM6IFJlc291cmNlTG9jYXRpb25bXSk6IHN0cmluZ1tdIHtcbiAgICAgIHJldHVybiBsb2NhdGlvbnMubWFwKChsKSA9PiBsLnRvUGF0aCgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1hcHBpbmdzKCk6IFJlc291cmNlTWFwcGluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fbWFwcGluZ3M7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZShzdGFja0RlZmluaXRpb25zOiBTdGFja0RlZmluaXRpb25bXSwgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5tYXBwaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhc3N1bWVSb2xlQXJuID0gdGhpcy5hc3N1bWVSb2xlQXJuID8/IGF3YWl0IHRoaXMuZmluZFJvbGVUb0Fzc3VtZShzZGtQcm92aWRlcik7XG4gICAgY29uc3Qgc2RrID0gKFxuICAgICAgYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudCwgTW9kZS5Gb3JXcml0aW5nLCB7XG4gICAgICAgIGFzc3VtZVJvbGVBcm4sXG4gICAgICB9KVxuICAgICkuc2RrO1xuXG4gICAgYXdhaXQgdGhpcy5jaGVja0Jvb3RzdHJhcFZlcnNpb24oc2RrLCBpb0hlbHBlcik7XG5cbiAgICBjb25zdCBjZm4gPSBzZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMubWFwcGluZ3M7XG5cbiAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgIFJlc291cmNlTWFwcGluZ3M6IG1hcHBpbmdzLm1hcCgobSkgPT4gbS50b0Nsb3VkRm9ybWF0aW9uKCkpLFxuICAgICAgU3RhY2tEZWZpbml0aW9uczogc3RhY2tEZWZpbml0aW9ucyxcbiAgICB9O1xuICAgIGNvbnN0IHJlZmFjdG9yID0gYXdhaXQgY2ZuLmNyZWF0ZVN0YWNrUmVmYWN0b3IoaW5wdXQpO1xuXG4gICAgYXdhaXQgY2ZuLndhaXRVbnRpbFN0YWNrUmVmYWN0b3JDcmVhdGVDb21wbGV0ZSh7XG4gICAgICBTdGFja1JlZmFjdG9ySWQ6IHJlZmFjdG9yLlN0YWNrUmVmYWN0b3JJZCxcbiAgICB9KTtcblxuICAgIGF3YWl0IGNmbi5leGVjdXRlU3RhY2tSZWZhY3Rvcih7XG4gICAgICBTdGFja1JlZmFjdG9ySWQ6IHJlZmFjdG9yLlN0YWNrUmVmYWN0b3JJZCxcbiAgICB9KTtcblxuICAgIGF3YWl0IGNmbi53YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlKHtcbiAgICAgIFN0YWNrUmVmYWN0b3JJZDogcmVmYWN0b3IuU3RhY2tSZWZhY3RvcklkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGVja0Jvb3RzdHJhcFZlcnNpb24oc2RrOiBTREssIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIGNvbnN0IGVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkgPSBuZXcgRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSgpO1xuICAgIGNvbnN0IGVudlJlc291cmNlcyA9IGVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkuZm9yKHRoaXMuZW52aXJvbm1lbnQsIHNkaywgaW9IZWxwZXIpO1xuICAgIGxldCBib290c3RyYXBWZXJzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRyeSB0byBnZXQgdGhlIGJvb3RzdHJhcCB2ZXJzaW9uXG4gICAgICBib290c3RyYXBWZXJzaW9uID0gKGF3YWl0IGVudlJlc291cmNlcy5sb29rdXBUb29sa2l0KCkpLnZlcnNpb247XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gQnV0IGlmIHdlIGNhbid0LCBrZWVwIGdvaW5nLiBNYXliZSB3ZSBjYW4gc3RpbGwgc3VjY2VlZC5cbiAgICB9XG4gICAgaWYgKGJvb3RzdHJhcFZlcnNpb24gIT0gbnVsbCAmJiBib290c3RyYXBWZXJzaW9uIDwgMjgpIHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gYGF3czovLyR7dGhpcy5lbnZpcm9ubWVudC5hY2NvdW50fS8ke3RoaXMuZW52aXJvbm1lbnQucmVnaW9ufWA7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAnQm9vdHN0cmFwVmVyc2lvblRvb0xvdycsXG4gICAgICAgIGBUaGUgQ0RLIHRvb2xraXQgc3RhY2sgaW4gZW52aXJvbm1lbnQgJHtlbnZpcm9ubWVudH0gZG9lc24ndCBzdXBwb3J0IHJlZmFjdG9yaW5nLiBQbGVhc2UgcnVuICdjZGsgYm9vdHN0cmFwICR7ZW52aXJvbm1lbnR9JyB0byB1cGRhdGUgaXQuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kUm9sZVRvQXNzdW1lKHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcik6IFByb21pc2UgPCBzdHJpbmcgfCB1bmRlZmluZWQgPiB7XG4gICAgLy8gVG8gZXhlY3V0ZSBhIHJlZmFjdG9yLCB3ZSBuZWVkIHRoZSBkZXBsb3ltZW50IHJvbGUgQVJOIGZvciB0aGUgZ2l2ZW5cbiAgICAvLyBlbnZpcm9ubWVudC4gTW9zdCB0b29sa2l0IGNvbW1hbmRzIGdldCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggcm9sZXMgdG9cbiAgICAvLyBhc3N1bWUgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHkgKGFuZCB1bHRpbWF0ZWx5IGZyb20gdGhlIENESyBmcmFtZXdvcmspLiBSZWZhY3RvclxuICAgIC8vIGlzIGRpZmZlcmVudCBiZWNhdXNlIGl0IGlzIG5vdCB0aGUgYXBwbGljYXRpb24vZnJhbWV3b3JrIHRoYXQgZGljdGF0ZXMgd2hhdCB0aGVcbiAgICAvLyB0b29sa2l0IHNob3VsZCBkbywgYnV0IGl0IGlzIHRoZSB0b29sa2l0IGl0c2VsZiB0aGF0IGhhcyB0byBmaWd1cmUgaXQgb3V0LlxuICAgIC8vXG4gICAgLy8gTmV2ZXJ0aGVsZXNzLCB0aGUgY2xvdWQgYXNzZW1ibHkgaXMgdGhlIG1vc3QgcmVsaWFibGUgc291cmNlIGZvciB0aGlzIGtpbmQgb2ZcbiAgICAvLyBpbmZvcm1hdGlvbi4gRm9yIHRoZSBkZXBsb3ltZW50IHJvbGUgQVJOLCBpbiBwYXJ0aWN1bGFyLCB3aGF0IHdlIGRvIGhlcmVcbiAgICAvLyBpcyBsb29rIGF0IGFsbCB0aGUgc3RhY2tzIGZvciBhIGdpdmVuIGVudmlyb25tZW50IGluIHRoZSBjbG91ZCBhc3NlbWJseSBhbmRcbiAgICAvLyBleHRyYWN0IHRoZSBkZXBsb3ltZW50IHJvbGUgQVJOIHRoYXQgaXMgY29tbW9uIHRvIGFsbCBvZiB0aGVtLiBJZiBubyByb2xlIGlzXG4gICAgLy8gZm91bmQsIHdlIGdvIGFoZWFkIHdpdGhvdXQgYXNzdW1pbmcgYSByb2xlLiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHJvbGUsXG4gICAgLy8gd2UgY29uc2lkZXIgdGhhdCBhbiBpbnZhcmlhbnQgd2FzIHZpb2xhdGVkLCBhbmQgdGhyb3cgYW4gZXJyb3IuXG5cbiAgICBjb25zdCBlbnYgPSB0aGlzLmVudmlyb25tZW50O1xuICAgIGNvbnN0IHJvbGVBcm5zID0gbmV3IFNldChcbiAgICAgIHRoaXMubG9jYWxTdGFja3NcbiAgICAgICAgLmZpbHRlcigocykgPT4gcy5lbnZpcm9ubWVudC5hY2NvdW50ID09PSBlbnYuYWNjb3VudCAmJiBzLmVudmlyb25tZW50LnJlZ2lvbiA9PT0gZW52LnJlZ2lvbilcbiAgICAgICAgLm1hcCgocykgPT4gcy5hc3N1bWVSb2xlQXJuKSxcbiAgICApO1xuXG4gICAgaWYgKHJvbGVBcm5zLnNpemUgPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHJvbGVBcm5zLnNpemUgIT09IDEpIHtcbiAgICAgIC8vIFVubGlrZWx5IHRvIGhhcHBlbi4gQnV0IGlmIGl0IGRvZXMsIHdlIGNhbid0IHByb2NlZWRcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdNdWx0aXBsZURlcGxveW1lbnRSb2xlcycsXG4gICAgICAgIGBNdWx0aXBsZSBzdGFja3MgaW4gZW52aXJvbm1lbnQgYXdzOi8vJHtlbnYuYWNjb3VudH0vJHtlbnYucmVnaW9ufSBoYXZlIGRpZmZlcmVudCBkZXBsb3ltZW50IHJvbGUgQVJOcy4gQ2Fubm90IHByb2NlZWQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYXJuID0gQXJyYXkuZnJvbShyb2xlQXJucylbMF07XG4gICAgaWYgKGFybiAhPSBudWxsKSB7XG4gICAgICBjb25zdCByZXNvbHZlZEVudiA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChlbnYpO1xuICAgICAgY29uc3QgcmVnaW9uID0gcmVzb2x2ZWRFbnYucmVnaW9uO1xuICAgICAgcmV0dXJuIChhd2FpdCByZXBsYWNlQXdzUGxhY2Vob2xkZXJzKHsgcmVnaW9uLCBhc3N1bWVSb2xlQXJuOiBhcm4gfSwgbmV3IERlZmF1bHRBd3NDbGllbnQoKSkpLmFzc3VtZVJvbGVBcm47XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgY291bGRuJ3QgZmluZCBhIHJvbGUgQVJOLCB3ZSBjYW4gcHJvY2VlZCB3aXRob3V0IGFzc3VtaW5nIGEgcm9sZS5cbiAgICAvLyBNYXliZSB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBoYXZlIHBlcm1pc3Npb25zIHRvIGRvIHdoYXQgd2UgbmVlZC5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGFuIGF1dG9tYXRpYyBsaXN0IG9mIG92ZXJyaWRlcyB0aGF0IGNhbiBiZSBkZWR1Y2VkIGZyb20gdGhlIHN0cnVjdHVyZSBvZiB0aGUgb3Bwb3NpdGUgcmVzb3VyY2UgZ3JhcGguXG4gKiBTdXBwb3NlIHdlIGhhdmUgdGhlIGZvbGxvd2luZyByZXNvdXJjZSBncmFwaDpcbiAqXG4gKiAgICAgQSAtLT4gQlxuICogICAgIEMgLS0+IERcbiAqXG4gKiBzdWNoIHRoYXQgQiBhbmQgRCBhcmUgaWRlbnRpY2FsLCBidXQgQSBpcyBkaWZmZXJlbnQgZnJvbSBDLiBUaGVuIGRpZ2VzdChCKSA9IGRpZ2VzdChEKS4gSWYgYm90aCByZXNvdXJjZXMgYXJlIG1vdmVkLFxuICogd2UgaGF2ZSBhbiBhbWJpZ3VpdHkuIEJ1dCBpZiB3ZSByZXZlcnNlIHRoZSBhcnJvd3M6XG4gKlxuICogICAgIEEgPC0tIEJcbiAqICAgICBDIDwtLSBEXG4gKlxuICogdGhlbiBkaWdlc3QoQikg4omgIGRpZ2VzdChEKSwgYmVjYXVzZSB0aGV5IG5vdyBoYXZlIGRpZmZlcmVudCBkZXBlbmRlbmNpZXMuIElmIHdlIGNvbXB1dGUgdGhlIG1hcHBpbmdzIGZyb20gdGhpc1xuICogb3Bwb3NpdGUgZ3JhcGgsIHdlIGNhbiB1c2UgdGhlbSBhcyBhIHNldCBvZiBvdmVycmlkZXMgdG8gZGlzYW1iaWd1YXRlIHRoZSBvcmlnaW5hbCBtb3Zlcy5cbiAqXG4gKi9cbmZ1bmN0aW9uIHN0cnVjdHVyYWxPdmVycmlkZXMoZGVwbG95ZWRTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSwgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSk6IFJlc291cmNlTWFwcGluZ1tdIHtcbiAgY29uc3QgbW92ZXMgPSByZXNvdXJjZU1vdmVzKGRlcGxveWVkU3RhY2tzLCBsb2NhbFN0YWNrcywgJ29wcG9zaXRlJywgdHJ1ZSk7XG4gIGNvbnN0IFtub25BbWJpZ3VvdXNNb3Zlc10gPSBwYXJ0aXRpb25CeUFtYmlndWl0eShbXSwgbW92ZXMpO1xuICByZXR1cm4gcmVzb3VyY2VNYXBwaW5ncyhub25BbWJpZ3VvdXNNb3Zlcyk7XG59XG5cbmZ1bmN0aW9uIHJlc291cmNlTW92ZXMoXG4gIGJlZm9yZTogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBhZnRlcjogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBkaXJlY3Rpb246IEdyYXBoRGlyZWN0aW9uID0gJ2RpcmVjdCcsXG4gIGlnbm9yZU1vZGlmaWNhdGlvbnM6IGJvb2xlYW4gPSBmYWxzZSk6IFJlc291cmNlTW92ZVtdIHtcbiAgY29uc3QgZGlnZXN0c0JlZm9yZSA9IHJlc291cmNlRGlnZXN0cyhiZWZvcmUsIGRpcmVjdGlvbik7XG4gIGNvbnN0IGRpZ2VzdHNBZnRlciA9IHJlc291cmNlRGlnZXN0cyhhZnRlciwgZGlyZWN0aW9uKTtcblxuICBpZiAoIShpZ25vcmVNb2RpZmljYXRpb25zIHx8IGlzb21vcnBoaWMoZGlnZXN0c0JlZm9yZSwgZGlnZXN0c0FmdGVyKSkpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gWydBIHJlZmFjdG9yIG9wZXJhdGlvbiBjYW5ub3QgYWRkLCByZW1vdmUgb3IgdXBkYXRlIHJlc291cmNlcy4gT25seSByZXNvdXJjZSBtb3ZlcyBhbmQgcmVuYW1lcyBhcmUgYWxsb3dlZC4nXTtcblxuICAgIGNvbnN0IGxvY2F0aW9uc0ZvckRpZ2VzdHMgPSAoYTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPiwgYjogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPikgPT4ge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20oc2V0RGlmZihuZXcgU2V0KE9iamVjdC5rZXlzKGEpKSwgbmV3IFNldChPYmplY3Qua2V5cyhiKSkpKS5mbGF0TWFwKGsgPT4gYVtrXSEpO1xuICAgIH07XG5cbiAgICBjb25zdCBmb3JtYXRMaXN0ID0gKGxvY3M6IFJlc291cmNlTG9jYXRpb25bXSwgaWNvbjogc3RyaW5nKSA9PlxuICAgICAgbG9jcy5tYXAoeCA9PiBgICBbJHtpY29ufV0gJHt4LnRvUGF0aCgpfWApLnNvcnQoKS5qb2luKCdcXG4nKTtcblxuICAgIGNvbnN0IHN0YWNrTmFtZXMgPSAoc3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW10pID0+XG4gICAgICBzdGFja3MubGVuZ3RoID09PSAwXG4gICAgICAgID8gJ05PTkUnXG4gICAgICAgIDogc3RhY2tzXG4gICAgICAgICAgLm1hcCgocykgPT4gcy5zdGFja05hbWUpXG4gICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgIC5qb2luKCcsICcpO1xuXG4gICAgY29uc3Qgb25seURlcGxveWVkTG9jcyA9IGxvY2F0aW9uc0ZvckRpZ2VzdHMoZGlnZXN0c0JlZm9yZSwgZGlnZXN0c0FmdGVyKTtcbiAgICBjb25zdCBvbmx5TG9jYWxMb2NzID0gbG9jYXRpb25zRm9yRGlnZXN0cyhkaWdlc3RzQWZ0ZXIsIGRpZ2VzdHNCZWZvcmUpO1xuXG4gICAgY29uc3Qgb25seURlcGxveWVkUGF0aHMgPSBuZXcgU2V0KG9ubHlEZXBsb3llZExvY3MubWFwKGwgPT4gbC50b1BhdGgoKSkpO1xuICAgIGNvbnN0IG9ubHlMb2NhbFBhdGhzID0gbmV3IFNldChvbmx5TG9jYWxMb2NzLm1hcChsID0+IGwudG9QYXRoKCkpKTtcbiAgICBjb25zdCBkaWZmZXJlbnRQYXRocyA9IG5ldyBTZXQoQXJyYXkuZnJvbShvbmx5RGVwbG95ZWRQYXRocykuZmlsdGVyKHAgPT4gb25seUxvY2FsUGF0aHMuaGFzKHApKSk7XG5cbiAgICBjb25zdCBvbmx5RGVwbG95ZWQgPSBmb3JtYXRMaXN0KG9ubHlEZXBsb3llZExvY3MuZmlsdGVyKGwgPT4gIWRpZmZlcmVudFBhdGhzLmhhcyhsLnRvUGF0aCgpKSksICctJyk7XG4gICAgY29uc3Qgb25seUxvY2FsID0gZm9ybWF0TGlzdChvbmx5TG9jYWxMb2NzLmZpbHRlcihsID0+ICFkaWZmZXJlbnRQYXRocy5oYXMobC50b1BhdGgoKSkpLCAnKycpO1xuICAgIGNvbnN0IGRpZmZlcmVudCA9IGZvcm1hdExpc3QoWy4uLm9ubHlEZXBsb3llZExvY3MsIC4uLm9ubHlMb2NhbExvY3NdLmZpbHRlcihsID0+IGRpZmZlcmVudFBhdGhzLmhhcyhsLnRvUGF0aCgpKSksICd+Jyk7XG5cbiAgICBpZiAob25seURlcGxveWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIG1lc3NhZ2UucHVzaChgVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgYXJlIHByZXNlbnQgb25seSBpbiB0aGUgQVdTIGVudmlyb25tZW50OlxcbiR7b25seURlcGxveWVkfWApO1xuICAgIH1cblxuICAgIGlmIChvbmx5TG9jYWwubGVuZ3RoID4gMCkge1xuICAgICAgbWVzc2FnZS5wdXNoKGBcXG5UaGUgZm9sbG93aW5nIHJlc291cmNlcyBhcmUgcHJlc2VudCBvbmx5IGluIHlvdXIgQ0RLIGFwcGxpY2F0aW9uOlxcbiR7b25seUxvY2FsfWApO1xuICAgIH1cblxuICAgIGlmIChkaWZmZXJlbnQubGVuZ3RoID4gMCkge1xuICAgICAgbWVzc2FnZS5wdXNoKGBcXG5UaGUgZm9sbG93aW5nIHJlc291cmNlcyBhcmUgZGlmZmVyZW50IGluIHlvdXIgQ0RLIGFwcGxpY2F0aW9uIGFuZCB0aGUgQVdTIGVudmlyb25tZW50OlxcbiR7ZGlmZmVyZW50fWApO1xuICAgIH1cblxuICAgIG1lc3NhZ2UucHVzaCgnJyk7XG4gICAgbWVzc2FnZS5wdXNoKCdUaGUgZm9sbG93aW5nIHN0YWNrcyB3ZXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb246Jyk7XG4gICAgbWVzc2FnZS5wdXNoKCBgICAtIERlcGxveWVkOiAke3N0YWNrTmFtZXMoYmVmb3JlKX1gKTtcbiAgICBtZXNzYWdlLnB1c2goIGAgIC0gTG9jYWw6ICR7c3RhY2tOYW1lcyhhZnRlcil9YCk7XG4gICAgbWVzc2FnZS5wdXNoKCcnKTtcbiAgICBtZXNzYWdlLnB1c2goJ0hpbnQ6IGJ5IGRlZmF1bHQsIG9ubHkgZGVwbG95ZWQgc3RhY2tzIHRoYXQgaGF2ZSB0aGUgc2FtZSBuYW1lIGFzIGEgbG9jYWwgc3RhY2sgYXJlIGluY2x1ZGVkLicpO1xuICAgIG1lc3NhZ2UucHVzaCgnSWYgeW91IHdhbnQgdG8gaW5jbHVkZSBhZGRpdGlvbmFsIGRlcGxveWVkIHN0YWNrcyBmb3IgY29tcGFyaXNvbiwgcmUtcnVuIHRoZSBjb21tYW5kIHdpdGggdGhlIG9wdGlvbiBcXCctLWFkZGl0aW9uYWwtc3RhY2stbmFtZT08U1RBQ0s+XFwnIGZvciBlYWNoIHN0YWNrLicpO1xuXG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignUmVmYWN0b3JSZXNvdXJjZU1pc21hdGNoJywgbWVzc2FnZS5qb2luKCdcXG4nKSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZW1vdmVVbm1vdmVkUmVzb3VyY2VzKHppcChkaWdlc3RzQmVmb3JlLCBkaWdlc3RzQWZ0ZXIpKSk7XG59XG5cbi8qKlxuICogV2hldGhlciB0d28gc2V0cyBvZiByZXNvdXJjZXMgaGF2ZSB0aGUgc2FtZSBlbGVtZW50cyAodW5pcXVlbHkgaWRlbnRpZmllZCBieSB0aGUgZGlnZXN0KSwgYW5kXG4gKiBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHNhbWUgbnVtYmVyIG9mIGxvY2F0aW9ucy4gVGhlIGxvY2F0aW9ucyB0aGVtc2VsdmVzIG1heSBiZSBkaWZmZXJlbnQuXG4gKi9cbmZ1bmN0aW9uIGlzb21vcnBoaWMoYTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPiwgYjogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPik6IGJvb2xlYW4ge1xuICBjb25zdCBzYW1lS2V5cyA9IGVxdWFsU2V0cyhuZXcgU2V0KE9iamVjdC5rZXlzKGEpKSwgbmV3IFNldChPYmplY3Qua2V5cyhiKSkpO1xuICByZXR1cm4gc2FtZUtleXMgJiYgT2JqZWN0LmVudHJpZXMoYSkuZXZlcnkoKFtkaWdlc3QsIGxvY2F0aW9uc10pID0+IGxvY2F0aW9ucy5sZW5ndGggPT09IGJbZGlnZXN0XS5sZW5ndGgpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVVbm1vdmVkUmVzb3VyY2VzKG1vdmVzOiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZU1vdmU+KTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNb3ZlPiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNb3ZlPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtoYXNoLCBbYmVmb3JlLCBhZnRlcl1dIG9mIE9iamVjdC5lbnRyaWVzKG1vdmVzKSkge1xuICAgIGNvbnN0IGNvbW1vbiA9IGJlZm9yZS5maWx0ZXIoKGIpID0+IGFmdGVyLnNvbWUoKGEpID0+IGEuZXF1YWxUbyhiKSkpO1xuICAgIHJlc3VsdFtoYXNoXSA9IFtcbiAgICAgIGJlZm9yZS5maWx0ZXIoKGIpID0+ICFjb21tb24uc29tZSgoYykgPT4gYi5lcXVhbFRvKGMpKSksXG4gICAgICBhZnRlci5maWx0ZXIoKGEpID0+ICFjb21tb24uc29tZSgoYykgPT4gYS5lcXVhbFRvKGMpKSksXG4gICAgXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRm9yIGVhY2ggaGFzaCwgaWRlbnRpZnlpbmcgYSBzaW5nbGUgcmVzb3VyY2UsIHppcCB0aGUgdHdvIGxpc3RzIG9mIGxvY2F0aW9ucyxcbiAqIHByb2R1Y2luZyBhIHJlc291cmNlIG1vdmVcbiAqL1xuZnVuY3Rpb24gemlwKFxuICBtMTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPixcbiAgbTI6IFJlY29yZDxzdHJpbmcsIFJlc291cmNlTG9jYXRpb25bXT4sXG4pOiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZU1vdmU+IHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZU1vdmU+ID0ge307XG5cbiAgZm9yIChjb25zdCBbaGFzaCwgbG9jYXRpb25zXSBvZiBPYmplY3QuZW50cmllcyhtMSkpIHtcbiAgICBpZiAoaGFzaCBpbiBtMikge1xuICAgICAgcmVzdWx0W2hhc2hdID0gW2xvY2F0aW9ucywgbTJbaGFzaF1dO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbaGFzaF0gPSBbbG9jYXRpb25zLCBbXV07XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBbaGFzaCwgbG9jYXRpb25zXSBvZiBPYmplY3QuZW50cmllcyhtMikpIHtcbiAgICBpZiAoIShoYXNoIGluIG0xKSkge1xuICAgICAgcmVzdWx0W2hhc2hdID0gW1tdLCBsb2NhdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgYSBsaXN0IG9mIHBhaXJzIFtkaWdlc3QsIGxvY2F0aW9uXSBmb3IgZWFjaCByZXNvdXJjZSBpbiB0aGUgc3RhY2suXG4gKi9cbmZ1bmN0aW9uIHJlc291cmNlRGlnZXN0cyhzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSwgZGlyZWN0aW9uOiBHcmFwaERpcmVjdGlvbik6IFJlY29yZDxzdHJpbmcsIFJlc291cmNlTG9jYXRpb25bXT4ge1xuICAvLyBpbmRleCBzdGFja3MgYnkgbmFtZVxuICBjb25zdCBzdGFja3NCeU5hbWUgPSBuZXcgTWFwPHN0cmluZywgQ2xvdWRGb3JtYXRpb25TdGFjaz4oKTtcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3MpIHtcbiAgICBzdGFja3NCeU5hbWUuc2V0KHN0YWNrLnN0YWNrTmFtZSwgc3RhY2spO1xuICB9XG5cbiAgY29uc3QgZGlnZXN0cyA9IGNvbXB1dGVSZXNvdXJjZURpZ2VzdHMoc3RhY2tzLCBkaXJlY3Rpb24pO1xuXG4gIHJldHVybiBncm91cEJ5S2V5KFxuICAgIE9iamVjdC5lbnRyaWVzKGRpZ2VzdHMpLm1hcCgoW2xvYywgZGlnZXN0XSkgPT4ge1xuICAgICAgY29uc3QgW3N0YWNrTmFtZSwgbG9naWNhbElkXSA9IGxvYy5zcGxpdCgnLicpO1xuICAgICAgY29uc3QgbG9jYXRpb246IFJlc291cmNlTG9jYXRpb24gPSBuZXcgUmVzb3VyY2VMb2NhdGlvbihzdGFja3NCeU5hbWUuZ2V0KHN0YWNrTmFtZSkhLCBsb2dpY2FsSWQpO1xuICAgICAgcmV0dXJuIFtkaWdlc3QsIGxvY2F0aW9uXTtcbiAgICB9KSxcbiAgKTtcblxuICBmdW5jdGlvbiBncm91cEJ5S2V5PEE+KGVudHJpZXM6IFtzdHJpbmcsIEFdW10pOiBSZWNvcmQ8c3RyaW5nLCBBW10+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIEFbXT4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICAgIGlmIChrZXkgaW4gcmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBbdmFsdWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNBbWJpZ3VvdXNNb3ZlKG1vdmU6IFJlc291cmNlTW92ZSk6IGJvb2xlYW4ge1xuICBjb25zdCBbcHJlLCBwb3N0XSA9IG1vdmU7XG5cbiAgLy8gQSBtb3ZlIGlzIGNvbnNpZGVyZWQgYW1iaWd1b3VzIGlmIHR3byBjb25kaXRpb25zIGFyZSBtZXQ6XG4gIC8vICAxLiBCb3RoIHNpZGVzIGhhdmUgYXQgbGVhc3Qgb25lIGVsZW1lbnQgKG90aGVyd2lzZSwgaXQncyBqdXN0IGFkZGl0aW9uIG9yIGRlbGV0aW9uKVxuICAvLyAgMi4gQXQgbGVhc3Qgb25lIHNpZGUgaGFzIG1vcmUgdGhhbiBvbmUgZWxlbWVudFxuICByZXR1cm4gcHJlLmxlbmd0aCA+IDAgJiYgcG9zdC5sZW5ndGggPiAwICYmIChwcmUubGVuZ3RoID4gMSB8fCBwb3N0Lmxlbmd0aCA+IDEpO1xufVxuXG5mdW5jdGlvbiByZXNvdXJjZU1hcHBpbmdzKG1vdmVtZW50czogUmVzb3VyY2VNb3ZlW10pOiBSZXNvdXJjZU1hcHBpbmdbXSB7XG4gIHJldHVybiBtb3ZlbWVudHNcbiAgICAuZmlsdGVyKChbcHJlLCBwb3N0XSkgPT4gcHJlLmxlbmd0aCA9PT0gMSAmJiBwb3N0Lmxlbmd0aCA9PT0gMSAmJiAhcHJlWzBdLmVxdWFsVG8ocG9zdFswXSkpXG4gICAgLm1hcCgoW3ByZSwgcG9zdF0pID0+IG5ldyBSZXNvdXJjZU1hcHBpbmcocHJlWzBdLCBwb3N0WzBdKSk7XG59XG5cbi8qKlxuICogUGFydGl0aW9ucyBhIGxpc3Qgb2YgbW92ZXMgaW50byBub24tYW1iaWd1b3VzIGFuZCBhbWJpZ3VvdXMgbW92ZXMuXG4gKiBAcGFyYW0gb3ZlcnJpZGVzIC0gVGhlIGxpc3Qgb2Ygb3ZlcnJpZGVzIHRvIGRpc2FtYmlndWF0ZSBtb3Zlc1xuICogQHBhcmFtIG1vdmVzIC0gYSBwYWlyIG9mIGxpc3RzIG9mIG1vdmVzLiBGaXJzdDogbm9uLWFtYmlndW91cywgc2Vjb25kOiBhbWJpZ3VvdXNcbiAqL1xuZnVuY3Rpb24gcGFydGl0aW9uQnlBbWJpZ3VpdHkob3ZlcnJpZGVzOiBSZXNvdXJjZU1hcHBpbmdbXSwgbW92ZXM6IFJlc291cmNlTW92ZVtdKTogW1Jlc291cmNlTW92ZVtdLCBSZXNvdXJjZU1vdmVbXV0ge1xuICBjb25zdCBhbWJpZ3VvdXM6IFJlc291cmNlTW92ZVtdID0gW107XG4gIGNvbnN0IG5vbkFtYmlndW91czogUmVzb3VyY2VNb3ZlW10gPSBbXTtcblxuICBmb3IgKGxldCBtb3ZlIG9mIG1vdmVzKSB7XG4gICAgaWYgKCFpc0FtYmlndW91c01vdmUobW92ZSkpIHtcbiAgICAgIG5vbkFtYmlndW91cy5wdXNoKG1vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIG92ZXJyaWRlcykge1xuICAgICAgICBjb25zdCByZXNvbHZlZE1vdmUgPSByZXNvbHZlKG92ZXJyaWRlLCBtb3ZlKTtcbiAgICAgICAgaWYgKHJlc29sdmVkTW92ZSAhPSBudWxsKSB7XG4gICAgICAgICAgbm9uQW1iaWd1b3VzLnB1c2gocmVzb2x2ZWRNb3ZlKTtcbiAgICAgICAgICBtb3ZlID0gcmVtb3ZlKG92ZXJyaWRlLCBtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gT25lIGxhc3QgY2hhbmNlIHRvIGJlIG5vbi1hbWJpZ3VvdXNcbiAgICAgIGlmICghaXNBbWJpZ3VvdXNNb3ZlKG1vdmUpKSB7XG4gICAgICAgIG5vbkFtYmlndW91cy5wdXNoKG1vdmUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW1iaWd1b3VzLnB1c2gobW92ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVzb2x2ZShvdmVycmlkZTogUmVzb3VyY2VNYXBwaW5nLCBtb3ZlOiBSZXNvdXJjZU1vdmUpOiBSZXNvdXJjZU1vdmUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IFtwcmUsIHBvc3RdID0gbW92ZTtcbiAgICBjb25zdCBzb3VyY2UgPSBwcmUuZmluZCgobG9jKSA9PiBsb2MuZXF1YWxUbyhvdmVycmlkZS5zb3VyY2UpKTtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHBvc3QuZmluZCgobG9jKSA9PiBsb2MuZXF1YWxUbyhvdmVycmlkZS5kZXN0aW5hdGlvbikpO1xuICAgIHJldHVybiAoc291cmNlICYmIGRlc3RpbmF0aW9uKSA/IFtbc291cmNlXSwgW2Rlc3RpbmF0aW9uXV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmUob3ZlcnJpZGU6IFJlc291cmNlTWFwcGluZywgbW92ZTogUmVzb3VyY2VNb3ZlKTogUmVzb3VyY2VNb3ZlIHtcbiAgICBjb25zdCBbcHJlLCBwb3N0XSA9IG1vdmU7XG4gICAgcmV0dXJuIFtcbiAgICAgIHByZS5maWx0ZXIobG9jID0+ICFsb2MuZXF1YWxUbyhvdmVycmlkZS5zb3VyY2UpKSxcbiAgICAgIHBvc3QuZmlsdGVyKGxvYyA9PiAhbG9jLmVxdWFsVG8ob3ZlcnJpZGUuZGVzdGluYXRpb24pKSxcbiAgICBdO1xuICB9XG5cbiAgcmV0dXJuIFtub25BbWJpZ3VvdXMsIGFtYmlndW91c107XG59XG5cbi8qKlxuICogUmVwbGFjZSB0aGUge0FDQ09VTlR9IGFuZCB7UkVHSU9OfSBwbGFjZWhvbGRlcnMgaW4gYWxsIHN0cmluZ3MgZm91bmQgaW4gYSBjb21wbGV4IG9iamVjdC5cbiAqXG4gKiBEdXBsaWNhdGVkIGJldHdlZW4gY2RrLWFzc2V0cyBhbmQgYXdzLWNkayBDTEkgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgZ29vZCBzaW5nbGUgcGxhY2UgdG8gcHV0IGl0XG4gKiAodGhleSdyZSBub21pbmFsbHkgaW5kZXBlbmRlbnQgdG9vbHMpLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwbGFjZUF3c1BsYWNlaG9sZGVyczxBIGV4dGVuZHMgeyByZWdpb24/OiBzdHJpbmcgfT4oXG4gIG9iamVjdDogQSxcbiAgYXdzOiBJQXdzLFxuKTogUHJvbWlzZTxBPiB7XG4gIGxldCBwYXJ0aXRpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcCA9IGF3YWl0IGF3cy5kaXNjb3ZlclBhcnRpdGlvbigpO1xuICAgIHBhcnRpdGlvbiA9ICgpID0+IFByb21pc2UucmVzb2x2ZShwKTtcbiAgICByZXR1cm4gcDtcbiAgfTtcblxuICBsZXQgYWNjb3VudCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBhID0gYXdhaXQgYXdzLmRpc2NvdmVyQ3VycmVudEFjY291bnQoKTtcbiAgICBhY2NvdW50ID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGEpO1xuICAgIHJldHVybiBhO1xuICB9O1xuXG4gIHJldHVybiBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5yZXBsYWNlQXN5bmMob2JqZWN0LCB7XG4gICAgYXN5bmMgcmVnaW9uKCkge1xuICAgICAgcmV0dXJuIG9iamVjdC5yZWdpb24gPz8gYXdzLmRpc2NvdmVyRGVmYXVsdFJlZ2lvbigpO1xuICAgIH0sXG4gICAgYXN5bmMgYWNjb3VudElkKCkge1xuICAgICAgcmV0dXJuIChhd2FpdCBhY2NvdW50KCkpLmFjY291bnRJZDtcbiAgICB9LFxuICAgIGFzeW5jIHBhcnRpdGlvbigpIHtcbiAgICAgIHJldHVybiBwYXJ0aXRpb24oKTtcbiAgICB9LFxuICB9KTtcbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.computeResourceDigests = computeResourceDigests;\nexports.hashObject = hashObject;\nconst crypto = require(\"node:crypto\");\nconst graph_1 = require(\"./graph\");\n/**\n * Computes the digest for each resource in the template.\n *\n * Conceptually, the digest is computed as:\n *\n * digest(resource) = hash(type + properties + dependencies.map(d))\n *\n * where `hash` is a cryptographic hash function. In other words, the digest of a\n * resource is computed from its type, its own properties (that is, excluding\n * properties that refer to other resources), and the digests of each of its\n * dependencies.\n *\n * The digest of a resource, defined recursively this way, remains stable even if\n * one or more of its dependencies gets renamed. Since the resources in a\n * CloudFormation template form a directed acyclic graph, this function is\n * well-defined.\n */\nfunction computeResourceDigests(stacks, direction = 'direct') {\n const exports = Object.fromEntries(stacks.flatMap((s) => Object.values(s.template.Outputs ?? {})\n .filter((o) => o.Export != null && typeof o.Export.Name === 'string')\n .map((o) => [o.Export.Name, { stackName: s.stackName, value: o.Value }])));\n const resources = Object.fromEntries(stacks.flatMap((s) => {\n return Object.entries(s.template.Resources ?? {})\n .filter(([_, res]) => res.Type !== 'AWS::CDK::Metadata')\n .map(([id, res]) => [`${s.stackName}.${id}`, res]);\n }));\n const graph = direction == 'direct'\n ? graph_1.ResourceGraph.fromStacks(stacks)\n : graph_1.ResourceGraph.fromStacks(stacks).opposite();\n return computeDigestsInTopologicalOrder(graph, resources, exports);\n}\nfunction computeDigestsInTopologicalOrder(graph, resources, exports) {\n const nodes = graph.sortedNodes.filter(n => resources[n] != null);\n const result = {};\n for (const id of nodes) {\n const resource = resources[id];\n const depDigests = Array.from(graph.outNeighbors(id)).map((d) => result[d]);\n const propertiesHash = hashObject(stripReferences(stripConstructPath(resource), exports));\n const toHash = resource.Type + propertiesHash + depDigests.join('');\n result[id] = crypto.createHash('sha256').update(toHash).digest('hex');\n }\n return result;\n}\nfunction hashObject(obj) {\n const hash = crypto.createHash('sha256');\n function addToHash(value) {\n if (value == null) {\n addToHash('null');\n }\n else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n value.forEach(addToHash);\n }\n else {\n Object.keys(value)\n .sort()\n .forEach((key) => {\n hash.update(key);\n addToHash(value[key]);\n });\n }\n }\n else {\n hash.update(typeof value + value.toString());\n }\n }\n addToHash(obj);\n return hash.digest('hex');\n}\n/**\n * Removes sub-properties containing Ref or Fn::GetAtt to avoid hashing\n * references themselves but keeps the property structure.\n */\nfunction stripReferences(value, exports) {\n if (!value || typeof value !== 'object')\n return value;\n if (Array.isArray(value)) {\n return value.map(x => stripReferences(x, exports));\n }\n if ('Ref' in value) {\n return { __cloud_ref__: 'Ref' };\n }\n if ('Fn::GetAtt' in value) {\n return { __cloud_ref__: 'Fn::GetAtt' };\n }\n if ('DependsOn' in value) {\n return { __cloud_ref__: 'DependsOn' };\n }\n if ('Fn::ImportValue' in value) {\n const exp = exports[value['Fn::ImportValue']];\n if (exp != null) {\n const v = exp.value;\n if (v != null && typeof v === 'object') {\n // Treat Fn::ImportValue as if it were a reference with the same stack\n if ('Ref' in v) {\n return { __cloud_ref__: 'Ref' };\n }\n else if ('Fn::GetAtt' in v) {\n return { __cloud_ref__: 'Fn::GetAtt' };\n }\n }\n else {\n // If the export value is a primitive, we can just use it directly\n return v;\n }\n }\n }\n const result = {};\n for (const [k, v] of Object.entries(value)) {\n result[k] = stripReferences(v, exports);\n }\n return result;\n}\nfunction stripConstructPath(resource) {\n if (resource?.Metadata?.['aws:cdk:path'] == null) {\n return resource;\n }\n const copy = JSON.parse(JSON.stringify(resource));\n delete copy.Metadata['aws:cdk:path'];\n return copy;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlnZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeUJBLHdEQXlCQztBQW1CRCxnQ0F3QkM7QUE3RkQsc0NBQXNDO0FBRXRDLG1DQUF3QztBQU14Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLE1BQTZCLEVBQUUsWUFBNEIsUUFBUTtJQUN4RyxNQUFNLE9BQU8sR0FBdUQsTUFBTSxDQUFDLFdBQVcsQ0FDcEYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ3BDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7U0FDcEUsR0FBRyxDQUNGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBZ0QsQ0FDN0csQ0FDSixDQUNGLENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDbkIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQzthQUM5QyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQzth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T0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDbEMsQ0FBQztxQkFBTSxJQUFJLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsQ0FBQztnQkFDekMsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixrRUFBa0U7Z0JBQ2xFLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO0lBQ3ZCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLFFBQWE7SUFDdkMsSUFBSSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDakQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvblJlc291cmNlLCBDbG91ZEZvcm1hdGlvblN0YWNrIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZUdyYXBoIH0gZnJvbSAnLi9ncmFwaCc7XG5cbmV4cG9ydCB0eXBlIEdyYXBoRGlyZWN0aW9uID1cbiAgJ2RpcmVjdCcgLy8gRWRnZSBBIC0+IEIgbWVhbiB0aGF0IEEgZGVwZW5kcyBvbiBCXG4gIHwgJ29wcG9zaXRlJzsgLy8gRWRnZSBBIC0+IEIgbWVhbiB0aGF0IEIgZGVwZW5kcyBvbiBBXG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGRpZ2VzdCBmb3IgZWFjaCByZXNvdXJjZSBpbiB0aGUgdGVtcGxhdGUuXG4gKlxuICogQ29uY2VwdHVhbGx5LCB0aGUgZGlnZXN0IGlzIGNvbXB1dGVkIGFzOlxuICpcbiAqICAgICBkaWdlc3QocmVzb3VyY2UpID0gaGFzaCh0eXBlICsgcHJvcGVydGllcyArIGRlcGVuZGVuY2llcy5tYXAoZCkpXG4gKlxuICogd2hlcmUgYGhhc2hgIGlzIGEgY3J5cHRvZ3JhcGhpYyBoYXNoIGZ1bmN0aW9uLiBJbiBvdGhlciB3b3JkcywgdGhlIGRpZ2VzdCBvZiBhXG4gKiByZXNvdXJjZSBpcyBjb21wdXRlZCBmcm9tIGl0cyB0eXBlLCBpdHMgb3duIHByb3BlcnRpZXMgKHRoYXQgaXMsIGV4Y2x1ZGluZ1xuICogcHJvcGVydGllcyB0aGF0IHJlZmVyIHRvIG90aGVyIHJlc291cmNlcyksIGFuZCB0aGUgZGlnZXN0cyBvZiBlYWNoIG9mIGl0c1xuICogZGVwZW5kZW5jaWVzLlxuICpcbiAqIFRoZSBkaWdlc3Qgb2YgYSByZXNvdXJjZSwgZGVmaW5lZCByZWN1cnNpdmVseSB0aGlzIHdheSwgcmVtYWlucyBzdGFibGUgZXZlbiBpZlxuICogb25lIG9yIG1vcmUgb2YgaXRzIGRlcGVuZGVuY2llcyBnZXRzIHJlbmFtZWQuIFNpbmNlIHRoZSByZXNvdXJjZXMgaW4gYVxuICogQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZm9ybSBhIGRpcmVjdGVkIGFjeWNsaWMgZ3JhcGgsIHRoaXMgZnVuY3Rpb24gaXNcbiAqIHdlbGwtZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVSZXNvdXJjZURpZ2VzdHMoc3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW10sIGRpcmVjdGlvbjogR3JhcGhEaXJlY3Rpb24gPSAnZGlyZWN0Jyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCBleHBvcnRzOiB7IFtwOiBzdHJpbmddOiB7IHN0YWNrTmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBzdGFja3MuZmxhdE1hcCgocykgPT5cbiAgICAgIE9iamVjdC52YWx1ZXMocy50ZW1wbGF0ZS5PdXRwdXRzID8/IHt9KVxuICAgICAgICAuZmlsdGVyKChvKSA9PiBvLkV4cG9ydCAhPSBudWxsICYmIHR5cGVvZiBvLkV4cG9ydC5OYW1lID09PSAnc3RyaW5nJylcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAobykgPT5cbiAgICAgICAgICAgIFtvLkV4cG9ydC5OYW1lLCB7IHN0YWNrTmFtZTogcy5zdGFja05hbWUsIHZhbHVlOiBvLlZhbHVlIH1dIGFzIFtzdHJpbmcsIHsgc3RhY2tOYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfV0sXG4gICAgICAgICksXG4gICAgKSxcbiAgKTtcblxuICBjb25zdCByZXNvdXJjZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgc3RhY2tzLmZsYXRNYXAoKHMpID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhzLnRlbXBsYXRlLlJlc291cmNlcyA/PyB7fSlcbiAgICAgICAgLmZpbHRlcigoW18sIHJlc10pID0+IHJlcy5UeXBlICE9PSAnQVdTOjpDREs6Ok1ldGFkYXRhJylcbiAgICAgICAgLm1hcCgoW2lkLCByZXNdKSA9PiBbYCR7cy5zdGFja05hbWV9LiR7aWR9YCwgcmVzXSBhcyBbc3RyaW5nLCBDbG91ZEZvcm1hdGlvblJlc291cmNlXSk7XG4gICAgfSksXG4gICk7XG5cbiAgY29uc3QgZ3JhcGggPSBkaXJlY3Rpb24gPT0gJ2RpcmVjdCdcbiAgICA/IFJlc291cmNlR3JhcGguZnJvbVN0YWNrcyhzdGFja3MpXG4gICAgOiBSZXNvdXJjZUdyYXBoLmZyb21TdGFja3Moc3RhY2tzKS5vcHBvc2l0ZSgpO1xuXG4gIHJldHVybiBjb21wdXRlRGlnZXN0c0luVG9wb2xvZ2ljYWxPcmRlcihncmFwaCwgcmVzb3VyY2VzLCBleHBvcnRzKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZURpZ2VzdHNJblRvcG9sb2dpY2FsT3JkZXIoXG4gIGdyYXBoOiBSZXNvdXJjZUdyYXBoLFxuICByZXNvdXJjZXM6IFJlY29yZDxzdHJpbmcsIENsb3VkRm9ybWF0aW9uUmVzb3VyY2U+LFxuICBleHBvcnRzOiBSZWNvcmQ8c3RyaW5nLCB7IHN0YWNrTmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH0+KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IG5vZGVzID0gZ3JhcGguc29ydGVkTm9kZXMuZmlsdGVyKG4gPT4gcmVzb3VyY2VzW25dICE9IG51bGwpO1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgZm9yIChjb25zdCBpZCBvZiBub2Rlcykge1xuICAgIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VzW2lkXTtcbiAgICBjb25zdCBkZXBEaWdlc3RzID0gQXJyYXkuZnJvbShncmFwaC5vdXROZWlnaGJvcnMoaWQpKS5tYXAoKGQpID0+IHJlc3VsdFtkXSk7XG4gICAgY29uc3QgcHJvcGVydGllc0hhc2ggPSBoYXNoT2JqZWN0KHN0cmlwUmVmZXJlbmNlcyhzdHJpcENvbnN0cnVjdFBhdGgocmVzb3VyY2UpLCBleHBvcnRzKSk7XG4gICAgY29uc3QgdG9IYXNoID0gcmVzb3VyY2UuVHlwZSArIHByb3BlcnRpZXNIYXNoICsgZGVwRGlnZXN0cy5qb2luKCcnKTtcbiAgICByZXN1bHRbaWRdID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZSh0b0hhc2gpLmRpZ2VzdCgnaGV4Jyk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzaE9iamVjdChvYmo6IGFueSk6IHN0cmluZyB7XG4gIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG5cbiAgZnVuY3Rpb24gYWRkVG9IYXNoKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgYWRkVG9IYXNoKCdudWxsJyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhZGRUb0hhc2gpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmtleXModmFsdWUpXG4gICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgIC5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGhhc2gudXBkYXRlKGtleSk7XG4gICAgICAgICAgICBhZGRUb0hhc2godmFsdWVba2V5XSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhc2gudXBkYXRlKHR5cGVvZiB2YWx1ZSArIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFRvSGFzaChvYmopO1xuICByZXR1cm4gaGFzaC5kaWdlc3QoJ2hleCcpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgc3ViLXByb3BlcnRpZXMgY29udGFpbmluZyBSZWYgb3IgRm46OkdldEF0dCB0byBhdm9pZCBoYXNoaW5nXG4gKiByZWZlcmVuY2VzIHRoZW1zZWx2ZXMgYnV0IGtlZXBzIHRoZSBwcm9wZXJ0eSBzdHJ1Y3R1cmUuXG4gKi9cbmZ1bmN0aW9uIHN0cmlwUmVmZXJlbmNlcyh2YWx1ZTogYW55LCBleHBvcnRzOiB7IFtwOiBzdHJpbmddOiB7IHN0YWNrTmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfSk6IGFueSB7XG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIHZhbHVlO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHggPT4gc3RyaXBSZWZlcmVuY2VzKHgsIGV4cG9ydHMpKTtcbiAgfVxuICBpZiAoJ1JlZicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4geyBfX2Nsb3VkX3JlZl9fOiAnUmVmJyB9O1xuICB9XG4gIGlmICgnRm46OkdldEF0dCcgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4geyBfX2Nsb3VkX3JlZl9fOiAnRm46OkdldEF0dCcgfTtcbiAgfVxuICBpZiAoJ0RlcGVuZHNPbicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4geyBfX2Nsb3VkX3JlZl9fOiAnRGVwZW5kc09uJyB9O1xuICB9XG4gIGlmICgnRm46OkltcG9ydFZhbHVlJyBpbiB2YWx1ZSkge1xuICAgIGNvbnN0IGV4cCA9IGV4cG9ydHNbdmFsdWVbJ0ZuOjpJbXBvcnRWYWx1ZSddXTtcbiAgICBpZiAoZXhwICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHYgPSBleHAudmFsdWU7XG4gICAgICBpZiAodiAhPSBudWxsICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBUcmVhdCBGbjo6SW1wb3J0VmFsdWUgYXMgaWYgaXQgd2VyZSBhIHJlZmVyZW5jZSB3aXRoIHRoZSBzYW1lIHN0YWNrXG4gICAgICAgIGlmICgnUmVmJyBpbiB2KSB7XG4gICAgICAgICAgcmV0dXJuIHsgX19jbG91ZF9yZWZfXzogJ1JlZicgfTtcbiAgICAgICAgfSBlbHNlIGlmICgnRm46OkdldEF0dCcgaW4gdikge1xuICAgICAgICAgIHJldHVybiB7IF9fY2xvdWRfcmVmX186ICdGbjo6R2V0QXR0JyB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB0aGUgZXhwb3J0IHZhbHVlIGlzIGEgcHJpbWl0aXZlLCB3ZSBjYW4ganVzdCB1c2UgaXQgZGlyZWN0bHlcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgIHJlc3VsdFtrXSA9IHN0cmlwUmVmZXJlbmNlcyh2LCBleHBvcnRzKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBzdHJpcENvbnN0cnVjdFBhdGgocmVzb3VyY2U6IGFueSk6IGFueSB7XG4gIGlmIChyZXNvdXJjZT8uTWV0YWRhdGE/LlsnYXdzOmNkazpwYXRoJ10gPT0gbnVsbCkge1xuICAgIHJldHVybiByZXNvdXJjZTtcbiAgfVxuXG4gIGNvbnN0IGNvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlc291cmNlKSk7XG4gIGRlbGV0ZSBjb3B5Lk1ldGFkYXRhWydhd3M6Y2RrOnBhdGgnXTtcbiAgcmV0dXJuIGNvcHk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceGraph = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\n/**\n * An immutable directed graph of resources from multiple CloudFormation stacks.\n */\nclass ResourceGraph {\n static fromStacks(stacks) {\n const exports = Object.fromEntries(stacks.flatMap((s) => Object.values(s.template.Outputs ?? {})\n .filter((o) => o.Export != null && typeof o.Export.Name === 'string')\n .map((o) => [o.Export.Name, { stackName: s.stackName, value: o.Value }])));\n const resources = Object.fromEntries(stacks.flatMap((s) => Object.entries(s.template.Resources ?? {}).map(([id, res]) => [`${s.stackName}.${id}`, res])));\n // 1. Build adjacency lists\n const edges = {};\n const reverseEdges = {};\n for (const id of Object.keys(resources)) {\n edges[id] = new Set();\n reverseEdges[id] = new Set();\n }\n // 2. Detect dependencies by searching for Ref/Fn::GetAtt\n const findDependencies = (stackName, value) => {\n if (!value || typeof value !== 'object')\n return [];\n if (Array.isArray(value)) {\n return value.flatMap((res) => findDependencies(stackName, res));\n }\n if ('Ref' in value) {\n return [`${stackName}.${value.Ref}`];\n }\n if ('Fn::GetAtt' in value) {\n const refTarget = Array.isArray(value['Fn::GetAtt'])\n ? value['Fn::GetAtt'][0]\n : value['Fn::GetAtt'].split('.')[0];\n return [`${stackName}.${refTarget}`];\n }\n if ('Fn::ImportValue' in value) {\n const exp = exports[value['Fn::ImportValue']];\n if (exp != null) {\n const v = exp.value;\n if (v != null && typeof v === 'object') {\n if ('Fn::GetAtt' in v) {\n const id = Array.isArray(v['Fn::GetAtt']) ? v['Fn::GetAtt'][0] : v['Fn::GetAtt'].split('.')[0];\n return [`${exp.stackName}.${id}`];\n }\n if ('Ref' in v) {\n return [`${exp.stackName}.${v.Ref}`];\n }\n }\n return [`${exp.stackName}.${v}`];\n }\n }\n const result = [];\n if ('DependsOn' in value) {\n if (Array.isArray(value.DependsOn)) {\n result.push(...value.DependsOn.map((r) => `${stackName}.${r}`));\n }\n else {\n result.push(`${stackName}.${value.DependsOn}`);\n }\n }\n result.push(...Object.values(value).flatMap((res) => findDependencies(stackName, res)));\n return result;\n };\n for (const [id, res] of Object.entries(resources)) {\n const stackName = id.split('.')[0];\n const deps = findDependencies(stackName, res || {});\n for (const dep of deps) {\n if (dep in resources && dep !== id) {\n edges[id].add(dep);\n reverseEdges[dep].add(id);\n }\n }\n }\n return new ResourceGraph(edges, reverseEdges);\n }\n edges = {};\n reverseEdges = {};\n constructor(edges, reverseEdges) {\n this.edges = edges;\n this.reverseEdges = reverseEdges;\n }\n /**\n * Returns the sorted nodes in topological order.\n */\n get sortedNodes() {\n const result = [];\n const outDegree = Object.keys(this.edges).reduce((acc, k) => {\n acc[k] = this.edges[k].size;\n return acc;\n }, {});\n const queue = Object.keys(outDegree).filter((k) => outDegree[k] === 0);\n while (queue.length > 0) {\n const node = queue.shift();\n result.push(node);\n for (const nxt of this.reverseEdges[node]) {\n outDegree[nxt]--;\n if (outDegree[nxt] === 0) {\n queue.push(nxt);\n }\n }\n }\n return result;\n }\n inNeighbors(node) {\n if (!(node in this.edges)) {\n throw new toolkit_error_1.ToolkitError('RefactorGraphNodeNotFound', `Node ${node} not found in the graph`);\n }\n return Array.from(this.reverseEdges[node] || []);\n }\n outNeighbors(node) {\n if (!(node in this.edges)) {\n throw new toolkit_error_1.ToolkitError('RefactorGraphNodeNotFound', `Node ${node} not found in the graph`);\n }\n return Array.from(this.edges[node] || []);\n }\n /**\n * Returns another graph with the same nodes, but with the edges inverted\n */\n opposite() {\n return new ResourceGraph(this.reverseEdges, this.edges);\n }\n}\nexports.ResourceGraph = ResourceGraph;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJncmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrREFBMkQ7QUFFM0Q7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDakIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFrRDtRQUN6RSxNQUFNLE9BQU8sR0FBdUQsTUFBTSxDQUFDLFdBQVcsQ0FDcEYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7YUFDcEUsR0FBRyxDQUNGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FNekQsQ0FDSixDQUNKLENBQ0YsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDNUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFxQyxDQUNqRixDQUNGLENBQ0YsQ0FBQztRQUVGLDJCQUEyQjtRQUMz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RUFBRSxDQUFDO2dCQUNqQixJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksNEJBQVksQ0FBQywyQkFBMkIsRUFBRSxRQUFRLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksNEJBQVksQ0FBQywyQkFBMkIsRUFBRSxRQUFRLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBakpELHNDQWlKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25SZXNvdXJjZSwgQ2xvdWRGb3JtYXRpb25TdGFjayB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBBbiBpbW11dGFibGUgZGlyZWN0ZWQgZ3JhcGggb2YgcmVzb3VyY2VzIGZyb20gbXVsdGlwbGUgQ2xvdWRGb3JtYXRpb24gc3RhY2tzLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VHcmFwaCB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbVN0YWNrcyhzdGFja3M6IE9taXQ8Q2xvdWRGb3JtYXRpb25TdGFjaywgJ2Vudmlyb25tZW50Jz5bXSk6IFJlc291cmNlR3JhcGgge1xuICAgIGNvbnN0IGV4cG9ydHM6IHsgW3A6IHN0cmluZ106IHsgc3RhY2tOYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfSB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgc3RhY2tzLmZsYXRNYXAoKHMpID0+XG4gICAgICAgIE9iamVjdC52YWx1ZXMocy50ZW1wbGF0ZS5PdXRwdXRzID8/IHt9KVxuICAgICAgICAgIC5maWx0ZXIoKG8pID0+IG8uRXhwb3J0ICE9IG51bGwgJiYgdHlwZW9mIG8uRXhwb3J0Lk5hbWUgPT09ICdzdHJpbmcnKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobykgPT5cbiAgICAgICAgICAgICAgW28uRXhwb3J0Lk5hbWUsIHsgc3RhY2tOYW1lOiBzLnN0YWNrTmFtZSwgdmFsdWU6IG8uVmFsdWUgfV0gYXMgW1xuICAgICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBzdGFja05hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBhbnk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVzb3VyY2VzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgc3RhY2tzLmZsYXRNYXAoKHMpID0+XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHMudGVtcGxhdGUuUmVzb3VyY2VzID8/IHt9KS5tYXAoXG4gICAgICAgICAgKFtpZCwgcmVzXSkgPT4gW2Ake3Muc3RhY2tOYW1lfS4ke2lkfWAsIHJlc10gYXMgW3N0cmluZywgQ2xvdWRGb3JtYXRpb25SZXNvdXJjZV0sXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG5cbiAgICAvLyAxLiBCdWlsZCBhZGphY2VuY3kgbGlzdHNcbiAgICBjb25zdCBlZGdlczogUmVjb3JkPHN0cmluZywgU2V0PHN0cmluZz4+ID0ge307XG4gICAgY29uc3QgcmV2ZXJzZUVkZ2VzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKHJlc291cmNlcykpIHtcbiAgICAgIGVkZ2VzW2lkXSA9IG5ldyBTZXQoKTtcbiAgICAgIHJldmVyc2VFZGdlc1tpZF0gPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgLy8gMi4gRGV0ZWN0IGRlcGVuZGVuY2llcyBieSBzZWFyY2hpbmcgZm9yIFJlZi9Gbjo6R2V0QXR0XG4gICAgY29uc3QgZmluZERlcGVuZGVuY2llcyA9IChzdGFja05hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHN0cmluZ1tdID0+IHtcbiAgICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIFtdO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5mbGF0TWFwKChyZXMpID0+IGZpbmREZXBlbmRlbmNpZXMoc3RhY2tOYW1lLCByZXMpKTtcbiAgICAgIH1cbiAgICAgIGlmICgnUmVmJyBpbiB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gW2Ake3N0YWNrTmFtZX0uJHt2YWx1ZS5SZWZ9YF07XG4gICAgICB9XG4gICAgICBpZiAoJ0ZuOjpHZXRBdHQnIGluIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHJlZlRhcmdldCA9IEFycmF5LmlzQXJyYXkodmFsdWVbJ0ZuOjpHZXRBdHQnXSlcbiAgICAgICAgICA/IHZhbHVlWydGbjo6R2V0QXR0J11bMF1cbiAgICAgICAgICA6IHZhbHVlWydGbjo6R2V0QXR0J10uc3BsaXQoJy4nKVswXTtcbiAgICAgICAgcmV0dXJuIFtgJHtzdGFja05hbWV9LiR7cmVmVGFyZ2V0fWBdO1xuICAgICAgfVxuICAgICAgaWYgKCdGbjo6SW1wb3J0VmFsdWUnIGluIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGV4cCA9IGV4cG9ydHNbdmFsdWVbJ0ZuOjpJbXBvcnRWYWx1ZSddXTtcbiAgICAgICAgaWYgKGV4cCAhPSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdiA9IGV4cC52YWx1ZTtcbiAgICAgICAgICBpZiAodiAhPSBudWxsICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaWYgKCdGbjo6R2V0QXR0JyBpbiB2KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkID0gQXJyYXkuaXNBcnJheSh2WydGbjo6R2V0QXR0J10pID8gdlsnRm46OkdldEF0dCddWzBdIDogdlsnRm46OkdldEF0dCddLnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgICAgIHJldHVybiBbYCR7ZXhwLnN0YWNrTmFtZX0uJHtpZH1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgnUmVmJyBpbiB2KSB7XG4gICAgICAgICAgICAgIHJldHVybiBbYCR7ZXhwLnN0YWNrTmFtZX0uJHt2LlJlZn1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFtgJHtleHAuc3RhY2tOYW1lfS4ke3Z9YF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmICgnRGVwZW5kc09uJyBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZS5EZXBlbmRzT24pKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goLi4udmFsdWUuRGVwZW5kc09uLm1hcCgocjogc3RyaW5nKSA9PiBgJHtzdGFja05hbWV9LiR7cn1gKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goYCR7c3RhY2tOYW1lfS4ke3ZhbHVlLkRlcGVuZHNPbn1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzdWx0LnB1c2goLi4uT2JqZWN0LnZhbHVlcyh2YWx1ZSkuZmxhdE1hcCgocmVzKSA9PiBmaW5kRGVwZW5kZW5jaWVzKHN0YWNrTmFtZSwgcmVzKSkpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBbaWQsIHJlc10gb2YgT2JqZWN0LmVudHJpZXMocmVzb3VyY2VzKSkge1xuICAgICAgY29uc3Qgc3RhY2tOYW1lID0gaWQuc3BsaXQoJy4nKVswXTtcbiAgICAgIGNvbnN0IGRlcHMgPSBmaW5kRGVwZW5kZW5jaWVzKHN0YWNrTmFtZSwgcmVzIHx8IHt9KTtcbiAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgICAgaWYgKGRlcCBpbiByZXNvdXJjZXMgJiYgZGVwICE9PSBpZCkge1xuICAgICAgICAgIGVkZ2VzW2lkXS5hZGQoZGVwKTtcbiAgICAgICAgICByZXZlcnNlRWRnZXNbZGVwXS5hZGQoaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZUdyYXBoKGVkZ2VzLCByZXZlcnNlRWRnZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlZGdlczogUmVjb3JkPHN0cmluZywgU2V0PHN0cmluZz4+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgcmV2ZXJzZUVkZ2VzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4gPSB7fTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGVkZ2VzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4sIHJldmVyc2VFZGdlczogUmVjb3JkPHN0cmluZywgU2V0PHN0cmluZz4+KSB7XG4gICAgdGhpcy5lZGdlcyA9IGVkZ2VzO1xuICAgIHRoaXMucmV2ZXJzZUVkZ2VzID0gcmV2ZXJzZUVkZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNvcnRlZCBub2RlcyBpbiB0b3BvbG9naWNhbCBvcmRlci5cbiAgICovXG4gIGdldCBzb3J0ZWROb2RlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IG91dERlZ3JlZSA9IE9iamVjdC5rZXlzKHRoaXMuZWRnZXMpLnJlZHVjZSgoYWNjLCBrKSA9PiB7XG4gICAgICBhY2Nba10gPSB0aGlzLmVkZ2VzW2tdLnNpemU7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xuXG4gICAgY29uc3QgcXVldWUgPSBPYmplY3Qua2V5cyhvdXREZWdyZWUpLmZpbHRlcigoaykgPT4gb3V0RGVncmVlW2tdID09PSAwKTtcblxuICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBub2RlID0gcXVldWUuc2hpZnQoKSE7XG4gICAgICByZXN1bHQucHVzaChub2RlKTtcbiAgICAgIGZvciAoY29uc3Qgbnh0IG9mIHRoaXMucmV2ZXJzZUVkZ2VzW25vZGVdKSB7XG4gICAgICAgIG91dERlZ3JlZVtueHRdLS07XG4gICAgICAgIGlmIChvdXREZWdyZWVbbnh0XSA9PT0gMCkge1xuICAgICAgICAgIHF1ZXVlLnB1c2gobnh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGluTmVpZ2hib3JzKG5vZGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIShub2RlIGluIHRoaXMuZWRnZXMpKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdSZWZhY3RvckdyYXBoTm9kZU5vdEZvdW5kJywgYE5vZGUgJHtub2RlfSBub3QgZm91bmQgaW4gdGhlIGdyYXBoYCk7XG4gICAgfVxuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucmV2ZXJzZUVkZ2VzW25vZGVdIHx8IFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvdXROZWlnaGJvcnMobm9kZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICghKG5vZGUgaW4gdGhpcy5lZGdlcykpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1JlZmFjdG9yR3JhcGhOb2RlTm90Rm91bmQnLCBgTm9kZSAke25vZGV9IG5vdCBmb3VuZCBpbiB0aGUgZ3JhcGhgKTtcbiAgICB9XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lZGdlc1tub2RlXSB8fCBbXSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbm90aGVyIGdyYXBoIHdpdGggdGhlIHNhbWUgbm9kZXMsIGJ1dCB3aXRoIHRoZSBlZGdlcyBpbnZlcnRlZFxuICAgKi9cbiAgcHVibGljIG9wcG9zaXRlKCk6IFJlc291cmNlR3JhcGgge1xuICAgIHJldHVybiBuZXcgUmVzb3VyY2VHcmFwaCh0aGlzLnJldmVyc2VFZGdlcywgdGhpcy5lZGdlcyk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePrescribedMappings = usePrescribedMappings;\nexports.getDeployedStacksByNames = getDeployedStacksByNames;\nexports.formatEnvironmentSectionHeader = formatEnvironmentSectionHeader;\nexports.formatTypedMappings = formatTypedMappings;\nexports.formatAmbiguousMappings = formatAmbiguousMappings;\nexports.groupStacks = groupStacks;\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\nconst streams_1 = require(\"../streams\");\nconst cloudformation_1 = require(\"./cloudformation\");\nconst digest_1 = require(\"./digest\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst concurrency_1 = require(\"../../util/concurrency\");\n__exportStar(require(\"./context\"), exports);\nasync function usePrescribedMappings(mappingGroups, sdkProvider) {\n const stackGroups = [];\n for (const group of mappingGroups) {\n const summaries = await listStacks(sdkProvider, environmentOf(group));\n const stacks = await getDeployedStacksByNames(sdkProvider, environmentOf(group), summaries.map(s => s.StackName));\n stackGroups.push({\n ...group,\n stacks,\n });\n }\n // Validate that there are no duplicate destinations\n for (let group of stackGroups) {\n const destinations = new Set();\n for (const destination of Object.values(group.resources)) {\n if (destinations.has(destination)) {\n throw new toolkit_error_1.ToolkitError('DuplicateDestinationResource', `Duplicate destination resource '${destination}' in environment ${group.account}/${group.region}`);\n }\n destinations.add(destination);\n }\n }\n const result = [];\n for (const group of stackGroups) {\n for (const [source, destination] of Object.entries(group.resources)) {\n if (!inUse(source, group.stacks)) {\n throw new toolkit_error_1.ToolkitError('SourceResourceNotFound', `Source resource '${source}' does not exist in environment ${group.account}/${group.region}`);\n }\n if (inUse(destination, group.stacks)) {\n throw new toolkit_error_1.ToolkitError('DestinationResourceInUse', `Destination resource '${destination}' already in use in environment ${group.account}/${group.region}`);\n }\n const environment = environmentOf(group);\n const src = makeLocation(source, environment, group.stacks);\n const dst = makeLocation(destination, environment);\n result.push(new cloudformation_1.ResourceMapping(src, dst));\n }\n }\n return result;\n function inUse(location, stacks) {\n const [stackName, logicalId] = location.split('.');\n if (stackName == null || logicalId == null) {\n throw new toolkit_error_1.ToolkitError('InvalidResourceLocation', `Invalid location '${location}'`);\n }\n const stack = stacks.find((s) => s.stackName === stackName);\n return stack != null && stack.template.Resources?.[logicalId] != null;\n }\n function environmentOf(group) {\n return {\n account: group.account,\n region: group.region,\n name: '',\n };\n }\n function makeLocation(loc, environment, stacks = []) {\n const [stackName, logicalId] = loc.split('.');\n const stack = stacks.find((s) => s.stackName === stackName);\n return new cloudformation_1.ResourceLocation({\n stackName,\n environment,\n template: stack?.template ?? {},\n }, logicalId);\n }\n}\nasync function getDeployedStacksByNames(sdkProvider, environment, stackNames) {\n const cfn = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForReading)).sdk.cloudFormation();\n const normalize = async (stackName) => {\n const templateCommandOutput = await cfn.getTemplate({ StackName: stackName });\n const template = (0, util_1.deserializeStructure)(templateCommandOutput.TemplateBody ?? '{}');\n return {\n environment,\n stackName: stackName,\n template,\n };\n };\n const limit = (0, concurrency_1.pLimit)(20);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(stackNames.map(s => limit(() => normalize(s))));\n}\nasync function listStacks(sdkProvider, environment) {\n const cfn = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForReading)).sdk.cloudFormation();\n return cfn.paginatedListStacks({\n StackStatusFilter: [\n 'CREATE_COMPLETE',\n 'UPDATE_COMPLETE',\n 'UPDATE_ROLLBACK_COMPLETE',\n 'IMPORT_COMPLETE',\n 'ROLLBACK_COMPLETE',\n ],\n });\n}\nfunction formatEnvironmentSectionHeader(environment) {\n const env = `aws://${environment.account}/${environment.region}`;\n return formatToStream(stream => (0, cloudformation_diff_1.formatEnvironmentSectionHeader)(stream, env));\n}\nfunction formatTypedMappings(mappings) {\n return formatToStream((stream) => (0, cloudformation_diff_1.formatTypedMappings)(stream, mappings));\n}\nfunction formatAmbiguousMappings(paths) {\n return formatToStream((stream) => (0, cloudformation_diff_1.formatAmbiguousMappings)(stream, paths));\n}\nfunction formatToStream(cb) {\n const stream = new streams_1.StringWriteStream();\n cb(stream);\n return stream.toString();\n}\n/**\n * Returns a list of stack groups, each containing the local stacks and the deployed stacks that match the given patterns.\n */\nasync function groupStacks(sdkProvider, localStacks, additionalStackNames) {\n const environments = new Map();\n for (const stack of localStacks) {\n const environment = await sdkProvider.resolveEnvironment(stack.environment);\n const key = (0, digest_1.hashObject)(environment);\n environments.set(key, environment);\n }\n const localByEnvironment = await (0, util_1.indexBy)(localStacks, async (s) => (0, digest_1.hashObject)(await sdkProvider.resolveEnvironment(s.environment)));\n const groups = [];\n for (let key of localByEnvironment.keys()) {\n const local = localByEnvironment.get(key);\n const hasLocalCounterpart = (stackName) => local.some((l) => l.stackName === stackName);\n const wasExplicitlyProvided = (stackName) => additionalStackNames.includes(stackName);\n const environment = environments.get(key);\n const stackSummaries = await listStacks(sdkProvider, environment);\n const stackNames = stackSummaries\n .map(s => s.StackName)\n .filter(s => hasLocalCounterpart(s) || wasExplicitlyProvided(s));\n const deployedStacks = await getDeployedStacksByNames(sdkProvider, environment, stackNames);\n groups.push({\n environment,\n deployedStacks,\n localStacks: local,\n });\n }\n return groups;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBaUNBLHNEQXlGQztBQUVELDREQXFCQztBQW1CRCx3RUFHQztBQUVELGtEQUVDO0FBRUQsMERBRUM7QUFXRCxrQ0FrQ0M7QUExTkQsc0VBSXNDO0FBRXRDLHFDQUEyRDtBQUUzRCxzQ0FBaUM7QUFDakMsd0NBQStDO0FBRS9DLHFEQUFxRTtBQUNyRSxxQ0FBc0M7QUFFdEMsK0RBQTJEO0FBQzNELHdEQUFnRDtBQUVoRCw0Q0FBMEI7QUFjbkIsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxhQUE2QixFQUM3QixXQUF3QjtJQU14QixNQUFNLFdBQVcsR0FBNkIsRUFBRSxDQUFDO0lBQ2pELEtBQUssTUFBTSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxVQUFVLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLE1BQU0sd0JBQXdCLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbkgsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNmLEdBQUcsS0FBSztZQUNSLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELEtBQUssSUFBSSxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUV2QyxLQUFLLE1BQU0sV0FBVyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBSSxZQUFZLENB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LE1BQU0sY0FBYyxHQUFHLE1BQU0sVUFBVSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRSxNQUFNLFVBQVUsR0FBRyxjQUFjO2FBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFVLENBQUM7YUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLGNBQWMsR0FBRyxNQUFNLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFNUYsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNWLFdBQVc7WUFDWCxjQUFjO1lBQ2QsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFR5cGVkTWFwcGluZyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHtcbiAgZm9ybWF0QW1iaWd1b3VzTWFwcGluZ3MgYXMgZm10QW1iaWd1b3VzTWFwcGluZ3MsXG4gIGZvcm1hdEVudmlyb25tZW50U2VjdGlvbkhlYWRlciBhcyBmbXRFbnZpcm9ubWVudFNlY3Rpb25IZWFkZXIsXG4gIGZvcm1hdFR5cGVkTWFwcGluZ3MgYXMgZm10VHlwZWRNYXBwaW5ncyxcbn0gZnJvbSAnQGF3cy1jZGsvY2xvdWRmb3JtYXRpb24tZGlmZic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU3VtbWFyeSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVN0cnVjdHVyZSwgaW5kZXhCeSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5pbXBvcnQgeyBTdHJpbmdXcml0ZVN0cmVhbSB9IGZyb20gJy4uL3N0cmVhbXMnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvblN0YWNrIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZUxvY2F0aW9uLCBSZXNvdXJjZU1hcHBpbmcgfSBmcm9tICcuL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGhhc2hPYmplY3QgfSBmcm9tICcuL2RpZ2VzdCc7XG5pbXBvcnQgdHlwZSB7IE1hcHBpbmdHcm91cCB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IHBMaW1pdCB9IGZyb20gJy4uLy4uL3V0aWwvY29uY3VycmVuY3knO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQnO1xuXG5pbnRlcmZhY2UgU3RhY2tHcm91cCB7XG4gIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudDtcbiAgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbiAgZGVwbG95ZWRTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbn1cblxuaW50ZXJmYWNlIFN0YWNrR3JvdXAge1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIGxvY2FsU3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW107XG4gIGRlcGxveWVkU3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW107XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1c2VQcmVzY3JpYmVkTWFwcGluZ3MoXG4gIG1hcHBpbmdHcm91cHM6IE1hcHBpbmdHcm91cFtdLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4pOiBQcm9taXNlPFJlc291cmNlTWFwcGluZ1tdPiB7XG4gIGludGVyZmFjZSBNYXBwaW5nR3JvdXBXaXRoU3RhY2tzIGV4dGVuZHMgTWFwcGluZ0dyb3VwIHtcbiAgICBzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbiAgfVxuXG4gIGNvbnN0IHN0YWNrR3JvdXBzOiBNYXBwaW5nR3JvdXBXaXRoU3RhY2tzW10gPSBbXTtcbiAgZm9yIChjb25zdCBncm91cCBvZiBtYXBwaW5nR3JvdXBzKSB7XG4gICAgY29uc3Qgc3VtbWFyaWVzID0gYXdhaXQgbGlzdFN0YWNrcyhzZGtQcm92aWRlciwgZW52aXJvbm1lbnRPZihncm91cCkpO1xuICAgIGNvbnN0IHN0YWNrcyA9IGF3YWl0IGdldERlcGxveWVkU3RhY2tzQnlOYW1lcyhzZGtQcm92aWRlciwgZW52aXJvbm1lbnRPZihncm91cCksIHN1bW1hcmllcy5tYXAocyA9PiBzLlN0YWNrTmFtZSEpKTtcbiAgICBzdGFja0dyb3Vwcy5wdXNoKHtcbiAgICAgIC4uLmdyb3VwLFxuICAgICAgc3RhY2tzLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgdGhhdCB0aGVyZSBhcmUgbm8gZHVwbGljYXRlIGRlc3RpbmF0aW9uc1xuICBmb3IgKGxldCBncm91cCBvZiBzdGFja0dyb3Vwcykge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBkZXN0aW5hdGlvbiBvZiBPYmplY3QudmFsdWVzKGdyb3VwLnJlc291cmNlcykpIHtcbiAgICAgIGlmIChkZXN0aW5hdGlvbnMuaGFzKGRlc3RpbmF0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdEdXBsaWNhdGVEZXN0aW5hdGlvblJlc291cmNlJyxcbiAgICAgICAgICBgRHVwbGljYXRlIGRlc3RpbmF0aW9uIHJlc291cmNlICcke2Rlc3RpbmF0aW9ufScgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZGVzdGluYXRpb25zLmFkZChkZXN0aW5hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBSZXNvdXJjZU1hcHBpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGdyb3VwIG9mIHN0YWNrR3JvdXBzKSB7XG4gICAgZm9yIChjb25zdCBbc291cmNlLCBkZXN0aW5hdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXAucmVzb3VyY2VzKSkge1xuICAgICAgaWYgKCFpblVzZShzb3VyY2UsIGdyb3VwLnN0YWNrcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU291cmNlUmVzb3VyY2VOb3RGb3VuZCcsIGBTb3VyY2UgcmVzb3VyY2UgJyR7c291cmNlfScgZG9lcyBub3QgZXhpc3QgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluVXNlKGRlc3RpbmF0aW9uLCBncm91cC5zdGFja3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICAgJ0Rlc3RpbmF0aW9uUmVzb3VyY2VJblVzZScsXG4gICAgICAgICAgYERlc3RpbmF0aW9uIHJlc291cmNlICcke2Rlc3RpbmF0aW9ufScgYWxyZWFkeSBpbiB1c2UgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnZpcm9ubWVudCA9IGVudmlyb25tZW50T2YoZ3JvdXApO1xuICAgICAgY29uc3Qgc3JjID0gbWFrZUxvY2F0aW9uKHNvdXJjZSwgZW52aXJvbm1lbnQsIGdyb3VwLnN0YWNrcyk7XG4gICAgICBjb25zdCBkc3QgPSBtYWtlTG9jYXRpb24oZGVzdGluYXRpb24sIGVudmlyb25tZW50KTtcbiAgICAgIHJlc3VsdC5wdXNoKG5ldyBSZXNvdXJjZU1hcHBpbmcoc3JjLCBkc3QpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcblxuICBmdW5jdGlvbiBpblVzZShsb2NhdGlvbjogc3RyaW5nLCBzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtzdGFja05hbWUsIGxvZ2ljYWxJZF0gPSBsb2NhdGlvbi5zcGxpdCgnLicpO1xuICAgIGlmIChzdGFja05hbWUgPT0gbnVsbCB8fCBsb2dpY2FsSWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignSW52YWxpZFJlc291cmNlTG9jYXRpb24nLCBgSW52YWxpZCBsb2NhdGlvbiAnJHtsb2NhdGlvbn0nYCk7XG4gICAgfVxuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tzLmZpbmQoKHMpID0+IHMuc3RhY2tOYW1lID09PSBzdGFja05hbWUpO1xuICAgIHJldHVybiBzdGFjayAhPSBudWxsICYmIHN0YWNrLnRlbXBsYXRlLlJlc291cmNlcz8uW2xvZ2ljYWxJZF0gIT0gbnVsbDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVudmlyb25tZW50T2YoZ3JvdXA6IE1hcHBpbmdHcm91cCkge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50OiBncm91cC5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBncm91cC5yZWdpb24sXG4gICAgICBuYW1lOiAnJyxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gbWFrZUxvY2F0aW9uKFxuICAgIGxvYzogc3RyaW5nLFxuICAgIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbiAgICBzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSA9IFtdLFxuICApOiBSZXNvdXJjZUxvY2F0aW9uIHtcbiAgICBjb25zdCBbc3RhY2tOYW1lLCBsb2dpY2FsSWRdID0gbG9jLnNwbGl0KCcuJyk7XG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja3MuZmluZCgocykgPT4gcy5zdGFja05hbWUgPT09IHN0YWNrTmFtZSk7XG5cbiAgICByZXR1cm4gbmV3IFJlc291cmNlTG9jYXRpb24oXG4gICAgICB7XG4gICAgICAgIHN0YWNrTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIHRlbXBsYXRlOiBzdGFjaz8udGVtcGxhdGUgPz8ge30sXG4gICAgICB9LFxuICAgICAgbG9naWNhbElkLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlcGxveWVkU3RhY2tzQnlOYW1lcyhcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsXG4gIHN0YWNrTmFtZXM6IHN0cmluZ1tdLFxuKTogUHJvbWlzZTxDbG91ZEZvcm1hdGlvblN0YWNrW10+IHtcbiAgY29uc3QgY2ZuID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KGVudmlyb25tZW50LCBNb2RlLkZvclJlYWRpbmcpKS5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICBjb25zdCBub3JtYWxpemUgPSBhc3luYyAoc3RhY2tOYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZUNvbW1hbmRPdXRwdXQgPSBhd2FpdCBjZm4uZ2V0VGVtcGxhdGUoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KTtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGRlc2VyaWFsaXplU3RydWN0dXJlKHRlbXBsYXRlQ29tbWFuZE91dHB1dC5UZW1wbGF0ZUJvZHkgPz8gJ3t9Jyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgc3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICB0ZW1wbGF0ZSxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDIwKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgcmV0dXJuIFByb21pc2UuYWxsKHN0YWNrTmFtZXMubWFwKHMgPT4gbGltaXQoKCkgPT4gbm9ybWFsaXplKHMpKSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsaXN0U3RhY2tzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbik6IFByb21pc2U8U3RhY2tTdW1tYXJ5W10+IHtcbiAgY29uc3QgY2ZuID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KGVudmlyb25tZW50LCBNb2RlLkZvclJlYWRpbmcpKS5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICByZXR1cm4gY2ZuLnBhZ2luYXRlZExpc3RTdGFja3Moe1xuICAgIFN0YWNrU3RhdHVzRmlsdGVyOiBbXG4gICAgICAnQ1JFQVRFX0NPTVBMRVRFJyxcbiAgICAgICdVUERBVEVfQ09NUExFVEUnLFxuICAgICAgJ1VQREFURV9ST0xMQkFDS19DT01QTEVURScsXG4gICAgICAnSU1QT1JUX0NPTVBMRVRFJyxcbiAgICAgICdST0xMQkFDS19DT01QTEVURScsXG4gICAgXSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFbnZpcm9ubWVudFNlY3Rpb25IZWFkZXIoZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50KSB7XG4gIGNvbnN0IGVudiA9IGBhd3M6Ly8ke2Vudmlyb25tZW50LmFjY291bnR9LyR7ZW52aXJvbm1lbnQucmVnaW9ufWA7XG4gIHJldHVybiBmb3JtYXRUb1N0cmVhbShzdHJlYW0gPT4gZm10RW52aXJvbm1lbnRTZWN0aW9uSGVhZGVyKHN0cmVhbSwgZW52KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUeXBlZE1hcHBpbmdzKG1hcHBpbmdzOiBUeXBlZE1hcHBpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBmb3JtYXRUb1N0cmVhbSgoc3RyZWFtKSA9PiBmbXRUeXBlZE1hcHBpbmdzKHN0cmVhbSwgbWFwcGluZ3MpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFtYmlndW91c01hcHBpbmdzKHBhdGhzOiBbc3RyaW5nW10sIHN0cmluZ1tdXVtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdFRvU3RyZWFtKChzdHJlYW0pID0+IGZtdEFtYmlndW91c01hcHBpbmdzKHN0cmVhbSwgcGF0aHMpKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VG9TdHJlYW0oY2I6IChzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkgPT4gdm9pZCk6IHN0cmluZyB7XG4gIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuICBjYihzdHJlYW0pO1xuICByZXR1cm4gc3RyZWFtLnRvU3RyaW5nKCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGxpc3Qgb2Ygc3RhY2sgZ3JvdXBzLCBlYWNoIGNvbnRhaW5pbmcgdGhlIGxvY2FsIHN0YWNrcyBhbmQgdGhlIGRlcGxveWVkIHN0YWNrcyB0aGF0IG1hdGNoIHRoZSBnaXZlbiBwYXR0ZXJucy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdyb3VwU3RhY2tzKHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlciwgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSwgYWRkaXRpb25hbFN0YWNrTmFtZXM6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IGVudmlyb25tZW50czogTWFwPHN0cmluZywgY3hhcGkuRW52aXJvbm1lbnQ+ID0gbmV3IE1hcCgpO1xuXG4gIGZvciAoY29uc3Qgc3RhY2sgb2YgbG9jYWxTdGFja3MpIHtcbiAgICBjb25zdCBlbnZpcm9ubWVudCA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgY29uc3Qga2V5ID0gaGFzaE9iamVjdChlbnZpcm9ubWVudCk7XG4gICAgZW52aXJvbm1lbnRzLnNldChrZXksIGVudmlyb25tZW50KTtcbiAgfVxuXG4gIGNvbnN0IGxvY2FsQnlFbnZpcm9ubWVudCA9IGF3YWl0IGluZGV4QnkobG9jYWxTdGFja3MsXG4gICAgYXN5bmMgKHMpID0+IGhhc2hPYmplY3QoYXdhaXQgc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KHMuZW52aXJvbm1lbnQpKSxcbiAgKTtcblxuICBjb25zdCBncm91cHM6IFN0YWNrR3JvdXBbXSA9IFtdO1xuICBmb3IgKGxldCBrZXkgb2YgbG9jYWxCeUVudmlyb25tZW50LmtleXMoKSkge1xuICAgIGNvbnN0IGxvY2FsID0gbG9jYWxCeUVudmlyb25tZW50LmdldChrZXkpITtcbiAgICBjb25zdCBoYXNMb2NhbENvdW50ZXJwYXJ0ID0gKHN0YWNrTmFtZTogc3RyaW5nKSA9PiBsb2NhbC5zb21lKChsKSA9PiBsLnN0YWNrTmFtZSA9PT0gc3RhY2tOYW1lKTtcbiAgICBjb25zdCB3YXNFeHBsaWNpdGx5UHJvdmlkZWQgPSAoc3RhY2tOYW1lOiBzdHJpbmcpID0+IGFkZGl0aW9uYWxTdGFja05hbWVzLmluY2x1ZGVzKHN0YWNrTmFtZSk7XG5cbiAgICBjb25zdCBlbnZpcm9ubWVudCA9IGVudmlyb25tZW50cy5nZXQoa2V5KSE7XG4gICAgY29uc3Qgc3RhY2tTdW1tYXJpZXMgPSBhd2FpdCBsaXN0U3RhY2tzKHNka1Byb3ZpZGVyLCBlbnZpcm9ubWVudCk7XG4gICAgY29uc3Qgc3RhY2tOYW1lcyA9IHN0YWNrU3VtbWFyaWVzXG4gICAgICAubWFwKHMgPT4gcy5TdGFja05hbWUhKVxuICAgICAgLmZpbHRlcihzID0+IGhhc0xvY2FsQ291bnRlcnBhcnQocykgfHwgd2FzRXhwbGljaXRseVByb3ZpZGVkKHMpKTtcbiAgICBjb25zdCBkZXBsb3llZFN0YWNrcyA9IGF3YWl0IGdldERlcGxveWVkU3RhY2tzQnlOYW1lcyhzZGtQcm92aWRlciwgZW52aXJvbm1lbnQsIHN0YWNrTmFtZXMpO1xuXG4gICAgZ3JvdXBzLnB1c2goe1xuICAgICAgZW52aXJvbm1lbnQsXG4gICAgICBkZXBsb3llZFN0YWNrcyxcbiAgICAgIGxvY2FsU3RhY2tzOiBsb2NhbCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBncm91cHM7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateStackDefinitions = generateStackDefinitions;\nconst util = require(\"node:util\");\nconst chalk = require(\"chalk\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst deepEqual = require('fast-deep-equal');\nconst LARGE_TEMPLATE_SIZE_KB = 50;\nconst LARGE_TEMPLATE_SIZE_BYTES = LARGE_TEMPLATE_SIZE_KB * 1024;\nasync function generateStackDefinitions(mappings, deployedStacks, localStacks, environment, sdkProvider, ioHelper) {\n const deployedStackMap = new Map(deployedStacks.map((s) => [s.stackName, s]));\n // For every local stack that is also deployed, update the local template,\n // overwriting its CDKMetadata resource with the one from the deployed stack\n for (const localStack of localStacks) {\n const deployedStack = deployedStackMap.get(localStack.stackName);\n const localTemplate = localStack.template;\n const deployedTemplate = deployedStack?.template;\n // The CDKMetadata resource is never part of a refactor. So at this point we need\n // to adjust the template we will send to the API to make sure it has the same CDKMetadata\n // as the deployed template. And if the deployed template doesn't have any, we cannot\n // send any either.\n if (deployedTemplate?.Resources?.CDKMetadata != null) {\n localTemplate.Resources = localTemplate.Resources ?? {};\n localTemplate.Resources.CDKMetadata = deployedTemplate.Resources.CDKMetadata;\n }\n else {\n delete localTemplate.Resources?.CDKMetadata;\n }\n }\n const stacksToProcess = localStacks.filter((localStack) => {\n const deployedStack = deployedStackMap.get(localStack.stackName);\n return !deployedStack || !deepEqual(localStack.template, deployedStack.template);\n });\n // Now, for every stack name that appears in the mappings, but is not present in the local stacks,\n // we need to take its (deployed) template and remove all the resources that appear in the sources\n // part of the mappings. For example, if the mappings contains an entry like:\n // - StackB.Foo -> StackA.Bar\n // and StackB does not exist locally, we need to take StackB's template, and remove the resource Foo,\n // and include this modified template for StackB in the stack definitions.\n for (let mapping of mappings) {\n const stackName = mapping.source.stackName;\n if (!localStacks.some(s => s.stackName === stackName)) {\n const deployedStack = deployedStackMap.get(stackName);\n delete deployedStack?.template.Resources?.[mapping.source.logicalResourceId];\n delete deployedStack?.template.Outputs;\n if (deployedStack && !stacksToProcess.some(s => s.stackName === stackName)) {\n stacksToProcess.push(deployedStack);\n }\n }\n }\n // For stacks created by the refactor, CloudFormation does not allow Rules or Parameters\n for (const stack of stacksToProcess) {\n if (!deployedStacks.some(deployed => deployed.stackName === stack.stackName)) {\n if ('Rules' in stack.template) {\n delete stack.template.Rules;\n }\n if ('Parameters' in stack.template) {\n delete stack.template.Parameters;\n }\n }\n }\n // Check if any templates are large enough to require S3 upload\n const hasLargeTemplates = stacksToProcess.some(stack => JSON.stringify(stack.template).length > LARGE_TEMPLATE_SIZE_BYTES);\n // If no large templates, use TemplateBody for all\n if (!hasLargeTemplates) {\n return stacksToProcess.map(stack => ({\n StackName: stack.stackName,\n TemplateBody: JSON.stringify(stack.template),\n }));\n }\n const sdk = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForWriting)).sdk;\n const environmentResourcesRegistry = new environment_1.EnvironmentResourcesRegistry();\n const envResources = environmentResourcesRegistry.for(environment, sdk, ioHelper);\n const toolkitInfo = await envResources.lookupToolkit();\n if (!toolkitInfo.found) {\n // Find the first large template to include in the error message\n const largeStack = stacksToProcess.find(stack => JSON.stringify(stack.template).length > LARGE_TEMPLATE_SIZE_BYTES); // Must exist since hasLargeTemplates is true\n const templateSize = Math.round(JSON.stringify(largeStack.template).length / 1024);\n await ioHelper.defaults.error(util.format(`The template for stack \"${largeStack.stackName}\" is ${templateSize}KiB. ` +\n `Templates larger than ${LARGE_TEMPLATE_SIZE_KB}KiB must be uploaded to S3.\\n` +\n 'Run the following command in order to setup an S3 bucket in this environment, and then re-refactor:\\n\\n', chalk.blue(`\\t$ cdk bootstrap ${environment.name}\\n`)));\n throw new toolkit_error_1.ToolkitError('TemplateTooLargeToRefactor', 'Template too large to refactor (\"cdk bootstrap\" is required)');\n }\n const stackDefinitions = [];\n for (const stack of stacksToProcess) {\n const templateJson = JSON.stringify(stack.template);\n // If template is small enough, use TemplateBody\n if (templateJson.length <= LARGE_TEMPLATE_SIZE_BYTES) {\n stackDefinitions.push({\n StackName: stack.stackName,\n TemplateBody: templateJson,\n });\n continue;\n }\n // Template is too large, upload to S3\n // Generate a unique key for this template\n const templateHash = (0, util_1.contentHash)(templateJson);\n const key = `cdk-refactor/${stack.stackName}/${templateHash}.json`;\n const s3 = sdk.s3();\n await s3.upload({\n Bucket: toolkitInfo.bucketName,\n Key: key,\n Body: templateJson,\n ContentType: 'application/json',\n });\n const templateURL = `${toolkitInfo.bucketUrl}/${key}`;\n await ioHelper.defaults.debug(`Storing template for stack ${stack.stackName} in S3 at: ${templateURL}`);\n stackDefinitions.push({\n StackName: stack.stackName,\n TemplateURL: templateURL,\n });\n }\n return stackDefinitions;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSw0REE0SUM7QUE5SkQsa0NBQWtDO0FBR2xDLCtCQUErQjtBQUUvQiwrREFBMkQ7QUFDM0QscUNBQXlDO0FBRXpDLGdEQUE4RDtBQUU5RCxzQ0FBaUM7QUFDakMseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUU3QyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUNsQyxNQUFNLHlCQUF5QixHQUFHLHNCQUFzQixHQUFHLElBQUksQ0FBQztBQUV6RCxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLFFBQTJCLEVBQzNCLGNBQXFDLEVBQ3JDLFdBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLFFBQWtCO0lBRWxCLE1BQU0sZ0JBQWdCLEdBQXFDLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEgsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUM1RSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUMxQyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsRUFBRSxRQUFRLENBQUM7UUFFakQsaUZBQWlGO1FBQ2pGLDBGQUEwRjtRQUMxRixxRkFBcUY7UUFDckYsbUJBQW1CO1FBQ25CLElBQUksZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyRCxhQUFhLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1lBQ3hELGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDL0UsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLGFBQWEsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ3hELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRixDQUFDLENBQUMsQ0FBQztJQUVILGtHQUFrRztJQUNsRyxrR0FBa0c7SUFDbEcsNkVBQTZFO0lBQzdFLDhCQUE4QjtJQUM5QixxR0FBcUc7SUFDckcsMEVBQTBFO0lBQzFFLEtBQUssSUFBSSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdEQsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sYUFBYSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFN0UsT0FBTyxhQUFhLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUV2QyxJQUFJLGFBQWEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsd0ZBQXdGO0lBQ3hGLEtBQUssTUFBTSxLQUFLLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzdFLElBQUksT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM5QixDQUFDO1lBQ0QsSUFBSSxZQUFZLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELCtEQUErRDtJQUMvRCxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQzVDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLHlCQUF5QixDQUMzRSxDQUFDO0lBRUYsa0RBQWtEO0lBQ2xELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLGFBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNqRixNQUFNLDRCQUE0QixHQUFHLElBQUksMENBQTRCLEVBQUUsQ0FBQztJQUN4RSxNQUFNLFlBQVksR0FBRyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRixNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUV2RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLGdFQUFnRTtRQUNoRSxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUNyQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyx5QkFBeUIsQ0FDMUUsQ0FBQyxDQUFDLDZDQUE2QztRQUVqRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVuRixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUMzQixJQUFJLENBQUMsTUFBTSxDQUNULDJCQUEyQixVQUFVLENBQUMsU0FBUyxRQUFRLFlBQVksT0FBTztZQUMxRSx5QkFBeUIsc0JBQXNCLCtCQUErQjtZQUM5RSx5R0FBeUcsRUFDekcsS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQ3RELENBQ0YsQ0FBQztRQUVGLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDRCQUE0QixFQUFFLDhEQUE4RCxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQXNCLEVBQUUsQ0FBQztJQUMvQyxLQUFLLE1BQU0sS0FBSyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBELGdEQUFnRDtRQUNoRCxJQUFJLFlBQVksQ0FBQyxNQUFNLElBQUkseUJBQXlCLEVBQUUsQ0FBQztZQUNyRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsWUFBWSxFQUFFLFlBQVk7YUFDM0IsQ0FBQyxDQUFDO1lBQ0gsU0FBUztRQUNYLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsMENBQTBDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUEsa0JBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsS0FBSyxDQUFDLFNBQVMsSUFBSSxZQUFZLE9BQU8sQ0FBQztRQUVuRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDcEIsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2QsTUFBTSxFQUFFLFdBQVcsQ0FBQyxVQUFVO1lBQzlCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLFlBQVk7WUFDbEIsV0FBVyxFQUFFLGtCQUFrQjtTQUNoQyxDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEQsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsS0FBSyxDQUFDLFNBQVMsY0FBYyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXhHLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUNwQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsV0FBVyxFQUFFLFdBQVc7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnQgfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RlZmluaXRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvblN0YWNrLCBSZXNvdXJjZU1hcHBpbmcgfSBmcm9tICcuL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBjb250ZW50SGFzaCB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG4vLyBuYW1lc3BhY2Ugb2JqZWN0IGltcG9ydHMgd29uJ3Qgd29yayBpbiB0aGUgYnVuZGxlIGZvciBmdW5jdGlvbiBleHBvcnRzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgZGVlcEVxdWFsID0gcmVxdWlyZSgnZmFzdC1kZWVwLWVxdWFsJyk7XG5cbmNvbnN0IExBUkdFX1RFTVBMQVRFX1NJWkVfS0IgPSA1MDtcbmNvbnN0IExBUkdFX1RFTVBMQVRFX1NJWkVfQllURVMgPSBMQVJHRV9URU1QTEFURV9TSVpFX0tCICogMTAyNDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlU3RhY2tEZWZpbml0aW9ucyhcbiAgbWFwcGluZ3M6IFJlc291cmNlTWFwcGluZ1tdLFxuICBkZXBsb3llZFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBsb2NhbFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuKTogUHJvbWlzZTxTdGFja0RlZmluaXRpb25bXT4ge1xuICBjb25zdCBkZXBsb3llZFN0YWNrTWFwOiBNYXA8c3RyaW5nLCBDbG91ZEZvcm1hdGlvblN0YWNrPiA9IG5ldyBNYXAoZGVwbG95ZWRTdGFja3MubWFwKChzKSA9PiBbcy5zdGFja05hbWUsIHNdKSk7XG5cbiAgLy8gRm9yIGV2ZXJ5IGxvY2FsIHN0YWNrIHRoYXQgaXMgYWxzbyBkZXBsb3llZCwgdXBkYXRlIHRoZSBsb2NhbCB0ZW1wbGF0ZSxcbiAgLy8gb3ZlcndyaXRpbmcgaXRzIENES01ldGFkYXRhIHJlc291cmNlIHdpdGggdGhlIG9uZSBmcm9tIHRoZSBkZXBsb3llZCBzdGFja1xuICBmb3IgKGNvbnN0IGxvY2FsU3RhY2sgb2YgbG9jYWxTdGFja3MpIHtcbiAgICBjb25zdCBkZXBsb3llZFN0YWNrID0gZGVwbG95ZWRTdGFja01hcC5nZXQobG9jYWxTdGFjay5zdGFja05hbWUpO1xuICAgIGNvbnN0IGxvY2FsVGVtcGxhdGUgPSBsb2NhbFN0YWNrLnRlbXBsYXRlO1xuICAgIGNvbnN0IGRlcGxveWVkVGVtcGxhdGUgPSBkZXBsb3llZFN0YWNrPy50ZW1wbGF0ZTtcblxuICAgIC8vIFRoZSBDREtNZXRhZGF0YSByZXNvdXJjZSBpcyBuZXZlciBwYXJ0IG9mIGEgcmVmYWN0b3IuIFNvIGF0IHRoaXMgcG9pbnQgd2UgbmVlZFxuICAgIC8vIHRvIGFkanVzdCB0aGUgdGVtcGxhdGUgd2Ugd2lsbCBzZW5kIHRvIHRoZSBBUEkgdG8gbWFrZSBzdXJlIGl0IGhhcyB0aGUgc2FtZSBDREtNZXRhZGF0YVxuICAgIC8vIGFzIHRoZSBkZXBsb3llZCB0ZW1wbGF0ZS4gQW5kIGlmIHRoZSBkZXBsb3llZCB0ZW1wbGF0ZSBkb2Vzbid0IGhhdmUgYW55LCB3ZSBjYW5ub3RcbiAgICAvLyBzZW5kIGFueSBlaXRoZXIuXG4gICAgaWYgKGRlcGxveWVkVGVtcGxhdGU/LlJlc291cmNlcz8uQ0RLTWV0YWRhdGEgIT0gbnVsbCkge1xuICAgICAgbG9jYWxUZW1wbGF0ZS5SZXNvdXJjZXMgPSBsb2NhbFRlbXBsYXRlLlJlc291cmNlcyA/PyB7fTtcbiAgICAgIGxvY2FsVGVtcGxhdGUuUmVzb3VyY2VzLkNES01ldGFkYXRhID0gZGVwbG95ZWRUZW1wbGF0ZS5SZXNvdXJjZXMuQ0RLTWV0YWRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBsb2NhbFRlbXBsYXRlLlJlc291cmNlcz8uQ0RLTWV0YWRhdGE7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RhY2tzVG9Qcm9jZXNzID0gbG9jYWxTdGFja3MuZmlsdGVyKChsb2NhbFN0YWNrKSA9PiB7XG4gICAgY29uc3QgZGVwbG95ZWRTdGFjayA9IGRlcGxveWVkU3RhY2tNYXAuZ2V0KGxvY2FsU3RhY2suc3RhY2tOYW1lKTtcbiAgICByZXR1cm4gIWRlcGxveWVkU3RhY2sgfHwgIWRlZXBFcXVhbChsb2NhbFN0YWNrLnRlbXBsYXRlLCBkZXBsb3llZFN0YWNrLnRlbXBsYXRlKTtcbiAgfSk7XG5cbiAgLy8gTm93LCBmb3IgZXZlcnkgc3RhY2sgbmFtZSB0aGF0IGFwcGVhcnMgaW4gdGhlIG1hcHBpbmdzLCBidXQgaXMgbm90IHByZXNlbnQgaW4gdGhlIGxvY2FsIHN0YWNrcyxcbiAgLy8gd2UgbmVlZCB0byB0YWtlIGl0cyAoZGVwbG95ZWQpIHRlbXBsYXRlIGFuZCByZW1vdmUgYWxsIHRoZSByZXNvdXJjZXMgdGhhdCBhcHBlYXIgaW4gdGhlIHNvdXJjZXNcbiAgLy8gcGFydCBvZiB0aGUgbWFwcGluZ3MuIEZvciBleGFtcGxlLCBpZiB0aGUgbWFwcGluZ3MgY29udGFpbnMgYW4gZW50cnkgbGlrZTpcbiAgLy8gIC0gU3RhY2tCLkZvbyAtPiBTdGFja0EuQmFyXG4gIC8vIGFuZCBTdGFja0IgZG9lcyBub3QgZXhpc3QgbG9jYWxseSwgd2UgbmVlZCB0byB0YWtlIFN0YWNrQidzIHRlbXBsYXRlLCBhbmQgcmVtb3ZlIHRoZSByZXNvdXJjZSBGb28sXG4gIC8vIGFuZCBpbmNsdWRlIHRoaXMgbW9kaWZpZWQgdGVtcGxhdGUgZm9yIFN0YWNrQiBpbiB0aGUgc3RhY2sgZGVmaW5pdGlvbnMuXG4gIGZvciAobGV0IG1hcHBpbmcgb2YgbWFwcGluZ3MpIHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBtYXBwaW5nLnNvdXJjZS5zdGFja05hbWU7XG4gICAgaWYgKCFsb2NhbFN0YWNrcy5zb21lKHMgPT4gcy5zdGFja05hbWUgPT09IHN0YWNrTmFtZSkpIHtcbiAgICAgIGNvbnN0IGRlcGxveWVkU3RhY2sgPSBkZXBsb3llZFN0YWNrTWFwLmdldChzdGFja05hbWUpO1xuICAgICAgZGVsZXRlIGRlcGxveWVkU3RhY2s/LnRlbXBsYXRlLlJlc291cmNlcz8uW21hcHBpbmcuc291cmNlLmxvZ2ljYWxSZXNvdXJjZUlkXTtcblxuICAgICAgZGVsZXRlIGRlcGxveWVkU3RhY2s/LnRlbXBsYXRlLk91dHB1dHM7XG5cbiAgICAgIGlmIChkZXBsb3llZFN0YWNrICYmICFzdGFja3NUb1Byb2Nlc3Muc29tZShzID0+IHMuc3RhY2tOYW1lID09PSBzdGFja05hbWUpKSB7XG4gICAgICAgIHN0YWNrc1RvUHJvY2Vzcy5wdXNoKGRlcGxveWVkU3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEZvciBzdGFja3MgY3JlYXRlZCBieSB0aGUgcmVmYWN0b3IsIENsb3VkRm9ybWF0aW9uIGRvZXMgbm90IGFsbG93IFJ1bGVzIG9yIFBhcmFtZXRlcnNcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3NUb1Byb2Nlc3MpIHtcbiAgICBpZiAoIWRlcGxveWVkU3RhY2tzLnNvbWUoZGVwbG95ZWQgPT4gZGVwbG95ZWQuc3RhY2tOYW1lID09PSBzdGFjay5zdGFja05hbWUpKSB7XG4gICAgICBpZiAoJ1J1bGVzJyBpbiBzdGFjay50ZW1wbGF0ZSkge1xuICAgICAgICBkZWxldGUgc3RhY2sudGVtcGxhdGUuUnVsZXM7XG4gICAgICB9XG4gICAgICBpZiAoJ1BhcmFtZXRlcnMnIGluIHN0YWNrLnRlbXBsYXRlKSB7XG4gICAgICAgIGRlbGV0ZSBzdGFjay50ZW1wbGF0ZS5QYXJhbWV0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIGFueSB0ZW1wbGF0ZXMgYXJlIGxhcmdlIGVub3VnaCB0byByZXF1aXJlIFMzIHVwbG9hZFxuICBjb25zdCBoYXNMYXJnZVRlbXBsYXRlcyA9IHN0YWNrc1RvUHJvY2Vzcy5zb21lKFxuICAgIHN0YWNrID0+IEpTT04uc3RyaW5naWZ5KHN0YWNrLnRlbXBsYXRlKS5sZW5ndGggPiBMQVJHRV9URU1QTEFURV9TSVpFX0JZVEVTLFxuICApO1xuXG4gIC8vIElmIG5vIGxhcmdlIHRlbXBsYXRlcywgdXNlIFRlbXBsYXRlQm9keSBmb3IgYWxsXG4gIGlmICghaGFzTGFyZ2VUZW1wbGF0ZXMpIHtcbiAgICByZXR1cm4gc3RhY2tzVG9Qcm9jZXNzLm1hcChzdGFjayA9PiAoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFjay5zdGFja05hbWUsXG4gICAgICBUZW1wbGF0ZUJvZHk6IEpTT04uc3RyaW5naWZ5KHN0YWNrLnRlbXBsYXRlKSxcbiAgICB9KSk7XG4gIH1cblxuICBjb25zdCBzZGsgPSAoYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQoZW52aXJvbm1lbnQsIE1vZGUuRm9yV3JpdGluZykpLnNkaztcbiAgY29uc3QgZW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSA9IG5ldyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5KCk7XG4gIGNvbnN0IGVudlJlc291cmNlcyA9IGVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkuZm9yKGVudmlyb25tZW50LCBzZGssIGlvSGVscGVyKTtcbiAgY29uc3QgdG9vbGtpdEluZm8gPSBhd2FpdCBlbnZSZXNvdXJjZXMubG9va3VwVG9vbGtpdCgpO1xuXG4gIGlmICghdG9vbGtpdEluZm8uZm91bmQpIHtcbiAgICAvLyBGaW5kIHRoZSBmaXJzdCBsYXJnZSB0ZW1wbGF0ZSB0byBpbmNsdWRlIGluIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgY29uc3QgbGFyZ2VTdGFjayA9IHN0YWNrc1RvUHJvY2Vzcy5maW5kKFxuICAgICAgc3RhY2sgPT4gSlNPTi5zdHJpbmdpZnkoc3RhY2sudGVtcGxhdGUpLmxlbmd0aCA+IExBUkdFX1RFTVBMQVRFX1NJWkVfQllURVMsXG4gICAgKSE7IC8vIE11c3QgZXhpc3Qgc2luY2UgaGFzTGFyZ2VUZW1wbGF0ZXMgaXMgdHJ1ZVxuXG4gICAgY29uc3QgdGVtcGxhdGVTaXplID0gTWF0aC5yb3VuZChKU09OLnN0cmluZ2lmeShsYXJnZVN0YWNrLnRlbXBsYXRlKS5sZW5ndGggLyAxMDI0KTtcblxuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgIGBUaGUgdGVtcGxhdGUgZm9yIHN0YWNrIFwiJHtsYXJnZVN0YWNrLnN0YWNrTmFtZX1cIiBpcyAke3RlbXBsYXRlU2l6ZX1LaUIuIGAgK1xuICAgICAgICBgVGVtcGxhdGVzIGxhcmdlciB0aGFuICR7TEFSR0VfVEVNUExBVEVfU0laRV9LQn1LaUIgbXVzdCBiZSB1cGxvYWRlZCB0byBTMy5cXG5gICtcbiAgICAgICAgJ1J1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gb3JkZXIgdG8gc2V0dXAgYW4gUzMgYnVja2V0IGluIHRoaXMgZW52aXJvbm1lbnQsIGFuZCB0aGVuIHJlLXJlZmFjdG9yOlxcblxcbicsXG4gICAgICAgIGNoYWxrLmJsdWUoYFxcdCQgY2RrIGJvb3RzdHJhcCAke2Vudmlyb25tZW50Lm5hbWV9XFxuYCksXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUZW1wbGF0ZVRvb0xhcmdlVG9SZWZhY3RvcicsICdUZW1wbGF0ZSB0b28gbGFyZ2UgdG8gcmVmYWN0b3IgKFwiY2RrIGJvb3RzdHJhcFwiIGlzIHJlcXVpcmVkKScpO1xuICB9XG5cbiAgY29uc3Qgc3RhY2tEZWZpbml0aW9uczogU3RhY2tEZWZpbml0aW9uW10gPSBbXTtcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3NUb1Byb2Nlc3MpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZUpzb24gPSBKU09OLnN0cmluZ2lmeShzdGFjay50ZW1wbGF0ZSk7XG5cbiAgICAvLyBJZiB0ZW1wbGF0ZSBpcyBzbWFsbCBlbm91Z2gsIHVzZSBUZW1wbGF0ZUJvZHlcbiAgICBpZiAodGVtcGxhdGVKc29uLmxlbmd0aCA8PSBMQVJHRV9URU1QTEFURV9TSVpFX0JZVEVTKSB7XG4gICAgICBzdGFja0RlZmluaXRpb25zLnB1c2goe1xuICAgICAgICBTdGFja05hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgVGVtcGxhdGVCb2R5OiB0ZW1wbGF0ZUpzb24sXG4gICAgICB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIFRlbXBsYXRlIGlzIHRvbyBsYXJnZSwgdXBsb2FkIHRvIFMzXG4gICAgLy8gR2VuZXJhdGUgYSB1bmlxdWUga2V5IGZvciB0aGlzIHRlbXBsYXRlXG4gICAgY29uc3QgdGVtcGxhdGVIYXNoID0gY29udGVudEhhc2godGVtcGxhdGVKc29uKTtcbiAgICBjb25zdCBrZXkgPSBgY2RrLXJlZmFjdG9yLyR7c3RhY2suc3RhY2tOYW1lfS8ke3RlbXBsYXRlSGFzaH0uanNvbmA7XG5cbiAgICBjb25zdCBzMyA9IHNkay5zMygpO1xuICAgIGF3YWl0IHMzLnVwbG9hZCh7XG4gICAgICBCdWNrZXQ6IHRvb2xraXRJbmZvLmJ1Y2tldE5hbWUsXG4gICAgICBLZXk6IGtleSxcbiAgICAgIEJvZHk6IHRlbXBsYXRlSnNvbixcbiAgICAgIENvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZVVSTCA9IGAke3Rvb2xraXRJbmZvLmJ1Y2tldFVybH0vJHtrZXl9YDtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgU3RvcmluZyB0ZW1wbGF0ZSBmb3Igc3RhY2sgJHtzdGFjay5zdGFja05hbWV9IGluIFMzIGF0OiAke3RlbXBsYXRlVVJMfWApO1xuXG4gICAgc3RhY2tEZWZpbml0aW9ucy5wdXNoKHtcbiAgICAgIFN0YWNrTmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgVGVtcGxhdGVVUkw6IHRlbXBsYXRlVVJMLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0YWNrRGVmaW5pdGlvbnM7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceImporter = void 0;\nexports.removeNonImportResources = removeNonImportResources;\nconst util_1 = require(\"util\");\nconst cfnDiff = require(\"@aws-cdk/cloudformation-diff\");\nconst chalk = require(\"chalk\");\nconst fs = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst deployments_1 = require(\"../deployments\");\nconst private_1 = require(\"../io/private\");\n/**\n * Resource importing utility class\n *\n * - Determines the resources added to a template (compared to the deployed version)\n * - Look up the identification information\n * - Load them from a file, or\n * - Ask the user, based on information supplied to us by CloudFormation's GetTemplateSummary\n * - Translate the input to a structure expected by CloudFormation, update the template to add the\n * importable resources, then run an IMPORT changeset.\n */\nclass ResourceImporter {\n _currentTemplate;\n stack;\n cfn;\n ioHelper;\n constructor(stack, props) {\n this.stack = stack;\n this.cfn = props.deployments;\n this.ioHelper = props.ioHelper;\n }\n /**\n * Ask the user for resources to import\n */\n async askForResourceIdentifiers(available) {\n const ret = { importResources: [], resourceMap: {} };\n const resourceIdentifiers = await this.resourceIdentifiers();\n for (const resource of available) {\n const identifier = await this.askForResourceIdentifier(resourceIdentifiers, resource);\n if (!identifier) {\n continue;\n }\n ret.importResources.push(resource);\n ret.resourceMap[resource.logicalId] = identifier;\n }\n return ret;\n }\n /**\n * Load the resources to import from a file\n */\n async loadResourceIdentifiers(available, filename) {\n const contents = await fs.readJson(filename);\n const ret = { importResources: [], resourceMap: {} };\n for (const resource of available) {\n const descr = this.describeResource(resource.logicalId);\n const idProps = contents[resource.logicalId];\n if (idProps) {\n await this.ioHelper.defaults.info((0, util_1.format)('%s: importing using %s', chalk.blue(descr), chalk.blue(fmtdict(idProps))));\n ret.importResources.push(resource);\n ret.resourceMap[resource.logicalId] = idProps;\n delete contents[resource.logicalId];\n }\n else {\n await this.ioHelper.defaults.info((0, util_1.format)('%s: skipping', chalk.blue(descr)));\n }\n }\n const unknown = Object.keys(contents);\n if (unknown.length > 0) {\n await this.ioHelper.defaults.warn(`Unrecognized resource identifiers in mapping file: ${unknown.join(', ')}`);\n }\n return ret;\n }\n /**\n * Based on the provided resource mapping, prepare CFN structures for import (template,\n * ResourcesToImport structure) and perform the import operation (CloudFormation deployment)\n *\n * @param importMap - Mapping from CDK construct tree path to physical resource import identifiers\n * @param options - Options to pass to CloudFormation deploy operation\n */\n async importResourcesFromMap(importMap, options = {}) {\n const resourcesToImport = await this.makeResourcesToImport(importMap);\n const updatedTemplate = await this.currentTemplateWithAdditions(importMap.importResources);\n await this.importResources(updatedTemplate, resourcesToImport, options);\n }\n /**\n * Based on the app and resources file generated by cdk migrate. Removes all items from the template that\n * cannot be included in an import change-set for new stacks and performs the import operation,\n * creating the new stack.\n *\n * @param resourcesToImport - The mapping created by cdk migrate\n * @param options - Options to pass to CloudFormation deploy operation\n */\n async importResourcesFromMigrate(resourcesToImport, options = {}) {\n const updatedTemplate = this.removeNonImportResources();\n await this.importResources(updatedTemplate, resourcesToImport, options);\n }\n async importResources(overrideTemplate, resourcesToImport, options) {\n try {\n const result = await this.cfn.deployStack({\n stack: this.stack,\n deployName: this.stack.stackName,\n ...options,\n overrideTemplate,\n resourcesToImport,\n });\n (0, deployments_1.assertIsSuccessfulDeployStackResult)(result);\n const message = result.noOp\n ? ' ✅ %s (no changes)'\n : ' ✅ %s';\n await this.ioHelper.defaults.info('\\n' + chalk.green((0, util_1.format)(message, this.stack.displayName)));\n }\n catch (e) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E3900.msg((0, util_1.format)('\\n ❌ %s failed: %s', chalk.bold(this.stack.displayName), e), { error: e }));\n throw e;\n }\n }\n /**\n * Perform a diff between the currently running and the new template, ensure that it is valid\n * for importing and return a list of resources that are being added in the new version\n *\n * @return mapping logicalResourceId -> resourceDifference\n */\n async discoverImportableResources(allowNonAdditions = false) {\n const currentTemplate = await this.currentTemplate();\n const diff = cfnDiff.fullDiff(currentTemplate, this.stack.template);\n // Ignore changes to CDKMetadata\n const resourceChanges = Object.entries(diff.resources.changes)\n .filter(([logicalId, _]) => logicalId !== 'CDKMetadata');\n // Split the changes into additions and non-additions. Imports only make sense\n // for newly-added resources.\n const nonAdditions = resourceChanges.filter(([_, dif]) => !dif.isAddition);\n const additions = resourceChanges.filter(([_, dif]) => dif.isAddition);\n if (nonAdditions.length) {\n const offendingResources = nonAdditions.map(([logId, _]) => this.describeResource(logId));\n if (allowNonAdditions) {\n await this.ioHelper.defaults.warn(`Ignoring updated/deleted resources (--force): ${offendingResources.join(', ')}`);\n }\n else {\n throw new toolkit_error_1.ToolkitError('ImportNonAdditionChanges', 'No resource updates or deletes are allowed on import operation. Make sure to resolve pending changes ' +\n `to existing resources, before attempting an import. Updated/deleted resources: ${offendingResources.join(', ')} (--force to override)`);\n }\n }\n // Resources in the new template, that are not present in the current template, are a potential import candidates\n return {\n additions: additions.map(([logicalId, resourceDiff]) => ({\n logicalId,\n resourceDiff,\n resourceDefinition: addDefaultDeletionPolicy(this.stack.template?.Resources?.[logicalId] ?? {}),\n })),\n hasNonAdditions: nonAdditions.length > 0,\n };\n }\n /**\n * Resolves the environment of a stack.\n */\n async resolveEnvironment() {\n return this.cfn.resolveEnvironment(this.stack);\n }\n /**\n * Get currently deployed template of the given stack (SINGLETON)\n *\n * @returns Currently deployed CloudFormation template\n */\n async currentTemplate() {\n if (!this._currentTemplate) {\n this._currentTemplate = await this.cfn.readCurrentTemplate(this.stack);\n }\n return this._currentTemplate;\n }\n /**\n * Return the current template, with the given resources added to it\n */\n async currentTemplateWithAdditions(additions) {\n const template = await this.currentTemplate();\n if (!template.Resources) {\n template.Resources = {};\n }\n for (const add of additions) {\n template.Resources[add.logicalId] = add.resourceDefinition;\n }\n return template;\n }\n /**\n * Get a list of import identifiers for all resource types used in the given\n * template that do support the import operation (SINGLETON)\n *\n * @returns a mapping from a resource type to a list of property names that together identify the resource for import\n */\n async resourceIdentifiers() {\n const ret = {};\n const resourceIdentifierSummaries = await this.cfn.resourceIdentifierSummaries(this.stack);\n for (const summary of resourceIdentifierSummaries) {\n if ('ResourceType' in summary && summary.ResourceType && 'ResourceIdentifiers' in summary && summary.ResourceIdentifiers) {\n ret[summary.ResourceType] = (summary.ResourceIdentifiers ?? [])?.map(x => x.split(','));\n }\n }\n return ret;\n }\n /**\n * Ask for the importable identifier for the given resource\n *\n * There may be more than one identifier under which a resource can be imported. The `import`\n * operation needs exactly one of them.\n *\n * - If we can get one from the template, we will use one.\n * - Otherwise, we will ask the user for one of them.\n */\n async askForResourceIdentifier(resourceIdentifiers, chg) {\n const resourceName = this.describeResource(chg.logicalId);\n // Skip resources that do not support importing\n const resourceType = chg.resourceDiff.newResourceType;\n if (resourceType === undefined || !(resourceType in resourceIdentifiers)) {\n await this.ioHelper.defaults.warn(`${resourceName}: unsupported resource type ${resourceType}, skipping import.`);\n return undefined;\n }\n const idPropSets = resourceIdentifiers[resourceType];\n // Retain only literal strings: strip potential CFN intrinsics\n const resourceProps = Object.fromEntries(Object.entries(chg.resourceDefinition.Properties ?? {})\n .filter(([_, v]) => typeof v === 'string'));\n // Find property sets that are fully satisfied in the template, ask the user to confirm them\n const satisfiedPropSets = idPropSets.filter(ps => ps.every(p => resourceProps[p]));\n for (const satisfiedPropSet of satisfiedPropSets) {\n const candidateProps = Object.fromEntries(satisfiedPropSet.map(p => [p, resourceProps[p]]));\n const displayCandidateProps = fmtdict(candidateProps);\n const importTheResource = await this.ioHelper.requestResponse(private_1.IO.CDK_TOOLKIT_I3100.req(`${chalk.blue(resourceName)} (${resourceType}): import with ${chalk.yellow(displayCandidateProps)}`, {\n resource: {\n type: resourceType,\n props: candidateProps,\n stringifiedProps: displayCandidateProps,\n },\n }));\n if (importTheResource) {\n return candidateProps;\n }\n }\n // If we got here and the user rejected any available identifiers, then apparently they don't want the resource at all\n if (satisfiedPropSets.length > 0) {\n await this.ioHelper.defaults.info(chalk.grey(`Skipping import of ${resourceName}`));\n return undefined;\n }\n // We cannot auto-import this, ask the user for one of the props\n // The only difference between these cases is what we print: for multiple properties, we print a preamble\n const prefix = `${chalk.blue(resourceName)} (${resourceType})`;\n const promptPattern = `${prefix}: enter %s`;\n if (idPropSets.length > 1) {\n const preamble = `${prefix}: enter one of ${idPropSets.map(x => chalk.blue(x.join('+'))).join(', ')} to import (leave all empty to skip)`;\n await this.ioHelper.defaults.info(preamble);\n }\n // Do the input loop here\n for (const idProps of idPropSets) {\n const input = {};\n for (const idProp of idProps) {\n // If we have a value from the template, use it as default. This will only be a partial\n // identifier if present, otherwise we would have done the import already above.\n const defaultValue = resourceProps[idProp] ?? '';\n const response = await this.ioHelper.requestResponse(private_1.IO.CDK_TOOLKIT_I3110.req((0, util_1.format)(promptPattern, chalk.blue(idProp)), {\n resource: {\n name: resourceName,\n type: resourceType,\n idProp,\n },\n responseDescription: defaultValue ? undefined : 'empty to skip',\n }, defaultValue));\n if (!response) {\n break;\n }\n input[idProp] = response;\n // Also stick this property into 'resourceProps', so that it may be reused by a subsequent question\n // (for a different compound identifier that involves the same property). Just a small UX enhancement.\n resourceProps[idProp] = response;\n }\n // If the user gave inputs for all values, we are complete\n if (Object.keys(input).length === idProps.length) {\n return input;\n }\n }\n await this.ioHelper.defaults.info(chalk.grey(`Skipping import of ${resourceName}`));\n return undefined;\n }\n /**\n * Convert the internal \"resource mapping\" structure to CloudFormation accepted \"ResourcesToImport\" structure\n */\n async makeResourcesToImport(resourceMap) {\n return resourceMap.importResources.map(res => ({\n LogicalResourceId: res.logicalId,\n ResourceType: res.resourceDiff.newResourceType,\n ResourceIdentifier: resourceMap.resourceMap[res.logicalId],\n }));\n }\n /**\n * Convert CloudFormation logical resource ID to CDK construct tree path\n *\n * @param logicalId - CloudFormation logical ID of the resource (the key in the template's Resources section)\n * @returns Forward-slash separated path of the resource in CDK construct tree, e.g. MyStack/MyBucket/Resource\n */\n describeResource(logicalId) {\n return this.stack.template?.Resources?.[logicalId]?.Metadata?.['aws:cdk:path'] ?? logicalId;\n }\n /**\n * Removes CDKMetadata and Outputs in the template so that only resources for importing are left.\n * @returns template with import resources only\n */\n removeNonImportResources() {\n return removeNonImportResources(this.stack);\n }\n}\nexports.ResourceImporter = ResourceImporter;\nfunction fmtdict(xs) {\n return Object.entries(xs).map(([k, v]) => `${k}=${v}`).join(', ');\n}\n/**\n * Add a default `DeletionPolicy` policy.\n * The default value is set to 'Retain', to lower risk of unintentionally\n * deleting stateful resources in the process of importing to CDK.\n */\nfunction addDefaultDeletionPolicy(resource) {\n if (resource.DeletionPolicy) {\n return resource;\n }\n return {\n ...resource,\n DeletionPolicy: 'Retain',\n };\n}\nfunction removeNonImportResources(stack) {\n const template = stack.template;\n delete template.Resources.CDKMetadata;\n delete template.Outputs;\n return template;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2ZkEsNERBS0M7QUFsZ0JELCtCQUE4QjtBQUU5Qix3REFBd0Q7QUFHeEQsK0JBQStCO0FBQy9CLCtCQUErQjtBQUUvQiwrREFBMkQ7QUFFM0QsZ0RBQXFFO0FBQ3JFLDJDQUFrRDtBQW1GbEQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFDbkIsZ0JBQWdCLENBQU07SUFFYixLQUFLLENBQW9DO0lBQ3pDLEdBQUcsQ0FBYztJQUNqQixRQUFRLENBQVc7SUFFcEMsWUFDRSxLQUF3QyxFQUN4QyxLQUE0QjtRQUU1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxTQUErQjtRQUNwRSxNQUFNLEdBQUcsR0FBYyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUU3RCxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsU0FBUztZQUNYLENBQUM7WUFFRCxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDbkQsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQStCLEVBQUUsUUFBZ0I7UUFDcEYsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sR0FBRyxHQUFjLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDaEUsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFBLGFBQU0sRUFBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVySCxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbkMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDO2dCQUM5QyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUEsYUFBTSxFQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoSCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQW9CLEVBQUUsVUFBbUMsRUFBRTtRQUM3RixNQUFNLGlCQUFpQixHQUFzQixNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RixNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFM0YsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxpQkFBb0MsRUFBRSxVQUFtQyxFQUFFO1FBQ2pILE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRXhELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlLENBQUMsZ0JBQXFCLEVBQUUsaUJBQW9DLEVBQUUsT0FBZ0M7UUFDekgsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUNoQyxHQUFHLE9BQU87Z0JBQ1YsZ0JBQWdCO2dCQUNoQixpQkFBaUI7YUFDbEIsQ0FBQyxDQUFDO1lBRUgsSUFBQSxpREFBbUMsRUFBQyxNQUFNLENBQUMsQ0FBQztZQUU1QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSTtnQkFDekIsQ0FBQyxDQUFDLHFCQUFxQjtnQkFDdkIsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUViLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUEsYUFBTSxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFBLGFBQU0sRUFBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hKLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLO1FBQ2hFLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXJELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEUsZ0NBQWdDO1FBQ2hDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7YUFDM0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxhQUFhLENBQUMsQ0FBQztRQUUzRCw4RUFBOEU7UUFDOUUsNkJBQTZCO1FBQzdCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0UsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkUsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRTFGLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaURBQWlELGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEgsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDBCQUEwQixFQUFFLHVHQUF1RztvQkFDeEosa0ZBQWtGLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUM3SSxDQUFDO1FBQ0gsQ0FBQztRQUVELGlIQUFpSDtRQUNqSCxPQUFPO1lBQ0wsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkQsU0FBUztnQkFDVCxZQUFZO2dCQUNaLGtCQUFrQixFQUFFLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxlQUFlLEVBQUUsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDO1NBQ3pDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsZUFBZTtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxTQUErQjtRQUN4RSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLFFBQVEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzVCLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztRQUM3RCxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssS0FBSyxDQUFDLG1CQUFtQjtRQUMvQixNQUFNLEdBQUcsR0FBd0IsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRixLQUFLLE1BQU0sT0FBTyxJQUFJLDJCQUEyQixFQUFFLENBQUM7WUFDbEQsSUFBSSxjQUFjLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUkscUJBQXFCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN6SCxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxRixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssS0FBSyxDQUFDLHdCQUF3QixDQUNwQyxtQkFBd0MsRUFDeEMsR0FBdUI7UUFFdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxRCwrQ0FBK0M7UUFDL0MsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7UUFDdEQsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSwrQkFBK0IsWUFBWSxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xILE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCw4REFBOEQ7UUFDOUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO2FBQzdGLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBMkIsQ0FBQztRQUV4RSw0RkFBNEY7UUFDNUYsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkYsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDakQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUYsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFdEQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLFlBQVksa0JBQWtCLEtBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFO2dCQUMxTCxRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLEtBQUssRUFBRSxjQUFjO29CQUNyQixnQkFBZ0IsRUFBRSxxQkFBcUI7aUJBQ3hDO2FBQ0YsQ0FBQyxDQUFDLENBQUM7WUFDSixJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDO1FBRUQsc0hBQXNIO1FBQ3RILElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsZ0VBQWdFO1FBQ2hFLHlHQUF5RztRQUN6RyxNQUFNLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssWUFBWSxHQUFHLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQztRQUM1QyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxRQUFRLEdBQUcsR0FBRyxNQUFNLGtCQUFrQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDO1lBQzFJLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCx5QkFBeUI7UUFDekIsS0FBSyxNQUFNLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBMkIsRUFBRSxDQUFDO1lBQ3pDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzdCLHVGQUF1RjtnQkFDdkYsZ0ZBQWdGO2dCQUNoRixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUVqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQzNFLElBQUEsYUFBTSxFQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3pDO29CQUNFLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsWUFBWTt3QkFDbEIsSUFBSSxFQUFFLFlBQVk7d0JBQ2xCLE1BQU07cUJBQ1A7b0JBQ0QsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWU7aUJBQ2hFLEVBQ0QsWUFBWSxDQUNiLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2QsTUFBTTtnQkFDUixDQUFDO2dCQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQ3pCLG1HQUFtRztnQkFDbkcsc0dBQXNHO2dCQUN0RyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ25DLENBQUM7WUFFRCwwREFBMEQ7WUFDMUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEYsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLHFCQUFxQixDQUFDLFdBQXNCO1FBQ3hELE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxTQUFTO1lBQ2hDLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLGVBQWdCO1lBQy9DLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztTQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGdCQUFnQixDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzlGLENBQUM7SUFFRDs7O09BR0c7SUFDSyx3QkFBd0I7UUFDOUIsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBcFZELDRDQW9WQztBQXdDRCxTQUFTLE9BQU8sQ0FBSSxFQUFxQjtJQUN2QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxRQUFhO0lBQzdDLElBQUksUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxRQUFRO1FBQ1gsY0FBYyxFQUFFLFFBQVE7S0FDekIsQ0FBQztBQUNKLENBQUM7QUFPRCxTQUFnQix3QkFBd0IsQ0FBQyxLQUF1QztJQUM5RSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2hDLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDdEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3hCLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGNmbkRpZmYgZnJvbSAnQGF3cy1jZGsvY2xvdWRmb3JtYXRpb24tZGlmZic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRGlmZmVyZW5jZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJ5LCBSZXNvdXJjZVRvSW1wb3J0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudE1ldGhvZCB9IGZyb20gJy4uLy4uL2FjdGlvbnMvZGVwbG95JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgYXNzZXJ0SXNTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi9kZXBsb3ltZW50cyc7XG5pbXBvcnQgeyBJTywgdHlwZSBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBUYWcgfSBmcm9tICcuLi90YWdzJztcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VzVG9JbXBvcnQgPSBSZXNvdXJjZVRvSW1wb3J0W107XG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXMgPSBSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJ5W107XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbXBvcnRlclByb3BzIHtcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzO1xuICBpb0hlbHBlcjogSW9IZWxwZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0RGVwbG95bWVudE9wdGlvbnMge1xuICAvKipcbiAgICogUm9sZSB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBzdGFjayByb2xlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IG1ldGhvZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENoYW5nZSBzZXQgd2l0aCBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0YWdzIChwYXNzIHRocm91Z2ggdG8gQ2xvdWRGb3JtYXRpb24pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBVc2UgcHJldmlvdXMgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIElmIG5vdCBzZXQsIGFsbCBwYXJhbWV0ZXJzIG11c3QgYmUgc3BlY2lmaWVkIGZvciBldmVyeSBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VQcmV2aW91c1BhcmFtZXRlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSb2xsYmFjayBmYWlsZWQgZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sbGJhY2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFNldCBvZiBwYXJhbWV0ZXJzIHRoYXQgdW5pcXVlbHkgaWRlbnRpZnkgYSBwaHlzaWNhbCByZXNvdXJjZSBvZiBhIGdpdmVuIHR5cGVcbiAqIGZvciB0aGUgaW1wb3J0IG9wZXJhdGlvbiwgZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAgXCJBV1M6OlMzOjpCdWNrZXRcIjogW1tcIkJ1Y2tldE5hbWVcIl1dLFxuICogICBcIkFXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlXCI6IFtbXCJUYWJsZU5hbWVcIl0sIFtcIlRhYmxlQXJuXCJdLCBbXCJUYWJsZVN0cmVhbUFyblwiXV0sXG4gKiAgIFwiQVdTOjpSb3V0ZTUzOjpLZXlTaWduaW5nS2V5XCI6IFtbXCJIb3N0ZWRab25lSWRcIiwgXCJOYW1lXCJdXSxcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkZW50aWZpZXJzID0geyBbcmVzb3VyY2VUeXBlOiBzdHJpbmddOiBzdHJpbmdbXVtdIH07XG5cbnR5cGUgUmVzb3VyY2VJZGVudGlmaWVyUHJvcGVydGllcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogTWFwcGluZyBvZiBDREsgcmVzb3VyY2VzIChMMSBjb25zdHJ1Y3RzKSB0byBwaHlzaWNhbCByZXNvdXJjZXMgdG8gYmUgaW1wb3J0ZWRcbiAqIGluIHRoZWlyIHBsYWNlLCBleGFtcGxlOlxuICpcbiAqIGBgYFxuICoge1xuICogICBcIk15U3RhY2svTXlTM0J1Y2tldC9SZXNvdXJjZVwiOiB7XG4gKiAgICAgXCJCdWNrZXROYW1lXCI6IFwibXktbWFudWFsbHktY3JlYXRlZC1zMy1idWNrZXRcIlxuICogICB9LFxuICogICBcIk15U3RhY2svTXlWcGMvUmVzb3VyY2VcIjoge1xuICogICAgIFwiVnBjSWRcIjogXCJ2cGMtMTIzNDU2Nzg5XCJcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbnR5cGUgUmVzb3VyY2VNYXAgPSB7IFtsb2dpY2FsUmVzb3VyY2U6IHN0cmluZ106IFJlc291cmNlSWRlbnRpZmllclByb3BlcnRpZXMgfTtcblxuLyoqXG4gKiBSZXNvdXJjZSBpbXBvcnRpbmcgdXRpbGl0eSBjbGFzc1xuICpcbiAqIC0gRGV0ZXJtaW5lcyB0aGUgcmVzb3VyY2VzIGFkZGVkIHRvIGEgdGVtcGxhdGUgKGNvbXBhcmVkIHRvIHRoZSBkZXBsb3llZCB2ZXJzaW9uKVxuICogLSBMb29rIHVwIHRoZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvblxuICogICAtIExvYWQgdGhlbSBmcm9tIGEgZmlsZSwgb3JcbiAqICAgLSBBc2sgdGhlIHVzZXIsIGJhc2VkIG9uIGluZm9ybWF0aW9uIHN1cHBsaWVkIHRvIHVzIGJ5IENsb3VkRm9ybWF0aW9uJ3MgR2V0VGVtcGxhdGVTdW1tYXJ5XG4gKiAtIFRyYW5zbGF0ZSB0aGUgaW5wdXQgdG8gYSBzdHJ1Y3R1cmUgZXhwZWN0ZWQgYnkgQ2xvdWRGb3JtYXRpb24sIHVwZGF0ZSB0aGUgdGVtcGxhdGUgdG8gYWRkIHRoZVxuICogICBpbXBvcnRhYmxlIHJlc291cmNlcywgdGhlbiBydW4gYW4gSU1QT1JUIGNoYW5nZXNldC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlSW1wb3J0ZXIge1xuICBwcml2YXRlIF9jdXJyZW50VGVtcGxhdGU6IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2ZuOiBEZXBsb3ltZW50cztcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgICBwcm9wczogUmVzb3VyY2VJbXBvcnRlclByb3BzLFxuICApIHtcbiAgICB0aGlzLnN0YWNrID0gc3RhY2s7XG4gICAgdGhpcy5jZm4gPSBwcm9wcy5kZXBsb3ltZW50cztcbiAgICB0aGlzLmlvSGVscGVyID0gcHJvcHMuaW9IZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICogQXNrIHRoZSB1c2VyIGZvciByZXNvdXJjZXMgdG8gaW1wb3J0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYXNrRm9yUmVzb3VyY2VJZGVudGlmaWVycyhhdmFpbGFibGU6IEltcG9ydGFibGVSZXNvdXJjZVtdKTogUHJvbWlzZTxJbXBvcnRNYXA+IHtcbiAgICBjb25zdCByZXQ6IEltcG9ydE1hcCA9IHsgaW1wb3J0UmVzb3VyY2VzOiBbXSwgcmVzb3VyY2VNYXA6IHt9IH07XG4gICAgY29uc3QgcmVzb3VyY2VJZGVudGlmaWVycyA9IGF3YWl0IHRoaXMucmVzb3VyY2VJZGVudGlmaWVycygpO1xuXG4gICAgZm9yIChjb25zdCByZXNvdXJjZSBvZiBhdmFpbGFibGUpIHtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBhd2FpdCB0aGlzLmFza0ZvclJlc291cmNlSWRlbnRpZmllcihyZXNvdXJjZUlkZW50aWZpZXJzLCByZXNvdXJjZSk7XG4gICAgICBpZiAoIWlkZW50aWZpZXIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHJldC5pbXBvcnRSZXNvdXJjZXMucHVzaChyZXNvdXJjZSk7XG4gICAgICByZXQucmVzb3VyY2VNYXBbcmVzb3VyY2UubG9naWNhbElkXSA9IGlkZW50aWZpZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSByZXNvdXJjZXMgdG8gaW1wb3J0IGZyb20gYSBmaWxlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZFJlc291cmNlSWRlbnRpZmllcnMoYXZhaWxhYmxlOiBJbXBvcnRhYmxlUmVzb3VyY2VbXSwgZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8SW1wb3J0TWFwPiB7XG4gICAgY29uc3QgY29udGVudHMgPSBhd2FpdCBmcy5yZWFkSnNvbihmaWxlbmFtZSk7XG5cbiAgICBjb25zdCByZXQ6IEltcG9ydE1hcCA9IHsgaW1wb3J0UmVzb3VyY2VzOiBbXSwgcmVzb3VyY2VNYXA6IHt9IH07XG4gICAgZm9yIChjb25zdCByZXNvdXJjZSBvZiBhdmFpbGFibGUpIHtcbiAgICAgIGNvbnN0IGRlc2NyID0gdGhpcy5kZXNjcmliZVJlc291cmNlKHJlc291cmNlLmxvZ2ljYWxJZCk7XG4gICAgICBjb25zdCBpZFByb3BzID0gY29udGVudHNbcmVzb3VyY2UubG9naWNhbElkXTtcbiAgICAgIGlmIChpZFByb3BzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXQoJyVzOiBpbXBvcnRpbmcgdXNpbmcgJXMnLCBjaGFsay5ibHVlKGRlc2NyKSwgY2hhbGsuYmx1ZShmbXRkaWN0KGlkUHJvcHMpKSkpO1xuXG4gICAgICAgIHJldC5pbXBvcnRSZXNvdXJjZXMucHVzaChyZXNvdXJjZSk7XG4gICAgICAgIHJldC5yZXNvdXJjZU1hcFtyZXNvdXJjZS5sb2dpY2FsSWRdID0gaWRQcm9wcztcbiAgICAgICAgZGVsZXRlIGNvbnRlbnRzW3Jlc291cmNlLmxvZ2ljYWxJZF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmluZm8oZm9ybWF0KCclczogc2tpcHBpbmcnLCBjaGFsay5ibHVlKGRlc2NyKSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHVua25vd24gPSBPYmplY3Qua2V5cyhjb250ZW50cyk7XG4gICAgaWYgKHVua25vd24ubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKGBVbnJlY29nbml6ZWQgcmVzb3VyY2UgaWRlbnRpZmllcnMgaW4gbWFwcGluZyBmaWxlOiAke3Vua25vd24uam9pbignLCAnKX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEJhc2VkIG9uIHRoZSBwcm92aWRlZCByZXNvdXJjZSBtYXBwaW5nLCBwcmVwYXJlIENGTiBzdHJ1Y3R1cmVzIGZvciBpbXBvcnQgKHRlbXBsYXRlLFxuICAgKiBSZXNvdXJjZXNUb0ltcG9ydCBzdHJ1Y3R1cmUpIGFuZCBwZXJmb3JtIHRoZSBpbXBvcnQgb3BlcmF0aW9uIChDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50KVxuICAgKlxuICAgKiBAcGFyYW0gaW1wb3J0TWFwIC0gTWFwcGluZyBmcm9tIENESyBjb25zdHJ1Y3QgdHJlZSBwYXRoIHRvIHBoeXNpY2FsIHJlc291cmNlIGltcG9ydCBpZGVudGlmaWVyc1xuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBkZXBsb3kgb3BlcmF0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaW1wb3J0UmVzb3VyY2VzRnJvbU1hcChpbXBvcnRNYXA6IEltcG9ydE1hcCwgb3B0aW9uczogSW1wb3J0RGVwbG95bWVudE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHJlc291cmNlc1RvSW1wb3J0OiBSZXNvdXJjZXNUb0ltcG9ydCA9IGF3YWl0IHRoaXMubWFrZVJlc291cmNlc1RvSW1wb3J0KGltcG9ydE1hcCk7XG4gICAgY29uc3QgdXBkYXRlZFRlbXBsYXRlID0gYXdhaXQgdGhpcy5jdXJyZW50VGVtcGxhdGVXaXRoQWRkaXRpb25zKGltcG9ydE1hcC5pbXBvcnRSZXNvdXJjZXMpO1xuXG4gICAgYXdhaXQgdGhpcy5pbXBvcnRSZXNvdXJjZXModXBkYXRlZFRlbXBsYXRlLCByZXNvdXJjZXNUb0ltcG9ydCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQmFzZWQgb24gdGhlIGFwcCBhbmQgcmVzb3VyY2VzIGZpbGUgZ2VuZXJhdGVkIGJ5IGNkayBtaWdyYXRlLiBSZW1vdmVzIGFsbCBpdGVtcyBmcm9tIHRoZSB0ZW1wbGF0ZSB0aGF0XG4gICAqIGNhbm5vdCBiZSBpbmNsdWRlZCBpbiBhbiBpbXBvcnQgY2hhbmdlLXNldCBmb3IgbmV3IHN0YWNrcyBhbmQgcGVyZm9ybXMgdGhlIGltcG9ydCBvcGVyYXRpb24sXG4gICAqIGNyZWF0aW5nIHRoZSBuZXcgc3RhY2suXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZXNUb0ltcG9ydCAtIFRoZSBtYXBwaW5nIGNyZWF0ZWQgYnkgY2RrIG1pZ3JhdGVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIHRvIHBhc3MgdG8gQ2xvdWRGb3JtYXRpb24gZGVwbG95IG9wZXJhdGlvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGltcG9ydFJlc291cmNlc0Zyb21NaWdyYXRlKHJlc291cmNlc1RvSW1wb3J0OiBSZXNvdXJjZXNUb0ltcG9ydCwgb3B0aW9uczogSW1wb3J0RGVwbG95bWVudE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHVwZGF0ZWRUZW1wbGF0ZSA9IHRoaXMucmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKCk7XG5cbiAgICBhd2FpdCB0aGlzLmltcG9ydFJlc291cmNlcyh1cGRhdGVkVGVtcGxhdGUsIHJlc291cmNlc1RvSW1wb3J0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW1wb3J0UmVzb3VyY2VzKG92ZXJyaWRlVGVtcGxhdGU6IGFueSwgcmVzb3VyY2VzVG9JbXBvcnQ6IFJlc291cmNlc1RvSW1wb3J0LCBvcHRpb25zOiBJbXBvcnREZXBsb3ltZW50T3B0aW9ucykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNmbi5kZXBsb3lTdGFjayh7XG4gICAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgICBkZXBsb3lOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgb3ZlcnJpZGVUZW1wbGF0ZSxcbiAgICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICB9KTtcblxuICAgICAgYXNzZXJ0SXNTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQocmVzdWx0KTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3VsdC5ub09wXG4gICAgICAgID8gJyDinIUgICVzIChubyBjaGFuZ2VzKSdcbiAgICAgICAgOiAnIOKchSAgJXMnO1xuXG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ1xcbicgKyBjaGFsay5ncmVlbihmb3JtYXQobWVzc2FnZSwgdGhpcy5zdGFjay5kaXNwbGF5TmFtZSkpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FMzkwMC5tc2coZm9ybWF0KCdcXG4g4p2MICAlcyBmYWlsZWQ6ICVzJywgY2hhbGsuYm9sZCh0aGlzLnN0YWNrLmRpc3BsYXlOYW1lKSwgZSksIHsgZXJyb3I6IGUgYXMgYW55IH0pKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYSBkaWZmIGJldHdlZW4gdGhlIGN1cnJlbnRseSBydW5uaW5nIGFuZCB0aGUgbmV3IHRlbXBsYXRlLCBlbnN1cmUgdGhhdCBpdCBpcyB2YWxpZFxuICAgKiBmb3IgaW1wb3J0aW5nIGFuZCByZXR1cm4gYSBsaXN0IG9mIHJlc291cmNlcyB0aGF0IGFyZSBiZWluZyBhZGRlZCBpbiB0aGUgbmV3IHZlcnNpb25cbiAgICpcbiAgICogQHJldHVybiBtYXBwaW5nIGxvZ2ljYWxSZXNvdXJjZUlkIC0+IHJlc291cmNlRGlmZmVyZW5jZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVySW1wb3J0YWJsZVJlc291cmNlcyhhbGxvd05vbkFkZGl0aW9ucyA9IGZhbHNlKTogUHJvbWlzZTxEaXNjb3ZlckltcG9ydGFibGVSZXNvdXJjZXNSZXN1bHQ+IHtcbiAgICBjb25zdCBjdXJyZW50VGVtcGxhdGUgPSBhd2FpdCB0aGlzLmN1cnJlbnRUZW1wbGF0ZSgpO1xuXG4gICAgY29uc3QgZGlmZiA9IGNmbkRpZmYuZnVsbERpZmYoY3VycmVudFRlbXBsYXRlLCB0aGlzLnN0YWNrLnRlbXBsYXRlKTtcblxuICAgIC8vIElnbm9yZSBjaGFuZ2VzIHRvIENES01ldGFkYXRhXG4gICAgY29uc3QgcmVzb3VyY2VDaGFuZ2VzID0gT2JqZWN0LmVudHJpZXMoZGlmZi5yZXNvdXJjZXMuY2hhbmdlcylcbiAgICAgIC5maWx0ZXIoKFtsb2dpY2FsSWQsIF9dKSA9PiBsb2dpY2FsSWQgIT09ICdDREtNZXRhZGF0YScpO1xuXG4gICAgLy8gU3BsaXQgdGhlIGNoYW5nZXMgaW50byBhZGRpdGlvbnMgYW5kIG5vbi1hZGRpdGlvbnMuIEltcG9ydHMgb25seSBtYWtlIHNlbnNlXG4gICAgLy8gZm9yIG5ld2x5LWFkZGVkIHJlc291cmNlcy5cbiAgICBjb25zdCBub25BZGRpdGlvbnMgPSByZXNvdXJjZUNoYW5nZXMuZmlsdGVyKChbXywgZGlmXSkgPT4gIWRpZi5pc0FkZGl0aW9uKTtcbiAgICBjb25zdCBhZGRpdGlvbnMgPSByZXNvdXJjZUNoYW5nZXMuZmlsdGVyKChbXywgZGlmXSkgPT4gZGlmLmlzQWRkaXRpb24pO1xuXG4gICAgaWYgKG5vbkFkZGl0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG9mZmVuZGluZ1Jlc291cmNlcyA9IG5vbkFkZGl0aW9ucy5tYXAoKFtsb2dJZCwgX10pID0+IHRoaXMuZGVzY3JpYmVSZXNvdXJjZShsb2dJZCkpO1xuXG4gICAgICBpZiAoYWxsb3dOb25BZGRpdGlvbnMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKGBJZ25vcmluZyB1cGRhdGVkL2RlbGV0ZWQgcmVzb3VyY2VzICgtLWZvcmNlKTogJHtvZmZlbmRpbmdSZXNvdXJjZXMuam9pbignLCAnKX1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ltcG9ydE5vbkFkZGl0aW9uQ2hhbmdlcycsICdObyByZXNvdXJjZSB1cGRhdGVzIG9yIGRlbGV0ZXMgYXJlIGFsbG93ZWQgb24gaW1wb3J0IG9wZXJhdGlvbi4gTWFrZSBzdXJlIHRvIHJlc29sdmUgcGVuZGluZyBjaGFuZ2VzICcgK1xuICAgICAgICAgIGB0byBleGlzdGluZyByZXNvdXJjZXMsIGJlZm9yZSBhdHRlbXB0aW5nIGFuIGltcG9ydC4gVXBkYXRlZC9kZWxldGVkIHJlc291cmNlczogJHtvZmZlbmRpbmdSZXNvdXJjZXMuam9pbignLCAnKX0gKC0tZm9yY2UgdG8gb3ZlcnJpZGUpYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzb3VyY2VzIGluIHRoZSBuZXcgdGVtcGxhdGUsIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIHRoZSBjdXJyZW50IHRlbXBsYXRlLCBhcmUgYSBwb3RlbnRpYWwgaW1wb3J0IGNhbmRpZGF0ZXNcbiAgICByZXR1cm4ge1xuICAgICAgYWRkaXRpb25zOiBhZGRpdGlvbnMubWFwKChbbG9naWNhbElkLCByZXNvdXJjZURpZmZdKSA9PiAoe1xuICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgIHJlc291cmNlRGlmZixcbiAgICAgICAgcmVzb3VyY2VEZWZpbml0aW9uOiBhZGREZWZhdWx0RGVsZXRpb25Qb2xpY3kodGhpcy5zdGFjay50ZW1wbGF0ZT8uUmVzb3VyY2VzPy5bbG9naWNhbElkXSA/PyB7fSksXG4gICAgICB9KSksXG4gICAgICBoYXNOb25BZGRpdGlvbnM6IG5vbkFkZGl0aW9ucy5sZW5ndGggPiAwLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGVudmlyb25tZW50IG9mIGEgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZUVudmlyb25tZW50KCk6IFByb21pc2U8Y3hhcGkuRW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jZm4ucmVzb2x2ZUVudmlyb25tZW50KHRoaXMuc3RhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50bHkgZGVwbG95ZWQgdGVtcGxhdGUgb2YgdGhlIGdpdmVuIHN0YWNrIChTSU5HTEVUT04pXG4gICAqXG4gICAqIEByZXR1cm5zIEN1cnJlbnRseSBkZXBsb3llZCBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjdXJyZW50VGVtcGxhdGUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRUZW1wbGF0ZSkge1xuICAgICAgdGhpcy5fY3VycmVudFRlbXBsYXRlID0gYXdhaXQgdGhpcy5jZm4ucmVhZEN1cnJlbnRUZW1wbGF0ZSh0aGlzLnN0YWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUZW1wbGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgdGVtcGxhdGUsIHdpdGggdGhlIGdpdmVuIHJlc291cmNlcyBhZGRlZCB0byBpdFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjdXJyZW50VGVtcGxhdGVXaXRoQWRkaXRpb25zKGFkZGl0aW9uczogSW1wb3J0YWJsZVJlc291cmNlW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgdGhpcy5jdXJyZW50VGVtcGxhdGUoKTtcbiAgICBpZiAoIXRlbXBsYXRlLlJlc291cmNlcykge1xuICAgICAgdGVtcGxhdGUuUmVzb3VyY2VzID0ge307XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhZGQgb2YgYWRkaXRpb25zKSB7XG4gICAgICB0ZW1wbGF0ZS5SZXNvdXJjZXNbYWRkLmxvZ2ljYWxJZF0gPSBhZGQucmVzb3VyY2VEZWZpbml0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiB0ZW1wbGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGltcG9ydCBpZGVudGlmaWVycyBmb3IgYWxsIHJlc291cmNlIHR5cGVzIHVzZWQgaW4gdGhlIGdpdmVuXG4gICAqIHRlbXBsYXRlIHRoYXQgZG8gc3VwcG9ydCB0aGUgaW1wb3J0IG9wZXJhdGlvbiAoU0lOR0xFVE9OKVxuICAgKlxuICAgKiBAcmV0dXJucyBhIG1hcHBpbmcgZnJvbSBhIHJlc291cmNlIHR5cGUgdG8gYSBsaXN0IG9mIHByb3BlcnR5IG5hbWVzIHRoYXQgdG9nZXRoZXIgaWRlbnRpZnkgdGhlIHJlc291cmNlIGZvciBpbXBvcnRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVzb3VyY2VJZGVudGlmaWVycygpOiBQcm9taXNlPFJlc291cmNlSWRlbnRpZmllcnM+IHtcbiAgICBjb25zdCByZXQ6IFJlc291cmNlSWRlbnRpZmllcnMgPSB7fTtcbiAgICBjb25zdCByZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXMgPSBhd2FpdCB0aGlzLmNmbi5yZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXModGhpcy5zdGFjayk7XG4gICAgZm9yIChjb25zdCBzdW1tYXJ5IG9mIHJlc291cmNlSWRlbnRpZmllclN1bW1hcmllcykge1xuICAgICAgaWYgKCdSZXNvdXJjZVR5cGUnIGluIHN1bW1hcnkgJiYgc3VtbWFyeS5SZXNvdXJjZVR5cGUgJiYgJ1Jlc291cmNlSWRlbnRpZmllcnMnIGluIHN1bW1hcnkgJiYgc3VtbWFyeS5SZXNvdXJjZUlkZW50aWZpZXJzKSB7XG4gICAgICAgIHJldFtzdW1tYXJ5LlJlc291cmNlVHlwZV0gPSAoc3VtbWFyeS5SZXNvdXJjZUlkZW50aWZpZXJzID8/IFtdKT8ubWFwKHggPT4geC5zcGxpdCgnLCcpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc2sgZm9yIHRoZSBpbXBvcnRhYmxlIGlkZW50aWZpZXIgZm9yIHRoZSBnaXZlbiByZXNvdXJjZVxuICAgKlxuICAgKiBUaGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBpZGVudGlmaWVyIHVuZGVyIHdoaWNoIGEgcmVzb3VyY2UgY2FuIGJlIGltcG9ydGVkLiBUaGUgYGltcG9ydGBcbiAgICogb3BlcmF0aW9uIG5lZWRzIGV4YWN0bHkgb25lIG9mIHRoZW0uXG4gICAqXG4gICAqIC0gSWYgd2UgY2FuIGdldCBvbmUgZnJvbSB0aGUgdGVtcGxhdGUsIHdlIHdpbGwgdXNlIG9uZS5cbiAgICogLSBPdGhlcndpc2UsIHdlIHdpbGwgYXNrIHRoZSB1c2VyIGZvciBvbmUgb2YgdGhlbS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYXNrRm9yUmVzb3VyY2VJZGVudGlmaWVyKFxuICAgIHJlc291cmNlSWRlbnRpZmllcnM6IFJlc291cmNlSWRlbnRpZmllcnMsXG4gICAgY2hnOiBJbXBvcnRhYmxlUmVzb3VyY2UsXG4gICk6IFByb21pc2U8UmVzb3VyY2VJZGVudGlmaWVyUHJvcGVydGllcyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IHRoaXMuZGVzY3JpYmVSZXNvdXJjZShjaGcubG9naWNhbElkKTtcblxuICAgIC8vIFNraXAgcmVzb3VyY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaW1wb3J0aW5nXG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gY2hnLnJlc291cmNlRGlmZi5uZXdSZXNvdXJjZVR5cGU7XG4gICAgaWYgKHJlc291cmNlVHlwZSA9PT0gdW5kZWZpbmVkIHx8ICEocmVzb3VyY2VUeXBlIGluIHJlc291cmNlSWRlbnRpZmllcnMpKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oYCR7cmVzb3VyY2VOYW1lfTogdW5zdXBwb3J0ZWQgcmVzb3VyY2UgdHlwZSAke3Jlc291cmNlVHlwZX0sIHNraXBwaW5nIGltcG9ydC5gKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgaWRQcm9wU2V0cyA9IHJlc291cmNlSWRlbnRpZmllcnNbcmVzb3VyY2VUeXBlXTtcblxuICAgIC8vIFJldGFpbiBvbmx5IGxpdGVyYWwgc3RyaW5nczogc3RyaXAgcG90ZW50aWFsIENGTiBpbnRyaW5zaWNzXG4gICAgY29uc3QgcmVzb3VyY2VQcm9wcyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhjaGcucmVzb3VyY2VEZWZpbml0aW9uLlByb3BlcnRpZXMgPz8ge30pXG4gICAgICAuZmlsdGVyKChbXywgdl0pID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJykpIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICAvLyBGaW5kIHByb3BlcnR5IHNldHMgdGhhdCBhcmUgZnVsbHkgc2F0aXNmaWVkIGluIHRoZSB0ZW1wbGF0ZSwgYXNrIHRoZSB1c2VyIHRvIGNvbmZpcm0gdGhlbVxuICAgIGNvbnN0IHNhdGlzZmllZFByb3BTZXRzID0gaWRQcm9wU2V0cy5maWx0ZXIocHMgPT4gcHMuZXZlcnkocCA9PiByZXNvdXJjZVByb3BzW3BdKSk7XG4gICAgZm9yIChjb25zdCBzYXRpc2ZpZWRQcm9wU2V0IG9mIHNhdGlzZmllZFByb3BTZXRzKSB7XG4gICAgICBjb25zdCBjYW5kaWRhdGVQcm9wcyA9IE9iamVjdC5mcm9tRW50cmllcyhzYXRpc2ZpZWRQcm9wU2V0Lm1hcChwID0+IFtwLCByZXNvdXJjZVByb3BzW3BdXSkpO1xuICAgICAgY29uc3QgZGlzcGxheUNhbmRpZGF0ZVByb3BzID0gZm10ZGljdChjYW5kaWRhdGVQcm9wcyk7XG5cbiAgICAgIGNvbnN0IGltcG9ydFRoZVJlc291cmNlID0gYXdhaXQgdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTMxMDAucmVxKGAke2NoYWxrLmJsdWUocmVzb3VyY2VOYW1lKX0gKCR7cmVzb3VyY2VUeXBlfSk6IGltcG9ydCB3aXRoICR7Y2hhbGsueWVsbG93KGRpc3BsYXlDYW5kaWRhdGVQcm9wcyl9YCwge1xuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIHR5cGU6IHJlc291cmNlVHlwZSxcbiAgICAgICAgICBwcm9wczogY2FuZGlkYXRlUHJvcHMsXG4gICAgICAgICAgc3RyaW5naWZpZWRQcm9wczogZGlzcGxheUNhbmRpZGF0ZVByb3BzLFxuICAgICAgICB9LFxuICAgICAgfSkpO1xuICAgICAgaWYgKGltcG9ydFRoZVJlc291cmNlKSB7XG4gICAgICAgIHJldHVybiBjYW5kaWRhdGVQcm9wcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBnb3QgaGVyZSBhbmQgdGhlIHVzZXIgcmVqZWN0ZWQgYW55IGF2YWlsYWJsZSBpZGVudGlmaWVycywgdGhlbiBhcHBhcmVudGx5IHRoZXkgZG9uJ3Qgd2FudCB0aGUgcmVzb3VyY2UgYXQgYWxsXG4gICAgaWYgKHNhdGlzZmllZFByb3BTZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhjaGFsay5ncmV5KGBTa2lwcGluZyBpbXBvcnQgb2YgJHtyZXNvdXJjZU5hbWV9YCkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBXZSBjYW5ub3QgYXV0by1pbXBvcnQgdGhpcywgYXNrIHRoZSB1c2VyIGZvciBvbmUgb2YgdGhlIHByb3BzXG4gICAgLy8gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIGNhc2VzIGlzIHdoYXQgd2UgcHJpbnQ6IGZvciBtdWx0aXBsZSBwcm9wZXJ0aWVzLCB3ZSBwcmludCBhIHByZWFtYmxlXG4gICAgY29uc3QgcHJlZml4ID0gYCR7Y2hhbGsuYmx1ZShyZXNvdXJjZU5hbWUpfSAoJHtyZXNvdXJjZVR5cGV9KWA7XG4gICAgY29uc3QgcHJvbXB0UGF0dGVybiA9IGAke3ByZWZpeH06IGVudGVyICVzYDtcbiAgICBpZiAoaWRQcm9wU2V0cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBwcmVhbWJsZSA9IGAke3ByZWZpeH06IGVudGVyIG9uZSBvZiAke2lkUHJvcFNldHMubWFwKHggPT4gY2hhbGsuYmx1ZSh4LmpvaW4oJysnKSkpLmpvaW4oJywgJyl9IHRvIGltcG9ydCAobGVhdmUgYWxsIGVtcHR5IHRvIHNraXApYDtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhwcmVhbWJsZSk7XG4gICAgfVxuXG4gICAgLy8gRG8gdGhlIGlucHV0IGxvb3AgaGVyZVxuICAgIGZvciAoY29uc3QgaWRQcm9wcyBvZiBpZFByb3BTZXRzKSB7XG4gICAgICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgZm9yIChjb25zdCBpZFByb3Agb2YgaWRQcm9wcykge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdmFsdWUgZnJvbSB0aGUgdGVtcGxhdGUsIHVzZSBpdCBhcyBkZWZhdWx0LiBUaGlzIHdpbGwgb25seSBiZSBhIHBhcnRpYWxcbiAgICAgICAgLy8gaWRlbnRpZmllciBpZiBwcmVzZW50LCBvdGhlcndpc2Ugd2Ugd291bGQgaGF2ZSBkb25lIHRoZSBpbXBvcnQgYWxyZWFkeSBhYm92ZS5cbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gcmVzb3VyY2VQcm9wc1tpZFByb3BdID8/ICcnO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTMxMTAucmVxKFxuICAgICAgICAgIGZvcm1hdChwcm9tcHRQYXR0ZXJuLCBjaGFsay5ibHVlKGlkUHJvcCkpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlc291cmNlOiB7XG4gICAgICAgICAgICAgIG5hbWU6IHJlc291cmNlTmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogcmVzb3VyY2VUeXBlLFxuICAgICAgICAgICAgICBpZFByb3AsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzcG9uc2VEZXNjcmlwdGlvbjogZGVmYXVsdFZhbHVlID8gdW5kZWZpbmVkIDogJ2VtcHR5IHRvIHNraXAnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICApKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFtpZFByb3BdID0gcmVzcG9uc2U7XG4gICAgICAgIC8vIEFsc28gc3RpY2sgdGhpcyBwcm9wZXJ0eSBpbnRvICdyZXNvdXJjZVByb3BzJywgc28gdGhhdCBpdCBtYXkgYmUgcmV1c2VkIGJ5IGEgc3Vic2VxdWVudCBxdWVzdGlvblxuICAgICAgICAvLyAoZm9yIGEgZGlmZmVyZW50IGNvbXBvdW5kIGlkZW50aWZpZXIgdGhhdCBpbnZvbHZlcyB0aGUgc2FtZSBwcm9wZXJ0eSkuIEp1c3QgYSBzbWFsbCBVWCBlbmhhbmNlbWVudC5cbiAgICAgICAgcmVzb3VyY2VQcm9wc1tpZFByb3BdID0gcmVzcG9uc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSB1c2VyIGdhdmUgaW5wdXRzIGZvciBhbGwgdmFsdWVzLCB3ZSBhcmUgY29tcGxldGVcbiAgICAgIGlmIChPYmplY3Qua2V5cyhpbnB1dCkubGVuZ3RoID09PSBpZFByb3BzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5pbmZvKGNoYWxrLmdyZXkoYFNraXBwaW5nIGltcG9ydCBvZiAke3Jlc291cmNlTmFtZX1gKSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoZSBpbnRlcm5hbCBcInJlc291cmNlIG1hcHBpbmdcIiBzdHJ1Y3R1cmUgdG8gQ2xvdWRGb3JtYXRpb24gYWNjZXB0ZWQgXCJSZXNvdXJjZXNUb0ltcG9ydFwiIHN0cnVjdHVyZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBtYWtlUmVzb3VyY2VzVG9JbXBvcnQocmVzb3VyY2VNYXA6IEltcG9ydE1hcCk6IFByb21pc2U8UmVzb3VyY2VzVG9JbXBvcnQ+IHtcbiAgICByZXR1cm4gcmVzb3VyY2VNYXAuaW1wb3J0UmVzb3VyY2VzLm1hcChyZXMgPT4gKHtcbiAgICAgIExvZ2ljYWxSZXNvdXJjZUlkOiByZXMubG9naWNhbElkLFxuICAgICAgUmVzb3VyY2VUeXBlOiByZXMucmVzb3VyY2VEaWZmLm5ld1Jlc291cmNlVHlwZSEsXG4gICAgICBSZXNvdXJjZUlkZW50aWZpZXI6IHJlc291cmNlTWFwLnJlc291cmNlTWFwW3Jlcy5sb2dpY2FsSWRdLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgcmVzb3VyY2UgSUQgdG8gQ0RLIGNvbnN0cnVjdCB0cmVlIHBhdGhcbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCAtIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlICh0aGUga2V5IGluIHRoZSB0ZW1wbGF0ZSdzIFJlc291cmNlcyBzZWN0aW9uKVxuICAgKiBAcmV0dXJucyBGb3J3YXJkLXNsYXNoIHNlcGFyYXRlZCBwYXRoIG9mIHRoZSByZXNvdXJjZSBpbiBDREsgY29uc3RydWN0IHRyZWUsIGUuZy4gTXlTdGFjay9NeUJ1Y2tldC9SZXNvdXJjZVxuICAgKi9cbiAgcHJpdmF0ZSBkZXNjcmliZVJlc291cmNlKGxvZ2ljYWxJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjay50ZW1wbGF0ZT8uUmVzb3VyY2VzPy5bbG9naWNhbElkXT8uTWV0YWRhdGE/LlsnYXdzOmNkazpwYXRoJ10gPz8gbG9naWNhbElkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgQ0RLTWV0YWRhdGEgYW5kIE91dHB1dHMgaW4gdGhlIHRlbXBsYXRlIHNvIHRoYXQgb25seSByZXNvdXJjZXMgZm9yIGltcG9ydGluZyBhcmUgbGVmdC5cbiAgICogQHJldHVybnMgdGVtcGxhdGUgd2l0aCBpbXBvcnQgcmVzb3VyY2VzIG9ubHlcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKCkge1xuICAgIHJldHVybiByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXModGhpcy5zdGFjayk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZSB0aGF0IGlzIGltcG9ydGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRhYmxlUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBsb2dpY2FsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGRlZmluaXRpb24gaW4gdGhlIG5ldyB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VEZWZpbml0aW9uOiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSBkaWZmIGFzIHJlcG9ydGVkIGJ5IGBjbG91ZGZvcm1hdGlvbi1kaWZmYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlRGlmZjogUmVzb3VyY2VEaWZmZXJlbmNlO1xufVxuXG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgdG8gZXhlY3V0ZSBhbiBpbXBvcnQgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0TWFwIHtcbiAgLyoqXG4gICAqIE1hcHBpbmcgbG9naWNhbCBJRHMgdG8gcGh5c2ljYWwgbmFtZXNcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlTWFwOiBSZXNvdXJjZU1hcDtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdGlvbiBvZiByZXNvdXJjZXMgd2UgYXJlIGFjdHVhbGx5IGltcG9ydGluZ1xuICAgKlxuICAgKiBGb3IgZWFjaCBvZiB0aGUgcmVzb3VyY2VzIGluIHRoaXMgbGlzdCwgdGhlcmUgaXMgYSBjb3JyZXNwb25kaW5nIGVudHJ5IGluXG4gICAqIHRoZSBgcmVzb3VyY2VNYXBgIG1hcC5cbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydFJlc291cmNlczogSW1wb3J0YWJsZVJlc291cmNlW107XG59XG5cbmZ1bmN0aW9uIGZtdGRpY3Q8QT4oeHM6IFJlY29yZDxzdHJpbmcsIEE+KSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyh4cykubWFwKChbaywgdl0pID0+IGAke2t9PSR7dn1gKS5qb2luKCcsICcpO1xufVxuXG4vKipcbiAqIEFkZCBhIGRlZmF1bHQgYERlbGV0aW9uUG9saWN5YCBwb2xpY3kuXG4gKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ1JldGFpbicsIHRvIGxvd2VyIHJpc2sgb2YgdW5pbnRlbnRpb25hbGx5XG4gKiBkZWxldGluZyBzdGF0ZWZ1bCByZXNvdXJjZXMgaW4gdGhlIHByb2Nlc3Mgb2YgaW1wb3J0aW5nIHRvIENESy5cbiAqL1xuZnVuY3Rpb24gYWRkRGVmYXVsdERlbGV0aW9uUG9saWN5KHJlc291cmNlOiBhbnkpOiBhbnkge1xuICBpZiAocmVzb3VyY2UuRGVsZXRpb25Qb2xpY3kpIHtcbiAgICByZXR1cm4gcmVzb3VyY2U7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnJlc291cmNlLFxuICAgIERlbGV0aW9uUG9saWN5OiAnUmV0YWluJyxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNjb3ZlckltcG9ydGFibGVSZXNvdXJjZXNSZXN1bHQge1xuICByZWFkb25seSBhZGRpdGlvbnM6IEltcG9ydGFibGVSZXNvdXJjZVtdO1xuICByZWFkb25seSBoYXNOb25BZGRpdGlvbnM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMoc3RhY2s6Y3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gIGNvbnN0IHRlbXBsYXRlID0gc3RhY2sudGVtcGxhdGU7XG4gIGRlbGV0ZSB0ZW1wbGF0ZS5SZXNvdXJjZXMuQ0RLTWV0YWRhdGE7XG4gIGRlbGV0ZSB0ZW1wbGF0ZS5PdXRwdXRzO1xuICByZXR1cm4gdGVtcGxhdGU7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./importer\"), exports);\n__exportStar(require(\"./migrator\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW1wb3J0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9taWdyYXRvcic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceMigrator = void 0;\nconst chalk = require(\"chalk\");\nconst fs = require(\"fs-extra\");\nconst importer_1 = require(\"./importer\");\nconst util_1 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nclass ResourceMigrator {\n props;\n ioHelper;\n constructor(props) {\n this.props = props;\n this.ioHelper = props.ioHelper;\n }\n /**\n * Checks to see if a migrate.json file exists. If it does and the source is either `filepath` or\n * is in the same environment as the stack deployment, a new stack is created and the resources are\n * migrated to the stack using an IMPORT changeset. The normal deployment will resume after this is complete\n * to add back in any outputs and the CDKMetadata.\n */\n async tryMigrateResources(stacks, options) {\n const stack = stacks.stackArtifacts[0];\n const migrateDeployment = new importer_1.ResourceImporter(stack, {\n deployments: this.props.deployments,\n ioHelper: this.ioHelper,\n });\n const resourcesToImport = await this.tryGetResources(await migrateDeployment.resolveEnvironment());\n if (resourcesToImport) {\n await this.ioHelper.defaults.info(`${chalk.bold(stack.displayName)}: creating stack for resource migration...`);\n await this.ioHelper.defaults.info(`${chalk.bold(stack.displayName)}: importing resources into stack...`);\n await this.performResourceMigration(migrateDeployment, resourcesToImport, options);\n fs.rmSync('migrate.json');\n await this.ioHelper.defaults.info(`${chalk.bold(stack.displayName)}: applying CDKMetadata and Outputs to stack (if applicable)...`);\n }\n }\n /**\n * Creates a new stack with just the resources to be migrated\n */\n async performResourceMigration(migrateDeployment, resourcesToImport, options) {\n const startDeployTime = new Date().getTime();\n let elapsedDeployTime = 0;\n // Initial Deployment\n await migrateDeployment.importResourcesFromMigrate(resourcesToImport, {\n roleArn: options.roleArn,\n deploymentMethod: options.deploymentMethod,\n usePreviousParameters: true,\n rollback: options.rollback,\n });\n elapsedDeployTime = new Date().getTime() - startDeployTime;\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5002.msg(`'\\n✨ Resource migration time: ${(0, util_1.formatTime)(elapsedDeployTime)}s\\n'`, {\n duration: elapsedDeployTime,\n }));\n }\n async tryGetResources(environment) {\n try {\n const migrateFile = fs.readJsonSync('migrate.json', {\n encoding: 'utf-8',\n });\n const sourceEnv = migrateFile.Source.split(':');\n if (sourceEnv[0] === 'localfile' ||\n (sourceEnv[4] === environment.account && sourceEnv[3] === environment.region)) {\n return migrateFile.Resources;\n }\n }\n catch (e) {\n // Nothing to do\n }\n return undefined;\n }\n}\nexports.ResourceMigrator = ResourceMigrator;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtaWdyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQkFBK0I7QUFDL0IsK0JBQStCO0FBRS9CLHlDQUE4QztBQUM5QyxxQ0FBd0M7QUFHeEMsMkNBQWtEO0FBT2xELE1BQWEsZ0JBQWdCO0lBQ1YsS0FBSyxDQUF3QjtJQUM3QixRQUFRLENBQVc7SUFFcEMsWUFBbUIsS0FBNEI7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUF1QixFQUFFLE9BQWdDO1FBQ3hGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLDJCQUFnQixDQUFDLEtBQUssRUFBRTtZQUNwRCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7UUFDSCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUVuRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUNoSCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBRXpHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRW5GLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztRQUN0SSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLHdCQUF3QixDQUNwQyxpQkFBbUMsRUFDbkMsaUJBQW9DLEVBQ3BDLE9BQWdDO1FBRWhDLE1BQU0sZUFBZSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0MsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFMUIscUJBQXFCO1FBQ3JCLE1BQU0saUJBQWlCLENBQUMsMEJBQTBCLENBQUMsaUJBQWlCLEVBQUU7WUFDcEUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDMUMscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsaUJBQWlCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDM0QsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxJQUFBLGlCQUFVLEVBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFO1lBQ3pILFFBQVEsRUFBRSxpQkFBaUI7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUE4QjtRQUN6RCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRTtnQkFDbEQsUUFBUSxFQUFFLE9BQU87YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxTQUFTLEdBQUksV0FBVyxDQUFDLE1BQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVELElBQ0UsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVc7Z0JBQzVCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFDN0UsQ0FBQztnQkFDRCxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQWdCO1FBQ2xCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUE3RUQsNENBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBJbXBvcnREZXBsb3ltZW50T3B0aW9ucywgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuL2ltcG9ydGVyJztcbmltcG9ydCB7IFJlc291cmNlSW1wb3J0ZXIgfSBmcm9tICcuL2ltcG9ydGVyJztcbmltcG9ydCB7IGZvcm1hdFRpbWUgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU3RhY2tDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZU1pZ3JhdG9yUHJvcHMge1xuICBkZXBsb3ltZW50czogRGVwbG95bWVudHM7XG4gIGlvSGVscGVyOiBJb0hlbHBlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFJlc291cmNlTWlncmF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBSZXNvdXJjZU1pZ3JhdG9yUHJvcHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogUmVzb3VyY2VNaWdyYXRvclByb3BzKSB7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBwcm9wcy5pb0hlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdG8gc2VlIGlmIGEgbWlncmF0ZS5qc29uIGZpbGUgZXhpc3RzLiBJZiBpdCBkb2VzIGFuZCB0aGUgc291cmNlIGlzIGVpdGhlciBgZmlsZXBhdGhgIG9yXG4gICAqIGlzIGluIHRoZSBzYW1lIGVudmlyb25tZW50IGFzIHRoZSBzdGFjayBkZXBsb3ltZW50LCBhIG5ldyBzdGFjayBpcyBjcmVhdGVkIGFuZCB0aGUgcmVzb3VyY2VzIGFyZVxuICAgKiBtaWdyYXRlZCB0byB0aGUgc3RhY2sgdXNpbmcgYW4gSU1QT1JUIGNoYW5nZXNldC4gVGhlIG5vcm1hbCBkZXBsb3ltZW50IHdpbGwgcmVzdW1lIGFmdGVyIHRoaXMgaXMgY29tcGxldGVcbiAgICogdG8gYWRkIGJhY2sgaW4gYW55IG91dHB1dHMgYW5kIHRoZSBDREtNZXRhZGF0YS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB0cnlNaWdyYXRlUmVzb3VyY2VzKHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLCBvcHRpb25zOiBJbXBvcnREZXBsb3ltZW50T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tzLnN0YWNrQXJ0aWZhY3RzWzBdO1xuICAgIGNvbnN0IG1pZ3JhdGVEZXBsb3ltZW50ID0gbmV3IFJlc291cmNlSW1wb3J0ZXIoc3RhY2ssIHtcbiAgICAgIGRlcGxveW1lbnRzOiB0aGlzLnByb3BzLmRlcGxveW1lbnRzLFxuICAgICAgaW9IZWxwZXI6IHRoaXMuaW9IZWxwZXIsXG4gICAgfSk7XG4gICAgY29uc3QgcmVzb3VyY2VzVG9JbXBvcnQgPSBhd2FpdCB0aGlzLnRyeUdldFJlc291cmNlcyhhd2FpdCBtaWdyYXRlRGVwbG95bWVudC5yZXNvbHZlRW52aXJvbm1lbnQoKSk7XG5cbiAgICBpZiAocmVzb3VyY2VzVG9JbXBvcnQpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX06IGNyZWF0aW5nIHN0YWNrIGZvciByZXNvdXJjZSBtaWdyYXRpb24uLi5gKTtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX06IGltcG9ydGluZyByZXNvdXJjZXMgaW50byBzdGFjay4uLmApO1xuXG4gICAgICBhd2FpdCB0aGlzLnBlcmZvcm1SZXNvdXJjZU1pZ3JhdGlvbihtaWdyYXRlRGVwbG95bWVudCwgcmVzb3VyY2VzVG9JbXBvcnQsIG9wdGlvbnMpO1xuXG4gICAgICBmcy5ybVN5bmMoJ21pZ3JhdGUuanNvbicpO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5pbmZvKGAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfTogYXBwbHlpbmcgQ0RLTWV0YWRhdGEgYW5kIE91dHB1dHMgdG8gc3RhY2sgKGlmIGFwcGxpY2FibGUpLi4uYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgc3RhY2sgd2l0aCBqdXN0IHRoZSByZXNvdXJjZXMgdG8gYmUgbWlncmF0ZWRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcGVyZm9ybVJlc291cmNlTWlncmF0aW9uKFxuICAgIG1pZ3JhdGVEZXBsb3ltZW50OiBSZXNvdXJjZUltcG9ydGVyLFxuICAgIHJlc291cmNlc1RvSW1wb3J0OiBSZXNvdXJjZXNUb0ltcG9ydCxcbiAgICBvcHRpb25zOiBJbXBvcnREZXBsb3ltZW50T3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc3RhcnREZXBsb3lUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgbGV0IGVsYXBzZWREZXBsb3lUaW1lID0gMDtcblxuICAgIC8vIEluaXRpYWwgRGVwbG95bWVudFxuICAgIGF3YWl0IG1pZ3JhdGVEZXBsb3ltZW50LmltcG9ydFJlc291cmNlc0Zyb21NaWdyYXRlKHJlc291cmNlc1RvSW1wb3J0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICBkZXBsb3ltZW50TWV0aG9kOiBvcHRpb25zLmRlcGxveW1lbnRNZXRob2QsXG4gICAgICB1c2VQcmV2aW91c1BhcmFtZXRlcnM6IHRydWUsXG4gICAgICByb2xsYmFjazogb3B0aW9ucy5yb2xsYmFjayxcbiAgICB9KTtcblxuICAgIGVsYXBzZWREZXBsb3lUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydERlcGxveVRpbWU7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUwMDIubXNnKGAnXFxu4pyoICBSZXNvdXJjZSBtaWdyYXRpb24gdGltZTogJHtmb3JtYXRUaW1lKGVsYXBzZWREZXBsb3lUaW1lKX1zXFxuJ2AsIHtcbiAgICAgIGR1cmF0aW9uOiBlbGFwc2VkRGVwbG95VGltZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdHJ5R2V0UmVzb3VyY2VzKGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCk6IFByb21pc2U8UmVzb3VyY2VzVG9JbXBvcnQgfCB1bmRlZmluZWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWlncmF0ZUZpbGUgPSBmcy5yZWFkSnNvblN5bmMoJ21pZ3JhdGUuanNvbicsIHtcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNvdXJjZUVudiA9IChtaWdyYXRlRmlsZS5Tb3VyY2UgYXMgc3RyaW5nKS5zcGxpdCgnOicpO1xuICAgICAgaWYgKFxuICAgICAgICBzb3VyY2VFbnZbMF0gPT09ICdsb2NhbGZpbGUnIHx8XG4gICAgICAgIChzb3VyY2VFbnZbNF0gPT09IGVudmlyb25tZW50LmFjY291bnQgJiYgc291cmNlRW52WzNdID09PSBlbnZpcm9ubWVudC5yZWdpb24pXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG1pZ3JhdGVGaWxlLlJlc291cmNlcztcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBOb3RoaW5nIHRvIGRvXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./resource-metadata\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1tZXRhZGF0YSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resourceMetadata = resourceMetadata;\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\n/**\n * Attempts to read metadata for resources from a CloudFormation stack artifact\n *\n * @param stack - The CloudFormation stack to read from\n * @param logicalId - The logical ID of the resource to read\n *\n * @returns The resource metadata, or undefined if the resource was not found\n */\nfunction resourceMetadata(stack, logicalId) {\n const metadata = stack.metadata;\n if (!metadata) {\n return undefined;\n }\n for (const path of Object.keys(metadata)) {\n const entry = metadata[path]\n .filter((e) => e.type === cloud_assembly_schema_1.ArtifactMetadataEntryType.LOGICAL_ID)\n .find((e) => e.data === logicalId);\n if (entry) {\n return {\n entry,\n constructPath: simplifyConstructPath(path, stack.stackName),\n };\n }\n }\n return undefined;\n}\nfunction simplifyConstructPath(path, stackName) {\n path = path.replace(/\\/Resource$/, '');\n path = path.replace(/^\\//, ''); // remove \"/\" prefix\n // remove \"/\" prefix\n if (stackName) {\n if (path.startsWith(stackName + '/')) {\n path = path.slice(stackName.length + 1);\n }\n }\n return path;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlCQSw0Q0FrQkM7QUExQ0QsMEVBQStGO0FBZ0IvRjs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBa0MsRUFBRSxTQUFpQjtJQUNwRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxpREFBeUIsQ0FBQyxVQUFVLENBQUM7YUFDOUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixPQUFPO2dCQUNMLEtBQUs7Z0JBQ0wsYUFBYSxFQUFFLHFCQUFxQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDO2FBQzVELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLElBQVksRUFBRSxTQUFpQjtJQUM1RCxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBRXBELGdDQUFnQztJQUNoQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLCB0eXBlIE1ldGFkYXRhRW50cnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGVudHJ5IGZvciBhIHJlc291cmNlIHdpdGhpbiBhIENsb3VkRm9ybWF0aW9uIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UncyBtZXRhZGF0YSBhcyBkZWNsYXJlZCBpbiB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5OiBNZXRhZGF0YUVudHJ5O1xuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBwYXRoIG9mIHRoZSByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0UGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIHJlYWQgbWV0YWRhdGEgZm9yIHJlc291cmNlcyBmcm9tIGEgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3RcbiAqXG4gKiBAcGFyYW0gc3RhY2sgLSBUaGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgdG8gcmVhZCBmcm9tXG4gKiBAcGFyYW0gbG9naWNhbElkIC0gVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlIHRvIHJlYWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgcmVzb3VyY2UgbWV0YWRhdGEsIG9yIHVuZGVmaW5lZCBpZiB0aGUgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VNZXRhZGF0YShzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFJlc291cmNlTWV0YWRhdGEgfCB1bmRlZmluZWQge1xuICBjb25zdCBtZXRhZGF0YSA9IHN0YWNrLm1ldGFkYXRhO1xuICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyhtZXRhZGF0YSkpIHtcbiAgICBjb25zdCBlbnRyeSA9IG1ldGFkYXRhW3BhdGhdXG4gICAgICAuZmlsdGVyKChlKSA9PiBlLnR5cGUgPT09IEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRClcbiAgICAgIC5maW5kKChlKSA9PiBlLmRhdGEgPT09IGxvZ2ljYWxJZCk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbnRyeSxcbiAgICAgICAgY29uc3RydWN0UGF0aDogc2ltcGxpZnlDb25zdHJ1Y3RQYXRoKHBhdGgsIHN0YWNrLnN0YWNrTmFtZSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBzaW1wbGlmeUNvbnN0cnVjdFBhdGgocGF0aDogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZykge1xuICBwYXRoID0gcGF0aC5yZXBsYWNlKC9cXC9SZXNvdXJjZSQvLCAnJyk7XG4gIHBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC8vLCAnJyk7IC8vIHJlbW92ZSBcIi9cIiBwcmVmaXhcblxuICAvLyByZW1vdmUgXCI8c3RhY2stbmFtZT4vXCIgcHJlZml4XG4gIGlmIChzdGFja05hbWUpIHtcbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKHN0YWNrTmFtZSArICcvJykpIHtcbiAgICAgIHBhdGggPSBwYXRoLnNsaWNlKHN0YWNrTmFtZS5sZW5ndGggKyAxKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhdGg7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RWLock = void 0;\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * A single-writer/multi-reader lock on a directory\n *\n * It uses marker files with PIDs in them as a locking marker; the PIDs will be\n * checked for liveness, so that if the process exits without cleaning up the\n * files the lock is implicitly released.\n *\n * This class is not 100% race safe, but in practice it should be a lot\n * better than the 0 protection we have today.\n */\n/* c8 ignore start */ // code paths are unpredictable\nclass RWLock {\n directory;\n pidString;\n writerFile;\n readCounter = 0;\n constructor(directory) {\n this.directory = directory;\n this.pidString = `${process.pid}`;\n this.writerFile = path.join(this.directory, 'synth.lock');\n }\n /**\n * Acquire a writer lock.\n *\n * No other readers or writers must exist for the given directory.\n */\n async acquireWrite() {\n await this.assertNoOtherWriters();\n const readers = await this._currentReaders();\n if (readers.length > 0) {\n throw new toolkit_error_1.ToolkitError('ConcurrentReadLock', `Other CLIs (PID=${readers}) are currently reading from ${this.directory}. Invoke the CLI in sequence, or use '--output' to synth into different directories.`);\n }\n await writeFileAtomic(this.writerFile, this.pidString);\n let released = false;\n return {\n release: async () => {\n // Releasing needs a flag, otherwise we might delete a file that some other lock has created in the mean time.\n if (!released) {\n await deleteFile(this.writerFile);\n released = true;\n }\n },\n convertToReaderLock: async () => {\n // Acquire the read lock before releasing the write lock. Slightly less\n // chance of racing!\n const ret = await this.doAcquireRead();\n await deleteFile(this.writerFile);\n return ret;\n },\n };\n }\n /**\n * Acquire a read lock\n *\n * Will fail if there are any writers.\n */\n async acquireRead() {\n await this.assertNoOtherWriters();\n return this.doAcquireRead();\n }\n /**\n * Obtains the name fo a (new) `readerFile` to use. This includes a counter so\n * that if multiple threads of the same PID attempt to concurrently acquire\n * the same lock, they're guaranteed to use a different reader file name (only\n * one thread will ever execute JS code at once, guaranteeing the readCounter\n * is incremented \"atomically\" from the point of view of this PID.).\n */\n readerFile() {\n return path.join(this.directory, `read.${this.pidString}.${++this.readCounter}.lock`);\n }\n /**\n * Do the actual acquiring of a read lock.\n */\n async doAcquireRead() {\n const readerFile = this.readerFile();\n await writeFileAtomic(readerFile, this.pidString);\n let released = false;\n return {\n release: async () => {\n // Releasing needs a flag, otherwise we might delete a file that some other lock has created in the mean time.\n if (!released) {\n await deleteFile(readerFile);\n released = true;\n }\n },\n };\n }\n async assertNoOtherWriters() {\n const writer = await this._currentWriter();\n if (writer) {\n throw new toolkit_error_1.ToolkitError('ConcurrentWriteLock', `Another CLI (PID=${writer}) is currently synthing to ${this.directory}. Invoke the CLI in sequence, or use '--output' to synth into different directories.`);\n }\n }\n /**\n * Check the current writer (if any)\n *\n * Publicly accessible for testing purposes. Do not use.\n *\n * @internal\n */\n async _currentWriter() {\n const contents = await readFileIfExists(this.writerFile);\n if (!contents) {\n return undefined;\n }\n const pid = parseInt(contents, 10);\n if (!processExists(pid)) {\n // Do cleanup of a stray file now\n await deleteFile(this.writerFile);\n return undefined;\n }\n return pid;\n }\n /**\n * Check the current readers (if any)\n *\n * Publicly accessible for testing purposes. Do not use.\n *\n * @internal\n */\n async _currentReaders() {\n const re = /^read\\.([^.]+)\\.[^.]+\\.lock$/;\n const ret = new Array();\n let children;\n try {\n children = await fs_1.promises.readdir(this.directory, { encoding: 'utf-8' });\n }\n catch (e) {\n // Can't be locked if the directory doesn't exist\n if (e.code === 'ENOENT') {\n return [];\n }\n throw e;\n }\n for (const fname of children) {\n const m = fname.match(re);\n if (m) {\n const pid = parseInt(m[1], 10);\n if (processExists(pid)) {\n ret.push(pid);\n }\n else {\n // Do cleanup of a stray file now\n await deleteFile(path.join(this.directory, fname));\n }\n }\n }\n return ret;\n }\n}\nexports.RWLock = RWLock;\n/* c8 ignore start */ // code paths are unpredictable\nasync function readFileIfExists(filename) {\n try {\n return await fs_1.promises.readFile(filename, { encoding: 'utf-8' });\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return undefined;\n }\n throw e;\n }\n}\n/* c8 ignore stop */\nlet tmpCounter = 0;\n/* c8 ignore start */ // code paths are unpredictable\nasync function writeFileAtomic(filename, contents) {\n await fs_1.promises.mkdir(path.dirname(filename), { recursive: true });\n const tmpFile = `${filename}.${process.pid}_${++tmpCounter}`;\n await fs_1.promises.writeFile(tmpFile, contents, { encoding: 'utf-8' });\n await fs_1.promises.rename(tmpFile, filename);\n}\n/* c8 ignore stop */\n/* c8 ignore start */ // code paths are unpredictable\nasync function deleteFile(filename) {\n try {\n await fs_1.promises.unlink(filename);\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return;\n }\n throw e;\n }\n}\n/* c8 ignore stop */\n/* c8 ignore start */ // code paths are unpredictable\nfunction processExists(pid) {\n try {\n process.kill(pid, 0);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/* c8 ignore stop */\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicndsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicndsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0IsNERBQXdEO0FBRXhEOzs7Ozs7Ozs7R0FTRztBQUNILHFCQUFxQixDQUFDLCtCQUErQjtBQUNyRCxNQUFhLE1BQU07SUFLVztJQUpYLFNBQVMsQ0FBUztJQUNsQixVQUFVLENBQVM7SUFDNUIsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUV4QixZQUE0QixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRWxDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksNEJBQVksQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsT0FBTyxnQ0FBZ0MsSUFBSSxDQUFDLFNBQVMsc0ZBQXNGLENBQUMsQ0FBQztRQUMvTSxDQUFDO1FBRUQsTUFBTSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xCLDhHQUE4RztnQkFDOUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFD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QUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFDRCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIEEgc2luZ2xlLXdyaXRlci9tdWx0aS1yZWFkZXIgbG9jayBvbiBhIGRpcmVjdG9yeVxuICpcbiAqIEl0IHVzZXMgbWFya2VyIGZpbGVzIHdpdGggUElEcyBpbiB0aGVtIGFzIGEgbG9ja2luZyBtYXJrZXI7IHRoZSBQSURzIHdpbGwgYmVcbiAqIGNoZWNrZWQgZm9yIGxpdmVuZXNzLCBzbyB0aGF0IGlmIHRoZSBwcm9jZXNzIGV4aXRzIHdpdGhvdXQgY2xlYW5pbmcgdXAgdGhlXG4gKiBmaWxlcyB0aGUgbG9jayBpcyBpbXBsaWNpdGx5IHJlbGVhc2VkLlxuICpcbiAqIFRoaXMgY2xhc3MgaXMgbm90IDEwMCUgcmFjZSBzYWZlLCBidXQgaW4gcHJhY3RpY2UgaXQgc2hvdWxkIGJlIGEgbG90XG4gKiBiZXR0ZXIgdGhhbiB0aGUgMCBwcm90ZWN0aW9uIHdlIGhhdmUgdG9kYXkuXG4gKi9cbi8qIGM4IGlnbm9yZSBzdGFydCAqLyAvLyBjb2RlIHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlXG5leHBvcnQgY2xhc3MgUldMb2NrIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwaWRTdHJpbmc6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJGaWxlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZENvdW50ZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZykge1xuICAgIHRoaXMucGlkU3RyaW5nID0gYCR7cHJvY2Vzcy5waWR9YDtcblxuICAgIHRoaXMud3JpdGVyRmlsZSA9IHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSwgJ3N5bnRoLmxvY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3F1aXJlIGEgd3JpdGVyIGxvY2suXG4gICAqXG4gICAqIE5vIG90aGVyIHJlYWRlcnMgb3Igd3JpdGVycyBtdXN0IGV4aXN0IGZvciB0aGUgZ2l2ZW4gZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjcXVpcmVXcml0ZSgpOiBQcm9taXNlPElXcml0ZUxvY2s+IHtcbiAgICBhd2FpdCB0aGlzLmFzc2VydE5vT3RoZXJXcml0ZXJzKCk7XG5cbiAgICBjb25zdCByZWFkZXJzID0gYXdhaXQgdGhpcy5fY3VycmVudFJlYWRlcnMoKTtcbiAgICBpZiAocmVhZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDb25jdXJyZW50UmVhZExvY2snLCBgT3RoZXIgQ0xJcyAoUElEPSR7cmVhZGVyc30pIGFyZSBjdXJyZW50bHkgcmVhZGluZyBmcm9tICR7dGhpcy5kaXJlY3Rvcnl9LiBJbnZva2UgdGhlIENMSSBpbiBzZXF1ZW5jZSwgb3IgdXNlICctLW91dHB1dCcgdG8gc3ludGggaW50byBkaWZmZXJlbnQgZGlyZWN0b3JpZXMuYCk7XG4gICAgfVxuXG4gICAgYXdhaXQgd3JpdGVGaWxlQXRvbWljKHRoaXMud3JpdGVyRmlsZSwgdGhpcy5waWRTdHJpbmcpO1xuXG4gICAgbGV0IHJlbGVhc2VkID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlbGVhc2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gUmVsZWFzaW5nIG5lZWRzIGEgZmxhZywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGRlbGV0ZSBhIGZpbGUgdGhhdCBzb21lIG90aGVyIGxvY2sgaGFzIGNyZWF0ZWQgaW4gdGhlIG1lYW4gdGltZS5cbiAgICAgICAgaWYgKCFyZWxlYXNlZCkge1xuICAgICAgICAgIGF3YWl0IGRlbGV0ZUZpbGUodGhpcy53cml0ZXJGaWxlKTtcbiAgICAgICAgICByZWxlYXNlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjb252ZXJ0VG9SZWFkZXJMb2NrOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIEFjcXVpcmUgdGhlIHJlYWQgbG9jayBiZWZvcmUgcmVsZWFzaW5nIHRoZSB3cml0ZSBsb2NrLiBTbGlnaHRseSBsZXNzXG4gICAgICAgIC8vIGNoYW5jZSBvZiByYWNpbmchXG4gICAgICAgIGNvbnN0IHJldCA9IGF3YWl0IHRoaXMuZG9BY3F1aXJlUmVhZCgpO1xuICAgICAgICBhd2FpdCBkZWxldGVGaWxlKHRoaXMud3JpdGVyRmlsZSk7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWNxdWlyZSBhIHJlYWQgbG9ja1xuICAgKlxuICAgKiBXaWxsIGZhaWwgaWYgdGhlcmUgYXJlIGFueSB3cml0ZXJzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjcXVpcmVSZWFkKCk6IFByb21pc2U8SVJlYWRMb2NrPiB7XG4gICAgYXdhaXQgdGhpcy5hc3NlcnROb090aGVyV3JpdGVycygpO1xuICAgIHJldHVybiB0aGlzLmRvQWNxdWlyZVJlYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRhaW5zIHRoZSBuYW1lIGZvIGEgKG5ldykgYHJlYWRlckZpbGVgIHRvIHVzZS4gVGhpcyBpbmNsdWRlcyBhIGNvdW50ZXIgc29cbiAgICogdGhhdCBpZiBtdWx0aXBsZSB0aHJlYWRzIG9mIHRoZSBzYW1lIFBJRCBhdHRlbXB0IHRvIGNvbmN1cnJlbnRseSBhY3F1aXJlXG4gICAqIHRoZSBzYW1lIGxvY2ssIHRoZXkncmUgZ3VhcmFudGVlZCB0byB1c2UgYSBkaWZmZXJlbnQgcmVhZGVyIGZpbGUgbmFtZSAob25seVxuICAgKiBvbmUgdGhyZWFkIHdpbGwgZXZlciBleGVjdXRlIEpTIGNvZGUgYXQgb25jZSwgZ3VhcmFudGVlaW5nIHRoZSByZWFkQ291bnRlclxuICAgKiBpcyBpbmNyZW1lbnRlZCBcImF0b21pY2FsbHlcIiBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoaXMgUElELikuXG4gICAqL1xuICBwcml2YXRlIHJlYWRlckZpbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5LCBgcmVhZC4ke3RoaXMucGlkU3RyaW5nfS4keysrdGhpcy5yZWFkQ291bnRlcn0ubG9ja2ApO1xuICB9XG5cbiAgLyoqXG4gICAqIERvIHRoZSBhY3R1YWwgYWNxdWlyaW5nIG9mIGEgcmVhZCBsb2NrLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkb0FjcXVpcmVSZWFkKCk6IFByb21pc2U8SVJlYWRMb2NrPiB7XG4gICAgY29uc3QgcmVhZGVyRmlsZSA9IHRoaXMucmVhZGVyRmlsZSgpO1xuICAgIGF3YWl0IHdyaXRlRmlsZUF0b21pYyhyZWFkZXJGaWxlLCB0aGlzLnBpZFN0cmluZyk7XG5cbiAgICBsZXQgcmVsZWFzZWQgPSBmYWxzZTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVsZWFzZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBSZWxlYXNpbmcgbmVlZHMgYSBmbGFnLCBvdGhlcndpc2Ugd2UgbWlnaHQgZGVsZXRlIGEgZmlsZSB0aGF0IHNvbWUgb3RoZXIgbG9jayBoYXMgY3JlYXRlZCBpbiB0aGUgbWVhbiB0aW1lLlxuICAgICAgICBpZiAoIXJlbGVhc2VkKSB7XG4gICAgICAgICAgYXdhaXQgZGVsZXRlRmlsZShyZWFkZXJGaWxlKTtcbiAgICAgICAgICByZWxlYXNlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYXNzZXJ0Tm9PdGhlcldyaXRlcnMoKSB7XG4gICAgY29uc3Qgd3JpdGVyID0gYXdhaXQgdGhpcy5fY3VycmVudFdyaXRlcigpO1xuICAgIGlmICh3cml0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0NvbmN1cnJlbnRXcml0ZUxvY2snLCBgQW5vdGhlciBDTEkgKFBJRD0ke3dyaXRlcn0pIGlzIGN1cnJlbnRseSBzeW50aGluZyB0byAke3RoaXMuZGlyZWN0b3J5fS4gSW52b2tlIHRoZSBDTEkgaW4gc2VxdWVuY2UsIG9yIHVzZSAnLS1vdXRwdXQnIHRvIHN5bnRoIGludG8gZGlmZmVyZW50IGRpcmVjdG9yaWVzLmApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgY3VycmVudCB3cml0ZXIgKGlmIGFueSlcbiAgICpcbiAgICogUHVibGljbHkgYWNjZXNzaWJsZSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRG8gbm90IHVzZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgX2N1cnJlbnRXcml0ZXIoKTogUHJvbWlzZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBjb250ZW50cyA9IGF3YWl0IHJlYWRGaWxlSWZFeGlzdHModGhpcy53cml0ZXJGaWxlKTtcbiAgICBpZiAoIWNvbnRlbnRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHBpZCA9IHBhcnNlSW50KGNvbnRlbnRzLCAxMCk7XG4gICAgaWYgKCFwcm9jZXNzRXhpc3RzKHBpZCkpIHtcbiAgICAgIC8vIERvIGNsZWFudXAgb2YgYSBzdHJheSBmaWxlIG5vd1xuICAgICAgYXdhaXQgZGVsZXRlRmlsZSh0aGlzLndyaXRlckZpbGUpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoZSBjdXJyZW50IHJlYWRlcnMgKGlmIGFueSlcbiAgICpcbiAgICogUHVibGljbHkgYWNjZXNzaWJsZSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRG8gbm90IHVzZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgX2N1cnJlbnRSZWFkZXJzKCk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgICBjb25zdCByZSA9IC9ecmVhZFxcLihbXi5dKylcXC5bXi5dK1xcLmxvY2skLztcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXG4gICAgbGV0IGNoaWxkcmVuO1xuICAgIHRyeSB7XG4gICAgICBjaGlsZHJlbiA9IGF3YWl0IGZzLnJlYWRkaXIodGhpcy5kaXJlY3RvcnksIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBDYW4ndCBiZSBsb2NrZWQgaWYgdGhlIGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0XG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZm5hbWUgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IG0gPSBmbmFtZS5tYXRjaChyZSk7XG4gICAgICBpZiAobSkge1xuICAgICAgICBjb25zdCBwaWQgPSBwYXJzZUludChtWzFdLCAxMCk7XG4gICAgICAgIGlmIChwcm9jZXNzRXhpc3RzKHBpZCkpIHtcbiAgICAgICAgICByZXQucHVzaChwaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERvIGNsZWFudXAgb2YgYSBzdHJheSBmaWxlIG5vd1xuICAgICAgICAgIGF3YWl0IGRlbGV0ZUZpbGUocGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5LCBmbmFtZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cbi8qIGM4IGlnbm9yZSBzdG9wICovXG5cbi8qKlxuICogQW4gYWNxdWlyZWQgbG9ja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWFkTG9jayB7XG4gIC8qKlxuICAgKiBSZWxlYXNlIHRoZSBsb2NrLiBDYW4gYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLlxuICAgKi9cbiAgcmVsZWFzZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIEFuIGFjcXVpcmVkIHdyaXRlciBsb2NrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdyaXRlTG9jayBleHRlbmRzIElSZWFkTG9jayB7XG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoZSB3cml0ZXIgbG9jayB0byBhIHJlYWRlciBsb2NrXG4gICAqL1xuICBjb252ZXJ0VG9SZWFkZXJMb2NrKCk6IFByb21pc2U8SVJlYWRMb2NrPjtcbn1cblxuLyogYzggaWdub3JlIHN0YXJ0ICovIC8vIGNvZGUgcGF0aHMgYXJlIHVucHJlZGljdGFibGVcbmFzeW5jIGZ1bmN0aW9uIHJlYWRGaWxlSWZFeGlzdHMoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuLyogYzggaWdub3JlIHN0b3AgKi9cblxubGV0IHRtcENvdW50ZXIgPSAwO1xuLyogYzggaWdub3JlIHN0YXJ0ICovIC8vIGNvZGUgcGF0aHMgYXJlIHVucHJlZGljdGFibGVcbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZUF0b21pYyhmaWxlbmFtZTogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGZzLm1rZGlyKHBhdGguZGlybmFtZShmaWxlbmFtZSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCB0bXBGaWxlID0gYCR7ZmlsZW5hbWV9LiR7cHJvY2Vzcy5waWR9XyR7Kyt0bXBDb3VudGVyfWA7XG4gIGF3YWl0IGZzLndyaXRlRmlsZSh0bXBGaWxlLCBjb250ZW50cywgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgYXdhaXQgZnMucmVuYW1lKHRtcEZpbGUsIGZpbGVuYW1lKTtcbn1cbi8qIGM4IGlnbm9yZSBzdG9wICovXG5cbi8qIGM4IGlnbm9yZSBzdGFydCAqLyAvLyBjb2RlIHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlXG5hc3luYyBmdW5jdGlvbiBkZWxldGVGaWxlKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy51bmxpbmsoZmlsZW5hbWUpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi8gLy8gY29kZSBwYXRocyBhcmUgdW5wcmVkaWN0YWJsZVxuZnVuY3Rpb24gcHJvY2Vzc0V4aXN0cyhwaWQ6IG51bWJlcikge1xuICB0cnkge1xuICAgIHByb2Nlc3Mua2lsbChwaWQsIDApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.TRANSIENT_CONTEXT_KEY = void 0;\nconst os = require(\"os\");\nconst fs_path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst util = require(\"../util\");\n/**\n * If a context value is an object with this key set to a truthy value, it won't be saved to cdk.context.json\n */\nexports.TRANSIENT_CONTEXT_KEY = '$dontSaveContext';\n/**\n * A single bag of settings\n */\nclass Settings {\n settings;\n readOnly;\n static mergeAll(...settings) {\n let ret = new Settings();\n for (const setting of settings) {\n ret = ret.merge(setting);\n }\n return ret;\n }\n constructor(settings = {}, readOnly = false) {\n this.settings = settings;\n this.readOnly = readOnly;\n }\n async save(fileName) {\n const expanded = expandHomeDir(fileName);\n await fs.writeJson(expanded, stripTransientValues(this.settings), {\n spaces: 2,\n });\n return this;\n }\n get all() {\n return this.get([]);\n }\n merge(other) {\n return new Settings(util.deepMerge(this.settings, other.settings));\n }\n subSettings(keyPrefix) {\n return new Settings(this.get(keyPrefix) || {}, false);\n }\n makeReadOnly() {\n return new Settings(this.settings, true);\n }\n clear() {\n if (this.readOnly) {\n throw new toolkit_error_1.ToolkitError('SettingsReadOnly', 'Cannot clear(): settings are readonly');\n }\n this.settings = {};\n }\n get empty() {\n return Object.keys(this.settings).length === 0;\n }\n get(path) {\n return util.deepClone(util.deepGet(this.settings, path));\n }\n set(path, value) {\n if (this.readOnly) {\n throw new toolkit_error_1.ToolkitError('SettingsReadOnly', `Can't set ${path}: settings object is readonly`);\n }\n if (path.length === 0) {\n // deepSet can't handle this case\n this.settings = value;\n }\n else {\n util.deepSet(this.settings, path, value);\n }\n return this;\n }\n unset(path) {\n this.set(path, undefined);\n }\n}\nexports.Settings = Settings;\nfunction expandHomeDir(x) {\n if (x.startsWith('~')) {\n return fs_path.join(os.homedir(), x.slice(1));\n }\n return x;\n}\n/**\n * Return all context value that are not transient context values\n */\nfunction stripTransientValues(obj) {\n const ret = {};\n for (const [key, value] of Object.entries(obj)) {\n if (!isTransientValue(value)) {\n ret[key] = value;\n }\n }\n return ret;\n}\n/**\n * Return whether the given value is a transient context value\n *\n * Values that are objects with a magic key set to a truthy value are considered transient.\n */\nfunction isTransientValue(value) {\n return (typeof value === 'object' &&\n value !== null &&\n value[exports.TRANSIENT_CONTEXT_KEY]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsZ0NBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQiw0REFBd0Q7QUFDeEQsZ0NBQWdDO0FBSWhDOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztBQUV4RDs7R0FFRztBQUNILE1BQWEsUUFBUTtJQVVUO0lBQ1E7SUFWWCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBb0I7UUFDNUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUN6QixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQy9CLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUNVLFdBQXdCLEVBQUUsRUFDbEIsV0FBVyxLQUFLO1FBRHhCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFFbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBZ0I7UUFDaEMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hFLE1BQU0sRUFBRSxDQUFDO1NBQ1YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBZTtRQUMxQixPQUFPLElBQUksUUFBUSxDQUFDLElB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OlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgZnNfcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBTZXR0aW5nc01hcCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbi8qKlxuICogSWYgYSBjb250ZXh0IHZhbHVlIGlzIGFuIG9iamVjdCB3aXRoIHRoaXMga2V5IHNldCB0byBhIHRydXRoeSB2YWx1ZSwgaXQgd29uJ3QgYmUgc2F2ZWQgdG8gY2RrLmNvbnRleHQuanNvblxuICovXG5leHBvcnQgY29uc3QgVFJBTlNJRU5UX0NPTlRFWFRfS0VZID0gJyRkb250U2F2ZUNvbnRleHQnO1xuXG4vKipcbiAqIEEgc2luZ2xlIGJhZyBvZiBzZXR0aW5nc1xuICovXG5leHBvcnQgY2xhc3MgU2V0dGluZ3Mge1xuICBwdWJsaWMgc3RhdGljIG1lcmdlQWxsKC4uLnNldHRpbmdzOiBTZXR0aW5nc1tdKTogU2V0dGluZ3Mge1xuICAgIGxldCByZXQgPSBuZXcgU2V0dGluZ3MoKTtcbiAgICBmb3IgKGNvbnN0IHNldHRpbmcgb2Ygc2V0dGluZ3MpIHtcbiAgICAgIHJldCA9IHJldC5tZXJnZShzZXR0aW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzTWFwID0ge30sXG4gICAgcHVibGljIHJlYWRvbmx5IHJlYWRPbmx5ID0gZmFsc2UsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmUoZmlsZU5hbWU6IHN0cmluZyk6IFByb21pc2U8dGhpcz4ge1xuICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kSG9tZURpcihmaWxlTmFtZSk7XG4gICAgYXdhaXQgZnMud3JpdGVKc29uKGV4cGFuZGVkLCBzdHJpcFRyYW5zaWVudFZhbHVlcyh0aGlzLnNldHRpbmdzKSwge1xuICAgICAgc3BhY2VzOiAyLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGwoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoW10pO1xuICB9XG5cbiAgcHVibGljIG1lcmdlKG90aGVyOiBTZXR0aW5ncyk6IFNldHRpbmdzIHtcbiAgICByZXR1cm4gbmV3IFNldHRpbmdzKHV0aWwuZGVlcE1lcmdlKHRoaXMuc2V0dGluZ3MsIG90aGVyLnNldHRpbmdzKSk7XG4gIH1cblxuICBwdWJsaWMgc3ViU2V0dGluZ3Moa2V5UHJlZml4OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBuZXcgU2V0dGluZ3ModGhpcy5nZXQoa2V5UHJlZml4KSB8fCB7fSwgZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG1ha2VSZWFkT25seSgpOiBTZXR0aW5ncyB7XG4gICAgcmV0dXJuIG5ldyBTZXR0aW5ncyh0aGlzLnNldHRpbmdzLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2V0dGluZ3NSZWFkT25seScsICdDYW5ub3QgY2xlYXIoKTogc2V0dGluZ3MgYXJlIHJlYWRvbmx5Jyk7XG4gICAgfVxuICAgIHRoaXMuc2V0dGluZ3MgPSB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc2V0dGluZ3MpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQocGF0aDogc3RyaW5nW10pOiBhbnkge1xuICAgIHJldHVybiB1dGlsLmRlZXBDbG9uZSh1dGlsLmRlZXBHZXQodGhpcy5zZXR0aW5ncywgcGF0aCkpO1xuICB9XG5cbiAgcHVibGljIHNldChwYXRoOiBzdHJpbmdbXSwgdmFsdWU6IGFueSk6IFNldHRpbmdzIHtcbiAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2V0dGluZ3NSZWFkT25seScsIGBDYW4ndCBzZXQgJHtwYXRofTogc2V0dGluZ3Mgb2JqZWN0IGlzIHJlYWRvbmx5YCk7XG4gICAgfVxuICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gZGVlcFNldCBjYW4ndCBoYW5kbGUgdGhpcyBjYXNlXG4gICAgICB0aGlzLnNldHRpbmdzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHV0aWwuZGVlcFNldCh0aGlzLnNldHRpbmdzLCBwYXRoLCB2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHVuc2V0KHBhdGg6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZXQocGF0aCwgdW5kZWZpbmVkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBhbmRIb21lRGlyKHg6IHN0cmluZykge1xuICBpZiAoeC5zdGFydHNXaXRoKCd+JykpIHtcbiAgICByZXR1cm4gZnNfcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgeC5zbGljZSgxKSk7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBjb250ZXh0IHZhbHVlIHRoYXQgYXJlIG5vdCB0cmFuc2llbnQgY29udGV4dCB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gc3RyaXBUcmFuc2llbnRWYWx1ZXMob2JqOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gIGNvbnN0IHJldDogYW55ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICBpZiAoIWlzVHJhbnNpZW50VmFsdWUodmFsdWUpKSB7XG4gICAgICByZXRba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHRyYW5zaWVudCBjb250ZXh0IHZhbHVlXG4gKlxuICogVmFsdWVzIHRoYXQgYXJlIG9iamVjdHMgd2l0aCBhIG1hZ2ljIGtleSBzZXQgdG8gYSB0cnV0aHkgdmFsdWUgYXJlIGNvbnNpZGVyZWQgdHJhbnNpZW50LlxuICovXG5mdW5jdGlvbiBpc1RyYW5zaWVudFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodmFsdWUgYXMgYW55KVtUUkFOU0lFTlRfQ09OVEVYVF9LRVldXG4gICk7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackProgressMonitor = void 0;\n__exportStar(require(\"./stack-activity-monitor\"), exports);\n__exportStar(require(\"./stack-event-poller\"), exports);\n__exportStar(require(\"./stack-status\"), exports);\nvar stack_progress_monitor_1 = require(\"./stack-progress-monitor\");\nObject.defineProperty(exports, \"StackProgressMonitor\", { enumerable: true, get: function () { return stack_progress_monitor_1.StackProgressMonitor; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF5QztBQUN6Qyx1REFBcUM7QUFDckMsaURBQStCO0FBRS9CLG1FQUFnRTtBQUF2RCw4SEFBQSxvQkFBb0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RhY2stYWN0aXZpdHktbW9uaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLWV2ZW50LXBvbGxlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLXN0YXR1cyc7XG5cbmV4cG9ydCB7IFN0YWNrUHJvZ3Jlc3NNb25pdG9yIH0gZnJvbSAnLi9zdGFjay1wcm9ncmVzcy1tb25pdG9yJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackActivityMonitor = void 0;\nexports.extractErrorCode = extractErrorCode;\nconst util = require(\"util\");\nconst uuid = require(\"uuid\");\nconst stack_event_poller_1 = require(\"./stack-event-poller\");\nconst stack_progress_monitor_1 = require(\"./stack-progress-monitor\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nconst resource_metadata_1 = require(\"../resource-metadata/resource-metadata\");\n/**\n * Drives the monitoring of a Stack deployment\n *\n * ```\n * ┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐\n * │ Stack │ poll() │ Stack │ process(ev) │ Stack │\n * │ EventPoller │◀───────│ ActivityMonitor │─────────────▶│ ProgressMonitor │\n * └───────────────────────┘ └───────────────────────┘ └───────────────────────┘\n * ```\n */\nclass StackActivityMonitor {\n /**\n * The poller used to read stack events\n */\n poller;\n /**\n * Fetch new activity every 1 second\n * Printers can decide to update a view less frequently if desired\n */\n pollingInterval;\n /**\n * A list of all non-cancellation errors we have seen.\n *\n * By the nature of the order we see events in, will be ordered from oldest to newest.\n */\n _errors = [];\n monitorId;\n progressMonitor;\n /**\n * Current tick timer\n */\n tickTimer;\n /**\n * Set to the activity of reading the current events\n */\n readPromise;\n ioHelper;\n stackName;\n stack;\n cfn;\n envResources;\n constructor({ cfn, ioHelper, stack, stackName, resourcesTotal, changeSetCreationTime, pollingInterval = 2_000, envResources, }) {\n this.ioHelper = ioHelper;\n this.stack = stack;\n this.stackName = stackName;\n this.cfn = cfn;\n this.envResources = envResources;\n this.progressMonitor = new stack_progress_monitor_1.StackProgressMonitor(resourcesTotal);\n this.pollingInterval = pollingInterval;\n this.poller = new stack_event_poller_1.StackEventPoller(cfn, {\n stackName,\n startTime: changeSetCreationTime?.getTime() ?? Date.now(),\n });\n }\n /**\n * Return error messages of all encountered errors (that aren't cancellations)\n */\n get allErrorMessages() {\n return this._errors.map(e => e.ResourceStatusReason ?? '');\n }\n /**\n * Return error codeds of all encountered errors (that aren't cancellations nor stack errors)\n *\n * We don't need to include nested stack errors because our poller will poll the nested stack,\n * and have returned the actual error as well.\n */\n get allErrorCodes() {\n return this._errors\n .filter(util_1.isRegularResourceEvent)\n .map(extractErrorCode);\n }\n /**\n * Take our best guess at the error code of the root cause\n *\n * The first error that occurs is the root cause.\n */\n get rootCauseErrorCode() {\n return this.allErrorCodes[0];\n }\n async start() {\n this.monitorId = uuid.v4();\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5501.msg(`Deploying ${this.stackName}`, {\n deployment: this.monitorId,\n stack: this.stack,\n stackName: this.stackName,\n resourcesTotal: this.progressMonitor.total,\n }));\n this.scheduleNextTick();\n return this;\n }\n async stop() {\n const oldMonitorId = this.monitorId;\n this.monitorId = undefined;\n if (this.tickTimer) {\n clearTimeout(this.tickTimer);\n }\n // Do a final poll for all events. This is to handle the situation where DescribeStackStatus\n // already returned an error, but the monitor hasn't seen all the events yet and we'd end\n // up not printing the failure reason to users.\n await this.finalPollToEnd(oldMonitorId);\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5503.msg(`Completed ${this.stackName}`, {\n deployment: oldMonitorId,\n stack: this.stack,\n stackName: this.stackName,\n resourcesTotal: this.progressMonitor.total,\n }));\n }\n scheduleNextTick() {\n if (!this.monitorId) {\n return;\n }\n this.tickTimer = setTimeout(() => void this.tick(), this.pollingInterval);\n }\n async tick() {\n if (!this.monitorId) {\n return;\n }\n try {\n this.readPromise = this.readNewEvents(this.monitorId);\n await this.readPromise;\n this.readPromise = undefined;\n // We might have been stop()ped while the network call was in progress.\n if (!this.monitorId) {\n return;\n }\n }\n catch (e) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E5500.msg(util.format('Error occurred while monitoring stack: %s', e), { error: e }));\n }\n this.scheduleNextTick();\n }\n findMetadataFor(logicalId) {\n const metadata = this.stack.metadata;\n if (!logicalId || !metadata) {\n return undefined;\n }\n return (0, resource_metadata_1.resourceMetadata)(this.stack, logicalId);\n }\n /**\n * Trims leading/trailing whitespace, collapses all internal whitespace\n * (including newlines) to a single space, and truncates to `maxChars`\n * characters, appending `[...truncated]` when the original was longer.\n */\n normalizeMessage(message, maxChars = 400) {\n const normalized = message.trim().replace(/\\s+/g, ' ');\n return normalized.length > maxChars\n ? normalized.substring(0, maxChars) + '[...truncated]'\n : normalized;\n }\n /**\n * Fetches Guard Hook annotation details via GetHookResult API and formats them\n * into a human-readable string. Returns undefined if the fetch fails or there\n * are no failed annotations.\n */\n async fetchGuardHookAnnotations(hookInvocationId) {\n try {\n const result = await this.cfn.getHookResult({ HookResultId: hookInvocationId });\n const annotations = result.Annotations ?? [];\n const failedAnnotations = annotations.filter((a) => a.Status === 'FAILED');\n if (failedAnnotations.length === 0) {\n return undefined;\n }\n const lines = ['NonCompliant Rules:', ''];\n for (const annotation of failedAnnotations) {\n if (annotation.AnnotationName) {\n lines.push(`[${annotation.AnnotationName}]`);\n }\n if (annotation.StatusMessage) {\n lines.push(`• ${this.normalizeMessage(annotation.StatusMessage)}`);\n }\n if (annotation.RemediationMessage) {\n lines.push(`Remediation: ${this.normalizeMessage(annotation.RemediationMessage)}`);\n }\n lines.push('');\n }\n return lines.join('\\n').trimEnd();\n }\n catch (e) {\n const errorMessage = e instanceof Error ? e.message : String(e);\n const isPermissionsError = e.name === 'AccessDeniedException' ||\n (typeof errorMessage === 'string' && errorMessage.toLowerCase().includes('not authorized to perform: cloudformation:gethookresult'));\n if (isPermissionsError && this.envResources) {\n let currentVersion = undefined;\n try {\n currentVersion = (await this.envResources.lookupToolkit()).version;\n }\n catch {\n // ignore errors looking up the bootstrap version\n }\n await this.ioHelper.defaults.warn(util.format(`Failed to fetch result details for Hook invocation ${hookInvocationId}: ${errorMessage}. Make sure you have permissions to call the GetHookResult API, or re-bootstrap your environment by running 'cdk bootstrap' to update the Bootstrap CDK Toolkit stack.\n 'Bootstrap toolkit stack version 31 or later is needed; current version: ${currentVersion ?? 'unknown'}.`));\n }\n else {\n await this.ioHelper.defaults.warn(util.format('Failed to fetch Guard Hook details for invocation %s: %s', hookInvocationId, errorMessage));\n }\n return undefined;\n }\n }\n /**\n * Reads all new events from the stack history\n *\n * The events are returned in chronological order by the underlying poller.\n */\n async readNewEvents(monitorId) {\n const pollEvents = await this.poller.poll();\n for (const resourceEvent of pollEvents) {\n this.progressMonitor.process(resourceEvent.event);\n // If this is a failed Guard Hook event with an invocation ID, fetch annotations\n if (resourceEvent.event.HookInvocationId) {\n const annotations = await this.fetchGuardHookAnnotations(resourceEvent.event.HookInvocationId);\n if (annotations) {\n resourceEvent.event.HookStatusReason = annotations;\n }\n }\n const activity = {\n deployment: monitorId,\n event: resourceEvent.event,\n metadata: this.findMetadataFor(resourceEvent.event.LogicalResourceId),\n progress: this.progressMonitor.progress,\n };\n this.checkForErrors(activity);\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5502.msg(this.formatActivity(activity, true), activity));\n }\n }\n /**\n * Perform a final poll to the end and flush out all events to the printer\n *\n * Finish any poll currently in progress, then do a final one until we've\n * reached the last page.\n */\n async finalPollToEnd(monitorId) {\n // If we were doing a poll, finish that first. It was started before\n // the moment we were sure we weren't going to get any new events anymore\n // so we need to do a new one anyway. Need to wait for this one though\n // because our state is single-threaded.\n if (this.readPromise) {\n await this.readPromise;\n }\n await this.readNewEvents(monitorId);\n }\n /**\n * Formats a stack activity into a basic string\n */\n formatActivity(activity, progress) {\n const event = activity.event;\n const metadata = activity.metadata;\n const resourceName = metadata ? metadata.constructPath : event.LogicalResourceId || '';\n const logicalId = resourceName !== event.LogicalResourceId ? `(${event.LogicalResourceId}) ` : '';\n return util.format('%s | %s%s | %s | %s | %s %s%s%s', event.StackName, progress !== false ? `${activity.progress.formatted} | ` : '', new Date(event.Timestamp).toLocaleTimeString(), event.ResourceStatus || '', event.ResourceType, resourceName, logicalId, event.ResourceStatusReason ? event.ResourceStatusReason : '', metadata?.entry.trace ? `\\n\\t${metadata.entry.trace.join('\\n\\t\\\\_ ')}` : '');\n }\n checkForErrors(activity) {\n if ((0, util_1.isErrorEvent)(activity.event)) {\n // Cancelled is not an interesting failure reason, nor is the stack message (stack\n // message will just say something like \"stack failed to update\")\n if (!(0, util_1.isCancellationEvent)(activity.event) && (0, util_1.isRegularResourceEvent)(activity.event)) {\n this._errors.push(activity.event);\n }\n }\n }\n}\nexports.StackActivityMonitor = StackActivityMonitor;\n// Some custom resource types that the CDK standard library creates that we\n// would like to see it if they fail.\nconst OUR_CUSTOM_RESOURCE_TYPES = [\n 'Custom::AWS',\n 'Custom::AWSCDK-EKS-Cluster',\n 'Custom::AWSCDK-EKS-FargateProfile',\n 'Custom::AWSCDK-EKS-HelmChart',\n 'Custom::AWSCDK-EKS-KubernetesObjectValue',\n 'Custom::AWSCDK-EKS-KubernetesPatch',\n 'Custom::AWSCDK-EKS-KubernetesResource',\n 'Custom::AWSCDKCfnJson',\n 'Custom::AWSCDKCfnJsonStringify',\n 'Custom::AWSCDKOpenIdConnectProvider',\n 'Custom::CDKBucketDeployment',\n 'Custom::CloudwatchLogResourcePolicy',\n 'Custom::CrossAccountZoneDelegation',\n 'Custom::CrossRegionExportReader',\n 'Custom::CrossRegionExportWriter',\n 'Custom::CrossRegionStringParameterReader',\n 'Custom::DeleteExistingRecordSet',\n 'Custom::DescribeCognitoUserPoolClient',\n 'Custom::DynamoDBReplica',\n 'Custom::ECRAutoDeleteImages',\n 'Custom::ElasticsearchAccessPolicy',\n 'Custom::LogRetention',\n 'Custom::OpenSearchAccessPolicy',\n 'Custom::S3AutoDeleteObjects',\n 'Custom::S3BucketNotifications',\n 'Custom::SyntheticsAutoDeleteUnderlyingResources',\n 'Custom::Trigger',\n 'Custom::UserPoolCloudFrontDomainName',\n 'Custom::VpcRestrictDefaultSG',\n];\n/**\n * Extract an error code from the given stack event.\n *\n * Always contains the services, and includes the handler error code if available.\n */\nfunction extractErrorCode(event) {\n const isOurCustomResource = OUR_CUSTOM_RESOURCE_TYPES.includes(event.ResourceType ?? '');\n // Get the resource type; if it is non-AWS then we are done.\n const resourceTypeParts = (event.ResourceType ?? '').split('::');\n if (resourceTypeParts[0] !== 'AWS' && !isOurCustomResource) {\n return toolkit_error_1.DeploymentErrorCodes.PRIVATE_RESOURCE_ERROR;\n }\n const resourceType = isOurCustomResource ? resourceTypeParts.join('') : resourceTypeParts.slice(1).join('');\n const reason = event.ResourceStatusReason ?? '';\n const errorRe = /(?:HandlerErrorCode:|Error Code:) ([a-zA-Z0-9:-]+)/;\n const handlerCode = reason.match(errorRe);\n return `${resourceType}:${handlerCode ? handlerCode[1] : toolkit_error_1.DeploymentErrorCodes.UNKNOWN_ERROR}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYWN0aXZpdHktbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWFjdGl2aXR5LW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeWJBLDRDQWlCQztBQTFjRCw2QkFBNkI7QUFHN0IsNkJBQTZCO0FBQzdCLDZEQUF3RDtBQUN4RCxxRUFBZ0U7QUFFaEUsK0RBQW1FO0FBQ25FLHFDQUF1RjtBQUd2RiwyQ0FBa0Q7QUFDbEQsOEVBQTBFO0FBK0QxRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLG9CQUFvQjtJQUMvQjs7T0FFRztJQUNjLE1BQU0sQ0FBbUI7SUFFMUM7OztPQUdHO0lBQ2MsZUFBZSxDQUFTO0lBRXpDOzs7O09BSUc7SUFDYyxPQUFPLEdBQWlCLEVBQUUsQ0FBQztJQUVwQyxTQUFTLENBQVU7SUFFVixlQUFlLENBQXVCO0lBRXZEOztPQUVHO0lBQ0ssU0FBUyxDQUFpQztJQUVsRDs7T0FFRztJQUNLLFdBQVcsQ0FBZ0I7SUFFbEIsUUFBUSxDQUFXO0lBQ25CLFNBQVMsQ0FBUztJQUNsQixLQUFLLENBQThCO0lBQ25DLEdBQUcsQ0FBd0I7SUFDM0IsWUFBWSxDQUF3QjtJQUVyRCxZQUFZLEVBQ1YsR0FBRyxFQUNILFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsZUFBZSxHQUFHLEtBQUssRUFDdkIsWUFBWSxHQUNjO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFFakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLDZDQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FB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QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEtBQWlCO0lBQ2hELE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekYsNERBQTREO0lBQzVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0QsT0FBTyxvQ0FBb0IsQ0FBQyxzQkFBc0IsQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU1RyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO0lBRWhELE1BQU0sT0FBTyxHQUFHLG9EQUFvRCxDQUFDO0lBQ3JFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFMUMsT0FBTyxHQUFHLFlBQVksSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0NBQW9CLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDaEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRXZlbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB7IFN0YWNrRXZlbnRQb2xsZXIgfSBmcm9tICcuL3N0YWNrLWV2ZW50LXBvbGxlcic7XG5pbXBvcnQgeyBTdGFja1Byb2dyZXNzTW9uaXRvciB9IGZyb20gJy4vc3RhY2stcHJvZ3Jlc3MtbW9uaXRvcic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9zdGFjay1hY3Rpdml0eSc7XG5pbXBvcnQgeyBEZXBsb3ltZW50RXJyb3JDb2RlcyB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBpc0NhbmNlbGxhdGlvbkV2ZW50LCBpc0Vycm9yRXZlbnQsIGlzUmVndWxhclJlc291cmNlRXZlbnQgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IHJlc291cmNlTWV0YWRhdGEgfSBmcm9tICcuLi9yZXNvdXJjZS1tZXRhZGF0YS9yZXNvdXJjZS1tZXRhZGF0YSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tBY3Rpdml0eU1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gICAqL1xuICByZWFkb25seSBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudDtcblxuICAvKipcbiAgICogVGhlIElvSGVscGVyIHVzZWQgZm9yIG1lc3NhZ2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgYXJ0aWZhY3QgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgU3RhY2sgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVG90YWwgbnVtYmVyIG9mIHJlc291cmNlcyB0byB1cGRhdGVcbiAgICpcbiAgICogVXNlZCB0byBjYWxjdWxhdGUgYSBwcm9ncmVzcyBiYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcHJvZ3Jlc3MgcmVwb3J0aW5nXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXNUb3RhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRpb24gdGltZSBvZiB0aGUgY2hhbmdlIHNldFxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgdXNlZCB0byBmaWx0ZXIgZXZlbnRzLCBvbmx5IHNob3dpbmcgdGhvc2UgZnJvbSBhZnRlciB0aGUgY2hhbmdlXG4gICAqIHNldCBjcmVhdGlvbiB0aW1lLlxuICAgKlxuICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcywgb3RoZXJ3aXNlIHRoZSBmaWx0ZXJpbmcgd2lsbCBiZSBzdWJqZWN0XG4gICAqIHRvIGNsb2NrIGRyaWZ0IGJldHdlZW4gbG9jYWwgYW5kIGNsb3VkIG1hY2hpbmVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIExvY2FsIG1hY2hpbmUncyBjdXJyZW50IHRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldENyZWF0aW9uVGltZT86IERhdGU7XG5cbiAgLyoqXG4gICAqIFRpbWUgdG8gd2FpdCBiZXR3ZWVuIGZldGNoaW5nIG5ldyBhY3Rpdml0aWVzLlxuICAgKlxuICAgKiBNdXN0IHdhaXQgYSByZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gcG9sbHMsIHNpbmNlIHdlIG5lZWQgdG8gY29uc2lkZXIgQ2xvdWRGb3JtYXRpb24gQVBJIGxpbWl0c1xuICAgKlxuICAgKiBAZGVmYXVsdCAyXzAwMFxuICAgKi9cbiAgcmVhZG9ubHkgcG9sbGluZ0ludGVydmFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCByZXNvdXJjZXMsIHVzZWQgdG8gbG9vayB1cCB0aGUgYm9vdHN0cmFwIHRvb2xraXQgdmVyc2lvbiB3aGVuXG4gICAqIGRpYWdub3NpbmcgR3VhcmQgSG9vayBhbm5vdGF0aW9uIGZldGNoIGZhaWx1cmVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJvb3RzdHJhcCB2ZXJzaW9uIGlzIG5vdCByZXBvcnRlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgZW52UmVzb3VyY2VzPzogRW52aXJvbm1lbnRSZXNvdXJjZXM7XG59XG5cbi8qKlxuICogRHJpdmVzIHRoZSBtb25pdG9yaW5nIG9mIGEgU3RhY2sgZGVwbG95bWVudFxuICpcbiAqIGBgYFxuICog4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICAgICAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICog4pSCICAgICAgICAgU3RhY2sgICAgICAgICDilIIgcG9sbCgpIOKUgiAgICAgICAgIFN0YWNrICAgICAgICAg4pSCICBwcm9jZXNzKGV2KSDilIIgICAgICAgICBTdGFjayAgICAgICAgIOKUglxuICog4pSCICAgICAgRXZlbnRQb2xsZXIgICAgICDilILil4DilIDilIDilIDilIDilIDilIDilIDilIIgICAgQWN0aXZpdHlNb25pdG9yICAgIOKUguKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWtuKUgiAgICBQcm9ncmVzc01vbml0b3IgICAg4pSCXG4gKiDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrQWN0aXZpdHlNb25pdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBwb2xsZXIgdXNlZCB0byByZWFkIHN0YWNrIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwb2xsZXI6IFN0YWNrRXZlbnRQb2xsZXI7XG5cbiAgLyoqXG4gICAqIEZldGNoIG5ldyBhY3Rpdml0eSBldmVyeSAxIHNlY29uZFxuICAgKiBQcmludGVycyBjYW4gZGVjaWRlIHRvIHVwZGF0ZSBhIHZpZXcgbGVzcyBmcmVxdWVudGx5IGlmIGRlc2lyZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcG9sbGluZ0ludGVydmFsOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBhbGwgbm9uLWNhbmNlbGxhdGlvbiBlcnJvcnMgd2UgaGF2ZSBzZWVuLlxuICAgKlxuICAgKiBCeSB0aGUgbmF0dXJlIG9mIHRoZSBvcmRlciB3ZSBzZWUgZXZlbnRzIGluLCB3aWxsIGJlIG9yZGVyZWQgZnJvbSBvbGRlc3QgdG8gbmV3ZXN0LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZXJyb3JzOiBTdGFja0V2ZW50W10gPSBbXTtcblxuICBwcml2YXRlIG1vbml0b3JJZD86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2dyZXNzTW9uaXRvcjogU3RhY2tQcm9ncmVzc01vbml0b3I7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgdGljayB0aW1lclxuICAgKi9cbiAgcHJpdmF0ZSB0aWNrVGltZXI/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICAvKipcbiAgICogU2V0IHRvIHRoZSBhY3Rpdml0eSBvZiByZWFkaW5nIHRoZSBjdXJyZW50IGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkUHJvbWlzZT86IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IGVudlJlc291cmNlcz86IEVudmlyb25tZW50UmVzb3VyY2VzO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjZm4sXG4gICAgaW9IZWxwZXIsXG4gICAgc3RhY2ssXG4gICAgc3RhY2tOYW1lLFxuICAgIHJlc291cmNlc1RvdGFsLFxuICAgIGNoYW5nZVNldENyZWF0aW9uVGltZSxcbiAgICBwb2xsaW5nSW50ZXJ2YWwgPSAyXzAwMCxcbiAgICBlbnZSZXNvdXJjZXMsXG4gIH06IFN0YWNrQWN0aXZpdHlNb25pdG9yUHJvcHMpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gICAgdGhpcy5zdGFjayA9IHN0YWNrO1xuICAgIHRoaXMuc3RhY2tOYW1lID0gc3RhY2tOYW1lO1xuICAgIHRoaXMuY2ZuID0gY2ZuO1xuICAgIHRoaXMuZW52UmVzb3VyY2VzID0gZW52UmVzb3VyY2VzO1xuXG4gICAgdGhpcy5wcm9ncmVzc01vbml0b3IgPSBuZXcgU3RhY2tQcm9ncmVzc01vbml0b3IocmVzb3VyY2VzVG90YWwpO1xuICAgIHRoaXMucG9sbGluZ0ludGVydmFsID0gcG9sbGluZ0ludGVydmFsO1xuICAgIHRoaXMucG9sbGVyID0gbmV3IFN0YWNrRXZlbnRQb2xsZXIoY2ZuLCB7XG4gICAgICBzdGFja05hbWUsXG4gICAgICBzdGFydFRpbWU6IGNoYW5nZVNldENyZWF0aW9uVGltZT8uZ2V0VGltZSgpID8/IERhdGUubm93KCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGVycm9yIG1lc3NhZ2VzIG9mIGFsbCBlbmNvdW50ZXJlZCBlcnJvcnMgKHRoYXQgYXJlbid0IGNhbmNlbGxhdGlvbnMpXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbEVycm9yTWVzc2FnZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9lcnJvcnMubWFwKGUgPT4gZS5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/PyAnJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGVycm9yIGNvZGVkcyBvZiBhbGwgZW5jb3VudGVyZWQgZXJyb3JzICh0aGF0IGFyZW4ndCBjYW5jZWxsYXRpb25zIG5vciBzdGFjayBlcnJvcnMpXG4gICAqXG4gICAqIFdlIGRvbid0IG5lZWQgdG8gaW5jbHVkZSBuZXN0ZWQgc3RhY2sgZXJyb3JzIGJlY2F1c2Ugb3VyIHBvbGxlciB3aWxsIHBvbGwgdGhlIG5lc3RlZCBzdGFjayxcbiAgICogYW5kIGhhdmUgcmV0dXJuZWQgdGhlIGFjdHVhbCBlcnJvciBhcyB3ZWxsLlxuICAgKi9cbiAgcHVibGljIGdldCBhbGxFcnJvckNvZGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzXG4gICAgICAuZmlsdGVyKGlzUmVndWxhclJlc291cmNlRXZlbnQpXG4gICAgICAubWFwKGV4dHJhY3RFcnJvckNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2Ugb3VyIGJlc3QgZ3Vlc3MgYXQgdGhlIGVycm9yIGNvZGUgb2YgdGhlIHJvb3QgY2F1c2VcbiAgICpcbiAgICogVGhlIGZpcnN0IGVycm9yIHRoYXQgb2NjdXJzIGlzIHRoZSByb290IGNhdXNlLlxuICAgKi9cbiAgcHVibGljIGdldCByb290Q2F1c2VFcnJvckNvZGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hbGxFcnJvckNvZGVzWzBdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0YXJ0KCkge1xuICAgIHRoaXMubW9uaXRvcklkID0gdXVpZC52NCgpO1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1NTAxLm1zZyhgRGVwbG95aW5nICR7dGhpcy5zdGFja05hbWV9YCwge1xuICAgICAgZGVwbG95bWVudDogdGhpcy5tb25pdG9ySWQsXG4gICAgICBzdGFjazogdGhpcy5zdGFjayxcbiAgICAgIHN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICByZXNvdXJjZXNUb3RhbDogdGhpcy5wcm9ncmVzc01vbml0b3IudG90YWwsXG4gICAgfSkpO1xuICAgIHRoaXMuc2NoZWR1bGVOZXh0VGljaygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0b3AoKSB7XG4gICAgY29uc3Qgb2xkTW9uaXRvcklkID0gdGhpcy5tb25pdG9ySWQhO1xuICAgIHRoaXMubW9uaXRvcklkID0gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLnRpY2tUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGlja1RpbWVyKTtcbiAgICB9XG5cbiAgICAvLyBEbyBhIGZpbmFsIHBvbGwgZm9yIGFsbCBldmVudHMuIFRoaXMgaXMgdG8gaGFuZGxlIHRoZSBzaXR1YXRpb24gd2hlcmUgRGVzY3JpYmVTdGFja1N0YXR1c1xuICAgIC8vIGFscmVhZHkgcmV0dXJuZWQgYW4gZXJyb3IsIGJ1dCB0aGUgbW9uaXRvciBoYXNuJ3Qgc2VlbiBhbGwgdGhlIGV2ZW50cyB5ZXQgYW5kIHdlJ2QgZW5kXG4gICAgLy8gdXAgbm90IHByaW50aW5nIHRoZSBmYWlsdXJlIHJlYXNvbiB0byB1c2Vycy5cbiAgICBhd2FpdCB0aGlzLmZpbmFsUG9sbFRvRW5kKG9sZE1vbml0b3JJZCk7XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTUwMy5tc2coYENvbXBsZXRlZCAke3RoaXMuc3RhY2tOYW1lfWAsIHtcbiAgICAgIGRlcGxveW1lbnQ6IG9sZE1vbml0b3JJZCxcbiAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgc3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIHJlc291cmNlc1RvdGFsOiB0aGlzLnByb2dyZXNzTW9uaXRvci50b3RhbCxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlTmV4dFRpY2soKSB7XG4gICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudGlja1RpbWVyID0gc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudGljaygpLCB0aGlzLnBvbGxpbmdJbnRlcnZhbCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRpY2soKSB7XG4gICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlYWRQcm9taXNlID0gdGhpcy5yZWFkTmV3RXZlbnRzKHRoaXMubW9uaXRvcklkKTtcbiAgICAgIGF3YWl0IHRoaXMucmVhZFByb21pc2U7XG4gICAgICB0aGlzLnJlYWRQcm9taXNlID0gdW5kZWZpbmVkO1xuXG4gICAgICAvLyBXZSBtaWdodCBoYXZlIGJlZW4gc3RvcCgpcGVkIHdoaWxlIHRoZSBuZXR3b3JrIGNhbGwgd2FzIGluIHByb2dyZXNzLlxuICAgICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTU1MDAubXNnKFxuICAgICAgICB1dGlsLmZvcm1hdCgnRXJyb3Igb2NjdXJyZWQgd2hpbGUgbW9uaXRvcmluZyBzdGFjazogJXMnLCBlKSxcbiAgICAgICAgeyBlcnJvcjogZSBhcyBhbnkgfSxcbiAgICAgICkpO1xuICAgIH1cbiAgICB0aGlzLnNjaGVkdWxlTmV4dFRpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE1ldGFkYXRhRm9yKGxvZ2ljYWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLnN0YWNrLm1ldGFkYXRhO1xuICAgIGlmICghbG9naWNhbElkIHx8ICFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc291cmNlTWV0YWRhdGEodGhpcy5zdGFjaywgbG9naWNhbElkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmltcyBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UsIGNvbGxhcHNlcyBhbGwgaW50ZXJuYWwgd2hpdGVzcGFjZVxuICAgKiAoaW5jbHVkaW5nIG5ld2xpbmVzKSB0byBhIHNpbmdsZSBzcGFjZSwgYW5kIHRydW5jYXRlcyB0byBgbWF4Q2hhcnNgXG4gICAqIGNoYXJhY3RlcnMsIGFwcGVuZGluZyBgWy4uLnRydW5jYXRlZF1gIHdoZW4gdGhlIG9yaWdpbmFsIHdhcyBsb25nZXIuXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCBtYXhDaGFyczogbnVtYmVyID0gNDAwKTogc3RyaW5nIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gbWVzc2FnZS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xuICAgIHJldHVybiBub3JtYWxpemVkLmxlbmd0aCA+IG1heENoYXJzXG4gICAgICA/IG5vcm1hbGl6ZWQuc3Vic3RyaW5nKDAsIG1heENoYXJzKSArICdbLi4udHJ1bmNhdGVkXSdcbiAgICAgIDogbm9ybWFsaXplZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIEd1YXJkIEhvb2sgYW5ub3RhdGlvbiBkZXRhaWxzIHZpYSBHZXRIb29rUmVzdWx0IEFQSSBhbmQgZm9ybWF0cyB0aGVtXG4gICAqIGludG8gYSBodW1hbi1yZWFkYWJsZSBzdHJpbmcuIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBmZXRjaCBmYWlscyBvciB0aGVyZVxuICAgKiBhcmUgbm8gZmFpbGVkIGFubm90YXRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaEd1YXJkSG9va0Fubm90YXRpb25zKGhvb2tJbnZvY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2ZuLmdldEhvb2tSZXN1bHQoeyBIb29rUmVzdWx0SWQ6IGhvb2tJbnZvY2F0aW9uSWQgfSk7XG4gICAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHJlc3VsdC5Bbm5vdGF0aW9ucyA/PyBbXTtcbiAgICAgIGNvbnN0IGZhaWxlZEFubm90YXRpb25zID0gYW5ub3RhdGlvbnMuZmlsdGVyKChhKSA9PiBhLlN0YXR1cyA9PT0gJ0ZBSUxFRCcpO1xuICAgICAgaWYgKGZhaWxlZEFubm90YXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbJ05vbkNvbXBsaWFudCBSdWxlczonLCAnJ107XG4gICAgICBmb3IgKGNvbnN0IGFubm90YXRpb24gb2YgZmFpbGVkQW5ub3RhdGlvbnMpIHtcbiAgICAgICAgaWYgKGFubm90YXRpb24uQW5ub3RhdGlvbk5hbWUpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKGBbJHthbm5vdGF0aW9uLkFubm90YXRpb25OYW1lfV1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYW5ub3RhdGlvbi5TdGF0dXNNZXNzYWdlKSB7XG4gICAgICAgICAgbGluZXMucHVzaChg4oCiICR7dGhpcy5ub3JtYWxpemVNZXNzYWdlKGFubm90YXRpb24uU3RhdHVzTWVzc2FnZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFubm90YXRpb24uUmVtZWRpYXRpb25NZXNzYWdlKSB7XG4gICAgICAgICAgbGluZXMucHVzaChgUmVtZWRpYXRpb246ICR7dGhpcy5ub3JtYWxpemVNZXNzYWdlKGFubm90YXRpb24uUmVtZWRpYXRpb25NZXNzYWdlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKS50cmltRW5kKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSk7XG5cbiAgICAgIGNvbnN0IGlzUGVybWlzc2lvbnNFcnJvciA9XG4gICAgICAgIGUubmFtZSA9PT0gJ0FjY2Vzc0RlbmllZEV4Y2VwdGlvbicgfHxcbiAgICAgICAgKHR5cGVvZiBlcnJvck1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIGVycm9yTWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtOiBjbG91ZGZvcm1hdGlvbjpnZXRob29rcmVzdWx0JykpO1xuXG4gICAgICBpZiAoaXNQZXJtaXNzaW9uc0Vycm9yICYmIHRoaXMuZW52UmVzb3VyY2VzKSB7XG4gICAgICAgIGxldCBjdXJyZW50VmVyc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGN1cnJlbnRWZXJzaW9uID0gKGF3YWl0IHRoaXMuZW52UmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKSkudmVyc2lvbjtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gaWdub3JlIGVycm9ycyBsb29raW5nIHVwIHRoZSBib290c3RyYXAgdmVyc2lvblxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCByZXN1bHQgZGV0YWlscyBmb3IgSG9vayBpbnZvY2F0aW9uICR7aG9va0ludm9jYXRpb25JZH06ICR7ZXJyb3JNZXNzYWdlfS4gTWFrZSBzdXJlIHlvdSBoYXZlIHBlcm1pc3Npb25zIHRvIGNhbGwgdGhlIEdldEhvb2tSZXN1bHQgQVBJLCBvciByZS1ib290c3RyYXAgeW91ciBlbnZpcm9ubWVudCBieSBydW5uaW5nICdjZGsgYm9vdHN0cmFwJyB0byB1cGRhdGUgdGhlIEJvb3RzdHJhcCBDREsgVG9vbGtpdCBzdGFjay5cbiAgICAgICAgICAgICdCb290c3RyYXAgdG9vbGtpdCBzdGFjayB2ZXJzaW9uIDMxIG9yIGxhdGVyIGlzIG5lZWRlZDsgY3VycmVudCB2ZXJzaW9uOiAke2N1cnJlbnRWZXJzaW9uID8/ICd1bmtub3duJ30uYCxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIHV0aWwuZm9ybWF0KCdGYWlsZWQgdG8gZmV0Y2ggR3VhcmQgSG9vayBkZXRhaWxzIGZvciBpbnZvY2F0aW9uICVzOiAlcycsIGhvb2tJbnZvY2F0aW9uSWQsIGVycm9yTWVzc2FnZSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGFsbCBuZXcgZXZlbnRzIGZyb20gdGhlIHN0YWNrIGhpc3RvcnlcbiAgICpcbiAgICogVGhlIGV2ZW50cyBhcmUgcmV0dXJuZWQgaW4gY2hyb25vbG9naWNhbCBvcmRlciBieSB0aGUgdW5kZXJseWluZyBwb2xsZXIuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlYWROZXdFdmVudHMobW9uaXRvcklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwb2xsRXZlbnRzID0gYXdhaXQgdGhpcy5wb2xsZXIucG9sbCgpO1xuXG4gICAgZm9yIChjb25zdCByZXNvdXJjZUV2ZW50IG9mIHBvbGxFdmVudHMpIHtcbiAgICAgIHRoaXMucHJvZ3Jlc3NNb25pdG9yLnByb2Nlc3MocmVzb3VyY2VFdmVudC5ldmVudCk7XG5cbiAgICAgIC8vIElmIHRoaXMgaXMgYSBmYWlsZWQgR3VhcmQgSG9vayBldmVudCB3aXRoIGFuIGludm9jYXRpb24gSUQsIGZldGNoIGFubm90YXRpb25zXG4gICAgICBpZiAocmVzb3VyY2VFdmVudC5ldmVudC5Ib29rSW52b2NhdGlvbklkKSB7XG4gICAgICAgIGNvbnN0IGFubm90YXRpb25zID0gYXdhaXQgdGhpcy5mZXRjaEd1YXJkSG9va0Fubm90YXRpb25zKHJlc291cmNlRXZlbnQuZXZlbnQuSG9va0ludm9jYXRpb25JZCk7XG4gICAgICAgIGlmIChhbm5vdGF0aW9ucykge1xuICAgICAgICAgIHJlc291cmNlRXZlbnQuZXZlbnQuSG9va1N0YXR1c1JlYXNvbiA9IGFubm90YXRpb25zO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5ID0ge1xuICAgICAgICBkZXBsb3ltZW50OiBtb25pdG9ySWQsXG4gICAgICAgIGV2ZW50OiByZXNvdXJjZUV2ZW50LmV2ZW50LFxuICAgICAgICBtZXRhZGF0YTogdGhpcy5maW5kTWV0YWRhdGFGb3IocmVzb3VyY2VFdmVudC5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCksXG4gICAgICAgIHByb2dyZXNzOiB0aGlzLnByb2dyZXNzTW9uaXRvci5wcm9ncmVzcyxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuY2hlY2tGb3JFcnJvcnMoYWN0aXZpdHkpO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU1MDIubXNnKHRoaXMuZm9ybWF0QWN0aXZpdHkoYWN0aXZpdHksIHRydWUpLCBhY3Rpdml0eSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGEgZmluYWwgcG9sbCB0byB0aGUgZW5kIGFuZCBmbHVzaCBvdXQgYWxsIGV2ZW50cyB0byB0aGUgcHJpbnRlclxuICAgKlxuICAgKiBGaW5pc2ggYW55IHBvbGwgY3VycmVudGx5IGluIHByb2dyZXNzLCB0aGVuIGRvIGEgZmluYWwgb25lIHVudGlsIHdlJ3ZlXG4gICAqIHJlYWNoZWQgdGhlIGxhc3QgcGFnZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmluYWxQb2xsVG9FbmQobW9uaXRvcklkOiBzdHJpbmcpIHtcbiAgICAvLyBJZiB3ZSB3ZXJlIGRvaW5nIGEgcG9sbCwgZmluaXNoIHRoYXQgZmlyc3QuIEl0IHdhcyBzdGFydGVkIGJlZm9yZVxuICAgIC8vIHRoZSBtb21lbnQgd2Ugd2VyZSBzdXJlIHdlIHdlcmVuJ3QgZ29pbmcgdG8gZ2V0IGFueSBuZXcgZXZlbnRzIGFueW1vcmVcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIGRvIGEgbmV3IG9uZSBhbnl3YXkuIE5lZWQgdG8gd2FpdCBmb3IgdGhpcyBvbmUgdGhvdWdoXG4gICAgLy8gYmVjYXVzZSBvdXIgc3RhdGUgaXMgc2luZ2xlLXRocmVhZGVkLlxuICAgIGlmICh0aGlzLnJlYWRQcm9taXNlKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlYWRQcm9taXNlO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucmVhZE5ld0V2ZW50cyhtb25pdG9ySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBzdGFjayBhY3Rpdml0eSBpbnRvIGEgYmFzaWMgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGZvcm1hdEFjdGl2aXR5KGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5LCBwcm9ncmVzczogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3QgZXZlbnQgPSBhY3Rpdml0eS5ldmVudDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IGFjdGl2aXR5Lm1ldGFkYXRhO1xuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gbWV0YWRhdGEgPyBtZXRhZGF0YS5jb25zdHJ1Y3RQYXRoIDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQgfHwgJyc7XG4gICAgY29uc3QgbG9naWNhbElkID0gcmVzb3VyY2VOYW1lICE9PSBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/IGAoJHtldmVudC5Mb2dpY2FsUmVzb3VyY2VJZH0pIGAgOiAnJztcblxuICAgIHJldHVybiB1dGlsLmZvcm1hdChcbiAgICAgICclcyB8ICVzJXMgfCAlcyB8ICVzIHwgJXMgJXMlcyVzJyxcbiAgICAgIGV2ZW50LlN0YWNrTmFtZSxcbiAgICAgIHByb2dyZXNzICE9PSBmYWxzZSA/IGAke2FjdGl2aXR5LnByb2dyZXNzLmZvcm1hdHRlZH0gfCBgIDogJycsXG4gICAgICBuZXcgRGF0ZShldmVudC5UaW1lc3RhbXAhKS50b0xvY2FsZVRpbWVTdHJpbmcoKSxcbiAgICAgIGV2ZW50LlJlc291cmNlU3RhdHVzIHx8ICcnLFxuICAgICAgZXZlbnQuUmVzb3VyY2VUeXBlLFxuICAgICAgcmVzb3VyY2VOYW1lLFxuICAgICAgbG9naWNhbElkLFxuICAgICAgZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gPyBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA6ICcnLFxuICAgICAgbWV0YWRhdGE/LmVudHJ5LnRyYWNlID8gYFxcblxcdCR7bWV0YWRhdGEuZW50cnkudHJhY2Uuam9pbignXFxuXFx0XFxcXF8gJyl9YCA6ICcnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yRXJyb3JzKGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5KSB7XG4gICAgaWYgKGlzRXJyb3JFdmVudChhY3Rpdml0eS5ldmVudCkpIHtcbiAgICAgIC8vIENhbmNlbGxlZCBpcyBub3QgYW4gaW50ZXJlc3RpbmcgZmFpbHVyZSByZWFzb24sIG5vciBpcyB0aGUgc3RhY2sgbWVzc2FnZSAoc3RhY2tcbiAgICAgIC8vIG1lc3NhZ2Ugd2lsbCBqdXN0IHNheSBzb21ldGhpbmcgbGlrZSBcInN0YWNrIGZhaWxlZCB0byB1cGRhdGVcIilcbiAgICAgIGlmICghaXNDYW5jZWxsYXRpb25FdmVudChhY3Rpdml0eS5ldmVudCkgJiYgaXNSZWd1bGFyUmVzb3VyY2VFdmVudChhY3Rpdml0eS5ldmVudCkpIHtcbiAgICAgICAgdGhpcy5fZXJyb3JzLnB1c2goYWN0aXZpdHkuZXZlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBTb21lIGN1c3RvbSByZXNvdXJjZSB0eXBlcyB0aGF0IHRoZSBDREsgc3RhbmRhcmQgbGlicmFyeSBjcmVhdGVzIHRoYXQgd2Vcbi8vIHdvdWxkIGxpa2UgdG8gc2VlIGl0IGlmIHRoZXkgZmFpbC5cbmNvbnN0IE9VUl9DVVNUT01fUkVTT1VSQ0VfVFlQRVMgPSBbXG4gICdDdXN0b206OkFXUycsXG4gICdDdXN0b206OkFXU0NESy1FS1MtQ2x1c3RlcicsXG4gICdDdXN0b206OkFXU0NESy1FS1MtRmFyZ2F0ZVByb2ZpbGUnLFxuICAnQ3VzdG9tOjpBV1NDREstRUtTLUhlbG1DaGFydCcsXG4gICdDdXN0b206OkFXU0NESy1FS1MtS3ViZXJuZXRlc09iamVjdFZhbHVlJyxcbiAgJ0N1c3RvbTo6QVdTQ0RLLUVLUy1LdWJlcm5ldGVzUGF0Y2gnLFxuICAnQ3VzdG9tOjpBV1NDREstRUtTLUt1YmVybmV0ZXNSZXNvdXJjZScsXG4gICdDdXN0b206OkFXU0NES0Nmbkpzb24nLFxuICAnQ3VzdG9tOjpBV1NDREtDZm5Kc29uU3RyaW5naWZ5JyxcbiAgJ0N1c3RvbTo6QVdTQ0RLT3BlbklkQ29ubmVjdFByb3ZpZGVyJyxcbiAgJ0N1c3RvbTo6Q0RLQnVja2V0RGVwbG95bWVudCcsXG4gICdDdXN0b206OkNsb3Vkd2F0Y2hMb2dSZXNvdXJjZVBvbGljeScsXG4gICdDdXN0b206OkNyb3NzQWNjb3VudFpvbmVEZWxlZ2F0aW9uJyxcbiAgJ0N1c3RvbTo6Q3Jvc3NSZWdpb25FeHBvcnRSZWFkZXInLFxuICAnQ3VzdG9tOjpDcm9zc1JlZ2lvbkV4cG9ydFdyaXRlcicsXG4gICdDdXN0b206OkNyb3NzUmVnaW9uU3RyaW5nUGFyYW1ldGVyUmVhZGVyJyxcbiAgJ0N1c3RvbTo6RGVsZXRlRXhpc3RpbmdSZWNvcmRTZXQnLFxuICAnQ3VzdG9tOjpEZXNjcmliZUNvZ25pdG9Vc2VyUG9vbENsaWVudCcsXG4gICdDdXN0b206OkR5bmFtb0RCUmVwbGljYScsXG4gICdDdXN0b206OkVDUkF1dG9EZWxldGVJbWFnZXMnLFxuICAnQ3VzdG9tOjpFbGFzdGljc2VhcmNoQWNjZXNzUG9saWN5JyxcbiAgJ0N1c3RvbTo6TG9nUmV0ZW50aW9uJyxcbiAgJ0N1c3RvbTo6T3BlblNlYXJjaEFjY2Vzc1BvbGljeScsXG4gICdDdXN0b206OlMzQXV0b0RlbGV0ZU9iamVjdHMnLFxuICAnQ3VzdG9tOjpTM0J1Y2tldE5vdGlmaWNhdGlvbnMnLFxuICAnQ3VzdG9tOjpTeW50aGV0aWNzQXV0b0RlbGV0ZVVuZGVybHlpbmdSZXNvdXJjZXMnLFxuICAnQ3VzdG9tOjpUcmlnZ2VyJyxcbiAgJ0N1c3RvbTo6VXNlclBvb2xDbG91ZEZyb250RG9tYWluTmFtZScsXG4gICdDdXN0b206OlZwY1Jlc3RyaWN0RGVmYXVsdFNHJyxcbl07XG5cbi8qKlxuICogRXh0cmFjdCBhbiBlcnJvciBjb2RlIGZyb20gdGhlIGdpdmVuIHN0YWNrIGV2ZW50LlxuICpcbiAqIEFsd2F5cyBjb250YWlucyB0aGUgc2VydmljZXMsIGFuZCBpbmNsdWRlcyB0aGUgaGFuZGxlciBlcnJvciBjb2RlIGlmIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RFcnJvckNvZGUoZXZlbnQ6IFN0YWNrRXZlbnQpOiBzdHJpbmcge1xuICBjb25zdCBpc091ckN1c3RvbVJlc291cmNlID0gT1VSX0NVU1RPTV9SRVNPVVJDRV9UWVBFUy5pbmNsdWRlcyhldmVudC5SZXNvdXJjZVR5cGUgPz8gJycpO1xuXG4gIC8vIEdldCB0aGUgcmVzb3VyY2UgdHlwZTsgaWYgaXQgaXMgbm9uLUFXUyB0aGVuIHdlIGFyZSBkb25lLlxuICBjb25zdCByZXNvdXJjZVR5cGVQYXJ0cyA9IChldmVudC5SZXNvdXJjZVR5cGUgPz8gJycpLnNwbGl0KCc6OicpO1xuICBpZiAocmVzb3VyY2VUeXBlUGFydHNbMF0gIT09ICdBV1MnICYmICFpc091ckN1c3RvbVJlc291cmNlKSB7XG4gICAgcmV0dXJuIERlcGxveW1lbnRFcnJvckNvZGVzLlBSSVZBVEVfUkVTT1VSQ0VfRVJST1I7XG4gIH1cblxuICBjb25zdCByZXNvdXJjZVR5cGUgPSBpc091ckN1c3RvbVJlc291cmNlID8gcmVzb3VyY2VUeXBlUGFydHMuam9pbignJykgOiByZXNvdXJjZVR5cGVQYXJ0cy5zbGljZSgxKS5qb2luKCcnKTtcblxuICBjb25zdCByZWFzb24gPSBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/PyAnJztcblxuICBjb25zdCBlcnJvclJlID0gLyg/OkhhbmRsZXJFcnJvckNvZGU6fEVycm9yIENvZGU6KSAoW2EtekEtWjAtOTotXSspLztcbiAgY29uc3QgaGFuZGxlckNvZGUgPSByZWFzb24ubWF0Y2goZXJyb3JSZSk7XG5cbiAgcmV0dXJuIGAke3Jlc291cmNlVHlwZX06JHtoYW5kbGVyQ29kZSA/IGhhbmRsZXJDb2RlWzFdIDogRGVwbG95bWVudEVycm9yQ29kZXMuVU5LTk9XTl9FUlJPUn1gO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackEventPoller = void 0;\nconst util_1 = require(\"../../util\");\nclass StackEventPoller {\n cfn;\n props;\n events = [];\n complete = false;\n eventIds = new Set();\n nestedStackPollers = {};\n constructor(cfn, props) {\n this.cfn = cfn;\n this.props = props;\n }\n /**\n * From all accumulated events, return only the errors\n */\n get resourceErrors() {\n return this.events.filter((e) => e.event.ResourceStatus?.endsWith('_FAILED') && !e.isStackEvent);\n }\n /**\n * Poll for new stack events\n *\n * Will read all events that are available up until the oldest events\n * indicated by the constructor filters, or until it encounters events that it\n * has already read before.\n *\n * Recurses into nested stacks, and returns events old-to-new. Multiple\n * invocations to `poll` will return *newer* events (also in old-to-new order).\n */\n async poll() {\n const events = await this.doPoll();\n // Also poll all nested stacks we're currently tracking\n for (const [logicalId, poller] of Object.entries(this.nestedStackPollers)) {\n events.push(...(await poller.poll()));\n if (poller.complete) {\n delete this.nestedStackPollers[logicalId];\n }\n }\n // Return what we have so far\n events.sort((a, b) => a.event.Timestamp.valueOf() - b.event.Timestamp.valueOf());\n this.events.push(...events);\n return events;\n }\n async doPoll() {\n const events = [];\n try {\n let nextToken;\n let finished = false;\n while (!finished) {\n const page = await this.cfn.describeStackEvents({ StackName: this.props.stackName, NextToken: nextToken });\n for (const event of page?.StackEvents ?? []) {\n // Event from before we were interested in 'em\n if (this.props.startTime !== undefined && event.Timestamp.valueOf() < this.props.startTime) {\n return events;\n }\n // Already seen this one\n if (this.eventIds.has(event.EventId)) {\n return events;\n }\n this.eventIds.add(event.EventId);\n const isParentStackEvent = (0, util_1.isRootStackEvent)(event);\n if (isParentStackEvent && this.props.stackStatuses?.includes(event.ResourceStatus ?? '')) {\n return events;\n }\n // Fresh event\n const resEvent = {\n event: event,\n parentStackLogicalIds: this.props.parentStackLogicalIds ?? [],\n isStackEvent: isParentStackEvent,\n };\n events.push(resEvent);\n if (!isParentStackEvent &&\n event.ResourceType === 'AWS::CloudFormation::Stack' &&\n isStackBeginOperationState(event.ResourceStatus)) {\n // If the event is not for `this` stack and has a physical resource Id, recursively call for events in the nested stack\n this.trackNestedStack(event, [...(this.props.parentStackLogicalIds ?? []), event.LogicalResourceId ?? '']);\n }\n if (isParentStackEvent && isStackTerminalState(event.ResourceStatus)) {\n this.complete = true;\n }\n }\n nextToken = page?.NextToken;\n if (nextToken === undefined) {\n finished = true;\n }\n }\n }\n catch (e) {\n if (!(e.name === 'ValidationError' && (0, util_1.formatErrorMessage)(e) === `Stack [${this.props.stackName}] does not exist`)) {\n throw e;\n }\n }\n return events;\n }\n /**\n * On the CREATE_IN_PROGRESS, UPDATE_IN_PROGRESS, DELETE_IN_PROGRESS event of a nested stack, poll the nested stack updates\n */\n trackNestedStack(event, parentStackLogicalIds) {\n const logicalId = event.LogicalResourceId;\n const physicalResourceId = event.PhysicalResourceId;\n // The CREATE_IN_PROGRESS event for a Nested Stack is emitted twice; first without a PhysicalResourceId\n // and then with. Ignore this event if we don't have that property yet.\n //\n // (At this point, I also don't trust that logicalId is always going to be there so validate that as well)\n if (!logicalId || !physicalResourceId) {\n return;\n }\n if (!this.nestedStackPollers[logicalId]) {\n this.nestedStackPollers[logicalId] = new StackEventPoller(this.cfn, {\n stackName: physicalResourceId,\n parentStackLogicalIds: parentStackLogicalIds,\n startTime: event.Timestamp.valueOf(),\n });\n }\n }\n}\nexports.StackEventPoller = StackEventPoller;\nfunction isStackBeginOperationState(state) {\n return [\n 'CREATE_IN_PROGRESS',\n 'UPDATE_IN_PROGRESS',\n 'DELETE_IN_PROGRESS',\n 'UPDATE_ROLLBACK_IN_PROGRESS',\n 'ROLLBACK_IN_PROGRESS',\n ].includes(state ?? '');\n}\nfunction isStackTerminalState(state) {\n return !(state ?? '').endsWith('_IN_PROGRESS');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stZXZlbnQtcG9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stZXZlbnQtcG9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFDQUFrRTtBQW1EbEUsTUFBYSxnQkFBZ0I7SUFRUjtJQUNBO0lBUkgsTUFBTSxHQUFvQixFQUFFLENBQUM7SUFDdEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVoQixRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUM3QixrQkFBa0IsR0FBcUMsRUFBRSxDQUFDO0lBRTNFLFlBQ21CLEdBQTBCLEVBQzFCLEtBQTRCO1FBRDVCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQXVCO0lBRS9DLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxNQUFNLEdBQW9CLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXBELHVEQUF1RDtRQUN2RCxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUMsa0JB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QTBCLENBQUMsS0FBeUI7SUFDM0QsT0FBTztRQUNMLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLDZCQUE2QjtRQUM3QixzQkFBc0I7S0FDdkIsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLEtBQXlCO0lBQ3JELE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tFdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UsIGlzUm9vdFN0YWNrRXZlbnQgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tFdmVudFBvbGxlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0byBwb2xsXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogSURzIG9mIHBhcmVudCBzdGFja3Mgb2YgdGhpcyByZXNvdXJjZSwgaW4gY2FzZSBvZiByZXNvdXJjZXMgaW4gbmVzdGVkIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50U3RhY2tMb2dpY2FsSWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCBmb3IgdGhlIG9sZGVzdCBldmVudCB3ZSdyZSBpbnRlcmVzdGVkIGluXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVhZCBhbGwgZXZlbnRzXG4gICAqL1xuICByZWFkb25seSBzdGFydFRpbWU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN0b3AgcmVhZGluZyB3aGVuIHdlIHNlZSB0aGUgc3RhY2sgZW50ZXJpbmcgdGhpcyBzdGF0dXNcbiAgICpcbiAgICogU2hvdWxkIGJlIHNvbWV0aGluZyBsaWtlIGBDUkVBVEVfSU5fUFJPR1JFU1NgLCBgVVBEQVRFX0lOX1BST0dSRVNTYCxcbiAgICogYERFTEVURV9JTl9QUk9HUkVTUywgYFJPTExCQUNLX0lOX1BST0dSRVNTYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZWFkIGFsbCBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrU3RhdHVzZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUV2ZW50IHtcbiAgLyoqXG4gICAqIFRoZSBTdGFjayBFdmVudCBhcyByZWNlaXZlZCBmcm9tIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICByZWFkb25seSBldmVudDogU3RhY2tFdmVudDtcblxuICAvKipcbiAgICogSURzIG9mIHBhcmVudCBzdGFja3Mgb2YgdGhlIHJlc291cmNlLCBpbiBjYXNlIG9mIHJlc291cmNlcyBpbiBuZXN0ZWQgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBwYXJlbnRTdGFja0xvZ2ljYWxJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgZXZlbnQgcmVnYXJkcyB0aGUgcm9vdCBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNTdGFja0V2ZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrRXZlbnRQb2xsZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzOiBSZXNvdXJjZUV2ZW50W10gPSBbXTtcbiAgcHVibGljIGNvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBldmVudElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5lc3RlZFN0YWNrUG9sbGVyczogUmVjb3JkPHN0cmluZywgU3RhY2tFdmVudFBvbGxlcj4gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFN0YWNrRXZlbnRQb2xsZXJQcm9wcyxcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogRnJvbSBhbGwgYWNjdW11bGF0ZWQgZXZlbnRzLCByZXR1cm4gb25seSB0aGUgZXJyb3JzXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlRXJyb3JzKCk6IFJlc291cmNlRXZlbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzLmZpbHRlcigoZSkgPT4gZS5ldmVudC5SZXNvdXJjZVN0YXR1cz8uZW5kc1dpdGgoJ19GQUlMRUQnKSAmJiAhZS5pc1N0YWNrRXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvbGwgZm9yIG5ldyBzdGFjayBldmVudHNcbiAgICpcbiAgICogV2lsbCByZWFkIGFsbCBldmVudHMgdGhhdCBhcmUgYXZhaWxhYmxlIHVwIHVudGlsIHRoZSBvbGRlc3QgZXZlbnRzXG4gICAqIGluZGljYXRlZCBieSB0aGUgY29uc3RydWN0b3IgZmlsdGVycywgb3IgdW50aWwgaXQgZW5jb3VudGVycyBldmVudHMgdGhhdCBpdFxuICAgKiBoYXMgYWxyZWFkeSByZWFkIGJlZm9yZS5cbiAgICpcbiAgICogUmVjdXJzZXMgaW50byBuZXN0ZWQgc3RhY2tzLCBhbmQgcmV0dXJucyBldmVudHMgb2xkLXRvLW5ldy4gTXVsdGlwbGVcbiAgICogaW52b2NhdGlvbnMgdG8gYHBvbGxgIHdpbGwgcmV0dXJuICpuZXdlciogZXZlbnRzIChhbHNvIGluIG9sZC10by1uZXcgb3JkZXIpLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHBvbGwoKTogUHJvbWlzZTxSZXNvdXJjZUV2ZW50W10+IHtcbiAgICBjb25zdCBldmVudHM6IFJlc291cmNlRXZlbnRbXSA9IGF3YWl0IHRoaXMuZG9Qb2xsKCk7XG5cbiAgICAvLyBBbHNvIHBvbGwgYWxsIG5lc3RlZCBzdGFja3Mgd2UncmUgY3VycmVudGx5IHRyYWNraW5nXG4gICAgZm9yIChjb25zdCBbbG9naWNhbElkLCBwb2xsZXJdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubmVzdGVkU3RhY2tQb2xsZXJzKSkge1xuICAgICAgZXZlbnRzLnB1c2goLi4uKGF3YWl0IHBvbGxlci5wb2xsKCkpKTtcbiAgICAgIGlmIChwb2xsZXIuY29tcGxldGUpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMubmVzdGVkU3RhY2tQb2xsZXJzW2xvZ2ljYWxJZF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHdoYXQgd2UgaGF2ZSBzbyBmYXJcbiAgICBldmVudHMuc29ydCgoYSwgYikgPT4gYS5ldmVudC5UaW1lc3RhbXAhLnZhbHVlT2YoKSAtIGIuZXZlbnQuVGltZXN0YW1wIS52YWx1ZU9mKCkpO1xuICAgIHRoaXMuZXZlbnRzLnB1c2goLi4uZXZlbnRzKTtcbiAgICByZXR1cm4gZXZlbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkb1BvbGwoKTogUHJvbWlzZTxSZXNvdXJjZUV2ZW50W10+IHtcbiAgICBjb25zdCBldmVudHM6IFJlc291cmNlRXZlbnRbXSA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuICAgICAgd2hpbGUgKCFmaW5pc2hlZCkge1xuICAgICAgICBjb25zdCBwYWdlID0gYXdhaXQgdGhpcy5jZm4uZGVzY3JpYmVTdGFja0V2ZW50cyh7IFN0YWNrTmFtZTogdGhpcy5wcm9wcy5zdGFja05hbWUsIE5leHRUb2tlbjogbmV4dFRva2VuIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIHBhZ2U/LlN0YWNrRXZlbnRzID8/IFtdKSB7XG4gICAgICAgICAgLy8gRXZlbnQgZnJvbSBiZWZvcmUgd2Ugd2VyZSBpbnRlcmVzdGVkIGluICdlbVxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLnN0YXJ0VGltZSAhPT0gdW5kZWZpbmVkICYmIGV2ZW50LlRpbWVzdGFtcCEudmFsdWVPZigpIDwgdGhpcy5wcm9wcy5zdGFydFRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudHM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQWxyZWFkeSBzZWVuIHRoaXMgb25lXG4gICAgICAgICAgaWYgKHRoaXMuZXZlbnRJZHMuaGFzKGV2ZW50LkV2ZW50SWQhKSkge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50cztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ldmVudElkcy5hZGQoZXZlbnQuRXZlbnRJZCEpO1xuXG4gICAgICAgICAgY29uc3QgaXNQYXJlbnRTdGFja0V2ZW50ID0gaXNSb290U3RhY2tFdmVudChldmVudCk7XG4gICAgICAgICAgaWYgKGlzUGFyZW50U3RhY2tFdmVudCAmJiB0aGlzLnByb3BzLnN0YWNrU3RhdHVzZXM/LmluY2x1ZGVzKGV2ZW50LlJlc291cmNlU3RhdHVzID8/ICcnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50cztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGcmVzaCBldmVudFxuICAgICAgICAgIGNvbnN0IHJlc0V2ZW50OiBSZXNvdXJjZUV2ZW50ID0ge1xuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgcGFyZW50U3RhY2tMb2dpY2FsSWRzOiB0aGlzLnByb3BzLnBhcmVudFN0YWNrTG9naWNhbElkcyA/PyBbXSxcbiAgICAgICAgICAgIGlzU3RhY2tFdmVudDogaXNQYXJlbnRTdGFja0V2ZW50LFxuICAgICAgICAgIH07XG4gICAgICAgICAgZXZlbnRzLnB1c2gocmVzRXZlbnQpO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWlzUGFyZW50U3RhY2tFdmVudCAmJlxuICAgICAgICAgICAgICBldmVudC5SZXNvdXJjZVR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgJiZcbiAgICAgICAgICAgICAgaXNTdGFja0JlZ2luT3BlcmF0aW9uU3RhdGUoZXZlbnQuUmVzb3VyY2VTdGF0dXMpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgZXZlbnQgaXMgbm90IGZvciBgdGhpc2Agc3RhY2sgYW5kIGhhcyBhIHBoeXNpY2FsIHJlc291cmNlIElkLCByZWN1cnNpdmVseSBjYWxsIGZvciBldmVudHMgaW4gdGhlIG5lc3RlZCBzdGFja1xuICAgICAgICAgICAgdGhpcy50cmFja05lc3RlZFN0YWNrKGV2ZW50LCBbLi4uKHRoaXMucHJvcHMucGFyZW50U3RhY2tMb2dpY2FsSWRzID8/IFtdKSwgZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJyddKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaXNQYXJlbnRTdGFja0V2ZW50ICYmIGlzU3RhY2tUZXJtaW5hbFN0YXRlKGV2ZW50LlJlc291cmNlU3RhdHVzKSkge1xuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbmV4dFRva2VuID0gcGFnZT8uTmV4dFRva2VuO1xuICAgICAgICBpZiAobmV4dFRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghKGUubmFtZSA9PT0gJ1ZhbGlkYXRpb25FcnJvcicgJiYgZm9ybWF0RXJyb3JNZXNzYWdlKGUpID09PSBgU3RhY2sgWyR7dGhpcy5wcm9wcy5zdGFja05hbWV9XSBkb2VzIG5vdCBleGlzdGApKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiB0aGUgQ1JFQVRFX0lOX1BST0dSRVNTLCBVUERBVEVfSU5fUFJPR1JFU1MsIERFTEVURV9JTl9QUk9HUkVTUyBldmVudCBvZiBhIG5lc3RlZCBzdGFjaywgcG9sbCB0aGUgbmVzdGVkIHN0YWNrIHVwZGF0ZXNcbiAgICovXG4gIHByaXZhdGUgdHJhY2tOZXN0ZWRTdGFjayhldmVudDogU3RhY2tFdmVudCwgcGFyZW50U3RhY2tMb2dpY2FsSWRzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGxvZ2ljYWxJZCA9IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkO1xuICAgIGNvbnN0IHBoeXNpY2FsUmVzb3VyY2VJZCA9IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZDtcblxuICAgIC8vIFRoZSBDUkVBVEVfSU5fUFJPR1JFU1MgZXZlbnQgZm9yIGEgTmVzdGVkIFN0YWNrIGlzIGVtaXR0ZWQgdHdpY2U7IGZpcnN0IHdpdGhvdXQgYSBQaHlzaWNhbFJlc291cmNlSWRcbiAgICAvLyBhbmQgdGhlbiB3aXRoLiBJZ25vcmUgdGhpcyBldmVudCBpZiB3ZSBkb24ndCBoYXZlIHRoYXQgcHJvcGVydHkgeWV0LlxuICAgIC8vXG4gICAgLy8gKEF0IHRoaXMgcG9pbnQsIEkgYWxzbyBkb24ndCB0cnVzdCB0aGF0IGxvZ2ljYWxJZCBpcyBhbHdheXMgZ29pbmcgdG8gYmUgdGhlcmUgc28gdmFsaWRhdGUgdGhhdCBhcyB3ZWxsKVxuICAgIGlmICghbG9naWNhbElkIHx8ICFwaHlzaWNhbFJlc291cmNlSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubmVzdGVkU3RhY2tQb2xsZXJzW2xvZ2ljYWxJZF0pIHtcbiAgICAgIHRoaXMubmVzdGVkU3RhY2tQb2xsZXJzW2xvZ2ljYWxJZF0gPSBuZXcgU3RhY2tFdmVudFBvbGxlcih0aGlzLmNmbiwge1xuICAgICAgICBzdGFja05hbWU6IHBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgICAgICAgcGFyZW50U3RhY2tMb2dpY2FsSWRzOiBwYXJlbnRTdGFja0xvZ2ljYWxJZHMsXG4gICAgICAgIHN0YXJ0VGltZTogZXZlbnQuVGltZXN0YW1wIS52YWx1ZU9mKCksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTdGFja0JlZ2luT3BlcmF0aW9uU3RhdGUoc3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gW1xuICAgICdDUkVBVEVfSU5fUFJPR1JFU1MnLFxuICAgICdVUERBVEVfSU5fUFJPR1JFU1MnLFxuICAgICdERUxFVEVfSU5fUFJPR1JFU1MnLFxuICAgICdVUERBVEVfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLFxuICAgICdST0xMQkFDS19JTl9QUk9HUkVTUycsXG4gIF0uaW5jbHVkZXMoc3RhdGUgPz8gJycpO1xufVxuXG5mdW5jdGlvbiBpc1N0YWNrVGVybWluYWxTdGF0ZShzdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiAhKHN0YXRlID8/ICcnKS5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJyk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackProgressMonitor = void 0;\nconst util = require(\"util\");\nconst util_1 = require(\"../../util\");\n/**\n * Monitors stack progress.s\n */\nclass StackProgressMonitor {\n /**\n * Previous completion state observed by logical ID\n *\n * We use this to detect that if we see a DELETE_COMPLETE after a\n * CREATE_COMPLETE, it's actually a rollback and we should DECREASE\n * resourcesDone instead of increase it\n */\n resourcesPrevCompleteState = {};\n /**\n * Count of resources that have reported a _COMPLETE status\n */\n resourcesDone = 0;\n /**\n * How many digits we need to represent the total count (for lining up the status reporting)\n */\n resourceDigits = 0;\n /**\n * Number of expected resources in the monitor.\n */\n resourcesTotal;\n constructor(resourcesTotal) {\n // +1 because the stack also emits a \"COMPLETE\" event at the end, and that wasn't\n // counted yet. This makes it line up with the amount of events we expect.\n this.resourcesTotal = resourcesTotal ? resourcesTotal + 1 : undefined;\n // How many digits does this number take to represent?\n this.resourceDigits = this.resourcesTotal ? Math.ceil(Math.log10(this.resourcesTotal)) : 0;\n }\n /**\n * Report the stack progress\n */\n get progress() {\n return {\n total: this.total,\n completed: this.completed,\n formatted: this.formatted,\n };\n }\n /**\n * The total number of progress monitored resources.\n */\n get total() {\n return this.resourcesTotal;\n }\n /**\n * The number of completed resources.\n */\n get completed() {\n return this.resourcesDone;\n }\n /**\n * Report the current progress as a [34/42] string, or just [34] if the total is unknown\n */\n get formatted() {\n if (this.resourcesTotal == null) {\n // Don't have total, show simple count and hope the human knows\n return (0, util_1.padLeft)(3, util.format('%s', this.resourcesDone)); // max 500 resources\n }\n return util.format('%s/%s', (0, util_1.padLeft)(this.resourceDigits, this.resourcesDone.toString()), (0, util_1.padLeft)(this.resourceDigits, this.resourcesTotal.toString()));\n }\n /**\n * Process as stack event and update the progress state.\n */\n process(event) {\n const status = event.ResourceStatus;\n if (!status || !event.LogicalResourceId) {\n return;\n }\n if (status.endsWith('_COMPLETE_CLEANUP_IN_PROGRESS')) {\n this.resourcesDone++;\n }\n if (status.endsWith('_COMPLETE')) {\n const prevState = this.resourcesPrevCompleteState[event.LogicalResourceId];\n if (!prevState) {\n this.resourcesDone++;\n }\n else {\n // If we completed this before and we're completing it AGAIN, means we're rolling back.\n // Protect against silly underflow.\n this.resourcesDone--;\n if (this.resourcesDone < 0) {\n this.resourcesDone = 0;\n }\n }\n this.resourcesPrevCompleteState[event.LogicalResourceId] = status;\n }\n }\n}\nexports.StackProgressMonitor = StackProgressMonitor;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stcHJvZ3Jlc3MtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLXByb2dyZXNzLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRzdCLHFDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBQy9COzs7Ozs7T0FNRztJQUNLLDBCQUEwQixHQUEyQixFQUFFLENBQUM7SUFFaEU7O09BRUc7SUFDSyxhQUFhLEdBQVcsQ0FBQyxDQUFDO0lBRWxDOztPQUVHO0lBQ2MsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUU1Qzs7T0FFRztJQUNjLGNBQWMsQ0FBVTtJQUV6QyxZQUFZLGNBQXVCO1FBQ2pDLGlGQUFpRjtRQUNqRiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV0RSxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLCtEQUErRDtZQUMvRCxPQUFPLElBQUEsY0FBTyxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNoRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixPQUFPLEVBQ1AsSUFBQSxjQUFPLEVBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzNELElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEtBQWlCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTix1RkFBdUY7Z0JBQ3ZGLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZHRCxvREF1R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0V2ZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4uLy4uL3BheWxvYWRzL3Byb2dyZXNzJztcbmltcG9ydCB7IHBhZExlZnQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBNb25pdG9ycyBzdGFjayBwcm9ncmVzcy5zXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja1Byb2dyZXNzTW9uaXRvciB7XG4gIC8qKlxuICAgKiBQcmV2aW91cyBjb21wbGV0aW9uIHN0YXRlIG9ic2VydmVkIGJ5IGxvZ2ljYWwgSURcbiAgICpcbiAgICogV2UgdXNlIHRoaXMgdG8gZGV0ZWN0IHRoYXQgaWYgd2Ugc2VlIGEgREVMRVRFX0NPTVBMRVRFIGFmdGVyIGFcbiAgICogQ1JFQVRFX0NPTVBMRVRFLCBpdCdzIGFjdHVhbGx5IGEgcm9sbGJhY2sgYW5kIHdlIHNob3VsZCBERUNSRUFTRVxuICAgKiByZXNvdXJjZXNEb25lIGluc3RlYWQgb2YgaW5jcmVhc2UgaXRcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvKipcbiAgICogQ291bnQgb2YgcmVzb3VyY2VzIHRoYXQgaGF2ZSByZXBvcnRlZCBhIF9DT01QTEVURSBzdGF0dXNcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzRG9uZTogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogSG93IG1hbnkgZGlnaXRzIHdlIG5lZWQgdG8gcmVwcmVzZW50IHRoZSB0b3RhbCBjb3VudCAoZm9yIGxpbmluZyB1cCB0aGUgc3RhdHVzIHJlcG9ydGluZylcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VEaWdpdHM6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBleHBlY3RlZCByZXNvdXJjZXMgaW4gdGhlIG1vbml0b3IuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlc1RvdGFsPzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlc1RvdGFsPzogbnVtYmVyKSB7XG4gICAgLy8gKzEgYmVjYXVzZSB0aGUgc3RhY2sgYWxzbyBlbWl0cyBhIFwiQ09NUExFVEVcIiBldmVudCBhdCB0aGUgZW5kLCBhbmQgdGhhdCB3YXNuJ3RcbiAgICAvLyBjb3VudGVkIHlldC4gVGhpcyBtYWtlcyBpdCBsaW5lIHVwIHdpdGggdGhlIGFtb3VudCBvZiBldmVudHMgd2UgZXhwZWN0LlxuICAgIHRoaXMucmVzb3VyY2VzVG90YWwgPSByZXNvdXJjZXNUb3RhbCA/IHJlc291cmNlc1RvdGFsICsgMSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIEhvdyBtYW55IGRpZ2l0cyBkb2VzIHRoaXMgbnVtYmVyIHRha2UgdG8gcmVwcmVzZW50P1xuICAgIHRoaXMucmVzb3VyY2VEaWdpdHMgPSB0aGlzLnJlc291cmNlc1RvdGFsID8gTWF0aC5jZWlsKE1hdGgubG9nMTAodGhpcy5yZXNvdXJjZXNUb3RhbCkpIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIHN0YWNrIHByb2dyZXNzXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb2dyZXNzKCk6IFN0YWNrUHJvZ3Jlc3Mge1xuICAgIHJldHVybiB7XG4gICAgICB0b3RhbDogdGhpcy50b3RhbCxcbiAgICAgIGNvbXBsZXRlZDogdGhpcy5jb21wbGV0ZWQsXG4gICAgICBmb3JtYXR0ZWQ6IHRoaXMuZm9ybWF0dGVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBwcm9ncmVzcyBtb25pdG9yZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGdldCB0b3RhbCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29tcGxldGVkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29tcGxldGVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzRG9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgYXMgYSBbMzQvNDJdIHN0cmluZywgb3IganVzdCBbMzRdIGlmIHRoZSB0b3RhbCBpcyB1bmtub3duXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnJlc291cmNlc1RvdGFsID09IG51bGwpIHtcbiAgICAgIC8vIERvbid0IGhhdmUgdG90YWwsIHNob3cgc2ltcGxlIGNvdW50IGFuZCBob3BlIHRoZSBodW1hbiBrbm93c1xuICAgICAgcmV0dXJuIHBhZExlZnQoMywgdXRpbC5mb3JtYXQoJyVzJywgdGhpcy5yZXNvdXJjZXNEb25lKSk7IC8vIG1heCA1MDAgcmVzb3VyY2VzXG4gICAgfVxuXG4gICAgcmV0dXJuIHV0aWwuZm9ybWF0KFxuICAgICAgJyVzLyVzJyxcbiAgICAgIHBhZExlZnQodGhpcy5yZXNvdXJjZURpZ2l0cywgdGhpcy5yZXNvdXJjZXNEb25lLnRvU3RyaW5nKCkpLFxuICAgICAgcGFkTGVmdCh0aGlzLnJlc291cmNlRGlnaXRzLCB0aGlzLnJlc291cmNlc1RvdGFsLnRvU3RyaW5nKCkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhcyBzdGFjayBldmVudCBhbmQgdXBkYXRlIHRoZSBwcm9ncmVzcyBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBwcm9jZXNzKGV2ZW50OiBTdGFja0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gZXZlbnQuUmVzb3VyY2VTdGF0dXM7XG4gICAgaWYgKCFzdGF0dXMgfHwgIWV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFX0NMRUFOVVBfSU5fUFJPR1JFU1MnKSkge1xuICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFJykpIHtcbiAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMucmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGVbZXZlbnQuTG9naWNhbFJlc291cmNlSWRdO1xuICAgICAgaWYgKCFwcmV2U3RhdGUpIHtcbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSBjb21wbGV0ZWQgdGhpcyBiZWZvcmUgYW5kIHdlJ3JlIGNvbXBsZXRpbmcgaXQgQUdBSU4sIG1lYW5zIHdlJ3JlIHJvbGxpbmcgYmFjay5cbiAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHNpbGx5IHVuZGVyZmxvdy5cbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lLS07XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlc0RvbmUgPCAwKSB7XG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZXNvdXJjZXNQcmV2Q29tcGxldGVTdGF0ZVtldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF0gPSBzdGF0dXM7XG4gICAgfVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RollbackChoice = exports.StackStatus = void 0;\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\n/**\n * A utility class to inspect CloudFormation stack statuses.\n *\n * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html\n */\nclass StackStatus {\n name;\n reason;\n static fromStackDescription(description) {\n return new StackStatus(description.StackStatus, description.StackStatusReason);\n }\n constructor(name, reason) {\n this.name = name;\n this.reason = reason;\n }\n get isCreationFailure() {\n return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.ROLLBACK_FAILED;\n }\n get isDeleted() {\n return this.name.startsWith('DELETE_');\n }\n get isFailure() {\n return this.name.endsWith('FAILED');\n }\n get isInProgress() {\n return this.name.endsWith('_IN_PROGRESS') && !this.isReviewInProgress;\n }\n get isReviewInProgress() {\n return this.name === client_cloudformation_1.StackStatus.REVIEW_IN_PROGRESS;\n }\n get isNotFound() {\n return this.name === 'NOT_FOUND';\n }\n get isDeploySuccess() {\n return (!this.isNotFound &&\n (this.name === client_cloudformation_1.StackStatus.CREATE_COMPLETE ||\n this.name === client_cloudformation_1.StackStatus.UPDATE_COMPLETE ||\n this.name === client_cloudformation_1.StackStatus.IMPORT_COMPLETE));\n }\n get isRollbackSuccess() {\n return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_COMPLETE;\n }\n /**\n * Whether the stack is in a paused state due to `--no-rollback`.\n *\n * The possible actions here are retrying a new `--no-rollback` deployment, or initiating a rollback.\n */\n get rollbackChoice() {\n switch (this.name) {\n case client_cloudformation_1.StackStatus.CREATE_FAILED:\n case client_cloudformation_1.StackStatus.UPDATE_FAILED:\n return RollbackChoice.START_ROLLBACK;\n case client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_FAILED:\n return RollbackChoice.CONTINUE_UPDATE_ROLLBACK;\n case client_cloudformation_1.StackStatus.ROLLBACK_FAILED:\n // Unfortunately there is no option to continue a failed rollback without\n // a stable target state.\n return RollbackChoice.ROLLBACK_FAILED;\n default:\n return RollbackChoice.NONE;\n }\n }\n get isRollbackable() {\n return [RollbackChoice.START_ROLLBACK, RollbackChoice.CONTINUE_UPDATE_ROLLBACK].includes(this.rollbackChoice);\n }\n toString() {\n return this.name + (this.reason ? ` (${this.reason})` : '');\n }\n}\nexports.StackStatus = StackStatus;\n/**\n * Describe the current rollback options for this state\n */\nvar RollbackChoice;\n(function (RollbackChoice) {\n RollbackChoice[RollbackChoice[\"START_ROLLBACK\"] = 0] = \"START_ROLLBACK\";\n RollbackChoice[RollbackChoice[\"CONTINUE_UPDATE_ROLLBACK\"] = 1] = \"CONTINUE_UPDATE_ROLLBACK\";\n /**\n * A sign that stack creation AND its rollback have failed.\n *\n * There is no way to recover from this, other than recreating the stack.\n */\n RollbackChoice[RollbackChoice[\"ROLLBACK_FAILED\"] = 2] = \"ROLLBACK_FAILED\";\n RollbackChoice[RollbackChoice[\"NONE\"] = 3] = \"NONE\";\n})(RollbackChoice || (exports.RollbackChoice = RollbackChoice = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBFQUF5RjtBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBYSxXQUFXO0lBTUo7SUFDQTtJQU5YLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFrQjtRQUNuRCxPQUFPLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFZLEVBQUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFlBQ2tCLElBQVksRUFDWixNQUFlO1FBRGYsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFdBQU0sR0FBTixNQUFNLENBQVM7SUFFakMsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUM7SUFDcEcsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDaEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsZUFBZTtnQkFDekMsSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGVBQWU7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsd0JBQXdCLENBQUM7SUFDN0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGNBQWM7UUFDaEIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxtQ0FBWSxDQUFDLGFBQWEsQ0FBQztZQUNoQyxLQUFLLG1DQUFZLENBQUMsYUFBYTtnQkFDN0IsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLEtBQUssbUNBQVksQ0FBQyxzQkFBc0I7Z0JBQ3RDLE9BQU8sY0FBYyxDQUFDLHdCQUF3QixDQUFDO1lBQ2pELEtBQUssbUNBQVksQ0FBQyxlQUFlO2dCQUMvQix5RUFBeUU7Z0JBQ3pFLHlCQUF5QjtnQkFDekIsT0FBTyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ3hDO2dCQUNFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQTVFRCxrQ0E0RUM7QUFFRDs7R0FFRztBQUNILElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4Qix1RUFBYyxDQUFBO0lBQ2QsMkZBQXdCLENBQUE7SUFDeEI7Ozs7T0FJRztJQUNILHlFQUFlLENBQUE7SUFDZixtREFBSSxDQUFBO0FBQ04sQ0FBQyxFQVZXLGNBQWMsOEJBQWQsY0FBYyxRQVV6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgU3RhY2ssIFN0YWNrU3RhdHVzIGFzIF9TdGFja1N0YXR1cyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIGluc3BlY3QgQ2xvdWRGb3JtYXRpb24gc3RhY2sgc3RhdHVzZXMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tZGVzY3JpYmluZy1zdGFja3MuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgU3RhY2tTdGF0dXMge1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGFja0Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBTdGFjaykge1xuICAgIHJldHVybiBuZXcgU3RhY2tTdGF0dXMoZGVzY3JpcHRpb24uU3RhY2tTdGF0dXMhLCBkZXNjcmlwdGlvbi5TdGFja1N0YXR1c1JlYXNvbik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb24/OiBzdHJpbmcsXG4gICkge1xuICB9XG5cbiAgZ2V0IGlzQ3JlYXRpb25GYWlsdXJlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19DT01QTEVURSB8fCB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19GQUlMRUQ7XG4gIH1cblxuICBnZXQgaXNEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUuc3RhcnRzV2l0aCgnREVMRVRFXycpO1xuICB9XG5cbiAgZ2V0IGlzRmFpbHVyZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLmVuZHNXaXRoKCdGQUlMRUQnKTtcbiAgfVxuXG4gIGdldCBpc0luUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZS5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJykgJiYgIXRoaXMuaXNSZXZpZXdJblByb2dyZXNzO1xuICB9XG5cbiAgZ2V0IGlzUmV2aWV3SW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUkVWSUVXX0lOX1BST0dSRVNTO1xuICB9XG5cbiAgZ2V0IGlzTm90Rm91bmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZSA9PT0gJ05PVF9GT1VORCc7XG4gIH1cblxuICBnZXQgaXNEZXBsb3lTdWNjZXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5pc05vdEZvdW5kICYmXG4gICAgICAodGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuQ1JFQVRFX0NPTVBMRVRFIHx8XG4gICAgICAgIHRoaXMubmFtZSA9PT0gX1N0YWNrU3RhdHVzLlVQREFURV9DT01QTEVURSB8fFxuICAgICAgICB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5JTVBPUlRfQ09NUExFVEUpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc1JvbGxiYWNrU3VjY2VzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUk9MTEJBQ0tfQ09NUExFVEUgfHwgdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0NPTVBMRVRFO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrIGlzIGluIGEgcGF1c2VkIHN0YXRlIGR1ZSB0byBgLS1uby1yb2xsYmFja2AuXG4gICAqXG4gICAqIFRoZSBwb3NzaWJsZSBhY3Rpb25zIGhlcmUgYXJlIHJldHJ5aW5nIGEgbmV3IGAtLW5vLXJvbGxiYWNrYCBkZXBsb3ltZW50LCBvciBpbml0aWF0aW5nIGEgcm9sbGJhY2suXG4gICAqL1xuICBnZXQgcm9sbGJhY2tDaG9pY2UoKTogUm9sbGJhY2tDaG9pY2Uge1xuICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XG4gICAgICBjYXNlIF9TdGFja1N0YXR1cy5DUkVBVEVfRkFJTEVEOlxuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLlNUQVJUX1JPTExCQUNLO1xuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLkNPTlRJTlVFX1VQREFURV9ST0xMQkFDSztcbiAgICAgIGNhc2UgX1N0YWNrU3RhdHVzLlJPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgLy8gVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBubyBvcHRpb24gdG8gY29udGludWUgYSBmYWlsZWQgcm9sbGJhY2sgd2l0aG91dFxuICAgICAgICAvLyBhIHN0YWJsZSB0YXJnZXQgc3RhdGUuXG4gICAgICAgIHJldHVybiBSb2xsYmFja0Nob2ljZS5ST0xMQkFDS19GQUlMRUQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gUm9sbGJhY2tDaG9pY2UuTk9ORTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNSb2xsYmFja2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtSb2xsYmFja0Nob2ljZS5TVEFSVF9ST0xMQkFDSywgUm9sbGJhY2tDaG9pY2UuQ09OVElOVUVfVVBEQVRFX1JPTExCQUNLXS5pbmNsdWRlcyh0aGlzLnJvbGxiYWNrQ2hvaWNlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUgKyAodGhpcy5yZWFzb24gPyBgICgke3RoaXMucmVhc29ufSlgIDogJycpO1xuICB9XG59XG5cbi8qKlxuICogRGVzY3JpYmUgdGhlIGN1cnJlbnQgcm9sbGJhY2sgb3B0aW9ucyBmb3IgdGhpcyBzdGF0ZVxuICovXG5leHBvcnQgZW51bSBSb2xsYmFja0Nob2ljZSB7XG4gIFNUQVJUX1JPTExCQUNLLFxuICBDT05USU5VRV9VUERBVEVfUk9MTEJBQ0ssXG4gIC8qKlxuICAgKiBBIHNpZ24gdGhhdCBzdGFjayBjcmVhdGlvbiBBTkQgaXRzIHJvbGxiYWNrIGhhdmUgZmFpbGVkLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gcmVjb3ZlciBmcm9tIHRoaXMsIG90aGVyIHRoYW4gcmVjcmVhdGluZyB0aGUgc3RhY2suXG4gICAqL1xuICBST0xMQkFDS19GQUlMRUQsXG4gIE5PTkUsXG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringWriteStream = void 0;\nconst node_stream_1 = require(\"node:stream\");\n/*\n * Custom writable stream that collects text into a string buffer.\n * Used on classes that take in and directly write to a stream, but\n * we intend to capture the output rather than print.\n */\nclass StringWriteStream extends node_stream_1.Writable {\n buffer = [];\n /**\n * Terminal width in columns.\n * Used by formatTable() to apply width constraints and prevent table overflow.\n */\n get columns() {\n return process.stdout.columns;\n }\n constructor() {\n super();\n }\n _write(chunk, _encoding, callback) {\n this.buffer.push(chunk.toString());\n callback();\n }\n toString() {\n return this.buffer.join('');\n }\n}\nexports.StringWriteStream = StringWriteStream;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmVhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFRO0lBQ3JDLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFOUI7OztPQUdHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVUsRUFBRSxTQUFpQixFQUFFLFFBQXdDO1FBQzVFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQXZCRCw4Q0F1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJztcblxuLypcbiAqIEN1c3RvbSB3cml0YWJsZSBzdHJlYW0gdGhhdCBjb2xsZWN0cyB0ZXh0IGludG8gYSBzdHJpbmcgYnVmZmVyLlxuICogVXNlZCBvbiBjbGFzc2VzIHRoYXQgdGFrZSBpbiBhbmQgZGlyZWN0bHkgd3JpdGUgdG8gYSBzdHJlYW0sIGJ1dFxuICogd2UgaW50ZW5kIHRvIGNhcHR1cmUgdGhlIG91dHB1dCByYXRoZXIgdGhhbiBwcmludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmluZ1dyaXRlU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICBwcml2YXRlIGJ1ZmZlcjogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGVybWluYWwgd2lkdGggaW4gY29sdW1ucy5cbiAgICogVXNlZCBieSBmb3JtYXRUYWJsZSgpIHRvIGFwcGx5IHdpZHRoIGNvbnN0cmFpbnRzIGFuZCBwcmV2ZW50IHRhYmxlIG92ZXJmbG93LlxuICAgKi9cbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3dyaXRlKGNodW5rOiBhbnksIF9lbmNvZGluZzogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXIucHVzaChjaHVuay50b1N0cmluZygpKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXIuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./tags\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWdzJztcbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./util\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tagsForStack = tagsForStack;\n/**\n * @returns an array with the tags available in the stack metadata.\n */\nfunction tagsForStack(stack) {\n return Object.entries(stack.tags).map(([Key, Value]) => ({ Key, Value }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvQ0FFQztBQUxEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQXdDO0lBQ25FLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFRhZyB9IGZyb20gJy4uL3RhZ3MnO1xuXG4vKipcbiAqIEByZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIHRhZ3MgYXZhaWxhYmxlIGluIHRoZSBzdGFjayBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhZ3NGb3JTdGFjayhzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KTogVGFnW10ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc3RhY2sudGFncykubWFwKChbS2V5LCBWYWx1ZV0pID0+ICh7IEtleSwgVmFsdWUgfSkpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgcmVhZG9ubHkgS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IFZhbHVlOiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToolkitInfo = exports.DEFAULT_TOOLKIT_STACK_NAME = void 0;\nconst util_1 = require(\"util\");\nconst chalk = require(\"chalk\");\nconst bootstrap_props_1 = require(\"./bootstrap/bootstrap-props\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst cfn_api_1 = require(\"./deployments/cfn-api\");\nexports.DEFAULT_TOOLKIT_STACK_NAME = 'CDKToolkit';\n/**\n * Information on the Bootstrap stack of the environment we're deploying to.\n *\n * This class serves to:\n *\n * - Inspect the bootstrap stack, and return various properties of it for successful\n * asset deployment (in case of legacy-synthesized stacks).\n * - Validate the version of the target environment, and nothing else (in case of\n * default-synthesized stacks).\n *\n * An object of this type might represent a bootstrap stack that could not be found.\n * This is not an issue unless any members are used that require the bootstrap stack\n * to have been found, in which case an error is thrown (default-synthesized stacks\n * should never run into this as they don't need information from the bootstrap\n * stack, all information is already encoded into the Cloud Assembly Manifest).\n *\n * Nevertheless, an instance of this class exists to serve as a cache for SSM\n * parameter lookups (otherwise, the \"bootstrap stack version\" parameter would\n * need to be read repeatedly).\n *\n * Called \"ToolkitInfo\" for historical reasons.\n *\n */\nclass ToolkitInfo {\n static determineName(overrideName) {\n return overrideName ?? exports.DEFAULT_TOOLKIT_STACK_NAME;\n }\n static async lookup(environment, sdk, ioHelper, stackName) {\n const cfn = sdk.cloudFormation();\n stackName = ToolkitInfo.determineName(stackName);\n try {\n const stack = await (0, cfn_api_1.stabilizeStack)(cfn, ioHelper, stackName);\n if (!stack) {\n await ioHelper.defaults.debug((0, util_1.format)(\"The environment %s doesn't have the CDK toolkit stack (%s) installed. Use %s to setup your environment for use with the toolkit.\", environment.name, stackName, chalk.blue(`cdk bootstrap \"${environment.name}\"`)));\n return ToolkitInfo.bootstrapStackNotFoundInfo(stackName);\n }\n if (stack.stackStatus.isCreationFailure) {\n // Treat a \"failed to create\" bootstrap stack as an absent one.\n await ioHelper.defaults.debug((0, util_1.format)('The environment %s has a CDK toolkit stack (%s) that failed to create. Use %s to try provisioning it again.', environment.name, stackName, chalk.blue(`cdk bootstrap \"${environment.name}\"`)));\n return ToolkitInfo.bootstrapStackNotFoundInfo(stackName);\n }\n return new ExistingToolkitInfo(stack);\n }\n catch (e) {\n return ToolkitInfo.bootstrapStackLookupError(stackName, e);\n }\n }\n static fromStack(stack) {\n return new ExistingToolkitInfo(stack);\n }\n static bootstrapStackNotFoundInfo(stackName) {\n return new BootstrapStackNotFoundInfo(stackName, \"This deployment requires a bootstrap stack with a known name; pass '--toolkit-stack-name' or switch to using the 'DefaultStackSynthesizer' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)\");\n }\n static bootstrapStackLookupError(stackName, e) {\n return new BootstrapStackNotFoundInfo(stackName, `This deployment requires a bootstrap stack with a known name, but during its lookup the following error occurred: ${e}; pass \\'--toolkit-stack-name\\' or switch to using the \\'DefaultStackSynthesizer\\' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)`);\n }\n constructor() {\n }\n}\nexports.ToolkitInfo = ToolkitInfo;\n/**\n * Returned when a bootstrap stack is found\n */\nclass ExistingToolkitInfo extends ToolkitInfo {\n bootstrapStack;\n found = true;\n constructor(bootstrapStack) {\n super();\n this.bootstrapStack = bootstrapStack;\n }\n get bucketUrl() {\n return `https://${this.requireOutput(bootstrap_props_1.BUCKET_DOMAIN_NAME_OUTPUT)}`;\n }\n get bucketName() {\n return this.requireOutput(bootstrap_props_1.BUCKET_NAME_OUTPUT);\n }\n get repositoryName() {\n return this.requireOutput(bootstrap_props_1.REPOSITORY_NAME_OUTPUT);\n }\n get version() {\n return parseInt(this.bootstrapStack.outputs[bootstrap_props_1.BOOTSTRAP_VERSION_OUTPUT] ?? '0', 10);\n }\n get variant() {\n return this.bootstrapStack.parameters[bootstrap_props_1.BOOTSTRAP_VARIANT_PARAMETER] ?? bootstrap_props_1.DEFAULT_BOOTSTRAP_VARIANT;\n }\n get parameters() {\n return this.bootstrapStack.parameters ?? {};\n }\n get terminationProtection() {\n return this.bootstrapStack.terminationProtection ?? false;\n }\n get stackName() {\n return this.bootstrapStack.stackName;\n }\n /**\n * Prepare an ECR repository for uploading to using Docker\n *\n */\n requireOutput(output) {\n if (!(output in this.bootstrapStack.outputs)) {\n throw new toolkit_error_1.ToolkitError('MissingBootstrapStackOutput', `The CDK toolkit stack (${this.bootstrapStack.stackName}) does not have an output named ${output}. Use 'cdk bootstrap' to correct this.`);\n }\n return this.bootstrapStack.outputs[output];\n }\n}\n/**\n * Returned when a bootstrap stack could not be found\n *\n * This is not an error in principle, UNTIL one of the members is called that requires\n * the bootstrap stack to have been found, in which case the lookup error is still thrown\n * belatedly.\n *\n * The errors below serve as a last stop-gap message--normally calling code should have\n * checked `toolkit.found` and produced an appropriate error message.\n */\nclass BootstrapStackNotFoundInfo extends ToolkitInfo {\n stackName;\n errorMessage;\n found = false;\n constructor(stackName, errorMessage) {\n super();\n this.stackName = stackName;\n this.errorMessage = errorMessage;\n }\n get bootstrapStack() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get bucketUrl() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get bucketName() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get repositoryName() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get version() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get variant() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n prepareEcrRepository() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidG9vbGtpdC1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUE4QjtBQUU5QiwrQkFBK0I7QUFFL0IsaUVBT3FDO0FBRXJDLDREQUF3RDtBQUN4RCxtREFBdUQ7QUFHMUMsUUFBQSwwQkFBMEIsR0FBRyxZQUFZLENBQUM7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFzQixXQUFXO0lBQ3hCLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBcUI7UUFDL0MsT0FBTyxZQUFZLElBQUksa0NBQTBCLENBQUM7SUFDcEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN4QixXQUE4QixFQUM5QixHQUFRLEVBQ1IsUUFBa0IsRUFDbEIsU0FBNkI7UUFFN0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLFNBQVMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSx3QkFBYyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQzNCLElBQUEsYUFBTSxFQUNKLGtJQUFrSSxFQUNsSSxXQUFXLENBQUMsSUFBSSxFQUNoQixTQUFTLEVBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQ2xELENBQ0YsQ0FBQztnQkFDRixPQUFPLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENB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dCB7IGZvcm1hdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHtcbiAgQk9PVFNUUkFQX1ZBUklBTlRfUEFSQU1FVEVSLFxuICBCT09UU1RSQVBfVkVSU0lPTl9PVVRQVVQsXG4gIEJVQ0tFVF9ET01BSU5fTkFNRV9PVVRQVVQsXG4gIEJVQ0tFVF9OQU1FX09VVFBVVCxcbiAgREVGQVVMVF9CT09UU1RSQVBfVkFSSUFOVCxcbiAgUkVQT1NJVE9SWV9OQU1FX09VVFBVVCxcbn0gZnJvbSAnLi9ib290c3RyYXAvYm9vdHN0cmFwLXByb3BzJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFjayB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IHN0YWJpbGl6ZVN0YWNrIH0gZnJvbSAnLi9kZXBsb3ltZW50cy9jZm4tYXBpJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuL2lvL3ByaXZhdGUnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgPSAnQ0RLVG9vbGtpdCc7XG5cbi8qKlxuICogSW5mb3JtYXRpb24gb24gdGhlIEJvb3RzdHJhcCBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgd2UncmUgZGVwbG95aW5nIHRvLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2VydmVzIHRvOlxuICpcbiAqIC0gSW5zcGVjdCB0aGUgYm9vdHN0cmFwIHN0YWNrLCBhbmQgcmV0dXJuIHZhcmlvdXMgcHJvcGVydGllcyBvZiBpdCBmb3Igc3VjY2Vzc2Z1bFxuICogICBhc3NldCBkZXBsb3ltZW50IChpbiBjYXNlIG9mIGxlZ2FjeS1zeW50aGVzaXplZCBzdGFja3MpLlxuICogLSBWYWxpZGF0ZSB0aGUgdmVyc2lvbiBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LCBhbmQgbm90aGluZyBlbHNlIChpbiBjYXNlIG9mXG4gKiAgIGRlZmF1bHQtc3ludGhlc2l6ZWQgc3RhY2tzKS5cbiAqXG4gKiBBbiBvYmplY3Qgb2YgdGhpcyB0eXBlIG1pZ2h0IHJlcHJlc2VudCBhIGJvb3RzdHJhcCBzdGFjayB0aGF0IGNvdWxkIG5vdCBiZSBmb3VuZC5cbiAqIFRoaXMgaXMgbm90IGFuIGlzc3VlIHVubGVzcyBhbnkgbWVtYmVycyBhcmUgdXNlZCB0aGF0IHJlcXVpcmUgdGhlIGJvb3RzdHJhcCBzdGFja1xuICogdG8gaGF2ZSBiZWVuIGZvdW5kLCBpbiB3aGljaCBjYXNlIGFuIGVycm9yIGlzIHRocm93biAoZGVmYXVsdC1zeW50aGVzaXplZCBzdGFja3NcbiAqIHNob3VsZCBuZXZlciBydW4gaW50byB0aGlzIGFzIHRoZXkgZG9uJ3QgbmVlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBib290c3RyYXBcbiAqIHN0YWNrLCBhbGwgaW5mb3JtYXRpb24gaXMgYWxyZWFkeSBlbmNvZGVkIGludG8gdGhlIENsb3VkIEFzc2VtYmx5IE1hbmlmZXN0KS5cbiAqXG4gKiBOZXZlcnRoZWxlc3MsIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgZXhpc3RzIHRvIHNlcnZlIGFzIGEgY2FjaGUgZm9yIFNTTVxuICogcGFyYW1ldGVyIGxvb2t1cHMgKG90aGVyd2lzZSwgdGhlIFwiYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cIiBwYXJhbWV0ZXIgd291bGRcbiAqIG5lZWQgdG8gYmUgcmVhZCByZXBlYXRlZGx5KS5cbiAqXG4gKiBDYWxsZWQgXCJUb29sa2l0SW5mb1wiIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9vbGtpdEluZm8ge1xuICBwdWJsaWMgc3RhdGljIGRldGVybWluZU5hbWUob3ZlcnJpZGVOYW1lPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG92ZXJyaWRlTmFtZSA/PyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbG9va3VwKFxuICAgIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbiAgICBzZGs6IFNESyxcbiAgICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICk6IFByb21pc2U8VG9vbGtpdEluZm8+IHtcbiAgICBjb25zdCBjZm4gPSBzZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgICBzdGFja05hbWUgPSBUb29sa2l0SW5mby5kZXRlcm1pbmVOYW1lKHN0YWNrTmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YWNrID0gYXdhaXQgc3RhYmlsaXplU3RhY2soY2ZuLCBpb0hlbHBlciwgc3RhY2tOYW1lKTtcbiAgICAgIGlmICghc3RhY2spIHtcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoXG4gICAgICAgICAgZm9ybWF0KFxuICAgICAgICAgICAgXCJUaGUgZW52aXJvbm1lbnQgJXMgZG9lc24ndCBoYXZlIHRoZSBDREsgdG9vbGtpdCBzdGFjayAoJXMpIGluc3RhbGxlZC4gVXNlICVzIHRvIHNldHVwIHlvdXIgZW52aXJvbm1lbnQgZm9yIHVzZSB3aXRoIHRoZSB0b29sa2l0LlwiLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQubmFtZSxcbiAgICAgICAgICAgIHN0YWNrTmFtZSxcbiAgICAgICAgICAgIGNoYWxrLmJsdWUoYGNkayBib290c3RyYXAgXCIke2Vudmlyb25tZW50Lm5hbWV9XCJgKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gVG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGFjay5zdGFja1N0YXR1cy5pc0NyZWF0aW9uRmFpbHVyZSkge1xuICAgICAgICAvLyBUcmVhdCBhIFwiZmFpbGVkIHRvIGNyZWF0ZVwiIGJvb3RzdHJhcCBzdGFjayBhcyBhbiBhYnNlbnQgb25lLlxuICAgICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhcbiAgICAgICAgICBmb3JtYXQoXG4gICAgICAgICAgICAnVGhlIGVudmlyb25tZW50ICVzIGhhcyBhIENESyB0b29sa2l0IHN0YWNrICglcykgdGhhdCBmYWlsZWQgdG8gY3JlYXRlLiBVc2UgJXMgdG8gdHJ5IHByb3Zpc2lvbmluZyBpdCBhZ2Fpbi4nLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQubmFtZSxcbiAgICAgICAgICAgIHN0YWNrTmFtZSxcbiAgICAgICAgICAgIGNoYWxrLmJsdWUoYGNkayBib290c3RyYXAgXCIke2Vudmlyb25tZW50Lm5hbWV9XCJgKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gVG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBFeGlzdGluZ1Rvb2xraXRJbmZvKHN0YWNrKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiBUb29sa2l0SW5mby5ib290c3RyYXBTdGFja0xvb2t1cEVycm9yKHN0YWNrTmFtZSwgZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RhY2soc3RhY2s6IENsb3VkRm9ybWF0aW9uU3RhY2spOiBUb29sa2l0SW5mbyB7XG4gICAgcmV0dXJuIG5ldyBFeGlzdGluZ1Rvb2xraXRJbmZvKHN0YWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lOiBzdHJpbmcpOiBUb29sa2l0SW5mbyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja05vdEZvdW5kSW5mbyhcbiAgICAgIHN0YWNrTmFtZSxcbiAgICAgIFwiVGhpcyBkZXBsb3ltZW50IHJlcXVpcmVzIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBrbm93biBuYW1lOyBwYXNzICctLXRvb2xraXQtc3RhY2stbmFtZScgb3Igc3dpdGNoIHRvIHVzaW5nIHRoZSAnRGVmYXVsdFN0YWNrU3ludGhlc2l6ZXInIChzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvYm9vdHN0cmFwcGluZy5odG1sKVwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGJvb3RzdHJhcFN0YWNrTG9va3VwRXJyb3Ioc3RhY2tOYW1lOiBzdHJpbmcsIGU6IEVycm9yKTogVG9vbGtpdEluZm8ge1xuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oXG4gICAgICBzdGFja05hbWUsXG4gICAgICBgVGhpcyBkZXBsb3ltZW50IHJlcXVpcmVzIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBrbm93biBuYW1lLCBidXQgZHVyaW5nIGl0cyBsb29rdXAgdGhlIGZvbGxvd2luZyBlcnJvciBvY2N1cnJlZDogJHtlfTsgcGFzcyBcXCctLXRvb2xraXQtc3RhY2stbmFtZVxcJyBvciBzd2l0Y2ggdG8gdXNpbmcgdGhlIFxcJ0RlZmF1bHRTdGFja1N5bnRoZXNpemVyXFwnIChzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvYm9vdHN0cmFwcGluZy5odG1sKWAsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmb3VuZDogYm9vbGVhbjtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJ1Y2tldFVybDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZlcnNpb246IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZhcmlhbnQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5lZCB3aGVuIGEgYm9vdHN0cmFwIHN0YWNrIGlzIGZvdW5kXG4gKi9cbmNsYXNzIEV4aXN0aW5nVG9vbGtpdEluZm8gZXh0ZW5kcyBUb29sa2l0SW5mbyB7XG4gIHB1YmxpYyByZWFkb25seSBmb3VuZCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnVja2V0VXJsKCkge1xuICAgIHJldHVybiBgaHR0cHM6Ly8ke3RoaXMucmVxdWlyZU91dHB1dChCVUNLRVRfRE9NQUlOX05BTUVfT1VUUFVUKX1gO1xuICB9XG5cbiAgcHVibGljIGdldCBidWNrZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVPdXRwdXQoQlVDS0VUX05BTUVfT1VUUFVUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVwb3NpdG9yeU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZU91dHB1dChSRVBPU0lUT1JZX05BTUVfT1VUUFVUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmVyc2lvbigpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodGhpcy5ib290c3RyYXBTdGFjay5vdXRwdXRzW0JPT1RTVFJBUF9WRVJTSU9OX09VVFBVVF0gPz8gJzAnLCAxMCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhcmlhbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVyc1tCT09UU1RSQVBfVkFSSUFOVF9QQVJBTUVURVJdID8/IERFRkFVTFRfQk9PVFNUUkFQX1ZBUklBTlQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcmFtZXRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVycyA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVybWluYXRpb25Qcm90ZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvb3RzdHJhcFN0YWNrLnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2suc3RhY2tOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYW4gRUNSIHJlcG9zaXRvcnkgZm9yIHVwbG9hZGluZyB0byB1c2luZyBEb2NrZXJcbiAgICpcbiAgICovXG4gIHByaXZhdGUgcmVxdWlyZU91dHB1dChvdXRwdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCEob3V0cHV0IGluIHRoaXMuYm9vdHN0cmFwU3RhY2sub3V0cHV0cykpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdNaXNzaW5nQm9vdHN0cmFwU3RhY2tPdXRwdXQnLFxuICAgICAgICBgVGhlIENESyB0b29sa2l0IHN0YWNrICgke3RoaXMuYm9vdHN0cmFwU3RhY2suc3RhY2tOYW1lfSkgZG9lcyBub3QgaGF2ZSBhbiBvdXRwdXQgbmFtZWQgJHtvdXRwdXR9LiBVc2UgJ2NkayBib290c3RyYXAnIHRvIGNvcnJlY3QgdGhpcy5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sub3V0cHV0c1tvdXRwdXRdO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuZWQgd2hlbiBhIGJvb3RzdHJhcCBzdGFjayBjb3VsZCBub3QgYmUgZm91bmRcbiAqXG4gKiBUaGlzIGlzIG5vdCBhbiBlcnJvciBpbiBwcmluY2lwbGUsIFVOVElMIG9uZSBvZiB0aGUgbWVtYmVycyBpcyBjYWxsZWQgdGhhdCByZXF1aXJlc1xuICogdGhlIGJvb3RzdHJhcCBzdGFjayB0byBoYXZlIGJlZW4gZm91bmQsIGluIHdoaWNoIGNhc2UgdGhlIGxvb2t1cCBlcnJvciBpcyBzdGlsbCB0aHJvd25cbiAqIGJlbGF0ZWRseS5cbiAqXG4gKiBUaGUgZXJyb3JzIGJlbG93IHNlcnZlIGFzIGEgbGFzdCBzdG9wLWdhcCBtZXNzYWdlLS1ub3JtYWxseSBjYWxsaW5nIGNvZGUgc2hvdWxkIGhhdmVcbiAqIGNoZWNrZWQgYHRvb2xraXQuZm91bmRgIGFuZCBwcm9kdWNlZCBhbiBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlLlxuICovXG5jbGFzcyBCb290c3RyYXBTdGFja05vdEZvdW5kSW5mbyBleHRlbmRzIFRvb2xraXRJbmZvIHtcbiAgcHVibGljIHJlYWRvbmx5IGZvdW5kID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JNZXNzYWdlOiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJvb3RzdHJhcFN0YWNrKCk6IENsb3VkRm9ybWF0aW9uU3RhY2sge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFN0YWNrTm90Rm91bmQnLCB0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJ1Y2tldFVybCgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFN0YWNrTm90Rm91bmQnLCB0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJ1Y2tldE5hbWUoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdCb290c3RyYXBTdGFja05vdEZvdW5kJywgdGhpcy5lcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXBvc2l0b3J5TmFtZSgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFN0YWNrTm90Rm91bmQnLCB0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZlcnNpb24oKTogbnVtYmVyIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdCb290c3RyYXBTdGFja05vdEZvdW5kJywgdGhpcy5lcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YXJpYW50KCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwU3RhY2tOb3RGb3VuZCcsIHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRWNyUmVwb3NpdG9yeSgpOiBQcm9taXNlPEVjclJlcG9zaXRvcnlJbmZvPiB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwU3RhY2tOb3RGb3VuZCcsIHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVjclJlcG9zaXRvcnlJbmZvIHtcbiAgcmVwb3NpdG9yeVVyaTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVjckNyZWRlbnRpYWxzIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgZW5kcG9pbnQ6IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.some = some;\nexports.loadTree = loadTree;\nexports.loadTreeFromDir = loadTreeFromDir;\nconst path = require(\"node:path\");\nconst fs = require(\"fs-extra\");\n/**\n * Whether the provided predicate is true for at least one element in the construct (sub-)tree.\n */\nfunction some(node, predicate) {\n return node != null && (predicate(node) || findInChildren());\n function findInChildren() {\n return Object.values(node?.children ?? {}).some(child => some(child, predicate));\n }\n}\nasync function loadTree(assembly, trace) {\n try {\n const outdir = assembly.directory;\n const fileName = assembly.tree()?.file;\n return fileName ? fs.readJSONSync(path.join(outdir, fileName)).tree : undefined;\n }\n catch (e) {\n await trace(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);\n return undefined;\n }\n}\nasync function loadTreeFromDir(outdir, trace) {\n try {\n return fs.readJSONSync(path.join(outdir, 'tree.json')).tree;\n }\n catch (e) {\n await trace(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4QkEsb0JBTUM7QUFFRCw0QkFTQztBQUVELDBDQU9DO0FBeERELGtDQUFrQztBQUVsQywrQkFBK0I7QUF5Qi9COztHQUVHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFDLElBQW1DLEVBQUUsU0FBNEM7SUFDcEcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFFN0QsU0FBUyxjQUFjO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxRQUFRLENBQUMsUUFBdUIsRUFBRSxLQUFxQztJQUMzRixJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDdkMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sS0FBSyxDQUFDLGlDQUFpQyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDL0UsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUFDLE1BQWMsRUFBRSxLQUFxQztJQUN6RixJQUFJLENBQUM7UUFDSCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuLyoqXG4gKiBTb3VyY2UgaW5mb3JtYXRpb24gb24gYSBjb25zdHJ1Y3QgKGNsYXNzIGZxbiBhbmQgdmVyc2lvbilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RJbmZvIHtcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG5vZGUgaW4gdGhlIGNvbnN0cnVjdCB0cmVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdFRyZWVOb2RlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICByZWFkb25seSBjaGlsZHJlbj86IHsgW2tleTogc3RyaW5nXTogQ29uc3RydWN0VHJlZU5vZGUgfTtcbiAgcmVhZG9ubHkgYXR0cmlidXRlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIG9uIHRoZSBjb25zdHJ1Y3QgY2xhc3MgdGhhdCBsZWQgdG8gdGhpcyBub2RlLCBpZiBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdEluZm8/OiBDb25zdHJ1Y3RJbmZvO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIHByb3ZpZGVkIHByZWRpY2F0ZSBpcyB0cnVlIGZvciBhdCBsZWFzdCBvbmUgZWxlbWVudCBpbiB0aGUgY29uc3RydWN0IChzdWItKXRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb21lKG5vZGU6IENvbnN0cnVjdFRyZWVOb2RlIHwgdW5kZWZpbmVkLCBwcmVkaWNhdGU6IChuOiBDb25zdHJ1Y3RUcmVlTm9kZSkgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xuICByZXR1cm4gbm9kZSAhPSBudWxsICYmIChwcmVkaWNhdGUobm9kZSkgfHwgZmluZEluQ2hpbGRyZW4oKSk7XG5cbiAgZnVuY3Rpb24gZmluZEluQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMobm9kZT8uY2hpbGRyZW4gPz8ge30pLnNvbWUoY2hpbGQgPT4gc29tZShjaGlsZCwgcHJlZGljYXRlKSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRUcmVlKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCB0cmFjZTogKG1zZzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxDb25zdHJ1Y3RUcmVlTm9kZSB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IG91dGRpciA9IGFzc2VtYmx5LmRpcmVjdG9yeTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGFzc2VtYmx5LnRyZWUoKT8uZmlsZTtcbiAgICByZXR1cm4gZmlsZU5hbWUgPyBmcy5yZWFkSlNPTlN5bmMocGF0aC5qb2luKG91dGRpciwgZmlsZU5hbWUpKS50cmVlIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIChlKSB7XG4gICAgYXdhaXQgdHJhY2UoYEZhaWxlZCB0byBnZXQgdHJlZS5qc29uIGZpbGU6ICR7ZX0uIFByb2NlZWRpbmcgd2l0aCBlbXB0eSB0cmVlLmApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRUcmVlRnJvbURpcihvdXRkaXI6IHN0cmluZywgdHJhY2U6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPik6IFByb21pc2U8Q29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnMucmVhZEpTT05TeW5jKHBhdGguam9pbihvdXRkaXIsICd0cmVlLmpzb24nKSkudHJlZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGF3YWl0IHRyYWNlKGBGYWlsZWQgdG8gZ2V0IHRyZWUuanNvbiBmaWxlOiAke2V9LiBQcm9jZWVkaW5nIHdpdGggZW1wdHkgdHJlZS5gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildDestroyWorkGraph = buildDestroyWorkGraph;\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst work_graph_1 = require(\"./work-graph\");\nconst work_graph_types_1 = require(\"./work-graph-types\");\n/**\n * Build a WorkGraph for destroy with reversed dependencies.\n *\n * In deploy order, if A depends on B, B is deployed first. For destroy,\n * the arrows are reversed: A must be destroyed before B.\n */\nfunction buildDestroyWorkGraph(stacks, ioHelper) {\n const graph = new work_graph_1.WorkGraph({}, ioHelper);\n const selectedIds = new Set(stacks.map((s) => s.id));\n for (const stack of stacks) {\n graph.addNodes({\n type: 'stack',\n id: stack.id,\n dependencies: new Set(),\n stack,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: 0,\n });\n }\n for (const stack of stacks) {\n for (const dep of stack.dependencies) {\n if (cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(dep) && selectedIds.has(dep.id)) {\n graph.addDependency(dep.id, stack.id);\n }\n }\n }\n return graph;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0Esc0RBd0JDO0FBbkNELHFEQUFxRDtBQUNyRCw2Q0FBeUM7QUFDekMseURBQXFEO0FBR3JEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBMkMsRUFBRSxRQUFrQjtJQUNuRyxNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXJELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osWUFBWSxFQUFFLElBQUksR0FBRyxFQUFVO1lBQy9CLEtBQUs7WUFDTCxlQUFlLEVBQUUsa0NBQWUsQ0FBQyxPQUFPO1lBQ3hDLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgV29ya0dyYXBoIH0gZnJvbSAnLi93b3JrLWdyYXBoJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbi8qKlxuICogQnVpbGQgYSBXb3JrR3JhcGggZm9yIGRlc3Ryb3kgd2l0aCByZXZlcnNlZCBkZXBlbmRlbmNpZXMuXG4gKlxuICogSW4gZGVwbG95IG9yZGVyLCBpZiBBIGRlcGVuZHMgb24gQiwgQiBpcyBkZXBsb3llZCBmaXJzdC4gRm9yIGRlc3Ryb3ksXG4gKiB0aGUgYXJyb3dzIGFyZSByZXZlcnNlZDogQSBtdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgQi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVzdHJveVdvcmtHcmFwaChzdGFja3M6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBXb3JrR3JhcGgge1xuICBjb25zdCBncmFwaCA9IG5ldyBXb3JrR3JhcGgoe30sIGlvSGVscGVyKTtcbiAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBuZXcgU2V0KHN0YWNrcy5tYXAoKHMpID0+IHMuaWQpKTtcblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGdyYXBoLmFkZE5vZGVzKHtcbiAgICAgIHR5cGU6ICdzdGFjaycsXG4gICAgICBpZDogc3RhY2suaWQsXG4gICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQ8c3RyaW5nPigpLFxuICAgICAgc3RhY2ssXG4gICAgICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HLFxuICAgICAgcHJpb3JpdHk6IDAsXG4gICAgfSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIHN0YWNrLmRlcGVuZGVuY2llcykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChkZXApICYmIHNlbGVjdGVkSWRzLmhhcyhkZXAuaWQpKSB7XG4gICAgICAgIGdyYXBoLmFkZERlcGVuZGVuY3koZGVwLmlkLCBzdGFjay5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdyYXBoO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./build-destroy-work-graph\"), exports);\n__exportStar(require(\"./work-graph\"), exports);\n__exportStar(require(\"./work-graph-builder\"), exports);\n__exportStar(require(\"./work-graph-types\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLCtDQUE2QjtBQUM3Qix1REFBcUM7QUFDckMscURBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9idWlsZC1kZXN0cm95LXdvcmstZ3JhcGgnO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrLWdyYXBoJztcbmV4cG9ydCAqIGZyb20gJy4vd29yay1ncmFwaC1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkGraphBuilder = void 0;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst work_graph_1 = require(\"./work-graph\");\nconst work_graph_types_1 = require(\"./work-graph-types\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nclass WorkGraphBuilder {\n prebuildAssets;\n idPrefix;\n /**\n * Default priorities for nodes\n *\n * Assets builds have higher priority than the other two operations, to make good on our promise that\n * '--prebuild-assets' will actually do assets before stacks (if it can). Unfortunately it is the\n * default :(\n *\n * But between stack dependencies and publish dependencies, stack dependencies go first\n */\n static PRIORITIES = {\n 'asset-build': 10,\n 'asset-publish': 0,\n 'stack': 5,\n };\n graph;\n ioHelper;\n constructor(ioHelper, prebuildAssets, idPrefix = '') {\n this.prebuildAssets = prebuildAssets;\n this.idPrefix = idPrefix;\n this.graph = new work_graph_1.WorkGraph({}, ioHelper);\n this.ioHelper = ioHelper;\n }\n addStack(artifact) {\n this.graph.addNodes({\n type: 'stack',\n id: `${this.idPrefix}${artifact.id}`,\n dependencies: new Set(this.stackArtifactIds(onlyStacks(artifact.dependencies))),\n stack: artifact,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: WorkGraphBuilder.PRIORITIES.stack,\n });\n }\n /**\n * Oof, see this parameter list\n */\n // eslint-disable-next-line @stylistic/max-len\n addAsset(parentStack, assetManifestArtifact, assetManifest, asset) {\n // Just the artifact identifier\n const assetId = asset.id.assetId;\n const buildId = `build-${assetId}-${(0, util_1.contentHashAny)([assetId, asset.genericSource]).substring(0, 10)}`;\n const publishId = `publish-${assetId}-${(0, util_1.contentHashAny)([assetId, asset.genericDestination]).substring(0, 10)}`;\n // Build node only gets added once because they are all the same\n if (!this.graph.tryGetNode(buildId)) {\n const node = {\n type: 'asset-build',\n id: buildId,\n note: asset.displayName(false),\n dependencies: new Set([\n ...this.stackArtifactIds(assetManifestArtifact.dependencies),\n // If we disable prebuild, then assets inherit (stack) dependencies from their parent stack\n ...!this.prebuildAssets ? this.stackArtifactIds(onlyStacks(parentStack.dependencies)) : [],\n ]),\n parentStack: parentStack,\n assetManifestArtifact,\n assetManifest,\n asset,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: WorkGraphBuilder.PRIORITIES['asset-build'],\n };\n this.graph.addNodes(node);\n }\n const publishNode = this.graph.tryGetNode(publishId);\n if (!publishNode) {\n this.graph.addNodes({\n type: 'asset-publish',\n id: publishId,\n note: asset.displayName(true),\n dependencies: new Set([\n buildId,\n ]),\n parentStack,\n assetManifestArtifact,\n assetManifest,\n asset,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: WorkGraphBuilder.PRIORITIES['asset-publish'],\n });\n }\n for (const inheritedDep of this.stackArtifactIds(onlyStacks(parentStack.dependencies))) {\n // The asset publish step also depends on the stacks that the parent depends on.\n // This is purely cosmetic: if we don't do this, the progress printing of asset publishing\n // is going to interfere with the progress bar of the stack deployment. We could remove this\n // for overall faster deployments if we ever have a better method of progress displaying.\n // Note: this may introduce a cycle if one of the parent's dependencies is another stack that\n // depends on this asset. To workaround this we remove these cycles once all nodes have\n // been added to the graph.\n this.graph.addDependency(publishId, inheritedDep);\n }\n // This will work whether the stack node has been added yet or not\n this.graph.addDependency(`${this.idPrefix}${parentStack.id}`, publishId);\n }\n build(artifacts) {\n const parentStacks = stacksFromAssets(artifacts);\n for (const artifact of artifacts) {\n if (cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(artifact)) {\n this.addStack(artifact);\n }\n else if (cxapi.AssetManifestArtifact.isAssetManifestArtifact(artifact)) {\n const manifest = cdk_assets_lib_1.AssetManifest.fromFile(artifact.file);\n for (const entry of manifest.entries) {\n const parentStack = parentStacks.get(artifact);\n if (parentStack === undefined) {\n throw new toolkit_error_1.ToolkitError('OrphanedAssetManifest', 'Found an asset manifest that is not associated with a stack');\n }\n this.addAsset(parentStack, artifact, manifest, entry);\n }\n }\n else if (cxapi.NestedCloudAssemblyArtifact.isNestedCloudAssemblyArtifact(artifact)) {\n const assembly = new cxapi.CloudAssembly(artifact.fullPath, { topoSort: false });\n const nestedGraph = new WorkGraphBuilder(this.ioHelper, this.prebuildAssets, `${this.idPrefix}${artifact.id}.`).build(assembly.artifacts);\n this.graph.absorb(nestedGraph);\n }\n else {\n // Ignore whatever else\n }\n }\n this.graph.removeUnavailableDependencies();\n // Remove any potentially introduced cycles between asset publishing and the stacks that depend on them.\n this.removeStackPublishCycles();\n return this.graph;\n }\n stackArtifactIds(deps) {\n return deps.flatMap((d) => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(d) ? [this.stackArtifactId(d)] : []);\n }\n stackArtifactId(artifact) {\n if (!cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(artifact)) {\n throw new toolkit_error_1.ToolkitError('InvalidArtifactType', `Can only call this on CloudFormationStackArtifact, got: ${artifact.constructor.name}`);\n }\n return `${this.idPrefix}${artifact.id}`;\n }\n /**\n * We may have accidentally introduced cycles in an attempt to make the messages printed to the\n * console not interfere with each other too much. Remove them again.\n */\n removeStackPublishCycles() {\n const publishSteps = this.graph.nodesOfType('asset-publish');\n for (const publishStep of publishSteps) {\n for (const dep of publishStep.dependencies) {\n if (this.graph.reachable(dep, publishStep.id)) {\n publishStep.dependencies.delete(dep);\n }\n }\n }\n }\n}\nexports.WorkGraphBuilder = WorkGraphBuilder;\nfunction stacksFromAssets(artifacts) {\n const ret = new Map();\n for (const stack of artifacts.filter(x => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(x))) {\n const assetArtifacts = stack.dependencies.filter((x) => cxapi.AssetManifestArtifact.isAssetManifestArtifact(x));\n for (const art of assetArtifacts) {\n ret.set(art, stack);\n }\n }\n return ret;\n}\nfunction onlyStacks(artifacts) {\n return artifacts.filter(x => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(x));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid29yay1ncmFwaC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUE2RTtBQUM3RSxxREFBcUQ7QUFDckQsNkNBQXlDO0FBRXpDLHlEQUFxRDtBQUNyRCwrREFBMkQ7QUFDM0QscUNBQTRDO0FBRzVDLE1BQWEsZ0JBQWdCO0lBb0JSO0lBQ0E7SUFwQm5COzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsR0FBcUM7UUFDM0QsYUFBYSxFQUFFLEVBQUU7UUFDakIsZUFBZSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7S0FDWCxDQUFDO0lBQ2UsS0FBSyxDQUFZO0lBQ2pCLFFBQVEsQ0FBVztJQUVwQyxZQUNFLFFBQWtCLEVBQ0QsY0FBdUIsRUFDdkIsV0FBVyxFQUFFO1FBRGIsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksc0JBQVMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUEyQztRQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNsQixJQUFJLEVBQUUsT0FBTztZQUNiLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMvRSxLQUFLLEVBQUUsUUFBUTtZQUNmLGVBQWUsRUFBRSxrQ0FBZSxDQUFDLE9BQU87WUFDeEMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFVB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Q2xELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25HLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NldE1hbmlmZXN0LCB0eXBlIElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnQGF3cy1jZGsvY2RrLWFzc2V0cy1saWInO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFdvcmtHcmFwaCB9IGZyb20gJy4vd29yay1ncmFwaCc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0QnVpbGROb2RlLCBXb3JrTm9kZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBEZXBsb3ltZW50U3RhdGUgfSBmcm9tICcuL3dvcmstZ3JhcGgtdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGNvbnRlbnRIYXNoQW55IH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBXb3JrR3JhcGhCdWlsZGVyIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdGllcyBmb3Igbm9kZXNcbiAgICpcbiAgICogQXNzZXRzIGJ1aWxkcyBoYXZlIGhpZ2hlciBwcmlvcml0eSB0aGFuIHRoZSBvdGhlciB0d28gb3BlcmF0aW9ucywgdG8gbWFrZSBnb29kIG9uIG91ciBwcm9taXNlIHRoYXRcbiAgICogJy0tcHJlYnVpbGQtYXNzZXRzJyB3aWxsIGFjdHVhbGx5IGRvIGFzc2V0cyBiZWZvcmUgc3RhY2tzIChpZiBpdCBjYW4pLiBVbmZvcnR1bmF0ZWx5IGl0IGlzIHRoZVxuICAgKiBkZWZhdWx0IDooXG4gICAqXG4gICAqIEJ1dCBiZXR3ZWVuIHN0YWNrIGRlcGVuZGVuY2llcyBhbmQgcHVibGlzaCBkZXBlbmRlbmNpZXMsIHN0YWNrIGRlcGVuZGVuY2llcyBnbyBmaXJzdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBQUklPUklUSUVTOiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHtcbiAgICAnYXNzZXQtYnVpbGQnOiAxMCxcbiAgICAnYXNzZXQtcHVibGlzaCc6IDAsXG4gICAgJ3N0YWNrJzogNSxcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBncmFwaDogV29ya0dyYXBoO1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVidWlsZEFzc2V0czogYm9vbGVhbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkUHJlZml4ID0gJycsXG4gICkge1xuICAgIHRoaXMuZ3JhcGggPSBuZXcgV29ya0dyYXBoKHt9LCBpb0hlbHBlcik7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRTdGFjayhhcnRpZmFjdDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gICAgdGhpcy5ncmFwaC5hZGROb2Rlcyh7XG4gICAgICB0eXBlOiAnc3RhY2snLFxuICAgICAgaWQ6IGAke3RoaXMuaWRQcmVmaXh9JHthcnRpZmFjdC5pZH1gLFxuICAgICAgZGVwZW5kZW5jaWVzOiBuZXcgU2V0KHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKGFydGlmYWN0LmRlcGVuZGVuY2llcykpKSxcbiAgICAgIHN0YWNrOiBhcnRpZmFjdCxcbiAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICBwcmlvcml0eTogV29ya0dyYXBoQnVpbGRlci5QUklPUklUSUVTLnN0YWNrLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9vZiwgc2VlIHRoaXMgcGFyYW1ldGVyIGxpc3RcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgcHJpdmF0ZSBhZGRBc3NldChwYXJlbnRTdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBhc3NldE1hbmlmZXN0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCwgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdCwgYXNzZXQ6IElNYW5pZmVzdEVudHJ5KSB7XG4gICAgLy8gSnVzdCB0aGUgYXJ0aWZhY3QgaWRlbnRpZmllclxuICAgIGNvbnN0IGFzc2V0SWQgPSBhc3NldC5pZC5hc3NldElkO1xuXG4gICAgY29uc3QgYnVpbGRJZCA9IGBidWlsZC0ke2Fzc2V0SWR9LSR7Y29udGVudEhhc2hBbnkoW2Fzc2V0SWQsIGFzc2V0LmdlbmVyaWNTb3VyY2VdKS5zdWJzdHJpbmcoMCwgMTApfWA7XG4gICAgY29uc3QgcHVibGlzaElkID0gYHB1Ymxpc2gtJHthc3NldElkfS0ke2NvbnRlbnRIYXNoQW55KFthc3NldElkLCBhc3NldC5nZW5lcmljRGVzdGluYXRpb25dKS5zdWJzdHJpbmcoMCwgMTApfWA7XG5cbiAgICAvLyBCdWlsZCBub2RlIG9ubHkgZ2V0cyBhZGRlZCBvbmNlIGJlY2F1c2UgdGhleSBhcmUgYWxsIHRoZSBzYW1lXG4gICAgaWYgKCF0aGlzLmdyYXBoLnRyeUdldE5vZGUoYnVpbGRJZCkpIHtcbiAgICAgIGNvbnN0IG5vZGU6IEFzc2V0QnVpbGROb2RlID0ge1xuICAgICAgICB0eXBlOiAnYXNzZXQtYnVpbGQnLFxuICAgICAgICBpZDogYnVpbGRJZCxcbiAgICAgICAgbm90ZTogYXNzZXQuZGlzcGxheU5hbWUoZmFsc2UpLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQoW1xuICAgICAgICAgIC4uLnRoaXMuc3RhY2tBcnRpZmFjdElkcyhhc3NldE1hbmlmZXN0QXJ0aWZhY3QuZGVwZW5kZW5jaWVzKSxcbiAgICAgICAgICAvLyBJZiB3ZSBkaXNhYmxlIHByZWJ1aWxkLCB0aGVuIGFzc2V0cyBpbmhlcml0IChzdGFjaykgZGVwZW5kZW5jaWVzIGZyb20gdGhlaXIgcGFyZW50IHN0YWNrXG4gICAgICAgICAgLi4uIXRoaXMucHJlYnVpbGRBc3NldHMgPyB0aGlzLnN0YWNrQXJ0aWZhY3RJZHMob25seVN0YWNrcyhwYXJlbnRTdGFjay5kZXBlbmRlbmNpZXMpKSA6IFtdLFxuICAgICAgICBdKSxcbiAgICAgICAgcGFyZW50U3RhY2s6IHBhcmVudFN0YWNrLFxuICAgICAgICBhc3NldE1hbmlmZXN0QXJ0aWZhY3QsXG4gICAgICAgIGFzc2V0TWFuaWZlc3QsXG4gICAgICAgIGFzc2V0LFxuICAgICAgICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HLFxuICAgICAgICBwcmlvcml0eTogV29ya0dyYXBoQnVpbGRlci5QUklPUklUSUVTWydhc3NldC1idWlsZCddLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMobm9kZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHVibGlzaE5vZGUgPSB0aGlzLmdyYXBoLnRyeUdldE5vZGUocHVibGlzaElkKTtcbiAgICBpZiAoIXB1Ymxpc2hOb2RlKSB7XG4gICAgICB0aGlzLmdyYXBoLmFkZE5vZGVzKHtcbiAgICAgICAgdHlwZTogJ2Fzc2V0LXB1Ymxpc2gnLFxuICAgICAgICBpZDogcHVibGlzaElkLFxuICAgICAgICBub3RlOiBhc3NldC5kaXNwbGF5TmFtZSh0cnVlKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBuZXcgU2V0KFtcbiAgICAgICAgICBidWlsZElkLFxuICAgICAgICBdKSxcbiAgICAgICAgcGFyZW50U3RhY2ssXG4gICAgICAgIGFzc2V0TWFuaWZlc3RBcnRpZmFjdCxcbiAgICAgICAgYXNzZXRNYW5pZmVzdCxcbiAgICAgICAgYXNzZXQsXG4gICAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVNbJ2Fzc2V0LXB1Ymxpc2gnXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5oZXJpdGVkRGVwIG9mIHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKHBhcmVudFN0YWNrLmRlcGVuZGVuY2llcykpKSB7XG4gICAgICAvLyBUaGUgYXNzZXQgcHVibGlzaCBzdGVwIGFsc28gZGVwZW5kcyBvbiB0aGUgc3RhY2tzIHRoYXQgdGhlIHBhcmVudCBkZXBlbmRzIG9uLlxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgY29zbWV0aWM6IGlmIHdlIGRvbid0IGRvIHRoaXMsIHRoZSBwcm9ncmVzcyBwcmludGluZyBvZiBhc3NldCBwdWJsaXNoaW5nXG4gICAgICAvLyBpcyBnb2luZyB0byBpbnRlcmZlcmUgd2l0aCB0aGUgcHJvZ3Jlc3MgYmFyIG9mIHRoZSBzdGFjayBkZXBsb3ltZW50LiBXZSBjb3VsZCByZW1vdmUgdGhpc1xuICAgICAgLy8gZm9yIG92ZXJhbGwgZmFzdGVyIGRlcGxveW1lbnRzIGlmIHdlIGV2ZXIgaGF2ZSBhIGJldHRlciBtZXRob2Qgb2YgcHJvZ3Jlc3MgZGlzcGxheWluZy5cbiAgICAgIC8vIE5vdGU6IHRoaXMgbWF5IGludHJvZHVjZSBhIGN5Y2xlIGlmIG9uZSBvZiB0aGUgcGFyZW50J3MgZGVwZW5kZW5jaWVzIGlzIGFub3RoZXIgc3RhY2sgdGhhdFxuICAgICAgLy8gZGVwZW5kcyBvbiB0aGlzIGFzc2V0LiBUbyB3b3JrYXJvdW5kIHRoaXMgd2UgcmVtb3ZlIHRoZXNlIGN5Y2xlcyBvbmNlIGFsbCBub2RlcyBoYXZlXG4gICAgICAvLyBiZWVuIGFkZGVkIHRvIHRoZSBncmFwaC5cbiAgICAgIHRoaXMuZ3JhcGguYWRkRGVwZW5kZW5jeShwdWJsaXNoSWQsIGluaGVyaXRlZERlcCk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyB3aWxsIHdvcmsgd2hldGhlciB0aGUgc3RhY2sgbm9kZSBoYXMgYmVlbiBhZGRlZCB5ZXQgb3Igbm90XG4gICAgdGhpcy5ncmFwaC5hZGREZXBlbmRlbmN5KGAke3RoaXMuaWRQcmVmaXh9JHtwYXJlbnRTdGFjay5pZH1gLCBwdWJsaXNoSWQpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKTogV29ya0dyYXBoIHtcbiAgICBjb25zdCBwYXJlbnRTdGFja3MgPSBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0cyk7XG5cbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIGFydGlmYWN0cykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgdGhpcy5hZGRTdGFjayhhcnRpZmFjdCk7XG4gICAgICB9IGVsc2UgaWYgKGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgY29uc3QgbWFuaWZlc3QgPSBBc3NldE1hbmlmZXN0LmZyb21GaWxlKGFydGlmYWN0LmZpbGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgbWFuaWZlc3QuZW50cmllcykge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFN0YWNrID0gcGFyZW50U3RhY2tzLmdldChhcnRpZmFjdCk7XG4gICAgICAgICAgaWYgKHBhcmVudFN0YWNrID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ09ycGhhbmVkQXNzZXRNYW5pZmVzdCcsICdGb3VuZCBhbiBhc3NldCBtYW5pZmVzdCB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzdGFjaycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmFkZEFzc2V0KHBhcmVudFN0YWNrLCBhcnRpZmFjdCwgbWFuaWZlc3QsIGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjeGFwaS5OZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QuaXNOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3QpKSB7XG4gICAgICAgIGNvbnN0IGFzc2VtYmx5ID0gbmV3IGN4YXBpLkNsb3VkQXNzZW1ibHkoYXJ0aWZhY3QuZnVsbFBhdGgsIHsgdG9wb1NvcnQ6IGZhbHNlIH0pO1xuICAgICAgICBjb25zdCBuZXN0ZWRHcmFwaCA9IG5ldyBXb3JrR3JhcGhCdWlsZGVyKFxuICAgICAgICAgIHRoaXMuaW9IZWxwZXIsXG4gICAgICAgICAgdGhpcy5wcmVidWlsZEFzc2V0cyxcbiAgICAgICAgICBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9LmAsXG4gICAgICAgICkuYnVpbGQoYXNzZW1ibHkuYXJ0aWZhY3RzKTtcbiAgICAgICAgdGhpcy5ncmFwaC5hYnNvcmIobmVzdGVkR3JhcGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWdub3JlIHdoYXRldmVyIGVsc2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoLnJlbW92ZVVuYXZhaWxhYmxlRGVwZW5kZW5jaWVzKCk7XG5cbiAgICAvLyBSZW1vdmUgYW55IHBvdGVudGlhbGx5IGludHJvZHVjZWQgY3ljbGVzIGJldHdlZW4gYXNzZXQgcHVibGlzaGluZyBhbmQgdGhlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGVtLlxuICAgIHRoaXMucmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5ncmFwaDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkcyhkZXBzOiBjeGFwaS5DbG91ZEFydGlmYWN0W10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGRlcHMuZmxhdE1hcCgoZCkgPT4gY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LmlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGQpID8gW3RoaXMuc3RhY2tBcnRpZmFjdElkKGQpXSA6IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkKGFydGlmYWN0OiBjeGFwaS5DbG91ZEFydGlmYWN0KTogc3RyaW5nIHtcbiAgICBpZiAoIWN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRBcnRpZmFjdFR5cGUnLCBgQ2FuIG9ubHkgY2FsbCB0aGlzIG9uIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCwgZ290OiAke2FydGlmYWN0LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBtYXkgaGF2ZSBhY2NpZGVudGFsbHkgaW50cm9kdWNlZCBjeWNsZXMgaW4gYW4gYXR0ZW1wdCB0byBtYWtlIHRoZSBtZXNzYWdlcyBwcmludGVkIHRvIHRoZVxuICAgKiBjb25zb2xlIG5vdCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyIHRvbyBtdWNoLiBSZW1vdmUgdGhlbSBhZ2Fpbi5cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCkge1xuICAgIGNvbnN0IHB1Ymxpc2hTdGVwcyA9IHRoaXMuZ3JhcGgubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcbiAgICBmb3IgKGNvbnN0IHB1Ymxpc2hTdGVwIG9mIHB1Ymxpc2hTdGVwcykge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgcHVibGlzaFN0ZXAuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXBoLnJlYWNoYWJsZShkZXAsIHB1Ymxpc2hTdGVwLmlkKSkge1xuICAgICAgICAgIHB1Ymxpc2hTdGVwLmRlcGVuZGVuY2llcy5kZWxldGUoZGVwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBNYXA8Y3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KCk7XG4gIGZvciAoY29uc3Qgc3RhY2sgb2YgYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSkpIHtcbiAgICBjb25zdCBhc3NldEFydGlmYWN0cyA9IHN0YWNrLmRlcGVuZGVuY2llcy5maWx0ZXIoKHgpID0+IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh4KSk7XG4gICAgZm9yIChjb25zdCBhcnQgb2YgYXNzZXRBcnRpZmFjdHMpIHtcbiAgICAgIHJldC5zZXQoYXJ0LCBzdGFjayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25seVN0YWNrcyhhcnRpZmFjdHM6IGN4YXBpLkNsb3VkQXJ0aWZhY3RbXSkge1xuICByZXR1cm4gYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSk7XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeploymentState = void 0;\nvar DeploymentState;\n(function (DeploymentState) {\n DeploymentState[\"PENDING\"] = \"pending\";\n DeploymentState[\"QUEUED\"] = \"queued\";\n DeploymentState[\"DEPLOYING\"] = \"deploying\";\n DeploymentState[\"COMPLETED\"] = \"completed\";\n DeploymentState[\"FAILED\"] = \"failed\";\n DeploymentState[\"SKIPPED\"] = \"skipped\";\n})(DeploymentState || (exports.DeploymentState = DeploymentState = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndvcmstZ3JhcGgtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsSUFBWSxlQU9YO0FBUEQsV0FBWSxlQUFlO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLG9DQUFpQixDQUFBO0lBQ2pCLDBDQUF1QixDQUFBO0lBQ3ZCLDBDQUF1QixDQUFBO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxlQUFlLCtCQUFmLGVBQWUsUUFPMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3QsIElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnQGF3cy1jZGsvY2RrLWFzc2V0cy1saWInO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5leHBvcnQgZW51bSBEZXBsb3ltZW50U3RhdGUge1xuICBQRU5ESU5HID0gJ3BlbmRpbmcnLFxuICBRVUVVRUQgPSAncXVldWVkJyxcbiAgREVQTE9ZSU5HID0gJ2RlcGxveWluZycsXG4gIENPTVBMRVRFRCA9ICdjb21wbGV0ZWQnLFxuICBGQUlMRUQgPSAnZmFpbGVkJyxcbiAgU0tJUFBFRCA9ICdza2lwcGVkJyxcbn1cblxuZXhwb3J0IHR5cGUgV29ya05vZGUgPSBTdGFja05vZGUgfCBBc3NldEJ1aWxkTm9kZSB8IEFzc2V0UHVibGlzaE5vZGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya05vZGVDb21tb24ge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM6IFNldDxzdHJpbmc+O1xuICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZTtcbiAgLyoqIFNvbWUgcmVhZGFibGUgaW5mb3JtYXRpb24gdG8gYXR0YWNoIHRvIHRoZSBpZCwgd2hpY2ggbWF5IGJlIHVucmVhZGFibGUgKi9cbiAgcmVhZG9ubHkgbm90ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja05vZGUgZXh0ZW5kcyBXb3JrTm9kZUNvbW1vbiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdzdGFjayc7XG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIC8qKiBTb3J0IGJ5IHByaW9yaXR5IHdoZW4gcGlja2luZyB1cCB3b3JrLCBoaWdoZXIgaXMgZWFybGllciAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NldEJ1aWxkTm9kZSBleHRlbmRzIFdvcmtOb2RlQ29tbW9uIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2Fzc2V0LWJ1aWxkJztcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKGFydGlmYWN0KSAqL1xuICByZWFkb25seSBhc3NldE1hbmlmZXN0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKi9cbiAgcmVhZG9ubHkgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdDtcbiAgLyoqIFRoZSBzdGFjayB0aGlzIGFzc2V0IHdhcyBkZWZpbmVkIGluICh1c2VkIGZvciBlbnZpcm9ubWVudCBzZXR0aW5ncykgKi9cbiAgcmVhZG9ubHkgcGFyZW50U3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCB0aGF0IG5lZWRzIHRvIGJlIGJ1aWx0ICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcbiAgLyoqIFNvcnQgYnkgcHJpb3JpdHkgd2hlbiBwaWNraW5nIHVwIHdvcmssIGhpZ2hlciBpcyBlYXJsaWVyICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHVibGlzaE5vZGUgZXh0ZW5kcyBXb3JrTm9kZUNvbW1vbiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdhc3NldC1wdWJsaXNoJztcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKGFydGlmYWN0KSAqL1xuICByZWFkb25seSBhc3NldE1hbmlmZXN0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKi9cbiAgcmVhZG9ubHkgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdDtcbiAgLyoqIFRoZSBzdGFjayB0aGlzIGFzc2V0IHdhcyBkZWZpbmVkIGluICh1c2VkIGZvciBlbnZpcm9ubWVudCBzZXR0aW5ncykgKi9cbiAgcmVhZG9ubHkgcGFyZW50U3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCB0aGF0IG5lZWRzIHRvIGJlIHB1Ymxpc2hlZCAqL1xuICByZWFkb25seSBhc3NldDogSU1hbmlmZXN0RW50cnk7XG4gIC8qKiBTb3J0IGJ5IHByaW9yaXR5IHdoZW4gcGlja2luZyB1cCB3b3JrLCBoaWdoZXIgaXMgZWFybGllciAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkGraph = void 0;\nconst work_graph_types_1 = require(\"./work-graph-types\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nclass WorkGraph {\n nodes;\n readyPool = [];\n lazyDependencies = new Map();\n ioHelper;\n error;\n constructor(nodes, ioHelper) {\n this.nodes = { ...nodes };\n this.ioHelper = ioHelper;\n }\n addNodes(...nodes) {\n for (const node of nodes) {\n if (this.nodes[node.id]) {\n throw new toolkit_error_1.ToolkitError('DuplicateNodeId', `Duplicate use of node id: ${node.id}`);\n }\n const ld = this.lazyDependencies.get(node.id);\n if (ld) {\n for (const x of ld) {\n node.dependencies.add(x);\n }\n this.lazyDependencies.delete(node.id);\n }\n this.nodes[node.id] = node;\n }\n }\n removeNode(nodeId) {\n const id = typeof nodeId === 'string' ? nodeId : nodeId.id;\n const removedNode = this.nodes[id];\n this.lazyDependencies.delete(id);\n delete this.nodes[id];\n if (removedNode) {\n for (const node of Object.values(this.nodes)) {\n node.dependencies.delete(removedNode.id);\n }\n }\n }\n /**\n * Return all nodes of a given type\n */\n nodesOfType(type) {\n return Object.values(this.nodes).filter(n => n.type === type);\n }\n /**\n * Return all nodes that depend on a given node\n */\n dependees(nodeId) {\n const id = typeof nodeId === 'string' ? nodeId : nodeId.id;\n return Object.values(this.nodes).filter(n => n.dependencies.has(id));\n }\n /**\n * Add a dependency, that may come before or after the nodes involved\n */\n addDependency(fromId, toId) {\n const node = this.nodes[fromId];\n if (node) {\n node.dependencies.add(toId);\n return;\n }\n let lazyDeps = this.lazyDependencies.get(fromId);\n if (!lazyDeps) {\n lazyDeps = [];\n this.lazyDependencies.set(fromId, lazyDeps);\n }\n lazyDeps.push(toId);\n }\n tryGetNode(id) {\n return this.nodes[id];\n }\n node(id) {\n const ret = this.nodes[id];\n if (!ret) {\n throw new toolkit_error_1.ToolkitError('NodeNotFound', `No node with id ${id} among ${Object.keys(this.nodes)}`);\n }\n return ret;\n }\n absorb(graph) {\n this.addNodes(...Object.values(graph.nodes));\n }\n hasFailed() {\n return Object.values(this.nodes).some((n) => n.deploymentState === work_graph_types_1.DeploymentState.FAILED);\n }\n doParallel(concurrency, actions) {\n return this.forAllArtifacts(concurrency, async (x) => {\n switch (x.type) {\n case 'stack':\n await actions.deployStack(x);\n break;\n case 'asset-build':\n await actions.buildAsset(x);\n break;\n case 'asset-publish':\n await actions.publishAsset(x);\n break;\n }\n });\n }\n /**\n * Execute all stack nodes in dependency order with the given concurrency.\n *\n * Unlike `doParallel`, this method only handles stack nodes and takes a\n * simple callback. Intended for destroy where there are no asset nodes.\n */\n processStacks(concurrency, fn) {\n return this.forAllArtifacts(concurrency, async (x) => {\n if (x.type !== 'stack') {\n return;\n }\n await fn(x);\n });\n }\n /**\n * Return the set of unblocked nodes\n */\n async ready() {\n await this.updateReadyPool();\n return this.readyPool;\n }\n forAllArtifacts(n, fn) {\n const graph = this;\n // If 'n' is a number, we limit all concurrency equally (effectively we will be using totalMax)\n // If 'n' is a record, we limit each job independently (effectively we will be using max)\n const max = typeof n === 'number' ?\n {\n 'asset-build': n,\n 'asset-publish': n,\n 'stack': n,\n } : n;\n const totalMax = typeof n === 'number' ? n : sum(Object.values(n));\n return new Promise((ok, fail) => {\n let active = {\n 'asset-build': 0,\n 'asset-publish': 0,\n 'stack': 0,\n };\n function totalActive() {\n return sum(Object.values(active));\n }\n start();\n function start() {\n graph.updateReadyPool().then(() => {\n for (let i = 0; i < graph.readyPool.length;) {\n const node = graph.readyPool[i];\n if (active[node.type] < max[node.type] && totalActive() < totalMax) {\n graph.readyPool.splice(i, 1);\n startOne(node);\n }\n else {\n i += 1;\n }\n }\n if (totalActive() === 0) {\n if (graph.done()) {\n ok();\n }\n // wait for other active deploys to finish before failing\n if (graph.hasFailed()) {\n fail(graph.error);\n }\n }\n }).catch((e) => {\n fail(e);\n });\n }\n function startOne(x) {\n x.deploymentState = work_graph_types_1.DeploymentState.DEPLOYING;\n active[x.type]++;\n void fn(x)\n .finally(() => {\n active[x.type]--;\n })\n .then(() => {\n graph.deployed(x);\n start();\n }).catch((err) => {\n // By recording the failure immediately as the queued task exits, we prevent the next\n // queued task from starting.\n graph.failed(x, err);\n start();\n });\n }\n });\n }\n done() {\n return Object.values(this.nodes).every((n) => work_graph_types_1.DeploymentState.COMPLETED === n.deploymentState);\n }\n deployed(node) {\n node.deploymentState = work_graph_types_1.DeploymentState.COMPLETED;\n }\n failed(node, error) {\n this.error = error;\n node.deploymentState = work_graph_types_1.DeploymentState.FAILED;\n this.skipRest();\n this.readyPool.splice(0);\n }\n toString() {\n return [\n 'digraph D {',\n ...Object.entries(this.nodes).flatMap(([id, node]) => renderNode(id, node)),\n '}',\n ].join('\\n');\n function renderNode(id, node) {\n const ret = [];\n if (node.deploymentState === work_graph_types_1.DeploymentState.COMPLETED) {\n ret.push(` ${gv(id, { style: 'filled', fillcolor: 'yellow', comment: node.note })};`);\n }\n else {\n ret.push(` ${gv(id, { comment: node.note })};`);\n }\n for (const dep of node.dependencies) {\n ret.push(` ${gv(id)} -> ${gv(dep)};`);\n }\n return ret;\n }\n }\n /**\n * Ensure all dependencies actually exist. This protects against scenarios such as the following:\n * StackA depends on StackB, but StackB is not selected to deploy. The dependency is redundant\n * and will be dropped.\n * This assumes the manifest comes uncorrupted so we will not fail if a dependency is not found.\n */\n removeUnavailableDependencies() {\n for (const node of Object.values(this.nodes)) {\n const removeDeps = Array.from(node.dependencies).filter((dep) => this.nodes[dep] === undefined);\n removeDeps.forEach((d) => {\n node.dependencies.delete(d);\n });\n }\n }\n /**\n * Remove all asset publishing steps for assets that are already published, and then build\n * that aren't used anymore.\n *\n * Do this in parallel, because there may be a lot of assets in an application (seen in practice: >100 assets)\n */\n async removeUnnecessaryAssets(isUnnecessary) {\n await this.ioHelper.defaults.debug('Checking for previously published assets');\n const publishes = this.nodesOfType('asset-publish');\n const classifiedNodes = await (0, util_1.parallelPromises)(8, publishes.map((assetNode) => async () => [assetNode, await isUnnecessary(assetNode)]));\n const alreadyPublished = classifiedNodes.filter(([_, unnecessary]) => unnecessary).map(([assetNode, _]) => assetNode);\n for (const assetNode of alreadyPublished) {\n this.removeNode(assetNode);\n }\n await this.ioHelper.defaults.debug(`${publishes.length} total assets, ${publishes.length - alreadyPublished.length} still need to be published`);\n // Now also remove any asset build steps that don't have any dependencies on them anymore\n const unusedBuilds = this.nodesOfType('asset-build').filter(build => this.dependees(build).length === 0);\n for (const unusedBuild of unusedBuilds) {\n this.removeNode(unusedBuild);\n }\n }\n async updateReadyPool() {\n const activeCount = Object.values(this.nodes).filter((x) => x.deploymentState === work_graph_types_1.DeploymentState.DEPLOYING).length;\n const pendingCount = Object.values(this.nodes).filter((x) => x.deploymentState === work_graph_types_1.DeploymentState.PENDING).length;\n const newlyReady = Object.values(this.nodes).filter((x) => x.deploymentState === work_graph_types_1.DeploymentState.PENDING &&\n Array.from(x.dependencies).every((id) => this.node(id).deploymentState === work_graph_types_1.DeploymentState.COMPLETED));\n // Add newly available nodes to the ready pool\n for (const node of newlyReady) {\n node.deploymentState = work_graph_types_1.DeploymentState.QUEUED;\n this.readyPool.push(node);\n }\n // Remove nodes from the ready pool that have already started deploying\n retainOnly(this.readyPool, (node) => node.deploymentState === work_graph_types_1.DeploymentState.QUEUED);\n // Sort by reverse priority\n this.readyPool.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n if (this.readyPool.length === 0 && activeCount === 0 && pendingCount > 0) {\n const cycle = this.findCycle() ?? ['No cycle found!'];\n await this.ioHelper.defaults.trace(`Cycle ${cycle.join(' -> ')} in graph ${this}`);\n throw new toolkit_error_1.ToolkitError('DependencyCycle', `Unable to make progress anymore, dependency cycle between remaining artifacts: ${cycle.join(' -> ')} (run with -vv for full graph)`);\n }\n }\n skipRest() {\n for (const node of Object.values(this.nodes)) {\n if ([work_graph_types_1.DeploymentState.QUEUED, work_graph_types_1.DeploymentState.PENDING].includes(node.deploymentState)) {\n node.deploymentState = work_graph_types_1.DeploymentState.SKIPPED;\n }\n }\n }\n /**\n * Find cycles in a graph\n *\n * Not the fastest, but effective and should be rare\n */\n findCycle() {\n const seen = new Set();\n const self = this;\n for (const nodeId of Object.keys(this.nodes)) {\n const cycle = recurse(nodeId, [nodeId]);\n if (cycle) {\n return cycle;\n }\n }\n return undefined;\n function recurse(nodeId, path) {\n if (seen.has(nodeId)) {\n return undefined;\n }\n try {\n for (const dep of self.nodes[nodeId].dependencies ?? []) {\n const index = path.indexOf(dep);\n if (index > -1) {\n return [...path.slice(index), dep];\n }\n const cycle = recurse(dep, [...path, dep]);\n if (cycle) {\n return cycle;\n }\n }\n return undefined;\n }\n finally {\n seen.add(nodeId);\n }\n }\n }\n /**\n * Whether the `end` node is reachable from the `start` node, following the dependency arrows\n */\n reachable(start, end) {\n const seen = new Set();\n const self = this;\n return recurse(start);\n function recurse(current) {\n if (seen.has(current)) {\n return false;\n }\n seen.add(current);\n if (current === end) {\n return true;\n }\n for (const dep of self.nodes[current].dependencies) {\n if (recurse(dep)) {\n return true;\n }\n }\n return false;\n }\n }\n}\nexports.WorkGraph = WorkGraph;\nfunction sum(xs) {\n let ret = 0;\n for (const x of xs) {\n ret += x;\n }\n return ret;\n}\nfunction retainOnly(xs, pred) {\n xs.splice(0, xs.length, ...xs.filter(pred));\n}\nfunction gv(id, attrs) {\n const attrString = Object.entries(attrs ?? {}).flatMap(([k, v]) => v !== undefined ? [`${k}=\"${v}\"`] : []).join(',');\n return attrString ? `\"${simplifyId(id)}\" [${attrString}]` : `\"${simplifyId(id)}\"`;\n}\nfunction simplifyId(id) {\n return id.replace(/([0-9a-f]{6})[0-9a-f]{6,}/g, '$1');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndvcmstZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQXFEO0FBQ3JELCtEQUEyRDtBQUMzRCxxQ0FBOEM7QUFJOUMsTUFBYSxTQUFTO0lBQ0osS0FBSyxDQUEyQjtJQUMvQixTQUFTLEdBQW9CLEVBQUUsQ0FBQztJQUNoQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQUMvQyxRQUFRLENBQVc7SUFFN0IsS0FBSyxDQUFTO0lBRXJCLFlBQW1CLEtBQStCLEVBQUUsUUFBa0I7UUFDcEUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFHLEtBQWlCO1FBQ2xDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksNEJBQVksQ0FBQyxpQkFBaUIsRUFBRSw2QkFBNkIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEYsQ0FBQztZQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztZ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QUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDbkIsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBSSxFQUFPLEVBQUUsSUFBdUI7SUFDckQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsRUFBVSxFQUFFLEtBQTBDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVySCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7QUFDcEYsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEVBQVU7SUFDNUIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtOb2RlLCBTdGFja05vZGUsIEFzc2V0QnVpbGROb2RlLCBBc3NldFB1Ymxpc2hOb2RlIH0gZnJvbSAnLi93b3JrLWdyYXBoLXR5cGVzJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgcGFyYWxsZWxQcm9taXNlcyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuZXhwb3J0IHR5cGUgQ29uY3VycmVuY3kgPSBudW1iZXIgfCBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPjtcblxuZXhwb3J0IGNsYXNzIFdvcmtHcmFwaCB7XG4gIHB1YmxpYyByZWFkb25seSBub2RlczogUmVjb3JkPHN0cmluZywgV29ya05vZGU+O1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWR5UG9vbDogQXJyYXk8V29ya05vZGU+ID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbGF6eURlcGVuZGVuY2llcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgcHVibGljIGVycm9yPzogRXJyb3I7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG5vZGVzOiBSZWNvcmQ8c3RyaW5nLCBXb3JrTm9kZT4sIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMubm9kZXMgPSB7IC4uLm5vZGVzIH07XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgcHVibGljIGFkZE5vZGVzKC4uLm5vZGVzOiBXb3JrTm9kZVtdKSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBpZiAodGhpcy5ub2Rlc1tub2RlLmlkXSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEdXBsaWNhdGVOb2RlSWQnLCBgRHVwbGljYXRlIHVzZSBvZiBub2RlIGlkOiAke25vZGUuaWR9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxkID0gdGhpcy5sYXp5RGVwZW5kZW5jaWVzLmdldChub2RlLmlkKTtcbiAgICAgIGlmIChsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IHggb2YgbGQpIHtcbiAgICAgICAgICBub2RlLmRlcGVuZGVuY2llcy5hZGQoeCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXp5RGVwZW5kZW5jaWVzLmRlbGV0ZShub2RlLmlkKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5ub2Rlc1tub2RlLmlkXSA9IG5vZGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZU5vZGUobm9kZUlkOiBzdHJpbmcgfCBXb3JrTm9kZSkge1xuICAgIGNvbnN0IGlkID0gdHlwZW9mIG5vZGVJZCA9PT0gJ3N0cmluZycgPyBub2RlSWQgOiBub2RlSWQuaWQ7XG4gICAgY29uc3QgcmVtb3ZlZE5vZGUgPSB0aGlzLm5vZGVzW2lkXTtcblxuICAgIHRoaXMubGF6eURlcGVuZGVuY2llcy5kZWxldGUoaWQpO1xuICAgIGRlbGV0ZSB0aGlzLm5vZGVzW2lkXTtcblxuICAgIGlmIChyZW1vdmVkTm9kZSkge1xuICAgICAgZm9yIChjb25zdCBub2RlIG9mIE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykpIHtcbiAgICAgICAgbm9kZS5kZXBlbmRlbmNpZXMuZGVsZXRlKHJlbW92ZWROb2RlLmlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCBub2RlcyBvZiBhIGdpdmVuIHR5cGVcbiAgICovXG4gIHB1YmxpYyBub2Rlc09mVHlwZTxUIGV4dGVuZHMgV29ya05vZGVbJ3R5cGUnXT4odHlwZTogVCk6IEV4dHJhY3Q8V29ya05vZGUsIHsgdHlwZTogVCB9PltdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIobiA9PiBuLnR5cGUgPT09IHR5cGUpIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIG5vZGVzIHRoYXQgZGVwZW5kIG9uIGEgZ2l2ZW4gbm9kZVxuICAgKi9cbiAgcHVibGljIGRlcGVuZGVlcyhub2RlSWQ6IHN0cmluZyB8IFdvcmtOb2RlKSB7XG4gICAgY29uc3QgaWQgPSB0eXBlb2Ygbm9kZUlkID09PSAnc3RyaW5nJyA/IG5vZGVJZCA6IG5vZGVJZC5pZDtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIobiA9PiBuLmRlcGVuZGVuY2llcy5oYXMoaWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBkZXBlbmRlbmN5LCB0aGF0IG1heSBjb21lIGJlZm9yZSBvciBhZnRlciB0aGUgbm9kZXMgaW52b2x2ZWRcbiAgICovXG4gIHB1YmxpYyBhZGREZXBlbmRlbmN5KGZyb21JZDogc3RyaW5nLCB0b0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2Rlc1tmcm9tSWRdO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmRlcGVuZGVuY2llcy5hZGQodG9JZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBsYXp5RGVwcyA9IHRoaXMubGF6eURlcGVuZGVuY2llcy5nZXQoZnJvbUlkKTtcbiAgICBpZiAoIWxhenlEZXBzKSB7XG4gICAgICBsYXp5RGVwcyA9IFtdO1xuICAgICAgdGhpcy5sYXp5RGVwZW5kZW5jaWVzLnNldChmcm9tSWQsIGxhenlEZXBzKTtcbiAgICB9XG4gICAgbGF6eURlcHMucHVzaCh0b0lkKTtcbiAgfVxuXG4gIHB1YmxpYyB0cnlHZXROb2RlKGlkOiBzdHJpbmcpOiBXb3JrTm9kZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXNbaWRdO1xuICB9XG5cbiAgcHVibGljIG5vZGUoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHJldCA9IHRoaXMubm9kZXNbaWRdO1xuICAgIGlmICghcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdOb2RlTm90Rm91bmQnLCBgTm8gbm9kZSB3aXRoIGlkICR7aWR9IGFtb25nICR7T2JqZWN0LmtleXModGhpcy5ub2Rlcyl9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgYWJzb3JiKGdyYXBoOiBXb3JrR3JhcGgpIHtcbiAgICB0aGlzLmFkZE5vZGVzKC4uLk9iamVjdC52YWx1ZXMoZ3JhcGgubm9kZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRmFpbGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpLnNvbWUoKG4pID0+IG4uZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuRkFJTEVEKTtcbiAgfVxuXG4gIHB1YmxpYyBkb1BhcmFsbGVsKGNvbmN1cnJlbmN5OiBDb25jdXJyZW5jeSwgYWN0aW9uczogV29ya0dyYXBoQWN0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmZvckFsbEFydGlmYWN0cyhjb25jdXJyZW5jeSwgYXN5bmMgKHg6IFdvcmtOb2RlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHgudHlwZSkge1xuICAgICAgICBjYXNlICdzdGFjayc6XG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5kZXBsb3lTdGFjayh4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzZXQtYnVpbGQnOlxuICAgICAgICAgIGF3YWl0IGFjdGlvbnMuYnVpbGRBc3NldCh4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzZXQtcHVibGlzaCc6XG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5wdWJsaXNoQXNzZXQoeCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhbGwgc3RhY2sgbm9kZXMgaW4gZGVwZW5kZW5jeSBvcmRlciB3aXRoIHRoZSBnaXZlbiBjb25jdXJyZW5jeS5cbiAgICpcbiAgICogVW5saWtlIGBkb1BhcmFsbGVsYCwgdGhpcyBtZXRob2Qgb25seSBoYW5kbGVzIHN0YWNrIG5vZGVzIGFuZCB0YWtlcyBhXG4gICAqIHNpbXBsZSBjYWxsYmFjay4gSW50ZW5kZWQgZm9yIGRlc3Ryb3kgd2hlcmUgdGhlcmUgYXJlIG5vIGFzc2V0IG5vZGVzLlxuICAgKi9cbiAgcHVibGljIHByb2Nlc3NTdGFja3MoY29uY3VycmVuY3k6IG51bWJlciwgZm46IChzdGFja05vZGU6IFN0YWNrTm9kZSkgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgIHJldHVybiB0aGlzLmZvckFsbEFydGlmYWN0cyhjb25jdXJyZW5jeSwgYXN5bmMgKHg6IFdvcmtOb2RlKSA9PiB7XG4gICAgICBpZiAoeC50eXBlICE9PSAnc3RhY2snKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGZuKHgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2V0IG9mIHVuYmxvY2tlZCBub2Rlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWR5KCk6IFByb21pc2U8UmVhZG9ubHlBcnJheTxXb3JrTm9kZT4+IHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlYWR5UG9vbCgpO1xuICAgIHJldHVybiB0aGlzLnJlYWR5UG9vbDtcbiAgfVxuXG4gIHByaXZhdGUgZm9yQWxsQXJ0aWZhY3RzKG46IENvbmN1cnJlbmN5LCBmbjogKHg6IFdvcmtOb2RlKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ3JhcGggPSB0aGlzO1xuXG4gICAgLy8gSWYgJ24nIGlzIGEgbnVtYmVyLCB3ZSBsaW1pdCBhbGwgY29uY3VycmVuY3kgZXF1YWxseSAoZWZmZWN0aXZlbHkgd2Ugd2lsbCBiZSB1c2luZyB0b3RhbE1heClcbiAgICAvLyBJZiAnbicgaXMgYSByZWNvcmQsIHdlIGxpbWl0IGVhY2ggam9iIGluZGVwZW5kZW50bHkgKGVmZmVjdGl2ZWx5IHdlIHdpbGwgYmUgdXNpbmcgbWF4KVxuICAgIGNvbnN0IG1heDogUmVjb3JkPFdvcmtOb2RlWyd0eXBlJ10sIG51bWJlcj4gPSB0eXBlb2YgbiA9PT0gJ251bWJlcicgP1xuICAgICAge1xuICAgICAgICAnYXNzZXQtYnVpbGQnOiBuLFxuICAgICAgICAnYXNzZXQtcHVibGlzaCc6IG4sXG4gICAgICAgICdzdGFjayc6IG4sXG4gICAgICB9IDogbjtcbiAgICBjb25zdCB0b3RhbE1heCA9IHR5cGVvZiBuID09PSAnbnVtYmVyJyA/IG4gOiBzdW0oT2JqZWN0LnZhbHVlcyhuKSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBmYWlsKSA9PiB7XG4gICAgICBsZXQgYWN0aXZlOiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHtcbiAgICAgICAgJ2Fzc2V0LWJ1aWxkJzogMCxcbiAgICAgICAgJ2Fzc2V0LXB1Ymxpc2gnOiAwLFxuICAgICAgICAnc3RhY2snOiAwLFxuICAgICAgfTtcbiAgICAgIGZ1bmN0aW9uIHRvdGFsQWN0aXZlKCkge1xuICAgICAgICByZXR1cm4gc3VtKE9iamVjdC52YWx1ZXMoYWN0aXZlKSk7XG4gICAgICB9XG5cbiAgICAgIHN0YXJ0KCk7XG5cbiAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkge1xuICAgICAgICBncmFwaC51cGRhdGVSZWFkeVBvb2woKS50aGVuKCgpID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyYXBoLnJlYWR5UG9vbC5sZW5ndGg7ICkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGdyYXBoLnJlYWR5UG9vbFtpXTtcblxuICAgICAgICAgICAgaWYgKGFjdGl2ZVtub2RlLnR5cGVdIDwgbWF4W25vZGUudHlwZV0gJiYgdG90YWxBY3RpdmUoKSA8IHRvdGFsTWF4KSB7XG4gICAgICAgICAgICAgIGdyYXBoLnJlYWR5UG9vbC5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgIHN0YXJ0T25lKG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0b3RhbEFjdGl2ZSgpID09PSAwKSB7XG4gICAgICAgICAgICBpZiAoZ3JhcGguZG9uZSgpKSB7XG4gICAgICAgICAgICAgIG9rKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB3YWl0IGZvciBvdGhlciBhY3RpdmUgZGVwbG95cyB0byBmaW5pc2ggYmVmb3JlIGZhaWxpbmdcbiAgICAgICAgICAgIGlmIChncmFwaC5oYXNGYWlsZWQoKSkge1xuICAgICAgICAgICAgICBmYWlsKGdyYXBoLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgZmFpbChlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHN0YXJ0T25lKHg6IFdvcmtOb2RlKSB7XG4gICAgICAgIHguZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkRFUExPWUlORztcbiAgICAgICAgYWN0aXZlW3gudHlwZV0rKztcbiAgICAgICAgdm9pZCBmbih4KVxuICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2ZVt4LnR5cGVdLS07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBncmFwaC5kZXBsb3llZCh4KTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgLy8gQnkgcmVjb3JkaW5nIHRoZSBmYWlsdXJlIGltbWVkaWF0ZWx5IGFzIHRoZSBxdWV1ZWQgdGFzayBleGl0cywgd2UgcHJldmVudCB0aGUgbmV4dFxuICAgICAgICAgICAgLy8gcXVldWVkIHRhc2sgZnJvbSBzdGFydGluZy5cbiAgICAgICAgICAgIGdyYXBoLmZhaWxlZCh4LCBlcnIpO1xuICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5ldmVyeSgobikgPT4gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRCA9PT0gbi5kZXBsb3ltZW50U3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXBsb3llZChub2RlOiBXb3JrTm9kZSkge1xuICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRDtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbGVkKG5vZGU6IFdvcmtOb2RlLCBlcnJvcj86IEVycm9yKSB7XG4gICAgdGhpcy5lcnJvciA9IGVycm9yO1xuICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkZBSUxFRDtcbiAgICB0aGlzLnNraXBSZXN0KCk7XG4gICAgdGhpcy5yZWFkeVBvb2wuc3BsaWNlKDApO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbXG4gICAgICAnZGlncmFwaCBEIHsnLFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXModGhpcy5ub2RlcykuZmxhdE1hcCgoW2lkLCBub2RlXSkgPT4gcmVuZGVyTm9kZShpZCwgbm9kZSkpLFxuICAgICAgJ30nLFxuICAgIF0uam9pbignXFxuJyk7XG5cbiAgICBmdW5jdGlvbiByZW5kZXJOb2RlKGlkOiBzdHJpbmcsIG5vZGU6IFdvcmtOb2RlKTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgcmV0ID0gW107XG4gICAgICBpZiAobm9kZS5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5DT01QTEVURUQpIHtcbiAgICAgICAgcmV0LnB1c2goYCAgJHtndihpZCwgeyBzdHlsZTogJ2ZpbGxlZCcsIGZpbGxjb2xvcjogJ3llbGxvdycsIGNvbW1lbnQ6IG5vZGUubm90ZSB9KX07YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXQucHVzaChgICAke2d2KGlkLCB7IGNvbW1lbnQ6IG5vZGUubm90ZSB9KX07YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRlcCBvZiBub2RlLmRlcGVuZGVuY2llcykge1xuICAgICAgICByZXQucHVzaChgICAke2d2KGlkKX0gLT4gJHtndihkZXApfTtgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZSBhbGwgZGVwZW5kZW5jaWVzIGFjdHVhbGx5IGV4aXN0LiBUaGlzIHByb3RlY3RzIGFnYWluc3Qgc2NlbmFyaW9zIHN1Y2ggYXMgdGhlIGZvbGxvd2luZzpcbiAgICogU3RhY2tBIGRlcGVuZHMgb24gU3RhY2tCLCBidXQgU3RhY2tCIGlzIG5vdCBzZWxlY3RlZCB0byBkZXBsb3kuIFRoZSBkZXBlbmRlbmN5IGlzIHJlZHVuZGFudFxuICAgKiBhbmQgd2lsbCBiZSBkcm9wcGVkLlxuICAgKiBUaGlzIGFzc3VtZXMgdGhlIG1hbmlmZXN0IGNvbWVzIHVuY29ycnVwdGVkIHNvIHdlIHdpbGwgbm90IGZhaWwgaWYgYSBkZXBlbmRlbmN5IGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVVbmF2YWlsYWJsZURlcGVuZGVuY2llcygpIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKSkge1xuICAgICAgY29uc3QgcmVtb3ZlRGVwcyA9IEFycmF5LmZyb20obm9kZS5kZXBlbmRlbmNpZXMpLmZpbHRlcigoZGVwKSA9PiB0aGlzLm5vZGVzW2RlcF0gPT09IHVuZGVmaW5lZCk7XG5cbiAgICAgIHJlbW92ZURlcHMuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgICBub2RlLmRlcGVuZGVuY2llcy5kZWxldGUoZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBhc3NldCBwdWJsaXNoaW5nIHN0ZXBzIGZvciBhc3NldHMgdGhhdCBhcmUgYWxyZWFkeSBwdWJsaXNoZWQsIGFuZCB0aGVuIGJ1aWxkXG4gICAqIHRoYXQgYXJlbid0IHVzZWQgYW55bW9yZS5cbiAgICpcbiAgICogRG8gdGhpcyBpbiBwYXJhbGxlbCwgYmVjYXVzZSB0aGVyZSBtYXkgYmUgYSBsb3Qgb2YgYXNzZXRzIGluIGFuIGFwcGxpY2F0aW9uIChzZWVuIGluIHByYWN0aWNlOiA+MTAwIGFzc2V0cylcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZW1vdmVVbm5lY2Vzc2FyeUFzc2V0cyhpc1VubmVjZXNzYXJ5OiAoeDogQXNzZXRQdWJsaXNoTm9kZSkgPT4gUHJvbWlzZTxib29sZWFuPikge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoJ0NoZWNraW5nIGZvciBwcmV2aW91c2x5IHB1Ymxpc2hlZCBhc3NldHMnKTtcblxuICAgIGNvbnN0IHB1Ymxpc2hlcyA9IHRoaXMubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcblxuICAgIGNvbnN0IGNsYXNzaWZpZWROb2RlcyA9IGF3YWl0IHBhcmFsbGVsUHJvbWlzZXMoXG4gICAgICA4LFxuICAgICAgcHVibGlzaGVzLm1hcCgoYXNzZXROb2RlKSA9PiBhc3luYygpID0+IFthc3NldE5vZGUsIGF3YWl0IGlzVW5uZWNlc3NhcnkoYXNzZXROb2RlKV0gYXMgY29uc3QpKTtcblxuICAgIGNvbnN0IGFscmVhZHlQdWJsaXNoZWQgPSBjbGFzc2lmaWVkTm9kZXMuZmlsdGVyKChbXywgdW5uZWNlc3NhcnldKSA9PiB1bm5lY2Vzc2FyeSkubWFwKChbYXNzZXROb2RlLCBfXSkgPT4gYXNzZXROb2RlKTtcbiAgICBmb3IgKGNvbnN0IGFzc2V0Tm9kZSBvZiBhbHJlYWR5UHVibGlzaGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUoYXNzZXROb2RlKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke3B1Ymxpc2hlcy5sZW5ndGh9IHRvdGFsIGFzc2V0cywgJHtwdWJsaXNoZXMubGVuZ3RoIC0gYWxyZWFkeVB1Ymxpc2hlZC5sZW5ndGh9IHN0aWxsIG5lZWQgdG8gYmUgcHVibGlzaGVkYCk7XG5cbiAgICAvLyBOb3cgYWxzbyByZW1vdmUgYW55IGFzc2V0IGJ1aWxkIHN0ZXBzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgZGVwZW5kZW5jaWVzIG9uIHRoZW0gYW55bW9yZVxuICAgIGNvbnN0IHVudXNlZEJ1aWxkcyA9IHRoaXMubm9kZXNPZlR5cGUoJ2Fzc2V0LWJ1aWxkJykuZmlsdGVyKGJ1aWxkID0+IHRoaXMuZGVwZW5kZWVzKGJ1aWxkKS5sZW5ndGggPT09IDApO1xuICAgIGZvciAoY29uc3QgdW51c2VkQnVpbGQgb2YgdW51c2VkQnVpbGRzKSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUodW51c2VkQnVpbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVhZHlQb29sKCkge1xuICAgIGNvbnN0IGFjdGl2ZUNvdW50ID0gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIoKHgpID0+IHguZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuREVQTE9ZSU5HKS5sZW5ndGg7XG4gICAgY29uc3QgcGVuZGluZ0NvdW50ID0gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIoKHgpID0+IHguZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuUEVORElORykubGVuZ3RoO1xuXG4gICAgY29uc3QgbmV3bHlSZWFkeSA9IE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykuZmlsdGVyKCh4KSA9PlxuICAgICAgeC5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HICYmXG4gICAgICBBcnJheS5mcm9tKHguZGVwZW5kZW5jaWVzKS5ldmVyeSgoaWQpID0+IHRoaXMubm9kZShpZCkuZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuQ09NUExFVEVEKSk7XG5cbiAgICAvLyBBZGQgbmV3bHkgYXZhaWxhYmxlIG5vZGVzIHRvIHRoZSByZWFkeSBwb29sXG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5ld2x5UmVhZHkpIHtcbiAgICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLlFVRVVFRDtcbiAgICAgIHRoaXMucmVhZHlQb29sLnB1c2gobm9kZSk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIG5vZGVzIGZyb20gdGhlIHJlYWR5IHBvb2wgdGhhdCBoYXZlIGFscmVhZHkgc3RhcnRlZCBkZXBsb3lpbmdcbiAgICByZXRhaW5Pbmx5KHRoaXMucmVhZHlQb29sLCAobm9kZSkgPT4gbm9kZS5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5RVUVVRUQpO1xuXG4gICAgLy8gU29ydCBieSByZXZlcnNlIHByaW9yaXR5XG4gICAgdGhpcy5yZWFkeVBvb2wuc29ydCgoYSwgYikgPT4gKGIucHJpb3JpdHkgPz8gMCkgLSAoYS5wcmlvcml0eSA/PyAwKSk7XG5cbiAgICBpZiAodGhpcy5yZWFkeVBvb2wubGVuZ3RoID09PSAwICYmIGFjdGl2ZUNvdW50ID09PSAwICYmIHBlbmRpbmdDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IGN5Y2xlID0gdGhpcy5maW5kQ3ljbGUoKSA/PyBbJ05vIGN5Y2xlIGZvdW5kISddO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy50cmFjZShgQ3ljbGUgJHtjeWNsZS5qb2luKCcgLT4gJyl9IGluIGdyYXBoICR7dGhpc31gKTtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0RlcGVuZGVuY3lDeWNsZScsIGBVbmFibGUgdG8gbWFrZSBwcm9ncmVzcyBhbnltb3JlLCBkZXBlbmRlbmN5IGN5Y2xlIGJldHdlZW4gcmVtYWluaW5nIGFydGlmYWN0czogJHtjeWNsZS5qb2luKCcgLT4gJyl9IChydW4gd2l0aCAtdnYgZm9yIGZ1bGwgZ3JhcGgpYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBza2lwUmVzdCgpIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKSkge1xuICAgICAgaWYgKFtEZXBsb3ltZW50U3RhdGUuUVVFVUVELCBEZXBsb3ltZW50U3RhdGUuUEVORElOR10uaW5jbHVkZXMobm9kZS5kZXBsb3ltZW50U3RhdGUpKSB7XG4gICAgICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLlNLSVBQRUQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgY3ljbGVzIGluIGEgZ3JhcGhcbiAgICpcbiAgICogTm90IHRoZSBmYXN0ZXN0LCBidXQgZWZmZWN0aXZlIGFuZCBzaG91bGQgYmUgcmFyZVxuICAgKi9cbiAgcHVibGljIGZpbmRDeWNsZSgpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZvciAoY29uc3Qgbm9kZUlkIG9mIE9iamVjdC5rZXlzKHRoaXMubm9kZXMpKSB7XG4gICAgICBjb25zdCBjeWNsZSA9IHJlY3Vyc2Uobm9kZUlkLCBbbm9kZUlkXSk7XG4gICAgICBpZiAoY3ljbGUpIHtcbiAgICAgICAgcmV0dXJuIGN5Y2xlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzZShub2RlSWQ6IHN0cmluZywgcGF0aDogc3RyaW5nW10pOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoc2Vlbi5oYXMobm9kZUlkKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygc2VsZi5ub2Rlc1tub2RlSWRdLmRlcGVuZGVuY2llcyA/PyBbXSkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGF0aC5pbmRleE9mKGRlcCk7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBbLi4ucGF0aC5zbGljZShpbmRleCksIGRlcF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY3ljbGUgPSByZWN1cnNlKGRlcCwgWy4uLnBhdGgsIGRlcF0pO1xuICAgICAgICAgIGlmIChjeWNsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGN5Y2xlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZWVuLmFkZChub2RlSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBgZW5kYCBub2RlIGlzIHJlYWNoYWJsZSBmcm9tIHRoZSBgc3RhcnRgIG5vZGUsIGZvbGxvd2luZyB0aGUgZGVwZW5kZW5jeSBhcnJvd3NcbiAgICovXG4gIHB1YmxpYyByZWFjaGFibGUoc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIHJlY3Vyc2Uoc3RhcnQpO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzZShjdXJyZW50OiBzdHJpbmcpIHtcbiAgICAgIGlmIChzZWVuLmhhcyhjdXJyZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBzZWVuLmFkZChjdXJyZW50KTtcblxuICAgICAgaWYgKGN1cnJlbnQgPT09IGVuZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgZGVwIG9mIHNlbGYubm9kZXNbY3VycmVudF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGlmIChyZWN1cnNlKGRlcCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtHcmFwaEFjdGlvbnMge1xuICBkZXBsb3lTdGFjazogKHN0YWNrTm9kZTogU3RhY2tOb2RlKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBidWlsZEFzc2V0OiAoYXNzZXROb2RlOiBBc3NldEJ1aWxkTm9kZSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcHVibGlzaEFzc2V0OiAoYXNzZXROb2RlOiBBc3NldFB1Ymxpc2hOb2RlKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5mdW5jdGlvbiBzdW0oeHM6IG51bWJlcltdKSB7XG4gIGxldCByZXQgPSAwO1xuICBmb3IgKGNvbnN0IHggb2YgeHMpIHtcbiAgICByZXQgKz0geDtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiByZXRhaW5Pbmx5PEE+KHhzOiBBW10sIHByZWQ6ICh4OiBBKSA9PiBib29sZWFuKSB7XG4gIHhzLnNwbGljZSgwLCB4cy5sZW5ndGgsIC4uLnhzLmZpbHRlcihwcmVkKSk7XG59XG5cbmZ1bmN0aW9uIGd2KGlkOiBzdHJpbmcsIGF0dHJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPikge1xuICBjb25zdCBhdHRyU3RyaW5nID0gT2JqZWN0LmVudHJpZXMoYXR0cnMgPz8ge30pLmZsYXRNYXAoKFtrLCB2XSkgPT4gdiAhPT0gdW5kZWZpbmVkID8gW2Ake2t9PVwiJHt2fVwiYF0gOiBbXSkuam9pbignLCcpO1xuXG4gIHJldHVybiBhdHRyU3RyaW5nID8gYFwiJHtzaW1wbGlmeUlkKGlkKX1cIiBbJHthdHRyU3RyaW5nfV1gIDogYFwiJHtzaW1wbGlmeUlkKGlkKX1cImA7XG59XG5cbmZ1bmN0aW9uIHNpbXBsaWZ5SWQoaWQ6IHN0cmluZykge1xuICByZXR1cm4gaWQucmVwbGFjZSgvKFswLTlhLWZdezZ9KVswLTlhLWZdezYsfS9nLCAnJDEnKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmiContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Plugin to search AMIs for the current account\n */\nclass AmiContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n // Normally we'd do this only as 'debug', but searching AMIs typically takes dozens\n // of seconds, so be little more verbose about it so users know what is going on.\n await this.io.info(`Searching for AMI in ${account}:${region}`);\n await this.io.debug(`AMI search parameters: ${JSON.stringify(args)}`);\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const response = await ec2.describeImages({\n Owners: args.owners,\n Filters: Object.entries(args.filters).map(([key, values]) => ({\n Name: key,\n Values: values,\n })),\n });\n const images = [...(response.Images || [])].filter((i) => i.ImageId !== undefined);\n if (images.length === 0) {\n throw new toolkit_error_1.ContextProviderError('AmiNotFound', 'No AMI found that matched the search criteria');\n }\n // Return the most recent one\n // Note: Date.parse() is not going to respect the timezone of the string,\n // but since we only care about the relative values that is okay.\n images.sort(descending((i) => Date.parse(i.CreationDate || '1970')));\n await this.io.debug(`Selected image '${images[0].ImageId}' created at '${images[0].CreationDate}'`);\n return images[0].ImageId;\n }\n}\nexports.AmiContextProviderPlugin = AmiContextProviderPlugin;\n/**\n * Make a comparator that sorts in descending order given a sort key extractor\n */\nfunction descending(valueOf) {\n return (a, b) => {\n return valueOf(b) - valueOf(a);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFEQUFtRjtBQUVuRiw0REFBZ0U7QUFFaEU7O0dBRUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNOO0lBQW1DO0lBQWhFLFlBQTZCLEdBQWdCLEVBQW1CLEVBQTRCO1FBQS9ELFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBbUIsT0FBRSxHQUFGLEVBQUUsQ0FBMEI7SUFDNUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBcUI7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTdCLG1GQUFtRjtRQUNuRixpRkFBaUY7UUFDakYsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDaEUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLEVBQUUsR0FBRztnQkFDVCxNQUFNLEVBQUUsTUFBTTthQUNmLENBQUMsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUM7UUFFbkYsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxhQUFhLEVBQUUsK0NBQStDLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLHlFQUF5RTtRQUN6RSxpRUFBaUU7UUFDakUsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8saUJBQWlCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQVEsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFwQ0QsNERBb0NDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFVBQVUsQ0FBSSxPQUF5QjtJQUM5QyxPQUFPLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBRSxFQUFFO1FBQ3BCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBbWlDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgfSBmcm9tICcuJztcbmltcG9ydCB7IHR5cGUgU2RrUHJvdmlkZXIsIGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFBsdWdpbiB0byBzZWFyY2ggQU1JcyBmb3IgdGhlIGN1cnJlbnQgYWNjb3VudFxuICovXG5leHBvcnQgY2xhc3MgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBBbWlDb250ZXh0UXVlcnkpIHtcbiAgICBjb25zdCByZWdpb24gPSBhcmdzLnJlZ2lvbjtcbiAgICBjb25zdCBhY2NvdW50ID0gYXJncy5hY2NvdW50O1xuXG4gICAgLy8gTm9ybWFsbHkgd2UnZCBkbyB0aGlzIG9ubHkgYXMgJ2RlYnVnJywgYnV0IHNlYXJjaGluZyBBTUlzIHR5cGljYWxseSB0YWtlcyBkb3plbnNcbiAgICAvLyBvZiBzZWNvbmRzLCBzbyBiZSBsaXR0bGUgbW9yZSB2ZXJib3NlIGFib3V0IGl0IHNvIHVzZXJzIGtub3cgd2hhdCBpcyBnb2luZyBvbi5cbiAgICBhd2FpdCB0aGlzLmlvLmluZm8oYFNlYXJjaGluZyBmb3IgQU1JIGluICR7YWNjb3VudH06JHtyZWdpb259YCk7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgQU1JIHNlYXJjaCBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfWApO1xuXG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZUltYWdlcyh7XG4gICAgICBPd25lcnM6IGFyZ3Mub3duZXJzLFxuICAgICAgRmlsdGVyczogT2JqZWN0LmVudHJpZXMoYXJncy5maWx0ZXJzKS5tYXAoKFtrZXksIHZhbHVlc10pID0+ICh7XG4gICAgICAgIE5hbWU6IGtleSxcbiAgICAgICAgVmFsdWVzOiB2YWx1ZXMsXG4gICAgICB9KSksXG4gICAgfSk7XG5cbiAgICBjb25zdCBpbWFnZXMgPSBbLi4uKHJlc3BvbnNlLkltYWdlcyB8fCBbXSldLmZpbHRlcigoaSkgPT4gaS5JbWFnZUlkICE9PSB1bmRlZmluZWQpO1xuXG4gICAgaWYgKGltYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignQW1pTm90Rm91bmQnLCAnTm8gQU1JIGZvdW5kIHRoYXQgbWF0Y2hlZCB0aGUgc2VhcmNoIGNyaXRlcmlhJyk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRoZSBtb3N0IHJlY2VudCBvbmVcbiAgICAvLyBOb3RlOiBEYXRlLnBhcnNlKCkgaXMgbm90IGdvaW5nIHRvIHJlc3BlY3QgdGhlIHRpbWV6b25lIG9mIHRoZSBzdHJpbmcsXG4gICAgLy8gYnV0IHNpbmNlIHdlIG9ubHkgY2FyZSBhYm91dCB0aGUgcmVsYXRpdmUgdmFsdWVzIHRoYXQgaXMgb2theS5cbiAgICBpbWFnZXMuc29ydChkZXNjZW5kaW5nKChpKSA9PiBEYXRlLnBhcnNlKGkuQ3JlYXRpb25EYXRlIHx8ICcxOTcwJykpKTtcblxuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYFNlbGVjdGVkIGltYWdlICcke2ltYWdlc1swXS5JbWFnZUlkfScgY3JlYXRlZCBhdCAnJHtpbWFnZXNbMF0uQ3JlYXRpb25EYXRlfSdgKTtcbiAgICByZXR1cm4gaW1hZ2VzWzBdLkltYWdlSWQhO1xuICB9XG59XG5cbi8qKlxuICogTWFrZSBhIGNvbXBhcmF0b3IgdGhhdCBzb3J0cyBpbiBkZXNjZW5kaW5nIG9yZGVyIGdpdmVuIGEgc29ydCBrZXkgZXh0cmFjdG9yXG4gKi9cbmZ1bmN0aW9uIGRlc2NlbmRpbmc8QT4odmFsdWVPZjogKHg6IEEpID0+IG51bWJlcikge1xuICByZXR1cm4gKGE6IEEsIGI6IEEpID0+IHtcbiAgICByZXR1cm4gdmFsdWVPZihiKSAtIHZhbHVlT2YoYSk7XG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AZContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\n/**\n * Plugin to retrieve the Availability Zones for the current account\n */\nclass AZContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n await this.io.debug(`Reading AZs for ${account}:${region}`);\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const response = await ec2.describeAvailabilityZones({});\n if (!response.AvailabilityZones) {\n return [];\n }\n const azs = response.AvailabilityZones.filter((zone) => zone.State === 'available').map((zone) => zone.ZoneName);\n return azs;\n }\n}\nexports.AZContextProviderPlugin = AZContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWxhYmlsaXR5LXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXZhaWxhYmlsaXR5LXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHFEQUFtRjtBQUduRjs7R0FFRztBQUNILE1BQWEsdUJBQXVCO0lBQ0w7SUFBbUM7SUFBaEUsWUFBNkIsR0FBZ0IsRUFBbUIsRUFBNEI7UUFBL0QsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUEwQjtJQUM1RixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFtQztRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQ3ZHLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDMUMsQ0FBQztRQUNGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBbEJELDBEQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBBdmFpbGFiaWxpdHlab25lIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgdHlwZSBTZGtQcm92aWRlciwgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbic7XG5cbi8qKlxuICogUGx1Z2luIHRvIHJldHJpZXZlIHRoZSBBdmFpbGFiaWxpdHkgWm9uZXMgZm9yIHRoZSBjdXJyZW50IGFjY291bnRcbiAqL1xuZXhwb3J0IGNsYXNzIEFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSkge1xuICAgIGNvbnN0IHJlZ2lvbiA9IGFyZ3MucmVnaW9uO1xuICAgIGNvbnN0IGFjY291bnQgPSBhcmdzLmFjY291bnQ7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgUmVhZGluZyBBWnMgZm9yICR7YWNjb3VudH06JHtyZWdpb259YCk7XG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzKHt9KTtcbiAgICBpZiAoIXJlc3BvbnNlLkF2YWlsYWJpbGl0eVpvbmVzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGF6cyA9IHJlc3BvbnNlLkF2YWlsYWJpbGl0eVpvbmVzLmZpbHRlcigoem9uZTogQXZhaWxhYmlsaXR5Wm9uZSkgPT4gem9uZS5TdGF0ZSA9PT0gJ2F2YWlsYWJsZScpLm1hcChcbiAgICAgICh6b25lOiBBdmFpbGFiaWxpdHlab25lKSA9PiB6b25lLlpvbmVOYW1lLFxuICAgICk7XG4gICAgcmV0dXJuIGF6cztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CcApiContextProviderPlugin = void 0;\nconst client_cloudcontrol_1 = require(\"@aws-sdk/client-cloudcontrol\");\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst util_1 = require(\"../util\");\nclass CcApiContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n /**\n * This returns a data object with the value from CloudControl API result.\n *\n * See the documentation in the Cloud Assembly Schema for the semantics of\n * each query parameter.\n */\n async getValue(args) {\n // Validate input\n if (args.exactIdentifier && args.propertyMatch) {\n throw new toolkit_error_1.ContextProviderError('ConflictingQueryParams', `Provider protocol error: specify either exactIdentifier or propertyMatch, but not both (got ${JSON.stringify(args)})`);\n }\n if (args.ignoreErrorOnMissingContext && args.dummyValue === undefined) {\n throw new toolkit_error_1.ContextProviderError('MissingDummyValue', `Provider protocol error: if ignoreErrorOnMissingContext is set, a dummyValue must be supplied (got ${JSON.stringify(args)})`);\n }\n if (args.dummyValue !== undefined && (!Array.isArray(args.dummyValue) || !args.dummyValue.every(isObject))) {\n throw new toolkit_error_1.ContextProviderError('InvalidDummyValue', `Provider protocol error: dummyValue must be an array of objects (got ${JSON.stringify(args.dummyValue)})`);\n }\n // Do the lookup\n const cloudControl = (await (0, private_1.initContextProviderSdk)(this.aws, args)).cloudControl();\n try {\n let resources;\n if (args.exactIdentifier) {\n // use getResource to get the exact identifier\n resources = await this.getResource(cloudControl, args.typeName, args.exactIdentifier);\n }\n else if (args.propertyMatch) {\n // use listResource\n resources = await this.listResources(cloudControl, args.typeName, args.propertyMatch, args.expectedMatchCount, args.resourceModel);\n }\n else {\n throw new toolkit_error_1.ContextProviderError('MissingQueryParams', `Provider protocol error: neither exactIdentifier nor propertyMatch is specified in ${JSON.stringify(args)}.`);\n }\n return resources.map((r) => (0, util_1.getResultObj)(r.properties, r.identifier, args.propertiesToReturn));\n }\n catch (err) {\n if (toolkit_error_1.ContextProviderError.isNoResultsFoundError(err) && args.ignoreErrorOnMissingContext) {\n // We've already type-checked dummyValue.\n return args.dummyValue;\n }\n throw err;\n }\n }\n /**\n * Calls getResource from CC API to get the resource.\n * See https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource.html\n *\n * Will always return exactly one resource, or fail.\n */\n async getResource(cc, typeName, exactIdentifier) {\n try {\n const result = await cc.getResource({\n TypeName: typeName,\n Identifier: exactIdentifier,\n });\n if (!result.ResourceDescription) {\n throw new toolkit_error_1.ContextProviderError('EmptyResponse', 'Unexpected CloudControl API behavior: returned empty response');\n }\n return [foundResourceFromCcApi(result.ResourceDescription)];\n }\n catch (err) {\n if (err instanceof client_cloudcontrol_1.ResourceNotFoundException || err.name === 'ResourceNotFoundException') {\n throw new toolkit_error_1.NoResultsFoundError(`No resource of type ${typeName} with identifier: ${exactIdentifier}`);\n }\n if (!toolkit_error_1.ContextProviderError.isContextProviderError(err)) {\n throw toolkit_error_1.ContextProviderError.withCause('CloudControlGetFailed', `Encountered CC API error while getting ${typeName} resource ${exactIdentifier}`, err);\n }\n throw err;\n }\n }\n /**\n * Calls listResources from CC API to get the resources and apply args.propertyMatch to find the resources.\n * See https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/list-resources.html\n *\n * Will return 0 or more resources.\n *\n * Does not currently paginate through more than one result page.\n */\n async listResources(cc, typeName, propertyMatch, expectedMatchCount, resourceModel) {\n try {\n const found = [];\n let nextToken = undefined;\n const resourceModelJSON = resourceModel ? JSON.stringify(resourceModel) : undefined;\n do {\n const result = await cc.listResources({\n TypeName: typeName,\n ResourceModel: resourceModelJSON,\n MaxResults: 100,\n ...nextToken ? { NextToken: nextToken } : {},\n });\n found.push(...(result.ResourceDescriptions ?? [])\n .map(foundResourceFromCcApi)\n .filter((r) => {\n return Object.entries(propertyMatch).every(([propPath, expected]) => {\n const actual = (0, util_1.findJsonValue)(r.properties, propPath);\n return propertyMatchesFilter(actual, expected);\n });\n }));\n nextToken = result.NextToken;\n // This allows us to error out early, before we have consumed all pages.\n if ((expectedMatchCount === 'at-most-one' || expectedMatchCount === 'exactly-one') && found.length > 1) {\n const atLeast = nextToken ? 'at least ' : '';\n throw new toolkit_error_1.ContextProviderError('TooManyMatches', `Found ${atLeast}${found.length} resources matching ${JSON.stringify(propertyMatch)}; expected ${expectedMatchCountText(expectedMatchCount)}. Please narrow the search criteria`);\n }\n } while (nextToken);\n if ((expectedMatchCount === 'at-least-one' || expectedMatchCount === 'exactly-one') && found.length === 0) {\n throw new toolkit_error_1.NoResultsFoundError(`Could not find any resources matching ${JSON.stringify(propertyMatch)}; expected ${expectedMatchCountText(expectedMatchCount)}.`);\n }\n return found;\n }\n catch (err) {\n if (!toolkit_error_1.ContextProviderError.isContextProviderError(err)) {\n throw toolkit_error_1.ContextProviderError.withCause('CloudControlListFailed', `Encountered CC API error while listing ${typeName} resources matching ${JSON.stringify(propertyMatch)}`, err);\n }\n throw err;\n }\n }\n}\nexports.CcApiContextProviderPlugin = CcApiContextProviderPlugin;\n/**\n * Convert a CC API response object into a nicer object (parse the JSON)\n */\nfunction foundResourceFromCcApi(desc) {\n return {\n identifier: desc.Identifier ?? '*MISSING*',\n properties: JSON.parse(desc.Properties ?? '{}'),\n };\n}\n/**\n * Whether the given property value matches the given filter\n *\n * For now we just check for strict equality, but we can implement pattern matching and fuzzy matching here later\n */\nfunction propertyMatchesFilter(actual, expected) {\n return expected === actual;\n}\nfunction isObject(x) {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\nfunction expectedMatchCountText(expectation) {\n switch (expectation) {\n case 'at-least-one':\n return 'at least one';\n case 'at-most-one':\n return 'at most one';\n case 'exactly-one':\n return 'exactly one';\n case 'any':\n return 'any number';\n default:\n return expectation;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2MtYXBpLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2MtYXBpLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHNFQUF5RTtBQUV6RSxxREFBaUU7QUFFakUsNERBQXFGO0FBQ3JGLGtDQUFzRDtBQUV0RCxNQUFhLDBCQUEwQjtJQUNSO0lBQTdCLFlBQTZCLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUF1QjtRQUMzQyxpQkFBaUI7UUFDakIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksb0NBQW9CLENBQUMsd0JBQXdCLEVBQUUsK0ZBQStGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25MLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQywyQkFBMkIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxtQkFBbUIsRUFBRSxzR0FBc0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckwsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNHLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxtQkFBbUIsRUFBRSx3RUFBd0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xLLENBQUM7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QUN2RCxPQUFPO1FBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksV0FBVztRQUMxQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztLQUNoRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLE1BQWUsRUFBRSxRQUFpQjtJQUMvRCxPQUFPLFFBQVEsS0FBSyxNQUFNLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLENBQVU7SUFDMUIsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsV0FBaUU7SUFDL0YsUUFBUSxXQUFXLEVBQUUsQ0FBQztRQUNwQixLQUFLLGNBQWM7WUFDakIsT0FBTyxjQUFjLENBQUM7UUFDeEIsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssYUFBYTtZQUNoQixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLEtBQUs7WUFDUixPQUFPLFlBQVksQ0FBQztRQUN0QjtZQUNFLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDY0FwaUNvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRGVzY3JpcHRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRjb250cm9sJztcbmltcG9ydCB7IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRjb250cm9sJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkQ29udHJvbENsaWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yLCBOb1Jlc3VsdHNGb3VuZEVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZpbmRKc29uVmFsdWUsIGdldFJlc3VsdE9iaiB9IGZyb20gJy4uL3V0aWwnO1xuXG5leHBvcnQgY2xhc3MgQ2NBcGlDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHJldHVybnMgYSBkYXRhIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSBmcm9tIENsb3VkQ29udHJvbCBBUEkgcmVzdWx0LlxuICAgKlxuICAgKiBTZWUgdGhlIGRvY3VtZW50YXRpb24gaW4gdGhlIENsb3VkIEFzc2VtYmx5IFNjaGVtYSBmb3IgdGhlIHNlbWFudGljcyBvZlxuICAgKiBlYWNoIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBDY0FwaUNvbnRleHRRdWVyeSkge1xuICAgIC8vIFZhbGlkYXRlIGlucHV0XG4gICAgaWYgKGFyZ3MuZXhhY3RJZGVudGlmaWVyICYmIGFyZ3MucHJvcGVydHlNYXRjaCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdDb25mbGljdGluZ1F1ZXJ5UGFyYW1zJywgYFByb3ZpZGVyIHByb3RvY29sIGVycm9yOiBzcGVjaWZ5IGVpdGhlciBleGFjdElkZW50aWZpZXIgb3IgcHJvcGVydHlNYXRjaCwgYnV0IG5vdCBib3RoIChnb3QgJHtKU09OLnN0cmluZ2lmeShhcmdzKX0pYCk7XG4gICAgfVxuICAgIGlmIChhcmdzLmlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dCAmJiBhcmdzLmR1bW15VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNaXNzaW5nRHVtbXlWYWx1ZScsIGBQcm92aWRlciBwcm90b2NvbCBlcnJvcjogaWYgaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0IGlzIHNldCwgYSBkdW1teVZhbHVlIG11c3QgYmUgc3VwcGxpZWQgKGdvdCAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfSlgKTtcbiAgICB9XG4gICAgaWYgKGFyZ3MuZHVtbXlWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICghQXJyYXkuaXNBcnJheShhcmdzLmR1bW15VmFsdWUpIHx8ICFhcmdzLmR1bW15VmFsdWUuZXZlcnkoaXNPYmplY3QpKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdJbnZhbGlkRHVtbXlWYWx1ZScsIGBQcm92aWRlciBwcm90b2NvbCBlcnJvcjogZHVtbXlWYWx1ZSBtdXN0IGJlIGFuIGFycmF5IG9mIG9iamVjdHMgKGdvdCAke0pTT04uc3RyaW5naWZ5KGFyZ3MuZHVtbXlWYWx1ZSl9KWApO1xuICAgIH1cblxuICAgIC8vIERvIHRoZSBsb29rdXBcbiAgICBjb25zdCBjbG91ZENvbnRyb2wgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayh0aGlzLmF3cywgYXJncykpLmNsb3VkQ29udHJvbCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxldCByZXNvdXJjZXM6IEZvdW5kUmVzb3VyY2VbXTtcbiAgICAgIGlmIChhcmdzLmV4YWN0SWRlbnRpZmllcikge1xuICAgICAgICAvLyB1c2UgZ2V0UmVzb3VyY2UgdG8gZ2V0IHRoZSBleGFjdCBpZGVudGlmaWVyXG4gICAgICAgIHJlc291cmNlcyA9IGF3YWl0IHRoaXMuZ2V0UmVzb3VyY2UoY2xvdWRDb250cm9sLCBhcmdzLnR5cGVOYW1lLCBhcmdzLmV4YWN0SWRlbnRpZmllcik7XG4gICAgICB9IGVsc2UgaWYgKGFyZ3MucHJvcGVydHlNYXRjaCkge1xuICAgICAgICAvLyB1c2UgbGlzdFJlc291cmNlXG4gICAgICAgIHJlc291cmNlcyA9IGF3YWl0IHRoaXMubGlzdFJlc291cmNlcyhjbG91ZENvbnRyb2wsIGFyZ3MudHlwZU5hbWUsIGFyZ3MucHJvcGVydHlNYXRjaCwgYXJncy5leHBlY3RlZE1hdGNoQ291bnQsIGFyZ3MucmVzb3VyY2VNb2RlbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ01pc3NpbmdRdWVyeVBhcmFtcycsIGBQcm92aWRlciBwcm90b2NvbCBlcnJvcjogbmVpdGhlciBleGFjdElkZW50aWZpZXIgbm9yIHByb3BlcnR5TWF0Y2ggaXMgc3BlY2lmaWVkIGluICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9LmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb3VyY2VzLm1hcCgocikgPT4gZ2V0UmVzdWx0T2JqKHIucHJvcGVydGllcywgci5pZGVudGlmaWVyLCBhcmdzLnByb3BlcnRpZXNUb1JldHVybikpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKENvbnRleHRQcm92aWRlckVycm9yLmlzTm9SZXN1bHRzRm91bmRFcnJvcihlcnIpICYmIGFyZ3MuaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0KSB7XG4gICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgdHlwZS1jaGVja2VkIGR1bW15VmFsdWUuXG4gICAgICAgIHJldHVybiBhcmdzLmR1bW15VmFsdWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIGdldFJlc291cmNlIGZyb20gQ0MgQVBJIHRvIGdldCB0aGUgcmVzb3VyY2UuXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC9yZWZlcmVuY2UvY2xvdWRjb250cm9sL2dldC1yZXNvdXJjZS5odG1sXG4gICAqXG4gICAqIFdpbGwgYWx3YXlzIHJldHVybiBleGFjdGx5IG9uZSByZXNvdXJjZSwgb3IgZmFpbC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVzb3VyY2UoXG4gICAgY2M6IElDbG91ZENvbnRyb2xDbGllbnQsXG4gICAgdHlwZU5hbWU6IHN0cmluZyxcbiAgICBleGFjdElkZW50aWZpZXI6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxGb3VuZFJlc291cmNlW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2MuZ2V0UmVzb3VyY2Uoe1xuICAgICAgICBUeXBlTmFtZTogdHlwZU5hbWUsXG4gICAgICAgIElkZW50aWZpZXI6IGV4YWN0SWRlbnRpZmllcixcbiAgICAgIH0pO1xuICAgICAgaWYgKCFyZXN1bHQuUmVzb3VyY2VEZXNjcmlwdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0VtcHR5UmVzcG9uc2UnLCAnVW5leHBlY3RlZCBDbG91ZENvbnRyb2wgQVBJIGJlaGF2aW9yOiByZXR1cm5lZCBlbXB0eSByZXNwb25zZScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW2ZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkocmVzdWx0LlJlc291cmNlRGVzY3JpcHRpb24pXTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gfHwgKGVyciBhcyBhbnkpLm5hbWUgPT09ICdSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgTm9SZXN1bHRzRm91bmRFcnJvcihgTm8gcmVzb3VyY2Ugb2YgdHlwZSAke3R5cGVOYW1lfSB3aXRoIGlkZW50aWZpZXI6ICR7ZXhhY3RJZGVudGlmaWVyfWApO1xuICAgICAgfVxuICAgICAgaWYgKCFDb250ZXh0UHJvdmlkZXJFcnJvci5pc0NvbnRleHRQcm92aWRlckVycm9yKGVycikpIHtcbiAgICAgICAgdGhyb3cgQ29udGV4dFByb3ZpZGVyRXJyb3Iud2l0aENhdXNlKCdDbG91ZENvbnRyb2xHZXRGYWlsZWQnLCBgRW5jb3VudGVyZWQgQ0MgQVBJIGVycm9yIHdoaWxlIGdldHRpbmcgJHt0eXBlTmFtZX0gcmVzb3VyY2UgJHtleGFjdElkZW50aWZpZXJ9YCwgZXJyKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgbGlzdFJlc291cmNlcyBmcm9tIENDIEFQSSB0byBnZXQgdGhlIHJlc291cmNlcyBhbmQgYXBwbHkgYXJncy5wcm9wZXJ0eU1hdGNoIHRvIGZpbmQgdGhlIHJlc291cmNlcy5cbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3JlZmVyZW5jZS9jbG91ZGNvbnRyb2wvbGlzdC1yZXNvdXJjZXMuaHRtbFxuICAgKlxuICAgKiBXaWxsIHJldHVybiAwIG9yIG1vcmUgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBEb2VzIG5vdCBjdXJyZW50bHkgcGFnaW5hdGUgdGhyb3VnaCBtb3JlIHRoYW4gb25lIHJlc3VsdCBwYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsaXN0UmVzb3VyY2VzKFxuICAgIGNjOiBJQ2xvdWRDb250cm9sQ2xpZW50LFxuICAgIHR5cGVOYW1lOiBzdHJpbmcsXG4gICAgcHJvcGVydHlNYXRjaDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgZXhwZWN0ZWRNYXRjaENvdW50PzogQ2NBcGlDb250ZXh0UXVlcnlbJ2V4cGVjdGVkTWF0Y2hDb3VudCddLFxuICAgIHJlc291cmNlTW9kZWw/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxGb3VuZFJlc291cmNlW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZm91bmQ6IEZvdW5kUmVzb3VyY2VbXSA9IFtdO1xuICAgICAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcmVzb3VyY2VNb2RlbEpTT046IHN0cmluZyB8IHVuZGVmaW5lZCA9IHJlc291cmNlTW9kZWwgPyBKU09OLnN0cmluZ2lmeShyZXNvdXJjZU1vZGVsKSA6IHVuZGVmaW5lZDtcblxuICAgICAgZG8ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYy5saXN0UmVzb3VyY2VzKHtcbiAgICAgICAgICBUeXBlTmFtZTogdHlwZU5hbWUsXG4gICAgICAgICAgUmVzb3VyY2VNb2RlbDogcmVzb3VyY2VNb2RlbEpTT04sXG4gICAgICAgICAgTWF4UmVzdWx0czogMTAwLFxuICAgICAgICAgIC4uLm5leHRUb2tlbiA/IHsgTmV4dFRva2VuOiBuZXh0VG9rZW4gfSA6IHt9LFxuICAgICAgICB9KTtcblxuICAgICAgICBmb3VuZC5wdXNoKFxuICAgICAgICAgIC4uLihyZXN1bHQuUmVzb3VyY2VEZXNjcmlwdGlvbnMgPz8gW10pXG4gICAgICAgICAgICAubWFwKGZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkpXG4gICAgICAgICAgICAuZmlsdGVyKChyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhwcm9wZXJ0eU1hdGNoKS5ldmVyeSgoW3Byb3BQYXRoLCBleHBlY3RlZF0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWwgPSBmaW5kSnNvblZhbHVlKHIucHJvcGVydGllcywgcHJvcFBhdGgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eU1hdGNoZXNGaWx0ZXIoYWN0dWFsLCBleHBlY3RlZCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgbmV4dFRva2VuID0gcmVzdWx0Lk5leHRUb2tlbjtcblxuICAgICAgICAvLyBUaGlzIGFsbG93cyB1cyB0byBlcnJvciBvdXQgZWFybHksIGJlZm9yZSB3ZSBoYXZlIGNvbnN1bWVkIGFsbCBwYWdlcy5cbiAgICAgICAgaWYgKChleHBlY3RlZE1hdGNoQ291bnQgPT09ICdhdC1tb3N0LW9uZScgfHwgZXhwZWN0ZWRNYXRjaENvdW50ID09PSAnZXhhY3RseS1vbmUnKSAmJiBmb3VuZC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgY29uc3QgYXRMZWFzdCA9IG5leHRUb2tlbiA/ICdhdCBsZWFzdCAnIDogJyc7XG4gICAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdUb29NYW55TWF0Y2hlcycsIGBGb3VuZCAke2F0TGVhc3R9JHtmb3VuZC5sZW5ndGh9IHJlc291cmNlcyBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHByb3BlcnR5TWF0Y2gpfTsgZXhwZWN0ZWQgJHtleHBlY3RlZE1hdGNoQ291bnRUZXh0KGV4cGVjdGVkTWF0Y2hDb3VudCl9LiBQbGVhc2UgbmFycm93IHRoZSBzZWFyY2ggY3JpdGVyaWFgKTtcbiAgICAgICAgfVxuICAgICAgfSB3aGlsZSAobmV4dFRva2VuKTtcblxuICAgICAgaWYgKChleHBlY3RlZE1hdGNoQ291bnQgPT09ICdhdC1sZWFzdC1vbmUnIHx8IGV4cGVjdGVkTWF0Y2hDb3VudCA9PT0gJ2V4YWN0bHktb25lJykgJiYgZm91bmQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBOb1Jlc3VsdHNGb3VuZEVycm9yKGBDb3VsZCBub3QgZmluZCBhbnkgcmVzb3VyY2VzIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkocHJvcGVydHlNYXRjaCl9OyBleHBlY3RlZCAke2V4cGVjdGVkTWF0Y2hDb3VudFRleHQoZXhwZWN0ZWRNYXRjaENvdW50KX0uYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKCFDb250ZXh0UHJvdmlkZXJFcnJvci5pc0NvbnRleHRQcm92aWRlckVycm9yKGVycikpIHtcbiAgICAgICAgdGhyb3cgQ29udGV4dFByb3ZpZGVyRXJyb3Iud2l0aENhdXNlKCdDbG91ZENvbnRyb2xMaXN0RmFpbGVkJywgYEVuY291bnRlcmVkIENDIEFQSSBlcnJvciB3aGlsZSBsaXN0aW5nICR7dHlwZU5hbWV9IHJlc291cmNlcyBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHByb3BlcnR5TWF0Y2gpfWAsIGVycik7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29udmVydCBhIENDIEFQSSByZXNwb25zZSBvYmplY3QgaW50byBhIG5pY2VyIG9iamVjdCAocGFyc2UgdGhlIEpTT04pXG4gKi9cbmZ1bmN0aW9uIGZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkoZGVzYzogUmVzb3VyY2VEZXNjcmlwdGlvbik6IEZvdW5kUmVzb3VyY2Uge1xuICByZXR1cm4ge1xuICAgIGlkZW50aWZpZXI6IGRlc2MuSWRlbnRpZmllciA/PyAnKk1JU1NJTkcqJyxcbiAgICBwcm9wZXJ0aWVzOiBKU09OLnBhcnNlKGRlc2MuUHJvcGVydGllcyA/PyAne30nKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0eSB2YWx1ZSBtYXRjaGVzIHRoZSBnaXZlbiBmaWx0ZXJcbiAqXG4gKiBGb3Igbm93IHdlIGp1c3QgY2hlY2sgZm9yIHN0cmljdCBlcXVhbGl0eSwgYnV0IHdlIGNhbiBpbXBsZW1lbnQgcGF0dGVybiBtYXRjaGluZyBhbmQgZnV6enkgbWF0Y2hpbmcgaGVyZSBsYXRlclxuICovXG5mdW5jdGlvbiBwcm9wZXJ0eU1hdGNoZXNGaWx0ZXIoYWN0dWFsOiB1bmtub3duLCBleHBlY3RlZDogdW5rbm93bikge1xuICByZXR1cm4gZXhwZWN0ZWQgPT09IGFjdHVhbDtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoeDogdW5rbm93bik6IHggaXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0ge1xuICByZXR1cm4gdHlwZW9mIHggPT09ICdvYmplY3QnICYmIHggIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkoeCk7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdGVkTWF0Y2hDb3VudFRleHQoZXhwZWN0YXRpb246IE5vbk51bGxhYmxlPENjQXBpQ29udGV4dFF1ZXJ5WydleHBlY3RlZE1hdGNoQ291bnQnXT4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKGV4cGVjdGF0aW9uKSB7XG4gICAgY2FzZSAnYXQtbGVhc3Qtb25lJzpcbiAgICAgIHJldHVybiAnYXQgbGVhc3Qgb25lJztcbiAgICBjYXNlICdhdC1tb3N0LW9uZSc6XG4gICAgICByZXR1cm4gJ2F0IG1vc3Qgb25lJztcbiAgICBjYXNlICdleGFjdGx5LW9uZSc6XG4gICAgICByZXR1cm4gJ2V4YWN0bHkgb25lJztcbiAgICBjYXNlICdhbnknOlxuICAgICAgcmV0dXJuICdhbnkgbnVtYmVyJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV4cGVjdGF0aW9uO1xuICB9XG59XG5cbi8qKlxuICogQSBwYXJzZWQgdmVyc2lvbiBvZiB0aGUgcmV0dXJuIHZhbHVlIGZyb20gQ0NBUElcbiAqL1xuaW50ZXJmYWNlIEZvdW5kUmVzb3VyY2Uge1xuICByZWFkb25seSBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndpointServiceAZContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\n/**\n * Plugin to retrieve the Availability Zones for an endpoint service\n */\nclass EndpointServiceAZContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n const serviceName = args.serviceName;\n await this.io.debug(`Reading AZs for ${account}:${region}:${serviceName}`);\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const response = await ec2.describeVpcEndpointServices({\n ServiceNames: [serviceName],\n });\n // expect a service in the response\n if (!response.ServiceDetails || response.ServiceDetails.length === 0) {\n await this.io.debug(`Could not retrieve service details for ${account}:${region}:${serviceName}`);\n return [];\n }\n const azs = response.ServiceDetails[0].AvailabilityZones;\n await this.io.debug(`Endpoint service ${account}:${region}:${serviceName} is available in availability zones ${azs}`);\n return azs;\n }\n}\nexports.EndpointServiceAZContextProviderPlugin = EndpointServiceAZContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxREFBbUY7QUFHbkY7O0dBRUc7QUFDSCxNQUFhLHNDQUFzQztJQUNwQjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQWtEO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLE9BQU8sSUFBSSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMzRSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxnQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsMkJBQTJCLENBQUM7WUFDckQsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQzVCLENBQUMsQ0FBQztRQUVILG1DQUFtQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxPQUFPLElBQUksTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDbEcsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixPQUFPLElBQUksTUFBTSxJQUFJLFdBQVcsdUNBQXVDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEgsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUF2QkQsd0ZBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgdHlwZSBTZGtQcm92aWRlciwgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbic7XG5cbi8qKlxuICogUGx1Z2luIHRvIHJldHJpZXZlIHRoZSBBdmFpbGFiaWxpdHkgWm9uZXMgZm9yIGFuIGVuZHBvaW50IHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSkge1xuICAgIGNvbnN0IHJlZ2lvbiA9IGFyZ3MucmVnaW9uO1xuICAgIGNvbnN0IGFjY291bnQgPSBhcmdzLmFjY291bnQ7XG4gICAgY29uc3Qgc2VydmljZU5hbWUgPSBhcmdzLnNlcnZpY2VOYW1lO1xuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYFJlYWRpbmcgQVpzIGZvciAke2FjY291bnR9OiR7cmVnaW9ufToke3NlcnZpY2VOYW1lfWApO1xuICAgIGNvbnN0IGVjMiA9IChhd2FpdCBpbml0Q29udGV4dFByb3ZpZGVyU2RrKHRoaXMuYXdzLCBhcmdzKSkuZWMyKCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlYzIuZGVzY3JpYmVWcGNFbmRwb2ludFNlcnZpY2VzKHtcbiAgICAgIFNlcnZpY2VOYW1lczogW3NlcnZpY2VOYW1lXSxcbiAgICB9KTtcblxuICAgIC8vIGV4cGVjdCBhIHNlcnZpY2UgaW4gdGhlIHJlc3BvbnNlXG4gICAgaWYgKCFyZXNwb25zZS5TZXJ2aWNlRGV0YWlscyB8fCByZXNwb25zZS5TZXJ2aWNlRGV0YWlscy5sZW5ndGggPT09IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYENvdWxkIG5vdCByZXRyaWV2ZSBzZXJ2aWNlIGRldGFpbHMgZm9yICR7YWNjb3VudH06JHtyZWdpb259OiR7c2VydmljZU5hbWV9YCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGF6cyA9IHJlc3BvbnNlLlNlcnZpY2VEZXRhaWxzWzBdLkF2YWlsYWJpbGl0eVpvbmVzO1xuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYEVuZHBvaW50IHNlcnZpY2UgJHthY2NvdW50fToke3JlZ2lvbn06JHtzZXJ2aWNlTmFtZX0gaXMgYXZhaWxhYmxlIGluIGF2YWlsYWJpbGl0eSB6b25lcyAke2F6c31gKTtcbiAgICByZXR1cm4gYXpzO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HostedZoneContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass HostedZoneContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const account = args.account;\n const region = args.region;\n if (!this.isHostedZoneQuery(args)) {\n throw new toolkit_error_1.ContextProviderError('MissingDomainName', `HostedZoneProvider requires domainName property to be set in ${args}`);\n }\n const domainName = args.domainName;\n await this.io.debug(`Reading hosted zone ${account}:${region}:${domainName}`);\n const r53 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).route53();\n const response = await r53.listHostedZonesByName({ DNSName: domainName });\n if (!response.HostedZones) {\n throw new toolkit_error_1.ContextProviderError('HostedZoneNotFound', `Hosted Zone not found in account ${account}, region ${region}: ${domainName}`);\n }\n const candidateZones = await this.filterZones(r53, response.HostedZones, args);\n if (candidateZones.length !== 1) {\n const filteProps = `dns:${domainName}, privateZone:${args.privateZone}, vpcId:${args.vpcId}`;\n throw new toolkit_error_1.ContextProviderError('HostedZoneCountMismatch', `Found zones: ${JSON.stringify(candidateZones)} for ${filteProps}, but wanted exactly 1 zone`);\n }\n return {\n Id: candidateZones[0].Id,\n Name: candidateZones[0].Name,\n };\n }\n async filterZones(r53, zones, props) {\n let candidates = [];\n const domainName = props.domainName.endsWith('.') ? props.domainName : `${props.domainName}.`;\n await this.io.debug(`Found the following zones ${JSON.stringify(zones)}`);\n candidates = zones.filter((zone) => zone.Name === domainName);\n await this.io.debug(`Found the following matched name zones ${JSON.stringify(candidates)}`);\n if (props.privateZone) {\n candidates = candidates.filter((zone) => zone.Config && zone.Config.PrivateZone);\n }\n else {\n candidates = candidates.filter((zone) => !zone.Config || !zone.Config.PrivateZone);\n }\n if (props.vpcId) {\n const vpcZones = [];\n for (const zone of candidates) {\n const data = await r53.getHostedZone({ Id: zone.Id });\n if (!data.VPCs) {\n await this.io.debug(`Expected VPC for private zone but no VPC found ${zone.Id}`);\n continue;\n }\n if (data.VPCs.map((vpc) => vpc.VPCId).includes(props.vpcId)) {\n vpcZones.push(zone);\n }\n }\n return vpcZones;\n }\n return candidates;\n }\n isHostedZoneQuery(props) {\n return props.domainName !== undefined;\n }\n}\nexports.HostedZoneContextProviderPlugin = HostedZoneContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkLXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaG9zdGVkLXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUFpRTtBQUVqRSw0REFBZ0U7QUFFaEUsTUFBYSwrQkFBK0I7SUFDYjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQTRCO1FBQ2hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLG9DQUFvQixDQUFDLG1CQUFtQixFQUFFLGdFQUFnRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlILENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLE9BQU8sSUFBSSxNQUFNLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM5RSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxnQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxvQkFBb0IsRUFB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Q0FBQztvQkFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQW1DO1FBQzNELE9BQVEsS0FBZ0MsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDO0lBQ3BFLENBQUM7Q0FDRjtBQWhFRCwwRUFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhvc3RlZFpvbmVDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBIb3N0ZWRab25lIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXJvdXRlLTUzJztcbmltcG9ydCB0eXBlIHsgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIH0gZnJvbSAnLic7XG5pbXBvcnQgdHlwZSB7IElSb3V0ZTUzQ2xpZW50LCBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZUNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlciwgcHJpdmF0ZSByZWFkb25seSBpbzogSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoYXJnczogSG9zdGVkWm9uZUNvbnRleHRRdWVyeSk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgY29uc3QgYWNjb3VudCA9IGFyZ3MuYWNjb3VudDtcbiAgICBjb25zdCByZWdpb24gPSBhcmdzLnJlZ2lvbjtcbiAgICBpZiAoIXRoaXMuaXNIb3N0ZWRab25lUXVlcnkoYXJncykpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTWlzc2luZ0RvbWFpbk5hbWUnLCBgSG9zdGVkWm9uZVByb3ZpZGVyIHJlcXVpcmVzIGRvbWFpbk5hbWUgcHJvcGVydHkgdG8gYmUgc2V0IGluICR7YXJnc31gKTtcbiAgICB9XG4gICAgY29uc3QgZG9tYWluTmFtZSA9IGFyZ3MuZG9tYWluTmFtZTtcbiAgICBhd2FpdCB0aGlzLmlvLmRlYnVnKGBSZWFkaW5nIGhvc3RlZCB6b25lICR7YWNjb3VudH06JHtyZWdpb259OiR7ZG9tYWluTmFtZX1gKTtcbiAgICBjb25zdCByNTMgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayh0aGlzLmF3cywgYXJncykpLnJvdXRlNTMoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHI1My5saXN0SG9zdGVkWm9uZXNCeU5hbWUoeyBETlNOYW1lOiBkb21haW5OYW1lIH0pO1xuICAgIGlmICghcmVzcG9uc2UuSG9zdGVkWm9uZXMpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignSG9zdGVkWm9uZU5vdEZvdW5kJywgYEhvc3RlZCBab25lIG5vdCBmb3VuZCBpbiBhY2NvdW50ICR7YWNjb3VudH0sIHJlZ2lvbiAke3JlZ2lvbn06ICR7ZG9tYWluTmFtZX1gKTtcbiAgICB9XG4gICAgY29uc3QgY2FuZGlkYXRlWm9uZXMgPSBhd2FpdCB0aGlzLmZpbHRlclpvbmVzKHI1MywgcmVzcG9uc2UuSG9zdGVkWm9uZXMsIGFyZ3MpO1xuICAgIGlmIChjYW5kaWRhdGVab25lcy5sZW5ndGggIT09IDEpIHtcbiAgICAgIGNvbnN0IGZpbHRlUHJvcHMgPSBgZG5zOiR7ZG9tYWluTmFtZX0sIHByaXZhdGVab25lOiR7YXJncy5wcml2YXRlWm9uZX0sIHZwY0lkOiR7YXJncy52cGNJZH1gO1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdIb3N0ZWRab25lQ291bnRNaXNtYXRjaCcsIGBGb3VuZCB6b25lczogJHtKU09OLnN0cmluZ2lmeShjYW5kaWRhdGVab25lcyl9IGZvciAke2ZpbHRlUHJvcHN9LCBidXQgd2FudGVkIGV4YWN0bHkgMSB6b25lYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIElkOiBjYW5kaWRhdGVab25lc1swXS5JZCxcbiAgICAgIE5hbWU6IGNhbmRpZGF0ZVpvbmVzWzBdLk5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyWm9uZXMoXG4gICAgcjUzOiBJUm91dGU1M0NsaWVudCxcbiAgICB6b25lczogSG9zdGVkWm9uZVtdLFxuICAgIHByb3BzOiBIb3N0ZWRab25lQ29udGV4dFF1ZXJ5LFxuICApOiBQcm9taXNlPEhvc3RlZFpvbmVbXT4ge1xuICAgIGxldCBjYW5kaWRhdGVzOiBIb3N0ZWRab25lW10gPSBbXTtcbiAgICBjb25zdCBkb21haW5OYW1lID0gcHJvcHMuZG9tYWluTmFtZS5lbmRzV2l0aCgnLicpID8gcHJvcHMuZG9tYWluTmFtZSA6IGAke3Byb3BzLmRvbWFpbk5hbWV9LmA7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgRm91bmQgdGhlIGZvbGxvd2luZyB6b25lcyAke0pTT04uc3RyaW5naWZ5KHpvbmVzKX1gKTtcbiAgICBjYW5kaWRhdGVzID0gem9uZXMuZmlsdGVyKCh6b25lKSA9PiB6b25lLk5hbWUgPT09IGRvbWFpbk5hbWUpO1xuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYEZvdW5kIHRoZSBmb2xsb3dpbmcgbWF0Y2hlZCBuYW1lIHpvbmVzICR7SlNPTi5zdHJpbmdpZnkoY2FuZGlkYXRlcyl9YCk7XG4gICAgaWYgKHByb3BzLnByaXZhdGVab25lKSB7XG4gICAgICBjYW5kaWRhdGVzID0gY2FuZGlkYXRlcy5maWx0ZXIoKHpvbmUpID0+IHpvbmUuQ29uZmlnICYmIHpvbmUuQ29uZmlnLlByaXZhdGVab25lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FuZGlkYXRlcyA9IGNhbmRpZGF0ZXMuZmlsdGVyKCh6b25lKSA9PiAhem9uZS5Db25maWcgfHwgIXpvbmUuQ29uZmlnLlByaXZhdGVab25lKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLnZwY0lkKSB7XG4gICAgICBjb25zdCB2cGNab25lczogSG9zdGVkWm9uZVtdID0gW107XG4gICAgICBmb3IgKGNvbnN0IHpvbmUgb2YgY2FuZGlkYXRlcykge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcjUzLmdldEhvc3RlZFpvbmUoeyBJZDogem9uZS5JZCB9KTtcbiAgICAgICAgaWYgKCFkYXRhLlZQQ3MpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvLmRlYnVnKGBFeHBlY3RlZCBWUEMgZm9yIHByaXZhdGUgem9uZSBidXQgbm8gVlBDIGZvdW5kICR7em9uZS5JZH1gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5WUENzLm1hcCgodnBjKSA9PiB2cGMuVlBDSWQpLmluY2x1ZGVzKHByb3BzLnZwY0lkKSkge1xuICAgICAgICAgIHZwY1pvbmVzLnB1c2goem9uZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2cGNab25lcztcbiAgICB9XG4gICAgcmV0dXJuIGNhbmRpZGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIGlzSG9zdGVkWm9uZVF1ZXJ5KHByb3BzOiBIb3N0ZWRab25lQ29udGV4dFF1ZXJ5IHwgYW55KTogcHJvcHMgaXMgSG9zdGVkWm9uZUNvbnRleHRRdWVyeSB7XG4gICAgcmV0dXJuIChwcm9wcyBhcyBIb3N0ZWRab25lQ29udGV4dFF1ZXJ5KS5kb21haW5OYW1lICE9PSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.provideContextValues = provideContextValues;\nexports.registerContextProvider = registerContextProvider;\nexports.registerPluginContextProvider = registerPluginContextProvider;\nexports.registerContextProviderFactory = registerContextProviderFactory;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst ami_1 = require(\"./ami\");\nconst availability_zones_1 = require(\"./availability-zones\");\nconst cc_api_provider_1 = require(\"./cc-api-provider\");\nconst endpoint_service_availability_zones_1 = require(\"./endpoint-service-availability-zones\");\nconst hosted_zones_1 = require(\"./hosted-zones\");\nconst keys_1 = require(\"./keys\");\nconst load_balancers_1 = require(\"./load-balancers\");\nconst security_groups_1 = require(\"./security-groups\");\nconst ssm_parameters_1 = require(\"./ssm-parameters\");\nconst vpcs_1 = require(\"./vpcs\");\nconst context_1 = require(\"../api/context\");\nconst environment_1 = require(\"../api/environment\");\nconst private_1 = require(\"../api/io/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst util_1 = require(\"../util\");\nconst PLUGIN_PROVIDER_PREFIX = 'plugin';\nclass ContextProviderMessages {\n ioHelper;\n providerName;\n constructor(ioHelper, providerName) {\n this.ioHelper = ioHelper;\n this.providerName = providerName;\n }\n async info(message) {\n return this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0300.msg(message, {\n provider: this.providerName,\n }));\n }\n async debug(message) {\n return this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0301.msg(message, {\n provider: this.providerName,\n }));\n }\n}\n/**\n * Iterate over the list of missing context values and invoke the appropriate providers from the map to retrieve them\n */\nasync function provideContextValues(missingValues, sdk, pluginHost, ioHelper) {\n const updates = {};\n for (const missingContext of missingValues) {\n const key = missingContext.key;\n const providerName = missingContext.provider === cxschema.ContextProvider.PLUGIN\n ? `${PLUGIN_PROVIDER_PREFIX}:${missingContext.props.pluginName}`\n : missingContext.provider;\n let factory;\n if (providerName.startsWith(`${PLUGIN_PROVIDER_PREFIX}:`)) {\n const plugin = pluginHost.contextProviderPlugins[providerName.substring(PLUGIN_PROVIDER_PREFIX.length + 1)];\n if (!plugin) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ContextProviderError('UnrecognizedPlugin', `Unrecognized plugin context provider name: ${missingContext.provider}.`);\n }\n factory = () => plugin;\n }\n else {\n factory = availableContextProviders[providerName];\n if (!factory) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ContextProviderError('UnrecognizedProvider', `Unrecognized context provider name: ${missingContext.provider}. You might need to update the toolkit to match the version of the construct library.`);\n }\n }\n const provider = factory(sdk, new ContextProviderMessages(ioHelper, providerName));\n let value;\n try {\n const environment = missingContext.props.account && missingContext.props.region\n ? cloud_assembly_api_1.EnvironmentUtils.make(missingContext.props.account, missingContext.props.region)\n : undefined;\n const resolvedEnvironment = environment\n ? await sdk.resolveEnvironment(environment)\n : { account: '?', region: '?', name: '?' };\n const arns = await (0, environment_1.replaceEnvPlaceholders)({\n lookupRoleArn: missingContext.props.lookupRoleArn,\n }, resolvedEnvironment, sdk);\n value = await provider.getValue({ ...missingContext.props, lookupRoleArn: arns.lookupRoleArn });\n }\n catch (e) {\n // Set a specially formatted provider value which will be interpreted\n // as a lookup failure in the toolkit.\n value = { [cloud_assembly_api_1.PROVIDER_ERROR_KEY]: (0, util_1.formatErrorMessage)(e), [context_1.TRANSIENT_CONTEXT_KEY]: true };\n }\n updates[key] = value;\n await ioHelper.defaults.debug(`Setting \"${key}\" context to ${JSON.stringify(value)}`);\n }\n return updates;\n}\n/**\n * Register a context provider\n *\n * A context provider cannot reuse the SDKs authentication mechanisms.\n */\nfunction registerContextProvider(name, provider) {\n availableContextProviders[name] = () => provider;\n}\n/**\n * Register a plugin context provider\n *\n * A plugin provider cannot reuse the SDKs authentication mechanisms.\n */\nfunction registerPluginContextProvider(name, provider) {\n registerContextProvider(`${PLUGIN_PROVIDER_PREFIX}:${name}`, provider);\n}\n/**\n * Register a context provider factory\n *\n * A context provider factory takes an SdkProvider and returns the context provider plugin.\n */\nfunction registerContextProviderFactory(name, provider) {\n availableContextProviders[name] = provider;\n}\nconst availableContextProviders = {\n [cxschema.ContextProvider.AVAILABILITY_ZONE_PROVIDER]: (s, io) => new availability_zones_1.AZContextProviderPlugin(s, io),\n [cxschema.ContextProvider.SSM_PARAMETER_PROVIDER]: (s, io) => new ssm_parameters_1.SSMContextProviderPlugin(s, io),\n [cxschema.ContextProvider.HOSTED_ZONE_PROVIDER]: (s, io) => new hosted_zones_1.HostedZoneContextProviderPlugin(s, io),\n [cxschema.ContextProvider.VPC_PROVIDER]: (s, io) => new vpcs_1.VpcNetworkContextProviderPlugin(s, io),\n [cxschema.ContextProvider.AMI_PROVIDER]: (s, io) => new ami_1.AmiContextProviderPlugin(s, io),\n [cxschema.ContextProvider.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER]: (s, io) => new endpoint_service_availability_zones_1.EndpointServiceAZContextProviderPlugin(s, io),\n [cxschema.ContextProvider.SECURITY_GROUP_PROVIDER]: (s) => new security_groups_1.SecurityGroupContextProviderPlugin(s),\n [cxschema.ContextProvider.LOAD_BALANCER_PROVIDER]: (s) => new load_balancers_1.LoadBalancerContextProviderPlugin(s),\n [cxschema.ContextProvider.LOAD_BALANCER_LISTENER_PROVIDER]: (s) => new load_balancers_1.LoadBalancerListenerContextProviderPlugin(s),\n [cxschema.ContextProvider.KEY_PROVIDER]: (s, io) => new keys_1.KeyContextProviderPlugin(s, io),\n [cxschema.ContextProvider.CC_API_PROVIDER]: (s) => new cc_api_provider_1.CcApiContextProviderPlugin(s),\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFFQSxvREEwREM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUF6SkQsb0VBQW1GO0FBQ25GLDJEQUEyRDtBQUMzRCwrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFFekQsNENBQXVEO0FBQ3ZELG9EQUE0RDtBQUM1RCwrQ0FBdUM7QUFHdkMsNERBQWdFO0FBQ2hFLGtDQUE2QztBQUs3QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQW1CeEMsTUFBTSx1QkFBdUI7SUFDVixRQUFRLENBQVc7SUFDbkIsWUFBWSxDQUFTO0lBRXRDLFlBQW1CLFFBQWtCLEVBQUUsWUFBb0I7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUM1QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFD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QyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksNENBQTBCLENBQUMsQ0FBQyxDQUFDO0NBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50VXRpbHMsIFBST1ZJREVSX0VSUk9SX0tFWSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9hbWknO1xuaW1wb3J0IHsgQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2F2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vY2MtYXBpLXByb3ZpZGVyJztcbmltcG9ydCB7IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9lbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9ob3N0ZWQtem9uZXMnO1xuaW1wb3J0IHsgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9rZXlzJztcbmltcG9ydCB7IExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2xvYWQtYmFsYW5jZXJzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NlY3VyaXR5LWdyb3Vwcyc7XG5pbXBvcnQgeyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NzbS1wYXJhbWV0ZXJzJztcbmltcG9ydCB7IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3ZwY3MnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IFRSQU5TSUVOVF9DT05URVhUX0tFWSB9IGZyb20gJy4uL2FwaS9jb250ZXh0JztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9hcGkvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ib3N0LCBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uL3V0aWwnO1xuXG50eXBlIENvbnRleHRQcm92aWRlckZhY3RvcnkgPSAoKHNkazogU2RrUHJvdmlkZXIsIGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpID0+IENvbnRleHRQcm92aWRlclBsdWdpbik7XG50eXBlIFByb3ZpZGVyTWFwID0geyBbbmFtZTogc3RyaW5nXTogQ29udGV4dFByb3ZpZGVyRmFjdG9yeSB9O1xuXG5jb25zdCBQTFVHSU5fUFJPVklERVJfUFJFRklYID0gJ3BsdWdpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIHtcbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGlzIHByZXNlbnRlZCB0byB1c2VycyBpbiBub3JtYWwgbW9kZSBvZiBvcGVyYXRpb24uXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIHNwYXJpbmdseS4gVGhlIENvbnRleHQgUHJvdmlkZXIgZnJhbWV3b3JrIGFscmVhZHkgcHJvdmlkZXMgdXNlZnVsIG91dHB1dCBieSBkZWZhdWx0LlxuICAgKiBUaGlzIGNhbiBiZSB1c2VzIGluIGV4Y2VwdGlvbmFsbHkgc2l0dWF0aW9ucywgZS5nLiBpZiBhIGxvb2t1cCBjYWxsIGlzIGV4cGVjdGVkIHRvIHRha2UgYSBsb25nIHRpbWUuXG4gICAqL1xuICBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGhlbHBzIHVzZXJzIGRlYnVnZ2luZyB0aGUgY29udGV4dCBwcm92aWRlci5cbiAgICpcbiAgICogU2hvdWxkIGJlIHVzZWQgaW4gbW9zdCBjYXNlcyB0byBub3RlIG9uIGN1cnJlbnQgYWN0aW9uLlxuICAgKi9cbiAgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuY2xhc3MgQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgaW1wbGVtZW50cyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlck5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBwcm92aWRlck5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLnByb3ZpZGVyTmFtZSA9IHByb3ZpZGVyTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAzMDAubXNnKG1lc3NhZ2UsIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDMwMS5tc2cobWVzc2FnZSwge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBtaXNzaW5nIGNvbnRleHQgdmFsdWVzIGFuZCBpbnZva2UgdGhlIGFwcHJvcHJpYXRlIHByb3ZpZGVycyBmcm9tIHRoZSBtYXAgdG8gcmV0cmlldmUgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlkZUNvbnRleHRWYWx1ZXMoXG4gIG1pc3NpbmdWYWx1ZXM6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0W10sXG4gIHNkazogU2RrUHJvdmlkZXIsXG4gIHBsdWdpbkhvc3Q6IFBsdWdpbkhvc3QsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgdXBkYXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IG1pc3NpbmdDb250ZXh0IG9mIG1pc3NpbmdWYWx1ZXMpIHtcbiAgICBjb25zdCBrZXkgPSBtaXNzaW5nQ29udGV4dC5rZXk7XG5cbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBtaXNzaW5nQ29udGV4dC5wcm92aWRlciA9PT0gY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlBMVUdJTlxuICAgICAgPyBgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTokeyhtaXNzaW5nQ29udGV4dC5wcm9wcyBhcyBjeHNjaGVtYS5QbHVnaW5Db250ZXh0UXVlcnkpLnBsdWdpbk5hbWV9YFxuICAgICAgOiBtaXNzaW5nQ29udGV4dC5wcm92aWRlcjtcblxuICAgIGxldCBmYWN0b3J5O1xuICAgIGlmIChwcm92aWRlck5hbWUuc3RhcnRzV2l0aChgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTpgKSkge1xuICAgICAgY29uc3QgcGx1Z2luID0gcGx1Z2luSG9zdC5jb250ZXh0UHJvdmlkZXJQbHVnaW5zW3Byb3ZpZGVyTmFtZS5zdWJzdHJpbmcoUExVR0lOX1BST1ZJREVSX1BSRUZJWC5sZW5ndGggKyAxKV07XG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignVW5yZWNvZ25pemVkUGx1Z2luJywgYFVucmVjb2duaXplZCBwbHVnaW4gY29udGV4dCBwcm92aWRlciBuYW1lOiAke21pc3NpbmdDb250ZXh0LnByb3ZpZGVyfS5gKTtcbiAgICAgIH1cbiAgICAgIGZhY3RvcnkgPSAoKSA9PiBwbHVnaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZhY3RvcnkgPSBhdmFpbGFibGVDb250ZXh0UHJvdmlkZXJzW3Byb3ZpZGVyTmFtZV07XG4gICAgICBpZiAoIWZhY3RvcnkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBzdHlsaXN0aWMvbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1VucmVjb2duaXplZFByb3ZpZGVyJywgYFVucmVjb2duaXplZCBjb250ZXh0IHByb3ZpZGVyIG5hbWU6ICR7bWlzc2luZ0NvbnRleHQucHJvdmlkZXJ9LiBZb3UgbWlnaHQgbmVlZCB0byB1cGRhdGUgdGhlIHRvb2xraXQgdG8gbWF0Y2ggdGhlIHZlcnNpb24gb2YgdGhlIGNvbnN0cnVjdCBsaWJyYXJ5LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyID0gZmFjdG9yeShzZGssIG5ldyBDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyhpb0hlbHBlciwgcHJvdmlkZXJOYW1lKSk7XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gbWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCAmJiBtaXNzaW5nQ29udGV4dC5wcm9wcy5yZWdpb25cbiAgICAgICAgPyBFbnZpcm9ubWVudFV0aWxzLm1ha2UobWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCwgbWlzc2luZ0NvbnRleHQucHJvcHMucmVnaW9uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICAgICAgICA/IGF3YWl0IHNkay5yZXNvbHZlRW52aXJvbm1lbnQoZW52aXJvbm1lbnQpXG4gICAgICAgIDogeyBhY2NvdW50OiAnPycsIHJlZ2lvbjogJz8nLCBuYW1lOiAnPycgfTtcblxuICAgICAgY29uc3QgYXJucyA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgICBsb29rdXBSb2xlQXJuOiBtaXNzaW5nQ29udGV4dC5wcm9wcy5sb29rdXBSb2xlQXJuLFxuICAgICAgfSwgcmVzb2x2ZWRFbnZpcm9ubWVudCwgc2RrKTtcblxuICAgICAgdmFsdWUgPSBhd2FpdCBwcm92aWRlci5nZXRWYWx1ZSh7IC4uLm1pc3NpbmdDb250ZXh0LnByb3BzLCBsb29rdXBSb2xlQXJuOiBhcm5zLmxvb2t1cFJvbGVBcm4gfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBTZXQgYSBzcGVjaWFsbHkgZm9ybWF0dGVkIHByb3ZpZGVyIHZhbHVlIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWRcbiAgICAgIC8vIGFzIGEgbG9va3VwIGZhaWx1cmUgaW4gdGhlIHRvb2xraXQuXG4gICAgICB2YWx1ZSA9IHsgW1BST1ZJREVSX0VSUk9SX0tFWV06IGZvcm1hdEVycm9yTWVzc2FnZShlKSwgW1RSQU5TSUVOVF9DT05URVhUX0tFWV06IHRydWUgfTtcbiAgICB9XG4gICAgdXBkYXRlc1trZXldID0gdmFsdWU7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYFNldHRpbmcgXCIke2tleX1cIiBjb250ZXh0IHRvICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZXM7XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGNhbm5vdCByZXVzZSB0aGUgU0RLcyBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogQ29udGV4dFByb3ZpZGVyUGx1Z2luKSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSAoKSA9PiBwcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBwbHVnaW4gcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIoYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06JHtuYW1lfWAsIHByb3ZpZGVyKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXIgZmFjdG9yeVxuICpcbiAqIEEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5IHRha2VzIGFuIFNka1Byb3ZpZGVyIGFuZCByZXR1cm5zIHRoZSBjb250ZXh0IHByb3ZpZGVyIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGV4dFByb3ZpZGVyRmFjdG9yeShuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5KSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSBwcm92aWRlcjtcbn1cblxuY29uc3QgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyczogUHJvdmlkZXJNYXAgPSB7XG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU1NNX1BBUkFNRVRFUl9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuSE9TVEVEX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5WUENfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBWcGNOZXR3b3JrQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5BTUlfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBFbmRwb2ludFNlcnZpY2VBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU0VDVVJJVFlfR1JPVVBfUFJPVklERVJdOiAocykgPT4gbmV3IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkxPQURfQkFMQU5DRVJfTElTVEVORVJfUFJPVklERVJdOiAocykgPT4gbmV3IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLktFWV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEtleUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSXTogKHMpID0+IG5ldyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbn07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass KeyContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const kms = (await (0, private_1.initContextProviderSdk)(this.aws, args)).kms();\n const aliasListEntry = await this.findKey(kms, args);\n return this.readKeyProps(aliasListEntry, args);\n }\n // TODO: use paginator function\n async findKey(kms, args) {\n await this.io.debug(`Listing keys in ${args.account}:${args.region}`);\n let response;\n let nextMarker;\n do {\n response = await kms.listAliases({\n Marker: nextMarker,\n });\n const aliases = response.Aliases || [];\n for (const alias of aliases) {\n if (alias.AliasName == args.aliasName) {\n return alias;\n }\n }\n nextMarker = response.NextMarker;\n } while (nextMarker);\n const suppressError = 'ignoreErrorOnMissingContext' in args && args.ignoreErrorOnMissingContext;\n const hasDummyKeyId = 'dummyValue' in args && typeof args.dummyValue === 'object' && args.dummyValue !== null && 'keyId' in args.dummyValue;\n if (suppressError && hasDummyKeyId) {\n const keyId = args.dummyValue.keyId;\n return { TargetKeyId: keyId };\n }\n throw new toolkit_error_1.ContextProviderError('KeyNotFound', `Could not find any key with alias named ${args.aliasName}`);\n }\n async readKeyProps(alias, args) {\n if (!alias.TargetKeyId) {\n throw new toolkit_error_1.ContextProviderError('KeyMissingTargetId', `Could not find any key with alias named ${args.aliasName}`);\n }\n await this.io.debug(`Key found ${alias.TargetKeyId}`);\n return {\n keyId: alias.TargetKeyId,\n };\n }\n}\nexports.KeyContextProviderPlugin = KeyContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscURBQWlFO0FBRWpFLDREQUFnRTtBQUVoRSxNQUFhLHdCQUF3QjtJQUNOO0lBQW1DO0lBQWhFLFlBQTZCLEdBQWdCLEVBQW1CLEVBQTRCO1FBQS9ELFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBbUIsT0FBRSxHQUFGLEVBQUUsQ0FBMEI7SUFDNUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBcUI7UUFDekMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWpFLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFckQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsK0JBQStCO0lBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBZSxFQUFFLElBQXFCO1FBQzFELE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFdEUsSUFBSSxRQUFrQyxDQUFDO1FBQ3ZDLElBQUksVUFBOEIsQ0FBQztRQUNuQyxHQUFHLENBQUM7WUFDRixRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDO2dCQUMvQixNQUFNLEVBQUUsVUFBVTthQUNuQixDQUFDLENBQUM7WUFFSCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUN2QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN0QyxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztZQUVELFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ25DLENBQUMsUUFBUSxVQUFVLEVBQUU7UUFFckIsTUFBTSxhQUFhLEdBQUcsNkJBQTZCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQywyQkFBc0MsQ0FBQztRQUMzRyxNQUFNLGFBQWEsR0FBRyxZQUFZLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDNUksSUFBSSxhQUFhLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLFVBQWdDLENBQUMsS0FBSyxDQUFDO1lBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxhQUFhLEVBQUUsMkNBQTJDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXFCLEVBQUUsSUFBcUI7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksb0NBQW9CLENBQUMsb0JBQW9CLEVBQUUsMkNBQTJDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFdEQsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVztTQUN6QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckRELDREQXFEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFJlc3BvbnNlIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgQWxpYXNMaXN0RW50cnksIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgfSBmcm9tICcuJztcbmltcG9ydCB0eXBlIHsgSUtNU0NsaWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IGNsYXNzIEtleUNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlciwgcHJpdmF0ZSByZWFkb25seSBpbzogSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoYXJnczogS2V5Q29udGV4dFF1ZXJ5KSB7XG4gICAgY29uc3Qga21zID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5rbXMoKTtcblxuICAgIGNvbnN0IGFsaWFzTGlzdEVudHJ5ID0gYXdhaXQgdGhpcy5maW5kS2V5KGttcywgYXJncyk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWFkS2V5UHJvcHMoYWxpYXNMaXN0RW50cnksIGFyZ3MpO1xuICB9XG5cbiAgLy8gVE9ETzogdXNlIHBhZ2luYXRvciBmdW5jdGlvblxuICBwcml2YXRlIGFzeW5jIGZpbmRLZXkoa21zOiBJS01TQ2xpZW50LCBhcmdzOiBLZXlDb250ZXh0UXVlcnkpOiBQcm9taXNlPEFsaWFzTGlzdEVudHJ5PiB7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgTGlzdGluZyBrZXlzIGluICR7YXJncy5hY2NvdW50fToke2FyZ3MucmVnaW9ufWApO1xuXG4gICAgbGV0IHJlc3BvbnNlOiBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQ7XG4gICAgbGV0IG5leHRNYXJrZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBkbyB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGttcy5saXN0QWxpYXNlcyh7XG4gICAgICAgIE1hcmtlcjogbmV4dE1hcmtlcixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhbGlhc2VzID0gcmVzcG9uc2UuQWxpYXNlcyB8fCBbXTtcbiAgICAgIGZvciAoY29uc3QgYWxpYXMgb2YgYWxpYXNlcykge1xuICAgICAgICBpZiAoYWxpYXMuQWxpYXNOYW1lID09IGFyZ3MuYWxpYXNOYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIGFsaWFzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHRNYXJrZXIgPSByZXNwb25zZS5OZXh0TWFya2VyO1xuICAgIH0gd2hpbGUgKG5leHRNYXJrZXIpO1xuXG4gICAgY29uc3Qgc3VwcHJlc3NFcnJvciA9ICdpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQnIGluIGFyZ3MgJiYgYXJncy5pZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQgYXMgYm9vbGVhbjtcbiAgICBjb25zdCBoYXNEdW1teUtleUlkID0gJ2R1bW15VmFsdWUnIGluIGFyZ3MgJiYgdHlwZW9mIGFyZ3MuZHVtbXlWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYXJncy5kdW1teVZhbHVlICE9PSBudWxsICYmICdrZXlJZCcgaW4gYXJncy5kdW1teVZhbHVlO1xuICAgIGlmIChzdXBwcmVzc0Vycm9yICYmIGhhc0R1bW15S2V5SWQpIHtcbiAgICAgIGNvbnN0IGtleUlkID0gKGFyZ3MuZHVtbXlWYWx1ZSBhcyB7IGtleUlkOiBzdHJpbmcgfSkua2V5SWQ7XG4gICAgICByZXR1cm4geyBUYXJnZXRLZXlJZDoga2V5SWQgfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdLZXlOb3RGb3VuZCcsIGBDb3VsZCBub3QgZmluZCBhbnkga2V5IHdpdGggYWxpYXMgbmFtZWQgJHthcmdzLmFsaWFzTmFtZX1gKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZEtleVByb3BzKGFsaWFzOiBBbGlhc0xpc3RFbnRyeSwgYXJnczogS2V5Q29udGV4dFF1ZXJ5KTogUHJvbWlzZTxLZXlDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAoIWFsaWFzLlRhcmdldEtleUlkKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0tleU1pc3NpbmdUYXJnZXRJZCcsIGBDb3VsZCBub3QgZmluZCBhbnkga2V5IHdpdGggYWxpYXMgbmFtZWQgJHthcmdzLmFsaWFzTmFtZX1gKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmlvLmRlYnVnKGBLZXkgZm91bmQgJHthbGlhcy5UYXJnZXRLZXlJZH1gKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXlJZDogYWxpYXMuVGFyZ2V0S2V5SWQsXG4gICAgfTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerListenerContextProviderPlugin = exports.LoadBalancerContextProviderPlugin = void 0;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Provides load balancer context information.\n */\nclass LoadBalancerContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n async getValue(query) {\n if (!query.loadBalancerArn && !query.loadBalancerTags) {\n throw new toolkit_error_1.ContextProviderError('MissingLoadBalancerFilter', 'The load balancer lookup query must specify either `loadBalancerArn` or `loadBalancerTags`');\n }\n const loadBalancer = await (await LoadBalancerProvider.getClient(this.aws, query)).getLoadBalancer();\n const ipAddressType = loadBalancer.IpAddressType === 'ipv4' ? cloud_assembly_api_1.LoadBalancerIpAddressType.IPV4 : cloud_assembly_api_1.LoadBalancerIpAddressType.DUAL_STACK;\n return {\n loadBalancerArn: loadBalancer.LoadBalancerArn,\n loadBalancerCanonicalHostedZoneId: loadBalancer.CanonicalHostedZoneId,\n loadBalancerDnsName: loadBalancer.DNSName,\n vpcId: loadBalancer.VpcId,\n securityGroupIds: loadBalancer.SecurityGroups ?? [],\n ipAddressType: ipAddressType,\n };\n }\n}\nexports.LoadBalancerContextProviderPlugin = LoadBalancerContextProviderPlugin;\n/**\n * Provides load balancer listener context information\n */\nclass LoadBalancerListenerContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n async getValue(query) {\n if (!query.listenerArn && !query.loadBalancerArn && !query.loadBalancerTags) {\n throw new toolkit_error_1.ContextProviderError('MissingListenerFilter', 'The load balancer listener query must specify at least one of: `listenerArn`, `loadBalancerArn` or `loadBalancerTags`');\n }\n return (await LoadBalancerProvider.getClient(this.aws, query)).getListener();\n }\n}\nexports.LoadBalancerListenerContextProviderPlugin = LoadBalancerListenerContextProviderPlugin;\nclass LoadBalancerProvider {\n client;\n filter;\n listener;\n static async getClient(aws, query) {\n const client = (await (0, private_1.initContextProviderSdk)(aws, query)).elbv2();\n try {\n const listener = query.listenerArn\n ? // Assert we're sure there's at least one so it throws if not\n (await client.describeListeners({ ListenerArns: [query.listenerArn] })).Listeners[0]\n : undefined;\n return new LoadBalancerProvider(client, { ...query, loadBalancerArn: listener?.LoadBalancerArn || query.loadBalancerArn }, listener);\n }\n catch (err) {\n throw new toolkit_error_1.ContextProviderError('ListenerNotFound', `No load balancer listeners found matching arn ${query.listenerArn}`);\n }\n }\n constructor(client, filter, listener) {\n this.client = client;\n this.filter = filter;\n this.listener = listener;\n }\n async getLoadBalancer() {\n const loadBalancers = await this.getLoadBalancers();\n if (loadBalancers.length === 0) {\n throw new toolkit_error_1.ContextProviderError('LoadBalancerNotFound', `No load balancers found matching ${JSON.stringify(this.filter)}`);\n }\n if (loadBalancers.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleLoadBalancersFound', `Multiple load balancers found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);\n }\n return loadBalancers[0];\n }\n async getListener() {\n if (this.listener) {\n try {\n const loadBalancer = await this.getLoadBalancer();\n return {\n listenerArn: this.listener.ListenerArn,\n listenerPort: this.listener.Port,\n securityGroupIds: loadBalancer.SecurityGroups || [],\n };\n }\n catch (err) {\n throw new toolkit_error_1.ContextProviderError('LoadBalancerForListenerNotFound', `No associated load balancer found for listener arn ${this.filter.listenerArn}`);\n }\n }\n const loadBalancers = await this.getLoadBalancers();\n if (loadBalancers.length === 0) {\n throw new toolkit_error_1.ContextProviderError('NoLoadBalancersForListener', `No associated load balancers found for load balancer listener query ${JSON.stringify(this.filter)}`);\n }\n const listeners = (await this.getListenersForLoadBalancers(loadBalancers)).filter((listener) => {\n return ((!this.filter.listenerPort || listener.Port === this.filter.listenerPort) &&\n (!this.filter.listenerProtocol || listener.Protocol === this.filter.listenerProtocol));\n });\n if (listeners.length === 0) {\n throw new toolkit_error_1.ContextProviderError('ListenerNotFound', `No load balancer listeners found matching ${JSON.stringify(this.filter)}`);\n }\n if (listeners.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleListenersFound', `Multiple load balancer listeners found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);\n }\n return {\n listenerArn: listeners[0].ListenerArn,\n listenerPort: listeners[0].Port,\n securityGroupIds: loadBalancers.find((lb) => listeners[0].LoadBalancerArn === lb.LoadBalancerArn)?.SecurityGroups || [],\n };\n }\n async getLoadBalancers() {\n const loadBalancerArns = this.filter.loadBalancerArn ? [this.filter.loadBalancerArn] : undefined;\n const loadBalancers = (await this.client.paginateDescribeLoadBalancers({\n LoadBalancerArns: loadBalancerArns,\n })).filter((lb) => lb.Type === this.filter.loadBalancerType);\n return this.filterByTags(loadBalancers);\n }\n async filterByTags(loadBalancers) {\n if (!this.filter.loadBalancerTags) {\n return loadBalancers;\n }\n return (await this.describeTags(loadBalancers.map((lb) => lb.LoadBalancerArn)))\n .filter((tagDescription) => {\n // For every tag in the filter, there is some tag in the LB that matches it.\n // In other words, the set of tags in the filter is a subset of the set of tags in the LB.\n return this.filter.loadBalancerTags.every((filter) => {\n return tagDescription.Tags?.some((tag) => filter.key === tag.Key && filter.value === tag.Value);\n });\n })\n .flatMap((tag) => loadBalancers.filter((loadBalancer) => tag.ResourceArn === loadBalancer.LoadBalancerArn));\n }\n /**\n * Returns tag descriptions associated with the resources. The API doesn't support\n * pagination, so this function breaks the resource list into chunks and issues\n * the appropriate requests.\n */\n async describeTags(resourceArns) {\n // Max of 20 resource arns per request.\n const chunkSize = 20;\n const tags = Array();\n for (let i = 0; i < resourceArns.length; i += chunkSize) {\n const chunk = resourceArns.slice(i, Math.min(i + chunkSize, resourceArns.length));\n const chunkTags = await this.client.describeTags({\n ResourceArns: chunk,\n });\n tags.push(...(chunkTags.TagDescriptions || []));\n }\n return tags;\n }\n async getListenersForLoadBalancers(loadBalancers) {\n const listeners = [];\n for (const loadBalancer of loadBalancers.map((lb) => lb.LoadBalancerArn)) {\n listeners.push(...(await this.client.paginateDescribeListeners({ LoadBalancerArn: loadBalancer })));\n }\n return listeners;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2FkLWJhbGFuY2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxvRUFFcUM7QUFJckMscURBQWlFO0FBRWpFLDREQUFnRTtBQUVoRTs7R0FFRztBQUNILE1BQWEsaUNBQWlDO0lBQ2Y7SUFBN0IsWUFBNkIsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUErQjtRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RELE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQywyQkFBMkIsRUFBRSw0RkFBNEYsQ0FBQyxDQUFDO1FBQzVKLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXJHLE1BQU0sYUFBYSxHQUNqQixZQUFZLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsOENBQXlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw4Q0FBeUIsQ0FBQyxVQUFVLENBQUM7UUFFaEgsT0FBTztZQUNMLGVBQWUsRUFBRSxZQUFZLENBQUMsZUFBZ0I7WUFDOUMsaUNBQWlDLEVBQUUsWUFBWSxDQUFDLHFCQUFzQjtZQUN0RSxtQkFBbUIsRUFBRSxZQUFZLENBQUMsT0FBUTtZQUMxQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQU07WUFDMUIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFO1lBQ25ELGFBQWEsRUFBRSxhQUFhO1NBQzdCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2QkQsOEVBdUJDO0FBRUQ7O0dBRUc7QUFDSCxNQUFh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LEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbEYsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDL0MsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQUMsNEJBQTRCLENBQUMsYUFBNkI7UUFDdEUsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO1FBQ2pDLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDekUsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIExvYWRCYWxhbmNlckNvbnRleHRSZXNwb25zZSxcbiAgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UmVzcG9uc2UsXG59IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQge1xuICBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlLFxufSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBMb2FkQmFsYW5jZXJDb250ZXh0UXVlcnksIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgTG9hZEJhbGFuY2VyLCBMaXN0ZW5lciwgVGFnRGVzY3JpcHRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWxhc3RpYy1sb2FkLWJhbGFuY2luZy12Mic7XG5pbXBvcnQgdHlwZSB7IElFbGFzdGljTG9hZEJhbGFuY2luZ1YyQ2xpZW50LCBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFByb3ZpZGVzIGxvYWQgYmFsYW5jZXIgY29udGV4dCBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlcikge1xuICB9XG5cbiAgYXN5bmMgZ2V0VmFsdWUocXVlcnk6IExvYWRCYWxhbmNlckNvbnRleHRRdWVyeSk6IFByb21pc2U8TG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlPiB7XG4gICAgaWYgKCFxdWVyeS5sb2FkQmFsYW5jZXJBcm4gJiYgIXF1ZXJ5LmxvYWRCYWxhbmNlclRhZ3MpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTWlzc2luZ0xvYWRCYWxhbmNlckZpbHRlcicsICdUaGUgbG9hZCBiYWxhbmNlciBsb29rdXAgcXVlcnkgbXVzdCBzcGVjaWZ5IGVpdGhlciBgbG9hZEJhbGFuY2VyQXJuYCBvciBgbG9hZEJhbGFuY2VyVGFnc2AnKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkQmFsYW5jZXIgPSBhd2FpdCAoYXdhaXQgTG9hZEJhbGFuY2VyUHJvdmlkZXIuZ2V0Q2xpZW50KHRoaXMuYXdzLCBxdWVyeSkpLmdldExvYWRCYWxhbmNlcigpO1xuXG4gICAgY29uc3QgaXBBZGRyZXNzVHlwZSA9XG4gICAgICBsb2FkQmFsYW5jZXIuSXBBZGRyZXNzVHlwZSA9PT0gJ2lwdjQnID8gTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZS5JUFY0IDogTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZS5EVUFMX1NUQUNLO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybjogbG9hZEJhbGFuY2VyLkxvYWRCYWxhbmNlckFybiEsXG4gICAgICBsb2FkQmFsYW5jZXJDYW5vbmljYWxIb3N0ZWRab25lSWQ6IGxvYWRCYWxhbmNlci5DYW5vbmljYWxIb3N0ZWRab25lSWQhLFxuICAgICAgbG9hZEJhbGFuY2VyRG5zTmFtZTogbG9hZEJhbGFuY2VyLkROU05hbWUhLFxuICAgICAgdnBjSWQ6IGxvYWRCYWxhbmNlci5WcGNJZCEsXG4gICAgICBzZWN1cml0eUdyb3VwSWRzOiBsb2FkQmFsYW5jZXIuU2VjdXJpdHlHcm91cHMgPz8gW10sXG4gICAgICBpcEFkZHJlc3NUeXBlOiBpcEFkZHJlc3NUeXBlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIGNvbnRleHQgaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyKSB7XG4gIH1cblxuICBhc3luYyBnZXRWYWx1ZShxdWVyeTogTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkpOiBQcm9taXNlPExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlPiB7XG4gICAgaWYgKCFxdWVyeS5saXN0ZW5lckFybiAmJiAhcXVlcnkubG9hZEJhbGFuY2VyQXJuICYmICFxdWVyeS5sb2FkQmFsYW5jZXJUYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ01pc3NpbmdMaXN0ZW5lckZpbHRlcicsXG4gICAgICAgICdUaGUgbG9hZCBiYWxhbmNlciBsaXN0ZW5lciBxdWVyeSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIG9mOiBgbGlzdGVuZXJBcm5gLCBgbG9hZEJhbGFuY2VyQXJuYCBvciBgbG9hZEJhbGFuY2VyVGFnc2AnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IExvYWRCYWxhbmNlclByb3ZpZGVyLmdldENsaWVudCh0aGlzLmF3cywgcXVlcnkpKS5nZXRMaXN0ZW5lcigpO1xuICB9XG59XG5cbmNsYXNzIExvYWRCYWxhbmNlclByb3ZpZGVyIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBnZXRDbGllbnQoXG4gICAgYXdzOiBTZGtQcm92aWRlcixcbiAgICBxdWVyeTogTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnksXG4gICk6IFByb21pc2U8TG9hZEJhbGFuY2VyUHJvdmlkZXI+IHtcbiAgICBjb25zdCBjbGllbnQgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayhhd3MsIHF1ZXJ5KSkuZWxidjIoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsaXN0ZW5lciA9IHF1ZXJ5Lmxpc3RlbmVyQXJuXG4gICAgICAgID8gLy8gQXNzZXJ0IHdlJ3JlIHN1cmUgdGhlcmUncyBhdCBsZWFzdCBvbmUgc28gaXQgdGhyb3dzIGlmIG5vdFxuICAgICAgICAoYXdhaXQgY2xpZW50LmRlc2NyaWJlTGlzdGVuZXJzKHsgTGlzdGVuZXJBcm5zOiBbcXVlcnkubGlzdGVuZXJBcm5dIH0pKS5MaXN0ZW5lcnMhWzBdIVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBuZXcgTG9hZEJhbGFuY2VyUHJvdmlkZXIoXG4gICAgICAgIGNsaWVudCxcbiAgICAgICAgeyAuLi5xdWVyeSwgbG9hZEJhbGFuY2VyQXJuOiBsaXN0ZW5lcj8uTG9hZEJhbGFuY2VyQXJuIHx8IHF1ZXJ5LmxvYWRCYWxhbmNlckFybiB9LFxuICAgICAgICBsaXN0ZW5lcixcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0xpc3RlbmVyTm90Rm91bmQnLCBgTm8gbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgYXJuICR7cXVlcnkubGlzdGVuZXJBcm59YCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IElFbGFzdGljTG9hZEJhbGFuY2luZ1YyQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyOiBMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRRdWVyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyPzogTGlzdGVuZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExvYWRCYWxhbmNlcigpOiBQcm9taXNlPExvYWRCYWxhbmNlcj4ge1xuICAgIGNvbnN0IGxvYWRCYWxhbmNlcnMgPSBhd2FpdCB0aGlzLmdldExvYWRCYWxhbmNlcnMoKTtcblxuICAgIGlmIChsb2FkQmFsYW5jZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdMb2FkQmFsYW5jZXJOb3RGb3VuZCcsIGBObyBsb2FkIGJhbGFuY2VycyBmb3VuZCBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyKX1gKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZEJhbGFuY2Vycy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ011bHRpcGxlTG9hZEJhbGFuY2Vyc0ZvdW5kJyxcbiAgICAgICAgYE11bHRpcGxlIGxvYWQgYmFsYW5jZXJzIGZvdW5kIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXIpfSAtIHBsZWFzZSBwcm92aWRlIG1vcmUgc3BlY2lmaWMgY3JpdGVyaWFgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9hZEJhbGFuY2Vyc1swXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMaXN0ZW5lcigpOiBQcm9taXNlPExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlPiB7XG4gICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxvYWRCYWxhbmNlciA9IGF3YWl0IHRoaXMuZ2V0TG9hZEJhbGFuY2VyKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGlzdGVuZXJBcm46IHRoaXMubGlzdGVuZXIuTGlzdGVuZXJBcm4hLFxuICAgICAgICAgIGxpc3RlbmVyUG9ydDogdGhpcy5saXN0ZW5lci5Qb3J0ISxcbiAgICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBsb2FkQmFsYW5jZXIuU2VjdXJpdHlHcm91cHMgfHwgW10sXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdMb2FkQmFsYW5jZXJGb3JMaXN0ZW5lck5vdEZvdW5kJywgYE5vIGFzc29jaWF0ZWQgbG9hZCBiYWxhbmNlciBmb3VuZCBmb3IgbGlzdGVuZXIgYXJuICR7dGhpcy5maWx0ZXIubGlzdGVuZXJBcm59YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IGF3YWl0IHRoaXMuZ2V0TG9hZEJhbGFuY2VycygpO1xuICAgIGlmIChsb2FkQmFsYW5jZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdOb0xvYWRCYWxhbmNlcnNGb3JMaXN0ZW5lcicsXG4gICAgICAgIGBObyBhc3NvY2lhdGVkIGxvYWQgYmFsYW5jZXJzIGZvdW5kIGZvciBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHF1ZXJ5ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXIpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlbmVycyA9IChhd2FpdCB0aGlzLmdldExpc3RlbmVyc0ZvckxvYWRCYWxhbmNlcnMobG9hZEJhbGFuY2VycykpLmZpbHRlcigobGlzdGVuZXIpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICghdGhpcy5maWx0ZXIubGlzdGVuZXJQb3J0IHx8IGxpc3RlbmVyLlBvcnQgPT09IHRoaXMuZmlsdGVyLmxpc3RlbmVyUG9ydCkgJiZcbiAgICAgICAgKCF0aGlzLmZpbHRlci5saXN0ZW5lclByb3RvY29sIHx8IGxpc3RlbmVyLlByb3RvY29sID09PSB0aGlzLmZpbHRlci5saXN0ZW5lclByb3RvY29sKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGlmIChsaXN0ZW5lcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0xpc3RlbmVyTm90Rm91bmQnLCBgTm8gbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcil9YCk7XG4gICAgfVxuXG4gICAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ011bHRpcGxlTGlzdGVuZXJzRm91bmQnLFxuICAgICAgICBgTXVsdGlwbGUgbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcil9IC0gcGxlYXNlIHByb3ZpZGUgbW9yZSBzcGVjaWZpYyBjcml0ZXJpYWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaXN0ZW5lckFybjogbGlzdGVuZXJzWzBdLkxpc3RlbmVyQXJuISxcbiAgICAgIGxpc3RlbmVyUG9ydDogbGlzdGVuZXJzWzBdLlBvcnQhLFxuICAgICAgc2VjdXJpdHlHcm91cElkczpcbiAgICAgICAgbG9hZEJhbGFuY2Vycy5maW5kKChsYikgPT4gbGlzdGVuZXJzWzBdLkxvYWRCYWxhbmNlckFybiA9PT0gbGIuTG9hZEJhbGFuY2VyQXJuKT8uU2VjdXJpdHlHcm91cHMgfHwgW10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TG9hZEJhbGFuY2VycygpIHtcbiAgICBjb25zdCBsb2FkQmFsYW5jZXJBcm5zID0gdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyQXJuID8gW3RoaXMuZmlsdGVyLmxvYWRCYWxhbmNlckFybl0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IChcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBhZ2luYXRlRGVzY3JpYmVMb2FkQmFsYW5jZXJzKHtcbiAgICAgICAgTG9hZEJhbGFuY2VyQXJuczogbG9hZEJhbGFuY2VyQXJucyxcbiAgICAgIH0pXG4gICAgKS5maWx0ZXIoKGxiKSA9PiBsYi5UeXBlID09PSB0aGlzLmZpbHRlci5sb2FkQmFsYW5jZXJUeXBlKTtcblxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5VGFncyhsb2FkQmFsYW5jZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyQnlUYWdzKGxvYWRCYWxhbmNlcnM6IExvYWRCYWxhbmNlcltdKTogUHJvbWlzZTxMb2FkQmFsYW5jZXJbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyVGFncykge1xuICAgICAgcmV0dXJuIGxvYWRCYWxhbmNlcnM7XG4gICAgfVxuICAgIHJldHVybiAoYXdhaXQgdGhpcy5kZXNjcmliZVRhZ3MobG9hZEJhbGFuY2Vycy5tYXAoKGxiKSA9PiBsYi5Mb2FkQmFsYW5jZXJBcm4hKSkpXG4gICAgICAuZmlsdGVyKCh0YWdEZXNjcmlwdGlvbikgPT4ge1xuICAgICAgICAvLyBGb3IgZXZlcnkgdGFnIGluIHRoZSBmaWx0ZXIsIHRoZXJlIGlzIHNvbWUgdGFnIGluIHRoZSBMQiB0aGF0IG1hdGNoZXMgaXQuXG4gICAgICAgIC8vIEluIG90aGVyIHdvcmRzLCB0aGUgc2V0IG9mIHRhZ3MgaW4gdGhlIGZpbHRlciBpcyBhIHN1YnNldCBvZiB0aGUgc2V0IG9mIHRhZ3MgaW4gdGhlIExCLlxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyVGFncyEuZXZlcnkoKGZpbHRlcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0YWdEZXNjcmlwdGlvbi5UYWdzPy5zb21lKCh0YWcpID0+XG4gICAgICAgICAgICBmaWx0ZXIua2V5ID09PSB0YWcuS2V5ICYmIGZpbHRlci52YWx1ZSA9PT0gdGFnLlZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKHRhZykgPT4gbG9hZEJhbGFuY2Vycy5maWx0ZXIoKGxvYWRCYWxhbmNlcikgPT4gdGFnLlJlc291cmNlQXJuID09PSBsb2FkQmFsYW5jZXIuTG9hZEJhbGFuY2VyQXJuKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0YWcgZGVzY3JpcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzb3VyY2VzLiBUaGUgQVBJIGRvZXNuJ3Qgc3VwcG9ydFxuICAgKiBwYWdpbmF0aW9uLCBzbyB0aGlzIGZ1bmN0aW9uIGJyZWFrcyB0aGUgcmVzb3VyY2UgbGlzdCBpbnRvIGNodW5rcyBhbmQgaXNzdWVzXG4gICAqIHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0cy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGVzY3JpYmVUYWdzKHJlc291cmNlQXJuczogc3RyaW5nW10pOiBQcm9taXNlPFRhZ0Rlc2NyaXB0aW9uW10+IHtcbiAgICAvLyBNYXggb2YgMjAgcmVzb3VyY2UgYXJucyBwZXIgcmVxdWVzdC5cbiAgICBjb25zdCBjaHVua1NpemUgPSAyMDtcbiAgICBjb25zdCB0YWdzID0gQXJyYXk8VGFnRGVzY3JpcHRpb24+KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNvdXJjZUFybnMubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xuICAgICAgY29uc3QgY2h1bmsgPSByZXNvdXJjZUFybnMuc2xpY2UoaSwgTWF0aC5taW4oaSArIGNodW5rU2l6ZSwgcmVzb3VyY2VBcm5zLmxlbmd0aCkpO1xuICAgICAgY29uc3QgY2h1bmtUYWdzID0gYXdhaXQgdGhpcy5jbGllbnQuZGVzY3JpYmVUYWdzKHtcbiAgICAgICAgUmVzb3VyY2VBcm5zOiBjaHVuayxcbiAgICAgIH0pO1xuXG4gICAgICB0YWdzLnB1c2goLi4uKGNodW5rVGFncy5UYWdEZXNjcmlwdGlvbnMgfHwgW10pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldExpc3RlbmVyc0ZvckxvYWRCYWxhbmNlcnMobG9hZEJhbGFuY2VyczogTG9hZEJhbGFuY2VyW10pOiBQcm9taXNlPExpc3RlbmVyW10+IHtcbiAgICBjb25zdCBsaXN0ZW5lcnM6IExpc3RlbmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGxvYWRCYWxhbmNlciBvZiBsb2FkQmFsYW5jZXJzLm1hcCgobGIpID0+IGxiLkxvYWRCYWxhbmNlckFybikpIHtcbiAgICAgIGxpc3RlbmVycy5wdXNoKC4uLihhd2FpdCB0aGlzLmNsaWVudC5wYWdpbmF0ZURlc2NyaWJlTGlzdGVuZXJzKHsgTG9hZEJhbGFuY2VyQXJuOiBsb2FkQmFsYW5jZXIgfSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpc3RlbmVycztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecurityGroupContextProviderPlugin = void 0;\nexports.hasAllTrafficEgress = hasAllTrafficEgress;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass SecurityGroupContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n async getValue(args) {\n if (args.securityGroupId && args.securityGroupName) {\n throw new toolkit_error_1.ContextProviderError('ConflictingSecurityGroupFilters', \"'securityGroupId' and 'securityGroupName' can not be specified both when looking up a security group\");\n }\n if (!args.securityGroupId && !args.securityGroupName) {\n throw new toolkit_error_1.ContextProviderError('MissingSecurityGroupFilter', \"'securityGroupId' or 'securityGroupName' must be specified to look up a security group\");\n }\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const filters = [];\n if (args.vpcId) {\n filters.push({\n Name: 'vpc-id',\n Values: [args.vpcId],\n });\n }\n if (args.securityGroupName) {\n filters.push({\n Name: 'group-name',\n Values: [args.securityGroupName],\n });\n }\n const response = await ec2.describeSecurityGroups({\n GroupIds: args.securityGroupId ? [args.securityGroupId] : undefined,\n Filters: filters.length > 0 ? filters : undefined,\n });\n const securityGroups = response.SecurityGroups ?? [];\n if (securityGroups.length === 0) {\n throw new toolkit_error_1.ContextProviderError('SecurityGroupNotFound', `No security groups found matching ${JSON.stringify(args)}`);\n }\n if (securityGroups.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleSecurityGroupsFound', `More than one security groups found matching ${JSON.stringify(args)}`);\n }\n const [securityGroup] = securityGroups;\n return {\n securityGroupId: securityGroup.GroupId,\n allowAllOutbound: hasAllTrafficEgress(securityGroup),\n };\n }\n}\nexports.SecurityGroupContextProviderPlugin = SecurityGroupContextProviderPlugin;\n/**\n * @internal\n */\nfunction hasAllTrafficEgress(securityGroup) {\n let hasAllTrafficCidrV4 = false;\n let hasAllTrafficCidrV6 = false;\n for (const ipPermission of securityGroup.IpPermissionsEgress ?? []) {\n const isAllProtocols = ipPermission.IpProtocol === '-1';\n if (isAllProtocols && ipPermission.IpRanges?.some((m) => m.CidrIp === '0.0.0.0/0')) {\n hasAllTrafficCidrV4 = true;\n }\n if (isAllProtocols && ipPermission.Ipv6Ranges?.some((m) => m.CidrIpv6 === '::/0')) {\n hasAllTrafficCidrV6 = true;\n }\n }\n return hasAllTrafficCidrV4 && hasAllTrafficCidrV6;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjdXJpdHktZ3JvdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdFQSxrREFpQkM7QUE5RUQscURBQW1GO0FBRW5GLDREQUFnRTtBQUVoRSxNQUFhLGtDQUFrQztJQUNoQjtJQUE3QixZQUE2QixHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQStCO1FBQzVDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksb0NBQW9CLENBQUMsaUNBQWlDLEVBQzlELHNHQUFzRyxDQUN2RyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckQsTUFBTSxJQUFJLG9DQUFvQixDQUFDLDRCQUE0QixFQUFFLHdGQUF3RixDQUFDLENBQUM7UUFDekosQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFzQixFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVqRSxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLElBQUksRUFBRSxRQUFRO2dCQUNkLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDckIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztZQUNoRCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDbkUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDckQsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyx1QkFBdUIsRUFBRSxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkgsQ0FBQztRQUVELElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksb0NBQW9CLENBQUMsNkJBQTZCLEVBQUUsZ0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hJLENBQUM7UUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBRXZDLE9BQU87WUFDTCxlQUFlLEVBQUUsYUFBYSxDQUFDLE9BQVE7WUFDdkMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1NBQ3JELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwREQsZ0ZBb0RDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxhQUE0QjtJQUM5RCxJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNoQyxJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUVoQyxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztRQUV4RCxJQUFJLGNBQWMsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ25GLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBSSxjQUFjLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsRixtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UmVzcG9uc2UgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBTZWN1cml0eUdyb3VwQ29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgRmlsdGVyLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIGFzeW5jIGdldFZhbHVlKGFyZ3M6IFNlY3VyaXR5R3JvdXBDb250ZXh0UXVlcnkpOiBQcm9taXNlPFNlY3VyaXR5R3JvdXBDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAoYXJncy5zZWN1cml0eUdyb3VwSWQgJiYgYXJncy5zZWN1cml0eUdyb3VwTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdDb25mbGljdGluZ1NlY3VyaXR5R3JvdXBGaWx0ZXJzJyxcbiAgICAgICAgXCInc2VjdXJpdHlHcm91cElkJyBhbmQgJ3NlY3VyaXR5R3JvdXBOYW1lJyBjYW4gbm90IGJlIHNwZWNpZmllZCBib3RoIHdoZW4gbG9va2luZyB1cCBhIHNlY3VyaXR5IGdyb3VwXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghYXJncy5zZWN1cml0eUdyb3VwSWQgJiYgIWFyZ3Muc2VjdXJpdHlHcm91cE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTWlzc2luZ1NlY3VyaXR5R3JvdXBGaWx0ZXInLCBcIidzZWN1cml0eUdyb3VwSWQnIG9yICdzZWN1cml0eUdyb3VwTmFtZScgbXVzdCBiZSBzcGVjaWZpZWQgdG8gbG9vayB1cCBhIHNlY3VyaXR5IGdyb3VwXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGVjMiA9IChhd2FpdCBpbml0Q29udGV4dFByb3ZpZGVyU2RrKHRoaXMuYXdzLCBhcmdzKSkuZWMyKCk7XG5cbiAgICBjb25zdCBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xuICAgIGlmIChhcmdzLnZwY0lkKSB7XG4gICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICBOYW1lOiAndnBjLWlkJyxcbiAgICAgICAgVmFsdWVzOiBbYXJncy52cGNJZF0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGFyZ3Muc2VjdXJpdHlHcm91cE5hbWUpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgIE5hbWU6ICdncm91cC1uYW1lJyxcbiAgICAgICAgVmFsdWVzOiBbYXJncy5zZWN1cml0eUdyb3VwTmFtZV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZVNlY3VyaXR5R3JvdXBzKHtcbiAgICAgIEdyb3VwSWRzOiBhcmdzLnNlY3VyaXR5R3JvdXBJZCA/IFthcmdzLnNlY3VyaXR5R3JvdXBJZF0gOiB1bmRlZmluZWQsXG4gICAgICBGaWx0ZXJzOiBmaWx0ZXJzLmxlbmd0aCA+IDAgPyBmaWx0ZXJzIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VjdXJpdHlHcm91cHMgPSByZXNwb25zZS5TZWN1cml0eUdyb3VwcyA/PyBbXTtcbiAgICBpZiAoc2VjdXJpdHlHcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1NlY3VyaXR5R3JvdXBOb3RGb3VuZCcsIGBObyBzZWN1cml0eSBncm91cHMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNdWx0aXBsZVNlY3VyaXR5R3JvdXBzRm91bmQnLCBgTW9yZSB0aGFuIG9uZSBzZWN1cml0eSBncm91cHMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBbc2VjdXJpdHlHcm91cF0gPSBzZWN1cml0eUdyb3VwcztcblxuICAgIHJldHVybiB7XG4gICAgICBzZWN1cml0eUdyb3VwSWQ6IHNlY3VyaXR5R3JvdXAuR3JvdXBJZCEsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBoYXNBbGxUcmFmZmljRWdyZXNzKHNlY3VyaXR5R3JvdXApLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0FsbFRyYWZmaWNFZ3Jlc3Moc2VjdXJpdHlHcm91cDogU2VjdXJpdHlHcm91cCkge1xuICBsZXQgaGFzQWxsVHJhZmZpY0NpZHJWNCA9IGZhbHNlO1xuICBsZXQgaGFzQWxsVHJhZmZpY0NpZHJWNiA9IGZhbHNlO1xuXG4gIGZvciAoY29uc3QgaXBQZXJtaXNzaW9uIG9mIHNlY3VyaXR5R3JvdXAuSXBQZXJtaXNzaW9uc0VncmVzcyA/PyBbXSkge1xuICAgIGNvbnN0IGlzQWxsUHJvdG9jb2xzID0gaXBQZXJtaXNzaW9uLklwUHJvdG9jb2wgPT09ICctMSc7XG5cbiAgICBpZiAoaXNBbGxQcm90b2NvbHMgJiYgaXBQZXJtaXNzaW9uLklwUmFuZ2VzPy5zb21lKChtKSA9PiBtLkNpZHJJcCA9PT0gJzAuMC4wLjAvMCcpKSB7XG4gICAgICBoYXNBbGxUcmFmZmljQ2lkclY0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNBbGxQcm90b2NvbHMgJiYgaXBQZXJtaXNzaW9uLklwdjZSYW5nZXM/LnNvbWUoKG0pID0+IG0uQ2lkcklwdjYgPT09ICc6Oi8wJykpIHtcbiAgICAgIGhhc0FsbFRyYWZmaWNDaWRyVjYgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBoYXNBbGxUcmFmZmljQ2lkclY0ICYmIGhhc0FsbFRyYWZmaWNDaWRyVjY7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSMContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Plugin to read arbitrary SSM parameter names\n */\nclass SSMContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n if (!('parameterName' in args)) {\n throw new toolkit_error_1.ContextProviderError('MissingParameterName', 'parameterName must be provided in props for SSMContextProviderPlugin');\n }\n const parameterName = args.parameterName;\n await this.io.debug(`Reading SSM parameter ${account}:${region}:${parameterName}`);\n const response = await this.getSsmParameterValue(args);\n const parameterNotFound = !response.Parameter || response.Parameter.Value === undefined;\n const suppressError = 'ignoreErrorOnMissingContext' in args && args.ignoreErrorOnMissingContext;\n if (parameterNotFound && suppressError && 'dummyValue' in args) {\n return args.dummyValue;\n }\n if (parameterNotFound) {\n throw new toolkit_error_1.ContextProviderError('SsmParameterNotFound', `SSM parameter not available in account ${account}, region ${region}: ${parameterName}`);\n }\n // will not be undefined because we've handled undefined cases above\n return response.Parameter.Value;\n }\n /**\n * Gets the value of an SSM Parameter, while not thrown if the parameter does not exist.\n * @param account - the account in which the SSM Parameter is expected to be.\n * @param region - the region in which the SSM Parameter is expected to be.\n * @param parameterName - the name of the SSM Parameter\n * @param lookupRoleArn - the ARN of the lookup role.\n *\n * @returns the result of the ``GetParameter`` operation.\n *\n * @throws Error if a service error (other than ``ParameterNotFound``) occurs.\n */\n async getSsmParameterValue(args) {\n const ssm = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ssm();\n try {\n return await ssm.getParameter({ Name: args.parameterName });\n }\n catch (e) {\n if (e.name === 'ParameterNotFound') {\n return { $metadata: {} };\n }\n throw e;\n }\n }\n}\nexports.SSMContextProviderPlugin = SSMContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLXBhcmFtZXRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzc20tcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxREFBbUY7QUFFbkYsNERBQWdFO0FBRWhFOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDTjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQThCO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU3QixJQUFJLENBQUMsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksb0NBQW9CLENBQUMsc0JBQXNCLEVBQUUsc0VBQXNFLENBQUMsQ0FBQztRQUNqSSxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLHlCQUF5QixPQUFPLElBQUksTUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFFbkYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxpQkFBaUIsR0FBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO1FBQ2pHLE1BQU0sYUFBYSxHQUFHLDZCQUE2QixJQUFJLElBQUksSUFBSyxJQUFJLENBQUMsMkJBQXVDLENBQUM7UUFDN0csSUFBSSxpQkFBaUIsSUFBSSxhQUFhLElBQUksWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxzQkFBc0IsRUFBRSwwQ0FBMEMsT0FBTyxZQUFZLE1BQU0sS0FBSyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2xKLENBQUM7UUFDRCxvRUFBb0U7UUFDcEUsT0FBTyxRQUFRLENBQUMsU0FBVSxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNLLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUE4QjtRQUMvRCxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxnQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpERCw0REFpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNTTVBhcmFtZXRlckNvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IEdldFBhcmFtZXRlckNvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3NtJztcbmltcG9ydCB0eXBlIHsgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBQbHVnaW4gdG8gcmVhZCBhcmJpdHJhcnkgU1NNIHBhcmFtZXRlciBuYW1lc1xuICovXG5leHBvcnQgY2xhc3MgU1NNQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBTU01QYXJhbWV0ZXJDb250ZXh0UXVlcnkpIHtcbiAgICBjb25zdCByZWdpb24gPSBhcmdzLnJlZ2lvbjtcbiAgICBjb25zdCBhY2NvdW50ID0gYXJncy5hY2NvdW50O1xuXG4gICAgaWYgKCEoJ3BhcmFtZXRlck5hbWUnIGluIGFyZ3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ01pc3NpbmdQYXJhbWV0ZXJOYW1lJywgJ3BhcmFtZXRlck5hbWUgbXVzdCBiZSBwcm92aWRlZCBpbiBwcm9wcyBmb3IgU1NNQ29udGV4dFByb3ZpZGVyUGx1Z2luJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSBhcmdzLnBhcmFtZXRlck5hbWU7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgUmVhZGluZyBTU00gcGFyYW1ldGVyICR7YWNjb3VudH06JHtyZWdpb259OiR7cGFyYW1ldGVyTmFtZX1gKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5nZXRTc21QYXJhbWV0ZXJWYWx1ZShhcmdzKTtcbiAgICBjb25zdCBwYXJhbWV0ZXJOb3RGb3VuZDogYm9vbGVhbiA9ICFyZXNwb25zZS5QYXJhbWV0ZXIgfHwgcmVzcG9uc2UuUGFyYW1ldGVyLlZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc3VwcHJlc3NFcnJvciA9ICdpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQnIGluIGFyZ3MgJiYgKGFyZ3MuaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0IGFzIGJvb2xlYW4pO1xuICAgIGlmIChwYXJhbWV0ZXJOb3RGb3VuZCAmJiBzdXBwcmVzc0Vycm9yICYmICdkdW1teVZhbHVlJyBpbiBhcmdzKSB7XG4gICAgICByZXR1cm4gYXJncy5kdW1teVZhbHVlO1xuICAgIH1cbiAgICBpZiAocGFyYW1ldGVyTm90Rm91bmQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignU3NtUGFyYW1ldGVyTm90Rm91bmQnLCBgU1NNIHBhcmFtZXRlciBub3QgYXZhaWxhYmxlIGluIGFjY291bnQgJHthY2NvdW50fSwgcmVnaW9uICR7cmVnaW9ufTogJHtwYXJhbWV0ZXJOYW1lfWApO1xuICAgIH1cbiAgICAvLyB3aWxsIG5vdCBiZSB1bmRlZmluZWQgYmVjYXVzZSB3ZSd2ZSBoYW5kbGVkIHVuZGVmaW5lZCBjYXNlcyBhYm92ZVxuICAgIHJldHVybiByZXNwb25zZS5QYXJhbWV0ZXIhLlZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIGFuIFNTTSBQYXJhbWV0ZXIsIHdoaWxlIG5vdCB0aHJvd24gaWYgdGhlIHBhcmFtZXRlciBkb2VzIG5vdCBleGlzdC5cbiAgICogQHBhcmFtIGFjY291bnQgICAgICAgLSB0aGUgYWNjb3VudCBpbiB3aGljaCB0aGUgU1NNIFBhcmFtZXRlciBpcyBleHBlY3RlZCB0byBiZS5cbiAgICogQHBhcmFtIHJlZ2lvbiAgICAgICAgLSB0aGUgcmVnaW9uIGluIHdoaWNoIHRoZSBTU00gUGFyYW1ldGVyIGlzIGV4cGVjdGVkIHRvIGJlLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVyTmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBTU00gUGFyYW1ldGVyXG4gICAqIEBwYXJhbSBsb29rdXBSb2xlQXJuIC0gdGhlIEFSTiBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGBgR2V0UGFyYW1ldGVyYGAgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIGEgc2VydmljZSBlcnJvciAob3RoZXIgdGhhbiBgYFBhcmFtZXRlck5vdEZvdW5kYGApIG9jY3Vycy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0U3NtUGFyYW1ldGVyVmFsdWUoYXJnczogU1NNUGFyYW1ldGVyQ29udGV4dFF1ZXJ5KTogUHJvbWlzZTxHZXRQYXJhbWV0ZXJDb21tYW5kT3V0cHV0PiB7XG4gICAgY29uc3Qgc3NtID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5zc20oKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHNzbS5nZXRQYXJhbWV0ZXIoeyBOYW1lOiBhcmdzLnBhcmFtZXRlck5hbWUgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnUGFyYW1ldGVyTm90Rm91bmQnKSB7XG4gICAgICAgIHJldHVybiB7ICRtZXRhZGF0YToge30gfTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VpcNetworkContextProviderPlugin = void 0;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass VpcNetworkContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const vpcId = await this.findVpc(ec2, args);\n return this.readVpcProps(ec2, vpcId, args);\n }\n async findVpc(ec2, args) {\n // Build request filter (map { Name -> Value } to list of [{ Name, Values }])\n const filters = Object.entries(args.filter).map(([tag, value]) => ({ Name: tag, Values: [value] }));\n await this.io.debug(`Listing VPCs in ${args.account}:${args.region}`);\n const response = await ec2.describeVpcs({ Filters: filters });\n const vpcs = response.Vpcs || [];\n if (vpcs.length === 0) {\n throw new toolkit_error_1.ContextProviderError('VpcNotFound', `Could not find any VPCs matching ${JSON.stringify(args)}`);\n }\n if (vpcs.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleVpcsFound', `Found ${vpcs.length} VPCs matching ${JSON.stringify(args)}; please narrow the search criteria`);\n }\n return vpcs[0];\n }\n async readVpcProps(ec2, vpc, args) {\n const vpcId = vpc.VpcId;\n await this.io.debug(`Describing VPC ${vpcId}`);\n const filters = { Filters: [{ Name: 'vpc-id', Values: [vpcId] }] };\n const subnetsResponse = await ec2.describeSubnets(filters);\n const listedSubnets = subnetsResponse.Subnets || [];\n const routeTablesResponse = await ec2.describeRouteTables(filters);\n const routeTables = new RouteTables(routeTablesResponse.RouteTables || []);\n // Now comes our job to separate these subnets out into AZs and subnet groups (Public, Private, Isolated)\n // We have the following attributes to go on:\n // - Type tag, we tag subnets with their type. In absence of this tag, we\n // determine the subnet must be Public if either:\n // a) it has the property MapPublicIpOnLaunch\n // b) it has a route to an Internet Gateway\n // If both of the above is false but the subnet has a route to a NAT Gateway\n // and the destination CIDR block is \"0.0.0.0/0\", we assume it to be a Private subnet.\n // Anything else is considered Isolated.\n // - Name tag, we tag subnets with their subnet group name. In absence of this tag,\n // we use the type as the name.\n const azs = Array.from(new Set(listedSubnets.map((s) => s.AvailabilityZone)));\n azs.sort();\n const subnets = listedSubnets.map((subnet) => {\n let type = getTag('aws-cdk:subnet-type', subnet.Tags);\n if (type === undefined && subnet.MapPublicIpOnLaunch) {\n type = SubnetType.Public;\n }\n if (type === undefined && routeTables.hasRouteToIgw(subnet.SubnetId)) {\n type = SubnetType.Public;\n }\n if (type === undefined && routeTables.hasRouteToNatGateway(subnet.SubnetId)) {\n type = SubnetType.Private;\n }\n if (type === undefined && routeTables.hasRouteToTransitGateway(subnet.SubnetId)) {\n type = SubnetType.Private;\n }\n if (type === undefined) {\n type = SubnetType.Isolated;\n }\n if (!isValidSubnetType(type)) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ContextProviderError('InvalidSubnetType', `Subnet ${subnet.SubnetArn} has invalid subnet type ${type} (must be ${SubnetType.Public}, ${SubnetType.Private} or ${SubnetType.Isolated})`);\n }\n if (args.subnetGroupNameTag && !getTag(args.subnetGroupNameTag, subnet.Tags)) {\n throw new toolkit_error_1.ContextProviderError('MissingSubnetGroupTag', `Invalid subnetGroupNameTag: Subnet ${subnet.SubnetArn} does not have an associated tag with Key='${args.subnetGroupNameTag}'`);\n }\n const name = getTag(args.subnetGroupNameTag || 'aws-cdk:subnet-name', subnet.Tags) || type;\n const routeTableId = routeTables.routeTableIdForSubnetId(subnet.SubnetId);\n if (!routeTableId) {\n throw new toolkit_error_1.ContextProviderError('MissingRouteTable', `Subnet ${subnet.SubnetArn} does not have an associated route table (and there is no \"main\" table)`);\n }\n return {\n az: subnet.AvailabilityZone,\n cidr: subnet.CidrBlock,\n type,\n name,\n subnetId: subnet.SubnetId,\n routeTableId,\n };\n });\n let grouped;\n let assymetricSubnetGroups;\n if (args.returnAsymmetricSubnets) {\n grouped = { azs: [], groups: [] };\n assymetricSubnetGroups = groupAsymmetricSubnets(subnets);\n }\n else {\n grouped = groupSubnets(subnets);\n assymetricSubnetGroups = undefined;\n }\n // Find attached+available VPN gateway for this VPC\n const vpnGatewayResponse = (args.returnVpnGateways ?? true)\n ? await ec2.describeVpnGateways({\n Filters: [\n {\n Name: 'attachment.vpc-id',\n Values: [vpcId],\n },\n {\n Name: 'attachment.state',\n Values: ['attached'],\n },\n {\n Name: 'state',\n Values: ['available'],\n },\n ],\n })\n : undefined;\n const vpnGatewayId = vpnGatewayResponse?.VpnGateways?.length === 1 ? vpnGatewayResponse.VpnGateways[0].VpnGatewayId : undefined;\n return {\n vpcId,\n vpcCidrBlock: vpc.CidrBlock,\n ownerAccountId: vpc.OwnerId,\n availabilityZones: grouped.azs,\n isolatedSubnetIds: collapse(flatMap(findGroups(SubnetType.Isolated, grouped), (group) => group.subnets.map((s) => s.subnetId))),\n isolatedSubnetNames: collapse(flatMap(findGroups(SubnetType.Isolated, grouped), (group) => (group.name ? [group.name] : []))),\n isolatedSubnetRouteTableIds: collapse(flatMap(findGroups(SubnetType.Isolated, grouped), (group) => group.subnets.map((s) => s.routeTableId))),\n privateSubnetIds: collapse(flatMap(findGroups(SubnetType.Private, grouped), (group) => group.subnets.map((s) => s.subnetId))),\n privateSubnetNames: collapse(flatMap(findGroups(SubnetType.Private, grouped), (group) => (group.name ? [group.name] : []))),\n privateSubnetRouteTableIds: collapse(flatMap(findGroups(SubnetType.Private, grouped), (group) => group.subnets.map((s) => s.routeTableId))),\n publicSubnetIds: collapse(flatMap(findGroups(SubnetType.Public, grouped), (group) => group.subnets.map((s) => s.subnetId))),\n publicSubnetNames: collapse(flatMap(findGroups(SubnetType.Public, grouped), (group) => (group.name ? [group.name] : []))),\n publicSubnetRouteTableIds: collapse(flatMap(findGroups(SubnetType.Public, grouped), (group) => group.subnets.map((s) => s.routeTableId))),\n vpnGatewayId,\n subnetGroups: assymetricSubnetGroups,\n };\n }\n}\nexports.VpcNetworkContextProviderPlugin = VpcNetworkContextProviderPlugin;\nclass RouteTables {\n tables;\n mainRouteTable;\n constructor(tables) {\n this.tables = tables;\n this.mainRouteTable = this.tables.find((table) => !!table.Associations && table.Associations.some((assoc) => !!assoc.Main));\n }\n routeTableIdForSubnetId(subnetId) {\n const table = this.tableForSubnet(subnetId);\n return (table && table.RouteTableId) || (this.mainRouteTable && this.mainRouteTable.RouteTableId);\n }\n /**\n * Whether the given subnet has a route to a NAT Gateway\n */\n hasRouteToNatGateway(subnetId) {\n const table = this.tableForSubnet(subnetId) || this.mainRouteTable;\n return (!!table &&\n !!table.Routes &&\n table.Routes.some((route) => !!route.NatGatewayId && route.DestinationCidrBlock === '0.0.0.0/0'));\n }\n /**\n * Whether the given subnet has a route to a Transit Gateway\n */\n hasRouteToTransitGateway(subnetId) {\n const table = this.tableForSubnet(subnetId) || this.mainRouteTable;\n return (!!table &&\n !!table.Routes &&\n table.Routes.some((route) => !!route.TransitGatewayId && route.DestinationCidrBlock === '0.0.0.0/0'));\n }\n /**\n * Whether the given subnet has a route to an IGW\n */\n hasRouteToIgw(subnetId) {\n const table = this.tableForSubnet(subnetId) || this.mainRouteTable;\n return (!!table && !!table.Routes && table.Routes.some((route) => !!route.GatewayId && route.GatewayId.startsWith('igw-')));\n }\n tableForSubnet(subnetId) {\n return this.tables.find((table) => !!table.Associations && table.Associations.some((assoc) => assoc.SubnetId === subnetId));\n }\n}\n/**\n * Return the value of a tag from a set of tags\n */\nfunction getTag(name, tags) {\n for (const tag of tags || []) {\n if (tag.Key === name) {\n return tag.Value;\n }\n }\n return undefined;\n}\n/**\n * Group subnets of the same type together, and order by AZ\n */\nfunction groupSubnets(subnets) {\n const grouping = {};\n for (const subnet of subnets) {\n const key = [subnet.type, subnet.name].toString();\n if (!(key in grouping)) {\n grouping[key] = [];\n }\n grouping[key].push(subnet);\n }\n const groups = Object.values(grouping).map((sns) => {\n sns.sort((a, b) => a.az.localeCompare(b.az));\n return {\n type: sns[0].type,\n name: sns[0].name,\n subnets: sns,\n };\n });\n const azs = groups[0].subnets.map((s) => s.az);\n for (const group of groups) {\n const groupAZs = group.subnets.map((s) => s.az);\n if (!arraysEqual(groupAZs, azs)) {\n throw new toolkit_error_1.ContextProviderError('InconsistentSubnetAzs', `Not all subnets in VPC have the same AZs: ${groupAZs} vs ${azs}`);\n }\n }\n return { azs, groups };\n}\nfunction groupAsymmetricSubnets(subnets) {\n const grouping = {};\n for (const subnet of subnets) {\n const key = [subnet.type, subnet.name].toString();\n if (!(key in grouping)) {\n grouping[key] = [];\n }\n grouping[key].push(subnet);\n }\n return Object.values(grouping).map((subnetArray) => {\n subnetArray.sort((subnet1, subnet2) => subnet1.az.localeCompare(subnet2.az));\n return {\n name: subnetArray[0].name,\n type: subnetTypeToVpcSubnetType(subnetArray[0].type),\n subnets: subnetArray.map((subnet) => ({\n subnetId: subnet.subnetId,\n cidr: subnet.cidr,\n availabilityZone: subnet.az,\n routeTableId: subnet.routeTableId,\n })),\n };\n });\n}\nfunction subnetTypeToVpcSubnetType(type) {\n switch (type) {\n case SubnetType.Isolated:\n return cloud_assembly_api_1.VpcSubnetGroupType.ISOLATED;\n case SubnetType.Private:\n return cloud_assembly_api_1.VpcSubnetGroupType.PRIVATE;\n case SubnetType.Public:\n return cloud_assembly_api_1.VpcSubnetGroupType.PUBLIC;\n }\n}\nvar SubnetType;\n(function (SubnetType) {\n SubnetType[\"Public\"] = \"Public\";\n SubnetType[\"Private\"] = \"Private\";\n SubnetType[\"Isolated\"] = \"Isolated\";\n})(SubnetType || (SubnetType = {}));\nfunction isValidSubnetType(val) {\n return val === SubnetType.Public || val === SubnetType.Private || val === SubnetType.Isolated;\n}\nfunction arraysEqual(as, bs) {\n if (as.length !== bs.length) {\n return false;\n }\n for (let i = 0; i < as.length; i++) {\n if (as[i] !== bs[i]) {\n return false;\n }\n }\n return true;\n}\nfunction findGroups(type, groups) {\n return groups.groups.filter((g) => g.type === type);\n}\nfunction flatMap(xs, fn) {\n const ret = new Array();\n for (const x of xs) {\n ret.push(...fn(x));\n }\n return ret;\n}\nfunction collapse(xs) {\n if (xs.length > 0) {\n return xs;\n }\n return undefined;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZwY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQStHO0FBSS9HLHFEQUFpRTtBQUdqRSw0REFBZ0U7QUFFaEUsTUFBYSwrQkFBK0I7SUFDYjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQXFCO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFzQixFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVqRSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQWUsRUFBRSxJQUFxQjtRQUMxRCw2RUFBNkU7UUFDN0UsTUFBTSxPQUFPLEdBQWEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTlHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEUsTUFBTSxRQUFR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QUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUksRUFBTztJQUMxQixJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgVnBjQ29udGV4dFJlc3BvbnNlLCB0eXBlIFZwY1N1Ym5ldEdyb3VwLCBWcGNTdWJuZXRHcm91cFR5cGUgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBWcGNDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXIsIFJvdXRlVGFibGUsIFRhZywgVnBjIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSUVDMkNsaWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG5leHBvcnQgY2xhc3MgVnBjTmV0d29ya0NvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlciwgcHJpdmF0ZSByZWFkb25seSBpbzogSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoYXJnczogVnBjQ29udGV4dFF1ZXJ5KSB7XG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcblxuICAgIGNvbnN0IHZwY0lkID0gYXdhaXQgdGhpcy5maW5kVnBjKGVjMiwgYXJncyk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWFkVnBjUHJvcHMoZWMyLCB2cGNJZCwgYXJncyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZpbmRWcGMoZWMyOiBJRUMyQ2xpZW50LCBhcmdzOiBWcGNDb250ZXh0UXVlcnkpOiBQcm9taXNlPFZwYz4ge1xuICAgIC8vIEJ1aWxkIHJlcXVlc3QgZmlsdGVyIChtYXAgeyBOYW1lIC0+IFZhbHVlIH0gdG8gbGlzdCBvZiBbeyBOYW1lLCBWYWx1ZXMgfV0pXG4gICAgY29uc3QgZmlsdGVyczogRmlsdGVyW10gPSBPYmplY3QuZW50cmllcyhhcmdzLmZpbHRlcikubWFwKChbdGFnLCB2YWx1ZV0pID0+ICh7IE5hbWU6IHRhZywgVmFsdWVzOiBbdmFsdWVdIH0pKTtcblxuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYExpc3RpbmcgVlBDcyBpbiAke2FyZ3MuYWNjb3VudH06JHthcmdzLnJlZ2lvbn1gKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZVZwY3MoeyBGaWx0ZXJzOiBmaWx0ZXJzIH0pO1xuXG4gICAgY29uc3QgdnBjcyA9IHJlc3BvbnNlLlZwY3MgfHwgW107XG4gICAgaWYgKHZwY3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1ZwY05vdEZvdW5kJywgYENvdWxkIG5vdCBmaW5kIGFueSBWUENzIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YCk7XG4gICAgfVxuICAgIGlmICh2cGNzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTXVsdGlwbGVWcGNzRm91bmQnLCBgRm91bmQgJHt2cGNzLmxlbmd0aH0gVlBDcyBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfTsgcGxlYXNlIG5hcnJvdyB0aGUgc2VhcmNoIGNyaXRlcmlhYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZwY3NbMF07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlYWRWcGNQcm9wcyhlYzI6IElFQzJDbGllbnQsIHZwYzogVnBjLCBhcmdzOiBWcGNDb250ZXh0UXVlcnkpOiBQcm9taXNlPFZwY0NvbnRleHRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHZwY0lkID0gdnBjLlZwY0lkITtcblxuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYERlc2NyaWJpbmcgVlBDICR7dnBjSWR9YCk7XG5cbiAgICBjb25zdCBmaWx0ZXJzID0geyBGaWx0ZXJzOiBbeyBOYW1lOiAndnBjLWlkJywgVmFsdWVzOiBbdnBjSWRdIH1dIH07XG5cbiAgICBjb25zdCBzdWJuZXRzUmVzcG9uc2UgPSBhd2FpdCBlYzIuZGVzY3JpYmVTdWJuZXRzKGZpbHRlcnMpO1xuICAgIGNvbnN0IGxpc3RlZFN1Ym5ldHMgPSBzdWJuZXRzUmVzcG9uc2UuU3VibmV0cyB8fCBbXTtcblxuICAgIGNvbnN0IHJvdXRlVGFibGVzUmVzcG9uc2UgPSBhd2FpdCBlYzIuZGVzY3JpYmVSb3V0ZVRhYmxlcyhmaWx0ZXJzKTtcbiAgICBjb25zdCByb3V0ZVRhYmxlcyA9IG5ldyBSb3V0ZVRhYmxlcyhyb3V0ZVRhYmxlc1Jlc3BvbnNlLlJvdXRlVGFibGVzIHx8IFtdKTtcblxuICAgIC8vIE5vdyBjb21lcyBvdXIgam9iIHRvIHNlcGFyYXRlIHRoZXNlIHN1Ym5ldHMgb3V0IGludG8gQVpzIGFuZCBzdWJuZXQgZ3JvdXBzIChQdWJsaWMsIFByaXZhdGUsIElzb2xhdGVkKVxuICAgIC8vIFdlIGhhdmUgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHRvIGdvIG9uOlxuICAgIC8vIC0gVHlwZSB0YWcsIHdlIHRhZyBzdWJuZXRzIHdpdGggdGhlaXIgdHlwZS4gSW4gYWJzZW5jZSBvZiB0aGlzIHRhZywgd2VcbiAgICAvLyAgIGRldGVybWluZSB0aGUgc3VibmV0IG11c3QgYmUgUHVibGljIGlmIGVpdGhlcjpcbiAgICAvLyAgIGEpIGl0IGhhcyB0aGUgcHJvcGVydHkgTWFwUHVibGljSXBPbkxhdW5jaFxuICAgIC8vICAgYikgaXQgaGFzIGEgcm91dGUgdG8gYW4gSW50ZXJuZXQgR2F0ZXdheVxuICAgIC8vICAgSWYgYm90aCBvZiB0aGUgYWJvdmUgaXMgZmFsc2UgYnV0IHRoZSBzdWJuZXQgaGFzIGEgcm91dGUgdG8gYSBOQVQgR2F0ZXdheVxuICAgIC8vICAgYW5kIHRoZSBkZXN0aW5hdGlvbiBDSURSIGJsb2NrIGlzIFwiMC4wLjAuMC8wXCIsIHdlIGFzc3VtZSBpdCB0byBiZSBhIFByaXZhdGUgc3VibmV0LlxuICAgIC8vICAgQW55dGhpbmcgZWxzZSBpcyBjb25zaWRlcmVkIElzb2xhdGVkLlxuICAgIC8vIC0gTmFtZSB0YWcsIHdlIHRhZyBzdWJuZXRzIHdpdGggdGhlaXIgc3VibmV0IGdyb3VwIG5hbWUuIEluIGFic2VuY2Ugb2YgdGhpcyB0YWcsXG4gICAgLy8gICB3ZSB1c2UgdGhlIHR5cGUgYXMgdGhlIG5hbWUuXG5cbiAgICBjb25zdCBhenMgPSBBcnJheS5mcm9tKG5ldyBTZXQ8c3RyaW5nPihsaXN0ZWRTdWJuZXRzLm1hcCgocykgPT4gcy5BdmFpbGFiaWxpdHlab25lISkpKTtcbiAgICBhenMuc29ydCgpO1xuXG4gICAgY29uc3Qgc3VibmV0czogU3VibmV0W10gPSBsaXN0ZWRTdWJuZXRzLm1hcCgoc3VibmV0KSA9PiB7XG4gICAgICBsZXQgdHlwZSA9IGdldFRhZygnYXdzLWNkazpzdWJuZXQtdHlwZScsIHN1Ym5ldC5UYWdzKTtcbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgJiYgc3VibmV0Lk1hcFB1YmxpY0lwT25MYXVuY2gpIHtcbiAgICAgICAgdHlwZSA9IFN1Ym5ldFR5cGUuUHVibGljO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCAmJiByb3V0ZVRhYmxlcy5oYXNSb3V0ZVRvSWd3KHN1Ym5ldC5TdWJuZXRJZCkpIHtcbiAgICAgICAgdHlwZSA9IFN1Ym5ldFR5cGUuUHVibGljO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCAmJiByb3V0ZVRhYmxlcy5oYXNSb3V0ZVRvTmF0R2F0ZXdheShzdWJuZXQuU3VibmV0SWQpKSB7XG4gICAgICAgIHR5cGUgPSBTdWJuZXRUeXBlLlByaXZhdGU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkICYmIHJvdXRlVGFibGVzLmhhc1JvdXRlVG9UcmFuc2l0R2F0ZXdheShzdWJuZXQuU3VibmV0SWQpKSB7XG4gICAgICAgIHR5cGUgPSBTdWJuZXRUeXBlLlByaXZhdGU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHR5cGUgPSBTdWJuZXRUeXBlLklzb2xhdGVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzVmFsaWRTdWJuZXRUeXBlKHR5cGUpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdJbnZhbGlkU3VibmV0VHlwZScsXG4gICAgICAgICAgYFN1Ym5ldCAke3N1Ym5ldC5TdWJuZXRBcm59IGhhcyBpbnZhbGlkIHN1Ym5ldCB0eXBlICR7dHlwZX0gKG11c3QgYmUgJHtTdWJuZXRUeXBlLlB1YmxpY30sICR7U3VibmV0VHlwZS5Qcml2YXRlfSBvciAke1N1Ym5ldFR5cGUuSXNvbGF0ZWR9KWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmdzLnN1Ym5ldEdyb3VwTmFtZVRhZyAmJiAhZ2V0VGFnKGFyZ3Muc3VibmV0R3JvdXBOYW1lVGFnLCBzdWJuZXQuVGFncykpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNaXNzaW5nU3VibmV0R3JvdXBUYWcnLFxuICAgICAgICAgIGBJbnZhbGlkIHN1Ym5ldEdyb3VwTmFtZVRhZzogU3VibmV0ICR7c3VibmV0LlN1Ym5ldEFybn0gZG9lcyBub3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHRhZyB3aXRoIEtleT0nJHthcmdzLnN1Ym5ldEdyb3VwTmFtZVRhZ30nYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmFtZSA9IGdldFRhZyhhcmdzLnN1Ym5ldEdyb3VwTmFtZVRhZyB8fCAnYXdzLWNkazpzdWJuZXQtbmFtZScsIHN1Ym5ldC5UYWdzKSB8fCB0eXBlO1xuICAgICAgY29uc3Qgcm91dGVUYWJsZUlkID0gcm91dGVUYWJsZXMucm91dGVUYWJsZUlkRm9yU3VibmV0SWQoc3VibmV0LlN1Ym5ldElkKTtcblxuICAgICAgaWYgKCFyb3V0ZVRhYmxlSWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNaXNzaW5nUm91dGVUYWJsZScsXG4gICAgICAgICAgYFN1Ym5ldCAke3N1Ym5ldC5TdWJuZXRBcm59IGRvZXMgbm90IGhhdmUgYW4gYXNzb2NpYXRlZCByb3V0ZSB0YWJsZSAoYW5kIHRoZXJlIGlzIG5vIFwibWFpblwiIHRhYmxlKWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF6OiBzdWJuZXQuQXZhaWxhYmlsaXR5Wm9uZSEsXG4gICAgICAgIGNpZHI6IHN1Ym5ldC5DaWRyQmxvY2shLFxuICAgICAgICB0eXBlLFxuICAgICAgICBuYW1lLFxuICAgICAgICBzdWJuZXRJZDogc3VibmV0LlN1Ym5ldElkISxcbiAgICAgICAgcm91dGVUYWJsZUlkLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGxldCBncm91cGVkOiBTdWJuZXRHcm91cHM7XG4gICAgbGV0IGFzc3ltZXRyaWNTdWJuZXRHcm91cHM6IFZwY1N1Ym5ldEdyb3VwW10gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGFyZ3MucmV0dXJuQXN5bW1ldHJpY1N1Ym5ldHMpIHtcbiAgICAgIGdyb3VwZWQgPSB7IGF6czogW10sIGdyb3VwczogW10gfTtcbiAgICAgIGFzc3ltZXRyaWNTdWJuZXRHcm91cHMgPSBncm91cEFzeW1tZXRyaWNTdWJuZXRzKHN1Ym5ldHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cGVkID0gZ3JvdXBTdWJuZXRzKHN1Ym5ldHMpO1xuICAgICAgYXNzeW1ldHJpY1N1Ym5ldEdyb3VwcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBGaW5kIGF0dGFjaGVkK2F2YWlsYWJsZSBWUE4gZ2F0ZXdheSBmb3IgdGhpcyBWUENcbiAgICBjb25zdCB2cG5HYXRld2F5UmVzcG9uc2UgPVxuICAgICAgKGFyZ3MucmV0dXJuVnBuR2F0ZXdheXMgPz8gdHJ1ZSlcbiAgICAgICAgPyBhd2FpdCBlYzIuZGVzY3JpYmVWcG5HYXRld2F5cyh7XG4gICAgICAgICAgRmlsdGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBOYW1lOiAnYXR0YWNobWVudC52cGMtaWQnLFxuICAgICAgICAgICAgICBWYWx1ZXM6IFt2cGNJZF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBOYW1lOiAnYXR0YWNobWVudC5zdGF0ZScsXG4gICAgICAgICAgICAgIFZhbHVlczogWydhdHRhY2hlZCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgTmFtZTogJ3N0YXRlJyxcbiAgICAgICAgICAgICAgVmFsdWVzOiBbJ2F2YWlsYWJsZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB2cG5HYXRld2F5SWQgPVxuICAgICAgdnBuR2F0ZXdheVJlc3BvbnNlPy5WcG5HYXRld2F5cz8ubGVuZ3RoID09PSAxID8gdnBuR2F0ZXdheVJlc3BvbnNlLlZwbkdhdGV3YXlzWzBdLlZwbkdhdGV3YXlJZCA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICB2cGNJZCxcbiAgICAgIHZwY0NpZHJCbG9jazogdnBjLkNpZHJCbG9jayEsXG4gICAgICBvd25lckFjY291bnRJZDogdnBjLk93bmVySWQsXG4gICAgICBhdmFpbGFiaWxpdHlab25lczogZ3JvdXBlZC5henMsXG4gICAgICBpc29sYXRlZFN1Ym5ldElkczogY29sbGFwc2UoXG4gICAgICAgIGZsYXRNYXAoZmluZEdyb3VwcyhTdWJuZXRUeXBlLklzb2xhdGVkLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5zdWJuZXRJZCkpLFxuICAgICAgKSxcbiAgICAgIGlzb2xhdGVkU3VibmV0TmFtZXM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5Jc29sYXRlZCwgZ3JvdXBlZCksIChncm91cCkgPT4gKGdyb3VwLm5hbWUgPyBbZ3JvdXAubmFtZV0gOiBbXSkpLFxuICAgICAgKSxcbiAgICAgIGlzb2xhdGVkU3VibmV0Um91dGVUYWJsZUlkczogY29sbGFwc2UoXG4gICAgICAgIGZsYXRNYXAoZmluZEdyb3VwcyhTdWJuZXRUeXBlLklzb2xhdGVkLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5yb3V0ZVRhYmxlSWQpKSxcbiAgICAgICksXG4gICAgICBwcml2YXRlU3VibmV0SWRzOiBjb2xsYXBzZShcbiAgICAgICAgZmxhdE1hcChmaW5kR3JvdXBzKFN1Ym5ldFR5cGUuUHJpdmF0ZSwgZ3JvdXBlZCksIChncm91cCkgPT4gZ3JvdXAuc3VibmV0cy5tYXAoKHMpID0+IHMuc3VibmV0SWQpKSxcbiAgICAgICksXG4gICAgICBwcml2YXRlU3VibmV0TmFtZXM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5Qcml2YXRlLCBncm91cGVkKSwgKGdyb3VwKSA9PiAoZ3JvdXAubmFtZSA/IFtncm91cC5uYW1lXSA6IFtdKSksXG4gICAgICApLFxuICAgICAgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5Qcml2YXRlLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5yb3V0ZVRhYmxlSWQpKSxcbiAgICAgICksXG4gICAgICBwdWJsaWNTdWJuZXRJZHM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5QdWJsaWMsIGdyb3VwZWQpLCAoZ3JvdXApID0+IGdyb3VwLnN1Ym5ldHMubWFwKChzKSA9PiBzLnN1Ym5ldElkKSksXG4gICAgICApLFxuICAgICAgcHVibGljU3VibmV0TmFtZXM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5QdWJsaWMsIGdyb3VwZWQpLCAoZ3JvdXApID0+IChncm91cC5uYW1lID8gW2dyb3VwLm5hbWVdIDogW10pKSxcbiAgICAgICksXG4gICAgICBwdWJsaWNTdWJuZXRSb3V0ZVRhYmxlSWRzOiBjb2xsYXBzZShcbiAgICAgICAgZmxhdE1hcChmaW5kR3JvdXBzKFN1Ym5ldFR5cGUuUHVibGljLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5yb3V0ZVRhYmxlSWQpKSxcbiAgICAgICksXG4gICAgICB2cG5HYXRld2F5SWQsXG4gICAgICBzdWJuZXRHcm91cHM6IGFzc3ltZXRyaWNTdWJuZXRHcm91cHMsXG4gICAgfTtcbiAgfVxufVxuXG5jbGFzcyBSb3V0ZVRhYmxlcyB7XG4gIHB1YmxpYyByZWFkb25seSBtYWluUm91dGVUYWJsZT86IFJvdXRlVGFibGU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0YWJsZXM6IFJvdXRlVGFibGVbXSkge1xuICAgIHRoaXMubWFpblJvdXRlVGFibGUgPSB0aGlzLnRhYmxlcy5maW5kKFxuICAgICAgKHRhYmxlKSA9PiAhIXRhYmxlLkFzc29jaWF0aW9ucyAmJiB0YWJsZS5Bc3NvY2lhdGlvbnMuc29tZSgoYXNzb2MpID0+ICEhYXNzb2MuTWFpbiksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByb3V0ZVRhYmxlSWRGb3JTdWJuZXRJZChzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0YWJsZSA9IHRoaXMudGFibGVGb3JTdWJuZXQoc3VibmV0SWQpO1xuICAgIHJldHVybiAodGFibGUgJiYgdGFibGUuUm91dGVUYWJsZUlkKSB8fCAodGhpcy5tYWluUm91dGVUYWJsZSAmJiB0aGlzLm1haW5Sb3V0ZVRhYmxlLlJvdXRlVGFibGVJZCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2l2ZW4gc3VibmV0IGhhcyBhIHJvdXRlIHRvIGEgTkFUIEdhdGV3YXlcbiAgICovXG4gIHB1YmxpYyBoYXNSb3V0ZVRvTmF0R2F0ZXdheShzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlRm9yU3VibmV0KHN1Ym5ldElkKSB8fCB0aGlzLm1haW5Sb3V0ZVRhYmxlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGFibGUgJiZcbiAgICAgICEhdGFibGUuUm91dGVzICYmXG4gICAgICB0YWJsZS5Sb3V0ZXMuc29tZSgocm91dGUpID0+ICEhcm91dGUuTmF0R2F0ZXdheUlkICYmIHJvdXRlLkRlc3RpbmF0aW9uQ2lkckJsb2NrID09PSAnMC4wLjAuMC8wJylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdpdmVuIHN1Ym5ldCBoYXMgYSByb3V0ZSB0byBhIFRyYW5zaXQgR2F0ZXdheVxuICAgKi9cbiAgcHVibGljIGhhc1JvdXRlVG9UcmFuc2l0R2F0ZXdheShzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlRm9yU3VibmV0KHN1Ym5ldElkKSB8fCB0aGlzLm1haW5Sb3V0ZVRhYmxlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGFibGUgJiZcbiAgICAgICEhdGFibGUuUm91dGVzICYmXG4gICAgICB0YWJsZS5Sb3V0ZXMuc29tZSgocm91dGUpID0+ICEhcm91dGUuVHJhbnNpdEdhdGV3YXlJZCAmJiByb3V0ZS5EZXN0aW5hdGlvbkNpZHJCbG9jayA9PT0gJzAuMC4wLjAvMCcpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBnaXZlbiBzdWJuZXQgaGFzIGEgcm91dGUgdG8gYW4gSUdXXG4gICAqL1xuICBwdWJsaWMgaGFzUm91dGVUb0lndyhzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlRm9yU3VibmV0KHN1Ym5ldElkKSB8fCB0aGlzLm1haW5Sb3V0ZVRhYmxlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGFibGUgJiYgISF0YWJsZS5Sb3V0ZXMgJiYgdGFibGUuUm91dGVzLnNvbWUoKHJvdXRlKSA9PiAhIXJvdXRlLkdhdGV3YXlJZCAmJiByb3V0ZS5HYXRld2F5SWQuc3RhcnRzV2l0aCgnaWd3LScpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdGFibGVGb3JTdWJuZXQoc3VibmV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlcy5maW5kKFxuICAgICAgKHRhYmxlKSA9PiAhIXRhYmxlLkFzc29jaWF0aW9ucyAmJiB0YWJsZS5Bc3NvY2lhdGlvbnMuc29tZSgoYXNzb2MpID0+IGFzc29jLlN1Ym5ldElkID09PSBzdWJuZXRJZCksXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgdmFsdWUgb2YgYSB0YWcgZnJvbSBhIHNldCBvZiB0YWdzXG4gKi9cbmZ1bmN0aW9uIGdldFRhZyhuYW1lOiBzdHJpbmcsIHRhZ3M/OiBUYWdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgdGFnIG9mIHRhZ3MgfHwgW10pIHtcbiAgICBpZiAodGFnLktleSA9PT0gbmFtZSkge1xuICAgICAgcmV0dXJuIHRhZy5WYWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHcm91cCBzdWJuZXRzIG9mIHRoZSBzYW1lIHR5cGUgdG9nZXRoZXIsIGFuZCBvcmRlciBieSBBWlxuICovXG5mdW5jdGlvbiBncm91cFN1Ym5ldHMoc3VibmV0czogU3VibmV0W10pOiBTdWJuZXRHcm91cHMge1xuICBjb25zdCBncm91cGluZzogeyBba2V5OiBzdHJpbmddOiBTdWJuZXRbXSB9ID0ge307XG4gIGZvciAoY29uc3Qgc3VibmV0IG9mIHN1Ym5ldHMpIHtcbiAgICBjb25zdCBrZXkgPSBbc3VibmV0LnR5cGUsIHN1Ym5ldC5uYW1lXS50b1N0cmluZygpO1xuICAgIGlmICghKGtleSBpbiBncm91cGluZykpIHtcbiAgICAgIGdyb3VwaW5nW2tleV0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBpbmdba2V5XS5wdXNoKHN1Ym5ldCk7XG4gIH1cblxuICBjb25zdCBncm91cHMgPSBPYmplY3QudmFsdWVzKGdyb3VwaW5nKS5tYXAoKHNucykgPT4ge1xuICAgIHNucy5zb3J0KChhOiBTdWJuZXQsIGI6IFN1Ym5ldCkgPT4gYS5hei5sb2NhbGVDb21wYXJlKGIuYXopKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogc25zWzBdLnR5cGUsXG4gICAgICBuYW1lOiBzbnNbMF0ubmFtZSxcbiAgICAgIHN1Ym5ldHM6IHNucyxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdCBhenMgPSBncm91cHNbMF0uc3VibmV0cy5tYXAoKHMpID0+IHMuYXopO1xuXG4gIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgZ3JvdXBBWnMgPSBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5heik7XG4gICAgaWYgKCFhcnJheXNFcXVhbChncm91cEFacywgYXpzKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdJbmNvbnNpc3RlbnRTdWJuZXRBenMnLCBgTm90IGFsbCBzdWJuZXRzIGluIFZQQyBoYXZlIHRoZSBzYW1lIEFaczogJHtncm91cEFac30gdnMgJHthenN9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgYXpzLCBncm91cHMgfTtcbn1cblxuZnVuY3Rpb24gZ3JvdXBBc3ltbWV0cmljU3VibmV0cyhzdWJuZXRzOiBTdWJuZXRbXSk6IFZwY1N1Ym5ldEdyb3VwW10ge1xuICBjb25zdCBncm91cGluZzogeyBba2V5OiBzdHJpbmddOiBTdWJuZXRbXSB9ID0ge307XG4gIGZvciAoY29uc3Qgc3VibmV0IG9mIHN1Ym5ldHMpIHtcbiAgICBjb25zdCBrZXkgPSBbc3VibmV0LnR5cGUsIHN1Ym5ldC5uYW1lXS50b1N0cmluZygpO1xuICAgIGlmICghKGtleSBpbiBncm91cGluZykpIHtcbiAgICAgIGdyb3VwaW5nW2tleV0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBpbmdba2V5XS5wdXNoKHN1Ym5ldCk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhncm91cGluZykubWFwKChzdWJuZXRBcnJheSkgPT4ge1xuICAgIHN1Ym5ldEFycmF5LnNvcnQoKHN1Ym5ldDE6IFN1Ym5ldCwgc3VibmV0MjogU3VibmV0KSA9PiBzdWJuZXQxLmF6LmxvY2FsZUNvbXBhcmUoc3VibmV0Mi5heikpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHN1Ym5ldEFycmF5WzBdLm5hbWUsXG4gICAgICB0eXBlOiBzdWJuZXRUeXBlVG9WcGNTdWJuZXRUeXBlKHN1Ym5ldEFycmF5WzBdLnR5cGUpLFxuICAgICAgc3VibmV0czogc3VibmV0QXJyYXkubWFwKChzdWJuZXQpID0+ICh7XG4gICAgICAgIHN1Ym5ldElkOiBzdWJuZXQuc3VibmV0SWQsXG4gICAgICAgIGNpZHI6IHN1Ym5ldC5jaWRyLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lOiBzdWJuZXQuYXosXG4gICAgICAgIHJvdXRlVGFibGVJZDogc3VibmV0LnJvdXRlVGFibGVJZCxcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc3VibmV0VHlwZVRvVnBjU3VibmV0VHlwZSh0eXBlOiBTdWJuZXRUeXBlKTogVnBjU3VibmV0R3JvdXBUeXBlIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBTdWJuZXRUeXBlLklzb2xhdGVkOlxuICAgICAgcmV0dXJuIFZwY1N1Ym5ldEdyb3VwVHlwZS5JU09MQVRFRDtcbiAgICBjYXNlIFN1Ym5ldFR5cGUuUHJpdmF0ZTpcbiAgICAgIHJldHVybiBWcGNTdWJuZXRHcm91cFR5cGUuUFJJVkFURTtcbiAgICBjYXNlIFN1Ym5ldFR5cGUuUHVibGljOlxuICAgICAgcmV0dXJuIFZwY1N1Ym5ldEdyb3VwVHlwZS5QVUJMSUM7XG4gIH1cbn1cblxuZW51bSBTdWJuZXRUeXBlIHtcbiAgUHVibGljID0gJ1B1YmxpYycsXG4gIFByaXZhdGUgPSAnUHJpdmF0ZScsXG4gIElzb2xhdGVkID0gJ0lzb2xhdGVkJyxcbn1cblxuZnVuY3Rpb24gaXNWYWxpZFN1Ym5ldFR5cGUodmFsOiBzdHJpbmcpOiB2YWwgaXMgU3VibmV0VHlwZSB7XG4gIHJldHVybiB2YWwgPT09IFN1Ym5ldFR5cGUuUHVibGljIHx8IHZhbCA9PT0gU3VibmV0VHlwZS5Qcml2YXRlIHx8IHZhbCA9PT0gU3VibmV0VHlwZS5Jc29sYXRlZDtcbn1cblxuaW50ZXJmYWNlIFN1Ym5ldCB7XG4gIGF6OiBzdHJpbmc7XG4gIGNpZHI6IHN0cmluZztcbiAgdHlwZTogU3VibmV0VHlwZTtcbiAgbmFtZTogc3RyaW5nO1xuICByb3V0ZVRhYmxlSWQ6IHN0cmluZztcbiAgc3VibmV0SWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFN1Ym5ldEdyb3VwIHtcbiAgdHlwZTogU3VibmV0VHlwZTtcbiAgbmFtZTogc3RyaW5nO1xuICBzdWJuZXRzOiBTdWJuZXRbXTtcbn1cblxuaW50ZXJmYWNlIFN1Ym5ldEdyb3VwcyB7XG4gIGF6czogc3RyaW5nW107XG4gIGdyb3VwczogU3VibmV0R3JvdXBbXTtcbn1cblxuZnVuY3Rpb24gYXJyYXlzRXF1YWwoYXM6IHN0cmluZ1tdLCBiczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgaWYgKGFzLmxlbmd0aCAhPT0gYnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhc1tpXSAhPT0gYnNbaV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZmluZEdyb3Vwcyh0eXBlOiBTdWJuZXRUeXBlLCBncm91cHM6IFN1Ym5ldEdyb3Vwcyk6IFN1Ym5ldEdyb3VwW10ge1xuICByZXR1cm4gZ3JvdXBzLmdyb3Vwcy5maWx0ZXIoKGcpID0+IGcudHlwZSA9PT0gdHlwZSk7XG59XG5cbmZ1bmN0aW9uIGZsYXRNYXA8VCwgVT4oeHM6IFRbXSwgZm46ICh4OiBUKSA9PiBVW10pOiBVW10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goLi4uZm4oeCkpO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGNvbGxhcHNlPFQ+KHhzOiBUW10pOiBUW10gfCB1bmRlZmluZWQge1xuICBpZiAoeHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB4cztcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19","\"use strict\";\n/**\n * @module toolkit-lib\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Polyfills first\nrequire(\"./private/dispose-polyfill\");\n// The main show\n__exportStar(require(\"./toolkit\"), exports);\n__exportStar(require(\"./toolkit/toolkit-error\"), exports);\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./payloads\"), exports);\n// Supporting acts\n__exportStar(require(\"./api/aws-auth\"), exports);\n__exportStar(require(\"./api/cloud-assembly\"), exports);\n__exportStar(require(\"./api/io\"), exports);\n__exportStar(require(\"./api/tags\"), exports);\n__exportStar(require(\"./api/plugin\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxrQkFBa0I7QUFDbEIsc0NBQW9DO0FBRXBDLGdCQUFnQjtBQUNoQiw0Q0FBMEI7QUFDMUIsMERBQXdDO0FBQ3hDLDRDQUEwQjtBQUMxQiw2Q0FBMkI7QUFFM0Isa0JBQWtCO0FBQ2xCLGlEQUErQjtBQUMvQix1REFBcUM7QUFDckMsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgdG9vbGtpdC1saWJcbiAqL1xuXG4vLyBQb2x5ZmlsbHMgZmlyc3RcbmltcG9ydCAnLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuXG4vLyBUaGUgbWFpbiBzaG93XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xraXQnO1xuZXhwb3J0ICogZnJvbSAnLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcGF5bG9hZHMnO1xuXG4vLyBTdXBwb3J0aW5nIGFjdHNcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2F3cy1hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2lvJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3RhZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvcGx1Z2luJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWVudmlyb25tZW50LXByb2dyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLWVudmlyb25tZW50LXByb2dyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcyB7XG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIGVudmlyb25tZW50cyBiZWluZyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiB0aGUgZW52aXJvbm1lbnQgY3VycmVudGx5IGJvb3RzdHJhcHBlZFxuICAgKlxuICAgKiBUaGlzIGlzIGNvdW50aW5nIHZhbHVlLCBub3QgYW4gaWRlbnRpZmllci5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB0aGF0J3MgY3VycmVudGx5IGJlaW5nIGJvb3RzdHJhcHBlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWlzc2luZ0NvbnRleHQge1xuICBtaXNzaW5nS2V5czogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZENvbnRleHQge1xuICBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV2ZW50VHlwZSwgSU1hbmlmZXN0RW50cnkgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlRGlmZiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vZGlmZic7XG5pbXBvcnQgdHlwZSB7IENvbmZpcm1hdGlvblJlcXVlc3QgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gcmUtZXhwb3J0IHNvIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBBUElcbmV4cG9ydCB0eXBlIHsgRGVwbG95U3RhY2tSZXN1bHQsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCwgTmVlZFJvbGxiYWNrRmlyc3REZXBsb3lTdGFja1Jlc3VsdCwgUmVwbGFjZW1lbnRSZXF1aXJlc1JvbGxiYWNrU3RhY2tSZXN1bHQgfSBmcm9tICcuLi9hcGkvZGVwbG95bWVudHMvZGVwbG95bWVudC1yZXN1bHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGVwbG95UHJvZ3Jlc3Mge1xuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBzdGFja3MgYmVpbmcgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY291bnQgb2YgdGhlIHN0YWNrIGN1cnJlbnRseSBhdHRlbXB0ZWQgdG8gYmUgZGVwbG95ZWRcbiAgICpcbiAgICogVGhpcyBpcyBjb3VudGluZyB2YWx1ZSwgbm90IGFuIGlkZW50aWZpZXIuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbn1cblxuLyoqXG4gKiBQYXlsb2FkIGZvciBhIHllcy9ubyBjb25maXJtYXRpb24gaW4gZGVwbG95LiBJbmNsdWRlcyBpbmZvcm1hdGlvbiBvblxuICogd2hhdCBraW5kIG9mIGNoYW5nZSBpcyBiZWluZyBtYWRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUNvbmZpcm1hdGlvblJlcXVlc3QgZXh0ZW5kcyBDb25maXJtYXRpb25SZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGNoYW5nZSBiZWluZyBtYWRlIHRvIHRoZSBJQU0gcGVybWlzc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogUGVybWlzc2lvbkNoYW5nZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBkaWZmcyBvZiB0aGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlRGlmZnM6IHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQXNzZXQge1xuICAvKipcbiAgICogVGhlIGFzc2V0IHRoYXQgaXMgYnVpbGRcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoQXNzZXQge1xuICAvKipcbiAgICogVGhlIGFzc2V0IHRoYXQgaXMgcHVibGlzaGVkXG4gICAqL1xuICByZWFkb25seSBhc3NldDogSU1hbmlmZXN0RW50cnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFzc2V0RXZlbnQge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgZXZlbnRcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEV2ZW50VHlwZTtcblxuICAvKipcbiAgICogRXZlbnQgbWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgZmFyIGlzIHRoZSBwdWJsaXNoaW5nIGFsb25nIChhcyBwZXJjZW50YWdlKS5cbiAgICovXG4gIHJlYWRvbmx5IHByb2dyZXNzUGVyY2VudGFnZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBc3NldCBjdXJyZW50bHkgYmVpbmcgcHVibGlzaGVkIChpZiBhbnkpXG4gICAqL1xuICByZWFkb25seSBhc3NldD86IElNYW5pZmVzdEVudHJ5O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0Rlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIHN0YWNrcyB0aGF0IHdpbGwgYmUgZGVzdHJveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGVzdHJveVByb2dyZXNzIHtcbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhY2tzIGJlaW5nIGRlc3Ryb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiB0aGUgc3RhY2sgY3VycmVudGx5IGF0dGVtcHRlZCB0byBiZSBkZXN0cm95ZWRcbiAgICpcbiAgICogVGhpcyBpcyBjb3VudGluZyB2YWx1ZSwgbm90IGFuIGlkZW50aWZpZXIuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXN0cm95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermissionChangeType = void 0;\n/**\n * Different types of permission related changes in a diff\n */\nvar PermissionChangeType;\n(function (PermissionChangeType) {\n /**\n * No permission changes\n */\n PermissionChangeType[\"NONE\"] = \"none\";\n /**\n * Permissions are broadening\n */\n PermissionChangeType[\"BROADENING\"] = \"broadening\";\n /**\n * Permissions are changed but not broadening\n */\n PermissionChangeType[\"NON_BROADENING\"] = \"non-broadening\";\n})(PermissionChangeType || (exports.PermissionChangeType = PermissionChangeType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7O0dBRUc7QUFDSCxJQUFZLG9CQWVYO0FBZkQsV0FBWSxvQkFBb0I7SUFDOUI7O09BRUc7SUFDSCxxQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxpREFBeUIsQ0FBQTtJQUV6Qjs7T0FFRztJQUNILHlEQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFmVyxvQkFBb0Isb0NBQXBCLG9CQUFvQixRQWUvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVRlbXBsYXRlRGlmZiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBEdXJhdGlvbiwgU2luZ2xlU3RhY2sgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBEaWZmZXJlbnQgdHlwZXMgb2YgcGVybWlzc2lvbiByZWxhdGVkIGNoYW5nZXMgaW4gYSBkaWZmXG4gKi9cbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgLyoqXG4gICAqIE5vIHBlcm1pc3Npb24gY2hhbmdlc1xuICAgKi9cbiAgTk9ORSA9ICdub25lJyxcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgYXJlIGJyb2FkZW5pbmdcbiAgICovXG4gIEJST0FERU5JTkcgPSAnYnJvYWRlbmluZycsXG5cbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIGFyZSBjaGFuZ2VkIGJ1dCBub3QgYnJvYWRlbmluZ1xuICAgKi9cbiAgTk9OX0JST0FERU5JTkcgPSAnbm9uLWJyb2FkZW5pbmcnLFxufVxuXG4vKipcbiAqIFRoZSBkaWZmIGZvcm1hdHRlZCBhcyBkaWZmZXJlbnQgdHlwZXMgb2Ygb3V0cHV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0dGVkRGlmZiB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgZGlmZiBmb3JtYXR0ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGRpZmY6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBkaWZmIGZvcm1hdHRlZCBhcyBhIHN0cmluZywgaWYgYW55XG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEaWZmIGluZm9ybWF0aW9uIGZvciBhIHNpbmdsZSBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGlmZiBleHRlbmRzIFNpbmdsZVN0YWNrIHtcbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBzdGFja3MgdGhhdCBoYXZlIGNoYW5nZXNcbiAgICogQ2FuIGJlIGhpZ2hlciB0aGFuIGAxYCBpZiB0aGUgc3RhY2sgaGFzIG5lc3RlZCBzdGFja3MuXG4gICAqL1xuICByZWFkb25seSBudW1TdGFja3NXaXRoQ2hhbmdlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUb3RhbCBudW1iZXIgb2Ygc3RhY2tzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGNoYW5nZXMuXG4gICAqIENhbiBiZSBoaWdoZXIgdGhhbiBgMWAgaWYgdGhlIHN0YWNrIGhhcyBuZXN0ZWQgc3RhY2tzLlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtU3RhY2tzV2l0aFNlY3VyaXR5Q2hhbmdlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdHJ1Y3R1cmFsIGRpZmYgb2YgdGhlIHN0YWNrXG4gICAqIENhbiBpbmNsdWRlIG1vcmUgdGhhbiBhIHNpbmdsZSBkaWZmIGlmIHRoZSBzdGFjayBoYXMgbmVzdGVkIHN0YWNrcy5cbiAgICovXG4gIHJlYWRvbmx5IGRpZmZzOiB7IFtuYW1lOiBzdHJpbmddOiBJVGVtcGxhdGVEaWZmIH07XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXR0ZWQgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogRm9ybWF0dGVkRGlmZjtcblxuICAvKipcbiAgICogRG9lcyB0aGUgZGlmZiBjb250YWluIGNoYW5nZXMgdG8gcGVybWlzc2lvbnMgYW5kIHdoYXQga2luZFxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbkNoYW5nZXM6IFBlcm1pc3Npb25DaGFuZ2VUeXBlO1xufVxuXG4vKipcbiAqIE91dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlJlc3VsdCBleHRlbmRzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBzdGFja3MgdGhhdCBoYXZlIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUb3RhbCBudW1iZXIgb2Ygc3RhY2tzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG51bVN0YWNrc1dpdGhTZWN1cml0eUNoYW5nZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFN0cnVjdHVyYWwgZGlmZiBvZiBhbGwgc2VsZWN0ZWQgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBkaWZmczogeyBbbmFtZTogc3RyaW5nXTogSVRlbXBsYXRlRGlmZiB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkcmlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBEcmlmdFJlc3VsdCB9IGZyb20gJy4uL2FjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyaWZ0UmVzdWx0UGF5bG9hZCB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBjaGVja2VkIGZvciBkcmlmdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogVGhlIGRyaWZ0IHJlc3VsdCBmb3IgdGhpcyBzdGFjayBzcGVjaWZpY2FsbHlcbiAgICovXG4gIHJlYWRvbmx5IGRyaWZ0OiBEcmlmdFJlc3VsdDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhUmVxdWVzdCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFJlcXVlc3QgdG8gY29uZmlybSBvciBkZW55IHRoZSBkZWxldGlvbiBvZiBhbiBhc3NldHMgYmF0Y2ggbWFya2VkIGZvciBnYXJiYWdlIGNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRCYXRjaERlbGV0aW9uUmVxdWVzdCBleHRlbmRzIERhdGFSZXF1ZXN0IHtcbiAgcmVhZG9ubHkgYmF0Y2g6IHtcbiAgICByZWFkb25seSB0eXBlOiAnaW1hZ2UnIHwgJ29iamVjdCc7XG4gICAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgICByZWFkb25seSByb2xsYmFja0J1ZmZlckRheXM6IG51bWJlcjtcbiAgICByZWFkb25seSBjcmVhdGVkQnVmZmVyRGF5czogbnVtYmVyO1xuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonHotswappableReason = void 0;\nvar NonHotswappableReason;\n(function (NonHotswappableReason) {\n /**\n * Tags are not hotswappable\n */\n NonHotswappableReason[\"TAGS\"] = \"tags\";\n /**\n * Changed resource properties are not hotswappable on this resource type\n */\n NonHotswappableReason[\"PROPERTIES\"] = \"properties\";\n /**\n * A stack output has changed\n */\n NonHotswappableReason[\"OUTPUT\"] = \"output\";\n /**\n * A dependant resource is not hotswappable\n */\n NonHotswappableReason[\"DEPENDENCY_UNSUPPORTED\"] = \"dependency-unsupported\";\n /**\n * The resource type is not hotswappable\n */\n NonHotswappableReason[\"RESOURCE_UNSUPPORTED\"] = \"resource-unsupported\";\n /**\n * The resource is created in the deployment\n */\n NonHotswappableReason[\"RESOURCE_CREATION\"] = \"resource-creation\";\n /**\n * The resource is removed in the deployment\n */\n NonHotswappableReason[\"RESOURCE_DELETION\"] = \"resource-deletion\";\n /**\n * The resource identified by the logical id has its type changed\n */\n NonHotswappableReason[\"RESOURCE_TYPE_CHANGED\"] = \"resource-type-changed\";\n /**\n * The nested stack is created in the deployment\n */\n NonHotswappableReason[\"NESTED_STACK_CREATION\"] = \"nested-stack-creation\";\n})(NonHotswappableReason || (exports.NonHotswappableReason = NonHotswappableReason = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90c3dhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvdHN3YXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUZBLElBQVkscUJBcUNYO0FBckNELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsc0NBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsa0RBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCwwQ0FBaUIsQ0FBQTtJQUNqQjs7T0FFRztJQUNILDBFQUFpRCxDQUFBO0lBQ2pEOztPQUVHO0lBQ0gsc0VBQTZDLENBQUE7SUFDN0M7O09BRUc7SUFDSCxnRUFBdUMsQ0FBQTtJQUN2Qzs7T0FFRztJQUNILGdFQUF1QyxDQUFBO0lBQ3ZDOztPQUVHO0lBQ0gsd0VBQStDLENBQUE7SUFDL0M7O09BRUc7SUFDSCx3RUFBK0MsQ0FBQTtBQUNqRCxDQUFDLEVBckNXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBcUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlEaWZmZXJlbmNlLCBSZXNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBEdXJhdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZU1ldGFkYXRhIH0gZnJvbSAnLi4vYXBpL3Jlc291cmNlLW1ldGFkYXRhL3Jlc291cmNlLW1ldGFkYXRhJztcbmV4cG9ydCB0eXBlIHsgUmVzb3VyY2VNZXRhZGF0YSB9IGZyb20gJy4uL2FwaS9yZXNvdXJjZS1tZXRhZGF0YS9yZXNvdXJjZS1tZXRhZGF0YSc7XG5cbi8qKlxuICogQSByZXNvdXJjZSBhZmZlY3RlZCBieSBhIGNoYW5nZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFmZmVjdGVkUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIGFmZmVjdGVkIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gdHlwZSBvZiB0aGUgcmVzb3VyY2VcbiAgICogVGhpcyBjb3VsZCBiZSBhIGN1c3RvbSB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGFmZmVjdGVkIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB3aGVuIGRlcGxveWVkLlxuICAgKlxuICAgKiBBIHBoeXNpY2FsIG5hbWUgaXMgbm90IGFsd2F5cyBhdmFpbGFibGUsIGUuZy4gbmV3IHJlc291cmNlcyB3aWxsIG5vdCBoYXZlIG9uZSB1bnRpbCBhZnRlciB0aGUgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGh5c2ljYWxOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogUmVzb3VyY2UgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGxvZ2ljYWwgaWQgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IHByZXNlbnQgaWYgdGhlIHJlc291cmNlIGlzIHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgQ2xvdWQgQXNzZW1ibHksXG4gICAqIGkuZS4gcmVzb3VyY2UgZGVsZXRpb25zIHdpbGwgbm90IGhhdmUgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlc291cmNlTWV0YWRhdGE7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNoYW5nZSBpbiBhIHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDaGFuZ2Uge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlIHdoaWNoIGlzIGJlaW5nIGNoYW5nZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWxJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRoZSByZXNvdXJjZSBpcyBiZWluZyB1cGRhdGVkIGZyb21cbiAgICovXG4gIHJlYWRvbmx5IG9sZFZhbHVlOiBSZXNvdXJjZTtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0aGUgcmVzb3VyY2UgaXMgYmVpbmcgdXBkYXRlZCB0b1xuICAgKi9cbiAgcmVhZG9ubHkgbmV3VmFsdWU6IFJlc291cmNlO1xuICAvKipcbiAgICogVGhlIGNoYW5nZXMgbWFkZSB0byB0aGUgcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydHlVcGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eURpZmZlcmVuY2U8dW5rbm93bj4+O1xuICAvKipcbiAgICogUmVzb3VyY2UgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGxvZ2ljYWwgaWQgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IHByZXNlbnQgaWYgdGhlIHJlc291cmNlIGlzIHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgQ2xvdWQgQXNzZW1ibHksXG4gICAqIGkuZS4gcmVzb3VyY2UgZGVsZXRpb25zIHdpbGwgbm90IGhhdmUgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlc291cmNlTWV0YWRhdGE7XG59XG5cbi8qKlxuICogQSBjaGFuZ2UgdGhhdCBjYW4gYmUgaG90c3dhcHBlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvdHN3YXBwYWJsZUNoYW5nZSB7XG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgY2hhbmdlIHRoYXQgaXMgY2F1c2luZyB0aGUgaG90c3dhcC5cbiAgICovXG4gIHJlYWRvbmx5IGNhdXNlOiBSZXNvdXJjZUNoYW5nZTtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiByZXNvdXJjZXMgdGhhdCBhcmUgYmVpbmcgaG90c3dhcHBlZCBhcyBwYXJ0IG9mIHRoZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczogQWZmZWN0ZWRSZXNvdXJjZVtdO1xufVxuXG5leHBvcnQgZW51bSBOb25Ib3Rzd2FwcGFibGVSZWFzb24ge1xuICAvKipcbiAgICogVGFncyBhcmUgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgVEFHUyA9ICd0YWdzJyxcbiAgLyoqXG4gICAqIENoYW5nZWQgcmVzb3VyY2UgcHJvcGVydGllcyBhcmUgbm90IGhvdHN3YXBwYWJsZSBvbiB0aGlzIHJlc291cmNlIHR5cGVcbiAgICovXG4gIFBST1BFUlRJRVMgPSAncHJvcGVydGllcycsXG4gIC8qKlxuICAgKiBBIHN0YWNrIG91dHB1dCBoYXMgY2hhbmdlZFxuICAgKi9cbiAgT1VUUFVUID0gJ291dHB1dCcsXG4gIC8qKlxuICAgKiBBIGRlcGVuZGFudCByZXNvdXJjZSBpcyBub3QgaG90c3dhcHBhYmxlXG4gICAqL1xuICBERVBFTkRFTkNZX1VOU1VQUE9SVEVEID0gJ2RlcGVuZGVuY3ktdW5zdXBwb3J0ZWQnLFxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHR5cGUgaXMgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgUkVTT1VSQ0VfVU5TVVBQT1JURUQgPSAncmVzb3VyY2UtdW5zdXBwb3J0ZWQnLFxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGlzIGNyZWF0ZWQgaW4gdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIFJFU09VUkNFX0NSRUFUSU9OID0gJ3Jlc291cmNlLWNyZWF0aW9uJyxcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBpcyByZW1vdmVkIGluIHRoZSBkZXBsb3ltZW50XG4gICAqL1xuICBSRVNPVVJDRV9ERUxFVElPTiA9ICdyZXNvdXJjZS1kZWxldGlvbicsXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgaWRlbnRpZmllZCBieSB0aGUgbG9naWNhbCBpZCBoYXMgaXRzIHR5cGUgY2hhbmdlZFxuICAgKi9cbiAgUkVTT1VSQ0VfVFlQRV9DSEFOR0VEID0gJ3Jlc291cmNlLXR5cGUtY2hhbmdlZCcsXG4gIC8qKlxuICAgKiBUaGUgbmVzdGVkIHN0YWNrIGlzIGNyZWF0ZWQgaW4gdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIE5FU1RFRF9TVEFDS19DUkVBVElPTiA9ICduZXN0ZWQtc3RhY2stY3JlYXRpb24nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlamVjdGlvblN1YmplY3Qge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlamVjdGlvbiBzdWJqZWN0LCBlLmcuIFJlc291cmNlIG9yIE91dHB1dFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9naWNhbCBJRCBvZiB0aGUgY2hhbmdlIHRoYXQgaXMgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZXNvdXJjZSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgbG9naWNhbCBpZCBmcm9tIHRoZSBjbG91ZCBhc3NlbWJseVxuICAgKlxuICAgKiBUaGlzIGlzIG9ubHkgcHJlc2VudCBpZiB0aGUgcmVzb3VyY2UgaXMgcHJlc2VudCBpbiB0aGUgY3VycmVudCBDbG91ZCBBc3NlbWJseSxcbiAgICogaS5lLiByZXNvdXJjZSBkZWxldGlvbnMgd2lsbCBub3QgaGF2ZSBtZXRhZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogUmVzb3VyY2VNZXRhZGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVN1YmplY3QgZXh0ZW5kcyBSZWplY3Rpb25TdWJqZWN0IHtcbiAgLyoqXG4gICAqIEEgcmVqZWN0ZWQgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6ICdSZXNvdXJjZSc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgcmVqZWN0ZWQgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgcHJvcGVydGllcyB0aGF0IGFyZSBjYXVzZSBmb3IgdGhlIHJlamVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcmVqZWN0ZWRQcm9wZXJ0aWVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0U3ViamVjdCBleHRlbmRzIFJlamVjdGlvblN1YmplY3Qge1xuICAvKipcbiAgICogQSByZWplY3RlZCBvdXRwdXRcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6ICdPdXRwdXQnO1xufVxuXG4vKipcbiAqIEEgY2hhbmdlIHRoYXQgY2FuIG5vdCBiZSBob3Rzd2FwcGVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9uSG90c3dhcHBhYmxlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBzdWJqZWN0IG9mIHRoZSBjaGFuZ2UgdGhhdCB3YXMgcmVqZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1YmplY3Q6IFJlc291cmNlU3ViamVjdCB8IE91dHB1dFN1YmplY3Q7XG4gIC8qKlxuICAgKiBXaHkgd2FzIHRoaXMgY2hhbmdlIHdhcyBkZWVtZWQgbm9uLWhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb247XG4gIC8qKlxuICAgKiBUZWxscyB0aGUgdXNlciBleGFjdGx5IHdoeSB0aGlzIGNoYW5nZSB3YXMgZGVlbWVkIG5vbi1ob3Rzd2FwcGFibGUgYW5kIHdoYXQgaXRzIGxvZ2ljYWwgSUQgaXMuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIGBkaXNwbGF5UmVhc29uYCBkZWZhdWx0IHRvIHN0YXRlIHRoYXQgdGhlIHByb3BlcnRpZXMgbGlzdGVkIGluIGByZWplY3RlZENoYW5nZXNgIGFyZSBub3QgaG90c3dhcHBhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQge1xuICAvKipcbiAgICogVGhlIHN0YWNrIHRoYXQncyBjdXJyZW50bHkgYmVpbmcgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RlIHRoZSBob3Rzd2FwIGRlcGxveW1lbnQgd2FzIGluaXRpYXRlZCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZTogJ2hvdHN3YXAtb25seScgfCAnZmFsbC1iYWNrJztcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGhvdHN3YXAgZGVwbG95bWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvdHN3YXBEZXBsb3ltZW50RGV0YWlscyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogVGhlIG1vZGUgdGhlIGhvdHN3YXAgZGVwbG95bWVudCB3YXMgaW5pdGlhdGVkIHdpdGguXG4gICAqL1xuICByZWFkb25seSBtb2RlOiAnaG90c3dhcC1vbmx5JyB8ICdmYWxsLWJhY2snO1xuICAvKipcbiAgICogVGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGRlZW1lZCBob3Rzd2FwcGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGhvdHN3YXBwYWJsZUNoYW5nZXM6IEhvdHN3YXBwYWJsZUNoYW5nZVtdO1xuICAvKipcbiAgICogVGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGRlZW1lZCBub3QgaG90c3dhcHBhYmxlXG4gICAqL1xuICByZWFkb25seSBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzOiBOb25Ib3Rzd2FwcGFibGVDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGFuIGF0dGVtcHRlZCBob3Rzd2FwIGRlcGxveW1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUmVzdWx0IGV4dGVuZHMgRHVyYXRpb24sIEhvdHN3YXBEZXBsb3ltZW50RGV0YWlscyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIGhvdHN3YXBwaW5nIGhhcHBlbmVkIG9yIG5vdC5cbiAgICpcbiAgICogYGZhbHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVwbG95bWVudCBjb3VsZCBub3QgYmUgaG90c3dhcHBlZCBhbmQgZnVsbCBkZXBsb3ltZW50IG1heSBiZSBhdHRlbXB0ZWQgYXMgZmFsbGJhY2suXG4gICAqL1xuICByZWFkb25seSBob3Rzd2FwcGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgaG90c3dhcCBkZXBsb3ltZW50LCBpZiBhbnkuXG4gICAqXG4gICAqIFdoZW4gc2V0LCBgaG90c3dhcHBlZGAgd2lsbCBiZSBgZmFsc2VgLiBUaGUgZXJyb3IgaXMgY2FwdHVyZWQgc28gdGhhdFxuICAgKiB0aGUgaG90c3dhcCBzcGFuIGNhbiBiZSBlbmRlZCB3aXRoIGZ1bGwgY29udGV4dCBiZWZvcmUgcmUtdGhyb3dpbmcuXG4gICAqL1xuICByZWFkb25seSBlcnJvcj86IEVycm9yO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERhdGFSZXF1ZXN0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBwcm9wb3NlZCByZXNvdXJjZSBpbXBvcnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbXBvcnRSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSB0byBiZSBpbXBvcnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2U6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIGltcG9ydGVkIHJlc291cmNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgLyoqXG4gICAgICogQSBmb3JtYXR0YXRlZCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByb3BzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0cmluZ2lmaWVkUHJvcHM6IHN0cmluZztcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHJlc291cmNlIHRoYXQgbmVlZHMgdG8gYmUgaWRlbnRpZmllZCBkdXJpbmcgYW4gaW1wb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0IGV4dGVuZHMgRGF0YVJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIHJlc291cmNlIHRoYXQgbmVlZHMgdG8gYmUgaWRlbnRpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnN0cnVjdCBwYXRoIG9yIGxvZ2ljYWwgaWQgb2YgdGhlIHJlc291cmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiB0aGUgcmVzb3VyY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wZXJ0eSB0aGF0IHdlIHRyeSB0byBpZGVudGlmeSB0aGUgcmVzb3VyY2UgYnkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaWRQcm9wOiBzdHJpbmc7XG4gIH07XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./bootstrap-environment-progress\"), exports);\n__exportStar(require(\"./deploy\"), exports);\n__exportStar(require(\"./destroy\"), exports);\n__exportStar(require(\"./drift\"), exports);\n__exportStar(require(\"./list\"), exports);\n__exportStar(require(\"./sdk\"), exports);\n__exportStar(require(\"./context\"), exports);\n__exportStar(require(\"./rollback\"), exports);\n__exportStar(require(\"./stack-activity\"), exports);\n__exportStar(require(\"./synth\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./progress\"), exports);\n__exportStar(require(\"./publish-assets\"), exports);\n__exportStar(require(\"./refactor\"), exports);\n__exportStar(require(\"./watch\"), exports);\n__exportStar(require(\"./stack-details\"), exports);\n__exportStar(require(\"./diff\"), exports);\n__exportStar(require(\"./logs-monitor\"), exports);\n__exportStar(require(\"./hotswap\"), exports);\n__exportStar(require(\"./gc\"), exports);\n__exportStar(require(\"./import\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUVBQWlEO0FBQ2pELDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2Qix3Q0FBc0I7QUFDdEIsNENBQTBCO0FBQzFCLDZDQUEyQjtBQUMzQixtREFBaUM7QUFDakMsMENBQXdCO0FBQ3hCLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsbURBQWlDO0FBQ2pDLDZDQUEyQjtBQUMzQiwwQ0FBd0I7QUFDeEIsa0RBQWdDO0FBQ2hDLHlDQUF1QjtBQUN2QixpREFBK0I7QUFDL0IsNENBQTBCO0FBQzFCLHVDQUFxQjtBQUNyQiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jvb3RzdHJhcC1lbnZpcm9ubWVudC1wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3knO1xuZXhwb3J0ICogZnJvbSAnLi9kcmlmdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zZGsnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vcm9sbGJhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFjay1hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL3N5bnRoJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL3B1Ymxpc2gtYXNzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVmYWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi93YXRjaCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLWRldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vbG9ncy1tb25pdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vaG90c3dhcCc7XG5leHBvcnQgKiBmcm9tICcuL2djJztcbmV4cG9ydCAqIGZyb20gJy4vaW1wb3J0JztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tEZXRhaWxzIH0gZnJvbSAnLi9zdGFjay1kZXRhaWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0RldGFpbHNQYXlsb2FkIHtcbiAgcmVhZG9ubHkgc3RhY2tzOiBTdGFja0RldGFpbHNbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogUGF5bG9hZCB3aGVuIHN0YWNrIG1vbml0b3JpbmcgaXMgc3RhcnRpbmcgb3Igc3RvcHBpbmcgZm9yIGEgZ2l2ZW4gc3RhY2sgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIG1vbml0b3JcbiAgICpcbiAgICogVXNlIHRoaXMgdmFsdWUgdG8gYXR0cmlidXRlIGV2ZW50cyByZWNlaXZlZCBmb3IgY29uY3VycmVudCBsb2cgbW9uaXRvcmluZy5cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3I6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIG1vbml0b3JlZCBsb2cgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQ2xvdWRXYXRjaCBMb2cgRXZlbnQgdGhhdCB3aWxsIGJlXG4gKiBwcmludGVkIHRvIHRoZSB0ZXJtaW5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dFdmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGV2ZW50IG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvZyBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBldmVudCBvY2N1cnJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZXN0YW1wOiBEYXRlO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdGFja1Byb2dyZXNzIHtcbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcHJvZ3Jlc3MgbW9uaXRvcmVkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbXBsZXRlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBjb21wbGV0ZWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgcHJvZ3Jlc3MgYXMgYSBbMzQvNDJdIHN0cmluZywgb3IganVzdCBbMzRdIGlmIHRoZSB0b3RhbCBpcyB1bmtub3duLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkOiBzdHJpbmc7XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwdWJsaXNoLWFzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBBc3NldHNQYXlsb2FkIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXRzXG4gICAqL1xuICByZWFkb25seSBhc3NldHM6IElNYW5pZmVzdEVudHJ5W107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWZhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUeXBlZE1hcHBpbmcgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcblxuLyoqXG4gKiBPdXRwdXQgb2YgdGhlIHJlZmFjdG9yIGNvbW1hbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZhY3RvclJlc3VsdCB7XG4gIC8qKlxuICAgKiBNYXBwaW5ncyBhbG9uZyB3aXRoIHRoZSByZXNvdXJjZSB0eXBlXG4gICAqL1xuICByZWFkb25seSB0eXBlZE1hcHBpbmdzPzogVHlwZWRNYXBwaW5nW107XG5cbiAgLyoqXG4gICAqIEFtYmlndW91cyBwYXRoIGNvcnJlc3BvbmRlbmNlcywgaWYgYW55XG4gICAqL1xuICBhbWJpZ3VvdXNQYXRocz86IFtzdHJpbmdbXSwgc3RyaW5nW11dW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyb2xsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrUm9sbGJhY2tQcm9ncmVzcyB7XG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHN0YWNrcyBiZWluZyByb2xsZWQgYmFja1xuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiB0aGUgc3RhY2sgY3VycmVudGx5IGF0dGVtcHRlZCB0byBiZSByb2xsZWQgYmFja1xuICAgKlxuICAgKiBUaGlzIGlzIGNvdW50aW5nIHZhbHVlLCBub3QgYW4gaWRlbnRpZmllci5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0aGF0J3MgY3VycmVudGx5IGJlaW5nIHJvbGxlZCBiYWNrXG4gICAqL1xuICByZWFkb25seSBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERhdGFSZXF1ZXN0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQW4gU0RLIGxvZ2dpbmcgdHJhY2UuXG4gKlxuICogT25seSBpbmZvLCB3YXJuIGFuZCBlcnJvciBsZXZlbCBtZXNzYWdlcyBhcmUgZW1pdHRlZC5cbiAqIFNESyB0cmFjZXMgYXJlIGVtaXR0ZWQgYXMgdHJhY2VzIHRvIHRoZSBJb0hvc3QsIGJ1dCBjb250YWluIHRoZSBvcmlnaW5hbCBTREsgbG9nZ2luZyBsZXZlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtUcmFjZSB7XG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgdGhlIFNESyBoYXMgZW1pdHRlZCB0aGUgb3JpZ2luYWwgbWVzc2FnZSB3aXRoXG4gICAqL1xuICByZWFkb25seSBzZGtMZXZlbDogJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJztcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIFNESyB0cmFjZVxuICAgKlxuICAgKiBUaGlzIHdpbGwgaW5jbHVkZSB0aGUgcmVxdWVzdCBhbmQgcmVzcG9uc2UgZGF0YSBmb3IgQVBJIGNhbGxzLCBpbmNsdWRpbmcgcG90ZW50aWFsbHkgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZGstZm9yLWphdmFzY3JpcHQvdjMvZGV2ZWxvcGVyLWd1aWRlL2xvZ2dpbmctc2RrLWNhbGxzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IGFueTtcbn1cblxuLyoqXG4gKiBHZXQgYW4gTUZBIHRva2VuIGZvciBhbiBNRkEgZGV2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1mYVRva2VuUmVxdWVzdCBleHRlbmRzIERhdGFSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIE1GQSBkZXZpY2UgYSB0b2tlbiBpcyByZXF1aXJlZCBmb3IuXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VBcm46IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBTdGFja0V2ZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4vcHJvZ3Jlc3MnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZU1ldGFkYXRhIH0gZnJvbSAnLi4vYXBpL3Jlc291cmNlLW1ldGFkYXRhL3Jlc291cmNlLW1ldGFkYXRhJztcblxuLyoqXG4gKiBQYXlsb2FkIHdoZW4gc3RhY2sgbW9uaXRvcmluZyBpcyBzdGFydGluZyBvciBzdG9wcGluZyBmb3IgYSBnaXZlbiBzdGFjayBkZXBsb3ltZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIHNwZWNpZmljIHN0YWNrIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIFVzZSB0aGlzIHZhbHVlIHRvIGF0dHJpYnV0ZSBzdGFjayBhY3Rpdml0aWVzIHJlY2VpdmVkIGZvciBjb25jdXJyZW50IGRlcGxveW1lbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgYXJ0aWZhY3QgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgU3RhY2sgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVG90YWwgbnVtYmVyIG9mIHJlc291cmNlcyB0YWtpbmcgcGFydCBpbiB0aGlzIGRlcGxveW1lbnRcbiAgICpcbiAgICogVGhlIG51bWJlciBtaWdodCBub3QgYWx3YXlzIGJlIGtub3duIG9yIGFjY3VyYXRlLlxuICAgKiBPbmx5IHVzZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBhbmQgaGFuZGxlIHRoZSBjYXNlIHdoZW4gaXQncyB1bmF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlc1RvdGFsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQWN0aXZpdHkge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBzcGVjaWZpYyBzdGFjayBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBVc2UgdGhpcyB2YWx1ZSB0byBhdHRyaWJ1dGUgc3RhY2sgYWN0aXZpdGllcyByZWNlaXZlZCBmb3IgY29uY3VycmVudCBkZXBsb3ltZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFN0YWNrIEV2ZW50IGFzIHJlY2VpdmVkIGZyb20gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50OiBTdGFja0V2ZW50O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHJlc291cmNlIG1ldGFkYXRhXG4gICAqXG4gICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCBjbG91ZCBhc3NlbWJseS5cbiAgICogSS5lLiBubyBgbWV0YWRhdGFgIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBmb3IgcmVzb3VyY2UgZGVsZXRpb24gZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBSZXNvdXJjZU1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgcHJvZ3Jlc3NcbiAgICovXG4gIHJlYWRvbmx5IHByb2dyZXNzOiBTdGFja1Byb2dyZXNzO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stZGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWRldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcblxuLyoqXG4gKiBUaGUgZGVwZW5kZW5jaWVzIG9mIGEgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tEZXBlbmRlbmN5IHtcbiAgaWQ6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBTdGFja0RlcGVuZGVuY3lbXTtcbn1cblxuLyoqXG4gKiBEZXRhaWxzIG9mIGEgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tEZXRhaWxzIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIG1ldGFkYXRhPzogeyBbcGF0aDogc3RyaW5nXTogY3hzY2hlbWEuTWV0YWRhdGFFbnRyeVtdIH07XG4gIGRlcGVuZGVuY2llczogU3RhY2tEZXBlbmRlbmN5W107XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzeW50aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3N0YWNrLXNlbGVjdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlbGVjdGlvbkRldGFpbHMge1xuICAvKipcbiAgICogVGhlIHNlbGVjdGVkIHN0YWNrcywgaWYgYW55XG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IFN0YWNrU2VsZWN0b3I7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG4vKipcbiAqIEFzc2VtYmx5IGRhdGEgcmV0dXJuZWQgaW4gdGhlIHBheWxvYWQgb2YgYW4gSU8gTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURhdGEge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGFzc2VtYmx5IGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZW1ibHlEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzdGFja3MgYWN0aW9uZWQgb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrc0NvdW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrSWRzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBTdGFjayBkYXRhIHJldHVybmVkIGluIHRoZSBwYXlsb2FkIG9mIGFuIElPIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tEYXRhIHtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayBuYW1lXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YWNrIElEXG4gICAqL1xuICByZWFkb25seSBoaWVyYXJjaGljYWxJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlOiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0ZW1wbGF0ZSBjb252ZXJ0ZWQgdG8gSlNPTiBmb3JtYXRcbiAgICovXG4gIHJlYWRvbmx5IHN0cmluZ2lmaWVkSnNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGVtcGxhdGUgY29udmVydGVkIHRvIFlBTUwgZm9ybWF0XG4gICAqL1xuICByZWFkb25seSBzdHJpbmdpZmllZFlhbWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdGFjayBkYXRhIHJldHVybmVkIGluIHRoZSBwYXlsb2FkIG9mIGFuIElPIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tBbmRBc3NlbWJseURhdGEgZXh0ZW5kcyBBc3NlbWJseURhdGEge1xuICAvKipcbiAgICogU3RhY2sgRGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IFN0YWNrRGF0YTtcbn1cblxuLyoqXG4gKiBBIHBheWxvYWQgaWRlbnRpZnlpbmcgYSBzaW5nbGUgc3RhY2tzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlU3RhY2sge1xuICAvKipcbiAgICogQSBzaW5nbGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG59XG5cbi8qKlxuICogRHVyYXRpb24gaW5mb3JtYXRpb24gcmV0dXJuZWQgaW4gdGhlIHBheWxvYWQgb2YgYW4gSU8gTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEdXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIGFjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogR2VuZXJpYyBwYXlsb2FkIG9mIGVycm9yIElvTWVzc2FnZXMgdGhhdCBwYXNzIG9uIGFuIGluc3RhbmNlIG9mIGBFcnJvcmBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFcnJvclBheWxvYWQge1xuICAvKipcbiAgICogVGhlIGVycm9yIHRoYXQgb2NjdXJyZWRcbiAgICovXG4gIHJlYWRvbmx5IGVycm9yOiBFcnJvcjtcbn1cblxuLyoqXG4gKiBPcGVyYXRpb24gaW5mb3JtYXRpb24gdGhhdCAqZGVmaW5pdGVseSogdG9vayB0aW1lLCBhbmQgKm1heWJlKiBwcm9kdWNlZCBhbiBlcnJvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbiBleHRlbmRzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHksIGFuIGVycm9yIHRoYXQgb2NjdXJyZWRcbiAgICovXG4gIHJlYWRvbmx5IGVycm9yPzogRXJyb3I7XG59XG5cbi8qKlxuICogR2VuZXJpYyBwYXlsb2FkIG9mIGEgc2ltcGxlIHllcy9ubyBxdWVzdGlvbi5cbiAqXG4gKiBUaGUgZXhwZWN0YXRpb24gaXMgdGhhdCAneWVzJyBtZWFucyBtb3Zpbmcgb24sXG4gKiBhbmQgJ25vJyBtZWFucyBhYm9ydGluZyB0aGUgY3VycmVudCBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybWF0aW9uUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBTb21lIGFkZGl0aW9uYWwgbW90aXZhdGlvbiBmb3IgdGhlIGNvbmZpcm1hdGlvbiB0aGF0IG1heSBiZSB1c2VkIGFzIGNvbnRleHQgZm9yIHRoZSB1c2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgbW90aXZhdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIG9uLWdvaW5nIGNvbmN1cnJlbnQgb3BlcmF0aW9uc1xuICAgKiBJZiBtb3JlIHRoYW4gb25lIG9wZXJhdGlvbnMgaXMgb24tZ29pbmcsIGEgY2xpZW50IG1pZ2h0IGRlY2lkZSB0aGF0IGFza2luZyB0aGUgdXNlclxuICAgKiBmb3IgaW5wdXQgaXMgdG9vIGNvbXBsZXgsIGFzIHRoZSBjb25maXJtYXRpb24gbWlnaHQgbm90IGVhc2lseSBiZSBhdHRyaWJ1dGVkIHRvIGEgc3BlY2lmaWMgcmVxdWVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjb25jdXJyZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVuY3k/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQSBnZW5lcmljIHJlcXVlc3QgZm9yIGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgZXhwZWN0ZWQgcmVzcG9uc2VcbiAgICogUHJvdmlkZXMgYWRkaXRpb25hbCBkZXRhaWxzIG9uIHdoYXQgdGhlIHJlc3BvbnNlIGNhbiBiZS5cbiAgICogVGhpcyBjYW4gYmUgdHJlYXRlZCBhcyBhIGRpcmVjdCBpbnN0cnVjdGlvbiB0byBlbmQtdXNlcnMgd2hlbiBwcm9tcHRpbmcgZm9yIGlucHV0LlxuICAgKi9cbiAgcmVzcG9uc2VEZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb250ZXh0IHByb3ZpZGVyIHNlbmRpbmcgdGhlIG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3YXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY29tcHV0ZWQgZmlsZSB3YXRjaCBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoU2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSBvYnNlcnZlZCBmb3IgZmlsZSBjaGFuZ2VzXG4gICAqL1xuICByZWFkb25seSB3YXRjaERpcjogc3RyaW5nO1xuICAvKipcbiAgICogTGlzdCBvZiBpbmNsdWRlIHBhdHRlcm5zIGZvciB3YXRjaGluZyBmaWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogTGlzdCBvZiBleGNsdWRlcyBwYXR0ZXJucyBmb3Igd2F0Y2hpbmcgZmlsZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlV2F0Y2hFdmVudCB7XG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIHRvIHRoZSBwYXRoXG4gICAqL1xuICByZWFkb25seSBldmVudDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCBoYXMgYW4gb2JzZXJ2ZWQgZXZlbnRcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActivityPrinterBase = void 0;\nconst private_1 = require(\"../../api/io/private\");\nconst util_1 = require(\"../../util\");\nclass ActivityPrinterBase {\n props;\n static TIMESTAMP_WIDTH = 12;\n static STATUS_WIDTH = 20;\n /**\n * Stream to write to\n */\n stream;\n /**\n * The with of the \"resource type\" column.\n */\n resourceTypeColumnWidth = (0, util_1.maxResourceTypeLength)({});\n /**\n * A list of resource IDs which are currently being processed\n */\n resourcesInProgress = {};\n stackProgress;\n rollingBack = false;\n failures = new Array();\n hookFailureMap = new Map();\n constructor(props) {\n this.props = props;\n this.stream = props.stream;\n }\n /**\n * Receive a stack activity message\n */\n notify(msg) {\n switch (true) {\n case private_1.IO.CDK_TOOLKIT_I5501.is(msg):\n this.start(msg.data);\n break;\n case private_1.IO.CDK_TOOLKIT_I5502.is(msg):\n this.activity(msg.data);\n break;\n case private_1.IO.CDK_TOOLKIT_I5503.is(msg):\n this.stop();\n break;\n default:\n // ignore all other messages\n break;\n }\n }\n start({ stack }) {\n this.resourceTypeColumnWidth = (0, util_1.maxResourceTypeLength)(stack.template);\n }\n activity(activity) {\n // process the activity and then call print\n this.addActivity(activity);\n this.print();\n }\n stop() {\n // final print after the stack is done\n this.print();\n }\n addActivity(activity) {\n const status = activity.event.ResourceStatus;\n const hookStatus = activity.event.HookStatus;\n const hookType = activity.event.HookType;\n if (!status || !activity.event.LogicalResourceId) {\n return;\n }\n this.stackProgress = activity.progress;\n if (status === 'ROLLBACK_IN_PROGRESS' || status === 'UPDATE_ROLLBACK_IN_PROGRESS') {\n // Only triggered on the stack once we've started doing a rollback\n this.rollingBack = true;\n }\n if (status.endsWith('_IN_PROGRESS')) {\n this.resourcesInProgress[activity.event.LogicalResourceId] = activity;\n }\n if ((0, util_1.isErrorEvent)(activity.event)) {\n // Cancelled is not an interesting failure reason, and we also don't care about root stack events\n // (but we DO care about nested stack events, historically, so I will leave that behavior now)\n if (!(0, util_1.isCancellationEvent)(activity.event) && !(0, util_1.isRootStackEvent)(activity.event)) {\n this.failures.push(activity);\n }\n }\n if (status.endsWith('_COMPLETE') || status.endsWith('_FAILED')) {\n delete this.resourcesInProgress[activity.event.LogicalResourceId];\n }\n if (hookStatus !== undefined &&\n hookStatus.endsWith('_COMPLETE_FAILED') &&\n activity.event.LogicalResourceId !== undefined &&\n hookType !== undefined) {\n if (this.hookFailureMap.has(activity.event.LogicalResourceId)) {\n this.hookFailureMap.get(activity.event.LogicalResourceId)?.set(hookType, activity.event.HookStatusReason ?? '');\n }\n else {\n this.hookFailureMap.set(activity.event.LogicalResourceId, new Map());\n this.hookFailureMap.get(activity.event.LogicalResourceId)?.set(hookType, activity.event.HookStatusReason ?? '');\n }\n }\n }\n failureReason(activity) {\n const resourceStatusReason = activity.event.ResourceStatusReason ?? '';\n const logicalResourceId = activity.event.LogicalResourceId ?? '';\n const hookFailureReasonMap = this.hookFailureMap.get(logicalResourceId);\n if (hookFailureReasonMap !== undefined) {\n for (const hookType of hookFailureReasonMap.keys()) {\n if (resourceStatusReason.includes(hookType)) {\n return resourceStatusReason + ' : ' + hookFailureReasonMap.get(hookType);\n }\n }\n }\n return resourceStatusReason;\n }\n /**\n * Is the activity a meta activity for the stack itself.\n */\n isActivityForTheStack(activity) {\n return activity.event.PhysicalResourceId === activity.event.StackId;\n }\n}\nexports.ActivityPrinterBase = ActivityPrinterBase;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsa0RBQTBDO0FBRTFDLHFDQUF3RztBQWF4RyxNQUFzQixtQkFBbUI7SUEyQlI7SUExQnJCLE1BQU0sQ0FBVSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBVSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRTVDOztPQUVHO0lBQ2dCLE1BQU0sQ0FBcUI7SUFFOUM7O09BRUc7SUFDTyx1QkFBdUIsR0FBVyxJQUFBLDRCQUFxQixFQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRFOztPQUVHO0lBQ08sbUJBQW1CLEdBQWtDLEVBQUUsQ0FBQztJQUV4RCxhQUFhLENBQWlCO0lBRTlCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFWCxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7SUFFL0MsY0FBYyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO0lBRWxFLFlBQStCLEtBQTJCO1FBQTNCLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBSUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBdUI7UUFDbkMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssWUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBQ1IsS0FBSyxZQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsR0FB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IHR5cGUgeyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2UgfSBmcm9tICcuLi8uLi9hcGkvaW8nO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi8uLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyB0eXBlIFN0YWNrQWN0aXZpdHksIHR5cGUgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IGlzQ2FuY2VsbGF0aW9uRXZlbnQsIGlzRXJyb3JFdmVudCwgaXNSb290U3RhY2tFdmVudCwgbWF4UmVzb3VyY2VUeXBlTGVuZ3RoIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFjdGl2aXR5UHJpbnRlciB7XG4gIG5vdGlmeShtc2c6IElvTWVzc2FnZTx1bmtub3duPik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlQcmludGVyUHJvcHMge1xuICAvKipcbiAgICogU3RyZWFtIHRvIHdyaXRlIHRvXG4gICAqL1xuICByZWFkb25seSBzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGl2aXR5UHJpbnRlckJhc2UgaW1wbGVtZW50cyBJQWN0aXZpdHlQcmludGVyIHtcbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBUSU1FU1RBTVBfV0lEVEggPSAxMjtcbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBTVEFUVVNfV0lEVEggPSAyMDtcblxuICAvKipcbiAgICogU3RyZWFtIHRvIHdyaXRlIHRvXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RyZWFtOiBOb2RlSlMuV3JpdGVTdHJlYW07XG5cbiAgLyoqXG4gICAqIFRoZSB3aXRoIG9mIHRoZSBcInJlc291cmNlIHR5cGVcIiBjb2x1bW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb3VyY2VUeXBlQ29sdW1uV2lkdGg6IG51bWJlciA9IG1heFJlc291cmNlVHlwZUxlbmd0aCh7fSk7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiByZXNvdXJjZSBJRHMgd2hpY2ggYXJlIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWRcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZXNJblByb2dyZXNzOiBSZWNvcmQ8c3RyaW5nLCBTdGFja0FjdGl2aXR5PiA9IHt9O1xuXG4gIHByb3RlY3RlZCBzdGFja1Byb2dyZXNzPzogU3RhY2tQcm9ncmVzcztcblxuICBwcm90ZWN0ZWQgcm9sbGluZ0JhY2sgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFpbHVyZXMgPSBuZXcgQXJyYXk8U3RhY2tBY3Rpdml0eT4oKTtcblxuICBwcm90ZWN0ZWQgaG9va0ZhaWx1cmVNYXAgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcHJvcHM6IEFjdGl2aXR5UHJpbnRlclByb3BzKSB7XG4gICAgdGhpcy5zdHJlYW0gPSBwcm9wcy5zdHJlYW07XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJpbnQoKTogdm9pZDtcblxuICAvKipcbiAgICogUmVjZWl2ZSBhIHN0YWNrIGFjdGl2aXR5IG1lc3NhZ2VcbiAgICovXG4gIHB1YmxpYyBub3RpZnkobXNnOiBJb01lc3NhZ2U8dW5rbm93bj4pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgSU8uQ0RLX1RPT0xLSVRfSTU1MDEuaXMobXNnKTpcbiAgICAgICAgdGhpcy5zdGFydChtc2cuZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBJTy5DREtfVE9PTEtJVF9JNTUwMi5pcyhtc2cpOlxuICAgICAgICB0aGlzLmFjdGl2aXR5KG1zZy5kYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIElPLkNES19UT09MS0lUX0k1NTAzLmlzKG1zZyk6XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIGlnbm9yZSBhbGwgb3RoZXIgbWVzc2FnZXNcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXJ0KHsgc3RhY2sgfTogeyBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0pIHtcbiAgICB0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoID0gbWF4UmVzb3VyY2VUeXBlTGVuZ3RoKHN0YWNrLnRlbXBsYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpdml0eShhY3Rpdml0eTogU3RhY2tBY3Rpdml0eSkge1xuICAgIC8vIHByb2Nlc3MgdGhlIGFjdGl2aXR5IGFuZCB0aGVuIGNhbGwgcHJpbnRcbiAgICB0aGlzLmFkZEFjdGl2aXR5KGFjdGl2aXR5KTtcbiAgICB0aGlzLnByaW50KCk7XG4gIH1cblxuICBwdWJsaWMgc3RvcCgpIHtcbiAgICAvLyBmaW5hbCBwcmludCBhZnRlciB0aGUgc3RhY2sgaXMgZG9uZVxuICAgIHRoaXMucHJpbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRBY3Rpdml0eShhY3Rpdml0eTogU3RhY2tBY3Rpdml0eSkge1xuICAgIGNvbnN0IHN0YXR1cyA9IGFjdGl2aXR5LmV2ZW50LlJlc291cmNlU3RhdHVzO1xuICAgIGNvbnN0IGhvb2tTdGF0dXMgPSBhY3Rpdml0eS5ldmVudC5Ib29rU3RhdHVzO1xuICAgIGNvbnN0IGhvb2tUeXBlID0gYWN0aXZpdHkuZXZlbnQuSG9va1R5cGU7XG4gICAgaWYgKCFzdGF0dXMgfHwgIWFjdGl2aXR5LmV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFja1Byb2dyZXNzID0gYWN0aXZpdHkucHJvZ3Jlc3M7XG5cbiAgICBpZiAoc3RhdHVzID09PSAnUk9MTEJBQ0tfSU5fUFJPR1JFU1MnIHx8IHN0YXR1cyA9PT0gJ1VQREFURV9ST0xMQkFDS19JTl9QUk9HUkVTUycpIHtcbiAgICAgIC8vIE9ubHkgdHJpZ2dlcmVkIG9uIHRoZSBzdGFjayBvbmNlIHdlJ3ZlIHN0YXJ0ZWQgZG9pbmcgYSByb2xsYmFja1xuICAgICAgdGhpcy5yb2xsaW5nQmFjayA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJykpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzc1thY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF0gPSBhY3Rpdml0eTtcbiAgICB9XG5cbiAgICBpZiAoaXNFcnJvckV2ZW50KGFjdGl2aXR5LmV2ZW50KSkge1xuICAgICAgLy8gQ2FuY2VsbGVkIGlzIG5vdCBhbiBpbnRlcmVzdGluZyBmYWlsdXJlIHJlYXNvbiwgYW5kIHdlIGFsc28gZG9uJ3QgY2FyZSBhYm91dCByb290IHN0YWNrIGV2ZW50c1xuICAgICAgLy8gKGJ1dCB3ZSBETyBjYXJlIGFib3V0IG5lc3RlZCBzdGFjayBldmVudHMsIGhpc3RvcmljYWxseSwgc28gSSB3aWxsIGxlYXZlIHRoYXQgYmVoYXZpb3Igbm93KVxuICAgICAgaWYgKCFpc0NhbmNlbGxhdGlvbkV2ZW50KGFjdGl2aXR5LmV2ZW50KSAmJiAhaXNSb290U3RhY2tFdmVudChhY3Rpdml0eS5ldmVudCkpIHtcbiAgICAgICAgdGhpcy5mYWlsdXJlcy5wdXNoKGFjdGl2aXR5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdHVzLmVuZHNXaXRoKCdfQ09NUExFVEUnKSB8fCBzdGF0dXMuZW5kc1dpdGgoJ19GQUlMRUQnKSkge1xuICAgICAgZGVsZXRlIHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzc1thY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF07XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaG9va1N0YXR1cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGhvb2tTdGF0dXMuZW5kc1dpdGgoJ19DT01QTEVURV9GQUlMRUQnKSAmJlxuICAgICAgICBhY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGhvb2tUeXBlICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLmhvb2tGYWlsdXJlTWFwLmhhcyhhY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCkpIHtcbiAgICAgICAgdGhpcy5ob29rRmFpbHVyZU1hcC5nZXQoYWN0aXZpdHkuZXZlbnQuTG9naWNhbFJlc291cmNlSWQpPy5zZXQoaG9va1R5cGUsIGFjdGl2aXR5LmV2ZW50Lkhvb2tTdGF0dXNSZWFzb24gPz8gJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ob29rRmFpbHVyZU1hcC5zZXQoYWN0aXZpdHkuZXZlbnQuTG9naWNhbFJlc291cmNlSWQsIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpO1xuICAgICAgICB0aGlzLmhvb2tGYWlsdXJlTWFwLmdldChhY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCk/LnNldChob29rVHlwZSwgYWN0aXZpdHkuZXZlbnQuSG9va1N0YXR1c1JlYXNvbiA/PyAnJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGZhaWx1cmVSZWFzb24oYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICBjb25zdCByZXNvdXJjZVN0YXR1c1JlYXNvbiA9IGFjdGl2aXR5LmV2ZW50LlJlc291cmNlU3RhdHVzUmVhc29uID8/ICcnO1xuICAgIGNvbnN0IGxvZ2ljYWxSZXNvdXJjZUlkID0gYWN0aXZpdHkuZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJyc7XG4gICAgY29uc3QgaG9va0ZhaWx1cmVSZWFzb25NYXAgPSB0aGlzLmhvb2tGYWlsdXJlTWFwLmdldChsb2dpY2FsUmVzb3VyY2VJZCk7XG5cbiAgICBpZiAoaG9va0ZhaWx1cmVSZWFzb25NYXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBob29rVHlwZSBvZiBob29rRmFpbHVyZVJlYXNvbk1hcC5rZXlzKCkpIHtcbiAgICAgICAgaWYgKHJlc291cmNlU3RhdHVzUmVhc29uLmluY2x1ZGVzKGhvb2tUeXBlKSkge1xuICAgICAgICAgIHJldHVybiByZXNvdXJjZVN0YXR1c1JlYXNvbiArICcgOiAnICsgaG9va0ZhaWx1cmVSZWFzb25NYXAuZ2V0KGhvb2tUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2VTdGF0dXNSZWFzb247XG4gIH1cblxuICAvKipcbiAgICogSXMgdGhlIGFjdGl2aXR5IGEgbWV0YSBhY3Rpdml0eSBmb3IgdGhlIHN0YWNrIGl0c2VsZi5cbiAgICovXG4gIHByb3RlY3RlZCBpc0FjdGl2aXR5Rm9yVGhlU3RhY2soYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICByZXR1cm4gYWN0aXZpdHkuZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkID09PSBhY3Rpdml0eS5ldmVudC5TdGFja0lkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CurrentActivityPrinter = void 0;\nconst util = require(\"util\");\nconst chalk = require(\"chalk\");\nconst base_1 = require(\"./base\");\nconst display_1 = require(\"./display\");\nconst util_1 = require(\"../../util\");\n/**\n * Activity Printer which shows the resources currently being updated\n *\n * It will continuously re-update the terminal and show only the resources\n * that are currently being updated, in addition to a progress bar which\n * shows how far along the deployment is.\n *\n * Resources that have failed will always be shown, and will be recapitulated\n * along with their stack trace when the monitoring ends.\n *\n * Resources that failed deployment because they have been cancelled are\n * not included.\n */\nclass CurrentActivityPrinter extends base_1.ActivityPrinterBase {\n /**\n * Continuously write to the same output block.\n */\n block;\n constructor(props) {\n super(props);\n this.block = new display_1.RewritableBlock(this.stream);\n }\n print() {\n const lines = [];\n // Add a progress bar at the top\n const progressWidth = Math.max(Math.min((this.block.width ?? 80) - PROGRESSBAR_EXTRA_SPACE - 1, MAX_PROGRESSBAR_WIDTH), MIN_PROGRESSBAR_WIDTH);\n const prog = this.progressBar(progressWidth);\n if (prog) {\n lines.push(' ' + prog, '');\n }\n // Normally we'd only print \"resources in progress\", but it's also useful\n // to keep an eye on the failures and know about the specific errors asquickly\n // as possible (while the stack is still rolling back), so add those in.\n const toPrint = [...this.failures, ...Object.values(this.resourcesInProgress)];\n toPrint.sort((a, b) => a.event.Timestamp.getTime() - b.event.Timestamp.getTime());\n lines.push(...toPrint.map((res) => {\n const color = colorFromStatusActivity(res.event.ResourceStatus);\n const resourceName = res.metadata?.constructPath ?? res.event.LogicalResourceId ?? '';\n return util.format('%s | %s | %s | %s%s', (0, util_1.padLeft)(CurrentActivityPrinter.TIMESTAMP_WIDTH, new Date(res.event.Timestamp).toLocaleTimeString()), color((0, util_1.padRight)(CurrentActivityPrinter.STATUS_WIDTH, (res.event.ResourceStatus || '').slice(0, CurrentActivityPrinter.STATUS_WIDTH))), (0, util_1.padRight)(this.resourceTypeColumnWidth, res.event.ResourceType || ''), color(chalk.bold(shorten(40, resourceName))), this.failureReasonOnNextLine(res));\n }));\n this.block.displayLines(lines);\n }\n stop() {\n super.stop();\n // Print failures at the end\n const lines = new Array();\n for (const failure of this.failures) {\n // Root stack failures are not interesting\n if (this.isActivityForTheStack(failure)) {\n continue;\n }\n lines.push(util.format(chalk.red('%s | %s | %s | %s%s') + '\\n', (0, util_1.padLeft)(CurrentActivityPrinter.TIMESTAMP_WIDTH, new Date(failure.event.Timestamp).toLocaleTimeString()), (0, util_1.padRight)(CurrentActivityPrinter.STATUS_WIDTH, (failure.event.ResourceStatus || '').slice(0, CurrentActivityPrinter.STATUS_WIDTH)), (0, util_1.padRight)(this.resourceTypeColumnWidth, failure.event.ResourceType || ''), shorten(40, failure.event.LogicalResourceId ?? ''), this.failureReasonOnNextLine(failure)));\n const trace = failure.metadata?.entry?.trace;\n if (trace) {\n lines.push(chalk.red(`\\t${trace.join('\\n\\t\\\\_ ')}\\n`));\n }\n }\n // Display in the same block space, otherwise we're going to have silly empty lines.\n this.block.displayLines(lines);\n this.block.removeEmptyLines();\n }\n progressBar(width) {\n if (!this.stackProgress || !this.stackProgress.total) {\n return '';\n }\n const fraction = Math.min(this.stackProgress.completed / this.stackProgress.total, 1);\n const innerWidth = Math.max(1, width - 2);\n const chars = innerWidth * fraction;\n const remainder = chars - Math.floor(chars);\n const fullChars = FULL_BLOCK.repeat(Math.floor(chars));\n const partialChar = PARTIAL_BLOCK[Math.floor(remainder * PARTIAL_BLOCK.length)];\n const filler = '·'.repeat(innerWidth - Math.floor(chars) - (partialChar ? 1 : 0));\n const color = this.rollingBack ? chalk.yellow : chalk.green;\n return '[' + color(fullChars + partialChar) + filler + `] (${this.stackProgress.completed}/${this.stackProgress.total})`;\n }\n failureReasonOnNextLine(activity) {\n return (0, util_1.isErrorEvent)(activity.event)\n ? `\\n${' '.repeat(CurrentActivityPrinter.TIMESTAMP_WIDTH + CurrentActivityPrinter.STATUS_WIDTH + 6)}${chalk.red(this.failureReason(activity) ?? '')}`\n : '';\n }\n}\nexports.CurrentActivityPrinter = CurrentActivityPrinter;\nconst FULL_BLOCK = '█';\nconst PARTIAL_BLOCK = ['', '▏', '▎', '▍', '▌', '▋', '▊', '▉'];\nconst MAX_PROGRESSBAR_WIDTH = 60;\nconst MIN_PROGRESSBAR_WIDTH = 10;\nconst PROGRESSBAR_EXTRA_SPACE = 2 /* leading spaces */ + 2 /* brackets */ + 4 /* progress number decoration */ + 6; /* 2 progress numbers up to 999 */\nfunction colorFromStatusActivity(status) {\n if (!status) {\n return chalk.reset;\n }\n if (status.endsWith('_FAILED')) {\n return chalk.red;\n }\n if (status.startsWith('CREATE_') || status.startsWith('UPDATE_') || status.startsWith('IMPORT_')) {\n return chalk.green;\n }\n // For stacks, it may also be 'UPDDATE_ROLLBACK_IN_PROGRESS'\n if (status.indexOf('ROLLBACK_') !== -1) {\n return chalk.yellow;\n }\n if (status.startsWith('DELETE_')) {\n return chalk.yellow;\n }\n return chalk.reset;\n}\nfunction shorten(maxWidth, p) {\n if (p.length <= maxWidth) {\n return p;\n }\n const half = Math.floor((maxWidth - 3) / 2);\n return p.slice(0, half) + '...' + p.slice(-half);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImN1cnJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MsdUNBQTRDO0FBRTVDLHFDQUE2RDtBQUU3RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDBCQUFtQjtJQUM3RDs7T0FFRztJQUNLLEtBQUssQ0FBa0I7SUFFL0IsWUFBWSxLQUEyQjtRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkseUJBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLEtBQUs7UUFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsZ0NBQWdDO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyx1QkFBdUIsR0FBRyxDQUFDLEVBQUUscUJBQXFCLENBQUMsRUFDdkYscUJBQXFCLENBQ3RCLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELHlFQUF5RTtRQUN6RSw4RUFBOEU7UUFDOUUsd0VBQXdFO1FBQ3hFLE1BQU0sT0FBTyxHQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNoRyxPQUFP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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFjdGl2aXR5UHJpbnRlclByb3BzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFjdGl2aXR5UHJpbnRlckJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgUmV3cml0YWJsZUJsb2NrIH0gZnJvbSAnLi9kaXNwbGF5JztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IGlzRXJyb3JFdmVudCwgcGFkTGVmdCwgcGFkUmlnaHQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBBY3Rpdml0eSBQcmludGVyIHdoaWNoIHNob3dzIHRoZSByZXNvdXJjZXMgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWRcbiAqXG4gKiBJdCB3aWxsIGNvbnRpbnVvdXNseSByZS11cGRhdGUgdGhlIHRlcm1pbmFsIGFuZCBzaG93IG9ubHkgdGhlIHJlc291cmNlc1xuICogdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWQsIGluIGFkZGl0aW9uIHRvIGEgcHJvZ3Jlc3MgYmFyIHdoaWNoXG4gKiBzaG93cyBob3cgZmFyIGFsb25nIHRoZSBkZXBsb3ltZW50IGlzLlxuICpcbiAqIFJlc291cmNlcyB0aGF0IGhhdmUgZmFpbGVkIHdpbGwgYWx3YXlzIGJlIHNob3duLCBhbmQgd2lsbCBiZSByZWNhcGl0dWxhdGVkXG4gKiBhbG9uZyB3aXRoIHRoZWlyIHN0YWNrIHRyYWNlIHdoZW4gdGhlIG1vbml0b3JpbmcgZW5kcy5cbiAqXG4gKiBSZXNvdXJjZXMgdGhhdCBmYWlsZWQgZGVwbG95bWVudCBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuIGNhbmNlbGxlZCBhcmVcbiAqIG5vdCBpbmNsdWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1cnJlbnRBY3Rpdml0eVByaW50ZXIgZXh0ZW5kcyBBY3Rpdml0eVByaW50ZXJCYXNlIHtcbiAgLyoqXG4gICAqIENvbnRpbnVvdXNseSB3cml0ZSB0byB0aGUgc2FtZSBvdXRwdXQgYmxvY2suXG4gICAqL1xuICBwcml2YXRlIGJsb2NrOiBSZXdyaXRhYmxlQmxvY2s7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEFjdGl2aXR5UHJpbnRlclByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuYmxvY2sgPSBuZXcgUmV3cml0YWJsZUJsb2NrKHRoaXMuc3RyZWFtKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmludCgpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuXG4gICAgLy8gQWRkIGEgcHJvZ3Jlc3MgYmFyIGF0IHRoZSB0b3BcbiAgICBjb25zdCBwcm9ncmVzc1dpZHRoID0gTWF0aC5tYXgoXG4gICAgICBNYXRoLm1pbigodGhpcy5ibG9jay53aWR0aCA/PyA4MCkgLSBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSAtIDEsIE1BWF9QUk9HUkVTU0JBUl9XSURUSCksXG4gICAgICBNSU5fUFJPR1JFU1NCQVJfV0lEVEgsXG4gICAgKTtcbiAgICBjb25zdCBwcm9nID0gdGhpcy5wcm9ncmVzc0Jhcihwcm9ncmVzc1dpZHRoKTtcbiAgICBpZiAocHJvZykge1xuICAgICAgbGluZXMucHVzaCgnICAnICsgcHJvZywgJycpO1xuICAgIH1cblxuICAgIC8vIE5vcm1hbGx5IHdlJ2Qgb25seSBwcmludCBcInJlc291cmNlcyBpbiBwcm9ncmVzc1wiLCBidXQgaXQncyBhbHNvIHVzZWZ1bFxuICAgIC8vIHRvIGtlZXAgYW4gZXllIG9uIHRoZSBmYWlsdXJlcyBhbmQga25vdyBhYm91dCB0aGUgc3BlY2lmaWMgZXJyb3JzIGFzcXVpY2tseVxuICAgIC8vIGFzIHBvc3NpYmxlICh3aGlsZSB0aGUgc3RhY2sgaXMgc3RpbGwgcm9sbGluZyBiYWNrKSwgc28gYWRkIHRob3NlIGluLlxuICAgIGNvbnN0IHRvUHJpbnQ6IFN0YWNrQWN0aXZpdHlbXSA9IFsuLi50aGlzLmZhaWx1cmVzLCAuLi5PYmplY3QudmFsdWVzKHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzcyldO1xuICAgIHRvUHJpbnQuc29ydCgoYSwgYikgPT4gYS5ldmVudC5UaW1lc3RhbXAhLmdldFRpbWUoKSAtIGIuZXZlbnQuVGltZXN0YW1wIS5nZXRUaW1lKCkpO1xuXG4gICAgbGluZXMucHVzaChcbiAgICAgIC4uLnRvUHJpbnQubWFwKChyZXMpID0+IHtcbiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShyZXMuZXZlbnQuUmVzb3VyY2VTdGF0dXMpO1xuICAgICAgICBjb25zdCByZXNvdXJjZU5hbWUgPSByZXMubWV0YWRhdGE/LmNvbnN0cnVjdFBhdGggPz8gcmVzLmV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnO1xuXG4gICAgICAgIHJldHVybiB1dGlsLmZvcm1hdChcbiAgICAgICAgICAnJXMgfCAlcyB8ICVzIHwgJXMlcycsXG4gICAgICAgICAgcGFkTGVmdChDdXJyZW50QWN0aXZpdHlQcmludGVyLlRJTUVTVEFNUF9XSURUSCwgbmV3IERhdGUocmVzLmV2ZW50LlRpbWVzdGFtcCEpLnRvTG9jYWxlVGltZVN0cmluZygpKSxcbiAgICAgICAgICBjb2xvcihwYWRSaWdodChDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCwgKHJlcy5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSksXG4gICAgICAgICAgcGFkUmlnaHQodGhpcy5yZXNvdXJjZVR5cGVDb2x1bW5XaWR0aCwgcmVzLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgY29sb3IoY2hhbGsuYm9sZChzaG9ydGVuKDQwLCByZXNvdXJjZU5hbWUpKSksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShyZXMpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYmxvY2suZGlzcGxheUxpbmVzKGxpbmVzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCkge1xuICAgIHN1cGVyLnN0b3AoKTtcblxuICAgIC8vIFByaW50IGZhaWx1cmVzIGF0IHRoZSBlbmRcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBmYWlsdXJlIG9mIHRoaXMuZmFpbHVyZXMpIHtcbiAgICAgIC8vIFJvb3Qgc3RhY2sgZmFpbHVyZXMgYXJlIG5vdCBpbnRlcmVzdGluZ1xuICAgICAgaWYgKHRoaXMuaXNBY3Rpdml0eUZvclRoZVN0YWNrKGZhaWx1cmUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgICBjaGFsay5yZWQoJyVzIHwgJXMgfCAlcyB8ICVzJXMnKSArICdcXG4nLFxuICAgICAgICAgIHBhZExlZnQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5USU1FU1RBTVBfV0lEVEgsIG5ldyBEYXRlKGZhaWx1cmUuZXZlbnQuVGltZXN0YW1wISkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICAgIHBhZFJpZ2h0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRILCAoZmFpbHVyZS5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSxcbiAgICAgICAgICBwYWRSaWdodCh0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoLCBmYWlsdXJlLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgc2hvcnRlbig0MCwgZmFpbHVyZS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/PyAnJyksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShmYWlsdXJlKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHRyYWNlID0gZmFpbHVyZS5tZXRhZGF0YT8uZW50cnk/LnRyYWNlO1xuICAgICAgaWYgKHRyYWNlKSB7XG4gICAgICAgIGxpbmVzLnB1c2goY2hhbGsucmVkKGBcXHQke3RyYWNlLmpvaW4oJ1xcblxcdFxcXFxfICcpfVxcbmApKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5IGluIHRoZSBzYW1lIGJsb2NrIHNwYWNlLCBvdGhlcndpc2Ugd2UncmUgZ29pbmcgdG8gaGF2ZSBzaWxseSBlbXB0eSBsaW5lcy5cbiAgICB0aGlzLmJsb2NrLmRpc3BsYXlMaW5lcyhsaW5lcyk7XG4gICAgdGhpcy5ibG9jay5yZW1vdmVFbXB0eUxpbmVzKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2dyZXNzQmFyKHdpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuc3RhY2tQcm9ncmVzcyB8fCAhdGhpcy5zdGFja1Byb2dyZXNzLnRvdGFsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGZyYWN0aW9uID0gTWF0aC5taW4odGhpcy5zdGFja1Byb2dyZXNzLmNvbXBsZXRlZCAvIHRoaXMuc3RhY2tQcm9ncmVzcy50b3RhbCwgMSk7XG4gICAgY29uc3QgaW5uZXJXaWR0aCA9IE1hdGgubWF4KDEsIHdpZHRoIC0gMik7XG4gICAgY29uc3QgY2hhcnMgPSBpbm5lcldpZHRoICogZnJhY3Rpb247XG4gICAgY29uc3QgcmVtYWluZGVyID0gY2hhcnMgLSBNYXRoLmZsb29yKGNoYXJzKTtcblxuICAgIGNvbnN0IGZ1bGxDaGFycyA9IEZVTExfQkxPQ0sucmVwZWF0KE1hdGguZmxvb3IoY2hhcnMpKTtcbiAgICBjb25zdCBwYXJ0aWFsQ2hhciA9IFBBUlRJQUxfQkxPQ0tbTWF0aC5mbG9vcihyZW1haW5kZXIgKiBQQVJUSUFMX0JMT0NLLmxlbmd0aCldO1xuICAgIGNvbnN0IGZpbGxlciA9ICfCtycucmVwZWF0KGlubmVyV2lkdGggLSBNYXRoLmZsb29yKGNoYXJzKSAtIChwYXJ0aWFsQ2hhciA/IDEgOiAwKSk7XG5cbiAgICBjb25zdCBjb2xvciA9IHRoaXMucm9sbGluZ0JhY2sgPyBjaGFsay55ZWxsb3cgOiBjaGFsay5ncmVlbjtcblxuICAgIHJldHVybiAnWycgKyBjb2xvcihmdWxsQ2hhcnMgKyBwYXJ0aWFsQ2hhcikgKyBmaWxsZXIgKyBgXSAoJHt0aGlzLnN0YWNrUHJvZ3Jlc3MuY29tcGxldGVkfS8ke3RoaXMuc3RhY2tQcm9ncmVzcy50b3RhbH0pYDtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbHVyZVJlYXNvbk9uTmV4dExpbmUoYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICByZXR1cm4gaXNFcnJvckV2ZW50KGFjdGl2aXR5LmV2ZW50KVxuICAgICAgPyBgXFxuJHsnICcucmVwZWF0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuVElNRVNUQU1QX1dJRFRIICsgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEggKyA2KX0ke2NoYWxrLnJlZCh0aGlzLmZhaWx1cmVSZWFzb24oYWN0aXZpdHkpID8/ICcnKX1gXG4gICAgICA6ICcnO1xuICB9XG59XG5cbmNvbnN0IEZVTExfQkxPQ0sgPSAn4paIJztcbmNvbnN0IFBBUlRJQUxfQkxPQ0sgPSBbJycsICfilo8nLCAn4paOJywgJ+KWjScsICfilownLCAn4paLJywgJ+KWiicsICfiloknXTtcbmNvbnN0IE1BWF9QUk9HUkVTU0JBUl9XSURUSCA9IDYwO1xuY29uc3QgTUlOX1BST0dSRVNTQkFSX1dJRFRIID0gMTA7XG5jb25zdCBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSA9XG4gICAgMiAvKiBsZWFkaW5nIHNwYWNlcyAqLyArIDIgLyogYnJhY2tldHMgKi8gKyA0IC8qIHByb2dyZXNzIG51bWJlciBkZWNvcmF0aW9uICovICsgNjsgLyogMiBwcm9ncmVzcyBudW1iZXJzIHVwIHRvIDk5OSAqL1xuXG5mdW5jdGlvbiBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShzdGF0dXM/OiBzdHJpbmcpIHtcbiAgaWYgKCFzdGF0dXMpIHtcbiAgICByZXR1cm4gY2hhbGsucmVzZXQ7XG4gIH1cblxuICBpZiAoc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykpIHtcbiAgICByZXR1cm4gY2hhbGsucmVkO1xuICB9XG5cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdDUkVBVEVfJykgfHwgc3RhdHVzLnN0YXJ0c1dpdGgoJ1VQREFURV8nKSB8fCBzdGF0dXMuc3RhcnRzV2l0aCgnSU1QT1JUXycpKSB7XG4gICAgcmV0dXJuIGNoYWxrLmdyZWVuO1xuICB9XG4gIC8vIEZvciBzdGFja3MsIGl0IG1heSBhbHNvIGJlICdVUEREQVRFX1JPTExCQUNLX0lOX1BST0dSRVNTJ1xuICBpZiAoc3RhdHVzLmluZGV4T2YoJ1JPTExCQUNLXycpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gIH1cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdERUxFVEVfJykpIHtcbiAgICByZXR1cm4gY2hhbGsueWVsbG93O1xuICB9XG5cbiAgcmV0dXJuIGNoYWxrLnJlc2V0O1xufVxuXG5mdW5jdGlvbiBzaG9ydGVuKG1heFdpZHRoOiBudW1iZXIsIHA6IHN0cmluZykge1xuICBpZiAocC5sZW5ndGggPD0gbWF4V2lkdGgpIHtcbiAgICByZXR1cm4gcDtcbiAgfVxuICBjb25zdCBoYWxmID0gTWF0aC5mbG9vcigobWF4V2lkdGggLSAzKSAvIDIpO1xuICByZXR1cm4gcC5zbGljZSgwLCBoYWxmKSArICcuLi4nICsgcC5zbGljZSgtaGFsZik7XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RewritableBlock = void 0;\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst wrapAnsi = require('wrap-ansi');\n/**\n * A class representing rewritable display lines\n */\nclass RewritableBlock {\n stream;\n lastHeight = 0;\n trailingEmptyLines = 0;\n constructor(stream) {\n this.stream = stream;\n }\n get width() {\n // Might get changed if the user resizes the terminal\n return this.stream.columns;\n }\n get height() {\n // Might get changed if the user resizes the terminal\n return this.stream.rows;\n }\n displayLines(lines) {\n lines = terminalWrap(this.width, expandNewlines(lines));\n lines = lines.slice(0, getMaxBlockHeight(this.height, this.lastHeight, lines));\n this.stream.write(cursorUp(this.lastHeight));\n for (const line of lines) {\n this.stream.write(cll() + line + '\\n');\n }\n this.trailingEmptyLines = Math.max(0, this.lastHeight - lines.length);\n // Clear remainder of unwritten lines\n for (let i = 0; i < this.trailingEmptyLines; i++) {\n this.stream.write(cll() + '\\n');\n }\n // The block can only ever get bigger\n this.lastHeight = Math.max(this.lastHeight, lines.length);\n }\n removeEmptyLines() {\n this.stream.write(cursorUp(this.trailingEmptyLines));\n }\n}\nexports.RewritableBlock = RewritableBlock;\nconst ESC = '\\u001b';\n/*\n * Move cursor up `n` lines. Default is 1\n */\nfunction cursorUp(n) {\n n = typeof n === 'number' ? n : 1;\n return n > 0 ? ESC + '[' + n + 'A' : '';\n}\n/**\n * Clear to end of line\n */\nfunction cll() {\n return ESC + '[K';\n}\nfunction terminalWrap(width, lines) {\n if (width === undefined) {\n return lines;\n }\n return lines.flatMap(line => wrapAnsi(line, width - 1, {\n hard: true,\n trim: true,\n wordWrap: false,\n }).split('\\n'));\n}\n/**\n * Make sure there are no hidden newlines in the gin strings\n */\nfunction expandNewlines(lines) {\n return lines.flatMap(line => line.split('\\n'));\n}\nfunction getMaxBlockHeight(windowHeight, lastHeight, lines) {\n if (windowHeight === undefined) {\n return Math.max(lines.length, lastHeight);\n }\n return lines.length < windowHeight ? lines.length : windowHeight - 1;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3BsYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFJRztJQUhyQixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ2Ysa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBRS9CLFlBQTZCLE1BQTBCO1FBQTFCLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ3ZELENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxxREFBcUQ7UUFDckQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YscURBQXFEO1FBQ3JELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFlO1FBQ2pDLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEUscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQXhDRCwwQ0F3Q0M7QUFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUM7QUFFckI7O0dBRUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxDQUFTO0lBQ3pCLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxHQUFHO0lBQ1YsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUF5QixFQUFFLEtBQWU7SUFDOUQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLElBQUk7UUFDVixRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxjQUFjLENBQUMsS0FBZTtJQUNyQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsWUFBZ0MsRUFBRSxVQUFrQixFQUFFLEtBQWU7SUFDOUYsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCB3cmFwQW5zaSA9IHJlcXVpcmUoJ3dyYXAtYW5zaScpO1xuXG4vKipcbiAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIHJld3JpdGFibGUgZGlzcGxheSBsaW5lc1xuICovXG5leHBvcnQgY2xhc3MgUmV3cml0YWJsZUJsb2NrIHtcbiAgcHJpdmF0ZSBsYXN0SGVpZ2h0ID0gMDtcbiAgcHJpdmF0ZSB0cmFpbGluZ0VtcHR5TGluZXMgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBOb2RlSlMuV3JpdGVTdHJlYW0pIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgd2lkdGgoKSB7XG4gICAgLy8gTWlnaHQgZ2V0IGNoYW5nZWQgaWYgdGhlIHVzZXIgcmVzaXplcyB0aGUgdGVybWluYWxcbiAgICByZXR1cm4gdGhpcy5zdHJlYW0uY29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVpZ2h0KCkge1xuICAgIC8vIE1pZ2h0IGdldCBjaGFuZ2VkIGlmIHRoZSB1c2VyIHJlc2l6ZXMgdGhlIHRlcm1pbmFsXG4gICAgcmV0dXJuIHRoaXMuc3RyZWFtLnJvd3M7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheUxpbmVzKGxpbmVzOiBzdHJpbmdbXSkge1xuICAgIGxpbmVzID0gdGVybWluYWxXcmFwKHRoaXMud2lkdGgsIGV4cGFuZE5ld2xpbmVzKGxpbmVzKSk7XG4gICAgbGluZXMgPSBsaW5lcy5zbGljZSgwLCBnZXRNYXhCbG9ja0hlaWdodCh0aGlzLmhlaWdodCwgdGhpcy5sYXN0SGVpZ2h0LCBsaW5lcykpO1xuXG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY3Vyc29yVXAodGhpcy5sYXN0SGVpZ2h0KSk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICB0aGlzLnN0cmVhbS53cml0ZShjbGwoKSArIGxpbmUgKyAnXFxuJyk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFpbGluZ0VtcHR5TGluZXMgPSBNYXRoLm1heCgwLCB0aGlzLmxhc3RIZWlnaHQgLSBsaW5lcy5sZW5ndGgpO1xuXG4gICAgLy8gQ2xlYXIgcmVtYWluZGVyIG9mIHVud3JpdHRlbiBsaW5lc1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmFpbGluZ0VtcHR5TGluZXM7IGkrKykge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoY2xsKCkgKyAnXFxuJyk7XG4gICAgfVxuXG4gICAgLy8gVGhlIGJsb2NrIGNhbiBvbmx5IGV2ZXIgZ2V0IGJpZ2dlclxuICAgIHRoaXMubGFzdEhlaWdodCA9IE1hdGgubWF4KHRoaXMubGFzdEhlaWdodCwgbGluZXMubGVuZ3RoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVFbXB0eUxpbmVzKCkge1xuICAgIHRoaXMuc3RyZWFtLndyaXRlKGN1cnNvclVwKHRoaXMudHJhaWxpbmdFbXB0eUxpbmVzKSk7XG4gIH1cbn1cblxuY29uc3QgRVNDID0gJ1xcdTAwMWInO1xuXG4vKlxuICogTW92ZSBjdXJzb3IgdXAgYG5gIGxpbmVzLiBEZWZhdWx0IGlzIDFcbiAqL1xuZnVuY3Rpb24gY3Vyc29yVXAobjogbnVtYmVyKSB7XG4gIG4gPSB0eXBlb2YgbiA9PT0gJ251bWJlcicgPyBuIDogMTtcbiAgcmV0dXJuIG4gPiAwID8gRVNDICsgJ1snICsgbiArICdBJyA6ICcnO1xufVxuXG4vKipcbiAqIENsZWFyIHRvIGVuZCBvZiBsaW5lXG4gKi9cbmZ1bmN0aW9uIGNsbCgpIHtcbiAgcmV0dXJuIEVTQyArICdbSyc7XG59XG5cbmZ1bmN0aW9uIHRlcm1pbmFsV3JhcCh3aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkLCBsaW5lczogc3RyaW5nW10pIHtcbiAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICByZXR1cm4gbGluZXMuZmxhdE1hcChsaW5lID0+IHdyYXBBbnNpKGxpbmUsIHdpZHRoIC0gMSwge1xuICAgIGhhcmQ6IHRydWUsXG4gICAgdHJpbTogdHJ1ZSxcbiAgICB3b3JkV3JhcDogZmFsc2UsXG4gIH0pLnNwbGl0KCdcXG4nKSk7XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBoaWRkZW4gbmV3bGluZXMgaW4gdGhlIGdpbiBzdHJpbmdzXG4gKi9cbmZ1bmN0aW9uIGV4cGFuZE5ld2xpbmVzKGxpbmVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGxpbmVzLmZsYXRNYXAobGluZSA9PiBsaW5lLnNwbGl0KCdcXG4nKSk7XG59XG5cbmZ1bmN0aW9uIGdldE1heEJsb2NrSGVpZ2h0KHdpbmRvd0hlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkLCBsYXN0SGVpZ2h0OiBudW1iZXIsIGxpbmVzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gIGlmICh3aW5kb3dIZWlnaHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBNYXRoLm1heChsaW5lcy5sZW5ndGgsIGxhc3RIZWlnaHQpO1xuICB9XG4gIHJldHVybiBsaW5lcy5sZW5ndGggPCB3aW5kb3dIZWlnaHQgPyBsaW5lcy5sZW5ndGggOiB3aW5kb3dIZWlnaHQgLSAxO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HistoryActivityPrinter = void 0;\nconst util = require(\"util\");\nconst chalk = require(\"chalk\");\nconst base_1 = require(\"./base\");\nconst util_1 = require(\"../../util\");\n/**\n * Activity Printer which shows a full log of all CloudFormation events\n *\n * When there hasn't been activity for a while, it will print the resources\n * that are currently in progress, to show what's holding up the deployment.\n */\nclass HistoryActivityPrinter extends base_1.ActivityPrinterBase {\n /**\n * Last time we printed something to the console.\n *\n * Used to measure timeout for progress reporting.\n */\n lastPrintTime = Date.now();\n lastPrinted;\n /**\n * Number of ms of change absence before we tell the user about the resources that are currently in progress.\n */\n inProgressDelay = 30_000;\n printable = new Array();\n constructor(props) {\n super(props);\n }\n activity(activity) {\n this.printable.push(activity);\n super.activity(activity);\n }\n stop() {\n super.stop();\n // Print failures at the end\n if (this.failures.length > 0) {\n this.stream.write('\\nFailed resources:\\n');\n for (const failure of this.failures) {\n // Root stack failures are not interesting\n if (this.isActivityForTheStack(failure)) {\n continue;\n }\n this.printOne(failure, false);\n }\n }\n }\n print() {\n for (const activity of this.printable) {\n this.printOne(activity);\n this.lastPrinted = activity;\n }\n this.printable.splice(0, this.printable.length);\n this.printInProgress(this.lastPrinted?.progress.formatted);\n }\n printOne(activity, progress) {\n const event = activity.event;\n const color = colorFromStatusResult(event.ResourceStatus);\n let reasonColor = chalk.cyan;\n let stackTrace = '';\n const metadata = activity.metadata;\n if (event.ResourceStatus && event.ResourceStatus.indexOf('FAILED') !== -1) {\n if (progress == undefined || progress) {\n event.ResourceStatusReason = event.ResourceStatusReason ? this.failureReason(activity) : '';\n }\n if (metadata) {\n stackTrace = metadata.entry.trace ? `\\n\\t${metadata.entry.trace.join('\\n\\t\\\\_ ')}` : '';\n }\n reasonColor = chalk.red;\n }\n const resourceName = metadata ? metadata.constructPath : event.LogicalResourceId || '';\n const logicalId = resourceName !== event.LogicalResourceId ? `(${event.LogicalResourceId}) ` : '';\n this.stream.write(util.format('%s | %s%s | %s | %s | %s %s%s%s\\n', event.StackName, progress !== false ? `${activity.progress.formatted} | ` : '', new Date(event.Timestamp).toLocaleTimeString(), color((0, util_1.padRight)(HistoryActivityPrinter.STATUS_WIDTH, (event.ResourceStatus || '').slice(0, HistoryActivityPrinter.STATUS_WIDTH))), // pad left and trim\n (0, util_1.padRight)(this.resourceTypeColumnWidth, event.ResourceType || ''), color(chalk.bold(resourceName)), logicalId, reasonColor(chalk.bold(event.ResourceStatusReason ? event.ResourceStatusReason : '')), reasonColor(stackTrace)));\n this.lastPrintTime = Date.now();\n }\n /**\n * If some resources are taking a while to create, notify the user about what's currently in progress\n */\n printInProgress(progress) {\n if (!progress || Date.now() < this.lastPrintTime + this.inProgressDelay) {\n return;\n }\n if (Object.keys(this.resourcesInProgress).length > 0) {\n this.stream.write(util.format('%s Currently in progress: %s\\n', progress, chalk.bold(Object.keys(this.resourcesInProgress).join(', '))));\n }\n // We cheat a bit here. To prevent printInProgress() from repeatedly triggering,\n // we set the timestamp into the future. It will be reset whenever a regular print\n // occurs, after which we can be triggered again.\n this.lastPrintTime = +Infinity;\n }\n}\nexports.HistoryActivityPrinter = HistoryActivityPrinter;\nfunction colorFromStatusResult(status) {\n if (!status) {\n return chalk.reset;\n }\n if (status.indexOf('FAILED') !== -1) {\n return chalk.red;\n }\n if (status.indexOf('ROLLBACK') !== -1) {\n return chalk.yellow;\n }\n if (status.indexOf('COMPLETE') !== -1) {\n return chalk.green;\n }\n return chalk.reset;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFFN0MscUNBQXNDO0FBRXRDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwwQkFBbUI7SUFDN0Q7Ozs7T0FJRztJQUNLLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFM0IsV0FBVyxDQUFpQjtJQUVwQzs7T0FFRztJQUNjLGVBQWUsR0FBRyxNQUFNLENBQUM7SUFFekIsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFpQixDQUFDO0lBRXhELFlBQVksS0FBMkI7UUFDckMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUF1QjtRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxJQUFJO1FBQ1QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWIsNEJBQTRCO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUMzQyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEMsMENBQTBDO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUN4QyxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7SUFD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LEVBQUUsQ0FBQztRQUNwQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFjdGl2aXR5UHJpbnRlclByb3BzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFjdGl2aXR5UHJpbnRlckJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0FjdGl2aXR5IH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHsgcGFkUmlnaHQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBBY3Rpdml0eSBQcmludGVyIHdoaWNoIHNob3dzIGEgZnVsbCBsb2cgb2YgYWxsIENsb3VkRm9ybWF0aW9uIGV2ZW50c1xuICpcbiAqIFdoZW4gdGhlcmUgaGFzbid0IGJlZW4gYWN0aXZpdHkgZm9yIGEgd2hpbGUsIGl0IHdpbGwgcHJpbnQgdGhlIHJlc291cmNlc1xuICogdGhhdCBhcmUgY3VycmVudGx5IGluIHByb2dyZXNzLCB0byBzaG93IHdoYXQncyBob2xkaW5nIHVwIHRoZSBkZXBsb3ltZW50LlxuICovXG5leHBvcnQgY2xhc3MgSGlzdG9yeUFjdGl2aXR5UHJpbnRlciBleHRlbmRzIEFjdGl2aXR5UHJpbnRlckJhc2Uge1xuICAvKipcbiAgICogTGFzdCB0aW1lIHdlIHByaW50ZWQgc29tZXRoaW5nIHRvIHRoZSBjb25zb2xlLlxuICAgKlxuICAgKiBVc2VkIHRvIG1lYXN1cmUgdGltZW91dCBmb3IgcHJvZ3Jlc3MgcmVwb3J0aW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBsYXN0UHJpbnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICBwcml2YXRlIGxhc3RQcmludGVkPzogU3RhY2tBY3Rpdml0eTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1zIG9mIGNoYW5nZSBhYnNlbmNlIGJlZm9yZSB3ZSB0ZWxsIHRoZSB1c2VyIGFib3V0IHRoZSByZXNvdXJjZXMgdGhhdCBhcmUgY3VycmVudGx5IGluIHByb2dyZXNzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBpblByb2dyZXNzRGVsYXkgPSAzMF8wMDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcmludGFibGUgPSBuZXcgQXJyYXk8U3RhY2tBY3Rpdml0eT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQWN0aXZpdHlQcmludGVyUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHkoYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICB0aGlzLnByaW50YWJsZS5wdXNoKGFjdGl2aXR5KTtcbiAgICBzdXBlci5hY3Rpdml0eShhY3Rpdml0eSk7XG4gIH1cblxuICBwdWJsaWMgc3RvcCgpIHtcbiAgICBzdXBlci5zdG9wKCk7XG5cbiAgICAvLyBQcmludCBmYWlsdXJlcyBhdCB0aGUgZW5kXG4gICAgaWYgKHRoaXMuZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoJ1xcbkZhaWxlZCByZXNvdXJjZXM6XFxuJyk7XG4gICAgICBmb3IgKGNvbnN0IGZhaWx1cmUgb2YgdGhpcy5mYWlsdXJlcykge1xuICAgICAgICAvLyBSb290IHN0YWNrIGZhaWx1cmVzIGFyZSBub3QgaW50ZXJlc3RpbmdcbiAgICAgICAgaWYgKHRoaXMuaXNBY3Rpdml0eUZvclRoZVN0YWNrKGZhaWx1cmUpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByaW50T25lKGZhaWx1cmUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJpbnQoKSB7XG4gICAgZm9yIChjb25zdCBhY3Rpdml0eSBvZiB0aGlzLnByaW50YWJsZSkge1xuICAgICAgdGhpcy5wcmludE9uZShhY3Rpdml0eSk7XG4gICAgICB0aGlzLmxhc3RQcmludGVkID0gYWN0aXZpdHk7XG4gICAgfVxuICAgIHRoaXMucHJpbnRhYmxlLnNwbGljZSgwLCB0aGlzLnByaW50YWJsZS5sZW5ndGgpO1xuICAgIHRoaXMucHJpbnRJblByb2dyZXNzKHRoaXMubGFzdFByaW50ZWQ/LnByb2dyZXNzLmZvcm1hdHRlZCk7XG4gIH1cblxuICBwcml2YXRlIHByaW50T25lKGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5LCBwcm9ncmVzcz86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBldmVudCA9IGFjdGl2aXR5LmV2ZW50O1xuICAgIGNvbnN0IGNvbG9yID0gY29sb3JGcm9tU3RhdHVzUmVzdWx0KGV2ZW50LlJlc291cmNlU3RhdHVzKTtcbiAgICBsZXQgcmVhc29uQ29sb3IgPSBjaGFsay5jeWFuO1xuXG4gICAgbGV0IHN0YWNrVHJhY2UgPSAnJztcbiAgICBjb25zdCBtZXRhZGF0YSA9IGFjdGl2aXR5Lm1ldGFkYXRhO1xuXG4gICAgaWYgKGV2ZW50LlJlc291cmNlU3RhdHVzICYmIGV2ZW50LlJlc291cmNlU3RhdHVzLmluZGV4T2YoJ0ZBSUxFRCcpICE9PSAtMSkge1xuICAgICAgaWYgKHByb2dyZXNzID09IHVuZGVmaW5lZCB8fCBwcm9ncmVzcykge1xuICAgICAgICBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA9IGV2ZW50LlJlc291cmNlU3RhdHVzUmVhc29uID8gdGhpcy5mYWlsdXJlUmVhc29uKGFjdGl2aXR5KSA6ICcnO1xuICAgICAgfVxuICAgICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICAgIHN0YWNrVHJhY2UgPSBtZXRhZGF0YS5lbnRyeS50cmFjZSA/IGBcXG5cXHQke21ldGFkYXRhLmVudHJ5LnRyYWNlLmpvaW4oJ1xcblxcdFxcXFxfICcpfWAgOiAnJztcbiAgICAgIH1cbiAgICAgIHJlYXNvbkNvbG9yID0gY2hhbGsucmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IG1ldGFkYXRhID8gbWV0YWRhdGEuY29uc3RydWN0UGF0aCA6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkIHx8ICcnO1xuICAgIGNvbnN0IGxvZ2ljYWxJZCA9IHJlc291cmNlTmFtZSAhPT0gZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPyBgKCR7ZXZlbnQuTG9naWNhbFJlc291cmNlSWR9KSBgIDogJyc7XG5cbiAgICB0aGlzLnN0cmVhbS53cml0ZShcbiAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAnJXMgfCAlcyVzIHwgJXMgfCAlcyB8ICVzICVzJXMlc1xcbicsXG4gICAgICAgIGV2ZW50LlN0YWNrTmFtZSxcbiAgICAgICAgcHJvZ3Jlc3MgIT09IGZhbHNlID8gYCR7YWN0aXZpdHkucHJvZ3Jlc3MuZm9ybWF0dGVkfSB8IGAgOiAnJyxcbiAgICAgICAgbmV3IERhdGUoZXZlbnQuVGltZXN0YW1wISkudG9Mb2NhbGVUaW1lU3RyaW5nKCksXG4gICAgICAgIGNvbG9yKHBhZFJpZ2h0KEhpc3RvcnlBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRILCAoZXZlbnQuUmVzb3VyY2VTdGF0dXMgfHwgJycpLnNsaWNlKDAsIEhpc3RvcnlBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRIKSkpLCAvLyBwYWQgbGVmdCBhbmQgdHJpbVxuICAgICAgICBwYWRSaWdodCh0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoLCBldmVudC5SZXNvdXJjZVR5cGUgfHwgJycpLFxuICAgICAgICBjb2xvcihjaGFsay5ib2xkKHJlc291cmNlTmFtZSkpLFxuICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgIHJlYXNvbkNvbG9yKGNoYWxrLmJvbGQoZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gPyBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA6ICcnKSksXG4gICAgICAgIHJlYXNvbkNvbG9yKHN0YWNrVHJhY2UpLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgdGhpcy5sYXN0UHJpbnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBzb21lIHJlc291cmNlcyBhcmUgdGFraW5nIGEgd2hpbGUgdG8gY3JlYXRlLCBub3RpZnkgdGhlIHVzZXIgYWJvdXQgd2hhdCdzIGN1cnJlbnRseSBpbiBwcm9ncmVzc1xuICAgKi9cbiAgcHJpdmF0ZSBwcmludEluUHJvZ3Jlc3MocHJvZ3Jlc3M/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXByb2dyZXNzIHx8IERhdGUubm93KCkgPCB0aGlzLmxhc3RQcmludFRpbWUgKyB0aGlzLmluUHJvZ3Jlc3NEZWxheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnJlc291cmNlc0luUHJvZ3Jlc3MpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc3RyZWFtLndyaXRlKFxuICAgICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgICAnJXMgQ3VycmVudGx5IGluIHByb2dyZXNzOiAlc1xcbicsXG4gICAgICAgICAgcHJvZ3Jlc3MsXG4gICAgICAgICAgY2hhbGsuYm9sZChPYmplY3Qua2V5cyh0aGlzLnJlc291cmNlc0luUHJvZ3Jlc3MpLmpvaW4oJywgJykpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBXZSBjaGVhdCBhIGJpdCBoZXJlLiBUbyBwcmV2ZW50IHByaW50SW5Qcm9ncmVzcygpIGZyb20gcmVwZWF0ZWRseSB0cmlnZ2VyaW5nLFxuICAgIC8vIHdlIHNldCB0aGUgdGltZXN0YW1wIGludG8gdGhlIGZ1dHVyZS4gSXQgd2lsbCBiZSByZXNldCB3aGVuZXZlciBhIHJlZ3VsYXIgcHJpbnRcbiAgICAvLyBvY2N1cnMsIGFmdGVyIHdoaWNoIHdlIGNhbiBiZSB0cmlnZ2VyZWQgYWdhaW4uXG4gICAgdGhpcy5sYXN0UHJpbnRUaW1lID0gK0luZmluaXR5O1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbG9yRnJvbVN0YXR1c1Jlc3VsdChzdGF0dXM/OiBzdHJpbmcpIHtcbiAgaWYgKCFzdGF0dXMpIHtcbiAgICByZXR1cm4gY2hhbGsucmVzZXQ7XG4gIH1cblxuICBpZiAoc3RhdHVzLmluZGV4T2YoJ0ZBSUxFRCcpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay5yZWQ7XG4gIH1cbiAgaWYgKHN0YXR1cy5pbmRleE9mKCdST0xMQkFDSycpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gIH1cbiAgaWYgKHN0YXR1cy5pbmRleE9mKCdDT01QTEVURScpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay5ncmVlbjtcbiAgfVxuXG4gIHJldHVybiBjaGFsay5yZXNldDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./base\"), exports);\n__exportStar(require(\"./history\"), exports);\n__exportStar(require(\"./current\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVudCc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// This file needs to be imported as one of the first files in the library.\n// It polyfills some symbols that the new JavaScript \"Disposable\" API introduces.\n//\n// See \n//\n// In short, the new proposal is a `using`/`await using` statement, which will automatically\n// call methods named `[Symbol.dispose]` and `[Symbol.asyncDispose]` on objects.\n//\n// TypeScript knows about those symbols, and it will downlevel the `using` syntax to\n// plain JavaScript... but it doesn't define the Symbols themselves! They must exist\n// in the environment, or code defining objects using those Symbol names will fail.\n//\n// MDN doesn't even know that Node 22 has them already; for broadest compatibility,\n// we just polyfill them here. Their value doesn't matter, they just need to exist\n// and be unique symbols.\nSymbol.dispose ??= Symbol('Symbol.dispose');\nSymbol.asyncDispose ??= Symbol('Symbol.asyncDispose');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zZS1wb2x5ZmlsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3Bvc2UtcG9seWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyRUFBMkU7QUFDM0UsaUZBQWlGO0FBQ2pGLEVBQUU7QUFDRix1RkFBdUY7QUFDdkYsRUFBRTtBQUNGLDRGQUE0RjtBQUM1RixnRkFBZ0Y7QUFDaEYsRUFBRTtBQUNGLG9GQUFvRjtBQUNwRixvRkFBb0Y7QUFDcEYsbUZBQW1GO0FBQ25GLEVBQUU7QUFDRixtRkFBbUY7QUFDbkYsa0ZBQWtGO0FBQ2xGLHlCQUF5QjtBQUN4QixNQUFjLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3BELE1BQWMsQ0FBQyxZQUFZLEtBQUssTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgbmVlZHMgdG8gYmUgaW1wb3J0ZWQgYXMgb25lIG9mIHRoZSBmaXJzdCBmaWxlcyBpbiB0aGUgbGlicmFyeS5cbi8vIEl0IHBvbHlmaWxscyBzb21lIHN5bWJvbHMgdGhhdCB0aGUgbmV3IEphdmFTY3JpcHQgXCJEaXNwb3NhYmxlXCIgQVBJIGludHJvZHVjZXMuXG4vL1xuLy8gU2VlIDxodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9yZWxlYXNlLW5vdGVzL3R5cGVzY3JpcHQtNS0yLmh0bWw+XG4vL1xuLy8gSW4gc2hvcnQsIHRoZSBuZXcgcHJvcG9zYWwgaXMgYSBgdXNpbmdgL2Bhd2FpdCB1c2luZ2Agc3RhdGVtZW50LCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHlcbi8vIGNhbGwgbWV0aG9kcyBuYW1lZCBgW1N5bWJvbC5kaXNwb3NlXWAgYW5kIGBbU3ltYm9sLmFzeW5jRGlzcG9zZV1gIG9uIG9iamVjdHMuXG4vL1xuLy8gVHlwZVNjcmlwdCBrbm93cyBhYm91dCB0aG9zZSBzeW1ib2xzLCBhbmQgaXQgd2lsbCBkb3dubGV2ZWwgdGhlIGB1c2luZ2Agc3ludGF4IHRvXG4vLyBwbGFpbiBKYXZhU2NyaXB0Li4uIGJ1dCBpdCBkb2Vzbid0IGRlZmluZSB0aGUgU3ltYm9scyB0aGVtc2VsdmVzISBUaGV5IG11c3QgZXhpc3Rcbi8vIGluIHRoZSBlbnZpcm9ubWVudCwgb3IgY29kZSBkZWZpbmluZyBvYmplY3RzIHVzaW5nIHRob3NlIFN5bWJvbCBuYW1lcyB3aWxsIGZhaWwuXG4vL1xuLy8gTUROIGRvZXNuJ3QgZXZlbiBrbm93IHRoYXQgTm9kZSAyMiBoYXMgdGhlbSBhbHJlYWR5OyBmb3IgYnJvYWRlc3QgY29tcGF0aWJpbGl0eSxcbi8vIHdlIGp1c3QgcG9seWZpbGwgdGhlbSBoZXJlLiBUaGVpciB2YWx1ZSBkb2Vzbid0IG1hdHRlciwgdGhleSBqdXN0IG5lZWQgdG8gZXhpc3Rcbi8vIGFuZCBiZSB1bmlxdWUgc3ltYm9scy5cbihTeW1ib2wgYXMgYW55KS5kaXNwb3NlID8/PSBTeW1ib2woJ1N5bWJvbC5kaXNwb3NlJyk7XG4oU3ltYm9sIGFzIGFueSkuYXN5bmNEaXNwb3NlID8/PSBTeW1ib2woJ1N5bWJvbC5hc3luY0Rpc3Bvc2UnKTtcbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./toolkit\"), exports);\n__exportStar(require(\"./non-interactive-io-host\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDREQUEwQztBQUMxQywwQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rvb2xraXQnO1xuZXhwb3J0ICogZnJvbSAnLi9ub24taW50ZXJhY3RpdmUtaW8taG9zdCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonInteractiveIoHost = void 0;\nconst chalk = require(\"chalk\");\nconst private_1 = require(\"../api/io/private\");\nconst activity_printer_1 = require(\"../private/activity-printer\");\nconst shell_env_1 = require(\"../util/shell-env\");\n/**\n * A simple IO host for a non interactive CLI that writes messages to the console and returns the default answer to all requests.\n */\nclass NonInteractiveIoHost {\n /**\n * Whether the IoHost is running in CI mode.\n *\n * In CI mode, all non-error output goes to stdout instead of stderr.\n */\n isCI;\n /**\n * Whether the host can use interactions and message styling.\n */\n isTTY;\n /**\n * The current threshold.\n *\n * Messages with a lower priority level will be ignored.\n */\n logLevel;\n // Stack Activity Printer\n activityPrinter;\n constructor(props = {}) {\n this.logLevel = props.logLevel ?? 'info';\n this.isTTY = props.isTTY ?? (0, shell_env_1.isTTY)();\n this.isCI = props.isCI ?? (0, shell_env_1.isCI)();\n this.activityPrinter = new activity_printer_1.HistoryActivityPrinter({\n stream: this.selectStreamFromLevel('info'),\n });\n }\n /**\n * Notifies the host of a message.\n * The caller waits until the notification completes.\n */\n async notify(msg) {\n if (isStackActivity(msg)) {\n return this.activityPrinter.notify(msg);\n }\n if (!(0, private_1.isMessageRelevantForLevel)(msg, this.logLevel)) {\n return;\n }\n const output = this.formatMessage(msg);\n const stream = this.selectStream(msg);\n stream?.write(output);\n }\n /**\n * Determines the output stream, based on message and configuration.\n */\n selectStream(msg) {\n return this.selectStreamFromLevel(msg.level);\n }\n /**\n * Determines the output stream, based on message level and configuration.\n */\n selectStreamFromLevel(level) {\n // The stream selection policy for the CLI is the following:\n //\n // (1) Messages of level `result` always go to `stdout`\n // (2) Messages of level `error` always go to `stderr`.\n // (3a) All remaining messages go to `stderr`.\n // (3b) If we are in CI mode, all remaining messages go to `stdout`.\n //\n switch (level) {\n case 'error':\n return process.stderr;\n case 'result':\n return process.stdout;\n default:\n return this.isCI ? process.stdout : process.stderr;\n }\n }\n /**\n * Notifies the host of a message that requires a response.\n *\n * If the host does not return a response the suggested\n * default response from the input message will be used.\n */\n async requestResponse(msg) {\n // in the non-interactive IoHost, no requests are promptable\n await this.notify(msg);\n return msg.defaultResponse;\n }\n /**\n * Formats a message for console output with optional color support\n */\n formatMessage(msg) {\n // apply provided style or a default style if we're in TTY mode\n let message_text = this.isTTY\n ? styleMap[msg.level](msg.message)\n : msg.message;\n // prepend timestamp if IoMessageLevel is DEBUG or TRACE. Postpend a newline.\n return ((msg.level === 'debug' || msg.level === 'trace')\n ? `[${this.formatTime(msg.time)}] ${message_text}`\n : message_text) + '\\n';\n }\n /**\n * Formats date to HH:MM:SS\n */\n formatTime(d) {\n const pad = (n) => n.toString().padStart(2, '0');\n return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\n }\n}\nexports.NonInteractiveIoHost = NonInteractiveIoHost;\nconst styleMap = {\n error: chalk.red,\n warn: chalk.yellow,\n result: chalk.reset,\n info: chalk.reset,\n debug: chalk.gray,\n trace: chalk.gray,\n};\n/**\n * Detect stack activity messages so they can be send to the printer.\n */\nfunction isStackActivity(msg) {\n return msg.code && [\n 'CDK_TOOLKIT_I5501',\n 'CDK_TOOLKIT_I5502',\n 'CDK_TOOLKIT_I5503',\n ].includes(msg.code);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uLWludGVyYWN0aXZlLWlvLWhvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJub24taW50ZXJhY3RpdmUtaW8taG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFFL0IsK0NBQThEO0FBQzlELGtFQUE0RjtBQUM1RixpREFBZ0Q7QUFpQ2hEOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFDL0I7Ozs7T0FJRztJQUNhLElBQUksQ0FBVTtJQUU5Qjs7T0FFRztJQUNhLEtBQUssQ0FBVTtJQUUvQjs7OztPQUlHO0lBQ2EsUUFBUSxDQUFpQjtJQUV6Qyx5QkFBeUI7SUFDUixlQUFlLENBQW1CO0lBRW5ELFlBQW1CLFFBQW1DLEVBQUU7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBQSxpQkFBSyxHQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUEsZ0JBQUksR0FBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSx5Q0FBc0IsQ0FBQztZQUNoRCxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUF1QjtRQUN6QyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFBLG1DQUF5QixFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FB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Q25CLG1CQUFtQjtLQUNwQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgSUlvSG9zdCwgSW9NZXNzYWdlLCBJb01lc3NhZ2VMZXZlbCwgSW9SZXF1ZXN0IH0gZnJvbSAnLi4vYXBpL2lvJztcbmltcG9ydCB7IGlzTWVzc2FnZVJlbGV2YW50Rm9yTGV2ZWwgfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBIaXN0b3J5QWN0aXZpdHlQcmludGVyLCB0eXBlIElBY3Rpdml0eVByaW50ZXIgfSBmcm9tICcuLi9wcml2YXRlL2FjdGl2aXR5LXByaW50ZXInO1xuaW1wb3J0IHsgaXNDSSwgaXNUVFkgfSBmcm9tICcuLi91dGlsL3NoZWxsLWVudic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9uSW50ZXJhY3RpdmVJb0hvc3RQcm9wcyB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSB2ZXJib3NpdHkgb2YgdGhlIG91dHB1dC5cbiAgICpcbiAgICogVGhlIElvSG9zdCB3aWxsIHN0aWxsIHJlY2VpdmUgYWxsIG1lc3NhZ2VzIGFuZCByZXF1ZXN0cyxcbiAgICogYnV0IG9ubHkgdGhlIG1lc3NhZ2VzIGluY2x1ZGVkIGluIHRoaXMgbGV2ZWwgd2lsbCBiZSBwcmludGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnaW5mbydcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogSW9NZXNzYWdlTGV2ZWw7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgYXV0b21hdGljIFRUWSBkZXRlY3Rpb24uXG4gICAqXG4gICAqIFdoZW4gVFRZIGlzIGRpc2FibGVkLCB0aGUgQ0xJIHdpbGwgaGF2ZSBubyBpbnRlcmFjdGlvbnMgb3IgY29sb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGV0ZXJtaW5lZCBmcm9tIHRoZSBjdXJyZW50IHByb2Nlc3NcbiAgICovXG4gIHJlYWRvbmx5IGlzVFRZPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgSW9Ib3N0IGlzIHJ1bm5pbmcgaW4gQ0kgbW9kZS5cbiAgICpcbiAgICogSW4gQ0kgbW9kZSwgYWxsIG5vbi1lcnJvciBvdXRwdXQgZ29lcyB0byBzdGRvdXQgaW5zdGVhZCBvZiBzdGRlcnIuXG4gICAqIFNldCB0byBmYWxzZSBpbiB0aGUgSW9Ib3N0IGNvbnN0cnVjdG9yIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIENMSSBDSSBhcmd1bWVudCBpcyBwYXNzZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXRlcm1pbmVkIGZyb20gdGhlIGVudmlyb25tZW50LCBzcGVjaWZpY2FsbHkgYmFzZWQgb24gYHByb2Nlc3MuZW52LkNJYFxuICAgKi9cbiAgcmVhZG9ubHkgaXNDST86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBzaW1wbGUgSU8gaG9zdCBmb3IgYSBub24gaW50ZXJhY3RpdmUgQ0xJIHRoYXQgd3JpdGVzIG1lc3NhZ2VzIHRvIHRoZSBjb25zb2xlIGFuZCByZXR1cm5zIHRoZSBkZWZhdWx0IGFuc3dlciB0byBhbGwgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb25JbnRlcmFjdGl2ZUlvSG9zdCBpbXBsZW1lbnRzIElJb0hvc3Qge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgSW9Ib3N0IGlzIHJ1bm5pbmcgaW4gQ0kgbW9kZS5cbiAgICpcbiAgICogSW4gQ0kgbW9kZSwgYWxsIG5vbi1lcnJvciBvdXRwdXQgZ29lcyB0byBzdGRvdXQgaW5zdGVhZCBvZiBzdGRlcnIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXNDSTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaG9zdCBjYW4gdXNlIGludGVyYWN0aW9ucyBhbmQgbWVzc2FnZSBzdHlsaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlzVFRZOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB0aHJlc2hvbGQuXG4gICAqXG4gICAqIE1lc3NhZ2VzIHdpdGggYSBsb3dlciBwcmlvcml0eSBsZXZlbCB3aWxsIGJlIGlnbm9yZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nTGV2ZWw6IElvTWVzc2FnZUxldmVsO1xuXG4gIC8vIFN0YWNrIEFjdGl2aXR5IFByaW50ZXJcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVByaW50ZXI6IElBY3Rpdml0eVByaW50ZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBOb25JbnRlcmFjdGl2ZUlvSG9zdFByb3BzID0ge30pIHtcbiAgICB0aGlzLmxvZ0xldmVsID0gcHJvcHMubG9nTGV2ZWwgPz8gJ2luZm8nO1xuICAgIHRoaXMuaXNUVFkgPSBwcm9wcy5pc1RUWSA/PyBpc1RUWSgpO1xuICAgIHRoaXMuaXNDSSA9IHByb3BzLmlzQ0kgPz8gaXNDSSgpO1xuXG4gICAgdGhpcy5hY3Rpdml0eVByaW50ZXIgPSBuZXcgSGlzdG9yeUFjdGl2aXR5UHJpbnRlcih7XG4gICAgICBzdHJlYW06IHRoaXMuc2VsZWN0U3RyZWFtRnJvbUxldmVsKCdpbmZvJyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlLlxuICAgKiBUaGUgY2FsbGVyIHdhaXRzIHVudGlsIHRoZSBub3RpZmljYXRpb24gY29tcGxldGVzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG5vdGlmeShtc2c6IElvTWVzc2FnZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpc1N0YWNrQWN0aXZpdHkobXNnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlQcmludGVyLm5vdGlmeShtc2cpO1xuICAgIH1cblxuICAgIGlmICghaXNNZXNzYWdlUmVsZXZhbnRGb3JMZXZlbChtc2csIHRoaXMubG9nTGV2ZWwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0ID0gdGhpcy5mb3JtYXRNZXNzYWdlKG1zZyk7XG4gICAgY29uc3Qgc3RyZWFtID0gdGhpcy5zZWxlY3RTdHJlYW0obXNnKTtcbiAgICBzdHJlYW0/LndyaXRlKG91dHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgb3V0cHV0IHN0cmVhbSwgYmFzZWQgb24gbWVzc2FnZSBhbmQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgc2VsZWN0U3RyZWFtKG1zZzogSW9NZXNzYWdlPGFueT4pOiBOb2RlSlMuV3JpdGVTdHJlYW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdFN0cmVhbUZyb21MZXZlbChtc2cubGV2ZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG91dHB1dCBzdHJlYW0sIGJhc2VkIG9uIG1lc3NhZ2UgbGV2ZWwgYW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNlbGVjdFN0cmVhbUZyb21MZXZlbChsZXZlbDogSW9NZXNzYWdlTGV2ZWwpOiBOb2RlSlMuV3JpdGVTdHJlYW0ge1xuICAgIC8vIFRoZSBzdHJlYW0gc2VsZWN0aW9uIHBvbGljeSBmb3IgdGhlIENMSSBpcyB0aGUgZm9sbG93aW5nOlxuICAgIC8vXG4gICAgLy8gICAoMSkgTWVzc2FnZXMgb2YgbGV2ZWwgYHJlc3VsdGAgYWx3YXlzIGdvIHRvIGBzdGRvdXRgXG4gICAgLy8gICAoMikgTWVzc2FnZXMgb2YgbGV2ZWwgYGVycm9yYCBhbHdheXMgZ28gdG8gYHN0ZGVycmAuXG4gICAgLy8gICAoM2EpIEFsbCByZW1haW5pbmcgbWVzc2FnZXMgZ28gdG8gYHN0ZGVycmAuXG4gICAgLy8gICAoM2IpIElmIHdlIGFyZSBpbiBDSSBtb2RlLCBhbGwgcmVtYWluaW5nIG1lc3NhZ2VzIGdvIHRvIGBzdGRvdXRgLlxuICAgIC8vXG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gcHJvY2Vzcy5zdGRlcnI7XG4gICAgICBjYXNlICdyZXN1bHQnOlxuICAgICAgICByZXR1cm4gcHJvY2Vzcy5zdGRvdXQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5pc0NJID8gcHJvY2Vzcy5zdGRvdXQgOiBwcm9jZXNzLnN0ZGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlIHRoYXQgcmVxdWlyZXMgYSByZXNwb25zZS5cbiAgICpcbiAgICogSWYgdGhlIGhvc3QgZG9lcyBub3QgcmV0dXJuIGEgcmVzcG9uc2UgdGhlIHN1Z2dlc3RlZFxuICAgKiBkZWZhdWx0IHJlc3BvbnNlIGZyb20gdGhlIGlucHV0IG1lc3NhZ2Ugd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlcXVlc3RSZXNwb25zZTxEYXRhVHlwZSwgUmVzcG9uc2VUeXBlPihtc2c6IElvUmVxdWVzdDxEYXRhVHlwZSwgUmVzcG9uc2VUeXBlPik6IFByb21pc2U8UmVzcG9uc2VUeXBlPiB7XG4gICAgLy8gaW4gdGhlIG5vbi1pbnRlcmFjdGl2ZSBJb0hvc3QsIG5vIHJlcXVlc3RzIGFyZSBwcm9tcHRhYmxlXG4gICAgYXdhaXQgdGhpcy5ub3RpZnkobXNnKTtcbiAgICByZXR1cm4gbXNnLmRlZmF1bHRSZXNwb25zZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgbWVzc2FnZSBmb3IgY29uc29sZSBvdXRwdXQgd2l0aCBvcHRpb25hbCBjb2xvciBzdXBwb3J0XG4gICAqL1xuICBwcml2YXRlIGZvcm1hdE1lc3NhZ2UobXNnOiBJb01lc3NhZ2U8dW5rbm93bj4pOiBzdHJpbmcge1xuICAgIC8vIGFwcGx5IHByb3ZpZGVkIHN0eWxlIG9yIGEgZGVmYXVsdCBzdHlsZSBpZiB3ZSdyZSBpbiBUVFkgbW9kZVxuICAgIGxldCBtZXNzYWdlX3RleHQgPSB0aGlzLmlzVFRZXG4gICAgICA/IHN0eWxlTWFwW21zZy5sZXZlbF0obXNnLm1lc3NhZ2UpXG4gICAgICA6IG1zZy5tZXNzYWdlO1xuXG4gICAgLy8gcHJlcGVuZCB0aW1lc3RhbXAgaWYgSW9NZXNzYWdlTGV2ZWwgaXMgREVCVUcgb3IgVFJBQ0UuIFBvc3RwZW5kIGEgbmV3bGluZS5cbiAgICByZXR1cm4gKChtc2cubGV2ZWwgPT09ICdkZWJ1ZycgfHwgbXNnLmxldmVsID09PSAndHJhY2UnKVxuICAgICAgPyBgWyR7dGhpcy5mb3JtYXRUaW1lKG1zZy50aW1lKX1dICR7bWVzc2FnZV90ZXh0fWBcbiAgICAgIDogbWVzc2FnZV90ZXh0KSArICdcXG4nO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgZGF0ZSB0byBISDpNTTpTU1xuICAgKi9cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKGQ6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhZCA9IChuOiBudW1iZXIpOiBzdHJpbmcgPT4gbi50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgcmV0dXJuIGAke3BhZChkLmdldEhvdXJzKCkpfToke3BhZChkLmdldE1pbnV0ZXMoKSl9OiR7cGFkKGQuZ2V0U2Vjb25kcygpKX1gO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlTWFwOiBSZWNvcmQ8SW9NZXNzYWdlTGV2ZWwsIChzdHI6IHN0cmluZykgPT4gc3RyaW5nPiA9IHtcbiAgZXJyb3I6IGNoYWxrLnJlZCxcbiAgd2FybjogY2hhbGsueWVsbG93LFxuICByZXN1bHQ6IGNoYWxrLnJlc2V0LFxuICBpbmZvOiBjaGFsay5yZXNldCxcbiAgZGVidWc6IGNoYWxrLmdyYXksXG4gIHRyYWNlOiBjaGFsay5ncmF5LFxufTtcblxuLyoqXG4gKiBEZXRlY3Qgc3RhY2sgYWN0aXZpdHkgbWVzc2FnZXMgc28gdGhleSBjYW4gYmUgc2VuZCB0byB0aGUgcHJpbnRlci5cbiAqL1xuZnVuY3Rpb24gaXNTdGFja0FjdGl2aXR5KG1zZzogSW9NZXNzYWdlPHVua25vd24+KSB7XG4gIHJldHVybiBtc2cuY29kZSAmJiBbXG4gICAgJ0NES19UT09MS0lUX0k1NTAxJyxcbiAgICAnQ0RLX1RPT0xLSVRfSTU1MDInLFxuICAgICdDREtfVE9PTEtJVF9JNTUwMycsXG4gIF0uaW5jbHVkZXMobXNnLmNvZGUpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.countAssemblyResults = countAssemblyResults;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nfunction countAssemblyResults(span, assembly) {\n const stacksRecursively = assembly.stacksRecursively;\n span.incCounter('stacks', stacksRecursively.length);\n span.incCounter('assemblies', asmCount(assembly));\n span.incCounter('errorAnns', sum(stacksRecursively.map(s => s.messages.filter(m => m.level === cloud_assembly_api_1.SynthesisMessageLevel.ERROR).length)));\n span.incCounter('warnings', sum(stacksRecursively.map(s => s.messages.filter(m => m.level === cloud_assembly_api_1.SynthesisMessageLevel.WARNING).length)));\n const annotationErrorCodes = stacksRecursively\n .flatMap(s => Object.values(s.metadata)\n .flatMap(ms => ms.filter(m => m.type === ANNOTATION_ERROR_CODE_TYPE)));\n for (const annotationErrorCode of annotationErrorCodes) {\n span.incCounter(`errorAnn:${annotationErrorCode.data}`);\n }\n function asmCount(x) {\n return 1 + x.nestedAssemblies.reduce((acc, asm) => acc + asmCount(asm.nestedAssembly), 0);\n }\n}\nfunction sum(xs) {\n return xs.reduce((a, b) => a + b, 0);\n}\n/**\n * Well-known and agreed-upon value between aws-cdk-lib and the toolkit\n *\n * Do not change, obviously.\n */\nconst ANNOTATION_ERROR_CODE_TYPE = 'aws:cdk:error-code';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtYXNzZW1ibHktcmVzdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvdW50LWFzc2VtYmx5LXJlc3VsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxvREFpQkM7QUFwQkQsb0VBQW9FO0FBR3BFLFNBQWdCLG9CQUFvQixDQUFDLElBQXVCLEVBQUUsUUFBNkI7SUFDekYsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUM7SUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSywwQ0FBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSywwQ0FBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkksTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUI7U0FDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3BDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNFLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxTQUFTLFFBQVEsQ0FBQyxDQUFzQjtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxFQUFZO0lBQ3ZCLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLDBCQUEwQixHQUFHLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgU3ludGhlc2lzTWVzc2FnZUxldmVsIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgSU1lc3NhZ2VTcGFuIH0gZnJvbSAnLi4vLi4vYXBpL2lvL3ByaXZhdGUvc3Bhbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3VudEFzc2VtYmx5UmVzdWx0cyhzcGFuOiBJTWVzc2FnZVNwYW48YW55PiwgYXNzZW1ibHk6IGN4YXBpLkNsb3VkQXNzZW1ibHkpIHtcbiAgY29uc3Qgc3RhY2tzUmVjdXJzaXZlbHkgPSBhc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseTtcbiAgc3Bhbi5pbmNDb3VudGVyKCdzdGFja3MnLCBzdGFja3NSZWN1cnNpdmVseS5sZW5ndGgpO1xuICBzcGFuLmluY0NvdW50ZXIoJ2Fzc2VtYmxpZXMnLCBhc21Db3VudChhc3NlbWJseSkpO1xuICBzcGFuLmluY0NvdW50ZXIoJ2Vycm9yQW5ucycsIHN1bShzdGFja3NSZWN1cnNpdmVseS5tYXAocyA9PiBzLm1lc3NhZ2VzLmZpbHRlcihtID0+IG0ubGV2ZWwgPT09IFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5FUlJPUikubGVuZ3RoKSkpO1xuICBzcGFuLmluY0NvdW50ZXIoJ3dhcm5pbmdzJywgc3VtKHN0YWNrc1JlY3Vyc2l2ZWx5Lm1hcChzID0+IHMubWVzc2FnZXMuZmlsdGVyKG0gPT4gbS5sZXZlbCA9PT0gU3ludGhlc2lzTWVzc2FnZUxldmVsLldBUk5JTkcpLmxlbmd0aCkpKTtcblxuICBjb25zdCBhbm5vdGF0aW9uRXJyb3JDb2RlcyA9IHN0YWNrc1JlY3Vyc2l2ZWx5XG4gICAgLmZsYXRNYXAocyA9PiBPYmplY3QudmFsdWVzKHMubWV0YWRhdGEpXG4gICAgICAuZmxhdE1hcChtcyA9PiBtcy5maWx0ZXIobSA9PiBtLnR5cGUgPT09IEFOTk9UQVRJT05fRVJST1JfQ09ERV9UWVBFKSkpO1xuICBmb3IgKGNvbnN0IGFubm90YXRpb25FcnJvckNvZGUgb2YgYW5ub3RhdGlvbkVycm9yQ29kZXMpIHtcbiAgICBzcGFuLmluY0NvdW50ZXIoYGVycm9yQW5uOiR7YW5ub3RhdGlvbkVycm9yQ29kZS5kYXRhfWApO1xuICB9XG5cbiAgZnVuY3Rpb24gYXNtQ291bnQoeDogY3hhcGkuQ2xvdWRBc3NlbWJseSk6IG51bWJlciB7XG4gICAgcmV0dXJuIDEgKyB4Lm5lc3RlZEFzc2VtYmxpZXMucmVkdWNlKChhY2MsIGFzbSkgPT4gYWNjICsgYXNtQ291bnQoYXNtLm5lc3RlZEFzc2VtYmx5KSwgMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VtKHhzOiBudW1iZXJbXSkge1xuICByZXR1cm4geHMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCk7XG59XG5cbi8qKlxuICogV2VsbC1rbm93biBhbmQgYWdyZWVkLXVwb24gdmFsdWUgYmV0d2VlbiBhd3MtY2RrLWxpYiBhbmQgdGhlIHRvb2xraXRcbiAqXG4gKiBEbyBub3QgY2hhbmdlLCBvYnZpb3VzbHkuXG4gKi9cbmNvbnN0IEFOTk9UQVRJT05fRVJST1JfQ09ERV9UWVBFID0gJ2F3czpjZGs6ZXJyb3ItY29kZSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assemblyFromSource = assemblyFromSource;\nconst cloud_assembly_1 = require(\"../../api/cloud-assembly\");\nconst private_1 = require(\"../../api/cloud-assembly/private\");\n/**\n * Creates a Toolkit internal CloudAssembly from a CloudAssemblySource.\n *\n * The caller assumes ownership of the returned `StackAssembly`, and `dispose()`\n * should be called on this object after use.\n *\n * @param assemblySource - the source for the cloud assembly\n * @param cache - if the assembly should be cached, default: `true`\n * @returns the CloudAssembly object\n */\nasync function assemblyFromSource(ioHelper, assemblySource, cache = true) {\n if (assemblySource instanceof private_1.StackAssembly) {\n return assemblySource;\n }\n if (cache) {\n return new private_1.StackAssembly(new cloud_assembly_1.CachedCloudAssembly(await assemblySource.produce()), ioHelper);\n }\n return new private_1.StackAssembly(await assemblySource.produce(), ioHelper);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBCQSxnREFVQztBQWxDRCw2REFBMEY7QUFDMUYsOERBQWlFO0FBYWpFOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxRQUFrQixFQUFFLGNBQW9DLEVBQUUsUUFBaUIsSUFBSTtJQUN0SCxJQUFJLGNBQWMsWUFBWSx1QkFBYSxFQUFFLENBQUM7UUFDNUMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLElBQUksdUJBQWEsQ0FBQyxJQUFJLG9DQUFtQixDQUFDLE1BQU0sY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELE9BQU8sSUFBSSx1QkFBYSxDQUFDLE1BQU0sY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBDYWNoZWRDbG91ZEFzc2VtYmx5LCB0eXBlIElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IFN0YWNrQXNzZW1ibHkgfSBmcm9tICcuLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ib3N0IH0gZnJvbSAnLi4vLi4vYXBpL3BsdWdpbic7XG5cbi8qKlxuICogSGVscGVyIHN0cnVjdCB0byBwYXNzIGludGVybmFsIHNlcnZpY2VzIGFyb3VuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sa2l0U2VydmljZXMge1xuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG4gIGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcGx1Z2luSG9zdDogUGx1Z2luSG9zdDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgVG9vbGtpdCBpbnRlcm5hbCBDbG91ZEFzc2VtYmx5IGZyb20gYSBDbG91ZEFzc2VtYmx5U291cmNlLlxuICpcbiAqIFRoZSBjYWxsZXIgYXNzdW1lcyBvd25lcnNoaXAgb2YgdGhlIHJldHVybmVkIGBTdGFja0Fzc2VtYmx5YCwgYW5kIGBkaXNwb3NlKClgXG4gKiBzaG91bGQgYmUgY2FsbGVkIG9uIHRoaXMgb2JqZWN0IGFmdGVyIHVzZS5cbiAqXG4gKiBAcGFyYW0gYXNzZW1ibHlTb3VyY2UgLSB0aGUgc291cmNlIGZvciB0aGUgY2xvdWQgYXNzZW1ibHlcbiAqIEBwYXJhbSBjYWNoZSAtIGlmIHRoZSBhc3NlbWJseSBzaG91bGQgYmUgY2FjaGVkLCBkZWZhdWx0OiBgdHJ1ZWBcbiAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZW1ibHlGcm9tU291cmNlKGlvSGVscGVyOiBJb0hlbHBlciwgYXNzZW1ibHlTb3VyY2U6IElDbG91ZEFzc2VtYmx5U291cmNlLCBjYWNoZTogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPFN0YWNrQXNzZW1ibHk+IHtcbiAgaWYgKGFzc2VtYmx5U291cmNlIGluc3RhbmNlb2YgU3RhY2tBc3NlbWJseSkge1xuICAgIHJldHVybiBhc3NlbWJseVNvdXJjZTtcbiAgfVxuXG4gIGlmIChjYWNoZSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tBc3NlbWJseShuZXcgQ2FjaGVkQ2xvdWRBc3NlbWJseShhd2FpdCBhc3NlbWJseVNvdXJjZS5wcm9kdWNlKCkpLCBpb0hlbHBlcik7XG4gIH1cblxuICByZXR1cm4gbmV3IFN0YWNrQXNzZW1ibHkoYXdhaXQgYXNzZW1ibHlTb3VyY2UucHJvZHVjZSgpLCBpb0hlbHBlcik7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeploymentErrorCodes = exports.NoResultsFoundError = exports.ContextProviderError = exports.DeploymentError = exports.AssemblyError = exports.AuthenticationError = exports.ToolkitError = void 0;\nconst TOOLKIT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ToolkitError');\nconst AUTHENTICATION_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AuthenticationError');\nconst DEPLOYMENT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.DeploymentError');\nconst ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AssemblyError');\nconst CONTEXT_PROVIDER_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ContextProviderError');\nconst NO_RESULTS_FOUND_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.NoResultsFoundError');\n/**\n * Represents a general toolkit error in the AWS CDK Toolkit.\n */\nclass ToolkitError extends Error {\n /**\n * Determines if a given error is an instance of ToolkitError.\n */\n static isToolkitError(x) {\n return x !== null && typeof (x) === 'object' && TOOLKIT_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of AuthenticationError.\n */\n static isAuthenticationError(x) {\n return ToolkitError.isToolkitError(x) && AUTHENTICATION_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of DeploymentError.\n */\n static isDeploymentError(x) {\n return ToolkitError.isToolkitError(x) && DEPLOYMENT_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of AssemblyError.\n */\n static isAssemblyError(x) {\n return ToolkitError.isToolkitError(x) && ASSEMBLY_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of ContextProviderError.\n */\n static isContextProviderError(x) {\n return ToolkitError.isToolkitError(x) && CONTEXT_PROVIDER_ERROR_SYMBOL in x;\n }\n /**\n * A ToolkitError with an original error as cause\n */\n static withCause(errorCode, message, error) {\n return new ToolkitError(errorCode, message, 'toolkit', error);\n }\n /**\n * The type of the error, defaults to \"toolkit\".\n */\n type;\n /**\n * Denotes the source of the error as the toolkit.\n */\n source;\n /**\n * The specific original cause of the error, if available\n */\n cause;\n constructor(errorCode, message, type = 'toolkit', cause) {\n super(message);\n this.name = errorCode;\n Object.setPrototypeOf(this, ToolkitError.prototype);\n Object.defineProperty(this, TOOLKIT_ERROR_SYMBOL, { value: true });\n this.type = type;\n this.source = 'toolkit';\n this.cause = cause;\n }\n}\nexports.ToolkitError = ToolkitError;\n/**\n * Represents an authentication-specific error in the AWS CDK Toolkit.\n */\nclass AuthenticationError extends ToolkitError {\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n constructor(errorCode, message) {\n super(errorCode, message, 'authentication');\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n Object.defineProperty(this, AUTHENTICATION_ERROR_SYMBOL, { value: true });\n }\n}\nexports.AuthenticationError = AuthenticationError;\n/**\n * Represents an error causes by cloud assembly synthesis\n *\n * This includes errors thrown during app execution, as well as failing annotations.\n */\nclass AssemblyError extends ToolkitError {\n /**\n * An AssemblyError with an original error as cause\n */\n static withCause(message, error) {\n return new AssemblyError(message, undefined, error);\n }\n /**\n * An AssemblyError with a list of stacks as cause\n */\n static withStacks(message, stacks) {\n return new AssemblyError(message, stacks);\n }\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n /**\n * The stacks that caused the error, if available\n *\n * The `messages` property of each `cxapi.CloudFormationStackArtifact` will contain the respective errors.\n * Absence indicates synthesis didn't fully complete.\n */\n stacks;\n _synthErrorCode;\n constructor(message, stacks, cause) {\n super('AssemblyError', message, 'assembly', cause);\n Object.setPrototypeOf(this, AssemblyError.prototype);\n Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });\n this.stacks = stacks;\n }\n /**\n * The synthesis error code\n */\n get synthErrorCode() {\n return this._synthErrorCode;\n }\n attachSynthesisErrorCode(synthesisErrorCode) {\n this._synthErrorCode = synthesisErrorCode;\n }\n}\nexports.AssemblyError = AssemblyError;\n/**\n * Represents a deployment-related error in the AWS CDK Toolkit.\n */\nclass DeploymentError extends ToolkitError {\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n deploymentErrorCode;\n constructor(message, deploymentErrorCode) {\n super('DeploymentError', message, 'deployment');\n Object.setPrototypeOf(this, DeploymentError.prototype);\n Object.defineProperty(this, DEPLOYMENT_ERROR_SYMBOL, { value: true });\n this.deploymentErrorCode = deploymentErrorCode;\n }\n}\nexports.DeploymentError = DeploymentError;\n/**\n * Represents an error originating from a Context Provider\n */\nclass ContextProviderError extends ToolkitError {\n /**\n * Determines if a given error is an instance of NoResultsFoundError.\n */\n static isNoResultsFoundError(x) {\n return ToolkitError.isContextProviderError(x) && NO_RESULTS_FOUND_ERROR_SYMBOL in x;\n }\n /**\n * A ContextProviderError with an original error as cause\n */\n static withCause(errorCode, message, error) {\n return new ContextProviderError(errorCode, message, error);\n }\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n constructor(errorCode, message, cause) {\n super(errorCode, message, 'context-provider', cause);\n Object.setPrototypeOf(this, ContextProviderError.prototype);\n Object.defineProperty(this, CONTEXT_PROVIDER_ERROR_SYMBOL, { value: true });\n }\n}\nexports.ContextProviderError = ContextProviderError;\n/**\n * A specific context provider lookup failure indicating no results where found for a context query\n */\nclass NoResultsFoundError extends ContextProviderError {\n constructor(message) {\n super('NoResultsFound', message);\n Object.setPrototypeOf(this, NoResultsFoundError.prototype);\n Object.defineProperty(this, NO_RESULTS_FOUND_ERROR_SYMBOL, { value: true });\n }\n}\nexports.NoResultsFoundError = NoResultsFoundError;\nclass DeploymentErrorCodes {\n static STACK_DISAPPEARED_ERROR_CODE = 'StackDisappeared';\n static UNKNOWN_ERROR = 'UnknownError';\n static PRIVATE_RESOURCE_ERROR = 'PrivateResourceError';\n}\nexports.DeploymentErrorCodes = DeploymentErrorCodes;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDN0UsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDM0YsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7QUFDbkYsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDL0UsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFDOUYsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFFN0Y7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxLQUFLO0lBQ3JDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFNO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLG9CQUFvQixJQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBTTtRQUN4QyxPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFNO1FBQ3BDLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSx1QkFBdUIsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztP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R0FBRyxNQUFNLENBQUM7SUFFaEMsWUFBWSxTQUFpQixFQUFFLE9BQWUsRUFBRSxLQUFlO1FBQzdELEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGO0FBekJELG9EQXlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxvQkFBb0I7SUFDM0QsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQU5ELGtEQU1DO0FBRUQsTUFBc0Isb0JBQW9CO0lBQ2pDLE1BQU0sQ0FBVSw0QkFBNEIsR0FBRyxrQkFBa0IsQ0FBQztJQUNsRSxNQUFNLENBQVUsYUFBYSxHQUFHLGNBQWMsQ0FBQztJQUMvQyxNQUFNLENBQVUsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7O0FBSHpFLG9EQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5jb25zdCBUT09MS0lUX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLlRvb2xraXRFcnJvcicpO1xuY29uc3QgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQXV0aGVudGljYXRpb25FcnJvcicpO1xuY29uc3QgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LWxpYi5EZXBsb3ltZW50RXJyb3InKTtcbmNvbnN0IEFTU0VNQkxZX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLkFzc2VtYmx5RXJyb3InKTtcbmNvbnN0IENPTlRFWFRfUFJPVklERVJfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQ29udGV4dFByb3ZpZGVyRXJyb3InKTtcbmNvbnN0IE5PX1JFU1VMVFNfRk9VTkRfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuTm9SZXN1bHRzRm91bmRFcnJvcicpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmFsIHRvb2xraXQgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRvb2xraXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBUb29sa2l0RXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVG9vbGtpdEVycm9yKHg6IGFueSk6IHggaXMgVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YoeCkgPT09ICdvYmplY3QnICYmIFRPT0xLSVRfRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIEF1dGhlbnRpY2F0aW9uRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQXV0aGVudGljYXRpb25FcnJvcih4OiBhbnkpOiB4IGlzIEF1dGhlbnRpY2F0aW9uRXJyb3Ige1xuICAgIHJldHVybiBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoeCkgJiYgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIERlcGxveW1lbnRFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNEZXBsb3ltZW50RXJyb3IoeDogYW55KTogeCBpcyBEZXBsb3ltZW50RXJyb3Ige1xuICAgIHJldHVybiBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoeCkgJiYgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQXNzZW1ibHlFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNBc3NlbWJseUVycm9yKHg6IGFueSk6IHggaXMgQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBBU1NFTUJMWV9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQ29udGV4dFByb3ZpZGVyRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ29udGV4dFByb3ZpZGVyRXJyb3IoeDogYW55KTogeCBpcyBDb250ZXh0UHJvdmlkZXJFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgVG9vbGtpdEVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKGVycm9yQ29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4gbmV3IFRvb2xraXRFcnJvcihlcnJvckNvZGUsIG1lc3NhZ2UsICd0b29sa2l0JywgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBlcnJvciwgZGVmYXVsdHMgdG8gXCJ0b29sa2l0XCIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZW5vdGVzIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yIGFzIHRoZSB0b29sa2l0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogJ3Rvb2xraXQnIHwgJ3VzZXInO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgb3JpZ2luYWwgY2F1c2Ugb2YgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjYXVzZT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoZXJyb3JDb2RlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ3Rvb2xraXQnLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSBlcnJvckNvZGU7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb2xraXRFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBUT09MS0lUX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuc291cmNlID0gJ3Rvb2xraXQnO1xuICAgIHRoaXMuY2F1c2UgPSBjYXVzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXV0aGVudGljYXRpb24tc3BlY2lmaWMgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoZXJyb3JDb2RlLCBtZXNzYWdlLCAnYXV0aGVudGljYXRpb24nKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aGVudGljYXRpb25FcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBVVRIRU5USUNBVElPTl9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVycm9yIGNhdXNlcyBieSBjbG91ZCBhc3NlbWJseSBzeW50aGVzaXNcbiAqXG4gKiBUaGlzIGluY2x1ZGVzIGVycm9ycyB0aHJvd24gZHVyaW5nIGFwcCBleGVjdXRpb24sIGFzIHdlbGwgYXMgZmFpbGluZyBhbm5vdGF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2VtYmx5RXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogQW4gQXNzZW1ibHlFcnJvciB3aXRoIGFuIG9yaWdpbmFsIGVycm9yIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhDYXVzZShtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBc3NlbWJseUVycm9yKG1lc3NhZ2UsIHVuZGVmaW5lZCwgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIEFzc2VtYmx5RXJyb3Igd2l0aCBhIGxpc3Qgb2Ygc3RhY2tzIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhTdGFja3MobWVzc2FnZTogc3RyaW5nLCBzdGFja3M/OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSk6IEFzc2VtYmx5RXJyb3Ige1xuICAgIHJldHVybiBuZXcgQXNzZW1ibHlFcnJvcihtZXNzYWdlLCBzdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFja3MgdGhhdCBjYXVzZWQgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICpcbiAgICogVGhlIGBtZXNzYWdlc2AgcHJvcGVydHkgb2YgZWFjaCBgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0YCB3aWxsIGNvbnRhaW4gdGhlIHJlc3BlY3RpdmUgZXJyb3JzLlxuICAgKiBBYnNlbmNlIGluZGljYXRlcyBzeW50aGVzaXMgZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdO1xuXG4gIHByaXZhdGUgX3N5bnRoRXJyb3JDb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcignQXNzZW1ibHlFcnJvcicsIG1lc3NhZ2UsICdhc3NlbWJseScsIGNhdXNlKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5zdGFja3MgPSBzdGFja3M7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN5bnRoZXNpcyBlcnJvciBjb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN5bnRoRXJyb3JDb2RlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N5bnRoRXJyb3JDb2RlO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaFN5bnRoZXNpc0Vycm9yQ29kZShzeW50aGVzaXNFcnJvckNvZGU6IHN0cmluZykge1xuICAgIHRoaXMuX3N5bnRoRXJyb3JDb2RlID0gc3ludGhlc2lzRXJyb3JDb2RlO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRlcGxveW1lbnQtcmVsYXRlZCBlcnJvciBpbiB0aGUgQVdTIENESyBUb29sa2l0LlxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudEVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveW1lbnRFcnJvckNvZGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGRlcGxveW1lbnRFcnJvckNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKCdEZXBsb3ltZW50RXJyb3InLCBtZXNzYWdlLCAnZGVwbG95bWVudCcpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEZXBsb3ltZW50RXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5kZXBsb3ltZW50RXJyb3JDb2RlID0gZGVwbG95bWVudEVycm9yQ29kZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3Igb3JpZ2luYXRpbmcgZnJvbSBhIENvbnRleHQgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHRQcm92aWRlckVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBOb1Jlc3VsdHNGb3VuZEVycm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc05vUmVzdWx0c0ZvdW5kRXJyb3IoeDogYW55KTogeCBpcyBOb1Jlc3VsdHNGb3VuZEVycm9yIHtcbiAgICByZXR1cm4gVG9vbGtpdEVycm9yLmlzQ29udGV4dFByb3ZpZGVyRXJyb3IoeCkgJiYgTk9fUkVTVUxUU19GT1VORF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIENvbnRleHRQcm92aWRlckVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKGVycm9yQ29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogQ29udGV4dFByb3ZpZGVyRXJyb3Ige1xuICAgIHJldHVybiBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoZXJyb3JDb2RlLCBtZXNzYWdlLCBlcnJvcik7XG4gIH1cblxuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihlcnJvckNvZGUsIG1lc3NhZ2UsICdjb250ZXh0LXByb3ZpZGVyJywgY2F1c2UpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb250ZXh0UHJvdmlkZXJFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgc3BlY2lmaWMgY29udGV4dCBwcm92aWRlciBsb29rdXAgZmFpbHVyZSBpbmRpY2F0aW5nIG5vIHJlc3VsdHMgd2hlcmUgZm91bmQgZm9yIGEgY29udGV4dCBxdWVyeVxuICovXG5leHBvcnQgY2xhc3MgTm9SZXN1bHRzRm91bmRFcnJvciBleHRlbmRzIENvbnRleHRQcm92aWRlckVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ05vUmVzdWx0c0ZvdW5kJywgbWVzc2FnZSk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE5vUmVzdWx0c0ZvdW5kRXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgTk9fUkVTVUxUU19GT1VORF9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlcGxveW1lbnRFcnJvckNvZGVzIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVEFDS19ESVNBUFBFQVJFRF9FUlJPUl9DT0RFID0gJ1N0YWNrRGlzYXBwZWFyZWQnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOS05PV05fRVJST1IgPSAnVW5rbm93bkVycm9yJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUklWQVRFX1JFU09VUkNFX0VSUk9SID0gJ1ByaXZhdGVSZXNvdXJjZUVycm9yJztcbn1cblxuIl19","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Toolkit = void 0;\nrequire(\"../private/dispose-polyfill\");\nconst path = require(\"node:path\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\nconst chalk = require(\"chalk\");\nconst chokidar = require(\"chokidar\");\nconst handler_js_1 = require(\"chokidar/handler.js\");\n/**\n * File events that we care about from chokidar.\n * In chokidar v4, EventName includes additional events like 'error', 'raw', 'ready', 'all'\n * that we need to filter out in the 'all' handler.\n */\nconst FILE_EVENTS = [handler_js_1.EVENTS.ADD, handler_js_1.EVENTS.ADD_DIR, handler_js_1.EVENTS.CHANGE, handler_js_1.EVENTS.UNLINK, handler_js_1.EVENTS.UNLINK_DIR];\n/**\n * Type guard to check if an event is a file event we should process.\n */\nfunction isFileEvent(event) {\n return FILE_EVENTS.includes(event);\n}\nconst fs = require(\"fs-extra\");\nconst non_interactive_io_host_1 = require(\"./non-interactive-io-host\");\nconst private_1 = require(\"./private\");\nconst toolkit_error_1 = require(\"./toolkit-error\");\nconst bootstrap_1 = require(\"../actions/bootstrap\");\nconst deploy_1 = require(\"../actions/deploy\");\nconst private_2 = require(\"../actions/deploy/private\");\nconst private_3 = require(\"../actions/diff/private\");\nconst private_4 = require(\"../actions/watch/private\");\nconst aws_auth_1 = require(\"../api/aws-auth\");\nconst awscli_compatible_1 = require(\"../api/aws-auth/awscli-compatible\");\nconst private_5 = require(\"../api/aws-auth/private\");\nconst bootstrap_2 = require(\"../api/bootstrap\");\nconst cloud_assembly_1 = require(\"../api/cloud-assembly\");\nconst private_6 = require(\"../api/cloud-assembly/private\");\nconst disposable_box_1 = require(\"../api/cloud-assembly/private/disposable-box\");\nconst source_builder_1 = require(\"../api/cloud-assembly/source-builder\");\nconst deployments_1 = require(\"../api/deployments\");\nconst diff_1 = require(\"../api/diff\");\nconst drift_1 = require(\"../api/drift\");\nconst drift_formatter_1 = require(\"../api/drift/drift-formatter\");\nconst private_7 = require(\"../api/io/private\");\nconst logs_monitor_1 = require(\"../api/logs-monitor\");\nconst plugin_1 = require(\"../api/plugin\");\nconst refactoring_1 = require(\"../api/refactoring\");\nconst cloudformation_1 = require(\"../api/refactoring/cloudformation\");\nconst context_1 = require(\"../api/refactoring/context\");\nconst stack_definitions_1 = require(\"../api/refactoring/stack-definitions\");\nconst resource_import_1 = require(\"../api/resource-import\");\nconst private_8 = require(\"../api/tags/private\");\nconst toolkit_info_1 = require(\"../api/toolkit-info\");\nconst work_graph_1 = require(\"../api/work-graph\");\nconst payloads_1 = require(\"../payloads\");\nconst util_1 = require(\"../util\");\nconst concurrency_1 = require(\"../util/concurrency\");\nconst glob_matcher_1 = require(\"../util/glob-matcher\");\nconst promises_1 = require(\"../util/promises\");\nconst count_assembly_results_1 = require(\"./private/count-assembly-results\");\n/**\n * The AWS CDK Programmatic Toolkit\n */\nclass Toolkit extends source_builder_1.CloudAssemblySourceBuilder {\n props;\n /**\n * The toolkit stack name used for bootstrapping resources.\n */\n toolkitStackName;\n /**\n * The IoHost of this Toolkit\n */\n ioHost;\n /**\n * The plugin host for loading and managing plugins\n */\n pluginHost;\n /**\n * Cache of the internal SDK Provider instance\n */\n sdkProviderCache;\n baseCredentials;\n unstableFeatures;\n constructor(props = {}) {\n super();\n this.props = props;\n this.toolkitStackName = props.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n this.pluginHost = props.pluginHost ?? new plugin_1.PluginHost();\n let ioHost = props.ioHost ?? new non_interactive_io_host_1.NonInteractiveIoHost();\n if (props.emojis === false) {\n ioHost = (0, private_7.withoutEmojis)(ioHost);\n }\n if (props.color === false) {\n ioHost = (0, private_7.withoutColor)(ioHost);\n }\n // After removing emojis and color, we might end up with floating whitespace at either end of the message\n // This also removes newlines that we currently emit for CLI backwards compatibility.\n this.ioHost = (0, private_7.withTrimmedWhitespace)(ioHost);\n this.baseCredentials = props.sdkConfig?.baseCredentials ?? aws_auth_1.BaseCredentials.awsCliCompatible();\n this.unstableFeatures = props.unstableFeatures ?? [];\n }\n /**\n * Access to the AWS SDK\n * @internal\n */\n async sdkProvider(action) {\n // @todo this needs to be different instance per action\n if (!this.sdkProviderCache) {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const clientConfig = {\n requestHandler: (0, awscli_compatible_1.sdkRequestHandler)(this.props.sdkConfig?.httpOptions?.agent),\n };\n const config = await this.baseCredentials.sdkBaseConfig(ioHelper, clientConfig);\n this.sdkProviderCache = new private_5.SdkProvider(config.credentialProvider, config.defaultRegion, {\n ioHelper,\n logger: new private_5.IoHostSdkLogger(ioHelper),\n pluginHost: this.pluginHost,\n requestHandler: clientConfig.requestHandler,\n });\n }\n return this.sdkProviderCache;\n }\n /**\n * Helper to provide the CloudAssemblySourceBuilder with required toolkit services\n * @internal\n */\n async sourceBuilderServices() {\n return {\n ioHelper: (0, private_7.asIoHelper)(this.ioHost, 'assembly'),\n sdkProvider: await this.sdkProvider('assembly'),\n pluginHost: this.pluginHost,\n };\n }\n /**\n * Bootstrap Action\n */\n async bootstrap(environments, options = {}) {\n const startTime = Date.now();\n const results = [];\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'bootstrap');\n const bootstrapEnvironments = await environments.getEnvironments(this.ioHost);\n const source = options.source ?? bootstrap_1.BootstrapSource.default();\n const parameters = options.parameters;\n const bootstrapper = new bootstrap_2.Bootstrapper(source, ioHelper);\n const sdkProvider = await this.sdkProvider('bootstrap');\n const limit = (0, concurrency_1.pLimit)(20);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(bootstrapEnvironments.map((environment, currentIdx) => limit(async () => {\n const bootstrapSpan = await ioHelper.span(private_7.SPAN.BOOTSTRAP_SINGLE)\n .begin(`${chalk.bold(environment.name)}: bootstrapping...`, {\n total: bootstrapEnvironments.length,\n current: currentIdx + 1,\n environment,\n });\n try {\n const bootstrapResult = await bootstrapper.bootstrapEnvironment(environment, sdkProvider, {\n ...options,\n toolkitStackName: this.toolkitStackName,\n source,\n parameters: parameters?.parameters,\n usePreviousParameters: parameters?.keepExistingParameters,\n });\n const message = bootstrapResult.noOp\n ? ` ✅ ${environment.name} (no changes)`\n : ` ✅ ${environment.name}`;\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9900.msg(chalk.green('\\n' + message), { environment }));\n const envTime = await bootstrapSpan.end();\n const result = {\n environment,\n status: bootstrapResult.noOp ? 'no-op' : 'success',\n duration: envTime.asMs,\n };\n results.push(result);\n }\n catch (e) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E9900.msg(`\\n ❌ ${chalk.bold(environment.name)} failed: ${(0, util_1.formatErrorMessage)(e)}`, { error: e }));\n throw e;\n }\n })));\n return {\n environments: results,\n duration: Date.now() - startTime,\n };\n }\n /**\n * Synth Action\n *\n * The caller assumes ownership of the `CachedCloudAssembly` and is responsible for calling `dispose()` on\n * it after use.\n */\n async synth(cx, options = {}) {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'synth');\n const assembly = __addDisposableResource(env_1, new disposable_box_1.AsyncDisposableBox(await synthAndMeasure(ioHelper, cx, stacksOpt(options))), true);\n const stacks = await assembly.value.selectStacksV2(stacksOpt(options));\n const autoValidateStacks = options.validateStacks ? [assembly.value.selectStacksForValidation()] : [];\n await this.validateStacksMetadata(stacks.concat(...autoValidateStacks), ioHelper);\n // if we have a single stack, print it to STDOUT\n const message = `Successfully synthesized to ${chalk.blue(path.resolve(stacks.assembly.directory))}`;\n const assemblyData = {\n assemblyDirectory: stacks.assembly.directory,\n stacksCount: stacks.stackCount,\n stackIds: stacks.hierarchicalIds,\n };\n if (stacks.stackCount === 1) {\n const firstStack = stacks.firstStack;\n const template = firstStack.template;\n const obscuredTemplate = (0, util_1.obscureTemplate)(template);\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I1901.msg(message, {\n ...assemblyData,\n stack: {\n stackName: firstStack.stackName,\n hierarchicalId: firstStack.hierarchicalId,\n template,\n stringifiedJson: (0, util_1.serializeStructure)(obscuredTemplate, true),\n stringifiedYaml: (0, util_1.serializeStructure)(obscuredTemplate, false),\n },\n }));\n }\n else {\n // not outputting template to stdout, let's explain things to the user a little bit...\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I1902.msg(chalk.green(message), assemblyData));\n await ioHelper.defaults.info(`Supply a stack id (${stacks.stackArtifacts.map((s) => chalk.green(s.hierarchicalId)).join(', ')}) to display its template.`);\n }\n return new cloud_assembly_1.CachedCloudAssembly(assembly.take());\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n }\n /**\n * Diff Action\n */\n async diff(cx, options = {}) {\n const env_2 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'diff');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_2, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stacks = await assembly.selectStacksV2(selectStacks);\n const diffSpan = await ioHelper.span(private_7.SPAN.DIFF_STACK).begin({ stacks: selectStacks });\n const deployments = await this.deploymentsForAction('diff');\n const strict = !!options.strict;\n const contextLines = options.contextLines || 3;\n let diffs = 0;\n let securityDiffs = 0;\n const templateInfos = await (0, private_3.prepareDiff)(diffSpan.asHelper, stacks, deployments, await this.sdkProvider('diff'), options);\n const templateDiffs = {};\n for (const templateInfo of templateInfos) {\n const formatter = new diff_1.DiffFormatter({ templateInfo });\n const stackDiff = formatter.formatStackDiff({ strict, contextLines });\n // Security Diff\n const securityDiff = formatter.formatSecurityDiff();\n const formattedSecurityDiff = securityDiff.permissionChangeType !== payloads_1.PermissionChangeType.NONE ? stackDiff.formattedDiff : undefined;\n // We only warn about BROADENING changes\n if (securityDiff.permissionChangeType == payloads_1.PermissionChangeType.BROADENING) {\n const warningMessage = 'This deployment will make potentially sensitive changes according to your current security approval level.\\nPlease confirm you intend to make the following modifications:\\n';\n await diffSpan.defaults.warn(warningMessage);\n await diffSpan.defaults.info(securityDiff.formattedDiff);\n }\n // Stack Diff\n diffs += stackDiff.numStacksWithChanges;\n securityDiffs += securityDiff.numStacksWithChanges;\n (0, private_3.appendObject)(templateDiffs, formatter.diffs);\n await diffSpan.notify(private_7.IO.CDK_TOOLKIT_I4002.msg(stackDiff.formattedDiff, {\n stack: templateInfo.newTemplate,\n diffs: formatter.diffs,\n numStacksWithChanges: stackDiff.numStacksWithChanges,\n numStacksWithSecurityChanges: securityDiff.numStacksWithChanges,\n permissionChanges: securityDiff.permissionChangeType,\n formattedDiff: {\n diff: stackDiff.formattedDiff,\n security: formattedSecurityDiff,\n },\n }));\n }\n await diffSpan.end(`✨ Number of stacks with differences: ${diffs}`, {\n numStacksWithChanges: diffs,\n numStacksWithSecurityChanges: securityDiffs,\n diffs: templateDiffs,\n });\n return templateDiffs;\n }\n catch (e_2) {\n env_2.error = e_2;\n env_2.hasError = true;\n }\n finally {\n const result_2 = __disposeResources(env_2);\n if (result_2)\n await result_2;\n }\n }\n /**\n * Drift Action\n */\n async drift(cx, options = {}) {\n const env_3 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'drift');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_3, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stacks = await assembly.selectStacksV2(selectStacks);\n const driftSpan = await ioHelper.span(private_7.SPAN.DRIFT_APP).begin({ stacks: selectStacks });\n const allDriftResults = {};\n const unavailableDrifts = [];\n const sdkProvider = await this.sdkProvider('drift');\n for (const stack of stacks.stackArtifacts) {\n const cfn = (await sdkProvider.forEnvironment(stack.environment, plugin_1.Mode.ForReading)).sdk.cloudFormation();\n const driftResults = await (0, drift_1.detectStackDrift)(cfn, driftSpan.asHelper, stack.stackName);\n if (!driftResults.StackResourceDrifts) {\n const stackName = stack.displayName ?? stack.stackName;\n unavailableDrifts.push(stackName);\n await driftSpan.notify(private_7.IO.CDK_TOOLKIT_W4591.msg(`${stackName}: No drift results available`, { stack }));\n continue;\n }\n const formatter = new drift_formatter_1.DriftFormatter({ stack, resourceDrifts: driftResults.StackResourceDrifts });\n const driftOutput = formatter.formatStackDrift();\n const stackDrift = {\n numResourcesWithDrift: driftOutput.numResourcesWithDrift,\n numResourcesUnchecked: driftOutput.numResourcesUnchecked,\n formattedDrift: {\n unchanged: driftOutput.unchanged,\n unchecked: driftOutput.unchecked,\n modified: driftOutput.modified,\n deleted: driftOutput.deleted,\n },\n };\n allDriftResults[formatter.stackName] = stackDrift;\n // header\n await driftSpan.defaults.info(driftOutput.stackHeader);\n // print the different sections at different levels\n if (driftOutput.unchanged) {\n await driftSpan.defaults.debug(driftOutput.unchanged);\n }\n if (driftOutput.unchecked) {\n await driftSpan.defaults.debug(driftOutput.unchecked);\n }\n if (driftOutput.modified) {\n await driftSpan.defaults.info(driftOutput.modified);\n }\n if (driftOutput.deleted) {\n await driftSpan.defaults.info(driftOutput.deleted);\n }\n // main stack result\n await driftSpan.notify(private_7.IO.CDK_TOOLKIT_I4590.msg(driftOutput.summary, {\n stack,\n drift: stackDrift,\n }));\n }\n // print summary\n const totalDrifts = Object.values(allDriftResults).reduce((total, current) => total + (current.numResourcesWithDrift ?? 0), 0);\n const totalUnchecked = Object.values(allDriftResults).reduce((total, current) => total + (current.numResourcesUnchecked ?? 0), 0);\n await driftSpan.end(`\\n✨ Number of resources with drift: ${totalDrifts}${totalUnchecked ? ` (${totalUnchecked} unchecked)` : ''}`);\n if (unavailableDrifts.length) {\n await driftSpan.defaults.warn(`\\n⚠️ Failed to check drift for ${unavailableDrifts.length} stack(s). Check log for more details.`);\n }\n return allDriftResults;\n }\n catch (e_3) {\n env_3.error = e_3;\n env_3.hasError = true;\n }\n finally {\n const result_3 = __disposeResources(env_3);\n if (result_3)\n await result_3;\n }\n }\n /**\n * Publish Assets Action\n *\n * Publishes assets for the selected stacks without deploying\n */\n async publishAssets(cx, options = {}) {\n const env_4 = { stack: [], error: void 0, hasError: false };\n try {\n this.requireUnstableFeature('publish-assets');\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'publish-assets');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_4, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stackCollection = await assembly.selectStacksV2(selectStacks);\n await this.validateStacksMetadata(stackCollection, ioHelper);\n if (stackCollection.stackCount === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E5001.msg('No stacks selected'));\n return {\n publishedAssets: [],\n };\n }\n const deployments = await this.deploymentsForAction('publish-assets');\n const stacks = stackCollection.stackArtifacts;\n const stacksAndTheirAssetManifests = stacks.flatMap((stack) => [\n stack,\n ...stack.dependencies.filter(x => cxapi.AssetManifestArtifact.isAssetManifestArtifact(x)),\n ]);\n const workGraph = new work_graph_1.WorkGraphBuilder(ioHelper, true).build(stacksAndTheirAssetManifests);\n if (!options.force) {\n await (0, private_2.removePublishedAssetsFromWorkGraph)(workGraph, deployments, options);\n }\n const assetNodes = Object.values(workGraph.nodes)\n .filter((n) => n.type === 'asset-publish');\n if (assetNodes.length === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9400.msg(chalk.green('\\n✨ All assets are already published\\n')));\n return {\n publishedAssets: [],\n };\n }\n const assets = assetNodes.map(n => n.asset);\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9401.msg('Publishing assets', { assets }));\n const concurrency = options.concurrency ?? 4;\n const graphConcurrency = {\n 'stack': 1,\n 'asset-build': concurrency,\n 'asset-publish': concurrency,\n };\n await workGraph.doParallel(graphConcurrency, {\n deployStack: async () => {\n // No-op: we're only publishing assets, not deploying\n },\n buildAsset: this.createBuildAssetFunction(ioHelper, deployments, undefined),\n publishAsset: this.createPublishAssetFunction(ioHelper, deployments, undefined, options.force),\n });\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9402.msg(chalk.green('\\n✨ Assets published successfully\\n'), { assets }));\n return {\n publishedAssets: assets,\n };\n }\n catch (e_4) {\n env_4.error = e_4;\n env_4.hasError = true;\n }\n finally {\n const result_4 = __disposeResources(env_4);\n if (result_4)\n await result_4;\n }\n }\n /**\n * List Action\n *\n * List selected stacks and their dependencies\n */\n async list(cx, options = {}) {\n const env_5 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'list');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_5, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stackCollection = await assembly.selectStacksV2(selectStacks);\n const stacks = stackCollection.withDependencies();\n const message = stacks.map(s => s.id).join('\\n');\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I2901.msg(message, { stacks }));\n return stacks;\n }\n catch (e_5) {\n env_5.error = e_5;\n env_5.hasError = true;\n }\n finally {\n const result_5 = __disposeResources(env_5);\n if (result_5)\n await result_5;\n }\n }\n /**\n * Deploy Action\n *\n * Deploys the selected stacks into an AWS account\n */\n async deploy(cx, options = {}) {\n const env_6 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'deploy');\n const assembly = __addDisposableResource(env_6, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._deploy(assembly, 'deploy', assembly.synthDuration, options);\n }\n catch (e_6) {\n env_6.error = e_6;\n env_6.hasError = true;\n }\n finally {\n const result_6 = __disposeResources(env_6);\n if (result_6)\n await result_6;\n }\n }\n /**\n * Helper to allow deploy being called as part of the watch action.\n */\n async _deploy(assembly, action, synthDuration, options = {}) {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const selectStacks = stacksOpt(options);\n const stackCollection = await assembly.selectStacksV2(selectStacks);\n await this.validateStacksMetadata(stackCollection, ioHelper);\n const ret = {\n stacks: [],\n };\n if (stackCollection.stackCount === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E5001.msg('This app contains no stacks'));\n return ret;\n }\n const deployments = await this.deploymentsForAction('deploy');\n const migrator = new resource_import_1.ResourceMigrator({ deployments, ioHelper });\n await migrator.tryMigrateResources(stackCollection, options);\n const parameterMap = (0, private_2.buildParameterMap)(options.parameters?.parameters);\n if (options.deploymentMethod?.method === 'hotswap') {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_W5400.msg([\n '⚠️ Hotswap deployments deliberately introduce CloudFormation drift to speed up deployments',\n '⚠️ They should only be used for development - never use them for your production Stacks!',\n ].join('\\n')));\n }\n const stacks = stackCollection.stackArtifacts;\n const stackOutputs = {};\n const outputsFile = options.outputsFile;\n const deployStack = async (stackNode) => {\n const stack = stackNode.stack;\n if (stackCollection.stackCount !== 1) {\n await ioHelper.defaults.info(chalk.bold(stack.displayName));\n }\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `Stack ${stack.displayName} does not define an environment, and AWS credentials could not be obtained from standard locations or no region was configured.`);\n }\n // The generated stack has no resources\n const resourceCount = Object.keys(stack.template.Resources || {}).length;\n if (resourceCount === 0) {\n // stack is empty and doesn't exist => do nothing\n const stackExists = await deployments.stackExists({ stack });\n if (!stackExists) {\n return ioHelper.notify(private_7.IO.CDK_TOOLKIT_W5021.msg(`${chalk.bold(stack.displayName)}: stack has no resources, skipping deployment.`));\n }\n // stack is empty, but exists => delete\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_W5022.msg(`${chalk.bold(stack.displayName)}: stack has no resources, deleting existing stack.`));\n await this._destroy(assembly, 'deploy', {\n stacks: { patterns: [stack.hierarchicalId], strategy: cloud_assembly_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE },\n roleArn: options.roleArn,\n });\n return;\n }\n const currentTemplate = await deployments.readCurrentTemplate(stack);\n // Following are the same semantics we apply with respect to Notification ARNs (dictated by the SDK)\n //\n // - undefined => cdk ignores it, as if it wasn't supported (allows external management).\n // - []: => cdk manages it, and the user wants to wipe it out.\n // - ['arn-1'] => cdk manages it, and the user wants to set it to ['arn-1'].\n const notificationArns = (!!options.notificationArns || !!stack.notificationArns)\n ? (options.notificationArns ?? []).concat(stack.notificationArns ?? [])\n : undefined;\n for (const notificationArn of notificationArns ?? []) {\n if (!(0, util_1.validateSnsTopicArn)(notificationArn)) {\n throw new toolkit_error_1.ToolkitError('InvalidSnsTopicArn', `Notification arn ${notificationArn} is not a valid arn for an SNS topic`);\n }\n }\n // Deploy options that are shared between change set creation and execution\n const sharedDeployOptions = {\n stack,\n deployName: stack.stackName,\n roleArn: options.roleArn,\n toolkitStackName: this.toolkitStackName,\n reuseAssets: options.reuseAssets,\n tags: options.tags?.length ? options.tags : (0, private_8.tagsForStack)(stack),\n forceDeployment: options.forceDeployment,\n parameters: Object.assign({}, parameterMap['*'], parameterMap[stack.stackName]),\n usePreviousParameters: options.parameters?.keepExistingParameters,\n rollback: options.rollback,\n notificationArns,\n extraUserAgent: options.extraUserAgent,\n assetParallelism: options.assetParallelism,\n };\n // When using change-set method, always create the change set upfront.\n // This gives us an accurate diff for approval and avoids creating it twice.\n // For non-executing deployments (prepare-change-set), this is the final result.\n const prepareResult = (0, private_2.isChangeSetDeployment)(options.deploymentMethod)\n ? await deployments.prepareStack({\n ...sharedDeployOptions,\n deploymentMethod: options.deploymentMethod,\n cleanupOnNoOp: (0, private_2.isExecutingChangeSetDeployment)(options.deploymentMethod),\n })\n : undefined;\n const formatter = new diff_1.DiffFormatter({\n templateInfo: {\n oldTemplate: currentTemplate,\n newTemplate: stack,\n changeSet: prepareResult?.changeSet,\n },\n });\n const securityDiff = formatter.formatSecurityDiff();\n const stackDiff = formatter.formatStackDiff();\n // Send a request response with the diff as part of the message,\n // and the template diff as data\n // (IoHost decides whether to print depending on permissionChangeType)\n const hasSecurityChanges = securityDiff.permissionChangeType !== payloads_1.PermissionChangeType.NONE;\n const deployMotivation = hasSecurityChanges\n ? '\"--require-approval\" is enabled and stack includes security-sensitive updates.'\n : '\"--require-approval\" is enabled and stack includes updates.';\n const diffOutput = hasSecurityChanges ? securityDiff.formattedDiff : stackDiff.formattedDiff;\n const deployQuestion = `${diffOutput}\\n\\n${deployMotivation}\\nDo you wish to deploy these changes`;\n const deployConfirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I5060.req(deployQuestion, {\n motivation: deployMotivation,\n concurrency,\n permissionChangeType: securityDiff.permissionChangeType,\n templateDiffs: formatter.diffs,\n }));\n if (!deployConfirmed) {\n if (prepareResult?.changeSet?.ChangeSetName) {\n await deployments.cleanupChangeSet(stack, prepareResult.changeSet.ChangeSetName);\n }\n throw new toolkit_error_1.ToolkitError('DeployAborted', 'Aborted by user');\n }\n const stackIndex = stacks.indexOf(stack) + 1;\n const deploySpan = await ioHelper.span(private_7.SPAN.DEPLOY_STACK)\n .begin(`${chalk.bold(stack.displayName)}: deploying... [${stackIndex}/${stackCollection.stackCount}]`, {\n total: stackCollection.stackCount,\n current: stackIndex,\n stack,\n });\n deploySpan.incCounter('resources', resourceCount);\n let deployDuration;\n try {\n const prepareIsFinal = prepareResult && (prepareResult.noOp || (0, private_2.isNonExecutingChangeSetDeployment)(options.deploymentMethod));\n let deployResult = prepareIsFinal ? prepareResult : undefined;\n let rollback = options.rollback;\n let iteration = 0;\n while (!deployResult) {\n if (++iteration > 2) {\n throw new toolkit_error_1.ToolkitError('DeployLoopUnstable', 'This loop should have stabilized in 2 iterations, but didn\\'t. If you are seeing this error, please report it at https://github.com/aws/aws-cdk/issues/new/choose');\n }\n const r = await deployments.deployStack({\n ...sharedDeployOptions,\n // On the first iteration, execute the prepared change set.\n // On retries (after rollback), create a new change set since the old one is gone.\n deploymentMethod: iteration === 1 && (0, private_2.isExecutingChangeSetDeployment)(options.deploymentMethod)\n ? (0, private_2.toExecuteChangeSetDeployment)(options.deploymentMethod)\n : options.deploymentMethod,\n rollback,\n });\n switch (r.type) {\n case 'did-deploy-stack':\n deployResult = r;\n break;\n case 'failpaused-need-rollback-first': {\n const motivation = r.reason === 'replacement'\n ? `Stack is in a paused fail state (${r.status}) and change includes a replacement which cannot be deployed with \"--no-rollback\"`\n : `Stack is in a paused fail state (${r.status}) and command line arguments do not include \"--no-rollback\"`;\n const question = `${motivation}. Perform a regular deployment`;\n const confirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I5050.req(question, {\n motivation,\n concurrency,\n }));\n if (!confirmed) {\n throw new toolkit_error_1.ToolkitError('RollbackAborted', 'Aborted by user');\n }\n // Perform a rollback\n await this._rollback(assembly, action, {\n stacks: {\n patterns: [stack.hierarchicalId],\n strategy: cloud_assembly_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE,\n },\n orphanFailedResources: options.orphanFailedResourcesDuringRollback,\n });\n // Go around through the 'while' loop again but switch rollback to true.\n rollback = true;\n break;\n }\n case 'replacement-requires-rollback': {\n const motivation = 'Change includes a replacement which cannot be deployed with \"--no-rollback\"';\n const question = `${motivation}. Perform a regular deployment`;\n const confirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I5050.req(question, {\n motivation,\n concurrency,\n }));\n if (!confirmed) {\n throw new toolkit_error_1.ToolkitError('ReplacementRollbackAborted', 'Aborted by user');\n }\n // Go around through the 'while' loop again but switch rollback to true.\n rollback = true;\n break;\n }\n default:\n throw new toolkit_error_1.ToolkitError('UnexpectedDeployResult', `Unexpected result type from deployStack: ${JSON.stringify(r)}. If you are seeing this error, please report it at https://github.com/aws/aws-cdk/issues/new/choose`);\n }\n }\n const message = deployResult.noOp\n ? ` ✅ ${stack.displayName} (no changes)`\n : ` ✅ ${stack.displayName}`;\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5900.msg(chalk.green('\\n' + message), deployResult));\n deployDuration = await deploySpan.timing(private_7.IO.CDK_TOOLKIT_I5000);\n if (Object.keys(deployResult.outputs).length > 0) {\n const buffer = ['Outputs:'];\n stackOutputs[stack.stackName] = deployResult.outputs;\n for (const name of Object.keys(deployResult.outputs).sort()) {\n const value = deployResult.outputs[name];\n buffer.push(`${chalk.cyan(stack.id)}.${chalk.cyan(name)} = ${chalk.underline(chalk.cyan(value))}`);\n }\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5901.msg(buffer.join('\\n')));\n }\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5901.msg(`Stack ARN:\\n${deployResult.stackArn}`));\n ret.stacks.push({\n stackName: stack.stackName,\n environment: {\n account: stack.environment.account,\n region: stack.environment.region,\n },\n stackArn: deployResult.stackArn,\n outputs: deployResult.outputs,\n hierarchicalId: stack.hierarchicalId,\n });\n }\n catch (e) {\n // It has to be exactly this string because an integration test tests for\n // \"bold(stackname) failed: ResourceNotReady: \"\n const code = toolkit_error_1.ToolkitError.isToolkitError(e) ? e.name : 'DeployStackFailed';\n const newMessage = [`❌ ${chalk.bold(stack.stackName)} failed:`, ...(e.name ? [`${e.name}:`] : []), e.message].join(' ');\n throw new toolkit_error_1.ToolkitError(code, newMessage);\n }\n finally {\n if (options.traceLogs) {\n // deploy calls that originate from watch will come with their own cloudWatchLogMonitor\n const cloudWatchLogMonitor = options.cloudWatchLogMonitor ?? new logs_monitor_1.CloudWatchLogEventMonitor({ ioHelper });\n const foundLogGroupsResult = await (0, logs_monitor_1.findCloudWatchLogGroups)(await this.sdkProvider('deploy'), ioHelper, stack);\n cloudWatchLogMonitor.addLogGroups(foundLogGroupsResult.env, foundLogGroupsResult.sdk, foundLogGroupsResult.logGroupNames);\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5031.msg(`The following log groups are added: ${foundLogGroupsResult.logGroupNames}`));\n }\n // If an outputs file has been specified, create the file path and write stack outputs to it once.\n // Outputs are written after all stacks have been deployed. If a stack deployment fails,\n // all of the outputs from successfully deployed stacks before the failure will still be written.\n if (outputsFile) {\n fs.ensureFileSync(outputsFile);\n await fs.writeJson(outputsFile, stackOutputs, {\n spaces: 2,\n encoding: 'utf8',\n });\n }\n }\n const duration = synthDuration.asMs + (deployDuration?.asMs ?? 0);\n await deploySpan.end(`\\n✨ Total time: ${(0, util_1.formatTime)(duration)}s\\n`, { duration });\n };\n const assetBuildTime = options.assetBuildTime ?? deploy_1.AssetBuildTime.ALL_BEFORE_DEPLOY;\n const prebuildAssets = assetBuildTime === deploy_1.AssetBuildTime.ALL_BEFORE_DEPLOY;\n const concurrency = options.concurrency || 1;\n const stacksAndTheirAssetManifests = stacks.flatMap((stack) => [\n stack,\n ...stack.dependencies.filter(x => cxapi.AssetManifestArtifact.isAssetManifestArtifact(x)),\n ]);\n const workGraph = new work_graph_1.WorkGraphBuilder(ioHelper, prebuildAssets).build(stacksAndTheirAssetManifests);\n // Unless we are running with '--force', skip already published assets\n if (!options.forceAssetPublishing) {\n await (0, private_2.removePublishedAssetsFromWorkGraph)(workGraph, deployments, options);\n }\n const graphConcurrency = {\n 'stack': concurrency,\n 'asset-build': (options.assetParallelism ?? true) ? options.assetBuildConcurrency ?? 1 : 1, // This will be CPU-bound/memory bound, mostly matters for Docker builds\n 'asset-publish': (options.assetParallelism ?? true) ? 8 : 1, // This will be I/O-bound, 8 in parallel seems reasonable\n };\n await workGraph.doParallel(graphConcurrency, {\n deployStack,\n buildAsset: this.createBuildAssetFunction(ioHelper, deployments, options.roleArn),\n publishAsset: this.createPublishAssetFunction(ioHelper, deployments, options.roleArn, options.forceAssetPublishing),\n });\n return ret;\n }\n /**\n * Watch Action\n *\n * Continuously observe project files and deploy the selected stacks\n * automatically when changes are detected. Defaults to hotswap deployments.\n *\n * This function returns immediately, starting a watcher in the background.\n */\n async watch(cx, options = {}) {\n const env_7 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'watch');\n const assembly = __addDisposableResource(env_7, await (0, private_1.assemblyFromSource)(ioHelper, cx, false), true);\n const rootDir = options.watchDir ?? process.cwd();\n // For the \"include\" setting, the behavior is:\n // 1. \"watch\" setting without an \"include\" key? We default to observing \"**\".\n // 2. \"watch\" setting with an empty \"include\" key? We default to observing \"**\".\n // 3. Non-empty \"include\" key? Just use the \"include\" key.\n const watchIncludes = options.include ?? [];\n if (watchIncludes.length <= 0) {\n watchIncludes.push('**');\n }\n // For the \"exclude\" setting, the behavior is to add some default excludes in addition to\n // patterns specified by the user sensible default patterns:\n const watchExcludes = options.exclude ?? [...private_4.WATCH_EXCLUDE_DEFAULTS];\n // 1. The CDK output directory, if it is under the rootDir\n const relativeOutDir = path.relative(rootDir, assembly.directory);\n if (Boolean(relativeOutDir && !relativeOutDir.startsWith('..' + path.sep) && !path.isAbsolute(relativeOutDir))) {\n watchExcludes.push(`${relativeOutDir}/**`);\n }\n // 2. Any file whose name starts with a dot.\n watchExcludes.push('.*', '**/.*');\n // 3. Any directory's content whose name starts with a dot.\n watchExcludes.push('**/.*/**');\n // 4. Any node_modules and its content (even if it's not a JS/TS project, you might be using a local aws-cli package)\n watchExcludes.push('**/node_modules/**');\n // Print some debug information on computed settings\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5310.msg([\n `root directory used for 'watch' is: ${rootDir}`,\n `'include' patterns for 'watch': ${JSON.stringify(watchIncludes)}`,\n `'exclude' patterns for 'watch': ${JSON.stringify(watchExcludes)}`,\n ].join('\\n'), {\n watchDir: rootDir,\n includes: watchIncludes,\n excludes: watchExcludes,\n }));\n let latch = 'pre-ready';\n const cloudWatchLogMonitor = options.traceLogs ? new logs_monitor_1.CloudWatchLogEventMonitor({ ioHelper }) : undefined;\n const deployAndWatch = async () => {\n latch = 'deploying';\n await cloudWatchLogMonitor?.deactivate();\n await this.invokeDeployFromWatch(assembly, options, cloudWatchLogMonitor);\n // If latch is still 'deploying' after the 'await', that's fine,\n // but if it's 'queued', that means we need to deploy again\n while (latch === 'queued') {\n // TypeScript doesn't realize latch can change between 'awaits',\n // and thinks the above 'while' condition is always 'false' without the cast\n latch = 'deploying';\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5315.msg(\"Detected file changes during deployment. Invoking 'cdk deploy' again\"));\n await this.invokeDeployFromWatch(assembly, options, cloudWatchLogMonitor);\n }\n latch = 'open';\n await cloudWatchLogMonitor?.activate();\n };\n // Create ignore matcher for chokidar v4 compatibility\n // Chokidar v4 removed glob pattern support, so we use picomatch to filter files\n // We pass rootDir because chokidar v4 passes absolute paths to the ignored callback\n const shouldIgnore = (0, glob_matcher_1.createIgnoreMatcher)({\n include: watchIncludes,\n exclude: watchExcludes,\n rootDir,\n });\n const watcher = chokidar\n .watch('.', {\n ignored: shouldIgnore,\n cwd: rootDir,\n })\n .on('ready', async () => {\n latch = 'open';\n await ioHelper.defaults.debug(\"'watch' received the 'ready' event. From now on, all file changes will trigger a deployment\");\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5314.msg(\"Triggering initial 'cdk deploy'\"));\n await deployAndWatch();\n })\n .on('all', async (event, filePath) => {\n // Filter out non-file events (e.g., 'error', 'raw', 'ready', 'all')\n // These are handled separately or not relevant for watch deployments\n if (!isFileEvent(event)) {\n return;\n }\n const watchEvent = {\n event,\n path: filePath,\n };\n if (latch === 'pre-ready') {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5311.msg(`'watch' is observing ${event === 'addDir' ? 'directory' : 'the file'} '${filePath}' for changes`, watchEvent));\n }\n else if (latch === 'open') {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5312.msg(`Detected change to '${filePath}' (type: ${event}). Triggering 'cdk deploy'`, watchEvent));\n await deployAndWatch();\n }\n else {\n // this means latch is either 'deploying' or 'queued'\n latch = 'queued';\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5313.msg(`Detected change to '${filePath}' (type: ${event}) while 'cdk deploy' is still running. Will queue for another deployment after this one finishes'`, watchEvent));\n }\n });\n const stoppedPromise = (0, promises_1.promiseWithResolvers)();\n return {\n async dispose() {\n // stop the logs monitor, if it exists\n await cloudWatchLogMonitor?.deactivate();\n // close the watcher itself\n await watcher.close();\n stoppedPromise.resolve();\n return stoppedPromise.promise;\n },\n async waitForEnd() {\n return stoppedPromise.promise;\n },\n async [Symbol.asyncDispose]() {\n return this.dispose();\n },\n };\n }\n catch (e_7) {\n env_7.error = e_7;\n env_7.hasError = true;\n }\n finally {\n const result_7 = __disposeResources(env_7);\n if (result_7)\n await result_7;\n }\n }\n /**\n * Rollback Action\n *\n * Rolls back the selected stacks.\n */\n async rollback(cx, options = {}) {\n const env_8 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'rollback');\n const assembly = __addDisposableResource(env_8, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._rollback(assembly, 'rollback', options);\n }\n catch (e_8) {\n env_8.error = e_8;\n env_8.hasError = true;\n }\n finally {\n const result_8 = __disposeResources(env_8);\n if (result_8)\n await result_8;\n }\n }\n /**\n * Helper to allow rollback being called as part of the deploy or watch action.\n */\n async _rollback(assembly, action, options) {\n const selectStacks = stacksOpt(options);\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const stacks = await assembly.selectStacksV2(selectStacks);\n await this.validateStacksMetadata(stacks, ioHelper);\n const ret = {\n stacks: [],\n };\n if (stacks.stackCount === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E6001.msg('No stacks selected'));\n return ret;\n }\n let anyRollbackable = false;\n for (const [index, stack] of stacks.stackArtifacts.entries()) {\n const rollbackSpan = await ioHelper.span(private_7.SPAN.ROLLBACK_STACK).begin(`Rolling back ${chalk.bold(stack.displayName)}`, {\n total: stacks.stackCount,\n current: index + 1,\n stack,\n });\n const deployments = await this.deploymentsForAction('rollback');\n try {\n const stackResult = await deployments.rollbackStack({\n stack,\n roleArn: options.roleArn,\n toolkitStackName: this.toolkitStackName,\n orphanFailedResources: options.orphanFailedResources,\n validateBootstrapStackVersion: options.validateBootstrapStackVersion,\n orphanLogicalIds: options.orphanLogicalIds,\n });\n if (!stackResult.notInRollbackableState) {\n anyRollbackable = true;\n }\n await rollbackSpan.end();\n ret.stacks.push({\n environment: {\n account: stack.environment.account,\n region: stack.environment.region,\n },\n stackName: stack.stackName,\n stackArn: stackResult.stackArn,\n result: stackResult.notInRollbackableState ? 'already-stable' : 'rolled-back',\n });\n }\n catch (e) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E6900.msg(`\\n ❌ ${chalk.bold(stack.displayName)} failed: ${(0, util_1.formatErrorMessage)(e)}`, { error: e }));\n throw toolkit_error_1.ToolkitError.withCause('RollbackFailed', 'Rollback failed (use --force to orphan failing resources)', e);\n }\n }\n if (!anyRollbackable) {\n throw new toolkit_error_1.ToolkitError('NoRollbackableStacks', 'No stacks were in a state that could be rolled back');\n }\n return ret;\n }\n /**\n * Refactor Action. Moves resources from one location (stack + logical ID) to another.\n */\n async refactor(cx, options = {}) {\n const env_9 = { stack: [], error: void 0, hasError: false };\n try {\n this.requireUnstableFeature('refactor');\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'refactor');\n const assembly = __addDisposableResource(env_9, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._refactor(assembly, ioHelper, cx, options);\n }\n catch (e_9) {\n env_9.error = e_9;\n env_9.hasError = true;\n }\n finally {\n const result_9 = __disposeResources(env_9);\n if (result_9)\n await result_9;\n }\n }\n async _refactor(assembly, ioHelper, cx, options = {}) {\n const sdkProvider = await this.sdkProvider('refactor');\n const selectedStacks = await assembly.selectStacksV2(stacksOpt(options));\n const groups = await (0, refactoring_1.groupStacks)(sdkProvider, selectedStacks.stackArtifacts, options.additionalStackNames ?? []);\n for (let { environment, localStacks, deployedStacks } of groups) {\n await ioHelper.defaults.info((0, refactoring_1.formatEnvironmentSectionHeader)(environment));\n const newStacks = localStacks.filter(s => !deployedStacks.map(t => t.stackName).includes(s.stackName));\n if (newStacks.length > 0) {\n /*\n When the CloudFormation stack refactor operation creates a new stack, and the resources being moved to that\n new stack have references to other resources, CloudFormation needs to do what they call \"collapsing the\n template\". The details don't really matter, except that, in the process, it calls some service APIs, to read\n the resources being moved. The role it uses to call these APIs internally is the role the user called the\n stack refactoring API with, which in our case is the CloudFormation deployment role, from the bootstrap stack,\n by default.\n \n The problem is that this role does not have permissions to read all resource types. In this case,\n CloudFormation will roll back the refactor operation. Since this is an implementation detail of the API, that\n the user cannot know about, and didn't ask for, it will be very surprising. So we've decided to block this use\n case until CloudFormation supports passing a different role to use for these read operations, as is the case\n with deployment.\n */\n let message = `The following stack${newStacks.length === 1 ? ' is' : 's are'} new: ${newStacks.map(s => s.stackName).join(', ')}\\n`;\n message += 'Creation of new stacks is not yet supported by the refactor command. ';\n message += 'Please deploy any new stacks separately before refactoring your stacks.';\n await ioHelper.defaults.error(chalk.red(message));\n continue;\n }\n try {\n const context = new context_1.RefactoringContext({\n environment,\n deployedStacks,\n localStacks,\n assumeRoleArn: options.roleArn,\n overrides: getOverrides(environment, deployedStacks, localStacks),\n });\n const mappings = context.mappings;\n if (mappings.length === 0 && context.ambiguousPaths.length === 0) {\n await ioHelper.defaults.info('Nothing to refactor.');\n continue;\n }\n const typedMappings = mappings\n .map(m => m.toTypedMapping())\n .filter(m => m.type !== 'AWS::CDK::Metadata');\n let refactorMessage = (0, refactoring_1.formatTypedMappings)(typedMappings);\n const refactorResult = { typedMappings };\n const stackDefinitions = await (0, stack_definitions_1.generateStackDefinitions)(mappings, deployedStacks, localStacks, environment, sdkProvider, ioHelper);\n if (context.ambiguousPaths.length > 0) {\n const paths = context.ambiguousPaths;\n refactorMessage += '\\n' + (0, refactoring_1.formatAmbiguousMappings)(paths);\n refactorResult.ambiguousPaths = paths;\n }\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I8900.msg(refactorMessage, refactorResult));\n if (options.dryRun || context.mappings.length === 0 || context.ambiguousPaths.length > 0) {\n // Nothing left to do.\n continue;\n }\n // In interactive mode (TTY) we need confirmation before proceeding\n if (process.stdout.isTTY && !await confirm(options.force ?? false)) {\n await ioHelper.defaults.info(chalk.red(`Refactoring canceled for environment aws://${environment.account}/${environment.region}\\n`));\n continue;\n }\n await ioHelper.defaults.info('Refactoring...');\n await context.execute(stackDefinitions, sdkProvider, ioHelper);\n await ioHelper.defaults.info('✅ Stack refactor complete');\n await ioHelper.defaults.info('Deploying updated stacks to finalize refactor...');\n await this.deploy(cx, {\n stacks: private_6.ALL_STACKS,\n forceDeployment: true,\n });\n }\n catch (e) {\n const message = `❌ Refactor failed: ${formatError(e)}`;\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E8900.msg(message, { error: e }));\n // Also debugging the error, because the API does not always return a user-friendly message\n await ioHelper.defaults.debug(e.message);\n }\n }\n function getOverrides(environment, deployedStacks, localStacks) {\n const mappingGroup = options.overrides\n ?.find(g => g.region === environment.region && g.account === environment.account);\n return mappingGroup == null\n ? []\n : Object.entries(mappingGroup.resources ?? {})\n .map(([source, destination]) => new cloudformation_1.ResourceMapping(getResourceLocation(source, deployedStacks), getResourceLocation(destination, localStacks)));\n }\n function getResourceLocation(location, stacks) {\n for (let stack of stacks) {\n const [stackName, logicalId] = location.split('.');\n if (stackName != null && logicalId != null && stack.stackName === stackName && stack.template.Resources?.[logicalId] != null) {\n return new cloudformation_1.ResourceLocation(stack, logicalId);\n }\n else {\n const resourceEntry = Object\n .entries(stack.template.Resources ?? {})\n .find(([_, r]) => r.Metadata?.['aws:cdk:path'] === location);\n if (resourceEntry != null) {\n return new cloudformation_1.ResourceLocation(stack, resourceEntry[0]);\n }\n }\n }\n throw new toolkit_error_1.ToolkitError('ResourceLocationNotFound', `Cannot find resource in location ${location}`);\n }\n async function confirm(force) {\n // 'force' is set to true is the equivalent of having pre-approval for any refactor\n if (force) {\n return true;\n }\n const question = 'Do you wish to refactor these resources?';\n return ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I8910.req(question, {\n motivation: 'User input is needed',\n }));\n }\n function formatError(error) {\n try {\n const payload = JSON.parse(error.message);\n const messages = [];\n if (payload.reason?.StatusReason) {\n messages.push(`Refactor creation: [${payload.reason?.Status}] ${payload.reason.StatusReason}`);\n }\n if (payload.reason?.ExecutionStatusReason) {\n messages.push(`Refactor execution: [${payload.reason?.Status}] ${payload.reason.ExecutionStatusReason}`);\n }\n return messages.length > 0 ? messages.join('\\n') : `Unknown error (Stack refactor ID: ${payload.reason?.StackRefactorId ?? 'unknown'})`;\n }\n catch (e) {\n return (0, util_1.formatErrorMessage)(error);\n }\n }\n }\n /**\n * Destroy Action\n *\n * Destroys the selected Stacks.\n */\n async destroy(cx, options = {}) {\n const env_10 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'destroy');\n const assembly = __addDisposableResource(env_10, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._destroy(assembly, 'destroy', options);\n }\n catch (e_10) {\n env_10.error = e_10;\n env_10.hasError = true;\n }\n finally {\n const result_10 = __disposeResources(env_10);\n if (result_10)\n await result_10;\n }\n }\n /**\n * Helper to allow destroy being called as part of the deploy action.\n */\n async _destroy(assembly, action, options) {\n const selectStacks = stacksOpt(options);\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const stacks = await assembly.selectStacksV2(selectStacks);\n const ret = {\n stacks: [],\n };\n const motivation = 'Destroying stacks is an irreversible action';\n const question = `Are you sure you want to delete: ${chalk.red(stacks.hierarchicalIds.join(', '))}`;\n const confirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I7010.req(question, { motivation }));\n if (!confirmed) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E7010.msg('Aborted by user'));\n return ret;\n }\n const concurrency = options.concurrency || 1;\n let destroyCount = 0;\n const destroySpan = await ioHelper.span(private_7.SPAN.DESTROY_ACTION).begin({\n stacks: stacks.stackArtifacts,\n });\n try {\n const destroyStack = async (stackNode) => {\n const stack = stackNode.stack;\n destroyCount++;\n try {\n const singleDestroySpan = await ioHelper.span(private_7.SPAN.DESTROY_STACK)\n .begin(chalk.green(`${chalk.blue(stack.displayName)}: destroying... [${destroyCount}/${stacks.stackCount}]`), {\n total: stacks.stackCount,\n current: destroyCount,\n stack,\n });\n const deployments = await this.deploymentsForAction(action);\n const result = await deployments.destroyStack({\n stack,\n deployName: stack.stackName,\n roleArn: options.roleArn,\n });\n ret.stacks.push({\n environment: {\n account: stack.environment.account,\n region: stack.environment.region,\n },\n stackName: stack.stackName,\n stackArn: result.stackArn,\n stackExisted: result.stackArn !== undefined,\n });\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I7900.msg(chalk.green(`\\n ✅ ${chalk.blue(stack.displayName)}: ${action}ed`), stack));\n await singleDestroySpan.end();\n }\n catch (e) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E7900.msg(`\\n ❌ ${chalk.blue(stack.displayName)}: ${action} failed ${e}`, { error: e }));\n throw e;\n }\n };\n const workGraph = (0, work_graph_1.buildDestroyWorkGraph)(stacks.stackArtifacts, ioHelper);\n await workGraph.processStacks(concurrency, destroyStack);\n return ret;\n }\n finally {\n await destroySpan.end();\n }\n }\n /**\n * Validate the stacks for errors and warnings according to the CLI's current settings\n */\n async validateStacksMetadata(stacks, ioHost) {\n const builder = (level) => {\n switch (level) {\n case 'error':\n return private_7.IO.CDK_ASSEMBLY_E9999;\n case 'warn':\n return private_7.IO.CDK_ASSEMBLY_W9999;\n default:\n return private_7.IO.CDK_ASSEMBLY_I9999;\n }\n };\n await stacks.validateMetadata(this.props.assemblyFailureAt, async (level, msg) => ioHost.notify(builder(level).msg(`[${level} at ${msg.id}] ${msg.entry.data}`, msg)));\n }\n /**\n * Create a deployments class\n */\n async deploymentsForAction(action) {\n return new deployments_1.Deployments({\n sdkProvider: await this.sdkProvider(action),\n toolkitStackName: this.toolkitStackName,\n ioHelper: (0, private_7.asIoHelper)(this.ioHost, action),\n });\n }\n async invokeDeployFromWatch(assembly, options, cloudWatchLogMonitor) {\n // watch defaults to hotswap deployment\n const deploymentMethod = options.deploymentMethod ?? { method: 'hotswap' };\n const deployOptions = {\n ...options,\n cloudWatchLogMonitor,\n deploymentMethod,\n extraUserAgent: `cdk-watch/hotswap-${deploymentMethod.method === 'hotswap' ? 'on' : 'off'}`,\n };\n try {\n await this._deploy(assembly, 'watch', zeroTime(), deployOptions);\n }\n catch {\n // just continue - deploy will show the error\n }\n }\n /**\n * Retrieve feature flag information from the cloud assembly\n */\n async flags(cx) {\n const env_11 = { stack: [], error: void 0, hasError: false };\n try {\n this.requireUnstableFeature('flags');\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'flags');\n const assembly = __addDisposableResource(env_11, await (0, private_1.assemblyFromSource)(ioHelper, cx), true);\n const artifacts = Object.values(assembly.cloudAssembly.manifest.artifacts ?? {});\n const featureFlagReports = artifacts.filter(a => a.type === cloud_assembly_schema_1.ArtifactType.FEATURE_FLAG_REPORT);\n const flags = featureFlagReports.flatMap(report => {\n const properties = report.properties;\n const moduleName = properties.module;\n const flagsWithUnconfiguredBehavesLike = Object.entries(properties.flags)\n .filter(([_, flagInfo]) => flagInfo.unconfiguredBehavesLike != undefined);\n const shouldIncludeUnconfiguredBehavesLike = flagsWithUnconfiguredBehavesLike.length > 0;\n return Object.entries(properties.flags).map(([flagName, flagInfo]) => {\n const baseFlag = {\n module: moduleName,\n name: flagName,\n recommendedValue: flagInfo.recommendedValue,\n userValue: flagInfo.userValue ?? undefined,\n explanation: flagInfo.explanation ?? '',\n };\n if (shouldIncludeUnconfiguredBehavesLike) {\n return {\n ...baseFlag,\n unconfiguredBehavesLike: {\n v2: flagInfo.unconfiguredBehavesLike?.v2 ?? false,\n },\n };\n }\n return baseFlag;\n });\n });\n return flags;\n }\n catch (e_11) {\n env_11.error = e_11;\n env_11.hasError = true;\n }\n finally {\n const result_11 = __disposeResources(env_11);\n if (result_11)\n await result_11;\n }\n }\n requireUnstableFeature(requestedFeature) {\n if (!this.unstableFeatures.includes(requestedFeature)) {\n throw new toolkit_error_1.ToolkitError('UnstableFeatureNotEnabled', `Unstable feature '${requestedFeature}' is not enabled. Please enable it under 'unstableFeatures'`);\n }\n }\n /**\n * Create a buildAsset function for use in WorkGraph\n */\n createBuildAssetFunction(ioHelper, deployments, roleArn) {\n return async (assetNode) => {\n const buildAssetSpan = await ioHelper.span(private_7.SPAN.BUILD_ASSET).begin({\n asset: assetNode.asset,\n });\n await deployments.buildSingleAsset(assetNode.assetManifestArtifact, assetNode.assetManifest, assetNode.asset, {\n stack: assetNode.parentStack,\n roleArn,\n stackName: assetNode.parentStack.stackName,\n });\n await buildAssetSpan.end();\n };\n }\n /**\n * Create a publishAsset function for use in WorkGraph\n */\n createPublishAssetFunction(ioHelper, deployments, roleArn, forcePublish) {\n return async (assetNode) => {\n const publishAssetSpan = await ioHelper.span(private_7.SPAN.PUBLISH_ASSET).begin({\n asset: assetNode.asset,\n });\n await deployments.publishSingleAsset(assetNode.assetManifest, assetNode.asset, {\n stack: assetNode.parentStack,\n roleArn,\n stackName: assetNode.parentStack.stackName,\n forcePublish,\n });\n await publishAssetSpan.end();\n };\n }\n}\nexports.Toolkit = Toolkit;\n/**\n * Centralize the default stack selection logic in a single place\n */\nfunction stacksOpt(o) {\n return o.stacks ?? private_6.ALL_STACKS;\n}\n/**\n * Perform synthesis and emit the time taken to a new span\n */\nasync function synthAndMeasure(ioHelper, cx, selectStacks) {\n const synthSpan = await ioHelper.span(private_7.SPAN.SYNTH_ASSEMBLY).begin({ stacks: selectStacks });\n try {\n const ret = await (0, private_1.assemblyFromSource)(synthSpan.asHelper, cx);\n (0, count_assembly_results_1.countAssemblyResults)(synthSpan, ret.assembly);\n const synthDuration = await synthSpan.end({});\n return Object.assign(ret, { synthDuration });\n }\n catch (error) {\n // End the span even if we had a failure\n await synthSpan.end({ error });\n throw error;\n }\n}\nfunction zeroTime() {\n return { asMs: 0, asSec: 0 };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFxQztBQUNyQyxrQ0FBa0M7QUFDbEMscURBQXFEO0FBRXJELDBFQUE4RDtBQUU5RCwrQkFBK0I7QUFDL0IscUNBQXFDO0FBQ3JDLG9EQUE2RDtBQUU3RDs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxtQkFBTSxDQUFDLEdBQUcsRUFBRSxtQkFBTSxDQUFDLE9BQU8sRUFBRSxtQkFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBTSxDQUFDLFVBQVUsQ0FBVSxDQUFDO0FBRzNHOztHQUVHO0FBQ0gsU0FBUyxXQUFXLENBQUMsS0FBZ0I7SUFDbkMsT0FBUSxXQUFpQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBQ0QsK0JBQStCO0FBQy9CLHVFQUFpRTtBQUVqRSx1Q0FBK0M7QUFDL0MsbURBQStDO0FBUS9DLG9EQUF1RDtBQUN2RCw4Q0FBdUU7QUFDdkUsdURBUW1DO0FBR25DLHFEQUFvRTtBQVFwRSxzREFBa0U7QUFDbEUsOENBS3lCO0FBQ3pCLHlFQUFzRTtBQUN0RSxxREFBdUU7QUFDdkUsZ0RBQWdEO0FBRWhELDBEQUFvRjtBQUVwRiwyREFBMkQ7QUFDM0QsaUZBQWtGO0FBQ2xGLHlFQUFrRjtBQUVsRixvREFBaUQ7QUFDakQsc0NBQTRDO0FBQzVDLHdDQUFnRDtBQUNoRCxrRUFBOEQ7QUFHOUQsK0NBQTZHO0FBQzdHLHNEQUF5RjtBQUN6RiwwQ0FBaUQ7QUFDakQsb0RBSzRCO0FBRTVCLHNFQUFzRjtBQUN0Rix3REFBZ0U7QUFDaEUsNEVBQWdGO0FBQ2hGLDREQUEwRDtBQUMxRCxpREFBbUQ7QUFDbkQsc0RBQWlFO0FBRWpFLGtEQUE0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QUFDO1FBRTlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLHdDQUF3QztRQUN4QyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFFBQVE7SUFDZixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vcHJpdmF0ZS9kaXNwb3NlLXBvbHlmaWxsJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnUmVwb3J0UHJvcGVydGllcyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBBcnRpZmFjdFR5cGUgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZURpZmYgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGNob2tpZGFyIGZyb20gJ2Nob2tpZGFyJztcbmltcG9ydCB7IHR5cGUgRXZlbnROYW1lLCBFVkVOVFMgfSBmcm9tICdjaG9raWRhci9oYW5kbGVyLmpzJztcblxuLyoqXG4gKiBGaWxlIGV2ZW50cyB0aGF0IHdlIGNhcmUgYWJvdXQgZnJvbSBjaG9raWRhci5cbiAqIEluIGNob2tpZGFyIHY0LCBFdmVudE5hbWUgaW5jbHVkZXMgYWRkaXRpb25hbCBldmVudHMgbGlrZSAnZXJyb3InLCAncmF3JywgJ3JlYWR5JywgJ2FsbCdcbiAqIHRoYXQgd2UgbmVlZCB0byBmaWx0ZXIgb3V0IGluIHRoZSAnYWxsJyBoYW5kbGVyLlxuICovXG5jb25zdCBGSUxFX0VWRU5UUyA9IFtFVkVOVFMuQURELCBFVkVOVFMuQUREX0RJUiwgRVZFTlRTLkNIQU5HRSwgRVZFTlRTLlVOTElOSywgRVZFTlRTLlVOTElOS19ESVJdIGFzIGNvbnN0O1xudHlwZSBGaWxlRXZlbnQgPSB0eXBlb2YgRklMRV9FVkVOVFNbbnVtYmVyXTtcblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGFuIGV2ZW50IGlzIGEgZmlsZSBldmVudCB3ZSBzaG91bGQgcHJvY2Vzcy5cbiAqL1xuZnVuY3Rpb24gaXNGaWxlRXZlbnQoZXZlbnQ6IEV2ZW50TmFtZSk6IGV2ZW50IGlzIEZpbGVFdmVudCB7XG4gIHJldHVybiAoRklMRV9FVkVOVFMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKGV2ZW50KTtcbn1cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IE5vbkludGVyYWN0aXZlSW9Ib3N0IH0gZnJvbSAnLi9ub24taW50ZXJhY3RpdmUtaW8taG9zdCc7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4vcHJpdmF0ZSc7XG5pbXBvcnQgeyBhc3NlbWJseUZyb21Tb3VyY2UgfSBmcm9tICcuL3ByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgRGVwbG95UmVzdWx0LCBEZXN0cm95UmVzdWx0LCBGZWF0dXJlRmxhZywgUm9sbGJhY2tSZXN1bHQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQm9vdHN0cmFwRW52aXJvbm1lbnRzLFxuICBCb290c3RyYXBPcHRpb25zLFxuICBCb290c3RyYXBSZXN1bHQsXG4gIEVudmlyb25tZW50Qm9vdHN0cmFwUmVzdWx0LFxufSBmcm9tICcuLi9hY3Rpb25zL2Jvb3RzdHJhcCc7XG5pbXBvcnQgeyBCb290c3RyYXBTb3VyY2UgfSBmcm9tICcuLi9hY3Rpb25zL2Jvb3RzdHJhcCc7XG5pbXBvcnQgeyBBc3NldEJ1aWxkVGltZSwgdHlwZSBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9kZXBsb3knO1xuaW1wb3J0IHtcbiAgYnVpbGRQYXJhbWV0ZXJNYXAsXG4gIGlzQ2hhbmdlU2V0RGVwbG95bWVudCxcbiAgaXNFeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50LFxuICBpc05vbkV4ZWN1dGluZ0NoYW5nZVNldERlcGxveW1lbnQsXG4gIHR5cGUgUHJpdmF0ZURlcGxveU9wdGlvbnMsXG4gIHJlbW92ZVB1Ymxpc2hlZEFzc2V0c0Zyb21Xb3JrR3JhcGgsXG4gIHRvRXhlY3V0ZUNoYW5nZVNldERlcGxveW1lbnQsXG59IGZyb20gJy4uL2FjdGlvbnMvZGVwbG95L3ByaXZhdGUnO1xuaW1wb3J0IHsgdHlwZSBEZXN0cm95T3B0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvZGVzdHJveSc7XG5pbXBvcnQgdHlwZSB7IERpZmZPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9kaWZmJztcbmltcG9ydCB7IGFwcGVuZE9iamVjdCwgcHJlcGFyZURpZmYgfSBmcm9tICcuLi9hY3Rpb25zL2RpZmYvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IERyaWZ0T3B0aW9ucywgRHJpZnRSZXN1bHQgfSBmcm9tICcuLi9hY3Rpb25zL2RyaWZ0JztcbmltcG9ydCB7IHR5cGUgTGlzdE9wdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zL2xpc3QnO1xuaW1wb3J0IHR5cGUgeyBQdWJsaXNoQXNzZXRzT3B0aW9ucywgUHVibGlzaEFzc2V0c1Jlc3VsdCB9IGZyb20gJy4uL2FjdGlvbnMvcHVibGlzaC1hc3NldHMnO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3Rvck9wdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zL3JlZmFjdG9yJztcbmltcG9ydCB7IHR5cGUgUm9sbGJhY2tPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9yb2xsYmFjayc7XG5pbXBvcnQgeyB0eXBlIFN5bnRoT3B0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvc3ludGgnO1xuaW1wb3J0IHR5cGUgeyBJV2F0Y2hlciwgV2F0Y2hPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy93YXRjaCc7XG5pbXBvcnQgeyBXQVRDSF9FWENMVURFX0RFRkFVTFRTIH0gZnJvbSAnLi4vYWN0aW9ucy93YXRjaC9wcml2YXRlJztcbmltcG9ydCB7XG4gIEJhc2VDcmVkZW50aWFscyxcbiAgdHlwZSBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIsXG4gIHR5cGUgU2RrQmFzZUNsaWVudENvbmZpZyxcbiAgdHlwZSBTZGtDb25maWcsXG59IGZyb20gJy4uL2FwaS9hd3MtYXV0aCc7XG5pbXBvcnQgeyBzZGtSZXF1ZXN0SGFuZGxlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9hd3NjbGktY29tcGF0aWJsZSc7XG5pbXBvcnQgeyBJb0hvc3RTZGtMb2dnZXIsIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgQm9vdHN0cmFwcGVyIH0gZnJvbSAnLi4vYXBpL2Jvb3RzdHJhcCc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlLCBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IENhY2hlZENsb3VkQXNzZW1ibHksIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9hcGkvY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBTdGFja0Fzc2VtYmx5IH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3ByaXZhdGUnO1xuaW1wb3J0IHsgQUxMX1NUQUNLUyB9IGZyb20gJy4uL2FwaS9jbG91ZC1hc3NlbWJseS9wcml2YXRlJztcbmltcG9ydCB7IEFzeW5jRGlzcG9zYWJsZUJveCB9IGZyb20gJy4uL2FwaS9jbG91ZC1hc3NlbWJseS9wcml2YXRlL2Rpc3Bvc2FibGUtYm94JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3NvdXJjZS1idWlsZGVyJztcbmltcG9ydCB0eXBlIHsgU3RhY2tDb2xsZWN0aW9uIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3N0YWNrLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgRGlmZkZvcm1hdHRlciB9IGZyb20gJy4uL2FwaS9kaWZmJztcbmltcG9ydCB7IGRldGVjdFN0YWNrRHJpZnQgfSBmcm9tICcuLi9hcGkvZHJpZnQnO1xuaW1wb3J0IHsgRHJpZnRGb3JtYXR0ZXIgfSBmcm9tICcuLi9hcGkvZHJpZnQvZHJpZnQtZm9ybWF0dGVyJztcbmltcG9ydCB0eXBlIHsgSUlvSG9zdCwgSW9NZXNzYWdlTGV2ZWwsIFRvb2xraXRBY3Rpb24gfSBmcm9tICcuLi9hcGkvaW8nO1xuaW1wb3J0IHR5cGUgeyBFbGFwc2VkVGltZSwgSW9IZWxwZXIgfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBhc0lvSGVscGVyLCBJTywgU1BBTiwgd2l0aG91dENvbG9yLCB3aXRob3V0RW1vamlzLCB3aXRoVHJpbW1lZFdoaXRlc3BhY2UgfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yLCBmaW5kQ2xvdWRXYXRjaExvZ0dyb3VwcyB9IGZyb20gJy4uL2FwaS9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHsgTW9kZSwgUGx1Z2luSG9zdCB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHtcbiAgZm9ybWF0QW1iaWd1b3VzTWFwcGluZ3MsXG4gIGZvcm1hdEVudmlyb25tZW50U2VjdGlvbkhlYWRlcixcbiAgZm9ybWF0VHlwZWRNYXBwaW5ncyxcbiAgZ3JvdXBTdGFja3MsXG59IGZyb20gJy4uL2FwaS9yZWZhY3RvcmluZyc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2sgfSBmcm9tICcuLi9hcGkvcmVmYWN0b3JpbmcvY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgUmVzb3VyY2VNYXBwaW5nLCBSZXNvdXJjZUxvY2F0aW9uIH0gZnJvbSAnLi4vYXBpL3JlZmFjdG9yaW5nL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFJlZmFjdG9yaW5nQ29udGV4dCB9IGZyb20gJy4uL2FwaS9yZWZhY3RvcmluZy9jb250ZXh0JztcbmltcG9ydCB7IGdlbmVyYXRlU3RhY2tEZWZpbml0aW9ucyB9IGZyb20gJy4uL2FwaS9yZWZhY3RvcmluZy9zdGFjay1kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBSZXNvdXJjZU1pZ3JhdG9yIH0gZnJvbSAnLi4vYXBpL3Jlc291cmNlLWltcG9ydCc7XG5pbXBvcnQgeyB0YWdzRm9yU3RhY2sgfSBmcm9tICcuLi9hcGkvdGFncy9wcml2YXRlJztcbmltcG9ydCB7IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FIH0gZnJvbSAnLi4vYXBpL3Rvb2xraXQtaW5mbyc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0QnVpbGROb2RlLCBBc3NldFB1Ymxpc2hOb2RlLCBDb25jdXJyZW5jeSwgU3RhY2tOb2RlIH0gZnJvbSAnLi4vYXBpL3dvcmstZ3JhcGgnO1xuaW1wb3J0IHsgV29ya0dyYXBoQnVpbGRlciwgYnVpbGREZXN0cm95V29ya0dyYXBoIH0gZnJvbSAnLi4vYXBpL3dvcmstZ3JhcGgnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURhdGEsIFJlZmFjdG9yUmVzdWx0LCBTdGFja0RldGFpbHMsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uL3BheWxvYWRzJztcbmltcG9ydCB7IFBlcm1pc3Npb25DaGFuZ2VUeXBlIH0gZnJvbSAnLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlLCBmb3JtYXRUaW1lLCBvYnNjdXJlVGVtcGxhdGUsIHNlcmlhbGl6ZVN0cnVjdHVyZSwgdmFsaWRhdGVTbnNUb3BpY0FybiB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgcExpbWl0IH0gZnJvbSAnLi4vdXRpbC9jb25jdXJyZW5jeSc7XG5pbXBvcnQgeyBjcmVhdGVJZ25vcmVNYXRjaGVyIH0gZnJvbSAnLi4vdXRpbC9nbG9iLW1hdGNoZXInO1xuaW1wb3J0IHsgcHJvbWlzZVdpdGhSZXNvbHZlcnMgfSBmcm9tICcuLi91dGlsL3Byb21pc2VzJztcbmltcG9ydCB7IGNvdW50QXNzZW1ibHlSZXN1bHRzIH0gZnJvbSAnLi9wcml2YXRlL2NvdW50LWFzc2VtYmx5LXJlc3VsdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xraXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJb0hvc3QgaW1wbGVtZW50YXRpb24sIGhhbmRsaW5nIHRoZSBpbmxpbmUgaW50ZXJhY3Rpb25zIGJldHdlZW4gdGhlIFRvb2xraXQgYW5kIGFuIGludGVncmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaW9Ib3N0PzogSUlvSG9zdDtcblxuICAvKipcbiAgICogQWxsb3cgZW1vamlzIGluIG1lc3NhZ2VzIHNlbnQgdG8gdGhlIElvSG9zdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW1vamlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyBBTlNJIGNvbG9ycyBhbmQgZm9ybWF0dGluZyBpbiBJb0hvc3QgbWVzc2FnZXMuXG4gICAqIFNldHRpbmcgdGhpcyB2YWx1ZSB0byBgZmFsc2VgIGVuZm9yY2VzIHRoYXQgbm8gY29sb3Igb3Igc3R5bGUgc2hvd3MgdXBcbiAgICogaW4gbWVzc2FnZXMgc2VudCB0byB0aGUgSW9Ib3N0LlxuICAgKiBTZXR0aW5nIHRoaXMgdmFsdWUgdG8gdHJ1ZSBpcyBhIG5vLW9wOyBpdCBpcyBlcXVpdmFsZW50IHRvIHRoZSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERldGVjdHMgY29sb3IgZnJvbSB0aGUgVFRZIHN0YXR1cyBvZiB0aGUgSW9Ib3N0XG4gICAqL1xuICByZWFkb25seSBjb2xvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFNESy5cbiAgICovXG4gIHJlYWRvbmx5IHNka0NvbmZpZz86IFNka0NvbmZpZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgdG9vbGtpdCBzdGFjayB0byBiZSB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkNES1Rvb2xraXRcIlxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRmFpbCBDbG91ZCBBc3NlbWJsaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZXJyb3JcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZW1ibHlGYWlsdXJlQXQ/OiAnZXJyb3InIHwgJ3dhcm4nIHwgJ25vbmUnO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGhvc3QgdG8gdXNlIGZvciBsb2FkaW5nIGFuZCBxdWVyeWluZyBwbHVnaW5zXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGEgdW5pcXVlIGluc3RhbmNlIG9mIGEgcGx1Z2luIG1hbmFnaW5nIGNsYXNzIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogVXNlIGB0b29sa2l0LnBsdWdpbkhvc3QubG9hZCgpYCB0byBsb2FkIHBsdWdpbnMgaW50byB0aGUgcGx1Z2luIGhvc3QgZnJvbSBkaXNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgZnJlc2ggcGx1Z2luIGhvc3RcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbkhvc3Q/OiBQbHVnaW5Ib3N0O1xuXG4gIC8qKlxuICAgKiBTZXQgb2YgdW5zdGFibGUgZmVhdHVyZXMgdG8gb3B0IGludG8uIElmIHlvdSBhcmUgdXNpbmcgYW4gdW5zdGFibGUgZmVhdHVyZSxcbiAgICogeW91IG11c3QgZXhwbGljaXRseSBhY2tub3dsZWRnZSB0aGF0IHlvdSBhcmUgYXdhcmUgb2YgdGhlIHJpc2tzIG9mIHVzaW5nIGl0LFxuICAgKiBieSBwYXNzaW5nIGl0IGluIHRoaXMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgdW5zdGFibGVGZWF0dXJlcz86IEFycmF5PFVuc3RhYmxlRmVhdHVyZT47XG59XG5cbi8qKlxuICogTmFtZXMgb2YgdG9vbGtpdCBmZWF0dXJlcyB0aGF0IGFyZSBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCwgYW5kIG1heSBjaGFuZ2UgaW5cbiAqIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVuc3RhYmxlRmVhdHVyZSA9ICdyZWZhY3RvcicgfCAnZmxhZ3MnIHwgJ3B1Ymxpc2gtYXNzZXRzJztcblxuLyoqXG4gKiBUaGUgQVdTIENESyBQcm9ncmFtbWF0aWMgVG9vbGtpdFxuICovXG5leHBvcnQgY2xhc3MgVG9vbGtpdCBleHRlbmRzIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHtcbiAgLyoqXG4gICAqIFRoZSB0b29sa2l0IHN0YWNrIG5hbWUgdXNlZCBmb3IgYm9vdHN0cmFwcGluZyByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSW9Ib3N0IG9mIHRoaXMgVG9vbGtpdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlvSG9zdDogSUlvSG9zdDtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBob3N0IGZvciBsb2FkaW5nIGFuZCBtYW5hZ2luZyBwbHVnaW5zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGx1Z2luSG9zdDogUGx1Z2luSG9zdDtcblxuICAvKipcbiAgICogQ2FjaGUgb2YgdGhlIGludGVybmFsIFNESyBQcm92aWRlciBpbnN0YW5jZVxuICAgKi9cbiAgcHJpdmF0ZSBzZGtQcm92aWRlckNhY2hlPzogU2RrUHJvdmlkZXI7XG5cbiAgcHJpdmF0ZSBiYXNlQ3JlZGVudGlhbHM6IElCYXNlQ3JlZGVudGlhbHNQcm92aWRlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVuc3RhYmxlRmVhdHVyZXM6IEFycmF5PFVuc3RhYmxlRmVhdHVyZT47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFRvb2xraXRPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudG9vbGtpdFN0YWNrTmFtZSA9IHByb3BzLnRvb2xraXRTdGFja05hbWUgPz8gREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUU7XG5cbiAgICB0aGlzLnBsdWdpbkhvc3QgPSBwcm9wcy5wbHVnaW5Ib3N0ID8/IG5ldyBQbHVnaW5Ib3N0KCk7XG5cbiAgICBsZXQgaW9Ib3N0ID0gcHJvcHMuaW9Ib3N0ID8/IG5ldyBOb25JbnRlcmFjdGl2ZUlvSG9zdCgpO1xuICAgIGlmIChwcm9wcy5lbW9qaXMgPT09IGZhbHNlKSB7XG4gICAgICBpb0hvc3QgPSB3aXRob3V0RW1vamlzKGlvSG9zdCk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5jb2xvciA9PT0gZmFsc2UpIHtcbiAgICAgIGlvSG9zdCA9IHdpdGhvdXRDb2xvcihpb0hvc3QpO1xuICAgIH1cbiAgICAvLyBBZnRlciByZW1vdmluZyBlbW9qaXMgYW5kIGNvbG9yLCB3ZSBtaWdodCBlbmQgdXAgd2l0aCBmbG9hdGluZyB3aGl0ZXNwYWNlIGF0IGVpdGhlciBlbmQgb2YgdGhlIG1lc3NhZ2VcbiAgICAvLyBUaGlzIGFsc28gcmVtb3ZlcyBuZXdsaW5lcyB0aGF0IHdlIGN1cnJlbnRseSBlbWl0IGZvciBDTEkgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gICAgdGhpcy5pb0hvc3QgPSB3aXRoVHJpbW1lZFdoaXRlc3BhY2UoaW9Ib3N0KTtcblxuICAgIHRoaXMuYmFzZUNyZWRlbnRpYWxzID0gcHJvcHMuc2RrQ29uZmlnPy5iYXNlQ3JlZGVudGlhbHMgPz8gQmFzZUNyZWRlbnRpYWxzLmF3c0NsaUNvbXBhdGlibGUoKTtcbiAgICB0aGlzLnVuc3RhYmxlRmVhdHVyZXMgPSBwcm9wcy51bnN0YWJsZUZlYXR1cmVzID8/IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0byB0aGUgQVdTIFNES1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBzZGtQcm92aWRlcihhY3Rpb246IFRvb2xraXRBY3Rpb24pOiBQcm9taXNlPFNka1Byb3ZpZGVyPiB7XG4gICAgLy8gQHRvZG8gdGhpcyBuZWVkcyB0byBiZSBkaWZmZXJlbnQgaW5zdGFuY2UgcGVyIGFjdGlvblxuICAgIGlmICghdGhpcy5zZGtQcm92aWRlckNhY2hlKSB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsIGFjdGlvbik7XG4gICAgICBjb25zdCBjbGllbnRDb25maWc6IFNka0Jhc2VDbGllbnRDb25maWcgPSB7XG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBzZGtSZXF1ZXN0SGFuZGxlcih0aGlzLnByb3BzLnNka0NvbmZpZz8uaHR0cE9wdGlvbnM/LmFnZW50KSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuYmFzZUNyZWRlbnRpYWxzLnNka0Jhc2VDb25maWcoaW9IZWxwZXIsIGNsaWVudENvbmZpZyk7XG4gICAgICB0aGlzLnNka1Byb3ZpZGVyQ2FjaGUgPSBuZXcgU2RrUHJvdmlkZXIoY29uZmlnLmNyZWRlbnRpYWxQcm92aWRlciwgY29uZmlnLmRlZmF1bHRSZWdpb24sIHtcbiAgICAgICAgaW9IZWxwZXIsXG4gICAgICAgIGxvZ2dlcjogbmV3IElvSG9zdFNka0xvZ2dlcihpb0hlbHBlciksXG4gICAgICAgIHBsdWdpbkhvc3Q6IHRoaXMucGx1Z2luSG9zdCxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IGNsaWVudENvbmZpZy5yZXF1ZXN0SGFuZGxlcixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNka1Byb3ZpZGVyQ2FjaGU7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIHByb3ZpZGUgdGhlIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHdpdGggcmVxdWlyZWQgdG9vbGtpdCBzZXJ2aWNlc1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBzb3VyY2VCdWlsZGVyU2VydmljZXMoKTogUHJvbWlzZTxUb29sa2l0U2VydmljZXM+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW9IZWxwZXI6IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdhc3NlbWJseScpLFxuICAgICAgc2RrUHJvdmlkZXI6IGF3YWl0IHRoaXMuc2RrUHJvdmlkZXIoJ2Fzc2VtYmx5JyksXG4gICAgICBwbHVnaW5Ib3N0OiB0aGlzLnBsdWdpbkhvc3QsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCb290c3RyYXAgQWN0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYm9vdHN0cmFwKGVudmlyb25tZW50czogQm9vdHN0cmFwRW52aXJvbm1lbnRzLCBvcHRpb25zOiBCb290c3RyYXBPcHRpb25zID0ge30pOiBQcm9taXNlPEJvb3RzdHJhcFJlc3VsdD4ge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgY29uc3QgcmVzdWx0czogRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHRbXSA9IFtdO1xuXG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgY29uc3QgYm9vdHN0cmFwRW52aXJvbm1lbnRzID0gYXdhaXQgZW52aXJvbm1lbnRzLmdldEVudmlyb25tZW50cyh0aGlzLmlvSG9zdCk7XG4gICAgY29uc3Qgc291cmNlID0gb3B0aW9ucy5zb3VyY2UgPz8gQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gb3B0aW9ucy5wYXJhbWV0ZXJzO1xuICAgIGNvbnN0IGJvb3RzdHJhcHBlciA9IG5ldyBCb290c3RyYXBwZXIoc291cmNlLCBpb0hlbHBlcik7XG4gICAgY29uc3Qgc2RrUHJvdmlkZXIgPSBhd2FpdCB0aGlzLnNka1Byb3ZpZGVyKCdib290c3RyYXAnKTtcbiAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCgyMCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICBhd2FpdCBQcm9taXNlLmFsbChib290c3RyYXBFbnZpcm9ubWVudHMubWFwKChlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsIGN1cnJlbnRJZHgpID0+IGxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJvb3RzdHJhcFNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uQk9PVFNUUkFQX1NJTkdMRSlcbiAgICAgICAgLmJlZ2luKGAke2NoYWxrLmJvbGQoZW52aXJvbm1lbnQubmFtZSl9OiBib290c3RyYXBwaW5nLi4uYCwge1xuICAgICAgICAgIHRvdGFsOiBib290c3RyYXBFbnZpcm9ubWVudHMubGVuZ3RoLFxuICAgICAgICAgIGN1cnJlbnQ6IGN1cnJlbnRJZHggKyAxLFxuICAgICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYm9vdHN0cmFwUmVzdWx0ID0gYXdhaXQgYm9vdHN0cmFwcGVyLmJvb3RzdHJhcEVudmlyb25tZW50KFxuICAgICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICAgIHNka1Byb3ZpZGVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICB0b29sa2l0U3RhY2tOYW1lOiB0aGlzLnRvb2xraXRTdGFja05hbWUsXG4gICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzPy5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgdXNlUHJldmlvdXNQYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzPy5rZWVwRXhpc3RpbmdQYXJhbWV0ZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGJvb3RzdHJhcFJlc3VsdC5ub09wXG4gICAgICAgICAgPyBgIOKchSAgJHtlbnZpcm9ubWVudC5uYW1lfSAobm8gY2hhbmdlcylgXG4gICAgICAgICAgOiBgIOKchSAgJHtlbnZpcm9ubWVudC5uYW1lfWA7XG5cbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k5OTAwLm1zZyhjaGFsay5ncmVlbignXFxuJyArIG1lc3NhZ2UpLCB7IGVudmlyb25tZW50IH0pKTtcbiAgICAgICAgY29uc3QgZW52VGltZSA9IGF3YWl0IGJvb3RzdHJhcFNwYW4uZW5kKCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHQgPSB7XG4gICAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgICAgc3RhdHVzOiBib290c3RyYXBSZXN1bHQubm9PcCA/ICduby1vcCcgOiAnc3VjY2VzcycsXG4gICAgICAgICAgZHVyYXRpb246IGVudlRpbWUuYXNNcyxcbiAgICAgICAgfTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0U5OTAwLm1zZyhgXFxuIOKdjCAgJHtjaGFsay5ib2xkKGVudmlyb25tZW50Lm5hbWUpfSBmYWlsZWQ6ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZW52aXJvbm1lbnRzOiByZXN1bHRzLFxuICAgICAgZHVyYXRpb246IERhdGUubm93KCkgLSBzdGFydFRpbWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aCBBY3Rpb25cbiAgICpcbiAgICogVGhlIGNhbGxlciBhc3N1bWVzIG93bmVyc2hpcCBvZiB0aGUgYENhY2hlZENsb3VkQXNzZW1ibHlgIGFuZCBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBgZGlzcG9zZSgpYCBvblxuICAgKiBpdCBhZnRlciB1c2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3ludGgoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBTeW50aE9wdGlvbnMgPSB7fSk6IFByb21pc2U8Q2FjaGVkQ2xvdWRBc3NlbWJseT4ge1xuICAgIGNvbnN0IGlvSGVscGVyID0gYXNJb0hlbHBlcih0aGlzLmlvSG9zdCwgJ3N5bnRoJyk7XG5cbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IG5ldyBBc3luY0Rpc3Bvc2FibGVCb3goYXdhaXQgc3ludGhBbmRNZWFzdXJlKGlvSGVscGVyLCBjeCwgc3RhY2tzT3B0KG9wdGlvbnMpKSk7XG4gICAgY29uc3Qgc3RhY2tzID0gYXdhaXQgYXNzZW1ibHkudmFsdWUuc2VsZWN0U3RhY2tzVjIoc3RhY2tzT3B0KG9wdGlvbnMpKTtcbiAgICBjb25zdCBhdXRvVmFsaWRhdGVTdGFja3MgPSBvcHRpb25zLnZhbGlkYXRlU3RhY2tzID8gW2Fzc2VtYmx5LnZhbHVlLnNlbGVjdFN0YWNrc0ZvclZhbGlkYXRpb24oKV0gOiBbXTtcbiAgICBhd2FpdCB0aGlzLnZhbGlkYXRlU3RhY2tzTWV0YWRhdGEoc3RhY2tzLmNvbmNhdCguLi5hdXRvVmFsaWRhdGVTdGFja3MpLCBpb0hlbHBlcik7XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGEgc2luZ2xlIHN0YWNrLCBwcmludCBpdCB0byBTVERPVVRcbiAgICBjb25zdCBtZXNzYWdlID0gYFN1Y2Nlc3NmdWxseSBzeW50aGVzaXplZCB0byAke2NoYWxrLmJsdWUocGF0aC5yZXNvbHZlKHN0YWNrcy5hc3NlbWJseS5kaXJlY3RvcnkpKX1gO1xuICAgIGNvbnN0IGFzc2VtYmx5RGF0YTogQXNzZW1ibHlEYXRhID0ge1xuICAgICAgYXNzZW1ibHlEaXJlY3Rvcnk6IHN0YWNrcy5hc3NlbWJseS5kaXJlY3RvcnksXG4gICAgICBzdGFja3NDb3VudDogc3RhY2tzLnN0YWNrQ291bnQsXG4gICAgICBzdGFja0lkczogc3RhY2tzLmhpZXJhcmNoaWNhbElkcyxcbiAgICB9O1xuXG4gICAgaWYgKHN0YWNrcy5zdGFja0NvdW50ID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdFN0YWNrID0gc3RhY2tzLmZpcnN0U3RhY2shO1xuICAgICAgY29uc3QgdGVtcGxhdGUgPSBmaXJzdFN0YWNrLnRlbXBsYXRlO1xuICAgICAgY29uc3Qgb2JzY3VyZWRUZW1wbGF0ZSA9IG9ic2N1cmVUZW1wbGF0ZSh0ZW1wbGF0ZSk7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTE5MDEubXNnKG1lc3NhZ2UsIHtcbiAgICAgICAgLi4uYXNzZW1ibHlEYXRhLFxuICAgICAgICBzdGFjazoge1xuICAgICAgICAgIHN0YWNrTmFtZTogZmlyc3RTdGFjay5zdGFja05hbWUsXG4gICAgICAgICAgaGllcmFyY2hpY2FsSWQ6IGZpcnN0U3RhY2suaGllcmFyY2hpY2FsSWQsXG4gICAgICAgICAgdGVtcGxhdGUsXG4gICAgICAgICAgc3RyaW5naWZpZWRKc29uOiBzZXJpYWxpemVTdHJ1Y3R1cmUob2JzY3VyZWRUZW1wbGF0ZSwgdHJ1ZSksXG4gICAgICAgICAgc3RyaW5naWZpZWRZYW1sOiBzZXJpYWxpemVTdHJ1Y3R1cmUob2JzY3VyZWRUZW1wbGF0ZSwgZmFsc2UpLFxuICAgICAgICB9LFxuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBub3Qgb3V0cHV0dGluZyB0ZW1wbGF0ZSB0byBzdGRvdXQsIGxldCdzIGV4cGxhaW4gdGhpbmdzIHRvIHRoZSB1c2VyIGEgbGl0dGxlIGJpdC4uLlxuICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kxOTAyLm1zZyhjaGFsay5ncmVlbihtZXNzYWdlKSwgYXNzZW1ibHlEYXRhKSk7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGBTdXBwbHkgYSBzdGFjayBpZCAoJHtzdGFja3Muc3RhY2tBcnRpZmFjdHMubWFwKChzKSA9PiBjaGFsay5ncmVlbihzLmhpZXJhcmNoaWNhbElkKSkuam9pbignLCAnKX0pIHRvIGRpc3BsYXkgaXRzIHRlbXBsYXRlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ2FjaGVkQ2xvdWRBc3NlbWJseShhc3NlbWJseS50YWtlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpZmYgQWN0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGlmZihjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIG9wdGlvbnM6IERpZmZPcHRpb25zID0ge30pOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9PiB7XG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAnZGlmZicpO1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IHN5bnRoQW5kTWVhc3VyZShpb0hlbHBlciwgY3gsIHNlbGVjdFN0YWNrcyk7XG5cbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuICAgIGNvbnN0IGRpZmZTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRJRkZfU1RBQ0spLmJlZ2luKHsgc3RhY2tzOiBzZWxlY3RTdGFja3MgfSk7XG4gICAgY29uc3QgZGVwbG95bWVudHMgPSBhd2FpdCB0aGlzLmRlcGxveW1lbnRzRm9yQWN0aW9uKCdkaWZmJyk7XG5cbiAgICBjb25zdCBzdHJpY3QgPSAhIW9wdGlvbnMuc3RyaWN0O1xuICAgIGNvbnN0IGNvbnRleHRMaW5lcyA9IG9wdGlvbnMuY29udGV4dExpbmVzIHx8IDM7XG5cbiAgICBsZXQgZGlmZnMgPSAwO1xuICAgIGxldCBzZWN1cml0eURpZmZzID0gMDtcblxuICAgIGNvbnN0IHRlbXBsYXRlSW5mb3MgPSBhd2FpdCBwcmVwYXJlRGlmZihkaWZmU3Bhbi5hc0hlbHBlciwgc3RhY2tzLCBkZXBsb3ltZW50cywgYXdhaXQgdGhpcy5zZGtQcm92aWRlcignZGlmZicpLCBvcHRpb25zKTtcbiAgICBjb25zdCB0ZW1wbGF0ZURpZmZzOiB7IFtuYW1lOiBzdHJpbmddOiBUZW1wbGF0ZURpZmYgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGVJbmZvIG9mIHRlbXBsYXRlSW5mb3MpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBEaWZmRm9ybWF0dGVyKHsgdGVtcGxhdGVJbmZvIH0pO1xuICAgICAgY29uc3Qgc3RhY2tEaWZmID0gZm9ybWF0dGVyLmZvcm1hdFN0YWNrRGlmZih7IHN0cmljdCwgY29udGV4dExpbmVzIH0pO1xuXG4gICAgICAvLyBTZWN1cml0eSBEaWZmXG4gICAgICBjb25zdCBzZWN1cml0eURpZmYgPSBmb3JtYXR0ZXIuZm9ybWF0U2VjdXJpdHlEaWZmKCk7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRTZWN1cml0eURpZmYgPSBzZWN1cml0eURpZmYucGVybWlzc2lvbkNoYW5nZVR5cGUgIT09IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTkUgPyBzdGFja0RpZmYuZm9ybWF0dGVkRGlmZiA6IHVuZGVmaW5lZDtcbiAgICAgIC8vIFdlIG9ubHkgd2FybiBhYm91dCBCUk9BREVOSU5HIGNoYW5nZXNcbiAgICAgIGlmIChzZWN1cml0eURpZmYucGVybWlzc2lvbkNoYW5nZVR5cGUgPT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuQlJPQURFTklORykge1xuICAgICAgICBjb25zdCB3YXJuaW5nTWVzc2FnZSA9ICdUaGlzIGRlcGxveW1lbnQgd2lsbCBtYWtlIHBvdGVudGlhbGx5IHNlbnNpdGl2ZSBjaGFuZ2VzIGFjY29yZGluZyB0byB5b3VyIGN1cnJlbnQgc2VjdXJpdHkgYXBwcm92YWwgbGV2ZWwuXFxuUGxlYXNlIGNvbmZpcm0geW91IGludGVuZCB0byBtYWtlIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcXG4nO1xuICAgICAgICBhd2FpdCBkaWZmU3Bhbi5kZWZhdWx0cy53YXJuKHdhcm5pbmdNZXNzYWdlKTtcbiAgICAgICAgYXdhaXQgZGlmZlNwYW4uZGVmYXVsdHMuaW5mbyhzZWN1cml0eURpZmYuZm9ybWF0dGVkRGlmZik7XG4gICAgICB9XG5cbiAgICAgIC8vIFN0YWNrIERpZmZcbiAgICAgIGRpZmZzICs9IHN0YWNrRGlmZi5udW1TdGFja3NXaXRoQ2hhbmdlcztcbiAgICAgIHNlY3VyaXR5RGlmZnMgKz0gc2VjdXJpdHlEaWZmLm51bVN0YWNrc1dpdGhDaGFuZ2VzO1xuICAgICAgYXBwZW5kT2JqZWN0KHRlbXBsYXRlRGlmZnMsIGZvcm1hdHRlci5kaWZmcyk7XG4gICAgICBhd2FpdCBkaWZmU3Bhbi5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTQwMDIubXNnKHN0YWNrRGlmZi5mb3JtYXR0ZWREaWZmLCB7XG4gICAgICAgIHN0YWNrOiB0ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUsXG4gICAgICAgIGRpZmZzOiBmb3JtYXR0ZXIuZGlmZnMsXG4gICAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBzdGFja0RpZmYubnVtU3RhY2tzV2l0aENoYW5nZXMsXG4gICAgICAgIG51bVN0YWNrc1dpdGhTZWN1cml0eUNoYW5nZXM6IHNlY3VyaXR5RGlmZi5udW1TdGFja3NXaXRoQ2hhbmdlcyxcbiAgICAgICAgcGVybWlzc2lvbkNoYW5nZXM6IHNlY3VyaXR5RGlmZi5wZXJtaXNzaW9uQ2hhbmdlVHlwZSxcbiAgICAgICAgZm9ybWF0dGVkRGlmZjoge1xuICAgICAgICAgIGRpZmY6IHN0YWNrRGlmZi5mb3JtYXR0ZWREaWZmLFxuICAgICAgICAgIHNlY3VyaXR5OiBmb3JtYXR0ZWRTZWN1cml0eURpZmYsXG4gICAgICAgIH0sXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgZGlmZlNwYW4uZW5kKGDinKggTnVtYmVyIG9mIHN0YWNrcyB3aXRoIGRpZmZlcmVuY2VzOiAke2RpZmZzfWAsIHtcbiAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBkaWZmcyxcbiAgICAgIG51bVN0YWNrc1dpdGhTZWN1cml0eUNoYW5nZXM6IHNlY3VyaXR5RGlmZnMsXG4gICAgICBkaWZmczogdGVtcGxhdGVEaWZmcyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZW1wbGF0ZURpZmZzO1xuICB9XG5cbiAgLyoqXG4gICAqIERyaWZ0IEFjdGlvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRyaWZ0KGN4OiBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgb3B0aW9uczogRHJpZnRPcHRpb25zID0ge30pOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IERyaWZ0UmVzdWx0IH0+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdkcmlmdCcpO1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IHN5bnRoQW5kTWVhc3VyZShpb0hlbHBlciwgY3gsIHNlbGVjdFN0YWNrcyk7XG5cbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuXG4gICAgY29uc3QgZHJpZnRTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRSSUZUX0FQUCkuYmVnaW4oeyBzdGFja3M6IHNlbGVjdFN0YWNrcyB9KTtcbiAgICBjb25zdCBhbGxEcmlmdFJlc3VsdHM6IHsgW25hbWU6IHN0cmluZ106IERyaWZ0UmVzdWx0IH0gPSB7fTtcbiAgICBjb25zdCB1bmF2YWlsYWJsZURyaWZ0cyA9IFtdO1xuICAgIGNvbnN0IHNka1Byb3ZpZGVyID0gYXdhaXQgdGhpcy5zZGtQcm92aWRlcignZHJpZnQnKTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2Ygc3RhY2tzLnN0YWNrQXJ0aWZhY3RzKSB7XG4gICAgICBjb25zdCBjZm4gPSAoYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQoc3RhY2suZW52aXJvbm1lbnQsIE1vZGUuRm9yUmVhZGluZykpLnNkay5jbG91ZEZvcm1hdGlvbigpO1xuICAgICAgY29uc3QgZHJpZnRSZXN1bHRzID0gYXdhaXQgZGV0ZWN0U3RhY2tEcmlmdChjZm4sIGRyaWZ0U3Bhbi5hc0hlbHBlciwgc3RhY2suc3RhY2tOYW1lKTtcblxuICAgICAgaWYgKCFkcmlmdFJlc3VsdHMuU3RhY2tSZXNvdXJjZURyaWZ0cykge1xuICAgICAgICBjb25zdCBzdGFja05hbWUgPSBzdGFjay5kaXNwbGF5TmFtZSA/PyBzdGFjay5zdGFja05hbWU7XG4gICAgICAgIHVuYXZhaWxhYmxlRHJpZnRzLnB1c2goc3RhY2tOYW1lKTtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLm5vdGlmeShJTy5DREtfVE9PTEtJVF9XNDU5MS5tc2coYCR7c3RhY2tOYW1lfTogTm8gZHJpZnQgcmVzdWx0cyBhdmFpbGFibGVgLCB7IHN0YWNrIH0pKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBEcmlmdEZvcm1hdHRlcih7IHN0YWNrLCByZXNvdXJjZURyaWZ0czogZHJpZnRSZXN1bHRzLlN0YWNrUmVzb3VyY2VEcmlmdHMgfSk7XG4gICAgICBjb25zdCBkcmlmdE91dHB1dCA9IGZvcm1hdHRlci5mb3JtYXRTdGFja0RyaWZ0KCk7XG4gICAgICBjb25zdCBzdGFja0RyaWZ0ID0ge1xuICAgICAgICBudW1SZXNvdXJjZXNXaXRoRHJpZnQ6IGRyaWZ0T3V0cHV0Lm51bVJlc291cmNlc1dpdGhEcmlmdCxcbiAgICAgICAgbnVtUmVzb3VyY2VzVW5jaGVja2VkOiBkcmlmdE91dHB1dC5udW1SZXNvdXJjZXNVbmNoZWNrZWQsXG4gICAgICAgIGZvcm1hdHRlZERyaWZ0OiB7XG4gICAgICAgICAgdW5jaGFuZ2VkOiBkcmlmdE91dHB1dC51bmNoYW5nZWQsXG4gICAgICAgICAgdW5jaGVja2VkOiBkcmlmdE91dHB1dC51bmNoZWNrZWQsXG4gICAgICAgICAgbW9kaWZpZWQ6IGRyaWZ0T3V0cHV0Lm1vZGlmaWVkLFxuICAgICAgICAgIGRlbGV0ZWQ6IGRyaWZ0T3V0cHV0LmRlbGV0ZWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgYWxsRHJpZnRSZXN1bHRzW2Zvcm1hdHRlci5zdGFja05hbWVdID0gc3RhY2tEcmlmdDtcblxuICAgICAgLy8gaGVhZGVyXG4gICAgICBhd2FpdCBkcmlmdFNwYW4uZGVmYXVsdHMuaW5mbyhkcmlmdE91dHB1dC5zdGFja0hlYWRlcik7XG5cbiAgICAgIC8vIHByaW50IHRoZSBkaWZmZXJlbnQgc2VjdGlvbnMgYXQgZGlmZmVyZW50IGxldmVsc1xuICAgICAgaWYgKGRyaWZ0T3V0cHV0LnVuY2hhbmdlZCkge1xuICAgICAgICBhd2FpdCBkcmlmdFNwYW4uZGVmYXVsdHMuZGVidWcoZHJpZnRPdXRwdXQudW5jaGFuZ2VkKTtcbiAgICAgIH1cbiAgICAgIGlmIChkcmlmdE91dHB1dC51bmNoZWNrZWQpIHtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLmRlZmF1bHRzLmRlYnVnKGRyaWZ0T3V0cHV0LnVuY2hlY2tlZCk7XG4gICAgICB9XG4gICAgICBpZiAoZHJpZnRPdXRwdXQubW9kaWZpZWQpIHtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLmRlZmF1bHRzLmluZm8oZHJpZnRPdXRwdXQubW9kaWZpZWQpO1xuICAgICAgfVxuICAgICAgaWYgKGRyaWZ0T3V0cHV0LmRlbGV0ZWQpIHtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLmRlZmF1bHRzLmluZm8oZHJpZnRPdXRwdXQuZGVsZXRlZCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG1haW4gc3RhY2sgcmVzdWx0XG4gICAgICBhd2FpdCBkcmlmdFNwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k0NTkwLm1zZyhkcmlmdE91dHB1dC5zdW1tYXJ5LCB7XG4gICAgICAgIHN0YWNrLFxuICAgICAgICBkcmlmdDogc3RhY2tEcmlmdCxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvLyBwcmludCBzdW1tYXJ5XG4gICAgY29uc3QgdG90YWxEcmlmdHMgPSBPYmplY3QudmFsdWVzKGFsbERyaWZ0UmVzdWx0cykucmVkdWNlKCh0b3RhbCwgY3VycmVudCkgPT4gdG90YWwgKyAoY3VycmVudC5udW1SZXNvdXJjZXNXaXRoRHJpZnQgPz8gMCksIDApO1xuICAgIGNvbnN0IHRvdGFsVW5jaGVja2VkID0gT2JqZWN0LnZhbHVlcyhhbGxEcmlmdFJlc3VsdHMpLnJlZHVjZSgodG90YWwsIGN1cnJlbnQpID0+IHRvdGFsICsgKGN1cnJlbnQubnVtUmVzb3VyY2VzVW5jaGVja2VkID8/IDApLCAwKTtcbiAgICBhd2FpdCBkcmlmdFNwYW4uZW5kKGBcXG7inKggIE51bWJlciBvZiByZXNvdXJjZXMgd2l0aCBkcmlmdDogJHt0b3RhbERyaWZ0c30ke3RvdGFsVW5jaGVja2VkID8gYCAoJHt0b3RhbFVuY2hlY2tlZH0gdW5jaGVja2VkKWAgOiAnJ31gKTtcbiAgICBpZiAodW5hdmFpbGFibGVEcmlmdHMubGVuZ3RoKSB7XG4gICAgICBhd2FpdCBkcmlmdFNwYW4uZGVmYXVsdHMud2FybihgXFxu4pqg77iPICBGYWlsZWQgdG8gY2hlY2sgZHJpZnQgZm9yICR7dW5hdmFpbGFibGVEcmlmdHMubGVuZ3RofSBzdGFjayhzKS4gQ2hlY2sgbG9nIGZvciBtb3JlIGRldGFpbHMuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFsbERyaWZ0UmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoIEFzc2V0cyBBY3Rpb25cbiAgICpcbiAgICogUHVibGlzaGVzIGFzc2V0cyBmb3IgdGhlIHNlbGVjdGVkIHN0YWNrcyB3aXRob3V0IGRlcGxveWluZ1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2hBc3NldHMoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBQdWJsaXNoQXNzZXRzT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxQdWJsaXNoQXNzZXRzUmVzdWx0PiB7XG4gICAgdGhpcy5yZXF1aXJlVW5zdGFibGVGZWF0dXJlKCdwdWJsaXNoLWFzc2V0cycpO1xuXG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAncHVibGlzaC1hc3NldHMnKTtcbiAgICBjb25zdCBzZWxlY3RTdGFja3MgPSBzdGFja3NPcHQob3B0aW9ucyk7XG4gICAgYXdhaXQgdXNpbmcgYXNzZW1ibHkgPSBhd2FpdCBzeW50aEFuZE1lYXN1cmUoaW9IZWxwZXIsIGN4LCBzZWxlY3RTdGFja3MpO1xuXG4gICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoc2VsZWN0U3RhY2tzKTtcbiAgICBhd2FpdCB0aGlzLnZhbGlkYXRlU3RhY2tzTWV0YWRhdGEoc3RhY2tDb2xsZWN0aW9uLCBpb0hlbHBlcik7XG5cbiAgICBpZiAoc3RhY2tDb2xsZWN0aW9uLnN0YWNrQ291bnQgPT09IDApIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FNTAwMS5tc2coJ05vIHN0YWNrcyBzZWxlY3RlZCcpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHB1Ymxpc2hlZEFzc2V0czogW10sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRlcGxveW1lbnRzID0gYXdhaXQgdGhpcy5kZXBsb3ltZW50c0ZvckFjdGlvbigncHVibGlzaC1hc3NldHMnKTtcblxuICAgIGNvbnN0IHN0YWNrcyA9IHN0YWNrQ29sbGVjdGlvbi5zdGFja0FydGlmYWN0cztcbiAgICBjb25zdCBzdGFja3NBbmRUaGVpckFzc2V0TWFuaWZlc3RzID0gc3RhY2tzLmZsYXRNYXAoKHN0YWNrKSA9PiBbXG4gICAgICBzdGFjayxcbiAgICAgIC4uLnN0YWNrLmRlcGVuZGVuY2llcy5maWx0ZXIoeCA9PiBjeGFwaS5Bc3NldE1hbmlmZXN0QXJ0aWZhY3QuaXNBc3NldE1hbmlmZXN0QXJ0aWZhY3QoeCkpLFxuICAgIF0pO1xuXG4gICAgY29uc3Qgd29ya0dyYXBoID0gbmV3IFdvcmtHcmFwaEJ1aWxkZXIoXG4gICAgICBpb0hlbHBlcixcbiAgICAgIHRydWUsIC8vIHByZWJ1aWxkIGFsbCBhc3NldHNcbiAgICApLmJ1aWxkKHN0YWNrc0FuZFRoZWlyQXNzZXRNYW5pZmVzdHMpO1xuXG4gICAgaWYgKCFvcHRpb25zLmZvcmNlKSB7XG4gICAgICBhd2FpdCByZW1vdmVQdWJsaXNoZWRBc3NldHNGcm9tV29ya0dyYXBoKHdvcmtHcmFwaCwgZGVwbG95bWVudHMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvbnN0IGFzc2V0Tm9kZXMgPSBPYmplY3QudmFsdWVzKHdvcmtHcmFwaC5ub2RlcylcbiAgICAgIC5maWx0ZXIoKG4pOiBuIGlzIEFzc2V0UHVibGlzaE5vZGUgPT4gbi50eXBlID09PSAnYXNzZXQtcHVibGlzaCcpO1xuXG4gICAgaWYgKGFzc2V0Tm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTk0MDAubXNnKGNoYWxrLmdyZWVuKCdcXG7inKggIEFsbCBhc3NldHMgYXJlIGFscmVhZHkgcHVibGlzaGVkXFxuJykpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHB1Ymxpc2hlZEFzc2V0czogW10sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGFzc2V0cyA9IGFzc2V0Tm9kZXMubWFwKG4gPT4gbi5hc3NldCk7XG4gICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k5NDAxLm1zZygnUHVibGlzaGluZyBhc3NldHMnLCB7IGFzc2V0cyB9KSk7XG5cbiAgICBjb25zdCBjb25jdXJyZW5jeSA9IG9wdGlvbnMuY29uY3VycmVuY3kgPz8gNDtcbiAgICBjb25zdCBncmFwaENvbmN1cnJlbmN5OiBDb25jdXJyZW5jeSA9IHtcbiAgICAgICdzdGFjayc6IDEsXG4gICAgICAnYXNzZXQtYnVpbGQnOiBjb25jdXJyZW5jeSxcbiAgICAgICdhc3NldC1wdWJsaXNoJzogY29uY3VycmVuY3ksXG4gICAgfTtcblxuICAgIGF3YWl0IHdvcmtHcmFwaC5kb1BhcmFsbGVsKGdyYXBoQ29uY3VycmVuY3ksIHtcbiAgICAgIGRlcGxveVN0YWNrOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIE5vLW9wOiB3ZSdyZSBvbmx5IHB1Ymxpc2hpbmcgYXNzZXRzLCBub3QgZGVwbG95aW5nXG4gICAgICB9LFxuICAgICAgYnVpbGRBc3NldDogdGhpcy5jcmVhdGVCdWlsZEFzc2V0RnVuY3Rpb24oaW9IZWxwZXIsIGRlcGxveW1lbnRzLCB1bmRlZmluZWQpLFxuICAgICAgcHVibGlzaEFzc2V0OiB0aGlzLmNyZWF0ZVB1Ymxpc2hBc3NldEZ1bmN0aW9uKGlvSGVscGVyLCBkZXBsb3ltZW50cywgdW5kZWZpbmVkLCBvcHRpb25zLmZvcmNlKSxcbiAgICB9KTtcblxuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JOTQwMi5tc2coY2hhbGsuZ3JlZW4oJ1xcbuKcqCAgQXNzZXRzIHB1Ymxpc2hlZCBzdWNjZXNzZnVsbHlcXG4nKSwgeyBhc3NldHMgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHB1Ymxpc2hlZEFzc2V0czogYXNzZXRzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBBY3Rpb25cbiAgICpcbiAgICogTGlzdCBzZWxlY3RlZCBzdGFja3MgYW5kIHRoZWlyIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3QoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBMaXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxTdGFja0RldGFpbHNbXT4ge1xuICAgIGNvbnN0IGlvSGVscGVyID0gYXNJb0hlbHBlcih0aGlzLmlvSG9zdCwgJ2xpc3QnKTtcbiAgICBjb25zdCBzZWxlY3RTdGFja3MgPSBzdGFja3NPcHQob3B0aW9ucyk7XG4gICAgYXdhaXQgdXNpbmcgYXNzZW1ibHkgPSBhd2FpdCBzeW50aEFuZE1lYXN1cmUoaW9IZWxwZXIsIGN4LCBzZWxlY3RTdGFja3MpO1xuXG4gICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoc2VsZWN0U3RhY2tzKTtcbiAgICBjb25zdCBzdGFja3MgPSBzdGFja0NvbGxlY3Rpb24ud2l0aERlcGVuZGVuY2llcygpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBzdGFja3MubWFwKHMgPT4gcy5pZCkuam9pbignXFxuJyk7XG5cbiAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTI5MDEubXNnKG1lc3NhZ2UsIHsgc3RhY2tzIH0pKTtcbiAgICByZXR1cm4gc3RhY2tzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBBY3Rpb25cbiAgICpcbiAgICogRGVwbG95cyB0aGUgc2VsZWN0ZWQgc3RhY2tzIGludG8gYW4gQVdTIGFjY291bnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXBsb3koY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBEZXBsb3lPcHRpb25zID0ge30pOiBQcm9taXNlPERlcGxveVJlc3VsdD4ge1xuICAgIGNvbnN0IGlvSGVscGVyID0gYXNJb0hlbHBlcih0aGlzLmlvSG9zdCwgJ2RlcGxveScpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgc3ludGhBbmRNZWFzdXJlKGlvSGVscGVyLCBjeCwgc3RhY2tzT3B0KG9wdGlvbnMpKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9kZXBsb3koYXNzZW1ibHksICdkZXBsb3knLCBhc3NlbWJseS5zeW50aER1cmF0aW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gYWxsb3cgZGVwbG95IGJlaW5nIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSB3YXRjaCBhY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9kZXBsb3koYXNzZW1ibHk6IFN0YWNrQXNzZW1ibHksIGFjdGlvbjogJ2RlcGxveScgfCAnd2F0Y2gnLCBzeW50aER1cmF0aW9uOiBFbGFwc2VkVGltZSwgb3B0aW9uczogUHJpdmF0ZURlcGxveU9wdGlvbnMgPSB7fSk6IFByb21pc2U8RGVwbG95UmVzdWx0PiB7XG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCBhY3Rpb24pO1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBjb25zdCBzdGFja0NvbGxlY3Rpb24gPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuICAgIGF3YWl0IHRoaXMudmFsaWRhdGVTdGFja3NNZXRhZGF0YShzdGFja0NvbGxlY3Rpb24sIGlvSGVscGVyKTtcblxuICAgIGNvbnN0IHJldDogRGVwbG95UmVzdWx0ID0ge1xuICAgICAgc3RhY2tzOiBbXSxcbiAgICB9O1xuXG4gICAgaWYgKHN0YWNrQ29sbGVjdGlvbi5zdGFja0NvdW50ID09PSAwKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTUwMDEubXNnKCdUaGlzIGFwcCBjb250YWlucyBubyBzdGFja3MnKSk7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIGNvbnN0IGRlcGxveW1lbnRzID0gYXdhaXQgdGhpcy5kZXBsb3ltZW50c0ZvckFjdGlvbignZGVwbG95Jyk7XG4gICAgY29uc3QgbWlncmF0b3IgPSBuZXcgUmVzb3VyY2VNaWdyYXRvcih7IGRlcGxveW1lbnRzLCBpb0hlbHBlciB9KTtcblxuICAgIGF3YWl0IG1pZ3JhdG9yLnRyeU1pZ3JhdGVSZXNvdXJjZXMoc3RhY2tDb2xsZWN0aW9uLCBvcHRpb25zKTtcblxuICAgIGNvbnN0IHBhcmFtZXRlck1hcCA9IGJ1aWxkUGFyYW1ldGVyTWFwKG9wdGlvbnMucGFyYW1ldGVycz8ucGFyYW1ldGVycyk7XG5cbiAgICBpZiAob3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kPy5tZXRob2QgPT09ICdob3Rzd2FwJykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX1c1NDAwLm1zZyhbXG4gICAgICAgICfimqDvuI8gSG90c3dhcCBkZXBsb3ltZW50cyBkZWxpYmVyYXRlbHkgaW50cm9kdWNlIENsb3VkRm9ybWF0aW9uIGRyaWZ0IHRvIHNwZWVkIHVwIGRlcGxveW1lbnRzJyxcbiAgICAgICAgJ+KaoO+4jyBUaGV5IHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGRldmVsb3BtZW50IC0gbmV2ZXIgdXNlIHRoZW0gZm9yIHlvdXIgcHJvZHVjdGlvbiBTdGFja3MhJyxcbiAgICAgIF0uam9pbignXFxuJykpKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFja3MgPSBzdGFja0NvbGxlY3Rpb24uc3RhY2tBcnRpZmFjdHM7XG4gICAgY29uc3Qgc3RhY2tPdXRwdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgY29uc3Qgb3V0cHV0c0ZpbGUgPSBvcHRpb25zLm91dHB1dHNGaWxlO1xuXG4gICAgY29uc3QgZGVwbG95U3RhY2sgPSBhc3luYyAoc3RhY2tOb2RlOiBTdGFja05vZGUpID0+IHtcbiAgICAgIGNvbnN0IHN0YWNrID0gc3RhY2tOb2RlLnN0YWNrO1xuICAgICAgaWYgKHN0YWNrQ29sbGVjdGlvbi5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oY2hhbGsuYm9sZChzdGFjay5kaXNwbGF5TmFtZSkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXN0YWNrLmVudmlyb25tZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICAgJ1N0YWNrRW52aXJvbm1lbnRNaXNzaW5nJyxcbiAgICAgICAgICBgU3RhY2sgJHtzdGFjay5kaXNwbGF5TmFtZX0gZG9lcyBub3QgZGVmaW5lIGFuIGVudmlyb25tZW50LCBhbmQgQVdTIGNyZWRlbnRpYWxzIGNvdWxkIG5vdCBiZSBvYnRhaW5lZCBmcm9tIHN0YW5kYXJkIGxvY2F0aW9ucyBvciBubyByZWdpb24gd2FzIGNvbmZpZ3VyZWQuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIGdlbmVyYXRlZCBzdGFjayBoYXMgbm8gcmVzb3VyY2VzXG4gICAgICBjb25zdCByZXNvdXJjZUNvdW50ID0gT2JqZWN0LmtleXMoc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzIHx8IHt9KS5sZW5ndGg7XG4gICAgICBpZiAocmVzb3VyY2VDb3VudCA9PT0gMCkge1xuICAgICAgICAvLyBzdGFjayBpcyBlbXB0eSBhbmQgZG9lc24ndCBleGlzdCA9PiBkbyBub3RoaW5nXG4gICAgICAgIGNvbnN0IHN0YWNrRXhpc3RzID0gYXdhaXQgZGVwbG95bWVudHMuc3RhY2tFeGlzdHMoeyBzdGFjayB9KTtcbiAgICAgICAgaWYgKCFzdGFja0V4aXN0cykge1xuICAgICAgICAgIHJldHVybiBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfVzUwMjEubXNnKGAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfTogc3RhY2sgaGFzIG5vIHJlc291cmNlcywgc2tpcHBpbmcgZGVwbG95bWVudC5gKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdGFjayBpcyBlbXB0eSwgYnV0IGV4aXN0cyA9PiBkZWxldGVcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX1c1MDIyLm1zZyhgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX06IHN0YWNrIGhhcyBubyByZXNvdXJjZXMsIGRlbGV0aW5nIGV4aXN0aW5nIHN0YWNrLmApKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fZGVzdHJveShhc3NlbWJseSwgJ2RlcGxveScsIHtcbiAgICAgICAgICBzdGFja3M6IHsgcGF0dGVybnM6IFtzdGFjay5oaWVyYXJjaGljYWxJZF0sIHN0cmF0ZWd5OiBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEUgfSxcbiAgICAgICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VycmVudFRlbXBsYXRlID0gYXdhaXQgZGVwbG95bWVudHMucmVhZEN1cnJlbnRUZW1wbGF0ZShzdGFjayk7XG5cbiAgICAgIC8vIEZvbGxvd2luZyBhcmUgdGhlIHNhbWUgc2VtYW50aWNzIHdlIGFwcGx5IHdpdGggcmVzcGVjdCB0byBOb3RpZmljYXRpb24gQVJOcyAoZGljdGF0ZWQgYnkgdGhlIFNESylcbiAgICAgIC8vXG4gICAgICAvLyAgLSB1bmRlZmluZWQgID0+ICBjZGsgaWdub3JlcyBpdCwgYXMgaWYgaXQgd2Fzbid0IHN1cHBvcnRlZCAoYWxsb3dzIGV4dGVybmFsIG1hbmFnZW1lbnQpLlxuICAgICAgLy8gIC0gW106ICAgICAgICA9PiAgY2RrIG1hbmFnZXMgaXQsIGFuZCB0aGUgdXNlciB3YW50cyB0byB3aXBlIGl0IG91dC5cbiAgICAgIC8vICAtIFsnYXJuLTEnXSAgPT4gIGNkayBtYW5hZ2VzIGl0LCBhbmQgdGhlIHVzZXIgd2FudHMgdG8gc2V0IGl0IHRvIFsnYXJuLTEnXS5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbkFybnMgPSAoISFvcHRpb25zLm5vdGlmaWNhdGlvbkFybnMgfHwgISFzdGFjay5ub3RpZmljYXRpb25Bcm5zKVxuICAgICAgICA/IChvcHRpb25zLm5vdGlmaWNhdGlvbkFybnMgPz8gW10pLmNvbmNhdChzdGFjay5ub3RpZmljYXRpb25Bcm5zID8/IFtdKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgZm9yIChjb25zdCBub3RpZmljYXRpb25Bcm4gb2Ygbm90aWZpY2F0aW9uQXJucyA/PyBbXSkge1xuICAgICAgICBpZiAoIXZhbGlkYXRlU25zVG9waWNBcm4obm90aWZpY2F0aW9uQXJuKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRTbnNUb3BpY0FybicsIGBOb3RpZmljYXRpb24gYXJuICR7bm90aWZpY2F0aW9uQXJufSBpcyBub3QgYSB2YWxpZCBhcm4gZm9yIGFuIFNOUyB0b3BpY2ApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIERlcGxveSBvcHRpb25zIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIGNoYW5nZSBzZXQgY3JlYXRpb24gYW5kIGV4ZWN1dGlvblxuICAgICAgY29uc3Qgc2hhcmVkRGVwbG95T3B0aW9ucyA9IHtcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIGRlcGxveU5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICB0b29sa2l0U3RhY2tOYW1lOiB0aGlzLnRvb2xraXRTdGFja05hbWUsXG4gICAgICAgIHJldXNlQXNzZXRzOiBvcHRpb25zLnJldXNlQXNzZXRzLFxuICAgICAgICB0YWdzOiBvcHRpb25zLnRhZ3M/Lmxlbmd0aCA/IG9wdGlvbnMudGFncyA6IHRhZ3NGb3JTdGFjayhzdGFjayksXG4gICAgICAgIGZvcmNlRGVwbG95bWVudDogb3B0aW9ucy5mb3JjZURlcGxveW1lbnQsXG4gICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIHBhcmFtZXRlck1hcFsnKiddLCBwYXJhbWV0ZXJNYXBbc3RhY2suc3RhY2tOYW1lXSksXG4gICAgICAgIHVzZVByZXZpb3VzUGFyYW1ldGVyczogb3B0aW9ucy5wYXJhbWV0ZXJzPy5rZWVwRXhpc3RpbmdQYXJhbWV0ZXJzLFxuICAgICAgICByb2xsYmFjazogb3B0aW9ucy5yb2xsYmFjayxcbiAgICAgICAgbm90aWZpY2F0aW9uQXJucyxcbiAgICAgICAgZXh0cmFVc2VyQWdlbnQ6IG9wdGlvbnMuZXh0cmFVc2VyQWdlbnQsXG4gICAgICAgIGFzc2V0UGFyYWxsZWxpc206IG9wdGlvbnMuYXNzZXRQYXJhbGxlbGlzbSxcbiAgICAgIH07XG5cbiAgICAgIC8vIFdoZW4gdXNpbmcgY2hhbmdlLXNldCBtZXRob2QsIGFsd2F5cyBjcmVhdGUgdGhlIGNoYW5nZSBzZXQgdXBmcm9udC5cbiAgICAgIC8vIFRoaXMgZ2l2ZXMgdXMgYW4gYWNjdXJhdGUgZGlmZiBmb3IgYXBwcm92YWwgYW5kIGF2b2lkcyBjcmVhdGluZyBpdCB0d2ljZS5cbiAgICAgIC8vIEZvciBub24tZXhlY3V0aW5nIGRlcGxveW1lbnRzIChwcmVwYXJlLWNoYW5nZS1zZXQpLCB0aGlzIGlzIHRoZSBmaW5hbCByZXN1bHQuXG4gICAgICBjb25zdCBwcmVwYXJlUmVzdWx0ID0gaXNDaGFuZ2VTZXREZXBsb3ltZW50KG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZClcbiAgICAgICAgPyBhd2FpdCBkZXBsb3ltZW50cy5wcmVwYXJlU3RhY2soe1xuICAgICAgICAgIC4uLnNoYXJlZERlcGxveU9wdGlvbnMsXG4gICAgICAgICAgZGVwbG95bWVudE1ldGhvZDogb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLFxuICAgICAgICAgIGNsZWFudXBPbk5vT3A6IGlzRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudChvcHRpb25zLmRlcGxveW1lbnRNZXRob2QpLFxuICAgICAgICB9KVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IERpZmZGb3JtYXR0ZXIoe1xuICAgICAgICB0ZW1wbGF0ZUluZm86IHtcbiAgICAgICAgICBvbGRUZW1wbGF0ZTogY3VycmVudFRlbXBsYXRlLFxuICAgICAgICAgIG5ld1RlbXBsYXRlOiBzdGFjayxcbiAgICAgICAgICBjaGFuZ2VTZXQ6IHByZXBhcmVSZXN1bHQ/LmNoYW5nZVNldCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzZWN1cml0eURpZmYgPSBmb3JtYXR0ZXIuZm9ybWF0U2VjdXJpdHlEaWZmKCk7XG4gICAgICBjb25zdCBzdGFja0RpZmYgPSBmb3JtYXR0ZXIuZm9ybWF0U3RhY2tEaWZmKCk7XG5cbiAgICAgIC8vIFNlbmQgYSByZXF1ZXN0IHJlc3BvbnNlIHdpdGggdGhlIGRpZmYgYXMgcGFydCBvZiB0aGUgbWVzc2FnZSxcbiAgICAgIC8vIGFuZCB0aGUgdGVtcGxhdGUgZGlmZiBhcyBkYXRhXG4gICAgICAvLyAoSW9Ib3N0IGRlY2lkZXMgd2hldGhlciB0byBwcmludCBkZXBlbmRpbmcgb24gcGVybWlzc2lvbkNoYW5nZVR5cGUpXG4gICAgICBjb25zdCBoYXNTZWN1cml0eUNoYW5nZXMgPSBzZWN1cml0eURpZmYucGVybWlzc2lvbkNoYW5nZVR5cGUgIT09IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTkU7XG4gICAgICBjb25zdCBkZXBsb3lNb3RpdmF0aW9uID0gaGFzU2VjdXJpdHlDaGFuZ2VzXG4gICAgICAgID8gJ1wiLS1yZXF1aXJlLWFwcHJvdmFsXCIgaXMgZW5hYmxlZCBhbmQgc3RhY2sgaW5jbHVkZXMgc2VjdXJpdHktc2Vuc2l0aXZlIHVwZGF0ZXMuJ1xuICAgICAgICA6ICdcIi0tcmVxdWlyZS1hcHByb3ZhbFwiIGlzIGVuYWJsZWQgYW5kIHN0YWNrIGluY2x1ZGVzIHVwZGF0ZXMuJztcbiAgICAgIGNvbnN0IGRpZmZPdXRwdXQgPSBoYXNTZWN1cml0eUNoYW5nZXMgPyBzZWN1cml0eURpZmYuZm9ybWF0dGVkRGlmZiA6IHN0YWNrRGlmZi5mb3JtYXR0ZWREaWZmO1xuICAgICAgY29uc3QgZGVwbG95UXVlc3Rpb24gPSBgJHtkaWZmT3V0cHV0fVxcblxcbiR7ZGVwbG95TW90aXZhdGlvbn1cXG5EbyB5b3Ugd2lzaCB0byBkZXBsb3kgdGhlc2UgY2hhbmdlc2A7XG4gICAgICBjb25zdCBkZXBsb3lDb25maXJtZWQgPSBhd2FpdCBpb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTUwNjAucmVxKGRlcGxveVF1ZXN0aW9uLCB7XG4gICAgICAgIG1vdGl2YXRpb246IGRlcGxveU1vdGl2YXRpb24sXG4gICAgICAgIGNvbmN1cnJlbmN5LFxuICAgICAgICBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogc2VjdXJpdHlEaWZmLnBlcm1pc3Npb25DaGFuZ2VUeXBlLFxuICAgICAgICB0ZW1wbGF0ZURpZmZzOiBmb3JtYXR0ZXIuZGlmZnMsXG4gICAgICB9KSk7XG4gICAgICBpZiAoIWRlcGxveUNvbmZpcm1lZCkge1xuICAgICAgICBpZiAocHJlcGFyZVJlc3VsdD8uY2hhbmdlU2V0Py5DaGFuZ2VTZXROYW1lKSB7XG4gICAgICAgICAgYXdhaXQgZGVwbG95bWVudHMuY2xlYW51cENoYW5nZVNldChzdGFjaywgcHJlcGFyZVJlc3VsdC5jaGFuZ2VTZXQuQ2hhbmdlU2V0TmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignRGVwbG95QWJvcnRlZCcsICdBYm9ydGVkIGJ5IHVzZXInKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhY2tJbmRleCA9IHN0YWNrcy5pbmRleE9mKHN0YWNrKSArIDE7XG4gICAgICBjb25zdCBkZXBsb3lTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRFUExPWV9TVEFDSylcbiAgICAgICAgLmJlZ2luKGAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfTogZGVwbG95aW5nLi4uIFske3N0YWNrSW5kZXh9LyR7c3RhY2tDb2xsZWN0aW9uLnN0YWNrQ291bnR9XWAsIHtcbiAgICAgICAgICB0b3RhbDogc3RhY2tDb2xsZWN0aW9uLnN0YWNrQ291bnQsXG4gICAgICAgICAgY3VycmVudDogc3RhY2tJbmRleCxcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgfSk7XG4gICAgICBkZXBsb3lTcGFuLmluY0NvdW50ZXIoJ3Jlc291cmNlcycsIHJlc291cmNlQ291bnQpO1xuXG4gICAgICBsZXQgZGVwbG95RHVyYXRpb247XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwcmVwYXJlSXNGaW5hbCA9IHByZXBhcmVSZXN1bHQgJiYgKHByZXBhcmVSZXN1bHQubm9PcCB8fCBpc05vbkV4ZWN1dGluZ0NoYW5nZVNldERlcGxveW1lbnQob3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kKSk7XG4gICAgICAgIGxldCBkZXBsb3lSZXN1bHQ6IFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB8IHVuZGVmaW5lZCA9IHByZXBhcmVJc0ZpbmFsID8gcHJlcGFyZVJlc3VsdCA6IHVuZGVmaW5lZDtcblxuICAgICAgICBsZXQgcm9sbGJhY2sgPSBvcHRpb25zLnJvbGxiYWNrO1xuICAgICAgICBsZXQgaXRlcmF0aW9uID0gMDtcbiAgICAgICAgd2hpbGUgKCFkZXBsb3lSZXN1bHQpIHtcbiAgICAgICAgICBpZiAoKytpdGVyYXRpb24gPiAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEZXBsb3lMb29wVW5zdGFibGUnLCAnVGhpcyBsb29wIHNob3VsZCBoYXZlIHN0YWJpbGl6ZWQgaW4gMiBpdGVyYXRpb25zLCBidXQgZGlkblxcJ3QuIElmIHlvdSBhcmUgc2VlaW5nIHRoaXMgZXJyb3IsIHBsZWFzZSByZXBvcnQgaXQgYXQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy9uZXcvY2hvb3NlJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgciA9IGF3YWl0IGRlcGxveW1lbnRzLmRlcGxveVN0YWNrKHtcbiAgICAgICAgICAgIC4uLnNoYXJlZERlcGxveU9wdGlvbnMsXG4gICAgICAgICAgICAvLyBPbiB0aGUgZmlyc3QgaXRlcmF0aW9uLCBleGVjdXRlIHRoZSBwcmVwYXJlZCBjaGFuZ2Ugc2V0LlxuICAgICAgICAgICAgLy8gT24gcmV0cmllcyAoYWZ0ZXIgcm9sbGJhY2spLCBjcmVhdGUgYSBuZXcgY2hhbmdlIHNldCBzaW5jZSB0aGUgb2xkIG9uZSBpcyBnb25lLlxuICAgICAgICAgICAgZGVwbG95bWVudE1ldGhvZDogaXRlcmF0aW9uID09PSAxICYmIGlzRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudChvcHRpb25zLmRlcGxveW1lbnRNZXRob2QpXG4gICAgICAgICAgICAgID8gdG9FeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudChvcHRpb25zLmRlcGxveW1lbnRNZXRob2QpXG4gICAgICAgICAgICAgIDogb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLFxuICAgICAgICAgICAgcm9sbGJhY2ssXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBzd2l0Y2ggKHIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGlkLWRlcGxveS1zdGFjayc6XG4gICAgICAgICAgICAgIGRlcGxveVJlc3VsdCA9IHI7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdmYWlscGF1c2VkLW5lZWQtcm9sbGJhY2stZmlyc3QnOiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1vdGl2YXRpb24gPSByLnJlYXNvbiA9PT0gJ3JlcGxhY2VtZW50J1xuICAgICAgICAgICAgICAgID8gYFN0YWNrIGlzIGluIGEgcGF1c2VkIGZhaWwgc3RhdGUgKCR7ci5zdGF0dXN9KSBhbmQgY2hhbmdlIGluY2x1ZGVzIGEgcmVwbGFjZW1lbnQgd2hpY2ggY2Fubm90IGJlIGRlcGxveWVkIHdpdGggXCItLW5vLXJvbGxiYWNrXCJgXG4gICAgICAgICAgICAgICAgOiBgU3RhY2sgaXMgaW4gYSBwYXVzZWQgZmFpbCBzdGF0ZSAoJHtyLnN0YXR1c30pIGFuZCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGRvIG5vdCBpbmNsdWRlIFwiLS1uby1yb2xsYmFja1wiYDtcbiAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBgJHttb3RpdmF0aW9ufS4gUGVyZm9ybSBhIHJlZ3VsYXIgZGVwbG95bWVudGA7XG5cbiAgICAgICAgICAgICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgaW9IZWxwZXIucmVxdWVzdFJlc3BvbnNlKElPLkNES19UT09MS0lUX0k1MDUwLnJlcShxdWVzdGlvbiwge1xuICAgICAgICAgICAgICAgIG1vdGl2YXRpb24sXG4gICAgICAgICAgICAgICAgY29uY3VycmVuY3ksXG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgaWYgKCFjb25maXJtZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdSb2xsYmFja0Fib3J0ZWQnLCAnQWJvcnRlZCBieSB1c2VyJyk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBQZXJmb3JtIGEgcm9sbGJhY2tcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcm9sbGJhY2soYXNzZW1ibHksIGFjdGlvbiwge1xuICAgICAgICAgICAgICAgIHN0YWNrczoge1xuICAgICAgICAgICAgICAgICAgcGF0dGVybnM6IFtzdGFjay5oaWVyYXJjaGljYWxJZF0sXG4gICAgICAgICAgICAgICAgICBzdHJhdGVneTogU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5QQVRURVJOX01VU1RfTUFUQ0hfU0lOR0xFLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3JwaGFuRmFpbGVkUmVzb3VyY2VzOiBvcHRpb25zLm9ycGhhbkZhaWxlZFJlc291cmNlc0R1cmluZ1JvbGxiYWNrLFxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAvLyBHbyBhcm91bmQgdGhyb3VnaCB0aGUgJ3doaWxlJyBsb29wIGFnYWluIGJ1dCBzd2l0Y2ggcm9sbGJhY2sgdG8gdHJ1ZS5cbiAgICAgICAgICAgICAgcm9sbGJhY2sgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAncmVwbGFjZW1lbnQtcmVxdWlyZXMtcm9sbGJhY2snOiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1vdGl2YXRpb24gPSAnQ2hhbmdlIGluY2x1ZGVzIGEgcmVwbGFjZW1lbnQgd2hpY2ggY2Fubm90IGJlIGRlcGxveWVkIHdpdGggXCItLW5vLXJvbGxiYWNrXCInO1xuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbiA9IGAke21vdGl2YXRpb259LiBQZXJmb3JtIGEgcmVndWxhciBkZXBsb3ltZW50YDtcblxuICAgICAgICAgICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCBpb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTUwNTAucmVxKHF1ZXN0aW9uLCB7XG4gICAgICAgICAgICAgICAgbW90aXZhdGlvbixcbiAgICAgICAgICAgICAgICBjb25jdXJyZW5jeSxcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICBpZiAoIWNvbmZpcm1lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1JlcGxhY2VtZW50Um9sbGJhY2tBYm9ydGVkJywgJ0Fib3J0ZWQgYnkgdXNlcicpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gR28gYXJvdW5kIHRocm91Z2ggdGhlICd3aGlsZScgbG9vcCBhZ2FpbiBidXQgc3dpdGNoIHJvbGxiYWNrIHRvIHRydWUuXG4gICAgICAgICAgICAgIHJvbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1VuZXhwZWN0ZWREZXBsb3lSZXN1bHQnLCBgVW5leHBlY3RlZCByZXN1bHQgdHlwZSBmcm9tIGRlcGxveVN0YWNrOiAke0pTT04uc3RyaW5naWZ5KHIpfS4gSWYgeW91IGFyZSBzZWVpbmcgdGhpcyBlcnJvciwgcGxlYXNlIHJlcG9ydCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzL25ldy9jaG9vc2VgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGVwbG95UmVzdWx0Lm5vT3BcbiAgICAgICAgICA/IGAg4pyFICAke3N0YWNrLmRpc3BsYXlOYW1lfSAobm8gY2hhbmdlcylgXG4gICAgICAgICAgOiBgIOKchSAgJHtzdGFjay5kaXNwbGF5TmFtZX1gO1xuXG4gICAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTkwMC5tc2coY2hhbGsuZ3JlZW4oJ1xcbicgKyBtZXNzYWdlKSwgZGVwbG95UmVzdWx0KSk7XG4gICAgICAgIGRlcGxveUR1cmF0aW9uID0gYXdhaXQgZGVwbG95U3Bhbi50aW1pbmcoSU8uQ0RLX1RPT0xLSVRfSTUwMDApO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhkZXBsb3lSZXN1bHQub3V0cHV0cykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFsnT3V0cHV0czonXTtcbiAgICAgICAgICBzdGFja091dHB1dHNbc3RhY2suc3RhY2tOYW1lXSA9IGRlcGxveVJlc3VsdC5vdXRwdXRzO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGRlcGxveVJlc3VsdC5vdXRwdXRzKS5zb3J0KCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGVwbG95UmVzdWx0Lm91dHB1dHNbbmFtZV07XG4gICAgICAgICAgICBidWZmZXIucHVzaChgJHtjaGFsay5jeWFuKHN0YWNrLmlkKX0uJHtjaGFsay5jeWFuKG5hbWUpfSA9ICR7Y2hhbGsudW5kZXJsaW5lKGNoYWxrLmN5YW4odmFsdWUpKX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1OTAxLm1zZyhidWZmZXIuam9pbignXFxuJykpKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU5MDEubXNnKGBTdGFjayBBUk46XFxuJHtkZXBsb3lSZXN1bHQuc3RhY2tBcm59YCkpO1xuXG4gICAgICAgIHJldC5zdGFja3MucHVzaCh7XG4gICAgICAgICAgc3RhY2tOYW1lOiBzdGFjay5zdGFja05hbWUsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICAgIGFjY291bnQ6IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgICAgICAgICByZWdpb246IHN0YWNrLmVudmlyb25tZW50LnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YWNrQXJuOiBkZXBsb3lSZXN1bHQuc3RhY2tBcm4sXG4gICAgICAgICAgb3V0cHV0czogZGVwbG95UmVzdWx0Lm91dHB1dHMsXG4gICAgICAgICAgaGllcmFyY2hpY2FsSWQ6IHN0YWNrLmhpZXJhcmNoaWNhbElkLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBJdCBoYXMgdG8gYmUgZXhhY3RseSB0aGlzIHN0cmluZyBiZWNhdXNlIGFuIGludGVncmF0aW9uIHRlc3QgdGVzdHMgZm9yXG4gICAgICAgIC8vIFwiYm9sZChzdGFja25hbWUpIGZhaWxlZDogUmVzb3VyY2VOb3RSZWFkeTogPGVycm9yPlwiXG4gICAgICAgIGNvbnN0IGNvZGUgPSBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZSkgPyBlLm5hbWUgOiAnRGVwbG95U3RhY2tGYWlsZWQnO1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlID0gW2DinYwgICR7Y2hhbGsuYm9sZChzdGFjay5zdGFja05hbWUpfSBmYWlsZWQ6YCwgLi4uKGUubmFtZSA/IFtgJHtlLm5hbWV9OmBdIDogW10pLCBlLm1lc3NhZ2VdLmpvaW4oJyAnKTtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihjb2RlLCBuZXdNZXNzYWdlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChvcHRpb25zLnRyYWNlTG9ncykge1xuICAgICAgICAgIC8vIGRlcGxveSBjYWxscyB0aGF0IG9yaWdpbmF0ZSBmcm9tIHdhdGNoIHdpbGwgY29tZSB3aXRoIHRoZWlyIG93biBjbG91ZFdhdGNoTG9nTW9uaXRvclxuICAgICAgICAgIGNvbnN0IGNsb3VkV2F0Y2hMb2dNb25pdG9yID0gb3B0aW9ucy5jbG91ZFdhdGNoTG9nTW9uaXRvciA/PyBuZXcgQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcih7IGlvSGVscGVyIH0pO1xuICAgICAgICAgIGNvbnN0IGZvdW5kTG9nR3JvdXBzUmVzdWx0ID0gYXdhaXQgZmluZENsb3VkV2F0Y2hMb2dHcm91cHMoYXdhaXQgdGhpcy5zZGtQcm92aWRlcignZGVwbG95JyksIGlvSGVscGVyLCBzdGFjayk7XG4gICAgICAgICAgY2xvdWRXYXRjaExvZ01vbml0b3IuYWRkTG9nR3JvdXBzKFxuICAgICAgICAgICAgZm91bmRMb2dHcm91cHNSZXN1bHQuZW52LFxuICAgICAgICAgICAgZm91bmRMb2dHcm91cHNSZXN1bHQuc2RrLFxuICAgICAgICAgICAgZm91bmRMb2dHcm91cHNSZXN1bHQubG9nR3JvdXBOYW1lcyxcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTAzMS5tc2coYFRoZSBmb2xsb3dpbmcgbG9nIGdyb3VwcyBhcmUgYWRkZWQ6ICR7Zm91bmRMb2dHcm91cHNSZXN1bHQubG9nR3JvdXBOYW1lc31gKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBhbiBvdXRwdXRzIGZpbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCBjcmVhdGUgdGhlIGZpbGUgcGF0aCBhbmQgd3JpdGUgc3RhY2sgb3V0cHV0cyB0byBpdCBvbmNlLlxuICAgICAgICAvLyBPdXRwdXRzIGFyZSB3cml0dGVuIGFmdGVyIGFsbCBzdGFja3MgaGF2ZSBiZWVuIGRlcGxveWVkLiBJZiBhIHN0YWNrIGRlcGxveW1lbnQgZmFpbHMsXG4gICAgICAgIC8vIGFsbCBvZiB0aGUgb3V0cHV0cyBmcm9tIHN1Y2Nlc3NmdWxseSBkZXBsb3llZCBzdGFja3MgYmVmb3JlIHRoZSBmYWlsdXJlIHdpbGwgc3RpbGwgYmUgd3JpdHRlbi5cbiAgICAgICAgaWYgKG91dHB1dHNGaWxlKSB7XG4gICAgICAgICAgZnMuZW5zdXJlRmlsZVN5bmMob3V0cHV0c0ZpbGUpO1xuICAgICAgICAgIGF3YWl0IGZzLndyaXRlSnNvbihvdXRwdXRzRmlsZSwgc3RhY2tPdXRwdXRzLCB7XG4gICAgICAgICAgICBzcGFjZXM6IDIsXG4gICAgICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IHN5bnRoRHVyYXRpb24uYXNNcyArIChkZXBsb3lEdXJhdGlvbj8uYXNNcyA/PyAwKTtcbiAgICAgIGF3YWl0IGRlcGxveVNwYW4uZW5kKGBcXG7inKggIFRvdGFsIHRpbWU6ICR7Zm9ybWF0VGltZShkdXJhdGlvbil9c1xcbmAsIHsgZHVyYXRpb24gfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGFzc2V0QnVpbGRUaW1lID0gb3B0aW9ucy5hc3NldEJ1aWxkVGltZSA/PyBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWTtcbiAgICBjb25zdCBwcmVidWlsZEFzc2V0cyA9IGFzc2V0QnVpbGRUaW1lID09PSBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWTtcbiAgICBjb25zdCBjb25jdXJyZW5jeSA9IG9wdGlvbnMuY29uY3VycmVuY3kgfHwgMTtcblxuICAgIGNvbnN0IHN0YWNrc0FuZFRoZWlyQXNzZXRNYW5pZmVzdHMgPSBzdGFja3MuZmxhdE1hcCgoc3RhY2spID0+IFtcbiAgICAgIHN0YWNrLFxuICAgICAgLi4uc3RhY2suZGVwZW5kZW5jaWVzLmZpbHRlcih4ID0+IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh4KSksXG4gICAgXSk7XG4gICAgY29uc3Qgd29ya0dyYXBoID0gbmV3IFdvcmtHcmFwaEJ1aWxkZXIoaW9IZWxwZXIsIHByZWJ1aWxkQXNzZXRzKS5idWlsZChzdGFja3NBbmRUaGVpckFzc2V0TWFuaWZlc3RzKTtcblxuICAgIC8vIFVubGVzcyB3ZSBhcmUgcnVubmluZyB3aXRoICctLWZvcmNlJywgc2tpcCBhbHJlYWR5IHB1Ymxpc2hlZCBhc3NldHNcbiAgICBpZiAoIW9wdGlvbnMuZm9yY2VBc3NldFB1Ymxpc2hpbmcpIHtcbiAgICAgIGF3YWl0IHJlbW92ZVB1Ymxpc2hlZEFzc2V0c0Zyb21Xb3JrR3JhcGgod29ya0dyYXBoLCBkZXBsb3ltZW50cywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgZ3JhcGhDb25jdXJyZW5jeTogQ29uY3VycmVuY3kgPSB7XG4gICAgICAnc3RhY2snOiBjb25jdXJyZW5jeSxcbiAgICAgICdhc3NldC1idWlsZCc6IChvcHRpb25zLmFzc2V0UGFyYWxsZWxpc20gPz8gdHJ1ZSkgPyBvcHRpb25zLmFzc2V0QnVpbGRDb25jdXJyZW5jeSA/PyAxIDogMSwgLy8gVGhpcyB3aWxsIGJlIENQVS1ib3VuZC9tZW1vcnkgYm91bmQsIG1vc3RseSBtYXR0ZXJzIGZvciBEb2NrZXIgYnVpbGRzXG4gICAgICAnYXNzZXQtcHVibGlzaCc6IChvcHRpb25zLmFzc2V0UGFyYWxsZWxpc20gPz8gdHJ1ZSkgPyA4IDogMSwgLy8gVGhpcyB3aWxsIGJlIEkvTy1ib3VuZCwgOCBpbiBwYXJhbGxlbCBzZWVtcyByZWFzb25hYmxlXG4gICAgfTtcblxuICAgIGF3YWl0IHdvcmtHcmFwaC5kb1BhcmFsbGVsKGdyYXBoQ29uY3VycmVuY3ksIHtcbiAgICAgIGRlcGxveVN0YWNrLFxuICAgICAgYnVpbGRBc3NldDogdGhpcy5jcmVhdGVCdWlsZEFzc2V0RnVuY3Rpb24oaW9IZWxwZXIsIGRlcGxveW1lbnRzLCBvcHRpb25zLnJvbGVBcm4pLFxuICAgICAgcHVibGlzaEFzc2V0OiB0aGlzLmNyZWF0ZVB1Ymxpc2hBc3NldEZ1bmN0aW9uKGlvSGVscGVyLCBkZXBsb3ltZW50cywgb3B0aW9ucy5yb2xlQXJuLCBvcHRpb25zLmZvcmNlQXNzZXRQdWJsaXNoaW5nKSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2ggQWN0aW9uXG4gICAqXG4gICAqIENvbnRpbnVvdXNseSBvYnNlcnZlIHByb2plY3QgZmlsZXMgYW5kIGRlcGxveSB0aGUgc2VsZWN0ZWQgc3RhY2tzXG4gICAqIGF1dG9tYXRpY2FsbHkgd2hlbiBjaGFuZ2VzIGFyZSBkZXRlY3RlZC4gRGVmYXVsdHMgdG8gaG90c3dhcCBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGltbWVkaWF0ZWx5LCBzdGFydGluZyBhIHdhdGNoZXIgaW4gdGhlIGJhY2tncm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2F0Y2goY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBXYXRjaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8SVdhdGNoZXI+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICd3YXRjaCcpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgYXNzZW1ibHlGcm9tU291cmNlKGlvSGVscGVyLCBjeCwgZmFsc2UpO1xuICAgIGNvbnN0IHJvb3REaXIgPSBvcHRpb25zLndhdGNoRGlyID8/IHByb2Nlc3MuY3dkKCk7XG5cbiAgICAvLyBGb3IgdGhlIFwiaW5jbHVkZVwiIHNldHRpbmcsIHRoZSBiZWhhdmlvciBpczpcbiAgICAvLyAxLiBcIndhdGNoXCIgc2V0dGluZyB3aXRob3V0IGFuIFwiaW5jbHVkZVwiIGtleT8gV2UgZGVmYXVsdCB0byBvYnNlcnZpbmcgXCIqKlwiLlxuICAgIC8vIDIuIFwid2F0Y2hcIiBzZXR0aW5nIHdpdGggYW4gZW1wdHkgXCJpbmNsdWRlXCIga2V5PyBXZSBkZWZhdWx0IHRvIG9ic2VydmluZyBcIioqXCIuXG4gICAgLy8gMy4gTm9uLWVtcHR5IFwiaW5jbHVkZVwiIGtleT8gSnVzdCB1c2UgdGhlIFwiaW5jbHVkZVwiIGtleS5cbiAgICBjb25zdCB3YXRjaEluY2x1ZGVzID0gb3B0aW9ucy5pbmNsdWRlID8/IFtdO1xuICAgIGlmICh3YXRjaEluY2x1ZGVzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB3YXRjaEluY2x1ZGVzLnB1c2goJyoqJyk7XG4gICAgfVxuXG4gICAgLy8gRm9yIHRoZSBcImV4Y2x1ZGVcIiBzZXR0aW5nLCB0aGUgYmVoYXZpb3IgaXMgdG8gYWRkIHNvbWUgZGVmYXVsdCBleGNsdWRlcyBpbiBhZGRpdGlvbiB0b1xuICAgIC8vIHBhdHRlcm5zIHNwZWNpZmllZCBieSB0aGUgdXNlciBzZW5zaWJsZSBkZWZhdWx0IHBhdHRlcm5zOlxuICAgIGNvbnN0IHdhdGNoRXhjbHVkZXMgPSBvcHRpb25zLmV4Y2x1ZGUgPz8gWy4uLldBVENIX0VYQ0xVREVfREVGQVVMVFNdO1xuICAgIC8vIDEuIFRoZSBDREsgb3V0cHV0IGRpcmVjdG9yeSwgaWYgaXQgaXMgdW5kZXIgdGhlIHJvb3REaXJcbiAgICBjb25zdCByZWxhdGl2ZU91dERpciA9IHBhdGgucmVsYXRpdmUocm9vdERpciwgYXNzZW1ibHkuZGlyZWN0b3J5KTtcbiAgICBpZiAoQm9vbGVhbihyZWxhdGl2ZU91dERpciAmJiAhcmVsYXRpdmVPdXREaXIuc3RhcnRzV2l0aCgnLi4nICsgcGF0aC5zZXApICYmICFwYXRoLmlzQWJzb2x1dGUocmVsYXRpdmVPdXREaXIpKSkge1xuICAgICAgd2F0Y2hFeGNsdWRlcy5wdXNoKGAke3JlbGF0aXZlT3V0RGlyfS8qKmApO1xuICAgIH1cbiAgICAvLyAyLiBBbnkgZmlsZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIGEgZG90LlxuICAgIHdhdGNoRXhjbHVkZXMucHVzaCgnLionLCAnKiovLionKTtcbiAgICAvLyAzLiBBbnkgZGlyZWN0b3J5J3MgY29udGVudCB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIGEgZG90LlxuICAgIHdhdGNoRXhjbHVkZXMucHVzaCgnKiovLiovKionKTtcbiAgICAvLyA0LiBBbnkgbm9kZV9tb2R1bGVzIGFuZCBpdHMgY29udGVudCAoZXZlbiBpZiBpdCdzIG5vdCBhIEpTL1RTIHByb2plY3QsIHlvdSBtaWdodCBiZSB1c2luZyBhIGxvY2FsIGF3cy1jbGkgcGFja2FnZSlcbiAgICB3YXRjaEV4Y2x1ZGVzLnB1c2goJyoqL25vZGVfbW9kdWxlcy8qKicpO1xuXG4gICAgLy8gUHJpbnQgc29tZSBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBjb21wdXRlZCBzZXR0aW5nc1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTMxMC5tc2coW1xuICAgICAgYHJvb3QgZGlyZWN0b3J5IHVzZWQgZm9yICd3YXRjaCcgaXM6ICR7cm9vdERpcn1gLFxuICAgICAgYCdpbmNsdWRlJyBwYXR0ZXJucyBmb3IgJ3dhdGNoJzogJHtKU09OLnN0cmluZ2lmeSh3YXRjaEluY2x1ZGVzKX1gLFxuICAgICAgYCdleGNsdWRlJyBwYXR0ZXJucyBmb3IgJ3dhdGNoJzogJHtKU09OLnN0cmluZ2lmeSh3YXRjaEV4Y2x1ZGVzKX1gLFxuICAgIF0uam9pbignXFxuJyksIHtcbiAgICAgIHdhdGNoRGlyOiByb290RGlyLFxuICAgICAgaW5jbHVkZXM6IHdhdGNoSW5jbHVkZXMsXG4gICAgICBleGNsdWRlczogd2F0Y2hFeGNsdWRlcyxcbiAgICB9KSk7XG5cbiAgICAvLyBTaW5jZSAnY2RrIGRlcGxveScgaXMgYSByZWxhdGl2ZWx5IHNsb3cgb3BlcmF0aW9uIGZvciBhICd3YXRjaCcgcHJvY2VzcyxcbiAgICAvLyBpbnRyb2R1Y2UgYSBjb25jdXJyZW5jeSBsYXRjaCB0aGF0IHRyYWNrcyB0aGUgc3RhdGUuXG4gICAgLy8gVGhpcyB3YXksIGlmIGZpbGUgY2hhbmdlIGV2ZW50cyBhcnJpdmUgd2hlbiBhICdjZGsgZGVwbG95JyBpcyBzdGlsbCBleGVjdXRpbmcsXG4gICAgLy8gd2Ugd2lsbCBiYXRjaCB0aGVtLCBhbmQgdHJpZ2dlciBhbm90aGVyICdjZGsgZGVwbG95JyBhZnRlciB0aGUgY3VycmVudCBvbmUgZmluaXNoZXMsXG4gICAgLy8gbWFraW5nIHN1cmUgJ2NkayBkZXBsb3kncyAgYWx3YXlzIGV4ZWN1dGUgb25lIGF0IGEgdGltZS5cbiAgICAvLyBIZXJlJ3MgYSBkaWFncmFtIHNob3dpbmcgdGhlIHN0YXRlIHRyYW5zaXRpb25zOlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgIC0tLS0tLS0tICAgIGZpbGUgY2hhbmdlZCAgICAgLS0tLS0tLS0tLS0tLS0gICAgZmlsZSBjaGFuZ2VkICAgICAtLS0tLS0tLS0tLS0tLSAgZmlsZSBjaGFuZ2VkXG4gICAgLy8gfCAgICAgICAgICAgIHwgIHJlYWR5IGV2ZW50ICAgfCAgICAgIHwgLS0tLS0tLS0tLS0tLS0tLS0tPiB8ICAgICAgICAgICAgfCAtLS0tLS0tLS0tLS0tLS0tLS0+IHwgICAgICAgICAgICB8IC0tLS0tLS0tLS0tLS0tfFxuICAgIC8vIHwgcHJlLXJlYWR5ICB8IC0tLS0tLS0tLS0tLS0+IHwgb3BlbiB8ICAgICAgICAgICAgICAgICAgICAgfCBkZXBsb3lpbmcgIHwgICAgICAgICAgICAgICAgICAgICB8ICAgcXVldWVkICAgfCAgICAgICAgICAgICAgIHxcbiAgICAvLyB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgfCA8LS0tLS0tLS0tLS0tLS0tLS0tIHwgICAgICAgICAgICB8IDwtLS0tLS0tLS0tLS0tLS0tLS0gfCAgICAgICAgICAgIHwgPC0tLS0tLS0tLS0tLS18XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgLS0tLS0tLS0gICdjZGsgZGVwbG95JyBkb25lICAtLS0tLS0tLS0tLS0tLSAgJ2NkayBkZXBsb3knIGRvbmUgIC0tLS0tLS0tLS0tLS0tXG4gICAgdHlwZSBMYXRjaFN0YXRlID0gJ3ByZS1yZWFkeScgfCAnb3BlbicgfCAnZGVwbG95aW5nJyB8ICdxdWV1ZWQnO1xuICAgIGxldCBsYXRjaDogTGF0Y2hTdGF0ZSA9ICdwcmUtcmVhZHknO1xuXG4gICAgY29uc3QgY2xvdWRXYXRjaExvZ01vbml0b3IgPSBvcHRpb25zLnRyYWNlTG9ncyA/IG5ldyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yKHsgaW9IZWxwZXIgfSkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGVwbG95QW5kV2F0Y2ggPSBhc3luYyAoKSA9PiB7XG4gICAgICBsYXRjaCA9ICdkZXBsb3lpbmcnIGFzIExhdGNoU3RhdGU7XG4gICAgICBhd2FpdCBjbG91ZFdhdGNoTG9nTW9uaXRvcj8uZGVhY3RpdmF0ZSgpO1xuXG4gICAgICBhd2FpdCB0aGlzLmludm9rZURlcGxveUZyb21XYXRjaChhc3NlbWJseSwgb3B0aW9ucywgY2xvdWRXYXRjaExvZ01vbml0b3IpO1xuXG4gICAgICAvLyBJZiBsYXRjaCBpcyBzdGlsbCAnZGVwbG95aW5nJyBhZnRlciB0aGUgJ2F3YWl0JywgdGhhdCdzIGZpbmUsXG4gICAgICAvLyBidXQgaWYgaXQncyAncXVldWVkJywgdGhhdCBtZWFucyB3ZSBuZWVkIHRvIGRlcGxveSBhZ2FpblxuICAgICAgd2hpbGUgKGxhdGNoID09PSAncXVldWVkJykge1xuICAgICAgICAvLyBUeXBlU2NyaXB0IGRvZXNuJ3QgcmVhbGl6ZSBsYXRjaCBjYW4gY2hhbmdlIGJldHdlZW4gJ2F3YWl0cycsXG4gICAgICAgIC8vIGFuZCB0aGlua3MgdGhlIGFib3ZlICd3aGlsZScgY29uZGl0aW9uIGlzIGFsd2F5cyAnZmFsc2UnIHdpdGhvdXQgdGhlIGNhc3RcbiAgICAgICAgbGF0Y2ggPSAnZGVwbG95aW5nJztcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzE1Lm1zZyhcIkRldGVjdGVkIGZpbGUgY2hhbmdlcyBkdXJpbmcgZGVwbG95bWVudC4gSW52b2tpbmcgJ2NkayBkZXBsb3knIGFnYWluXCIpKTtcbiAgICAgICAgYXdhaXQgdGhpcy5pbnZva2VEZXBsb3lGcm9tV2F0Y2goYXNzZW1ibHksIG9wdGlvbnMsIGNsb3VkV2F0Y2hMb2dNb25pdG9yKTtcbiAgICAgIH1cbiAgICAgIGxhdGNoID0gJ29wZW4nO1xuICAgICAgYXdhaXQgY2xvdWRXYXRjaExvZ01vbml0b3I/LmFjdGl2YXRlKCk7XG4gICAgfTtcblxuICAgIC8vIENyZWF0ZSBpZ25vcmUgbWF0Y2hlciBmb3IgY2hva2lkYXIgdjQgY29tcGF0aWJpbGl0eVxuICAgIC8vIENob2tpZGFyIHY0IHJlbW92ZWQgZ2xvYiBwYXR0ZXJuIHN1cHBvcnQsIHNvIHdlIHVzZSBwaWNvbWF0Y2ggdG8gZmlsdGVyIGZpbGVzXG4gICAgLy8gV2UgcGFzcyByb290RGlyIGJlY2F1c2UgY2hva2lkYXIgdjQgcGFzc2VzIGFic29sdXRlIHBhdGhzIHRvIHRoZSBpZ25vcmVkIGNhbGxiYWNrXG4gICAgY29uc3Qgc2hvdWxkSWdub3JlID0gY3JlYXRlSWdub3JlTWF0Y2hlcih7XG4gICAgICBpbmNsdWRlOiB3YXRjaEluY2x1ZGVzLFxuICAgICAgZXhjbHVkZTogd2F0Y2hFeGNsdWRlcyxcbiAgICAgIHJvb3REaXIsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3YXRjaGVyID0gY2hva2lkYXJcbiAgICAgIC53YXRjaCgnLicsIHtcbiAgICAgICAgaWdub3JlZDogc2hvdWxkSWdub3JlLFxuICAgICAgICBjd2Q6IHJvb3REaXIsXG4gICAgICB9KVxuICAgICAgLm9uKCdyZWFkeScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbGF0Y2ggPSAnb3Blbic7XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKFwiJ3dhdGNoJyByZWNlaXZlZCB0aGUgJ3JlYWR5JyBldmVudC4gRnJvbSBub3cgb24sIGFsbCBmaWxlIGNoYW5nZXMgd2lsbCB0cmlnZ2VyIGEgZGVwbG95bWVudFwiKTtcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzE0Lm1zZyhcIlRyaWdnZXJpbmcgaW5pdGlhbCAnY2RrIGRlcGxveSdcIikpO1xuICAgICAgICBhd2FpdCBkZXBsb3lBbmRXYXRjaCgpO1xuICAgICAgfSlcbiAgICAgIC5vbignYWxsJywgYXN5bmMgKGV2ZW50OiBFdmVudE5hbWUsIGZpbGVQYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgLy8gRmlsdGVyIG91dCBub24tZmlsZSBldmVudHMgKGUuZy4sICdlcnJvcicsICdyYXcnLCAncmVhZHknLCAnYWxsJylcbiAgICAgICAgLy8gVGhlc2UgYXJlIGhhbmRsZWQgc2VwYXJhdGVseSBvciBub3QgcmVsZXZhbnQgZm9yIHdhdGNoIGRlcGxveW1lbnRzXG4gICAgICAgIGlmICghaXNGaWxlRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdhdGNoRXZlbnQgPSB7XG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChsYXRjaCA9PT0gJ3ByZS1yZWFkeScpIHtcbiAgICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUzMTEubXNnKGAnd2F0Y2gnIGlzIG9ic2VydmluZyAke2V2ZW50ID09PSAnYWRkRGlyJyA/ICdkaXJlY3RvcnknIDogJ3RoZSBmaWxlJ30gJyR7ZmlsZVBhdGh9JyBmb3IgY2hhbmdlc2AsIHdhdGNoRXZlbnQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXRjaCA9PT0gJ29wZW4nKSB7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzEyLm1zZyhgRGV0ZWN0ZWQgY2hhbmdlIHRvICcke2ZpbGVQYXRofScgKHR5cGU6ICR7ZXZlbnR9KS4gVHJpZ2dlcmluZyAnY2RrIGRlcGxveSdgLCB3YXRjaEV2ZW50KSk7XG4gICAgICAgICAgYXdhaXQgZGVwbG95QW5kV2F0Y2goKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB0aGlzIG1lYW5zIGxhdGNoIGlzIGVpdGhlciAnZGVwbG95aW5nJyBvciAncXVldWVkJ1xuICAgICAgICAgIGxhdGNoID0gJ3F1ZXVlZCc7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzEzLm1zZyhcbiAgICAgICAgICAgIGBEZXRlY3RlZCBjaGFuZ2UgdG8gJyR7ZmlsZVBhdGh9JyAodHlwZTogJHtldmVudH0pIHdoaWxlICdjZGsgZGVwbG95JyBpcyBzdGlsbCBydW5uaW5nLiBXaWxsIHF1ZXVlIGZvciBhbm90aGVyIGRlcGxveW1lbnQgYWZ0ZXIgdGhpcyBvbmUgZmluaXNoZXMnYCxcbiAgICAgICAgICAgIHdhdGNoRXZlbnQsXG4gICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3Qgc3RvcHBlZFByb21pc2UgPSBwcm9taXNlV2l0aFJlc29sdmVyczx2b2lkPigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFzeW5jIGRpc3Bvc2UoKSB7XG4gICAgICAgIC8vIHN0b3AgdGhlIGxvZ3MgbW9uaXRvciwgaWYgaXQgZXhpc3RzXG4gICAgICAgIGF3YWl0IGNsb3VkV2F0Y2hMb2dNb25pdG9yPy5kZWFjdGl2YXRlKCk7XG4gICAgICAgIC8vIGNsb3NlIHRoZSB3YXRjaGVyIGl0c2VsZlxuICAgICAgICBhd2FpdCB3YXRjaGVyLmNsb3NlKCk7XG4gICAgICAgIHN0b3BwZWRQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIHN0b3BwZWRQcm9taXNlLnByb21pc2U7XG4gICAgICB9LFxuICAgICAgYXN5bmMgd2FpdEZvckVuZCgpIHtcbiAgICAgICAgcmV0dXJuIHN0b3BwZWRQcm9taXNlLnByb21pc2U7XG4gICAgICB9LFxuICAgICAgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIElXYXRjaGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIEFjdGlvblxuICAgKlxuICAgKiBSb2xscyBiYWNrIHRoZSBzZWxlY3RlZCBzdGFja3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcm9sbGJhY2soY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBSb2xsYmFja09wdGlvbnMgPSB7fSk6IFByb21pc2U8Um9sbGJhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdyb2xsYmFjaycpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgc3ludGhBbmRNZWFzdXJlKGlvSGVscGVyLCBjeCwgc3RhY2tzT3B0KG9wdGlvbnMpKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9yb2xsYmFjayhhc3NlbWJseSwgJ3JvbGxiYWNrJywgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIGFsbG93IHJvbGxiYWNrIGJlaW5nIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3kgb3Igd2F0Y2ggYWN0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBfcm9sbGJhY2soYXNzZW1ibHk6IFN0YWNrQXNzZW1ibHksIGFjdGlvbjogJ3JvbGxiYWNrJyB8ICdkZXBsb3knIHwgJ3dhdGNoJywgb3B0aW9uczogUm9sbGJhY2tPcHRpb25zKTogUHJvbWlzZTxSb2xsYmFja1Jlc3VsdD4ge1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsIGFjdGlvbik7XG5cbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuICAgIGF3YWl0IHRoaXMudmFsaWRhdGVTdGFja3NNZXRhZGF0YShzdGFja3MsIGlvSGVscGVyKTtcblxuICAgIGNvbnN0IHJldDogUm9sbGJhY2tSZXN1bHQgPSB7XG4gICAgICBzdGFja3M6IFtdLFxuICAgIH07XG5cbiAgICBpZiAoc3RhY2tzLnN0YWNrQ291bnQgPT09IDApIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FNjAwMS5tc2coJ05vIHN0YWNrcyBzZWxlY3RlZCcpKTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgbGV0IGFueVJvbGxiYWNrYWJsZSA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBbaW5kZXgsIHN0YWNrXSBvZiBzdGFja3Muc3RhY2tBcnRpZmFjdHMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCByb2xsYmFja1NwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uUk9MTEJBQ0tfU1RBQ0spLmJlZ2luKGBSb2xsaW5nIGJhY2sgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX1gLCB7XG4gICAgICAgIHRvdGFsOiBzdGFja3Muc3RhY2tDb3VudCxcbiAgICAgICAgY3VycmVudDogaW5kZXggKyAxLFxuICAgICAgICBzdGFjayxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGVwbG95bWVudHMgPSBhd2FpdCB0aGlzLmRlcGxveW1lbnRzRm9yQWN0aW9uKCdyb2xsYmFjaycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc3RhY2tSZXN1bHQgPSBhd2FpdCBkZXBsb3ltZW50cy5yb2xsYmFja1N0YWNrKHtcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgICAgdG9vbGtpdFN0YWNrTmFtZTogdGhpcy50b29sa2l0U3RhY2tOYW1lLFxuICAgICAgICAgIG9ycGhhbkZhaWxlZFJlc291cmNlczogb3B0aW9ucy5vcnBoYW5GYWlsZWRSZXNvdXJjZXMsXG4gICAgICAgICAgdmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb246IG9wdGlvbnMudmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24sXG4gICAgICAgICAgb3JwaGFuTG9naWNhbElkczogb3B0aW9ucy5vcnBoYW5Mb2dpY2FsSWRzLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFzdGFja1Jlc3VsdC5ub3RJblJvbGxiYWNrYWJsZVN0YXRlKSB7XG4gICAgICAgICAgYW55Um9sbGJhY2thYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCByb2xsYmFja1NwYW4uZW5kKCk7XG5cbiAgICAgICAgcmV0LnN0YWNrcy5wdXNoKHtcbiAgICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgYWNjb3VudDogc3RhY2suZW52aXJvbm1lbnQuYWNjb3VudCxcbiAgICAgICAgICAgIHJlZ2lvbjogc3RhY2suZW52aXJvbm1lbnQucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhY2tOYW1lOiBzdGFjay5zdGFja05hbWUsXG4gICAgICAgICAgc3RhY2tBcm46IHN0YWNrUmVzdWx0LnN0YWNrQXJuLFxuICAgICAgICAgIHJlc3VsdDogc3RhY2tSZXN1bHQubm90SW5Sb2xsYmFja2FibGVTdGF0ZSA/ICdhbHJlYWR5LXN0YWJsZScgOiAncm9sbGVkLWJhY2snLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTY5MDAubXNnKGBcXG4g4p2MICAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfSBmYWlsZWQ6ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgICAgICB0aHJvdyBUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdSb2xsYmFja0ZhaWxlZCcsICdSb2xsYmFjayBmYWlsZWQgKHVzZSAtLWZvcmNlIHRvIG9ycGhhbiBmYWlsaW5nIHJlc291cmNlcyknLCBlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFhbnlSb2xsYmFja2FibGUpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ05vUm9sbGJhY2thYmxlU3RhY2tzJywgJ05vIHN0YWNrcyB3ZXJlIGluIGEgc3RhdGUgdGhhdCBjb3VsZCBiZSByb2xsZWQgYmFjaycpO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmVmYWN0b3IgQWN0aW9uLiBNb3ZlcyByZXNvdXJjZXMgZnJvbSBvbmUgbG9jYXRpb24gKHN0YWNrICsgbG9naWNhbCBJRCkgdG8gYW5vdGhlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZWZhY3RvcihjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIG9wdGlvbnM6IFJlZmFjdG9yT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZXF1aXJlVW5zdGFibGVGZWF0dXJlKCdyZWZhY3RvcicpO1xuXG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAncmVmYWN0b3InKTtcbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IHN5bnRoQW5kTWVhc3VyZShpb0hlbHBlciwgY3gsIHN0YWNrc09wdChvcHRpb25zKSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlZmFjdG9yKGFzc2VtYmx5LCBpb0hlbHBlciwgY3gsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVmYWN0b3IoYXNzZW1ibHk6IFN0YWNrQXNzZW1ibHksIGlvSGVscGVyOiBJb0hlbHBlciwgY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBSZWZhY3Rvck9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNka1Byb3ZpZGVyID0gYXdhaXQgdGhpcy5zZGtQcm92aWRlcigncmVmYWN0b3InKTtcbiAgICBjb25zdCBzZWxlY3RlZFN0YWNrcyA9IGF3YWl0IGFzc2VtYmx5LnNlbGVjdFN0YWNrc1YyKHN0YWNrc09wdChvcHRpb25zKSk7XG4gICAgY29uc3QgZ3JvdXBzID0gYXdhaXQgZ3JvdXBTdGFja3Moc2RrUHJvdmlkZXIsIHNlbGVjdGVkU3RhY2tzLnN0YWNrQXJ0aWZhY3RzLCBvcHRpb25zLmFkZGl0aW9uYWxTdGFja05hbWVzID8/IFtdKTtcblxuICAgIGZvciAobGV0IHsgZW52aXJvbm1lbnQsIGxvY2FsU3RhY2tzLCBkZXBsb3llZFN0YWNrcyB9IG9mIGdyb3Vwcykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXRFbnZpcm9ubWVudFNlY3Rpb25IZWFkZXIoZW52aXJvbm1lbnQpKTtcblxuICAgICAgY29uc3QgbmV3U3RhY2tzID0gbG9jYWxTdGFja3MuZmlsdGVyKHMgPT4gIWRlcGxveWVkU3RhY2tzLm1hcCh0ID0+IHQuc3RhY2tOYW1lKS5pbmNsdWRlcyhzLnN0YWNrTmFtZSkpO1xuICAgICAgaWYgKG5ld1N0YWNrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8qXG4gICAgICAgICBXaGVuIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjayByZWZhY3RvciBvcGVyYXRpb24gY3JlYXRlcyBhIG5ldyBzdGFjaywgYW5kIHRoZSByZXNvdXJjZXMgYmVpbmcgbW92ZWQgdG8gdGhhdFxuICAgICAgICAgbmV3IHN0YWNrIGhhdmUgcmVmZXJlbmNlcyB0byBvdGhlciByZXNvdXJjZXMsIENsb3VkRm9ybWF0aW9uIG5lZWRzIHRvIGRvIHdoYXQgdGhleSBjYWxsIFwiY29sbGFwc2luZyB0aGVcbiAgICAgICAgIHRlbXBsYXRlXCIuIFRoZSBkZXRhaWxzIGRvbid0IHJlYWxseSBtYXR0ZXIsIGV4Y2VwdCB0aGF0LCBpbiB0aGUgcHJvY2VzcywgaXQgY2FsbHMgc29tZSBzZXJ2aWNlIEFQSXMsIHRvIHJlYWRcbiAgICAgICAgIHRoZSByZXNvdXJjZXMgYmVpbmcgbW92ZWQuIFRoZSByb2xlIGl0IHVzZXMgdG8gY2FsbCB0aGVzZSBBUElzIGludGVybmFsbHkgaXMgdGhlIHJvbGUgdGhlIHVzZXIgY2FsbGVkIHRoZVxuICAgICAgICAgc3RhY2sgcmVmYWN0b3JpbmcgQVBJIHdpdGgsIHdoaWNoIGluIG91ciBjYXNlIGlzIHRoZSBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50IHJvbGUsIGZyb20gdGhlIGJvb3RzdHJhcCBzdGFjayxcbiAgICAgICAgIGJ5IGRlZmF1bHQuXG5cbiAgICAgICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhpcyByb2xlIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gcmVhZCBhbGwgcmVzb3VyY2UgdHlwZXMuIEluIHRoaXMgY2FzZSxcbiAgICAgICAgIENsb3VkRm9ybWF0aW9uIHdpbGwgcm9sbCBiYWNrIHRoZSByZWZhY3RvciBvcGVyYXRpb24uIFNpbmNlIHRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBBUEksIHRoYXRcbiAgICAgICAgIHRoZSB1c2VyIGNhbm5vdCBrbm93IGFib3V0LCBhbmQgZGlkbid0IGFzayBmb3IsIGl0IHdpbGwgYmUgdmVyeSBzdXJwcmlzaW5nLiBTbyB3ZSd2ZSBkZWNpZGVkIHRvIGJsb2NrIHRoaXMgdXNlXG4gICAgICAgICBjYXNlIHVudGlsIENsb3VkRm9ybWF0aW9uIHN1cHBvcnRzIHBhc3NpbmcgYSBkaWZmZXJlbnQgcm9sZSB0byB1c2UgZm9yIHRoZXNlIHJlYWQgb3BlcmF0aW9ucywgYXMgaXMgdGhlIGNhc2VcbiAgICAgICAgIHdpdGggZGVwbG95bWVudC5cbiAgICAgICAgICovXG5cbiAgICAgICAgbGV0IG1lc3NhZ2UgPSBgVGhlIGZvbGxvd2luZyBzdGFjayR7bmV3U3RhY2tzLmxlbmd0aCA9PT0gMSA/ICcgaXMnIDogJ3MgYXJlJ30gbmV3OiAke25ld1N0YWNrcy5tYXAocyA9PiBzLnN0YWNrTmFtZSkuam9pbignLCAnKX1cXG5gO1xuICAgICAgICBtZXNzYWdlICs9ICdDcmVhdGlvbiBvZiBuZXcgc3RhY2tzIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IHRoZSByZWZhY3RvciBjb21tYW5kLiAnO1xuICAgICAgICBtZXNzYWdlICs9ICdQbGVhc2UgZGVwbG95IGFueSBuZXcgc3RhY2tzIHNlcGFyYXRlbHkgYmVmb3JlIHJlZmFjdG9yaW5nIHlvdXIgc3RhY2tzLic7XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKGNoYWxrLnJlZChtZXNzYWdlKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFJlZmFjdG9yaW5nQ29udGV4dCh7XG4gICAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgICAgZGVwbG95ZWRTdGFja3MsXG4gICAgICAgICAgbG9jYWxTdGFja3MsXG4gICAgICAgICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICAgIG92ZXJyaWRlczogZ2V0T3ZlcnJpZGVzKGVudmlyb25tZW50LCBkZXBsb3llZFN0YWNrcywgbG9jYWxTdGFja3MpLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBtYXBwaW5ncyA9IGNvbnRleHQubWFwcGluZ3M7XG5cbiAgICAgICAgaWYgKG1hcHBpbmdzLmxlbmd0aCA9PT0gMCAmJiBjb250ZXh0LmFtYmlndW91c1BhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ05vdGhpbmcgdG8gcmVmYWN0b3IuJyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0eXBlZE1hcHBpbmdzID0gbWFwcGluZ3NcbiAgICAgICAgICAubWFwKG0gPT4gbS50b1R5cGVkTWFwcGluZygpKVxuICAgICAgICAgIC5maWx0ZXIobSA9PiBtLnR5cGUgIT09ICdBV1M6OkNESzo6TWV0YWRhdGEnKTtcblxuICAgICAgICBsZXQgcmVmYWN0b3JNZXNzYWdlID0gZm9ybWF0VHlwZWRNYXBwaW5ncyh0eXBlZE1hcHBpbmdzKTtcbiAgICAgICAgY29uc3QgcmVmYWN0b3JSZXN1bHQ6IFJlZmFjdG9yUmVzdWx0ID0geyB0eXBlZE1hcHBpbmdzIH07XG5cbiAgICAgICAgY29uc3Qgc3RhY2tEZWZpbml0aW9ucyA9IGF3YWl0IGdlbmVyYXRlU3RhY2tEZWZpbml0aW9ucyhtYXBwaW5ncywgZGVwbG95ZWRTdGFja3MsIGxvY2FsU3RhY2tzLCBlbnZpcm9ubWVudCwgc2RrUHJvdmlkZXIsIGlvSGVscGVyKTtcblxuICAgICAgICBpZiAoY29udGV4dC5hbWJpZ3VvdXNQYXRocy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgcGF0aHMgPSBjb250ZXh0LmFtYmlndW91c1BhdGhzO1xuICAgICAgICAgIHJlZmFjdG9yTWVzc2FnZSArPSAnXFxuJyArIGZvcm1hdEFtYmlndW91c01hcHBpbmdzKHBhdGhzKTtcbiAgICAgICAgICByZWZhY3RvclJlc3VsdC5hbWJpZ3VvdXNQYXRocyA9IHBhdGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k4OTAwLm1zZyhyZWZhY3Rvck1lc3NhZ2UsIHJlZmFjdG9yUmVzdWx0KSk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZHJ5UnVuIHx8IGNvbnRleHQubWFwcGluZ3MubGVuZ3RoID09PSAwIHx8IGNvbnRleHQuYW1iaWd1b3VzUGF0aHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIE5vdGhpbmcgbGVmdCB0byBkby5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluIGludGVyYWN0aXZlIG1vZGUgKFRUWSkgd2UgbmVlZCBjb25maXJtYXRpb24gYmVmb3JlIHByb2NlZWRpbmdcbiAgICAgICAgaWYgKHByb2Nlc3Muc3Rkb3V0LmlzVFRZICYmICFhd2FpdCBjb25maXJtKG9wdGlvbnMuZm9yY2UgPz8gZmFsc2UpKSB7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhjaGFsay5yZWQoYFJlZmFjdG9yaW5nIGNhbmNlbGVkIGZvciBlbnZpcm9ubWVudCBhd3M6Ly8ke2Vudmlyb25tZW50LmFjY291bnR9LyR7ZW52aXJvbm1lbnQucmVnaW9ufVxcbmApKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ1JlZmFjdG9yaW5nLi4uJyk7XG4gICAgICAgIGF3YWl0IGNvbnRleHQuZXhlY3V0ZShzdGFja0RlZmluaXRpb25zLCBzZGtQcm92aWRlciwgaW9IZWxwZXIpO1xuICAgICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCfinIUgIFN0YWNrIHJlZmFjdG9yIGNvbXBsZXRlJyk7XG5cbiAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbygnRGVwbG95aW5nIHVwZGF0ZWQgc3RhY2tzIHRvIGZpbmFsaXplIHJlZmFjdG9yLi4uJyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVwbG95KGN4LCB7XG4gICAgICAgICAgc3RhY2tzOiBBTExfU1RBQ0tTLFxuICAgICAgICAgIGZvcmNlRGVwbG95bWVudDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGDinYwgIFJlZmFjdG9yIGZhaWxlZDogJHtmb3JtYXRFcnJvcihlKX1gO1xuICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTg5MDAubXNnKG1lc3NhZ2UsIHsgZXJyb3I6IGUgfSkpO1xuXG4gICAgICAgIC8vIEFsc28gZGVidWdnaW5nIHRoZSBlcnJvciwgYmVjYXVzZSB0aGUgQVBJIGRvZXMgbm90IGFsd2F5cyByZXR1cm4gYSB1c2VyLWZyaWVuZGx5IG1lc3NhZ2VcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRPdmVycmlkZXMoZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LCBkZXBsb3llZFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdLCBsb2NhbFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdKSB7XG4gICAgICBjb25zdCBtYXBwaW5nR3JvdXAgPSBvcHRpb25zLm92ZXJyaWRlc1xuICAgICAgICA/LmZpbmQoZyA9PiBnLnJlZ2lvbiA9PT0gZW52aXJvbm1lbnQucmVnaW9uICYmIGcuYWNjb3VudCA9PT0gZW52aXJvbm1lbnQuYWNjb3VudCk7XG5cbiAgICAgIHJldHVybiBtYXBwaW5nR3JvdXAgPT0gbnVsbFxuICAgICAgICA/IFtdXG4gICAgICAgIDogT2JqZWN0LmVudHJpZXMobWFwcGluZ0dyb3VwLnJlc291cmNlcyA/PyB7fSlcbiAgICAgICAgICAubWFwKChbc291cmNlLCBkZXN0aW5hdGlvbl0pID0+IG5ldyBSZXNvdXJjZU1hcHBpbmcoXG4gICAgICAgICAgICBnZXRSZXNvdXJjZUxvY2F0aW9uKHNvdXJjZSwgZGVwbG95ZWRTdGFja3MpLFxuICAgICAgICAgICAgZ2V0UmVzb3VyY2VMb2NhdGlvbihkZXN0aW5hdGlvbiwgbG9jYWxTdGFja3MpLFxuICAgICAgICAgICkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFJlc291cmNlTG9jYXRpb24obG9jYXRpb246IHN0cmluZywgc3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW10pOiBSZXNvdXJjZUxvY2F0aW9uIHtcbiAgICAgIGZvciAobGV0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgICAgICBjb25zdCBbc3RhY2tOYW1lLCBsb2dpY2FsSWRdID0gbG9jYXRpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHN0YWNrTmFtZSAhPSBudWxsICYmIGxvZ2ljYWxJZCAhPSBudWxsICYmIHN0YWNrLnN0YWNrTmFtZSA9PT0gc3RhY2tOYW1lICYmIHN0YWNrLnRlbXBsYXRlLlJlc291cmNlcz8uW2xvZ2ljYWxJZF0gIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VMb2NhdGlvbihzdGFjaywgbG9naWNhbElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZXNvdXJjZUVudHJ5ID0gT2JqZWN0XG4gICAgICAgICAgICAuZW50cmllcyhzdGFjay50ZW1wbGF0ZS5SZXNvdXJjZXMgPz8ge30pXG4gICAgICAgICAgICAuZmluZCgoW18sIHJdKSA9PiByLk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddID09PSBsb2NhdGlvbik7XG4gICAgICAgICAgaWYgKHJlc291cmNlRW50cnkgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUxvY2F0aW9uKHN0YWNrLCByZXNvdXJjZUVudHJ5WzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Jlc291cmNlTG9jYXRpb25Ob3RGb3VuZCcsIGBDYW5ub3QgZmluZCByZXNvdXJjZSBpbiBsb2NhdGlvbiAke2xvY2F0aW9ufWApO1xuICAgIH1cblxuICAgIGFzeW5jIGZ1bmN0aW9uIGNvbmZpcm0oZm9yY2U6IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgIC8vICdmb3JjZScgaXMgc2V0IHRvIHRydWUgaXMgdGhlIGVxdWl2YWxlbnQgb2YgaGF2aW5nIHByZS1hcHByb3ZhbCBmb3IgYW55IHJlZmFjdG9yXG4gICAgICBpZiAoZm9yY2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gJ0RvIHlvdSB3aXNoIHRvIHJlZmFjdG9yIHRoZXNlIHJlc291cmNlcz8nO1xuICAgICAgcmV0dXJuIGlvSGVscGVyLnJlcXVlc3RSZXNwb25zZShJTy5DREtfVE9PTEtJVF9JODkxMC5yZXEocXVlc3Rpb24sIHtcbiAgICAgICAgbW90aXZhdGlvbjogJ1VzZXIgaW5wdXQgaXMgbmVlZGVkJyxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmb3JtYXRFcnJvcihlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKHBheWxvYWQucmVhc29uPy5TdGF0dXNSZWFzb24pIHtcbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKGBSZWZhY3RvciBjcmVhdGlvbjogWyR7cGF5bG9hZC5yZWFzb24/LlN0YXR1c31dICR7cGF5bG9hZC5yZWFzb24uU3RhdHVzUmVhc29ufWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXlsb2FkLnJlYXNvbj8uRXhlY3V0aW9uU3RhdHVzUmVhc29uKSB7XG4gICAgICAgICAgbWVzc2FnZXMucHVzaChgUmVmYWN0b3IgZXhlY3V0aW9uOiBbJHtwYXlsb2FkLnJlYXNvbj8uU3RhdHVzfV0gJHtwYXlsb2FkLnJlYXNvbi5FeGVjdXRpb25TdGF0dXNSZWFzb259YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzLmxlbmd0aCA+IDAgPyBtZXNzYWdlcy5qb2luKCdcXG4nKSA6IGBVbmtub3duIGVycm9yIChTdGFjayByZWZhY3RvciBJRDogJHtwYXlsb2FkLnJlYXNvbj8uU3RhY2tSZWZhY3RvcklkID8/ICd1bmtub3duJ30pYDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdEVycm9yTWVzc2FnZShlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3kgQWN0aW9uXG4gICAqXG4gICAqIERlc3Ryb3lzIHRoZSBzZWxlY3RlZCBTdGFja3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVzdHJveShjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIG9wdGlvbnM6IERlc3Ryb3lPcHRpb25zID0ge30pOiBQcm9taXNlPERlc3Ryb3lSZXN1bHQ+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdkZXN0cm95Jyk7XG4gICAgYXdhaXQgdXNpbmcgYXNzZW1ibHkgPSBhd2FpdCBzeW50aEFuZE1lYXN1cmUoaW9IZWxwZXIsIGN4LCBzdGFja3NPcHQob3B0aW9ucykpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9kZXN0cm95KGFzc2VtYmx5LCAnZGVzdHJveScsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciB0byBhbGxvdyBkZXN0cm95IGJlaW5nIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3kgYWN0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBfZGVzdHJveShhc3NlbWJseTogU3RhY2tBc3NlbWJseSwgYWN0aW9uOiAnZGVwbG95JyB8ICdkZXN0cm95Jywgb3B0aW9uczogRGVzdHJveU9wdGlvbnMpOiBQcm9taXNlPERlc3Ryb3lSZXN1bHQ+IHtcbiAgICBjb25zdCBzZWxlY3RTdGFja3MgPSBzdGFja3NPcHQob3B0aW9ucyk7XG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCBhY3Rpb24pO1xuICAgIGNvbnN0IHN0YWNrcyA9IGF3YWl0IGFzc2VtYmx5LnNlbGVjdFN0YWNrc1YyKHNlbGVjdFN0YWNrcyk7XG5cbiAgICBjb25zdCByZXQ6IERlc3Ryb3lSZXN1bHQgPSB7XG4gICAgICBzdGFja3M6IFtdLFxuICAgIH07XG5cbiAgICBjb25zdCBtb3RpdmF0aW9uID0gJ0Rlc3Ryb3lpbmcgc3RhY2tzIGlzIGFuIGlycmV2ZXJzaWJsZSBhY3Rpb24nO1xuICAgIGNvbnN0IHF1ZXN0aW9uID0gYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU6ICR7Y2hhbGsucmVkKHN0YWNrcy5oaWVyYXJjaGljYWxJZHMuam9pbignLCAnKSl9YDtcbiAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCBpb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTcwMTAucmVxKHF1ZXN0aW9uLCB7IG1vdGl2YXRpb24gfSkpO1xuICAgIGlmICghY29uZmlybWVkKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTcwMTAubXNnKCdBYm9ydGVkIGJ5IHVzZXInKSk7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmN1cnJlbmN5ID0gb3B0aW9ucy5jb25jdXJyZW5jeSB8fCAxO1xuICAgIGxldCBkZXN0cm95Q291bnQgPSAwO1xuXG4gICAgY29uc3QgZGVzdHJveVNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uREVTVFJPWV9BQ1RJT04pLmJlZ2luKHtcbiAgICAgIHN0YWNrczogc3RhY2tzLnN0YWNrQXJ0aWZhY3RzLFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZXN0cm95U3RhY2sgPSBhc3luYyAoc3RhY2tOb2RlOiBTdGFja05vZGUpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBzdGFja05vZGUuc3RhY2s7XG4gICAgICAgIGRlc3Ryb3lDb3VudCsrO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNpbmdsZURlc3Ryb3lTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRFU1RST1lfU1RBQ0spXG4gICAgICAgICAgICAuYmVnaW4oY2hhbGsuZ3JlZW4oYCR7Y2hhbGsuYmx1ZShzdGFjay5kaXNwbGF5TmFtZSl9OiBkZXN0cm95aW5nLi4uIFske2Rlc3Ryb3lDb3VudH0vJHtzdGFja3Muc3RhY2tDb3VudH1dYCksIHtcbiAgICAgICAgICAgICAgdG90YWw6IHN0YWNrcy5zdGFja0NvdW50LFxuICAgICAgICAgICAgICBjdXJyZW50OiBkZXN0cm95Q291bnQsXG4gICAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgZGVwbG95bWVudHMgPSBhd2FpdCB0aGlzLmRlcGxveW1lbnRzRm9yQWN0aW9uKGFjdGlvbik7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVwbG95bWVudHMuZGVzdHJveVN0YWNrKHtcbiAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICAgZGVwbG95TmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0LnN0YWNrcy5wdXNoKHtcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgIGFjY291bnQ6IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgICAgICAgICAgIHJlZ2lvbjogc3RhY2suZW52aXJvbm1lbnQucmVnaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YWNrTmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgc3RhY2tBcm46IHJlc3VsdC5zdGFja0FybixcbiAgICAgICAgICAgIHN0YWNrRXhpc3RlZDogcmVzdWx0LnN0YWNrQXJuICE9PSB1bmRlZmluZWQsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTc5MDAubXNnKGNoYWxrLmdyZWVuKGBcXG4g4pyFICAke2NoYWxrLmJsdWUoc3RhY2suZGlzcGxheU5hbWUpfTogJHthY3Rpb259ZWRgKSwgc3RhY2spKTtcbiAgICAgICAgICBhd2FpdCBzaW5nbGVEZXN0cm95U3Bhbi5lbmQoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0U3OTAwLm1zZyhgXFxuIOKdjCAgJHtjaGFsay5ibHVlKHN0YWNrLmRpc3BsYXlOYW1lKX06ICR7YWN0aW9ufSBmYWlsZWQgJHtlfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHdvcmtHcmFwaCA9IGJ1aWxkRGVzdHJveVdvcmtHcmFwaChzdGFja3Muc3RhY2tBcnRpZmFjdHMsIGlvSGVscGVyKTtcbiAgICAgIGF3YWl0IHdvcmtHcmFwaC5wcm9jZXNzU3RhY2tzKGNvbmN1cnJlbmN5LCBkZXN0cm95U3RhY2spO1xuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBkZXN0cm95U3Bhbi5lbmQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIHN0YWNrcyBmb3IgZXJyb3JzIGFuZCB3YXJuaW5ncyBhY2NvcmRpbmcgdG8gdGhlIENMSSdzIGN1cnJlbnQgc2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVTdGFja3NNZXRhZGF0YShzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgaW9Ib3N0OiBJb0hlbHBlcikge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSAobGV2ZWw6IElvTWVzc2FnZUxldmVsKSA9PiB7XG4gICAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICByZXR1cm4gSU8uQ0RLX0FTU0VNQkxZX0U5OTk5O1xuICAgICAgICBjYXNlICd3YXJuJzpcbiAgICAgICAgICByZXR1cm4gSU8uQ0RLX0FTU0VNQkxZX1c5OTk5O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBJTy5DREtfQVNTRU1CTFlfSTk5OTk7XG4gICAgICB9XG4gICAgfTtcbiAgICBhd2FpdCBzdGFja3MudmFsaWRhdGVNZXRhZGF0YShcbiAgICAgIHRoaXMucHJvcHMuYXNzZW1ibHlGYWlsdXJlQXQsXG4gICAgICBhc3luYyAobGV2ZWwsIG1zZykgPT4gaW9Ib3N0Lm5vdGlmeShidWlsZGVyKGxldmVsKS5tc2coYFske2xldmVsfSBhdCAke21zZy5pZH1dICR7bXNnLmVudHJ5LmRhdGF9YCwgbXNnKSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkZXBsb3ltZW50cyBjbGFzc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXBsb3ltZW50c0ZvckFjdGlvbihhY3Rpb246IFRvb2xraXRBY3Rpb24pOiBQcm9taXNlPERlcGxveW1lbnRzPiB7XG4gICAgcmV0dXJuIG5ldyBEZXBsb3ltZW50cyh7XG4gICAgICBzZGtQcm92aWRlcjogYXdhaXQgdGhpcy5zZGtQcm92aWRlcihhY3Rpb24pLFxuICAgICAgdG9vbGtpdFN0YWNrTmFtZTogdGhpcy50b29sa2l0U3RhY2tOYW1lLFxuICAgICAgaW9IZWxwZXI6IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsIGFjdGlvbiksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGludm9rZURlcGxveUZyb21XYXRjaChcbiAgICBhc3NlbWJseTogU3RhY2tBc3NlbWJseSxcbiAgICBvcHRpb25zOiBXYXRjaE9wdGlvbnMsXG4gICAgY2xvdWRXYXRjaExvZ01vbml0b3I/OiBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyB3YXRjaCBkZWZhdWx0cyB0byBob3Rzd2FwIGRlcGxveW1lbnRcbiAgICBjb25zdCBkZXBsb3ltZW50TWV0aG9kID0gb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kID8/IHsgbWV0aG9kOiAnaG90c3dhcCcgfTtcbiAgICBjb25zdCBkZXBsb3lPcHRpb25zOiBQcml2YXRlRGVwbG95T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBjbG91ZFdhdGNoTG9nTW9uaXRvcixcbiAgICAgIGRlcGxveW1lbnRNZXRob2QsXG4gICAgICBleHRyYVVzZXJBZ2VudDogYGNkay13YXRjaC9ob3Rzd2FwLSR7ZGVwbG95bWVudE1ldGhvZC5tZXRob2QgPT09ICdob3Rzd2FwJyA/ICdvbicgOiAnb2ZmJ31gLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fZGVwbG95KGFzc2VtYmx5LCAnd2F0Y2gnLCB6ZXJvVGltZSgpLCBkZXBsb3lPcHRpb25zKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGp1c3QgY29udGludWUgLSBkZXBsb3kgd2lsbCBzaG93IHRoZSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBmZWF0dXJlIGZsYWcgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmbGFncyhjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UpOiBQcm9taXNlPEZlYXR1cmVGbGFnW10+IHtcbiAgICB0aGlzLnJlcXVpcmVVbnN0YWJsZUZlYXR1cmUoJ2ZsYWdzJyk7XG5cbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdmbGFncycpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgYXNzZW1ibHlGcm9tU291cmNlKGlvSGVscGVyLCBjeCk7XG4gICAgY29uc3QgYXJ0aWZhY3RzID0gT2JqZWN0LnZhbHVlcyhhc3NlbWJseS5jbG91ZEFzc2VtYmx5Lm1hbmlmZXN0LmFydGlmYWN0cyA/PyB7fSk7XG4gICAgY29uc3QgZmVhdHVyZUZsYWdSZXBvcnRzID0gYXJ0aWZhY3RzLmZpbHRlcihhID0+IGEudHlwZSA9PT0gQXJ0aWZhY3RUeXBlLkZFQVRVUkVfRkxBR19SRVBPUlQpO1xuXG4gICAgY29uc3QgZmxhZ3MgPSBmZWF0dXJlRmxhZ1JlcG9ydHMuZmxhdE1hcChyZXBvcnQgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IHJlcG9ydC5wcm9wZXJ0aWVzIGFzIEZlYXR1cmVGbGFnUmVwb3J0UHJvcGVydGllcztcbiAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBwcm9wZXJ0aWVzLm1vZHVsZTtcblxuICAgICAgY29uc3QgZmxhZ3NXaXRoVW5jb25maWd1cmVkQmVoYXZlc0xpa2UgPSBPYmplY3QuZW50cmllcyhwcm9wZXJ0aWVzLmZsYWdzKVxuICAgICAgICAuZmlsdGVyKChbXywgZmxhZ0luZm9dKSA9PiBmbGFnSW5mby51bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZSAhPSB1bmRlZmluZWQpO1xuXG4gICAgICBjb25zdCBzaG91bGRJbmNsdWRlVW5jb25maWd1cmVkQmVoYXZlc0xpa2UgPSBmbGFnc1dpdGhVbmNvbmZpZ3VyZWRCZWhhdmVzTGlrZS5sZW5ndGggPiAwO1xuXG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocHJvcGVydGllcy5mbGFncykubWFwKChbZmxhZ05hbWUsIGZsYWdJbmZvXSkgPT4ge1xuICAgICAgICBjb25zdCBiYXNlRmxhZyA9IHtcbiAgICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgICAgbmFtZTogZmxhZ05hbWUsXG4gICAgICAgICAgcmVjb21tZW5kZWRWYWx1ZTogZmxhZ0luZm8ucmVjb21tZW5kZWRWYWx1ZSxcbiAgICAgICAgICB1c2VyVmFsdWU6IGZsYWdJbmZvLnVzZXJWYWx1ZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgZXhwbGFuYXRpb246IGZsYWdJbmZvLmV4cGxhbmF0aW9uID8/ICcnLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzaG91bGRJbmNsdWRlVW5jb25maWd1cmVkQmVoYXZlc0xpa2UpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUZsYWcsXG4gICAgICAgICAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZToge1xuICAgICAgICAgICAgICB2MjogZmxhZ0luZm8udW5jb25maWd1cmVkQmVoYXZlc0xpa2U/LnYyID8/IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJhc2VGbGFnO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmxhZ3M7XG4gIH1cblxuICBwcml2YXRlIHJlcXVpcmVVbnN0YWJsZUZlYXR1cmUocmVxdWVzdGVkRmVhdHVyZTogVW5zdGFibGVGZWF0dXJlKSB7XG4gICAgaWYgKCF0aGlzLnVuc3RhYmxlRmVhdHVyZXMuaW5jbHVkZXMocmVxdWVzdGVkRmVhdHVyZSkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Vuc3RhYmxlRmVhdHVyZU5vdEVuYWJsZWQnLCBgVW5zdGFibGUgZmVhdHVyZSAnJHtyZXF1ZXN0ZWRGZWF0dXJlfScgaXMgbm90IGVuYWJsZWQuIFBsZWFzZSBlbmFibGUgaXQgdW5kZXIgJ3Vuc3RhYmxlRmVhdHVyZXMnYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGJ1aWxkQXNzZXQgZnVuY3Rpb24gZm9yIHVzZSBpbiBXb3JrR3JhcGhcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQnVpbGRBc3NldEZ1bmN0aW9uKFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gICAgcm9sZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICByZXR1cm4gYXN5bmMgKGFzc2V0Tm9kZTogQXNzZXRCdWlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkQXNzZXRTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkJVSUxEX0FTU0VUKS5iZWdpbih7XG4gICAgICAgIGFzc2V0OiBhc3NldE5vZGUuYXNzZXQsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGRlcGxveW1lbnRzLmJ1aWxkU2luZ2xlQXNzZXQoXG4gICAgICAgIGFzc2V0Tm9kZS5hc3NldE1hbmlmZXN0QXJ0aWZhY3QsXG4gICAgICAgIGFzc2V0Tm9kZS5hc3NldE1hbmlmZXN0LFxuICAgICAgICBhc3NldE5vZGUuYXNzZXQsXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFjazogYXNzZXROb2RlLnBhcmVudFN0YWNrLFxuICAgICAgICAgIHJvbGVBcm4sXG4gICAgICAgICAgc3RhY2tOYW1lOiBhc3NldE5vZGUucGFyZW50U3RhY2suc3RhY2tOYW1lLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGF3YWl0IGJ1aWxkQXNzZXRTcGFuLmVuZCgpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcHVibGlzaEFzc2V0IGZ1bmN0aW9uIGZvciB1c2UgaW4gV29ya0dyYXBoXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hBc3NldEZ1bmN0aW9uKFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gICAgcm9sZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGZvcmNlUHVibGlzaD86IGJvb2xlYW4sXG4gICkge1xuICAgIHJldHVybiBhc3luYyAoYXNzZXROb2RlOiBBc3NldFB1Ymxpc2hOb2RlKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaXNoQXNzZXRTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLlBVQkxJU0hfQVNTRVQpLmJlZ2luKHtcbiAgICAgICAgYXNzZXQ6IGFzc2V0Tm9kZS5hc3NldCxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgZGVwbG95bWVudHMucHVibGlzaFNpbmdsZUFzc2V0KGFzc2V0Tm9kZS5hc3NldE1hbmlmZXN0LCBhc3NldE5vZGUuYXNzZXQsIHtcbiAgICAgICAgc3RhY2s6IGFzc2V0Tm9kZS5wYXJlbnRTdGFjayxcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgc3RhY2tOYW1lOiBhc3NldE5vZGUucGFyZW50U3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBmb3JjZVB1Ymxpc2gsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHB1Ymxpc2hBc3NldFNwYW4uZW5kKCk7XG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENlbnRyYWxpemUgdGhlIGRlZmF1bHQgc3RhY2sgc2VsZWN0aW9uIGxvZ2ljIGluIGEgc2luZ2xlIHBsYWNlXG4gKi9cbmZ1bmN0aW9uIHN0YWNrc09wdChvOiB7IHN0YWNrcz86IFN0YWNrU2VsZWN0b3IgfSk6IFN0YWNrU2VsZWN0b3Ige1xuICByZXR1cm4gby5zdGFja3MgPz8gQUxMX1NUQUNLUztcbn1cblxuLyoqXG4gKiBQZXJmb3JtIHN5bnRoZXNpcyBhbmQgZW1pdCB0aGUgdGltZSB0YWtlbiB0byBhIG5ldyBzcGFuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN5bnRoQW5kTWVhc3VyZShcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsXG4gIHNlbGVjdFN0YWNrczogU3RhY2tTZWxlY3Rvcixcbik6IFByb21pc2U8U3RhY2tBc3NlbWJseSAmIHsgc3ludGhEdXJhdGlvbjogRWxhcHNlZFRpbWUgfT4ge1xuICBjb25zdCBzeW50aFNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uU1lOVEhfQVNTRU1CTFkpLmJlZ2luKHsgc3RhY2tzOiBzZWxlY3RTdGFja3MgfSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmV0ID0gYXdhaXQgYXNzZW1ibHlGcm9tU291cmNlKHN5bnRoU3Bhbi5hc0hlbHBlciwgY3gpO1xuICAgIGNvdW50QXNzZW1ibHlSZXN1bHRzKHN5bnRoU3BhbiwgcmV0LmFzc2VtYmx5KTtcbiAgICBjb25zdCBzeW50aER1cmF0aW9uID0gYXdhaXQgc3ludGhTcGFuLmVuZCh7fSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZXQsIHsgc3ludGhEdXJhdGlvbiB9KTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIC8vIEVuZCB0aGUgc3BhbiBldmVuIGlmIHdlIGhhZCBhIGZhaWx1cmVcbiAgICBhd2FpdCBzeW50aFNwYW4uZW5kKHsgZXJyb3IgfSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZnVuY3Rpb24gemVyb1RpbWUoKTogRWxhcHNlZFRpbWUge1xuICByZXR1cm4geyBhc01zOiAwLCBhc1NlYzogMCB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm9wZXJ0aWVzIHRoYXQgZGVzY3JpYmUgYSBwaHlzaWNhbGx5IGRlcGxveWVkIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGh5c2ljYWxTdGFjazxBcm4gZXh0ZW5kcyAnYXJuUmVxdWlyZWQnIHwgJ2Fybk9wdGlvbmFsJyA9ICdhcm5SZXF1aXJlZCc+IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFja1xuICAgKlxuICAgKiBBIHN0YWNrIG5hbWUgaXMgdW5pcXVlIGluc2lkZSBpdHMgZW52aXJvbm1lbnQsIGJ1dCBub3QgdW5pcXVlIGdsb2JhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBvZiB0aGUgc3RhY2tcbiAgICpcbiAgICogVGhpcyBlbnZpcm9ubWVudCBpcyBhbHdheXMgY29uY3JldGUsIGJlY2F1c2UgZXZlbiB0aG91Z2ggdGhlIENESyBhcHAnc1xuICAgKiBzdGFjayBtYXkgYmUgcmVnaW9uLWFnbm9zdGljLCBpbiBvcmRlciB0byBiZSBkZXBsb3llZCBpdCB3aWxsIGhhdmUgdG8gaGF2ZVxuICAgKiBiZWVuIHNwZWNpYWxpemVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tBcm46IEFybiBleHRlbmRzICdhcm5PcHRpb25hbCcgPyBzdHJpbmcgfCB1bmRlZmluZWQgOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdWx0IGludGVyZmFjZSBmb3IgdG9vbGtpdC5kZXBsb3kgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95UmVzdWx0IHtcbiAgLyoqXG4gICAqIExpc3Qgb2Ygc3RhY2tzIGRlcGxveWVkIGJ5IHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IERlcGxveWVkU3RhY2tbXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGRlcGxveWVkIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95ZWRTdGFjayBleHRlbmRzIFBoeXNpY2FsU3RhY2sge1xuICAvKipcbiAgICogSGllcmFyY2hpY2FsIGlkZW50aWZpZXJcbiAgICpcbiAgICogVGhpcyB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBzdGFjayBpbnNpZGUgdGhlIENESyBhcHAuXG4gICAqXG4gICAqIEluIHByYWN0aWNlIHRoaXMgd2lsbCBiZSB0aGUgc3RhY2sncyBjb25zdHJ1Y3QgcGF0aCwgYnV0IHVuZm9ydHVuYXRlbHkgdGhlXG4gICAqIENsb3VkIEFzc2VtYmx5IGNvbnRyYWN0IGRvZXNuJ3QgcmVxdWlyZSBvciBndWFyYW50ZWUgdGhhdC5cbiAgICovXG4gIHJlYWRvbmx5IGhpZXJhcmNoaWNhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXRzIG9mIHRoZSBkZXBsb3llZCBDbG91ZEZvcm1hdGlvbiBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBBbiBlbnZpcm9ubWVudCwgd2hpY2ggaXMgYW4gKGFjY291bnQsIHJlZ2lvbikgcGFpclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdWx0IGludGVyZmFjZSBmb3IgdG9vbGtpdC5kZXN0cm95IG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lSZXN1bHQge1xuICAvKipcbiAgICogTGlzdCBvZiBzdGFja3MgZGVzdHJveWVkIGJ5IHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IERlc3Ryb3llZFN0YWNrW107XG59XG5cbi8qKlxuICogQSBzdGFjayB0YXJnZXRlZCBieSBhIGRlc3Ryb3kgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVzdHJveWVkU3RhY2sgZXh0ZW5kcyBQaHlzaWNhbFN0YWNrPCdhcm5PcHRpb25hbCc+IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrIGV4aXN0ZWQgdG8gYmVnaW4gd2l0aFxuICAgKlxuICAgKiBJZiBgIXN0YWNrRXhpc3RlZGAsIHRoZSBzdGFjayBkaWRuJ3QgZXhpc3QsIHdhc24ndCBkZWxldGVkLCBhbmQgYHN0YWNrQXJuYFxuICAgKiB3aWxsIGJlIGB1bmRlZmluZWRgLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tFeGlzdGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc3VsdCBpbnRlcmZhY2UgZm9yIHRvb2xraXQucm9sbGJhY2sgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sbGJhY2tSZXN1bHQge1xuICAvKipcbiAgICogTGlzdCBvZiBzdGFja3Mgcm9sbGVkIGJhY2sgYnkgdGhpcyBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogUm9sbGVkQmFja1N0YWNrW107XG59XG5cbi8qKlxuICogQSBzdGFjayB0YXJnZXRlZCBieSBhIHJvbGxiYWNrIG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvbGxlZEJhY2tTdGFjayBleHRlbmRzIFBoeXNpY2FsU3RhY2sge1xuICAvKipcbiAgICogV2hhdCBvcGVyYXRpb24gd2UgZGlkIGZvciB0aGlzIHN0YWNrXG4gICAqXG4gICAqIEVpdGhlcjogd2UgZGlkIHJvbGwgaXQgYmFjaywgb3Igd2UgZGlkbid0IG5lZWQgdG8gcm9sbCBpdCBiYWNrIGJlY2F1c2VcbiAgICogaXQgd2FzIGFscmVhZHkgc3RhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdWx0OiBTdGFja1JvbGxiYWNrUmVzdWx0O1xufVxuXG5leHBvcnQgdHlwZSBTdGFja1JvbGxiYWNrUmVzdWx0ID0gJ3JvbGxlZC1iYWNrJyB8ICdhbHJlYWR5LXN0YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWcge1xuICByZWFkb25seSBtb2R1bGU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSByZWNvbW1lbmRlZFZhbHVlOiB1bmtub3duO1xuICByZWFkb25seSB1c2VyVmFsdWU/OiB1bmtub3duO1xuICByZWFkb25seSBleHBsYW5hdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U/OiB7IHYyPzogYW55IH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zipDirectory = zipDirectory;\nconst console_1 = require(\"console\");\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst fast_glob_1 = require(\"fast-glob\");\nconst format_error_1 = require(\"./format-error\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst archiver = require('archiver');\n// Adapted from cdk-assets\nasync function zipDirectory(directory, outputFile) {\n // We write to a temporary file and rename at the last moment. This is so that if we are\n // interrupted during this process, we don't leave a half-finished file in the target location.\n const temporaryOutputFile = `${outputFile}.${randomString()}._tmp`;\n await writeZipFile(directory, temporaryOutputFile);\n await moveIntoPlace(temporaryOutputFile, outputFile);\n}\nfunction writeZipFile(directory, outputFile) {\n return new Promise(async (ok, fail) => {\n // The below options are needed to support following symlinks when building zip files:\n // - onlyFiles: This will prevent symlinks themselves from being copied into the zip.\n // - followSymbolicLinks: This will follow symlinks and copy the files within.\n const globOptions = {\n dot: true,\n onlyFiles: true,\n followSymbolicLinks: true,\n cwd: directory,\n };\n const files = (0, fast_glob_1.globSync)('**', globOptions); // The output here is already sorted\n const output = (0, fs_1.createWriteStream)(outputFile);\n const archive = archiver('zip');\n archive.on('warning', fail);\n archive.on('error', fail);\n // archive has been finalized and the output file descriptor has closed, resolve promise\n // this has to be done before calling `finalize` since the events may fire immediately after.\n // see https://www.npmjs.com/package/archiver\n output.once('close', ok);\n archive.pipe(output);\n // Append files serially to ensure file order\n for (const file of files) {\n const fullPath = path.resolve(directory, file);\n // Exactly 2 promises\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const [data, stat] = await Promise.all([fs_1.promises.readFile(fullPath), fs_1.promises.stat(fullPath)]);\n archive.append(data, {\n name: file,\n mode: stat.mode,\n });\n }\n await archive.finalize();\n });\n}\n/**\n * Rename the file to the target location, taking into account:\n *\n * - That we may see EPERM on Windows while an Antivirus scanner still has the\n * file open, so retry a couple of times.\n * - This same function may be called in parallel and be interrupted at any point.\n */\nasync function moveIntoPlace(source, target) {\n let delay = 100;\n let attempts = 5;\n while (true) {\n try {\n // 'rename' is guaranteed to overwrite an existing target, as long as it is a file (not a directory)\n await fs_1.promises.rename(source, target);\n return;\n }\n catch (e) {\n if (e.code !== 'EPERM' || attempts-- <= 0) {\n throw e;\n }\n (0, console_1.error)((0, format_error_1.formatErrorMessage)(e));\n await sleep(Math.floor(Math.random() * delay));\n delay *= 2;\n }\n }\n}\nfunction sleep(ms) {\n return new Promise(ok => setTimeout(ok, ms));\n}\nfunction randomString() {\n return Math.random().toString(36).replace(/[^a-z0-9]+/g, '');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFyY2hpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxvQ0FNQztBQWpCRCxxQ0FBZ0M7QUFDaEMsMkJBQXVEO0FBQ3ZELDZCQUE2QjtBQUU3Qix5Q0FBcUM7QUFDckMsaURBQW9EO0FBRXBELGlFQUFpRTtBQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFckMsMEJBQTBCO0FBQ25CLEtBQUssVUFBVSxZQUFZLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtJQUN0RSx3RkFBd0Y7SUFDeEYsK0ZBQStGO0lBQy9GLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxVQUFVLElBQUksWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUNuRSxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNuRCxNQUFNLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtJQUN6RCxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDcEMsc0ZBQXNGO1FBQ3RGLHFGQUFxRjtRQUNyRiw4RUFBOEU7UUFDOUUsTUFBTSxXQUFXLEdBQVk7WUFDM0IsR0FBRyxFQUFFLElBQUk7WUFDVCxTQUFTLEVBQUUsSUFBSTtZQUNmLG1CQUFtQixFQUFFLElBQUk7WUFDekIsR0FBRyxFQUFFLFNBQVM7U0FDZixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLG9DQUFvQztRQUUvRSxNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFpQixFQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUxQix3RkFBd0Y7UUFDeEYsNkZBQTZGO1FBQzdGLDZDQUE2QztRQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV6QixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCLDZDQUE2QztRQUM3QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLHFCQUFxQjtZQUNyQix3RUFBd0U7WUFDeEUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNuQixJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILEtBQUssVUFBVSxhQUFhLENBQUMsTUFBYyxFQUFFLE1BQWM7SUFDekQsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDO1lBQ0gsb0dBQW9HO1lBQ3BHLE1BQU0sYUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELElBQUEsZUFBSyxFQUFDLElBQUEsaUNBQWtCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9DLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxFQUFVO0lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsWUFBWTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXJyb3IgfSBmcm9tICdjb25zb2xlJztcbmltcG9ydCB7IGNyZWF0ZVdyaXRlU3RyZWFtLCBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgfSBmcm9tICdmYXN0LWdsb2InO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tICdmYXN0LWdsb2InO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi9mb3JtYXQtZXJyb3InO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgYXJjaGl2ZXIgPSByZXF1aXJlKCdhcmNoaXZlcicpO1xuXG4vLyBBZGFwdGVkIGZyb20gY2RrLWFzc2V0c1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHppcERpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgb3V0cHV0RmlsZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFdlIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJlbmFtZSBhdCB0aGUgbGFzdCBtb21lbnQuIFRoaXMgaXMgc28gdGhhdCBpZiB3ZSBhcmVcbiAgLy8gaW50ZXJydXB0ZWQgZHVyaW5nIHRoaXMgcHJvY2Vzcywgd2UgZG9uJ3QgbGVhdmUgYSBoYWxmLWZpbmlzaGVkIGZpbGUgaW4gdGhlIHRhcmdldCBsb2NhdGlvbi5cbiAgY29uc3QgdGVtcG9yYXJ5T3V0cHV0RmlsZSA9IGAke291dHB1dEZpbGV9LiR7cmFuZG9tU3RyaW5nKCl9Ll90bXBgO1xuICBhd2FpdCB3cml0ZVppcEZpbGUoZGlyZWN0b3J5LCB0ZW1wb3JhcnlPdXRwdXRGaWxlKTtcbiAgYXdhaXQgbW92ZUludG9QbGFjZSh0ZW1wb3JhcnlPdXRwdXRGaWxlLCBvdXRwdXRGaWxlKTtcbn1cblxuZnVuY3Rpb24gd3JpdGVaaXBGaWxlKGRpcmVjdG9yeTogc3RyaW5nLCBvdXRwdXRGaWxlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChvaywgZmFpbCkgPT4ge1xuICAgIC8vIFRoZSBiZWxvdyBvcHRpb25zIGFyZSBuZWVkZWQgdG8gc3VwcG9ydCBmb2xsb3dpbmcgc3ltbGlua3Mgd2hlbiBidWlsZGluZyB6aXAgZmlsZXM6XG4gICAgLy8gLSBvbmx5RmlsZXM6IFRoaXMgd2lsbCBwcmV2ZW50IHN5bWxpbmtzIHRoZW1zZWx2ZXMgZnJvbSBiZWluZyBjb3BpZWQgaW50byB0aGUgemlwLlxuICAgIC8vIC0gZm9sbG93U3ltYm9saWNMaW5rczogVGhpcyB3aWxsIGZvbGxvdyBzeW1saW5rcyBhbmQgY29weSB0aGUgZmlsZXMgd2l0aGluLlxuICAgIGNvbnN0IGdsb2JPcHRpb25zOiBPcHRpb25zID0ge1xuICAgICAgZG90OiB0cnVlLFxuICAgICAgb25seUZpbGVzOiB0cnVlLFxuICAgICAgZm9sbG93U3ltYm9saWNMaW5rczogdHJ1ZSxcbiAgICAgIGN3ZDogZGlyZWN0b3J5LFxuICAgIH07XG4gICAgY29uc3QgZmlsZXMgPSBnbG9iU3luYygnKionLCBnbG9iT3B0aW9ucyk7IC8vIFRoZSBvdXRwdXQgaGVyZSBpcyBhbHJlYWR5IHNvcnRlZFxuXG4gICAgY29uc3Qgb3V0cHV0ID0gY3JlYXRlV3JpdGVTdHJlYW0ob3V0cHV0RmlsZSk7XG5cbiAgICBjb25zdCBhcmNoaXZlID0gYXJjaGl2ZXIoJ3ppcCcpO1xuICAgIGFyY2hpdmUub24oJ3dhcm5pbmcnLCBmYWlsKTtcbiAgICBhcmNoaXZlLm9uKCdlcnJvcicsIGZhaWwpO1xuXG4gICAgLy8gYXJjaGl2ZSBoYXMgYmVlbiBmaW5hbGl6ZWQgYW5kIHRoZSBvdXRwdXQgZmlsZSBkZXNjcmlwdG9yIGhhcyBjbG9zZWQsIHJlc29sdmUgcHJvbWlzZVxuICAgIC8vIHRoaXMgaGFzIHRvIGJlIGRvbmUgYmVmb3JlIGNhbGxpbmcgYGZpbmFsaXplYCBzaW5jZSB0aGUgZXZlbnRzIG1heSBmaXJlIGltbWVkaWF0ZWx5IGFmdGVyLlxuICAgIC8vIHNlZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9hcmNoaXZlclxuICAgIG91dHB1dC5vbmNlKCdjbG9zZScsIG9rKTtcblxuICAgIGFyY2hpdmUucGlwZShvdXRwdXQpO1xuXG4gICAgLy8gQXBwZW5kIGZpbGVzIHNlcmlhbGx5IHRvIGVuc3VyZSBmaWxlIG9yZGVyXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZShkaXJlY3RvcnksIGZpbGUpO1xuICAgICAgLy8gRXhhY3RseSAyIHByb21pc2VzXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIGNvbnN0IFtkYXRhLCBzdGF0XSA9IGF3YWl0IFByb21pc2UuYWxsKFtmcy5yZWFkRmlsZShmdWxsUGF0aCksIGZzLnN0YXQoZnVsbFBhdGgpXSk7XG4gICAgICBhcmNoaXZlLmFwcGVuZChkYXRhLCB7XG4gICAgICAgIG5hbWU6IGZpbGUsXG4gICAgICAgIG1vZGU6IHN0YXQubW9kZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGF3YWl0IGFyY2hpdmUuZmluYWxpemUoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSB0YXJnZXQgbG9jYXRpb24sIHRha2luZyBpbnRvIGFjY291bnQ6XG4gKlxuICogLSBUaGF0IHdlIG1heSBzZWUgRVBFUk0gb24gV2luZG93cyB3aGlsZSBhbiBBbnRpdmlydXMgc2Nhbm5lciBzdGlsbCBoYXMgdGhlXG4gKiAgIGZpbGUgb3Blbiwgc28gcmV0cnkgYSBjb3VwbGUgb2YgdGltZXMuXG4gKiAtIFRoaXMgc2FtZSBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGluIHBhcmFsbGVsIGFuZCBiZSBpbnRlcnJ1cHRlZCBhdCBhbnkgcG9pbnQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1vdmVJbnRvUGxhY2Uoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKSB7XG4gIGxldCBkZWxheSA9IDEwMDtcbiAgbGV0IGF0dGVtcHRzID0gNTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gJ3JlbmFtZScgaXMgZ3VhcmFudGVlZCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgdGFyZ2V0LCBhcyBsb25nIGFzIGl0IGlzIGEgZmlsZSAobm90IGEgZGlyZWN0b3J5KVxuICAgICAgYXdhaXQgZnMucmVuYW1lKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLmNvZGUgIT09ICdFUEVSTScgfHwgYXR0ZW1wdHMtLSA8PSAwKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBlcnJvcihmb3JtYXRFcnJvck1lc3NhZ2UoZSkpO1xuICAgICAgYXdhaXQgc2xlZXAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZGVsYXkpKTtcbiAgICAgIGRlbGF5ICo9IDI7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKG9rID0+IHNldFRpbWVvdXQob2ssIG1zKSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVN0cmluZygpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flatMap = flatMap;\nexports.flatten = flatten;\nexports.partition = partition;\nexports.indexBy = indexBy;\n/**\n * Map a function over an array and concatenate the results\n */\nfunction flatMap(xs, fn) {\n return flatten(xs.map(fn));\n}\n/**\n * Flatten a list of lists into a list of elements\n */\nfunction flatten(xs) {\n return Array.prototype.concat.apply([], xs);\n}\n/**\n * Partition a collection by removing and returning all elements that match a predicate\n *\n * Note: the input collection is modified in-place!\n */\nfunction partition(collection, pred) {\n const ret = [];\n let i = 0;\n while (i < collection.length) {\n if (pred(collection[i])) {\n ret.push(collection.splice(i, 1)[0]);\n }\n else {\n i++;\n }\n }\n return ret;\n}\nasync function indexBy(xs, fn) {\n const ret = new Map();\n for (const x of xs) {\n const key = await fn(x);\n const group = ret.get(key);\n if (group) {\n group.push(x);\n }\n else {\n ret.set(key, [x]);\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXJyYXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsMEJBRUM7QUFLRCwwQkFFQztBQU9ELDhCQVdDO0FBRUQsMEJBWUM7QUE1Q0Q7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQU8sRUFBTyxFQUFFLEVBQThCO0lBQ25FLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQUksRUFBUztJQUNsQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixTQUFTLENBQUksVUFBZSxFQUFFLElBQXVCO0lBQ25FLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRU0sS0FBSyxVQUFVLE9BQU8sQ0FBTyxFQUFPLEVBQUUsRUFBd0I7SUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUM5QixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDTixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hcCBhIGZ1bmN0aW9uIG92ZXIgYW4gYXJyYXkgYW5kIGNvbmNhdGVuYXRlIHRoZSByZXN1bHRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0TWFwPFQsIFU+KHhzOiBUW10sIGZuOiAoKHg6IFQsIGk6IG51bWJlcikgPT4gVVtdKSk6IFVbXSB7XG4gIHJldHVybiBmbGF0dGVuKHhzLm1hcChmbikpO1xufVxuXG4vKipcbiAqIEZsYXR0ZW4gYSBsaXN0IG9mIGxpc3RzIGludG8gYSBsaXN0IG9mIGVsZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuPFQ+KHhzOiBUW11bXSk6IFRbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCB4cyk7XG59XG5cbi8qKlxuICogUGFydGl0aW9uIGEgY29sbGVjdGlvbiBieSByZW1vdmluZyBhbmQgcmV0dXJuaW5nIGFsbCBlbGVtZW50cyB0aGF0IG1hdGNoIGEgcHJlZGljYXRlXG4gKlxuICogTm90ZTogdGhlIGlucHV0IGNvbGxlY3Rpb24gaXMgbW9kaWZpZWQgaW4tcGxhY2UhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJ0aXRpb248VD4oY29sbGVjdGlvbjogVFtdLCBwcmVkOiAoeDogVCkgPT4gYm9vbGVhbik6IFRbXSB7XG4gIGNvbnN0IHJldDogVFtdID0gW107XG4gIGxldCBpID0gMDtcbiAgd2hpbGUgKGkgPCBjb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgIGlmIChwcmVkKGNvbGxlY3Rpb25baV0pKSB7XG4gICAgICByZXQucHVzaChjb2xsZWN0aW9uLnNwbGljZShpLCAxKVswXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGkrKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluZGV4Qnk8QSwgQj4oeHM6IEFbXSwgZm46IChhOiBBKSA9PiBQcm9taXNlPEI+KTogUHJvbWlzZTxNYXA8QiwgQVtdPj4ge1xuICBjb25zdCByZXQgPSBuZXcgTWFwPEIsIEFbXT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgZm4oeCk7XG4gICAgY29uc3QgZ3JvdXAgPSByZXQuZ2V0KGtleSk7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICBncm91cC5wdXNoKHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQuc2V0KGtleSwgW3hdKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numberFromBool = numberFromBool;\n/**\n * Converts a boolean into a number.\n *\n * @param bool - input boolean\n * @returns 1 if bool is true, and 0 if false\n */\nfunction numberFromBool(bool) {\n return +bool;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSx3Q0FFQztBQVJEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLElBQWE7SUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlcnRzIGEgYm9vbGVhbiBpbnRvIGEgbnVtYmVyLlxuICpcbiAqIEBwYXJhbSBib29sIC0gaW5wdXQgYm9vbGVhblxuICogQHJldHVybnMgMSBpZiBib29sIGlzIHRydWUsIGFuZCAwIGlmIGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJGcm9tQm9vbChib29sOiBib29sZWFuKTogbnVtYmVyIHtcbiAgcmV0dXJuICtib29sO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatBytes = formatBytes;\n/**\n * Format bytes as a human readable string\n *\n * @param bytes - Number of bytes to format\n * @param decimals - Number of decimal places to show (default 2)\n * @returns Formatted string with appropriate unit suffix\n */\nfunction formatBytes(bytes, decimals = 2) {\n decimals = decimals < 0 ? 0 : decimals;\n if (bytes === 0) {\n return '0 Bytes';\n }\n const k = 1024;\n const sizes = ['Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${sizes[i]}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJieXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLGtDQWFDO0FBcEJEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsQ0FBQztJQUM3RCxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFdkMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNmLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVoRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBELE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNqRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtYXQgYnl0ZXMgYXMgYSBodW1hbiByZWFkYWJsZSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gYnl0ZXMgLSBOdW1iZXIgb2YgYnl0ZXMgdG8gZm9ybWF0XG4gKiBAcGFyYW0gZGVjaW1hbHMgLSBOdW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gc2hvdyAoZGVmYXVsdCAyKVxuICogQHJldHVybnMgRm9ybWF0dGVkIHN0cmluZyB3aXRoIGFwcHJvcHJpYXRlIHVuaXQgc3VmZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCeXRlcyhieXRlczogbnVtYmVyLCBkZWNpbWFsczogbnVtYmVyID0gMik6IHN0cmluZyB7XG4gIGRlY2ltYWxzID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuXG4gIGlmIChieXRlcyA9PT0gMCkge1xuICAgIHJldHVybiAnMCBCeXRlcyc7XG4gIH1cblxuICBjb25zdCBrID0gMTAyNDtcbiAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tpQicsICdNaUInLCAnR2lCJywgJ1RpQicsICdQaUInLCAnRWlCJywgJ1ppQicsICdZaUInXTtcblxuICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG5cbiAgcmV0dXJuIGAke3BhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZGVjaW1hbHMpKX0gJHtzaXplc1tpXX1gO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSnsTopicArn = validateSnsTopicArn;\nexports.isErrorEvent = isErrorEvent;\nexports.isCancellationEvent = isCancellationEvent;\nexports.isRegularResourceEvent = isRegularResourceEvent;\nexports.isRootStackEvent = isRootStackEvent;\nexports.maxResourceTypeLength = maxResourceTypeLength;\n/**\n * Validate SNS topic arn\n */\nfunction validateSnsTopicArn(arn) {\n return /^arn:aws:sns:[a-z0-9\\-]+:[0-9]+:[a-z0-9\\-\\_]+$/i.test(arn);\n}\n/**\n * Does a Stack Event have an error message based on the status.\n */\nfunction isErrorEvent(event) {\n const status = event.ResourceStatus ?? '';\n return status.endsWith('_FAILED') || status === 'ROLLBACK_IN_PROGRESS' || status === 'UPDATE_ROLLBACK_IN_PROGRESS';\n}\n/**\n * Is this a failure caused by CloudFormation cancelling the deployment?\n *\n * This happens because some other resource failed and CloudFormation decided to stop waiting for this one.\n *\n * Never returns true for the stack event itself, only for resource events.\n */\nfunction isCancellationEvent(event) {\n return (event.ResourceStatusReason ?? '').indexOf('cancelled') > -1;\n}\n/**\n * Returns whether this event is about a regular resource (not the root stack and not a nested stack resource)\n */\nfunction isRegularResourceEvent(event) {\n return event.ResourceType !== 'AWS::CloudFormation::Stack';\n}\n/**\n * Returns whether this event is about the root stack itself.\n */\nfunction isRootStackEvent(event) {\n return event.ResourceType === 'AWS::CloudFormation::Stack' && event.PhysicalResourceId === event.StackId;\n}\n/**\n * Calculate the maximal length of all resource types for a given template.\n *\n * @param template - the stack template to analyze\n * @param startWidth - the initial width to start with. Defaults to the length of 'AWS::CloudFormation::Stack'.\n * @returns the determined width\n */\nfunction maxResourceTypeLength(template, startWidth = 'AWS::CloudFormation::Stack'.length) {\n const resources = (template && template.Resources) || {};\n let maxWidth = startWidth;\n for (const id of Object.keys(resources)) {\n const type = resources[id].Type || '';\n if (type.length > maxWidth) {\n maxWidth = type.length;\n }\n }\n return maxWidth;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGtEQUVDO0FBS0Qsb0NBR0M7QUFTRCxrREFFQztBQUtELHdEQUVDO0FBS0QsNENBRUM7QUFTRCxzREFVQztBQXpERDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLEdBQVc7SUFDN0MsT0FBTyxpREFBaUQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQWlCO0lBQzVDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO0lBQzFDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLEtBQUssc0JBQXNCLElBQUksTUFBTSxLQUFLLDZCQUE2QixDQUFDO0FBQ3JILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxLQUFpQjtJQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxLQUFpQjtJQUN0RCxPQUFPLEtBQUssQ0FBQyxZQUFZLEtBQUssNEJBQTRCLENBQUM7QUFDN0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBaUI7SUFDaEQsT0FBTyxLQUFLLENBQUMsWUFBWSxLQUFLLDRCQUE0QixJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQzNHLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxRQUFhLEVBQUUsVUFBVSxHQUFHLDRCQUE0QixDQUFDLE1BQU07SUFDbkcsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6RCxJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDMUIsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQzNCLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tFdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogVmFsaWRhdGUgU05TIHRvcGljIGFyblxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTbnNUb3BpY0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL15hcm46YXdzOnNuczpbYS16MC05XFwtXSs6WzAtOV0rOlthLXowLTlcXC1cXF9dKyQvaS50ZXN0KGFybik7XG59XG5cbi8qKlxuICogRG9lcyBhIFN0YWNrIEV2ZW50IGhhdmUgYW4gZXJyb3IgbWVzc2FnZSBiYXNlZCBvbiB0aGUgc3RhdHVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFcnJvckV2ZW50KGV2ZW50OiBTdGFja0V2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHN0YXR1cyA9IGV2ZW50LlJlc291cmNlU3RhdHVzID8/ICcnO1xuICByZXR1cm4gc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykgfHwgc3RhdHVzID09PSAnUk9MTEJBQ0tfSU5fUFJPR1JFU1MnIHx8IHN0YXR1cyA9PT0gJ1VQREFURV9ST0xMQkFDS19JTl9QUk9HUkVTUyc7XG59XG5cbi8qKlxuICogSXMgdGhpcyBhIGZhaWx1cmUgY2F1c2VkIGJ5IENsb3VkRm9ybWF0aW9uIGNhbmNlbGxpbmcgdGhlIGRlcGxveW1lbnQ/XG4gKlxuICogVGhpcyBoYXBwZW5zIGJlY2F1c2Ugc29tZSBvdGhlciByZXNvdXJjZSBmYWlsZWQgYW5kIENsb3VkRm9ybWF0aW9uIGRlY2lkZWQgdG8gc3RvcCB3YWl0aW5nIGZvciB0aGlzIG9uZS5cbiAqXG4gKiBOZXZlciByZXR1cm5zIHRydWUgZm9yIHRoZSBzdGFjayBldmVudCBpdHNlbGYsIG9ubHkgZm9yIHJlc291cmNlIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FuY2VsbGF0aW9uRXZlbnQoZXZlbnQ6IFN0YWNrRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIChldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/PyAnJykuaW5kZXhPZignY2FuY2VsbGVkJykgPiAtMTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBldmVudCBpcyBhYm91dCBhIHJlZ3VsYXIgcmVzb3VyY2UgKG5vdCB0aGUgcm9vdCBzdGFjayBhbmQgbm90IGEgbmVzdGVkIHN0YWNrIHJlc291cmNlKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWd1bGFyUmVzb3VyY2VFdmVudChldmVudDogU3RhY2tFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQuUmVzb3VyY2VUeXBlICE9PSAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGlzIGV2ZW50IGlzIGFib3V0IHRoZSByb290IHN0YWNrIGl0c2VsZi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUm9vdFN0YWNrRXZlbnQoZXZlbnQ6IFN0YWNrRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LlJlc291cmNlVHlwZSA9PT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyAmJiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPT09IGV2ZW50LlN0YWNrSWQ7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbGwgcmVzb3VyY2UgdHlwZXMgZm9yIGEgZ2l2ZW4gdGVtcGxhdGUuXG4gKlxuICogQHBhcmFtIHRlbXBsYXRlIC0gdGhlIHN0YWNrIHRlbXBsYXRlIHRvIGFuYWx5emVcbiAqIEBwYXJhbSBzdGFydFdpZHRoIC0gdGhlIGluaXRpYWwgd2lkdGggdG8gc3RhcnQgd2l0aC4gRGVmYXVsdHMgdG8gdGhlIGxlbmd0aCBvZiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snLlxuICogQHJldHVybnMgdGhlIGRldGVybWluZWQgd2lkdGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1heFJlc291cmNlVHlwZUxlbmd0aCh0ZW1wbGF0ZTogYW55LCBzdGFydFdpZHRoID0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJy5sZW5ndGgpOiBudW1iZXIge1xuICBjb25zdCByZXNvdXJjZXMgPSAodGVtcGxhdGUgJiYgdGVtcGxhdGUuUmVzb3VyY2VzKSB8fCB7fTtcbiAgbGV0IG1heFdpZHRoID0gc3RhcnRXaWR0aDtcbiAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhyZXNvdXJjZXMpKSB7XG4gICAgY29uc3QgdHlwZSA9IHJlc291cmNlc1tpZF0uVHlwZSB8fCAnJztcbiAgICBpZiAodHlwZS5sZW5ndGggPiBtYXhXaWR0aCkge1xuICAgICAgbWF4V2lkdGggPSB0eXBlLmxlbmd0aDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1heFdpZHRoO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pLimit = void 0;\n/**\n * Re-export p-limit for concurrency control\n */\n// Must use a require() otherwise esbuild complains about calling a namespace\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst pLimit = require(\"p-limit\");\nexports.pLimit = pLimit;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3VycmVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25jdXJyZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILDZFQUE2RTtBQUM3RSxpRUFBaUU7QUFDakUsa0NBQW1DO0FBQzFCLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZS1leHBvcnQgcC1saW1pdCBmb3IgY29uY3VycmVuY3kgY29udHJvbFxuICovXG4vLyBNdXN0IHVzZSBhIHJlcXVpcmUoKSBvdGhlcndpc2UgZXNidWlsZCBjb21wbGFpbnMgYWJvdXQgY2FsbGluZyBhIG5hbWVzcGFjZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmltcG9ydCBwTGltaXQgPSByZXF1aXJlKCdwLWxpbWl0Jyk7XG5leHBvcnQgeyBwTGltaXQgfTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentHash = contentHash;\nexports.contentHashAny = contentHashAny;\nconst crypto = require(\"crypto\");\nfunction contentHash(data) {\n return crypto.createHash('sha256').update(data).digest('hex');\n}\n/**\n * A stably sorted hash of an arbitrary JS object\n */\nfunction contentHashAny(value) {\n const ret = crypto.createHash('sha256');\n recurse(value);\n return ret.digest('hex');\n function recurse(x) {\n if (typeof x === 'string') {\n ret.update(x);\n return;\n }\n if (Array.isArray(x)) {\n ret.update('[');\n for (const e of x) {\n recurse(e);\n ret.update('||');\n }\n ret.update(']');\n return;\n }\n if (x && typeof x === 'object') {\n ret.update('{');\n for (const key of Object.keys(x).sort()) {\n ret.update(key);\n ret.update(':');\n recurse(x[key]);\n }\n ret.update('}');\n return;\n }\n ret.update(`${x}${typeof x}`); // typeof to make sure hash('123') !== hash(123)\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1oYXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udGVudC1oYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsa0NBRUM7QUFLRCx3Q0FrQ0M7QUEzQ0QsaUNBQWlDO0FBRWpDLFNBQWdCLFdBQVcsQ0FBQyxJQUFnQztJQUMxRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYztJQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV6QixTQUFTLE9BQU8sQ0FBQyxDQUFVO1FBQ3pCLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBRSxDQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0RBQWdEO0lBQ2pGLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50SGFzaChkYXRhOiBzdHJpbmcgfCBCdWZmZXIgfCBEYXRhVmlldykge1xuICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShkYXRhKS5kaWdlc3QoJ2hleCcpO1xufVxuXG4vKipcbiAqIEEgc3RhYmx5IHNvcnRlZCBoYXNoIG9mIGFuIGFyYml0cmFyeSBKUyBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRlbnRIYXNoQW55KHZhbHVlOiB1bmtub3duKSB7XG4gIGNvbnN0IHJldCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgcmVjdXJzZSh2YWx1ZSk7XG4gIHJldHVybiByZXQuZGlnZXN0KCdoZXgnKTtcblxuICBmdW5jdGlvbiByZWN1cnNlKHg6IHVua25vd24pIHtcbiAgICBpZiAodHlwZW9mIHggPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXQudXBkYXRlKHgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgICByZXQudXBkYXRlKCdbJyk7XG4gICAgICBmb3IgKGNvbnN0IGUgb2YgeCkge1xuICAgICAgICByZWN1cnNlKGUpO1xuICAgICAgICByZXQudXBkYXRlKCd8fCcpO1xuICAgICAgfVxuICAgICAgcmV0LnVwZGF0ZSgnXScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0LnVwZGF0ZSgneycpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoeCkuc29ydCgpKSB7XG4gICAgICAgIHJldC51cGRhdGUoa2V5KTtcbiAgICAgICAgcmV0LnVwZGF0ZSgnOicpO1xuICAgICAgICByZWN1cnNlKCh4IGFzIGFueSlba2V5XSk7XG4gICAgICB9XG4gICAgICByZXQudXBkYXRlKCd9Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0LnVwZGF0ZShgJHt4fSR7dHlwZW9mIHh9YCk7IC8vIHR5cGVvZiB0byBtYWtlIHN1cmUgaGFzaCgnMTIzJykgIT09IGhhc2goMTIzKVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cdkHomeDir = cdkHomeDir;\nexports.cdkCacheDir = cdkCacheDir;\nexports.bundledPackageRootDir = bundledPackageRootDir;\nexports.listFiles = listFiles;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst fsExtra = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Return a location that will be used as the CDK home directory.\n * Currently the only thing that is placed here is the cache.\n *\n * First try to use the users home directory (i.e. /home/someuser/),\n * but if that directory does not exist for some reason create a tmp directory.\n *\n * Typically it wouldn't make sense to create a one time use tmp directory for\n * the purpose of creating a cache, but since this only applies to users that do\n * not have a home directory (some CI systems?) this should be fine.\n */\nfunction cdkHomeDir() {\n const tmpDir = fs.realpathSync(os.tmpdir());\n let home;\n try {\n let userInfoHome = os.userInfo().homedir;\n // Node returns this if the user doesn't have a home directory\n /* c8 ignore start */ // will not happen in normal setups\n if (userInfoHome == '/var/empty') {\n userInfoHome = undefined;\n }\n /* c8 ignore stop */\n home = path.join((userInfoHome ?? os.homedir()).trim(), '.cdk');\n }\n catch {\n }\n return process.env.CDK_HOME\n ? path.resolve(process.env.CDK_HOME)\n : home || fs.mkdtempSync(path.join(tmpDir, '.cdk')).trim();\n}\nfunction cdkCacheDir() {\n return path.join(cdkHomeDir(), 'cache');\n}\nfunction bundledPackageRootDir(start, fail) {\n function _rootDir(dirname) {\n const manifestPath = path.join(dirname, 'package.json');\n if (fs.existsSync(manifestPath)) {\n return dirname;\n }\n if (path.dirname(dirname) === dirname) {\n if (fail ?? true) {\n throw new toolkit_error_1.ToolkitError('PackageManifestNotFound', 'Unable to find package manifest');\n }\n return undefined;\n }\n return _rootDir(path.dirname(dirname));\n }\n return _rootDir(start);\n}\n/**\n * Recursively lists all files in a directory up to the specified depth.\n *\n * @param dirName - The directory path to list files from\n * @param depth - Maximum depth to traverse (1 = current directory only, 2 = one level deep, etc.)\n * @returns Array of file names (not full paths) found within the depth limit\n */\nasync function listFiles(dirName, depth, excludeDirs) {\n const ret = await fsExtra.readdir(dirName, { encoding: 'utf-8', withFileTypes: true });\n // unlikely to be unbound, it's a file system\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return (await Promise.all(ret.map(async (f) => {\n if (f.isDirectory()) {\n if (depth <= 1 || excludeDirs?.includes(f.name)) {\n return [];\n }\n return listFiles(path.join(dirName, f.name), depth - 1, excludeDirs);\n }\n else {\n return [f.name];\n }\n }))).flatMap(xs => xs);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXJlY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxnQ0FpQkM7QUFFRCxrQ0FFQztBQVdELHNEQWdCQztBQVNELDhCQWVDO0FBekZELHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG9DQUFvQztBQUNwQyw0REFBd0Q7QUFFeEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLFVBQVU7SUFDeEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1QyxJQUFJLElBQUksQ0FBQztJQUNULElBQUksQ0FBQztRQUNILElBQUksWUFBWSxHQUF1QixFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQzdELDhEQUE4RDtRQUM5RCxxQkFBcUIsQ0FBQyxtQ0FBbUM7UUFDekQsSUFBSSxZQUFZLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO1FBQ0Qsb0JBQW9CO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFBQyxNQUFNLENBQUM7SUFDVCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7UUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDcEMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFXRCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFhLEVBQUUsSUFBYztJQUNqRSxTQUFTLFFBQVEsQ0FBQyxPQUFlO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEMsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHlCQUF5QixFQUFFLGlDQUFpQyxDQUFDLENBQUM7WUFDdkYsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsV0FBc0I7SUFDcEYsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdkYsNkNBQTZDO0lBQzdDLHdFQUF3RTtJQUN4RSxPQUFPLENBQUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzVDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDcEIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnNFeHRyYSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFJldHVybiBhIGxvY2F0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBDREsgaG9tZSBkaXJlY3RvcnkuXG4gKiBDdXJyZW50bHkgdGhlIG9ubHkgdGhpbmcgdGhhdCBpcyBwbGFjZWQgaGVyZSBpcyB0aGUgY2FjaGUuXG4gKlxuICogRmlyc3QgdHJ5IHRvIHVzZSB0aGUgdXNlcnMgaG9tZSBkaXJlY3RvcnkgKGkuZS4gL2hvbWUvc29tZXVzZXIvKSxcbiAqIGJ1dCBpZiB0aGF0IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCBmb3Igc29tZSByZWFzb24gY3JlYXRlIGEgdG1wIGRpcmVjdG9yeS5cbiAqXG4gKiBUeXBpY2FsbHkgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBvbmUgdGltZSB1c2UgdG1wIGRpcmVjdG9yeSBmb3JcbiAqIHRoZSBwdXJwb3NlIG9mIGNyZWF0aW5nIGEgY2FjaGUsIGJ1dCBzaW5jZSB0aGlzIG9ubHkgYXBwbGllcyB0byB1c2VycyB0aGF0IGRvXG4gKiBub3QgaGF2ZSBhIGhvbWUgZGlyZWN0b3J5IChzb21lIENJIHN5c3RlbXM/KSB0aGlzIHNob3VsZCBiZSBmaW5lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2RrSG9tZURpcigpIHtcbiAgY29uc3QgdG1wRGlyID0gZnMucmVhbHBhdGhTeW5jKG9zLnRtcGRpcigpKTtcbiAgbGV0IGhvbWU7XG4gIHRyeSB7XG4gICAgbGV0IHVzZXJJbmZvSG9tZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gb3MudXNlckluZm8oKS5ob21lZGlyO1xuICAgIC8vIE5vZGUgcmV0dXJucyB0aGlzIGlmIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZSBhIGhvbWUgZGlyZWN0b3J5XG4gICAgLyogYzggaWdub3JlIHN0YXJ0ICovIC8vIHdpbGwgbm90IGhhcHBlbiBpbiBub3JtYWwgc2V0dXBzXG4gICAgaWYgKHVzZXJJbmZvSG9tZSA9PSAnL3Zhci9lbXB0eScpIHtcbiAgICAgIHVzZXJJbmZvSG9tZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgICBob21lID0gcGF0aC5qb2luKCh1c2VySW5mb0hvbWUgPz8gb3MuaG9tZWRpcigpKS50cmltKCksICcuY2RrJyk7XG4gIH0gY2F0Y2gge1xuICB9XG4gIHJldHVybiBwcm9jZXNzLmVudi5DREtfSE9NRVxuICAgID8gcGF0aC5yZXNvbHZlKHByb2Nlc3MuZW52LkNES19IT01FKVxuICAgIDogaG9tZSB8fCBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4odG1wRGlyLCAnLmNkaycpKS50cmltKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjZGtDYWNoZURpcigpIHtcbiAgcmV0dXJuIHBhdGguam9pbihjZGtIb21lRGlyKCksICdjYWNoZScpO1xufVxuXG4vKipcbiAqIEZyb20gdGhlIHN0YXJ0IGxvY2F0aW9uLCBmaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0aGUgYnVuZGxlZCBwYWNrYWdlJ3MgcGFja2FnZS5qc29uXG4gKlxuICogWW91IG11c3QgYXNzdW1lIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGJ1bmRsZWQgYW5kIHRoZSBwYWNrYWdlIHJvb3QgZGlyXG4gKiBpcyBub3QgZ29pbmcgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIHBhY2thZ2UgdGhlIGNhbGxlciBjdXJyZW50bHkgbGl2ZXMgaW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidW5kbGVkUGFja2FnZVJvb3REaXIoc3RhcnQ6IHN0cmluZyk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBidW5kbGVkUGFja2FnZVJvb3REaXIoc3RhcnQ6IHN0cmluZywgZmFpbDogdHJ1ZSk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBidW5kbGVkUGFja2FnZVJvb3REaXIoc3RhcnQ6IHN0cmluZywgZmFpbDogZmFsc2UpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gYnVuZGxlZFBhY2thZ2VSb290RGlyKHN0YXJ0OiBzdHJpbmcsIGZhaWw/OiBib29sZWFuKSB7XG4gIGZ1bmN0aW9uIF9yb290RGlyKGRpcm5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKGRpcm5hbWUsICdwYWNrYWdlLmpzb24nKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgICByZXR1cm4gZGlybmFtZTtcbiAgICB9XG4gICAgaWYgKHBhdGguZGlybmFtZShkaXJuYW1lKSA9PT0gZGlybmFtZSkge1xuICAgICAgaWYgKGZhaWwgPz8gdHJ1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdQYWNrYWdlTWFuaWZlc3ROb3RGb3VuZCcsICdVbmFibGUgdG8gZmluZCBwYWNrYWdlIG1hbmlmZXN0Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gX3Jvb3REaXIocGF0aC5kaXJuYW1lKGRpcm5hbWUpKTtcbiAgfVxuXG4gIHJldHVybiBfcm9vdERpcihzdGFydCk7XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgbGlzdHMgYWxsIGZpbGVzIGluIGEgZGlyZWN0b3J5IHVwIHRvIHRoZSBzcGVjaWZpZWQgZGVwdGguXG4gKlxuICogQHBhcmFtIGRpck5hbWUgLSBUaGUgZGlyZWN0b3J5IHBhdGggdG8gbGlzdCBmaWxlcyBmcm9tXG4gKiBAcGFyYW0gZGVwdGggLSBNYXhpbXVtIGRlcHRoIHRvIHRyYXZlcnNlICgxID0gY3VycmVudCBkaXJlY3Rvcnkgb25seSwgMiA9IG9uZSBsZXZlbCBkZWVwLCBldGMuKVxuICogQHJldHVybnMgQXJyYXkgb2YgZmlsZSBuYW1lcyAobm90IGZ1bGwgcGF0aHMpIGZvdW5kIHdpdGhpbiB0aGUgZGVwdGggbGltaXRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RGaWxlcyhkaXJOYW1lOiBzdHJpbmcsIGRlcHRoOiBudW1iZXIsIGV4Y2x1ZGVEaXJzPzogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IHJldCA9IGF3YWl0IGZzRXh0cmEucmVhZGRpcihkaXJOYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnLCB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuXG4gIC8vIHVubGlrZWx5IHRvIGJlIHVuYm91bmQsIGl0J3MgYSBmaWxlIHN5c3RlbVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgcmV0dXJuIChhd2FpdCBQcm9taXNlLmFsbChyZXQubWFwKGFzeW5jIChmKSA9PiB7XG4gICAgaWYgKGYuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgaWYgKGRlcHRoIDw9IDEgfHwgZXhjbHVkZURpcnM/LmluY2x1ZGVzKGYubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpc3RGaWxlcyhwYXRoLmpvaW4oZGlyTmFtZSwgZi5uYW1lKSwgZGVwdGggLSAxLCBleGNsdWRlRGlycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbZi5uYW1lXTtcbiAgICB9XG4gIH0pKSkuZmxhdE1hcCh4cyA9PiB4cyk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatErrorMessage = formatErrorMessage;\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Takes in an error and returns a correctly formatted string of its error message.\n * If it is an AggregateError, it will return a string with all the inner errors\n * formatted and separated by a newline.\n *\n * @param error - The error to format\n * @returns A string with the error message(s) of the error\n */\nfunction formatErrorMessage(error) {\n if (error && Array.isArray(error.errors)) {\n const innerMessages = error.errors\n .map((innerError) => (innerError?.message || innerError?.toString()))\n .join('\\n');\n return `AggregateError: ${innerMessages}`;\n }\n if (toolkit_error_1.ToolkitError.isToolkitError(error) && error.cause) {\n return `${error.message}\\n${formatErrorMessage(error.cause)}`;\n }\n // Fallback for regular Error or other types\n return error?.message || error?.toString() || 'Unknown error';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBVUEsZ0RBY0M7QUF4QkQsNERBQXdEO0FBRXhEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFVO0lBQzNDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDekMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU07YUFDL0IsR0FBRyxDQUFDLENBQUMsVUFBaUQsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxJQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzNHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNkLE9BQU8sbUJBQW1CLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLDRCQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0RCxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sS0FBSyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLE9BQU8sS0FBSyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFRha2VzIGluIGFuIGVycm9yIGFuZCByZXR1cm5zIGEgY29ycmVjdGx5IGZvcm1hdHRlZCBzdHJpbmcgb2YgaXRzIGVycm9yIG1lc3NhZ2UuXG4gKiBJZiBpdCBpcyBhbiBBZ2dyZWdhdGVFcnJvciwgaXQgd2lsbCByZXR1cm4gYSBzdHJpbmcgd2l0aCBhbGwgdGhlIGlubmVyIGVycm9yc1xuICogZm9ybWF0dGVkIGFuZCBzZXBhcmF0ZWQgYnkgYSBuZXdsaW5lLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBmb3JtYXRcbiAqIEByZXR1cm5zIEEgc3RyaW5nIHdpdGggdGhlIGVycm9yIG1lc3NhZ2Uocykgb2YgdGhlIGVycm9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFcnJvck1lc3NhZ2UoZXJyb3I6IGFueSk6IHN0cmluZyB7XG4gIGlmIChlcnJvciAmJiBBcnJheS5pc0FycmF5KGVycm9yLmVycm9ycykpIHtcbiAgICBjb25zdCBpbm5lck1lc3NhZ2VzID0gZXJyb3IuZXJyb3JzXG4gICAgICAubWFwKChpbm5lckVycm9yOiB7IG1lc3NhZ2U6IGFueTsgdG9TdHJpbmc6ICgpID0+IGFueSB9KSA9PiAoaW5uZXJFcnJvcj8ubWVzc2FnZSB8fCBpbm5lckVycm9yPy50b1N0cmluZygpKSlcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gYEFnZ3JlZ2F0ZUVycm9yOiAke2lubmVyTWVzc2FnZXN9YDtcbiAgfVxuXG4gIGlmIChUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZXJyb3IpICYmIGVycm9yLmNhdXNlKSB7XG4gICAgcmV0dXJuIGAke2Vycm9yLm1lc3NhZ2V9XFxuJHtmb3JtYXRFcnJvck1lc3NhZ2UoZXJyb3IuY2F1c2UpfWA7XG4gIH1cblxuICAvLyBGYWxsYmFjayBmb3IgcmVndWxhciBFcnJvciBvciBvdGhlciB0eXBlc1xuICByZXR1cm4gZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyb3I/LnRvU3RyaW5nKCkgfHwgJ1Vua25vd24gZXJyb3InO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createIgnoreMatcher = createIgnoreMatcher;\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst picomatch = require(\"picomatch\");\n/**\n * Normalizes a pattern to ensure it matches files within directories.\n * If a pattern doesn't contain glob characters, it's treated as a directory\n * and `/**` is appended to match all files within it.\n *\n * @param pattern - The pattern to normalize\n * @returns The normalized pattern\n */\nfunction normalizePattern(pattern) {\n // If pattern already contains glob characters, use as-is\n if (pattern.includes('*') || pattern.includes('?') || pattern.includes('[')) {\n return pattern;\n }\n // Otherwise, treat as a directory and match all files within\n // Remove trailing slash if present, then append /**\n const normalized = pattern.replace(/\\/+$/, '');\n return `${normalized}/**`;\n}\n/**\n * Creates a function that returns true if a file should be ignored.\n * A file is ignored if:\n * - It matches any exclude pattern, OR\n * - It does NOT match any include pattern\n *\n * This replicates the behavior of chokidar v3's glob pattern support.\n *\n * @param options - The include and exclude patterns\n * @returns A function that takes a file path and returns true if it should be ignored\n */\nfunction createIgnoreMatcher(options) {\n const includePatterns = options.include && options.include.length > 0\n ? options.include.map(normalizePattern)\n : ['**'];\n const excludePatterns = (options.exclude ?? []).map(normalizePattern);\n const rootDir = options.rootDir ? options.rootDir.replace(/\\\\/g, '/').replace(/\\/+$/, '') : undefined;\n // Compile patterns into matchers for better performance\n const picomatchOptions = {\n dot: true, // Match dotfiles when pattern explicitly includes them\n };\n const includeMatcher = picomatch(includePatterns, picomatchOptions);\n const excludeMatcher = excludePatterns.length > 0\n ? picomatch(excludePatterns, picomatchOptions)\n : () => false;\n return (filePath) => {\n // Normalize path separators for cross-platform compatibility\n let normalizedPath = filePath.replace(/\\\\/g, '/');\n // If rootDir is provided and the path appears to be absolute, make it relative\n // This is necessary because chokidar v4 passes absolute paths to the\n // ignored callback even when a cwd is specified\n if (rootDir) {\n if (normalizedPath.startsWith(rootDir + '/')) {\n normalizedPath = normalizedPath.slice(rootDir.length + 1);\n }\n else if (normalizedPath === rootDir) {\n // The root directory itself - don't ignore it\n return false;\n }\n }\n // A file is ignored if:\n // 1. It matches any exclude pattern, OR\n // 2. It does NOT match any include pattern\n if (excludeMatcher(normalizedPath)) {\n return true; // Ignore: matches exclude\n }\n if (!includeMatcher(normalizedPath)) {\n return true; // Ignore: doesn't match include\n }\n return false; // Don't ignore: matches include and doesn't match exclude\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYi1tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2xvYi1tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeURBLGtEQThDQztBQXZHRCxpRUFBaUU7QUFDakUsdUNBQXdDO0FBMEJ4Qzs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFlO0lBQ3ZDLHlEQUF5RDtJQUN6RCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxvREFBb0Q7SUFDcEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsT0FBTyxHQUFHLFVBQVUsS0FBSyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsT0FBMkI7SUFDN0QsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNYLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRXRHLHdEQUF3RDtJQUN4RCxNQUFNLGdCQUFnQixHQUErQjtRQUNuRCxHQUFHLEVBQUUsSUFBSSxFQUFFLHVEQUF1RDtLQUNuRSxDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUMvQyxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQztRQUM5QyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBRWhCLE9BQU8sQ0FBQyxRQUFnQixFQUFXLEVBQUU7UUFDbkMsNkRBQTZEO1FBQzdELElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxELCtFQUErRTtRQUMvRSxxRUFBcUU7UUFDckUsZ0RBQWdEO1FBQ2hELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLGNBQWMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztpQkFBTSxJQUFJLGNBQWMsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsOENBQThDO2dCQUM5QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLHdDQUF3QztRQUN4QywyQ0FBMkM7UUFDM0MsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxDQUFDLDBCQUEwQjtRQUN6QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLENBQUMsZ0NBQWdDO1FBQy9DLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDLDBEQUEwRDtJQUMxRSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmltcG9ydCBwaWNvbWF0Y2ggPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIGdsb2IgbWF0Y2hlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JNYXRjaGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXR0ZXJucyBmb3IgZmlsZXMgdG8gaW5jbHVkZSAoZ2xvYiBwYXR0ZXJucylcbiAgICogQGRlZmF1bHQgWycqKiddIC0gbWF0Y2ggYWxsIGZpbGVzXG4gICAqL1xuICBpbmNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBhdHRlcm5zIGZvciBmaWxlcyB0byBleGNsdWRlIChnbG9iIHBhdHRlcm5zKVxuICAgKi9cbiAgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3RvcnkgZm9yIG1hdGNoaW5nLiBJZiBwcm92aWRlZCwgYWJzb2x1dGUgcGF0aHMgd2lsbCBiZVxuICAgKiBjb252ZXJ0ZWQgdG8gcmVsYXRpdmUgcGF0aHMgYmVmb3JlIG1hdGNoaW5nIGFnYWluc3QgcGF0dGVybnMuXG4gICAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgY2hva2lkYXIgdjQgcGFzc2VzIGFic29sdXRlIHBhdGhzIHRvIHRoZVxuICAgKiBpZ25vcmVkIGNhbGxiYWNrIGV2ZW4gd2hlbiBhIGN3ZCBpcyBzcGVjaWZpZWQuXG4gICAqL1xuICByb290RGlyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXR0ZXJuIHRvIGVuc3VyZSBpdCBtYXRjaGVzIGZpbGVzIHdpdGhpbiBkaXJlY3Rvcmllcy5cbiAqIElmIGEgcGF0dGVybiBkb2Vzbid0IGNvbnRhaW4gZ2xvYiBjaGFyYWN0ZXJzLCBpdCdzIHRyZWF0ZWQgYXMgYSBkaXJlY3RvcnlcbiAqIGFuZCBgLyoqYCBpcyBhcHBlbmRlZCB0byBtYXRjaCBhbGwgZmlsZXMgd2l0aGluIGl0LlxuICpcbiAqIEBwYXJhbSBwYXR0ZXJuIC0gVGhlIHBhdHRlcm4gdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXR0ZXJuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdHRlcm4ocGF0dGVybjogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gSWYgcGF0dGVybiBhbHJlYWR5IGNvbnRhaW5zIGdsb2IgY2hhcmFjdGVycywgdXNlIGFzLWlzXG4gIGlmIChwYXR0ZXJuLmluY2x1ZGVzKCcqJykgfHwgcGF0dGVybi5pbmNsdWRlcygnPycpIHx8IHBhdHRlcm4uaW5jbHVkZXMoJ1snKSkge1xuICAgIHJldHVybiBwYXR0ZXJuO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgdHJlYXQgYXMgYSBkaXJlY3RvcnkgYW5kIG1hdGNoIGFsbCBmaWxlcyB3aXRoaW5cbiAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGlmIHByZXNlbnQsIHRoZW4gYXBwZW5kIC8qKlxuICBjb25zdCBub3JtYWxpemVkID0gcGF0dGVybi5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgcmV0dXJuIGAke25vcm1hbGl6ZWR9LyoqYDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRydWUgaWYgYSBmaWxlIHNob3VsZCBiZSBpZ25vcmVkLlxuICogQSBmaWxlIGlzIGlnbm9yZWQgaWY6XG4gKiAtIEl0IG1hdGNoZXMgYW55IGV4Y2x1ZGUgcGF0dGVybiwgT1JcbiAqIC0gSXQgZG9lcyBOT1QgbWF0Y2ggYW55IGluY2x1ZGUgcGF0dGVyblxuICpcbiAqIFRoaXMgcmVwbGljYXRlcyB0aGUgYmVoYXZpb3Igb2YgY2hva2lkYXIgdjMncyBnbG9iIHBhdHRlcm4gc3VwcG9ydC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBpbmNsdWRlIGFuZCBleGNsdWRlIHBhdHRlcm5zXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBmaWxlIHBhdGggYW5kIHJldHVybnMgdHJ1ZSBpZiBpdCBzaG91bGQgYmUgaWdub3JlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSWdub3JlTWF0Y2hlcihvcHRpb25zOiBHbG9iTWF0Y2hlck9wdGlvbnMpOiAoZmlsZVBhdGg6IHN0cmluZykgPT4gYm9vbGVhbiB7XG4gIGNvbnN0IGluY2x1ZGVQYXR0ZXJucyA9IG9wdGlvbnMuaW5jbHVkZSAmJiBvcHRpb25zLmluY2x1ZGUubGVuZ3RoID4gMFxuICAgID8gb3B0aW9ucy5pbmNsdWRlLm1hcChub3JtYWxpemVQYXR0ZXJuKVxuICAgIDogWycqKiddO1xuICBjb25zdCBleGNsdWRlUGF0dGVybnMgPSAob3B0aW9ucy5leGNsdWRlID8/IFtdKS5tYXAobm9ybWFsaXplUGF0dGVybik7XG4gIGNvbnN0IHJvb3REaXIgPSBvcHRpb25zLnJvb3REaXIgPyBvcHRpb25zLnJvb3REaXIucmVwbGFjZSgvXFxcXC9nLCAnLycpLnJlcGxhY2UoL1xcLyskLywgJycpIDogdW5kZWZpbmVkO1xuXG4gIC8vIENvbXBpbGUgcGF0dGVybnMgaW50byBtYXRjaGVycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlXG4gIGNvbnN0IHBpY29tYXRjaE9wdGlvbnM6IHBpY29tYXRjaC5QaWNvbWF0Y2hPcHRpb25zID0ge1xuICAgIGRvdDogdHJ1ZSwgLy8gTWF0Y2ggZG90ZmlsZXMgd2hlbiBwYXR0ZXJuIGV4cGxpY2l0bHkgaW5jbHVkZXMgdGhlbVxuICB9O1xuXG4gIGNvbnN0IGluY2x1ZGVNYXRjaGVyID0gcGljb21hdGNoKGluY2x1ZGVQYXR0ZXJucywgcGljb21hdGNoT3B0aW9ucyk7XG4gIGNvbnN0IGV4Y2x1ZGVNYXRjaGVyID0gZXhjbHVkZVBhdHRlcm5zLmxlbmd0aCA+IDBcbiAgICA/IHBpY29tYXRjaChleGNsdWRlUGF0dGVybnMsIHBpY29tYXRjaE9wdGlvbnMpXG4gICAgOiAoKSA9PiBmYWxzZTtcblxuICByZXR1cm4gKGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAvLyBOb3JtYWxpemUgcGF0aCBzZXBhcmF0b3JzIGZvciBjcm9zcy1wbGF0Zm9ybSBjb21wYXRpYmlsaXR5XG4gICAgbGV0IG5vcm1hbGl6ZWRQYXRoID0gZmlsZVBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuXG4gICAgLy8gSWYgcm9vdERpciBpcyBwcm92aWRlZCBhbmQgdGhlIHBhdGggYXBwZWFycyB0byBiZSBhYnNvbHV0ZSwgbWFrZSBpdCByZWxhdGl2ZVxuICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgY2hva2lkYXIgdjQgcGFzc2VzIGFic29sdXRlIHBhdGhzIHRvIHRoZVxuICAgIC8vIGlnbm9yZWQgY2FsbGJhY2sgZXZlbiB3aGVuIGEgY3dkIGlzIHNwZWNpZmllZFxuICAgIGlmIChyb290RGlyKSB7XG4gICAgICBpZiAobm9ybWFsaXplZFBhdGguc3RhcnRzV2l0aChyb290RGlyICsgJy8nKSkge1xuICAgICAgICBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZWRQYXRoLnNsaWNlKHJvb3REaXIubGVuZ3RoICsgMSk7XG4gICAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRQYXRoID09PSByb290RGlyKSB7XG4gICAgICAgIC8vIFRoZSByb290IGRpcmVjdG9yeSBpdHNlbGYgLSBkb24ndCBpZ25vcmUgaXRcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEEgZmlsZSBpcyBpZ25vcmVkIGlmOlxuICAgIC8vIDEuIEl0IG1hdGNoZXMgYW55IGV4Y2x1ZGUgcGF0dGVybiwgT1JcbiAgICAvLyAyLiBJdCBkb2VzIE5PVCBtYXRjaCBhbnkgaW5jbHVkZSBwYXR0ZXJuXG4gICAgaWYgKGV4Y2x1ZGVNYXRjaGVyKG5vcm1hbGl6ZWRQYXRoKSkge1xuICAgICAgcmV0dXJuIHRydWU7IC8vIElnbm9yZTogbWF0Y2hlcyBleGNsdWRlXG4gICAgfVxuXG4gICAgaWYgKCFpbmNsdWRlTWF0Y2hlcihub3JtYWxpemVkUGF0aCkpIHtcbiAgICAgIHJldHVybiB0cnVlOyAvLyBJZ25vcmU6IGRvZXNuJ3QgbWF0Y2ggaW5jbHVkZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTsgLy8gRG9uJ3QgaWdub3JlOiBtYXRjaGVzIGluY2x1ZGUgYW5kIGRvZXNuJ3QgbWF0Y2ggZXhjbHVkZVxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.languageDisplayName = languageDisplayName;\nexports.guessLanguage = guessLanguage;\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst directories_1 = require(\"./directories\");\nconst DISPLAY_NAMES = {\n typescript: 'TypeScript',\n javascript: 'JavaScript',\n python: 'Python',\n java: 'Java',\n dotnet: '.NET',\n go: 'Go',\n};\n/**\n * Return the display name for a language identifier.\n */\nfunction languageDisplayName(language) {\n return DISPLAY_NAMES[language] ?? language;\n}\n/**\n * Guess the CDK app language based on the files in the given directory.\n *\n * Returns `undefined` if our guess fails.\n */\nasync function guessLanguage(dir) {\n try {\n const files = new Set(await (0, directories_1.listFiles)(dir, 2, ['node_modules']));\n if (files.has('package.json')) {\n const pjContents = JSON.parse(await fs.readFile(path.join(dir, 'package.json'), 'utf-8'));\n const deps = new Set([\n ...Object.keys(pjContents.dependencies ?? {}),\n ...Object.keys(pjContents.devDependencies ?? {}),\n ]);\n if (deps.has('typescript') || deps.has('ts-node') || deps.has('tsx') || deps.has('swc')) {\n return 'typescript';\n }\n else {\n return 'javascript';\n }\n }\n if (files.has('requirements.txt') || files.has('setup.py') || files.has('pyproject.toml')) {\n return 'python';\n }\n if (files.has('pom.xml') || files.has('build.xml') || files.has('settings.gradle')) {\n return 'java';\n }\n if (Array.from(files).some(n => n.endsWith('.sln') || n.endsWith('.csproj') || n.endsWith('.fsproj') || n.endsWith('.vbproj'))) {\n return 'dotnet';\n }\n if (files.has('go.mod')) {\n return 'go';\n }\n }\n catch {\n // Swallow failure\n }\n return undefined;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Vlc3MtbGFuZ3VhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJndWVzcy1sYW5ndWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdCQSxrREFFQztBQU9ELHNDQXFDQztBQTlERCw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLCtDQUEwQztBQUUxQyxNQUFNLGFBQWEsR0FBMkI7SUFDNUMsVUFBVSxFQUFFLFlBQVk7SUFDeEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsTUFBTTtJQUNkLEVBQUUsRUFBRSxJQUFJO0NBQ1QsQ0FBQztBQUVGOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsUUFBZ0I7SUFDbEQsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDO0FBQzdDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFXO0lBQzdDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBQSx1QkFBUyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMxRixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQztnQkFDbkIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO2dCQUM3QyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hGLE9BQU8sWUFBWSxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFlBQVksQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDMUYsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ25GLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0gsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxrQkFBa0I7SUFDcEIsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgbGlzdEZpbGVzIH0gZnJvbSAnLi9kaXJlY3Rvcmllcyc7XG5cbmNvbnN0IERJU1BMQVlfTkFNRVM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHR5cGVzY3JpcHQ6ICdUeXBlU2NyaXB0JyxcbiAgamF2YXNjcmlwdDogJ0phdmFTY3JpcHQnLFxuICBweXRob246ICdQeXRob24nLFxuICBqYXZhOiAnSmF2YScsXG4gIGRvdG5ldDogJy5ORVQnLFxuICBnbzogJ0dvJyxcbn07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUgZm9yIGEgbGFuZ3VhZ2UgaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhbmd1YWdlRGlzcGxheU5hbWUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBESVNQTEFZX05BTUVTW2xhbmd1YWdlXSA/PyBsYW5ndWFnZTtcbn1cblxuLyoqXG4gKiBHdWVzcyB0aGUgQ0RLIGFwcCBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgZmlsZXMgaW4gdGhlIGdpdmVuIGRpcmVjdG9yeS5cbiAqXG4gKiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIG91ciBndWVzcyBmYWlscy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGd1ZXNzTGFuZ3VhZ2UoZGlyOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IGZpbGVzID0gbmV3IFNldChhd2FpdCBsaXN0RmlsZXMoZGlyLCAyLCBbJ25vZGVfbW9kdWxlcyddKSk7XG5cbiAgICBpZiAoZmlsZXMuaGFzKCdwYWNrYWdlLmpzb24nKSkge1xuICAgICAgY29uc3QgcGpDb250ZW50cyA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKGRpciwgJ3BhY2thZ2UuanNvbicpLCAndXRmLTgnKSk7XG4gICAgICBjb25zdCBkZXBzID0gbmV3IFNldChbXG4gICAgICAgIC4uLk9iamVjdC5rZXlzKHBqQ29udGVudHMuZGVwZW5kZW5jaWVzID8/IHt9KSxcbiAgICAgICAgLi4uT2JqZWN0LmtleXMocGpDb250ZW50cy5kZXZEZXBlbmRlbmNpZXMgPz8ge30pLFxuICAgICAgXSk7XG4gICAgICBpZiAoZGVwcy5oYXMoJ3R5cGVzY3JpcHQnKSB8fCBkZXBzLmhhcygndHMtbm9kZScpIHx8IGRlcHMuaGFzKCd0c3gnKSB8fCBkZXBzLmhhcygnc3djJykpIHtcbiAgICAgICAgcmV0dXJuICd0eXBlc2NyaXB0JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnamF2YXNjcmlwdCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVzLmhhcygncmVxdWlyZW1lbnRzLnR4dCcpIHx8IGZpbGVzLmhhcygnc2V0dXAucHknKSB8fCBmaWxlcy5oYXMoJ3B5cHJvamVjdC50b21sJykpIHtcbiAgICAgIHJldHVybiAncHl0aG9uJztcbiAgICB9XG5cbiAgICBpZiAoZmlsZXMuaGFzKCdwb20ueG1sJykgfHwgZmlsZXMuaGFzKCdidWlsZC54bWwnKSB8fCBmaWxlcy5oYXMoJ3NldHRpbmdzLmdyYWRsZScpKSB7XG4gICAgICByZXR1cm4gJ2phdmEnO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5mcm9tKGZpbGVzKS5zb21lKG4gPT4gbi5lbmRzV2l0aCgnLnNsbicpIHx8IG4uZW5kc1dpdGgoJy5jc3Byb2onKSB8fCBuLmVuZHNXaXRoKCcuZnNwcm9qJykgfHwgbi5lbmRzV2l0aCgnLnZicHJvaicpKSkge1xuICAgICAgcmV0dXJuICdkb3RuZXQnO1xuICAgIH1cblxuICAgIGlmIChmaWxlcy5oYXMoJ2dvLm1vZCcpKSB7XG4gICAgICByZXR1cm4gJ2dvJztcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIC8vIFN3YWxsb3cgZmFpbHVyZVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./archive\"), exports);\n__exportStar(require(\"./arrays\"), exports);\n__exportStar(require(\"./bool\"), exports);\n__exportStar(require(\"./bytes\"), exports);\n__exportStar(require(\"./cloudformation\"), exports);\n__exportStar(require(\"./content-hash\"), exports);\n__exportStar(require(\"./directories\"), exports);\n__exportStar(require(\"./format-error\"), exports);\n__exportStar(require(\"./glob-matcher\"), exports);\n__exportStar(require(\"./guess-language\"), exports);\n__exportStar(require(\"./json\"), exports);\n__exportStar(require(\"./net\"), exports);\n__exportStar(require(\"./objects\"), exports);\n__exportStar(require(\"./parallel\"), exports);\n__exportStar(require(\"./package-info\"), exports);\n__exportStar(require(\"./serialize\"), exports);\n__exportStar(require(\"./string-manipulation\"), exports);\n__exportStar(require(\"./type-brands\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./version-range\"), exports);\n__exportStar(require(\"./yaml-cfn\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsMENBQXdCO0FBQ3hCLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsZ0RBQThCO0FBQzlCLGlEQUErQjtBQUMvQixpREFBK0I7QUFDL0IsbURBQWlDO0FBQ2pDLHlDQUF1QjtBQUN2Qix3Q0FBc0I7QUFDdEIsNENBQTBCO0FBQzFCLDZDQUEyQjtBQUMzQixpREFBK0I7QUFDL0IsOENBQTRCO0FBQzVCLHdEQUFzQztBQUN0QyxnREFBOEI7QUFDOUIsMENBQXdCO0FBQ3hCLGtEQUFnQztBQUNoQyw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FyY2hpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnJheXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ib29sJztcbmV4cG9ydCAqIGZyb20gJy4vYnl0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRlbnQtaGFzaCc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdG9yaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0LWVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vZ2xvYi1tYXRjaGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZ3Vlc3MtbGFuZ3VhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0JztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL3BhcmFsbGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcGFja2FnZS1pbmZvJztcbmV4cG9ydCAqIGZyb20gJy4vc2VyaWFsaXplJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLW1hbmlwdWxhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3R5cGUtYnJhbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi92ZXJzaW9uLXJhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4veWFtbC1jZm4nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResultObj = getResultObj;\nexports.findJsonValue = findJsonValue;\n/**\n * This gets the values of the jsonObject at the paths specified in propertiesToReturn.\n *\n * For example, jsonObject = {\n * key1: 'abc',\n * key2: {\n * foo: 'qwerty',\n * bar: 'data',\n * }\n * }\n *\n * propertiesToReturn = ['key1', 'key2.foo'];\n *\n * The returned object is:\n *\n * ```\n * {\n * key1: 'abc',\n * 'key2.foo': 'qwerty',\n * Identifier: identifier\n * }\n * ```\n */\nfunction getResultObj(jsonObject, identifier, propertiesToReturn) {\n const propsObj = {};\n propertiesToReturn.forEach((propName) => {\n Object.assign(propsObj, { [propName]: findJsonValue(jsonObject, propName) });\n });\n Object.assign(propsObj, { ['Identifier']: identifier });\n return propsObj;\n}\n/**\n * This finds the value of the jsonObject at the path. Path is delimited by '.'.\n *\n * For example, jsonObject = {\n * key1: 'abc',\n * key2: {\n * foo: 'qwerty',\n * bar: 'data',\n * }\n * }\n *\n * If path is 'key1', then it will return 'abc'.\n * If path is 'key2.foo', then it will return 'qwerty'.\n * If path is 'key2', then it will return the object:\n * {\n * foo: 'qwerty',\n * bar: 'data',\n * }\n *\n * If the path is not found, an Error will be thrown stating which token is missing.\n */\nfunction findJsonValue(jsonObject, path) {\n const paths = path.split('.');\n let obj = jsonObject;\n paths.forEach(p => {\n obj = obj[p];\n if (obj === undefined) {\n throw new TypeError(`Cannot read field ${path}. ${p} is not found.`);\n }\n });\n return obj;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1QkEsb0NBT0M7QUF1QkQsc0NBVUM7QUEvREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxTQUFnQixZQUFZLENBQUMsVUFBZSxFQUFFLFVBQWtCLEVBQUUsa0JBQTRCO0lBQzVGLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLFVBQWUsRUFBRSxJQUFZO0lBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDO0lBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGdldHMgdGhlIHZhbHVlcyBvZiB0aGUganNvbk9iamVjdCBhdCB0aGUgcGF0aHMgc3BlY2lmaWVkIGluIHByb3BlcnRpZXNUb1JldHVybi5cbiAqXG4gKiBGb3IgZXhhbXBsZSwganNvbk9iamVjdCA9IHtcbiAqICAga2V5MTogJ2FiYycsXG4gKiAgIGtleTI6IHtcbiAqICAgICBmb286ICdxd2VydHknLFxuICogICAgIGJhcjogJ2RhdGEnLFxuICogICB9XG4gKiB9XG4gKlxuICogcHJvcGVydGllc1RvUmV0dXJuID0gWydrZXkxJywgJ2tleTIuZm9vJ107XG4gKlxuICogVGhlIHJldHVybmVkIG9iamVjdCBpczpcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAga2V5MTogJ2FiYycsXG4gKiAgICdrZXkyLmZvbyc6ICdxd2VydHknLFxuICogICBJZGVudGlmaWVyOiBpZGVudGlmaWVyXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3VsdE9iaihqc29uT2JqZWN0OiBhbnksIGlkZW50aWZpZXI6IHN0cmluZywgcHJvcGVydGllc1RvUmV0dXJuOiBzdHJpbmdbXSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBwcm9wc09iaiA9IHt9O1xuICBwcm9wZXJ0aWVzVG9SZXR1cm4uZm9yRWFjaCgocHJvcE5hbWUpID0+IHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BzT2JqLCB7IFtwcm9wTmFtZV06IGZpbmRKc29uVmFsdWUoanNvbk9iamVjdCwgcHJvcE5hbWUpIH0pO1xuICB9KTtcbiAgT2JqZWN0LmFzc2lnbihwcm9wc09iaiwgeyBbJ0lkZW50aWZpZXInXTogaWRlbnRpZmllciB9KTtcbiAgcmV0dXJuIHByb3BzT2JqO1xufVxuXG4vKipcbiAqIFRoaXMgZmluZHMgdGhlIHZhbHVlIG9mIHRoZSBqc29uT2JqZWN0IGF0IHRoZSBwYXRoLiAgUGF0aCBpcyBkZWxpbWl0ZWQgYnkgJy4nLlxuICpcbiAqIEZvciBleGFtcGxlLCBqc29uT2JqZWN0ID0ge1xuICogICBrZXkxOiAnYWJjJyxcbiAqICAga2V5Mjoge1xuICogICAgIGZvbzogJ3F3ZXJ0eScsXG4gKiAgICAgYmFyOiAnZGF0YScsXG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBJZiBwYXRoIGlzICdrZXkxJywgdGhlbiBpdCB3aWxsIHJldHVybiAnYWJjJy5cbiAqIElmIHBhdGggaXMgJ2tleTIuZm9vJywgdGhlbiBpdCB3aWxsIHJldHVybiAncXdlcnR5Jy5cbiAqIElmIHBhdGggaXMgJ2tleTInLCB0aGVuIGl0IHdpbGwgcmV0dXJuIHRoZSBvYmplY3Q6XG4gKiB7XG4gKiAgIGZvbzogJ3F3ZXJ0eScsXG4gKiAgIGJhcjogJ2RhdGEnLFxuICogfVxuICpcbiAqIElmIHRoZSBwYXRoIGlzIG5vdCBmb3VuZCwgYW4gRXJyb3Igd2lsbCBiZSB0aHJvd24gc3RhdGluZyB3aGljaCB0b2tlbiBpcyBtaXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEpzb25WYWx1ZShqc29uT2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHBhdGhzID0gcGF0aC5zcGxpdCgnLicpO1xuICBsZXQgb2JqID0ganNvbk9iamVjdDtcbiAgcGF0aHMuZm9yRWFjaChwID0+IHtcbiAgICBvYmogPSBvYmpbcF07XG4gICAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBDYW5ub3QgcmVhZCBmaWVsZCAke3BhdGh9LiAke3B9IGlzIG5vdCBmb3VuZC5gKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb2JqO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.humanNetworkError = humanNetworkError;\nexports.humanHttpStatusError = humanHttpStatusError;\n/**\n * Get a human-readable error message for a network error\n * @param error - The network error object\n */\nfunction humanNetworkError(error) {\n switch (error.code) {\n case 'ENOTFOUND':\n return `Cannot reach the server. Please check your internet connection or the URL (${error.hostname}).`;\n case 'ECONNREFUSED':\n return `Connection refused. The server at ${error.address}:${error.port} is not accepting connections.`;\n case 'ECONNRESET':\n return 'Connection was suddenly closed by the server. Please try again later.';\n case 'ETIMEDOUT':\n return 'Connection timed out. The server took too long to respond.';\n case 'CERT_HAS_EXPIRED':\n return 'The SSL certificate of the server has expired. This could be a security risk.';\n case 'UNABLE_TO_VERIFY_LEAF_SIGNATURE':\n case 'CERT_SIGNATURE_FAILURE':\n case 'ERR_TLS_CERT_ALTNAME_INVALID':\n return 'SSL certificate validation failed. This could indicate a security issue or a misconfigured server.';\n default:\n return `Network error: ${error.message || error.code || 'Unknown error'}`;\n }\n}\n/**\n * Get a human-readable error message for a HTTP status code\n */\nfunction humanHttpStatusError(statusCode) {\n switch (statusCode) {\n case 400:\n return 'Bad request - the server could not understand the request';\n case 401:\n return 'Unauthorized - authentication is required';\n case 403:\n return 'Forbidden - you do not have permission to access this resource';\n case 404:\n return 'Not found - the requested resource does not exist';\n case 408:\n return 'Request timeout - the server timed out waiting for the request';\n case 429:\n return 'Too many requests - you have sent too many requests in a given amount of time';\n case 500:\n return 'Internal server error - something went wrong on the server';\n case 502:\n return 'Bad gateway - the server received an invalid response from an upstream server';\n case 503:\n return 'Service unavailable - the server is temporarily unable to handle the request';\n case 504:\n return 'Gateway timeout - the server did not receive a timely response from an upstream server';\n default:\n return statusCode >= 500\n ? 'Server error - something went wrong on the server'\n : 'Client error - something went wrong with the request';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsOENBbUJDO0FBS0Qsb0RBMkJDO0FBdkREOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEtBQTRCO0lBQzVELFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLEtBQUssV0FBVztZQUNkLE9BQU8sOEVBQStFLEtBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQztRQUNuSCxLQUFLLGNBQWM7WUFDakIsT0FBTyxxQ0FBc0MsS0FBYSxDQUFDLE9BQU8sSUFBSyxLQUFhLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQztRQUM1SCxLQUFLLFlBQVk7WUFDZixPQUFPLHVFQUF1RSxDQUFDO1FBQ2pGLEtBQUssV0FBVztZQUNkLE9BQU8sNERBQTRELENBQUM7UUFDdEUsS0FBSyxrQkFBa0I7WUFDckIsT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLGlDQUFpQyxDQUFDO1FBQ3ZDLEtBQUssd0JBQXdCLENBQUM7UUFDOUIsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyxvR0FBb0csQ0FBQztRQUM5RztZQUNFLE9BQU8sa0JBQWtCLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsVUFBa0I7SUFDckQsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLEdBQUc7WUFDTixPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFLEtBQUssR0FBRztZQUNOLE9BQU8sMkNBQTJDLENBQUM7UUFDckQsS0FBSyxHQUFHO1lBQ04sT0FBTyxnRUFBZ0UsQ0FBQztRQUMxRSxLQUFLLEdBQUc7WUFDTixPQUFPLG1EQUFtRCxDQUFDO1FBQzdELEtBQUssR0FBRztZQUNOLE9BQU8sZ0VBQWdFLENBQUM7UUFDMUUsS0FBSyxHQUFHO1lBQ04sT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLEdBQUc7WUFDTixPQUFPLDREQUE0RCxDQUFDO1FBQ3RFLEtBQUssR0FBRztZQUNOLE9BQU8sK0VBQStFLENBQUM7UUFDekYsS0FBSyxHQUFHO1lBQ04sT0FBTyw4RUFBOEUsQ0FBQztRQUN4RixLQUFLLEdBQUc7WUFDTixPQUFPLHdGQUF3RixDQUFDO1FBQ2xHO1lBQ0UsT0FBTyxVQUFVLElBQUksR0FBRztnQkFDdEIsQ0FBQyxDQUFDLG1EQUFtRDtnQkFDckQsQ0FBQyxDQUFDLHNEQUFzRCxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgYSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIGZvciBhIG5ldHdvcmsgZXJyb3JcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBuZXR3b3JrIGVycm9yIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5OZXR3b3JrRXJyb3IoZXJyb3I6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbik6IHN0cmluZyB7XG4gIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgIGNhc2UgJ0VOT1RGT1VORCc6XG4gICAgICByZXR1cm4gYENhbm5vdCByZWFjaCB0aGUgc2VydmVyLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uIG9yIHRoZSBVUkwgKCR7KGVycm9yIGFzIGFueSkuaG9zdG5hbWV9KS5gO1xuICAgIGNhc2UgJ0VDT05OUkVGVVNFRCc6XG4gICAgICByZXR1cm4gYENvbm5lY3Rpb24gcmVmdXNlZC4gVGhlIHNlcnZlciBhdCAkeyhlcnJvciBhcyBhbnkpLmFkZHJlc3N9OiR7KGVycm9yIGFzIGFueSkucG9ydH0gaXMgbm90IGFjY2VwdGluZyBjb25uZWN0aW9ucy5gO1xuICAgIGNhc2UgJ0VDT05OUkVTRVQnOlxuICAgICAgcmV0dXJuICdDb25uZWN0aW9uIHdhcyBzdWRkZW5seSBjbG9zZWQgYnkgdGhlIHNlcnZlci4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgIGNhc2UgJ0VUSU1FRE9VVCc6XG4gICAgICByZXR1cm4gJ0Nvbm5lY3Rpb24gdGltZWQgb3V0LiBUaGUgc2VydmVyIHRvb2sgdG9vIGxvbmcgdG8gcmVzcG9uZC4nO1xuICAgIGNhc2UgJ0NFUlRfSEFTX0VYUElSRUQnOlxuICAgICAgcmV0dXJuICdUaGUgU1NMIGNlcnRpZmljYXRlIG9mIHRoZSBzZXJ2ZXIgaGFzIGV4cGlyZWQuIFRoaXMgY291bGQgYmUgYSBzZWN1cml0eSByaXNrLic7XG4gICAgY2FzZSAnVU5BQkxFX1RPX1ZFUklGWV9MRUFGX1NJR05BVFVSRSc6XG4gICAgY2FzZSAnQ0VSVF9TSUdOQVRVUkVfRkFJTFVSRSc6XG4gICAgY2FzZSAnRVJSX1RMU19DRVJUX0FMVE5BTUVfSU5WQUxJRCc6XG4gICAgICByZXR1cm4gJ1NTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGZhaWxlZC4gVGhpcyBjb3VsZCBpbmRpY2F0ZSBhIHNlY3VyaXR5IGlzc3VlIG9yIGEgbWlzY29uZmlndXJlZCBzZXJ2ZXIuJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGBOZXR3b3JrIGVycm9yOiAke2Vycm9yLm1lc3NhZ2UgfHwgZXJyb3IuY29kZSB8fCAnVW5rbm93biBlcnJvcid9YDtcbiAgfVxufVxuXG4vKipcbiAqIEdldCBhIGh1bWFuLXJlYWRhYmxlIGVycm9yIG1lc3NhZ2UgZm9yIGEgSFRUUCBzdGF0dXMgY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5IdHRwU3RhdHVzRXJyb3Ioc3RhdHVzQ29kZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgY2FzZSA0MDA6XG4gICAgICByZXR1cm4gJ0JhZCByZXF1ZXN0IC0gdGhlIHNlcnZlciBjb3VsZCBub3QgdW5kZXJzdGFuZCB0aGUgcmVxdWVzdCc7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ1VuYXV0aG9yaXplZCAtIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkJztcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnRm9yYmlkZGVuIC0geW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgcmVzb3VyY2UnO1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdOb3QgZm91bmQgLSB0aGUgcmVxdWVzdGVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0JztcbiAgICBjYXNlIDQwODpcbiAgICAgIHJldHVybiAnUmVxdWVzdCB0aW1lb3V0IC0gdGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QnO1xuICAgIGNhc2UgNDI5OlxuICAgICAgcmV0dXJuICdUb28gbWFueSByZXF1ZXN0cyAtIHlvdSBoYXZlIHNlbnQgdG9vIG1hbnkgcmVxdWVzdHMgaW4gYSBnaXZlbiBhbW91bnQgb2YgdGltZSc7XG4gICAgY2FzZSA1MDA6XG4gICAgICByZXR1cm4gJ0ludGVybmFsIHNlcnZlciBlcnJvciAtIHNvbWV0aGluZyB3ZW50IHdyb25nIG9uIHRoZSBzZXJ2ZXInO1xuICAgIGNhc2UgNTAyOlxuICAgICAgcmV0dXJuICdCYWQgZ2F0ZXdheSAtIHRoZSBzZXJ2ZXIgcmVjZWl2ZWQgYW4gaW52YWxpZCByZXNwb25zZSBmcm9tIGFuIHVwc3RyZWFtIHNlcnZlcic7XG4gICAgY2FzZSA1MDM6XG4gICAgICByZXR1cm4gJ1NlcnZpY2UgdW5hdmFpbGFibGUgLSB0aGUgc2VydmVyIGlzIHRlbXBvcmFyaWx5IHVuYWJsZSB0byBoYW5kbGUgdGhlIHJlcXVlc3QnO1xuICAgIGNhc2UgNTA0OlxuICAgICAgcmV0dXJuICdHYXRld2F5IHRpbWVvdXQgLSB0aGUgc2VydmVyIGRpZCBub3QgcmVjZWl2ZSBhIHRpbWVseSByZXNwb25zZSBmcm9tIGFuIHVwc3RyZWFtIHNlcnZlcic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0dXNDb2RlID49IDUwMFxuICAgICAgICA/ICdTZXJ2ZXIgZXJyb3IgLSBzb21ldGhpbmcgd2VudCB3cm9uZyBvbiB0aGUgc2VydmVyJ1xuICAgICAgICA6ICdDbGllbnQgZXJyb3IgLSBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSByZXF1ZXN0JztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyDefaults = applyDefaults;\nexports.isEmpty = isEmpty;\nexports.deepClone = deepClone;\nexports.mapObject = mapObject;\nexports.makeObject = makeObject;\nexports.deepGet = deepGet;\nexports.deepSet = deepSet;\nexports.deepMerge = deepMerge;\nexports.splitBySize = splitBySize;\nexports.transformObjectKeys = transformObjectKeys;\nexports.noUndefined = noUndefined;\nconst types_1 = require(\"./types\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Return a new object by adding missing keys into another object\n */\nfunction applyDefaults(hash, defaults) {\n const result = {};\n Object.keys(hash).forEach(k => result[k] = hash[k]);\n Object.keys(defaults)\n .filter(k => !(k in result))\n .forEach(k => result[k] = defaults[k]);\n return result;\n}\n/**\n * Return whether the given parameter is an empty object or empty list.\n */\nfunction isEmpty(x) {\n if (x == null) {\n return false;\n }\n if ((0, types_1.isArray)(x)) {\n return x.length === 0;\n }\n return Object.keys(x).length === 0;\n}\n/**\n * Deep clone a tree of objects, lists or scalars\n *\n * Does not support cycles.\n */\nfunction deepClone(x) {\n if (typeof x === 'undefined') {\n return undefined;\n }\n if (x === null) {\n return null;\n }\n if ((0, types_1.isArray)(x)) {\n return x.map(deepClone);\n }\n if ((0, types_1.isObject)(x)) {\n return makeObject(mapObject(x, (k, v) => [k, deepClone(v)]));\n }\n return x;\n}\n/**\n * Map over an object, treating it as a dictionary\n */\nfunction mapObject(x, fn) {\n const ret = [];\n Object.keys(x).forEach(key => {\n ret.push(fn(key, x[key]));\n });\n return ret;\n}\n/**\n * Construct an object from a list of (k, v) pairs\n */\nfunction makeObject(pairs) {\n const ret = {};\n for (const pair of pairs) {\n ret[pair[0]] = pair[1];\n }\n return ret;\n}\n/**\n * Deep get a value from a tree of nested objects\n *\n * Returns undefined if any part of the path was unset or\n * not an object.\n */\nfunction deepGet(x, path) {\n path = path.slice();\n while (path.length > 0 && (0, types_1.isObject)(x)) {\n const key = path.shift();\n x = x[key];\n }\n return path.length === 0 ? x : undefined;\n}\n/**\n * Deep set a value in a tree of nested objects\n *\n * Throws an error if any part of the path is not an object.\n */\nfunction deepSet(x, path, value) {\n path = path.slice();\n if (path.length === 0) {\n throw new toolkit_error_1.ToolkitError('EmptyPath', 'Path may not be empty');\n }\n while (path.length > 1 && (0, types_1.isObject)(x)) {\n const key = path.shift();\n if (isPrototypePollutingKey(key)) {\n continue;\n }\n if (!(key in x)) {\n x[key] = {};\n }\n x = x[key];\n }\n if (!(0, types_1.isObject)(x)) {\n throw new toolkit_error_1.ToolkitError('ExpectedObject', `Expected an object, got '${x}'`);\n }\n const finalKey = path[0];\n if (isPrototypePollutingKey(finalKey)) {\n return;\n }\n if (value !== undefined) {\n x[finalKey] = value;\n }\n else {\n delete x[finalKey];\n }\n}\n/**\n * Helper to detect prototype polluting keys\n *\n * A key matching this, MUST NOT be used in an assignment.\n * Use this to check user-input.\n */\nfunction isPrototypePollutingKey(key) {\n return key === '__proto__' || key === 'constructor' || key === 'prototype';\n}\n/**\n * Recursively merge objects together\n *\n * The leftmost object is mutated and returned. Arrays are not merged\n * but overwritten just like scalars.\n *\n * If an object is merged into a non-object, the non-object is lost.\n */\nfunction deepMerge(...objects) {\n function mergeOne(target, source) {\n for (const key of Object.keys(source)) {\n if (isPrototypePollutingKey(key)) {\n continue;\n }\n const value = source[key];\n if ((0, types_1.isObject)(value)) {\n if (!(0, types_1.isObject)(target[key])) {\n target[key] = {};\n } // Overwrite on purpose\n mergeOne(target[key], value);\n }\n else if (typeof value !== 'undefined') {\n target[key] = value;\n }\n }\n }\n const others = objects.filter(x => x != null);\n if (others.length === 0) {\n return {};\n }\n const into = others.splice(0, 1)[0];\n others.forEach(other => mergeOne(into, other));\n return into;\n}\n/**\n * Splits the given object into two, such that:\n *\n * 1. The size of the first object (after stringified in UTF-8) is less than or equal to the provided size limit.\n * 2. Merging the two objects results in the original one.\n */\nfunction splitBySize(data, maxSizeBytes) {\n if (maxSizeBytes < 2) {\n // It's impossible to fit anything in the first object\n return [undefined, data];\n }\n const entries = Object.entries(data);\n return recurse(0, 0);\n function recurse(index, runningTotalSize) {\n if (index >= entries.length) {\n // Everything fits in the first object\n return [data, undefined];\n }\n const size = runningTotalSize + entrySize(entries[index]);\n return (size > maxSizeBytes) ? cutAt(index) : recurse(index + 1, size);\n }\n function entrySize(entry) {\n return Buffer.byteLength(JSON.stringify(Object.fromEntries([entry])));\n }\n function cutAt(index) {\n return [\n Object.fromEntries(entries.slice(0, index)),\n Object.fromEntries(entries.slice(index)),\n ];\n }\n}\n/**\n * This function transforms all keys (recursively) in the provided `val` object.\n *\n * @param val - The object whose keys need to be transformed.\n * @param transform - The function that will be applied to each key.\n * @param exclude - The keys that will not be transformed and copied to output directly\n * @returns A new object with the same values as `val`, but with all keys transformed according to `transform`.\n */\nfunction transformObjectKeys(val, transform, exclude = {}) {\n if (val == null || typeof val !== 'object') {\n return val;\n }\n if (Array.isArray(val)) {\n // For arrays we just pass parent's exclude object directly\n // since it makes no sense to specify different exclude options for each array element\n return val.map((input) => transformObjectKeys(input, transform, exclude));\n }\n const ret = {};\n for (const [k, v] of Object.entries(val)) {\n const childExclude = exclude[k];\n if (childExclude === true) {\n // we don't transform this object if the key is specified in exclude\n ret[transform(k)] = v;\n }\n else {\n ret[transform(k)] = transformObjectKeys(v, transform, childExclude);\n }\n }\n return ret;\n}\n/**\n * Remove undefined values from a dictionary\n */\nfunction noUndefined(xs) {\n return Object.fromEntries(Object.entries(xs).filter(([_, v]) => v !== undefined));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxzQ0FVQztBQUtELDBCQVFDO0FBT0QsOEJBY0M7QUFLRCw4QkFNQztBQUtELGdDQU1DO0FBUUQsMEJBUUM7QUFPRCwwQkFtQ0M7QUFvQkQsOEJBNkJDO0FBUUQsa0NBNEJDO0FBWUQsa0RBb0JDO0FBS0Qsa0NBRUM7QUE5UEQsbUNBQTRDO0FBQzVDLDREQUF3RDtBQUV4RDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxJQUFTLEVBQUUsUUFBYTtJQUNwRCxNQUFNLE1BQU0sR0FBUSxFQUFHLENBQUM7SUFFeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQztTQUMzQixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLENBQU07SUFDNUIsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLElBQUEsZUFBTyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxDQUFNO0lBQzlCLElBQUksT0FBTyxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDN0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxJQUFBLGVBQU8sRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLElBQUEsZ0JBQVEsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBTyxDQUFTLEVBQUUsRUFBZ0M7SUFDekUsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO0lBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQUksS0FBeUI7SUFDckQsTUFBTSxHQUFHLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixPQUFPLENBQUMsQ0FBTSxFQUFFLElBQWM7SUFDNUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVwQixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUEsZ0JBQVEsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQztRQUMxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLENBQU0sRUFBRSxJQUFjLEVBQUUsS0FBVTtJQUN4RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRXBCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksNEJBQVksQ0FBQyxXQUFXLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFBLGdCQUFRLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFHLENBQUM7UUFFMUIsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFNBQVM7UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFBLGdCQUFRLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksNEJBQVksQ0FBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpCLElBQUksdUJBQXVCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxHQUFXO0lBQzFDLE9BQU8sR0FBRyxLQUFLLFdBQVcsSUFBSSxHQUFHLEtBQUssYUFBYSxJQUFJLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDN0UsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixTQUFTLENBQUMsR0FBRyxPQUFvQztJQUMvRCxTQUFTLFFBQVEsQ0FBQyxNQUFnQixFQUFFLE1BQWdCO1FBQ2xELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksdUJBQXVCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFMUIsSUFBSSxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUEsZ0JBQVEsRUFBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMzQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixDQUFDLENBQUMsdUJBQXVCO2dCQUN6QixRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUM7aUJBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBb0IsQ0FBQztJQUVqRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxJQUFTLEVBQUUsWUFBb0I7SUFDekQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckIsc0RBQXNEO1FBQ3RELE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsT0FBTyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXJCLFNBQVMsT0FBTyxDQUFDLEtBQWEsRUFBRSxnQkFBd0I7UUFDdEQsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsU0FBUyxTQUFTLENBQUMsS0FBd0I7UUFDekMsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFhO1FBQzFCLE9BQU87WUFDTCxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFJRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsR0FBUSxFQUFFLFNBQWtDLEVBQUUsVUFBbUIsRUFBRTtJQUNyRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsMkRBQTJEO1FBQzNELHNGQUFzRjtRQUN0RixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQXlCLEVBQUUsQ0FBQztJQUNyQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQixvRUFBb0U7WUFDcEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixXQUFXLENBQUksRUFBcUI7SUFDbEQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBUSxDQUFDO0FBQzNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9iaiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNBcnJheSwgaXNPYmplY3QgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8qKlxuICogUmV0dXJuIGEgbmV3IG9iamVjdCBieSBhZGRpbmcgbWlzc2luZyBrZXlzIGludG8gYW5vdGhlciBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5RGVmYXVsdHMoaGFzaDogYW55LCBkZWZhdWx0czogYW55KSB7XG4gIGNvbnN0IHJlc3VsdDogYW55ID0geyB9O1xuXG4gIE9iamVjdC5rZXlzKGhhc2gpLmZvckVhY2goayA9PiByZXN1bHRba10gPSBoYXNoW2tdKTtcblxuICBPYmplY3Qua2V5cyhkZWZhdWx0cylcbiAgICAuZmlsdGVyKGsgPT4gIShrIGluIHJlc3VsdCkpXG4gICAgLmZvckVhY2goayA9PiByZXN1bHRba10gPSBkZWZhdWx0c1trXSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gcGFyYW1ldGVyIGlzIGFuIGVtcHR5IG9iamVjdCBvciBlbXB0eSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eSh4OiBhbnkpIHtcbiAgaWYgKHggPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lmxlbmd0aCA9PT0gMDtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMoeCkubGVuZ3RoID09PSAwO1xufVxuXG4vKipcbiAqIERlZXAgY2xvbmUgYSB0cmVlIG9mIG9iamVjdHMsIGxpc3RzIG9yIHNjYWxhcnNcbiAqXG4gKiBEb2VzIG5vdCBzdXBwb3J0IGN5Y2xlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZSh4OiBhbnkpOiBhbnkge1xuICBpZiAodHlwZW9mIHggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoeCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChpc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHgubWFwKGRlZXBDbG9uZSk7XG4gIH1cbiAgaWYgKGlzT2JqZWN0KHgpKSB7XG4gICAgcmV0dXJuIG1ha2VPYmplY3QobWFwT2JqZWN0KHgsIChrLCB2KSA9PiBbaywgZGVlcENsb25lKHYpXSBhcyBbc3RyaW5nLCBhbnldKSk7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbi8qKlxuICogTWFwIG92ZXIgYW4gb2JqZWN0LCB0cmVhdGluZyBpdCBhcyBhIGRpY3Rpb25hcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcE9iamVjdDxULCBVPih4OiBPYmo8VD4sIGZuOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKSA9PiBVKTogVVtdIHtcbiAgY29uc3QgcmV0OiBVW10gPSBbXTtcbiAgT2JqZWN0LmtleXMoeCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIHJldC5wdXNoKGZuKGtleSwgeFtrZXldKSk7XG4gIH0pO1xuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIENvbnN0cnVjdCBhbiBvYmplY3QgZnJvbSBhIGxpc3Qgb2YgKGssIHYpIHBhaXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlT2JqZWN0PFQ+KHBhaXJzOiBBcnJheTxbc3RyaW5nLCBUXT4pOiBPYmo8VD4ge1xuICBjb25zdCByZXQ6IE9iajxUPiA9IHt9O1xuICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICByZXRbcGFpclswXV0gPSBwYWlyWzFdO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRGVlcCBnZXQgYSB2YWx1ZSBmcm9tIGEgdHJlZSBvZiBuZXN0ZWQgb2JqZWN0c1xuICpcbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIGFueSBwYXJ0IG9mIHRoZSBwYXRoIHdhcyB1bnNldCBvclxuICogbm90IGFuIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBHZXQoeDogYW55LCBwYXRoOiBzdHJpbmdbXSk6IGFueSB7XG4gIHBhdGggPSBwYXRoLnNsaWNlKCk7XG5cbiAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMCAmJiBpc09iamVjdCh4KSkge1xuICAgIGNvbnN0IGtleSA9IHBhdGguc2hpZnQoKSE7XG4gICAgeCA9IHhba2V5XTtcbiAgfVxuICByZXR1cm4gcGF0aC5sZW5ndGggPT09IDAgPyB4IDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERlZXAgc2V0IGEgdmFsdWUgaW4gYSB0cmVlIG9mIG5lc3RlZCBvYmplY3RzXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIGFueSBwYXJ0IG9mIHRoZSBwYXRoIGlzIG5vdCBhbiBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwU2V0KHg6IGFueSwgcGF0aDogc3RyaW5nW10sIHZhbHVlOiBhbnkpIHtcbiAgcGF0aCA9IHBhdGguc2xpY2UoKTtcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdFbXB0eVBhdGgnLCAnUGF0aCBtYXkgbm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICB3aGlsZSAocGF0aC5sZW5ndGggPiAxICYmIGlzT2JqZWN0KHgpKSB7XG4gICAgY29uc3Qga2V5ID0gcGF0aC5zaGlmdCgpITtcblxuICAgIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIShrZXkgaW4geCkpIHtcbiAgICAgIHhba2V5XSA9IHt9O1xuICAgIH1cbiAgICB4ID0geFtrZXldO1xuICB9XG5cbiAgaWYgKCFpc09iamVjdCh4KSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0V4cGVjdGVkT2JqZWN0JywgYEV4cGVjdGVkIGFuIG9iamVjdCwgZ290ICcke3h9J2ApO1xuICB9XG5cbiAgY29uc3QgZmluYWxLZXkgPSBwYXRoWzBdO1xuXG4gIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShmaW5hbEtleSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHhbZmluYWxLZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHhbZmluYWxLZXldO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIHRvIGRldGVjdCBwcm90b3R5cGUgcG9sbHV0aW5nIGtleXNcbiAqXG4gKiBBIGtleSBtYXRjaGluZyB0aGlzLCBNVVNUIE5PVCBiZSB1c2VkIGluIGFuIGFzc2lnbm1lbnQuXG4gKiBVc2UgdGhpcyB0byBjaGVjayB1c2VyLWlucHV0LlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXk6IHN0cmluZykge1xuICByZXR1cm4ga2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJztcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIHRvZ2V0aGVyXG4gKlxuICogVGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZC4gQXJyYXlzIGFyZSBub3QgbWVyZ2VkXG4gKiBidXQgb3ZlcndyaXR0ZW4ganVzdCBsaWtlIHNjYWxhcnMuXG4gKlxuICogSWYgYW4gb2JqZWN0IGlzIG1lcmdlZCBpbnRvIGEgbm9uLW9iamVjdCwgdGhlIG5vbi1vYmplY3QgaXMgbG9zdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSguLi5vYmplY3RzOiBBcnJheTxPYmo8YW55PiB8IHVuZGVmaW5lZD4pIHtcbiAgZnVuY3Rpb24gbWVyZ2VPbmUodGFyZ2V0OiBPYmo8YW55Piwgc291cmNlOiBPYmo8YW55Pikge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcbiAgICAgIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuXG4gICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGlmICghaXNPYmplY3QodGFyZ2V0W2tleV0pKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB7fTtcbiAgICAgICAgfSAvLyBPdmVyd3JpdGUgb24gcHVycG9zZVxuICAgICAgICBtZXJnZU9uZSh0YXJnZXRba2V5XSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3RoZXJzID0gb2JqZWN0cy5maWx0ZXIoeCA9PiB4ICE9IG51bGwpIGFzIEFycmF5PE9iajxhbnk+PjtcblxuICBpZiAob3RoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdCBpbnRvID0gb3RoZXJzLnNwbGljZSgwLCAxKVswXTtcblxuICBvdGhlcnMuZm9yRWFjaChvdGhlciA9PiBtZXJnZU9uZShpbnRvLCBvdGhlcikpO1xuICByZXR1cm4gaW50bztcbn1cblxuLyoqXG4gKiBTcGxpdHMgdGhlIGdpdmVuIG9iamVjdCBpbnRvIHR3bywgc3VjaCB0aGF0OlxuICpcbiAqIDEuIFRoZSBzaXplIG9mIHRoZSBmaXJzdCBvYmplY3QgKGFmdGVyIHN0cmluZ2lmaWVkIGluIFVURi04KSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIHNpemUgbGltaXQuXG4gKiAyLiBNZXJnaW5nIHRoZSB0d28gb2JqZWN0cyByZXN1bHRzIGluIHRoZSBvcmlnaW5hbCBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEJ5U2l6ZShkYXRhOiBhbnksIG1heFNpemVCeXRlczogbnVtYmVyKTogW2FueSwgYW55XSB7XG4gIGlmIChtYXhTaXplQnl0ZXMgPCAyKSB7XG4gICAgLy8gSXQncyBpbXBvc3NpYmxlIHRvIGZpdCBhbnl0aGluZyBpbiB0aGUgZmlyc3Qgb2JqZWN0XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGRhdGFdO1xuICB9XG4gIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhkYXRhKTtcbiAgcmV0dXJuIHJlY3Vyc2UoMCwgMCk7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZShpbmRleDogbnVtYmVyLCBydW5uaW5nVG90YWxTaXplOiBudW1iZXIpOiBbYW55LCBhbnldIHtcbiAgICBpZiAoaW5kZXggPj0gZW50cmllcy5sZW5ndGgpIHtcbiAgICAgIC8vIEV2ZXJ5dGhpbmcgZml0cyBpbiB0aGUgZmlyc3Qgb2JqZWN0XG4gICAgICByZXR1cm4gW2RhdGEsIHVuZGVmaW5lZF07XG4gICAgfVxuXG4gICAgY29uc3Qgc2l6ZSA9IHJ1bm5pbmdUb3RhbFNpemUgKyBlbnRyeVNpemUoZW50cmllc1tpbmRleF0pO1xuICAgIHJldHVybiAoc2l6ZSA+IG1heFNpemVCeXRlcykgPyBjdXRBdChpbmRleCkgOiByZWN1cnNlKGluZGV4ICsgMSwgc2l6ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBlbnRyeVNpemUoZW50cnk6IFtzdHJpbmcsIHVua25vd25dKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5ieXRlTGVuZ3RoKEpTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyhbZW50cnldKSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3V0QXQoaW5kZXg6IG51bWJlcik6IFthbnksIGFueV0ge1xuICAgIHJldHVybiBbXG4gICAgICBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcy5zbGljZSgwLCBpbmRleCkpLFxuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKGVudHJpZXMuc2xpY2UoaW5kZXgpKSxcbiAgICBdO1xuICB9XG59XG5cbnR5cGUgRXhjbHVkZSA9IHsgW2tleTogc3RyaW5nXTogRXhjbHVkZSB8IHRydWUgfTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybXMgYWxsIGtleXMgKHJlY3Vyc2l2ZWx5KSBpbiB0aGUgcHJvdmlkZWQgYHZhbGAgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB2YWwgLSBUaGUgb2JqZWN0IHdob3NlIGtleXMgbmVlZCB0byBiZSB0cmFuc2Zvcm1lZC5cbiAqIEBwYXJhbSB0cmFuc2Zvcm0gLSBUaGUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gZWFjaCBrZXkuXG4gKiBAcGFyYW0gZXhjbHVkZSAtIFRoZSBrZXlzIHRoYXQgd2lsbCBub3QgYmUgdHJhbnNmb3JtZWQgYW5kIGNvcGllZCB0byBvdXRwdXQgZGlyZWN0bHlcbiAqIEByZXR1cm5zIEEgbmV3IG9iamVjdCB3aXRoIHRoZSBzYW1lIHZhbHVlcyBhcyBgdmFsYCwgYnV0IHdpdGggYWxsIGtleXMgdHJhbnNmb3JtZWQgYWNjb3JkaW5nIHRvIGB0cmFuc2Zvcm1gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtT2JqZWN0S2V5cyh2YWw6IGFueSwgdHJhbnNmb3JtOiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZywgZXhjbHVkZTogRXhjbHVkZSA9IHt9KTogYW55IHtcbiAgaWYgKHZhbCA9PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgLy8gRm9yIGFycmF5cyB3ZSBqdXN0IHBhc3MgcGFyZW50J3MgZXhjbHVkZSBvYmplY3QgZGlyZWN0bHlcbiAgICAvLyBzaW5jZSBpdCBtYWtlcyBubyBzZW5zZSB0byBzcGVjaWZ5IGRpZmZlcmVudCBleGNsdWRlIG9wdGlvbnMgZm9yIGVhY2ggYXJyYXkgZWxlbWVudFxuICAgIHJldHVybiB2YWwubWFwKChpbnB1dDogYW55KSA9PiB0cmFuc2Zvcm1PYmplY3RLZXlzKGlucHV0LCB0cmFuc2Zvcm0sIGV4Y2x1ZGUpKTtcbiAgfVxuICBjb25zdCByZXQ6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbCkpIHtcbiAgICBjb25zdCBjaGlsZEV4Y2x1ZGUgPSBleGNsdWRlW2tdO1xuICAgIGlmIChjaGlsZEV4Y2x1ZGUgPT09IHRydWUpIHtcbiAgICAgIC8vIHdlIGRvbid0IHRyYW5zZm9ybSB0aGlzIG9iamVjdCBpZiB0aGUga2V5IGlzIHNwZWNpZmllZCBpbiBleGNsdWRlXG4gICAgICByZXRbdHJhbnNmb3JtKGspXSA9IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldFt0cmFuc2Zvcm0oayldID0gdHJhbnNmb3JtT2JqZWN0S2V5cyh2LCB0cmFuc2Zvcm0sIGNoaWxkRXhjbHVkZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBhIGRpY3Rpb25hcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vVW5kZWZpbmVkPEE+KHhzOiBSZWNvcmQ8c3RyaW5nLCBBPik6IFJlY29yZDxzdHJpbmcsIE5vbk51bGxhYmxlPEE+PiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoeHMpLmZpbHRlcigoW18sIHZdKSA9PiB2ICE9PSB1bmRlZmluZWQpKSBhcyBhbnk7XG59XG4iXX0=",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parallelPromises = parallelPromises;\n/**\n * Run a number of promise generators with max parallelism\n *\n * Order is not maintained between the input and output.\n */\nasync function parallelPromises(n, promises) {\n const ret = new Array();\n let count = 0;\n let error;\n const queue = [...promises];\n return new Promise((ok, ko) => {\n tick();\n function tick() {\n if (count === 0 && error) {\n ko(error);\n return;\n }\n if (count === 0 && queue.length === 0) {\n ok(ret);\n return;\n }\n while (count < n && queue.length > 0 && !error) {\n const next = queue.shift();\n if (next !== undefined) {\n start(next);\n }\n }\n }\n function start(fn) {\n count += 1;\n fn()\n .then((result) => {\n ret.push(result);\n })\n .catch((e) => {\n error = e;\n })\n .finally(() => {\n count -= 1;\n tick();\n });\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJhbGxlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLDRDQTBDQztBQS9DRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUFJLENBQVMsRUFBRSxRQUFpQztJQUNwRixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBSyxDQUFDO0lBQzNCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksS0FBd0IsQ0FBQztJQUM3QixNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUM1QixJQUFJLEVBQUUsQ0FBQztRQUVQLFNBQVMsSUFBSTtZQUNYLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNWLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDUixPQUFPO1lBQ1QsQ0FBQztZQUVELE9BQU8sS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMvQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsU0FBUyxLQUFLLENBQUMsRUFBb0I7WUFDakMsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNYLEVBQUUsRUFBRTtpQkFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDO2lCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDWCxJQUFJLEVBQUUsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnVuIGEgbnVtYmVyIG9mIHByb21pc2UgZ2VuZXJhdG9ycyB3aXRoIG1heCBwYXJhbGxlbGlzbVxuICpcbiAqIE9yZGVyIGlzIG5vdCBtYWludGFpbmVkIGJldHdlZW4gdGhlIGlucHV0IGFuZCBvdXRwdXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJhbGxlbFByb21pc2VzPEE+KG46IG51bWJlciwgcHJvbWlzZXM6IEFycmF5PCgpID0+IFByb21pc2U8QT4+KTogUHJvbWlzZTxBcnJheTxBPj4ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8QT4oKTtcbiAgbGV0IGNvdW50ID0gMDtcbiAgbGV0IGVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgY29uc3QgcXVldWUgPSBbLi4ucHJvbWlzZXNdO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGtvKSA9PiB7XG4gICAgdGljaygpO1xuXG4gICAgZnVuY3Rpb24gdGljaygpIHtcbiAgICAgIGlmIChjb3VudCA9PT0gMCAmJiBlcnJvcikge1xuICAgICAgICBrbyhlcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChjb3VudCA9PT0gMCAmJiBxdWV1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgb2socmV0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoY291bnQgPCBuICYmIHF1ZXVlLmxlbmd0aCA+IDAgJiYgIWVycm9yKSB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBxdWV1ZS5zaGlmdCgpO1xuICAgICAgICBpZiAobmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3RhcnQobmV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdGFydChmbjogKCkgPT4gUHJvbWlzZTxBPikge1xuICAgICAgY291bnQgKz0gMTtcbiAgICAgIGZuKClcbiAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJldC5wdXNoKHJlc3VsdCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIGVycm9yID0gZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIGNvdW50IC09IDE7XG4gICAgICAgICAgdGljaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.promiseWithResolvers = promiseWithResolvers;\n/**\n * A backport of Promiser.withResolvers\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers\n */\nfunction promiseWithResolvers() {\n let resolve, reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve: resolve, reject: reject };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9taXNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLG9EQU9DO0FBWkQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQjtJQUNsQyxJQUFJLE9BQTBDLEVBQUUsTUFBd0MsQ0FBQztJQUN6RixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMxQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ2QsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBUSxFQUFFLE1BQU0sRUFBRSxNQUFPLEVBQUUsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGJhY2twb3J0IG9mIFByb21pc2VyLndpdGhSZXNvbHZlcnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1Byb21pc2Uvd2l0aFJlc29sdmVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvbWlzZVdpdGhSZXNvbHZlcnM8QT4oKTogUHJvbWlzZUFuZFJlc29sdmVyczxBPiB7XG4gIGxldCByZXNvbHZlOiBQcm9taXNlQW5kUmVzb2x2ZXJzPEE+WydyZXNvbHZlJ10sIHJlamVjdDogUHJvbWlzZUFuZFJlc29sdmVyczxBPlsncmVqZWN0J107XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxBPigocmVzLCByZWopID0+IHtcbiAgICByZXNvbHZlID0gcmVzO1xuICAgIHJlamVjdCA9IHJlajtcbiAgfSk7XG4gIHJldHVybiB7IHByb21pc2UsIHJlc29sdmU6IHJlc29sdmUhLCByZWplY3Q6IHJlamVjdCEgfTtcbn1cblxuaW50ZXJmYWNlIFByb21pc2VBbmRSZXNvbHZlcnM8QT4ge1xuICBwcm9taXNlOiBQcm9taXNlPEE+O1xuICByZXNvbHZlOiAodmFsdWU6IEEpID0+IHZvaWQ7XG4gIHJlamVjdDogKHJlYXNvbjogYW55KSA9PiB2b2lkO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toYAML = toYAML;\nexports.deserializeStructure = deserializeStructure;\nexports.serializeStructure = serializeStructure;\nexports.loadStructuredFile = loadStructuredFile;\nexports.obscureTemplate = obscureTemplate;\nexports.replacerBufferWithInfo = replacerBufferWithInfo;\nconst fs = require(\"fs/promises\");\nconst bytes_1 = require(\"./bytes\");\nconst yaml_cfn = require(\"./yaml-cfn\");\n/**\n * Stringify to YAML\n */\nfunction toYAML(obj) {\n return yaml_cfn.serialize(obj);\n}\n/**\n * Parse either YAML or JSON\n */\nfunction deserializeStructure(str) {\n return yaml_cfn.deserialize(str);\n}\n/**\n * Serialize to either YAML or JSON\n */\nfunction serializeStructure(object, json) {\n if (json) {\n return JSON.stringify(object, undefined, 2);\n }\n else {\n return toYAML(object);\n }\n}\n/**\n * Load a YAML or JSON file from disk\n */\nasync function loadStructuredFile(fileName) {\n const contents = await fs.readFile(fileName, { encoding: 'utf-8' });\n return deserializeStructure(contents);\n}\n/**\n * Remove any template elements that we don't want to show users.\n */\nfunction obscureTemplate(template = {}) {\n if (template.Rules) {\n // see https://github.com/aws/aws-cdk/issues/17942\n if (template.Rules.CheckBootstrapVersion) {\n if (Object.keys(template.Rules).length > 1) {\n delete template.Rules.CheckBootstrapVersion;\n }\n else {\n delete template.Rules;\n }\n }\n }\n return template;\n}\n/**\n * Detects a buffer that has been converted to a JSON-like object\n * In Node, `Buffer`s have `toJSON()` method that converts the buffer\n * into a JS object that can be JSON stringified.\n * Unfortunately this conversion happens before the replacer is called,\n * so normal means of detecting a `Buffer` objet don't work anymore.\n * @see https://github.com/nodejs/node-v0.x-archive/issues/5110\n */\nfunction isJsonBuffer(value) {\n return typeof value === 'object'\n && 'type' in value\n && value.type === 'Buffer'\n && 'data' in value\n && Array.isArray(value.data);\n}\n/**\n * A JSON.stringify() replacer that converts Buffers into a string with information\n * Use this if you plan to print out JSON stringified objects that may contain a Buffer.\n * Without this, large buffers (think: Megabytes) will completely fill up the output\n * and even crash the system.\n */\nfunction replacerBufferWithInfo(_key, value) {\n if (isJsonBuffer(value)) {\n return ``;\n }\n return value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esd0JBRUM7QUFLRCxvREFFQztBQUtELGdEQU1DO0FBS0QsZ0RBR0M7QUFLRCwwQ0FhQztBQTJCRCx3REFLQztBQXJGRCxrQ0FBa0M7QUFDbEMsbUNBQXNDO0FBQ3RDLHVDQUF1QztBQUV2Qzs7R0FFRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxHQUFRO0lBQzdCLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxHQUFXO0lBQzlDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxNQUFXLEVBQUUsSUFBYTtJQUMzRCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWdCO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwRSxPQUFPLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxXQUFnQixFQUFFO0lBQ2hELElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLGtEQUFrRDtRQUNsRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1lBQzlDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFVO0lBSTlCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUTtXQUMzQixNQUFNLElBQUksS0FBSztXQUNmLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtXQUN2QixNQUFNLElBQUksS0FBSztXQUNmLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLElBQVMsRUFBRSxLQUFVO0lBQzFELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxZQUFZLElBQUEsbUJBQVcsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCB7IGZvcm1hdEJ5dGVzIH0gZnJvbSAnLi9ieXRlcyc7XG5pbXBvcnQgKiBhcyB5YW1sX2NmbiBmcm9tICcuL3lhbWwtY2ZuJztcblxuLyoqXG4gKiBTdHJpbmdpZnkgdG8gWUFNTFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9ZQU1MKG9iajogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHlhbWxfY2ZuLnNlcmlhbGl6ZShvYmopO1xufVxuXG4vKipcbiAqIFBhcnNlIGVpdGhlciBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplU3RydWN0dXJlKHN0cjogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHlhbWxfY2ZuLmRlc2VyaWFsaXplKHN0cik7XG59XG5cbi8qKlxuICogU2VyaWFsaXplIHRvIGVpdGhlciBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVN0cnVjdHVyZShvYmplY3Q6IGFueSwganNvbjogYm9vbGVhbikge1xuICBpZiAoanNvbikge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgMik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRvWUFNTChvYmplY3QpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZCBhIFlBTUwgb3IgSlNPTiBmaWxlIGZyb20gZGlza1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN0cnVjdHVyZWRGaWxlKGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlTmFtZSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgcmV0dXJuIGRlc2VyaWFsaXplU3RydWN0dXJlKGNvbnRlbnRzKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYW55IHRlbXBsYXRlIGVsZW1lbnRzIHRoYXQgd2UgZG9uJ3Qgd2FudCB0byBzaG93IHVzZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb2JzY3VyZVRlbXBsYXRlKHRlbXBsYXRlOiBhbnkgPSB7fSkge1xuICBpZiAodGVtcGxhdGUuUnVsZXMpIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNzk0MlxuICAgIGlmICh0ZW1wbGF0ZS5SdWxlcy5DaGVja0Jvb3RzdHJhcFZlcnNpb24pIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyh0ZW1wbGF0ZS5SdWxlcykubGVuZ3RoID4gMSkge1xuICAgICAgICBkZWxldGUgdGVtcGxhdGUuUnVsZXMuQ2hlY2tCb290c3RyYXBWZXJzaW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHRlbXBsYXRlLlJ1bGVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZW1wbGF0ZTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIGEgYnVmZmVyIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgSlNPTi1saWtlIG9iamVjdFxuICogSW4gTm9kZSwgYEJ1ZmZlcmBzIGhhdmUgYHRvSlNPTigpYCBtZXRob2QgdGhhdCBjb252ZXJ0cyB0aGUgYnVmZmVyXG4gKiBpbnRvIGEgSlMgb2JqZWN0IHRoYXQgY2FuIGJlIEpTT04gc3RyaW5naWZpZWQuXG4gKiBVbmZvcnR1bmF0ZWx5IHRoaXMgY29udmVyc2lvbiBoYXBwZW5zIGJlZm9yZSB0aGUgcmVwbGFjZXIgaXMgY2FsbGVkLFxuICogc28gbm9ybWFsIG1lYW5zIG9mIGRldGVjdGluZyBhIGBCdWZmZXJgIG9iamV0IGRvbid0IHdvcmsgYW55bW9yZS5cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlLXYwLngtYXJjaGl2ZS9pc3N1ZXMvNTExMFxuICovXG5mdW5jdGlvbiBpc0pzb25CdWZmZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIHtcbiAgdHlwZTogJ0J1ZmZlcic7XG4gIGRhdGE6IG51bWJlcltdO1xufSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG4gICAgJiYgJ3R5cGUnIGluIHZhbHVlXG4gICAgJiYgdmFsdWUudHlwZSA9PT0gJ0J1ZmZlcidcbiAgICAmJiAnZGF0YScgaW4gdmFsdWVcbiAgICAmJiBBcnJheS5pc0FycmF5KHZhbHVlLmRhdGEpO1xufVxuXG4vKipcbiAqIEEgSlNPTi5zdHJpbmdpZnkoKSByZXBsYWNlciB0aGF0IGNvbnZlcnRzIEJ1ZmZlcnMgaW50byBhIHN0cmluZyB3aXRoIGluZm9ybWF0aW9uXG4gKiBVc2UgdGhpcyBpZiB5b3UgcGxhbiB0byBwcmludCBvdXQgSlNPTiBzdHJpbmdpZmllZCBvYmplY3RzIHRoYXQgbWF5IGNvbnRhaW4gYSBCdWZmZXIuXG4gKiBXaXRob3V0IHRoaXMsIGxhcmdlIGJ1ZmZlcnMgKHRoaW5rOiBNZWdhYnl0ZXMpIHdpbGwgY29tcGxldGVseSBmaWxsIHVwIHRoZSBvdXRwdXRcbiAqIGFuZCBldmVuIGNyYXNoIHRoZSBzeXN0ZW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlckJ1ZmZlcldpdGhJbmZvKF9rZXk6IGFueSwgdmFsdWU6IGFueSk6IGFueSB7XG4gIGlmIChpc0pzb25CdWZmZXIodmFsdWUpKSB7XG4gICAgcmV0dXJuIGA8QnVmZmVyOiAke2Zvcm1hdEJ5dGVzKHZhbHVlLmRhdGEubGVuZ3RoKX0+YDtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.equalSets = equalSets;\nexports.setDiff = setDiff;\n/**\n * Are two sets equal to each other\n */\nfunction equalSets(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const x of a) {\n if (!b.has(x)) {\n return false;\n }\n }\n return true;\n}\nfunction setDiff(a, b) {\n return new Set(Array.from(a).filter(x => !b.has(x)));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4QkFVQztBQUVELDBCQUVDO0FBakJEOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFJLENBQVMsRUFBRSxDQUFTO0lBQy9DLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLE9BQU8sQ0FBSSxDQUFTLEVBQUUsQ0FBUztJQUM3QyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcmUgdHdvIHNldHMgZXF1YWwgdG8gZWFjaCBvdGhlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxTZXRzPEE+KGE6IFNldDxBPiwgYjogU2V0PEE+KSB7XG4gIGlmIChhLnNpemUgIT09IGIuc2l6ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmb3IgKGNvbnN0IHggb2YgYSkge1xuICAgIGlmICghYi5oYXMoeCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXREaWZmPEE+KGE6IFNldDxBPiwgYjogU2V0PEE+KSB7XG4gIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20oYSkuZmlsdGVyKHggPT4gIWIuaGFzKHgpKSk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCI = isCI;\nexports.isTTY = isTTY;\n/**\n * Returns true if the current process is running in a CI environment\n * @returns true if the current process is running in a CI environment\n */\nfunction isCI() {\n return process.env.CI !== undefined && process.env.CI !== 'false' && process.env.CI !== '0';\n}\n/**\n * Returns true if the current process is running in a TTY environment\n * @returns true if the current process is running in a TTY environment\n */\nfunction isTTY() {\n return process.stdout.isTTY ?? false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2hlbGwtZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsb0JBRUM7QUFNRCxzQkFFQztBQWREOzs7R0FHRztBQUNILFNBQWdCLElBQUk7SUFDbEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQztBQUM5RixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsS0FBSztJQUNuQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBpcyBydW5uaW5nIGluIGEgQ0kgZW52aXJvbm1lbnRcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBpcyBydW5uaW5nIGluIGEgQ0kgZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ0koKTogYm9vbGVhbiB7XG4gIHJldHVybiBwcm9jZXNzLmVudi5DSSAhPT0gdW5kZWZpbmVkICYmIHByb2Nlc3MuZW52LkNJICE9PSAnZmFsc2UnICYmIHByb2Nlc3MuZW52LkNJICE9PSAnMCc7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IHByb2Nlc3MgaXMgcnVubmluZyBpbiBhIFRUWSBlbnZpcm9ubWVudFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBwcm9jZXNzIGlzIHJ1bm5pbmcgaW4gYSBUVFkgZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVFRZKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcy5zdGRvdXQuaXNUVFkgPz8gZmFsc2U7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.padLeft = padLeft;\nexports.padRight = padRight;\nexports.formatTime = formatTime;\nexports.lowerCaseFirstCharacter = lowerCaseFirstCharacter;\nexports.formatReason = formatReason;\n/**\n * Pad 's' on the left with 'char' until it is n characters wide\n */\nfunction padLeft(n, x, char = ' ') {\n return char.repeat(Math.max(0, n - x.length)) + x;\n}\n/**\n * Pad 's' on the right with 'char' until it is n characters wide\n */\nfunction padRight(n, x, char = ' ') {\n return x + char.repeat(Math.max(0, n - x.length));\n}\n/**\n * Formats time in milliseconds (which we get from 'Date.getTime()')\n * to a human-readable time; returns time in seconds rounded to 2\n * decimal places.\n */\nfunction formatTime(num) {\n return roundPercentage(millisecondsToSeconds(num));\n}\n/**\n * Rounds a decimal number to two decimal points.\n * The function is useful for fractions that need to be outputted as percentages.\n */\nfunction roundPercentage(num) {\n return Math.round(100 * num) / 100;\n}\n/**\n * Given a time in milliseconds, return an equivalent amount in seconds.\n */\nfunction millisecondsToSeconds(num) {\n return num / 1000;\n}\n/**\n * This function lower cases the first character of the string provided.\n */\nfunction lowerCaseFirstCharacter(str) {\n return str.length > 0 ? `${str[0].toLowerCase()}${str.slice(1)}` : str;\n}\n/**\n * Returns the provided reason or a default fallback message if the reason is undefined, null, or empty.\n * This is commonly used for AWS API responses that may not always provide a reason field.\n */\nfunction formatReason(reason, fallback = 'No reason provided') {\n return reason?.trim() || fallback;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLW1hbmlwdWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmluZy1tYW5pcHVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSwwQkFFQztBQUtELDRCQUVDO0FBT0QsZ0NBRUM7QUFvQkQsMERBRUM7QUFNRCxvQ0FFQztBQW5ERDs7R0FFRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLE9BQWUsR0FBRztJQUM5RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxPQUFlLEdBQUc7SUFDL0QsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixVQUFVLENBQUMsR0FBVztJQUNwQyxPQUFPLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxHQUFXO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMscUJBQXFCLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsR0FBVztJQUNqRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUN6RSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWlDLEVBQUUsV0FBbUIsb0JBQW9CO0lBQ3JHLE9BQU8sTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYWQgJ3MnIG9uIHRoZSBsZWZ0IHdpdGggJ2NoYXInIHVudGlsIGl0IGlzIG4gY2hhcmFjdGVycyB3aWRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWRMZWZ0KG46IG51bWJlciwgeDogc3RyaW5nLCBjaGFyOiBzdHJpbmcgPSAnICcpOiBzdHJpbmcge1xuICByZXR1cm4gY2hhci5yZXBlYXQoTWF0aC5tYXgoMCwgbiAtIHgubGVuZ3RoKSkgKyB4O1xufVxuXG4vKipcbiAqIFBhZCAncycgb24gdGhlIHJpZ2h0IHdpdGggJ2NoYXInIHVudGlsIGl0IGlzIG4gY2hhcmFjdGVycyB3aWRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWRSaWdodChuOiBudW1iZXIsIHg6IHN0cmluZywgY2hhcjogc3RyaW5nID0gJyAnKTogc3RyaW5nIHtcbiAgcmV0dXJuIHggKyBjaGFyLnJlcGVhdChNYXRoLm1heCgwLCBuIC0geC5sZW5ndGgpKTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIHRpbWUgaW4gbWlsbGlzZWNvbmRzICh3aGljaCB3ZSBnZXQgZnJvbSAnRGF0ZS5nZXRUaW1lKCknKVxuICogdG8gYSBodW1hbi1yZWFkYWJsZSB0aW1lOyByZXR1cm5zIHRpbWUgaW4gc2Vjb25kcyByb3VuZGVkIHRvIDJcbiAqIGRlY2ltYWwgcGxhY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZShudW06IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiByb3VuZFBlcmNlbnRhZ2UobWlsbGlzZWNvbmRzVG9TZWNvbmRzKG51bSkpO1xufVxuXG4vKipcbiAqIFJvdW5kcyBhIGRlY2ltYWwgbnVtYmVyIHRvIHR3byBkZWNpbWFsIHBvaW50cy5cbiAqIFRoZSBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIGZyYWN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgb3V0cHV0dGVkIGFzIHBlcmNlbnRhZ2VzLlxuICovXG5mdW5jdGlvbiByb3VuZFBlcmNlbnRhZ2UobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5yb3VuZCgxMDAgKiBudW0pIC8gMTAwO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgdGltZSBpbiBtaWxsaXNlY29uZHMsIHJldHVybiBhbiBlcXVpdmFsZW50IGFtb3VudCBpbiBzZWNvbmRzLlxuICovXG5mdW5jdGlvbiBtaWxsaXNlY29uZHNUb1NlY29uZHMobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gbnVtIC8gMTAwMDtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGxvd2VyIGNhc2VzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvd2VyQ2FzZUZpcnN0Q2hhcmFjdGVyKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5sZW5ndGggPiAwID8gYCR7c3RyWzBdLnRvTG93ZXJDYXNlKCl9JHtzdHIuc2xpY2UoMSl9YCA6IHN0cjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwcm92aWRlZCByZWFzb24gb3IgYSBkZWZhdWx0IGZhbGxiYWNrIG1lc3NhZ2UgaWYgdGhlIHJlYXNvbiBpcyB1bmRlZmluZWQsIG51bGwsIG9yIGVtcHR5LlxuICogVGhpcyBpcyBjb21tb25seSB1c2VkIGZvciBBV1MgQVBJIHJlc3BvbnNlcyB0aGF0IG1heSBub3QgYWx3YXlzIHByb3ZpZGUgYSByZWFzb24gZmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWFzb24ocmVhc29uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLCBmYWxsYmFjazogc3RyaW5nID0gJ05vIHJlYXNvbiBwcm92aWRlZCcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVhc29uPy50cmltKCkgfHwgZmFsbGJhY2s7XG59XG4iXX0=","\"use strict\";\n/**\n * Type branding\n *\n * This allows marking certain types as having gone through particular operations.\n *\n * Branded types can be used anywhere the base type is expected, but the base type\n * cannot be used where a branded type is expected; the values have to go through\n * a type assertion operation to confirm their brand.\n *\n * Usage:\n *\n * ```\n * type ValidatedString = Branded;\n *\n * function validate(x: string): asserts x is ValidatedString {\n * // ... throw an error if not\n * }\n *\n * function isValid(x: string): x is ValidatedString {\n * // ... throw an error if not\n * }\n * ```\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBranded = createBranded;\n/**\n * Marks a value as being branded a certain way.\n *\n * You should in general avoid calling this, and use validation or\n * asserting functions instead. However, this can be useful to produce\n * values which are branded by construction (really just an elaborate\n * way to write 'as').\n */\n/* c8 ignore start */\nfunction createBranded(value) {\n return value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1icmFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLWJyYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7O0FBa0JILHNDQUVDO0FBWEQ7Ozs7Ozs7R0FPRztBQUNILHFCQUFxQjtBQUNyQixTQUFnQixhQUFhLENBQThCLEtBQTZCO0lBQ3RGLE9BQU8sS0FBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUgYnJhbmRpbmdcbiAqXG4gKiBUaGlzIGFsbG93cyBtYXJraW5nIGNlcnRhaW4gdHlwZXMgYXMgaGF2aW5nIGdvbmUgdGhyb3VnaCBwYXJ0aWN1bGFyIG9wZXJhdGlvbnMuXG4gKlxuICogQnJhbmRlZCB0eXBlcyBjYW4gYmUgdXNlZCBhbnl3aGVyZSB0aGUgYmFzZSB0eXBlIGlzIGV4cGVjdGVkLCBidXQgdGhlIGJhc2UgdHlwZVxuICogY2Fubm90IGJlIHVzZWQgd2hlcmUgYSBicmFuZGVkIHR5cGUgaXMgZXhwZWN0ZWQ7IHRoZSB2YWx1ZXMgaGF2ZSB0byBnbyB0aHJvdWdoXG4gKiBhIHR5cGUgYXNzZXJ0aW9uIG9wZXJhdGlvbiB0byBjb25maXJtIHRoZWlyIGJyYW5kLlxuICpcbiAqIFVzYWdlOlxuICpcbiAqIGBgYFxuICogdHlwZSBWYWxpZGF0ZWRTdHJpbmcgPSBCcmFuZGVkPHN0cmluZywgJ1Bhc3NlZE15VmFsaWRhdGlvbic+O1xuICpcbiAqIGZ1bmN0aW9uIHZhbGlkYXRlKHg6IHN0cmluZyk6IGFzc2VydHMgeCBpcyBWYWxpZGF0ZWRTdHJpbmcge1xuICogICAvLyAuLi4gdGhyb3cgYW4gZXJyb3IgaWYgbm90XG4gKiB9XG4gKlxuICogZnVuY3Rpb24gaXNWYWxpZCh4OiBzdHJpbmcpOiB4IGlzIFZhbGlkYXRlZFN0cmluZyB7XG4gKiAgIC8vIC4uLiB0aHJvdyBhbiBlcnJvciBpZiBub3RcbiAqIH1cbiAqIGBgYFxuICovXG5cbi8vIFRoaXMgY29uc3RydWN0IHB1cmVseSBoYXBwZW5zIGF0IHR5cGUgY2hlY2tpbmcgdGltZS4gVGhlcmUgaXMgbm8gcnVuLXRpbWUgaW1wYWN0LlxuLy8gSGVuY2UsIHdlIG5ldmVyIGV2ZW4gaGF2ZSB0byBjb25zdHJ1Y3QgdmFsdWVzIG9mIHRoaXMgdHlwZS5cbmRlY2xhcmUgY29uc3QgX19icmFuZDogdW5pcXVlIHN5bWJvbDtcblxuZXhwb3J0IHR5cGUgQnJhbmQ8Qj4gPSB7IFtfX2JyYW5kXTogQiB9O1xuZXhwb3J0IHR5cGUgQnJhbmRlZDxULCBCPiA9IFQgJiBCcmFuZDxCPjtcblxuLyoqXG4gKiBNYXJrcyBhIHZhbHVlIGFzIGJlaW5nIGJyYW5kZWQgYSBjZXJ0YWluIHdheS5cbiAqXG4gKiBZb3Ugc2hvdWxkIGluIGdlbmVyYWwgYXZvaWQgY2FsbGluZyB0aGlzLCBhbmQgdXNlIHZhbGlkYXRpb24gb3JcbiAqIGFzc2VydGluZyBmdW5jdGlvbnMgaW5zdGVhZC4gSG93ZXZlciwgdGhpcyBjYW4gYmUgdXNlZnVsIHRvIHByb2R1Y2VcbiAqIHZhbHVlcyB3aGljaCBhcmUgYnJhbmRlZCBieSBjb25zdHJ1Y3Rpb24gKHJlYWxseSBqdXN0IGFuIGVsYWJvcmF0ZVxuICogd2F5IHRvIHdyaXRlICdhcycpLlxuICovXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCcmFuZGVkPEEgZXh0ZW5kcyBCcmFuZGVkPGFueSwgYW55Pj4odmFsdWU6IFR5cGVVbmRlcmx5aW5nQnJhbmQ8QT4pOiBBIHtcbiAgcmV0dXJuIHZhbHVlIGFzIEE7XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG50eXBlIFR5cGVVbmRlcmx5aW5nQnJhbmQ8QT4gPSBBIGV4dGVuZHMgQnJhbmRlZDxpbmZlciBULCBhbnk+ID8gVCA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArray = void 0;\nexports.isObject = isObject;\nexports.ifDefined = ifDefined;\n/**\n * Return whether the given value is an object\n *\n * Even though arrays technically are objects, we usually want to treat them differently,\n * so we return false in those cases.\n */\nfunction isObject(x) {\n return x !== null && typeof x === 'object' && !(0, exports.isArray)(x);\n}\n/**\n * Return whether the given value is an array\n */\nexports.isArray = Array.isArray;\n/**\n * Return the value of the first argument if it's not undefined, otherwise the default\n */\nfunction ifDefined(x, def) {\n return typeof x !== 'undefined' ? x : def;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsNEJBRUM7QUFVRCw4QkFFQztBQXBCRDs7Ozs7R0FLRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGVBQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBRXJDOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFJLENBQWdCLEVBQUUsR0FBTTtJQUNuRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZSBvZiBhIG1hcCBtYXBwaW5nIHN0cmluZ3MgdG8gc29tZSBhcmJpdHJhcnkgdHlwZVxuICpcbiAqIE5hbWUgaXMgbm90IGlkZWFsLCBidXQ6XG4gKlxuICogLSBDYW5ub3QgY2FsbCBpdCBPYmplY3QsIHRoYXQgYWxyZWFkeSBtZWFucyBzb21ldGhpbmcuXG4gKiAtIENhbm5vdCBjYWxsIGl0IERpY3Qgb3IgRGljdGlvbmFyeSwgc2luY2UgaW4gb3RoZXIgbGFuZ3VhZ2VzXG4gKiAgIHRob3NlIGFsc28gYWxsb3cgc3BlY2lmeWluZyB0aGUga2V5IHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIE9iajxUPiA9IHsgW2tleTogc3RyaW5nXTogVCB9O1xuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBvYmplY3RcbiAqXG4gKiBFdmVuIHRob3VnaCBhcnJheXMgdGVjaG5pY2FsbHkgYXJlIG9iamVjdHMsIHdlIHVzdWFsbHkgd2FudCB0byB0cmVhdCB0aGVtIGRpZmZlcmVudGx5LFxuICogc28gd2UgcmV0dXJuIGZhbHNlIGluIHRob3NlIGNhc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoeDogYW55KTogeCBpcyBPYmo8YW55PiB7XG4gIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAhaXNBcnJheSh4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IGlmIGl0J3Mgbm90IHVuZGVmaW5lZCwgb3RoZXJ3aXNlIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZkRlZmluZWQ8VD4oeDogVCB8IHVuZGVmaW5lZCwgZGVmOiBUKTogVCB7XG4gIHJldHVybiB0eXBlb2YgeCAhPT0gJ3VuZGVmaW5lZCcgPyB4IDogZGVmO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rangeFromSemver = rangeFromSemver;\nexports.stripCaret = stripCaret;\nconst semver = require(\"semver\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nfunction rangeFromSemver(ver, targetType) {\n const re = ver.match(/^([^\\d]*)([\\d.]*)[^\\s]*$/);\n if (!re || !semver.valid(re[2])) {\n throw new toolkit_error_1.ToolkitError('InvalidSemverRange', 'not a semver or unsupported range syntax');\n }\n const prefixPart = re[1];\n const verPart = re[2];\n switch (targetType) {\n // NuGet normally installs the lowest version in the range\n // That's okay for aws-cdk-lib where we always specify the lowest version\n // For constructs, we rather want people to use the highest version\n // The only way to do this is to specify this as .*\n // see https://learn.microsoft.com/en-us/nuget/concepts/package-versioning\n case 'major.*':\n switch (prefixPart) {\n case '':\n // if there's no prefix and the remaining is a valid semver, there's no range specified\n return ver;\n case '^':\n return `${semver.major(verPart)}.*`;\n default:\n throw new toolkit_error_1.ToolkitError('UnsupportedRangeSyntax', `unsupported range syntax - ${prefixPart}`);\n }\n case 'bracket':\n switch (prefixPart) {\n case '':\n // if there's no prefix and the remaining is a valid semver, there's no range specified\n return ver;\n case '^':\n return `[${verPart},${semver.major(verPart) + 1}.0.0)`;\n default:\n throw new toolkit_error_1.ToolkitError('UnsupportedRangeSyntax', `unsupported range syntax - ${prefixPart}`);\n }\n case 'pep':\n switch (prefixPart) {\n case '':\n // if there's no prefix and the remaining is a valid semver, there's no range specified\n return `==${ver}`;\n case '^':\n return `>=${verPart},<${semver.major(verPart) + 1}.0.0`;\n default:\n throw new toolkit_error_1.ToolkitError('UnsupportedRangeSyntax', `unsupported range syntax - ${prefixPart}`);\n }\n }\n}\n/**\n * Strips a leading caret ^, if present\n */\nfunction stripCaret(ver) {\n return ver.startsWith('^') ? ver.slice(1) : ver;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24tcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSwwQ0E2Q0M7QUFLRCxnQ0FFQztBQTNERCxpQ0FBaUM7QUFDakMsNERBQXdEO0FBTXhELFNBQWdCLGVBQWUsQ0FBQyxHQUFXLEVBQUUsVUFBcUI7SUFDaEUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLDRCQUFZLENBQUMsb0JBQW9CLEVBQUUsMENBQTBDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0QixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLDBEQUEwRDtRQUMxRCx5RUFBeUU7UUFDekUsbUVBQW1FO1FBQ25FLDBEQUEwRDtRQUMxRCwwRUFBMEU7UUFDMUUsS0FBSyxTQUFTO1lBQ1osUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsS0FBSyxHQUFHO29CQUNOLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDO29CQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHdCQUF3QixFQUFFLDhCQUE4QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ2pHLENBQUM7UUFDSCxLQUFLLFNBQVM7WUFDWixRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLEVBQUU7b0JBQ0wsdUZBQXVGO29CQUN2RixPQUFPLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUc7b0JBQ04sT0FBTyxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsRUFBRSw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNqRyxDQUFDO1FBQ0gsS0FBSyxLQUFLO1lBQ1IsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLE9BQU8sS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsRUFBRSw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNqRyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8vIGJyYWNrZXQgLSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9taWRkbGV3YXJlLzEyMTIvY29yZS9NQVZFTi9tYXZlbl92ZXJzaW9uLmh0bSNNQVZFTjQwMVxuLy8gcGVwIC0gaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8jdmVyc2lvbi1zcGVjaWZpZXJzXG5leHBvcnQgdHlwZSBSYW5nZVR5cGUgPSAnYnJhY2tldCcgfCAnbWFqb3IuKicgfCAncGVwJyA7XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5nZUZyb21TZW12ZXIodmVyOiBzdHJpbmcsIHRhcmdldFR5cGU6IFJhbmdlVHlwZSkge1xuICBjb25zdCByZSA9IHZlci5tYXRjaCgvXihbXlxcZF0qKShbXFxkLl0qKVteXFxzXSokLyk7XG4gIGlmICghcmUgfHwgIXNlbXZlci52YWxpZChyZVsyXSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbnZhbGlkU2VtdmVyUmFuZ2UnLCAnbm90IGEgc2VtdmVyIG9yIHVuc3VwcG9ydGVkIHJhbmdlIHN5bnRheCcpO1xuICB9XG4gIGNvbnN0IHByZWZpeFBhcnQgPSByZVsxXTtcbiAgY29uc3QgdmVyUGFydCA9IHJlWzJdO1xuXG4gIHN3aXRjaCAodGFyZ2V0VHlwZSkge1xuICAgIC8vIE51R2V0IG5vcm1hbGx5IGluc3RhbGxzIHRoZSBsb3dlc3QgdmVyc2lvbiBpbiB0aGUgcmFuZ2VcbiAgICAvLyBUaGF0J3Mgb2theSBmb3IgYXdzLWNkay1saWIgd2hlcmUgd2UgYWx3YXlzIHNwZWNpZnkgdGhlIGxvd2VzdCB2ZXJzaW9uXG4gICAgLy8gRm9yIGNvbnN0cnVjdHMsIHdlIHJhdGhlciB3YW50IHBlb3BsZSB0byB1c2UgdGhlIGhpZ2hlc3QgdmVyc2lvblxuICAgIC8vIFRoZSBvbmx5IHdheSB0byBkbyB0aGlzIGlzIHRvIHNwZWNpZnkgdGhpcyBhcyA8TUFKT1I+LipcbiAgICAvLyBzZWUgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL251Z2V0L2NvbmNlcHRzL3BhY2thZ2UtdmVyc2lvbmluZ1xuICAgIGNhc2UgJ21ham9yLionOlxuICAgICAgc3dpdGNoIChwcmVmaXhQYXJ0KSB7XG4gICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBwcmVmaXggYW5kIHRoZSByZW1haW5pbmcgaXMgYSB2YWxpZCBzZW12ZXIsIHRoZXJlJ3Mgbm8gcmFuZ2Ugc3BlY2lmaWVkXG4gICAgICAgICAgcmV0dXJuIHZlcjtcbiAgICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgcmV0dXJuIGAke3NlbXZlci5tYWpvcih2ZXJQYXJ0KX0uKmA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5zdXBwb3J0ZWRSYW5nZVN5bnRheCcsIGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gICAgY2FzZSAnYnJhY2tldCc6XG4gICAgICBzd2l0Y2ggKHByZWZpeFBhcnQpIHtcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAvLyBpZiB0aGVyZSdzIG5vIHByZWZpeCBhbmQgdGhlIHJlbWFpbmluZyBpcyBhIHZhbGlkIHNlbXZlciwgdGhlcmUncyBubyByYW5nZSBzcGVjaWZpZWRcbiAgICAgICAgICByZXR1cm4gdmVyO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICByZXR1cm4gYFske3ZlclBhcnR9LCR7c2VtdmVyLm1ham9yKHZlclBhcnQpKzF9LjAuMClgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Vuc3VwcG9ydGVkUmFuZ2VTeW50YXgnLCBgdW5zdXBwb3J0ZWQgcmFuZ2Ugc3ludGF4IC0gJHtwcmVmaXhQYXJ0fWApO1xuICAgICAgfVxuICAgIGNhc2UgJ3BlcCc6XG4gICAgICBzd2l0Y2ggKHByZWZpeFBhcnQpIHtcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAvLyBpZiB0aGVyZSdzIG5vIHByZWZpeCBhbmQgdGhlIHJlbWFpbmluZyBpcyBhIHZhbGlkIHNlbXZlciwgdGhlcmUncyBubyByYW5nZSBzcGVjaWZpZWRcbiAgICAgICAgICByZXR1cm4gYD09JHt2ZXJ9YDtcbiAgICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgcmV0dXJuIGA+PSR7dmVyUGFydH0sPCR7c2VtdmVyLm1ham9yKHZlclBhcnQpKzF9LjAuMGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5zdXBwb3J0ZWRSYW5nZVN5bnRheCcsIGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTdHJpcHMgYSBsZWFkaW5nIGNhcmV0IF4sIGlmIHByZXNlbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQ2FyZXQodmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmVyLnN0YXJ0c1dpdGgoJ14nKSA/IHZlci5zbGljZSgxKSA6IHZlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serialize = serialize;\nexports.deserialize = deserialize;\nconst yaml = require(\"yaml\");\nconst yaml_types = require(\"yaml/types\");\n/**\n * Serializes the given data structure into valid YAML.\n *\n * @param obj - the data structure to serialize\n * @returns a string containing the YAML representation of {@param obj}\n */\nfunction serialize(obj) {\n const oldFold = yaml_types.strOptions.fold.lineWidth;\n try {\n yaml_types.strOptions.fold.lineWidth = 0;\n return yaml.stringify(obj, { schema: 'yaml-1.1' });\n }\n finally {\n yaml_types.strOptions.fold.lineWidth = oldFold;\n }\n}\n/**\n * Deserialize the YAML into the appropriate data structure.\n *\n * @param str - the string containing YAML\n * @returns the data structure the YAML represents\n * (most often in case of CloudFormation, an object)\n */\nfunction deserialize(str) {\n return parseYamlStrWithCfnTags(str);\n}\nfunction makeTagForCfnIntrinsic(intrinsicName, addFnPrefix) {\n return {\n identify(value) {\n return typeof value === 'string';\n },\n tag: `!${intrinsicName}`,\n resolve: (_doc, cstNode) => {\n const ret = {};\n ret[addFnPrefix ? `Fn::${intrinsicName}` : intrinsicName] =\n // the +1 is to account for the ! the short form begins with\n parseYamlStrWithCfnTags(cstNode.toString().substring(intrinsicName.length + 1));\n return ret;\n },\n };\n}\nconst shortForms = [\n 'Base64', 'Cidr', 'FindInMap', 'GetAZs', 'ImportValue', 'Join', 'Sub',\n 'Select', 'Split', 'Transform', 'And', 'Equals', 'If', 'Not', 'Or', 'GetAtt',\n].map(name => makeTagForCfnIntrinsic(name, true)).concat(makeTagForCfnIntrinsic('Ref', false), makeTagForCfnIntrinsic('Condition', false));\nfunction parseYamlStrWithCfnTags(text) {\n return yaml.parse(text, {\n customTags: shortForms,\n schema: 'core',\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC1jZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ5YW1sLWNmbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLDhCQVFDO0FBU0Qsa0NBRUM7QUE3QkQsNkJBQTZCO0FBRTdCLHlDQUF5QztBQUV6Qzs7Ozs7R0FLRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxHQUFRO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxJQUFJLENBQUM7UUFDSCxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO1lBQVMsQ0FBQztRQUNULFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDakQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixXQUFXLENBQUMsR0FBVztJQUNyQyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLGFBQXFCLEVBQUUsV0FBb0I7SUFDekUsT0FBTztRQUNMLFFBQVEsQ0FBQyxLQUFVO1lBQ2pCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO1FBQ25DLENBQUM7UUFDRCxHQUFHLEVBQUUsSUFBSSxhQUFhLEVBQUU7UUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBbUIsRUFBRSxPQUEwQixFQUFFLEVBQUU7WUFDM0QsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDdkQsNERBQTREO2dCQUM1RCx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFrQztJQUNoRCxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQ3JFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUTtDQUM3RSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDdEQsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUNwQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQzNDLENBQUM7QUFFRixTQUFTLHVCQUF1QixDQUFDLElBQVk7SUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtRQUN0QixVQUFVLEVBQUUsVUFBVTtRQUN0QixNQUFNLEVBQUUsTUFBTTtLQUNmLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHR5cGUgKiBhcyB5YW1sX2NzdCBmcm9tICd5YW1sL3BhcnNlLWNzdCc7XG5pbXBvcnQgKiBhcyB5YW1sX3R5cGVzIGZyb20gJ3lhbWwvdHlwZXMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIGRhdGEgc3RydWN0dXJlIGludG8gdmFsaWQgWUFNTC5cbiAqXG4gKiBAcGFyYW0gb2JqIC0gdGhlIGRhdGEgc3RydWN0dXJlIHRvIHNlcmlhbGl6ZVxuICogQHJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB7QHBhcmFtIG9ian1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShvYmo6IGFueSk6IHN0cmluZyB7XG4gIGNvbnN0IG9sZEZvbGQgPSB5YW1sX3R5cGVzLnN0ck9wdGlvbnMuZm9sZC5saW5lV2lkdGg7XG4gIHRyeSB7XG4gICAgeWFtbF90eXBlcy5zdHJPcHRpb25zLmZvbGQubGluZVdpZHRoID0gMDtcbiAgICByZXR1cm4geWFtbC5zdHJpbmdpZnkob2JqLCB7IHNjaGVtYTogJ3lhbWwtMS4xJyB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICB5YW1sX3R5cGVzLnN0ck9wdGlvbnMuZm9sZC5saW5lV2lkdGggPSBvbGRGb2xkO1xuICB9XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemUgdGhlIFlBTUwgaW50byB0aGUgYXBwcm9wcmlhdGUgZGF0YSBzdHJ1Y3R1cmUuXG4gKlxuICogQHBhcmFtIHN0ciAtIHRoZSBzdHJpbmcgY29udGFpbmluZyBZQU1MXG4gKiBAcmV0dXJucyB0aGUgZGF0YSBzdHJ1Y3R1cmUgdGhlIFlBTUwgcmVwcmVzZW50c1xuICogICAobW9zdCBvZnRlbiBpbiBjYXNlIG9mIENsb3VkRm9ybWF0aW9uLCBhbiBvYmplY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZShzdHI6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBwYXJzZVlhbWxTdHJXaXRoQ2ZuVGFncyhzdHIpO1xufVxuXG5mdW5jdGlvbiBtYWtlVGFnRm9yQ2ZuSW50cmluc2ljKGludHJpbnNpY05hbWU6IHN0cmluZywgYWRkRm5QcmVmaXg6IGJvb2xlYW4pOiB5YW1sX3R5cGVzLlNjaGVtYS5DdXN0b21UYWcge1xuICByZXR1cm4ge1xuICAgIGlkZW50aWZ5KHZhbHVlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xuICAgIH0sXG4gICAgdGFnOiBgISR7aW50cmluc2ljTmFtZX1gLFxuICAgIHJlc29sdmU6IChfZG9jOiB5YW1sLkRvY3VtZW50LCBjc3ROb2RlOiB5YW1sX2NzdC5DU1QuTm9kZSkgPT4ge1xuICAgICAgY29uc3QgcmV0OiBhbnkgPSB7fTtcbiAgICAgIHJldFthZGRGblByZWZpeCA/IGBGbjo6JHtpbnRyaW5zaWNOYW1lfWAgOiBpbnRyaW5zaWNOYW1lXSA9XG4gICAgICAgIC8vIHRoZSArMSBpcyB0byBhY2NvdW50IGZvciB0aGUgISB0aGUgc2hvcnQgZm9ybSBiZWdpbnMgd2l0aFxuICAgICAgICBwYXJzZVlhbWxTdHJXaXRoQ2ZuVGFncyhjc3ROb2RlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKGludHJpbnNpY05hbWUubGVuZ3RoICsgMSkpO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBzaG9ydEZvcm1zOiB5YW1sX3R5cGVzLlNjaGVtYS5DdXN0b21UYWdbXSA9IFtcbiAgJ0Jhc2U2NCcsICdDaWRyJywgJ0ZpbmRJbk1hcCcsICdHZXRBWnMnLCAnSW1wb3J0VmFsdWUnLCAnSm9pbicsICdTdWInLFxuICAnU2VsZWN0JywgJ1NwbGl0JywgJ1RyYW5zZm9ybScsICdBbmQnLCAnRXF1YWxzJywgJ0lmJywgJ05vdCcsICdPcicsICdHZXRBdHQnLFxuXS5tYXAobmFtZSA9PiBtYWtlVGFnRm9yQ2ZuSW50cmluc2ljKG5hbWUsIHRydWUpKS5jb25jYXQoXG4gIG1ha2VUYWdGb3JDZm5JbnRyaW5zaWMoJ1JlZicsIGZhbHNlKSxcbiAgbWFrZVRhZ0ZvckNmbkludHJpbnNpYygnQ29uZGl0aW9uJywgZmFsc2UpLFxuKTtcblxuZnVuY3Rpb24gcGFyc2VZYW1sU3RyV2l0aENmblRhZ3ModGV4dDogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHlhbWwucGFyc2UodGV4dCwge1xuICAgIGN1c3RvbVRhZ3M6IHNob3J0Rm9ybXMsXG4gICAgc2NoZW1hOiAnY29yZScsXG4gIH0pO1xufVxuIl19","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are prereleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If LT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n AwsCrc32.prototype.reset = function () {\n this.crc32 = new index_1.Crc32();\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n//# sourceMappingURL=aws_crc32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32c = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32c = /** @class */ (function () {\n function AwsCrc32c() {\n this.crc32c = new index_1.Crc32c();\n }\n AwsCrc32c.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32c.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32c.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32c.digest())];\n });\n });\n };\n AwsCrc32c.prototype.reset = function () {\n this.crc32c = new index_1.Crc32c();\n };\n return AwsCrc32c;\n}());\nexports.AwsCrc32c = AwsCrc32c;\n//# sourceMappingURL=aws_crc32c.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32c = exports.Crc32c = exports.crc32c = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32c(data) {\n return new Crc32c().update(data).digest();\n}\nexports.crc32c = crc32c;\nvar Crc32c = /** @class */ (function () {\n function Crc32c() {\n this.checksum = 0xffffffff;\n }\n Crc32c.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32c.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32c;\n}());\nexports.Crc32c = Crc32c;\n// prettier-ignore\nvar a_lookupTable = [\n 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookupTable);\nvar aws_crc32c_1 = require(\"./aws_crc32c\");\nObject.defineProperty(exports, \"AwsCrc32c\", { enumerable: true, get: function () { return aws_crc32c_1.AwsCrc32c; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_1 = require(\"@smithy/util-utf8\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=convertToBuffer.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=isEmptyData.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=numToUint8.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=uint32ArrayFrom.js.map","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n isArrayBuffer: () => isArrayBuffer\n});\nmodule.exports = __toCommonJS(src_exports);\nvar isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\", \"isArrayBuffer\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n isArrayBuffer\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromArrayBuffer: () => fromArrayBuffer,\n fromString: () => fromString\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\nvar import_buffer = require(\"buffer\");\nvar fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => {\n if (!(0, import_is_array_buffer.isArrayBuffer)(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return import_buffer.Buffer.from(input, offset, length);\n}, \"fromArrayBuffer\");\nvar fromString = /* @__PURE__ */ __name((input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input);\n}, \"fromString\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromArrayBuffer,\n fromString\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromUtf8: () => fromUtf8,\n toUint8Array: () => toUint8Array,\n toUtf8: () => toUtf8\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fromUtf8.ts\nvar import_util_buffer_from = require(\"@smithy/util-buffer-from\");\nvar fromUtf8 = /* @__PURE__ */ __name((input) => {\n const buf = (0, import_util_buffer_from.fromString)(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n}, \"fromUtf8\");\n\n// src/toUint8Array.ts\nvar toUint8Array = /* @__PURE__ */ __name((data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}, \"toUint8Array\");\n\n// src/toUtf8.ts\n\nvar toUtf8 = /* @__PURE__ */ __name((input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n}, \"toUtf8\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromUtf8,\n toUint8Array,\n toUtf8\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultAppSyncHttpAuthSchemeProvider = exports.defaultAppSyncHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultAppSyncHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultAppSyncHttpAuthSchemeParametersProvider = defaultAppSyncHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"appsync\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultAppSyncHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultAppSyncHttpAuthSchemeProvider = defaultAppSyncHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://appsync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://appsync-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://appsync.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://appsync.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n ApiCacheStatus: () => ApiCacheStatus,\n ApiCacheType: () => ApiCacheType,\n ApiCachingBehavior: () => ApiCachingBehavior,\n ApiKeyLimitExceededException: () => ApiKeyLimitExceededException,\n ApiKeyValidityOutOfBoundsException: () => ApiKeyValidityOutOfBoundsException,\n ApiLimitExceededException: () => ApiLimitExceededException,\n AppSync: () => AppSync,\n AppSyncClient: () => AppSyncClient,\n AppSyncServiceException: () => AppSyncServiceException,\n AssociateApiCommand: () => AssociateApiCommand,\n AssociateMergedGraphqlApiCommand: () => AssociateMergedGraphqlApiCommand,\n AssociateSourceGraphqlApiCommand: () => AssociateSourceGraphqlApiCommand,\n AssociationStatus: () => AssociationStatus,\n AuthenticationType: () => AuthenticationType,\n AuthorizationType: () => AuthorizationType,\n BadRequestException: () => BadRequestException,\n BadRequestReason: () => BadRequestReason,\n CacheHealthMetricsConfig: () => CacheHealthMetricsConfig,\n ConcurrentModificationException: () => ConcurrentModificationException,\n ConflictDetectionType: () => ConflictDetectionType,\n ConflictException: () => ConflictException,\n ConflictHandlerType: () => ConflictHandlerType,\n CreateApiCacheCommand: () => CreateApiCacheCommand,\n CreateApiCommand: () => CreateApiCommand,\n CreateApiKeyCommand: () => CreateApiKeyCommand,\n CreateChannelNamespaceCommand: () => CreateChannelNamespaceCommand,\n CreateDataSourceCommand: () => CreateDataSourceCommand,\n CreateDomainNameCommand: () => CreateDomainNameCommand,\n CreateFunctionCommand: () => CreateFunctionCommand,\n CreateGraphqlApiCommand: () => CreateGraphqlApiCommand,\n CreateResolverCommand: () => CreateResolverCommand,\n CreateTypeCommand: () => CreateTypeCommand,\n DataSourceIntrospectionStatus: () => DataSourceIntrospectionStatus,\n DataSourceLevelMetricsBehavior: () => DataSourceLevelMetricsBehavior,\n DataSourceLevelMetricsConfig: () => DataSourceLevelMetricsConfig,\n DataSourceType: () => DataSourceType,\n DefaultAction: () => DefaultAction,\n DeleteApiCacheCommand: () => DeleteApiCacheCommand,\n DeleteApiCommand: () => DeleteApiCommand,\n DeleteApiKeyCommand: () => DeleteApiKeyCommand,\n DeleteChannelNamespaceCommand: () => DeleteChannelNamespaceCommand,\n DeleteDataSourceCommand: () => DeleteDataSourceCommand,\n DeleteDomainNameCommand: () => DeleteDomainNameCommand,\n DeleteFunctionCommand: () => DeleteFunctionCommand,\n DeleteGraphqlApiCommand: () => DeleteGraphqlApiCommand,\n DeleteResolverCommand: () => DeleteResolverCommand,\n DeleteTypeCommand: () => DeleteTypeCommand,\n DisassociateApiCommand: () => DisassociateApiCommand,\n DisassociateMergedGraphqlApiCommand: () => DisassociateMergedGraphqlApiCommand,\n DisassociateSourceGraphqlApiCommand: () => DisassociateSourceGraphqlApiCommand,\n EvaluateCodeCommand: () => EvaluateCodeCommand,\n EvaluateMappingTemplateCommand: () => EvaluateMappingTemplateCommand,\n EventLogLevel: () => EventLogLevel,\n FieldLogLevel: () => FieldLogLevel,\n FlushApiCacheCommand: () => FlushApiCacheCommand,\n GetApiAssociationCommand: () => GetApiAssociationCommand,\n GetApiCacheCommand: () => GetApiCacheCommand,\n GetApiCommand: () => GetApiCommand,\n GetChannelNamespaceCommand: () => GetChannelNamespaceCommand,\n GetDataSourceCommand: () => GetDataSourceCommand,\n GetDataSourceIntrospectionCommand: () => GetDataSourceIntrospectionCommand,\n GetDomainNameCommand: () => GetDomainNameCommand,\n GetFunctionCommand: () => GetFunctionCommand,\n GetGraphqlApiCommand: () => GetGraphqlApiCommand,\n GetGraphqlApiEnvironmentVariablesCommand: () => GetGraphqlApiEnvironmentVariablesCommand,\n GetIntrospectionSchemaCommand: () => GetIntrospectionSchemaCommand,\n GetResolverCommand: () => GetResolverCommand,\n GetSchemaCreationStatusCommand: () => GetSchemaCreationStatusCommand,\n GetSourceApiAssociationCommand: () => GetSourceApiAssociationCommand,\n GetTypeCommand: () => GetTypeCommand,\n GraphQLApiIntrospectionConfig: () => GraphQLApiIntrospectionConfig,\n GraphQLApiType: () => GraphQLApiType,\n GraphQLApiVisibility: () => GraphQLApiVisibility,\n GraphQLSchemaException: () => GraphQLSchemaException,\n HandlerBehavior: () => HandlerBehavior,\n InternalFailureException: () => InternalFailureException,\n InvokeType: () => InvokeType,\n LimitExceededException: () => LimitExceededException,\n ListApiKeysCommand: () => ListApiKeysCommand,\n ListApisCommand: () => ListApisCommand,\n ListChannelNamespacesCommand: () => ListChannelNamespacesCommand,\n ListDataSourcesCommand: () => ListDataSourcesCommand,\n ListDomainNamesCommand: () => ListDomainNamesCommand,\n ListFunctionsCommand: () => ListFunctionsCommand,\n ListGraphqlApisCommand: () => ListGraphqlApisCommand,\n ListResolversByFunctionCommand: () => ListResolversByFunctionCommand,\n ListResolversCommand: () => ListResolversCommand,\n ListSourceApiAssociationsCommand: () => ListSourceApiAssociationsCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTypesByAssociationCommand: () => ListTypesByAssociationCommand,\n ListTypesCommand: () => ListTypesCommand,\n MergeType: () => MergeType,\n NotFoundException: () => NotFoundException,\n OperationLevelMetricsConfig: () => OperationLevelMetricsConfig,\n OutputType: () => OutputType,\n Ownership: () => Ownership,\n PutGraphqlApiEnvironmentVariablesCommand: () => PutGraphqlApiEnvironmentVariablesCommand,\n RelationalDatabaseSourceType: () => RelationalDatabaseSourceType,\n ResolverKind: () => ResolverKind,\n ResolverLevelMetricsBehavior: () => ResolverLevelMetricsBehavior,\n ResolverLevelMetricsConfig: () => ResolverLevelMetricsConfig,\n RuntimeName: () => RuntimeName,\n SchemaStatus: () => SchemaStatus,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n SourceApiAssociationStatus: () => SourceApiAssociationStatus,\n StartDataSourceIntrospectionCommand: () => StartDataSourceIntrospectionCommand,\n StartSchemaCreationCommand: () => StartSchemaCreationCommand,\n StartSchemaMergeCommand: () => StartSchemaMergeCommand,\n TagResourceCommand: () => TagResourceCommand,\n TypeDefinitionFormat: () => TypeDefinitionFormat,\n UnauthorizedException: () => UnauthorizedException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateApiCacheCommand: () => UpdateApiCacheCommand,\n UpdateApiCommand: () => UpdateApiCommand,\n UpdateApiKeyCommand: () => UpdateApiKeyCommand,\n UpdateChannelNamespaceCommand: () => UpdateChannelNamespaceCommand,\n UpdateDataSourceCommand: () => UpdateDataSourceCommand,\n UpdateDomainNameCommand: () => UpdateDomainNameCommand,\n UpdateFunctionCommand: () => UpdateFunctionCommand,\n UpdateGraphqlApiCommand: () => UpdateGraphqlApiCommand,\n UpdateResolverCommand: () => UpdateResolverCommand,\n UpdateSourceApiAssociationCommand: () => UpdateSourceApiAssociationCommand,\n UpdateTypeCommand: () => UpdateTypeCommand,\n __Client: () => import_smithy_client.Client,\n paginateListApiKeys: () => paginateListApiKeys,\n paginateListApis: () => paginateListApis,\n paginateListChannelNamespaces: () => paginateListChannelNamespaces,\n paginateListDataSources: () => paginateListDataSources,\n paginateListDomainNames: () => paginateListDomainNames,\n paginateListFunctions: () => paginateListFunctions,\n paginateListGraphqlApis: () => paginateListGraphqlApis,\n paginateListResolvers: () => paginateListResolvers,\n paginateListResolversByFunction: () => paginateListResolversByFunction,\n paginateListSourceApiAssociations: () => paginateListSourceApiAssociations,\n paginateListTypes: () => paginateListTypes,\n paginateListTypesByAssociation: () => paginateListTypesByAssociation\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/AppSyncClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"appsync\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/AppSyncClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/AppSyncClient.ts\nvar AppSyncClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"AppSyncClient\");\n }\n /**\n * The resolved configuration of AppSyncClient class. This is resolved and normalized from the {@link AppSyncClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultAppSyncHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/AppSync.ts\n\n\n// src/commands/AssociateApiCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/AppSyncServiceException.ts\n\nvar AppSyncServiceException = class _AppSyncServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"AppSyncServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _AppSyncServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends AppSyncServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n }\n};\nvar AuthenticationType = {\n AMAZON_COGNITO_USER_POOLS: \"AMAZON_COGNITO_USER_POOLS\",\n API_KEY: \"API_KEY\",\n AWS_IAM: \"AWS_IAM\",\n AWS_LAMBDA: \"AWS_LAMBDA\",\n OPENID_CONNECT: \"OPENID_CONNECT\"\n};\nvar EventLogLevel = {\n ALL: \"ALL\",\n DEBUG: \"DEBUG\",\n ERROR: \"ERROR\",\n INFO: \"INFO\",\n NONE: \"NONE\"\n};\nvar AssociationStatus = {\n Failed: \"FAILED\",\n Processing: \"PROCESSING\",\n Success: \"SUCCESS\"\n};\nvar ApiCachingBehavior = {\n FULL_REQUEST_CACHING: \"FULL_REQUEST_CACHING\",\n OPERATION_LEVEL_CACHING: \"OPERATION_LEVEL_CACHING\",\n PER_RESOLVER_CACHING: \"PER_RESOLVER_CACHING\"\n};\nvar CacheHealthMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ApiCacheStatus = {\n AVAILABLE: \"AVAILABLE\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n MODIFYING: \"MODIFYING\"\n};\nvar ApiCacheType = {\n LARGE: \"LARGE\",\n LARGE_12X: \"LARGE_12X\",\n LARGE_2X: \"LARGE_2X\",\n LARGE_4X: \"LARGE_4X\",\n LARGE_8X: \"LARGE_8X\",\n MEDIUM: \"MEDIUM\",\n R4_2XLARGE: \"R4_2XLARGE\",\n R4_4XLARGE: \"R4_4XLARGE\",\n R4_8XLARGE: \"R4_8XLARGE\",\n R4_LARGE: \"R4_LARGE\",\n R4_XLARGE: \"R4_XLARGE\",\n SMALL: \"SMALL\",\n T2_MEDIUM: \"T2_MEDIUM\",\n T2_SMALL: \"T2_SMALL\",\n XLARGE: \"XLARGE\"\n};\nvar ApiKeyLimitExceededException = class _ApiKeyLimitExceededException extends AppSyncServiceException {\n static {\n __name(this, \"ApiKeyLimitExceededException\");\n }\n name = \"ApiKeyLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ApiKeyLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ApiKeyLimitExceededException.prototype);\n }\n};\nvar ApiKeyValidityOutOfBoundsException = class _ApiKeyValidityOutOfBoundsException extends AppSyncServiceException {\n static {\n __name(this, \"ApiKeyValidityOutOfBoundsException\");\n }\n name = \"ApiKeyValidityOutOfBoundsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ApiKeyValidityOutOfBoundsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ApiKeyValidityOutOfBoundsException.prototype);\n }\n};\nvar ApiLimitExceededException = class _ApiLimitExceededException extends AppSyncServiceException {\n static {\n __name(this, \"ApiLimitExceededException\");\n }\n name = \"ApiLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ApiLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ApiLimitExceededException.prototype);\n }\n};\nvar RuntimeName = {\n APPSYNC_JS: \"APPSYNC_JS\"\n};\nvar BadRequestReason = {\n CODE_ERROR: \"CODE_ERROR\"\n};\nvar BadRequestException = class _BadRequestException extends AppSyncServiceException {\n static {\n __name(this, \"BadRequestException\");\n }\n name = \"BadRequestException\";\n $fault = \"client\";\n /**\n *

Provides context for the cause of the bad request. The only supported value is\n * CODE_ERROR.

\n * @public\n */\n reason;\n /**\n *

Provides further details for the reason behind the bad request. For reason type\n * CODE_ERROR, the detail will contain a list of code errors.

\n * @public\n */\n detail;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BadRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BadRequestException.prototype);\n this.reason = opts.reason;\n this.detail = opts.detail;\n }\n};\nvar InternalFailureException = class _InternalFailureException extends AppSyncServiceException {\n static {\n __name(this, \"InternalFailureException\");\n }\n name = \"InternalFailureException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalFailureException.prototype);\n }\n};\nvar NotFoundException = class _NotFoundException extends AppSyncServiceException {\n static {\n __name(this, \"NotFoundException\");\n }\n name = \"NotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotFoundException.prototype);\n }\n};\nvar MergeType = {\n AUTO_MERGE: \"AUTO_MERGE\",\n MANUAL_MERGE: \"MANUAL_MERGE\"\n};\nvar SourceApiAssociationStatus = {\n AUTO_MERGE_SCHEDULE_FAILED: \"AUTO_MERGE_SCHEDULE_FAILED\",\n DELETION_FAILED: \"DELETION_FAILED\",\n DELETION_IN_PROGRESS: \"DELETION_IN_PROGRESS\",\n DELETION_SCHEDULED: \"DELETION_SCHEDULED\",\n MERGE_FAILED: \"MERGE_FAILED\",\n MERGE_IN_PROGRESS: \"MERGE_IN_PROGRESS\",\n MERGE_SCHEDULED: \"MERGE_SCHEDULED\",\n MERGE_SUCCESS: \"MERGE_SUCCESS\"\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends AppSyncServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends AppSyncServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends AppSyncServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar AuthorizationType = {\n AWS_IAM: \"AWS_IAM\"\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends AppSyncServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n }\n};\nvar ConflictException = class _ConflictException extends AppSyncServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar HandlerBehavior = {\n CODE: \"CODE\",\n DIRECT: \"DIRECT\"\n};\nvar InvokeType = {\n EVENT: \"EVENT\",\n REQUEST_RESPONSE: \"REQUEST_RESPONSE\"\n};\nvar DataSourceLevelMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar RelationalDatabaseSourceType = {\n RDS_HTTP_ENDPOINT: \"RDS_HTTP_ENDPOINT\"\n};\nvar DataSourceType = {\n AMAZON_BEDROCK_RUNTIME: \"AMAZON_BEDROCK_RUNTIME\",\n AMAZON_DYNAMODB: \"AMAZON_DYNAMODB\",\n AMAZON_ELASTICSEARCH: \"AMAZON_ELASTICSEARCH\",\n AMAZON_EVENTBRIDGE: \"AMAZON_EVENTBRIDGE\",\n AMAZON_OPENSEARCH_SERVICE: \"AMAZON_OPENSEARCH_SERVICE\",\n AWS_LAMBDA: \"AWS_LAMBDA\",\n HTTP: \"HTTP\",\n NONE: \"NONE\",\n RELATIONAL_DATABASE: \"RELATIONAL_DATABASE\"\n};\nvar ConflictDetectionType = {\n NONE: \"NONE\",\n VERSION: \"VERSION\"\n};\nvar ConflictHandlerType = {\n AUTOMERGE: \"AUTOMERGE\",\n LAMBDA: \"LAMBDA\",\n NONE: \"NONE\",\n OPTIMISTIC_CONCURRENCY: \"OPTIMISTIC_CONCURRENCY\"\n};\nvar GraphQLApiType = {\n GRAPHQL: \"GRAPHQL\",\n MERGED: \"MERGED\"\n};\nvar DataSourceLevelMetricsBehavior = {\n FULL_REQUEST_DATA_SOURCE_METRICS: \"FULL_REQUEST_DATA_SOURCE_METRICS\",\n PER_DATA_SOURCE_METRICS: \"PER_DATA_SOURCE_METRICS\"\n};\nvar OperationLevelMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ResolverLevelMetricsBehavior = {\n FULL_REQUEST_RESOLVER_METRICS: \"FULL_REQUEST_RESOLVER_METRICS\",\n PER_RESOLVER_METRICS: \"PER_RESOLVER_METRICS\"\n};\nvar GraphQLApiIntrospectionConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar FieldLogLevel = {\n ALL: \"ALL\",\n DEBUG: \"DEBUG\",\n ERROR: \"ERROR\",\n INFO: \"INFO\",\n NONE: \"NONE\"\n};\nvar DefaultAction = {\n ALLOW: \"ALLOW\",\n DENY: \"DENY\"\n};\nvar GraphQLApiVisibility = {\n GLOBAL: \"GLOBAL\",\n PRIVATE: \"PRIVATE\"\n};\nvar ResolverKind = {\n PIPELINE: \"PIPELINE\",\n UNIT: \"UNIT\"\n};\nvar ResolverLevelMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar TypeDefinitionFormat = {\n JSON: \"JSON\",\n SDL: \"SDL\"\n};\nvar DataSourceIntrospectionStatus = {\n FAILED: \"FAILED\",\n PROCESSING: \"PROCESSING\",\n SUCCESS: \"SUCCESS\"\n};\nvar OutputType = {\n JSON: \"JSON\",\n SDL: \"SDL\"\n};\nvar GraphQLSchemaException = class _GraphQLSchemaException extends AppSyncServiceException {\n static {\n __name(this, \"GraphQLSchemaException\");\n }\n name = \"GraphQLSchemaException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"GraphQLSchemaException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _GraphQLSchemaException.prototype);\n }\n};\nvar SchemaStatus = {\n Active: \"ACTIVE\",\n Deleting: \"DELETING\",\n Failed: \"FAILED\",\n NotApplicable: \"NOT_APPLICABLE\",\n Processing: \"PROCESSING\",\n Success: \"SUCCESS\"\n};\nvar Ownership = {\n CURRENT_ACCOUNT: \"CURRENT_ACCOUNT\",\n OTHER_ACCOUNTS: \"OTHER_ACCOUNTS\"\n};\n\n// src/protocols/Aws_restJson1.ts\nvar se_AssociateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/domainnames/{domainName}/apiassociation\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n apiId: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateApiCommand\");\nvar se_AssociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations\");\n b.p(\"sourceApiIdentifier\", () => input.sourceApiIdentifier, \"{sourceApiIdentifier}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n mergedApiIdentifier: [],\n sourceApiAssociationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"sourceApiAssociationConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateMergedGraphqlApiCommand\");\nvar se_AssociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n sourceApiAssociationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"sourceApiAssociationConfig\"),\n sourceApiIdentifier: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateSourceGraphqlApiCommand\");\nvar se_CreateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n eventConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventConfig\"),\n name: [],\n ownerContact: [],\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateApiCommand\");\nvar se_CreateApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/ApiCaches\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n apiCachingBehavior: [],\n atRestEncryptionEnabled: [],\n healthMetricsConfig: [],\n transitEncryptionEnabled: [],\n ttl: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateApiCacheCommand\");\nvar se_CreateApiKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/apikeys\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n expires: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateApiKeyCommand\");\nvar se_CreateChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis/{apiId}/channelNamespaces\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n codeHandlers: [],\n handlerConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"handlerConfigs\"),\n name: [],\n publishAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"publishAuthModes\"),\n subscribeAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"subscribeAuthModes\"),\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateChannelNamespaceCommand\");\nvar se_CreateDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/datasources\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n dynamodbConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"dynamodbConfig\"),\n elasticsearchConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"elasticsearchConfig\"),\n eventBridgeConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventBridgeConfig\"),\n httpConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"httpConfig\"),\n lambdaConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaConfig\"),\n metricsConfig: [],\n name: [],\n openSearchServiceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openSearchServiceConfig\"),\n relationalDatabaseConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"relationalDatabaseConfig\"),\n serviceRoleArn: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateDataSourceCommand\");\nvar se_CreateDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/domainnames\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n certificateArn: [],\n description: [],\n domainName: [],\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateDomainNameCommand\");\nvar se_CreateFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/functions\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n code: [],\n dataSourceName: [],\n description: [],\n functionVersion: [],\n maxBatchSize: [],\n name: [],\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateFunctionCommand\");\nvar se_CreateGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n additionalAuthenticationProviders: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"additionalAuthenticationProviders\"),\n apiType: [],\n authenticationType: [],\n enhancedMetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"enhancedMetricsConfig\"),\n introspectionConfig: [],\n lambdaAuthorizerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaAuthorizerConfig\"),\n logConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"logConfig\"),\n mergedApiExecutionRoleArn: [],\n name: [],\n openIDConnectConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openIDConnectConfig\"),\n ownerContact: [],\n queryDepthLimit: [],\n resolverCountLimit: [],\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\"),\n userPoolConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"userPoolConfig\"),\n visibility: [],\n xrayEnabled: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateGraphqlApiCommand\");\nvar se_CreateResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n cachingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"cachingConfig\"),\n code: [],\n dataSourceName: [],\n fieldName: [],\n kind: [],\n maxBatchSize: [],\n metricsConfig: [],\n pipelineConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"pipelineConfig\"),\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateResolverCommand\");\nvar se_CreateTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n definition: [],\n format: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTypeCommand\");\nvar se_DeleteApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteApiCommand\");\nvar se_DeleteApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/ApiCaches\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteApiCacheCommand\");\nvar se_DeleteApiKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/apikeys/{id}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"id\", () => input.id, \"{id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteApiKeyCommand\");\nvar se_DeleteChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}/channelNamespaces/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteChannelNamespaceCommand\");\nvar se_DeleteDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/datasources/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteDataSourceCommand\");\nvar se_DeleteDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteDomainNameCommand\");\nvar se_DeleteFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteFunctionCommand\");\nvar se_DeleteGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteGraphqlApiCommand\");\nvar se_DeleteResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n b.p(\"fieldName\", () => input.fieldName, \"{fieldName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteResolverCommand\");\nvar se_DeleteTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteTypeCommand\");\nvar se_DisassociateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}/apiassociation\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateApiCommand\");\nvar se_DisassociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations/{associationId}\");\n b.p(\"sourceApiIdentifier\", () => input.sourceApiIdentifier, \"{sourceApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateMergedGraphqlApiCommand\");\nvar se_DisassociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateSourceGraphqlApiCommand\");\nvar se_EvaluateCodeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/dataplane-evaluatecode\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n code: [],\n context: [],\n function: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_EvaluateCodeCommand\");\nvar se_EvaluateMappingTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/dataplane-evaluatetemplate\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n context: [],\n template: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_EvaluateMappingTemplateCommand\");\nvar se_FlushApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/FlushCache\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_FlushApiCacheCommand\");\nvar se_GetApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetApiCommand\");\nvar se_GetApiAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}/apiassociation\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetApiAssociationCommand\");\nvar se_GetApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/ApiCaches\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetApiCacheCommand\");\nvar se_GetChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}/channelNamespaces/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetChannelNamespaceCommand\");\nvar se_GetDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/datasources/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetDataSourceCommand\");\nvar se_GetDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/datasources/introspections/{introspectionId}\");\n b.p(\"introspectionId\", () => input.introspectionId, \"{introspectionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_iMSDL]: [() => input.includeModelsSDL !== void 0, () => input[_iMSDL].toString()],\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetDataSourceIntrospectionCommand\");\nvar se_GetDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetDomainNameCommand\");\nvar se_GetFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionCommand\");\nvar se_GetGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetGraphqlApiCommand\");\nvar se_GetGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/environmentVariables\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetGraphqlApiEnvironmentVariablesCommand\");\nvar se_GetIntrospectionSchemaCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/schema\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)],\n [_iD]: [() => input.includeDirectives !== void 0, () => input[_iD].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetIntrospectionSchemaCommand\");\nvar se_GetResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n b.p(\"fieldName\", () => input.fieldName, \"{fieldName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetResolverCommand\");\nvar se_GetSchemaCreationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/schemacreation\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetSchemaCreationStatusCommand\");\nvar se_GetSourceApiAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetSourceApiAssociationCommand\");\nvar se_GetTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetTypeCommand\");\nvar se_ListApiKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/apikeys\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListApiKeysCommand\");\nvar se_ListApisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis\");\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListApisCommand\");\nvar se_ListChannelNamespacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}/channelNamespaces\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListChannelNamespacesCommand\");\nvar se_ListDataSourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/datasources\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListDataSourcesCommand\");\nvar se_ListDomainNamesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames\");\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListDomainNamesCommand\");\nvar se_ListFunctionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionsCommand\");\nvar se_ListGraphqlApisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis\");\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_aT]: [, input[_aT]],\n [_o]: [, input[_o]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListGraphqlApisCommand\");\nvar se_ListResolversCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListResolversCommand\");\nvar se_ListResolversByFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}/resolvers\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListResolversByFunctionCommand\");\nvar se_ListSourceApiAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/sourceApiAssociations\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListSourceApiAssociationsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/tags/{resourceArn}\");\n b.p(\"resourceArn\", () => input.resourceArn, \"{resourceArn}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTypesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)],\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTypesCommand\");\nvar se_ListTypesByAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/types\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)],\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTypesByAssociationCommand\");\nvar se_PutGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/environmentVariables\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n environmentVariables: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"environmentVariables\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutGraphqlApiEnvironmentVariablesCommand\");\nvar se_StartDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/datasources/introspections\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n rdsDataApiConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"rdsDataApiConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_StartDataSourceIntrospectionCommand\");\nvar se_StartSchemaCreationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/schemacreation\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n definition: /* @__PURE__ */ __name((_) => context.base64Encoder(_), \"definition\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_StartSchemaCreationCommand\");\nvar se_StartSchemaMergeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/merge\");\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_StartSchemaMergeCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/tags/{resourceArn}\");\n b.p(\"resourceArn\", () => input.resourceArn, \"{resourceArn}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/tags/{resourceArn}\");\n b.p(\"resourceArn\", () => input.resourceArn, \"{resourceArn}\", false);\n const query = (0, import_smithy_client.map)({\n [_tK]: [(0, import_smithy_client.expectNonNull)(input.tagKeys, `tagKeys`) != null, () => input[_tK] || []]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UntagResourceCommand\");\nvar se_UpdateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n eventConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventConfig\"),\n name: [],\n ownerContact: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateApiCommand\");\nvar se_UpdateApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/ApiCaches/update\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n apiCachingBehavior: [],\n healthMetricsConfig: [],\n ttl: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateApiCacheCommand\");\nvar se_UpdateApiKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/apikeys/{id}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"id\", () => input.id, \"{id}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n expires: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateApiKeyCommand\");\nvar se_UpdateChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis/{apiId}/channelNamespaces/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n codeHandlers: [],\n handlerConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"handlerConfigs\"),\n publishAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"publishAuthModes\"),\n subscribeAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"subscribeAuthModes\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateChannelNamespaceCommand\");\nvar se_UpdateDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/datasources/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n dynamodbConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"dynamodbConfig\"),\n elasticsearchConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"elasticsearchConfig\"),\n eventBridgeConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventBridgeConfig\"),\n httpConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"httpConfig\"),\n lambdaConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaConfig\"),\n metricsConfig: [],\n openSearchServiceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openSearchServiceConfig\"),\n relationalDatabaseConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"relationalDatabaseConfig\"),\n serviceRoleArn: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateDataSourceCommand\");\nvar se_UpdateDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/domainnames/{domainName}\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateDomainNameCommand\");\nvar se_UpdateFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n code: [],\n dataSourceName: [],\n description: [],\n functionVersion: [],\n maxBatchSize: [],\n name: [],\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateFunctionCommand\");\nvar se_UpdateGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n additionalAuthenticationProviders: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"additionalAuthenticationProviders\"),\n authenticationType: [],\n enhancedMetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"enhancedMetricsConfig\"),\n introspectionConfig: [],\n lambdaAuthorizerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaAuthorizerConfig\"),\n logConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"logConfig\"),\n mergedApiExecutionRoleArn: [],\n name: [],\n openIDConnectConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openIDConnectConfig\"),\n ownerContact: [],\n queryDepthLimit: [],\n resolverCountLimit: [],\n userPoolConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"userPoolConfig\"),\n xrayEnabled: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateGraphqlApiCommand\");\nvar se_UpdateResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n b.p(\"fieldName\", () => input.fieldName, \"{fieldName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n cachingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"cachingConfig\"),\n code: [],\n dataSourceName: [],\n kind: [],\n maxBatchSize: [],\n metricsConfig: [],\n pipelineConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"pipelineConfig\"),\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateResolverCommand\");\nvar se_UpdateSourceApiAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\");\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n sourceApiAssociationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"sourceApiAssociationConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateSourceApiAssociationCommand\");\nvar se_UpdateTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types/{typeName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n definition: [],\n format: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateTypeCommand\");\nvar de_AssociateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiAssociation: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AssociateApiCommand\");\nvar de_AssociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AssociateMergedGraphqlApiCommand\");\nvar de_AssociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AssociateSourceGraphqlApiCommand\");\nvar de_CreateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n api: /* @__PURE__ */ __name((_) => de_Api(_, context), \"api\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateApiCommand\");\nvar de_CreateApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiCache: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateApiCacheCommand\");\nvar de_CreateApiKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiKey: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateApiKeyCommand\");\nvar de_CreateChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespace: /* @__PURE__ */ __name((_) => de_ChannelNamespace(_, context), \"channelNamespace\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateChannelNamespaceCommand\");\nvar de_CreateDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSource: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateDataSourceCommand\");\nvar de_CreateDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateDomainNameCommand\");\nvar de_CreateFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functionConfiguration: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateFunctionCommand\");\nvar de_CreateGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApi: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateGraphqlApiCommand\");\nvar de_CreateResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n resolver: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateResolverCommand\");\nvar de_CreateTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n type: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTypeCommand\");\nvar de_DeleteApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteApiCommand\");\nvar de_DeleteApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteApiCacheCommand\");\nvar de_DeleteApiKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteApiKeyCommand\");\nvar de_DeleteChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteChannelNamespaceCommand\");\nvar de_DeleteDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteDataSourceCommand\");\nvar de_DeleteDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteDomainNameCommand\");\nvar de_DeleteFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionCommand\");\nvar de_DeleteGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteGraphqlApiCommand\");\nvar de_DeleteResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteResolverCommand\");\nvar de_DeleteTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteTypeCommand\");\nvar de_DisassociateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DisassociateApiCommand\");\nvar de_DisassociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociationStatus: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_DisassociateMergedGraphqlApiCommand\");\nvar de_DisassociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociationStatus: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_DisassociateSourceGraphqlApiCommand\");\nvar de_EvaluateCodeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n error: import_smithy_client._json,\n evaluationResult: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n outErrors: import_smithy_client.expectString,\n stash: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_EvaluateCodeCommand\");\nvar de_EvaluateMappingTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n error: import_smithy_client._json,\n evaluationResult: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n outErrors: import_smithy_client.expectString,\n stash: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_EvaluateMappingTemplateCommand\");\nvar de_FlushApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_FlushApiCacheCommand\");\nvar de_GetApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n api: /* @__PURE__ */ __name((_) => de_Api(_, context), \"api\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetApiCommand\");\nvar de_GetApiAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiAssociation: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetApiAssociationCommand\");\nvar de_GetApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiCache: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetApiCacheCommand\");\nvar de_GetChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespace: /* @__PURE__ */ __name((_) => de_ChannelNamespace(_, context), \"channelNamespace\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetChannelNamespaceCommand\");\nvar de_GetDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSource: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetDataSourceCommand\");\nvar de_GetDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n introspectionId: import_smithy_client.expectString,\n introspectionResult: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionResult(_, context), \"introspectionResult\"),\n introspectionStatus: import_smithy_client.expectString,\n introspectionStatusDetail: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetDataSourceIntrospectionCommand\");\nvar de_GetDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetDomainNameCommand\");\nvar de_GetFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functionConfiguration: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionCommand\");\nvar de_GetGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApi: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetGraphqlApiCommand\");\nvar de_GetGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n environmentVariables: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetGraphqlApiEnvironmentVariablesCommand\");\nvar de_GetIntrospectionSchemaCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = await (0, import_smithy_client.collectBody)(output.body, context);\n contents.schema = data;\n return contents;\n}, \"de_GetIntrospectionSchemaCommand\");\nvar de_GetResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n resolver: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetResolverCommand\");\nvar de_GetSchemaCreationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n details: import_smithy_client.expectString,\n status: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetSchemaCreationStatusCommand\");\nvar de_GetSourceApiAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetSourceApiAssociationCommand\");\nvar de_GetTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n type: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetTypeCommand\");\nvar de_ListApiKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiKeys: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListApiKeysCommand\");\nvar de_ListApisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apis: /* @__PURE__ */ __name((_) => de_Apis(_, context), \"apis\"),\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListApisCommand\");\nvar de_ListChannelNamespacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespaces: /* @__PURE__ */ __name((_) => de_ChannelNamespaces(_, context), \"channelNamespaces\"),\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListChannelNamespacesCommand\");\nvar de_ListDataSourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSources: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListDataSourcesCommand\");\nvar de_ListDomainNamesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfigs: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListDomainNamesCommand\");\nvar de_ListFunctionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functions: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionsCommand\");\nvar de_ListGraphqlApisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApis: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListGraphqlApisCommand\");\nvar de_ListResolversCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n resolvers: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListResolversCommand\");\nvar de_ListResolversByFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n resolvers: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListResolversByFunctionCommand\");\nvar de_ListSourceApiAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n sourceApiAssociationSummaries: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListSourceApiAssociationsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n tags: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTypesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n types: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTypesCommand\");\nvar de_ListTypesByAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n types: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTypesByAssociationCommand\");\nvar de_PutGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n environmentVariables: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutGraphqlApiEnvironmentVariablesCommand\");\nvar de_StartDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n introspectionId: import_smithy_client.expectString,\n introspectionStatus: import_smithy_client.expectString,\n introspectionStatusDetail: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_StartDataSourceIntrospectionCommand\");\nvar de_StartSchemaCreationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n status: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_StartSchemaCreationCommand\");\nvar de_StartSchemaMergeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociationStatus: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_StartSchemaMergeCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n api: /* @__PURE__ */ __name((_) => de_Api(_, context), \"api\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateApiCommand\");\nvar de_UpdateApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiCache: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateApiCacheCommand\");\nvar de_UpdateApiKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiKey: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateApiKeyCommand\");\nvar de_UpdateChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespace: /* @__PURE__ */ __name((_) => de_ChannelNamespace(_, context), \"channelNamespace\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateChannelNamespaceCommand\");\nvar de_UpdateDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSource: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateDataSourceCommand\");\nvar de_UpdateDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateDomainNameCommand\");\nvar de_UpdateFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functionConfiguration: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionCommand\");\nvar de_UpdateGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApi: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateGraphqlApiCommand\");\nvar de_UpdateResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n resolver: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateResolverCommand\");\nvar de_UpdateSourceApiAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateSourceApiAssociationCommand\");\nvar de_UpdateTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n type: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateTypeCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.appsync#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"BadRequestException\":\n case \"com.amazonaws.appsync#BadRequestException\":\n throw await de_BadRequestExceptionRes(parsedOutput, context);\n case \"InternalFailureException\":\n case \"com.amazonaws.appsync#InternalFailureException\":\n throw await de_InternalFailureExceptionRes(parsedOutput, context);\n case \"NotFoundException\":\n case \"com.amazonaws.appsync#NotFoundException\":\n throw await de_NotFoundExceptionRes(parsedOutput, context);\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.appsync#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.appsync#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.appsync#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.appsync#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"ApiKeyLimitExceededException\":\n case \"com.amazonaws.appsync#ApiKeyLimitExceededException\":\n throw await de_ApiKeyLimitExceededExceptionRes(parsedOutput, context);\n case \"ApiKeyValidityOutOfBoundsException\":\n case \"com.amazonaws.appsync#ApiKeyValidityOutOfBoundsException\":\n throw await de_ApiKeyValidityOutOfBoundsExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.appsync#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"ApiLimitExceededException\":\n case \"com.amazonaws.appsync#ApiLimitExceededException\":\n throw await de_ApiLimitExceededExceptionRes(parsedOutput, context);\n case \"GraphQLSchemaException\":\n case \"com.amazonaws.appsync#GraphQLSchemaException\":\n throw await de_GraphQLSchemaExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(AppSyncServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_ApiKeyLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ApiKeyLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ApiKeyLimitExceededExceptionRes\");\nvar de_ApiKeyValidityOutOfBoundsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ApiKeyValidityOutOfBoundsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ApiKeyValidityOutOfBoundsExceptionRes\");\nvar de_ApiLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ApiLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ApiLimitExceededExceptionRes\");\nvar de_BadRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n detail: import_smithy_client._json,\n message: import_smithy_client.expectString,\n reason: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new BadRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_BadRequestExceptionRes\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ConflictExceptionRes\");\nvar de_GraphQLSchemaExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new GraphQLSchemaException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_GraphQLSchemaExceptionRes\");\nvar de_InternalFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalFailureExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_NotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new NotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NotFoundExceptionRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar de_Api = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n apiArn: import_smithy_client.expectString,\n apiId: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n dns: import_smithy_client._json,\n eventConfig: import_smithy_client._json,\n name: import_smithy_client.expectString,\n ownerContact: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n wafWebAclArn: import_smithy_client.expectString,\n xrayEnabled: import_smithy_client.expectBoolean\n });\n}, \"de_Api\");\nvar de_Apis = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Api(entry, context);\n });\n return retVal;\n}, \"de_Apis\");\nvar de_ChannelNamespace = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n apiId: import_smithy_client.expectString,\n channelNamespaceArn: import_smithy_client.expectString,\n codeHandlers: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n handlerConfigs: import_smithy_client._json,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n name: import_smithy_client.expectString,\n publishAuthModes: import_smithy_client._json,\n subscribeAuthModes: import_smithy_client._json,\n tags: import_smithy_client._json\n });\n}, \"de_ChannelNamespace\");\nvar de_ChannelNamespaces = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ChannelNamespace(entry, context);\n });\n return retVal;\n}, \"de_ChannelNamespaces\");\nvar de_DataSourceIntrospectionModel = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fields: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModelFields(_, context), \"fields\"),\n indexes: import_smithy_client._json,\n name: import_smithy_client.expectString,\n primaryKey: import_smithy_client._json,\n sdl: import_smithy_client.expectString\n });\n}, \"de_DataSourceIntrospectionModel\");\nvar de_DataSourceIntrospectionModelField = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n length: import_smithy_client.expectLong,\n name: import_smithy_client.expectString,\n type: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModelFieldType(_, context), \"type\")\n });\n}, \"de_DataSourceIntrospectionModelField\");\nvar de_DataSourceIntrospectionModelFields = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DataSourceIntrospectionModelField(entry, context);\n });\n return retVal;\n}, \"de_DataSourceIntrospectionModelFields\");\nvar de_DataSourceIntrospectionModelFieldType = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n kind: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n type: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModelFieldType(_, context), \"type\"),\n values: import_smithy_client._json\n });\n}, \"de_DataSourceIntrospectionModelFieldType\");\nvar de_DataSourceIntrospectionModels = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DataSourceIntrospectionModel(entry, context);\n });\n return retVal;\n}, \"de_DataSourceIntrospectionModels\");\nvar de_DataSourceIntrospectionResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n models: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModels(_, context), \"models\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DataSourceIntrospectionResult\");\nvar de_SourceApiAssociation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n associationArn: import_smithy_client.expectString,\n associationId: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n lastSuccessfulMergeDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastSuccessfulMergeDate\"),\n mergedApiArn: import_smithy_client.expectString,\n mergedApiId: import_smithy_client.expectString,\n sourceApiArn: import_smithy_client.expectString,\n sourceApiAssociationConfig: import_smithy_client._json,\n sourceApiAssociationStatus: import_smithy_client.expectString,\n sourceApiAssociationStatusDetail: import_smithy_client.expectString,\n sourceApiId: import_smithy_client.expectString\n });\n}, \"de_SourceApiAssociation\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aT = \"apiType\";\nvar _f = \"format\";\nvar _iD = \"includeDirectives\";\nvar _iMSDL = \"includeModelsSDL\";\nvar _mR = \"maxResults\";\nvar _nT = \"nextToken\";\nvar _o = \"owner\";\nvar _tK = \"tagKeys\";\n\n// src/commands/AssociateApiCommand.ts\nvar AssociateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"AssociateApi\", {}).n(\"AppSyncClient\", \"AssociateApiCommand\").f(void 0, void 0).ser(se_AssociateApiCommand).de(de_AssociateApiCommand).build() {\n static {\n __name(this, \"AssociateApiCommand\");\n }\n};\n\n// src/commands/AssociateMergedGraphqlApiCommand.ts\n\n\n\nvar AssociateMergedGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"AssociateMergedGraphqlApi\", {}).n(\"AppSyncClient\", \"AssociateMergedGraphqlApiCommand\").f(void 0, void 0).ser(se_AssociateMergedGraphqlApiCommand).de(de_AssociateMergedGraphqlApiCommand).build() {\n static {\n __name(this, \"AssociateMergedGraphqlApiCommand\");\n }\n};\n\n// src/commands/AssociateSourceGraphqlApiCommand.ts\n\n\n\nvar AssociateSourceGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"AssociateSourceGraphqlApi\", {}).n(\"AppSyncClient\", \"AssociateSourceGraphqlApiCommand\").f(void 0, void 0).ser(se_AssociateSourceGraphqlApiCommand).de(de_AssociateSourceGraphqlApiCommand).build() {\n static {\n __name(this, \"AssociateSourceGraphqlApiCommand\");\n }\n};\n\n// src/commands/CreateApiCacheCommand.ts\n\n\n\nvar CreateApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateApiCache\", {}).n(\"AppSyncClient\", \"CreateApiCacheCommand\").f(void 0, void 0).ser(se_CreateApiCacheCommand).de(de_CreateApiCacheCommand).build() {\n static {\n __name(this, \"CreateApiCacheCommand\");\n }\n};\n\n// src/commands/CreateApiCommand.ts\n\n\n\nvar CreateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateApi\", {}).n(\"AppSyncClient\", \"CreateApiCommand\").f(void 0, void 0).ser(se_CreateApiCommand).de(de_CreateApiCommand).build() {\n static {\n __name(this, \"CreateApiCommand\");\n }\n};\n\n// src/commands/CreateApiKeyCommand.ts\n\n\n\nvar CreateApiKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateApiKey\", {}).n(\"AppSyncClient\", \"CreateApiKeyCommand\").f(void 0, void 0).ser(se_CreateApiKeyCommand).de(de_CreateApiKeyCommand).build() {\n static {\n __name(this, \"CreateApiKeyCommand\");\n }\n};\n\n// src/commands/CreateChannelNamespaceCommand.ts\n\n\n\nvar CreateChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateChannelNamespace\", {}).n(\"AppSyncClient\", \"CreateChannelNamespaceCommand\").f(void 0, void 0).ser(se_CreateChannelNamespaceCommand).de(de_CreateChannelNamespaceCommand).build() {\n static {\n __name(this, \"CreateChannelNamespaceCommand\");\n }\n};\n\n// src/commands/CreateDataSourceCommand.ts\n\n\n\nvar CreateDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateDataSource\", {}).n(\"AppSyncClient\", \"CreateDataSourceCommand\").f(void 0, void 0).ser(se_CreateDataSourceCommand).de(de_CreateDataSourceCommand).build() {\n static {\n __name(this, \"CreateDataSourceCommand\");\n }\n};\n\n// src/commands/CreateDomainNameCommand.ts\n\n\n\nvar CreateDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateDomainName\", {}).n(\"AppSyncClient\", \"CreateDomainNameCommand\").f(void 0, void 0).ser(se_CreateDomainNameCommand).de(de_CreateDomainNameCommand).build() {\n static {\n __name(this, \"CreateDomainNameCommand\");\n }\n};\n\n// src/commands/CreateFunctionCommand.ts\n\n\n\nvar CreateFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateFunction\", {}).n(\"AppSyncClient\", \"CreateFunctionCommand\").f(void 0, void 0).ser(se_CreateFunctionCommand).de(de_CreateFunctionCommand).build() {\n static {\n __name(this, \"CreateFunctionCommand\");\n }\n};\n\n// src/commands/CreateGraphqlApiCommand.ts\n\n\n\nvar CreateGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateGraphqlApi\", {}).n(\"AppSyncClient\", \"CreateGraphqlApiCommand\").f(void 0, void 0).ser(se_CreateGraphqlApiCommand).de(de_CreateGraphqlApiCommand).build() {\n static {\n __name(this, \"CreateGraphqlApiCommand\");\n }\n};\n\n// src/commands/CreateResolverCommand.ts\n\n\n\nvar CreateResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateResolver\", {}).n(\"AppSyncClient\", \"CreateResolverCommand\").f(void 0, void 0).ser(se_CreateResolverCommand).de(de_CreateResolverCommand).build() {\n static {\n __name(this, \"CreateResolverCommand\");\n }\n};\n\n// src/commands/CreateTypeCommand.ts\n\n\n\nvar CreateTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateType\", {}).n(\"AppSyncClient\", \"CreateTypeCommand\").f(void 0, void 0).ser(se_CreateTypeCommand).de(de_CreateTypeCommand).build() {\n static {\n __name(this, \"CreateTypeCommand\");\n }\n};\n\n// src/commands/DeleteApiCacheCommand.ts\n\n\n\nvar DeleteApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteApiCache\", {}).n(\"AppSyncClient\", \"DeleteApiCacheCommand\").f(void 0, void 0).ser(se_DeleteApiCacheCommand).de(de_DeleteApiCacheCommand).build() {\n static {\n __name(this, \"DeleteApiCacheCommand\");\n }\n};\n\n// src/commands/DeleteApiCommand.ts\n\n\n\nvar DeleteApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteApi\", {}).n(\"AppSyncClient\", \"DeleteApiCommand\").f(void 0, void 0).ser(se_DeleteApiCommand).de(de_DeleteApiCommand).build() {\n static {\n __name(this, \"DeleteApiCommand\");\n }\n};\n\n// src/commands/DeleteApiKeyCommand.ts\n\n\n\nvar DeleteApiKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteApiKey\", {}).n(\"AppSyncClient\", \"DeleteApiKeyCommand\").f(void 0, void 0).ser(se_DeleteApiKeyCommand).de(de_DeleteApiKeyCommand).build() {\n static {\n __name(this, \"DeleteApiKeyCommand\");\n }\n};\n\n// src/commands/DeleteChannelNamespaceCommand.ts\n\n\n\nvar DeleteChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteChannelNamespace\", {}).n(\"AppSyncClient\", \"DeleteChannelNamespaceCommand\").f(void 0, void 0).ser(se_DeleteChannelNamespaceCommand).de(de_DeleteChannelNamespaceCommand).build() {\n static {\n __name(this, \"DeleteChannelNamespaceCommand\");\n }\n};\n\n// src/commands/DeleteDataSourceCommand.ts\n\n\n\nvar DeleteDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteDataSource\", {}).n(\"AppSyncClient\", \"DeleteDataSourceCommand\").f(void 0, void 0).ser(se_DeleteDataSourceCommand).de(de_DeleteDataSourceCommand).build() {\n static {\n __name(this, \"DeleteDataSourceCommand\");\n }\n};\n\n// src/commands/DeleteDomainNameCommand.ts\n\n\n\nvar DeleteDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteDomainName\", {}).n(\"AppSyncClient\", \"DeleteDomainNameCommand\").f(void 0, void 0).ser(se_DeleteDomainNameCommand).de(de_DeleteDomainNameCommand).build() {\n static {\n __name(this, \"DeleteDomainNameCommand\");\n }\n};\n\n// src/commands/DeleteFunctionCommand.ts\n\n\n\nvar DeleteFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteFunction\", {}).n(\"AppSyncClient\", \"DeleteFunctionCommand\").f(void 0, void 0).ser(se_DeleteFunctionCommand).de(de_DeleteFunctionCommand).build() {\n static {\n __name(this, \"DeleteFunctionCommand\");\n }\n};\n\n// src/commands/DeleteGraphqlApiCommand.ts\n\n\n\nvar DeleteGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteGraphqlApi\", {}).n(\"AppSyncClient\", \"DeleteGraphqlApiCommand\").f(void 0, void 0).ser(se_DeleteGraphqlApiCommand).de(de_DeleteGraphqlApiCommand).build() {\n static {\n __name(this, \"DeleteGraphqlApiCommand\");\n }\n};\n\n// src/commands/DeleteResolverCommand.ts\n\n\n\nvar DeleteResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteResolver\", {}).n(\"AppSyncClient\", \"DeleteResolverCommand\").f(void 0, void 0).ser(se_DeleteResolverCommand).de(de_DeleteResolverCommand).build() {\n static {\n __name(this, \"DeleteResolverCommand\");\n }\n};\n\n// src/commands/DeleteTypeCommand.ts\n\n\n\nvar DeleteTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteType\", {}).n(\"AppSyncClient\", \"DeleteTypeCommand\").f(void 0, void 0).ser(se_DeleteTypeCommand).de(de_DeleteTypeCommand).build() {\n static {\n __name(this, \"DeleteTypeCommand\");\n }\n};\n\n// src/commands/DisassociateApiCommand.ts\n\n\n\nvar DisassociateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DisassociateApi\", {}).n(\"AppSyncClient\", \"DisassociateApiCommand\").f(void 0, void 0).ser(se_DisassociateApiCommand).de(de_DisassociateApiCommand).build() {\n static {\n __name(this, \"DisassociateApiCommand\");\n }\n};\n\n// src/commands/DisassociateMergedGraphqlApiCommand.ts\n\n\n\nvar DisassociateMergedGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DisassociateMergedGraphqlApi\", {}).n(\"AppSyncClient\", \"DisassociateMergedGraphqlApiCommand\").f(void 0, void 0).ser(se_DisassociateMergedGraphqlApiCommand).de(de_DisassociateMergedGraphqlApiCommand).build() {\n static {\n __name(this, \"DisassociateMergedGraphqlApiCommand\");\n }\n};\n\n// src/commands/DisassociateSourceGraphqlApiCommand.ts\n\n\n\nvar DisassociateSourceGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DisassociateSourceGraphqlApi\", {}).n(\"AppSyncClient\", \"DisassociateSourceGraphqlApiCommand\").f(void 0, void 0).ser(se_DisassociateSourceGraphqlApiCommand).de(de_DisassociateSourceGraphqlApiCommand).build() {\n static {\n __name(this, \"DisassociateSourceGraphqlApiCommand\");\n }\n};\n\n// src/commands/EvaluateCodeCommand.ts\n\n\n\nvar EvaluateCodeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"EvaluateCode\", {}).n(\"AppSyncClient\", \"EvaluateCodeCommand\").f(void 0, void 0).ser(se_EvaluateCodeCommand).de(de_EvaluateCodeCommand).build() {\n static {\n __name(this, \"EvaluateCodeCommand\");\n }\n};\n\n// src/commands/EvaluateMappingTemplateCommand.ts\n\n\n\nvar EvaluateMappingTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"EvaluateMappingTemplate\", {}).n(\"AppSyncClient\", \"EvaluateMappingTemplateCommand\").f(void 0, void 0).ser(se_EvaluateMappingTemplateCommand).de(de_EvaluateMappingTemplateCommand).build() {\n static {\n __name(this, \"EvaluateMappingTemplateCommand\");\n }\n};\n\n// src/commands/FlushApiCacheCommand.ts\n\n\n\nvar FlushApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"FlushApiCache\", {}).n(\"AppSyncClient\", \"FlushApiCacheCommand\").f(void 0, void 0).ser(se_FlushApiCacheCommand).de(de_FlushApiCacheCommand).build() {\n static {\n __name(this, \"FlushApiCacheCommand\");\n }\n};\n\n// src/commands/GetApiAssociationCommand.ts\n\n\n\nvar GetApiAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetApiAssociation\", {}).n(\"AppSyncClient\", \"GetApiAssociationCommand\").f(void 0, void 0).ser(se_GetApiAssociationCommand).de(de_GetApiAssociationCommand).build() {\n static {\n __name(this, \"GetApiAssociationCommand\");\n }\n};\n\n// src/commands/GetApiCacheCommand.ts\n\n\n\nvar GetApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetApiCache\", {}).n(\"AppSyncClient\", \"GetApiCacheCommand\").f(void 0, void 0).ser(se_GetApiCacheCommand).de(de_GetApiCacheCommand).build() {\n static {\n __name(this, \"GetApiCacheCommand\");\n }\n};\n\n// src/commands/GetApiCommand.ts\n\n\n\nvar GetApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetApi\", {}).n(\"AppSyncClient\", \"GetApiCommand\").f(void 0, void 0).ser(se_GetApiCommand).de(de_GetApiCommand).build() {\n static {\n __name(this, \"GetApiCommand\");\n }\n};\n\n// src/commands/GetChannelNamespaceCommand.ts\n\n\n\nvar GetChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetChannelNamespace\", {}).n(\"AppSyncClient\", \"GetChannelNamespaceCommand\").f(void 0, void 0).ser(se_GetChannelNamespaceCommand).de(de_GetChannelNamespaceCommand).build() {\n static {\n __name(this, \"GetChannelNamespaceCommand\");\n }\n};\n\n// src/commands/GetDataSourceCommand.ts\n\n\n\nvar GetDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetDataSource\", {}).n(\"AppSyncClient\", \"GetDataSourceCommand\").f(void 0, void 0).ser(se_GetDataSourceCommand).de(de_GetDataSourceCommand).build() {\n static {\n __name(this, \"GetDataSourceCommand\");\n }\n};\n\n// src/commands/GetDataSourceIntrospectionCommand.ts\n\n\n\nvar GetDataSourceIntrospectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetDataSourceIntrospection\", {}).n(\"AppSyncClient\", \"GetDataSourceIntrospectionCommand\").f(void 0, void 0).ser(se_GetDataSourceIntrospectionCommand).de(de_GetDataSourceIntrospectionCommand).build() {\n static {\n __name(this, \"GetDataSourceIntrospectionCommand\");\n }\n};\n\n// src/commands/GetDomainNameCommand.ts\n\n\n\nvar GetDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetDomainName\", {}).n(\"AppSyncClient\", \"GetDomainNameCommand\").f(void 0, void 0).ser(se_GetDomainNameCommand).de(de_GetDomainNameCommand).build() {\n static {\n __name(this, \"GetDomainNameCommand\");\n }\n};\n\n// src/commands/GetFunctionCommand.ts\n\n\n\nvar GetFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetFunction\", {}).n(\"AppSyncClient\", \"GetFunctionCommand\").f(void 0, void 0).ser(se_GetFunctionCommand).de(de_GetFunctionCommand).build() {\n static {\n __name(this, \"GetFunctionCommand\");\n }\n};\n\n// src/commands/GetGraphqlApiCommand.ts\n\n\n\nvar GetGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetGraphqlApi\", {}).n(\"AppSyncClient\", \"GetGraphqlApiCommand\").f(void 0, void 0).ser(se_GetGraphqlApiCommand).de(de_GetGraphqlApiCommand).build() {\n static {\n __name(this, \"GetGraphqlApiCommand\");\n }\n};\n\n// src/commands/GetGraphqlApiEnvironmentVariablesCommand.ts\n\n\n\nvar GetGraphqlApiEnvironmentVariablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetGraphqlApiEnvironmentVariables\", {}).n(\"AppSyncClient\", \"GetGraphqlApiEnvironmentVariablesCommand\").f(void 0, void 0).ser(se_GetGraphqlApiEnvironmentVariablesCommand).de(de_GetGraphqlApiEnvironmentVariablesCommand).build() {\n static {\n __name(this, \"GetGraphqlApiEnvironmentVariablesCommand\");\n }\n};\n\n// src/commands/GetIntrospectionSchemaCommand.ts\n\n\n\nvar GetIntrospectionSchemaCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetIntrospectionSchema\", {}).n(\"AppSyncClient\", \"GetIntrospectionSchemaCommand\").f(void 0, void 0).ser(se_GetIntrospectionSchemaCommand).de(de_GetIntrospectionSchemaCommand).build() {\n static {\n __name(this, \"GetIntrospectionSchemaCommand\");\n }\n};\n\n// src/commands/GetResolverCommand.ts\n\n\n\nvar GetResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetResolver\", {}).n(\"AppSyncClient\", \"GetResolverCommand\").f(void 0, void 0).ser(se_GetResolverCommand).de(de_GetResolverCommand).build() {\n static {\n __name(this, \"GetResolverCommand\");\n }\n};\n\n// src/commands/GetSchemaCreationStatusCommand.ts\n\n\n\nvar GetSchemaCreationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetSchemaCreationStatus\", {}).n(\"AppSyncClient\", \"GetSchemaCreationStatusCommand\").f(void 0, void 0).ser(se_GetSchemaCreationStatusCommand).de(de_GetSchemaCreationStatusCommand).build() {\n static {\n __name(this, \"GetSchemaCreationStatusCommand\");\n }\n};\n\n// src/commands/GetSourceApiAssociationCommand.ts\n\n\n\nvar GetSourceApiAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetSourceApiAssociation\", {}).n(\"AppSyncClient\", \"GetSourceApiAssociationCommand\").f(void 0, void 0).ser(se_GetSourceApiAssociationCommand).de(de_GetSourceApiAssociationCommand).build() {\n static {\n __name(this, \"GetSourceApiAssociationCommand\");\n }\n};\n\n// src/commands/GetTypeCommand.ts\n\n\n\nvar GetTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetType\", {}).n(\"AppSyncClient\", \"GetTypeCommand\").f(void 0, void 0).ser(se_GetTypeCommand).de(de_GetTypeCommand).build() {\n static {\n __name(this, \"GetTypeCommand\");\n }\n};\n\n// src/commands/ListApiKeysCommand.ts\n\n\n\nvar ListApiKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListApiKeys\", {}).n(\"AppSyncClient\", \"ListApiKeysCommand\").f(void 0, void 0).ser(se_ListApiKeysCommand).de(de_ListApiKeysCommand).build() {\n static {\n __name(this, \"ListApiKeysCommand\");\n }\n};\n\n// src/commands/ListApisCommand.ts\n\n\n\nvar ListApisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListApis\", {}).n(\"AppSyncClient\", \"ListApisCommand\").f(void 0, void 0).ser(se_ListApisCommand).de(de_ListApisCommand).build() {\n static {\n __name(this, \"ListApisCommand\");\n }\n};\n\n// src/commands/ListChannelNamespacesCommand.ts\n\n\n\nvar ListChannelNamespacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListChannelNamespaces\", {}).n(\"AppSyncClient\", \"ListChannelNamespacesCommand\").f(void 0, void 0).ser(se_ListChannelNamespacesCommand).de(de_ListChannelNamespacesCommand).build() {\n static {\n __name(this, \"ListChannelNamespacesCommand\");\n }\n};\n\n// src/commands/ListDataSourcesCommand.ts\n\n\n\nvar ListDataSourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListDataSources\", {}).n(\"AppSyncClient\", \"ListDataSourcesCommand\").f(void 0, void 0).ser(se_ListDataSourcesCommand).de(de_ListDataSourcesCommand).build() {\n static {\n __name(this, \"ListDataSourcesCommand\");\n }\n};\n\n// src/commands/ListDomainNamesCommand.ts\n\n\n\nvar ListDomainNamesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListDomainNames\", {}).n(\"AppSyncClient\", \"ListDomainNamesCommand\").f(void 0, void 0).ser(se_ListDomainNamesCommand).de(de_ListDomainNamesCommand).build() {\n static {\n __name(this, \"ListDomainNamesCommand\");\n }\n};\n\n// src/commands/ListFunctionsCommand.ts\n\n\n\nvar ListFunctionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListFunctions\", {}).n(\"AppSyncClient\", \"ListFunctionsCommand\").f(void 0, void 0).ser(se_ListFunctionsCommand).de(de_ListFunctionsCommand).build() {\n static {\n __name(this, \"ListFunctionsCommand\");\n }\n};\n\n// src/commands/ListGraphqlApisCommand.ts\n\n\n\nvar ListGraphqlApisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListGraphqlApis\", {}).n(\"AppSyncClient\", \"ListGraphqlApisCommand\").f(void 0, void 0).ser(se_ListGraphqlApisCommand).de(de_ListGraphqlApisCommand).build() {\n static {\n __name(this, \"ListGraphqlApisCommand\");\n }\n};\n\n// src/commands/ListResolversByFunctionCommand.ts\n\n\n\nvar ListResolversByFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListResolversByFunction\", {}).n(\"AppSyncClient\", \"ListResolversByFunctionCommand\").f(void 0, void 0).ser(se_ListResolversByFunctionCommand).de(de_ListResolversByFunctionCommand).build() {\n static {\n __name(this, \"ListResolversByFunctionCommand\");\n }\n};\n\n// src/commands/ListResolversCommand.ts\n\n\n\nvar ListResolversCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListResolvers\", {}).n(\"AppSyncClient\", \"ListResolversCommand\").f(void 0, void 0).ser(se_ListResolversCommand).de(de_ListResolversCommand).build() {\n static {\n __name(this, \"ListResolversCommand\");\n }\n};\n\n// src/commands/ListSourceApiAssociationsCommand.ts\n\n\n\nvar ListSourceApiAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListSourceApiAssociations\", {}).n(\"AppSyncClient\", \"ListSourceApiAssociationsCommand\").f(void 0, void 0).ser(se_ListSourceApiAssociationsCommand).de(de_ListSourceApiAssociationsCommand).build() {\n static {\n __name(this, \"ListSourceApiAssociationsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListTagsForResource\", {}).n(\"AppSyncClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTypesByAssociationCommand.ts\n\n\n\nvar ListTypesByAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListTypesByAssociation\", {}).n(\"AppSyncClient\", \"ListTypesByAssociationCommand\").f(void 0, void 0).ser(se_ListTypesByAssociationCommand).de(de_ListTypesByAssociationCommand).build() {\n static {\n __name(this, \"ListTypesByAssociationCommand\");\n }\n};\n\n// src/commands/ListTypesCommand.ts\n\n\n\nvar ListTypesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListTypes\", {}).n(\"AppSyncClient\", \"ListTypesCommand\").f(void 0, void 0).ser(se_ListTypesCommand).de(de_ListTypesCommand).build() {\n static {\n __name(this, \"ListTypesCommand\");\n }\n};\n\n// src/commands/PutGraphqlApiEnvironmentVariablesCommand.ts\n\n\n\nvar PutGraphqlApiEnvironmentVariablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"PutGraphqlApiEnvironmentVariables\", {}).n(\"AppSyncClient\", \"PutGraphqlApiEnvironmentVariablesCommand\").f(void 0, void 0).ser(se_PutGraphqlApiEnvironmentVariablesCommand).de(de_PutGraphqlApiEnvironmentVariablesCommand).build() {\n static {\n __name(this, \"PutGraphqlApiEnvironmentVariablesCommand\");\n }\n};\n\n// src/commands/StartDataSourceIntrospectionCommand.ts\n\n\n\nvar StartDataSourceIntrospectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"StartDataSourceIntrospection\", {}).n(\"AppSyncClient\", \"StartDataSourceIntrospectionCommand\").f(void 0, void 0).ser(se_StartDataSourceIntrospectionCommand).de(de_StartDataSourceIntrospectionCommand).build() {\n static {\n __name(this, \"StartDataSourceIntrospectionCommand\");\n }\n};\n\n// src/commands/StartSchemaCreationCommand.ts\n\n\n\nvar StartSchemaCreationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"StartSchemaCreation\", {}).n(\"AppSyncClient\", \"StartSchemaCreationCommand\").f(void 0, void 0).ser(se_StartSchemaCreationCommand).de(de_StartSchemaCreationCommand).build() {\n static {\n __name(this, \"StartSchemaCreationCommand\");\n }\n};\n\n// src/commands/StartSchemaMergeCommand.ts\n\n\n\nvar StartSchemaMergeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"StartSchemaMerge\", {}).n(\"AppSyncClient\", \"StartSchemaMergeCommand\").f(void 0, void 0).ser(se_StartSchemaMergeCommand).de(de_StartSchemaMergeCommand).build() {\n static {\n __name(this, \"StartSchemaMergeCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"TagResource\", {}).n(\"AppSyncClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UntagResource\", {}).n(\"AppSyncClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateApiCacheCommand.ts\n\n\n\nvar UpdateApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateApiCache\", {}).n(\"AppSyncClient\", \"UpdateApiCacheCommand\").f(void 0, void 0).ser(se_UpdateApiCacheCommand).de(de_UpdateApiCacheCommand).build() {\n static {\n __name(this, \"UpdateApiCacheCommand\");\n }\n};\n\n// src/commands/UpdateApiCommand.ts\n\n\n\nvar UpdateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateApi\", {}).n(\"AppSyncClient\", \"UpdateApiCommand\").f(void 0, void 0).ser(se_UpdateApiCommand).de(de_UpdateApiCommand).build() {\n static {\n __name(this, \"UpdateApiCommand\");\n }\n};\n\n// src/commands/UpdateApiKeyCommand.ts\n\n\n\nvar UpdateApiKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateApiKey\", {}).n(\"AppSyncClient\", \"UpdateApiKeyCommand\").f(void 0, void 0).ser(se_UpdateApiKeyCommand).de(de_UpdateApiKeyCommand).build() {\n static {\n __name(this, \"UpdateApiKeyCommand\");\n }\n};\n\n// src/commands/UpdateChannelNamespaceCommand.ts\n\n\n\nvar UpdateChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateChannelNamespace\", {}).n(\"AppSyncClient\", \"UpdateChannelNamespaceCommand\").f(void 0, void 0).ser(se_UpdateChannelNamespaceCommand).de(de_UpdateChannelNamespaceCommand).build() {\n static {\n __name(this, \"UpdateChannelNamespaceCommand\");\n }\n};\n\n// src/commands/UpdateDataSourceCommand.ts\n\n\n\nvar UpdateDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateDataSource\", {}).n(\"AppSyncClient\", \"UpdateDataSourceCommand\").f(void 0, void 0).ser(se_UpdateDataSourceCommand).de(de_UpdateDataSourceCommand).build() {\n static {\n __name(this, \"UpdateDataSourceCommand\");\n }\n};\n\n// src/commands/UpdateDomainNameCommand.ts\n\n\n\nvar UpdateDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateDomainName\", {}).n(\"AppSyncClient\", \"UpdateDomainNameCommand\").f(void 0, void 0).ser(se_UpdateDomainNameCommand).de(de_UpdateDomainNameCommand).build() {\n static {\n __name(this, \"UpdateDomainNameCommand\");\n }\n};\n\n// src/commands/UpdateFunctionCommand.ts\n\n\n\nvar UpdateFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateFunction\", {}).n(\"AppSyncClient\", \"UpdateFunctionCommand\").f(void 0, void 0).ser(se_UpdateFunctionCommand).de(de_UpdateFunctionCommand).build() {\n static {\n __name(this, \"UpdateFunctionCommand\");\n }\n};\n\n// src/commands/UpdateGraphqlApiCommand.ts\n\n\n\nvar UpdateGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateGraphqlApi\", {}).n(\"AppSyncClient\", \"UpdateGraphqlApiCommand\").f(void 0, void 0).ser(se_UpdateGraphqlApiCommand).de(de_UpdateGraphqlApiCommand).build() {\n static {\n __name(this, \"UpdateGraphqlApiCommand\");\n }\n};\n\n// src/commands/UpdateResolverCommand.ts\n\n\n\nvar UpdateResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateResolver\", {}).n(\"AppSyncClient\", \"UpdateResolverCommand\").f(void 0, void 0).ser(se_UpdateResolverCommand).de(de_UpdateResolverCommand).build() {\n static {\n __name(this, \"UpdateResolverCommand\");\n }\n};\n\n// src/commands/UpdateSourceApiAssociationCommand.ts\n\n\n\nvar UpdateSourceApiAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateSourceApiAssociation\", {}).n(\"AppSyncClient\", \"UpdateSourceApiAssociationCommand\").f(void 0, void 0).ser(se_UpdateSourceApiAssociationCommand).de(de_UpdateSourceApiAssociationCommand).build() {\n static {\n __name(this, \"UpdateSourceApiAssociationCommand\");\n }\n};\n\n// src/commands/UpdateTypeCommand.ts\n\n\n\nvar UpdateTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateType\", {}).n(\"AppSyncClient\", \"UpdateTypeCommand\").f(void 0, void 0).ser(se_UpdateTypeCommand).de(de_UpdateTypeCommand).build() {\n static {\n __name(this, \"UpdateTypeCommand\");\n }\n};\n\n// src/AppSync.ts\nvar commands = {\n AssociateApiCommand,\n AssociateMergedGraphqlApiCommand,\n AssociateSourceGraphqlApiCommand,\n CreateApiCommand,\n CreateApiCacheCommand,\n CreateApiKeyCommand,\n CreateChannelNamespaceCommand,\n CreateDataSourceCommand,\n CreateDomainNameCommand,\n CreateFunctionCommand,\n CreateGraphqlApiCommand,\n CreateResolverCommand,\n CreateTypeCommand,\n DeleteApiCommand,\n DeleteApiCacheCommand,\n DeleteApiKeyCommand,\n DeleteChannelNamespaceCommand,\n DeleteDataSourceCommand,\n DeleteDomainNameCommand,\n DeleteFunctionCommand,\n DeleteGraphqlApiCommand,\n DeleteResolverCommand,\n DeleteTypeCommand,\n DisassociateApiCommand,\n DisassociateMergedGraphqlApiCommand,\n DisassociateSourceGraphqlApiCommand,\n EvaluateCodeCommand,\n EvaluateMappingTemplateCommand,\n FlushApiCacheCommand,\n GetApiCommand,\n GetApiAssociationCommand,\n GetApiCacheCommand,\n GetChannelNamespaceCommand,\n GetDataSourceCommand,\n GetDataSourceIntrospectionCommand,\n GetDomainNameCommand,\n GetFunctionCommand,\n GetGraphqlApiCommand,\n GetGraphqlApiEnvironmentVariablesCommand,\n GetIntrospectionSchemaCommand,\n GetResolverCommand,\n GetSchemaCreationStatusCommand,\n GetSourceApiAssociationCommand,\n GetTypeCommand,\n ListApiKeysCommand,\n ListApisCommand,\n ListChannelNamespacesCommand,\n ListDataSourcesCommand,\n ListDomainNamesCommand,\n ListFunctionsCommand,\n ListGraphqlApisCommand,\n ListResolversCommand,\n ListResolversByFunctionCommand,\n ListSourceApiAssociationsCommand,\n ListTagsForResourceCommand,\n ListTypesCommand,\n ListTypesByAssociationCommand,\n PutGraphqlApiEnvironmentVariablesCommand,\n StartDataSourceIntrospectionCommand,\n StartSchemaCreationCommand,\n StartSchemaMergeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateApiCommand,\n UpdateApiCacheCommand,\n UpdateApiKeyCommand,\n UpdateChannelNamespaceCommand,\n UpdateDataSourceCommand,\n UpdateDomainNameCommand,\n UpdateFunctionCommand,\n UpdateGraphqlApiCommand,\n UpdateResolverCommand,\n UpdateSourceApiAssociationCommand,\n UpdateTypeCommand\n};\nvar AppSync = class extends AppSyncClient {\n static {\n __name(this, \"AppSync\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, AppSync);\n\n// src/pagination/ListApiKeysPaginator.ts\n\nvar paginateListApiKeys = (0, import_core.createPaginator)(AppSyncClient, ListApiKeysCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListApisPaginator.ts\n\nvar paginateListApis = (0, import_core.createPaginator)(AppSyncClient, ListApisCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListChannelNamespacesPaginator.ts\n\nvar paginateListChannelNamespaces = (0, import_core.createPaginator)(AppSyncClient, ListChannelNamespacesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListDataSourcesPaginator.ts\n\nvar paginateListDataSources = (0, import_core.createPaginator)(AppSyncClient, ListDataSourcesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListDomainNamesPaginator.ts\n\nvar paginateListDomainNames = (0, import_core.createPaginator)(AppSyncClient, ListDomainNamesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListFunctionsPaginator.ts\n\nvar paginateListFunctions = (0, import_core.createPaginator)(AppSyncClient, ListFunctionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListGraphqlApisPaginator.ts\n\nvar paginateListGraphqlApis = (0, import_core.createPaginator)(AppSyncClient, ListGraphqlApisCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListResolversByFunctionPaginator.ts\n\nvar paginateListResolversByFunction = (0, import_core.createPaginator)(AppSyncClient, ListResolversByFunctionCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListResolversPaginator.ts\n\nvar paginateListResolvers = (0, import_core.createPaginator)(AppSyncClient, ListResolversCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSourceApiAssociationsPaginator.ts\n\nvar paginateListSourceApiAssociations = (0, import_core.createPaginator)(AppSyncClient, ListSourceApiAssociationsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTypesByAssociationPaginator.ts\n\nvar paginateListTypesByAssociation = (0, import_core.createPaginator)(AppSyncClient, ListTypesByAssociationCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTypesPaginator.ts\n\nvar paginateListTypes = (0, import_core.createPaginator)(AppSyncClient, ListTypesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n AppSyncServiceException,\n __Client,\n AppSyncClient,\n AppSync,\n $Command,\n AssociateApiCommand,\n AssociateMergedGraphqlApiCommand,\n AssociateSourceGraphqlApiCommand,\n CreateApiCacheCommand,\n CreateApiCommand,\n CreateApiKeyCommand,\n CreateChannelNamespaceCommand,\n CreateDataSourceCommand,\n CreateDomainNameCommand,\n CreateFunctionCommand,\n CreateGraphqlApiCommand,\n CreateResolverCommand,\n CreateTypeCommand,\n DeleteApiCacheCommand,\n DeleteApiCommand,\n DeleteApiKeyCommand,\n DeleteChannelNamespaceCommand,\n DeleteDataSourceCommand,\n DeleteDomainNameCommand,\n DeleteFunctionCommand,\n DeleteGraphqlApiCommand,\n DeleteResolverCommand,\n DeleteTypeCommand,\n DisassociateApiCommand,\n DisassociateMergedGraphqlApiCommand,\n DisassociateSourceGraphqlApiCommand,\n EvaluateCodeCommand,\n EvaluateMappingTemplateCommand,\n FlushApiCacheCommand,\n GetApiAssociationCommand,\n GetApiCacheCommand,\n GetApiCommand,\n GetChannelNamespaceCommand,\n GetDataSourceCommand,\n GetDataSourceIntrospectionCommand,\n GetDomainNameCommand,\n GetFunctionCommand,\n GetGraphqlApiCommand,\n GetGraphqlApiEnvironmentVariablesCommand,\n GetIntrospectionSchemaCommand,\n GetResolverCommand,\n GetSchemaCreationStatusCommand,\n GetSourceApiAssociationCommand,\n GetTypeCommand,\n ListApiKeysCommand,\n ListApisCommand,\n ListChannelNamespacesCommand,\n ListDataSourcesCommand,\n ListDomainNamesCommand,\n ListFunctionsCommand,\n ListGraphqlApisCommand,\n ListResolversByFunctionCommand,\n ListResolversCommand,\n ListSourceApiAssociationsCommand,\n ListTagsForResourceCommand,\n ListTypesByAssociationCommand,\n ListTypesCommand,\n PutGraphqlApiEnvironmentVariablesCommand,\n StartDataSourceIntrospectionCommand,\n StartSchemaCreationCommand,\n StartSchemaMergeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateApiCacheCommand,\n UpdateApiCommand,\n UpdateApiKeyCommand,\n UpdateChannelNamespaceCommand,\n UpdateDataSourceCommand,\n UpdateDomainNameCommand,\n UpdateFunctionCommand,\n UpdateGraphqlApiCommand,\n UpdateResolverCommand,\n UpdateSourceApiAssociationCommand,\n UpdateTypeCommand,\n paginateListApiKeys,\n paginateListApis,\n paginateListChannelNamespaces,\n paginateListDataSources,\n paginateListDomainNames,\n paginateListFunctions,\n paginateListGraphqlApis,\n paginateListResolversByFunction,\n paginateListResolvers,\n paginateListSourceApiAssociations,\n paginateListTypesByAssociation,\n paginateListTypes,\n AccessDeniedException,\n AuthenticationType,\n EventLogLevel,\n AssociationStatus,\n ApiCachingBehavior,\n CacheHealthMetricsConfig,\n ApiCacheStatus,\n ApiCacheType,\n ApiKeyLimitExceededException,\n ApiKeyValidityOutOfBoundsException,\n ApiLimitExceededException,\n RuntimeName,\n BadRequestReason,\n BadRequestException,\n InternalFailureException,\n NotFoundException,\n MergeType,\n SourceApiAssociationStatus,\n ConcurrentModificationException,\n LimitExceededException,\n UnauthorizedException,\n AuthorizationType,\n ServiceQuotaExceededException,\n ConflictException,\n HandlerBehavior,\n InvokeType,\n DataSourceLevelMetricsConfig,\n RelationalDatabaseSourceType,\n DataSourceType,\n ConflictDetectionType,\n ConflictHandlerType,\n GraphQLApiType,\n DataSourceLevelMetricsBehavior,\n OperationLevelMetricsConfig,\n ResolverLevelMetricsBehavior,\n GraphQLApiIntrospectionConfig,\n FieldLogLevel,\n DefaultAction,\n GraphQLApiVisibility,\n ResolverKind,\n ResolverLevelMetricsConfig,\n TypeDefinitionFormat,\n DataSourceIntrospectionStatus,\n OutputType,\n GraphQLSchemaException,\n SchemaStatus,\n Ownership\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2017-07-25\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultAppSyncHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"AppSync\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultBedrockAgentCoreControlHttpAuthSchemeProvider = exports.defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: await (0, util_middleware_1.normalizeProvider)(config.region)() || (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider = defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"bedrock-agentcore\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultBedrockAgentCoreControlHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultBedrockAgentCoreControlHttpAuthSchemeProvider = defaultBedrockAgentCoreControlHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, httpAuthSchemes_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bdd = void 0;\nconst util_endpoints_1 = require(\"@smithy/util-endpoints\");\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]]\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://bedrock-agentcore-control-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://bedrock-agentcore-control-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://bedrock-agentcore-control.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://bedrock-agentcore-control.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"]\n ]\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1, 1, -1,\n 0, 12, 3,\n 1, 4, r + 11,\n 2, 5, r + 11,\n 3, 8, 6,\n 4, 7, r + 10,\n 5, r + 8, r + 9,\n 4, 10, 9,\n 6, r + 6, r + 7,\n 5, 11, r + 5,\n 6, r + 4, r + 5,\n 3, r + 1, 13,\n 4, r + 2, r + 3,\n]);\nexports.bdd = util_endpoints_1.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst bdd_1 = require(\"./bdd\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.decideEndpoint)(bdd_1.bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","'use strict';\n\nvar middlewareHostHeader = require('@aws-sdk/middleware-host-header');\nvar middlewareLogger = require('@aws-sdk/middleware-logger');\nvar middlewareRecursionDetection = require('@aws-sdk/middleware-recursion-detection');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\nvar configResolver = require('@smithy/config-resolver');\nvar core = require('@smithy/core');\nvar schema = require('@smithy/core/schema');\nvar middlewareContentLength = require('@smithy/middleware-content-length');\nvar middlewareEndpoint = require('@smithy/middleware-endpoint');\nvar middlewareRetry = require('@smithy/middleware-retry');\nvar smithyClient = require('@smithy/smithy-client');\nvar httpAuthSchemeProvider = require('./auth/httpAuthSchemeProvider');\nvar runtimeConfig = require('./runtimeConfig');\nvar regionConfigResolver = require('@aws-sdk/region-config-resolver');\nvar protocolHttp = require('@smithy/protocol-http');\nvar schemas_0 = require('./schemas/schemas_0');\nvar utilWaiter = require('@smithy/util-waiter');\nvar errors = require('./models/errors');\nvar BedrockAgentCoreControlServiceException = require('./models/BedrockAgentCoreControlServiceException');\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"bedrock-agentcore\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(regionConfigResolver.getAwsRegionExtensionConfiguration(runtimeConfig), smithyClient.getDefaultExtensionConfiguration(runtimeConfig), protocolHttp.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, regionConfigResolver.resolveAwsRegionExtensionConfiguration(extensionConfiguration), smithyClient.resolveDefaultRuntimeConfig(extensionConfiguration), protocolHttp.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass BedrockAgentCoreControlClient extends smithyClient.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = runtimeConfig.getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = middlewareUserAgent.resolveUserAgentConfig(_config_1);\n const _config_3 = middlewareRetry.resolveRetryConfig(_config_2);\n const _config_4 = configResolver.resolveRegionConfig(_config_3);\n const _config_5 = middlewareHostHeader.resolveHostHeaderConfig(_config_4);\n const _config_6 = middlewareEndpoint.resolveEndpointConfig(_config_5);\n const _config_7 = httpAuthSchemeProvider.resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(middlewareUserAgent.getUserAgentPlugin(this.config));\n this.middlewareStack.use(middlewareRetry.getRetryPlugin(this.config));\n this.middlewareStack.use(middlewareContentLength.getContentLengthPlugin(this.config));\n this.middlewareStack.use(middlewareHostHeader.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(middlewareLogger.getLoggerPlugin(this.config));\n this.middlewareStack.use(middlewareRecursionDetection.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider.defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass CreateAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateAgentRuntimeCommand\")\n .sc(schemas_0.CreateAgentRuntime$)\n .build() {\n}\n\nclass CreateAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateAgentRuntimeEndpointCommand\")\n .sc(schemas_0.CreateAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass CreateApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateApiKeyCredentialProviderCommand\")\n .sc(schemas_0.CreateApiKeyCredentialProvider$)\n .build() {\n}\n\nclass CreateBrowserCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateBrowser\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateBrowserCommand\")\n .sc(schemas_0.CreateBrowser$)\n .build() {\n}\n\nclass CreateBrowserProfileCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateBrowserProfile\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateBrowserProfileCommand\")\n .sc(schemas_0.CreateBrowserProfile$)\n .build() {\n}\n\nclass CreateCodeInterpreterCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateCodeInterpreter\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateCodeInterpreterCommand\")\n .sc(schemas_0.CreateCodeInterpreter$)\n .build() {\n}\n\nclass CreateEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateEvaluatorCommand\")\n .sc(schemas_0.CreateEvaluator$)\n .build() {\n}\n\nclass CreateGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateGatewayCommand\")\n .sc(schemas_0.CreateGateway$)\n .build() {\n}\n\nclass CreateGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateGatewayTargetCommand\")\n .sc(schemas_0.CreateGatewayTarget$)\n .build() {\n}\n\nclass CreateMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateMemoryCommand\")\n .sc(schemas_0.CreateMemory$)\n .build() {\n}\n\nclass CreateOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateOauth2CredentialProviderCommand\")\n .sc(schemas_0.CreateOauth2CredentialProvider$)\n .build() {\n}\n\nclass CreateOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateOnlineEvaluationConfigCommand\")\n .sc(schemas_0.CreateOnlineEvaluationConfig$)\n .build() {\n}\n\nclass CreatePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreatePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreatePolicyCommand\")\n .sc(schemas_0.CreatePolicy$)\n .build() {\n}\n\nclass CreatePolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreatePolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreatePolicyEngineCommand\")\n .sc(schemas_0.CreatePolicyEngine$)\n .build() {\n}\n\nclass CreateRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateRegistryCommand\")\n .sc(schemas_0.CreateRegistry$)\n .build() {\n}\n\nclass CreateRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateRegistryRecordCommand\")\n .sc(schemas_0.CreateRegistryRecord$)\n .build() {\n}\n\nclass CreateWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateWorkloadIdentityCommand\")\n .sc(schemas_0.CreateWorkloadIdentity$)\n .build() {\n}\n\nclass DeleteAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteAgentRuntimeCommand\")\n .sc(schemas_0.DeleteAgentRuntime$)\n .build() {\n}\n\nclass DeleteAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteAgentRuntimeEndpointCommand\")\n .sc(schemas_0.DeleteAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass DeleteApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteApiKeyCredentialProviderCommand\")\n .sc(schemas_0.DeleteApiKeyCredentialProvider$)\n .build() {\n}\n\nclass DeleteBrowserCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteBrowser\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteBrowserCommand\")\n .sc(schemas_0.DeleteBrowser$)\n .build() {\n}\n\nclass DeleteBrowserProfileCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteBrowserProfile\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteBrowserProfileCommand\")\n .sc(schemas_0.DeleteBrowserProfile$)\n .build() {\n}\n\nclass DeleteCodeInterpreterCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteCodeInterpreter\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteCodeInterpreterCommand\")\n .sc(schemas_0.DeleteCodeInterpreter$)\n .build() {\n}\n\nclass DeleteEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteEvaluatorCommand\")\n .sc(schemas_0.DeleteEvaluator$)\n .build() {\n}\n\nclass DeleteGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteGatewayCommand\")\n .sc(schemas_0.DeleteGateway$)\n .build() {\n}\n\nclass DeleteGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteGatewayTargetCommand\")\n .sc(schemas_0.DeleteGatewayTarget$)\n .build() {\n}\n\nclass DeleteMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteMemoryCommand\")\n .sc(schemas_0.DeleteMemory$)\n .build() {\n}\n\nclass DeleteOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteOauth2CredentialProviderCommand\")\n .sc(schemas_0.DeleteOauth2CredentialProvider$)\n .build() {\n}\n\nclass DeleteOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteOnlineEvaluationConfigCommand\")\n .sc(schemas_0.DeleteOnlineEvaluationConfig$)\n .build() {\n}\n\nclass DeletePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeletePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeletePolicyCommand\")\n .sc(schemas_0.DeletePolicy$)\n .build() {\n}\n\nclass DeletePolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeletePolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeletePolicyEngineCommand\")\n .sc(schemas_0.DeletePolicyEngine$)\n .build() {\n}\n\nclass DeleteRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteRegistryCommand\")\n .sc(schemas_0.DeleteRegistry$)\n .build() {\n}\n\nclass DeleteRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteRegistryRecordCommand\")\n .sc(schemas_0.DeleteRegistryRecord$)\n .build() {\n}\n\nclass DeleteResourcePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteResourcePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteResourcePolicyCommand\")\n .sc(schemas_0.DeleteResourcePolicy$)\n .build() {\n}\n\nclass DeleteWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteWorkloadIdentityCommand\")\n .sc(schemas_0.DeleteWorkloadIdentity$)\n .build() {\n}\n\nclass GetAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetAgentRuntimeCommand\")\n .sc(schemas_0.GetAgentRuntime$)\n .build() {\n}\n\nclass GetAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetAgentRuntimeEndpointCommand\")\n .sc(schemas_0.GetAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass GetApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetApiKeyCredentialProviderCommand\")\n .sc(schemas_0.GetApiKeyCredentialProvider$)\n .build() {\n}\n\nclass GetBrowserCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetBrowser\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetBrowserCommand\")\n .sc(schemas_0.GetBrowser$)\n .build() {\n}\n\nclass GetBrowserProfileCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetBrowserProfile\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetBrowserProfileCommand\")\n .sc(schemas_0.GetBrowserProfile$)\n .build() {\n}\n\nclass GetCodeInterpreterCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetCodeInterpreter\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetCodeInterpreterCommand\")\n .sc(schemas_0.GetCodeInterpreter$)\n .build() {\n}\n\nclass GetEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetEvaluatorCommand\")\n .sc(schemas_0.GetEvaluator$)\n .build() {\n}\n\nclass GetGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetGatewayCommand\")\n .sc(schemas_0.GetGateway$)\n .build() {\n}\n\nclass GetGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetGatewayTargetCommand\")\n .sc(schemas_0.GetGatewayTarget$)\n .build() {\n}\n\nclass GetMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetMemoryCommand\")\n .sc(schemas_0.GetMemory$)\n .build() {\n}\n\nclass GetOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetOauth2CredentialProviderCommand\")\n .sc(schemas_0.GetOauth2CredentialProvider$)\n .build() {\n}\n\nclass GetOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetOnlineEvaluationConfigCommand\")\n .sc(schemas_0.GetOnlineEvaluationConfig$)\n .build() {\n}\n\nclass GetPolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetPolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetPolicyCommand\")\n .sc(schemas_0.GetPolicy$)\n .build() {\n}\n\nclass GetPolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetPolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetPolicyEngineCommand\")\n .sc(schemas_0.GetPolicyEngine$)\n .build() {\n}\n\nclass GetPolicyGenerationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetPolicyGeneration\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetPolicyGenerationCommand\")\n .sc(schemas_0.GetPolicyGeneration$)\n .build() {\n}\n\nclass GetRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetRegistryCommand\")\n .sc(schemas_0.GetRegistry$)\n .build() {\n}\n\nclass GetRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetRegistryRecordCommand\")\n .sc(schemas_0.GetRegistryRecord$)\n .build() {\n}\n\nclass GetResourcePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetResourcePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetResourcePolicyCommand\")\n .sc(schemas_0.GetResourcePolicy$)\n .build() {\n}\n\nclass GetTokenVaultCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetTokenVault\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetTokenVaultCommand\")\n .sc(schemas_0.GetTokenVault$)\n .build() {\n}\n\nclass GetWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetWorkloadIdentityCommand\")\n .sc(schemas_0.GetWorkloadIdentity$)\n .build() {\n}\n\nclass ListAgentRuntimeEndpointsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListAgentRuntimeEndpoints\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListAgentRuntimeEndpointsCommand\")\n .sc(schemas_0.ListAgentRuntimeEndpoints$)\n .build() {\n}\n\nclass ListAgentRuntimesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListAgentRuntimes\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListAgentRuntimesCommand\")\n .sc(schemas_0.ListAgentRuntimes$)\n .build() {\n}\n\nclass ListAgentRuntimeVersionsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListAgentRuntimeVersions\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListAgentRuntimeVersionsCommand\")\n .sc(schemas_0.ListAgentRuntimeVersions$)\n .build() {\n}\n\nclass ListApiKeyCredentialProvidersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListApiKeyCredentialProviders\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListApiKeyCredentialProvidersCommand\")\n .sc(schemas_0.ListApiKeyCredentialProviders$)\n .build() {\n}\n\nclass ListBrowserProfilesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListBrowserProfiles\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListBrowserProfilesCommand\")\n .sc(schemas_0.ListBrowserProfiles$)\n .build() {\n}\n\nclass ListBrowsersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListBrowsers\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListBrowsersCommand\")\n .sc(schemas_0.ListBrowsers$)\n .build() {\n}\n\nclass ListCodeInterpretersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListCodeInterpreters\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListCodeInterpretersCommand\")\n .sc(schemas_0.ListCodeInterpreters$)\n .build() {\n}\n\nclass ListEvaluatorsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListEvaluators\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListEvaluatorsCommand\")\n .sc(schemas_0.ListEvaluators$)\n .build() {\n}\n\nclass ListGatewaysCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListGateways\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListGatewaysCommand\")\n .sc(schemas_0.ListGateways$)\n .build() {\n}\n\nclass ListGatewayTargetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListGatewayTargets\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListGatewayTargetsCommand\")\n .sc(schemas_0.ListGatewayTargets$)\n .build() {\n}\n\nclass ListMemoriesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListMemories\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListMemoriesCommand\")\n .sc(schemas_0.ListMemories$)\n .build() {\n}\n\nclass ListOauth2CredentialProvidersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListOauth2CredentialProviders\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListOauth2CredentialProvidersCommand\")\n .sc(schemas_0.ListOauth2CredentialProviders$)\n .build() {\n}\n\nclass ListOnlineEvaluationConfigsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListOnlineEvaluationConfigs\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListOnlineEvaluationConfigsCommand\")\n .sc(schemas_0.ListOnlineEvaluationConfigs$)\n .build() {\n}\n\nclass ListPoliciesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicies\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPoliciesCommand\")\n .sc(schemas_0.ListPolicies$)\n .build() {\n}\n\nclass ListPolicyEnginesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicyEngines\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPolicyEnginesCommand\")\n .sc(schemas_0.ListPolicyEngines$)\n .build() {\n}\n\nclass ListPolicyGenerationAssetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicyGenerationAssets\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPolicyGenerationAssetsCommand\")\n .sc(schemas_0.ListPolicyGenerationAssets$)\n .build() {\n}\n\nclass ListPolicyGenerationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicyGenerations\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPolicyGenerationsCommand\")\n .sc(schemas_0.ListPolicyGenerations$)\n .build() {\n}\n\nclass ListRegistriesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListRegistries\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListRegistriesCommand\")\n .sc(schemas_0.ListRegistries$)\n .build() {\n}\n\nclass ListRegistryRecordsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListRegistryRecords\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListRegistryRecordsCommand\")\n .sc(schemas_0.ListRegistryRecords$)\n .build() {\n}\n\nclass ListTagsForResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListTagsForResource\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListTagsForResourceCommand\")\n .sc(schemas_0.ListTagsForResource$)\n .build() {\n}\n\nclass ListWorkloadIdentitiesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListWorkloadIdentities\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListWorkloadIdentitiesCommand\")\n .sc(schemas_0.ListWorkloadIdentities$)\n .build() {\n}\n\nclass PutResourcePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"PutResourcePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"PutResourcePolicyCommand\")\n .sc(schemas_0.PutResourcePolicy$)\n .build() {\n}\n\nclass SetTokenVaultCMKCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"SetTokenVaultCMK\", {})\n .n(\"BedrockAgentCoreControlClient\", \"SetTokenVaultCMKCommand\")\n .sc(schemas_0.SetTokenVaultCMK$)\n .build() {\n}\n\nclass StartPolicyGenerationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"StartPolicyGeneration\", {})\n .n(\"BedrockAgentCoreControlClient\", \"StartPolicyGenerationCommand\")\n .sc(schemas_0.StartPolicyGeneration$)\n .build() {\n}\n\nclass SubmitRegistryRecordForApprovalCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"SubmitRegistryRecordForApproval\", {})\n .n(\"BedrockAgentCoreControlClient\", \"SubmitRegistryRecordForApprovalCommand\")\n .sc(schemas_0.SubmitRegistryRecordForApproval$)\n .build() {\n}\n\nclass SynchronizeGatewayTargetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"SynchronizeGatewayTargets\", {})\n .n(\"BedrockAgentCoreControlClient\", \"SynchronizeGatewayTargetsCommand\")\n .sc(schemas_0.SynchronizeGatewayTargets$)\n .build() {\n}\n\nclass TagResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"TagResource\", {})\n .n(\"BedrockAgentCoreControlClient\", \"TagResourceCommand\")\n .sc(schemas_0.TagResource$)\n .build() {\n}\n\nclass UntagResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UntagResource\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UntagResourceCommand\")\n .sc(schemas_0.UntagResource$)\n .build() {\n}\n\nclass UpdateAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateAgentRuntimeCommand\")\n .sc(schemas_0.UpdateAgentRuntime$)\n .build() {\n}\n\nclass UpdateAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateAgentRuntimeEndpointCommand\")\n .sc(schemas_0.UpdateAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass UpdateApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateApiKeyCredentialProviderCommand\")\n .sc(schemas_0.UpdateApiKeyCredentialProvider$)\n .build() {\n}\n\nclass UpdateEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateEvaluatorCommand\")\n .sc(schemas_0.UpdateEvaluator$)\n .build() {\n}\n\nclass UpdateGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateGatewayCommand\")\n .sc(schemas_0.UpdateGateway$)\n .build() {\n}\n\nclass UpdateGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateGatewayTargetCommand\")\n .sc(schemas_0.UpdateGatewayTarget$)\n .build() {\n}\n\nclass UpdateMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateMemoryCommand\")\n .sc(schemas_0.UpdateMemory$)\n .build() {\n}\n\nclass UpdateOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateOauth2CredentialProviderCommand\")\n .sc(schemas_0.UpdateOauth2CredentialProvider$)\n .build() {\n}\n\nclass UpdateOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateOnlineEvaluationConfigCommand\")\n .sc(schemas_0.UpdateOnlineEvaluationConfig$)\n .build() {\n}\n\nclass UpdatePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdatePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdatePolicyCommand\")\n .sc(schemas_0.UpdatePolicy$)\n .build() {\n}\n\nclass UpdatePolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdatePolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdatePolicyEngineCommand\")\n .sc(schemas_0.UpdatePolicyEngine$)\n .build() {\n}\n\nclass UpdateRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateRegistryCommand\")\n .sc(schemas_0.UpdateRegistry$)\n .build() {\n}\n\nclass UpdateRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateRegistryRecordCommand\")\n .sc(schemas_0.UpdateRegistryRecord$)\n .build() {\n}\n\nclass UpdateRegistryRecordStatusCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateRegistryRecordStatus\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateRegistryRecordStatusCommand\")\n .sc(schemas_0.UpdateRegistryRecordStatus$)\n .build() {\n}\n\nclass UpdateWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateWorkloadIdentityCommand\")\n .sc(schemas_0.UpdateWorkloadIdentity$)\n .build() {\n}\n\nconst paginateListAgentRuntimeEndpoints = core.createPaginator(BedrockAgentCoreControlClient, ListAgentRuntimeEndpointsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListAgentRuntimes = core.createPaginator(BedrockAgentCoreControlClient, ListAgentRuntimesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListAgentRuntimeVersions = core.createPaginator(BedrockAgentCoreControlClient, ListAgentRuntimeVersionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListApiKeyCredentialProviders = core.createPaginator(BedrockAgentCoreControlClient, ListApiKeyCredentialProvidersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListBrowserProfiles = core.createPaginator(BedrockAgentCoreControlClient, ListBrowserProfilesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListBrowsers = core.createPaginator(BedrockAgentCoreControlClient, ListBrowsersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListCodeInterpreters = core.createPaginator(BedrockAgentCoreControlClient, ListCodeInterpretersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListEvaluators = core.createPaginator(BedrockAgentCoreControlClient, ListEvaluatorsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListGateways = core.createPaginator(BedrockAgentCoreControlClient, ListGatewaysCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListGatewayTargets = core.createPaginator(BedrockAgentCoreControlClient, ListGatewayTargetsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListMemories = core.createPaginator(BedrockAgentCoreControlClient, ListMemoriesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListOauth2CredentialProviders = core.createPaginator(BedrockAgentCoreControlClient, ListOauth2CredentialProvidersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListOnlineEvaluationConfigs = core.createPaginator(BedrockAgentCoreControlClient, ListOnlineEvaluationConfigsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicies = core.createPaginator(BedrockAgentCoreControlClient, ListPoliciesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicyEngines = core.createPaginator(BedrockAgentCoreControlClient, ListPolicyEnginesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicyGenerationAssets = core.createPaginator(BedrockAgentCoreControlClient, ListPolicyGenerationAssetsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicyGenerations = core.createPaginator(BedrockAgentCoreControlClient, ListPolicyGenerationsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListRegistries = core.createPaginator(BedrockAgentCoreControlClient, ListRegistriesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListRegistryRecords = core.createPaginator(BedrockAgentCoreControlClient, ListRegistryRecordsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListWorkloadIdentities = core.createPaginator(BedrockAgentCoreControlClient, ListWorkloadIdentitiesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst checkState$5 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetMemoryCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.memory.status;\n };\n if (returnComparator() === \"CREATING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.memory.status;\n };\n if (returnComparator() === \"ACTIVE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.memory.status;\n };\n if (returnComparator() === \"FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForMemoryCreated = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n};\nconst waitUntilMemoryCreated = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$4 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"ACTIVE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n};\nconst waitUntilPolicyActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$3 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ResourceNotFoundException\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n};\nconst waitUntilPolicyDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$2 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyEngineCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"ACTIVE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyEngineActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n};\nconst waitUntilPolicyEngineActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$1 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyEngineCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ResourceNotFoundException\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyEngineDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n};\nconst waitUntilPolicyEngineDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyGenerationCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"GENERATED\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"GENERATING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"GENERATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyGenerationCompleted = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nconst waitUntilPolicyGenerationCompleted = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return utilWaiter.checkExceptions(result);\n};\n\nconst commands = {\n CreateAgentRuntimeCommand,\n CreateAgentRuntimeEndpointCommand,\n CreateApiKeyCredentialProviderCommand,\n CreateBrowserCommand,\n CreateBrowserProfileCommand,\n CreateCodeInterpreterCommand,\n CreateEvaluatorCommand,\n CreateGatewayCommand,\n CreateGatewayTargetCommand,\n CreateMemoryCommand,\n CreateOauth2CredentialProviderCommand,\n CreateOnlineEvaluationConfigCommand,\n CreatePolicyCommand,\n CreatePolicyEngineCommand,\n CreateRegistryCommand,\n CreateRegistryRecordCommand,\n CreateWorkloadIdentityCommand,\n DeleteAgentRuntimeCommand,\n DeleteAgentRuntimeEndpointCommand,\n DeleteApiKeyCredentialProviderCommand,\n DeleteBrowserCommand,\n DeleteBrowserProfileCommand,\n DeleteCodeInterpreterCommand,\n DeleteEvaluatorCommand,\n DeleteGatewayCommand,\n DeleteGatewayTargetCommand,\n DeleteMemoryCommand,\n DeleteOauth2CredentialProviderCommand,\n DeleteOnlineEvaluationConfigCommand,\n DeletePolicyCommand,\n DeletePolicyEngineCommand,\n DeleteRegistryCommand,\n DeleteRegistryRecordCommand,\n DeleteResourcePolicyCommand,\n DeleteWorkloadIdentityCommand,\n GetAgentRuntimeCommand,\n GetAgentRuntimeEndpointCommand,\n GetApiKeyCredentialProviderCommand,\n GetBrowserCommand,\n GetBrowserProfileCommand,\n GetCodeInterpreterCommand,\n GetEvaluatorCommand,\n GetGatewayCommand,\n GetGatewayTargetCommand,\n GetMemoryCommand,\n GetOauth2CredentialProviderCommand,\n GetOnlineEvaluationConfigCommand,\n GetPolicyCommand,\n GetPolicyEngineCommand,\n GetPolicyGenerationCommand,\n GetRegistryCommand,\n GetRegistryRecordCommand,\n GetResourcePolicyCommand,\n GetTokenVaultCommand,\n GetWorkloadIdentityCommand,\n ListAgentRuntimeEndpointsCommand,\n ListAgentRuntimesCommand,\n ListAgentRuntimeVersionsCommand,\n ListApiKeyCredentialProvidersCommand,\n ListBrowserProfilesCommand,\n ListBrowsersCommand,\n ListCodeInterpretersCommand,\n ListEvaluatorsCommand,\n ListGatewaysCommand,\n ListGatewayTargetsCommand,\n ListMemoriesCommand,\n ListOauth2CredentialProvidersCommand,\n ListOnlineEvaluationConfigsCommand,\n ListPoliciesCommand,\n ListPolicyEnginesCommand,\n ListPolicyGenerationAssetsCommand,\n ListPolicyGenerationsCommand,\n ListRegistriesCommand,\n ListRegistryRecordsCommand,\n ListTagsForResourceCommand,\n ListWorkloadIdentitiesCommand,\n PutResourcePolicyCommand,\n SetTokenVaultCMKCommand,\n StartPolicyGenerationCommand,\n SubmitRegistryRecordForApprovalCommand,\n SynchronizeGatewayTargetsCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAgentRuntimeCommand,\n UpdateAgentRuntimeEndpointCommand,\n UpdateApiKeyCredentialProviderCommand,\n UpdateEvaluatorCommand,\n UpdateGatewayCommand,\n UpdateGatewayTargetCommand,\n UpdateMemoryCommand,\n UpdateOauth2CredentialProviderCommand,\n UpdateOnlineEvaluationConfigCommand,\n UpdatePolicyCommand,\n UpdatePolicyEngineCommand,\n UpdateRegistryCommand,\n UpdateRegistryRecordCommand,\n UpdateRegistryRecordStatusCommand,\n UpdateWorkloadIdentityCommand,\n};\nconst paginators = {\n paginateListAgentRuntimeEndpoints,\n paginateListAgentRuntimes,\n paginateListAgentRuntimeVersions,\n paginateListApiKeyCredentialProviders,\n paginateListBrowserProfiles,\n paginateListBrowsers,\n paginateListCodeInterpreters,\n paginateListEvaluators,\n paginateListGateways,\n paginateListGatewayTargets,\n paginateListMemories,\n paginateListOauth2CredentialProviders,\n paginateListOnlineEvaluationConfigs,\n paginateListPolicies,\n paginateListPolicyEngines,\n paginateListPolicyGenerationAssets,\n paginateListPolicyGenerations,\n paginateListRegistries,\n paginateListRegistryRecords,\n paginateListWorkloadIdentities,\n};\nconst waiters = {\n waitUntilMemoryCreated,\n waitUntilPolicyActive,\n waitUntilPolicyDeleted,\n waitUntilPolicyEngineActive,\n waitUntilPolicyEngineDeleted,\n waitUntilPolicyGenerationCompleted,\n};\nclass BedrockAgentCoreControl extends BedrockAgentCoreControlClient {\n}\nsmithyClient.createAggregatedClient(commands, BedrockAgentCoreControl, { paginators, waiters });\n\nconst AgentRuntimeEndpointStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst ValidationExceptionReason = {\n CANNOT_PARSE: \"CannotParse\",\n FIELD_VALIDATION_FAILED: \"FieldValidationFailed\",\n IDEMPOTENT_PARAMETER_MISMATCH_EXCEPTION: \"IdempotentParameterMismatchException\",\n RESOURCE_CONFLICT: \"ResourceConflict\",\n ROOT_EVENT_IN_OTHER_SESSION: \"EventInOtherSession\",\n};\nconst AgentManagedRuntimeType = {\n PYTHON_3_10: \"PYTHON_3_10\",\n PYTHON_3_11: \"PYTHON_3_11\",\n PYTHON_3_12: \"PYTHON_3_12\",\n PYTHON_3_13: \"PYTHON_3_13\",\n PYTHON_3_14: \"PYTHON_3_14\",\n};\nconst ClaimMatchOperatorType = {\n CONTAINS: \"CONTAINS\",\n CONTAINS_ANY: \"CONTAINS_ANY\",\n EQUALS: \"EQUALS\",\n};\nconst InboundTokenClaimValueType = {\n STRING: \"STRING\",\n STRING_ARRAY: \"STRING_ARRAY\",\n};\nconst NetworkMode = {\n PUBLIC: \"PUBLIC\",\n VPC: \"VPC\",\n};\nconst ServerProtocol = {\n A2A: \"A2A\",\n AGUI: \"AGUI\",\n HTTP: \"HTTP\",\n MCP: \"MCP\",\n};\nconst AgentRuntimeStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst BrowserProfileStatus = {\n DELETED: \"DELETED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n SAVING: \"SAVING\",\n};\nconst BrowserEnterprisePolicyType = {\n MANAGED: \"MANAGED\",\n RECOMMENDED: \"RECOMMENDED\",\n};\nconst BrowserNetworkMode = {\n PUBLIC: \"PUBLIC\",\n VPC: \"VPC\",\n};\nconst BrowserStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETED: \"DELETED\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n};\nconst ResourceType = {\n CUSTOM: \"CUSTOM\",\n SYSTEM: \"SYSTEM\",\n};\nconst CodeInterpreterNetworkMode = {\n PUBLIC: \"PUBLIC\",\n SANDBOX: \"SANDBOX\",\n VPC: \"VPC\",\n};\nconst CodeInterpreterStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETED: \"DELETED\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n};\nconst EvaluatorLevel = {\n SESSION: \"SESSION\",\n TOOL_CALL: \"TOOL_CALL\",\n TRACE: \"TRACE\",\n};\nconst EvaluatorStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst EvaluatorType = {\n BUILTIN: \"Builtin\",\n CODE: \"CustomCode\",\n CUSTOM: \"Custom\",\n};\nconst AuthorizerType = {\n AWS_IAM: \"AWS_IAM\",\n CUSTOM_JWT: \"CUSTOM_JWT\",\n NONE: \"NONE\",\n};\nconst ExceptionLevel = {\n DEBUG: \"DEBUG\",\n};\nconst GatewayInterceptionPoint = {\n REQUEST: \"REQUEST\",\n RESPONSE: \"RESPONSE\",\n};\nconst GatewayPolicyEngineMode = {\n ENFORCE: \"ENFORCE\",\n LOG_ONLY: \"LOG_ONLY\",\n};\nconst SearchType = {\n SEMANTIC: \"SEMANTIC\",\n};\nconst GatewayProtocolType = {\n MCP: \"MCP\",\n};\nconst GatewayStatus = {\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n READY: \"READY\",\n UPDATE_UNSUCCESSFUL: \"UPDATE_UNSUCCESSFUL\",\n UPDATING: \"UPDATING\",\n};\nconst ApiKeyCredentialLocation = {\n HEADER: \"HEADER\",\n QUERY_PARAMETER: \"QUERY_PARAMETER\",\n};\nconst OAuthGrantType = {\n AUTHORIZATION_CODE: \"AUTHORIZATION_CODE\",\n CLIENT_CREDENTIALS: \"CLIENT_CREDENTIALS\",\n};\nconst CredentialProviderType = {\n API_KEY: \"API_KEY\",\n GATEWAY_IAM_ROLE: \"GATEWAY_IAM_ROLE\",\n OAUTH: \"OAUTH\",\n};\nconst EndpointIpAddressType = {\n IPV4: \"IPV4\",\n IPV6: \"IPV6\",\n};\nconst RestApiMethod = {\n DELETE: \"DELETE\",\n GET: \"GET\",\n HEAD: \"HEAD\",\n OPTIONS: \"OPTIONS\",\n PATCH: \"PATCH\",\n POST: \"POST\",\n PUT: \"PUT\",\n};\nconst SchemaType = {\n ARRAY: \"array\",\n BOOLEAN: \"boolean\",\n INTEGER: \"integer\",\n NUMBER: \"number\",\n OBJECT: \"object\",\n STRING: \"string\",\n};\nconst ListingMode = {\n DEFAULT: \"DEFAULT\",\n DYNAMIC: \"DYNAMIC\",\n};\nconst TargetStatus = {\n CREATE_PENDING_AUTH: \"CREATE_PENDING_AUTH\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n READY: \"READY\",\n SYNCHRONIZE_PENDING_AUTH: \"SYNCHRONIZE_PENDING_AUTH\",\n SYNCHRONIZE_UNSUCCESSFUL: \"SYNCHRONIZE_UNSUCCESSFUL\",\n SYNCHRONIZING: \"SYNCHRONIZING\",\n UPDATE_PENDING_AUTH: \"UPDATE_PENDING_AUTH\",\n UPDATE_UNSUCCESSFUL: \"UPDATE_UNSUCCESSFUL\",\n UPDATING: \"UPDATING\",\n};\nconst KeyType = {\n CustomerManagedKey: \"CustomerManagedKey\",\n ServiceManagedKey: \"ServiceManagedKey\",\n};\nconst ContentLevel = {\n FULL_CONTENT: \"FULL_CONTENT\",\n METADATA_ONLY: \"METADATA_ONLY\",\n};\nconst ContentType = {\n MEMORY_RECORDS: \"MEMORY_RECORDS\",\n};\nconst MemoryStatus = {\n ACTIVE: \"ACTIVE\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n};\nconst OverrideType = {\n EPISODIC_OVERRIDE: \"EPISODIC_OVERRIDE\",\n SELF_MANAGED: \"SELF_MANAGED\",\n SEMANTIC_OVERRIDE: \"SEMANTIC_OVERRIDE\",\n SUMMARY_OVERRIDE: \"SUMMARY_OVERRIDE\",\n USER_PREFERENCE_OVERRIDE: \"USER_PREFERENCE_OVERRIDE\",\n};\nconst MemoryStrategyStatus = {\n ACTIVE: \"ACTIVE\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n};\nconst MemoryStrategyType = {\n CUSTOM: \"CUSTOM\",\n EPISODIC: \"EPISODIC\",\n SEMANTIC: \"SEMANTIC\",\n SUMMARIZATION: \"SUMMARIZATION\",\n USER_PREFERENCE: \"USER_PREFERENCE\",\n};\nconst MemoryView = {\n FULL: \"full\",\n WITHOUT_DECRYPTION: \"without_decryption\",\n};\nconst CredentialProviderVendorType = {\n AtlassianOauth2: \"AtlassianOauth2\",\n Auth0Oauth2: \"Auth0Oauth2\",\n CognitoOauth2: \"CognitoOauth2\",\n CustomOauth2: \"CustomOauth2\",\n CyberArkOauth2: \"CyberArkOauth2\",\n DropboxOauth2: \"DropboxOauth2\",\n FacebookOauth2: \"FacebookOauth2\",\n FusionAuthOauth2: \"FusionAuthOauth2\",\n GithubOauth2: \"GithubOauth2\",\n GoogleOauth2: \"GoogleOauth2\",\n HubspotOauth2: \"HubspotOauth2\",\n LinkedinOauth2: \"LinkedinOauth2\",\n MicrosoftOauth2: \"MicrosoftOauth2\",\n NotionOauth2: \"NotionOauth2\",\n OktaOauth2: \"OktaOauth2\",\n OneLoginOauth2: \"OneLoginOauth2\",\n PingOneOauth2: \"PingOneOauth2\",\n RedditOauth2: \"RedditOauth2\",\n SalesforceOauth2: \"SalesforceOauth2\",\n SlackOauth2: \"SlackOauth2\",\n SpotifyOauth2: \"SpotifyOauth2\",\n TwitchOauth2: \"TwitchOauth2\",\n XOauth2: \"XOauth2\",\n YandexOauth2: \"YandexOauth2\",\n ZoomOauth2: \"ZoomOauth2\",\n};\nconst FilterOperator = {\n CONTAINS: \"Contains\",\n EQUALS: \"Equals\",\n GREATER_THAN: \"GreaterThan\",\n GREATER_THAN_OR_EQUAL: \"GreaterThanOrEqual\",\n LESS_THAN: \"LessThan\",\n LESS_THAN_OR_EQUAL: \"LessThanOrEqual\",\n NOT_CONTAINS: \"NotContains\",\n NOT_EQUALS: \"NotEquals\",\n};\nconst OnlineEvaluationExecutionStatus = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\",\n};\nconst OnlineEvaluationConfigStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst PolicyEngineStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst PolicyGenerationStatus = {\n DELETE_FAILED: \"DELETE_FAILED\",\n GENERATED: \"GENERATED\",\n GENERATE_FAILED: \"GENERATE_FAILED\",\n GENERATING: \"GENERATING\",\n};\nconst FindingType = {\n ALLOW_ALL: \"ALLOW_ALL\",\n ALLOW_NONE: \"ALLOW_NONE\",\n DENY_ALL: \"DENY_ALL\",\n DENY_NONE: \"DENY_NONE\",\n INVALID: \"INVALID\",\n NOT_TRANSLATABLE: \"NOT_TRANSLATABLE\",\n VALID: \"VALID\",\n};\nconst PolicyValidationMode = {\n FAIL_ON_ANY_FINDINGS: \"FAIL_ON_ANY_FINDINGS\",\n IGNORE_ALL_FINDINGS: \"IGNORE_ALL_FINDINGS\",\n};\nconst PolicyStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst DescriptorType = {\n A2A: \"A2A\",\n AGENT_SKILLS: \"AGENT_SKILLS\",\n CUSTOM: \"CUSTOM\",\n MCP: \"MCP\",\n};\nconst RegistryRecordOAuthGrantType = {\n CLIENT_CREDENTIALS: \"CLIENT_CREDENTIALS\",\n};\nconst RegistryRecordCredentialProviderType = {\n IAM: \"IAM\",\n OAUTH: \"OAUTH\",\n};\nconst SynchronizationType = {\n URL: \"URL\",\n};\nconst RegistryRecordStatus = {\n APPROVED: \"APPROVED\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DEPRECATED: \"DEPRECATED\",\n DRAFT: \"DRAFT\",\n PENDING_APPROVAL: \"PENDING_APPROVAL\",\n REJECTED: \"REJECTED\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst RegistryAuthorizerType = {\n AWS_IAM: \"AWS_IAM\",\n CUSTOM_JWT: \"CUSTOM_JWT\",\n};\nconst RegistryStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\n\nexports.$Command = smithyClient.Command;\nexports.__Client = smithyClient.Client;\nexports.BedrockAgentCoreControlServiceException = BedrockAgentCoreControlServiceException.BedrockAgentCoreControlServiceException;\nexports.AgentManagedRuntimeType = AgentManagedRuntimeType;\nexports.AgentRuntimeEndpointStatus = AgentRuntimeEndpointStatus;\nexports.AgentRuntimeStatus = AgentRuntimeStatus;\nexports.ApiKeyCredentialLocation = ApiKeyCredentialLocation;\nexports.AuthorizerType = AuthorizerType;\nexports.BedrockAgentCoreControl = BedrockAgentCoreControl;\nexports.BedrockAgentCoreControlClient = BedrockAgentCoreControlClient;\nexports.BrowserEnterprisePolicyType = BrowserEnterprisePolicyType;\nexports.BrowserNetworkMode = BrowserNetworkMode;\nexports.BrowserProfileStatus = BrowserProfileStatus;\nexports.BrowserStatus = BrowserStatus;\nexports.ClaimMatchOperatorType = ClaimMatchOperatorType;\nexports.CodeInterpreterNetworkMode = CodeInterpreterNetworkMode;\nexports.CodeInterpreterStatus = CodeInterpreterStatus;\nexports.ContentLevel = ContentLevel;\nexports.ContentType = ContentType;\nexports.CreateAgentRuntimeCommand = CreateAgentRuntimeCommand;\nexports.CreateAgentRuntimeEndpointCommand = CreateAgentRuntimeEndpointCommand;\nexports.CreateApiKeyCredentialProviderCommand = CreateApiKeyCredentialProviderCommand;\nexports.CreateBrowserCommand = CreateBrowserCommand;\nexports.CreateBrowserProfileCommand = CreateBrowserProfileCommand;\nexports.CreateCodeInterpreterCommand = CreateCodeInterpreterCommand;\nexports.CreateEvaluatorCommand = CreateEvaluatorCommand;\nexports.CreateGatewayCommand = CreateGatewayCommand;\nexports.CreateGatewayTargetCommand = CreateGatewayTargetCommand;\nexports.CreateMemoryCommand = CreateMemoryCommand;\nexports.CreateOauth2CredentialProviderCommand = CreateOauth2CredentialProviderCommand;\nexports.CreateOnlineEvaluationConfigCommand = CreateOnlineEvaluationConfigCommand;\nexports.CreatePolicyCommand = CreatePolicyCommand;\nexports.CreatePolicyEngineCommand = CreatePolicyEngineCommand;\nexports.CreateRegistryCommand = CreateRegistryCommand;\nexports.CreateRegistryRecordCommand = CreateRegistryRecordCommand;\nexports.CreateWorkloadIdentityCommand = CreateWorkloadIdentityCommand;\nexports.CredentialProviderType = CredentialProviderType;\nexports.CredentialProviderVendorType = CredentialProviderVendorType;\nexports.DeleteAgentRuntimeCommand = DeleteAgentRuntimeCommand;\nexports.DeleteAgentRuntimeEndpointCommand = DeleteAgentRuntimeEndpointCommand;\nexports.DeleteApiKeyCredentialProviderCommand = DeleteApiKeyCredentialProviderCommand;\nexports.DeleteBrowserCommand = DeleteBrowserCommand;\nexports.DeleteBrowserProfileCommand = DeleteBrowserProfileCommand;\nexports.DeleteCodeInterpreterCommand = DeleteCodeInterpreterCommand;\nexports.DeleteEvaluatorCommand = DeleteEvaluatorCommand;\nexports.DeleteGatewayCommand = DeleteGatewayCommand;\nexports.DeleteGatewayTargetCommand = DeleteGatewayTargetCommand;\nexports.DeleteMemoryCommand = DeleteMemoryCommand;\nexports.DeleteOauth2CredentialProviderCommand = DeleteOauth2CredentialProviderCommand;\nexports.DeleteOnlineEvaluationConfigCommand = DeleteOnlineEvaluationConfigCommand;\nexports.DeletePolicyCommand = DeletePolicyCommand;\nexports.DeletePolicyEngineCommand = DeletePolicyEngineCommand;\nexports.DeleteRegistryCommand = DeleteRegistryCommand;\nexports.DeleteRegistryRecordCommand = DeleteRegistryRecordCommand;\nexports.DeleteResourcePolicyCommand = DeleteResourcePolicyCommand;\nexports.DeleteWorkloadIdentityCommand = DeleteWorkloadIdentityCommand;\nexports.DescriptorType = DescriptorType;\nexports.EndpointIpAddressType = EndpointIpAddressType;\nexports.EvaluatorLevel = EvaluatorLevel;\nexports.EvaluatorStatus = EvaluatorStatus;\nexports.EvaluatorType = EvaluatorType;\nexports.ExceptionLevel = ExceptionLevel;\nexports.FilterOperator = FilterOperator;\nexports.FindingType = FindingType;\nexports.GatewayInterceptionPoint = GatewayInterceptionPoint;\nexports.GatewayPolicyEngineMode = GatewayPolicyEngineMode;\nexports.GatewayProtocolType = GatewayProtocolType;\nexports.GatewayStatus = GatewayStatus;\nexports.GetAgentRuntimeCommand = GetAgentRuntimeCommand;\nexports.GetAgentRuntimeEndpointCommand = GetAgentRuntimeEndpointCommand;\nexports.GetApiKeyCredentialProviderCommand = GetApiKeyCredentialProviderCommand;\nexports.GetBrowserCommand = GetBrowserCommand;\nexports.GetBrowserProfileCommand = GetBrowserProfileCommand;\nexports.GetCodeInterpreterCommand = GetCodeInterpreterCommand;\nexports.GetEvaluatorCommand = GetEvaluatorCommand;\nexports.GetGatewayCommand = GetGatewayCommand;\nexports.GetGatewayTargetCommand = GetGatewayTargetCommand;\nexports.GetMemoryCommand = GetMemoryCommand;\nexports.GetOauth2CredentialProviderCommand = GetOauth2CredentialProviderCommand;\nexports.GetOnlineEvaluationConfigCommand = GetOnlineEvaluationConfigCommand;\nexports.GetPolicyCommand = GetPolicyCommand;\nexports.GetPolicyEngineCommand = GetPolicyEngineCommand;\nexports.GetPolicyGenerationCommand = GetPolicyGenerationCommand;\nexports.GetRegistryCommand = GetRegistryCommand;\nexports.GetRegistryRecordCommand = GetRegistryRecordCommand;\nexports.GetResourcePolicyCommand = GetResourcePolicyCommand;\nexports.GetTokenVaultCommand = GetTokenVaultCommand;\nexports.GetWorkloadIdentityCommand = GetWorkloadIdentityCommand;\nexports.InboundTokenClaimValueType = InboundTokenClaimValueType;\nexports.KeyType = KeyType;\nexports.ListAgentRuntimeEndpointsCommand = ListAgentRuntimeEndpointsCommand;\nexports.ListAgentRuntimeVersionsCommand = ListAgentRuntimeVersionsCommand;\nexports.ListAgentRuntimesCommand = ListAgentRuntimesCommand;\nexports.ListApiKeyCredentialProvidersCommand = ListApiKeyCredentialProvidersCommand;\nexports.ListBrowserProfilesCommand = ListBrowserProfilesCommand;\nexports.ListBrowsersCommand = ListBrowsersCommand;\nexports.ListCodeInterpretersCommand = ListCodeInterpretersCommand;\nexports.ListEvaluatorsCommand = ListEvaluatorsCommand;\nexports.ListGatewayTargetsCommand = ListGatewayTargetsCommand;\nexports.ListGatewaysCommand = ListGatewaysCommand;\nexports.ListMemoriesCommand = ListMemoriesCommand;\nexports.ListOauth2CredentialProvidersCommand = ListOauth2CredentialProvidersCommand;\nexports.ListOnlineEvaluationConfigsCommand = ListOnlineEvaluationConfigsCommand;\nexports.ListPoliciesCommand = ListPoliciesCommand;\nexports.ListPolicyEnginesCommand = ListPolicyEnginesCommand;\nexports.ListPolicyGenerationAssetsCommand = ListPolicyGenerationAssetsCommand;\nexports.ListPolicyGenerationsCommand = ListPolicyGenerationsCommand;\nexports.ListRegistriesCommand = ListRegistriesCommand;\nexports.ListRegistryRecordsCommand = ListRegistryRecordsCommand;\nexports.ListTagsForResourceCommand = ListTagsForResourceCommand;\nexports.ListWorkloadIdentitiesCommand = ListWorkloadIdentitiesCommand;\nexports.ListingMode = ListingMode;\nexports.MemoryStatus = MemoryStatus;\nexports.MemoryStrategyStatus = MemoryStrategyStatus;\nexports.MemoryStrategyType = MemoryStrategyType;\nexports.MemoryView = MemoryView;\nexports.NetworkMode = NetworkMode;\nexports.OAuthGrantType = OAuthGrantType;\nexports.OnlineEvaluationConfigStatus = OnlineEvaluationConfigStatus;\nexports.OnlineEvaluationExecutionStatus = OnlineEvaluationExecutionStatus;\nexports.OverrideType = OverrideType;\nexports.PolicyEngineStatus = PolicyEngineStatus;\nexports.PolicyGenerationStatus = PolicyGenerationStatus;\nexports.PolicyStatus = PolicyStatus;\nexports.PolicyValidationMode = PolicyValidationMode;\nexports.PutResourcePolicyCommand = PutResourcePolicyCommand;\nexports.RegistryAuthorizerType = RegistryAuthorizerType;\nexports.RegistryRecordCredentialProviderType = RegistryRecordCredentialProviderType;\nexports.RegistryRecordOAuthGrantType = RegistryRecordOAuthGrantType;\nexports.RegistryRecordStatus = RegistryRecordStatus;\nexports.RegistryStatus = RegistryStatus;\nexports.ResourceType = ResourceType;\nexports.RestApiMethod = RestApiMethod;\nexports.SchemaType = SchemaType;\nexports.SearchType = SearchType;\nexports.ServerProtocol = ServerProtocol;\nexports.SetTokenVaultCMKCommand = SetTokenVaultCMKCommand;\nexports.StartPolicyGenerationCommand = StartPolicyGenerationCommand;\nexports.SubmitRegistryRecordForApprovalCommand = SubmitRegistryRecordForApprovalCommand;\nexports.SynchronizationType = SynchronizationType;\nexports.SynchronizeGatewayTargetsCommand = SynchronizeGatewayTargetsCommand;\nexports.TagResourceCommand = TagResourceCommand;\nexports.TargetStatus = TargetStatus;\nexports.UntagResourceCommand = UntagResourceCommand;\nexports.UpdateAgentRuntimeCommand = UpdateAgentRuntimeCommand;\nexports.UpdateAgentRuntimeEndpointCommand = UpdateAgentRuntimeEndpointCommand;\nexports.UpdateApiKeyCredentialProviderCommand = UpdateApiKeyCredentialProviderCommand;\nexports.UpdateEvaluatorCommand = UpdateEvaluatorCommand;\nexports.UpdateGatewayCommand = UpdateGatewayCommand;\nexports.UpdateGatewayTargetCommand = UpdateGatewayTargetCommand;\nexports.UpdateMemoryCommand = UpdateMemoryCommand;\nexports.UpdateOauth2CredentialProviderCommand = UpdateOauth2CredentialProviderCommand;\nexports.UpdateOnlineEvaluationConfigCommand = UpdateOnlineEvaluationConfigCommand;\nexports.UpdatePolicyCommand = UpdatePolicyCommand;\nexports.UpdatePolicyEngineCommand = UpdatePolicyEngineCommand;\nexports.UpdateRegistryCommand = UpdateRegistryCommand;\nexports.UpdateRegistryRecordCommand = UpdateRegistryRecordCommand;\nexports.UpdateRegistryRecordStatusCommand = UpdateRegistryRecordStatusCommand;\nexports.UpdateWorkloadIdentityCommand = UpdateWorkloadIdentityCommand;\nexports.ValidationExceptionReason = ValidationExceptionReason;\nexports.paginateListAgentRuntimeEndpoints = paginateListAgentRuntimeEndpoints;\nexports.paginateListAgentRuntimeVersions = paginateListAgentRuntimeVersions;\nexports.paginateListAgentRuntimes = paginateListAgentRuntimes;\nexports.paginateListApiKeyCredentialProviders = paginateListApiKeyCredentialProviders;\nexports.paginateListBrowserProfiles = paginateListBrowserProfiles;\nexports.paginateListBrowsers = paginateListBrowsers;\nexports.paginateListCodeInterpreters = paginateListCodeInterpreters;\nexports.paginateListEvaluators = paginateListEvaluators;\nexports.paginateListGatewayTargets = paginateListGatewayTargets;\nexports.paginateListGateways = paginateListGateways;\nexports.paginateListMemories = paginateListMemories;\nexports.paginateListOauth2CredentialProviders = paginateListOauth2CredentialProviders;\nexports.paginateListOnlineEvaluationConfigs = paginateListOnlineEvaluationConfigs;\nexports.paginateListPolicies = paginateListPolicies;\nexports.paginateListPolicyEngines = paginateListPolicyEngines;\nexports.paginateListPolicyGenerationAssets = paginateListPolicyGenerationAssets;\nexports.paginateListPolicyGenerations = paginateListPolicyGenerations;\nexports.paginateListRegistries = paginateListRegistries;\nexports.paginateListRegistryRecords = paginateListRegistryRecords;\nexports.paginateListWorkloadIdentities = paginateListWorkloadIdentities;\nexports.waitForMemoryCreated = waitForMemoryCreated;\nexports.waitForPolicyActive = waitForPolicyActive;\nexports.waitForPolicyDeleted = waitForPolicyDeleted;\nexports.waitForPolicyEngineActive = waitForPolicyEngineActive;\nexports.waitForPolicyEngineDeleted = waitForPolicyEngineDeleted;\nexports.waitForPolicyGenerationCompleted = waitForPolicyGenerationCompleted;\nexports.waitUntilMemoryCreated = waitUntilMemoryCreated;\nexports.waitUntilPolicyActive = waitUntilPolicyActive;\nexports.waitUntilPolicyDeleted = waitUntilPolicyDeleted;\nexports.waitUntilPolicyEngineActive = waitUntilPolicyEngineActive;\nexports.waitUntilPolicyEngineDeleted = waitUntilPolicyEngineDeleted;\nexports.waitUntilPolicyGenerationCompleted = waitUntilPolicyGenerationCompleted;\nObject.prototype.hasOwnProperty.call(schemas_0, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: schemas_0['__proto__']\n });\n\nObject.keys(schemas_0).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = schemas_0[k];\n});\nObject.prototype.hasOwnProperty.call(errors, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: errors['__proto__']\n });\n\nObject.keys(errors).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = errors[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BedrockAgentCoreControlServiceException = exports.__ServiceException = void 0;\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__ServiceException\", { enumerable: true, get: function () { return smithy_client_1.ServiceException; } });\nclass BedrockAgentCoreControlServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, BedrockAgentCoreControlServiceException.prototype);\n }\n}\nexports.BedrockAgentCoreControlServiceException = BedrockAgentCoreControlServiceException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConcurrentModificationException = exports.ThrottledException = exports.ServiceException = exports.UnauthorizedException = exports.ResourceLimitExceededException = exports.EncryptionFailure = exports.DecryptionFailure = exports.ValidationException = exports.ThrottlingException = exports.ServiceQuotaExceededException = exports.ResourceNotFoundException = exports.InternalServerException = exports.ConflictException = exports.AccessDeniedException = void 0;\nconst BedrockAgentCoreControlServiceException_1 = require(\"./BedrockAgentCoreControlServiceException\");\nclass AccessDeniedException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"AccessDeniedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n }\n}\nexports.AccessDeniedException = AccessDeniedException;\nclass ConflictException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ConflictException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConflictException.prototype);\n }\n}\nexports.ConflictException = ConflictException;\nclass InternalServerException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"InternalServerException\";\n $fault = \"server\";\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalServerException.prototype);\n }\n}\nexports.InternalServerException = InternalServerException;\nclass ResourceNotFoundException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexports.ResourceNotFoundException = ResourceNotFoundException;\nclass ServiceQuotaExceededException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype);\n }\n}\nexports.ServiceQuotaExceededException = ServiceQuotaExceededException;\nclass ThrottlingException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ThrottlingException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ThrottlingException.prototype);\n }\n}\nexports.ThrottlingException = ThrottlingException;\nclass ValidationException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ValidationException\";\n $fault = \"client\";\n reason;\n fieldList;\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ValidationException.prototype);\n this.reason = opts.reason;\n this.fieldList = opts.fieldList;\n }\n}\nexports.ValidationException = ValidationException;\nclass DecryptionFailure extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"DecryptionFailure\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"DecryptionFailure\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, DecryptionFailure.prototype);\n }\n}\nexports.DecryptionFailure = DecryptionFailure;\nclass EncryptionFailure extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"EncryptionFailure\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"EncryptionFailure\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, EncryptionFailure.prototype);\n }\n}\nexports.EncryptionFailure = EncryptionFailure;\nclass ResourceLimitExceededException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ResourceLimitExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceLimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceLimitExceededException.prototype);\n }\n}\nexports.ResourceLimitExceededException = ResourceLimitExceededException;\nclass UnauthorizedException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"UnauthorizedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnauthorizedException.prototype);\n }\n}\nexports.UnauthorizedException = UnauthorizedException;\nclass ServiceException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ServiceException\";\n $fault = \"server\";\n $retryable = {};\n constructor(opts) {\n super({\n name: \"ServiceException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, ServiceException.prototype);\n }\n}\nexports.ServiceException = ServiceException;\nclass ThrottledException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ThrottledException\";\n $fault = \"client\";\n $retryable = {};\n constructor(opts) {\n super({\n name: \"ThrottledException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ThrottledException.prototype);\n }\n}\nexports.ThrottledException = ThrottledException;\nclass ConcurrentModificationException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConcurrentModificationException.prototype);\n }\n}\nexports.ConcurrentModificationException = ConcurrentModificationException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_1.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, client_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(httpAuthSchemes_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ?? (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst protocols_1 = require(\"@aws-sdk/core/protocols\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst schemas_0_1 = require(\"./schemas/schemas_0\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2023-06-05\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultBedrockAgentCoreControlHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n protocol: config?.protocol ?? protocols_1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.bedrockagentcorecontrol\",\n errorTypeRegistries: schemas_0_1.errorTypeRegistries,\n version: \"2023-06-05\",\n serviceTarget: \"AmazonBedrockAgentCoreControl\",\n },\n serviceId: config?.serviceId ?? \"Bedrock AgentCore Control\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateAgentRuntimeRequest$ = exports.CreateAgentRuntimeEndpointResponse$ = exports.CreateAgentRuntimeEndpointRequest$ = exports.ContentConfiguration$ = exports.ContainerConfiguration$ = exports.CodeInterpreterSummary$ = exports.CodeInterpreterNetworkConfiguration$ = exports.CodeConfiguration$ = exports.CloudWatchOutputConfig$ = exports.CloudWatchLogsInputConfig$ = exports.Certificate$ = exports.CedarPolicy$ = exports.CategoricalScaleDefinition$ = exports.BrowserSummary$ = exports.BrowserSigningConfigOutput$ = exports.BrowserSigningConfigInput$ = exports.BrowserProfileSummary$ = exports.BrowserNetworkConfiguration$ = exports.BrowserEnterprisePolicy$ = exports.BedrockEvaluatorModelConfig$ = exports.AuthorizingClaimMatchValueType$ = exports.AtlassianOauth2ProviderConfigOutput$ = exports.AtlassianOauth2ProviderConfigInput$ = exports.ApprovalConfiguration$ = exports.ApiKeyCredentialProviderItem$ = exports.ApiGatewayToolOverride$ = exports.ApiGatewayToolFilter$ = exports.ApiGatewayToolConfiguration$ = exports.ApiGatewayTargetConfiguration$ = exports.AgentSkillsDescriptor$ = exports.AgentRuntimeEndpoint$ = exports.AgentRuntime$ = exports.AgentCardDefinition$ = exports.A2aDescriptor$ = exports.errorTypeRegistries = exports.ValidationException$ = exports.UnauthorizedException$ = exports.ThrottlingException$ = exports.ThrottledException$ = exports.ServiceQuotaExceededException$ = exports.ServiceException$ = exports.ResourceNotFoundException$ = exports.ResourceLimitExceededException$ = exports.InternalServerException$ = exports.EncryptionFailure$ = exports.DecryptionFailure$ = exports.ConflictException$ = exports.ConcurrentModificationException$ = exports.AccessDeniedException$ = exports.BedrockAgentCoreControlServiceException$ = void 0;\nexports.DeleteCodeInterpreterResponse$ = exports.DeleteCodeInterpreterRequest$ = exports.DeleteBrowserResponse$ = exports.DeleteBrowserRequest$ = exports.DeleteBrowserProfileResponse$ = exports.DeleteBrowserProfileRequest$ = exports.DeleteApiKeyCredentialProviderResponse$ = exports.DeleteApiKeyCredentialProviderRequest$ = exports.DeleteAgentRuntimeResponse$ = exports.DeleteAgentRuntimeRequest$ = exports.DeleteAgentRuntimeEndpointResponse$ = exports.DeleteAgentRuntimeEndpointRequest$ = exports.CustomOauth2ProviderConfigOutput$ = exports.CustomOauth2ProviderConfigInput$ = exports.CustomMemoryStrategyInput$ = exports.CustomJWTAuthorizerConfiguration$ = exports.CustomDescriptor$ = exports.CustomClaimValidationType$ = exports.CredentialProviderConfiguration$ = exports.CreateWorkloadIdentityResponse$ = exports.CreateWorkloadIdentityRequest$ = exports.CreateRegistryResponse$ = exports.CreateRegistryRequest$ = exports.CreateRegistryRecordResponse$ = exports.CreateRegistryRecordRequest$ = exports.CreatePolicyResponse$ = exports.CreatePolicyRequest$ = exports.CreatePolicyEngineResponse$ = exports.CreatePolicyEngineRequest$ = exports.CreateOnlineEvaluationConfigResponse$ = exports.CreateOnlineEvaluationConfigRequest$ = exports.CreateOauth2CredentialProviderResponse$ = exports.CreateOauth2CredentialProviderRequest$ = exports.CreateMemoryOutput$ = exports.CreateMemoryInput$ = exports.CreateGatewayTargetResponse$ = exports.CreateGatewayTargetRequest$ = exports.CreateGatewayResponse$ = exports.CreateGatewayRequest$ = exports.CreateEvaluatorResponse$ = exports.CreateEvaluatorRequest$ = exports.CreateCodeInterpreterResponse$ = exports.CreateCodeInterpreterRequest$ = exports.CreateBrowserResponse$ = exports.CreateBrowserRequest$ = exports.CreateBrowserProfileResponse$ = exports.CreateBrowserProfileRequest$ = exports.CreateApiKeyCredentialProviderResponse$ = exports.CreateApiKeyCredentialProviderRequest$ = exports.CreateAgentRuntimeResponse$ = void 0;\nexports.GetApiKeyCredentialProviderRequest$ = exports.GetAgentRuntimeResponse$ = exports.GetAgentRuntimeRequest$ = exports.GetAgentRuntimeEndpointResponse$ = exports.GetAgentRuntimeEndpointRequest$ = exports.GatewayTarget$ = exports.GatewaySummary$ = exports.GatewayPolicyEngineConfiguration$ = exports.GatewayInterceptorConfiguration$ = exports.GatewayApiKeyCredentialProvider$ = exports.FromUrlSynchronizationConfiguration$ = exports.Finding$ = exports.Filter$ = exports.EvaluatorSummary$ = exports.EpisodicReflectionOverride$ = exports.EpisodicReflectionConfigurationInput$ = exports.EpisodicReflectionConfiguration$ = exports.EpisodicOverrideReflectionConfigurationInput$ = exports.EpisodicOverrideExtractionConfigurationInput$ = exports.EpisodicOverrideConsolidationConfigurationInput$ = exports.EpisodicOverrideConfigurationInput$ = exports.EpisodicMemoryStrategyInput$ = exports.EpisodicExtractionOverride$ = exports.EpisodicConsolidationOverride$ = exports.Descriptors$ = exports.DeleteWorkloadIdentityResponse$ = exports.DeleteWorkloadIdentityRequest$ = exports.DeleteResourcePolicyResponse$ = exports.DeleteResourcePolicyRequest$ = exports.DeleteRegistryResponse$ = exports.DeleteRegistryRequest$ = exports.DeleteRegistryRecordResponse$ = exports.DeleteRegistryRecordRequest$ = exports.DeletePolicyResponse$ = exports.DeletePolicyRequest$ = exports.DeletePolicyEngineResponse$ = exports.DeletePolicyEngineRequest$ = exports.DeleteOnlineEvaluationConfigResponse$ = exports.DeleteOnlineEvaluationConfigRequest$ = exports.DeleteOauth2CredentialProviderResponse$ = exports.DeleteOauth2CredentialProviderRequest$ = exports.DeleteMemoryStrategyInput$ = exports.DeleteMemoryOutput$ = exports.DeleteMemoryInput$ = exports.DeleteGatewayTargetResponse$ = exports.DeleteGatewayTargetRequest$ = exports.DeleteGatewayResponse$ = exports.DeleteGatewayRequest$ = exports.DeleteEvaluatorResponse$ = exports.DeleteEvaluatorRequest$ = void 0;\nexports.LambdaInterceptorConfiguration$ = exports.LambdaEvaluatorConfig$ = exports.KmsConfiguration$ = exports.KinesisResource$ = exports.InvocationConfigurationInput$ = exports.InvocationConfiguration$ = exports.InterceptorInputConfiguration$ = exports.InferenceConfiguration$ = exports.IncludedOauth2ProviderConfigOutput$ = exports.IncludedOauth2ProviderConfigInput$ = exports.IamCredentialProvider$ = exports.GoogleOauth2ProviderConfigOutput$ = exports.GoogleOauth2ProviderConfigInput$ = exports.GithubOauth2ProviderConfigOutput$ = exports.GithubOauth2ProviderConfigInput$ = exports.GetWorkloadIdentityResponse$ = exports.GetWorkloadIdentityRequest$ = exports.GetTokenVaultResponse$ = exports.GetTokenVaultRequest$ = exports.GetResourcePolicyResponse$ = exports.GetResourcePolicyRequest$ = exports.GetRegistryResponse$ = exports.GetRegistryRequest$ = exports.GetRegistryRecordResponse$ = exports.GetRegistryRecordRequest$ = exports.GetPolicyResponse$ = exports.GetPolicyRequest$ = exports.GetPolicyGenerationResponse$ = exports.GetPolicyGenerationRequest$ = exports.GetPolicyEngineResponse$ = exports.GetPolicyEngineRequest$ = exports.GetOnlineEvaluationConfigResponse$ = exports.GetOnlineEvaluationConfigRequest$ = exports.GetOauth2CredentialProviderResponse$ = exports.GetOauth2CredentialProviderRequest$ = exports.GetMemoryOutput$ = exports.GetMemoryInput$ = exports.GetGatewayTargetResponse$ = exports.GetGatewayTargetRequest$ = exports.GetGatewayResponse$ = exports.GetGatewayRequest$ = exports.GetEvaluatorResponse$ = exports.GetEvaluatorRequest$ = exports.GetCodeInterpreterResponse$ = exports.GetCodeInterpreterRequest$ = exports.GetBrowserResponse$ = exports.GetBrowserRequest$ = exports.GetBrowserProfileResponse$ = exports.GetBrowserProfileRequest$ = exports.GetApiKeyCredentialProviderResponse$ = void 0;\nexports.MCPGatewayConfiguration$ = exports.McpDescriptor$ = exports.ManagedResourceDetails$ = exports.ManagedLatticeResource$ = exports.LlmAsAJudgeEvaluatorConfig$ = exports.ListWorkloadIdentitiesResponse$ = exports.ListWorkloadIdentitiesRequest$ = exports.ListTagsForResourceResponse$ = exports.ListTagsForResourceRequest$ = exports.ListRegistryRecordsResponse$ = exports.ListRegistryRecordsRequest$ = exports.ListRegistriesResponse$ = exports.ListRegistriesRequest$ = exports.ListPolicyGenerationsResponse$ = exports.ListPolicyGenerationsRequest$ = exports.ListPolicyGenerationAssetsResponse$ = exports.ListPolicyGenerationAssetsRequest$ = exports.ListPolicyEnginesResponse$ = exports.ListPolicyEnginesRequest$ = exports.ListPoliciesResponse$ = exports.ListPoliciesRequest$ = exports.ListOnlineEvaluationConfigsResponse$ = exports.ListOnlineEvaluationConfigsRequest$ = exports.ListOauth2CredentialProvidersResponse$ = exports.ListOauth2CredentialProvidersRequest$ = exports.ListMemoriesOutput$ = exports.ListMemoriesInput$ = exports.ListGatewayTargetsResponse$ = exports.ListGatewayTargetsRequest$ = exports.ListGatewaysResponse$ = exports.ListGatewaysRequest$ = exports.ListEvaluatorsResponse$ = exports.ListEvaluatorsRequest$ = exports.ListCodeInterpretersResponse$ = exports.ListCodeInterpretersRequest$ = exports.ListBrowsersResponse$ = exports.ListBrowsersRequest$ = exports.ListBrowserProfilesResponse$ = exports.ListBrowserProfilesRequest$ = exports.ListApiKeyCredentialProvidersResponse$ = exports.ListApiKeyCredentialProvidersRequest$ = exports.ListAgentRuntimeVersionsResponse$ = exports.ListAgentRuntimeVersionsRequest$ = exports.ListAgentRuntimesResponse$ = exports.ListAgentRuntimesRequest$ = exports.ListAgentRuntimeEndpointsResponse$ = exports.ListAgentRuntimeEndpointsRequest$ = exports.LinkedinOauth2ProviderConfigOutput$ = exports.LinkedinOauth2ProviderConfigInput$ = exports.LifecycleConfiguration$ = void 0;\nexports.SemanticConsolidationOverride$ = exports.SelfManagedConfigurationInput$ = exports.SelfManagedConfiguration$ = exports.SecretsManagerLocation$ = exports.Secret$ = exports.SchemaDefinition$ = exports.SamplingConfig$ = exports.SalesforceOauth2ProviderConfigOutput$ = exports.SalesforceOauth2ProviderConfigInput$ = exports.S3Location$ = exports.S3Configuration$ = exports.RuntimeMetadataConfiguration$ = exports.Rule$ = exports.RegistrySummary$ = exports.RegistryRecordSummary$ = exports.RegistryRecordOAuthCredentialProvider$ = exports.RegistryRecordIamCredentialProvider$ = exports.RegistryRecordCredentialProviderConfiguration$ = exports.RecordingConfig$ = exports.PutResourcePolicyResponse$ = exports.PutResourcePolicyRequest$ = exports.ProtocolConfiguration$ = exports.PolicyGenerationDetails$ = exports.PolicyGenerationAsset$ = exports.PolicyGeneration$ = exports.PolicyEngine$ = exports.Policy$ = exports.OutputConfig$ = exports.OnlineEvaluationConfigSummary$ = exports.OAuthCredentialProvider$ = exports.Oauth2CredentialProviderItem$ = exports.Oauth2AuthorizationServerMetadata$ = exports.OAuth2AuthorizationData$ = exports.NumericalScaleDefinition$ = exports.NetworkConfiguration$ = exports.ModifyStrategyConfiguration$ = exports.ModifySelfManagedConfiguration$ = exports.ModifyMemoryStrategyInput$ = exports.ModifyMemoryStrategies$ = exports.ModifyInvocationConfigurationInput$ = exports.MicrosoftOauth2ProviderConfigOutput$ = exports.MicrosoftOauth2ProviderConfigInput$ = exports.MetadataConfiguration$ = exports.MessageBasedTriggerInput$ = exports.MessageBasedTrigger$ = exports.MemorySummary$ = exports.MemoryStrategy$ = exports.Memory$ = exports.McpServerTargetConfiguration$ = exports.McpLambdaTargetConfiguration$ = void 0;\nexports.UpdatedCustomDescriptor$ = exports.UpdatedAuthorizerConfiguration$ = exports.UpdatedApprovalConfiguration$ = exports.UpdatedAgentSkillsDescriptorFields$ = exports.UpdatedAgentSkillsDescriptor$ = exports.UpdatedA2aDescriptor$ = exports.UpdateApiKeyCredentialProviderResponse$ = exports.UpdateApiKeyCredentialProviderRequest$ = exports.UpdateAgentRuntimeResponse$ = exports.UpdateAgentRuntimeRequest$ = exports.UpdateAgentRuntimeEndpointResponse$ = exports.UpdateAgentRuntimeEndpointRequest$ = exports.UntagResourceResponse$ = exports.UntagResourceRequest$ = exports.ToolsDefinition$ = exports.ToolDefinition$ = exports.TokenBasedTriggerInput$ = exports.TokenBasedTrigger$ = exports.TimeBasedTriggerInput$ = exports.TimeBasedTrigger$ = exports.TargetSummary$ = exports.TagResourceResponse$ = exports.TagResourceRequest$ = exports.SynchronizeGatewayTargetsResponse$ = exports.SynchronizeGatewayTargetsRequest$ = exports.SynchronizationConfiguration$ = exports.SummaryOverrideConsolidationConfigurationInput$ = exports.SummaryOverrideConfigurationInput$ = exports.SummaryMemoryStrategyInput$ = exports.SummaryConsolidationOverride$ = exports.SubmitRegistryRecordForApprovalResponse$ = exports.SubmitRegistryRecordForApprovalRequest$ = exports.StreamDeliveryResources$ = exports.StrategyConfiguration$ = exports.StartPolicyGenerationResponse$ = exports.StartPolicyGenerationRequest$ = exports.SlackOauth2ProviderConfigOutput$ = exports.SlackOauth2ProviderConfigInput$ = exports.SkillMdDefinition$ = exports.SkillDefinition$ = exports.SetTokenVaultCMKResponse$ = exports.SetTokenVaultCMKRequest$ = exports.SessionStorageConfiguration$ = exports.SessionConfig$ = exports.ServerDefinition$ = exports.SemanticOverrideExtractionConfigurationInput$ = exports.SemanticOverrideConsolidationConfigurationInput$ = exports.SemanticOverrideConfigurationInput$ = exports.SemanticMemoryStrategyInput$ = exports.SemanticExtractionOverride$ = void 0;\nexports.CertificateLocation$ = exports.AuthorizerConfiguration$ = exports.AuthorizationData$ = exports.ApiSchemaConfiguration$ = exports.AgentRuntimeArtifact$ = exports.WorkloadIdentityType$ = exports.WorkloadIdentityDetails$ = exports.VpcConfig$ = exports.ValidationExceptionField$ = exports.UserPreferenceOverrideExtractionConfigurationInput$ = exports.UserPreferenceOverrideConsolidationConfigurationInput$ = exports.UserPreferenceOverrideConfigurationInput$ = exports.UserPreferenceMemoryStrategyInput$ = exports.UserPreferenceExtractionOverride$ = exports.UserPreferenceConsolidationOverride$ = exports.UpdateWorkloadIdentityResponse$ = exports.UpdateWorkloadIdentityRequest$ = exports.UpdateRegistryResponse$ = exports.UpdateRegistryRequest$ = exports.UpdateRegistryRecordStatusResponse$ = exports.UpdateRegistryRecordStatusRequest$ = exports.UpdateRegistryRecordResponse$ = exports.UpdateRegistryRecordRequest$ = exports.UpdatePolicyResponse$ = exports.UpdatePolicyRequest$ = exports.UpdatePolicyEngineResponse$ = exports.UpdatePolicyEngineRequest$ = exports.UpdateOnlineEvaluationConfigResponse$ = exports.UpdateOnlineEvaluationConfigRequest$ = exports.UpdateOauth2CredentialProviderResponse$ = exports.UpdateOauth2CredentialProviderRequest$ = exports.UpdateMemoryOutput$ = exports.UpdateMemoryInput$ = exports.UpdateGatewayTargetResponse$ = exports.UpdateGatewayTargetRequest$ = exports.UpdateGatewayResponse$ = exports.UpdateGatewayRequest$ = exports.UpdateEvaluatorResponse$ = exports.UpdateEvaluatorRequest$ = exports.UpdatedToolsDefinition$ = exports.UpdatedSynchronizationType$ = exports.UpdatedSynchronizationConfiguration$ = exports.UpdatedSkillMdDefinition$ = exports.UpdatedSkillDefinition$ = exports.UpdatedServerDefinition$ = exports.UpdatedMcpDescriptorFields$ = exports.UpdatedMcpDescriptor$ = exports.UpdatedDescriptorsUnion$ = exports.UpdatedDescriptors$ = exports.UpdatedDescription$ = void 0;\nexports.CreateBrowserProfile$ = exports.CreateBrowser$ = exports.CreateApiKeyCredentialProvider$ = exports.CreateAgentRuntimeEndpoint$ = exports.CreateAgentRuntime$ = exports.TriggerConditionInput$ = exports.TriggerCondition$ = exports.ToolSchema$ = exports.TargetConfiguration$ = exports.StreamDeliveryResource$ = exports.SelfManagedLatticeResource$ = exports.ResourceLocation$ = exports.Resource$ = exports.RequestHeaderConfiguration$ = exports.RegistryRecordCredentialProviderUnion$ = exports.ReflectionConfiguration$ = exports.RatingScale$ = exports.PrivateEndpoint$ = exports.PolicyDefinition$ = exports.Oauth2ProviderConfigOutput$ = exports.Oauth2ProviderConfigInput$ = exports.Oauth2Discovery$ = exports.ModifyReflectionConfiguration$ = exports.ModifyExtractionConfiguration$ = exports.ModifyConsolidationConfiguration$ = exports.MemoryStrategyInput$ = exports.McpToolSchemaConfiguration$ = exports.McpTargetConfiguration$ = exports.InterceptorConfiguration$ = exports.GatewayProtocolConfiguration$ = exports.FilterValue$ = exports.FilesystemConfiguration$ = exports.ExtractionConfiguration$ = exports.EvaluatorReference$ = exports.EvaluatorModelConfig$ = exports.EvaluatorConfig$ = exports.DataSourceConfig$ = exports.CustomReflectionConfigurationInput$ = exports.CustomReflectionConfiguration$ = exports.CustomExtractionConfigurationInput$ = exports.CustomExtractionConfiguration$ = exports.CustomConsolidationConfigurationInput$ = exports.CustomConsolidationConfiguration$ = exports.CustomConfigurationInput$ = exports.CredentialProvider$ = exports.Content$ = exports.ConsolidationConfiguration$ = exports.CodeBasedEvaluatorConfig$ = exports.Code$ = exports.ClaimMatchValueType$ = void 0;\nexports.GetWorkloadIdentity$ = exports.GetTokenVault$ = exports.GetResourcePolicy$ = exports.GetRegistryRecord$ = exports.GetRegistry$ = exports.GetPolicyGeneration$ = exports.GetPolicyEngine$ = exports.GetPolicy$ = exports.GetOnlineEvaluationConfig$ = exports.GetOauth2CredentialProvider$ = exports.GetMemory$ = exports.GetGatewayTarget$ = exports.GetGateway$ = exports.GetEvaluator$ = exports.GetCodeInterpreter$ = exports.GetBrowserProfile$ = exports.GetBrowser$ = exports.GetApiKeyCredentialProvider$ = exports.GetAgentRuntimeEndpoint$ = exports.GetAgentRuntime$ = exports.DeleteWorkloadIdentity$ = exports.DeleteResourcePolicy$ = exports.DeleteRegistryRecord$ = exports.DeleteRegistry$ = exports.DeletePolicyEngine$ = exports.DeletePolicy$ = exports.DeleteOnlineEvaluationConfig$ = exports.DeleteOauth2CredentialProvider$ = exports.DeleteMemory$ = exports.DeleteGatewayTarget$ = exports.DeleteGateway$ = exports.DeleteEvaluator$ = exports.DeleteCodeInterpreter$ = exports.DeleteBrowserProfile$ = exports.DeleteBrowser$ = exports.DeleteApiKeyCredentialProvider$ = exports.DeleteAgentRuntimeEndpoint$ = exports.DeleteAgentRuntime$ = exports.CreateWorkloadIdentity$ = exports.CreateRegistryRecord$ = exports.CreateRegistry$ = exports.CreatePolicyEngine$ = exports.CreatePolicy$ = exports.CreateOnlineEvaluationConfig$ = exports.CreateOauth2CredentialProvider$ = exports.CreateMemory$ = exports.CreateGatewayTarget$ = exports.CreateGateway$ = exports.CreateEvaluator$ = exports.CreateCodeInterpreter$ = void 0;\nexports.UpdateWorkloadIdentity$ = exports.UpdateRegistryRecordStatus$ = exports.UpdateRegistryRecord$ = exports.UpdateRegistry$ = exports.UpdatePolicyEngine$ = exports.UpdatePolicy$ = exports.UpdateOnlineEvaluationConfig$ = exports.UpdateOauth2CredentialProvider$ = exports.UpdateMemory$ = exports.UpdateGatewayTarget$ = exports.UpdateGateway$ = exports.UpdateEvaluator$ = exports.UpdateApiKeyCredentialProvider$ = exports.UpdateAgentRuntimeEndpoint$ = exports.UpdateAgentRuntime$ = exports.UntagResource$ = exports.TagResource$ = exports.SynchronizeGatewayTargets$ = exports.SubmitRegistryRecordForApproval$ = exports.StartPolicyGeneration$ = exports.SetTokenVaultCMK$ = exports.PutResourcePolicy$ = exports.ListWorkloadIdentities$ = exports.ListTagsForResource$ = exports.ListRegistryRecords$ = exports.ListRegistries$ = exports.ListPolicyGenerations$ = exports.ListPolicyGenerationAssets$ = exports.ListPolicyEngines$ = exports.ListPolicies$ = exports.ListOnlineEvaluationConfigs$ = exports.ListOauth2CredentialProviders$ = exports.ListMemories$ = exports.ListGatewayTargets$ = exports.ListGateways$ = exports.ListEvaluators$ = exports.ListCodeInterpreters$ = exports.ListBrowsers$ = exports.ListBrowserProfiles$ = exports.ListApiKeyCredentialProviders$ = exports.ListAgentRuntimeVersions$ = exports.ListAgentRuntimes$ = exports.ListAgentRuntimeEndpoints$ = void 0;\nconst _AC = \"ApprovalConfiguration\";\nconst _ACD = \"AgentCardDefinition\";\nconst _ACMVT = \"AuthorizingClaimMatchValueType\";\nconst _ACu = \"AuthorizerConfiguration\";\nconst _AD = \"A2aDescriptor\";\nconst _ADE = \"AccessDeniedException\";\nconst _ADu = \"AuthorizationData\";\nconst _AGTC = \"ApiGatewayTargetConfiguration\";\nconst _AGTCp = \"ApiGatewayToolConfiguration\";\nconst _AGTF = \"ApiGatewayToolFilter\";\nconst _AGTFp = \"ApiGatewayToolFilters\";\nconst _AGTO = \"ApiGatewayToolOverride\";\nconst _AGTOp = \"ApiGatewayToolOverrides\";\nconst _AKCP = \"ApiKeyCredentialProviders\";\nconst _AKCPI = \"ApiKeyCredentialProviderItem\";\nconst _AKT = \"ApiKeyType\";\nconst _AOPCI = \"AtlassianOauth2ProviderConfigInput\";\nconst _AOPCO = \"AtlassianOauth2ProviderConfigOutput\";\nconst _AR = \"AgentRuntime\";\nconst _ARA = \"AgentRuntimeArtifact\";\nconst _ARE = \"AgentRuntimeEndpoint\";\nconst _AREg = \"AgentRuntimeEndpoints\";\nconst _ARg = \"AgentRuntimes\";\nconst _ASC = \"ApiSchemaConfiguration\";\nconst _ASD = \"AgentSkillsDescriptor\";\nconst _BEMC = \"BedrockEvaluatorModelConfig\";\nconst _BEP = \"BrowserEnterprisePolicy\";\nconst _BEPr = \"BrowserEnterprisePolicies\";\nconst _BNC = \"BrowserNetworkConfiguration\";\nconst _BPS = \"BrowserProfileSummary\";\nconst _BPSr = \"BrowserProfileSummaries\";\nconst _BS = \"BrowserSummary\";\nconst _BSCI = \"BrowserSigningConfigInput\";\nconst _BSCO = \"BrowserSigningConfigOutput\";\nconst _BSr = \"BrowserSummaries\";\nconst _C = \"Certificate\";\nconst _CAKCP = \"CreateApiKeyCredentialProvider\";\nconst _CAKCPR = \"CreateApiKeyCredentialProviderRequest\";\nconst _CAKCPRr = \"CreateApiKeyCredentialProviderResponse\";\nconst _CAR = \"CreateAgentRuntime\";\nconst _CARE = \"CreateAgentRuntimeEndpoint\";\nconst _CARER = \"CreateAgentRuntimeEndpointRequest\";\nconst _CARERr = \"CreateAgentRuntimeEndpointResponse\";\nconst _CARR = \"CreateAgentRuntimeRequest\";\nconst _CARRr = \"CreateAgentRuntimeResponse\";\nconst _CB = \"CreateBrowser\";\nconst _CBEC = \"CodeBasedEvaluatorConfig\";\nconst _CBP = \"CreateBrowserProfile\";\nconst _CBPR = \"CreateBrowserProfileRequest\";\nconst _CBPRr = \"CreateBrowserProfileResponse\";\nconst _CBR = \"CreateBrowserRequest\";\nconst _CBRr = \"CreateBrowserResponse\";\nconst _CC = \"CodeConfiguration\";\nconst _CCC = \"CustomConsolidationConfiguration\";\nconst _CCCI = \"CustomConsolidationConfigurationInput\";\nconst _CCI = \"CustomConfigurationInput\";\nconst _CCIR = \"CreateCodeInterpreterRequest\";\nconst _CCIRr = \"CreateCodeInterpreterResponse\";\nconst _CCIr = \"CreateCodeInterpreter\";\nconst _CCL = \"ContentConfigurationList\";\nconst _CCVT = \"CustomClaimValidationType\";\nconst _CCVTu = \"CustomClaimValidationsType\";\nconst _CCo = \"ContainerConfiguration\";\nconst _CCon = \"ContentConfiguration\";\nconst _CCons = \"ConsolidationConfiguration\";\nconst _CD = \"CustomDescriptor\";\nconst _CE = \"ConflictException\";\nconst _CEC = \"CustomExtractionConfiguration\";\nconst _CECI = \"CustomExtractionConfigurationInput\";\nconst _CER = \"CreateEvaluatorRequest\";\nconst _CERr = \"CreateEvaluatorResponse\";\nconst _CEr = \"CreateEvaluator\";\nconst _CG = \"CreateGateway\";\nconst _CGR = \"CreateGatewayRequest\";\nconst _CGRr = \"CreateGatewayResponse\";\nconst _CGT = \"CreateGatewayTarget\";\nconst _CGTR = \"CreateGatewayTargetRequest\";\nconst _CGTRr = \"CreateGatewayTargetResponse\";\nconst _CINC = \"CodeInterpreterNetworkConfiguration\";\nconst _CIS = \"CodeInterpreterSummary\";\nconst _CISo = \"CodeInterpreterSummaries\";\nconst _CJWTAC = \"CustomJWTAuthorizerConfiguration\";\nconst _CL = \"CertificateLocation\";\nconst _CM = \"CreateMemory\";\nconst _CME = \"ConcurrentModificationException\";\nconst _CMI = \"CreateMemoryInput\";\nconst _CMO = \"CreateMemoryOutput\";\nconst _CMSI = \"CustomMemoryStrategyInput\";\nconst _CMVT = \"ClaimMatchValueType\";\nconst _COCP = \"CreateOauth2CredentialProvider\";\nconst _COCPR = \"CreateOauth2CredentialProviderRequest\";\nconst _COCPRr = \"CreateOauth2CredentialProviderResponse\";\nconst _COEC = \"CreateOnlineEvaluationConfig\";\nconst _COECR = \"CreateOnlineEvaluationConfigRequest\";\nconst _COECRr = \"CreateOnlineEvaluationConfigResponse\";\nconst _COPCI = \"CustomOauth2ProviderConfigInput\";\nconst _COPCO = \"CustomOauth2ProviderConfigOutput\";\nconst _CP = \"CedarPolicy\";\nconst _CPC = \"CredentialProviderConfiguration\";\nconst _CPCr = \"CredentialProviderConfigurations\";\nconst _CPE = \"CreatePolicyEngine\";\nconst _CPER = \"CreatePolicyEngineRequest\";\nconst _CPERr = \"CreatePolicyEngineResponse\";\nconst _CPR = \"CreatePolicyRequest\";\nconst _CPRr = \"CreatePolicyResponse\";\nconst _CPr = \"CredentialProvider\";\nconst _CPre = \"CreatePolicy\";\nconst _CR = \"CreateRegistry\";\nconst _CRC = \"CustomReflectionConfiguration\";\nconst _CRCI = \"CustomReflectionConfigurationInput\";\nconst _CRR = \"CreateRegistryRequest\";\nconst _CRRR = \"CreateRegistryRecordRequest\";\nconst _CRRRr = \"CreateRegistryRecordResponse\";\nconst _CRRr = \"CreateRegistryResponse\";\nconst _CRRre = \"CreateRegistryRecord\";\nconst _CSD = \"CategoricalScaleDefinition\";\nconst _CSDa = \"CategoricalScaleDefinitions\";\nconst _CST = \"ClientSecretType\";\nconst _CWI = \"CreateWorkloadIdentity\";\nconst _CWIR = \"CreateWorkloadIdentityRequest\";\nconst _CWIRr = \"CreateWorkloadIdentityResponse\";\nconst _CWLIC = \"CloudWatchLogsInputConfig\";\nconst _CWOC = \"CloudWatchOutputConfig\";\nconst _Ce = \"Certificates\";\nconst _Co = \"Code\";\nconst _Con = \"Content\";\nconst _D = \"Description\";\nconst _DAKCP = \"DeleteApiKeyCredentialProvider\";\nconst _DAKCPR = \"DeleteApiKeyCredentialProviderRequest\";\nconst _DAKCPRe = \"DeleteApiKeyCredentialProviderResponse\";\nconst _DAR = \"DeleteAgentRuntime\";\nconst _DARE = \"DeleteAgentRuntimeEndpoint\";\nconst _DARER = \"DeleteAgentRuntimeEndpointRequest\";\nconst _DARERe = \"DeleteAgentRuntimeEndpointResponse\";\nconst _DARR = \"DeleteAgentRuntimeRequest\";\nconst _DARRe = \"DeleteAgentRuntimeResponse\";\nconst _DB = \"DeleteBrowser\";\nconst _DBP = \"DeleteBrowserProfile\";\nconst _DBPR = \"DeleteBrowserProfileRequest\";\nconst _DBPRe = \"DeleteBrowserProfileResponse\";\nconst _DBR = \"DeleteBrowserRequest\";\nconst _DBRe = \"DeleteBrowserResponse\";\nconst _DCI = \"DeleteCodeInterpreter\";\nconst _DCIR = \"DeleteCodeInterpreterRequest\";\nconst _DCIRe = \"DeleteCodeInterpreterResponse\";\nconst _DE = \"DeleteEvaluator\";\nconst _DER = \"DeleteEvaluatorRequest\";\nconst _DERe = \"DeleteEvaluatorResponse\";\nconst _DF = \"DecryptionFailure\";\nconst _DG = \"DeleteGateway\";\nconst _DGR = \"DeleteGatewayRequest\";\nconst _DGRe = \"DeleteGatewayResponse\";\nconst _DGT = \"DeleteGatewayTarget\";\nconst _DGTR = \"DeleteGatewayTargetRequest\";\nconst _DGTRe = \"DeleteGatewayTargetResponse\";\nconst _DM = \"DeleteMemory\";\nconst _DMI = \"DeleteMemoryInput\";\nconst _DMO = \"DeleteMemoryOutput\";\nconst _DMSI = \"DeleteMemoryStrategyInput\";\nconst _DMSL = \"DeleteMemoryStrategiesList\";\nconst _DOCP = \"DeleteOauth2CredentialProvider\";\nconst _DOCPR = \"DeleteOauth2CredentialProviderRequest\";\nconst _DOCPRe = \"DeleteOauth2CredentialProviderResponse\";\nconst _DOEC = \"DeleteOnlineEvaluationConfig\";\nconst _DOECR = \"DeleteOnlineEvaluationConfigRequest\";\nconst _DOECRe = \"DeleteOnlineEvaluationConfigResponse\";\nconst _DP = \"DeletePolicy\";\nconst _DPE = \"DeletePolicyEngine\";\nconst _DPER = \"DeletePolicyEngineRequest\";\nconst _DPERe = \"DeletePolicyEngineResponse\";\nconst _DPR = \"DeletePolicyRequest\";\nconst _DPRe = \"DeletePolicyResponse\";\nconst _DR = \"DeleteRegistry\";\nconst _DRP = \"DeleteResourcePolicy\";\nconst _DRPR = \"DeleteResourcePolicyRequest\";\nconst _DRPRe = \"DeleteResourcePolicyResponse\";\nconst _DRR = \"DeleteRegistryRequest\";\nconst _DRRR = \"DeleteRegistryRecordRequest\";\nconst _DRRRe = \"DeleteRegistryRecordResponse\";\nconst _DRRe = \"DeleteRegistryResponse\";\nconst _DRRel = \"DeleteRegistryRecord\";\nconst _DSC = \"DataSourceConfig\";\nconst _DWI = \"DeleteWorkloadIdentity\";\nconst _DWIR = \"DeleteWorkloadIdentityRequest\";\nconst _DWIRe = \"DeleteWorkloadIdentityResponse\";\nconst _De = \"Descriptors\";\nconst _EC = \"EvaluatorConfig\";\nconst _ECD = \"EvaluationConfigDescription\";\nconst _ECO = \"EpisodicConsolidationOverride\";\nconst _ECx = \"ExtractionConfiguration\";\nconst _ED = \"EvaluatorDescription\";\nconst _EEO = \"EpisodicExtractionOverride\";\nconst _EF = \"EncryptionFailure\";\nconst _EI = \"EvaluatorInstructions\";\nconst _EL = \"EvaluatorList\";\nconst _EMC = \"EvaluatorModelConfig\";\nconst _EMSI = \"EpisodicMemoryStrategyInput\";\nconst _EN = \"EndpointName\";\nconst _EOCCI = \"EpisodicOverrideConsolidationConfigurationInput\";\nconst _EOCI = \"EpisodicOverrideConfigurationInput\";\nconst _EOECI = \"EpisodicOverrideExtractionConfigurationInput\";\nconst _EORCI = \"EpisodicOverrideReflectionConfigurationInput\";\nconst _ER = \"EvaluatorReference\";\nconst _ERC = \"EpisodicReflectionConfiguration\";\nconst _ERCI = \"EpisodicReflectionConfigurationInput\";\nconst _ERO = \"EpisodicReflectionOverride\";\nconst _ES = \"EvaluatorSummary\";\nconst _ESL = \"EvaluatorSummaryList\";\nconst _EVM = \"EnvironmentVariablesMap\";\nconst _F = \"Filter\";\nconst _FC = \"FilesystemConfigurations\";\nconst _FCi = \"FilesystemConfiguration\";\nconst _FL = \"FilterList\";\nconst _FUSC = \"FromUrlSynchronizationConfiguration\";\nconst _FV = \"FilterValue\";\nconst _Fi = \"Finding\";\nconst _Fin = \"Findings\";\nconst _GAKCP = \"GatewayApiKeyCredentialProvider\";\nconst _GAKCPR = \"GetApiKeyCredentialProviderRequest\";\nconst _GAKCPRe = \"GetApiKeyCredentialProviderResponse\";\nconst _GAKCPe = \"GetApiKeyCredentialProvider\";\nconst _GAR = \"GetAgentRuntime\";\nconst _GARE = \"GetAgentRuntimeEndpoint\";\nconst _GARER = \"GetAgentRuntimeEndpointRequest\";\nconst _GARERe = \"GetAgentRuntimeEndpointResponse\";\nconst _GARR = \"GetAgentRuntimeRequest\";\nconst _GARRe = \"GetAgentRuntimeResponse\";\nconst _GB = \"GetBrowser\";\nconst _GBP = \"GetBrowserProfile\";\nconst _GBPR = \"GetBrowserProfileRequest\";\nconst _GBPRe = \"GetBrowserProfileResponse\";\nconst _GBR = \"GetBrowserRequest\";\nconst _GBRe = \"GetBrowserResponse\";\nconst _GCI = \"GetCodeInterpreter\";\nconst _GCIR = \"GetCodeInterpreterRequest\";\nconst _GCIRe = \"GetCodeInterpreterResponse\";\nconst _GD = \"GatewayDescription\";\nconst _GE = \"GetEvaluator\";\nconst _GER = \"GetEvaluatorRequest\";\nconst _GERe = \"GetEvaluatorResponse\";\nconst _GG = \"GetGateway\";\nconst _GGR = \"GetGatewayRequest\";\nconst _GGRe = \"GetGatewayResponse\";\nconst _GGT = \"GetGatewayTarget\";\nconst _GGTR = \"GetGatewayTargetRequest\";\nconst _GGTRe = \"GetGatewayTargetResponse\";\nconst _GIC = \"GatewayInterceptorConfiguration\";\nconst _GICa = \"GatewayInterceptorConfigurations\";\nconst _GM = \"GetMemory\";\nconst _GMI = \"GetMemoryInput\";\nconst _GMO = \"GetMemoryOutput\";\nconst _GN = \"GatewayName\";\nconst _GOCP = \"GetOauth2CredentialProvider\";\nconst _GOCPR = \"GetOauth2CredentialProviderRequest\";\nconst _GOCPRe = \"GetOauth2CredentialProviderResponse\";\nconst _GOEC = \"GetOnlineEvaluationConfig\";\nconst _GOECR = \"GetOnlineEvaluationConfigRequest\";\nconst _GOECRe = \"GetOnlineEvaluationConfigResponse\";\nconst _GOPCI = \"GithubOauth2ProviderConfigInput\";\nconst _GOPCIo = \"GoogleOauth2ProviderConfigInput\";\nconst _GOPCO = \"GithubOauth2ProviderConfigOutput\";\nconst _GOPCOo = \"GoogleOauth2ProviderConfigOutput\";\nconst _GP = \"GetPolicy\";\nconst _GPC = \"GatewayProtocolConfiguration\";\nconst _GPE = \"GetPolicyEngine\";\nconst _GPEC = \"GatewayPolicyEngineConfiguration\";\nconst _GPER = \"GetPolicyEngineRequest\";\nconst _GPERe = \"GetPolicyEngineResponse\";\nconst _GPG = \"GetPolicyGeneration\";\nconst _GPGR = \"GetPolicyGenerationRequest\";\nconst _GPGRe = \"GetPolicyGenerationResponse\";\nconst _GPR = \"GetPolicyRequest\";\nconst _GPRe = \"GetPolicyResponse\";\nconst _GR = \"GetRegistry\";\nconst _GRP = \"GetResourcePolicy\";\nconst _GRPR = \"GetResourcePolicyRequest\";\nconst _GRPRe = \"GetResourcePolicyResponse\";\nconst _GRR = \"GetRegistryRequest\";\nconst _GRRR = \"GetRegistryRecordRequest\";\nconst _GRRRe = \"GetRegistryRecordResponse\";\nconst _GRRe = \"GetRegistryResponse\";\nconst _GRRet = \"GetRegistryRecord\";\nconst _GS = \"GatewaySummary\";\nconst _GSa = \"GatewaySummaries\";\nconst _GT = \"GatewayTarget\";\nconst _GTL = \"GatewayTargetList\";\nconst _GTV = \"GetTokenVault\";\nconst _GTVR = \"GetTokenVaultRequest\";\nconst _GTVRe = \"GetTokenVaultResponse\";\nconst _GWI = \"GetWorkloadIdentity\";\nconst _GWIR = \"GetWorkloadIdentityRequest\";\nconst _GWIRe = \"GetWorkloadIdentityResponse\";\nconst _IC = \"InferenceConfiguration\";\nconst _ICI = \"InvocationConfigurationInput\";\nconst _ICP = \"IamCredentialProvider\";\nconst _ICn = \"InvocationConfiguration\";\nconst _ICnt = \"InterceptorConfiguration\";\nconst _IIC = \"InterceptorInputConfiguration\";\nconst _IOPCI = \"IncludedOauth2ProviderConfigInput\";\nconst _IOPCO = \"IncludedOauth2ProviderConfigOutput\";\nconst _IP = \"InlinePayload\";\nconst _ISE = \"InternalServerException\";\nconst _KC = \"KmsConfiguration\";\nconst _KR = \"KinesisResource\";\nconst _LAAJEC = \"LlmAsAJudgeEvaluatorConfig\";\nconst _LAKCP = \"ListApiKeyCredentialProviders\";\nconst _LAKCPR = \"ListApiKeyCredentialProvidersRequest\";\nconst _LAKCPRi = \"ListApiKeyCredentialProvidersResponse\";\nconst _LAR = \"ListAgentRuntimes\";\nconst _LARE = \"ListAgentRuntimeEndpoints\";\nconst _LARER = \"ListAgentRuntimeEndpointsRequest\";\nconst _LARERi = \"ListAgentRuntimeEndpointsResponse\";\nconst _LARR = \"ListAgentRuntimesRequest\";\nconst _LARRi = \"ListAgentRuntimesResponse\";\nconst _LARV = \"ListAgentRuntimeVersions\";\nconst _LARVR = \"ListAgentRuntimeVersionsRequest\";\nconst _LARVRi = \"ListAgentRuntimeVersionsResponse\";\nconst _LB = \"ListBrowsers\";\nconst _LBP = \"ListBrowserProfiles\";\nconst _LBPR = \"ListBrowserProfilesRequest\";\nconst _LBPRi = \"ListBrowserProfilesResponse\";\nconst _LBR = \"ListBrowsersRequest\";\nconst _LBRi = \"ListBrowsersResponse\";\nconst _LC = \"LifecycleConfiguration\";\nconst _LCI = \"ListCodeInterpreters\";\nconst _LCIR = \"ListCodeInterpretersRequest\";\nconst _LCIRi = \"ListCodeInterpretersResponse\";\nconst _LE = \"ListEvaluators\";\nconst _LEC = \"LambdaEvaluatorConfig\";\nconst _LER = \"ListEvaluatorsRequest\";\nconst _LERi = \"ListEvaluatorsResponse\";\nconst _LG = \"ListGateways\";\nconst _LGR = \"ListGatewaysRequest\";\nconst _LGRi = \"ListGatewaysResponse\";\nconst _LGT = \"ListGatewayTargets\";\nconst _LGTR = \"ListGatewayTargetsRequest\";\nconst _LGTRi = \"ListGatewayTargetsResponse\";\nconst _LIC = \"LambdaInterceptorConfiguration\";\nconst _LM = \"ListMemories\";\nconst _LMI = \"ListMemoriesInput\";\nconst _LMO = \"ListMemoriesOutput\";\nconst _LOCP = \"ListOauth2CredentialProviders\";\nconst _LOCPR = \"ListOauth2CredentialProvidersRequest\";\nconst _LOCPRi = \"ListOauth2CredentialProvidersResponse\";\nconst _LOEC = \"ListOnlineEvaluationConfigs\";\nconst _LOECR = \"ListOnlineEvaluationConfigsRequest\";\nconst _LOECRi = \"ListOnlineEvaluationConfigsResponse\";\nconst _LOPCI = \"LinkedinOauth2ProviderConfigInput\";\nconst _LOPCO = \"LinkedinOauth2ProviderConfigOutput\";\nconst _LP = \"ListPolicies\";\nconst _LPE = \"ListPolicyEngines\";\nconst _LPER = \"ListPolicyEnginesRequest\";\nconst _LPERi = \"ListPolicyEnginesResponse\";\nconst _LPG = \"ListPolicyGenerations\";\nconst _LPGA = \"ListPolicyGenerationAssets\";\nconst _LPGAR = \"ListPolicyGenerationAssetsRequest\";\nconst _LPGARi = \"ListPolicyGenerationAssetsResponse\";\nconst _LPGR = \"ListPolicyGenerationsRequest\";\nconst _LPGRi = \"ListPolicyGenerationsResponse\";\nconst _LPR = \"ListPoliciesRequest\";\nconst _LPRi = \"ListPoliciesResponse\";\nconst _LR = \"ListRegistries\";\nconst _LRR = \"ListRegistriesRequest\";\nconst _LRRR = \"ListRegistryRecordsRequest\";\nconst _LRRRi = \"ListRegistryRecordsResponse\";\nconst _LRRi = \"ListRegistriesResponse\";\nconst _LRRis = \"ListRegistryRecords\";\nconst _LTFR = \"ListTagsForResource\";\nconst _LTFRR = \"ListTagsForResourceRequest\";\nconst _LTFRRi = \"ListTagsForResourceResponse\";\nconst _LWI = \"ListWorkloadIdentities\";\nconst _LWIR = \"ListWorkloadIdentitiesRequest\";\nconst _LWIRi = \"ListWorkloadIdentitiesResponse\";\nconst _M = \"Memory\";\nconst _MBT = \"MessageBasedTrigger\";\nconst _MBTI = \"MessageBasedTriggerInput\";\nconst _MC = \"MetadataConfiguration\";\nconst _MCC = \"ModifyConsolidationConfiguration\";\nconst _MCPGC = \"MCPGatewayConfiguration\";\nconst _MD = \"McpDescriptor\";\nconst _MEC = \"ModifyExtractionConfiguration\";\nconst _MICI = \"ModifyInvocationConfigurationInput\";\nconst _MLR = \"ManagedLatticeResource\";\nconst _MLTC = \"McpLambdaTargetConfiguration\";\nconst _MMS = \"ModifyMemoryStrategies\";\nconst _MMSI = \"ModifyMemoryStrategyInput\";\nconst _MMSL = \"ModifyMemoryStrategiesList\";\nconst _MOPCI = \"MicrosoftOauth2ProviderConfigInput\";\nconst _MOPCO = \"MicrosoftOauth2ProviderConfigOutput\";\nconst _MRC = \"ModifyReflectionConfiguration\";\nconst _MRD = \"ManagedResourceDetails\";\nconst _MS = \"MemoryStrategy\";\nconst _MSC = \"ModifyStrategyConfiguration\";\nconst _MSI = \"MemoryStrategyInput\";\nconst _MSIL = \"MemoryStrategyInputList\";\nconst _MSL = \"MemoryStrategyList\";\nconst _MSLe = \"MemorySummaryList\";\nconst _MSMC = \"ModifySelfManagedConfiguration\";\nconst _MSTC = \"McpServerTargetConfiguration\";\nconst _MSe = \"MemorySummary\";\nconst _MTC = \"McpTargetConfiguration\";\nconst _MTSC = \"McpToolSchemaConfiguration\";\nconst _NC = \"NetworkConfiguration\";\nconst _NSD = \"NumericalScaleDefinition\";\nconst _NSDu = \"NumericalScaleDefinitions\";\nconst _OAAD = \"OAuth2AuthorizationData\";\nconst _OACP = \"OAuthCredentialProvider\";\nconst _OACPV = \"OAuthCustomParametersValue\";\nconst _OACPu = \"OAuthCustomParameters\";\nconst _OASM = \"Oauth2AuthorizationServerMetadata\";\nconst _OC = \"OutputConfig\";\nconst _OCP = \"Oauth2CredentialProviders\";\nconst _OCPI = \"Oauth2CredentialProviderItem\";\nconst _OD = \"Oauth2Discovery\";\nconst _OECS = \"OnlineEvaluationConfigSummary\";\nconst _OECSL = \"OnlineEvaluationConfigSummaryList\";\nconst _OPCI = \"Oauth2ProviderConfigInput\";\nconst _OPCO = \"Oauth2ProviderConfigOutput\";\nconst _P = \"Prompt\";\nconst _PC = \"ProtocolConfiguration\";\nconst _PD = \"PolicyDefinition\";\nconst _PE = \"PolicyEngine\";\nconst _PEMR = \"PrivateEndpointManagedResources\";\nconst _PEo = \"PolicyEngines\";\nconst _PEr = \"PrivateEndpoint\";\nconst _PG = \"PolicyGeneration\";\nconst _PGA = \"PolicyGenerationAsset\";\nconst _PGAo = \"PolicyGenerationAssets\";\nconst _PGD = \"PolicyGenerationDetails\";\nconst _PGo = \"PolicyGenerations\";\nconst _PRP = \"PutResourcePolicy\";\nconst _PRPR = \"PutResourcePolicyRequest\";\nconst _PRPRu = \"PutResourcePolicyResponse\";\nconst _Po = \"Policy\";\nconst _Pol = \"Policies\";\nconst _R = \"Rule\";\nconst _RC = \"RecordingConfig\";\nconst _RCe = \"ReflectionConfiguration\";\nconst _RHC = \"RequestHeaderConfiguration\";\nconst _RL = \"ResourceLocation\";\nconst _RLEE = \"ResourceLimitExceededException\";\nconst _RMC = \"RuntimeMetadataConfiguration\";\nconst _RNFE = \"ResourceNotFoundException\";\nconst _RRCPC = \"RegistryRecordCredentialProviderConfiguration\";\nconst _RRCPCL = \"RegistryRecordCredentialProviderConfigurationList\";\nconst _RRCPU = \"RegistryRecordCredentialProviderUnion\";\nconst _RRICP = \"RegistryRecordIamCredentialProvider\";\nconst _RROACP = \"RegistryRecordOAuthCredentialProvider\";\nconst _RRS = \"RegistryRecordSummary\";\nconst _RRSL = \"RegistryRecordSummaryList\";\nconst _RS = \"RegistrySummary\";\nconst _RSL = \"RegistrySummaryList\";\nconst _RSa = \"RatingScale\";\nconst _Re = \"Resource\";\nconst _S = \"Secret\";\nconst _SC = \"S3Configuration\";\nconst _SCO = \"SemanticConsolidationOverride\";\nconst _SCOu = \"SummaryConsolidationOverride\";\nconst _SCa = \"SamplingConfig\";\nconst _SCe = \"SessionConfig\";\nconst _SCt = \"StrategyConfiguration\";\nconst _SCy = \"SynchronizationConfiguration\";\nconst _SD = \"SchemaDefinition\";\nconst _SDR = \"StreamDeliveryResources\";\nconst _SDRL = \"StreamDeliveryResourcesList\";\nconst _SDRt = \"StreamDeliveryResource\";\nconst _SDe = \"ServerDefinition\";\nconst _SDk = \"SkillDefinition\";\nconst _SE = \"ServiceException\";\nconst _SEO = \"SemanticExtractionOverride\";\nconst _SGT = \"SynchronizeGatewayTargets\";\nconst _SGTR = \"SynchronizeGatewayTargetsRequest\";\nconst _SGTRy = \"SynchronizeGatewayTargetsResponse\";\nconst _SL = \"S3Location\";\nconst _SMC = \"SelfManagedConfiguration\";\nconst _SMCI = \"SelfManagedConfigurationInput\";\nconst _SMD = \"SkillMdDefinition\";\nconst _SML = \"SecretsManagerLocation\";\nconst _SMLR = \"SelfManagedLatticeResource\";\nconst _SMSI = \"SemanticMemoryStrategyInput\";\nconst _SMSIu = \"SummaryMemoryStrategyInput\";\nconst _SOCCI = \"SemanticOverrideConsolidationConfigurationInput\";\nconst _SOCCIu = \"SummaryOverrideConsolidationConfigurationInput\";\nconst _SOCI = \"SemanticOverrideConfigurationInput\";\nconst _SOCIu = \"SummaryOverrideConfigurationInput\";\nconst _SOECI = \"SemanticOverrideExtractionConfigurationInput\";\nconst _SOPCI = \"SalesforceOauth2ProviderConfigInput\";\nconst _SOPCIl = \"SlackOauth2ProviderConfigInput\";\nconst _SOPCO = \"SalesforceOauth2ProviderConfigOutput\";\nconst _SOPCOl = \"SlackOauth2ProviderConfigOutput\";\nconst _SP = \"SchemaProperties\";\nconst _SPG = \"StartPolicyGeneration\";\nconst _SPGR = \"StartPolicyGenerationRequest\";\nconst _SPGRt = \"StartPolicyGenerationResponse\";\nconst _SQEE = \"ServiceQuotaExceededException\";\nconst _SRRFA = \"SubmitRegistryRecordForApproval\";\nconst _SRRFAR = \"SubmitRegistryRecordForApprovalRequest\";\nconst _SRRFARu = \"SubmitRegistryRecordForApprovalResponse\";\nconst _SSC = \"SessionStorageConfiguration\";\nconst _STVCMK = \"SetTokenVaultCMK\";\nconst _STVCMKR = \"SetTokenVaultCMKRequest\";\nconst _STVCMKRe = \"SetTokenVaultCMKResponse\";\nconst _TBT = \"TimeBasedTrigger\";\nconst _TBTI = \"TimeBasedTriggerInput\";\nconst _TBTIo = \"TokenBasedTriggerInput\";\nconst _TBTo = \"TokenBasedTrigger\";\nconst _TC = \"TargetConfiguration\";\nconst _TCI = \"TriggerConditionInput\";\nconst _TCIL = \"TriggerConditionInputList\";\nconst _TCL = \"TriggerConditionsList\";\nconst _TCr = \"TriggerCondition\";\nconst _TD = \"TargetDescription\";\nconst _TDo = \"ToolDefinition\";\nconst _TDoo = \"ToolsDefinition\";\nconst _TDool = \"ToolDefinitions\";\nconst _TE = \"ThrottledException\";\nconst _TEh = \"ThrottlingException\";\nconst _TN = \"TargetName\";\nconst _TR = \"TagResource\";\nconst _TRR = \"TagResourceRequest\";\nconst _TRRa = \"TagResourceResponse\";\nconst _TS = \"TargetSummary\";\nconst _TSa = \"TargetSummaries\";\nconst _TSo = \"ToolSchema\";\nconst _UAC = \"UpdatedApprovalConfiguration\";\nconst _UACp = \"UpdatedAuthorizerConfiguration\";\nconst _UAD = \"UpdatedA2aDescriptor\";\nconst _UAKCP = \"UpdateApiKeyCredentialProvider\";\nconst _UAKCPR = \"UpdateApiKeyCredentialProviderRequest\";\nconst _UAKCPRp = \"UpdateApiKeyCredentialProviderResponse\";\nconst _UAR = \"UpdateAgentRuntime\";\nconst _UARE = \"UpdateAgentRuntimeEndpoint\";\nconst _UARER = \"UpdateAgentRuntimeEndpointRequest\";\nconst _UARERp = \"UpdateAgentRuntimeEndpointResponse\";\nconst _UARR = \"UpdateAgentRuntimeRequest\";\nconst _UARRp = \"UpdateAgentRuntimeResponse\";\nconst _UASD = \"UpdatedAgentSkillsDescriptor\";\nconst _UASDF = \"UpdatedAgentSkillsDescriptorFields\";\nconst _UCD = \"UpdatedCustomDescriptor\";\nconst _UD = \"UpdatedDescription\";\nconst _UDU = \"UpdatedDescriptorsUnion\";\nconst _UDp = \"UpdatedDescriptors\";\nconst _UE = \"UnauthorizedException\";\nconst _UER = \"UpdateEvaluatorRequest\";\nconst _UERp = \"UpdateEvaluatorResponse\";\nconst _UEp = \"UpdateEvaluator\";\nconst _UG = \"UpdateGateway\";\nconst _UGR = \"UpdateGatewayRequest\";\nconst _UGRp = \"UpdateGatewayResponse\";\nconst _UGT = \"UpdateGatewayTarget\";\nconst _UGTR = \"UpdateGatewayTargetRequest\";\nconst _UGTRp = \"UpdateGatewayTargetResponse\";\nconst _UM = \"UpdateMemory\";\nconst _UMD = \"UpdatedMcpDescriptor\";\nconst _UMDF = \"UpdatedMcpDescriptorFields\";\nconst _UMI = \"UpdateMemoryInput\";\nconst _UMO = \"UpdateMemoryOutput\";\nconst _UOCP = \"UpdateOauth2CredentialProvider\";\nconst _UOCPR = \"UpdateOauth2CredentialProviderRequest\";\nconst _UOCPRp = \"UpdateOauth2CredentialProviderResponse\";\nconst _UOEC = \"UpdateOnlineEvaluationConfig\";\nconst _UOECR = \"UpdateOnlineEvaluationConfigRequest\";\nconst _UOECRp = \"UpdateOnlineEvaluationConfigResponse\";\nconst _UP = \"UpdatePolicy\";\nconst _UPCO = \"UserPreferenceConsolidationOverride\";\nconst _UPE = \"UpdatePolicyEngine\";\nconst _UPEO = \"UserPreferenceExtractionOverride\";\nconst _UPER = \"UpdatePolicyEngineRequest\";\nconst _UPERp = \"UpdatePolicyEngineResponse\";\nconst _UPMSI = \"UserPreferenceMemoryStrategyInput\";\nconst _UPOCCI = \"UserPreferenceOverrideConsolidationConfigurationInput\";\nconst _UPOCI = \"UserPreferenceOverrideConfigurationInput\";\nconst _UPOECI = \"UserPreferenceOverrideExtractionConfigurationInput\";\nconst _UPR = \"UpdatePolicyRequest\";\nconst _UPRp = \"UpdatePolicyResponse\";\nconst _UR = \"UntagResource\";\nconst _URR = \"UntagResourceRequest\";\nconst _URRR = \"UpdateRegistryRecordRequest\";\nconst _URRRp = \"UpdateRegistryRecordResponse\";\nconst _URRS = \"UpdateRegistryRecordStatus\";\nconst _URRSR = \"UpdateRegistryRecordStatusRequest\";\nconst _URRSRp = \"UpdateRegistryRecordStatusResponse\";\nconst _URRn = \"UntagResourceResponse\";\nconst _URRp = \"UpdateRegistryRequest\";\nconst _URRpd = \"UpdateRegistryResponse\";\nconst _URRpda = \"UpdateRegistryRecord\";\nconst _URp = \"UpdateRegistry\";\nconst _USC = \"UpdatedSynchronizationConfiguration\";\nconst _USD = \"UpdatedServerDefinition\";\nconst _USDp = \"UpdatedSkillDefinition\";\nconst _USMD = \"UpdatedSkillMdDefinition\";\nconst _UST = \"UpdatedSynchronizationType\";\nconst _UTD = \"UpdatedToolsDefinition\";\nconst _UWI = \"UpdateWorkloadIdentity\";\nconst _UWIR = \"UpdateWorkloadIdentityRequest\";\nconst _UWIRp = \"UpdateWorkloadIdentityResponse\";\nconst _VC = \"VpcConfig\";\nconst _VE = \"ValidationException\";\nconst _VEF = \"ValidationExceptionField\";\nconst _VEFL = \"ValidationExceptionFieldList\";\nconst _WID = \"WorkloadIdentityDetails\";\nconst _WIL = \"WorkloadIdentityList\";\nconst _WIT = \"WorkloadIdentityType\";\nconst _a = \"a2a\";\nconst _aA = \"autoApproval\";\nconst _aAl = \"allowedAudience\";\nconst _aC = \"agentCard\";\nconst _aCMV = \"authorizingClaimMatchValue\";\nconst _aCl = \"allowedClients\";\nconst _aCp = \"approvalConfiguration\";\nconst _aCu = \"authorizerConfiguration\";\nconst _aD = \"authorizationData\";\nconst _aE = \"authorizationEndpoint\";\nconst _aG = \"apiGateway\";\nconst _aGTC = \"apiGatewayToolConfiguration\";\nconst _aK = \"apiKey\";\nconst _aKCP = \"apiKeyCredentialProvider\";\nconst _aKSA = \"apiKeySecretArn\";\nconst _aMRF = \"additionalModelRequestFields\";\nconst _aMS = \"addMemoryStrategies\";\nconst _aOPC = \"atlassianOauth2ProviderConfig\";\nconst _aQP = \"allowedQueryParameters\";\nconst _aR = \"agentRuntimes\";\nconst _aRA = \"agentRuntimeArn\";\nconst _aRAg = \"agentRuntimeArtifact\";\nconst _aREA = \"agentRuntimeEndpointArn\";\nconst _aRH = \"allowedRequestHeaders\";\nconst _aRHl = \"allowedResponseHeaders\";\nconst _aRI = \"agentRuntimeId\";\nconst _aRN = \"agentRuntimeName\";\nconst _aRORU = \"allowedResourceOauth2ReturnUrls\";\nconst _aRV = \"agentRuntimeVersion\";\nconst _aS = \"allowedScopes\";\nconst _aSM = \"authorizationServerMetadata\";\nconst _aSg = \"agentSkills\";\nconst _aT = \"authorizerType\";\nconst _aTP = \"appendToPrompt\";\nconst _aU = \"authorizationUrl\";\nconst _ar = \"arn\";\nconst _b = \"bucket\";\nconst _bA = \"browserArn\";\nconst _bEMC = \"bedrockEvaluatorModelConfig\";\nconst _bI = \"browserId\";\nconst _bOAI = \"bucketOwnerAccountId\";\nconst _bS = \"browserSigning\";\nconst _bSr = \"browserSummaries\";\nconst _bV = \"booleanValue\";\nconst _c = \"client\";\nconst _cA = \"createdAt\";\nconst _cB = \"codeBased\";\nconst _cC = \"customClaims\";\nconst _cCC = \"customConsolidationConfiguration\";\nconst _cCo = \"contentConfigurations\";\nconst _cCod = \"codeConfiguration\";\nconst _cCon = \"containerConfiguration\";\nconst _cEC = \"customExtractionConfiguration\";\nconst _cI = \"clientId\";\nconst _cIA = \"codeInterpreterArn\";\nconst _cII = \"codeInterpreterId\";\nconst _cIS = \"codeInterpreterSummaries\";\nconst _cJWTA = \"customJWTAuthorizer\";\nconst _cL = \"credentialLocation\";\nconst _cMO = \"claimMatchOperator\";\nconst _cMS = \"customMemoryStrategy\";\nconst _cMV = \"claimMatchValue\";\nconst _cOPC = \"customOauth2ProviderConfig\";\nconst _cP = \"credentialProvider\";\nconst _cPA = \"credentialProviderArn\";\nconst _cPC = \"credentialProviderConfigurations\";\nconst _cPN = \"credentialParameterName\";\nconst _cPT = \"credentialProviderType\";\nconst _cPV = \"credentialProviderVendor\";\nconst _cPr = \"credentialPrefix\";\nconst _cPre = \"credentialProviders\";\nconst _cPu = \"customParameters\";\nconst _cRC = \"customReflectionConfiguration\";\nconst _cS = \"clientSecret\";\nconst _cSA = \"clientSecretArn\";\nconst _cT = \"createdTime\";\nconst _cTl = \"clientToken\";\nconst _cU = \"containerUri\";\nconst _cUa = \"callbackUrl\";\nconst _cWC = \"cloudWatchConfig\";\nconst _cWL = \"cloudWatchLogs\";\nconst _ca = \"categorical\";\nconst _ce = \"certificates\";\nconst _ced = \"cedar\";\nconst _co = \"code\";\nconst _con = \"configuration\";\nconst _cons = \"consolidation\";\nconst _cont = \"content\";\nconst _cu = \"custom\";\nconst _d = \"description\";\nconst _dMS = \"deleteMemoryStrategies\";\nconst _dRU = \"defaultReturnUrl\";\nconst _dSA = \"dataStreamArn\";\nconst _dSC = \"dataSourceConfig\";\nconst _dT = \"descriptorType\";\nconst _dU = \"discoveryUrl\";\nconst _dV = \"doubleValue\";\nconst _de = \"definition\";\nconst _des = \"descriptors\";\nconst _do = \"domain\";\nconst _e = \"error\";\nconst _eA = \"evaluatorArn\";\nconst _eC = \"evaluatorConfig\";\nconst _eCO = \"episodicConsolidationOverride\";\nconst _eED = \"eventExpiryDuration\";\nconst _eEO = \"episodicExtractionOverride\";\nconst _eERA = \"evaluationExecutionRoleArn\";\nconst _eI = \"evaluatorId\";\nconst _eIAT = \"endpointIpAddressType\";\nconst _eKA = \"encryptionKeyArn\";\nconst _eL = \"exceptionLevel\";\nconst _eMS = \"episodicMemoryStrategy\";\nconst _eN = \"endpointName\";\nconst _eNv = \"evaluatorName\";\nconst _eO = \"episodicOverride\";\nconst _eOC = \"enableOnCreate\";\nconst _eP = \"entryPoint\";\nconst _ePn = \"enterprisePolicies\";\nconst _eRA = \"executionRoleArn\";\nconst _eRC = \"episodicReflectionConfiguration\";\nconst _eRO = \"episodicReflectionOverride\";\nconst _eS = \"executionStatus\";\nconst _eT = \"evaluatorType\";\nconst _eV = \"environmentVariables\";\nconst _en = \"enabled\";\nconst _end = \"endpoint\";\nconst _ev = \"evaluators\";\nconst _ex = \"extraction\";\nconst _f = \"findings\";\nconst _fC = \"filesystemConfigurations\";\nconst _fL = \"fieldList\";\nconst _fP = \"filterPath\";\nconst _fR = \"failureReason\";\nconst _fU = \"fromUrl\";\nconst _fi = \"filters\";\nconst _gA = \"gatewayArn\";\nconst _gI = \"gatewayId\";\nconst _gIa = \"gatewayIdentifier\";\nconst _gOPC = \"googleOauth2ProviderConfig\";\nconst _gOPCi = \"githubOauth2ProviderConfig\";\nconst _gT = \"grantType\";\nconst _gU = \"gatewayUrl\";\nconst _h = \"http\";\nconst _hCWS = \"historicalContextWindowSize\";\nconst _hE = \"httpError\";\nconst _hQ = \"httpQuery\";\nconst _i = \"id\";\nconst _iC = \"inlineContent\";\nconst _iCP = \"iamCredentialProvider\";\nconst _iCn = \"inferenceConfig\";\nconst _iCnp = \"inputConfiguration\";\nconst _iCnt = \"interceptorConfigurations\";\nconst _iCnv = \"invocationConfiguration\";\nconst _iOPC = \"includedOauth2ProviderConfig\";\nconst _iP = \"interceptionPoints\";\nconst _iPn = \"inlinePayload\";\nconst _iRST = \"idleRuntimeSessionTimeout\";\nconst _iS = \"inputSchema\";\nconst _iST = \"idleSessionTimeout\";\nconst _iT = \"idempotencyToken\";\nconst _iTCN = \"inboundTokenClaimName\";\nconst _iTCVT = \"inboundTokenClaimValueType\";\nconst _in = \"interceptor\";\nconst _ins = \"instructions\";\nconst _is = \"issuer\";\nconst _it = \"items\";\nconst _k = \"key\";\nconst _kC = \"kmsConfiguration\";\nconst _kKA = \"kmsKeyArn\";\nconst _kT = \"keyType\";\nconst _ki = \"kinesis\";\nconst _l = \"location\";\nconst _lA = \"lambdaArn\";\nconst _lAAJ = \"llmAsAJudge\";\nconst _lC = \"lifecycleConfiguration\";\nconst _lCa = \"lambdaConfig\";\nconst _lFM = \"lockedForModification\";\nconst _lGN = \"logGroupNames\";\nconst _lGNo = \"logGroupName\";\nconst _lM = \"listingMode\";\nconst _lMD = \"lastModifiedDate\";\nconst _lOPC = \"linkedinOauth2ProviderConfig\";\nconst _lSA = \"lastSavedAt\";\nconst _lSAa = \"lastSynchronizedAt\";\nconst _lSBI = \"lastSavedBrowserId\";\nconst _lSBSI = \"lastSavedBrowserSessionId\";\nconst _lTIS = \"lambdaTimeoutInSeconds\";\nconst _lUA = \"lastUpdatedAt\";\nconst _lUT = \"lastUpdatedTime\";\nconst _lV = \"liveVersion\";\nconst _la = \"label\";\nconst _lam = \"lambda\";\nconst _le = \"level\";\nconst _m = \"message\";\nconst _mBT = \"messageBasedTrigger\";\nconst _mC = \"metadataConfiguration\";\nconst _mCe = \"messageCount\";\nconst _mCo = \"modelConfig\";\nconst _mERA = \"memoryExecutionRoleArn\";\nconst _mI = \"modelId\";\nconst _mIe = \"memoryId\";\nconst _mL = \"maxLifetime\";\nconst _mLR = \"managedLatticeResource\";\nconst _mMS = \"modifyMemoryStrategies\";\nconst _mOPC = \"microsoftOauth2ProviderConfig\";\nconst _mP = \"mountPath\";\nconst _mR = \"maxResults\";\nconst _mS = \"memoryStrategies\";\nconst _mSI = \"memoryStrategyId\";\nconst _mSc = \"mcpServer\";\nconst _mT = \"maxTokens\";\nconst _mTS = \"mcpToolSchema\";\nconst _mVS = \"matchValueString\";\nconst _mVSL = \"matchValueStringList\";\nconst _mc = \"mcp\";\nconst _me = \"methods\";\nconst _mem = \"memory\";\nconst _memo = \"memories\";\nconst _met = \"method\";\nconst _mo = \"mode\";\nconst _n = \"name\";\nconst _nC = \"networkConfiguration\";\nconst _nM = \"networkMode\";\nconst _nMC = \"networkModeConfig\";\nconst _nT = \"namespaceTemplates\";\nconst _nTe = \"nextToken\";\nconst _na = \"namespaces\";\nconst _nu = \"numerical\";\nconst _o = \"operator\";\nconst _oAS = \"openApiSchema\";\nconst _oC = \"outputConfig\";\nconst _oCP = \"oauthCredentialProvider\";\nconst _oD = \"oauthDiscovery\";\nconst _oEC = \"onlineEvaluationConfigs\";\nconst _oECA = \"onlineEvaluationConfigArn\";\nconst _oECI = \"onlineEvaluationConfigId\";\nconst _oECN = \"onlineEvaluationConfigName\";\nconst _oPCI = \"oauth2ProviderConfigInput\";\nconst _oPCO = \"oauth2ProviderConfigOutput\";\nconst _oS = \"outputSchema\";\nconst _oV = \"optionalValue\";\nconst _oa = \"oauth2\";\nconst _p = \"path\";\nconst _pA = \"profileArn\";\nconst _pAo = \"policyArn\";\nconst _pAr = \"providerArn\";\nconst _pC = \"protocolConfiguration\";\nconst _pDBN = \"payloadDeliveryBucketName\";\nconst _pE = \"privateEndpoint\";\nconst _pEA = \"policyEngineArn\";\nconst _pEC = \"policyEngineConfiguration\";\nconst _pEI = \"policyEngineId\";\nconst _pEMR = \"privateEndpointManagedResources\";\nconst _pEo = \"policyEngines\";\nconst _pG = \"policyGenerations\";\nconst _pGA = \"policyGenerationArn\";\nconst _pGAI = \"policyGenerationAssetId\";\nconst _pGAo = \"policyGenerationAssets\";\nconst _pGI = \"policyGenerationId\";\nconst _pGo = \"policyGeneration\";\nconst _pI = \"profileId\";\nconst _pIo = \"policyId\";\nconst _pRH = \"passRequestHeaders\";\nconst _pS = \"profileSummaries\";\nconst _pT = \"protocolType\";\nconst _pV = \"protocolVersion\";\nconst _po = \"policy\";\nconst _pol = \"policies\";\nconst _pr = \"prefix\";\nconst _pro = \"properties\";\nconst _r = \"reason\";\nconst _rA = \"roleArn\";\nconst _rAA = \"resourceAssociationArn\";\nconst _rAI = \"restApiId\";\nconst _rAe = \"recordArn\";\nconst _rAeg = \"registryArn\";\nconst _rAes = \"resourceArn\";\nconst _rC = \"reflectionConfiguration\";\nconst _rCI = \"resourceConfigurationIdentifier\";\nconst _rD = \"routingDomain\";\nconst _rE = \"runtimeEndpoints\";\nconst _rGA = \"resourceGatewayArn\";\nconst _rHA = \"requestHeaderAllowlist\";\nconst _rHC = \"requestHeaderConfiguration\";\nconst _rI = \"registryId\";\nconst _rIe = \"recordId\";\nconst _rMMDSV = \"requireMMDSV2\";\nconst _rR = \"registryRecords\";\nconst _rS = \"ratingScale\";\nconst _rT = \"responseTypes\";\nconst _rTF = \"rawTextFragment\";\nconst _rTa = \"rawText\";\nconst _rV = \"recordVersion\";\nconst _re = \"recording\";\nconst _ref = \"reflection\";\nconst _reg = \"region\";\nconst _regi = \"registries\";\nconst _req = \"required\";\nconst _res = \"resource\";\nconst _reso = \"resources\";\nconst _ru = \"runtime\";\nconst _rul = \"rule\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.bedrockagentcorecontrol\";\nconst _sA = \"secretArn\";\nconst _sC = \"synchronizationConfiguration\";\nconst _sCO = \"semanticConsolidationOverride\";\nconst _sCOu = \"summaryConsolidationOverride\";\nconst _sCa = \"samplingConfig\";\nconst _sCe = \"sessionConfig\";\nconst _sD = \"skillDefinition\";\nconst _sDR = \"streamDeliveryResources\";\nconst _sEO = \"semanticExtractionOverride\";\nconst _sG = \"securityGroups\";\nconst _sGI = \"securityGroupIds\";\nconst _sI = \"subnetIds\";\nconst _sIt = \"strategyId\";\nconst _sL = \"s3Location\";\nconst _sM = \"skillMd\";\nconst _sMC = \"selfManagedConfiguration\";\nconst _sMLR = \"selfManagedLatticeResource\";\nconst _sMS = \"semanticMemoryStrategy\";\nconst _sMSu = \"summaryMemoryStrategy\";\nconst _sMe = \"secretsManager\";\nconst _sMm = \"smithyModel\";\nconst _sN = \"serviceNames\";\nconst _sO = \"semanticOverride\";\nconst _sOPC = \"slackOauth2ProviderConfig\";\nconst _sOPCa = \"salesforceOauth2ProviderConfig\";\nconst _sOu = \"summaryOverride\";\nconst _sP = \"serverProtocol\";\nconst _sPa = \"samplingPercentage\";\nconst _sR = \"statusReasons\";\nconst _sRt = \"statusReason\";\nconst _sS = \"stopSequences\";\nconst _sSe = \"sessionStorage\";\nconst _sT = \"synchronizationType\";\nconst _sTM = \"sessionTimeoutMinutes\";\nconst _sTe = \"searchType\";\nconst _sV = \"schemaVersion\";\nconst _sVt = \"stringValue\";\nconst _sVu = \"supportedVersions\";\nconst _s_ = \"s3\";\nconst _sc = \"scopes\";\nconst _se = \"server\";\nconst _ser = \"service\";\nconst _st = \"status\";\nconst _sta = \"stage\";\nconst _stat = \"statement\";\nconst _str = \"strategies\";\nconst _su = \"subnets\";\nconst _t = \"type\";\nconst _tA = \"topicArn\";\nconst _tBT = \"tokenBasedTrigger\";\nconst _tBTi = \"timeBasedTrigger\";\nconst _tC = \"targetConfiguration\";\nconst _tCo = \"tokenCount\";\nconst _tCr = \"triggerConditions\";\nconst _tE = \"tokenEndpoint\";\nconst _tEAM = \"tokenEndpointAuthMethods\";\nconst _tF = \"toolFilters\";\nconst _tI = \"targetId\";\nconst _tIL = \"targetIdList\";\nconst _tIe = \"tenantId\";\nconst _tK = \"tagKeys\";\nconst _tO = \"toolOverrides\";\nconst _tP = \"topP\";\nconst _tRS = \"targetResourceScope\";\nconst _tS = \"toolSchema\";\nconst _tSr = \"triggerSynchronization\";\nconst _tV = \"targetVersion\";\nconst _tVI = \"tokenVaultId\";\nconst _ta = \"tags\";\nconst _tar = \"targets\";\nconst _te = \"temperature\";\nconst _to = \"tools\";\nconst _u = \"url\";\nconst _uA = \"updatedAt\";\nconst _uI = \"userId\";\nconst _uPCO = \"userPreferenceConsolidationOverride\";\nconst _uPEO = \"userPreferenceExtractionOverride\";\nconst _uPMS = \"userPreferenceMemoryStrategy\";\nconst _uPO = \"userPreferenceOverride\";\nconst _ur = \"uri\";\nconst _v = \"value\";\nconst _vC = \"vpcConfig\";\nconst _vI = \"vpcIdentifier\";\nconst _vIe = \"versionId\";\nconst _vM = \"validationMode\";\nconst _ve = \"version\";\nconst _vi = \"view\";\nconst _wI = \"workloadIdentities\";\nconst _wIA = \"workloadIdentityArn\";\nconst _wID = \"workloadIdentityDetails\";\nconst n0 = \"com.amazonaws.bedrockagentcorecontrol\";\nconst schema_1 = require(\"@smithy/core/schema\");\nconst BedrockAgentCoreControlServiceException_1 = require(\"../models/BedrockAgentCoreControlServiceException\");\nconst errors_1 = require(\"../models/errors\");\nconst _s_registry = schema_1.TypeRegistry.for(_s);\nexports.BedrockAgentCoreControlServiceException$ = [-3, _s, \"BedrockAgentCoreControlServiceException\", 0, [], []];\n_s_registry.registerError(exports.BedrockAgentCoreControlServiceException$, BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException);\nconst n0_registry = schema_1.TypeRegistry.for(n0);\nexports.AccessDeniedException$ = [-3, n0, _ADE,\n { [_e]: _c, [_hE]: 403 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.AccessDeniedException$, errors_1.AccessDeniedException);\nexports.ConcurrentModificationException$ = [-3, n0, _CME,\n { [_e]: _c, [_hE]: 409 },\n [_m],\n [0], 1\n];\nn0_registry.registerError(exports.ConcurrentModificationException$, errors_1.ConcurrentModificationException);\nexports.ConflictException$ = [-3, n0, _CE,\n { [_e]: _c, [_hE]: 409 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ConflictException$, errors_1.ConflictException);\nexports.DecryptionFailure$ = [-3, n0, _DF,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0], 1\n];\nn0_registry.registerError(exports.DecryptionFailure$, errors_1.DecryptionFailure);\nexports.EncryptionFailure$ = [-3, n0, _EF,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0], 1\n];\nn0_registry.registerError(exports.EncryptionFailure$, errors_1.EncryptionFailure);\nexports.InternalServerException$ = [-3, n0, _ISE,\n { [_e]: _se, [_hE]: 500 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.InternalServerException$, errors_1.InternalServerException);\nexports.ResourceLimitExceededException$ = [-3, n0, _RLEE,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ResourceLimitExceededException$, errors_1.ResourceLimitExceededException);\nexports.ResourceNotFoundException$ = [-3, n0, _RNFE,\n { [_e]: _c, [_hE]: 404 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ResourceNotFoundException$, errors_1.ResourceNotFoundException);\nexports.ServiceException$ = [-3, n0, _SE,\n { [_e]: _se, [_hE]: 500 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ServiceException$, errors_1.ServiceException);\nexports.ServiceQuotaExceededException$ = [-3, n0, _SQEE,\n { [_e]: _c, [_hE]: 402 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ServiceQuotaExceededException$, errors_1.ServiceQuotaExceededException);\nexports.ThrottledException$ = [-3, n0, _TE,\n { [_e]: _c, [_hE]: 429 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ThrottledException$, errors_1.ThrottledException);\nexports.ThrottlingException$ = [-3, n0, _TEh,\n { [_e]: _c, [_hE]: 429 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ThrottlingException$, errors_1.ThrottlingException);\nexports.UnauthorizedException$ = [-3, n0, _UE,\n { [_e]: _c, [_hE]: 401 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.UnauthorizedException$, errors_1.UnauthorizedException);\nexports.ValidationException$ = [-3, n0, _VE,\n { [_e]: _c, [_hE]: 400 },\n [_m, _r, _fL],\n [0, 0, () => ValidationExceptionFieldList], 2\n];\nn0_registry.registerError(exports.ValidationException$, errors_1.ValidationException);\nexports.errorTypeRegistries = [\n _s_registry,\n n0_registry,\n];\nvar ApiKeyType = [0, n0, _AKT, 8, 0];\nvar ClientSecretType = [0, n0, _CST, 8, 0];\nvar Description = [0, n0, _D, 8, 0];\nvar EndpointName = [0, n0, _EN, 8, 0];\nvar EvaluationConfigDescription = [0, n0, _ECD, 8, 0];\nvar EvaluatorDescription = [0, n0, _ED, 8, 0];\nvar EvaluatorInstructions = [0, n0, _EI, 8, 0];\nvar GatewayDescription = [0, n0, _GD, 8, 0];\nvar GatewayName = [0, n0, _GN, 8, 0];\nvar InlinePayload = [0, n0, _IP, 8, 0];\nvar OAuthCustomParametersValue = [0, n0, _OACPV, 8, 0];\nvar Prompt = [0, n0, _P, 8, 0];\nvar TargetDescription = [0, n0, _TD, 8, 0];\nvar TargetName = [0, n0, _TN, 8, 0];\nexports.A2aDescriptor$ = [3, n0, _AD,\n 0,\n [_aC],\n [() => exports.AgentCardDefinition$]\n];\nexports.AgentCardDefinition$ = [3, n0, _ACD,\n 0,\n [_sV, _iC],\n [0, 0]\n];\nexports.AgentRuntime$ = [3, n0, _AR,\n 0,\n [_aRA, _aRI, _aRV, _aRN, _d, _lUA, _st],\n [0, 0, 0, 0, [() => Description, 0], 5, 0], 7\n];\nexports.AgentRuntimeEndpoint$ = [3, n0, _ARE,\n 0,\n [_n, _aREA, _aRA, _st, _i, _cA, _lUA, _lV, _tV, _d],\n [[() => EndpointName, 0], 0, 0, 0, 0, 5, 5, 0, 0, 0], 7\n];\nexports.AgentSkillsDescriptor$ = [3, n0, _ASD,\n 0,\n [_sM, _sD],\n [() => exports.SkillMdDefinition$, () => exports.SkillDefinition$]\n];\nexports.ApiGatewayTargetConfiguration$ = [3, n0, _AGTC,\n 0,\n [_rAI, _sta, _aGTC],\n [0, 0, () => exports.ApiGatewayToolConfiguration$], 3\n];\nexports.ApiGatewayToolConfiguration$ = [3, n0, _AGTCp,\n 0,\n [_tF, _tO],\n [() => ApiGatewayToolFilters, () => ApiGatewayToolOverrides], 1\n];\nexports.ApiGatewayToolFilter$ = [3, n0, _AGTF,\n 0,\n [_fP, _me],\n [0, 64 | 0], 2\n];\nexports.ApiGatewayToolOverride$ = [3, n0, _AGTO,\n 0,\n [_n, _p, _met, _d],\n [0, 0, 0, 0], 3\n];\nexports.ApiKeyCredentialProviderItem$ = [3, n0, _AKCPI,\n 0,\n [_n, _cPA, _cT, _lUT],\n [0, 0, 4, 4], 4\n];\nexports.ApprovalConfiguration$ = [3, n0, _AC,\n 0,\n [_aA],\n [2]\n];\nexports.AtlassianOauth2ProviderConfigInput$ = [3, n0, _AOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.AtlassianOauth2ProviderConfigOutput$ = [3, n0, _AOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.AuthorizingClaimMatchValueType$ = [3, n0, _ACMVT,\n 0,\n [_cMV, _cMO],\n [() => exports.ClaimMatchValueType$, 0], 2\n];\nexports.BedrockEvaluatorModelConfig$ = [3, n0, _BEMC,\n 0,\n [_mI, _iCn, _aMRF],\n [0, () => exports.InferenceConfiguration$, 15], 1\n];\nexports.BrowserEnterprisePolicy$ = [3, n0, _BEP,\n 0,\n [_l, _t],\n [() => exports.ResourceLocation$, 0], 1\n];\nexports.BrowserNetworkConfiguration$ = [3, n0, _BNC,\n 0,\n [_nM, _vC],\n [0, () => exports.VpcConfig$], 1\n];\nexports.BrowserProfileSummary$ = [3, n0, _BPS,\n 0,\n [_pI, _pA, _n, _st, _cA, _lUA, _d, _lSA, _lSBSI, _lSBI],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 5, 0, 0], 6\n];\nexports.BrowserSigningConfigInput$ = [3, n0, _BSCI,\n 0,\n [_en],\n [2], 1\n];\nexports.BrowserSigningConfigOutput$ = [3, n0, _BSCO,\n 0,\n [_en],\n [2], 1\n];\nexports.BrowserSummary$ = [3, n0, _BS,\n 0,\n [_bI, _bA, _st, _cA, _n, _d, _lUA],\n [0, 0, 0, 5, 0, [() => Description, 0], 5], 4\n];\nexports.CategoricalScaleDefinition$ = [3, n0, _CSD,\n 0,\n [_de, _la],\n [0, 0], 2\n];\nexports.CedarPolicy$ = [3, n0, _CP,\n 0,\n [_stat],\n [0], 1\n];\nexports.Certificate$ = [3, n0, _C,\n 0,\n [_l],\n [() => exports.CertificateLocation$], 1\n];\nexports.CloudWatchLogsInputConfig$ = [3, n0, _CWLIC,\n 0,\n [_lGN, _sN],\n [64 | 0, 64 | 0], 2\n];\nexports.CloudWatchOutputConfig$ = [3, n0, _CWOC,\n 0,\n [_lGNo],\n [0], 1\n];\nexports.CodeConfiguration$ = [3, n0, _CC,\n 0,\n [_co, _ru, _eP],\n [() => exports.Code$, 0, 64 | 0], 3\n];\nexports.CodeInterpreterNetworkConfiguration$ = [3, n0, _CINC,\n 0,\n [_nM, _vC],\n [0, () => exports.VpcConfig$], 1\n];\nexports.CodeInterpreterSummary$ = [3, n0, _CIS,\n 0,\n [_cII, _cIA, _st, _cA, _n, _d, _lUA],\n [0, 0, 0, 5, 0, [() => Description, 0], 5], 4\n];\nexports.ContainerConfiguration$ = [3, n0, _CCo,\n 0,\n [_cU],\n [0], 1\n];\nexports.ContentConfiguration$ = [3, n0, _CCon,\n 0,\n [_t, _le],\n [0, 0], 1\n];\nexports.CreateAgentRuntimeEndpointRequest$ = [3, n0, _CARER,\n 0,\n [_aRI, _n, _aRV, _d, _cTl, _ta],\n [[0, 1], [() => EndpointName, 0], 0, 0, [0, 4], 128 | 0], 2\n];\nexports.CreateAgentRuntimeEndpointResponse$ = [3, n0, _CARERr,\n 0,\n [_tV, _aREA, _aRA, _st, _cA, _aRI, _eN],\n [0, 0, 0, 0, 5, 0, [() => EndpointName, 0]], 5\n];\nexports.CreateAgentRuntimeRequest$ = [3, n0, _CARR,\n 0,\n [_aRN, _aRAg, _rA, _nC, _cTl, _d, _aCu, _rHC, _pC, _lC, _eV, _fC, _ta],\n [0, () => exports.AgentRuntimeArtifact$, 0, () => exports.NetworkConfiguration$, [0, 4], [() => Description, 0], () => exports.AuthorizerConfiguration$, () => exports.RequestHeaderConfiguration$, () => exports.ProtocolConfiguration$, () => exports.LifecycleConfiguration$, [() => EnvironmentVariablesMap, 0], () => FilesystemConfigurations, 128 | 0], 4\n];\nexports.CreateAgentRuntimeResponse$ = [3, n0, _CARRr,\n 0,\n [_aRA, _aRI, _aRV, _cA, _st, _wID],\n [0, 0, 0, 5, 0, () => exports.WorkloadIdentityDetails$], 5\n];\nexports.CreateApiKeyCredentialProviderRequest$ = [3, n0, _CAKCPR,\n 0,\n [_n, _aK, _ta],\n [0, [() => ApiKeyType, 0], 128 | 0], 2\n];\nexports.CreateApiKeyCredentialProviderResponse$ = [3, n0, _CAKCPRr,\n 0,\n [_aKSA, _n, _cPA],\n [() => exports.Secret$, 0, 0], 3\n];\nexports.CreateBrowserProfileRequest$ = [3, n0, _CBPR,\n 0,\n [_n, _d, _cTl, _ta],\n [0, [() => Description, 0], [0, 4], 128 | 0], 1\n];\nexports.CreateBrowserProfileResponse$ = [3, n0, _CBPRr,\n 0,\n [_pI, _pA, _cA, _st],\n [0, 0, 5, 0], 4\n];\nexports.CreateBrowserRequest$ = [3, n0, _CBR,\n 0,\n [_n, _nC, _d, _eRA, _re, _bS, _ePn, _ce, _cTl, _ta],\n [0, () => exports.BrowserNetworkConfiguration$, [() => Description, 0], 0, () => exports.RecordingConfig$, () => exports.BrowserSigningConfigInput$, () => BrowserEnterprisePolicies, () => Certificates, [0, 4], 128 | 0], 2\n];\nexports.CreateBrowserResponse$ = [3, n0, _CBRr,\n 0,\n [_bI, _bA, _cA, _st],\n [0, 0, 5, 0], 4\n];\nexports.CreateCodeInterpreterRequest$ = [3, n0, _CCIR,\n 0,\n [_n, _nC, _d, _eRA, _ce, _cTl, _ta],\n [0, () => exports.CodeInterpreterNetworkConfiguration$, [() => Description, 0], 0, () => Certificates, [0, 4], 128 | 0], 2\n];\nexports.CreateCodeInterpreterResponse$ = [3, n0, _CCIRr,\n 0,\n [_cII, _cIA, _cA, _st],\n [0, 0, 5, 0], 4\n];\nexports.CreateEvaluatorRequest$ = [3, n0, _CER,\n 0,\n [_eNv, _eC, _le, _cTl, _d, _ta],\n [0, [() => exports.EvaluatorConfig$, 0], 0, [0, 4], [() => EvaluatorDescription, 0], 128 | 0], 3\n];\nexports.CreateEvaluatorResponse$ = [3, n0, _CERr,\n 0,\n [_eA, _eI, _cA, _st],\n [0, 0, 4, 0], 4\n];\nexports.CreateGatewayRequest$ = [3, n0, _CGR,\n 0,\n [_n, _rA, _pT, _aT, _d, _cTl, _pC, _aCu, _kKA, _iCnt, _pEC, _eL, _ta],\n [[() => GatewayName, 0], 0, 0, 0, [() => GatewayDescription, 0], [0, 4], () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, 0, 128 | 0], 4\n];\nexports.CreateGatewayResponse$ = [3, n0, _CGRr,\n 0,\n [_gA, _gI, _cA, _uA, _st, _n, _pT, _aT, _gU, _sR, _d, _rA, _pC, _aCu, _kKA, _iCnt, _pEC, _wID, _eL],\n [0, 0, 5, 5, 0, [() => GatewayName, 0], 0, 0, 0, 64 | 0, [() => GatewayDescription, 0], 0, () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, () => exports.WorkloadIdentityDetails$, 0], 8\n];\nexports.CreateGatewayTargetRequest$ = [3, n0, _CGTR,\n 0,\n [_gIa, _n, _tC, _d, _cTl, _cPC, _mC, _pE],\n [[0, 1], [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => TargetDescription, 0], [0, 4], [() => CredentialProviderConfigurations, 0], () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$], 3\n];\nexports.CreateGatewayTargetResponse$ = [3, n0, _CGTRr,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.CreateMemoryInput$ = [3, n0, _CMI,\n 0,\n [_n, _eED, _cTl, _d, _eKA, _mERA, _mS, _sDR, _ta],\n [0, 1, [0, 4], [() => Description, 0], 0, 0, [() => MemoryStrategyInputList, 0], () => exports.StreamDeliveryResources$, 128 | 0], 2\n];\nexports.CreateMemoryOutput$ = [3, n0, _CMO,\n 0,\n [_mem],\n [[() => exports.Memory$, 0]]\n];\nexports.CreateOauth2CredentialProviderRequest$ = [3, n0, _COCPR,\n 0,\n [_n, _cPV, _oPCI, _ta],\n [0, 0, [() => exports.Oauth2ProviderConfigInput$, 0], 128 | 0], 3\n];\nexports.CreateOauth2CredentialProviderResponse$ = [3, n0, _COCPRr,\n 0,\n [_cSA, _n, _cPA, _cUa, _oPCO],\n [() => exports.Secret$, 0, 0, 0, () => exports.Oauth2ProviderConfigOutput$], 3\n];\nexports.CreateOnlineEvaluationConfigRequest$ = [3, n0, _COECR,\n 0,\n [_oECN, _rul, _dSC, _ev, _eERA, _eOC, _cTl, _d, _ta],\n [0, () => exports.Rule$, () => exports.DataSourceConfig$, () => EvaluatorList, 0, 2, [0, 4], [() => EvaluationConfigDescription, 0], 128 | 0], 6\n];\nexports.CreateOnlineEvaluationConfigResponse$ = [3, n0, _COECRr,\n 0,\n [_oECA, _oECI, _cA, _st, _eS, _oC, _fR],\n [0, 0, 4, 0, 0, () => exports.OutputConfig$, 0], 5\n];\nexports.CreatePolicyEngineRequest$ = [3, n0, _CPER,\n 0,\n [_n, _d, _cTl, _eKA, _ta],\n [0, [() => Description, 0], [0, 4], 0, 128 | 0], 1\n];\nexports.CreatePolicyEngineResponse$ = [3, n0, _CPERr,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.CreatePolicyRequest$ = [3, n0, _CPR,\n 0,\n [_n, _de, _pEI, _d, _vM, _cTl],\n [0, () => exports.PolicyDefinition$, [0, 1], [() => Description, 0], 0, [0, 4]], 3\n];\nexports.CreatePolicyResponse$ = [3, n0, _CPRr,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.CreateRegistryRecordRequest$ = [3, n0, _CRRR,\n 0,\n [_rI, _n, _dT, _d, _des, _rV, _sT, _sC, _cTl],\n [[0, 1], 0, 0, [() => Description, 0], () => exports.Descriptors$, 0, 0, () => exports.SynchronizationConfiguration$, [0, 4]], 3\n];\nexports.CreateRegistryRecordResponse$ = [3, n0, _CRRRr,\n 0,\n [_rAe, _st],\n [0, 0], 2\n];\nexports.CreateRegistryRequest$ = [3, n0, _CRR,\n 0,\n [_n, _d, _aT, _aCu, _cTl, _aCp],\n [0, [() => Description, 0], 0, () => exports.AuthorizerConfiguration$, [0, 4], () => exports.ApprovalConfiguration$], 1\n];\nexports.CreateRegistryResponse$ = [3, n0, _CRRr,\n 0,\n [_rAeg],\n [0], 1\n];\nexports.CreateWorkloadIdentityRequest$ = [3, n0, _CWIR,\n 0,\n [_n, _aRORU, _ta],\n [0, 64 | 0, 128 | 0], 1\n];\nexports.CreateWorkloadIdentityResponse$ = [3, n0, _CWIRr,\n 0,\n [_n, _wIA, _aRORU],\n [0, 0, 64 | 0], 2\n];\nexports.CredentialProviderConfiguration$ = [3, n0, _CPC,\n 0,\n [_cPT, _cP],\n [0, [() => exports.CredentialProvider$, 0]], 1\n];\nexports.CustomClaimValidationType$ = [3, n0, _CCVT,\n 0,\n [_iTCN, _iTCVT, _aCMV],\n [0, 0, () => exports.AuthorizingClaimMatchValueType$], 3\n];\nexports.CustomDescriptor$ = [3, n0, _CD,\n 0,\n [_iC],\n [0]\n];\nexports.CustomJWTAuthorizerConfiguration$ = [3, n0, _CJWTAC,\n 0,\n [_dU, _aAl, _aCl, _aS, _cC],\n [0, 64 | 0, 64 | 0, 64 | 0, () => CustomClaimValidationsType], 1\n];\nexports.CustomMemoryStrategyInput$ = [3, n0, _CMSI,\n 0,\n [_n, _d, _na, _nT, _con],\n [0, [() => Description, 0], 64 | 0, 64 | 0, [() => exports.CustomConfigurationInput$, 0]], 1\n];\nexports.CustomOauth2ProviderConfigInput$ = [3, n0, _COPCI,\n 0,\n [_oD, _cI, _cS],\n [() => exports.Oauth2Discovery$, 0, [() => ClientSecretType, 0]], 3\n];\nexports.CustomOauth2ProviderConfigOutput$ = [3, n0, _COPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.DeleteAgentRuntimeEndpointRequest$ = [3, n0, _DARER,\n 0,\n [_aRI, _eN, _cTl],\n [[0, 1], [() => EndpointName, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 2\n];\nexports.DeleteAgentRuntimeEndpointResponse$ = [3, n0, _DARERe,\n 0,\n [_st, _aRI, _eN],\n [0, 0, [() => EndpointName, 0]], 1\n];\nexports.DeleteAgentRuntimeRequest$ = [3, n0, _DARR,\n 0,\n [_aRI, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteAgentRuntimeResponse$ = [3, n0, _DARRe,\n 0,\n [_st, _aRI],\n [0, 0], 1\n];\nexports.DeleteApiKeyCredentialProviderRequest$ = [3, n0, _DAKCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.DeleteApiKeyCredentialProviderResponse$ = [3, n0, _DAKCPRe,\n 0,\n [],\n []\n];\nexports.DeleteBrowserProfileRequest$ = [3, n0, _DBPR,\n 0,\n [_pI, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteBrowserProfileResponse$ = [3, n0, _DBPRe,\n 0,\n [_pI, _pA, _st, _lUA, _lSA],\n [0, 0, 0, 5, 5], 4\n];\nexports.DeleteBrowserRequest$ = [3, n0, _DBR,\n 0,\n [_bI, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteBrowserResponse$ = [3, n0, _DBRe,\n 0,\n [_bI, _st, _lUA],\n [0, 0, 5], 3\n];\nexports.DeleteCodeInterpreterRequest$ = [3, n0, _DCIR,\n 0,\n [_cII, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteCodeInterpreterResponse$ = [3, n0, _DCIRe,\n 0,\n [_cII, _st, _lUA],\n [0, 0, 5], 3\n];\nexports.DeleteEvaluatorRequest$ = [3, n0, _DER,\n 0,\n [_eI],\n [[0, 1]], 1\n];\nexports.DeleteEvaluatorResponse$ = [3, n0, _DERe,\n 0,\n [_eA, _eI, _st],\n [0, 0, 0], 3\n];\nexports.DeleteGatewayRequest$ = [3, n0, _DGR,\n 0,\n [_gIa],\n [[0, 1]], 1\n];\nexports.DeleteGatewayResponse$ = [3, n0, _DGRe,\n 0,\n [_gI, _st, _sR],\n [0, 0, 64 | 0], 2\n];\nexports.DeleteGatewayTargetRequest$ = [3, n0, _DGTR,\n 0,\n [_gIa, _tI],\n [[0, 1], [0, 1]], 2\n];\nexports.DeleteGatewayTargetResponse$ = [3, n0, _DGTRe,\n 0,\n [_gA, _tI, _st, _sR],\n [0, 0, 0, 64 | 0], 3\n];\nexports.DeleteMemoryInput$ = [3, n0, _DMI,\n 0,\n [_mIe, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteMemoryOutput$ = [3, n0, _DMO,\n 0,\n [_mIe, _st],\n [0, 0], 1\n];\nexports.DeleteMemoryStrategyInput$ = [3, n0, _DMSI,\n 0,\n [_mSI],\n [0], 1\n];\nexports.DeleteOauth2CredentialProviderRequest$ = [3, n0, _DOCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.DeleteOauth2CredentialProviderResponse$ = [3, n0, _DOCPRe,\n 0,\n [],\n []\n];\nexports.DeleteOnlineEvaluationConfigRequest$ = [3, n0, _DOECR,\n 0,\n [_oECI],\n [[0, 1]], 1\n];\nexports.DeleteOnlineEvaluationConfigResponse$ = [3, n0, _DOECRe,\n 0,\n [_oECA, _oECI, _st],\n [0, 0, 0], 3\n];\nexports.DeletePolicyEngineRequest$ = [3, n0, _DPER,\n 0,\n [_pEI],\n [[0, 1]], 1\n];\nexports.DeletePolicyEngineResponse$ = [3, n0, _DPERe,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.DeletePolicyRequest$ = [3, n0, _DPR,\n 0,\n [_pEI, _pIo],\n [[0, 1], [0, 1]], 2\n];\nexports.DeletePolicyResponse$ = [3, n0, _DPRe,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.DeleteRegistryRecordRequest$ = [3, n0, _DRRR,\n 0,\n [_rI, _rIe],\n [[0, 1], [0, 1]], 2\n];\nexports.DeleteRegistryRecordResponse$ = [3, n0, _DRRRe,\n 0,\n [],\n []\n];\nexports.DeleteRegistryRequest$ = [3, n0, _DRR,\n 0,\n [_rI],\n [[0, 1]], 1\n];\nexports.DeleteRegistryResponse$ = [3, n0, _DRRe,\n 0,\n [_st],\n [0], 1\n];\nexports.DeleteResourcePolicyRequest$ = [3, n0, _DRPR,\n 0,\n [_rAes],\n [[0, 1]], 1\n];\nexports.DeleteResourcePolicyResponse$ = [3, n0, _DRPRe,\n 0,\n [],\n []\n];\nexports.DeleteWorkloadIdentityRequest$ = [3, n0, _DWIR,\n 0,\n [_n],\n [0], 1\n];\nexports.DeleteWorkloadIdentityResponse$ = [3, n0, _DWIRe,\n 0,\n [],\n []\n];\nexports.Descriptors$ = [3, n0, _De,\n 0,\n [_mc, _a, _cu, _aSg],\n [() => exports.McpDescriptor$, () => exports.A2aDescriptor$, () => exports.CustomDescriptor$, () => exports.AgentSkillsDescriptor$]\n];\nexports.EpisodicConsolidationOverride$ = [3, n0, _ECO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicExtractionOverride$ = [3, n0, _EEO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicMemoryStrategyInput$ = [3, n0, _EMSI,\n 0,\n [_n, _d, _na, _nT, _rC],\n [0, [() => Description, 0], 64 | 0, 64 | 0, () => exports.EpisodicReflectionConfigurationInput$], 1\n];\nexports.EpisodicOverrideConfigurationInput$ = [3, n0, _EOCI,\n 0,\n [_ex, _cons, _ref],\n [[() => exports.EpisodicOverrideExtractionConfigurationInput$, 0], [() => exports.EpisodicOverrideConsolidationConfigurationInput$, 0], [() => exports.EpisodicOverrideReflectionConfigurationInput$, 0]]\n];\nexports.EpisodicOverrideConsolidationConfigurationInput$ = [3, n0, _EOCCI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicOverrideExtractionConfigurationInput$ = [3, n0, _EOECI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicOverrideReflectionConfigurationInput$ = [3, n0, _EORCI,\n 0,\n [_aTP, _mI, _na, _nT],\n [[() => Prompt, 0], 0, 64 | 0, 64 | 0], 2\n];\nexports.EpisodicReflectionConfiguration$ = [3, n0, _ERC,\n 0,\n [_na, _nT],\n [64 | 0, 64 | 0]\n];\nexports.EpisodicReflectionConfigurationInput$ = [3, n0, _ERCI,\n 0,\n [_na, _nT],\n [64 | 0, 64 | 0]\n];\nexports.EpisodicReflectionOverride$ = [3, n0, _ERO,\n 0,\n [_aTP, _mI, _na, _nT],\n [[() => Prompt, 0], 0, 64 | 0, 64 | 0], 2\n];\nexports.EvaluatorSummary$ = [3, n0, _ES,\n 0,\n [_eA, _eI, _eNv, _eT, _st, _cA, _uA, _d, _le, _lFM],\n [0, 0, 0, 0, 0, 4, 4, [() => EvaluatorDescription, 0], 0, 2], 7\n];\nexports.Filter$ = [3, n0, _F,\n 0,\n [_k, _o, _v],\n [0, 0, () => exports.FilterValue$], 3\n];\nexports.Finding$ = [3, n0, _Fi,\n 0,\n [_t, _d],\n [0, 0]\n];\nexports.FromUrlSynchronizationConfiguration$ = [3, n0, _FUSC,\n 0,\n [_u, _cPC],\n [0, () => RegistryRecordCredentialProviderConfigurationList], 1\n];\nexports.GatewayApiKeyCredentialProvider$ = [3, n0, _GAKCP,\n 0,\n [_pAr, _cPN, _cPr, _cL],\n [0, 0, 0, 0], 1\n];\nexports.GatewayInterceptorConfiguration$ = [3, n0, _GIC,\n 0,\n [_in, _iP, _iCnp],\n [() => exports.InterceptorConfiguration$, 64 | 0, () => exports.InterceptorInputConfiguration$], 2\n];\nexports.GatewayPolicyEngineConfiguration$ = [3, n0, _GPEC,\n 0,\n [_ar, _mo],\n [0, 0], 2\n];\nexports.GatewaySummary$ = [3, n0, _GS,\n 0,\n [_gI, _n, _st, _cA, _uA, _aT, _pT, _d],\n [0, [() => GatewayName, 0], 0, 5, 5, 0, 0, [() => GatewayDescription, 0]], 7\n];\nexports.GatewayTarget$ = [3, n0, _GT,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.GetAgentRuntimeEndpointRequest$ = [3, n0, _GARER,\n 0,\n [_aRI, _eN],\n [[0, 1], [() => EndpointName, 1]], 2\n];\nexports.GetAgentRuntimeEndpointResponse$ = [3, n0, _GARERe,\n 0,\n [_aREA, _aRA, _st, _cA, _lUA, _n, _i, _lV, _tV, _d, _fR],\n [0, 0, 0, 5, 5, [() => EndpointName, 0], 0, 0, 0, 0, 0], 7\n];\nexports.GetAgentRuntimeRequest$ = [3, n0, _GARR,\n 0,\n [_aRI, _aRV],\n [[0, 1], [0, { [_hQ]: _ve }]], 1\n];\nexports.GetAgentRuntimeResponse$ = [3, n0, _GARRe,\n 0,\n [_aRA, _aRN, _aRI, _aRV, _cA, _lUA, _rA, _nC, _st, _lC, _fR, _d, _wID, _aRAg, _pC, _eV, _aCu, _rHC, _mC, _fC],\n [0, 0, 0, 0, 5, 5, 0, () => exports.NetworkConfiguration$, 0, () => exports.LifecycleConfiguration$, 0, [() => Description, 0], () => exports.WorkloadIdentityDetails$, () => exports.AgentRuntimeArtifact$, () => exports.ProtocolConfiguration$, [() => EnvironmentVariablesMap, 0], () => exports.AuthorizerConfiguration$, () => exports.RequestHeaderConfiguration$, () => exports.RuntimeMetadataConfiguration$, () => FilesystemConfigurations], 10\n];\nexports.GetApiKeyCredentialProviderRequest$ = [3, n0, _GAKCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.GetApiKeyCredentialProviderResponse$ = [3, n0, _GAKCPRe,\n 0,\n [_aKSA, _n, _cPA, _cT, _lUT],\n [() => exports.Secret$, 0, 0, 4, 4], 5\n];\nexports.GetBrowserProfileRequest$ = [3, n0, _GBPR,\n 0,\n [_pI],\n [[0, 1]], 1\n];\nexports.GetBrowserProfileResponse$ = [3, n0, _GBPRe,\n 0,\n [_pI, _pA, _n, _st, _cA, _lUA, _d, _lSA, _lSBSI, _lSBI],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 5, 0, 0], 6\n];\nexports.GetBrowserRequest$ = [3, n0, _GBR,\n 0,\n [_bI],\n [[0, 1]], 1\n];\nexports.GetBrowserResponse$ = [3, n0, _GBRe,\n 0,\n [_bI, _bA, _n, _nC, _st, _cA, _lUA, _d, _eRA, _re, _bS, _ePn, _ce, _fR],\n [0, 0, 0, () => exports.BrowserNetworkConfiguration$, 0, 5, 5, [() => Description, 0], 0, () => exports.RecordingConfig$, () => exports.BrowserSigningConfigOutput$, () => BrowserEnterprisePolicies, () => Certificates, 0], 7\n];\nexports.GetCodeInterpreterRequest$ = [3, n0, _GCIR,\n 0,\n [_cII],\n [[0, 1]], 1\n];\nexports.GetCodeInterpreterResponse$ = [3, n0, _GCIRe,\n 0,\n [_cII, _cIA, _n, _nC, _st, _cA, _lUA, _d, _eRA, _ce, _fR],\n [0, 0, 0, () => exports.CodeInterpreterNetworkConfiguration$, 0, 5, 5, [() => Description, 0], 0, () => Certificates, 0], 7\n];\nexports.GetEvaluatorRequest$ = [3, n0, _GER,\n 0,\n [_eI],\n [[0, 1]], 1\n];\nexports.GetEvaluatorResponse$ = [3, n0, _GERe,\n 0,\n [_eA, _eI, _eNv, _eC, _le, _st, _cA, _uA, _d, _lFM],\n [0, 0, 0, [() => exports.EvaluatorConfig$, 0], 0, 0, 4, 4, [() => EvaluatorDescription, 0], 2], 8\n];\nexports.GetGatewayRequest$ = [3, n0, _GGR,\n 0,\n [_gIa],\n [[0, 1]], 1\n];\nexports.GetGatewayResponse$ = [3, n0, _GGRe,\n 0,\n [_gA, _gI, _cA, _uA, _st, _n, _pT, _aT, _gU, _sR, _d, _rA, _pC, _aCu, _kKA, _iCnt, _pEC, _wID, _eL],\n [0, 0, 5, 5, 0, [() => GatewayName, 0], 0, 0, 0, 64 | 0, [() => GatewayDescription, 0], 0, () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, () => exports.WorkloadIdentityDetails$, 0], 8\n];\nexports.GetGatewayTargetRequest$ = [3, n0, _GGTR,\n 0,\n [_gIa, _tI],\n [[0, 1], [0, 1]], 2\n];\nexports.GetGatewayTargetResponse$ = [3, n0, _GGTRe,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.GetMemoryInput$ = [3, n0, _GMI,\n 0,\n [_mIe, _vi],\n [[0, 1], [0, { [_hQ]: _vi }]], 1\n];\nexports.GetMemoryOutput$ = [3, n0, _GMO,\n 0,\n [_mem],\n [[() => exports.Memory$, 0]], 1\n];\nexports.GetOauth2CredentialProviderRequest$ = [3, n0, _GOCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.GetOauth2CredentialProviderResponse$ = [3, n0, _GOCPRe,\n 0,\n [_cSA, _n, _cPA, _cPV, _oPCO, _cT, _lUT, _cUa],\n [() => exports.Secret$, 0, 0, 0, () => exports.Oauth2ProviderConfigOutput$, 4, 4, 0], 7\n];\nexports.GetOnlineEvaluationConfigRequest$ = [3, n0, _GOECR,\n 0,\n [_oECI],\n [[0, 1]], 1\n];\nexports.GetOnlineEvaluationConfigResponse$ = [3, n0, _GOECRe,\n 0,\n [_oECA, _oECI, _oECN, _rul, _dSC, _ev, _st, _eS, _cA, _uA, _d, _oC, _eERA, _fR],\n [0, 0, 0, () => exports.Rule$, () => exports.DataSourceConfig$, () => EvaluatorList, 0, 0, 4, 4, [() => EvaluationConfigDescription, 0], () => exports.OutputConfig$, 0, 0], 10\n];\nexports.GetPolicyEngineRequest$ = [3, n0, _GPER,\n 0,\n [_pEI],\n [[0, 1]], 1\n];\nexports.GetPolicyEngineResponse$ = [3, n0, _GPERe,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.GetPolicyGenerationRequest$ = [3, n0, _GPGR,\n 0,\n [_pGI, _pEI],\n [[0, 1], [0, 1]], 2\n];\nexports.GetPolicyGenerationResponse$ = [3, n0, _GPGRe,\n 0,\n [_pEI, _pGI, _n, _pGA, _res, _cA, _uA, _st, _sR, _f],\n [0, 0, 0, 0, () => exports.Resource$, 5, 5, 0, 64 | 0, 0], 9\n];\nexports.GetPolicyRequest$ = [3, n0, _GPR,\n 0,\n [_pEI, _pIo],\n [[0, 1], [0, 1]], 2\n];\nexports.GetPolicyResponse$ = [3, n0, _GPRe,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.GetRegistryRecordRequest$ = [3, n0, _GRRR,\n 0,\n [_rI, _rIe],\n [[0, 1], [0, 1]], 2\n];\nexports.GetRegistryRecordResponse$ = [3, n0, _GRRRe,\n 0,\n [_rAeg, _rAe, _rIe, _n, _dT, _des, _st, _cA, _uA, _d, _rV, _sRt, _sT, _sC],\n [0, 0, 0, 0, 0, () => exports.Descriptors$, 0, 5, 5, [() => Description, 0], 0, 0, 0, () => exports.SynchronizationConfiguration$], 9\n];\nexports.GetRegistryRequest$ = [3, n0, _GRR,\n 0,\n [_rI],\n [[0, 1]], 1\n];\nexports.GetRegistryResponse$ = [3, n0, _GRRe,\n 0,\n [_n, _rI, _rAeg, _st, _cA, _uA, _d, _aT, _aCu, _aCp, _sRt],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 0, () => exports.AuthorizerConfiguration$, () => exports.ApprovalConfiguration$, 0], 6\n];\nexports.GetResourcePolicyRequest$ = [3, n0, _GRPR,\n 0,\n [_rAes],\n [[0, 1]], 1\n];\nexports.GetResourcePolicyResponse$ = [3, n0, _GRPRe,\n 0,\n [_po],\n [0]\n];\nexports.GetTokenVaultRequest$ = [3, n0, _GTVR,\n 0,\n [_tVI],\n [0]\n];\nexports.GetTokenVaultResponse$ = [3, n0, _GTVRe,\n 0,\n [_tVI, _kC, _lMD],\n [0, () => exports.KmsConfiguration$, 4], 3\n];\nexports.GetWorkloadIdentityRequest$ = [3, n0, _GWIR,\n 0,\n [_n],\n [0], 1\n];\nexports.GetWorkloadIdentityResponse$ = [3, n0, _GWIRe,\n 0,\n [_n, _wIA, _cT, _lUT, _aRORU],\n [0, 0, 4, 4, 64 | 0], 4\n];\nexports.GithubOauth2ProviderConfigInput$ = [3, n0, _GOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.GithubOauth2ProviderConfigOutput$ = [3, n0, _GOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.GoogleOauth2ProviderConfigInput$ = [3, n0, _GOPCIo,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.GoogleOauth2ProviderConfigOutput$ = [3, n0, _GOPCOo,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.IamCredentialProvider$ = [3, n0, _ICP,\n 0,\n [_ser, _reg],\n [0, 0], 1\n];\nexports.IncludedOauth2ProviderConfigInput$ = [3, n0, _IOPCI,\n 0,\n [_cI, _cS, _is, _aE, _tE],\n [0, [() => ClientSecretType, 0], 0, 0, 0], 2\n];\nexports.IncludedOauth2ProviderConfigOutput$ = [3, n0, _IOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.InferenceConfiguration$ = [3, n0, _IC,\n 0,\n [_mT, _te, _tP, _sS],\n [1, 1, 1, 64 | 0]\n];\nexports.InterceptorInputConfiguration$ = [3, n0, _IIC,\n 0,\n [_pRH],\n [2], 1\n];\nexports.InvocationConfiguration$ = [3, n0, _ICn,\n 0,\n [_tA, _pDBN],\n [0, 0], 2\n];\nexports.InvocationConfigurationInput$ = [3, n0, _ICI,\n 0,\n [_tA, _pDBN],\n [0, 0], 2\n];\nexports.KinesisResource$ = [3, n0, _KR,\n 0,\n [_dSA, _cCo],\n [0, () => ContentConfigurationList], 2\n];\nexports.KmsConfiguration$ = [3, n0, _KC,\n 0,\n [_kT, _kKA],\n [0, 0], 1\n];\nexports.LambdaEvaluatorConfig$ = [3, n0, _LEC,\n 0,\n [_lA, _lTIS],\n [0, 1], 1\n];\nexports.LambdaInterceptorConfiguration$ = [3, n0, _LIC,\n 0,\n [_ar],\n [0], 1\n];\nexports.LifecycleConfiguration$ = [3, n0, _LC,\n 0,\n [_iRST, _mL],\n [1, 1]\n];\nexports.LinkedinOauth2ProviderConfigInput$ = [3, n0, _LOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.LinkedinOauth2ProviderConfigOutput$ = [3, n0, _LOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.ListAgentRuntimeEndpointsRequest$ = [3, n0, _LARER,\n 0,\n [_aRI, _mR, _nTe],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]], 1\n];\nexports.ListAgentRuntimeEndpointsResponse$ = [3, n0, _LARERi,\n 0,\n [_rE, _nTe],\n [[() => AgentRuntimeEndpoints, 0], 0], 1\n];\nexports.ListAgentRuntimesRequest$ = [3, n0, _LARR,\n 0,\n [_mR, _nTe],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]]\n];\nexports.ListAgentRuntimesResponse$ = [3, n0, _LARRi,\n 0,\n [_aR, _nTe],\n [[() => AgentRuntimes, 0], 0], 1\n];\nexports.ListAgentRuntimeVersionsRequest$ = [3, n0, _LARVR,\n 0,\n [_aRI, _mR, _nTe],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]], 1\n];\nexports.ListAgentRuntimeVersionsResponse$ = [3, n0, _LARVRi,\n 0,\n [_aR, _nTe],\n [[() => AgentRuntimes, 0], 0], 1\n];\nexports.ListApiKeyCredentialProvidersRequest$ = [3, n0, _LAKCPR,\n 0,\n [_nTe, _mR],\n [0, 1]\n];\nexports.ListApiKeyCredentialProvidersResponse$ = [3, n0, _LAKCPRi,\n 0,\n [_cPre, _nTe],\n [() => ApiKeyCredentialProviders, 0], 1\n];\nexports.ListBrowserProfilesRequest$ = [3, n0, _LBPR,\n 0,\n [_mR, _nTe, _n],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], 0]\n];\nexports.ListBrowserProfilesResponse$ = [3, n0, _LBPRi,\n 0,\n [_pS, _nTe],\n [[() => BrowserProfileSummaries, 0], 0], 1\n];\nexports.ListBrowsersRequest$ = [3, n0, _LBR,\n 0,\n [_mR, _nTe, _t],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _t }]]\n];\nexports.ListBrowsersResponse$ = [3, n0, _LBRi,\n 0,\n [_bSr, _nTe],\n [[() => BrowserSummaries, 0], 0], 1\n];\nexports.ListCodeInterpretersRequest$ = [3, n0, _LCIR,\n 0,\n [_mR, _nTe, _t],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _t }]]\n];\nexports.ListCodeInterpretersResponse$ = [3, n0, _LCIRi,\n 0,\n [_cIS, _nTe],\n [[() => CodeInterpreterSummaries, 0], 0], 1\n];\nexports.ListEvaluatorsRequest$ = [3, n0, _LER,\n 0,\n [_nTe, _mR],\n [[0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]]\n];\nexports.ListEvaluatorsResponse$ = [3, n0, _LERi,\n 0,\n [_ev, _nTe],\n [[() => EvaluatorSummaryList, 0], 0], 1\n];\nexports.ListGatewaysRequest$ = [3, n0, _LGR,\n 0,\n [_mR, _nTe],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]]\n];\nexports.ListGatewaysResponse$ = [3, n0, _LGRi,\n 0,\n [_it, _nTe],\n [[() => GatewaySummaries, 0], 0], 1\n];\nexports.ListGatewayTargetsRequest$ = [3, n0, _LGTR,\n 0,\n [_gIa, _mR, _nTe],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]], 1\n];\nexports.ListGatewayTargetsResponse$ = [3, n0, _LGTRi,\n 0,\n [_it, _nTe],\n [[() => TargetSummaries, 0], 0], 1\n];\nexports.ListMemoriesInput$ = [3, n0, _LMI,\n 0,\n [_mR, _nTe],\n [1, 0]\n];\nexports.ListMemoriesOutput$ = [3, n0, _LMO,\n 0,\n [_memo, _nTe],\n [() => MemorySummaryList, 0], 1\n];\nexports.ListOauth2CredentialProvidersRequest$ = [3, n0, _LOCPR,\n 0,\n [_nTe, _mR],\n [0, 1]\n];\nexports.ListOauth2CredentialProvidersResponse$ = [3, n0, _LOCPRi,\n 0,\n [_cPre, _nTe],\n [() => Oauth2CredentialProviders, 0], 1\n];\nexports.ListOnlineEvaluationConfigsRequest$ = [3, n0, _LOECR,\n 0,\n [_nTe, _mR],\n [[0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]]\n];\nexports.ListOnlineEvaluationConfigsResponse$ = [3, n0, _LOECRi,\n 0,\n [_oEC, _nTe],\n [[() => OnlineEvaluationConfigSummaryList, 0], 0], 1\n];\nexports.ListPoliciesRequest$ = [3, n0, _LPR,\n 0,\n [_pEI, _nTe, _mR, _tRS],\n [[0, 1], [0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }], [0, { [_hQ]: _tRS }]], 1\n];\nexports.ListPoliciesResponse$ = [3, n0, _LPRi,\n 0,\n [_pol, _nTe],\n [[() => Policies, 0], 0], 1\n];\nexports.ListPolicyEnginesRequest$ = [3, n0, _LPER,\n 0,\n [_nTe, _mR],\n [[0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]]\n];\nexports.ListPolicyEnginesResponse$ = [3, n0, _LPERi,\n 0,\n [_pEo, _nTe],\n [[() => PolicyEngines, 0], 0], 1\n];\nexports.ListPolicyGenerationAssetsRequest$ = [3, n0, _LPGAR,\n 0,\n [_pGI, _pEI, _nTe, _mR],\n [[0, 1], [0, 1], [0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]], 2\n];\nexports.ListPolicyGenerationAssetsResponse$ = [3, n0, _LPGARi,\n 0,\n [_pGAo, _nTe],\n [() => PolicyGenerationAssets, 0]\n];\nexports.ListPolicyGenerationsRequest$ = [3, n0, _LPGR,\n 0,\n [_pEI, _nTe, _mR],\n [[0, 1], [0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]], 1\n];\nexports.ListPolicyGenerationsResponse$ = [3, n0, _LPGRi,\n 0,\n [_pG, _nTe],\n [() => PolicyGenerations, 0], 1\n];\nexports.ListRegistriesRequest$ = [3, n0, _LRR,\n 0,\n [_mR, _nTe, _st],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _st }]]\n];\nexports.ListRegistriesResponse$ = [3, n0, _LRRi,\n 0,\n [_regi, _nTe],\n [[() => RegistrySummaryList, 0], 0], 1\n];\nexports.ListRegistryRecordsRequest$ = [3, n0, _LRRR,\n 0,\n [_rI, _mR, _nTe, _n, _st, _dT],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _n }], [0, { [_hQ]: _st }], [0, { [_hQ]: _dT }]], 1\n];\nexports.ListRegistryRecordsResponse$ = [3, n0, _LRRRi,\n 0,\n [_rR, _nTe],\n [[() => RegistryRecordSummaryList, 0], 0], 1\n];\nexports.ListTagsForResourceRequest$ = [3, n0, _LTFRR,\n 0,\n [_rAes],\n [[0, 1]], 1\n];\nexports.ListTagsForResourceResponse$ = [3, n0, _LTFRRi,\n 0,\n [_ta],\n [128 | 0]\n];\nexports.ListWorkloadIdentitiesRequest$ = [3, n0, _LWIR,\n 0,\n [_nTe, _mR],\n [0, 1]\n];\nexports.ListWorkloadIdentitiesResponse$ = [3, n0, _LWIRi,\n 0,\n [_wI, _nTe],\n [() => WorkloadIdentityList, 0], 1\n];\nexports.LlmAsAJudgeEvaluatorConfig$ = [3, n0, _LAAJEC,\n 0,\n [_ins, _rS, _mCo],\n [[() => EvaluatorInstructions, 0], [() => exports.RatingScale$, 0], () => exports.EvaluatorModelConfig$], 3\n];\nexports.ManagedLatticeResource$ = [3, n0, _MLR,\n 0,\n [_vI, _sI, _eIAT, _sGI, _ta, _rD],\n [0, 64 | 0, 0, 64 | 0, 128 | 0, 0], 3\n];\nexports.ManagedResourceDetails$ = [3, n0, _MRD,\n 0,\n [_do, _rGA, _rAA],\n [0, 0, 0]\n];\nexports.McpDescriptor$ = [3, n0, _MD,\n 0,\n [_se, _to],\n [() => exports.ServerDefinition$, () => exports.ToolsDefinition$]\n];\nexports.MCPGatewayConfiguration$ = [3, n0, _MCPGC,\n 0,\n [_sVu, _ins, _sTe],\n [64 | 0, 0, 0]\n];\nexports.McpLambdaTargetConfiguration$ = [3, n0, _MLTC,\n 0,\n [_lA, _tS],\n [0, () => exports.ToolSchema$], 2\n];\nexports.McpServerTargetConfiguration$ = [3, n0, _MSTC,\n 0,\n [_end, _mTS, _lM],\n [0, [() => exports.McpToolSchemaConfiguration$, 0], 0], 1\n];\nexports.Memory$ = [3, n0, _M,\n 0,\n [_ar, _i, _n, _eED, _st, _cA, _uA, _d, _eKA, _mERA, _fR, _str, _sDR],\n [0, 0, 0, 1, 0, 4, 4, [() => Description, 0], 0, 0, 0, [() => MemoryStrategyList, 0], () => exports.StreamDeliveryResources$], 7\n];\nexports.MemoryStrategy$ = [3, n0, _MS,\n 0,\n [_sIt, _n, _t, _na, _nT, _d, _con, _cA, _uA, _st],\n [0, 0, 0, 64 | 0, 64 | 0, [() => Description, 0], [() => exports.StrategyConfiguration$, 0], 4, 4, 0], 5\n];\nexports.MemorySummary$ = [3, n0, _MSe,\n 0,\n [_cA, _uA, _ar, _i, _st],\n [4, 4, 0, 0, 0], 2\n];\nexports.MessageBasedTrigger$ = [3, n0, _MBT,\n 0,\n [_mCe],\n [1]\n];\nexports.MessageBasedTriggerInput$ = [3, n0, _MBTI,\n 0,\n [_mCe],\n [1]\n];\nexports.MetadataConfiguration$ = [3, n0, _MC,\n 0,\n [_aRH, _aQP, _aRHl],\n [64 | 0, 64 | 0, 64 | 0]\n];\nexports.MicrosoftOauth2ProviderConfigInput$ = [3, n0, _MOPCI,\n 0,\n [_cI, _cS, _tIe],\n [0, [() => ClientSecretType, 0], 0], 2\n];\nexports.MicrosoftOauth2ProviderConfigOutput$ = [3, n0, _MOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.ModifyInvocationConfigurationInput$ = [3, n0, _MICI,\n 0,\n [_tA, _pDBN],\n [0, 0]\n];\nexports.ModifyMemoryStrategies$ = [3, n0, _MMS,\n 0,\n [_aMS, _mMS, _dMS],\n [[() => MemoryStrategyInputList, 0], [() => ModifyMemoryStrategiesList, 0], () => DeleteMemoryStrategiesList]\n];\nexports.ModifyMemoryStrategyInput$ = [3, n0, _MMSI,\n 0,\n [_mSI, _d, _na, _nT, _con],\n [0, [() => Description, 0], 64 | 0, 64 | 0, [() => exports.ModifyStrategyConfiguration$, 0]], 1\n];\nexports.ModifySelfManagedConfiguration$ = [3, n0, _MSMC,\n 0,\n [_tCr, _iCnv, _hCWS],\n [() => TriggerConditionInputList, () => exports.ModifyInvocationConfigurationInput$, 1]\n];\nexports.ModifyStrategyConfiguration$ = [3, n0, _MSC,\n 0,\n [_ex, _cons, _ref, _sMC],\n [[() => exports.ModifyExtractionConfiguration$, 0], [() => exports.ModifyConsolidationConfiguration$, 0], [() => exports.ModifyReflectionConfiguration$, 0], () => exports.ModifySelfManagedConfiguration$]\n];\nexports.NetworkConfiguration$ = [3, n0, _NC,\n 0,\n [_nM, _nMC],\n [0, () => exports.VpcConfig$], 1\n];\nexports.NumericalScaleDefinition$ = [3, n0, _NSD,\n 0,\n [_de, _v, _la],\n [0, 1, 0], 3\n];\nexports.OAuth2AuthorizationData$ = [3, n0, _OAAD,\n 0,\n [_aU, _uI],\n [0, 0], 1\n];\nexports.Oauth2AuthorizationServerMetadata$ = [3, n0, _OASM,\n 0,\n [_is, _aE, _tE, _rT, _tEAM],\n [0, 0, 0, 64 | 0, 64 | 0], 3\n];\nexports.Oauth2CredentialProviderItem$ = [3, n0, _OCPI,\n 0,\n [_n, _cPV, _cPA, _cT, _lUT],\n [0, 0, 0, 4, 4], 5\n];\nexports.OAuthCredentialProvider$ = [3, n0, _OACP,\n 0,\n [_pAr, _sc, _cPu, _gT, _dRU],\n [0, 64 | 0, [() => OAuthCustomParameters, 0], 0, 0], 2\n];\nexports.OnlineEvaluationConfigSummary$ = [3, n0, _OECS,\n 0,\n [_oECA, _oECI, _oECN, _st, _eS, _cA, _uA, _d, _fR],\n [0, 0, 0, 0, 0, 4, 4, [() => EvaluationConfigDescription, 0], 0], 7\n];\nexports.OutputConfig$ = [3, n0, _OC,\n 0,\n [_cWC],\n [() => exports.CloudWatchOutputConfig$], 1\n];\nexports.Policy$ = [3, n0, _Po,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.PolicyEngine$ = [3, n0, _PE,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.PolicyGeneration$ = [3, n0, _PG,\n 0,\n [_pEI, _pGI, _n, _pGA, _res, _cA, _uA, _st, _sR, _f],\n [0, 0, 0, 0, () => exports.Resource$, 5, 5, 0, 64 | 0, 0], 9\n];\nexports.PolicyGenerationAsset$ = [3, n0, _PGA,\n 0,\n [_pGAI, _rTF, _f, _de],\n [0, 0, () => Findings, () => exports.PolicyDefinition$], 3\n];\nexports.PolicyGenerationDetails$ = [3, n0, _PGD,\n 0,\n [_pGI, _pGAI],\n [0, 0], 2\n];\nexports.ProtocolConfiguration$ = [3, n0, _PC,\n 0,\n [_sP],\n [0], 1\n];\nexports.PutResourcePolicyRequest$ = [3, n0, _PRPR,\n 0,\n [_rAes, _po],\n [[0, 1], 0], 2\n];\nexports.PutResourcePolicyResponse$ = [3, n0, _PRPRu,\n 0,\n [_po],\n [0], 1\n];\nexports.RecordingConfig$ = [3, n0, _RC,\n 0,\n [_en, _sL],\n [2, () => exports.S3Location$]\n];\nexports.RegistryRecordCredentialProviderConfiguration$ = [3, n0, _RRCPC,\n 0,\n [_cPT, _cP],\n [0, () => exports.RegistryRecordCredentialProviderUnion$], 2\n];\nexports.RegistryRecordIamCredentialProvider$ = [3, n0, _RRICP,\n 0,\n [_rA, _ser, _reg],\n [0, 0, 0]\n];\nexports.RegistryRecordOAuthCredentialProvider$ = [3, n0, _RROACP,\n 0,\n [_pAr, _gT, _sc, _cPu],\n [0, 0, 64 | 0, 128 | 0], 1\n];\nexports.RegistryRecordSummary$ = [3, n0, _RRS,\n 0,\n [_rAeg, _rAe, _rIe, _n, _dT, _rV, _st, _cA, _uA, _d],\n [0, 0, 0, 0, 0, 0, 0, 5, 5, [() => Description, 0]], 9\n];\nexports.RegistrySummary$ = [3, n0, _RS,\n 0,\n [_n, _rI, _rAeg, _st, _cA, _uA, _d, _aT, _sRt],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 0, 0], 6\n];\nexports.Rule$ = [3, n0, _R,\n 0,\n [_sCa, _fi, _sCe],\n [() => exports.SamplingConfig$, () => FilterList, () => exports.SessionConfig$], 1\n];\nexports.RuntimeMetadataConfiguration$ = [3, n0, _RMC,\n 0,\n [_rMMDSV],\n [2], 1\n];\nexports.S3Configuration$ = [3, n0, _SC,\n 0,\n [_ur, _bOAI],\n [0, 0]\n];\nexports.S3Location$ = [3, n0, _SL,\n 0,\n [_b, _pr, _vIe],\n [0, 0, 0], 2\n];\nexports.SalesforceOauth2ProviderConfigInput$ = [3, n0, _SOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.SalesforceOauth2ProviderConfigOutput$ = [3, n0, _SOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.SamplingConfig$ = [3, n0, _SCa,\n 0,\n [_sPa],\n [1], 1\n];\nexports.SchemaDefinition$ = [3, n0, _SD,\n 0,\n [_t, _pro, _req, _it, _d],\n [0, () => SchemaProperties, 64 | 0, () => exports.SchemaDefinition$, 0], 1\n];\nexports.Secret$ = [3, n0, _S,\n 0,\n [_sA],\n [0], 1\n];\nexports.SecretsManagerLocation$ = [3, n0, _SML,\n 0,\n [_sA],\n [0], 1\n];\nexports.SelfManagedConfiguration$ = [3, n0, _SMC,\n 0,\n [_tCr, _iCnv, _hCWS],\n [() => TriggerConditionsList, () => exports.InvocationConfiguration$, 1], 3\n];\nexports.SelfManagedConfigurationInput$ = [3, n0, _SMCI,\n 0,\n [_iCnv, _tCr, _hCWS],\n [() => exports.InvocationConfigurationInput$, () => TriggerConditionInputList, 1], 1\n];\nexports.SemanticConsolidationOverride$ = [3, n0, _SCO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SemanticExtractionOverride$ = [3, n0, _SEO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SemanticMemoryStrategyInput$ = [3, n0, _SMSI,\n 0,\n [_n, _d, _na, _nT],\n [0, [() => Description, 0], 64 | 0, 64 | 0], 1\n];\nexports.SemanticOverrideConfigurationInput$ = [3, n0, _SOCI,\n 0,\n [_ex, _cons],\n [[() => exports.SemanticOverrideExtractionConfigurationInput$, 0], [() => exports.SemanticOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.SemanticOverrideConsolidationConfigurationInput$ = [3, n0, _SOCCI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SemanticOverrideExtractionConfigurationInput$ = [3, n0, _SOECI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.ServerDefinition$ = [3, n0, _SDe,\n 0,\n [_sV, _iC],\n [0, 0]\n];\nexports.SessionConfig$ = [3, n0, _SCe,\n 0,\n [_sTM],\n [1], 1\n];\nexports.SessionStorageConfiguration$ = [3, n0, _SSC,\n 0,\n [_mP],\n [0], 1\n];\nexports.SetTokenVaultCMKRequest$ = [3, n0, _STVCMKR,\n 0,\n [_kC, _tVI],\n [() => exports.KmsConfiguration$, 0], 1\n];\nexports.SetTokenVaultCMKResponse$ = [3, n0, _STVCMKRe,\n 0,\n [_tVI, _kC, _lMD],\n [0, () => exports.KmsConfiguration$, 4], 3\n];\nexports.SkillDefinition$ = [3, n0, _SDk,\n 0,\n [_sV, _iC],\n [0, 0]\n];\nexports.SkillMdDefinition$ = [3, n0, _SMD,\n 0,\n [_iC],\n [0]\n];\nexports.SlackOauth2ProviderConfigInput$ = [3, n0, _SOPCIl,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.SlackOauth2ProviderConfigOutput$ = [3, n0, _SOPCOl,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.StartPolicyGenerationRequest$ = [3, n0, _SPGR,\n 0,\n [_pEI, _res, _cont, _n, _cTl],\n [[0, 1], () => exports.Resource$, () => exports.Content$, 0, [0, 4]], 4\n];\nexports.StartPolicyGenerationResponse$ = [3, n0, _SPGRt,\n 0,\n [_pEI, _pGI, _n, _pGA, _res, _cA, _uA, _st, _sR, _f],\n [0, 0, 0, 0, () => exports.Resource$, 5, 5, 0, 64 | 0, 0], 9\n];\nexports.StrategyConfiguration$ = [3, n0, _SCt,\n 0,\n [_t, _ex, _cons, _ref, _sMC],\n [0, [() => exports.ExtractionConfiguration$, 0], [() => exports.ConsolidationConfiguration$, 0], [() => exports.ReflectionConfiguration$, 0], () => exports.SelfManagedConfiguration$]\n];\nexports.StreamDeliveryResources$ = [3, n0, _SDR,\n 0,\n [_reso],\n [() => StreamDeliveryResourcesList], 1\n];\nexports.SubmitRegistryRecordForApprovalRequest$ = [3, n0, _SRRFAR,\n 0,\n [_rI, _rIe],\n [[0, 1], [0, 1]], 2\n];\nexports.SubmitRegistryRecordForApprovalResponse$ = [3, n0, _SRRFARu,\n 0,\n [_rAeg, _rAe, _rIe, _st, _uA],\n [0, 0, 0, 0, 5], 5\n];\nexports.SummaryConsolidationOverride$ = [3, n0, _SCOu,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SummaryMemoryStrategyInput$ = [3, n0, _SMSIu,\n 0,\n [_n, _d, _na, _nT],\n [0, [() => Description, 0], 64 | 0, 64 | 0], 1\n];\nexports.SummaryOverrideConfigurationInput$ = [3, n0, _SOCIu,\n 0,\n [_cons],\n [[() => exports.SummaryOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.SummaryOverrideConsolidationConfigurationInput$ = [3, n0, _SOCCIu,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SynchronizationConfiguration$ = [3, n0, _SCy,\n 0,\n [_fU],\n [() => exports.FromUrlSynchronizationConfiguration$]\n];\nexports.SynchronizeGatewayTargetsRequest$ = [3, n0, _SGTR,\n 0,\n [_gIa, _tIL],\n [[0, 1], 64 | 0], 2\n];\nexports.SynchronizeGatewayTargetsResponse$ = [3, n0, _SGTRy,\n 0,\n [_tar],\n [[() => GatewayTargetList, 0]]\n];\nexports.TagResourceRequest$ = [3, n0, _TRR,\n 0,\n [_rAes, _ta],\n [[0, 1], 128 | 0], 2\n];\nexports.TagResourceResponse$ = [3, n0, _TRRa,\n 0,\n [],\n []\n];\nexports.TargetSummary$ = [3, n0, _TS,\n 0,\n [_tI, _n, _st, _cA, _uA, _d],\n [0, [() => TargetName, 0], 0, 5, 5, [() => TargetDescription, 0]], 5\n];\nexports.TimeBasedTrigger$ = [3, n0, _TBT,\n 0,\n [_iST],\n [1]\n];\nexports.TimeBasedTriggerInput$ = [3, n0, _TBTI,\n 0,\n [_iST],\n [1]\n];\nexports.TokenBasedTrigger$ = [3, n0, _TBTo,\n 0,\n [_tCo],\n [1]\n];\nexports.TokenBasedTriggerInput$ = [3, n0, _TBTIo,\n 0,\n [_tCo],\n [1]\n];\nexports.ToolDefinition$ = [3, n0, _TDo,\n 0,\n [_n, _d, _iS, _oS],\n [0, 0, () => exports.SchemaDefinition$, () => exports.SchemaDefinition$], 3\n];\nexports.ToolsDefinition$ = [3, n0, _TDoo,\n 0,\n [_pV, _iC],\n [0, 0]\n];\nexports.UntagResourceRequest$ = [3, n0, _URR,\n 0,\n [_rAes, _tK],\n [[0, 1], [64 | 0, { [_hQ]: _tK }]], 2\n];\nexports.UntagResourceResponse$ = [3, n0, _URRn,\n 0,\n [],\n []\n];\nexports.UpdateAgentRuntimeEndpointRequest$ = [3, n0, _UARER,\n 0,\n [_aRI, _eN, _aRV, _d, _cTl],\n [[0, 1], [() => EndpointName, 1], 0, 0, [0, 4]], 2\n];\nexports.UpdateAgentRuntimeEndpointResponse$ = [3, n0, _UARERp,\n 0,\n [_aREA, _aRA, _st, _cA, _lUA, _lV, _tV],\n [0, 0, 0, 5, 5, 0, 0], 5\n];\nexports.UpdateAgentRuntimeRequest$ = [3, n0, _UARR,\n 0,\n [_aRI, _aRAg, _rA, _nC, _d, _aCu, _rHC, _pC, _lC, _mC, _eV, _fC, _cTl],\n [[0, 1], () => exports.AgentRuntimeArtifact$, 0, () => exports.NetworkConfiguration$, [() => Description, 0], () => exports.AuthorizerConfiguration$, () => exports.RequestHeaderConfiguration$, () => exports.ProtocolConfiguration$, () => exports.LifecycleConfiguration$, () => exports.RuntimeMetadataConfiguration$, [() => EnvironmentVariablesMap, 0], () => FilesystemConfigurations, [0, 4]], 4\n];\nexports.UpdateAgentRuntimeResponse$ = [3, n0, _UARRp,\n 0,\n [_aRA, _aRI, _aRV, _cA, _lUA, _st, _wID],\n [0, 0, 0, 5, 5, 0, () => exports.WorkloadIdentityDetails$], 6\n];\nexports.UpdateApiKeyCredentialProviderRequest$ = [3, n0, _UAKCPR,\n 0,\n [_n, _aK],\n [0, [() => ApiKeyType, 0]], 2\n];\nexports.UpdateApiKeyCredentialProviderResponse$ = [3, n0, _UAKCPRp,\n 0,\n [_aKSA, _n, _cPA, _cT, _lUT],\n [() => exports.Secret$, 0, 0, 4, 4], 5\n];\nexports.UpdatedA2aDescriptor$ = [3, n0, _UAD,\n 0,\n [_oV],\n [() => exports.A2aDescriptor$]\n];\nexports.UpdatedAgentSkillsDescriptor$ = [3, n0, _UASD,\n 0,\n [_oV],\n [() => exports.UpdatedAgentSkillsDescriptorFields$]\n];\nexports.UpdatedAgentSkillsDescriptorFields$ = [3, n0, _UASDF,\n 0,\n [_sM, _sD],\n [() => exports.UpdatedSkillMdDefinition$, () => exports.UpdatedSkillDefinition$]\n];\nexports.UpdatedApprovalConfiguration$ = [3, n0, _UAC,\n 0,\n [_oV],\n [() => exports.ApprovalConfiguration$]\n];\nexports.UpdatedAuthorizerConfiguration$ = [3, n0, _UACp,\n 0,\n [_oV],\n [() => exports.AuthorizerConfiguration$]\n];\nexports.UpdatedCustomDescriptor$ = [3, n0, _UCD,\n 0,\n [_oV],\n [() => exports.CustomDescriptor$]\n];\nexports.UpdatedDescription$ = [3, n0, _UD,\n 0,\n [_oV],\n [[() => Description, 0]]\n];\nexports.UpdatedDescriptors$ = [3, n0, _UDp,\n 0,\n [_oV],\n [() => exports.UpdatedDescriptorsUnion$]\n];\nexports.UpdatedDescriptorsUnion$ = [3, n0, _UDU,\n 0,\n [_mc, _a, _cu, _aSg],\n [() => exports.UpdatedMcpDescriptor$, () => exports.UpdatedA2aDescriptor$, () => exports.UpdatedCustomDescriptor$, () => exports.UpdatedAgentSkillsDescriptor$]\n];\nexports.UpdatedMcpDescriptor$ = [3, n0, _UMD,\n 0,\n [_oV],\n [() => exports.UpdatedMcpDescriptorFields$]\n];\nexports.UpdatedMcpDescriptorFields$ = [3, n0, _UMDF,\n 0,\n [_se, _to],\n [() => exports.UpdatedServerDefinition$, () => exports.UpdatedToolsDefinition$]\n];\nexports.UpdatedServerDefinition$ = [3, n0, _USD,\n 0,\n [_oV],\n [() => exports.ServerDefinition$]\n];\nexports.UpdatedSkillDefinition$ = [3, n0, _USDp,\n 0,\n [_oV],\n [() => exports.SkillDefinition$]\n];\nexports.UpdatedSkillMdDefinition$ = [3, n0, _USMD,\n 0,\n [_oV],\n [() => exports.SkillMdDefinition$]\n];\nexports.UpdatedSynchronizationConfiguration$ = [3, n0, _USC,\n 0,\n [_oV],\n [() => exports.SynchronizationConfiguration$]\n];\nexports.UpdatedSynchronizationType$ = [3, n0, _UST,\n 0,\n [_oV],\n [0]\n];\nexports.UpdatedToolsDefinition$ = [3, n0, _UTD,\n 0,\n [_oV],\n [() => exports.ToolsDefinition$]\n];\nexports.UpdateEvaluatorRequest$ = [3, n0, _UER,\n 0,\n [_eI, _cTl, _d, _eC, _le],\n [[0, 1], [0, 4], [() => EvaluatorDescription, 0], [() => exports.EvaluatorConfig$, 0], 0], 1\n];\nexports.UpdateEvaluatorResponse$ = [3, n0, _UERp,\n 0,\n [_eA, _eI, _uA, _st],\n [0, 0, 4, 0], 4\n];\nexports.UpdateGatewayRequest$ = [3, n0, _UGR,\n 0,\n [_gIa, _n, _rA, _pT, _aT, _d, _pC, _aCu, _kKA, _iCnt, _pEC, _eL],\n [[0, 1], [() => GatewayName, 0], 0, 0, 0, [() => GatewayDescription, 0], () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, 0], 5\n];\nexports.UpdateGatewayResponse$ = [3, n0, _UGRp,\n 0,\n [_gA, _gI, _cA, _uA, _st, _n, _pT, _aT, _gU, _sR, _d, _rA, _pC, _aCu, _kKA, _iCnt, _pEC, _wID, _eL],\n [0, 0, 5, 5, 0, [() => GatewayName, 0], 0, 0, 0, 64 | 0, [() => GatewayDescription, 0], 0, () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, () => exports.WorkloadIdentityDetails$, 0], 8\n];\nexports.UpdateGatewayTargetRequest$ = [3, n0, _UGTR,\n 0,\n [_gIa, _tI, _n, _tC, _d, _cPC, _mC, _pE],\n [[0, 1], [0, 1], [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => TargetDescription, 0], [() => CredentialProviderConfigurations, 0], () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$], 4\n];\nexports.UpdateGatewayTargetResponse$ = [3, n0, _UGTRp,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.UpdateMemoryInput$ = [3, n0, _UMI,\n 0,\n [_mIe, _cTl, _d, _eED, _mERA, _mS, _sDR],\n [[0, 1], [0, 4], [() => Description, 0], 1, 0, [() => exports.ModifyMemoryStrategies$, 0], () => exports.StreamDeliveryResources$], 1\n];\nexports.UpdateMemoryOutput$ = [3, n0, _UMO,\n 0,\n [_mem],\n [[() => exports.Memory$, 0]]\n];\nexports.UpdateOauth2CredentialProviderRequest$ = [3, n0, _UOCPR,\n 0,\n [_n, _cPV, _oPCI],\n [0, 0, [() => exports.Oauth2ProviderConfigInput$, 0]], 3\n];\nexports.UpdateOauth2CredentialProviderResponse$ = [3, n0, _UOCPRp,\n 0,\n [_cSA, _n, _cPV, _cPA, _oPCO, _cT, _lUT, _cUa],\n [() => exports.Secret$, 0, 0, 0, () => exports.Oauth2ProviderConfigOutput$, 4, 4, 0], 7\n];\nexports.UpdateOnlineEvaluationConfigRequest$ = [3, n0, _UOECR,\n 0,\n [_oECI, _cTl, _d, _rul, _dSC, _ev, _eERA, _eS],\n [[0, 1], [0, 4], [() => EvaluationConfigDescription, 0], () => exports.Rule$, () => exports.DataSourceConfig$, () => EvaluatorList, 0, 0], 1\n];\nexports.UpdateOnlineEvaluationConfigResponse$ = [3, n0, _UOECRp,\n 0,\n [_oECA, _oECI, _uA, _st, _eS, _fR],\n [0, 0, 4, 0, 0, 0], 5\n];\nexports.UpdatePolicyEngineRequest$ = [3, n0, _UPER,\n 0,\n [_pEI, _d],\n [[0, 1], [() => exports.UpdatedDescription$, 0]], 1\n];\nexports.UpdatePolicyEngineResponse$ = [3, n0, _UPERp,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.UpdatePolicyRequest$ = [3, n0, _UPR,\n 0,\n [_pEI, _pIo, _d, _de, _vM],\n [[0, 1], [0, 1], [() => exports.UpdatedDescription$, 0], () => exports.PolicyDefinition$, 0], 2\n];\nexports.UpdatePolicyResponse$ = [3, n0, _UPRp,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.UpdateRegistryRecordRequest$ = [3, n0, _URRR,\n 0,\n [_rI, _rIe, _n, _d, _dT, _des, _rV, _sT, _sC, _tSr],\n [[0, 1], [0, 1], 0, [() => exports.UpdatedDescription$, 0], 0, () => exports.UpdatedDescriptors$, 0, () => exports.UpdatedSynchronizationType$, () => exports.UpdatedSynchronizationConfiguration$, 2], 2\n];\nexports.UpdateRegistryRecordResponse$ = [3, n0, _URRRp,\n 0,\n [_rAeg, _rAe, _rIe, _n, _dT, _des, _st, _cA, _uA, _d, _rV, _sRt, _sT, _sC],\n [0, 0, 0, 0, 0, () => exports.Descriptors$, 0, 5, 5, [() => Description, 0], 0, 0, 0, () => exports.SynchronizationConfiguration$], 9\n];\nexports.UpdateRegistryRecordStatusRequest$ = [3, n0, _URRSR,\n 0,\n [_rI, _rIe, _st, _sRt],\n [[0, 1], [0, 1], 0, 0], 4\n];\nexports.UpdateRegistryRecordStatusResponse$ = [3, n0, _URRSRp,\n 0,\n [_rAeg, _rAe, _rIe, _st, _sRt, _uA],\n [0, 0, 0, 0, 0, 5], 6\n];\nexports.UpdateRegistryRequest$ = [3, n0, _URRp,\n 0,\n [_rI, _n, _d, _aCu, _aCp],\n [[0, 1], 0, [() => exports.UpdatedDescription$, 0], () => exports.UpdatedAuthorizerConfiguration$, () => exports.UpdatedApprovalConfiguration$], 1\n];\nexports.UpdateRegistryResponse$ = [3, n0, _URRpd,\n 0,\n [_n, _rI, _rAeg, _st, _cA, _uA, _d, _aT, _aCu, _aCp, _sRt],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 0, () => exports.AuthorizerConfiguration$, () => exports.ApprovalConfiguration$, 0], 6\n];\nexports.UpdateWorkloadIdentityRequest$ = [3, n0, _UWIR,\n 0,\n [_n, _aRORU],\n [0, 64 | 0], 1\n];\nexports.UpdateWorkloadIdentityResponse$ = [3, n0, _UWIRp,\n 0,\n [_n, _wIA, _cT, _lUT, _aRORU],\n [0, 0, 4, 4, 64 | 0], 4\n];\nexports.UserPreferenceConsolidationOverride$ = [3, n0, _UPCO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.UserPreferenceExtractionOverride$ = [3, n0, _UPEO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.UserPreferenceMemoryStrategyInput$ = [3, n0, _UPMSI,\n 0,\n [_n, _d, _na, _nT],\n [0, [() => Description, 0], 64 | 0, 64 | 0], 1\n];\nexports.UserPreferenceOverrideConfigurationInput$ = [3, n0, _UPOCI,\n 0,\n [_ex, _cons],\n [[() => exports.UserPreferenceOverrideExtractionConfigurationInput$, 0], [() => exports.UserPreferenceOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.UserPreferenceOverrideConsolidationConfigurationInput$ = [3, n0, _UPOCCI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.UserPreferenceOverrideExtractionConfigurationInput$ = [3, n0, _UPOECI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.ValidationExceptionField$ = [3, n0, _VEF,\n 0,\n [_n, _m],\n [0, 0], 2\n];\nexports.VpcConfig$ = [3, n0, _VC,\n 0,\n [_sG, _su],\n [64 | 0, 64 | 0], 2\n];\nexports.WorkloadIdentityDetails$ = [3, n0, _WID,\n 0,\n [_wIA],\n [0], 1\n];\nexports.WorkloadIdentityType$ = [3, n0, _WIT,\n 0,\n [_n, _wIA],\n [0, 0], 2\n];\nvar AgentRuntimeEndpoints = [1, n0, _AREg,\n 0, [() => exports.AgentRuntimeEndpoint$,\n 0]\n];\nvar AgentRuntimes = [1, n0, _ARg,\n 0, [() => exports.AgentRuntime$,\n 0]\n];\nvar AllowedAudienceList = 64 | 0;\nvar AllowedClientsList = 64 | 0;\nvar AllowedQueryParameters = 64 | 0;\nvar AllowedRequestHeaders = 64 | 0;\nvar AllowedResponseHeaders = 64 | 0;\nvar AllowedScopesType = 64 | 0;\nvar ApiGatewayToolFilters = [1, n0, _AGTFp,\n 0, () => exports.ApiGatewayToolFilter$\n];\nvar ApiGatewayToolOverrides = [1, n0, _AGTOp,\n 0, () => exports.ApiGatewayToolOverride$\n];\nvar ApiKeyCredentialProviders = [1, n0, _AKCP,\n 0, () => exports.ApiKeyCredentialProviderItem$\n];\nvar BrowserEnterprisePolicies = [1, n0, _BEPr,\n 0, () => exports.BrowserEnterprisePolicy$\n];\nvar BrowserProfileSummaries = [1, n0, _BPSr,\n 0, [() => exports.BrowserProfileSummary$,\n 0]\n];\nvar BrowserSummaries = [1, n0, _BSr,\n 0, [() => exports.BrowserSummary$,\n 0]\n];\nvar CategoricalScaleDefinitions = [1, n0, _CSDa,\n 0, () => exports.CategoricalScaleDefinition$\n];\nvar Certificates = [1, n0, _Ce,\n 0, () => exports.Certificate$\n];\nvar CodeInterpreterSummaries = [1, n0, _CISo,\n 0, [() => exports.CodeInterpreterSummary$,\n 0]\n];\nvar ContentConfigurationList = [1, n0, _CCL,\n 0, () => exports.ContentConfiguration$\n];\nvar CredentialProviderConfigurations = [1, n0, _CPCr,\n 0, [() => exports.CredentialProviderConfiguration$,\n 0]\n];\nvar CustomClaimValidationsType = [1, n0, _CCVTu,\n 0, () => exports.CustomClaimValidationType$\n];\nvar DeleteMemoryStrategiesList = [1, n0, _DMSL,\n 0, () => exports.DeleteMemoryStrategyInput$\n];\nvar EntryPoints = 64 | 0;\nvar EvaluatorList = [1, n0, _EL,\n 0, () => exports.EvaluatorReference$\n];\nvar EvaluatorSummaryList = [1, n0, _ESL,\n 0, [() => exports.EvaluatorSummary$,\n 0]\n];\nvar FilesystemConfigurations = [1, n0, _FC,\n 0, () => exports.FilesystemConfiguration$\n];\nvar FilterList = [1, n0, _FL,\n 0, () => exports.Filter$\n];\nvar Findings = [1, n0, _Fin,\n 0, () => exports.Finding$\n];\nvar GatewayInterceptionPoints = 64 | 0;\nvar GatewayInterceptorConfigurations = [1, n0, _GICa,\n 0, () => exports.GatewayInterceptorConfiguration$\n];\nvar GatewaySummaries = [1, n0, _GSa,\n 0, [() => exports.GatewaySummary$,\n 0]\n];\nvar GatewayTargetList = [1, n0, _GTL,\n 0, [() => exports.GatewayTarget$,\n 0]\n];\nvar LogGroupNamesList = 64 | 0;\nvar MatchValueStringList = 64 | 0;\nvar McpSupportedVersions = 64 | 0;\nvar MemoryStrategyInputList = [1, n0, _MSIL,\n 0, [() => exports.MemoryStrategyInput$,\n 0]\n];\nvar MemoryStrategyList = [1, n0, _MSL,\n 0, [() => exports.MemoryStrategy$,\n 0]\n];\nvar MemorySummaryList = [1, n0, _MSLe,\n 0, () => exports.MemorySummary$\n];\nvar ModifyMemoryStrategiesList = [1, n0, _MMSL,\n 0, [() => exports.ModifyMemoryStrategyInput$,\n 0]\n];\nvar NamespacesList = 64 | 0;\nvar NonEmptyStringList = 64 | 0;\nvar NumericalScaleDefinitions = [1, n0, _NSDu,\n 0, () => exports.NumericalScaleDefinition$\n];\nvar Oauth2CredentialProviders = [1, n0, _OCP,\n 0, () => exports.Oauth2CredentialProviderItem$\n];\nvar OAuthScopes = 64 | 0;\nvar OnlineEvaluationConfigSummaryList = [1, n0, _OECSL,\n 0, [() => exports.OnlineEvaluationConfigSummary$,\n 0]\n];\nvar Policies = [1, n0, _Pol,\n 0, [() => exports.Policy$,\n 0]\n];\nvar PolicyEngines = [1, n0, _PEo,\n 0, [() => exports.PolicyEngine$,\n 0]\n];\nvar PolicyGenerationAssets = [1, n0, _PGAo,\n 0, () => exports.PolicyGenerationAsset$\n];\nvar PolicyGenerations = [1, n0, _PGo,\n 0, () => exports.PolicyGeneration$\n];\nvar PolicyStatusReasons = 64 | 0;\nvar PrivateEndpointManagedResources = [1, n0, _PEMR,\n 0, () => exports.ManagedResourceDetails$\n];\nvar RegistryRecordCredentialProviderConfigurationList = [1, n0, _RRCPCL,\n 0, () => exports.RegistryRecordCredentialProviderConfiguration$\n];\nvar RegistryRecordSummaryList = [1, n0, _RRSL,\n 0, [() => exports.RegistryRecordSummary$,\n 0]\n];\nvar RegistrySummaryList = [1, n0, _RSL,\n 0, [() => exports.RegistrySummary$,\n 0]\n];\nvar RequestHeaderAllowlist = 64 | 0;\nvar RequiredProperties = 64 | 0;\nvar ResourceOauth2ReturnUrlListType = 64 | 0;\nvar ResponseListType = 64 | 0;\nvar RestApiMethods = 64 | 0;\nvar ScopeList = 64 | 0;\nvar SecurityGroupIds = 64 | 0;\nvar SecurityGroups = 64 | 0;\nvar ServiceNamesList = 64 | 0;\nvar StatusReasons = 64 | 0;\nvar StreamDeliveryResourcesList = [1, n0, _SDRL,\n 0, () => exports.StreamDeliveryResource$\n];\nvar SubnetIds = 64 | 0;\nvar Subnets = 64 | 0;\nvar TagKeyList = 64 | 0;\nvar TargetIdList = 64 | 0;\nvar TargetSummaries = [1, n0, _TSa,\n 0, [() => exports.TargetSummary$,\n 0]\n];\nvar TokenEndpointAuthMethodsType = 64 | 0;\nvar ToolDefinitions = [1, n0, _TDool,\n 0, () => exports.ToolDefinition$\n];\nvar TriggerConditionInputList = [1, n0, _TCIL,\n 0, () => exports.TriggerConditionInput$\n];\nvar TriggerConditionsList = [1, n0, _TCL,\n 0, () => exports.TriggerCondition$\n];\nvar ValidationExceptionFieldList = [1, n0, _VEFL,\n 0, () => exports.ValidationExceptionField$\n];\nvar WorkloadIdentityList = [1, n0, _WIL,\n 0, () => exports.WorkloadIdentityType$\n];\nvar CustomParameterMap = 128 | 0;\nvar EnvironmentVariablesMap = [2, n0, _EVM,\n 8, 0, 0\n];\nvar OAuthCustomParameters = [2, n0, _OACPu,\n 0, [0,\n 0],\n [() => OAuthCustomParametersValue,\n 0]\n];\nvar SchemaProperties = [2, n0, _SP,\n 0, 0, () => exports.SchemaDefinition$\n];\nvar TagsMap = 128 | 0;\nexports.AgentRuntimeArtifact$ = [4, n0, _ARA,\n 0,\n [_cCon, _cCod],\n [() => exports.ContainerConfiguration$, () => exports.CodeConfiguration$]\n];\nexports.ApiSchemaConfiguration$ = [4, n0, _ASC,\n 0,\n [_s_, _iPn],\n [() => exports.S3Configuration$, [() => InlinePayload, 0]]\n];\nexports.AuthorizationData$ = [4, n0, _ADu,\n 0,\n [_oa],\n [() => exports.OAuth2AuthorizationData$]\n];\nexports.AuthorizerConfiguration$ = [4, n0, _ACu,\n 0,\n [_cJWTA],\n [() => exports.CustomJWTAuthorizerConfiguration$]\n];\nexports.CertificateLocation$ = [4, n0, _CL,\n 0,\n [_sMe],\n [() => exports.SecretsManagerLocation$]\n];\nexports.ClaimMatchValueType$ = [4, n0, _CMVT,\n 0,\n [_mVS, _mVSL],\n [0, 64 | 0]\n];\nexports.Code$ = [4, n0, _Co,\n 0,\n [_s_],\n [() => exports.S3Location$]\n];\nexports.CodeBasedEvaluatorConfig$ = [4, n0, _CBEC,\n 0,\n [_lCa],\n [() => exports.LambdaEvaluatorConfig$]\n];\nexports.ConsolidationConfiguration$ = [4, n0, _CCons,\n 0,\n [_cCC],\n [[() => exports.CustomConsolidationConfiguration$, 0]]\n];\nexports.Content$ = [4, n0, _Con,\n 0,\n [_rTa],\n [0]\n];\nexports.CredentialProvider$ = [4, n0, _CPr,\n 0,\n [_oCP, _aKCP, _iCP],\n [[() => exports.OAuthCredentialProvider$, 0], () => exports.GatewayApiKeyCredentialProvider$, () => exports.IamCredentialProvider$]\n];\nexports.CustomConfigurationInput$ = [4, n0, _CCI,\n 0,\n [_sO, _sOu, _uPO, _eO, _sMC],\n [[() => exports.SemanticOverrideConfigurationInput$, 0], [() => exports.SummaryOverrideConfigurationInput$, 0], [() => exports.UserPreferenceOverrideConfigurationInput$, 0], [() => exports.EpisodicOverrideConfigurationInput$, 0], () => exports.SelfManagedConfigurationInput$]\n];\nexports.CustomConsolidationConfiguration$ = [4, n0, _CCC,\n 0,\n [_sCO, _sCOu, _uPCO, _eCO],\n [[() => exports.SemanticConsolidationOverride$, 0], [() => exports.SummaryConsolidationOverride$, 0], [() => exports.UserPreferenceConsolidationOverride$, 0], [() => exports.EpisodicConsolidationOverride$, 0]]\n];\nexports.CustomConsolidationConfigurationInput$ = [4, n0, _CCCI,\n 0,\n [_sCO, _sCOu, _uPCO, _eCO],\n [[() => exports.SemanticOverrideConsolidationConfigurationInput$, 0], [() => exports.SummaryOverrideConsolidationConfigurationInput$, 0], [() => exports.UserPreferenceOverrideConsolidationConfigurationInput$, 0], [() => exports.EpisodicOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.CustomExtractionConfiguration$ = [4, n0, _CEC,\n 0,\n [_sEO, _uPEO, _eEO],\n [[() => exports.SemanticExtractionOverride$, 0], [() => exports.UserPreferenceExtractionOverride$, 0], [() => exports.EpisodicExtractionOverride$, 0]]\n];\nexports.CustomExtractionConfigurationInput$ = [4, n0, _CECI,\n 0,\n [_sEO, _uPEO, _eEO],\n [[() => exports.SemanticOverrideExtractionConfigurationInput$, 0], [() => exports.UserPreferenceOverrideExtractionConfigurationInput$, 0], [() => exports.EpisodicOverrideExtractionConfigurationInput$, 0]]\n];\nexports.CustomReflectionConfiguration$ = [4, n0, _CRC,\n 0,\n [_eRO],\n [[() => exports.EpisodicReflectionOverride$, 0]]\n];\nexports.CustomReflectionConfigurationInput$ = [4, n0, _CRCI,\n 0,\n [_eRO],\n [[() => exports.EpisodicOverrideReflectionConfigurationInput$, 0]]\n];\nexports.DataSourceConfig$ = [4, n0, _DSC,\n 0,\n [_cWL],\n [() => exports.CloudWatchLogsInputConfig$]\n];\nexports.EvaluatorConfig$ = [4, n0, _EC,\n 0,\n [_lAAJ, _cB],\n [[() => exports.LlmAsAJudgeEvaluatorConfig$, 0], () => exports.CodeBasedEvaluatorConfig$]\n];\nexports.EvaluatorModelConfig$ = [4, n0, _EMC,\n 0,\n [_bEMC],\n [() => exports.BedrockEvaluatorModelConfig$]\n];\nexports.EvaluatorReference$ = [4, n0, _ER,\n 0,\n [_eI],\n [0]\n];\nexports.ExtractionConfiguration$ = [4, n0, _ECx,\n 0,\n [_cEC],\n [[() => exports.CustomExtractionConfiguration$, 0]]\n];\nexports.FilesystemConfiguration$ = [4, n0, _FCi,\n 0,\n [_sSe],\n [() => exports.SessionStorageConfiguration$]\n];\nexports.FilterValue$ = [4, n0, _FV,\n 0,\n [_sVt, _dV, _bV],\n [0, 1, 2]\n];\nexports.GatewayProtocolConfiguration$ = [4, n0, _GPC,\n 0,\n [_mc],\n [() => exports.MCPGatewayConfiguration$]\n];\nexports.InterceptorConfiguration$ = [4, n0, _ICnt,\n 0,\n [_lam],\n [() => exports.LambdaInterceptorConfiguration$]\n];\nexports.McpTargetConfiguration$ = [4, n0, _MTC,\n 0,\n [_oAS, _sMm, _lam, _mSc, _aG],\n [[() => exports.ApiSchemaConfiguration$, 0], [() => exports.ApiSchemaConfiguration$, 0], () => exports.McpLambdaTargetConfiguration$, [() => exports.McpServerTargetConfiguration$, 0], () => exports.ApiGatewayTargetConfiguration$]\n];\nexports.McpToolSchemaConfiguration$ = [4, n0, _MTSC,\n 0,\n [_s_, _iPn],\n [() => exports.S3Configuration$, [() => InlinePayload, 0]]\n];\nexports.MemoryStrategyInput$ = [4, n0, _MSI,\n 0,\n [_sMS, _sMSu, _uPMS, _cMS, _eMS],\n [[() => exports.SemanticMemoryStrategyInput$, 0], [() => exports.SummaryMemoryStrategyInput$, 0], [() => exports.UserPreferenceMemoryStrategyInput$, 0], [() => exports.CustomMemoryStrategyInput$, 0], [() => exports.EpisodicMemoryStrategyInput$, 0]]\n];\nexports.ModifyConsolidationConfiguration$ = [4, n0, _MCC,\n 0,\n [_cCC],\n [[() => exports.CustomConsolidationConfigurationInput$, 0]]\n];\nexports.ModifyExtractionConfiguration$ = [4, n0, _MEC,\n 0,\n [_cEC],\n [[() => exports.CustomExtractionConfigurationInput$, 0]]\n];\nexports.ModifyReflectionConfiguration$ = [4, n0, _MRC,\n 0,\n [_eRC, _cRC],\n [() => exports.EpisodicReflectionConfigurationInput$, [() => exports.CustomReflectionConfigurationInput$, 0]]\n];\nexports.Oauth2Discovery$ = [4, n0, _OD,\n 0,\n [_dU, _aSM],\n [0, () => exports.Oauth2AuthorizationServerMetadata$]\n];\nexports.Oauth2ProviderConfigInput$ = [4, n0, _OPCI,\n 0,\n [_cOPC, _gOPC, _gOPCi, _sOPC, _sOPCa, _mOPC, _aOPC, _lOPC, _iOPC],\n [[() => exports.CustomOauth2ProviderConfigInput$, 0], [() => exports.GoogleOauth2ProviderConfigInput$, 0], [() => exports.GithubOauth2ProviderConfigInput$, 0], [() => exports.SlackOauth2ProviderConfigInput$, 0], [() => exports.SalesforceOauth2ProviderConfigInput$, 0], [() => exports.MicrosoftOauth2ProviderConfigInput$, 0], [() => exports.AtlassianOauth2ProviderConfigInput$, 0], [() => exports.LinkedinOauth2ProviderConfigInput$, 0], [() => exports.IncludedOauth2ProviderConfigInput$, 0]]\n];\nexports.Oauth2ProviderConfigOutput$ = [4, n0, _OPCO,\n 0,\n [_cOPC, _gOPC, _gOPCi, _sOPC, _sOPCa, _mOPC, _aOPC, _lOPC, _iOPC],\n [() => exports.CustomOauth2ProviderConfigOutput$, () => exports.GoogleOauth2ProviderConfigOutput$, () => exports.GithubOauth2ProviderConfigOutput$, () => exports.SlackOauth2ProviderConfigOutput$, () => exports.SalesforceOauth2ProviderConfigOutput$, () => exports.MicrosoftOauth2ProviderConfigOutput$, () => exports.AtlassianOauth2ProviderConfigOutput$, () => exports.LinkedinOauth2ProviderConfigOutput$, () => exports.IncludedOauth2ProviderConfigOutput$]\n];\nexports.PolicyDefinition$ = [4, n0, _PD,\n 0,\n [_ced, _pGo],\n [() => exports.CedarPolicy$, () => exports.PolicyGenerationDetails$]\n];\nexports.PrivateEndpoint$ = [4, n0, _PEr,\n 0,\n [_sMLR, _mLR],\n [() => exports.SelfManagedLatticeResource$, () => exports.ManagedLatticeResource$]\n];\nexports.RatingScale$ = [4, n0, _RSa,\n 8,\n [_nu, _ca],\n [() => NumericalScaleDefinitions, () => CategoricalScaleDefinitions]\n];\nexports.ReflectionConfiguration$ = [4, n0, _RCe,\n 0,\n [_cRC, _eRC],\n [[() => exports.CustomReflectionConfiguration$, 0], () => exports.EpisodicReflectionConfiguration$]\n];\nexports.RegistryRecordCredentialProviderUnion$ = [4, n0, _RRCPU,\n 0,\n [_oCP, _iCP],\n [() => exports.RegistryRecordOAuthCredentialProvider$, () => exports.RegistryRecordIamCredentialProvider$]\n];\nexports.RequestHeaderConfiguration$ = [4, n0, _RHC,\n 0,\n [_rHA],\n [64 | 0]\n];\nexports.Resource$ = [4, n0, _Re,\n 0,\n [_ar],\n [0]\n];\nexports.ResourceLocation$ = [4, n0, _RL,\n 0,\n [_s_],\n [() => exports.S3Location$]\n];\nexports.SelfManagedLatticeResource$ = [4, n0, _SMLR,\n 0,\n [_rCI],\n [0]\n];\nexports.StreamDeliveryResource$ = [4, n0, _SDRt,\n 0,\n [_ki],\n [() => exports.KinesisResource$]\n];\nexports.TargetConfiguration$ = [4, n0, _TC,\n 0,\n [_mc],\n [[() => exports.McpTargetConfiguration$, 0]]\n];\nexports.ToolSchema$ = [4, n0, _TSo,\n 0,\n [_s_, _iPn],\n [() => exports.S3Configuration$, () => ToolDefinitions]\n];\nexports.TriggerCondition$ = [4, n0, _TCr,\n 0,\n [_mBT, _tBT, _tBTi],\n [() => exports.MessageBasedTrigger$, () => exports.TokenBasedTrigger$, () => exports.TimeBasedTrigger$]\n];\nexports.TriggerConditionInput$ = [4, n0, _TCI,\n 0,\n [_mBT, _tBT, _tBTi],\n [() => exports.MessageBasedTriggerInput$, () => exports.TokenBasedTriggerInput$, () => exports.TimeBasedTriggerInput$]\n];\nexports.CreateAgentRuntime$ = [9, n0, _CAR,\n { [_h]: [\"PUT\", \"/runtimes/\", 202] }, () => exports.CreateAgentRuntimeRequest$, () => exports.CreateAgentRuntimeResponse$\n];\nexports.CreateAgentRuntimeEndpoint$ = [9, n0, _CARE,\n { [_h]: [\"PUT\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/\", 202] }, () => exports.CreateAgentRuntimeEndpointRequest$, () => exports.CreateAgentRuntimeEndpointResponse$\n];\nexports.CreateApiKeyCredentialProvider$ = [9, n0, _CAKCP,\n { [_h]: [\"POST\", \"/identities/CreateApiKeyCredentialProvider\", 201] }, () => exports.CreateApiKeyCredentialProviderRequest$, () => exports.CreateApiKeyCredentialProviderResponse$\n];\nexports.CreateBrowser$ = [9, n0, _CB,\n { [_h]: [\"PUT\", \"/browsers\", 202] }, () => exports.CreateBrowserRequest$, () => exports.CreateBrowserResponse$\n];\nexports.CreateBrowserProfile$ = [9, n0, _CBP,\n { [_h]: [\"PUT\", \"/browser-profiles\", 200] }, () => exports.CreateBrowserProfileRequest$, () => exports.CreateBrowserProfileResponse$\n];\nexports.CreateCodeInterpreter$ = [9, n0, _CCIr,\n { [_h]: [\"PUT\", \"/code-interpreters\", 202] }, () => exports.CreateCodeInterpreterRequest$, () => exports.CreateCodeInterpreterResponse$\n];\nexports.CreateEvaluator$ = [9, n0, _CEr,\n { [_h]: [\"POST\", \"/evaluators/create\", 202] }, () => exports.CreateEvaluatorRequest$, () => exports.CreateEvaluatorResponse$\n];\nexports.CreateGateway$ = [9, n0, _CG,\n { [_h]: [\"POST\", \"/gateways/\", 202] }, () => exports.CreateGatewayRequest$, () => exports.CreateGatewayResponse$\n];\nexports.CreateGatewayTarget$ = [9, n0, _CGT,\n { [_h]: [\"POST\", \"/gateways/{gatewayIdentifier}/targets/\", 202] }, () => exports.CreateGatewayTargetRequest$, () => exports.CreateGatewayTargetResponse$\n];\nexports.CreateMemory$ = [9, n0, _CM,\n { [_h]: [\"POST\", \"/memories/create\", 202] }, () => exports.CreateMemoryInput$, () => exports.CreateMemoryOutput$\n];\nexports.CreateOauth2CredentialProvider$ = [9, n0, _COCP,\n { [_h]: [\"POST\", \"/identities/CreateOauth2CredentialProvider\", 201] }, () => exports.CreateOauth2CredentialProviderRequest$, () => exports.CreateOauth2CredentialProviderResponse$\n];\nexports.CreateOnlineEvaluationConfig$ = [9, n0, _COEC,\n { [_h]: [\"POST\", \"/online-evaluation-configs/create\", 202] }, () => exports.CreateOnlineEvaluationConfigRequest$, () => exports.CreateOnlineEvaluationConfigResponse$\n];\nexports.CreatePolicy$ = [9, n0, _CPre,\n { [_h]: [\"POST\", \"/policy-engines/{policyEngineId}/policies\", 202] }, () => exports.CreatePolicyRequest$, () => exports.CreatePolicyResponse$\n];\nexports.CreatePolicyEngine$ = [9, n0, _CPE,\n { [_h]: [\"POST\", \"/policy-engines\", 202] }, () => exports.CreatePolicyEngineRequest$, () => exports.CreatePolicyEngineResponse$\n];\nexports.CreateRegistry$ = [9, n0, _CR,\n { [_h]: [\"POST\", \"/registries\", 202] }, () => exports.CreateRegistryRequest$, () => exports.CreateRegistryResponse$\n];\nexports.CreateRegistryRecord$ = [9, n0, _CRRre,\n { [_h]: [\"POST\", \"/registries/{registryId}/records\", 202] }, () => exports.CreateRegistryRecordRequest$, () => exports.CreateRegistryRecordResponse$\n];\nexports.CreateWorkloadIdentity$ = [9, n0, _CWI,\n { [_h]: [\"POST\", \"/identities/CreateWorkloadIdentity\", 201] }, () => exports.CreateWorkloadIdentityRequest$, () => exports.CreateWorkloadIdentityResponse$\n];\nexports.DeleteAgentRuntime$ = [9, n0, _DAR,\n { [_h]: [\"DELETE\", \"/runtimes/{agentRuntimeId}/\", 202] }, () => exports.DeleteAgentRuntimeRequest$, () => exports.DeleteAgentRuntimeResponse$\n];\nexports.DeleteAgentRuntimeEndpoint$ = [9, n0, _DARE,\n { [_h]: [\"DELETE\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/\", 202] }, () => exports.DeleteAgentRuntimeEndpointRequest$, () => exports.DeleteAgentRuntimeEndpointResponse$\n];\nexports.DeleteApiKeyCredentialProvider$ = [9, n0, _DAKCP,\n { [_h]: [\"POST\", \"/identities/DeleteApiKeyCredentialProvider\", 204] }, () => exports.DeleteApiKeyCredentialProviderRequest$, () => exports.DeleteApiKeyCredentialProviderResponse$\n];\nexports.DeleteBrowser$ = [9, n0, _DB,\n { [_h]: [\"DELETE\", \"/browsers/{browserId}\", 202] }, () => exports.DeleteBrowserRequest$, () => exports.DeleteBrowserResponse$\n];\nexports.DeleteBrowserProfile$ = [9, n0, _DBP,\n { [_h]: [\"DELETE\", \"/browser-profiles/{profileId}\", 200] }, () => exports.DeleteBrowserProfileRequest$, () => exports.DeleteBrowserProfileResponse$\n];\nexports.DeleteCodeInterpreter$ = [9, n0, _DCI,\n { [_h]: [\"DELETE\", \"/code-interpreters/{codeInterpreterId}\", 202] }, () => exports.DeleteCodeInterpreterRequest$, () => exports.DeleteCodeInterpreterResponse$\n];\nexports.DeleteEvaluator$ = [9, n0, _DE,\n { [_h]: [\"DELETE\", \"/evaluators/{evaluatorId}\", 202] }, () => exports.DeleteEvaluatorRequest$, () => exports.DeleteEvaluatorResponse$\n];\nexports.DeleteGateway$ = [9, n0, _DG,\n { [_h]: [\"DELETE\", \"/gateways/{gatewayIdentifier}/\", 202] }, () => exports.DeleteGatewayRequest$, () => exports.DeleteGatewayResponse$\n];\nexports.DeleteGatewayTarget$ = [9, n0, _DGT,\n { [_h]: [\"DELETE\", \"/gateways/{gatewayIdentifier}/targets/{targetId}/\", 202] }, () => exports.DeleteGatewayTargetRequest$, () => exports.DeleteGatewayTargetResponse$\n];\nexports.DeleteMemory$ = [9, n0, _DM,\n { [_h]: [\"DELETE\", \"/memories/{memoryId}/delete\", 202] }, () => exports.DeleteMemoryInput$, () => exports.DeleteMemoryOutput$\n];\nexports.DeleteOauth2CredentialProvider$ = [9, n0, _DOCP,\n { [_h]: [\"POST\", \"/identities/DeleteOauth2CredentialProvider\", 204] }, () => exports.DeleteOauth2CredentialProviderRequest$, () => exports.DeleteOauth2CredentialProviderResponse$\n];\nexports.DeleteOnlineEvaluationConfig$ = [9, n0, _DOEC,\n { [_h]: [\"DELETE\", \"/online-evaluation-configs/{onlineEvaluationConfigId}\", 202] }, () => exports.DeleteOnlineEvaluationConfigRequest$, () => exports.DeleteOnlineEvaluationConfigResponse$\n];\nexports.DeletePolicy$ = [9, n0, _DP,\n { [_h]: [\"DELETE\", \"/policy-engines/{policyEngineId}/policies/{policyId}\", 202] }, () => exports.DeletePolicyRequest$, () => exports.DeletePolicyResponse$\n];\nexports.DeletePolicyEngine$ = [9, n0, _DPE,\n { [_h]: [\"DELETE\", \"/policy-engines/{policyEngineId}\", 202] }, () => exports.DeletePolicyEngineRequest$, () => exports.DeletePolicyEngineResponse$\n];\nexports.DeleteRegistry$ = [9, n0, _DR,\n { [_h]: [\"DELETE\", \"/registries/{registryId}\", 202] }, () => exports.DeleteRegistryRequest$, () => exports.DeleteRegistryResponse$\n];\nexports.DeleteRegistryRecord$ = [9, n0, _DRRel,\n { [_h]: [\"DELETE\", \"/registries/{registryId}/records/{recordId}\", 200] }, () => exports.DeleteRegistryRecordRequest$, () => exports.DeleteRegistryRecordResponse$\n];\nexports.DeleteResourcePolicy$ = [9, n0, _DRP,\n { [_h]: [\"DELETE\", \"/resourcepolicy/{resourceArn}\", 204] }, () => exports.DeleteResourcePolicyRequest$, () => exports.DeleteResourcePolicyResponse$\n];\nexports.DeleteWorkloadIdentity$ = [9, n0, _DWI,\n { [_h]: [\"POST\", \"/identities/DeleteWorkloadIdentity\", 204] }, () => exports.DeleteWorkloadIdentityRequest$, () => exports.DeleteWorkloadIdentityResponse$\n];\nexports.GetAgentRuntime$ = [9, n0, _GAR,\n { [_h]: [\"GET\", \"/runtimes/{agentRuntimeId}/\", 200] }, () => exports.GetAgentRuntimeRequest$, () => exports.GetAgentRuntimeResponse$\n];\nexports.GetAgentRuntimeEndpoint$ = [9, n0, _GARE,\n { [_h]: [\"GET\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/\", 200] }, () => exports.GetAgentRuntimeEndpointRequest$, () => exports.GetAgentRuntimeEndpointResponse$\n];\nexports.GetApiKeyCredentialProvider$ = [9, n0, _GAKCPe,\n { [_h]: [\"POST\", \"/identities/GetApiKeyCredentialProvider\", 200] }, () => exports.GetApiKeyCredentialProviderRequest$, () => exports.GetApiKeyCredentialProviderResponse$\n];\nexports.GetBrowser$ = [9, n0, _GB,\n { [_h]: [\"GET\", \"/browsers/{browserId}\", 200] }, () => exports.GetBrowserRequest$, () => exports.GetBrowserResponse$\n];\nexports.GetBrowserProfile$ = [9, n0, _GBP,\n { [_h]: [\"GET\", \"/browser-profiles/{profileId}\", 200] }, () => exports.GetBrowserProfileRequest$, () => exports.GetBrowserProfileResponse$\n];\nexports.GetCodeInterpreter$ = [9, n0, _GCI,\n { [_h]: [\"GET\", \"/code-interpreters/{codeInterpreterId}\", 200] }, () => exports.GetCodeInterpreterRequest$, () => exports.GetCodeInterpreterResponse$\n];\nexports.GetEvaluator$ = [9, n0, _GE,\n { [_h]: [\"GET\", \"/evaluators/{evaluatorId}\", 200] }, () => exports.GetEvaluatorRequest$, () => exports.GetEvaluatorResponse$\n];\nexports.GetGateway$ = [9, n0, _GG,\n { [_h]: [\"GET\", \"/gateways/{gatewayIdentifier}/\", 200] }, () => exports.GetGatewayRequest$, () => exports.GetGatewayResponse$\n];\nexports.GetGatewayTarget$ = [9, n0, _GGT,\n { [_h]: [\"GET\", \"/gateways/{gatewayIdentifier}/targets/{targetId}/\", 200] }, () => exports.GetGatewayTargetRequest$, () => exports.GetGatewayTargetResponse$\n];\nexports.GetMemory$ = [9, n0, _GM,\n { [_h]: [\"GET\", \"/memories/{memoryId}/details\", 200] }, () => exports.GetMemoryInput$, () => exports.GetMemoryOutput$\n];\nexports.GetOauth2CredentialProvider$ = [9, n0, _GOCP,\n { [_h]: [\"POST\", \"/identities/GetOauth2CredentialProvider\", 200] }, () => exports.GetOauth2CredentialProviderRequest$, () => exports.GetOauth2CredentialProviderResponse$\n];\nexports.GetOnlineEvaluationConfig$ = [9, n0, _GOEC,\n { [_h]: [\"GET\", \"/online-evaluation-configs/{onlineEvaluationConfigId}\", 200] }, () => exports.GetOnlineEvaluationConfigRequest$, () => exports.GetOnlineEvaluationConfigResponse$\n];\nexports.GetPolicy$ = [9, n0, _GP,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policies/{policyId}\", 200] }, () => exports.GetPolicyRequest$, () => exports.GetPolicyResponse$\n];\nexports.GetPolicyEngine$ = [9, n0, _GPE,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}\", 200] }, () => exports.GetPolicyEngineRequest$, () => exports.GetPolicyEngineResponse$\n];\nexports.GetPolicyGeneration$ = [9, n0, _GPG,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}\", 200] }, () => exports.GetPolicyGenerationRequest$, () => exports.GetPolicyGenerationResponse$\n];\nexports.GetRegistry$ = [9, n0, _GR,\n { [_h]: [\"GET\", \"/registries/{registryId}\", 200] }, () => exports.GetRegistryRequest$, () => exports.GetRegistryResponse$\n];\nexports.GetRegistryRecord$ = [9, n0, _GRRet,\n { [_h]: [\"GET\", \"/registries/{registryId}/records/{recordId}\", 200] }, () => exports.GetRegistryRecordRequest$, () => exports.GetRegistryRecordResponse$\n];\nexports.GetResourcePolicy$ = [9, n0, _GRP,\n { [_h]: [\"GET\", \"/resourcepolicy/{resourceArn}\", 200] }, () => exports.GetResourcePolicyRequest$, () => exports.GetResourcePolicyResponse$\n];\nexports.GetTokenVault$ = [9, n0, _GTV,\n { [_h]: [\"POST\", \"/identities/get-token-vault\", 200] }, () => exports.GetTokenVaultRequest$, () => exports.GetTokenVaultResponse$\n];\nexports.GetWorkloadIdentity$ = [9, n0, _GWI,\n { [_h]: [\"POST\", \"/identities/GetWorkloadIdentity\", 200] }, () => exports.GetWorkloadIdentityRequest$, () => exports.GetWorkloadIdentityResponse$\n];\nexports.ListAgentRuntimeEndpoints$ = [9, n0, _LARE,\n { [_h]: [\"POST\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/\", 200] }, () => exports.ListAgentRuntimeEndpointsRequest$, () => exports.ListAgentRuntimeEndpointsResponse$\n];\nexports.ListAgentRuntimes$ = [9, n0, _LAR,\n { [_h]: [\"POST\", \"/runtimes/\", 200] }, () => exports.ListAgentRuntimesRequest$, () => exports.ListAgentRuntimesResponse$\n];\nexports.ListAgentRuntimeVersions$ = [9, n0, _LARV,\n { [_h]: [\"POST\", \"/runtimes/{agentRuntimeId}/versions/\", 200] }, () => exports.ListAgentRuntimeVersionsRequest$, () => exports.ListAgentRuntimeVersionsResponse$\n];\nexports.ListApiKeyCredentialProviders$ = [9, n0, _LAKCP,\n { [_h]: [\"POST\", \"/identities/ListApiKeyCredentialProviders\", 200] }, () => exports.ListApiKeyCredentialProvidersRequest$, () => exports.ListApiKeyCredentialProvidersResponse$\n];\nexports.ListBrowserProfiles$ = [9, n0, _LBP,\n { [_h]: [\"POST\", \"/browser-profiles\", 200] }, () => exports.ListBrowserProfilesRequest$, () => exports.ListBrowserProfilesResponse$\n];\nexports.ListBrowsers$ = [9, n0, _LB,\n { [_h]: [\"POST\", \"/browsers\", 200] }, () => exports.ListBrowsersRequest$, () => exports.ListBrowsersResponse$\n];\nexports.ListCodeInterpreters$ = [9, n0, _LCI,\n { [_h]: [\"POST\", \"/code-interpreters\", 200] }, () => exports.ListCodeInterpretersRequest$, () => exports.ListCodeInterpretersResponse$\n];\nexports.ListEvaluators$ = [9, n0, _LE,\n { [_h]: [\"POST\", \"/evaluators\", 200] }, () => exports.ListEvaluatorsRequest$, () => exports.ListEvaluatorsResponse$\n];\nexports.ListGateways$ = [9, n0, _LG,\n { [_h]: [\"GET\", \"/gateways/\", 200] }, () => exports.ListGatewaysRequest$, () => exports.ListGatewaysResponse$\n];\nexports.ListGatewayTargets$ = [9, n0, _LGT,\n { [_h]: [\"GET\", \"/gateways/{gatewayIdentifier}/targets/\", 200] }, () => exports.ListGatewayTargetsRequest$, () => exports.ListGatewayTargetsResponse$\n];\nexports.ListMemories$ = [9, n0, _LM,\n { [_h]: [\"POST\", \"/memories/\", 200] }, () => exports.ListMemoriesInput$, () => exports.ListMemoriesOutput$\n];\nexports.ListOauth2CredentialProviders$ = [9, n0, _LOCP,\n { [_h]: [\"POST\", \"/identities/ListOauth2CredentialProviders\", 200] }, () => exports.ListOauth2CredentialProvidersRequest$, () => exports.ListOauth2CredentialProvidersResponse$\n];\nexports.ListOnlineEvaluationConfigs$ = [9, n0, _LOEC,\n { [_h]: [\"POST\", \"/online-evaluation-configs\", 200] }, () => exports.ListOnlineEvaluationConfigsRequest$, () => exports.ListOnlineEvaluationConfigsResponse$\n];\nexports.ListPolicies$ = [9, n0, _LP,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policies\", 200] }, () => exports.ListPoliciesRequest$, () => exports.ListPoliciesResponse$\n];\nexports.ListPolicyEngines$ = [9, n0, _LPE,\n { [_h]: [\"GET\", \"/policy-engines\", 200] }, () => exports.ListPolicyEnginesRequest$, () => exports.ListPolicyEnginesResponse$\n];\nexports.ListPolicyGenerationAssets$ = [9, n0, _LPGA,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}/assets\", 200] }, () => exports.ListPolicyGenerationAssetsRequest$, () => exports.ListPolicyGenerationAssetsResponse$\n];\nexports.ListPolicyGenerations$ = [9, n0, _LPG,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policy-generations\", 200] }, () => exports.ListPolicyGenerationsRequest$, () => exports.ListPolicyGenerationsResponse$\n];\nexports.ListRegistries$ = [9, n0, _LR,\n { [_h]: [\"GET\", \"/registries\", 200] }, () => exports.ListRegistriesRequest$, () => exports.ListRegistriesResponse$\n];\nexports.ListRegistryRecords$ = [9, n0, _LRRis,\n { [_h]: [\"GET\", \"/registries/{registryId}/records\", 200] }, () => exports.ListRegistryRecordsRequest$, () => exports.ListRegistryRecordsResponse$\n];\nexports.ListTagsForResource$ = [9, n0, _LTFR,\n { [_h]: [\"GET\", \"/tags/{resourceArn}\", 200] }, () => exports.ListTagsForResourceRequest$, () => exports.ListTagsForResourceResponse$\n];\nexports.ListWorkloadIdentities$ = [9, n0, _LWI,\n { [_h]: [\"POST\", \"/identities/ListWorkloadIdentities\", 200] }, () => exports.ListWorkloadIdentitiesRequest$, () => exports.ListWorkloadIdentitiesResponse$\n];\nexports.PutResourcePolicy$ = [9, n0, _PRP,\n { [_h]: [\"PUT\", \"/resourcepolicy/{resourceArn}\", 201] }, () => exports.PutResourcePolicyRequest$, () => exports.PutResourcePolicyResponse$\n];\nexports.SetTokenVaultCMK$ = [9, n0, _STVCMK,\n { [_h]: [\"POST\", \"/identities/set-token-vault-cmk\", 200] }, () => exports.SetTokenVaultCMKRequest$, () => exports.SetTokenVaultCMKResponse$\n];\nexports.StartPolicyGeneration$ = [9, n0, _SPG,\n { [_h]: [\"POST\", \"/policy-engines/{policyEngineId}/policy-generations\", 202] }, () => exports.StartPolicyGenerationRequest$, () => exports.StartPolicyGenerationResponse$\n];\nexports.SubmitRegistryRecordForApproval$ = [9, n0, _SRRFA,\n { [_h]: [\"POST\", \"/registries/{registryId}/records/{recordId}/submit-for-approval\", 202] }, () => exports.SubmitRegistryRecordForApprovalRequest$, () => exports.SubmitRegistryRecordForApprovalResponse$\n];\nexports.SynchronizeGatewayTargets$ = [9, n0, _SGT,\n { [_h]: [\"PUT\", \"/gateways/{gatewayIdentifier}/synchronizeTargets\", 202] }, () => exports.SynchronizeGatewayTargetsRequest$, () => exports.SynchronizeGatewayTargetsResponse$\n];\nexports.TagResource$ = [9, n0, _TR,\n { [_h]: [\"POST\", \"/tags/{resourceArn}\", 204] }, () => exports.TagResourceRequest$, () => exports.TagResourceResponse$\n];\nexports.UntagResource$ = [9, n0, _UR,\n { [_h]: [\"DELETE\", \"/tags/{resourceArn}\", 204] }, () => exports.UntagResourceRequest$, () => exports.UntagResourceResponse$\n];\nexports.UpdateAgentRuntime$ = [9, n0, _UAR,\n { [_h]: [\"PUT\", \"/runtimes/{agentRuntimeId}/\", 202] }, () => exports.UpdateAgentRuntimeRequest$, () => exports.UpdateAgentRuntimeResponse$\n];\nexports.UpdateAgentRuntimeEndpoint$ = [9, n0, _UARE,\n { [_h]: [\"PUT\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/\", 202] }, () => exports.UpdateAgentRuntimeEndpointRequest$, () => exports.UpdateAgentRuntimeEndpointResponse$\n];\nexports.UpdateApiKeyCredentialProvider$ = [9, n0, _UAKCP,\n { [_h]: [\"POST\", \"/identities/UpdateApiKeyCredentialProvider\", 200] }, () => exports.UpdateApiKeyCredentialProviderRequest$, () => exports.UpdateApiKeyCredentialProviderResponse$\n];\nexports.UpdateEvaluator$ = [9, n0, _UEp,\n { [_h]: [\"PUT\", \"/evaluators/{evaluatorId}\", 202] }, () => exports.UpdateEvaluatorRequest$, () => exports.UpdateEvaluatorResponse$\n];\nexports.UpdateGateway$ = [9, n0, _UG,\n { [_h]: [\"PUT\", \"/gateways/{gatewayIdentifier}/\", 202] }, () => exports.UpdateGatewayRequest$, () => exports.UpdateGatewayResponse$\n];\nexports.UpdateGatewayTarget$ = [9, n0, _UGT,\n { [_h]: [\"PUT\", \"/gateways/{gatewayIdentifier}/targets/{targetId}/\", 202] }, () => exports.UpdateGatewayTargetRequest$, () => exports.UpdateGatewayTargetResponse$\n];\nexports.UpdateMemory$ = [9, n0, _UM,\n { [_h]: [\"PUT\", \"/memories/{memoryId}/update\", 202] }, () => exports.UpdateMemoryInput$, () => exports.UpdateMemoryOutput$\n];\nexports.UpdateOauth2CredentialProvider$ = [9, n0, _UOCP,\n { [_h]: [\"POST\", \"/identities/UpdateOauth2CredentialProvider\", 200] }, () => exports.UpdateOauth2CredentialProviderRequest$, () => exports.UpdateOauth2CredentialProviderResponse$\n];\nexports.UpdateOnlineEvaluationConfig$ = [9, n0, _UOEC,\n { [_h]: [\"PUT\", \"/online-evaluation-configs/{onlineEvaluationConfigId}\", 202] }, () => exports.UpdateOnlineEvaluationConfigRequest$, () => exports.UpdateOnlineEvaluationConfigResponse$\n];\nexports.UpdatePolicy$ = [9, n0, _UP,\n { [_h]: [\"PATCH\", \"/policy-engines/{policyEngineId}/policies/{policyId}\", 202] }, () => exports.UpdatePolicyRequest$, () => exports.UpdatePolicyResponse$\n];\nexports.UpdatePolicyEngine$ = [9, n0, _UPE,\n { [_h]: [\"PATCH\", \"/policy-engines/{policyEngineId}\", 202] }, () => exports.UpdatePolicyEngineRequest$, () => exports.UpdatePolicyEngineResponse$\n];\nexports.UpdateRegistry$ = [9, n0, _URp,\n { [_h]: [\"PATCH\", \"/registries/{registryId}\", 202] }, () => exports.UpdateRegistryRequest$, () => exports.UpdateRegistryResponse$\n];\nexports.UpdateRegistryRecord$ = [9, n0, _URRpda,\n { [_h]: [\"PATCH\", \"/registries/{registryId}/records/{recordId}\", 202] }, () => exports.UpdateRegistryRecordRequest$, () => exports.UpdateRegistryRecordResponse$\n];\nexports.UpdateRegistryRecordStatus$ = [9, n0, _URRS,\n { [_h]: [\"PATCH\", \"/registries/{registryId}/records/{recordId}/status\", 202] }, () => exports.UpdateRegistryRecordStatusRequest$, () => exports.UpdateRegistryRecordStatusResponse$\n];\nexports.UpdateWorkloadIdentity$ = [9, n0, _UWI,\n { [_h]: [\"POST\", \"/identities/UpdateWorkloadIdentity\", 200] }, () => exports.UpdateWorkloadIdentityRequest$, () => exports.UpdateWorkloadIdentityResponse$\n];\n","'use strict';\n\nconst state = {\n warningEmitted: false,\n};\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 20) {\n state.warningEmitted = true;\n process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js ${version} in January 2026.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/c895JFp`);\n }\n};\n\nconst longPollMiddleware = () => (next, context) => async (args) => {\n context.__retryLongPoll = true;\n return next(args);\n};\nconst longPollMiddlewareOptions = {\n name: \"longPollMiddleware\",\n tags: [\"RETRY\"],\n step: \"initialize\",\n override: true,\n};\nconst getLongPollPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(longPollMiddleware(), longPollMiddlewareOptions);\n },\n});\n\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getLongPollPlugin = getLongPollPlugin;\nexports.setCredentialFeature = setCredentialFeature;\nexports.setFeature = setFeature;\nexports.setTokenFeature = setTokenFeature;\nexports.state = state;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar core = require('@smithy/core');\nvar propertyProvider = require('@smithy/property-provider');\nvar client = require('@aws-sdk/core/client');\nvar signatureV4 = require('@smithy/signature-v4');\n\nconst getDateHeader = (response) => protocolHttp.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n\nconst getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n\nconst isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n\nconst getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n\nconst throwSigningPropertyError = (name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n};\nconst validateSigningProperties = async (signingProperties) => {\n const context = throwSigningPropertyError(\"context\", signingProperties.context);\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName,\n };\n};\nclass AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: signingRegion,\n signingService: signingName,\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n}\nconst AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\nclass AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ??\n signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName,\n });\n return signedRequest;\n }\n}\n\nconst getArrayForCommaSeparatedString = (str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [];\n\nconst getBearerTokenEnvKey = (signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`;\n\nconst NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nconst NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nconst NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n environmentVariableSelector: (env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env)\n return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env))\n return undefined;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n },\n configFileSelector: (profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile))\n return undefined;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n },\n default: [],\n};\n\nconst resolveAwsSdkSigV4AConfig = (config) => {\n config.sigv4aSigningRegionSet = core.normalizeProvider(config.sigv4aSigningRegionSet);\n return config;\n};\nconst NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true,\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true,\n });\n },\n default: undefined,\n};\n\nconst resolveAwsSdkSigV4Config = (config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = undefined;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider,\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n const isCredentialObject = typeof inputCredentials === \"object\" && inputCredentials !== null;\n resolvedCredentials = async (options) => {\n const creds = await boundProvider(options);\n const attributedCreds = creds;\n if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) {\n return client.setCredentialFeature(attributedCreds, \"CREDENTIALS_CODE\", \"e\");\n }\n return attributedCreds;\n };\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n }\n else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true,\n });\n config.credentials = inputCredentials;\n const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n let signer;\n if (config.signer) {\n signer = core.normalizeProvider(config.signer);\n }\n else if (config.regionInfoProvider) {\n signer = () => core.normalizeProvider(config.region)()\n .then(async (region) => [\n (await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await core.normalizeProvider(config.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n };\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer,\n });\n return resolvedConfig;\n};\nconst resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, { credentials, credentialDefaultProvider, }) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = core.memoizeIdentityProvider(credentials, core.isIdentityExpired, core.doesIdentityRequireRefresh);\n }\n else {\n credentialsProvider = credentials;\n }\n }\n else {\n if (credentialDefaultProvider) {\n credentialsProvider = core.normalizeProvider(credentialDefaultProvider(Object.assign({}, config, {\n parentClientConfig: config,\n })));\n }\n else {\n credentialsProvider = async () => {\n throw new Error(\"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\");\n };\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config });\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n\nexports.AWSSDKSigV4Signer = AWSSDKSigV4Signer;\nexports.AwsSdkSigV4ASigner = AwsSdkSigV4ASigner;\nexports.AwsSdkSigV4Signer = AwsSdkSigV4Signer;\nexports.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = NODE_AUTH_SCHEME_PREFERENCE_OPTIONS;\nexports.NODE_SIGV4A_CONFIG_OPTIONS = NODE_SIGV4A_CONFIG_OPTIONS;\nexports.getBearerTokenEnvKey = getBearerTokenEnvKey;\nexports.resolveAWSSDKSigV4Config = resolveAWSSDKSigV4Config;\nexports.resolveAwsSdkSigV4AConfig = resolveAwsSdkSigV4AConfig;\nexports.resolveAwsSdkSigV4Config = resolveAwsSdkSigV4Config;\nexports.validateSigningProperties = validateSigningProperties;\n","'use strict';\n\nvar cbor = require('@smithy/core/cbor');\nvar schema = require('@smithy/core/schema');\nvar smithyClient = require('@smithy/smithy-client');\nvar protocols = require('@smithy/core/protocols');\nvar serde = require('@smithy/core/serde');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar xmlBuilder = require('@aws-sdk/xml-builder');\n\nclass ProtocolLib {\n queryCompat;\n errorRegistry;\n constructor(queryCompat = false) {\n this.queryCompat = queryCompat;\n }\n resolveRestContentType(defaultContentType, inputSchema) {\n const members = inputSchema.getMemberSchemas();\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n return mediaType;\n }\n else if (httpPayloadMember.isStringSchema()) {\n return \"text/plain\";\n }\n else if (httpPayloadMember.isBlobSchema()) {\n return \"application/octet-stream\";\n }\n else {\n return defaultContentType;\n }\n }\n else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n const noPrefixHeaders = httpPrefixHeaders === void 0;\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n });\n if (hasBody) {\n return defaultContentType;\n }\n }\n }\n async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [, errorName] = errorIdentifier.split(\"#\");\n }\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode < 500 ? \"client\" : \"server\",\n };\n if (!this.errorRegistry) {\n throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n }\n try {\n const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n this.errorRegistry.getSchema(errorIdentifier);\n return { errorSchema, errorMetadata };\n }\n catch (e) {\n dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const synthetic = this.errorRegistry;\n const baseExceptionSchema = synthetic.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n }\n const d = dataObject;\n const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n throw this.decorateServiceException(Object.assign(new Error(message), {\n name: errorName,\n }, errorMetadata), dataObject);\n }\n }\n compose(composite, errorIdentifier, defaultNamespace) {\n let namespace = defaultNamespace;\n if (errorIdentifier.includes(\"#\")) {\n [namespace] = errorIdentifier.split(\"#\");\n }\n const staticRegistry = schema.TypeRegistry.for(namespace);\n const defaultSyntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n composite.copyFrom(staticRegistry);\n composite.copyFrom(defaultSyntheticRegistry);\n this.errorRegistry = composite;\n }\n decorateServiceException(exception, additions = {}) {\n if (this.queryCompat) {\n const msg = exception.Message ?? additions.Message;\n const error = smithyClient.decorateServiceException(exception, additions);\n if (msg) {\n error.message = msg;\n }\n const errorObj = error.Error ?? {};\n errorObj.Type = error.Error?.Type;\n errorObj.Code = error.Error?.Code;\n errorObj.Message = error.Error?.message ?? error.Error?.Message ?? msg;\n error.Error = errorObj;\n const reqId = error.$metadata.requestId;\n if (reqId) {\n error.RequestId = reqId;\n }\n return error;\n }\n return smithyClient.decorateServiceException(exception, additions);\n }\n setQueryCompatError(output, response) {\n const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n if (output !== undefined && queryErrorHeader != null) {\n const [Code, Type] = queryErrorHeader.split(\";\");\n const keys = Object.keys(output);\n const Error = {\n Code,\n Type,\n };\n output.Code = Code;\n output.Type = Type;\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n Error[k === \"message\" ? \"Message\" : k] = output[k];\n }\n delete Error.__type;\n output.Error = Error;\n }\n }\n queryCompatOutput(queryCompatErrorData, errorData) {\n if (queryCompatErrorData.Error) {\n errorData.Error = queryCompatErrorData.Error;\n }\n if (queryCompatErrorData.Type) {\n errorData.Type = queryCompatErrorData.Type;\n }\n if (queryCompatErrorData.Code) {\n errorData.Code = queryCompatErrorData.Code;\n }\n }\n findQueryCompatibleError(registry, errorName) {\n try {\n return registry.getSchema(errorName);\n }\n catch (e) {\n return registry.find((schema$1) => schema.NormalizedSchema.of(schema$1).getMergedTraits().awsQueryError?.[0] === errorName);\n }\n }\n}\n\nclass AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {\n awsQueryCompatible;\n mixin;\n constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {\n super({ defaultNamespace, errorTypeRegistries });\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorName = (() => {\n const compatHeader = response.headers[\"x-amzn-query-error\"];\n if (compatHeader && this.awsQueryCompatible) {\n return compatHeader.split(\";\")[0];\n }\n return cbor.loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n })();\n this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nconst _toStr = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n};\nconst _toBool = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n};\nconst _toNum = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n};\n\nclass SerdeContextConfig {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass UnionSerde {\n from;\n to;\n keys;\n constructor(from, to) {\n this.from = from;\n this.to = to;\n const keys = Object.keys(this.from);\n const set = new Set(keys);\n set.delete(\"__type\");\n this.keys = set;\n }\n mark(key) {\n this.keys.delete(key);\n }\n hasUnknown() {\n return this.keys.size === 1 && Object.keys(this.to).length === 0;\n }\n writeUnknown() {\n if (this.hasUnknown()) {\n const k = this.keys.values().next().value;\n const v = this.from[k];\n this.to.$unknown = [k, v];\n }\n }\n}\n\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new serde.NumericValue(numericString, \"bigDecimal\");\n }\n else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n\nconst collectBodyString = (streamBody, context) => smithyClient.collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? utilUtf8.toUtf8)(body));\n\nconst parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n }\n catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n }\n return {};\n});\nconst parseJsonErrorBody = async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\nconst sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n};\n\nclass JsonShapeDeserializer extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n async read(schema, data) {\n return this._read(schema, typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext));\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema$1, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const union = ns.isUnionSchema();\n const out = {};\n let nameMap = void 0;\n const { jsonName } = this.settings;\n if (jsonName) {\n nameMap = {};\n }\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(record, out);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n let fromKey = memberName;\n if (jsonName) {\n fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;\n nameMap[fromKey] = memberName;\n }\n if (union) {\n unionSerde.mark(fromKey);\n }\n if (record[fromKey] != null) {\n out[memberName] = this._read(memberSchema, record[fromKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const t = jsonName ? nameMap[k] ?? k : k;\n if (!(t in out)) {\n out[t] = v;\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n for (const item of value) {\n out.push(this._read(listMember, item));\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n for (const _k in value) {\n out[_k] = this._read(mapMember, value[_k]);\n }\n return out;\n }\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return utilBase64.fromBase64(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n return value;\n }\n if (ns.isTimestampSchema() && value != null) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde.parseRfc3339DateTimeWithOffset(value);\n case 6:\n return serde.parseRfc7231DateTime(value);\n case 7:\n return serde.parseEpochTimestamp(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != undefined) {\n if (value instanceof serde.NumericValue) {\n return value;\n }\n const untyped = value;\n if (untyped.type === \"bigDecimal\" && \"string\" in untyped) {\n return new serde.NumericValue(untyped.string, untyped.type);\n }\n return new serde.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n return value;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n out[k] = v;\n }\n else {\n out[k] = this._read(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nconst NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nclass JsonReplacer {\n values = new Map();\n counter = 0;\n stage = 0;\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof serde.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + \"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n}\n\nclass JsonShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n useReplacer = false;\n rootSchema;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n this.rootSchema = schema.NormalizedSchema.of(schema$1);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n const { rootSchema, useReplacer } = this;\n this.rootSchema = undefined;\n this.useReplacer = false;\n if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {\n if (!useReplacer) {\n return JSON.stringify(this.buffer);\n }\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n writeDiscriminatedDocument(schema$1, value) {\n this.write(schema$1, value);\n if (typeof this.buffer === \"object\") {\n this.buffer.__type = schema.NormalizedSchema.of(schema$1).getName(true);\n }\n }\n _write(schema$1, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const out = {};\n const { jsonName } = this.settings;\n let nameMap = void 0;\n if (jsonName) {\n nameMap = {};\n }\n let outCount = 0;\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const serializableValue = this._write(memberSchema, record[memberName], ns);\n if (serializableValue !== undefined) {\n let targetKey = memberName;\n if (jsonName) {\n targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;\n nameMap[memberName] = targetKey;\n }\n out[targetKey] = serializableValue;\n outCount++;\n }\n }\n if (ns.isUnionSchema() && outCount === 0) {\n const { $unknown } = record;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n out[k] = this._write(15, v);\n }\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const targetKey = jsonName ? nameMap[k] ?? k : k;\n if (!(targetKey in out)) {\n out[targetKey] = this._write(15, v);\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const _k in value) {\n const _v = value[_k];\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n }\n if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case 6:\n return serde.dateToUtcString(value);\n case 7:\n return value.getTime() / 1000;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1000;\n }\n }\n if (value instanceof serde.NumericValue) {\n this.useReplacer = true;\n }\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isStringSchema()) {\n if (typeof value === \"undefined\" && ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (value != null && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n }\n return value;\n }\n if (typeof value === \"number\" && ns.isNumericSchema()) {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n return value;\n }\n if (typeof value === \"string\" && ns.isBlobSchema()) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (typeof value === \"bigint\") {\n this.useReplacer = true;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n this.useReplacer = true;\n out[k] = v;\n }\n else {\n out[k] = this._write(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nclass JsonCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsJsonRpcProtocol extends protocols.RpcProtocol {\n serializer;\n deserializer;\n serviceTarget;\n codec;\n mixin;\n awsQueryCompatible;\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n this.serviceTarget = serviceTarget;\n this.codec =\n jsonCodec ??\n new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n jsonName: false,\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = `application/x-amz-json-${this.getJsonRpcVersion()}`;\n request.headers[\"x-amz-target\"] = `${this.serviceTarget}.${operationSchema.name}`;\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = errorDeserializer.readObject(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nclass AwsJson1_0Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.0\";\n }\n}\n\nclass AwsJson1_1Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.1\";\n }\n}\n\nclass AwsRestJsonProtocol extends protocols.HttpBindingProtocol {\n serializer;\n deserializer;\n codec;\n mixin = new ProtocolLib();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n httpBindings: true,\n jsonName: true,\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (request.body == null && request.headers[\"content-type\"] === this.getDefaultContentType()) {\n request.body = \"{}\";\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const output = await super.deserializeResponse(operationSchema, context, response);\n const outputSchema = schema.NormalizedSchema.of(operationSchema.output);\n for (const [name, member] of outputSchema.structIterator()) {\n if (member.getMemberTraits().httpPayload && !(name in output)) {\n output[name] = null;\n }\n }\n return output;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = errorDeserializer.readObject(member, dataObject[target]);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/json\";\n }\n}\n\nconst awsExpectUnion = (value) => {\n if (value == null) {\n return undefined;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return smithyClient.expectUnion(value);\n};\n\nclass XmlShapeDeserializer extends SerdeContextConfig {\n settings;\n stringDeserializer;\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new protocols.FromStringShapeDeserializer(settings);\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n read(schema$1, bytes, key) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() &&\n ns.isMemberSchema() &&\n !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n }\n else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema$1, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isUnitSchema()) {\n return;\n }\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n if (source == null) {\n return buffer;\n }\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n buffer.push(this.readSchema(listValue, v));\n }\n return buffer;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n }\n else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value = entry[valueProperty];\n buffer[key] = this.readSchema(memberNs, value);\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n const union = ns.isUnionSchema();\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(value, buffer);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload\n ? memberSchema.getMemberTraits().xmlName ?? memberName\n : memberTraits.xmlName ?? memberSchema.getName();\n if (union) {\n unionSerde.mark(xmlObjectKey);\n }\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(xml);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n }\n}\n\nclass QueryShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value, prefix = \"\") {\n if (this.buffer === undefined) {\n this.buffer = \"\";\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value));\n }\n }\n else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n else if (ns.isIdempotencyToken()) {\n this.writeKey(prefix);\n this.writeValue(serde.generateIdempotencyToken());\n }\n }\n else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof serde.NumericValue ? value.string : String(value));\n }\n }\n else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case 6:\n this.writeValue(smithyClient.dateToUtcString(value));\n break;\n case 7:\n this.writeValue(String(value.getTime() / 1000));\n break;\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n if (Array.isArray(value)) {\n this.write(64 | 15, value, prefix);\n }\n else if (value instanceof Date) {\n this.write(4, value, prefix);\n }\n else if (value instanceof Uint8Array) {\n this.write(21, value, prefix);\n }\n else if (value && typeof value === \"object\") {\n this.write(128 | 15, value, prefix);\n }\n else {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n }\n else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(\"member\", traits.xmlName, traits.ec2QueryName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n }\n else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const k in value) {\n const v = value[k];\n if (v == null) {\n continue;\n }\n const keyTraits = keySchema.getMergedTraits();\n const keySuffix = this.getKey(\"key\", keyTraits.xmlName, keyTraits.ec2QueryName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valTraits = memberSchema.getMergedTraits();\n const valueSuffix = this.getKey(\"value\", valTraits.xmlName, valTraits.ec2QueryName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n }\n else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n let didWriteMember = false;\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null && !member.isIdempotencyToken()) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(memberName, traits.xmlName, traits.ec2QueryName, \"struct\");\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n didWriteMember = true;\n }\n if (!didWriteMember && ns.isUnionSchema()) {\n const { $unknown } = value;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n const key = `${prefix}${k}`;\n this.write(15, v, key);\n }\n }\n }\n }\n else if (ns.isUnitSchema()) ;\n else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === undefined) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName, ec2QueryName, keySource) {\n const { ec2, capitalizeKeys } = this.settings;\n if (ec2 && ec2QueryName) {\n return ec2QueryName;\n }\n const key = xmlName ?? memberName;\n if (capitalizeKeys && keySource === \"struct\") {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${protocols.extendedEncodeURIComponent(key)}=`;\n }\n writeValue(value) {\n this.buffer += protocols.extendedEncodeURIComponent(value);\n }\n}\n\nclass AwsQueryProtocol extends protocols.RpcProtocol {\n options;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace,\n errorTypeRegistries: options.errorTypeRegistries,\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true,\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = \"application/x-www-form-urlencoded\";\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n const action = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n request.body = `Action=${action}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const shortName = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? shortName + \"Result\" : undefined;\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const errorData = this.loadQueryError(dataObject) ?? {};\n const message = this.loadQueryErrorMessage(dataObject);\n errorData.message = message;\n errorData.Error = {\n Type: errorData.Type,\n Code: errorData.Code,\n Message: message,\n };\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, errorData, metadata, this.mixin.findQueryCompatibleError);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {\n Type: errorData.Error.Type,\n Code: errorData.Error.Code,\n Error: errorData.Error,\n };\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorData[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== undefined) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n getDefaultContentType() {\n return \"application/x-www-form-urlencoded\";\n }\n}\n\nclass AwsEc2QueryProtocol extends AwsQueryProtocol {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false,\n ec2: true,\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n getShapeId() {\n return \"aws.protocols#ec2Query\";\n }\n useNestedResult() {\n return false;\n }\n}\n\nconst parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(encoded);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseXmlErrorBody = async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Error?.Code !== undefined) {\n return data.Error.Code;\n }\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n\nclass XmlShapeSerializer extends SerdeContextConfig {\n settings;\n stringBuffer;\n byteBuffer;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n }\n else if (ns.isBlobSchema()) {\n this.byteBuffer =\n \"byteLength\" in value\n ? value\n : (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n else {\n this.buffer = this.writeStruct(ns, value, undefined);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== undefined) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== undefined) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload\n ? ns.getMemberTraits().xmlName ?? ns.getMemberName()\n : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`);\n }\n const structXmlNode = xmlBuilder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null || memberSchema.isIdempotencyToken()) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val));\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n }\n else {\n const memberNode = xmlBuilder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n const { $unknown } = value;\n if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) {\n const [k, v] = $unknown;\n const node = xmlBuilder.XmlNode.of(k);\n if (typeof v !== \"string\") {\n if (value instanceof xmlBuilder.XmlNode || value instanceof xmlBuilder.XmlText) {\n structXmlNode.addChildNode(value);\n }\n else {\n throw new Error(`@aws-sdk - $unknown union member in XML requires ` +\n `value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`);\n }\n }\n this.writeSimpleInto(0, v, node, xmlns);\n structXmlNode.addChildNode(node);\n }\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`);\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = (container, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container, xmlns);\n }\n else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container, xmlns);\n }\n else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"));\n }\n else {\n const listItemNode = xmlBuilder.XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\");\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container.addChildNode(listItemNode);\n }\n };\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n }\n else {\n const listNode = xmlBuilder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`);\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = (entry, key, val) => {\n const keyNode = xmlBuilder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = xmlBuilder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n }\n else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n }\n else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n }\n else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n };\n if (flat) {\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n }\n else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = schema.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n else if (ns.isTimestampSchema() && value instanceof Date) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n case 7:\n nodeContents = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n }\n }\n else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof serde.NumericValue) {\n return value.string;\n }\n return String(value);\n }\n else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\");\n }\n else {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`);\n }\n }\n if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (ns.isStringSchema()) {\n if (value === undefined && ns.isIdempotencyToken()) {\n nodeContents = serde.generateIdempotencyToken();\n }\n else {\n nodeContents = String(value);\n }\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = schema.NormalizedSchema.of(_schema);\n const content = new xmlBuilder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n}\n\nclass XmlCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsRestXmlProtocol extends protocols.HttpBindingProtocol {\n codec;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n this.compositeErrorRegistry;\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (typeof request.body === \"string\" &&\n request.headers[\"content-type\"] === this.getDefaultContentType() &&\n !request.body.startsWith(\"' + request.body;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n if (dataObject.Error && typeof dataObject.Error === \"object\") {\n for (const key of Object.keys(dataObject.Error)) {\n dataObject[key] = dataObject.Error[key];\n if (key.toLowerCase() === \"message\") {\n dataObject.message = dataObject.Error[key];\n }\n }\n }\n if (dataObject.RequestId && !metadata.requestId) {\n metadata.requestId = dataObject.RequestId;\n }\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ??\n dataObject.Error?.Message ??\n dataObject.message ??\n dataObject.Message ??\n \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = errorDeserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/xml\";\n }\n hasUnstructuredPayloadBinding(ns) {\n for (const [, member] of ns.structIterator()) {\n if (member.getMergedTraits().httpPayload) {\n return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema());\n }\n }\n return false;\n }\n}\n\nexports.AwsEc2QueryProtocol = AwsEc2QueryProtocol;\nexports.AwsJson1_0Protocol = AwsJson1_0Protocol;\nexports.AwsJson1_1Protocol = AwsJson1_1Protocol;\nexports.AwsJsonRpcProtocol = AwsJsonRpcProtocol;\nexports.AwsQueryProtocol = AwsQueryProtocol;\nexports.AwsRestJsonProtocol = AwsRestJsonProtocol;\nexports.AwsRestXmlProtocol = AwsRestXmlProtocol;\nexports.AwsSmithyRpcV2CborProtocol = AwsSmithyRpcV2CborProtocol;\nexports.JsonCodec = JsonCodec;\nexports.JsonShapeDeserializer = JsonShapeDeserializer;\nexports.JsonShapeSerializer = JsonShapeSerializer;\nexports.QueryShapeSerializer = QueryShapeSerializer;\nexports.XmlCodec = XmlCodec;\nexports.XmlShapeDeserializer = XmlShapeDeserializer;\nexports.XmlShapeSerializer = XmlShapeSerializer;\nexports._toBool = _toBool;\nexports._toNum = _toNum;\nexports._toStr = _toStr;\nexports.awsExpectUnion = awsExpectUnion;\nexports.loadRestJsonErrorCode = loadRestJsonErrorCode;\nexports.loadRestXmlErrorCode = loadRestXmlErrorCode;\nexports.parseJsonBody = parseJsonBody;\nexports.parseJsonErrorBody = parseJsonErrorBody;\nexports.parseXmlBody = parseXmlBody;\nexports.parseXmlErrorBody = parseXmlErrorBody;\n","'use strict';\n\nvar client = require('@aws-sdk/core/client');\nvar propertyProvider = require('@smithy/property-provider');\n\nconst ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nconst ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nconst ENV_SESSION = \"AWS_SESSION_TOKEN\";\nconst ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nconst ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nconst ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nconst fromEnv = (init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n client.setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new propertyProvider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n};\n\nexports.ENV_ACCOUNT_ID = ENV_ACCOUNT_ID;\nexports.ENV_CREDENTIAL_SCOPE = ENV_CREDENTIAL_SCOPE;\nexports.ENV_EXPIRATION = ENV_EXPIRATION;\nexports.ENV_KEY = ENV_KEY;\nexports.ENV_SECRET = ENV_SECRET;\nexports.ENV_SESSION = ENV_SESSION;\nexports.fromEnv = fromEnv;\n","'use strict';\n\nvar credentialProviderEnv = require('@aws-sdk/credential-provider-env');\nvar propertyProvider = require('@smithy/property-provider');\nvar sharedIniFileLoader = require('@smithy/shared-ini-file-loader');\n\nconst ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import('@smithy/credential-provider-imds');\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import('@aws-sdk/credential-provider-http');\n return propertyProvider.chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new propertyProvider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n\nfunction memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nconst internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nlet multipleCredentialSourceWarningEmitted = false;\nconst defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[sharedIniFileLoader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[credentialProviderEnv.ENV_KEY] && process.env[credentialProviderEnv.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new propertyProvider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return credentialProviderEnv.fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new propertyProvider.CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import('@aws-sdk/credential-provider-sso');\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import('@aws-sdk/credential-provider-ini');\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import('@aws-sdk/credential-provider-process');\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import('@aws-sdk/credential-provider-web-identity');\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new propertyProvider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nconst credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nconst credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n\nexports.credentialsTreatedAsExpired = credentialsTreatedAsExpired;\nexports.credentialsWillNeedRefresh = credentialsWillNeedRefresh;\nexports.defaultProvider = defaultProvider;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nconst hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nconst getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n\nexports.getHostHeaderPlugin = getHostHeaderPlugin;\nexports.hostHeaderMiddleware = hostHeaderMiddleware;\nexports.hostHeaderMiddlewareOptions = hostHeaderMiddlewareOptions;\nexports.resolveHostHeaderConfig = resolveHostHeaderConfig;\n","'use strict';\n\nconst loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nconst loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nconst getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n\nexports.getLoggerPlugin = getLoggerPlugin;\nexports.loggerMiddleware = loggerMiddleware;\nexports.loggerMiddlewareOptions = loggerMiddlewareOptions;\n","'use strict';\n\nvar recursionDetectionMiddleware = require('./recursionDetectionMiddleware');\n\nconst recursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\n\nconst getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware.recursionDetectionMiddleware(), recursionDetectionMiddlewareOptions);\n },\n});\n\nexports.getRecursionDetectionPlugin = getRecursionDetectionPlugin;\nObject.prototype.hasOwnProperty.call(recursionDetectionMiddleware, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: recursionDetectionMiddleware['__proto__']\n });\n\nObject.keys(recursionDetectionMiddleware).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = recursionDetectionMiddleware[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recursionDetectionMiddleware = void 0;\nconst lambda_invoke_store_1 = require(\"@aws/lambda-invoke-store\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nconst recursionDetectionMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ??\n TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceIdFromEnv = process.env[ENV_TRACE_ID];\n const invokeStore = await lambda_invoke_store_1.InvokeStore.getInstanceAsync();\n const traceIdFromInvokeStore = invokeStore?.getXRayTraceId();\n const traceId = traceIdFromInvokeStore ?? traceIdFromEnv;\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.recursionDetectionMiddleware = recursionDetectionMiddleware;\n","'use strict';\n\nvar core = require('@smithy/core');\nvar utilEndpoints = require('@aws-sdk/util-endpoints');\nvar protocolHttp = require('@smithy/protocol-http');\nvar client = require('@aws-sdk/core/client');\nvar utilRetry = require('@smithy/util-retry');\n\nconst DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n if (appId === undefined) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = core.normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n }\n else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n },\n });\n}\n\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n client.setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.mode === \"string\") {\n switch (retryStrategy.mode) {\n case utilRetry.RETRY_MODES.ADAPTIVE:\n client.setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n break;\n case utilRetry.RETRY_MODES.STANDARD:\n client.setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n break;\n }\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n client.setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n client.setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n client.setFeature(context, key, value);\n }\n }\n}\n\nconst USER_AGENT = \"user-agent\";\nconst X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nconst SPACE = \" \";\nconst UA_NAME_SEPARATOR = \"/\";\nconst UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w]/g;\nconst UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w#]/g;\nconst UA_ESCAPE_CHAR = \"-\";\n\nconst BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n }\n else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!protocolHttp.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`]));\n }\n const prefix = utilEndpoints.getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nconst getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nconst getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n\nexports.DEFAULT_UA_APP_ID = DEFAULT_UA_APP_ID;\nexports.getUserAgentMiddlewareOptions = getUserAgentMiddlewareOptions;\nexports.getUserAgentPlugin = getUserAgentPlugin;\nexports.resolveUserAgentConfig = resolveUserAgentConfig;\nexports.userAgentMiddleware = userAgentMiddleware;\n","'use strict';\n\nvar stsRegionDefaultResolver = require('./regionConfig/stsRegionDefaultResolver');\nvar configResolver = require('@smithy/config-resolver');\n\nconst getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n },\n };\n};\nconst resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = configResolver.NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = configResolver.NODE_REGION_CONFIG_OPTIONS;\nexports.REGION_ENV_NAME = configResolver.REGION_ENV_NAME;\nexports.REGION_INI_NAME = configResolver.REGION_INI_NAME;\nexports.resolveRegionConfig = configResolver.resolveRegionConfig;\nexports.getAwsRegionExtensionConfiguration = getAwsRegionExtensionConfiguration;\nexports.resolveAwsRegionExtensionConfiguration = resolveAwsRegionExtensionConfiguration;\nObject.prototype.hasOwnProperty.call(stsRegionDefaultResolver, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: stsRegionDefaultResolver['__proto__']\n });\n\nObject.keys(stsRegionDefaultResolver).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = stsRegionDefaultResolver[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.warning = void 0;\nexports.stsRegionDefaultResolver = stsRegionDefaultResolver;\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nfunction stsRegionDefaultResolver(loaderConfig = {}) {\n return (0, node_config_provider_1.loadConfig)({\n ...config_resolver_1.NODE_REGION_CONFIG_OPTIONS,\n async default() {\n if (!exports.warning.silence) {\n console.warn(\"@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly.\");\n }\n return \"us-east-1\";\n },\n }, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig });\n}\nexports.warning = {\n silence: false,\n};\n","'use strict';\n\nvar utilEndpoints = require('@smithy/util-endpoints');\nvar urlParser = require('@smithy/url-parser');\n\nconst isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!utilEndpoints.isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (utilEndpoints.isIpAddress(value)) {\n return false;\n }\n return true;\n};\n\nconst ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nconst parseArn = (value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition,\n service,\n region,\n accountId,\n resourceId,\n };\n};\n\nvar partitions = [\n\t{\n\t\tid: \"aws\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-east-1\",\n\t\t\tname: \"aws\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"af-south-1\": {\n\t\t\t\tdescription: \"Africa (Cape Town)\"\n\t\t\t},\n\t\t\t\"ap-east-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Hong Kong)\"\n\t\t\t},\n\t\t\t\"ap-east-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Taipei)\"\n\t\t\t},\n\t\t\t\"ap-northeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Tokyo)\"\n\t\t\t},\n\t\t\t\"ap-northeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Seoul)\"\n\t\t\t},\n\t\t\t\"ap-northeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Osaka)\"\n\t\t\t},\n\t\t\t\"ap-south-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Mumbai)\"\n\t\t\t},\n\t\t\t\"ap-south-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Hyderabad)\"\n\t\t\t},\n\t\t\t\"ap-southeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Singapore)\"\n\t\t\t},\n\t\t\t\"ap-southeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Sydney)\"\n\t\t\t},\n\t\t\t\"ap-southeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Jakarta)\"\n\t\t\t},\n\t\t\t\"ap-southeast-4\": {\n\t\t\t\tdescription: \"Asia Pacific (Melbourne)\"\n\t\t\t},\n\t\t\t\"ap-southeast-5\": {\n\t\t\t\tdescription: \"Asia Pacific (Malaysia)\"\n\t\t\t},\n\t\t\t\"ap-southeast-6\": {\n\t\t\t\tdescription: \"Asia Pacific (New Zealand)\"\n\t\t\t},\n\t\t\t\"ap-southeast-7\": {\n\t\t\t\tdescription: \"Asia Pacific (Thailand)\"\n\t\t\t},\n\t\t\t\"aws-global\": {\n\t\t\t\tdescription: \"aws global region\"\n\t\t\t},\n\t\t\t\"ca-central-1\": {\n\t\t\t\tdescription: \"Canada (Central)\"\n\t\t\t},\n\t\t\t\"ca-west-1\": {\n\t\t\t\tdescription: \"Canada West (Calgary)\"\n\t\t\t},\n\t\t\t\"eu-central-1\": {\n\t\t\t\tdescription: \"Europe (Frankfurt)\"\n\t\t\t},\n\t\t\t\"eu-central-2\": {\n\t\t\t\tdescription: \"Europe (Zurich)\"\n\t\t\t},\n\t\t\t\"eu-north-1\": {\n\t\t\t\tdescription: \"Europe (Stockholm)\"\n\t\t\t},\n\t\t\t\"eu-south-1\": {\n\t\t\t\tdescription: \"Europe (Milan)\"\n\t\t\t},\n\t\t\t\"eu-south-2\": {\n\t\t\t\tdescription: \"Europe (Spain)\"\n\t\t\t},\n\t\t\t\"eu-west-1\": {\n\t\t\t\tdescription: \"Europe (Ireland)\"\n\t\t\t},\n\t\t\t\"eu-west-2\": {\n\t\t\t\tdescription: \"Europe (London)\"\n\t\t\t},\n\t\t\t\"eu-west-3\": {\n\t\t\t\tdescription: \"Europe (Paris)\"\n\t\t\t},\n\t\t\t\"il-central-1\": {\n\t\t\t\tdescription: \"Israel (Tel Aviv)\"\n\t\t\t},\n\t\t\t\"me-central-1\": {\n\t\t\t\tdescription: \"Middle East (UAE)\"\n\t\t\t},\n\t\t\t\"me-south-1\": {\n\t\t\t\tdescription: \"Middle East (Bahrain)\"\n\t\t\t},\n\t\t\t\"mx-central-1\": {\n\t\t\t\tdescription: \"Mexico (Central)\"\n\t\t\t},\n\t\t\t\"sa-east-1\": {\n\t\t\t\tdescription: \"South America (Sao Paulo)\"\n\t\t\t},\n\t\t\t\"us-east-1\": {\n\t\t\t\tdescription: \"US East (N. Virginia)\"\n\t\t\t},\n\t\t\t\"us-east-2\": {\n\t\t\t\tdescription: \"US East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-west-1\": {\n\t\t\t\tdescription: \"US West (N. California)\"\n\t\t\t},\n\t\t\t\"us-west-2\": {\n\t\t\t\tdescription: \"US West (Oregon)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-cn\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com.cn\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n\t\t\timplicitGlobalRegion: \"cn-northwest-1\",\n\t\t\tname: \"aws-cn\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-cn-global\": {\n\t\t\t\tdescription: \"aws-cn global region\"\n\t\t\t},\n\t\t\t\"cn-north-1\": {\n\t\t\t\tdescription: \"China (Beijing)\"\n\t\t\t},\n\t\t\t\"cn-northwest-1\": {\n\t\t\t\tdescription: \"China (Ningxia)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-eusc\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.eu\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.eu\",\n\t\t\timplicitGlobalRegion: \"eusc-de-east-1\",\n\t\t\tname: \"aws-eusc\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"eusc-de-east-1\": {\n\t\t\t\tdescription: \"AWS European Sovereign Cloud (Germany)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"c2s.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-iso-east-1\",\n\t\t\tname: \"aws-iso\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-global\": {\n\t\t\t\tdescription: \"aws-iso global region\"\n\t\t\t},\n\t\t\t\"us-iso-east-1\": {\n\t\t\t\tdescription: \"US ISO East\"\n\t\t\t},\n\t\t\t\"us-iso-west-1\": {\n\t\t\t\tdescription: \"US ISO WEST\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-b\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"sc2s.sgov.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.scloud\",\n\t\t\timplicitGlobalRegion: \"us-isob-east-1\",\n\t\t\tname: \"aws-iso-b\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-b-global\": {\n\t\t\t\tdescription: \"aws-iso-b global region\"\n\t\t\t},\n\t\t\t\"us-isob-east-1\": {\n\t\t\t\tdescription: \"US ISOB East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-isob-west-1\": {\n\t\t\t\tdescription: \"US ISOB West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-e\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"cloud.adc-e.uk\",\n\t\t\tdualStackDnsSuffix: \"api.cloud-aws.adc-e.uk\",\n\t\t\timplicitGlobalRegion: \"eu-isoe-west-1\",\n\t\t\tname: \"aws-iso-e\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-e-global\": {\n\t\t\t\tdescription: \"aws-iso-e global region\"\n\t\t\t},\n\t\t\t\"eu-isoe-west-1\": {\n\t\t\t\tdescription: \"EU ISOE West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-f\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"csp.hci.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.hci.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-isof-south-1\",\n\t\t\tname: \"aws-iso-f\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-f-global\": {\n\t\t\t\tdescription: \"aws-iso-f global region\"\n\t\t\t},\n\t\t\t\"us-isof-east-1\": {\n\t\t\t\tdescription: \"US ISOF EAST\"\n\t\t\t},\n\t\t\t\"us-isof-south-1\": {\n\t\t\t\tdescription: \"US ISOF SOUTH\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-us-gov\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-gov-west-1\",\n\t\t\tname: \"aws-us-gov\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-us-gov-global\": {\n\t\t\t\tdescription: \"aws-us-gov global region\"\n\t\t\t},\n\t\t\t\"us-gov-east-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-East)\"\n\t\t\t},\n\t\t\t\"us-gov-west-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-West)\"\n\t\t\t}\n\t\t}\n\t}\n];\nvar version = \"1.1\";\nvar partitionsInfo = {\n\tpartitions: partitions,\n\tversion: version\n};\n\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nconst partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nconst setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nconst useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nconst getUserAgentPrefix = () => selectedUserAgentPrefix;\n\nconst awsEndpointFunctions = {\n isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n parseArn: parseArn,\n partition: partition,\n};\nutilEndpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\nconst resolveDefaultAwsRegionalEndpointsConfig = (input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n return toEndpointV1(input.endpointProvider({\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\"\n ? await input.useDualstackEndpoint()\n : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: undefined,\n }, { logger: input.logger }));\n };\n }\n return input;\n};\nconst toEndpointV1 = (endpoint) => urlParser.parseUrl(endpoint.url);\n\nexports.EndpointError = utilEndpoints.EndpointError;\nexports.isIpAddress = utilEndpoints.isIpAddress;\nexports.resolveEndpoint = utilEndpoints.resolveEndpoint;\nexports.awsEndpointFunctions = awsEndpointFunctions;\nexports.getUserAgentPrefix = getUserAgentPrefix;\nexports.partition = partition;\nexports.resolveDefaultAwsRegionalEndpointsConfig = resolveDefaultAwsRegionalEndpointsConfig;\nexports.setPartitionInfo = setPartitionInfo;\nexports.toEndpointV1 = toEndpointV1;\nexports.useDefaultPartitionInfo = useDefaultPartitionInfo;\n","'use strict';\n\nvar node_os = require('node:os');\nvar node_process = require('node:process');\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar promises = require('node:fs/promises');\nvar node_path = require('node:path');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\n\nconst getRuntimeUserAgentPair = () => {\n const runtimesToCheck = [\"deno\", \"bun\", \"llrt\"];\n for (const runtime of runtimesToCheck) {\n if (node_process.versions[runtime]) {\n return [`md/${runtime}`, node_process.versions[runtime]];\n }\n }\n return [\"md/nodejs\", node_process.versions.node];\n};\n\nconst getNodeModulesParentDirs = (dirname) => {\n const cwd = process.cwd();\n if (!dirname) {\n return [cwd];\n }\n const normalizedPath = node_path.normalize(dirname);\n const parts = normalizedPath.split(node_path.sep);\n const nodeModulesIndex = parts.indexOf(\"node_modules\");\n const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : normalizedPath;\n if (cwd === parentDir) {\n return [cwd];\n }\n return [parentDir, cwd];\n};\n\nconst SEMVER_REGEX = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$/;\nconst getSanitizedTypeScriptVersion = (version = \"\") => {\n const match = version.match(SEMVER_REGEX);\n if (!match) {\n return undefined;\n }\n const [major, minor, patch, prerelease] = [match[1], match[2], match[3], match[4]];\n return prerelease ? `${major}.${minor}.${patch}-${prerelease}` : `${major}.${minor}.${patch}`;\n};\n\nconst ALLOWED_PREFIXES = [\"^\", \"~\", \">=\", \"<=\", \">\", \"<\"];\nconst ALLOWED_DIST_TAGS = [\"latest\", \"beta\", \"dev\", \"rc\", \"insiders\", \"next\"];\nconst getSanitizedDevTypeScriptVersion = (version = \"\") => {\n if (ALLOWED_DIST_TAGS.includes(version)) {\n return version;\n }\n const prefix = ALLOWED_PREFIXES.find((p) => version.startsWith(p)) ?? \"\";\n const sanitizedTypeScriptVersion = getSanitizedTypeScriptVersion(version.slice(prefix.length));\n if (!sanitizedTypeScriptVersion) {\n return undefined;\n }\n return `${prefix}${sanitizedTypeScriptVersion}`;\n};\n\nlet tscVersion;\nconst TS_PACKAGE_JSON = node_path.join(\"node_modules\", \"typescript\", \"package.json\");\nconst getTypeScriptUserAgentPair = async () => {\n if (tscVersion === null) {\n return undefined;\n }\n else if (typeof tscVersion === \"string\") {\n return [\"md/tsc\", tscVersion];\n }\n let isTypeScriptDetectionDisabled = false;\n try {\n isTypeScriptDetectionDisabled =\n utilConfigProvider.booleanSelector(process.env, \"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED\", utilConfigProvider.SelectorType.ENV) || false;\n }\n catch { }\n if (isTypeScriptDetectionDisabled) {\n tscVersion = null;\n return undefined;\n }\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : undefined;\n const nodeModulesParentDirs = getNodeModulesParentDirs(dirname);\n let versionFromApp;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const appPackageJsonPath = node_path.join(nodeModulesParentDir, \"package.json\");\n const packageJson = await promises.readFile(appPackageJsonPath, \"utf-8\");\n const { dependencies, devDependencies } = JSON.parse(packageJson);\n const version = devDependencies?.typescript ?? dependencies?.typescript;\n if (typeof version !== \"string\") {\n continue;\n }\n versionFromApp = version;\n break;\n }\n catch {\n }\n }\n if (!versionFromApp) {\n tscVersion = null;\n return undefined;\n }\n let versionFromNodeModules;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const tsPackageJsonPath = node_path.join(nodeModulesParentDir, TS_PACKAGE_JSON);\n const packageJson = await promises.readFile(tsPackageJsonPath, \"utf-8\");\n const { version } = JSON.parse(packageJson);\n const sanitizedVersion = getSanitizedTypeScriptVersion(version);\n if (typeof sanitizedVersion !== \"string\") {\n continue;\n }\n versionFromNodeModules = sanitizedVersion;\n break;\n }\n catch {\n }\n }\n if (versionFromNodeModules) {\n tscVersion = versionFromNodeModules;\n return [\"md/tsc\", tscVersion];\n }\n const sanitizedVersion = getSanitizedDevTypeScriptVersion(versionFromApp);\n if (typeof sanitizedVersion !== \"string\") {\n tscVersion = null;\n return undefined;\n }\n tscVersion = `dev_${sanitizedVersion}`;\n return [\"md/tsc\", tscVersion];\n};\n\nconst crtAvailability = {\n isCrtAvailable: false,\n};\n\nconst isCrtAvailable = () => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n};\n\nconst createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => {\n const runtimeUserAgentPair = getRuntimeUserAgentPair();\n return async (config) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.1\"],\n [`os/${node_os.platform()}`, node_os.release()],\n [\"lang/js\"],\n runtimeUserAgentPair,\n ];\n const typescriptUserAgentPair = await getTypeScriptUserAgentPair();\n if (typescriptUserAgentPair) {\n sections.push(typescriptUserAgentPair);\n }\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (node_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${node_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n};\nconst defaultUserAgent = createDefaultUserAgentProvider;\n\nconst UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nconst UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nconst UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nconst NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED],\n default: middlewareUserAgent.DEFAULT_UA_APP_ID,\n};\n\nexports.NODE_APP_ID_CONFIG_OPTIONS = NODE_APP_ID_CONFIG_OPTIONS;\nexports.UA_APP_ID_ENV_NAME = UA_APP_ID_ENV_NAME;\nexports.UA_APP_ID_INI_NAME = UA_APP_ID_INI_NAME;\nexports.createDefaultUserAgentProvider = createDefaultUserAgentProvider;\nexports.crtAvailability = crtAvailability;\nexports.defaultUserAgent = defaultUserAgent;\n","'use strict';\n\nvar xmlParser = require('./xml-parser');\n\nconst ATTR_ESCAPE_RE = /[&<>\"]/g;\nconst ATTR_ESCAPE_MAP = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n};\nfunction escapeAttribute(value) {\n return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);\n}\n\nconst ELEMENT_ESCAPE_RE = /[&\"'<>\\r\\n\\u0085\\u2028]/g;\nconst ELEMENT_ESCAPE_MAP = {\n \"&\": \"&\",\n '\"': \""\",\n \"'\": \"'\",\n \"<\": \"<\",\n \">\": \">\",\n \"\\r\": \" \",\n \"\\n\": \" \",\n \"\\u0085\": \"…\",\n \"\\u2028\": \"
\",\n};\nfunction escapeElement(value) {\n return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);\n}\n\nclass XmlText {\n value;\n constructor(value) {\n this.value = value;\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n}\n\nclass XmlNode {\n name;\n children;\n attributes = {};\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n n(name) {\n this.name = name;\n return this;\n }\n c(child) {\n this.children.push(child);\n return this;\n }\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`);\n }\n}\n\nexports.parseXML = xmlParser.parseXML;\nexports.XmlNode = XmlNode;\nexports.XmlText = XmlText;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseXML = parseXML;\nconst fast_xml_parser_1 = require(\"fast-xml-parser\");\nconst parser = new fast_xml_parser_1.XMLParser({\n attributeNamePrefix: \"\",\n processEntities: {\n enabled: true,\n maxTotalExpansions: Infinity,\n },\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n maxNestedTags: Infinity,\n});\nparser.addEntity(\"#xD\", \"\\r\");\nparser.addEntity(\"#10\", \"\\n\");\nfunction parseXML(xmlString) {\n return parser.parse(xmlString, true);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCloudControlHttpAuthSchemeProvider = exports.defaultCloudControlHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCloudControlHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCloudControlHttpAuthSchemeParametersProvider = defaultCloudControlHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cloudcontrolapi\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCloudControlHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCloudControlHttpAuthSchemeProvider = defaultCloudControlHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://cloudcontrolapi-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://cloudcontrolapi-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://cloudcontrolapi.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://cloudcontrolapi.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AlreadyExistsException: () => AlreadyExistsException,\n CancelResourceRequestCommand: () => CancelResourceRequestCommand,\n CancelResourceRequestOutputFilterSensitiveLog: () => CancelResourceRequestOutputFilterSensitiveLog,\n ClientTokenConflictException: () => ClientTokenConflictException,\n CloudControl: () => CloudControl,\n CloudControlClient: () => CloudControlClient,\n CloudControlServiceException: () => CloudControlServiceException,\n ConcurrentModificationException: () => ConcurrentModificationException,\n ConcurrentOperationException: () => ConcurrentOperationException,\n CreateResourceCommand: () => CreateResourceCommand,\n CreateResourceInputFilterSensitiveLog: () => CreateResourceInputFilterSensitiveLog,\n CreateResourceOutputFilterSensitiveLog: () => CreateResourceOutputFilterSensitiveLog,\n DeleteResourceCommand: () => DeleteResourceCommand,\n DeleteResourceOutputFilterSensitiveLog: () => DeleteResourceOutputFilterSensitiveLog,\n GeneralServiceException: () => GeneralServiceException,\n GetResourceCommand: () => GetResourceCommand,\n GetResourceOutputFilterSensitiveLog: () => GetResourceOutputFilterSensitiveLog,\n GetResourceRequestStatusCommand: () => GetResourceRequestStatusCommand,\n GetResourceRequestStatusOutputFilterSensitiveLog: () => GetResourceRequestStatusOutputFilterSensitiveLog,\n HandlerErrorCode: () => HandlerErrorCode,\n HandlerFailureException: () => HandlerFailureException,\n HandlerInternalFailureException: () => HandlerInternalFailureException,\n InvalidCredentialsException: () => InvalidCredentialsException,\n InvalidRequestException: () => InvalidRequestException,\n ListResourceRequestsCommand: () => ListResourceRequestsCommand,\n ListResourceRequestsOutputFilterSensitiveLog: () => ListResourceRequestsOutputFilterSensitiveLog,\n ListResourcesCommand: () => ListResourcesCommand,\n ListResourcesInputFilterSensitiveLog: () => ListResourcesInputFilterSensitiveLog,\n ListResourcesOutputFilterSensitiveLog: () => ListResourcesOutputFilterSensitiveLog,\n NetworkFailureException: () => NetworkFailureException,\n NotStabilizedException: () => NotStabilizedException,\n NotUpdatableException: () => NotUpdatableException,\n Operation: () => Operation,\n OperationStatus: () => OperationStatus,\n PrivateTypeException: () => PrivateTypeException,\n ProgressEventFilterSensitiveLog: () => ProgressEventFilterSensitiveLog,\n RequestTokenNotFoundException: () => RequestTokenNotFoundException,\n ResourceConflictException: () => ResourceConflictException,\n ResourceDescriptionFilterSensitiveLog: () => ResourceDescriptionFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ServiceInternalErrorException: () => ServiceInternalErrorException,\n ServiceLimitExceededException: () => ServiceLimitExceededException,\n ThrottlingException: () => ThrottlingException,\n TypeNotFoundException: () => TypeNotFoundException,\n UnsupportedActionException: () => UnsupportedActionException,\n UpdateResourceCommand: () => UpdateResourceCommand,\n UpdateResourceInputFilterSensitiveLog: () => UpdateResourceInputFilterSensitiveLog,\n UpdateResourceOutputFilterSensitiveLog: () => UpdateResourceOutputFilterSensitiveLog,\n __Client: () => import_smithy_client.Client,\n paginateListResourceRequests: () => paginateListResourceRequests,\n paginateListResources: () => paginateListResources,\n waitForResourceRequestSuccess: () => waitForResourceRequestSuccess,\n waitUntilResourceRequestSuccess: () => waitUntilResourceRequestSuccess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CloudControlClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cloudcontrolapi\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CloudControlClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CloudControlClient.ts\nvar CloudControlClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CloudControlClient\");\n }\n /**\n * The resolved configuration of CloudControlClient class. This is resolved and normalized from the {@link CloudControlClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCloudControlHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CloudControl.ts\n\n\n// src/commands/CancelResourceRequestCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/CloudControlServiceException.ts\n\nvar CloudControlServiceException = class _CloudControlServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CloudControlServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CloudControlServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AlreadyExistsException = class _AlreadyExistsException extends CloudControlServiceException {\n static {\n __name(this, \"AlreadyExistsException\");\n }\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HandlerErrorCode = {\n ACCESS_DENIED: \"AccessDenied\",\n ALREADY_EXISTS: \"AlreadyExists\",\n GENERAL_SERVICE_EXCEPTION: \"GeneralServiceException\",\n INTERNAL_FAILURE: \"InternalFailure\",\n INVALID_CREDENTIALS: \"InvalidCredentials\",\n INVALID_REQUEST: \"InvalidRequest\",\n NETWORK_FAILURE: \"NetworkFailure\",\n NOT_FOUND: \"NotFound\",\n NOT_STABILIZED: \"NotStabilized\",\n NOT_UPDATABLE: \"NotUpdatable\",\n RESOURCE_CONFLICT: \"ResourceConflict\",\n SERVICE_INTERNAL_ERROR: \"ServiceInternalError\",\n SERVICE_LIMIT_EXCEEDED: \"ServiceLimitExceeded\",\n SERVICE_TIMEOUT: \"ServiceTimeout\",\n THROTTLING: \"Throttling\",\n UNAUTHORIZED_TAGGING_OPERATION: \"UnauthorizedTaggingOperation\"\n};\nvar Operation = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n UPDATE: \"UPDATE\"\n};\nvar OperationStatus = {\n CANCEL_COMPLETE: \"CANCEL_COMPLETE\",\n CANCEL_IN_PROGRESS: \"CANCEL_IN_PROGRESS\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n SUCCESS: \"SUCCESS\"\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends CloudControlServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RequestTokenNotFoundException = class _RequestTokenNotFoundException extends CloudControlServiceException {\n static {\n __name(this, \"RequestTokenNotFoundException\");\n }\n name = \"RequestTokenNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RequestTokenNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RequestTokenNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ClientTokenConflictException = class _ClientTokenConflictException extends CloudControlServiceException {\n static {\n __name(this, \"ClientTokenConflictException\");\n }\n name = \"ClientTokenConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClientTokenConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClientTokenConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ConcurrentOperationException = class _ConcurrentOperationException extends CloudControlServiceException {\n static {\n __name(this, \"ConcurrentOperationException\");\n }\n name = \"ConcurrentOperationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentOperationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar GeneralServiceException = class _GeneralServiceException extends CloudControlServiceException {\n static {\n __name(this, \"GeneralServiceException\");\n }\n name = \"GeneralServiceException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"GeneralServiceException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _GeneralServiceException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HandlerFailureException = class _HandlerFailureException extends CloudControlServiceException {\n static {\n __name(this, \"HandlerFailureException\");\n }\n name = \"HandlerFailureException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HandlerFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _HandlerFailureException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HandlerInternalFailureException = class _HandlerInternalFailureException extends CloudControlServiceException {\n static {\n __name(this, \"HandlerInternalFailureException\");\n }\n name = \"HandlerInternalFailureException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HandlerInternalFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _HandlerInternalFailureException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidCredentialsException = class _InvalidCredentialsException extends CloudControlServiceException {\n static {\n __name(this, \"InvalidCredentialsException\");\n }\n name = \"InvalidCredentialsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCredentialsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCredentialsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends CloudControlServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NetworkFailureException = class _NetworkFailureException extends CloudControlServiceException {\n static {\n __name(this, \"NetworkFailureException\");\n }\n name = \"NetworkFailureException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NetworkFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _NetworkFailureException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NotStabilizedException = class _NotStabilizedException extends CloudControlServiceException {\n static {\n __name(this, \"NotStabilizedException\");\n }\n name = \"NotStabilizedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotStabilizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotStabilizedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NotUpdatableException = class _NotUpdatableException extends CloudControlServiceException {\n static {\n __name(this, \"NotUpdatableException\");\n }\n name = \"NotUpdatableException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotUpdatableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotUpdatableException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PrivateTypeException = class _PrivateTypeException extends CloudControlServiceException {\n static {\n __name(this, \"PrivateTypeException\");\n }\n name = \"PrivateTypeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PrivateTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PrivateTypeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceConflictException = class _ResourceConflictException extends CloudControlServiceException {\n static {\n __name(this, \"ResourceConflictException\");\n }\n name = \"ResourceConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CloudControlServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceInternalErrorException = class _ServiceInternalErrorException extends CloudControlServiceException {\n static {\n __name(this, \"ServiceInternalErrorException\");\n }\n name = \"ServiceInternalErrorException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceInternalErrorException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceInternalErrorException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceLimitExceededException = class _ServiceLimitExceededException extends CloudControlServiceException {\n static {\n __name(this, \"ServiceLimitExceededException\");\n }\n name = \"ServiceLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ThrottlingException = class _ThrottlingException extends CloudControlServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TypeNotFoundException = class _TypeNotFoundException extends CloudControlServiceException {\n static {\n __name(this, \"TypeNotFoundException\");\n }\n name = \"TypeNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TypeNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TypeNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedActionException = class _UnsupportedActionException extends CloudControlServiceException {\n static {\n __name(this, \"UnsupportedActionException\");\n }\n name = \"UnsupportedActionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedActionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedActionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ProgressEventFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceModel && { ResourceModel: import_smithy_client.SENSITIVE_STRING }\n}), \"ProgressEventFilterSensitiveLog\");\nvar CancelResourceRequestOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"CancelResourceRequestOutputFilterSensitiveLog\");\nvar CreateResourceInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.DesiredState && { DesiredState: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateResourceInputFilterSensitiveLog\");\nvar CreateResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"CreateResourceOutputFilterSensitiveLog\");\nvar DeleteResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"DeleteResourceOutputFilterSensitiveLog\");\nvar ResourceDescriptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Properties && { Properties: import_smithy_client.SENSITIVE_STRING }\n}), \"ResourceDescriptionFilterSensitiveLog\");\nvar GetResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceDescription && {\n ResourceDescription: ResourceDescriptionFilterSensitiveLog(obj.ResourceDescription)\n }\n}), \"GetResourceOutputFilterSensitiveLog\");\nvar GetResourceRequestStatusOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"GetResourceRequestStatusOutputFilterSensitiveLog\");\nvar ListResourceRequestsOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceRequestStatusSummaries && {\n ResourceRequestStatusSummaries: obj.ResourceRequestStatusSummaries.map(\n (item) => ProgressEventFilterSensitiveLog(item)\n )\n }\n}), \"ListResourceRequestsOutputFilterSensitiveLog\");\nvar ListResourcesInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceModel && { ResourceModel: import_smithy_client.SENSITIVE_STRING }\n}), \"ListResourcesInputFilterSensitiveLog\");\nvar ListResourcesOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceDescriptions && {\n ResourceDescriptions: obj.ResourceDescriptions.map((item) => ResourceDescriptionFilterSensitiveLog(item))\n }\n}), \"ListResourcesOutputFilterSensitiveLog\");\nvar UpdateResourceInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PatchDocument && { PatchDocument: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateResourceInputFilterSensitiveLog\");\nvar UpdateResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"UpdateResourceOutputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_0.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\nvar se_CancelResourceRequestCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelResourceRequest\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelResourceRequestCommand\");\nvar se_CreateResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateResource\");\n let body;\n body = JSON.stringify(se_CreateResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateResourceCommand\");\nvar se_DeleteResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResource\");\n let body;\n body = JSON.stringify(se_DeleteResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourceCommand\");\nvar se_GetResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourceCommand\");\nvar se_GetResourceRequestStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourceRequestStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourceRequestStatusCommand\");\nvar se_ListResourceRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceRequests\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceRequestsCommand\");\nvar se_ListResourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResources\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourcesCommand\");\nvar se_UpdateResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateResource\");\n let body;\n body = JSON.stringify(se_UpdateResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateResourceCommand\");\nvar de_CancelResourceRequestCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CancelResourceRequestOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelResourceRequestCommand\");\nvar de_CreateResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateResourceCommand\");\nvar de_DeleteResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourceCommand\");\nvar de_GetResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourceCommand\");\nvar de_GetResourceRequestStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetResourceRequestStatusOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourceRequestStatusCommand\");\nvar de_ListResourceRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListResourceRequestsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceRequestsCommand\");\nvar de_ListResourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourcesCommand\");\nvar de_UpdateResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateResourceCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cloudcontrol#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"RequestTokenNotFoundException\":\n case \"com.amazonaws.cloudcontrol#RequestTokenNotFoundException\":\n throw await de_RequestTokenNotFoundExceptionRes(parsedOutput, context);\n case \"AlreadyExistsException\":\n case \"com.amazonaws.cloudcontrol#AlreadyExistsException\":\n throw await de_AlreadyExistsExceptionRes(parsedOutput, context);\n case \"ClientTokenConflictException\":\n case \"com.amazonaws.cloudcontrol#ClientTokenConflictException\":\n throw await de_ClientTokenConflictExceptionRes(parsedOutput, context);\n case \"ConcurrentOperationException\":\n case \"com.amazonaws.cloudcontrol#ConcurrentOperationException\":\n throw await de_ConcurrentOperationExceptionRes(parsedOutput, context);\n case \"GeneralServiceException\":\n case \"com.amazonaws.cloudcontrol#GeneralServiceException\":\n throw await de_GeneralServiceExceptionRes(parsedOutput, context);\n case \"HandlerFailureException\":\n case \"com.amazonaws.cloudcontrol#HandlerFailureException\":\n throw await de_HandlerFailureExceptionRes(parsedOutput, context);\n case \"HandlerInternalFailureException\":\n case \"com.amazonaws.cloudcontrol#HandlerInternalFailureException\":\n throw await de_HandlerInternalFailureExceptionRes(parsedOutput, context);\n case \"InvalidCredentialsException\":\n case \"com.amazonaws.cloudcontrol#InvalidCredentialsException\":\n throw await de_InvalidCredentialsExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.cloudcontrol#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"NetworkFailureException\":\n case \"com.amazonaws.cloudcontrol#NetworkFailureException\":\n throw await de_NetworkFailureExceptionRes(parsedOutput, context);\n case \"NotStabilizedException\":\n case \"com.amazonaws.cloudcontrol#NotStabilizedException\":\n throw await de_NotStabilizedExceptionRes(parsedOutput, context);\n case \"NotUpdatableException\":\n case \"com.amazonaws.cloudcontrol#NotUpdatableException\":\n throw await de_NotUpdatableExceptionRes(parsedOutput, context);\n case \"PrivateTypeException\":\n case \"com.amazonaws.cloudcontrol#PrivateTypeException\":\n throw await de_PrivateTypeExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cloudcontrol#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cloudcontrol#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ServiceInternalErrorException\":\n case \"com.amazonaws.cloudcontrol#ServiceInternalErrorException\":\n throw await de_ServiceInternalErrorExceptionRes(parsedOutput, context);\n case \"ServiceLimitExceededException\":\n case \"com.amazonaws.cloudcontrol#ServiceLimitExceededException\":\n throw await de_ServiceLimitExceededExceptionRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.cloudcontrol#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"TypeNotFoundException\":\n case \"com.amazonaws.cloudcontrol#TypeNotFoundException\":\n throw await de_TypeNotFoundExceptionRes(parsedOutput, context);\n case \"UnsupportedActionException\":\n case \"com.amazonaws.cloudcontrol#UnsupportedActionException\":\n throw await de_UnsupportedActionExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AlreadyExistsExceptionRes\");\nvar de_ClientTokenConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClientTokenConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClientTokenConflictExceptionRes\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_ConcurrentOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConcurrentOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentOperationExceptionRes\");\nvar de_GeneralServiceExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new GeneralServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_GeneralServiceExceptionRes\");\nvar de_HandlerFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HandlerFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HandlerFailureExceptionRes\");\nvar de_HandlerInternalFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HandlerInternalFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HandlerInternalFailureExceptionRes\");\nvar de_InvalidCredentialsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidCredentialsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCredentialsExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_NetworkFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NetworkFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NetworkFailureExceptionRes\");\nvar de_NotStabilizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotStabilizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotStabilizedExceptionRes\");\nvar de_NotUpdatableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotUpdatableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotUpdatableExceptionRes\");\nvar de_PrivateTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PrivateTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PrivateTypeExceptionRes\");\nvar de_RequestTokenNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RequestTokenNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RequestTokenNotFoundExceptionRes\");\nvar de_ResourceConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceConflictExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ServiceInternalErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceInternalErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceInternalErrorExceptionRes\");\nvar de_ServiceLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceLimitExceededExceptionRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TypeNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TypeNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TypeNotFoundExceptionRes\");\nvar de_UnsupportedActionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedActionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedActionExceptionRes\");\nvar se_CreateResourceInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n DesiredState: [],\n RoleArn: [],\n TypeName: [],\n TypeVersionId: []\n });\n}, \"se_CreateResourceInput\");\nvar se_DeleteResourceInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Identifier: [],\n RoleArn: [],\n TypeName: [],\n TypeVersionId: []\n });\n}, \"se_DeleteResourceInput\");\nvar se_UpdateResourceInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Identifier: [],\n PatchDocument: [],\n RoleArn: [],\n TypeName: [],\n TypeVersionId: []\n });\n}, \"se_UpdateResourceInput\");\nvar de_CancelResourceRequestOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_CancelResourceRequestOutput\");\nvar de_CreateResourceOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_CreateResourceOutput\");\nvar de_DeleteResourceOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_DeleteResourceOutput\");\nvar de_GetResourceRequestStatusOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n HooksProgressEvent: /* @__PURE__ */ __name((_) => de_HooksProgressEvent(_, context), \"HooksProgressEvent\"),\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_GetResourceRequestStatusOutput\");\nvar de_HookProgressEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n FailureMode: import_smithy_client.expectString,\n HookEventTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"HookEventTime\"),\n HookStatus: import_smithy_client.expectString,\n HookStatusMessage: import_smithy_client.expectString,\n HookTypeArn: import_smithy_client.expectString,\n HookTypeName: import_smithy_client.expectString,\n HookTypeVersionId: import_smithy_client.expectString,\n InvocationPoint: import_smithy_client.expectString\n });\n}, \"de_HookProgressEvent\");\nvar de_HooksProgressEvent = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_HookProgressEvent(entry, context);\n });\n return retVal;\n}, \"de_HooksProgressEvent\");\nvar de_ListResourceRequestsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n ResourceRequestStatusSummaries: /* @__PURE__ */ __name((_) => de_ResourceRequestStatusSummaries(_, context), \"ResourceRequestStatusSummaries\")\n });\n}, \"de_ListResourceRequestsOutput\");\nvar de_ProgressEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ErrorCode: import_smithy_client.expectString,\n EventTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EventTime\"),\n HooksRequestToken: import_smithy_client.expectString,\n Identifier: import_smithy_client.expectString,\n Operation: import_smithy_client.expectString,\n OperationStatus: import_smithy_client.expectString,\n RequestToken: import_smithy_client.expectString,\n ResourceModel: import_smithy_client.expectString,\n RetryAfter: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RetryAfter\"),\n StatusMessage: import_smithy_client.expectString,\n TypeName: import_smithy_client.expectString\n });\n}, \"de_ProgressEvent\");\nvar de_ResourceRequestStatusSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ProgressEvent(entry, context);\n });\n return retVal;\n}, \"de_ResourceRequestStatusSummaries\");\nvar de_UpdateResourceOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_UpdateResourceOutput\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CloudControlServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.0\",\n \"x-amz-target\": `CloudApiService.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CancelResourceRequestCommand.ts\nvar CancelResourceRequestCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"CancelResourceRequest\", {}).n(\"CloudControlClient\", \"CancelResourceRequestCommand\").f(void 0, CancelResourceRequestOutputFilterSensitiveLog).ser(se_CancelResourceRequestCommand).de(de_CancelResourceRequestCommand).build() {\n static {\n __name(this, \"CancelResourceRequestCommand\");\n }\n};\n\n// src/commands/CreateResourceCommand.ts\n\n\n\nvar CreateResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"CreateResource\", {}).n(\"CloudControlClient\", \"CreateResourceCommand\").f(CreateResourceInputFilterSensitiveLog, CreateResourceOutputFilterSensitiveLog).ser(se_CreateResourceCommand).de(de_CreateResourceCommand).build() {\n static {\n __name(this, \"CreateResourceCommand\");\n }\n};\n\n// src/commands/DeleteResourceCommand.ts\n\n\n\nvar DeleteResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"DeleteResource\", {}).n(\"CloudControlClient\", \"DeleteResourceCommand\").f(void 0, DeleteResourceOutputFilterSensitiveLog).ser(se_DeleteResourceCommand).de(de_DeleteResourceCommand).build() {\n static {\n __name(this, \"DeleteResourceCommand\");\n }\n};\n\n// src/commands/GetResourceCommand.ts\n\n\n\nvar GetResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"GetResource\", {}).n(\"CloudControlClient\", \"GetResourceCommand\").f(void 0, GetResourceOutputFilterSensitiveLog).ser(se_GetResourceCommand).de(de_GetResourceCommand).build() {\n static {\n __name(this, \"GetResourceCommand\");\n }\n};\n\n// src/commands/GetResourceRequestStatusCommand.ts\n\n\n\nvar GetResourceRequestStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"GetResourceRequestStatus\", {}).n(\"CloudControlClient\", \"GetResourceRequestStatusCommand\").f(void 0, GetResourceRequestStatusOutputFilterSensitiveLog).ser(se_GetResourceRequestStatusCommand).de(de_GetResourceRequestStatusCommand).build() {\n static {\n __name(this, \"GetResourceRequestStatusCommand\");\n }\n};\n\n// src/commands/ListResourceRequestsCommand.ts\n\n\n\nvar ListResourceRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"ListResourceRequests\", {}).n(\"CloudControlClient\", \"ListResourceRequestsCommand\").f(void 0, ListResourceRequestsOutputFilterSensitiveLog).ser(se_ListResourceRequestsCommand).de(de_ListResourceRequestsCommand).build() {\n static {\n __name(this, \"ListResourceRequestsCommand\");\n }\n};\n\n// src/commands/ListResourcesCommand.ts\n\n\n\nvar ListResourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"ListResources\", {}).n(\"CloudControlClient\", \"ListResourcesCommand\").f(ListResourcesInputFilterSensitiveLog, ListResourcesOutputFilterSensitiveLog).ser(se_ListResourcesCommand).de(de_ListResourcesCommand).build() {\n static {\n __name(this, \"ListResourcesCommand\");\n }\n};\n\n// src/commands/UpdateResourceCommand.ts\n\n\n\nvar UpdateResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"UpdateResource\", {}).n(\"CloudControlClient\", \"UpdateResourceCommand\").f(UpdateResourceInputFilterSensitiveLog, UpdateResourceOutputFilterSensitiveLog).ser(se_UpdateResourceCommand).de(de_UpdateResourceCommand).build() {\n static {\n __name(this, \"UpdateResourceCommand\");\n }\n};\n\n// src/CloudControl.ts\nvar commands = {\n CancelResourceRequestCommand,\n CreateResourceCommand,\n DeleteResourceCommand,\n GetResourceCommand,\n GetResourceRequestStatusCommand,\n ListResourceRequestsCommand,\n ListResourcesCommand,\n UpdateResourceCommand\n};\nvar CloudControl = class extends CloudControlClient {\n static {\n __name(this, \"CloudControl\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CloudControl);\n\n// src/pagination/ListResourceRequestsPaginator.ts\n\nvar paginateListResourceRequests = (0, import_core.createPaginator)(CloudControlClient, ListResourceRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListResourcesPaginator.ts\n\nvar paginateListResources = (0, import_core.createPaginator)(CloudControlClient, ListResourcesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForResourceRequestSuccess.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetResourceRequestStatusCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ProgressEvent.OperationStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"SUCCESS\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ProgressEvent.OperationStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"FAILED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ProgressEvent.OperationStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"CANCEL_COMPLETE\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForResourceRequestSuccess = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForResourceRequestSuccess\");\nvar waitUntilResourceRequestSuccess = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilResourceRequestSuccess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CloudControlServiceException,\n __Client,\n CloudControlClient,\n CloudControl,\n $Command,\n CancelResourceRequestCommand,\n CreateResourceCommand,\n DeleteResourceCommand,\n GetResourceCommand,\n GetResourceRequestStatusCommand,\n ListResourceRequestsCommand,\n ListResourcesCommand,\n UpdateResourceCommand,\n paginateListResourceRequests,\n paginateListResources,\n waitForResourceRequestSuccess,\n waitUntilResourceRequestSuccess,\n AlreadyExistsException,\n HandlerErrorCode,\n Operation,\n OperationStatus,\n ConcurrentModificationException,\n RequestTokenNotFoundException,\n ClientTokenConflictException,\n ConcurrentOperationException,\n GeneralServiceException,\n HandlerFailureException,\n HandlerInternalFailureException,\n InvalidCredentialsException,\n InvalidRequestException,\n NetworkFailureException,\n NotStabilizedException,\n NotUpdatableException,\n PrivateTypeException,\n ResourceConflictException,\n ResourceNotFoundException,\n ServiceInternalErrorException,\n ServiceLimitExceededException,\n ThrottlingException,\n TypeNotFoundException,\n UnsupportedActionException,\n ProgressEventFilterSensitiveLog,\n CancelResourceRequestOutputFilterSensitiveLog,\n CreateResourceInputFilterSensitiveLog,\n CreateResourceOutputFilterSensitiveLog,\n DeleteResourceOutputFilterSensitiveLog,\n ResourceDescriptionFilterSensitiveLog,\n GetResourceOutputFilterSensitiveLog,\n GetResourceRequestStatusOutputFilterSensitiveLog,\n ListResourceRequestsOutputFilterSensitiveLog,\n ListResourcesInputFilterSensitiveLog,\n ListResourcesOutputFilterSensitiveLog,\n UpdateResourceInputFilterSensitiveLog,\n UpdateResourceOutputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2021-09-30\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCloudControlHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"CloudControl\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCloudFormationHttpAuthSchemeProvider = exports.defaultCloudFormationHttpAuthSchemeParametersProvider = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCloudFormationHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: await (0, util_middleware_1.normalizeProvider)(config.region)() || (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCloudFormationHttpAuthSchemeParametersProvider = defaultCloudFormationHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cloudformation\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCloudFormationHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCloudFormationHttpAuthSchemeProvider = defaultCloudFormationHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, httpAuthSchemes_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bdd = void 0;\nconst util_endpoints_1 = require(\"@smithy/util-endpoints\");\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]],\n [\"stringEquals\", [{ fn: f, argv: [h, \"name\"] }, \"aws-us-gov\"]]\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://cloudformation.{Region}.amazonaws.com\", i],\n [\"https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://cloudformation.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"]\n ]\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1, 1, -1,\n 0, 13, 3,\n 1, 4, r + 12,\n 2, 5, r + 12,\n 3, 8, 6,\n 4, 7, r + 11,\n 5, r + 9, r + 10,\n 4, 11, 9,\n 6, 10, r + 8,\n 7, r + 6, r + 7,\n 5, 12, r + 5,\n 6, r + 4, r + 5,\n 3, r + 1, 14,\n 4, r + 2, r + 3,\n]);\nexports.bdd = util_endpoints_1.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst bdd_1 = require(\"./bdd\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.decideEndpoint)(bdd_1.bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","'use strict';\n\nvar middlewareHostHeader = require('@aws-sdk/middleware-host-header');\nvar middlewareLogger = require('@aws-sdk/middleware-logger');\nvar middlewareRecursionDetection = require('@aws-sdk/middleware-recursion-detection');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\nvar configResolver = require('@smithy/config-resolver');\nvar core = require('@smithy/core');\nvar schema = require('@smithy/core/schema');\nvar middlewareContentLength = require('@smithy/middleware-content-length');\nvar middlewareEndpoint = require('@smithy/middleware-endpoint');\nvar middlewareRetry = require('@smithy/middleware-retry');\nvar smithyClient = require('@smithy/smithy-client');\nvar httpAuthSchemeProvider = require('./auth/httpAuthSchemeProvider');\nvar runtimeConfig = require('./runtimeConfig');\nvar regionConfigResolver = require('@aws-sdk/region-config-resolver');\nvar protocolHttp = require('@smithy/protocol-http');\nvar schemas_0 = require('./schemas/schemas_0');\nvar utilWaiter = require('@smithy/util-waiter');\nvar errors = require('./models/errors');\nvar CloudFormationServiceException = require('./models/CloudFormationServiceException');\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cloudformation\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(regionConfigResolver.getAwsRegionExtensionConfiguration(runtimeConfig), smithyClient.getDefaultExtensionConfiguration(runtimeConfig), protocolHttp.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, regionConfigResolver.resolveAwsRegionExtensionConfiguration(extensionConfiguration), smithyClient.resolveDefaultRuntimeConfig(extensionConfiguration), protocolHttp.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass CloudFormationClient extends smithyClient.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = runtimeConfig.getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = middlewareUserAgent.resolveUserAgentConfig(_config_1);\n const _config_3 = middlewareRetry.resolveRetryConfig(_config_2);\n const _config_4 = configResolver.resolveRegionConfig(_config_3);\n const _config_5 = middlewareHostHeader.resolveHostHeaderConfig(_config_4);\n const _config_6 = middlewareEndpoint.resolveEndpointConfig(_config_5);\n const _config_7 = httpAuthSchemeProvider.resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(middlewareUserAgent.getUserAgentPlugin(this.config));\n this.middlewareStack.use(middlewareRetry.getRetryPlugin(this.config));\n this.middlewareStack.use(middlewareContentLength.getContentLengthPlugin(this.config));\n this.middlewareStack.use(middlewareHostHeader.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(middlewareLogger.getLoggerPlugin(this.config));\n this.middlewareStack.use(middlewareRecursionDetection.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider.defaultCloudFormationHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass ActivateOrganizationsAccessCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ActivateOrganizationsAccess\", {})\n .n(\"CloudFormationClient\", \"ActivateOrganizationsAccessCommand\")\n .sc(schemas_0.ActivateOrganizationsAccess$)\n .build() {\n}\n\nclass ActivateTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ActivateType\", {})\n .n(\"CloudFormationClient\", \"ActivateTypeCommand\")\n .sc(schemas_0.ActivateType$)\n .build() {\n}\n\nclass BatchDescribeTypeConfigurationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"BatchDescribeTypeConfigurations\", {})\n .n(\"CloudFormationClient\", \"BatchDescribeTypeConfigurationsCommand\")\n .sc(schemas_0.BatchDescribeTypeConfigurations$)\n .build() {\n}\n\nclass CancelUpdateStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CancelUpdateStack\", {})\n .n(\"CloudFormationClient\", \"CancelUpdateStackCommand\")\n .sc(schemas_0.CancelUpdateStack$)\n .build() {\n}\n\nclass ContinueUpdateRollbackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ContinueUpdateRollback\", {})\n .n(\"CloudFormationClient\", \"ContinueUpdateRollbackCommand\")\n .sc(schemas_0.ContinueUpdateRollback$)\n .build() {\n}\n\nclass CreateChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateChangeSet\", {})\n .n(\"CloudFormationClient\", \"CreateChangeSetCommand\")\n .sc(schemas_0.CreateChangeSet$)\n .build() {\n}\n\nclass CreateGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"CreateGeneratedTemplateCommand\")\n .sc(schemas_0.CreateGeneratedTemplate$)\n .build() {\n}\n\nclass CreateStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStack\", {})\n .n(\"CloudFormationClient\", \"CreateStackCommand\")\n .sc(schemas_0.CreateStack$)\n .build() {\n}\n\nclass CreateStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStackInstances\", {})\n .n(\"CloudFormationClient\", \"CreateStackInstancesCommand\")\n .sc(schemas_0.CreateStackInstances$)\n .build() {\n}\n\nclass CreateStackRefactorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStackRefactor\", {})\n .n(\"CloudFormationClient\", \"CreateStackRefactorCommand\")\n .sc(schemas_0.CreateStackRefactor$)\n .build() {\n}\n\nclass CreateStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStackSet\", {})\n .n(\"CloudFormationClient\", \"CreateStackSetCommand\")\n .sc(schemas_0.CreateStackSet$)\n .build() {\n}\n\nclass DeactivateOrganizationsAccessCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeactivateOrganizationsAccess\", {})\n .n(\"CloudFormationClient\", \"DeactivateOrganizationsAccessCommand\")\n .sc(schemas_0.DeactivateOrganizationsAccess$)\n .build() {\n}\n\nclass DeactivateTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeactivateType\", {})\n .n(\"CloudFormationClient\", \"DeactivateTypeCommand\")\n .sc(schemas_0.DeactivateType$)\n .build() {\n}\n\nclass DeleteChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteChangeSet\", {})\n .n(\"CloudFormationClient\", \"DeleteChangeSetCommand\")\n .sc(schemas_0.DeleteChangeSet$)\n .build() {\n}\n\nclass DeleteGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"DeleteGeneratedTemplateCommand\")\n .sc(schemas_0.DeleteGeneratedTemplate$)\n .build() {\n}\n\nclass DeleteStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteStack\", {})\n .n(\"CloudFormationClient\", \"DeleteStackCommand\")\n .sc(schemas_0.DeleteStack$)\n .build() {\n}\n\nclass DeleteStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteStackInstances\", {})\n .n(\"CloudFormationClient\", \"DeleteStackInstancesCommand\")\n .sc(schemas_0.DeleteStackInstances$)\n .build() {\n}\n\nclass DeleteStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteStackSet\", {})\n .n(\"CloudFormationClient\", \"DeleteStackSetCommand\")\n .sc(schemas_0.DeleteStackSet$)\n .build() {\n}\n\nclass DeregisterTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeregisterType\", {})\n .n(\"CloudFormationClient\", \"DeregisterTypeCommand\")\n .sc(schemas_0.DeregisterType$)\n .build() {\n}\n\nclass DescribeAccountLimitsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeAccountLimits\", {})\n .n(\"CloudFormationClient\", \"DescribeAccountLimitsCommand\")\n .sc(schemas_0.DescribeAccountLimits$)\n .build() {\n}\n\nclass DescribeChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeChangeSet\", {})\n .n(\"CloudFormationClient\", \"DescribeChangeSetCommand\")\n .sc(schemas_0.DescribeChangeSet$)\n .build() {\n}\n\nclass DescribeChangeSetHooksCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeChangeSetHooks\", {})\n .n(\"CloudFormationClient\", \"DescribeChangeSetHooksCommand\")\n .sc(schemas_0.DescribeChangeSetHooks$)\n .build() {\n}\n\nclass DescribeEventsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeEvents\", {})\n .n(\"CloudFormationClient\", \"DescribeEventsCommand\")\n .sc(schemas_0.DescribeEvents$)\n .build() {\n}\n\nclass DescribeGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"DescribeGeneratedTemplateCommand\")\n .sc(schemas_0.DescribeGeneratedTemplate$)\n .build() {\n}\n\nclass DescribeOrganizationsAccessCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeOrganizationsAccess\", {})\n .n(\"CloudFormationClient\", \"DescribeOrganizationsAccessCommand\")\n .sc(schemas_0.DescribeOrganizationsAccess$)\n .build() {\n}\n\nclass DescribePublisherCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribePublisher\", {})\n .n(\"CloudFormationClient\", \"DescribePublisherCommand\")\n .sc(schemas_0.DescribePublisher$)\n .build() {\n}\n\nclass DescribeResourceScanCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeResourceScan\", {})\n .n(\"CloudFormationClient\", \"DescribeResourceScanCommand\")\n .sc(schemas_0.DescribeResourceScan$)\n .build() {\n}\n\nclass DescribeStackDriftDetectionStatusCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackDriftDetectionStatus\", {})\n .n(\"CloudFormationClient\", \"DescribeStackDriftDetectionStatusCommand\")\n .sc(schemas_0.DescribeStackDriftDetectionStatus$)\n .build() {\n}\n\nclass DescribeStackEventsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackEvents\", {})\n .n(\"CloudFormationClient\", \"DescribeStackEventsCommand\")\n .sc(schemas_0.DescribeStackEvents$)\n .build() {\n}\n\nclass DescribeStackInstanceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackInstance\", {})\n .n(\"CloudFormationClient\", \"DescribeStackInstanceCommand\")\n .sc(schemas_0.DescribeStackInstance$)\n .build() {\n}\n\nclass DescribeStackRefactorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackRefactor\", {})\n .n(\"CloudFormationClient\", \"DescribeStackRefactorCommand\")\n .sc(schemas_0.DescribeStackRefactor$)\n .build() {\n}\n\nclass DescribeStackResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackResource\", {})\n .n(\"CloudFormationClient\", \"DescribeStackResourceCommand\")\n .sc(schemas_0.DescribeStackResource$)\n .build() {\n}\n\nclass DescribeStackResourceDriftsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackResourceDrifts\", {})\n .n(\"CloudFormationClient\", \"DescribeStackResourceDriftsCommand\")\n .sc(schemas_0.DescribeStackResourceDrifts$)\n .build() {\n}\n\nclass DescribeStackResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackResources\", {})\n .n(\"CloudFormationClient\", \"DescribeStackResourcesCommand\")\n .sc(schemas_0.DescribeStackResources$)\n .build() {\n}\n\nclass DescribeStacksCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStacks\", {})\n .n(\"CloudFormationClient\", \"DescribeStacksCommand\")\n .sc(schemas_0.DescribeStacks$)\n .build() {\n}\n\nclass DescribeStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackSet\", {})\n .n(\"CloudFormationClient\", \"DescribeStackSetCommand\")\n .sc(schemas_0.DescribeStackSet$)\n .build() {\n}\n\nclass DescribeStackSetOperationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackSetOperation\", {})\n .n(\"CloudFormationClient\", \"DescribeStackSetOperationCommand\")\n .sc(schemas_0.DescribeStackSetOperation$)\n .build() {\n}\n\nclass DescribeTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeType\", {})\n .n(\"CloudFormationClient\", \"DescribeTypeCommand\")\n .sc(schemas_0.DescribeType$)\n .build() {\n}\n\nclass DescribeTypeRegistrationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeTypeRegistration\", {})\n .n(\"CloudFormationClient\", \"DescribeTypeRegistrationCommand\")\n .sc(schemas_0.DescribeTypeRegistration$)\n .build() {\n}\n\nclass DetectStackDriftCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DetectStackDrift\", {})\n .n(\"CloudFormationClient\", \"DetectStackDriftCommand\")\n .sc(schemas_0.DetectStackDrift$)\n .build() {\n}\n\nclass DetectStackResourceDriftCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DetectStackResourceDrift\", {})\n .n(\"CloudFormationClient\", \"DetectStackResourceDriftCommand\")\n .sc(schemas_0.DetectStackResourceDrift$)\n .build() {\n}\n\nclass DetectStackSetDriftCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DetectStackSetDrift\", {})\n .n(\"CloudFormationClient\", \"DetectStackSetDriftCommand\")\n .sc(schemas_0.DetectStackSetDrift$)\n .build() {\n}\n\nclass EstimateTemplateCostCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"EstimateTemplateCost\", {})\n .n(\"CloudFormationClient\", \"EstimateTemplateCostCommand\")\n .sc(schemas_0.EstimateTemplateCost$)\n .build() {\n}\n\nclass ExecuteChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ExecuteChangeSet\", {})\n .n(\"CloudFormationClient\", \"ExecuteChangeSetCommand\")\n .sc(schemas_0.ExecuteChangeSet$)\n .build() {\n}\n\nclass ExecuteStackRefactorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ExecuteStackRefactor\", {})\n .n(\"CloudFormationClient\", \"ExecuteStackRefactorCommand\")\n .sc(schemas_0.ExecuteStackRefactor$)\n .build() {\n}\n\nclass GetGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"GetGeneratedTemplateCommand\")\n .sc(schemas_0.GetGeneratedTemplate$)\n .build() {\n}\n\nclass GetHookResultCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetHookResult\", {})\n .n(\"CloudFormationClient\", \"GetHookResultCommand\")\n .sc(schemas_0.GetHookResult$)\n .build() {\n}\n\nclass GetStackPolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetStackPolicy\", {})\n .n(\"CloudFormationClient\", \"GetStackPolicyCommand\")\n .sc(schemas_0.GetStackPolicy$)\n .build() {\n}\n\nclass GetTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetTemplate\", {})\n .n(\"CloudFormationClient\", \"GetTemplateCommand\")\n .sc(schemas_0.GetTemplate$)\n .build() {\n}\n\nclass GetTemplateSummaryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetTemplateSummary\", {})\n .n(\"CloudFormationClient\", \"GetTemplateSummaryCommand\")\n .sc(schemas_0.GetTemplateSummary$)\n .build() {\n}\n\nclass ImportStacksToStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ImportStacksToStackSet\", {})\n .n(\"CloudFormationClient\", \"ImportStacksToStackSetCommand\")\n .sc(schemas_0.ImportStacksToStackSet$)\n .build() {\n}\n\nclass ListChangeSetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListChangeSets\", {})\n .n(\"CloudFormationClient\", \"ListChangeSetsCommand\")\n .sc(schemas_0.ListChangeSets$)\n .build() {\n}\n\nclass ListExportsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListExports\", {})\n .n(\"CloudFormationClient\", \"ListExportsCommand\")\n .sc(schemas_0.ListExports$)\n .build() {\n}\n\nclass ListGeneratedTemplatesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListGeneratedTemplates\", {})\n .n(\"CloudFormationClient\", \"ListGeneratedTemplatesCommand\")\n .sc(schemas_0.ListGeneratedTemplates$)\n .build() {\n}\n\nclass ListHookResultsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListHookResults\", {})\n .n(\"CloudFormationClient\", \"ListHookResultsCommand\")\n .sc(schemas_0.ListHookResults$)\n .build() {\n}\n\nclass ListImportsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListImports\", {})\n .n(\"CloudFormationClient\", \"ListImportsCommand\")\n .sc(schemas_0.ListImports$)\n .build() {\n}\n\nclass ListResourceScanRelatedResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListResourceScanRelatedResources\", {})\n .n(\"CloudFormationClient\", \"ListResourceScanRelatedResourcesCommand\")\n .sc(schemas_0.ListResourceScanRelatedResources$)\n .build() {\n}\n\nclass ListResourceScanResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListResourceScanResources\", {})\n .n(\"CloudFormationClient\", \"ListResourceScanResourcesCommand\")\n .sc(schemas_0.ListResourceScanResources$)\n .build() {\n}\n\nclass ListResourceScansCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListResourceScans\", {})\n .n(\"CloudFormationClient\", \"ListResourceScansCommand\")\n .sc(schemas_0.ListResourceScans$)\n .build() {\n}\n\nclass ListStackInstanceResourceDriftsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackInstanceResourceDrifts\", {})\n .n(\"CloudFormationClient\", \"ListStackInstanceResourceDriftsCommand\")\n .sc(schemas_0.ListStackInstanceResourceDrifts$)\n .build() {\n}\n\nclass ListStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackInstances\", {})\n .n(\"CloudFormationClient\", \"ListStackInstancesCommand\")\n .sc(schemas_0.ListStackInstances$)\n .build() {\n}\n\nclass ListStackRefactorActionsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackRefactorActions\", {})\n .n(\"CloudFormationClient\", \"ListStackRefactorActionsCommand\")\n .sc(schemas_0.ListStackRefactorActions$)\n .build() {\n}\n\nclass ListStackRefactorsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackRefactors\", {})\n .n(\"CloudFormationClient\", \"ListStackRefactorsCommand\")\n .sc(schemas_0.ListStackRefactors$)\n .build() {\n}\n\nclass ListStackResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackResources\", {})\n .n(\"CloudFormationClient\", \"ListStackResourcesCommand\")\n .sc(schemas_0.ListStackResources$)\n .build() {\n}\n\nclass ListStacksCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStacks\", {})\n .n(\"CloudFormationClient\", \"ListStacksCommand\")\n .sc(schemas_0.ListStacks$)\n .build() {\n}\n\nclass ListStackSetAutoDeploymentTargetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSetAutoDeploymentTargets\", {})\n .n(\"CloudFormationClient\", \"ListStackSetAutoDeploymentTargetsCommand\")\n .sc(schemas_0.ListStackSetAutoDeploymentTargets$)\n .build() {\n}\n\nclass ListStackSetOperationResultsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSetOperationResults\", {})\n .n(\"CloudFormationClient\", \"ListStackSetOperationResultsCommand\")\n .sc(schemas_0.ListStackSetOperationResults$)\n .build() {\n}\n\nclass ListStackSetOperationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSetOperations\", {})\n .n(\"CloudFormationClient\", \"ListStackSetOperationsCommand\")\n .sc(schemas_0.ListStackSetOperations$)\n .build() {\n}\n\nclass ListStackSetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSets\", {})\n .n(\"CloudFormationClient\", \"ListStackSetsCommand\")\n .sc(schemas_0.ListStackSets$)\n .build() {\n}\n\nclass ListTypeRegistrationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListTypeRegistrations\", {})\n .n(\"CloudFormationClient\", \"ListTypeRegistrationsCommand\")\n .sc(schemas_0.ListTypeRegistrations$)\n .build() {\n}\n\nclass ListTypesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListTypes\", {})\n .n(\"CloudFormationClient\", \"ListTypesCommand\")\n .sc(schemas_0.ListTypes$)\n .build() {\n}\n\nclass ListTypeVersionsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListTypeVersions\", {})\n .n(\"CloudFormationClient\", \"ListTypeVersionsCommand\")\n .sc(schemas_0.ListTypeVersions$)\n .build() {\n}\n\nclass PublishTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"PublishType\", {})\n .n(\"CloudFormationClient\", \"PublishTypeCommand\")\n .sc(schemas_0.PublishType$)\n .build() {\n}\n\nclass RecordHandlerProgressCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RecordHandlerProgress\", {})\n .n(\"CloudFormationClient\", \"RecordHandlerProgressCommand\")\n .sc(schemas_0.RecordHandlerProgress$)\n .build() {\n}\n\nclass RegisterPublisherCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RegisterPublisher\", {})\n .n(\"CloudFormationClient\", \"RegisterPublisherCommand\")\n .sc(schemas_0.RegisterPublisher$)\n .build() {\n}\n\nclass RegisterTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RegisterType\", {})\n .n(\"CloudFormationClient\", \"RegisterTypeCommand\")\n .sc(schemas_0.RegisterType$)\n .build() {\n}\n\nclass RollbackStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RollbackStack\", {})\n .n(\"CloudFormationClient\", \"RollbackStackCommand\")\n .sc(schemas_0.RollbackStack$)\n .build() {\n}\n\nclass SetStackPolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SetStackPolicy\", {})\n .n(\"CloudFormationClient\", \"SetStackPolicyCommand\")\n .sc(schemas_0.SetStackPolicy$)\n .build() {\n}\n\nclass SetTypeConfigurationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SetTypeConfiguration\", {})\n .n(\"CloudFormationClient\", \"SetTypeConfigurationCommand\")\n .sc(schemas_0.SetTypeConfiguration$)\n .build() {\n}\n\nclass SetTypeDefaultVersionCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SetTypeDefaultVersion\", {})\n .n(\"CloudFormationClient\", \"SetTypeDefaultVersionCommand\")\n .sc(schemas_0.SetTypeDefaultVersion$)\n .build() {\n}\n\nclass SignalResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SignalResource\", {})\n .n(\"CloudFormationClient\", \"SignalResourceCommand\")\n .sc(schemas_0.SignalResource$)\n .build() {\n}\n\nclass StartResourceScanCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"StartResourceScan\", {})\n .n(\"CloudFormationClient\", \"StartResourceScanCommand\")\n .sc(schemas_0.StartResourceScan$)\n .build() {\n}\n\nclass StopStackSetOperationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"StopStackSetOperation\", {})\n .n(\"CloudFormationClient\", \"StopStackSetOperationCommand\")\n .sc(schemas_0.StopStackSetOperation$)\n .build() {\n}\n\nclass TestTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"TestType\", {})\n .n(\"CloudFormationClient\", \"TestTypeCommand\")\n .sc(schemas_0.TestType$)\n .build() {\n}\n\nclass UpdateGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"UpdateGeneratedTemplateCommand\")\n .sc(schemas_0.UpdateGeneratedTemplate$)\n .build() {\n}\n\nclass UpdateStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateStack\", {})\n .n(\"CloudFormationClient\", \"UpdateStackCommand\")\n .sc(schemas_0.UpdateStack$)\n .build() {\n}\n\nclass UpdateStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateStackInstances\", {})\n .n(\"CloudFormationClient\", \"UpdateStackInstancesCommand\")\n .sc(schemas_0.UpdateStackInstances$)\n .build() {\n}\n\nclass UpdateStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateStackSet\", {})\n .n(\"CloudFormationClient\", \"UpdateStackSetCommand\")\n .sc(schemas_0.UpdateStackSet$)\n .build() {\n}\n\nclass UpdateTerminationProtectionCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateTerminationProtection\", {})\n .n(\"CloudFormationClient\", \"UpdateTerminationProtectionCommand\")\n .sc(schemas_0.UpdateTerminationProtection$)\n .build() {\n}\n\nclass ValidateTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ValidateTemplate\", {})\n .n(\"CloudFormationClient\", \"ValidateTemplateCommand\")\n .sc(schemas_0.ValidateTemplate$)\n .build() {\n}\n\nconst paginateDescribeAccountLimits = core.createPaginator(CloudFormationClient, DescribeAccountLimitsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeChangeSet = core.createPaginator(CloudFormationClient, DescribeChangeSetCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeEvents = core.createPaginator(CloudFormationClient, DescribeEventsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeStackEvents = core.createPaginator(CloudFormationClient, DescribeStackEventsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeStackResourceDrifts = core.createPaginator(CloudFormationClient, DescribeStackResourceDriftsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateDescribeStacks = core.createPaginator(CloudFormationClient, DescribeStacksCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListChangeSets = core.createPaginator(CloudFormationClient, ListChangeSetsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListExports = core.createPaginator(CloudFormationClient, ListExportsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListGeneratedTemplates = core.createPaginator(CloudFormationClient, ListGeneratedTemplatesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListImports = core.createPaginator(CloudFormationClient, ListImportsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListResourceScanRelatedResources = core.createPaginator(CloudFormationClient, ListResourceScanRelatedResourcesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListResourceScanResources = core.createPaginator(CloudFormationClient, ListResourceScanResourcesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListResourceScans = core.createPaginator(CloudFormationClient, ListResourceScansCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackInstances = core.createPaginator(CloudFormationClient, ListStackInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackRefactorActions = core.createPaginator(CloudFormationClient, ListStackRefactorActionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackRefactors = core.createPaginator(CloudFormationClient, ListStackRefactorsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackResources = core.createPaginator(CloudFormationClient, ListStackResourcesCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListStackSetOperationResults = core.createPaginator(CloudFormationClient, ListStackSetOperationResultsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackSetOperations = core.createPaginator(CloudFormationClient, ListStackSetOperationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackSets = core.createPaginator(CloudFormationClient, ListStackSetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStacks = core.createPaginator(CloudFormationClient, ListStacksCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListTypeRegistrations = core.createPaginator(CloudFormationClient, ListTypeRegistrationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListTypes = core.createPaginator(CloudFormationClient, ListTypesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListTypeVersions = core.createPaginator(CloudFormationClient, ListTypeVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst checkState$9 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeChangeSetCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"CREATE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForChangeSetCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$9);\n};\nconst waitUntilChangeSetCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$9);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$8 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"CREATE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_COMPLETE_CLEANUP_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_FAILED\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_FAILED\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$8);\n};\nconst waitUntilStackCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$8);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$7 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"DELETE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_IN_PROGRESS\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackDeleteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$7);\n};\nconst waitUntilStackDeleteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$7);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$6 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$6);\n};\nconst waitUntilStackExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$6);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$5 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"IMPORT_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"IMPORT_ROLLBACK_IN_PROGRESS\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"IMPORT_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"IMPORT_ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackImportComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n};\nconst waitUntilStackImportComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$4 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStackRefactorCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"CREATE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackRefactorCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n};\nconst waitUntilStackRefactorCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$3 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStackRefactorCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.ExecutionStatus;\n };\n if (returnComparator() === \"EXECUTE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.ExecutionStatus;\n };\n if (returnComparator() === \"EXECUTE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.ExecutionStatus;\n };\n if (returnComparator() === \"ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackRefactorExecuteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n};\nconst waitUntilStackRefactorExecuteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$2 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackRollbackComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n};\nconst waitUntilStackRollbackComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$1 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackUpdateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n};\nconst waitUntilStackUpdateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeTypeRegistrationCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.ProgressStatus;\n };\n if (returnComparator() === \"COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.ProgressStatus;\n };\n if (returnComparator() === \"FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForTypeRegistrationComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nconst waitUntilTypeRegistrationComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return utilWaiter.checkExceptions(result);\n};\n\nconst commands = {\n ActivateOrganizationsAccessCommand,\n ActivateTypeCommand,\n BatchDescribeTypeConfigurationsCommand,\n CancelUpdateStackCommand,\n ContinueUpdateRollbackCommand,\n CreateChangeSetCommand,\n CreateGeneratedTemplateCommand,\n CreateStackCommand,\n CreateStackInstancesCommand,\n CreateStackRefactorCommand,\n CreateStackSetCommand,\n DeactivateOrganizationsAccessCommand,\n DeactivateTypeCommand,\n DeleteChangeSetCommand,\n DeleteGeneratedTemplateCommand,\n DeleteStackCommand,\n DeleteStackInstancesCommand,\n DeleteStackSetCommand,\n DeregisterTypeCommand,\n DescribeAccountLimitsCommand,\n DescribeChangeSetCommand,\n DescribeChangeSetHooksCommand,\n DescribeEventsCommand,\n DescribeGeneratedTemplateCommand,\n DescribeOrganizationsAccessCommand,\n DescribePublisherCommand,\n DescribeResourceScanCommand,\n DescribeStackDriftDetectionStatusCommand,\n DescribeStackEventsCommand,\n DescribeStackInstanceCommand,\n DescribeStackRefactorCommand,\n DescribeStackResourceCommand,\n DescribeStackResourceDriftsCommand,\n DescribeStackResourcesCommand,\n DescribeStacksCommand,\n DescribeStackSetCommand,\n DescribeStackSetOperationCommand,\n DescribeTypeCommand,\n DescribeTypeRegistrationCommand,\n DetectStackDriftCommand,\n DetectStackResourceDriftCommand,\n DetectStackSetDriftCommand,\n EstimateTemplateCostCommand,\n ExecuteChangeSetCommand,\n ExecuteStackRefactorCommand,\n GetGeneratedTemplateCommand,\n GetHookResultCommand,\n GetStackPolicyCommand,\n GetTemplateCommand,\n GetTemplateSummaryCommand,\n ImportStacksToStackSetCommand,\n ListChangeSetsCommand,\n ListExportsCommand,\n ListGeneratedTemplatesCommand,\n ListHookResultsCommand,\n ListImportsCommand,\n ListResourceScanRelatedResourcesCommand,\n ListResourceScanResourcesCommand,\n ListResourceScansCommand,\n ListStackInstanceResourceDriftsCommand,\n ListStackInstancesCommand,\n ListStackRefactorActionsCommand,\n ListStackRefactorsCommand,\n ListStackResourcesCommand,\n ListStacksCommand,\n ListStackSetAutoDeploymentTargetsCommand,\n ListStackSetOperationResultsCommand,\n ListStackSetOperationsCommand,\n ListStackSetsCommand,\n ListTypeRegistrationsCommand,\n ListTypesCommand,\n ListTypeVersionsCommand,\n PublishTypeCommand,\n RecordHandlerProgressCommand,\n RegisterPublisherCommand,\n RegisterTypeCommand,\n RollbackStackCommand,\n SetStackPolicyCommand,\n SetTypeConfigurationCommand,\n SetTypeDefaultVersionCommand,\n SignalResourceCommand,\n StartResourceScanCommand,\n StopStackSetOperationCommand,\n TestTypeCommand,\n UpdateGeneratedTemplateCommand,\n UpdateStackCommand,\n UpdateStackInstancesCommand,\n UpdateStackSetCommand,\n UpdateTerminationProtectionCommand,\n ValidateTemplateCommand,\n};\nconst paginators = {\n paginateDescribeAccountLimits,\n paginateDescribeChangeSet,\n paginateDescribeEvents,\n paginateDescribeStackEvents,\n paginateDescribeStackResourceDrifts,\n paginateDescribeStacks,\n paginateListChangeSets,\n paginateListExports,\n paginateListGeneratedTemplates,\n paginateListImports,\n paginateListResourceScanRelatedResources,\n paginateListResourceScanResources,\n paginateListResourceScans,\n paginateListStackInstances,\n paginateListStackRefactorActions,\n paginateListStackRefactors,\n paginateListStackResources,\n paginateListStacks,\n paginateListStackSetOperationResults,\n paginateListStackSetOperations,\n paginateListStackSets,\n paginateListTypeRegistrations,\n paginateListTypes,\n paginateListTypeVersions,\n};\nconst waiters = {\n waitUntilChangeSetCreateComplete,\n waitUntilStackRefactorCreateComplete,\n waitUntilStackRefactorExecuteComplete,\n waitUntilStackCreateComplete,\n waitUntilStackDeleteComplete,\n waitUntilStackExists,\n waitUntilStackImportComplete,\n waitUntilStackRollbackComplete,\n waitUntilStackUpdateComplete,\n waitUntilTypeRegistrationComplete,\n};\nclass CloudFormation extends CloudFormationClient {\n}\nsmithyClient.createAggregatedClient(commands, CloudFormation, { paginators, waiters });\n\nconst AccountFilterType = {\n DIFFERENCE: \"DIFFERENCE\",\n INTERSECTION: \"INTERSECTION\",\n NONE: \"NONE\",\n UNION: \"UNION\",\n};\nconst AccountGateStatus = {\n FAILED: \"FAILED\",\n SKIPPED: \"SKIPPED\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst ThirdPartyType = {\n HOOK: \"HOOK\",\n MODULE: \"MODULE\",\n RESOURCE: \"RESOURCE\",\n};\nconst VersionBump = {\n MAJOR: \"MAJOR\",\n MINOR: \"MINOR\",\n};\nconst AfterValueFrom = {\n TEMPLATE: \"TEMPLATE\",\n};\nconst AnnotationSeverityLevel = {\n CRITICAL: \"CRITICAL\",\n HIGH: \"HIGH\",\n INFORMATIONAL: \"INFORMATIONAL\",\n LOW: \"LOW\",\n MEDIUM: \"MEDIUM\",\n};\nconst AnnotationStatus = {\n FAILED: \"FAILED\",\n PASSED: \"PASSED\",\n SKIPPED: \"SKIPPED\",\n};\nconst AttributeChangeType = {\n Add: \"Add\",\n Modify: \"Modify\",\n Remove: \"Remove\",\n SyncWithActual: \"SyncWithActual\",\n};\nconst BeaconStackOperationStatus = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst BeforeValueFrom = {\n ACTUAL_STATE: \"ACTUAL_STATE\",\n PREVIOUS_DEPLOYMENT_STATE: \"PREVIOUS_DEPLOYMENT_STATE\",\n};\nconst CallAs = {\n DELEGATED_ADMIN: \"DELEGATED_ADMIN\",\n SELF: \"SELF\",\n};\nconst Capability = {\n CAPABILITY_AUTO_EXPAND: \"CAPABILITY_AUTO_EXPAND\",\n CAPABILITY_IAM: \"CAPABILITY_IAM\",\n CAPABILITY_NAMED_IAM: \"CAPABILITY_NAMED_IAM\",\n};\nconst Category = {\n ACTIVATED: \"ACTIVATED\",\n AWS_TYPES: \"AWS_TYPES\",\n REGISTERED: \"REGISTERED\",\n THIRD_PARTY: \"THIRD_PARTY\",\n};\nconst ChangeAction = {\n Add: \"Add\",\n Dynamic: \"Dynamic\",\n Import: \"Import\",\n Modify: \"Modify\",\n Remove: \"Remove\",\n SyncWithActual: \"SyncWithActual\",\n};\nconst ChangeSource = {\n Automatic: \"Automatic\",\n DirectModification: \"DirectModification\",\n NoModification: \"NoModification\",\n ParameterReference: \"ParameterReference\",\n ResourceAttribute: \"ResourceAttribute\",\n ResourceReference: \"ResourceReference\",\n};\nconst EvaluationType = {\n Dynamic: \"Dynamic\",\n Static: \"Static\",\n};\nconst ResourceAttribute = {\n CreationPolicy: \"CreationPolicy\",\n DeletionPolicy: \"DeletionPolicy\",\n Metadata: \"Metadata\",\n Properties: \"Properties\",\n Tags: \"Tags\",\n UpdatePolicy: \"UpdatePolicy\",\n UpdateReplacePolicy: \"UpdateReplacePolicy\",\n};\nconst RequiresRecreation = {\n Always: \"Always\",\n Conditionally: \"Conditionally\",\n Never: \"Never\",\n};\nconst PolicyAction = {\n Delete: \"Delete\",\n ReplaceAndDelete: \"ReplaceAndDelete\",\n ReplaceAndRetain: \"ReplaceAndRetain\",\n ReplaceAndSnapshot: \"ReplaceAndSnapshot\",\n Retain: \"Retain\",\n Snapshot: \"Snapshot\",\n};\nconst Replacement = {\n Conditional: \"Conditional\",\n False: \"False\",\n True: \"True\",\n};\nconst DriftIgnoredReason = {\n MANAGED_BY_AWS: \"MANAGED_BY_AWS\",\n WRITE_ONLY_PROPERTY: \"WRITE_ONLY_PROPERTY\",\n};\nconst StackResourceDriftStatus = {\n DELETED: \"DELETED\",\n IN_SYNC: \"IN_SYNC\",\n MODIFIED: \"MODIFIED\",\n NOT_CHECKED: \"NOT_CHECKED\",\n UNKNOWN: \"UNKNOWN\",\n UNSUPPORTED: \"UNSUPPORTED\",\n};\nconst ChangeType = {\n Resource: \"Resource\",\n};\nconst HookFailureMode = {\n FAIL: \"FAIL\",\n WARN: \"WARN\",\n};\nconst HookInvocationPoint = {\n PRE_PROVISION: \"PRE_PROVISION\",\n};\nconst HookTargetType = {\n RESOURCE: \"RESOURCE\",\n};\nconst ChangeSetHooksStatus = {\n PLANNED: \"PLANNED\",\n PLANNING: \"PLANNING\",\n UNAVAILABLE: \"UNAVAILABLE\",\n};\nconst ChangeSetStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n CREATE_PENDING: \"CREATE_PENDING\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n DELETE_PENDING: \"DELETE_PENDING\",\n FAILED: \"FAILED\",\n};\nconst ExecutionStatus = {\n AVAILABLE: \"AVAILABLE\",\n EXECUTE_COMPLETE: \"EXECUTE_COMPLETE\",\n EXECUTE_FAILED: \"EXECUTE_FAILED\",\n EXECUTE_IN_PROGRESS: \"EXECUTE_IN_PROGRESS\",\n OBSOLETE: \"OBSOLETE\",\n UNAVAILABLE: \"UNAVAILABLE\",\n};\nconst ChangeSetType = {\n CREATE: \"CREATE\",\n IMPORT: \"IMPORT\",\n UPDATE: \"UPDATE\",\n};\nconst DeploymentMode = {\n REVERT_DRIFT: \"REVERT_DRIFT\",\n};\nconst OnStackFailure = {\n DELETE: \"DELETE\",\n DO_NOTHING: \"DO_NOTHING\",\n ROLLBACK: \"ROLLBACK\",\n};\nconst GeneratedTemplateDeletionPolicy = {\n DELETE: \"DELETE\",\n RETAIN: \"RETAIN\",\n};\nconst GeneratedTemplateUpdateReplacePolicy = {\n DELETE: \"DELETE\",\n RETAIN: \"RETAIN\",\n};\nconst OnFailure = {\n DELETE: \"DELETE\",\n DO_NOTHING: \"DO_NOTHING\",\n ROLLBACK: \"ROLLBACK\",\n};\nconst ConcurrencyMode = {\n SOFT_FAILURE_TOLERANCE: \"SOFT_FAILURE_TOLERANCE\",\n STRICT_FAILURE_TOLERANCE: \"STRICT_FAILURE_TOLERANCE\",\n};\nconst RegionConcurrencyType = {\n PARALLEL: \"PARALLEL\",\n SEQUENTIAL: \"SEQUENTIAL\",\n};\nconst PermissionModels = {\n SELF_MANAGED: \"SELF_MANAGED\",\n SERVICE_MANAGED: \"SERVICE_MANAGED\",\n};\nconst DeletionMode = {\n FORCE_DELETE_STACK: \"FORCE_DELETE_STACK\",\n STANDARD: \"STANDARD\",\n};\nconst RegistryType = {\n HOOK: \"HOOK\",\n MODULE: \"MODULE\",\n RESOURCE: \"RESOURCE\",\n};\nconst StackDriftStatus = {\n DRIFTED: \"DRIFTED\",\n IN_SYNC: \"IN_SYNC\",\n NOT_CHECKED: \"NOT_CHECKED\",\n UNKNOWN: \"UNKNOWN\",\n};\nconst DetailedStatus = {\n CONFIGURATION_COMPLETE: \"CONFIGURATION_COMPLETE\",\n VALIDATION_FAILED: \"VALIDATION_FAILED\",\n};\nconst EventType = {\n HOOK_INVOCATION_ERROR: \"HOOK_INVOCATION_ERROR\",\n PROGRESS_EVENT: \"PROGRESS_EVENT\",\n PROVISIONING_ERROR: \"PROVISIONING_ERROR\",\n STACK_EVENT: \"STACK_EVENT\",\n VALIDATION_ERROR: \"VALIDATION_ERROR\",\n};\nconst HookStatus = {\n HOOK_COMPLETE_FAILED: \"HOOK_COMPLETE_FAILED\",\n HOOK_COMPLETE_SUCCEEDED: \"HOOK_COMPLETE_SUCCEEDED\",\n HOOK_FAILED: \"HOOK_FAILED\",\n HOOK_IN_PROGRESS: \"HOOK_IN_PROGRESS\",\n};\nconst OperationType = {\n CONTINUE_ROLLBACK: \"CONTINUE_ROLLBACK\",\n CREATE_CHANGESET: \"CREATE_CHANGESET\",\n CREATE_STACK: \"CREATE_STACK\",\n DELETE_STACK: \"DELETE_STACK\",\n ROLLBACK: \"ROLLBACK\",\n UPDATE_STACK: \"UPDATE_STACK\",\n};\nconst ResourceStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n DELETE_SKIPPED: \"DELETE_SKIPPED\",\n EXPORT_COMPLETE: \"EXPORT_COMPLETE\",\n EXPORT_FAILED: \"EXPORT_FAILED\",\n EXPORT_IN_PROGRESS: \"EXPORT_IN_PROGRESS\",\n EXPORT_ROLLBACK_COMPLETE: \"EXPORT_ROLLBACK_COMPLETE\",\n EXPORT_ROLLBACK_FAILED: \"EXPORT_ROLLBACK_FAILED\",\n EXPORT_ROLLBACK_IN_PROGRESS: \"EXPORT_ROLLBACK_IN_PROGRESS\",\n IMPORT_COMPLETE: \"IMPORT_COMPLETE\",\n IMPORT_FAILED: \"IMPORT_FAILED\",\n IMPORT_IN_PROGRESS: \"IMPORT_IN_PROGRESS\",\n IMPORT_ROLLBACK_COMPLETE: \"IMPORT_ROLLBACK_COMPLETE\",\n IMPORT_ROLLBACK_FAILED: \"IMPORT_ROLLBACK_FAILED\",\n IMPORT_ROLLBACK_IN_PROGRESS: \"IMPORT_ROLLBACK_IN_PROGRESS\",\n ROLLBACK_COMPLETE: \"ROLLBACK_COMPLETE\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n UPDATE_COMPLETE: \"UPDATE_COMPLETE\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\",\n UPDATE_ROLLBACK_COMPLETE: \"UPDATE_ROLLBACK_COMPLETE\",\n UPDATE_ROLLBACK_FAILED: \"UPDATE_ROLLBACK_FAILED\",\n UPDATE_ROLLBACK_IN_PROGRESS: \"UPDATE_ROLLBACK_IN_PROGRESS\",\n};\nconst ValidationStatus = {\n FAILED: \"FAILED\",\n SKIPPED: \"SKIPPED\",\n};\nconst GeneratedTemplateResourceStatus = {\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n};\nconst WarningType = {\n EXCLUDED_PROPERTIES: \"EXCLUDED_PROPERTIES\",\n EXCLUDED_RESOURCES: \"EXCLUDED_RESOURCES\",\n MUTUALLY_EXCLUSIVE_PROPERTIES: \"MUTUALLY_EXCLUSIVE_PROPERTIES\",\n MUTUALLY_EXCLUSIVE_TYPES: \"MUTUALLY_EXCLUSIVE_TYPES\",\n UNSUPPORTED_PROPERTIES: \"UNSUPPORTED_PROPERTIES\",\n};\nconst GeneratedTemplateStatus = {\n COMPLETE: \"COMPLETE\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n CREATE_PENDING: \"CREATE_PENDING\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n DELETE_PENDING: \"DELETE_PENDING\",\n FAILED: \"FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\",\n UPDATE_PENDING: \"UPDATE_PENDING\",\n};\nconst OrganizationStatus = {\n DISABLED: \"DISABLED\",\n DISABLED_PERMANENTLY: \"DISABLED_PERMANENTLY\",\n ENABLED: \"ENABLED\",\n};\nconst IdentityProvider = {\n AWS_Marketplace: \"AWS_Marketplace\",\n Bitbucket: \"Bitbucket\",\n GitHub: \"GitHub\",\n};\nconst PublisherStatus = {\n UNVERIFIED: \"UNVERIFIED\",\n VERIFIED: \"VERIFIED\",\n};\nconst ResourceScanStatus = {\n COMPLETE: \"COMPLETE\",\n EXPIRED: \"EXPIRED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n};\nconst StackDriftDetectionStatus = {\n DETECTION_COMPLETE: \"DETECTION_COMPLETE\",\n DETECTION_FAILED: \"DETECTION_FAILED\",\n DETECTION_IN_PROGRESS: \"DETECTION_IN_PROGRESS\",\n};\nconst StackInstanceDetailedStatus = {\n CANCELLED: \"CANCELLED\",\n FAILED: \"FAILED\",\n FAILED_IMPORT: \"FAILED_IMPORT\",\n INOPERABLE: \"INOPERABLE\",\n PENDING: \"PENDING\",\n RUNNING: \"RUNNING\",\n SKIPPED_SUSPENDED_ACCOUNT: \"SKIPPED_SUSPENDED_ACCOUNT\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst StackInstanceStatus = {\n CURRENT: \"CURRENT\",\n INOPERABLE: \"INOPERABLE\",\n OUTDATED: \"OUTDATED\",\n};\nconst StackRefactorExecutionStatus = {\n AVAILABLE: \"AVAILABLE\",\n EXECUTE_COMPLETE: \"EXECUTE_COMPLETE\",\n EXECUTE_FAILED: \"EXECUTE_FAILED\",\n EXECUTE_IN_PROGRESS: \"EXECUTE_IN_PROGRESS\",\n OBSOLETE: \"OBSOLETE\",\n ROLLBACK_COMPLETE: \"ROLLBACK_COMPLETE\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n UNAVAILABLE: \"UNAVAILABLE\",\n};\nconst StackRefactorStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n};\nconst DifferenceType = {\n ADD: \"ADD\",\n NOT_EQUAL: \"NOT_EQUAL\",\n REMOVE: \"REMOVE\",\n};\nconst StackStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n IMPORT_COMPLETE: \"IMPORT_COMPLETE\",\n IMPORT_IN_PROGRESS: \"IMPORT_IN_PROGRESS\",\n IMPORT_ROLLBACK_COMPLETE: \"IMPORT_ROLLBACK_COMPLETE\",\n IMPORT_ROLLBACK_FAILED: \"IMPORT_ROLLBACK_FAILED\",\n IMPORT_ROLLBACK_IN_PROGRESS: \"IMPORT_ROLLBACK_IN_PROGRESS\",\n REVIEW_IN_PROGRESS: \"REVIEW_IN_PROGRESS\",\n ROLLBACK_COMPLETE: \"ROLLBACK_COMPLETE\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n UPDATE_COMPLETE: \"UPDATE_COMPLETE\",\n UPDATE_COMPLETE_CLEANUP_IN_PROGRESS: \"UPDATE_COMPLETE_CLEANUP_IN_PROGRESS\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\",\n UPDATE_ROLLBACK_COMPLETE: \"UPDATE_ROLLBACK_COMPLETE\",\n UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS: \"UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS\",\n UPDATE_ROLLBACK_FAILED: \"UPDATE_ROLLBACK_FAILED\",\n UPDATE_ROLLBACK_IN_PROGRESS: \"UPDATE_ROLLBACK_IN_PROGRESS\",\n};\nconst StackSetDriftDetectionStatus = {\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PARTIAL_SUCCESS: \"PARTIAL_SUCCESS\",\n STOPPED: \"STOPPED\",\n};\nconst StackSetDriftStatus = {\n DRIFTED: \"DRIFTED\",\n IN_SYNC: \"IN_SYNC\",\n NOT_CHECKED: \"NOT_CHECKED\",\n};\nconst StackSetStatus = {\n ACTIVE: \"ACTIVE\",\n DELETED: \"DELETED\",\n};\nconst StackSetOperationAction = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n DETECT_DRIFT: \"DETECT_DRIFT\",\n UPDATE: \"UPDATE\",\n};\nconst StackSetOperationStatus = {\n FAILED: \"FAILED\",\n QUEUED: \"QUEUED\",\n RUNNING: \"RUNNING\",\n STOPPED: \"STOPPED\",\n STOPPING: \"STOPPING\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst DeprecatedStatus = {\n DEPRECATED: \"DEPRECATED\",\n LIVE: \"LIVE\",\n};\nconst ProvisioningType = {\n FULLY_MUTABLE: \"FULLY_MUTABLE\",\n IMMUTABLE: \"IMMUTABLE\",\n NON_PROVISIONABLE: \"NON_PROVISIONABLE\",\n};\nconst TypeTestsStatus = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n NOT_TESTED: \"NOT_TESTED\",\n PASSED: \"PASSED\",\n};\nconst Visibility = {\n PRIVATE: \"PRIVATE\",\n PUBLIC: \"PUBLIC\",\n};\nconst RegistrationStatus = {\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n};\nconst TemplateFormat = {\n JSON: \"JSON\",\n YAML: \"YAML\",\n};\nconst HookTargetAction = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n IMPORT: \"IMPORT\",\n UPDATE: \"UPDATE\",\n};\nconst TemplateStage = {\n Original: \"Original\",\n Processed: \"Processed\",\n};\nconst ListHookResultsTargetType = {\n CHANGE_SET: \"CHANGE_SET\",\n CLOUD_CONTROL: \"CLOUD_CONTROL\",\n RESOURCE: \"RESOURCE\",\n STACK: \"STACK\",\n};\nconst ScanType = {\n FULL: \"FULL\",\n PARTIAL: \"PARTIAL\",\n};\nconst StackInstanceFilterName = {\n DETAILED_STATUS: \"DETAILED_STATUS\",\n DRIFT_STATUS: \"DRIFT_STATUS\",\n LAST_OPERATION_ID: \"LAST_OPERATION_ID\",\n};\nconst StackRefactorActionType = {\n CREATE: \"CREATE\",\n MOVE: \"MOVE\",\n};\nconst StackRefactorDetection = {\n AUTO: \"AUTO\",\n MANUAL: \"MANUAL\",\n};\nconst StackRefactorActionEntity = {\n RESOURCE: \"RESOURCE\",\n STACK: \"STACK\",\n};\nconst OperationResultFilterName = {\n OPERATION_RESULT_STATUS: \"OPERATION_RESULT_STATUS\",\n};\nconst StackSetOperationResultStatus = {\n CANCELLED: \"CANCELLED\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n RUNNING: \"RUNNING\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst OperationStatus = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n SUCCESS: \"SUCCESS\",\n};\nconst HandlerErrorCode = {\n AccessDenied: \"AccessDenied\",\n AlreadyExists: \"AlreadyExists\",\n GeneralServiceException: \"GeneralServiceException\",\n HandlerInternalFailure: \"HandlerInternalFailure\",\n InternalFailure: \"InternalFailure\",\n InvalidCredentials: \"InvalidCredentials\",\n InvalidRequest: \"InvalidRequest\",\n InvalidTypeConfiguration: \"InvalidTypeConfiguration\",\n NetworkFailure: \"NetworkFailure\",\n NonCompliant: \"NonCompliant\",\n NotFound: \"NotFound\",\n NotUpdatable: \"NotUpdatable\",\n ResourceConflict: \"ResourceConflict\",\n ServiceInternalError: \"ServiceInternalError\",\n ServiceLimitExceeded: \"ServiceLimitExceeded\",\n ServiceTimeout: \"NotStabilized\",\n Throttling: \"Throttling\",\n Unknown: \"Unknown\",\n UnsupportedTarget: \"UnsupportedTarget\",\n};\nconst ResourceSignalStatus = {\n FAILURE: \"FAILURE\",\n SUCCESS: \"SUCCESS\",\n};\n\nexports.$Command = smithyClient.Command;\nexports.__Client = smithyClient.Client;\nexports.CloudFormationServiceException = CloudFormationServiceException.CloudFormationServiceException;\nexports.AccountFilterType = AccountFilterType;\nexports.AccountGateStatus = AccountGateStatus;\nexports.ActivateOrganizationsAccessCommand = ActivateOrganizationsAccessCommand;\nexports.ActivateTypeCommand = ActivateTypeCommand;\nexports.AfterValueFrom = AfterValueFrom;\nexports.AnnotationSeverityLevel = AnnotationSeverityLevel;\nexports.AnnotationStatus = AnnotationStatus;\nexports.AttributeChangeType = AttributeChangeType;\nexports.BatchDescribeTypeConfigurationsCommand = BatchDescribeTypeConfigurationsCommand;\nexports.BeaconStackOperationStatus = BeaconStackOperationStatus;\nexports.BeforeValueFrom = BeforeValueFrom;\nexports.CallAs = CallAs;\nexports.CancelUpdateStackCommand = CancelUpdateStackCommand;\nexports.Capability = Capability;\nexports.Category = Category;\nexports.ChangeAction = ChangeAction;\nexports.ChangeSetHooksStatus = ChangeSetHooksStatus;\nexports.ChangeSetStatus = ChangeSetStatus;\nexports.ChangeSetType = ChangeSetType;\nexports.ChangeSource = ChangeSource;\nexports.ChangeType = ChangeType;\nexports.CloudFormation = CloudFormation;\nexports.CloudFormationClient = CloudFormationClient;\nexports.ConcurrencyMode = ConcurrencyMode;\nexports.ContinueUpdateRollbackCommand = ContinueUpdateRollbackCommand;\nexports.CreateChangeSetCommand = CreateChangeSetCommand;\nexports.CreateGeneratedTemplateCommand = CreateGeneratedTemplateCommand;\nexports.CreateStackCommand = CreateStackCommand;\nexports.CreateStackInstancesCommand = CreateStackInstancesCommand;\nexports.CreateStackRefactorCommand = CreateStackRefactorCommand;\nexports.CreateStackSetCommand = CreateStackSetCommand;\nexports.DeactivateOrganizationsAccessCommand = DeactivateOrganizationsAccessCommand;\nexports.DeactivateTypeCommand = DeactivateTypeCommand;\nexports.DeleteChangeSetCommand = DeleteChangeSetCommand;\nexports.DeleteGeneratedTemplateCommand = DeleteGeneratedTemplateCommand;\nexports.DeleteStackCommand = DeleteStackCommand;\nexports.DeleteStackInstancesCommand = DeleteStackInstancesCommand;\nexports.DeleteStackSetCommand = DeleteStackSetCommand;\nexports.DeletionMode = DeletionMode;\nexports.DeploymentMode = DeploymentMode;\nexports.DeprecatedStatus = DeprecatedStatus;\nexports.DeregisterTypeCommand = DeregisterTypeCommand;\nexports.DescribeAccountLimitsCommand = DescribeAccountLimitsCommand;\nexports.DescribeChangeSetCommand = DescribeChangeSetCommand;\nexports.DescribeChangeSetHooksCommand = DescribeChangeSetHooksCommand;\nexports.DescribeEventsCommand = DescribeEventsCommand;\nexports.DescribeGeneratedTemplateCommand = DescribeGeneratedTemplateCommand;\nexports.DescribeOrganizationsAccessCommand = DescribeOrganizationsAccessCommand;\nexports.DescribePublisherCommand = DescribePublisherCommand;\nexports.DescribeResourceScanCommand = DescribeResourceScanCommand;\nexports.DescribeStackDriftDetectionStatusCommand = DescribeStackDriftDetectionStatusCommand;\nexports.DescribeStackEventsCommand = DescribeStackEventsCommand;\nexports.DescribeStackInstanceCommand = DescribeStackInstanceCommand;\nexports.DescribeStackRefactorCommand = DescribeStackRefactorCommand;\nexports.DescribeStackResourceCommand = DescribeStackResourceCommand;\nexports.DescribeStackResourceDriftsCommand = DescribeStackResourceDriftsCommand;\nexports.DescribeStackResourcesCommand = DescribeStackResourcesCommand;\nexports.DescribeStackSetCommand = DescribeStackSetCommand;\nexports.DescribeStackSetOperationCommand = DescribeStackSetOperationCommand;\nexports.DescribeStacksCommand = DescribeStacksCommand;\nexports.DescribeTypeCommand = DescribeTypeCommand;\nexports.DescribeTypeRegistrationCommand = DescribeTypeRegistrationCommand;\nexports.DetailedStatus = DetailedStatus;\nexports.DetectStackDriftCommand = DetectStackDriftCommand;\nexports.DetectStackResourceDriftCommand = DetectStackResourceDriftCommand;\nexports.DetectStackSetDriftCommand = DetectStackSetDriftCommand;\nexports.DifferenceType = DifferenceType;\nexports.DriftIgnoredReason = DriftIgnoredReason;\nexports.EstimateTemplateCostCommand = EstimateTemplateCostCommand;\nexports.EvaluationType = EvaluationType;\nexports.EventType = EventType;\nexports.ExecuteChangeSetCommand = ExecuteChangeSetCommand;\nexports.ExecuteStackRefactorCommand = ExecuteStackRefactorCommand;\nexports.ExecutionStatus = ExecutionStatus;\nexports.GeneratedTemplateDeletionPolicy = GeneratedTemplateDeletionPolicy;\nexports.GeneratedTemplateResourceStatus = GeneratedTemplateResourceStatus;\nexports.GeneratedTemplateStatus = GeneratedTemplateStatus;\nexports.GeneratedTemplateUpdateReplacePolicy = GeneratedTemplateUpdateReplacePolicy;\nexports.GetGeneratedTemplateCommand = GetGeneratedTemplateCommand;\nexports.GetHookResultCommand = GetHookResultCommand;\nexports.GetStackPolicyCommand = GetStackPolicyCommand;\nexports.GetTemplateCommand = GetTemplateCommand;\nexports.GetTemplateSummaryCommand = GetTemplateSummaryCommand;\nexports.HandlerErrorCode = HandlerErrorCode;\nexports.HookFailureMode = HookFailureMode;\nexports.HookInvocationPoint = HookInvocationPoint;\nexports.HookStatus = HookStatus;\nexports.HookTargetAction = HookTargetAction;\nexports.HookTargetType = HookTargetType;\nexports.IdentityProvider = IdentityProvider;\nexports.ImportStacksToStackSetCommand = ImportStacksToStackSetCommand;\nexports.ListChangeSetsCommand = ListChangeSetsCommand;\nexports.ListExportsCommand = ListExportsCommand;\nexports.ListGeneratedTemplatesCommand = ListGeneratedTemplatesCommand;\nexports.ListHookResultsCommand = ListHookResultsCommand;\nexports.ListHookResultsTargetType = ListHookResultsTargetType;\nexports.ListImportsCommand = ListImportsCommand;\nexports.ListResourceScanRelatedResourcesCommand = ListResourceScanRelatedResourcesCommand;\nexports.ListResourceScanResourcesCommand = ListResourceScanResourcesCommand;\nexports.ListResourceScansCommand = ListResourceScansCommand;\nexports.ListStackInstanceResourceDriftsCommand = ListStackInstanceResourceDriftsCommand;\nexports.ListStackInstancesCommand = ListStackInstancesCommand;\nexports.ListStackRefactorActionsCommand = ListStackRefactorActionsCommand;\nexports.ListStackRefactorsCommand = ListStackRefactorsCommand;\nexports.ListStackResourcesCommand = ListStackResourcesCommand;\nexports.ListStackSetAutoDeploymentTargetsCommand = ListStackSetAutoDeploymentTargetsCommand;\nexports.ListStackSetOperationResultsCommand = ListStackSetOperationResultsCommand;\nexports.ListStackSetOperationsCommand = ListStackSetOperationsCommand;\nexports.ListStackSetsCommand = ListStackSetsCommand;\nexports.ListStacksCommand = ListStacksCommand;\nexports.ListTypeRegistrationsCommand = ListTypeRegistrationsCommand;\nexports.ListTypeVersionsCommand = ListTypeVersionsCommand;\nexports.ListTypesCommand = ListTypesCommand;\nexports.OnFailure = OnFailure;\nexports.OnStackFailure = OnStackFailure;\nexports.OperationResultFilterName = OperationResultFilterName;\nexports.OperationStatus = OperationStatus;\nexports.OperationType = OperationType;\nexports.OrganizationStatus = OrganizationStatus;\nexports.PermissionModels = PermissionModels;\nexports.PolicyAction = PolicyAction;\nexports.ProvisioningType = ProvisioningType;\nexports.PublishTypeCommand = PublishTypeCommand;\nexports.PublisherStatus = PublisherStatus;\nexports.RecordHandlerProgressCommand = RecordHandlerProgressCommand;\nexports.RegionConcurrencyType = RegionConcurrencyType;\nexports.RegisterPublisherCommand = RegisterPublisherCommand;\nexports.RegisterTypeCommand = RegisterTypeCommand;\nexports.RegistrationStatus = RegistrationStatus;\nexports.RegistryType = RegistryType;\nexports.Replacement = Replacement;\nexports.RequiresRecreation = RequiresRecreation;\nexports.ResourceAttribute = ResourceAttribute;\nexports.ResourceScanStatus = ResourceScanStatus;\nexports.ResourceSignalStatus = ResourceSignalStatus;\nexports.ResourceStatus = ResourceStatus;\nexports.RollbackStackCommand = RollbackStackCommand;\nexports.ScanType = ScanType;\nexports.SetStackPolicyCommand = SetStackPolicyCommand;\nexports.SetTypeConfigurationCommand = SetTypeConfigurationCommand;\nexports.SetTypeDefaultVersionCommand = SetTypeDefaultVersionCommand;\nexports.SignalResourceCommand = SignalResourceCommand;\nexports.StackDriftDetectionStatus = StackDriftDetectionStatus;\nexports.StackDriftStatus = StackDriftStatus;\nexports.StackInstanceDetailedStatus = StackInstanceDetailedStatus;\nexports.StackInstanceFilterName = StackInstanceFilterName;\nexports.StackInstanceStatus = StackInstanceStatus;\nexports.StackRefactorActionEntity = StackRefactorActionEntity;\nexports.StackRefactorActionType = StackRefactorActionType;\nexports.StackRefactorDetection = StackRefactorDetection;\nexports.StackRefactorExecutionStatus = StackRefactorExecutionStatus;\nexports.StackRefactorStatus = StackRefactorStatus;\nexports.StackResourceDriftStatus = StackResourceDriftStatus;\nexports.StackSetDriftDetectionStatus = StackSetDriftDetectionStatus;\nexports.StackSetDriftStatus = StackSetDriftStatus;\nexports.StackSetOperationAction = StackSetOperationAction;\nexports.StackSetOperationResultStatus = StackSetOperationResultStatus;\nexports.StackSetOperationStatus = StackSetOperationStatus;\nexports.StackSetStatus = StackSetStatus;\nexports.StackStatus = StackStatus;\nexports.StartResourceScanCommand = StartResourceScanCommand;\nexports.StopStackSetOperationCommand = StopStackSetOperationCommand;\nexports.TemplateFormat = TemplateFormat;\nexports.TemplateStage = TemplateStage;\nexports.TestTypeCommand = TestTypeCommand;\nexports.ThirdPartyType = ThirdPartyType;\nexports.TypeTestsStatus = TypeTestsStatus;\nexports.UpdateGeneratedTemplateCommand = UpdateGeneratedTemplateCommand;\nexports.UpdateStackCommand = UpdateStackCommand;\nexports.UpdateStackInstancesCommand = UpdateStackInstancesCommand;\nexports.UpdateStackSetCommand = UpdateStackSetCommand;\nexports.UpdateTerminationProtectionCommand = UpdateTerminationProtectionCommand;\nexports.ValidateTemplateCommand = ValidateTemplateCommand;\nexports.ValidationStatus = ValidationStatus;\nexports.VersionBump = VersionBump;\nexports.Visibility = Visibility;\nexports.WarningType = WarningType;\nexports.paginateDescribeAccountLimits = paginateDescribeAccountLimits;\nexports.paginateDescribeChangeSet = paginateDescribeChangeSet;\nexports.paginateDescribeEvents = paginateDescribeEvents;\nexports.paginateDescribeStackEvents = paginateDescribeStackEvents;\nexports.paginateDescribeStackResourceDrifts = paginateDescribeStackResourceDrifts;\nexports.paginateDescribeStacks = paginateDescribeStacks;\nexports.paginateListChangeSets = paginateListChangeSets;\nexports.paginateListExports = paginateListExports;\nexports.paginateListGeneratedTemplates = paginateListGeneratedTemplates;\nexports.paginateListImports = paginateListImports;\nexports.paginateListResourceScanRelatedResources = paginateListResourceScanRelatedResources;\nexports.paginateListResourceScanResources = paginateListResourceScanResources;\nexports.paginateListResourceScans = paginateListResourceScans;\nexports.paginateListStackInstances = paginateListStackInstances;\nexports.paginateListStackRefactorActions = paginateListStackRefactorActions;\nexports.paginateListStackRefactors = paginateListStackRefactors;\nexports.paginateListStackResources = paginateListStackResources;\nexports.paginateListStackSetOperationResults = paginateListStackSetOperationResults;\nexports.paginateListStackSetOperations = paginateListStackSetOperations;\nexports.paginateListStackSets = paginateListStackSets;\nexports.paginateListStacks = paginateListStacks;\nexports.paginateListTypeRegistrations = paginateListTypeRegistrations;\nexports.paginateListTypeVersions = paginateListTypeVersions;\nexports.paginateListTypes = paginateListTypes;\nexports.waitForChangeSetCreateComplete = waitForChangeSetCreateComplete;\nexports.waitForStackCreateComplete = waitForStackCreateComplete;\nexports.waitForStackDeleteComplete = waitForStackDeleteComplete;\nexports.waitForStackExists = waitForStackExists;\nexports.waitForStackImportComplete = waitForStackImportComplete;\nexports.waitForStackRefactorCreateComplete = waitForStackRefactorCreateComplete;\nexports.waitForStackRefactorExecuteComplete = waitForStackRefactorExecuteComplete;\nexports.waitForStackRollbackComplete = waitForStackRollbackComplete;\nexports.waitForStackUpdateComplete = waitForStackUpdateComplete;\nexports.waitForTypeRegistrationComplete = waitForTypeRegistrationComplete;\nexports.waitUntilChangeSetCreateComplete = waitUntilChangeSetCreateComplete;\nexports.waitUntilStackCreateComplete = waitUntilStackCreateComplete;\nexports.waitUntilStackDeleteComplete = waitUntilStackDeleteComplete;\nexports.waitUntilStackExists = waitUntilStackExists;\nexports.waitUntilStackImportComplete = waitUntilStackImportComplete;\nexports.waitUntilStackRefactorCreateComplete = waitUntilStackRefactorCreateComplete;\nexports.waitUntilStackRefactorExecuteComplete = waitUntilStackRefactorExecuteComplete;\nexports.waitUntilStackRollbackComplete = waitUntilStackRollbackComplete;\nexports.waitUntilStackUpdateComplete = waitUntilStackUpdateComplete;\nexports.waitUntilTypeRegistrationComplete = waitUntilTypeRegistrationComplete;\nObject.prototype.hasOwnProperty.call(schemas_0, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: schemas_0['__proto__']\n });\n\nObject.keys(schemas_0).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = schemas_0[k];\n});\nObject.prototype.hasOwnProperty.call(errors, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: errors['__proto__']\n });\n\nObject.keys(errors).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = errors[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationServiceException = exports.__ServiceException = void 0;\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__ServiceException\", { enumerable: true, get: function () { return smithy_client_1.ServiceException; } });\nclass CloudFormationServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, CloudFormationServiceException.prototype);\n }\n}\nexports.CloudFormationServiceException = CloudFormationServiceException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceScanLimitExceededException = exports.OperationStatusCheckFailedException = exports.InvalidStateTransitionException = exports.ResourceScanInProgressException = exports.StackNotFoundException = exports.HookResultNotFoundException = exports.StackRefactorNotFoundException = exports.StackInstanceNotFoundException = exports.ResourceScanNotFoundException = exports.StackSetNotEmptyException = exports.GeneratedTemplateNotFoundException = exports.InvalidChangeSetStatusException = exports.NameAlreadyExistsException = exports.CreatedButModifiedException = exports.StaleRequestException = exports.StackSetNotFoundException = exports.OperationInProgressException = exports.OperationIdAlreadyExistsException = exports.ConcurrentResourcesLimitExceededException = exports.LimitExceededException = exports.InsufficientCapabilitiesException = exports.ChangeSetNotFoundException = exports.TokenAlreadyExistsException = exports.TypeConfigurationNotFoundException = exports.AlreadyExistsException = exports.TypeNotFoundException = exports.CFNRegistryException = exports.OperationNotFoundException = exports.InvalidOperationException = void 0;\nconst CloudFormationServiceException_1 = require(\"./CloudFormationServiceException\");\nclass InvalidOperationException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InvalidOperationException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InvalidOperationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidOperationException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidOperationException = InvalidOperationException;\nclass OperationNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationNotFoundException = OperationNotFoundException;\nclass CFNRegistryException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"CFNRegistryException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"CFNRegistryException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, CFNRegistryException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.CFNRegistryException = CFNRegistryException;\nclass TypeNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"TypeNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"TypeNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TypeNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.TypeNotFoundException = TypeNotFoundException;\nclass AlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.AlreadyExistsException = AlreadyExistsException;\nclass TypeConfigurationNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"TypeConfigurationNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"TypeConfigurationNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TypeConfigurationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.TypeConfigurationNotFoundException = TypeConfigurationNotFoundException;\nclass TokenAlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"TokenAlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"TokenAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TokenAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.TokenAlreadyExistsException = TokenAlreadyExistsException;\nclass ChangeSetNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ChangeSetNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ChangeSetNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ChangeSetNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ChangeSetNotFoundException = ChangeSetNotFoundException;\nclass InsufficientCapabilitiesException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InsufficientCapabilitiesException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InsufficientCapabilitiesException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InsufficientCapabilitiesException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InsufficientCapabilitiesException = InsufficientCapabilitiesException;\nclass LimitExceededException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"LimitExceededException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.LimitExceededException = LimitExceededException;\nclass ConcurrentResourcesLimitExceededException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ConcurrentResourcesLimitExceededException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ConcurrentResourcesLimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConcurrentResourcesLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ConcurrentResourcesLimitExceededException = ConcurrentResourcesLimitExceededException;\nclass OperationIdAlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationIdAlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationIdAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationIdAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationIdAlreadyExistsException = OperationIdAlreadyExistsException;\nclass OperationInProgressException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationInProgressException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationInProgressException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationInProgressException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationInProgressException = OperationInProgressException;\nclass StackSetNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackSetNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackSetNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackSetNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackSetNotFoundException = StackSetNotFoundException;\nclass StaleRequestException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StaleRequestException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StaleRequestException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StaleRequestException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StaleRequestException = StaleRequestException;\nclass CreatedButModifiedException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"CreatedButModifiedException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"CreatedButModifiedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, CreatedButModifiedException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.CreatedButModifiedException = CreatedButModifiedException;\nclass NameAlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"NameAlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"NameAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NameAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.NameAlreadyExistsException = NameAlreadyExistsException;\nclass InvalidChangeSetStatusException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InvalidChangeSetStatusException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InvalidChangeSetStatusException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidChangeSetStatusException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidChangeSetStatusException = InvalidChangeSetStatusException;\nclass GeneratedTemplateNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"GeneratedTemplateNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"GeneratedTemplateNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, GeneratedTemplateNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.GeneratedTemplateNotFoundException = GeneratedTemplateNotFoundException;\nclass StackSetNotEmptyException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackSetNotEmptyException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackSetNotEmptyException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackSetNotEmptyException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackSetNotEmptyException = StackSetNotEmptyException;\nclass ResourceScanNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ResourceScanNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ResourceScanNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceScanNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceScanNotFoundException = ResourceScanNotFoundException;\nclass StackInstanceNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackInstanceNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackInstanceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackInstanceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackInstanceNotFoundException = StackInstanceNotFoundException;\nclass StackRefactorNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackRefactorNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackRefactorNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackRefactorNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackRefactorNotFoundException = StackRefactorNotFoundException;\nclass HookResultNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"HookResultNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"HookResultNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, HookResultNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.HookResultNotFoundException = HookResultNotFoundException;\nclass StackNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackNotFoundException = StackNotFoundException;\nclass ResourceScanInProgressException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ResourceScanInProgressException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ResourceScanInProgressException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceScanInProgressException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceScanInProgressException = ResourceScanInProgressException;\nclass InvalidStateTransitionException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InvalidStateTransitionException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InvalidStateTransitionException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidStateTransitionException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidStateTransitionException = InvalidStateTransitionException;\nclass OperationStatusCheckFailedException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationStatusCheckFailedException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationStatusCheckFailedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationStatusCheckFailedException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationStatusCheckFailedException = OperationStatusCheckFailedException;\nclass ResourceScanLimitExceededException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ResourceScanLimitExceededException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ResourceScanLimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceScanLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceScanLimitExceededException = ResourceScanLimitExceededException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_1.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, client_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(httpAuthSchemes_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ?? (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst protocols_1 = require(\"@aws-sdk/core/protocols\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst schemas_0_1 = require(\"./schemas/schemas_0\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2010-05-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCloudFormationHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n protocol: config?.protocol ?? protocols_1.AwsQueryProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.cloudformation\",\n errorTypeRegistries: schemas_0_1.errorTypeRegistries,\n xmlNamespace: \"http://cloudformation.amazonaws.com/doc/2010-05-15/\",\n version: \"2010-05-15\",\n serviceTarget: \"CloudFormation\",\n },\n serviceId: config?.serviceId ?? \"CloudFormation\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContinueUpdateRollbackOutput$ = exports.ContinueUpdateRollbackInput$ = exports.ChangeSetSummary$ = exports.ChangeSetHookTargetDetails$ = exports.ChangeSetHookResourceTargetDetails$ = exports.ChangeSetHook$ = exports.Change$ = exports.CancelUpdateStackInput$ = exports.BatchDescribeTypeConfigurationsOutput$ = exports.BatchDescribeTypeConfigurationsInput$ = exports.BatchDescribeTypeConfigurationsError$ = exports.AutoDeployment$ = exports.Annotation$ = exports.ActivateTypeOutput$ = exports.ActivateTypeInput$ = exports.ActivateOrganizationsAccessOutput$ = exports.ActivateOrganizationsAccessInput$ = exports.AccountLimit$ = exports.AccountGateResult$ = exports.errorTypeRegistries = exports.TypeNotFoundException$ = exports.TypeConfigurationNotFoundException$ = exports.TokenAlreadyExistsException$ = exports.StaleRequestException$ = exports.StackSetNotFoundException$ = exports.StackSetNotEmptyException$ = exports.StackRefactorNotFoundException$ = exports.StackNotFoundException$ = exports.StackInstanceNotFoundException$ = exports.ResourceScanNotFoundException$ = exports.ResourceScanLimitExceededException$ = exports.ResourceScanInProgressException$ = exports.OperationStatusCheckFailedException$ = exports.OperationNotFoundException$ = exports.OperationInProgressException$ = exports.OperationIdAlreadyExistsException$ = exports.NameAlreadyExistsException$ = exports.LimitExceededException$ = exports.InvalidStateTransitionException$ = exports.InvalidOperationException$ = exports.InvalidChangeSetStatusException$ = exports.InsufficientCapabilitiesException$ = exports.HookResultNotFoundException$ = exports.GeneratedTemplateNotFoundException$ = exports.CreatedButModifiedException$ = exports.ConcurrentResourcesLimitExceededException$ = exports.ChangeSetNotFoundException$ = exports.CFNRegistryException$ = exports.AlreadyExistsException$ = exports.CloudFormationServiceException$ = void 0;\nexports.DescribeStackRefactorInput$ = exports.DescribeStackInstanceOutput$ = exports.DescribeStackInstanceInput$ = exports.DescribeStackEventsOutput$ = exports.DescribeStackEventsInput$ = exports.DescribeStackDriftDetectionStatusOutput$ = exports.DescribeStackDriftDetectionStatusInput$ = exports.DescribeResourceScanOutput$ = exports.DescribeResourceScanInput$ = exports.DescribePublisherOutput$ = exports.DescribePublisherInput$ = exports.DescribeOrganizationsAccessOutput$ = exports.DescribeOrganizationsAccessInput$ = exports.DescribeGeneratedTemplateOutput$ = exports.DescribeGeneratedTemplateInput$ = exports.DescribeEventsOutput$ = exports.DescribeEventsInput$ = exports.DescribeChangeSetOutput$ = exports.DescribeChangeSetInput$ = exports.DescribeChangeSetHooksOutput$ = exports.DescribeChangeSetHooksInput$ = exports.DescribeAccountLimitsOutput$ = exports.DescribeAccountLimitsInput$ = exports.DeregisterTypeOutput$ = exports.DeregisterTypeInput$ = exports.DeploymentTargets$ = exports.DeleteStackSetOutput$ = exports.DeleteStackSetInput$ = exports.DeleteStackInstancesOutput$ = exports.DeleteStackInstancesInput$ = exports.DeleteStackInput$ = exports.DeleteGeneratedTemplateInput$ = exports.DeleteChangeSetOutput$ = exports.DeleteChangeSetInput$ = exports.DeactivateTypeOutput$ = exports.DeactivateTypeInput$ = exports.DeactivateOrganizationsAccessOutput$ = exports.DeactivateOrganizationsAccessInput$ = exports.CreateStackSetOutput$ = exports.CreateStackSetInput$ = exports.CreateStackRefactorOutput$ = exports.CreateStackRefactorInput$ = exports.CreateStackOutput$ = exports.CreateStackInstancesOutput$ = exports.CreateStackInstancesInput$ = exports.CreateStackInput$ = exports.CreateGeneratedTemplateOutput$ = exports.CreateGeneratedTemplateInput$ = exports.CreateChangeSetOutput$ = exports.CreateChangeSetInput$ = void 0;\nexports.ListGeneratedTemplatesOutput$ = exports.ListGeneratedTemplatesInput$ = exports.ListExportsOutput$ = exports.ListExportsInput$ = exports.ListChangeSetsOutput$ = exports.ListChangeSetsInput$ = exports.ImportStacksToStackSetOutput$ = exports.ImportStacksToStackSetInput$ = exports.HookTarget$ = exports.HookResultSummary$ = exports.GetTemplateSummaryOutput$ = exports.GetTemplateSummaryInput$ = exports.GetTemplateOutput$ = exports.GetTemplateInput$ = exports.GetStackPolicyOutput$ = exports.GetStackPolicyInput$ = exports.GetHookResultOutput$ = exports.GetHookResultInput$ = exports.GetGeneratedTemplateOutput$ = exports.GetGeneratedTemplateInput$ = exports.Export$ = exports.ExecuteStackRefactorInput$ = exports.ExecuteChangeSetOutput$ = exports.ExecuteChangeSetInput$ = exports.EventFilter$ = exports.EstimateTemplateCostOutput$ = exports.EstimateTemplateCostInput$ = exports.DetectStackSetDriftOutput$ = exports.DetectStackSetDriftInput$ = exports.DetectStackResourceDriftOutput$ = exports.DetectStackResourceDriftInput$ = exports.DetectStackDriftOutput$ = exports.DetectStackDriftInput$ = exports.DescribeTypeRegistrationOutput$ = exports.DescribeTypeRegistrationInput$ = exports.DescribeTypeOutput$ = exports.DescribeTypeInput$ = exports.DescribeStacksOutput$ = exports.DescribeStacksInput$ = exports.DescribeStackSetOutput$ = exports.DescribeStackSetOperationOutput$ = exports.DescribeStackSetOperationInput$ = exports.DescribeStackSetInput$ = exports.DescribeStackResourcesOutput$ = exports.DescribeStackResourcesInput$ = exports.DescribeStackResourceOutput$ = exports.DescribeStackResourceInput$ = exports.DescribeStackResourceDriftsOutput$ = exports.DescribeStackResourceDriftsInput$ = exports.DescribeStackRefactorOutput$ = void 0;\nexports.PublishTypeInput$ = exports.PropertyDifference$ = exports.PhysicalResourceIdContextKeyValuePair$ = exports.ParameterDeclaration$ = exports.ParameterConstraints$ = exports.Parameter$ = exports.Output$ = exports.OperationResultFilter$ = exports.OperationEvent$ = exports.OperationEntry$ = exports.ModuleInfo$ = exports.ManagedExecution$ = exports.LoggingConfig$ = exports.LiveResourceDrift$ = exports.ListTypeVersionsOutput$ = exports.ListTypeVersionsInput$ = exports.ListTypesOutput$ = exports.ListTypesInput$ = exports.ListTypeRegistrationsOutput$ = exports.ListTypeRegistrationsInput$ = exports.ListStacksOutput$ = exports.ListStacksInput$ = exports.ListStackSetsOutput$ = exports.ListStackSetsInput$ = exports.ListStackSetOperationsOutput$ = exports.ListStackSetOperationsInput$ = exports.ListStackSetOperationResultsOutput$ = exports.ListStackSetOperationResultsInput$ = exports.ListStackSetAutoDeploymentTargetsOutput$ = exports.ListStackSetAutoDeploymentTargetsInput$ = exports.ListStackResourcesOutput$ = exports.ListStackResourcesInput$ = exports.ListStackRefactorsOutput$ = exports.ListStackRefactorsInput$ = exports.ListStackRefactorActionsOutput$ = exports.ListStackRefactorActionsInput$ = exports.ListStackInstancesOutput$ = exports.ListStackInstancesInput$ = exports.ListStackInstanceResourceDriftsOutput$ = exports.ListStackInstanceResourceDriftsInput$ = exports.ListResourceScansOutput$ = exports.ListResourceScansInput$ = exports.ListResourceScanResourcesOutput$ = exports.ListResourceScanResourcesInput$ = exports.ListResourceScanRelatedResourcesOutput$ = exports.ListResourceScanRelatedResourcesInput$ = exports.ListImportsOutput$ = exports.ListImportsInput$ = exports.ListHookResultsOutput$ = exports.ListHookResultsInput$ = void 0;\nexports.StackResourceSummary$ = exports.StackResourceDriftInformationSummary$ = exports.StackResourceDriftInformation$ = exports.StackResourceDrift$ = exports.StackResourceDetail$ = exports.StackResource$ = exports.StackRefactorSummary$ = exports.StackRefactorAction$ = exports.StackInstanceSummary$ = exports.StackInstanceResourceDriftsSummary$ = exports.StackInstanceFilter$ = exports.StackInstanceComprehensiveStatus$ = exports.StackInstance$ = exports.StackEvent$ = exports.StackDriftInformationSummary$ = exports.StackDriftInformation$ = exports.StackDefinition$ = exports.Stack$ = exports.SignalResourceInput$ = exports.SetTypeDefaultVersionOutput$ = exports.SetTypeDefaultVersionInput$ = exports.SetTypeConfigurationOutput$ = exports.SetTypeConfigurationInput$ = exports.SetStackPolicyInput$ = exports.ScannedResourceIdentifier$ = exports.ScannedResource$ = exports.ScanFilter$ = exports.RollbackTrigger$ = exports.RollbackStackOutput$ = exports.RollbackStackInput$ = exports.RollbackConfiguration$ = exports.ResourceToImport$ = exports.ResourceTargetDefinition$ = exports.ResourceScanSummary$ = exports.ResourceMapping$ = exports.ResourceLocation$ = exports.ResourceIdentifierSummary$ = exports.ResourceDriftIgnoredAttribute$ = exports.ResourceDetail$ = exports.ResourceDefinition$ = exports.ResourceChangeDetail$ = exports.ResourceChange$ = exports.RequiredActivatedType$ = exports.RegisterTypeOutput$ = exports.RegisterTypeInput$ = exports.RegisterPublisherOutput$ = exports.RegisterPublisherInput$ = exports.RecordHandlerProgressOutput$ = exports.RecordHandlerProgressInput$ = exports.PublishTypeOutput$ = void 0;\nexports.CreateStack$ = exports.CreateGeneratedTemplate$ = exports.CreateChangeSet$ = exports.ContinueUpdateRollback$ = exports.CancelUpdateStack$ = exports.BatchDescribeTypeConfigurations$ = exports.ActivateType$ = exports.ActivateOrganizationsAccess$ = exports.Warnings$ = exports.WarningProperty$ = exports.WarningDetail$ = exports.ValidateTemplateOutput$ = exports.ValidateTemplateInput$ = exports.UpdateTerminationProtectionOutput$ = exports.UpdateTerminationProtectionInput$ = exports.UpdateStackSetOutput$ = exports.UpdateStackSetInput$ = exports.UpdateStackOutput$ = exports.UpdateStackInstancesOutput$ = exports.UpdateStackInstancesInput$ = exports.UpdateStackInput$ = exports.UpdateGeneratedTemplateOutput$ = exports.UpdateGeneratedTemplateInput$ = exports.TypeVersionSummary$ = exports.TypeSummary$ = exports.TypeFilters$ = exports.TypeConfigurationIdentifier$ = exports.TypeConfigurationDetails$ = exports.TestTypeOutput$ = exports.TestTypeInput$ = exports.TemplateSummaryConfig$ = exports.TemplateSummary$ = exports.TemplateProgress$ = exports.TemplateParameter$ = exports.TemplateConfiguration$ = exports.Tag$ = exports.StopStackSetOperationOutput$ = exports.StopStackSetOperationInput$ = exports.StartResourceScanOutput$ = exports.StartResourceScanInput$ = exports.StackSummary$ = exports.StackSetSummary$ = exports.StackSetOperationSummary$ = exports.StackSetOperationStatusDetails$ = exports.StackSetOperationResultSummary$ = exports.StackSetOperationPreferences$ = exports.StackSetOperation$ = exports.StackSetDriftDetectionDetails$ = exports.StackSetAutoDeploymentTargetSummary$ = exports.StackSet$ = void 0;\nexports.ListResourceScanResources$ = exports.ListResourceScanRelatedResources$ = exports.ListImports$ = exports.ListHookResults$ = exports.ListGeneratedTemplates$ = exports.ListExports$ = exports.ListChangeSets$ = exports.ImportStacksToStackSet$ = exports.GetTemplateSummary$ = exports.GetTemplate$ = exports.GetStackPolicy$ = exports.GetHookResult$ = exports.GetGeneratedTemplate$ = exports.ExecuteStackRefactor$ = exports.ExecuteChangeSet$ = exports.EstimateTemplateCost$ = exports.DetectStackSetDrift$ = exports.DetectStackResourceDrift$ = exports.DetectStackDrift$ = exports.DescribeTypeRegistration$ = exports.DescribeType$ = exports.DescribeStackSetOperation$ = exports.DescribeStackSet$ = exports.DescribeStacks$ = exports.DescribeStackResources$ = exports.DescribeStackResourceDrifts$ = exports.DescribeStackResource$ = exports.DescribeStackRefactor$ = exports.DescribeStackInstance$ = exports.DescribeStackEvents$ = exports.DescribeStackDriftDetectionStatus$ = exports.DescribeResourceScan$ = exports.DescribePublisher$ = exports.DescribeOrganizationsAccess$ = exports.DescribeGeneratedTemplate$ = exports.DescribeEvents$ = exports.DescribeChangeSetHooks$ = exports.DescribeChangeSet$ = exports.DescribeAccountLimits$ = exports.DeregisterType$ = exports.DeleteStackSet$ = exports.DeleteStackInstances$ = exports.DeleteStack$ = exports.DeleteGeneratedTemplate$ = exports.DeleteChangeSet$ = exports.DeactivateType$ = exports.DeactivateOrganizationsAccess$ = exports.CreateStackSet$ = exports.CreateStackRefactor$ = exports.CreateStackInstances$ = void 0;\nexports.ValidateTemplate$ = exports.UpdateTerminationProtection$ = exports.UpdateStackSet$ = exports.UpdateStackInstances$ = exports.UpdateStack$ = exports.UpdateGeneratedTemplate$ = exports.TestType$ = exports.StopStackSetOperation$ = exports.StartResourceScan$ = exports.SignalResource$ = exports.SetTypeDefaultVersion$ = exports.SetTypeConfiguration$ = exports.SetStackPolicy$ = exports.RollbackStack$ = exports.RegisterType$ = exports.RegisterPublisher$ = exports.RecordHandlerProgress$ = exports.PublishType$ = exports.ListTypeVersions$ = exports.ListTypes$ = exports.ListTypeRegistrations$ = exports.ListStackSets$ = exports.ListStackSetOperations$ = exports.ListStackSetOperationResults$ = exports.ListStackSetAutoDeploymentTargets$ = exports.ListStacks$ = exports.ListStackResources$ = exports.ListStackRefactors$ = exports.ListStackRefactorActions$ = exports.ListStackInstances$ = exports.ListStackInstanceResourceDrifts$ = exports.ListResourceScans$ = void 0;\nconst _A = \"Arn\";\nconst _AC = \"AfterContext\";\nconst _ACT = \"AttributeChangeType\";\nconst _AD = \"AutoDeployment\";\nconst _AEE = \"AlreadyExistsException\";\nconst _AFT = \"AccountFilterType\";\nconst _AGR = \"AccountGateResult\";\nconst _AL = \"AccountLimit\";\nconst _ALL = \"AccountLimitList\";\nconst _ALc = \"AccountLimits\";\nconst _ALn = \"AnnotationList\";\nconst _AN = \"AnnotationName\";\nconst _AOA = \"ActivateOrganizationsAccess\";\nconst _AOAI = \"ActivateOrganizationsAccessInput\";\nconst _AOAO = \"ActivateOrganizationsAccessOutput\";\nconst _AP = \"ActualProperties\";\nconst _AR = \"AddResources\";\nconst _ARARN = \"AdministrationRoleARN\";\nconst _AT = \"ActivateType\";\nconst _ATAC = \"AcceptTermsAndConditions\";\nconst _ATI = \"ActivateTypeInput\";\nconst _ATO = \"ActivateTypeOutput\";\nconst _AU = \"AutoUpdate\";\nconst _AUc = \"AccountsUrl\";\nconst _AV = \"ActualValue\";\nconst _AVF = \"AfterValueFrom\";\nconst _AVf = \"AfterValue\";\nconst _AVl = \"AllowedValues\";\nconst _Ac = \"Accounts\";\nconst _Acc = \"Account\";\nconst _Act = \"Action\";\nconst _Acti = \"Active\";\nconst _Al = \"Alias\";\nconst _An = \"Annotation\";\nconst _Ann = \"Annotations\";\nconst _At = \"Attribute\";\nconst _BC = \"BeforeContext\";\nconst _BDTC = \"BatchDescribeTypeConfigurations\";\nconst _BDTCE = \"BatchDescribeTypeConfigurationsError\";\nconst _BDTCEa = \"BatchDescribeTypeConfigurationsErrors\";\nconst _BDTCI = \"BatchDescribeTypeConfigurationsInput\";\nconst _BDTCO = \"BatchDescribeTypeConfigurationsOutput\";\nconst _BT = \"BearerToken\";\nconst _BV = \"BeforeValue\";\nconst _BVF = \"BeforeValueFrom\";\nconst _C = \"Change\";\nconst _CA = \"CallAs\";\nconst _CAo = \"ConnectionArn\";\nconst _CAon = \"ConfigurationAlias\";\nconst _CAonf = \"ConfigurationArn\";\nconst _CBME = \"CreatedButModifiedException\";\nconst _CCS = \"CreateChangeSet\";\nconst _CCSI = \"CreateChangeSetInput\";\nconst _CCSO = \"CreateChangeSetOutput\";\nconst _CE = \"CausingEntity\";\nconst _CFNRE = \"CFNRegistryException\";\nconst _CGT = \"CreateGeneratedTemplate\";\nconst _CGTI = \"CreateGeneratedTemplateInput\";\nconst _CGTO = \"CreateGeneratedTemplateOutput\";\nconst _CM = \"ConcurrencyMode\";\nconst _COS = \"CurrentOperationStatus\";\nconst _CR = \"CapabilitiesReason\";\nconst _CRLEE = \"ConcurrentResourcesLimitExceededException\";\nconst _CRT = \"ClientRequestToken\";\nconst _CS = \"ConfigurationSchema\";\nconst _CSH = \"ChangeSetHook\";\nconst _CSHRTD = \"ChangeSetHookResourceTargetDetails\";\nconst _CSHTD = \"ChangeSetHookTargetDetails\";\nconst _CSHh = \"ChangeSetHooks\";\nconst _CSI = \"ChangeSetId\";\nconst _CSII = \"CreateStackInstancesInput\";\nconst _CSIO = \"CreateStackInstancesOutput\";\nconst _CSIr = \"CreateStackInput\";\nconst _CSIre = \"CreateStackInstances\";\nconst _CSN = \"ChangeSetName\";\nconst _CSNFE = \"ChangeSetNotFoundException\";\nconst _CSO = \"CreateStackOutput\";\nconst _CSR = \"CreateStackRefactor\";\nconst _CSRI = \"CreateStackRefactorInput\";\nconst _CSRO = \"CreateStackRefactorOutput\";\nconst _CSS = \"ChangeSetSummary\";\nconst _CSSI = \"CreateStackSetInput\";\nconst _CSSO = \"CreateStackSetOutput\";\nconst _CSSh = \"ChangeSetSummaries\";\nconst _CSSr = \"CreateStackSet\";\nconst _CST = \"ChangeSetType\";\nconst _CSh = \"ChangeSource\";\nconst _CSr = \"CreateStack\";\nconst _CT = \"CreationTime\";\nconst _CTl = \"ClientToken\";\nconst _CTr = \"CreationTimestamp\";\nconst _CUR = \"ContinueUpdateRollback\";\nconst _CURI = \"ContinueUpdateRollbackInput\";\nconst _CURO = \"ContinueUpdateRollbackOutput\";\nconst _CUS = \"CancelUpdateStack\";\nconst _CUSI = \"CancelUpdateStackInput\";\nconst _Ca = \"Capabilities\";\nconst _Cat = \"Category\";\nconst _Ch = \"Changes\";\nconst _Co = \"Configuration\";\nconst _D = \"Description\";\nconst _DAL = \"DescribeAccountLimits\";\nconst _DALI = \"DescribeAccountLimitsInput\";\nconst _DALO = \"DescribeAccountLimitsOutput\";\nconst _DCS = \"DeleteChangeSet\";\nconst _DCSH = \"DescribeChangeSetHooks\";\nconst _DCSHI = \"DescribeChangeSetHooksInput\";\nconst _DCSHO = \"DescribeChangeSetHooksOutput\";\nconst _DCSI = \"DeleteChangeSetInput\";\nconst _DCSIe = \"DescribeChangeSetInput\";\nconst _DCSO = \"DeleteChangeSetOutput\";\nconst _DCSOe = \"DescribeChangeSetOutput\";\nconst _DCSe = \"DescribeChangeSet\";\nconst _DDS = \"DriftDetectionStatus\";\nconst _DDT = \"DriftDetectionTimestamp\";\nconst _DE = \"DescribeEvents\";\nconst _DEI = \"DescribeEventsInput\";\nconst _DEO = \"DescribeEventsOutput\";\nconst _DGT = \"DeleteGeneratedTemplate\";\nconst _DGTI = \"DeleteGeneratedTemplateInput\";\nconst _DGTIe = \"DescribeGeneratedTemplateInput\";\nconst _DGTO = \"DescribeGeneratedTemplateOutput\";\nconst _DGTe = \"DescribeGeneratedTemplate\";\nconst _DI = \"DriftInformation\";\nconst _DM = \"DeploymentMode\";\nconst _DMe = \"DeletionMode\";\nconst _DO = \"DependsOn\";\nconst _DOA = \"DeactivateOrganizationsAccess\";\nconst _DOAI = \"DeactivateOrganizationsAccessInput\";\nconst _DOAIe = \"DescribeOrganizationsAccessInput\";\nconst _DOAO = \"DeactivateOrganizationsAccessOutput\";\nconst _DOAOe = \"DescribeOrganizationsAccessOutput\";\nconst _DOAe = \"DescribeOrganizationsAccess\";\nconst _DP = \"DeletionPolicy\";\nconst _DPI = \"DescribePublisherInput\";\nconst _DPO = \"DescribePublisherOutput\";\nconst _DPe = \"DescribePublisher\";\nconst _DR = \"DisableRollback\";\nconst _DRS = \"DescribeResourceScan\";\nconst _DRSI = \"DescribeResourceScanInput\";\nconst _DRSO = \"DescribeResourceScanOutput\";\nconst _DRe = \"DetectionReason\";\nconst _DS = \"DetectionStatus\";\nconst _DSD = \"DetectStackDrift\";\nconst _DSDDS = \"DescribeStackDriftDetectionStatus\";\nconst _DSDDSI = \"DescribeStackDriftDetectionStatusInput\";\nconst _DSDDSO = \"DescribeStackDriftDetectionStatusOutput\";\nconst _DSDI = \"DetectStackDriftInput\";\nconst _DSDO = \"DetectStackDriftOutput\";\nconst _DSE = \"DescribeStackEvents\";\nconst _DSEI = \"DescribeStackEventsInput\";\nconst _DSEO = \"DescribeStackEventsOutput\";\nconst _DSI = \"DeleteStackInput\";\nconst _DSIC = \"DriftedStackInstancesCount\";\nconst _DSII = \"DeleteStackInstancesInput\";\nconst _DSIIe = \"DescribeStackInstanceInput\";\nconst _DSIO = \"DeleteStackInstancesOutput\";\nconst _DSIOe = \"DescribeStackInstanceOutput\";\nconst _DSIe = \"DescribeStacksInput\";\nconst _DSIel = \"DeleteStackInstances\";\nconst _DSIes = \"DescribeStackInstance\";\nconst _DSO = \"DescribeStacksOutput\";\nconst _DSR = \"DetectionStatusReason\";\nconst _DSRC = \"DriftedStackResourceCount\";\nconst _DSRD = \"DescribeStackResourceDrifts\";\nconst _DSRDI = \"DescribeStackResourceDriftsInput\";\nconst _DSRDIe = \"DetectStackResourceDriftInput\";\nconst _DSRDO = \"DescribeStackResourceDriftsOutput\";\nconst _DSRDOe = \"DetectStackResourceDriftOutput\";\nconst _DSRDe = \"DetectStackResourceDrift\";\nconst _DSRI = \"DescribeStackRefactorInput\";\nconst _DSRIe = \"DescribeStackResourceInput\";\nconst _DSRIes = \"DescribeStackResourcesInput\";\nconst _DSRO = \"DescribeStackRefactorOutput\";\nconst _DSROe = \"DescribeStackResourceOutput\";\nconst _DSROes = \"DescribeStackResourcesOutput\";\nconst _DSRe = \"DescribeStackRefactor\";\nconst _DSRes = \"DescribeStackResource\";\nconst _DSResc = \"DescribeStackResources\";\nconst _DSRr = \"DriftStatusReason\";\nconst _DSS = \"DeleteStackSet\";\nconst _DSSD = \"DetectStackSetDrift\";\nconst _DSSDI = \"DetectStackSetDriftInput\";\nconst _DSSDO = \"DetectStackSetDriftOutput\";\nconst _DSSI = \"DeleteStackSetInput\";\nconst _DSSIe = \"DescribeStackSetInput\";\nconst _DSSO = \"DeleteStackSetOutput\";\nconst _DSSOI = \"DescribeStackSetOperationInput\";\nconst _DSSOO = \"DescribeStackSetOperationOutput\";\nconst _DSSOe = \"DescribeStackSetOutput\";\nconst _DSSOes = \"DescribeStackSetOperation\";\nconst _DSSe = \"DescribeStackSet\";\nconst _DSe = \"DeprecatedStatus\";\nconst _DSel = \"DeleteStack\";\nconst _DSes = \"DescribeStacks\";\nconst _DSet = \"DetailedStatus\";\nconst _DSr = \"DriftStatus\";\nconst _DT = \"DeploymentTargets\";\nconst _DTI = \"DeactivateTypeInput\";\nconst _DTIe = \"DeregisterTypeInput\";\nconst _DTIes = \"DescribeTypeInput\";\nconst _DTO = \"DeactivateTypeOutput\";\nconst _DTOe = \"DeregisterTypeOutput\";\nconst _DTOes = \"DescribeTypeOutput\";\nconst _DTR = \"DescribeTypeRegistration\";\nconst _DTRI = \"DescribeTypeRegistrationInput\";\nconst _DTRO = \"DescribeTypeRegistrationOutput\";\nconst _DTe = \"DeclaredTransforms\";\nconst _DTea = \"DeactivateType\";\nconst _DTel = \"DeletionTime\";\nconst _DTer = \"DeregisterType\";\nconst _DTes = \"DescribeType\";\nconst _DTi = \"DifferenceType\";\nconst _DU = \"DocumentationUrl\";\nconst _DV = \"DefaultValue\";\nconst _DVI = \"DefaultVersionId\";\nconst _De = \"Details\";\nconst _Des = \"Destination\";\nconst _Det = \"Detection\";\nconst _Dr = \"Drift\";\nconst _E = \"Enabled\";\nconst _EC = \"ErrorCode\";\nconst _ECS = \"ExecuteChangeSet\";\nconst _ECSI = \"ExecuteChangeSetInput\";\nconst _ECSO = \"ExecuteChangeSetOutput\";\nconst _EF = \"EventFilter\";\nconst _EI = \"EventId\";\nconst _EM = \"ErrorMessage\";\nconst _EN = \"ExportName\";\nconst _EP = \"ExpectedProperties\";\nconst _ERA = \"ExecutionRoleArn\";\nconst _ERN = \"ExecutionRoleName\";\nconst _ES = \"ExecutionStatus\";\nconst _ESC = \"EnableStackCreation\";\nconst _ESF = \"ExecutionStatusFilter\";\nconst _ESI = \"ExportingStackId\";\nconst _ESR = \"ExecutionStatusReason\";\nconst _ESRI = \"ExecuteStackRefactorInput\";\nconst _ESRx = \"ExecuteStackRefactor\";\nconst _ET = \"EndTime\";\nconst _ETC = \"EstimateTemplateCost\";\nconst _ETCI = \"EstimateTemplateCostInput\";\nconst _ETCO = \"EstimateTemplateCostOutput\";\nconst _ETP = \"EnableTerminationProtection\";\nconst _ETn = \"EndTimestamp\";\nconst _ETv = \"EventType\";\nconst _EV = \"ExpectedValue\";\nconst _En = \"Entity\";\nconst _Er = \"Errors\";\nconst _Ev = \"Evaluation\";\nconst _Ex = \"Export\";\nconst _Exp = \"Exports\";\nconst _F = \"Filters\";\nconst _FE = \"FailedEvents\";\nconst _FM = \"FailureMode\";\nconst _FSIC = \"FailedStackInstancesCount\";\nconst _FTC = \"FailureToleranceCount\";\nconst _FTP = \"FailureTolerancePercentage\";\nconst _Fo = \"Format\";\nconst _GGT = \"GetGeneratedTemplate\";\nconst _GGTI = \"GetGeneratedTemplateInput\";\nconst _GGTO = \"GetGeneratedTemplateOutput\";\nconst _GHR = \"GetHookResult\";\nconst _GHRI = \"GetHookResultInput\";\nconst _GHRO = \"GetHookResultOutput\";\nconst _GSP = \"GetStackPolicy\";\nconst _GSPI = \"GetStackPolicyInput\";\nconst _GSPO = \"GetStackPolicyOutput\";\nconst _GT = \"GetTemplate\";\nconst _GTI = \"GeneratedTemplateId\";\nconst _GTIe = \"GetTemplateInput\";\nconst _GTN = \"GeneratedTemplateName\";\nconst _GTNFE = \"GeneratedTemplateNotFoundException\";\nconst _GTO = \"GetTemplateOutput\";\nconst _GTS = \"GetTemplateSummary\";\nconst _GTSI = \"GetTemplateSummaryInput\";\nconst _GTSO = \"GetTemplateSummaryOutput\";\nconst _H = \"Hooks\";\nconst _HET = \"HookExecutionTarget\";\nconst _HFM = \"HookFailureMode\";\nconst _HIC = \"HookInvocationCount\";\nconst _HII = \"HookInvocationId\";\nconst _HIP = \"HookInvocationPoint\";\nconst _HR = \"HookResults\";\nconst _HRI = \"HookResultId\";\nconst _HRNFE = \"HookResultNotFoundException\";\nconst _HRS = \"HookResultSummary\";\nconst _HRSo = \"HookResultSummaries\";\nconst _HS = \"HookStatus\";\nconst _HSR = \"HookStatusReason\";\nconst _HT = \"HookTarget\";\nconst _HTo = \"HookType\";\nconst _I = \"Id\";\nconst _IA = \"IsActivated\";\nconst _IAn = \"InvokedAt\";\nconst _ICE = \"InsufficientCapabilitiesException\";\nconst _ICSSE = \"InvalidChangeSetStatusException\";\nconst _IDC = \"IsDefaultConfiguration\";\nconst _IDV = \"IsDefaultVersion\";\nconst _IER = \"ImportExistingResources\";\nconst _INS = \"IncludeNestedStacks\";\nconst _IOE = \"InvalidOperationException\";\nconst _IP = \"InvocationPoint\";\nconst _IPSIC = \"InProgressStackInstancesCount\";\nconst _IPV = \"IncludePropertyValues\";\nconst _IPd = \"IdentityProvider\";\nconst _ISSIC = \"InSyncStackInstancesCount\";\nconst _ISTE = \"InvalidStateTransitionException\";\nconst _ISTSS = \"ImportStacksToStackSet\";\nconst _ISTSSI = \"ImportStacksToStackSetInput\";\nconst _ISTSSO = \"ImportStacksToStackSetOutput\";\nconst _Im = \"Imports\";\nconst _K = \"Key\";\nconst _LC = \"LoggingConfig\";\nconst _LCS = \"ListChangeSets\";\nconst _LCSI = \"ListChangeSetsInput\";\nconst _LCSO = \"ListChangeSetsOutput\";\nconst _LCT = \"LastCheckTimestamp\";\nconst _LDB = \"LogDeliveryBucket\";\nconst _LDCT = \"LastDriftCheckTimestamp\";\nconst _LE = \"ListExports\";\nconst _LEE = \"LimitExceededException\";\nconst _LEI = \"ListExportsInput\";\nconst _LEO = \"ListExportsOutput\";\nconst _LGN = \"LogGroupName\";\nconst _LGT = \"ListGeneratedTemplates\";\nconst _LGTI = \"ListGeneratedTemplatesInput\";\nconst _LGTO = \"ListGeneratedTemplatesOutput\";\nconst _LHR = \"ListHookResults\";\nconst _LHRI = \"ListHookResultsInput\";\nconst _LHRO = \"ListHookResultsOutput\";\nconst _LI = \"ListImports\";\nconst _LIH = \"LogicalIdHierarchy\";\nconst _LII = \"ListImportsInput\";\nconst _LIO = \"ListImportsOutput\";\nconst _LO = \"LastOperations\";\nconst _LOI = \"LastOperationId\";\nconst _LPV = \"LatestPublicVersion\";\nconst _LRA = \"LogRoleArn\";\nconst _LRD = \"LiveResourceDrift\";\nconst _LRI = \"LogicalResourceId\";\nconst _LRIo = \"LogicalResourceIds\";\nconst _LRS = \"ListResourceScans\";\nconst _LRSI = \"ListResourceScansInput\";\nconst _LRSO = \"ListResourceScansOutput\";\nconst _LRSR = \"ListResourceScanResources\";\nconst _LRSRI = \"ListResourceScanResourcesInput\";\nconst _LRSRO = \"ListResourceScanResourcesOutput\";\nconst _LRSRR = \"ListResourceScanRelatedResources\";\nconst _LRSRRI = \"ListResourceScanRelatedResourcesInput\";\nconst _LRSRRO = \"ListResourceScanRelatedResourcesOutput\";\nconst _LS = \"ListStacks\";\nconst _LSI = \"ListStacksInput\";\nconst _LSII = \"ListStackInstancesInput\";\nconst _LSIO = \"ListStackInstancesOutput\";\nconst _LSIRD = \"ListStackInstanceResourceDrifts\";\nconst _LSIRDI = \"ListStackInstanceResourceDriftsInput\";\nconst _LSIRDO = \"ListStackInstanceResourceDriftsOutput\";\nconst _LSIi = \"ListStackInstances\";\nconst _LSO = \"ListStacksOutput\";\nconst _LSR = \"ListStackRefactors\";\nconst _LSRA = \"ListStackRefactorActions\";\nconst _LSRAI = \"ListStackRefactorActionsInput\";\nconst _LSRAO = \"ListStackRefactorActionsOutput\";\nconst _LSRI = \"ListStackRefactorsInput\";\nconst _LSRIi = \"ListStackResourcesInput\";\nconst _LSRO = \"ListStackRefactorsOutput\";\nconst _LSROi = \"ListStackResourcesOutput\";\nconst _LSRi = \"ListStackResources\";\nconst _LSS = \"ListStackSets\";\nconst _LSSADT = \"ListStackSetAutoDeploymentTargets\";\nconst _LSSADTI = \"ListStackSetAutoDeploymentTargetsInput\";\nconst _LSSADTO = \"ListStackSetAutoDeploymentTargetsOutput\";\nconst _LSSI = \"ListStackSetsInput\";\nconst _LSSO = \"ListStackSetsOutput\";\nconst _LSSOI = \"ListStackSetOperationsInput\";\nconst _LSSOO = \"ListStackSetOperationsOutput\";\nconst _LSSOR = \"ListStackSetOperationResults\";\nconst _LSSORI = \"ListStackSetOperationResultsInput\";\nconst _LSSORO = \"ListStackSetOperationResultsOutput\";\nconst _LSSOi = \"ListStackSetOperations\";\nconst _LT = \"ListTypes\";\nconst _LTI = \"ListTypesInput\";\nconst _LTO = \"ListTypesOutput\";\nconst _LTR = \"ListTypeRegistrations\";\nconst _LTRI = \"ListTypeRegistrationsInput\";\nconst _LTRO = \"ListTypeRegistrationsOutput\";\nconst _LTV = \"ListTypeVersions\";\nconst _LTVI = \"ListTypeVersionsInput\";\nconst _LTVO = \"ListTypeVersionsOutput\";\nconst _LU = \"LastUpdated\";\nconst _LUT = \"LastUpdatedTime\";\nconst _LUTa = \"LastUpdatedTimestamp\";\nconst _M = \"Message\";\nconst _MBS = \"ManagedByStack\";\nconst _MCC = \"MaxConcurrentCount\";\nconst _MCP = \"MaxConcurrentPercentage\";\nconst _ME = \"ManagedExecution\";\nconst _MI = \"ModuleInfo\";\nconst _MR = \"MaxResults\";\nconst _MTIM = \"MonitoringTimeInMinutes\";\nconst _MV = \"MajorVersion\";\nconst _Me = \"Metadata\";\nconst _N = \"Name\";\nconst _NAEE = \"NameAlreadyExistsException\";\nconst _NARN = \"NotificationARNs\";\nconst _NE = \"NoEcho\";\nconst _NGTN = \"NewGeneratedTemplateName\";\nconst _NOR = \"NumberOfResources\";\nconst _NT = \"NextToken\";\nconst _O = \"Output\";\nconst _OE = \"OperationEvents\";\nconst _OEp = \"OperationEntry\";\nconst _OEpe = \"OperationEvent\";\nconst _OF = \"OnFailure\";\nconst _OI = \"OperationId\";\nconst _OIAEE = \"OperationIdAlreadyExistsException\";\nconst _OIPE = \"OperationInProgressException\";\nconst _OK = \"OutputKey\";\nconst _ONFE = \"OperationNotFoundException\";\nconst _OP = \"OperationPreferences\";\nconst _ORF = \"OperationResultFilter\";\nconst _ORFp = \"OperationResultFilters\";\nconst _OS = \"OperationStatus\";\nconst _OSCFE = \"OperationStatusCheckFailedException\";\nconst _OSF = \"OnStackFailure\";\nconst _OT = \"OperationType\";\nconst _OTA = \"OriginalTypeArn\";\nconst _OTN = \"OriginalTypeName\";\nconst _OUI = \"OrganizationalUnitIds\";\nconst _OUIr = \"OrganizationalUnitId\";\nconst _OV = \"OutputValue\";\nconst _Ou = \"Outputs\";\nconst _P = \"Parameters\";\nconst _PA = \"PolicyAction\";\nconst _PC = \"PercentageCompleted\";\nconst _PCSI = \"ParentChangeSetId\";\nconst _PCa = \"ParameterConstraints\";\nconst _PD = \"ParameterDeclaration\";\nconst _PDC = \"PreviousDeploymentContext\";\nconst _PDa = \"ParameterDeclarations\";\nconst _PDr = \"PropertyDifference\";\nconst _PDro = \"PropertyDifferences\";\nconst _PI = \"PublisherId\";\nconst _PIa = \"ParentId\";\nconst _PIu = \"PublisherIdentity\";\nconst _PK = \"ParameterKey\";\nconst _PM = \"PermissionModel\";\nconst _PN = \"PublisherName\";\nconst _PO = \"ParameterOverrides\";\nconst _PP = \"PublisherProfile\";\nconst _PPr = \"PropertyPath\";\nconst _PRI = \"PhysicalResourceId\";\nconst _PRIC = \"PhysicalResourceIdContext\";\nconst _PRICKVP = \"PhysicalResourceIdContextKeyValuePair\";\nconst _PS = \"PublisherStatus\";\nconst _PSr = \"ProgressStatus\";\nconst _PT = \"ProvisioningType\";\nconst _PTA = \"PublicTypeArn\";\nconst _PTI = \"PublishTypeInput\";\nconst _PTO = \"PublishTypeOutput\";\nconst _PTa = \"ParameterType\";\nconst _PTu = \"PublishType\";\nconst _PV = \"PreviousValue\";\nconst _PVN = \"PublicVersionNumber\";\nconst _PVa = \"ParameterValue\";\nconst _Pa = \"Parameter\";\nconst _Pat = \"Path\";\nconst _Pr = \"Progress\";\nconst _Pro = \"Properties\";\nconst _R = \"Resources\";\nconst _RA = \"ResourceAction\";\nconst _RAR = \"RefreshAllResources\";\nconst _RARN = \"RoleARN\";\nconst _RAT = \"RequiredActivatedTypes\";\nconst _RATe = \"RequiredActivatedType\";\nconst _RC = \"ResourceChange\";\nconst _RCD = \"ResourceChangeDetail\";\nconst _RCDe = \"ResourceChangeDetails\";\nconst _RCSI = \"RootChangeSetId\";\nconst _RCT = \"RegionConcurrencyType\";\nconst _RCo = \"RollbackConfiguration\";\nconst _RD = \"ResourceDefinition\";\nconst _RDIA = \"ResourceDriftIgnoredAttributes\";\nconst _RDIAe = \"ResourceDriftIgnoredAttribute\";\nconst _RDS = \"ResourceDriftStatus\";\nconst _RDe = \"ResourceDetail\";\nconst _RDes = \"ResourceDefinitions\";\nconst _RDeso = \"ResourceDetails\";\nconst _REOC = \"RetainExceptOnCreate\";\nconst _RF = \"ResourcesFailed\";\nconst _RHP = \"RecordHandlerProgress\";\nconst _RHPI = \"RecordHandlerProgressInput\";\nconst _RHPO = \"RecordHandlerProgressOutput\";\nconst _RI = \"ResourceIdentifier\";\nconst _RIS = \"ResourceIdentifierSummaries\";\nconst _RISe = \"ResourceIdentifierSummary\";\nconst _RIe = \"ResourceIdentifiers\";\nconst _RIo = \"RootId\";\nconst _RL = \"RemediationLink\";\nconst _RLe = \"ResourceLocation\";\nconst _RM = \"RemediationMessage\";\nconst _RMe = \"ResourceMappings\";\nconst _RMes = \"ResourceModel\";\nconst _RMeso = \"ResourceMapping\";\nconst _RO = \"RegionOrder\";\nconst _RP = \"ResourceProperties\";\nconst _RPI = \"RegisterPublisherInput\";\nconst _RPO = \"RegisterPublisherOutput\";\nconst _RPe = \"ResourcesProcessing\";\nconst _RPeg = \"RegisterPublisher\";\nconst _RPes = \"ResourcesPending\";\nconst _RR = \"RetainResources\";\nconst _RRe = \"ResourcesRead\";\nconst _RRel = \"RelatedResources\";\nconst _RRem = \"RemoveResources\";\nconst _RReq = \"RequiresRecreation\";\nconst _RS = \"RetainStacks\";\nconst _RSF = \"RegistrationStatusFilter\";\nconst _RSI = \"ResourceScanId\";\nconst _RSIPE = \"ResourceScanInProgressException\";\nconst _RSIo = \"RollbackStackInput\";\nconst _RSLEE = \"ResourceScanLimitExceededException\";\nconst _RSNFE = \"ResourceScanNotFoundException\";\nconst _RSO = \"RollbackStackOutput\";\nconst _RSOAR = \"RetainStacksOnAccountRemoval\";\nconst _RSR = \"ResourceStatusReason\";\nconst _RSS = \"ResourceScanSummaries\";\nconst _RSSe = \"ResourceScanSummary\";\nconst _RSe = \"ResourcesScanned\";\nconst _RSes = \"ResourceStatus\";\nconst _RSeso = \"ResourcesSucceeded\";\nconst _RSo = \"RollbackStack\";\nconst _RT = \"ResourceType\";\nconst _RTD = \"ResourceTargetDetails\";\nconst _RTDe = \"ResourceTargetDefinition\";\nconst _RTI = \"ResourcesToImport\";\nconst _RTIe = \"RegisterTypeInput\";\nconst _RTIes = \"ResourceToImport\";\nconst _RTL = \"RegistrationTokenList\";\nconst _RTO = \"RegisterTypeOutput\";\nconst _RTP = \"ResourceTypePrefix\";\nconst _RTS = \"ResourcesToSkip\";\nconst _RTe = \"ResourceTypes\";\nconst _RTeg = \"RegistrationToken\";\nconst _RTegi = \"RegisterType\";\nconst _RTo = \"RollbackTriggers\";\nconst _RTol = \"RollbackTrigger\";\nconst _RV = \"ResolvedValue\";\nconst _Re = \"Regions\";\nconst _Rea = \"Reason\";\nconst _Reg = \"Region\";\nconst _Rep = \"Replacement\";\nconst _Req = \"Required\";\nconst _S = \"Status\";\nconst _SA = \"StagesAvailable\";\nconst _SD = \"StackDefinitions\";\nconst _SDDI = \"StackDriftDetectionId\";\nconst _SDI = \"StackDriftInformation\";\nconst _SDIS = \"StackDriftInformationSummary\";\nconst _SDS = \"StackDriftStatus\";\nconst _SDt = \"StackDefinition\";\nconst _SDta = \"StatusDetails\";\nconst _SE = \"StackEvents\";\nconst _SEt = \"StackEvent\";\nconst _SF = \"ScanFilters\";\nconst _SFc = \"ScanFilter\";\nconst _SHP = \"SchemaHandlerPackage\";\nconst _SI = \"StackId\";\nconst _SIA = \"StackInstanceAccount\";\nconst _SICS = \"StackInstanceComprehensiveStatus\";\nconst _SIF = \"StackInstanceFilter\";\nconst _SIFt = \"StackInstanceFilters\";\nconst _SINFE = \"StackInstanceNotFoundException\";\nconst _SIR = \"StackInstanceRegion\";\nconst _SIRDS = \"StackInstanceResourceDriftStatuses\";\nconst _SIRDSt = \"StackInstanceResourceDriftsSummary\";\nconst _SIRDSta = \"StackInstanceResourceDriftsSummaries\";\nconst _SIS = \"StackInstanceStatus\";\nconst _SISt = \"StackInstanceSummary\";\nconst _SISta = \"StackInstanceSummaries\";\nconst _SIU = \"StackIdsUrl\";\nconst _SIt = \"StackInstance\";\nconst _SIta = \"StackIds\";\nconst _SL = \"SeverityLevel\";\nconst _SM = \"StatusMessage\";\nconst _SMV = \"SupportedMajorVersions\";\nconst _SN = \"StackName\";\nconst _SNFE = \"StackNotFoundException\";\nconst _SPB = \"StackPolicyBody\";\nconst _SPDUB = \"StackPolicyDuringUpdateBody\";\nconst _SPDUURL = \"StackPolicyDuringUpdateURL\";\nconst _SPURL = \"StackPolicyURL\";\nconst _SR = \"StatusReason\";\nconst _SRA = \"StackRefactorActions\";\nconst _SRAt = \"StackRefactorAction\";\nconst _SRD = \"StackResourceDrifts\";\nconst _SRDI = \"StackResourceDriftInformation\";\nconst _SRDIS = \"StackResourceDriftInformationSummary\";\nconst _SRDS = \"StackResourceDriftStatus\";\nconst _SRDSF = \"StackResourceDriftStatusFilters\";\nconst _SRDt = \"StackResourceDetail\";\nconst _SRDta = \"StackResourceDrift\";\nconst _SRE = \"StaleRequestException\";\nconst _SRI = \"StackRefactorId\";\nconst _SRIc = \"ScannedResourceIdentifier\";\nconst _SRIca = \"ScannedResourceIdentifiers\";\nconst _SRIi = \"SignalResourceInput\";\nconst _SRNFE = \"StackRefactorNotFoundException\";\nconst _SRS = \"StackRefactorSummaries\";\nconst _SRSI = \"StartResourceScanInput\";\nconst _SRSO = \"StartResourceScanOutput\";\nconst _SRSt = \"StackResourceSummaries\";\nconst _SRSta = \"StackRefactorSummary\";\nconst _SRStac = \"StackResourceSummary\";\nconst _SRStar = \"StartResourceScan\";\nconst _SRTR = \"StackRefactorTagResources\";\nconst _SRc = \"ScannedResource\";\nconst _SRca = \"ScannedResources\";\nconst _SRi = \"SignalResource\";\nconst _SRt = \"StackResources\";\nconst _SRta = \"StackResource\";\nconst _SS = \"StackSet\";\nconst _SSADTS = \"StackSetAutoDeploymentTargetSummary\";\nconst _SSADTSt = \"StackSetAutoDeploymentTargetSummaries\";\nconst _SSARN = \"StackSetARN\";\nconst _SSDDD = \"StackSetDriftDetectionDetails\";\nconst _SSF = \"StackStatusFilter\";\nconst _SSI = \"StackSetId\";\nconst _SSN = \"StackSetName\";\nconst _SSNEE = \"StackSetNotEmptyException\";\nconst _SSNFE = \"StackSetNotFoundException\";\nconst _SSO = \"StackSetOperation\";\nconst _SSOP = \"StackSetOperationPreferences\";\nconst _SSORS = \"StackSetOperationResultSummary\";\nconst _SSORSt = \"StackSetOperationResultSummaries\";\nconst _SSOS = \"StackSetOperationSummary\";\nconst _SSOSD = \"StackSetOperationStatusDetails\";\nconst _SSOSt = \"StackSetOperationSummaries\";\nconst _SSP = \"SetStackPolicy\";\nconst _SSPI = \"SetStackPolicyInput\";\nconst _SSR = \"StackStatusReason\";\nconst _SSS = \"StackSetSummary\";\nconst _SSSO = \"StopStackSetOperation\";\nconst _SSSOI = \"StopStackSetOperationInput\";\nconst _SSSOO = \"StopStackSetOperationOutput\";\nconst _SSSt = \"StackSetSummaries\";\nconst _SSt = \"StackSummaries\";\nconst _SSta = \"StackStatus\";\nconst _SStac = \"StackSummary\";\nconst _ST = \"StartTime\";\nconst _STC = \"SetTypeConfiguration\";\nconst _STCI = \"SetTypeConfigurationInput\";\nconst _STCO = \"SetTypeConfigurationOutput\";\nconst _STDV = \"SetTypeDefaultVersion\";\nconst _STDVI = \"SetTypeDefaultVersionInput\";\nconst _STDVO = \"SetTypeDefaultVersionOutput\";\nconst _STF = \"ScanTypeFilter\";\nconst _STc = \"ScanType\";\nconst _SU = \"SourceUrl\";\nconst _Sc = \"Schema\";\nconst _Sco = \"Scope\";\nconst _So = \"Source\";\nconst _St = \"Stacks\";\nconst _Sta = \"Stack\";\nconst _Su = \"Summaries\";\nconst _T = \"Type\";\nconst _TA = \"TypeArn\";\nconst _TAEE = \"TokenAlreadyExistsException\";\nconst _TB = \"TemplateBody\";\nconst _TC = \"TypeConfigurations\";\nconst _TCA = \"TypeConfigurationAlias\";\nconst _TCAy = \"TypeConfigurationArn\";\nconst _TCD = \"TypeConfigurationDetails\";\nconst _TCDL = \"TypeConfigurationDetailsList\";\nconst _TCI = \"TypeConfigurationIdentifier\";\nconst _TCIy = \"TypeConfigurationIdentifiers\";\nconst _TCNFE = \"TypeConfigurationNotFoundException\";\nconst _TCVI = \"TypeConfigurationVersionId\";\nconst _TCe = \"TemplateConfiguration\";\nconst _TCi = \"TimeCreated\";\nconst _TD = \"TargetDetails\";\nconst _TDe = \"TemplateDescription\";\nconst _TF = \"TypeFilters\";\nconst _TH = \"TypeHierarchy\";\nconst _TI = \"TargetId\";\nconst _TIM = \"TimeoutInMinutes\";\nconst _TK = \"TagKey\";\nconst _TN = \"TypeName\";\nconst _TNA = \"TypeNameAlias\";\nconst _TNFE = \"TypeNotFoundException\";\nconst _TNP = \"TypeNamePrefix\";\nconst _TP = \"TemplateParameter\";\nconst _TPe = \"TemplateProgress\";\nconst _TPem = \"TemplateParameters\";\nconst _TR = \"TagResources\";\nconst _TS = \"TemplateStage\";\nconst _TSC = \"TemplateSummaryConfig\";\nconst _TSIC = \"TotalStackInstancesCount\";\nconst _TSe = \"TemplateSummary\";\nconst _TSem = \"TemplateSummaries\";\nconst _TSy = \"TypeSummaries\";\nconst _TSyp = \"TypeSummary\";\nconst _TT = \"TargetType\";\nconst _TTI = \"TestTypeInput\";\nconst _TTN = \"TargetTypeName\";\nconst _TTO = \"TestTypeOutput\";\nconst _TTS = \"TypeTestsStatus\";\nconst _TTSD = \"TypeTestsStatusDescription\";\nconst _TTe = \"TestType\";\nconst _TURL = \"TemplateURL\";\nconst _TURTAW = \"TreatUnrecognizedResourceTypesAsWarnings\";\nconst _TV = \"TagValue\";\nconst _TVA = \"TypeVersionArn\";\nconst _TVI = \"TypeVersionId\";\nconst _TVS = \"TypeVersionSummaries\";\nconst _TVSy = \"TypeVersionSummary\";\nconst _TW = \"TotalWarnings\";\nconst _Ta = \"Tags\";\nconst _Tag = \"Tag\";\nconst _Tar = \"Target\";\nconst _Ti = \"Timestamp\";\nconst _Ty = \"Types\";\nconst _U = \"Url\";\nconst _UGT = \"UpdateGeneratedTemplate\";\nconst _UGTI = \"UpdateGeneratedTemplateInput\";\nconst _UGTO = \"UpdateGeneratedTemplateOutput\";\nconst _UI = \"UniqueId\";\nconst _UPT = \"UsePreviousTemplate\";\nconst _UPV = \"UsePreviousValue\";\nconst _UR = \"UntagResources\";\nconst _URP = \"UpdateReplacePolicy\";\nconst _URT = \"UnrecognizedResourceTypes\";\nconst _US = \"UpdateStack\";\nconst _USI = \"UpdateStackInput\";\nconst _USII = \"UpdateStackInstancesInput\";\nconst _USIO = \"UpdateStackInstancesOutput\";\nconst _USIp = \"UpdateStackInstances\";\nconst _USO = \"UpdateStackOutput\";\nconst _USS = \"UpdateStackSet\";\nconst _USSI = \"UpdateStackSetInput\";\nconst _USSO = \"UpdateStackSetOutput\";\nconst _UTC = \"UnprocessedTypeConfigurations\";\nconst _UTP = \"UpdateTerminationProtection\";\nconst _UTPI = \"UpdateTerminationProtectionInput\";\nconst _UTPO = \"UpdateTerminationProtectionOutput\";\nconst _V = \"Value\";\nconst _VB = \"VersionBump\";\nconst _VFM = \"ValidationFailureMode\";\nconst _VI = \"VersionId\";\nconst _VN = \"ValidationName\";\nconst _VP = \"ValidationPath\";\nconst _VS = \"ValidationStatus\";\nconst _VSR = \"ValidationStatusReason\";\nconst _VT = \"ValidateTemplate\";\nconst _VTI = \"ValidateTemplateInput\";\nconst _VTO = \"ValidateTemplateOutput\";\nconst _Va = \"Values\";\nconst _Ve = \"Version\";\nconst _Vi = \"Visibility\";\nconst _W = \"Warnings\";\nconst _WD = \"WarningDetail\";\nconst _WDa = \"WarningDetails\";\nconst _WP = \"WarningProperty\";\nconst _WPa = \"WarningProperties\";\nconst _aQE = \"awsQueryError\";\nconst _c = \"client\";\nconst _e = \"error\";\nconst _hE = \"httpError\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.cloudformation\";\nconst n0 = \"com.amazonaws.cloudformation\";\nconst schema_1 = require(\"@smithy/core/schema\");\nconst CloudFormationServiceException_1 = require(\"../models/CloudFormationServiceException\");\nconst errors_1 = require(\"../models/errors\");\nconst _s_registry = schema_1.TypeRegistry.for(_s);\nexports.CloudFormationServiceException$ = [-3, _s, \"CloudFormationServiceException\", 0, [], []];\n_s_registry.registerError(exports.CloudFormationServiceException$, CloudFormationServiceException_1.CloudFormationServiceException);\nconst n0_registry = schema_1.TypeRegistry.for(n0);\nexports.AlreadyExistsException$ = [-3, n0, _AEE,\n { [_aQE]: [`AlreadyExistsException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.AlreadyExistsException$, errors_1.AlreadyExistsException);\nexports.CFNRegistryException$ = [-3, n0, _CFNRE,\n { [_aQE]: [`CFNRegistryException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.CFNRegistryException$, errors_1.CFNRegistryException);\nexports.ChangeSetNotFoundException$ = [-3, n0, _CSNFE,\n { [_aQE]: [`ChangeSetNotFound`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ChangeSetNotFoundException$, errors_1.ChangeSetNotFoundException);\nexports.ConcurrentResourcesLimitExceededException$ = [-3, n0, _CRLEE,\n { [_aQE]: [`ConcurrentResourcesLimitExceeded`, 429], [_e]: _c, [_hE]: 429 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ConcurrentResourcesLimitExceededException$, errors_1.ConcurrentResourcesLimitExceededException);\nexports.CreatedButModifiedException$ = [-3, n0, _CBME,\n { [_aQE]: [`CreatedButModifiedException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.CreatedButModifiedException$, errors_1.CreatedButModifiedException);\nexports.GeneratedTemplateNotFoundException$ = [-3, n0, _GTNFE,\n { [_aQE]: [`GeneratedTemplateNotFound`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.GeneratedTemplateNotFoundException$, errors_1.GeneratedTemplateNotFoundException);\nexports.HookResultNotFoundException$ = [-3, n0, _HRNFE,\n { [_aQE]: [`HookResultNotFound`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.HookResultNotFoundException$, errors_1.HookResultNotFoundException);\nexports.InsufficientCapabilitiesException$ = [-3, n0, _ICE,\n { [_aQE]: [`InsufficientCapabilitiesException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InsufficientCapabilitiesException$, errors_1.InsufficientCapabilitiesException);\nexports.InvalidChangeSetStatusException$ = [-3, n0, _ICSSE,\n { [_aQE]: [`InvalidChangeSetStatus`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InvalidChangeSetStatusException$, errors_1.InvalidChangeSetStatusException);\nexports.InvalidOperationException$ = [-3, n0, _IOE,\n { [_aQE]: [`InvalidOperationException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InvalidOperationException$, errors_1.InvalidOperationException);\nexports.InvalidStateTransitionException$ = [-3, n0, _ISTE,\n { [_aQE]: [`InvalidStateTransition`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InvalidStateTransitionException$, errors_1.InvalidStateTransitionException);\nexports.LimitExceededException$ = [-3, n0, _LEE,\n { [_aQE]: [`LimitExceededException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.LimitExceededException$, errors_1.LimitExceededException);\nexports.NameAlreadyExistsException$ = [-3, n0, _NAEE,\n { [_aQE]: [`NameAlreadyExistsException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.NameAlreadyExistsException$, errors_1.NameAlreadyExistsException);\nexports.OperationIdAlreadyExistsException$ = [-3, n0, _OIAEE,\n { [_aQE]: [`OperationIdAlreadyExistsException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationIdAlreadyExistsException$, errors_1.OperationIdAlreadyExistsException);\nexports.OperationInProgressException$ = [-3, n0, _OIPE,\n { [_aQE]: [`OperationInProgressException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationInProgressException$, errors_1.OperationInProgressException);\nexports.OperationNotFoundException$ = [-3, n0, _ONFE,\n { [_aQE]: [`OperationNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationNotFoundException$, errors_1.OperationNotFoundException);\nexports.OperationStatusCheckFailedException$ = [-3, n0, _OSCFE,\n { [_aQE]: [`ConditionalCheckFailed`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationStatusCheckFailedException$, errors_1.OperationStatusCheckFailedException);\nexports.ResourceScanInProgressException$ = [-3, n0, _RSIPE,\n { [_aQE]: [`ResourceScanInProgress`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ResourceScanInProgressException$, errors_1.ResourceScanInProgressException);\nexports.ResourceScanLimitExceededException$ = [-3, n0, _RSLEE,\n { [_aQE]: [`ResourceScanLimitExceeded`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ResourceScanLimitExceededException$, errors_1.ResourceScanLimitExceededException);\nexports.ResourceScanNotFoundException$ = [-3, n0, _RSNFE,\n { [_aQE]: [`ResourceScanNotFound`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ResourceScanNotFoundException$, errors_1.ResourceScanNotFoundException);\nexports.StackInstanceNotFoundException$ = [-3, n0, _SINFE,\n { [_aQE]: [`StackInstanceNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackInstanceNotFoundException$, errors_1.StackInstanceNotFoundException);\nexports.StackNotFoundException$ = [-3, n0, _SNFE,\n { [_aQE]: [`StackNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackNotFoundException$, errors_1.StackNotFoundException);\nexports.StackRefactorNotFoundException$ = [-3, n0, _SRNFE,\n { [_aQE]: [`StackRefactorNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackRefactorNotFoundException$, errors_1.StackRefactorNotFoundException);\nexports.StackSetNotEmptyException$ = [-3, n0, _SSNEE,\n { [_aQE]: [`StackSetNotEmptyException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackSetNotEmptyException$, errors_1.StackSetNotEmptyException);\nexports.StackSetNotFoundException$ = [-3, n0, _SSNFE,\n { [_aQE]: [`StackSetNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackSetNotFoundException$, errors_1.StackSetNotFoundException);\nexports.StaleRequestException$ = [-3, n0, _SRE,\n { [_aQE]: [`StaleRequestException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StaleRequestException$, errors_1.StaleRequestException);\nexports.TokenAlreadyExistsException$ = [-3, n0, _TAEE,\n { [_aQE]: [`TokenAlreadyExistsException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.TokenAlreadyExistsException$, errors_1.TokenAlreadyExistsException);\nexports.TypeConfigurationNotFoundException$ = [-3, n0, _TCNFE,\n { [_aQE]: [`TypeConfigurationNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.TypeConfigurationNotFoundException$, errors_1.TypeConfigurationNotFoundException);\nexports.TypeNotFoundException$ = [-3, n0, _TNFE,\n { [_aQE]: [`TypeNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.TypeNotFoundException$, errors_1.TypeNotFoundException);\nexports.errorTypeRegistries = [\n _s_registry,\n n0_registry,\n];\nexports.AccountGateResult$ = [3, n0, _AGR,\n 0,\n [_S, _SR],\n [0, 0]\n];\nexports.AccountLimit$ = [3, n0, _AL,\n 0,\n [_N, _V],\n [0, 1]\n];\nexports.ActivateOrganizationsAccessInput$ = [3, n0, _AOAI,\n 0,\n [],\n []\n];\nexports.ActivateOrganizationsAccessOutput$ = [3, n0, _AOAO,\n 0,\n [],\n []\n];\nexports.ActivateTypeInput$ = [3, n0, _ATI,\n 0,\n [_T, _PTA, _PI, _TN, _TNA, _AU, _LC, _ERA, _VB, _MV],\n [0, 0, 0, 0, 0, 2, () => exports.LoggingConfig$, 0, 0, 1]\n];\nexports.ActivateTypeOutput$ = [3, n0, _ATO,\n 0,\n [_A],\n [0]\n];\nexports.Annotation$ = [3, n0, _An,\n 0,\n [_AN, _S, _SM, _RM, _RL, _SL],\n [0, 0, 0, 0, 0, 0]\n];\nexports.AutoDeployment$ = [3, n0, _AD,\n 0,\n [_E, _RSOAR, _DO],\n [2, 2, 64 | 0]\n];\nexports.BatchDescribeTypeConfigurationsError$ = [3, n0, _BDTCE,\n 0,\n [_EC, _EM, _TCI],\n [0, 0, () => exports.TypeConfigurationIdentifier$]\n];\nexports.BatchDescribeTypeConfigurationsInput$ = [3, n0, _BDTCI,\n 0,\n [_TCIy],\n [() => TypeConfigurationIdentifiers], 1\n];\nexports.BatchDescribeTypeConfigurationsOutput$ = [3, n0, _BDTCO,\n 0,\n [_Er, _UTC, _TC],\n [() => BatchDescribeTypeConfigurationsErrors, () => UnprocessedTypeConfigurations, () => TypeConfigurationDetailsList]\n];\nexports.CancelUpdateStackInput$ = [3, n0, _CUSI,\n 0,\n [_SN, _CRT],\n [0, 0], 1\n];\nexports.Change$ = [3, n0, _C,\n 0,\n [_T, _HIC, _RC],\n [0, 1, () => exports.ResourceChange$]\n];\nexports.ChangeSetHook$ = [3, n0, _CSH,\n 0,\n [_IP, _FM, _TN, _TVI, _TCVI, _TD],\n [0, 0, 0, 0, 0, () => exports.ChangeSetHookTargetDetails$]\n];\nexports.ChangeSetHookResourceTargetDetails$ = [3, n0, _CSHRTD,\n 0,\n [_LRI, _RT, _RA],\n [0, 0, 0]\n];\nexports.ChangeSetHookTargetDetails$ = [3, n0, _CSHTD,\n 0,\n [_TT, _RTD],\n [0, () => exports.ChangeSetHookResourceTargetDetails$]\n];\nexports.ChangeSetSummary$ = [3, n0, _CSS,\n 0,\n [_SI, _SN, _CSI, _CSN, _ES, _S, _SR, _CT, _D, _INS, _PCSI, _RCSI, _IER],\n [0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 2]\n];\nexports.ContinueUpdateRollbackInput$ = [3, n0, _CURI,\n 0,\n [_SN, _RARN, _RTS, _CRT],\n [0, 0, 64 | 0, 0], 1\n];\nexports.ContinueUpdateRollbackOutput$ = [3, n0, _CURO,\n 0,\n [],\n []\n];\nexports.CreateChangeSetInput$ = [3, n0, _CCSI,\n 0,\n [_SN, _CSN, _TB, _TURL, _UPT, _P, _Ca, _RTe, _RARN, _RCo, _NARN, _Ta, _CTl, _D, _CST, _RTI, _INS, _OSF, _IER, _DM],\n [0, 0, 0, 0, 2, () => _Parameters, 64 | 0, 64 | 0, 0, () => exports.RollbackConfiguration$, 64 | 0, () => Tags, 0, 0, 0, () => ResourcesToImport, 2, 0, 2, 0], 2\n];\nexports.CreateChangeSetOutput$ = [3, n0, _CCSO,\n 0,\n [_I, _SI],\n [0, 0]\n];\nexports.CreateGeneratedTemplateInput$ = [3, n0, _CGTI,\n 0,\n [_GTN, _R, _SN, _TCe],\n [0, () => ResourceDefinitions, 0, () => exports.TemplateConfiguration$], 1\n];\nexports.CreateGeneratedTemplateOutput$ = [3, n0, _CGTO,\n 0,\n [_GTI],\n [0]\n];\nexports.CreateStackInput$ = [3, n0, _CSIr,\n 0,\n [_SN, _TB, _TURL, _P, _DR, _RCo, _TIM, _NARN, _Ca, _RTe, _RARN, _OF, _SPB, _SPURL, _Ta, _CRT, _ETP, _REOC],\n [0, 0, 0, () => _Parameters, 2, () => exports.RollbackConfiguration$, 1, 64 | 0, 64 | 0, 64 | 0, 0, 0, 0, 0, () => Tags, 0, 2, 2], 1\n];\nexports.CreateStackInstancesInput$ = [3, n0, _CSII,\n 0,\n [_SSN, _Re, _Ac, _DT, _PO, _OP, _OI, _CA],\n [0, 64 | 0, 64 | 0, () => exports.DeploymentTargets$, () => _Parameters, () => exports.StackSetOperationPreferences$, [0, 4], 0], 2\n];\nexports.CreateStackInstancesOutput$ = [3, n0, _CSIO,\n 0,\n [_OI],\n [0]\n];\nexports.CreateStackOutput$ = [3, n0, _CSO,\n 0,\n [_SI, _OI],\n [0, 0]\n];\nexports.CreateStackRefactorInput$ = [3, n0, _CSRI,\n 0,\n [_SD, _D, _ESC, _RMe],\n [() => StackDefinitions, 0, 2, () => ResourceMappings], 1\n];\nexports.CreateStackRefactorOutput$ = [3, n0, _CSRO,\n 0,\n [_SRI],\n [0], 1\n];\nexports.CreateStackSetInput$ = [3, n0, _CSSI,\n 0,\n [_SSN, _D, _TB, _TURL, _SI, _P, _Ca, _Ta, _ARARN, _ERN, _PM, _AD, _CA, _CRT, _ME],\n [0, 0, 0, 0, 0, () => _Parameters, 64 | 0, () => Tags, 0, 0, 0, () => exports.AutoDeployment$, 0, [0, 4], () => exports.ManagedExecution$], 1\n];\nexports.CreateStackSetOutput$ = [3, n0, _CSSO,\n 0,\n [_SSI],\n [0]\n];\nexports.DeactivateOrganizationsAccessInput$ = [3, n0, _DOAI,\n 0,\n [],\n []\n];\nexports.DeactivateOrganizationsAccessOutput$ = [3, n0, _DOAO,\n 0,\n [],\n []\n];\nexports.DeactivateTypeInput$ = [3, n0, _DTI,\n 0,\n [_TN, _T, _A],\n [0, 0, 0]\n];\nexports.DeactivateTypeOutput$ = [3, n0, _DTO,\n 0,\n [],\n []\n];\nexports.DeleteChangeSetInput$ = [3, n0, _DCSI,\n 0,\n [_CSN, _SN],\n [0, 0], 1\n];\nexports.DeleteChangeSetOutput$ = [3, n0, _DCSO,\n 0,\n [],\n []\n];\nexports.DeleteGeneratedTemplateInput$ = [3, n0, _DGTI,\n 0,\n [_GTN],\n [0], 1\n];\nexports.DeleteStackInput$ = [3, n0, _DSI,\n 0,\n [_SN, _RR, _RARN, _CRT, _DMe],\n [0, 64 | 0, 0, 0, 0], 1\n];\nexports.DeleteStackInstancesInput$ = [3, n0, _DSII,\n 0,\n [_SSN, _Re, _RS, _Ac, _DT, _OP, _OI, _CA],\n [0, 64 | 0, 2, 64 | 0, () => exports.DeploymentTargets$, () => exports.StackSetOperationPreferences$, [0, 4], 0], 3\n];\nexports.DeleteStackInstancesOutput$ = [3, n0, _DSIO,\n 0,\n [_OI],\n [0]\n];\nexports.DeleteStackSetInput$ = [3, n0, _DSSI,\n 0,\n [_SSN, _CA],\n [0, 0], 1\n];\nexports.DeleteStackSetOutput$ = [3, n0, _DSSO,\n 0,\n [],\n []\n];\nexports.DeploymentTargets$ = [3, n0, _DT,\n 0,\n [_Ac, _AUc, _OUI, _AFT],\n [64 | 0, 0, 64 | 0, 0]\n];\nexports.DeregisterTypeInput$ = [3, n0, _DTIe,\n 0,\n [_A, _T, _TN, _VI],\n [0, 0, 0, 0]\n];\nexports.DeregisterTypeOutput$ = [3, n0, _DTOe,\n 0,\n [],\n []\n];\nexports.DescribeAccountLimitsInput$ = [3, n0, _DALI,\n 0,\n [_NT],\n [0]\n];\nexports.DescribeAccountLimitsOutput$ = [3, n0, _DALO,\n 0,\n [_ALc, _NT],\n [() => AccountLimitList, 0]\n];\nexports.DescribeChangeSetHooksInput$ = [3, n0, _DCSHI,\n 0,\n [_CSN, _SN, _NT, _LRI],\n [0, 0, 0, 0], 1\n];\nexports.DescribeChangeSetHooksOutput$ = [3, n0, _DCSHO,\n 0,\n [_CSI, _CSN, _H, _S, _NT, _SI, _SN],\n [0, 0, () => ChangeSetHooks, 0, 0, 0, 0]\n];\nexports.DescribeChangeSetInput$ = [3, n0, _DCSIe,\n 0,\n [_CSN, _SN, _NT, _IPV],\n [0, 0, 0, 2], 1\n];\nexports.DescribeChangeSetOutput$ = [3, n0, _DCSOe,\n 0,\n [_CSN, _CSI, _SI, _SN, _D, _P, _CT, _ES, _S, _SR, _SDS, _NARN, _RCo, _Ca, _Ta, _Ch, _NT, _INS, _PCSI, _RCSI, _OSF, _IER, _DM],\n [0, 0, 0, 0, 0, () => _Parameters, 4, 0, 0, 0, 0, 64 | 0, () => exports.RollbackConfiguration$, 64 | 0, () => Tags, () => Changes, 0, 2, 0, 0, 0, 2, 0]\n];\nexports.DescribeEventsInput$ = [3, n0, _DEI,\n 0,\n [_SN, _CSN, _OI, _F, _NT],\n [0, 0, 0, () => exports.EventFilter$, 0]\n];\nexports.DescribeEventsOutput$ = [3, n0, _DEO,\n 0,\n [_OE, _NT],\n [() => OperationEvents, 0]\n];\nexports.DescribeGeneratedTemplateInput$ = [3, n0, _DGTIe,\n 0,\n [_GTN],\n [0], 1\n];\nexports.DescribeGeneratedTemplateOutput$ = [3, n0, _DGTO,\n 0,\n [_GTI, _GTN, _R, _S, _SR, _CT, _LUT, _Pr, _SI, _TCe, _TW],\n [0, 0, () => ResourceDetails, 0, 0, 4, 4, () => exports.TemplateProgress$, 0, () => exports.TemplateConfiguration$, 1]\n];\nexports.DescribeOrganizationsAccessInput$ = [3, n0, _DOAIe,\n 0,\n [_CA],\n [0]\n];\nexports.DescribeOrganizationsAccessOutput$ = [3, n0, _DOAOe,\n 0,\n [_S],\n [0]\n];\nexports.DescribePublisherInput$ = [3, n0, _DPI,\n 0,\n [_PI],\n [0]\n];\nexports.DescribePublisherOutput$ = [3, n0, _DPO,\n 0,\n [_PI, _PS, _IPd, _PP],\n [0, 0, 0, 0]\n];\nexports.DescribeResourceScanInput$ = [3, n0, _DRSI,\n 0,\n [_RSI],\n [0], 1\n];\nexports.DescribeResourceScanOutput$ = [3, n0, _DRSO,\n 0,\n [_RSI, _S, _SR, _ST, _ET, _PC, _RTe, _RSe, _RRe, _SF],\n [0, 0, 0, 4, 4, 1, 64 | 0, 1, 1, () => ScanFilters]\n];\nexports.DescribeStackDriftDetectionStatusInput$ = [3, n0, _DSDDSI,\n 0,\n [_SDDI],\n [0], 1\n];\nexports.DescribeStackDriftDetectionStatusOutput$ = [3, n0, _DSDDSO,\n 0,\n [_SI, _SDDI, _DS, _Ti, _SDS, _DSR, _DSRC],\n [0, 0, 0, 4, 0, 0, 1], 4\n];\nexports.DescribeStackEventsInput$ = [3, n0, _DSEI,\n 0,\n [_SN, _NT],\n [0, 0], 1\n];\nexports.DescribeStackEventsOutput$ = [3, n0, _DSEO,\n 0,\n [_SE, _NT],\n [() => StackEvents, 0]\n];\nexports.DescribeStackInstanceInput$ = [3, n0, _DSIIe,\n 0,\n [_SSN, _SIA, _SIR, _CA],\n [0, 0, 0, 0], 3\n];\nexports.DescribeStackInstanceOutput$ = [3, n0, _DSIOe,\n 0,\n [_SIt],\n [() => exports.StackInstance$]\n];\nexports.DescribeStackRefactorInput$ = [3, n0, _DSRI,\n 0,\n [_SRI],\n [0], 1\n];\nexports.DescribeStackRefactorOutput$ = [3, n0, _DSRO,\n 0,\n [_D, _SRI, _SIta, _ES, _ESR, _S, _SR],\n [0, 0, 64 | 0, 0, 0, 0, 0]\n];\nexports.DescribeStackResourceDriftsInput$ = [3, n0, _DSRDI,\n 0,\n [_SN, _SRDSF, _NT, _MR],\n [0, 64 | 0, 0, 1], 1\n];\nexports.DescribeStackResourceDriftsOutput$ = [3, n0, _DSRDO,\n 0,\n [_SRD, _NT],\n [() => StackResourceDrifts, 0], 1\n];\nexports.DescribeStackResourceInput$ = [3, n0, _DSRIe,\n 0,\n [_SN, _LRI],\n [0, 0], 2\n];\nexports.DescribeStackResourceOutput$ = [3, n0, _DSROe,\n 0,\n [_SRDt],\n [() => exports.StackResourceDetail$]\n];\nexports.DescribeStackResourcesInput$ = [3, n0, _DSRIes,\n 0,\n [_SN, _LRI, _PRI],\n [0, 0, 0]\n];\nexports.DescribeStackResourcesOutput$ = [3, n0, _DSROes,\n 0,\n [_SRt],\n [() => StackResources]\n];\nexports.DescribeStackSetInput$ = [3, n0, _DSSIe,\n 0,\n [_SSN, _CA],\n [0, 0], 1\n];\nexports.DescribeStackSetOperationInput$ = [3, n0, _DSSOI,\n 0,\n [_SSN, _OI, _CA],\n [0, 0, 0], 2\n];\nexports.DescribeStackSetOperationOutput$ = [3, n0, _DSSOO,\n 0,\n [_SSO],\n [() => exports.StackSetOperation$]\n];\nexports.DescribeStackSetOutput$ = [3, n0, _DSSOe,\n 0,\n [_SS],\n [() => exports.StackSet$]\n];\nexports.DescribeStacksInput$ = [3, n0, _DSIe,\n 0,\n [_SN, _NT],\n [0, 0]\n];\nexports.DescribeStacksOutput$ = [3, n0, _DSO,\n 0,\n [_St, _NT],\n [() => Stacks, 0]\n];\nexports.DescribeTypeInput$ = [3, n0, _DTIes,\n 0,\n [_T, _TN, _A, _VI, _PI, _PVN],\n [0, 0, 0, 0, 0, 0]\n];\nexports.DescribeTypeOutput$ = [3, n0, _DTOes,\n 0,\n [_A, _T, _TN, _DVI, _IDV, _TTS, _TTSD, _D, _Sc, _PT, _DSe, _LC, _RAT, _ERA, _Vi, _SU, _DU, _LU, _TCi, _CS, _PI, _OTN, _OTA, _PVN, _LPV, _IA, _AU],\n [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, () => exports.LoggingConfig$, () => RequiredActivatedTypes, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 2, 2]\n];\nexports.DescribeTypeRegistrationInput$ = [3, n0, _DTRI,\n 0,\n [_RTeg],\n [0], 1\n];\nexports.DescribeTypeRegistrationOutput$ = [3, n0, _DTRO,\n 0,\n [_PSr, _D, _TA, _TVA],\n [0, 0, 0, 0]\n];\nexports.DetectStackDriftInput$ = [3, n0, _DSDI,\n 0,\n [_SN, _LRIo],\n [0, 64 | 0], 1\n];\nexports.DetectStackDriftOutput$ = [3, n0, _DSDO,\n 0,\n [_SDDI],\n [0], 1\n];\nexports.DetectStackResourceDriftInput$ = [3, n0, _DSRDIe,\n 0,\n [_SN, _LRI],\n [0, 0], 2\n];\nexports.DetectStackResourceDriftOutput$ = [3, n0, _DSRDOe,\n 0,\n [_SRDta],\n [() => exports.StackResourceDrift$], 1\n];\nexports.DetectStackSetDriftInput$ = [3, n0, _DSSDI,\n 0,\n [_SSN, _OP, _OI, _CA],\n [0, () => exports.StackSetOperationPreferences$, [0, 4], 0], 1\n];\nexports.DetectStackSetDriftOutput$ = [3, n0, _DSSDO,\n 0,\n [_OI],\n [0]\n];\nexports.EstimateTemplateCostInput$ = [3, n0, _ETCI,\n 0,\n [_TB, _TURL, _P],\n [0, 0, () => _Parameters]\n];\nexports.EstimateTemplateCostOutput$ = [3, n0, _ETCO,\n 0,\n [_U],\n [0]\n];\nexports.EventFilter$ = [3, n0, _EF,\n 0,\n [_FE],\n [2]\n];\nexports.ExecuteChangeSetInput$ = [3, n0, _ECSI,\n 0,\n [_CSN, _SN, _CRT, _DR, _REOC],\n [0, 0, 0, 2, 2], 1\n];\nexports.ExecuteChangeSetOutput$ = [3, n0, _ECSO,\n 0,\n [],\n []\n];\nexports.ExecuteStackRefactorInput$ = [3, n0, _ESRI,\n 0,\n [_SRI],\n [0], 1\n];\nexports.Export$ = [3, n0, _Ex,\n 0,\n [_ESI, _N, _V],\n [0, 0, 0]\n];\nexports.GetGeneratedTemplateInput$ = [3, n0, _GGTI,\n 0,\n [_GTN, _Fo],\n [0, 0], 1\n];\nexports.GetGeneratedTemplateOutput$ = [3, n0, _GGTO,\n 0,\n [_S, _TB],\n [0, 0]\n];\nexports.GetHookResultInput$ = [3, n0, _GHRI,\n 0,\n [_HRI],\n [0]\n];\nexports.GetHookResultOutput$ = [3, n0, _GHRO,\n 0,\n [_HRI, _IP, _FM, _TN, _OTN, _TVI, _TCVI, _TA, _S, _HSR, _IAn, _Tar, _Ann],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, () => exports.HookTarget$, () => AnnotationList]\n];\nexports.GetStackPolicyInput$ = [3, n0, _GSPI,\n 0,\n [_SN],\n [0], 1\n];\nexports.GetStackPolicyOutput$ = [3, n0, _GSPO,\n 0,\n [_SPB],\n [0]\n];\nexports.GetTemplateInput$ = [3, n0, _GTIe,\n 0,\n [_SN, _CSN, _TS],\n [0, 0, 0]\n];\nexports.GetTemplateOutput$ = [3, n0, _GTO,\n 0,\n [_TB, _SA],\n [0, 64 | 0]\n];\nexports.GetTemplateSummaryInput$ = [3, n0, _GTSI,\n 0,\n [_TB, _TURL, _SN, _SSN, _CA, _TSC],\n [0, 0, 0, 0, 0, () => exports.TemplateSummaryConfig$]\n];\nexports.GetTemplateSummaryOutput$ = [3, n0, _GTSO,\n 0,\n [_P, _D, _Ca, _CR, _RTe, _Ve, _Me, _DTe, _RIS, _W],\n [() => ParameterDeclarations, 0, 64 | 0, 0, 64 | 0, 0, 0, 64 | 0, () => ResourceIdentifierSummaries, () => exports.Warnings$]\n];\nexports.HookResultSummary$ = [3, n0, _HRS,\n 0,\n [_HRI, _IP, _FM, _TN, _TVI, _TCVI, _S, _HSR, _IAn, _TT, _TI, _TA, _HET],\n [0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0]\n];\nexports.HookTarget$ = [3, n0, _HT,\n 0,\n [_TT, _TTN, _TI, _Act],\n [0, 0, 0, 0], 4\n];\nexports.ImportStacksToStackSetInput$ = [3, n0, _ISTSSI,\n 0,\n [_SSN, _SIta, _SIU, _OUI, _OP, _OI, _CA],\n [0, 64 | 0, 0, 64 | 0, () => exports.StackSetOperationPreferences$, [0, 4], 0], 1\n];\nexports.ImportStacksToStackSetOutput$ = [3, n0, _ISTSSO,\n 0,\n [_OI],\n [0]\n];\nexports.ListChangeSetsInput$ = [3, n0, _LCSI,\n 0,\n [_SN, _NT],\n [0, 0], 1\n];\nexports.ListChangeSetsOutput$ = [3, n0, _LCSO,\n 0,\n [_Su, _NT],\n [() => ChangeSetSummaries, 0]\n];\nexports.ListExportsInput$ = [3, n0, _LEI,\n 0,\n [_NT],\n [0]\n];\nexports.ListExportsOutput$ = [3, n0, _LEO,\n 0,\n [_Exp, _NT],\n [() => Exports, 0]\n];\nexports.ListGeneratedTemplatesInput$ = [3, n0, _LGTI,\n 0,\n [_NT, _MR],\n [0, 1]\n];\nexports.ListGeneratedTemplatesOutput$ = [3, n0, _LGTO,\n 0,\n [_Su, _NT],\n [() => TemplateSummaries, 0]\n];\nexports.ListHookResultsInput$ = [3, n0, _LHRI,\n 0,\n [_TT, _TI, _TA, _S, _NT],\n [0, 0, 0, 0, 0]\n];\nexports.ListHookResultsOutput$ = [3, n0, _LHRO,\n 0,\n [_TT, _TI, _HR, _NT],\n [0, 0, () => HookResultSummaries, 0]\n];\nexports.ListImportsInput$ = [3, n0, _LII,\n 0,\n [_EN, _NT],\n [0, 0], 1\n];\nexports.ListImportsOutput$ = [3, n0, _LIO,\n 0,\n [_Im, _NT],\n [64 | 0, 0]\n];\nexports.ListResourceScanRelatedResourcesInput$ = [3, n0, _LRSRRI,\n 0,\n [_RSI, _R, _NT, _MR],\n [0, () => ScannedResourceIdentifiers, 0, 1], 2\n];\nexports.ListResourceScanRelatedResourcesOutput$ = [3, n0, _LRSRRO,\n 0,\n [_RRel, _NT],\n [() => RelatedResources, 0]\n];\nexports.ListResourceScanResourcesInput$ = [3, n0, _LRSRI,\n 0,\n [_RSI, _RI, _RTP, _TK, _TV, _NT, _MR],\n [0, 0, 0, 0, 0, 0, 1], 1\n];\nexports.ListResourceScanResourcesOutput$ = [3, n0, _LRSRO,\n 0,\n [_R, _NT],\n [() => ScannedResources, 0]\n];\nexports.ListResourceScansInput$ = [3, n0, _LRSI,\n 0,\n [_NT, _MR, _STF],\n [0, 1, 0]\n];\nexports.ListResourceScansOutput$ = [3, n0, _LRSO,\n 0,\n [_RSS, _NT],\n [() => ResourceScanSummaries, 0]\n];\nexports.ListStackInstanceResourceDriftsInput$ = [3, n0, _LSIRDI,\n 0,\n [_SSN, _SIA, _SIR, _OI, _NT, _MR, _SIRDS, _CA],\n [0, 0, 0, 0, 0, 1, 64 | 0, 0], 4\n];\nexports.ListStackInstanceResourceDriftsOutput$ = [3, n0, _LSIRDO,\n 0,\n [_Su, _NT],\n [() => StackInstanceResourceDriftsSummaries, 0]\n];\nexports.ListStackInstancesInput$ = [3, n0, _LSII,\n 0,\n [_SSN, _NT, _MR, _F, _SIA, _SIR, _CA],\n [0, 0, 1, () => StackInstanceFilters, 0, 0, 0], 1\n];\nexports.ListStackInstancesOutput$ = [3, n0, _LSIO,\n 0,\n [_Su, _NT],\n [() => StackInstanceSummaries, 0]\n];\nexports.ListStackRefactorActionsInput$ = [3, n0, _LSRAI,\n 0,\n [_SRI, _NT, _MR],\n [0, 0, 1], 1\n];\nexports.ListStackRefactorActionsOutput$ = [3, n0, _LSRAO,\n 0,\n [_SRA, _NT],\n [() => StackRefactorActions, 0], 1\n];\nexports.ListStackRefactorsInput$ = [3, n0, _LSRI,\n 0,\n [_ESF, _NT, _MR],\n [64 | 0, 0, 1]\n];\nexports.ListStackRefactorsOutput$ = [3, n0, _LSRO,\n 0,\n [_SRS, _NT],\n [() => StackRefactorSummaries, 0], 1\n];\nexports.ListStackResourcesInput$ = [3, n0, _LSRIi,\n 0,\n [_SN, _NT],\n [0, 0], 1\n];\nexports.ListStackResourcesOutput$ = [3, n0, _LSROi,\n 0,\n [_SRSt, _NT],\n [() => StackResourceSummaries, 0]\n];\nexports.ListStackSetAutoDeploymentTargetsInput$ = [3, n0, _LSSADTI,\n 0,\n [_SSN, _NT, _MR, _CA],\n [0, 0, 1, 0], 1\n];\nexports.ListStackSetAutoDeploymentTargetsOutput$ = [3, n0, _LSSADTO,\n 0,\n [_Su, _NT],\n [() => StackSetAutoDeploymentTargetSummaries, 0]\n];\nexports.ListStackSetOperationResultsInput$ = [3, n0, _LSSORI,\n 0,\n [_SSN, _OI, _NT, _MR, _CA, _F],\n [0, 0, 0, 1, 0, () => OperationResultFilters], 2\n];\nexports.ListStackSetOperationResultsOutput$ = [3, n0, _LSSORO,\n 0,\n [_Su, _NT],\n [() => StackSetOperationResultSummaries, 0]\n];\nexports.ListStackSetOperationsInput$ = [3, n0, _LSSOI,\n 0,\n [_SSN, _NT, _MR, _CA],\n [0, 0, 1, 0], 1\n];\nexports.ListStackSetOperationsOutput$ = [3, n0, _LSSOO,\n 0,\n [_Su, _NT],\n [() => StackSetOperationSummaries, 0]\n];\nexports.ListStackSetsInput$ = [3, n0, _LSSI,\n 0,\n [_NT, _MR, _S, _CA],\n [0, 1, 0, 0]\n];\nexports.ListStackSetsOutput$ = [3, n0, _LSSO,\n 0,\n [_Su, _NT],\n [() => StackSetSummaries, 0]\n];\nexports.ListStacksInput$ = [3, n0, _LSI,\n 0,\n [_NT, _SSF],\n [0, 64 | 0]\n];\nexports.ListStacksOutput$ = [3, n0, _LSO,\n 0,\n [_SSt, _NT],\n [() => StackSummaries, 0]\n];\nexports.ListTypeRegistrationsInput$ = [3, n0, _LTRI,\n 0,\n [_T, _TN, _TA, _RSF, _MR, _NT],\n [0, 0, 0, 0, 1, 0]\n];\nexports.ListTypeRegistrationsOutput$ = [3, n0, _LTRO,\n 0,\n [_RTL, _NT],\n [64 | 0, 0]\n];\nexports.ListTypesInput$ = [3, n0, _LTI,\n 0,\n [_Vi, _PT, _DSe, _T, _F, _MR, _NT],\n [0, 0, 0, 0, () => exports.TypeFilters$, 1, 0]\n];\nexports.ListTypesOutput$ = [3, n0, _LTO,\n 0,\n [_TSy, _NT],\n [() => TypeSummaries, 0]\n];\nexports.ListTypeVersionsInput$ = [3, n0, _LTVI,\n 0,\n [_T, _TN, _A, _MR, _NT, _DSe, _PI],\n [0, 0, 0, 1, 0, 0, 0]\n];\nexports.ListTypeVersionsOutput$ = [3, n0, _LTVO,\n 0,\n [_TVS, _NT],\n [() => TypeVersionSummaries, 0]\n];\nexports.LiveResourceDrift$ = [3, n0, _LRD,\n 0,\n [_PV, _AV, _DDT],\n [0, 0, 4]\n];\nexports.LoggingConfig$ = [3, n0, _LC,\n 0,\n [_LRA, _LGN],\n [0, 0], 2\n];\nexports.ManagedExecution$ = [3, n0, _ME,\n 0,\n [_Acti],\n [2]\n];\nexports.ModuleInfo$ = [3, n0, _MI,\n 0,\n [_TH, _LIH],\n [0, 0]\n];\nexports.OperationEntry$ = [3, n0, _OEp,\n 0,\n [_OT, _OI],\n [0, 0]\n];\nexports.OperationEvent$ = [3, n0, _OEpe,\n 0,\n [_EI, _SI, _OI, _OT, _OS, _ETv, _LRI, _PRI, _RT, _Ti, _ST, _ET, _RSes, _RSR, _RP, _CRT, _HTo, _HS, _HSR, _HIP, _HFM, _DSet, _VFM, _VN, _VS, _VSR, _VP],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n];\nexports.OperationResultFilter$ = [3, n0, _ORF,\n 0,\n [_N, _Va],\n [0, 0]\n];\nexports.Output$ = [3, n0, _O,\n 0,\n [_OK, _OV, _D, _EN],\n [0, 0, 0, 0]\n];\nexports.Parameter$ = [3, n0, _Pa,\n 0,\n [_PK, _PVa, _UPV, _RV],\n [0, 0, 2, 0]\n];\nexports.ParameterConstraints$ = [3, n0, _PCa,\n 0,\n [_AVl],\n [64 | 0]\n];\nexports.ParameterDeclaration$ = [3, n0, _PD,\n 0,\n [_PK, _DV, _PTa, _NE, _D, _PCa],\n [0, 0, 0, 2, 0, () => exports.ParameterConstraints$]\n];\nexports.PhysicalResourceIdContextKeyValuePair$ = [3, n0, _PRICKVP,\n 0,\n [_K, _V],\n [0, 0], 2\n];\nexports.PropertyDifference$ = [3, n0, _PDr,\n 0,\n [_PPr, _EV, _AV, _DTi],\n [0, 0, 0, 0], 4\n];\nexports.PublishTypeInput$ = [3, n0, _PTI,\n 0,\n [_T, _A, _TN, _PVN],\n [0, 0, 0, 0]\n];\nexports.PublishTypeOutput$ = [3, n0, _PTO,\n 0,\n [_PTA],\n [0]\n];\nexports.RecordHandlerProgressInput$ = [3, n0, _RHPI,\n 0,\n [_BT, _OS, _COS, _SM, _EC, _RMes, _CRT],\n [0, 0, 0, 0, 0, 0, 0], 2\n];\nexports.RecordHandlerProgressOutput$ = [3, n0, _RHPO,\n 0,\n [],\n []\n];\nexports.RegisterPublisherInput$ = [3, n0, _RPI,\n 0,\n [_ATAC, _CAo],\n [2, 0]\n];\nexports.RegisterPublisherOutput$ = [3, n0, _RPO,\n 0,\n [_PI],\n [0]\n];\nexports.RegisterTypeInput$ = [3, n0, _RTIe,\n 0,\n [_TN, _SHP, _T, _LC, _ERA, _CRT],\n [0, 0, 0, () => exports.LoggingConfig$, 0, 0], 2\n];\nexports.RegisterTypeOutput$ = [3, n0, _RTO,\n 0,\n [_RTeg],\n [0]\n];\nexports.RequiredActivatedType$ = [3, n0, _RATe,\n 0,\n [_TNA, _OTN, _PI, _SMV],\n [0, 0, 0, 64 | 1]\n];\nexports.ResourceChange$ = [3, n0, _RC,\n 0,\n [_PA, _Act, _LRI, _PRI, _RT, _Rep, _Sco, _RDS, _RDIA, _De, _CSI, _MI, _BC, _AC, _PDC],\n [0, 0, 0, 0, 0, 0, 64 | 0, 0, () => ResourceDriftIgnoredAttributes, () => ResourceChangeDetails, 0, () => exports.ModuleInfo$, 0, 0, 0]\n];\nexports.ResourceChangeDetail$ = [3, n0, _RCD,\n 0,\n [_Tar, _Ev, _CSh, _CE],\n [() => exports.ResourceTargetDefinition$, 0, 0, 0]\n];\nexports.ResourceDefinition$ = [3, n0, _RD,\n 0,\n [_RT, _RI, _LRI],\n [0, 128 | 0, 0], 2\n];\nexports.ResourceDetail$ = [3, n0, _RDe,\n 0,\n [_RT, _LRI, _RI, _RSes, _RSR, _W],\n [0, 0, 128 | 0, 0, 0, () => WarningDetails]\n];\nexports.ResourceDriftIgnoredAttribute$ = [3, n0, _RDIAe,\n 0,\n [_Pat, _Rea],\n [0, 0]\n];\nexports.ResourceIdentifierSummary$ = [3, n0, _RISe,\n 0,\n [_RT, _LRIo, _RIe],\n [0, 64 | 0, 64 | 0]\n];\nexports.ResourceLocation$ = [3, n0, _RLe,\n 0,\n [_SN, _LRI],\n [0, 0], 2\n];\nexports.ResourceMapping$ = [3, n0, _RMeso,\n 0,\n [_So, _Des],\n [() => exports.ResourceLocation$, () => exports.ResourceLocation$], 2\n];\nexports.ResourceScanSummary$ = [3, n0, _RSSe,\n 0,\n [_RSI, _S, _SR, _ST, _ET, _PC, _STc],\n [0, 0, 0, 4, 4, 1, 0]\n];\nexports.ResourceTargetDefinition$ = [3, n0, _RTDe,\n 0,\n [_At, _N, _RReq, _Pat, _BV, _AVf, _BVF, _AVF, _Dr, _ACT],\n [0, 0, 0, 0, 0, 0, 0, 0, () => exports.LiveResourceDrift$, 0]\n];\nexports.ResourceToImport$ = [3, n0, _RTIes,\n 0,\n [_RT, _LRI, _RI],\n [0, 0, 128 | 0], 3\n];\nexports.RollbackConfiguration$ = [3, n0, _RCo,\n 0,\n [_RTo, _MTIM],\n [() => RollbackTriggers, 1]\n];\nexports.RollbackStackInput$ = [3, n0, _RSIo,\n 0,\n [_SN, _RARN, _CRT, _REOC],\n [0, 0, 0, 2], 1\n];\nexports.RollbackStackOutput$ = [3, n0, _RSO,\n 0,\n [_SI, _OI],\n [0, 0]\n];\nexports.RollbackTrigger$ = [3, n0, _RTol,\n 0,\n [_A, _T],\n [0, 0], 2\n];\nexports.ScanFilter$ = [3, n0, _SFc,\n 0,\n [_Ty],\n [64 | 0]\n];\nexports.ScannedResource$ = [3, n0, _SRc,\n 0,\n [_RT, _RI, _MBS],\n [0, 128 | 0, 2]\n];\nexports.ScannedResourceIdentifier$ = [3, n0, _SRIc,\n 0,\n [_RT, _RI],\n [0, 128 | 0], 2\n];\nexports.SetStackPolicyInput$ = [3, n0, _SSPI,\n 0,\n [_SN, _SPB, _SPURL],\n [0, 0, 0], 1\n];\nexports.SetTypeConfigurationInput$ = [3, n0, _STCI,\n 0,\n [_Co, _TA, _CAon, _TN, _T],\n [0, 0, 0, 0, 0], 1\n];\nexports.SetTypeConfigurationOutput$ = [3, n0, _STCO,\n 0,\n [_CAonf],\n [0]\n];\nexports.SetTypeDefaultVersionInput$ = [3, n0, _STDVI,\n 0,\n [_A, _T, _TN, _VI],\n [0, 0, 0, 0]\n];\nexports.SetTypeDefaultVersionOutput$ = [3, n0, _STDVO,\n 0,\n [],\n []\n];\nexports.SignalResourceInput$ = [3, n0, _SRIi,\n 0,\n [_SN, _LRI, _UI, _S],\n [0, 0, 0, 0], 4\n];\nexports.Stack$ = [3, n0, _Sta,\n 0,\n [_SN, _CT, _SSta, _SI, _CSI, _D, _P, _DTel, _LUT, _RCo, _SSR, _DR, _NARN, _TIM, _Ca, _Ou, _RARN, _Ta, _ETP, _PIa, _RIo, _DI, _REOC, _DMe, _DSet, _LO],\n [0, 4, 0, 0, 0, 0, () => _Parameters, 4, 4, () => exports.RollbackConfiguration$, 0, 2, 64 | 0, 1, 64 | 0, () => Outputs, 0, () => Tags, 2, 0, 0, () => exports.StackDriftInformation$, 2, 0, 0, () => LastOperations], 3\n];\nexports.StackDefinition$ = [3, n0, _SDt,\n 0,\n [_SN, _TB, _TURL],\n [0, 0, 0]\n];\nexports.StackDriftInformation$ = [3, n0, _SDI,\n 0,\n [_SDS, _LCT],\n [0, 4], 1\n];\nexports.StackDriftInformationSummary$ = [3, n0, _SDIS,\n 0,\n [_SDS, _LCT],\n [0, 4], 1\n];\nexports.StackEvent$ = [3, n0, _SEt,\n 0,\n [_SI, _EI, _SN, _Ti, _OI, _LRI, _PRI, _RT, _RSes, _RSR, _RP, _CRT, _HTo, _HS, _HSR, _HIP, _HII, _HFM, _DSet],\n [0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 4\n];\nexports.StackInstance$ = [3, n0, _SIt,\n 0,\n [_SSI, _Reg, _Acc, _SI, _PO, _S, _SIS, _SR, _OUIr, _DSr, _LDCT, _LOI],\n [0, 0, 0, 0, () => _Parameters, 0, () => exports.StackInstanceComprehensiveStatus$, 0, 0, 0, 4, 0]\n];\nexports.StackInstanceComprehensiveStatus$ = [3, n0, _SICS,\n 0,\n [_DSet],\n [0]\n];\nexports.StackInstanceFilter$ = [3, n0, _SIF,\n 0,\n [_N, _Va],\n [0, 0]\n];\nexports.StackInstanceResourceDriftsSummary$ = [3, n0, _SIRDSt,\n 0,\n [_SI, _LRI, _RT, _SRDS, _Ti, _PRI, _PRIC, _PDro],\n [0, 0, 0, 0, 4, 0, () => PhysicalResourceIdContext, () => PropertyDifferences], 5\n];\nexports.StackInstanceSummary$ = [3, n0, _SISt,\n 0,\n [_SSI, _Reg, _Acc, _SI, _S, _SR, _SIS, _OUIr, _DSr, _LDCT, _LOI],\n [0, 0, 0, 0, 0, 0, () => exports.StackInstanceComprehensiveStatus$, 0, 0, 4, 0]\n];\nexports.StackRefactorAction$ = [3, n0, _SRAt,\n 0,\n [_Act, _En, _PRI, _RI, _D, _Det, _DRe, _TR, _UR, _RMeso],\n [0, 0, 0, 0, 0, 0, 0, () => StackRefactorTagResources, 64 | 0, () => exports.ResourceMapping$]\n];\nexports.StackRefactorSummary$ = [3, n0, _SRSta,\n 0,\n [_SRI, _D, _ES, _ESR, _S, _SR],\n [0, 0, 0, 0, 0, 0]\n];\nexports.StackResource$ = [3, n0, _SRta,\n 0,\n [_LRI, _RT, _Ti, _RSes, _SN, _SI, _PRI, _RSR, _D, _DI, _MI],\n [0, 0, 4, 0, 0, 0, 0, 0, 0, () => exports.StackResourceDriftInformation$, () => exports.ModuleInfo$], 4\n];\nexports.StackResourceDetail$ = [3, n0, _SRDt,\n 0,\n [_LRI, _RT, _LUTa, _RSes, _SN, _SI, _PRI, _RSR, _D, _Me, _DI, _MI],\n [0, 0, 4, 0, 0, 0, 0, 0, 0, 0, () => exports.StackResourceDriftInformation$, () => exports.ModuleInfo$], 4\n];\nexports.StackResourceDrift$ = [3, n0, _SRDta,\n 0,\n [_SI, _LRI, _RT, _SRDS, _Ti, _PRI, _PRIC, _EP, _AP, _PDro, _MI, _DSRr],\n [0, 0, 0, 0, 4, 0, () => PhysicalResourceIdContext, 0, 0, () => PropertyDifferences, () => exports.ModuleInfo$, 0], 5\n];\nexports.StackResourceDriftInformation$ = [3, n0, _SRDI,\n 0,\n [_SRDS, _LCT],\n [0, 4], 1\n];\nexports.StackResourceDriftInformationSummary$ = [3, n0, _SRDIS,\n 0,\n [_SRDS, _LCT],\n [0, 4], 1\n];\nexports.StackResourceSummary$ = [3, n0, _SRStac,\n 0,\n [_LRI, _RT, _LUTa, _RSes, _PRI, _RSR, _DI, _MI],\n [0, 0, 4, 0, 0, 0, () => exports.StackResourceDriftInformationSummary$, () => exports.ModuleInfo$], 4\n];\nexports.StackSet$ = [3, n0, _SS,\n 0,\n [_SSN, _SSI, _D, _S, _TB, _P, _Ca, _Ta, _SSARN, _ARARN, _ERN, _SSDDD, _AD, _PM, _OUI, _ME, _Re],\n [0, 0, 0, 0, 0, () => _Parameters, 64 | 0, () => Tags, 0, 0, 0, () => exports.StackSetDriftDetectionDetails$, () => exports.AutoDeployment$, 0, 64 | 0, () => exports.ManagedExecution$, 64 | 0]\n];\nexports.StackSetAutoDeploymentTargetSummary$ = [3, n0, _SSADTS,\n 0,\n [_OUIr, _Re],\n [0, 64 | 0]\n];\nexports.StackSetDriftDetectionDetails$ = [3, n0, _SSDDD,\n 0,\n [_DSr, _DDS, _LDCT, _TSIC, _DSIC, _ISSIC, _IPSIC, _FSIC],\n [0, 0, 4, 1, 1, 1, 1, 1]\n];\nexports.StackSetOperation$ = [3, n0, _SSO,\n 0,\n [_OI, _SSI, _Act, _S, _OP, _RS, _ARARN, _ERN, _CTr, _ETn, _DT, _SSDDD, _SR, _SDta],\n [0, 0, 0, 0, () => exports.StackSetOperationPreferences$, 2, 0, 0, 4, 4, () => exports.DeploymentTargets$, () => exports.StackSetDriftDetectionDetails$, 0, () => exports.StackSetOperationStatusDetails$]\n];\nexports.StackSetOperationPreferences$ = [3, n0, _SSOP,\n 0,\n [_RCT, _RO, _FTC, _FTP, _MCC, _MCP, _CM],\n [0, 64 | 0, 1, 1, 1, 1, 0]\n];\nexports.StackSetOperationResultSummary$ = [3, n0, _SSORS,\n 0,\n [_Acc, _Reg, _S, _SR, _AGR, _OUIr],\n [0, 0, 0, 0, () => exports.AccountGateResult$, 0]\n];\nexports.StackSetOperationStatusDetails$ = [3, n0, _SSOSD,\n 0,\n [_FSIC],\n [1]\n];\nexports.StackSetOperationSummary$ = [3, n0, _SSOS,\n 0,\n [_OI, _Act, _S, _CTr, _ETn, _SR, _SDta, _OP],\n [0, 0, 0, 4, 4, 0, () => exports.StackSetOperationStatusDetails$, () => exports.StackSetOperationPreferences$]\n];\nexports.StackSetSummary$ = [3, n0, _SSS,\n 0,\n [_SSN, _SSI, _D, _S, _AD, _PM, _DSr, _LDCT, _ME],\n [0, 0, 0, 0, () => exports.AutoDeployment$, 0, 0, 4, () => exports.ManagedExecution$]\n];\nexports.StackSummary$ = [3, n0, _SStac,\n 0,\n [_SN, _CT, _SSta, _SI, _TDe, _LUT, _DTel, _SSR, _PIa, _RIo, _DI, _LO],\n [0, 4, 0, 0, 0, 4, 4, 0, 0, 0, () => exports.StackDriftInformationSummary$, () => LastOperations], 3\n];\nexports.StartResourceScanInput$ = [3, n0, _SRSI,\n 0,\n [_CRT, _SF],\n [0, () => ScanFilters]\n];\nexports.StartResourceScanOutput$ = [3, n0, _SRSO,\n 0,\n [_RSI],\n [0]\n];\nexports.StopStackSetOperationInput$ = [3, n0, _SSSOI,\n 0,\n [_SSN, _OI, _CA],\n [0, 0, 0], 2\n];\nexports.StopStackSetOperationOutput$ = [3, n0, _SSSOO,\n 0,\n [],\n []\n];\nexports.Tag$ = [3, n0, _Tag,\n 0,\n [_K, _V],\n [0, 0], 2\n];\nexports.TemplateConfiguration$ = [3, n0, _TCe,\n 0,\n [_DP, _URP],\n [0, 0]\n];\nexports.TemplateParameter$ = [3, n0, _TP,\n 0,\n [_PK, _DV, _NE, _D],\n [0, 0, 2, 0]\n];\nexports.TemplateProgress$ = [3, n0, _TPe,\n 0,\n [_RSeso, _RF, _RPe, _RPes],\n [1, 1, 1, 1]\n];\nexports.TemplateSummary$ = [3, n0, _TSe,\n 0,\n [_GTI, _GTN, _S, _SR, _CT, _LUT, _NOR],\n [0, 0, 0, 0, 4, 4, 1]\n];\nexports.TemplateSummaryConfig$ = [3, n0, _TSC,\n 0,\n [_TURTAW],\n [2]\n];\nexports.TestTypeInput$ = [3, n0, _TTI,\n 0,\n [_A, _T, _TN, _VI, _LDB],\n [0, 0, 0, 0, 0]\n];\nexports.TestTypeOutput$ = [3, n0, _TTO,\n 0,\n [_TVA],\n [0]\n];\nexports.TypeConfigurationDetails$ = [3, n0, _TCD,\n 0,\n [_A, _Al, _Co, _LU, _TA, _TN, _IDC],\n [0, 0, 0, 4, 0, 0, 2]\n];\nexports.TypeConfigurationIdentifier$ = [3, n0, _TCI,\n 0,\n [_TA, _TCA, _TCAy, _T, _TN],\n [0, 0, 0, 0, 0]\n];\nexports.TypeFilters$ = [3, n0, _TF,\n 0,\n [_Cat, _PI, _TNP],\n [0, 0, 0]\n];\nexports.TypeSummary$ = [3, n0, _TSyp,\n 0,\n [_T, _TN, _DVI, _TA, _LU, _D, _PI, _OTN, _PVN, _LPV, _PIu, _PN, _IA],\n [0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2]\n];\nexports.TypeVersionSummary$ = [3, n0, _TVSy,\n 0,\n [_T, _TN, _VI, _IDV, _A, _TCi, _D, _PVN],\n [0, 0, 0, 2, 0, 4, 0, 0]\n];\nexports.UpdateGeneratedTemplateInput$ = [3, n0, _UGTI,\n 0,\n [_GTN, _NGTN, _AR, _RRem, _RAR, _TCe],\n [0, 0, () => ResourceDefinitions, 64 | 0, 2, () => exports.TemplateConfiguration$], 1\n];\nexports.UpdateGeneratedTemplateOutput$ = [3, n0, _UGTO,\n 0,\n [_GTI],\n [0]\n];\nexports.UpdateStackInput$ = [3, n0, _USI,\n 0,\n [_SN, _TB, _TURL, _UPT, _SPDUB, _SPDUURL, _P, _Ca, _RTe, _RARN, _RCo, _SPB, _SPURL, _NARN, _Ta, _DR, _CRT, _REOC],\n [0, 0, 0, 2, 0, 0, () => _Parameters, 64 | 0, 64 | 0, 0, () => exports.RollbackConfiguration$, 0, 0, 64 | 0, () => Tags, 2, 0, 2], 1\n];\nexports.UpdateStackInstancesInput$ = [3, n0, _USII,\n 0,\n [_SSN, _Re, _Ac, _DT, _PO, _OP, _OI, _CA],\n [0, 64 | 0, 64 | 0, () => exports.DeploymentTargets$, () => _Parameters, () => exports.StackSetOperationPreferences$, [0, 4], 0], 2\n];\nexports.UpdateStackInstancesOutput$ = [3, n0, _USIO,\n 0,\n [_OI],\n [0]\n];\nexports.UpdateStackOutput$ = [3, n0, _USO,\n 0,\n [_SI, _OI],\n [0, 0]\n];\nexports.UpdateStackSetInput$ = [3, n0, _USSI,\n 0,\n [_SSN, _D, _TB, _TURL, _UPT, _P, _Ca, _Ta, _OP, _ARARN, _ERN, _DT, _PM, _AD, _OI, _Ac, _Re, _CA, _ME],\n [0, 0, 0, 0, 2, () => _Parameters, 64 | 0, () => Tags, () => exports.StackSetOperationPreferences$, 0, 0, () => exports.DeploymentTargets$, 0, () => exports.AutoDeployment$, [0, 4], 64 | 0, 64 | 0, 0, () => exports.ManagedExecution$], 1\n];\nexports.UpdateStackSetOutput$ = [3, n0, _USSO,\n 0,\n [_OI],\n [0]\n];\nexports.UpdateTerminationProtectionInput$ = [3, n0, _UTPI,\n 0,\n [_ETP, _SN],\n [2, 0], 2\n];\nexports.UpdateTerminationProtectionOutput$ = [3, n0, _UTPO,\n 0,\n [_SI],\n [0]\n];\nexports.ValidateTemplateInput$ = [3, n0, _VTI,\n 0,\n [_TB, _TURL],\n [0, 0]\n];\nexports.ValidateTemplateOutput$ = [3, n0, _VTO,\n 0,\n [_P, _D, _Ca, _CR, _DTe],\n [() => TemplateParameters, 0, 64 | 0, 0, 64 | 0]\n];\nexports.WarningDetail$ = [3, n0, _WD,\n 0,\n [_T, _Pro],\n [0, () => WarningProperties]\n];\nexports.WarningProperty$ = [3, n0, _WP,\n 0,\n [_PPr, _Req, _D],\n [0, 2, 0]\n];\nexports.Warnings$ = [3, n0, _W,\n 0,\n [_URT],\n [64 | 0]\n];\nvar __Unit = \"unit\";\nvar AccountLimitList = [1, n0, _ALL,\n 0, () => exports.AccountLimit$\n];\nvar AccountList = 64 | 0;\nvar AllowedValues = 64 | 0;\nvar AnnotationList = [1, n0, _ALn,\n 0, () => exports.Annotation$\n];\nvar BatchDescribeTypeConfigurationsErrors = [1, n0, _BDTCEa,\n 0, () => exports.BatchDescribeTypeConfigurationsError$\n];\nvar Capabilities = 64 | 0;\nvar Changes = [1, n0, _Ch,\n 0, () => exports.Change$\n];\nvar ChangeSetHooks = [1, n0, _CSHh,\n 0, () => exports.ChangeSetHook$\n];\nvar ChangeSetSummaries = [1, n0, _CSSh,\n 0, () => exports.ChangeSetSummary$\n];\nvar Exports = [1, n0, _Exp,\n 0, () => exports.Export$\n];\nvar HookResultSummaries = [1, n0, _HRSo,\n 0, () => exports.HookResultSummary$\n];\nvar Imports = 64 | 0;\nvar JazzLogicalResourceIds = 64 | 0;\nvar LastOperations = [1, n0, _LO,\n 0, () => exports.OperationEntry$\n];\nvar LogicalResourceIds = 64 | 0;\nvar NotificationARNs = 64 | 0;\nvar OperationEvents = [1, n0, _OE,\n 0, () => exports.OperationEvent$\n];\nvar OperationResultFilters = [1, n0, _ORFp,\n 0, () => exports.OperationResultFilter$\n];\nvar OrganizationalUnitIdList = 64 | 0;\nvar Outputs = [1, n0, _Ou,\n 0, () => exports.Output$\n];\nvar ParameterDeclarations = [1, n0, _PDa,\n 0, () => exports.ParameterDeclaration$\n];\nvar _Parameters = [1, n0, _P,\n 0, () => exports.Parameter$\n];\nvar PhysicalResourceIdContext = [1, n0, _PRIC,\n 0, () => exports.PhysicalResourceIdContextKeyValuePair$\n];\nvar PropertyDifferences = [1, n0, _PDro,\n 0, () => exports.PropertyDifference$\n];\nvar RegionList = 64 | 0;\nvar RegistrationTokenList = 64 | 0;\nvar RelatedResources = [1, n0, _RRel,\n 0, () => exports.ScannedResource$\n];\nvar RequiredActivatedTypes = [1, n0, _RAT,\n 0, () => exports.RequiredActivatedType$\n];\nvar ResourceChangeDetails = [1, n0, _RCDe,\n 0, () => exports.ResourceChangeDetail$\n];\nvar ResourceDefinitions = [1, n0, _RDes,\n 0, () => exports.ResourceDefinition$\n];\nvar ResourceDetails = [1, n0, _RDeso,\n 0, () => exports.ResourceDetail$\n];\nvar ResourceDriftIgnoredAttributes = [1, n0, _RDIA,\n 0, () => exports.ResourceDriftIgnoredAttribute$\n];\nvar ResourceIdentifiers = 64 | 0;\nvar ResourceIdentifierSummaries = [1, n0, _RIS,\n 0, () => exports.ResourceIdentifierSummary$\n];\nvar ResourceMappings = [1, n0, _RMe,\n 0, () => exports.ResourceMapping$\n];\nvar ResourceScanSummaries = [1, n0, _RSS,\n 0, () => exports.ResourceScanSummary$\n];\nvar ResourcesToImport = [1, n0, _RTI,\n 0, () => exports.ResourceToImport$\n];\nvar ResourcesToSkip = 64 | 0;\nvar ResourceTypeFilters = 64 | 0;\nvar ResourceTypes = 64 | 0;\nvar RetainResources = 64 | 0;\nvar RollbackTriggers = [1, n0, _RTo,\n 0, () => exports.RollbackTrigger$\n];\nvar ScanFilters = [1, n0, _SF,\n 0, () => exports.ScanFilter$\n];\nvar ScannedResourceIdentifiers = [1, n0, _SRIca,\n 0, () => exports.ScannedResourceIdentifier$\n];\nvar ScannedResources = [1, n0, _SRca,\n 0, () => exports.ScannedResource$\n];\nvar Scope = 64 | 0;\nvar StackDefinitions = [1, n0, _SD,\n 0, () => exports.StackDefinition$\n];\nvar StackEvents = [1, n0, _SE,\n 0, () => exports.StackEvent$\n];\nvar StackIdList = 64 | 0;\nvar StackIds = 64 | 0;\nvar StackInstanceFilters = [1, n0, _SIFt,\n 0, () => exports.StackInstanceFilter$\n];\nvar StackInstanceResourceDriftsSummaries = [1, n0, _SIRDSta,\n 0, () => exports.StackInstanceResourceDriftsSummary$\n];\nvar StackInstanceSummaries = [1, n0, _SISta,\n 0, () => exports.StackInstanceSummary$\n];\nvar StackRefactorActions = [1, n0, _SRA,\n 0, () => exports.StackRefactorAction$\n];\nvar StackRefactorExecutionStatusFilter = 64 | 0;\nvar StackRefactorSummaries = [1, n0, _SRS,\n 0, () => exports.StackRefactorSummary$\n];\nvar StackRefactorTagResources = [1, n0, _SRTR,\n 0, () => exports.Tag$\n];\nvar StackRefactorUntagResources = 64 | 0;\nvar StackResourceDrifts = [1, n0, _SRD,\n 0, () => exports.StackResourceDrift$\n];\nvar StackResourceDriftStatusFilters = 64 | 0;\nvar StackResources = [1, n0, _SRt,\n 0, () => exports.StackResource$\n];\nvar StackResourceSummaries = [1, n0, _SRSt,\n 0, () => exports.StackResourceSummary$\n];\nvar Stacks = [1, n0, _St,\n 0, () => exports.Stack$\n];\nvar StackSetARNList = 64 | 0;\nvar StackSetAutoDeploymentTargetSummaries = [1, n0, _SSADTSt,\n 0, () => exports.StackSetAutoDeploymentTargetSummary$\n];\nvar StackSetOperationResultSummaries = [1, n0, _SSORSt,\n 0, () => exports.StackSetOperationResultSummary$\n];\nvar StackSetOperationSummaries = [1, n0, _SSOSt,\n 0, () => exports.StackSetOperationSummary$\n];\nvar StackSetSummaries = [1, n0, _SSSt,\n 0, () => exports.StackSetSummary$\n];\nvar StackStatusFilter = 64 | 0;\nvar StackSummaries = [1, n0, _SSt,\n 0, () => exports.StackSummary$\n];\nvar StageList = 64 | 0;\nvar SupportedMajorVersions = 64 | 1;\nvar Tags = [1, n0, _Ta,\n 0, () => exports.Tag$\n];\nvar TemplateParameters = [1, n0, _TPem,\n 0, () => exports.TemplateParameter$\n];\nvar TemplateSummaries = [1, n0, _TSem,\n 0, () => exports.TemplateSummary$\n];\nvar TransformsList = 64 | 0;\nvar TypeConfigurationDetailsList = [1, n0, _TCDL,\n 0, () => exports.TypeConfigurationDetails$\n];\nvar TypeConfigurationIdentifiers = [1, n0, _TCIy,\n 0, () => exports.TypeConfigurationIdentifier$\n];\nvar TypeSummaries = [1, n0, _TSy,\n 0, () => exports.TypeSummary$\n];\nvar TypeVersionSummaries = [1, n0, _TVS,\n 0, () => exports.TypeVersionSummary$\n];\nvar UnprocessedTypeConfigurations = [1, n0, _UTC,\n 0, () => exports.TypeConfigurationIdentifier$\n];\nvar WarningDetails = [1, n0, _WDa,\n 0, () => exports.WarningDetail$\n];\nvar WarningProperties = [1, n0, _WPa,\n 0, () => exports.WarningProperty$\n];\nvar JazzResourceIdentifierProperties = 128 | 0;\nvar ResourceIdentifierProperties = 128 | 0;\nexports.ActivateOrganizationsAccess$ = [9, n0, _AOA,\n 0, () => exports.ActivateOrganizationsAccessInput$, () => exports.ActivateOrganizationsAccessOutput$\n];\nexports.ActivateType$ = [9, n0, _AT,\n 2, () => exports.ActivateTypeInput$, () => exports.ActivateTypeOutput$\n];\nexports.BatchDescribeTypeConfigurations$ = [9, n0, _BDTC,\n 0, () => exports.BatchDescribeTypeConfigurationsInput$, () => exports.BatchDescribeTypeConfigurationsOutput$\n];\nexports.CancelUpdateStack$ = [9, n0, _CUS,\n 0, () => exports.CancelUpdateStackInput$, () => __Unit\n];\nexports.ContinueUpdateRollback$ = [9, n0, _CUR,\n 0, () => exports.ContinueUpdateRollbackInput$, () => exports.ContinueUpdateRollbackOutput$\n];\nexports.CreateChangeSet$ = [9, n0, _CCS,\n 0, () => exports.CreateChangeSetInput$, () => exports.CreateChangeSetOutput$\n];\nexports.CreateGeneratedTemplate$ = [9, n0, _CGT,\n 0, () => exports.CreateGeneratedTemplateInput$, () => exports.CreateGeneratedTemplateOutput$\n];\nexports.CreateStack$ = [9, n0, _CSr,\n 0, () => exports.CreateStackInput$, () => exports.CreateStackOutput$\n];\nexports.CreateStackInstances$ = [9, n0, _CSIre,\n 0, () => exports.CreateStackInstancesInput$, () => exports.CreateStackInstancesOutput$\n];\nexports.CreateStackRefactor$ = [9, n0, _CSR,\n 0, () => exports.CreateStackRefactorInput$, () => exports.CreateStackRefactorOutput$\n];\nexports.CreateStackSet$ = [9, n0, _CSSr,\n 0, () => exports.CreateStackSetInput$, () => exports.CreateStackSetOutput$\n];\nexports.DeactivateOrganizationsAccess$ = [9, n0, _DOA,\n 0, () => exports.DeactivateOrganizationsAccessInput$, () => exports.DeactivateOrganizationsAccessOutput$\n];\nexports.DeactivateType$ = [9, n0, _DTea,\n 2, () => exports.DeactivateTypeInput$, () => exports.DeactivateTypeOutput$\n];\nexports.DeleteChangeSet$ = [9, n0, _DCS,\n 0, () => exports.DeleteChangeSetInput$, () => exports.DeleteChangeSetOutput$\n];\nexports.DeleteGeneratedTemplate$ = [9, n0, _DGT,\n 0, () => exports.DeleteGeneratedTemplateInput$, () => __Unit\n];\nexports.DeleteStack$ = [9, n0, _DSel,\n 0, () => exports.DeleteStackInput$, () => __Unit\n];\nexports.DeleteStackInstances$ = [9, n0, _DSIel,\n 0, () => exports.DeleteStackInstancesInput$, () => exports.DeleteStackInstancesOutput$\n];\nexports.DeleteStackSet$ = [9, n0, _DSS,\n 0, () => exports.DeleteStackSetInput$, () => exports.DeleteStackSetOutput$\n];\nexports.DeregisterType$ = [9, n0, _DTer,\n 2, () => exports.DeregisterTypeInput$, () => exports.DeregisterTypeOutput$\n];\nexports.DescribeAccountLimits$ = [9, n0, _DAL,\n 0, () => exports.DescribeAccountLimitsInput$, () => exports.DescribeAccountLimitsOutput$\n];\nexports.DescribeChangeSet$ = [9, n0, _DCSe,\n 0, () => exports.DescribeChangeSetInput$, () => exports.DescribeChangeSetOutput$\n];\nexports.DescribeChangeSetHooks$ = [9, n0, _DCSH,\n 0, () => exports.DescribeChangeSetHooksInput$, () => exports.DescribeChangeSetHooksOutput$\n];\nexports.DescribeEvents$ = [9, n0, _DE,\n 0, () => exports.DescribeEventsInput$, () => exports.DescribeEventsOutput$\n];\nexports.DescribeGeneratedTemplate$ = [9, n0, _DGTe,\n 0, () => exports.DescribeGeneratedTemplateInput$, () => exports.DescribeGeneratedTemplateOutput$\n];\nexports.DescribeOrganizationsAccess$ = [9, n0, _DOAe,\n 0, () => exports.DescribeOrganizationsAccessInput$, () => exports.DescribeOrganizationsAccessOutput$\n];\nexports.DescribePublisher$ = [9, n0, _DPe,\n 2, () => exports.DescribePublisherInput$, () => exports.DescribePublisherOutput$\n];\nexports.DescribeResourceScan$ = [9, n0, _DRS,\n 0, () => exports.DescribeResourceScanInput$, () => exports.DescribeResourceScanOutput$\n];\nexports.DescribeStackDriftDetectionStatus$ = [9, n0, _DSDDS,\n 0, () => exports.DescribeStackDriftDetectionStatusInput$, () => exports.DescribeStackDriftDetectionStatusOutput$\n];\nexports.DescribeStackEvents$ = [9, n0, _DSE,\n 0, () => exports.DescribeStackEventsInput$, () => exports.DescribeStackEventsOutput$\n];\nexports.DescribeStackInstance$ = [9, n0, _DSIes,\n 0, () => exports.DescribeStackInstanceInput$, () => exports.DescribeStackInstanceOutput$\n];\nexports.DescribeStackRefactor$ = [9, n0, _DSRe,\n 0, () => exports.DescribeStackRefactorInput$, () => exports.DescribeStackRefactorOutput$\n];\nexports.DescribeStackResource$ = [9, n0, _DSRes,\n 0, () => exports.DescribeStackResourceInput$, () => exports.DescribeStackResourceOutput$\n];\nexports.DescribeStackResourceDrifts$ = [9, n0, _DSRD,\n 0, () => exports.DescribeStackResourceDriftsInput$, () => exports.DescribeStackResourceDriftsOutput$\n];\nexports.DescribeStackResources$ = [9, n0, _DSResc,\n 0, () => exports.DescribeStackResourcesInput$, () => exports.DescribeStackResourcesOutput$\n];\nexports.DescribeStacks$ = [9, n0, _DSes,\n 0, () => exports.DescribeStacksInput$, () => exports.DescribeStacksOutput$\n];\nexports.DescribeStackSet$ = [9, n0, _DSSe,\n 0, () => exports.DescribeStackSetInput$, () => exports.DescribeStackSetOutput$\n];\nexports.DescribeStackSetOperation$ = [9, n0, _DSSOes,\n 0, () => exports.DescribeStackSetOperationInput$, () => exports.DescribeStackSetOperationOutput$\n];\nexports.DescribeType$ = [9, n0, _DTes,\n 2, () => exports.DescribeTypeInput$, () => exports.DescribeTypeOutput$\n];\nexports.DescribeTypeRegistration$ = [9, n0, _DTR,\n 2, () => exports.DescribeTypeRegistrationInput$, () => exports.DescribeTypeRegistrationOutput$\n];\nexports.DetectStackDrift$ = [9, n0, _DSD,\n 0, () => exports.DetectStackDriftInput$, () => exports.DetectStackDriftOutput$\n];\nexports.DetectStackResourceDrift$ = [9, n0, _DSRDe,\n 0, () => exports.DetectStackResourceDriftInput$, () => exports.DetectStackResourceDriftOutput$\n];\nexports.DetectStackSetDrift$ = [9, n0, _DSSD,\n 0, () => exports.DetectStackSetDriftInput$, () => exports.DetectStackSetDriftOutput$\n];\nexports.EstimateTemplateCost$ = [9, n0, _ETC,\n 0, () => exports.EstimateTemplateCostInput$, () => exports.EstimateTemplateCostOutput$\n];\nexports.ExecuteChangeSet$ = [9, n0, _ECS,\n 0, () => exports.ExecuteChangeSetInput$, () => exports.ExecuteChangeSetOutput$\n];\nexports.ExecuteStackRefactor$ = [9, n0, _ESRx,\n 0, () => exports.ExecuteStackRefactorInput$, () => __Unit\n];\nexports.GetGeneratedTemplate$ = [9, n0, _GGT,\n 0, () => exports.GetGeneratedTemplateInput$, () => exports.GetGeneratedTemplateOutput$\n];\nexports.GetHookResult$ = [9, n0, _GHR,\n 0, () => exports.GetHookResultInput$, () => exports.GetHookResultOutput$\n];\nexports.GetStackPolicy$ = [9, n0, _GSP,\n 0, () => exports.GetStackPolicyInput$, () => exports.GetStackPolicyOutput$\n];\nexports.GetTemplate$ = [9, n0, _GT,\n 0, () => exports.GetTemplateInput$, () => exports.GetTemplateOutput$\n];\nexports.GetTemplateSummary$ = [9, n0, _GTS,\n 0, () => exports.GetTemplateSummaryInput$, () => exports.GetTemplateSummaryOutput$\n];\nexports.ImportStacksToStackSet$ = [9, n0, _ISTSS,\n 0, () => exports.ImportStacksToStackSetInput$, () => exports.ImportStacksToStackSetOutput$\n];\nexports.ListChangeSets$ = [9, n0, _LCS,\n 0, () => exports.ListChangeSetsInput$, () => exports.ListChangeSetsOutput$\n];\nexports.ListExports$ = [9, n0, _LE,\n 0, () => exports.ListExportsInput$, () => exports.ListExportsOutput$\n];\nexports.ListGeneratedTemplates$ = [9, n0, _LGT,\n 0, () => exports.ListGeneratedTemplatesInput$, () => exports.ListGeneratedTemplatesOutput$\n];\nexports.ListHookResults$ = [9, n0, _LHR,\n 0, () => exports.ListHookResultsInput$, () => exports.ListHookResultsOutput$\n];\nexports.ListImports$ = [9, n0, _LI,\n 0, () => exports.ListImportsInput$, () => exports.ListImportsOutput$\n];\nexports.ListResourceScanRelatedResources$ = [9, n0, _LRSRR,\n 0, () => exports.ListResourceScanRelatedResourcesInput$, () => exports.ListResourceScanRelatedResourcesOutput$\n];\nexports.ListResourceScanResources$ = [9, n0, _LRSR,\n 0, () => exports.ListResourceScanResourcesInput$, () => exports.ListResourceScanResourcesOutput$\n];\nexports.ListResourceScans$ = [9, n0, _LRS,\n 0, () => exports.ListResourceScansInput$, () => exports.ListResourceScansOutput$\n];\nexports.ListStackInstanceResourceDrifts$ = [9, n0, _LSIRD,\n 0, () => exports.ListStackInstanceResourceDriftsInput$, () => exports.ListStackInstanceResourceDriftsOutput$\n];\nexports.ListStackInstances$ = [9, n0, _LSIi,\n 0, () => exports.ListStackInstancesInput$, () => exports.ListStackInstancesOutput$\n];\nexports.ListStackRefactorActions$ = [9, n0, _LSRA,\n 0, () => exports.ListStackRefactorActionsInput$, () => exports.ListStackRefactorActionsOutput$\n];\nexports.ListStackRefactors$ = [9, n0, _LSR,\n 0, () => exports.ListStackRefactorsInput$, () => exports.ListStackRefactorsOutput$\n];\nexports.ListStackResources$ = [9, n0, _LSRi,\n 0, () => exports.ListStackResourcesInput$, () => exports.ListStackResourcesOutput$\n];\nexports.ListStacks$ = [9, n0, _LS,\n 0, () => exports.ListStacksInput$, () => exports.ListStacksOutput$\n];\nexports.ListStackSetAutoDeploymentTargets$ = [9, n0, _LSSADT,\n 0, () => exports.ListStackSetAutoDeploymentTargetsInput$, () => exports.ListStackSetAutoDeploymentTargetsOutput$\n];\nexports.ListStackSetOperationResults$ = [9, n0, _LSSOR,\n 0, () => exports.ListStackSetOperationResultsInput$, () => exports.ListStackSetOperationResultsOutput$\n];\nexports.ListStackSetOperations$ = [9, n0, _LSSOi,\n 0, () => exports.ListStackSetOperationsInput$, () => exports.ListStackSetOperationsOutput$\n];\nexports.ListStackSets$ = [9, n0, _LSS,\n 0, () => exports.ListStackSetsInput$, () => exports.ListStackSetsOutput$\n];\nexports.ListTypeRegistrations$ = [9, n0, _LTR,\n 2, () => exports.ListTypeRegistrationsInput$, () => exports.ListTypeRegistrationsOutput$\n];\nexports.ListTypes$ = [9, n0, _LT,\n 2, () => exports.ListTypesInput$, () => exports.ListTypesOutput$\n];\nexports.ListTypeVersions$ = [9, n0, _LTV,\n 2, () => exports.ListTypeVersionsInput$, () => exports.ListTypeVersionsOutput$\n];\nexports.PublishType$ = [9, n0, _PTu,\n 2, () => exports.PublishTypeInput$, () => exports.PublishTypeOutput$\n];\nexports.RecordHandlerProgress$ = [9, n0, _RHP,\n 2, () => exports.RecordHandlerProgressInput$, () => exports.RecordHandlerProgressOutput$\n];\nexports.RegisterPublisher$ = [9, n0, _RPeg,\n 2, () => exports.RegisterPublisherInput$, () => exports.RegisterPublisherOutput$\n];\nexports.RegisterType$ = [9, n0, _RTegi,\n 2, () => exports.RegisterTypeInput$, () => exports.RegisterTypeOutput$\n];\nexports.RollbackStack$ = [9, n0, _RSo,\n 0, () => exports.RollbackStackInput$, () => exports.RollbackStackOutput$\n];\nexports.SetStackPolicy$ = [9, n0, _SSP,\n 0, () => exports.SetStackPolicyInput$, () => __Unit\n];\nexports.SetTypeConfiguration$ = [9, n0, _STC,\n 0, () => exports.SetTypeConfigurationInput$, () => exports.SetTypeConfigurationOutput$\n];\nexports.SetTypeDefaultVersion$ = [9, n0, _STDV,\n 2, () => exports.SetTypeDefaultVersionInput$, () => exports.SetTypeDefaultVersionOutput$\n];\nexports.SignalResource$ = [9, n0, _SRi,\n 0, () => exports.SignalResourceInput$, () => __Unit\n];\nexports.StartResourceScan$ = [9, n0, _SRStar,\n 0, () => exports.StartResourceScanInput$, () => exports.StartResourceScanOutput$\n];\nexports.StopStackSetOperation$ = [9, n0, _SSSO,\n 0, () => exports.StopStackSetOperationInput$, () => exports.StopStackSetOperationOutput$\n];\nexports.TestType$ = [9, n0, _TTe,\n 2, () => exports.TestTypeInput$, () => exports.TestTypeOutput$\n];\nexports.UpdateGeneratedTemplate$ = [9, n0, _UGT,\n 0, () => exports.UpdateGeneratedTemplateInput$, () => exports.UpdateGeneratedTemplateOutput$\n];\nexports.UpdateStack$ = [9, n0, _US,\n 0, () => exports.UpdateStackInput$, () => exports.UpdateStackOutput$\n];\nexports.UpdateStackInstances$ = [9, n0, _USIp,\n 0, () => exports.UpdateStackInstancesInput$, () => exports.UpdateStackInstancesOutput$\n];\nexports.UpdateStackSet$ = [9, n0, _USS,\n 0, () => exports.UpdateStackSetInput$, () => exports.UpdateStackSetOutput$\n];\nexports.UpdateTerminationProtection$ = [9, n0, _UTP,\n 0, () => exports.UpdateTerminationProtectionInput$, () => exports.UpdateTerminationProtectionOutput$\n];\nexports.ValidateTemplate$ = [9, n0, _VT,\n 0, () => exports.ValidateTemplateInput$, () => exports.ValidateTemplateOutput$\n];\n","'use strict';\n\nconst state = {\n warningEmitted: false,\n};\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 20) {\n state.warningEmitted = true;\n process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js ${version} in January 2026.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/c895JFp`);\n }\n};\n\nconst longPollMiddleware = () => (next, context) => async (args) => {\n context.__retryLongPoll = true;\n return next(args);\n};\nconst longPollMiddlewareOptions = {\n name: \"longPollMiddleware\",\n tags: [\"RETRY\"],\n step: \"initialize\",\n override: true,\n};\nconst getLongPollPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(longPollMiddleware(), longPollMiddlewareOptions);\n },\n});\n\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getLongPollPlugin = getLongPollPlugin;\nexports.setCredentialFeature = setCredentialFeature;\nexports.setFeature = setFeature;\nexports.setTokenFeature = setTokenFeature;\nexports.state = state;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar core = require('@smithy/core');\nvar propertyProvider = require('@smithy/property-provider');\nvar client = require('@aws-sdk/core/client');\nvar signatureV4 = require('@smithy/signature-v4');\n\nconst getDateHeader = (response) => protocolHttp.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n\nconst getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n\nconst isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n\nconst getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n\nconst throwSigningPropertyError = (name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n};\nconst validateSigningProperties = async (signingProperties) => {\n const context = throwSigningPropertyError(\"context\", signingProperties.context);\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName,\n };\n};\nclass AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: signingRegion,\n signingService: signingName,\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n}\nconst AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\nclass AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ??\n signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName,\n });\n return signedRequest;\n }\n}\n\nconst getArrayForCommaSeparatedString = (str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [];\n\nconst getBearerTokenEnvKey = (signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`;\n\nconst NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nconst NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nconst NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n environmentVariableSelector: (env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env)\n return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env))\n return undefined;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n },\n configFileSelector: (profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile))\n return undefined;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n },\n default: [],\n};\n\nconst resolveAwsSdkSigV4AConfig = (config) => {\n config.sigv4aSigningRegionSet = core.normalizeProvider(config.sigv4aSigningRegionSet);\n return config;\n};\nconst NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true,\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true,\n });\n },\n default: undefined,\n};\n\nconst resolveAwsSdkSigV4Config = (config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = undefined;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider,\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n const isCredentialObject = typeof inputCredentials === \"object\" && inputCredentials !== null;\n resolvedCredentials = async (options) => {\n const creds = await boundProvider(options);\n const attributedCreds = creds;\n if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) {\n return client.setCredentialFeature(attributedCreds, \"CREDENTIALS_CODE\", \"e\");\n }\n return attributedCreds;\n };\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n }\n else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true,\n });\n config.credentials = inputCredentials;\n const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n let signer;\n if (config.signer) {\n signer = core.normalizeProvider(config.signer);\n }\n else if (config.regionInfoProvider) {\n signer = () => core.normalizeProvider(config.region)()\n .then(async (region) => [\n (await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await core.normalizeProvider(config.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n };\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer,\n });\n return resolvedConfig;\n};\nconst resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, { credentials, credentialDefaultProvider, }) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = core.memoizeIdentityProvider(credentials, core.isIdentityExpired, core.doesIdentityRequireRefresh);\n }\n else {\n credentialsProvider = credentials;\n }\n }\n else {\n if (credentialDefaultProvider) {\n credentialsProvider = core.normalizeProvider(credentialDefaultProvider(Object.assign({}, config, {\n parentClientConfig: config,\n })));\n }\n else {\n credentialsProvider = async () => {\n throw new Error(\"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\");\n };\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config });\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n\nexports.AWSSDKSigV4Signer = AWSSDKSigV4Signer;\nexports.AwsSdkSigV4ASigner = AwsSdkSigV4ASigner;\nexports.AwsSdkSigV4Signer = AwsSdkSigV4Signer;\nexports.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = NODE_AUTH_SCHEME_PREFERENCE_OPTIONS;\nexports.NODE_SIGV4A_CONFIG_OPTIONS = NODE_SIGV4A_CONFIG_OPTIONS;\nexports.getBearerTokenEnvKey = getBearerTokenEnvKey;\nexports.resolveAWSSDKSigV4Config = resolveAWSSDKSigV4Config;\nexports.resolveAwsSdkSigV4AConfig = resolveAwsSdkSigV4AConfig;\nexports.resolveAwsSdkSigV4Config = resolveAwsSdkSigV4Config;\nexports.validateSigningProperties = validateSigningProperties;\n","'use strict';\n\nvar cbor = require('@smithy/core/cbor');\nvar schema = require('@smithy/core/schema');\nvar smithyClient = require('@smithy/smithy-client');\nvar protocols = require('@smithy/core/protocols');\nvar serde = require('@smithy/core/serde');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar xmlBuilder = require('@aws-sdk/xml-builder');\n\nclass ProtocolLib {\n queryCompat;\n errorRegistry;\n constructor(queryCompat = false) {\n this.queryCompat = queryCompat;\n }\n resolveRestContentType(defaultContentType, inputSchema) {\n const members = inputSchema.getMemberSchemas();\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n return mediaType;\n }\n else if (httpPayloadMember.isStringSchema()) {\n return \"text/plain\";\n }\n else if (httpPayloadMember.isBlobSchema()) {\n return \"application/octet-stream\";\n }\n else {\n return defaultContentType;\n }\n }\n else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n const noPrefixHeaders = httpPrefixHeaders === void 0;\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n });\n if (hasBody) {\n return defaultContentType;\n }\n }\n }\n async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [, errorName] = errorIdentifier.split(\"#\");\n }\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode < 500 ? \"client\" : \"server\",\n };\n if (!this.errorRegistry) {\n throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n }\n try {\n const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n this.errorRegistry.getSchema(errorIdentifier);\n return { errorSchema, errorMetadata };\n }\n catch (e) {\n dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const synthetic = this.errorRegistry;\n const baseExceptionSchema = synthetic.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n }\n const d = dataObject;\n const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n throw this.decorateServiceException(Object.assign(new Error(message), {\n name: errorName,\n }, errorMetadata), dataObject);\n }\n }\n compose(composite, errorIdentifier, defaultNamespace) {\n let namespace = defaultNamespace;\n if (errorIdentifier.includes(\"#\")) {\n [namespace] = errorIdentifier.split(\"#\");\n }\n const staticRegistry = schema.TypeRegistry.for(namespace);\n const defaultSyntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n composite.copyFrom(staticRegistry);\n composite.copyFrom(defaultSyntheticRegistry);\n this.errorRegistry = composite;\n }\n decorateServiceException(exception, additions = {}) {\n if (this.queryCompat) {\n const msg = exception.Message ?? additions.Message;\n const error = smithyClient.decorateServiceException(exception, additions);\n if (msg) {\n error.message = msg;\n }\n const errorObj = error.Error ?? {};\n errorObj.Type = error.Error?.Type;\n errorObj.Code = error.Error?.Code;\n errorObj.Message = error.Error?.message ?? error.Error?.Message ?? msg;\n error.Error = errorObj;\n const reqId = error.$metadata.requestId;\n if (reqId) {\n error.RequestId = reqId;\n }\n return error;\n }\n return smithyClient.decorateServiceException(exception, additions);\n }\n setQueryCompatError(output, response) {\n const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n if (output !== undefined && queryErrorHeader != null) {\n const [Code, Type] = queryErrorHeader.split(\";\");\n const keys = Object.keys(output);\n const Error = {\n Code,\n Type,\n };\n output.Code = Code;\n output.Type = Type;\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n Error[k === \"message\" ? \"Message\" : k] = output[k];\n }\n delete Error.__type;\n output.Error = Error;\n }\n }\n queryCompatOutput(queryCompatErrorData, errorData) {\n if (queryCompatErrorData.Error) {\n errorData.Error = queryCompatErrorData.Error;\n }\n if (queryCompatErrorData.Type) {\n errorData.Type = queryCompatErrorData.Type;\n }\n if (queryCompatErrorData.Code) {\n errorData.Code = queryCompatErrorData.Code;\n }\n }\n findQueryCompatibleError(registry, errorName) {\n try {\n return registry.getSchema(errorName);\n }\n catch (e) {\n return registry.find((schema$1) => schema.NormalizedSchema.of(schema$1).getMergedTraits().awsQueryError?.[0] === errorName);\n }\n }\n}\n\nclass AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {\n awsQueryCompatible;\n mixin;\n constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {\n super({ defaultNamespace, errorTypeRegistries });\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorName = (() => {\n const compatHeader = response.headers[\"x-amzn-query-error\"];\n if (compatHeader && this.awsQueryCompatible) {\n return compatHeader.split(\";\")[0];\n }\n return cbor.loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n })();\n this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nconst _toStr = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n};\nconst _toBool = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n};\nconst _toNum = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n};\n\nclass SerdeContextConfig {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass UnionSerde {\n from;\n to;\n keys;\n constructor(from, to) {\n this.from = from;\n this.to = to;\n const keys = Object.keys(this.from);\n const set = new Set(keys);\n set.delete(\"__type\");\n this.keys = set;\n }\n mark(key) {\n this.keys.delete(key);\n }\n hasUnknown() {\n return this.keys.size === 1 && Object.keys(this.to).length === 0;\n }\n writeUnknown() {\n if (this.hasUnknown()) {\n const k = this.keys.values().next().value;\n const v = this.from[k];\n this.to.$unknown = [k, v];\n }\n }\n}\n\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new serde.NumericValue(numericString, \"bigDecimal\");\n }\n else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n\nconst collectBodyString = (streamBody, context) => smithyClient.collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? utilUtf8.toUtf8)(body));\n\nconst parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n }\n catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n }\n return {};\n});\nconst parseJsonErrorBody = async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\nconst sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n};\n\nclass JsonShapeDeserializer extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n async read(schema, data) {\n return this._read(schema, typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext));\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema$1, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const union = ns.isUnionSchema();\n const out = {};\n let nameMap = void 0;\n const { jsonName } = this.settings;\n if (jsonName) {\n nameMap = {};\n }\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(record, out);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n let fromKey = memberName;\n if (jsonName) {\n fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;\n nameMap[fromKey] = memberName;\n }\n if (union) {\n unionSerde.mark(fromKey);\n }\n if (record[fromKey] != null) {\n out[memberName] = this._read(memberSchema, record[fromKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const t = jsonName ? nameMap[k] ?? k : k;\n if (!(t in out)) {\n out[t] = v;\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n for (const item of value) {\n out.push(this._read(listMember, item));\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n for (const _k in value) {\n out[_k] = this._read(mapMember, value[_k]);\n }\n return out;\n }\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return utilBase64.fromBase64(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n return value;\n }\n if (ns.isTimestampSchema() && value != null) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde.parseRfc3339DateTimeWithOffset(value);\n case 6:\n return serde.parseRfc7231DateTime(value);\n case 7:\n return serde.parseEpochTimestamp(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != undefined) {\n if (value instanceof serde.NumericValue) {\n return value;\n }\n const untyped = value;\n if (untyped.type === \"bigDecimal\" && \"string\" in untyped) {\n return new serde.NumericValue(untyped.string, untyped.type);\n }\n return new serde.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n return value;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n out[k] = v;\n }\n else {\n out[k] = this._read(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nconst NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nclass JsonReplacer {\n values = new Map();\n counter = 0;\n stage = 0;\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof serde.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + \"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n}\n\nclass JsonShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n useReplacer = false;\n rootSchema;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n this.rootSchema = schema.NormalizedSchema.of(schema$1);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n const { rootSchema, useReplacer } = this;\n this.rootSchema = undefined;\n this.useReplacer = false;\n if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {\n if (!useReplacer) {\n return JSON.stringify(this.buffer);\n }\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n writeDiscriminatedDocument(schema$1, value) {\n this.write(schema$1, value);\n if (typeof this.buffer === \"object\") {\n this.buffer.__type = schema.NormalizedSchema.of(schema$1).getName(true);\n }\n }\n _write(schema$1, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const out = {};\n const { jsonName } = this.settings;\n let nameMap = void 0;\n if (jsonName) {\n nameMap = {};\n }\n let outCount = 0;\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const serializableValue = this._write(memberSchema, record[memberName], ns);\n if (serializableValue !== undefined) {\n let targetKey = memberName;\n if (jsonName) {\n targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;\n nameMap[memberName] = targetKey;\n }\n out[targetKey] = serializableValue;\n outCount++;\n }\n }\n if (ns.isUnionSchema() && outCount === 0) {\n const { $unknown } = record;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n out[k] = this._write(15, v);\n }\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const targetKey = jsonName ? nameMap[k] ?? k : k;\n if (!(targetKey in out)) {\n out[targetKey] = this._write(15, v);\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const _k in value) {\n const _v = value[_k];\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n }\n if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case 6:\n return serde.dateToUtcString(value);\n case 7:\n return value.getTime() / 1000;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1000;\n }\n }\n if (value instanceof serde.NumericValue) {\n this.useReplacer = true;\n }\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isStringSchema()) {\n if (typeof value === \"undefined\" && ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (value != null && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n }\n return value;\n }\n if (typeof value === \"number\" && ns.isNumericSchema()) {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n return value;\n }\n if (typeof value === \"string\" && ns.isBlobSchema()) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (typeof value === \"bigint\") {\n this.useReplacer = true;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n this.useReplacer = true;\n out[k] = v;\n }\n else {\n out[k] = this._write(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nclass JsonCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsJsonRpcProtocol extends protocols.RpcProtocol {\n serializer;\n deserializer;\n serviceTarget;\n codec;\n mixin;\n awsQueryCompatible;\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n this.serviceTarget = serviceTarget;\n this.codec =\n jsonCodec ??\n new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n jsonName: false,\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = `application/x-amz-json-${this.getJsonRpcVersion()}`;\n request.headers[\"x-amz-target\"] = `${this.serviceTarget}.${operationSchema.name}`;\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = errorDeserializer.readObject(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nclass AwsJson1_0Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.0\";\n }\n}\n\nclass AwsJson1_1Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.1\";\n }\n}\n\nclass AwsRestJsonProtocol extends protocols.HttpBindingProtocol {\n serializer;\n deserializer;\n codec;\n mixin = new ProtocolLib();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n httpBindings: true,\n jsonName: true,\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (request.body == null && request.headers[\"content-type\"] === this.getDefaultContentType()) {\n request.body = \"{}\";\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const output = await super.deserializeResponse(operationSchema, context, response);\n const outputSchema = schema.NormalizedSchema.of(operationSchema.output);\n for (const [name, member] of outputSchema.structIterator()) {\n if (member.getMemberTraits().httpPayload && !(name in output)) {\n output[name] = null;\n }\n }\n return output;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = errorDeserializer.readObject(member, dataObject[target]);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/json\";\n }\n}\n\nconst awsExpectUnion = (value) => {\n if (value == null) {\n return undefined;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return smithyClient.expectUnion(value);\n};\n\nclass XmlShapeDeserializer extends SerdeContextConfig {\n settings;\n stringDeserializer;\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new protocols.FromStringShapeDeserializer(settings);\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n read(schema$1, bytes, key) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() &&\n ns.isMemberSchema() &&\n !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n }\n else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema$1, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isUnitSchema()) {\n return;\n }\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n if (source == null) {\n return buffer;\n }\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n buffer.push(this.readSchema(listValue, v));\n }\n return buffer;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n }\n else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value = entry[valueProperty];\n buffer[key] = this.readSchema(memberNs, value);\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n const union = ns.isUnionSchema();\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(value, buffer);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload\n ? memberSchema.getMemberTraits().xmlName ?? memberName\n : memberTraits.xmlName ?? memberSchema.getName();\n if (union) {\n unionSerde.mark(xmlObjectKey);\n }\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(xml);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n }\n}\n\nclass QueryShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value, prefix = \"\") {\n if (this.buffer === undefined) {\n this.buffer = \"\";\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value));\n }\n }\n else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n else if (ns.isIdempotencyToken()) {\n this.writeKey(prefix);\n this.writeValue(serde.generateIdempotencyToken());\n }\n }\n else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof serde.NumericValue ? value.string : String(value));\n }\n }\n else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case 6:\n this.writeValue(smithyClient.dateToUtcString(value));\n break;\n case 7:\n this.writeValue(String(value.getTime() / 1000));\n break;\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n if (Array.isArray(value)) {\n this.write(64 | 15, value, prefix);\n }\n else if (value instanceof Date) {\n this.write(4, value, prefix);\n }\n else if (value instanceof Uint8Array) {\n this.write(21, value, prefix);\n }\n else if (value && typeof value === \"object\") {\n this.write(128 | 15, value, prefix);\n }\n else {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n }\n else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(\"member\", traits.xmlName, traits.ec2QueryName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n }\n else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const k in value) {\n const v = value[k];\n if (v == null) {\n continue;\n }\n const keyTraits = keySchema.getMergedTraits();\n const keySuffix = this.getKey(\"key\", keyTraits.xmlName, keyTraits.ec2QueryName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valTraits = memberSchema.getMergedTraits();\n const valueSuffix = this.getKey(\"value\", valTraits.xmlName, valTraits.ec2QueryName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n }\n else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n let didWriteMember = false;\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null && !member.isIdempotencyToken()) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(memberName, traits.xmlName, traits.ec2QueryName, \"struct\");\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n didWriteMember = true;\n }\n if (!didWriteMember && ns.isUnionSchema()) {\n const { $unknown } = value;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n const key = `${prefix}${k}`;\n this.write(15, v, key);\n }\n }\n }\n }\n else if (ns.isUnitSchema()) ;\n else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === undefined) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName, ec2QueryName, keySource) {\n const { ec2, capitalizeKeys } = this.settings;\n if (ec2 && ec2QueryName) {\n return ec2QueryName;\n }\n const key = xmlName ?? memberName;\n if (capitalizeKeys && keySource === \"struct\") {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${protocols.extendedEncodeURIComponent(key)}=`;\n }\n writeValue(value) {\n this.buffer += protocols.extendedEncodeURIComponent(value);\n }\n}\n\nclass AwsQueryProtocol extends protocols.RpcProtocol {\n options;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace,\n errorTypeRegistries: options.errorTypeRegistries,\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true,\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = \"application/x-www-form-urlencoded\";\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n const action = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n request.body = `Action=${action}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const shortName = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? shortName + \"Result\" : undefined;\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const errorData = this.loadQueryError(dataObject) ?? {};\n const message = this.loadQueryErrorMessage(dataObject);\n errorData.message = message;\n errorData.Error = {\n Type: errorData.Type,\n Code: errorData.Code,\n Message: message,\n };\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, errorData, metadata, this.mixin.findQueryCompatibleError);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {\n Type: errorData.Error.Type,\n Code: errorData.Error.Code,\n Error: errorData.Error,\n };\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorData[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== undefined) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n getDefaultContentType() {\n return \"application/x-www-form-urlencoded\";\n }\n}\n\nclass AwsEc2QueryProtocol extends AwsQueryProtocol {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false,\n ec2: true,\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n getShapeId() {\n return \"aws.protocols#ec2Query\";\n }\n useNestedResult() {\n return false;\n }\n}\n\nconst parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(encoded);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseXmlErrorBody = async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Error?.Code !== undefined) {\n return data.Error.Code;\n }\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n\nclass XmlShapeSerializer extends SerdeContextConfig {\n settings;\n stringBuffer;\n byteBuffer;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n }\n else if (ns.isBlobSchema()) {\n this.byteBuffer =\n \"byteLength\" in value\n ? value\n : (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n else {\n this.buffer = this.writeStruct(ns, value, undefined);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== undefined) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== undefined) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload\n ? ns.getMemberTraits().xmlName ?? ns.getMemberName()\n : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`);\n }\n const structXmlNode = xmlBuilder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null || memberSchema.isIdempotencyToken()) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val));\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n }\n else {\n const memberNode = xmlBuilder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n const { $unknown } = value;\n if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) {\n const [k, v] = $unknown;\n const node = xmlBuilder.XmlNode.of(k);\n if (typeof v !== \"string\") {\n if (value instanceof xmlBuilder.XmlNode || value instanceof xmlBuilder.XmlText) {\n structXmlNode.addChildNode(value);\n }\n else {\n throw new Error(`@aws-sdk - $unknown union member in XML requires ` +\n `value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`);\n }\n }\n this.writeSimpleInto(0, v, node, xmlns);\n structXmlNode.addChildNode(node);\n }\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`);\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = (container, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container, xmlns);\n }\n else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container, xmlns);\n }\n else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"));\n }\n else {\n const listItemNode = xmlBuilder.XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\");\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container.addChildNode(listItemNode);\n }\n };\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n }\n else {\n const listNode = xmlBuilder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`);\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = (entry, key, val) => {\n const keyNode = xmlBuilder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = xmlBuilder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n }\n else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n }\n else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n }\n else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n };\n if (flat) {\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n }\n else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = schema.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n else if (ns.isTimestampSchema() && value instanceof Date) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n case 7:\n nodeContents = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n }\n }\n else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof serde.NumericValue) {\n return value.string;\n }\n return String(value);\n }\n else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\");\n }\n else {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`);\n }\n }\n if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (ns.isStringSchema()) {\n if (value === undefined && ns.isIdempotencyToken()) {\n nodeContents = serde.generateIdempotencyToken();\n }\n else {\n nodeContents = String(value);\n }\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = schema.NormalizedSchema.of(_schema);\n const content = new xmlBuilder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n}\n\nclass XmlCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsRestXmlProtocol extends protocols.HttpBindingProtocol {\n codec;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n this.compositeErrorRegistry;\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (typeof request.body === \"string\" &&\n request.headers[\"content-type\"] === this.getDefaultContentType() &&\n !request.body.startsWith(\"' + request.body;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n if (dataObject.Error && typeof dataObject.Error === \"object\") {\n for (const key of Object.keys(dataObject.Error)) {\n dataObject[key] = dataObject.Error[key];\n if (key.toLowerCase() === \"message\") {\n dataObject.message = dataObject.Error[key];\n }\n }\n }\n if (dataObject.RequestId && !metadata.requestId) {\n metadata.requestId = dataObject.RequestId;\n }\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ??\n dataObject.Error?.Message ??\n dataObject.message ??\n dataObject.Message ??\n \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = errorDeserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/xml\";\n }\n hasUnstructuredPayloadBinding(ns) {\n for (const [, member] of ns.structIterator()) {\n if (member.getMergedTraits().httpPayload) {\n return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema());\n }\n }\n return false;\n }\n}\n\nexports.AwsEc2QueryProtocol = AwsEc2QueryProtocol;\nexports.AwsJson1_0Protocol = AwsJson1_0Protocol;\nexports.AwsJson1_1Protocol = AwsJson1_1Protocol;\nexports.AwsJsonRpcProtocol = AwsJsonRpcProtocol;\nexports.AwsQueryProtocol = AwsQueryProtocol;\nexports.AwsRestJsonProtocol = AwsRestJsonProtocol;\nexports.AwsRestXmlProtocol = AwsRestXmlProtocol;\nexports.AwsSmithyRpcV2CborProtocol = AwsSmithyRpcV2CborProtocol;\nexports.JsonCodec = JsonCodec;\nexports.JsonShapeDeserializer = JsonShapeDeserializer;\nexports.JsonShapeSerializer = JsonShapeSerializer;\nexports.QueryShapeSerializer = QueryShapeSerializer;\nexports.XmlCodec = XmlCodec;\nexports.XmlShapeDeserializer = XmlShapeDeserializer;\nexports.XmlShapeSerializer = XmlShapeSerializer;\nexports._toBool = _toBool;\nexports._toNum = _toNum;\nexports._toStr = _toStr;\nexports.awsExpectUnion = awsExpectUnion;\nexports.loadRestJsonErrorCode = loadRestJsonErrorCode;\nexports.loadRestXmlErrorCode = loadRestXmlErrorCode;\nexports.parseJsonBody = parseJsonBody;\nexports.parseJsonErrorBody = parseJsonErrorBody;\nexports.parseXmlBody = parseXmlBody;\nexports.parseXmlErrorBody = parseXmlErrorBody;\n","'use strict';\n\nvar client = require('@aws-sdk/core/client');\nvar propertyProvider = require('@smithy/property-provider');\n\nconst ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nconst ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nconst ENV_SESSION = \"AWS_SESSION_TOKEN\";\nconst ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nconst ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nconst ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nconst fromEnv = (init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n client.setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new propertyProvider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n};\n\nexports.ENV_ACCOUNT_ID = ENV_ACCOUNT_ID;\nexports.ENV_CREDENTIAL_SCOPE = ENV_CREDENTIAL_SCOPE;\nexports.ENV_EXPIRATION = ENV_EXPIRATION;\nexports.ENV_KEY = ENV_KEY;\nexports.ENV_SECRET = ENV_SECRET;\nexports.ENV_SESSION = ENV_SESSION;\nexports.fromEnv = fromEnv;\n","'use strict';\n\nvar credentialProviderEnv = require('@aws-sdk/credential-provider-env');\nvar propertyProvider = require('@smithy/property-provider');\nvar sharedIniFileLoader = require('@smithy/shared-ini-file-loader');\n\nconst ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import('@smithy/credential-provider-imds');\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import('@aws-sdk/credential-provider-http');\n return propertyProvider.chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new propertyProvider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n\nfunction memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nconst internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nlet multipleCredentialSourceWarningEmitted = false;\nconst defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[sharedIniFileLoader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[credentialProviderEnv.ENV_KEY] && process.env[credentialProviderEnv.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new propertyProvider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return credentialProviderEnv.fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new propertyProvider.CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import('@aws-sdk/credential-provider-sso');\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import('@aws-sdk/credential-provider-ini');\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import('@aws-sdk/credential-provider-process');\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import('@aws-sdk/credential-provider-web-identity');\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new propertyProvider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nconst credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nconst credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n\nexports.credentialsTreatedAsExpired = credentialsTreatedAsExpired;\nexports.credentialsWillNeedRefresh = credentialsWillNeedRefresh;\nexports.defaultProvider = defaultProvider;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nconst hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nconst getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n\nexports.getHostHeaderPlugin = getHostHeaderPlugin;\nexports.hostHeaderMiddleware = hostHeaderMiddleware;\nexports.hostHeaderMiddlewareOptions = hostHeaderMiddlewareOptions;\nexports.resolveHostHeaderConfig = resolveHostHeaderConfig;\n","'use strict';\n\nconst loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nconst loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nconst getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n\nexports.getLoggerPlugin = getLoggerPlugin;\nexports.loggerMiddleware = loggerMiddleware;\nexports.loggerMiddlewareOptions = loggerMiddlewareOptions;\n","'use strict';\n\nvar recursionDetectionMiddleware = require('./recursionDetectionMiddleware');\n\nconst recursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\n\nconst getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware.recursionDetectionMiddleware(), recursionDetectionMiddlewareOptions);\n },\n});\n\nexports.getRecursionDetectionPlugin = getRecursionDetectionPlugin;\nObject.prototype.hasOwnProperty.call(recursionDetectionMiddleware, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: recursionDetectionMiddleware['__proto__']\n });\n\nObject.keys(recursionDetectionMiddleware).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = recursionDetectionMiddleware[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recursionDetectionMiddleware = void 0;\nconst lambda_invoke_store_1 = require(\"@aws/lambda-invoke-store\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nconst recursionDetectionMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ??\n TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceIdFromEnv = process.env[ENV_TRACE_ID];\n const invokeStore = await lambda_invoke_store_1.InvokeStore.getInstanceAsync();\n const traceIdFromInvokeStore = invokeStore?.getXRayTraceId();\n const traceId = traceIdFromInvokeStore ?? traceIdFromEnv;\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.recursionDetectionMiddleware = recursionDetectionMiddleware;\n","'use strict';\n\nvar core = require('@smithy/core');\nvar utilEndpoints = require('@aws-sdk/util-endpoints');\nvar protocolHttp = require('@smithy/protocol-http');\nvar client = require('@aws-sdk/core/client');\nvar utilRetry = require('@smithy/util-retry');\n\nconst DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n if (appId === undefined) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = core.normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n }\n else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n },\n });\n}\n\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n client.setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.mode === \"string\") {\n switch (retryStrategy.mode) {\n case utilRetry.RETRY_MODES.ADAPTIVE:\n client.setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n break;\n case utilRetry.RETRY_MODES.STANDARD:\n client.setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n break;\n }\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n client.setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n client.setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n client.setFeature(context, key, value);\n }\n }\n}\n\nconst USER_AGENT = \"user-agent\";\nconst X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nconst SPACE = \" \";\nconst UA_NAME_SEPARATOR = \"/\";\nconst UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w]/g;\nconst UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w#]/g;\nconst UA_ESCAPE_CHAR = \"-\";\n\nconst BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n }\n else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!protocolHttp.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`]));\n }\n const prefix = utilEndpoints.getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nconst getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nconst getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n\nexports.DEFAULT_UA_APP_ID = DEFAULT_UA_APP_ID;\nexports.getUserAgentMiddlewareOptions = getUserAgentMiddlewareOptions;\nexports.getUserAgentPlugin = getUserAgentPlugin;\nexports.resolveUserAgentConfig = resolveUserAgentConfig;\nexports.userAgentMiddleware = userAgentMiddleware;\n","'use strict';\n\nvar stsRegionDefaultResolver = require('./regionConfig/stsRegionDefaultResolver');\nvar configResolver = require('@smithy/config-resolver');\n\nconst getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n },\n };\n};\nconst resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = configResolver.NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = configResolver.NODE_REGION_CONFIG_OPTIONS;\nexports.REGION_ENV_NAME = configResolver.REGION_ENV_NAME;\nexports.REGION_INI_NAME = configResolver.REGION_INI_NAME;\nexports.resolveRegionConfig = configResolver.resolveRegionConfig;\nexports.getAwsRegionExtensionConfiguration = getAwsRegionExtensionConfiguration;\nexports.resolveAwsRegionExtensionConfiguration = resolveAwsRegionExtensionConfiguration;\nObject.prototype.hasOwnProperty.call(stsRegionDefaultResolver, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: stsRegionDefaultResolver['__proto__']\n });\n\nObject.keys(stsRegionDefaultResolver).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = stsRegionDefaultResolver[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.warning = void 0;\nexports.stsRegionDefaultResolver = stsRegionDefaultResolver;\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nfunction stsRegionDefaultResolver(loaderConfig = {}) {\n return (0, node_config_provider_1.loadConfig)({\n ...config_resolver_1.NODE_REGION_CONFIG_OPTIONS,\n async default() {\n if (!exports.warning.silence) {\n console.warn(\"@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly.\");\n }\n return \"us-east-1\";\n },\n }, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig });\n}\nexports.warning = {\n silence: false,\n};\n","'use strict';\n\nvar utilEndpoints = require('@smithy/util-endpoints');\nvar urlParser = require('@smithy/url-parser');\n\nconst isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!utilEndpoints.isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (utilEndpoints.isIpAddress(value)) {\n return false;\n }\n return true;\n};\n\nconst ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nconst parseArn = (value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition,\n service,\n region,\n accountId,\n resourceId,\n };\n};\n\nvar partitions = [\n\t{\n\t\tid: \"aws\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-east-1\",\n\t\t\tname: \"aws\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"af-south-1\": {\n\t\t\t\tdescription: \"Africa (Cape Town)\"\n\t\t\t},\n\t\t\t\"ap-east-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Hong Kong)\"\n\t\t\t},\n\t\t\t\"ap-east-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Taipei)\"\n\t\t\t},\n\t\t\t\"ap-northeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Tokyo)\"\n\t\t\t},\n\t\t\t\"ap-northeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Seoul)\"\n\t\t\t},\n\t\t\t\"ap-northeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Osaka)\"\n\t\t\t},\n\t\t\t\"ap-south-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Mumbai)\"\n\t\t\t},\n\t\t\t\"ap-south-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Hyderabad)\"\n\t\t\t},\n\t\t\t\"ap-southeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Singapore)\"\n\t\t\t},\n\t\t\t\"ap-southeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Sydney)\"\n\t\t\t},\n\t\t\t\"ap-southeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Jakarta)\"\n\t\t\t},\n\t\t\t\"ap-southeast-4\": {\n\t\t\t\tdescription: \"Asia Pacific (Melbourne)\"\n\t\t\t},\n\t\t\t\"ap-southeast-5\": {\n\t\t\t\tdescription: \"Asia Pacific (Malaysia)\"\n\t\t\t},\n\t\t\t\"ap-southeast-6\": {\n\t\t\t\tdescription: \"Asia Pacific (New Zealand)\"\n\t\t\t},\n\t\t\t\"ap-southeast-7\": {\n\t\t\t\tdescription: \"Asia Pacific (Thailand)\"\n\t\t\t},\n\t\t\t\"aws-global\": {\n\t\t\t\tdescription: \"aws global region\"\n\t\t\t},\n\t\t\t\"ca-central-1\": {\n\t\t\t\tdescription: \"Canada (Central)\"\n\t\t\t},\n\t\t\t\"ca-west-1\": {\n\t\t\t\tdescription: \"Canada West (Calgary)\"\n\t\t\t},\n\t\t\t\"eu-central-1\": {\n\t\t\t\tdescription: \"Europe (Frankfurt)\"\n\t\t\t},\n\t\t\t\"eu-central-2\": {\n\t\t\t\tdescription: \"Europe (Zurich)\"\n\t\t\t},\n\t\t\t\"eu-north-1\": {\n\t\t\t\tdescription: \"Europe (Stockholm)\"\n\t\t\t},\n\t\t\t\"eu-south-1\": {\n\t\t\t\tdescription: \"Europe (Milan)\"\n\t\t\t},\n\t\t\t\"eu-south-2\": {\n\t\t\t\tdescription: \"Europe (Spain)\"\n\t\t\t},\n\t\t\t\"eu-west-1\": {\n\t\t\t\tdescription: \"Europe (Ireland)\"\n\t\t\t},\n\t\t\t\"eu-west-2\": {\n\t\t\t\tdescription: \"Europe (London)\"\n\t\t\t},\n\t\t\t\"eu-west-3\": {\n\t\t\t\tdescription: \"Europe (Paris)\"\n\t\t\t},\n\t\t\t\"il-central-1\": {\n\t\t\t\tdescription: \"Israel (Tel Aviv)\"\n\t\t\t},\n\t\t\t\"me-central-1\": {\n\t\t\t\tdescription: \"Middle East (UAE)\"\n\t\t\t},\n\t\t\t\"me-south-1\": {\n\t\t\t\tdescription: \"Middle East (Bahrain)\"\n\t\t\t},\n\t\t\t\"mx-central-1\": {\n\t\t\t\tdescription: \"Mexico (Central)\"\n\t\t\t},\n\t\t\t\"sa-east-1\": {\n\t\t\t\tdescription: \"South America (Sao Paulo)\"\n\t\t\t},\n\t\t\t\"us-east-1\": {\n\t\t\t\tdescription: \"US East (N. Virginia)\"\n\t\t\t},\n\t\t\t\"us-east-2\": {\n\t\t\t\tdescription: \"US East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-west-1\": {\n\t\t\t\tdescription: \"US West (N. California)\"\n\t\t\t},\n\t\t\t\"us-west-2\": {\n\t\t\t\tdescription: \"US West (Oregon)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-cn\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com.cn\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n\t\t\timplicitGlobalRegion: \"cn-northwest-1\",\n\t\t\tname: \"aws-cn\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-cn-global\": {\n\t\t\t\tdescription: \"aws-cn global region\"\n\t\t\t},\n\t\t\t\"cn-north-1\": {\n\t\t\t\tdescription: \"China (Beijing)\"\n\t\t\t},\n\t\t\t\"cn-northwest-1\": {\n\t\t\t\tdescription: \"China (Ningxia)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-eusc\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.eu\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.eu\",\n\t\t\timplicitGlobalRegion: \"eusc-de-east-1\",\n\t\t\tname: \"aws-eusc\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"eusc-de-east-1\": {\n\t\t\t\tdescription: \"AWS European Sovereign Cloud (Germany)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"c2s.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-iso-east-1\",\n\t\t\tname: \"aws-iso\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-global\": {\n\t\t\t\tdescription: \"aws-iso global region\"\n\t\t\t},\n\t\t\t\"us-iso-east-1\": {\n\t\t\t\tdescription: \"US ISO East\"\n\t\t\t},\n\t\t\t\"us-iso-west-1\": {\n\t\t\t\tdescription: \"US ISO WEST\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-b\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"sc2s.sgov.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.scloud\",\n\t\t\timplicitGlobalRegion: \"us-isob-east-1\",\n\t\t\tname: \"aws-iso-b\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-b-global\": {\n\t\t\t\tdescription: \"aws-iso-b global region\"\n\t\t\t},\n\t\t\t\"us-isob-east-1\": {\n\t\t\t\tdescription: \"US ISOB East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-isob-west-1\": {\n\t\t\t\tdescription: \"US ISOB West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-e\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"cloud.adc-e.uk\",\n\t\t\tdualStackDnsSuffix: \"api.cloud-aws.adc-e.uk\",\n\t\t\timplicitGlobalRegion: \"eu-isoe-west-1\",\n\t\t\tname: \"aws-iso-e\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-e-global\": {\n\t\t\t\tdescription: \"aws-iso-e global region\"\n\t\t\t},\n\t\t\t\"eu-isoe-west-1\": {\n\t\t\t\tdescription: \"EU ISOE West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-f\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"csp.hci.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.hci.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-isof-south-1\",\n\t\t\tname: \"aws-iso-f\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-f-global\": {\n\t\t\t\tdescription: \"aws-iso-f global region\"\n\t\t\t},\n\t\t\t\"us-isof-east-1\": {\n\t\t\t\tdescription: \"US ISOF EAST\"\n\t\t\t},\n\t\t\t\"us-isof-south-1\": {\n\t\t\t\tdescription: \"US ISOF SOUTH\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-us-gov\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-gov-west-1\",\n\t\t\tname: \"aws-us-gov\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-us-gov-global\": {\n\t\t\t\tdescription: \"aws-us-gov global region\"\n\t\t\t},\n\t\t\t\"us-gov-east-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-East)\"\n\t\t\t},\n\t\t\t\"us-gov-west-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-West)\"\n\t\t\t}\n\t\t}\n\t}\n];\nvar version = \"1.1\";\nvar partitionsInfo = {\n\tpartitions: partitions,\n\tversion: version\n};\n\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nconst partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nconst setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nconst useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nconst getUserAgentPrefix = () => selectedUserAgentPrefix;\n\nconst awsEndpointFunctions = {\n isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n parseArn: parseArn,\n partition: partition,\n};\nutilEndpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\nconst resolveDefaultAwsRegionalEndpointsConfig = (input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n return toEndpointV1(input.endpointProvider({\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\"\n ? await input.useDualstackEndpoint()\n : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: undefined,\n }, { logger: input.logger }));\n };\n }\n return input;\n};\nconst toEndpointV1 = (endpoint) => urlParser.parseUrl(endpoint.url);\n\nexports.EndpointError = utilEndpoints.EndpointError;\nexports.isIpAddress = utilEndpoints.isIpAddress;\nexports.resolveEndpoint = utilEndpoints.resolveEndpoint;\nexports.awsEndpointFunctions = awsEndpointFunctions;\nexports.getUserAgentPrefix = getUserAgentPrefix;\nexports.partition = partition;\nexports.resolveDefaultAwsRegionalEndpointsConfig = resolveDefaultAwsRegionalEndpointsConfig;\nexports.setPartitionInfo = setPartitionInfo;\nexports.toEndpointV1 = toEndpointV1;\nexports.useDefaultPartitionInfo = useDefaultPartitionInfo;\n","'use strict';\n\nvar node_os = require('node:os');\nvar node_process = require('node:process');\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar promises = require('node:fs/promises');\nvar node_path = require('node:path');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\n\nconst getRuntimeUserAgentPair = () => {\n const runtimesToCheck = [\"deno\", \"bun\", \"llrt\"];\n for (const runtime of runtimesToCheck) {\n if (node_process.versions[runtime]) {\n return [`md/${runtime}`, node_process.versions[runtime]];\n }\n }\n return [\"md/nodejs\", node_process.versions.node];\n};\n\nconst getNodeModulesParentDirs = (dirname) => {\n const cwd = process.cwd();\n if (!dirname) {\n return [cwd];\n }\n const normalizedPath = node_path.normalize(dirname);\n const parts = normalizedPath.split(node_path.sep);\n const nodeModulesIndex = parts.indexOf(\"node_modules\");\n const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : normalizedPath;\n if (cwd === parentDir) {\n return [cwd];\n }\n return [parentDir, cwd];\n};\n\nconst SEMVER_REGEX = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$/;\nconst getSanitizedTypeScriptVersion = (version = \"\") => {\n const match = version.match(SEMVER_REGEX);\n if (!match) {\n return undefined;\n }\n const [major, minor, patch, prerelease] = [match[1], match[2], match[3], match[4]];\n return prerelease ? `${major}.${minor}.${patch}-${prerelease}` : `${major}.${minor}.${patch}`;\n};\n\nconst ALLOWED_PREFIXES = [\"^\", \"~\", \">=\", \"<=\", \">\", \"<\"];\nconst ALLOWED_DIST_TAGS = [\"latest\", \"beta\", \"dev\", \"rc\", \"insiders\", \"next\"];\nconst getSanitizedDevTypeScriptVersion = (version = \"\") => {\n if (ALLOWED_DIST_TAGS.includes(version)) {\n return version;\n }\n const prefix = ALLOWED_PREFIXES.find((p) => version.startsWith(p)) ?? \"\";\n const sanitizedTypeScriptVersion = getSanitizedTypeScriptVersion(version.slice(prefix.length));\n if (!sanitizedTypeScriptVersion) {\n return undefined;\n }\n return `${prefix}${sanitizedTypeScriptVersion}`;\n};\n\nlet tscVersion;\nconst TS_PACKAGE_JSON = node_path.join(\"node_modules\", \"typescript\", \"package.json\");\nconst getTypeScriptUserAgentPair = async () => {\n if (tscVersion === null) {\n return undefined;\n }\n else if (typeof tscVersion === \"string\") {\n return [\"md/tsc\", tscVersion];\n }\n let isTypeScriptDetectionDisabled = false;\n try {\n isTypeScriptDetectionDisabled =\n utilConfigProvider.booleanSelector(process.env, \"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED\", utilConfigProvider.SelectorType.ENV) || false;\n }\n catch { }\n if (isTypeScriptDetectionDisabled) {\n tscVersion = null;\n return undefined;\n }\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : undefined;\n const nodeModulesParentDirs = getNodeModulesParentDirs(dirname);\n let versionFromApp;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const appPackageJsonPath = node_path.join(nodeModulesParentDir, \"package.json\");\n const packageJson = await promises.readFile(appPackageJsonPath, \"utf-8\");\n const { dependencies, devDependencies } = JSON.parse(packageJson);\n const version = devDependencies?.typescript ?? dependencies?.typescript;\n if (typeof version !== \"string\") {\n continue;\n }\n versionFromApp = version;\n break;\n }\n catch {\n }\n }\n if (!versionFromApp) {\n tscVersion = null;\n return undefined;\n }\n let versionFromNodeModules;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const tsPackageJsonPath = node_path.join(nodeModulesParentDir, TS_PACKAGE_JSON);\n const packageJson = await promises.readFile(tsPackageJsonPath, \"utf-8\");\n const { version } = JSON.parse(packageJson);\n const sanitizedVersion = getSanitizedTypeScriptVersion(version);\n if (typeof sanitizedVersion !== \"string\") {\n continue;\n }\n versionFromNodeModules = sanitizedVersion;\n break;\n }\n catch {\n }\n }\n if (versionFromNodeModules) {\n tscVersion = versionFromNodeModules;\n return [\"md/tsc\", tscVersion];\n }\n const sanitizedVersion = getSanitizedDevTypeScriptVersion(versionFromApp);\n if (typeof sanitizedVersion !== \"string\") {\n tscVersion = null;\n return undefined;\n }\n tscVersion = `dev_${sanitizedVersion}`;\n return [\"md/tsc\", tscVersion];\n};\n\nconst crtAvailability = {\n isCrtAvailable: false,\n};\n\nconst isCrtAvailable = () => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n};\n\nconst createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => {\n const runtimeUserAgentPair = getRuntimeUserAgentPair();\n return async (config) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.1\"],\n [`os/${node_os.platform()}`, node_os.release()],\n [\"lang/js\"],\n runtimeUserAgentPair,\n ];\n const typescriptUserAgentPair = await getTypeScriptUserAgentPair();\n if (typescriptUserAgentPair) {\n sections.push(typescriptUserAgentPair);\n }\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (node_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${node_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n};\nconst defaultUserAgent = createDefaultUserAgentProvider;\n\nconst UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nconst UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nconst UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nconst NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED],\n default: middlewareUserAgent.DEFAULT_UA_APP_ID,\n};\n\nexports.NODE_APP_ID_CONFIG_OPTIONS = NODE_APP_ID_CONFIG_OPTIONS;\nexports.UA_APP_ID_ENV_NAME = UA_APP_ID_ENV_NAME;\nexports.UA_APP_ID_INI_NAME = UA_APP_ID_INI_NAME;\nexports.createDefaultUserAgentProvider = createDefaultUserAgentProvider;\nexports.crtAvailability = crtAvailability;\nexports.defaultUserAgent = defaultUserAgent;\n","'use strict';\n\nvar xmlParser = require('./xml-parser');\n\nconst ATTR_ESCAPE_RE = /[&<>\"]/g;\nconst ATTR_ESCAPE_MAP = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n};\nfunction escapeAttribute(value) {\n return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);\n}\n\nconst ELEMENT_ESCAPE_RE = /[&\"'<>\\r\\n\\u0085\\u2028]/g;\nconst ELEMENT_ESCAPE_MAP = {\n \"&\": \"&\",\n '\"': \""\",\n \"'\": \"'\",\n \"<\": \"<\",\n \">\": \">\",\n \"\\r\": \" \",\n \"\\n\": \" \",\n \"\\u0085\": \"…\",\n \"\\u2028\": \"
\",\n};\nfunction escapeElement(value) {\n return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);\n}\n\nclass XmlText {\n value;\n constructor(value) {\n this.value = value;\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n}\n\nclass XmlNode {\n name;\n children;\n attributes = {};\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n n(name) {\n this.name = name;\n return this;\n }\n c(child) {\n this.children.push(child);\n return this;\n }\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`);\n }\n}\n\nexports.parseXML = xmlParser.parseXML;\nexports.XmlNode = XmlNode;\nexports.XmlText = XmlText;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseXML = parseXML;\nconst fast_xml_parser_1 = require(\"fast-xml-parser\");\nconst parser = new fast_xml_parser_1.XMLParser({\n attributeNamePrefix: \"\",\n processEntities: {\n enabled: true,\n maxTotalExpansions: Infinity,\n },\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n maxNestedTags: Infinity,\n});\nparser.addEntity(\"#xD\", \"\\r\");\nparser.addEntity(\"#10\", \"\\n\");\nfunction parseXML(xmlString) {\n return parser.parse(xmlString, true);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCloudWatchLogsHttpAuthSchemeProvider = exports.defaultCloudWatchLogsHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCloudWatchLogsHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCloudWatchLogsHttpAuthSchemeParametersProvider = defaultCloudWatchLogsHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"logs\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCloudWatchLogsHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCloudWatchLogsHttpAuthSchemeProvider = defaultCloudWatchLogsHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [x]: \"Region\" }, p = { [v]: \"getAttr\", [w]: [{ [x]: g }, \"supportsFIPS\"] }, q = { [v]: c, [w]: [true, { [v]: \"getAttr\", [w]: [{ [x]: g }, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [o];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, p] }, q], rules: [{ endpoint: { url: \"https://logs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [p, a] }], rules: [{ conditions: [{ [v]: h, [w]: [o, \"us-gov-east-1\"] }], endpoint: { url: \"https://logs.us-gov-east-1.amazonaws.com\", properties: n, headers: n }, type: e }, { conditions: [{ [v]: h, [w]: [o, \"us-gov-west-1\"] }], endpoint: { url: \"https://logs.us-gov-west-1.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://logs-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://logs.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://logs.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n AnomalyDetectorStatus: () => AnomalyDetectorStatus,\n AssociateKmsKeyCommand: () => AssociateKmsKeyCommand,\n CancelExportTaskCommand: () => CancelExportTaskCommand,\n CloudWatchLogs: () => CloudWatchLogs,\n CloudWatchLogsClient: () => CloudWatchLogsClient,\n CloudWatchLogsServiceException: () => CloudWatchLogsServiceException,\n ConflictException: () => ConflictException,\n CreateDeliveryCommand: () => CreateDeliveryCommand,\n CreateExportTaskCommand: () => CreateExportTaskCommand,\n CreateLogAnomalyDetectorCommand: () => CreateLogAnomalyDetectorCommand,\n CreateLogGroupCommand: () => CreateLogGroupCommand,\n CreateLogStreamCommand: () => CreateLogStreamCommand,\n DataAlreadyAcceptedException: () => DataAlreadyAcceptedException,\n DataProtectionStatus: () => DataProtectionStatus,\n DeleteAccountPolicyCommand: () => DeleteAccountPolicyCommand,\n DeleteDataProtectionPolicyCommand: () => DeleteDataProtectionPolicyCommand,\n DeleteDeliveryCommand: () => DeleteDeliveryCommand,\n DeleteDeliveryDestinationCommand: () => DeleteDeliveryDestinationCommand,\n DeleteDeliveryDestinationPolicyCommand: () => DeleteDeliveryDestinationPolicyCommand,\n DeleteDeliverySourceCommand: () => DeleteDeliverySourceCommand,\n DeleteDestinationCommand: () => DeleteDestinationCommand,\n DeleteIndexPolicyCommand: () => DeleteIndexPolicyCommand,\n DeleteIntegrationCommand: () => DeleteIntegrationCommand,\n DeleteLogAnomalyDetectorCommand: () => DeleteLogAnomalyDetectorCommand,\n DeleteLogGroupCommand: () => DeleteLogGroupCommand,\n DeleteLogStreamCommand: () => DeleteLogStreamCommand,\n DeleteMetricFilterCommand: () => DeleteMetricFilterCommand,\n DeleteQueryDefinitionCommand: () => DeleteQueryDefinitionCommand,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeleteRetentionPolicyCommand: () => DeleteRetentionPolicyCommand,\n DeleteSubscriptionFilterCommand: () => DeleteSubscriptionFilterCommand,\n DeleteTransformerCommand: () => DeleteTransformerCommand,\n DeliveryDestinationType: () => DeliveryDestinationType,\n DescribeAccountPoliciesCommand: () => DescribeAccountPoliciesCommand,\n DescribeConfigurationTemplatesCommand: () => DescribeConfigurationTemplatesCommand,\n DescribeDeliveriesCommand: () => DescribeDeliveriesCommand,\n DescribeDeliveryDestinationsCommand: () => DescribeDeliveryDestinationsCommand,\n DescribeDeliverySourcesCommand: () => DescribeDeliverySourcesCommand,\n DescribeDestinationsCommand: () => DescribeDestinationsCommand,\n DescribeExportTasksCommand: () => DescribeExportTasksCommand,\n DescribeFieldIndexesCommand: () => DescribeFieldIndexesCommand,\n DescribeIndexPoliciesCommand: () => DescribeIndexPoliciesCommand,\n DescribeLogGroupsCommand: () => DescribeLogGroupsCommand,\n DescribeLogStreamsCommand: () => DescribeLogStreamsCommand,\n DescribeMetricFiltersCommand: () => DescribeMetricFiltersCommand,\n DescribeQueriesCommand: () => DescribeQueriesCommand,\n DescribeQueryDefinitionsCommand: () => DescribeQueryDefinitionsCommand,\n DescribeResourcePoliciesCommand: () => DescribeResourcePoliciesCommand,\n DescribeSubscriptionFiltersCommand: () => DescribeSubscriptionFiltersCommand,\n DisassociateKmsKeyCommand: () => DisassociateKmsKeyCommand,\n Distribution: () => Distribution,\n EntityRejectionErrorType: () => EntityRejectionErrorType,\n EvaluationFrequency: () => EvaluationFrequency,\n ExportTaskStatusCode: () => ExportTaskStatusCode,\n FilterLogEventsCommand: () => FilterLogEventsCommand,\n FlattenedElement: () => FlattenedElement,\n GetDataProtectionPolicyCommand: () => GetDataProtectionPolicyCommand,\n GetDeliveryCommand: () => GetDeliveryCommand,\n GetDeliveryDestinationCommand: () => GetDeliveryDestinationCommand,\n GetDeliveryDestinationPolicyCommand: () => GetDeliveryDestinationPolicyCommand,\n GetDeliverySourceCommand: () => GetDeliverySourceCommand,\n GetIntegrationCommand: () => GetIntegrationCommand,\n GetLogAnomalyDetectorCommand: () => GetLogAnomalyDetectorCommand,\n GetLogEventsCommand: () => GetLogEventsCommand,\n GetLogGroupFieldsCommand: () => GetLogGroupFieldsCommand,\n GetLogRecordCommand: () => GetLogRecordCommand,\n GetQueryResultsCommand: () => GetQueryResultsCommand,\n GetTransformerCommand: () => GetTransformerCommand,\n IndexSource: () => IndexSource,\n InheritedProperty: () => InheritedProperty,\n IntegrationDetails: () => IntegrationDetails,\n IntegrationStatus: () => IntegrationStatus,\n IntegrationType: () => IntegrationType,\n InvalidOperationException: () => InvalidOperationException,\n InvalidParameterException: () => InvalidParameterException,\n InvalidSequenceTokenException: () => InvalidSequenceTokenException,\n LimitExceededException: () => LimitExceededException,\n ListAnomaliesCommand: () => ListAnomaliesCommand,\n ListIntegrationsCommand: () => ListIntegrationsCommand,\n ListLogAnomalyDetectorsCommand: () => ListLogAnomalyDetectorsCommand,\n ListLogGroupsForQueryCommand: () => ListLogGroupsForQueryCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTagsLogGroupCommand: () => ListTagsLogGroupCommand,\n LogGroupClass: () => LogGroupClass,\n MalformedQueryException: () => MalformedQueryException,\n OpenSearchResourceStatusType: () => OpenSearchResourceStatusType,\n OperationAbortedException: () => OperationAbortedException,\n OrderBy: () => OrderBy,\n OutputFormat: () => OutputFormat,\n PolicyType: () => PolicyType,\n PutAccountPolicyCommand: () => PutAccountPolicyCommand,\n PutDataProtectionPolicyCommand: () => PutDataProtectionPolicyCommand,\n PutDeliveryDestinationCommand: () => PutDeliveryDestinationCommand,\n PutDeliveryDestinationPolicyCommand: () => PutDeliveryDestinationPolicyCommand,\n PutDeliverySourceCommand: () => PutDeliverySourceCommand,\n PutDestinationCommand: () => PutDestinationCommand,\n PutDestinationPolicyCommand: () => PutDestinationPolicyCommand,\n PutIndexPolicyCommand: () => PutIndexPolicyCommand,\n PutIntegrationCommand: () => PutIntegrationCommand,\n PutLogEventsCommand: () => PutLogEventsCommand,\n PutMetricFilterCommand: () => PutMetricFilterCommand,\n PutQueryDefinitionCommand: () => PutQueryDefinitionCommand,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n PutRetentionPolicyCommand: () => PutRetentionPolicyCommand,\n PutSubscriptionFilterCommand: () => PutSubscriptionFilterCommand,\n PutTransformerCommand: () => PutTransformerCommand,\n QueryLanguage: () => QueryLanguage,\n QueryStatus: () => QueryStatus,\n ResourceAlreadyExistsException: () => ResourceAlreadyExistsException,\n ResourceConfig: () => ResourceConfig,\n ResourceNotFoundException: () => ResourceNotFoundException,\n Scope: () => Scope,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n ServiceUnavailableException: () => ServiceUnavailableException,\n SessionStreamingException: () => SessionStreamingException,\n SessionTimeoutException: () => SessionTimeoutException,\n StandardUnit: () => StandardUnit,\n StartLiveTailCommand: () => StartLiveTailCommand,\n StartLiveTailResponseFilterSensitiveLog: () => StartLiveTailResponseFilterSensitiveLog,\n StartLiveTailResponseStream: () => StartLiveTailResponseStream,\n StartLiveTailResponseStreamFilterSensitiveLog: () => StartLiveTailResponseStreamFilterSensitiveLog,\n StartQueryCommand: () => StartQueryCommand,\n State: () => State,\n StopQueryCommand: () => StopQueryCommand,\n SuppressionState: () => SuppressionState,\n SuppressionType: () => SuppressionType,\n SuppressionUnit: () => SuppressionUnit,\n TagLogGroupCommand: () => TagLogGroupCommand,\n TagResourceCommand: () => TagResourceCommand,\n TestMetricFilterCommand: () => TestMetricFilterCommand,\n TestTransformerCommand: () => TestTransformerCommand,\n ThrottlingException: () => ThrottlingException,\n TooManyTagsException: () => TooManyTagsException,\n Type: () => Type,\n UnrecognizedClientException: () => UnrecognizedClientException,\n UntagLogGroupCommand: () => UntagLogGroupCommand,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateAnomalyCommand: () => UpdateAnomalyCommand,\n UpdateDeliveryConfigurationCommand: () => UpdateDeliveryConfigurationCommand,\n UpdateLogAnomalyDetectorCommand: () => UpdateLogAnomalyDetectorCommand,\n ValidationException: () => ValidationException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeConfigurationTemplates: () => paginateDescribeConfigurationTemplates,\n paginateDescribeDeliveries: () => paginateDescribeDeliveries,\n paginateDescribeDeliveryDestinations: () => paginateDescribeDeliveryDestinations,\n paginateDescribeDeliverySources: () => paginateDescribeDeliverySources,\n paginateDescribeDestinations: () => paginateDescribeDestinations,\n paginateDescribeLogGroups: () => paginateDescribeLogGroups,\n paginateDescribeLogStreams: () => paginateDescribeLogStreams,\n paginateDescribeMetricFilters: () => paginateDescribeMetricFilters,\n paginateDescribeSubscriptionFilters: () => paginateDescribeSubscriptionFilters,\n paginateFilterLogEvents: () => paginateFilterLogEvents,\n paginateGetLogEvents: () => paginateGetLogEvents,\n paginateListAnomalies: () => paginateListAnomalies,\n paginateListLogAnomalyDetectors: () => paginateListLogAnomalyDetectors,\n paginateListLogGroupsForQuery: () => paginateListLogGroupsForQuery\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CloudWatchLogsClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_eventstream_serde_config_resolver = require(\"@smithy/eventstream-serde-config-resolver\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"logs\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CloudWatchLogsClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CloudWatchLogsClient.ts\nvar CloudWatchLogsClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CloudWatchLogsClient\");\n }\n /**\n * The resolved configuration of CloudWatchLogsClient class. This is resolved and normalized from the {@link CloudWatchLogsClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_eventstream_serde_config_resolver.resolveEventStreamSerdeConfig)(_config_6);\n const _config_8 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_7);\n const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []);\n this.config = _config_9;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCloudWatchLogsHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CloudWatchLogs.ts\n\n\n// src/commands/AssociateKmsKeyCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/CloudWatchLogsServiceException.ts\n\nvar CloudWatchLogsServiceException = class _CloudWatchLogsServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CloudWatchLogsServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CloudWatchLogsServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n }\n};\nvar PolicyType = {\n DATA_PROTECTION_POLICY: \"DATA_PROTECTION_POLICY\",\n FIELD_INDEX_POLICY: \"FIELD_INDEX_POLICY\",\n SUBSCRIPTION_FILTER_POLICY: \"SUBSCRIPTION_FILTER_POLICY\",\n TRANSFORMER_POLICY: \"TRANSFORMER_POLICY\"\n};\nvar Scope = {\n ALL: \"ALL\"\n};\nvar State = {\n Active: \"Active\",\n Baseline: \"Baseline\",\n Suppressed: \"Suppressed\"\n};\nvar AnomalyDetectorStatus = {\n ANALYZING: \"ANALYZING\",\n DELETED: \"DELETED\",\n FAILED: \"FAILED\",\n INITIALIZING: \"INITIALIZING\",\n PAUSED: \"PAUSED\",\n TRAINING: \"TRAINING\"\n};\nvar EvaluationFrequency = {\n FIFTEEN_MIN: \"FIFTEEN_MIN\",\n FIVE_MIN: \"FIVE_MIN\",\n ONE_HOUR: \"ONE_HOUR\",\n ONE_MIN: \"ONE_MIN\",\n TEN_MIN: \"TEN_MIN\",\n THIRTY_MIN: \"THIRTY_MIN\"\n};\nvar InvalidParameterException = class _InvalidParameterException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar OperationAbortedException = class _OperationAbortedException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"OperationAbortedException\");\n }\n name = \"OperationAbortedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OperationAbortedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OperationAbortedException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ServiceUnavailableException = class _ServiceUnavailableException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ServiceUnavailableException\");\n }\n name = \"ServiceUnavailableException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceUnavailableException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceUnavailableException.prototype);\n }\n};\nvar InvalidOperationException = class _InvalidOperationException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"InvalidOperationException\");\n }\n name = \"InvalidOperationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOperationException.prototype);\n }\n};\nvar OutputFormat = {\n JSON: \"json\",\n PARQUET: \"parquet\",\n PLAIN: \"plain\",\n RAW: \"raw\",\n W3C: \"w3c\"\n};\nvar DeliveryDestinationType = {\n CWL: \"CWL\",\n FH: \"FH\",\n S3: \"S3\"\n};\nvar ConflictException = class _ConflictException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n }\n};\nvar ThrottlingException = class _ThrottlingException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n }\n};\nvar ValidationException = class _ValidationException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar ResourceAlreadyExistsException = class _ResourceAlreadyExistsException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ResourceAlreadyExistsException\");\n }\n name = \"ResourceAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceAlreadyExistsException.prototype);\n }\n};\nvar LogGroupClass = {\n DELIVERY: \"DELIVERY\",\n INFREQUENT_ACCESS: \"INFREQUENT_ACCESS\",\n STANDARD: \"STANDARD\"\n};\nvar DataAlreadyAcceptedException = class _DataAlreadyAcceptedException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"DataAlreadyAcceptedException\");\n }\n name = \"DataAlreadyAcceptedException\";\n $fault = \"client\";\n expectedSequenceToken;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DataAlreadyAcceptedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DataAlreadyAcceptedException.prototype);\n this.expectedSequenceToken = opts.expectedSequenceToken;\n }\n};\nvar DataProtectionStatus = {\n ACTIVATED: \"ACTIVATED\",\n ARCHIVED: \"ARCHIVED\",\n DELETED: \"DELETED\",\n DISABLED: \"DISABLED\"\n};\nvar ExportTaskStatusCode = {\n CANCELLED: \"CANCELLED\",\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n PENDING_CANCEL: \"PENDING_CANCEL\",\n RUNNING: \"RUNNING\"\n};\nvar IndexSource = {\n ACCOUNT: \"ACCOUNT\",\n LOG_GROUP: \"LOG_GROUP\"\n};\nvar InheritedProperty = {\n ACCOUNT_DATA_PROTECTION: \"ACCOUNT_DATA_PROTECTION\"\n};\nvar OrderBy = {\n LastEventTime: \"LastEventTime\",\n LogStreamName: \"LogStreamName\"\n};\nvar StandardUnit = {\n Bits: \"Bits\",\n BitsSecond: \"Bits/Second\",\n Bytes: \"Bytes\",\n BytesSecond: \"Bytes/Second\",\n Count: \"Count\",\n CountSecond: \"Count/Second\",\n Gigabits: \"Gigabits\",\n GigabitsSecond: \"Gigabits/Second\",\n Gigabytes: \"Gigabytes\",\n GigabytesSecond: \"Gigabytes/Second\",\n Kilobits: \"Kilobits\",\n KilobitsSecond: \"Kilobits/Second\",\n Kilobytes: \"Kilobytes\",\n KilobytesSecond: \"Kilobytes/Second\",\n Megabits: \"Megabits\",\n MegabitsSecond: \"Megabits/Second\",\n Megabytes: \"Megabytes\",\n MegabytesSecond: \"Megabytes/Second\",\n Microseconds: \"Microseconds\",\n Milliseconds: \"Milliseconds\",\n None: \"None\",\n Percent: \"Percent\",\n Seconds: \"Seconds\",\n Terabits: \"Terabits\",\n TerabitsSecond: \"Terabits/Second\",\n Terabytes: \"Terabytes\",\n TerabytesSecond: \"Terabytes/Second\"\n};\nvar QueryLanguage = {\n CWLI: \"CWLI\",\n PPL: \"PPL\",\n SQL: \"SQL\"\n};\nvar QueryStatus = {\n Cancelled: \"Cancelled\",\n Complete: \"Complete\",\n Failed: \"Failed\",\n Running: \"Running\",\n Scheduled: \"Scheduled\",\n Timeout: \"Timeout\",\n Unknown: \"Unknown\"\n};\nvar Distribution = {\n ByLogStream: \"ByLogStream\",\n Random: \"Random\"\n};\nvar EntityRejectionErrorType = {\n ENTITY_SIZE_TOO_LARGE: \"EntitySizeTooLarge\",\n INVALID_ATTRIBUTES: \"InvalidAttributes\",\n INVALID_ENTITY: \"InvalidEntity\",\n INVALID_KEY_ATTRIBUTE: \"InvalidKeyAttributes\",\n INVALID_TYPE_VALUE: \"InvalidTypeValue\",\n MISSING_REQUIRED_FIELDS: \"MissingRequiredFields\",\n UNSUPPORTED_LOG_GROUP_TYPE: \"UnsupportedLogGroupType\"\n};\nvar FlattenedElement = {\n FIRST: \"first\",\n LAST: \"last\"\n};\nvar OpenSearchResourceStatusType = {\n ACTIVE: \"ACTIVE\",\n ERROR: \"ERROR\",\n NOT_FOUND: \"NOT_FOUND\"\n};\nvar IntegrationDetails;\n((IntegrationDetails2) => {\n IntegrationDetails2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.openSearchIntegrationDetails !== void 0)\n return visitor.openSearchIntegrationDetails(value.openSearchIntegrationDetails);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(IntegrationDetails || (IntegrationDetails = {}));\nvar IntegrationStatus = {\n ACTIVE: \"ACTIVE\",\n FAILED: \"FAILED\",\n PROVISIONING: \"PROVISIONING\"\n};\nvar IntegrationType = {\n OPENSEARCH: \"OPENSEARCH\"\n};\nvar Type = {\n BOOLEAN: \"boolean\",\n DOUBLE: \"double\",\n INTEGER: \"integer\",\n STRING: \"string\"\n};\nvar InvalidSequenceTokenException = class _InvalidSequenceTokenException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"InvalidSequenceTokenException\");\n }\n name = \"InvalidSequenceTokenException\";\n $fault = \"client\";\n expectedSequenceToken;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSequenceTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSequenceTokenException.prototype);\n this.expectedSequenceToken = opts.expectedSequenceToken;\n }\n};\nvar SuppressionState = {\n SUPPRESSED: \"SUPPRESSED\",\n UNSUPPRESSED: \"UNSUPPRESSED\"\n};\nvar ResourceConfig;\n((ResourceConfig3) => {\n ResourceConfig3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.openSearchResourceConfig !== void 0)\n return visitor.openSearchResourceConfig(value.openSearchResourceConfig);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(ResourceConfig || (ResourceConfig = {}));\nvar UnrecognizedClientException = class _UnrecognizedClientException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"UnrecognizedClientException\");\n }\n name = \"UnrecognizedClientException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnrecognizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnrecognizedClientException.prototype);\n }\n};\nvar SessionStreamingException = class _SessionStreamingException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"SessionStreamingException\");\n }\n name = \"SessionStreamingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SessionStreamingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SessionStreamingException.prototype);\n }\n};\nvar SessionTimeoutException = class _SessionTimeoutException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"SessionTimeoutException\");\n }\n name = \"SessionTimeoutException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SessionTimeoutException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SessionTimeoutException.prototype);\n }\n};\nvar StartLiveTailResponseStream;\n((StartLiveTailResponseStream3) => {\n StartLiveTailResponseStream3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.sessionStart !== void 0) return visitor.sessionStart(value.sessionStart);\n if (value.sessionUpdate !== void 0) return visitor.sessionUpdate(value.sessionUpdate);\n if (value.SessionTimeoutException !== void 0)\n return visitor.SessionTimeoutException(value.SessionTimeoutException);\n if (value.SessionStreamingException !== void 0)\n return visitor.SessionStreamingException(value.SessionStreamingException);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(StartLiveTailResponseStream || (StartLiveTailResponseStream = {}));\nvar MalformedQueryException = class _MalformedQueryException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"MalformedQueryException\");\n }\n name = \"MalformedQueryException\";\n $fault = \"client\";\n /**\n *

Reserved.

\n * @public\n */\n queryCompileError;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedQueryException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedQueryException.prototype);\n this.queryCompileError = opts.queryCompileError;\n }\n};\nvar TooManyTagsException = class _TooManyTagsException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"TooManyTagsException\");\n }\n name = \"TooManyTagsException\";\n $fault = \"client\";\n /**\n *

The name of the resource.

\n * @public\n */\n resourceName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsException.prototype);\n this.resourceName = opts.resourceName;\n }\n};\nvar SuppressionUnit = {\n HOURS: \"HOURS\",\n MINUTES: \"MINUTES\",\n SECONDS: \"SECONDS\"\n};\nvar SuppressionType = {\n INFINITE: \"INFINITE\",\n LIMITED: \"LIMITED\"\n};\nvar StartLiveTailResponseStreamFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.sessionStart !== void 0) return { sessionStart: obj.sessionStart };\n if (obj.sessionUpdate !== void 0) return { sessionUpdate: obj.sessionUpdate };\n if (obj.SessionTimeoutException !== void 0) return { SessionTimeoutException: obj.SessionTimeoutException };\n if (obj.SessionStreamingException !== void 0) return { SessionStreamingException: obj.SessionStreamingException };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"StartLiveTailResponseStreamFilterSensitiveLog\");\nvar StartLiveTailResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.responseStream && { responseStream: \"STREAMING_CONTENT\" }\n}), \"StartLiveTailResponseFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_AssociateKmsKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"AssociateKmsKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateKmsKeyCommand\");\nvar se_CancelExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelExportTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelExportTaskCommand\");\nvar se_CreateDeliveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateDelivery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDeliveryCommand\");\nvar se_CreateExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateExportTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateExportTaskCommand\");\nvar se_CreateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLogAnomalyDetectorCommand\");\nvar se_CreateLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLogGroupCommand\");\nvar se_CreateLogStreamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateLogStream\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLogStreamCommand\");\nvar se_DeleteAccountPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAccountPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountPolicyCommand\");\nvar se_DeleteDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDataProtectionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDataProtectionPolicyCommand\");\nvar se_DeleteDeliveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDelivery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliveryCommand\");\nvar se_DeleteDeliveryDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDeliveryDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliveryDestinationCommand\");\nvar se_DeleteDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDeliveryDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliveryDestinationPolicyCommand\");\nvar se_DeleteDeliverySourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDeliverySource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliverySourceCommand\");\nvar se_DeleteDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDestinationCommand\");\nvar se_DeleteIndexPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIndexPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIndexPolicyCommand\");\nvar se_DeleteIntegrationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIntegration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIntegrationCommand\");\nvar se_DeleteLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLogAnomalyDetectorCommand\");\nvar se_DeleteLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLogGroupCommand\");\nvar se_DeleteLogStreamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLogStream\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLogStreamCommand\");\nvar se_DeleteMetricFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteMetricFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteMetricFilterCommand\");\nvar se_DeleteQueryDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteQueryDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteQueryDefinitionCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeleteRetentionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRetentionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRetentionPolicyCommand\");\nvar se_DeleteSubscriptionFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteSubscriptionFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSubscriptionFilterCommand\");\nvar se_DeleteTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransformerCommand\");\nvar se_DescribeAccountPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAccountPolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAccountPoliciesCommand\");\nvar se_DescribeConfigurationTemplatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeConfigurationTemplates\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeConfigurationTemplatesCommand\");\nvar se_DescribeDeliveriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDeliveries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeliveriesCommand\");\nvar se_DescribeDeliveryDestinationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDeliveryDestinations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeliveryDestinationsCommand\");\nvar se_DescribeDeliverySourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDeliverySources\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeliverySourcesCommand\");\nvar se_DescribeDestinationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDestinations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDestinationsCommand\");\nvar se_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeExportTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExportTasksCommand\");\nvar se_DescribeFieldIndexesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeFieldIndexes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFieldIndexesCommand\");\nvar se_DescribeIndexPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeIndexPolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIndexPoliciesCommand\");\nvar se_DescribeLogGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeLogGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLogGroupsCommand\");\nvar se_DescribeLogStreamsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeLogStreams\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLogStreamsCommand\");\nvar se_DescribeMetricFiltersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMetricFilters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMetricFiltersCommand\");\nvar se_DescribeQueriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeQueries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeQueriesCommand\");\nvar se_DescribeQueryDefinitionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeQueryDefinitions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeQueryDefinitionsCommand\");\nvar se_DescribeResourcePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeResourcePolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeResourcePoliciesCommand\");\nvar se_DescribeSubscriptionFiltersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeSubscriptionFilters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSubscriptionFiltersCommand\");\nvar se_DisassociateKmsKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisassociateKmsKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateKmsKeyCommand\");\nvar se_FilterLogEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"FilterLogEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_FilterLogEventsCommand\");\nvar se_GetDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDataProtectionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDataProtectionPolicyCommand\");\nvar se_GetDeliveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDelivery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliveryCommand\");\nvar se_GetDeliveryDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeliveryDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliveryDestinationCommand\");\nvar se_GetDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeliveryDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliveryDestinationPolicyCommand\");\nvar se_GetDeliverySourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeliverySource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliverySourceCommand\");\nvar se_GetIntegrationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetIntegration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIntegrationCommand\");\nvar se_GetLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogAnomalyDetectorCommand\");\nvar se_GetLogEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogEventsCommand\");\nvar se_GetLogGroupFieldsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogGroupFields\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogGroupFieldsCommand\");\nvar se_GetLogRecordCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogRecord\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogRecordCommand\");\nvar se_GetQueryResultsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetQueryResults\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetQueryResultsCommand\");\nvar se_GetTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransformerCommand\");\nvar se_ListAnomaliesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAnomalies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAnomaliesCommand\");\nvar se_ListIntegrationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListIntegrations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListIntegrationsCommand\");\nvar se_ListLogAnomalyDetectorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListLogAnomalyDetectors\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListLogAnomalyDetectorsCommand\");\nvar se_ListLogGroupsForQueryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListLogGroupsForQuery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListLogGroupsForQueryCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTagsLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsLogGroupCommand\");\nvar se_PutAccountPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountPolicyCommand\");\nvar se_PutDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDataProtectionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDataProtectionPolicyCommand\");\nvar se_PutDeliveryDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDeliveryDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDeliveryDestinationCommand\");\nvar se_PutDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDeliveryDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDeliveryDestinationPolicyCommand\");\nvar se_PutDeliverySourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDeliverySource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDeliverySourceCommand\");\nvar se_PutDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDestinationCommand\");\nvar se_PutDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDestinationPolicyCommand\");\nvar se_PutIndexPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutIndexPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutIndexPolicyCommand\");\nvar se_PutIntegrationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutIntegration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutIntegrationCommand\");\nvar se_PutLogEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutLogEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutLogEventsCommand\");\nvar se_PutMetricFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutMetricFilter\");\n let body;\n body = JSON.stringify(se_PutMetricFilterRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutMetricFilterCommand\");\nvar se_PutQueryDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutQueryDefinition\");\n let body;\n body = JSON.stringify(se_PutQueryDefinitionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutQueryDefinitionCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_PutRetentionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutRetentionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRetentionPolicyCommand\");\nvar se_PutSubscriptionFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutSubscriptionFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutSubscriptionFilterCommand\");\nvar se_PutTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutTransformerCommand\");\nvar se_StartLiveTailCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartLiveTail\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"streaming-\" + resolvedHostname;\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return buildHttpRpcRequest(context, headers, \"/\", resolvedHostname, body);\n}, \"se_StartLiveTailCommand\");\nvar se_StartQueryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartQuery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartQueryCommand\");\nvar se_StopQueryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopQuery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopQueryCommand\");\nvar se_TagLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagLogGroupCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_TestMetricFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TestMetricFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TestMetricFilterCommand\");\nvar se_TestTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TestTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TestTransformerCommand\");\nvar se_UntagLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagLogGroupCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateAnomalyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAnomaly\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAnomalyCommand\");\nvar se_UpdateDeliveryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDeliveryConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDeliveryConfigurationCommand\");\nvar se_UpdateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateLogAnomalyDetectorCommand\");\nvar de_AssociateKmsKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AssociateKmsKeyCommand\");\nvar de_CancelExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CancelExportTaskCommand\");\nvar de_CreateDeliveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDeliveryCommand\");\nvar de_CreateExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateExportTaskCommand\");\nvar de_CreateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLogAnomalyDetectorCommand\");\nvar de_CreateLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateLogGroupCommand\");\nvar de_CreateLogStreamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateLogStreamCommand\");\nvar de_DeleteAccountPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccountPolicyCommand\");\nvar de_DeleteDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDataProtectionPolicyCommand\");\nvar de_DeleteDeliveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliveryCommand\");\nvar de_DeleteDeliveryDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliveryDestinationCommand\");\nvar de_DeleteDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliveryDestinationPolicyCommand\");\nvar de_DeleteDeliverySourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliverySourceCommand\");\nvar de_DeleteDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDestinationCommand\");\nvar de_DeleteIndexPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIndexPolicyCommand\");\nvar de_DeleteIntegrationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIntegrationCommand\");\nvar de_DeleteLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLogAnomalyDetectorCommand\");\nvar de_DeleteLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLogGroupCommand\");\nvar de_DeleteLogStreamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLogStreamCommand\");\nvar de_DeleteMetricFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteMetricFilterCommand\");\nvar de_DeleteQueryDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteQueryDefinitionCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeleteRetentionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRetentionPolicyCommand\");\nvar de_DeleteSubscriptionFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSubscriptionFilterCommand\");\nvar de_DeleteTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteTransformerCommand\");\nvar de_DescribeAccountPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAccountPoliciesCommand\");\nvar de_DescribeConfigurationTemplatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeConfigurationTemplatesCommand\");\nvar de_DescribeDeliveriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeliveriesCommand\");\nvar de_DescribeDeliveryDestinationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeliveryDestinationsCommand\");\nvar de_DescribeDeliverySourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeliverySourcesCommand\");\nvar de_DescribeDestinationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDestinationsCommand\");\nvar de_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExportTasksCommand\");\nvar de_DescribeFieldIndexesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFieldIndexesCommand\");\nvar de_DescribeIndexPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIndexPoliciesCommand\");\nvar de_DescribeLogGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLogGroupsCommand\");\nvar de_DescribeLogStreamsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLogStreamsCommand\");\nvar de_DescribeMetricFiltersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMetricFiltersResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMetricFiltersCommand\");\nvar de_DescribeQueriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeQueriesCommand\");\nvar de_DescribeQueryDefinitionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeQueryDefinitionsCommand\");\nvar de_DescribeResourcePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeResourcePoliciesCommand\");\nvar de_DescribeSubscriptionFiltersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSubscriptionFiltersCommand\");\nvar de_DisassociateKmsKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisassociateKmsKeyCommand\");\nvar de_FilterLogEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_FilterLogEventsCommand\");\nvar de_GetDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDataProtectionPolicyCommand\");\nvar de_GetDeliveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliveryCommand\");\nvar de_GetDeliveryDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliveryDestinationCommand\");\nvar de_GetDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliveryDestinationPolicyCommand\");\nvar de_GetDeliverySourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliverySourceCommand\");\nvar de_GetIntegrationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIntegrationCommand\");\nvar de_GetLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogAnomalyDetectorCommand\");\nvar de_GetLogEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogEventsCommand\");\nvar de_GetLogGroupFieldsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogGroupFieldsCommand\");\nvar de_GetLogRecordCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogRecordCommand\");\nvar de_GetQueryResultsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetQueryResultsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetQueryResultsCommand\");\nvar de_GetTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransformerCommand\");\nvar de_ListAnomaliesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAnomaliesCommand\");\nvar de_ListIntegrationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListIntegrationsCommand\");\nvar de_ListLogAnomalyDetectorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListLogAnomalyDetectorsCommand\");\nvar de_ListLogGroupsForQueryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListLogGroupsForQueryCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTagsLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsLogGroupCommand\");\nvar de_PutAccountPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountPolicyCommand\");\nvar de_PutDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDataProtectionPolicyCommand\");\nvar de_PutDeliveryDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDeliveryDestinationCommand\");\nvar de_PutDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDeliveryDestinationPolicyCommand\");\nvar de_PutDeliverySourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDeliverySourceCommand\");\nvar de_PutDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDestinationCommand\");\nvar de_PutDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutDestinationPolicyCommand\");\nvar de_PutIndexPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutIndexPolicyCommand\");\nvar de_PutIntegrationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutIntegrationCommand\");\nvar de_PutLogEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutLogEventsCommand\");\nvar de_PutMetricFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutMetricFilterCommand\");\nvar de_PutQueryDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutQueryDefinitionCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_PutRetentionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutRetentionPolicyCommand\");\nvar de_PutSubscriptionFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutSubscriptionFilterCommand\");\nvar de_PutTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutTransformerCommand\");\nvar de_StartLiveTailCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = { responseStream: de_StartLiveTailResponseStream(output.body, context) };\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartLiveTailCommand\");\nvar de_StartQueryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartQueryCommand\");\nvar de_StopQueryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopQueryCommand\");\nvar de_TagLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagLogGroupCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_TestMetricFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TestMetricFilterCommand\");\nvar de_TestTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TestTransformerCommand\");\nvar de_UntagLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagLogGroupCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateAnomalyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAnomalyCommand\");\nvar de_UpdateDeliveryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDeliveryConfigurationCommand\");\nvar de_UpdateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateLogAnomalyDetectorCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidParameterException\":\n case \"com.amazonaws.cloudwatchlogs#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"OperationAbortedException\":\n case \"com.amazonaws.cloudwatchlogs#OperationAbortedException\":\n throw await de_OperationAbortedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cloudwatchlogs#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ServiceUnavailableException\":\n case \"com.amazonaws.cloudwatchlogs#ServiceUnavailableException\":\n throw await de_ServiceUnavailableExceptionRes(parsedOutput, context);\n case \"InvalidOperationException\":\n case \"com.amazonaws.cloudwatchlogs#InvalidOperationException\":\n throw await de_InvalidOperationExceptionRes(parsedOutput, context);\n case \"AccessDeniedException\":\n case \"com.amazonaws.cloudwatchlogs#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.cloudwatchlogs#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.cloudwatchlogs#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.cloudwatchlogs#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.cloudwatchlogs#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cloudwatchlogs#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceAlreadyExistsException\":\n case \"com.amazonaws.cloudwatchlogs#ResourceAlreadyExistsException\":\n throw await de_ResourceAlreadyExistsExceptionRes(parsedOutput, context);\n case \"DataAlreadyAcceptedException\":\n case \"com.amazonaws.cloudwatchlogs#DataAlreadyAcceptedException\":\n throw await de_DataAlreadyAcceptedExceptionRes(parsedOutput, context);\n case \"InvalidSequenceTokenException\":\n case \"com.amazonaws.cloudwatchlogs#InvalidSequenceTokenException\":\n throw await de_InvalidSequenceTokenExceptionRes(parsedOutput, context);\n case \"UnrecognizedClientException\":\n case \"com.amazonaws.cloudwatchlogs#UnrecognizedClientException\":\n throw await de_UnrecognizedClientExceptionRes(parsedOutput, context);\n case \"MalformedQueryException\":\n case \"com.amazonaws.cloudwatchlogs#MalformedQueryException\":\n throw await de_MalformedQueryExceptionRes(parsedOutput, context);\n case \"TooManyTagsException\":\n case \"com.amazonaws.cloudwatchlogs#TooManyTagsException\":\n throw await de_TooManyTagsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_DataAlreadyAcceptedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DataAlreadyAcceptedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DataAlreadyAcceptedExceptionRes\");\nvar de_InvalidOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOperationExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_InvalidSequenceTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidSequenceTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSequenceTokenExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedQueryExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedQueryException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedQueryExceptionRes\");\nvar de_OperationAbortedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OperationAbortedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OperationAbortedExceptionRes\");\nvar de_ResourceAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceAlreadyExistsExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_ServiceUnavailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceUnavailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceUnavailableExceptionRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TooManyTagsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTagsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsExceptionRes\");\nvar de_UnrecognizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnrecognizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnrecognizedClientExceptionRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar de_StartLiveTailResponseStream = /* @__PURE__ */ __name((output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"sessionStart\"] != null) {\n return {\n sessionStart: await de_LiveTailSessionStart_event(event[\"sessionStart\"], context)\n };\n }\n if (event[\"sessionUpdate\"] != null) {\n return {\n sessionUpdate: await de_LiveTailSessionUpdate_event(event[\"sessionUpdate\"], context)\n };\n }\n if (event[\"SessionTimeoutException\"] != null) {\n return {\n SessionTimeoutException: await de_SessionTimeoutException_event(event[\"SessionTimeoutException\"], context)\n };\n }\n if (event[\"SessionStreamingException\"] != null) {\n return {\n SessionStreamingException: await de_SessionStreamingException_event(\n event[\"SessionStreamingException\"],\n context\n )\n };\n }\n return { $unknown: output };\n });\n}, \"de_StartLiveTailResponseStream\");\nvar de_LiveTailSessionStart_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n Object.assign(contents, (0, import_smithy_client._json)(data));\n return contents;\n}, \"de_LiveTailSessionStart_event\");\nvar de_LiveTailSessionUpdate_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n Object.assign(contents, (0, import_smithy_client._json)(data));\n return contents;\n}, \"de_LiveTailSessionUpdate_event\");\nvar de_SessionStreamingException_event = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonBody)(output.body, context)\n };\n return de_SessionStreamingExceptionRes(parsedOutput, context);\n}, \"de_SessionStreamingException_event\");\nvar de_SessionTimeoutException_event = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonBody)(output.body, context)\n };\n return de_SessionTimeoutExceptionRes(parsedOutput, context);\n}, \"de_SessionTimeoutException_event\");\nvar de_SessionStreamingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SessionStreamingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SessionStreamingExceptionRes\");\nvar de_SessionTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SessionTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SessionTimeoutExceptionRes\");\nvar se_MetricTransformation = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n defaultValue: import_smithy_client.serializeFloat,\n dimensions: import_smithy_client._json,\n metricName: [],\n metricNamespace: [],\n metricValue: [],\n unit: []\n });\n}, \"se_MetricTransformation\");\nvar se_MetricTransformations = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_MetricTransformation(entry, context);\n });\n}, \"se_MetricTransformations\");\nvar se_PutMetricFilterRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n applyOnTransformedLogs: [],\n filterName: [],\n filterPattern: [],\n logGroupName: [],\n metricTransformations: /* @__PURE__ */ __name((_) => se_MetricTransformations(_, context), \"metricTransformations\")\n });\n}, \"se_PutMetricFilterRequest\");\nvar se_PutQueryDefinitionRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n clientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n logGroupNames: import_smithy_client._json,\n name: [],\n queryDefinitionId: [],\n queryLanguage: [],\n queryString: []\n });\n}, \"se_PutQueryDefinitionRequest\");\nvar de_DescribeMetricFiltersResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n metricFilters: /* @__PURE__ */ __name((_) => de_MetricFilters(_, context), \"metricFilters\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeMetricFiltersResponse\");\nvar de_GetQueryResultsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n encryptionKey: import_smithy_client.expectString,\n queryLanguage: import_smithy_client.expectString,\n results: import_smithy_client._json,\n statistics: /* @__PURE__ */ __name((_) => de_QueryStatistics(_, context), \"statistics\"),\n status: import_smithy_client.expectString\n });\n}, \"de_GetQueryResultsResponse\");\nvar de_MetricFilter = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n applyOnTransformedLogs: import_smithy_client.expectBoolean,\n creationTime: import_smithy_client.expectLong,\n filterName: import_smithy_client.expectString,\n filterPattern: import_smithy_client.expectString,\n logGroupName: import_smithy_client.expectString,\n metricTransformations: /* @__PURE__ */ __name((_) => de_MetricTransformations(_, context), \"metricTransformations\")\n });\n}, \"de_MetricFilter\");\nvar de_MetricFilters = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricFilter(entry, context);\n });\n return retVal;\n}, \"de_MetricFilters\");\nvar de_MetricTransformation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n defaultValue: import_smithy_client.limitedParseDouble,\n dimensions: import_smithy_client._json,\n metricName: import_smithy_client.expectString,\n metricNamespace: import_smithy_client.expectString,\n metricValue: import_smithy_client.expectString,\n unit: import_smithy_client.expectString\n });\n}, \"de_MetricTransformation\");\nvar de_MetricTransformations = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricTransformation(entry, context);\n });\n return retVal;\n}, \"de_MetricTransformations\");\nvar de_QueryStatistics = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n bytesScanned: import_smithy_client.limitedParseDouble,\n estimatedBytesSkipped: import_smithy_client.limitedParseDouble,\n estimatedRecordsSkipped: import_smithy_client.limitedParseDouble,\n logGroupsScanned: import_smithy_client.limitedParseDouble,\n recordsMatched: import_smithy_client.limitedParseDouble,\n recordsScanned: import_smithy_client.limitedParseDouble\n });\n}, \"de_QueryStatistics\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CloudWatchLogsServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `Logs_20140328.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/AssociateKmsKeyCommand.ts\nvar AssociateKmsKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"AssociateKmsKey\", {}).n(\"CloudWatchLogsClient\", \"AssociateKmsKeyCommand\").f(void 0, void 0).ser(se_AssociateKmsKeyCommand).de(de_AssociateKmsKeyCommand).build() {\n static {\n __name(this, \"AssociateKmsKeyCommand\");\n }\n};\n\n// src/commands/CancelExportTaskCommand.ts\n\n\n\nvar CancelExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CancelExportTask\", {}).n(\"CloudWatchLogsClient\", \"CancelExportTaskCommand\").f(void 0, void 0).ser(se_CancelExportTaskCommand).de(de_CancelExportTaskCommand).build() {\n static {\n __name(this, \"CancelExportTaskCommand\");\n }\n};\n\n// src/commands/CreateDeliveryCommand.ts\n\n\n\nvar CreateDeliveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateDelivery\", {}).n(\"CloudWatchLogsClient\", \"CreateDeliveryCommand\").f(void 0, void 0).ser(se_CreateDeliveryCommand).de(de_CreateDeliveryCommand).build() {\n static {\n __name(this, \"CreateDeliveryCommand\");\n }\n};\n\n// src/commands/CreateExportTaskCommand.ts\n\n\n\nvar CreateExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateExportTask\", {}).n(\"CloudWatchLogsClient\", \"CreateExportTaskCommand\").f(void 0, void 0).ser(se_CreateExportTaskCommand).de(de_CreateExportTaskCommand).build() {\n static {\n __name(this, \"CreateExportTaskCommand\");\n }\n};\n\n// src/commands/CreateLogAnomalyDetectorCommand.ts\n\n\n\nvar CreateLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"CreateLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_CreateLogAnomalyDetectorCommand).de(de_CreateLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"CreateLogAnomalyDetectorCommand\");\n }\n};\n\n// src/commands/CreateLogGroupCommand.ts\n\n\n\nvar CreateLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateLogGroup\", {}).n(\"CloudWatchLogsClient\", \"CreateLogGroupCommand\").f(void 0, void 0).ser(se_CreateLogGroupCommand).de(de_CreateLogGroupCommand).build() {\n static {\n __name(this, \"CreateLogGroupCommand\");\n }\n};\n\n// src/commands/CreateLogStreamCommand.ts\n\n\n\nvar CreateLogStreamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateLogStream\", {}).n(\"CloudWatchLogsClient\", \"CreateLogStreamCommand\").f(void 0, void 0).ser(se_CreateLogStreamCommand).de(de_CreateLogStreamCommand).build() {\n static {\n __name(this, \"CreateLogStreamCommand\");\n }\n};\n\n// src/commands/DeleteAccountPolicyCommand.ts\n\n\n\nvar DeleteAccountPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteAccountPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteAccountPolicyCommand\").f(void 0, void 0).ser(se_DeleteAccountPolicyCommand).de(de_DeleteAccountPolicyCommand).build() {\n static {\n __name(this, \"DeleteAccountPolicyCommand\");\n }\n};\n\n// src/commands/DeleteDataProtectionPolicyCommand.ts\n\n\n\nvar DeleteDataProtectionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDataProtectionPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteDataProtectionPolicyCommand\").f(void 0, void 0).ser(se_DeleteDataProtectionPolicyCommand).de(de_DeleteDataProtectionPolicyCommand).build() {\n static {\n __name(this, \"DeleteDataProtectionPolicyCommand\");\n }\n};\n\n// src/commands/DeleteDeliveryCommand.ts\n\n\n\nvar DeleteDeliveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDelivery\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliveryCommand\").f(void 0, void 0).ser(se_DeleteDeliveryCommand).de(de_DeleteDeliveryCommand).build() {\n static {\n __name(this, \"DeleteDeliveryCommand\");\n }\n};\n\n// src/commands/DeleteDeliveryDestinationCommand.ts\n\n\n\nvar DeleteDeliveryDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDeliveryDestination\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliveryDestinationCommand\").f(void 0, void 0).ser(se_DeleteDeliveryDestinationCommand).de(de_DeleteDeliveryDestinationCommand).build() {\n static {\n __name(this, \"DeleteDeliveryDestinationCommand\");\n }\n};\n\n// src/commands/DeleteDeliveryDestinationPolicyCommand.ts\n\n\n\nvar DeleteDeliveryDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDeliveryDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliveryDestinationPolicyCommand\").f(void 0, void 0).ser(se_DeleteDeliveryDestinationPolicyCommand).de(de_DeleteDeliveryDestinationPolicyCommand).build() {\n static {\n __name(this, \"DeleteDeliveryDestinationPolicyCommand\");\n }\n};\n\n// src/commands/DeleteDeliverySourceCommand.ts\n\n\n\nvar DeleteDeliverySourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDeliverySource\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliverySourceCommand\").f(void 0, void 0).ser(se_DeleteDeliverySourceCommand).de(de_DeleteDeliverySourceCommand).build() {\n static {\n __name(this, \"DeleteDeliverySourceCommand\");\n }\n};\n\n// src/commands/DeleteDestinationCommand.ts\n\n\n\nvar DeleteDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDestination\", {}).n(\"CloudWatchLogsClient\", \"DeleteDestinationCommand\").f(void 0, void 0).ser(se_DeleteDestinationCommand).de(de_DeleteDestinationCommand).build() {\n static {\n __name(this, \"DeleteDestinationCommand\");\n }\n};\n\n// src/commands/DeleteIndexPolicyCommand.ts\n\n\n\nvar DeleteIndexPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteIndexPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteIndexPolicyCommand\").f(void 0, void 0).ser(se_DeleteIndexPolicyCommand).de(de_DeleteIndexPolicyCommand).build() {\n static {\n __name(this, \"DeleteIndexPolicyCommand\");\n }\n};\n\n// src/commands/DeleteIntegrationCommand.ts\n\n\n\nvar DeleteIntegrationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteIntegration\", {}).n(\"CloudWatchLogsClient\", \"DeleteIntegrationCommand\").f(void 0, void 0).ser(se_DeleteIntegrationCommand).de(de_DeleteIntegrationCommand).build() {\n static {\n __name(this, \"DeleteIntegrationCommand\");\n }\n};\n\n// src/commands/DeleteLogAnomalyDetectorCommand.ts\n\n\n\nvar DeleteLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"DeleteLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_DeleteLogAnomalyDetectorCommand).de(de_DeleteLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"DeleteLogAnomalyDetectorCommand\");\n }\n};\n\n// src/commands/DeleteLogGroupCommand.ts\n\n\n\nvar DeleteLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteLogGroup\", {}).n(\"CloudWatchLogsClient\", \"DeleteLogGroupCommand\").f(void 0, void 0).ser(se_DeleteLogGroupCommand).de(de_DeleteLogGroupCommand).build() {\n static {\n __name(this, \"DeleteLogGroupCommand\");\n }\n};\n\n// src/commands/DeleteLogStreamCommand.ts\n\n\n\nvar DeleteLogStreamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteLogStream\", {}).n(\"CloudWatchLogsClient\", \"DeleteLogStreamCommand\").f(void 0, void 0).ser(se_DeleteLogStreamCommand).de(de_DeleteLogStreamCommand).build() {\n static {\n __name(this, \"DeleteLogStreamCommand\");\n }\n};\n\n// src/commands/DeleteMetricFilterCommand.ts\n\n\n\nvar DeleteMetricFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteMetricFilter\", {}).n(\"CloudWatchLogsClient\", \"DeleteMetricFilterCommand\").f(void 0, void 0).ser(se_DeleteMetricFilterCommand).de(de_DeleteMetricFilterCommand).build() {\n static {\n __name(this, \"DeleteMetricFilterCommand\");\n }\n};\n\n// src/commands/DeleteQueryDefinitionCommand.ts\n\n\n\nvar DeleteQueryDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteQueryDefinition\", {}).n(\"CloudWatchLogsClient\", \"DeleteQueryDefinitionCommand\").f(void 0, void 0).ser(se_DeleteQueryDefinitionCommand).de(de_DeleteQueryDefinitionCommand).build() {\n static {\n __name(this, \"DeleteQueryDefinitionCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteResourcePolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeleteRetentionPolicyCommand.ts\n\n\n\nvar DeleteRetentionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteRetentionPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteRetentionPolicyCommand\").f(void 0, void 0).ser(se_DeleteRetentionPolicyCommand).de(de_DeleteRetentionPolicyCommand).build() {\n static {\n __name(this, \"DeleteRetentionPolicyCommand\");\n }\n};\n\n// src/commands/DeleteSubscriptionFilterCommand.ts\n\n\n\nvar DeleteSubscriptionFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteSubscriptionFilter\", {}).n(\"CloudWatchLogsClient\", \"DeleteSubscriptionFilterCommand\").f(void 0, void 0).ser(se_DeleteSubscriptionFilterCommand).de(de_DeleteSubscriptionFilterCommand).build() {\n static {\n __name(this, \"DeleteSubscriptionFilterCommand\");\n }\n};\n\n// src/commands/DeleteTransformerCommand.ts\n\n\n\nvar DeleteTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteTransformer\", {}).n(\"CloudWatchLogsClient\", \"DeleteTransformerCommand\").f(void 0, void 0).ser(se_DeleteTransformerCommand).de(de_DeleteTransformerCommand).build() {\n static {\n __name(this, \"DeleteTransformerCommand\");\n }\n};\n\n// src/commands/DescribeAccountPoliciesCommand.ts\n\n\n\nvar DescribeAccountPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeAccountPolicies\", {}).n(\"CloudWatchLogsClient\", \"DescribeAccountPoliciesCommand\").f(void 0, void 0).ser(se_DescribeAccountPoliciesCommand).de(de_DescribeAccountPoliciesCommand).build() {\n static {\n __name(this, \"DescribeAccountPoliciesCommand\");\n }\n};\n\n// src/commands/DescribeConfigurationTemplatesCommand.ts\n\n\n\nvar DescribeConfigurationTemplatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeConfigurationTemplates\", {}).n(\"CloudWatchLogsClient\", \"DescribeConfigurationTemplatesCommand\").f(void 0, void 0).ser(se_DescribeConfigurationTemplatesCommand).de(de_DescribeConfigurationTemplatesCommand).build() {\n static {\n __name(this, \"DescribeConfigurationTemplatesCommand\");\n }\n};\n\n// src/commands/DescribeDeliveriesCommand.ts\n\n\n\nvar DescribeDeliveriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDeliveries\", {}).n(\"CloudWatchLogsClient\", \"DescribeDeliveriesCommand\").f(void 0, void 0).ser(se_DescribeDeliveriesCommand).de(de_DescribeDeliveriesCommand).build() {\n static {\n __name(this, \"DescribeDeliveriesCommand\");\n }\n};\n\n// src/commands/DescribeDeliveryDestinationsCommand.ts\n\n\n\nvar DescribeDeliveryDestinationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDeliveryDestinations\", {}).n(\"CloudWatchLogsClient\", \"DescribeDeliveryDestinationsCommand\").f(void 0, void 0).ser(se_DescribeDeliveryDestinationsCommand).de(de_DescribeDeliveryDestinationsCommand).build() {\n static {\n __name(this, \"DescribeDeliveryDestinationsCommand\");\n }\n};\n\n// src/commands/DescribeDeliverySourcesCommand.ts\n\n\n\nvar DescribeDeliverySourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDeliverySources\", {}).n(\"CloudWatchLogsClient\", \"DescribeDeliverySourcesCommand\").f(void 0, void 0).ser(se_DescribeDeliverySourcesCommand).de(de_DescribeDeliverySourcesCommand).build() {\n static {\n __name(this, \"DescribeDeliverySourcesCommand\");\n }\n};\n\n// src/commands/DescribeDestinationsCommand.ts\n\n\n\nvar DescribeDestinationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDestinations\", {}).n(\"CloudWatchLogsClient\", \"DescribeDestinationsCommand\").f(void 0, void 0).ser(se_DescribeDestinationsCommand).de(de_DescribeDestinationsCommand).build() {\n static {\n __name(this, \"DescribeDestinationsCommand\");\n }\n};\n\n// src/commands/DescribeExportTasksCommand.ts\n\n\n\nvar DescribeExportTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeExportTasks\", {}).n(\"CloudWatchLogsClient\", \"DescribeExportTasksCommand\").f(void 0, void 0).ser(se_DescribeExportTasksCommand).de(de_DescribeExportTasksCommand).build() {\n static {\n __name(this, \"DescribeExportTasksCommand\");\n }\n};\n\n// src/commands/DescribeFieldIndexesCommand.ts\n\n\n\nvar DescribeFieldIndexesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeFieldIndexes\", {}).n(\"CloudWatchLogsClient\", \"DescribeFieldIndexesCommand\").f(void 0, void 0).ser(se_DescribeFieldIndexesCommand).de(de_DescribeFieldIndexesCommand).build() {\n static {\n __name(this, \"DescribeFieldIndexesCommand\");\n }\n};\n\n// src/commands/DescribeIndexPoliciesCommand.ts\n\n\n\nvar DescribeIndexPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeIndexPolicies\", {}).n(\"CloudWatchLogsClient\", \"DescribeIndexPoliciesCommand\").f(void 0, void 0).ser(se_DescribeIndexPoliciesCommand).de(de_DescribeIndexPoliciesCommand).build() {\n static {\n __name(this, \"DescribeIndexPoliciesCommand\");\n }\n};\n\n// src/commands/DescribeLogGroupsCommand.ts\n\n\n\nvar DescribeLogGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeLogGroups\", {}).n(\"CloudWatchLogsClient\", \"DescribeLogGroupsCommand\").f(void 0, void 0).ser(se_DescribeLogGroupsCommand).de(de_DescribeLogGroupsCommand).build() {\n static {\n __name(this, \"DescribeLogGroupsCommand\");\n }\n};\n\n// src/commands/DescribeLogStreamsCommand.ts\n\n\n\nvar DescribeLogStreamsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeLogStreams\", {}).n(\"CloudWatchLogsClient\", \"DescribeLogStreamsCommand\").f(void 0, void 0).ser(se_DescribeLogStreamsCommand).de(de_DescribeLogStreamsCommand).build() {\n static {\n __name(this, \"DescribeLogStreamsCommand\");\n }\n};\n\n// src/commands/DescribeMetricFiltersCommand.ts\n\n\n\nvar DescribeMetricFiltersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeMetricFilters\", {}).n(\"CloudWatchLogsClient\", \"DescribeMetricFiltersCommand\").f(void 0, void 0).ser(se_DescribeMetricFiltersCommand).de(de_DescribeMetricFiltersCommand).build() {\n static {\n __name(this, \"DescribeMetricFiltersCommand\");\n }\n};\n\n// src/commands/DescribeQueriesCommand.ts\n\n\n\nvar DescribeQueriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeQueries\", {}).n(\"CloudWatchLogsClient\", \"DescribeQueriesCommand\").f(void 0, void 0).ser(se_DescribeQueriesCommand).de(de_DescribeQueriesCommand).build() {\n static {\n __name(this, \"DescribeQueriesCommand\");\n }\n};\n\n// src/commands/DescribeQueryDefinitionsCommand.ts\n\n\n\nvar DescribeQueryDefinitionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeQueryDefinitions\", {}).n(\"CloudWatchLogsClient\", \"DescribeQueryDefinitionsCommand\").f(void 0, void 0).ser(se_DescribeQueryDefinitionsCommand).de(de_DescribeQueryDefinitionsCommand).build() {\n static {\n __name(this, \"DescribeQueryDefinitionsCommand\");\n }\n};\n\n// src/commands/DescribeResourcePoliciesCommand.ts\n\n\n\nvar DescribeResourcePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeResourcePolicies\", {}).n(\"CloudWatchLogsClient\", \"DescribeResourcePoliciesCommand\").f(void 0, void 0).ser(se_DescribeResourcePoliciesCommand).de(de_DescribeResourcePoliciesCommand).build() {\n static {\n __name(this, \"DescribeResourcePoliciesCommand\");\n }\n};\n\n// src/commands/DescribeSubscriptionFiltersCommand.ts\n\n\n\nvar DescribeSubscriptionFiltersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeSubscriptionFilters\", {}).n(\"CloudWatchLogsClient\", \"DescribeSubscriptionFiltersCommand\").f(void 0, void 0).ser(se_DescribeSubscriptionFiltersCommand).de(de_DescribeSubscriptionFiltersCommand).build() {\n static {\n __name(this, \"DescribeSubscriptionFiltersCommand\");\n }\n};\n\n// src/commands/DisassociateKmsKeyCommand.ts\n\n\n\nvar DisassociateKmsKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DisassociateKmsKey\", {}).n(\"CloudWatchLogsClient\", \"DisassociateKmsKeyCommand\").f(void 0, void 0).ser(se_DisassociateKmsKeyCommand).de(de_DisassociateKmsKeyCommand).build() {\n static {\n __name(this, \"DisassociateKmsKeyCommand\");\n }\n};\n\n// src/commands/FilterLogEventsCommand.ts\n\n\n\nvar FilterLogEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"FilterLogEvents\", {}).n(\"CloudWatchLogsClient\", \"FilterLogEventsCommand\").f(void 0, void 0).ser(se_FilterLogEventsCommand).de(de_FilterLogEventsCommand).build() {\n static {\n __name(this, \"FilterLogEventsCommand\");\n }\n};\n\n// src/commands/GetDataProtectionPolicyCommand.ts\n\n\n\nvar GetDataProtectionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDataProtectionPolicy\", {}).n(\"CloudWatchLogsClient\", \"GetDataProtectionPolicyCommand\").f(void 0, void 0).ser(se_GetDataProtectionPolicyCommand).de(de_GetDataProtectionPolicyCommand).build() {\n static {\n __name(this, \"GetDataProtectionPolicyCommand\");\n }\n};\n\n// src/commands/GetDeliveryCommand.ts\n\n\n\nvar GetDeliveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDelivery\", {}).n(\"CloudWatchLogsClient\", \"GetDeliveryCommand\").f(void 0, void 0).ser(se_GetDeliveryCommand).de(de_GetDeliveryCommand).build() {\n static {\n __name(this, \"GetDeliveryCommand\");\n }\n};\n\n// src/commands/GetDeliveryDestinationCommand.ts\n\n\n\nvar GetDeliveryDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDeliveryDestination\", {}).n(\"CloudWatchLogsClient\", \"GetDeliveryDestinationCommand\").f(void 0, void 0).ser(se_GetDeliveryDestinationCommand).de(de_GetDeliveryDestinationCommand).build() {\n static {\n __name(this, \"GetDeliveryDestinationCommand\");\n }\n};\n\n// src/commands/GetDeliveryDestinationPolicyCommand.ts\n\n\n\nvar GetDeliveryDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDeliveryDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"GetDeliveryDestinationPolicyCommand\").f(void 0, void 0).ser(se_GetDeliveryDestinationPolicyCommand).de(de_GetDeliveryDestinationPolicyCommand).build() {\n static {\n __name(this, \"GetDeliveryDestinationPolicyCommand\");\n }\n};\n\n// src/commands/GetDeliverySourceCommand.ts\n\n\n\nvar GetDeliverySourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDeliverySource\", {}).n(\"CloudWatchLogsClient\", \"GetDeliverySourceCommand\").f(void 0, void 0).ser(se_GetDeliverySourceCommand).de(de_GetDeliverySourceCommand).build() {\n static {\n __name(this, \"GetDeliverySourceCommand\");\n }\n};\n\n// src/commands/GetIntegrationCommand.ts\n\n\n\nvar GetIntegrationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetIntegration\", {}).n(\"CloudWatchLogsClient\", \"GetIntegrationCommand\").f(void 0, void 0).ser(se_GetIntegrationCommand).de(de_GetIntegrationCommand).build() {\n static {\n __name(this, \"GetIntegrationCommand\");\n }\n};\n\n// src/commands/GetLogAnomalyDetectorCommand.ts\n\n\n\nvar GetLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"GetLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_GetLogAnomalyDetectorCommand).de(de_GetLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"GetLogAnomalyDetectorCommand\");\n }\n};\n\n// src/commands/GetLogEventsCommand.ts\n\n\n\nvar GetLogEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogEvents\", {}).n(\"CloudWatchLogsClient\", \"GetLogEventsCommand\").f(void 0, void 0).ser(se_GetLogEventsCommand).de(de_GetLogEventsCommand).build() {\n static {\n __name(this, \"GetLogEventsCommand\");\n }\n};\n\n// src/commands/GetLogGroupFieldsCommand.ts\n\n\n\nvar GetLogGroupFieldsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogGroupFields\", {}).n(\"CloudWatchLogsClient\", \"GetLogGroupFieldsCommand\").f(void 0, void 0).ser(se_GetLogGroupFieldsCommand).de(de_GetLogGroupFieldsCommand).build() {\n static {\n __name(this, \"GetLogGroupFieldsCommand\");\n }\n};\n\n// src/commands/GetLogRecordCommand.ts\n\n\n\nvar GetLogRecordCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogRecord\", {}).n(\"CloudWatchLogsClient\", \"GetLogRecordCommand\").f(void 0, void 0).ser(se_GetLogRecordCommand).de(de_GetLogRecordCommand).build() {\n static {\n __name(this, \"GetLogRecordCommand\");\n }\n};\n\n// src/commands/GetQueryResultsCommand.ts\n\n\n\nvar GetQueryResultsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetQueryResults\", {}).n(\"CloudWatchLogsClient\", \"GetQueryResultsCommand\").f(void 0, void 0).ser(se_GetQueryResultsCommand).de(de_GetQueryResultsCommand).build() {\n static {\n __name(this, \"GetQueryResultsCommand\");\n }\n};\n\n// src/commands/GetTransformerCommand.ts\n\n\n\nvar GetTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetTransformer\", {}).n(\"CloudWatchLogsClient\", \"GetTransformerCommand\").f(void 0, void 0).ser(se_GetTransformerCommand).de(de_GetTransformerCommand).build() {\n static {\n __name(this, \"GetTransformerCommand\");\n }\n};\n\n// src/commands/ListAnomaliesCommand.ts\n\n\n\nvar ListAnomaliesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListAnomalies\", {}).n(\"CloudWatchLogsClient\", \"ListAnomaliesCommand\").f(void 0, void 0).ser(se_ListAnomaliesCommand).de(de_ListAnomaliesCommand).build() {\n static {\n __name(this, \"ListAnomaliesCommand\");\n }\n};\n\n// src/commands/ListIntegrationsCommand.ts\n\n\n\nvar ListIntegrationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListIntegrations\", {}).n(\"CloudWatchLogsClient\", \"ListIntegrationsCommand\").f(void 0, void 0).ser(se_ListIntegrationsCommand).de(de_ListIntegrationsCommand).build() {\n static {\n __name(this, \"ListIntegrationsCommand\");\n }\n};\n\n// src/commands/ListLogAnomalyDetectorsCommand.ts\n\n\n\nvar ListLogAnomalyDetectorsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListLogAnomalyDetectors\", {}).n(\"CloudWatchLogsClient\", \"ListLogAnomalyDetectorsCommand\").f(void 0, void 0).ser(se_ListLogAnomalyDetectorsCommand).de(de_ListLogAnomalyDetectorsCommand).build() {\n static {\n __name(this, \"ListLogAnomalyDetectorsCommand\");\n }\n};\n\n// src/commands/ListLogGroupsForQueryCommand.ts\n\n\n\nvar ListLogGroupsForQueryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListLogGroupsForQuery\", {}).n(\"CloudWatchLogsClient\", \"ListLogGroupsForQueryCommand\").f(void 0, void 0).ser(se_ListLogGroupsForQueryCommand).de(de_ListLogGroupsForQueryCommand).build() {\n static {\n __name(this, \"ListLogGroupsForQueryCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListTagsForResource\", {}).n(\"CloudWatchLogsClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTagsLogGroupCommand.ts\n\n\n\nvar ListTagsLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListTagsLogGroup\", {}).n(\"CloudWatchLogsClient\", \"ListTagsLogGroupCommand\").f(void 0, void 0).ser(se_ListTagsLogGroupCommand).de(de_ListTagsLogGroupCommand).build() {\n static {\n __name(this, \"ListTagsLogGroupCommand\");\n }\n};\n\n// src/commands/PutAccountPolicyCommand.ts\n\n\n\nvar PutAccountPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutAccountPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutAccountPolicyCommand\").f(void 0, void 0).ser(se_PutAccountPolicyCommand).de(de_PutAccountPolicyCommand).build() {\n static {\n __name(this, \"PutAccountPolicyCommand\");\n }\n};\n\n// src/commands/PutDataProtectionPolicyCommand.ts\n\n\n\nvar PutDataProtectionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDataProtectionPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutDataProtectionPolicyCommand\").f(void 0, void 0).ser(se_PutDataProtectionPolicyCommand).de(de_PutDataProtectionPolicyCommand).build() {\n static {\n __name(this, \"PutDataProtectionPolicyCommand\");\n }\n};\n\n// src/commands/PutDeliveryDestinationCommand.ts\n\n\n\nvar PutDeliveryDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDeliveryDestination\", {}).n(\"CloudWatchLogsClient\", \"PutDeliveryDestinationCommand\").f(void 0, void 0).ser(se_PutDeliveryDestinationCommand).de(de_PutDeliveryDestinationCommand).build() {\n static {\n __name(this, \"PutDeliveryDestinationCommand\");\n }\n};\n\n// src/commands/PutDeliveryDestinationPolicyCommand.ts\n\n\n\nvar PutDeliveryDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDeliveryDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutDeliveryDestinationPolicyCommand\").f(void 0, void 0).ser(se_PutDeliveryDestinationPolicyCommand).de(de_PutDeliveryDestinationPolicyCommand).build() {\n static {\n __name(this, \"PutDeliveryDestinationPolicyCommand\");\n }\n};\n\n// src/commands/PutDeliverySourceCommand.ts\n\n\n\nvar PutDeliverySourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDeliverySource\", {}).n(\"CloudWatchLogsClient\", \"PutDeliverySourceCommand\").f(void 0, void 0).ser(se_PutDeliverySourceCommand).de(de_PutDeliverySourceCommand).build() {\n static {\n __name(this, \"PutDeliverySourceCommand\");\n }\n};\n\n// src/commands/PutDestinationCommand.ts\n\n\n\nvar PutDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDestination\", {}).n(\"CloudWatchLogsClient\", \"PutDestinationCommand\").f(void 0, void 0).ser(se_PutDestinationCommand).de(de_PutDestinationCommand).build() {\n static {\n __name(this, \"PutDestinationCommand\");\n }\n};\n\n// src/commands/PutDestinationPolicyCommand.ts\n\n\n\nvar PutDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutDestinationPolicyCommand\").f(void 0, void 0).ser(se_PutDestinationPolicyCommand).de(de_PutDestinationPolicyCommand).build() {\n static {\n __name(this, \"PutDestinationPolicyCommand\");\n }\n};\n\n// src/commands/PutIndexPolicyCommand.ts\n\n\n\nvar PutIndexPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutIndexPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutIndexPolicyCommand\").f(void 0, void 0).ser(se_PutIndexPolicyCommand).de(de_PutIndexPolicyCommand).build() {\n static {\n __name(this, \"PutIndexPolicyCommand\");\n }\n};\n\n// src/commands/PutIntegrationCommand.ts\n\n\n\nvar PutIntegrationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutIntegration\", {}).n(\"CloudWatchLogsClient\", \"PutIntegrationCommand\").f(void 0, void 0).ser(se_PutIntegrationCommand).de(de_PutIntegrationCommand).build() {\n static {\n __name(this, \"PutIntegrationCommand\");\n }\n};\n\n// src/commands/PutLogEventsCommand.ts\n\n\n\nvar PutLogEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutLogEvents\", {}).n(\"CloudWatchLogsClient\", \"PutLogEventsCommand\").f(void 0, void 0).ser(se_PutLogEventsCommand).de(de_PutLogEventsCommand).build() {\n static {\n __name(this, \"PutLogEventsCommand\");\n }\n};\n\n// src/commands/PutMetricFilterCommand.ts\n\n\n\nvar PutMetricFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutMetricFilter\", {}).n(\"CloudWatchLogsClient\", \"PutMetricFilterCommand\").f(void 0, void 0).ser(se_PutMetricFilterCommand).de(de_PutMetricFilterCommand).build() {\n static {\n __name(this, \"PutMetricFilterCommand\");\n }\n};\n\n// src/commands/PutQueryDefinitionCommand.ts\n\n\n\nvar PutQueryDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutQueryDefinition\", {}).n(\"CloudWatchLogsClient\", \"PutQueryDefinitionCommand\").f(void 0, void 0).ser(se_PutQueryDefinitionCommand).de(de_PutQueryDefinitionCommand).build() {\n static {\n __name(this, \"PutQueryDefinitionCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutResourcePolicy\", {}).n(\"CloudWatchLogsClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/PutRetentionPolicyCommand.ts\n\n\n\nvar PutRetentionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutRetentionPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutRetentionPolicyCommand\").f(void 0, void 0).ser(se_PutRetentionPolicyCommand).de(de_PutRetentionPolicyCommand).build() {\n static {\n __name(this, \"PutRetentionPolicyCommand\");\n }\n};\n\n// src/commands/PutSubscriptionFilterCommand.ts\n\n\n\nvar PutSubscriptionFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutSubscriptionFilter\", {}).n(\"CloudWatchLogsClient\", \"PutSubscriptionFilterCommand\").f(void 0, void 0).ser(se_PutSubscriptionFilterCommand).de(de_PutSubscriptionFilterCommand).build() {\n static {\n __name(this, \"PutSubscriptionFilterCommand\");\n }\n};\n\n// src/commands/PutTransformerCommand.ts\n\n\n\nvar PutTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutTransformer\", {}).n(\"CloudWatchLogsClient\", \"PutTransformerCommand\").f(void 0, void 0).ser(se_PutTransformerCommand).de(de_PutTransformerCommand).build() {\n static {\n __name(this, \"PutTransformerCommand\");\n }\n};\n\n// src/commands/StartLiveTailCommand.ts\n\n\n\nvar StartLiveTailCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"StartLiveTail\", {\n /**\n * @internal\n */\n eventStream: {\n output: true\n }\n}).n(\"CloudWatchLogsClient\", \"StartLiveTailCommand\").f(void 0, StartLiveTailResponseFilterSensitiveLog).ser(se_StartLiveTailCommand).de(de_StartLiveTailCommand).build() {\n static {\n __name(this, \"StartLiveTailCommand\");\n }\n};\n\n// src/commands/StartQueryCommand.ts\n\n\n\nvar StartQueryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"StartQuery\", {}).n(\"CloudWatchLogsClient\", \"StartQueryCommand\").f(void 0, void 0).ser(se_StartQueryCommand).de(de_StartQueryCommand).build() {\n static {\n __name(this, \"StartQueryCommand\");\n }\n};\n\n// src/commands/StopQueryCommand.ts\n\n\n\nvar StopQueryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"StopQuery\", {}).n(\"CloudWatchLogsClient\", \"StopQueryCommand\").f(void 0, void 0).ser(se_StopQueryCommand).de(de_StopQueryCommand).build() {\n static {\n __name(this, \"StopQueryCommand\");\n }\n};\n\n// src/commands/TagLogGroupCommand.ts\n\n\n\nvar TagLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TagLogGroup\", {}).n(\"CloudWatchLogsClient\", \"TagLogGroupCommand\").f(void 0, void 0).ser(se_TagLogGroupCommand).de(de_TagLogGroupCommand).build() {\n static {\n __name(this, \"TagLogGroupCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TagResource\", {}).n(\"CloudWatchLogsClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/TestMetricFilterCommand.ts\n\n\n\nvar TestMetricFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TestMetricFilter\", {}).n(\"CloudWatchLogsClient\", \"TestMetricFilterCommand\").f(void 0, void 0).ser(se_TestMetricFilterCommand).de(de_TestMetricFilterCommand).build() {\n static {\n __name(this, \"TestMetricFilterCommand\");\n }\n};\n\n// src/commands/TestTransformerCommand.ts\n\n\n\nvar TestTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TestTransformer\", {}).n(\"CloudWatchLogsClient\", \"TestTransformerCommand\").f(void 0, void 0).ser(se_TestTransformerCommand).de(de_TestTransformerCommand).build() {\n static {\n __name(this, \"TestTransformerCommand\");\n }\n};\n\n// src/commands/UntagLogGroupCommand.ts\n\n\n\nvar UntagLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UntagLogGroup\", {}).n(\"CloudWatchLogsClient\", \"UntagLogGroupCommand\").f(void 0, void 0).ser(se_UntagLogGroupCommand).de(de_UntagLogGroupCommand).build() {\n static {\n __name(this, \"UntagLogGroupCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UntagResource\", {}).n(\"CloudWatchLogsClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateAnomalyCommand.ts\n\n\n\nvar UpdateAnomalyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UpdateAnomaly\", {}).n(\"CloudWatchLogsClient\", \"UpdateAnomalyCommand\").f(void 0, void 0).ser(se_UpdateAnomalyCommand).de(de_UpdateAnomalyCommand).build() {\n static {\n __name(this, \"UpdateAnomalyCommand\");\n }\n};\n\n// src/commands/UpdateDeliveryConfigurationCommand.ts\n\n\n\nvar UpdateDeliveryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UpdateDeliveryConfiguration\", {}).n(\"CloudWatchLogsClient\", \"UpdateDeliveryConfigurationCommand\").f(void 0, void 0).ser(se_UpdateDeliveryConfigurationCommand).de(de_UpdateDeliveryConfigurationCommand).build() {\n static {\n __name(this, \"UpdateDeliveryConfigurationCommand\");\n }\n};\n\n// src/commands/UpdateLogAnomalyDetectorCommand.ts\n\n\n\nvar UpdateLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UpdateLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"UpdateLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_UpdateLogAnomalyDetectorCommand).de(de_UpdateLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"UpdateLogAnomalyDetectorCommand\");\n }\n};\n\n// src/CloudWatchLogs.ts\nvar commands = {\n AssociateKmsKeyCommand,\n CancelExportTaskCommand,\n CreateDeliveryCommand,\n CreateExportTaskCommand,\n CreateLogAnomalyDetectorCommand,\n CreateLogGroupCommand,\n CreateLogStreamCommand,\n DeleteAccountPolicyCommand,\n DeleteDataProtectionPolicyCommand,\n DeleteDeliveryCommand,\n DeleteDeliveryDestinationCommand,\n DeleteDeliveryDestinationPolicyCommand,\n DeleteDeliverySourceCommand,\n DeleteDestinationCommand,\n DeleteIndexPolicyCommand,\n DeleteIntegrationCommand,\n DeleteLogAnomalyDetectorCommand,\n DeleteLogGroupCommand,\n DeleteLogStreamCommand,\n DeleteMetricFilterCommand,\n DeleteQueryDefinitionCommand,\n DeleteResourcePolicyCommand,\n DeleteRetentionPolicyCommand,\n DeleteSubscriptionFilterCommand,\n DeleteTransformerCommand,\n DescribeAccountPoliciesCommand,\n DescribeConfigurationTemplatesCommand,\n DescribeDeliveriesCommand,\n DescribeDeliveryDestinationsCommand,\n DescribeDeliverySourcesCommand,\n DescribeDestinationsCommand,\n DescribeExportTasksCommand,\n DescribeFieldIndexesCommand,\n DescribeIndexPoliciesCommand,\n DescribeLogGroupsCommand,\n DescribeLogStreamsCommand,\n DescribeMetricFiltersCommand,\n DescribeQueriesCommand,\n DescribeQueryDefinitionsCommand,\n DescribeResourcePoliciesCommand,\n DescribeSubscriptionFiltersCommand,\n DisassociateKmsKeyCommand,\n FilterLogEventsCommand,\n GetDataProtectionPolicyCommand,\n GetDeliveryCommand,\n GetDeliveryDestinationCommand,\n GetDeliveryDestinationPolicyCommand,\n GetDeliverySourceCommand,\n GetIntegrationCommand,\n GetLogAnomalyDetectorCommand,\n GetLogEventsCommand,\n GetLogGroupFieldsCommand,\n GetLogRecordCommand,\n GetQueryResultsCommand,\n GetTransformerCommand,\n ListAnomaliesCommand,\n ListIntegrationsCommand,\n ListLogAnomalyDetectorsCommand,\n ListLogGroupsForQueryCommand,\n ListTagsForResourceCommand,\n ListTagsLogGroupCommand,\n PutAccountPolicyCommand,\n PutDataProtectionPolicyCommand,\n PutDeliveryDestinationCommand,\n PutDeliveryDestinationPolicyCommand,\n PutDeliverySourceCommand,\n PutDestinationCommand,\n PutDestinationPolicyCommand,\n PutIndexPolicyCommand,\n PutIntegrationCommand,\n PutLogEventsCommand,\n PutMetricFilterCommand,\n PutQueryDefinitionCommand,\n PutResourcePolicyCommand,\n PutRetentionPolicyCommand,\n PutSubscriptionFilterCommand,\n PutTransformerCommand,\n StartLiveTailCommand,\n StartQueryCommand,\n StopQueryCommand,\n TagLogGroupCommand,\n TagResourceCommand,\n TestMetricFilterCommand,\n TestTransformerCommand,\n UntagLogGroupCommand,\n UntagResourceCommand,\n UpdateAnomalyCommand,\n UpdateDeliveryConfigurationCommand,\n UpdateLogAnomalyDetectorCommand\n};\nvar CloudWatchLogs = class extends CloudWatchLogsClient {\n static {\n __name(this, \"CloudWatchLogs\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CloudWatchLogs);\n\n// src/pagination/DescribeConfigurationTemplatesPaginator.ts\n\nvar paginateDescribeConfigurationTemplates = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeConfigurationTemplatesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDeliveriesPaginator.ts\n\nvar paginateDescribeDeliveries = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDeliveriesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDeliveryDestinationsPaginator.ts\n\nvar paginateDescribeDeliveryDestinations = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDeliveryDestinationsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDeliverySourcesPaginator.ts\n\nvar paginateDescribeDeliverySources = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDeliverySourcesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDestinationsPaginator.ts\n\nvar paginateDescribeDestinations = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDestinationsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeLogGroupsPaginator.ts\n\nvar paginateDescribeLogGroups = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeLogGroupsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeLogStreamsPaginator.ts\n\nvar paginateDescribeLogStreams = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeLogStreamsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeMetricFiltersPaginator.ts\n\nvar paginateDescribeMetricFilters = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeMetricFiltersCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeSubscriptionFiltersPaginator.ts\n\nvar paginateDescribeSubscriptionFilters = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeSubscriptionFiltersCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/FilterLogEventsPaginator.ts\n\nvar paginateFilterLogEvents = (0, import_core.createPaginator)(CloudWatchLogsClient, FilterLogEventsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/GetLogEventsPaginator.ts\n\nvar paginateGetLogEvents = (0, import_core.createPaginator)(CloudWatchLogsClient, GetLogEventsCommand, \"nextToken\", \"nextForwardToken\", \"limit\");\n\n// src/pagination/ListAnomaliesPaginator.ts\n\nvar paginateListAnomalies = (0, import_core.createPaginator)(CloudWatchLogsClient, ListAnomaliesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/ListLogAnomalyDetectorsPaginator.ts\n\nvar paginateListLogAnomalyDetectors = (0, import_core.createPaginator)(CloudWatchLogsClient, ListLogAnomalyDetectorsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/ListLogGroupsForQueryPaginator.ts\n\nvar paginateListLogGroupsForQuery = (0, import_core.createPaginator)(CloudWatchLogsClient, ListLogGroupsForQueryCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CloudWatchLogsServiceException,\n __Client,\n CloudWatchLogsClient,\n CloudWatchLogs,\n $Command,\n AssociateKmsKeyCommand,\n CancelExportTaskCommand,\n CreateDeliveryCommand,\n CreateExportTaskCommand,\n CreateLogAnomalyDetectorCommand,\n CreateLogGroupCommand,\n CreateLogStreamCommand,\n DeleteAccountPolicyCommand,\n DeleteDataProtectionPolicyCommand,\n DeleteDeliveryCommand,\n DeleteDeliveryDestinationCommand,\n DeleteDeliveryDestinationPolicyCommand,\n DeleteDeliverySourceCommand,\n DeleteDestinationCommand,\n DeleteIndexPolicyCommand,\n DeleteIntegrationCommand,\n DeleteLogAnomalyDetectorCommand,\n DeleteLogGroupCommand,\n DeleteLogStreamCommand,\n DeleteMetricFilterCommand,\n DeleteQueryDefinitionCommand,\n DeleteResourcePolicyCommand,\n DeleteRetentionPolicyCommand,\n DeleteSubscriptionFilterCommand,\n DeleteTransformerCommand,\n DescribeAccountPoliciesCommand,\n DescribeConfigurationTemplatesCommand,\n DescribeDeliveriesCommand,\n DescribeDeliveryDestinationsCommand,\n DescribeDeliverySourcesCommand,\n DescribeDestinationsCommand,\n DescribeExportTasksCommand,\n DescribeFieldIndexesCommand,\n DescribeIndexPoliciesCommand,\n DescribeLogGroupsCommand,\n DescribeLogStreamsCommand,\n DescribeMetricFiltersCommand,\n DescribeQueriesCommand,\n DescribeQueryDefinitionsCommand,\n DescribeResourcePoliciesCommand,\n DescribeSubscriptionFiltersCommand,\n DisassociateKmsKeyCommand,\n FilterLogEventsCommand,\n GetDataProtectionPolicyCommand,\n GetDeliveryCommand,\n GetDeliveryDestinationCommand,\n GetDeliveryDestinationPolicyCommand,\n GetDeliverySourceCommand,\n GetIntegrationCommand,\n GetLogAnomalyDetectorCommand,\n GetLogEventsCommand,\n GetLogGroupFieldsCommand,\n GetLogRecordCommand,\n GetQueryResultsCommand,\n GetTransformerCommand,\n ListAnomaliesCommand,\n ListIntegrationsCommand,\n ListLogAnomalyDetectorsCommand,\n ListLogGroupsForQueryCommand,\n ListTagsForResourceCommand,\n ListTagsLogGroupCommand,\n PutAccountPolicyCommand,\n PutDataProtectionPolicyCommand,\n PutDeliveryDestinationCommand,\n PutDeliveryDestinationPolicyCommand,\n PutDeliverySourceCommand,\n PutDestinationCommand,\n PutDestinationPolicyCommand,\n PutIndexPolicyCommand,\n PutIntegrationCommand,\n PutLogEventsCommand,\n PutMetricFilterCommand,\n PutQueryDefinitionCommand,\n PutResourcePolicyCommand,\n PutRetentionPolicyCommand,\n PutSubscriptionFilterCommand,\n PutTransformerCommand,\n StartLiveTailCommand,\n StartQueryCommand,\n StopQueryCommand,\n TagLogGroupCommand,\n TagResourceCommand,\n TestMetricFilterCommand,\n TestTransformerCommand,\n UntagLogGroupCommand,\n UntagResourceCommand,\n UpdateAnomalyCommand,\n UpdateDeliveryConfigurationCommand,\n UpdateLogAnomalyDetectorCommand,\n paginateDescribeConfigurationTemplates,\n paginateDescribeDeliveries,\n paginateDescribeDeliveryDestinations,\n paginateDescribeDeliverySources,\n paginateDescribeDestinations,\n paginateDescribeLogGroups,\n paginateDescribeLogStreams,\n paginateDescribeMetricFilters,\n paginateDescribeSubscriptionFilters,\n paginateFilterLogEvents,\n paginateGetLogEvents,\n paginateListAnomalies,\n paginateListLogAnomalyDetectors,\n paginateListLogGroupsForQuery,\n AccessDeniedException,\n PolicyType,\n Scope,\n State,\n AnomalyDetectorStatus,\n EvaluationFrequency,\n InvalidParameterException,\n OperationAbortedException,\n ResourceNotFoundException,\n ServiceUnavailableException,\n InvalidOperationException,\n OutputFormat,\n DeliveryDestinationType,\n ConflictException,\n ServiceQuotaExceededException,\n ThrottlingException,\n ValidationException,\n LimitExceededException,\n ResourceAlreadyExistsException,\n LogGroupClass,\n DataAlreadyAcceptedException,\n DataProtectionStatus,\n ExportTaskStatusCode,\n IndexSource,\n InheritedProperty,\n OrderBy,\n StandardUnit,\n QueryLanguage,\n QueryStatus,\n Distribution,\n EntityRejectionErrorType,\n FlattenedElement,\n OpenSearchResourceStatusType,\n IntegrationDetails,\n IntegrationStatus,\n IntegrationType,\n Type,\n InvalidSequenceTokenException,\n SuppressionState,\n ResourceConfig,\n UnrecognizedClientException,\n SessionStreamingException,\n SessionTimeoutException,\n StartLiveTailResponseStream,\n MalformedQueryException,\n TooManyTagsException,\n SuppressionUnit,\n SuppressionType,\n StartLiveTailResponseStreamFilterSensitiveLog,\n StartLiveTailResponseFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst eventstream_serde_node_1 = require(\"@smithy/eventstream-serde-node\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventstream_serde_node_1.eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-03-28\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCloudWatchLogsHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"CloudWatch Logs\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCodeBuildHttpAuthSchemeProvider = exports.defaultCodeBuildHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCodeBuildHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCodeBuildHttpAuthSchemeParametersProvider = defaultCodeBuildHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"codebuild\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCodeBuildHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCodeBuildHttpAuthSchemeProvider = defaultCodeBuildHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://codebuild-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://codebuild-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://codebuild.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://codebuild.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccountLimitExceededException: () => AccountLimitExceededException,\n AccountSuspendedException: () => AccountSuspendedException,\n ArtifactNamespace: () => ArtifactNamespace,\n ArtifactPackaging: () => ArtifactPackaging,\n ArtifactsType: () => ArtifactsType,\n AuthType: () => AuthType,\n BatchDeleteBuildsCommand: () => BatchDeleteBuildsCommand,\n BatchGetBuildBatchesCommand: () => BatchGetBuildBatchesCommand,\n BatchGetBuildsCommand: () => BatchGetBuildsCommand,\n BatchGetCommandExecutionsCommand: () => BatchGetCommandExecutionsCommand,\n BatchGetCommandExecutionsOutputFilterSensitiveLog: () => BatchGetCommandExecutionsOutputFilterSensitiveLog,\n BatchGetFleetsCommand: () => BatchGetFleetsCommand,\n BatchGetProjectsCommand: () => BatchGetProjectsCommand,\n BatchGetReportGroupsCommand: () => BatchGetReportGroupsCommand,\n BatchGetReportsCommand: () => BatchGetReportsCommand,\n BatchGetSandboxesCommand: () => BatchGetSandboxesCommand,\n BatchReportModeType: () => BatchReportModeType,\n BucketOwnerAccess: () => BucketOwnerAccess,\n BuildBatchPhaseType: () => BuildBatchPhaseType,\n BuildPhaseType: () => BuildPhaseType,\n CacheMode: () => CacheMode,\n CacheType: () => CacheType,\n CodeBuild: () => CodeBuild,\n CodeBuildClient: () => CodeBuildClient,\n CodeBuildServiceException: () => CodeBuildServiceException,\n CommandExecutionFilterSensitiveLog: () => CommandExecutionFilterSensitiveLog,\n CommandType: () => CommandType,\n ComputeType: () => ComputeType,\n CreateFleetCommand: () => CreateFleetCommand,\n CreateProjectCommand: () => CreateProjectCommand,\n CreateReportGroupCommand: () => CreateReportGroupCommand,\n CreateWebhookCommand: () => CreateWebhookCommand,\n CredentialProviderType: () => CredentialProviderType,\n DeleteBuildBatchCommand: () => DeleteBuildBatchCommand,\n DeleteFleetCommand: () => DeleteFleetCommand,\n DeleteProjectCommand: () => DeleteProjectCommand,\n DeleteReportCommand: () => DeleteReportCommand,\n DeleteReportGroupCommand: () => DeleteReportGroupCommand,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeleteSourceCredentialsCommand: () => DeleteSourceCredentialsCommand,\n DeleteWebhookCommand: () => DeleteWebhookCommand,\n DescribeCodeCoveragesCommand: () => DescribeCodeCoveragesCommand,\n DescribeTestCasesCommand: () => DescribeTestCasesCommand,\n EnvironmentType: () => EnvironmentType,\n EnvironmentVariableType: () => EnvironmentVariableType,\n FileSystemType: () => FileSystemType,\n FleetContextCode: () => FleetContextCode,\n FleetOverflowBehavior: () => FleetOverflowBehavior,\n FleetProxyRuleBehavior: () => FleetProxyRuleBehavior,\n FleetProxyRuleEffectType: () => FleetProxyRuleEffectType,\n FleetProxyRuleType: () => FleetProxyRuleType,\n FleetScalingMetricType: () => FleetScalingMetricType,\n FleetScalingType: () => FleetScalingType,\n FleetSortByType: () => FleetSortByType,\n FleetStatusCode: () => FleetStatusCode,\n GetReportGroupTrendCommand: () => GetReportGroupTrendCommand,\n GetResourcePolicyCommand: () => GetResourcePolicyCommand,\n ImagePullCredentialsType: () => ImagePullCredentialsType,\n ImportSourceCredentialsCommand: () => ImportSourceCredentialsCommand,\n ImportSourceCredentialsInputFilterSensitiveLog: () => ImportSourceCredentialsInputFilterSensitiveLog,\n InvalidInputException: () => InvalidInputException,\n InvalidateProjectCacheCommand: () => InvalidateProjectCacheCommand,\n LanguageType: () => LanguageType,\n ListBuildBatchesCommand: () => ListBuildBatchesCommand,\n ListBuildBatchesForProjectCommand: () => ListBuildBatchesForProjectCommand,\n ListBuildsCommand: () => ListBuildsCommand,\n ListBuildsForProjectCommand: () => ListBuildsForProjectCommand,\n ListCommandExecutionsForSandboxCommand: () => ListCommandExecutionsForSandboxCommand,\n ListCommandExecutionsForSandboxInputFilterSensitiveLog: () => ListCommandExecutionsForSandboxInputFilterSensitiveLog,\n ListCommandExecutionsForSandboxOutputFilterSensitiveLog: () => ListCommandExecutionsForSandboxOutputFilterSensitiveLog,\n ListCuratedEnvironmentImagesCommand: () => ListCuratedEnvironmentImagesCommand,\n ListFleetsCommand: () => ListFleetsCommand,\n ListFleetsInputFilterSensitiveLog: () => ListFleetsInputFilterSensitiveLog,\n ListProjectsCommand: () => ListProjectsCommand,\n ListReportGroupsCommand: () => ListReportGroupsCommand,\n ListReportsCommand: () => ListReportsCommand,\n ListReportsForReportGroupCommand: () => ListReportsForReportGroupCommand,\n ListSandboxesCommand: () => ListSandboxesCommand,\n ListSandboxesForProjectCommand: () => ListSandboxesForProjectCommand,\n ListSandboxesForProjectInputFilterSensitiveLog: () => ListSandboxesForProjectInputFilterSensitiveLog,\n ListSharedProjectsCommand: () => ListSharedProjectsCommand,\n ListSharedReportGroupsCommand: () => ListSharedReportGroupsCommand,\n ListSourceCredentialsCommand: () => ListSourceCredentialsCommand,\n LogsConfigStatusType: () => LogsConfigStatusType,\n MachineType: () => MachineType,\n OAuthProviderException: () => OAuthProviderException,\n PlatformType: () => PlatformType,\n ProjectSortByType: () => ProjectSortByType,\n ProjectVisibilityType: () => ProjectVisibilityType,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n ReportCodeCoverageSortByType: () => ReportCodeCoverageSortByType,\n ReportExportConfigType: () => ReportExportConfigType,\n ReportGroupSortByType: () => ReportGroupSortByType,\n ReportGroupStatusType: () => ReportGroupStatusType,\n ReportGroupTrendFieldType: () => ReportGroupTrendFieldType,\n ReportPackagingType: () => ReportPackagingType,\n ReportStatusType: () => ReportStatusType,\n ReportType: () => ReportType,\n ResourceAlreadyExistsException: () => ResourceAlreadyExistsException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RetryBuildBatchCommand: () => RetryBuildBatchCommand,\n RetryBuildBatchType: () => RetryBuildBatchType,\n RetryBuildCommand: () => RetryBuildCommand,\n ServerType: () => ServerType,\n SharedResourceSortByType: () => SharedResourceSortByType,\n SortOrderType: () => SortOrderType,\n SourceAuthType: () => SourceAuthType,\n SourceType: () => SourceType,\n StartBuildBatchCommand: () => StartBuildBatchCommand,\n StartBuildCommand: () => StartBuildCommand,\n StartCommandExecutionCommand: () => StartCommandExecutionCommand,\n StartCommandExecutionInputFilterSensitiveLog: () => StartCommandExecutionInputFilterSensitiveLog,\n StartCommandExecutionOutputFilterSensitiveLog: () => StartCommandExecutionOutputFilterSensitiveLog,\n StartSandboxCommand: () => StartSandboxCommand,\n StartSandboxConnectionCommand: () => StartSandboxConnectionCommand,\n StartSandboxInputFilterSensitiveLog: () => StartSandboxInputFilterSensitiveLog,\n StatusType: () => StatusType,\n StopBuildBatchCommand: () => StopBuildBatchCommand,\n StopBuildCommand: () => StopBuildCommand,\n StopSandboxCommand: () => StopSandboxCommand,\n UpdateFleetCommand: () => UpdateFleetCommand,\n UpdateProjectCommand: () => UpdateProjectCommand,\n UpdateProjectVisibilityCommand: () => UpdateProjectVisibilityCommand,\n UpdateReportGroupCommand: () => UpdateReportGroupCommand,\n UpdateWebhookCommand: () => UpdateWebhookCommand,\n WebhookBuildType: () => WebhookBuildType,\n WebhookFilterType: () => WebhookFilterType,\n WebhookScopeType: () => WebhookScopeType,\n WebhookStatus: () => WebhookStatus,\n __Client: () => import_smithy_client.Client,\n paginateDescribeCodeCoverages: () => paginateDescribeCodeCoverages,\n paginateDescribeTestCases: () => paginateDescribeTestCases,\n paginateListBuildBatches: () => paginateListBuildBatches,\n paginateListBuildBatchesForProject: () => paginateListBuildBatchesForProject,\n paginateListBuilds: () => paginateListBuilds,\n paginateListBuildsForProject: () => paginateListBuildsForProject,\n paginateListCommandExecutionsForSandbox: () => paginateListCommandExecutionsForSandbox,\n paginateListFleets: () => paginateListFleets,\n paginateListProjects: () => paginateListProjects,\n paginateListReportGroups: () => paginateListReportGroups,\n paginateListReports: () => paginateListReports,\n paginateListReportsForReportGroup: () => paginateListReportsForReportGroup,\n paginateListSandboxes: () => paginateListSandboxes,\n paginateListSandboxesForProject: () => paginateListSandboxesForProject,\n paginateListSharedProjects: () => paginateListSharedProjects,\n paginateListSharedReportGroups: () => paginateListSharedReportGroups\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CodeBuildClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"codebuild\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CodeBuildClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CodeBuildClient.ts\nvar CodeBuildClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CodeBuildClient\");\n }\n /**\n * The resolved configuration of CodeBuildClient class. This is resolved and normalized from the {@link CodeBuildClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCodeBuildHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CodeBuild.ts\n\n\n// src/commands/BatchDeleteBuildsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/CodeBuildServiceException.ts\n\nvar CodeBuildServiceException = class _CodeBuildServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CodeBuildServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CodeBuildServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AccountLimitExceededException = class _AccountLimitExceededException extends CodeBuildServiceException {\n static {\n __name(this, \"AccountLimitExceededException\");\n }\n name = \"AccountLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccountLimitExceededException.prototype);\n }\n};\nvar AccountSuspendedException = class _AccountSuspendedException extends CodeBuildServiceException {\n static {\n __name(this, \"AccountSuspendedException\");\n }\n name = \"AccountSuspendedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccountSuspendedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccountSuspendedException.prototype);\n }\n};\nvar ArtifactNamespace = {\n BUILD_ID: \"BUILD_ID\",\n NONE: \"NONE\"\n};\nvar ArtifactPackaging = {\n NONE: \"NONE\",\n ZIP: \"ZIP\"\n};\nvar ArtifactsType = {\n CODEPIPELINE: \"CODEPIPELINE\",\n NO_ARTIFACTS: \"NO_ARTIFACTS\",\n S3: \"S3\"\n};\nvar AuthType = {\n BASIC_AUTH: \"BASIC_AUTH\",\n CODECONNECTIONS: \"CODECONNECTIONS\",\n OAUTH: \"OAUTH\",\n PERSONAL_ACCESS_TOKEN: \"PERSONAL_ACCESS_TOKEN\",\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar InvalidInputException = class _InvalidInputException extends CodeBuildServiceException {\n static {\n __name(this, \"InvalidInputException\");\n }\n name = \"InvalidInputException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInputException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInputException.prototype);\n }\n};\nvar BucketOwnerAccess = {\n FULL: \"FULL\",\n NONE: \"NONE\",\n READ_ONLY: \"READ_ONLY\"\n};\nvar BatchReportModeType = {\n REPORT_AGGREGATED_BATCH: \"REPORT_AGGREGATED_BATCH\",\n REPORT_INDIVIDUAL_BUILDS: \"REPORT_INDIVIDUAL_BUILDS\"\n};\nvar StatusType = {\n FAILED: \"FAILED\",\n FAULT: \"FAULT\",\n IN_PROGRESS: \"IN_PROGRESS\",\n STOPPED: \"STOPPED\",\n SUCCEEDED: \"SUCCEEDED\",\n TIMED_OUT: \"TIMED_OUT\"\n};\nvar CacheMode = {\n LOCAL_CUSTOM_CACHE: \"LOCAL_CUSTOM_CACHE\",\n LOCAL_DOCKER_LAYER_CACHE: \"LOCAL_DOCKER_LAYER_CACHE\",\n LOCAL_SOURCE_CACHE: \"LOCAL_SOURCE_CACHE\"\n};\nvar CacheType = {\n LOCAL: \"LOCAL\",\n NO_CACHE: \"NO_CACHE\",\n S3: \"S3\"\n};\nvar MachineType = {\n GENERAL: \"GENERAL\",\n NVME: \"NVME\"\n};\nvar ComputeType = {\n ATTRIBUTE_BASED_COMPUTE: \"ATTRIBUTE_BASED_COMPUTE\",\n BUILD_GENERAL1_2XLARGE: \"BUILD_GENERAL1_2XLARGE\",\n BUILD_GENERAL1_LARGE: \"BUILD_GENERAL1_LARGE\",\n BUILD_GENERAL1_MEDIUM: \"BUILD_GENERAL1_MEDIUM\",\n BUILD_GENERAL1_SMALL: \"BUILD_GENERAL1_SMALL\",\n BUILD_GENERAL1_XLARGE: \"BUILD_GENERAL1_XLARGE\",\n BUILD_LAMBDA_10GB: \"BUILD_LAMBDA_10GB\",\n BUILD_LAMBDA_1GB: \"BUILD_LAMBDA_1GB\",\n BUILD_LAMBDA_2GB: \"BUILD_LAMBDA_2GB\",\n BUILD_LAMBDA_4GB: \"BUILD_LAMBDA_4GB\",\n BUILD_LAMBDA_8GB: \"BUILD_LAMBDA_8GB\",\n CUSTOM_INSTANCE_TYPE: \"CUSTOM_INSTANCE_TYPE\"\n};\nvar EnvironmentVariableType = {\n PARAMETER_STORE: \"PARAMETER_STORE\",\n PLAINTEXT: \"PLAINTEXT\",\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar ImagePullCredentialsType = {\n CODEBUILD: \"CODEBUILD\",\n SERVICE_ROLE: \"SERVICE_ROLE\"\n};\nvar CredentialProviderType = {\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar EnvironmentType = {\n ARM_CONTAINER: \"ARM_CONTAINER\",\n ARM_EC2: \"ARM_EC2\",\n ARM_LAMBDA_CONTAINER: \"ARM_LAMBDA_CONTAINER\",\n LINUX_CONTAINER: \"LINUX_CONTAINER\",\n LINUX_EC2: \"LINUX_EC2\",\n LINUX_GPU_CONTAINER: \"LINUX_GPU_CONTAINER\",\n LINUX_LAMBDA_CONTAINER: \"LINUX_LAMBDA_CONTAINER\",\n MAC_ARM: \"MAC_ARM\",\n WINDOWS_CONTAINER: \"WINDOWS_CONTAINER\",\n WINDOWS_EC2: \"WINDOWS_EC2\",\n WINDOWS_SERVER_2019_CONTAINER: \"WINDOWS_SERVER_2019_CONTAINER\",\n WINDOWS_SERVER_2022_CONTAINER: \"WINDOWS_SERVER_2022_CONTAINER\"\n};\nvar FileSystemType = {\n EFS: \"EFS\"\n};\nvar LogsConfigStatusType = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar BuildBatchPhaseType = {\n COMBINE_ARTIFACTS: \"COMBINE_ARTIFACTS\",\n DOWNLOAD_BATCHSPEC: \"DOWNLOAD_BATCHSPEC\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n STOPPED: \"STOPPED\",\n SUBMITTED: \"SUBMITTED\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar SourceAuthType = {\n CODECONNECTIONS: \"CODECONNECTIONS\",\n OAUTH: \"OAUTH\",\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar SourceType = {\n BITBUCKET: \"BITBUCKET\",\n CODECOMMIT: \"CODECOMMIT\",\n CODEPIPELINE: \"CODEPIPELINE\",\n GITHUB: \"GITHUB\",\n GITHUB_ENTERPRISE: \"GITHUB_ENTERPRISE\",\n GITLAB: \"GITLAB\",\n GITLAB_SELF_MANAGED: \"GITLAB_SELF_MANAGED\",\n NO_SOURCE: \"NO_SOURCE\",\n S3: \"S3\"\n};\nvar BuildPhaseType = {\n BUILD: \"BUILD\",\n COMPLETED: \"COMPLETED\",\n DOWNLOAD_SOURCE: \"DOWNLOAD_SOURCE\",\n FINALIZING: \"FINALIZING\",\n INSTALL: \"INSTALL\",\n POST_BUILD: \"POST_BUILD\",\n PRE_BUILD: \"PRE_BUILD\",\n PROVISIONING: \"PROVISIONING\",\n QUEUED: \"QUEUED\",\n SUBMITTED: \"SUBMITTED\",\n UPLOAD_ARTIFACTS: \"UPLOAD_ARTIFACTS\"\n};\nvar CommandType = {\n SHELL: \"SHELL\"\n};\nvar FleetOverflowBehavior = {\n ON_DEMAND: \"ON_DEMAND\",\n QUEUE: \"QUEUE\"\n};\nvar FleetProxyRuleBehavior = {\n ALLOW_ALL: \"ALLOW_ALL\",\n DENY_ALL: \"DENY_ALL\"\n};\nvar FleetProxyRuleEffectType = {\n ALLOW: \"ALLOW\",\n DENY: \"DENY\"\n};\nvar FleetProxyRuleType = {\n DOMAIN: \"DOMAIN\",\n IP: \"IP\"\n};\nvar FleetScalingType = {\n TARGET_TRACKING_SCALING: \"TARGET_TRACKING_SCALING\"\n};\nvar FleetScalingMetricType = {\n FLEET_UTILIZATION_RATE: \"FLEET_UTILIZATION_RATE\"\n};\nvar FleetContextCode = {\n ACTION_REQUIRED: \"ACTION_REQUIRED\",\n CREATE_FAILED: \"CREATE_FAILED\",\n INSUFFICIENT_CAPACITY: \"INSUFFICIENT_CAPACITY\",\n PENDING_DELETION: \"PENDING_DELETION\",\n UPDATE_FAILED: \"UPDATE_FAILED\"\n};\nvar FleetStatusCode = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n PENDING_DELETION: \"PENDING_DELETION\",\n ROTATING: \"ROTATING\",\n UPDATE_ROLLBACK_FAILED: \"UPDATE_ROLLBACK_FAILED\",\n UPDATING: \"UPDATING\"\n};\nvar ProjectVisibilityType = {\n PRIVATE: \"PRIVATE\",\n PUBLIC_READ: \"PUBLIC_READ\"\n};\nvar WebhookBuildType = {\n BUILD: \"BUILD\",\n BUILD_BATCH: \"BUILD_BATCH\",\n RUNNER_BUILDKITE_BUILD: \"RUNNER_BUILDKITE_BUILD\"\n};\nvar WebhookFilterType = {\n ACTOR_ACCOUNT_ID: \"ACTOR_ACCOUNT_ID\",\n BASE_REF: \"BASE_REF\",\n COMMIT_MESSAGE: \"COMMIT_MESSAGE\",\n EVENT: \"EVENT\",\n FILE_PATH: \"FILE_PATH\",\n HEAD_REF: \"HEAD_REF\",\n ORGANIZATION_NAME: \"ORGANIZATION_NAME\",\n RELEASE_NAME: \"RELEASE_NAME\",\n REPOSITORY_NAME: \"REPOSITORY_NAME\",\n TAG_NAME: \"TAG_NAME\",\n WORKFLOW_NAME: \"WORKFLOW_NAME\"\n};\nvar WebhookScopeType = {\n GITHUB_GLOBAL: \"GITHUB_GLOBAL\",\n GITHUB_ORGANIZATION: \"GITHUB_ORGANIZATION\",\n GITLAB_GROUP: \"GITLAB_GROUP\"\n};\nvar WebhookStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\"\n};\nvar ReportExportConfigType = {\n NO_EXPORT: \"NO_EXPORT\",\n S3: \"S3\"\n};\nvar ReportPackagingType = {\n NONE: \"NONE\",\n ZIP: \"ZIP\"\n};\nvar ReportGroupStatusType = {\n ACTIVE: \"ACTIVE\",\n DELETING: \"DELETING\"\n};\nvar ReportType = {\n CODE_COVERAGE: \"CODE_COVERAGE\",\n TEST: \"TEST\"\n};\nvar ReportStatusType = {\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n GENERATING: \"GENERATING\",\n INCOMPLETE: \"INCOMPLETE\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar ResourceAlreadyExistsException = class _ResourceAlreadyExistsException extends CodeBuildServiceException {\n static {\n __name(this, \"ResourceAlreadyExistsException\");\n }\n name = \"ResourceAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceAlreadyExistsException.prototype);\n }\n};\nvar OAuthProviderException = class _OAuthProviderException extends CodeBuildServiceException {\n static {\n __name(this, \"OAuthProviderException\");\n }\n name = \"OAuthProviderException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OAuthProviderException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OAuthProviderException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CodeBuildServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ReportCodeCoverageSortByType = {\n FILE_PATH: \"FILE_PATH\",\n LINE_COVERAGE_PERCENTAGE: \"LINE_COVERAGE_PERCENTAGE\"\n};\nvar SortOrderType = {\n ASCENDING: \"ASCENDING\",\n DESCENDING: \"DESCENDING\"\n};\nvar ReportGroupTrendFieldType = {\n BRANCHES_COVERED: \"BRANCHES_COVERED\",\n BRANCHES_MISSED: \"BRANCHES_MISSED\",\n BRANCH_COVERAGE: \"BRANCH_COVERAGE\",\n DURATION: \"DURATION\",\n LINES_COVERED: \"LINES_COVERED\",\n LINES_MISSED: \"LINES_MISSED\",\n LINE_COVERAGE: \"LINE_COVERAGE\",\n PASS_RATE: \"PASS_RATE\",\n TOTAL: \"TOTAL\"\n};\nvar ServerType = {\n BITBUCKET: \"BITBUCKET\",\n GITHUB: \"GITHUB\",\n GITHUB_ENTERPRISE: \"GITHUB_ENTERPRISE\",\n GITLAB: \"GITLAB\",\n GITLAB_SELF_MANAGED: \"GITLAB_SELF_MANAGED\"\n};\nvar LanguageType = {\n ANDROID: \"ANDROID\",\n BASE: \"BASE\",\n DOCKER: \"DOCKER\",\n DOTNET: \"DOTNET\",\n GOLANG: \"GOLANG\",\n JAVA: \"JAVA\",\n NODE_JS: \"NODE_JS\",\n PHP: \"PHP\",\n PYTHON: \"PYTHON\",\n RUBY: \"RUBY\"\n};\nvar PlatformType = {\n AMAZON_LINUX: \"AMAZON_LINUX\",\n DEBIAN: \"DEBIAN\",\n UBUNTU: \"UBUNTU\",\n WINDOWS_SERVER: \"WINDOWS_SERVER\"\n};\nvar FleetSortByType = {\n CREATED_TIME: \"CREATED_TIME\",\n LAST_MODIFIED_TIME: \"LAST_MODIFIED_TIME\",\n NAME: \"NAME\"\n};\nvar ProjectSortByType = {\n CREATED_TIME: \"CREATED_TIME\",\n LAST_MODIFIED_TIME: \"LAST_MODIFIED_TIME\",\n NAME: \"NAME\"\n};\nvar ReportGroupSortByType = {\n CREATED_TIME: \"CREATED_TIME\",\n LAST_MODIFIED_TIME: \"LAST_MODIFIED_TIME\",\n NAME: \"NAME\"\n};\nvar SharedResourceSortByType = {\n ARN: \"ARN\",\n MODIFIED_TIME: \"MODIFIED_TIME\"\n};\nvar RetryBuildBatchType = {\n RETRY_ALL_BUILDS: \"RETRY_ALL_BUILDS\",\n RETRY_FAILED_BUILDS: \"RETRY_FAILED_BUILDS\"\n};\nvar CommandExecutionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.command && { command: import_smithy_client.SENSITIVE_STRING },\n ...obj.standardOutputContent && { standardOutputContent: import_smithy_client.SENSITIVE_STRING },\n ...obj.standardErrContent && { standardErrContent: import_smithy_client.SENSITIVE_STRING }\n}), \"CommandExecutionFilterSensitiveLog\");\nvar BatchGetCommandExecutionsOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.commandExecutions && {\n commandExecutions: obj.commandExecutions.map((item) => CommandExecutionFilterSensitiveLog(item))\n }\n}), \"BatchGetCommandExecutionsOutputFilterSensitiveLog\");\nvar ImportSourceCredentialsInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.token && { token: import_smithy_client.SENSITIVE_STRING }\n}), \"ImportSourceCredentialsInputFilterSensitiveLog\");\nvar ListCommandExecutionsForSandboxInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.nextToken && { nextToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListCommandExecutionsForSandboxInputFilterSensitiveLog\");\nvar ListCommandExecutionsForSandboxOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.commandExecutions && {\n commandExecutions: obj.commandExecutions.map((item) => CommandExecutionFilterSensitiveLog(item))\n }\n}), \"ListCommandExecutionsForSandboxOutputFilterSensitiveLog\");\nvar ListFleetsInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.nextToken && { nextToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListFleetsInputFilterSensitiveLog\");\nvar ListSandboxesForProjectInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.nextToken && { nextToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListSandboxesForProjectInputFilterSensitiveLog\");\nvar StartCommandExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.command && { command: import_smithy_client.SENSITIVE_STRING }\n}), \"StartCommandExecutionInputFilterSensitiveLog\");\nvar StartCommandExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.commandExecution && { commandExecution: CommandExecutionFilterSensitiveLog(obj.commandExecution) }\n}), \"StartCommandExecutionOutputFilterSensitiveLog\");\nvar StartSandboxInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.idempotencyToken && { idempotencyToken: import_smithy_client.SENSITIVE_STRING }\n}), \"StartSandboxInputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_BatchDeleteBuildsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchDeleteBuilds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchDeleteBuildsCommand\");\nvar se_BatchGetBuildBatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetBuildBatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetBuildBatchesCommand\");\nvar se_BatchGetBuildsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetBuilds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetBuildsCommand\");\nvar se_BatchGetCommandExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetCommandExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetCommandExecutionsCommand\");\nvar se_BatchGetFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetFleets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetFleetsCommand\");\nvar se_BatchGetProjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetProjects\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetProjectsCommand\");\nvar se_BatchGetReportGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetReportGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetReportGroupsCommand\");\nvar se_BatchGetReportsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetReports\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetReportsCommand\");\nvar se_BatchGetSandboxesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetSandboxes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetSandboxesCommand\");\nvar se_CreateFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateFleet\");\n let body;\n body = JSON.stringify(se_CreateFleetInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFleetCommand\");\nvar se_CreateProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateProjectCommand\");\nvar se_CreateReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateReportGroupCommand\");\nvar se_CreateWebhookCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateWebhook\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateWebhookCommand\");\nvar se_DeleteBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteBuildBatchCommand\");\nvar se_DeleteFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteFleet\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFleetCommand\");\nvar se_DeleteProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteProjectCommand\");\nvar se_DeleteReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteReport\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteReportCommand\");\nvar se_DeleteReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteReportGroupCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeleteSourceCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteSourceCredentials\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSourceCredentialsCommand\");\nvar se_DeleteWebhookCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteWebhook\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteWebhookCommand\");\nvar se_DescribeCodeCoveragesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeCodeCoverages\");\n let body;\n body = JSON.stringify(se_DescribeCodeCoveragesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCodeCoveragesCommand\");\nvar se_DescribeTestCasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTestCases\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTestCasesCommand\");\nvar se_GetReportGroupTrendCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetReportGroupTrend\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetReportGroupTrendCommand\");\nvar se_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePolicyCommand\");\nvar se_ImportSourceCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ImportSourceCredentials\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportSourceCredentialsCommand\");\nvar se_InvalidateProjectCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"InvalidateProjectCache\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_InvalidateProjectCacheCommand\");\nvar se_ListBuildBatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuildBatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildBatchesCommand\");\nvar se_ListBuildBatchesForProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuildBatchesForProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildBatchesForProjectCommand\");\nvar se_ListBuildsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuilds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildsCommand\");\nvar se_ListBuildsForProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuildsForProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildsForProjectCommand\");\nvar se_ListCommandExecutionsForSandboxCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCommandExecutionsForSandbox\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCommandExecutionsForSandboxCommand\");\nvar se_ListCuratedEnvironmentImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCuratedEnvironmentImages\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCuratedEnvironmentImagesCommand\");\nvar se_ListFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListFleets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListFleetsCommand\");\nvar se_ListProjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListProjects\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListProjectsCommand\");\nvar se_ListReportGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListReportGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListReportGroupsCommand\");\nvar se_ListReportsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListReports\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListReportsCommand\");\nvar se_ListReportsForReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListReportsForReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListReportsForReportGroupCommand\");\nvar se_ListSandboxesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSandboxes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSandboxesCommand\");\nvar se_ListSandboxesForProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSandboxesForProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSandboxesForProjectCommand\");\nvar se_ListSharedProjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSharedProjects\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSharedProjectsCommand\");\nvar se_ListSharedReportGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSharedReportGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSharedReportGroupsCommand\");\nvar se_ListSourceCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSourceCredentials\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSourceCredentialsCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_RetryBuildCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RetryBuild\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RetryBuildCommand\");\nvar se_RetryBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RetryBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RetryBuildBatchCommand\");\nvar se_StartBuildCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartBuild\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartBuildCommand\");\nvar se_StartBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartBuildBatchCommand\");\nvar se_StartCommandExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartCommandExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartCommandExecutionCommand\");\nvar se_StartSandboxCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSandbox\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartSandboxCommand\");\nvar se_StartSandboxConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSandboxConnection\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartSandboxConnectionCommand\");\nvar se_StopBuildCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopBuild\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopBuildCommand\");\nvar se_StopBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopBuildBatchCommand\");\nvar se_StopSandboxCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopSandbox\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopSandboxCommand\");\nvar se_UpdateFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateFleet\");\n let body;\n body = JSON.stringify(se_UpdateFleetInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateFleetCommand\");\nvar se_UpdateProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateProjectCommand\");\nvar se_UpdateProjectVisibilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateProjectVisibility\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateProjectVisibilityCommand\");\nvar se_UpdateReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateReportGroupCommand\");\nvar se_UpdateWebhookCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateWebhook\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateWebhookCommand\");\nvar de_BatchDeleteBuildsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchDeleteBuildsCommand\");\nvar de_BatchGetBuildBatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetBuildBatchesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetBuildBatchesCommand\");\nvar de_BatchGetBuildsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetBuildsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetBuildsCommand\");\nvar de_BatchGetCommandExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetCommandExecutionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetCommandExecutionsCommand\");\nvar de_BatchGetFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetFleetsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetFleetsCommand\");\nvar de_BatchGetProjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetProjectsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetProjectsCommand\");\nvar de_BatchGetReportGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetReportGroupsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetReportGroupsCommand\");\nvar de_BatchGetReportsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetReportsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetReportsCommand\");\nvar de_BatchGetSandboxesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetSandboxesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetSandboxesCommand\");\nvar de_CreateFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateFleetOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFleetCommand\");\nvar de_CreateProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateProjectOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateProjectCommand\");\nvar de_CreateReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateReportGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateReportGroupCommand\");\nvar de_CreateWebhookCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateWebhookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateWebhookCommand\");\nvar de_DeleteBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteBuildBatchCommand\");\nvar de_DeleteFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFleetCommand\");\nvar de_DeleteProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteProjectCommand\");\nvar de_DeleteReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteReportCommand\");\nvar de_DeleteReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteReportGroupCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeleteSourceCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSourceCredentialsCommand\");\nvar de_DeleteWebhookCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteWebhookCommand\");\nvar de_DescribeCodeCoveragesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCodeCoveragesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCodeCoveragesCommand\");\nvar de_DescribeTestCasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTestCasesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTestCasesCommand\");\nvar de_GetReportGroupTrendCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetReportGroupTrendCommand\");\nvar de_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePolicyCommand\");\nvar de_ImportSourceCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportSourceCredentialsCommand\");\nvar de_InvalidateProjectCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_InvalidateProjectCacheCommand\");\nvar de_ListBuildBatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildBatchesCommand\");\nvar de_ListBuildBatchesForProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildBatchesForProjectCommand\");\nvar de_ListBuildsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildsCommand\");\nvar de_ListBuildsForProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildsForProjectCommand\");\nvar de_ListCommandExecutionsForSandboxCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListCommandExecutionsForSandboxOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCommandExecutionsForSandboxCommand\");\nvar de_ListCuratedEnvironmentImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCuratedEnvironmentImagesCommand\");\nvar de_ListFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListFleetsCommand\");\nvar de_ListProjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListProjectsCommand\");\nvar de_ListReportGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListReportGroupsCommand\");\nvar de_ListReportsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListReportsCommand\");\nvar de_ListReportsForReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListReportsForReportGroupCommand\");\nvar de_ListSandboxesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSandboxesCommand\");\nvar de_ListSandboxesForProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSandboxesForProjectCommand\");\nvar de_ListSharedProjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSharedProjectsCommand\");\nvar de_ListSharedReportGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSharedReportGroupsCommand\");\nvar de_ListSourceCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSourceCredentialsCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_RetryBuildCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RetryBuildOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RetryBuildCommand\");\nvar de_RetryBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RetryBuildBatchOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RetryBuildBatchCommand\");\nvar de_StartBuildCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartBuildOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartBuildCommand\");\nvar de_StartBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartBuildBatchOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartBuildBatchCommand\");\nvar de_StartCommandExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartCommandExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartCommandExecutionCommand\");\nvar de_StartSandboxCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartSandboxOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSandboxCommand\");\nvar de_StartSandboxConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSandboxConnectionCommand\");\nvar de_StopBuildCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopBuildOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopBuildCommand\");\nvar de_StopBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopBuildBatchOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopBuildBatchCommand\");\nvar de_StopSandboxCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopSandboxOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopSandboxCommand\");\nvar de_UpdateFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateFleetOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateFleetCommand\");\nvar de_UpdateProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateProjectOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateProjectCommand\");\nvar de_UpdateProjectVisibilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateProjectVisibilityCommand\");\nvar de_UpdateReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateReportGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateReportGroupCommand\");\nvar de_UpdateWebhookCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateWebhookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateWebhookCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidInputException\":\n case \"com.amazonaws.codebuild#InvalidInputException\":\n throw await de_InvalidInputExceptionRes(parsedOutput, context);\n case \"AccountLimitExceededException\":\n case \"com.amazonaws.codebuild#AccountLimitExceededException\":\n throw await de_AccountLimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceAlreadyExistsException\":\n case \"com.amazonaws.codebuild#ResourceAlreadyExistsException\":\n throw await de_ResourceAlreadyExistsExceptionRes(parsedOutput, context);\n case \"OAuthProviderException\":\n case \"com.amazonaws.codebuild#OAuthProviderException\":\n throw await de_OAuthProviderExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.codebuild#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"AccountSuspendedException\":\n case \"com.amazonaws.codebuild#AccountSuspendedException\":\n throw await de_AccountSuspendedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccountLimitExceededExceptionRes\");\nvar de_AccountSuspendedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccountSuspendedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccountSuspendedExceptionRes\");\nvar de_InvalidInputExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInputException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInputExceptionRes\");\nvar de_OAuthProviderExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OAuthProviderException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OAuthProviderExceptionRes\");\nvar de_ResourceAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceAlreadyExistsExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar se_CreateFleetInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n baseCapacity: [],\n computeConfiguration: import_smithy_client._json,\n computeType: [],\n environmentType: [],\n fleetServiceRole: [],\n imageId: [],\n name: [],\n overflowBehavior: [],\n proxyConfiguration: import_smithy_client._json,\n scalingConfiguration: /* @__PURE__ */ __name((_) => se_ScalingConfigurationInput(_, context), \"scalingConfiguration\"),\n tags: import_smithy_client._json,\n vpcConfig: import_smithy_client._json\n });\n}, \"se_CreateFleetInput\");\nvar se_DescribeCodeCoveragesInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n maxLineCoveragePercentage: import_smithy_client.serializeFloat,\n maxResults: [],\n minLineCoveragePercentage: import_smithy_client.serializeFloat,\n nextToken: [],\n reportArn: [],\n sortBy: [],\n sortOrder: []\n });\n}, \"se_DescribeCodeCoveragesInput\");\nvar se_ScalingConfigurationInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n maxCapacity: [],\n scalingType: [],\n targetTrackingScalingConfigs: /* @__PURE__ */ __name((_) => se_TargetTrackingScalingConfigurations(_, context), \"targetTrackingScalingConfigs\")\n });\n}, \"se_ScalingConfigurationInput\");\nvar se_TargetTrackingScalingConfiguration = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n metricType: [],\n targetValue: import_smithy_client.serializeFloat\n });\n}, \"se_TargetTrackingScalingConfiguration\");\nvar se_TargetTrackingScalingConfigurations = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_TargetTrackingScalingConfiguration(entry, context);\n });\n}, \"se_TargetTrackingScalingConfigurations\");\nvar se_UpdateFleetInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n arn: [],\n baseCapacity: [],\n computeConfiguration: import_smithy_client._json,\n computeType: [],\n environmentType: [],\n fleetServiceRole: [],\n imageId: [],\n overflowBehavior: [],\n proxyConfiguration: import_smithy_client._json,\n scalingConfiguration: /* @__PURE__ */ __name((_) => se_ScalingConfigurationInput(_, context), \"scalingConfiguration\"),\n tags: import_smithy_client._json,\n vpcConfig: import_smithy_client._json\n });\n}, \"se_UpdateFleetInput\");\nvar de_BatchGetBuildBatchesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatches: /* @__PURE__ */ __name((_) => de_BuildBatches(_, context), \"buildBatches\"),\n buildBatchesNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetBuildBatchesOutput\");\nvar de_BatchGetBuildsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n builds: /* @__PURE__ */ __name((_) => de_Builds(_, context), \"builds\"),\n buildsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetBuildsOutput\");\nvar de_BatchGetCommandExecutionsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n commandExecutions: /* @__PURE__ */ __name((_) => de_CommandExecutions(_, context), \"commandExecutions\"),\n commandExecutionsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetCommandExecutionsOutput\");\nvar de_BatchGetFleetsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fleets: /* @__PURE__ */ __name((_) => de_Fleets(_, context), \"fleets\"),\n fleetsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetFleetsOutput\");\nvar de_BatchGetProjectsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n projects: /* @__PURE__ */ __name((_) => de_Projects(_, context), \"projects\"),\n projectsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetProjectsOutput\");\nvar de_BatchGetReportGroupsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reportGroups: /* @__PURE__ */ __name((_) => de_ReportGroups(_, context), \"reportGroups\"),\n reportGroupsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetReportGroupsOutput\");\nvar de_BatchGetReportsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reports: /* @__PURE__ */ __name((_) => de_Reports(_, context), \"reports\"),\n reportsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetReportsOutput\");\nvar de_BatchGetSandboxesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n sandboxes: /* @__PURE__ */ __name((_) => de_Sandboxes(_, context), \"sandboxes\"),\n sandboxesNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetSandboxesOutput\");\nvar de_Build = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n artifacts: import_smithy_client._json,\n autoRetryConfig: import_smithy_client._json,\n buildBatchArn: import_smithy_client.expectString,\n buildComplete: import_smithy_client.expectBoolean,\n buildNumber: import_smithy_client.expectLong,\n buildStatus: import_smithy_client.expectString,\n cache: import_smithy_client._json,\n currentPhase: import_smithy_client.expectString,\n debugSession: import_smithy_client._json,\n encryptionKey: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n environment: import_smithy_client._json,\n exportedEnvironmentVariables: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n id: import_smithy_client.expectString,\n initiator: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n networkInterface: import_smithy_client._json,\n phases: /* @__PURE__ */ __name((_) => de_BuildPhases(_, context), \"phases\"),\n projectName: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n reportArns: import_smithy_client._json,\n resolvedSourceVersion: import_smithy_client.expectString,\n secondaryArtifacts: import_smithy_client._json,\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n timeoutInMinutes: import_smithy_client.expectInt32,\n vpcConfig: import_smithy_client._json\n });\n}, \"de_Build\");\nvar de_BuildBatch = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n artifacts: import_smithy_client._json,\n buildBatchConfig: import_smithy_client._json,\n buildBatchNumber: import_smithy_client.expectLong,\n buildBatchStatus: import_smithy_client.expectString,\n buildGroups: /* @__PURE__ */ __name((_) => de_BuildGroups(_, context), \"buildGroups\"),\n buildTimeoutInMinutes: import_smithy_client.expectInt32,\n cache: import_smithy_client._json,\n complete: import_smithy_client.expectBoolean,\n currentPhase: import_smithy_client.expectString,\n debugSessionEnabled: import_smithy_client.expectBoolean,\n encryptionKey: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n environment: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n id: import_smithy_client.expectString,\n initiator: import_smithy_client.expectString,\n logConfig: import_smithy_client._json,\n phases: /* @__PURE__ */ __name((_) => de_BuildBatchPhases(_, context), \"phases\"),\n projectName: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n reportArns: import_smithy_client._json,\n resolvedSourceVersion: import_smithy_client.expectString,\n secondaryArtifacts: import_smithy_client._json,\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n vpcConfig: import_smithy_client._json\n });\n}, \"de_BuildBatch\");\nvar de_BuildBatches = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildBatch(entry, context);\n });\n return retVal;\n}, \"de_BuildBatches\");\nvar de_BuildBatchPhase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n contexts: import_smithy_client._json,\n durationInSeconds: import_smithy_client.expectLong,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n phaseStatus: import_smithy_client.expectString,\n phaseType: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\")\n });\n}, \"de_BuildBatchPhase\");\nvar de_BuildBatchPhases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildBatchPhase(entry, context);\n });\n return retVal;\n}, \"de_BuildBatchPhases\");\nvar de_BuildGroup = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n currentBuildSummary: /* @__PURE__ */ __name((_) => de_BuildSummary(_, context), \"currentBuildSummary\"),\n dependsOn: import_smithy_client._json,\n identifier: import_smithy_client.expectString,\n ignoreFailure: import_smithy_client.expectBoolean,\n priorBuildSummaryList: /* @__PURE__ */ __name((_) => de_BuildSummaries(_, context), \"priorBuildSummaryList\")\n });\n}, \"de_BuildGroup\");\nvar de_BuildGroups = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildGroup(entry, context);\n });\n return retVal;\n}, \"de_BuildGroups\");\nvar de_BuildPhase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n contexts: import_smithy_client._json,\n durationInSeconds: import_smithy_client.expectLong,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n phaseStatus: import_smithy_client.expectString,\n phaseType: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\")\n });\n}, \"de_BuildPhase\");\nvar de_BuildPhases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildPhase(entry, context);\n });\n return retVal;\n}, \"de_BuildPhases\");\nvar de_Builds = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Build(entry, context);\n });\n return retVal;\n}, \"de_Builds\");\nvar de_BuildSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildSummary(entry, context);\n });\n return retVal;\n}, \"de_BuildSummaries\");\nvar de_BuildSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n buildStatus: import_smithy_client.expectString,\n primaryArtifact: import_smithy_client._json,\n requestedOn: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"requestedOn\"),\n secondaryArtifacts: import_smithy_client._json\n });\n}, \"de_BuildSummary\");\nvar de_CodeCoverage = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n branchCoveragePercentage: import_smithy_client.limitedParseDouble,\n branchesCovered: import_smithy_client.expectInt32,\n branchesMissed: import_smithy_client.expectInt32,\n expired: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expired\"),\n filePath: import_smithy_client.expectString,\n id: import_smithy_client.expectString,\n lineCoveragePercentage: import_smithy_client.limitedParseDouble,\n linesCovered: import_smithy_client.expectInt32,\n linesMissed: import_smithy_client.expectInt32,\n reportARN: import_smithy_client.expectString\n });\n}, \"de_CodeCoverage\");\nvar de_CodeCoverageReportSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n branchCoveragePercentage: import_smithy_client.limitedParseDouble,\n branchesCovered: import_smithy_client.expectInt32,\n branchesMissed: import_smithy_client.expectInt32,\n lineCoveragePercentage: import_smithy_client.limitedParseDouble,\n linesCovered: import_smithy_client.expectInt32,\n linesMissed: import_smithy_client.expectInt32\n });\n}, \"de_CodeCoverageReportSummary\");\nvar de_CodeCoverages = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CodeCoverage(entry, context);\n });\n return retVal;\n}, \"de_CodeCoverages\");\nvar de_CommandExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n command: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n exitCode: import_smithy_client.expectString,\n id: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n sandboxArn: import_smithy_client.expectString,\n sandboxId: import_smithy_client.expectString,\n standardErrContent: import_smithy_client.expectString,\n standardOutputContent: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n status: import_smithy_client.expectString,\n submitTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"submitTime\"),\n type: import_smithy_client.expectString\n });\n}, \"de_CommandExecution\");\nvar de_CommandExecutions = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CommandExecution(entry, context);\n });\n return retVal;\n}, \"de_CommandExecutions\");\nvar de_CreateFleetOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fleet: /* @__PURE__ */ __name((_) => de_Fleet(_, context), \"fleet\")\n });\n}, \"de_CreateFleetOutput\");\nvar de_CreateProjectOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n project: /* @__PURE__ */ __name((_) => de_Project(_, context), \"project\")\n });\n}, \"de_CreateProjectOutput\");\nvar de_CreateReportGroupOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reportGroup: /* @__PURE__ */ __name((_) => de_ReportGroup(_, context), \"reportGroup\")\n });\n}, \"de_CreateReportGroupOutput\");\nvar de_CreateWebhookOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n webhook: /* @__PURE__ */ __name((_) => de_Webhook(_, context), \"webhook\")\n });\n}, \"de_CreateWebhookOutput\");\nvar de_DescribeCodeCoveragesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n codeCoverages: /* @__PURE__ */ __name((_) => de_CodeCoverages(_, context), \"codeCoverages\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeCodeCoveragesOutput\");\nvar de_DescribeTestCasesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n testCases: /* @__PURE__ */ __name((_) => de_TestCases(_, context), \"testCases\")\n });\n}, \"de_DescribeTestCasesOutput\");\nvar de_Fleet = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n baseCapacity: import_smithy_client.expectInt32,\n computeConfiguration: import_smithy_client._json,\n computeType: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n environmentType: import_smithy_client.expectString,\n fleetServiceRole: import_smithy_client.expectString,\n id: import_smithy_client.expectString,\n imageId: import_smithy_client.expectString,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n name: import_smithy_client.expectString,\n overflowBehavior: import_smithy_client.expectString,\n proxyConfiguration: import_smithy_client._json,\n scalingConfiguration: /* @__PURE__ */ __name((_) => de_ScalingConfigurationOutput(_, context), \"scalingConfiguration\"),\n status: import_smithy_client._json,\n tags: import_smithy_client._json,\n vpcConfig: import_smithy_client._json\n });\n}, \"de_Fleet\");\nvar de_Fleets = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Fleet(entry, context);\n });\n return retVal;\n}, \"de_Fleets\");\nvar de_ListCommandExecutionsForSandboxOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n commandExecutions: /* @__PURE__ */ __name((_) => de_CommandExecutions(_, context), \"commandExecutions\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListCommandExecutionsForSandboxOutput\");\nvar de_Project = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n artifacts: import_smithy_client._json,\n autoRetryLimit: import_smithy_client.expectInt32,\n badge: import_smithy_client._json,\n buildBatchConfig: import_smithy_client._json,\n cache: import_smithy_client._json,\n concurrentBuildLimit: import_smithy_client.expectInt32,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n description: import_smithy_client.expectString,\n encryptionKey: import_smithy_client.expectString,\n environment: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n logsConfig: import_smithy_client._json,\n name: import_smithy_client.expectString,\n projectVisibility: import_smithy_client.expectString,\n publicProjectAlias: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n resourceAccessRole: import_smithy_client.expectString,\n secondaryArtifacts: import_smithy_client._json,\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n timeoutInMinutes: import_smithy_client.expectInt32,\n vpcConfig: import_smithy_client._json,\n webhook: /* @__PURE__ */ __name((_) => de_Webhook(_, context), \"webhook\")\n });\n}, \"de_Project\");\nvar de_Projects = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Project(entry, context);\n });\n return retVal;\n}, \"de_Projects\");\nvar de_Report = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n codeCoverageSummary: /* @__PURE__ */ __name((_) => de_CodeCoverageReportSummary(_, context), \"codeCoverageSummary\"),\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n executionId: import_smithy_client.expectString,\n expired: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expired\"),\n exportConfig: import_smithy_client._json,\n name: import_smithy_client.expectString,\n reportGroupArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n testSummary: import_smithy_client._json,\n truncated: import_smithy_client.expectBoolean,\n type: import_smithy_client.expectString\n });\n}, \"de_Report\");\nvar de_ReportGroup = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n exportConfig: import_smithy_client._json,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n name: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n type: import_smithy_client.expectString\n });\n}, \"de_ReportGroup\");\nvar de_ReportGroups = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ReportGroup(entry, context);\n });\n return retVal;\n}, \"de_ReportGroups\");\nvar de_Reports = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Report(entry, context);\n });\n return retVal;\n}, \"de_Reports\");\nvar de_RetryBuildBatchOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatch: /* @__PURE__ */ __name((_) => de_BuildBatch(_, context), \"buildBatch\")\n });\n}, \"de_RetryBuildBatchOutput\");\nvar de_RetryBuildOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n build: /* @__PURE__ */ __name((_) => de_Build(_, context), \"build\")\n });\n}, \"de_RetryBuildOutput\");\nvar de_Sandbox = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n currentSession: /* @__PURE__ */ __name((_) => de_SandboxSession(_, context), \"currentSession\"),\n encryptionKey: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n environment: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n id: import_smithy_client.expectString,\n logConfig: import_smithy_client._json,\n projectName: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n requestTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"requestTime\"),\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n status: import_smithy_client.expectString,\n timeoutInMinutes: import_smithy_client.expectInt32,\n vpcConfig: import_smithy_client._json\n });\n}, \"de_Sandbox\");\nvar de_Sandboxes = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Sandbox(entry, context);\n });\n return retVal;\n}, \"de_Sandboxes\");\nvar de_SandboxSession = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n currentPhase: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n id: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n networkInterface: import_smithy_client._json,\n phases: /* @__PURE__ */ __name((_) => de_SandboxSessionPhases(_, context), \"phases\"),\n resolvedSourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n status: import_smithy_client.expectString\n });\n}, \"de_SandboxSession\");\nvar de_SandboxSessionPhase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n contexts: import_smithy_client._json,\n durationInSeconds: import_smithy_client.expectLong,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n phaseStatus: import_smithy_client.expectString,\n phaseType: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\")\n });\n}, \"de_SandboxSessionPhase\");\nvar de_SandboxSessionPhases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SandboxSessionPhase(entry, context);\n });\n return retVal;\n}, \"de_SandboxSessionPhases\");\nvar de_ScalingConfigurationOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n desiredCapacity: import_smithy_client.expectInt32,\n maxCapacity: import_smithy_client.expectInt32,\n scalingType: import_smithy_client.expectString,\n targetTrackingScalingConfigs: /* @__PURE__ */ __name((_) => de_TargetTrackingScalingConfigurations(_, context), \"targetTrackingScalingConfigs\")\n });\n}, \"de_ScalingConfigurationOutput\");\nvar de_StartBuildBatchOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatch: /* @__PURE__ */ __name((_) => de_BuildBatch(_, context), \"buildBatch\")\n });\n}, \"de_StartBuildBatchOutput\");\nvar de_StartBuildOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n build: /* @__PURE__ */ __name((_) => de_Build(_, context), \"build\")\n });\n}, \"de_StartBuildOutput\");\nvar de_StartCommandExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n commandExecution: /* @__PURE__ */ __name((_) => de_CommandExecution(_, context), \"commandExecution\")\n });\n}, \"de_StartCommandExecutionOutput\");\nvar de_StartSandboxOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n sandbox: /* @__PURE__ */ __name((_) => de_Sandbox(_, context), \"sandbox\")\n });\n}, \"de_StartSandboxOutput\");\nvar de_StopBuildBatchOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatch: /* @__PURE__ */ __name((_) => de_BuildBatch(_, context), \"buildBatch\")\n });\n}, \"de_StopBuildBatchOutput\");\nvar de_StopBuildOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n build: /* @__PURE__ */ __name((_) => de_Build(_, context), \"build\")\n });\n}, \"de_StopBuildOutput\");\nvar de_StopSandboxOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n sandbox: /* @__PURE__ */ __name((_) => de_Sandbox(_, context), \"sandbox\")\n });\n}, \"de_StopSandboxOutput\");\nvar de_TargetTrackingScalingConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n metricType: import_smithy_client.expectString,\n targetValue: import_smithy_client.limitedParseDouble\n });\n}, \"de_TargetTrackingScalingConfiguration\");\nvar de_TargetTrackingScalingConfigurations = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetTrackingScalingConfiguration(entry, context);\n });\n return retVal;\n}, \"de_TargetTrackingScalingConfigurations\");\nvar de_TestCase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n durationInNanoSeconds: import_smithy_client.expectLong,\n expired: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expired\"),\n message: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n prefix: import_smithy_client.expectString,\n reportArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n testRawDataPath: import_smithy_client.expectString,\n testSuiteName: import_smithy_client.expectString\n });\n}, \"de_TestCase\");\nvar de_TestCases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TestCase(entry, context);\n });\n return retVal;\n}, \"de_TestCases\");\nvar de_UpdateFleetOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fleet: /* @__PURE__ */ __name((_) => de_Fleet(_, context), \"fleet\")\n });\n}, \"de_UpdateFleetOutput\");\nvar de_UpdateProjectOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n project: /* @__PURE__ */ __name((_) => de_Project(_, context), \"project\")\n });\n}, \"de_UpdateProjectOutput\");\nvar de_UpdateReportGroupOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reportGroup: /* @__PURE__ */ __name((_) => de_ReportGroup(_, context), \"reportGroup\")\n });\n}, \"de_UpdateReportGroupOutput\");\nvar de_UpdateWebhookOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n webhook: /* @__PURE__ */ __name((_) => de_Webhook(_, context), \"webhook\")\n });\n}, \"de_UpdateWebhookOutput\");\nvar de_Webhook = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n branchFilter: import_smithy_client.expectString,\n buildType: import_smithy_client.expectString,\n filterGroups: import_smithy_client._json,\n lastModifiedSecret: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModifiedSecret\"),\n manualCreation: import_smithy_client.expectBoolean,\n payloadUrl: import_smithy_client.expectString,\n scopeConfiguration: import_smithy_client._json,\n secret: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n statusMessage: import_smithy_client.expectString,\n url: import_smithy_client.expectString\n });\n}, \"de_Webhook\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CodeBuildServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `CodeBuild_20161006.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/BatchDeleteBuildsCommand.ts\nvar BatchDeleteBuildsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchDeleteBuilds\", {}).n(\"CodeBuildClient\", \"BatchDeleteBuildsCommand\").f(void 0, void 0).ser(se_BatchDeleteBuildsCommand).de(de_BatchDeleteBuildsCommand).build() {\n static {\n __name(this, \"BatchDeleteBuildsCommand\");\n }\n};\n\n// src/commands/BatchGetBuildBatchesCommand.ts\n\n\n\nvar BatchGetBuildBatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetBuildBatches\", {}).n(\"CodeBuildClient\", \"BatchGetBuildBatchesCommand\").f(void 0, void 0).ser(se_BatchGetBuildBatchesCommand).de(de_BatchGetBuildBatchesCommand).build() {\n static {\n __name(this, \"BatchGetBuildBatchesCommand\");\n }\n};\n\n// src/commands/BatchGetBuildsCommand.ts\n\n\n\nvar BatchGetBuildsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetBuilds\", {}).n(\"CodeBuildClient\", \"BatchGetBuildsCommand\").f(void 0, void 0).ser(se_BatchGetBuildsCommand).de(de_BatchGetBuildsCommand).build() {\n static {\n __name(this, \"BatchGetBuildsCommand\");\n }\n};\n\n// src/commands/BatchGetCommandExecutionsCommand.ts\n\n\n\nvar BatchGetCommandExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetCommandExecutions\", {}).n(\"CodeBuildClient\", \"BatchGetCommandExecutionsCommand\").f(void 0, BatchGetCommandExecutionsOutputFilterSensitiveLog).ser(se_BatchGetCommandExecutionsCommand).de(de_BatchGetCommandExecutionsCommand).build() {\n static {\n __name(this, \"BatchGetCommandExecutionsCommand\");\n }\n};\n\n// src/commands/BatchGetFleetsCommand.ts\n\n\n\nvar BatchGetFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetFleets\", {}).n(\"CodeBuildClient\", \"BatchGetFleetsCommand\").f(void 0, void 0).ser(se_BatchGetFleetsCommand).de(de_BatchGetFleetsCommand).build() {\n static {\n __name(this, \"BatchGetFleetsCommand\");\n }\n};\n\n// src/commands/BatchGetProjectsCommand.ts\n\n\n\nvar BatchGetProjectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetProjects\", {}).n(\"CodeBuildClient\", \"BatchGetProjectsCommand\").f(void 0, void 0).ser(se_BatchGetProjectsCommand).de(de_BatchGetProjectsCommand).build() {\n static {\n __name(this, \"BatchGetProjectsCommand\");\n }\n};\n\n// src/commands/BatchGetReportGroupsCommand.ts\n\n\n\nvar BatchGetReportGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetReportGroups\", {}).n(\"CodeBuildClient\", \"BatchGetReportGroupsCommand\").f(void 0, void 0).ser(se_BatchGetReportGroupsCommand).de(de_BatchGetReportGroupsCommand).build() {\n static {\n __name(this, \"BatchGetReportGroupsCommand\");\n }\n};\n\n// src/commands/BatchGetReportsCommand.ts\n\n\n\nvar BatchGetReportsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetReports\", {}).n(\"CodeBuildClient\", \"BatchGetReportsCommand\").f(void 0, void 0).ser(se_BatchGetReportsCommand).de(de_BatchGetReportsCommand).build() {\n static {\n __name(this, \"BatchGetReportsCommand\");\n }\n};\n\n// src/commands/BatchGetSandboxesCommand.ts\n\n\n\nvar BatchGetSandboxesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetSandboxes\", {}).n(\"CodeBuildClient\", \"BatchGetSandboxesCommand\").f(void 0, void 0).ser(se_BatchGetSandboxesCommand).de(de_BatchGetSandboxesCommand).build() {\n static {\n __name(this, \"BatchGetSandboxesCommand\");\n }\n};\n\n// src/commands/CreateFleetCommand.ts\n\n\n\nvar CreateFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateFleet\", {}).n(\"CodeBuildClient\", \"CreateFleetCommand\").f(void 0, void 0).ser(se_CreateFleetCommand).de(de_CreateFleetCommand).build() {\n static {\n __name(this, \"CreateFleetCommand\");\n }\n};\n\n// src/commands/CreateProjectCommand.ts\n\n\n\nvar CreateProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateProject\", {}).n(\"CodeBuildClient\", \"CreateProjectCommand\").f(void 0, void 0).ser(se_CreateProjectCommand).de(de_CreateProjectCommand).build() {\n static {\n __name(this, \"CreateProjectCommand\");\n }\n};\n\n// src/commands/CreateReportGroupCommand.ts\n\n\n\nvar CreateReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateReportGroup\", {}).n(\"CodeBuildClient\", \"CreateReportGroupCommand\").f(void 0, void 0).ser(se_CreateReportGroupCommand).de(de_CreateReportGroupCommand).build() {\n static {\n __name(this, \"CreateReportGroupCommand\");\n }\n};\n\n// src/commands/CreateWebhookCommand.ts\n\n\n\nvar CreateWebhookCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateWebhook\", {}).n(\"CodeBuildClient\", \"CreateWebhookCommand\").f(void 0, void 0).ser(se_CreateWebhookCommand).de(de_CreateWebhookCommand).build() {\n static {\n __name(this, \"CreateWebhookCommand\");\n }\n};\n\n// src/commands/DeleteBuildBatchCommand.ts\n\n\n\nvar DeleteBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteBuildBatch\", {}).n(\"CodeBuildClient\", \"DeleteBuildBatchCommand\").f(void 0, void 0).ser(se_DeleteBuildBatchCommand).de(de_DeleteBuildBatchCommand).build() {\n static {\n __name(this, \"DeleteBuildBatchCommand\");\n }\n};\n\n// src/commands/DeleteFleetCommand.ts\n\n\n\nvar DeleteFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteFleet\", {}).n(\"CodeBuildClient\", \"DeleteFleetCommand\").f(void 0, void 0).ser(se_DeleteFleetCommand).de(de_DeleteFleetCommand).build() {\n static {\n __name(this, \"DeleteFleetCommand\");\n }\n};\n\n// src/commands/DeleteProjectCommand.ts\n\n\n\nvar DeleteProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteProject\", {}).n(\"CodeBuildClient\", \"DeleteProjectCommand\").f(void 0, void 0).ser(se_DeleteProjectCommand).de(de_DeleteProjectCommand).build() {\n static {\n __name(this, \"DeleteProjectCommand\");\n }\n};\n\n// src/commands/DeleteReportCommand.ts\n\n\n\nvar DeleteReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteReport\", {}).n(\"CodeBuildClient\", \"DeleteReportCommand\").f(void 0, void 0).ser(se_DeleteReportCommand).de(de_DeleteReportCommand).build() {\n static {\n __name(this, \"DeleteReportCommand\");\n }\n};\n\n// src/commands/DeleteReportGroupCommand.ts\n\n\n\nvar DeleteReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteReportGroup\", {}).n(\"CodeBuildClient\", \"DeleteReportGroupCommand\").f(void 0, void 0).ser(se_DeleteReportGroupCommand).de(de_DeleteReportGroupCommand).build() {\n static {\n __name(this, \"DeleteReportGroupCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteResourcePolicy\", {}).n(\"CodeBuildClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeleteSourceCredentialsCommand.ts\n\n\n\nvar DeleteSourceCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteSourceCredentials\", {}).n(\"CodeBuildClient\", \"DeleteSourceCredentialsCommand\").f(void 0, void 0).ser(se_DeleteSourceCredentialsCommand).de(de_DeleteSourceCredentialsCommand).build() {\n static {\n __name(this, \"DeleteSourceCredentialsCommand\");\n }\n};\n\n// src/commands/DeleteWebhookCommand.ts\n\n\n\nvar DeleteWebhookCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteWebhook\", {}).n(\"CodeBuildClient\", \"DeleteWebhookCommand\").f(void 0, void 0).ser(se_DeleteWebhookCommand).de(de_DeleteWebhookCommand).build() {\n static {\n __name(this, \"DeleteWebhookCommand\");\n }\n};\n\n// src/commands/DescribeCodeCoveragesCommand.ts\n\n\n\nvar DescribeCodeCoveragesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DescribeCodeCoverages\", {}).n(\"CodeBuildClient\", \"DescribeCodeCoveragesCommand\").f(void 0, void 0).ser(se_DescribeCodeCoveragesCommand).de(de_DescribeCodeCoveragesCommand).build() {\n static {\n __name(this, \"DescribeCodeCoveragesCommand\");\n }\n};\n\n// src/commands/DescribeTestCasesCommand.ts\n\n\n\nvar DescribeTestCasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DescribeTestCases\", {}).n(\"CodeBuildClient\", \"DescribeTestCasesCommand\").f(void 0, void 0).ser(se_DescribeTestCasesCommand).de(de_DescribeTestCasesCommand).build() {\n static {\n __name(this, \"DescribeTestCasesCommand\");\n }\n};\n\n// src/commands/GetReportGroupTrendCommand.ts\n\n\n\nvar GetReportGroupTrendCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"GetReportGroupTrend\", {}).n(\"CodeBuildClient\", \"GetReportGroupTrendCommand\").f(void 0, void 0).ser(se_GetReportGroupTrendCommand).de(de_GetReportGroupTrendCommand).build() {\n static {\n __name(this, \"GetReportGroupTrendCommand\");\n }\n};\n\n// src/commands/GetResourcePolicyCommand.ts\n\n\n\nvar GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"GetResourcePolicy\", {}).n(\"CodeBuildClient\", \"GetResourcePolicyCommand\").f(void 0, void 0).ser(se_GetResourcePolicyCommand).de(de_GetResourcePolicyCommand).build() {\n static {\n __name(this, \"GetResourcePolicyCommand\");\n }\n};\n\n// src/commands/ImportSourceCredentialsCommand.ts\n\n\n\nvar ImportSourceCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ImportSourceCredentials\", {}).n(\"CodeBuildClient\", \"ImportSourceCredentialsCommand\").f(ImportSourceCredentialsInputFilterSensitiveLog, void 0).ser(se_ImportSourceCredentialsCommand).de(de_ImportSourceCredentialsCommand).build() {\n static {\n __name(this, \"ImportSourceCredentialsCommand\");\n }\n};\n\n// src/commands/InvalidateProjectCacheCommand.ts\n\n\n\nvar InvalidateProjectCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"InvalidateProjectCache\", {}).n(\"CodeBuildClient\", \"InvalidateProjectCacheCommand\").f(void 0, void 0).ser(se_InvalidateProjectCacheCommand).de(de_InvalidateProjectCacheCommand).build() {\n static {\n __name(this, \"InvalidateProjectCacheCommand\");\n }\n};\n\n// src/commands/ListBuildBatchesCommand.ts\n\n\n\nvar ListBuildBatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuildBatches\", {}).n(\"CodeBuildClient\", \"ListBuildBatchesCommand\").f(void 0, void 0).ser(se_ListBuildBatchesCommand).de(de_ListBuildBatchesCommand).build() {\n static {\n __name(this, \"ListBuildBatchesCommand\");\n }\n};\n\n// src/commands/ListBuildBatchesForProjectCommand.ts\n\n\n\nvar ListBuildBatchesForProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuildBatchesForProject\", {}).n(\"CodeBuildClient\", \"ListBuildBatchesForProjectCommand\").f(void 0, void 0).ser(se_ListBuildBatchesForProjectCommand).de(de_ListBuildBatchesForProjectCommand).build() {\n static {\n __name(this, \"ListBuildBatchesForProjectCommand\");\n }\n};\n\n// src/commands/ListBuildsCommand.ts\n\n\n\nvar ListBuildsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuilds\", {}).n(\"CodeBuildClient\", \"ListBuildsCommand\").f(void 0, void 0).ser(se_ListBuildsCommand).de(de_ListBuildsCommand).build() {\n static {\n __name(this, \"ListBuildsCommand\");\n }\n};\n\n// src/commands/ListBuildsForProjectCommand.ts\n\n\n\nvar ListBuildsForProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuildsForProject\", {}).n(\"CodeBuildClient\", \"ListBuildsForProjectCommand\").f(void 0, void 0).ser(se_ListBuildsForProjectCommand).de(de_ListBuildsForProjectCommand).build() {\n static {\n __name(this, \"ListBuildsForProjectCommand\");\n }\n};\n\n// src/commands/ListCommandExecutionsForSandboxCommand.ts\n\n\n\nvar ListCommandExecutionsForSandboxCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListCommandExecutionsForSandbox\", {}).n(\"CodeBuildClient\", \"ListCommandExecutionsForSandboxCommand\").f(ListCommandExecutionsForSandboxInputFilterSensitiveLog, ListCommandExecutionsForSandboxOutputFilterSensitiveLog).ser(se_ListCommandExecutionsForSandboxCommand).de(de_ListCommandExecutionsForSandboxCommand).build() {\n static {\n __name(this, \"ListCommandExecutionsForSandboxCommand\");\n }\n};\n\n// src/commands/ListCuratedEnvironmentImagesCommand.ts\n\n\n\nvar ListCuratedEnvironmentImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListCuratedEnvironmentImages\", {}).n(\"CodeBuildClient\", \"ListCuratedEnvironmentImagesCommand\").f(void 0, void 0).ser(se_ListCuratedEnvironmentImagesCommand).de(de_ListCuratedEnvironmentImagesCommand).build() {\n static {\n __name(this, \"ListCuratedEnvironmentImagesCommand\");\n }\n};\n\n// src/commands/ListFleetsCommand.ts\n\n\n\nvar ListFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListFleets\", {}).n(\"CodeBuildClient\", \"ListFleetsCommand\").f(ListFleetsInputFilterSensitiveLog, void 0).ser(se_ListFleetsCommand).de(de_ListFleetsCommand).build() {\n static {\n __name(this, \"ListFleetsCommand\");\n }\n};\n\n// src/commands/ListProjectsCommand.ts\n\n\n\nvar ListProjectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListProjects\", {}).n(\"CodeBuildClient\", \"ListProjectsCommand\").f(void 0, void 0).ser(se_ListProjectsCommand).de(de_ListProjectsCommand).build() {\n static {\n __name(this, \"ListProjectsCommand\");\n }\n};\n\n// src/commands/ListReportGroupsCommand.ts\n\n\n\nvar ListReportGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListReportGroups\", {}).n(\"CodeBuildClient\", \"ListReportGroupsCommand\").f(void 0, void 0).ser(se_ListReportGroupsCommand).de(de_ListReportGroupsCommand).build() {\n static {\n __name(this, \"ListReportGroupsCommand\");\n }\n};\n\n// src/commands/ListReportsCommand.ts\n\n\n\nvar ListReportsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListReports\", {}).n(\"CodeBuildClient\", \"ListReportsCommand\").f(void 0, void 0).ser(se_ListReportsCommand).de(de_ListReportsCommand).build() {\n static {\n __name(this, \"ListReportsCommand\");\n }\n};\n\n// src/commands/ListReportsForReportGroupCommand.ts\n\n\n\nvar ListReportsForReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListReportsForReportGroup\", {}).n(\"CodeBuildClient\", \"ListReportsForReportGroupCommand\").f(void 0, void 0).ser(se_ListReportsForReportGroupCommand).de(de_ListReportsForReportGroupCommand).build() {\n static {\n __name(this, \"ListReportsForReportGroupCommand\");\n }\n};\n\n// src/commands/ListSandboxesCommand.ts\n\n\n\nvar ListSandboxesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSandboxes\", {}).n(\"CodeBuildClient\", \"ListSandboxesCommand\").f(void 0, void 0).ser(se_ListSandboxesCommand).de(de_ListSandboxesCommand).build() {\n static {\n __name(this, \"ListSandboxesCommand\");\n }\n};\n\n// src/commands/ListSandboxesForProjectCommand.ts\n\n\n\nvar ListSandboxesForProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSandboxesForProject\", {}).n(\"CodeBuildClient\", \"ListSandboxesForProjectCommand\").f(ListSandboxesForProjectInputFilterSensitiveLog, void 0).ser(se_ListSandboxesForProjectCommand).de(de_ListSandboxesForProjectCommand).build() {\n static {\n __name(this, \"ListSandboxesForProjectCommand\");\n }\n};\n\n// src/commands/ListSharedProjectsCommand.ts\n\n\n\nvar ListSharedProjectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSharedProjects\", {}).n(\"CodeBuildClient\", \"ListSharedProjectsCommand\").f(void 0, void 0).ser(se_ListSharedProjectsCommand).de(de_ListSharedProjectsCommand).build() {\n static {\n __name(this, \"ListSharedProjectsCommand\");\n }\n};\n\n// src/commands/ListSharedReportGroupsCommand.ts\n\n\n\nvar ListSharedReportGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSharedReportGroups\", {}).n(\"CodeBuildClient\", \"ListSharedReportGroupsCommand\").f(void 0, void 0).ser(se_ListSharedReportGroupsCommand).de(de_ListSharedReportGroupsCommand).build() {\n static {\n __name(this, \"ListSharedReportGroupsCommand\");\n }\n};\n\n// src/commands/ListSourceCredentialsCommand.ts\n\n\n\nvar ListSourceCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSourceCredentials\", {}).n(\"CodeBuildClient\", \"ListSourceCredentialsCommand\").f(void 0, void 0).ser(se_ListSourceCredentialsCommand).de(de_ListSourceCredentialsCommand).build() {\n static {\n __name(this, \"ListSourceCredentialsCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"PutResourcePolicy\", {}).n(\"CodeBuildClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/RetryBuildBatchCommand.ts\n\n\n\nvar RetryBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"RetryBuildBatch\", {}).n(\"CodeBuildClient\", \"RetryBuildBatchCommand\").f(void 0, void 0).ser(se_RetryBuildBatchCommand).de(de_RetryBuildBatchCommand).build() {\n static {\n __name(this, \"RetryBuildBatchCommand\");\n }\n};\n\n// src/commands/RetryBuildCommand.ts\n\n\n\nvar RetryBuildCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"RetryBuild\", {}).n(\"CodeBuildClient\", \"RetryBuildCommand\").f(void 0, void 0).ser(se_RetryBuildCommand).de(de_RetryBuildCommand).build() {\n static {\n __name(this, \"RetryBuildCommand\");\n }\n};\n\n// src/commands/StartBuildBatchCommand.ts\n\n\n\nvar StartBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartBuildBatch\", {}).n(\"CodeBuildClient\", \"StartBuildBatchCommand\").f(void 0, void 0).ser(se_StartBuildBatchCommand).de(de_StartBuildBatchCommand).build() {\n static {\n __name(this, \"StartBuildBatchCommand\");\n }\n};\n\n// src/commands/StartBuildCommand.ts\n\n\n\nvar StartBuildCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartBuild\", {}).n(\"CodeBuildClient\", \"StartBuildCommand\").f(void 0, void 0).ser(se_StartBuildCommand).de(de_StartBuildCommand).build() {\n static {\n __name(this, \"StartBuildCommand\");\n }\n};\n\n// src/commands/StartCommandExecutionCommand.ts\n\n\n\nvar StartCommandExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartCommandExecution\", {}).n(\"CodeBuildClient\", \"StartCommandExecutionCommand\").f(StartCommandExecutionInputFilterSensitiveLog, StartCommandExecutionOutputFilterSensitiveLog).ser(se_StartCommandExecutionCommand).de(de_StartCommandExecutionCommand).build() {\n static {\n __name(this, \"StartCommandExecutionCommand\");\n }\n};\n\n// src/commands/StartSandboxCommand.ts\n\n\n\nvar StartSandboxCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartSandbox\", {}).n(\"CodeBuildClient\", \"StartSandboxCommand\").f(StartSandboxInputFilterSensitiveLog, void 0).ser(se_StartSandboxCommand).de(de_StartSandboxCommand).build() {\n static {\n __name(this, \"StartSandboxCommand\");\n }\n};\n\n// src/commands/StartSandboxConnectionCommand.ts\n\n\n\nvar StartSandboxConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartSandboxConnection\", {}).n(\"CodeBuildClient\", \"StartSandboxConnectionCommand\").f(void 0, void 0).ser(se_StartSandboxConnectionCommand).de(de_StartSandboxConnectionCommand).build() {\n static {\n __name(this, \"StartSandboxConnectionCommand\");\n }\n};\n\n// src/commands/StopBuildBatchCommand.ts\n\n\n\nvar StopBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StopBuildBatch\", {}).n(\"CodeBuildClient\", \"StopBuildBatchCommand\").f(void 0, void 0).ser(se_StopBuildBatchCommand).de(de_StopBuildBatchCommand).build() {\n static {\n __name(this, \"StopBuildBatchCommand\");\n }\n};\n\n// src/commands/StopBuildCommand.ts\n\n\n\nvar StopBuildCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StopBuild\", {}).n(\"CodeBuildClient\", \"StopBuildCommand\").f(void 0, void 0).ser(se_StopBuildCommand).de(de_StopBuildCommand).build() {\n static {\n __name(this, \"StopBuildCommand\");\n }\n};\n\n// src/commands/StopSandboxCommand.ts\n\n\n\nvar StopSandboxCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StopSandbox\", {}).n(\"CodeBuildClient\", \"StopSandboxCommand\").f(void 0, void 0).ser(se_StopSandboxCommand).de(de_StopSandboxCommand).build() {\n static {\n __name(this, \"StopSandboxCommand\");\n }\n};\n\n// src/commands/UpdateFleetCommand.ts\n\n\n\nvar UpdateFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateFleet\", {}).n(\"CodeBuildClient\", \"UpdateFleetCommand\").f(void 0, void 0).ser(se_UpdateFleetCommand).de(de_UpdateFleetCommand).build() {\n static {\n __name(this, \"UpdateFleetCommand\");\n }\n};\n\n// src/commands/UpdateProjectCommand.ts\n\n\n\nvar UpdateProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateProject\", {}).n(\"CodeBuildClient\", \"UpdateProjectCommand\").f(void 0, void 0).ser(se_UpdateProjectCommand).de(de_UpdateProjectCommand).build() {\n static {\n __name(this, \"UpdateProjectCommand\");\n }\n};\n\n// src/commands/UpdateProjectVisibilityCommand.ts\n\n\n\nvar UpdateProjectVisibilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateProjectVisibility\", {}).n(\"CodeBuildClient\", \"UpdateProjectVisibilityCommand\").f(void 0, void 0).ser(se_UpdateProjectVisibilityCommand).de(de_UpdateProjectVisibilityCommand).build() {\n static {\n __name(this, \"UpdateProjectVisibilityCommand\");\n }\n};\n\n// src/commands/UpdateReportGroupCommand.ts\n\n\n\nvar UpdateReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateReportGroup\", {}).n(\"CodeBuildClient\", \"UpdateReportGroupCommand\").f(void 0, void 0).ser(se_UpdateReportGroupCommand).de(de_UpdateReportGroupCommand).build() {\n static {\n __name(this, \"UpdateReportGroupCommand\");\n }\n};\n\n// src/commands/UpdateWebhookCommand.ts\n\n\n\nvar UpdateWebhookCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateWebhook\", {}).n(\"CodeBuildClient\", \"UpdateWebhookCommand\").f(void 0, void 0).ser(se_UpdateWebhookCommand).de(de_UpdateWebhookCommand).build() {\n static {\n __name(this, \"UpdateWebhookCommand\");\n }\n};\n\n// src/CodeBuild.ts\nvar commands = {\n BatchDeleteBuildsCommand,\n BatchGetBuildBatchesCommand,\n BatchGetBuildsCommand,\n BatchGetCommandExecutionsCommand,\n BatchGetFleetsCommand,\n BatchGetProjectsCommand,\n BatchGetReportGroupsCommand,\n BatchGetReportsCommand,\n BatchGetSandboxesCommand,\n CreateFleetCommand,\n CreateProjectCommand,\n CreateReportGroupCommand,\n CreateWebhookCommand,\n DeleteBuildBatchCommand,\n DeleteFleetCommand,\n DeleteProjectCommand,\n DeleteReportCommand,\n DeleteReportGroupCommand,\n DeleteResourcePolicyCommand,\n DeleteSourceCredentialsCommand,\n DeleteWebhookCommand,\n DescribeCodeCoveragesCommand,\n DescribeTestCasesCommand,\n GetReportGroupTrendCommand,\n GetResourcePolicyCommand,\n ImportSourceCredentialsCommand,\n InvalidateProjectCacheCommand,\n ListBuildBatchesCommand,\n ListBuildBatchesForProjectCommand,\n ListBuildsCommand,\n ListBuildsForProjectCommand,\n ListCommandExecutionsForSandboxCommand,\n ListCuratedEnvironmentImagesCommand,\n ListFleetsCommand,\n ListProjectsCommand,\n ListReportGroupsCommand,\n ListReportsCommand,\n ListReportsForReportGroupCommand,\n ListSandboxesCommand,\n ListSandboxesForProjectCommand,\n ListSharedProjectsCommand,\n ListSharedReportGroupsCommand,\n ListSourceCredentialsCommand,\n PutResourcePolicyCommand,\n RetryBuildCommand,\n RetryBuildBatchCommand,\n StartBuildCommand,\n StartBuildBatchCommand,\n StartCommandExecutionCommand,\n StartSandboxCommand,\n StartSandboxConnectionCommand,\n StopBuildCommand,\n StopBuildBatchCommand,\n StopSandboxCommand,\n UpdateFleetCommand,\n UpdateProjectCommand,\n UpdateProjectVisibilityCommand,\n UpdateReportGroupCommand,\n UpdateWebhookCommand\n};\nvar CodeBuild = class extends CodeBuildClient {\n static {\n __name(this, \"CodeBuild\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CodeBuild);\n\n// src/pagination/DescribeCodeCoveragesPaginator.ts\n\nvar paginateDescribeCodeCoverages = (0, import_core.createPaginator)(CodeBuildClient, DescribeCodeCoveragesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeTestCasesPaginator.ts\n\nvar paginateDescribeTestCases = (0, import_core.createPaginator)(CodeBuildClient, DescribeTestCasesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListBuildBatchesForProjectPaginator.ts\n\nvar paginateListBuildBatchesForProject = (0, import_core.createPaginator)(CodeBuildClient, ListBuildBatchesForProjectCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListBuildBatchesPaginator.ts\n\nvar paginateListBuildBatches = (0, import_core.createPaginator)(CodeBuildClient, ListBuildBatchesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListBuildsForProjectPaginator.ts\n\nvar paginateListBuildsForProject = (0, import_core.createPaginator)(CodeBuildClient, ListBuildsForProjectCommand, \"nextToken\", \"nextToken\", \"\");\n\n// src/pagination/ListBuildsPaginator.ts\n\nvar paginateListBuilds = (0, import_core.createPaginator)(CodeBuildClient, ListBuildsCommand, \"nextToken\", \"nextToken\", \"\");\n\n// src/pagination/ListCommandExecutionsForSandboxPaginator.ts\n\nvar paginateListCommandExecutionsForSandbox = (0, import_core.createPaginator)(CodeBuildClient, ListCommandExecutionsForSandboxCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListFleetsPaginator.ts\n\nvar paginateListFleets = (0, import_core.createPaginator)(CodeBuildClient, ListFleetsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListProjectsPaginator.ts\n\nvar paginateListProjects = (0, import_core.createPaginator)(CodeBuildClient, ListProjectsCommand, \"nextToken\", \"nextToken\", \"\");\n\n// src/pagination/ListReportGroupsPaginator.ts\n\nvar paginateListReportGroups = (0, import_core.createPaginator)(CodeBuildClient, ListReportGroupsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListReportsForReportGroupPaginator.ts\n\nvar paginateListReportsForReportGroup = (0, import_core.createPaginator)(CodeBuildClient, ListReportsForReportGroupCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListReportsPaginator.ts\n\nvar paginateListReports = (0, import_core.createPaginator)(CodeBuildClient, ListReportsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSandboxesForProjectPaginator.ts\n\nvar paginateListSandboxesForProject = (0, import_core.createPaginator)(CodeBuildClient, ListSandboxesForProjectCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSandboxesPaginator.ts\n\nvar paginateListSandboxes = (0, import_core.createPaginator)(CodeBuildClient, ListSandboxesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSharedProjectsPaginator.ts\n\nvar paginateListSharedProjects = (0, import_core.createPaginator)(CodeBuildClient, ListSharedProjectsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSharedReportGroupsPaginator.ts\n\nvar paginateListSharedReportGroups = (0, import_core.createPaginator)(CodeBuildClient, ListSharedReportGroupsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CodeBuildServiceException,\n __Client,\n CodeBuildClient,\n CodeBuild,\n $Command,\n BatchDeleteBuildsCommand,\n BatchGetBuildBatchesCommand,\n BatchGetBuildsCommand,\n BatchGetCommandExecutionsCommand,\n BatchGetFleetsCommand,\n BatchGetProjectsCommand,\n BatchGetReportGroupsCommand,\n BatchGetReportsCommand,\n BatchGetSandboxesCommand,\n CreateFleetCommand,\n CreateProjectCommand,\n CreateReportGroupCommand,\n CreateWebhookCommand,\n DeleteBuildBatchCommand,\n DeleteFleetCommand,\n DeleteProjectCommand,\n DeleteReportCommand,\n DeleteReportGroupCommand,\n DeleteResourcePolicyCommand,\n DeleteSourceCredentialsCommand,\n DeleteWebhookCommand,\n DescribeCodeCoveragesCommand,\n DescribeTestCasesCommand,\n GetReportGroupTrendCommand,\n GetResourcePolicyCommand,\n ImportSourceCredentialsCommand,\n InvalidateProjectCacheCommand,\n ListBuildBatchesCommand,\n ListBuildBatchesForProjectCommand,\n ListBuildsCommand,\n ListBuildsForProjectCommand,\n ListCommandExecutionsForSandboxCommand,\n ListCuratedEnvironmentImagesCommand,\n ListFleetsCommand,\n ListProjectsCommand,\n ListReportGroupsCommand,\n ListReportsCommand,\n ListReportsForReportGroupCommand,\n ListSandboxesCommand,\n ListSandboxesForProjectCommand,\n ListSharedProjectsCommand,\n ListSharedReportGroupsCommand,\n ListSourceCredentialsCommand,\n PutResourcePolicyCommand,\n RetryBuildBatchCommand,\n RetryBuildCommand,\n StartBuildBatchCommand,\n StartBuildCommand,\n StartCommandExecutionCommand,\n StartSandboxCommand,\n StartSandboxConnectionCommand,\n StopBuildBatchCommand,\n StopBuildCommand,\n StopSandboxCommand,\n UpdateFleetCommand,\n UpdateProjectCommand,\n UpdateProjectVisibilityCommand,\n UpdateReportGroupCommand,\n UpdateWebhookCommand,\n paginateDescribeCodeCoverages,\n paginateDescribeTestCases,\n paginateListBuildBatchesForProject,\n paginateListBuildBatches,\n paginateListBuildsForProject,\n paginateListBuilds,\n paginateListCommandExecutionsForSandbox,\n paginateListFleets,\n paginateListProjects,\n paginateListReportGroups,\n paginateListReportsForReportGroup,\n paginateListReports,\n paginateListSandboxesForProject,\n paginateListSandboxes,\n paginateListSharedProjects,\n paginateListSharedReportGroups,\n AccountLimitExceededException,\n AccountSuspendedException,\n ArtifactNamespace,\n ArtifactPackaging,\n ArtifactsType,\n AuthType,\n InvalidInputException,\n BucketOwnerAccess,\n BatchReportModeType,\n StatusType,\n CacheMode,\n CacheType,\n MachineType,\n ComputeType,\n EnvironmentVariableType,\n ImagePullCredentialsType,\n CredentialProviderType,\n EnvironmentType,\n FileSystemType,\n LogsConfigStatusType,\n BuildBatchPhaseType,\n SourceAuthType,\n SourceType,\n BuildPhaseType,\n CommandType,\n FleetOverflowBehavior,\n FleetProxyRuleBehavior,\n FleetProxyRuleEffectType,\n FleetProxyRuleType,\n FleetScalingType,\n FleetScalingMetricType,\n FleetContextCode,\n FleetStatusCode,\n ProjectVisibilityType,\n WebhookBuildType,\n WebhookFilterType,\n WebhookScopeType,\n WebhookStatus,\n ReportExportConfigType,\n ReportPackagingType,\n ReportGroupStatusType,\n ReportType,\n ReportStatusType,\n ResourceAlreadyExistsException,\n OAuthProviderException,\n ResourceNotFoundException,\n ReportCodeCoverageSortByType,\n SortOrderType,\n ReportGroupTrendFieldType,\n ServerType,\n LanguageType,\n PlatformType,\n FleetSortByType,\n ProjectSortByType,\n ReportGroupSortByType,\n SharedResourceSortByType,\n RetryBuildBatchType,\n CommandExecutionFilterSensitiveLog,\n BatchGetCommandExecutionsOutputFilterSensitiveLog,\n ImportSourceCredentialsInputFilterSensitiveLog,\n ListCommandExecutionsForSandboxInputFilterSensitiveLog,\n ListCommandExecutionsForSandboxOutputFilterSensitiveLog,\n ListFleetsInputFilterSensitiveLog,\n ListSandboxesForProjectInputFilterSensitiveLog,\n StartCommandExecutionInputFilterSensitiveLog,\n StartCommandExecutionOutputFilterSensitiveLog,\n StartSandboxInputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2016-10-06\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCodeBuildHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"CodeBuild\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCognitoIdentityHttpAuthSchemeProvider = exports.defaultCognitoIdentityHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCognitoIdentityHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCognitoIdentityHttpAuthSchemeParametersProvider = defaultCognitoIdentityHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cognito-identity\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultCognitoIdentityHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetCredentialsForIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"GetId\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"GetOpenIdToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"UnlinkIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCognitoIdentityHttpAuthSchemeProvider = defaultCognitoIdentityHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst w = \"required\", x = \"fn\", y = \"argv\", z = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = \"stringEquals\", j = { [w]: false, \"type\": \"String\" }, k = { [w]: true, \"default\": false, \"type\": \"Boolean\" }, l = { [z]: \"Endpoint\" }, m = { [x]: c, [y]: [{ [z]: \"UseFIPS\" }, true] }, n = { [x]: c, [y]: [{ [z]: \"UseDualStack\" }, true] }, o = {}, p = { [z]: \"Region\" }, q = { [x]: h, [y]: [{ [z]: g }, \"supportsFIPS\"] }, r = { [z]: g }, s = { [x]: c, [y]: [true, { [x]: h, [y]: [r, \"supportsDualStack\"] }] }, t = [m], u = [n], v = [p];\nconst _data = { version: \"1.0\", parameters: { Region: j, UseDualStack: k, UseFIPS: k, Endpoint: j }, rules: [{ conditions: [{ [x]: b, [y]: [l] }], rules: [{ conditions: t, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: u, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: l, properties: o, headers: o }, type: e }], type: f }, { conditions: [{ [x]: b, [y]: v }], rules: [{ conditions: [{ [x]: \"aws.partition\", [y]: v, assign: g }], rules: [{ conditions: [m, n], rules: [{ conditions: [{ [x]: c, [y]: [a, q] }, s], rules: [{ conditions: [{ [x]: i, [y]: [p, \"us-east-1\"] }], endpoint: { url: \"https://cognito-identity-fips.us-east-1.amazonaws.com\", properties: o, headers: o }, type: e }, { conditions: [{ [x]: i, [y]: [p, \"us-east-2\"] }], endpoint: { url: \"https://cognito-identity-fips.us-east-2.amazonaws.com\", properties: o, headers: o }, type: e }, { conditions: [{ [x]: i, [y]: [p, \"us-west-1\"] }], endpoint: { url: \"https://cognito-identity-fips.us-west-1.amazonaws.com\", properties: o, headers: o }, type: e }, { conditions: [{ [x]: i, [y]: [p, \"us-west-2\"] }], endpoint: { url: \"https://cognito-identity-fips.us-west-2.amazonaws.com\", properties: o, headers: o }, type: e }, { endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: o, headers: o }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: t, rules: [{ conditions: [{ [x]: c, [y]: [q, a] }], rules: [{ endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: o, headers: o }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: u, rules: [{ conditions: [s], rules: [{ conditions: [{ [x]: i, [y]: [\"aws\", { [x]: h, [y]: [r, \"name\"] }] }], endpoint: { url: \"https://cognito-identity.{Region}.amazonaws.com\", properties: o, headers: o }, type: e }, { endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: o, headers: o }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}\", properties: o, headers: o }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AmbiguousRoleResolutionType: () => AmbiguousRoleResolutionType,\n CognitoIdentity: () => CognitoIdentity,\n CognitoIdentityClient: () => CognitoIdentityClient,\n CognitoIdentityServiceException: () => CognitoIdentityServiceException,\n ConcurrentModificationException: () => ConcurrentModificationException,\n CreateIdentityPoolCommand: () => CreateIdentityPoolCommand,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n DeleteIdentitiesCommand: () => DeleteIdentitiesCommand,\n DeleteIdentityPoolCommand: () => DeleteIdentityPoolCommand,\n DescribeIdentityCommand: () => DescribeIdentityCommand,\n DescribeIdentityPoolCommand: () => DescribeIdentityPoolCommand,\n DeveloperUserAlreadyRegisteredException: () => DeveloperUserAlreadyRegisteredException,\n ErrorCode: () => ErrorCode,\n ExternalServiceException: () => ExternalServiceException,\n GetCredentialsForIdentityCommand: () => GetCredentialsForIdentityCommand,\n GetCredentialsForIdentityInputFilterSensitiveLog: () => GetCredentialsForIdentityInputFilterSensitiveLog,\n GetCredentialsForIdentityResponseFilterSensitiveLog: () => GetCredentialsForIdentityResponseFilterSensitiveLog,\n GetIdCommand: () => GetIdCommand,\n GetIdInputFilterSensitiveLog: () => GetIdInputFilterSensitiveLog,\n GetIdentityPoolRolesCommand: () => GetIdentityPoolRolesCommand,\n GetOpenIdTokenCommand: () => GetOpenIdTokenCommand,\n GetOpenIdTokenForDeveloperIdentityCommand: () => GetOpenIdTokenForDeveloperIdentityCommand,\n GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog: () => GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog: () => GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog,\n GetOpenIdTokenInputFilterSensitiveLog: () => GetOpenIdTokenInputFilterSensitiveLog,\n GetOpenIdTokenResponseFilterSensitiveLog: () => GetOpenIdTokenResponseFilterSensitiveLog,\n GetPrincipalTagAttributeMapCommand: () => GetPrincipalTagAttributeMapCommand,\n InternalErrorException: () => InternalErrorException,\n InvalidIdentityPoolConfigurationException: () => InvalidIdentityPoolConfigurationException,\n InvalidParameterException: () => InvalidParameterException,\n LimitExceededException: () => LimitExceededException,\n ListIdentitiesCommand: () => ListIdentitiesCommand,\n ListIdentityPoolsCommand: () => ListIdentityPoolsCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n LookupDeveloperIdentityCommand: () => LookupDeveloperIdentityCommand,\n MappingRuleMatchType: () => MappingRuleMatchType,\n MergeDeveloperIdentitiesCommand: () => MergeDeveloperIdentitiesCommand,\n NotAuthorizedException: () => NotAuthorizedException,\n ResourceConflictException: () => ResourceConflictException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleMappingType: () => RoleMappingType,\n SetIdentityPoolRolesCommand: () => SetIdentityPoolRolesCommand,\n SetPrincipalTagAttributeMapCommand: () => SetPrincipalTagAttributeMapCommand,\n TagResourceCommand: () => TagResourceCommand,\n TooManyRequestsException: () => TooManyRequestsException,\n UnlinkDeveloperIdentityCommand: () => UnlinkDeveloperIdentityCommand,\n UnlinkIdentityCommand: () => UnlinkIdentityCommand,\n UnlinkIdentityInputFilterSensitiveLog: () => UnlinkIdentityInputFilterSensitiveLog,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateIdentityPoolCommand: () => UpdateIdentityPoolCommand,\n __Client: () => import_smithy_client.Client,\n paginateListIdentityPools: () => paginateListIdentityPools\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CognitoIdentityClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cognito-identity\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CognitoIdentityClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CognitoIdentityClient.ts\nvar CognitoIdentityClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CognitoIdentityClient\");\n }\n /**\n * The resolved configuration of CognitoIdentityClient class. This is resolved and normalized from the {@link CognitoIdentityClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCognitoIdentityHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CognitoIdentity.ts\n\n\n// src/commands/CreateIdentityPoolCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/CognitoIdentityServiceException.ts\n\nvar CognitoIdentityServiceException = class _CognitoIdentityServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CognitoIdentityServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CognitoIdentityServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AmbiguousRoleResolutionType = {\n AUTHENTICATED_ROLE: \"AuthenticatedRole\",\n DENY: \"Deny\"\n};\nvar InternalErrorException = class _InternalErrorException extends CognitoIdentityServiceException {\n static {\n __name(this, \"InternalErrorException\");\n }\n name = \"InternalErrorException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalErrorException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalErrorException.prototype);\n }\n};\nvar InvalidParameterException = class _InvalidParameterException extends CognitoIdentityServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends CognitoIdentityServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar NotAuthorizedException = class _NotAuthorizedException extends CognitoIdentityServiceException {\n static {\n __name(this, \"NotAuthorizedException\");\n }\n name = \"NotAuthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotAuthorizedException.prototype);\n }\n};\nvar ResourceConflictException = class _ResourceConflictException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ResourceConflictException\");\n }\n name = \"ResourceConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceConflictException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends CognitoIdentityServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar ErrorCode = {\n ACCESS_DENIED: \"AccessDenied\",\n INTERNAL_SERVER_ERROR: \"InternalServerError\"\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ExternalServiceException = class _ExternalServiceException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ExternalServiceException\");\n }\n name = \"ExternalServiceException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExternalServiceException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExternalServiceException.prototype);\n }\n};\nvar InvalidIdentityPoolConfigurationException = class _InvalidIdentityPoolConfigurationException extends CognitoIdentityServiceException {\n static {\n __name(this, \"InvalidIdentityPoolConfigurationException\");\n }\n name = \"InvalidIdentityPoolConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityPoolConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityPoolConfigurationException.prototype);\n }\n};\nvar MappingRuleMatchType = {\n CONTAINS: \"Contains\",\n EQUALS: \"Equals\",\n NOT_EQUAL: \"NotEqual\",\n STARTS_WITH: \"StartsWith\"\n};\nvar RoleMappingType = {\n RULES: \"Rules\",\n TOKEN: \"Token\"\n};\nvar DeveloperUserAlreadyRegisteredException = class _DeveloperUserAlreadyRegisteredException extends CognitoIdentityServiceException {\n static {\n __name(this, \"DeveloperUserAlreadyRegisteredException\");\n }\n name = \"DeveloperUserAlreadyRegisteredException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DeveloperUserAlreadyRegisteredException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DeveloperUserAlreadyRegisteredException.prototype);\n }\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n }\n};\nvar GetCredentialsForIdentityInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetCredentialsForIdentityInputFilterSensitiveLog\");\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretKey && { SecretKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar GetCredentialsForIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetCredentialsForIdentityResponseFilterSensitiveLog\");\nvar GetIdInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetIdInputFilterSensitiveLog\");\nvar GetOpenIdTokenInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenInputFilterSensitiveLog\");\nvar GetOpenIdTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Token && { Token: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenResponseFilterSensitiveLog\");\nvar GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog\");\nvar GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Token && { Token: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog\");\nvar UnlinkIdentityInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"UnlinkIdentityInputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_CreateIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIdentityPoolCommand\");\nvar se_DeleteIdentitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIdentities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIdentitiesCommand\");\nvar se_DeleteIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIdentityPoolCommand\");\nvar se_DescribeIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdentityCommand\");\nvar se_DescribeIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdentityPoolCommand\");\nvar se_GetCredentialsForIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetCredentialsForIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCredentialsForIdentityCommand\");\nvar se_GetIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetId\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIdCommand\");\nvar se_GetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetIdentityPoolRoles\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIdentityPoolRolesCommand\");\nvar se_GetOpenIdTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpenIdToken\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpenIdTokenCommand\");\nvar se_GetOpenIdTokenForDeveloperIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpenIdTokenForDeveloperIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpenIdTokenForDeveloperIdentityCommand\");\nvar se_GetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPrincipalTagAttributeMap\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPrincipalTagAttributeMapCommand\");\nvar se_ListIdentitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListIdentities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListIdentitiesCommand\");\nvar se_ListIdentityPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListIdentityPools\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListIdentityPoolsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_LookupDeveloperIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"LookupDeveloperIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_LookupDeveloperIdentityCommand\");\nvar se_MergeDeveloperIdentitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"MergeDeveloperIdentities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MergeDeveloperIdentitiesCommand\");\nvar se_SetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SetIdentityPoolRoles\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetIdentityPoolRolesCommand\");\nvar se_SetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SetPrincipalTagAttributeMap\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetPrincipalTagAttributeMapCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UnlinkDeveloperIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UnlinkDeveloperIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlinkDeveloperIdentityCommand\");\nvar se_UnlinkIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UnlinkIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlinkIdentityCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateIdentityPoolCommand\");\nvar de_CreateIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIdentityPoolCommand\");\nvar de_DeleteIdentitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIdentitiesCommand\");\nvar de_DeleteIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteIdentityPoolCommand\");\nvar de_DescribeIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_IdentityDescription(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdentityCommand\");\nvar de_DescribeIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdentityPoolCommand\");\nvar de_GetCredentialsForIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetCredentialsForIdentityResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCredentialsForIdentityCommand\");\nvar de_GetIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIdCommand\");\nvar de_GetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIdentityPoolRolesCommand\");\nvar de_GetOpenIdTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpenIdTokenCommand\");\nvar de_GetOpenIdTokenForDeveloperIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpenIdTokenForDeveloperIdentityCommand\");\nvar de_GetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPrincipalTagAttributeMapCommand\");\nvar de_ListIdentitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListIdentitiesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListIdentitiesCommand\");\nvar de_ListIdentityPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListIdentityPoolsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_LookupDeveloperIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_LookupDeveloperIdentityCommand\");\nvar de_MergeDeveloperIdentitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MergeDeveloperIdentitiesCommand\");\nvar de_SetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SetIdentityPoolRolesCommand\");\nvar de_SetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetPrincipalTagAttributeMapCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UnlinkDeveloperIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UnlinkDeveloperIdentityCommand\");\nvar de_UnlinkIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UnlinkIdentityCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateIdentityPoolCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await de_ExternalServiceExceptionRes(parsedOutput, context);\n case \"InvalidIdentityPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\":\n throw await de_InvalidIdentityPoolConfigurationExceptionRes(parsedOutput, context);\n case \"DeveloperUserAlreadyRegisteredException\":\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\":\n throw await de_DeveloperUserAlreadyRegisteredExceptionRes(parsedOutput, context);\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_DeveloperUserAlreadyRegisteredExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DeveloperUserAlreadyRegisteredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DeveloperUserAlreadyRegisteredExceptionRes\");\nvar de_ExternalServiceExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExternalServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExternalServiceExceptionRes\");\nvar de_InternalErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InternalErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InternalErrorExceptionRes\");\nvar de_InvalidIdentityPoolConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidIdentityPoolConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityPoolConfigurationExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_NotAuthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotAuthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotAuthorizedExceptionRes\");\nvar de_ResourceConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceConflictExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AccessKeyId: import_smithy_client.expectString,\n Expiration: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"Expiration\"),\n SecretKey: import_smithy_client.expectString,\n SessionToken: import_smithy_client.expectString\n });\n}, \"de_Credentials\");\nvar de_GetCredentialsForIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Credentials: /* @__PURE__ */ __name((_) => de_Credentials(_, context), \"Credentials\"),\n IdentityId: import_smithy_client.expectString\n });\n}, \"de_GetCredentialsForIdentityResponse\");\nvar de_IdentitiesList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_IdentityDescription(entry, context);\n });\n return retVal;\n}, \"de_IdentitiesList\");\nvar de_IdentityDescription = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n IdentityId: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n Logins: import_smithy_client._json\n });\n}, \"de_IdentityDescription\");\nvar de_ListIdentitiesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Identities: /* @__PURE__ */ __name((_) => de_IdentitiesList(_, context), \"Identities\"),\n IdentityPoolId: import_smithy_client.expectString,\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListIdentitiesResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CognitoIdentityServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AWSCognitoIdentityService.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CreateIdentityPoolCommand.ts\nvar CreateIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"CreateIdentityPool\", {}).n(\"CognitoIdentityClient\", \"CreateIdentityPoolCommand\").f(void 0, void 0).ser(se_CreateIdentityPoolCommand).de(de_CreateIdentityPoolCommand).build() {\n static {\n __name(this, \"CreateIdentityPoolCommand\");\n }\n};\n\n// src/commands/DeleteIdentitiesCommand.ts\n\n\n\nvar DeleteIdentitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DeleteIdentities\", {}).n(\"CognitoIdentityClient\", \"DeleteIdentitiesCommand\").f(void 0, void 0).ser(se_DeleteIdentitiesCommand).de(de_DeleteIdentitiesCommand).build() {\n static {\n __name(this, \"DeleteIdentitiesCommand\");\n }\n};\n\n// src/commands/DeleteIdentityPoolCommand.ts\n\n\n\nvar DeleteIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DeleteIdentityPool\", {}).n(\"CognitoIdentityClient\", \"DeleteIdentityPoolCommand\").f(void 0, void 0).ser(se_DeleteIdentityPoolCommand).de(de_DeleteIdentityPoolCommand).build() {\n static {\n __name(this, \"DeleteIdentityPoolCommand\");\n }\n};\n\n// src/commands/DescribeIdentityCommand.ts\n\n\n\nvar DescribeIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DescribeIdentity\", {}).n(\"CognitoIdentityClient\", \"DescribeIdentityCommand\").f(void 0, void 0).ser(se_DescribeIdentityCommand).de(de_DescribeIdentityCommand).build() {\n static {\n __name(this, \"DescribeIdentityCommand\");\n }\n};\n\n// src/commands/DescribeIdentityPoolCommand.ts\n\n\n\nvar DescribeIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DescribeIdentityPool\", {}).n(\"CognitoIdentityClient\", \"DescribeIdentityPoolCommand\").f(void 0, void 0).ser(se_DescribeIdentityPoolCommand).de(de_DescribeIdentityPoolCommand).build() {\n static {\n __name(this, \"DescribeIdentityPoolCommand\");\n }\n};\n\n// src/commands/GetCredentialsForIdentityCommand.ts\n\n\n\nvar GetCredentialsForIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetCredentialsForIdentity\", {}).n(\"CognitoIdentityClient\", \"GetCredentialsForIdentityCommand\").f(GetCredentialsForIdentityInputFilterSensitiveLog, GetCredentialsForIdentityResponseFilterSensitiveLog).ser(se_GetCredentialsForIdentityCommand).de(de_GetCredentialsForIdentityCommand).build() {\n static {\n __name(this, \"GetCredentialsForIdentityCommand\");\n }\n};\n\n// src/commands/GetIdCommand.ts\n\n\n\nvar GetIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetId\", {}).n(\"CognitoIdentityClient\", \"GetIdCommand\").f(GetIdInputFilterSensitiveLog, void 0).ser(se_GetIdCommand).de(de_GetIdCommand).build() {\n static {\n __name(this, \"GetIdCommand\");\n }\n};\n\n// src/commands/GetIdentityPoolRolesCommand.ts\n\n\n\nvar GetIdentityPoolRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetIdentityPoolRoles\", {}).n(\"CognitoIdentityClient\", \"GetIdentityPoolRolesCommand\").f(void 0, void 0).ser(se_GetIdentityPoolRolesCommand).de(de_GetIdentityPoolRolesCommand).build() {\n static {\n __name(this, \"GetIdentityPoolRolesCommand\");\n }\n};\n\n// src/commands/GetOpenIdTokenCommand.ts\n\n\n\nvar GetOpenIdTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetOpenIdToken\", {}).n(\"CognitoIdentityClient\", \"GetOpenIdTokenCommand\").f(GetOpenIdTokenInputFilterSensitiveLog, GetOpenIdTokenResponseFilterSensitiveLog).ser(se_GetOpenIdTokenCommand).de(de_GetOpenIdTokenCommand).build() {\n static {\n __name(this, \"GetOpenIdTokenCommand\");\n }\n};\n\n// src/commands/GetOpenIdTokenForDeveloperIdentityCommand.ts\n\n\n\nvar GetOpenIdTokenForDeveloperIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetOpenIdTokenForDeveloperIdentity\", {}).n(\"CognitoIdentityClient\", \"GetOpenIdTokenForDeveloperIdentityCommand\").f(\n GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog\n).ser(se_GetOpenIdTokenForDeveloperIdentityCommand).de(de_GetOpenIdTokenForDeveloperIdentityCommand).build() {\n static {\n __name(this, \"GetOpenIdTokenForDeveloperIdentityCommand\");\n }\n};\n\n// src/commands/GetPrincipalTagAttributeMapCommand.ts\n\n\n\nvar GetPrincipalTagAttributeMapCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetPrincipalTagAttributeMap\", {}).n(\"CognitoIdentityClient\", \"GetPrincipalTagAttributeMapCommand\").f(void 0, void 0).ser(se_GetPrincipalTagAttributeMapCommand).de(de_GetPrincipalTagAttributeMapCommand).build() {\n static {\n __name(this, \"GetPrincipalTagAttributeMapCommand\");\n }\n};\n\n// src/commands/ListIdentitiesCommand.ts\n\n\n\nvar ListIdentitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"ListIdentities\", {}).n(\"CognitoIdentityClient\", \"ListIdentitiesCommand\").f(void 0, void 0).ser(se_ListIdentitiesCommand).de(de_ListIdentitiesCommand).build() {\n static {\n __name(this, \"ListIdentitiesCommand\");\n }\n};\n\n// src/commands/ListIdentityPoolsCommand.ts\n\n\n\nvar ListIdentityPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"ListIdentityPools\", {}).n(\"CognitoIdentityClient\", \"ListIdentityPoolsCommand\").f(void 0, void 0).ser(se_ListIdentityPoolsCommand).de(de_ListIdentityPoolsCommand).build() {\n static {\n __name(this, \"ListIdentityPoolsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"ListTagsForResource\", {}).n(\"CognitoIdentityClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/LookupDeveloperIdentityCommand.ts\n\n\n\nvar LookupDeveloperIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"LookupDeveloperIdentity\", {}).n(\"CognitoIdentityClient\", \"LookupDeveloperIdentityCommand\").f(void 0, void 0).ser(se_LookupDeveloperIdentityCommand).de(de_LookupDeveloperIdentityCommand).build() {\n static {\n __name(this, \"LookupDeveloperIdentityCommand\");\n }\n};\n\n// src/commands/MergeDeveloperIdentitiesCommand.ts\n\n\n\nvar MergeDeveloperIdentitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"MergeDeveloperIdentities\", {}).n(\"CognitoIdentityClient\", \"MergeDeveloperIdentitiesCommand\").f(void 0, void 0).ser(se_MergeDeveloperIdentitiesCommand).de(de_MergeDeveloperIdentitiesCommand).build() {\n static {\n __name(this, \"MergeDeveloperIdentitiesCommand\");\n }\n};\n\n// src/commands/SetIdentityPoolRolesCommand.ts\n\n\n\nvar SetIdentityPoolRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"SetIdentityPoolRoles\", {}).n(\"CognitoIdentityClient\", \"SetIdentityPoolRolesCommand\").f(void 0, void 0).ser(se_SetIdentityPoolRolesCommand).de(de_SetIdentityPoolRolesCommand).build() {\n static {\n __name(this, \"SetIdentityPoolRolesCommand\");\n }\n};\n\n// src/commands/SetPrincipalTagAttributeMapCommand.ts\n\n\n\nvar SetPrincipalTagAttributeMapCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"SetPrincipalTagAttributeMap\", {}).n(\"CognitoIdentityClient\", \"SetPrincipalTagAttributeMapCommand\").f(void 0, void 0).ser(se_SetPrincipalTagAttributeMapCommand).de(de_SetPrincipalTagAttributeMapCommand).build() {\n static {\n __name(this, \"SetPrincipalTagAttributeMapCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"TagResource\", {}).n(\"CognitoIdentityClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UnlinkDeveloperIdentityCommand.ts\n\n\n\nvar UnlinkDeveloperIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UnlinkDeveloperIdentity\", {}).n(\"CognitoIdentityClient\", \"UnlinkDeveloperIdentityCommand\").f(void 0, void 0).ser(se_UnlinkDeveloperIdentityCommand).de(de_UnlinkDeveloperIdentityCommand).build() {\n static {\n __name(this, \"UnlinkDeveloperIdentityCommand\");\n }\n};\n\n// src/commands/UnlinkIdentityCommand.ts\n\n\n\nvar UnlinkIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UnlinkIdentity\", {}).n(\"CognitoIdentityClient\", \"UnlinkIdentityCommand\").f(UnlinkIdentityInputFilterSensitiveLog, void 0).ser(se_UnlinkIdentityCommand).de(de_UnlinkIdentityCommand).build() {\n static {\n __name(this, \"UnlinkIdentityCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UntagResource\", {}).n(\"CognitoIdentityClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateIdentityPoolCommand.ts\n\n\n\nvar UpdateIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UpdateIdentityPool\", {}).n(\"CognitoIdentityClient\", \"UpdateIdentityPoolCommand\").f(void 0, void 0).ser(se_UpdateIdentityPoolCommand).de(de_UpdateIdentityPoolCommand).build() {\n static {\n __name(this, \"UpdateIdentityPoolCommand\");\n }\n};\n\n// src/CognitoIdentity.ts\nvar commands = {\n CreateIdentityPoolCommand,\n DeleteIdentitiesCommand,\n DeleteIdentityPoolCommand,\n DescribeIdentityCommand,\n DescribeIdentityPoolCommand,\n GetCredentialsForIdentityCommand,\n GetIdCommand,\n GetIdentityPoolRolesCommand,\n GetOpenIdTokenCommand,\n GetOpenIdTokenForDeveloperIdentityCommand,\n GetPrincipalTagAttributeMapCommand,\n ListIdentitiesCommand,\n ListIdentityPoolsCommand,\n ListTagsForResourceCommand,\n LookupDeveloperIdentityCommand,\n MergeDeveloperIdentitiesCommand,\n SetIdentityPoolRolesCommand,\n SetPrincipalTagAttributeMapCommand,\n TagResourceCommand,\n UnlinkDeveloperIdentityCommand,\n UnlinkIdentityCommand,\n UntagResourceCommand,\n UpdateIdentityPoolCommand\n};\nvar CognitoIdentity = class extends CognitoIdentityClient {\n static {\n __name(this, \"CognitoIdentity\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CognitoIdentity);\n\n// src/pagination/ListIdentityPoolsPaginator.ts\n\nvar paginateListIdentityPools = (0, import_core.createPaginator)(CognitoIdentityClient, ListIdentityPoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CognitoIdentityServiceException,\n __Client,\n CognitoIdentityClient,\n CognitoIdentity,\n $Command,\n CreateIdentityPoolCommand,\n DeleteIdentitiesCommand,\n DeleteIdentityPoolCommand,\n DescribeIdentityCommand,\n DescribeIdentityPoolCommand,\n GetCredentialsForIdentityCommand,\n GetIdCommand,\n GetIdentityPoolRolesCommand,\n GetOpenIdTokenCommand,\n GetOpenIdTokenForDeveloperIdentityCommand,\n GetPrincipalTagAttributeMapCommand,\n ListIdentitiesCommand,\n ListIdentityPoolsCommand,\n ListTagsForResourceCommand,\n LookupDeveloperIdentityCommand,\n MergeDeveloperIdentitiesCommand,\n SetIdentityPoolRolesCommand,\n SetPrincipalTagAttributeMapCommand,\n TagResourceCommand,\n UnlinkDeveloperIdentityCommand,\n UnlinkIdentityCommand,\n UntagResourceCommand,\n UpdateIdentityPoolCommand,\n paginateListIdentityPools,\n AmbiguousRoleResolutionType,\n InternalErrorException,\n InvalidParameterException,\n LimitExceededException,\n NotAuthorizedException,\n ResourceConflictException,\n TooManyRequestsException,\n ErrorCode,\n ResourceNotFoundException,\n ExternalServiceException,\n InvalidIdentityPoolConfigurationException,\n MappingRuleMatchType,\n RoleMappingType,\n DeveloperUserAlreadyRegisteredException,\n ConcurrentModificationException,\n GetCredentialsForIdentityInputFilterSensitiveLog,\n CredentialsFilterSensitiveLog,\n GetCredentialsForIdentityResponseFilterSensitiveLog,\n GetIdInputFilterSensitiveLog,\n GetOpenIdTokenInputFilterSensitiveLog,\n GetOpenIdTokenResponseFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog,\n UnlinkIdentityInputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-06-30\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCognitoIdentityHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Cognito Identity\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultEC2HttpAuthSchemeProvider = exports.defaultEC2HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultEC2HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultEC2HttpAuthSchemeParametersProvider = defaultEC2HttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ec2\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultEC2HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultEC2HttpAuthSchemeProvider = defaultEC2HttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://ec2.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://ec2.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AcceleratorManufacturer: () => AcceleratorManufacturer,\n AcceleratorName: () => AcceleratorName,\n AcceleratorType: () => AcceleratorType,\n AcceptAddressTransferCommand: () => AcceptAddressTransferCommand,\n AcceptCapacityReservationBillingOwnershipCommand: () => AcceptCapacityReservationBillingOwnershipCommand,\n AcceptReservedInstancesExchangeQuoteCommand: () => AcceptReservedInstancesExchangeQuoteCommand,\n AcceptTransitGatewayMulticastDomainAssociationsCommand: () => AcceptTransitGatewayMulticastDomainAssociationsCommand,\n AcceptTransitGatewayPeeringAttachmentCommand: () => AcceptTransitGatewayPeeringAttachmentCommand,\n AcceptTransitGatewayVpcAttachmentCommand: () => AcceptTransitGatewayVpcAttachmentCommand,\n AcceptVpcEndpointConnectionsCommand: () => AcceptVpcEndpointConnectionsCommand,\n AcceptVpcPeeringConnectionCommand: () => AcceptVpcPeeringConnectionCommand,\n AccountAttributeName: () => AccountAttributeName,\n ActivityStatus: () => ActivityStatus,\n AddressAttributeName: () => AddressAttributeName,\n AddressFamily: () => AddressFamily,\n AddressTransferStatus: () => AddressTransferStatus,\n AdvertiseByoipCidrCommand: () => AdvertiseByoipCidrCommand,\n Affinity: () => Affinity,\n AllocateAddressCommand: () => AllocateAddressCommand,\n AllocateHostsCommand: () => AllocateHostsCommand,\n AllocateIpamPoolCidrCommand: () => AllocateIpamPoolCidrCommand,\n AllocationState: () => AllocationState,\n AllocationStrategy: () => AllocationStrategy,\n AllocationType: () => AllocationType,\n AllowedImagesSettingsDisabledState: () => AllowedImagesSettingsDisabledState,\n AllowedImagesSettingsEnabledState: () => AllowedImagesSettingsEnabledState,\n AllowsMultipleInstanceTypes: () => AllowsMultipleInstanceTypes,\n AmdSevSnpSpecification: () => AmdSevSnpSpecification,\n AnalysisStatus: () => AnalysisStatus,\n ApplianceModeSupportValue: () => ApplianceModeSupportValue,\n ApplySecurityGroupsToClientVpnTargetNetworkCommand: () => ApplySecurityGroupsToClientVpnTargetNetworkCommand,\n ArchitectureType: () => ArchitectureType,\n ArchitectureValues: () => ArchitectureValues,\n AsnAssociationState: () => AsnAssociationState,\n AsnState: () => AsnState,\n AssignIpv6AddressesCommand: () => AssignIpv6AddressesCommand,\n AssignPrivateIpAddressesCommand: () => AssignPrivateIpAddressesCommand,\n AssignPrivateNatGatewayAddressCommand: () => AssignPrivateNatGatewayAddressCommand,\n AssociateAddressCommand: () => AssociateAddressCommand,\n AssociateCapacityReservationBillingOwnerCommand: () => AssociateCapacityReservationBillingOwnerCommand,\n AssociateClientVpnTargetNetworkCommand: () => AssociateClientVpnTargetNetworkCommand,\n AssociateDhcpOptionsCommand: () => AssociateDhcpOptionsCommand,\n AssociateEnclaveCertificateIamRoleCommand: () => AssociateEnclaveCertificateIamRoleCommand,\n AssociateIamInstanceProfileCommand: () => AssociateIamInstanceProfileCommand,\n AssociateInstanceEventWindowCommand: () => AssociateInstanceEventWindowCommand,\n AssociateIpamByoasnCommand: () => AssociateIpamByoasnCommand,\n AssociateIpamResourceDiscoveryCommand: () => AssociateIpamResourceDiscoveryCommand,\n AssociateNatGatewayAddressCommand: () => AssociateNatGatewayAddressCommand,\n AssociateRouteServerCommand: () => AssociateRouteServerCommand,\n AssociateRouteTableCommand: () => AssociateRouteTableCommand,\n AssociateSecurityGroupVpcCommand: () => AssociateSecurityGroupVpcCommand,\n AssociateSubnetCidrBlockCommand: () => AssociateSubnetCidrBlockCommand,\n AssociateTransitGatewayMulticastDomainCommand: () => AssociateTransitGatewayMulticastDomainCommand,\n AssociateTransitGatewayPolicyTableCommand: () => AssociateTransitGatewayPolicyTableCommand,\n AssociateTransitGatewayRouteTableCommand: () => AssociateTransitGatewayRouteTableCommand,\n AssociateTrunkInterfaceCommand: () => AssociateTrunkInterfaceCommand,\n AssociateVpcCidrBlockCommand: () => AssociateVpcCidrBlockCommand,\n AssociatedNetworkType: () => AssociatedNetworkType,\n AssociationStatusCode: () => AssociationStatusCode,\n AttachClassicLinkVpcCommand: () => AttachClassicLinkVpcCommand,\n AttachInternetGatewayCommand: () => AttachInternetGatewayCommand,\n AttachNetworkInterfaceCommand: () => AttachNetworkInterfaceCommand,\n AttachVerifiedAccessTrustProviderCommand: () => AttachVerifiedAccessTrustProviderCommand,\n AttachVerifiedAccessTrustProviderResultFilterSensitiveLog: () => AttachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n AttachVolumeCommand: () => AttachVolumeCommand,\n AttachVpnGatewayCommand: () => AttachVpnGatewayCommand,\n AttachmentStatus: () => AttachmentStatus,\n AuthorizeClientVpnIngressCommand: () => AuthorizeClientVpnIngressCommand,\n AuthorizeSecurityGroupEgressCommand: () => AuthorizeSecurityGroupEgressCommand,\n AuthorizeSecurityGroupIngressCommand: () => AuthorizeSecurityGroupIngressCommand,\n AutoAcceptSharedAssociationsValue: () => AutoAcceptSharedAssociationsValue,\n AutoAcceptSharedAttachmentsValue: () => AutoAcceptSharedAttachmentsValue,\n AutoPlacement: () => AutoPlacement,\n AvailabilityZoneOptInStatus: () => AvailabilityZoneOptInStatus,\n AvailabilityZoneState: () => AvailabilityZoneState,\n BandwidthWeightingType: () => BandwidthWeightingType,\n BareMetal: () => BareMetal,\n BatchState: () => BatchState,\n BgpStatus: () => BgpStatus,\n BlockPublicAccessMode: () => BlockPublicAccessMode,\n BootModeType: () => BootModeType,\n BootModeValues: () => BootModeValues,\n BundleInstanceCommand: () => BundleInstanceCommand,\n BundleInstanceRequestFilterSensitiveLog: () => BundleInstanceRequestFilterSensitiveLog,\n BundleInstanceResultFilterSensitiveLog: () => BundleInstanceResultFilterSensitiveLog,\n BundleTaskFilterSensitiveLog: () => BundleTaskFilterSensitiveLog,\n BundleTaskState: () => BundleTaskState,\n BurstablePerformance: () => BurstablePerformance,\n ByoipCidrState: () => ByoipCidrState,\n CallerRole: () => CallerRole,\n CancelBatchErrorCode: () => CancelBatchErrorCode,\n CancelBundleTaskCommand: () => CancelBundleTaskCommand,\n CancelBundleTaskResultFilterSensitiveLog: () => CancelBundleTaskResultFilterSensitiveLog,\n CancelCapacityReservationCommand: () => CancelCapacityReservationCommand,\n CancelCapacityReservationFleetsCommand: () => CancelCapacityReservationFleetsCommand,\n CancelConversionTaskCommand: () => CancelConversionTaskCommand,\n CancelDeclarativePoliciesReportCommand: () => CancelDeclarativePoliciesReportCommand,\n CancelExportTaskCommand: () => CancelExportTaskCommand,\n CancelImageLaunchPermissionCommand: () => CancelImageLaunchPermissionCommand,\n CancelImportTaskCommand: () => CancelImportTaskCommand,\n CancelReservedInstancesListingCommand: () => CancelReservedInstancesListingCommand,\n CancelSpotFleetRequestsCommand: () => CancelSpotFleetRequestsCommand,\n CancelSpotInstanceRequestState: () => CancelSpotInstanceRequestState,\n CancelSpotInstanceRequestsCommand: () => CancelSpotInstanceRequestsCommand,\n CapacityBlockExtensionStatus: () => CapacityBlockExtensionStatus,\n CapacityReservationBillingRequestStatus: () => CapacityReservationBillingRequestStatus,\n CapacityReservationDeliveryPreference: () => CapacityReservationDeliveryPreference,\n CapacityReservationFleetState: () => CapacityReservationFleetState,\n CapacityReservationInstancePlatform: () => CapacityReservationInstancePlatform,\n CapacityReservationPreference: () => CapacityReservationPreference,\n CapacityReservationState: () => CapacityReservationState,\n CapacityReservationTenancy: () => CapacityReservationTenancy,\n CapacityReservationType: () => CapacityReservationType,\n CarrierGatewayState: () => CarrierGatewayState,\n ClientCertificateRevocationListStatusCode: () => ClientCertificateRevocationListStatusCode,\n ClientVpnAuthenticationType: () => ClientVpnAuthenticationType,\n ClientVpnAuthorizationRuleStatusCode: () => ClientVpnAuthorizationRuleStatusCode,\n ClientVpnConnectionStatusCode: () => ClientVpnConnectionStatusCode,\n ClientVpnEndpointAttributeStatusCode: () => ClientVpnEndpointAttributeStatusCode,\n ClientVpnEndpointStatusCode: () => ClientVpnEndpointStatusCode,\n ClientVpnRouteStatusCode: () => ClientVpnRouteStatusCode,\n ConfirmProductInstanceCommand: () => ConfirmProductInstanceCommand,\n ConnectionNotificationState: () => ConnectionNotificationState,\n ConnectionNotificationType: () => ConnectionNotificationType,\n ConnectivityType: () => ConnectivityType,\n ContainerFormat: () => ContainerFormat,\n ConversionTaskFilterSensitiveLog: () => ConversionTaskFilterSensitiveLog,\n ConversionTaskState: () => ConversionTaskState,\n CopyFpgaImageCommand: () => CopyFpgaImageCommand,\n CopyImageCommand: () => CopyImageCommand,\n CopySnapshotCommand: () => CopySnapshotCommand,\n CopySnapshotRequestFilterSensitiveLog: () => CopySnapshotRequestFilterSensitiveLog,\n CopyTagsFromSource: () => CopyTagsFromSource,\n CpuManufacturer: () => CpuManufacturer,\n CreateCapacityReservationBySplittingCommand: () => CreateCapacityReservationBySplittingCommand,\n CreateCapacityReservationCommand: () => CreateCapacityReservationCommand,\n CreateCapacityReservationFleetCommand: () => CreateCapacityReservationFleetCommand,\n CreateCarrierGatewayCommand: () => CreateCarrierGatewayCommand,\n CreateClientVpnEndpointCommand: () => CreateClientVpnEndpointCommand,\n CreateClientVpnRouteCommand: () => CreateClientVpnRouteCommand,\n CreateCoipCidrCommand: () => CreateCoipCidrCommand,\n CreateCoipPoolCommand: () => CreateCoipPoolCommand,\n CreateCustomerGatewayCommand: () => CreateCustomerGatewayCommand,\n CreateDefaultSubnetCommand: () => CreateDefaultSubnetCommand,\n CreateDefaultVpcCommand: () => CreateDefaultVpcCommand,\n CreateDhcpOptionsCommand: () => CreateDhcpOptionsCommand,\n CreateEgressOnlyInternetGatewayCommand: () => CreateEgressOnlyInternetGatewayCommand,\n CreateFleetCommand: () => CreateFleetCommand,\n CreateFlowLogsCommand: () => CreateFlowLogsCommand,\n CreateFpgaImageCommand: () => CreateFpgaImageCommand,\n CreateImageCommand: () => CreateImageCommand,\n CreateInstanceConnectEndpointCommand: () => CreateInstanceConnectEndpointCommand,\n CreateInstanceEventWindowCommand: () => CreateInstanceEventWindowCommand,\n CreateInstanceExportTaskCommand: () => CreateInstanceExportTaskCommand,\n CreateInternetGatewayCommand: () => CreateInternetGatewayCommand,\n CreateIpamCommand: () => CreateIpamCommand,\n CreateIpamExternalResourceVerificationTokenCommand: () => CreateIpamExternalResourceVerificationTokenCommand,\n CreateIpamPoolCommand: () => CreateIpamPoolCommand,\n CreateIpamResourceDiscoveryCommand: () => CreateIpamResourceDiscoveryCommand,\n CreateIpamScopeCommand: () => CreateIpamScopeCommand,\n CreateKeyPairCommand: () => CreateKeyPairCommand,\n CreateLaunchTemplateCommand: () => CreateLaunchTemplateCommand,\n CreateLaunchTemplateRequestFilterSensitiveLog: () => CreateLaunchTemplateRequestFilterSensitiveLog,\n CreateLaunchTemplateVersionCommand: () => CreateLaunchTemplateVersionCommand,\n CreateLaunchTemplateVersionRequestFilterSensitiveLog: () => CreateLaunchTemplateVersionRequestFilterSensitiveLog,\n CreateLaunchTemplateVersionResultFilterSensitiveLog: () => CreateLaunchTemplateVersionResultFilterSensitiveLog,\n CreateLocalGatewayRouteCommand: () => CreateLocalGatewayRouteCommand,\n CreateLocalGatewayRouteTableCommand: () => CreateLocalGatewayRouteTableCommand,\n CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand: () => CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n CreateLocalGatewayRouteTableVpcAssociationCommand: () => CreateLocalGatewayRouteTableVpcAssociationCommand,\n CreateLocalGatewayVirtualInterfaceCommand: () => CreateLocalGatewayVirtualInterfaceCommand,\n CreateLocalGatewayVirtualInterfaceGroupCommand: () => CreateLocalGatewayVirtualInterfaceGroupCommand,\n CreateManagedPrefixListCommand: () => CreateManagedPrefixListCommand,\n CreateNatGatewayCommand: () => CreateNatGatewayCommand,\n CreateNetworkAclCommand: () => CreateNetworkAclCommand,\n CreateNetworkAclEntryCommand: () => CreateNetworkAclEntryCommand,\n CreateNetworkInsightsAccessScopeCommand: () => CreateNetworkInsightsAccessScopeCommand,\n CreateNetworkInsightsPathCommand: () => CreateNetworkInsightsPathCommand,\n CreateNetworkInterfaceCommand: () => CreateNetworkInterfaceCommand,\n CreateNetworkInterfacePermissionCommand: () => CreateNetworkInterfacePermissionCommand,\n CreatePlacementGroupCommand: () => CreatePlacementGroupCommand,\n CreatePublicIpv4PoolCommand: () => CreatePublicIpv4PoolCommand,\n CreateReplaceRootVolumeTaskCommand: () => CreateReplaceRootVolumeTaskCommand,\n CreateReservedInstancesListingCommand: () => CreateReservedInstancesListingCommand,\n CreateRestoreImageTaskCommand: () => CreateRestoreImageTaskCommand,\n CreateRouteCommand: () => CreateRouteCommand,\n CreateRouteServerCommand: () => CreateRouteServerCommand,\n CreateRouteServerEndpointCommand: () => CreateRouteServerEndpointCommand,\n CreateRouteServerPeerCommand: () => CreateRouteServerPeerCommand,\n CreateRouteTableCommand: () => CreateRouteTableCommand,\n CreateSecurityGroupCommand: () => CreateSecurityGroupCommand,\n CreateSnapshotCommand: () => CreateSnapshotCommand,\n CreateSnapshotsCommand: () => CreateSnapshotsCommand,\n CreateSpotDatafeedSubscriptionCommand: () => CreateSpotDatafeedSubscriptionCommand,\n CreateStoreImageTaskCommand: () => CreateStoreImageTaskCommand,\n CreateSubnetCidrReservationCommand: () => CreateSubnetCidrReservationCommand,\n CreateSubnetCommand: () => CreateSubnetCommand,\n CreateTagsCommand: () => CreateTagsCommand,\n CreateTrafficMirrorFilterCommand: () => CreateTrafficMirrorFilterCommand,\n CreateTrafficMirrorFilterRuleCommand: () => CreateTrafficMirrorFilterRuleCommand,\n CreateTrafficMirrorSessionCommand: () => CreateTrafficMirrorSessionCommand,\n CreateTrafficMirrorTargetCommand: () => CreateTrafficMirrorTargetCommand,\n CreateTransitGatewayCommand: () => CreateTransitGatewayCommand,\n CreateTransitGatewayConnectCommand: () => CreateTransitGatewayConnectCommand,\n CreateTransitGatewayConnectPeerCommand: () => CreateTransitGatewayConnectPeerCommand,\n CreateTransitGatewayMulticastDomainCommand: () => CreateTransitGatewayMulticastDomainCommand,\n CreateTransitGatewayPeeringAttachmentCommand: () => CreateTransitGatewayPeeringAttachmentCommand,\n CreateTransitGatewayPolicyTableCommand: () => CreateTransitGatewayPolicyTableCommand,\n CreateTransitGatewayPrefixListReferenceCommand: () => CreateTransitGatewayPrefixListReferenceCommand,\n CreateTransitGatewayRouteCommand: () => CreateTransitGatewayRouteCommand,\n CreateTransitGatewayRouteTableAnnouncementCommand: () => CreateTransitGatewayRouteTableAnnouncementCommand,\n CreateTransitGatewayRouteTableCommand: () => CreateTransitGatewayRouteTableCommand,\n CreateTransitGatewayVpcAttachmentCommand: () => CreateTransitGatewayVpcAttachmentCommand,\n CreateVerifiedAccessEndpointCommand: () => CreateVerifiedAccessEndpointCommand,\n CreateVerifiedAccessGroupCommand: () => CreateVerifiedAccessGroupCommand,\n CreateVerifiedAccessInstanceCommand: () => CreateVerifiedAccessInstanceCommand,\n CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog: () => CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderCommand: () => CreateVerifiedAccessTrustProviderCommand,\n CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog: () => CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog: () => CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderResultFilterSensitiveLog: () => CreateVerifiedAccessTrustProviderResultFilterSensitiveLog,\n CreateVolumeCommand: () => CreateVolumeCommand,\n CreateVpcBlockPublicAccessExclusionCommand: () => CreateVpcBlockPublicAccessExclusionCommand,\n CreateVpcCommand: () => CreateVpcCommand,\n CreateVpcEndpointCommand: () => CreateVpcEndpointCommand,\n CreateVpcEndpointConnectionNotificationCommand: () => CreateVpcEndpointConnectionNotificationCommand,\n CreateVpcEndpointServiceConfigurationCommand: () => CreateVpcEndpointServiceConfigurationCommand,\n CreateVpcPeeringConnectionCommand: () => CreateVpcPeeringConnectionCommand,\n CreateVpnConnectionCommand: () => CreateVpnConnectionCommand,\n CreateVpnConnectionRequestFilterSensitiveLog: () => CreateVpnConnectionRequestFilterSensitiveLog,\n CreateVpnConnectionResultFilterSensitiveLog: () => CreateVpnConnectionResultFilterSensitiveLog,\n CreateVpnConnectionRouteCommand: () => CreateVpnConnectionRouteCommand,\n CreateVpnGatewayCommand: () => CreateVpnGatewayCommand,\n CurrencyCodeValues: () => CurrencyCodeValues,\n DatafeedSubscriptionState: () => DatafeedSubscriptionState,\n DefaultInstanceMetadataEndpointState: () => DefaultInstanceMetadataEndpointState,\n DefaultInstanceMetadataTagsState: () => DefaultInstanceMetadataTagsState,\n DefaultRouteTableAssociationValue: () => DefaultRouteTableAssociationValue,\n DefaultRouteTablePropagationValue: () => DefaultRouteTablePropagationValue,\n DefaultTargetCapacityType: () => DefaultTargetCapacityType,\n DeleteCarrierGatewayCommand: () => DeleteCarrierGatewayCommand,\n DeleteClientVpnEndpointCommand: () => DeleteClientVpnEndpointCommand,\n DeleteClientVpnRouteCommand: () => DeleteClientVpnRouteCommand,\n DeleteCoipCidrCommand: () => DeleteCoipCidrCommand,\n DeleteCoipPoolCommand: () => DeleteCoipPoolCommand,\n DeleteCustomerGatewayCommand: () => DeleteCustomerGatewayCommand,\n DeleteDhcpOptionsCommand: () => DeleteDhcpOptionsCommand,\n DeleteEgressOnlyInternetGatewayCommand: () => DeleteEgressOnlyInternetGatewayCommand,\n DeleteFleetErrorCode: () => DeleteFleetErrorCode,\n DeleteFleetsCommand: () => DeleteFleetsCommand,\n DeleteFlowLogsCommand: () => DeleteFlowLogsCommand,\n DeleteFpgaImageCommand: () => DeleteFpgaImageCommand,\n DeleteInstanceConnectEndpointCommand: () => DeleteInstanceConnectEndpointCommand,\n DeleteInstanceEventWindowCommand: () => DeleteInstanceEventWindowCommand,\n DeleteInternetGatewayCommand: () => DeleteInternetGatewayCommand,\n DeleteIpamCommand: () => DeleteIpamCommand,\n DeleteIpamExternalResourceVerificationTokenCommand: () => DeleteIpamExternalResourceVerificationTokenCommand,\n DeleteIpamPoolCommand: () => DeleteIpamPoolCommand,\n DeleteIpamResourceDiscoveryCommand: () => DeleteIpamResourceDiscoveryCommand,\n DeleteIpamScopeCommand: () => DeleteIpamScopeCommand,\n DeleteKeyPairCommand: () => DeleteKeyPairCommand,\n DeleteLaunchTemplateCommand: () => DeleteLaunchTemplateCommand,\n DeleteLaunchTemplateVersionsCommand: () => DeleteLaunchTemplateVersionsCommand,\n DeleteLocalGatewayRouteCommand: () => DeleteLocalGatewayRouteCommand,\n DeleteLocalGatewayRouteTableCommand: () => DeleteLocalGatewayRouteTableCommand,\n DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand: () => DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n DeleteLocalGatewayRouteTableVpcAssociationCommand: () => DeleteLocalGatewayRouteTableVpcAssociationCommand,\n DeleteLocalGatewayVirtualInterfaceCommand: () => DeleteLocalGatewayVirtualInterfaceCommand,\n DeleteLocalGatewayVirtualInterfaceGroupCommand: () => DeleteLocalGatewayVirtualInterfaceGroupCommand,\n DeleteManagedPrefixListCommand: () => DeleteManagedPrefixListCommand,\n DeleteNatGatewayCommand: () => DeleteNatGatewayCommand,\n DeleteNetworkAclCommand: () => DeleteNetworkAclCommand,\n DeleteNetworkAclEntryCommand: () => DeleteNetworkAclEntryCommand,\n DeleteNetworkInsightsAccessScopeAnalysisCommand: () => DeleteNetworkInsightsAccessScopeAnalysisCommand,\n DeleteNetworkInsightsAccessScopeCommand: () => DeleteNetworkInsightsAccessScopeCommand,\n DeleteNetworkInsightsAnalysisCommand: () => DeleteNetworkInsightsAnalysisCommand,\n DeleteNetworkInsightsPathCommand: () => DeleteNetworkInsightsPathCommand,\n DeleteNetworkInterfaceCommand: () => DeleteNetworkInterfaceCommand,\n DeleteNetworkInterfacePermissionCommand: () => DeleteNetworkInterfacePermissionCommand,\n DeletePlacementGroupCommand: () => DeletePlacementGroupCommand,\n DeletePublicIpv4PoolCommand: () => DeletePublicIpv4PoolCommand,\n DeleteQueuedReservedInstancesCommand: () => DeleteQueuedReservedInstancesCommand,\n DeleteQueuedReservedInstancesErrorCode: () => DeleteQueuedReservedInstancesErrorCode,\n DeleteRouteCommand: () => DeleteRouteCommand,\n DeleteRouteServerCommand: () => DeleteRouteServerCommand,\n DeleteRouteServerEndpointCommand: () => DeleteRouteServerEndpointCommand,\n DeleteRouteServerPeerCommand: () => DeleteRouteServerPeerCommand,\n DeleteRouteTableCommand: () => DeleteRouteTableCommand,\n DeleteSecurityGroupCommand: () => DeleteSecurityGroupCommand,\n DeleteSnapshotCommand: () => DeleteSnapshotCommand,\n DeleteSpotDatafeedSubscriptionCommand: () => DeleteSpotDatafeedSubscriptionCommand,\n DeleteSubnetCidrReservationCommand: () => DeleteSubnetCidrReservationCommand,\n DeleteSubnetCommand: () => DeleteSubnetCommand,\n DeleteTagsCommand: () => DeleteTagsCommand,\n DeleteTrafficMirrorFilterCommand: () => DeleteTrafficMirrorFilterCommand,\n DeleteTrafficMirrorFilterRuleCommand: () => DeleteTrafficMirrorFilterRuleCommand,\n DeleteTrafficMirrorSessionCommand: () => DeleteTrafficMirrorSessionCommand,\n DeleteTrafficMirrorTargetCommand: () => DeleteTrafficMirrorTargetCommand,\n DeleteTransitGatewayCommand: () => DeleteTransitGatewayCommand,\n DeleteTransitGatewayConnectCommand: () => DeleteTransitGatewayConnectCommand,\n DeleteTransitGatewayConnectPeerCommand: () => DeleteTransitGatewayConnectPeerCommand,\n DeleteTransitGatewayMulticastDomainCommand: () => DeleteTransitGatewayMulticastDomainCommand,\n DeleteTransitGatewayPeeringAttachmentCommand: () => DeleteTransitGatewayPeeringAttachmentCommand,\n DeleteTransitGatewayPolicyTableCommand: () => DeleteTransitGatewayPolicyTableCommand,\n DeleteTransitGatewayPrefixListReferenceCommand: () => DeleteTransitGatewayPrefixListReferenceCommand,\n DeleteTransitGatewayRouteCommand: () => DeleteTransitGatewayRouteCommand,\n DeleteTransitGatewayRouteTableAnnouncementCommand: () => DeleteTransitGatewayRouteTableAnnouncementCommand,\n DeleteTransitGatewayRouteTableCommand: () => DeleteTransitGatewayRouteTableCommand,\n DeleteTransitGatewayVpcAttachmentCommand: () => DeleteTransitGatewayVpcAttachmentCommand,\n DeleteVerifiedAccessEndpointCommand: () => DeleteVerifiedAccessEndpointCommand,\n DeleteVerifiedAccessGroupCommand: () => DeleteVerifiedAccessGroupCommand,\n DeleteVerifiedAccessInstanceCommand: () => DeleteVerifiedAccessInstanceCommand,\n DeleteVerifiedAccessTrustProviderCommand: () => DeleteVerifiedAccessTrustProviderCommand,\n DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog: () => DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog,\n DeleteVolumeCommand: () => DeleteVolumeCommand,\n DeleteVpcBlockPublicAccessExclusionCommand: () => DeleteVpcBlockPublicAccessExclusionCommand,\n DeleteVpcCommand: () => DeleteVpcCommand,\n DeleteVpcEndpointConnectionNotificationsCommand: () => DeleteVpcEndpointConnectionNotificationsCommand,\n DeleteVpcEndpointServiceConfigurationsCommand: () => DeleteVpcEndpointServiceConfigurationsCommand,\n DeleteVpcEndpointsCommand: () => DeleteVpcEndpointsCommand,\n DeleteVpcPeeringConnectionCommand: () => DeleteVpcPeeringConnectionCommand,\n DeleteVpnConnectionCommand: () => DeleteVpnConnectionCommand,\n DeleteVpnConnectionRouteCommand: () => DeleteVpnConnectionRouteCommand,\n DeleteVpnGatewayCommand: () => DeleteVpnGatewayCommand,\n DeprovisionByoipCidrCommand: () => DeprovisionByoipCidrCommand,\n DeprovisionIpamByoasnCommand: () => DeprovisionIpamByoasnCommand,\n DeprovisionIpamPoolCidrCommand: () => DeprovisionIpamPoolCidrCommand,\n DeprovisionPublicIpv4PoolCidrCommand: () => DeprovisionPublicIpv4PoolCidrCommand,\n DeregisterImageCommand: () => DeregisterImageCommand,\n DeregisterInstanceEventNotificationAttributesCommand: () => DeregisterInstanceEventNotificationAttributesCommand,\n DeregisterTransitGatewayMulticastGroupMembersCommand: () => DeregisterTransitGatewayMulticastGroupMembersCommand,\n DeregisterTransitGatewayMulticastGroupSourcesCommand: () => DeregisterTransitGatewayMulticastGroupSourcesCommand,\n DescribeAccountAttributesCommand: () => DescribeAccountAttributesCommand,\n DescribeAddressTransfersCommand: () => DescribeAddressTransfersCommand,\n DescribeAddressesAttributeCommand: () => DescribeAddressesAttributeCommand,\n DescribeAddressesCommand: () => DescribeAddressesCommand,\n DescribeAggregateIdFormatCommand: () => DescribeAggregateIdFormatCommand,\n DescribeAvailabilityZonesCommand: () => DescribeAvailabilityZonesCommand,\n DescribeAwsNetworkPerformanceMetricSubscriptionsCommand: () => DescribeAwsNetworkPerformanceMetricSubscriptionsCommand,\n DescribeBundleTasksCommand: () => DescribeBundleTasksCommand,\n DescribeBundleTasksResultFilterSensitiveLog: () => DescribeBundleTasksResultFilterSensitiveLog,\n DescribeByoipCidrsCommand: () => DescribeByoipCidrsCommand,\n DescribeCapacityBlockExtensionHistoryCommand: () => DescribeCapacityBlockExtensionHistoryCommand,\n DescribeCapacityBlockExtensionOfferingsCommand: () => DescribeCapacityBlockExtensionOfferingsCommand,\n DescribeCapacityBlockOfferingsCommand: () => DescribeCapacityBlockOfferingsCommand,\n DescribeCapacityReservationBillingRequestsCommand: () => DescribeCapacityReservationBillingRequestsCommand,\n DescribeCapacityReservationFleetsCommand: () => DescribeCapacityReservationFleetsCommand,\n DescribeCapacityReservationsCommand: () => DescribeCapacityReservationsCommand,\n DescribeCarrierGatewaysCommand: () => DescribeCarrierGatewaysCommand,\n DescribeClassicLinkInstancesCommand: () => DescribeClassicLinkInstancesCommand,\n DescribeClientVpnAuthorizationRulesCommand: () => DescribeClientVpnAuthorizationRulesCommand,\n DescribeClientVpnConnectionsCommand: () => DescribeClientVpnConnectionsCommand,\n DescribeClientVpnEndpointsCommand: () => DescribeClientVpnEndpointsCommand,\n DescribeClientVpnRoutesCommand: () => DescribeClientVpnRoutesCommand,\n DescribeClientVpnTargetNetworksCommand: () => DescribeClientVpnTargetNetworksCommand,\n DescribeCoipPoolsCommand: () => DescribeCoipPoolsCommand,\n DescribeConversionTasksCommand: () => DescribeConversionTasksCommand,\n DescribeConversionTasksResultFilterSensitiveLog: () => DescribeConversionTasksResultFilterSensitiveLog,\n DescribeCustomerGatewaysCommand: () => DescribeCustomerGatewaysCommand,\n DescribeDeclarativePoliciesReportsCommand: () => DescribeDeclarativePoliciesReportsCommand,\n DescribeDhcpOptionsCommand: () => DescribeDhcpOptionsCommand,\n DescribeEgressOnlyInternetGatewaysCommand: () => DescribeEgressOnlyInternetGatewaysCommand,\n DescribeElasticGpusCommand: () => DescribeElasticGpusCommand,\n DescribeExportImageTasksCommand: () => DescribeExportImageTasksCommand,\n DescribeExportTasksCommand: () => DescribeExportTasksCommand,\n DescribeFastLaunchImagesCommand: () => DescribeFastLaunchImagesCommand,\n DescribeFastSnapshotRestoresCommand: () => DescribeFastSnapshotRestoresCommand,\n DescribeFleetHistoryCommand: () => DescribeFleetHistoryCommand,\n DescribeFleetInstancesCommand: () => DescribeFleetInstancesCommand,\n DescribeFleetsCommand: () => DescribeFleetsCommand,\n DescribeFlowLogsCommand: () => DescribeFlowLogsCommand,\n DescribeFpgaImageAttributeCommand: () => DescribeFpgaImageAttributeCommand,\n DescribeFpgaImagesCommand: () => DescribeFpgaImagesCommand,\n DescribeHostReservationOfferingsCommand: () => DescribeHostReservationOfferingsCommand,\n DescribeHostReservationsCommand: () => DescribeHostReservationsCommand,\n DescribeHostsCommand: () => DescribeHostsCommand,\n DescribeIamInstanceProfileAssociationsCommand: () => DescribeIamInstanceProfileAssociationsCommand,\n DescribeIdFormatCommand: () => DescribeIdFormatCommand,\n DescribeIdentityIdFormatCommand: () => DescribeIdentityIdFormatCommand,\n DescribeImageAttributeCommand: () => DescribeImageAttributeCommand,\n DescribeImagesCommand: () => DescribeImagesCommand,\n DescribeImportImageTasksCommand: () => DescribeImportImageTasksCommand,\n DescribeImportImageTasksResultFilterSensitiveLog: () => DescribeImportImageTasksResultFilterSensitiveLog,\n DescribeImportSnapshotTasksCommand: () => DescribeImportSnapshotTasksCommand,\n DescribeImportSnapshotTasksResultFilterSensitiveLog: () => DescribeImportSnapshotTasksResultFilterSensitiveLog,\n DescribeInstanceAttributeCommand: () => DescribeInstanceAttributeCommand,\n DescribeInstanceConnectEndpointsCommand: () => DescribeInstanceConnectEndpointsCommand,\n DescribeInstanceCreditSpecificationsCommand: () => DescribeInstanceCreditSpecificationsCommand,\n DescribeInstanceEventNotificationAttributesCommand: () => DescribeInstanceEventNotificationAttributesCommand,\n DescribeInstanceEventWindowsCommand: () => DescribeInstanceEventWindowsCommand,\n DescribeInstanceImageMetadataCommand: () => DescribeInstanceImageMetadataCommand,\n DescribeInstanceStatusCommand: () => DescribeInstanceStatusCommand,\n DescribeInstanceTopologyCommand: () => DescribeInstanceTopologyCommand,\n DescribeInstanceTypeOfferingsCommand: () => DescribeInstanceTypeOfferingsCommand,\n DescribeInstanceTypesCommand: () => DescribeInstanceTypesCommand,\n DescribeInstancesCommand: () => DescribeInstancesCommand,\n DescribeInternetGatewaysCommand: () => DescribeInternetGatewaysCommand,\n DescribeIpamByoasnCommand: () => DescribeIpamByoasnCommand,\n DescribeIpamExternalResourceVerificationTokensCommand: () => DescribeIpamExternalResourceVerificationTokensCommand,\n DescribeIpamPoolsCommand: () => DescribeIpamPoolsCommand,\n DescribeIpamResourceDiscoveriesCommand: () => DescribeIpamResourceDiscoveriesCommand,\n DescribeIpamResourceDiscoveryAssociationsCommand: () => DescribeIpamResourceDiscoveryAssociationsCommand,\n DescribeIpamScopesCommand: () => DescribeIpamScopesCommand,\n DescribeIpamsCommand: () => DescribeIpamsCommand,\n DescribeIpv6PoolsCommand: () => DescribeIpv6PoolsCommand,\n DescribeKeyPairsCommand: () => DescribeKeyPairsCommand,\n DescribeLaunchTemplateVersionsCommand: () => DescribeLaunchTemplateVersionsCommand,\n DescribeLaunchTemplateVersionsResultFilterSensitiveLog: () => DescribeLaunchTemplateVersionsResultFilterSensitiveLog,\n DescribeLaunchTemplatesCommand: () => DescribeLaunchTemplatesCommand,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand: () => DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n DescribeLocalGatewayRouteTableVpcAssociationsCommand: () => DescribeLocalGatewayRouteTableVpcAssociationsCommand,\n DescribeLocalGatewayRouteTablesCommand: () => DescribeLocalGatewayRouteTablesCommand,\n DescribeLocalGatewayVirtualInterfaceGroupsCommand: () => DescribeLocalGatewayVirtualInterfaceGroupsCommand,\n DescribeLocalGatewayVirtualInterfacesCommand: () => DescribeLocalGatewayVirtualInterfacesCommand,\n DescribeLocalGatewaysCommand: () => DescribeLocalGatewaysCommand,\n DescribeLockedSnapshotsCommand: () => DescribeLockedSnapshotsCommand,\n DescribeMacHostsCommand: () => DescribeMacHostsCommand,\n DescribeManagedPrefixListsCommand: () => DescribeManagedPrefixListsCommand,\n DescribeMovingAddressesCommand: () => DescribeMovingAddressesCommand,\n DescribeNatGatewaysCommand: () => DescribeNatGatewaysCommand,\n DescribeNetworkAclsCommand: () => DescribeNetworkAclsCommand,\n DescribeNetworkInsightsAccessScopeAnalysesCommand: () => DescribeNetworkInsightsAccessScopeAnalysesCommand,\n DescribeNetworkInsightsAccessScopesCommand: () => DescribeNetworkInsightsAccessScopesCommand,\n DescribeNetworkInsightsAnalysesCommand: () => DescribeNetworkInsightsAnalysesCommand,\n DescribeNetworkInsightsPathsCommand: () => DescribeNetworkInsightsPathsCommand,\n DescribeNetworkInterfaceAttributeCommand: () => DescribeNetworkInterfaceAttributeCommand,\n DescribeNetworkInterfacePermissionsCommand: () => DescribeNetworkInterfacePermissionsCommand,\n DescribeNetworkInterfacesCommand: () => DescribeNetworkInterfacesCommand,\n DescribeOutpostLagsCommand: () => DescribeOutpostLagsCommand,\n DescribePlacementGroupsCommand: () => DescribePlacementGroupsCommand,\n DescribePrefixListsCommand: () => DescribePrefixListsCommand,\n DescribePrincipalIdFormatCommand: () => DescribePrincipalIdFormatCommand,\n DescribePublicIpv4PoolsCommand: () => DescribePublicIpv4PoolsCommand,\n DescribeRegionsCommand: () => DescribeRegionsCommand,\n DescribeReplaceRootVolumeTasksCommand: () => DescribeReplaceRootVolumeTasksCommand,\n DescribeReservedInstancesCommand: () => DescribeReservedInstancesCommand,\n DescribeReservedInstancesListingsCommand: () => DescribeReservedInstancesListingsCommand,\n DescribeReservedInstancesModificationsCommand: () => DescribeReservedInstancesModificationsCommand,\n DescribeReservedInstancesOfferingsCommand: () => DescribeReservedInstancesOfferingsCommand,\n DescribeRouteServerEndpointsCommand: () => DescribeRouteServerEndpointsCommand,\n DescribeRouteServerPeersCommand: () => DescribeRouteServerPeersCommand,\n DescribeRouteServersCommand: () => DescribeRouteServersCommand,\n DescribeRouteTablesCommand: () => DescribeRouteTablesCommand,\n DescribeScheduledInstanceAvailabilityCommand: () => DescribeScheduledInstanceAvailabilityCommand,\n DescribeScheduledInstancesCommand: () => DescribeScheduledInstancesCommand,\n DescribeSecurityGroupReferencesCommand: () => DescribeSecurityGroupReferencesCommand,\n DescribeSecurityGroupRulesCommand: () => DescribeSecurityGroupRulesCommand,\n DescribeSecurityGroupVpcAssociationsCommand: () => DescribeSecurityGroupVpcAssociationsCommand,\n DescribeSecurityGroupsCommand: () => DescribeSecurityGroupsCommand,\n DescribeServiceLinkVirtualInterfacesCommand: () => DescribeServiceLinkVirtualInterfacesCommand,\n DescribeSnapshotAttributeCommand: () => DescribeSnapshotAttributeCommand,\n DescribeSnapshotTierStatusCommand: () => DescribeSnapshotTierStatusCommand,\n DescribeSnapshotsCommand: () => DescribeSnapshotsCommand,\n DescribeSpotDatafeedSubscriptionCommand: () => DescribeSpotDatafeedSubscriptionCommand,\n DescribeSpotFleetInstancesCommand: () => DescribeSpotFleetInstancesCommand,\n DescribeSpotFleetRequestHistoryCommand: () => DescribeSpotFleetRequestHistoryCommand,\n DescribeSpotFleetRequestsCommand: () => DescribeSpotFleetRequestsCommand,\n DescribeSpotFleetRequestsResponseFilterSensitiveLog: () => DescribeSpotFleetRequestsResponseFilterSensitiveLog,\n DescribeSpotInstanceRequestsCommand: () => DescribeSpotInstanceRequestsCommand,\n DescribeSpotInstanceRequestsResultFilterSensitiveLog: () => DescribeSpotInstanceRequestsResultFilterSensitiveLog,\n DescribeSpotPriceHistoryCommand: () => DescribeSpotPriceHistoryCommand,\n DescribeStaleSecurityGroupsCommand: () => DescribeStaleSecurityGroupsCommand,\n DescribeStoreImageTasksCommand: () => DescribeStoreImageTasksCommand,\n DescribeSubnetsCommand: () => DescribeSubnetsCommand,\n DescribeTagsCommand: () => DescribeTagsCommand,\n DescribeTrafficMirrorFilterRulesCommand: () => DescribeTrafficMirrorFilterRulesCommand,\n DescribeTrafficMirrorFiltersCommand: () => DescribeTrafficMirrorFiltersCommand,\n DescribeTrafficMirrorSessionsCommand: () => DescribeTrafficMirrorSessionsCommand,\n DescribeTrafficMirrorTargetsCommand: () => DescribeTrafficMirrorTargetsCommand,\n DescribeTransitGatewayAttachmentsCommand: () => DescribeTransitGatewayAttachmentsCommand,\n DescribeTransitGatewayConnectPeersCommand: () => DescribeTransitGatewayConnectPeersCommand,\n DescribeTransitGatewayConnectsCommand: () => DescribeTransitGatewayConnectsCommand,\n DescribeTransitGatewayMulticastDomainsCommand: () => DescribeTransitGatewayMulticastDomainsCommand,\n DescribeTransitGatewayPeeringAttachmentsCommand: () => DescribeTransitGatewayPeeringAttachmentsCommand,\n DescribeTransitGatewayPolicyTablesCommand: () => DescribeTransitGatewayPolicyTablesCommand,\n DescribeTransitGatewayRouteTableAnnouncementsCommand: () => DescribeTransitGatewayRouteTableAnnouncementsCommand,\n DescribeTransitGatewayRouteTablesCommand: () => DescribeTransitGatewayRouteTablesCommand,\n DescribeTransitGatewayVpcAttachmentsCommand: () => DescribeTransitGatewayVpcAttachmentsCommand,\n DescribeTransitGatewaysCommand: () => DescribeTransitGatewaysCommand,\n DescribeTrunkInterfaceAssociationsCommand: () => DescribeTrunkInterfaceAssociationsCommand,\n DescribeVerifiedAccessEndpointsCommand: () => DescribeVerifiedAccessEndpointsCommand,\n DescribeVerifiedAccessGroupsCommand: () => DescribeVerifiedAccessGroupsCommand,\n DescribeVerifiedAccessInstanceLoggingConfigurationsCommand: () => DescribeVerifiedAccessInstanceLoggingConfigurationsCommand,\n DescribeVerifiedAccessInstancesCommand: () => DescribeVerifiedAccessInstancesCommand,\n DescribeVerifiedAccessTrustProvidersCommand: () => DescribeVerifiedAccessTrustProvidersCommand,\n DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog: () => DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog,\n DescribeVolumeAttributeCommand: () => DescribeVolumeAttributeCommand,\n DescribeVolumeStatusCommand: () => DescribeVolumeStatusCommand,\n DescribeVolumesCommand: () => DescribeVolumesCommand,\n DescribeVolumesModificationsCommand: () => DescribeVolumesModificationsCommand,\n DescribeVpcAttributeCommand: () => DescribeVpcAttributeCommand,\n DescribeVpcBlockPublicAccessExclusionsCommand: () => DescribeVpcBlockPublicAccessExclusionsCommand,\n DescribeVpcBlockPublicAccessOptionsCommand: () => DescribeVpcBlockPublicAccessOptionsCommand,\n DescribeVpcClassicLinkCommand: () => DescribeVpcClassicLinkCommand,\n DescribeVpcClassicLinkDnsSupportCommand: () => DescribeVpcClassicLinkDnsSupportCommand,\n DescribeVpcEndpointAssociationsCommand: () => DescribeVpcEndpointAssociationsCommand,\n DescribeVpcEndpointConnectionNotificationsCommand: () => DescribeVpcEndpointConnectionNotificationsCommand,\n DescribeVpcEndpointConnectionsCommand: () => DescribeVpcEndpointConnectionsCommand,\n DescribeVpcEndpointServiceConfigurationsCommand: () => DescribeVpcEndpointServiceConfigurationsCommand,\n DescribeVpcEndpointServicePermissionsCommand: () => DescribeVpcEndpointServicePermissionsCommand,\n DescribeVpcEndpointServicesCommand: () => DescribeVpcEndpointServicesCommand,\n DescribeVpcEndpointsCommand: () => DescribeVpcEndpointsCommand,\n DescribeVpcPeeringConnectionsCommand: () => DescribeVpcPeeringConnectionsCommand,\n DescribeVpcsCommand: () => DescribeVpcsCommand,\n DescribeVpnConnectionsCommand: () => DescribeVpnConnectionsCommand,\n DescribeVpnConnectionsResultFilterSensitiveLog: () => DescribeVpnConnectionsResultFilterSensitiveLog,\n DescribeVpnGatewaysCommand: () => DescribeVpnGatewaysCommand,\n DestinationFileFormat: () => DestinationFileFormat,\n DetachClassicLinkVpcCommand: () => DetachClassicLinkVpcCommand,\n DetachInternetGatewayCommand: () => DetachInternetGatewayCommand,\n DetachNetworkInterfaceCommand: () => DetachNetworkInterfaceCommand,\n DetachVerifiedAccessTrustProviderCommand: () => DetachVerifiedAccessTrustProviderCommand,\n DetachVerifiedAccessTrustProviderResultFilterSensitiveLog: () => DetachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n DetachVolumeCommand: () => DetachVolumeCommand,\n DetachVpnGatewayCommand: () => DetachVpnGatewayCommand,\n DeviceTrustProviderType: () => DeviceTrustProviderType,\n DeviceType: () => DeviceType,\n DisableAddressTransferCommand: () => DisableAddressTransferCommand,\n DisableAllowedImagesSettingsCommand: () => DisableAllowedImagesSettingsCommand,\n DisableAwsNetworkPerformanceMetricSubscriptionCommand: () => DisableAwsNetworkPerformanceMetricSubscriptionCommand,\n DisableEbsEncryptionByDefaultCommand: () => DisableEbsEncryptionByDefaultCommand,\n DisableFastLaunchCommand: () => DisableFastLaunchCommand,\n DisableFastSnapshotRestoresCommand: () => DisableFastSnapshotRestoresCommand,\n DisableImageBlockPublicAccessCommand: () => DisableImageBlockPublicAccessCommand,\n DisableImageCommand: () => DisableImageCommand,\n DisableImageDeprecationCommand: () => DisableImageDeprecationCommand,\n DisableImageDeregistrationProtectionCommand: () => DisableImageDeregistrationProtectionCommand,\n DisableIpamOrganizationAdminAccountCommand: () => DisableIpamOrganizationAdminAccountCommand,\n DisableRouteServerPropagationCommand: () => DisableRouteServerPropagationCommand,\n DisableSerialConsoleAccessCommand: () => DisableSerialConsoleAccessCommand,\n DisableSnapshotBlockPublicAccessCommand: () => DisableSnapshotBlockPublicAccessCommand,\n DisableTransitGatewayRouteTablePropagationCommand: () => DisableTransitGatewayRouteTablePropagationCommand,\n DisableVgwRoutePropagationCommand: () => DisableVgwRoutePropagationCommand,\n DisableVpcClassicLinkCommand: () => DisableVpcClassicLinkCommand,\n DisableVpcClassicLinkDnsSupportCommand: () => DisableVpcClassicLinkDnsSupportCommand,\n DisassociateAddressCommand: () => DisassociateAddressCommand,\n DisassociateCapacityReservationBillingOwnerCommand: () => DisassociateCapacityReservationBillingOwnerCommand,\n DisassociateClientVpnTargetNetworkCommand: () => DisassociateClientVpnTargetNetworkCommand,\n DisassociateEnclaveCertificateIamRoleCommand: () => DisassociateEnclaveCertificateIamRoleCommand,\n DisassociateIamInstanceProfileCommand: () => DisassociateIamInstanceProfileCommand,\n DisassociateInstanceEventWindowCommand: () => DisassociateInstanceEventWindowCommand,\n DisassociateIpamByoasnCommand: () => DisassociateIpamByoasnCommand,\n DisassociateIpamResourceDiscoveryCommand: () => DisassociateIpamResourceDiscoveryCommand,\n DisassociateNatGatewayAddressCommand: () => DisassociateNatGatewayAddressCommand,\n DisassociateRouteServerCommand: () => DisassociateRouteServerCommand,\n DisassociateRouteTableCommand: () => DisassociateRouteTableCommand,\n DisassociateSecurityGroupVpcCommand: () => DisassociateSecurityGroupVpcCommand,\n DisassociateSubnetCidrBlockCommand: () => DisassociateSubnetCidrBlockCommand,\n DisassociateTransitGatewayMulticastDomainCommand: () => DisassociateTransitGatewayMulticastDomainCommand,\n DisassociateTransitGatewayPolicyTableCommand: () => DisassociateTransitGatewayPolicyTableCommand,\n DisassociateTransitGatewayRouteTableCommand: () => DisassociateTransitGatewayRouteTableCommand,\n DisassociateTrunkInterfaceCommand: () => DisassociateTrunkInterfaceCommand,\n DisassociateVpcCidrBlockCommand: () => DisassociateVpcCidrBlockCommand,\n DiskImageDescriptionFilterSensitiveLog: () => DiskImageDescriptionFilterSensitiveLog,\n DiskImageDetailFilterSensitiveLog: () => DiskImageDetailFilterSensitiveLog,\n DiskImageFilterSensitiveLog: () => DiskImageFilterSensitiveLog,\n DiskImageFormat: () => DiskImageFormat,\n DiskType: () => DiskType,\n DnsNameState: () => DnsNameState,\n DnsRecordIpType: () => DnsRecordIpType,\n DnsSupportValue: () => DnsSupportValue,\n DomainType: () => DomainType,\n DynamicRoutingValue: () => DynamicRoutingValue,\n EC2: () => EC2,\n EC2Client: () => EC2Client,\n EC2ServiceException: () => EC2ServiceException,\n EbsEncryptionSupport: () => EbsEncryptionSupport,\n EbsNvmeSupport: () => EbsNvmeSupport,\n EbsOptimizedSupport: () => EbsOptimizedSupport,\n Ec2InstanceConnectEndpointState: () => Ec2InstanceConnectEndpointState,\n EkPubKeyFormat: () => EkPubKeyFormat,\n EkPubKeyType: () => EkPubKeyType,\n ElasticGpuState: () => ElasticGpuState,\n ElasticGpuStatus: () => ElasticGpuStatus,\n EnaSupport: () => EnaSupport,\n EnableAddressTransferCommand: () => EnableAddressTransferCommand,\n EnableAllowedImagesSettingsCommand: () => EnableAllowedImagesSettingsCommand,\n EnableAwsNetworkPerformanceMetricSubscriptionCommand: () => EnableAwsNetworkPerformanceMetricSubscriptionCommand,\n EnableEbsEncryptionByDefaultCommand: () => EnableEbsEncryptionByDefaultCommand,\n EnableFastLaunchCommand: () => EnableFastLaunchCommand,\n EnableFastSnapshotRestoresCommand: () => EnableFastSnapshotRestoresCommand,\n EnableImageBlockPublicAccessCommand: () => EnableImageBlockPublicAccessCommand,\n EnableImageCommand: () => EnableImageCommand,\n EnableImageDeprecationCommand: () => EnableImageDeprecationCommand,\n EnableImageDeregistrationProtectionCommand: () => EnableImageDeregistrationProtectionCommand,\n EnableIpamOrganizationAdminAccountCommand: () => EnableIpamOrganizationAdminAccountCommand,\n EnableReachabilityAnalyzerOrganizationSharingCommand: () => EnableReachabilityAnalyzerOrganizationSharingCommand,\n EnableRouteServerPropagationCommand: () => EnableRouteServerPropagationCommand,\n EnableSerialConsoleAccessCommand: () => EnableSerialConsoleAccessCommand,\n EnableSnapshotBlockPublicAccessCommand: () => EnableSnapshotBlockPublicAccessCommand,\n EnableTransitGatewayRouteTablePropagationCommand: () => EnableTransitGatewayRouteTablePropagationCommand,\n EnableVgwRoutePropagationCommand: () => EnableVgwRoutePropagationCommand,\n EnableVolumeIOCommand: () => EnableVolumeIOCommand,\n EnableVpcClassicLinkCommand: () => EnableVpcClassicLinkCommand,\n EnableVpcClassicLinkDnsSupportCommand: () => EnableVpcClassicLinkDnsSupportCommand,\n EndDateType: () => EndDateType,\n EphemeralNvmeSupport: () => EphemeralNvmeSupport,\n EventCode: () => EventCode,\n EventType: () => EventType,\n ExcessCapacityTerminationPolicy: () => ExcessCapacityTerminationPolicy,\n ExportClientVpnClientCertificateRevocationListCommand: () => ExportClientVpnClientCertificateRevocationListCommand,\n ExportClientVpnClientConfigurationCommand: () => ExportClientVpnClientConfigurationCommand,\n ExportEnvironment: () => ExportEnvironment,\n ExportImageCommand: () => ExportImageCommand,\n ExportTaskState: () => ExportTaskState,\n ExportTransitGatewayRoutesCommand: () => ExportTransitGatewayRoutesCommand,\n ExportVerifiedAccessInstanceClientConfigurationCommand: () => ExportVerifiedAccessInstanceClientConfigurationCommand,\n ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog: () => ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog,\n FastLaunchResourceType: () => FastLaunchResourceType,\n FastLaunchStateCode: () => FastLaunchStateCode,\n FastSnapshotRestoreStateCode: () => FastSnapshotRestoreStateCode,\n FindingsFound: () => FindingsFound,\n FleetActivityStatus: () => FleetActivityStatus,\n FleetCapacityReservationTenancy: () => FleetCapacityReservationTenancy,\n FleetCapacityReservationUsageStrategy: () => FleetCapacityReservationUsageStrategy,\n FleetEventType: () => FleetEventType,\n FleetExcessCapacityTerminationPolicy: () => FleetExcessCapacityTerminationPolicy,\n FleetInstanceMatchCriteria: () => FleetInstanceMatchCriteria,\n FleetOnDemandAllocationStrategy: () => FleetOnDemandAllocationStrategy,\n FleetReplacementStrategy: () => FleetReplacementStrategy,\n FleetStateCode: () => FleetStateCode,\n FleetType: () => FleetType,\n FlexibleEnaQueuesSupport: () => FlexibleEnaQueuesSupport,\n FlowLogsResourceType: () => FlowLogsResourceType,\n FpgaImageAttributeName: () => FpgaImageAttributeName,\n FpgaImageStateCode: () => FpgaImageStateCode,\n GatewayAssociationState: () => GatewayAssociationState,\n GatewayType: () => GatewayType,\n GetAllowedImagesSettingsCommand: () => GetAllowedImagesSettingsCommand,\n GetAssociatedEnclaveCertificateIamRolesCommand: () => GetAssociatedEnclaveCertificateIamRolesCommand,\n GetAssociatedIpv6PoolCidrsCommand: () => GetAssociatedIpv6PoolCidrsCommand,\n GetAwsNetworkPerformanceDataCommand: () => GetAwsNetworkPerformanceDataCommand,\n GetCapacityReservationUsageCommand: () => GetCapacityReservationUsageCommand,\n GetCoipPoolUsageCommand: () => GetCoipPoolUsageCommand,\n GetConsoleOutputCommand: () => GetConsoleOutputCommand,\n GetConsoleScreenshotCommand: () => GetConsoleScreenshotCommand,\n GetDeclarativePoliciesReportSummaryCommand: () => GetDeclarativePoliciesReportSummaryCommand,\n GetDefaultCreditSpecificationCommand: () => GetDefaultCreditSpecificationCommand,\n GetEbsDefaultKmsKeyIdCommand: () => GetEbsDefaultKmsKeyIdCommand,\n GetEbsEncryptionByDefaultCommand: () => GetEbsEncryptionByDefaultCommand,\n GetFlowLogsIntegrationTemplateCommand: () => GetFlowLogsIntegrationTemplateCommand,\n GetGroupsForCapacityReservationCommand: () => GetGroupsForCapacityReservationCommand,\n GetHostReservationPurchasePreviewCommand: () => GetHostReservationPurchasePreviewCommand,\n GetImageBlockPublicAccessStateCommand: () => GetImageBlockPublicAccessStateCommand,\n GetInstanceMetadataDefaultsCommand: () => GetInstanceMetadataDefaultsCommand,\n GetInstanceTpmEkPubCommand: () => GetInstanceTpmEkPubCommand,\n GetInstanceTpmEkPubResultFilterSensitiveLog: () => GetInstanceTpmEkPubResultFilterSensitiveLog,\n GetInstanceTypesFromInstanceRequirementsCommand: () => GetInstanceTypesFromInstanceRequirementsCommand,\n GetInstanceUefiDataCommand: () => GetInstanceUefiDataCommand,\n GetIpamAddressHistoryCommand: () => GetIpamAddressHistoryCommand,\n GetIpamDiscoveredAccountsCommand: () => GetIpamDiscoveredAccountsCommand,\n GetIpamDiscoveredPublicAddressesCommand: () => GetIpamDiscoveredPublicAddressesCommand,\n GetIpamDiscoveredResourceCidrsCommand: () => GetIpamDiscoveredResourceCidrsCommand,\n GetIpamPoolAllocationsCommand: () => GetIpamPoolAllocationsCommand,\n GetIpamPoolCidrsCommand: () => GetIpamPoolCidrsCommand,\n GetIpamResourceCidrsCommand: () => GetIpamResourceCidrsCommand,\n GetLaunchTemplateDataCommand: () => GetLaunchTemplateDataCommand,\n GetLaunchTemplateDataResultFilterSensitiveLog: () => GetLaunchTemplateDataResultFilterSensitiveLog,\n GetManagedPrefixListAssociationsCommand: () => GetManagedPrefixListAssociationsCommand,\n GetManagedPrefixListEntriesCommand: () => GetManagedPrefixListEntriesCommand,\n GetNetworkInsightsAccessScopeAnalysisFindingsCommand: () => GetNetworkInsightsAccessScopeAnalysisFindingsCommand,\n GetNetworkInsightsAccessScopeContentCommand: () => GetNetworkInsightsAccessScopeContentCommand,\n GetPasswordDataCommand: () => GetPasswordDataCommand,\n GetPasswordDataResultFilterSensitiveLog: () => GetPasswordDataResultFilterSensitiveLog,\n GetReservedInstancesExchangeQuoteCommand: () => GetReservedInstancesExchangeQuoteCommand,\n GetRouteServerAssociationsCommand: () => GetRouteServerAssociationsCommand,\n GetRouteServerPropagationsCommand: () => GetRouteServerPropagationsCommand,\n GetRouteServerRoutingDatabaseCommand: () => GetRouteServerRoutingDatabaseCommand,\n GetSecurityGroupsForVpcCommand: () => GetSecurityGroupsForVpcCommand,\n GetSerialConsoleAccessStatusCommand: () => GetSerialConsoleAccessStatusCommand,\n GetSnapshotBlockPublicAccessStateCommand: () => GetSnapshotBlockPublicAccessStateCommand,\n GetSpotPlacementScoresCommand: () => GetSpotPlacementScoresCommand,\n GetSubnetCidrReservationsCommand: () => GetSubnetCidrReservationsCommand,\n GetTransitGatewayAttachmentPropagationsCommand: () => GetTransitGatewayAttachmentPropagationsCommand,\n GetTransitGatewayMulticastDomainAssociationsCommand: () => GetTransitGatewayMulticastDomainAssociationsCommand,\n GetTransitGatewayPolicyTableAssociationsCommand: () => GetTransitGatewayPolicyTableAssociationsCommand,\n GetTransitGatewayPolicyTableEntriesCommand: () => GetTransitGatewayPolicyTableEntriesCommand,\n GetTransitGatewayPrefixListReferencesCommand: () => GetTransitGatewayPrefixListReferencesCommand,\n GetTransitGatewayRouteTableAssociationsCommand: () => GetTransitGatewayRouteTableAssociationsCommand,\n GetTransitGatewayRouteTablePropagationsCommand: () => GetTransitGatewayRouteTablePropagationsCommand,\n GetVerifiedAccessEndpointPolicyCommand: () => GetVerifiedAccessEndpointPolicyCommand,\n GetVerifiedAccessEndpointTargetsCommand: () => GetVerifiedAccessEndpointTargetsCommand,\n GetVerifiedAccessGroupPolicyCommand: () => GetVerifiedAccessGroupPolicyCommand,\n GetVpnConnectionDeviceSampleConfigurationCommand: () => GetVpnConnectionDeviceSampleConfigurationCommand,\n GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog: () => GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog,\n GetVpnConnectionDeviceTypesCommand: () => GetVpnConnectionDeviceTypesCommand,\n GetVpnTunnelReplacementStatusCommand: () => GetVpnTunnelReplacementStatusCommand,\n HostMaintenance: () => HostMaintenance,\n HostRecovery: () => HostRecovery,\n HostTenancy: () => HostTenancy,\n HostnameType: () => HostnameType,\n HttpTokensState: () => HttpTokensState,\n HypervisorType: () => HypervisorType,\n IamInstanceProfileAssociationState: () => IamInstanceProfileAssociationState,\n Igmpv2SupportValue: () => Igmpv2SupportValue,\n ImageAttributeName: () => ImageAttributeName,\n ImageBlockPublicAccessDisabledState: () => ImageBlockPublicAccessDisabledState,\n ImageBlockPublicAccessEnabledState: () => ImageBlockPublicAccessEnabledState,\n ImageDiskContainerFilterSensitiveLog: () => ImageDiskContainerFilterSensitiveLog,\n ImageState: () => ImageState,\n ImageTypeValues: () => ImageTypeValues,\n ImdsSupportValues: () => ImdsSupportValues,\n ImportClientVpnClientCertificateRevocationListCommand: () => ImportClientVpnClientCertificateRevocationListCommand,\n ImportImageCommand: () => ImportImageCommand,\n ImportImageRequestFilterSensitiveLog: () => ImportImageRequestFilterSensitiveLog,\n ImportImageResultFilterSensitiveLog: () => ImportImageResultFilterSensitiveLog,\n ImportImageTaskFilterSensitiveLog: () => ImportImageTaskFilterSensitiveLog,\n ImportInstanceCommand: () => ImportInstanceCommand,\n ImportInstanceLaunchSpecificationFilterSensitiveLog: () => ImportInstanceLaunchSpecificationFilterSensitiveLog,\n ImportInstanceRequestFilterSensitiveLog: () => ImportInstanceRequestFilterSensitiveLog,\n ImportInstanceResultFilterSensitiveLog: () => ImportInstanceResultFilterSensitiveLog,\n ImportInstanceTaskDetailsFilterSensitiveLog: () => ImportInstanceTaskDetailsFilterSensitiveLog,\n ImportInstanceVolumeDetailItemFilterSensitiveLog: () => ImportInstanceVolumeDetailItemFilterSensitiveLog,\n ImportKeyPairCommand: () => ImportKeyPairCommand,\n ImportSnapshotCommand: () => ImportSnapshotCommand,\n ImportSnapshotRequestFilterSensitiveLog: () => ImportSnapshotRequestFilterSensitiveLog,\n ImportSnapshotResultFilterSensitiveLog: () => ImportSnapshotResultFilterSensitiveLog,\n ImportSnapshotTaskFilterSensitiveLog: () => ImportSnapshotTaskFilterSensitiveLog,\n ImportVolumeCommand: () => ImportVolumeCommand,\n ImportVolumeRequestFilterSensitiveLog: () => ImportVolumeRequestFilterSensitiveLog,\n ImportVolumeResultFilterSensitiveLog: () => ImportVolumeResultFilterSensitiveLog,\n ImportVolumeTaskDetailsFilterSensitiveLog: () => ImportVolumeTaskDetailsFilterSensitiveLog,\n InstanceAttributeName: () => InstanceAttributeName,\n InstanceAutoRecoveryState: () => InstanceAutoRecoveryState,\n InstanceBandwidthWeighting: () => InstanceBandwidthWeighting,\n InstanceBootModeValues: () => InstanceBootModeValues,\n InstanceEventWindowState: () => InstanceEventWindowState,\n InstanceGeneration: () => InstanceGeneration,\n InstanceHealthStatus: () => InstanceHealthStatus,\n InstanceInterruptionBehavior: () => InstanceInterruptionBehavior,\n InstanceLifecycle: () => InstanceLifecycle,\n InstanceLifecycleType: () => InstanceLifecycleType,\n InstanceMatchCriteria: () => InstanceMatchCriteria,\n InstanceMetadataEndpointState: () => InstanceMetadataEndpointState,\n InstanceMetadataOptionsState: () => InstanceMetadataOptionsState,\n InstanceMetadataProtocolState: () => InstanceMetadataProtocolState,\n InstanceMetadataTagsState: () => InstanceMetadataTagsState,\n InstanceStateName: () => InstanceStateName,\n InstanceStorageEncryptionSupport: () => InstanceStorageEncryptionSupport,\n InstanceTypeHypervisor: () => InstanceTypeHypervisor,\n InterfacePermissionType: () => InterfacePermissionType,\n InterfaceProtocolType: () => InterfaceProtocolType,\n InternetGatewayBlockMode: () => InternetGatewayBlockMode,\n InternetGatewayExclusionMode: () => InternetGatewayExclusionMode,\n IpAddressType: () => IpAddressType,\n IpSource: () => IpSource,\n IpamAddressHistoryResourceType: () => IpamAddressHistoryResourceType,\n IpamAssociatedResourceDiscoveryStatus: () => IpamAssociatedResourceDiscoveryStatus,\n IpamComplianceStatus: () => IpamComplianceStatus,\n IpamDiscoveryFailureCode: () => IpamDiscoveryFailureCode,\n IpamExternalResourceVerificationTokenState: () => IpamExternalResourceVerificationTokenState,\n IpamManagementState: () => IpamManagementState,\n IpamMeteredAccount: () => IpamMeteredAccount,\n IpamNetworkInterfaceAttachmentStatus: () => IpamNetworkInterfaceAttachmentStatus,\n IpamOverlapStatus: () => IpamOverlapStatus,\n IpamPoolAllocationResourceType: () => IpamPoolAllocationResourceType,\n IpamPoolAwsService: () => IpamPoolAwsService,\n IpamPoolCidrFailureCode: () => IpamPoolCidrFailureCode,\n IpamPoolCidrState: () => IpamPoolCidrState,\n IpamPoolPublicIpSource: () => IpamPoolPublicIpSource,\n IpamPoolSourceResourceType: () => IpamPoolSourceResourceType,\n IpamPoolState: () => IpamPoolState,\n IpamPublicAddressAssociationStatus: () => IpamPublicAddressAssociationStatus,\n IpamPublicAddressAwsService: () => IpamPublicAddressAwsService,\n IpamPublicAddressType: () => IpamPublicAddressType,\n IpamResourceCidrIpSource: () => IpamResourceCidrIpSource,\n IpamResourceDiscoveryAssociationState: () => IpamResourceDiscoveryAssociationState,\n IpamResourceDiscoveryState: () => IpamResourceDiscoveryState,\n IpamResourceType: () => IpamResourceType,\n IpamScopeState: () => IpamScopeState,\n IpamScopeType: () => IpamScopeType,\n IpamState: () => IpamState,\n IpamTier: () => IpamTier,\n Ipv6AddressAttribute: () => Ipv6AddressAttribute,\n Ipv6SupportValue: () => Ipv6SupportValue,\n KeyFormat: () => KeyFormat,\n KeyPairFilterSensitiveLog: () => KeyPairFilterSensitiveLog,\n KeyType: () => KeyType,\n LaunchSpecificationFilterSensitiveLog: () => LaunchSpecificationFilterSensitiveLog,\n LaunchTemplateAutoRecoveryState: () => LaunchTemplateAutoRecoveryState,\n LaunchTemplateErrorCode: () => LaunchTemplateErrorCode,\n LaunchTemplateHttpTokensState: () => LaunchTemplateHttpTokensState,\n LaunchTemplateInstanceMetadataEndpointState: () => LaunchTemplateInstanceMetadataEndpointState,\n LaunchTemplateInstanceMetadataOptionsState: () => LaunchTemplateInstanceMetadataOptionsState,\n LaunchTemplateInstanceMetadataProtocolIpv6: () => LaunchTemplateInstanceMetadataProtocolIpv6,\n LaunchTemplateInstanceMetadataTagsState: () => LaunchTemplateInstanceMetadataTagsState,\n LaunchTemplateVersionFilterSensitiveLog: () => LaunchTemplateVersionFilterSensitiveLog,\n ListImagesInRecycleBinCommand: () => ListImagesInRecycleBinCommand,\n ListSnapshotsInRecycleBinCommand: () => ListSnapshotsInRecycleBinCommand,\n ListingState: () => ListingState,\n ListingStatus: () => ListingStatus,\n LocalGatewayRouteState: () => LocalGatewayRouteState,\n LocalGatewayRouteTableMode: () => LocalGatewayRouteTableMode,\n LocalGatewayRouteType: () => LocalGatewayRouteType,\n LocalGatewayVirtualInterfaceConfigurationState: () => LocalGatewayVirtualInterfaceConfigurationState,\n LocalGatewayVirtualInterfaceGroupConfigurationState: () => LocalGatewayVirtualInterfaceGroupConfigurationState,\n LocalStorage: () => LocalStorage,\n LocalStorageType: () => LocalStorageType,\n LocationType: () => LocationType,\n LockMode: () => LockMode,\n LockSnapshotCommand: () => LockSnapshotCommand,\n LockState: () => LockState,\n LogDestinationType: () => LogDestinationType,\n ManagedBy: () => ManagedBy,\n MarketType: () => MarketType,\n MembershipType: () => MembershipType,\n MetadataDefaultHttpTokensState: () => MetadataDefaultHttpTokensState,\n MetricType: () => MetricType,\n ModifyAddressAttributeCommand: () => ModifyAddressAttributeCommand,\n ModifyAvailabilityZoneGroupCommand: () => ModifyAvailabilityZoneGroupCommand,\n ModifyAvailabilityZoneOptInStatus: () => ModifyAvailabilityZoneOptInStatus,\n ModifyCapacityReservationCommand: () => ModifyCapacityReservationCommand,\n ModifyCapacityReservationFleetCommand: () => ModifyCapacityReservationFleetCommand,\n ModifyClientVpnEndpointCommand: () => ModifyClientVpnEndpointCommand,\n ModifyDefaultCreditSpecificationCommand: () => ModifyDefaultCreditSpecificationCommand,\n ModifyEbsDefaultKmsKeyIdCommand: () => ModifyEbsDefaultKmsKeyIdCommand,\n ModifyFleetCommand: () => ModifyFleetCommand,\n ModifyFpgaImageAttributeCommand: () => ModifyFpgaImageAttributeCommand,\n ModifyHostsCommand: () => ModifyHostsCommand,\n ModifyIdFormatCommand: () => ModifyIdFormatCommand,\n ModifyIdentityIdFormatCommand: () => ModifyIdentityIdFormatCommand,\n ModifyImageAttributeCommand: () => ModifyImageAttributeCommand,\n ModifyInstanceAttributeCommand: () => ModifyInstanceAttributeCommand,\n ModifyInstanceCapacityReservationAttributesCommand: () => ModifyInstanceCapacityReservationAttributesCommand,\n ModifyInstanceCpuOptionsCommand: () => ModifyInstanceCpuOptionsCommand,\n ModifyInstanceCreditSpecificationCommand: () => ModifyInstanceCreditSpecificationCommand,\n ModifyInstanceEventStartTimeCommand: () => ModifyInstanceEventStartTimeCommand,\n ModifyInstanceEventWindowCommand: () => ModifyInstanceEventWindowCommand,\n ModifyInstanceMaintenanceOptionsCommand: () => ModifyInstanceMaintenanceOptionsCommand,\n ModifyInstanceMetadataDefaultsCommand: () => ModifyInstanceMetadataDefaultsCommand,\n ModifyInstanceMetadataOptionsCommand: () => ModifyInstanceMetadataOptionsCommand,\n ModifyInstanceNetworkPerformanceOptionsCommand: () => ModifyInstanceNetworkPerformanceOptionsCommand,\n ModifyInstancePlacementCommand: () => ModifyInstancePlacementCommand,\n ModifyIpamCommand: () => ModifyIpamCommand,\n ModifyIpamPoolCommand: () => ModifyIpamPoolCommand,\n ModifyIpamResourceCidrCommand: () => ModifyIpamResourceCidrCommand,\n ModifyIpamResourceDiscoveryCommand: () => ModifyIpamResourceDiscoveryCommand,\n ModifyIpamScopeCommand: () => ModifyIpamScopeCommand,\n ModifyLaunchTemplateCommand: () => ModifyLaunchTemplateCommand,\n ModifyLocalGatewayRouteCommand: () => ModifyLocalGatewayRouteCommand,\n ModifyManagedPrefixListCommand: () => ModifyManagedPrefixListCommand,\n ModifyNetworkInterfaceAttributeCommand: () => ModifyNetworkInterfaceAttributeCommand,\n ModifyPrivateDnsNameOptionsCommand: () => ModifyPrivateDnsNameOptionsCommand,\n ModifyReservedInstancesCommand: () => ModifyReservedInstancesCommand,\n ModifyRouteServerCommand: () => ModifyRouteServerCommand,\n ModifySecurityGroupRulesCommand: () => ModifySecurityGroupRulesCommand,\n ModifySnapshotAttributeCommand: () => ModifySnapshotAttributeCommand,\n ModifySnapshotTierCommand: () => ModifySnapshotTierCommand,\n ModifySpotFleetRequestCommand: () => ModifySpotFleetRequestCommand,\n ModifySubnetAttributeCommand: () => ModifySubnetAttributeCommand,\n ModifyTrafficMirrorFilterNetworkServicesCommand: () => ModifyTrafficMirrorFilterNetworkServicesCommand,\n ModifyTrafficMirrorFilterRuleCommand: () => ModifyTrafficMirrorFilterRuleCommand,\n ModifyTrafficMirrorSessionCommand: () => ModifyTrafficMirrorSessionCommand,\n ModifyTransitGatewayCommand: () => ModifyTransitGatewayCommand,\n ModifyTransitGatewayPrefixListReferenceCommand: () => ModifyTransitGatewayPrefixListReferenceCommand,\n ModifyTransitGatewayVpcAttachmentCommand: () => ModifyTransitGatewayVpcAttachmentCommand,\n ModifyVerifiedAccessEndpointCommand: () => ModifyVerifiedAccessEndpointCommand,\n ModifyVerifiedAccessEndpointPolicyCommand: () => ModifyVerifiedAccessEndpointPolicyCommand,\n ModifyVerifiedAccessGroupCommand: () => ModifyVerifiedAccessGroupCommand,\n ModifyVerifiedAccessGroupPolicyCommand: () => ModifyVerifiedAccessGroupPolicyCommand,\n ModifyVerifiedAccessInstanceCommand: () => ModifyVerifiedAccessInstanceCommand,\n ModifyVerifiedAccessInstanceLoggingConfigurationCommand: () => ModifyVerifiedAccessInstanceLoggingConfigurationCommand,\n ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog: () => ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderCommand: () => ModifyVerifiedAccessTrustProviderCommand,\n ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog: () => ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog: () => ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog: () => ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ModifyVolumeAttributeCommand: () => ModifyVolumeAttributeCommand,\n ModifyVolumeCommand: () => ModifyVolumeCommand,\n ModifyVpcAttributeCommand: () => ModifyVpcAttributeCommand,\n ModifyVpcBlockPublicAccessExclusionCommand: () => ModifyVpcBlockPublicAccessExclusionCommand,\n ModifyVpcBlockPublicAccessOptionsCommand: () => ModifyVpcBlockPublicAccessOptionsCommand,\n ModifyVpcEndpointCommand: () => ModifyVpcEndpointCommand,\n ModifyVpcEndpointConnectionNotificationCommand: () => ModifyVpcEndpointConnectionNotificationCommand,\n ModifyVpcEndpointServiceConfigurationCommand: () => ModifyVpcEndpointServiceConfigurationCommand,\n ModifyVpcEndpointServicePayerResponsibilityCommand: () => ModifyVpcEndpointServicePayerResponsibilityCommand,\n ModifyVpcEndpointServicePermissionsCommand: () => ModifyVpcEndpointServicePermissionsCommand,\n ModifyVpcPeeringConnectionOptionsCommand: () => ModifyVpcPeeringConnectionOptionsCommand,\n ModifyVpcTenancyCommand: () => ModifyVpcTenancyCommand,\n ModifyVpnConnectionCommand: () => ModifyVpnConnectionCommand,\n ModifyVpnConnectionOptionsCommand: () => ModifyVpnConnectionOptionsCommand,\n ModifyVpnConnectionOptionsResultFilterSensitiveLog: () => ModifyVpnConnectionOptionsResultFilterSensitiveLog,\n ModifyVpnConnectionResultFilterSensitiveLog: () => ModifyVpnConnectionResultFilterSensitiveLog,\n ModifyVpnTunnelCertificateCommand: () => ModifyVpnTunnelCertificateCommand,\n ModifyVpnTunnelCertificateResultFilterSensitiveLog: () => ModifyVpnTunnelCertificateResultFilterSensitiveLog,\n ModifyVpnTunnelOptionsCommand: () => ModifyVpnTunnelOptionsCommand,\n ModifyVpnTunnelOptionsRequestFilterSensitiveLog: () => ModifyVpnTunnelOptionsRequestFilterSensitiveLog,\n ModifyVpnTunnelOptionsResultFilterSensitiveLog: () => ModifyVpnTunnelOptionsResultFilterSensitiveLog,\n ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog: () => ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog,\n MonitorInstancesCommand: () => MonitorInstancesCommand,\n MonitoringState: () => MonitoringState,\n MoveAddressToVpcCommand: () => MoveAddressToVpcCommand,\n MoveByoipCidrToIpamCommand: () => MoveByoipCidrToIpamCommand,\n MoveCapacityReservationInstancesCommand: () => MoveCapacityReservationInstancesCommand,\n MoveStatus: () => MoveStatus,\n MulticastSupportValue: () => MulticastSupportValue,\n NatGatewayAddressStatus: () => NatGatewayAddressStatus,\n NatGatewayState: () => NatGatewayState,\n NetworkInterfaceAttribute: () => NetworkInterfaceAttribute,\n NetworkInterfaceCreationType: () => NetworkInterfaceCreationType,\n NetworkInterfacePermissionStateCode: () => NetworkInterfacePermissionStateCode,\n NetworkInterfaceStatus: () => NetworkInterfaceStatus,\n NetworkInterfaceType: () => NetworkInterfaceType,\n NitroEnclavesSupport: () => NitroEnclavesSupport,\n NitroTpmSupport: () => NitroTpmSupport,\n OfferingClassType: () => OfferingClassType,\n OfferingTypeValues: () => OfferingTypeValues,\n OidcOptionsFilterSensitiveLog: () => OidcOptionsFilterSensitiveLog,\n OnDemandAllocationStrategy: () => OnDemandAllocationStrategy,\n OperationType: () => OperationType,\n PartitionLoadFrequency: () => PartitionLoadFrequency,\n PayerResponsibility: () => PayerResponsibility,\n PaymentOption: () => PaymentOption,\n PeriodType: () => PeriodType,\n PermissionGroup: () => PermissionGroup,\n PhcSupport: () => PhcSupport,\n PlacementGroupState: () => PlacementGroupState,\n PlacementGroupStrategy: () => PlacementGroupStrategy,\n PlacementStrategy: () => PlacementStrategy,\n PlatformValues: () => PlatformValues,\n PrefixListState: () => PrefixListState,\n PrincipalType: () => PrincipalType,\n ProductCodeValues: () => ProductCodeValues,\n Protocol: () => Protocol,\n ProtocolValue: () => ProtocolValue,\n ProvisionByoipCidrCommand: () => ProvisionByoipCidrCommand,\n ProvisionIpamByoasnCommand: () => ProvisionIpamByoasnCommand,\n ProvisionIpamPoolCidrCommand: () => ProvisionIpamPoolCidrCommand,\n ProvisionPublicIpv4PoolCidrCommand: () => ProvisionPublicIpv4PoolCidrCommand,\n PurchaseCapacityBlockCommand: () => PurchaseCapacityBlockCommand,\n PurchaseCapacityBlockExtensionCommand: () => PurchaseCapacityBlockExtensionCommand,\n PurchaseHostReservationCommand: () => PurchaseHostReservationCommand,\n PurchaseReservedInstancesOfferingCommand: () => PurchaseReservedInstancesOfferingCommand,\n PurchaseScheduledInstancesCommand: () => PurchaseScheduledInstancesCommand,\n RIProductDescription: () => RIProductDescription,\n RebootInstancesCommand: () => RebootInstancesCommand,\n RecurringChargeFrequency: () => RecurringChargeFrequency,\n RegisterImageCommand: () => RegisterImageCommand,\n RegisterInstanceEventNotificationAttributesCommand: () => RegisterInstanceEventNotificationAttributesCommand,\n RegisterTransitGatewayMulticastGroupMembersCommand: () => RegisterTransitGatewayMulticastGroupMembersCommand,\n RegisterTransitGatewayMulticastGroupSourcesCommand: () => RegisterTransitGatewayMulticastGroupSourcesCommand,\n RejectCapacityReservationBillingOwnershipCommand: () => RejectCapacityReservationBillingOwnershipCommand,\n RejectTransitGatewayMulticastDomainAssociationsCommand: () => RejectTransitGatewayMulticastDomainAssociationsCommand,\n RejectTransitGatewayPeeringAttachmentCommand: () => RejectTransitGatewayPeeringAttachmentCommand,\n RejectTransitGatewayVpcAttachmentCommand: () => RejectTransitGatewayVpcAttachmentCommand,\n RejectVpcEndpointConnectionsCommand: () => RejectVpcEndpointConnectionsCommand,\n RejectVpcPeeringConnectionCommand: () => RejectVpcPeeringConnectionCommand,\n ReleaseAddressCommand: () => ReleaseAddressCommand,\n ReleaseHostsCommand: () => ReleaseHostsCommand,\n ReleaseIpamPoolAllocationCommand: () => ReleaseIpamPoolAllocationCommand,\n ReplaceIamInstanceProfileAssociationCommand: () => ReplaceIamInstanceProfileAssociationCommand,\n ReplaceImageCriteriaInAllowedImagesSettingsCommand: () => ReplaceImageCriteriaInAllowedImagesSettingsCommand,\n ReplaceNetworkAclAssociationCommand: () => ReplaceNetworkAclAssociationCommand,\n ReplaceNetworkAclEntryCommand: () => ReplaceNetworkAclEntryCommand,\n ReplaceRootVolumeTaskState: () => ReplaceRootVolumeTaskState,\n ReplaceRouteCommand: () => ReplaceRouteCommand,\n ReplaceRouteTableAssociationCommand: () => ReplaceRouteTableAssociationCommand,\n ReplaceTransitGatewayRouteCommand: () => ReplaceTransitGatewayRouteCommand,\n ReplaceVpnTunnelCommand: () => ReplaceVpnTunnelCommand,\n ReplacementStrategy: () => ReplacementStrategy,\n ReportInstanceReasonCodes: () => ReportInstanceReasonCodes,\n ReportInstanceStatusCommand: () => ReportInstanceStatusCommand,\n ReportInstanceStatusRequestFilterSensitiveLog: () => ReportInstanceStatusRequestFilterSensitiveLog,\n ReportState: () => ReportState,\n ReportStatusType: () => ReportStatusType,\n RequestLaunchTemplateDataFilterSensitiveLog: () => RequestLaunchTemplateDataFilterSensitiveLog,\n RequestSpotFleetCommand: () => RequestSpotFleetCommand,\n RequestSpotFleetRequestFilterSensitiveLog: () => RequestSpotFleetRequestFilterSensitiveLog,\n RequestSpotInstancesCommand: () => RequestSpotInstancesCommand,\n RequestSpotInstancesRequestFilterSensitiveLog: () => RequestSpotInstancesRequestFilterSensitiveLog,\n RequestSpotInstancesResultFilterSensitiveLog: () => RequestSpotInstancesResultFilterSensitiveLog,\n RequestSpotLaunchSpecificationFilterSensitiveLog: () => RequestSpotLaunchSpecificationFilterSensitiveLog,\n ReservationState: () => ReservationState,\n ReservedInstanceState: () => ReservedInstanceState,\n ResetAddressAttributeCommand: () => ResetAddressAttributeCommand,\n ResetEbsDefaultKmsKeyIdCommand: () => ResetEbsDefaultKmsKeyIdCommand,\n ResetFpgaImageAttributeCommand: () => ResetFpgaImageAttributeCommand,\n ResetFpgaImageAttributeName: () => ResetFpgaImageAttributeName,\n ResetImageAttributeCommand: () => ResetImageAttributeCommand,\n ResetImageAttributeName: () => ResetImageAttributeName,\n ResetInstanceAttributeCommand: () => ResetInstanceAttributeCommand,\n ResetNetworkInterfaceAttributeCommand: () => ResetNetworkInterfaceAttributeCommand,\n ResetSnapshotAttributeCommand: () => ResetSnapshotAttributeCommand,\n ResourceType: () => ResourceType,\n ResponseLaunchTemplateDataFilterSensitiveLog: () => ResponseLaunchTemplateDataFilterSensitiveLog,\n RestoreAddressToClassicCommand: () => RestoreAddressToClassicCommand,\n RestoreImageFromRecycleBinCommand: () => RestoreImageFromRecycleBinCommand,\n RestoreManagedPrefixListVersionCommand: () => RestoreManagedPrefixListVersionCommand,\n RestoreSnapshotFromRecycleBinCommand: () => RestoreSnapshotFromRecycleBinCommand,\n RestoreSnapshotTierCommand: () => RestoreSnapshotTierCommand,\n RevokeClientVpnIngressCommand: () => RevokeClientVpnIngressCommand,\n RevokeSecurityGroupEgressCommand: () => RevokeSecurityGroupEgressCommand,\n RevokeSecurityGroupIngressCommand: () => RevokeSecurityGroupIngressCommand,\n RootDeviceType: () => RootDeviceType,\n RouteOrigin: () => RouteOrigin,\n RouteServerAssociationState: () => RouteServerAssociationState,\n RouteServerBfdState: () => RouteServerBfdState,\n RouteServerBgpState: () => RouteServerBgpState,\n RouteServerEndpointState: () => RouteServerEndpointState,\n RouteServerPeerLivenessMode: () => RouteServerPeerLivenessMode,\n RouteServerPeerState: () => RouteServerPeerState,\n RouteServerPersistRoutesAction: () => RouteServerPersistRoutesAction,\n RouteServerPersistRoutesState: () => RouteServerPersistRoutesState,\n RouteServerPropagationState: () => RouteServerPropagationState,\n RouteServerRouteInstallationStatus: () => RouteServerRouteInstallationStatus,\n RouteServerRouteStatus: () => RouteServerRouteStatus,\n RouteServerState: () => RouteServerState,\n RouteState: () => RouteState,\n RouteTableAssociationStateCode: () => RouteTableAssociationStateCode,\n RuleAction: () => RuleAction,\n RunInstancesCommand: () => RunInstancesCommand,\n RunInstancesRequestFilterSensitiveLog: () => RunInstancesRequestFilterSensitiveLog,\n RunScheduledInstancesCommand: () => RunScheduledInstancesCommand,\n RunScheduledInstancesRequestFilterSensitiveLog: () => RunScheduledInstancesRequestFilterSensitiveLog,\n S3StorageFilterSensitiveLog: () => S3StorageFilterSensitiveLog,\n SSEType: () => SSEType,\n ScheduledInstancesLaunchSpecificationFilterSensitiveLog: () => ScheduledInstancesLaunchSpecificationFilterSensitiveLog,\n Scope: () => Scope,\n SearchLocalGatewayRoutesCommand: () => SearchLocalGatewayRoutesCommand,\n SearchTransitGatewayMulticastGroupsCommand: () => SearchTransitGatewayMulticastGroupsCommand,\n SearchTransitGatewayRoutesCommand: () => SearchTransitGatewayRoutesCommand,\n SecurityGroupReferencingSupportValue: () => SecurityGroupReferencingSupportValue,\n SecurityGroupVpcAssociationState: () => SecurityGroupVpcAssociationState,\n SelfServicePortal: () => SelfServicePortal,\n SendDiagnosticInterruptCommand: () => SendDiagnosticInterruptCommand,\n ServiceConnectivityType: () => ServiceConnectivityType,\n ServiceLinkVirtualInterfaceConfigurationState: () => ServiceLinkVirtualInterfaceConfigurationState,\n ServiceManaged: () => ServiceManaged,\n ServiceState: () => ServiceState,\n ServiceType: () => ServiceType,\n ShutdownBehavior: () => ShutdownBehavior,\n SnapshotAttributeName: () => SnapshotAttributeName,\n SnapshotBlockPublicAccessState: () => SnapshotBlockPublicAccessState,\n SnapshotDetailFilterSensitiveLog: () => SnapshotDetailFilterSensitiveLog,\n SnapshotDiskContainerFilterSensitiveLog: () => SnapshotDiskContainerFilterSensitiveLog,\n SnapshotLocationEnum: () => SnapshotLocationEnum,\n SnapshotState: () => SnapshotState,\n SnapshotTaskDetailFilterSensitiveLog: () => SnapshotTaskDetailFilterSensitiveLog,\n SpotAllocationStrategy: () => SpotAllocationStrategy,\n SpotFleetLaunchSpecificationFilterSensitiveLog: () => SpotFleetLaunchSpecificationFilterSensitiveLog,\n SpotFleetRequestConfigDataFilterSensitiveLog: () => SpotFleetRequestConfigDataFilterSensitiveLog,\n SpotFleetRequestConfigFilterSensitiveLog: () => SpotFleetRequestConfigFilterSensitiveLog,\n SpotInstanceInterruptionBehavior: () => SpotInstanceInterruptionBehavior,\n SpotInstanceRequestFilterSensitiveLog: () => SpotInstanceRequestFilterSensitiveLog,\n SpotInstanceState: () => SpotInstanceState,\n SpotInstanceType: () => SpotInstanceType,\n SpreadLevel: () => SpreadLevel,\n StartDeclarativePoliciesReportCommand: () => StartDeclarativePoliciesReportCommand,\n StartInstancesCommand: () => StartInstancesCommand,\n StartNetworkInsightsAccessScopeAnalysisCommand: () => StartNetworkInsightsAccessScopeAnalysisCommand,\n StartNetworkInsightsAnalysisCommand: () => StartNetworkInsightsAnalysisCommand,\n StartVpcEndpointServicePrivateDnsVerificationCommand: () => StartVpcEndpointServicePrivateDnsVerificationCommand,\n State: () => State,\n StaticSourcesSupportValue: () => StaticSourcesSupportValue,\n StatisticType: () => StatisticType,\n Status: () => Status,\n StatusName: () => StatusName,\n StatusType: () => StatusType,\n StopInstancesCommand: () => StopInstancesCommand,\n StorageFilterSensitiveLog: () => StorageFilterSensitiveLog,\n StorageTier: () => StorageTier,\n SubnetCidrBlockStateCode: () => SubnetCidrBlockStateCode,\n SubnetCidrReservationType: () => SubnetCidrReservationType,\n SubnetState: () => SubnetState,\n SummaryStatus: () => SummaryStatus,\n SupportedAdditionalProcessorFeature: () => SupportedAdditionalProcessorFeature,\n TargetCapacityUnitType: () => TargetCapacityUnitType,\n TargetStorageTier: () => TargetStorageTier,\n TelemetryStatus: () => TelemetryStatus,\n Tenancy: () => Tenancy,\n TerminateClientVpnConnectionsCommand: () => TerminateClientVpnConnectionsCommand,\n TerminateInstancesCommand: () => TerminateInstancesCommand,\n TieringOperationStatus: () => TieringOperationStatus,\n TokenState: () => TokenState,\n TpmSupportValues: () => TpmSupportValues,\n TrafficDirection: () => TrafficDirection,\n TrafficMirrorFilterRuleField: () => TrafficMirrorFilterRuleField,\n TrafficMirrorNetworkService: () => TrafficMirrorNetworkService,\n TrafficMirrorRuleAction: () => TrafficMirrorRuleAction,\n TrafficMirrorSessionField: () => TrafficMirrorSessionField,\n TrafficMirrorTargetType: () => TrafficMirrorTargetType,\n TrafficType: () => TrafficType,\n TransferType: () => TransferType,\n TransitGatewayAssociationState: () => TransitGatewayAssociationState,\n TransitGatewayAttachmentResourceType: () => TransitGatewayAttachmentResourceType,\n TransitGatewayAttachmentState: () => TransitGatewayAttachmentState,\n TransitGatewayConnectPeerState: () => TransitGatewayConnectPeerState,\n TransitGatewayMulitcastDomainAssociationState: () => TransitGatewayMulitcastDomainAssociationState,\n TransitGatewayMulticastDomainState: () => TransitGatewayMulticastDomainState,\n TransitGatewayPolicyTableState: () => TransitGatewayPolicyTableState,\n TransitGatewayPrefixListReferenceState: () => TransitGatewayPrefixListReferenceState,\n TransitGatewayPropagationState: () => TransitGatewayPropagationState,\n TransitGatewayRouteState: () => TransitGatewayRouteState,\n TransitGatewayRouteTableAnnouncementDirection: () => TransitGatewayRouteTableAnnouncementDirection,\n TransitGatewayRouteTableAnnouncementState: () => TransitGatewayRouteTableAnnouncementState,\n TransitGatewayRouteTableState: () => TransitGatewayRouteTableState,\n TransitGatewayRouteType: () => TransitGatewayRouteType,\n TransitGatewayState: () => TransitGatewayState,\n TransportProtocol: () => TransportProtocol,\n TrustProviderType: () => TrustProviderType,\n TunnelInsideIpVersion: () => TunnelInsideIpVersion,\n TunnelOptionFilterSensitiveLog: () => TunnelOptionFilterSensitiveLog,\n UnassignIpv6AddressesCommand: () => UnassignIpv6AddressesCommand,\n UnassignPrivateIpAddressesCommand: () => UnassignPrivateIpAddressesCommand,\n UnassignPrivateNatGatewayAddressCommand: () => UnassignPrivateNatGatewayAddressCommand,\n UnlimitedSupportedInstanceFamily: () => UnlimitedSupportedInstanceFamily,\n UnlockSnapshotCommand: () => UnlockSnapshotCommand,\n UnmonitorInstancesCommand: () => UnmonitorInstancesCommand,\n UnsuccessfulInstanceCreditSpecificationErrorCode: () => UnsuccessfulInstanceCreditSpecificationErrorCode,\n UpdateSecurityGroupRuleDescriptionsEgressCommand: () => UpdateSecurityGroupRuleDescriptionsEgressCommand,\n UpdateSecurityGroupRuleDescriptionsIngressCommand: () => UpdateSecurityGroupRuleDescriptionsIngressCommand,\n UsageClassType: () => UsageClassType,\n UserDataFilterSensitiveLog: () => UserDataFilterSensitiveLog,\n UserTrustProviderType: () => UserTrustProviderType,\n VerificationMethod: () => VerificationMethod,\n VerifiedAccessEndpointAttachmentType: () => VerifiedAccessEndpointAttachmentType,\n VerifiedAccessEndpointProtocol: () => VerifiedAccessEndpointProtocol,\n VerifiedAccessEndpointStatusCode: () => VerifiedAccessEndpointStatusCode,\n VerifiedAccessEndpointType: () => VerifiedAccessEndpointType,\n VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog: () => VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog,\n VerifiedAccessLogDeliveryStatusCode: () => VerifiedAccessLogDeliveryStatusCode,\n VerifiedAccessTrustProviderFilterSensitiveLog: () => VerifiedAccessTrustProviderFilterSensitiveLog,\n VirtualizationType: () => VirtualizationType,\n VolumeAttachmentState: () => VolumeAttachmentState,\n VolumeAttributeName: () => VolumeAttributeName,\n VolumeModificationState: () => VolumeModificationState,\n VolumeState: () => VolumeState,\n VolumeStatusInfoStatus: () => VolumeStatusInfoStatus,\n VolumeStatusName: () => VolumeStatusName,\n VolumeType: () => VolumeType,\n VpcAttributeName: () => VpcAttributeName,\n VpcBlockPublicAccessExclusionState: () => VpcBlockPublicAccessExclusionState,\n VpcBlockPublicAccessExclusionsAllowed: () => VpcBlockPublicAccessExclusionsAllowed,\n VpcBlockPublicAccessState: () => VpcBlockPublicAccessState,\n VpcCidrBlockStateCode: () => VpcCidrBlockStateCode,\n VpcEncryptionControlExclusionState: () => VpcEncryptionControlExclusionState,\n VpcEncryptionControlMode: () => VpcEncryptionControlMode,\n VpcEncryptionControlState: () => VpcEncryptionControlState,\n VpcEndpointType: () => VpcEndpointType,\n VpcPeeringConnectionStateReasonCode: () => VpcPeeringConnectionStateReasonCode,\n VpcState: () => VpcState,\n VpcTenancy: () => VpcTenancy,\n VpnConnectionFilterSensitiveLog: () => VpnConnectionFilterSensitiveLog,\n VpnConnectionOptionsFilterSensitiveLog: () => VpnConnectionOptionsFilterSensitiveLog,\n VpnConnectionOptionsSpecificationFilterSensitiveLog: () => VpnConnectionOptionsSpecificationFilterSensitiveLog,\n VpnEcmpSupportValue: () => VpnEcmpSupportValue,\n VpnProtocol: () => VpnProtocol,\n VpnState: () => VpnState,\n VpnStaticRouteSource: () => VpnStaticRouteSource,\n VpnTunnelOptionsSpecificationFilterSensitiveLog: () => VpnTunnelOptionsSpecificationFilterSensitiveLog,\n WeekDay: () => WeekDay,\n WithdrawByoipCidrCommand: () => WithdrawByoipCidrCommand,\n _InstanceType: () => _InstanceType,\n __Client: () => import_smithy_client.Client,\n paginateDescribeAddressTransfers: () => paginateDescribeAddressTransfers,\n paginateDescribeAddressesAttribute: () => paginateDescribeAddressesAttribute,\n paginateDescribeAwsNetworkPerformanceMetricSubscriptions: () => paginateDescribeAwsNetworkPerformanceMetricSubscriptions,\n paginateDescribeByoipCidrs: () => paginateDescribeByoipCidrs,\n paginateDescribeCapacityBlockExtensionHistory: () => paginateDescribeCapacityBlockExtensionHistory,\n paginateDescribeCapacityBlockExtensionOfferings: () => paginateDescribeCapacityBlockExtensionOfferings,\n paginateDescribeCapacityBlockOfferings: () => paginateDescribeCapacityBlockOfferings,\n paginateDescribeCapacityReservationBillingRequests: () => paginateDescribeCapacityReservationBillingRequests,\n paginateDescribeCapacityReservationFleets: () => paginateDescribeCapacityReservationFleets,\n paginateDescribeCapacityReservations: () => paginateDescribeCapacityReservations,\n paginateDescribeCarrierGateways: () => paginateDescribeCarrierGateways,\n paginateDescribeClassicLinkInstances: () => paginateDescribeClassicLinkInstances,\n paginateDescribeClientVpnAuthorizationRules: () => paginateDescribeClientVpnAuthorizationRules,\n paginateDescribeClientVpnConnections: () => paginateDescribeClientVpnConnections,\n paginateDescribeClientVpnEndpoints: () => paginateDescribeClientVpnEndpoints,\n paginateDescribeClientVpnRoutes: () => paginateDescribeClientVpnRoutes,\n paginateDescribeClientVpnTargetNetworks: () => paginateDescribeClientVpnTargetNetworks,\n paginateDescribeCoipPools: () => paginateDescribeCoipPools,\n paginateDescribeDhcpOptions: () => paginateDescribeDhcpOptions,\n paginateDescribeEgressOnlyInternetGateways: () => paginateDescribeEgressOnlyInternetGateways,\n paginateDescribeExportImageTasks: () => paginateDescribeExportImageTasks,\n paginateDescribeFastLaunchImages: () => paginateDescribeFastLaunchImages,\n paginateDescribeFastSnapshotRestores: () => paginateDescribeFastSnapshotRestores,\n paginateDescribeFleets: () => paginateDescribeFleets,\n paginateDescribeFlowLogs: () => paginateDescribeFlowLogs,\n paginateDescribeFpgaImages: () => paginateDescribeFpgaImages,\n paginateDescribeHostReservationOfferings: () => paginateDescribeHostReservationOfferings,\n paginateDescribeHostReservations: () => paginateDescribeHostReservations,\n paginateDescribeHosts: () => paginateDescribeHosts,\n paginateDescribeIamInstanceProfileAssociations: () => paginateDescribeIamInstanceProfileAssociations,\n paginateDescribeImages: () => paginateDescribeImages,\n paginateDescribeImportImageTasks: () => paginateDescribeImportImageTasks,\n paginateDescribeImportSnapshotTasks: () => paginateDescribeImportSnapshotTasks,\n paginateDescribeInstanceConnectEndpoints: () => paginateDescribeInstanceConnectEndpoints,\n paginateDescribeInstanceCreditSpecifications: () => paginateDescribeInstanceCreditSpecifications,\n paginateDescribeInstanceEventWindows: () => paginateDescribeInstanceEventWindows,\n paginateDescribeInstanceImageMetadata: () => paginateDescribeInstanceImageMetadata,\n paginateDescribeInstanceStatus: () => paginateDescribeInstanceStatus,\n paginateDescribeInstanceTopology: () => paginateDescribeInstanceTopology,\n paginateDescribeInstanceTypeOfferings: () => paginateDescribeInstanceTypeOfferings,\n paginateDescribeInstanceTypes: () => paginateDescribeInstanceTypes,\n paginateDescribeInstances: () => paginateDescribeInstances,\n paginateDescribeInternetGateways: () => paginateDescribeInternetGateways,\n paginateDescribeIpamPools: () => paginateDescribeIpamPools,\n paginateDescribeIpamResourceDiscoveries: () => paginateDescribeIpamResourceDiscoveries,\n paginateDescribeIpamResourceDiscoveryAssociations: () => paginateDescribeIpamResourceDiscoveryAssociations,\n paginateDescribeIpamScopes: () => paginateDescribeIpamScopes,\n paginateDescribeIpams: () => paginateDescribeIpams,\n paginateDescribeIpv6Pools: () => paginateDescribeIpv6Pools,\n paginateDescribeLaunchTemplateVersions: () => paginateDescribeLaunchTemplateVersions,\n paginateDescribeLaunchTemplates: () => paginateDescribeLaunchTemplates,\n paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations: () => paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations,\n paginateDescribeLocalGatewayRouteTableVpcAssociations: () => paginateDescribeLocalGatewayRouteTableVpcAssociations,\n paginateDescribeLocalGatewayRouteTables: () => paginateDescribeLocalGatewayRouteTables,\n paginateDescribeLocalGatewayVirtualInterfaceGroups: () => paginateDescribeLocalGatewayVirtualInterfaceGroups,\n paginateDescribeLocalGatewayVirtualInterfaces: () => paginateDescribeLocalGatewayVirtualInterfaces,\n paginateDescribeLocalGateways: () => paginateDescribeLocalGateways,\n paginateDescribeMacHosts: () => paginateDescribeMacHosts,\n paginateDescribeManagedPrefixLists: () => paginateDescribeManagedPrefixLists,\n paginateDescribeMovingAddresses: () => paginateDescribeMovingAddresses,\n paginateDescribeNatGateways: () => paginateDescribeNatGateways,\n paginateDescribeNetworkAcls: () => paginateDescribeNetworkAcls,\n paginateDescribeNetworkInsightsAccessScopeAnalyses: () => paginateDescribeNetworkInsightsAccessScopeAnalyses,\n paginateDescribeNetworkInsightsAccessScopes: () => paginateDescribeNetworkInsightsAccessScopes,\n paginateDescribeNetworkInsightsAnalyses: () => paginateDescribeNetworkInsightsAnalyses,\n paginateDescribeNetworkInsightsPaths: () => paginateDescribeNetworkInsightsPaths,\n paginateDescribeNetworkInterfacePermissions: () => paginateDescribeNetworkInterfacePermissions,\n paginateDescribeNetworkInterfaces: () => paginateDescribeNetworkInterfaces,\n paginateDescribePrefixLists: () => paginateDescribePrefixLists,\n paginateDescribePrincipalIdFormat: () => paginateDescribePrincipalIdFormat,\n paginateDescribePublicIpv4Pools: () => paginateDescribePublicIpv4Pools,\n paginateDescribeReplaceRootVolumeTasks: () => paginateDescribeReplaceRootVolumeTasks,\n paginateDescribeReservedInstancesModifications: () => paginateDescribeReservedInstancesModifications,\n paginateDescribeReservedInstancesOfferings: () => paginateDescribeReservedInstancesOfferings,\n paginateDescribeRouteServerEndpoints: () => paginateDescribeRouteServerEndpoints,\n paginateDescribeRouteServerPeers: () => paginateDescribeRouteServerPeers,\n paginateDescribeRouteServers: () => paginateDescribeRouteServers,\n paginateDescribeRouteTables: () => paginateDescribeRouteTables,\n paginateDescribeScheduledInstanceAvailability: () => paginateDescribeScheduledInstanceAvailability,\n paginateDescribeScheduledInstances: () => paginateDescribeScheduledInstances,\n paginateDescribeSecurityGroupRules: () => paginateDescribeSecurityGroupRules,\n paginateDescribeSecurityGroupVpcAssociations: () => paginateDescribeSecurityGroupVpcAssociations,\n paginateDescribeSecurityGroups: () => paginateDescribeSecurityGroups,\n paginateDescribeSnapshotTierStatus: () => paginateDescribeSnapshotTierStatus,\n paginateDescribeSnapshots: () => paginateDescribeSnapshots,\n paginateDescribeSpotFleetRequests: () => paginateDescribeSpotFleetRequests,\n paginateDescribeSpotInstanceRequests: () => paginateDescribeSpotInstanceRequests,\n paginateDescribeSpotPriceHistory: () => paginateDescribeSpotPriceHistory,\n paginateDescribeStaleSecurityGroups: () => paginateDescribeStaleSecurityGroups,\n paginateDescribeStoreImageTasks: () => paginateDescribeStoreImageTasks,\n paginateDescribeSubnets: () => paginateDescribeSubnets,\n paginateDescribeTags: () => paginateDescribeTags,\n paginateDescribeTrafficMirrorFilters: () => paginateDescribeTrafficMirrorFilters,\n paginateDescribeTrafficMirrorSessions: () => paginateDescribeTrafficMirrorSessions,\n paginateDescribeTrafficMirrorTargets: () => paginateDescribeTrafficMirrorTargets,\n paginateDescribeTransitGatewayAttachments: () => paginateDescribeTransitGatewayAttachments,\n paginateDescribeTransitGatewayConnectPeers: () => paginateDescribeTransitGatewayConnectPeers,\n paginateDescribeTransitGatewayConnects: () => paginateDescribeTransitGatewayConnects,\n paginateDescribeTransitGatewayMulticastDomains: () => paginateDescribeTransitGatewayMulticastDomains,\n paginateDescribeTransitGatewayPeeringAttachments: () => paginateDescribeTransitGatewayPeeringAttachments,\n paginateDescribeTransitGatewayPolicyTables: () => paginateDescribeTransitGatewayPolicyTables,\n paginateDescribeTransitGatewayRouteTableAnnouncements: () => paginateDescribeTransitGatewayRouteTableAnnouncements,\n paginateDescribeTransitGatewayRouteTables: () => paginateDescribeTransitGatewayRouteTables,\n paginateDescribeTransitGatewayVpcAttachments: () => paginateDescribeTransitGatewayVpcAttachments,\n paginateDescribeTransitGateways: () => paginateDescribeTransitGateways,\n paginateDescribeTrunkInterfaceAssociations: () => paginateDescribeTrunkInterfaceAssociations,\n paginateDescribeVerifiedAccessEndpoints: () => paginateDescribeVerifiedAccessEndpoints,\n paginateDescribeVerifiedAccessGroups: () => paginateDescribeVerifiedAccessGroups,\n paginateDescribeVerifiedAccessInstanceLoggingConfigurations: () => paginateDescribeVerifiedAccessInstanceLoggingConfigurations,\n paginateDescribeVerifiedAccessInstances: () => paginateDescribeVerifiedAccessInstances,\n paginateDescribeVerifiedAccessTrustProviders: () => paginateDescribeVerifiedAccessTrustProviders,\n paginateDescribeVolumeStatus: () => paginateDescribeVolumeStatus,\n paginateDescribeVolumes: () => paginateDescribeVolumes,\n paginateDescribeVolumesModifications: () => paginateDescribeVolumesModifications,\n paginateDescribeVpcClassicLinkDnsSupport: () => paginateDescribeVpcClassicLinkDnsSupport,\n paginateDescribeVpcEndpointConnectionNotifications: () => paginateDescribeVpcEndpointConnectionNotifications,\n paginateDescribeVpcEndpointConnections: () => paginateDescribeVpcEndpointConnections,\n paginateDescribeVpcEndpointServiceConfigurations: () => paginateDescribeVpcEndpointServiceConfigurations,\n paginateDescribeVpcEndpointServicePermissions: () => paginateDescribeVpcEndpointServicePermissions,\n paginateDescribeVpcEndpoints: () => paginateDescribeVpcEndpoints,\n paginateDescribeVpcPeeringConnections: () => paginateDescribeVpcPeeringConnections,\n paginateDescribeVpcs: () => paginateDescribeVpcs,\n paginateGetAssociatedIpv6PoolCidrs: () => paginateGetAssociatedIpv6PoolCidrs,\n paginateGetAwsNetworkPerformanceData: () => paginateGetAwsNetworkPerformanceData,\n paginateGetGroupsForCapacityReservation: () => paginateGetGroupsForCapacityReservation,\n paginateGetInstanceTypesFromInstanceRequirements: () => paginateGetInstanceTypesFromInstanceRequirements,\n paginateGetIpamAddressHistory: () => paginateGetIpamAddressHistory,\n paginateGetIpamDiscoveredAccounts: () => paginateGetIpamDiscoveredAccounts,\n paginateGetIpamDiscoveredResourceCidrs: () => paginateGetIpamDiscoveredResourceCidrs,\n paginateGetIpamPoolAllocations: () => paginateGetIpamPoolAllocations,\n paginateGetIpamPoolCidrs: () => paginateGetIpamPoolCidrs,\n paginateGetIpamResourceCidrs: () => paginateGetIpamResourceCidrs,\n paginateGetManagedPrefixListAssociations: () => paginateGetManagedPrefixListAssociations,\n paginateGetManagedPrefixListEntries: () => paginateGetManagedPrefixListEntries,\n paginateGetNetworkInsightsAccessScopeAnalysisFindings: () => paginateGetNetworkInsightsAccessScopeAnalysisFindings,\n paginateGetSecurityGroupsForVpc: () => paginateGetSecurityGroupsForVpc,\n paginateGetSpotPlacementScores: () => paginateGetSpotPlacementScores,\n paginateGetTransitGatewayAttachmentPropagations: () => paginateGetTransitGatewayAttachmentPropagations,\n paginateGetTransitGatewayMulticastDomainAssociations: () => paginateGetTransitGatewayMulticastDomainAssociations,\n paginateGetTransitGatewayPolicyTableAssociations: () => paginateGetTransitGatewayPolicyTableAssociations,\n paginateGetTransitGatewayPrefixListReferences: () => paginateGetTransitGatewayPrefixListReferences,\n paginateGetTransitGatewayRouteTableAssociations: () => paginateGetTransitGatewayRouteTableAssociations,\n paginateGetTransitGatewayRouteTablePropagations: () => paginateGetTransitGatewayRouteTablePropagations,\n paginateGetVpnConnectionDeviceTypes: () => paginateGetVpnConnectionDeviceTypes,\n paginateListImagesInRecycleBin: () => paginateListImagesInRecycleBin,\n paginateListSnapshotsInRecycleBin: () => paginateListSnapshotsInRecycleBin,\n paginateSearchLocalGatewayRoutes: () => paginateSearchLocalGatewayRoutes,\n paginateSearchTransitGatewayMulticastGroups: () => paginateSearchTransitGatewayMulticastGroups,\n waitForBundleTaskComplete: () => waitForBundleTaskComplete,\n waitForConversionTaskCancelled: () => waitForConversionTaskCancelled,\n waitForConversionTaskCompleted: () => waitForConversionTaskCompleted,\n waitForConversionTaskDeleted: () => waitForConversionTaskDeleted,\n waitForCustomerGatewayAvailable: () => waitForCustomerGatewayAvailable,\n waitForExportTaskCancelled: () => waitForExportTaskCancelled,\n waitForExportTaskCompleted: () => waitForExportTaskCompleted,\n waitForImageAvailable: () => waitForImageAvailable,\n waitForImageExists: () => waitForImageExists,\n waitForInstanceExists: () => waitForInstanceExists,\n waitForInstanceRunning: () => waitForInstanceRunning,\n waitForInstanceStatusOk: () => waitForInstanceStatusOk,\n waitForInstanceStopped: () => waitForInstanceStopped,\n waitForInstanceTerminated: () => waitForInstanceTerminated,\n waitForInternetGatewayExists: () => waitForInternetGatewayExists,\n waitForKeyPairExists: () => waitForKeyPairExists,\n waitForNatGatewayAvailable: () => waitForNatGatewayAvailable,\n waitForNatGatewayDeleted: () => waitForNatGatewayDeleted,\n waitForNetworkInterfaceAvailable: () => waitForNetworkInterfaceAvailable,\n waitForPasswordDataAvailable: () => waitForPasswordDataAvailable,\n waitForSecurityGroupExists: () => waitForSecurityGroupExists,\n waitForSnapshotCompleted: () => waitForSnapshotCompleted,\n waitForSnapshotImported: () => waitForSnapshotImported,\n waitForSpotInstanceRequestFulfilled: () => waitForSpotInstanceRequestFulfilled,\n waitForStoreImageTaskComplete: () => waitForStoreImageTaskComplete,\n waitForSubnetAvailable: () => waitForSubnetAvailable,\n waitForSystemStatusOk: () => waitForSystemStatusOk,\n waitForVolumeAvailable: () => waitForVolumeAvailable,\n waitForVolumeDeleted: () => waitForVolumeDeleted,\n waitForVolumeInUse: () => waitForVolumeInUse,\n waitForVpcAvailable: () => waitForVpcAvailable,\n waitForVpcExists: () => waitForVpcExists,\n waitForVpcPeeringConnectionDeleted: () => waitForVpcPeeringConnectionDeleted,\n waitForVpcPeeringConnectionExists: () => waitForVpcPeeringConnectionExists,\n waitForVpnConnectionAvailable: () => waitForVpnConnectionAvailable,\n waitForVpnConnectionDeleted: () => waitForVpnConnectionDeleted,\n waitUntilBundleTaskComplete: () => waitUntilBundleTaskComplete,\n waitUntilConversionTaskCancelled: () => waitUntilConversionTaskCancelled,\n waitUntilConversionTaskCompleted: () => waitUntilConversionTaskCompleted,\n waitUntilConversionTaskDeleted: () => waitUntilConversionTaskDeleted,\n waitUntilCustomerGatewayAvailable: () => waitUntilCustomerGatewayAvailable,\n waitUntilExportTaskCancelled: () => waitUntilExportTaskCancelled,\n waitUntilExportTaskCompleted: () => waitUntilExportTaskCompleted,\n waitUntilImageAvailable: () => waitUntilImageAvailable,\n waitUntilImageExists: () => waitUntilImageExists,\n waitUntilInstanceExists: () => waitUntilInstanceExists,\n waitUntilInstanceRunning: () => waitUntilInstanceRunning,\n waitUntilInstanceStatusOk: () => waitUntilInstanceStatusOk,\n waitUntilInstanceStopped: () => waitUntilInstanceStopped,\n waitUntilInstanceTerminated: () => waitUntilInstanceTerminated,\n waitUntilInternetGatewayExists: () => waitUntilInternetGatewayExists,\n waitUntilKeyPairExists: () => waitUntilKeyPairExists,\n waitUntilNatGatewayAvailable: () => waitUntilNatGatewayAvailable,\n waitUntilNatGatewayDeleted: () => waitUntilNatGatewayDeleted,\n waitUntilNetworkInterfaceAvailable: () => waitUntilNetworkInterfaceAvailable,\n waitUntilPasswordDataAvailable: () => waitUntilPasswordDataAvailable,\n waitUntilSecurityGroupExists: () => waitUntilSecurityGroupExists,\n waitUntilSnapshotCompleted: () => waitUntilSnapshotCompleted,\n waitUntilSnapshotImported: () => waitUntilSnapshotImported,\n waitUntilSpotInstanceRequestFulfilled: () => waitUntilSpotInstanceRequestFulfilled,\n waitUntilStoreImageTaskComplete: () => waitUntilStoreImageTaskComplete,\n waitUntilSubnetAvailable: () => waitUntilSubnetAvailable,\n waitUntilSystemStatusOk: () => waitUntilSystemStatusOk,\n waitUntilVolumeAvailable: () => waitUntilVolumeAvailable,\n waitUntilVolumeDeleted: () => waitUntilVolumeDeleted,\n waitUntilVolumeInUse: () => waitUntilVolumeInUse,\n waitUntilVpcAvailable: () => waitUntilVpcAvailable,\n waitUntilVpcExists: () => waitUntilVpcExists,\n waitUntilVpcPeeringConnectionDeleted: () => waitUntilVpcPeeringConnectionDeleted,\n waitUntilVpcPeeringConnectionExists: () => waitUntilVpcPeeringConnectionExists,\n waitUntilVpnConnectionAvailable: () => waitUntilVpnConnectionAvailable,\n waitUntilVpnConnectionDeleted: () => waitUntilVpnConnectionDeleted\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/EC2Client.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ec2\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/EC2Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/EC2Client.ts\nvar EC2Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"EC2Client\");\n }\n /**\n * The resolved configuration of EC2Client class. This is resolved and normalized from the {@link EC2ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultEC2HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/EC2.ts\n\n\n// src/commands/AcceptAddressTransferCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_ec2.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/EC2ServiceException.ts\n\nvar EC2ServiceException = class _EC2ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"EC2ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _EC2ServiceException.prototype);\n }\n};\n\n// src/protocols/Aws_ec2.ts\nvar se_AcceptAddressTransferCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptAddressTransferRequest(input, context),\n [_A]: _AAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptAddressTransferCommand\");\nvar se_AcceptCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptCapacityReservationBillingOwnershipRequest(input, context),\n [_A]: _ACRBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptCapacityReservationBillingOwnershipCommand\");\nvar se_AcceptReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptReservedInstancesExchangeQuoteRequest(input, context),\n [_A]: _ARIEQ,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptReservedInstancesExchangeQuoteCommand\");\nvar se_AcceptTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptTransitGatewayMulticastDomainAssociationsRequest(input, context),\n [_A]: _ATGMDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptTransitGatewayMulticastDomainAssociationsCommand\");\nvar se_AcceptTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _ATGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptTransitGatewayPeeringAttachmentCommand\");\nvar se_AcceptTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _ATGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptTransitGatewayVpcAttachmentCommand\");\nvar se_AcceptVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptVpcEndpointConnectionsRequest(input, context),\n [_A]: _AVEC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptVpcEndpointConnectionsCommand\");\nvar se_AcceptVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptVpcPeeringConnectionRequest(input, context),\n [_A]: _AVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptVpcPeeringConnectionCommand\");\nvar se_AdvertiseByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AdvertiseByoipCidrRequest(input, context),\n [_A]: _ABC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AdvertiseByoipCidrCommand\");\nvar se_AllocateAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AllocateAddressRequest(input, context),\n [_A]: _AA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AllocateAddressCommand\");\nvar se_AllocateHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AllocateHostsRequest(input, context),\n [_A]: _AH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AllocateHostsCommand\");\nvar se_AllocateIpamPoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AllocateIpamPoolCidrRequest(input, context),\n [_A]: _AIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AllocateIpamPoolCidrCommand\");\nvar se_ApplySecurityGroupsToClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ApplySecurityGroupsToClientVpnTargetNetworkRequest(input, context),\n [_A]: _ASGTCVTN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ApplySecurityGroupsToClientVpnTargetNetworkCommand\");\nvar se_AssignIpv6AddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssignIpv6AddressesRequest(input, context),\n [_A]: _AIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssignIpv6AddressesCommand\");\nvar se_AssignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssignPrivateIpAddressesRequest(input, context),\n [_A]: _APIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssignPrivateIpAddressesCommand\");\nvar se_AssignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssignPrivateNatGatewayAddressRequest(input, context),\n [_A]: _APNGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssignPrivateNatGatewayAddressCommand\");\nvar se_AssociateAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateAddressRequest(input, context),\n [_A]: _AAs,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateAddressCommand\");\nvar se_AssociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateCapacityReservationBillingOwnerRequest(input, context),\n [_A]: _ACRBOs,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateCapacityReservationBillingOwnerCommand\");\nvar se_AssociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateClientVpnTargetNetworkRequest(input, context),\n [_A]: _ACVTN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateClientVpnTargetNetworkCommand\");\nvar se_AssociateDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateDhcpOptionsRequest(input, context),\n [_A]: _ADO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateDhcpOptionsCommand\");\nvar se_AssociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateEnclaveCertificateIamRoleRequest(input, context),\n [_A]: _AECIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateEnclaveCertificateIamRoleCommand\");\nvar se_AssociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateIamInstanceProfileRequest(input, context),\n [_A]: _AIIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateIamInstanceProfileCommand\");\nvar se_AssociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateInstanceEventWindowRequest(input, context),\n [_A]: _AIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateInstanceEventWindowCommand\");\nvar se_AssociateIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateIpamByoasnRequest(input, context),\n [_A]: _AIB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateIpamByoasnCommand\");\nvar se_AssociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateIpamResourceDiscoveryRequest(input, context),\n [_A]: _AIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateIpamResourceDiscoveryCommand\");\nvar se_AssociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateNatGatewayAddressRequest(input, context),\n [_A]: _ANGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateNatGatewayAddressCommand\");\nvar se_AssociateRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateRouteServerRequest(input, context),\n [_A]: _ARS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateRouteServerCommand\");\nvar se_AssociateRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateRouteTableRequest(input, context),\n [_A]: _ART,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateRouteTableCommand\");\nvar se_AssociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateSecurityGroupVpcRequest(input, context),\n [_A]: _ASGV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateSecurityGroupVpcCommand\");\nvar se_AssociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateSubnetCidrBlockRequest(input, context),\n [_A]: _ASCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateSubnetCidrBlockCommand\");\nvar se_AssociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _ATGMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTransitGatewayMulticastDomainCommand\");\nvar se_AssociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTransitGatewayPolicyTableRequest(input, context),\n [_A]: _ATGPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTransitGatewayPolicyTableCommand\");\nvar se_AssociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTransitGatewayRouteTableRequest(input, context),\n [_A]: _ATGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTransitGatewayRouteTableCommand\");\nvar se_AssociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTrunkInterfaceRequest(input, context),\n [_A]: _ATI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTrunkInterfaceCommand\");\nvar se_AssociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateVpcCidrBlockRequest(input, context),\n [_A]: _AVCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateVpcCidrBlockCommand\");\nvar se_AttachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachClassicLinkVpcRequest(input, context),\n [_A]: _ACLV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachClassicLinkVpcCommand\");\nvar se_AttachInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachInternetGatewayRequest(input, context),\n [_A]: _AIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachInternetGatewayCommand\");\nvar se_AttachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachNetworkInterfaceRequest(input, context),\n [_A]: _ANI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachNetworkInterfaceCommand\");\nvar se_AttachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _AVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachVerifiedAccessTrustProviderCommand\");\nvar se_AttachVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachVolumeRequest(input, context),\n [_A]: _AV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachVolumeCommand\");\nvar se_AttachVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachVpnGatewayRequest(input, context),\n [_A]: _AVG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachVpnGatewayCommand\");\nvar se_AuthorizeClientVpnIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AuthorizeClientVpnIngressRequest(input, context),\n [_A]: _ACVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AuthorizeClientVpnIngressCommand\");\nvar se_AuthorizeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AuthorizeSecurityGroupEgressRequest(input, context),\n [_A]: _ASGE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AuthorizeSecurityGroupEgressCommand\");\nvar se_AuthorizeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AuthorizeSecurityGroupIngressRequest(input, context),\n [_A]: _ASGI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AuthorizeSecurityGroupIngressCommand\");\nvar se_BundleInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_BundleInstanceRequest(input, context),\n [_A]: _BI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BundleInstanceCommand\");\nvar se_CancelBundleTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelBundleTaskRequest(input, context),\n [_A]: _CBT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelBundleTaskCommand\");\nvar se_CancelCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelCapacityReservationRequest(input, context),\n [_A]: _CCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelCapacityReservationCommand\");\nvar se_CancelCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelCapacityReservationFleetsRequest(input, context),\n [_A]: _CCRF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelCapacityReservationFleetsCommand\");\nvar se_CancelConversionTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelConversionRequest(input, context),\n [_A]: _CCT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelConversionTaskCommand\");\nvar se_CancelDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelDeclarativePoliciesReportRequest(input, context),\n [_A]: _CDPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelDeclarativePoliciesReportCommand\");\nvar se_CancelExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelExportTaskRequest(input, context),\n [_A]: _CET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelExportTaskCommand\");\nvar se_CancelImageLaunchPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelImageLaunchPermissionRequest(input, context),\n [_A]: _CILP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelImageLaunchPermissionCommand\");\nvar se_CancelImportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelImportTaskRequest(input, context),\n [_A]: _CIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelImportTaskCommand\");\nvar se_CancelReservedInstancesListingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelReservedInstancesListingRequest(input, context),\n [_A]: _CRIL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelReservedInstancesListingCommand\");\nvar se_CancelSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelSpotFleetRequestsRequest(input, context),\n [_A]: _CSFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelSpotFleetRequestsCommand\");\nvar se_CancelSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelSpotInstanceRequestsRequest(input, context),\n [_A]: _CSIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelSpotInstanceRequestsCommand\");\nvar se_ConfirmProductInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ConfirmProductInstanceRequest(input, context),\n [_A]: _CPI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ConfirmProductInstanceCommand\");\nvar se_CopyFpgaImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CopyFpgaImageRequest(input, context),\n [_A]: _CFI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CopyFpgaImageCommand\");\nvar se_CopyImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CopyImageRequest(input, context),\n [_A]: _CI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CopyImageCommand\");\nvar se_CopySnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CopySnapshotRequest(input, context),\n [_A]: _CS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CopySnapshotCommand\");\nvar se_CreateCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCapacityReservationRequest(input, context),\n [_A]: _CCRr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityReservationCommand\");\nvar se_CreateCapacityReservationBySplittingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCapacityReservationBySplittingRequest(input, context),\n [_A]: _CCRBS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityReservationBySplittingCommand\");\nvar se_CreateCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCapacityReservationFleetRequest(input, context),\n [_A]: _CCRFr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityReservationFleetCommand\");\nvar se_CreateCarrierGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCarrierGatewayRequest(input, context),\n [_A]: _CCG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCarrierGatewayCommand\");\nvar se_CreateClientVpnEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateClientVpnEndpointRequest(input, context),\n [_A]: _CCVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateClientVpnEndpointCommand\");\nvar se_CreateClientVpnRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateClientVpnRouteRequest(input, context),\n [_A]: _CCVR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateClientVpnRouteCommand\");\nvar se_CreateCoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCoipCidrRequest(input, context),\n [_A]: _CCC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCoipCidrCommand\");\nvar se_CreateCoipPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCoipPoolRequest(input, context),\n [_A]: _CCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCoipPoolCommand\");\nvar se_CreateCustomerGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCustomerGatewayRequest(input, context),\n [_A]: _CCGr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCustomerGatewayCommand\");\nvar se_CreateDefaultSubnetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateDefaultSubnetRequest(input, context),\n [_A]: _CDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDefaultSubnetCommand\");\nvar se_CreateDefaultVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateDefaultVpcRequest(input, context),\n [_A]: _CDV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDefaultVpcCommand\");\nvar se_CreateDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateDhcpOptionsRequest(input, context),\n [_A]: _CDO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDhcpOptionsCommand\");\nvar se_CreateEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateEgressOnlyInternetGatewayRequest(input, context),\n [_A]: _CEOIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateEgressOnlyInternetGatewayCommand\");\nvar se_CreateFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateFleetRequest(input, context),\n [_A]: _CF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFleetCommand\");\nvar se_CreateFlowLogsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateFlowLogsRequest(input, context),\n [_A]: _CFL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFlowLogsCommand\");\nvar se_CreateFpgaImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateFpgaImageRequest(input, context),\n [_A]: _CFIr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFpgaImageCommand\");\nvar se_CreateImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateImageRequest(input, context),\n [_A]: _CIr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateImageCommand\");\nvar se_CreateInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceConnectEndpointRequest(input, context),\n [_A]: _CICE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceConnectEndpointCommand\");\nvar se_CreateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceEventWindowRequest(input, context),\n [_A]: _CIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceEventWindowCommand\");\nvar se_CreateInstanceExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceExportTaskRequest(input, context),\n [_A]: _CIET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceExportTaskCommand\");\nvar se_CreateInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInternetGatewayRequest(input, context),\n [_A]: _CIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInternetGatewayCommand\");\nvar se_CreateIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamRequest(input, context),\n [_A]: _CIre,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamCommand\");\nvar se_CreateIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamExternalResourceVerificationTokenRequest(input, context),\n [_A]: _CIERVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamExternalResourceVerificationTokenCommand\");\nvar se_CreateIpamPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamPoolRequest(input, context),\n [_A]: _CIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamPoolCommand\");\nvar se_CreateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamResourceDiscoveryRequest(input, context),\n [_A]: _CIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamResourceDiscoveryCommand\");\nvar se_CreateIpamScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamScopeRequest(input, context),\n [_A]: _CIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamScopeCommand\");\nvar se_CreateKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateKeyPairRequest(input, context),\n [_A]: _CKP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateKeyPairCommand\");\nvar se_CreateLaunchTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLaunchTemplateRequest(input, context),\n [_A]: _CLT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLaunchTemplateCommand\");\nvar se_CreateLaunchTemplateVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLaunchTemplateVersionRequest(input, context),\n [_A]: _CLTV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLaunchTemplateVersionCommand\");\nvar se_CreateLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteRequest(input, context),\n [_A]: _CLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteCommand\");\nvar se_CreateLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteTableRequest(input, context),\n [_A]: _CLGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteTableCommand\");\nvar se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest(input, context),\n [_A]: _CLGRTVIGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar se_CreateLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteTableVpcAssociationRequest(input, context),\n [_A]: _CLGRTVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteTableVpcAssociationCommand\");\nvar se_CreateLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayVirtualInterfaceRequest(input, context),\n [_A]: _CLGVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayVirtualInterfaceCommand\");\nvar se_CreateLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayVirtualInterfaceGroupRequest(input, context),\n [_A]: _CLGVIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayVirtualInterfaceGroupCommand\");\nvar se_CreateManagedPrefixListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateManagedPrefixListRequest(input, context),\n [_A]: _CMPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateManagedPrefixListCommand\");\nvar se_CreateNatGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNatGatewayRequest(input, context),\n [_A]: _CNG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNatGatewayCommand\");\nvar se_CreateNetworkAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkAclRequest(input, context),\n [_A]: _CNA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkAclCommand\");\nvar se_CreateNetworkAclEntryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkAclEntryRequest(input, context),\n [_A]: _CNAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkAclEntryCommand\");\nvar se_CreateNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInsightsAccessScopeRequest(input, context),\n [_A]: _CNIAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInsightsAccessScopeCommand\");\nvar se_CreateNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInsightsPathRequest(input, context),\n [_A]: _CNIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInsightsPathCommand\");\nvar se_CreateNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInterfaceRequest(input, context),\n [_A]: _CNI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInterfaceCommand\");\nvar se_CreateNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInterfacePermissionRequest(input, context),\n [_A]: _CNIPr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInterfacePermissionCommand\");\nvar se_CreatePlacementGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePlacementGroupRequest(input, context),\n [_A]: _CPG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePlacementGroupCommand\");\nvar se_CreatePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePublicIpv4PoolRequest(input, context),\n [_A]: _CPIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePublicIpv4PoolCommand\");\nvar se_CreateReplaceRootVolumeTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateReplaceRootVolumeTaskRequest(input, context),\n [_A]: _CRRVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateReplaceRootVolumeTaskCommand\");\nvar se_CreateReservedInstancesListingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateReservedInstancesListingRequest(input, context),\n [_A]: _CRILr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateReservedInstancesListingCommand\");\nvar se_CreateRestoreImageTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRestoreImageTaskRequest(input, context),\n [_A]: _CRIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRestoreImageTaskCommand\");\nvar se_CreateRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteRequest(input, context),\n [_A]: _CR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteCommand\");\nvar se_CreateRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteServerRequest(input, context),\n [_A]: _CRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteServerCommand\");\nvar se_CreateRouteServerEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteServerEndpointRequest(input, context),\n [_A]: _CRSE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteServerEndpointCommand\");\nvar se_CreateRouteServerPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteServerPeerRequest(input, context),\n [_A]: _CRSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteServerPeerCommand\");\nvar se_CreateRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteTableRequest(input, context),\n [_A]: _CRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteTableCommand\");\nvar se_CreateSecurityGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSecurityGroupRequest(input, context),\n [_A]: _CSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSecurityGroupCommand\");\nvar se_CreateSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSnapshotRequest(input, context),\n [_A]: _CSr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSnapshotCommand\");\nvar se_CreateSnapshotsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSnapshotsRequest(input, context),\n [_A]: _CSre,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSnapshotsCommand\");\nvar se_CreateSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSpotDatafeedSubscriptionRequest(input, context),\n [_A]: _CSDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSpotDatafeedSubscriptionCommand\");\nvar se_CreateStoreImageTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateStoreImageTaskRequest(input, context),\n [_A]: _CSIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateStoreImageTaskCommand\");\nvar se_CreateSubnetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSubnetRequest(input, context),\n [_A]: _CSrea,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSubnetCommand\");\nvar se_CreateSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSubnetCidrReservationRequest(input, context),\n [_A]: _CSCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSubnetCidrReservationCommand\");\nvar se_CreateTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTagsRequest(input, context),\n [_A]: _CT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTagsCommand\");\nvar se_CreateTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorFilterRequest(input, context),\n [_A]: _CTMF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorFilterCommand\");\nvar se_CreateTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorFilterRuleRequest(input, context),\n [_A]: _CTMFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorFilterRuleCommand\");\nvar se_CreateTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorSessionRequest(input, context),\n [_A]: _CTMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorSessionCommand\");\nvar se_CreateTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorTargetRequest(input, context),\n [_A]: _CTMT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorTargetCommand\");\nvar se_CreateTransitGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRequest(input, context),\n [_A]: _CTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayCommand\");\nvar se_CreateTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayConnectRequest(input, context),\n [_A]: _CTGC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayConnectCommand\");\nvar se_CreateTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayConnectPeerRequest(input, context),\n [_A]: _CTGCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayConnectPeerCommand\");\nvar se_CreateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _CTGMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayMulticastDomainCommand\");\nvar se_CreateTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _CTGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayPeeringAttachmentCommand\");\nvar se_CreateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayPolicyTableRequest(input, context),\n [_A]: _CTGPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayPolicyTableCommand\");\nvar se_CreateTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayPrefixListReferenceRequest(input, context),\n [_A]: _CTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayPrefixListReferenceCommand\");\nvar se_CreateTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRouteRequest(input, context),\n [_A]: _CTGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayRouteCommand\");\nvar se_CreateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRouteTableRequest(input, context),\n [_A]: _CTGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayRouteTableCommand\");\nvar se_CreateTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRouteTableAnnouncementRequest(input, context),\n [_A]: _CTGRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayRouteTableAnnouncementCommand\");\nvar se_CreateTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _CTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayVpcAttachmentCommand\");\nvar se_CreateVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessEndpointRequest(input, context),\n [_A]: _CVAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessEndpointCommand\");\nvar se_CreateVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessGroupRequest(input, context),\n [_A]: _CVAG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessGroupCommand\");\nvar se_CreateVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessInstanceRequest(input, context),\n [_A]: _CVAI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessInstanceCommand\");\nvar se_CreateVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _CVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessTrustProviderCommand\");\nvar se_CreateVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVolumeRequest(input, context),\n [_A]: _CV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVolumeCommand\");\nvar se_CreateVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcRequest(input, context),\n [_A]: _CVr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcCommand\");\nvar se_CreateVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcBlockPublicAccessExclusionRequest(input, context),\n [_A]: _CVBPAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcBlockPublicAccessExclusionCommand\");\nvar se_CreateVpcEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcEndpointRequest(input, context),\n [_A]: _CVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcEndpointCommand\");\nvar se_CreateVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcEndpointConnectionNotificationRequest(input, context),\n [_A]: _CVECN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcEndpointConnectionNotificationCommand\");\nvar se_CreateVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcEndpointServiceConfigurationRequest(input, context),\n [_A]: _CVESC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcEndpointServiceConfigurationCommand\");\nvar se_CreateVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcPeeringConnectionRequest(input, context),\n [_A]: _CVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcPeeringConnectionCommand\");\nvar se_CreateVpnConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpnConnectionRequest(input, context),\n [_A]: _CVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpnConnectionCommand\");\nvar se_CreateVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpnConnectionRouteRequest(input, context),\n [_A]: _CVCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpnConnectionRouteCommand\");\nvar se_CreateVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpnGatewayRequest(input, context),\n [_A]: _CVG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpnGatewayCommand\");\nvar se_DeleteCarrierGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCarrierGatewayRequest(input, context),\n [_A]: _DCG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCarrierGatewayCommand\");\nvar se_DeleteClientVpnEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteClientVpnEndpointRequest(input, context),\n [_A]: _DCVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteClientVpnEndpointCommand\");\nvar se_DeleteClientVpnRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteClientVpnRouteRequest(input, context),\n [_A]: _DCVR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteClientVpnRouteCommand\");\nvar se_DeleteCoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCoipCidrRequest(input, context),\n [_A]: _DCC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCoipCidrCommand\");\nvar se_DeleteCoipPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCoipPoolRequest(input, context),\n [_A]: _DCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCoipPoolCommand\");\nvar se_DeleteCustomerGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCustomerGatewayRequest(input, context),\n [_A]: _DCGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCustomerGatewayCommand\");\nvar se_DeleteDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteDhcpOptionsRequest(input, context),\n [_A]: _DDO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDhcpOptionsCommand\");\nvar se_DeleteEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteEgressOnlyInternetGatewayRequest(input, context),\n [_A]: _DEOIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteEgressOnlyInternetGatewayCommand\");\nvar se_DeleteFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteFleetsRequest(input, context),\n [_A]: _DF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFleetsCommand\");\nvar se_DeleteFlowLogsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteFlowLogsRequest(input, context),\n [_A]: _DFL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFlowLogsCommand\");\nvar se_DeleteFpgaImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteFpgaImageRequest(input, context),\n [_A]: _DFI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFpgaImageCommand\");\nvar se_DeleteInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInstanceConnectEndpointRequest(input, context),\n [_A]: _DICE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInstanceConnectEndpointCommand\");\nvar se_DeleteInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInstanceEventWindowRequest(input, context),\n [_A]: _DIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInstanceEventWindowCommand\");\nvar se_DeleteInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInternetGatewayRequest(input, context),\n [_A]: _DIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInternetGatewayCommand\");\nvar se_DeleteIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamRequest(input, context),\n [_A]: _DI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamCommand\");\nvar se_DeleteIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamExternalResourceVerificationTokenRequest(input, context),\n [_A]: _DIERVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamExternalResourceVerificationTokenCommand\");\nvar se_DeleteIpamPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamPoolRequest(input, context),\n [_A]: _DIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamPoolCommand\");\nvar se_DeleteIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamResourceDiscoveryRequest(input, context),\n [_A]: _DIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamResourceDiscoveryCommand\");\nvar se_DeleteIpamScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamScopeRequest(input, context),\n [_A]: _DIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamScopeCommand\");\nvar se_DeleteKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteKeyPairRequest(input, context),\n [_A]: _DKP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteKeyPairCommand\");\nvar se_DeleteLaunchTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLaunchTemplateRequest(input, context),\n [_A]: _DLT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLaunchTemplateCommand\");\nvar se_DeleteLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLaunchTemplateVersionsRequest(input, context),\n [_A]: _DLTV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLaunchTemplateVersionsCommand\");\nvar se_DeleteLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteRequest(input, context),\n [_A]: _DLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteCommand\");\nvar se_DeleteLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteTableRequest(input, context),\n [_A]: _DLGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteTableCommand\");\nvar se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest(input, context),\n [_A]: _DLGRTVIGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar se_DeleteLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteTableVpcAssociationRequest(input, context),\n [_A]: _DLGRTVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteTableVpcAssociationCommand\");\nvar se_DeleteLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayVirtualInterfaceRequest(input, context),\n [_A]: _DLGVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayVirtualInterfaceCommand\");\nvar se_DeleteLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayVirtualInterfaceGroupRequest(input, context),\n [_A]: _DLGVIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayVirtualInterfaceGroupCommand\");\nvar se_DeleteManagedPrefixListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteManagedPrefixListRequest(input, context),\n [_A]: _DMPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteManagedPrefixListCommand\");\nvar se_DeleteNatGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNatGatewayRequest(input, context),\n [_A]: _DNG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNatGatewayCommand\");\nvar se_DeleteNetworkAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkAclRequest(input, context),\n [_A]: _DNA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkAclCommand\");\nvar se_DeleteNetworkAclEntryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkAclEntryRequest(input, context),\n [_A]: _DNAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkAclEntryCommand\");\nvar se_DeleteNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsAccessScopeRequest(input, context),\n [_A]: _DNIAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsAccessScopeCommand\");\nvar se_DeleteNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsAccessScopeAnalysisRequest(input, context),\n [_A]: _DNIASA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsAccessScopeAnalysisCommand\");\nvar se_DeleteNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsAnalysisRequest(input, context),\n [_A]: _DNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsAnalysisCommand\");\nvar se_DeleteNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsPathRequest(input, context),\n [_A]: _DNIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsPathCommand\");\nvar se_DeleteNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInterfaceRequest(input, context),\n [_A]: _DNI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInterfaceCommand\");\nvar se_DeleteNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInterfacePermissionRequest(input, context),\n [_A]: _DNIPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInterfacePermissionCommand\");\nvar se_DeletePlacementGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePlacementGroupRequest(input, context),\n [_A]: _DPG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePlacementGroupCommand\");\nvar se_DeletePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePublicIpv4PoolRequest(input, context),\n [_A]: _DPIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePublicIpv4PoolCommand\");\nvar se_DeleteQueuedReservedInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteQueuedReservedInstancesRequest(input, context),\n [_A]: _DQRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteQueuedReservedInstancesCommand\");\nvar se_DeleteRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteRequest(input, context),\n [_A]: _DR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteCommand\");\nvar se_DeleteRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteServerRequest(input, context),\n [_A]: _DRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteServerCommand\");\nvar se_DeleteRouteServerEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteServerEndpointRequest(input, context),\n [_A]: _DRSE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteServerEndpointCommand\");\nvar se_DeleteRouteServerPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteServerPeerRequest(input, context),\n [_A]: _DRSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteServerPeerCommand\");\nvar se_DeleteRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteTableRequest(input, context),\n [_A]: _DRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteTableCommand\");\nvar se_DeleteSecurityGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSecurityGroupRequest(input, context),\n [_A]: _DSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSecurityGroupCommand\");\nvar se_DeleteSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSnapshotRequest(input, context),\n [_A]: _DS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSnapshotCommand\");\nvar se_DeleteSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSpotDatafeedSubscriptionRequest(input, context),\n [_A]: _DSDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSpotDatafeedSubscriptionCommand\");\nvar se_DeleteSubnetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSubnetRequest(input, context),\n [_A]: _DSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSubnetCommand\");\nvar se_DeleteSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSubnetCidrReservationRequest(input, context),\n [_A]: _DSCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSubnetCidrReservationCommand\");\nvar se_DeleteTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTagsRequest(input, context),\n [_A]: _DT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTagsCommand\");\nvar se_DeleteTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorFilterRequest(input, context),\n [_A]: _DTMF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorFilterCommand\");\nvar se_DeleteTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorFilterRuleRequest(input, context),\n [_A]: _DTMFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorFilterRuleCommand\");\nvar se_DeleteTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorSessionRequest(input, context),\n [_A]: _DTMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorSessionCommand\");\nvar se_DeleteTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorTargetRequest(input, context),\n [_A]: _DTMT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorTargetCommand\");\nvar se_DeleteTransitGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRequest(input, context),\n [_A]: _DTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayCommand\");\nvar se_DeleteTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayConnectRequest(input, context),\n [_A]: _DTGC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayConnectCommand\");\nvar se_DeleteTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayConnectPeerRequest(input, context),\n [_A]: _DTGCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayConnectPeerCommand\");\nvar se_DeleteTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _DTGMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayMulticastDomainCommand\");\nvar se_DeleteTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _DTGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayPeeringAttachmentCommand\");\nvar se_DeleteTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayPolicyTableRequest(input, context),\n [_A]: _DTGPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayPolicyTableCommand\");\nvar se_DeleteTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayPrefixListReferenceRequest(input, context),\n [_A]: _DTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayPrefixListReferenceCommand\");\nvar se_DeleteTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRouteRequest(input, context),\n [_A]: _DTGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayRouteCommand\");\nvar se_DeleteTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRouteTableRequest(input, context),\n [_A]: _DTGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayRouteTableCommand\");\nvar se_DeleteTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRouteTableAnnouncementRequest(input, context),\n [_A]: _DTGRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayRouteTableAnnouncementCommand\");\nvar se_DeleteTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _DTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayVpcAttachmentCommand\");\nvar se_DeleteVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessEndpointRequest(input, context),\n [_A]: _DVAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessEndpointCommand\");\nvar se_DeleteVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessGroupRequest(input, context),\n [_A]: _DVAG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessGroupCommand\");\nvar se_DeleteVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessInstanceRequest(input, context),\n [_A]: _DVAI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessInstanceCommand\");\nvar se_DeleteVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _DVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessTrustProviderCommand\");\nvar se_DeleteVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVolumeRequest(input, context),\n [_A]: _DV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVolumeCommand\");\nvar se_DeleteVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcRequest(input, context),\n [_A]: _DVe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcCommand\");\nvar se_DeleteVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcBlockPublicAccessExclusionRequest(input, context),\n [_A]: _DVBPAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcBlockPublicAccessExclusionCommand\");\nvar se_DeleteVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcEndpointConnectionNotificationsRequest(input, context),\n [_A]: _DVECN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcEndpointConnectionNotificationsCommand\");\nvar se_DeleteVpcEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcEndpointsRequest(input, context),\n [_A]: _DVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcEndpointsCommand\");\nvar se_DeleteVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcEndpointServiceConfigurationsRequest(input, context),\n [_A]: _DVESC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcEndpointServiceConfigurationsCommand\");\nvar se_DeleteVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcPeeringConnectionRequest(input, context),\n [_A]: _DVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcPeeringConnectionCommand\");\nvar se_DeleteVpnConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpnConnectionRequest(input, context),\n [_A]: _DVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpnConnectionCommand\");\nvar se_DeleteVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpnConnectionRouteRequest(input, context),\n [_A]: _DVCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpnConnectionRouteCommand\");\nvar se_DeleteVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpnGatewayRequest(input, context),\n [_A]: _DVG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpnGatewayCommand\");\nvar se_DeprovisionByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionByoipCidrRequest(input, context),\n [_A]: _DBC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionByoipCidrCommand\");\nvar se_DeprovisionIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionIpamByoasnRequest(input, context),\n [_A]: _DIB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionIpamByoasnCommand\");\nvar se_DeprovisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionIpamPoolCidrRequest(input, context),\n [_A]: _DIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionIpamPoolCidrCommand\");\nvar se_DeprovisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionPublicIpv4PoolCidrRequest(input, context),\n [_A]: _DPIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionPublicIpv4PoolCidrCommand\");\nvar se_DeregisterImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterImageRequest(input, context),\n [_A]: _DIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterImageCommand\");\nvar se_DeregisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterInstanceEventNotificationAttributesRequest(input, context),\n [_A]: _DIENA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterInstanceEventNotificationAttributesCommand\");\nvar se_DeregisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterTransitGatewayMulticastGroupMembersRequest(input, context),\n [_A]: _DTGMGM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTransitGatewayMulticastGroupMembersCommand\");\nvar se_DeregisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterTransitGatewayMulticastGroupSourcesRequest(input, context),\n [_A]: _DTGMGS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTransitGatewayMulticastGroupSourcesCommand\");\nvar se_DescribeAccountAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAccountAttributesRequest(input, context),\n [_A]: _DAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAccountAttributesCommand\");\nvar se_DescribeAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAddressesRequest(input, context),\n [_A]: _DA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAddressesCommand\");\nvar se_DescribeAddressesAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAddressesAttributeRequest(input, context),\n [_A]: _DAAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAddressesAttributeCommand\");\nvar se_DescribeAddressTransfersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAddressTransfersRequest(input, context),\n [_A]: _DAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAddressTransfersCommand\");\nvar se_DescribeAggregateIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAggregateIdFormatRequest(input, context),\n [_A]: _DAIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAggregateIdFormatCommand\");\nvar se_DescribeAvailabilityZonesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAvailabilityZonesRequest(input, context),\n [_A]: _DAZ,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAvailabilityZonesCommand\");\nvar se_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAwsNetworkPerformanceMetricSubscriptionsRequest(input, context),\n [_A]: _DANPMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\");\nvar se_DescribeBundleTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeBundleTasksRequest(input, context),\n [_A]: _DBT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeBundleTasksCommand\");\nvar se_DescribeByoipCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeByoipCidrsRequest(input, context),\n [_A]: _DBCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeByoipCidrsCommand\");\nvar se_DescribeCapacityBlockExtensionHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityBlockExtensionHistoryRequest(input, context),\n [_A]: _DCBEH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityBlockExtensionHistoryCommand\");\nvar se_DescribeCapacityBlockExtensionOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityBlockExtensionOfferingsRequest(input, context),\n [_A]: _DCBEO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityBlockExtensionOfferingsCommand\");\nvar se_DescribeCapacityBlockOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityBlockOfferingsRequest(input, context),\n [_A]: _DCBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityBlockOfferingsCommand\");\nvar se_DescribeCapacityReservationBillingRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationBillingRequestsRequest(input, context),\n [_A]: _DCRBR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationBillingRequestsCommand\");\nvar se_DescribeCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationFleetsRequest(input, context),\n [_A]: _DCRF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationFleetsCommand\");\nvar se_DescribeCapacityReservationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationsRequest(input, context),\n [_A]: _DCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationsCommand\");\nvar se_DescribeCarrierGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCarrierGatewaysRequest(input, context),\n [_A]: _DCGes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCarrierGatewaysCommand\");\nvar se_DescribeClassicLinkInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClassicLinkInstancesRequest(input, context),\n [_A]: _DCLI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClassicLinkInstancesCommand\");\nvar se_DescribeClientVpnAuthorizationRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnAuthorizationRulesRequest(input, context),\n [_A]: _DCVAR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnAuthorizationRulesCommand\");\nvar se_DescribeClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnConnectionsRequest(input, context),\n [_A]: _DCVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnConnectionsCommand\");\nvar se_DescribeClientVpnEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnEndpointsRequest(input, context),\n [_A]: _DCVEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnEndpointsCommand\");\nvar se_DescribeClientVpnRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnRoutesRequest(input, context),\n [_A]: _DCVRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnRoutesCommand\");\nvar se_DescribeClientVpnTargetNetworksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnTargetNetworksRequest(input, context),\n [_A]: _DCVTN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnTargetNetworksCommand\");\nvar se_DescribeCoipPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCoipPoolsRequest(input, context),\n [_A]: _DCPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCoipPoolsCommand\");\nvar se_DescribeConversionTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeConversionTasksRequest(input, context),\n [_A]: _DCT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeConversionTasksCommand\");\nvar se_DescribeCustomerGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCustomerGatewaysRequest(input, context),\n [_A]: _DCGesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCustomerGatewaysCommand\");\nvar se_DescribeDeclarativePoliciesReportsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeDeclarativePoliciesReportsRequest(input, context),\n [_A]: _DDPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeclarativePoliciesReportsCommand\");\nvar se_DescribeDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeDhcpOptionsRequest(input, context),\n [_A]: _DDOe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDhcpOptionsCommand\");\nvar se_DescribeEgressOnlyInternetGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeEgressOnlyInternetGatewaysRequest(input, context),\n [_A]: _DEOIGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeEgressOnlyInternetGatewaysCommand\");\nvar se_DescribeElasticGpusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeElasticGpusRequest(input, context),\n [_A]: _DEG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeElasticGpusCommand\");\nvar se_DescribeExportImageTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeExportImageTasksRequest(input, context),\n [_A]: _DEIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExportImageTasksCommand\");\nvar se_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeExportTasksRequest(input, context),\n [_A]: _DET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExportTasksCommand\");\nvar se_DescribeFastLaunchImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFastLaunchImagesRequest(input, context),\n [_A]: _DFLI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFastLaunchImagesCommand\");\nvar se_DescribeFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFastSnapshotRestoresRequest(input, context),\n [_A]: _DFSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFastSnapshotRestoresCommand\");\nvar se_DescribeFleetHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFleetHistoryRequest(input, context),\n [_A]: _DFH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFleetHistoryCommand\");\nvar se_DescribeFleetInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFleetInstancesRequest(input, context),\n [_A]: _DFIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFleetInstancesCommand\");\nvar se_DescribeFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFleetsRequest(input, context),\n [_A]: _DFe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFleetsCommand\");\nvar se_DescribeFlowLogsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFlowLogsRequest(input, context),\n [_A]: _DFLe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFlowLogsCommand\");\nvar se_DescribeFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFpgaImageAttributeRequest(input, context),\n [_A]: _DFIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFpgaImageAttributeCommand\");\nvar se_DescribeFpgaImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFpgaImagesRequest(input, context),\n [_A]: _DFIes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFpgaImagesCommand\");\nvar se_DescribeHostReservationOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeHostReservationOfferingsRequest(input, context),\n [_A]: _DHRO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeHostReservationOfferingsCommand\");\nvar se_DescribeHostReservationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeHostReservationsRequest(input, context),\n [_A]: _DHR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeHostReservationsCommand\");\nvar se_DescribeHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeHostsRequest(input, context),\n [_A]: _DH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeHostsCommand\");\nvar se_DescribeIamInstanceProfileAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIamInstanceProfileAssociationsRequest(input, context),\n [_A]: _DIIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIamInstanceProfileAssociationsCommand\");\nvar se_DescribeIdentityIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIdentityIdFormatRequest(input, context),\n [_A]: _DIIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdentityIdFormatCommand\");\nvar se_DescribeIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIdFormatRequest(input, context),\n [_A]: _DIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdFormatCommand\");\nvar se_DescribeImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImageAttributeRequest(input, context),\n [_A]: _DIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImageAttributeCommand\");\nvar se_DescribeImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImagesRequest(input, context),\n [_A]: _DIes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImagesCommand\");\nvar se_DescribeImportImageTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImportImageTasksRequest(input, context),\n [_A]: _DIIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImportImageTasksCommand\");\nvar se_DescribeImportSnapshotTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImportSnapshotTasksRequest(input, context),\n [_A]: _DIST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImportSnapshotTasksCommand\");\nvar se_DescribeInstanceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceAttributeRequest(input, context),\n [_A]: _DIAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceAttributeCommand\");\nvar se_DescribeInstanceConnectEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceConnectEndpointsRequest(input, context),\n [_A]: _DICEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceConnectEndpointsCommand\");\nvar se_DescribeInstanceCreditSpecificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceCreditSpecificationsRequest(input, context),\n [_A]: _DICS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceCreditSpecificationsCommand\");\nvar se_DescribeInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceEventNotificationAttributesRequest(input, context),\n [_A]: _DIENAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceEventNotificationAttributesCommand\");\nvar se_DescribeInstanceEventWindowsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceEventWindowsRequest(input, context),\n [_A]: _DIEWe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceEventWindowsCommand\");\nvar se_DescribeInstanceImageMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceImageMetadataRequest(input, context),\n [_A]: _DIIM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceImageMetadataCommand\");\nvar se_DescribeInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstancesRequest(input, context),\n [_A]: _DIesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancesCommand\");\nvar se_DescribeInstanceStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceStatusRequest(input, context),\n [_A]: _DISe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceStatusCommand\");\nvar se_DescribeInstanceTopologyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceTopologyRequest(input, context),\n [_A]: _DIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceTopologyCommand\");\nvar se_DescribeInstanceTypeOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceTypeOfferingsRequest(input, context),\n [_A]: _DITO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceTypeOfferingsCommand\");\nvar se_DescribeInstanceTypesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceTypesRequest(input, context),\n [_A]: _DITe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceTypesCommand\");\nvar se_DescribeInternetGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInternetGatewaysRequest(input, context),\n [_A]: _DIGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInternetGatewaysCommand\");\nvar se_DescribeIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamByoasnRequest(input, context),\n [_A]: _DIBe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamByoasnCommand\");\nvar se_DescribeIpamExternalResourceVerificationTokensCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamExternalResourceVerificationTokensRequest(input, context),\n [_A]: _DIERVTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamExternalResourceVerificationTokensCommand\");\nvar se_DescribeIpamPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamPoolsRequest(input, context),\n [_A]: _DIPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamPoolsCommand\");\nvar se_DescribeIpamResourceDiscoveriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamResourceDiscoveriesRequest(input, context),\n [_A]: _DIRDe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamResourceDiscoveriesCommand\");\nvar se_DescribeIpamResourceDiscoveryAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamResourceDiscoveryAssociationsRequest(input, context),\n [_A]: _DIRDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamResourceDiscoveryAssociationsCommand\");\nvar se_DescribeIpamsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamsRequest(input, context),\n [_A]: _DIescr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamsCommand\");\nvar se_DescribeIpamScopesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamScopesRequest(input, context),\n [_A]: _DISes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamScopesCommand\");\nvar se_DescribeIpv6PoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpv6PoolsRequest(input, context),\n [_A]: _DIPes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpv6PoolsCommand\");\nvar se_DescribeKeyPairsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeKeyPairsRequest(input, context),\n [_A]: _DKPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeKeyPairsCommand\");\nvar se_DescribeLaunchTemplatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLaunchTemplatesRequest(input, context),\n [_A]: _DLTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLaunchTemplatesCommand\");\nvar se_DescribeLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLaunchTemplateVersionsRequest(input, context),\n [_A]: _DLTVe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLaunchTemplateVersionsCommand\");\nvar se_DescribeLocalGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayRouteTablesRequest(input, context),\n [_A]: _DLGRTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayRouteTablesCommand\");\nvar se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest(input, context),\n [_A]: _DLGRTVIGAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\");\nvar se_DescribeLocalGatewayRouteTableVpcAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayRouteTableVpcAssociationsRequest(input, context),\n [_A]: _DLGRTVAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayRouteTableVpcAssociationsCommand\");\nvar se_DescribeLocalGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewaysRequest(input, context),\n [_A]: _DLG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewaysCommand\");\nvar se_DescribeLocalGatewayVirtualInterfaceGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayVirtualInterfaceGroupsRequest(input, context),\n [_A]: _DLGVIGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayVirtualInterfaceGroupsCommand\");\nvar se_DescribeLocalGatewayVirtualInterfacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayVirtualInterfacesRequest(input, context),\n [_A]: _DLGVIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayVirtualInterfacesCommand\");\nvar se_DescribeLockedSnapshotsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLockedSnapshotsRequest(input, context),\n [_A]: _DLS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLockedSnapshotsCommand\");\nvar se_DescribeMacHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeMacHostsRequest(input, context),\n [_A]: _DMH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMacHostsCommand\");\nvar se_DescribeManagedPrefixListsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeManagedPrefixListsRequest(input, context),\n [_A]: _DMPLe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeManagedPrefixListsCommand\");\nvar se_DescribeMovingAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeMovingAddressesRequest(input, context),\n [_A]: _DMA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMovingAddressesCommand\");\nvar se_DescribeNatGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNatGatewaysRequest(input, context),\n [_A]: _DNGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNatGatewaysCommand\");\nvar se_DescribeNetworkAclsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkAclsRequest(input, context),\n [_A]: _DNAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkAclsCommand\");\nvar se_DescribeNetworkInsightsAccessScopeAnalysesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsAccessScopeAnalysesRequest(input, context),\n [_A]: _DNIASAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsAccessScopeAnalysesCommand\");\nvar se_DescribeNetworkInsightsAccessScopesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsAccessScopesRequest(input, context),\n [_A]: _DNIASe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsAccessScopesCommand\");\nvar se_DescribeNetworkInsightsAnalysesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsAnalysesRequest(input, context),\n [_A]: _DNIAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsAnalysesCommand\");\nvar se_DescribeNetworkInsightsPathsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsPathsRequest(input, context),\n [_A]: _DNIPes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsPathsCommand\");\nvar se_DescribeNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInterfaceAttributeRequest(input, context),\n [_A]: _DNIAes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInterfaceAttributeCommand\");\nvar se_DescribeNetworkInterfacePermissionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInterfacePermissionsRequest(input, context),\n [_A]: _DNIPesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInterfacePermissionsCommand\");\nvar se_DescribeNetworkInterfacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInterfacesRequest(input, context),\n [_A]: _DNIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInterfacesCommand\");\nvar se_DescribeOutpostLagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeOutpostLagsRequest(input, context),\n [_A]: _DOL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeOutpostLagsCommand\");\nvar se_DescribePlacementGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePlacementGroupsRequest(input, context),\n [_A]: _DPGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePlacementGroupsCommand\");\nvar se_DescribePrefixListsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePrefixListsRequest(input, context),\n [_A]: _DPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePrefixListsCommand\");\nvar se_DescribePrincipalIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePrincipalIdFormatRequest(input, context),\n [_A]: _DPIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePrincipalIdFormatCommand\");\nvar se_DescribePublicIpv4PoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePublicIpv4PoolsRequest(input, context),\n [_A]: _DPIPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePublicIpv4PoolsCommand\");\nvar se_DescribeRegionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRegionsRequest(input, context),\n [_A]: _DRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRegionsCommand\");\nvar se_DescribeReplaceRootVolumeTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReplaceRootVolumeTasksRequest(input, context),\n [_A]: _DRRVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReplaceRootVolumeTasksCommand\");\nvar se_DescribeReservedInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesRequest(input, context),\n [_A]: _DRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesCommand\");\nvar se_DescribeReservedInstancesListingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesListingsRequest(input, context),\n [_A]: _DRIL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesListingsCommand\");\nvar se_DescribeReservedInstancesModificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesModificationsRequest(input, context),\n [_A]: _DRIM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesModificationsCommand\");\nvar se_DescribeReservedInstancesOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesOfferingsRequest(input, context),\n [_A]: _DRIO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesOfferingsCommand\");\nvar se_DescribeRouteServerEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteServerEndpointsRequest(input, context),\n [_A]: _DRSEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteServerEndpointsCommand\");\nvar se_DescribeRouteServerPeersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteServerPeersRequest(input, context),\n [_A]: _DRSPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteServerPeersCommand\");\nvar se_DescribeRouteServersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteServersRequest(input, context),\n [_A]: _DRSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteServersCommand\");\nvar se_DescribeRouteTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteTablesRequest(input, context),\n [_A]: _DRTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteTablesCommand\");\nvar se_DescribeScheduledInstanceAvailabilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeScheduledInstanceAvailabilityRequest(input, context),\n [_A]: _DSIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeScheduledInstanceAvailabilityCommand\");\nvar se_DescribeScheduledInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeScheduledInstancesRequest(input, context),\n [_A]: _DSI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeScheduledInstancesCommand\");\nvar se_DescribeSecurityGroupReferencesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupReferencesRequest(input, context),\n [_A]: _DSGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupReferencesCommand\");\nvar se_DescribeSecurityGroupRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupRulesRequest(input, context),\n [_A]: _DSGRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupRulesCommand\");\nvar se_DescribeSecurityGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupsRequest(input, context),\n [_A]: _DSGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupsCommand\");\nvar se_DescribeSecurityGroupVpcAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupVpcAssociationsRequest(input, context),\n [_A]: _DSGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupVpcAssociationsCommand\");\nvar se_DescribeServiceLinkVirtualInterfacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeServiceLinkVirtualInterfacesRequest(input, context),\n [_A]: _DSLVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServiceLinkVirtualInterfacesCommand\");\nvar se_DescribeSnapshotAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSnapshotAttributeRequest(input, context),\n [_A]: _DSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSnapshotAttributeCommand\");\nvar se_DescribeSnapshotsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSnapshotsRequest(input, context),\n [_A]: _DSes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSnapshotsCommand\");\nvar se_DescribeSnapshotTierStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSnapshotTierStatusRequest(input, context),\n [_A]: _DSTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSnapshotTierStatusCommand\");\nvar se_DescribeSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotDatafeedSubscriptionRequest(input, context),\n [_A]: _DSDSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotDatafeedSubscriptionCommand\");\nvar se_DescribeSpotFleetInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotFleetInstancesRequest(input, context),\n [_A]: _DSFI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotFleetInstancesCommand\");\nvar se_DescribeSpotFleetRequestHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotFleetRequestHistoryRequest(input, context),\n [_A]: _DSFRH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotFleetRequestHistoryCommand\");\nvar se_DescribeSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotFleetRequestsRequest(input, context),\n [_A]: _DSFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotFleetRequestsCommand\");\nvar se_DescribeSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotInstanceRequestsRequest(input, context),\n [_A]: _DSIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotInstanceRequestsCommand\");\nvar se_DescribeSpotPriceHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotPriceHistoryRequest(input, context),\n [_A]: _DSPH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotPriceHistoryCommand\");\nvar se_DescribeStaleSecurityGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeStaleSecurityGroupsRequest(input, context),\n [_A]: _DSSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStaleSecurityGroupsCommand\");\nvar se_DescribeStoreImageTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeStoreImageTasksRequest(input, context),\n [_A]: _DSIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStoreImageTasksCommand\");\nvar se_DescribeSubnetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSubnetsRequest(input, context),\n [_A]: _DSesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSubnetsCommand\");\nvar se_DescribeTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTagsRequest(input, context),\n [_A]: _DTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTagsCommand\");\nvar se_DescribeTrafficMirrorFilterRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorFilterRulesRequest(input, context),\n [_A]: _DTMFRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorFilterRulesCommand\");\nvar se_DescribeTrafficMirrorFiltersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorFiltersRequest(input, context),\n [_A]: _DTMFe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorFiltersCommand\");\nvar se_DescribeTrafficMirrorSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorSessionsRequest(input, context),\n [_A]: _DTMSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorSessionsCommand\");\nvar se_DescribeTrafficMirrorTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorTargetsRequest(input, context),\n [_A]: _DTMTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorTargetsCommand\");\nvar se_DescribeTransitGatewayAttachmentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayAttachmentsRequest(input, context),\n [_A]: _DTGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayAttachmentsCommand\");\nvar se_DescribeTransitGatewayConnectPeersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayConnectPeersRequest(input, context),\n [_A]: _DTGCPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayConnectPeersCommand\");\nvar se_DescribeTransitGatewayConnectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayConnectsRequest(input, context),\n [_A]: _DTGCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayConnectsCommand\");\nvar se_DescribeTransitGatewayMulticastDomainsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayMulticastDomainsRequest(input, context),\n [_A]: _DTGMDe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayMulticastDomainsCommand\");\nvar se_DescribeTransitGatewayPeeringAttachmentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayPeeringAttachmentsRequest(input, context),\n [_A]: _DTGPAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayPeeringAttachmentsCommand\");\nvar se_DescribeTransitGatewayPolicyTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayPolicyTablesRequest(input, context),\n [_A]: _DTGPTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayPolicyTablesCommand\");\nvar se_DescribeTransitGatewayRouteTableAnnouncementsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayRouteTableAnnouncementsRequest(input, context),\n [_A]: _DTGRTAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayRouteTableAnnouncementsCommand\");\nvar se_DescribeTransitGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayRouteTablesRequest(input, context),\n [_A]: _DTGRTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayRouteTablesCommand\");\nvar se_DescribeTransitGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewaysRequest(input, context),\n [_A]: _DTGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewaysCommand\");\nvar se_DescribeTransitGatewayVpcAttachmentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayVpcAttachmentsRequest(input, context),\n [_A]: _DTGVAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayVpcAttachmentsCommand\");\nvar se_DescribeTrunkInterfaceAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrunkInterfaceAssociationsRequest(input, context),\n [_A]: _DTIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrunkInterfaceAssociationsCommand\");\nvar se_DescribeVerifiedAccessEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessEndpointsRequest(input, context),\n [_A]: _DVAEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessEndpointsCommand\");\nvar se_DescribeVerifiedAccessGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessGroupsRequest(input, context),\n [_A]: _DVAGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessGroupsCommand\");\nvar se_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessInstanceLoggingConfigurationsRequest(input, context),\n [_A]: _DVAILC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\");\nvar se_DescribeVerifiedAccessInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessInstancesRequest(input, context),\n [_A]: _DVAIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessInstancesCommand\");\nvar se_DescribeVerifiedAccessTrustProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessTrustProvidersRequest(input, context),\n [_A]: _DVATPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessTrustProvidersCommand\");\nvar se_DescribeVolumeAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumeAttributeRequest(input, context),\n [_A]: _DVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumeAttributeCommand\");\nvar se_DescribeVolumesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumesRequest(input, context),\n [_A]: _DVes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumesCommand\");\nvar se_DescribeVolumesModificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumesModificationsRequest(input, context),\n [_A]: _DVM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumesModificationsCommand\");\nvar se_DescribeVolumeStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumeStatusRequest(input, context),\n [_A]: _DVS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumeStatusCommand\");\nvar se_DescribeVpcAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcAttributeRequest(input, context),\n [_A]: _DVAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcAttributeCommand\");\nvar se_DescribeVpcBlockPublicAccessExclusionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcBlockPublicAccessExclusionsRequest(input, context),\n [_A]: _DVBPAEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcBlockPublicAccessExclusionsCommand\");\nvar se_DescribeVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcBlockPublicAccessOptionsRequest(input, context),\n [_A]: _DVBPAO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcBlockPublicAccessOptionsCommand\");\nvar se_DescribeVpcClassicLinkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcClassicLinkRequest(input, context),\n [_A]: _DVCL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcClassicLinkCommand\");\nvar se_DescribeVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcClassicLinkDnsSupportRequest(input, context),\n [_A]: _DVCLDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcClassicLinkDnsSupportCommand\");\nvar se_DescribeVpcEndpointAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointAssociationsRequest(input, context),\n [_A]: _DVEA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointAssociationsCommand\");\nvar se_DescribeVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointConnectionNotificationsRequest(input, context),\n [_A]: _DVECNe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointConnectionNotificationsCommand\");\nvar se_DescribeVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointConnectionsRequest(input, context),\n [_A]: _DVEC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointConnectionsCommand\");\nvar se_DescribeVpcEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointsRequest(input, context),\n [_A]: _DVEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointsCommand\");\nvar se_DescribeVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointServiceConfigurationsRequest(input, context),\n [_A]: _DVESCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointServiceConfigurationsCommand\");\nvar se_DescribeVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointServicePermissionsRequest(input, context),\n [_A]: _DVESP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointServicePermissionsCommand\");\nvar se_DescribeVpcEndpointServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointServicesRequest(input, context),\n [_A]: _DVES,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointServicesCommand\");\nvar se_DescribeVpcPeeringConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcPeeringConnectionsRequest(input, context),\n [_A]: _DVPCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcPeeringConnectionsCommand\");\nvar se_DescribeVpcsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcsRequest(input, context),\n [_A]: _DVesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcsCommand\");\nvar se_DescribeVpnConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpnConnectionsRequest(input, context),\n [_A]: _DVCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpnConnectionsCommand\");\nvar se_DescribeVpnGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpnGatewaysRequest(input, context),\n [_A]: _DVGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpnGatewaysCommand\");\nvar se_DetachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachClassicLinkVpcRequest(input, context),\n [_A]: _DCLV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachClassicLinkVpcCommand\");\nvar se_DetachInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachInternetGatewayRequest(input, context),\n [_A]: _DIGet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachInternetGatewayCommand\");\nvar se_DetachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachNetworkInterfaceRequest(input, context),\n [_A]: _DNIet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachNetworkInterfaceCommand\");\nvar se_DetachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _DVATPet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachVerifiedAccessTrustProviderCommand\");\nvar se_DetachVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachVolumeRequest(input, context),\n [_A]: _DVet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachVolumeCommand\");\nvar se_DetachVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachVpnGatewayRequest(input, context),\n [_A]: _DVGet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachVpnGatewayCommand\");\nvar se_DisableAddressTransferCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableAddressTransferRequest(input, context),\n [_A]: _DATi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableAddressTransferCommand\");\nvar se_DisableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableAllowedImagesSettingsRequest(input, context),\n [_A]: _DAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableAllowedImagesSettingsCommand\");\nvar se_DisableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableAwsNetworkPerformanceMetricSubscriptionRequest(input, context),\n [_A]: _DANPMSi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar se_DisableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableEbsEncryptionByDefaultRequest(input, context),\n [_A]: _DEEBD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableEbsEncryptionByDefaultCommand\");\nvar se_DisableFastLaunchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableFastLaunchRequest(input, context),\n [_A]: _DFLi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableFastLaunchCommand\");\nvar se_DisableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableFastSnapshotRestoresRequest(input, context),\n [_A]: _DFSRi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableFastSnapshotRestoresCommand\");\nvar se_DisableImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageRequest(input, context),\n [_A]: _DIi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageCommand\");\nvar se_DisableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageBlockPublicAccessRequest(input, context),\n [_A]: _DIBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageBlockPublicAccessCommand\");\nvar se_DisableImageDeprecationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageDeprecationRequest(input, context),\n [_A]: _DID,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageDeprecationCommand\");\nvar se_DisableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageDeregistrationProtectionRequest(input, context),\n [_A]: _DIDP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageDeregistrationProtectionCommand\");\nvar se_DisableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableIpamOrganizationAdminAccountRequest(input, context),\n [_A]: _DIOAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableIpamOrganizationAdminAccountCommand\");\nvar se_DisableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableRouteServerPropagationRequest(input, context),\n [_A]: _DRSPi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableRouteServerPropagationCommand\");\nvar se_DisableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableSerialConsoleAccessRequest(input, context),\n [_A]: _DSCA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableSerialConsoleAccessCommand\");\nvar se_DisableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableSnapshotBlockPublicAccessRequest(input, context),\n [_A]: _DSBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableSnapshotBlockPublicAccessCommand\");\nvar se_DisableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableTransitGatewayRouteTablePropagationRequest(input, context),\n [_A]: _DTGRTP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableTransitGatewayRouteTablePropagationCommand\");\nvar se_DisableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableVgwRoutePropagationRequest(input, context),\n [_A]: _DVRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableVgwRoutePropagationCommand\");\nvar se_DisableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableVpcClassicLinkRequest(input, context),\n [_A]: _DVCLi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableVpcClassicLinkCommand\");\nvar se_DisableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableVpcClassicLinkDnsSupportRequest(input, context),\n [_A]: _DVCLDSi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableVpcClassicLinkDnsSupportCommand\");\nvar se_DisassociateAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateAddressRequest(input, context),\n [_A]: _DAi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateAddressCommand\");\nvar se_DisassociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateCapacityReservationBillingOwnerRequest(input, context),\n [_A]: _DCRBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateCapacityReservationBillingOwnerCommand\");\nvar se_DisassociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateClientVpnTargetNetworkRequest(input, context),\n [_A]: _DCVTNi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateClientVpnTargetNetworkCommand\");\nvar se_DisassociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateEnclaveCertificateIamRoleRequest(input, context),\n [_A]: _DECIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateEnclaveCertificateIamRoleCommand\");\nvar se_DisassociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateIamInstanceProfileRequest(input, context),\n [_A]: _DIIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateIamInstanceProfileCommand\");\nvar se_DisassociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateInstanceEventWindowRequest(input, context),\n [_A]: _DIEWi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateInstanceEventWindowCommand\");\nvar se_DisassociateIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateIpamByoasnRequest(input, context),\n [_A]: _DIBi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateIpamByoasnCommand\");\nvar se_DisassociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateIpamResourceDiscoveryRequest(input, context),\n [_A]: _DIRDi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateIpamResourceDiscoveryCommand\");\nvar se_DisassociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateNatGatewayAddressRequest(input, context),\n [_A]: _DNGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateNatGatewayAddressCommand\");\nvar se_DisassociateRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateRouteServerRequest(input, context),\n [_A]: _DRSi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateRouteServerCommand\");\nvar se_DisassociateRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateRouteTableRequest(input, context),\n [_A]: _DRTi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateRouteTableCommand\");\nvar se_DisassociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateSecurityGroupVpcRequest(input, context),\n [_A]: _DSGV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateSecurityGroupVpcCommand\");\nvar se_DisassociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateSubnetCidrBlockRequest(input, context),\n [_A]: _DSCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateSubnetCidrBlockCommand\");\nvar se_DisassociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _DTGMDi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTransitGatewayMulticastDomainCommand\");\nvar se_DisassociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTransitGatewayPolicyTableRequest(input, context),\n [_A]: _DTGPTi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTransitGatewayPolicyTableCommand\");\nvar se_DisassociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTransitGatewayRouteTableRequest(input, context),\n [_A]: _DTGRTi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTransitGatewayRouteTableCommand\");\nvar se_DisassociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTrunkInterfaceRequest(input, context),\n [_A]: _DTI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTrunkInterfaceCommand\");\nvar se_DisassociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateVpcCidrBlockRequest(input, context),\n [_A]: _DVCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateVpcCidrBlockCommand\");\nvar se_EnableAddressTransferCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableAddressTransferRequest(input, context),\n [_A]: _EAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableAddressTransferCommand\");\nvar se_EnableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableAllowedImagesSettingsRequest(input, context),\n [_A]: _EAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableAllowedImagesSettingsCommand\");\nvar se_EnableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableAwsNetworkPerformanceMetricSubscriptionRequest(input, context),\n [_A]: _EANPMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar se_EnableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableEbsEncryptionByDefaultRequest(input, context),\n [_A]: _EEEBD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableEbsEncryptionByDefaultCommand\");\nvar se_EnableFastLaunchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableFastLaunchRequest(input, context),\n [_A]: _EFL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableFastLaunchCommand\");\nvar se_EnableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableFastSnapshotRestoresRequest(input, context),\n [_A]: _EFSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableFastSnapshotRestoresCommand\");\nvar se_EnableImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageRequest(input, context),\n [_A]: _EI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageCommand\");\nvar se_EnableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageBlockPublicAccessRequest(input, context),\n [_A]: _EIBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageBlockPublicAccessCommand\");\nvar se_EnableImageDeprecationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageDeprecationRequest(input, context),\n [_A]: _EID,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageDeprecationCommand\");\nvar se_EnableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageDeregistrationProtectionRequest(input, context),\n [_A]: _EIDP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageDeregistrationProtectionCommand\");\nvar se_EnableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableIpamOrganizationAdminAccountRequest(input, context),\n [_A]: _EIOAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableIpamOrganizationAdminAccountCommand\");\nvar se_EnableReachabilityAnalyzerOrganizationSharingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableReachabilityAnalyzerOrganizationSharingRequest(input, context),\n [_A]: _ERAOS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableReachabilityAnalyzerOrganizationSharingCommand\");\nvar se_EnableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableRouteServerPropagationRequest(input, context),\n [_A]: _ERSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableRouteServerPropagationCommand\");\nvar se_EnableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableSerialConsoleAccessRequest(input, context),\n [_A]: _ESCA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableSerialConsoleAccessCommand\");\nvar se_EnableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableSnapshotBlockPublicAccessRequest(input, context),\n [_A]: _ESBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableSnapshotBlockPublicAccessCommand\");\nvar se_EnableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableTransitGatewayRouteTablePropagationRequest(input, context),\n [_A]: _ETGRTP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableTransitGatewayRouteTablePropagationCommand\");\nvar se_EnableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVgwRoutePropagationRequest(input, context),\n [_A]: _EVRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVgwRoutePropagationCommand\");\nvar se_EnableVolumeIOCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVolumeIORequest(input, context),\n [_A]: _EVIO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVolumeIOCommand\");\nvar se_EnableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVpcClassicLinkRequest(input, context),\n [_A]: _EVCL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVpcClassicLinkCommand\");\nvar se_EnableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVpcClassicLinkDnsSupportRequest(input, context),\n [_A]: _EVCLDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVpcClassicLinkDnsSupportCommand\");\nvar se_ExportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportClientVpnClientCertificateRevocationListRequest(input, context),\n [_A]: _ECVCCRL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportClientVpnClientCertificateRevocationListCommand\");\nvar se_ExportClientVpnClientConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportClientVpnClientConfigurationRequest(input, context),\n [_A]: _ECVCC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportClientVpnClientConfigurationCommand\");\nvar se_ExportImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportImageRequest(input, context),\n [_A]: _EIx,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportImageCommand\");\nvar se_ExportTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportTransitGatewayRoutesRequest(input, context),\n [_A]: _ETGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportTransitGatewayRoutesCommand\");\nvar se_ExportVerifiedAccessInstanceClientConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportVerifiedAccessInstanceClientConfigurationRequest(input, context),\n [_A]: _EVAICC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportVerifiedAccessInstanceClientConfigurationCommand\");\nvar se_GetAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAllowedImagesSettingsRequest(input, context),\n [_A]: _GAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAllowedImagesSettingsCommand\");\nvar se_GetAssociatedEnclaveCertificateIamRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAssociatedEnclaveCertificateIamRolesRequest(input, context),\n [_A]: _GAECIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAssociatedEnclaveCertificateIamRolesCommand\");\nvar se_GetAssociatedIpv6PoolCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAssociatedIpv6PoolCidrsRequest(input, context),\n [_A]: _GAIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAssociatedIpv6PoolCidrsCommand\");\nvar se_GetAwsNetworkPerformanceDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAwsNetworkPerformanceDataRequest(input, context),\n [_A]: _GANPD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAwsNetworkPerformanceDataCommand\");\nvar se_GetCapacityReservationUsageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetCapacityReservationUsageRequest(input, context),\n [_A]: _GCRU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCapacityReservationUsageCommand\");\nvar se_GetCoipPoolUsageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetCoipPoolUsageRequest(input, context),\n [_A]: _GCPU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCoipPoolUsageCommand\");\nvar se_GetConsoleOutputCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetConsoleOutputRequest(input, context),\n [_A]: _GCO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetConsoleOutputCommand\");\nvar se_GetConsoleScreenshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetConsoleScreenshotRequest(input, context),\n [_A]: _GCS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetConsoleScreenshotCommand\");\nvar se_GetDeclarativePoliciesReportSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetDeclarativePoliciesReportSummaryRequest(input, context),\n [_A]: _GDPRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeclarativePoliciesReportSummaryCommand\");\nvar se_GetDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetDefaultCreditSpecificationRequest(input, context),\n [_A]: _GDCS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDefaultCreditSpecificationCommand\");\nvar se_GetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetEbsDefaultKmsKeyIdRequest(input, context),\n [_A]: _GEDKKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetEbsDefaultKmsKeyIdCommand\");\nvar se_GetEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetEbsEncryptionByDefaultRequest(input, context),\n [_A]: _GEEBD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetEbsEncryptionByDefaultCommand\");\nvar se_GetFlowLogsIntegrationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetFlowLogsIntegrationTemplateRequest(input, context),\n [_A]: _GFLIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetFlowLogsIntegrationTemplateCommand\");\nvar se_GetGroupsForCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetGroupsForCapacityReservationRequest(input, context),\n [_A]: _GGFCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetGroupsForCapacityReservationCommand\");\nvar se_GetHostReservationPurchasePreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetHostReservationPurchasePreviewRequest(input, context),\n [_A]: _GHRPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetHostReservationPurchasePreviewCommand\");\nvar se_GetImageBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetImageBlockPublicAccessStateRequest(input, context),\n [_A]: _GIBPAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetImageBlockPublicAccessStateCommand\");\nvar se_GetInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceMetadataDefaultsRequest(input, context),\n [_A]: _GIMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceMetadataDefaultsCommand\");\nvar se_GetInstanceTpmEkPubCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceTpmEkPubRequest(input, context),\n [_A]: _GITEP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceTpmEkPubCommand\");\nvar se_GetInstanceTypesFromInstanceRequirementsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceTypesFromInstanceRequirementsRequest(input, context),\n [_A]: _GITFIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceTypesFromInstanceRequirementsCommand\");\nvar se_GetInstanceUefiDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceUefiDataRequest(input, context),\n [_A]: _GIUD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceUefiDataCommand\");\nvar se_GetIpamAddressHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamAddressHistoryRequest(input, context),\n [_A]: _GIAH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamAddressHistoryCommand\");\nvar se_GetIpamDiscoveredAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamDiscoveredAccountsRequest(input, context),\n [_A]: _GIDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamDiscoveredAccountsCommand\");\nvar se_GetIpamDiscoveredPublicAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamDiscoveredPublicAddressesRequest(input, context),\n [_A]: _GIDPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamDiscoveredPublicAddressesCommand\");\nvar se_GetIpamDiscoveredResourceCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamDiscoveredResourceCidrsRequest(input, context),\n [_A]: _GIDRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamDiscoveredResourceCidrsCommand\");\nvar se_GetIpamPoolAllocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamPoolAllocationsRequest(input, context),\n [_A]: _GIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamPoolAllocationsCommand\");\nvar se_GetIpamPoolCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamPoolCidrsRequest(input, context),\n [_A]: _GIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamPoolCidrsCommand\");\nvar se_GetIpamResourceCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamResourceCidrsRequest(input, context),\n [_A]: _GIRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamResourceCidrsCommand\");\nvar se_GetLaunchTemplateDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetLaunchTemplateDataRequest(input, context),\n [_A]: _GLTD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLaunchTemplateDataCommand\");\nvar se_GetManagedPrefixListAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetManagedPrefixListAssociationsRequest(input, context),\n [_A]: _GMPLA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetManagedPrefixListAssociationsCommand\");\nvar se_GetManagedPrefixListEntriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetManagedPrefixListEntriesRequest(input, context),\n [_A]: _GMPLE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetManagedPrefixListEntriesCommand\");\nvar se_GetNetworkInsightsAccessScopeAnalysisFindingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetNetworkInsightsAccessScopeAnalysisFindingsRequest(input, context),\n [_A]: _GNIASAF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetNetworkInsightsAccessScopeAnalysisFindingsCommand\");\nvar se_GetNetworkInsightsAccessScopeContentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetNetworkInsightsAccessScopeContentRequest(input, context),\n [_A]: _GNIASC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetNetworkInsightsAccessScopeContentCommand\");\nvar se_GetPasswordDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetPasswordDataRequest(input, context),\n [_A]: _GPD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPasswordDataCommand\");\nvar se_GetReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetReservedInstancesExchangeQuoteRequest(input, context),\n [_A]: _GRIEQ,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetReservedInstancesExchangeQuoteCommand\");\nvar se_GetRouteServerAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRouteServerAssociationsRequest(input, context),\n [_A]: _GRSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRouteServerAssociationsCommand\");\nvar se_GetRouteServerPropagationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRouteServerPropagationsRequest(input, context),\n [_A]: _GRSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRouteServerPropagationsCommand\");\nvar se_GetRouteServerRoutingDatabaseCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRouteServerRoutingDatabaseRequest(input, context),\n [_A]: _GRSRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRouteServerRoutingDatabaseCommand\");\nvar se_GetSecurityGroupsForVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSecurityGroupsForVpcRequest(input, context),\n [_A]: _GSGFV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSecurityGroupsForVpcCommand\");\nvar se_GetSerialConsoleAccessStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSerialConsoleAccessStatusRequest(input, context),\n [_A]: _GSCAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSerialConsoleAccessStatusCommand\");\nvar se_GetSnapshotBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSnapshotBlockPublicAccessStateRequest(input, context),\n [_A]: _GSBPAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSnapshotBlockPublicAccessStateCommand\");\nvar se_GetSpotPlacementScoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSpotPlacementScoresRequest(input, context),\n [_A]: _GSPS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSpotPlacementScoresCommand\");\nvar se_GetSubnetCidrReservationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSubnetCidrReservationsRequest(input, context),\n [_A]: _GSCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSubnetCidrReservationsCommand\");\nvar se_GetTransitGatewayAttachmentPropagationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayAttachmentPropagationsRequest(input, context),\n [_A]: _GTGAP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayAttachmentPropagationsCommand\");\nvar se_GetTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayMulticastDomainAssociationsRequest(input, context),\n [_A]: _GTGMDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayMulticastDomainAssociationsCommand\");\nvar se_GetTransitGatewayPolicyTableAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayPolicyTableAssociationsRequest(input, context),\n [_A]: _GTGPTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayPolicyTableAssociationsCommand\");\nvar se_GetTransitGatewayPolicyTableEntriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayPolicyTableEntriesRequest(input, context),\n [_A]: _GTGPTE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayPolicyTableEntriesCommand\");\nvar se_GetTransitGatewayPrefixListReferencesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayPrefixListReferencesRequest(input, context),\n [_A]: _GTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayPrefixListReferencesCommand\");\nvar se_GetTransitGatewayRouteTableAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayRouteTableAssociationsRequest(input, context),\n [_A]: _GTGRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayRouteTableAssociationsCommand\");\nvar se_GetTransitGatewayRouteTablePropagationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayRouteTablePropagationsRequest(input, context),\n [_A]: _GTGRTP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayRouteTablePropagationsCommand\");\nvar se_GetVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVerifiedAccessEndpointPolicyRequest(input, context),\n [_A]: _GVAEP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVerifiedAccessEndpointPolicyCommand\");\nvar se_GetVerifiedAccessEndpointTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVerifiedAccessEndpointTargetsRequest(input, context),\n [_A]: _GVAET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVerifiedAccessEndpointTargetsCommand\");\nvar se_GetVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVerifiedAccessGroupPolicyRequest(input, context),\n [_A]: _GVAGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVerifiedAccessGroupPolicyCommand\");\nvar se_GetVpnConnectionDeviceSampleConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVpnConnectionDeviceSampleConfigurationRequest(input, context),\n [_A]: _GVCDSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVpnConnectionDeviceSampleConfigurationCommand\");\nvar se_GetVpnConnectionDeviceTypesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVpnConnectionDeviceTypesRequest(input, context),\n [_A]: _GVCDT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVpnConnectionDeviceTypesCommand\");\nvar se_GetVpnTunnelReplacementStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVpnTunnelReplacementStatusRequest(input, context),\n [_A]: _GVTRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVpnTunnelReplacementStatusCommand\");\nvar se_ImportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportClientVpnClientCertificateRevocationListRequest(input, context),\n [_A]: _ICVCCRL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportClientVpnClientCertificateRevocationListCommand\");\nvar se_ImportImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportImageRequest(input, context),\n [_A]: _II,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportImageCommand\");\nvar se_ImportInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportInstanceRequest(input, context),\n [_A]: _IIm,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportInstanceCommand\");\nvar se_ImportKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportKeyPairRequest(input, context),\n [_A]: _IKP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportKeyPairCommand\");\nvar se_ImportSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportSnapshotRequest(input, context),\n [_A]: _IS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportSnapshotCommand\");\nvar se_ImportVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportVolumeRequest(input, context),\n [_A]: _IV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportVolumeCommand\");\nvar se_ListImagesInRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListImagesInRecycleBinRequest(input, context),\n [_A]: _LIIRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListImagesInRecycleBinCommand\");\nvar se_ListSnapshotsInRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSnapshotsInRecycleBinRequest(input, context),\n [_A]: _LSIRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSnapshotsInRecycleBinCommand\");\nvar se_LockSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_LockSnapshotRequest(input, context),\n [_A]: _LS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_LockSnapshotCommand\");\nvar se_ModifyAddressAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyAddressAttributeRequest(input, context),\n [_A]: _MAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyAddressAttributeCommand\");\nvar se_ModifyAvailabilityZoneGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyAvailabilityZoneGroupRequest(input, context),\n [_A]: _MAZG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyAvailabilityZoneGroupCommand\");\nvar se_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyCapacityReservationRequest(input, context),\n [_A]: _MCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyCapacityReservationCommand\");\nvar se_ModifyCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyCapacityReservationFleetRequest(input, context),\n [_A]: _MCRF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyCapacityReservationFleetCommand\");\nvar se_ModifyClientVpnEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyClientVpnEndpointRequest(input, context),\n [_A]: _MCVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyClientVpnEndpointCommand\");\nvar se_ModifyDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyDefaultCreditSpecificationRequest(input, context),\n [_A]: _MDCS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyDefaultCreditSpecificationCommand\");\nvar se_ModifyEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyEbsDefaultKmsKeyIdRequest(input, context),\n [_A]: _MEDKKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyEbsDefaultKmsKeyIdCommand\");\nvar se_ModifyFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyFleetRequest(input, context),\n [_A]: _MF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyFleetCommand\");\nvar se_ModifyFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyFpgaImageAttributeRequest(input, context),\n [_A]: _MFIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyFpgaImageAttributeCommand\");\nvar se_ModifyHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyHostsRequest(input, context),\n [_A]: _MH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyHostsCommand\");\nvar se_ModifyIdentityIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIdentityIdFormatRequest(input, context),\n [_A]: _MIIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIdentityIdFormatCommand\");\nvar se_ModifyIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIdFormatRequest(input, context),\n [_A]: _MIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIdFormatCommand\");\nvar se_ModifyImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyImageAttributeRequest(input, context),\n [_A]: _MIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyImageAttributeCommand\");\nvar se_ModifyInstanceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceAttributeRequest(input, context),\n [_A]: _MIAo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceAttributeCommand\");\nvar se_ModifyInstanceCapacityReservationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceCapacityReservationAttributesRequest(input, context),\n [_A]: _MICRA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceCapacityReservationAttributesCommand\");\nvar se_ModifyInstanceCpuOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceCpuOptionsRequest(input, context),\n [_A]: _MICO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceCpuOptionsCommand\");\nvar se_ModifyInstanceCreditSpecificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceCreditSpecificationRequest(input, context),\n [_A]: _MICS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceCreditSpecificationCommand\");\nvar se_ModifyInstanceEventStartTimeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceEventStartTimeRequest(input, context),\n [_A]: _MIEST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceEventStartTimeCommand\");\nvar se_ModifyInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceEventWindowRequest(input, context),\n [_A]: _MIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceEventWindowCommand\");\nvar se_ModifyInstanceMaintenanceOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceMaintenanceOptionsRequest(input, context),\n [_A]: _MIMO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceMaintenanceOptionsCommand\");\nvar se_ModifyInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceMetadataDefaultsRequest(input, context),\n [_A]: _MIMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceMetadataDefaultsCommand\");\nvar se_ModifyInstanceMetadataOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceMetadataOptionsRequest(input, context),\n [_A]: _MIMOo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceMetadataOptionsCommand\");\nvar se_ModifyInstanceNetworkPerformanceOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceNetworkPerformanceRequest(input, context),\n [_A]: _MINPO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceNetworkPerformanceOptionsCommand\");\nvar se_ModifyInstancePlacementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstancePlacementRequest(input, context),\n [_A]: _MIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstancePlacementCommand\");\nvar se_ModifyIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamRequest(input, context),\n [_A]: _MI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamCommand\");\nvar se_ModifyIpamPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamPoolRequest(input, context),\n [_A]: _MIPo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamPoolCommand\");\nvar se_ModifyIpamResourceCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamResourceCidrRequest(input, context),\n [_A]: _MIRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamResourceCidrCommand\");\nvar se_ModifyIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamResourceDiscoveryRequest(input, context),\n [_A]: _MIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamResourceDiscoveryCommand\");\nvar se_ModifyIpamScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamScopeRequest(input, context),\n [_A]: _MIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamScopeCommand\");\nvar se_ModifyLaunchTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyLaunchTemplateRequest(input, context),\n [_A]: _MLT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyLaunchTemplateCommand\");\nvar se_ModifyLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyLocalGatewayRouteRequest(input, context),\n [_A]: _MLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyLocalGatewayRouteCommand\");\nvar se_ModifyManagedPrefixListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyManagedPrefixListRequest(input, context),\n [_A]: _MMPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyManagedPrefixListCommand\");\nvar se_ModifyNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyNetworkInterfaceAttributeRequest(input, context),\n [_A]: _MNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyNetworkInterfaceAttributeCommand\");\nvar se_ModifyPrivateDnsNameOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyPrivateDnsNameOptionsRequest(input, context),\n [_A]: _MPDNO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyPrivateDnsNameOptionsCommand\");\nvar se_ModifyReservedInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyReservedInstancesRequest(input, context),\n [_A]: _MRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyReservedInstancesCommand\");\nvar se_ModifyRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyRouteServerRequest(input, context),\n [_A]: _MRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyRouteServerCommand\");\nvar se_ModifySecurityGroupRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySecurityGroupRulesRequest(input, context),\n [_A]: _MSGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySecurityGroupRulesCommand\");\nvar se_ModifySnapshotAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySnapshotAttributeRequest(input, context),\n [_A]: _MSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySnapshotAttributeCommand\");\nvar se_ModifySnapshotTierCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySnapshotTierRequest(input, context),\n [_A]: _MST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySnapshotTierCommand\");\nvar se_ModifySpotFleetRequestCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySpotFleetRequestRequest(input, context),\n [_A]: _MSFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySpotFleetRequestCommand\");\nvar se_ModifySubnetAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySubnetAttributeRequest(input, context),\n [_A]: _MSAo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySubnetAttributeCommand\");\nvar se_ModifyTrafficMirrorFilterNetworkServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrafficMirrorFilterNetworkServicesRequest(input, context),\n [_A]: _MTMFNS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrafficMirrorFilterNetworkServicesCommand\");\nvar se_ModifyTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrafficMirrorFilterRuleRequest(input, context),\n [_A]: _MTMFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrafficMirrorFilterRuleCommand\");\nvar se_ModifyTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrafficMirrorSessionRequest(input, context),\n [_A]: _MTMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrafficMirrorSessionCommand\");\nvar se_ModifyTransitGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTransitGatewayRequest(input, context),\n [_A]: _MTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTransitGatewayCommand\");\nvar se_ModifyTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTransitGatewayPrefixListReferenceRequest(input, context),\n [_A]: _MTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTransitGatewayPrefixListReferenceCommand\");\nvar se_ModifyTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _MTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTransitGatewayVpcAttachmentCommand\");\nvar se_ModifyVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessEndpointRequest(input, context),\n [_A]: _MVAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessEndpointCommand\");\nvar se_ModifyVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessEndpointPolicyRequest(input, context),\n [_A]: _MVAEP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessEndpointPolicyCommand\");\nvar se_ModifyVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessGroupRequest(input, context),\n [_A]: _MVAG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessGroupCommand\");\nvar se_ModifyVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessGroupPolicyRequest(input, context),\n [_A]: _MVAGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessGroupPolicyCommand\");\nvar se_ModifyVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessInstanceRequest(input, context),\n [_A]: _MVAI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessInstanceCommand\");\nvar se_ModifyVerifiedAccessInstanceLoggingConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessInstanceLoggingConfigurationRequest(input, context),\n [_A]: _MVAILC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessInstanceLoggingConfigurationCommand\");\nvar se_ModifyVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _MVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessTrustProviderCommand\");\nvar se_ModifyVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVolumeRequest(input, context),\n [_A]: _MV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVolumeCommand\");\nvar se_ModifyVolumeAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVolumeAttributeRequest(input, context),\n [_A]: _MVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVolumeAttributeCommand\");\nvar se_ModifyVpcAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcAttributeRequest(input, context),\n [_A]: _MVAo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcAttributeCommand\");\nvar se_ModifyVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcBlockPublicAccessExclusionRequest(input, context),\n [_A]: _MVBPAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcBlockPublicAccessExclusionCommand\");\nvar se_ModifyVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcBlockPublicAccessOptionsRequest(input, context),\n [_A]: _MVBPAO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcBlockPublicAccessOptionsCommand\");\nvar se_ModifyVpcEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointRequest(input, context),\n [_A]: _MVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointCommand\");\nvar se_ModifyVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointConnectionNotificationRequest(input, context),\n [_A]: _MVECN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointConnectionNotificationCommand\");\nvar se_ModifyVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointServiceConfigurationRequest(input, context),\n [_A]: _MVESC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointServiceConfigurationCommand\");\nvar se_ModifyVpcEndpointServicePayerResponsibilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointServicePayerResponsibilityRequest(input, context),\n [_A]: _MVESPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointServicePayerResponsibilityCommand\");\nvar se_ModifyVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointServicePermissionsRequest(input, context),\n [_A]: _MVESP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointServicePermissionsCommand\");\nvar se_ModifyVpcPeeringConnectionOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcPeeringConnectionOptionsRequest(input, context),\n [_A]: _MVPCO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcPeeringConnectionOptionsCommand\");\nvar se_ModifyVpcTenancyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcTenancyRequest(input, context),\n [_A]: _MVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcTenancyCommand\");\nvar se_ModifyVpnConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnConnectionRequest(input, context),\n [_A]: _MVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnConnectionCommand\");\nvar se_ModifyVpnConnectionOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnConnectionOptionsRequest(input, context),\n [_A]: _MVCO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnConnectionOptionsCommand\");\nvar se_ModifyVpnTunnelCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnTunnelCertificateRequest(input, context),\n [_A]: _MVTC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnTunnelCertificateCommand\");\nvar se_ModifyVpnTunnelOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnTunnelOptionsRequest(input, context),\n [_A]: _MVTO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnTunnelOptionsCommand\");\nvar se_MonitorInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MonitorInstancesRequest(input, context),\n [_A]: _MIo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MonitorInstancesCommand\");\nvar se_MoveAddressToVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MoveAddressToVpcRequest(input, context),\n [_A]: _MATV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MoveAddressToVpcCommand\");\nvar se_MoveByoipCidrToIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MoveByoipCidrToIpamRequest(input, context),\n [_A]: _MBCTI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MoveByoipCidrToIpamCommand\");\nvar se_MoveCapacityReservationInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MoveCapacityReservationInstancesRequest(input, context),\n [_A]: _MCRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MoveCapacityReservationInstancesCommand\");\nvar se_ProvisionByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionByoipCidrRequest(input, context),\n [_A]: _PBC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionByoipCidrCommand\");\nvar se_ProvisionIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionIpamByoasnRequest(input, context),\n [_A]: _PIB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionIpamByoasnCommand\");\nvar se_ProvisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionIpamPoolCidrRequest(input, context),\n [_A]: _PIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionIpamPoolCidrCommand\");\nvar se_ProvisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionPublicIpv4PoolCidrRequest(input, context),\n [_A]: _PPIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionPublicIpv4PoolCidrCommand\");\nvar se_PurchaseCapacityBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseCapacityBlockRequest(input, context),\n [_A]: _PCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseCapacityBlockCommand\");\nvar se_PurchaseCapacityBlockExtensionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseCapacityBlockExtensionRequest(input, context),\n [_A]: _PCBE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseCapacityBlockExtensionCommand\");\nvar se_PurchaseHostReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseHostReservationRequest(input, context),\n [_A]: _PHR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseHostReservationCommand\");\nvar se_PurchaseReservedInstancesOfferingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseReservedInstancesOfferingRequest(input, context),\n [_A]: _PRIO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseReservedInstancesOfferingCommand\");\nvar se_PurchaseScheduledInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseScheduledInstancesRequest(input, context),\n [_A]: _PSI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseScheduledInstancesCommand\");\nvar se_RebootInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RebootInstancesRequest(input, context),\n [_A]: _RI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RebootInstancesCommand\");\nvar se_RegisterImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterImageRequest(input, context),\n [_A]: _RIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterImageCommand\");\nvar se_RegisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterInstanceEventNotificationAttributesRequest(input, context),\n [_A]: _RIENA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterInstanceEventNotificationAttributesCommand\");\nvar se_RegisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterTransitGatewayMulticastGroupMembersRequest(input, context),\n [_A]: _RTGMGM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTransitGatewayMulticastGroupMembersCommand\");\nvar se_RegisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterTransitGatewayMulticastGroupSourcesRequest(input, context),\n [_A]: _RTGMGS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTransitGatewayMulticastGroupSourcesCommand\");\nvar se_RejectCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectCapacityReservationBillingOwnershipRequest(input, context),\n [_A]: _RCRBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectCapacityReservationBillingOwnershipCommand\");\nvar se_RejectTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectTransitGatewayMulticastDomainAssociationsRequest(input, context),\n [_A]: _RTGMDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectTransitGatewayMulticastDomainAssociationsCommand\");\nvar se_RejectTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _RTGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectTransitGatewayPeeringAttachmentCommand\");\nvar se_RejectTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _RTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectTransitGatewayVpcAttachmentCommand\");\nvar se_RejectVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectVpcEndpointConnectionsRequest(input, context),\n [_A]: _RVEC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectVpcEndpointConnectionsCommand\");\nvar se_RejectVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectVpcPeeringConnectionRequest(input, context),\n [_A]: _RVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectVpcPeeringConnectionCommand\");\nvar se_ReleaseAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReleaseAddressRequest(input, context),\n [_A]: _RA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReleaseAddressCommand\");\nvar se_ReleaseHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReleaseHostsRequest(input, context),\n [_A]: _RH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReleaseHostsCommand\");\nvar se_ReleaseIpamPoolAllocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReleaseIpamPoolAllocationRequest(input, context),\n [_A]: _RIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReleaseIpamPoolAllocationCommand\");\nvar se_ReplaceIamInstanceProfileAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceIamInstanceProfileAssociationRequest(input, context),\n [_A]: _RIIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceIamInstanceProfileAssociationCommand\");\nvar se_ReplaceImageCriteriaInAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceImageCriteriaInAllowedImagesSettingsRequest(input, context),\n [_A]: _RICIAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceImageCriteriaInAllowedImagesSettingsCommand\");\nvar se_ReplaceNetworkAclAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceNetworkAclAssociationRequest(input, context),\n [_A]: _RNAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceNetworkAclAssociationCommand\");\nvar se_ReplaceNetworkAclEntryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceNetworkAclEntryRequest(input, context),\n [_A]: _RNAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceNetworkAclEntryCommand\");\nvar se_ReplaceRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceRouteRequest(input, context),\n [_A]: _RR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceRouteCommand\");\nvar se_ReplaceRouteTableAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceRouteTableAssociationRequest(input, context),\n [_A]: _RRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceRouteTableAssociationCommand\");\nvar se_ReplaceTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceTransitGatewayRouteRequest(input, context),\n [_A]: _RTGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceTransitGatewayRouteCommand\");\nvar se_ReplaceVpnTunnelCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceVpnTunnelRequest(input, context),\n [_A]: _RVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceVpnTunnelCommand\");\nvar se_ReportInstanceStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReportInstanceStatusRequest(input, context),\n [_A]: _RIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReportInstanceStatusCommand\");\nvar se_RequestSpotFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RequestSpotFleetRequest(input, context),\n [_A]: _RSF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RequestSpotFleetCommand\");\nvar se_RequestSpotInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RequestSpotInstancesRequest(input, context),\n [_A]: _RSI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RequestSpotInstancesCommand\");\nvar se_ResetAddressAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetAddressAttributeRequest(input, context),\n [_A]: _RAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetAddressAttributeCommand\");\nvar se_ResetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetEbsDefaultKmsKeyIdRequest(input, context),\n [_A]: _REDKKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetEbsDefaultKmsKeyIdCommand\");\nvar se_ResetFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetFpgaImageAttributeRequest(input, context),\n [_A]: _RFIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetFpgaImageAttributeCommand\");\nvar se_ResetImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetImageAttributeRequest(input, context),\n [_A]: _RIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetImageAttributeCommand\");\nvar se_ResetInstanceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetInstanceAttributeRequest(input, context),\n [_A]: _RIAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetInstanceAttributeCommand\");\nvar se_ResetNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetNetworkInterfaceAttributeRequest(input, context),\n [_A]: _RNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetNetworkInterfaceAttributeCommand\");\nvar se_ResetSnapshotAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetSnapshotAttributeRequest(input, context),\n [_A]: _RSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetSnapshotAttributeCommand\");\nvar se_RestoreAddressToClassicCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreAddressToClassicRequest(input, context),\n [_A]: _RATC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreAddressToClassicCommand\");\nvar se_RestoreImageFromRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreImageFromRecycleBinRequest(input, context),\n [_A]: _RIFRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreImageFromRecycleBinCommand\");\nvar se_RestoreManagedPrefixListVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreManagedPrefixListVersionRequest(input, context),\n [_A]: _RMPLV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreManagedPrefixListVersionCommand\");\nvar se_RestoreSnapshotFromRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreSnapshotFromRecycleBinRequest(input, context),\n [_A]: _RSFRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreSnapshotFromRecycleBinCommand\");\nvar se_RestoreSnapshotTierCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreSnapshotTierRequest(input, context),\n [_A]: _RST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreSnapshotTierCommand\");\nvar se_RevokeClientVpnIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RevokeClientVpnIngressRequest(input, context),\n [_A]: _RCVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeClientVpnIngressCommand\");\nvar se_RevokeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RevokeSecurityGroupEgressRequest(input, context),\n [_A]: _RSGE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeSecurityGroupEgressCommand\");\nvar se_RevokeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RevokeSecurityGroupIngressRequest(input, context),\n [_A]: _RSGI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeSecurityGroupIngressCommand\");\nvar se_RunInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RunInstancesRequest(input, context),\n [_A]: _RIu,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RunInstancesCommand\");\nvar se_RunScheduledInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RunScheduledInstancesRequest(input, context),\n [_A]: _RSIu,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RunScheduledInstancesCommand\");\nvar se_SearchLocalGatewayRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SearchLocalGatewayRoutesRequest(input, context),\n [_A]: _SLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SearchLocalGatewayRoutesCommand\");\nvar se_SearchTransitGatewayMulticastGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SearchTransitGatewayMulticastGroupsRequest(input, context),\n [_A]: _STGMG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SearchTransitGatewayMulticastGroupsCommand\");\nvar se_SearchTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SearchTransitGatewayRoutesRequest(input, context),\n [_A]: _STGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SearchTransitGatewayRoutesCommand\");\nvar se_SendDiagnosticInterruptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SendDiagnosticInterruptRequest(input, context),\n [_A]: _SDI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendDiagnosticInterruptCommand\");\nvar se_StartDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartDeclarativePoliciesReportRequest(input, context),\n [_A]: _SDPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartDeclarativePoliciesReportCommand\");\nvar se_StartInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartInstancesRequest(input, context),\n [_A]: _SI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartInstancesCommand\");\nvar se_StartNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartNetworkInsightsAccessScopeAnalysisRequest(input, context),\n [_A]: _SNIASA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartNetworkInsightsAccessScopeAnalysisCommand\");\nvar se_StartNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartNetworkInsightsAnalysisRequest(input, context),\n [_A]: _SNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartNetworkInsightsAnalysisCommand\");\nvar se_StartVpcEndpointServicePrivateDnsVerificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartVpcEndpointServicePrivateDnsVerificationRequest(input, context),\n [_A]: _SVESPDV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartVpcEndpointServicePrivateDnsVerificationCommand\");\nvar se_StopInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StopInstancesRequest(input, context),\n [_A]: _SIt,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopInstancesCommand\");\nvar se_TerminateClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TerminateClientVpnConnectionsRequest(input, context),\n [_A]: _TCVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TerminateClientVpnConnectionsCommand\");\nvar se_TerminateInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TerminateInstancesRequest(input, context),\n [_A]: _TI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TerminateInstancesCommand\");\nvar se_UnassignIpv6AddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnassignIpv6AddressesRequest(input, context),\n [_A]: _UIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnassignIpv6AddressesCommand\");\nvar se_UnassignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnassignPrivateIpAddressesRequest(input, context),\n [_A]: _UPIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnassignPrivateIpAddressesCommand\");\nvar se_UnassignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnassignPrivateNatGatewayAddressRequest(input, context),\n [_A]: _UPNGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnassignPrivateNatGatewayAddressCommand\");\nvar se_UnlockSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnlockSnapshotRequest(input, context),\n [_A]: _US,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlockSnapshotCommand\");\nvar se_UnmonitorInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnmonitorInstancesRequest(input, context),\n [_A]: _UI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnmonitorInstancesCommand\");\nvar se_UpdateSecurityGroupRuleDescriptionsEgressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSecurityGroupRuleDescriptionsEgressRequest(input, context),\n [_A]: _USGRDE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecurityGroupRuleDescriptionsEgressCommand\");\nvar se_UpdateSecurityGroupRuleDescriptionsIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSecurityGroupRuleDescriptionsIngressRequest(input, context),\n [_A]: _USGRDI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecurityGroupRuleDescriptionsIngressCommand\");\nvar se_WithdrawByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_WithdrawByoipCidrRequest(input, context),\n [_A]: _WBC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_WithdrawByoipCidrCommand\");\nvar de_AcceptAddressTransferCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptAddressTransferResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptAddressTransferCommand\");\nvar de_AcceptCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptCapacityReservationBillingOwnershipResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptCapacityReservationBillingOwnershipCommand\");\nvar de_AcceptReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptReservedInstancesExchangeQuoteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptReservedInstancesExchangeQuoteCommand\");\nvar de_AcceptTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptTransitGatewayMulticastDomainAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptTransitGatewayMulticastDomainAssociationsCommand\");\nvar de_AcceptTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptTransitGatewayPeeringAttachmentCommand\");\nvar de_AcceptTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptTransitGatewayVpcAttachmentCommand\");\nvar de_AcceptVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptVpcEndpointConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptVpcEndpointConnectionsCommand\");\nvar de_AcceptVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptVpcPeeringConnectionCommand\");\nvar de_AdvertiseByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AdvertiseByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AdvertiseByoipCidrCommand\");\nvar de_AllocateAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AllocateAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AllocateAddressCommand\");\nvar de_AllocateHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AllocateHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AllocateHostsCommand\");\nvar de_AllocateIpamPoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AllocateIpamPoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AllocateIpamPoolCidrCommand\");\nvar de_ApplySecurityGroupsToClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ApplySecurityGroupsToClientVpnTargetNetworkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ApplySecurityGroupsToClientVpnTargetNetworkCommand\");\nvar de_AssignIpv6AddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssignIpv6AddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssignIpv6AddressesCommand\");\nvar de_AssignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssignPrivateIpAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssignPrivateIpAddressesCommand\");\nvar de_AssignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssignPrivateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssignPrivateNatGatewayAddressCommand\");\nvar de_AssociateAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateAddressCommand\");\nvar de_AssociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateCapacityReservationBillingOwnerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateCapacityReservationBillingOwnerCommand\");\nvar de_AssociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateClientVpnTargetNetworkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateClientVpnTargetNetworkCommand\");\nvar de_AssociateDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AssociateDhcpOptionsCommand\");\nvar de_AssociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateEnclaveCertificateIamRoleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateEnclaveCertificateIamRoleCommand\");\nvar de_AssociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateIamInstanceProfileResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateIamInstanceProfileCommand\");\nvar de_AssociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateInstanceEventWindowCommand\");\nvar de_AssociateIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateIpamByoasnCommand\");\nvar de_AssociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateIpamResourceDiscoveryCommand\");\nvar de_AssociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateNatGatewayAddressCommand\");\nvar de_AssociateRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateRouteServerCommand\");\nvar de_AssociateRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateRouteTableCommand\");\nvar de_AssociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateSecurityGroupVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateSecurityGroupVpcCommand\");\nvar de_AssociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateSubnetCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateSubnetCidrBlockCommand\");\nvar de_AssociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTransitGatewayMulticastDomainCommand\");\nvar de_AssociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTransitGatewayPolicyTableCommand\");\nvar de_AssociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTransitGatewayRouteTableCommand\");\nvar de_AssociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTrunkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTrunkInterfaceCommand\");\nvar de_AssociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateVpcCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateVpcCidrBlockCommand\");\nvar de_AttachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachClassicLinkVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachClassicLinkVpcCommand\");\nvar de_AttachInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachInternetGatewayCommand\");\nvar de_AttachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachNetworkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachNetworkInterfaceCommand\");\nvar de_AttachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachVerifiedAccessTrustProviderCommand\");\nvar de_AttachVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_VolumeAttachment(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachVolumeCommand\");\nvar de_AttachVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachVpnGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachVpnGatewayCommand\");\nvar de_AuthorizeClientVpnIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AuthorizeClientVpnIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AuthorizeClientVpnIngressCommand\");\nvar de_AuthorizeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AuthorizeSecurityGroupEgressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AuthorizeSecurityGroupEgressCommand\");\nvar de_AuthorizeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AuthorizeSecurityGroupIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AuthorizeSecurityGroupIngressCommand\");\nvar de_BundleInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_BundleInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BundleInstanceCommand\");\nvar de_CancelBundleTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelBundleTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelBundleTaskCommand\");\nvar de_CancelCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelCapacityReservationCommand\");\nvar de_CancelCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelCapacityReservationFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelCapacityReservationFleetsCommand\");\nvar de_CancelConversionTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CancelConversionTaskCommand\");\nvar de_CancelDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelDeclarativePoliciesReportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelDeclarativePoliciesReportCommand\");\nvar de_CancelExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CancelExportTaskCommand\");\nvar de_CancelImageLaunchPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelImageLaunchPermissionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelImageLaunchPermissionCommand\");\nvar de_CancelImportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelImportTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelImportTaskCommand\");\nvar de_CancelReservedInstancesListingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelReservedInstancesListingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelReservedInstancesListingCommand\");\nvar de_CancelSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelSpotFleetRequestsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelSpotFleetRequestsCommand\");\nvar de_CancelSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelSpotInstanceRequestsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelSpotInstanceRequestsCommand\");\nvar de_ConfirmProductInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ConfirmProductInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ConfirmProductInstanceCommand\");\nvar de_CopyFpgaImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CopyFpgaImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CopyFpgaImageCommand\");\nvar de_CopyImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CopyImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CopyImageCommand\");\nvar de_CopySnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CopySnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CopySnapshotCommand\");\nvar de_CreateCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityReservationCommand\");\nvar de_CreateCapacityReservationBySplittingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCapacityReservationBySplittingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityReservationBySplittingCommand\");\nvar de_CreateCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCapacityReservationFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityReservationFleetCommand\");\nvar de_CreateCarrierGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCarrierGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCarrierGatewayCommand\");\nvar de_CreateClientVpnEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateClientVpnEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateClientVpnEndpointCommand\");\nvar de_CreateClientVpnRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateClientVpnRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateClientVpnRouteCommand\");\nvar de_CreateCoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCoipCidrCommand\");\nvar de_CreateCoipPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCoipPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCoipPoolCommand\");\nvar de_CreateCustomerGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCustomerGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCustomerGatewayCommand\");\nvar de_CreateDefaultSubnetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateDefaultSubnetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDefaultSubnetCommand\");\nvar de_CreateDefaultVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateDefaultVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDefaultVpcCommand\");\nvar de_CreateDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateDhcpOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDhcpOptionsCommand\");\nvar de_CreateEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateEgressOnlyInternetGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateEgressOnlyInternetGatewayCommand\");\nvar de_CreateFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFleetCommand\");\nvar de_CreateFlowLogsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateFlowLogsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFlowLogsCommand\");\nvar de_CreateFpgaImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateFpgaImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFpgaImageCommand\");\nvar de_CreateImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateImageCommand\");\nvar de_CreateInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceConnectEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceConnectEndpointCommand\");\nvar de_CreateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceEventWindowCommand\");\nvar de_CreateInstanceExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceExportTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceExportTaskCommand\");\nvar de_CreateInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInternetGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInternetGatewayCommand\");\nvar de_CreateIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamCommand\");\nvar de_CreateIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamExternalResourceVerificationTokenResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamExternalResourceVerificationTokenCommand\");\nvar de_CreateIpamPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamPoolCommand\");\nvar de_CreateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamResourceDiscoveryCommand\");\nvar de_CreateIpamScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamScopeCommand\");\nvar de_CreateKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_KeyPair(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateKeyPairCommand\");\nvar de_CreateLaunchTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLaunchTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLaunchTemplateCommand\");\nvar de_CreateLaunchTemplateVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLaunchTemplateVersionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLaunchTemplateVersionCommand\");\nvar de_CreateLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteCommand\");\nvar de_CreateLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteTableCommand\");\nvar de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar de_CreateLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteTableVpcAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteTableVpcAssociationCommand\");\nvar de_CreateLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayVirtualInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayVirtualInterfaceCommand\");\nvar de_CreateLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayVirtualInterfaceGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayVirtualInterfaceGroupCommand\");\nvar de_CreateManagedPrefixListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateManagedPrefixListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateManagedPrefixListCommand\");\nvar de_CreateNatGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNatGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNatGatewayCommand\");\nvar de_CreateNetworkAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkAclResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkAclCommand\");\nvar de_CreateNetworkAclEntryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateNetworkAclEntryCommand\");\nvar de_CreateNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInsightsAccessScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInsightsAccessScopeCommand\");\nvar de_CreateNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInsightsPathResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInsightsPathCommand\");\nvar de_CreateNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInterfaceCommand\");\nvar de_CreateNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInterfacePermissionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInterfacePermissionCommand\");\nvar de_CreatePlacementGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePlacementGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePlacementGroupCommand\");\nvar de_CreatePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePublicIpv4PoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePublicIpv4PoolCommand\");\nvar de_CreateReplaceRootVolumeTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateReplaceRootVolumeTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateReplaceRootVolumeTaskCommand\");\nvar de_CreateReservedInstancesListingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateReservedInstancesListingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateReservedInstancesListingCommand\");\nvar de_CreateRestoreImageTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRestoreImageTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRestoreImageTaskCommand\");\nvar de_CreateRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteCommand\");\nvar de_CreateRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteServerCommand\");\nvar de_CreateRouteServerEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteServerEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteServerEndpointCommand\");\nvar de_CreateRouteServerPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteServerPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteServerPeerCommand\");\nvar de_CreateRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteTableCommand\");\nvar de_CreateSecurityGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSecurityGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSecurityGroupCommand\");\nvar de_CreateSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_Snapshot(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSnapshotCommand\");\nvar de_CreateSnapshotsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSnapshotsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSnapshotsCommand\");\nvar de_CreateSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSpotDatafeedSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSpotDatafeedSubscriptionCommand\");\nvar de_CreateStoreImageTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateStoreImageTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateStoreImageTaskCommand\");\nvar de_CreateSubnetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSubnetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSubnetCommand\");\nvar de_CreateSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSubnetCidrReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSubnetCidrReservationCommand\");\nvar de_CreateTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateTagsCommand\");\nvar de_CreateTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorFilterResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorFilterCommand\");\nvar de_CreateTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorFilterRuleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorFilterRuleCommand\");\nvar de_CreateTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorSessionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorSessionCommand\");\nvar de_CreateTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorTargetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorTargetCommand\");\nvar de_CreateTransitGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayCommand\");\nvar de_CreateTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayConnectResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayConnectCommand\");\nvar de_CreateTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayConnectPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayConnectPeerCommand\");\nvar de_CreateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayMulticastDomainCommand\");\nvar de_CreateTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayPeeringAttachmentCommand\");\nvar de_CreateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayPolicyTableCommand\");\nvar de_CreateTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayPrefixListReferenceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayPrefixListReferenceCommand\");\nvar de_CreateTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayRouteCommand\");\nvar de_CreateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayRouteTableCommand\");\nvar de_CreateTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayRouteTableAnnouncementResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayRouteTableAnnouncementCommand\");\nvar de_CreateTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayVpcAttachmentCommand\");\nvar de_CreateVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessEndpointCommand\");\nvar de_CreateVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessGroupCommand\");\nvar de_CreateVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessInstanceCommand\");\nvar de_CreateVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessTrustProviderCommand\");\nvar de_CreateVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_Volume(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVolumeCommand\");\nvar de_CreateVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcCommand\");\nvar de_CreateVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcBlockPublicAccessExclusionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcBlockPublicAccessExclusionCommand\");\nvar de_CreateVpcEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcEndpointCommand\");\nvar de_CreateVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcEndpointConnectionNotificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcEndpointConnectionNotificationCommand\");\nvar de_CreateVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcEndpointServiceConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcEndpointServiceConfigurationCommand\");\nvar de_CreateVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcPeeringConnectionCommand\");\nvar de_CreateVpnConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpnConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpnConnectionCommand\");\nvar de_CreateVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateVpnConnectionRouteCommand\");\nvar de_CreateVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpnGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpnGatewayCommand\");\nvar de_DeleteCarrierGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteCarrierGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCarrierGatewayCommand\");\nvar de_DeleteClientVpnEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteClientVpnEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteClientVpnEndpointCommand\");\nvar de_DeleteClientVpnRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteClientVpnRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteClientVpnRouteCommand\");\nvar de_DeleteCoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteCoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCoipCidrCommand\");\nvar de_DeleteCoipPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteCoipPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCoipPoolCommand\");\nvar de_DeleteCustomerGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteCustomerGatewayCommand\");\nvar de_DeleteDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDhcpOptionsCommand\");\nvar de_DeleteEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteEgressOnlyInternetGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteEgressOnlyInternetGatewayCommand\");\nvar de_DeleteFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFleetsCommand\");\nvar de_DeleteFlowLogsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteFlowLogsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFlowLogsCommand\");\nvar de_DeleteFpgaImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteFpgaImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFpgaImageCommand\");\nvar de_DeleteInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteInstanceConnectEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteInstanceConnectEndpointCommand\");\nvar de_DeleteInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteInstanceEventWindowCommand\");\nvar de_DeleteInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteInternetGatewayCommand\");\nvar de_DeleteIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamCommand\");\nvar de_DeleteIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamExternalResourceVerificationTokenResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamExternalResourceVerificationTokenCommand\");\nvar de_DeleteIpamPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamPoolCommand\");\nvar de_DeleteIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamResourceDiscoveryCommand\");\nvar de_DeleteIpamScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamScopeCommand\");\nvar de_DeleteKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteKeyPairResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteKeyPairCommand\");\nvar de_DeleteLaunchTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLaunchTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLaunchTemplateCommand\");\nvar de_DeleteLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLaunchTemplateVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLaunchTemplateVersionsCommand\");\nvar de_DeleteLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteCommand\");\nvar de_DeleteLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteTableCommand\");\nvar de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar de_DeleteLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteTableVpcAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteTableVpcAssociationCommand\");\nvar de_DeleteLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayVirtualInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayVirtualInterfaceCommand\");\nvar de_DeleteLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayVirtualInterfaceGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayVirtualInterfaceGroupCommand\");\nvar de_DeleteManagedPrefixListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteManagedPrefixListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteManagedPrefixListCommand\");\nvar de_DeleteNatGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNatGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNatGatewayCommand\");\nvar de_DeleteNetworkAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteNetworkAclCommand\");\nvar de_DeleteNetworkAclEntryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteNetworkAclEntryCommand\");\nvar de_DeleteNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsAccessScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsAccessScopeCommand\");\nvar de_DeleteNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsAccessScopeAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsAccessScopeAnalysisCommand\");\nvar de_DeleteNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsAnalysisCommand\");\nvar de_DeleteNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsPathResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsPathCommand\");\nvar de_DeleteNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteNetworkInterfaceCommand\");\nvar de_DeleteNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInterfacePermissionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInterfacePermissionCommand\");\nvar de_DeletePlacementGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeletePlacementGroupCommand\");\nvar de_DeletePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeletePublicIpv4PoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeletePublicIpv4PoolCommand\");\nvar de_DeleteQueuedReservedInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteQueuedReservedInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteQueuedReservedInstancesCommand\");\nvar de_DeleteRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRouteCommand\");\nvar de_DeleteRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRouteServerCommand\");\nvar de_DeleteRouteServerEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRouteServerEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRouteServerEndpointCommand\");\nvar de_DeleteRouteServerPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRouteServerPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRouteServerPeerCommand\");\nvar de_DeleteRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRouteTableCommand\");\nvar de_DeleteSecurityGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSecurityGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSecurityGroupCommand\");\nvar de_DeleteSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSnapshotCommand\");\nvar de_DeleteSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSpotDatafeedSubscriptionCommand\");\nvar de_DeleteSubnetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSubnetCommand\");\nvar de_DeleteSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSubnetCidrReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSubnetCidrReservationCommand\");\nvar de_DeleteTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteTagsCommand\");\nvar de_DeleteTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorFilterResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorFilterCommand\");\nvar de_DeleteTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorFilterRuleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorFilterRuleCommand\");\nvar de_DeleteTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorSessionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorSessionCommand\");\nvar de_DeleteTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorTargetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorTargetCommand\");\nvar de_DeleteTransitGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayCommand\");\nvar de_DeleteTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayConnectResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayConnectCommand\");\nvar de_DeleteTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayConnectPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayConnectPeerCommand\");\nvar de_DeleteTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayMulticastDomainCommand\");\nvar de_DeleteTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayPeeringAttachmentCommand\");\nvar de_DeleteTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayPolicyTableCommand\");\nvar de_DeleteTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayPrefixListReferenceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayPrefixListReferenceCommand\");\nvar de_DeleteTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayRouteCommand\");\nvar de_DeleteTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayRouteTableCommand\");\nvar de_DeleteTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayRouteTableAnnouncementResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayRouteTableAnnouncementCommand\");\nvar de_DeleteTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayVpcAttachmentCommand\");\nvar de_DeleteVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessEndpointCommand\");\nvar de_DeleteVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessGroupCommand\");\nvar de_DeleteVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessInstanceCommand\");\nvar de_DeleteVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessTrustProviderCommand\");\nvar de_DeleteVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVolumeCommand\");\nvar de_DeleteVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpcCommand\");\nvar de_DeleteVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcBlockPublicAccessExclusionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcBlockPublicAccessExclusionCommand\");\nvar de_DeleteVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcEndpointConnectionNotificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcEndpointConnectionNotificationsCommand\");\nvar de_DeleteVpcEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcEndpointsCommand\");\nvar de_DeleteVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcEndpointServiceConfigurationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcEndpointServiceConfigurationsCommand\");\nvar de_DeleteVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcPeeringConnectionCommand\");\nvar de_DeleteVpnConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpnConnectionCommand\");\nvar de_DeleteVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpnConnectionRouteCommand\");\nvar de_DeleteVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpnGatewayCommand\");\nvar de_DeprovisionByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionByoipCidrCommand\");\nvar de_DeprovisionIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionIpamByoasnCommand\");\nvar de_DeprovisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionIpamPoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionIpamPoolCidrCommand\");\nvar de_DeprovisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionPublicIpv4PoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionPublicIpv4PoolCidrCommand\");\nvar de_DeregisterImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterImageCommand\");\nvar de_DeregisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterInstanceEventNotificationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterInstanceEventNotificationAttributesCommand\");\nvar de_DeregisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTransitGatewayMulticastGroupMembersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTransitGatewayMulticastGroupMembersCommand\");\nvar de_DeregisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTransitGatewayMulticastGroupSourcesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTransitGatewayMulticastGroupSourcesCommand\");\nvar de_DescribeAccountAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAccountAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAccountAttributesCommand\");\nvar de_DescribeAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAddressesCommand\");\nvar de_DescribeAddressesAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAddressesAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAddressesAttributeCommand\");\nvar de_DescribeAddressTransfersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAddressTransfersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAddressTransfersCommand\");\nvar de_DescribeAggregateIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAggregateIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAggregateIdFormatCommand\");\nvar de_DescribeAvailabilityZonesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAvailabilityZonesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAvailabilityZonesCommand\");\nvar de_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAwsNetworkPerformanceMetricSubscriptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\");\nvar de_DescribeBundleTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeBundleTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeBundleTasksCommand\");\nvar de_DescribeByoipCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeByoipCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeByoipCidrsCommand\");\nvar de_DescribeCapacityBlockExtensionHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityBlockExtensionHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityBlockExtensionHistoryCommand\");\nvar de_DescribeCapacityBlockExtensionOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityBlockExtensionOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityBlockExtensionOfferingsCommand\");\nvar de_DescribeCapacityBlockOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityBlockOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityBlockOfferingsCommand\");\nvar de_DescribeCapacityReservationBillingRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationBillingRequestsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationBillingRequestsCommand\");\nvar de_DescribeCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationFleetsCommand\");\nvar de_DescribeCapacityReservationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationsCommand\");\nvar de_DescribeCarrierGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCarrierGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCarrierGatewaysCommand\");\nvar de_DescribeClassicLinkInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClassicLinkInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClassicLinkInstancesCommand\");\nvar de_DescribeClientVpnAuthorizationRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnAuthorizationRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnAuthorizationRulesCommand\");\nvar de_DescribeClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnConnectionsCommand\");\nvar de_DescribeClientVpnEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnEndpointsCommand\");\nvar de_DescribeClientVpnRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnRoutesCommand\");\nvar de_DescribeClientVpnTargetNetworksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnTargetNetworksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnTargetNetworksCommand\");\nvar de_DescribeCoipPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCoipPoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCoipPoolsCommand\");\nvar de_DescribeConversionTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeConversionTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeConversionTasksCommand\");\nvar de_DescribeCustomerGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCustomerGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCustomerGatewaysCommand\");\nvar de_DescribeDeclarativePoliciesReportsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeDeclarativePoliciesReportsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeclarativePoliciesReportsCommand\");\nvar de_DescribeDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeDhcpOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDhcpOptionsCommand\");\nvar de_DescribeEgressOnlyInternetGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeEgressOnlyInternetGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeEgressOnlyInternetGatewaysCommand\");\nvar de_DescribeElasticGpusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeElasticGpusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeElasticGpusCommand\");\nvar de_DescribeExportImageTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeExportImageTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExportImageTasksCommand\");\nvar de_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeExportTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExportTasksCommand\");\nvar de_DescribeFastLaunchImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFastLaunchImagesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFastLaunchImagesCommand\");\nvar de_DescribeFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFastSnapshotRestoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFastSnapshotRestoresCommand\");\nvar de_DescribeFleetHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFleetHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFleetHistoryCommand\");\nvar de_DescribeFleetInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFleetInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFleetInstancesCommand\");\nvar de_DescribeFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFleetsCommand\");\nvar de_DescribeFlowLogsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFlowLogsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFlowLogsCommand\");\nvar de_DescribeFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFpgaImageAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFpgaImageAttributeCommand\");\nvar de_DescribeFpgaImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFpgaImagesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFpgaImagesCommand\");\nvar de_DescribeHostReservationOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeHostReservationOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeHostReservationOfferingsCommand\");\nvar de_DescribeHostReservationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeHostReservationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeHostReservationsCommand\");\nvar de_DescribeHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeHostsCommand\");\nvar de_DescribeIamInstanceProfileAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIamInstanceProfileAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIamInstanceProfileAssociationsCommand\");\nvar de_DescribeIdentityIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIdentityIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdentityIdFormatCommand\");\nvar de_DescribeIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdFormatCommand\");\nvar de_DescribeImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImageAttribute(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImageAttributeCommand\");\nvar de_DescribeImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImagesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImagesCommand\");\nvar de_DescribeImportImageTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImportImageTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImportImageTasksCommand\");\nvar de_DescribeImportSnapshotTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImportSnapshotTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImportSnapshotTasksCommand\");\nvar de_DescribeInstanceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_InstanceAttribute(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceAttributeCommand\");\nvar de_DescribeInstanceConnectEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceConnectEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceConnectEndpointsCommand\");\nvar de_DescribeInstanceCreditSpecificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceCreditSpecificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceCreditSpecificationsCommand\");\nvar de_DescribeInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceEventNotificationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceEventNotificationAttributesCommand\");\nvar de_DescribeInstanceEventWindowsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceEventWindowsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceEventWindowsCommand\");\nvar de_DescribeInstanceImageMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceImageMetadataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceImageMetadataCommand\");\nvar de_DescribeInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancesCommand\");\nvar de_DescribeInstanceStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceStatusCommand\");\nvar de_DescribeInstanceTopologyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceTopologyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceTopologyCommand\");\nvar de_DescribeInstanceTypeOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceTypeOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceTypeOfferingsCommand\");\nvar de_DescribeInstanceTypesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceTypesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceTypesCommand\");\nvar de_DescribeInternetGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInternetGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInternetGatewaysCommand\");\nvar de_DescribeIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamByoasnCommand\");\nvar de_DescribeIpamExternalResourceVerificationTokensCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamExternalResourceVerificationTokensResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamExternalResourceVerificationTokensCommand\");\nvar de_DescribeIpamPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamPoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamPoolsCommand\");\nvar de_DescribeIpamResourceDiscoveriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamResourceDiscoveriesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamResourceDiscoveriesCommand\");\nvar de_DescribeIpamResourceDiscoveryAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamResourceDiscoveryAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamResourceDiscoveryAssociationsCommand\");\nvar de_DescribeIpamsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamsCommand\");\nvar de_DescribeIpamScopesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamScopesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamScopesCommand\");\nvar de_DescribeIpv6PoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpv6PoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpv6PoolsCommand\");\nvar de_DescribeKeyPairsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeKeyPairsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeKeyPairsCommand\");\nvar de_DescribeLaunchTemplatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLaunchTemplatesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLaunchTemplatesCommand\");\nvar de_DescribeLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLaunchTemplateVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLaunchTemplateVersionsCommand\");\nvar de_DescribeLocalGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayRouteTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayRouteTablesCommand\");\nvar de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\");\nvar de_DescribeLocalGatewayRouteTableVpcAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayRouteTableVpcAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayRouteTableVpcAssociationsCommand\");\nvar de_DescribeLocalGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewaysCommand\");\nvar de_DescribeLocalGatewayVirtualInterfaceGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayVirtualInterfaceGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayVirtualInterfaceGroupsCommand\");\nvar de_DescribeLocalGatewayVirtualInterfacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayVirtualInterfacesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayVirtualInterfacesCommand\");\nvar de_DescribeLockedSnapshotsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLockedSnapshotsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLockedSnapshotsCommand\");\nvar de_DescribeMacHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMacHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMacHostsCommand\");\nvar de_DescribeManagedPrefixListsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeManagedPrefixListsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeManagedPrefixListsCommand\");\nvar de_DescribeMovingAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMovingAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMovingAddressesCommand\");\nvar de_DescribeNatGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNatGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNatGatewaysCommand\");\nvar de_DescribeNetworkAclsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkAclsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkAclsCommand\");\nvar de_DescribeNetworkInsightsAccessScopeAnalysesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsAccessScopeAnalysesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsAccessScopeAnalysesCommand\");\nvar de_DescribeNetworkInsightsAccessScopesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsAccessScopesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsAccessScopesCommand\");\nvar de_DescribeNetworkInsightsAnalysesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsAnalysesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsAnalysesCommand\");\nvar de_DescribeNetworkInsightsPathsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsPathsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsPathsCommand\");\nvar de_DescribeNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInterfaceAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInterfaceAttributeCommand\");\nvar de_DescribeNetworkInterfacePermissionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInterfacePermissionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInterfacePermissionsCommand\");\nvar de_DescribeNetworkInterfacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInterfacesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInterfacesCommand\");\nvar de_DescribeOutpostLagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeOutpostLagsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeOutpostLagsCommand\");\nvar de_DescribePlacementGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePlacementGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePlacementGroupsCommand\");\nvar de_DescribePrefixListsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePrefixListsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePrefixListsCommand\");\nvar de_DescribePrincipalIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePrincipalIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePrincipalIdFormatCommand\");\nvar de_DescribePublicIpv4PoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePublicIpv4PoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePublicIpv4PoolsCommand\");\nvar de_DescribeRegionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRegionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRegionsCommand\");\nvar de_DescribeReplaceRootVolumeTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReplaceRootVolumeTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReplaceRootVolumeTasksCommand\");\nvar de_DescribeReservedInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesCommand\");\nvar de_DescribeReservedInstancesListingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesListingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesListingsCommand\");\nvar de_DescribeReservedInstancesModificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesModificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesModificationsCommand\");\nvar de_DescribeReservedInstancesOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesOfferingsCommand\");\nvar de_DescribeRouteServerEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteServerEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteServerEndpointsCommand\");\nvar de_DescribeRouteServerPeersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteServerPeersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteServerPeersCommand\");\nvar de_DescribeRouteServersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteServersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteServersCommand\");\nvar de_DescribeRouteTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteTablesCommand\");\nvar de_DescribeScheduledInstanceAvailabilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeScheduledInstanceAvailabilityResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeScheduledInstanceAvailabilityCommand\");\nvar de_DescribeScheduledInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeScheduledInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeScheduledInstancesCommand\");\nvar de_DescribeSecurityGroupReferencesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupReferencesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupReferencesCommand\");\nvar de_DescribeSecurityGroupRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupRulesCommand\");\nvar de_DescribeSecurityGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupsCommand\");\nvar de_DescribeSecurityGroupVpcAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupVpcAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupVpcAssociationsCommand\");\nvar de_DescribeServiceLinkVirtualInterfacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServiceLinkVirtualInterfacesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServiceLinkVirtualInterfacesCommand\");\nvar de_DescribeSnapshotAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSnapshotAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSnapshotAttributeCommand\");\nvar de_DescribeSnapshotsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSnapshotsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSnapshotsCommand\");\nvar de_DescribeSnapshotTierStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSnapshotTierStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSnapshotTierStatusCommand\");\nvar de_DescribeSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotDatafeedSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotDatafeedSubscriptionCommand\");\nvar de_DescribeSpotFleetInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotFleetInstancesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotFleetInstancesCommand\");\nvar de_DescribeSpotFleetRequestHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotFleetRequestHistoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotFleetRequestHistoryCommand\");\nvar de_DescribeSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotFleetRequestsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotFleetRequestsCommand\");\nvar de_DescribeSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotInstanceRequestsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotInstanceRequestsCommand\");\nvar de_DescribeSpotPriceHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotPriceHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotPriceHistoryCommand\");\nvar de_DescribeStaleSecurityGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStaleSecurityGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStaleSecurityGroupsCommand\");\nvar de_DescribeStoreImageTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStoreImageTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStoreImageTasksCommand\");\nvar de_DescribeSubnetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSubnetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSubnetsCommand\");\nvar de_DescribeTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTagsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTagsCommand\");\nvar de_DescribeTrafficMirrorFilterRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorFilterRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorFilterRulesCommand\");\nvar de_DescribeTrafficMirrorFiltersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorFiltersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorFiltersCommand\");\nvar de_DescribeTrafficMirrorSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorSessionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorSessionsCommand\");\nvar de_DescribeTrafficMirrorTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorTargetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorTargetsCommand\");\nvar de_DescribeTransitGatewayAttachmentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayAttachmentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayAttachmentsCommand\");\nvar de_DescribeTransitGatewayConnectPeersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayConnectPeersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayConnectPeersCommand\");\nvar de_DescribeTransitGatewayConnectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayConnectsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayConnectsCommand\");\nvar de_DescribeTransitGatewayMulticastDomainsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayMulticastDomainsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayMulticastDomainsCommand\");\nvar de_DescribeTransitGatewayPeeringAttachmentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayPeeringAttachmentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayPeeringAttachmentsCommand\");\nvar de_DescribeTransitGatewayPolicyTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayPolicyTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayPolicyTablesCommand\");\nvar de_DescribeTransitGatewayRouteTableAnnouncementsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayRouteTableAnnouncementsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayRouteTableAnnouncementsCommand\");\nvar de_DescribeTransitGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayRouteTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayRouteTablesCommand\");\nvar de_DescribeTransitGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewaysCommand\");\nvar de_DescribeTransitGatewayVpcAttachmentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayVpcAttachmentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayVpcAttachmentsCommand\");\nvar de_DescribeTrunkInterfaceAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrunkInterfaceAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrunkInterfaceAssociationsCommand\");\nvar de_DescribeVerifiedAccessEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessEndpointsCommand\");\nvar de_DescribeVerifiedAccessGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessGroupsCommand\");\nvar de_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessInstanceLoggingConfigurationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\");\nvar de_DescribeVerifiedAccessInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessInstancesCommand\");\nvar de_DescribeVerifiedAccessTrustProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessTrustProvidersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessTrustProvidersCommand\");\nvar de_DescribeVolumeAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumeAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumeAttributeCommand\");\nvar de_DescribeVolumesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumesCommand\");\nvar de_DescribeVolumesModificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumesModificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumesModificationsCommand\");\nvar de_DescribeVolumeStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumeStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumeStatusCommand\");\nvar de_DescribeVpcAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcAttributeCommand\");\nvar de_DescribeVpcBlockPublicAccessExclusionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcBlockPublicAccessExclusionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcBlockPublicAccessExclusionsCommand\");\nvar de_DescribeVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcBlockPublicAccessOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcBlockPublicAccessOptionsCommand\");\nvar de_DescribeVpcClassicLinkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcClassicLinkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcClassicLinkCommand\");\nvar de_DescribeVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcClassicLinkDnsSupportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcClassicLinkDnsSupportCommand\");\nvar de_DescribeVpcEndpointAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointAssociationsCommand\");\nvar de_DescribeVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointConnectionNotificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointConnectionNotificationsCommand\");\nvar de_DescribeVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointConnectionsCommand\");\nvar de_DescribeVpcEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointsCommand\");\nvar de_DescribeVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointServiceConfigurationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointServiceConfigurationsCommand\");\nvar de_DescribeVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointServicePermissionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointServicePermissionsCommand\");\nvar de_DescribeVpcEndpointServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointServicesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointServicesCommand\");\nvar de_DescribeVpcPeeringConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcPeeringConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcPeeringConnectionsCommand\");\nvar de_DescribeVpcsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcsCommand\");\nvar de_DescribeVpnConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpnConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpnConnectionsCommand\");\nvar de_DescribeVpnGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpnGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpnGatewaysCommand\");\nvar de_DetachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DetachClassicLinkVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DetachClassicLinkVpcCommand\");\nvar de_DetachInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachInternetGatewayCommand\");\nvar de_DetachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachNetworkInterfaceCommand\");\nvar de_DetachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DetachVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DetachVerifiedAccessTrustProviderCommand\");\nvar de_DetachVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_VolumeAttachment(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DetachVolumeCommand\");\nvar de_DetachVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachVpnGatewayCommand\");\nvar de_DisableAddressTransferCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableAddressTransferResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableAddressTransferCommand\");\nvar de_DisableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableAllowedImagesSettingsCommand\");\nvar de_DisableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableAwsNetworkPerformanceMetricSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar de_DisableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableEbsEncryptionByDefaultResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableEbsEncryptionByDefaultCommand\");\nvar de_DisableFastLaunchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableFastLaunchResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableFastLaunchCommand\");\nvar de_DisableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableFastSnapshotRestoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableFastSnapshotRestoresCommand\");\nvar de_DisableImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageCommand\");\nvar de_DisableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageBlockPublicAccessCommand\");\nvar de_DisableImageDeprecationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageDeprecationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageDeprecationCommand\");\nvar de_DisableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageDeregistrationProtectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageDeregistrationProtectionCommand\");\nvar de_DisableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableIpamOrganizationAdminAccountResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableIpamOrganizationAdminAccountCommand\");\nvar de_DisableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableRouteServerPropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableRouteServerPropagationCommand\");\nvar de_DisableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableSerialConsoleAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableSerialConsoleAccessCommand\");\nvar de_DisableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableSnapshotBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableSnapshotBlockPublicAccessCommand\");\nvar de_DisableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableTransitGatewayRouteTablePropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableTransitGatewayRouteTablePropagationCommand\");\nvar de_DisableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisableVgwRoutePropagationCommand\");\nvar de_DisableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableVpcClassicLinkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableVpcClassicLinkCommand\");\nvar de_DisableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableVpcClassicLinkDnsSupportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableVpcClassicLinkDnsSupportCommand\");\nvar de_DisassociateAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisassociateAddressCommand\");\nvar de_DisassociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateCapacityReservationBillingOwnerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateCapacityReservationBillingOwnerCommand\");\nvar de_DisassociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateClientVpnTargetNetworkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateClientVpnTargetNetworkCommand\");\nvar de_DisassociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateEnclaveCertificateIamRoleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateEnclaveCertificateIamRoleCommand\");\nvar de_DisassociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateIamInstanceProfileResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateIamInstanceProfileCommand\");\nvar de_DisassociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateInstanceEventWindowCommand\");\nvar de_DisassociateIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateIpamByoasnCommand\");\nvar de_DisassociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateIpamResourceDiscoveryCommand\");\nvar de_DisassociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateNatGatewayAddressCommand\");\nvar de_DisassociateRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateRouteServerCommand\");\nvar de_DisassociateRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisassociateRouteTableCommand\");\nvar de_DisassociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateSecurityGroupVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateSecurityGroupVpcCommand\");\nvar de_DisassociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateSubnetCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateSubnetCidrBlockCommand\");\nvar de_DisassociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTransitGatewayMulticastDomainCommand\");\nvar de_DisassociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTransitGatewayPolicyTableCommand\");\nvar de_DisassociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTransitGatewayRouteTableCommand\");\nvar de_DisassociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTrunkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTrunkInterfaceCommand\");\nvar de_DisassociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateVpcCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateVpcCidrBlockCommand\");\nvar de_EnableAddressTransferCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableAddressTransferResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableAddressTransferCommand\");\nvar de_EnableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableAllowedImagesSettingsCommand\");\nvar de_EnableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableAwsNetworkPerformanceMetricSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar de_EnableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableEbsEncryptionByDefaultResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableEbsEncryptionByDefaultCommand\");\nvar de_EnableFastLaunchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableFastLaunchResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableFastLaunchCommand\");\nvar de_EnableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableFastSnapshotRestoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableFastSnapshotRestoresCommand\");\nvar de_EnableImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageCommand\");\nvar de_EnableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageBlockPublicAccessCommand\");\nvar de_EnableImageDeprecationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageDeprecationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageDeprecationCommand\");\nvar de_EnableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageDeregistrationProtectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageDeregistrationProtectionCommand\");\nvar de_EnableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableIpamOrganizationAdminAccountResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableIpamOrganizationAdminAccountCommand\");\nvar de_EnableReachabilityAnalyzerOrganizationSharingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableReachabilityAnalyzerOrganizationSharingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableReachabilityAnalyzerOrganizationSharingCommand\");\nvar de_EnableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableRouteServerPropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableRouteServerPropagationCommand\");\nvar de_EnableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableSerialConsoleAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableSerialConsoleAccessCommand\");\nvar de_EnableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableSnapshotBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableSnapshotBlockPublicAccessCommand\");\nvar de_EnableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableTransitGatewayRouteTablePropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableTransitGatewayRouteTablePropagationCommand\");\nvar de_EnableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableVgwRoutePropagationCommand\");\nvar de_EnableVolumeIOCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableVolumeIOCommand\");\nvar de_EnableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableVpcClassicLinkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableVpcClassicLinkCommand\");\nvar de_EnableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableVpcClassicLinkDnsSupportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableVpcClassicLinkDnsSupportCommand\");\nvar de_ExportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportClientVpnClientCertificateRevocationListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportClientVpnClientCertificateRevocationListCommand\");\nvar de_ExportClientVpnClientConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportClientVpnClientConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportClientVpnClientConfigurationCommand\");\nvar de_ExportImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportImageCommand\");\nvar de_ExportTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportTransitGatewayRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportTransitGatewayRoutesCommand\");\nvar de_ExportVerifiedAccessInstanceClientConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportVerifiedAccessInstanceClientConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportVerifiedAccessInstanceClientConfigurationCommand\");\nvar de_GetAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAllowedImagesSettingsCommand\");\nvar de_GetAssociatedEnclaveCertificateIamRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAssociatedEnclaveCertificateIamRolesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAssociatedEnclaveCertificateIamRolesCommand\");\nvar de_GetAssociatedIpv6PoolCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAssociatedIpv6PoolCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAssociatedIpv6PoolCidrsCommand\");\nvar de_GetAwsNetworkPerformanceDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAwsNetworkPerformanceDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAwsNetworkPerformanceDataCommand\");\nvar de_GetCapacityReservationUsageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCapacityReservationUsageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCapacityReservationUsageCommand\");\nvar de_GetCoipPoolUsageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCoipPoolUsageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCoipPoolUsageCommand\");\nvar de_GetConsoleOutputCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetConsoleOutputResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetConsoleOutputCommand\");\nvar de_GetConsoleScreenshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetConsoleScreenshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetConsoleScreenshotCommand\");\nvar de_GetDeclarativePoliciesReportSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetDeclarativePoliciesReportSummaryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeclarativePoliciesReportSummaryCommand\");\nvar de_GetDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetDefaultCreditSpecificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDefaultCreditSpecificationCommand\");\nvar de_GetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetEbsDefaultKmsKeyIdResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetEbsDefaultKmsKeyIdCommand\");\nvar de_GetEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetEbsEncryptionByDefaultResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetEbsEncryptionByDefaultCommand\");\nvar de_GetFlowLogsIntegrationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetFlowLogsIntegrationTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetFlowLogsIntegrationTemplateCommand\");\nvar de_GetGroupsForCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetGroupsForCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetGroupsForCapacityReservationCommand\");\nvar de_GetHostReservationPurchasePreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetHostReservationPurchasePreviewResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetHostReservationPurchasePreviewCommand\");\nvar de_GetImageBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetImageBlockPublicAccessStateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetImageBlockPublicAccessStateCommand\");\nvar de_GetInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceMetadataDefaultsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceMetadataDefaultsCommand\");\nvar de_GetInstanceTpmEkPubCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceTpmEkPubResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceTpmEkPubCommand\");\nvar de_GetInstanceTypesFromInstanceRequirementsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceTypesFromInstanceRequirementsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceTypesFromInstanceRequirementsCommand\");\nvar de_GetInstanceUefiDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceUefiDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceUefiDataCommand\");\nvar de_GetIpamAddressHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamAddressHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamAddressHistoryCommand\");\nvar de_GetIpamDiscoveredAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamDiscoveredAccountsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamDiscoveredAccountsCommand\");\nvar de_GetIpamDiscoveredPublicAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamDiscoveredPublicAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamDiscoveredPublicAddressesCommand\");\nvar de_GetIpamDiscoveredResourceCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamDiscoveredResourceCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamDiscoveredResourceCidrsCommand\");\nvar de_GetIpamPoolAllocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamPoolAllocationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamPoolAllocationsCommand\");\nvar de_GetIpamPoolCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamPoolCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamPoolCidrsCommand\");\nvar de_GetIpamResourceCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamResourceCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamResourceCidrsCommand\");\nvar de_GetLaunchTemplateDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetLaunchTemplateDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLaunchTemplateDataCommand\");\nvar de_GetManagedPrefixListAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetManagedPrefixListAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetManagedPrefixListAssociationsCommand\");\nvar de_GetManagedPrefixListEntriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetManagedPrefixListEntriesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetManagedPrefixListEntriesCommand\");\nvar de_GetNetworkInsightsAccessScopeAnalysisFindingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetNetworkInsightsAccessScopeAnalysisFindingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetNetworkInsightsAccessScopeAnalysisFindingsCommand\");\nvar de_GetNetworkInsightsAccessScopeContentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetNetworkInsightsAccessScopeContentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetNetworkInsightsAccessScopeContentCommand\");\nvar de_GetPasswordDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetPasswordDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPasswordDataCommand\");\nvar de_GetReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetReservedInstancesExchangeQuoteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetReservedInstancesExchangeQuoteCommand\");\nvar de_GetRouteServerAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRouteServerAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRouteServerAssociationsCommand\");\nvar de_GetRouteServerPropagationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRouteServerPropagationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRouteServerPropagationsCommand\");\nvar de_GetRouteServerRoutingDatabaseCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRouteServerRoutingDatabaseResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRouteServerRoutingDatabaseCommand\");\nvar de_GetSecurityGroupsForVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSecurityGroupsForVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSecurityGroupsForVpcCommand\");\nvar de_GetSerialConsoleAccessStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSerialConsoleAccessStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSerialConsoleAccessStatusCommand\");\nvar de_GetSnapshotBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSnapshotBlockPublicAccessStateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSnapshotBlockPublicAccessStateCommand\");\nvar de_GetSpotPlacementScoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSpotPlacementScoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSpotPlacementScoresCommand\");\nvar de_GetSubnetCidrReservationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSubnetCidrReservationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSubnetCidrReservationsCommand\");\nvar de_GetTransitGatewayAttachmentPropagationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayAttachmentPropagationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayAttachmentPropagationsCommand\");\nvar de_GetTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayMulticastDomainAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayMulticastDomainAssociationsCommand\");\nvar de_GetTransitGatewayPolicyTableAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayPolicyTableAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayPolicyTableAssociationsCommand\");\nvar de_GetTransitGatewayPolicyTableEntriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayPolicyTableEntriesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayPolicyTableEntriesCommand\");\nvar de_GetTransitGatewayPrefixListReferencesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayPrefixListReferencesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayPrefixListReferencesCommand\");\nvar de_GetTransitGatewayRouteTableAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayRouteTableAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayRouteTableAssociationsCommand\");\nvar de_GetTransitGatewayRouteTablePropagationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayRouteTablePropagationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayRouteTablePropagationsCommand\");\nvar de_GetVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVerifiedAccessEndpointPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVerifiedAccessEndpointPolicyCommand\");\nvar de_GetVerifiedAccessEndpointTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVerifiedAccessEndpointTargetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVerifiedAccessEndpointTargetsCommand\");\nvar de_GetVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVerifiedAccessGroupPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVerifiedAccessGroupPolicyCommand\");\nvar de_GetVpnConnectionDeviceSampleConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVpnConnectionDeviceSampleConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVpnConnectionDeviceSampleConfigurationCommand\");\nvar de_GetVpnConnectionDeviceTypesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVpnConnectionDeviceTypesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVpnConnectionDeviceTypesCommand\");\nvar de_GetVpnTunnelReplacementStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVpnTunnelReplacementStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVpnTunnelReplacementStatusCommand\");\nvar de_ImportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportClientVpnClientCertificateRevocationListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportClientVpnClientCertificateRevocationListCommand\");\nvar de_ImportImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportImageCommand\");\nvar de_ImportInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportInstanceCommand\");\nvar de_ImportKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportKeyPairResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportKeyPairCommand\");\nvar de_ImportSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportSnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportSnapshotCommand\");\nvar de_ImportVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportVolumeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportVolumeCommand\");\nvar de_ListImagesInRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListImagesInRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListImagesInRecycleBinCommand\");\nvar de_ListSnapshotsInRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSnapshotsInRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSnapshotsInRecycleBinCommand\");\nvar de_LockSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_LockSnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_LockSnapshotCommand\");\nvar de_ModifyAddressAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyAddressAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyAddressAttributeCommand\");\nvar de_ModifyAvailabilityZoneGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyAvailabilityZoneGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyAvailabilityZoneGroupCommand\");\nvar de_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyCapacityReservationCommand\");\nvar de_ModifyCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyCapacityReservationFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyCapacityReservationFleetCommand\");\nvar de_ModifyClientVpnEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyClientVpnEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyClientVpnEndpointCommand\");\nvar de_ModifyDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyDefaultCreditSpecificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyDefaultCreditSpecificationCommand\");\nvar de_ModifyEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyEbsDefaultKmsKeyIdResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyEbsDefaultKmsKeyIdCommand\");\nvar de_ModifyFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyFleetCommand\");\nvar de_ModifyFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyFpgaImageAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyFpgaImageAttributeCommand\");\nvar de_ModifyHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyHostsCommand\");\nvar de_ModifyIdentityIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyIdentityIdFormatCommand\");\nvar de_ModifyIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyIdFormatCommand\");\nvar de_ModifyImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyImageAttributeCommand\");\nvar de_ModifyInstanceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyInstanceAttributeCommand\");\nvar de_ModifyInstanceCapacityReservationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceCapacityReservationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceCapacityReservationAttributesCommand\");\nvar de_ModifyInstanceCpuOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceCpuOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceCpuOptionsCommand\");\nvar de_ModifyInstanceCreditSpecificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceCreditSpecificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceCreditSpecificationCommand\");\nvar de_ModifyInstanceEventStartTimeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceEventStartTimeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceEventStartTimeCommand\");\nvar de_ModifyInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceEventWindowCommand\");\nvar de_ModifyInstanceMaintenanceOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceMaintenanceOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceMaintenanceOptionsCommand\");\nvar de_ModifyInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceMetadataDefaultsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceMetadataDefaultsCommand\");\nvar de_ModifyInstanceMetadataOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceMetadataOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceMetadataOptionsCommand\");\nvar de_ModifyInstanceNetworkPerformanceOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceNetworkPerformanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceNetworkPerformanceOptionsCommand\");\nvar de_ModifyInstancePlacementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstancePlacementResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstancePlacementCommand\");\nvar de_ModifyIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamCommand\");\nvar de_ModifyIpamPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamPoolCommand\");\nvar de_ModifyIpamResourceCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamResourceCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamResourceCidrCommand\");\nvar de_ModifyIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamResourceDiscoveryCommand\");\nvar de_ModifyIpamScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamScopeCommand\");\nvar de_ModifyLaunchTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyLaunchTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyLaunchTemplateCommand\");\nvar de_ModifyLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyLocalGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyLocalGatewayRouteCommand\");\nvar de_ModifyManagedPrefixListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyManagedPrefixListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyManagedPrefixListCommand\");\nvar de_ModifyNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyNetworkInterfaceAttributeCommand\");\nvar de_ModifyPrivateDnsNameOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyPrivateDnsNameOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyPrivateDnsNameOptionsCommand\");\nvar de_ModifyReservedInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyReservedInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyReservedInstancesCommand\");\nvar de_ModifyRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyRouteServerCommand\");\nvar de_ModifySecurityGroupRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifySecurityGroupRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifySecurityGroupRulesCommand\");\nvar de_ModifySnapshotAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifySnapshotAttributeCommand\");\nvar de_ModifySnapshotTierCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifySnapshotTierResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifySnapshotTierCommand\");\nvar de_ModifySpotFleetRequestCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifySpotFleetRequestResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifySpotFleetRequestCommand\");\nvar de_ModifySubnetAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifySubnetAttributeCommand\");\nvar de_ModifyTrafficMirrorFilterNetworkServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrafficMirrorFilterNetworkServicesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrafficMirrorFilterNetworkServicesCommand\");\nvar de_ModifyTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrafficMirrorFilterRuleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrafficMirrorFilterRuleCommand\");\nvar de_ModifyTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrafficMirrorSessionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrafficMirrorSessionCommand\");\nvar de_ModifyTransitGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTransitGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTransitGatewayCommand\");\nvar de_ModifyTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTransitGatewayPrefixListReferenceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTransitGatewayPrefixListReferenceCommand\");\nvar de_ModifyTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTransitGatewayVpcAttachmentCommand\");\nvar de_ModifyVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessEndpointCommand\");\nvar de_ModifyVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessEndpointPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessEndpointPolicyCommand\");\nvar de_ModifyVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessGroupCommand\");\nvar de_ModifyVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessGroupPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessGroupPolicyCommand\");\nvar de_ModifyVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessInstanceCommand\");\nvar de_ModifyVerifiedAccessInstanceLoggingConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessInstanceLoggingConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessInstanceLoggingConfigurationCommand\");\nvar de_ModifyVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessTrustProviderCommand\");\nvar de_ModifyVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVolumeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVolumeCommand\");\nvar de_ModifyVolumeAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyVolumeAttributeCommand\");\nvar de_ModifyVpcAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyVpcAttributeCommand\");\nvar de_ModifyVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcBlockPublicAccessExclusionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcBlockPublicAccessExclusionCommand\");\nvar de_ModifyVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcBlockPublicAccessOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcBlockPublicAccessOptionsCommand\");\nvar de_ModifyVpcEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointCommand\");\nvar de_ModifyVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointConnectionNotificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointConnectionNotificationCommand\");\nvar de_ModifyVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointServiceConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointServiceConfigurationCommand\");\nvar de_ModifyVpcEndpointServicePayerResponsibilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointServicePayerResponsibilityResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointServicePayerResponsibilityCommand\");\nvar de_ModifyVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointServicePermissionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointServicePermissionsCommand\");\nvar de_ModifyVpcPeeringConnectionOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcPeeringConnectionOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcPeeringConnectionOptionsCommand\");\nvar de_ModifyVpcTenancyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcTenancyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcTenancyCommand\");\nvar de_ModifyVpnConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnConnectionCommand\");\nvar de_ModifyVpnConnectionOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnConnectionOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnConnectionOptionsCommand\");\nvar de_ModifyVpnTunnelCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnTunnelCertificateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnTunnelCertificateCommand\");\nvar de_ModifyVpnTunnelOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnTunnelOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnTunnelOptionsCommand\");\nvar de_MonitorInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MonitorInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MonitorInstancesCommand\");\nvar de_MoveAddressToVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MoveAddressToVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MoveAddressToVpcCommand\");\nvar de_MoveByoipCidrToIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MoveByoipCidrToIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MoveByoipCidrToIpamCommand\");\nvar de_MoveCapacityReservationInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MoveCapacityReservationInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MoveCapacityReservationInstancesCommand\");\nvar de_ProvisionByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionByoipCidrCommand\");\nvar de_ProvisionIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionIpamByoasnCommand\");\nvar de_ProvisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionIpamPoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionIpamPoolCidrCommand\");\nvar de_ProvisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionPublicIpv4PoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionPublicIpv4PoolCidrCommand\");\nvar de_PurchaseCapacityBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseCapacityBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseCapacityBlockCommand\");\nvar de_PurchaseCapacityBlockExtensionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseCapacityBlockExtensionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseCapacityBlockExtensionCommand\");\nvar de_PurchaseHostReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseHostReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseHostReservationCommand\");\nvar de_PurchaseReservedInstancesOfferingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseReservedInstancesOfferingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseReservedInstancesOfferingCommand\");\nvar de_PurchaseScheduledInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseScheduledInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseScheduledInstancesCommand\");\nvar de_RebootInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RebootInstancesCommand\");\nvar de_RegisterImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterImageCommand\");\nvar de_RegisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterInstanceEventNotificationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterInstanceEventNotificationAttributesCommand\");\nvar de_RegisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTransitGatewayMulticastGroupMembersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTransitGatewayMulticastGroupMembersCommand\");\nvar de_RegisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTransitGatewayMulticastGroupSourcesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTransitGatewayMulticastGroupSourcesCommand\");\nvar de_RejectCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectCapacityReservationBillingOwnershipResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectCapacityReservationBillingOwnershipCommand\");\nvar de_RejectTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectTransitGatewayMulticastDomainAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectTransitGatewayMulticastDomainAssociationsCommand\");\nvar de_RejectTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectTransitGatewayPeeringAttachmentCommand\");\nvar de_RejectTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectTransitGatewayVpcAttachmentCommand\");\nvar de_RejectVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectVpcEndpointConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectVpcEndpointConnectionsCommand\");\nvar de_RejectVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectVpcPeeringConnectionCommand\");\nvar de_ReleaseAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReleaseAddressCommand\");\nvar de_ReleaseHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReleaseHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReleaseHostsCommand\");\nvar de_ReleaseIpamPoolAllocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReleaseIpamPoolAllocationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReleaseIpamPoolAllocationCommand\");\nvar de_ReplaceIamInstanceProfileAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceIamInstanceProfileAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceIamInstanceProfileAssociationCommand\");\nvar de_ReplaceImageCriteriaInAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceImageCriteriaInAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceImageCriteriaInAllowedImagesSettingsCommand\");\nvar de_ReplaceNetworkAclAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceNetworkAclAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceNetworkAclAssociationCommand\");\nvar de_ReplaceNetworkAclEntryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReplaceNetworkAclEntryCommand\");\nvar de_ReplaceRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReplaceRouteCommand\");\nvar de_ReplaceRouteTableAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceRouteTableAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceRouteTableAssociationCommand\");\nvar de_ReplaceTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceTransitGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceTransitGatewayRouteCommand\");\nvar de_ReplaceVpnTunnelCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceVpnTunnelResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceVpnTunnelCommand\");\nvar de_ReportInstanceStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReportInstanceStatusCommand\");\nvar de_RequestSpotFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RequestSpotFleetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RequestSpotFleetCommand\");\nvar de_RequestSpotInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RequestSpotInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RequestSpotInstancesCommand\");\nvar de_ResetAddressAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetAddressAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetAddressAttributeCommand\");\nvar de_ResetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetEbsDefaultKmsKeyIdResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetEbsDefaultKmsKeyIdCommand\");\nvar de_ResetFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetFpgaImageAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetFpgaImageAttributeCommand\");\nvar de_ResetImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetImageAttributeCommand\");\nvar de_ResetInstanceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetInstanceAttributeCommand\");\nvar de_ResetNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetNetworkInterfaceAttributeCommand\");\nvar de_ResetSnapshotAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetSnapshotAttributeCommand\");\nvar de_RestoreAddressToClassicCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreAddressToClassicResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreAddressToClassicCommand\");\nvar de_RestoreImageFromRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreImageFromRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreImageFromRecycleBinCommand\");\nvar de_RestoreManagedPrefixListVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreManagedPrefixListVersionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreManagedPrefixListVersionCommand\");\nvar de_RestoreSnapshotFromRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreSnapshotFromRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreSnapshotFromRecycleBinCommand\");\nvar de_RestoreSnapshotTierCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreSnapshotTierResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreSnapshotTierCommand\");\nvar de_RevokeClientVpnIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RevokeClientVpnIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RevokeClientVpnIngressCommand\");\nvar de_RevokeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RevokeSecurityGroupEgressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RevokeSecurityGroupEgressCommand\");\nvar de_RevokeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RevokeSecurityGroupIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RevokeSecurityGroupIngressCommand\");\nvar de_RunInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_Reservation(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RunInstancesCommand\");\nvar de_RunScheduledInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RunScheduledInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RunScheduledInstancesCommand\");\nvar de_SearchLocalGatewayRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SearchLocalGatewayRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SearchLocalGatewayRoutesCommand\");\nvar de_SearchTransitGatewayMulticastGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SearchTransitGatewayMulticastGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SearchTransitGatewayMulticastGroupsCommand\");\nvar de_SearchTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SearchTransitGatewayRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SearchTransitGatewayRoutesCommand\");\nvar de_SendDiagnosticInterruptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SendDiagnosticInterruptCommand\");\nvar de_StartDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartDeclarativePoliciesReportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartDeclarativePoliciesReportCommand\");\nvar de_StartInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartInstancesCommand\");\nvar de_StartNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartNetworkInsightsAccessScopeAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartNetworkInsightsAccessScopeAnalysisCommand\");\nvar de_StartNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartNetworkInsightsAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartNetworkInsightsAnalysisCommand\");\nvar de_StartVpcEndpointServicePrivateDnsVerificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartVpcEndpointServicePrivateDnsVerificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartVpcEndpointServicePrivateDnsVerificationCommand\");\nvar de_StopInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StopInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopInstancesCommand\");\nvar de_TerminateClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_TerminateClientVpnConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TerminateClientVpnConnectionsCommand\");\nvar de_TerminateInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_TerminateInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TerminateInstancesCommand\");\nvar de_UnassignIpv6AddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnassignIpv6AddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnassignIpv6AddressesCommand\");\nvar de_UnassignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UnassignPrivateIpAddressesCommand\");\nvar de_UnassignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnassignPrivateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnassignPrivateNatGatewayAddressCommand\");\nvar de_UnlockSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnlockSnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnlockSnapshotCommand\");\nvar de_UnmonitorInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnmonitorInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnmonitorInstancesCommand\");\nvar de_UpdateSecurityGroupRuleDescriptionsEgressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateSecurityGroupRuleDescriptionsEgressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecurityGroupRuleDescriptionsEgressCommand\");\nvar de_UpdateSecurityGroupRuleDescriptionsIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateSecurityGroupRuleDescriptionsIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecurityGroupRuleDescriptionsIngressCommand\");\nvar de_WithdrawByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_WithdrawByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_WithdrawByoipCidrCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadEc2ErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Errors.Error,\n errorCode\n });\n}, \"de_CommandError\");\nvar se_AcceleratorCount = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorCount\");\nvar se_AcceleratorCountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorCountRequest\");\nvar se_AcceleratorManufacturerSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AcceleratorManufacturerSet\");\nvar se_AcceleratorNameSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AcceleratorNameSet\");\nvar se_AcceleratorTotalMemoryMiB = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorTotalMemoryMiB\");\nvar se_AcceleratorTotalMemoryMiBRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorTotalMemoryMiBRequest\");\nvar se_AcceleratorTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AcceleratorTypeSet\");\nvar se_AcceptAddressTransferRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ad] != null) {\n entries[_Ad] = input[_Ad];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptAddressTransferRequest\");\nvar se_AcceptCapacityReservationBillingOwnershipRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n return entries;\n}, \"se_AcceptCapacityReservationBillingOwnershipRequest\");\nvar se_AcceptReservedInstancesExchangeQuoteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RII] != null) {\n const memberEntries = se_ReservedInstanceIdSet(input[_RII], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TC] != null) {\n const memberEntries = se_TargetConfigurationRequestSet(input[_TC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AcceptReservedInstancesExchangeQuoteRequest\");\nvar se_AcceptTransitGatewayMulticastDomainAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_ValueStringList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptTransitGatewayMulticastDomainAssociationsRequest\");\nvar se_AcceptTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptTransitGatewayPeeringAttachmentRequest\");\nvar se_AcceptTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptTransitGatewayVpcAttachmentRequest\");\nvar se_AcceptVpcEndpointConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AcceptVpcEndpointConnectionsRequest\");\nvar se_AcceptVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_AcceptVpcPeeringConnectionRequest\");\nvar se_AccessScopePathListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AccessScopePathRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AccessScopePathListRequest\");\nvar se_AccessScopePathRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n const memberEntries = se_PathStatementRequest(input[_S], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Source.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_D] != null) {\n const memberEntries = se_PathStatementRequest(input[_D], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Destination.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TR] != null) {\n const memberEntries = se_ThroughResourcesStatementRequestList(input[_TR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ThroughResource.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AccessScopePathRequest\");\nvar se_AccountAttributeNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AttributeName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AccountAttributeNameStringList\");\nvar se_AddIpamOperatingRegion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_AddIpamOperatingRegion\");\nvar se_AddIpamOperatingRegionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AddIpamOperatingRegion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AddIpamOperatingRegionSet\");\nvar se_AddIpamOrganizationalUnitExclusion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OEP] != null) {\n entries[_OEP] = input[_OEP];\n }\n return entries;\n}, \"se_AddIpamOrganizationalUnitExclusion\");\nvar se_AddIpamOrganizationalUnitExclusionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AddIpamOrganizationalUnitExclusion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AddIpamOrganizationalUnitExclusionSet\");\nvar se_AddPrefixListEntries = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AddPrefixListEntry(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AddPrefixListEntries\");\nvar se_AddPrefixListEntry = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_AddPrefixListEntry\");\nvar se_AdvertiseByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_AdvertiseByoipCidrRequest\");\nvar se_AllocateAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Do] != null) {\n entries[_Do] = input[_Do];\n }\n if (input[_Ad] != null) {\n entries[_Ad] = input[_Ad];\n }\n if (input[_PIP] != null) {\n entries[_PIP] = input[_PIP];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n if (input[_COIP] != null) {\n entries[_COIP] = input[_COIP];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AllocateAddressRequest\");\nvar se_AllocateHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HR] != null) {\n entries[_HR] = input[_HR];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_HM] != null) {\n entries[_HM] = input[_HM];\n }\n if (input[_AI] != null) {\n const memberEntries = se_AssetIdList(input[_AI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_AP] != null) {\n entries[_AP] = input[_AP];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_Q] != null) {\n entries[_Q] = input[_Q];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n return entries;\n}, \"se_AllocateHostsRequest\");\nvar se_AllocateIpamPoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_NL] != null) {\n entries[_NL] = input[_NL];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PNC] != null) {\n entries[_PNC] = input[_PNC];\n }\n if (input[_AC] != null) {\n const memberEntries = se_IpamPoolAllocationAllowedCidrs(input[_AC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllowedCidr.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DC] != null) {\n const memberEntries = se_IpamPoolAllocationDisallowedCidrs(input[_DC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisallowedCidr.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AllocateIpamPoolCidrRequest\");\nvar se_AllocationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AllocationId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AllocationIdList\");\nvar se_AllocationIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AllocationIds\");\nvar se_AllowedInstanceTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AllowedInstanceTypeSet\");\nvar se_ApplySecurityGroupsToClientVpnTargetNetworkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ClientVpnSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ApplySecurityGroupsToClientVpnTargetNetworkRequest\");\nvar se_ArchitectureTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ArchitectureTypeSet\");\nvar se_ArnList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ArnList\");\nvar se_AsnAuthorizationContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Me] != null) {\n entries[_Me] = input[_Me];\n }\n if (input[_Si] != null) {\n entries[_Si] = input[_Si];\n }\n return entries;\n}, \"se_AsnAuthorizationContext\");\nvar se_AssetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AssetIdList\");\nvar se_AssignIpv6AddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_IP] != null) {\n const memberEntries = se_IpPrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_IA] != null) {\n const memberEntries = se_Ipv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n return entries;\n}, \"se_AssignIpv6AddressesRequest\");\nvar se_AssignPrivateIpAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPp] != null) {\n const memberEntries = se_IpPrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressStringList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_AR] != null) {\n entries[_AR] = input[_AR];\n }\n return entries;\n}, \"se_AssignPrivateIpAddressesRequest\");\nvar se_AssignPrivateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_IpList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAC] != null) {\n entries[_PIAC] = input[_PIAC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssignPrivateNatGatewayAddressRequest\");\nvar se_AssociateAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_ARl] != null) {\n entries[_ARl] = input[_ARl];\n }\n return entries;\n}, \"se_AssociateAddressRequest\");\nvar se_AssociateCapacityReservationBillingOwnerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_URBOI] != null) {\n entries[_URBOI] = input[_URBOI];\n }\n return entries;\n}, \"se_AssociateCapacityReservationBillingOwnerRequest\");\nvar se_AssociateClientVpnTargetNetworkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateClientVpnTargetNetworkRequest\");\nvar se_AssociateDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOI] != null) {\n entries[_DOI] = input[_DOI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateDhcpOptionsRequest\");\nvar se_AssociateEnclaveCertificateIamRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_RAo] != null) {\n entries[_RAo] = input[_RAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateEnclaveCertificateIamRoleRequest\");\nvar se_AssociateIamInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n return entries;\n}, \"se_AssociateIamInstanceProfileRequest\");\nvar se_AssociateInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n if (input[_AT] != null) {\n const memberEntries = se_InstanceEventWindowAssociationRequest(input[_AT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssociateInstanceEventWindowRequest\");\nvar se_AssociateIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_AssociateIpamByoasnRequest\");\nvar se_AssociateIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_AssociateIpamResourceDiscoveryRequest\");\nvar se_AssociateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIdList(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIA] != null) {\n const memberEntries = se_IpList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateNatGatewayAddressRequest\");\nvar se_AssociateRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateRouteServerRequest\");\nvar se_AssociateRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n return entries;\n}, \"se_AssociateRouteTableRequest\");\nvar se_AssociateSecurityGroupVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateSecurityGroupVpcRequest\");\nvar se_AssociateSubnetCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n return entries;\n}, \"se_AssociateSubnetCidrBlockRequest\");\nvar se_AssociateTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTransitGatewayMulticastDomainRequest\");\nvar se_AssociateTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTransitGatewayPolicyTableRequest\");\nvar se_AssociateTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTransitGatewayRouteTableRequest\");\nvar se_AssociateTrunkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BII] != null) {\n entries[_BII] = input[_BII];\n }\n if (input[_TII] != null) {\n entries[_TII] = input[_TII];\n }\n if (input[_VIl] != null) {\n entries[_VIl] = input[_VIl];\n }\n if (input[_GK] != null) {\n entries[_GK] = input[_GK];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTrunkInterfaceRequest\");\nvar se_AssociateVpcCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICBNBG] != null) {\n entries[_ICBNBG] = input[_ICBNBG];\n }\n if (input[_IPpv] != null) {\n entries[_IPpv] = input[_IPpv];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_IIPIp] != null) {\n entries[_IIPIp] = input[_IIPIp];\n }\n if (input[_INLp] != null) {\n entries[_INLp] = input[_INLp];\n }\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_APICB] != null) {\n entries[_APICB] = input[_APICB];\n }\n return entries;\n}, \"se_AssociateVpcCidrBlockRequest\");\nvar se_AssociationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AssociationId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AssociationIdList\");\nvar se_AthenaIntegration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IRSDA] != null) {\n entries[_IRSDA] = input[_IRSDA];\n }\n if (input[_PLF] != null) {\n entries[_PLF] = input[_PLF];\n }\n if (input[_PSD] != null) {\n entries[_PSD] = (0, import_smithy_client.serializeDateTime)(input[_PSD]);\n }\n if (input[_PED] != null) {\n entries[_PED] = (0, import_smithy_client.serializeDateTime)(input[_PED]);\n }\n return entries;\n}, \"se_AthenaIntegration\");\nvar se_AthenaIntegrationsSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AthenaIntegration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AthenaIntegrationsSet\");\nvar se_AttachClassicLinkVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_G] != null) {\n const memberEntries = se_GroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AttachClassicLinkVpcRequest\");\nvar se_AttachInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGI] != null) {\n entries[_IGI] = input[_IGI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_AttachInternetGatewayRequest\");\nvar se_AttachNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NCI] != null) {\n entries[_NCI] = input[_NCI];\n }\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecification(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n return entries;\n}, \"se_AttachNetworkInterfaceRequest\");\nvar se_AttachVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AttachVerifiedAccessTrustProviderRequest\");\nvar se_AttachVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Dev] != null) {\n entries[_Dev] = input[_Dev];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AttachVolumeRequest\");\nvar se_AttachVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AttachVpnGatewayRequest\");\nvar se_AttributeBooleanValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_AttributeBooleanValue\");\nvar se_AttributeValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_AttributeValue\");\nvar se_AuthorizeClientVpnIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_TNC] != null) {\n entries[_TNC] = input[_TNC];\n }\n if (input[_AGI] != null) {\n entries[_AGI] = input[_AGI];\n }\n if (input[_AAG] != null) {\n entries[_AAG] = input[_AAG];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AuthorizeClientVpnIngressRequest\");\nvar se_AuthorizeSecurityGroupEgressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AuthorizeSecurityGroupEgressRequest\");\nvar se_AuthorizeSecurityGroupIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AuthorizeSecurityGroupIngressRequest\");\nvar se_AvailabilityZoneStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AvailabilityZone.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AvailabilityZoneStringList\");\nvar se_BaselineEbsBandwidthMbps = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_BaselineEbsBandwidthMbps\");\nvar se_BaselineEbsBandwidthMbpsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_BaselineEbsBandwidthMbpsRequest\");\nvar se_BaselinePerformanceFactors = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Cp] != null) {\n const memberEntries = se_CpuPerformanceFactor(input[_Cp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Cpu.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_BaselinePerformanceFactors\");\nvar se_BaselinePerformanceFactorsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Cp] != null) {\n const memberEntries = se_CpuPerformanceFactorRequest(input[_Cp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Cpu.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_BaselinePerformanceFactorsRequest\");\nvar se_BillingProductList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_BillingProductList\");\nvar se_BlobAttributeValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = context.base64Encoder(input[_Va]);\n }\n return entries;\n}, \"se_BlobAttributeValue\");\nvar se_BlockDeviceMapping = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_E] != null) {\n const memberEntries = se_EbsBlockDevice(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n return entries;\n}, \"se_BlockDeviceMapping\");\nvar se_BlockDeviceMappingList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_BlockDeviceMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_BlockDeviceMappingList\");\nvar se_BlockDeviceMappingRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_BlockDeviceMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_BlockDeviceMappingRequestList\");\nvar se_BundleIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`BundleId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_BundleIdStringList\");\nvar se_BundleInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_St] != null) {\n const memberEntries = se_Storage(input[_St], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Storage.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_BundleInstanceRequest\");\nvar se_CancelBundleTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BIu] != null) {\n entries[_BIu] = input[_BIu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CancelBundleTaskRequest\");\nvar se_CancelCapacityReservationFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRFI] != null) {\n const memberEntries = se_CapacityReservationFleetIdSet(input[_CRFI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationFleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CancelCapacityReservationFleetsRequest\");\nvar se_CancelCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CancelCapacityReservationRequest\");\nvar se_CancelConversionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTI] != null) {\n entries[_CTI] = input[_CTI];\n }\n if (input[_RM] != null) {\n entries[_RM] = input[_RM];\n }\n return entries;\n}, \"se_CancelConversionRequest\");\nvar se_CancelDeclarativePoliciesReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIep] != null) {\n entries[_RIep] = input[_RIep];\n }\n return entries;\n}, \"se_CancelDeclarativePoliciesReportRequest\");\nvar se_CancelExportTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ETI] != null) {\n entries[_ETI] = input[_ETI];\n }\n return entries;\n}, \"se_CancelExportTaskRequest\");\nvar se_CancelImageLaunchPermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CancelImageLaunchPermissionRequest\");\nvar se_CancelImportTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRa] != null) {\n entries[_CRa] = input[_CRa];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITI] != null) {\n entries[_ITI] = input[_ITI];\n }\n return entries;\n}, \"se_CancelImportTaskRequest\");\nvar se_CancelReservedInstancesListingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RILI] != null) {\n entries[_RILI] = input[_RILI];\n }\n return entries;\n}, \"se_CancelReservedInstancesListingRequest\");\nvar se_CancelSpotFleetRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRI] != null) {\n const memberEntries = se_SpotFleetRequestIdList(input[_SFRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotFleetRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TI] != null) {\n entries[_TI] = input[_TI];\n }\n return entries;\n}, \"se_CancelSpotFleetRequestsRequest\");\nvar se_CancelSpotInstanceRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIRI] != null) {\n const memberEntries = se_SpotInstanceRequestIdList(input[_SIRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotInstanceRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CancelSpotInstanceRequestsRequest\");\nvar se_CapacityReservationFleetIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CapacityReservationFleetIdSet\");\nvar se_CapacityReservationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CapacityReservationIdSet\");\nvar se_CapacityReservationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_USs] != null) {\n entries[_USs] = input[_USs];\n }\n return entries;\n}, \"se_CapacityReservationOptionsRequest\");\nvar se_CapacityReservationSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRP] != null) {\n entries[_CRP] = input[_CRP];\n }\n if (input[_CRTa] != null) {\n const memberEntries = se_CapacityReservationTarget(input[_CRTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CapacityReservationSpecification\");\nvar se_CapacityReservationTarget = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_CRRGA] != null) {\n entries[_CRRGA] = input[_CRRGA];\n }\n return entries;\n}, \"se_CapacityReservationTarget\");\nvar se_CarrierGatewayIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CarrierGatewayIdSet\");\nvar se_CertificateAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRCCA] != null) {\n entries[_CRCCA] = input[_CRCCA];\n }\n return entries;\n}, \"se_CertificateAuthenticationRequest\");\nvar se_CidrAuthorizationContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Me] != null) {\n entries[_Me] = input[_Me];\n }\n if (input[_Si] != null) {\n entries[_Si] = input[_Si];\n }\n return entries;\n}, \"se_CidrAuthorizationContext\");\nvar se_ClassicLoadBalancer = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_ClassicLoadBalancer\");\nvar se_ClassicLoadBalancers = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ClassicLoadBalancer(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ClassicLoadBalancers\");\nvar se_ClassicLoadBalancersConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CLB] != null) {\n const memberEntries = se_ClassicLoadBalancers(input[_CLB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClassicLoadBalancers.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ClassicLoadBalancersConfig\");\nvar se_ClientConnectOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_LFA] != null) {\n entries[_LFA] = input[_LFA];\n }\n return entries;\n}, \"se_ClientConnectOptions\");\nvar se_ClientData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Co] != null) {\n entries[_Co] = input[_Co];\n }\n if (input[_UE] != null) {\n entries[_UE] = (0, import_smithy_client.serializeDateTime)(input[_UE]);\n }\n if (input[_USp] != null) {\n entries[_USp] = (0, import_smithy_client.serializeFloat)(input[_USp]);\n }\n if (input[_USpl] != null) {\n entries[_USpl] = (0, import_smithy_client.serializeDateTime)(input[_USpl]);\n }\n return entries;\n}, \"se_ClientData\");\nvar se_ClientLoginBannerOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_BT] != null) {\n entries[_BT] = input[_BT];\n }\n return entries;\n}, \"se_ClientLoginBannerOptions\");\nvar se_ClientRouteEnforcementOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Enf] != null) {\n entries[_Enf] = input[_Enf];\n }\n return entries;\n}, \"se_ClientRouteEnforcementOptions\");\nvar se_ClientVpnAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_AD] != null) {\n const memberEntries = se_DirectoryServiceAuthenticationRequest(input[_AD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ActiveDirectory.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MA] != null) {\n const memberEntries = se_CertificateAuthenticationRequest(input[_MA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MutualAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FA] != null) {\n const memberEntries = se_FederatedAuthenticationRequest(input[_FA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FederatedAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ClientVpnAuthenticationRequest\");\nvar se_ClientVpnAuthenticationRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ClientVpnAuthenticationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ClientVpnAuthenticationRequestList\");\nvar se_ClientVpnEndpointIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ClientVpnEndpointIdList\");\nvar se_ClientVpnSecurityGroupIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ClientVpnSecurityGroupIdSet\");\nvar se_CloudWatchLogOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LE] != null) {\n entries[_LE] = input[_LE];\n }\n if (input[_LGA] != null) {\n entries[_LGA] = input[_LGA];\n }\n if (input[_LOF] != null) {\n entries[_LOF] = input[_LOF];\n }\n return entries;\n}, \"se_CloudWatchLogOptionsSpecification\");\nvar se_CoipPoolIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CoipPoolIdSet\");\nvar se_ConfirmProductInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_PC] != null) {\n entries[_PC] = input[_PC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ConfirmProductInstanceRequest\");\nvar se_ConnectionLogOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_CLG] != null) {\n entries[_CLG] = input[_CLG];\n }\n if (input[_CLS] != null) {\n entries[_CLS] = input[_CLS];\n }\n return entries;\n}, \"se_ConnectionLogOptions\");\nvar se_ConnectionNotificationIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ConnectionNotificationIdsList\");\nvar se_ConnectionTrackingSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TET] != null) {\n entries[_TET] = input[_TET];\n }\n if (input[_UST] != null) {\n entries[_UST] = input[_UST];\n }\n if (input[_UT] != null) {\n entries[_UT] = input[_UT];\n }\n return entries;\n}, \"se_ConnectionTrackingSpecificationRequest\");\nvar se_ConversionIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ConversionIdStringList\");\nvar se_CopyFpgaImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFII] != null) {\n entries[_SFII] = input[_SFII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_SR] != null) {\n entries[_SR] = input[_SR];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CopyFpgaImageRequest\");\nvar se_CopyImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_SII] != null) {\n entries[_SII] = input[_SII];\n }\n if (input[_SR] != null) {\n entries[_SR] = input[_SR];\n }\n if (input[_DOA] != null) {\n entries[_DOA] = input[_DOA];\n }\n if (input[_CITo] != null) {\n entries[_CITo] = input[_CITo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SCCDM] != null) {\n entries[_SCCDM] = input[_SCCDM];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CopyImageRequest\");\nvar se_CopySnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DOA] != null) {\n entries[_DOA] = input[_DOA];\n }\n if (input[_DRes] != null) {\n entries[_DRes] = input[_DRes];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_PU] != null) {\n entries[_PU] = input[_PU];\n }\n if (input[_SR] != null) {\n entries[_SR] = input[_SR];\n }\n if (input[_SSI] != null) {\n entries[_SSI] = input[_SSI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CDM] != null) {\n entries[_CDM] = input[_CDM];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CopySnapshotRequest\");\nvar se_CpuManufacturerSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CpuManufacturerSet\");\nvar se_CpuOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_TPC] != null) {\n entries[_TPC] = input[_TPC];\n }\n if (input[_ASS] != null) {\n entries[_ASS] = input[_ASS];\n }\n return entries;\n}, \"se_CpuOptionsRequest\");\nvar se_CpuPerformanceFactor = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_R] != null) {\n const memberEntries = se_PerformanceFactorReferenceSet(input[_R], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReferenceSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CpuPerformanceFactor\");\nvar se_CpuPerformanceFactorRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_R] != null) {\n const memberEntries = se_PerformanceFactorReferenceSetRequest(input[_R], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Reference.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CpuPerformanceFactorRequest\");\nvar se_CreateCapacityReservationBySplittingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SCRI] != null) {\n entries[_SCRI] = input[_SCRI];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateCapacityReservationBySplittingRequest\");\nvar se_CreateCapacityReservationFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ITS] != null) {\n const memberEntries = se_ReservationFleetInstanceSpecificationList(input[_ITS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTypeSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_TTC] != null) {\n entries[_TTC] = input[_TTC];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_IMC] != null) {\n entries[_IMC] = input[_IMC];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCapacityReservationFleetRequest\");\nvar se_CreateCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IPn] != null) {\n entries[_IPn] = input[_IPn];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_ES] != null) {\n entries[_ES] = input[_ES];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_EDT] != null) {\n entries[_EDT] = input[_EDT];\n }\n if (input[_IMC] != null) {\n entries[_IMC] = input[_IMC];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_PGA] != null) {\n entries[_PGA] = input[_PGA];\n }\n if (input[_SD] != null) {\n entries[_SD] = (0, import_smithy_client.serializeDateTime)(input[_SD]);\n }\n if (input[_CD] != null) {\n entries[_CD] = input[_CD];\n }\n if (input[_DP] != null) {\n entries[_DP] = input[_DP];\n }\n return entries;\n}, \"se_CreateCapacityReservationRequest\");\nvar se_CreateCarrierGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateCarrierGatewayRequest\");\nvar se_CreateClientVpnEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CCB] != null) {\n entries[_CCB] = input[_CCB];\n }\n if (input[_SCA] != null) {\n entries[_SCA] = input[_SCA];\n }\n if (input[_AO] != null) {\n const memberEntries = se_ClientVpnAuthenticationRequestList(input[_AO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Authentication.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CLO] != null) {\n const memberEntries = se_ConnectionLogOptions(input[_CLO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionLogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DSn] != null) {\n const memberEntries = se_ValueStringList(input[_DSn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsServers.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TPr] != null) {\n entries[_TPr] = input[_TPr];\n }\n if (input[_VP] != null) {\n entries[_VP] = input[_VP];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ClientVpnSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SSP] != null) {\n entries[_SSP] = input[_SSP];\n }\n if (input[_CCO] != null) {\n const memberEntries = se_ClientConnectOptions(input[_CCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientConnectOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_STH] != null) {\n entries[_STH] = input[_STH];\n }\n if (input[_CLBO] != null) {\n const memberEntries = se_ClientLoginBannerOptions(input[_CLBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientLoginBannerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CREO] != null) {\n const memberEntries = se_ClientRouteEnforcementOptions(input[_CREO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientRouteEnforcementOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOST] != null) {\n entries[_DOST] = input[_DOST];\n }\n return entries;\n}, \"se_CreateClientVpnEndpointRequest\");\nvar se_CreateClientVpnRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_TVSI] != null) {\n entries[_TVSI] = input[_TVSI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateClientVpnRouteRequest\");\nvar se_CreateCoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CPIo] != null) {\n entries[_CPIo] = input[_CPIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCoipCidrRequest\");\nvar se_CreateCoipPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCoipPoolRequest\");\nvar se_CreateCustomerGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BA] != null) {\n entries[_BA] = input[_BA];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_IAp] != null) {\n entries[_IAp] = input[_IAp];\n }\n if (input[_BAE] != null) {\n entries[_BAE] = input[_BAE];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCustomerGatewayRequest\");\nvar se_CreateDefaultSubnetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IN] != null) {\n entries[_IN] = input[_IN];\n }\n return entries;\n}, \"se_CreateDefaultSubnetRequest\");\nvar se_CreateDefaultVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateDefaultVpcRequest\");\nvar se_CreateDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCh] != null) {\n const memberEntries = se_NewDhcpConfigurationList(input[_DCh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DhcpConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateDhcpOptionsRequest\");\nvar se_CreateEgressOnlyInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateEgressOnlyInternetGatewayRequest\");\nvar se_CreateFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SO] != null) {\n const memberEntries = se_SpotOptionsRequest(input[_SO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ODO] != null) {\n const memberEntries = se_OnDemandOptionsRequest(input[_ODO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OnDemandOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n if (input[_LTC] != null) {\n const memberEntries = se_FleetLaunchTemplateConfigListRequest(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfigs.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TCS] != null) {\n const memberEntries = se_TargetCapacitySpecificationRequest(input[_TCS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetCapacitySpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TIWE] != null) {\n entries[_TIWE] = input[_TIWE];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VF] != null) {\n entries[_VF] = (0, import_smithy_client.serializeDateTime)(input[_VF]);\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_RUI] != null) {\n entries[_RUI] = input[_RUI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n return entries;\n}, \"se_CreateFleetRequest\");\nvar se_CreateFlowLogsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DLPA] != null) {\n entries[_DLPA] = input[_DLPA];\n }\n if (input[_DCAR] != null) {\n entries[_DCAR] = input[_DCAR];\n }\n if (input[_LGN] != null) {\n entries[_LGN] = input[_LGN];\n }\n if (input[_RIes] != null) {\n const memberEntries = se_FlowLogResourceIds(input[_RIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_TT] != null) {\n entries[_TT] = input[_TT];\n }\n if (input[_LDT] != null) {\n entries[_LDT] = input[_LDT];\n }\n if (input[_LD] != null) {\n entries[_LD] = input[_LD];\n }\n if (input[_LF] != null) {\n entries[_LF] = input[_LF];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MAI] != null) {\n entries[_MAI] = input[_MAI];\n }\n if (input[_DO] != null) {\n const memberEntries = se_DestinationOptionsRequest(input[_DO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateFlowLogsRequest\");\nvar se_CreateFpgaImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISL] != null) {\n const memberEntries = se_StorageLocation(input[_ISL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InputStorageLocation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSL] != null) {\n const memberEntries = se_StorageLocation(input[_LSL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LogsStorageLocation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateFpgaImageRequest\");\nvar se_CreateImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_NR] != null) {\n entries[_NR] = input[_NR];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateImageRequest\");\nvar se_CreateInstanceConnectEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdStringListRequest(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PCI] != null) {\n entries[_PCI] = input[_PCI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceConnectEndpointRequest\");\nvar se_CreateInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_TRi] != null) {\n const memberEntries = se_InstanceEventWindowTimeRangeRequestSet(input[_TRi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TimeRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CE] != null) {\n entries[_CE] = input[_CE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceEventWindowRequest\");\nvar se_CreateInstanceExportTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_TE] != null) {\n entries[_TE] = input[_TE];\n }\n if (input[_ETST] != null) {\n const memberEntries = se_ExportToS3TaskSpecification(input[_ETST], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExportToS3.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceExportTaskRequest\");\nvar se_CreateInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateInternetGatewayRequest\");\nvar se_CreateIpamExternalResourceVerificationTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateIpamExternalResourceVerificationTokenRequest\");\nvar se_CreateIpamPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_L] != null) {\n entries[_L] = input[_L];\n }\n if (input[_SIPI] != null) {\n entries[_SIPI] = input[_SIPI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AF] != null) {\n entries[_AF] = input[_AF];\n }\n if (input[_AIu] != null) {\n entries[_AIu] = input[_AIu];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_AMNL] != null) {\n entries[_AMNL] = input[_AMNL];\n }\n if (input[_AMNLl] != null) {\n entries[_AMNLl] = input[_AMNLl];\n }\n if (input[_ADNL] != null) {\n entries[_ADNL] = input[_ADNL];\n }\n if (input[_ARTl] != null) {\n const memberEntries = se_RequestIpamResourceTagList(input[_ARTl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationResourceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ASw] != null) {\n entries[_ASw] = input[_ASw];\n }\n if (input[_PIS] != null) {\n entries[_PIS] = input[_PIS];\n }\n if (input[_SRo] != null) {\n const memberEntries = se_IpamPoolSourceResourceRequest(input[_SRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceResource.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateIpamPoolRequest\");\nvar se_CreateIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_OR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_OR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_Ti] != null) {\n entries[_Ti] = input[_Ti];\n }\n if (input[_EPG] != null) {\n entries[_EPG] = input[_EPG];\n }\n if (input[_MAe] != null) {\n entries[_MAe] = input[_MAe];\n }\n return entries;\n}, \"se_CreateIpamRequest\");\nvar se_CreateIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_OR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_OR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateIpamResourceDiscoveryRequest\");\nvar se_CreateIpamScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateIpamScopeRequest\");\nvar se_CreateKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_KT] != null) {\n entries[_KT] = input[_KT];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_KF] != null) {\n entries[_KF] = input[_KF];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateKeyPairRequest\");\nvar se_CreateLaunchTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_VD] != null) {\n entries[_VD] = input[_VD];\n }\n if (input[_LTD] != null) {\n const memberEntries = se_RequestLaunchTemplateData(input[_LTD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateLaunchTemplateRequest\");\nvar se_CreateLaunchTemplateVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_SV] != null) {\n entries[_SV] = input[_SV];\n }\n if (input[_VD] != null) {\n entries[_VD] = input[_VD];\n }\n if (input[_LTD] != null) {\n const memberEntries = se_RequestLaunchTemplateData(input[_LTD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_CreateLaunchTemplateVersionRequest\");\nvar se_CreateLocalGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteRequest\");\nvar se_CreateLocalGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_Mo] != null) {\n entries[_Mo] = input[_Mo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteTableRequest\");\nvar se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest\");\nvar se_CreateLocalGatewayRouteTableVpcAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteTableVpcAssociationRequest\");\nvar se_CreateLocalGatewayVirtualInterfaceGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_LBAE] != null) {\n entries[_LBAE] = input[_LBAE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayVirtualInterfaceGroupRequest\");\nvar se_CreateLocalGatewayVirtualInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_OLI] != null) {\n entries[_OLI] = input[_OLI];\n }\n if (input[_Vl] != null) {\n entries[_Vl] = input[_Vl];\n }\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_PAe] != null) {\n entries[_PAe] = input[_PAe];\n }\n if (input[_PBA] != null) {\n entries[_PBA] = input[_PBA];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PBAE] != null) {\n entries[_PBAE] = input[_PBAE];\n }\n return entries;\n}, \"se_CreateLocalGatewayVirtualInterfaceRequest\");\nvar se_CreateManagedPrefixListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLN] != null) {\n entries[_PLN] = input[_PLN];\n }\n if (input[_Ent] != null) {\n const memberEntries = se_AddPrefixListEntries(input[_Ent], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Entry.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ME] != null) {\n entries[_ME] = input[_ME];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AF] != null) {\n entries[_AF] = input[_AF];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateManagedPrefixListRequest\");\nvar se_CreateNatGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTo] != null) {\n entries[_CTo] = input[_CTo];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_SAI] != null) {\n const memberEntries = se_AllocationIdList(input[_SAI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecondaryAllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIA] != null) {\n const memberEntries = se_IpList(input[_SPIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecondaryPrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n return entries;\n}, \"se_CreateNatGatewayRequest\");\nvar se_CreateNetworkAclEntryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Eg] != null) {\n entries[_Eg] = input[_Eg];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_ITC] != null) {\n const memberEntries = se_IcmpTypeCode(input[_ITC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Icmp.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PR] != null) {\n const memberEntries = se_PortRange(input[_PR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateNetworkAclEntryRequest\");\nvar se_CreateNetworkAclRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_CreateNetworkAclRequest\");\nvar se_CreateNetworkInsightsAccessScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MP] != null) {\n const memberEntries = se_AccessScopePathListRequest(input[_MP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MatchPath.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EP] != null) {\n const memberEntries = se_AccessScopePathListRequest(input[_EP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludePath.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateNetworkInsightsAccessScopeRequest\");\nvar se_CreateNetworkInsightsPathRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIo] != null) {\n entries[_SIo] = input[_SIo];\n }\n if (input[_DIest] != null) {\n entries[_DIest] = input[_DIest];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DPe] != null) {\n entries[_DPe] = input[_DPe];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_FAS] != null) {\n const memberEntries = se_PathRequestFilter(input[_FAS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterAtSource.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FAD] != null) {\n const memberEntries = se_PathRequestFilter(input[_FAD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterAtDestination.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateNetworkInsightsPathRequest\");\nvar se_CreateNetworkInterfacePermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_AAI] != null) {\n entries[_AAI] = input[_AAI];\n }\n if (input[_ASw] != null) {\n entries[_ASw] = input[_ASw];\n }\n if (input[_Pe] != null) {\n entries[_Pe] = input[_Pe];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateNetworkInterfacePermissionRequest\");\nvar se_CreateNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPp] != null) {\n const memberEntries = se_Ipv4PrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_IP] != null) {\n const memberEntries = se_Ipv6PrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_ITn] != null) {\n entries[_ITn] = input[_ITn];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_EPI] != null) {\n entries[_EPI] = input[_EPI];\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressSpecificationList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateNetworkInterfaceRequest\");\nvar se_CreatePlacementGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PCa] != null) {\n entries[_PCa] = input[_PCa];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SL] != null) {\n entries[_SL] = input[_SL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_Str] != null) {\n entries[_Str] = input[_Str];\n }\n return entries;\n}, \"se_CreatePlacementGroupRequest\");\nvar se_CreatePublicIpv4PoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_CreatePublicIpv4PoolRequest\");\nvar se_CreateReplaceRootVolumeTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRRV] != null) {\n entries[_DRRV] = input[_DRRV];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n return entries;\n}, \"se_CreateReplaceRootVolumeTaskRequest\");\nvar se_CreateReservedInstancesListingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIIe] != null) {\n entries[_RIIe] = input[_RIIe];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_PS] != null) {\n const memberEntries = se_PriceScheduleSpecificationList(input[_PS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PriceSchedules.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateReservedInstancesListingRequest\");\nvar se_CreateRestoreImageTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_OK] != null) {\n entries[_OK] = input[_OK];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateRestoreImageTaskRequest\");\nvar se_CreateRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_CGI] != null) {\n entries[_CGI] = input[_CGI];\n }\n if (input[_CNAo] != null) {\n entries[_CNAo] = input[_CNAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_DICB] != null) {\n entries[_DICB] = input[_DICB];\n }\n if (input[_EOIGI] != null) {\n entries[_EOIGI] = input[_EOIGI];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n return entries;\n}, \"se_CreateRouteRequest\");\nvar se_CreateRouteServerEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRouteServerEndpointRequest\");\nvar se_CreateRouteServerPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSEI] != null) {\n entries[_RSEI] = input[_RSEI];\n }\n if (input[_PAe] != null) {\n entries[_PAe] = input[_PAe];\n }\n if (input[_BO] != null) {\n const memberEntries = se_RouteServerBgpOptionsRequest(input[_BO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BgpOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRouteServerPeerRequest\");\nvar se_CreateRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PRe] != null) {\n entries[_PRe] = input[_PRe];\n }\n if (input[_PRD] != null) {\n entries[_PRD] = input[_PRD];\n }\n if (input[_SNE] != null) {\n entries[_SNE] = input[_SNE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRouteServerRequest\");\nvar se_CreateRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_CreateRouteTableRequest\");\nvar se_CreateSecurityGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_GD] = input[_De];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateSecurityGroupRequest\");\nvar se_CreateSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Lo] != null) {\n entries[_Lo] = input[_Lo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateSnapshotRequest\");\nvar se_CreateSnapshotsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_ISn] != null) {\n const memberEntries = se_InstanceSpecification(input[_ISn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTFS] != null) {\n entries[_CTFS] = input[_CTFS];\n }\n if (input[_Lo] != null) {\n entries[_Lo] = input[_Lo];\n }\n return entries;\n}, \"se_CreateSnapshotsRequest\");\nvar se_CreateSpotDatafeedSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n return entries;\n}, \"se_CreateSpotDatafeedSubscriptionRequest\");\nvar se_CreateStoreImageTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_SOT] != null) {\n const memberEntries = se_S3ObjectTagList(input[_SOT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3ObjectTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateStoreImageTaskRequest\");\nvar se_CreateSubnetCidrReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_RTe] != null) {\n entries[_RTe] = input[_RTe];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateSubnetCidrReservationRequest\");\nvar se_CreateSubnetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_IN] != null) {\n entries[_IN] = input[_IN];\n }\n if (input[_IIPIp] != null) {\n entries[_IIPIp] = input[_IIPIp];\n }\n if (input[_INLp] != null) {\n entries[_INLp] = input[_INLp];\n }\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateSubnetRequest\");\nvar se_CreateTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Re] != null) {\n const memberEntries = se_ResourceIdList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateTagsRequest\");\nvar se_CreateTrafficMirrorFilterRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateTrafficMirrorFilterRequest\");\nvar se_CreateTrafficMirrorFilterRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_TD] != null) {\n entries[_TD] = input[_TD];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_DPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_DPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_SPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_SCB] != null) {\n entries[_SCB] = input[_SCB];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateTrafficMirrorFilterRuleRequest\");\nvar se_CreateTrafficMirrorSessionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_TMTI] != null) {\n entries[_TMTI] = input[_TMTI];\n }\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_PL] != null) {\n entries[_PL] = input[_PL];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_VNI] != null) {\n entries[_VNI] = input[_VNI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateTrafficMirrorSessionRequest\");\nvar se_CreateTrafficMirrorTargetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_NLBA] != null) {\n entries[_NLBA] = input[_NLBA];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_GLBEI] != null) {\n entries[_GLBEI] = input[_GLBEI];\n }\n return entries;\n}, \"se_CreateTrafficMirrorTargetRequest\");\nvar se_CreateTransitGatewayConnectPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_PAe] != null) {\n entries[_PAe] = input[_PAe];\n }\n if (input[_BO] != null) {\n const memberEntries = se_TransitGatewayConnectRequestBgpOptions(input[_BO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BgpOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ICBn] != null) {\n const memberEntries = se_InsideCidrBlocksStringList(input[_ICBn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InsideCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayConnectPeerRequest\");\nvar se_CreateTransitGatewayConnectRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TTGAI] != null) {\n entries[_TTGAI] = input[_TTGAI];\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayConnectRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayConnectRequest\");\nvar se_CreateTransitGatewayConnectRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n return entries;\n}, \"se_CreateTransitGatewayConnectRequestOptions\");\nvar se_CreateTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayMulticastDomainRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayMulticastDomainRequest\");\nvar se_CreateTransitGatewayMulticastDomainRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ISg] != null) {\n entries[_ISg] = input[_ISg];\n }\n if (input[_SSS] != null) {\n entries[_SSS] = input[_SSS];\n }\n if (input[_AASA] != null) {\n entries[_AASA] = input[_AASA];\n }\n return entries;\n}, \"se_CreateTransitGatewayMulticastDomainRequestOptions\");\nvar se_CreateTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_PTGI] != null) {\n entries[_PTGI] = input[_PTGI];\n }\n if (input[_PAI] != null) {\n entries[_PAI] = input[_PAI];\n }\n if (input[_PRee] != null) {\n entries[_PRee] = input[_PRee];\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayPeeringAttachmentRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayPeeringAttachmentRequest\");\nvar se_CreateTransitGatewayPeeringAttachmentRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRy] != null) {\n entries[_DRy] = input[_DRy];\n }\n return entries;\n}, \"se_CreateTransitGatewayPeeringAttachmentRequestOptions\");\nvar se_CreateTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayPolicyTableRequest\");\nvar se_CreateTransitGatewayPrefixListReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayPrefixListReferenceRequest\");\nvar se_CreateTransitGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Op] != null) {\n const memberEntries = se_TransitGatewayRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRequest\");\nvar se_CreateTransitGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRouteRequest\");\nvar se_CreateTransitGatewayRouteTableAnnouncementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PAIe] != null) {\n entries[_PAIe] = input[_PAIe];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRouteTableAnnouncementRequest\");\nvar se_CreateTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRouteTableRequest\");\nvar se_CreateTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayVpcAttachmentRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayVpcAttachmentRequest\");\nvar se_CreateTransitGatewayVpcAttachmentRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_ISp] != null) {\n entries[_ISp] = input[_ISp];\n }\n if (input[_AMS] != null) {\n entries[_AMS] = input[_AMS];\n }\n return entries;\n}, \"se_CreateTransitGatewayVpcAttachmentRequestOptions\");\nvar se_CreateVerifiedAccessEndpointCidrOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointCidrOptions\");\nvar se_CreateVerifiedAccessEndpointEniOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointEniOptions\");\nvar se_CreateVerifiedAccessEndpointLoadBalancerOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_LBAo] != null) {\n entries[_LBAo] = input[_LBAo];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PRo] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointLoadBalancerOptions\");\nvar se_CreateVerifiedAccessEndpointPortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointPortRange\");\nvar se_CreateVerifiedAccessEndpointPortRangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_CreateVerifiedAccessEndpointPortRange(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointPortRangeList\");\nvar se_CreateVerifiedAccessEndpointRdsOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_RDIA] != null) {\n entries[_RDIA] = input[_RDIA];\n }\n if (input[_RDCA] != null) {\n entries[_RDCA] = input[_RDCA];\n }\n if (input[_RDPA] != null) {\n entries[_RDPA] = input[_RDPA];\n }\n if (input[_RE] != null) {\n entries[_RE] = input[_RE];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointRdsOptions\");\nvar se_CreateVerifiedAccessEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_ET] != null) {\n entries[_ET] = input[_ET];\n }\n if (input[_ATt] != null) {\n entries[_ATt] = input[_ATt];\n }\n if (input[_DCA] != null) {\n entries[_DCA] = input[_DCA];\n }\n if (input[_ADp] != null) {\n entries[_ADp] = input[_ADp];\n }\n if (input[_EDP] != null) {\n entries[_EDP] = input[_EDP];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LBO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointLoadBalancerOptions(input[_LBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NIO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointEniOptions(input[_NIO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointRdsOptions(input[_RO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RdsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointCidrOptions(input[_CO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointRequest\");\nvar se_CreateVerifiedAccessEndpointSubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointSubnetIdList\");\nvar se_CreateVerifiedAccessGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessGroupRequest\");\nvar se_CreateVerifiedAccessInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FIPSE] != null) {\n entries[_FIPSE] = input[_FIPSE];\n }\n if (input[_CECSD] != null) {\n entries[_CECSD] = input[_CECSD];\n }\n return entries;\n}, \"se_CreateVerifiedAccessInstanceRequest\");\nvar se_CreateVerifiedAccessNativeApplicationOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSKE] != null) {\n entries[_PSKE] = input[_PSKE];\n }\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_CreateVerifiedAccessNativeApplicationOidcOptions\");\nvar se_CreateVerifiedAccessTrustProviderDeviceOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TIe] != null) {\n entries[_TIe] = input[_TIe];\n }\n if (input[_PSKU] != null) {\n entries[_PSKU] = input[_PSKU];\n }\n return entries;\n}, \"se_CreateVerifiedAccessTrustProviderDeviceOptions\");\nvar se_CreateVerifiedAccessTrustProviderOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_CreateVerifiedAccessTrustProviderOidcOptions\");\nvar se_CreateVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TPT] != null) {\n entries[_TPT] = input[_TPT];\n }\n if (input[_UTPT] != null) {\n entries[_UTPT] = input[_UTPT];\n }\n if (input[_DTPT] != null) {\n entries[_DTPT] = input[_DTPT];\n }\n if (input[_OO] != null) {\n const memberEntries = se_CreateVerifiedAccessTrustProviderOidcOptions(input[_OO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOe] != null) {\n const memberEntries = se_CreateVerifiedAccessTrustProviderDeviceOptions(input[_DOe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DeviceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PRN] != null) {\n entries[_PRN] = input[_PRN];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NAOO] != null) {\n const memberEntries = se_CreateVerifiedAccessNativeApplicationOidcOptions(input[_NAOO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NativeApplicationOidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessTrustProviderRequest\");\nvar se_CreateVolumePermission = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n if (input[_Gr] != null) {\n entries[_Gr] = input[_Gr];\n }\n return entries;\n}, \"se_CreateVolumePermission\");\nvar se_CreateVolumePermissionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_CreateVolumePermission(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_CreateVolumePermissionList\");\nvar se_CreateVolumePermissionModifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Add] != null) {\n const memberEntries = se_CreateVolumePermissionList(input[_Add], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Add.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Rem] != null) {\n const memberEntries = se_CreateVolumePermissionList(input[_Rem], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Remove.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVolumePermissionModifications\");\nvar se_CreateVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_Siz] != null) {\n entries[_Siz] = input[_Siz];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MAE] != null) {\n entries[_MAE] = input[_MAE];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateVolumeRequest\");\nvar se_CreateVpcBlockPublicAccessExclusionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_IGEM] != null) {\n entries[_IGEM] = input[_IGEM];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVpcBlockPublicAccessExclusionRequest\");\nvar se_CreateVpcEndpointConnectionNotificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_CNAon] != null) {\n entries[_CNAon] = input[_CNAon];\n }\n if (input[_CEo] != null) {\n const memberEntries = se_ValueStringList(input[_CEo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionEvents.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateVpcEndpointConnectionNotificationRequest\");\nvar se_CreateVpcEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VET] != null) {\n entries[_VET] = input[_VET];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_RTIo] != null) {\n const memberEntries = se_VpcEndpointRouteTableIdList(input[_RTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIu] != null) {\n const memberEntries = se_VpcEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGI] != null) {\n const memberEntries = se_VpcEndpointSecurityGroupIdList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_DOn] != null) {\n const memberEntries = se_DnsOptionsSpecification(input[_DOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_PDE] != null) {\n entries[_PDE] = input[_PDE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SC] != null) {\n const memberEntries = se_SubnetConfigurationsList(input[_SC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SNA] != null) {\n entries[_SNA] = input[_SNA];\n }\n if (input[_RCA] != null) {\n entries[_RCA] = input[_RCA];\n }\n if (input[_SRe] != null) {\n entries[_SRe] = input[_SRe];\n }\n return entries;\n}, \"se_CreateVpcEndpointRequest\");\nvar se_CreateVpcEndpointServiceConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ARc] != null) {\n entries[_ARc] = input[_ARc];\n }\n if (input[_PDN] != null) {\n entries[_PDN] = input[_PDN];\n }\n if (input[_NLBAe] != null) {\n const memberEntries = se_ValueStringList(input[_NLBAe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GLBA] != null) {\n const memberEntries = se_ValueStringList(input[_GLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GatewayLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIAT] != null) {\n const memberEntries = se_ValueStringList(input[_SIAT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SupportedIpAddressType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SRu] != null) {\n const memberEntries = se_ValueStringList(input[_SRu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SupportedRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVpcEndpointServiceConfigurationRequest\");\nvar se_CreateVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PRee] != null) {\n entries[_PRee] = input[_PRee];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_PVI] != null) {\n entries[_PVI] = input[_PVI];\n }\n if (input[_POI] != null) {\n entries[_POI] = input[_POI];\n }\n return entries;\n}, \"se_CreateVpcPeeringConnectionRequest\");\nvar se_CreateVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_IPpv] != null) {\n entries[_IPpv] = input[_IPpv];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_IIPIp] != null) {\n entries[_IIPIp] = input[_IIPIp];\n }\n if (input[_INLp] != null) {\n entries[_INLp] = input[_INLp];\n }\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_ICBNBG] != null) {\n entries[_ICBNBG] = input[_ICBNBG];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITns] != null) {\n entries[_ITns] = input[_ITns];\n }\n if (input[_APICB] != null) {\n entries[_APICB] = input[_APICB];\n }\n return entries;\n}, \"se_CreateVpcRequest\");\nvar se_CreateVpnConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIu] != null) {\n entries[_CGIu] = input[_CGIu];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Op] != null) {\n const memberEntries = se_VpnConnectionOptionsSpecification(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVpnConnectionRequest\");\nvar se_CreateVpnConnectionRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n return entries;\n}, \"se_CreateVpnConnectionRouteRequest\");\nvar se_CreateVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateVpnGatewayRequest\");\nvar se_CreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CCp] != null) {\n entries[_CCp] = input[_CCp];\n }\n return entries;\n}, \"se_CreditSpecificationRequest\");\nvar se_CustomerGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`CustomerGatewayId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CustomerGatewayIdStringList\");\nvar se_DataQueries = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_DataQuery(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_DataQueries\");\nvar se_DataQuery = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Id] != null) {\n entries[_Id] = input[_Id];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_Met] != null) {\n entries[_Met] = input[_Met];\n }\n if (input[_Sta] != null) {\n entries[_Sta] = input[_Sta];\n }\n if (input[_Per] != null) {\n entries[_Per] = input[_Per];\n }\n return entries;\n}, \"se_DataQuery\");\nvar se_DedicatedHostIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DedicatedHostIdList\");\nvar se_DeleteCarrierGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGI] != null) {\n entries[_CGI] = input[_CGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCarrierGatewayRequest\");\nvar se_DeleteClientVpnEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteClientVpnEndpointRequest\");\nvar se_DeleteClientVpnRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_TVSI] != null) {\n entries[_TVSI] = input[_TVSI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteClientVpnRouteRequest\");\nvar se_DeleteCoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CPIo] != null) {\n entries[_CPIo] = input[_CPIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCoipCidrRequest\");\nvar se_DeleteCoipPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CPIo] != null) {\n entries[_CPIo] = input[_CPIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCoipPoolRequest\");\nvar se_DeleteCustomerGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIu] != null) {\n entries[_CGIu] = input[_CGIu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCustomerGatewayRequest\");\nvar se_DeleteDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOI] != null) {\n entries[_DOI] = input[_DOI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteDhcpOptionsRequest\");\nvar se_DeleteEgressOnlyInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EOIGI] != null) {\n entries[_EOIGI] = input[_EOIGI];\n }\n return entries;\n}, \"se_DeleteEgressOnlyInternetGatewayRequest\");\nvar se_DeleteFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FI] != null) {\n const memberEntries = se_FleetIdSet(input[_FI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TI] != null) {\n entries[_TI] = input[_TI];\n }\n return entries;\n}, \"se_DeleteFleetsRequest\");\nvar se_DeleteFlowLogsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FLI] != null) {\n const memberEntries = se_FlowLogIdList(input[_FLI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FlowLogId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteFlowLogsRequest\");\nvar se_DeleteFpgaImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n return entries;\n}, \"se_DeleteFpgaImageRequest\");\nvar se_DeleteInstanceConnectEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ICEI] != null) {\n entries[_ICEI] = input[_ICEI];\n }\n return entries;\n}, \"se_DeleteInstanceConnectEndpointRequest\");\nvar se_DeleteInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FD] != null) {\n entries[_FD] = input[_FD];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n return entries;\n}, \"se_DeleteInstanceEventWindowRequest\");\nvar se_DeleteInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGI] != null) {\n entries[_IGI] = input[_IGI];\n }\n return entries;\n}, \"se_DeleteInternetGatewayRequest\");\nvar se_DeleteIpamExternalResourceVerificationTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IERVTI] != null) {\n entries[_IERVTI] = input[_IERVTI];\n }\n return entries;\n}, \"se_DeleteIpamExternalResourceVerificationTokenRequest\");\nvar se_DeleteIpamPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_Ca] != null) {\n entries[_Ca] = input[_Ca];\n }\n return entries;\n}, \"se_DeleteIpamPoolRequest\");\nvar se_DeleteIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_Ca] != null) {\n entries[_Ca] = input[_Ca];\n }\n return entries;\n}, \"se_DeleteIpamRequest\");\nvar se_DeleteIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n return entries;\n}, \"se_DeleteIpamResourceDiscoveryRequest\");\nvar se_DeleteIpamScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n return entries;\n}, \"se_DeleteIpamScopeRequest\");\nvar se_DeleteKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_KPI] != null) {\n entries[_KPI] = input[_KPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteKeyPairRequest\");\nvar se_DeleteLaunchTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n return entries;\n}, \"se_DeleteLaunchTemplateRequest\");\nvar se_DeleteLaunchTemplateVersionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_Ve] != null) {\n const memberEntries = se_VersionStringList(input[_Ve], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteLaunchTemplateVersionsRequest\");\nvar se_DeleteLocalGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteRequest\");\nvar se_DeleteLocalGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteTableRequest\");\nvar se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVIGAI] != null) {\n entries[_LGRTVIGAI] = input[_LGRTVIGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest\");\nvar se_DeleteLocalGatewayRouteTableVpcAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVAI] != null) {\n entries[_LGRTVAI] = input[_LGRTVAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteTableVpcAssociationRequest\");\nvar se_DeleteLocalGatewayVirtualInterfaceGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayVirtualInterfaceGroupRequest\");\nvar se_DeleteLocalGatewayVirtualInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVII] != null) {\n entries[_LGVII] = input[_LGVII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayVirtualInterfaceRequest\");\nvar se_DeleteManagedPrefixListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n return entries;\n}, \"se_DeleteManagedPrefixListRequest\");\nvar se_DeleteNatGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n return entries;\n}, \"se_DeleteNatGatewayRequest\");\nvar se_DeleteNetworkAclEntryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_Eg] != null) {\n entries[_Eg] = input[_Eg];\n }\n return entries;\n}, \"se_DeleteNetworkAclEntryRequest\");\nvar se_DeleteNetworkAclRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n return entries;\n}, \"se_DeleteNetworkAclRequest\");\nvar se_DeleteNetworkInsightsAccessScopeAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASAI] != null) {\n entries[_NIASAI] = input[_NIASAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsAccessScopeAnalysisRequest\");\nvar se_DeleteNetworkInsightsAccessScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsAccessScopeRequest\");\nvar se_DeleteNetworkInsightsAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIAI] != null) {\n entries[_NIAI] = input[_NIAI];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsAnalysisRequest\");\nvar se_DeleteNetworkInsightsPathRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIPI] != null) {\n entries[_NIPI] = input[_NIPI];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsPathRequest\");\nvar se_DeleteNetworkInterfacePermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPIe] != null) {\n entries[_NIPIe] = input[_NIPIe];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteNetworkInterfacePermissionRequest\");\nvar se_DeleteNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n return entries;\n}, \"se_DeleteNetworkInterfaceRequest\");\nvar se_DeletePlacementGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_DeletePlacementGroupRequest\");\nvar se_DeletePublicIpv4PoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_DeletePublicIpv4PoolRequest\");\nvar se_DeleteQueuedReservedInstancesIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DeleteQueuedReservedInstancesIdList\");\nvar se_DeleteQueuedReservedInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIIes] != null) {\n const memberEntries = se_DeleteQueuedReservedInstancesIdList(input[_RIIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteQueuedReservedInstancesRequest\");\nvar se_DeleteRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_DICB] != null) {\n entries[_DICB] = input[_DICB];\n }\n return entries;\n}, \"se_DeleteRouteRequest\");\nvar se_DeleteRouteServerEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSEI] != null) {\n entries[_RSEI] = input[_RSEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteRouteServerEndpointRequest\");\nvar se_DeleteRouteServerPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSPI] != null) {\n entries[_RSPI] = input[_RSPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteRouteServerPeerRequest\");\nvar se_DeleteRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteRouteServerRequest\");\nvar se_DeleteRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n return entries;\n}, \"se_DeleteRouteTableRequest\");\nvar se_DeleteSecurityGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSecurityGroupRequest\");\nvar se_DeleteSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSnapshotRequest\");\nvar se_DeleteSpotDatafeedSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSpotDatafeedSubscriptionRequest\");\nvar se_DeleteSubnetCidrReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCRIu] != null) {\n entries[_SCRIu] = input[_SCRIu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSubnetCidrReservationRequest\");\nvar se_DeleteSubnetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSubnetRequest\");\nvar se_DeleteTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Re] != null) {\n const memberEntries = se_ResourceIdList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteTagsRequest\");\nvar se_DeleteTrafficMirrorFilterRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorFilterRequest\");\nvar se_DeleteTrafficMirrorFilterRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFRI] != null) {\n entries[_TMFRI] = input[_TMFRI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorFilterRuleRequest\");\nvar se_DeleteTrafficMirrorSessionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMSI] != null) {\n entries[_TMSI] = input[_TMSI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorSessionRequest\");\nvar se_DeleteTrafficMirrorTargetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMTI] != null) {\n entries[_TMTI] = input[_TMTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorTargetRequest\");\nvar se_DeleteTransitGatewayConnectPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGCPI] != null) {\n entries[_TGCPI] = input[_TGCPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayConnectPeerRequest\");\nvar se_DeleteTransitGatewayConnectRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayConnectRequest\");\nvar se_DeleteTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayMulticastDomainRequest\");\nvar se_DeleteTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayPeeringAttachmentRequest\");\nvar se_DeleteTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayPolicyTableRequest\");\nvar se_DeleteTransitGatewayPrefixListReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayPrefixListReferenceRequest\");\nvar se_DeleteTransitGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRequest\");\nvar se_DeleteTransitGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRouteRequest\");\nvar se_DeleteTransitGatewayRouteTableAnnouncementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTAI] != null) {\n entries[_TGRTAI] = input[_TGRTAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRouteTableAnnouncementRequest\");\nvar se_DeleteTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRouteTableRequest\");\nvar se_DeleteTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayVpcAttachmentRequest\");\nvar se_DeleteVerifiedAccessEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessEndpointRequest\");\nvar se_DeleteVerifiedAccessGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessGroupRequest\");\nvar se_DeleteVerifiedAccessInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessInstanceRequest\");\nvar se_DeleteVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessTrustProviderRequest\");\nvar se_DeleteVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVolumeRequest\");\nvar se_DeleteVpcBlockPublicAccessExclusionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EIxc] != null) {\n entries[_EIxc] = input[_EIxc];\n }\n return entries;\n}, \"se_DeleteVpcBlockPublicAccessExclusionRequest\");\nvar se_DeleteVpcEndpointConnectionNotificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CNIo] != null) {\n const memberEntries = se_ConnectionNotificationIdsList(input[_CNIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionNotificationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteVpcEndpointConnectionNotificationsRequest\");\nvar se_DeleteVpcEndpointServiceConfigurationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIer] != null) {\n const memberEntries = se_VpcEndpointServiceIdList(input[_SIer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteVpcEndpointServiceConfigurationsRequest\");\nvar se_DeleteVpcEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteVpcEndpointsRequest\");\nvar se_DeleteVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_DeleteVpcPeeringConnectionRequest\");\nvar se_DeleteVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVpcRequest\");\nvar se_DeleteVpnConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVpnConnectionRequest\");\nvar se_DeleteVpnConnectionRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n return entries;\n}, \"se_DeleteVpnConnectionRouteRequest\");\nvar se_DeleteVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVpnGatewayRequest\");\nvar se_DeprovisionByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeprovisionByoipCidrRequest\");\nvar se_DeprovisionIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n return entries;\n}, \"se_DeprovisionIpamByoasnRequest\");\nvar se_DeprovisionIpamPoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_DeprovisionIpamPoolCidrRequest\");\nvar se_DeprovisionPublicIpv4PoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_DeprovisionPublicIpv4PoolCidrRequest\");\nvar se_DeregisterImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeregisterImageRequest\");\nvar se_DeregisterInstanceEventNotificationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITA] != null) {\n const memberEntries = se_DeregisterInstanceTagAttributeRequest(input[_ITA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagAttribute.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeregisterInstanceEventNotificationAttributesRequest\");\nvar se_DeregisterInstanceTagAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IATOI] != null) {\n entries[_IATOI] = input[_IATOI];\n }\n if (input[_ITK] != null) {\n const memberEntries = se_InstanceTagKeySet(input[_ITK], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagKey.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeregisterInstanceTagAttributeRequest\");\nvar se_DeregisterTransitGatewayMulticastGroupMembersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeregisterTransitGatewayMulticastGroupMembersRequest\");\nvar se_DeregisterTransitGatewayMulticastGroupSourcesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeregisterTransitGatewayMulticastGroupSourcesRequest\");\nvar se_DescribeAccountAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AN] != null) {\n const memberEntries = se_AccountAttributeNameStringList(input[_AN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AttributeName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeAccountAttributesRequest\");\nvar se_DescribeAddressesAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIds(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAddressesAttributeRequest\");\nvar se_DescribeAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIu] != null) {\n const memberEntries = se_PublicIpStringList(input[_PIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PublicIp.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIdList(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeAddressesRequest\");\nvar se_DescribeAddressTransfersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIdList(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAddressTransfersRequest\");\nvar se_DescribeAggregateIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAggregateIdFormatRequest\");\nvar se_DescribeAvailabilityZonesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ZN] != null) {\n const memberEntries = se_ZoneNameStringList(input[_ZN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ZoneName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ZI] != null) {\n const memberEntries = se_ZoneIdStringList(input[_ZI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ZoneId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AAZ] != null) {\n entries[_AAZ] = input[_AAZ];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeAvailabilityZonesRequest\");\nvar se_DescribeAwsNetworkPerformanceMetricSubscriptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAwsNetworkPerformanceMetricSubscriptionsRequest\");\nvar se_DescribeBundleTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BIun] != null) {\n const memberEntries = se_BundleIdStringList(input[_BIun], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BundleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeBundleTasksRequest\");\nvar se_DescribeByoipCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeByoipCidrsRequest\");\nvar se_DescribeCapacityBlockExtensionHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRIa] != null) {\n const memberEntries = se_CapacityReservationIdSet(input[_CRIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityBlockExtensionHistoryRequest\");\nvar se_DescribeCapacityBlockExtensionOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CBEDH] != null) {\n entries[_CBEDH] = input[_CBEDH];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeCapacityBlockExtensionOfferingsRequest\");\nvar se_DescribeCapacityBlockOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_SDR] != null) {\n entries[_SDR] = (0, import_smithy_client.serializeDateTime)(input[_SDR]);\n }\n if (input[_EDR] != null) {\n entries[_EDR] = (0, import_smithy_client.serializeDateTime)(input[_EDR]);\n }\n if (input[_CDH] != null) {\n entries[_CDH] = input[_CDH];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeCapacityBlockOfferingsRequest\");\nvar se_DescribeCapacityReservationBillingRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRIa] != null) {\n const memberEntries = se_CapacityReservationIdSet(input[_CRIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ro] != null) {\n entries[_Ro] = input[_Ro];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityReservationBillingRequestsRequest\");\nvar se_DescribeCapacityReservationFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRFI] != null) {\n const memberEntries = se_CapacityReservationFleetIdSet(input[_CRFI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationFleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityReservationFleetsRequest\");\nvar se_DescribeCapacityReservationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRIa] != null) {\n const memberEntries = se_CapacityReservationIdSet(input[_CRIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityReservationsRequest\");\nvar se_DescribeCarrierGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIa] != null) {\n const memberEntries = se_CarrierGatewayIdSet(input[_CGIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CarrierGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCarrierGatewaysRequest\");\nvar se_DescribeClassicLinkInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeClassicLinkInstancesRequest\");\nvar se_DescribeClientVpnAuthorizationRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeClientVpnAuthorizationRulesRequest\");\nvar se_DescribeClientVpnConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnConnectionsRequest\");\nvar se_DescribeClientVpnEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEIl] != null) {\n const memberEntries = se_ClientVpnEndpointIdList(input[_CVEIl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientVpnEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnEndpointsRequest\");\nvar se_DescribeClientVpnRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnRoutesRequest\");\nvar se_DescribeClientVpnTargetNetworksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_AIs] != null) {\n const memberEntries = se_ValueStringList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnTargetNetworksRequest\");\nvar se_DescribeCoipPoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIoo] != null) {\n const memberEntries = se_CoipPoolIdSet(input[_PIoo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCoipPoolsRequest\");\nvar se_DescribeConversionTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTIo] != null) {\n const memberEntries = se_ConversionIdStringList(input[_CTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConversionTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeConversionTasksRequest\");\nvar se_DescribeCustomerGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIus] != null) {\n const memberEntries = se_CustomerGatewayIdStringList(input[_CGIus], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CustomerGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCustomerGatewaysRequest\");\nvar se_DescribeDeclarativePoliciesReportsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_RIepo] != null) {\n const memberEntries = se_ValueStringList(input[_RIepo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReportId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeDeclarativePoliciesReportsRequest\");\nvar se_DescribeDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOIh] != null) {\n const memberEntries = se_DhcpOptionsIdStringList(input[_DOIh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DhcpOptionsId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeDhcpOptionsRequest\");\nvar se_DescribeEgressOnlyInternetGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EOIGIg] != null) {\n const memberEntries = se_EgressOnlyInternetGatewayIdList(input[_EOIGIg], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EgressOnlyInternetGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeEgressOnlyInternetGatewaysRequest\");\nvar se_DescribeElasticGpusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EGI] != null) {\n const memberEntries = se_ElasticGpuIdSet(input[_EGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticGpuId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeElasticGpusRequest\");\nvar se_DescribeExportImageTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EITI] != null) {\n const memberEntries = se_ExportImageTaskIdList(input[_EITI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExportImageTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeExportImageTasksRequest\");\nvar se_DescribeExportTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ETIx] != null) {\n const memberEntries = se_ExportTaskIdStringList(input[_ETIx], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExportTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeExportTasksRequest\");\nvar se_DescribeFastLaunchImagesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IImag] != null) {\n const memberEntries = se_FastLaunchImageIdList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeFastLaunchImagesRequest\");\nvar se_DescribeFastSnapshotRestoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeFastSnapshotRestoresRequest\");\nvar se_DescribeFleetHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ETv] != null) {\n entries[_ETv] = input[_ETv];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_FIl] != null) {\n entries[_FIl] = input[_FIl];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n return entries;\n}, \"se_DescribeFleetHistoryRequest\");\nvar se_DescribeFleetInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_FIl] != null) {\n entries[_FIl] = input[_FIl];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeFleetInstancesRequest\");\nvar se_DescribeFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_FI] != null) {\n const memberEntries = se_FleetIdSet(input[_FI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeFleetsRequest\");\nvar se_DescribeFlowLogsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FLI] != null) {\n const memberEntries = se_FlowLogIdList(input[_FLI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FlowLogId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeFlowLogsRequest\");\nvar se_DescribeFpgaImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_DescribeFpgaImageAttributeRequest\");\nvar se_DescribeFpgaImagesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FIIp] != null) {\n const memberEntries = se_FpgaImageIdList(input[_FIIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FpgaImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ow] != null) {\n const memberEntries = se_OwnerStringList(input[_Ow], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Owner.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeFpgaImagesRequest\");\nvar se_DescribeHostReservationOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MD] != null) {\n entries[_MD] = input[_MD];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_MDi] != null) {\n entries[_MDi] = input[_MDi];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n return entries;\n}, \"se_DescribeHostReservationOfferingsRequest\");\nvar se_DescribeHostReservationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HRIS] != null) {\n const memberEntries = se_HostReservationIdSet(input[_HRIS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostReservationIdSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeHostReservationsRequest\");\nvar se_DescribeHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeHostsRequest\");\nvar se_DescribeIamInstanceProfileAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIs] != null) {\n const memberEntries = se_AssociationIdList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeIamInstanceProfileAssociationsRequest\");\nvar se_DescribeIdentityIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n return entries;\n}, \"se_DescribeIdentityIdFormatRequest\");\nvar se_DescribeIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n return entries;\n}, \"se_DescribeIdFormatRequest\");\nvar se_DescribeImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeImageAttributeRequest\");\nvar se_DescribeImagesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EU] != null) {\n const memberEntries = se_ExecutableByStringList(input[_EU], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExecutableBy.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IImag] != null) {\n const memberEntries = se_ImageIdStringList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ow] != null) {\n const memberEntries = se_OwnerStringList(input[_Ow], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Owner.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ID] != null) {\n entries[_ID] = input[_ID];\n }\n if (input[_IDn] != null) {\n entries[_IDn] = input[_IDn];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeImagesRequest\");\nvar se_DescribeImportImageTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filters.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITIm] != null) {\n const memberEntries = se_ImportTaskIdList(input[_ITIm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImportTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeImportImageTasksRequest\");\nvar se_DescribeImportSnapshotTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filters.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITIm] != null) {\n const memberEntries = se_ImportSnapshotTaskIdList(input[_ITIm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImportTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeImportSnapshotTasksRequest\");\nvar se_DescribeInstanceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_DescribeInstanceAttributeRequest\");\nvar se_DescribeInstanceConnectEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ICEIn] != null) {\n const memberEntries = se_ValueStringList(input[_ICEIn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceConnectEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeInstanceConnectEndpointsRequest\");\nvar se_DescribeInstanceCreditSpecificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceCreditSpecificationsRequest\");\nvar se_DescribeInstanceEventNotificationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeInstanceEventNotificationAttributesRequest\");\nvar se_DescribeInstanceEventWindowsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IEWIn] != null) {\n const memberEntries = se_InstanceEventWindowIdSet(input[_IEWIn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceEventWindowId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceEventWindowsRequest\");\nvar se_DescribeInstanceImageMetadataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeInstanceImageMetadataRequest\");\nvar se_DescribeInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeInstancesRequest\");\nvar se_DescribeInstanceStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAI] != null) {\n entries[_IAI] = input[_IAI];\n }\n return entries;\n}, \"se_DescribeInstanceStatusRequest\");\nvar se_DescribeInstanceTopologyGroupNameSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DescribeInstanceTopologyGroupNameSet\");\nvar se_DescribeInstanceTopologyInstanceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DescribeInstanceTopologyInstanceIdSet\");\nvar se_DescribeInstanceTopologyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_IIns] != null) {\n const memberEntries = se_DescribeInstanceTopologyInstanceIdSet(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GNr] != null) {\n const memberEntries = se_DescribeInstanceTopologyGroupNameSet(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeInstanceTopologyRequest\");\nvar se_DescribeInstanceTypeOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LT] != null) {\n entries[_LT] = input[_LT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceTypeOfferingsRequest\");\nvar se_DescribeInstanceTypesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITnst] != null) {\n const memberEntries = se_RequestInstanceTypeList(input[_ITnst], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceTypesRequest\");\nvar se_DescribeInternetGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGIn] != null) {\n const memberEntries = se_InternetGatewayIdList(input[_IGIn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InternetGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeInternetGatewaysRequest\");\nvar se_DescribeIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeIpamByoasnRequest\");\nvar se_DescribeIpamExternalResourceVerificationTokensRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_IERVTIp] != null) {\n const memberEntries = se_ValueStringList(input[_IERVTIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamExternalResourceVerificationTokenId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamExternalResourceVerificationTokensRequest\");\nvar se_DescribeIpamPoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_IPIp] != null) {\n const memberEntries = se_ValueStringList(input[_IPIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamPoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamPoolsRequest\");\nvar se_DescribeIpamResourceDiscoveriesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDIp] != null) {\n const memberEntries = se_ValueStringList(input[_IRDIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamResourceDiscoveryId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamResourceDiscoveriesRequest\");\nvar se_DescribeIpamResourceDiscoveryAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDAI] != null) {\n const memberEntries = se_ValueStringList(input[_IRDAI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamResourceDiscoveryAssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamResourceDiscoveryAssociationsRequest\");\nvar se_DescribeIpamScopesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_ISIp] != null) {\n const memberEntries = se_ValueStringList(input[_ISIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamScopeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamScopesRequest\");\nvar se_DescribeIpamsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_IIpa] != null) {\n const memberEntries = se_ValueStringList(input[_IIpa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamsRequest\");\nvar se_DescribeIpv6PoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIoo] != null) {\n const memberEntries = se_Ipv6PoolIdList(input[_PIoo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpv6PoolsRequest\");\nvar se_DescribeKeyPairsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KNe] != null) {\n const memberEntries = se_KeyNameStringList(input[_KNe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `KeyName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_KPIe] != null) {\n const memberEntries = se_KeyPairIdStringList(input[_KPIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `KeyPairId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPK] != null) {\n entries[_IPK] = input[_IPK];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeKeyPairsRequest\");\nvar se_DescribeLaunchTemplatesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTIa] != null) {\n const memberEntries = se_LaunchTemplateIdStringList(input[_LTIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LTNa] != null) {\n const memberEntries = se_LaunchTemplateNameStringList(input[_LTNa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeLaunchTemplatesRequest\");\nvar se_DescribeLaunchTemplateVersionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_Ve] != null) {\n const memberEntries = se_VersionStringList(input[_Ve], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MVi] != null) {\n entries[_MVi] = input[_MVi];\n }\n if (input[_MVa] != null) {\n entries[_MVa] = input[_MVa];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_DescribeLaunchTemplateVersionsRequest\");\nvar se_DescribeLocalGatewayRouteTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTIo] != null) {\n const memberEntries = se_LocalGatewayRouteTableIdSet(input[_LGRTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayRouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayRouteTablesRequest\");\nvar se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVIGAIo] != null) {\n const memberEntries = se_LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet(input[_LGRTVIGAIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayRouteTableVirtualInterfaceGroupAssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest\");\nvar se_DescribeLocalGatewayRouteTableVpcAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVAIo] != null) {\n const memberEntries = se_LocalGatewayRouteTableVpcAssociationIdSet(input[_LGRTVAIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayRouteTableVpcAssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayRouteTableVpcAssociationsRequest\");\nvar se_DescribeLocalGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGIo] != null) {\n const memberEntries = se_LocalGatewayIdSet(input[_LGIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewaysRequest\");\nvar se_DescribeLocalGatewayVirtualInterfaceGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIGIo] != null) {\n const memberEntries = se_LocalGatewayVirtualInterfaceGroupIdSet(input[_LGVIGIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayVirtualInterfaceGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayVirtualInterfaceGroupsRequest\");\nvar se_DescribeLocalGatewayVirtualInterfacesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIIo] != null) {\n const memberEntries = se_LocalGatewayVirtualInterfaceIdSet(input[_LGVIIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayVirtualInterfaceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayVirtualInterfacesRequest\");\nvar se_DescribeLockedSnapshotsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SIna] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SIna], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLockedSnapshotsRequest\");\nvar se_DescribeMacHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeMacHostsRequest\");\nvar se_DescribeManagedPrefixListsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_PLIr] != null) {\n const memberEntries = se_ValueStringList(input[_PLIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrefixListId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeManagedPrefixListsRequest\");\nvar se_DescribeMovingAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PIu] != null) {\n const memberEntries = se_ValueStringList(input[_PIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PublicIp.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeMovingAddressesRequest\");\nvar se_DescribeNatGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NGIa] != null) {\n const memberEntries = se_NatGatewayIdStringList(input[_NGIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NatGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNatGatewaysRequest\");\nvar se_DescribeNetworkAclsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAIe] != null) {\n const memberEntries = se_NetworkAclIdStringList(input[_NAIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkAclId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeNetworkAclsRequest\");\nvar se_DescribeNetworkInsightsAccessScopeAnalysesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASAIe] != null) {\n const memberEntries = se_NetworkInsightsAccessScopeAnalysisIdList(input[_NIASAIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsAccessScopeAnalysisId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n if (input[_ASTB] != null) {\n entries[_ASTB] = (0, import_smithy_client.serializeDateTime)(input[_ASTB]);\n }\n if (input[_ASTE] != null) {\n entries[_ASTE] = (0, import_smithy_client.serializeDateTime)(input[_ASTE]);\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsAccessScopeAnalysesRequest\");\nvar se_DescribeNetworkInsightsAccessScopesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASIe] != null) {\n const memberEntries = se_NetworkInsightsAccessScopeIdList(input[_NIASIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsAccessScopeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsAccessScopesRequest\");\nvar se_DescribeNetworkInsightsAnalysesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIAIe] != null) {\n const memberEntries = se_NetworkInsightsAnalysisIdList(input[_NIAIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsAnalysisId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NIPI] != null) {\n entries[_NIPI] = input[_NIPI];\n }\n if (input[_AST] != null) {\n entries[_AST] = (0, import_smithy_client.serializeDateTime)(input[_AST]);\n }\n if (input[_AET] != null) {\n entries[_AET] = (0, import_smithy_client.serializeDateTime)(input[_AET]);\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsAnalysesRequest\");\nvar se_DescribeNetworkInsightsPathsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPIet] != null) {\n const memberEntries = se_NetworkInsightsPathIdList(input[_NIPIet], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsPathId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsPathsRequest\");\nvar se_DescribeNetworkInterfaceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_DescribeNetworkInterfaceAttributeRequest\");\nvar se_DescribeNetworkInterfacePermissionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPIetw] != null) {\n const memberEntries = se_NetworkInterfacePermissionIdList(input[_NIPIetw], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfacePermissionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeNetworkInterfacePermissionsRequest\");\nvar se_DescribeNetworkInterfacesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_NetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeNetworkInterfacesRequest\");\nvar se_DescribeOutpostLagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OLIu] != null) {\n const memberEntries = se_OutpostLagIdSet(input[_OLIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OutpostLagId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeOutpostLagsRequest\");\nvar se_DescribePlacementGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIro] != null) {\n const memberEntries = se_PlacementGroupIdStringList(input[_GIro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GNr] != null) {\n const memberEntries = se_PlacementGroupStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribePlacementGroupsRequest\");\nvar se_DescribePrefixListsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_PLIr] != null) {\n const memberEntries = se_PrefixListResourceIdStringList(input[_PLIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrefixListId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribePrefixListsRequest\");\nvar se_DescribePrincipalIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Re] != null) {\n const memberEntries = se_ResourceList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Resource.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribePrincipalIdFormatRequest\");\nvar se_DescribePublicIpv4PoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIoo] != null) {\n const memberEntries = se_PublicIpv4PoolIdStringList(input[_PIoo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribePublicIpv4PoolsRequest\");\nvar se_DescribeRegionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RNe] != null) {\n const memberEntries = se_RegionNameStringList(input[_RNe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RegionName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ARll] != null) {\n entries[_ARll] = input[_ARll];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeRegionsRequest\");\nvar se_DescribeReplaceRootVolumeTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RRVTI] != null) {\n const memberEntries = se_ReplaceRootVolumeTaskIds(input[_RRVTI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReplaceRootVolumeTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeReplaceRootVolumeTasksRequest\");\nvar se_DescribeReservedInstancesListingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIIe] != null) {\n entries[_RIIe] = input[_RIIe];\n }\n if (input[_RILI] != null) {\n entries[_RILI] = input[_RILI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeReservedInstancesListingsRequest\");\nvar se_DescribeReservedInstancesModificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIMI] != null) {\n const memberEntries = se_ReservedInstancesModificationIdStringList(input[_RIMI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesModificationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeReservedInstancesModificationsRequest\");\nvar se_DescribeReservedInstancesOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_IM] != null) {\n entries[_IM] = input[_IM];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_MD] != null) {\n entries[_MD] = input[_MD];\n }\n if (input[_MIC] != null) {\n entries[_MIC] = input[_MIC];\n }\n if (input[_MDi] != null) {\n entries[_MDi] = input[_MDi];\n }\n if (input[_OC] != null) {\n entries[_OC] = input[_OC];\n }\n if (input[_PDr] != null) {\n entries[_PDr] = input[_PDr];\n }\n if (input[_RIOI] != null) {\n const memberEntries = se_ReservedInstancesOfferingIdStringList(input[_RIOI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesOfferingId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITns] != null) {\n entries[_ITns] = input[_ITns];\n }\n if (input[_OT] != null) {\n entries[_OT] = input[_OT];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeReservedInstancesOfferingsRequest\");\nvar se_DescribeReservedInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OC] != null) {\n entries[_OC] = input[_OC];\n }\n if (input[_RIIes] != null) {\n const memberEntries = se_ReservedInstancesIdStringList(input[_RIIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OT] != null) {\n entries[_OT] = input[_OT];\n }\n return entries;\n}, \"se_DescribeReservedInstancesRequest\");\nvar se_DescribeRouteServerEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSEIo] != null) {\n const memberEntries = se_RouteServerEndpointIdsList(input[_RSEIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteServerEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeRouteServerEndpointsRequest\");\nvar se_DescribeRouteServerPeersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSPIo] != null) {\n const memberEntries = se_RouteServerPeerIdsList(input[_RSPIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteServerPeerId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeRouteServerPeersRequest\");\nvar se_DescribeRouteServersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIou] != null) {\n const memberEntries = se_RouteServerIdsList(input[_RSIou], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteServerId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeRouteServersRequest\");\nvar se_DescribeRouteTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTIo] != null) {\n const memberEntries = se_RouteTableIdStringList(input[_RTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeRouteTablesRequest\");\nvar se_DescribeScheduledInstanceAvailabilityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FSSTR] != null) {\n const memberEntries = se_SlotDateTimeRangeRequest(input[_FSSTR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FirstSlotStartTimeRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_MSDIH] != null) {\n entries[_MSDIH] = input[_MSDIH];\n }\n if (input[_MSDIHi] != null) {\n entries[_MSDIHi] = input[_MSDIHi];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Rec] != null) {\n const memberEntries = se_ScheduledInstanceRecurrenceRequest(input[_Rec], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Recurrence.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeScheduledInstanceAvailabilityRequest\");\nvar se_DescribeScheduledInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SIIc] != null) {\n const memberEntries = se_ScheduledInstanceIdRequestSet(input[_SIIc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ScheduledInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SSTR] != null) {\n const memberEntries = se_SlotStartTimeRangeRequest(input[_SSTR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SlotStartTimeRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeScheduledInstancesRequest\");\nvar se_DescribeSecurityGroupReferencesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n const memberEntries = se_GroupIds(input[_GIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSecurityGroupReferencesRequest\");\nvar se_DescribeSecurityGroupRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGRI] != null) {\n const memberEntries = se_SecurityGroupRuleIdList(input[_SGRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSecurityGroupRulesRequest\");\nvar se_DescribeSecurityGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIro] != null) {\n const memberEntries = se_GroupIdStringList(input[_GIro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GNr] != null) {\n const memberEntries = se_GroupNameStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSecurityGroupsRequest\");\nvar se_DescribeSecurityGroupVpcAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSecurityGroupVpcAssociationsRequest\");\nvar se_DescribeServiceLinkVirtualInterfacesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SLVII] != null) {\n const memberEntries = se_ServiceLinkVirtualInterfaceIdSet(input[_SLVII], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceLinkVirtualInterfaceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeServiceLinkVirtualInterfacesRequest\");\nvar se_DescribeSnapshotAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSnapshotAttributeRequest\");\nvar se_DescribeSnapshotsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_OIw] != null) {\n const memberEntries = se_OwnerStringList(input[_OIw], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Owner.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RBUI] != null) {\n const memberEntries = se_RestorableByStringList(input[_RBUI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RestorableBy.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIna] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SIna], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSnapshotsRequest\");\nvar se_DescribeSnapshotTierStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSnapshotTierStatusRequest\");\nvar se_DescribeSpotDatafeedSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSpotDatafeedSubscriptionRequest\");\nvar se_DescribeSpotFleetInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRIp] != null) {\n entries[_SFRIp] = input[_SFRIp];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSpotFleetInstancesRequest\");\nvar se_DescribeSpotFleetRequestHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRIp] != null) {\n entries[_SFRIp] = input[_SFRIp];\n }\n if (input[_ETv] != null) {\n entries[_ETv] = input[_ETv];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSpotFleetRequestHistoryRequest\");\nvar se_DescribeSpotFleetRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRI] != null) {\n const memberEntries = se_SpotFleetRequestIdList(input[_SFRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotFleetRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSpotFleetRequestsRequest\");\nvar se_DescribeSpotInstanceRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIRI] != null) {\n const memberEntries = se_SpotInstanceRequestIdList(input[_SIRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotInstanceRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSpotInstanceRequestsRequest\");\nvar se_DescribeSpotPriceHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_ITnst] != null) {\n const memberEntries = se_InstanceTypeList(input[_ITnst], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDro] != null) {\n const memberEntries = se_ProductDescriptionList(input[_PDro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProductDescription.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeSpotPriceHistoryRequest\");\nvar se_DescribeStaleSecurityGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DescribeStaleSecurityGroupsRequest\");\nvar se_DescribeStoreImageTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IImag] != null) {\n const memberEntries = se_ImageIdList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeStoreImageTasksRequest\");\nvar se_DescribeSubnetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIu] != null) {\n const memberEntries = se_SubnetIdStringList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSubnetsRequest\");\nvar se_DescribeTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTagsRequest\");\nvar se_DescribeTrafficMirrorFilterRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFRIr] != null) {\n const memberEntries = se_TrafficMirrorFilterRuleIdList(input[_TMFRIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorFilterRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorFilterRulesRequest\");\nvar se_DescribeTrafficMirrorFiltersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFIr] != null) {\n const memberEntries = se_TrafficMirrorFilterIdList(input[_TMFIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorFilterId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorFiltersRequest\");\nvar se_DescribeTrafficMirrorSessionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMSIr] != null) {\n const memberEntries = se_TrafficMirrorSessionIdList(input[_TMSIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorSessionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorSessionsRequest\");\nvar se_DescribeTrafficMirrorTargetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMTIr] != null) {\n const memberEntries = se_TrafficMirrorTargetIdList(input[_TMTIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorTargetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorTargetsRequest\");\nvar se_DescribeTransitGatewayAttachmentsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayAttachmentsRequest\");\nvar se_DescribeTransitGatewayConnectPeersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGCPIr] != null) {\n const memberEntries = se_TransitGatewayConnectPeerIdStringList(input[_TGCPIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayConnectPeerIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayConnectPeersRequest\");\nvar se_DescribeTransitGatewayConnectsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayConnectsRequest\");\nvar se_DescribeTransitGatewayMulticastDomainsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDIr] != null) {\n const memberEntries = se_TransitGatewayMulticastDomainIdStringList(input[_TGMDIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayMulticastDomainIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayMulticastDomainsRequest\");\nvar se_DescribeTransitGatewayPeeringAttachmentsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayPeeringAttachmentsRequest\");\nvar se_DescribeTransitGatewayPolicyTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTIr] != null) {\n const memberEntries = se_TransitGatewayPolicyTableIdStringList(input[_TGPTIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayPolicyTableIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayPolicyTablesRequest\");\nvar se_DescribeTransitGatewayRouteTableAnnouncementsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTAIr] != null) {\n const memberEntries = se_TransitGatewayRouteTableAnnouncementIdStringList(input[_TGRTAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayRouteTableAnnouncementIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayRouteTableAnnouncementsRequest\");\nvar se_DescribeTransitGatewayRouteTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTIr] != null) {\n const memberEntries = se_TransitGatewayRouteTableIdStringList(input[_TGRTIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayRouteTableIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayRouteTablesRequest\");\nvar se_DescribeTransitGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGIr] != null) {\n const memberEntries = se_TransitGatewayIdStringList(input[_TGIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewaysRequest\");\nvar se_DescribeTransitGatewayVpcAttachmentsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayVpcAttachmentsRequest\");\nvar se_DescribeTrunkInterfaceAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIs] != null) {\n const memberEntries = se_TrunkInterfaceAssociationIdList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeTrunkInterfaceAssociationsRequest\");\nvar se_DescribeVerifiedAccessEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEIe] != null) {\n const memberEntries = se_VerifiedAccessEndpointIdList(input[_VAEIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessEndpointsRequest\");\nvar se_DescribeVerifiedAccessGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGIe] != null) {\n const memberEntries = se_VerifiedAccessGroupIdList(input[_VAGIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessGroupsRequest\");\nvar se_DescribeVerifiedAccessInstanceLoggingConfigurationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAIIe] != null) {\n const memberEntries = se_VerifiedAccessInstanceIdList(input[_VAIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessInstanceLoggingConfigurationsRequest\");\nvar se_DescribeVerifiedAccessInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAIIe] != null) {\n const memberEntries = se_VerifiedAccessInstanceIdList(input[_VAIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessInstancesRequest\");\nvar se_DescribeVerifiedAccessTrustProvidersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VATPIe] != null) {\n const memberEntries = se_VerifiedAccessTrustProviderIdList(input[_VATPIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessTrustProviderId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessTrustProvidersRequest\");\nvar se_DescribeVolumeAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVolumeAttributeRequest\");\nvar se_DescribeVolumesModificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIol] != null) {\n const memberEntries = se_VolumeIdStringList(input[_VIol], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeVolumesModificationsRequest\");\nvar se_DescribeVolumesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIol] != null) {\n const memberEntries = se_VolumeIdStringList(input[_VIol], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeVolumesRequest\");\nvar se_DescribeVolumeStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_VIol] != null) {\n const memberEntries = se_VolumeIdStringList(input[_VIol], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVolumeStatusRequest\");\nvar se_DescribeVpcAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpcAttributeRequest\");\nvar se_DescribeVpcBlockPublicAccessExclusionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EIxcl] != null) {\n const memberEntries = se_VpcBlockPublicAccessExclusionIdList(input[_EIxcl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExclusionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeVpcBlockPublicAccessExclusionsRequest\");\nvar se_DescribeVpcBlockPublicAccessOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpcBlockPublicAccessOptionsRequest\");\nvar se_DescribeVpcClassicLinkDnsSupportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIp] != null) {\n const memberEntries = se_VpcClassicLinkIdList(input[_VIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcClassicLinkDnsSupportRequest\");\nvar se_DescribeVpcClassicLinkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIp] != null) {\n const memberEntries = se_VpcClassicLinkIdList(input[_VIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVpcClassicLinkRequest\");\nvar se_DescribeVpcEndpointAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointAssociationsRequest\");\nvar se_DescribeVpcEndpointConnectionNotificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CNIon] != null) {\n entries[_CNIon] = input[_CNIon];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointConnectionNotificationsRequest\");\nvar se_DescribeVpcEndpointConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointConnectionsRequest\");\nvar se_DescribeVpcEndpointServiceConfigurationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIer] != null) {\n const memberEntries = se_VpcEndpointServiceIdList(input[_SIer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointServiceConfigurationsRequest\");\nvar se_DescribeVpcEndpointServicePermissionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointServicePermissionsRequest\");\nvar se_DescribeVpcEndpointServicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SNer] != null) {\n const memberEntries = se_ValueStringList(input[_SNer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SRer] != null) {\n const memberEntries = se_ValueStringList(input[_SRer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVpcEndpointServicesRequest\");\nvar se_DescribeVpcEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointsRequest\");\nvar se_DescribeVpcPeeringConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCIp] != null) {\n const memberEntries = se_VpcPeeringConnectionIdList(input[_VPCIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcPeeringConnectionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVpcPeeringConnectionsRequest\");\nvar se_DescribeVpcsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VIp] != null) {\n const memberEntries = se_VpcIdStringList(input[_VIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpcsRequest\");\nvar se_DescribeVpnConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VCIp] != null) {\n const memberEntries = se_VpnConnectionIdStringList(input[_VCIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpnConnectionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpnConnectionsRequest\");\nvar se_DescribeVpnGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VGIp] != null) {\n const memberEntries = se_VpnGatewayIdStringList(input[_VGIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpnGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpnGatewaysRequest\");\nvar se_DestinationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FF] != null) {\n entries[_FF] = input[_FF];\n }\n if (input[_HCP] != null) {\n entries[_HCP] = input[_HCP];\n }\n if (input[_PHP] != null) {\n entries[_PHP] = input[_PHP];\n }\n return entries;\n}, \"se_DestinationOptionsRequest\");\nvar se_DetachClassicLinkVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DetachClassicLinkVpcRequest\");\nvar se_DetachInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGI] != null) {\n entries[_IGI] = input[_IGI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DetachInternetGatewayRequest\");\nvar se_DetachNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIt] != null) {\n entries[_AIt] = input[_AIt];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n return entries;\n}, \"se_DetachNetworkInterfaceRequest\");\nvar se_DetachVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DetachVerifiedAccessTrustProviderRequest\");\nvar se_DetachVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Dev] != null) {\n entries[_Dev] = input[_Dev];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DetachVolumeRequest\");\nvar se_DetachVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DetachVpnGatewayRequest\");\nvar se_DhcpOptionsIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`DhcpOptionsId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DhcpOptionsIdStringList\");\nvar se_DirectoryServiceAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DIir] != null) {\n entries[_DIir] = input[_DIir];\n }\n return entries;\n}, \"se_DirectoryServiceAuthenticationRequest\");\nvar se_DisableAddressTransferRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableAddressTransferRequest\");\nvar se_DisableAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableAllowedImagesSettingsRequest\");\nvar se_DisableAwsNetworkPerformanceMetricSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_Met] != null) {\n entries[_Met] = input[_Met];\n }\n if (input[_Sta] != null) {\n entries[_Sta] = input[_Sta];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableAwsNetworkPerformanceMetricSubscriptionRequest\");\nvar se_DisableEbsEncryptionByDefaultRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableEbsEncryptionByDefaultRequest\");\nvar se_DisableFastLaunchRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableFastLaunchRequest\");\nvar se_DisableFastSnapshotRestoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZv] != null) {\n const memberEntries = se_AvailabilityZoneStringList(input[_AZv], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AvailabilityZone.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SSIo] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SSIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceSnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableFastSnapshotRestoresRequest\");\nvar se_DisableImageBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageBlockPublicAccessRequest\");\nvar se_DisableImageDeprecationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageDeprecationRequest\");\nvar se_DisableImageDeregistrationProtectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageDeregistrationProtectionRequest\");\nvar se_DisableImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageRequest\");\nvar se_DisableIpamOrganizationAdminAccountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DAAI] != null) {\n entries[_DAAI] = input[_DAAI];\n }\n return entries;\n}, \"se_DisableIpamOrganizationAdminAccountRequest\");\nvar se_DisableRouteServerPropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableRouteServerPropagationRequest\");\nvar se_DisableSerialConsoleAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableSerialConsoleAccessRequest\");\nvar se_DisableSnapshotBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableSnapshotBlockPublicAccessRequest\");\nvar se_DisableTransitGatewayRouteTablePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TGRTAI] != null) {\n entries[_TGRTAI] = input[_TGRTAI];\n }\n return entries;\n}, \"se_DisableTransitGatewayRouteTablePropagationRequest\");\nvar se_DisableVgwRoutePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableVgwRoutePropagationRequest\");\nvar se_DisableVpcClassicLinkDnsSupportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DisableVpcClassicLinkDnsSupportRequest\");\nvar se_DisableVpcClassicLinkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DisableVpcClassicLinkRequest\");\nvar se_DisassociateAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateAddressRequest\");\nvar se_DisassociateCapacityReservationBillingOwnerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_URBOI] != null) {\n entries[_URBOI] = input[_URBOI];\n }\n return entries;\n}, \"se_DisassociateCapacityReservationBillingOwnerRequest\");\nvar se_DisassociateClientVpnTargetNetworkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateClientVpnTargetNetworkRequest\");\nvar se_DisassociateEnclaveCertificateIamRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_RAo] != null) {\n entries[_RAo] = input[_RAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateEnclaveCertificateIamRoleRequest\");\nvar se_DisassociateIamInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateIamInstanceProfileRequest\");\nvar se_DisassociateInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n if (input[_AT] != null) {\n const memberEntries = se_InstanceEventWindowDisassociationRequest(input[_AT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DisassociateInstanceEventWindowRequest\");\nvar se_DisassociateIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_DisassociateIpamByoasnRequest\");\nvar se_DisassociateIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDAIp] != null) {\n entries[_IRDAIp] = input[_IRDAIp];\n }\n return entries;\n}, \"se_DisassociateIpamResourceDiscoveryRequest\");\nvar se_DisassociateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_AIs] != null) {\n const memberEntries = se_EipAssociationIdList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MDDS] != null) {\n entries[_MDDS] = input[_MDDS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateNatGatewayAddressRequest\");\nvar se_DisassociateRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateRouteServerRequest\");\nvar se_DisassociateRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateRouteTableRequest\");\nvar se_DisassociateSecurityGroupVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateSecurityGroupVpcRequest\");\nvar se_DisassociateSubnetCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateSubnetCidrBlockRequest\");\nvar se_DisassociateTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTransitGatewayMulticastDomainRequest\");\nvar se_DisassociateTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTransitGatewayPolicyTableRequest\");\nvar se_DisassociateTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTransitGatewayRouteTableRequest\");\nvar se_DisassociateTrunkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTrunkInterfaceRequest\");\nvar se_DisassociateVpcCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateVpcCidrBlockRequest\");\nvar se_DiskImage = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Im] != null) {\n const memberEntries = se_DiskImageDetail(input[_Im], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Image.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Vo] != null) {\n const memberEntries = se_VolumeDetail(input[_Vo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Volume.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DiskImage\");\nvar se_DiskImageDetail = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fo] != null) {\n entries[_Fo] = input[_Fo];\n }\n if (input[_By] != null) {\n entries[_By] = input[_By];\n }\n if (input[_IMU] != null) {\n entries[_IMU] = input[_IMU];\n }\n return entries;\n}, \"se_DiskImageDetail\");\nvar se_DiskImageList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_DiskImage(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_DiskImageList\");\nvar se_DnsOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRIT] != null) {\n entries[_DRIT] = input[_DRIT];\n }\n if (input[_PDOFIRE] != null) {\n entries[_PDOFIRE] = input[_PDOFIRE];\n }\n return entries;\n}, \"se_DnsOptionsSpecification\");\nvar se_DnsServersOptionsModifyStructure = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CDSu] != null) {\n const memberEntries = se_ValueStringList(input[_CDSu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CustomDnsServers.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_DnsServersOptionsModifyStructure\");\nvar se_EbsBlockDevice = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n return entries;\n}, \"se_EbsBlockDevice\");\nvar se_EbsInstanceBlockDeviceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n return entries;\n}, \"se_EbsInstanceBlockDeviceSpecification\");\nvar se_EgressOnlyInternetGatewayIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_EgressOnlyInternetGatewayIdList\");\nvar se_EipAssociationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_EipAssociationIdList\");\nvar se_ElasticGpuIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ElasticGpuIdSet\");\nvar se_ElasticGpuSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n return entries;\n}, \"se_ElasticGpuSpecification\");\nvar se_ElasticGpuSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ElasticGpuSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`ElasticGpuSpecification.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ElasticGpuSpecificationList\");\nvar se_ElasticGpuSpecifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ElasticGpuSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ElasticGpuSpecifications\");\nvar se_ElasticInferenceAccelerator = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_Cou] != null) {\n entries[_Cou] = input[_Cou];\n }\n return entries;\n}, \"se_ElasticInferenceAccelerator\");\nvar se_ElasticInferenceAccelerators = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ElasticInferenceAccelerator(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ElasticInferenceAccelerators\");\nvar se_EnableAddressTransferRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_TAI] != null) {\n entries[_TAI] = input[_TAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableAddressTransferRequest\");\nvar se_EnableAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AISS] != null) {\n entries[_AISS] = input[_AISS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableAllowedImagesSettingsRequest\");\nvar se_EnableAwsNetworkPerformanceMetricSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_Met] != null) {\n entries[_Met] = input[_Met];\n }\n if (input[_Sta] != null) {\n entries[_Sta] = input[_Sta];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableAwsNetworkPerformanceMetricSubscriptionRequest\");\nvar se_EnableEbsEncryptionByDefaultRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableEbsEncryptionByDefaultRequest\");\nvar se_EnableFastLaunchRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_SCn] != null) {\n const memberEntries = se_FastLaunchSnapshotConfigurationRequest(input[_SCn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotConfiguration.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LTa] != null) {\n const memberEntries = se_FastLaunchLaunchTemplateSpecificationRequest(input[_LTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplate.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MPL] != null) {\n entries[_MPL] = input[_MPL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableFastLaunchRequest\");\nvar se_EnableFastSnapshotRestoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZv] != null) {\n const memberEntries = se_AvailabilityZoneStringList(input[_AZv], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AvailabilityZone.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SSIo] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SSIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceSnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableFastSnapshotRestoresRequest\");\nvar se_EnableImageBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IBPAS] != null) {\n entries[_IBPAS] = input[_IBPAS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageBlockPublicAccessRequest\");\nvar se_EnableImageDeprecationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DAe] != null) {\n entries[_DAe] = (0, import_smithy_client.serializeDateTime)(input[_DAe]);\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageDeprecationRequest\");\nvar se_EnableImageDeregistrationProtectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_WC] != null) {\n entries[_WC] = input[_WC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageDeregistrationProtectionRequest\");\nvar se_EnableImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageRequest\");\nvar se_EnableIpamOrganizationAdminAccountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DAAI] != null) {\n entries[_DAAI] = input[_DAAI];\n }\n return entries;\n}, \"se_EnableIpamOrganizationAdminAccountRequest\");\nvar se_EnableReachabilityAnalyzerOrganizationSharingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableReachabilityAnalyzerOrganizationSharingRequest\");\nvar se_EnableRouteServerPropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableRouteServerPropagationRequest\");\nvar se_EnableSerialConsoleAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableSerialConsoleAccessRequest\");\nvar se_EnableSnapshotBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Stat] != null) {\n entries[_Stat] = input[_Stat];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableSnapshotBlockPublicAccessRequest\");\nvar se_EnableTransitGatewayRouteTablePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TGRTAI] != null) {\n entries[_TGRTAI] = input[_TGRTAI];\n }\n return entries;\n}, \"se_EnableTransitGatewayRouteTablePropagationRequest\");\nvar se_EnableVgwRoutePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableVgwRoutePropagationRequest\");\nvar se_EnableVolumeIORequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n return entries;\n}, \"se_EnableVolumeIORequest\");\nvar se_EnableVpcClassicLinkDnsSupportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_EnableVpcClassicLinkDnsSupportRequest\");\nvar se_EnableVpcClassicLinkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_EnableVpcClassicLinkRequest\");\nvar se_EnaSrdSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESE] != null) {\n entries[_ESE] = input[_ESE];\n }\n if (input[_ESUS] != null) {\n const memberEntries = se_EnaSrdUdpSpecification(input[_ESUS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdUdpSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_EnaSrdSpecification\");\nvar se_EnaSrdSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESE] != null) {\n entries[_ESE] = input[_ESE];\n }\n if (input[_ESUS] != null) {\n const memberEntries = se_EnaSrdUdpSpecificationRequest(input[_ESUS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdUdpSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_EnaSrdSpecificationRequest\");\nvar se_EnaSrdUdpSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESUE] != null) {\n entries[_ESUE] = input[_ESUE];\n }\n return entries;\n}, \"se_EnaSrdUdpSpecification\");\nvar se_EnaSrdUdpSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESUE] != null) {\n entries[_ESUE] = input[_ESUE];\n }\n return entries;\n}, \"se_EnaSrdUdpSpecificationRequest\");\nvar se_EnclaveOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_EnclaveOptionsRequest\");\nvar se_ExcludedInstanceTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExcludedInstanceTypeSet\");\nvar se_ExecutableByStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ExecutableBy.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExecutableByStringList\");\nvar se_ExportClientVpnClientCertificateRevocationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportClientVpnClientCertificateRevocationListRequest\");\nvar se_ExportClientVpnClientConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportClientVpnClientConfigurationRequest\");\nvar se_ExportImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIFi] != null) {\n entries[_DIFi] = input[_DIFi];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_SEL] != null) {\n const memberEntries = se_ExportTaskS3LocationRequest(input[_SEL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3ExportLocation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RNo] != null) {\n entries[_RNo] = input[_RNo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ExportImageRequest\");\nvar se_ExportImageTaskIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ExportImageTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExportImageTaskIdList\");\nvar se_ExportTaskIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ExportTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExportTaskIdStringList\");\nvar se_ExportTaskS3LocationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n return entries;\n}, \"se_ExportTaskS3LocationRequest\");\nvar se_ExportToS3TaskSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DIFi] != null) {\n entries[_DIFi] = input[_DIFi];\n }\n if (input[_CFo] != null) {\n entries[_CFo] = input[_CFo];\n }\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n return entries;\n}, \"se_ExportToS3TaskSpecification\");\nvar se_ExportTransitGatewayRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportTransitGatewayRoutesRequest\");\nvar se_ExportVerifiedAccessInstanceClientConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportVerifiedAccessInstanceClientConfigurationRequest\");\nvar se_FastLaunchImageIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImageId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FastLaunchImageIdList\");\nvar se_FastLaunchLaunchTemplateSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_FastLaunchLaunchTemplateSpecificationRequest\");\nvar se_FastLaunchSnapshotConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TRC] != null) {\n entries[_TRC] = input[_TRC];\n }\n return entries;\n}, \"se_FastLaunchSnapshotConfigurationRequest\");\nvar se_FederatedAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_SSSAMLPA] != null) {\n entries[_SSSAMLPA] = input[_SSSAMLPA];\n }\n return entries;\n}, \"se_FederatedAuthenticationRequest\");\nvar se_Filter = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_Val] != null) {\n const memberEntries = se_ValueStringList(input[_Val], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Value.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_Filter\");\nvar se_FilterList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Filter(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Filter.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FilterList\");\nvar se_FleetBlockDeviceMappingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n if (input[_E] != null) {\n const memberEntries = se_FleetEbsBlockDeviceRequest(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n return entries;\n}, \"se_FleetBlockDeviceMappingRequest\");\nvar se_FleetBlockDeviceMappingRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_FleetBlockDeviceMappingRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FleetBlockDeviceMappingRequestList\");\nvar se_FleetEbsBlockDeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n return entries;\n}, \"se_FleetEbsBlockDeviceRequest\");\nvar se_FleetIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FleetIdSet\");\nvar se_FleetLaunchTemplateConfigListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_FleetLaunchTemplateConfigRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FleetLaunchTemplateConfigListRequest\");\nvar se_FleetLaunchTemplateConfigRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTS] != null) {\n const memberEntries = se_FleetLaunchTemplateSpecificationRequest(input[_LTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ov] != null) {\n const memberEntries = se_FleetLaunchTemplateOverridesListRequest(input[_Ov], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Overrides.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_FleetLaunchTemplateConfigRequest\");\nvar se_FleetLaunchTemplateOverridesListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_FleetLaunchTemplateOverridesRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FleetLaunchTemplateOverridesListRequest\");\nvar se_FleetLaunchTemplateOverridesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_MPa] != null) {\n entries[_MPa] = input[_MPa];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_WCe] != null) {\n entries[_WCe] = (0, import_smithy_client.serializeFloat)(input[_WCe]);\n }\n if (input[_Pri] != null) {\n entries[_Pri] = (0, import_smithy_client.serializeFloat)(input[_Pri]);\n }\n if (input[_Pl] != null) {\n const memberEntries = se_Placement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BDM] != null) {\n const memberEntries = se_FleetBlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n return entries;\n}, \"se_FleetLaunchTemplateOverridesRequest\");\nvar se_FleetLaunchTemplateSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_FleetLaunchTemplateSpecification\");\nvar se_FleetLaunchTemplateSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_FleetLaunchTemplateSpecificationRequest\");\nvar se_FleetSpotCapacityRebalanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RS] != null) {\n entries[_RS] = input[_RS];\n }\n if (input[_TDe] != null) {\n entries[_TDe] = input[_TDe];\n }\n return entries;\n}, \"se_FleetSpotCapacityRebalanceRequest\");\nvar se_FleetSpotMaintenanceStrategiesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRap] != null) {\n const memberEntries = se_FleetSpotCapacityRebalanceRequest(input[_CRap], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityRebalance.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_FleetSpotMaintenanceStrategiesRequest\");\nvar se_FlowLogIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FlowLogIdList\");\nvar se_FlowLogResourceIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FlowLogResourceIds\");\nvar se_FpgaImageIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FpgaImageIdList\");\nvar se_GetAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAllowedImagesSettingsRequest\");\nvar se_GetAssociatedEnclaveCertificateIamRolesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAssociatedEnclaveCertificateIamRolesRequest\");\nvar se_GetAssociatedIpv6PoolCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAssociatedIpv6PoolCidrsRequest\");\nvar se_GetAwsNetworkPerformanceDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DQ] != null) {\n const memberEntries = se_DataQueries(input[_DQ], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DataQuery.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAwsNetworkPerformanceDataRequest\");\nvar se_GetCapacityReservationUsageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetCapacityReservationUsageRequest\");\nvar se_GetCoipPoolUsageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetCoipPoolUsageRequest\");\nvar se_GetConsoleOutputRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_La] != null) {\n entries[_La] = input[_La];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetConsoleOutputRequest\");\nvar se_GetConsoleScreenshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_WU] != null) {\n entries[_WU] = input[_WU];\n }\n return entries;\n}, \"se_GetConsoleScreenshotRequest\");\nvar se_GetDeclarativePoliciesReportSummaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIep] != null) {\n entries[_RIep] = input[_RIep];\n }\n return entries;\n}, \"se_GetDeclarativePoliciesReportSummaryRequest\");\nvar se_GetDefaultCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n return entries;\n}, \"se_GetDefaultCreditSpecificationRequest\");\nvar se_GetEbsDefaultKmsKeyIdRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetEbsDefaultKmsKeyIdRequest\");\nvar se_GetEbsEncryptionByDefaultRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetEbsEncryptionByDefaultRequest\");\nvar se_GetFlowLogsIntegrationTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FLIl] != null) {\n entries[_FLIl] = input[_FLIl];\n }\n if (input[_CDSDA] != null) {\n entries[_CDSDA] = input[_CDSDA];\n }\n if (input[_ISnt] != null) {\n const memberEntries = se_IntegrateServices(input[_ISnt], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IntegrateService.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetFlowLogsIntegrationTemplateRequest\");\nvar se_GetGroupsForCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetGroupsForCapacityReservationRequest\");\nvar se_GetHostReservationPurchasePreviewRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HIS] != null) {\n const memberEntries = se_RequestHostIdSet(input[_HIS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostIdSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n return entries;\n}, \"se_GetHostReservationPurchasePreviewRequest\");\nvar se_GetImageBlockPublicAccessStateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetImageBlockPublicAccessStateRequest\");\nvar se_GetInstanceMetadataDefaultsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetInstanceMetadataDefaultsRequest\");\nvar se_GetInstanceTpmEkPubRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_KT] != null) {\n entries[_KT] = input[_KT];\n }\n if (input[_KF] != null) {\n entries[_KF] = input[_KF];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetInstanceTpmEkPubRequest\");\nvar se_GetInstanceTypesFromInstanceRequirementsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ATr] != null) {\n const memberEntries = se_ArchitectureTypeSet(input[_ATr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ArchitectureType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VTi] != null) {\n const memberEntries = se_VirtualizationTypeSet(input[_VTi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VirtualizationType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetInstanceTypesFromInstanceRequirementsRequest\");\nvar se_GetInstanceUefiDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetInstanceUefiDataRequest\");\nvar se_GetIpamAddressHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetIpamAddressHistoryRequest\");\nvar se_GetIpamDiscoveredAccountsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_DRi] != null) {\n entries[_DRi] = input[_DRi];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetIpamDiscoveredAccountsRequest\");\nvar se_GetIpamDiscoveredPublicAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_ARd] != null) {\n entries[_ARd] = input[_ARd];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetIpamDiscoveredPublicAddressesRequest\");\nvar se_GetIpamDiscoveredResourceCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_RRe] != null) {\n entries[_RRe] = input[_RRe];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetIpamDiscoveredResourceCidrsRequest\");\nvar se_GetIpamPoolAllocationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_IPAI] != null) {\n entries[_IPAI] = input[_IPAI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetIpamPoolAllocationsRequest\");\nvar se_GetIpamPoolCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetIpamPoolCidrsRequest\");\nvar se_GetIpamResourceCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_RIeso] != null) {\n entries[_RIeso] = input[_RIeso];\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_RTes] != null) {\n const memberEntries = se_RequestIpamResourceTag(input[_RTes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceTag.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ROe] != null) {\n entries[_ROe] = input[_ROe];\n }\n return entries;\n}, \"se_GetIpamResourceCidrsRequest\");\nvar se_GetLaunchTemplateDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n return entries;\n}, \"se_GetLaunchTemplateDataRequest\");\nvar se_GetManagedPrefixListAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetManagedPrefixListAssociationsRequest\");\nvar se_GetManagedPrefixListEntriesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_TV] != null) {\n entries[_TV] = input[_TV];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetManagedPrefixListEntriesRequest\");\nvar se_GetNetworkInsightsAccessScopeAnalysisFindingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASAI] != null) {\n entries[_NIASAI] = input[_NIASAI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetNetworkInsightsAccessScopeAnalysisFindingsRequest\");\nvar se_GetNetworkInsightsAccessScopeContentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetNetworkInsightsAccessScopeContentRequest\");\nvar se_GetPasswordDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetPasswordDataRequest\");\nvar se_GetReservedInstancesExchangeQuoteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RII] != null) {\n const memberEntries = se_ReservedInstanceIdSet(input[_RII], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TC] != null) {\n const memberEntries = se_TargetConfigurationRequestSet(input[_TC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetReservedInstancesExchangeQuoteRequest\");\nvar se_GetRouteServerAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetRouteServerAssociationsRequest\");\nvar se_GetRouteServerPropagationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetRouteServerPropagationsRequest\");\nvar se_GetRouteServerRoutingDatabaseRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetRouteServerRoutingDatabaseRequest\");\nvar se_GetSecurityGroupsForVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetSecurityGroupsForVpcRequest\");\nvar se_GetSerialConsoleAccessStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetSerialConsoleAccessStatusRequest\");\nvar se_GetSnapshotBlockPublicAccessStateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetSnapshotBlockPublicAccessStateRequest\");\nvar se_GetSpotPlacementScoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ITnst] != null) {\n const memberEntries = se_InstanceTypes(input[_ITnst], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TCa] != null) {\n entries[_TCa] = input[_TCa];\n }\n if (input[_TCUT] != null) {\n entries[_TCUT] = input[_TCUT];\n }\n if (input[_SAZ] != null) {\n entries[_SAZ] = input[_SAZ];\n }\n if (input[_RNe] != null) {\n const memberEntries = se_RegionNames(input[_RNe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RegionName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IRWM] != null) {\n const memberEntries = se_InstanceRequirementsWithMetadataRequest(input[_IRWM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirementsWithMetadata.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetSpotPlacementScoresRequest\");\nvar se_GetSubnetCidrReservationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetSubnetCidrReservationsRequest\");\nvar se_GetTransitGatewayAttachmentPropagationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayAttachmentPropagationsRequest\");\nvar se_GetTransitGatewayMulticastDomainAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayMulticastDomainAssociationsRequest\");\nvar se_GetTransitGatewayPolicyTableAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayPolicyTableAssociationsRequest\");\nvar se_GetTransitGatewayPolicyTableEntriesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayPolicyTableEntriesRequest\");\nvar se_GetTransitGatewayPrefixListReferencesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayPrefixListReferencesRequest\");\nvar se_GetTransitGatewayRouteTableAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayRouteTableAssociationsRequest\");\nvar se_GetTransitGatewayRouteTablePropagationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayRouteTablePropagationsRequest\");\nvar se_GetVerifiedAccessEndpointPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVerifiedAccessEndpointPolicyRequest\");\nvar se_GetVerifiedAccessEndpointTargetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVerifiedAccessEndpointTargetsRequest\");\nvar se_GetVerifiedAccessGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVerifiedAccessGroupPolicyRequest\");\nvar se_GetVpnConnectionDeviceSampleConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VCDTI] != null) {\n entries[_VCDTI] = input[_VCDTI];\n }\n if (input[_IKEV] != null) {\n entries[_IKEV] = input[_IKEV];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVpnConnectionDeviceSampleConfigurationRequest\");\nvar se_GetVpnConnectionDeviceTypesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVpnConnectionDeviceTypesRequest\");\nvar se_GetVpnTunnelReplacementStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVpnTunnelReplacementStatusRequest\");\nvar se_GroupIdentifier = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_GroupIdentifier\");\nvar se_GroupIdentifierList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_GroupIdentifier(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_GroupIdentifierList\");\nvar se_GroupIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_GroupIds\");\nvar se_GroupIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`GroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_GroupIdStringList\");\nvar se_GroupNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`GroupName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_GroupNameStringList\");\nvar se_HibernationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Conf] != null) {\n entries[_Conf] = input[_Conf];\n }\n return entries;\n}, \"se_HibernationOptionsRequest\");\nvar se_HostReservationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_HostReservationIdSet\");\nvar se_IamInstanceProfileSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_IamInstanceProfileSpecification\");\nvar se_IcmpTypeCode = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Cod] != null) {\n entries[_Cod] = input[_Cod];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n return entries;\n}, \"se_IcmpTypeCode\");\nvar se_IKEVersionsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_IKEVersionsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_IKEVersionsRequestList\");\nvar se_IKEVersionsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_IKEVersionsRequestListValue\");\nvar se_ImageCriterionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPm] != null) {\n const memberEntries = se_ImageProviderRequestList(input[_IPm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageProvider.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImageCriterionRequest\");\nvar se_ImageCriterionRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ImageCriterionRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`ImageCriterion.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ImageCriterionRequestList\");\nvar se_ImageDiskContainer = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_Fo] != null) {\n entries[_Fo] = input[_Fo];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_U] != null) {\n entries[_U] = input[_U];\n }\n if (input[_UB] != null) {\n const memberEntries = se_UserBucket(input[_UB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserBucket.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImageDiskContainer\");\nvar se_ImageDiskContainerList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ImageDiskContainer(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ImageDiskContainerList\");\nvar se_ImageIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImageIdList\");\nvar se_ImageIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImageId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImageIdStringList\");\nvar se_ImageProviderRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImageProviderRequestList\");\nvar se_ImportClientVpnClientCertificateRevocationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_CRL] != null) {\n entries[_CRL] = input[_CRL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ImportClientVpnClientCertificateRevocationListRequest\");\nvar se_ImportImageLicenseConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LCA] != null) {\n entries[_LCA] = input[_LCA];\n }\n return entries;\n}, \"se_ImportImageLicenseConfigurationRequest\");\nvar se_ImportImageLicenseSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ImportImageLicenseConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ImportImageLicenseSpecificationListRequest\");\nvar se_ImportImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Arc] != null) {\n entries[_Arc] = input[_Arc];\n }\n if (input[_CDl] != null) {\n const memberEntries = se_ClientData(input[_CDl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DCi] != null) {\n const memberEntries = se_ImageDiskContainerList(input[_DCi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DiskContainer.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_H] != null) {\n entries[_H] = input[_H];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_LTi] != null) {\n entries[_LTi] = input[_LTi];\n }\n if (input[_Pla] != null) {\n entries[_Pla] = input[_Pla];\n }\n if (input[_RNo] != null) {\n entries[_RNo] = input[_RNo];\n }\n if (input[_LSi] != null) {\n const memberEntries = se_ImportImageLicenseSpecificationListRequest(input[_LSi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LicenseSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UO] != null) {\n entries[_UO] = input[_UO];\n }\n if (input[_BM] != null) {\n entries[_BM] = input[_BM];\n }\n return entries;\n}, \"se_ImportImageRequest\");\nvar se_ImportInstanceLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Arc] != null) {\n entries[_Arc] = input[_Arc];\n }\n if (input[_GNr] != null) {\n const memberEntries = se_SecurityGroupStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GIro] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_GIro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_UD] != null) {\n const memberEntries = se_UserData(input[_UD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_Pl] != null) {\n const memberEntries = se_Placement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Mon] != null) {\n entries[_Mon] = input[_Mon];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_IISB] != null) {\n entries[_IISB] = input[_IISB];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n return entries;\n}, \"se_ImportInstanceLaunchSpecification\");\nvar se_ImportInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_LSa] != null) {\n const memberEntries = se_ImportInstanceLaunchSpecification(input[_LSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DIis] != null) {\n const memberEntries = se_DiskImageList(input[_DIis], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DiskImage.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pla] != null) {\n entries[_Pla] = input[_Pla];\n }\n return entries;\n}, \"se_ImportInstanceRequest\");\nvar se_ImportKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_PKM] != null) {\n entries[_PKM] = context.base64Encoder(input[_PKM]);\n }\n return entries;\n}, \"se_ImportKeyPairRequest\");\nvar se_ImportSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CDl] != null) {\n const memberEntries = se_ClientData(input[_CDl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DCis] != null) {\n const memberEntries = se_SnapshotDiskContainer(input[_DCis], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DiskContainer.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_RNo] != null) {\n entries[_RNo] = input[_RNo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImportSnapshotRequest\");\nvar se_ImportSnapshotTaskIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImportTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImportSnapshotTaskIdList\");\nvar se_ImportTaskIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImportTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImportTaskIdList\");\nvar se_ImportVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_Im] != null) {\n const memberEntries = se_DiskImageDetail(input[_Im], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Image.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Vo] != null) {\n const memberEntries = se_VolumeDetail(input[_Vo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Volume.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImportVolumeRequest\");\nvar se_InsideCidrBlocksStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InsideCidrBlocksStringList\");\nvar se_InstanceBlockDeviceMappingSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_E] != null) {\n const memberEntries = se_EbsInstanceBlockDeviceSpecification(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n return entries;\n}, \"se_InstanceBlockDeviceMappingSpecification\");\nvar se_InstanceBlockDeviceMappingSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceBlockDeviceMappingSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceBlockDeviceMappingSpecificationList\");\nvar se_InstanceCreditSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceCreditSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceCreditSpecificationListRequest\");\nvar se_InstanceCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_CCp] != null) {\n entries[_CCp] = input[_CCp];\n }\n return entries;\n}, \"se_InstanceCreditSpecificationRequest\");\nvar se_InstanceEventWindowAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITnsta] != null) {\n const memberEntries = se_TagList(input[_ITnsta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DHI] != null) {\n const memberEntries = se_DedicatedHostIdList(input[_DHI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DedicatedHostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceEventWindowAssociationRequest\");\nvar se_InstanceEventWindowDisassociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITnsta] != null) {\n const memberEntries = se_TagList(input[_ITnsta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DHI] != null) {\n const memberEntries = se_DedicatedHostIdList(input[_DHI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DedicatedHostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceEventWindowDisassociationRequest\");\nvar se_InstanceEventWindowIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`InstanceEventWindowId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceEventWindowIdSet\");\nvar se_InstanceEventWindowTimeRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SWD] != null) {\n entries[_SWD] = input[_SWD];\n }\n if (input[_SH] != null) {\n entries[_SH] = input[_SH];\n }\n if (input[_EWD] != null) {\n entries[_EWD] = input[_EWD];\n }\n if (input[_EH] != null) {\n entries[_EH] = input[_EH];\n }\n return entries;\n}, \"se_InstanceEventWindowTimeRangeRequest\");\nvar se_InstanceEventWindowTimeRangeRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceEventWindowTimeRangeRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceEventWindowTimeRangeRequestSet\");\nvar se_InstanceGenerationSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceGenerationSet\");\nvar se_InstanceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceIdList\");\nvar se_InstanceIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`InstanceId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceIdStringList\");\nvar se_InstanceIpv6Address = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IApv] != null) {\n entries[_IApv] = input[_IApv];\n }\n if (input[_IPIs] != null) {\n entries[_IPIs] = input[_IPIs];\n }\n return entries;\n}, \"se_InstanceIpv6Address\");\nvar se_InstanceIpv6AddressList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceIpv6Address(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceIpv6AddressList\");\nvar se_InstanceIpv6AddressListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceIpv6AddressRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`InstanceIpv6Address.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceIpv6AddressListRequest\");\nvar se_InstanceIpv6AddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IApv] != null) {\n entries[_IApv] = input[_IApv];\n }\n return entries;\n}, \"se_InstanceIpv6AddressRequest\");\nvar se_InstanceMaintenanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ARu] != null) {\n entries[_ARu] = input[_ARu];\n }\n return entries;\n}, \"se_InstanceMaintenanceOptionsRequest\");\nvar se_InstanceMarketOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MT] != null) {\n entries[_MT] = input[_MT];\n }\n if (input[_SO] != null) {\n const memberEntries = se_SpotMarketOptions(input[_SO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceMarketOptionsRequest\");\nvar se_InstanceMetadataOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_HPI] != null) {\n entries[_HPI] = input[_HPI];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n return entries;\n}, \"se_InstanceMetadataOptionsRequest\");\nvar se_InstanceNetworkInterfaceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressSpecificationList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_ACIA] != null) {\n entries[_ACIA] = input[_ACIA];\n }\n if (input[_ITn] != null) {\n entries[_ITn] = input[_ITn];\n }\n if (input[_NCI] != null) {\n entries[_NCI] = input[_NCI];\n }\n if (input[_IPp] != null) {\n const memberEntries = se_Ipv4PrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_IP] != null) {\n const memberEntries = se_Ipv6PrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_PIr] != null) {\n entries[_PIr] = input[_PIr];\n }\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecificationRequest(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n return entries;\n}, \"se_InstanceNetworkInterfaceSpecification\");\nvar se_InstanceNetworkInterfaceSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceNetworkInterfaceSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceNetworkInterfaceSpecificationList\");\nvar se_InstanceNetworkPerformanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BW] != null) {\n entries[_BW] = input[_BW];\n }\n return entries;\n}, \"se_InstanceNetworkPerformanceOptionsRequest\");\nvar se_InstanceRequirements = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCC] != null) {\n const memberEntries = se_VCpuCountRange(input[_VCC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VCpuCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MMB] != null) {\n const memberEntries = se_MemoryMiB(input[_MMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CM] != null) {\n const memberEntries = se_CpuManufacturerSet(input[_CM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuManufacturerSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MGBPVC] != null) {\n const memberEntries = se_MemoryGiBPerVCpu(input[_MGBPVC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryGiBPerVCpu.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EIT] != null) {\n const memberEntries = se_ExcludedInstanceTypeSet(input[_EIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludedInstanceTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IG] != null) {\n const memberEntries = se_InstanceGenerationSet(input[_IG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceGenerationSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SMPPOLP] != null) {\n entries[_SMPPOLP] = input[_SMPPOLP];\n }\n if (input[_ODMPPOLP] != null) {\n entries[_ODMPPOLP] = input[_ODMPPOLP];\n }\n if (input[_BMa] != null) {\n entries[_BMa] = input[_BMa];\n }\n if (input[_BP] != null) {\n entries[_BP] = input[_BP];\n }\n if (input[_RHS] != null) {\n entries[_RHS] = input[_RHS];\n }\n if (input[_NIC] != null) {\n const memberEntries = se_NetworkInterfaceCount(input[_NIC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSo] != null) {\n entries[_LSo] = input[_LSo];\n }\n if (input[_LST] != null) {\n const memberEntries = se_LocalStorageTypeSet(input[_LST], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalStorageTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TLSGB] != null) {\n const memberEntries = se_TotalLocalStorageGB(input[_TLSGB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TotalLocalStorageGB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BEBM] != null) {\n const memberEntries = se_BaselineEbsBandwidthMbps(input[_BEBM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselineEbsBandwidthMbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ATc] != null) {\n const memberEntries = se_AcceleratorTypeSet(input[_ATc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ACc] != null) {\n const memberEntries = se_AcceleratorCount(input[_ACc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AM] != null) {\n const memberEntries = se_AcceleratorManufacturerSet(input[_AM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorManufacturerSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ANc] != null) {\n const memberEntries = se_AcceleratorNameSet(input[_ANc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorNameSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ATMMB] != null) {\n const memberEntries = se_AcceleratorTotalMemoryMiB(input[_ATMMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorTotalMemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NBGe] != null) {\n const memberEntries = se_NetworkBandwidthGbps(input[_NBGe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkBandwidthGbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AIT] != null) {\n const memberEntries = se_AllowedInstanceTypeSet(input[_AIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllowedInstanceTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MSPAPOOODP] != null) {\n entries[_MSPAPOOODP] = input[_MSPAPOOODP];\n }\n if (input[_BPF] != null) {\n const memberEntries = se_BaselinePerformanceFactors(input[_BPF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselinePerformanceFactors.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceRequirements\");\nvar se_InstanceRequirementsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCC] != null) {\n const memberEntries = se_VCpuCountRangeRequest(input[_VCC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VCpuCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MMB] != null) {\n const memberEntries = se_MemoryMiBRequest(input[_MMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CM] != null) {\n const memberEntries = se_CpuManufacturerSet(input[_CM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuManufacturer.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MGBPVC] != null) {\n const memberEntries = se_MemoryGiBPerVCpuRequest(input[_MGBPVC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryGiBPerVCpu.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EIT] != null) {\n const memberEntries = se_ExcludedInstanceTypeSet(input[_EIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludedInstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IG] != null) {\n const memberEntries = se_InstanceGenerationSet(input[_IG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceGeneration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SMPPOLP] != null) {\n entries[_SMPPOLP] = input[_SMPPOLP];\n }\n if (input[_ODMPPOLP] != null) {\n entries[_ODMPPOLP] = input[_ODMPPOLP];\n }\n if (input[_BMa] != null) {\n entries[_BMa] = input[_BMa];\n }\n if (input[_BP] != null) {\n entries[_BP] = input[_BP];\n }\n if (input[_RHS] != null) {\n entries[_RHS] = input[_RHS];\n }\n if (input[_NIC] != null) {\n const memberEntries = se_NetworkInterfaceCountRequest(input[_NIC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSo] != null) {\n entries[_LSo] = input[_LSo];\n }\n if (input[_LST] != null) {\n const memberEntries = se_LocalStorageTypeSet(input[_LST], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalStorageType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TLSGB] != null) {\n const memberEntries = se_TotalLocalStorageGBRequest(input[_TLSGB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TotalLocalStorageGB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BEBM] != null) {\n const memberEntries = se_BaselineEbsBandwidthMbpsRequest(input[_BEBM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselineEbsBandwidthMbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ATc] != null) {\n const memberEntries = se_AcceleratorTypeSet(input[_ATc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ACc] != null) {\n const memberEntries = se_AcceleratorCountRequest(input[_ACc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AM] != null) {\n const memberEntries = se_AcceleratorManufacturerSet(input[_AM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorManufacturer.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ANc] != null) {\n const memberEntries = se_AcceleratorNameSet(input[_ANc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ATMMB] != null) {\n const memberEntries = se_AcceleratorTotalMemoryMiBRequest(input[_ATMMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorTotalMemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NBGe] != null) {\n const memberEntries = se_NetworkBandwidthGbpsRequest(input[_NBGe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkBandwidthGbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AIT] != null) {\n const memberEntries = se_AllowedInstanceTypeSet(input[_AIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllowedInstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MSPAPOOODP] != null) {\n entries[_MSPAPOOODP] = input[_MSPAPOOODP];\n }\n if (input[_BPF] != null) {\n const memberEntries = se_BaselinePerformanceFactorsRequest(input[_BPF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselinePerformanceFactors.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceRequirementsRequest\");\nvar se_InstanceRequirementsWithMetadataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ATr] != null) {\n const memberEntries = se_ArchitectureTypeSet(input[_ATr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ArchitectureType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VTi] != null) {\n const memberEntries = se_VirtualizationTypeSet(input[_VTi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VirtualizationType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceRequirementsWithMetadataRequest\");\nvar se_InstanceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_EBV] != null) {\n entries[_EBV] = input[_EBV];\n }\n if (input[_EDVI] != null) {\n const memberEntries = se_VolumeIdStringList(input[_EDVI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludeDataVolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceSpecification\");\nvar se_InstanceTagKeySet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceTagKeySet\");\nvar se_InstanceTypeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceTypeList\");\nvar se_InstanceTypes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceTypes\");\nvar se_IntegrateServices = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIth] != null) {\n const memberEntries = se_AthenaIntegrationsSet(input[_AIth], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AthenaIntegration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_IntegrateServices\");\nvar se_InternetGatewayIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InternetGatewayIdList\");\nvar se_IpamCidrAuthorizationContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Me] != null) {\n entries[_Me] = input[_Me];\n }\n if (input[_Si] != null) {\n entries[_Si] = input[_Si];\n }\n return entries;\n}, \"se_IpamCidrAuthorizationContext\");\nvar se_IpamPoolAllocationAllowedCidrs = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpamPoolAllocationAllowedCidrs\");\nvar se_IpamPoolAllocationDisallowedCidrs = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpamPoolAllocationDisallowedCidrs\");\nvar se_IpamPoolSourceResourceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIeso] != null) {\n entries[_RIeso] = input[_RIeso];\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_RRe] != null) {\n entries[_RRe] = input[_RRe];\n }\n if (input[_ROe] != null) {\n entries[_ROe] = input[_ROe];\n }\n return entries;\n}, \"se_IpamPoolSourceResourceRequest\");\nvar se_IpList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpList\");\nvar se_IpPermission = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_UIGP] != null) {\n const memberEntries = se_UserIdGroupPairList(input[_UIGP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Groups.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IRp] != null) {\n const memberEntries = se_IpRangeList(input[_IRp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpRanges.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IRpv] != null) {\n const memberEntries = se_Ipv6RangeList(input[_IRpv], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Ranges.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PLIr] != null) {\n const memberEntries = se_PrefixListIdList(input[_PLIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrefixListIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_IpPermission\");\nvar se_IpPermissionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_IpPermission(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_IpPermissionList\");\nvar se_IpPrefixList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpPrefixList\");\nvar se_IpRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n return entries;\n}, \"se_IpRange\");\nvar se_IpRangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_IpRange(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_IpRangeList\");\nvar se_Ipv4PrefixList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Ipv4PrefixSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Ipv4PrefixList\");\nvar se_Ipv4PrefixSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpvr] != null) {\n entries[_IPpvr] = input[_IPpvr];\n }\n return entries;\n}, \"se_Ipv4PrefixSpecificationRequest\");\nvar se_Ipv6AddressList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_Ipv6AddressList\");\nvar se_Ipv6PoolIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_Ipv6PoolIdList\");\nvar se_Ipv6PrefixList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Ipv6PrefixSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Ipv6PrefixList\");\nvar se_Ipv6PrefixSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpvre] != null) {\n entries[_IPpvre] = input[_IPpvre];\n }\n return entries;\n}, \"se_Ipv6PrefixSpecificationRequest\");\nvar se_Ipv6Range = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CIid] != null) {\n entries[_CIid] = input[_CIid];\n }\n return entries;\n}, \"se_Ipv6Range\");\nvar se_Ipv6RangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Ipv6Range(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Ipv6RangeList\");\nvar se_KeyNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`KeyName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_KeyNameStringList\");\nvar se_KeyPairIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`KeyPairId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_KeyPairIdStringList\");\nvar se_LaunchPermission = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OAr] != null) {\n entries[_OAr] = input[_OAr];\n }\n if (input[_OUA] != null) {\n entries[_OUA] = input[_OUA];\n }\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n if (input[_Gr] != null) {\n entries[_Gr] = input[_Gr];\n }\n return entries;\n}, \"se_LaunchPermission\");\nvar se_LaunchPermissionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchPermission(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchPermissionList\");\nvar se_LaunchPermissionModifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Add] != null) {\n const memberEntries = se_LaunchPermissionList(input[_Add], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Add.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Rem] != null) {\n const memberEntries = se_LaunchPermissionList(input[_Rem], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Remove.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchPermissionModifications\");\nvar se_LaunchSpecsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SpotFleetLaunchSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchSpecsList\");\nvar se_LaunchTemplateBlockDeviceMappingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n if (input[_E] != null) {\n const memberEntries = se_LaunchTemplateEbsBlockDeviceRequest(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n return entries;\n}, \"se_LaunchTemplateBlockDeviceMappingRequest\");\nvar se_LaunchTemplateBlockDeviceMappingRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateBlockDeviceMappingRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateBlockDeviceMappingRequestList\");\nvar se_LaunchTemplateCapacityReservationSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRP] != null) {\n entries[_CRP] = input[_CRP];\n }\n if (input[_CRTa] != null) {\n const memberEntries = se_CapacityReservationTarget(input[_CRTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateCapacityReservationSpecificationRequest\");\nvar se_LaunchTemplateConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTS] != null) {\n const memberEntries = se_FleetLaunchTemplateSpecification(input[_LTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ov] != null) {\n const memberEntries = se_LaunchTemplateOverridesList(input[_Ov], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Overrides.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateConfig\");\nvar se_LaunchTemplateConfigList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateConfig(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateConfigList\");\nvar se_LaunchTemplateCpuOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_TPC] != null) {\n entries[_TPC] = input[_TPC];\n }\n if (input[_ASS] != null) {\n entries[_ASS] = input[_ASS];\n }\n return entries;\n}, \"se_LaunchTemplateCpuOptionsRequest\");\nvar se_LaunchTemplateEbsBlockDeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n return entries;\n}, \"se_LaunchTemplateEbsBlockDeviceRequest\");\nvar se_LaunchTemplateElasticInferenceAccelerator = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_Cou] != null) {\n entries[_Cou] = input[_Cou];\n }\n return entries;\n}, \"se_LaunchTemplateElasticInferenceAccelerator\");\nvar se_LaunchTemplateElasticInferenceAcceleratorList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateElasticInferenceAccelerator(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateElasticInferenceAcceleratorList\");\nvar se_LaunchTemplateEnclaveOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_LaunchTemplateEnclaveOptionsRequest\");\nvar se_LaunchTemplateHibernationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Conf] != null) {\n entries[_Conf] = input[_Conf];\n }\n return entries;\n}, \"se_LaunchTemplateHibernationOptionsRequest\");\nvar se_LaunchTemplateIamInstanceProfileSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_LaunchTemplateIamInstanceProfileSpecificationRequest\");\nvar se_LaunchTemplateIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateIdStringList\");\nvar se_LaunchTemplateInstanceMaintenanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ARu] != null) {\n entries[_ARu] = input[_ARu];\n }\n return entries;\n}, \"se_LaunchTemplateInstanceMaintenanceOptionsRequest\");\nvar se_LaunchTemplateInstanceMarketOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MT] != null) {\n entries[_MT] = input[_MT];\n }\n if (input[_SO] != null) {\n const memberEntries = se_LaunchTemplateSpotMarketOptionsRequest(input[_SO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateInstanceMarketOptionsRequest\");\nvar se_LaunchTemplateInstanceMetadataOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_HPI] != null) {\n entries[_HPI] = input[_HPI];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n return entries;\n}, \"se_LaunchTemplateInstanceMetadataOptionsRequest\");\nvar se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ACIA] != null) {\n entries[_ACIA] = input[_ACIA];\n }\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITn] != null) {\n entries[_ITn] = input[_ITn];\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressListRequest(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressSpecificationList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_NCI] != null) {\n entries[_NCI] = input[_NCI];\n }\n if (input[_IPp] != null) {\n const memberEntries = se_Ipv4PrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_IP] != null) {\n const memberEntries = se_Ipv6PrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_PIr] != null) {\n entries[_PIr] = input[_PIr];\n }\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecificationRequest(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n return entries;\n}, \"se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequest\");\nvar se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`InstanceNetworkInterfaceSpecification.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList\");\nvar se_LaunchTemplateLicenseConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LCA] != null) {\n entries[_LCA] = input[_LCA];\n }\n return entries;\n}, \"se_LaunchTemplateLicenseConfigurationRequest\");\nvar se_LaunchTemplateLicenseSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateLicenseConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateLicenseSpecificationListRequest\");\nvar se_LaunchTemplateNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateNameStringList\");\nvar se_LaunchTemplateNetworkPerformanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BW] != null) {\n entries[_BW] = input[_BW];\n }\n return entries;\n}, \"se_LaunchTemplateNetworkPerformanceOptionsRequest\");\nvar se_LaunchTemplateOverrides = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_WCe] != null) {\n entries[_WCe] = (0, import_smithy_client.serializeFloat)(input[_WCe]);\n }\n if (input[_Pri] != null) {\n entries[_Pri] = (0, import_smithy_client.serializeFloat)(input[_Pri]);\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirements(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateOverrides\");\nvar se_LaunchTemplateOverridesList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateOverrides(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateOverridesList\");\nvar se_LaunchTemplatePlacementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_Af] != null) {\n entries[_Af] = input[_Af];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_HIo] != null) {\n entries[_HIo] = input[_HIo];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_SDp] != null) {\n entries[_SDp] = input[_SDp];\n }\n if (input[_HRGA] != null) {\n entries[_HRGA] = input[_HRGA];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n return entries;\n}, \"se_LaunchTemplatePlacementRequest\");\nvar se_LaunchTemplatePrivateDnsNameOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HTo] != null) {\n entries[_HTo] = input[_HTo];\n }\n if (input[_ERNDAR] != null) {\n entries[_ERNDAR] = input[_ERNDAR];\n }\n if (input[_ERNDAAAAR] != null) {\n entries[_ERNDAAAAR] = input[_ERNDAAAAR];\n }\n return entries;\n}, \"se_LaunchTemplatePrivateDnsNameOptionsRequest\");\nvar se_LaunchTemplatesMonitoringRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_LaunchTemplatesMonitoringRequest\");\nvar se_LaunchTemplateSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_LaunchTemplateSpecification\");\nvar se_LaunchTemplateSpotMarketOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MPa] != null) {\n entries[_MPa] = input[_MPa];\n }\n if (input[_SIT] != null) {\n entries[_SIT] = input[_SIT];\n }\n if (input[_BDMl] != null) {\n entries[_BDMl] = input[_BDMl];\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n return entries;\n}, \"se_LaunchTemplateSpotMarketOptionsRequest\");\nvar se_LaunchTemplateTagSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateTagSpecificationRequest\");\nvar se_LaunchTemplateTagSpecificationRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateTagSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`LaunchTemplateTagSpecificationRequest.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateTagSpecificationRequestList\");\nvar se_LicenseConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LCA] != null) {\n entries[_LCA] = input[_LCA];\n }\n return entries;\n}, \"se_LicenseConfigurationRequest\");\nvar se_LicenseSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LicenseConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LicenseSpecificationListRequest\");\nvar se_ListImagesInRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IImag] != null) {\n const memberEntries = se_ImageIdStringList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ListImagesInRecycleBinRequest\");\nvar se_ListSnapshotsInRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SIna] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SIna], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ListSnapshotsInRecycleBinRequest\");\nvar se_LoadBalancersConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CLBC] != null) {\n const memberEntries = se_ClassicLoadBalancersConfig(input[_CLBC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClassicLoadBalancersConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TGC] != null) {\n const memberEntries = se_TargetGroupsConfig(input[_TGC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroupsConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LoadBalancersConfig\");\nvar se_LoadPermissionListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LoadPermissionRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LoadPermissionListRequest\");\nvar se_LoadPermissionModifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Add] != null) {\n const memberEntries = se_LoadPermissionListRequest(input[_Add], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Add.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Rem] != null) {\n const memberEntries = se_LoadPermissionListRequest(input[_Rem], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Remove.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LoadPermissionModifications\");\nvar se_LoadPermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Gr] != null) {\n entries[_Gr] = input[_Gr];\n }\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n return entries;\n}, \"se_LoadPermissionRequest\");\nvar se_LocalGatewayIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayIdSet\");\nvar se_LocalGatewayRouteTableIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayRouteTableIdSet\");\nvar se_LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet\");\nvar se_LocalGatewayRouteTableVpcAssociationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayRouteTableVpcAssociationIdSet\");\nvar se_LocalGatewayVirtualInterfaceGroupIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayVirtualInterfaceGroupIdSet\");\nvar se_LocalGatewayVirtualInterfaceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayVirtualInterfaceIdSet\");\nvar se_LocalStorageTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalStorageTypeSet\");\nvar se_LockSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LM] != null) {\n entries[_LM] = input[_LM];\n }\n if (input[_COP] != null) {\n entries[_COP] = input[_COP];\n }\n if (input[_LDo] != null) {\n entries[_LDo] = input[_LDo];\n }\n if (input[_EDx] != null) {\n entries[_EDx] = (0, import_smithy_client.serializeDateTime)(input[_EDx]);\n }\n return entries;\n}, \"se_LockSnapshotRequest\");\nvar se_MemoryGiBPerVCpu = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_MemoryGiBPerVCpu\");\nvar se_MemoryGiBPerVCpuRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_MemoryGiBPerVCpuRequest\");\nvar se_MemoryMiB = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_MemoryMiB\");\nvar se_MemoryMiBRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_MemoryMiBRequest\");\nvar se_ModifyAddressAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_DNo] != null) {\n entries[_DNo] = input[_DNo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyAddressAttributeRequest\");\nvar se_ModifyAvailabilityZoneGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_OIS] != null) {\n entries[_OIS] = input[_OIS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyAvailabilityZoneGroupRequest\");\nvar se_ModifyCapacityReservationFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRFIa] != null) {\n entries[_CRFIa] = input[_CRFIa];\n }\n if (input[_TTC] != null) {\n entries[_TTC] = input[_TTC];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RED] != null) {\n entries[_RED] = input[_RED];\n }\n return entries;\n}, \"se_ModifyCapacityReservationFleetRequest\");\nvar se_ModifyCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_EDT] != null) {\n entries[_EDT] = input[_EDT];\n }\n if (input[_Ac] != null) {\n entries[_Ac] = input[_Ac];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_IMC] != null) {\n entries[_IMC] = input[_IMC];\n }\n return entries;\n}, \"se_ModifyCapacityReservationRequest\");\nvar se_ModifyClientVpnEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_SCA] != null) {\n entries[_SCA] = input[_SCA];\n }\n if (input[_CLO] != null) {\n const memberEntries = se_ConnectionLogOptions(input[_CLO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionLogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DSn] != null) {\n const memberEntries = se_DnsServersOptionsModifyStructure(input[_DSn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsServers.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VP] != null) {\n entries[_VP] = input[_VP];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ClientVpnSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SSP] != null) {\n entries[_SSP] = input[_SSP];\n }\n if (input[_CCO] != null) {\n const memberEntries = se_ClientConnectOptions(input[_CCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientConnectOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_STH] != null) {\n entries[_STH] = input[_STH];\n }\n if (input[_CLBO] != null) {\n const memberEntries = se_ClientLoginBannerOptions(input[_CLBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientLoginBannerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CREO] != null) {\n const memberEntries = se_ClientRouteEnforcementOptions(input[_CREO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientRouteEnforcementOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOST] != null) {\n entries[_DOST] = input[_DOST];\n }\n return entries;\n}, \"se_ModifyClientVpnEndpointRequest\");\nvar se_ModifyDefaultCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n if (input[_CCp] != null) {\n entries[_CCp] = input[_CCp];\n }\n return entries;\n}, \"se_ModifyDefaultCreditSpecificationRequest\");\nvar se_ModifyEbsDefaultKmsKeyIdRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyEbsDefaultKmsKeyIdRequest\");\nvar se_ModifyFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n if (input[_LTC] != null) {\n const memberEntries = se_FleetLaunchTemplateConfigListRequest(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfig.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FIl] != null) {\n entries[_FIl] = input[_FIl];\n }\n if (input[_TCS] != null) {\n const memberEntries = se_TargetCapacitySpecificationRequest(input[_TCS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetCapacitySpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n return entries;\n}, \"se_ModifyFleetRequest\");\nvar se_ModifyFpgaImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_OTp] != null) {\n entries[_OTp] = input[_OTp];\n }\n if (input[_UIse] != null) {\n const memberEntries = se_UserIdStringList(input[_UIse], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UG] != null) {\n const memberEntries = se_UserGroupStringList(input[_UG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PCr] != null) {\n const memberEntries = se_ProductCodeStringList(input[_PCr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProductCode.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LP] != null) {\n const memberEntries = se_LoadPermissionModifications(input[_LP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadPermission.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_ModifyFpgaImageAttributeRequest\");\nvar se_ModifyHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HR] != null) {\n entries[_HR] = input[_HR];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n if (input[_HM] != null) {\n entries[_HM] = input[_HM];\n }\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AP] != null) {\n entries[_AP] = input[_AP];\n }\n return entries;\n}, \"se_ModifyHostsRequest\");\nvar se_ModifyIdentityIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n if (input[_ULI] != null) {\n entries[_ULI] = input[_ULI];\n }\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n return entries;\n}, \"se_ModifyIdentityIdFormatRequest\");\nvar se_ModifyIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n if (input[_ULI] != null) {\n entries[_ULI] = input[_ULI];\n }\n return entries;\n}, \"se_ModifyIdFormatRequest\");\nvar se_ModifyImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_De] != null) {\n const memberEntries = se_AttributeValue(input[_De], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Description.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_LPa] != null) {\n const memberEntries = se_LaunchPermissionModifications(input[_LPa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchPermission.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OTp] != null) {\n entries[_OTp] = input[_OTp];\n }\n if (input[_PCr] != null) {\n const memberEntries = se_ProductCodeStringList(input[_PCr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProductCode.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UG] != null) {\n const memberEntries = se_UserGroupStringList(input[_UG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UIse] != null) {\n const memberEntries = se_UserIdStringList(input[_UIse], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n if (input[_OArg] != null) {\n const memberEntries = se_OrganizationArnStringList(input[_OArg], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OrganizationArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OUAr] != null) {\n const memberEntries = se_OrganizationalUnitArnStringList(input[_OUAr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OrganizationalUnitArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ISm] != null) {\n const memberEntries = se_AttributeValue(input[_ISm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImdsSupport.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyImageAttributeRequest\");\nvar se_ModifyInstanceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SDC] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_SDC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceDestCheck.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAS] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_DAS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisableApiStop.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_InstanceBlockDeviceMappingSpecificationList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DATis] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_DATis], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisableApiTermination.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IT] != null) {\n const memberEntries = se_AttributeValue(input[_IT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_K] != null) {\n const memberEntries = se_AttributeValue(input[_K], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Kernel.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ra] != null) {\n const memberEntries = se_AttributeValue(input[_Ra], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ramdisk.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_UD] != null) {\n const memberEntries = se_BlobAttributeValue(input[_UD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IISB] != null) {\n const memberEntries = se_AttributeValue(input[_IISB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceInitiatedShutdownBehavior.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_G] != null) {\n const memberEntries = se_GroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EbsOptimized.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SNS] != null) {\n const memberEntries = se_AttributeValue(input[_SNS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SriovNetSupport.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ESn] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ESn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSupport.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyInstanceAttributeRequest\");\nvar se_ModifyInstanceCapacityReservationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_CRSa] != null) {\n const memberEntries = se_CapacityReservationSpecification(input[_CRSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceCapacityReservationAttributesRequest\");\nvar se_ModifyInstanceCpuOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_TPC] != null) {\n entries[_TPC] = input[_TPC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceCpuOptionsRequest\");\nvar se_ModifyInstanceCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ICS] != null) {\n const memberEntries = se_InstanceCreditSpecificationListRequest(input[_ICS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceCreditSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyInstanceCreditSpecificationRequest\");\nvar se_ModifyInstanceEventStartTimeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_IEI] != null) {\n entries[_IEI] = input[_IEI];\n }\n if (input[_NB] != null) {\n entries[_NB] = (0, import_smithy_client.serializeDateTime)(input[_NB]);\n }\n return entries;\n}, \"se_ModifyInstanceEventStartTimeRequest\");\nvar se_ModifyInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n if (input[_TRi] != null) {\n const memberEntries = se_InstanceEventWindowTimeRangeRequestSet(input[_TRi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TimeRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CE] != null) {\n entries[_CE] = input[_CE];\n }\n return entries;\n}, \"se_ModifyInstanceEventWindowRequest\");\nvar se_ModifyInstanceMaintenanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_ARu] != null) {\n entries[_ARu] = input[_ARu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceMaintenanceOptionsRequest\");\nvar se_ModifyInstanceMetadataDefaultsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceMetadataDefaultsRequest\");\nvar se_ModifyInstanceMetadataOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_HPI] != null) {\n entries[_HPI] = input[_HPI];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n return entries;\n}, \"se_ModifyInstanceMetadataOptionsRequest\");\nvar se_ModifyInstanceNetworkPerformanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_BW] != null) {\n entries[_BW] = input[_BW];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceNetworkPerformanceRequest\");\nvar se_ModifyInstancePlacementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_HRGA] != null) {\n entries[_HRGA] = input[_HRGA];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_Af] != null) {\n entries[_Af] = input[_Af];\n }\n if (input[_HIo] != null) {\n entries[_HIo] = input[_HIo];\n }\n return entries;\n}, \"se_ModifyInstancePlacementRequest\");\nvar se_ModifyIpamPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AIu] != null) {\n entries[_AIu] = input[_AIu];\n }\n if (input[_AMNL] != null) {\n entries[_AMNL] = input[_AMNL];\n }\n if (input[_AMNLl] != null) {\n entries[_AMNLl] = input[_AMNLl];\n }\n if (input[_ADNL] != null) {\n entries[_ADNL] = input[_ADNL];\n }\n if (input[_CADNL] != null) {\n entries[_CADNL] = input[_CADNL];\n }\n if (input[_AART] != null) {\n const memberEntries = se_RequestIpamResourceTagList(input[_AART], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddAllocationResourceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RART] != null) {\n const memberEntries = se_RequestIpamResourceTagList(input[_RART], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveAllocationResourceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyIpamPoolRequest\");\nvar se_ModifyIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AOR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_AOR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ROR] != null) {\n const memberEntries = se_RemoveIpamOperatingRegionSet(input[_ROR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ti] != null) {\n entries[_Ti] = input[_Ti];\n }\n if (input[_EPG] != null) {\n entries[_EPG] = input[_EPG];\n }\n if (input[_MAe] != null) {\n entries[_MAe] = input[_MAe];\n }\n return entries;\n}, \"se_ModifyIpamRequest\");\nvar se_ModifyIpamResourceCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIeso] != null) {\n entries[_RIeso] = input[_RIeso];\n }\n if (input[_RC] != null) {\n entries[_RC] = input[_RC];\n }\n if (input[_RRe] != null) {\n entries[_RRe] = input[_RRe];\n }\n if (input[_CISI] != null) {\n entries[_CISI] = input[_CISI];\n }\n if (input[_DISI] != null) {\n entries[_DISI] = input[_DISI];\n }\n if (input[_Moni] != null) {\n entries[_Moni] = input[_Moni];\n }\n return entries;\n}, \"se_ModifyIpamResourceCidrRequest\");\nvar se_ModifyIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AOR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_AOR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ROR] != null) {\n const memberEntries = se_RemoveIpamOperatingRegionSet(input[_ROR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AOUE] != null) {\n const memberEntries = se_AddIpamOrganizationalUnitExclusionSet(input[_AOUE], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddOrganizationalUnitExclusion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ROUE] != null) {\n const memberEntries = se_RemoveIpamOrganizationalUnitExclusionSet(input[_ROUE], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveOrganizationalUnitExclusion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyIpamResourceDiscoveryRequest\");\nvar se_ModifyIpamScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_ModifyIpamScopeRequest\");\nvar se_ModifyLaunchTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_DVef] != null) {\n entries[_SDV] = input[_DVef];\n }\n return entries;\n}, \"se_ModifyLaunchTemplateRequest\");\nvar se_ModifyLocalGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n return entries;\n}, \"se_ModifyLocalGatewayRouteRequest\");\nvar se_ModifyManagedPrefixListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_CVu] != null) {\n entries[_CVu] = input[_CVu];\n }\n if (input[_PLN] != null) {\n entries[_PLN] = input[_PLN];\n }\n if (input[_AEd] != null) {\n const memberEntries = se_AddPrefixListEntries(input[_AEd], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddEntry.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_REe] != null) {\n const memberEntries = se_RemovePrefixListEntries(input[_REe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveEntry.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ME] != null) {\n entries[_ME] = input[_ME];\n }\n return entries;\n}, \"se_ModifyManagedPrefixListRequest\");\nvar se_ModifyNetworkInterfaceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecification(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EPI] != null) {\n entries[_EPI] = input[_EPI];\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_De] != null) {\n const memberEntries = se_AttributeValue(input[_De], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Description.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SDC] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_SDC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceDestCheck.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Att] != null) {\n const memberEntries = se_NetworkInterfaceAttachmentChanges(input[_Att], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attachment.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyNetworkInterfaceAttributeRequest\");\nvar se_ModifyPrivateDnsNameOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_PDHT] != null) {\n entries[_PDHT] = input[_PDHT];\n }\n if (input[_ERNDAR] != null) {\n entries[_ERNDAR] = input[_ERNDAR];\n }\n if (input[_ERNDAAAAR] != null) {\n entries[_ERNDAAAAR] = input[_ERNDAAAAR];\n }\n return entries;\n}, \"se_ModifyPrivateDnsNameOptionsRequest\");\nvar se_ModifyReservedInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIIes] != null) {\n const memberEntries = se_ReservedInstancesIdStringList(input[_RIIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TC] != null) {\n const memberEntries = se_ReservedInstancesConfigurationList(input[_TC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesConfigurationSetItemType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyReservedInstancesRequest\");\nvar se_ModifyRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_PRe] != null) {\n entries[_PRe] = input[_PRe];\n }\n if (input[_PRD] != null) {\n entries[_PRD] = input[_PRD];\n }\n if (input[_SNE] != null) {\n entries[_SNE] = input[_SNE];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyRouteServerRequest\");\nvar se_ModifySecurityGroupRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_SGR] != null) {\n const memberEntries = se_SecurityGroupRuleUpdateList(input[_SGR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRule.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifySecurityGroupRulesRequest\");\nvar se_ModifySnapshotAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_CVP] != null) {\n const memberEntries = se_CreateVolumePermissionModifications(input[_CVP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CreateVolumePermission.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_GNr] != null) {\n const memberEntries = se_GroupNameStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OTp] != null) {\n entries[_OTp] = input[_OTp];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_UIse] != null) {\n const memberEntries = se_UserIdStringList(input[_UIse], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifySnapshotAttributeRequest\");\nvar se_ModifySnapshotTierRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_STto] != null) {\n entries[_STto] = input[_STto];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifySnapshotTierRequest\");\nvar se_ModifySpotFleetRequestRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTC] != null) {\n const memberEntries = se_LaunchTemplateConfigList(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfig.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ODTC] != null) {\n entries[_ODTC] = input[_ODTC];\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n if (input[_SFRIp] != null) {\n entries[_SFRIp] = input[_SFRIp];\n }\n if (input[_TCa] != null) {\n entries[_TCa] = input[_TCa];\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n return entries;\n}, \"se_ModifySpotFleetRequestRequest\");\nvar se_ModifySubnetAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIAOC] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_AIAOC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssignIpv6AddressOnCreation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MPIOL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_MPIOL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MapPublicIpOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_MCOIOL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_MCOIOL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MapCustomerOwnedIpOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_COIP] != null) {\n entries[_COIP] = input[_COIP];\n }\n if (input[_EDn] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EDn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableDns64.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHTOL] != null) {\n entries[_PDHTOL] = input[_PDHTOL];\n }\n if (input[_ERNDAROL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ERNDAROL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableResourceNameDnsARecordOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ERNDAAAAROL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ERNDAAAAROL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableResourceNameDnsAAAARecordOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ELADI] != null) {\n entries[_ELADI] = input[_ELADI];\n }\n if (input[_DLADI] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_DLADI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisableLniAtDeviceIndex.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifySubnetAttributeRequest\");\nvar se_ModifyTrafficMirrorFilterNetworkServicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_ANS] != null) {\n const memberEntries = se_TrafficMirrorNetworkServiceList(input[_ANS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddNetworkService.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RNS] != null) {\n const memberEntries = se_TrafficMirrorNetworkServiceList(input[_RNS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveNetworkService.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTrafficMirrorFilterNetworkServicesRequest\");\nvar se_ModifyTrafficMirrorFilterRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFRI] != null) {\n entries[_TMFRI] = input[_TMFRI];\n }\n if (input[_TD] != null) {\n entries[_TD] = input[_TD];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_DPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_DPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_SPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_SCB] != null) {\n entries[_SCB] = input[_SCB];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_RF] != null) {\n const memberEntries = se_TrafficMirrorFilterRuleFieldList(input[_RF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveField.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTrafficMirrorFilterRuleRequest\");\nvar se_ModifyTrafficMirrorSessionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMSI] != null) {\n entries[_TMSI] = input[_TMSI];\n }\n if (input[_TMTI] != null) {\n entries[_TMTI] = input[_TMTI];\n }\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_PL] != null) {\n entries[_PL] = input[_PL];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_VNI] != null) {\n entries[_VNI] = input[_VNI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_RF] != null) {\n const memberEntries = se_TrafficMirrorSessionFieldList(input[_RF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveField.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTrafficMirrorSessionRequest\");\nvar se_ModifyTransitGatewayOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ATGCB] != null) {\n const memberEntries = se_TransitGatewayCidrBlockStringList(input[_ATGCB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddTransitGatewayCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RTGCB] != null) {\n const memberEntries = se_TransitGatewayCidrBlockStringList(input[_RTGCB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveTransitGatewayCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VES] != null) {\n entries[_VES] = input[_VES];\n }\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_AASAu] != null) {\n entries[_AASAu] = input[_AASAu];\n }\n if (input[_DRTA] != null) {\n entries[_DRTA] = input[_DRTA];\n }\n if (input[_ADRTI] != null) {\n entries[_ADRTI] = input[_ADRTI];\n }\n if (input[_DRTP] != null) {\n entries[_DRTP] = input[_DRTP];\n }\n if (input[_PDRTI] != null) {\n entries[_PDRTI] = input[_PDRTI];\n }\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n return entries;\n}, \"se_ModifyTransitGatewayOptions\");\nvar se_ModifyTransitGatewayPrefixListReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTransitGatewayPrefixListReferenceRequest\");\nvar se_ModifyTransitGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Op] != null) {\n const memberEntries = se_ModifyTransitGatewayOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTransitGatewayRequest\");\nvar se_ModifyTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_ASI] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_ASI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSIe] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_RSIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Op] != null) {\n const memberEntries = se_ModifyTransitGatewayVpcAttachmentRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTransitGatewayVpcAttachmentRequest\");\nvar se_ModifyTransitGatewayVpcAttachmentRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_ISp] != null) {\n entries[_ISp] = input[_ISp];\n }\n if (input[_AMS] != null) {\n entries[_AMS] = input[_AMS];\n }\n return entries;\n}, \"se_ModifyTransitGatewayVpcAttachmentRequestOptions\");\nvar se_ModifyVerifiedAccessEndpointCidrOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PRo] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointCidrOptions\");\nvar se_ModifyVerifiedAccessEndpointEniOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointEniOptions\");\nvar se_ModifyVerifiedAccessEndpointLoadBalancerOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIu] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointLoadBalancerOptions\");\nvar se_ModifyVerifiedAccessEndpointPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_PE] != null) {\n entries[_PE] = input[_PE];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointPolicyRequest\");\nvar se_ModifyVerifiedAccessEndpointPortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointPortRange\");\nvar se_ModifyVerifiedAccessEndpointPortRangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRange(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointPortRangeList\");\nvar se_ModifyVerifiedAccessEndpointRdsOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIu] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_RE] != null) {\n entries[_RE] = input[_RE];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointRdsOptions\");\nvar se_ModifyVerifiedAccessEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_LBO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointLoadBalancerOptions(input[_LBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NIO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointEniOptions(input[_NIO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointRdsOptions(input[_RO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RdsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointCidrOptions(input[_CO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointRequest\");\nvar se_ModifyVerifiedAccessEndpointSubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointSubnetIdList\");\nvar se_ModifyVerifiedAccessGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_PE] != null) {\n entries[_PE] = input[_PE];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessGroupPolicyRequest\");\nvar se_ModifyVerifiedAccessGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessGroupRequest\");\nvar se_ModifyVerifiedAccessInstanceLoggingConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_AL] != null) {\n const memberEntries = se_VerifiedAccessLogOptions(input[_AL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AccessLogs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessInstanceLoggingConfigurationRequest\");\nvar se_ModifyVerifiedAccessInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_CECSD] != null) {\n entries[_CECSD] = input[_CECSD];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessInstanceRequest\");\nvar se_ModifyVerifiedAccessNativeApplicationOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSKE] != null) {\n entries[_PSKE] = input[_PSKE];\n }\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessNativeApplicationOidcOptions\");\nvar se_ModifyVerifiedAccessTrustProviderDeviceOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSKU] != null) {\n entries[_PSKU] = input[_PSKU];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessTrustProviderDeviceOptions\");\nvar se_ModifyVerifiedAccessTrustProviderOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessTrustProviderOidcOptions\");\nvar se_ModifyVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_OO] != null) {\n const memberEntries = se_ModifyVerifiedAccessTrustProviderOidcOptions(input[_OO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOe] != null) {\n const memberEntries = se_ModifyVerifiedAccessTrustProviderDeviceOptions(input[_DOe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DeviceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NAOO] != null) {\n const memberEntries = se_ModifyVerifiedAccessNativeApplicationOidcOptions(input[_NAOO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NativeApplicationOidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessTrustProviderRequest\");\nvar se_ModifyVolumeAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AEIO] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_AEIO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AutoEnableIO.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVolumeAttributeRequest\");\nvar se_ModifyVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_Siz] != null) {\n entries[_Siz] = input[_Siz];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_MAE] != null) {\n entries[_MAE] = input[_MAE];\n }\n return entries;\n}, \"se_ModifyVolumeRequest\");\nvar se_ModifyVpcAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EDH] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EDH], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableDnsHostnames.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EDS] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EDS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableDnsSupport.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_ENAUM] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ENAUM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableNetworkAddressUsageMetrics.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcAttributeRequest\");\nvar se_ModifyVpcBlockPublicAccessExclusionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EIxc] != null) {\n entries[_EIxc] = input[_EIxc];\n }\n if (input[_IGEM] != null) {\n entries[_IGEM] = input[_IGEM];\n }\n return entries;\n}, \"se_ModifyVpcBlockPublicAccessExclusionRequest\");\nvar se_ModifyVpcBlockPublicAccessOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGBM] != null) {\n entries[_IGBM] = input[_IGBM];\n }\n return entries;\n}, \"se_ModifyVpcBlockPublicAccessOptionsRequest\");\nvar se_ModifyVpcEndpointConnectionNotificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CNIon] != null) {\n entries[_CNIon] = input[_CNIon];\n }\n if (input[_CNAon] != null) {\n entries[_CNAon] = input[_CNAon];\n }\n if (input[_CEo] != null) {\n const memberEntries = se_ValueStringList(input[_CEo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionEvents.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointConnectionNotificationRequest\");\nvar se_ModifyVpcEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_RP] != null) {\n entries[_RP] = input[_RP];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_ARTI] != null) {\n const memberEntries = se_VpcEndpointRouteTableIdList(input[_ARTI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddRouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RRTI] != null) {\n const memberEntries = se_VpcEndpointRouteTableIdList(input[_RRTI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveRouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASI] != null) {\n const memberEntries = se_VpcEndpointSubnetIdList(input[_ASI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSIe] != null) {\n const memberEntries = se_VpcEndpointSubnetIdList(input[_RSIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASGId] != null) {\n const memberEntries = se_VpcEndpointSecurityGroupIdList(input[_ASGId], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSGIe] != null) {\n const memberEntries = se_VpcEndpointSecurityGroupIdList(input[_RSGIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_DOn] != null) {\n const memberEntries = se_DnsOptionsSpecification(input[_DOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDE] != null) {\n entries[_PDE] = input[_PDE];\n }\n if (input[_SC] != null) {\n const memberEntries = se_SubnetConfigurationsList(input[_SC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointRequest\");\nvar se_ModifyVpcEndpointServiceConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_PDN] != null) {\n entries[_PDN] = input[_PDN];\n }\n if (input[_RPDN] != null) {\n entries[_RPDN] = input[_RPDN];\n }\n if (input[_ARc] != null) {\n entries[_ARc] = input[_ARc];\n }\n if (input[_ANLBA] != null) {\n const memberEntries = se_ValueStringList(input[_ANLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddNetworkLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RNLBA] != null) {\n const memberEntries = se_ValueStringList(input[_RNLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveNetworkLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AGLBA] != null) {\n const memberEntries = se_ValueStringList(input[_AGLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddGatewayLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RGLBA] != null) {\n const memberEntries = se_ValueStringList(input[_RGLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveGatewayLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASIAT] != null) {\n const memberEntries = se_ValueStringList(input[_ASIAT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSupportedIpAddressType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSIAT] != null) {\n const memberEntries = se_ValueStringList(input[_RSIAT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSupportedIpAddressType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASR] != null) {\n const memberEntries = se_ValueStringList(input[_ASR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSupportedRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSR] != null) {\n const memberEntries = se_ValueStringList(input[_RSR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSupportedRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointServiceConfigurationRequest\");\nvar se_ModifyVpcEndpointServicePayerResponsibilityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_PRa] != null) {\n entries[_PRa] = input[_PRa];\n }\n return entries;\n}, \"se_ModifyVpcEndpointServicePayerResponsibilityRequest\");\nvar se_ModifyVpcEndpointServicePermissionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_AAP] != null) {\n const memberEntries = se_ValueStringList(input[_AAP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddAllowedPrincipals.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RAP] != null) {\n const memberEntries = se_ValueStringList(input[_RAP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveAllowedPrincipals.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointServicePermissionsRequest\");\nvar se_ModifyVpcPeeringConnectionOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_APCO] != null) {\n const memberEntries = se_PeeringConnectionOptionsRequest(input[_APCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AccepterPeeringConnectionOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RPCO] != null) {\n const memberEntries = se_PeeringConnectionOptionsRequest(input[_RPCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RequesterPeeringConnectionOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_ModifyVpcPeeringConnectionOptionsRequest\");\nvar se_ModifyVpcTenancyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_ITns] != null) {\n entries[_ITns] = input[_ITns];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpcTenancyRequest\");\nvar se_ModifyVpnConnectionOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_LINC] != null) {\n entries[_LINC] = input[_LINC];\n }\n if (input[_RINC] != null) {\n entries[_RINC] = input[_RINC];\n }\n if (input[_LINCo] != null) {\n entries[_LINCo] = input[_LINCo];\n }\n if (input[_RINCe] != null) {\n entries[_RINCe] = input[_RINCe];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpnConnectionOptionsRequest\");\nvar se_ModifyVpnConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_CGIu] != null) {\n entries[_CGIu] = input[_CGIu];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpnConnectionRequest\");\nvar se_ModifyVpnTunnelCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpnTunnelCertificateRequest\");\nvar se_ModifyVpnTunnelOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_TO] != null) {\n const memberEntries = se_ModifyVpnTunnelOptionsSpecification(input[_TO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TunnelOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_STR] != null) {\n entries[_STR] = input[_STR];\n }\n return entries;\n}, \"se_ModifyVpnTunnelOptionsRequest\");\nvar se_ModifyVpnTunnelOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TIC] != null) {\n entries[_TIC] = input[_TIC];\n }\n if (input[_TIIC] != null) {\n entries[_TIIC] = input[_TIIC];\n }\n if (input[_PSK] != null) {\n entries[_PSK] = input[_PSK];\n }\n if (input[_PLS] != null) {\n entries[_PLS] = input[_PLS];\n }\n if (input[_PLSh] != null) {\n entries[_PLSh] = input[_PLSh];\n }\n if (input[_RMTS] != null) {\n entries[_RMTS] = input[_RMTS];\n }\n if (input[_RFP] != null) {\n entries[_RFP] = input[_RFP];\n }\n if (input[_RWS] != null) {\n entries[_RWS] = input[_RWS];\n }\n if (input[_DPDTS] != null) {\n entries[_DPDTS] = input[_DPDTS];\n }\n if (input[_DPDTA] != null) {\n entries[_DPDTA] = input[_DPDTA];\n }\n if (input[_PEA] != null) {\n const memberEntries = se_Phase1EncryptionAlgorithmsRequestList(input[_PEA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PEAh] != null) {\n const memberEntries = se_Phase2EncryptionAlgorithmsRequestList(input[_PEAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAh] != null) {\n const memberEntries = se_Phase1IntegrityAlgorithmsRequestList(input[_PIAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAha] != null) {\n const memberEntries = se_Phase2IntegrityAlgorithmsRequestList(input[_PIAha], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGN] != null) {\n const memberEntries = se_Phase1DHGroupNumbersRequestList(input[_PDHGN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGNh] != null) {\n const memberEntries = se_Phase2DHGroupNumbersRequestList(input[_PDHGNh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IKEVe] != null) {\n const memberEntries = se_IKEVersionsRequestList(input[_IKEVe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IKEVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SA] != null) {\n entries[_SA] = input[_SA];\n }\n if (input[_LO] != null) {\n const memberEntries = se_VpnTunnelLogOptionsSpecification(input[_LO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ETLC] != null) {\n entries[_ETLC] = input[_ETLC];\n }\n return entries;\n}, \"se_ModifyVpnTunnelOptionsSpecification\");\nvar se_MonitorInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_MonitorInstancesRequest\");\nvar se_MoveAddressToVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n return entries;\n}, \"se_MoveAddressToVpcRequest\");\nvar se_MoveByoipCidrToIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_IPO] != null) {\n entries[_IPO] = input[_IPO];\n }\n return entries;\n}, \"se_MoveByoipCidrToIpamRequest\");\nvar se_MoveCapacityReservationInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SCRI] != null) {\n entries[_SCRI] = input[_SCRI];\n }\n if (input[_DCRI] != null) {\n entries[_DCRI] = input[_DCRI];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n return entries;\n}, \"se_MoveCapacityReservationInstancesRequest\");\nvar se_NatGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NatGatewayIdStringList\");\nvar se_NetworkAclIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkAclIdStringList\");\nvar se_NetworkBandwidthGbps = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_NetworkBandwidthGbps\");\nvar se_NetworkBandwidthGbpsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_NetworkBandwidthGbpsRequest\");\nvar se_NetworkInsightsAccessScopeAnalysisIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsAccessScopeAnalysisIdList\");\nvar se_NetworkInsightsAccessScopeIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsAccessScopeIdList\");\nvar se_NetworkInsightsAnalysisIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsAnalysisIdList\");\nvar se_NetworkInsightsPathIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsPathIdList\");\nvar se_NetworkInterfaceAttachmentChanges = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DEQC] != null) {\n entries[_DEQC] = input[_DEQC];\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n if (input[_AIt] != null) {\n entries[_AIt] = input[_AIt];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n return entries;\n}, \"se_NetworkInterfaceAttachmentChanges\");\nvar se_NetworkInterfaceCount = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_NetworkInterfaceCount\");\nvar se_NetworkInterfaceCountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_NetworkInterfaceCountRequest\");\nvar se_NetworkInterfaceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInterfaceIdList\");\nvar se_NetworkInterfacePermissionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInterfacePermissionIdList\");\nvar se_NewDhcpConfiguration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Val] != null) {\n const memberEntries = se_ValueStringList(input[_Val], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Value.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_NewDhcpConfiguration\");\nvar se_NewDhcpConfigurationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_NewDhcpConfiguration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_NewDhcpConfigurationList\");\nvar se_OccurrenceDayRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`OccurenceDay.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OccurrenceDayRequestSet\");\nvar se_OnDemandOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_CRO] != null) {\n const memberEntries = se_CapacityReservationOptionsRequest(input[_CRO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SITi] != null) {\n entries[_SITi] = input[_SITi];\n }\n if (input[_SAZ] != null) {\n entries[_SAZ] = input[_SAZ];\n }\n if (input[_MTC] != null) {\n entries[_MTC] = input[_MTC];\n }\n if (input[_MTP] != null) {\n entries[_MTP] = input[_MTP];\n }\n return entries;\n}, \"se_OnDemandOptionsRequest\");\nvar se_OperatorRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Prin] != null) {\n entries[_Prin] = input[_Prin];\n }\n return entries;\n}, \"se_OperatorRequest\");\nvar se_OrganizationalUnitArnStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`OrganizationalUnitArn.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OrganizationalUnitArnStringList\");\nvar se_OrganizationArnStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`OrganizationArn.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OrganizationArnStringList\");\nvar se_OutpostLagIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OutpostLagIdSet\");\nvar se_OwnerStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Owner.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OwnerStringList\");\nvar se_PacketHeaderStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAo] != null) {\n const memberEntries = se_ValueStringList(input[_SAo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DAes] != null) {\n const memberEntries = se_ValueStringList(input[_DAes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPo] != null) {\n const memberEntries = se_ValueStringList(input[_SPo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePort.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DPes] != null) {\n const memberEntries = se_ValueStringList(input[_DPes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPort.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPL] != null) {\n const memberEntries = se_ValueStringList(input[_SPL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePrefixList.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DPLe] != null) {\n const memberEntries = se_ValueStringList(input[_DPLe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPrefixList.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pro] != null) {\n const memberEntries = se_ProtocolList(input[_Pro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Protocol.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PacketHeaderStatementRequest\");\nvar se_PathRequestFilter = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAou] != null) {\n entries[_SAou] = input[_SAou];\n }\n if (input[_SPR] != null) {\n const memberEntries = se_RequestFilterPortRange(input[_SPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAest] != null) {\n entries[_DAest] = input[_DAest];\n }\n if (input[_DPR] != null) {\n const memberEntries = se_RequestFilterPortRange(input[_DPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPortRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PathRequestFilter\");\nvar se_PathStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PHS] != null) {\n const memberEntries = se_PacketHeaderStatementRequest(input[_PHS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PacketHeaderStatement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RSe] != null) {\n const memberEntries = se_ResourceStatementRequest(input[_RSe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceStatement.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PathStatementRequest\");\nvar se_PeeringConnectionOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ADRFRV] != null) {\n entries[_ADRFRV] = input[_ADRFRV];\n }\n if (input[_AEFLCLTRV] != null) {\n entries[_AEFLCLTRV] = input[_AEFLCLTRV];\n }\n if (input[_AEFLVTRCL] != null) {\n entries[_AEFLVTRCL] = input[_AEFLVTRCL];\n }\n return entries;\n}, \"se_PeeringConnectionOptionsRequest\");\nvar se_PerformanceFactorReference = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n return entries;\n}, \"se_PerformanceFactorReference\");\nvar se_PerformanceFactorReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n return entries;\n}, \"se_PerformanceFactorReferenceRequest\");\nvar se_PerformanceFactorReferenceSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PerformanceFactorReference(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PerformanceFactorReferenceSet\");\nvar se_PerformanceFactorReferenceSetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PerformanceFactorReferenceRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PerformanceFactorReferenceSetRequest\");\nvar se_Phase1DHGroupNumbersRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase1DHGroupNumbersRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase1DHGroupNumbersRequestList\");\nvar se_Phase1DHGroupNumbersRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase1DHGroupNumbersRequestListValue\");\nvar se_Phase1EncryptionAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase1EncryptionAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase1EncryptionAlgorithmsRequestList\");\nvar se_Phase1EncryptionAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase1EncryptionAlgorithmsRequestListValue\");\nvar se_Phase1IntegrityAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase1IntegrityAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase1IntegrityAlgorithmsRequestList\");\nvar se_Phase1IntegrityAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase1IntegrityAlgorithmsRequestListValue\");\nvar se_Phase2DHGroupNumbersRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase2DHGroupNumbersRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase2DHGroupNumbersRequestList\");\nvar se_Phase2DHGroupNumbersRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase2DHGroupNumbersRequestListValue\");\nvar se_Phase2EncryptionAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase2EncryptionAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase2EncryptionAlgorithmsRequestList\");\nvar se_Phase2EncryptionAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase2EncryptionAlgorithmsRequestListValue\");\nvar se_Phase2IntegrityAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase2IntegrityAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase2IntegrityAlgorithmsRequestList\");\nvar se_Phase2IntegrityAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase2IntegrityAlgorithmsRequestListValue\");\nvar se_Placement = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Af] != null) {\n entries[_Af] = input[_Af];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_HIo] != null) {\n entries[_HIo] = input[_HIo];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_SDp] != null) {\n entries[_SDp] = input[_SDp];\n }\n if (input[_HRGA] != null) {\n entries[_HRGA] = input[_HRGA];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n return entries;\n}, \"se_Placement\");\nvar se_PlacementGroupIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`GroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PlacementGroupIdStringList\");\nvar se_PlacementGroupStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PlacementGroupStringList\");\nvar se_PortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fr] != null) {\n entries[_Fr] = input[_Fr];\n }\n if (input[_To] != null) {\n entries[_To] = input[_To];\n }\n return entries;\n}, \"se_PortRange\");\nvar se_PrefixListId = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n return entries;\n}, \"se_PrefixListId\");\nvar se_PrefixListIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PrefixListId(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PrefixListIdList\");\nvar se_PrefixListResourceIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PrefixListResourceIdStringList\");\nvar se_PriceScheduleSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ter] != null) {\n entries[_Ter] = input[_Ter];\n }\n if (input[_Pric] != null) {\n entries[_Pric] = (0, import_smithy_client.serializeFloat)(input[_Pric]);\n }\n if (input[_CCu] != null) {\n entries[_CCu] = input[_CCu];\n }\n return entries;\n}, \"se_PriceScheduleSpecification\");\nvar se_PriceScheduleSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PriceScheduleSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PriceScheduleSpecificationList\");\nvar se_PrivateDnsNameOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HTo] != null) {\n entries[_HTo] = input[_HTo];\n }\n if (input[_ERNDAR] != null) {\n entries[_ERNDAR] = input[_ERNDAR];\n }\n if (input[_ERNDAAAAR] != null) {\n entries[_ERNDAAAAR] = input[_ERNDAAAAR];\n }\n return entries;\n}, \"se_PrivateDnsNameOptionsRequest\");\nvar se_PrivateIpAddressConfigSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesPrivateIpAddressConfig(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`PrivateIpAddressConfigSet.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PrivateIpAddressConfigSet\");\nvar se_PrivateIpAddressSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Prim] != null) {\n entries[_Prim] = input[_Prim];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n return entries;\n}, \"se_PrivateIpAddressSpecification\");\nvar se_PrivateIpAddressSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PrivateIpAddressSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PrivateIpAddressSpecificationList\");\nvar se_PrivateIpAddressStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`PrivateIpAddress.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PrivateIpAddressStringList\");\nvar se_ProductCodeStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ProductCode.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ProductCodeStringList\");\nvar se_ProductDescriptionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ProductDescriptionList\");\nvar se_ProtocolList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ProtocolList\");\nvar se_ProvisionByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CAC] != null) {\n const memberEntries = se_CidrAuthorizationContext(input[_CAC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrAuthorizationContext.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PTS] != null) {\n const memberEntries = se_TagSpecificationList(input[_PTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolTagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MRu] != null) {\n entries[_MRu] = input[_MRu];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_ProvisionByoipCidrRequest\");\nvar se_ProvisionIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_AAC] != null) {\n const memberEntries = se_AsnAuthorizationContext(input[_AAC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AsnAuthorizationContext.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ProvisionIpamByoasnRequest\");\nvar se_ProvisionIpamPoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CAC] != null) {\n const memberEntries = se_IpamCidrAuthorizationContext(input[_CAC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrAuthorizationContext.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NL] != null) {\n entries[_NL] = input[_NL];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_VM] != null) {\n entries[_VM] = input[_VM];\n }\n if (input[_IERVTI] != null) {\n entries[_IERVTI] = input[_IERVTI];\n }\n return entries;\n}, \"se_ProvisionIpamPoolCidrRequest\");\nvar se_ProvisionPublicIpv4PoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_NL] != null) {\n entries[_NL] = input[_NL];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_ProvisionPublicIpv4PoolCidrRequest\");\nvar se_PublicIpStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`PublicIp.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PublicIpStringList\");\nvar se_PublicIpv4PoolIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PublicIpv4PoolIdStringList\");\nvar se_PurchaseCapacityBlockExtensionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CBEOI] != null) {\n entries[_CBEOI] = input[_CBEOI];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_PurchaseCapacityBlockExtensionRequest\");\nvar se_PurchaseCapacityBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CBOI] != null) {\n entries[_CBOI] = input[_CBOI];\n }\n if (input[_IPn] != null) {\n entries[_IPn] = input[_IPn];\n }\n return entries;\n}, \"se_PurchaseCapacityBlockRequest\");\nvar se_PurchaseHostReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_CCu] != null) {\n entries[_CCu] = input[_CCu];\n }\n if (input[_HIS] != null) {\n const memberEntries = se_RequestHostIdSet(input[_HIS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostIdSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LPi] != null) {\n entries[_LPi] = input[_LPi];\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PurchaseHostReservationRequest\");\nvar se_PurchaseRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_PT] != null) {\n entries[_PT] = input[_PT];\n }\n return entries;\n}, \"se_PurchaseRequest\");\nvar se_PurchaseRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PurchaseRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`PurchaseRequest.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PurchaseRequestSet\");\nvar se_PurchaseReservedInstancesOfferingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_RIOIe] != null) {\n entries[_RIOIe] = input[_RIOIe];\n }\n if (input[_PTu] != null) {\n entries[_PTu] = (0, import_smithy_client.serializeDateTime)(input[_PTu]);\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LPi] != null) {\n const memberEntries = se_ReservedInstanceLimitPrice(input[_LPi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LimitPrice.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PurchaseReservedInstancesOfferingRequest\");\nvar se_PurchaseScheduledInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PRu] != null) {\n const memberEntries = se_PurchaseRequestSet(input[_PRu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PurchaseRequest.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PurchaseScheduledInstancesRequest\");\nvar se_ReasonCodesList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReasonCodesList\");\nvar se_RebootInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RebootInstancesRequest\");\nvar se_RegionNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RegionNames\");\nvar se_RegionNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`RegionName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RegionNameStringList\");\nvar se_RegisterImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IL] != null) {\n entries[_IL] = input[_IL];\n }\n if (input[_BPi] != null) {\n const memberEntries = se_BillingProductList(input[_BPi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BillingProduct.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_BM] != null) {\n entries[_BM] = input[_BM];\n }\n if (input[_TSp] != null) {\n entries[_TSp] = input[_TSp];\n }\n if (input[_UDe] != null) {\n entries[_UDe] = input[_UDe];\n }\n if (input[_ISm] != null) {\n entries[_ISm] = input[_ISm];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Arc] != null) {\n entries[_Arc] = input[_Arc];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_RDN] != null) {\n entries[_RDN] = input[_RDN];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VTir] != null) {\n entries[_VTir] = input[_VTir];\n }\n if (input[_SNS] != null) {\n entries[_SNS] = input[_SNS];\n }\n if (input[_ESn] != null) {\n entries[_ESn] = input[_ESn];\n }\n return entries;\n}, \"se_RegisterImageRequest\");\nvar se_RegisterInstanceEventNotificationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITA] != null) {\n const memberEntries = se_RegisterInstanceTagAttributeRequest(input[_ITA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagAttribute.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RegisterInstanceEventNotificationAttributesRequest\");\nvar se_RegisterInstanceTagAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IATOI] != null) {\n entries[_IATOI] = input[_IATOI];\n }\n if (input[_ITK] != null) {\n const memberEntries = se_InstanceTagKeySet(input[_ITK], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagKey.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RegisterInstanceTagAttributeRequest\");\nvar se_RegisterTransitGatewayMulticastGroupMembersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RegisterTransitGatewayMulticastGroupMembersRequest\");\nvar se_RegisterTransitGatewayMulticastGroupSourcesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RegisterTransitGatewayMulticastGroupSourcesRequest\");\nvar se_RejectCapacityReservationBillingOwnershipRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n return entries;\n}, \"se_RejectCapacityReservationBillingOwnershipRequest\");\nvar se_RejectTransitGatewayMulticastDomainAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_ValueStringList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RejectTransitGatewayMulticastDomainAssociationsRequest\");\nvar se_RejectTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RejectTransitGatewayPeeringAttachmentRequest\");\nvar se_RejectTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RejectTransitGatewayVpcAttachmentRequest\");\nvar se_RejectVpcEndpointConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RejectVpcEndpointConnectionsRequest\");\nvar se_RejectVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_RejectVpcPeeringConnectionRequest\");\nvar se_ReleaseAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReleaseAddressRequest\");\nvar se_ReleaseHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ReleaseHostsRequest\");\nvar se_ReleaseIpamPoolAllocationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_IPAI] != null) {\n entries[_IPAI] = input[_IPAI];\n }\n return entries;\n}, \"se_ReleaseIpamPoolAllocationRequest\");\nvar se_RemoveIpamOperatingRegion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_RemoveIpamOperatingRegion\");\nvar se_RemoveIpamOperatingRegionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RemoveIpamOperatingRegion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RemoveIpamOperatingRegionSet\");\nvar se_RemoveIpamOrganizationalUnitExclusion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OEP] != null) {\n entries[_OEP] = input[_OEP];\n }\n return entries;\n}, \"se_RemoveIpamOrganizationalUnitExclusion\");\nvar se_RemoveIpamOrganizationalUnitExclusionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RemoveIpamOrganizationalUnitExclusion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RemoveIpamOrganizationalUnitExclusionSet\");\nvar se_RemovePrefixListEntries = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RemovePrefixListEntry(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RemovePrefixListEntries\");\nvar se_RemovePrefixListEntry = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_RemovePrefixListEntry\");\nvar se_ReplaceIamInstanceProfileAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_ReplaceIamInstanceProfileAssociationRequest\");\nvar se_ReplaceImageCriteriaInAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ICm] != null) {\n const memberEntries = se_ImageCriterionRequestList(input[_ICm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageCriterion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReplaceImageCriteriaInAllowedImagesSettingsRequest\");\nvar se_ReplaceNetworkAclAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n return entries;\n}, \"se_ReplaceNetworkAclAssociationRequest\");\nvar se_ReplaceNetworkAclEntryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Eg] != null) {\n entries[_Eg] = input[_Eg];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_ITC] != null) {\n const memberEntries = se_IcmpTypeCode(input[_ITC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Icmp.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PR] != null) {\n const memberEntries = se_PortRange(input[_PR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ReplaceNetworkAclEntryRequest\");\nvar se_ReplaceRootVolumeTaskIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReplaceRootVolumeTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReplaceRootVolumeTaskIds\");\nvar se_ReplaceRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_LTo] != null) {\n entries[_LTo] = input[_LTo];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_CGI] != null) {\n entries[_CGI] = input[_CGI];\n }\n if (input[_CNAo] != null) {\n entries[_CNAo] = input[_CNAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_DICB] != null) {\n entries[_DICB] = input[_DICB];\n }\n if (input[_EOIGI] != null) {\n entries[_EOIGI] = input[_EOIGI];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n return entries;\n}, \"se_ReplaceRouteRequest\");\nvar se_ReplaceRouteTableAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n return entries;\n}, \"se_ReplaceRouteTableAssociationRequest\");\nvar se_ReplaceTransitGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReplaceTransitGatewayRouteRequest\");\nvar se_ReplaceVpnTunnelRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_APM] != null) {\n entries[_APM] = input[_APM];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReplaceVpnTunnelRequest\");\nvar se_ReportInstanceStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_In] != null) {\n const memberEntries = se_InstanceIdStringList(input[_In], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Statu] != null) {\n entries[_Statu] = input[_Statu];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_RCe] != null) {\n const memberEntries = se_ReasonCodesList(input[_RCe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReasonCode.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_ReportInstanceStatusRequest\");\nvar se_RequestFilterPortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_RequestFilterPortRange\");\nvar se_RequestHostIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestHostIdList\");\nvar se_RequestHostIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestHostIdSet\");\nvar se_RequestInstanceTypeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestInstanceTypeList\");\nvar se_RequestIpamResourceTag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_RequestIpamResourceTag\");\nvar se_RequestIpamResourceTagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RequestIpamResourceTag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RequestIpamResourceTagList\");\nvar se_RequestLaunchTemplateData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_LaunchTemplateIamInstanceProfileSpecificationRequest(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BDM] != null) {\n const memberEntries = se_LaunchTemplateBlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_LaunchTemplatesMonitoringRequest(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_LaunchTemplatePlacementRequest(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RDI] != null) {\n entries[_RDI] = input[_RDI];\n }\n if (input[_DATis] != null) {\n entries[_DATis] = input[_DATis];\n }\n if (input[_IISB] != null) {\n entries[_IISB] = input[_IISB];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n if (input[_TS] != null) {\n const memberEntries = se_LaunchTemplateTagSpecificationRequestList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EGS] != null) {\n const memberEntries = se_ElasticGpuSpecificationList(input[_EGS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticGpuSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EIA] != null) {\n const memberEntries = se_LaunchTemplateElasticInferenceAcceleratorList(input[_EIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticInferenceAccelerator.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroupStringList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IMO] != null) {\n const memberEntries = se_LaunchTemplateInstanceMarketOptionsRequest(input[_IMO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceMarketOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CSred] != null) {\n const memberEntries = se_CreditSpecificationRequest(input[_CSred], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CreditSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_COp] != null) {\n const memberEntries = se_LaunchTemplateCpuOptionsRequest(input[_COp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CRSa] != null) {\n const memberEntries = se_LaunchTemplateCapacityReservationSpecificationRequest(input[_CRSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSi] != null) {\n const memberEntries = se_LaunchTemplateLicenseSpecificationListRequest(input[_LSi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LicenseSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HO] != null) {\n const memberEntries = se_LaunchTemplateHibernationOptionsRequest(input[_HO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HibernationOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MO] != null) {\n const memberEntries = se_LaunchTemplateInstanceMetadataOptionsRequest(input[_MO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MetadataOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EOn] != null) {\n const memberEntries = se_LaunchTemplateEnclaveOptionsRequest(input[_EOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnclaveOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDNO] != null) {\n const memberEntries = se_LaunchTemplatePrivateDnsNameOptionsRequest(input[_PDNO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateDnsNameOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MOa] != null) {\n const memberEntries = se_LaunchTemplateInstanceMaintenanceOptionsRequest(input[_MOa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MaintenanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAS] != null) {\n entries[_DAS] = input[_DAS];\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NPO] != null) {\n const memberEntries = se_LaunchTemplateNetworkPerformanceOptionsRequest(input[_NPO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkPerformanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RequestLaunchTemplateData\");\nvar se_RequestSpotFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRC] != null) {\n const memberEntries = se_SpotFleetRequestConfigData(input[_SFRC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotFleetRequestConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RequestSpotFleetRequest\");\nvar se_RequestSpotInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LSa] != null) {\n const memberEntries = se_RequestSpotLaunchSpecification(input[_LSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VF] != null) {\n entries[_VF] = (0, import_smithy_client.serializeDateTime)(input[_VF]);\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_LG] != null) {\n entries[_LG] = input[_LG];\n }\n if (input[_AZG] != null) {\n entries[_AZG] = input[_AZG];\n }\n if (input[_BDMl] != null) {\n entries[_BDMl] = input[_BDMl];\n }\n return entries;\n}, \"se_RequestSpotInstancesRequest\");\nvar se_RequestSpotLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGI] != null) {\n const memberEntries = se_RequestSpotLaunchSpecificationSecurityGroupIdList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_RequestSpotLaunchSpecificationSecurityGroupList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ATd] != null) {\n entries[_ATd] = input[_ATd];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_RunInstancesMonitoringEnabled(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_InstanceNetworkInterfaceSpecificationList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_SpotPlacement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n return entries;\n}, \"se_RequestSpotLaunchSpecification\");\nvar se_RequestSpotLaunchSpecificationSecurityGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestSpotLaunchSpecificationSecurityGroupIdList\");\nvar se_RequestSpotLaunchSpecificationSecurityGroupList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestSpotLaunchSpecificationSecurityGroupList\");\nvar se_ReservationFleetInstanceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IPn] != null) {\n entries[_IPn] = input[_IPn];\n }\n if (input[_W] != null) {\n entries[_W] = (0, import_smithy_client.serializeFloat)(input[_W]);\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_Pri] != null) {\n entries[_Pri] = input[_Pri];\n }\n return entries;\n}, \"se_ReservationFleetInstanceSpecification\");\nvar se_ReservationFleetInstanceSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ReservationFleetInstanceSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ReservationFleetInstanceSpecificationList\");\nvar se_ReservedInstanceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReservedInstanceId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstanceIdSet\");\nvar se_ReservedInstanceLimitPrice = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Am] != null) {\n entries[_Am] = (0, import_smithy_client.serializeFloat)(input[_Am]);\n }\n if (input[_CCu] != null) {\n entries[_CCu] = input[_CCu];\n }\n return entries;\n}, \"se_ReservedInstanceLimitPrice\");\nvar se_ReservedInstancesConfiguration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_Pla] != null) {\n entries[_Pla] = input[_Pla];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n return entries;\n}, \"se_ReservedInstancesConfiguration\");\nvar se_ReservedInstancesConfigurationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ReservedInstancesConfiguration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesConfigurationList\");\nvar se_ReservedInstancesIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReservedInstancesId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesIdStringList\");\nvar se_ReservedInstancesModificationIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReservedInstancesModificationId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesModificationIdStringList\");\nvar se_ReservedInstancesOfferingIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesOfferingIdStringList\");\nvar se_ResetAddressAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetAddressAttributeRequest\");\nvar se_ResetEbsDefaultKmsKeyIdRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetEbsDefaultKmsKeyIdRequest\");\nvar se_ResetFpgaImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_ResetFpgaImageAttributeRequest\");\nvar se_ResetImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetImageAttributeRequest\");\nvar se_ResetInstanceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_ResetInstanceAttributeRequest\");\nvar se_ResetNetworkInterfaceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_SDC] != null) {\n entries[_SDC] = input[_SDC];\n }\n return entries;\n}, \"se_ResetNetworkInterfaceAttributeRequest\");\nvar se_ResetSnapshotAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetSnapshotAttributeRequest\");\nvar se_ResourceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceIdList\");\nvar se_ResourceList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceList\");\nvar se_ResourceStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Re] != null) {\n const memberEntries = se_ValueStringList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Resource.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RTeso] != null) {\n const memberEntries = se_ValueStringList(input[_RTeso], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ResourceStatementRequest\");\nvar se_RestorableByStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RestorableByStringList\");\nvar se_RestoreAddressToClassicRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n return entries;\n}, \"se_RestoreAddressToClassicRequest\");\nvar se_RestoreImageFromRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RestoreImageFromRecycleBinRequest\");\nvar se_RestoreManagedPrefixListVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_PV] != null) {\n entries[_PV] = input[_PV];\n }\n if (input[_CVu] != null) {\n entries[_CVu] = input[_CVu];\n }\n return entries;\n}, \"se_RestoreManagedPrefixListVersionRequest\");\nvar se_RestoreSnapshotFromRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RestoreSnapshotFromRecycleBinRequest\");\nvar se_RestoreSnapshotTierRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_TRD] != null) {\n entries[_TRD] = input[_TRD];\n }\n if (input[_PRer] != null) {\n entries[_PRer] = input[_PRer];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RestoreSnapshotTierRequest\");\nvar se_RevokeClientVpnIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_TNC] != null) {\n entries[_TNC] = input[_TNC];\n }\n if (input[_AGI] != null) {\n entries[_AGI] = input[_AGI];\n }\n if (input[_RAG] != null) {\n entries[_RAG] = input[_RAG];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RevokeClientVpnIngressRequest\");\nvar se_RevokeSecurityGroupEgressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGRI] != null) {\n const memberEntries = se_SecurityGroupRuleIdList(input[_SGRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RevokeSecurityGroupEgressRequest\");\nvar se_RevokeSecurityGroupIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_SGRI] != null) {\n const memberEntries = se_SecurityGroupRuleIdList(input[_SGRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RevokeSecurityGroupIngressRequest\");\nvar se_RouteServerBgpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAee] != null) {\n entries[_PAee] = input[_PAee];\n }\n if (input[_PLD] != null) {\n entries[_PLD] = input[_PLD];\n }\n return entries;\n}, \"se_RouteServerBgpOptionsRequest\");\nvar se_RouteServerEndpointIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteServerEndpointIdsList\");\nvar se_RouteServerIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteServerIdsList\");\nvar se_RouteServerPeerIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteServerPeerIdsList\");\nvar se_RouteTableIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteTableIdStringList\");\nvar se_RunInstancesMonitoringEnabled = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_RunInstancesMonitoringEnabled\");\nvar se_RunInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Address.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_MC] != null) {\n entries[_MC] = input[_MC];\n }\n if (input[_MCi] != null) {\n entries[_MCi] = input[_MCi];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_RunInstancesMonitoringEnabled(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_Placement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroupStringList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n if (input[_EGSl] != null) {\n const memberEntries = se_ElasticGpuSpecifications(input[_EGSl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticGpuSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EIA] != null) {\n const memberEntries = se_ElasticInferenceAccelerators(input[_EIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticInferenceAccelerator.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LTa] != null) {\n const memberEntries = se_LaunchTemplateSpecification(input[_LTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplate.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IMO] != null) {\n const memberEntries = se_InstanceMarketOptionsRequest(input[_IMO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceMarketOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CSred] != null) {\n const memberEntries = se_CreditSpecificationRequest(input[_CSred], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CreditSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_COp] != null) {\n const memberEntries = se_CpuOptionsRequest(input[_COp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CRSa] != null) {\n const memberEntries = se_CapacityReservationSpecification(input[_CRSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HO] != null) {\n const memberEntries = se_HibernationOptionsRequest(input[_HO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HibernationOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSi] != null) {\n const memberEntries = se_LicenseSpecificationListRequest(input[_LSi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LicenseSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MO] != null) {\n const memberEntries = se_InstanceMetadataOptionsRequest(input[_MO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MetadataOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EOn] != null) {\n const memberEntries = se_EnclaveOptionsRequest(input[_EOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnclaveOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDNO] != null) {\n const memberEntries = se_PrivateDnsNameOptionsRequest(input[_PDNO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateDnsNameOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MOa] != null) {\n const memberEntries = se_InstanceMaintenanceOptionsRequest(input[_MOa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MaintenanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAS] != null) {\n entries[_DAS] = input[_DAS];\n }\n if (input[_EPI] != null) {\n entries[_EPI] = input[_EPI];\n }\n if (input[_NPO] != null) {\n const memberEntries = se_InstanceNetworkPerformanceOptionsRequest(input[_NPO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkPerformanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DATis] != null) {\n entries[_DATis] = input[_DATis];\n }\n if (input[_IISB] != null) {\n entries[_IISB] = input[_IISB];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_NI] != null) {\n const memberEntries = se_InstanceNetworkInterfaceSpecificationList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n return entries;\n}, \"se_RunInstancesRequest\");\nvar se_RunScheduledInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_LSa] != null) {\n const memberEntries = se_ScheduledInstancesLaunchSpecification(input[_LSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIIch] != null) {\n entries[_SIIch] = input[_SIIch];\n }\n return entries;\n}, \"se_RunScheduledInstancesRequest\");\nvar se_S3ObjectTag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_S3ObjectTag\");\nvar se_S3ObjectTagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_S3ObjectTag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_S3ObjectTagList\");\nvar se_S3Storage = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AWSAKI] != null) {\n entries[_AWSAKI] = input[_AWSAKI];\n }\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n if (input[_UP] != null) {\n entries[_UP] = context.base64Encoder(input[_UP]);\n }\n if (input[_UPS] != null) {\n entries[_UPS] = input[_UPS];\n }\n return entries;\n}, \"se_S3Storage\");\nvar se_ScheduledInstanceIdRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ScheduledInstanceId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstanceIdRequestSet\");\nvar se_ScheduledInstanceRecurrenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fre] != null) {\n entries[_Fre] = input[_Fre];\n }\n if (input[_Int] != null) {\n entries[_Int] = input[_Int];\n }\n if (input[_OD] != null) {\n const memberEntries = se_OccurrenceDayRequestSet(input[_OD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OccurrenceDay.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ORTE] != null) {\n entries[_ORTE] = input[_ORTE];\n }\n if (input[_OU] != null) {\n entries[_OU] = input[_OU];\n }\n return entries;\n}, \"se_ScheduledInstanceRecurrenceRequest\");\nvar se_ScheduledInstancesBlockDeviceMapping = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_E] != null) {\n const memberEntries = se_ScheduledInstancesEbs(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n return entries;\n}, \"se_ScheduledInstancesBlockDeviceMapping\");\nvar se_ScheduledInstancesBlockDeviceMappingSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesBlockDeviceMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesBlockDeviceMappingSet\");\nvar se_ScheduledInstancesEbs = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n return entries;\n}, \"se_ScheduledInstancesEbs\");\nvar se_ScheduledInstancesIamInstanceProfile = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_ScheduledInstancesIamInstanceProfile\");\nvar se_ScheduledInstancesIpv6Address = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IApv] != null) {\n entries[_IApv] = input[_IApv];\n }\n return entries;\n}, \"se_ScheduledInstancesIpv6Address\");\nvar se_ScheduledInstancesIpv6AddressList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesIpv6Address(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Ipv6Address.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesIpv6AddressList\");\nvar se_ScheduledInstancesLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BDM] != null) {\n const memberEntries = se_ScheduledInstancesBlockDeviceMappingSet(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_ScheduledInstancesIamInstanceProfile(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_ScheduledInstancesMonitoring(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_ScheduledInstancesNetworkInterfaceSet(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_ScheduledInstancesPlacement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ScheduledInstancesSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n return entries;\n}, \"se_ScheduledInstancesLaunchSpecification\");\nvar se_ScheduledInstancesMonitoring = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_ScheduledInstancesMonitoring\");\nvar se_ScheduledInstancesNetworkInterface = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n if (input[_G] != null) {\n const memberEntries = se_ScheduledInstancesSecurityGroupIdSet(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Group.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_ScheduledInstancesIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Address.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_PIACr] != null) {\n const memberEntries = se_PrivateIpAddressConfigSet(input[_PIACr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddressConfig.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n return entries;\n}, \"se_ScheduledInstancesNetworkInterface\");\nvar se_ScheduledInstancesNetworkInterfaceSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesNetworkInterface(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`NetworkInterface.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesNetworkInterfaceSet\");\nvar se_ScheduledInstancesPlacement = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_ScheduledInstancesPlacement\");\nvar se_ScheduledInstancesPrivateIpAddressConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Prim] != null) {\n entries[_Prim] = input[_Prim];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n return entries;\n}, \"se_ScheduledInstancesPrivateIpAddressConfig\");\nvar se_ScheduledInstancesSecurityGroupIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesSecurityGroupIdSet\");\nvar se_SearchLocalGatewayRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SearchLocalGatewayRoutesRequest\");\nvar se_SearchTransitGatewayMulticastGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SearchTransitGatewayMulticastGroupsRequest\");\nvar se_SearchTransitGatewayRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SearchTransitGatewayRoutesRequest\");\nvar se_SecurityGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupIdList\");\nvar se_SecurityGroupIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupIdStringList\");\nvar se_SecurityGroupIdStringListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupIdStringListRequest\");\nvar se_SecurityGroupRuleDescription = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGRIe] != null) {\n entries[_SGRIe] = input[_SGRIe];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_SecurityGroupRuleDescription\");\nvar se_SecurityGroupRuleDescriptionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SecurityGroupRuleDescription(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupRuleDescriptionList\");\nvar se_SecurityGroupRuleIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupRuleIdList\");\nvar se_SecurityGroupRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_CIidr] != null) {\n entries[_CIidr] = input[_CIidr];\n }\n if (input[_CIid] != null) {\n entries[_CIid] = input[_CIid];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_RGI] != null) {\n entries[_RGI] = input[_RGI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_SecurityGroupRuleRequest\");\nvar se_SecurityGroupRuleUpdate = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGRIe] != null) {\n entries[_SGRIe] = input[_SGRIe];\n }\n if (input[_SGRe] != null) {\n const memberEntries = se_SecurityGroupRuleRequest(input[_SGRe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRule.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SecurityGroupRuleUpdate\");\nvar se_SecurityGroupRuleUpdateList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SecurityGroupRuleUpdate(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupRuleUpdateList\");\nvar se_SecurityGroupStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroup.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupStringList\");\nvar se_SendDiagnosticInterruptRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SendDiagnosticInterruptRequest\");\nvar se_ServiceLinkVirtualInterfaceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ServiceLinkVirtualInterfaceIdSet\");\nvar se_SlotDateTimeRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ETa] != null) {\n entries[_ETa] = (0, import_smithy_client.serializeDateTime)(input[_ETa]);\n }\n if (input[_LTat] != null) {\n entries[_LTat] = (0, import_smithy_client.serializeDateTime)(input[_LTat]);\n }\n return entries;\n}, \"se_SlotDateTimeRangeRequest\");\nvar se_SlotStartTimeRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ETa] != null) {\n entries[_ETa] = (0, import_smithy_client.serializeDateTime)(input[_ETa]);\n }\n if (input[_LTat] != null) {\n entries[_LTat] = (0, import_smithy_client.serializeDateTime)(input[_LTat]);\n }\n return entries;\n}, \"se_SlotStartTimeRangeRequest\");\nvar se_SnapshotDiskContainer = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Fo] != null) {\n entries[_Fo] = input[_Fo];\n }\n if (input[_U] != null) {\n entries[_U] = input[_U];\n }\n if (input[_UB] != null) {\n const memberEntries = se_UserBucket(input[_UB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserBucket.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SnapshotDiskContainer\");\nvar se_SnapshotIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SnapshotId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SnapshotIdStringList\");\nvar se_SpotCapacityRebalance = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RS] != null) {\n entries[_RS] = input[_RS];\n }\n if (input[_TDe] != null) {\n entries[_TDe] = input[_TDe];\n }\n return entries;\n}, \"se_SpotCapacityRebalance\");\nvar se_SpotFleetLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ATd] != null) {\n entries[_ATd] = input[_ATd];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_SpotFleetMonitoring(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_InstanceNetworkInterfaceSpecificationList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_SpotPlacement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n if (input[_WCe] != null) {\n entries[_WCe] = (0, import_smithy_client.serializeFloat)(input[_WCe]);\n }\n if (input[_TS] != null) {\n const memberEntries = se_SpotFleetTagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecificationSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirements(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_GroupIdentifierList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotFleetLaunchSpecification\");\nvar se_SpotFleetMonitoring = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_SpotFleetMonitoring\");\nvar se_SpotFleetRequestConfigData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_ODAS] != null) {\n entries[_ODAS] = input[_ODAS];\n }\n if (input[_SMS] != null) {\n const memberEntries = se_SpotMaintenanceStrategies(input[_SMS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotMaintenanceStrategies.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n if (input[_FC] != null) {\n entries[_FC] = (0, import_smithy_client.serializeFloat)(input[_FC]);\n }\n if (input[_ODFC] != null) {\n entries[_ODFC] = (0, import_smithy_client.serializeFloat)(input[_ODFC]);\n }\n if (input[_IFR] != null) {\n entries[_IFR] = input[_IFR];\n }\n if (input[_LSau] != null) {\n const memberEntries = se_LaunchSpecsList(input[_LSau], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LTC] != null) {\n const memberEntries = se_LaunchTemplateConfigList(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfigs.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_TCa] != null) {\n entries[_TCa] = input[_TCa];\n }\n if (input[_ODTC] != null) {\n entries[_ODTC] = input[_ODTC];\n }\n if (input[_ODMTP] != null) {\n entries[_ODMTP] = input[_ODMTP];\n }\n if (input[_SMTP] != null) {\n entries[_SMTP] = input[_SMTP];\n }\n if (input[_TIWE] != null) {\n entries[_TIWE] = input[_TIWE];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VF] != null) {\n entries[_VF] = (0, import_smithy_client.serializeDateTime)(input[_VF]);\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_RUI] != null) {\n entries[_RUI] = input[_RUI];\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n if (input[_LBC] != null) {\n const memberEntries = se_LoadBalancersConfig(input[_LBC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancersConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IPTUC] != null) {\n entries[_IPTUC] = input[_IPTUC];\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n if (input[_TCUT] != null) {\n entries[_TCUT] = input[_TCUT];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotFleetRequestConfigData\");\nvar se_SpotFleetRequestIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SpotFleetRequestIdList\");\nvar se_SpotFleetTagSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotFleetTagSpecification\");\nvar se_SpotFleetTagSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SpotFleetTagSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SpotFleetTagSpecificationList\");\nvar se_SpotInstanceRequestIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SpotInstanceRequestId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SpotInstanceRequestIdList\");\nvar se_SpotMaintenanceStrategies = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRap] != null) {\n const memberEntries = se_SpotCapacityRebalance(input[_CRap], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityRebalance.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotMaintenanceStrategies\");\nvar se_SpotMarketOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MPa] != null) {\n entries[_MPa] = input[_MPa];\n }\n if (input[_SIT] != null) {\n entries[_SIT] = input[_SIT];\n }\n if (input[_BDMl] != null) {\n entries[_BDMl] = input[_BDMl];\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n return entries;\n}, \"se_SpotMarketOptions\");\nvar se_SpotOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_MS] != null) {\n const memberEntries = se_FleetSpotMaintenanceStrategiesRequest(input[_MS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MaintenanceStrategies.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n if (input[_IPTUC] != null) {\n entries[_IPTUC] = input[_IPTUC];\n }\n if (input[_SITi] != null) {\n entries[_SITi] = input[_SITi];\n }\n if (input[_SAZ] != null) {\n entries[_SAZ] = input[_SAZ];\n }\n if (input[_MTC] != null) {\n entries[_MTC] = input[_MTC];\n }\n if (input[_MTP] != null) {\n entries[_MTP] = input[_MTP];\n }\n return entries;\n}, \"se_SpotOptionsRequest\");\nvar se_SpotPlacement = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n return entries;\n}, \"se_SpotPlacement\");\nvar se_StartDeclarativePoliciesReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n if (input[_TIa] != null) {\n entries[_TIa] = input[_TIa];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_StartDeclarativePoliciesReportRequest\");\nvar se_StartInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_StartInstancesRequest\");\nvar se_StartNetworkInsightsAccessScopeAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_StartNetworkInsightsAccessScopeAnalysisRequest\");\nvar se_StartNetworkInsightsAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPI] != null) {\n entries[_NIPI] = input[_NIPI];\n }\n if (input[_AAd] != null) {\n const memberEntries = se_ValueStringList(input[_AAd], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AdditionalAccount.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FIA] != null) {\n const memberEntries = se_ArnList(input[_FIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterInArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FOA] != null) {\n const memberEntries = se_ArnList(input[_FOA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterOutArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_StartNetworkInsightsAnalysisRequest\");\nvar se_StartVpcEndpointServicePrivateDnsVerificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n return entries;\n}, \"se_StartVpcEndpointServicePrivateDnsVerificationRequest\");\nvar se_StopInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Hi] != null) {\n entries[_Hi] = input[_Hi];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n return entries;\n}, \"se_StopInstancesRequest\");\nvar se_Storage = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S_] != null) {\n const memberEntries = se_S3Storage(input[_S_], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_Storage\");\nvar se_StorageLocation = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n return entries;\n}, \"se_StorageLocation\");\nvar se_SubnetConfiguration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_Ip] != null) {\n entries[_Ip] = input[_Ip];\n }\n if (input[_Ipv] != null) {\n entries[_Ipv] = input[_Ipv];\n }\n return entries;\n}, \"se_SubnetConfiguration\");\nvar se_SubnetConfigurationsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SubnetConfiguration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SubnetConfigurationsList\");\nvar se_SubnetIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SubnetId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SubnetIdStringList\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_TagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TagList\");\nvar se_TagSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagSpecification\");\nvar se_TagSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TagSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TagSpecificationList\");\nvar se_TargetCapacitySpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TTC] != null) {\n entries[_TTC] = input[_TTC];\n }\n if (input[_ODTC] != null) {\n entries[_ODTC] = input[_ODTC];\n }\n if (input[_STC] != null) {\n entries[_STC] = input[_STC];\n }\n if (input[_DTCT] != null) {\n entries[_DTCT] = input[_DTCT];\n }\n if (input[_TCUT] != null) {\n entries[_TCUT] = input[_TCUT];\n }\n return entries;\n}, \"se_TargetCapacitySpecificationRequest\");\nvar se_TargetConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n return entries;\n}, \"se_TargetConfigurationRequest\");\nvar se_TargetConfigurationRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`TargetConfigurationRequest.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetConfigurationRequestSet\");\nvar se_TargetGroup = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n return entries;\n}, \"se_TargetGroup\");\nvar se_TargetGroups = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetGroup(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetGroups\");\nvar se_TargetGroupsConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TG] != null) {\n const memberEntries = se_TargetGroups(input[_TG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroups.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TargetGroupsConfig\");\nvar se_TerminateClientVpnConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_CIo] != null) {\n entries[_CIo] = input[_CIo];\n }\n if (input[_Us] != null) {\n entries[_Us] = input[_Us];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_TerminateClientVpnConnectionsRequest\");\nvar se_TerminateInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_TerminateInstancesRequest\");\nvar se_ThroughResourcesStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSe] != null) {\n const memberEntries = se_ResourceStatementRequest(input[_RSe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceStatement.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ThroughResourcesStatementRequest\");\nvar se_ThroughResourcesStatementRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ThroughResourcesStatementRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ThroughResourcesStatementRequestList\");\nvar se_TotalLocalStorageGB = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_TotalLocalStorageGB\");\nvar se_TotalLocalStorageGBRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_TotalLocalStorageGBRequest\");\nvar se_TrafficMirrorFilterIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorFilterIdList\");\nvar se_TrafficMirrorFilterRuleFieldList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorFilterRuleFieldList\");\nvar se_TrafficMirrorFilterRuleIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorFilterRuleIdList\");\nvar se_TrafficMirrorNetworkServiceList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorNetworkServiceList\");\nvar se_TrafficMirrorPortRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_TrafficMirrorPortRangeRequest\");\nvar se_TrafficMirrorSessionFieldList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorSessionFieldList\");\nvar se_TrafficMirrorSessionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorSessionIdList\");\nvar se_TrafficMirrorTargetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorTargetIdList\");\nvar se_TransitGatewayAttachmentIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayAttachmentIdStringList\");\nvar se_TransitGatewayCidrBlockStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayCidrBlockStringList\");\nvar se_TransitGatewayConnectPeerIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayConnectPeerIdStringList\");\nvar se_TransitGatewayConnectRequestBgpOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAee] != null) {\n entries[_PAee] = input[_PAee];\n }\n return entries;\n}, \"se_TransitGatewayConnectRequestBgpOptions\");\nvar se_TransitGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayIdStringList\");\nvar se_TransitGatewayMulticastDomainIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayMulticastDomainIdStringList\");\nvar se_TransitGatewayNetworkInterfaceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayNetworkInterfaceIdList\");\nvar se_TransitGatewayPolicyTableIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayPolicyTableIdStringList\");\nvar se_TransitGatewayRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n if (input[_AASAu] != null) {\n entries[_AASAu] = input[_AASAu];\n }\n if (input[_DRTA] != null) {\n entries[_DRTA] = input[_DRTA];\n }\n if (input[_DRTP] != null) {\n entries[_DRTP] = input[_DRTP];\n }\n if (input[_VES] != null) {\n entries[_VES] = input[_VES];\n }\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_MSu] != null) {\n entries[_MSu] = input[_MSu];\n }\n if (input[_TGCB] != null) {\n const memberEntries = se_TransitGatewayCidrBlockStringList(input[_TGCB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TransitGatewayRequestOptions\");\nvar se_TransitGatewayRouteTableAnnouncementIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayRouteTableAnnouncementIdStringList\");\nvar se_TransitGatewayRouteTableIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayRouteTableIdStringList\");\nvar se_TransitGatewaySubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewaySubnetIdList\");\nvar se_TrunkInterfaceAssociationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrunkInterfaceAssociationIdList\");\nvar se_UnassignIpv6AddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IP] != null) {\n const memberEntries = se_IpPrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_IA] != null) {\n const memberEntries = se_Ipv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UnassignIpv6AddressesRequest\");\nvar se_UnassignPrivateIpAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPp] != null) {\n const memberEntries = se_IpPrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressStringList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UnassignPrivateIpAddressesRequest\");\nvar se_UnassignPrivateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_IpList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MDDS] != null) {\n entries[_MDDS] = input[_MDDS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_UnassignPrivateNatGatewayAddressRequest\");\nvar se_UnlockSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_UnlockSnapshotRequest\");\nvar se_UnmonitorInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_UnmonitorInstancesRequest\");\nvar se_UpdateSecurityGroupRuleDescriptionsEgressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGRD] != null) {\n const memberEntries = se_SecurityGroupRuleDescriptionList(input[_SGRD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleDescription.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UpdateSecurityGroupRuleDescriptionsEgressRequest\");\nvar se_UpdateSecurityGroupRuleDescriptionsIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGRD] != null) {\n const memberEntries = se_SecurityGroupRuleDescriptionList(input[_SGRD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleDescription.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UpdateSecurityGroupRuleDescriptionsIngressRequest\");\nvar se_UserBucket = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SK] != null) {\n entries[_SK] = input[_SK];\n }\n return entries;\n}, \"se_UserBucket\");\nvar se_UserData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Da] != null) {\n entries[_Da] = input[_Da];\n }\n return entries;\n}, \"se_UserData\");\nvar se_UserGroupStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`UserGroup.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_UserGroupStringList\");\nvar se_UserIdGroupPair = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n if (input[_PSe] != null) {\n entries[_PSe] = input[_PSe];\n }\n return entries;\n}, \"se_UserIdGroupPair\");\nvar se_UserIdGroupPairList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_UserIdGroupPair(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_UserIdGroupPairList\");\nvar se_UserIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`UserId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_UserIdStringList\");\nvar se_ValueStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ValueStringList\");\nvar se_VCpuCountRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_VCpuCountRange\");\nvar se_VCpuCountRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_VCpuCountRangeRequest\");\nvar se_VerifiedAccessEndpointIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessEndpointIdList\");\nvar se_VerifiedAccessGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessGroupIdList\");\nvar se_VerifiedAccessInstanceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessInstanceIdList\");\nvar se_VerifiedAccessLogCloudWatchLogsDestinationOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_LGo] != null) {\n entries[_LGo] = input[_LGo];\n }\n return entries;\n}, \"se_VerifiedAccessLogCloudWatchLogsDestinationOptions\");\nvar se_VerifiedAccessLogKinesisDataFirehoseDestinationOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_DSel] != null) {\n entries[_DSel] = input[_DSel];\n }\n return entries;\n}, \"se_VerifiedAccessLogKinesisDataFirehoseDestinationOptions\");\nvar se_VerifiedAccessLogOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S_] != null) {\n const memberEntries = se_VerifiedAccessLogS3DestinationOptions(input[_S_], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CWL] != null) {\n const memberEntries = se_VerifiedAccessLogCloudWatchLogsDestinationOptions(input[_CWL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CloudWatchLogs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_KDF] != null) {\n const memberEntries = se_VerifiedAccessLogKinesisDataFirehoseDestinationOptions(input[_KDF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `KinesisDataFirehose.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LV] != null) {\n entries[_LV] = input[_LV];\n }\n if (input[_ITCn] != null) {\n entries[_ITCn] = input[_ITCn];\n }\n return entries;\n}, \"se_VerifiedAccessLogOptions\");\nvar se_VerifiedAccessLogS3DestinationOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_BN] != null) {\n entries[_BN] = input[_BN];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n if (input[_BOu] != null) {\n entries[_BOu] = input[_BOu];\n }\n return entries;\n}, \"se_VerifiedAccessLogS3DestinationOptions\");\nvar se_VerifiedAccessSseSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CMKE] != null) {\n entries[_CMKE] = input[_CMKE];\n }\n if (input[_KKA] != null) {\n entries[_KKA] = input[_KKA];\n }\n return entries;\n}, \"se_VerifiedAccessSseSpecificationRequest\");\nvar se_VerifiedAccessTrustProviderIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessTrustProviderIdList\");\nvar se_VersionStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VersionStringList\");\nvar se_VirtualizationTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VirtualizationTypeSet\");\nvar se_VolumeDetail = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Siz] != null) {\n entries[_Siz] = input[_Siz];\n }\n return entries;\n}, \"se_VolumeDetail\");\nvar se_VolumeIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VolumeId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VolumeIdStringList\");\nvar se_VpcBlockPublicAccessExclusionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcBlockPublicAccessExclusionIdList\");\nvar se_VpcClassicLinkIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpcId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcClassicLinkIdList\");\nvar se_VpcEndpointIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointIdList\");\nvar se_VpcEndpointRouteTableIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointRouteTableIdList\");\nvar se_VpcEndpointSecurityGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointSecurityGroupIdList\");\nvar se_VpcEndpointServiceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointServiceIdList\");\nvar se_VpcEndpointSubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointSubnetIdList\");\nvar se_VpcIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpcId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcIdStringList\");\nvar se_VpcPeeringConnectionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcPeeringConnectionIdList\");\nvar se_VpnConnectionIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpnConnectionId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpnConnectionIdStringList\");\nvar se_VpnConnectionOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EA] != null) {\n entries[_EA] = input[_EA];\n }\n if (input[_TIIV] != null) {\n entries[_TIIV] = input[_TIIV];\n }\n if (input[_TO] != null) {\n const memberEntries = se_VpnTunnelOptionsSpecificationsList(input[_TO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TunnelOptions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LINC] != null) {\n entries[_LINC] = input[_LINC];\n }\n if (input[_RINC] != null) {\n entries[_RINC] = input[_RINC];\n }\n if (input[_LINCo] != null) {\n entries[_LINCo] = input[_LINCo];\n }\n if (input[_RINCe] != null) {\n entries[_RINCe] = input[_RINCe];\n }\n if (input[_OIAT] != null) {\n entries[_OIAT] = input[_OIAT];\n }\n if (input[_TTGAI] != null) {\n entries[_TTGAI] = input[_TTGAI];\n }\n if (input[_SRO] != null) {\n entries[_SRO] = input[_SRO];\n }\n return entries;\n}, \"se_VpnConnectionOptionsSpecification\");\nvar se_VpnGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpnGatewayId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpnGatewayIdStringList\");\nvar se_VpnTunnelLogOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CWLO] != null) {\n const memberEntries = se_CloudWatchLogOptionsSpecification(input[_CWLO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CloudWatchLogOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_VpnTunnelLogOptionsSpecification\");\nvar se_VpnTunnelOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TIC] != null) {\n entries[_TIC] = input[_TIC];\n }\n if (input[_TIIC] != null) {\n entries[_TIIC] = input[_TIIC];\n }\n if (input[_PSK] != null) {\n entries[_PSK] = input[_PSK];\n }\n if (input[_PLS] != null) {\n entries[_PLS] = input[_PLS];\n }\n if (input[_PLSh] != null) {\n entries[_PLSh] = input[_PLSh];\n }\n if (input[_RMTS] != null) {\n entries[_RMTS] = input[_RMTS];\n }\n if (input[_RFP] != null) {\n entries[_RFP] = input[_RFP];\n }\n if (input[_RWS] != null) {\n entries[_RWS] = input[_RWS];\n }\n if (input[_DPDTS] != null) {\n entries[_DPDTS] = input[_DPDTS];\n }\n if (input[_DPDTA] != null) {\n entries[_DPDTA] = input[_DPDTA];\n }\n if (input[_PEA] != null) {\n const memberEntries = se_Phase1EncryptionAlgorithmsRequestList(input[_PEA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PEAh] != null) {\n const memberEntries = se_Phase2EncryptionAlgorithmsRequestList(input[_PEAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAh] != null) {\n const memberEntries = se_Phase1IntegrityAlgorithmsRequestList(input[_PIAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAha] != null) {\n const memberEntries = se_Phase2IntegrityAlgorithmsRequestList(input[_PIAha], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGN] != null) {\n const memberEntries = se_Phase1DHGroupNumbersRequestList(input[_PDHGN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGNh] != null) {\n const memberEntries = se_Phase2DHGroupNumbersRequestList(input[_PDHGNh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IKEVe] != null) {\n const memberEntries = se_IKEVersionsRequestList(input[_IKEVe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IKEVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SA] != null) {\n entries[_SA] = input[_SA];\n }\n if (input[_LO] != null) {\n const memberEntries = se_VpnTunnelLogOptionsSpecification(input[_LO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ETLC] != null) {\n entries[_ETLC] = input[_ETLC];\n }\n return entries;\n}, \"se_VpnTunnelOptionsSpecification\");\nvar se_VpnTunnelOptionsSpecificationsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_VpnTunnelOptionsSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_VpnTunnelOptionsSpecificationsList\");\nvar se_WithdrawByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_WithdrawByoipCidrRequest\");\nvar se_ZoneIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ZoneId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ZoneIdStringList\");\nvar se_ZoneNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ZoneName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ZoneNameStringList\");\nvar de_AcceleratorCount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_AcceleratorCount\");\nvar de_AcceleratorManufacturerSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AcceleratorManufacturerSet\");\nvar de_AcceleratorNameSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AcceleratorNameSet\");\nvar de_AcceleratorTotalMemoryMiB = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_AcceleratorTotalMemoryMiB\");\nvar de_AcceleratorTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AcceleratorTypeSet\");\nvar de_AcceptAddressTransferResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aT] != null) {\n contents[_ATdd] = de_AddressTransfer(output[_aT], context);\n }\n return contents;\n}, \"de_AcceptAddressTransferResult\");\nvar de_AcceptCapacityReservationBillingOwnershipResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_AcceptCapacityReservationBillingOwnershipResult\");\nvar de_AcceptReservedInstancesExchangeQuoteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eI] != null) {\n contents[_EIxch] = (0, import_smithy_client.expectString)(output[_eI]);\n }\n return contents;\n}, \"de_AcceptReservedInstancesExchangeQuoteResult\");\nvar de_AcceptTransitGatewayMulticastDomainAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_AcceptTransitGatewayMulticastDomainAssociationsResult\");\nvar de_AcceptTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_AcceptTransitGatewayPeeringAttachmentResult\");\nvar de_AcceptTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_AcceptTransitGatewayVpcAttachmentResult\");\nvar de_AcceptVpcEndpointConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_AcceptVpcEndpointConnectionsResult\");\nvar de_AcceptVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vPC] != null) {\n contents[_VPC] = de_VpcPeeringConnection(output[_vPC], context);\n }\n return contents;\n}, \"de_AcceptVpcPeeringConnectionResult\");\nvar de_AccessScopeAnalysisFinding = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output[_fI] != null) {\n contents[_FIi] = (0, import_smithy_client.expectString)(output[_fI]);\n }\n if (output.findingComponentSet === \"\") {\n contents[_FCi] = [];\n } else if (output[_fCS] != null && output[_fCS][_i] != null) {\n contents[_FCi] = de_PathComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_fCS][_i]), context);\n }\n return contents;\n}, \"de_AccessScopeAnalysisFinding\");\nvar de_AccessScopeAnalysisFindingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessScopeAnalysisFinding(entry, context);\n });\n}, \"de_AccessScopeAnalysisFindingList\");\nvar de_AccessScopePath = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_s] != null) {\n contents[_S] = de_PathStatement(output[_s], context);\n }\n if (output[_d] != null) {\n contents[_D] = de_PathStatement(output[_d], context);\n }\n if (output.throughResourceSet === \"\") {\n contents[_TR] = [];\n } else if (output[_tRS] != null && output[_tRS][_i] != null) {\n contents[_TR] = de_ThroughResourcesStatementList((0, import_smithy_client.getArrayIfSingleItem)(output[_tRS][_i]), context);\n }\n return contents;\n}, \"de_AccessScopePath\");\nvar de_AccessScopePathList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessScopePath(entry, context);\n });\n}, \"de_AccessScopePathList\");\nvar de_AccountAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aN] != null) {\n contents[_ANt] = (0, import_smithy_client.expectString)(output[_aN]);\n }\n if (output.attributeValueSet === \"\") {\n contents[_AVt] = [];\n } else if (output[_aVS] != null && output[_aVS][_i] != null) {\n contents[_AVt] = de_AccountAttributeValueList((0, import_smithy_client.getArrayIfSingleItem)(output[_aVS][_i]), context);\n }\n return contents;\n}, \"de_AccountAttribute\");\nvar de_AccountAttributeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccountAttribute(entry, context);\n });\n}, \"de_AccountAttributeList\");\nvar de_AccountAttributeValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aV] != null) {\n contents[_AVtt] = (0, import_smithy_client.expectString)(output[_aV]);\n }\n return contents;\n}, \"de_AccountAttributeValue\");\nvar de_AccountAttributeValueList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccountAttributeValue(entry, context);\n });\n}, \"de_AccountAttributeValueList\");\nvar de_ActiveInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_iH] != null) {\n contents[_IH] = (0, import_smithy_client.expectString)(output[_iH]);\n }\n return contents;\n}, \"de_ActiveInstance\");\nvar de_ActiveInstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ActiveInstance(entry, context);\n });\n}, \"de_ActiveInstanceSet\");\nvar de_AddedPrincipal = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pT] != null) {\n contents[_PTr] = (0, import_smithy_client.expectString)(output[_pT]);\n }\n if (output[_p] != null) {\n contents[_Prin] = (0, import_smithy_client.expectString)(output[_p]);\n }\n if (output[_sPI] != null) {\n contents[_SPI] = (0, import_smithy_client.expectString)(output[_sPI]);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n return contents;\n}, \"de_AddedPrincipal\");\nvar de_AddedPrincipalSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AddedPrincipal(entry, context);\n });\n}, \"de_AddedPrincipalSet\");\nvar de_AdditionalDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aDT] != null) {\n contents[_ADT] = (0, import_smithy_client.expectString)(output[_aDT]);\n }\n if (output[_c] != null) {\n contents[_Com] = de_AnalysisComponent(output[_c], context);\n }\n if (output[_vES] != null) {\n contents[_VESp] = de_AnalysisComponent(output[_vES], context);\n }\n if (output.ruleOptionSet === \"\") {\n contents[_ROu] = [];\n } else if (output[_rOS] != null && output[_rOS][_i] != null) {\n contents[_ROu] = de_RuleOptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_rOS][_i]), context);\n }\n if (output.ruleGroupTypePairSet === \"\") {\n contents[_RGTP] = [];\n } else if (output[_rGTPS] != null && output[_rGTPS][_i] != null) {\n contents[_RGTP] = de_RuleGroupTypePairList((0, import_smithy_client.getArrayIfSingleItem)(output[_rGTPS][_i]), context);\n }\n if (output.ruleGroupRuleOptionsPairSet === \"\") {\n contents[_RGROP] = [];\n } else if (output[_rGROPS] != null && output[_rGROPS][_i] != null) {\n contents[_RGROP] = de_RuleGroupRuleOptionsPairList((0, import_smithy_client.getArrayIfSingleItem)(output[_rGROPS][_i]), context);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output.loadBalancerSet === \"\") {\n contents[_LB] = [];\n } else if (output[_lBS] != null && output[_lBS][_i] != null) {\n contents[_LB] = de_AnalysisComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_lBS][_i]), context);\n }\n return contents;\n}, \"de_AdditionalDetail\");\nvar de_AdditionalDetailList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AdditionalDetail(entry, context);\n });\n}, \"de_AdditionalDetailList\");\nvar de_Address = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_do] != null) {\n contents[_Do] = (0, import_smithy_client.expectString)(output[_do]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_nIOI] != null) {\n contents[_NIOI] = (0, import_smithy_client.expectString)(output[_nIOI]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pIP] != null) {\n contents[_PIP] = (0, import_smithy_client.expectString)(output[_pIP]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_cOIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_cOIP]);\n }\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n if (output[_sM] != null) {\n contents[_SM] = (0, import_smithy_client.expectString)(output[_sM]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_Address\");\nvar de_AddressAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_pR] != null) {\n contents[_PRt] = (0, import_smithy_client.expectString)(output[_pR]);\n }\n if (output[_pRU] != null) {\n contents[_PRU] = de_PtrUpdateStatus(output[_pRU], context);\n }\n return contents;\n}, \"de_AddressAttribute\");\nvar de_AddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Address(entry, context);\n });\n}, \"de_AddressList\");\nvar de_AddressSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AddressAttribute(entry, context);\n });\n}, \"de_AddressSet\");\nvar de_AddressTransfer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_tAI] != null) {\n contents[_TAI] = (0, import_smithy_client.expectString)(output[_tAI]);\n }\n if (output[_tOET] != null) {\n contents[_TOET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tOET]));\n }\n if (output[_tOAT] != null) {\n contents[_TOAT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tOAT]));\n }\n if (output[_aTS] != null) {\n contents[_ATS] = (0, import_smithy_client.expectString)(output[_aTS]);\n }\n return contents;\n}, \"de_AddressTransfer\");\nvar de_AddressTransferList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AddressTransfer(entry, context);\n });\n}, \"de_AddressTransferList\");\nvar de_AdvertiseByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_AdvertiseByoipCidrResult\");\nvar de_AllocateAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_pIP] != null) {\n contents[_PIP] = (0, import_smithy_client.expectString)(output[_pIP]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_do] != null) {\n contents[_Do] = (0, import_smithy_client.expectString)(output[_do]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_cOIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_cOIP]);\n }\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_AllocateAddressResult\");\nvar de_AllocateHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.hostIdSet === \"\") {\n contents[_HI] = [];\n } else if (output[_hIS] != null && output[_hIS][_i] != null) {\n contents[_HI] = de_ResponseHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_hIS][_i]), context);\n }\n return contents;\n}, \"de_AllocateHostsResult\");\nvar de_AllocateIpamPoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPA] != null) {\n contents[_IPA] = de_IpamPoolAllocation(output[_iPA], context);\n }\n return contents;\n}, \"de_AllocateIpamPoolCidrResult\");\nvar de_AllowedInstanceTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedInstanceTypeSet\");\nvar de_AllowedPrincipal = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pT] != null) {\n contents[_PTr] = (0, import_smithy_client.expectString)(output[_pT]);\n }\n if (output[_p] != null) {\n contents[_Prin] = (0, import_smithy_client.expectString)(output[_p]);\n }\n if (output[_sPI] != null) {\n contents[_SPI] = (0, import_smithy_client.expectString)(output[_sPI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n return contents;\n}, \"de_AllowedPrincipal\");\nvar de_AllowedPrincipalSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AllowedPrincipal(entry, context);\n });\n}, \"de_AllowedPrincipalSet\");\nvar de_AlternatePathHint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cIo] != null) {\n contents[_CIom] = (0, import_smithy_client.expectString)(output[_cIo]);\n }\n if (output[_cA] != null) {\n contents[_CAo] = (0, import_smithy_client.expectString)(output[_cA]);\n }\n return contents;\n}, \"de_AlternatePathHint\");\nvar de_AlternatePathHintList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AlternatePathHint(entry, context);\n });\n}, \"de_AlternatePathHintList\");\nvar de_AnalysisAclRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_e] != null) {\n contents[_Eg] = (0, import_smithy_client.parseBoolean)(output[_e]);\n }\n if (output[_pRo] != null) {\n contents[_PR] = de_PortRange(output[_pRo], context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_rN] != null) {\n contents[_RNu] = (0, import_smithy_client.strictParseInt32)(output[_rN]);\n }\n return contents;\n}, \"de_AnalysisAclRule\");\nvar de_AnalysisComponent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_AnalysisComponent\");\nvar de_AnalysisComponentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AnalysisComponent(entry, context);\n });\n}, \"de_AnalysisComponentList\");\nvar de_AnalysisLoadBalancerListener = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lBP] != null) {\n contents[_LBP] = (0, import_smithy_client.strictParseInt32)(output[_lBP]);\n }\n if (output[_iP] != null) {\n contents[_IPns] = (0, import_smithy_client.strictParseInt32)(output[_iP]);\n }\n return contents;\n}, \"de_AnalysisLoadBalancerListener\");\nvar de_AnalysisLoadBalancerTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ad] != null) {\n contents[_Ad] = (0, import_smithy_client.expectString)(output[_ad]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_in] != null) {\n contents[_Ins] = de_AnalysisComponent(output[_in], context);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n return contents;\n}, \"de_AnalysisLoadBalancerTarget\");\nvar de_AnalysisPacketHeader = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.destinationAddressSet === \"\") {\n contents[_DAes] = [];\n } else if (output[_dAS] != null && output[_dAS][_i] != null) {\n contents[_DAes] = de_IpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_dAS][_i]), context);\n }\n if (output.destinationPortRangeSet === \"\") {\n contents[_DPRe] = [];\n } else if (output[_dPRS] != null && output[_dPRS][_i] != null) {\n contents[_DPRe] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPRS][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output.sourceAddressSet === \"\") {\n contents[_SAo] = [];\n } else if (output[_sAS] != null && output[_sAS][_i] != null) {\n contents[_SAo] = de_IpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_sAS][_i]), context);\n }\n if (output.sourcePortRangeSet === \"\") {\n contents[_SPRo] = [];\n } else if (output[_sPRS] != null && output[_sPRS][_i] != null) {\n contents[_SPRo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPRS][_i]), context);\n }\n return contents;\n}, \"de_AnalysisPacketHeader\");\nvar de_AnalysisRouteTableRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_dPLI] != null) {\n contents[_DPLI] = (0, import_smithy_client.expectString)(output[_dPLI]);\n }\n if (output[_eOIGI] != null) {\n contents[_EOIGI] = (0, import_smithy_client.expectString)(output[_eOIGI]);\n }\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_o] != null) {\n contents[_Or] = (0, import_smithy_client.expectString)(output[_o]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cGI] != null) {\n contents[_CGI] = (0, import_smithy_client.expectString)(output[_cGI]);\n }\n if (output[_cNA] != null) {\n contents[_CNAo] = (0, import_smithy_client.expectString)(output[_cNA]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n return contents;\n}, \"de_AnalysisRouteTableRoute\");\nvar de_AnalysisSecurityGroupRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_di] != null) {\n contents[_Di] = (0, import_smithy_client.expectString)(output[_di]);\n }\n if (output[_sGI] != null) {\n contents[_SGIe] = (0, import_smithy_client.expectString)(output[_sGI]);\n }\n if (output[_pRo] != null) {\n contents[_PR] = de_PortRange(output[_pRo], context);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n return contents;\n}, \"de_AnalysisSecurityGroupRule\");\nvar de_ApplySecurityGroupsToClientVpnTargetNetworkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupIds === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIe] != null && output[_sGIe][_i] != null) {\n contents[_SGI] = de_ClientVpnSecurityGroupIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIe][_i]), context);\n }\n return contents;\n}, \"de_ApplySecurityGroupsToClientVpnTargetNetworkResult\");\nvar de_ArchitectureTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ArchitectureTypeList\");\nvar de_ArnList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ArnList\");\nvar de_AsnAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_as] != null) {\n contents[_As] = (0, import_smithy_client.expectString)(output[_as]);\n }\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_AsnAssociation\");\nvar de_AsnAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AsnAssociation(entry, context);\n });\n}, \"de_AsnAssociationSet\");\nvar de_AsPath = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AsPath\");\nvar de_AssignedPrivateIpAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_AssignedPrivateIpAddress\");\nvar de_AssignedPrivateIpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AssignedPrivateIpAddress(entry, context);\n });\n}, \"de_AssignedPrivateIpAddressList\");\nvar de_AssignIpv6AddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.assignedIpv6Addresses === \"\") {\n contents[_AIAs] = [];\n } else if (output[_aIA] != null && output[_aIA][_i] != null) {\n contents[_AIAs] = de_Ipv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIA][_i]), context);\n }\n if (output.assignedIpv6PrefixSet === \"\") {\n contents[_AIP] = [];\n } else if (output[_aIPS] != null && output[_aIPS][_i] != null) {\n contents[_AIP] = de_IpPrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIPS][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n return contents;\n}, \"de_AssignIpv6AddressesResult\");\nvar de_AssignPrivateIpAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output.assignedPrivateIpAddressesSet === \"\") {\n contents[_APIAss] = [];\n } else if (output[_aPIAS] != null && output[_aPIAS][_i] != null) {\n contents[_APIAss] = de_AssignedPrivateIpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aPIAS][_i]), context);\n }\n if (output.assignedIpv4PrefixSet === \"\") {\n contents[_AIPs] = [];\n } else if (output[_aIPSs] != null && output[_aIPSs][_i] != null) {\n contents[_AIPs] = de_Ipv4PrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIPSs][_i]), context);\n }\n return contents;\n}, \"de_AssignPrivateIpAddressesResult\");\nvar de_AssignPrivateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_AssignPrivateNatGatewayAddressResult\");\nvar de_AssociateAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n return contents;\n}, \"de_AssociateAddressResult\");\nvar de_AssociateCapacityReservationBillingOwnerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_AssociateCapacityReservationBillingOwnerResult\");\nvar de_AssociateClientVpnTargetNetworkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_AssociationStatus(output[_sta], context);\n }\n return contents;\n}, \"de_AssociateClientVpnTargetNetworkResult\");\nvar de_AssociatedRole = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRA] != null) {\n contents[_ARA] = (0, import_smithy_client.expectString)(output[_aRA]);\n }\n if (output[_cSBN] != null) {\n contents[_CSBN] = (0, import_smithy_client.expectString)(output[_cSBN]);\n }\n if (output[_cSOK] != null) {\n contents[_CSOK] = (0, import_smithy_client.expectString)(output[_cSOK]);\n }\n if (output[_eKKI] != null) {\n contents[_EKKI] = (0, import_smithy_client.expectString)(output[_eKKI]);\n }\n return contents;\n}, \"de_AssociatedRole\");\nvar de_AssociatedRolesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociatedRole(entry, context);\n });\n}, \"de_AssociatedRolesList\");\nvar de_AssociatedTargetNetwork = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nI] != null) {\n contents[_NIe] = (0, import_smithy_client.expectString)(output[_nI]);\n }\n if (output[_nT] != null) {\n contents[_NTe] = (0, import_smithy_client.expectString)(output[_nT]);\n }\n return contents;\n}, \"de_AssociatedTargetNetwork\");\nvar de_AssociatedTargetNetworkSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociatedTargetNetwork(entry, context);\n });\n}, \"de_AssociatedTargetNetworkSet\");\nvar de_AssociateEnclaveCertificateIamRoleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cSBN] != null) {\n contents[_CSBN] = (0, import_smithy_client.expectString)(output[_cSBN]);\n }\n if (output[_cSOK] != null) {\n contents[_CSOK] = (0, import_smithy_client.expectString)(output[_cSOK]);\n }\n if (output[_eKKI] != null) {\n contents[_EKKI] = (0, import_smithy_client.expectString)(output[_eKKI]);\n }\n return contents;\n}, \"de_AssociateEnclaveCertificateIamRoleResult\");\nvar de_AssociateIamInstanceProfileResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIPA] != null) {\n contents[_IIPA] = de_IamInstanceProfileAssociation(output[_iIPA], context);\n }\n return contents;\n}, \"de_AssociateIamInstanceProfileResult\");\nvar de_AssociateInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_AssociateInstanceEventWindowResult\");\nvar de_AssociateIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aA] != null) {\n contents[_AAsn] = de_AsnAssociation(output[_aA], context);\n }\n return contents;\n}, \"de_AssociateIpamByoasnResult\");\nvar de_AssociateIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDA] != null) {\n contents[_IRDA] = de_IpamResourceDiscoveryAssociation(output[_iRDA], context);\n }\n return contents;\n}, \"de_AssociateIpamResourceDiscoveryResult\");\nvar de_AssociateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_AssociateNatGatewayAddressResult\");\nvar de_AssociateRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSA] != null) {\n contents[_RSAo] = de_RouteServerAssociation(output[_rSA], context);\n }\n return contents;\n}, \"de_AssociateRouteServerResult\");\nvar de_AssociateRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_aS] != null) {\n contents[_ASs] = de_RouteTableAssociationState(output[_aS], context);\n }\n return contents;\n}, \"de_AssociateRouteTableResult\");\nvar de_AssociateSecurityGroupVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_AssociateSecurityGroupVpcResult\");\nvar de_AssociateSubnetCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_SubnetIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n return contents;\n}, \"de_AssociateSubnetCidrBlockResult\");\nvar de_AssociateTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_AssociateTransitGatewayMulticastDomainResult\");\nvar de_AssociateTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayPolicyTableAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_AssociateTransitGatewayPolicyTableResult\");\nvar de_AssociateTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_AssociateTransitGatewayRouteTableResult\");\nvar de_AssociateTrunkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iA] != null) {\n contents[_IAn] = de_TrunkInterfaceAssociation(output[_iA], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_AssociateTrunkInterfaceResult\");\nvar de_AssociateVpcCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_VpcIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_cBA] != null) {\n contents[_CBA] = de_VpcCidrBlockAssociation(output[_cBA], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_AssociateVpcCidrBlockResult\");\nvar de_AssociationStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_AssociationStatus\");\nvar de_AttachClassicLinkVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_AttachClassicLinkVpcResult\");\nvar de_AttachmentEnaSrdSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_eSE]);\n }\n if (output[_eSUS] != null) {\n contents[_ESUS] = de_AttachmentEnaSrdUdpSpecification(output[_eSUS], context);\n }\n return contents;\n}, \"de_AttachmentEnaSrdSpecification\");\nvar de_AttachmentEnaSrdUdpSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_eSUE]);\n }\n return contents;\n}, \"de_AttachmentEnaSrdUdpSpecification\");\nvar de_AttachNetworkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n return contents;\n}, \"de_AttachNetworkInterfaceResult\");\nvar de_AttachVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_AttachVerifiedAccessTrustProviderResult\");\nvar de_AttachVpnGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_at] != null) {\n contents[_VA] = de_VpcAttachment(output[_at], context);\n }\n return contents;\n}, \"de_AttachVpnGatewayResult\");\nvar de_AttributeBooleanValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.parseBoolean)(output[_v]);\n }\n return contents;\n}, \"de_AttributeBooleanValue\");\nvar de_AttributeSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aN] != null) {\n contents[_ANt] = (0, import_smithy_client.expectString)(output[_aN]);\n }\n if (output[_mFV] != null) {\n contents[_MFV] = (0, import_smithy_client.expectString)(output[_mFV]);\n }\n if (output[_nOMA] != null) {\n contents[_NOMA] = (0, import_smithy_client.strictParseInt32)(output[_nOMA]);\n }\n if (output[_nOUA] != null) {\n contents[_NOUA] = (0, import_smithy_client.strictParseInt32)(output[_nOUA]);\n }\n if (output.regionalSummarySet === \"\") {\n contents[_RSeg] = [];\n } else if (output[_rSS] != null && output[_rSS][_i] != null) {\n contents[_RSeg] = de_RegionalSummaryList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSS][_i]), context);\n }\n return contents;\n}, \"de_AttributeSummary\");\nvar de_AttributeSummaryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AttributeSummary(entry, context);\n });\n}, \"de_AttributeSummaryList\");\nvar de_AttributeValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_AttributeValue\");\nvar de_AuthorizationRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_aAc] != null) {\n contents[_AAc] = (0, import_smithy_client.parseBoolean)(output[_aAc]);\n }\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnAuthorizationRuleStatus(output[_sta], context);\n }\n return contents;\n}, \"de_AuthorizationRule\");\nvar de_AuthorizationRuleSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AuthorizationRule(entry, context);\n });\n}, \"de_AuthorizationRuleSet\");\nvar de_AuthorizeClientVpnIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnAuthorizationRuleStatus(output[_sta], context);\n }\n return contents;\n}, \"de_AuthorizeClientVpnIngressResult\");\nvar de_AuthorizeSecurityGroupEgressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.securityGroupRuleSet === \"\") {\n contents[_SGR] = [];\n } else if (output[_sGRS] != null && output[_sGRS][_i] != null) {\n contents[_SGR] = de_SecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRS][_i]), context);\n }\n return contents;\n}, \"de_AuthorizeSecurityGroupEgressResult\");\nvar de_AuthorizeSecurityGroupIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.securityGroupRuleSet === \"\") {\n contents[_SGR] = [];\n } else if (output[_sGRS] != null && output[_sGRS][_i] != null) {\n contents[_SGR] = de_SecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRS][_i]), context);\n }\n return contents;\n}, \"de_AuthorizeSecurityGroupIngressResult\");\nvar de_AvailabilityZone = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oIS] != null) {\n contents[_OIS] = (0, import_smithy_client.expectString)(output[_oIS]);\n }\n if (output.messageSet === \"\") {\n contents[_Mes] = [];\n } else if (output[_mS] != null && output[_mS][_i] != null) {\n contents[_Mes] = de_AvailabilityZoneMessageList((0, import_smithy_client.getArrayIfSingleItem)(output[_mS][_i]), context);\n }\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n if (output[_zN] != null) {\n contents[_ZNo] = (0, import_smithy_client.expectString)(output[_zN]);\n }\n if (output[_zI] != null) {\n contents[_ZIo] = (0, import_smithy_client.expectString)(output[_zI]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_zT] != null) {\n contents[_ZT] = (0, import_smithy_client.expectString)(output[_zT]);\n }\n if (output[_pZN] != null) {\n contents[_PZN] = (0, import_smithy_client.expectString)(output[_pZN]);\n }\n if (output[_pZI] != null) {\n contents[_PZI] = (0, import_smithy_client.expectString)(output[_pZI]);\n }\n if (output[_gLN] != null) {\n contents[_GLN] = (0, import_smithy_client.expectString)(output[_gLN]);\n }\n if (output[_zS] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_zS]);\n }\n return contents;\n}, \"de_AvailabilityZone\");\nvar de_AvailabilityZoneList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AvailabilityZone(entry, context);\n });\n}, \"de_AvailabilityZoneList\");\nvar de_AvailabilityZoneMessage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_AvailabilityZoneMessage\");\nvar de_AvailabilityZoneMessageList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AvailabilityZoneMessage(entry, context);\n });\n}, \"de_AvailabilityZoneMessageList\");\nvar de_AvailableCapacity = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.availableInstanceCapacity === \"\") {\n contents[_AIC] = [];\n } else if (output[_aIC] != null && output[_aIC][_i] != null) {\n contents[_AIC] = de_AvailableInstanceCapacityList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIC][_i]), context);\n }\n if (output[_aVC] != null) {\n contents[_AVC] = (0, import_smithy_client.strictParseInt32)(output[_aVC]);\n }\n return contents;\n}, \"de_AvailableCapacity\");\nvar de_AvailableInstanceCapacityList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceCapacity(entry, context);\n });\n}, \"de_AvailableInstanceCapacityList\");\nvar de_BandwidthWeightingTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_BandwidthWeightingTypeList\");\nvar de_BaselineEbsBandwidthMbps = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_BaselineEbsBandwidthMbps\");\nvar de_BaselinePerformanceFactors = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cp] != null) {\n contents[_Cp] = de_CpuPerformanceFactor(output[_cp], context);\n }\n return contents;\n}, \"de_BaselinePerformanceFactors\");\nvar de_BlockDeviceMapping = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eb] != null) {\n contents[_E] = de_EbsBlockDevice(output[_eb], context);\n }\n if (output[_nD] != null) {\n contents[_ND] = (0, import_smithy_client.expectString)(output[_nD]);\n }\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_vN] != null) {\n contents[_VN] = (0, import_smithy_client.expectString)(output[_vN]);\n }\n return contents;\n}, \"de_BlockDeviceMapping\");\nvar de_BlockDeviceMappingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_BlockDeviceMapping(entry, context);\n });\n}, \"de_BlockDeviceMappingList\");\nvar de_BlockDeviceMappingResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_vN] != null) {\n contents[_VN] = (0, import_smithy_client.expectString)(output[_vN]);\n }\n if (output[_eb] != null) {\n contents[_E] = de_EbsBlockDeviceResponse(output[_eb], context);\n }\n if (output[_nD] != null) {\n contents[_ND] = (0, import_smithy_client.expectString)(output[_nD]);\n }\n return contents;\n}, \"de_BlockDeviceMappingResponse\");\nvar de_BlockDeviceMappingResponseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_BlockDeviceMappingResponse(entry, context);\n });\n}, \"de_BlockDeviceMappingResponseList\");\nvar de_BlockPublicAccessStates = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iGBM] != null) {\n contents[_IGBM] = (0, import_smithy_client.expectString)(output[_iGBM]);\n }\n return contents;\n}, \"de_BlockPublicAccessStates\");\nvar de_BootModeTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_BootModeTypeList\");\nvar de_BundleInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bIT] != null) {\n contents[_BTu] = de_BundleTask(output[_bIT], context);\n }\n return contents;\n}, \"de_BundleInstanceResult\");\nvar de_BundleTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_bI] != null) {\n contents[_BIu] = (0, import_smithy_client.expectString)(output[_bI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_uT] != null) {\n contents[_UTp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uT]));\n }\n if (output[_sto] != null) {\n contents[_St] = de_Storage(output[_sto], context);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_er] != null) {\n contents[_BTE] = de_BundleTaskError(output[_er], context);\n }\n return contents;\n}, \"de_BundleTask\");\nvar de_BundleTaskError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_BundleTaskError\");\nvar de_BundleTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_BundleTask(entry, context);\n });\n}, \"de_BundleTaskList\");\nvar de_Byoasn = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_as] != null) {\n contents[_As] = (0, import_smithy_client.expectString)(output[_as]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_Byoasn\");\nvar de_ByoasnSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Byoasn(entry, context);\n });\n}, \"de_ByoasnSet\");\nvar de_ByoipCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.asnAssociationSet === \"\") {\n contents[_AAsns] = [];\n } else if (output[_aAS] != null && output[_aAS][_i] != null) {\n contents[_AAsns] = de_AsnAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aAS][_i]), context);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n return contents;\n}, \"de_ByoipCidr\");\nvar de_ByoipCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ByoipCidr(entry, context);\n });\n}, \"de_ByoipCidrSet\");\nvar de_CancelBundleTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bIT] != null) {\n contents[_BTu] = de_BundleTask(output[_bIT], context);\n }\n return contents;\n}, \"de_CancelBundleTaskResult\");\nvar de_CancelCapacityReservationFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_CancelCapacityReservationFleetError\");\nvar de_CancelCapacityReservationFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulFleetCancellationSet === \"\") {\n contents[_SFC] = [];\n } else if (output[_sFCS] != null && output[_sFCS][_i] != null) {\n contents[_SFC] = de_CapacityReservationFleetCancellationStateSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_sFCS][_i]),\n context\n );\n }\n if (output.failedFleetCancellationSet === \"\") {\n contents[_FFC] = [];\n } else if (output[_fFCS] != null && output[_fFCS][_i] != null) {\n contents[_FFC] = de_FailedCapacityReservationFleetCancellationResultSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_fFCS][_i]),\n context\n );\n }\n return contents;\n}, \"de_CancelCapacityReservationFleetsResult\");\nvar de_CancelCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CancelCapacityReservationResult\");\nvar de_CancelDeclarativePoliciesReportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CancelDeclarativePoliciesReportResult\");\nvar de_CancelImageLaunchPermissionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CancelImageLaunchPermissionResult\");\nvar de_CancelImportTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_pS] != null) {\n contents[_PSr] = (0, import_smithy_client.expectString)(output[_pS]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_CancelImportTaskResult\");\nvar de_CancelledSpotInstanceRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_CancelledSpotInstanceRequest\");\nvar de_CancelledSpotInstanceRequestList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CancelledSpotInstanceRequest(entry, context);\n });\n}, \"de_CancelledSpotInstanceRequestList\");\nvar de_CancelReservedInstancesListingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesListingsSet === \"\") {\n contents[_RIL] = [];\n } else if (output[_rILS] != null && output[_rILS][_i] != null) {\n contents[_RIL] = de_ReservedInstancesListingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rILS][_i]), context);\n }\n return contents;\n}, \"de_CancelReservedInstancesListingResult\");\nvar de_CancelSpotFleetRequestsError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsError\");\nvar de_CancelSpotFleetRequestsErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_CancelSpotFleetRequestsError(output[_er], context);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsErrorItem\");\nvar de_CancelSpotFleetRequestsErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CancelSpotFleetRequestsErrorItem(entry, context);\n });\n}, \"de_CancelSpotFleetRequestsErrorSet\");\nvar de_CancelSpotFleetRequestsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulFleetRequestSet === \"\") {\n contents[_SFR] = [];\n } else if (output[_sFRS] != null && output[_sFRS][_i] != null) {\n contents[_SFR] = de_CancelSpotFleetRequestsSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sFRS][_i]), context);\n }\n if (output.unsuccessfulFleetRequestSet === \"\") {\n contents[_UFR] = [];\n } else if (output[_uFRS] != null && output[_uFRS][_i] != null) {\n contents[_UFR] = de_CancelSpotFleetRequestsErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_uFRS][_i]), context);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsResponse\");\nvar de_CancelSpotFleetRequestsSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cSFRS] != null) {\n contents[_CSFRS] = (0, import_smithy_client.expectString)(output[_cSFRS]);\n }\n if (output[_pSFRS] != null) {\n contents[_PSFRS] = (0, import_smithy_client.expectString)(output[_pSFRS]);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsSuccessItem\");\nvar de_CancelSpotFleetRequestsSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CancelSpotFleetRequestsSuccessItem(entry, context);\n });\n}, \"de_CancelSpotFleetRequestsSuccessSet\");\nvar de_CancelSpotInstanceRequestsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotInstanceRequestSet === \"\") {\n contents[_CSIRa] = [];\n } else if (output[_sIRS] != null && output[_sIRS][_i] != null) {\n contents[_CSIRa] = de_CancelledSpotInstanceRequestList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIRS][_i]), context);\n }\n return contents;\n}, \"de_CancelSpotInstanceRequestsResult\");\nvar de_CapacityAllocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTl] != null) {\n contents[_ATl] = (0, import_smithy_client.expectString)(output[_aTl]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n return contents;\n}, \"de_CapacityAllocation\");\nvar de_CapacityAllocations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityAllocation(entry, context);\n });\n}, \"de_CapacityAllocations\");\nvar de_CapacityBlockExtension = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_cBEOI] != null) {\n contents[_CBEOI] = (0, import_smithy_client.expectString)(output[_cBEOI]);\n }\n if (output[_cBEDH] != null) {\n contents[_CBEDH] = (0, import_smithy_client.strictParseInt32)(output[_cBEDH]);\n }\n if (output[_cBES] != null) {\n contents[_CBES] = (0, import_smithy_client.expectString)(output[_cBES]);\n }\n if (output[_cBEPD] != null) {\n contents[_CBEPD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBEPD]));\n }\n if (output[_cBESD] != null) {\n contents[_CBESD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBESD]));\n }\n if (output[_cBEED] != null) {\n contents[_CBEED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBEED]));\n }\n if (output[_uF] != null) {\n contents[_UF] = (0, import_smithy_client.expectString)(output[_uF]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n return contents;\n}, \"de_CapacityBlockExtension\");\nvar de_CapacityBlockExtensionOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cBEOI] != null) {\n contents[_CBEOI] = (0, import_smithy_client.expectString)(output[_cBEOI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_cBESD] != null) {\n contents[_CBESD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBESD]));\n }\n if (output[_cBEED] != null) {\n contents[_CBEED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBEED]));\n }\n if (output[_cBEDH] != null) {\n contents[_CBEDH] = (0, import_smithy_client.strictParseInt32)(output[_cBEDH]);\n }\n if (output[_uF] != null) {\n contents[_UF] = (0, import_smithy_client.expectString)(output[_uF]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n return contents;\n}, \"de_CapacityBlockExtensionOffering\");\nvar de_CapacityBlockExtensionOfferingSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityBlockExtensionOffering(entry, context);\n });\n}, \"de_CapacityBlockExtensionOfferingSet\");\nvar de_CapacityBlockExtensionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityBlockExtension(entry, context);\n });\n}, \"de_CapacityBlockExtensionSet\");\nvar de_CapacityBlockOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cBOI] != null) {\n contents[_CBOI] = (0, import_smithy_client.expectString)(output[_cBOI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_cBDH] != null) {\n contents[_CBDH] = (0, import_smithy_client.strictParseInt32)(output[_cBDH]);\n }\n if (output[_uF] != null) {\n contents[_UF] = (0, import_smithy_client.expectString)(output[_uF]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_cBDM] != null) {\n contents[_CBDM] = (0, import_smithy_client.strictParseInt32)(output[_cBDM]);\n }\n return contents;\n}, \"de_CapacityBlockOffering\");\nvar de_CapacityBlockOfferingSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityBlockOffering(entry, context);\n });\n}, \"de_CapacityBlockOfferingSet\");\nvar de_CapacityReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_cRA] != null) {\n contents[_CRA] = (0, import_smithy_client.expectString)(output[_cRA]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iPn] != null) {\n contents[_IPn] = (0, import_smithy_client.expectString)(output[_iPn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_tIC] != null) {\n contents[_TICo] = (0, import_smithy_client.strictParseInt32)(output[_tIC]);\n }\n if (output[_aICv] != null) {\n contents[_AICv] = (0, import_smithy_client.strictParseInt32)(output[_aICv]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_eS] != null) {\n contents[_ES] = (0, import_smithy_client.parseBoolean)(output[_eS]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_eDT] != null) {\n contents[_EDT] = (0, import_smithy_client.expectString)(output[_eDT]);\n }\n if (output[_iMC] != null) {\n contents[_IMC] = (0, import_smithy_client.expectString)(output[_iMC]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_pGA] != null) {\n contents[_PGA] = (0, import_smithy_client.expectString)(output[_pGA]);\n }\n if (output.capacityAllocationSet === \"\") {\n contents[_CAa] = [];\n } else if (output[_cAS] != null && output[_cAS][_i] != null) {\n contents[_CAa] = de_CapacityAllocations((0, import_smithy_client.getArrayIfSingleItem)(output[_cAS][_i]), context);\n }\n if (output[_rT] != null) {\n contents[_RTe] = (0, import_smithy_client.expectString)(output[_rT]);\n }\n if (output[_uRBOI] != null) {\n contents[_URBOI] = (0, import_smithy_client.expectString)(output[_uRBOI]);\n }\n if (output[_cIom] != null) {\n contents[_CIomm] = de_CapacityReservationCommitmentInfo(output[_cIom], context);\n }\n if (output[_dP] != null) {\n contents[_DP] = (0, import_smithy_client.expectString)(output[_dP]);\n }\n return contents;\n}, \"de_CapacityReservation\");\nvar de_CapacityReservationBillingRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_rB] != null) {\n contents[_RB] = (0, import_smithy_client.expectString)(output[_rB]);\n }\n if (output[_uRBOI] != null) {\n contents[_URBOI] = (0, import_smithy_client.expectString)(output[_uRBOI]);\n }\n if (output[_lUT] != null) {\n contents[_LUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lUT]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_cRIa] != null) {\n contents[_CRIap] = de_CapacityReservationInfo(output[_cRIa], context);\n }\n return contents;\n}, \"de_CapacityReservationBillingRequest\");\nvar de_CapacityReservationBillingRequestSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationBillingRequest(entry, context);\n });\n}, \"de_CapacityReservationBillingRequestSet\");\nvar de_CapacityReservationCommitmentInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cIC] != null) {\n contents[_CIC] = (0, import_smithy_client.strictParseInt32)(output[_cIC]);\n }\n if (output[_cED] != null) {\n contents[_CED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cED]));\n }\n return contents;\n}, \"de_CapacityReservationCommitmentInfo\");\nvar de_CapacityReservationFleet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_cRFA] != null) {\n contents[_CRFA] = (0, import_smithy_client.expectString)(output[_cRFA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tTC] != null) {\n contents[_TTC] = (0, import_smithy_client.strictParseInt32)(output[_tTC]);\n }\n if (output[_tFC] != null) {\n contents[_TFC] = (0, import_smithy_client.strictParseFloat)(output[_tFC]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_iMC] != null) {\n contents[_IMC] = (0, import_smithy_client.expectString)(output[_iMC]);\n }\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output.instanceTypeSpecificationSet === \"\") {\n contents[_ITS] = [];\n } else if (output[_iTSS] != null && output[_iTSS][_i] != null) {\n contents[_ITS] = de_FleetCapacityReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iTSS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_CapacityReservationFleet\");\nvar de_CapacityReservationFleetCancellationState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cFS] != null) {\n contents[_CFS] = (0, import_smithy_client.expectString)(output[_cFS]);\n }\n if (output[_pFS] != null) {\n contents[_PFS] = (0, import_smithy_client.expectString)(output[_pFS]);\n }\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n return contents;\n}, \"de_CapacityReservationFleetCancellationState\");\nvar de_CapacityReservationFleetCancellationStateSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationFleetCancellationState(entry, context);\n });\n}, \"de_CapacityReservationFleetCancellationStateSet\");\nvar de_CapacityReservationFleetSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationFleet(entry, context);\n });\n}, \"de_CapacityReservationFleetSet\");\nvar de_CapacityReservationGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gA] != null) {\n contents[_GA] = (0, import_smithy_client.expectString)(output[_gA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_CapacityReservationGroup\");\nvar de_CapacityReservationGroupSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationGroup(entry, context);\n });\n}, \"de_CapacityReservationGroupSet\");\nvar de_CapacityReservationInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_CapacityReservationInfo\");\nvar de_CapacityReservationOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uS] != null) {\n contents[_USs] = (0, import_smithy_client.expectString)(output[_uS]);\n }\n return contents;\n}, \"de_CapacityReservationOptions\");\nvar de_CapacityReservationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservation(entry, context);\n });\n}, \"de_CapacityReservationSet\");\nvar de_CapacityReservationSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRP] != null) {\n contents[_CRP] = (0, import_smithy_client.expectString)(output[_cRP]);\n }\n if (output[_cRT] != null) {\n contents[_CRTa] = de_CapacityReservationTargetResponse(output[_cRT], context);\n }\n return contents;\n}, \"de_CapacityReservationSpecificationResponse\");\nvar de_CapacityReservationTargetResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_cRRGA] != null) {\n contents[_CRRGA] = (0, import_smithy_client.expectString)(output[_cRRGA]);\n }\n return contents;\n}, \"de_CapacityReservationTargetResponse\");\nvar de_CarrierGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cGI] != null) {\n contents[_CGI] = (0, import_smithy_client.expectString)(output[_cGI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_CarrierGateway\");\nvar de_CarrierGatewaySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CarrierGateway(entry, context);\n });\n}, \"de_CarrierGatewaySet\");\nvar de_CertificateAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRCC] != null) {\n contents[_CRCC] = (0, import_smithy_client.expectString)(output[_cRCC]);\n }\n return contents;\n}, \"de_CertificateAuthentication\");\nvar de_CidrBlock = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n return contents;\n}, \"de_CidrBlock\");\nvar de_CidrBlockSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CidrBlock(entry, context);\n });\n}, \"de_CidrBlockSet\");\nvar de_ClassicLinkDnsSupport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cLDS] != null) {\n contents[_CLDS] = (0, import_smithy_client.parseBoolean)(output[_cLDS]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_ClassicLinkDnsSupport\");\nvar de_ClassicLinkDnsSupportList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClassicLinkDnsSupport(entry, context);\n });\n}, \"de_ClassicLinkDnsSupportList\");\nvar de_ClassicLinkInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_ClassicLinkInstance\");\nvar de_ClassicLinkInstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClassicLinkInstance(entry, context);\n });\n}, \"de_ClassicLinkInstanceList\");\nvar de_ClassicLoadBalancer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_ClassicLoadBalancer\");\nvar de_ClassicLoadBalancers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClassicLoadBalancer(entry, context);\n });\n}, \"de_ClassicLoadBalancers\");\nvar de_ClassicLoadBalancersConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.classicLoadBalancers === \"\") {\n contents[_CLB] = [];\n } else if (output[_cLB] != null && output[_cLB][_i] != null) {\n contents[_CLB] = de_ClassicLoadBalancers((0, import_smithy_client.getArrayIfSingleItem)(output[_cLB][_i]), context);\n }\n return contents;\n}, \"de_ClassicLoadBalancersConfig\");\nvar de_ClientCertificateRevocationListStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientCertificateRevocationListStatus\");\nvar de_ClientConnectResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_lFA] != null) {\n contents[_LFA] = (0, import_smithy_client.expectString)(output[_lFA]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointAttributeStatus(output[_sta], context);\n }\n return contents;\n}, \"de_ClientConnectResponseOptions\");\nvar de_ClientLoginBannerResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_bT] != null) {\n contents[_BT] = (0, import_smithy_client.expectString)(output[_bT]);\n }\n return contents;\n}, \"de_ClientLoginBannerResponseOptions\");\nvar de_ClientRouteEnforcementResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_enf] != null) {\n contents[_Enf] = (0, import_smithy_client.parseBoolean)(output[_enf]);\n }\n return contents;\n}, \"de_ClientRouteEnforcementResponseOptions\");\nvar de_ClientVpnAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_aD] != null) {\n contents[_AD] = de_DirectoryServiceAuthentication(output[_aD], context);\n }\n if (output[_mA] != null) {\n contents[_MA] = de_CertificateAuthentication(output[_mA], context);\n }\n if (output[_fA] != null) {\n contents[_FA] = de_FederatedAuthentication(output[_fA], context);\n }\n return contents;\n}, \"de_ClientVpnAuthentication\");\nvar de_ClientVpnAuthenticationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnAuthentication(entry, context);\n });\n}, \"de_ClientVpnAuthenticationList\");\nvar de_ClientVpnAuthorizationRuleStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnAuthorizationRuleStatus\");\nvar de_ClientVpnConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectString)(output[_ti]);\n }\n if (output[_cIon] != null) {\n contents[_CIo] = (0, import_smithy_client.expectString)(output[_cIon]);\n }\n if (output[_us] != null) {\n contents[_Us] = (0, import_smithy_client.expectString)(output[_us]);\n }\n if (output[_cET] != null) {\n contents[_CETo] = (0, import_smithy_client.expectString)(output[_cET]);\n }\n if (output[_iB] != null) {\n contents[_IB] = (0, import_smithy_client.expectString)(output[_iB]);\n }\n if (output[_eB] != null) {\n contents[_EB] = (0, import_smithy_client.expectString)(output[_eB]);\n }\n if (output[_iPng] != null) {\n contents[_IPng] = (0, import_smithy_client.expectString)(output[_iPng]);\n }\n if (output[_eP] != null) {\n contents[_EPg] = (0, import_smithy_client.expectString)(output[_eP]);\n }\n if (output[_cIl] != null) {\n contents[_CIli] = (0, import_smithy_client.expectString)(output[_cIl]);\n }\n if (output[_cN] != null) {\n contents[_CN] = (0, import_smithy_client.expectString)(output[_cN]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnConnectionStatus(output[_sta], context);\n }\n if (output[_cETo] != null) {\n contents[_CETon] = (0, import_smithy_client.expectString)(output[_cETo]);\n }\n if (output.postureComplianceStatusSet === \"\") {\n contents[_PCS] = [];\n } else if (output[_pCSS] != null && output[_pCSS][_i] != null) {\n contents[_PCS] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_pCSS][_i]), context);\n }\n return contents;\n}, \"de_ClientVpnConnection\");\nvar de_ClientVpnConnectionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnConnection(entry, context);\n });\n}, \"de_ClientVpnConnectionSet\");\nvar de_ClientVpnConnectionStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnConnectionStatus\");\nvar de_ClientVpnEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointStatus(output[_sta], context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_dT] != null) {\n contents[_DTel] = (0, import_smithy_client.expectString)(output[_dT]);\n }\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_cCB] != null) {\n contents[_CCB] = (0, import_smithy_client.expectString)(output[_cCB]);\n }\n if (output.dnsServer === \"\") {\n contents[_DSn] = [];\n } else if (output[_dS] != null && output[_dS][_i] != null) {\n contents[_DSn] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dS][_i]), context);\n }\n if (output[_sTp] != null) {\n contents[_ST] = (0, import_smithy_client.parseBoolean)(output[_sTp]);\n }\n if (output[_vP] != null) {\n contents[_VPp] = (0, import_smithy_client.expectString)(output[_vP]);\n }\n if (output[_tP] != null) {\n contents[_TPr] = (0, import_smithy_client.expectString)(output[_tP]);\n }\n if (output[_vPp] != null) {\n contents[_VP] = (0, import_smithy_client.strictParseInt32)(output[_vPp]);\n }\n if (output.associatedTargetNetwork === \"\") {\n contents[_ATN] = [];\n } else if (output[_aTN] != null && output[_aTN][_i] != null) {\n contents[_ATN] = de_AssociatedTargetNetworkSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aTN][_i]), context);\n }\n if (output[_sCA] != null) {\n contents[_SCA] = (0, import_smithy_client.expectString)(output[_sCA]);\n }\n if (output.authenticationOptions === \"\") {\n contents[_AO] = [];\n } else if (output[_aO] != null && output[_aO][_i] != null) {\n contents[_AO] = de_ClientVpnAuthenticationList((0, import_smithy_client.getArrayIfSingleItem)(output[_aO][_i]), context);\n }\n if (output[_cLO] != null) {\n contents[_CLO] = de_ConnectionLogResponseOptions(output[_cLO], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_ClientVpnSecurityGroupIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sSPU] != null) {\n contents[_SSPU] = (0, import_smithy_client.expectString)(output[_sSPU]);\n }\n if (output[_cCO] != null) {\n contents[_CCO] = de_ClientConnectResponseOptions(output[_cCO], context);\n }\n if (output[_sTH] != null) {\n contents[_STH] = (0, import_smithy_client.strictParseInt32)(output[_sTH]);\n }\n if (output[_cLBO] != null) {\n contents[_CLBO] = de_ClientLoginBannerResponseOptions(output[_cLBO], context);\n }\n if (output[_cREO] != null) {\n contents[_CREO] = de_ClientRouteEnforcementResponseOptions(output[_cREO], context);\n }\n if (output[_dOST] != null) {\n contents[_DOST] = (0, import_smithy_client.parseBoolean)(output[_dOST]);\n }\n return contents;\n}, \"de_ClientVpnEndpoint\");\nvar de_ClientVpnEndpointAttributeStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnEndpointAttributeStatus\");\nvar de_ClientVpnEndpointStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnEndpointStatus\");\nvar de_ClientVpnRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_tSa] != null) {\n contents[_TSa] = (0, import_smithy_client.expectString)(output[_tSa]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_o] != null) {\n contents[_Or] = (0, import_smithy_client.expectString)(output[_o]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnRouteStatus(output[_sta], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n return contents;\n}, \"de_ClientVpnRoute\");\nvar de_ClientVpnRouteSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnRoute(entry, context);\n });\n}, \"de_ClientVpnRouteSet\");\nvar de_ClientVpnRouteStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnRouteStatus\");\nvar de_ClientVpnSecurityGroupIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ClientVpnSecurityGroupIdSet\");\nvar de_CloudWatchLogOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lE] != null) {\n contents[_LE] = (0, import_smithy_client.parseBoolean)(output[_lE]);\n }\n if (output[_lGA] != null) {\n contents[_LGA] = (0, import_smithy_client.expectString)(output[_lGA]);\n }\n if (output[_lOF] != null) {\n contents[_LOF] = (0, import_smithy_client.expectString)(output[_lOF]);\n }\n return contents;\n}, \"de_CloudWatchLogOptions\");\nvar de_CoipAddressUsage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_aAI] != null) {\n contents[_AAI] = (0, import_smithy_client.expectString)(output[_aAI]);\n }\n if (output[_aSw] != null) {\n contents[_ASw] = (0, import_smithy_client.expectString)(output[_aSw]);\n }\n if (output[_cIop] != null) {\n contents[_CIop] = (0, import_smithy_client.expectString)(output[_cIop]);\n }\n return contents;\n}, \"de_CoipAddressUsage\");\nvar de_CoipAddressUsageSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CoipAddressUsage(entry, context);\n });\n}, \"de_CoipAddressUsageSet\");\nvar de_CoipCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_cPI] != null) {\n contents[_CPIo] = (0, import_smithy_client.expectString)(output[_cPI]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n return contents;\n}, \"de_CoipCidr\");\nvar de_CoipPool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output.poolCidrSet === \"\") {\n contents[_PCo] = [];\n } else if (output[_pCS] != null && output[_pCS][_i] != null) {\n contents[_PCo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_pCS][_i]), context);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pA] != null) {\n contents[_PAo] = (0, import_smithy_client.expectString)(output[_pA]);\n }\n return contents;\n}, \"de_CoipPool\");\nvar de_CoipPoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CoipPool(entry, context);\n });\n}, \"de_CoipPoolSet\");\nvar de_ConfirmProductInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_ConfirmProductInstanceResult\");\nvar de_ConnectionLogResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_En] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_En]);\n }\n if (output[_CLG] != null) {\n contents[_CLG] = (0, import_smithy_client.expectString)(output[_CLG]);\n }\n if (output[_CLS] != null) {\n contents[_CLS] = (0, import_smithy_client.expectString)(output[_CLS]);\n }\n return contents;\n}, \"de_ConnectionLogResponseOptions\");\nvar de_ConnectionNotification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cNI] != null) {\n contents[_CNIon] = (0, import_smithy_client.expectString)(output[_cNI]);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_cNT] != null) {\n contents[_CNT] = (0, import_smithy_client.expectString)(output[_cNT]);\n }\n if (output[_cNAo] != null) {\n contents[_CNAon] = (0, import_smithy_client.expectString)(output[_cNAo]);\n }\n if (output.connectionEvents === \"\") {\n contents[_CEo] = [];\n } else if (output[_cE] != null && output[_cE][_i] != null) {\n contents[_CEo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_cE][_i]), context);\n }\n if (output[_cNS] != null) {\n contents[_CNS] = (0, import_smithy_client.expectString)(output[_cNS]);\n }\n if (output[_sR] != null) {\n contents[_SRe] = (0, import_smithy_client.expectString)(output[_sR]);\n }\n return contents;\n}, \"de_ConnectionNotification\");\nvar de_ConnectionNotificationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ConnectionNotification(entry, context);\n });\n}, \"de_ConnectionNotificationSet\");\nvar de_ConnectionTrackingConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_tET]);\n }\n if (output[_uST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_uST]);\n }\n if (output[_uTd] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_uTd]);\n }\n return contents;\n}, \"de_ConnectionTrackingConfiguration\");\nvar de_ConnectionTrackingSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_tET]);\n }\n if (output[_uTd] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_uTd]);\n }\n if (output[_uST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_uST]);\n }\n return contents;\n}, \"de_ConnectionTrackingSpecification\");\nvar de_ConnectionTrackingSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_TET]);\n }\n if (output[_UST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_UST]);\n }\n if (output[_UT] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_UT]);\n }\n return contents;\n}, \"de_ConnectionTrackingSpecificationRequest\");\nvar de_ConnectionTrackingSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_tET]);\n }\n if (output[_uST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_uST]);\n }\n if (output[_uTd] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_uTd]);\n }\n return contents;\n}, \"de_ConnectionTrackingSpecificationResponse\");\nvar de_ConversionTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTI] != null) {\n contents[_CTI] = (0, import_smithy_client.expectString)(output[_cTI]);\n }\n if (output[_eT] != null) {\n contents[_ETx] = (0, import_smithy_client.expectString)(output[_eT]);\n }\n if (output[_iIm] != null) {\n contents[_IIm] = de_ImportInstanceTaskDetails(output[_iIm], context);\n }\n if (output[_iV] != null) {\n contents[_IV] = de_ImportVolumeTaskDetails(output[_iV], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ConversionTask\");\nvar de_CopyFpgaImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n return contents;\n}, \"de_CopyFpgaImageResult\");\nvar de_CopyImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_CopyImageResult\");\nvar de_CopySnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n return contents;\n}, \"de_CopySnapshotResult\");\nvar de_CoreCountList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_CoreCountList\");\nvar de_CpuManufacturerSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_CpuManufacturerSet\");\nvar de_CpuOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCo] != null) {\n contents[_CC] = (0, import_smithy_client.strictParseInt32)(output[_cCo]);\n }\n if (output[_tPC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_tPC]);\n }\n if (output[_aSS] != null) {\n contents[_ASS] = (0, import_smithy_client.expectString)(output[_aSS]);\n }\n return contents;\n}, \"de_CpuOptions\");\nvar de_CpuPerformanceFactor = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.referenceSet === \"\") {\n contents[_R] = [];\n } else if (output[_rS] != null && output[_rS][_i] != null) {\n contents[_R] = de_PerformanceFactorReferenceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_rS][_i]), context);\n }\n return contents;\n}, \"de_CpuPerformanceFactor\");\nvar de_CreateCapacityReservationBySplittingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCR] != null) {\n contents[_SCR] = de_CapacityReservation(output[_sCR], context);\n }\n if (output[_dCR] != null) {\n contents[_DCRe] = de_CapacityReservation(output[_dCR], context);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n return contents;\n}, \"de_CreateCapacityReservationBySplittingResult\");\nvar de_CreateCapacityReservationFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tTC] != null) {\n contents[_TTC] = (0, import_smithy_client.strictParseInt32)(output[_tTC]);\n }\n if (output[_tFC] != null) {\n contents[_TFC] = (0, import_smithy_client.strictParseFloat)(output[_tFC]);\n }\n if (output[_iMC] != null) {\n contents[_IMC] = (0, import_smithy_client.expectString)(output[_iMC]);\n }\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output.fleetCapacityReservationSet === \"\") {\n contents[_FCR] = [];\n } else if (output[_fCRS] != null && output[_fCRS][_i] != null) {\n contents[_FCR] = de_FleetCapacityReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fCRS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_CreateCapacityReservationFleetResult\");\nvar de_CreateCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cR] != null) {\n contents[_CRapa] = de_CapacityReservation(output[_cR], context);\n }\n return contents;\n}, \"de_CreateCapacityReservationResult\");\nvar de_CreateCarrierGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cG] != null) {\n contents[_CG] = de_CarrierGateway(output[_cG], context);\n }\n return contents;\n}, \"de_CreateCarrierGatewayResult\");\nvar de_CreateClientVpnEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointStatus(output[_sta], context);\n }\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n return contents;\n}, \"de_CreateClientVpnEndpointResult\");\nvar de_CreateClientVpnRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnRouteStatus(output[_sta], context);\n }\n return contents;\n}, \"de_CreateClientVpnRouteResult\");\nvar de_CreateCoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCoi] != null) {\n contents[_CCo] = de_CoipCidr(output[_cCoi], context);\n }\n return contents;\n}, \"de_CreateCoipCidrResult\");\nvar de_CreateCoipPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cP] != null) {\n contents[_CP] = de_CoipPool(output[_cP], context);\n }\n return contents;\n}, \"de_CreateCoipPoolResult\");\nvar de_CreateCustomerGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cGu] != null) {\n contents[_CGu] = de_CustomerGateway(output[_cGu], context);\n }\n return contents;\n}, \"de_CreateCustomerGatewayResult\");\nvar de_CreateDefaultSubnetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_su] != null) {\n contents[_Su] = de_Subnet(output[_su], context);\n }\n return contents;\n}, \"de_CreateDefaultSubnetResult\");\nvar de_CreateDefaultVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vp] != null) {\n contents[_Vp] = de_Vpc(output[_vp], context);\n }\n return contents;\n}, \"de_CreateDefaultVpcResult\");\nvar de_CreateDhcpOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dO] != null) {\n contents[_DOh] = de_DhcpOptions(output[_dO], context);\n }\n return contents;\n}, \"de_CreateDhcpOptionsResult\");\nvar de_CreateEgressOnlyInternetGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eOIG] != null) {\n contents[_EOIG] = de_EgressOnlyInternetGateway(output[_eOIG], context);\n }\n return contents;\n}, \"de_CreateEgressOnlyInternetGatewayResult\");\nvar de_CreateFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output[_eC] != null) {\n contents[_EC] = (0, import_smithy_client.expectString)(output[_eC]);\n }\n if (output[_eM] != null) {\n contents[_EM] = (0, import_smithy_client.expectString)(output[_eM]);\n }\n return contents;\n}, \"de_CreateFleetError\");\nvar de_CreateFleetErrorsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CreateFleetError(entry, context);\n });\n}, \"de_CreateFleetErrorsSet\");\nvar de_CreateFleetInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output.instanceIds === \"\") {\n contents[_IIns] = [];\n } else if (output[_iIn] != null && output[_iIn][_i] != null) {\n contents[_IIns] = de_InstanceIdsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIn][_i]), context);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n return contents;\n}, \"de_CreateFleetInstance\");\nvar de_CreateFleetInstancesSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CreateFleetInstance(entry, context);\n });\n}, \"de_CreateFleetInstancesSet\");\nvar de_CreateFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n if (output.errorSet === \"\") {\n contents[_Err] = [];\n } else if (output[_eSr] != null && output[_eSr][_i] != null) {\n contents[_Err] = de_CreateFleetErrorsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSr][_i]), context);\n }\n if (output.fleetInstanceSet === \"\") {\n contents[_In] = [];\n } else if (output[_fIS] != null && output[_fIS][_i] != null) {\n contents[_In] = de_CreateFleetInstancesSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fIS][_i]), context);\n }\n return contents;\n}, \"de_CreateFleetResult\");\nvar de_CreateFlowLogsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output.flowLogIdSet === \"\") {\n contents[_FLI] = [];\n } else if (output[_fLIS] != null && output[_fLIS][_i] != null) {\n contents[_FLI] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_fLIS][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_CreateFlowLogsResult\");\nvar de_CreateFpgaImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n if (output[_fIGI] != null) {\n contents[_FIGI] = (0, import_smithy_client.expectString)(output[_fIGI]);\n }\n return contents;\n}, \"de_CreateFpgaImageResult\");\nvar de_CreateImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_CreateImageResult\");\nvar de_CreateInstanceConnectEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCE] != null) {\n contents[_ICE] = de_Ec2InstanceConnectEndpoint(output[_iCE], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateInstanceConnectEndpointResult\");\nvar de_CreateInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_CreateInstanceEventWindowResult\");\nvar de_CreateInstanceExportTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eTx] != null) {\n contents[_ETxp] = de_ExportTask(output[_eTx], context);\n }\n return contents;\n}, \"de_CreateInstanceExportTaskResult\");\nvar de_CreateInternetGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iG] != null) {\n contents[_IGn] = de_InternetGateway(output[_iG], context);\n }\n return contents;\n}, \"de_CreateInternetGatewayResult\");\nvar de_CreateIpamExternalResourceVerificationTokenResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iERVT] != null) {\n contents[_IERVT] = de_IpamExternalResourceVerificationToken(output[_iERVT], context);\n }\n return contents;\n}, \"de_CreateIpamExternalResourceVerificationTokenResult\");\nvar de_CreateIpamPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPp] != null) {\n contents[_IPpa] = de_IpamPool(output[_iPp], context);\n }\n return contents;\n}, \"de_CreateIpamPoolResult\");\nvar de_CreateIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRD] != null) {\n contents[_IRD] = de_IpamResourceDiscovery(output[_iRD], context);\n }\n return contents;\n}, \"de_CreateIpamResourceDiscoveryResult\");\nvar de_CreateIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ip] != null) {\n contents[_Ipa] = de_Ipam(output[_ip], context);\n }\n return contents;\n}, \"de_CreateIpamResult\");\nvar de_CreateIpamScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iS] != null) {\n contents[_ISpa] = de_IpamScope(output[_iS], context);\n }\n return contents;\n}, \"de_CreateIpamScopeResult\");\nvar de_CreateLaunchTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lT] != null) {\n contents[_LTa] = de_LaunchTemplate(output[_lT], context);\n }\n if (output[_w] != null) {\n contents[_Wa] = de_ValidationWarning(output[_w], context);\n }\n return contents;\n}, \"de_CreateLaunchTemplateResult\");\nvar de_CreateLaunchTemplateVersionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTV] != null) {\n contents[_LTV] = de_LaunchTemplateVersion(output[_lTV], context);\n }\n if (output[_w] != null) {\n contents[_Wa] = de_ValidationWarning(output[_w], context);\n }\n return contents;\n}, \"de_CreateLaunchTemplateVersionResult\");\nvar de_CreateLocalGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_LocalGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteResult\");\nvar de_CreateLocalGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRT] != null) {\n contents[_LGRT] = de_LocalGatewayRouteTable(output[_lGRT], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteTableResult\");\nvar de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVIGA] != null) {\n contents[_LGRTVIGA] = de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation(output[_lGRTVIGA], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult\");\nvar de_CreateLocalGatewayRouteTableVpcAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVA] != null) {\n contents[_LGRTVA] = de_LocalGatewayRouteTableVpcAssociation(output[_lGRTVA], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteTableVpcAssociationResult\");\nvar de_CreateLocalGatewayVirtualInterfaceGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVIG] != null) {\n contents[_LGVIG] = de_LocalGatewayVirtualInterfaceGroup(output[_lGVIG], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayVirtualInterfaceGroupResult\");\nvar de_CreateLocalGatewayVirtualInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVI] != null) {\n contents[_LGVI] = de_LocalGatewayVirtualInterface(output[_lGVI], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayVirtualInterfaceResult\");\nvar de_CreateManagedPrefixListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_CreateManagedPrefixListResult\");\nvar de_CreateNatGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_nG] != null) {\n contents[_NG] = de_NatGateway(output[_nG], context);\n }\n return contents;\n}, \"de_CreateNatGatewayResult\");\nvar de_CreateNetworkAclResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nA] != null) {\n contents[_NA] = de_NetworkAcl(output[_nA], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateNetworkAclResult\");\nvar de_CreateNetworkInsightsAccessScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIAS] != null) {\n contents[_NIAS] = de_NetworkInsightsAccessScope(output[_nIAS], context);\n }\n if (output[_nIASC] != null) {\n contents[_NIASC] = de_NetworkInsightsAccessScopeContent(output[_nIASC], context);\n }\n return contents;\n}, \"de_CreateNetworkInsightsAccessScopeResult\");\nvar de_CreateNetworkInsightsPathResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIP] != null) {\n contents[_NIP] = de_NetworkInsightsPath(output[_nIP], context);\n }\n return contents;\n}, \"de_CreateNetworkInsightsPathResult\");\nvar de_CreateNetworkInterfacePermissionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPnt] != null) {\n contents[_IPnt] = de_NetworkInterfacePermission(output[_iPnt], context);\n }\n return contents;\n}, \"de_CreateNetworkInterfacePermissionResult\");\nvar de_CreateNetworkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIe] != null) {\n contents[_NIet] = de_NetworkInterface(output[_nIe], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateNetworkInterfaceResult\");\nvar de_CreatePlacementGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pG] != null) {\n contents[_PG] = de_PlacementGroup(output[_pG], context);\n }\n return contents;\n}, \"de_CreatePlacementGroupResult\");\nvar de_CreatePublicIpv4PoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n return contents;\n}, \"de_CreatePublicIpv4PoolResult\");\nvar de_CreateReplaceRootVolumeTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rRVT] != null) {\n contents[_RRVT] = de_ReplaceRootVolumeTask(output[_rRVT], context);\n }\n return contents;\n}, \"de_CreateReplaceRootVolumeTaskResult\");\nvar de_CreateReservedInstancesListingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesListingsSet === \"\") {\n contents[_RIL] = [];\n } else if (output[_rILS] != null && output[_rILS][_i] != null) {\n contents[_RIL] = de_ReservedInstancesListingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rILS][_i]), context);\n }\n return contents;\n}, \"de_CreateReservedInstancesListingResult\");\nvar de_CreateRestoreImageTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_CreateRestoreImageTaskResult\");\nvar de_CreateRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CreateRouteResult\");\nvar de_CreateRouteServerEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSE] != null) {\n contents[_RSE] = de_RouteServerEndpoint(output[_rSE], context);\n }\n return contents;\n}, \"de_CreateRouteServerEndpointResult\");\nvar de_CreateRouteServerPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSP] != null) {\n contents[_RSP] = de_RouteServerPeer(output[_rSP], context);\n }\n return contents;\n}, \"de_CreateRouteServerPeerResult\");\nvar de_CreateRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSo] != null) {\n contents[_RSo] = de_RouteServer(output[_rSo], context);\n }\n return contents;\n}, \"de_CreateRouteServerResult\");\nvar de_CreateRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTo] != null) {\n contents[_RTo] = de_RouteTable(output[_rTo], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateRouteTableResult\");\nvar de_CreateSecurityGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sGA] != null) {\n contents[_SGA] = (0, import_smithy_client.expectString)(output[_sGA]);\n }\n return contents;\n}, \"de_CreateSecurityGroupResult\");\nvar de_CreateSnapshotsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_SnapshotSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n return contents;\n}, \"de_CreateSnapshotsResult\");\nvar de_CreateSpotDatafeedSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sDS] != null) {\n contents[_SDS] = de_SpotDatafeedSubscription(output[_sDS], context);\n }\n return contents;\n}, \"de_CreateSpotDatafeedSubscriptionResult\");\nvar de_CreateStoreImageTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oK] != null) {\n contents[_OK] = (0, import_smithy_client.expectString)(output[_oK]);\n }\n return contents;\n}, \"de_CreateStoreImageTaskResult\");\nvar de_CreateSubnetCidrReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCRu] != null) {\n contents[_SCRu] = de_SubnetCidrReservation(output[_sCRu], context);\n }\n return contents;\n}, \"de_CreateSubnetCidrReservationResult\");\nvar de_CreateSubnetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_su] != null) {\n contents[_Su] = de_Subnet(output[_su], context);\n }\n return contents;\n}, \"de_CreateSubnetResult\");\nvar de_CreateTrafficMirrorFilterResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMF] != null) {\n contents[_TMF] = de_TrafficMirrorFilter(output[_tMF], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorFilterResult\");\nvar de_CreateTrafficMirrorFilterRuleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFR] != null) {\n contents[_TMFR] = de_TrafficMirrorFilterRule(output[_tMFR], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorFilterRuleResult\");\nvar de_CreateTrafficMirrorSessionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMS] != null) {\n contents[_TMS] = de_TrafficMirrorSession(output[_tMS], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorSessionResult\");\nvar de_CreateTrafficMirrorTargetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMT] != null) {\n contents[_TMT] = de_TrafficMirrorTarget(output[_tMT], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorTargetResult\");\nvar de_CreateTransitGatewayConnectPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGCP] != null) {\n contents[_TGCP] = de_TransitGatewayConnectPeer(output[_tGCP], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayConnectPeerResult\");\nvar de_CreateTransitGatewayConnectResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGC] != null) {\n contents[_TGCr] = de_TransitGatewayConnect(output[_tGC], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayConnectResult\");\nvar de_CreateTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMD] != null) {\n contents[_TGMD] = de_TransitGatewayMulticastDomain(output[_tGMD], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayMulticastDomainResult\");\nvar de_CreateTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayPeeringAttachmentResult\");\nvar de_CreateTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPT] != null) {\n contents[_TGPT] = de_TransitGatewayPolicyTable(output[_tGPT], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayPolicyTableResult\");\nvar de_CreateTransitGatewayPrefixListReferenceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPLR] != null) {\n contents[_TGPLR] = de_TransitGatewayPrefixListReference(output[_tGPLR], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayPrefixListReferenceResult\");\nvar de_CreateTransitGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tG] != null) {\n contents[_TGr] = de_TransitGateway(output[_tG], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayResult\");\nvar de_CreateTransitGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_TransitGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayRouteResult\");\nvar de_CreateTransitGatewayRouteTableAnnouncementResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTA] != null) {\n contents[_TGRTA] = de_TransitGatewayRouteTableAnnouncement(output[_tGRTA], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayRouteTableAnnouncementResult\");\nvar de_CreateTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRT] != null) {\n contents[_TGRT] = de_TransitGatewayRouteTable(output[_tGRT], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayRouteTableResult\");\nvar de_CreateTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayVpcAttachmentResult\");\nvar de_CreateVerifiedAccessEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAE] != null) {\n contents[_VAE] = de_VerifiedAccessEndpoint(output[_vAE], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessEndpointResult\");\nvar de_CreateVerifiedAccessGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAG] != null) {\n contents[_VAG] = de_VerifiedAccessGroup(output[_vAG], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessGroupResult\");\nvar de_CreateVerifiedAccessInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessInstanceResult\");\nvar de_CreateVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessTrustProviderResult\");\nvar de_CreateVolumePermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_g] != null) {\n contents[_Gr] = (0, import_smithy_client.expectString)(output[_g]);\n }\n return contents;\n}, \"de_CreateVolumePermission\");\nvar de_CreateVolumePermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CreateVolumePermission(entry, context);\n });\n}, \"de_CreateVolumePermissionList\");\nvar de_CreateVpcBlockPublicAccessExclusionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAE] != null) {\n contents[_VBPAE] = de_VpcBlockPublicAccessExclusion(output[_vBPAE], context);\n }\n return contents;\n}, \"de_CreateVpcBlockPublicAccessExclusionResult\");\nvar de_CreateVpcEndpointConnectionNotificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cNo] != null) {\n contents[_CNo] = de_ConnectionNotification(output[_cNo], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateVpcEndpointConnectionNotificationResult\");\nvar de_CreateVpcEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vE] != null) {\n contents[_VE] = de_VpcEndpoint(output[_vE], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateVpcEndpointResult\");\nvar de_CreateVpcEndpointServiceConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sC] != null) {\n contents[_SCe] = de_ServiceConfiguration(output[_sC], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateVpcEndpointServiceConfigurationResult\");\nvar de_CreateVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vPC] != null) {\n contents[_VPC] = de_VpcPeeringConnection(output[_vPC], context);\n }\n return contents;\n}, \"de_CreateVpcPeeringConnectionResult\");\nvar de_CreateVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vp] != null) {\n contents[_Vp] = de_Vpc(output[_vp], context);\n }\n return contents;\n}, \"de_CreateVpcResult\");\nvar de_CreateVpnConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_CreateVpnConnectionResult\");\nvar de_CreateVpnGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vG] != null) {\n contents[_VG] = de_VpnGateway(output[_vG], context);\n }\n return contents;\n}, \"de_CreateVpnGatewayResult\");\nvar de_CreditSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCp] != null) {\n contents[_CCp] = (0, import_smithy_client.expectString)(output[_cCp]);\n }\n return contents;\n}, \"de_CreditSpecification\");\nvar de_CustomerGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cAe] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_cAe]);\n }\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_bAE] != null) {\n contents[_BAE] = (0, import_smithy_client.expectString)(output[_bAE]);\n }\n if (output[_cGIu] != null) {\n contents[_CGIu] = (0, import_smithy_client.expectString)(output[_cGIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_iAp] != null) {\n contents[_IAp] = (0, import_smithy_client.expectString)(output[_iAp]);\n }\n if (output[_bA] != null) {\n contents[_BA] = (0, import_smithy_client.expectString)(output[_bA]);\n }\n return contents;\n}, \"de_CustomerGateway\");\nvar de_CustomerGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CustomerGateway(entry, context);\n });\n}, \"de_CustomerGatewayList\");\nvar de_DataResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_d] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_d]);\n }\n if (output[_met] != null) {\n contents[_Met] = (0, import_smithy_client.expectString)(output[_met]);\n }\n if (output[_stat] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_stat]);\n }\n if (output[_pe] != null) {\n contents[_Per] = (0, import_smithy_client.expectString)(output[_pe]);\n }\n if (output.metricPointSet === \"\") {\n contents[_MPe] = [];\n } else if (output[_mPS] != null && output[_mPS][_i] != null) {\n contents[_MPe] = de_MetricPoints((0, import_smithy_client.getArrayIfSingleItem)(output[_mPS][_i]), context);\n }\n return contents;\n}, \"de_DataResponse\");\nvar de_DataResponses = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DataResponse(entry, context);\n });\n}, \"de_DataResponses\");\nvar de_DeclarativePoliciesReport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rI] != null) {\n contents[_RIep] = (0, import_smithy_client.expectString)(output[_rI]);\n }\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_sP]);\n }\n if (output[_tI] != null) {\n contents[_TIa] = (0, import_smithy_client.expectString)(output[_tI]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_eTn] != null) {\n contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTn]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_DeclarativePoliciesReport\");\nvar de_DeclarativePoliciesReportList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeclarativePoliciesReport(entry, context);\n });\n}, \"de_DeclarativePoliciesReportList\");\nvar de_DedicatedHostIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DedicatedHostIdList\");\nvar de_DeleteCarrierGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cG] != null) {\n contents[_CG] = de_CarrierGateway(output[_cG], context);\n }\n return contents;\n}, \"de_DeleteCarrierGatewayResult\");\nvar de_DeleteClientVpnEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointStatus(output[_sta], context);\n }\n return contents;\n}, \"de_DeleteClientVpnEndpointResult\");\nvar de_DeleteClientVpnRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnRouteStatus(output[_sta], context);\n }\n return contents;\n}, \"de_DeleteClientVpnRouteResult\");\nvar de_DeleteCoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCoi] != null) {\n contents[_CCo] = de_CoipCidr(output[_cCoi], context);\n }\n return contents;\n}, \"de_DeleteCoipCidrResult\");\nvar de_DeleteCoipPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cP] != null) {\n contents[_CP] = de_CoipPool(output[_cP], context);\n }\n return contents;\n}, \"de_DeleteCoipPoolResult\");\nvar de_DeleteEgressOnlyInternetGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rC] != null) {\n contents[_RCet] = (0, import_smithy_client.parseBoolean)(output[_rC]);\n }\n return contents;\n}, \"de_DeleteEgressOnlyInternetGatewayResult\");\nvar de_DeleteFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_DeleteFleetError\");\nvar de_DeleteFleetErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_DeleteFleetError(output[_er], context);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n return contents;\n}, \"de_DeleteFleetErrorItem\");\nvar de_DeleteFleetErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteFleetErrorItem(entry, context);\n });\n}, \"de_DeleteFleetErrorSet\");\nvar de_DeleteFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulFleetDeletionSet === \"\") {\n contents[_SFD] = [];\n } else if (output[_sFDS] != null && output[_sFDS][_i] != null) {\n contents[_SFD] = de_DeleteFleetSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sFDS][_i]), context);\n }\n if (output.unsuccessfulFleetDeletionSet === \"\") {\n contents[_UFD] = [];\n } else if (output[_uFDS] != null && output[_uFDS][_i] != null) {\n contents[_UFD] = de_DeleteFleetErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_uFDS][_i]), context);\n }\n return contents;\n}, \"de_DeleteFleetsResult\");\nvar de_DeleteFleetSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cFS] != null) {\n contents[_CFS] = (0, import_smithy_client.expectString)(output[_cFS]);\n }\n if (output[_pFS] != null) {\n contents[_PFS] = (0, import_smithy_client.expectString)(output[_pFS]);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n return contents;\n}, \"de_DeleteFleetSuccessItem\");\nvar de_DeleteFleetSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteFleetSuccessItem(entry, context);\n });\n}, \"de_DeleteFleetSuccessSet\");\nvar de_DeleteFlowLogsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteFlowLogsResult\");\nvar de_DeleteFpgaImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DeleteFpgaImageResult\");\nvar de_DeleteInstanceConnectEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCE] != null) {\n contents[_ICE] = de_Ec2InstanceConnectEndpoint(output[_iCE], context);\n }\n return contents;\n}, \"de_DeleteInstanceConnectEndpointResult\");\nvar de_DeleteInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEWS] != null) {\n contents[_IEWS] = de_InstanceEventWindowStateChange(output[_iEWS], context);\n }\n return contents;\n}, \"de_DeleteInstanceEventWindowResult\");\nvar de_DeleteIpamExternalResourceVerificationTokenResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iERVT] != null) {\n contents[_IERVT] = de_IpamExternalResourceVerificationToken(output[_iERVT], context);\n }\n return contents;\n}, \"de_DeleteIpamExternalResourceVerificationTokenResult\");\nvar de_DeleteIpamPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPp] != null) {\n contents[_IPpa] = de_IpamPool(output[_iPp], context);\n }\n return contents;\n}, \"de_DeleteIpamPoolResult\");\nvar de_DeleteIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRD] != null) {\n contents[_IRD] = de_IpamResourceDiscovery(output[_iRD], context);\n }\n return contents;\n}, \"de_DeleteIpamResourceDiscoveryResult\");\nvar de_DeleteIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ip] != null) {\n contents[_Ipa] = de_Ipam(output[_ip], context);\n }\n return contents;\n}, \"de_DeleteIpamResult\");\nvar de_DeleteIpamScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iS] != null) {\n contents[_ISpa] = de_IpamScope(output[_iS], context);\n }\n return contents;\n}, \"de_DeleteIpamScopeResult\");\nvar de_DeleteKeyPairResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n return contents;\n}, \"de_DeleteKeyPairResult\");\nvar de_DeleteLaunchTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lT] != null) {\n contents[_LTa] = de_LaunchTemplate(output[_lT], context);\n }\n return contents;\n}, \"de_DeleteLaunchTemplateResult\");\nvar de_DeleteLaunchTemplateVersionsResponseErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_vNe] != null) {\n contents[_VNe] = (0, import_smithy_client.strictParseLong)(output[_vNe]);\n }\n if (output[_rE] != null) {\n contents[_REes] = de_ResponseError(output[_rE], context);\n }\n return contents;\n}, \"de_DeleteLaunchTemplateVersionsResponseErrorItem\");\nvar de_DeleteLaunchTemplateVersionsResponseErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteLaunchTemplateVersionsResponseErrorItem(entry, context);\n });\n}, \"de_DeleteLaunchTemplateVersionsResponseErrorSet\");\nvar de_DeleteLaunchTemplateVersionsResponseSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_vNe] != null) {\n contents[_VNe] = (0, import_smithy_client.strictParseLong)(output[_vNe]);\n }\n return contents;\n}, \"de_DeleteLaunchTemplateVersionsResponseSuccessItem\");\nvar de_DeleteLaunchTemplateVersionsResponseSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteLaunchTemplateVersionsResponseSuccessItem(entry, context);\n });\n}, \"de_DeleteLaunchTemplateVersionsResponseSuccessSet\");\nvar de_DeleteLaunchTemplateVersionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfullyDeletedLaunchTemplateVersionSet === \"\") {\n contents[_SDLTV] = [];\n } else if (output[_sDLTVS] != null && output[_sDLTVS][_i] != null) {\n contents[_SDLTV] = de_DeleteLaunchTemplateVersionsResponseSuccessSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_sDLTVS][_i]),\n context\n );\n }\n if (output.unsuccessfullyDeletedLaunchTemplateVersionSet === \"\") {\n contents[_UDLTV] = [];\n } else if (output[_uDLTVS] != null && output[_uDLTVS][_i] != null) {\n contents[_UDLTV] = de_DeleteLaunchTemplateVersionsResponseErrorSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_uDLTVS][_i]),\n context\n );\n }\n return contents;\n}, \"de_DeleteLaunchTemplateVersionsResult\");\nvar de_DeleteLocalGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_LocalGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteResult\");\nvar de_DeleteLocalGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRT] != null) {\n contents[_LGRT] = de_LocalGatewayRouteTable(output[_lGRT], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteTableResult\");\nvar de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVIGA] != null) {\n contents[_LGRTVIGA] = de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation(output[_lGRTVIGA], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult\");\nvar de_DeleteLocalGatewayRouteTableVpcAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVA] != null) {\n contents[_LGRTVA] = de_LocalGatewayRouteTableVpcAssociation(output[_lGRTVA], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteTableVpcAssociationResult\");\nvar de_DeleteLocalGatewayVirtualInterfaceGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVIG] != null) {\n contents[_LGVIG] = de_LocalGatewayVirtualInterfaceGroup(output[_lGVIG], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayVirtualInterfaceGroupResult\");\nvar de_DeleteLocalGatewayVirtualInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVI] != null) {\n contents[_LGVI] = de_LocalGatewayVirtualInterface(output[_lGVI], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayVirtualInterfaceResult\");\nvar de_DeleteManagedPrefixListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_DeleteManagedPrefixListResult\");\nvar de_DeleteNatGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n return contents;\n}, \"de_DeleteNatGatewayResult\");\nvar de_DeleteNetworkInsightsAccessScopeAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsAccessScopeAnalysisResult\");\nvar de_DeleteNetworkInsightsAccessScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsAccessScopeResult\");\nvar de_DeleteNetworkInsightsAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIAI] != null) {\n contents[_NIAI] = (0, import_smithy_client.expectString)(output[_nIAI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsAnalysisResult\");\nvar de_DeleteNetworkInsightsPathResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIPI] != null) {\n contents[_NIPI] = (0, import_smithy_client.expectString)(output[_nIPI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsPathResult\");\nvar de_DeleteNetworkInterfacePermissionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DeleteNetworkInterfacePermissionResult\");\nvar de_DeletePublicIpv4PoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rV] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_rV]);\n }\n return contents;\n}, \"de_DeletePublicIpv4PoolResult\");\nvar de_DeleteQueuedReservedInstancesError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_DeleteQueuedReservedInstancesError\");\nvar de_DeleteQueuedReservedInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulQueuedPurchaseDeletionSet === \"\") {\n contents[_SQPD] = [];\n } else if (output[_sQPDS] != null && output[_sQPDS][_i] != null) {\n contents[_SQPD] = de_SuccessfulQueuedPurchaseDeletionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sQPDS][_i]), context);\n }\n if (output.failedQueuedPurchaseDeletionSet === \"\") {\n contents[_FQPD] = [];\n } else if (output[_fQPDS] != null && output[_fQPDS][_i] != null) {\n contents[_FQPD] = de_FailedQueuedPurchaseDeletionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fQPDS][_i]), context);\n }\n return contents;\n}, \"de_DeleteQueuedReservedInstancesResult\");\nvar de_DeleteRouteServerEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSE] != null) {\n contents[_RSE] = de_RouteServerEndpoint(output[_rSE], context);\n }\n return contents;\n}, \"de_DeleteRouteServerEndpointResult\");\nvar de_DeleteRouteServerPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSP] != null) {\n contents[_RSP] = de_RouteServerPeer(output[_rSP], context);\n }\n return contents;\n}, \"de_DeleteRouteServerPeerResult\");\nvar de_DeleteRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSo] != null) {\n contents[_RSo] = de_RouteServer(output[_rSo], context);\n }\n return contents;\n}, \"de_DeleteRouteServerResult\");\nvar de_DeleteSecurityGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n return contents;\n}, \"de_DeleteSecurityGroupResult\");\nvar de_DeleteSubnetCidrReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dSCR] != null) {\n contents[_DSCRe] = de_SubnetCidrReservation(output[_dSCR], context);\n }\n return contents;\n}, \"de_DeleteSubnetCidrReservationResult\");\nvar de_DeleteTrafficMirrorFilterResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorFilterResult\");\nvar de_DeleteTrafficMirrorFilterRuleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFRI] != null) {\n contents[_TMFRI] = (0, import_smithy_client.expectString)(output[_tMFRI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorFilterRuleResult\");\nvar de_DeleteTrafficMirrorSessionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMSI] != null) {\n contents[_TMSI] = (0, import_smithy_client.expectString)(output[_tMSI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorSessionResult\");\nvar de_DeleteTrafficMirrorTargetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMTI] != null) {\n contents[_TMTI] = (0, import_smithy_client.expectString)(output[_tMTI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorTargetResult\");\nvar de_DeleteTransitGatewayConnectPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGCP] != null) {\n contents[_TGCP] = de_TransitGatewayConnectPeer(output[_tGCP], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayConnectPeerResult\");\nvar de_DeleteTransitGatewayConnectResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGC] != null) {\n contents[_TGCr] = de_TransitGatewayConnect(output[_tGC], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayConnectResult\");\nvar de_DeleteTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMD] != null) {\n contents[_TGMD] = de_TransitGatewayMulticastDomain(output[_tGMD], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayMulticastDomainResult\");\nvar de_DeleteTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayPeeringAttachmentResult\");\nvar de_DeleteTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPT] != null) {\n contents[_TGPT] = de_TransitGatewayPolicyTable(output[_tGPT], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayPolicyTableResult\");\nvar de_DeleteTransitGatewayPrefixListReferenceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPLR] != null) {\n contents[_TGPLR] = de_TransitGatewayPrefixListReference(output[_tGPLR], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayPrefixListReferenceResult\");\nvar de_DeleteTransitGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tG] != null) {\n contents[_TGr] = de_TransitGateway(output[_tG], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayResult\");\nvar de_DeleteTransitGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_TransitGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayRouteResult\");\nvar de_DeleteTransitGatewayRouteTableAnnouncementResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTA] != null) {\n contents[_TGRTA] = de_TransitGatewayRouteTableAnnouncement(output[_tGRTA], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayRouteTableAnnouncementResult\");\nvar de_DeleteTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRT] != null) {\n contents[_TGRT] = de_TransitGatewayRouteTable(output[_tGRT], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayRouteTableResult\");\nvar de_DeleteTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayVpcAttachmentResult\");\nvar de_DeleteVerifiedAccessEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAE] != null) {\n contents[_VAE] = de_VerifiedAccessEndpoint(output[_vAE], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessEndpointResult\");\nvar de_DeleteVerifiedAccessGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAG] != null) {\n contents[_VAG] = de_VerifiedAccessGroup(output[_vAG], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessGroupResult\");\nvar de_DeleteVerifiedAccessInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessInstanceResult\");\nvar de_DeleteVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessTrustProviderResult\");\nvar de_DeleteVpcBlockPublicAccessExclusionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAE] != null) {\n contents[_VBPAE] = de_VpcBlockPublicAccessExclusion(output[_vBPAE], context);\n }\n return contents;\n}, \"de_DeleteVpcBlockPublicAccessExclusionResult\");\nvar de_DeleteVpcEndpointConnectionNotificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteVpcEndpointConnectionNotificationsResult\");\nvar de_DeleteVpcEndpointServiceConfigurationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteVpcEndpointServiceConfigurationsResult\");\nvar de_DeleteVpcEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteVpcEndpointsResult\");\nvar de_DeleteVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DeleteVpcPeeringConnectionResult\");\nvar de_DeprovisionByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_DeprovisionByoipCidrResult\");\nvar de_DeprovisionedAddressSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DeprovisionedAddressSet\");\nvar de_DeprovisionIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_b] != null) {\n contents[_Byo] = de_Byoasn(output[_b], context);\n }\n return contents;\n}, \"de_DeprovisionIpamByoasnResult\");\nvar de_DeprovisionIpamPoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPC] != null) {\n contents[_IPCpa] = de_IpamPoolCidr(output[_iPC], context);\n }\n return contents;\n}, \"de_DeprovisionIpamPoolCidrResult\");\nvar de_DeprovisionPublicIpv4PoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output.deprovisionedAddressSet === \"\") {\n contents[_DAep] = [];\n } else if (output[_dASe] != null && output[_dASe][_i] != null) {\n contents[_DAep] = de_DeprovisionedAddressSet((0, import_smithy_client.getArrayIfSingleItem)(output[_dASe][_i]), context);\n }\n return contents;\n}, \"de_DeprovisionPublicIpv4PoolCidrResult\");\nvar de_DeregisterImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeregisterImageResult\");\nvar de_DeregisterInstanceEventNotificationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTA] != null) {\n contents[_ITA] = de_InstanceTagNotificationAttribute(output[_iTA], context);\n }\n return contents;\n}, \"de_DeregisterInstanceEventNotificationAttributesResult\");\nvar de_DeregisterTransitGatewayMulticastGroupMembersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dMGM] != null) {\n contents[_DMGM] = de_TransitGatewayMulticastDeregisteredGroupMembers(output[_dMGM], context);\n }\n return contents;\n}, \"de_DeregisterTransitGatewayMulticastGroupMembersResult\");\nvar de_DeregisterTransitGatewayMulticastGroupSourcesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dMGS] != null) {\n contents[_DMGS] = de_TransitGatewayMulticastDeregisteredGroupSources(output[_dMGS], context);\n }\n return contents;\n}, \"de_DeregisterTransitGatewayMulticastGroupSourcesResult\");\nvar de_DescribeAccountAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.accountAttributeSet === \"\") {\n contents[_AAcc] = [];\n } else if (output[_aASc] != null && output[_aASc][_i] != null) {\n contents[_AAcc] = de_AccountAttributeList((0, import_smithy_client.getArrayIfSingleItem)(output[_aASc][_i]), context);\n }\n return contents;\n}, \"de_DescribeAccountAttributesResult\");\nvar de_DescribeAddressesAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addressSet === \"\") {\n contents[_Addr] = [];\n } else if (output[_aSd] != null && output[_aSd][_i] != null) {\n contents[_Addr] = de_AddressSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aSd][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeAddressesAttributeResult\");\nvar de_DescribeAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addressesSet === \"\") {\n contents[_Addr] = [];\n } else if (output[_aSdd] != null && output[_aSdd][_i] != null) {\n contents[_Addr] = de_AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSdd][_i]), context);\n }\n return contents;\n}, \"de_DescribeAddressesResult\");\nvar de_DescribeAddressTransfersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addressTransferSet === \"\") {\n contents[_ATddr] = [];\n } else if (output[_aTSd] != null && output[_aTSd][_i] != null) {\n contents[_ATddr] = de_AddressTransferList((0, import_smithy_client.getArrayIfSingleItem)(output[_aTSd][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeAddressTransfersResult\");\nvar de_DescribeAggregateIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uLIA] != null) {\n contents[_ULIA] = (0, import_smithy_client.parseBoolean)(output[_uLIA]);\n }\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_DescribeAggregateIdFormatResult\");\nvar de_DescribeAvailabilityZonesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.availabilityZoneInfo === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZIv] != null && output[_aZIv][_i] != null) {\n contents[_AZv] = de_AvailabilityZoneList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZIv][_i]), context);\n }\n return contents;\n}, \"de_DescribeAvailabilityZonesResult\");\nvar de_DescribeAwsNetworkPerformanceMetricSubscriptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.subscriptionSet === \"\") {\n contents[_Sub] = [];\n } else if (output[_sSu] != null && output[_sSu][_i] != null) {\n contents[_Sub] = de_SubscriptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSu][_i]), context);\n }\n return contents;\n}, \"de_DescribeAwsNetworkPerformanceMetricSubscriptionsResult\");\nvar de_DescribeBundleTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.bundleInstanceTasksSet === \"\") {\n contents[_BTun] = [];\n } else if (output[_bITS] != null && output[_bITS][_i] != null) {\n contents[_BTun] = de_BundleTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_bITS][_i]), context);\n }\n return contents;\n}, \"de_DescribeBundleTasksResult\");\nvar de_DescribeByoipCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.byoipCidrSet === \"\") {\n contents[_BCy] = [];\n } else if (output[_bCS] != null && output[_bCS][_i] != null) {\n contents[_BCy] = de_ByoipCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_bCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeByoipCidrsResult\");\nvar de_DescribeCapacityBlockExtensionHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockExtensionSet === \"\") {\n contents[_CBE] = [];\n } else if (output[_cBESa] != null && output[_cBESa][_i] != null) {\n contents[_CBE] = de_CapacityBlockExtensionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBESa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityBlockExtensionHistoryResult\");\nvar de_DescribeCapacityBlockExtensionOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockExtensionOfferingSet === \"\") {\n contents[_CBEO] = [];\n } else if (output[_cBEOS] != null && output[_cBEOS][_i] != null) {\n contents[_CBEO] = de_CapacityBlockExtensionOfferingSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBEOS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityBlockExtensionOfferingsResult\");\nvar de_DescribeCapacityBlockOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockOfferingSet === \"\") {\n contents[_CBO] = [];\n } else if (output[_cBOS] != null && output[_cBOS][_i] != null) {\n contents[_CBO] = de_CapacityBlockOfferingSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBOS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityBlockOfferingsResult\");\nvar de_DescribeCapacityReservationBillingRequestsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.capacityReservationBillingRequestSet === \"\") {\n contents[_CRBR] = [];\n } else if (output[_cRBRS] != null && output[_cRBRS][_i] != null) {\n contents[_CRBR] = de_CapacityReservationBillingRequestSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRBRS][_i]), context);\n }\n return contents;\n}, \"de_DescribeCapacityReservationBillingRequestsResult\");\nvar de_DescribeCapacityReservationFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityReservationFleetSet === \"\") {\n contents[_CRF] = [];\n } else if (output[_cRFS] != null && output[_cRFS][_i] != null) {\n contents[_CRF] = de_CapacityReservationFleetSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRFS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityReservationFleetsResult\");\nvar de_DescribeCapacityReservationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.capacityReservationSet === \"\") {\n contents[_CRapac] = [];\n } else if (output[_cRS] != null && output[_cRS][_i] != null) {\n contents[_CRapac] = de_CapacityReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRS][_i]), context);\n }\n return contents;\n}, \"de_DescribeCapacityReservationsResult\");\nvar de_DescribeCarrierGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.carrierGatewaySet === \"\") {\n contents[_CGa] = [];\n } else if (output[_cGS] != null && output[_cGS][_i] != null) {\n contents[_CGa] = de_CarrierGatewaySet((0, import_smithy_client.getArrayIfSingleItem)(output[_cGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCarrierGatewaysResult\");\nvar de_DescribeClassicLinkInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_In] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_In] = de_ClassicLinkInstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClassicLinkInstancesResult\");\nvar de_DescribeClientVpnAuthorizationRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.authorizationRule === \"\") {\n contents[_ARut] = [];\n } else if (output[_aR] != null && output[_aR][_i] != null) {\n contents[_ARut] = de_AuthorizationRuleSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aR][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnAuthorizationRulesResult\");\nvar de_DescribeClientVpnConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.connections === \"\") {\n contents[_Conn] = [];\n } else if (output[_con] != null && output[_con][_i] != null) {\n contents[_Conn] = de_ClientVpnConnectionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_con][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnConnectionsResult\");\nvar de_DescribeClientVpnEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.clientVpnEndpoint === \"\") {\n contents[_CVEl] = [];\n } else if (output[_cVE] != null && output[_cVE][_i] != null) {\n contents[_CVEl] = de_EndpointSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cVE][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnEndpointsResult\");\nvar de_DescribeClientVpnRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routes === \"\") {\n contents[_Rout] = [];\n } else if (output[_rou] != null && output[_rou][_i] != null) {\n contents[_Rout] = de_ClientVpnRouteSet((0, import_smithy_client.getArrayIfSingleItem)(output[_rou][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnRoutesResult\");\nvar de_DescribeClientVpnTargetNetworksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.clientVpnTargetNetworks === \"\") {\n contents[_CVTN] = [];\n } else if (output[_cVTN] != null && output[_cVTN][_i] != null) {\n contents[_CVTN] = de_TargetNetworkSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cVTN][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnTargetNetworksResult\");\nvar de_DescribeCoipPoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.coipPoolSet === \"\") {\n contents[_CPo] = [];\n } else if (output[_cPS] != null && output[_cPS][_i] != null) {\n contents[_CPo] = de_CoipPoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCoipPoolsResult\");\nvar de_DescribeConversionTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ConversionTask(entry, context);\n });\n}, \"de_DescribeConversionTaskList\");\nvar de_DescribeConversionTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.conversionTasks === \"\") {\n contents[_CTon] = [];\n } else if (output[_cTo] != null && output[_cTo][_i] != null) {\n contents[_CTon] = de_DescribeConversionTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_cTo][_i]), context);\n }\n return contents;\n}, \"de_DescribeConversionTasksResult\");\nvar de_DescribeCustomerGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.customerGatewaySet === \"\") {\n contents[_CGus] = [];\n } else if (output[_cGSu] != null && output[_cGSu][_i] != null) {\n contents[_CGus] = de_CustomerGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_cGSu][_i]), context);\n }\n return contents;\n}, \"de_DescribeCustomerGatewaysResult\");\nvar de_DescribeDeclarativePoliciesReportsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reportSet === \"\") {\n contents[_Rep] = [];\n } else if (output[_rSe] != null && output[_rSe][_i] != null) {\n contents[_Rep] = de_DeclarativePoliciesReportList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSe][_i]), context);\n }\n return contents;\n}, \"de_DescribeDeclarativePoliciesReportsResult\");\nvar de_DescribeDhcpOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.dhcpOptionsSet === \"\") {\n contents[_DOh] = [];\n } else if (output[_dOS] != null && output[_dOS][_i] != null) {\n contents[_DOh] = de_DhcpOptionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_dOS][_i]), context);\n }\n return contents;\n}, \"de_DescribeDhcpOptionsResult\");\nvar de_DescribeEgressOnlyInternetGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.egressOnlyInternetGatewaySet === \"\") {\n contents[_EOIGg] = [];\n } else if (output[_eOIGS] != null && output[_eOIGS][_i] != null) {\n contents[_EOIGg] = de_EgressOnlyInternetGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_eOIGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeEgressOnlyInternetGatewaysResult\");\nvar de_DescribeElasticGpusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.elasticGpuSet === \"\") {\n contents[_EGSla] = [];\n } else if (output[_eGS] != null && output[_eGS][_i] != null) {\n contents[_EGSla] = de_ElasticGpuSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eGS][_i]), context);\n }\n if (output[_mR] != null) {\n contents[_MR] = (0, import_smithy_client.strictParseInt32)(output[_mR]);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeElasticGpusResult\");\nvar de_DescribeExportImageTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.exportImageTaskSet === \"\") {\n contents[_EITx] = [];\n } else if (output[_eITS] != null && output[_eITS][_i] != null) {\n contents[_EITx] = de_ExportImageTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_eITS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeExportImageTasksResult\");\nvar de_DescribeExportTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.exportTaskSet === \"\") {\n contents[_ETxpo] = [];\n } else if (output[_eTS] != null && output[_eTS][_i] != null) {\n contents[_ETxpo] = de_ExportTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_eTS][_i]), context);\n }\n return contents;\n}, \"de_DescribeExportTasksResult\");\nvar de_DescribeFastLaunchImagesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fastLaunchImageSet === \"\") {\n contents[_FLIa] = [];\n } else if (output[_fLISa] != null && output[_fLISa][_i] != null) {\n contents[_FLIa] = de_DescribeFastLaunchImagesSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fLISa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFastLaunchImagesResult\");\nvar de_DescribeFastLaunchImagesSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_sCn] != null) {\n contents[_SCn] = de_FastLaunchSnapshotConfigurationResponse(output[_sCn], context);\n }\n if (output[_lT] != null) {\n contents[_LTa] = de_FastLaunchLaunchTemplateSpecificationResponse(output[_lT], context);\n }\n if (output[_mPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_mPL]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_sTT] != null) {\n contents[_STT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTT]));\n }\n return contents;\n}, \"de_DescribeFastLaunchImagesSuccessItem\");\nvar de_DescribeFastLaunchImagesSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFastLaunchImagesSuccessItem(entry, context);\n });\n}, \"de_DescribeFastLaunchImagesSuccessSet\");\nvar de_DescribeFastSnapshotRestoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fastSnapshotRestoreSet === \"\") {\n contents[_FSR] = [];\n } else if (output[_fSRS] != null && output[_fSRS][_i] != null) {\n contents[_FSR] = de_DescribeFastSnapshotRestoreSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fSRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFastSnapshotRestoresResult\");\nvar de_DescribeFastSnapshotRestoreSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_eTna] != null) {\n contents[_ETna] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTna]));\n }\n if (output[_oT] != null) {\n contents[_OTpt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oT]));\n }\n if (output[_eTnab] != null) {\n contents[_ETnab] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTnab]));\n }\n if (output[_dTi] != null) {\n contents[_DTi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTi]));\n }\n if (output[_dTis] != null) {\n contents[_DTis] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTis]));\n }\n return contents;\n}, \"de_DescribeFastSnapshotRestoreSuccessItem\");\nvar de_DescribeFastSnapshotRestoreSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFastSnapshotRestoreSuccessItem(entry, context);\n });\n}, \"de_DescribeFastSnapshotRestoreSuccessSet\");\nvar de_DescribeFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output[_eC] != null) {\n contents[_EC] = (0, import_smithy_client.expectString)(output[_eC]);\n }\n if (output[_eM] != null) {\n contents[_EM] = (0, import_smithy_client.expectString)(output[_eM]);\n }\n return contents;\n}, \"de_DescribeFleetError\");\nvar de_DescribeFleetHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.historyRecordSet === \"\") {\n contents[_HRi] = [];\n } else if (output[_hRS] != null && output[_hRS][_i] != null) {\n contents[_HRi] = de_HistoryRecordSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hRS][_i]), context);\n }\n if (output[_lET] != null) {\n contents[_LET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lET]));\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n return contents;\n}, \"de_DescribeFleetHistoryResult\");\nvar de_DescribeFleetInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.activeInstanceSet === \"\") {\n contents[_AIc] = [];\n } else if (output[_aIS] != null && output[_aIS][_i] != null) {\n contents[_AIc] = de_ActiveInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n return contents;\n}, \"de_DescribeFleetInstancesResult\");\nvar de_DescribeFleetsErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFleetError(entry, context);\n });\n}, \"de_DescribeFleetsErrorSet\");\nvar de_DescribeFleetsInstances = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output.instanceIds === \"\") {\n contents[_IIns] = [];\n } else if (output[_iIn] != null && output[_iIn][_i] != null) {\n contents[_IIns] = de_InstanceIdsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIn][_i]), context);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n return contents;\n}, \"de_DescribeFleetsInstances\");\nvar de_DescribeFleetsInstancesSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFleetsInstances(entry, context);\n });\n}, \"de_DescribeFleetsInstancesSet\");\nvar de_DescribeFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.fleetSet === \"\") {\n contents[_Fl] = [];\n } else if (output[_fS] != null && output[_fS][_i] != null) {\n contents[_Fl] = de_FleetSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fS][_i]), context);\n }\n return contents;\n}, \"de_DescribeFleetsResult\");\nvar de_DescribeFlowLogsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.flowLogSet === \"\") {\n contents[_FL] = [];\n } else if (output[_fLS] != null && output[_fLS][_i] != null) {\n contents[_FL] = de_FlowLogSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fLS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFlowLogsResult\");\nvar de_DescribeFpgaImageAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fIA] != null) {\n contents[_FIAp] = de_FpgaImageAttribute(output[_fIA], context);\n }\n return contents;\n}, \"de_DescribeFpgaImageAttributeResult\");\nvar de_DescribeFpgaImagesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fpgaImageSet === \"\") {\n contents[_FIp] = [];\n } else if (output[_fISp] != null && output[_fISp][_i] != null) {\n contents[_FIp] = de_FpgaImageList((0, import_smithy_client.getArrayIfSingleItem)(output[_fISp][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFpgaImagesResult\");\nvar de_DescribeHostReservationOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.offeringSet === \"\") {\n contents[_OS] = [];\n } else if (output[_oS] != null && output[_oS][_i] != null) {\n contents[_OS] = de_HostOfferingSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oS][_i]), context);\n }\n return contents;\n}, \"de_DescribeHostReservationOfferingsResult\");\nvar de_DescribeHostReservationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.hostReservationSet === \"\") {\n contents[_HRS] = [];\n } else if (output[_hRSo] != null && output[_hRSo][_i] != null) {\n contents[_HRS] = de_HostReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hRSo][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeHostReservationsResult\");\nvar de_DescribeHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.hostSet === \"\") {\n contents[_Ho] = [];\n } else if (output[_hS] != null && output[_hS][_i] != null) {\n contents[_Ho] = de_HostList((0, import_smithy_client.getArrayIfSingleItem)(output[_hS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeHostsResult\");\nvar de_DescribeIamInstanceProfileAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.iamInstanceProfileAssociationSet === \"\") {\n contents[_IIPAa] = [];\n } else if (output[_iIPAS] != null && output[_iIPAS][_i] != null) {\n contents[_IIPAa] = de_IamInstanceProfileAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIPAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIamInstanceProfileAssociationsResult\");\nvar de_DescribeIdentityIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_DescribeIdentityIdFormatResult\");\nvar de_DescribeIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_DescribeIdFormatResult\");\nvar de_DescribeImagesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.imagesSet === \"\") {\n contents[_Ima] = [];\n } else if (output[_iSm] != null && output[_iSm][_i] != null) {\n contents[_Ima] = de_ImageList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSm][_i]), context);\n }\n return contents;\n}, \"de_DescribeImagesResult\");\nvar de_DescribeImportImageTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.importImageTaskSet === \"\") {\n contents[_IIT] = [];\n } else if (output[_iITS] != null && output[_iITS][_i] != null) {\n contents[_IIT] = de_ImportImageTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_iITS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeImportImageTasksResult\");\nvar de_DescribeImportSnapshotTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.importSnapshotTaskSet === \"\") {\n contents[_IST] = [];\n } else if (output[_iSTS] != null && output[_iSTS][_i] != null) {\n contents[_IST] = de_ImportSnapshotTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeImportSnapshotTasksResult\");\nvar de_DescribeInstanceConnectEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceConnectEndpointSet === \"\") {\n contents[_ICEn] = [];\n } else if (output[_iCES] != null && output[_iCES][_i] != null) {\n contents[_ICEn] = de_InstanceConnectEndpointSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceConnectEndpointsResult\");\nvar de_DescribeInstanceCreditSpecificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceCreditSpecificationSet === \"\") {\n contents[_ICS] = [];\n } else if (output[_iCSS] != null && output[_iCSS][_i] != null) {\n contents[_ICS] = de_InstanceCreditSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceCreditSpecificationsResult\");\nvar de_DescribeInstanceEventNotificationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTA] != null) {\n contents[_ITA] = de_InstanceTagNotificationAttribute(output[_iTA], context);\n }\n return contents;\n}, \"de_DescribeInstanceEventNotificationAttributesResult\");\nvar de_DescribeInstanceEventWindowsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceEventWindowSet === \"\") {\n contents[_IEWn] = [];\n } else if (output[_iEWSn] != null && output[_iEWSn][_i] != null) {\n contents[_IEWn] = de_InstanceEventWindowSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iEWSn][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceEventWindowsResult\");\nvar de_DescribeInstanceImageMetadataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceImageMetadataSet === \"\") {\n contents[_IIM] = [];\n } else if (output[_iIMS] != null && output[_iIMS][_i] != null) {\n contents[_IIM] = de_InstanceImageMetadataList((0, import_smithy_client.getArrayIfSingleItem)(output[_iIMS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceImageMetadataResult\");\nvar de_DescribeInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reservationSet === \"\") {\n contents[_Rese] = [];\n } else if (output[_rSes] != null && output[_rSes][_i] != null) {\n contents[_Rese] = de_ReservationList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSes][_i]), context);\n }\n return contents;\n}, \"de_DescribeInstancesResult\");\nvar de_DescribeInstanceStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceStatusSet === \"\") {\n contents[_ISns] = [];\n } else if (output[_iSS] != null && output[_iSS][_i] != null) {\n contents[_ISns] = de_InstanceStatusList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceStatusResult\");\nvar de_DescribeInstanceTopologyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceSet === \"\") {\n contents[_In] = [];\n } else if (output[_iSns] != null && output[_iSns][_i] != null) {\n contents[_In] = de_InstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iSns][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceTopologyResult\");\nvar de_DescribeInstanceTypeOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTypeOfferingSet === \"\") {\n contents[_ITO] = [];\n } else if (output[_iTOS] != null && output[_iTOS][_i] != null) {\n contents[_ITO] = de_InstanceTypeOfferingsList((0, import_smithy_client.getArrayIfSingleItem)(output[_iTOS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceTypeOfferingsResult\");\nvar de_DescribeInstanceTypesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTypeSet === \"\") {\n contents[_ITnst] = [];\n } else if (output[_iTS] != null && output[_iTS][_i] != null) {\n contents[_ITnst] = de_InstanceTypeInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_iTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceTypesResult\");\nvar de_DescribeInternetGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.internetGatewaySet === \"\") {\n contents[_IGnt] = [];\n } else if (output[_iGS] != null && output[_iGS][_i] != null) {\n contents[_IGnt] = de_InternetGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_iGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInternetGatewaysResult\");\nvar de_DescribeIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.byoasnSet === \"\") {\n contents[_Byoa] = [];\n } else if (output[_bS] != null && output[_bS][_i] != null) {\n contents[_Byoa] = de_ByoasnSet((0, import_smithy_client.getArrayIfSingleItem)(output[_bS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpamByoasnResult\");\nvar de_DescribeIpamExternalResourceVerificationTokensResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamExternalResourceVerificationTokenSet === \"\") {\n contents[_IERVTp] = [];\n } else if (output[_iERVTS] != null && output[_iERVTS][_i] != null) {\n contents[_IERVTp] = de_IpamExternalResourceVerificationTokenSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_iERVTS][_i]),\n context\n );\n }\n return contents;\n}, \"de_DescribeIpamExternalResourceVerificationTokensResult\");\nvar de_DescribeIpamPoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamPoolSet === \"\") {\n contents[_IPpam] = [];\n } else if (output[_iPS] != null && output[_iPS][_i] != null) {\n contents[_IPpam] = de_IpamPoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPS][_i]), context);\n }\n return contents;\n}, \"de_DescribeIpamPoolsResult\");\nvar de_DescribeIpamResourceDiscoveriesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamResourceDiscoverySet === \"\") {\n contents[_IRDp] = [];\n } else if (output[_iRDS] != null && output[_iRDS][_i] != null) {\n contents[_IRDp] = de_IpamResourceDiscoverySet((0, import_smithy_client.getArrayIfSingleItem)(output[_iRDS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpamResourceDiscoveriesResult\");\nvar de_DescribeIpamResourceDiscoveryAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamResourceDiscoveryAssociationSet === \"\") {\n contents[_IRDAp] = [];\n } else if (output[_iRDAS] != null && output[_iRDAS][_i] != null) {\n contents[_IRDAp] = de_IpamResourceDiscoveryAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iRDAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpamResourceDiscoveryAssociationsResult\");\nvar de_DescribeIpamScopesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamScopeSet === \"\") {\n contents[_ISpam] = [];\n } else if (output[_iSSp] != null && output[_iSSp][_i] != null) {\n contents[_ISpam] = de_IpamScopeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iSSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeIpamScopesResult\");\nvar de_DescribeIpamsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamSet === \"\") {\n contents[_Ipam] = [];\n } else if (output[_iSp] != null && output[_iSp][_i] != null) {\n contents[_Ipam] = de_IpamSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeIpamsResult\");\nvar de_DescribeIpv6PoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipv6PoolSet === \"\") {\n contents[_IPpvo] = [];\n } else if (output[_iPSp] != null && output[_iPSp][_i] != null) {\n contents[_IPpvo] = de_Ipv6PoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSp][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpv6PoolsResult\");\nvar de_DescribeKeyPairsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.keySet === \"\") {\n contents[_KP] = [];\n } else if (output[_kS] != null && output[_kS][_i] != null) {\n contents[_KP] = de_KeyPairList((0, import_smithy_client.getArrayIfSingleItem)(output[_kS][_i]), context);\n }\n return contents;\n}, \"de_DescribeKeyPairsResult\");\nvar de_DescribeLaunchTemplatesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.launchTemplates === \"\") {\n contents[_LTau] = [];\n } else if (output[_lTa] != null && output[_lTa][_i] != null) {\n contents[_LTau] = de_LaunchTemplateSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lTa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLaunchTemplatesResult\");\nvar de_DescribeLaunchTemplateVersionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.launchTemplateVersionSet === \"\") {\n contents[_LTVa] = [];\n } else if (output[_lTVS] != null && output[_lTVS][_i] != null) {\n contents[_LTVa] = de_LaunchTemplateVersionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lTVS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLaunchTemplateVersionsResult\");\nvar de_DescribeLocalGatewayRouteTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayRouteTableSet === \"\") {\n contents[_LGRTo] = [];\n } else if (output[_lGRTS] != null && output[_lGRTS][_i] != null) {\n contents[_LGRTo] = de_LocalGatewayRouteTableSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGRTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayRouteTablesResult\");\nvar de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayRouteTableVirtualInterfaceGroupAssociationSet === \"\") {\n contents[_LGRTVIGAo] = [];\n } else if (output[_lGRTVIGAS] != null && output[_lGRTVIGAS][_i] != null) {\n contents[_LGRTVIGAo] = de_LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_lGRTVIGAS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult\");\nvar de_DescribeLocalGatewayRouteTableVpcAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayRouteTableVpcAssociationSet === \"\") {\n contents[_LGRTVAo] = [];\n } else if (output[_lGRTVAS] != null && output[_lGRTVAS][_i] != null) {\n contents[_LGRTVAo] = de_LocalGatewayRouteTableVpcAssociationSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_lGRTVAS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayRouteTableVpcAssociationsResult\");\nvar de_DescribeLocalGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewaySet === \"\") {\n contents[_LGoc] = [];\n } else if (output[_lGS] != null && output[_lGS][_i] != null) {\n contents[_LGoc] = de_LocalGatewaySet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewaysResult\");\nvar de_DescribeLocalGatewayVirtualInterfaceGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayVirtualInterfaceGroupSet === \"\") {\n contents[_LGVIGo] = [];\n } else if (output[_lGVIGS] != null && output[_lGVIGS][_i] != null) {\n contents[_LGVIGo] = de_LocalGatewayVirtualInterfaceGroupSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayVirtualInterfaceGroupsResult\");\nvar de_DescribeLocalGatewayVirtualInterfacesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayVirtualInterfaceSet === \"\") {\n contents[_LGVIo] = [];\n } else if (output[_lGVIS] != null && output[_lGVIS][_i] != null) {\n contents[_LGVIo] = de_LocalGatewayVirtualInterfaceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayVirtualInterfacesResult\");\nvar de_DescribeLockedSnapshotsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_LockedSnapshotsInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLockedSnapshotsResult\");\nvar de_DescribeMacHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.macHostSet === \"\") {\n contents[_MHa] = [];\n } else if (output[_mHS] != null && output[_mHS][_i] != null) {\n contents[_MHa] = de_MacHostList((0, import_smithy_client.getArrayIfSingleItem)(output[_mHS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeMacHostsResult\");\nvar de_DescribeManagedPrefixListsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.prefixListSet === \"\") {\n contents[_PLre] = [];\n } else if (output[_pLS] != null && output[_pLS][_i] != null) {\n contents[_PLre] = de_ManagedPrefixListSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLS][_i]), context);\n }\n return contents;\n}, \"de_DescribeManagedPrefixListsResult\");\nvar de_DescribeMovingAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.movingAddressStatusSet === \"\") {\n contents[_MAS] = [];\n } else if (output[_mASS] != null && output[_mASS][_i] != null) {\n contents[_MAS] = de_MovingAddressStatusSet((0, import_smithy_client.getArrayIfSingleItem)(output[_mASS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeMovingAddressesResult\");\nvar de_DescribeNatGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.natGatewaySet === \"\") {\n contents[_NGa] = [];\n } else if (output[_nGS] != null && output[_nGS][_i] != null) {\n contents[_NGa] = de_NatGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNatGatewaysResult\");\nvar de_DescribeNetworkAclsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkAclSet === \"\") {\n contents[_NAe] = [];\n } else if (output[_nAS] != null && output[_nAS][_i] != null) {\n contents[_NAe] = de_NetworkAclList((0, import_smithy_client.getArrayIfSingleItem)(output[_nAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkAclsResult\");\nvar de_DescribeNetworkInsightsAccessScopeAnalysesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsAccessScopeAnalysisSet === \"\") {\n contents[_NIASA] = [];\n } else if (output[_nIASAS] != null && output[_nIASAS][_i] != null) {\n contents[_NIASA] = de_NetworkInsightsAccessScopeAnalysisList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIASAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsAccessScopeAnalysesResult\");\nvar de_DescribeNetworkInsightsAccessScopesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsAccessScopeSet === \"\") {\n contents[_NIASe] = [];\n } else if (output[_nIASS] != null && output[_nIASS][_i] != null) {\n contents[_NIASe] = de_NetworkInsightsAccessScopeList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIASS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsAccessScopesResult\");\nvar de_DescribeNetworkInsightsAnalysesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsAnalysisSet === \"\") {\n contents[_NIA] = [];\n } else if (output[_nIASe] != null && output[_nIASe][_i] != null) {\n contents[_NIA] = de_NetworkInsightsAnalysisList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIASe][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsAnalysesResult\");\nvar de_DescribeNetworkInsightsPathsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsPathSet === \"\") {\n contents[_NIPe] = [];\n } else if (output[_nIPS] != null && output[_nIPS][_i] != null) {\n contents[_NIPe] = de_NetworkInsightsPathList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsPathsResult\");\nvar de_DescribeNetworkInterfaceAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_at] != null) {\n contents[_Att] = de_NetworkInterfaceAttachment(output[_at], context);\n }\n if (output[_de] != null) {\n contents[_De] = de_AttributeValue(output[_de], context);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = de_AttributeBooleanValue(output[_sDC], context);\n }\n if (output[_aPIA] != null) {\n contents[_APIAs] = (0, import_smithy_client.parseBoolean)(output[_aPIA]);\n }\n return contents;\n}, \"de_DescribeNetworkInterfaceAttributeResult\");\nvar de_DescribeNetworkInterfacePermissionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInterfacePermissions === \"\") {\n contents[_NIPet] = [];\n } else if (output[_nIPe] != null && output[_nIPe][_i] != null) {\n contents[_NIPet] = de_NetworkInterfacePermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIPe][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInterfacePermissionsResult\");\nvar de_DescribeNetworkInterfacesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_NetworkInterfaceList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInterfacesResult\");\nvar de_DescribeOutpostLagsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.outpostLagSet === \"\") {\n contents[_OL] = [];\n } else if (output[_oLS] != null && output[_oLS][_i] != null) {\n contents[_OL] = de_OutpostLagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oLS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeOutpostLagsResult\");\nvar de_DescribePlacementGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.placementGroupSet === \"\") {\n contents[_PGl] = [];\n } else if (output[_pGS] != null && output[_pGS][_i] != null) {\n contents[_PGl] = de_PlacementGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_pGS][_i]), context);\n }\n return contents;\n}, \"de_DescribePlacementGroupsResult\");\nvar de_DescribePrefixListsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.prefixListSet === \"\") {\n contents[_PLre] = [];\n } else if (output[_pLS] != null && output[_pLS][_i] != null) {\n contents[_PLre] = de_PrefixListSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLS][_i]), context);\n }\n return contents;\n}, \"de_DescribePrefixListsResult\");\nvar de_DescribePrincipalIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.principalSet === \"\") {\n contents[_Princ] = [];\n } else if (output[_pSr] != null && output[_pSr][_i] != null) {\n contents[_Princ] = de_PrincipalIdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribePrincipalIdFormatResult\");\nvar de_DescribePublicIpv4PoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.publicIpv4PoolSet === \"\") {\n contents[_PIPu] = [];\n } else if (output[_pIPS] != null && output[_pIPS][_i] != null) {\n contents[_PIPu] = de_PublicIpv4PoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pIPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribePublicIpv4PoolsResult\");\nvar de_DescribeRegionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.regionInfo === \"\") {\n contents[_Reg] = [];\n } else if (output[_rIe] != null && output[_rIe][_i] != null) {\n contents[_Reg] = de_RegionList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIe][_i]), context);\n }\n return contents;\n}, \"de_DescribeRegionsResult\");\nvar de_DescribeReplaceRootVolumeTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.replaceRootVolumeTaskSet === \"\") {\n contents[_RRVTe] = [];\n } else if (output[_rRVTS] != null && output[_rRVTS][_i] != null) {\n contents[_RRVTe] = de_ReplaceRootVolumeTasks((0, import_smithy_client.getArrayIfSingleItem)(output[_rRVTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeReplaceRootVolumeTasksResult\");\nvar de_DescribeReservedInstancesListingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesListingsSet === \"\") {\n contents[_RIL] = [];\n } else if (output[_rILS] != null && output[_rILS][_i] != null) {\n contents[_RIL] = de_ReservedInstancesListingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rILS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesListingsResult\");\nvar de_DescribeReservedInstancesModificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reservedInstancesModificationsSet === \"\") {\n contents[_RIM] = [];\n } else if (output[_rIMS] != null && output[_rIMS][_i] != null) {\n contents[_RIM] = de_ReservedInstancesModificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIMS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesModificationsResult\");\nvar de_DescribeReservedInstancesOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reservedInstancesOfferingsSet === \"\") {\n contents[_RIO] = [];\n } else if (output[_rIOS] != null && output[_rIOS][_i] != null) {\n contents[_RIO] = de_ReservedInstancesOfferingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIOS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesOfferingsResult\");\nvar de_DescribeReservedInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesSet === \"\") {\n contents[_RIese] = [];\n } else if (output[_rIS] != null && output[_rIS][_i] != null) {\n contents[_RIese] = de_ReservedInstancesList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesResult\");\nvar de_DescribeRouteServerEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerEndpointSet === \"\") {\n contents[_RSEo] = [];\n } else if (output[_rSES] != null && output[_rSES][_i] != null) {\n contents[_RSEo] = de_RouteServerEndpointsList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteServerEndpointsResult\");\nvar de_DescribeRouteServerPeersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerPeerSet === \"\") {\n contents[_RSPo] = [];\n } else if (output[_rSPS] != null && output[_rSPS][_i] != null) {\n contents[_RSPo] = de_RouteServerPeersList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteServerPeersResult\");\nvar de_DescribeRouteServersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerSet === \"\") {\n contents[_RSou] = [];\n } else if (output[_rSSo] != null && output[_rSSo][_i] != null) {\n contents[_RSou] = de_RouteServersList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSSo][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteServersResult\");\nvar de_DescribeRouteTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeTableSet === \"\") {\n contents[_RTou] = [];\n } else if (output[_rTS] != null && output[_rTS][_i] != null) {\n contents[_RTou] = de_RouteTableList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteTablesResult\");\nvar de_DescribeScheduledInstanceAvailabilityResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.scheduledInstanceAvailabilitySet === \"\") {\n contents[_SIAS] = [];\n } else if (output[_sIAS] != null && output[_sIAS][_i] != null) {\n contents[_SIAS] = de_ScheduledInstanceAvailabilitySet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIAS][_i]), context);\n }\n return contents;\n}, \"de_DescribeScheduledInstanceAvailabilityResult\");\nvar de_DescribeScheduledInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.scheduledInstanceSet === \"\") {\n contents[_SIS] = [];\n } else if (output[_sIS] != null && output[_sIS][_i] != null) {\n contents[_SIS] = de_ScheduledInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIS][_i]), context);\n }\n return contents;\n}, \"de_DescribeScheduledInstancesResult\");\nvar de_DescribeSecurityGroupReferencesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupReferenceSet === \"\") {\n contents[_SGRSe] = [];\n } else if (output[_sGRSe] != null && output[_sGRSe][_i] != null) {\n contents[_SGRSe] = de_SecurityGroupReferences((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRSe][_i]), context);\n }\n return contents;\n}, \"de_DescribeSecurityGroupReferencesResult\");\nvar de_DescribeSecurityGroupRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupRuleSet === \"\") {\n contents[_SGR] = [];\n } else if (output[_sGRS] != null && output[_sGRS][_i] != null) {\n contents[_SGR] = de_SecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSecurityGroupRulesResult\");\nvar de_DescribeSecurityGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.securityGroupInfo === \"\") {\n contents[_SG] = [];\n } else if (output[_sGIec] != null && output[_sGIec][_i] != null) {\n contents[_SG] = de_SecurityGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIec][_i]), context);\n }\n return contents;\n}, \"de_DescribeSecurityGroupsResult\");\nvar de_DescribeSecurityGroupVpcAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupVpcAssociationSet === \"\") {\n contents[_SGVA] = [];\n } else if (output[_sGVAS] != null && output[_sGVAS][_i] != null) {\n contents[_SGVA] = de_SecurityGroupVpcAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGVAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSecurityGroupVpcAssociationsResult\");\nvar de_DescribeServiceLinkVirtualInterfacesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceLinkVirtualInterfaceSet === \"\") {\n contents[_SLVI] = [];\n } else if (output[_sLVIS] != null && output[_sLVIS][_i] != null) {\n contents[_SLVI] = de_ServiceLinkVirtualInterfaceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sLVIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeServiceLinkVirtualInterfacesResult\");\nvar de_DescribeSnapshotAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output.createVolumePermission === \"\") {\n contents[_CVPr] = [];\n } else if (output[_cVP] != null && output[_cVP][_i] != null) {\n contents[_CVPr] = de_CreateVolumePermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_cVP][_i]), context);\n }\n return contents;\n}, \"de_DescribeSnapshotAttributeResult\");\nvar de_DescribeSnapshotsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_SnapshotList((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n return contents;\n}, \"de_DescribeSnapshotsResult\");\nvar de_DescribeSnapshotTierStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotTierStatusSet === \"\") {\n contents[_STS] = [];\n } else if (output[_sTSS] != null && output[_sTSS][_i] != null) {\n contents[_STS] = de_snapshotTierStatusSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sTSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSnapshotTierStatusResult\");\nvar de_DescribeSpotDatafeedSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sDS] != null) {\n contents[_SDS] = de_SpotDatafeedSubscription(output[_sDS], context);\n }\n return contents;\n}, \"de_DescribeSpotDatafeedSubscriptionResult\");\nvar de_DescribeSpotFleetInstancesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.activeInstanceSet === \"\") {\n contents[_AIc] = [];\n } else if (output[_aIS] != null && output[_aIS][_i] != null) {\n contents[_AIc] = de_ActiveInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_DescribeSpotFleetInstancesResponse\");\nvar de_DescribeSpotFleetRequestHistoryResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.historyRecordSet === \"\") {\n contents[_HRi] = [];\n } else if (output[_hRS] != null && output[_hRS][_i] != null) {\n contents[_HRi] = de_HistoryRecords((0, import_smithy_client.getArrayIfSingleItem)(output[_hRS][_i]), context);\n }\n if (output[_lET] != null) {\n contents[_LET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lET]));\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n return contents;\n}, \"de_DescribeSpotFleetRequestHistoryResponse\");\nvar de_DescribeSpotFleetRequestsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.spotFleetRequestConfigSet === \"\") {\n contents[_SFRCp] = [];\n } else if (output[_sFRCS] != null && output[_sFRCS][_i] != null) {\n contents[_SFRCp] = de_SpotFleetRequestConfigSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sFRCS][_i]), context);\n }\n return contents;\n}, \"de_DescribeSpotFleetRequestsResponse\");\nvar de_DescribeSpotInstanceRequestsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotInstanceRequestSet === \"\") {\n contents[_SIR] = [];\n } else if (output[_sIRS] != null && output[_sIRS][_i] != null) {\n contents[_SIR] = de_SpotInstanceRequestList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSpotInstanceRequestsResult\");\nvar de_DescribeSpotPriceHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.spotPriceHistorySet === \"\") {\n contents[_SPH] = [];\n } else if (output[_sPHS] != null && output[_sPHS][_i] != null) {\n contents[_SPH] = de_SpotPriceHistoryList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPHS][_i]), context);\n }\n return contents;\n}, \"de_DescribeSpotPriceHistoryResult\");\nvar de_DescribeStaleSecurityGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.staleSecurityGroupSet === \"\") {\n contents[_SSGS] = [];\n } else if (output[_sSGS] != null && output[_sSGS][_i] != null) {\n contents[_SSGS] = de_StaleSecurityGroupSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sSGS][_i]), context);\n }\n return contents;\n}, \"de_DescribeStaleSecurityGroupsResult\");\nvar de_DescribeStoreImageTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.storeImageTaskResultSet === \"\") {\n contents[_SITR] = [];\n } else if (output[_sITRS] != null && output[_sITRS][_i] != null) {\n contents[_SITR] = de_StoreImageTaskResultSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sITRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeStoreImageTasksResult\");\nvar de_DescribeSubnetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.subnetSet === \"\") {\n contents[_Subn] = [];\n } else if (output[_sSub] != null && output[_sSub][_i] != null) {\n contents[_Subn] = de_SubnetList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSub][_i]), context);\n }\n return contents;\n}, \"de_DescribeSubnetsResult\");\nvar de_DescribeTagsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagDescriptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_DescribeTagsResult\");\nvar de_DescribeTrafficMirrorFilterRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorFilterRuleSet === \"\") {\n contents[_TMFRr] = [];\n } else if (output[_tMFRS] != null && output[_tMFRS][_i] != null) {\n contents[_TMFRr] = de_TrafficMirrorFilterRuleSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMFRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorFilterRulesResult\");\nvar de_DescribeTrafficMirrorFiltersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorFilterSet === \"\") {\n contents[_TMFr] = [];\n } else if (output[_tMFS] != null && output[_tMFS][_i] != null) {\n contents[_TMFr] = de_TrafficMirrorFilterSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMFS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorFiltersResult\");\nvar de_DescribeTrafficMirrorSessionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorSessionSet === \"\") {\n contents[_TMSr] = [];\n } else if (output[_tMSS] != null && output[_tMSS][_i] != null) {\n contents[_TMSr] = de_TrafficMirrorSessionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorSessionsResult\");\nvar de_DescribeTrafficMirrorTargetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorTargetSet === \"\") {\n contents[_TMTr] = [];\n } else if (output[_tMTS] != null && output[_tMTS][_i] != null) {\n contents[_TMTr] = de_TrafficMirrorTargetSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorTargetsResult\");\nvar de_DescribeTransitGatewayAttachmentsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayAttachments === \"\") {\n contents[_TGAr] = [];\n } else if (output[_tGA] != null && output[_tGA][_i] != null) {\n contents[_TGAr] = de_TransitGatewayAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGA][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayAttachmentsResult\");\nvar de_DescribeTransitGatewayConnectPeersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayConnectPeerSet === \"\") {\n contents[_TGCPr] = [];\n } else if (output[_tGCPS] != null && output[_tGCPS][_i] != null) {\n contents[_TGCPr] = de_TransitGatewayConnectPeerList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGCPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayConnectPeersResult\");\nvar de_DescribeTransitGatewayConnectsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayConnectSet === \"\") {\n contents[_TGCra] = [];\n } else if (output[_tGCS] != null && output[_tGCS][_i] != null) {\n contents[_TGCra] = de_TransitGatewayConnectList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayConnectsResult\");\nvar de_DescribeTransitGatewayMulticastDomainsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayMulticastDomains === \"\") {\n contents[_TGMDr] = [];\n } else if (output[_tGMDr] != null && output[_tGMDr][_i] != null) {\n contents[_TGMDr] = de_TransitGatewayMulticastDomainList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGMDr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayMulticastDomainsResult\");\nvar de_DescribeTransitGatewayPeeringAttachmentsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPeeringAttachments === \"\") {\n contents[_TGPAr] = [];\n } else if (output[_tGPAr] != null && output[_tGPAr][_i] != null) {\n contents[_TGPAr] = de_TransitGatewayPeeringAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPAr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayPeeringAttachmentsResult\");\nvar de_DescribeTransitGatewayPolicyTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPolicyTables === \"\") {\n contents[_TGPTr] = [];\n } else if (output[_tGPTr] != null && output[_tGPTr][_i] != null) {\n contents[_TGPTr] = de_TransitGatewayPolicyTableList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPTr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayPolicyTablesResult\");\nvar de_DescribeTransitGatewayRouteTableAnnouncementsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayRouteTableAnnouncements === \"\") {\n contents[_TGRTAr] = [];\n } else if (output[_tGRTAr] != null && output[_tGRTAr][_i] != null) {\n contents[_TGRTAr] = de_TransitGatewayRouteTableAnnouncementList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_tGRTAr][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayRouteTableAnnouncementsResult\");\nvar de_DescribeTransitGatewayRouteTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayRouteTables === \"\") {\n contents[_TGRTr] = [];\n } else if (output[_tGRTr] != null && output[_tGRTr][_i] != null) {\n contents[_TGRTr] = de_TransitGatewayRouteTableList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGRTr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayRouteTablesResult\");\nvar de_DescribeTransitGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewaySet === \"\") {\n contents[_TGra] = [];\n } else if (output[_tGS] != null && output[_tGS][_i] != null) {\n contents[_TGra] = de_TransitGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewaysResult\");\nvar de_DescribeTransitGatewayVpcAttachmentsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayVpcAttachments === \"\") {\n contents[_TGVAr] = [];\n } else if (output[_tGVAr] != null && output[_tGVAr][_i] != null) {\n contents[_TGVAr] = de_TransitGatewayVpcAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGVAr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayVpcAttachmentsResult\");\nvar de_DescribeTrunkInterfaceAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.interfaceAssociationSet === \"\") {\n contents[_IAnt] = [];\n } else if (output[_iAS] != null && output[_iAS][_i] != null) {\n contents[_IAnt] = de_TrunkInterfaceAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_iAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrunkInterfaceAssociationsResult\");\nvar de_DescribeVerifiedAccessEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessEndpointSet === \"\") {\n contents[_VAEe] = [];\n } else if (output[_vAES] != null && output[_vAES][_i] != null) {\n contents[_VAEe] = de_VerifiedAccessEndpointList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessEndpointsResult\");\nvar de_DescribeVerifiedAccessGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessGroupSet === \"\") {\n contents[_VAGe] = [];\n } else if (output[_vAGS] != null && output[_vAGS][_i] != null) {\n contents[_VAGe] = de_VerifiedAccessGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessGroupsResult\");\nvar de_DescribeVerifiedAccessInstanceLoggingConfigurationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.loggingConfigurationSet === \"\") {\n contents[_LC] = [];\n } else if (output[_lCS] != null && output[_lCS][_i] != null) {\n contents[_LC] = de_VerifiedAccessInstanceLoggingConfigurationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_lCS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessInstanceLoggingConfigurationsResult\");\nvar de_DescribeVerifiedAccessInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessInstanceSet === \"\") {\n contents[_VAIe] = [];\n } else if (output[_vAIS] != null && output[_vAIS][_i] != null) {\n contents[_VAIe] = de_VerifiedAccessInstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessInstancesResult\");\nvar de_DescribeVerifiedAccessTrustProvidersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessTrustProviderSet === \"\") {\n contents[_VATPe] = [];\n } else if (output[_vATPS] != null && output[_vATPS][_i] != null) {\n contents[_VATPe] = de_VerifiedAccessTrustProviderList((0, import_smithy_client.getArrayIfSingleItem)(output[_vATPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessTrustProvidersResult\");\nvar de_DescribeVolumeAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aEIO] != null) {\n contents[_AEIO] = de_AttributeBooleanValue(output[_aEIO], context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n return contents;\n}, \"de_DescribeVolumeAttributeResult\");\nvar de_DescribeVolumesModificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.volumeModificationSet === \"\") {\n contents[_VMo] = [];\n } else if (output[_vMS] != null && output[_vMS][_i] != null) {\n contents[_VMo] = de_VolumeModificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_vMS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVolumesModificationsResult\");\nvar de_DescribeVolumesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.volumeSet === \"\") {\n contents[_Vol] = [];\n } else if (output[_vS] != null && output[_vS][_i] != null) {\n contents[_Vol] = de_VolumeList((0, import_smithy_client.getArrayIfSingleItem)(output[_vS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVolumesResult\");\nvar de_DescribeVolumeStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.volumeStatusSet === \"\") {\n contents[_VSo] = [];\n } else if (output[_vSS] != null && output[_vSS][_i] != null) {\n contents[_VSo] = de_VolumeStatusList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVolumeStatusResult\");\nvar de_DescribeVpcAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eDH] != null) {\n contents[_EDH] = de_AttributeBooleanValue(output[_eDH], context);\n }\n if (output[_eDS] != null) {\n contents[_EDS] = de_AttributeBooleanValue(output[_eDS], context);\n }\n if (output[_eNAUM] != null) {\n contents[_ENAUM] = de_AttributeBooleanValue(output[_eNAUM], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_DescribeVpcAttributeResult\");\nvar de_DescribeVpcBlockPublicAccessExclusionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcBlockPublicAccessExclusionSet === \"\") {\n contents[_VBPAEp] = [];\n } else if (output[_vBPAES] != null && output[_vBPAES][_i] != null) {\n contents[_VBPAEp] = de_VpcBlockPublicAccessExclusionList((0, import_smithy_client.getArrayIfSingleItem)(output[_vBPAES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcBlockPublicAccessExclusionsResult\");\nvar de_DescribeVpcBlockPublicAccessOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAO] != null) {\n contents[_VBPAO] = de_VpcBlockPublicAccessOptions(output[_vBPAO], context);\n }\n return contents;\n}, \"de_DescribeVpcBlockPublicAccessOptionsResult\");\nvar de_DescribeVpcClassicLinkDnsSupportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.vpcs === \"\") {\n contents[_Vpc] = [];\n } else if (output[_vpc] != null && output[_vpc][_i] != null) {\n contents[_Vpc] = de_ClassicLinkDnsSupportList((0, import_smithy_client.getArrayIfSingleItem)(output[_vpc][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpcClassicLinkDnsSupportResult\");\nvar de_DescribeVpcClassicLinkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcSet === \"\") {\n contents[_Vpc] = [];\n } else if (output[_vSp] != null && output[_vSp][_i] != null) {\n contents[_Vpc] = de_VpcClassicLinkList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpcClassicLinkResult\");\nvar de_DescribeVpcEndpointAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcEndpointAssociationSet === \"\") {\n contents[_VEA] = [];\n } else if (output[_vEAS] != null && output[_vEAS][_i] != null) {\n contents[_VEA] = de_VpcEndpointAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vEAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointAssociationsResult\");\nvar de_DescribeVpcEndpointConnectionNotificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.connectionNotificationSet === \"\") {\n contents[_CNSo] = [];\n } else if (output[_cNSo] != null && output[_cNSo][_i] != null) {\n contents[_CNSo] = de_ConnectionNotificationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cNSo][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointConnectionNotificationsResult\");\nvar de_DescribeVpcEndpointConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcEndpointConnectionSet === \"\") {\n contents[_VEC] = [];\n } else if (output[_vECS] != null && output[_vECS][_i] != null) {\n contents[_VEC] = de_VpcEndpointConnectionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vECS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointConnectionsResult\");\nvar de_DescribeVpcEndpointServiceConfigurationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceConfigurationSet === \"\") {\n contents[_SCer] = [];\n } else if (output[_sCS] != null && output[_sCS][_i] != null) {\n contents[_SCer] = de_ServiceConfigurationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointServiceConfigurationsResult\");\nvar de_DescribeVpcEndpointServicePermissionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.allowedPrincipals === \"\") {\n contents[_APl] = [];\n } else if (output[_aP] != null && output[_aP][_i] != null) {\n contents[_APl] = de_AllowedPrincipalSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aP][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointServicePermissionsResult\");\nvar de_DescribeVpcEndpointServicesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceNameSet === \"\") {\n contents[_SNer] = [];\n } else if (output[_sNS] != null && output[_sNS][_i] != null) {\n contents[_SNer] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sNS][_i]), context);\n }\n if (output.serviceDetailSet === \"\") {\n contents[_SDe] = [];\n } else if (output[_sDSe] != null && output[_sDSe][_i] != null) {\n contents[_SDe] = de_ServiceDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sDSe][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointServicesResult\");\nvar de_DescribeVpcEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcEndpointSet === \"\") {\n contents[_VEp] = [];\n } else if (output[_vESp] != null && output[_vESp][_i] != null) {\n contents[_VEp] = de_VpcEndpointSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vESp][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointsResult\");\nvar de_DescribeVpcPeeringConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcPeeringConnectionSet === \"\") {\n contents[_VPCp] = [];\n } else if (output[_vPCS] != null && output[_vPCS][_i] != null) {\n contents[_VPCp] = de_VpcPeeringConnectionList((0, import_smithy_client.getArrayIfSingleItem)(output[_vPCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcPeeringConnectionsResult\");\nvar de_DescribeVpcsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.vpcSet === \"\") {\n contents[_Vpc] = [];\n } else if (output[_vSp] != null && output[_vSp][_i] != null) {\n contents[_Vpc] = de_VpcList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpcsResult\");\nvar de_DescribeVpnConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpnConnectionSet === \"\") {\n contents[_VCp] = [];\n } else if (output[_vCS] != null && output[_vCS][_i] != null) {\n contents[_VCp] = de_VpnConnectionList((0, import_smithy_client.getArrayIfSingleItem)(output[_vCS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpnConnectionsResult\");\nvar de_DescribeVpnGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpnGatewaySet === \"\") {\n contents[_VGp] = [];\n } else if (output[_vGS] != null && output[_vGS][_i] != null) {\n contents[_VGp] = de_VpnGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_vGS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpnGatewaysResult\");\nvar de_DestinationOptionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fF] != null) {\n contents[_FF] = (0, import_smithy_client.expectString)(output[_fF]);\n }\n if (output[_hCP] != null) {\n contents[_HCP] = (0, import_smithy_client.parseBoolean)(output[_hCP]);\n }\n if (output[_pHP] != null) {\n contents[_PHP] = (0, import_smithy_client.parseBoolean)(output[_pHP]);\n }\n return contents;\n}, \"de_DestinationOptionsResponse\");\nvar de_DetachClassicLinkVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DetachClassicLinkVpcResult\");\nvar de_DetachVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_DetachVerifiedAccessTrustProviderResult\");\nvar de_DeviceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tIe] != null) {\n contents[_TIe] = (0, import_smithy_client.expectString)(output[_tIe]);\n }\n if (output[_pSKU] != null) {\n contents[_PSKU] = (0, import_smithy_client.expectString)(output[_pSKU]);\n }\n return contents;\n}, \"de_DeviceOptions\");\nvar de_DeviceTrustProviderTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DeviceTrustProviderTypeList\");\nvar de_DhcpConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output.valueSet === \"\") {\n contents[_Val] = [];\n } else if (output[_vSa] != null && output[_vSa][_i] != null) {\n contents[_Val] = de_DhcpConfigurationValueList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSa][_i]), context);\n }\n return contents;\n}, \"de_DhcpConfiguration\");\nvar de_DhcpConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DhcpConfiguration(entry, context);\n });\n}, \"de_DhcpConfigurationList\");\nvar de_DhcpConfigurationValueList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AttributeValue(entry, context);\n });\n}, \"de_DhcpConfigurationValueList\");\nvar de_DhcpOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_dOI] != null) {\n contents[_DOI] = (0, import_smithy_client.expectString)(output[_dOI]);\n }\n if (output.dhcpConfigurationSet === \"\") {\n contents[_DCh] = [];\n } else if (output[_dCS] != null && output[_dCS][_i] != null) {\n contents[_DCh] = de_DhcpConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(output[_dCS][_i]), context);\n }\n return contents;\n}, \"de_DhcpOptions\");\nvar de_DhcpOptionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DhcpOptions(entry, context);\n });\n}, \"de_DhcpOptionsList\");\nvar de_DirectoryServiceAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dI] != null) {\n contents[_DIir] = (0, import_smithy_client.expectString)(output[_dI]);\n }\n return contents;\n}, \"de_DirectoryServiceAuthentication\");\nvar de_DisableAddressTransferResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aT] != null) {\n contents[_ATdd] = de_AddressTransfer(output[_aT], context);\n }\n return contents;\n}, \"de_DisableAddressTransferResult\");\nvar de_DisableAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aISS] != null) {\n contents[_AISS] = (0, import_smithy_client.expectString)(output[_aISS]);\n }\n return contents;\n}, \"de_DisableAllowedImagesSettingsResult\");\nvar de_DisableAwsNetworkPerformanceMetricSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ou] != null) {\n contents[_Ou] = (0, import_smithy_client.parseBoolean)(output[_ou]);\n }\n return contents;\n}, \"de_DisableAwsNetworkPerformanceMetricSubscriptionResult\");\nvar de_DisableEbsEncryptionByDefaultResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eEBD] != null) {\n contents[_EEBD] = (0, import_smithy_client.parseBoolean)(output[_eEBD]);\n }\n return contents;\n}, \"de_DisableEbsEncryptionByDefaultResult\");\nvar de_DisableFastLaunchResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_sCn] != null) {\n contents[_SCn] = de_FastLaunchSnapshotConfigurationResponse(output[_sCn], context);\n }\n if (output[_lT] != null) {\n contents[_LTa] = de_FastLaunchLaunchTemplateSpecificationResponse(output[_lT], context);\n }\n if (output[_mPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_mPL]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_sTT] != null) {\n contents[_STT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTT]));\n }\n return contents;\n}, \"de_DisableFastLaunchResult\");\nvar de_DisableFastSnapshotRestoreErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output.fastSnapshotRestoreStateErrorSet === \"\") {\n contents[_FSRSE] = [];\n } else if (output[_fSRSES] != null && output[_fSRSES][_i] != null) {\n contents[_FSRSE] = de_DisableFastSnapshotRestoreStateErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fSRSES][_i]), context);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreErrorItem\");\nvar de_DisableFastSnapshotRestoreErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DisableFastSnapshotRestoreErrorItem(entry, context);\n });\n}, \"de_DisableFastSnapshotRestoreErrorSet\");\nvar de_DisableFastSnapshotRestoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_DisableFastSnapshotRestoreSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_DisableFastSnapshotRestoreErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoresResult\");\nvar de_DisableFastSnapshotRestoreStateError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreStateError\");\nvar de_DisableFastSnapshotRestoreStateErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_er] != null) {\n contents[_Er] = de_DisableFastSnapshotRestoreStateError(output[_er], context);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreStateErrorItem\");\nvar de_DisableFastSnapshotRestoreStateErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DisableFastSnapshotRestoreStateErrorItem(entry, context);\n });\n}, \"de_DisableFastSnapshotRestoreStateErrorSet\");\nvar de_DisableFastSnapshotRestoreSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_eTna] != null) {\n contents[_ETna] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTna]));\n }\n if (output[_oT] != null) {\n contents[_OTpt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oT]));\n }\n if (output[_eTnab] != null) {\n contents[_ETnab] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTnab]));\n }\n if (output[_dTi] != null) {\n contents[_DTi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTi]));\n }\n if (output[_dTis] != null) {\n contents[_DTis] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTis]));\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreSuccessItem\");\nvar de_DisableFastSnapshotRestoreSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DisableFastSnapshotRestoreSuccessItem(entry, context);\n });\n}, \"de_DisableFastSnapshotRestoreSuccessSet\");\nvar de_DisableImageBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iBPAS] != null) {\n contents[_IBPAS] = (0, import_smithy_client.expectString)(output[_iBPAS]);\n }\n return contents;\n}, \"de_DisableImageBlockPublicAccessResult\");\nvar de_DisableImageDeprecationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableImageDeprecationResult\");\nvar de_DisableImageDeregistrationProtectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.expectString)(output[_r]);\n }\n return contents;\n}, \"de_DisableImageDeregistrationProtectionResult\");\nvar de_DisableImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableImageResult\");\nvar de_DisableIpamOrganizationAdminAccountResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_succ] != null) {\n contents[_Succ] = (0, import_smithy_client.parseBoolean)(output[_succ]);\n }\n return contents;\n}, \"de_DisableIpamOrganizationAdminAccountResult\");\nvar de_DisableRouteServerPropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSPo] != null) {\n contents[_RSPou] = de_RouteServerPropagation(output[_rSPo], context);\n }\n return contents;\n}, \"de_DisableRouteServerPropagationResult\");\nvar de_DisableSerialConsoleAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCAE] != null) {\n contents[_SCAE] = (0, import_smithy_client.parseBoolean)(output[_sCAE]);\n }\n return contents;\n}, \"de_DisableSerialConsoleAccessResult\");\nvar de_DisableSnapshotBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_DisableSnapshotBlockPublicAccessResult\");\nvar de_DisableTransitGatewayRouteTablePropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_prop] != null) {\n contents[_Prop] = de_TransitGatewayPropagation(output[_prop], context);\n }\n return contents;\n}, \"de_DisableTransitGatewayRouteTablePropagationResult\");\nvar de_DisableVpcClassicLinkDnsSupportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableVpcClassicLinkDnsSupportResult\");\nvar de_DisableVpcClassicLinkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableVpcClassicLinkResult\");\nvar de_DisassociateCapacityReservationBillingOwnerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisassociateCapacityReservationBillingOwnerResult\");\nvar de_DisassociateClientVpnTargetNetworkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_AssociationStatus(output[_sta], context);\n }\n return contents;\n}, \"de_DisassociateClientVpnTargetNetworkResult\");\nvar de_DisassociateEnclaveCertificateIamRoleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisassociateEnclaveCertificateIamRoleResult\");\nvar de_DisassociateIamInstanceProfileResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIPA] != null) {\n contents[_IIPA] = de_IamInstanceProfileAssociation(output[_iIPA], context);\n }\n return contents;\n}, \"de_DisassociateIamInstanceProfileResult\");\nvar de_DisassociateInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_DisassociateInstanceEventWindowResult\");\nvar de_DisassociateIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aA] != null) {\n contents[_AAsn] = de_AsnAssociation(output[_aA], context);\n }\n return contents;\n}, \"de_DisassociateIpamByoasnResult\");\nvar de_DisassociateIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDA] != null) {\n contents[_IRDA] = de_IpamResourceDiscoveryAssociation(output[_iRDA], context);\n }\n return contents;\n}, \"de_DisassociateIpamResourceDiscoveryResult\");\nvar de_DisassociateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_DisassociateNatGatewayAddressResult\");\nvar de_DisassociateRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSA] != null) {\n contents[_RSAo] = de_RouteServerAssociation(output[_rSA], context);\n }\n return contents;\n}, \"de_DisassociateRouteServerResult\");\nvar de_DisassociateSecurityGroupVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_DisassociateSecurityGroupVpcResult\");\nvar de_DisassociateSubnetCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_SubnetIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n return contents;\n}, \"de_DisassociateSubnetCidrBlockResult\");\nvar de_DisassociateTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_DisassociateTransitGatewayMulticastDomainResult\");\nvar de_DisassociateTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayPolicyTableAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_DisassociateTransitGatewayPolicyTableResult\");\nvar de_DisassociateTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_DisassociateTransitGatewayRouteTableResult\");\nvar de_DisassociateTrunkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_DisassociateTrunkInterfaceResult\");\nvar de_DisassociateVpcCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_VpcIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_cBA] != null) {\n contents[_CBA] = de_VpcCidrBlockAssociation(output[_cBA], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_DisassociateVpcCidrBlockResult\");\nvar de_DiskImageDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ch] != null) {\n contents[_Ch] = (0, import_smithy_client.expectString)(output[_ch]);\n }\n if (output[_f] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_f]);\n }\n if (output[_iMU] != null) {\n contents[_IMU] = (0, import_smithy_client.expectString)(output[_iMU]);\n }\n if (output[_si] != null) {\n contents[_Siz] = (0, import_smithy_client.strictParseLong)(output[_si]);\n }\n return contents;\n}, \"de_DiskImageDescription\");\nvar de_DiskImageVolumeDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_si] != null) {\n contents[_Siz] = (0, import_smithy_client.strictParseLong)(output[_si]);\n }\n return contents;\n}, \"de_DiskImageVolumeDescription\");\nvar de_DiskInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIGB] != null) {\n contents[_SIGB] = (0, import_smithy_client.strictParseLong)(output[_sIGB]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n return contents;\n}, \"de_DiskInfo\");\nvar de_DiskInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DiskInfo(entry, context);\n });\n}, \"de_DiskInfoList\");\nvar de_DnsEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_hZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_hZI]);\n }\n return contents;\n}, \"de_DnsEntry\");\nvar de_DnsEntrySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DnsEntry(entry, context);\n });\n}, \"de_DnsEntrySet\");\nvar de_DnsOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dRIT] != null) {\n contents[_DRIT] = (0, import_smithy_client.expectString)(output[_dRIT]);\n }\n if (output[_pDOFIRE] != null) {\n contents[_PDOFIRE] = (0, import_smithy_client.parseBoolean)(output[_pDOFIRE]);\n }\n return contents;\n}, \"de_DnsOptions\");\nvar de_EbsBlockDevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_VIR] != null) {\n contents[_VIR] = (0, import_smithy_client.strictParseInt32)(output[_VIR]);\n }\n return contents;\n}, \"de_EbsBlockDevice\");\nvar de_EbsBlockDeviceResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n return contents;\n}, \"de_EbsBlockDeviceResponse\");\nvar de_EbsInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eOS] != null) {\n contents[_EOS] = (0, import_smithy_client.expectString)(output[_eOS]);\n }\n if (output[_eSn] != null) {\n contents[_ESnc] = (0, import_smithy_client.expectString)(output[_eSn]);\n }\n if (output[_eOI] != null) {\n contents[_EOI] = de_EbsOptimizedInfo(output[_eOI], context);\n }\n if (output[_nS] != null) {\n contents[_NS] = (0, import_smithy_client.expectString)(output[_nS]);\n }\n return contents;\n}, \"de_EbsInfo\");\nvar de_EbsInstanceBlockDevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_aRs] != null) {\n contents[_ARs] = (0, import_smithy_client.expectString)(output[_aRs]);\n }\n if (output[_vOI] != null) {\n contents[_VOI] = (0, import_smithy_client.expectString)(output[_vOI]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_EbsInstanceBlockDevice\");\nvar de_EbsOptimizedInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bBIM] != null) {\n contents[_BBIM] = (0, import_smithy_client.strictParseInt32)(output[_bBIM]);\n }\n if (output[_bTIMB] != null) {\n contents[_BTIMB] = (0, import_smithy_client.strictParseFloat)(output[_bTIMB]);\n }\n if (output[_bIa] != null) {\n contents[_BIa] = (0, import_smithy_client.strictParseInt32)(output[_bIa]);\n }\n if (output[_mBIM] != null) {\n contents[_MBIM] = (0, import_smithy_client.strictParseInt32)(output[_mBIM]);\n }\n if (output[_mTIMB] != null) {\n contents[_MTIMB] = (0, import_smithy_client.strictParseFloat)(output[_mTIMB]);\n }\n if (output[_mI] != null) {\n contents[_MIa] = (0, import_smithy_client.strictParseInt32)(output[_mI]);\n }\n return contents;\n}, \"de_EbsOptimizedInfo\");\nvar de_EbsStatusDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iSmp] != null) {\n contents[_ISmp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_iSmp]));\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_EbsStatusDetails\");\nvar de_EbsStatusDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EbsStatusDetails(entry, context);\n });\n}, \"de_EbsStatusDetailsList\");\nvar de_EbsStatusSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.details === \"\") {\n contents[_Det] = [];\n } else if (output[_det] != null && output[_det][_i] != null) {\n contents[_Det] = de_EbsStatusDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_det][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_EbsStatusSummary\");\nvar de_Ec2InstanceConnectEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iCEI] != null) {\n contents[_ICEI] = (0, import_smithy_client.expectString)(output[_iCEI]);\n }\n if (output[_iCEA] != null) {\n contents[_ICEA] = (0, import_smithy_client.expectString)(output[_iCEA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_fDN] != null) {\n contents[_FDN] = (0, import_smithy_client.expectString)(output[_fDN]);\n }\n if (output.networkInterfaceIdSet === \"\") {\n contents[_NIIe] = [];\n } else if (output[_nIIS] != null && output[_nIIS][_i] != null) {\n contents[_NIIe] = de_NetworkInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_nIIS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_cAr] != null) {\n contents[_CAr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cAr]));\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_pCI] != null) {\n contents[_PCI] = (0, import_smithy_client.parseBoolean)(output[_pCI]);\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_SecurityGroupIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_Ec2InstanceConnectEndpoint\");\nvar de_EfaInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mEI] != null) {\n contents[_MEI] = (0, import_smithy_client.strictParseInt32)(output[_mEI]);\n }\n return contents;\n}, \"de_EfaInfo\");\nvar de_EgressOnlyInternetGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.attachmentSet === \"\") {\n contents[_Atta] = [];\n } else if (output[_aSt] != null && output[_aSt][_i] != null) {\n contents[_Atta] = de_InternetGatewayAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSt][_i]), context);\n }\n if (output[_eOIGI] != null) {\n contents[_EOIGI] = (0, import_smithy_client.expectString)(output[_eOIGI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_EgressOnlyInternetGateway\");\nvar de_EgressOnlyInternetGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EgressOnlyInternetGateway(entry, context);\n });\n}, \"de_EgressOnlyInternetGatewayList\");\nvar de_ElasticGpuAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eGI] != null) {\n contents[_EGIl] = (0, import_smithy_client.expectString)(output[_eGI]);\n }\n if (output[_eGAI] != null) {\n contents[_EGAI] = (0, import_smithy_client.expectString)(output[_eGAI]);\n }\n if (output[_eGAS] != null) {\n contents[_EGAS] = (0, import_smithy_client.expectString)(output[_eGAS]);\n }\n if (output[_eGAT] != null) {\n contents[_EGAT] = (0, import_smithy_client.expectString)(output[_eGAT]);\n }\n return contents;\n}, \"de_ElasticGpuAssociation\");\nvar de_ElasticGpuAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticGpuAssociation(entry, context);\n });\n}, \"de_ElasticGpuAssociationList\");\nvar de_ElasticGpuHealth = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_ElasticGpuHealth\");\nvar de_ElasticGpus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eGI] != null) {\n contents[_EGIl] = (0, import_smithy_client.expectString)(output[_eGI]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_eGT] != null) {\n contents[_EGT] = (0, import_smithy_client.expectString)(output[_eGT]);\n }\n if (output[_eGH] != null) {\n contents[_EGH] = de_ElasticGpuHealth(output[_eGH], context);\n }\n if (output[_eGSl] != null) {\n contents[_EGSlas] = (0, import_smithy_client.expectString)(output[_eGSl]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ElasticGpus\");\nvar de_ElasticGpuSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticGpus(entry, context);\n });\n}, \"de_ElasticGpuSet\");\nvar de_ElasticGpuSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n return contents;\n}, \"de_ElasticGpuSpecificationResponse\");\nvar de_ElasticGpuSpecificationResponseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticGpuSpecificationResponse(entry, context);\n });\n}, \"de_ElasticGpuSpecificationResponseList\");\nvar de_ElasticInferenceAcceleratorAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIAA] != null) {\n contents[_EIAA] = (0, import_smithy_client.expectString)(output[_eIAA]);\n }\n if (output[_eIAAI] != null) {\n contents[_EIAAI] = (0, import_smithy_client.expectString)(output[_eIAAI]);\n }\n if (output[_eIAAS] != null) {\n contents[_EIAAS] = (0, import_smithy_client.expectString)(output[_eIAAS]);\n }\n if (output[_eIAAT] != null) {\n contents[_EIAAT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eIAAT]));\n }\n return contents;\n}, \"de_ElasticInferenceAcceleratorAssociation\");\nvar de_ElasticInferenceAcceleratorAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticInferenceAcceleratorAssociation(entry, context);\n });\n}, \"de_ElasticInferenceAcceleratorAssociationList\");\nvar de_EnableAddressTransferResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aT] != null) {\n contents[_ATdd] = de_AddressTransfer(output[_aT], context);\n }\n return contents;\n}, \"de_EnableAddressTransferResult\");\nvar de_EnableAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aISS] != null) {\n contents[_AISS] = (0, import_smithy_client.expectString)(output[_aISS]);\n }\n return contents;\n}, \"de_EnableAllowedImagesSettingsResult\");\nvar de_EnableAwsNetworkPerformanceMetricSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ou] != null) {\n contents[_Ou] = (0, import_smithy_client.parseBoolean)(output[_ou]);\n }\n return contents;\n}, \"de_EnableAwsNetworkPerformanceMetricSubscriptionResult\");\nvar de_EnableEbsEncryptionByDefaultResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eEBD] != null) {\n contents[_EEBD] = (0, import_smithy_client.parseBoolean)(output[_eEBD]);\n }\n return contents;\n}, \"de_EnableEbsEncryptionByDefaultResult\");\nvar de_EnableFastLaunchResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_sCn] != null) {\n contents[_SCn] = de_FastLaunchSnapshotConfigurationResponse(output[_sCn], context);\n }\n if (output[_lT] != null) {\n contents[_LTa] = de_FastLaunchLaunchTemplateSpecificationResponse(output[_lT], context);\n }\n if (output[_mPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_mPL]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_sTT] != null) {\n contents[_STT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTT]));\n }\n return contents;\n}, \"de_EnableFastLaunchResult\");\nvar de_EnableFastSnapshotRestoreErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output.fastSnapshotRestoreStateErrorSet === \"\") {\n contents[_FSRSE] = [];\n } else if (output[_fSRSES] != null && output[_fSRSES][_i] != null) {\n contents[_FSRSE] = de_EnableFastSnapshotRestoreStateErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fSRSES][_i]), context);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreErrorItem\");\nvar de_EnableFastSnapshotRestoreErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EnableFastSnapshotRestoreErrorItem(entry, context);\n });\n}, \"de_EnableFastSnapshotRestoreErrorSet\");\nvar de_EnableFastSnapshotRestoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_EnableFastSnapshotRestoreSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_EnableFastSnapshotRestoreErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoresResult\");\nvar de_EnableFastSnapshotRestoreStateError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreStateError\");\nvar de_EnableFastSnapshotRestoreStateErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_er] != null) {\n contents[_Er] = de_EnableFastSnapshotRestoreStateError(output[_er], context);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreStateErrorItem\");\nvar de_EnableFastSnapshotRestoreStateErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EnableFastSnapshotRestoreStateErrorItem(entry, context);\n });\n}, \"de_EnableFastSnapshotRestoreStateErrorSet\");\nvar de_EnableFastSnapshotRestoreSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_eTna] != null) {\n contents[_ETna] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTna]));\n }\n if (output[_oT] != null) {\n contents[_OTpt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oT]));\n }\n if (output[_eTnab] != null) {\n contents[_ETnab] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTnab]));\n }\n if (output[_dTi] != null) {\n contents[_DTi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTi]));\n }\n if (output[_dTis] != null) {\n contents[_DTis] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTis]));\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreSuccessItem\");\nvar de_EnableFastSnapshotRestoreSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EnableFastSnapshotRestoreSuccessItem(entry, context);\n });\n}, \"de_EnableFastSnapshotRestoreSuccessSet\");\nvar de_EnableImageBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iBPAS] != null) {\n contents[_IBPAS] = (0, import_smithy_client.expectString)(output[_iBPAS]);\n }\n return contents;\n}, \"de_EnableImageBlockPublicAccessResult\");\nvar de_EnableImageDeprecationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableImageDeprecationResult\");\nvar de_EnableImageDeregistrationProtectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.expectString)(output[_r]);\n }\n return contents;\n}, \"de_EnableImageDeregistrationProtectionResult\");\nvar de_EnableImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableImageResult\");\nvar de_EnableIpamOrganizationAdminAccountResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_succ] != null) {\n contents[_Succ] = (0, import_smithy_client.parseBoolean)(output[_succ]);\n }\n return contents;\n}, \"de_EnableIpamOrganizationAdminAccountResult\");\nvar de_EnableReachabilityAnalyzerOrganizationSharingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rV] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_rV]);\n }\n return contents;\n}, \"de_EnableReachabilityAnalyzerOrganizationSharingResult\");\nvar de_EnableRouteServerPropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSPo] != null) {\n contents[_RSPou] = de_RouteServerPropagation(output[_rSPo], context);\n }\n return contents;\n}, \"de_EnableRouteServerPropagationResult\");\nvar de_EnableSerialConsoleAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCAE] != null) {\n contents[_SCAE] = (0, import_smithy_client.parseBoolean)(output[_sCAE]);\n }\n return contents;\n}, \"de_EnableSerialConsoleAccessResult\");\nvar de_EnableSnapshotBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_EnableSnapshotBlockPublicAccessResult\");\nvar de_EnableTransitGatewayRouteTablePropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_prop] != null) {\n contents[_Prop] = de_TransitGatewayPropagation(output[_prop], context);\n }\n return contents;\n}, \"de_EnableTransitGatewayRouteTablePropagationResult\");\nvar de_EnableVpcClassicLinkDnsSupportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableVpcClassicLinkDnsSupportResult\");\nvar de_EnableVpcClassicLinkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableVpcClassicLinkResult\");\nvar de_EnaSrdSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ESE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_ESE]);\n }\n if (output[_ESUS] != null) {\n contents[_ESUS] = de_EnaSrdUdpSpecificationRequest(output[_ESUS], context);\n }\n return contents;\n}, \"de_EnaSrdSpecificationRequest\");\nvar de_EnaSrdUdpSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ESUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_ESUE]);\n }\n return contents;\n}, \"de_EnaSrdUdpSpecificationRequest\");\nvar de_EnclaveOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_EnclaveOptions\");\nvar de_EndpointSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnEndpoint(entry, context);\n });\n}, \"de_EndpointSet\");\nvar de_ErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ValidationError(entry, context);\n });\n}, \"de_ErrorSet\");\nvar de_EventInformation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eDv] != null) {\n contents[_EDv] = (0, import_smithy_client.expectString)(output[_eDv]);\n }\n if (output[_eST] != null) {\n contents[_EST] = (0, import_smithy_client.expectString)(output[_eST]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_EventInformation\");\nvar de_ExcludedInstanceTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ExcludedInstanceTypeSet\");\nvar de_Explanation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ac] != null) {\n contents[_Acl] = de_AnalysisComponent(output[_ac], context);\n }\n if (output[_aRc] != null) {\n contents[_ARcl] = de_AnalysisAclRule(output[_aRc], context);\n }\n if (output[_ad] != null) {\n contents[_Ad] = (0, import_smithy_client.expectString)(output[_ad]);\n }\n if (output.addressSet === \"\") {\n contents[_Addr] = [];\n } else if (output[_aSd] != null && output[_aSd][_i] != null) {\n contents[_Addr] = de_IpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSd][_i]), context);\n }\n if (output[_aTtt] != null) {\n contents[_ATtta] = de_AnalysisComponent(output[_aTtt], context);\n }\n if (output.availabilityZoneSet === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZS] != null && output[_aZS][_i] != null) {\n contents[_AZv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZS][_i]), context);\n }\n if (output.availabilityZoneIdSet === \"\") {\n contents[_AZIv] = [];\n } else if (output[_aZIS] != null && output[_aZIS][_i] != null) {\n contents[_AZIv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZIS][_i]), context);\n }\n if (output.cidrSet === \"\") {\n contents[_Ci] = [];\n } else if (output[_cS] != null && output[_cS][_i] != null) {\n contents[_Ci] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_cS][_i]), context);\n }\n if (output[_c] != null) {\n contents[_Com] = de_AnalysisComponent(output[_c], context);\n }\n if (output[_cGu] != null) {\n contents[_CGu] = de_AnalysisComponent(output[_cGu], context);\n }\n if (output[_d] != null) {\n contents[_D] = de_AnalysisComponent(output[_d], context);\n }\n if (output[_dV] != null) {\n contents[_DVest] = de_AnalysisComponent(output[_dV], context);\n }\n if (output[_di] != null) {\n contents[_Di] = (0, import_smithy_client.expectString)(output[_di]);\n }\n if (output[_eCx] != null) {\n contents[_ECx] = (0, import_smithy_client.expectString)(output[_eCx]);\n }\n if (output[_iRT] != null) {\n contents[_IRT] = de_AnalysisComponent(output[_iRT], context);\n }\n if (output[_iG] != null) {\n contents[_IGn] = de_AnalysisComponent(output[_iG], context);\n }\n if (output[_lBA] != null) {\n contents[_LBAo] = (0, import_smithy_client.expectString)(output[_lBA]);\n }\n if (output[_cLBL] != null) {\n contents[_CLBL] = de_AnalysisLoadBalancerListener(output[_cLBL], context);\n }\n if (output[_lBLP] != null) {\n contents[_LBLP] = (0, import_smithy_client.strictParseInt32)(output[_lBLP]);\n }\n if (output[_lBT] != null) {\n contents[_LBT] = de_AnalysisLoadBalancerTarget(output[_lBT], context);\n }\n if (output[_lBTG] != null) {\n contents[_LBTG] = de_AnalysisComponent(output[_lBTG], context);\n }\n if (output.loadBalancerTargetGroupSet === \"\") {\n contents[_LBTGo] = [];\n } else if (output[_lBTGS] != null && output[_lBTGS][_i] != null) {\n contents[_LBTGo] = de_AnalysisComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_lBTGS][_i]), context);\n }\n if (output[_lBTP] != null) {\n contents[_LBTP] = (0, import_smithy_client.strictParseInt32)(output[_lBTP]);\n }\n if (output[_eLBL] != null) {\n contents[_ELBL] = de_AnalysisComponent(output[_eLBL], context);\n }\n if (output[_mC] != null) {\n contents[_MCis] = (0, import_smithy_client.expectString)(output[_mC]);\n }\n if (output[_nG] != null) {\n contents[_NG] = de_AnalysisComponent(output[_nG], context);\n }\n if (output[_nIe] != null) {\n contents[_NIet] = de_AnalysisComponent(output[_nIe], context);\n }\n if (output[_pF] != null) {\n contents[_PF] = (0, import_smithy_client.expectString)(output[_pF]);\n }\n if (output[_vPC] != null) {\n contents[_VPC] = de_AnalysisComponent(output[_vPC], context);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n if (output[_pL] != null) {\n contents[_PLr] = de_AnalysisComponent(output[_pL], context);\n }\n if (output.protocolSet === \"\") {\n contents[_Pro] = [];\n } else if (output[_pSro] != null && output[_pSro][_i] != null) {\n contents[_Pro] = de_StringList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSro][_i]), context);\n }\n if (output[_rTR] != null) {\n contents[_RTR] = de_AnalysisRouteTableRoute(output[_rTR], context);\n }\n if (output[_rTo] != null) {\n contents[_RTo] = de_AnalysisComponent(output[_rTo], context);\n }\n if (output[_sG] != null) {\n contents[_SGe] = de_AnalysisComponent(output[_sG], context);\n }\n if (output[_sGR] != null) {\n contents[_SGRe] = de_AnalysisSecurityGroupRule(output[_sGR], context);\n }\n if (output.securityGroupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_sGS] != null && output[_sGS][_i] != null) {\n contents[_SG] = de_AnalysisComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGS][_i]), context);\n }\n if (output[_sV] != null) {\n contents[_SVo] = de_AnalysisComponent(output[_sV], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_su] != null) {\n contents[_Su] = de_AnalysisComponent(output[_su], context);\n }\n if (output[_sRT] != null) {\n contents[_SRT] = de_AnalysisComponent(output[_sRT], context);\n }\n if (output[_vp] != null) {\n contents[_Vp] = de_AnalysisComponent(output[_vp], context);\n }\n if (output[_vE] != null) {\n contents[_VE] = de_AnalysisComponent(output[_vE], context);\n }\n if (output[_vC] != null) {\n contents[_VC] = de_AnalysisComponent(output[_vC], context);\n }\n if (output[_vG] != null) {\n contents[_VG] = de_AnalysisComponent(output[_vG], context);\n }\n if (output[_tG] != null) {\n contents[_TGr] = de_AnalysisComponent(output[_tG], context);\n }\n if (output[_tGRT] != null) {\n contents[_TGRT] = de_AnalysisComponent(output[_tGRT], context);\n }\n if (output[_tGRTR] != null) {\n contents[_TGRTR] = de_TransitGatewayRouteTableRoute(output[_tGRTR], context);\n }\n if (output[_tGAr] != null) {\n contents[_TGAra] = de_AnalysisComponent(output[_tGAr], context);\n }\n if (output[_cAo] != null) {\n contents[_CAom] = (0, import_smithy_client.expectString)(output[_cAo]);\n }\n if (output[_cRo] != null) {\n contents[_CRo] = (0, import_smithy_client.expectString)(output[_cRo]);\n }\n if (output[_fSR] != null) {\n contents[_FSRi] = de_FirewallStatelessRule(output[_fSR], context);\n }\n if (output[_fSRi] != null) {\n contents[_FSRir] = de_FirewallStatefulRule(output[_fSRi], context);\n }\n return contents;\n}, \"de_Explanation\");\nvar de_ExplanationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Explanation(entry, context);\n });\n}, \"de_ExplanationList\");\nvar de_ExportClientVpnClientCertificateRevocationListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRL] != null) {\n contents[_CRL] = (0, import_smithy_client.expectString)(output[_cRL]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientCertificateRevocationListStatus(output[_sta], context);\n }\n return contents;\n}, \"de_ExportClientVpnClientCertificateRevocationListResult\");\nvar de_ExportClientVpnClientConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCl] != null) {\n contents[_CCl] = (0, import_smithy_client.expectString)(output[_cCl]);\n }\n return contents;\n}, \"de_ExportClientVpnClientConfigurationResult\");\nvar de_ExportImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIF] != null) {\n contents[_DIFi] = (0, import_smithy_client.expectString)(output[_dIF]);\n }\n if (output[_eITI] != null) {\n contents[_EITIx] = (0, import_smithy_client.expectString)(output[_eITI]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rNo] != null) {\n contents[_RNo] = (0, import_smithy_client.expectString)(output[_rNo]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sEL] != null) {\n contents[_SEL] = de_ExportTaskS3Location(output[_sEL], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ExportImageResult\");\nvar de_ExportImageTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eITI] != null) {\n contents[_EITIx] = (0, import_smithy_client.expectString)(output[_eITI]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sEL] != null) {\n contents[_SEL] = de_ExportTaskS3Location(output[_sEL], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ExportImageTask\");\nvar de_ExportImageTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ExportImageTask(entry, context);\n });\n}, \"de_ExportImageTaskList\");\nvar de_ExportTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eTI] != null) {\n contents[_ETI] = (0, import_smithy_client.expectString)(output[_eTI]);\n }\n if (output[_eTSx] != null) {\n contents[_ETST] = de_ExportToS3Task(output[_eTSx], context);\n }\n if (output[_iE] != null) {\n contents[_IED] = de_InstanceExportDetails(output[_iE], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ExportTask\");\nvar de_ExportTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ExportTask(entry, context);\n });\n}, \"de_ExportTaskList\");\nvar de_ExportTaskS3Location = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_sP]);\n }\n return contents;\n}, \"de_ExportTaskS3Location\");\nvar de_ExportToS3Task = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cF] != null) {\n contents[_CFo] = (0, import_smithy_client.expectString)(output[_cF]);\n }\n if (output[_dIF] != null) {\n contents[_DIFi] = (0, import_smithy_client.expectString)(output[_dIF]);\n }\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sK] != null) {\n contents[_SK] = (0, import_smithy_client.expectString)(output[_sK]);\n }\n return contents;\n}, \"de_ExportToS3Task\");\nvar de_ExportTransitGatewayRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sL] != null) {\n contents[_SLo] = (0, import_smithy_client.expectString)(output[_sL]);\n }\n return contents;\n}, \"de_ExportTransitGatewayRoutesResult\");\nvar de_ExportVerifiedAccessInstanceClientConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_ve]);\n }\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n if (output.deviceTrustProviderSet === \"\") {\n contents[_DTP] = [];\n } else if (output[_dTPS] != null && output[_dTPS][_i] != null) {\n contents[_DTP] = de_DeviceTrustProviderTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dTPS][_i]), context);\n }\n if (output[_uTP] != null) {\n contents[_UTP] = de_VerifiedAccessInstanceUserTrustProviderClientConfiguration(output[_uTP], context);\n }\n if (output.openVpnConfigurationSet === \"\") {\n contents[_OVC] = [];\n } else if (output[_oVCS] != null && output[_oVCS][_i] != null) {\n contents[_OVC] = de_VerifiedAccessInstanceOpenVpnClientConfigurationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_oVCS][_i]),\n context\n );\n }\n return contents;\n}, \"de_ExportVerifiedAccessInstanceClientConfigurationResult\");\nvar de_FailedCapacityReservationFleetCancellationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_cCRFE] != null) {\n contents[_CCRFE] = de_CancelCapacityReservationFleetError(output[_cCRFE], context);\n }\n return contents;\n}, \"de_FailedCapacityReservationFleetCancellationResult\");\nvar de_FailedCapacityReservationFleetCancellationResultSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FailedCapacityReservationFleetCancellationResult(entry, context);\n });\n}, \"de_FailedCapacityReservationFleetCancellationResultSet\");\nvar de_FailedQueuedPurchaseDeletion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_DeleteQueuedReservedInstancesError(output[_er], context);\n }\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_FailedQueuedPurchaseDeletion\");\nvar de_FailedQueuedPurchaseDeletionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FailedQueuedPurchaseDeletion(entry, context);\n });\n}, \"de_FailedQueuedPurchaseDeletionSet\");\nvar de_FastLaunchLaunchTemplateSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_ve]);\n }\n return contents;\n}, \"de_FastLaunchLaunchTemplateSpecificationResponse\");\nvar de_FastLaunchSnapshotConfigurationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tRC] != null) {\n contents[_TRC] = (0, import_smithy_client.strictParseInt32)(output[_tRC]);\n }\n return contents;\n}, \"de_FastLaunchSnapshotConfigurationResponse\");\nvar de_FederatedAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sPA] != null) {\n contents[_SPA] = (0, import_smithy_client.expectString)(output[_sPA]);\n }\n if (output[_sSSPA] != null) {\n contents[_SSSPA] = (0, import_smithy_client.expectString)(output[_sSSPA]);\n }\n return contents;\n}, \"de_FederatedAuthentication\");\nvar de_FilterPortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n return contents;\n}, \"de_FilterPortRange\");\nvar de_FirewallStatefulRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output.sourceSet === \"\") {\n contents[_So] = [];\n } else if (output[_sSo] != null && output[_sSo][_i] != null) {\n contents[_So] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSo][_i]), context);\n }\n if (output.destinationSet === \"\") {\n contents[_Des] = [];\n } else if (output[_dSe] != null && output[_dSe][_i] != null) {\n contents[_Des] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dSe][_i]), context);\n }\n if (output.sourcePortSet === \"\") {\n contents[_SPo] = [];\n } else if (output[_sPS] != null && output[_sPS][_i] != null) {\n contents[_SPo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPS][_i]), context);\n }\n if (output.destinationPortSet === \"\") {\n contents[_DPes] = [];\n } else if (output[_dPS] != null && output[_dPS][_i] != null) {\n contents[_DPes] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPS][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_di] != null) {\n contents[_Di] = (0, import_smithy_client.expectString)(output[_di]);\n }\n return contents;\n}, \"de_FirewallStatefulRule\");\nvar de_FirewallStatelessRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output.sourceSet === \"\") {\n contents[_So] = [];\n } else if (output[_sSo] != null && output[_sSo][_i] != null) {\n contents[_So] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSo][_i]), context);\n }\n if (output.destinationSet === \"\") {\n contents[_Des] = [];\n } else if (output[_dSe] != null && output[_dSe][_i] != null) {\n contents[_Des] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dSe][_i]), context);\n }\n if (output.sourcePortSet === \"\") {\n contents[_SPo] = [];\n } else if (output[_sPS] != null && output[_sPS][_i] != null) {\n contents[_SPo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPS][_i]), context);\n }\n if (output.destinationPortSet === \"\") {\n contents[_DPes] = [];\n } else if (output[_dPS] != null && output[_dPS][_i] != null) {\n contents[_DPes] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPS][_i]), context);\n }\n if (output.protocolSet === \"\") {\n contents[_Pro] = [];\n } else if (output[_pSro] != null && output[_pSro][_i] != null) {\n contents[_Pro] = de_ProtocolIntList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSro][_i]), context);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseInt32)(output[_pri]);\n }\n return contents;\n}, \"de_FirewallStatelessRule\");\nvar de_FleetCapacityReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iPn] != null) {\n contents[_IPn] = (0, import_smithy_client.expectString)(output[_iPn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_tIC] != null) {\n contents[_TICo] = (0, import_smithy_client.strictParseInt32)(output[_tIC]);\n }\n if (output[_fC] != null) {\n contents[_FC] = (0, import_smithy_client.strictParseFloat)(output[_fC]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output[_we] != null) {\n contents[_W] = (0, import_smithy_client.strictParseFloat)(output[_we]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseInt32)(output[_pri]);\n }\n return contents;\n}, \"de_FleetCapacityReservation\");\nvar de_FleetCapacityReservationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetCapacityReservation(entry, context);\n });\n}, \"de_FleetCapacityReservationSet\");\nvar de_FleetData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSc] != null) {\n contents[_ASc] = (0, import_smithy_client.expectString)(output[_aSc]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n if (output[_fSl] != null) {\n contents[_FS] = (0, import_smithy_client.expectString)(output[_fSl]);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eCTP] != null) {\n contents[_ECTP] = (0, import_smithy_client.expectString)(output[_eCTP]);\n }\n if (output[_fC] != null) {\n contents[_FC] = (0, import_smithy_client.strictParseFloat)(output[_fC]);\n }\n if (output[_fODC] != null) {\n contents[_FODC] = (0, import_smithy_client.strictParseFloat)(output[_fODC]);\n }\n if (output.launchTemplateConfigs === \"\") {\n contents[_LTC] = [];\n } else if (output[_lTC] != null && output[_lTC][_i] != null) {\n contents[_LTC] = de_FleetLaunchTemplateConfigList((0, import_smithy_client.getArrayIfSingleItem)(output[_lTC][_i]), context);\n }\n if (output[_tCS] != null) {\n contents[_TCS] = de_TargetCapacitySpecification(output[_tCS], context);\n }\n if (output[_tIWE] != null) {\n contents[_TIWE] = (0, import_smithy_client.parseBoolean)(output[_tIWE]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_vF] != null) {\n contents[_VF] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vF]));\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_rUI] != null) {\n contents[_RUI] = (0, import_smithy_client.parseBoolean)(output[_rUI]);\n }\n if (output[_sO] != null) {\n contents[_SO] = de_SpotOptions(output[_sO], context);\n }\n if (output[_oDO] != null) {\n contents[_ODO] = de_OnDemandOptions(output[_oDO], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.errorSet === \"\") {\n contents[_Err] = [];\n } else if (output[_eSr] != null && output[_eSr][_i] != null) {\n contents[_Err] = de_DescribeFleetsErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSr][_i]), context);\n }\n if (output.fleetInstanceSet === \"\") {\n contents[_In] = [];\n } else if (output[_fIS] != null && output[_fIS][_i] != null) {\n contents[_In] = de_DescribeFleetsInstancesSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fIS][_i]), context);\n }\n if (output[_cont] != null) {\n contents[_Con] = (0, import_smithy_client.expectString)(output[_cont]);\n }\n return contents;\n}, \"de_FleetData\");\nvar de_FleetLaunchTemplateConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTS] != null) {\n contents[_LTS] = de_FleetLaunchTemplateSpecification(output[_lTS], context);\n }\n if (output.overrides === \"\") {\n contents[_Ov] = [];\n } else if (output[_ov] != null && output[_ov][_i] != null) {\n contents[_Ov] = de_FleetLaunchTemplateOverridesList((0, import_smithy_client.getArrayIfSingleItem)(output[_ov][_i]), context);\n }\n return contents;\n}, \"de_FleetLaunchTemplateConfig\");\nvar de_FleetLaunchTemplateConfigList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetLaunchTemplateConfig(entry, context);\n });\n}, \"de_FleetLaunchTemplateConfigList\");\nvar de_FleetLaunchTemplateOverrides = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_mP] != null) {\n contents[_MPa] = (0, import_smithy_client.expectString)(output[_mP]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_wC] != null) {\n contents[_WCe] = (0, import_smithy_client.strictParseFloat)(output[_wC]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseFloat)(output[_pri]);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_PlacementResponse(output[_pla], context);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output.blockDeviceMappingSet === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDMS] != null && output[_bDMS][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingResponseList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDMS][_i]), context);\n }\n return contents;\n}, \"de_FleetLaunchTemplateOverrides\");\nvar de_FleetLaunchTemplateOverridesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetLaunchTemplateOverrides(entry, context);\n });\n}, \"de_FleetLaunchTemplateOverridesList\");\nvar de_FleetLaunchTemplateSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_ve]);\n }\n return contents;\n}, \"de_FleetLaunchTemplateSpecification\");\nvar de_FleetSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetData(entry, context);\n });\n}, \"de_FleetSet\");\nvar de_FleetSpotCapacityRebalance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSep] != null) {\n contents[_RS] = (0, import_smithy_client.expectString)(output[_rSep]);\n }\n if (output[_tD] != null) {\n contents[_TDe] = (0, import_smithy_client.strictParseInt32)(output[_tD]);\n }\n return contents;\n}, \"de_FleetSpotCapacityRebalance\");\nvar de_FleetSpotMaintenanceStrategies = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRa] != null) {\n contents[_CRap] = de_FleetSpotCapacityRebalance(output[_cRa], context);\n }\n return contents;\n}, \"de_FleetSpotMaintenanceStrategies\");\nvar de_FlowLog = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_dLEM] != null) {\n contents[_DLEM] = (0, import_smithy_client.expectString)(output[_dLEM]);\n }\n if (output[_dLPA] != null) {\n contents[_DLPA] = (0, import_smithy_client.expectString)(output[_dLPA]);\n }\n if (output[_dCAR] != null) {\n contents[_DCAR] = (0, import_smithy_client.expectString)(output[_dCAR]);\n }\n if (output[_dLS] != null) {\n contents[_DLSe] = (0, import_smithy_client.expectString)(output[_dLS]);\n }\n if (output[_fLI] != null) {\n contents[_FLIl] = (0, import_smithy_client.expectString)(output[_fLI]);\n }\n if (output[_fLSl] != null) {\n contents[_FLS] = (0, import_smithy_client.expectString)(output[_fLSl]);\n }\n if (output[_lGN] != null) {\n contents[_LGN] = (0, import_smithy_client.expectString)(output[_lGN]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_tT] != null) {\n contents[_TT] = (0, import_smithy_client.expectString)(output[_tT]);\n }\n if (output[_lDT] != null) {\n contents[_LDT] = (0, import_smithy_client.expectString)(output[_lDT]);\n }\n if (output[_lD] != null) {\n contents[_LD] = (0, import_smithy_client.expectString)(output[_lD]);\n }\n if (output[_lF] != null) {\n contents[_LF] = (0, import_smithy_client.expectString)(output[_lF]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_mAI] != null) {\n contents[_MAI] = (0, import_smithy_client.strictParseInt32)(output[_mAI]);\n }\n if (output[_dOe] != null) {\n contents[_DO] = de_DestinationOptionsResponse(output[_dOe], context);\n }\n return contents;\n}, \"de_FlowLog\");\nvar de_FlowLogSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FlowLog(entry, context);\n });\n}, \"de_FlowLogSet\");\nvar de_FpgaDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_FpgaDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_FpgaDeviceInfo\");\nvar de_FpgaDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FpgaDeviceInfo(entry, context);\n });\n}, \"de_FpgaDeviceInfoList\");\nvar de_FpgaDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_FpgaDeviceMemoryInfo\");\nvar de_FpgaImage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n if (output[_fIGI] != null) {\n contents[_FIGI] = (0, import_smithy_client.expectString)(output[_fIGI]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_sVh] != null) {\n contents[_SVh] = (0, import_smithy_client.expectString)(output[_sVh]);\n }\n if (output[_pIc] != null) {\n contents[_PIc] = de_PciId(output[_pIc], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = de_FpgaImageState(output[_st], context);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_uT] != null) {\n contents[_UTp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uT]));\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output.tags === \"\") {\n contents[_Ta] = [];\n } else if (output[_ta] != null && output[_ta][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_ta][_i]), context);\n }\n if (output[_pu] != null) {\n contents[_Pu] = (0, import_smithy_client.parseBoolean)(output[_pu]);\n }\n if (output[_dRS] != null) {\n contents[_DRSa] = (0, import_smithy_client.parseBoolean)(output[_dRS]);\n }\n if (output.instanceTypes === \"\") {\n contents[_ITnst] = [];\n } else if (output[_iTn] != null && output[_iTn][_i] != null) {\n contents[_ITnst] = de_InstanceTypesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iTn][_i]), context);\n }\n return contents;\n}, \"de_FpgaImage\");\nvar de_FpgaImageAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.loadPermissions === \"\") {\n contents[_LPo] = [];\n } else if (output[_lP] != null && output[_lP][_i] != null) {\n contents[_LPo] = de_LoadPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_lP][_i]), context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n return contents;\n}, \"de_FpgaImageAttribute\");\nvar de_FpgaImageList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FpgaImage(entry, context);\n });\n}, \"de_FpgaImageList\");\nvar de_FpgaImageState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_FpgaImageState\");\nvar de_FpgaInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fpgas === \"\") {\n contents[_Fp] = [];\n } else if (output[_fp] != null && output[_fp][_i] != null) {\n contents[_Fp] = de_FpgaDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_fp][_i]), context);\n }\n if (output[_tFMIMB] != null) {\n contents[_TFMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tFMIMB]);\n }\n return contents;\n}, \"de_FpgaInfo\");\nvar de_GetAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.imageCriterionSet === \"\") {\n contents[_ICm] = [];\n } else if (output[_iCS] != null && output[_iCS][_i] != null) {\n contents[_ICm] = de_ImageCriterionList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCS][_i]), context);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetAllowedImagesSettingsResult\");\nvar de_GetAssociatedEnclaveCertificateIamRolesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associatedRoleSet === \"\") {\n contents[_ARss] = [];\n } else if (output[_aRS] != null && output[_aRS][_i] != null) {\n contents[_ARss] = de_AssociatedRolesList((0, import_smithy_client.getArrayIfSingleItem)(output[_aRS][_i]), context);\n }\n return contents;\n}, \"de_GetAssociatedEnclaveCertificateIamRolesResult\");\nvar de_GetAssociatedIpv6PoolCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipv6CidrAssociationSet === \"\") {\n contents[_ICA] = [];\n } else if (output[_iCAS] != null && output[_iCAS][_i] != null) {\n contents[_ICA] = de_Ipv6CidrAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetAssociatedIpv6PoolCidrsResult\");\nvar de_GetAwsNetworkPerformanceDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.dataResponseSet === \"\") {\n contents[_DRa] = [];\n } else if (output[_dRSa] != null && output[_dRSa][_i] != null) {\n contents[_DRa] = de_DataResponses((0, import_smithy_client.getArrayIfSingleItem)(output[_dRSa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetAwsNetworkPerformanceDataResult\");\nvar de_GetCapacityReservationUsageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_tIC] != null) {\n contents[_TICo] = (0, import_smithy_client.strictParseInt32)(output[_tIC]);\n }\n if (output[_aICv] != null) {\n contents[_AICv] = (0, import_smithy_client.strictParseInt32)(output[_aICv]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.instanceUsageSet === \"\") {\n contents[_IU] = [];\n } else if (output[_iUS] != null && output[_iUS][_i] != null) {\n contents[_IU] = de_InstanceUsageSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iUS][_i]), context);\n }\n return contents;\n}, \"de_GetCapacityReservationUsageResult\");\nvar de_GetCoipPoolUsageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cPI] != null) {\n contents[_CPIo] = (0, import_smithy_client.expectString)(output[_cPI]);\n }\n if (output.coipAddressUsageSet === \"\") {\n contents[_CAU] = [];\n } else if (output[_cAUS] != null && output[_cAUS][_i] != null) {\n contents[_CAU] = de_CoipAddressUsageSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cAUS][_i]), context);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetCoipPoolUsageResult\");\nvar de_GetConsoleOutputResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n if (output[_ou] != null) {\n contents[_Ou] = (0, import_smithy_client.expectString)(output[_ou]);\n }\n return contents;\n}, \"de_GetConsoleOutputResult\");\nvar de_GetConsoleScreenshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iD] != null) {\n contents[_IDm] = (0, import_smithy_client.expectString)(output[_iD]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_GetConsoleScreenshotResult\");\nvar de_GetDeclarativePoliciesReportSummaryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rI] != null) {\n contents[_RIep] = (0, import_smithy_client.expectString)(output[_rI]);\n }\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_sP]);\n }\n if (output[_tI] != null) {\n contents[_TIa] = (0, import_smithy_client.expectString)(output[_tI]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_eTn] != null) {\n contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTn]));\n }\n if (output[_nOA] != null) {\n contents[_NOA] = (0, import_smithy_client.strictParseInt32)(output[_nOA]);\n }\n if (output[_nOFA] != null) {\n contents[_NOFA] = (0, import_smithy_client.strictParseInt32)(output[_nOFA]);\n }\n if (output.attributeSummarySet === \"\") {\n contents[_ASt] = [];\n } else if (output[_aSSt] != null && output[_aSSt][_i] != null) {\n contents[_ASt] = de_AttributeSummaryList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSSt][_i]), context);\n }\n return contents;\n}, \"de_GetDeclarativePoliciesReportSummaryResult\");\nvar de_GetDefaultCreditSpecificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iFCS] != null) {\n contents[_IFCS] = de_InstanceFamilyCreditSpecification(output[_iFCS], context);\n }\n return contents;\n}, \"de_GetDefaultCreditSpecificationResult\");\nvar de_GetEbsDefaultKmsKeyIdResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_GetEbsDefaultKmsKeyIdResult\");\nvar de_GetEbsEncryptionByDefaultResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eEBD] != null) {\n contents[_EEBD] = (0, import_smithy_client.parseBoolean)(output[_eEBD]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n return contents;\n}, \"de_GetEbsEncryptionByDefaultResult\");\nvar de_GetFlowLogsIntegrationTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_res] != null) {\n contents[_Resu] = (0, import_smithy_client.expectString)(output[_res]);\n }\n return contents;\n}, \"de_GetFlowLogsIntegrationTemplateResult\");\nvar de_GetGroupsForCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.capacityReservationGroupSet === \"\") {\n contents[_CRG] = [];\n } else if (output[_cRGS] != null && output[_cRGS][_i] != null) {\n contents[_CRG] = de_CapacityReservationGroupSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRGS][_i]), context);\n }\n return contents;\n}, \"de_GetGroupsForCapacityReservationResult\");\nvar de_GetHostReservationPurchasePreviewResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output.purchase === \"\") {\n contents[_Pur] = [];\n } else if (output[_pur] != null && output[_pur][_i] != null) {\n contents[_Pur] = de_PurchaseSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pur][_i]), context);\n }\n if (output[_tHP] != null) {\n contents[_THP] = (0, import_smithy_client.expectString)(output[_tHP]);\n }\n if (output[_tUP] != null) {\n contents[_TUP] = (0, import_smithy_client.expectString)(output[_tUP]);\n }\n return contents;\n}, \"de_GetHostReservationPurchasePreviewResult\");\nvar de_GetImageBlockPublicAccessStateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iBPAS] != null) {\n contents[_IBPAS] = (0, import_smithy_client.expectString)(output[_iBPAS]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetImageBlockPublicAccessStateResult\");\nvar de_GetInstanceMetadataDefaultsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aL] != null) {\n contents[_ALc] = de_InstanceMetadataDefaultsResponse(output[_aL], context);\n }\n return contents;\n}, \"de_GetInstanceMetadataDefaultsResult\");\nvar de_GetInstanceTpmEkPubResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_kT] != null) {\n contents[_KT] = (0, import_smithy_client.expectString)(output[_kT]);\n }\n if (output[_kF] != null) {\n contents[_KF] = (0, import_smithy_client.expectString)(output[_kF]);\n }\n if (output[_kV] != null) {\n contents[_KV] = (0, import_smithy_client.expectString)(output[_kV]);\n }\n return contents;\n}, \"de_GetInstanceTpmEkPubResult\");\nvar de_GetInstanceTypesFromInstanceRequirementsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTypeSet === \"\") {\n contents[_ITnst] = [];\n } else if (output[_iTS] != null && output[_iTS][_i] != null) {\n contents[_ITnst] = de_InstanceTypeInfoFromInstanceRequirementsSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_iTS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetInstanceTypesFromInstanceRequirementsResult\");\nvar de_GetInstanceUefiDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_uD] != null) {\n contents[_UDe] = (0, import_smithy_client.expectString)(output[_uD]);\n }\n return contents;\n}, \"de_GetInstanceUefiDataResult\");\nvar de_GetIpamAddressHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.historyRecordSet === \"\") {\n contents[_HRi] = [];\n } else if (output[_hRS] != null && output[_hRS][_i] != null) {\n contents[_HRi] = de_IpamAddressHistoryRecordSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamAddressHistoryResult\");\nvar de_GetIpamDiscoveredAccountsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamDiscoveredAccountSet === \"\") {\n contents[_IDA] = [];\n } else if (output[_iDAS] != null && output[_iDAS][_i] != null) {\n contents[_IDA] = de_IpamDiscoveredAccountSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iDAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamDiscoveredAccountsResult\");\nvar de_GetIpamDiscoveredPublicAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamDiscoveredPublicAddressSet === \"\") {\n contents[_IDPA] = [];\n } else if (output[_iDPAS] != null && output[_iDPAS][_i] != null) {\n contents[_IDPA] = de_IpamDiscoveredPublicAddressSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iDPAS][_i]), context);\n }\n if (output[_oST] != null) {\n contents[_OST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oST]));\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamDiscoveredPublicAddressesResult\");\nvar de_GetIpamDiscoveredResourceCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamDiscoveredResourceCidrSet === \"\") {\n contents[_IDRC] = [];\n } else if (output[_iDRCS] != null && output[_iDRCS][_i] != null) {\n contents[_IDRC] = de_IpamDiscoveredResourceCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iDRCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamDiscoveredResourceCidrsResult\");\nvar de_GetIpamPoolAllocationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamPoolAllocationSet === \"\") {\n contents[_IPAp] = [];\n } else if (output[_iPAS] != null && output[_iPAS][_i] != null) {\n contents[_IPAp] = de_IpamPoolAllocationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamPoolAllocationsResult\");\nvar de_GetIpamPoolCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamPoolCidrSet === \"\") {\n contents[_IPCpam] = [];\n } else if (output[_iPCS] != null && output[_iPCS][_i] != null) {\n contents[_IPCpam] = de_IpamPoolCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamPoolCidrsResult\");\nvar de_GetIpamResourceCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamResourceCidrSet === \"\") {\n contents[_IRC] = [];\n } else if (output[_iRCS] != null && output[_iRCS][_i] != null) {\n contents[_IRC] = de_IpamResourceCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iRCS][_i]), context);\n }\n return contents;\n}, \"de_GetIpamResourceCidrsResult\");\nvar de_GetLaunchTemplateDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTD] != null) {\n contents[_LTD] = de_ResponseLaunchTemplateData(output[_lTD], context);\n }\n return contents;\n}, \"de_GetLaunchTemplateDataResult\");\nvar de_GetManagedPrefixListAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.prefixListAssociationSet === \"\") {\n contents[_PLA] = [];\n } else if (output[_pLAS] != null && output[_pLAS][_i] != null) {\n contents[_PLA] = de_PrefixListAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetManagedPrefixListAssociationsResult\");\nvar de_GetManagedPrefixListEntriesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.entrySet === \"\") {\n contents[_Ent] = [];\n } else if (output[_eSnt] != null && output[_eSnt][_i] != null) {\n contents[_Ent] = de_PrefixListEntrySet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSnt][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetManagedPrefixListEntriesResult\");\nvar de_GetNetworkInsightsAccessScopeAnalysisFindingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n if (output[_aSn] != null) {\n contents[_ASn] = (0, import_smithy_client.expectString)(output[_aSn]);\n }\n if (output.analysisFindingSet === \"\") {\n contents[_AFn] = [];\n } else if (output[_aFS] != null && output[_aFS][_i] != null) {\n contents[_AFn] = de_AccessScopeAnalysisFindingList((0, import_smithy_client.getArrayIfSingleItem)(output[_aFS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetNetworkInsightsAccessScopeAnalysisFindingsResult\");\nvar de_GetNetworkInsightsAccessScopeContentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASC] != null) {\n contents[_NIASC] = de_NetworkInsightsAccessScopeContent(output[_nIASC], context);\n }\n return contents;\n}, \"de_GetNetworkInsightsAccessScopeContentResult\");\nvar de_GetPasswordDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n if (output[_pD] != null) {\n contents[_PDa] = (0, import_smithy_client.expectString)(output[_pD]);\n }\n return contents;\n}, \"de_GetPasswordDataResult\");\nvar de_GetReservedInstancesExchangeQuoteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_iVE] != null) {\n contents[_IVE] = (0, import_smithy_client.parseBoolean)(output[_iVE]);\n }\n if (output[_oRIWEA] != null) {\n contents[_ORIWEA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oRIWEA]));\n }\n if (output[_pDa] != null) {\n contents[_PDay] = (0, import_smithy_client.expectString)(output[_pDa]);\n }\n if (output[_rIVR] != null) {\n contents[_RIVR] = de_ReservationValue(output[_rIVR], context);\n }\n if (output.reservedInstanceValueSet === \"\") {\n contents[_RIVS] = [];\n } else if (output[_rIVS] != null && output[_rIVS][_i] != null) {\n contents[_RIVS] = de_ReservedInstanceReservationValueSet((0, import_smithy_client.getArrayIfSingleItem)(output[_rIVS][_i]), context);\n }\n if (output[_tCVR] != null) {\n contents[_TCVR] = de_ReservationValue(output[_tCVR], context);\n }\n if (output.targetConfigurationValueSet === \"\") {\n contents[_TCVS] = [];\n } else if (output[_tCVS] != null && output[_tCVS][_i] != null) {\n contents[_TCVS] = de_TargetReservationValueSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tCVS][_i]), context);\n }\n if (output[_vFR] != null) {\n contents[_VFR] = (0, import_smithy_client.expectString)(output[_vFR]);\n }\n return contents;\n}, \"de_GetReservedInstancesExchangeQuoteResult\");\nvar de_GetRouteServerAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerAssociationSet === \"\") {\n contents[_RSAou] = [];\n } else if (output[_rSAS] != null && output[_rSAS][_i] != null) {\n contents[_RSAou] = de_RouteServerAssociationsList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSAS][_i]), context);\n }\n return contents;\n}, \"de_GetRouteServerAssociationsResult\");\nvar de_GetRouteServerPropagationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerPropagationSet === \"\") {\n contents[_RSPout] = [];\n } else if (output[_rSPSo] != null && output[_rSPSo][_i] != null) {\n contents[_RSPout] = de_RouteServerPropagationsList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSPSo][_i]), context);\n }\n return contents;\n}, \"de_GetRouteServerPropagationsResult\");\nvar de_GetRouteServerRoutingDatabaseResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRP] != null) {\n contents[_ARP] = (0, import_smithy_client.parseBoolean)(output[_aRP]);\n }\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_RouteServerRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetRouteServerRoutingDatabaseResult\");\nvar de_GetSecurityGroupsForVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.securityGroupForVpcSet === \"\") {\n contents[_SGFV] = [];\n } else if (output[_sGFVS] != null && output[_sGFVS][_i] != null) {\n contents[_SGFV] = de_SecurityGroupForVpcList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGFVS][_i]), context);\n }\n return contents;\n}, \"de_GetSecurityGroupsForVpcResult\");\nvar de_GetSerialConsoleAccessStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCAE] != null) {\n contents[_SCAE] = (0, import_smithy_client.parseBoolean)(output[_sCAE]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetSerialConsoleAccessStatusResult\");\nvar de_GetSnapshotBlockPublicAccessStateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetSnapshotBlockPublicAccessStateResult\");\nvar de_GetSpotPlacementScoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotPlacementScoreSet === \"\") {\n contents[_SPS] = [];\n } else if (output[_sPSS] != null && output[_sPSS][_i] != null) {\n contents[_SPS] = de_SpotPlacementScores((0, import_smithy_client.getArrayIfSingleItem)(output[_sPSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetSpotPlacementScoresResult\");\nvar de_GetSubnetCidrReservationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.subnetIpv4CidrReservationSet === \"\") {\n contents[_SICR] = [];\n } else if (output[_sICRS] != null && output[_sICRS][_i] != null) {\n contents[_SICR] = de_SubnetCidrReservationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sICRS][_i]), context);\n }\n if (output.subnetIpv6CidrReservationSet === \"\") {\n contents[_SICRu] = [];\n } else if (output[_sICRSu] != null && output[_sICRSu][_i] != null) {\n contents[_SICRu] = de_SubnetCidrReservationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sICRSu][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetSubnetCidrReservationsResult\");\nvar de_GetTransitGatewayAttachmentPropagationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayAttachmentPropagations === \"\") {\n contents[_TGAP] = [];\n } else if (output[_tGAP] != null && output[_tGAP][_i] != null) {\n contents[_TGAP] = de_TransitGatewayAttachmentPropagationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGAP][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayAttachmentPropagationsResult\");\nvar de_GetTransitGatewayMulticastDomainAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.multicastDomainAssociations === \"\") {\n contents[_MDA] = [];\n } else if (output[_mDA] != null && output[_mDA][_i] != null) {\n contents[_MDA] = de_TransitGatewayMulticastDomainAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_mDA][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayMulticastDomainAssociationsResult\");\nvar de_GetTransitGatewayPolicyTableAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associations === \"\") {\n contents[_Ass] = [];\n } else if (output[_a] != null && output[_a][_i] != null) {\n contents[_Ass] = de_TransitGatewayPolicyTableAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_a][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayPolicyTableAssociationsResult\");\nvar de_GetTransitGatewayPolicyTableEntriesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPolicyTableEntries === \"\") {\n contents[_TGPTE] = [];\n } else if (output[_tGPTE] != null && output[_tGPTE][_i] != null) {\n contents[_TGPTE] = de_TransitGatewayPolicyTableEntryList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPTE][_i]), context);\n }\n return contents;\n}, \"de_GetTransitGatewayPolicyTableEntriesResult\");\nvar de_GetTransitGatewayPrefixListReferencesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPrefixListReferenceSet === \"\") {\n contents[_TGPLRr] = [];\n } else if (output[_tGPLRS] != null && output[_tGPLRS][_i] != null) {\n contents[_TGPLRr] = de_TransitGatewayPrefixListReferenceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPLRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayPrefixListReferencesResult\");\nvar de_GetTransitGatewayRouteTableAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associations === \"\") {\n contents[_Ass] = [];\n } else if (output[_a] != null && output[_a][_i] != null) {\n contents[_Ass] = de_TransitGatewayRouteTableAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_a][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayRouteTableAssociationsResult\");\nvar de_GetTransitGatewayRouteTablePropagationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayRouteTablePropagations === \"\") {\n contents[_TGRTP] = [];\n } else if (output[_tGRTP] != null && output[_tGRTP][_i] != null) {\n contents[_TGRTP] = de_TransitGatewayRouteTablePropagationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGRTP][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayRouteTablePropagationsResult\");\nvar de_GetVerifiedAccessEndpointPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n return contents;\n}, \"de_GetVerifiedAccessEndpointPolicyResult\");\nvar de_GetVerifiedAccessEndpointTargetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessEndpointTargetSet === \"\") {\n contents[_VAET] = [];\n } else if (output[_vAETS] != null && output[_vAETS][_i] != null) {\n contents[_VAET] = de_VerifiedAccessEndpointTargetList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAETS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetVerifiedAccessEndpointTargetsResult\");\nvar de_GetVerifiedAccessGroupPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n return contents;\n}, \"de_GetVerifiedAccessGroupPolicyResult\");\nvar de_GetVpnConnectionDeviceSampleConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCDSC] != null) {\n contents[_VCDSC] = (0, import_smithy_client.expectString)(output[_vCDSC]);\n }\n return contents;\n}, \"de_GetVpnConnectionDeviceSampleConfigurationResult\");\nvar de_GetVpnConnectionDeviceTypesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpnConnectionDeviceTypeSet === \"\") {\n contents[_VCDT] = [];\n } else if (output[_vCDTS] != null && output[_vCDTS][_i] != null) {\n contents[_VCDT] = de_VpnConnectionDeviceTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_vCDTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetVpnConnectionDeviceTypesResult\");\nvar de_GetVpnTunnelReplacementStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCI] != null) {\n contents[_VCI] = (0, import_smithy_client.expectString)(output[_vCI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cGIu] != null) {\n contents[_CGIu] = (0, import_smithy_client.expectString)(output[_cGIu]);\n }\n if (output[_vGI] != null) {\n contents[_VGI] = (0, import_smithy_client.expectString)(output[_vGI]);\n }\n if (output[_vTOIA] != null) {\n contents[_VTOIA] = (0, import_smithy_client.expectString)(output[_vTOIA]);\n }\n if (output[_mD] != null) {\n contents[_MDa] = de_MaintenanceDetails(output[_mD], context);\n }\n return contents;\n}, \"de_GetVpnTunnelReplacementStatusResult\");\nvar de_GpuDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_GpuDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_GpuDeviceInfo\");\nvar de_GpuDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GpuDeviceInfo(entry, context);\n });\n}, \"de_GpuDeviceInfoList\");\nvar de_GpuDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_GpuDeviceMemoryInfo\");\nvar de_GpuInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.gpus === \"\") {\n contents[_Gp] = [];\n } else if (output[_gp] != null && output[_gp][_i] != null) {\n contents[_Gp] = de_GpuDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_gp][_i]), context);\n }\n if (output[_tGMIMB] != null) {\n contents[_TGMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tGMIMB]);\n }\n return contents;\n}, \"de_GpuInfo\");\nvar de_GroupIdentifier = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n return contents;\n}, \"de_GroupIdentifier\");\nvar de_GroupIdentifierList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GroupIdentifier(entry, context);\n });\n}, \"de_GroupIdentifierList\");\nvar de_GroupIdentifierSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupIdentifier(entry, context);\n });\n}, \"de_GroupIdentifierSet\");\nvar de_GroupIdStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_GroupIdStringList\");\nvar de_HibernationOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_conf] != null) {\n contents[_Conf] = (0, import_smithy_client.parseBoolean)(output[_conf]);\n }\n return contents;\n}, \"de_HibernationOptions\");\nvar de_HistoryRecord = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIv] != null) {\n contents[_EIv] = de_EventInformation(output[_eIv], context);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_HistoryRecord\");\nvar de_HistoryRecordEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIv] != null) {\n contents[_EIv] = de_EventInformation(output[_eIv], context);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_HistoryRecordEntry\");\nvar de_HistoryRecords = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HistoryRecord(entry, context);\n });\n}, \"de_HistoryRecords\");\nvar de_HistoryRecordSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HistoryRecordEntry(entry, context);\n });\n}, \"de_HistoryRecordSet\");\nvar de_Host = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aPu] != null) {\n contents[_AP] = (0, import_smithy_client.expectString)(output[_aPu]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aC] != null) {\n contents[_ACv] = de_AvailableCapacity(output[_aC], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output[_hP] != null) {\n contents[_HP] = de_HostProperties(output[_hP], context);\n }\n if (output[_hRI] != null) {\n contents[_HRI] = (0, import_smithy_client.expectString)(output[_hRI]);\n }\n if (output.instances === \"\") {\n contents[_In] = [];\n } else if (output[_ins] != null && output[_ins][_i] != null) {\n contents[_In] = de_HostInstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_ins][_i]), context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_aTll] != null) {\n contents[_ATll] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTll]));\n }\n if (output[_rTel] != null) {\n contents[_RTel] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rTel]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_hR] != null) {\n contents[_HR] = (0, import_smithy_client.expectString)(output[_hR]);\n }\n if (output[_aMIT] != null) {\n contents[_AMIT] = (0, import_smithy_client.expectString)(output[_aMIT]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_mOSLRG] != null) {\n contents[_MOSLRG] = (0, import_smithy_client.parseBoolean)(output[_mOSLRG]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_hM] != null) {\n contents[_HM] = (0, import_smithy_client.expectString)(output[_hM]);\n }\n if (output[_aIss] != null) {\n contents[_AIsse] = (0, import_smithy_client.expectString)(output[_aIss]);\n }\n return contents;\n}, \"de_Host\");\nvar de_HostInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_HostInstance\");\nvar de_HostInstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostInstance(entry, context);\n });\n}, \"de_HostInstanceList\");\nvar de_HostList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Host(entry, context);\n });\n}, \"de_HostList\");\nvar de_HostOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseInt32)(output[_du]);\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_oIf] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_oIf]);\n }\n if (output[_pO] != null) {\n contents[_PO] = (0, import_smithy_client.expectString)(output[_pO]);\n }\n if (output[_uP] != null) {\n contents[_UPp] = (0, import_smithy_client.expectString)(output[_uP]);\n }\n return contents;\n}, \"de_HostOffering\");\nvar de_HostOfferingSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostOffering(entry, context);\n });\n}, \"de_HostOfferingSet\");\nvar de_HostProperties = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cor] != null) {\n contents[_Cor] = (0, import_smithy_client.strictParseInt32)(output[_cor]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_so] != null) {\n contents[_Soc] = (0, import_smithy_client.strictParseInt32)(output[_so]);\n }\n if (output[_tVC] != null) {\n contents[_TVC] = (0, import_smithy_client.strictParseInt32)(output[_tVC]);\n }\n return contents;\n}, \"de_HostProperties\");\nvar de_HostReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseInt32)(output[_du]);\n }\n if (output[_end] != null) {\n contents[_End] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_end]));\n }\n if (output.hostIdSet === \"\") {\n contents[_HIS] = [];\n } else if (output[_hIS] != null && output[_hIS][_i] != null) {\n contents[_HIS] = de_ResponseHostIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hIS][_i]), context);\n }\n if (output[_hRI] != null) {\n contents[_HRI] = (0, import_smithy_client.expectString)(output[_hRI]);\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_oIf] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_oIf]);\n }\n if (output[_pO] != null) {\n contents[_PO] = (0, import_smithy_client.expectString)(output[_pO]);\n }\n if (output[_star] != null) {\n contents[_Star] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_star]));\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_uP] != null) {\n contents[_UPp] = (0, import_smithy_client.expectString)(output[_uP]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_HostReservation\");\nvar de_HostReservationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostReservation(entry, context);\n });\n}, \"de_HostReservationSet\");\nvar de_IamInstanceProfile = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n return contents;\n}, \"de_IamInstanceProfile\");\nvar de_IamInstanceProfileAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfile(output[_iIP], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_IamInstanceProfileAssociation\");\nvar de_IamInstanceProfileAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IamInstanceProfileAssociation(entry, context);\n });\n}, \"de_IamInstanceProfileAssociationSet\");\nvar de_IamInstanceProfileSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_IamInstanceProfileSpecification\");\nvar de_IcmpTypeCode = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.strictParseInt32)(output[_co]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.strictParseInt32)(output[_ty]);\n }\n return contents;\n}, \"de_IcmpTypeCode\");\nvar de_IdFormat = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dea] != null) {\n contents[_Dea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dea]));\n }\n if (output[_reso] != null) {\n contents[_Res] = (0, import_smithy_client.expectString)(output[_reso]);\n }\n if (output[_uLI] != null) {\n contents[_ULI] = (0, import_smithy_client.parseBoolean)(output[_uLI]);\n }\n return contents;\n}, \"de_IdFormat\");\nvar de_IdFormatList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IdFormat(entry, context);\n });\n}, \"de_IdFormatList\");\nvar de_IKEVersionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IKEVersionsListValue(entry, context);\n });\n}, \"de_IKEVersionsList\");\nvar de_IKEVersionsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_IKEVersionsListValue\");\nvar de_Image = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pDl] != null) {\n contents[_PDl] = (0, import_smithy_client.expectString)(output[_pDl]);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = (0, import_smithy_client.parseBoolean)(output[_eSna]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iOA] != null) {\n contents[_IOA] = (0, import_smithy_client.expectString)(output[_iOA]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_rDN] != null) {\n contents[_RDN] = (0, import_smithy_client.expectString)(output[_rDN]);\n }\n if (output[_rDT] != null) {\n contents[_RDT] = (0, import_smithy_client.expectString)(output[_rDT]);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = (0, import_smithy_client.expectString)(output[_sNSr]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = de_StateReason(output[_sRt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vTi] != null) {\n contents[_VTir] = (0, import_smithy_client.expectString)(output[_vTi]);\n }\n if (output[_bM] != null) {\n contents[_BM] = (0, import_smithy_client.expectString)(output[_bM]);\n }\n if (output[_tSp] != null) {\n contents[_TSp] = (0, import_smithy_client.expectString)(output[_tSp]);\n }\n if (output[_dTe] != null) {\n contents[_DTep] = (0, import_smithy_client.expectString)(output[_dTe]);\n }\n if (output[_iSmd] != null) {\n contents[_ISm] = (0, import_smithy_client.expectString)(output[_iSmd]);\n }\n if (output[_sII] != null) {\n contents[_SIIo] = (0, import_smithy_client.expectString)(output[_sII]);\n }\n if (output[_dPe] != null) {\n contents[_DPer] = (0, import_smithy_client.expectString)(output[_dPe]);\n }\n if (output[_lLT] != null) {\n contents[_LLT] = (0, import_smithy_client.expectString)(output[_lLT]);\n }\n if (output[_iAm] != null) {\n contents[_IAm] = (0, import_smithy_client.parseBoolean)(output[_iAm]);\n }\n if (output[_sIIo] != null) {\n contents[_SII] = (0, import_smithy_client.expectString)(output[_sIIo]);\n }\n if (output[_sIR] != null) {\n contents[_SIRo] = (0, import_smithy_client.expectString)(output[_sIR]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iL] != null) {\n contents[_IL] = (0, import_smithy_client.expectString)(output[_iL]);\n }\n if (output[_iSma] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_iSma]);\n }\n if (output[_iOI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_iOI]);\n }\n if (output[_cDr] != null) {\n contents[_CDre] = (0, import_smithy_client.expectString)(output[_cDr]);\n }\n if (output[_iPs] != null) {\n contents[_Pu] = (0, import_smithy_client.parseBoolean)(output[_iPs]);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output[_iTm] != null) {\n contents[_ITm] = (0, import_smithy_client.expectString)(output[_iTm]);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n return contents;\n}, \"de_Image\");\nvar de_ImageAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = de_AttributeValue(output[_de], context);\n }\n if (output[_ke] != null) {\n contents[_KI] = de_AttributeValue(output[_ke], context);\n }\n if (output[_ra] != null) {\n contents[_RIa] = de_AttributeValue(output[_ra], context);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = de_AttributeValue(output[_sNSr], context);\n }\n if (output[_bM] != null) {\n contents[_BM] = de_AttributeValue(output[_bM], context);\n }\n if (output[_tSp] != null) {\n contents[_TSp] = de_AttributeValue(output[_tSp], context);\n }\n if (output[_uD] != null) {\n contents[_UDe] = de_AttributeValue(output[_uD], context);\n }\n if (output[_lLT] != null) {\n contents[_LLT] = de_AttributeValue(output[_lLT], context);\n }\n if (output[_iSmd] != null) {\n contents[_ISm] = de_AttributeValue(output[_iSmd], context);\n }\n if (output[_dPe] != null) {\n contents[_DPer] = de_AttributeValue(output[_dPe], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output.launchPermission === \"\") {\n contents[_LPau] = [];\n } else if (output[_lPa] != null && output[_lPa][_i] != null) {\n contents[_LPau] = de_LaunchPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_lPa][_i]), context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n return contents;\n}, \"de_ImageAttribute\");\nvar de_ImageCriterion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.imageProviderSet === \"\") {\n contents[_IPm] = [];\n } else if (output[_iPSm] != null && output[_iPSm][_i] != null) {\n contents[_IPm] = de_ImageProviderList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSm][_i]), context);\n }\n return contents;\n}, \"de_ImageCriterion\");\nvar de_ImageCriterionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImageCriterion(entry, context);\n });\n}, \"de_ImageCriterionList\");\nvar de_ImageList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Image(entry, context);\n });\n}, \"de_ImageList\");\nvar de_ImageMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_iOI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_iOI]);\n }\n if (output[_iSma] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_iSma]);\n }\n if (output[_iOA] != null) {\n contents[_IOA] = (0, import_smithy_client.expectString)(output[_iOA]);\n }\n if (output[_cDr] != null) {\n contents[_CDre] = (0, import_smithy_client.expectString)(output[_cDr]);\n }\n if (output[_dTe] != null) {\n contents[_DTep] = (0, import_smithy_client.expectString)(output[_dTe]);\n }\n if (output[_iAm] != null) {\n contents[_IAm] = (0, import_smithy_client.parseBoolean)(output[_iAm]);\n }\n if (output[_iPs] != null) {\n contents[_IPs] = (0, import_smithy_client.parseBoolean)(output[_iPs]);\n }\n return contents;\n}, \"de_ImageMetadata\");\nvar de_ImageProviderList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ImageProviderList\");\nvar de_ImageRecycleBinInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_rBET] != null) {\n contents[_RBET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBET]));\n }\n if (output[_rBETe] != null) {\n contents[_RBETe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBETe]));\n }\n return contents;\n}, \"de_ImageRecycleBinInfo\");\nvar de_ImageRecycleBinInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImageRecycleBinInfo(entry, context);\n });\n}, \"de_ImageRecycleBinInfoList\");\nvar de_ImportClientVpnClientCertificateRevocationListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ImportClientVpnClientCertificateRevocationListResult\");\nvar de_ImportImageLicenseConfigurationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lCA] != null) {\n contents[_LCA] = (0, import_smithy_client.expectString)(output[_lCA]);\n }\n return contents;\n}, \"de_ImportImageLicenseConfigurationResponse\");\nvar de_ImportImageLicenseSpecificationListResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportImageLicenseConfigurationResponse(entry, context);\n });\n}, \"de_ImportImageLicenseSpecificationListResponse\");\nvar de_ImportImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_lTi] != null) {\n contents[_LTi] = (0, import_smithy_client.expectString)(output[_lTi]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output.snapshotDetailSet === \"\") {\n contents[_SDn] = [];\n } else if (output[_sDSn] != null && output[_sDSn][_i] != null) {\n contents[_SDn] = de_SnapshotDetailList((0, import_smithy_client.getArrayIfSingleItem)(output[_sDSn][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.licenseSpecifications === \"\") {\n contents[_LSi] = [];\n } else if (output[_lS] != null && output[_lS][_i] != null) {\n contents[_LSi] = de_ImportImageLicenseSpecificationListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_lS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n return contents;\n}, \"de_ImportImageResult\");\nvar de_ImportImageTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_lTi] != null) {\n contents[_LTi] = (0, import_smithy_client.expectString)(output[_lTi]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output.snapshotDetailSet === \"\") {\n contents[_SDn] = [];\n } else if (output[_sDSn] != null && output[_sDSn][_i] != null) {\n contents[_SDn] = de_SnapshotDetailList((0, import_smithy_client.getArrayIfSingleItem)(output[_sDSn][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.licenseSpecifications === \"\") {\n contents[_LSi] = [];\n } else if (output[_lS] != null && output[_lS][_i] != null) {\n contents[_LSi] = de_ImportImageLicenseSpecificationListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_lS][_i]), context);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n if (output[_bM] != null) {\n contents[_BM] = (0, import_smithy_client.expectString)(output[_bM]);\n }\n return contents;\n}, \"de_ImportImageTask\");\nvar de_ImportImageTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportImageTask(entry, context);\n });\n}, \"de_ImportImageTaskList\");\nvar de_ImportInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTon] != null) {\n contents[_CTonv] = de_ConversionTask(output[_cTon], context);\n }\n return contents;\n}, \"de_ImportInstanceResult\");\nvar de_ImportInstanceTaskDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output.volumes === \"\") {\n contents[_Vol] = [];\n } else if (output[_vo] != null && output[_vo][_i] != null) {\n contents[_Vol] = de_ImportInstanceVolumeDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vo][_i]), context);\n }\n return contents;\n}, \"de_ImportInstanceTaskDetails\");\nvar de_ImportInstanceVolumeDetailItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_bCy] != null) {\n contents[_BCyt] = (0, import_smithy_client.strictParseLong)(output[_bCy]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_im] != null) {\n contents[_Im] = de_DiskImageDescription(output[_im], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_vol] != null) {\n contents[_Vo] = de_DiskImageVolumeDescription(output[_vol], context);\n }\n return contents;\n}, \"de_ImportInstanceVolumeDetailItem\");\nvar de_ImportInstanceVolumeDetailSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportInstanceVolumeDetailItem(entry, context);\n });\n}, \"de_ImportInstanceVolumeDetailSet\");\nvar de_ImportKeyPairResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kFe] != null) {\n contents[_KFe] = (0, import_smithy_client.expectString)(output[_kFe]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ImportKeyPairResult\");\nvar de_ImportSnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_sTD] != null) {\n contents[_STD] = de_SnapshotTaskDetail(output[_sTD], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ImportSnapshotResult\");\nvar de_ImportSnapshotTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_sTD] != null) {\n contents[_STD] = de_SnapshotTaskDetail(output[_sTD], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ImportSnapshotTask\");\nvar de_ImportSnapshotTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportSnapshotTask(entry, context);\n });\n}, \"de_ImportSnapshotTaskList\");\nvar de_ImportVolumeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTon] != null) {\n contents[_CTonv] = de_ConversionTask(output[_cTon], context);\n }\n return contents;\n}, \"de_ImportVolumeResult\");\nvar de_ImportVolumeTaskDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_bCy] != null) {\n contents[_BCyt] = (0, import_smithy_client.strictParseLong)(output[_bCy]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_im] != null) {\n contents[_Im] = de_DiskImageDescription(output[_im], context);\n }\n if (output[_vol] != null) {\n contents[_Vo] = de_DiskImageVolumeDescription(output[_vol], context);\n }\n return contents;\n}, \"de_ImportVolumeTaskDetails\");\nvar de_InferenceAcceleratorInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.accelerators === \"\") {\n contents[_Acc] = [];\n } else if (output[_acc] != null && output[_acc][_mem] != null) {\n contents[_Acc] = de_InferenceDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_acc][_mem]), context);\n }\n if (output[_tIMIMB] != null) {\n contents[_TIMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tIMIMB]);\n }\n return contents;\n}, \"de_InferenceAcceleratorInfo\");\nvar de_InferenceDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_InferenceDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_InferenceDeviceInfo\");\nvar de_InferenceDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InferenceDeviceInfo(entry, context);\n });\n}, \"de_InferenceDeviceInfoList\");\nvar de_InferenceDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_InferenceDeviceMemoryInfo\");\nvar de_InsideCidrBlocksStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InsideCidrBlocksStringList\");\nvar de_Instance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_InstanceBlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = (0, import_smithy_client.parseBoolean)(output[_eSna]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfile(output[_iIP], context);\n }\n if (output[_iLn] != null) {\n contents[_ILn] = (0, import_smithy_client.expectString)(output[_iLn]);\n }\n if (output.elasticGpuAssociationSet === \"\") {\n contents[_EGA] = [];\n } else if (output[_eGASl] != null && output[_eGASl][_i] != null) {\n contents[_EGA] = de_ElasticGpuAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_eGASl][_i]), context);\n }\n if (output.elasticInferenceAcceleratorAssociationSet === \"\") {\n contents[_EIAAl] = [];\n } else if (output[_eIAASl] != null && output[_eIAASl][_i] != null) {\n contents[_EIAAl] = de_ElasticInferenceAcceleratorAssociationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_eIAASl][_i]),\n context\n );\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_InstanceNetworkInterfaceList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_rDN] != null) {\n contents[_RDN] = (0, import_smithy_client.expectString)(output[_rDN]);\n }\n if (output[_rDT] != null) {\n contents[_RDT] = (0, import_smithy_client.expectString)(output[_rDT]);\n }\n if (output.groupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_SG] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = (0, import_smithy_client.parseBoolean)(output[_sDC]);\n }\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = (0, import_smithy_client.expectString)(output[_sNSr]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = de_StateReason(output[_sRt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vTi] != null) {\n contents[_VTir] = (0, import_smithy_client.expectString)(output[_vTi]);\n }\n if (output[_cO] != null) {\n contents[_COp] = de_CpuOptions(output[_cO], context);\n }\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_cRSa] != null) {\n contents[_CRSa] = de_CapacityReservationSpecificationResponse(output[_cRSa], context);\n }\n if (output[_hO] != null) {\n contents[_HO] = de_HibernationOptions(output[_hO], context);\n }\n if (output.licenseSet === \"\") {\n contents[_Lic] = [];\n } else if (output[_lSi] != null && output[_lSi][_i] != null) {\n contents[_Lic] = de_LicenseList((0, import_smithy_client.getArrayIfSingleItem)(output[_lSi][_i]), context);\n }\n if (output[_mO] != null) {\n contents[_MO] = de_InstanceMetadataOptionsResponse(output[_mO], context);\n }\n if (output[_eOn] != null) {\n contents[_EOn] = de_EnclaveOptions(output[_eOn], context);\n }\n if (output[_bM] != null) {\n contents[_BM] = (0, import_smithy_client.expectString)(output[_bM]);\n }\n if (output[_pDl] != null) {\n contents[_PDl] = (0, import_smithy_client.expectString)(output[_pDl]);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n if (output[_uOUT] != null) {\n contents[_UOUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uOUT]));\n }\n if (output[_pDNO] != null) {\n contents[_PDNO] = de_PrivateDnsNameOptionsResponse(output[_pDNO], context);\n }\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_tSp] != null) {\n contents[_TSp] = (0, import_smithy_client.expectString)(output[_tSp]);\n }\n if (output[_mOa] != null) {\n contents[_MOa] = de_InstanceMaintenanceOptions(output[_mOa], context);\n }\n if (output[_cIBM] != null) {\n contents[_CIBM] = (0, import_smithy_client.expectString)(output[_cIBM]);\n }\n if (output[_nPO] != null) {\n contents[_NPO] = de_InstanceNetworkPerformanceOptions(output[_nPO], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iSnst] != null) {\n contents[_Stat] = de_InstanceState(output[_iSnst], context);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_dNn] != null) {\n contents[_PDNu] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_rea] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_aLI] != null) {\n contents[_ALI] = (0, import_smithy_client.strictParseInt32)(output[_aLI]);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_lTau] != null) {\n contents[_LTaun] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lTau]));\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_Placement(output[_pla], context);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_Monitoring(output[_mo], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output[_iAp] != null) {\n contents[_PIAu] = (0, import_smithy_client.expectString)(output[_iAp]);\n }\n return contents;\n}, \"de_Instance\");\nvar de_InstanceAttachmentEnaSrdSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_eSE]);\n }\n if (output[_eSUS] != null) {\n contents[_ESUS] = de_InstanceAttachmentEnaSrdUdpSpecification(output[_eSUS], context);\n }\n return contents;\n}, \"de_InstanceAttachmentEnaSrdSpecification\");\nvar de_InstanceAttachmentEnaSrdUdpSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_eSUE]);\n }\n return contents;\n}, \"de_InstanceAttachmentEnaSrdUdpSpecification\");\nvar de_InstanceAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_InstanceBlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_dAT] != null) {\n contents[_DATis] = de_AttributeBooleanValue(output[_dAT], context);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = de_AttributeBooleanValue(output[_eSna], context);\n }\n if (output[_eOn] != null) {\n contents[_EOn] = de_EnclaveOptions(output[_eOn], context);\n }\n if (output[_eO] != null) {\n contents[_EO] = de_AttributeBooleanValue(output[_eO], context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iISB] != null) {\n contents[_IISB] = de_AttributeValue(output[_iISB], context);\n }\n if (output[_iT] != null) {\n contents[_IT] = de_AttributeValue(output[_iT], context);\n }\n if (output[_ke] != null) {\n contents[_KI] = de_AttributeValue(output[_ke], context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_ra] != null) {\n contents[_RIa] = de_AttributeValue(output[_ra], context);\n }\n if (output[_rDN] != null) {\n contents[_RDN] = de_AttributeValue(output[_rDN], context);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = de_AttributeBooleanValue(output[_sDC], context);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = de_AttributeValue(output[_sNSr], context);\n }\n if (output[_uDs] != null) {\n contents[_UD] = de_AttributeValue(output[_uDs], context);\n }\n if (output[_dASi] != null) {\n contents[_DAS] = de_AttributeBooleanValue(output[_dASi], context);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n return contents;\n}, \"de_InstanceAttribute\");\nvar de_InstanceBlockDeviceMapping = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_eb] != null) {\n contents[_E] = de_EbsInstanceBlockDevice(output[_eb], context);\n }\n return contents;\n}, \"de_InstanceBlockDeviceMapping\");\nvar de_InstanceBlockDeviceMappingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceBlockDeviceMapping(entry, context);\n });\n}, \"de_InstanceBlockDeviceMappingList\");\nvar de_InstanceCapacity = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aC] != null) {\n contents[_ACv] = (0, import_smithy_client.strictParseInt32)(output[_aC]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_tC] != null) {\n contents[_TCo] = (0, import_smithy_client.strictParseInt32)(output[_tC]);\n }\n return contents;\n}, \"de_InstanceCapacity\");\nvar de_InstanceConnectEndpointSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ec2InstanceConnectEndpoint(entry, context);\n });\n}, \"de_InstanceConnectEndpointSet\");\nvar de_InstanceCount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_InstanceCount\");\nvar de_InstanceCountList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceCount(entry, context);\n });\n}, \"de_InstanceCountList\");\nvar de_InstanceCreditSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_cCp] != null) {\n contents[_CCp] = (0, import_smithy_client.expectString)(output[_cCp]);\n }\n return contents;\n}, \"de_InstanceCreditSpecification\");\nvar de_InstanceCreditSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceCreditSpecification(entry, context);\n });\n}, \"de_InstanceCreditSpecificationList\");\nvar de_InstanceEventWindow = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEWI] != null) {\n contents[_IEWI] = (0, import_smithy_client.expectString)(output[_iEWI]);\n }\n if (output.timeRangeSet === \"\") {\n contents[_TRi] = [];\n } else if (output[_tRSi] != null && output[_tRSi][_i] != null) {\n contents[_TRi] = de_InstanceEventWindowTimeRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_tRSi][_i]), context);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_cEr] != null) {\n contents[_CE] = (0, import_smithy_client.expectString)(output[_cEr]);\n }\n if (output[_aTs] != null) {\n contents[_AT] = de_InstanceEventWindowAssociationTarget(output[_aTs], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_InstanceEventWindow\");\nvar de_InstanceEventWindowAssociationTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceIdSet === \"\") {\n contents[_IIns] = [];\n } else if (output[_iIS] != null && output[_iIS][_i] != null) {\n contents[_IIns] = de_InstanceIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_iIS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.dedicatedHostIdSet === \"\") {\n contents[_DHI] = [];\n } else if (output[_dHIS] != null && output[_dHIS][_i] != null) {\n contents[_DHI] = de_DedicatedHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_dHIS][_i]), context);\n }\n return contents;\n}, \"de_InstanceEventWindowAssociationTarget\");\nvar de_InstanceEventWindowSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceEventWindow(entry, context);\n });\n}, \"de_InstanceEventWindowSet\");\nvar de_InstanceEventWindowStateChange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEWI] != null) {\n contents[_IEWI] = (0, import_smithy_client.expectString)(output[_iEWI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_InstanceEventWindowStateChange\");\nvar de_InstanceEventWindowTimeRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sWD] != null) {\n contents[_SWD] = (0, import_smithy_client.expectString)(output[_sWD]);\n }\n if (output[_sH] != null) {\n contents[_SH] = (0, import_smithy_client.strictParseInt32)(output[_sH]);\n }\n if (output[_eWD] != null) {\n contents[_EWD] = (0, import_smithy_client.expectString)(output[_eWD]);\n }\n if (output[_eH] != null) {\n contents[_EH] = (0, import_smithy_client.strictParseInt32)(output[_eH]);\n }\n return contents;\n}, \"de_InstanceEventWindowTimeRange\");\nvar de_InstanceEventWindowTimeRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceEventWindowTimeRange(entry, context);\n });\n}, \"de_InstanceEventWindowTimeRangeList\");\nvar de_InstanceExportDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_tE] != null) {\n contents[_TE] = (0, import_smithy_client.expectString)(output[_tE]);\n }\n return contents;\n}, \"de_InstanceExportDetails\");\nvar de_InstanceFamilyCreditSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_cCp] != null) {\n contents[_CCp] = (0, import_smithy_client.expectString)(output[_cCp]);\n }\n return contents;\n}, \"de_InstanceFamilyCreditSpecification\");\nvar de_InstanceGenerationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceGenerationSet\");\nvar de_InstanceIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceIdList\");\nvar de_InstanceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceIdSet\");\nvar de_InstanceIdsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceIdsSet\");\nvar de_InstanceImageMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_lTau] != null) {\n contents[_LTaun] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lTau]));\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_zI] != null) {\n contents[_ZIo] = (0, import_smithy_client.expectString)(output[_zI]);\n }\n if (output[_iSnst] != null) {\n contents[_Stat] = de_InstanceState(output[_iSnst], context);\n }\n if (output[_iOIn] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_iOIn]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_iM] != null) {\n contents[_IMm] = de_ImageMetadata(output[_iM], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_InstanceImageMetadata\");\nvar de_InstanceImageMetadataList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceImageMetadata(entry, context);\n });\n}, \"de_InstanceImageMetadataList\");\nvar de_InstanceIpv4Prefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpv] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_iPpv]);\n }\n return contents;\n}, \"de_InstanceIpv4Prefix\");\nvar de_InstanceIpv4PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceIpv4Prefix(entry, context);\n });\n}, \"de_InstanceIpv4PrefixList\");\nvar de_InstanceIpv6Address = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_iPI] != null) {\n contents[_IPIs] = (0, import_smithy_client.parseBoolean)(output[_iPI]);\n }\n return contents;\n}, \"de_InstanceIpv6Address\");\nvar de_InstanceIpv6AddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceIpv6Address(entry, context);\n });\n}, \"de_InstanceIpv6AddressList\");\nvar de_InstanceIpv6Prefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpvr] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_iPpvr]);\n }\n return contents;\n}, \"de_InstanceIpv6Prefix\");\nvar de_InstanceIpv6PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceIpv6Prefix(entry, context);\n });\n}, \"de_InstanceIpv6PrefixList\");\nvar de_InstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Instance(entry, context);\n });\n}, \"de_InstanceList\");\nvar de_InstanceMaintenanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRu] != null) {\n contents[_ARu] = (0, import_smithy_client.expectString)(output[_aRu]);\n }\n return contents;\n}, \"de_InstanceMaintenanceOptions\");\nvar de_InstanceMetadataDefaultsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hT] != null) {\n contents[_HT] = (0, import_smithy_client.expectString)(output[_hT]);\n }\n if (output[_hPRHL] != null) {\n contents[_HPRHL] = (0, import_smithy_client.strictParseInt32)(output[_hPRHL]);\n }\n if (output[_hE] != null) {\n contents[_HE] = (0, import_smithy_client.expectString)(output[_hE]);\n }\n if (output[_iMT] != null) {\n contents[_IMT] = (0, import_smithy_client.expectString)(output[_iMT]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n if (output[_mEM] != null) {\n contents[_MEM] = (0, import_smithy_client.expectString)(output[_mEM]);\n }\n return contents;\n}, \"de_InstanceMetadataDefaultsResponse\");\nvar de_InstanceMetadataOptionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_hT] != null) {\n contents[_HT] = (0, import_smithy_client.expectString)(output[_hT]);\n }\n if (output[_hPRHL] != null) {\n contents[_HPRHL] = (0, import_smithy_client.strictParseInt32)(output[_hPRHL]);\n }\n if (output[_hE] != null) {\n contents[_HE] = (0, import_smithy_client.expectString)(output[_hE]);\n }\n if (output[_hPI] != null) {\n contents[_HPI] = (0, import_smithy_client.expectString)(output[_hPI]);\n }\n if (output[_iMT] != null) {\n contents[_IMT] = (0, import_smithy_client.expectString)(output[_iMT]);\n }\n return contents;\n}, \"de_InstanceMetadataOptionsResponse\");\nvar de_InstanceMonitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_Monitoring(output[_mo], context);\n }\n return contents;\n}, \"de_InstanceMonitoring\");\nvar de_InstanceMonitoringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceMonitoring(entry, context);\n });\n}, \"de_InstanceMonitoringList\");\nvar de_InstanceNetworkInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_InstanceNetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_at] != null) {\n contents[_Att] = de_InstanceNetworkInterfaceAttachment(output[_at], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_InstanceIpv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_mAa] != null) {\n contents[_MAa] = (0, import_smithy_client.expectString)(output[_mAa]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_InstancePrivateIpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = (0, import_smithy_client.parseBoolean)(output[_sDC]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_iTnt] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_iTnt]);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_InstanceIpv4PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_InstanceIpv6PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_cTC] != null) {\n contents[_CTC] = de_ConnectionTrackingSpecificationResponse(output[_cTC], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_InstanceNetworkInterface\");\nvar de_InstanceNetworkInterfaceAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_iOIp] != null) {\n contents[_IOI] = (0, import_smithy_client.expectString)(output[_iOIp]);\n }\n if (output[_pDNu] != null) {\n contents[_PDNu] = (0, import_smithy_client.expectString)(output[_pDNu]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_InstanceNetworkInterfaceAssociation\");\nvar de_InstanceNetworkInterfaceAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output[_eSS] != null) {\n contents[_ESS] = de_InstanceAttachmentEnaSrdSpecification(output[_eSS], context);\n }\n if (output[_eQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_eQC]);\n }\n return contents;\n}, \"de_InstanceNetworkInterfaceAttachment\");\nvar de_InstanceNetworkInterfaceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceNetworkInterface(entry, context);\n });\n}, \"de_InstanceNetworkInterfaceList\");\nvar de_InstanceNetworkInterfaceSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aPIA] != null) {\n contents[_APIAs] = (0, import_smithy_client.parseBoolean)(output[_aPIA]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output.SecurityGroupId === \"\") {\n contents[_G] = [];\n } else if (output[_SGIe] != null && output[_SGIe][_SGIe] != null) {\n contents[_G] = de_SecurityGroupIdStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_SGIe][_SGIe]), context);\n }\n if (output[_iAC] != null) {\n contents[_IAC] = (0, import_smithy_client.strictParseInt32)(output[_iAC]);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_InstanceIpv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_PrivateIpAddressSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output[_sPIAC] != null) {\n contents[_SPIAC] = (0, import_smithy_client.strictParseInt32)(output[_sPIAC]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_ACIA] != null) {\n contents[_ACIA] = (0, import_smithy_client.parseBoolean)(output[_ACIA]);\n }\n if (output[_ITn] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_ITn]);\n }\n if (output[_NCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_NCI]);\n }\n if (output.Ipv4Prefix === \"\") {\n contents[_IPp] = [];\n } else if (output[_IPpvr] != null && output[_IPpvr][_i] != null) {\n contents[_IPp] = de_Ipv4PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_IPpvr][_i]), context);\n }\n if (output[_IPCp] != null) {\n contents[_IPCp] = (0, import_smithy_client.strictParseInt32)(output[_IPCp]);\n }\n if (output.Ipv6Prefix === \"\") {\n contents[_IP] = [];\n } else if (output[_IPpvre] != null && output[_IPpvre][_i] != null) {\n contents[_IP] = de_Ipv6PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_IPpvre][_i]), context);\n }\n if (output[_IPC] != null) {\n contents[_IPC] = (0, import_smithy_client.strictParseInt32)(output[_IPC]);\n }\n if (output[_PIr] != null) {\n contents[_PIr] = (0, import_smithy_client.parseBoolean)(output[_PIr]);\n }\n if (output[_ESS] != null) {\n contents[_ESS] = de_EnaSrdSpecificationRequest(output[_ESS], context);\n }\n if (output[_CTS] != null) {\n contents[_CTS] = de_ConnectionTrackingSpecificationRequest(output[_CTS], context);\n }\n if (output[_EQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_EQC]);\n }\n return contents;\n}, \"de_InstanceNetworkInterfaceSpecification\");\nvar de_InstanceNetworkInterfaceSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceNetworkInterfaceSpecification(entry, context);\n });\n}, \"de_InstanceNetworkInterfaceSpecificationList\");\nvar de_InstanceNetworkPerformanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bW] != null) {\n contents[_BW] = (0, import_smithy_client.expectString)(output[_bW]);\n }\n return contents;\n}, \"de_InstanceNetworkPerformanceOptions\");\nvar de_InstancePrivateIpAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_InstanceNetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_prim] != null) {\n contents[_Prim] = (0, import_smithy_client.parseBoolean)(output[_prim]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_InstancePrivateIpAddress\");\nvar de_InstancePrivateIpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstancePrivateIpAddress(entry, context);\n });\n}, \"de_InstancePrivateIpAddressList\");\nvar de_InstanceRequirements = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCC] != null) {\n contents[_VCC] = de_VCpuCountRange(output[_vCC], context);\n }\n if (output[_mMB] != null) {\n contents[_MMB] = de_MemoryMiB(output[_mMB], context);\n }\n if (output.cpuManufacturerSet === \"\") {\n contents[_CM] = [];\n } else if (output[_cMS] != null && output[_cMS][_i] != null) {\n contents[_CM] = de_CpuManufacturerSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cMS][_i]), context);\n }\n if (output[_mGBPVC] != null) {\n contents[_MGBPVC] = de_MemoryGiBPerVCpu(output[_mGBPVC], context);\n }\n if (output.excludedInstanceTypeSet === \"\") {\n contents[_EIT] = [];\n } else if (output[_eITSx] != null && output[_eITSx][_i] != null) {\n contents[_EIT] = de_ExcludedInstanceTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eITSx][_i]), context);\n }\n if (output.instanceGenerationSet === \"\") {\n contents[_IG] = [];\n } else if (output[_iGSn] != null && output[_iGSn][_i] != null) {\n contents[_IG] = de_InstanceGenerationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iGSn][_i]), context);\n }\n if (output[_sMPPOLP] != null) {\n contents[_SMPPOLP] = (0, import_smithy_client.strictParseInt32)(output[_sMPPOLP]);\n }\n if (output[_oDMPPOLP] != null) {\n contents[_ODMPPOLP] = (0, import_smithy_client.strictParseInt32)(output[_oDMPPOLP]);\n }\n if (output[_bMa] != null) {\n contents[_BMa] = (0, import_smithy_client.expectString)(output[_bMa]);\n }\n if (output[_bP] != null) {\n contents[_BP] = (0, import_smithy_client.expectString)(output[_bP]);\n }\n if (output[_rHS] != null) {\n contents[_RHS] = (0, import_smithy_client.parseBoolean)(output[_rHS]);\n }\n if (output[_nIC] != null) {\n contents[_NIC] = de_NetworkInterfaceCount(output[_nIC], context);\n }\n if (output[_lSo] != null) {\n contents[_LSo] = (0, import_smithy_client.expectString)(output[_lSo]);\n }\n if (output.localStorageTypeSet === \"\") {\n contents[_LST] = [];\n } else if (output[_lSTS] != null && output[_lSTS][_i] != null) {\n contents[_LST] = de_LocalStorageTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lSTS][_i]), context);\n }\n if (output[_tLSGB] != null) {\n contents[_TLSGB] = de_TotalLocalStorageGB(output[_tLSGB], context);\n }\n if (output[_bEBM] != null) {\n contents[_BEBM] = de_BaselineEbsBandwidthMbps(output[_bEBM], context);\n }\n if (output.acceleratorTypeSet === \"\") {\n contents[_ATc] = [];\n } else if (output[_aTSc] != null && output[_aTSc][_i] != null) {\n contents[_ATc] = de_AcceleratorTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aTSc][_i]), context);\n }\n if (output[_aCc] != null) {\n contents[_ACc] = de_AcceleratorCount(output[_aCc], context);\n }\n if (output.acceleratorManufacturerSet === \"\") {\n contents[_AM] = [];\n } else if (output[_aMS] != null && output[_aMS][_i] != null) {\n contents[_AM] = de_AcceleratorManufacturerSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aMS][_i]), context);\n }\n if (output.acceleratorNameSet === \"\") {\n contents[_ANc] = [];\n } else if (output[_aNS] != null && output[_aNS][_i] != null) {\n contents[_ANc] = de_AcceleratorNameSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aNS][_i]), context);\n }\n if (output[_aTMMB] != null) {\n contents[_ATMMB] = de_AcceleratorTotalMemoryMiB(output[_aTMMB], context);\n }\n if (output[_nBGe] != null) {\n contents[_NBGe] = de_NetworkBandwidthGbps(output[_nBGe], context);\n }\n if (output.allowedInstanceTypeSet === \"\") {\n contents[_AIT] = [];\n } else if (output[_aITS] != null && output[_aITS][_i] != null) {\n contents[_AIT] = de_AllowedInstanceTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aITS][_i]), context);\n }\n if (output[_mSPAPOOODP] != null) {\n contents[_MSPAPOOODP] = (0, import_smithy_client.strictParseInt32)(output[_mSPAPOOODP]);\n }\n if (output[_bPF] != null) {\n contents[_BPF] = de_BaselinePerformanceFactors(output[_bPF], context);\n }\n return contents;\n}, \"de_InstanceRequirements\");\nvar de_InstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTopology(entry, context);\n });\n}, \"de_InstanceSet\");\nvar de_InstanceState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.strictParseInt32)(output[_co]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_InstanceState\");\nvar de_InstanceStateChange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_cSu] != null) {\n contents[_CSu] = de_InstanceState(output[_cSu], context);\n }\n if (output[_pS] != null) {\n contents[_PSr] = de_InstanceState(output[_pS], context);\n }\n return contents;\n}, \"de_InstanceStateChange\");\nvar de_InstanceStateChangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStateChange(entry, context);\n });\n}, \"de_InstanceStateChangeList\");\nvar de_InstanceStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output.eventsSet === \"\") {\n contents[_Ev] = [];\n } else if (output[_eSv] != null && output[_eSv][_i] != null) {\n contents[_Ev] = de_InstanceStatusEventList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSv][_i]), context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iSnst] != null) {\n contents[_ISnst] = de_InstanceState(output[_iSnst], context);\n }\n if (output[_iSnsta] != null) {\n contents[_ISnsta] = de_InstanceStatusSummary(output[_iSnsta], context);\n }\n if (output[_sSy] != null) {\n contents[_SSy] = de_InstanceStatusSummary(output[_sSy], context);\n }\n if (output[_aES] != null) {\n contents[_AES] = de_EbsStatusSummary(output[_aES], context);\n }\n return contents;\n}, \"de_InstanceStatus\");\nvar de_InstanceStatusDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iSmp] != null) {\n contents[_ISmp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_iSmp]));\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_InstanceStatusDetails\");\nvar de_InstanceStatusDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStatusDetails(entry, context);\n });\n}, \"de_InstanceStatusDetailsList\");\nvar de_InstanceStatusEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEI] != null) {\n contents[_IEI] = (0, import_smithy_client.expectString)(output[_iEI]);\n }\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_nAo] != null) {\n contents[_NAo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nAo]));\n }\n if (output[_nB] != null) {\n contents[_NB] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nB]));\n }\n if (output[_nBD] != null) {\n contents[_NBD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nBD]));\n }\n return contents;\n}, \"de_InstanceStatusEvent\");\nvar de_InstanceStatusEventList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStatusEvent(entry, context);\n });\n}, \"de_InstanceStatusEventList\");\nvar de_InstanceStatusList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStatus(entry, context);\n });\n}, \"de_InstanceStatusList\");\nvar de_InstanceStatusSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.details === \"\") {\n contents[_Det] = [];\n } else if (output[_det] != null && output[_det][_i] != null) {\n contents[_Det] = de_InstanceStatusDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_det][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_InstanceStatusSummary\");\nvar de_InstanceStorageInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tSIGB] != null) {\n contents[_TSIGB] = (0, import_smithy_client.strictParseLong)(output[_tSIGB]);\n }\n if (output.disks === \"\") {\n contents[_Dis] = [];\n } else if (output[_dis] != null && output[_dis][_i] != null) {\n contents[_Dis] = de_DiskInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_dis][_i]), context);\n }\n if (output[_nS] != null) {\n contents[_NS] = (0, import_smithy_client.expectString)(output[_nS]);\n }\n if (output[_eSn] != null) {\n contents[_ESnc] = (0, import_smithy_client.expectString)(output[_eSn]);\n }\n return contents;\n}, \"de_InstanceStorageInfo\");\nvar de_InstanceTagKeySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceTagKeySet\");\nvar de_InstanceTagNotificationAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTagKeySet === \"\") {\n contents[_ITK] = [];\n } else if (output[_iTKS] != null && output[_iTKS][_i] != null) {\n contents[_ITK] = de_InstanceTagKeySet((0, import_smithy_client.getArrayIfSingleItem)(output[_iTKS][_i]), context);\n }\n if (output[_iATOI] != null) {\n contents[_IATOI] = (0, import_smithy_client.parseBoolean)(output[_iATOI]);\n }\n return contents;\n}, \"de_InstanceTagNotificationAttribute\");\nvar de_InstanceTopology = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output.networkNodeSet === \"\") {\n contents[_NN] = [];\n } else if (output[_nNS] != null && output[_nNS][_i] != null) {\n contents[_NN] = de_NetworkNodesList((0, import_smithy_client.getArrayIfSingleItem)(output[_nNS][_i]), context);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_zI] != null) {\n contents[_ZIo] = (0, import_smithy_client.expectString)(output[_zI]);\n }\n return contents;\n}, \"de_InstanceTopology\");\nvar de_InstanceTypeInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_cGur] != null) {\n contents[_CGur] = (0, import_smithy_client.parseBoolean)(output[_cGur]);\n }\n if (output[_fTE] != null) {\n contents[_FTE] = (0, import_smithy_client.parseBoolean)(output[_fTE]);\n }\n if (output.supportedUsageClasses === \"\") {\n contents[_SUC] = [];\n } else if (output[_sUC] != null && output[_sUC][_i] != null) {\n contents[_SUC] = de_UsageClassTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sUC][_i]), context);\n }\n if (output.supportedRootDeviceTypes === \"\") {\n contents[_SRDT] = [];\n } else if (output[_sRDT] != null && output[_sRDT][_i] != null) {\n contents[_SRDT] = de_RootDeviceTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sRDT][_i]), context);\n }\n if (output.supportedVirtualizationTypes === \"\") {\n contents[_SVT] = [];\n } else if (output[_sVT] != null && output[_sVT][_i] != null) {\n contents[_SVT] = de_VirtualizationTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sVT][_i]), context);\n }\n if (output[_bMa] != null) {\n contents[_BMa] = (0, import_smithy_client.parseBoolean)(output[_bMa]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_pIr] != null) {\n contents[_PIro] = de_ProcessorInfo(output[_pIr], context);\n }\n if (output[_vCIp] != null) {\n contents[_VCIpu] = de_VCpuInfo(output[_vCIp], context);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_MemoryInfo(output[_mIe], context);\n }\n if (output[_iSSn] != null) {\n contents[_ISS] = (0, import_smithy_client.parseBoolean)(output[_iSSn]);\n }\n if (output[_iSI] != null) {\n contents[_ISIn] = de_InstanceStorageInfo(output[_iSI], context);\n }\n if (output[_eIb] != null) {\n contents[_EIb] = de_EbsInfo(output[_eIb], context);\n }\n if (output[_nIet] != null) {\n contents[_NIetw] = de_NetworkInfo(output[_nIet], context);\n }\n if (output[_gIp] != null) {\n contents[_GIp] = de_GpuInfo(output[_gIp], context);\n }\n if (output[_fIp] != null) {\n contents[_FIpg] = de_FpgaInfo(output[_fIp], context);\n }\n if (output[_pGI] != null) {\n contents[_PGI] = de_PlacementGroupInfo(output[_pGI], context);\n }\n if (output[_iAI] != null) {\n contents[_IAIn] = de_InferenceAcceleratorInfo(output[_iAI], context);\n }\n if (output[_hSi] != null) {\n contents[_HS] = (0, import_smithy_client.parseBoolean)(output[_hSi]);\n }\n if (output[_bPS] != null) {\n contents[_BPS] = (0, import_smithy_client.parseBoolean)(output[_bPS]);\n }\n if (output[_dHS] != null) {\n contents[_DHS] = (0, import_smithy_client.parseBoolean)(output[_dHS]);\n }\n if (output[_aRSu] != null) {\n contents[_ARSu] = (0, import_smithy_client.parseBoolean)(output[_aRSu]);\n }\n if (output.supportedBootModes === \"\") {\n contents[_SBM] = [];\n } else if (output[_sBM] != null && output[_sBM][_i] != null) {\n contents[_SBM] = de_BootModeTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sBM][_i]), context);\n }\n if (output[_nES] != null) {\n contents[_NES] = (0, import_smithy_client.expectString)(output[_nES]);\n }\n if (output[_nTS] != null) {\n contents[_NTS] = (0, import_smithy_client.expectString)(output[_nTS]);\n }\n if (output[_nTI] != null) {\n contents[_NTI] = de_NitroTpmInfo(output[_nTI], context);\n }\n if (output[_mAIe] != null) {\n contents[_MAIe] = de_MediaAcceleratorInfo(output[_mAIe], context);\n }\n if (output[_nIeu] != null) {\n contents[_NIeu] = de_NeuronInfo(output[_nIeu], context);\n }\n if (output[_pSh] != null) {\n contents[_PSh] = (0, import_smithy_client.expectString)(output[_pSh]);\n }\n return contents;\n}, \"de_InstanceTypeInfo\");\nvar de_InstanceTypeInfoFromInstanceRequirements = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n return contents;\n}, \"de_InstanceTypeInfoFromInstanceRequirements\");\nvar de_InstanceTypeInfoFromInstanceRequirementsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTypeInfoFromInstanceRequirements(entry, context);\n });\n}, \"de_InstanceTypeInfoFromInstanceRequirementsSet\");\nvar de_InstanceTypeInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTypeInfo(entry, context);\n });\n}, \"de_InstanceTypeInfoList\");\nvar de_InstanceTypeOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_lTo] != null) {\n contents[_LT] = (0, import_smithy_client.expectString)(output[_lTo]);\n }\n if (output[_lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_lo]);\n }\n return contents;\n}, \"de_InstanceTypeOffering\");\nvar de_InstanceTypeOfferingsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTypeOffering(entry, context);\n });\n}, \"de_InstanceTypeOfferingsList\");\nvar de_InstanceTypesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceTypesList\");\nvar de_InstanceUsage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIc] != null) {\n contents[_AIcc] = (0, import_smithy_client.expectString)(output[_aIc]);\n }\n if (output[_uIC] != null) {\n contents[_UIC] = (0, import_smithy_client.strictParseInt32)(output[_uIC]);\n }\n return contents;\n}, \"de_InstanceUsage\");\nvar de_InstanceUsageSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceUsage(entry, context);\n });\n}, \"de_InstanceUsageSet\");\nvar de_InternetGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.attachmentSet === \"\") {\n contents[_Atta] = [];\n } else if (output[_aSt] != null && output[_aSt][_i] != null) {\n contents[_Atta] = de_InternetGatewayAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSt][_i]), context);\n }\n if (output[_iGI] != null) {\n contents[_IGI] = (0, import_smithy_client.expectString)(output[_iGI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_InternetGateway\");\nvar de_InternetGatewayAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_InternetGatewayAttachment\");\nvar de_InternetGatewayAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InternetGatewayAttachment(entry, context);\n });\n}, \"de_InternetGatewayAttachmentList\");\nvar de_InternetGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InternetGateway(entry, context);\n });\n}, \"de_InternetGatewayList\");\nvar de_IpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_IpAddressList\");\nvar de_Ipam = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_pDSI] != null) {\n contents[_PDSI] = (0, import_smithy_client.expectString)(output[_pDSI]);\n }\n if (output[_pDSIr] != null) {\n contents[_PDSIr] = (0, import_smithy_client.expectString)(output[_pDSIr]);\n }\n if (output[_sCc] != null) {\n contents[_SCc] = (0, import_smithy_client.strictParseInt32)(output[_sCc]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.operatingRegionSet === \"\") {\n contents[_OR] = [];\n } else if (output[_oRS] != null && output[_oRS][_i] != null) {\n contents[_OR] = de_IpamOperatingRegionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oRS][_i]), context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_dRDI] != null) {\n contents[_DRDI] = (0, import_smithy_client.expectString)(output[_dRDI]);\n }\n if (output[_dRDAI] != null) {\n contents[_DRDAI] = (0, import_smithy_client.expectString)(output[_dRDAI]);\n }\n if (output[_rDAC] != null) {\n contents[_RDAC] = (0, import_smithy_client.strictParseInt32)(output[_rDAC]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_tie] != null) {\n contents[_Ti] = (0, import_smithy_client.expectString)(output[_tie]);\n }\n if (output[_ePG] != null) {\n contents[_EPG] = (0, import_smithy_client.parseBoolean)(output[_ePG]);\n }\n if (output[_mAe] != null) {\n contents[_MAe] = (0, import_smithy_client.expectString)(output[_mAe]);\n }\n return contents;\n}, \"de_Ipam\");\nvar de_IpamAddressHistoryRecord = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rCe] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(output[_rCe]);\n }\n if (output[_rNes] != null) {\n contents[_RNes] = (0, import_smithy_client.expectString)(output[_rNes]);\n }\n if (output[_rCS] != null) {\n contents[_RCS] = (0, import_smithy_client.expectString)(output[_rCS]);\n }\n if (output[_rOSe] != null) {\n contents[_ROS] = (0, import_smithy_client.expectString)(output[_rOSe]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sST] != null) {\n contents[_SST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sST]));\n }\n if (output[_sET] != null) {\n contents[_SET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sET]));\n }\n return contents;\n}, \"de_IpamAddressHistoryRecord\");\nvar de_IpamAddressHistoryRecordSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamAddressHistoryRecord(entry, context);\n });\n}, \"de_IpamAddressHistoryRecordSet\");\nvar de_IpamDiscoveredAccount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIc] != null) {\n contents[_AIcc] = (0, import_smithy_client.expectString)(output[_aIc]);\n }\n if (output[_dR] != null) {\n contents[_DRi] = (0, import_smithy_client.expectString)(output[_dR]);\n }\n if (output[_fR] != null) {\n contents[_FR] = de_IpamDiscoveryFailureReason(output[_fR], context);\n }\n if (output[_lADT] != null) {\n contents[_LADT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lADT]));\n }\n if (output[_lSDT] != null) {\n contents[_LSDT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lSDT]));\n }\n if (output[_oUI] != null) {\n contents[_OUI] = (0, import_smithy_client.expectString)(output[_oUI]);\n }\n return contents;\n}, \"de_IpamDiscoveredAccount\");\nvar de_IpamDiscoveredAccountSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamDiscoveredAccount(entry, context);\n });\n}, \"de_IpamDiscoveredAccountSet\");\nvar de_IpamDiscoveredPublicAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_aRd] != null) {\n contents[_ARd] = (0, import_smithy_client.expectString)(output[_aRd]);\n }\n if (output[_ad] != null) {\n contents[_Ad] = (0, import_smithy_client.expectString)(output[_ad]);\n }\n if (output[_aOI] != null) {\n contents[_AOI] = (0, import_smithy_client.expectString)(output[_aOI]);\n }\n if (output[_aAId] != null) {\n contents[_AAId] = (0, import_smithy_client.expectString)(output[_aAId]);\n }\n if (output[_aSs] != null) {\n contents[_ASss] = (0, import_smithy_client.expectString)(output[_aSs]);\n }\n if (output[_aTd] != null) {\n contents[_ATddre] = (0, import_smithy_client.expectString)(output[_aTd]);\n }\n if (output[_se] != null) {\n contents[_Se] = (0, import_smithy_client.expectString)(output[_se]);\n }\n if (output[_sRe] != null) {\n contents[_SRerv] = (0, import_smithy_client.expectString)(output[_sRe]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_pIPI] != null) {\n contents[_PIPI] = (0, import_smithy_client.expectString)(output[_pIPI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_nID] != null) {\n contents[_NID] = (0, import_smithy_client.expectString)(output[_nID]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_ta] != null) {\n contents[_Ta] = de_IpamPublicAddressTags(output[_ta], context);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output.securityGroupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_sGS] != null && output[_sGS][_i] != null) {\n contents[_SG] = de_IpamPublicAddressSecurityGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGS][_i]), context);\n }\n if (output[_sTa] != null) {\n contents[_STa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTa]));\n }\n return contents;\n}, \"de_IpamDiscoveredPublicAddress\");\nvar de_IpamDiscoveredPublicAddressSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamDiscoveredPublicAddress(entry, context);\n });\n}, \"de_IpamDiscoveredPublicAddressSet\");\nvar de_IpamDiscoveredResourceCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rCe] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(output[_rCe]);\n }\n if (output[_iSpo] != null) {\n contents[_ISpo] = (0, import_smithy_client.expectString)(output[_iSpo]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.resourceTagSet === \"\") {\n contents[_RTesou] = [];\n } else if (output[_rTSe] != null && output[_rTSe][_i] != null) {\n contents[_RTesou] = de_IpamResourceTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTSe][_i]), context);\n }\n if (output[_iU] != null) {\n contents[_IUp] = (0, import_smithy_client.strictParseFloat)(output[_iU]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_nIASet] != null) {\n contents[_NIASet] = (0, import_smithy_client.expectString)(output[_nIASet]);\n }\n if (output[_sTa] != null) {\n contents[_STa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTa]));\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_IpamDiscoveredResourceCidr\");\nvar de_IpamDiscoveredResourceCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamDiscoveredResourceCidr(entry, context);\n });\n}, \"de_IpamDiscoveredResourceCidrSet\");\nvar de_IpamDiscoveryFailureReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_IpamDiscoveryFailureReason\");\nvar de_IpamExternalResourceVerificationToken = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iERVTI] != null) {\n contents[_IERVTI] = (0, import_smithy_client.expectString)(output[_iERVTI]);\n }\n if (output[_iERVTA] != null) {\n contents[_IERVTA] = (0, import_smithy_client.expectString)(output[_iERVTA]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_tV] != null) {\n contents[_TVo] = (0, import_smithy_client.expectString)(output[_tV]);\n }\n if (output[_tN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_tN]);\n }\n if (output[_nAo] != null) {\n contents[_NAo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nAo]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_IpamExternalResourceVerificationToken\");\nvar de_IpamExternalResourceVerificationTokenSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamExternalResourceVerificationToken(entry, context);\n });\n}, \"de_IpamExternalResourceVerificationTokenSet\");\nvar de_IpamOperatingRegion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n return contents;\n}, \"de_IpamOperatingRegion\");\nvar de_IpamOperatingRegionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamOperatingRegion(entry, context);\n });\n}, \"de_IpamOperatingRegionSet\");\nvar de_IpamOrganizationalUnitExclusion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oEP] != null) {\n contents[_OEP] = (0, import_smithy_client.expectString)(output[_oEP]);\n }\n return contents;\n}, \"de_IpamOrganizationalUnitExclusion\");\nvar de_IpamOrganizationalUnitExclusionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamOrganizationalUnitExclusion(entry, context);\n });\n}, \"de_IpamOrganizationalUnitExclusionSet\");\nvar de_IpamPool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iPIp] != null) {\n contents[_IPI] = (0, import_smithy_client.expectString)(output[_iPIp]);\n }\n if (output[_sIPI] != null) {\n contents[_SIPI] = (0, import_smithy_client.expectString)(output[_sIPI]);\n }\n if (output[_iPAp] != null) {\n contents[_IPApa] = (0, import_smithy_client.expectString)(output[_iPAp]);\n }\n if (output[_iSA] != null) {\n contents[_ISA] = (0, import_smithy_client.expectString)(output[_iSA]);\n }\n if (output[_iST] != null) {\n contents[_ISTp] = (0, import_smithy_client.expectString)(output[_iST]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_loc] != null) {\n contents[_L] = (0, import_smithy_client.expectString)(output[_loc]);\n }\n if (output[_pDoo] != null) {\n contents[_PDo] = (0, import_smithy_client.strictParseInt32)(output[_pDoo]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_aIu] != null) {\n contents[_AIu] = (0, import_smithy_client.parseBoolean)(output[_aIu]);\n }\n if (output[_pAu] != null) {\n contents[_PA] = (0, import_smithy_client.parseBoolean)(output[_pAu]);\n }\n if (output[_aF] != null) {\n contents[_AF] = (0, import_smithy_client.expectString)(output[_aF]);\n }\n if (output[_aMNL] != null) {\n contents[_AMNL] = (0, import_smithy_client.strictParseInt32)(output[_aMNL]);\n }\n if (output[_aMNLl] != null) {\n contents[_AMNLl] = (0, import_smithy_client.strictParseInt32)(output[_aMNLl]);\n }\n if (output[_aDNL] != null) {\n contents[_ADNL] = (0, import_smithy_client.strictParseInt32)(output[_aDNL]);\n }\n if (output.allocationResourceTagSet === \"\") {\n contents[_ARTl] = [];\n } else if (output[_aRTS] != null && output[_aRTS][_i] != null) {\n contents[_ARTl] = de_IpamResourceTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_aRTS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_aSw] != null) {\n contents[_ASw] = (0, import_smithy_client.expectString)(output[_aSw]);\n }\n if (output[_pIS] != null) {\n contents[_PIS] = (0, import_smithy_client.expectString)(output[_pIS]);\n }\n if (output[_sRo] != null) {\n contents[_SRo] = de_IpamPoolSourceResource(output[_sRo], context);\n }\n return contents;\n}, \"de_IpamPool\");\nvar de_IpamPoolAllocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_iPAI] != null) {\n contents[_IPAI] = (0, import_smithy_client.expectString)(output[_iPAI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rO] != null) {\n contents[_ROe] = (0, import_smithy_client.expectString)(output[_rO]);\n }\n return contents;\n}, \"de_IpamPoolAllocation\");\nvar de_IpamPoolAllocationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPoolAllocation(entry, context);\n });\n}, \"de_IpamPoolAllocationSet\");\nvar de_IpamPoolCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_fR] != null) {\n contents[_FR] = de_IpamPoolCidrFailureReason(output[_fR], context);\n }\n if (output[_iPCI] != null) {\n contents[_IPCI] = (0, import_smithy_client.expectString)(output[_iPCI]);\n }\n if (output[_nL] != null) {\n contents[_NL] = (0, import_smithy_client.strictParseInt32)(output[_nL]);\n }\n return contents;\n}, \"de_IpamPoolCidr\");\nvar de_IpamPoolCidrFailureReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_IpamPoolCidrFailureReason\");\nvar de_IpamPoolCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPoolCidr(entry, context);\n });\n}, \"de_IpamPoolCidrSet\");\nvar de_IpamPoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPool(entry, context);\n });\n}, \"de_IpamPoolSet\");\nvar de_IpamPoolSourceResource = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rO] != null) {\n contents[_ROe] = (0, import_smithy_client.expectString)(output[_rO]);\n }\n return contents;\n}, \"de_IpamPoolSourceResource\");\nvar de_IpamPublicAddressSecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n return contents;\n}, \"de_IpamPublicAddressSecurityGroup\");\nvar de_IpamPublicAddressSecurityGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPublicAddressSecurityGroup(entry, context);\n });\n}, \"de_IpamPublicAddressSecurityGroupList\");\nvar de_IpamPublicAddressTag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_IpamPublicAddressTag\");\nvar de_IpamPublicAddressTagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPublicAddressTag(entry, context);\n });\n}, \"de_IpamPublicAddressTagList\");\nvar de_IpamPublicAddressTags = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.eipTagSet === \"\") {\n contents[_ETi] = [];\n } else if (output[_eTSi] != null && output[_eTSi][_i] != null) {\n contents[_ETi] = de_IpamPublicAddressTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_eTSi][_i]), context);\n }\n return contents;\n}, \"de_IpamPublicAddressTags\");\nvar de_IpamResourceCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iSIp] != null) {\n contents[_ISI] = (0, import_smithy_client.expectString)(output[_iSIp]);\n }\n if (output[_iPIp] != null) {\n contents[_IPI] = (0, import_smithy_client.expectString)(output[_iPIp]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rNes] != null) {\n contents[_RNes] = (0, import_smithy_client.expectString)(output[_rNes]);\n }\n if (output[_rCe] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(output[_rCe]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.resourceTagSet === \"\") {\n contents[_RTesou] = [];\n } else if (output[_rTSe] != null && output[_rTSe][_i] != null) {\n contents[_RTesou] = de_IpamResourceTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTSe][_i]), context);\n }\n if (output[_iU] != null) {\n contents[_IUp] = (0, import_smithy_client.strictParseFloat)(output[_iU]);\n }\n if (output[_cSo] != null) {\n contents[_CSo] = (0, import_smithy_client.expectString)(output[_cSo]);\n }\n if (output[_mSa] != null) {\n contents[_MSa] = (0, import_smithy_client.expectString)(output[_mSa]);\n }\n if (output[_oSv] != null) {\n contents[_OSv] = (0, import_smithy_client.expectString)(output[_oSv]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_IpamResourceCidr\");\nvar de_IpamResourceCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceCidr(entry, context);\n });\n}, \"de_IpamResourceCidrSet\");\nvar de_IpamResourceDiscovery = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_iRDAp] != null) {\n contents[_IRDApa] = (0, import_smithy_client.expectString)(output[_iRDAp]);\n }\n if (output[_iRDR] != null) {\n contents[_IRDR] = (0, import_smithy_client.expectString)(output[_iRDR]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.operatingRegionSet === \"\") {\n contents[_OR] = [];\n } else if (output[_oRS] != null && output[_oRS][_i] != null) {\n contents[_OR] = de_IpamOperatingRegionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oRS][_i]), context);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.organizationalUnitExclusionSet === \"\") {\n contents[_OUE] = [];\n } else if (output[_oUES] != null && output[_oUES][_i] != null) {\n contents[_OUE] = de_IpamOrganizationalUnitExclusionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oUES][_i]), context);\n }\n return contents;\n}, \"de_IpamResourceDiscovery\");\nvar de_IpamResourceDiscoveryAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iRDAI] != null) {\n contents[_IRDAIp] = (0, import_smithy_client.expectString)(output[_iRDAI]);\n }\n if (output[_iRDAA] != null) {\n contents[_IRDAA] = (0, import_smithy_client.expectString)(output[_iRDAA]);\n }\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_rDS] != null) {\n contents[_RDS] = (0, import_smithy_client.expectString)(output[_rDS]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_IpamResourceDiscoveryAssociation\");\nvar de_IpamResourceDiscoveryAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceDiscoveryAssociation(entry, context);\n });\n}, \"de_IpamResourceDiscoveryAssociationSet\");\nvar de_IpamResourceDiscoverySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceDiscovery(entry, context);\n });\n}, \"de_IpamResourceDiscoverySet\");\nvar de_IpamResourceTag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_IpamResourceTag\");\nvar de_IpamResourceTagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceTag(entry, context);\n });\n}, \"de_IpamResourceTagList\");\nvar de_IpamScope = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iSIp] != null) {\n contents[_ISI] = (0, import_smithy_client.expectString)(output[_iSIp]);\n }\n if (output[_iSA] != null) {\n contents[_ISA] = (0, import_smithy_client.expectString)(output[_iSA]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_iST] != null) {\n contents[_ISTp] = (0, import_smithy_client.expectString)(output[_iST]);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_pCo] != null) {\n contents[_PCoo] = (0, import_smithy_client.strictParseInt32)(output[_pCo]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_IpamScope\");\nvar de_IpamScopeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamScope(entry, context);\n });\n}, \"de_IpamScopeSet\");\nvar de_IpamSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipam(entry, context);\n });\n}, \"de_IpamSet\");\nvar de_IpPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output.groups === \"\") {\n contents[_UIGP] = [];\n } else if (output[_gr] != null && output[_gr][_i] != null) {\n contents[_UIGP] = de_UserIdGroupPairList((0, import_smithy_client.getArrayIfSingleItem)(output[_gr][_i]), context);\n }\n if (output.ipRanges === \"\") {\n contents[_IRp] = [];\n } else if (output[_iRpa] != null && output[_iRpa][_i] != null) {\n contents[_IRp] = de_IpRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iRpa][_i]), context);\n }\n if (output.ipv6Ranges === \"\") {\n contents[_IRpv] = [];\n } else if (output[_iRpv] != null && output[_iRpv][_i] != null) {\n contents[_IRpv] = de_Ipv6RangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iRpv][_i]), context);\n }\n if (output.prefixListIds === \"\") {\n contents[_PLIr] = [];\n } else if (output[_pLIr] != null && output[_pLIr][_i] != null) {\n contents[_PLIr] = de_PrefixListIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_pLIr][_i]), context);\n }\n return contents;\n}, \"de_IpPermission\");\nvar de_IpPermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpPermission(entry, context);\n });\n}, \"de_IpPermissionList\");\nvar de_IpPrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_IpPrefixList\");\nvar de_IpRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cIi] != null) {\n contents[_CIi] = (0, import_smithy_client.expectString)(output[_cIi]);\n }\n return contents;\n}, \"de_IpRange\");\nvar de_IpRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpRange(entry, context);\n });\n}, \"de_IpRangeList\");\nvar de_IpRanges = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_IpRanges\");\nvar de_Ipv4PrefixesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv4PrefixSpecification(entry, context);\n });\n}, \"de_Ipv4PrefixesList\");\nvar de_Ipv4PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv4PrefixSpecificationRequest(entry, context);\n });\n}, \"de_Ipv4PrefixList\");\nvar de_Ipv4PrefixListResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv4PrefixSpecificationResponse(entry, context);\n });\n}, \"de_Ipv4PrefixListResponse\");\nvar de_Ipv4PrefixSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpv] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_iPpv]);\n }\n return contents;\n}, \"de_Ipv4PrefixSpecification\");\nvar de_Ipv4PrefixSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IPpvr] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_IPpvr]);\n }\n return contents;\n}, \"de_Ipv4PrefixSpecificationRequest\");\nvar de_Ipv4PrefixSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpv] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_iPpv]);\n }\n return contents;\n}, \"de_Ipv4PrefixSpecificationResponse\");\nvar de_Ipv6AddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_Ipv6AddressList\");\nvar de_Ipv6CidrAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCp] != null) {\n contents[_ICp] = (0, import_smithy_client.expectString)(output[_iCp]);\n }\n if (output[_aRs] != null) {\n contents[_ARs] = (0, import_smithy_client.expectString)(output[_aRs]);\n }\n return contents;\n}, \"de_Ipv6CidrAssociation\");\nvar de_Ipv6CidrAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6CidrAssociation(entry, context);\n });\n}, \"de_Ipv6CidrAssociationSet\");\nvar de_Ipv6CidrBlock = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n return contents;\n}, \"de_Ipv6CidrBlock\");\nvar de_Ipv6CidrBlockSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6CidrBlock(entry, context);\n });\n}, \"de_Ipv6CidrBlockSet\");\nvar de_Ipv6Pool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.poolCidrBlockSet === \"\") {\n contents[_PCBo] = [];\n } else if (output[_pCBS] != null && output[_pCBS][_i] != null) {\n contents[_PCBo] = de_PoolCidrBlocksSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pCBS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_Ipv6Pool\");\nvar de_Ipv6PoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6Pool(entry, context);\n });\n}, \"de_Ipv6PoolSet\");\nvar de_Ipv6PrefixesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6PrefixSpecification(entry, context);\n });\n}, \"de_Ipv6PrefixesList\");\nvar de_Ipv6PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6PrefixSpecificationRequest(entry, context);\n });\n}, \"de_Ipv6PrefixList\");\nvar de_Ipv6PrefixListResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6PrefixSpecificationResponse(entry, context);\n });\n}, \"de_Ipv6PrefixListResponse\");\nvar de_Ipv6PrefixSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpvr] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_iPpvr]);\n }\n return contents;\n}, \"de_Ipv6PrefixSpecification\");\nvar de_Ipv6PrefixSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IPpvre] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_IPpvre]);\n }\n return contents;\n}, \"de_Ipv6PrefixSpecificationRequest\");\nvar de_Ipv6PrefixSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpvr] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_iPpvr]);\n }\n return contents;\n}, \"de_Ipv6PrefixSpecificationResponse\");\nvar de_Ipv6Range = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cIid] != null) {\n contents[_CIid] = (0, import_smithy_client.expectString)(output[_cIid]);\n }\n return contents;\n}, \"de_Ipv6Range\");\nvar de_Ipv6RangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6Range(entry, context);\n });\n}, \"de_Ipv6RangeList\");\nvar de_KeyPair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_kFe] != null) {\n contents[_KFe] = (0, import_smithy_client.expectString)(output[_kFe]);\n }\n if (output[_kM] != null) {\n contents[_KM] = (0, import_smithy_client.expectString)(output[_kM]);\n }\n return contents;\n}, \"de_KeyPair\");\nvar de_KeyPairInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n if (output[_kT] != null) {\n contents[_KT] = (0, import_smithy_client.expectString)(output[_kT]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pK] != null) {\n contents[_PK] = (0, import_smithy_client.expectString)(output[_pK]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_kFe] != null) {\n contents[_KFe] = (0, import_smithy_client.expectString)(output[_kFe]);\n }\n return contents;\n}, \"de_KeyPairInfo\");\nvar de_KeyPairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_KeyPairInfo(entry, context);\n });\n}, \"de_KeyPairList\");\nvar de_LastError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n return contents;\n}, \"de_LastError\");\nvar de_LaunchPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oAr] != null) {\n contents[_OAr] = (0, import_smithy_client.expectString)(output[_oAr]);\n }\n if (output[_oUA] != null) {\n contents[_OUA] = (0, import_smithy_client.expectString)(output[_oUA]);\n }\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_g] != null) {\n contents[_Gr] = (0, import_smithy_client.expectString)(output[_g]);\n }\n return contents;\n}, \"de_LaunchPermission\");\nvar de_LaunchPermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchPermission(entry, context);\n });\n}, \"de_LaunchPermissionList\");\nvar de_LaunchSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uDs] != null) {\n contents[_UD] = (0, import_smithy_client.expectString)(output[_uDs]);\n }\n if (output[_aTdd] != null) {\n contents[_ATd] = (0, import_smithy_client.expectString)(output[_aTdd]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfileSpecification(output[_iIP], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_InstanceNetworkInterfaceSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_SpotPlacement(output[_pla], context);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output.groupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_SG] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_RunInstancesMonitoringEnabled(output[_mo], context);\n }\n return contents;\n}, \"de_LaunchSpecification\");\nvar de_LaunchSpecsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotFleetLaunchSpecification(entry, context);\n });\n}, \"de_LaunchSpecsList\");\nvar de_LaunchTemplate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_cBr] != null) {\n contents[_CBr] = (0, import_smithy_client.expectString)(output[_cBr]);\n }\n if (output[_dVN] != null) {\n contents[_DVN] = (0, import_smithy_client.strictParseLong)(output[_dVN]);\n }\n if (output[_lVN] != null) {\n contents[_LVN] = (0, import_smithy_client.strictParseLong)(output[_lVN]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_LaunchTemplate\");\nvar de_LaunchTemplateAndOverridesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTS] != null) {\n contents[_LTS] = de_FleetLaunchTemplateSpecification(output[_lTS], context);\n }\n if (output[_ov] != null) {\n contents[_Ov] = de_FleetLaunchTemplateOverrides(output[_ov], context);\n }\n return contents;\n}, \"de_LaunchTemplateAndOverridesResponse\");\nvar de_LaunchTemplateBlockDeviceMapping = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_vN] != null) {\n contents[_VN] = (0, import_smithy_client.expectString)(output[_vN]);\n }\n if (output[_eb] != null) {\n contents[_E] = de_LaunchTemplateEbsBlockDevice(output[_eb], context);\n }\n if (output[_nD] != null) {\n contents[_ND] = (0, import_smithy_client.expectString)(output[_nD]);\n }\n return contents;\n}, \"de_LaunchTemplateBlockDeviceMapping\");\nvar de_LaunchTemplateBlockDeviceMappingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateBlockDeviceMapping(entry, context);\n });\n}, \"de_LaunchTemplateBlockDeviceMappingList\");\nvar de_LaunchTemplateCapacityReservationSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRP] != null) {\n contents[_CRP] = (0, import_smithy_client.expectString)(output[_cRP]);\n }\n if (output[_cRT] != null) {\n contents[_CRTa] = de_CapacityReservationTargetResponse(output[_cRT], context);\n }\n return contents;\n}, \"de_LaunchTemplateCapacityReservationSpecificationResponse\");\nvar de_LaunchTemplateConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTS] != null) {\n contents[_LTS] = de_FleetLaunchTemplateSpecification(output[_lTS], context);\n }\n if (output.overrides === \"\") {\n contents[_Ov] = [];\n } else if (output[_ov] != null && output[_ov][_i] != null) {\n contents[_Ov] = de_LaunchTemplateOverridesList((0, import_smithy_client.getArrayIfSingleItem)(output[_ov][_i]), context);\n }\n return contents;\n}, \"de_LaunchTemplateConfig\");\nvar de_LaunchTemplateConfigList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateConfig(entry, context);\n });\n}, \"de_LaunchTemplateConfigList\");\nvar de_LaunchTemplateCpuOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCo] != null) {\n contents[_CC] = (0, import_smithy_client.strictParseInt32)(output[_cCo]);\n }\n if (output[_tPC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_tPC]);\n }\n if (output[_aSS] != null) {\n contents[_ASS] = (0, import_smithy_client.expectString)(output[_aSS]);\n }\n return contents;\n}, \"de_LaunchTemplateCpuOptions\");\nvar de_LaunchTemplateEbsBlockDevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_vIR] != null) {\n contents[_VIR] = (0, import_smithy_client.strictParseInt32)(output[_vIR]);\n }\n return contents;\n}, \"de_LaunchTemplateEbsBlockDevice\");\nvar de_LaunchTemplateElasticInferenceAcceleratorResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n return contents;\n}, \"de_LaunchTemplateElasticInferenceAcceleratorResponse\");\nvar de_LaunchTemplateElasticInferenceAcceleratorResponseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateElasticInferenceAcceleratorResponse(entry, context);\n });\n}, \"de_LaunchTemplateElasticInferenceAcceleratorResponseList\");\nvar de_LaunchTemplateEnaSrdSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_eSE]);\n }\n if (output[_eSUS] != null) {\n contents[_ESUS] = de_LaunchTemplateEnaSrdUdpSpecification(output[_eSUS], context);\n }\n return contents;\n}, \"de_LaunchTemplateEnaSrdSpecification\");\nvar de_LaunchTemplateEnaSrdUdpSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_eSUE]);\n }\n return contents;\n}, \"de_LaunchTemplateEnaSrdUdpSpecification\");\nvar de_LaunchTemplateEnclaveOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_LaunchTemplateEnclaveOptions\");\nvar de_LaunchTemplateHibernationOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_conf] != null) {\n contents[_Conf] = (0, import_smithy_client.parseBoolean)(output[_conf]);\n }\n return contents;\n}, \"de_LaunchTemplateHibernationOptions\");\nvar de_LaunchTemplateIamInstanceProfileSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_LaunchTemplateIamInstanceProfileSpecification\");\nvar de_LaunchTemplateInstanceMaintenanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRu] != null) {\n contents[_ARu] = (0, import_smithy_client.expectString)(output[_aRu]);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceMaintenanceOptions\");\nvar de_LaunchTemplateInstanceMarketOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mT] != null) {\n contents[_MT] = (0, import_smithy_client.expectString)(output[_mT]);\n }\n if (output[_sO] != null) {\n contents[_SO] = de_LaunchTemplateSpotMarketOptions(output[_sO], context);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceMarketOptions\");\nvar de_LaunchTemplateInstanceMetadataOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_hT] != null) {\n contents[_HT] = (0, import_smithy_client.expectString)(output[_hT]);\n }\n if (output[_hPRHL] != null) {\n contents[_HPRHL] = (0, import_smithy_client.strictParseInt32)(output[_hPRHL]);\n }\n if (output[_hE] != null) {\n contents[_HE] = (0, import_smithy_client.expectString)(output[_hE]);\n }\n if (output[_hPI] != null) {\n contents[_HPI] = (0, import_smithy_client.expectString)(output[_hPI]);\n }\n if (output[_iMT] != null) {\n contents[_IMT] = (0, import_smithy_client.expectString)(output[_iMT]);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceMetadataOptions\");\nvar de_LaunchTemplateInstanceNetworkInterfaceSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aCIA] != null) {\n contents[_ACIA] = (0, import_smithy_client.parseBoolean)(output[_aCIA]);\n }\n if (output[_aPIA] != null) {\n contents[_APIAs] = (0, import_smithy_client.parseBoolean)(output[_aPIA]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_gIr] != null) {\n contents[_G] = de_GroupIdStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_gIr]), context);\n }\n if (output[_iTnt] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_iTnt]);\n }\n if (output[_iAC] != null) {\n contents[_IAC] = (0, import_smithy_client.strictParseInt32)(output[_iAC]);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_InstanceIpv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_PrivateIpAddressSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output[_sPIAC] != null) {\n contents[_SPIAC] = (0, import_smithy_client.strictParseInt32)(output[_sPIAC]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_Ipv4PrefixListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output[_iPCp] != null) {\n contents[_IPCp] = (0, import_smithy_client.strictParseInt32)(output[_iPCp]);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_Ipv6PrefixListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_iPCpv] != null) {\n contents[_IPC] = (0, import_smithy_client.strictParseInt32)(output[_iPCpv]);\n }\n if (output[_pIri] != null) {\n contents[_PIr] = (0, import_smithy_client.parseBoolean)(output[_pIri]);\n }\n if (output[_eSS] != null) {\n contents[_ESS] = de_LaunchTemplateEnaSrdSpecification(output[_eSS], context);\n }\n if (output[_cTS] != null) {\n contents[_CTS] = de_ConnectionTrackingSpecification(output[_cTS], context);\n }\n if (output[_eQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_eQC]);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceNetworkInterfaceSpecification\");\nvar de_LaunchTemplateInstanceNetworkInterfaceSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateInstanceNetworkInterfaceSpecification(entry, context);\n });\n}, \"de_LaunchTemplateInstanceNetworkInterfaceSpecificationList\");\nvar de_LaunchTemplateLicenseConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lCA] != null) {\n contents[_LCA] = (0, import_smithy_client.expectString)(output[_lCA]);\n }\n return contents;\n}, \"de_LaunchTemplateLicenseConfiguration\");\nvar de_LaunchTemplateLicenseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateLicenseConfiguration(entry, context);\n });\n}, \"de_LaunchTemplateLicenseList\");\nvar de_LaunchTemplateNetworkPerformanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bW] != null) {\n contents[_BW] = (0, import_smithy_client.expectString)(output[_bW]);\n }\n return contents;\n}, \"de_LaunchTemplateNetworkPerformanceOptions\");\nvar de_LaunchTemplateOverrides = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_wC] != null) {\n contents[_WCe] = (0, import_smithy_client.strictParseFloat)(output[_wC]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseFloat)(output[_pri]);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n return contents;\n}, \"de_LaunchTemplateOverrides\");\nvar de_LaunchTemplateOverridesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateOverrides(entry, context);\n });\n}, \"de_LaunchTemplateOverridesList\");\nvar de_LaunchTemplatePlacement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_af] != null) {\n contents[_Af] = (0, import_smithy_client.expectString)(output[_af]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_sDp] != null) {\n contents[_SDp] = (0, import_smithy_client.expectString)(output[_sDp]);\n }\n if (output[_hRGA] != null) {\n contents[_HRGA] = (0, import_smithy_client.expectString)(output[_hRGA]);\n }\n if (output[_pN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_pN]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n return contents;\n}, \"de_LaunchTemplatePlacement\");\nvar de_LaunchTemplatePrivateDnsNameOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hTo] != null) {\n contents[_HTo] = (0, import_smithy_client.expectString)(output[_hTo]);\n }\n if (output[_eRNDAR] != null) {\n contents[_ERNDAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAR]);\n }\n if (output[_eRNDAAAAR] != null) {\n contents[_ERNDAAAAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAAAAR]);\n }\n return contents;\n}, \"de_LaunchTemplatePrivateDnsNameOptions\");\nvar de_LaunchTemplateSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplate(entry, context);\n });\n}, \"de_LaunchTemplateSet\");\nvar de_LaunchTemplatesMonitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_LaunchTemplatesMonitoring\");\nvar de_LaunchTemplateSpotMarketOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mP] != null) {\n contents[_MPa] = (0, import_smithy_client.expectString)(output[_mP]);\n }\n if (output[_sIT] != null) {\n contents[_SIT] = (0, import_smithy_client.expectString)(output[_sIT]);\n }\n if (output[_bDMl] != null) {\n contents[_BDMl] = (0, import_smithy_client.strictParseInt32)(output[_bDMl]);\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n return contents;\n}, \"de_LaunchTemplateSpotMarketOptions\");\nvar de_LaunchTemplateTagSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LaunchTemplateTagSpecification\");\nvar de_LaunchTemplateTagSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateTagSpecification(entry, context);\n });\n}, \"de_LaunchTemplateTagSpecificationList\");\nvar de_LaunchTemplateVersion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_vNe] != null) {\n contents[_VNe] = (0, import_smithy_client.strictParseLong)(output[_vNe]);\n }\n if (output[_vD] != null) {\n contents[_VD] = (0, import_smithy_client.expectString)(output[_vD]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_cBr] != null) {\n contents[_CBr] = (0, import_smithy_client.expectString)(output[_cBr]);\n }\n if (output[_dVe] != null) {\n contents[_DVef] = (0, import_smithy_client.parseBoolean)(output[_dVe]);\n }\n if (output[_lTD] != null) {\n contents[_LTD] = de_ResponseLaunchTemplateData(output[_lTD], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_LaunchTemplateVersion\");\nvar de_LaunchTemplateVersionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateVersion(entry, context);\n });\n}, \"de_LaunchTemplateVersionSet\");\nvar de_LicenseConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lCA] != null) {\n contents[_LCA] = (0, import_smithy_client.expectString)(output[_lCA]);\n }\n return contents;\n}, \"de_LicenseConfiguration\");\nvar de_LicenseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LicenseConfiguration(entry, context);\n });\n}, \"de_LicenseList\");\nvar de_ListImagesInRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.imageSet === \"\") {\n contents[_Ima] = [];\n } else if (output[_iSmag] != null && output[_iSmag][_i] != null) {\n contents[_Ima] = de_ImageRecycleBinInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSmag][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_ListImagesInRecycleBinResult\");\nvar de_ListSnapshotsInRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_SnapshotRecycleBinInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_ListSnapshotsInRecycleBinResult\");\nvar de_LoadBalancersConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cLBC] != null) {\n contents[_CLBC] = de_ClassicLoadBalancersConfig(output[_cLBC], context);\n }\n if (output[_tGCa] != null) {\n contents[_TGC] = de_TargetGroupsConfig(output[_tGCa], context);\n }\n return contents;\n}, \"de_LoadBalancersConfig\");\nvar de_LoadPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_g] != null) {\n contents[_Gr] = (0, import_smithy_client.expectString)(output[_g]);\n }\n return contents;\n}, \"de_LoadPermission\");\nvar de_LoadPermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadPermission(entry, context);\n });\n}, \"de_LoadPermissionList\");\nvar de_LocalGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LocalGateway\");\nvar de_LocalGatewayRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_cPI] != null) {\n contents[_CPIo] = (0, import_smithy_client.expectString)(output[_cPI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_dPLI] != null) {\n contents[_DPLI] = (0, import_smithy_client.expectString)(output[_dPLI]);\n }\n return contents;\n}, \"de_LocalGatewayRoute\");\nvar de_LocalGatewayRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRoute(entry, context);\n });\n}, \"de_LocalGatewayRouteList\");\nvar de_LocalGatewayRouteTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_mod] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_mod]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = de_StateReason(output[_sRt], context);\n }\n return contents;\n}, \"de_LocalGatewayRouteTable\");\nvar de_LocalGatewayRouteTableSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRouteTable(entry, context);\n });\n}, \"de_LocalGatewayRouteTableSet\");\nvar de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVIGAI] != null) {\n contents[_LGRTVIGAI] = (0, import_smithy_client.expectString)(output[_lGRTVIGAI]);\n }\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation\");\nvar de_LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation(entry, context);\n });\n}, \"de_LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet\");\nvar de_LocalGatewayRouteTableVpcAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVAI] != null) {\n contents[_LGRTVAI] = (0, import_smithy_client.expectString)(output[_lGRTVAI]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LocalGatewayRouteTableVpcAssociation\");\nvar de_LocalGatewayRouteTableVpcAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRouteTableVpcAssociation(entry, context);\n });\n}, \"de_LocalGatewayRouteTableVpcAssociationSet\");\nvar de_LocalGatewaySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGateway(entry, context);\n });\n}, \"de_LocalGatewaySet\");\nvar de_LocalGatewayVirtualInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVII] != null) {\n contents[_LGVII] = (0, import_smithy_client.expectString)(output[_lGVII]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output[_lGVIA] != null) {\n contents[_LGVIA] = (0, import_smithy_client.expectString)(output[_lGVIA]);\n }\n if (output[_oLI] != null) {\n contents[_OLI] = (0, import_smithy_client.expectString)(output[_oLI]);\n }\n if (output[_vl] != null) {\n contents[_Vl] = (0, import_smithy_client.strictParseInt32)(output[_vl]);\n }\n if (output[_lA] != null) {\n contents[_LA] = (0, import_smithy_client.expectString)(output[_lA]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_lBAo] != null) {\n contents[_LBA] = (0, import_smithy_client.strictParseInt32)(output[_lBAo]);\n }\n if (output[_pBA] != null) {\n contents[_PBA] = (0, import_smithy_client.strictParseInt32)(output[_pBA]);\n }\n if (output[_pBAE] != null) {\n contents[_PBAE] = (0, import_smithy_client.strictParseLong)(output[_pBAE]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cSon] != null) {\n contents[_CSon] = (0, import_smithy_client.expectString)(output[_cSon]);\n }\n return contents;\n}, \"de_LocalGatewayVirtualInterface\");\nvar de_LocalGatewayVirtualInterfaceGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output.localGatewayVirtualInterfaceIdSet === \"\") {\n contents[_LGVIIo] = [];\n } else if (output[_lGVIIS] != null && output[_lGVIIS][_i] != null) {\n contents[_LGVIIo] = de_LocalGatewayVirtualInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIIS][_i]), context);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_lBAo] != null) {\n contents[_LBA] = (0, import_smithy_client.strictParseInt32)(output[_lBAo]);\n }\n if (output[_lBAE] != null) {\n contents[_LBAE] = (0, import_smithy_client.strictParseLong)(output[_lBAE]);\n }\n if (output[_lGVIGA] != null) {\n contents[_LGVIGA] = (0, import_smithy_client.expectString)(output[_lGVIGA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cSon] != null) {\n contents[_CSon] = (0, import_smithy_client.expectString)(output[_cSon]);\n }\n return contents;\n}, \"de_LocalGatewayVirtualInterfaceGroup\");\nvar de_LocalGatewayVirtualInterfaceGroupSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayVirtualInterfaceGroup(entry, context);\n });\n}, \"de_LocalGatewayVirtualInterfaceGroupSet\");\nvar de_LocalGatewayVirtualInterfaceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_LocalGatewayVirtualInterfaceIdSet\");\nvar de_LocalGatewayVirtualInterfaceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayVirtualInterface(entry, context);\n });\n}, \"de_LocalGatewayVirtualInterfaceSet\");\nvar de_LocalStorageTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_LocalStorageTypeSet\");\nvar de_LockedSnapshotsInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_lSoc] != null) {\n contents[_LSoc] = (0, import_smithy_client.expectString)(output[_lSoc]);\n }\n if (output[_lDo] != null) {\n contents[_LDo] = (0, import_smithy_client.strictParseInt32)(output[_lDo]);\n }\n if (output[_cOP] != null) {\n contents[_COP] = (0, import_smithy_client.strictParseInt32)(output[_cOP]);\n }\n if (output[_cOPEO] != null) {\n contents[_COPEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cOPEO]));\n }\n if (output[_lCO] != null) {\n contents[_LCO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lCO]));\n }\n if (output[_lDST] != null) {\n contents[_LDST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lDST]));\n }\n if (output[_lEO] != null) {\n contents[_LEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lEO]));\n }\n return contents;\n}, \"de_LockedSnapshotsInfo\");\nvar de_LockedSnapshotsInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LockedSnapshotsInfo(entry, context);\n });\n}, \"de_LockedSnapshotsInfoList\");\nvar de_LockSnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_lSoc] != null) {\n contents[_LSoc] = (0, import_smithy_client.expectString)(output[_lSoc]);\n }\n if (output[_lDo] != null) {\n contents[_LDo] = (0, import_smithy_client.strictParseInt32)(output[_lDo]);\n }\n if (output[_cOP] != null) {\n contents[_COP] = (0, import_smithy_client.strictParseInt32)(output[_cOP]);\n }\n if (output[_cOPEO] != null) {\n contents[_COPEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cOPEO]));\n }\n if (output[_lCO] != null) {\n contents[_LCO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lCO]));\n }\n if (output[_lEO] != null) {\n contents[_LEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lEO]));\n }\n if (output[_lDST] != null) {\n contents[_LDST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lDST]));\n }\n return contents;\n}, \"de_LockSnapshotResult\");\nvar de_MacHost = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output.macOSLatestSupportedVersionSet === \"\") {\n contents[_MOSLSV] = [];\n } else if (output[_mOSLSVS] != null && output[_mOSLSVS][_i] != null) {\n contents[_MOSLSV] = de_MacOSVersionStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_mOSLSVS][_i]), context);\n }\n return contents;\n}, \"de_MacHost\");\nvar de_MacHostList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MacHost(entry, context);\n });\n}, \"de_MacHostList\");\nvar de_MacOSVersionStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_MacOSVersionStringList\");\nvar de_MaintenanceDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pM] != null) {\n contents[_PM] = (0, import_smithy_client.expectString)(output[_pM]);\n }\n if (output[_mAAA] != null) {\n contents[_MAAA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_mAAA]));\n }\n if (output[_lMA] != null) {\n contents[_LMA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lMA]));\n }\n return contents;\n}, \"de_MaintenanceDetails\");\nvar de_ManagedPrefixList = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_aF] != null) {\n contents[_AF] = (0, import_smithy_client.expectString)(output[_aF]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_pLA] != null) {\n contents[_PLAr] = (0, import_smithy_client.expectString)(output[_pLA]);\n }\n if (output[_pLN] != null) {\n contents[_PLN] = (0, import_smithy_client.expectString)(output[_pLN]);\n }\n if (output[_mE] != null) {\n contents[_ME] = (0, import_smithy_client.strictParseInt32)(output[_mE]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_ve]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_ManagedPrefixList\");\nvar de_ManagedPrefixListSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ManagedPrefixList(entry, context);\n });\n}, \"de_ManagedPrefixListSet\");\nvar de_MediaAcceleratorInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.accelerators === \"\") {\n contents[_Acc] = [];\n } else if (output[_acc] != null && output[_acc][_i] != null) {\n contents[_Acc] = de_MediaDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_acc][_i]), context);\n }\n if (output[_tMMIMB] != null) {\n contents[_TMMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tMMIMB]);\n }\n return contents;\n}, \"de_MediaAcceleratorInfo\");\nvar de_MediaDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_MediaDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_MediaDeviceInfo\");\nvar de_MediaDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MediaDeviceInfo(entry, context);\n });\n}, \"de_MediaDeviceInfoList\");\nvar de_MediaDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_MediaDeviceMemoryInfo\");\nvar de_MemoryGiBPerVCpu = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseFloat)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseFloat)(output[_ma]);\n }\n return contents;\n}, \"de_MemoryGiBPerVCpu\");\nvar de_MemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseLong)(output[_sIMB]);\n }\n return contents;\n}, \"de_MemoryInfo\");\nvar de_MemoryMiB = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_MemoryMiB\");\nvar de_MetricPoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.strictParseFloat)(output[_v]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_MetricPoint\");\nvar de_MetricPoints = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricPoint(entry, context);\n });\n}, \"de_MetricPoints\");\nvar de_ModifyAddressAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ad] != null) {\n contents[_Ad] = de_AddressAttribute(output[_ad], context);\n }\n return contents;\n}, \"de_ModifyAddressAttributeResult\");\nvar de_ModifyAvailabilityZoneGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyAvailabilityZoneGroupResult\");\nvar de_ModifyCapacityReservationFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyCapacityReservationFleetResult\");\nvar de_ModifyCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyCapacityReservationResult\");\nvar de_ModifyClientVpnEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyClientVpnEndpointResult\");\nvar de_ModifyDefaultCreditSpecificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iFCS] != null) {\n contents[_IFCS] = de_InstanceFamilyCreditSpecification(output[_iFCS], context);\n }\n return contents;\n}, \"de_ModifyDefaultCreditSpecificationResult\");\nvar de_ModifyEbsDefaultKmsKeyIdResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_ModifyEbsDefaultKmsKeyIdResult\");\nvar de_ModifyFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyFleetResult\");\nvar de_ModifyFpgaImageAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fIA] != null) {\n contents[_FIAp] = de_FpgaImageAttribute(output[_fIA], context);\n }\n return contents;\n}, \"de_ModifyFpgaImageAttributeResult\");\nvar de_ModifyHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_ResponseHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemList((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_ModifyHostsResult\");\nvar de_ModifyInstanceCapacityReservationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyInstanceCapacityReservationAttributesResult\");\nvar de_ModifyInstanceCpuOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_cCo] != null) {\n contents[_CC] = (0, import_smithy_client.strictParseInt32)(output[_cCo]);\n }\n if (output[_tPC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_tPC]);\n }\n return contents;\n}, \"de_ModifyInstanceCpuOptionsResult\");\nvar de_ModifyInstanceCreditSpecificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulInstanceCreditSpecificationSet === \"\") {\n contents[_SICS] = [];\n } else if (output[_sICSS] != null && output[_sICSS][_i] != null) {\n contents[_SICS] = de_SuccessfulInstanceCreditSpecificationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sICSS][_i]), context);\n }\n if (output.unsuccessfulInstanceCreditSpecificationSet === \"\") {\n contents[_UICS] = [];\n } else if (output[_uICSS] != null && output[_uICSS][_i] != null) {\n contents[_UICS] = de_UnsuccessfulInstanceCreditSpecificationSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_uICSS][_i]),\n context\n );\n }\n return contents;\n}, \"de_ModifyInstanceCreditSpecificationResult\");\nvar de_ModifyInstanceEventStartTimeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ev] != null) {\n contents[_Eve] = de_InstanceStatusEvent(output[_ev], context);\n }\n return contents;\n}, \"de_ModifyInstanceEventStartTimeResult\");\nvar de_ModifyInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_ModifyInstanceEventWindowResult\");\nvar de_ModifyInstanceMaintenanceOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_aRu] != null) {\n contents[_ARu] = (0, import_smithy_client.expectString)(output[_aRu]);\n }\n return contents;\n}, \"de_ModifyInstanceMaintenanceOptionsResult\");\nvar de_ModifyInstanceMetadataDefaultsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyInstanceMetadataDefaultsResult\");\nvar de_ModifyInstanceMetadataOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iMO] != null) {\n contents[_IMOn] = de_InstanceMetadataOptionsResponse(output[_iMO], context);\n }\n return contents;\n}, \"de_ModifyInstanceMetadataOptionsResult\");\nvar de_ModifyInstanceNetworkPerformanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_bW] != null) {\n contents[_BW] = (0, import_smithy_client.expectString)(output[_bW]);\n }\n return contents;\n}, \"de_ModifyInstanceNetworkPerformanceResult\");\nvar de_ModifyInstancePlacementResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyInstancePlacementResult\");\nvar de_ModifyIpamPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPp] != null) {\n contents[_IPpa] = de_IpamPool(output[_iPp], context);\n }\n return contents;\n}, \"de_ModifyIpamPoolResult\");\nvar de_ModifyIpamResourceCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRC] != null) {\n contents[_IRCp] = de_IpamResourceCidr(output[_iRC], context);\n }\n return contents;\n}, \"de_ModifyIpamResourceCidrResult\");\nvar de_ModifyIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRD] != null) {\n contents[_IRD] = de_IpamResourceDiscovery(output[_iRD], context);\n }\n return contents;\n}, \"de_ModifyIpamResourceDiscoveryResult\");\nvar de_ModifyIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ip] != null) {\n contents[_Ipa] = de_Ipam(output[_ip], context);\n }\n return contents;\n}, \"de_ModifyIpamResult\");\nvar de_ModifyIpamScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iS] != null) {\n contents[_ISpa] = de_IpamScope(output[_iS], context);\n }\n return contents;\n}, \"de_ModifyIpamScopeResult\");\nvar de_ModifyLaunchTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lT] != null) {\n contents[_LTa] = de_LaunchTemplate(output[_lT], context);\n }\n return contents;\n}, \"de_ModifyLaunchTemplateResult\");\nvar de_ModifyLocalGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_LocalGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_ModifyLocalGatewayRouteResult\");\nvar de_ModifyManagedPrefixListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_ModifyManagedPrefixListResult\");\nvar de_ModifyPrivateDnsNameOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyPrivateDnsNameOptionsResult\");\nvar de_ModifyReservedInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIMI] != null) {\n contents[_RIMIe] = (0, import_smithy_client.expectString)(output[_rIMI]);\n }\n return contents;\n}, \"de_ModifyReservedInstancesResult\");\nvar de_ModifyRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSo] != null) {\n contents[_RSo] = de_RouteServer(output[_rSo], context);\n }\n return contents;\n}, \"de_ModifyRouteServerResult\");\nvar de_ModifySecurityGroupRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifySecurityGroupRulesResult\");\nvar de_ModifySnapshotTierResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_tST] != null) {\n contents[_TST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tST]));\n }\n return contents;\n}, \"de_ModifySnapshotTierResult\");\nvar de_ModifySpotFleetRequestResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifySpotFleetRequestResponse\");\nvar de_ModifyTrafficMirrorFilterNetworkServicesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMF] != null) {\n contents[_TMF] = de_TrafficMirrorFilter(output[_tMF], context);\n }\n return contents;\n}, \"de_ModifyTrafficMirrorFilterNetworkServicesResult\");\nvar de_ModifyTrafficMirrorFilterRuleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFR] != null) {\n contents[_TMFR] = de_TrafficMirrorFilterRule(output[_tMFR], context);\n }\n return contents;\n}, \"de_ModifyTrafficMirrorFilterRuleResult\");\nvar de_ModifyTrafficMirrorSessionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMS] != null) {\n contents[_TMS] = de_TrafficMirrorSession(output[_tMS], context);\n }\n return contents;\n}, \"de_ModifyTrafficMirrorSessionResult\");\nvar de_ModifyTransitGatewayPrefixListReferenceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPLR] != null) {\n contents[_TGPLR] = de_TransitGatewayPrefixListReference(output[_tGPLR], context);\n }\n return contents;\n}, \"de_ModifyTransitGatewayPrefixListReferenceResult\");\nvar de_ModifyTransitGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tG] != null) {\n contents[_TGr] = de_TransitGateway(output[_tG], context);\n }\n return contents;\n}, \"de_ModifyTransitGatewayResult\");\nvar de_ModifyTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_ModifyTransitGatewayVpcAttachmentResult\");\nvar de_ModifyVerifiedAccessEndpointPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessEndpointPolicyResult\");\nvar de_ModifyVerifiedAccessEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAE] != null) {\n contents[_VAE] = de_VerifiedAccessEndpoint(output[_vAE], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessEndpointResult\");\nvar de_ModifyVerifiedAccessGroupPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessGroupPolicyResult\");\nvar de_ModifyVerifiedAccessGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAG] != null) {\n contents[_VAG] = de_VerifiedAccessGroup(output[_vAG], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessGroupResult\");\nvar de_ModifyVerifiedAccessInstanceLoggingConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lC] != null) {\n contents[_LCo] = de_VerifiedAccessInstanceLoggingConfiguration(output[_lC], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessInstanceLoggingConfigurationResult\");\nvar de_ModifyVerifiedAccessInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessInstanceResult\");\nvar de_ModifyVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessTrustProviderResult\");\nvar de_ModifyVolumeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vM] != null) {\n contents[_VMol] = de_VolumeModification(output[_vM], context);\n }\n return contents;\n}, \"de_ModifyVolumeResult\");\nvar de_ModifyVpcBlockPublicAccessExclusionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAE] != null) {\n contents[_VBPAE] = de_VpcBlockPublicAccessExclusion(output[_vBPAE], context);\n }\n return contents;\n}, \"de_ModifyVpcBlockPublicAccessExclusionResult\");\nvar de_ModifyVpcBlockPublicAccessOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAO] != null) {\n contents[_VBPAO] = de_VpcBlockPublicAccessOptions(output[_vBPAO], context);\n }\n return contents;\n}, \"de_ModifyVpcBlockPublicAccessOptionsResult\");\nvar de_ModifyVpcEndpointConnectionNotificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointConnectionNotificationResult\");\nvar de_ModifyVpcEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointResult\");\nvar de_ModifyVpcEndpointServiceConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointServiceConfigurationResult\");\nvar de_ModifyVpcEndpointServicePayerResponsibilityResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointServicePayerResponsibilityResult\");\nvar de_ModifyVpcEndpointServicePermissionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addedPrincipalSet === \"\") {\n contents[_APd] = [];\n } else if (output[_aPS] != null && output[_aPS][_i] != null) {\n contents[_APd] = de_AddedPrincipalSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aPS][_i]), context);\n }\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointServicePermissionsResult\");\nvar de_ModifyVpcPeeringConnectionOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aPCO] != null) {\n contents[_APCO] = de_PeeringConnectionOptions(output[_aPCO], context);\n }\n if (output[_rPCO] != null) {\n contents[_RPCO] = de_PeeringConnectionOptions(output[_rPCO], context);\n }\n return contents;\n}, \"de_ModifyVpcPeeringConnectionOptionsResult\");\nvar de_ModifyVpcTenancyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcTenancyResult\");\nvar de_ModifyVpnConnectionOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnConnectionOptionsResult\");\nvar de_ModifyVpnConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnConnectionResult\");\nvar de_ModifyVpnTunnelCertificateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnTunnelCertificateResult\");\nvar de_ModifyVpnTunnelOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnTunnelOptionsResult\");\nvar de_Monitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_Monitoring\");\nvar de_MonitorInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_IMn] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_IMn] = de_InstanceMonitoringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_MonitorInstancesResult\");\nvar de_MoveAddressToVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_MoveAddressToVpcResult\");\nvar de_MoveByoipCidrToIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_MoveByoipCidrToIpamResult\");\nvar de_MoveCapacityReservationInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCR] != null) {\n contents[_SCR] = de_CapacityReservation(output[_sCR], context);\n }\n if (output[_dCR] != null) {\n contents[_DCRe] = de_CapacityReservation(output[_dCR], context);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n return contents;\n}, \"de_MoveCapacityReservationInstancesResult\");\nvar de_MovingAddressStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mSo] != null) {\n contents[_MSo] = (0, import_smithy_client.expectString)(output[_mSo]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_MovingAddressStatus\");\nvar de_MovingAddressStatusSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MovingAddressStatus(entry, context);\n });\n}, \"de_MovingAddressStatusSet\");\nvar de_NatGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_dTel] != null) {\n contents[_DTele] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTel]));\n }\n if (output[_fCa] != null) {\n contents[_FCa] = (0, import_smithy_client.expectString)(output[_fCa]);\n }\n if (output[_fM] != null) {\n contents[_FM] = (0, import_smithy_client.expectString)(output[_fM]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output[_pB] != null) {\n contents[_PB] = de_ProvisionedBandwidth(output[_pB], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cTonn] != null) {\n contents[_CTo] = (0, import_smithy_client.expectString)(output[_cTonn]);\n }\n return contents;\n}, \"de_NatGateway\");\nvar de_NatGatewayAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pIriv] != null) {\n contents[_PIri] = (0, import_smithy_client.expectString)(output[_pIriv]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iPsr] != null) {\n contents[_IPsr] = (0, import_smithy_client.parseBoolean)(output[_iPsr]);\n }\n if (output[_fM] != null) {\n contents[_FM] = (0, import_smithy_client.expectString)(output[_fM]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_NatGatewayAddress\");\nvar de_NatGatewayAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NatGatewayAddress(entry, context);\n });\n}, \"de_NatGatewayAddressList\");\nvar de_NatGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NatGateway(entry, context);\n });\n}, \"de_NatGatewayList\");\nvar de_NativeApplicationOidcOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pSKE] != null) {\n contents[_PSKE] = (0, import_smithy_client.expectString)(output[_pSKE]);\n }\n if (output[_is] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_is]);\n }\n if (output[_aE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_aE]);\n }\n if (output[_tEo] != null) {\n contents[_TEo] = (0, import_smithy_client.expectString)(output[_tEo]);\n }\n if (output[_uIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_uIE]);\n }\n if (output[_cIli] != null) {\n contents[_CIl] = (0, import_smithy_client.expectString)(output[_cIli]);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n return contents;\n}, \"de_NativeApplicationOidcOptions\");\nvar de_NetworkAcl = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associationSet === \"\") {\n contents[_Ass] = [];\n } else if (output[_aSss] != null && output[_aSss][_i] != null) {\n contents[_Ass] = de_NetworkAclAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSss][_i]), context);\n }\n if (output.entrySet === \"\") {\n contents[_Ent] = [];\n } else if (output[_eSnt] != null && output[_eSnt][_i] != null) {\n contents[_Ent] = de_NetworkAclEntryList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSnt][_i]), context);\n }\n if (output[_def] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_def]);\n }\n if (output[_nAI] != null) {\n contents[_NAI] = (0, import_smithy_client.expectString)(output[_nAI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_NetworkAcl\");\nvar de_NetworkAclAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nAAI] != null) {\n contents[_NAAI] = (0, import_smithy_client.expectString)(output[_nAAI]);\n }\n if (output[_nAI] != null) {\n contents[_NAI] = (0, import_smithy_client.expectString)(output[_nAI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n return contents;\n}, \"de_NetworkAclAssociation\");\nvar de_NetworkAclAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkAclAssociation(entry, context);\n });\n}, \"de_NetworkAclAssociationList\");\nvar de_NetworkAclEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_e] != null) {\n contents[_Eg] = (0, import_smithy_client.parseBoolean)(output[_e]);\n }\n if (output[_iTC] != null) {\n contents[_ITC] = de_IcmpTypeCode(output[_iTC], context);\n }\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n if (output[_pRo] != null) {\n contents[_PR] = de_PortRange(output[_pRo], context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_rN] != null) {\n contents[_RNu] = (0, import_smithy_client.strictParseInt32)(output[_rN]);\n }\n return contents;\n}, \"de_NetworkAclEntry\");\nvar de_NetworkAclEntryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkAclEntry(entry, context);\n });\n}, \"de_NetworkAclEntryList\");\nvar de_NetworkAclList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkAcl(entry, context);\n });\n}, \"de_NetworkAclList\");\nvar de_NetworkBandwidthGbps = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseFloat)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseFloat)(output[_ma]);\n }\n return contents;\n}, \"de_NetworkBandwidthGbps\");\nvar de_NetworkCardInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output[_nP] != null) {\n contents[_NP] = (0, import_smithy_client.expectString)(output[_nP]);\n }\n if (output[_mNI] != null) {\n contents[_MNI] = (0, import_smithy_client.strictParseInt32)(output[_mNI]);\n }\n if (output[_bBIG] != null) {\n contents[_BBIG] = (0, import_smithy_client.strictParseFloat)(output[_bBIG]);\n }\n if (output[_pBIG] != null) {\n contents[_PBIG] = (0, import_smithy_client.strictParseFloat)(output[_pBIG]);\n }\n if (output[_dEQCPI] != null) {\n contents[_DEQCPI] = (0, import_smithy_client.strictParseInt32)(output[_dEQCPI]);\n }\n if (output[_mEQC] != null) {\n contents[_MEQC] = (0, import_smithy_client.strictParseInt32)(output[_mEQC]);\n }\n if (output[_mEQCPI] != null) {\n contents[_MEQCPI] = (0, import_smithy_client.strictParseInt32)(output[_mEQCPI]);\n }\n return contents;\n}, \"de_NetworkCardInfo\");\nvar de_NetworkCardInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkCardInfo(entry, context);\n });\n}, \"de_NetworkCardInfoList\");\nvar de_NetworkInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nP] != null) {\n contents[_NP] = (0, import_smithy_client.expectString)(output[_nP]);\n }\n if (output[_mNI] != null) {\n contents[_MNI] = (0, import_smithy_client.strictParseInt32)(output[_mNI]);\n }\n if (output[_mNC] != null) {\n contents[_MNC] = (0, import_smithy_client.strictParseInt32)(output[_mNC]);\n }\n if (output[_dNCI] != null) {\n contents[_DNCI] = (0, import_smithy_client.strictParseInt32)(output[_dNCI]);\n }\n if (output.networkCards === \"\") {\n contents[_NC] = [];\n } else if (output[_nC] != null && output[_nC][_i] != null) {\n contents[_NC] = de_NetworkCardInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_nC][_i]), context);\n }\n if (output[_iAPI] != null) {\n contents[_IAPI] = (0, import_smithy_client.strictParseInt32)(output[_iAPI]);\n }\n if (output[_iAPIp] != null) {\n contents[_IAPIp] = (0, import_smithy_client.strictParseInt32)(output[_iAPIp]);\n }\n if (output[_iSpv] != null) {\n contents[_ISpv] = (0, import_smithy_client.parseBoolean)(output[_iSpv]);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = (0, import_smithy_client.expectString)(output[_eSna]);\n }\n if (output[_eSf] != null) {\n contents[_ESf] = (0, import_smithy_client.parseBoolean)(output[_eSf]);\n }\n if (output[_eIf] != null) {\n contents[_EIf] = de_EfaInfo(output[_eIf], context);\n }\n if (output[_eITSn] != null) {\n contents[_EITS] = (0, import_smithy_client.parseBoolean)(output[_eITSn]);\n }\n if (output[_eSSn] != null) {\n contents[_ESSn] = (0, import_smithy_client.parseBoolean)(output[_eSSn]);\n }\n if (output.bandwidthWeightings === \"\") {\n contents[_BWa] = [];\n } else if (output[_bWa] != null && output[_bWa][_i] != null) {\n contents[_BWa] = de_BandwidthWeightingTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_bWa][_i]), context);\n }\n if (output[_fEQS] != null) {\n contents[_FEQS] = (0, import_smithy_client.expectString)(output[_fEQS]);\n }\n return contents;\n}, \"de_NetworkInfo\");\nvar de_NetworkInsightsAccessScope = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output[_nIASA] != null) {\n contents[_NIASAe] = (0, import_smithy_client.expectString)(output[_nIASA]);\n }\n if (output[_cDre] != null) {\n contents[_CDrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cDre]));\n }\n if (output[_uDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uDp]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAccessScope\");\nvar de_NetworkInsightsAccessScopeAnalysis = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n if (output[_nIASAA] != null) {\n contents[_NIASAA] = (0, import_smithy_client.expectString)(output[_nIASAA]);\n }\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_wM] != null) {\n contents[_WM] = (0, import_smithy_client.expectString)(output[_wM]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_fFi] != null) {\n contents[_FFi] = (0, import_smithy_client.expectString)(output[_fFi]);\n }\n if (output[_aEC] != null) {\n contents[_AEC] = (0, import_smithy_client.strictParseInt32)(output[_aEC]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAccessScopeAnalysis\");\nvar de_NetworkInsightsAccessScopeAnalysisList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsAccessScopeAnalysis(entry, context);\n });\n}, \"de_NetworkInsightsAccessScopeAnalysisList\");\nvar de_NetworkInsightsAccessScopeContent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output.matchPathSet === \"\") {\n contents[_MP] = [];\n } else if (output[_mPSa] != null && output[_mPSa][_i] != null) {\n contents[_MP] = de_AccessScopePathList((0, import_smithy_client.getArrayIfSingleItem)(output[_mPSa][_i]), context);\n }\n if (output.excludePathSet === \"\") {\n contents[_EP] = [];\n } else if (output[_ePS] != null && output[_ePS][_i] != null) {\n contents[_EP] = de_AccessScopePathList((0, import_smithy_client.getArrayIfSingleItem)(output[_ePS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAccessScopeContent\");\nvar de_NetworkInsightsAccessScopeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsAccessScope(entry, context);\n });\n}, \"de_NetworkInsightsAccessScopeList\");\nvar de_NetworkInsightsAnalysis = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIAI] != null) {\n contents[_NIAI] = (0, import_smithy_client.expectString)(output[_nIAI]);\n }\n if (output[_nIAA] != null) {\n contents[_NIAA] = (0, import_smithy_client.expectString)(output[_nIAA]);\n }\n if (output[_nIPI] != null) {\n contents[_NIPI] = (0, import_smithy_client.expectString)(output[_nIPI]);\n }\n if (output.additionalAccountSet === \"\") {\n contents[_AAd] = [];\n } else if (output[_aASd] != null && output[_aASd][_i] != null) {\n contents[_AAd] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aASd][_i]), context);\n }\n if (output.filterInArnSet === \"\") {\n contents[_FIA] = [];\n } else if (output[_fIAS] != null && output[_fIAS][_i] != null) {\n contents[_FIA] = de_ArnList((0, import_smithy_client.getArrayIfSingleItem)(output[_fIAS][_i]), context);\n }\n if (output.filterOutArnSet === \"\") {\n contents[_FOA] = [];\n } else if (output[_fOAS] != null && output[_fOAS][_i] != null) {\n contents[_FOA] = de_ArnList((0, import_smithy_client.getArrayIfSingleItem)(output[_fOAS][_i]), context);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_wM] != null) {\n contents[_WM] = (0, import_smithy_client.expectString)(output[_wM]);\n }\n if (output[_nPF] != null) {\n contents[_NPF] = (0, import_smithy_client.parseBoolean)(output[_nPF]);\n }\n if (output.forwardPathComponentSet === \"\") {\n contents[_FPC] = [];\n } else if (output[_fPCS] != null && output[_fPCS][_i] != null) {\n contents[_FPC] = de_PathComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_fPCS][_i]), context);\n }\n if (output.returnPathComponentSet === \"\") {\n contents[_RPC] = [];\n } else if (output[_rPCS] != null && output[_rPCS][_i] != null) {\n contents[_RPC] = de_PathComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_rPCS][_i]), context);\n }\n if (output.explanationSet === \"\") {\n contents[_Ex] = [];\n } else if (output[_eSx] != null && output[_eSx][_i] != null) {\n contents[_Ex] = de_ExplanationList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSx][_i]), context);\n }\n if (output.alternatePathHintSet === \"\") {\n contents[_APH] = [];\n } else if (output[_aPHS] != null && output[_aPHS][_i] != null) {\n contents[_APH] = de_AlternatePathHintList((0, import_smithy_client.getArrayIfSingleItem)(output[_aPHS][_i]), context);\n }\n if (output.suggestedAccountSet === \"\") {\n contents[_SAu] = [];\n } else if (output[_sASu] != null && output[_sASu][_i] != null) {\n contents[_SAu] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sASu][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAnalysis\");\nvar de_NetworkInsightsAnalysisList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsAnalysis(entry, context);\n });\n}, \"de_NetworkInsightsAnalysisList\");\nvar de_NetworkInsightsPath = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIPI] != null) {\n contents[_NIPI] = (0, import_smithy_client.expectString)(output[_nIPI]);\n }\n if (output[_nIPA] != null) {\n contents[_NIPA] = (0, import_smithy_client.expectString)(output[_nIPA]);\n }\n if (output[_cDre] != null) {\n contents[_CDrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cDre]));\n }\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_d] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_d]);\n }\n if (output[_sA] != null) {\n contents[_SAour] = (0, import_smithy_client.expectString)(output[_sA]);\n }\n if (output[_dA] != null) {\n contents[_DAesti] = (0, import_smithy_client.expectString)(output[_dA]);\n }\n if (output[_sIo] != null) {\n contents[_SIo] = (0, import_smithy_client.expectString)(output[_sIo]);\n }\n if (output[_dIes] != null) {\n contents[_DIest] = (0, import_smithy_client.expectString)(output[_dIes]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_dPes] != null) {\n contents[_DPe] = (0, import_smithy_client.strictParseInt32)(output[_dPes]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_fAS] != null) {\n contents[_FAS] = de_PathFilter(output[_fAS], context);\n }\n if (output[_fAD] != null) {\n contents[_FAD] = de_PathFilter(output[_fAD], context);\n }\n return contents;\n}, \"de_NetworkInsightsPath\");\nvar de_NetworkInsightsPathList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsPath(entry, context);\n });\n}, \"de_NetworkInsightsPathList\");\nvar de_NetworkInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_NetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_at] != null) {\n contents[_Att] = de_NetworkInterfaceAttachment(output[_at], context);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_cTC] != null) {\n contents[_CTC] = de_ConnectionTrackingConfiguration(output[_cTC], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_iTnt] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_iTnt]);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_NetworkInterfaceIpv6AddressesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_mAa] != null) {\n contents[_MAa] = (0, import_smithy_client.expectString)(output[_mAa]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_NetworkInterfacePrivateIpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_Ipv4PrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_Ipv6PrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_rIeq] != null) {\n contents[_RIeq] = (0, import_smithy_client.expectString)(output[_rIeq]);\n }\n if (output[_rM] != null) {\n contents[_RMe] = (0, import_smithy_client.parseBoolean)(output[_rM]);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = (0, import_smithy_client.parseBoolean)(output[_sDC]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output.tagSet === \"\") {\n contents[_TSag] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_TSag] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_dAIT] != null) {\n contents[_DAIT] = (0, import_smithy_client.parseBoolean)(output[_dAIT]);\n }\n if (output[_iN] != null) {\n contents[_IN] = (0, import_smithy_client.parseBoolean)(output[_iN]);\n }\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_NetworkInterface\");\nvar de_NetworkInterfaceAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iOIp] != null) {\n contents[_IOI] = (0, import_smithy_client.expectString)(output[_iOIp]);\n }\n if (output[_pDNu] != null) {\n contents[_PDNu] = (0, import_smithy_client.expectString)(output[_pDNu]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n return contents;\n}, \"de_NetworkInterfaceAssociation\");\nvar de_NetworkInterfaceAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iOIn] != null) {\n contents[_IOIn] = (0, import_smithy_client.expectString)(output[_iOIn]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_eSS] != null) {\n contents[_ESS] = de_AttachmentEnaSrdSpecification(output[_eSS], context);\n }\n if (output[_eQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_eQC]);\n }\n return contents;\n}, \"de_NetworkInterfaceAttachment\");\nvar de_NetworkInterfaceCount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_NetworkInterfaceCount\");\nvar de_NetworkInterfaceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_NetworkInterfaceIdSet\");\nvar de_NetworkInterfaceIpv6Address = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_iPI] != null) {\n contents[_IPIs] = (0, import_smithy_client.parseBoolean)(output[_iPI]);\n }\n return contents;\n}, \"de_NetworkInterfaceIpv6Address\");\nvar de_NetworkInterfaceIpv6AddressesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterfaceIpv6Address(entry, context);\n });\n}, \"de_NetworkInterfaceIpv6AddressesList\");\nvar de_NetworkInterfaceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterface(entry, context);\n });\n}, \"de_NetworkInterfaceList\");\nvar de_NetworkInterfacePermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIPIe] != null) {\n contents[_NIPIe] = (0, import_smithy_client.expectString)(output[_nIPIe]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_aAI] != null) {\n contents[_AAI] = (0, import_smithy_client.expectString)(output[_aAI]);\n }\n if (output[_aSw] != null) {\n contents[_ASw] = (0, import_smithy_client.expectString)(output[_aSw]);\n }\n if (output[_per] != null) {\n contents[_Pe] = (0, import_smithy_client.expectString)(output[_per]);\n }\n if (output[_pSe] != null) {\n contents[_PSer] = de_NetworkInterfacePermissionState(output[_pSe], context);\n }\n return contents;\n}, \"de_NetworkInterfacePermission\");\nvar de_NetworkInterfacePermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterfacePermission(entry, context);\n });\n}, \"de_NetworkInterfacePermissionList\");\nvar de_NetworkInterfacePermissionState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_NetworkInterfacePermissionState\");\nvar de_NetworkInterfacePrivateIpAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_NetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_prim] != null) {\n contents[_Prim] = (0, import_smithy_client.parseBoolean)(output[_prim]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_NetworkInterfacePrivateIpAddress\");\nvar de_NetworkInterfacePrivateIpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterfacePrivateIpAddress(entry, context);\n });\n}, \"de_NetworkInterfacePrivateIpAddressList\");\nvar de_NetworkNodesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_NetworkNodesList\");\nvar de_NeuronDeviceCoreInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.strictParseInt32)(output[_ve]);\n }\n return contents;\n}, \"de_NeuronDeviceCoreInfo\");\nvar de_NeuronDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_cIor] != null) {\n contents[_CIor] = de_NeuronDeviceCoreInfo(output[_cIor], context);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_NeuronDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_NeuronDeviceInfo\");\nvar de_NeuronDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NeuronDeviceInfo(entry, context);\n });\n}, \"de_NeuronDeviceInfoList\");\nvar de_NeuronDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_NeuronDeviceMemoryInfo\");\nvar de_NeuronInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.neuronDevices === \"\") {\n contents[_NDe] = [];\n } else if (output[_nDe] != null && output[_nDe][_i] != null) {\n contents[_NDe] = de_NeuronDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_nDe][_i]), context);\n }\n if (output[_tNDMIMB] != null) {\n contents[_TNDMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tNDMIMB]);\n }\n return contents;\n}, \"de_NeuronInfo\");\nvar de_NitroTpmInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.supportedVersions === \"\") {\n contents[_SVu] = [];\n } else if (output[_sVu] != null && output[_sVu][_i] != null) {\n contents[_SVu] = de_NitroTpmSupportedVersionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_sVu][_i]), context);\n }\n return contents;\n}, \"de_NitroTpmInfo\");\nvar de_NitroTpmSupportedVersionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_NitroTpmSupportedVersionsList\");\nvar de_OccurrenceDaySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_OccurrenceDaySet\");\nvar de_OidcOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_is] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_is]);\n }\n if (output[_aE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_aE]);\n }\n if (output[_tEo] != null) {\n contents[_TEo] = (0, import_smithy_client.expectString)(output[_tEo]);\n }\n if (output[_uIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_uIE]);\n }\n if (output[_cIli] != null) {\n contents[_CIl] = (0, import_smithy_client.expectString)(output[_cIli]);\n }\n if (output[_cSl] != null) {\n contents[_CSl] = (0, import_smithy_client.expectString)(output[_cSl]);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n return contents;\n}, \"de_OidcOptions\");\nvar de_OnDemandOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_cRO] != null) {\n contents[_CRO] = de_CapacityReservationOptions(output[_cRO], context);\n }\n if (output[_sITi] != null) {\n contents[_SITi] = (0, import_smithy_client.parseBoolean)(output[_sITi]);\n }\n if (output[_sAZ] != null) {\n contents[_SAZ] = (0, import_smithy_client.parseBoolean)(output[_sAZ]);\n }\n if (output[_mTC] != null) {\n contents[_MTC] = (0, import_smithy_client.strictParseInt32)(output[_mTC]);\n }\n if (output[_mTP] != null) {\n contents[_MTP] = (0, import_smithy_client.expectString)(output[_mTP]);\n }\n return contents;\n}, \"de_OnDemandOptions\");\nvar de_OperatorResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mana] != null) {\n contents[_Mana] = (0, import_smithy_client.parseBoolean)(output[_mana]);\n }\n if (output[_p] != null) {\n contents[_Prin] = (0, import_smithy_client.expectString)(output[_p]);\n }\n return contents;\n}, \"de_OperatorResponse\");\nvar de_OutpostLag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_oLI] != null) {\n contents[_OLI] = (0, import_smithy_client.expectString)(output[_oLI]);\n }\n if (output.localGatewayVirtualInterfaceIdSet === \"\") {\n contents[_LGVIIo] = [];\n } else if (output[_lGVIIS] != null && output[_lGVIIS][_i] != null) {\n contents[_LGVIIo] = de_LocalGatewayVirtualInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIIS][_i]), context);\n }\n if (output.serviceLinkVirtualInterfaceIdSet === \"\") {\n contents[_SLVII] = [];\n } else if (output[_sLVIIS] != null && output[_sLVIIS][_i] != null) {\n contents[_SLVII] = de_ServiceLinkVirtualInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sLVIIS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_OutpostLag\");\nvar de_OutpostLagSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_OutpostLag(entry, context);\n });\n}, \"de_OutpostLagSet\");\nvar de_PacketHeaderStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.sourceAddressSet === \"\") {\n contents[_SAo] = [];\n } else if (output[_sAS] != null && output[_sAS][_i] != null) {\n contents[_SAo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sAS][_i]), context);\n }\n if (output.destinationAddressSet === \"\") {\n contents[_DAes] = [];\n } else if (output[_dAS] != null && output[_dAS][_i] != null) {\n contents[_DAes] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dAS][_i]), context);\n }\n if (output.sourcePortSet === \"\") {\n contents[_SPo] = [];\n } else if (output[_sPS] != null && output[_sPS][_i] != null) {\n contents[_SPo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPS][_i]), context);\n }\n if (output.destinationPortSet === \"\") {\n contents[_DPes] = [];\n } else if (output[_dPS] != null && output[_dPS][_i] != null) {\n contents[_DPes] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPS][_i]), context);\n }\n if (output.sourcePrefixListSet === \"\") {\n contents[_SPL] = [];\n } else if (output[_sPLS] != null && output[_sPLS][_i] != null) {\n contents[_SPL] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPLS][_i]), context);\n }\n if (output.destinationPrefixListSet === \"\") {\n contents[_DPLe] = [];\n } else if (output[_dPLS] != null && output[_dPLS][_i] != null) {\n contents[_DPLe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPLS][_i]), context);\n }\n if (output.protocolSet === \"\") {\n contents[_Pro] = [];\n } else if (output[_pSro] != null && output[_pSro][_i] != null) {\n contents[_Pro] = de_ProtocolList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSro][_i]), context);\n }\n return contents;\n}, \"de_PacketHeaderStatement\");\nvar de_PathComponent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sNe] != null) {\n contents[_SNeq] = (0, import_smithy_client.strictParseInt32)(output[_sNe]);\n }\n if (output[_aRc] != null) {\n contents[_ARcl] = de_AnalysisAclRule(output[_aRc], context);\n }\n if (output[_aTtt] != null) {\n contents[_ATtta] = de_AnalysisComponent(output[_aTtt], context);\n }\n if (output[_c] != null) {\n contents[_Com] = de_AnalysisComponent(output[_c], context);\n }\n if (output[_dV] != null) {\n contents[_DVest] = de_AnalysisComponent(output[_dV], context);\n }\n if (output[_oH] != null) {\n contents[_OH] = de_AnalysisPacketHeader(output[_oH], context);\n }\n if (output[_iHn] != null) {\n contents[_IHn] = de_AnalysisPacketHeader(output[_iHn], context);\n }\n if (output[_rTR] != null) {\n contents[_RTR] = de_AnalysisRouteTableRoute(output[_rTR], context);\n }\n if (output[_sGR] != null) {\n contents[_SGRe] = de_AnalysisSecurityGroupRule(output[_sGR], context);\n }\n if (output[_sV] != null) {\n contents[_SVo] = de_AnalysisComponent(output[_sV], context);\n }\n if (output[_su] != null) {\n contents[_Su] = de_AnalysisComponent(output[_su], context);\n }\n if (output[_vp] != null) {\n contents[_Vp] = de_AnalysisComponent(output[_vp], context);\n }\n if (output.additionalDetailSet === \"\") {\n contents[_ADd] = [];\n } else if (output[_aDS] != null && output[_aDS][_i] != null) {\n contents[_ADd] = de_AdditionalDetailList((0, import_smithy_client.getArrayIfSingleItem)(output[_aDS][_i]), context);\n }\n if (output[_tG] != null) {\n contents[_TGr] = de_AnalysisComponent(output[_tG], context);\n }\n if (output[_tGRTR] != null) {\n contents[_TGRTR] = de_TransitGatewayRouteTableRoute(output[_tGRTR], context);\n }\n if (output.explanationSet === \"\") {\n contents[_Ex] = [];\n } else if (output[_eSx] != null && output[_eSx][_i] != null) {\n contents[_Ex] = de_ExplanationList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSx][_i]), context);\n }\n if (output[_eLBL] != null) {\n contents[_ELBL] = de_AnalysisComponent(output[_eLBL], context);\n }\n if (output[_fSR] != null) {\n contents[_FSRi] = de_FirewallStatelessRule(output[_fSR], context);\n }\n if (output[_fSRi] != null) {\n contents[_FSRir] = de_FirewallStatefulRule(output[_fSRi], context);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n return contents;\n}, \"de_PathComponent\");\nvar de_PathComponentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PathComponent(entry, context);\n });\n}, \"de_PathComponentList\");\nvar de_PathFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sAo] != null) {\n contents[_SAou] = (0, import_smithy_client.expectString)(output[_sAo]);\n }\n if (output[_sPR] != null) {\n contents[_SPR] = de_FilterPortRange(output[_sPR], context);\n }\n if (output[_dAe] != null) {\n contents[_DAest] = (0, import_smithy_client.expectString)(output[_dAe]);\n }\n if (output[_dPR] != null) {\n contents[_DPR] = de_FilterPortRange(output[_dPR], context);\n }\n return contents;\n}, \"de_PathFilter\");\nvar de_PathStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pHS] != null) {\n contents[_PHS] = de_PacketHeaderStatement(output[_pHS], context);\n }\n if (output[_rSeso] != null) {\n contents[_RSe] = de_ResourceStatement(output[_rSeso], context);\n }\n return contents;\n}, \"de_PathStatement\");\nvar de_PciId = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DIevi] != null) {\n contents[_DIevi] = (0, import_smithy_client.expectString)(output[_DIevi]);\n }\n if (output[_VIe] != null) {\n contents[_VIe] = (0, import_smithy_client.expectString)(output[_VIe]);\n }\n if (output[_SIubs] != null) {\n contents[_SIubs] = (0, import_smithy_client.expectString)(output[_SIubs]);\n }\n if (output[_SVI] != null) {\n contents[_SVI] = (0, import_smithy_client.expectString)(output[_SVI]);\n }\n return contents;\n}, \"de_PciId\");\nvar de_PeeringAttachmentStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_PeeringAttachmentStatus\");\nvar de_PeeringConnectionOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aDRFRV] != null) {\n contents[_ADRFRV] = (0, import_smithy_client.parseBoolean)(output[_aDRFRV]);\n }\n if (output[_aEFLCLTRV] != null) {\n contents[_AEFLCLTRV] = (0, import_smithy_client.parseBoolean)(output[_aEFLCLTRV]);\n }\n if (output[_aEFLVTRCL] != null) {\n contents[_AEFLVTRCL] = (0, import_smithy_client.parseBoolean)(output[_aEFLVTRCL]);\n }\n return contents;\n}, \"de_PeeringConnectionOptions\");\nvar de_PeeringTgwInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cNIo] != null) {\n contents[_CNIor] = (0, import_smithy_client.expectString)(output[_cNIo]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n return contents;\n}, \"de_PeeringTgwInfo\");\nvar de_PerformanceFactorReference = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n return contents;\n}, \"de_PerformanceFactorReference\");\nvar de_PerformanceFactorReferenceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PerformanceFactorReference(entry, context);\n });\n}, \"de_PerformanceFactorReferenceSet\");\nvar de_Phase1DHGroupNumbersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase1DHGroupNumbersListValue(entry, context);\n });\n}, \"de_Phase1DHGroupNumbersList\");\nvar de_Phase1DHGroupNumbersListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.strictParseInt32)(output[_v]);\n }\n return contents;\n}, \"de_Phase1DHGroupNumbersListValue\");\nvar de_Phase1EncryptionAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase1EncryptionAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase1EncryptionAlgorithmsList\");\nvar de_Phase1EncryptionAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase1EncryptionAlgorithmsListValue\");\nvar de_Phase1IntegrityAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase1IntegrityAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase1IntegrityAlgorithmsList\");\nvar de_Phase1IntegrityAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase1IntegrityAlgorithmsListValue\");\nvar de_Phase2DHGroupNumbersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase2DHGroupNumbersListValue(entry, context);\n });\n}, \"de_Phase2DHGroupNumbersList\");\nvar de_Phase2DHGroupNumbersListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.strictParseInt32)(output[_v]);\n }\n return contents;\n}, \"de_Phase2DHGroupNumbersListValue\");\nvar de_Phase2EncryptionAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase2EncryptionAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase2EncryptionAlgorithmsList\");\nvar de_Phase2EncryptionAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase2EncryptionAlgorithmsListValue\");\nvar de_Phase2IntegrityAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase2IntegrityAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase2IntegrityAlgorithmsList\");\nvar de_Phase2IntegrityAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase2IntegrityAlgorithmsListValue\");\nvar de_Placement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_af] != null) {\n contents[_Af] = (0, import_smithy_client.expectString)(output[_af]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_pN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_pN]);\n }\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_sDp] != null) {\n contents[_SDp] = (0, import_smithy_client.expectString)(output[_sDp]);\n }\n if (output[_hRGA] != null) {\n contents[_HRGA] = (0, import_smithy_client.expectString)(output[_hRGA]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n return contents;\n}, \"de_Placement\");\nvar de_PlacementGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_str] != null) {\n contents[_Str] = (0, import_smithy_client.expectString)(output[_str]);\n }\n if (output[_pCa] != null) {\n contents[_PCa] = (0, import_smithy_client.strictParseInt32)(output[_pCa]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_gA] != null) {\n contents[_GA] = (0, import_smithy_client.expectString)(output[_gA]);\n }\n if (output[_sLp] != null) {\n contents[_SL] = (0, import_smithy_client.expectString)(output[_sLp]);\n }\n return contents;\n}, \"de_PlacementGroup\");\nvar de_PlacementGroupInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.supportedStrategies === \"\") {\n contents[_SSu] = [];\n } else if (output[_sSup] != null && output[_sSup][_i] != null) {\n contents[_SSu] = de_PlacementGroupStrategyList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSup][_i]), context);\n }\n return contents;\n}, \"de_PlacementGroupInfo\");\nvar de_PlacementGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PlacementGroup(entry, context);\n });\n}, \"de_PlacementGroupList\");\nvar de_PlacementGroupStrategyList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_PlacementGroupStrategyList\");\nvar de_PlacementResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n return contents;\n}, \"de_PlacementResponse\");\nvar de_PoolCidrBlock = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pCB] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_pCB]);\n }\n return contents;\n}, \"de_PoolCidrBlock\");\nvar de_PoolCidrBlocksSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PoolCidrBlock(entry, context);\n });\n}, \"de_PoolCidrBlocksSet\");\nvar de_PortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fr] != null) {\n contents[_Fr] = (0, import_smithy_client.strictParseInt32)(output[_fr]);\n }\n if (output[_to] != null) {\n contents[_To] = (0, import_smithy_client.strictParseInt32)(output[_to]);\n }\n return contents;\n}, \"de_PortRange\");\nvar de_PortRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PortRange(entry, context);\n });\n}, \"de_PortRangeList\");\nvar de_PrefixList = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.cidrSet === \"\") {\n contents[_Ci] = [];\n } else if (output[_cS] != null && output[_cS][_i] != null) {\n contents[_Ci] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_cS][_i]), context);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_pLN] != null) {\n contents[_PLN] = (0, import_smithy_client.expectString)(output[_pLN]);\n }\n return contents;\n}, \"de_PrefixList\");\nvar de_PrefixListAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rO] != null) {\n contents[_ROe] = (0, import_smithy_client.expectString)(output[_rO]);\n }\n return contents;\n}, \"de_PrefixListAssociation\");\nvar de_PrefixListAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixListAssociation(entry, context);\n });\n}, \"de_PrefixListAssociationSet\");\nvar de_PrefixListEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n return contents;\n}, \"de_PrefixListEntry\");\nvar de_PrefixListEntrySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixListEntry(entry, context);\n });\n}, \"de_PrefixListEntrySet\");\nvar de_PrefixListId = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n return contents;\n}, \"de_PrefixListId\");\nvar de_PrefixListIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixListId(entry, context);\n });\n}, \"de_PrefixListIdList\");\nvar de_PrefixListIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_PrefixListIdSet\");\nvar de_PrefixListSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixList(entry, context);\n });\n}, \"de_PrefixListSet\");\nvar de_PriceSchedule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_act] != null) {\n contents[_Act] = (0, import_smithy_client.parseBoolean)(output[_act]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_pric] != null) {\n contents[_Pric] = (0, import_smithy_client.strictParseFloat)(output[_pric]);\n }\n if (output[_te] != null) {\n contents[_Ter] = (0, import_smithy_client.strictParseLong)(output[_te]);\n }\n return contents;\n}, \"de_PriceSchedule\");\nvar de_PriceScheduleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PriceSchedule(entry, context);\n });\n}, \"de_PriceScheduleList\");\nvar de_PricingDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_pric] != null) {\n contents[_Pric] = (0, import_smithy_client.strictParseFloat)(output[_pric]);\n }\n return contents;\n}, \"de_PricingDetail\");\nvar de_PricingDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PricingDetail(entry, context);\n });\n}, \"de_PricingDetailsList\");\nvar de_PrincipalIdFormat = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_PrincipalIdFormat\");\nvar de_PrincipalIdFormatList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrincipalIdFormat(entry, context);\n });\n}, \"de_PrincipalIdFormatList\");\nvar de_PrivateDnsDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n return contents;\n}, \"de_PrivateDnsDetails\");\nvar de_PrivateDnsDetailsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrivateDnsDetails(entry, context);\n });\n}, \"de_PrivateDnsDetailsSet\");\nvar de_PrivateDnsNameConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_PrivateDnsNameConfiguration\");\nvar de_PrivateDnsNameOptionsOnLaunch = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hTo] != null) {\n contents[_HTo] = (0, import_smithy_client.expectString)(output[_hTo]);\n }\n if (output[_eRNDAR] != null) {\n contents[_ERNDAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAR]);\n }\n if (output[_eRNDAAAAR] != null) {\n contents[_ERNDAAAAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAAAAR]);\n }\n return contents;\n}, \"de_PrivateDnsNameOptionsOnLaunch\");\nvar de_PrivateDnsNameOptionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hTo] != null) {\n contents[_HTo] = (0, import_smithy_client.expectString)(output[_hTo]);\n }\n if (output[_eRNDAR] != null) {\n contents[_ERNDAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAR]);\n }\n if (output[_eRNDAAAAR] != null) {\n contents[_ERNDAAAAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAAAAR]);\n }\n return contents;\n}, \"de_PrivateDnsNameOptionsResponse\");\nvar de_PrivateIpAddressSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_prim] != null) {\n contents[_Prim] = (0, import_smithy_client.parseBoolean)(output[_prim]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_PrivateIpAddressSpecification\");\nvar de_PrivateIpAddressSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrivateIpAddressSpecification(entry, context);\n });\n}, \"de_PrivateIpAddressSpecificationList\");\nvar de_ProcessorInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.supportedArchitectures === \"\") {\n contents[_SAup] = [];\n } else if (output[_sAu] != null && output[_sAu][_i] != null) {\n contents[_SAup] = de_ArchitectureTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sAu][_i]), context);\n }\n if (output[_sCSIG] != null) {\n contents[_SCSIG] = (0, import_smithy_client.strictParseFloat)(output[_sCSIG]);\n }\n if (output.supportedFeatures === \"\") {\n contents[_SF] = [];\n } else if (output[_sF] != null && output[_sF][_i] != null) {\n contents[_SF] = de_SupportedAdditionalProcessorFeatureList((0, import_smithy_client.getArrayIfSingleItem)(output[_sF][_i]), context);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n return contents;\n}, \"de_ProcessorInfo\");\nvar de_ProductCode = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pCr] != null) {\n contents[_PCIr] = (0, import_smithy_client.expectString)(output[_pCr]);\n }\n if (output[_ty] != null) {\n contents[_PCT] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n return contents;\n}, \"de_ProductCode\");\nvar de_ProductCodeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ProductCode(entry, context);\n });\n}, \"de_ProductCodeList\");\nvar de_PropagatingVgw = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n return contents;\n}, \"de_PropagatingVgw\");\nvar de_PropagatingVgwList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PropagatingVgw(entry, context);\n });\n}, \"de_PropagatingVgwList\");\nvar de_ProtocolIntList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_ProtocolIntList\");\nvar de_ProtocolList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ProtocolList\");\nvar de_ProvisionByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_ProvisionByoipCidrResult\");\nvar de_ProvisionedBandwidth = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pTr] != null) {\n contents[_PTro] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_pTr]));\n }\n if (output[_prov] != null) {\n contents[_Prov] = (0, import_smithy_client.expectString)(output[_prov]);\n }\n if (output[_rTeq] != null) {\n contents[_RTeq] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rTeq]));\n }\n if (output[_req] != null) {\n contents[_Req] = (0, import_smithy_client.expectString)(output[_req]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_ProvisionedBandwidth\");\nvar de_ProvisionIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_b] != null) {\n contents[_Byo] = de_Byoasn(output[_b], context);\n }\n return contents;\n}, \"de_ProvisionIpamByoasnResult\");\nvar de_ProvisionIpamPoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPC] != null) {\n contents[_IPCpa] = de_IpamPoolCidr(output[_iPC], context);\n }\n return contents;\n}, \"de_ProvisionIpamPoolCidrResult\");\nvar de_ProvisionPublicIpv4PoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output[_pAR] != null) {\n contents[_PAR] = de_PublicIpv4PoolRange(output[_pAR], context);\n }\n return contents;\n}, \"de_ProvisionPublicIpv4PoolCidrResult\");\nvar de_PtrUpdateStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_rea] != null) {\n contents[_Rea] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n return contents;\n}, \"de_PtrUpdateStatus\");\nvar de_PublicIpv4Pool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.poolAddressRangeSet === \"\") {\n contents[_PARo] = [];\n } else if (output[_pARS] != null && output[_pARS][_i] != null) {\n contents[_PARo] = de_PublicIpv4PoolRangeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pARS][_i]), context);\n }\n if (output[_tAC] != null) {\n contents[_TAC] = (0, import_smithy_client.strictParseInt32)(output[_tAC]);\n }\n if (output[_tAAC] != null) {\n contents[_TAAC] = (0, import_smithy_client.strictParseInt32)(output[_tAAC]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_PublicIpv4Pool\");\nvar de_PublicIpv4PoolRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fAi] != null) {\n contents[_FAi] = (0, import_smithy_client.expectString)(output[_fAi]);\n }\n if (output[_lAa] != null) {\n contents[_LAa] = (0, import_smithy_client.expectString)(output[_lAa]);\n }\n if (output[_aCd] != null) {\n contents[_ACd] = (0, import_smithy_client.strictParseInt32)(output[_aCd]);\n }\n if (output[_aAC] != null) {\n contents[_AACv] = (0, import_smithy_client.strictParseInt32)(output[_aAC]);\n }\n return contents;\n}, \"de_PublicIpv4PoolRange\");\nvar de_PublicIpv4PoolRangeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PublicIpv4PoolRange(entry, context);\n });\n}, \"de_PublicIpv4PoolRangeSet\");\nvar de_PublicIpv4PoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PublicIpv4Pool(entry, context);\n });\n}, \"de_PublicIpv4PoolSet\");\nvar de_Purchase = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseInt32)(output[_du]);\n }\n if (output.hostIdSet === \"\") {\n contents[_HIS] = [];\n } else if (output[_hIS] != null && output[_hIS][_i] != null) {\n contents[_HIS] = de_ResponseHostIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hIS][_i]), context);\n }\n if (output[_hRI] != null) {\n contents[_HRI] = (0, import_smithy_client.expectString)(output[_hRI]);\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_pO] != null) {\n contents[_PO] = (0, import_smithy_client.expectString)(output[_pO]);\n }\n if (output[_uP] != null) {\n contents[_UPp] = (0, import_smithy_client.expectString)(output[_uP]);\n }\n return contents;\n}, \"de_Purchase\");\nvar de_PurchaseCapacityBlockExtensionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockExtensionSet === \"\") {\n contents[_CBE] = [];\n } else if (output[_cBESa] != null && output[_cBESa][_i] != null) {\n contents[_CBE] = de_CapacityBlockExtensionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBESa][_i]), context);\n }\n return contents;\n}, \"de_PurchaseCapacityBlockExtensionResult\");\nvar de_PurchaseCapacityBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cR] != null) {\n contents[_CRapa] = de_CapacityReservation(output[_cR], context);\n }\n return contents;\n}, \"de_PurchaseCapacityBlockResult\");\nvar de_PurchasedScheduledInstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ScheduledInstance(entry, context);\n });\n}, \"de_PurchasedScheduledInstanceSet\");\nvar de_PurchaseHostReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output.purchase === \"\") {\n contents[_Pur] = [];\n } else if (output[_pur] != null && output[_pur][_i] != null) {\n contents[_Pur] = de_PurchaseSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pur][_i]), context);\n }\n if (output[_tHP] != null) {\n contents[_THP] = (0, import_smithy_client.expectString)(output[_tHP]);\n }\n if (output[_tUP] != null) {\n contents[_TUP] = (0, import_smithy_client.expectString)(output[_tUP]);\n }\n return contents;\n}, \"de_PurchaseHostReservationResult\");\nvar de_PurchaseReservedInstancesOfferingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_PurchaseReservedInstancesOfferingResult\");\nvar de_PurchaseScheduledInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.scheduledInstanceSet === \"\") {\n contents[_SIS] = [];\n } else if (output[_sIS] != null && output[_sIS][_i] != null) {\n contents[_SIS] = de_PurchasedScheduledInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIS][_i]), context);\n }\n return contents;\n}, \"de_PurchaseScheduledInstancesResult\");\nvar de_PurchaseSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Purchase(entry, context);\n });\n}, \"de_PurchaseSet\");\nvar de_RecurringCharge = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_am] != null) {\n contents[_Am] = (0, import_smithy_client.strictParseFloat)(output[_am]);\n }\n if (output[_fre] != null) {\n contents[_Fre] = (0, import_smithy_client.expectString)(output[_fre]);\n }\n return contents;\n}, \"de_RecurringCharge\");\nvar de_RecurringChargesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RecurringCharge(entry, context);\n });\n}, \"de_RecurringChargesList\");\nvar de_ReferencedSecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_pSee] != null) {\n contents[_PSe] = (0, import_smithy_client.expectString)(output[_pSee]);\n }\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n return contents;\n}, \"de_ReferencedSecurityGroup\");\nvar de_Region = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oIS] != null) {\n contents[_OIS] = (0, import_smithy_client.expectString)(output[_oIS]);\n }\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n if (output[_rEe] != null) {\n contents[_Endp] = (0, import_smithy_client.expectString)(output[_rEe]);\n }\n return contents;\n}, \"de_Region\");\nvar de_RegionalSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n if (output[_nOMA] != null) {\n contents[_NOMA] = (0, import_smithy_client.strictParseInt32)(output[_nOMA]);\n }\n if (output[_nOUA] != null) {\n contents[_NOUA] = (0, import_smithy_client.strictParseInt32)(output[_nOUA]);\n }\n return contents;\n}, \"de_RegionalSummary\");\nvar de_RegionalSummaryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RegionalSummary(entry, context);\n });\n}, \"de_RegionalSummaryList\");\nvar de_RegionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Region(entry, context);\n });\n}, \"de_RegionList\");\nvar de_RegisterImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_RegisterImageResult\");\nvar de_RegisterInstanceEventNotificationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTA] != null) {\n contents[_ITA] = de_InstanceTagNotificationAttribute(output[_iTA], context);\n }\n return contents;\n}, \"de_RegisterInstanceEventNotificationAttributesResult\");\nvar de_RegisterTransitGatewayMulticastGroupMembersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rMGM] != null) {\n contents[_RMGM] = de_TransitGatewayMulticastRegisteredGroupMembers(output[_rMGM], context);\n }\n return contents;\n}, \"de_RegisterTransitGatewayMulticastGroupMembersResult\");\nvar de_RegisterTransitGatewayMulticastGroupSourcesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rMGS] != null) {\n contents[_RMGS] = de_TransitGatewayMulticastRegisteredGroupSources(output[_rMGS], context);\n }\n return contents;\n}, \"de_RegisterTransitGatewayMulticastGroupSourcesResult\");\nvar de_RejectCapacityReservationBillingOwnershipResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_RejectCapacityReservationBillingOwnershipResult\");\nvar de_RejectTransitGatewayMulticastDomainAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_RejectTransitGatewayMulticastDomainAssociationsResult\");\nvar de_RejectTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_RejectTransitGatewayPeeringAttachmentResult\");\nvar de_RejectTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_RejectTransitGatewayVpcAttachmentResult\");\nvar de_RejectVpcEndpointConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_RejectVpcEndpointConnectionsResult\");\nvar de_RejectVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_RejectVpcPeeringConnectionResult\");\nvar de_ReleaseHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_ResponseHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemList((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_ReleaseHostsResult\");\nvar de_ReleaseIpamPoolAllocationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_succ] != null) {\n contents[_Succ] = (0, import_smithy_client.parseBoolean)(output[_succ]);\n }\n return contents;\n}, \"de_ReleaseIpamPoolAllocationResult\");\nvar de_ReplaceIamInstanceProfileAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIPA] != null) {\n contents[_IIPA] = de_IamInstanceProfileAssociation(output[_iIPA], context);\n }\n return contents;\n}, \"de_ReplaceIamInstanceProfileAssociationResult\");\nvar de_ReplaceImageCriteriaInAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ReplaceImageCriteriaInAllowedImagesSettingsResult\");\nvar de_ReplaceNetworkAclAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nAIe] != null) {\n contents[_NAIew] = (0, import_smithy_client.expectString)(output[_nAIe]);\n }\n return contents;\n}, \"de_ReplaceNetworkAclAssociationResult\");\nvar de_ReplaceRootVolumeTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rRVTI] != null) {\n contents[_RRVTIe] = (0, import_smithy_client.expectString)(output[_rRVTI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_tSas] != null) {\n contents[_TSas] = (0, import_smithy_client.expectString)(output[_tSas]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectString)(output[_sT]);\n }\n if (output[_cTom] != null) {\n contents[_CTom] = (0, import_smithy_client.expectString)(output[_cTom]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_dRRV] != null) {\n contents[_DRRV] = (0, import_smithy_client.parseBoolean)(output[_dRRV]);\n }\n return contents;\n}, \"de_ReplaceRootVolumeTask\");\nvar de_ReplaceRootVolumeTasks = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReplaceRootVolumeTask(entry, context);\n });\n}, \"de_ReplaceRootVolumeTasks\");\nvar de_ReplaceRouteTableAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nAIe] != null) {\n contents[_NAIew] = (0, import_smithy_client.expectString)(output[_nAIe]);\n }\n if (output[_aS] != null) {\n contents[_ASs] = de_RouteTableAssociationState(output[_aS], context);\n }\n return contents;\n}, \"de_ReplaceRouteTableAssociationResult\");\nvar de_ReplaceTransitGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_TransitGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_ReplaceTransitGatewayRouteResult\");\nvar de_ReplaceVpnTunnelResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ReplaceVpnTunnelResult\");\nvar de_RequestSpotFleetResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_RequestSpotFleetResponse\");\nvar de_RequestSpotInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotInstanceRequestSet === \"\") {\n contents[_SIR] = [];\n } else if (output[_sIRS] != null && output[_sIRS][_i] != null) {\n contents[_SIR] = de_SpotInstanceRequestList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIRS][_i]), context);\n }\n return contents;\n}, \"de_RequestSpotInstancesResult\");\nvar de_Reservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIese] != null) {\n contents[_RIeser] = (0, import_smithy_client.expectString)(output[_rIese]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_rIeq] != null) {\n contents[_RIeq] = (0, import_smithy_client.expectString)(output[_rIeq]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output.instancesSet === \"\") {\n contents[_In] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_In] = de_InstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_Reservation\");\nvar de_ReservationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Reservation(entry, context);\n });\n}, \"de_ReservationList\");\nvar de_ReservationValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_rTV] != null) {\n contents[_RTV] = (0, import_smithy_client.expectString)(output[_rTV]);\n }\n if (output[_rUV] != null) {\n contents[_RUV] = (0, import_smithy_client.expectString)(output[_rUV]);\n }\n return contents;\n}, \"de_ReservationValue\");\nvar de_ReservedInstanceReservationValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rVe] != null) {\n contents[_RVe] = de_ReservationValue(output[_rVe], context);\n }\n if (output[_rIIe] != null) {\n contents[_RIIese] = (0, import_smithy_client.expectString)(output[_rIIe]);\n }\n return contents;\n}, \"de_ReservedInstanceReservationValue\");\nvar de_ReservedInstanceReservationValueSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstanceReservationValue(entry, context);\n });\n}, \"de_ReservedInstanceReservationValueSet\");\nvar de_ReservedInstances = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_iTns] != null) {\n contents[_ITns] = (0, import_smithy_client.expectString)(output[_iTns]);\n }\n if (output[_oC] != null) {\n contents[_OC] = (0, import_smithy_client.expectString)(output[_oC]);\n }\n if (output[_oTf] != null) {\n contents[_OT] = (0, import_smithy_client.expectString)(output[_oTf]);\n }\n if (output.recurringCharges === \"\") {\n contents[_RCec] = [];\n } else if (output[_rCec] != null && output[_rCec][_i] != null) {\n contents[_RCec] = de_RecurringChargesList((0, import_smithy_client.getArrayIfSingleItem)(output[_rCec][_i]), context);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_star] != null) {\n contents[_Star] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_star]));\n }\n if (output[_end] != null) {\n contents[_End] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_end]));\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseLong)(output[_du]);\n }\n if (output[_uPs] != null) {\n contents[_UPs] = (0, import_smithy_client.strictParseFloat)(output[_uPs]);\n }\n if (output[_fPi] != null) {\n contents[_FPi] = (0, import_smithy_client.strictParseFloat)(output[_fPi]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_ReservedInstances\");\nvar de_ReservedInstancesConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_ReservedInstancesConfiguration\");\nvar de_ReservedInstancesId = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_ReservedInstancesId\");\nvar de_ReservedInstancesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstances(entry, context);\n });\n}, \"de_ReservedInstancesList\");\nvar de_ReservedInstancesListing = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output.instanceCounts === \"\") {\n contents[_ICn] = [];\n } else if (output[_iCn] != null && output[_iCn][_i] != null) {\n contents[_ICn] = de_InstanceCountList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCn][_i]), context);\n }\n if (output.priceSchedules === \"\") {\n contents[_PS] = [];\n } else if (output[_pSri] != null && output[_pSri][_i] != null) {\n contents[_PS] = de_PriceScheduleList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSri][_i]), context);\n }\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n if (output[_rILI] != null) {\n contents[_RILI] = (0, import_smithy_client.expectString)(output[_rILI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_uDpd] != null) {\n contents[_UDpd] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uDpd]));\n }\n return contents;\n}, \"de_ReservedInstancesListing\");\nvar de_ReservedInstancesListingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesListing(entry, context);\n });\n}, \"de_ReservedInstancesListingList\");\nvar de_ReservedInstancesModification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output[_eDf] != null) {\n contents[_EDf] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eDf]));\n }\n if (output.modificationResultSet === \"\") {\n contents[_MRo] = [];\n } else if (output[_mRS] != null && output[_mRS][_i] != null) {\n contents[_MRo] = de_ReservedInstancesModificationResultList((0, import_smithy_client.getArrayIfSingleItem)(output[_mRS][_i]), context);\n }\n if (output.reservedInstancesSet === \"\") {\n contents[_RIIes] = [];\n } else if (output[_rIS] != null && output[_rIS][_i] != null) {\n contents[_RIIes] = de_ReservedIntancesIds((0, import_smithy_client.getArrayIfSingleItem)(output[_rIS][_i]), context);\n }\n if (output[_rIMI] != null) {\n contents[_RIMIe] = (0, import_smithy_client.expectString)(output[_rIMI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_uDpd] != null) {\n contents[_UDpd] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uDpd]));\n }\n return contents;\n}, \"de_ReservedInstancesModification\");\nvar de_ReservedInstancesModificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesModification(entry, context);\n });\n}, \"de_ReservedInstancesModificationList\");\nvar de_ReservedInstancesModificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n if (output[_tCa] != null) {\n contents[_TCar] = de_ReservedInstancesConfiguration(output[_tCa], context);\n }\n return contents;\n}, \"de_ReservedInstancesModificationResult\");\nvar de_ReservedInstancesModificationResultList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesModificationResult(entry, context);\n });\n}, \"de_ReservedInstancesModificationResultList\");\nvar de_ReservedInstancesOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_iTns] != null) {\n contents[_ITns] = (0, import_smithy_client.expectString)(output[_iTns]);\n }\n if (output[_mar] != null) {\n contents[_Mar] = (0, import_smithy_client.parseBoolean)(output[_mar]);\n }\n if (output[_oC] != null) {\n contents[_OC] = (0, import_smithy_client.expectString)(output[_oC]);\n }\n if (output[_oTf] != null) {\n contents[_OT] = (0, import_smithy_client.expectString)(output[_oTf]);\n }\n if (output.pricingDetailsSet === \"\") {\n contents[_PDri] = [];\n } else if (output[_pDS] != null && output[_pDS][_i] != null) {\n contents[_PDri] = de_PricingDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pDS][_i]), context);\n }\n if (output.recurringCharges === \"\") {\n contents[_RCec] = [];\n } else if (output[_rCec] != null && output[_rCec][_i] != null) {\n contents[_RCec] = de_RecurringChargesList((0, import_smithy_client.getArrayIfSingleItem)(output[_rCec][_i]), context);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_rIOI] != null) {\n contents[_RIOIe] = (0, import_smithy_client.expectString)(output[_rIOI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseLong)(output[_du]);\n }\n if (output[_uPs] != null) {\n contents[_UPs] = (0, import_smithy_client.strictParseFloat)(output[_uPs]);\n }\n if (output[_fPi] != null) {\n contents[_FPi] = (0, import_smithy_client.strictParseFloat)(output[_fPi]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n return contents;\n}, \"de_ReservedInstancesOffering\");\nvar de_ReservedInstancesOfferingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesOffering(entry, context);\n });\n}, \"de_ReservedInstancesOfferingList\");\nvar de_ReservedIntancesIds = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesId(entry, context);\n });\n}, \"de_ReservedIntancesIds\");\nvar de_ResetAddressAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ad] != null) {\n contents[_Ad] = de_AddressAttribute(output[_ad], context);\n }\n return contents;\n}, \"de_ResetAddressAttributeResult\");\nvar de_ResetEbsDefaultKmsKeyIdResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_ResetEbsDefaultKmsKeyIdResult\");\nvar de_ResetFpgaImageAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ResetFpgaImageAttributeResult\");\nvar de_ResourceStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.resourceSet === \"\") {\n contents[_Re] = [];\n } else if (output[_rSesou] != null && output[_rSesou][_i] != null) {\n contents[_Re] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSesou][_i]), context);\n }\n if (output.resourceTypeSet === \"\") {\n contents[_RTeso] = [];\n } else if (output[_rTSes] != null && output[_rTSes][_i] != null) {\n contents[_RTeso] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTSes][_i]), context);\n }\n return contents;\n}, \"de_ResourceStatement\");\nvar de_ResponseError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ResponseError\");\nvar de_ResponseHostIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ResponseHostIdList\");\nvar de_ResponseHostIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ResponseHostIdSet\");\nvar de_ResponseLaunchTemplateData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_LaunchTemplateIamInstanceProfileSpecification(output[_iIP], context);\n }\n if (output.blockDeviceMappingSet === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDMS] != null && output[_bDMS][_i] != null) {\n contents[_BDM] = de_LaunchTemplateBlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDMS][_i]), context);\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_LaunchTemplateInstanceNetworkInterfaceSpecificationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]),\n context\n );\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_LaunchTemplatesMonitoring(output[_mo], context);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_LaunchTemplatePlacement(output[_pla], context);\n }\n if (output[_rDI] != null) {\n contents[_RDI] = (0, import_smithy_client.expectString)(output[_rDI]);\n }\n if (output[_dAT] != null) {\n contents[_DATis] = (0, import_smithy_client.parseBoolean)(output[_dAT]);\n }\n if (output[_iISB] != null) {\n contents[_IISB] = (0, import_smithy_client.expectString)(output[_iISB]);\n }\n if (output[_uDs] != null) {\n contents[_UD] = (0, import_smithy_client.expectString)(output[_uDs]);\n }\n if (output.tagSpecificationSet === \"\") {\n contents[_TS] = [];\n } else if (output[_tSS] != null && output[_tSS][_i] != null) {\n contents[_TS] = de_LaunchTemplateTagSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tSS][_i]), context);\n }\n if (output.elasticGpuSpecificationSet === \"\") {\n contents[_EGS] = [];\n } else if (output[_eGSS] != null && output[_eGSS][_i] != null) {\n contents[_EGS] = de_ElasticGpuSpecificationResponseList((0, import_smithy_client.getArrayIfSingleItem)(output[_eGSS][_i]), context);\n }\n if (output.elasticInferenceAcceleratorSet === \"\") {\n contents[_EIA] = [];\n } else if (output[_eIAS] != null && output[_eIAS][_i] != null) {\n contents[_EIA] = de_LaunchTemplateElasticInferenceAcceleratorResponseList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_eIAS][_i]),\n context\n );\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output.securityGroupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_sGS] != null && output[_sGS][_i] != null) {\n contents[_SG] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGS][_i]), context);\n }\n if (output[_iMOn] != null) {\n contents[_IMO] = de_LaunchTemplateInstanceMarketOptions(output[_iMOn], context);\n }\n if (output[_cSr] != null) {\n contents[_CSred] = de_CreditSpecification(output[_cSr], context);\n }\n if (output[_cO] != null) {\n contents[_COp] = de_LaunchTemplateCpuOptions(output[_cO], context);\n }\n if (output[_cRSa] != null) {\n contents[_CRSa] = de_LaunchTemplateCapacityReservationSpecificationResponse(output[_cRSa], context);\n }\n if (output.licenseSet === \"\") {\n contents[_LSi] = [];\n } else if (output[_lSi] != null && output[_lSi][_i] != null) {\n contents[_LSi] = de_LaunchTemplateLicenseList((0, import_smithy_client.getArrayIfSingleItem)(output[_lSi][_i]), context);\n }\n if (output[_hO] != null) {\n contents[_HO] = de_LaunchTemplateHibernationOptions(output[_hO], context);\n }\n if (output[_mO] != null) {\n contents[_MO] = de_LaunchTemplateInstanceMetadataOptions(output[_mO], context);\n }\n if (output[_eOn] != null) {\n contents[_EOn] = de_LaunchTemplateEnclaveOptions(output[_eOn], context);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n if (output[_pDNO] != null) {\n contents[_PDNO] = de_LaunchTemplatePrivateDnsNameOptions(output[_pDNO], context);\n }\n if (output[_mOa] != null) {\n contents[_MOa] = de_LaunchTemplateInstanceMaintenanceOptions(output[_mOa], context);\n }\n if (output[_dASi] != null) {\n contents[_DAS] = (0, import_smithy_client.parseBoolean)(output[_dASi]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output[_nPO] != null) {\n contents[_NPO] = de_LaunchTemplateNetworkPerformanceOptions(output[_nPO], context);\n }\n return contents;\n}, \"de_ResponseLaunchTemplateData\");\nvar de_RestoreAddressToClassicResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_RestoreAddressToClassicResult\");\nvar de_RestoreImageFromRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_RestoreImageFromRecycleBinResult\");\nvar de_RestoreManagedPrefixListVersionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_RestoreManagedPrefixListVersionResult\");\nvar de_RestoreSnapshotFromRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n return contents;\n}, \"de_RestoreSnapshotFromRecycleBinResult\");\nvar de_RestoreSnapshotTierResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_rST] != null) {\n contents[_RSTe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rST]));\n }\n if (output[_rD] != null) {\n contents[_RD] = (0, import_smithy_client.strictParseInt32)(output[_rD]);\n }\n if (output[_iPR] != null) {\n contents[_IPR] = (0, import_smithy_client.parseBoolean)(output[_iPR]);\n }\n return contents;\n}, \"de_RestoreSnapshotTierResult\");\nvar de_RevokeClientVpnIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnAuthorizationRuleStatus(output[_sta], context);\n }\n return contents;\n}, \"de_RevokeClientVpnIngressResult\");\nvar de_RevokedSecurityGroupRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sGRI] != null) {\n contents[_SGRIe] = (0, import_smithy_client.expectString)(output[_sGRI]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_iEs] != null) {\n contents[_IE] = (0, import_smithy_client.parseBoolean)(output[_iEs]);\n }\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output[_cIidr] != null) {\n contents[_CIidr] = (0, import_smithy_client.expectString)(output[_cIidr]);\n }\n if (output[_cIid] != null) {\n contents[_CIid] = (0, import_smithy_client.expectString)(output[_cIid]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_rGI] != null) {\n contents[_RGI] = (0, import_smithy_client.expectString)(output[_rGI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n return contents;\n}, \"de_RevokedSecurityGroupRule\");\nvar de_RevokedSecurityGroupRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RevokedSecurityGroupRule(entry, context);\n });\n}, \"de_RevokedSecurityGroupRuleList\");\nvar de_RevokeSecurityGroupEgressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.unknownIpPermissionSet === \"\") {\n contents[_UIP] = [];\n } else if (output[_uIPS] != null && output[_uIPS][_i] != null) {\n contents[_UIP] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIPS][_i]), context);\n }\n if (output.revokedSecurityGroupRuleSet === \"\") {\n contents[_RSGR] = [];\n } else if (output[_rSGRS] != null && output[_rSGRS][_i] != null) {\n contents[_RSGR] = de_RevokedSecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSGRS][_i]), context);\n }\n return contents;\n}, \"de_RevokeSecurityGroupEgressResult\");\nvar de_RevokeSecurityGroupIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.unknownIpPermissionSet === \"\") {\n contents[_UIP] = [];\n } else if (output[_uIPS] != null && output[_uIPS][_i] != null) {\n contents[_UIP] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIPS][_i]), context);\n }\n if (output.revokedSecurityGroupRuleSet === \"\") {\n contents[_RSGR] = [];\n } else if (output[_rSGRS] != null && output[_rSGRS][_i] != null) {\n contents[_RSGR] = de_RevokedSecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSGRS][_i]), context);\n }\n return contents;\n}, \"de_RevokeSecurityGroupIngressResult\");\nvar de_RootDeviceTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_RootDeviceTypeList\");\nvar de_Route = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_dICB] != null) {\n contents[_DICB] = (0, import_smithy_client.expectString)(output[_dICB]);\n }\n if (output[_dPLI] != null) {\n contents[_DPLI] = (0, import_smithy_client.expectString)(output[_dPLI]);\n }\n if (output[_eOIGI] != null) {\n contents[_EOIGI] = (0, import_smithy_client.expectString)(output[_eOIGI]);\n }\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iOIn] != null) {\n contents[_IOIn] = (0, import_smithy_client.expectString)(output[_iOIn]);\n }\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_cGI] != null) {\n contents[_CGI] = (0, import_smithy_client.expectString)(output[_cGI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_o] != null) {\n contents[_Or] = (0, import_smithy_client.expectString)(output[_o]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_cNA] != null) {\n contents[_CNAo] = (0, import_smithy_client.expectString)(output[_cNA]);\n }\n return contents;\n}, \"de_Route\");\nvar de_RouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Route(entry, context);\n });\n}, \"de_RouteList\");\nvar de_RouteServer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_aSA] != null) {\n contents[_ASA] = (0, import_smithy_client.strictParseLong)(output[_aSA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pRSe] != null) {\n contents[_PRS] = (0, import_smithy_client.expectString)(output[_pRSe]);\n }\n if (output[_pRD] != null) {\n contents[_PRD] = (0, import_smithy_client.strictParseLong)(output[_pRD]);\n }\n if (output[_sNE] != null) {\n contents[_SNE] = (0, import_smithy_client.parseBoolean)(output[_sNE]);\n }\n if (output[_sTA] != null) {\n contents[_STA] = (0, import_smithy_client.expectString)(output[_sTA]);\n }\n return contents;\n}, \"de_RouteServer\");\nvar de_RouteServerAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_RouteServerAssociation\");\nvar de_RouteServerAssociationsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerAssociation(entry, context);\n });\n}, \"de_RouteServerAssociationsList\");\nvar de_RouteServerBfdStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_RouteServerBfdStatus\");\nvar de_RouteServerBgpOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pAee] != null) {\n contents[_PAee] = (0, import_smithy_client.strictParseLong)(output[_pAee]);\n }\n if (output[_pLD] != null) {\n contents[_PLD] = (0, import_smithy_client.expectString)(output[_pLD]);\n }\n return contents;\n}, \"de_RouteServerBgpOptions\");\nvar de_RouteServerBgpStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_RouteServerBgpStatus\");\nvar de_RouteServerEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_rSEI] != null) {\n contents[_RSEI] = (0, import_smithy_client.expectString)(output[_rSEI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_eIn] != null) {\n contents[_EIn] = (0, import_smithy_client.expectString)(output[_eIn]);\n }\n if (output[_eA] != null) {\n contents[_EAn] = (0, import_smithy_client.expectString)(output[_eA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_RouteServerEndpoint\");\nvar de_RouteServerEndpointsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerEndpoint(entry, context);\n });\n}, \"de_RouteServerEndpointsList\");\nvar de_RouteServerPeer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSPI] != null) {\n contents[_RSPI] = (0, import_smithy_client.expectString)(output[_rSPI]);\n }\n if (output[_rSEI] != null) {\n contents[_RSEI] = (0, import_smithy_client.expectString)(output[_rSEI]);\n }\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output[_eEI] != null) {\n contents[_EEI] = (0, import_smithy_client.expectString)(output[_eEI]);\n }\n if (output[_eEA] != null) {\n contents[_EEA] = (0, import_smithy_client.expectString)(output[_eEA]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_bO] != null) {\n contents[_BO] = de_RouteServerBgpOptions(output[_bO], context);\n }\n if (output[_bSg] != null) {\n contents[_BS] = de_RouteServerBgpStatus(output[_bSg], context);\n }\n if (output[_bSf] != null) {\n contents[_BSf] = de_RouteServerBfdStatus(output[_bSf], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_RouteServerPeer\");\nvar de_RouteServerPeersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerPeer(entry, context);\n });\n}, \"de_RouteServerPeersList\");\nvar de_RouteServerPropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_RouteServerPropagation\");\nvar de_RouteServerPropagationsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerPropagation(entry, context);\n });\n}, \"de_RouteServerPropagationsList\");\nvar de_RouteServerRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSEI] != null) {\n contents[_RSEI] = (0, import_smithy_client.expectString)(output[_rSEI]);\n }\n if (output[_rSPI] != null) {\n contents[_RSPI] = (0, import_smithy_client.expectString)(output[_rSPI]);\n }\n if (output.routeInstallationDetailSet === \"\") {\n contents[_RID] = [];\n } else if (output[_rIDS] != null && output[_rIDS][_i] != null) {\n contents[_RID] = de_RouteServerRouteInstallationDetails((0, import_smithy_client.getArrayIfSingleItem)(output[_rIDS][_i]), context);\n }\n if (output[_rSout] != null) {\n contents[_RSout] = (0, import_smithy_client.expectString)(output[_rSout]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output.asPathSet === \"\") {\n contents[_APs] = [];\n } else if (output[_aPSs] != null && output[_aPSs][_i] != null) {\n contents[_APs] = de_AsPath((0, import_smithy_client.getArrayIfSingleItem)(output[_aPSs][_i]), context);\n }\n if (output[_med] != null) {\n contents[_Med] = (0, import_smithy_client.strictParseInt32)(output[_med]);\n }\n if (output[_nHI] != null) {\n contents[_NHI] = (0, import_smithy_client.expectString)(output[_nHI]);\n }\n return contents;\n}, \"de_RouteServerRoute\");\nvar de_RouteServerRouteInstallationDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output[_rISo] != null) {\n contents[_RISo] = (0, import_smithy_client.expectString)(output[_rISo]);\n }\n if (output[_rISR] != null) {\n contents[_RISR] = (0, import_smithy_client.expectString)(output[_rISR]);\n }\n return contents;\n}, \"de_RouteServerRouteInstallationDetail\");\nvar de_RouteServerRouteInstallationDetails = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerRouteInstallationDetail(entry, context);\n });\n}, \"de_RouteServerRouteInstallationDetails\");\nvar de_RouteServerRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerRoute(entry, context);\n });\n}, \"de_RouteServerRouteList\");\nvar de_RouteServersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServer(entry, context);\n });\n}, \"de_RouteServersList\");\nvar de_RouteTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associationSet === \"\") {\n contents[_Ass] = [];\n } else if (output[_aSss] != null && output[_aSss][_i] != null) {\n contents[_Ass] = de_RouteTableAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSss][_i]), context);\n }\n if (output.propagatingVgwSet === \"\") {\n contents[_PVr] = [];\n } else if (output[_pVS] != null && output[_pVS][_i] != null) {\n contents[_PVr] = de_PropagatingVgwList((0, import_smithy_client.getArrayIfSingleItem)(output[_pVS][_i]), context);\n }\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_RouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_RouteTable\");\nvar de_RouteTableAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mai] != null) {\n contents[_Mai] = (0, import_smithy_client.parseBoolean)(output[_mai]);\n }\n if (output[_rTAI] != null) {\n contents[_RTAI] = (0, import_smithy_client.expectString)(output[_rTAI]);\n }\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n if (output[_aS] != null) {\n contents[_ASs] = de_RouteTableAssociationState(output[_aS], context);\n }\n return contents;\n}, \"de_RouteTableAssociation\");\nvar de_RouteTableAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteTableAssociation(entry, context);\n });\n}, \"de_RouteTableAssociationList\");\nvar de_RouteTableAssociationState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_RouteTableAssociationState\");\nvar de_RouteTableList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteTable(entry, context);\n });\n}, \"de_RouteTableList\");\nvar de_RuleGroupRuleOptionsPair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output.ruleOptionSet === \"\") {\n contents[_ROu] = [];\n } else if (output[_rOS] != null && output[_rOS][_i] != null) {\n contents[_ROu] = de_RuleOptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_rOS][_i]), context);\n }\n return contents;\n}, \"de_RuleGroupRuleOptionsPair\");\nvar de_RuleGroupRuleOptionsPairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleGroupRuleOptionsPair(entry, context);\n });\n}, \"de_RuleGroupRuleOptionsPairList\");\nvar de_RuleGroupTypePair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output[_rGT] != null) {\n contents[_RGT] = (0, import_smithy_client.expectString)(output[_rGT]);\n }\n return contents;\n}, \"de_RuleGroupTypePair\");\nvar de_RuleGroupTypePairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleGroupTypePair(entry, context);\n });\n}, \"de_RuleGroupTypePairList\");\nvar de_RuleOption = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_key] != null) {\n contents[_Key] = (0, import_smithy_client.expectString)(output[_key]);\n }\n if (output.settingSet === \"\") {\n contents[_Set] = [];\n } else if (output[_sSe] != null && output[_sSe][_i] != null) {\n contents[_Set] = de_StringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSe][_i]), context);\n }\n return contents;\n}, \"de_RuleOption\");\nvar de_RuleOptionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleOption(entry, context);\n });\n}, \"de_RuleOptionList\");\nvar de_RunInstancesMonitoringEnabled = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_RunInstancesMonitoringEnabled\");\nvar de_RunScheduledInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceIdSet === \"\") {\n contents[_IIS] = [];\n } else if (output[_iIS] != null && output[_iIS][_i] != null) {\n contents[_IIS] = de_InstanceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIS][_i]), context);\n }\n return contents;\n}, \"de_RunScheduledInstancesResult\");\nvar de_S3Storage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AWSAKI] != null) {\n contents[_AWSAKI] = (0, import_smithy_client.expectString)(output[_AWSAKI]);\n }\n if (output[_bu] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_bu]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output[_uPp] != null) {\n contents[_UP] = context.base64Decoder(output[_uPp]);\n }\n if (output[_uPS] != null) {\n contents[_UPS] = (0, import_smithy_client.expectString)(output[_uPS]);\n }\n return contents;\n}, \"de_S3Storage\");\nvar de_ScheduledInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_nPe] != null) {\n contents[_NPe] = (0, import_smithy_client.expectString)(output[_nPe]);\n }\n if (output[_nSST] != null) {\n contents[_NSST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nSST]));\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pSET] != null) {\n contents[_PSET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_pSET]));\n }\n if (output[_rec] != null) {\n contents[_Rec] = de_ScheduledInstanceRecurrence(output[_rec], context);\n }\n if (output[_sIIc] != null) {\n contents[_SIIch] = (0, import_smithy_client.expectString)(output[_sIIc]);\n }\n if (output[_sDIH] != null) {\n contents[_SDIH] = (0, import_smithy_client.strictParseInt32)(output[_sDIH]);\n }\n if (output[_tED] != null) {\n contents[_TED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tED]));\n }\n if (output[_tSD] != null) {\n contents[_TSD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tSD]));\n }\n if (output[_tSIH] != null) {\n contents[_TSIH] = (0, import_smithy_client.strictParseInt32)(output[_tSIH]);\n }\n return contents;\n}, \"de_ScheduledInstance\");\nvar de_ScheduledInstanceAvailability = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aICv] != null) {\n contents[_AICv] = (0, import_smithy_client.strictParseInt32)(output[_aICv]);\n }\n if (output[_fSST] != null) {\n contents[_FSST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_fSST]));\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_mTDID] != null) {\n contents[_MTDID] = (0, import_smithy_client.strictParseInt32)(output[_mTDID]);\n }\n if (output[_mTDIDi] != null) {\n contents[_MTDIDi] = (0, import_smithy_client.strictParseInt32)(output[_mTDIDi]);\n }\n if (output[_nPe] != null) {\n contents[_NPe] = (0, import_smithy_client.expectString)(output[_nPe]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pTu] != null) {\n contents[_PT] = (0, import_smithy_client.expectString)(output[_pTu]);\n }\n if (output[_rec] != null) {\n contents[_Rec] = de_ScheduledInstanceRecurrence(output[_rec], context);\n }\n if (output[_sDIH] != null) {\n contents[_SDIH] = (0, import_smithy_client.strictParseInt32)(output[_sDIH]);\n }\n if (output[_tSIH] != null) {\n contents[_TSIH] = (0, import_smithy_client.strictParseInt32)(output[_tSIH]);\n }\n return contents;\n}, \"de_ScheduledInstanceAvailability\");\nvar de_ScheduledInstanceAvailabilitySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ScheduledInstanceAvailability(entry, context);\n });\n}, \"de_ScheduledInstanceAvailabilitySet\");\nvar de_ScheduledInstanceRecurrence = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fre] != null) {\n contents[_Fre] = (0, import_smithy_client.expectString)(output[_fre]);\n }\n if (output[_int] != null) {\n contents[_Int] = (0, import_smithy_client.strictParseInt32)(output[_int]);\n }\n if (output.occurrenceDaySet === \"\") {\n contents[_ODS] = [];\n } else if (output[_oDS] != null && output[_oDS][_i] != null) {\n contents[_ODS] = de_OccurrenceDaySet((0, import_smithy_client.getArrayIfSingleItem)(output[_oDS][_i]), context);\n }\n if (output[_oRTE] != null) {\n contents[_ORTE] = (0, import_smithy_client.parseBoolean)(output[_oRTE]);\n }\n if (output[_oU] != null) {\n contents[_OU] = (0, import_smithy_client.expectString)(output[_oU]);\n }\n return contents;\n}, \"de_ScheduledInstanceRecurrence\");\nvar de_ScheduledInstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ScheduledInstance(entry, context);\n });\n}, \"de_ScheduledInstanceSet\");\nvar de_SearchLocalGatewayRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_LocalGatewayRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_SearchLocalGatewayRoutesResult\");\nvar de_SearchTransitGatewayMulticastGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.multicastGroups === \"\") {\n contents[_MG] = [];\n } else if (output[_mG] != null && output[_mG][_i] != null) {\n contents[_MG] = de_TransitGatewayMulticastGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_mG][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_SearchTransitGatewayMulticastGroupsResult\");\nvar de_SearchTransitGatewayRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_TransitGatewayRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output[_aRAd] != null) {\n contents[_ARAd] = (0, import_smithy_client.parseBoolean)(output[_aRAd]);\n }\n return contents;\n}, \"de_SearchTransitGatewayRoutesResult\");\nvar de_SecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.ipPermissionsEgress === \"\") {\n contents[_IPE] = [];\n } else if (output[_iPE] != null && output[_iPE][_i] != null) {\n contents[_IPE] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPE][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sGA] != null) {\n contents[_SGA] = (0, import_smithy_client.expectString)(output[_sGA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_gD] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_gD]);\n }\n if (output.ipPermissions === \"\") {\n contents[_IPpe] = [];\n } else if (output[_iPpe] != null && output[_iPpe][_i] != null) {\n contents[_IPpe] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPpe][_i]), context);\n }\n return contents;\n}, \"de_SecurityGroup\");\nvar de_SecurityGroupForVpc = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pVI] != null) {\n contents[_PVIr] = (0, import_smithy_client.expectString)(output[_pVI]);\n }\n return contents;\n}, \"de_SecurityGroupForVpc\");\nvar de_SecurityGroupForVpcList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupForVpc(entry, context);\n });\n}, \"de_SecurityGroupForVpcList\");\nvar de_SecurityGroupIdentifier = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n return contents;\n}, \"de_SecurityGroupIdentifier\");\nvar de_SecurityGroupIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroupIdList\");\nvar de_SecurityGroupIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroupIdSet\");\nvar de_SecurityGroupIdStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroupIdStringList\");\nvar de_SecurityGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroup(entry, context);\n });\n}, \"de_SecurityGroupList\");\nvar de_SecurityGroupReference = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_rVI] != null) {\n contents[_RVI] = (0, import_smithy_client.expectString)(output[_rVI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n return contents;\n}, \"de_SecurityGroupReference\");\nvar de_SecurityGroupReferences = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupReference(entry, context);\n });\n}, \"de_SecurityGroupReferences\");\nvar de_SecurityGroupRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sGRI] != null) {\n contents[_SGRIe] = (0, import_smithy_client.expectString)(output[_sGRI]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gOI] != null) {\n contents[_GOI] = (0, import_smithy_client.expectString)(output[_gOI]);\n }\n if (output[_iEs] != null) {\n contents[_IE] = (0, import_smithy_client.parseBoolean)(output[_iEs]);\n }\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output[_cIidr] != null) {\n contents[_CIidr] = (0, import_smithy_client.expectString)(output[_cIidr]);\n }\n if (output[_cIid] != null) {\n contents[_CIid] = (0, import_smithy_client.expectString)(output[_cIid]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_rGIe] != null) {\n contents[_RGIe] = de_ReferencedSecurityGroup(output[_rGIe], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sGRA] != null) {\n contents[_SGRA] = (0, import_smithy_client.expectString)(output[_sGRA]);\n }\n return contents;\n}, \"de_SecurityGroupRule\");\nvar de_SecurityGroupRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupRule(entry, context);\n });\n}, \"de_SecurityGroupRuleList\");\nvar de_SecurityGroupVpcAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vOIp] != null) {\n contents[_VOIp] = (0, import_smithy_client.expectString)(output[_vOIp]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = (0, import_smithy_client.expectString)(output[_sRt]);\n }\n return contents;\n}, \"de_SecurityGroupVpcAssociation\");\nvar de_SecurityGroupVpcAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupVpcAssociation(entry, context);\n });\n}, \"de_SecurityGroupVpcAssociationList\");\nvar de_ServiceConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceType === \"\") {\n contents[_STe] = [];\n } else if (output[_sTe] != null && output[_sTe][_i] != null) {\n contents[_STe] = de_ServiceTypeDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sTe][_i]), context);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output[_sSer] != null) {\n contents[_SSe] = (0, import_smithy_client.expectString)(output[_sSer]);\n }\n if (output.availabilityZoneSet === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZS] != null && output[_aZS][_i] != null) {\n contents[_AZv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZS][_i]), context);\n }\n if (output[_aRcc] != null) {\n contents[_ARc] = (0, import_smithy_client.parseBoolean)(output[_aRcc]);\n }\n if (output[_mVE] != null) {\n contents[_MVEa] = (0, import_smithy_client.parseBoolean)(output[_mVE]);\n }\n if (output.networkLoadBalancerArnSet === \"\") {\n contents[_NLBAe] = [];\n } else if (output[_nLBAS] != null && output[_nLBAS][_i] != null) {\n contents[_NLBAe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nLBAS][_i]), context);\n }\n if (output.gatewayLoadBalancerArnSet === \"\") {\n contents[_GLBA] = [];\n } else if (output[_gLBAS] != null && output[_gLBAS][_i] != null) {\n contents[_GLBA] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_gLBAS][_i]), context);\n }\n if (output.supportedIpAddressTypeSet === \"\") {\n contents[_SIAT] = [];\n } else if (output[_sIATS] != null && output[_sIATS][_i] != null) {\n contents[_SIAT] = de_SupportedIpAddressTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_sIATS][_i]), context);\n }\n if (output.baseEndpointDnsNameSet === \"\") {\n contents[_BEDN] = [];\n } else if (output[_bEDNS] != null && output[_bEDNS][_i] != null) {\n contents[_BEDN] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_bEDNS][_i]), context);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pDNC] != null) {\n contents[_PDNC] = de_PrivateDnsNameConfiguration(output[_pDNC], context);\n }\n if (output[_pRa] != null) {\n contents[_PRa] = (0, import_smithy_client.expectString)(output[_pRa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.supportedRegionSet === \"\") {\n contents[_SRu] = [];\n } else if (output[_sRS] != null && output[_sRS][_i] != null) {\n contents[_SRu] = de_SupportedRegionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sRS][_i]), context);\n }\n if (output[_rAE] != null) {\n contents[_RAE] = (0, import_smithy_client.parseBoolean)(output[_rAE]);\n }\n return contents;\n}, \"de_ServiceConfiguration\");\nvar de_ServiceConfigurationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceConfiguration(entry, context);\n });\n}, \"de_ServiceConfigurationSet\");\nvar de_ServiceDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output.serviceType === \"\") {\n contents[_STe] = [];\n } else if (output[_sTe] != null && output[_sTe][_i] != null) {\n contents[_STe] = de_ServiceTypeDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sTe][_i]), context);\n }\n if (output[_sR] != null) {\n contents[_SRe] = (0, import_smithy_client.expectString)(output[_sR]);\n }\n if (output.availabilityZoneSet === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZS] != null && output[_aZS][_i] != null) {\n contents[_AZv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZS][_i]), context);\n }\n if (output[_ow] != null) {\n contents[_Own] = (0, import_smithy_client.expectString)(output[_ow]);\n }\n if (output.baseEndpointDnsNameSet === \"\") {\n contents[_BEDN] = [];\n } else if (output[_bEDNS] != null && output[_bEDNS][_i] != null) {\n contents[_BEDN] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_bEDNS][_i]), context);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output.privateDnsNameSet === \"\") {\n contents[_PDNr] = [];\n } else if (output[_pDNS] != null && output[_pDNS][_i] != null) {\n contents[_PDNr] = de_PrivateDnsDetailsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pDNS][_i]), context);\n }\n if (output[_vEPS] != null) {\n contents[_VEPS] = (0, import_smithy_client.parseBoolean)(output[_vEPS]);\n }\n if (output[_aRcc] != null) {\n contents[_ARc] = (0, import_smithy_client.parseBoolean)(output[_aRcc]);\n }\n if (output[_mVE] != null) {\n contents[_MVEa] = (0, import_smithy_client.parseBoolean)(output[_mVE]);\n }\n if (output[_pRa] != null) {\n contents[_PRa] = (0, import_smithy_client.expectString)(output[_pRa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pDNVS] != null) {\n contents[_PDNVS] = (0, import_smithy_client.expectString)(output[_pDNVS]);\n }\n if (output.supportedIpAddressTypeSet === \"\") {\n contents[_SIAT] = [];\n } else if (output[_sIATS] != null && output[_sIATS][_i] != null) {\n contents[_SIAT] = de_SupportedIpAddressTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_sIATS][_i]), context);\n }\n return contents;\n}, \"de_ServiceDetail\");\nvar de_ServiceDetailSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceDetail(entry, context);\n });\n}, \"de_ServiceDetailSet\");\nvar de_ServiceLinkVirtualInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sLVII] != null) {\n contents[_SLVIIe] = (0, import_smithy_client.expectString)(output[_sLVII]);\n }\n if (output[_sLVIA] != null) {\n contents[_SLVIA] = (0, import_smithy_client.expectString)(output[_sLVIA]);\n }\n if (output[_oIu] != null) {\n contents[_OIu] = (0, import_smithy_client.expectString)(output[_oIu]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_lA] != null) {\n contents[_LA] = (0, import_smithy_client.expectString)(output[_lA]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_pBA] != null) {\n contents[_PBA] = (0, import_smithy_client.strictParseLong)(output[_pBA]);\n }\n if (output[_vl] != null) {\n contents[_Vl] = (0, import_smithy_client.strictParseInt32)(output[_vl]);\n }\n if (output[_oLI] != null) {\n contents[_OLI] = (0, import_smithy_client.expectString)(output[_oLI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cSon] != null) {\n contents[_CSon] = (0, import_smithy_client.expectString)(output[_cSon]);\n }\n return contents;\n}, \"de_ServiceLinkVirtualInterface\");\nvar de_ServiceLinkVirtualInterfaceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ServiceLinkVirtualInterfaceIdSet\");\nvar de_ServiceLinkVirtualInterfaceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceLinkVirtualInterface(entry, context);\n });\n}, \"de_ServiceLinkVirtualInterfaceSet\");\nvar de_ServiceTypeDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sTe] != null) {\n contents[_STe] = (0, import_smithy_client.expectString)(output[_sTe]);\n }\n return contents;\n}, \"de_ServiceTypeDetail\");\nvar de_ServiceTypeDetailSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceTypeDetail(entry, context);\n });\n}, \"de_ServiceTypeDetailSet\");\nvar de_Snapshot = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sTt] != null) {\n contents[_STto] = (0, import_smithy_client.expectString)(output[_sTt]);\n }\n if (output[_rET] != null) {\n contents[_RET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rET]));\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_tTr] != null) {\n contents[_TTr] = (0, import_smithy_client.expectString)(output[_tTr]);\n }\n if (output[_cDM] != null) {\n contents[_CDM] = (0, import_smithy_client.strictParseInt32)(output[_cDM]);\n }\n if (output[_cTomp] != null) {\n contents[_CTomp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTomp]));\n }\n if (output[_fSSIB] != null) {\n contents[_FSSIB] = (0, import_smithy_client.strictParseLong)(output[_fSSIB]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_dEKI] != null) {\n contents[_DEKI] = (0, import_smithy_client.expectString)(output[_dEKI]);\n }\n return contents;\n}, \"de_Snapshot\");\nvar de_SnapshotDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_dIS] != null) {\n contents[_DISi] = (0, import_smithy_client.strictParseFloat)(output[_dIS]);\n }\n if (output[_f] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_f]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_ur] != null) {\n contents[_U] = (0, import_smithy_client.expectString)(output[_ur]);\n }\n if (output[_uB] != null) {\n contents[_UB] = de_UserBucketDetails(output[_uB], context);\n }\n return contents;\n}, \"de_SnapshotDetail\");\nvar de_SnapshotDetailList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotDetail(entry, context);\n });\n}, \"de_SnapshotDetailList\");\nvar de_SnapshotInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n return contents;\n}, \"de_SnapshotInfo\");\nvar de_SnapshotList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Snapshot(entry, context);\n });\n}, \"de_SnapshotList\");\nvar de_SnapshotRecycleBinInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_rBET] != null) {\n contents[_RBET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBET]));\n }\n if (output[_rBETe] != null) {\n contents[_RBETe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBETe]));\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n return contents;\n}, \"de_SnapshotRecycleBinInfo\");\nvar de_SnapshotRecycleBinInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotRecycleBinInfo(entry, context);\n });\n}, \"de_SnapshotRecycleBinInfoList\");\nvar de_SnapshotSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotInfo(entry, context);\n });\n}, \"de_SnapshotSet\");\nvar de_SnapshotTaskDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIS] != null) {\n contents[_DISi] = (0, import_smithy_client.strictParseFloat)(output[_dIS]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_f] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_f]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_ur] != null) {\n contents[_U] = (0, import_smithy_client.expectString)(output[_ur]);\n }\n if (output[_uB] != null) {\n contents[_UB] = de_UserBucketDetails(output[_uB], context);\n }\n return contents;\n}, \"de_SnapshotTaskDetail\");\nvar de_SnapshotTierStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sTt] != null) {\n contents[_STto] = (0, import_smithy_client.expectString)(output[_sTt]);\n }\n if (output[_lTST] != null) {\n contents[_LTST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lTST]));\n }\n if (output[_lTP] != null) {\n contents[_LTP] = (0, import_smithy_client.strictParseInt32)(output[_lTP]);\n }\n if (output[_lTOS] != null) {\n contents[_LTOS] = (0, import_smithy_client.expectString)(output[_lTOS]);\n }\n if (output[_lTOSD] != null) {\n contents[_LTOSD] = (0, import_smithy_client.expectString)(output[_lTOSD]);\n }\n if (output[_aCT] != null) {\n contents[_ACT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aCT]));\n }\n if (output[_rET] != null) {\n contents[_RET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rET]));\n }\n return contents;\n}, \"de_SnapshotTierStatus\");\nvar de_snapshotTierStatusSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotTierStatus(entry, context);\n });\n}, \"de_snapshotTierStatusSet\");\nvar de_SpotCapacityRebalance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSep] != null) {\n contents[_RS] = (0, import_smithy_client.expectString)(output[_rSep]);\n }\n if (output[_tD] != null) {\n contents[_TDe] = (0, import_smithy_client.strictParseInt32)(output[_tD]);\n }\n return contents;\n}, \"de_SpotCapacityRebalance\");\nvar de_SpotDatafeedSubscription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bu] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_bu]);\n }\n if (output[_fa] != null) {\n contents[_Fa] = de_SpotInstanceStateFault(output[_fa], context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_SpotDatafeedSubscription\");\nvar de_SpotFleetLaunchSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTdd] != null) {\n contents[_ATd] = (0, import_smithy_client.expectString)(output[_aTdd]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfileSpecification(output[_iIP], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_SpotFleetMonitoring(output[_mo], context);\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_InstanceNetworkInterfaceSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_SpotPlacement(output[_pla], context);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_uDs] != null) {\n contents[_UD] = (0, import_smithy_client.expectString)(output[_uDs]);\n }\n if (output[_wC] != null) {\n contents[_WCe] = (0, import_smithy_client.strictParseFloat)(output[_wC]);\n }\n if (output.tagSpecificationSet === \"\") {\n contents[_TS] = [];\n } else if (output[_tSS] != null && output[_tSS][_i] != null) {\n contents[_TS] = de_SpotFleetTagSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tSS][_i]), context);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n if (output.groupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_SG] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetLaunchSpecification\");\nvar de_SpotFleetMonitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_SpotFleetMonitoring\");\nvar de_SpotFleetRequestConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSc] != null) {\n contents[_ASc] = (0, import_smithy_client.expectString)(output[_aSc]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_sFRC] != null) {\n contents[_SFRC] = de_SpotFleetRequestConfigData(output[_sFRC], context);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n if (output[_sFRSp] != null) {\n contents[_SFRS] = (0, import_smithy_client.expectString)(output[_sFRSp]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetRequestConfig\");\nvar de_SpotFleetRequestConfigData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_oDAS] != null) {\n contents[_ODAS] = (0, import_smithy_client.expectString)(output[_oDAS]);\n }\n if (output[_sMS] != null) {\n contents[_SMS] = de_SpotMaintenanceStrategies(output[_sMS], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eCTP] != null) {\n contents[_ECTP] = (0, import_smithy_client.expectString)(output[_eCTP]);\n }\n if (output[_fC] != null) {\n contents[_FC] = (0, import_smithy_client.strictParseFloat)(output[_fC]);\n }\n if (output[_oDFC] != null) {\n contents[_ODFC] = (0, import_smithy_client.strictParseFloat)(output[_oDFC]);\n }\n if (output[_iFR] != null) {\n contents[_IFR] = (0, import_smithy_client.expectString)(output[_iFR]);\n }\n if (output.launchSpecifications === \"\") {\n contents[_LSau] = [];\n } else if (output[_lSa] != null && output[_lSa][_i] != null) {\n contents[_LSau] = de_LaunchSpecsList((0, import_smithy_client.getArrayIfSingleItem)(output[_lSa][_i]), context);\n }\n if (output.launchTemplateConfigs === \"\") {\n contents[_LTC] = [];\n } else if (output[_lTC] != null && output[_lTC][_i] != null) {\n contents[_LTC] = de_LaunchTemplateConfigList((0, import_smithy_client.getArrayIfSingleItem)(output[_lTC][_i]), context);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_tCar] != null) {\n contents[_TCa] = (0, import_smithy_client.strictParseInt32)(output[_tCar]);\n }\n if (output[_oDTC] != null) {\n contents[_ODTC] = (0, import_smithy_client.strictParseInt32)(output[_oDTC]);\n }\n if (output[_oDMTP] != null) {\n contents[_ODMTP] = (0, import_smithy_client.expectString)(output[_oDMTP]);\n }\n if (output[_sMTP] != null) {\n contents[_SMTP] = (0, import_smithy_client.expectString)(output[_sMTP]);\n }\n if (output[_tIWE] != null) {\n contents[_TIWE] = (0, import_smithy_client.parseBoolean)(output[_tIWE]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_vF] != null) {\n contents[_VF] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vF]));\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_rUI] != null) {\n contents[_RUI] = (0, import_smithy_client.parseBoolean)(output[_rUI]);\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n if (output[_lBC] != null) {\n contents[_LBC] = de_LoadBalancersConfig(output[_lBC], context);\n }\n if (output[_iPTUC] != null) {\n contents[_IPTUC] = (0, import_smithy_client.strictParseInt32)(output[_iPTUC]);\n }\n if (output[_cont] != null) {\n contents[_Con] = (0, import_smithy_client.expectString)(output[_cont]);\n }\n if (output[_tCUT] != null) {\n contents[_TCUT] = (0, import_smithy_client.expectString)(output[_tCUT]);\n }\n if (output.TagSpecification === \"\") {\n contents[_TS] = [];\n } else if (output[_TSagp] != null && output[_TSagp][_i] != null) {\n contents[_TS] = de_TagSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_TSagp][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetRequestConfigData\");\nvar de_SpotFleetRequestConfigSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotFleetRequestConfig(entry, context);\n });\n}, \"de_SpotFleetRequestConfigSet\");\nvar de_SpotFleetTagSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.tag === \"\") {\n contents[_Ta] = [];\n } else if (output[_tag] != null && output[_tag][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tag][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetTagSpecification\");\nvar de_SpotFleetTagSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotFleetTagSpecification(entry, context);\n });\n}, \"de_SpotFleetTagSpecificationList\");\nvar de_SpotInstanceRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aBHP] != null) {\n contents[_ABHP] = (0, import_smithy_client.expectString)(output[_aBHP]);\n }\n if (output[_aZG] != null) {\n contents[_AZG] = (0, import_smithy_client.expectString)(output[_aZG]);\n }\n if (output[_bDMl] != null) {\n contents[_BDMl] = (0, import_smithy_client.strictParseInt32)(output[_bDMl]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_fa] != null) {\n contents[_Fa] = de_SpotInstanceStateFault(output[_fa], context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_lG] != null) {\n contents[_LG] = (0, import_smithy_client.expectString)(output[_lG]);\n }\n if (output[_lSau] != null) {\n contents[_LSa] = de_LaunchSpecification(output[_lSau], context);\n }\n if (output[_lAZ] != null) {\n contents[_LAZ] = (0, import_smithy_client.expectString)(output[_lAZ]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_SpotInstanceStatus(output[_sta], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_vF] != null) {\n contents[_VF] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vF]));\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n return contents;\n}, \"de_SpotInstanceRequest\");\nvar de_SpotInstanceRequestList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotInstanceRequest(entry, context);\n });\n}, \"de_SpotInstanceRequestList\");\nvar de_SpotInstanceStateFault = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_SpotInstanceStateFault\");\nvar de_SpotInstanceStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n if (output[_uT] != null) {\n contents[_UTp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uT]));\n }\n return contents;\n}, \"de_SpotInstanceStatus\");\nvar de_SpotMaintenanceStrategies = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRa] != null) {\n contents[_CRap] = de_SpotCapacityRebalance(output[_cRa], context);\n }\n return contents;\n}, \"de_SpotMaintenanceStrategies\");\nvar de_SpotOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_mSai] != null) {\n contents[_MS] = de_FleetSpotMaintenanceStrategies(output[_mSai], context);\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n if (output[_iPTUC] != null) {\n contents[_IPTUC] = (0, import_smithy_client.strictParseInt32)(output[_iPTUC]);\n }\n if (output[_sITi] != null) {\n contents[_SITi] = (0, import_smithy_client.parseBoolean)(output[_sITi]);\n }\n if (output[_sAZ] != null) {\n contents[_SAZ] = (0, import_smithy_client.parseBoolean)(output[_sAZ]);\n }\n if (output[_mTC] != null) {\n contents[_MTC] = (0, import_smithy_client.strictParseInt32)(output[_mTC]);\n }\n if (output[_mTP] != null) {\n contents[_MTP] = (0, import_smithy_client.expectString)(output[_mTP]);\n }\n return contents;\n}, \"de_SpotOptions\");\nvar de_SpotPlacement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n return contents;\n}, \"de_SpotPlacement\");\nvar de_SpotPlacementScore = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_sco] != null) {\n contents[_Sco] = (0, import_smithy_client.strictParseInt32)(output[_sco]);\n }\n return contents;\n}, \"de_SpotPlacementScore\");\nvar de_SpotPlacementScores = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotPlacementScore(entry, context);\n });\n}, \"de_SpotPlacementScores\");\nvar de_SpotPrice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_SpotPrice\");\nvar de_SpotPriceHistoryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotPrice(entry, context);\n });\n}, \"de_SpotPriceHistoryList\");\nvar de_StaleIpPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output.ipRanges === \"\") {\n contents[_IRp] = [];\n } else if (output[_iRpa] != null && output[_iRpa][_i] != null) {\n contents[_IRp] = de_IpRanges((0, import_smithy_client.getArrayIfSingleItem)(output[_iRpa][_i]), context);\n }\n if (output.prefixListIds === \"\") {\n contents[_PLIr] = [];\n } else if (output[_pLIr] != null && output[_pLIr][_i] != null) {\n contents[_PLIr] = de_PrefixListIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLIr][_i]), context);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output.groups === \"\") {\n contents[_UIGP] = [];\n } else if (output[_gr] != null && output[_gr][_i] != null) {\n contents[_UIGP] = de_UserIdGroupPairSet((0, import_smithy_client.getArrayIfSingleItem)(output[_gr][_i]), context);\n }\n return contents;\n}, \"de_StaleIpPermission\");\nvar de_StaleIpPermissionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_StaleIpPermission(entry, context);\n });\n}, \"de_StaleIpPermissionSet\");\nvar de_StaleSecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output.staleIpPermissions === \"\") {\n contents[_SIP] = [];\n } else if (output[_sIP] != null && output[_sIP][_i] != null) {\n contents[_SIP] = de_StaleIpPermissionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIP][_i]), context);\n }\n if (output.staleIpPermissionsEgress === \"\") {\n contents[_SIPE] = [];\n } else if (output[_sIPE] != null && output[_sIPE][_i] != null) {\n contents[_SIPE] = de_StaleIpPermissionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIPE][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_StaleSecurityGroup\");\nvar de_StaleSecurityGroupSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_StaleSecurityGroup(entry, context);\n });\n}, \"de_StaleSecurityGroupSet\");\nvar de_StartDeclarativePoliciesReportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rI] != null) {\n contents[_RIep] = (0, import_smithy_client.expectString)(output[_rI]);\n }\n return contents;\n}, \"de_StartDeclarativePoliciesReportResult\");\nvar de_StartInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_SIta] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_SIta] = de_InstanceStateChangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_StartInstancesResult\");\nvar de_StartNetworkInsightsAccessScopeAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAe] != null) {\n contents[_NIASAet] = de_NetworkInsightsAccessScopeAnalysis(output[_nIASAe], context);\n }\n return contents;\n}, \"de_StartNetworkInsightsAccessScopeAnalysisResult\");\nvar de_StartNetworkInsightsAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIA] != null) {\n contents[_NIAe] = de_NetworkInsightsAnalysis(output[_nIA], context);\n }\n return contents;\n}, \"de_StartNetworkInsightsAnalysisResult\");\nvar de_StartVpcEndpointServicePrivateDnsVerificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_StartVpcEndpointServicePrivateDnsVerificationResult\");\nvar de_StateReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_StateReason\");\nvar de_StopInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_SIto] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_SIto] = de_InstanceStateChangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_StopInstancesResult\");\nvar de_Storage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S_] != null) {\n contents[_S_] = de_S3Storage(output[_S_], context);\n }\n return contents;\n}, \"de_Storage\");\nvar de_StoreImageTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIm] != null) {\n contents[_AIm] = (0, import_smithy_client.expectString)(output[_aIm]);\n }\n if (output[_tSTa] != null) {\n contents[_TSTa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tSTa]));\n }\n if (output[_bu] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_bu]);\n }\n if (output[_sKo] != null) {\n contents[_SKo] = (0, import_smithy_client.expectString)(output[_sKo]);\n }\n if (output[_pP] != null) {\n contents[_PP] = (0, import_smithy_client.strictParseInt32)(output[_pP]);\n }\n if (output[_sTS] != null) {\n contents[_STSt] = (0, import_smithy_client.expectString)(output[_sTS]);\n }\n if (output[_sTFR] != null) {\n contents[_STFR] = (0, import_smithy_client.expectString)(output[_sTFR]);\n }\n return contents;\n}, \"de_StoreImageTaskResult\");\nvar de_StoreImageTaskResultSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_StoreImageTaskResult(entry, context);\n });\n}, \"de_StoreImageTaskResultSet\");\nvar de_StringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_StringList\");\nvar de_Subnet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_eLADI] != null) {\n contents[_ELADI] = (0, import_smithy_client.strictParseInt32)(output[_eLADI]);\n }\n if (output[_mCOIOL] != null) {\n contents[_MCOIOL] = (0, import_smithy_client.parseBoolean)(output[_mCOIOL]);\n }\n if (output[_cOIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_cOIP]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_aIAOC] != null) {\n contents[_AIAOC] = (0, import_smithy_client.parseBoolean)(output[_aIAOC]);\n }\n if (output.ipv6CidrBlockAssociationSet === \"\") {\n contents[_ICBAS] = [];\n } else if (output[_iCBAS] != null && output[_iCBAS][_i] != null) {\n contents[_ICBAS] = de_SubnetIpv6CidrBlockAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBAS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sAub] != null) {\n contents[_SAub] = (0, import_smithy_client.expectString)(output[_sAub]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_eDn] != null) {\n contents[_EDn] = (0, import_smithy_client.parseBoolean)(output[_eDn]);\n }\n if (output[_iN] != null) {\n contents[_IN] = (0, import_smithy_client.parseBoolean)(output[_iN]);\n }\n if (output[_pDNOOL] != null) {\n contents[_PDNOOL] = de_PrivateDnsNameOptionsOnLaunch(output[_pDNOOL], context);\n }\n if (output[_bPAS] != null) {\n contents[_BPAS] = de_BlockPublicAccessStates(output[_bPAS], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_aIAC] != null) {\n contents[_AIAC] = (0, import_smithy_client.strictParseInt32)(output[_aIAC]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_dFA] != null) {\n contents[_DFA] = (0, import_smithy_client.parseBoolean)(output[_dFA]);\n }\n if (output[_mPIOL] != null) {\n contents[_MPIOL] = (0, import_smithy_client.parseBoolean)(output[_mPIOL]);\n }\n return contents;\n}, \"de_Subnet\");\nvar de_SubnetAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_SubnetAssociation\");\nvar de_SubnetAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetAssociation(entry, context);\n });\n}, \"de_SubnetAssociationList\");\nvar de_SubnetCidrBlockState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_SubnetCidrBlockState\");\nvar de_SubnetCidrReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCRI] != null) {\n contents[_SCRIu] = (0, import_smithy_client.expectString)(output[_sCRI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_rT] != null) {\n contents[_RTe] = (0, import_smithy_client.expectString)(output[_rT]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_SubnetCidrReservation\");\nvar de_SubnetCidrReservationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetCidrReservation(entry, context);\n });\n}, \"de_SubnetCidrReservationList\");\nvar de_SubnetIpPrefixes = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output.ipPrefixSet === \"\") {\n contents[_IPpre] = [];\n } else if (output[_iPSpr] != null && output[_iPSpr][_i] != null) {\n contents[_IPpre] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpr][_i]), context);\n }\n return contents;\n}, \"de_SubnetIpPrefixes\");\nvar de_SubnetIpPrefixesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetIpPrefixes(entry, context);\n });\n}, \"de_SubnetIpPrefixesList\");\nvar de_SubnetIpv6CidrBlockAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n if (output[_iCBS] != null) {\n contents[_ICBS] = de_SubnetCidrBlockState(output[_iCBS], context);\n }\n if (output[_iAA] != null) {\n contents[_IAA] = (0, import_smithy_client.expectString)(output[_iAA]);\n }\n if (output[_iSpo] != null) {\n contents[_ISpo] = (0, import_smithy_client.expectString)(output[_iSpo]);\n }\n return contents;\n}, \"de_SubnetIpv6CidrBlockAssociation\");\nvar de_SubnetIpv6CidrBlockAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetIpv6CidrBlockAssociation(entry, context);\n });\n}, \"de_SubnetIpv6CidrBlockAssociationSet\");\nvar de_SubnetList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Subnet(entry, context);\n });\n}, \"de_SubnetList\");\nvar de_Subscription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_d] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_d]);\n }\n if (output[_met] != null) {\n contents[_Met] = (0, import_smithy_client.expectString)(output[_met]);\n }\n if (output[_stat] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_stat]);\n }\n if (output[_pe] != null) {\n contents[_Per] = (0, import_smithy_client.expectString)(output[_pe]);\n }\n return contents;\n}, \"de_Subscription\");\nvar de_SubscriptionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Subscription(entry, context);\n });\n}, \"de_SubscriptionList\");\nvar de_SuccessfulInstanceCreditSpecificationItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_SuccessfulInstanceCreditSpecificationItem\");\nvar de_SuccessfulInstanceCreditSpecificationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SuccessfulInstanceCreditSpecificationItem(entry, context);\n });\n}, \"de_SuccessfulInstanceCreditSpecificationSet\");\nvar de_SuccessfulQueuedPurchaseDeletion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_SuccessfulQueuedPurchaseDeletion\");\nvar de_SuccessfulQueuedPurchaseDeletionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SuccessfulQueuedPurchaseDeletion(entry, context);\n });\n}, \"de_SuccessfulQueuedPurchaseDeletionSet\");\nvar de_SupportedAdditionalProcessorFeatureList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SupportedAdditionalProcessorFeatureList\");\nvar de_SupportedIpAddressTypes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SupportedIpAddressTypes\");\nvar de_SupportedRegionDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n if (output[_sSer] != null) {\n contents[_SSe] = (0, import_smithy_client.expectString)(output[_sSer]);\n }\n return contents;\n}, \"de_SupportedRegionDetail\");\nvar de_SupportedRegionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SupportedRegionDetail(entry, context);\n });\n}, \"de_SupportedRegionSet\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_TagDescription\");\nvar de_TagDescriptionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TagDescription(entry, context);\n });\n}, \"de_TagDescriptionList\");\nvar de_TagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagList\");\nvar de_TagSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.Tag === \"\") {\n contents[_Ta] = [];\n } else if (output[_Tag] != null && output[_Tag][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tag][_i]), context);\n }\n return contents;\n}, \"de_TagSpecification\");\nvar de_TagSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TagSpecification(entry, context);\n });\n}, \"de_TagSpecificationList\");\nvar de_TargetCapacitySpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tTC] != null) {\n contents[_TTC] = (0, import_smithy_client.strictParseInt32)(output[_tTC]);\n }\n if (output[_oDTC] != null) {\n contents[_ODTC] = (0, import_smithy_client.strictParseInt32)(output[_oDTC]);\n }\n if (output[_sTC] != null) {\n contents[_STC] = (0, import_smithy_client.strictParseInt32)(output[_sTC]);\n }\n if (output[_dTCT] != null) {\n contents[_DTCT] = (0, import_smithy_client.expectString)(output[_dTCT]);\n }\n if (output[_tCUT] != null) {\n contents[_TCUT] = (0, import_smithy_client.expectString)(output[_tCUT]);\n }\n return contents;\n}, \"de_TargetCapacitySpecification\");\nvar de_TargetConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_oIf] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_oIf]);\n }\n return contents;\n}, \"de_TargetConfiguration\");\nvar de_TargetGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n return contents;\n}, \"de_TargetGroup\");\nvar de_TargetGroups = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroup(entry, context);\n });\n}, \"de_TargetGroups\");\nvar de_TargetGroupsConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.targetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_tGa] != null && output[_tGa][_i] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_tGa][_i]), context);\n }\n return contents;\n}, \"de_TargetGroupsConfig\");\nvar de_TargetNetwork = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_tNI] != null) {\n contents[_TNI] = (0, import_smithy_client.expectString)(output[_tNI]);\n }\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_AssociationStatus(output[_sta], context);\n }\n if (output.securityGroups === \"\") {\n contents[_SG] = [];\n } else if (output[_sGe] != null && output[_sGe][_i] != null) {\n contents[_SG] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGe][_i]), context);\n }\n return contents;\n}, \"de_TargetNetwork\");\nvar de_TargetNetworkSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetNetwork(entry, context);\n });\n}, \"de_TargetNetworkSet\");\nvar de_TargetReservationValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rVe] != null) {\n contents[_RVe] = de_ReservationValue(output[_rVe], context);\n }\n if (output[_tCa] != null) {\n contents[_TCar] = de_TargetConfiguration(output[_tCa], context);\n }\n return contents;\n}, \"de_TargetReservationValue\");\nvar de_TargetReservationValueSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetReservationValue(entry, context);\n });\n}, \"de_TargetReservationValueSet\");\nvar de_TerminateClientVpnConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_us] != null) {\n contents[_Us] = (0, import_smithy_client.expectString)(output[_us]);\n }\n if (output.connectionStatuses === \"\") {\n contents[_CSonn] = [];\n } else if (output[_cSonn] != null && output[_cSonn][_i] != null) {\n contents[_CSonn] = de_TerminateConnectionStatusSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cSonn][_i]), context);\n }\n return contents;\n}, \"de_TerminateClientVpnConnectionsResult\");\nvar de_TerminateConnectionStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cIon] != null) {\n contents[_CIo] = (0, import_smithy_client.expectString)(output[_cIon]);\n }\n if (output[_pSre] != null) {\n contents[_PSre] = de_ClientVpnConnectionStatus(output[_pSre], context);\n }\n if (output[_cSur] != null) {\n contents[_CSur] = de_ClientVpnConnectionStatus(output[_cSur], context);\n }\n return contents;\n}, \"de_TerminateConnectionStatus\");\nvar de_TerminateConnectionStatusSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TerminateConnectionStatus(entry, context);\n });\n}, \"de_TerminateConnectionStatusSet\");\nvar de_TerminateInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_TIer] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_TIer] = de_InstanceStateChangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_TerminateInstancesResult\");\nvar de_ThreadsPerCoreList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_ThreadsPerCoreList\");\nvar de_ThroughResourcesStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSeso] != null) {\n contents[_RSe] = de_ResourceStatement(output[_rSeso], context);\n }\n return contents;\n}, \"de_ThroughResourcesStatement\");\nvar de_ThroughResourcesStatementList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ThroughResourcesStatement(entry, context);\n });\n}, \"de_ThroughResourcesStatementList\");\nvar de_TotalLocalStorageGB = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseFloat)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseFloat)(output[_ma]);\n }\n return contents;\n}, \"de_TotalLocalStorageGB\");\nvar de_TrafficMirrorFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n if (output.ingressFilterRuleSet === \"\") {\n contents[_IFRn] = [];\n } else if (output[_iFRS] != null && output[_iFRS][_i] != null) {\n contents[_IFRn] = de_TrafficMirrorFilterRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_iFRS][_i]), context);\n }\n if (output.egressFilterRuleSet === \"\") {\n contents[_EFR] = [];\n } else if (output[_eFRS] != null && output[_eFRS][_i] != null) {\n contents[_EFR] = de_TrafficMirrorFilterRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_eFRS][_i]), context);\n }\n if (output.networkServiceSet === \"\") {\n contents[_NSe] = [];\n } else if (output[_nSS] != null && output[_nSS][_i] != null) {\n contents[_NSe] = de_TrafficMirrorNetworkServiceList((0, import_smithy_client.getArrayIfSingleItem)(output[_nSS][_i]), context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrafficMirrorFilter\");\nvar de_TrafficMirrorFilterRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFRI] != null) {\n contents[_TMFRI] = (0, import_smithy_client.expectString)(output[_tMFRI]);\n }\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n if (output[_tDr] != null) {\n contents[_TD] = (0, import_smithy_client.expectString)(output[_tDr]);\n }\n if (output[_rN] != null) {\n contents[_RNu] = (0, import_smithy_client.strictParseInt32)(output[_rN]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.strictParseInt32)(output[_pr]);\n }\n if (output[_dPR] != null) {\n contents[_DPR] = de_TrafficMirrorPortRange(output[_dPR], context);\n }\n if (output[_sPR] != null) {\n contents[_SPR] = de_TrafficMirrorPortRange(output[_sPR], context);\n }\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_sCB] != null) {\n contents[_SCB] = (0, import_smithy_client.expectString)(output[_sCB]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrafficMirrorFilterRule\");\nvar de_TrafficMirrorFilterRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorFilterRule(entry, context);\n });\n}, \"de_TrafficMirrorFilterRuleList\");\nvar de_TrafficMirrorFilterRuleSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorFilterRule(entry, context);\n });\n}, \"de_TrafficMirrorFilterRuleSet\");\nvar de_TrafficMirrorFilterSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorFilter(entry, context);\n });\n}, \"de_TrafficMirrorFilterSet\");\nvar de_TrafficMirrorNetworkServiceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_TrafficMirrorNetworkServiceList\");\nvar de_TrafficMirrorPortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n return contents;\n}, \"de_TrafficMirrorPortRange\");\nvar de_TrafficMirrorSession = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMSI] != null) {\n contents[_TMSI] = (0, import_smithy_client.expectString)(output[_tMSI]);\n }\n if (output[_tMTI] != null) {\n contents[_TMTI] = (0, import_smithy_client.expectString)(output[_tMTI]);\n }\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pLa] != null) {\n contents[_PL] = (0, import_smithy_client.strictParseInt32)(output[_pLa]);\n }\n if (output[_sNes] != null) {\n contents[_SN] = (0, import_smithy_client.strictParseInt32)(output[_sNes]);\n }\n if (output[_vNI] != null) {\n contents[_VNI] = (0, import_smithy_client.strictParseInt32)(output[_vNI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrafficMirrorSession\");\nvar de_TrafficMirrorSessionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorSession(entry, context);\n });\n}, \"de_TrafficMirrorSessionSet\");\nvar de_TrafficMirrorTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMTI] != null) {\n contents[_TMTI] = (0, import_smithy_client.expectString)(output[_tMTI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_nLBA] != null) {\n contents[_NLBA] = (0, import_smithy_client.expectString)(output[_nLBA]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_gLBEI] != null) {\n contents[_GLBEI] = (0, import_smithy_client.expectString)(output[_gLBEI]);\n }\n return contents;\n}, \"de_TrafficMirrorTarget\");\nvar de_TrafficMirrorTargetSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorTarget(entry, context);\n });\n}, \"de_TrafficMirrorTargetSet\");\nvar de_TransitGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_tGAra] != null) {\n contents[_TGAran] = (0, import_smithy_client.expectString)(output[_tGAra]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayOptions(output[_opt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGateway\");\nvar de_TransitGatewayAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayAssociation\");\nvar de_TransitGatewayAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_tGOI] != null) {\n contents[_TGOI] = (0, import_smithy_client.expectString)(output[_tGOI]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayAttachmentAssociation(output[_ass], context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayAttachment\");\nvar de_TransitGatewayAttachmentAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayAttachmentAssociation\");\nvar de_TransitGatewayAttachmentBgpConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAran] != null) {\n contents[_TGArans] = (0, import_smithy_client.strictParseLong)(output[_tGAran]);\n }\n if (output[_pAee] != null) {\n contents[_PAee] = (0, import_smithy_client.strictParseLong)(output[_pAee]);\n }\n if (output[_tGArans] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_tGArans]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_bSg] != null) {\n contents[_BS] = (0, import_smithy_client.expectString)(output[_bSg]);\n }\n return contents;\n}, \"de_TransitGatewayAttachmentBgpConfiguration\");\nvar de_TransitGatewayAttachmentBgpConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayAttachmentBgpConfiguration(entry, context);\n });\n}, \"de_TransitGatewayAttachmentBgpConfigurationList\");\nvar de_TransitGatewayAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayAttachment(entry, context);\n });\n}, \"de_TransitGatewayAttachmentList\");\nvar de_TransitGatewayAttachmentPropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayAttachmentPropagation\");\nvar de_TransitGatewayAttachmentPropagationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayAttachmentPropagation(entry, context);\n });\n}, \"de_TransitGatewayAttachmentPropagationList\");\nvar de_TransitGatewayConnect = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tTGAI] != null) {\n contents[_TTGAI] = (0, import_smithy_client.expectString)(output[_tTGAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayConnectOptions(output[_opt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayConnect\");\nvar de_TransitGatewayConnectList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayConnect(entry, context);\n });\n}, \"de_TransitGatewayConnectList\");\nvar de_TransitGatewayConnectOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n return contents;\n}, \"de_TransitGatewayConnectOptions\");\nvar de_TransitGatewayConnectPeer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tGCPI] != null) {\n contents[_TGCPI] = (0, import_smithy_client.expectString)(output[_tGCPI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_cPC] != null) {\n contents[_CPC] = de_TransitGatewayConnectPeerConfiguration(output[_cPC], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayConnectPeer\");\nvar de_TransitGatewayConnectPeerConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGArans] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_tGArans]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output.insideCidrBlocks === \"\") {\n contents[_ICBn] = [];\n } else if (output[_iCBn] != null && output[_iCBn][_i] != null) {\n contents[_ICBn] = de_InsideCidrBlocksStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBn][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output.bgpConfigurations === \"\") {\n contents[_BCg] = [];\n } else if (output[_bCg] != null && output[_bCg][_i] != null) {\n contents[_BCg] = de_TransitGatewayAttachmentBgpConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(output[_bCg][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayConnectPeerConfiguration\");\nvar de_TransitGatewayConnectPeerList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayConnectPeer(entry, context);\n });\n}, \"de_TransitGatewayConnectPeerList\");\nvar de_TransitGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGateway(entry, context);\n });\n}, \"de_TransitGatewayList\");\nvar de_TransitGatewayMulticastDeregisteredGroupMembers = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.deregisteredNetworkInterfaceIds === \"\") {\n contents[_DNII] = [];\n } else if (output[_dNII] != null && output[_dNII][_i] != null) {\n contents[_DNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDeregisteredGroupMembers\");\nvar de_TransitGatewayMulticastDeregisteredGroupSources = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.deregisteredNetworkInterfaceIds === \"\") {\n contents[_DNII] = [];\n } else if (output[_dNII] != null && output[_dNII][_i] != null) {\n contents[_DNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDeregisteredGroupSources\");\nvar de_TransitGatewayMulticastDomain = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_tGMDA] != null) {\n contents[_TGMDA] = (0, import_smithy_client.expectString)(output[_tGMDA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayMulticastDomainOptions(output[_opt], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomain\");\nvar de_TransitGatewayMulticastDomainAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_su] != null) {\n contents[_Su] = de_SubnetAssociation(output[_su], context);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomainAssociation\");\nvar de_TransitGatewayMulticastDomainAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayMulticastDomainAssociation(entry, context);\n });\n}, \"de_TransitGatewayMulticastDomainAssociationList\");\nvar de_TransitGatewayMulticastDomainAssociations = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output.subnets === \"\") {\n contents[_Subn] = [];\n } else if (output[_sub] != null && output[_sub][_i] != null) {\n contents[_Subn] = de_SubnetAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sub][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomainAssociations\");\nvar de_TransitGatewayMulticastDomainList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayMulticastDomain(entry, context);\n });\n}, \"de_TransitGatewayMulticastDomainList\");\nvar de_TransitGatewayMulticastDomainOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iSg] != null) {\n contents[_ISg] = (0, import_smithy_client.expectString)(output[_iSg]);\n }\n if (output[_sSS] != null) {\n contents[_SSS] = (0, import_smithy_client.expectString)(output[_sSS]);\n }\n if (output[_aASA] != null) {\n contents[_AASA] = (0, import_smithy_client.expectString)(output[_aASA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomainOptions\");\nvar de_TransitGatewayMulticastGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_gM] != null) {\n contents[_GM] = (0, import_smithy_client.parseBoolean)(output[_gM]);\n }\n if (output[_gSr] != null) {\n contents[_GS] = (0, import_smithy_client.parseBoolean)(output[_gSr]);\n }\n if (output[_mTe] != null) {\n contents[_MTe] = (0, import_smithy_client.expectString)(output[_mTe]);\n }\n if (output[_sTo] != null) {\n contents[_STo] = (0, import_smithy_client.expectString)(output[_sTo]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastGroup\");\nvar de_TransitGatewayMulticastGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayMulticastGroup(entry, context);\n });\n}, \"de_TransitGatewayMulticastGroupList\");\nvar de_TransitGatewayMulticastRegisteredGroupMembers = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.registeredNetworkInterfaceIds === \"\") {\n contents[_RNII] = [];\n } else if (output[_rNII] != null && output[_rNII][_i] != null) {\n contents[_RNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastRegisteredGroupMembers\");\nvar de_TransitGatewayMulticastRegisteredGroupSources = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.registeredNetworkInterfaceIds === \"\") {\n contents[_RNII] = [];\n } else if (output[_rNII] != null && output[_rNII][_i] != null) {\n contents[_RNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastRegisteredGroupSources\");\nvar de_TransitGatewayOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSA] != null) {\n contents[_ASA] = (0, import_smithy_client.strictParseLong)(output[_aSA]);\n }\n if (output.transitGatewayCidrBlocks === \"\") {\n contents[_TGCB] = [];\n } else if (output[_tGCB] != null && output[_tGCB][_i] != null) {\n contents[_TGCB] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGCB][_i]), context);\n }\n if (output[_aASAu] != null) {\n contents[_AASAu] = (0, import_smithy_client.expectString)(output[_aASAu]);\n }\n if (output[_dRTA] != null) {\n contents[_DRTA] = (0, import_smithy_client.expectString)(output[_dRTA]);\n }\n if (output[_aDRTI] != null) {\n contents[_ADRTI] = (0, import_smithy_client.expectString)(output[_aDRTI]);\n }\n if (output[_dRTP] != null) {\n contents[_DRTP] = (0, import_smithy_client.expectString)(output[_dRTP]);\n }\n if (output[_pDRTI] != null) {\n contents[_PDRTI] = (0, import_smithy_client.expectString)(output[_pDRTI]);\n }\n if (output[_vESpn] != null) {\n contents[_VES] = (0, import_smithy_client.expectString)(output[_vESpn]);\n }\n if (output[_dSn] != null) {\n contents[_DSns] = (0, import_smithy_client.expectString)(output[_dSn]);\n }\n if (output[_sGRSec] != null) {\n contents[_SGRS] = (0, import_smithy_client.expectString)(output[_sGRSec]);\n }\n if (output[_mSu] != null) {\n contents[_MSu] = (0, import_smithy_client.expectString)(output[_mSu]);\n }\n return contents;\n}, \"de_TransitGatewayOptions\");\nvar de_TransitGatewayPeeringAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_aTGAI] != null) {\n contents[_ATGAI] = (0, import_smithy_client.expectString)(output[_aTGAI]);\n }\n if (output[_rTIe] != null) {\n contents[_RTIe] = de_PeeringTgwInfo(output[_rTIe], context);\n }\n if (output[_aTI] != null) {\n contents[_ATIc] = de_PeeringTgwInfo(output[_aTI], context);\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayPeeringAttachmentOptions(output[_opt], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_PeeringAttachmentStatus(output[_sta], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayPeeringAttachment\");\nvar de_TransitGatewayPeeringAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPeeringAttachment(entry, context);\n });\n}, \"de_TransitGatewayPeeringAttachmentList\");\nvar de_TransitGatewayPeeringAttachmentOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dRy] != null) {\n contents[_DRy] = (0, import_smithy_client.expectString)(output[_dRy]);\n }\n return contents;\n}, \"de_TransitGatewayPeeringAttachmentOptions\");\nvar de_TransitGatewayPolicyRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCB] != null) {\n contents[_SCB] = (0, import_smithy_client.expectString)(output[_sCB]);\n }\n if (output[_sPR] != null) {\n contents[_SPR] = (0, import_smithy_client.expectString)(output[_sPR]);\n }\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_dPR] != null) {\n contents[_DPR] = (0, import_smithy_client.expectString)(output[_dPR]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_mDe] != null) {\n contents[_MDe] = de_TransitGatewayPolicyRuleMetaData(output[_mDe], context);\n }\n return contents;\n}, \"de_TransitGatewayPolicyRule\");\nvar de_TransitGatewayPolicyRuleMetaData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mDK] != null) {\n contents[_MDK] = (0, import_smithy_client.expectString)(output[_mDK]);\n }\n if (output[_mDV] != null) {\n contents[_MDV] = (0, import_smithy_client.expectString)(output[_mDV]);\n }\n return contents;\n}, \"de_TransitGatewayPolicyRuleMetaData\");\nvar de_TransitGatewayPolicyTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPTI] != null) {\n contents[_TGPTI] = (0, import_smithy_client.expectString)(output[_tGPTI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayPolicyTable\");\nvar de_TransitGatewayPolicyTableAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPTI] != null) {\n contents[_TGPTI] = (0, import_smithy_client.expectString)(output[_tGPTI]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayPolicyTableAssociation\");\nvar de_TransitGatewayPolicyTableAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPolicyTableAssociation(entry, context);\n });\n}, \"de_TransitGatewayPolicyTableAssociationList\");\nvar de_TransitGatewayPolicyTableEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pRN] != null) {\n contents[_PRNo] = (0, import_smithy_client.expectString)(output[_pRN]);\n }\n if (output[_pRol] != null) {\n contents[_PRol] = de_TransitGatewayPolicyRule(output[_pRol], context);\n }\n if (output[_tRTI] != null) {\n contents[_TRTI] = (0, import_smithy_client.expectString)(output[_tRTI]);\n }\n return contents;\n}, \"de_TransitGatewayPolicyTableEntry\");\nvar de_TransitGatewayPolicyTableEntryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPolicyTableEntry(entry, context);\n });\n}, \"de_TransitGatewayPolicyTableEntryList\");\nvar de_TransitGatewayPolicyTableList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPolicyTable(entry, context);\n });\n}, \"de_TransitGatewayPolicyTableList\");\nvar de_TransitGatewayPrefixListAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n return contents;\n}, \"de_TransitGatewayPrefixListAttachment\");\nvar de_TransitGatewayPrefixListReference = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_pLOI] != null) {\n contents[_PLOI] = (0, import_smithy_client.expectString)(output[_pLOI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_bl] != null) {\n contents[_Bl] = (0, import_smithy_client.parseBoolean)(output[_bl]);\n }\n if (output[_tGAr] != null) {\n contents[_TGAra] = de_TransitGatewayPrefixListAttachment(output[_tGAr], context);\n }\n return contents;\n}, \"de_TransitGatewayPrefixListReference\");\nvar de_TransitGatewayPrefixListReferenceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPrefixListReference(entry, context);\n });\n}, \"de_TransitGatewayPrefixListReferenceSet\");\nvar de_TransitGatewayPropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n return contents;\n}, \"de_TransitGatewayPropagation\");\nvar de_TransitGatewayRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n if (output.transitGatewayAttachments === \"\") {\n contents[_TGAr] = [];\n } else if (output[_tGA] != null && output[_tGA][_i] != null) {\n contents[_TGAr] = de_TransitGatewayRouteAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGA][_i]), context);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayRoute\");\nvar de_TransitGatewayRouteAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n return contents;\n}, \"de_TransitGatewayRouteAttachment\");\nvar de_TransitGatewayRouteAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteAttachment(entry, context);\n });\n}, \"de_TransitGatewayRouteAttachmentList\");\nvar de_TransitGatewayRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRoute(entry, context);\n });\n}, \"de_TransitGatewayRouteList\");\nvar de_TransitGatewayRouteTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_dART] != null) {\n contents[_DART] = (0, import_smithy_client.parseBoolean)(output[_dART]);\n }\n if (output[_dPRT] != null) {\n contents[_DPRT] = (0, import_smithy_client.parseBoolean)(output[_dPRT]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayRouteTable\");\nvar de_TransitGatewayRouteTableAnnouncement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cNIo] != null) {\n contents[_CNIor] = (0, import_smithy_client.expectString)(output[_cNIo]);\n }\n if (output[_pTGI] != null) {\n contents[_PTGI] = (0, import_smithy_client.expectString)(output[_pTGI]);\n }\n if (output[_pCNI] != null) {\n contents[_PCNI] = (0, import_smithy_client.expectString)(output[_pCNI]);\n }\n if (output[_pAI] != null) {\n contents[_PAIe] = (0, import_smithy_client.expectString)(output[_pAI]);\n }\n if (output[_aDn] != null) {\n contents[_ADn] = (0, import_smithy_client.expectString)(output[_aDn]);\n }\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayRouteTableAnnouncement\");\nvar de_TransitGatewayRouteTableAnnouncementList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTableAnnouncement(entry, context);\n });\n}, \"de_TransitGatewayRouteTableAnnouncementList\");\nvar de_TransitGatewayRouteTableAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayRouteTableAssociation\");\nvar de_TransitGatewayRouteTableAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTableAssociation(entry, context);\n });\n}, \"de_TransitGatewayRouteTableAssociationList\");\nvar de_TransitGatewayRouteTableList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTable(entry, context);\n });\n}, \"de_TransitGatewayRouteTableList\");\nvar de_TransitGatewayRouteTablePropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n return contents;\n}, \"de_TransitGatewayRouteTablePropagation\");\nvar de_TransitGatewayRouteTablePropagationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTablePropagation(entry, context);\n });\n}, \"de_TransitGatewayRouteTablePropagationList\");\nvar de_TransitGatewayRouteTableRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_rOo] != null) {\n contents[_ROo] = (0, import_smithy_client.expectString)(output[_rOo]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n return contents;\n}, \"de_TransitGatewayRouteTableRoute\");\nvar de_TransitGatewayVpcAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vOIp] != null) {\n contents[_VOIp] = (0, import_smithy_client.expectString)(output[_vOIp]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.subnetIds === \"\") {\n contents[_SIu] = [];\n } else if (output[_sIub] != null && output[_sIub][_i] != null) {\n contents[_SIu] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIub][_i]), context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayVpcAttachmentOptions(output[_opt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayVpcAttachment\");\nvar de_TransitGatewayVpcAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayVpcAttachment(entry, context);\n });\n}, \"de_TransitGatewayVpcAttachmentList\");\nvar de_TransitGatewayVpcAttachmentOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dSn] != null) {\n contents[_DSns] = (0, import_smithy_client.expectString)(output[_dSn]);\n }\n if (output[_sGRSec] != null) {\n contents[_SGRS] = (0, import_smithy_client.expectString)(output[_sGRSec]);\n }\n if (output[_iSpvu] != null) {\n contents[_ISp] = (0, import_smithy_client.expectString)(output[_iSpvu]);\n }\n if (output[_aMSp] != null) {\n contents[_AMS] = (0, import_smithy_client.expectString)(output[_aMSp]);\n }\n return contents;\n}, \"de_TransitGatewayVpcAttachmentOptions\");\nvar de_TrunkInterfaceAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_bII] != null) {\n contents[_BII] = (0, import_smithy_client.expectString)(output[_bII]);\n }\n if (output[_tII] != null) {\n contents[_TII] = (0, import_smithy_client.expectString)(output[_tII]);\n }\n if (output[_iPnte] != null) {\n contents[_IPnte] = (0, import_smithy_client.expectString)(output[_iPnte]);\n }\n if (output[_vIl] != null) {\n contents[_VIl] = (0, import_smithy_client.strictParseInt32)(output[_vIl]);\n }\n if (output[_gK] != null) {\n contents[_GK] = (0, import_smithy_client.strictParseInt32)(output[_gK]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrunkInterfaceAssociation\");\nvar de_TrunkInterfaceAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrunkInterfaceAssociation(entry, context);\n });\n}, \"de_TrunkInterfaceAssociationList\");\nvar de_TunnelOption = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oIA] != null) {\n contents[_OIA] = (0, import_smithy_client.expectString)(output[_oIA]);\n }\n if (output[_tICu] != null) {\n contents[_TIC] = (0, import_smithy_client.expectString)(output[_tICu]);\n }\n if (output[_tIIC] != null) {\n contents[_TIIC] = (0, import_smithy_client.expectString)(output[_tIIC]);\n }\n if (output[_pSK] != null) {\n contents[_PSK] = (0, import_smithy_client.expectString)(output[_pSK]);\n }\n if (output[_pLSh] != null) {\n contents[_PLS] = (0, import_smithy_client.strictParseInt32)(output[_pLSh]);\n }\n if (output[_pLSha] != null) {\n contents[_PLSh] = (0, import_smithy_client.strictParseInt32)(output[_pLSha]);\n }\n if (output[_rMTS] != null) {\n contents[_RMTS] = (0, import_smithy_client.strictParseInt32)(output[_rMTS]);\n }\n if (output[_rFP] != null) {\n contents[_RFP] = (0, import_smithy_client.strictParseInt32)(output[_rFP]);\n }\n if (output[_rWS] != null) {\n contents[_RWS] = (0, import_smithy_client.strictParseInt32)(output[_rWS]);\n }\n if (output[_dTS] != null) {\n contents[_DTS] = (0, import_smithy_client.strictParseInt32)(output[_dTS]);\n }\n if (output[_dTA] != null) {\n contents[_DTA] = (0, import_smithy_client.expectString)(output[_dTA]);\n }\n if (output.phase1EncryptionAlgorithmSet === \"\") {\n contents[_PEA] = [];\n } else if (output[_pEAS] != null && output[_pEAS][_i] != null) {\n contents[_PEA] = de_Phase1EncryptionAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pEAS][_i]), context);\n }\n if (output.phase2EncryptionAlgorithmSet === \"\") {\n contents[_PEAh] = [];\n } else if (output[_pEASh] != null && output[_pEASh][_i] != null) {\n contents[_PEAh] = de_Phase2EncryptionAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pEASh][_i]), context);\n }\n if (output.phase1IntegrityAlgorithmSet === \"\") {\n contents[_PIAh] = [];\n } else if (output[_pIASh] != null && output[_pIASh][_i] != null) {\n contents[_PIAh] = de_Phase1IntegrityAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIASh][_i]), context);\n }\n if (output.phase2IntegrityAlgorithmSet === \"\") {\n contents[_PIAha] = [];\n } else if (output[_pIASha] != null && output[_pIASha][_i] != null) {\n contents[_PIAha] = de_Phase2IntegrityAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIASha][_i]), context);\n }\n if (output.phase1DHGroupNumberSet === \"\") {\n contents[_PDHGN] = [];\n } else if (output[_pDHGNS] != null && output[_pDHGNS][_i] != null) {\n contents[_PDHGN] = de_Phase1DHGroupNumbersList((0, import_smithy_client.getArrayIfSingleItem)(output[_pDHGNS][_i]), context);\n }\n if (output.phase2DHGroupNumberSet === \"\") {\n contents[_PDHGNh] = [];\n } else if (output[_pDHGNSh] != null && output[_pDHGNSh][_i] != null) {\n contents[_PDHGNh] = de_Phase2DHGroupNumbersList((0, import_smithy_client.getArrayIfSingleItem)(output[_pDHGNSh][_i]), context);\n }\n if (output.ikeVersionSet === \"\") {\n contents[_IVk] = [];\n } else if (output[_iVS] != null && output[_iVS][_i] != null) {\n contents[_IVk] = de_IKEVersionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_iVS][_i]), context);\n }\n if (output[_sAt] != null) {\n contents[_SA] = (0, import_smithy_client.expectString)(output[_sAt]);\n }\n if (output[_lO] != null) {\n contents[_LO] = de_VpnTunnelLogOptions(output[_lO], context);\n }\n if (output[_eTLC] != null) {\n contents[_ETLC] = (0, import_smithy_client.parseBoolean)(output[_eTLC]);\n }\n return contents;\n}, \"de_TunnelOption\");\nvar de_TunnelOptionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TunnelOption(entry, context);\n });\n}, \"de_TunnelOptionsList\");\nvar de_UnassignIpv6AddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output.unassignedIpv6Addresses === \"\") {\n contents[_UIAn] = [];\n } else if (output[_uIA] != null && output[_uIA][_i] != null) {\n contents[_UIAn] = de_Ipv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIA][_i]), context);\n }\n if (output.unassignedIpv6PrefixSet === \"\") {\n contents[_UIPn] = [];\n } else if (output[_uIPSn] != null && output[_uIPSn][_i] != null) {\n contents[_UIPn] = de_IpPrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIPSn][_i]), context);\n }\n return contents;\n}, \"de_UnassignIpv6AddressesResult\");\nvar de_UnassignPrivateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_UnassignPrivateNatGatewayAddressResult\");\nvar de_UnlockSnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n return contents;\n}, \"de_UnlockSnapshotResult\");\nvar de_UnmonitorInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_IMn] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_IMn] = de_InstanceMonitoringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_UnmonitorInstancesResult\");\nvar de_UnsuccessfulInstanceCreditSpecificationItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_er] != null) {\n contents[_Er] = de_UnsuccessfulInstanceCreditSpecificationItemError(output[_er], context);\n }\n return contents;\n}, \"de_UnsuccessfulInstanceCreditSpecificationItem\");\nvar de_UnsuccessfulInstanceCreditSpecificationItemError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_UnsuccessfulInstanceCreditSpecificationItemError\");\nvar de_UnsuccessfulInstanceCreditSpecificationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UnsuccessfulInstanceCreditSpecificationItem(entry, context);\n });\n}, \"de_UnsuccessfulInstanceCreditSpecificationSet\");\nvar de_UnsuccessfulItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_UnsuccessfulItemError(output[_er], context);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n return contents;\n}, \"de_UnsuccessfulItem\");\nvar de_UnsuccessfulItemError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_UnsuccessfulItemError\");\nvar de_UnsuccessfulItemList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UnsuccessfulItem(entry, context);\n });\n}, \"de_UnsuccessfulItemList\");\nvar de_UnsuccessfulItemSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UnsuccessfulItem(entry, context);\n });\n}, \"de_UnsuccessfulItemSet\");\nvar de_UpdateSecurityGroupRuleDescriptionsEgressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_UpdateSecurityGroupRuleDescriptionsEgressResult\");\nvar de_UpdateSecurityGroupRuleDescriptionsIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_UpdateSecurityGroupRuleDescriptionsIngressResult\");\nvar de_UsageClassTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_UsageClassTypeList\");\nvar de_UserBucketDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sK] != null) {\n contents[_SK] = (0, import_smithy_client.expectString)(output[_sK]);\n }\n return contents;\n}, \"de_UserBucketDetails\");\nvar de_UserIdGroupPair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_pSee] != null) {\n contents[_PSe] = (0, import_smithy_client.expectString)(output[_pSee]);\n }\n return contents;\n}, \"de_UserIdGroupPair\");\nvar de_UserIdGroupPairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UserIdGroupPair(entry, context);\n });\n}, \"de_UserIdGroupPairList\");\nvar de_UserIdGroupPairSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UserIdGroupPair(entry, context);\n });\n}, \"de_UserIdGroupPairSet\");\nvar de_ValidationError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ValidationError\");\nvar de_ValidationWarning = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.errorSet === \"\") {\n contents[_Err] = [];\n } else if (output[_eSr] != null && output[_eSr][_i] != null) {\n contents[_Err] = de_ErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSr][_i]), context);\n }\n return contents;\n}, \"de_ValidationWarning\");\nvar de_ValueStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ValueStringList\");\nvar de_VCpuCountRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_VCpuCountRange\");\nvar de_VCpuInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dVC] != null) {\n contents[_DVCef] = (0, import_smithy_client.strictParseInt32)(output[_dVC]);\n }\n if (output[_dCe] != null) {\n contents[_DCef] = (0, import_smithy_client.strictParseInt32)(output[_dCe]);\n }\n if (output[_dTPC] != null) {\n contents[_DTPC] = (0, import_smithy_client.strictParseInt32)(output[_dTPC]);\n }\n if (output.validCores === \"\") {\n contents[_VCa] = [];\n } else if (output[_vCa] != null && output[_vCa][_i] != null) {\n contents[_VCa] = de_CoreCountList((0, import_smithy_client.getArrayIfSingleItem)(output[_vCa][_i]), context);\n }\n if (output.validThreadsPerCore === \"\") {\n contents[_VTPC] = [];\n } else if (output[_vTPC] != null && output[_vTPC][_i] != null) {\n contents[_VTPC] = de_ThreadsPerCoreList((0, import_smithy_client.getArrayIfSingleItem)(output[_vTPC][_i]), context);\n }\n return contents;\n}, \"de_VCpuInfo\");\nvar de_VerifiedAccessEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_vAGI] != null) {\n contents[_VAGI] = (0, import_smithy_client.expectString)(output[_vAGI]);\n }\n if (output[_vAEI] != null) {\n contents[_VAEI] = (0, import_smithy_client.expectString)(output[_vAEI]);\n }\n if (output[_aDp] != null) {\n contents[_ADp] = (0, import_smithy_client.expectString)(output[_aDp]);\n }\n if (output[_eTnd] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(output[_eTnd]);\n }\n if (output[_aTtta] != null) {\n contents[_ATt] = (0, import_smithy_client.expectString)(output[_aTtta]);\n }\n if (output[_dCA] != null) {\n contents[_DCA] = (0, import_smithy_client.expectString)(output[_dCA]);\n }\n if (output[_eDnd] != null) {\n contents[_EDnd] = (0, import_smithy_client.expectString)(output[_eDnd]);\n }\n if (output[_dVD] != null) {\n contents[_DVD] = (0, import_smithy_client.expectString)(output[_dVD]);\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_SecurityGroupIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output[_lBO] != null) {\n contents[_LBO] = de_VerifiedAccessEndpointLoadBalancerOptions(output[_lBO], context);\n }\n if (output[_nIO] != null) {\n contents[_NIO] = de_VerifiedAccessEndpointEniOptions(output[_nIO], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_VerifiedAccessEndpointStatus(output[_sta], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output[_dT] != null) {\n contents[_DTel] = (0, import_smithy_client.expectString)(output[_dT]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n if (output[_rOd] != null) {\n contents[_RO] = de_VerifiedAccessEndpointRdsOptions(output[_rOd], context);\n }\n if (output[_cOi] != null) {\n contents[_CO] = de_VerifiedAccessEndpointCidrOptions(output[_cOi], context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpoint\");\nvar de_VerifiedAccessEndpointCidrOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_VerifiedAccessEndpointPortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_VerifiedAccessEndpointSubnetIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointCidrOptions\");\nvar de_VerifiedAccessEndpointEniOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_VerifiedAccessEndpointPortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointEniOptions\");\nvar de_VerifiedAccessEndpointList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessEndpoint(entry, context);\n });\n}, \"de_VerifiedAccessEndpointList\");\nvar de_VerifiedAccessEndpointLoadBalancerOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output[_lBA] != null) {\n contents[_LBAo] = (0, import_smithy_client.expectString)(output[_lBA]);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_VerifiedAccessEndpointSubnetIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_VerifiedAccessEndpointPortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointLoadBalancerOptions\");\nvar de_VerifiedAccessEndpointPortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointPortRange\");\nvar de_VerifiedAccessEndpointPortRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessEndpointPortRange(entry, context);\n });\n}, \"de_VerifiedAccessEndpointPortRangeList\");\nvar de_VerifiedAccessEndpointRdsOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output[_rDIA] != null) {\n contents[_RDIA] = (0, import_smithy_client.expectString)(output[_rDIA]);\n }\n if (output[_rDCA] != null) {\n contents[_RDCA] = (0, import_smithy_client.expectString)(output[_rDCA]);\n }\n if (output[_rDPA] != null) {\n contents[_RDPA] = (0, import_smithy_client.expectString)(output[_rDPA]);\n }\n if (output[_rEd] != null) {\n contents[_RE] = (0, import_smithy_client.expectString)(output[_rEd]);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_VerifiedAccessEndpointSubnetIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointRdsOptions\");\nvar de_VerifiedAccessEndpointStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointStatus\");\nvar de_VerifiedAccessEndpointSubnetIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_VerifiedAccessEndpointSubnetIdList\");\nvar de_VerifiedAccessEndpointTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAEI] != null) {\n contents[_VAEI] = (0, import_smithy_client.expectString)(output[_vAEI]);\n }\n if (output[_vAETIA] != null) {\n contents[_VAETIA] = (0, import_smithy_client.expectString)(output[_vAETIA]);\n }\n if (output[_vAETD] != null) {\n contents[_VAETD] = (0, import_smithy_client.expectString)(output[_vAETD]);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointTarget\");\nvar de_VerifiedAccessEndpointTargetList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessEndpointTarget(entry, context);\n });\n}, \"de_VerifiedAccessEndpointTargetList\");\nvar de_VerifiedAccessGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAGI] != null) {\n contents[_VAGI] = (0, import_smithy_client.expectString)(output[_vAGI]);\n }\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_ow] != null) {\n contents[_Own] = (0, import_smithy_client.expectString)(output[_ow]);\n }\n if (output[_vAGA] != null) {\n contents[_VAGA] = (0, import_smithy_client.expectString)(output[_vAGA]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output[_dT] != null) {\n contents[_DTel] = (0, import_smithy_client.expectString)(output[_dT]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n return contents;\n}, \"de_VerifiedAccessGroup\");\nvar de_VerifiedAccessGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessGroup(entry, context);\n });\n}, \"de_VerifiedAccessGroupList\");\nvar de_VerifiedAccessInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.verifiedAccessTrustProviderSet === \"\") {\n contents[_VATPe] = [];\n } else if (output[_vATPS] != null && output[_vATPS][_i] != null) {\n contents[_VATPe] = de_VerifiedAccessTrustProviderCondensedList((0, import_smithy_client.getArrayIfSingleItem)(output[_vATPS][_i]), context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_fE] != null) {\n contents[_FE] = (0, import_smithy_client.parseBoolean)(output[_fE]);\n }\n if (output[_cECSD] != null) {\n contents[_CECSD] = de_VerifiedAccessInstanceCustomSubDomain(output[_cECSD], context);\n }\n return contents;\n}, \"de_VerifiedAccessInstance\");\nvar de_VerifiedAccessInstanceCustomSubDomain = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sDu] != null) {\n contents[_SDu] = (0, import_smithy_client.expectString)(output[_sDu]);\n }\n if (output.nameserverSet === \"\") {\n contents[_Na] = [];\n } else if (output[_nSa] != null && output[_nSa][_i] != null) {\n contents[_Na] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nSa][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceCustomSubDomain\");\nvar de_VerifiedAccessInstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstance(entry, context);\n });\n}, \"de_VerifiedAccessInstanceList\");\nvar de_VerifiedAccessInstanceLoggingConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_aLc] != null) {\n contents[_AL] = de_VerifiedAccessLogs(output[_aLc], context);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceLoggingConfiguration\");\nvar de_VerifiedAccessInstanceLoggingConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstanceLoggingConfiguration(entry, context);\n });\n}, \"de_VerifiedAccessInstanceLoggingConfigurationList\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_confi] != null) {\n contents[_Confi] = (0, import_smithy_client.expectString)(output[_confi]);\n }\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_VerifiedAccessInstanceOpenVpnClientConfigurationRouteList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]),\n context\n );\n }\n return contents;\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfiguration\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstanceOpenVpnClientConfiguration(entry, context);\n });\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfigurationList\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfigurationRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfigurationRoute\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfigurationRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstanceOpenVpnClientConfigurationRoute(entry, context);\n });\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfigurationRouteList\");\nvar de_VerifiedAccessInstanceUserTrustProviderClientConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_scop] != null) {\n contents[_Scop] = (0, import_smithy_client.expectString)(output[_scop]);\n }\n if (output[_is] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_is]);\n }\n if (output[_aE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_aE]);\n }\n if (output[_pSKE] != null) {\n contents[_PSKE] = (0, import_smithy_client.expectString)(output[_pSKE]);\n }\n if (output[_tEo] != null) {\n contents[_TEo] = (0, import_smithy_client.expectString)(output[_tEo]);\n }\n if (output[_uIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_uIE]);\n }\n if (output[_cIli] != null) {\n contents[_CIl] = (0, import_smithy_client.expectString)(output[_cIli]);\n }\n if (output[_cSl] != null) {\n contents[_CSl] = (0, import_smithy_client.expectString)(output[_cSl]);\n }\n if (output[_pEk] != null) {\n contents[_PEk] = (0, import_smithy_client.parseBoolean)(output[_pEk]);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceUserTrustProviderClientConfiguration\");\nvar de_VerifiedAccessLogCloudWatchLogsDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_dSel] != null) {\n contents[_DSeli] = de_VerifiedAccessLogDeliveryStatus(output[_dSel], context);\n }\n if (output[_lGo] != null) {\n contents[_LGo] = (0, import_smithy_client.expectString)(output[_lGo]);\n }\n return contents;\n}, \"de_VerifiedAccessLogCloudWatchLogsDestination\");\nvar de_VerifiedAccessLogDeliveryStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_VerifiedAccessLogDeliveryStatus\");\nvar de_VerifiedAccessLogKinesisDataFirehoseDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_dSel] != null) {\n contents[_DSeli] = de_VerifiedAccessLogDeliveryStatus(output[_dSel], context);\n }\n if (output[_dSeli] != null) {\n contents[_DSel] = (0, import_smithy_client.expectString)(output[_dSeli]);\n }\n return contents;\n}, \"de_VerifiedAccessLogKinesisDataFirehoseDestination\");\nvar de_VerifiedAccessLogs = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_s_] != null) {\n contents[_S_] = de_VerifiedAccessLogS3Destination(output[_s_], context);\n }\n if (output[_cWL] != null) {\n contents[_CWL] = de_VerifiedAccessLogCloudWatchLogsDestination(output[_cWL], context);\n }\n if (output[_kDF] != null) {\n contents[_KDF] = de_VerifiedAccessLogKinesisDataFirehoseDestination(output[_kDF], context);\n }\n if (output[_lV] != null) {\n contents[_LV] = (0, import_smithy_client.expectString)(output[_lV]);\n }\n if (output[_iTCn] != null) {\n contents[_ITCn] = (0, import_smithy_client.parseBoolean)(output[_iTCn]);\n }\n return contents;\n}, \"de_VerifiedAccessLogs\");\nvar de_VerifiedAccessLogS3Destination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_dSel] != null) {\n contents[_DSeli] = de_VerifiedAccessLogDeliveryStatus(output[_dSel], context);\n }\n if (output[_bN] != null) {\n contents[_BN] = (0, import_smithy_client.expectString)(output[_bN]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output[_bOu] != null) {\n contents[_BOu] = (0, import_smithy_client.expectString)(output[_bOu]);\n }\n return contents;\n}, \"de_VerifiedAccessLogS3Destination\");\nvar de_VerifiedAccessSseSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cMKE] != null) {\n contents[_CMKE] = (0, import_smithy_client.parseBoolean)(output[_cMKE]);\n }\n if (output[_kKA] != null) {\n contents[_KKA] = (0, import_smithy_client.expectString)(output[_kKA]);\n }\n return contents;\n}, \"de_VerifiedAccessSseSpecificationResponse\");\nvar de_VerifiedAccessTrustProvider = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATPI] != null) {\n contents[_VATPI] = (0, import_smithy_client.expectString)(output[_vATPI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_tPT] != null) {\n contents[_TPT] = (0, import_smithy_client.expectString)(output[_tPT]);\n }\n if (output[_uTPT] != null) {\n contents[_UTPT] = (0, import_smithy_client.expectString)(output[_uTPT]);\n }\n if (output[_dTPT] != null) {\n contents[_DTPT] = (0, import_smithy_client.expectString)(output[_dTPT]);\n }\n if (output[_oO] != null) {\n contents[_OO] = de_OidcOptions(output[_oO], context);\n }\n if (output[_dOev] != null) {\n contents[_DOe] = de_DeviceOptions(output[_dOev], context);\n }\n if (output[_pRNo] != null) {\n contents[_PRN] = (0, import_smithy_client.expectString)(output[_pRNo]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n if (output[_nAOO] != null) {\n contents[_NAOO] = de_NativeApplicationOidcOptions(output[_nAOO], context);\n }\n return contents;\n}, \"de_VerifiedAccessTrustProvider\");\nvar de_VerifiedAccessTrustProviderCondensed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATPI] != null) {\n contents[_VATPI] = (0, import_smithy_client.expectString)(output[_vATPI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_tPT] != null) {\n contents[_TPT] = (0, import_smithy_client.expectString)(output[_tPT]);\n }\n if (output[_uTPT] != null) {\n contents[_UTPT] = (0, import_smithy_client.expectString)(output[_uTPT]);\n }\n if (output[_dTPT] != null) {\n contents[_DTPT] = (0, import_smithy_client.expectString)(output[_dTPT]);\n }\n return contents;\n}, \"de_VerifiedAccessTrustProviderCondensed\");\nvar de_VerifiedAccessTrustProviderCondensedList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessTrustProviderCondensed(entry, context);\n });\n}, \"de_VerifiedAccessTrustProviderCondensedList\");\nvar de_VerifiedAccessTrustProviderList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessTrustProvider(entry, context);\n });\n}, \"de_VerifiedAccessTrustProviderList\");\nvar de_VgwTelemetry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRC] != null) {\n contents[_ARC] = (0, import_smithy_client.strictParseInt32)(output[_aRC]);\n }\n if (output[_lSC] != null) {\n contents[_LSC] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lSC]));\n }\n if (output[_oIA] != null) {\n contents[_OIA] = (0, import_smithy_client.expectString)(output[_oIA]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_cAe] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_cAe]);\n }\n return contents;\n}, \"de_VgwTelemetry\");\nvar de_VgwTelemetryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VgwTelemetry(entry, context);\n });\n}, \"de_VgwTelemetryList\");\nvar de_VirtualizationTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_VirtualizationTypeList\");\nvar de_Volume = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n if (output[_fRa] != null) {\n contents[_FRa] = (0, import_smithy_client.parseBoolean)(output[_fRa]);\n }\n if (output[_mAE] != null) {\n contents[_MAE] = (0, import_smithy_client.parseBoolean)(output[_mAE]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output[_vIR] != null) {\n contents[_VIR] = (0, import_smithy_client.strictParseInt32)(output[_vIR]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_si] != null) {\n contents[_Siz] = (0, import_smithy_client.strictParseInt32)(output[_si]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output.attachmentSet === \"\") {\n contents[_Atta] = [];\n } else if (output[_aSt] != null && output[_aSt][_i] != null) {\n contents[_Atta] = de_VolumeAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSt][_i]), context);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_Volume\");\nvar de_VolumeAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_aRs] != null) {\n contents[_ARs] = (0, import_smithy_client.expectString)(output[_aRs]);\n }\n if (output[_iOS] != null) {\n contents[_IOS] = (0, import_smithy_client.expectString)(output[_iOS]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_dev] != null) {\n contents[_Dev] = (0, import_smithy_client.expectString)(output[_dev]);\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n return contents;\n}, \"de_VolumeAttachment\");\nvar de_VolumeAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeAttachment(entry, context);\n });\n}, \"de_VolumeAttachmentList\");\nvar de_VolumeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Volume(entry, context);\n });\n}, \"de_VolumeList\");\nvar de_VolumeModification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_mSod] != null) {\n contents[_MSod] = (0, import_smithy_client.expectString)(output[_mSod]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_tSar] != null) {\n contents[_TSar] = (0, import_smithy_client.strictParseInt32)(output[_tSar]);\n }\n if (output[_tIa] != null) {\n contents[_TIar] = (0, import_smithy_client.strictParseInt32)(output[_tIa]);\n }\n if (output[_tVT] != null) {\n contents[_TVT] = (0, import_smithy_client.expectString)(output[_tVT]);\n }\n if (output[_tTa] != null) {\n contents[_TTa] = (0, import_smithy_client.strictParseInt32)(output[_tTa]);\n }\n if (output[_tMAE] != null) {\n contents[_TMAE] = (0, import_smithy_client.parseBoolean)(output[_tMAE]);\n }\n if (output[_oSr] != null) {\n contents[_OSr] = (0, import_smithy_client.strictParseInt32)(output[_oSr]);\n }\n if (output[_oIr] != null) {\n contents[_OIr] = (0, import_smithy_client.strictParseInt32)(output[_oIr]);\n }\n if (output[_oVT] != null) {\n contents[_OVT] = (0, import_smithy_client.expectString)(output[_oVT]);\n }\n if (output[_oTr] != null) {\n contents[_OTr] = (0, import_smithy_client.strictParseInt32)(output[_oTr]);\n }\n if (output[_oMAE] != null) {\n contents[_OMAE] = (0, import_smithy_client.parseBoolean)(output[_oMAE]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.strictParseLong)(output[_pro]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_eTn] != null) {\n contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTn]));\n }\n return contents;\n}, \"de_VolumeModification\");\nvar de_VolumeModificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeModification(entry, context);\n });\n}, \"de_VolumeModificationList\");\nvar de_VolumeStatusAction = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eIve] != null) {\n contents[_EIve] = (0, import_smithy_client.expectString)(output[_eIve]);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n return contents;\n}, \"de_VolumeStatusAction\");\nvar de_VolumeStatusActionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusAction(entry, context);\n });\n}, \"de_VolumeStatusActionsList\");\nvar de_VolumeStatusAttachmentStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPo] != null) {\n contents[_IPo] = (0, import_smithy_client.expectString)(output[_iPo]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_VolumeStatusAttachmentStatus\");\nvar de_VolumeStatusAttachmentStatusList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusAttachmentStatus(entry, context);\n });\n}, \"de_VolumeStatusAttachmentStatusList\");\nvar de_VolumeStatusDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_VolumeStatusDetails\");\nvar de_VolumeStatusDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusDetails(entry, context);\n });\n}, \"de_VolumeStatusDetailsList\");\nvar de_VolumeStatusEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eIve] != null) {\n contents[_EIve] = (0, import_smithy_client.expectString)(output[_eIve]);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n if (output[_nAo] != null) {\n contents[_NAo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nAo]));\n }\n if (output[_nB] != null) {\n contents[_NB] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nB]));\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_VolumeStatusEvent\");\nvar de_VolumeStatusEventsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusEvent(entry, context);\n });\n}, \"de_VolumeStatusEventsList\");\nvar de_VolumeStatusInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.details === \"\") {\n contents[_Det] = [];\n } else if (output[_det] != null && output[_det][_i] != null) {\n contents[_Det] = de_VolumeStatusDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_det][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_VolumeStatusInfo\");\nvar de_VolumeStatusItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.actionsSet === \"\") {\n contents[_Acti] = [];\n } else if (output[_aSct] != null && output[_aSct][_i] != null) {\n contents[_Acti] = de_VolumeStatusActionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSct][_i]), context);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output.eventsSet === \"\") {\n contents[_Ev] = [];\n } else if (output[_eSv] != null && output[_eSv][_i] != null) {\n contents[_Ev] = de_VolumeStatusEventsList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSv][_i]), context);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_vSol] != null) {\n contents[_VSol] = de_VolumeStatusInfo(output[_vSol], context);\n }\n if (output.attachmentStatuses === \"\") {\n contents[_AStt] = [];\n } else if (output[_aStt] != null && output[_aStt][_i] != null) {\n contents[_AStt] = de_VolumeStatusAttachmentStatusList((0, import_smithy_client.getArrayIfSingleItem)(output[_aStt][_i]), context);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_VolumeStatusItem\");\nvar de_VolumeStatusList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusItem(entry, context);\n });\n}, \"de_VolumeStatusList\");\nvar de_Vpc = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iTns] != null) {\n contents[_ITns] = (0, import_smithy_client.expectString)(output[_iTns]);\n }\n if (output.ipv6CidrBlockAssociationSet === \"\") {\n contents[_ICBAS] = [];\n } else if (output[_iCBAS] != null && output[_iCBAS][_i] != null) {\n contents[_ICBAS] = de_VpcIpv6CidrBlockAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBAS][_i]), context);\n }\n if (output.cidrBlockAssociationSet === \"\") {\n contents[_CBAS] = [];\n } else if (output[_cBAS] != null && output[_cBAS][_i] != null) {\n contents[_CBAS] = de_VpcCidrBlockAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBAS][_i]), context);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_eCn] != null) {\n contents[_ECn] = de_VpcEncryptionControl(output[_eCn], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_bPAS] != null) {\n contents[_BPAS] = de_BlockPublicAccessStates(output[_bPAS], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_dOI] != null) {\n contents[_DOI] = (0, import_smithy_client.expectString)(output[_dOI]);\n }\n return contents;\n}, \"de_Vpc\");\nvar de_VpcAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_VpcAttachment\");\nvar de_VpcAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcAttachment(entry, context);\n });\n}, \"de_VpcAttachmentList\");\nvar de_VpcBlockPublicAccessExclusion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIx] != null) {\n contents[_EIxc] = (0, import_smithy_client.expectString)(output[_eIx]);\n }\n if (output[_iGEM] != null) {\n contents[_IGEM] = (0, import_smithy_client.expectString)(output[_iGEM]);\n }\n if (output[_rAe] != null) {\n contents[_RAes] = (0, import_smithy_client.expectString)(output[_rAe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_rea] != null) {\n contents[_Rea] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n if (output[_cTrea] != null) {\n contents[_CTrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTrea]));\n }\n if (output[_lUTas] != null) {\n contents[_LUTas] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lUTas]));\n }\n if (output[_dTele] != null) {\n contents[_DTelet] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTele]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_VpcBlockPublicAccessExclusion\");\nvar de_VpcBlockPublicAccessExclusionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcBlockPublicAccessExclusion(entry, context);\n });\n}, \"de_VpcBlockPublicAccessExclusionList\");\nvar de_VpcBlockPublicAccessOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aAI] != null) {\n contents[_AAI] = (0, import_smithy_client.expectString)(output[_aAI]);\n }\n if (output[_aRw] != null) {\n contents[_ARw] = (0, import_smithy_client.expectString)(output[_aRw]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_iGBM] != null) {\n contents[_IGBM] = (0, import_smithy_client.expectString)(output[_iGBM]);\n }\n if (output[_rea] != null) {\n contents[_Rea] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n if (output[_lUTas] != null) {\n contents[_LUTas] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lUTas]));\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n if (output[_eAx] != null) {\n contents[_EAx] = (0, import_smithy_client.expectString)(output[_eAx]);\n }\n return contents;\n}, \"de_VpcBlockPublicAccessOptions\");\nvar de_VpcCidrBlockAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_cBS] != null) {\n contents[_CBS] = de_VpcCidrBlockState(output[_cBS], context);\n }\n return contents;\n}, \"de_VpcCidrBlockAssociation\");\nvar de_VpcCidrBlockAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcCidrBlockAssociation(entry, context);\n });\n}, \"de_VpcCidrBlockAssociationSet\");\nvar de_VpcCidrBlockState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_VpcCidrBlockState\");\nvar de_VpcClassicLink = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cLE] != null) {\n contents[_CLE] = (0, import_smithy_client.parseBoolean)(output[_cLE]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_VpcClassicLink\");\nvar de_VpcClassicLinkList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcClassicLink(entry, context);\n });\n}, \"de_VpcClassicLinkList\");\nvar de_VpcEncryptionControl = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vECI] != null) {\n contents[_VECI] = (0, import_smithy_client.expectString)(output[_vECI]);\n }\n if (output[_mod] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_mod]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_rEes] != null) {\n contents[_REeso] = de_VpcEncryptionControlExclusions(output[_rEes], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_VpcEncryptionControl\");\nvar de_VpcEncryptionControlExclusion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n return contents;\n}, \"de_VpcEncryptionControlExclusion\");\nvar de_VpcEncryptionControlExclusions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iG] != null) {\n contents[_IGn] = de_VpcEncryptionControlExclusion(output[_iG], context);\n }\n if (output[_eOIG] != null) {\n contents[_EOIG] = de_VpcEncryptionControlExclusion(output[_eOIG], context);\n }\n if (output[_nG] != null) {\n contents[_NG] = de_VpcEncryptionControlExclusion(output[_nG], context);\n }\n if (output[_vPG] != null) {\n contents[_VPG] = de_VpcEncryptionControlExclusion(output[_vPG], context);\n }\n if (output[_vPpc] != null) {\n contents[_VPpc] = de_VpcEncryptionControlExclusion(output[_vPpc], context);\n }\n return contents;\n}, \"de_VpcEncryptionControlExclusions\");\nvar de_VpcEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_vET] != null) {\n contents[_VET] = (0, import_smithy_client.expectString)(output[_vET]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n if (output.routeTableIdSet === \"\") {\n contents[_RTIo] = [];\n } else if (output[_rTIS] != null && output[_rTIS][_i] != null) {\n contents[_RTIo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTIS][_i]), context);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierSet((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_iAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_iAT]);\n }\n if (output[_dOn] != null) {\n contents[_DOn] = de_DnsOptions(output[_dOn], context);\n }\n if (output[_pDE] != null) {\n contents[_PDE] = (0, import_smithy_client.parseBoolean)(output[_pDE]);\n }\n if (output[_rM] != null) {\n contents[_RMe] = (0, import_smithy_client.parseBoolean)(output[_rM]);\n }\n if (output.networkInterfaceIdSet === \"\") {\n contents[_NIIe] = [];\n } else if (output[_nIIS] != null && output[_nIIS][_i] != null) {\n contents[_NIIe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIIS][_i]), context);\n }\n if (output.dnsEntrySet === \"\") {\n contents[_DE] = [];\n } else if (output[_dES] != null && output[_dES][_i] != null) {\n contents[_DE] = de_DnsEntrySet((0, import_smithy_client.getArrayIfSingleItem)(output[_dES][_i]), context);\n }\n if (output[_cTrea] != null) {\n contents[_CTrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTrea]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_lEa] != null) {\n contents[_LEa] = de_LastError(output[_lEa], context);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_SubnetIpPrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_SubnetIpPrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output[_sNA] != null) {\n contents[_SNA] = (0, import_smithy_client.expectString)(output[_sNA]);\n }\n if (output[_rCA] != null) {\n contents[_RCA] = (0, import_smithy_client.expectString)(output[_rCA]);\n }\n if (output[_sR] != null) {\n contents[_SRe] = (0, import_smithy_client.expectString)(output[_sR]);\n }\n return contents;\n}, \"de_VpcEndpoint\");\nvar de_VpcEndpointAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_sNA] != null) {\n contents[_SNA] = (0, import_smithy_client.expectString)(output[_sNA]);\n }\n if (output[_sNN] != null) {\n contents[_SNN] = (0, import_smithy_client.expectString)(output[_sNN]);\n }\n if (output[_aRAs] != null) {\n contents[_ARAs] = (0, import_smithy_client.expectString)(output[_aRAs]);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output[_fCa] != null) {\n contents[_FCa] = (0, import_smithy_client.expectString)(output[_fCa]);\n }\n if (output[_dE] != null) {\n contents[_DEn] = de_DnsEntry(output[_dE], context);\n }\n if (output[_pDEr] != null) {\n contents[_PDEr] = de_DnsEntry(output[_pDEr], context);\n }\n if (output[_aRAss] != null) {\n contents[_ARAss] = (0, import_smithy_client.expectString)(output[_aRAss]);\n }\n if (output[_rCGA] != null) {\n contents[_RCGA] = (0, import_smithy_client.expectString)(output[_rCGA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_VpcEndpointAssociation\");\nvar de_VpcEndpointAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcEndpointAssociation(entry, context);\n });\n}, \"de_VpcEndpointAssociationSet\");\nvar de_VpcEndpointConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_vEO] != null) {\n contents[_VEO] = (0, import_smithy_client.expectString)(output[_vEO]);\n }\n if (output[_vESpc] != null) {\n contents[_VESpc] = (0, import_smithy_client.expectString)(output[_vESpc]);\n }\n if (output[_cTrea] != null) {\n contents[_CTrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTrea]));\n }\n if (output.dnsEntrySet === \"\") {\n contents[_DE] = [];\n } else if (output[_dES] != null && output[_dES][_i] != null) {\n contents[_DE] = de_DnsEntrySet((0, import_smithy_client.getArrayIfSingleItem)(output[_dES][_i]), context);\n }\n if (output.networkLoadBalancerArnSet === \"\") {\n contents[_NLBAe] = [];\n } else if (output[_nLBAS] != null && output[_nLBAS][_i] != null) {\n contents[_NLBAe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nLBAS][_i]), context);\n }\n if (output.gatewayLoadBalancerArnSet === \"\") {\n contents[_GLBA] = [];\n } else if (output[_gLBAS] != null && output[_gLBAS][_i] != null) {\n contents[_GLBA] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_gLBAS][_i]), context);\n }\n if (output[_iAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_iAT]);\n }\n if (output[_vECIp] != null) {\n contents[_VECIp] = (0, import_smithy_client.expectString)(output[_vECIp]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vER] != null) {\n contents[_VER] = (0, import_smithy_client.expectString)(output[_vER]);\n }\n return contents;\n}, \"de_VpcEndpointConnection\");\nvar de_VpcEndpointConnectionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcEndpointConnection(entry, context);\n });\n}, \"de_VpcEndpointConnectionSet\");\nvar de_VpcEndpointSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcEndpoint(entry, context);\n });\n}, \"de_VpcEndpointSet\");\nvar de_VpcIpv6CidrBlockAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n if (output[_iCBS] != null) {\n contents[_ICBS] = de_VpcCidrBlockState(output[_iCBS], context);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_iPpvo] != null) {\n contents[_IPpv] = (0, import_smithy_client.expectString)(output[_iPpvo]);\n }\n if (output[_iAA] != null) {\n contents[_IAA] = (0, import_smithy_client.expectString)(output[_iAA]);\n }\n if (output[_iSpo] != null) {\n contents[_ISpo] = (0, import_smithy_client.expectString)(output[_iSpo]);\n }\n return contents;\n}, \"de_VpcIpv6CidrBlockAssociation\");\nvar de_VpcIpv6CidrBlockAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcIpv6CidrBlockAssociation(entry, context);\n });\n}, \"de_VpcIpv6CidrBlockAssociationSet\");\nvar de_VpcList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Vpc(entry, context);\n });\n}, \"de_VpcList\");\nvar de_VpcPeeringConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aVI] != null) {\n contents[_AVI] = de_VpcPeeringConnectionVpcInfo(output[_aVI], context);\n }\n if (output[_eT] != null) {\n contents[_ETx] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eT]));\n }\n if (output[_rVIe] != null) {\n contents[_RVIe] = de_VpcPeeringConnectionVpcInfo(output[_rVIe], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_VpcPeeringConnectionStateReason(output[_sta], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n return contents;\n}, \"de_VpcPeeringConnection\");\nvar de_VpcPeeringConnectionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcPeeringConnection(entry, context);\n });\n}, \"de_VpcPeeringConnectionList\");\nvar de_VpcPeeringConnectionOptionsDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aDRFRV] != null) {\n contents[_ADRFRV] = (0, import_smithy_client.parseBoolean)(output[_aDRFRV]);\n }\n if (output[_aEFLCLTRV] != null) {\n contents[_AEFLCLTRV] = (0, import_smithy_client.parseBoolean)(output[_aEFLCLTRV]);\n }\n if (output[_aEFLVTRCL] != null) {\n contents[_AEFLVTRCL] = (0, import_smithy_client.parseBoolean)(output[_aEFLVTRCL]);\n }\n return contents;\n}, \"de_VpcPeeringConnectionOptionsDescription\");\nvar de_VpcPeeringConnectionStateReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_VpcPeeringConnectionStateReason\");\nvar de_VpcPeeringConnectionVpcInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output.ipv6CidrBlockSet === \"\") {\n contents[_ICBSp] = [];\n } else if (output[_iCBSp] != null && output[_iCBSp][_i] != null) {\n contents[_ICBSp] = de_Ipv6CidrBlockSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBSp][_i]), context);\n }\n if (output.cidrBlockSet === \"\") {\n contents[_CBSi] = [];\n } else if (output[_cBSi] != null && output[_cBSi][_i] != null) {\n contents[_CBSi] = de_CidrBlockSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBSi][_i]), context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pOe] != null) {\n contents[_POe] = de_VpcPeeringConnectionOptionsDescription(output[_pOe], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n return contents;\n}, \"de_VpcPeeringConnectionVpcInfo\");\nvar de_VpnConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ca] != null) {\n contents[_Cat] = (0, import_smithy_client.expectString)(output[_ca]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cNA] != null) {\n contents[_CNAo] = (0, import_smithy_client.expectString)(output[_cNA]);\n }\n if (output[_cNAA] != null) {\n contents[_CNAA] = (0, import_smithy_client.expectString)(output[_cNAA]);\n }\n if (output[_gAS] != null) {\n contents[_GAS] = (0, import_smithy_client.expectString)(output[_gAS]);\n }\n if (output[_opt] != null) {\n contents[_Op] = de_VpnConnectionOptions(output[_opt], context);\n }\n if (output.routes === \"\") {\n contents[_Rout] = [];\n } else if (output[_rou] != null && output[_rou][_i] != null) {\n contents[_Rout] = de_VpnStaticRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rou][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.vgwTelemetry === \"\") {\n contents[_VTg] = [];\n } else if (output[_vTg] != null && output[_vTg][_i] != null) {\n contents[_VTg] = de_VgwTelemetryList((0, import_smithy_client.getArrayIfSingleItem)(output[_vTg][_i]), context);\n }\n if (output[_vCI] != null) {\n contents[_VCI] = (0, import_smithy_client.expectString)(output[_vCI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cGC] != null) {\n contents[_CGC] = (0, import_smithy_client.expectString)(output[_cGC]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_cGIu] != null) {\n contents[_CGIu] = (0, import_smithy_client.expectString)(output[_cGIu]);\n }\n if (output[_vGI] != null) {\n contents[_VGI] = (0, import_smithy_client.expectString)(output[_vGI]);\n }\n return contents;\n}, \"de_VpnConnection\");\nvar de_VpnConnectionDeviceType = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCDTI] != null) {\n contents[_VCDTI] = (0, import_smithy_client.expectString)(output[_vCDTI]);\n }\n if (output[_ven] != null) {\n contents[_Ven] = (0, import_smithy_client.expectString)(output[_ven]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_sof] != null) {\n contents[_Sof] = (0, import_smithy_client.expectString)(output[_sof]);\n }\n return contents;\n}, \"de_VpnConnectionDeviceType\");\nvar de_VpnConnectionDeviceTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnConnectionDeviceType(entry, context);\n });\n}, \"de_VpnConnectionDeviceTypeList\");\nvar de_VpnConnectionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnConnection(entry, context);\n });\n}, \"de_VpnConnectionList\");\nvar de_VpnConnectionOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eAn] != null) {\n contents[_EA] = (0, import_smithy_client.parseBoolean)(output[_eAn]);\n }\n if (output[_sRO] != null) {\n contents[_SRO] = (0, import_smithy_client.parseBoolean)(output[_sRO]);\n }\n if (output[_lINC] != null) {\n contents[_LINC] = (0, import_smithy_client.expectString)(output[_lINC]);\n }\n if (output[_rINC] != null) {\n contents[_RINC] = (0, import_smithy_client.expectString)(output[_rINC]);\n }\n if (output[_lINCo] != null) {\n contents[_LINCo] = (0, import_smithy_client.expectString)(output[_lINCo]);\n }\n if (output[_rINCe] != null) {\n contents[_RINCe] = (0, import_smithy_client.expectString)(output[_rINCe]);\n }\n if (output[_oIAT] != null) {\n contents[_OIAT] = (0, import_smithy_client.expectString)(output[_oIAT]);\n }\n if (output[_tTGAI] != null) {\n contents[_TTGAI] = (0, import_smithy_client.expectString)(output[_tTGAI]);\n }\n if (output[_tIIV] != null) {\n contents[_TIIV] = (0, import_smithy_client.expectString)(output[_tIIV]);\n }\n if (output.tunnelOptionSet === \"\") {\n contents[_TO] = [];\n } else if (output[_tOS] != null && output[_tOS][_i] != null) {\n contents[_TO] = de_TunnelOptionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_tOS][_i]), context);\n }\n return contents;\n}, \"de_VpnConnectionOptions\");\nvar de_VpnGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSA] != null) {\n contents[_ASA] = (0, import_smithy_client.strictParseLong)(output[_aSA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vGI] != null) {\n contents[_VGI] = (0, import_smithy_client.expectString)(output[_vGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output.attachments === \"\") {\n contents[_VAp] = [];\n } else if (output[_att] != null && output[_att][_i] != null) {\n contents[_VAp] = de_VpcAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_att][_i]), context);\n }\n return contents;\n}, \"de_VpnGateway\");\nvar de_VpnGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnGateway(entry, context);\n });\n}, \"de_VpnGatewayList\");\nvar de_VpnStaticRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_VpnStaticRoute\");\nvar de_VpnStaticRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnStaticRoute(entry, context);\n });\n}, \"de_VpnStaticRouteList\");\nvar de_VpnTunnelLogOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cWLO] != null) {\n contents[_CWLO] = de_CloudWatchLogOptions(output[_cWLO], context);\n }\n return contents;\n}, \"de_VpnTunnelLogOptions\");\nvar de_WithdrawByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_WithdrawByoipCidrResult\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(EC2ServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2016-11-15\";\nvar _A = \"Action\";\nvar _AA = \"AllocateAddress\";\nvar _AAC = \"AsnAuthorizationContext\";\nvar _AACv = \"AvailableAddressCount\";\nvar _AAG = \"AuthorizeAllGroups\";\nvar _AAI = \"AwsAccountId\";\nvar _AAId = \"AddressAllocationId\";\nvar _AAP = \"AddAllowedPrincipals\";\nvar _AART = \"AddAllocationResourceTags\";\nvar _AASA = \"AutoAcceptSharedAssociations\";\nvar _AASAu = \"AutoAcceptSharedAttachments\";\nvar _AAT = \"AcceptAddressTransfer\";\nvar _AAZ = \"AllAvailabilityZones\";\nvar _AAc = \"AccessAll\";\nvar _AAcc = \"AccountAttributes\";\nvar _AAd = \"AdditionalAccounts\";\nvar _AAs = \"AssociateAddress\";\nvar _AAsn = \"AsnAssociation\";\nvar _AAsns = \"AsnAssociations\";\nvar _ABC = \"AdvertiseByoipCidr\";\nvar _ABHP = \"ActualBlockHourlyPrice\";\nvar _AC = \"AllowedCidrs\";\nvar _ACIA = \"AssociateCarrierIpAddress\";\nvar _ACLV = \"AttachClassicLinkVpc\";\nvar _ACRBO = \"AcceptCapacityReservationBillingOwnership\";\nvar _ACRBOs = \"AssociateCapacityReservationBillingOwner\";\nvar _ACT = \"ArchivalCompleteTime\";\nvar _ACVI = \"AuthorizeClientVpnIngress\";\nvar _ACVTN = \"AssociateClientVpnTargetNetwork\";\nvar _ACc = \"AcceleratorCount\";\nvar _ACd = \"AddressCount\";\nvar _ACv = \"AvailableCapacity\";\nvar _AD = \"ActiveDirectory\";\nvar _ADNL = \"AllocationDefaultNetmaskLength\";\nvar _ADO = \"AssociateDhcpOptions\";\nvar _ADRFRV = \"AllowDnsResolutionFromRemoteVpc\";\nvar _ADRTI = \"AssociationDefaultRouteTableId\";\nvar _ADT = \"AdditionalDetailType\";\nvar _ADd = \"AdditionalDetails\";\nvar _ADn = \"AnnouncementDirection\";\nvar _ADp = \"ApplicationDomain\";\nvar _AE = \"AuthorizationEndpoint\";\nvar _AEC = \"AnalyzedEniCount\";\nvar _AECIR = \"AssociateEnclaveCertificateIamRole\";\nvar _AEFLCLTRV = \"AllowEgressFromLocalClassicLinkToRemoteVpc\";\nvar _AEFLVTRCL = \"AllowEgressFromLocalVpcToRemoteClassicLink\";\nvar _AEIO = \"AutoEnableIO\";\nvar _AES = \"AttachedEbsStatus\";\nvar _AET = \"AnalysisEndTime\";\nvar _AEd = \"AddEntries\";\nvar _AF = \"AddressFamily\";\nvar _AFn = \"AnalysisFindings\";\nvar _AGI = \"AccessGroupId\";\nvar _AGLBA = \"AddGatewayLoadBalancerArns\";\nvar _AH = \"AllocateHosts\";\nvar _AI = \"AssetIds\";\nvar _AIA = \"AssignIpv6Addresses\";\nvar _AIAC = \"AvailableIpAddressCount\";\nvar _AIAOC = \"AssignIpv6AddressOnCreation\";\nvar _AIAs = \"AssignedIpv6Addresses\";\nvar _AIB = \"AssociateIpamByoasn\";\nvar _AIC = \"AvailableInstanceCapacity\";\nvar _AICv = \"AvailableInstanceCount\";\nvar _AIEW = \"AssociateInstanceEventWindow\";\nvar _AIG = \"AttachInternetGateway\";\nvar _AIIP = \"AssociateIamInstanceProfile\";\nvar _AIP = \"AssignedIpv6Prefixes\";\nvar _AIPC = \"AllocateIpamPoolCidr\";\nvar _AIPs = \"AssignedIpv4Prefixes\";\nvar _AIRD = \"AssociateIpamResourceDiscovery\";\nvar _AISS = \"AllowedImagesSettingsState\";\nvar _AIT = \"AllowedInstanceTypes\";\nvar _AIc = \"ActiveInstances\";\nvar _AIcc = \"AccountId\";\nvar _AId = \"AdditionalInfo\";\nvar _AIl = \"AllocationId\";\nvar _AIll = \"AllocationIds\";\nvar _AIm = \"AmiId\";\nvar _AIs = \"AssociationIds\";\nvar _AIss = \"AssociationId\";\nvar _AIsse = \"AssetId\";\nvar _AIt = \"AttachmentId\";\nvar _AIth = \"AthenaIntegrations\";\nvar _AIu = \"AutoImport\";\nvar _AL = \"AccessLogs\";\nvar _ALI = \"AmiLaunchIndex\";\nvar _ALc = \"AccountLevel\";\nvar _AM = \"AcceleratorManufacturers\";\nvar _AMIT = \"AllowsMultipleInstanceTypes\";\nvar _AMNL = \"AllocationMinNetmaskLength\";\nvar _AMNLl = \"AllocationMaxNetmaskLength\";\nvar _AMS = \"ApplianceModeSupport\";\nvar _AN = \"AttributeNames\";\nvar _ANGA = \"AssociateNatGatewayAddress\";\nvar _ANI = \"AttachNetworkInterface\";\nvar _ANLBA = \"AddNetworkLoadBalancerArns\";\nvar _ANS = \"AddNetworkServices\";\nvar _ANc = \"AcceleratorNames\";\nvar _ANt = \"AttributeName\";\nvar _AO = \"AuthenticationOptions\";\nvar _AOI = \"AddressOwnerId\";\nvar _AOR = \"AddOperatingRegions\";\nvar _AOUE = \"AddOrganizationalUnitExclusions\";\nvar _AP = \"AutoPlacement\";\nvar _APCO = \"AccepterPeeringConnectionOptions\";\nvar _APH = \"AlternatePathHints\";\nvar _APIA = \"AssignPrivateIpAddresses\";\nvar _APIAs = \"AssociatePublicIpAddress\";\nvar _APIAss = \"AssignedPrivateIpAddresses\";\nvar _APICB = \"AmazonProvidedIpv6CidrBlock\";\nvar _APM = \"ApplyPendingMaintenance\";\nvar _APNGA = \"AssignPrivateNatGatewayAddress\";\nvar _APd = \"AddedPrincipals\";\nvar _APl = \"AllowedPrincipals\";\nvar _APs = \"AsPaths\";\nvar _AR = \"AllowReassignment\";\nvar _ARA = \"AssociatedRoleArn\";\nvar _ARAd = \"AdditionalRoutesAvailable\";\nvar _ARAs = \"AssociatedResourceAccessibility\";\nvar _ARAss = \"AssociatedResourceArn\";\nvar _ARC = \"AcceptedRouteCount\";\nvar _ARIEQ = \"AcceptReservedInstancesExchangeQuote\";\nvar _ARP = \"AreRoutesPersisted\";\nvar _ARS = \"AssociateRouteServer\";\nvar _ARSu = \"AutoRecoverySupported\";\nvar _ART = \"AssociateRouteTable\";\nvar _ARTI = \"AddRouteTableIds\";\nvar _ARTl = \"AllocationResourceTags\";\nvar _ARc = \"AcceptanceRequired\";\nvar _ARcl = \"AclRule\";\nvar _ARd = \"AddressRegion\";\nvar _ARl = \"AllowReassociation\";\nvar _ARll = \"AllRegions\";\nvar _ARs = \"AssociatedResource\";\nvar _ARss = \"AssociatedRoles\";\nvar _ARu = \"AutoRecovery\";\nvar _ARut = \"AuthorizationRules\";\nvar _ARw = \"AwsRegion\";\nvar _AS = \"AllocationStrategy\";\nvar _ASA = \"AmazonSideAsn\";\nvar _ASCB = \"AssociateSubnetCidrBlock\";\nvar _ASGE = \"AuthorizeSecurityGroupEgress\";\nvar _ASGI = \"AuthorizeSecurityGroupIngress\";\nvar _ASGId = \"AddSecurityGroupIds\";\nvar _ASGTCVTN = \"ApplySecurityGroupsToClientVpnTargetNetwork\";\nvar _ASGV = \"AssociateSecurityGroupVpc\";\nvar _ASI = \"AddSubnetIds\";\nvar _ASIAT = \"AddSupportedIpAddressTypes\";\nvar _ASR = \"AddSupportedRegions\";\nvar _ASS = \"AmdSevSnp\";\nvar _AST = \"AnalysisStartTime\";\nvar _ASTB = \"AnalysisStartTimeBegin\";\nvar _ASTE = \"AnalysisStartTimeEnd\";\nvar _ASc = \"ActivityStatus\";\nvar _ASn = \"AnalysisStatus\";\nvar _ASs = \"AssociationState\";\nvar _ASss = \"AssociationStatus\";\nvar _ASt = \"AttributeSummaries\";\nvar _AStt = \"AttachmentStatuses\";\nvar _ASw = \"AwsService\";\nvar _AT = \"AssociationTarget\";\nvar _ATGAI = \"AccepterTransitGatewayAttachmentId\";\nvar _ATGCB = \"AddTransitGatewayCidrBlocks\";\nvar _ATGMD = \"AssociateTransitGatewayMulticastDomain\";\nvar _ATGMDA = \"AcceptTransitGatewayMulticastDomainAssociations\";\nvar _ATGPA = \"AcceptTransitGatewayPeeringAttachment\";\nvar _ATGPT = \"AssociateTransitGatewayPolicyTable\";\nvar _ATGRT = \"AssociateTransitGatewayRouteTable\";\nvar _ATGVA = \"AcceptTransitGatewayVpcAttachment\";\nvar _ATI = \"AssociateTrunkInterface\";\nvar _ATIc = \"AccepterTgwInfo\";\nvar _ATMMB = \"AcceleratorTotalMemoryMiB\";\nvar _ATN = \"AssociatedTargetNetworks\";\nvar _ATS = \"AddressTransferStatus\";\nvar _ATc = \"AcceleratorTypes\";\nvar _ATd = \"AddressingType\";\nvar _ATdd = \"AddressTransfer\";\nvar _ATddr = \"AddressTransfers\";\nvar _ATddre = \"AddressType\";\nvar _ATl = \"AllocationType\";\nvar _ATll = \"AllocationTime\";\nvar _ATr = \"ArchitectureTypes\";\nvar _ATt = \"AttachmentType\";\nvar _ATtt = \"AttachTime\";\nvar _ATtta = \"AttachedTo\";\nvar _AV = \"AttachVolume\";\nvar _AVATP = \"AttachVerifiedAccessTrustProvider\";\nvar _AVC = \"AvailableVCpus\";\nvar _AVCB = \"AssociateVpcCidrBlock\";\nvar _AVEC = \"AcceptVpcEndpointConnections\";\nvar _AVG = \"AttachVpnGateway\";\nvar _AVI = \"AccepterVpcInfo\";\nvar _AVPC = \"AcceptVpcPeeringConnection\";\nvar _AVt = \"AttributeValues\";\nvar _AVtt = \"AttributeValue\";\nvar _AWSAKI = \"AWSAccessKeyId\";\nvar _AZ = \"AvailabilityZone\";\nvar _AZG = \"AvailabilityZoneGroup\";\nvar _AZI = \"AvailabilityZoneId\";\nvar _AZIv = \"AvailabilityZoneIds\";\nvar _AZv = \"AvailabilityZones\";\nvar _Ac = \"Accept\";\nvar _Acc = \"Accelerators\";\nvar _Acl = \"Acl\";\nvar _Act = \"Active\";\nvar _Acti = \"Actions\";\nvar _Ad = \"Address\";\nvar _Add = \"Add\";\nvar _Addr = \"Addresses\";\nvar _Af = \"Affinity\";\nvar _Am = \"Amount\";\nvar _Ar = \"Arn\";\nvar _Arc = \"Architecture\";\nvar _As = \"Asn\";\nvar _Ass = \"Associations\";\nvar _Asso = \"Association\";\nvar _At = \"Attribute\";\nvar _Att = \"Attachment\";\nvar _Atta = \"Attachments\";\nvar _B = \"Bucket\";\nvar _BA = \"BgpAsn\";\nvar _BAE = \"BgpAsnExtended\";\nvar _BBIG = \"BaselineBandwidthInGbps\";\nvar _BBIM = \"BaselineBandwidthInMbps\";\nvar _BC = \"ByoipCidr\";\nvar _BCg = \"BgpConfigurations\";\nvar _BCy = \"ByoipCidrs\";\nvar _BCyt = \"BytesConverted\";\nvar _BDM = \"BlockDeviceMappings\";\nvar _BDMl = \"BlockDurationMinutes\";\nvar _BEBM = \"BaselineEbsBandwidthMbps\";\nvar _BEDN = \"BaseEndpointDnsNames\";\nvar _BI = \"BundleInstance\";\nvar _BII = \"BranchInterfaceId\";\nvar _BIa = \"BaselineIops\";\nvar _BIu = \"BundleId\";\nvar _BIun = \"BundleIds\";\nvar _BM = \"BootMode\";\nvar _BMa = \"BareMetal\";\nvar _BN = \"BucketName\";\nvar _BO = \"BgpOptions\";\nvar _BOu = \"BucketOwner\";\nvar _BP = \"BurstablePerformance\";\nvar _BPAS = \"BlockPublicAccessStates\";\nvar _BPF = \"BaselinePerformanceFactors\";\nvar _BPS = \"BurstablePerformanceSupported\";\nvar _BPi = \"BillingProducts\";\nvar _BS = \"BgpStatus\";\nvar _BSf = \"BfdStatus\";\nvar _BT = \"BannerText\";\nvar _BTE = \"BundleTaskError\";\nvar _BTIMB = \"BaselineThroughputInMBps\";\nvar _BTu = \"BundleTask\";\nvar _BTun = \"BundleTasks\";\nvar _BW = \"BandwidthWeighting\";\nvar _BWa = \"BandwidthWeightings\";\nvar _Bl = \"Blackhole\";\nvar _By = \"Bytes\";\nvar _Byo = \"Byoasn\";\nvar _Byoa = \"Byoasns\";\nvar _C = \"Cidr\";\nvar _CA = \"CertificateArn\";\nvar _CAC = \"CidrAuthorizationContext\";\nvar _CADNL = \"ClearAllocationDefaultNetmaskLength\";\nvar _CAU = \"CoipAddressUsages\";\nvar _CAa = \"CapacityAllocations\";\nvar _CAo = \"ComponentArn\";\nvar _CAom = \"ComponentAccount\";\nvar _CAr = \"CreatedAt\";\nvar _CB = \"CidrBlock\";\nvar _CBA = \"CidrBlockAssociation\";\nvar _CBAS = \"CidrBlockAssociationSet\";\nvar _CBDH = \"CapacityBlockDurationHours\";\nvar _CBDM = \"CapacityBlockDurationMinutes\";\nvar _CBE = \"CapacityBlockExtensions\";\nvar _CBEDH = \"CapacityBlockExtensionDurationHours\";\nvar _CBEED = \"CapacityBlockExtensionEndDate\";\nvar _CBEO = \"CapacityBlockExtensionOfferings\";\nvar _CBEOI = \"CapacityBlockExtensionOfferingId\";\nvar _CBEPD = \"CapacityBlockExtensionPurchaseDate\";\nvar _CBES = \"CapacityBlockExtensionStatus\";\nvar _CBESD = \"CapacityBlockExtensionStartDate\";\nvar _CBO = \"CapacityBlockOfferings\";\nvar _CBOI = \"CapacityBlockOfferingId\";\nvar _CBS = \"CidrBlockState\";\nvar _CBSi = \"CidrBlockSet\";\nvar _CBT = \"CancelBundleTask\";\nvar _CBr = \"CreatedBy\";\nvar _CC = \"CoreCount\";\nvar _CCB = \"ClientCidrBlock\";\nvar _CCC = \"CreateCoipCidr\";\nvar _CCG = \"CreateCarrierGateway\";\nvar _CCGr = \"CreateCustomerGateway\";\nvar _CCO = \"ClientConnectOptions\";\nvar _CCP = \"CreateCoipPool\";\nvar _CCR = \"CancelCapacityReservation\";\nvar _CCRBS = \"CreateCapacityReservationBySplitting\";\nvar _CCRF = \"CancelCapacityReservationFleets\";\nvar _CCRFE = \"CancelCapacityReservationFleetError\";\nvar _CCRFr = \"CreateCapacityReservationFleet\";\nvar _CCRr = \"CreateCapacityReservation\";\nvar _CCT = \"CancelConversionTask\";\nvar _CCVE = \"CreateClientVpnEndpoint\";\nvar _CCVR = \"CreateClientVpnRoute\";\nvar _CCl = \"ClientConfiguration\";\nvar _CCo = \"CoipCidr\";\nvar _CCp = \"CpuCredits\";\nvar _CCu = \"CurrencyCode\";\nvar _CD = \"CommitmentDuration\";\nvar _CDH = \"CapacityDurationHours\";\nvar _CDM = \"CompletionDurationMinutes\";\nvar _CDO = \"CreateDhcpOptions\";\nvar _CDPR = \"CancelDeclarativePoliciesReport\";\nvar _CDS = \"CreateDefaultSubnet\";\nvar _CDSDA = \"ConfigDeliveryS3DestinationArn\";\nvar _CDSu = \"CustomDnsServers\";\nvar _CDV = \"CreateDefaultVpc\";\nvar _CDl = \"ClientData\";\nvar _CDr = \"CreateDate\";\nvar _CDre = \"CreationDate\";\nvar _CDrea = \"CreatedDate\";\nvar _CE = \"CronExpression\";\nvar _CECSD = \"CidrEndpointsCustomSubDomain\";\nvar _CED = \"CommitmentEndDate\";\nvar _CEOIG = \"CreateEgressOnlyInternetGateway\";\nvar _CET = \"CancelExportTask\";\nvar _CETo = \"ConnectionEstablishedTime\";\nvar _CETon = \"ConnectionEndTime\";\nvar _CEo = \"ConnectionEvents\";\nvar _CF = \"CreateFleet\";\nvar _CFI = \"CopyFpgaImage\";\nvar _CFIr = \"CreateFpgaImage\";\nvar _CFL = \"CreateFlowLogs\";\nvar _CFS = \"CurrentFleetState\";\nvar _CFo = \"ContainerFormat\";\nvar _CG = \"CarrierGateway\";\nvar _CGC = \"CustomerGatewayConfiguration\";\nvar _CGI = \"CarrierGatewayId\";\nvar _CGIa = \"CarrierGatewayIds\";\nvar _CGIu = \"CustomerGatewayId\";\nvar _CGIus = \"CustomerGatewayIds\";\nvar _CGa = \"CarrierGateways\";\nvar _CGu = \"CustomerGateway\";\nvar _CGur = \"CurrentGeneration\";\nvar _CGus = \"CustomerGateways\";\nvar _CI = \"CopyImage\";\nvar _CIBM = \"CurrentInstanceBootMode\";\nvar _CIC = \"CommittedInstanceCount\";\nvar _CICE = \"CreateInstanceConnectEndpoint\";\nvar _CIERVT = \"CreateIpamExternalResourceVerificationToken\";\nvar _CIET = \"CreateInstanceExportTask\";\nvar _CIEW = \"CreateInstanceEventWindow\";\nvar _CIG = \"CreateInternetGateway\";\nvar _CILP = \"CancelImageLaunchPermission\";\nvar _CIP = \"CreateIpamPool\";\nvar _CIRD = \"CreateIpamResourceDiscovery\";\nvar _CIS = \"CreateIpamScope\";\nvar _CISI = \"CurrentIpamScopeId\";\nvar _CIT = \"CancelImportTask\";\nvar _CITo = \"CopyImageTags\";\nvar _CIa = \"CarrierIp\";\nvar _CIi = \"CidrIp\";\nvar _CIid = \"CidrIpv6\";\nvar _CIidr = \"CidrIpv4\";\nvar _CIl = \"ClientId\";\nvar _CIli = \"ClientIp\";\nvar _CIo = \"ConnectionId\";\nvar _CIom = \"ComponentId\";\nvar _CIomm = \"CommitmentInfo\";\nvar _CIop = \"CoIp\";\nvar _CIor = \"CoreInfo\";\nvar _CIr = \"CreateImage\";\nvar _CIre = \"CreateIpam\";\nvar _CKP = \"CreateKeyPair\";\nvar _CLB = \"ClassicLoadBalancers\";\nvar _CLBC = \"ClassicLoadBalancersConfig\";\nvar _CLBL = \"ClassicLoadBalancerListener\";\nvar _CLBO = \"ClientLoginBannerOptions\";\nvar _CLDS = \"ClassicLinkDnsSupported\";\nvar _CLE = \"ClassicLinkEnabled\";\nvar _CLG = \"CloudwatchLogGroup\";\nvar _CLGR = \"CreateLocalGatewayRoute\";\nvar _CLGRT = \"CreateLocalGatewayRouteTable\";\nvar _CLGRTVA = \"CreateLocalGatewayRouteTableVpcAssociation\";\nvar _CLGRTVIGA = \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _CLGVI = \"CreateLocalGatewayVirtualInterface\";\nvar _CLGVIG = \"CreateLocalGatewayVirtualInterfaceGroup\";\nvar _CLO = \"ConnectionLogOptions\";\nvar _CLS = \"CloudwatchLogStream\";\nvar _CLT = \"CreateLaunchTemplate\";\nvar _CLTV = \"CreateLaunchTemplateVersion\";\nvar _CM = \"CpuManufacturers\";\nvar _CMKE = \"CustomerManagedKeyEnabled\";\nvar _CMPL = \"CreateManagedPrefixList\";\nvar _CN = \"CommonName\";\nvar _CNA = \"CreateNetworkAcl\";\nvar _CNAA = \"CoreNetworkAttachmentArn\";\nvar _CNAE = \"CreateNetworkAclEntry\";\nvar _CNAo = \"CoreNetworkArn\";\nvar _CNAon = \"ConnectionNotificationArn\";\nvar _CNG = \"CreateNatGateway\";\nvar _CNI = \"CreateNetworkInterface\";\nvar _CNIAS = \"CreateNetworkInsightsAccessScope\";\nvar _CNIP = \"CreateNetworkInsightsPath\";\nvar _CNIPr = \"CreateNetworkInterfacePermission\";\nvar _CNIo = \"ConnectionNotificationIds\";\nvar _CNIon = \"ConnectionNotificationId\";\nvar _CNIor = \"CoreNetworkId\";\nvar _CNS = \"ConnectionNotificationState\";\nvar _CNSo = \"ConnectionNotificationSet\";\nvar _CNT = \"ConnectionNotificationType\";\nvar _CNo = \"ConnectionNotification\";\nvar _CO = \"CidrOptions\";\nvar _COI = \"CustomerOwnedIp\";\nvar _COIP = \"CustomerOwnedIpv4Pool\";\nvar _COP = \"CoolOffPeriod\";\nvar _COPEO = \"CoolOffPeriodExpiresOn\";\nvar _COp = \"CpuOptions\";\nvar _CP = \"CoipPool\";\nvar _CPC = \"ConnectPeerConfiguration\";\nvar _CPG = \"CreatePlacementGroup\";\nvar _CPI = \"ConfirmProductInstance\";\nvar _CPIP = \"CreatePublicIpv4Pool\";\nvar _CPIo = \"CoipPoolId\";\nvar _CPo = \"CoipPools\";\nvar _CR = \"CreateRoute\";\nvar _CRA = \"CapacityReservationArn\";\nvar _CRBR = \"CapacityReservationBillingRequests\";\nvar _CRCC = \"ClientRootCertificateChain\";\nvar _CRCCA = \"ClientRootCertificateChainArn\";\nvar _CREO = \"ClientRouteEnforcementOptions\";\nvar _CRF = \"CapacityReservationFleets\";\nvar _CRFA = \"CapacityReservationFleetArn\";\nvar _CRFI = \"CapacityReservationFleetIds\";\nvar _CRFIa = \"CapacityReservationFleetId\";\nvar _CRG = \"CapacityReservationGroups\";\nvar _CRI = \"CapacityReservationId\";\nvar _CRIL = \"CancelReservedInstancesListing\";\nvar _CRILr = \"CreateReservedInstancesListing\";\nvar _CRIT = \"CreateRestoreImageTask\";\nvar _CRIa = \"CapacityReservationIds\";\nvar _CRIap = \"CapacityReservationInfo\";\nvar _CRL = \"CertificateRevocationList\";\nvar _CRO = \"CapacityReservationOptions\";\nvar _CRP = \"CapacityReservationPreference\";\nvar _CRRGA = \"CapacityReservationResourceGroupArn\";\nvar _CRRVT = \"CreateReplaceRootVolumeTask\";\nvar _CRS = \"CreateRouteServer\";\nvar _CRSE = \"CreateRouteServerEndpoint\";\nvar _CRSP = \"CreateRouteServerPeer\";\nvar _CRSa = \"CapacityReservationSpecification\";\nvar _CRT = \"CreateRouteTable\";\nvar _CRTa = \"CapacityReservationTarget\";\nvar _CRa = \"CancelReason\";\nvar _CRap = \"CapacityRebalance\";\nvar _CRapa = \"CapacityReservation\";\nvar _CRapac = \"CapacityReservations\";\nvar _CRo = \"ComponentRegion\";\nvar _CS = \"CopySnapshot\";\nvar _CSBN = \"CertificateS3BucketName\";\nvar _CSCR = \"CreateSubnetCidrReservation\";\nvar _CSDS = \"CreateSpotDatafeedSubscription\";\nvar _CSFR = \"CancelSpotFleetRequests\";\nvar _CSFRS = \"CurrentSpotFleetRequestState\";\nvar _CSG = \"CreateSecurityGroup\";\nvar _CSIR = \"CancelSpotInstanceRequests\";\nvar _CSIRa = \"CancelledSpotInstanceRequests\";\nvar _CSIT = \"CreateStoreImageTask\";\nvar _CSOK = \"CertificateS3ObjectKey\";\nvar _CSl = \"ClientSecret\";\nvar _CSo = \"ComplianceStatus\";\nvar _CSon = \"ConfigurationState\";\nvar _CSonn = \"ConnectionStatuses\";\nvar _CSr = \"CreateSnapshot\";\nvar _CSre = \"CreateSnapshots\";\nvar _CSrea = \"CreateSubnet\";\nvar _CSred = \"CreditSpecification\";\nvar _CSu = \"CurrentState\";\nvar _CSur = \"CurrentStatus\";\nvar _CT = \"CreateTags\";\nvar _CTC = \"ConnectionTrackingConfiguration\";\nvar _CTFS = \"CopyTagsFromSource\";\nvar _CTG = \"CreateTransitGateway\";\nvar _CTGC = \"CreateTransitGatewayConnect\";\nvar _CTGCP = \"CreateTransitGatewayConnectPeer\";\nvar _CTGMD = \"CreateTransitGatewayMulticastDomain\";\nvar _CTGPA = \"CreateTransitGatewayPeeringAttachment\";\nvar _CTGPLR = \"CreateTransitGatewayPrefixListReference\";\nvar _CTGPT = \"CreateTransitGatewayPolicyTable\";\nvar _CTGR = \"CreateTransitGatewayRoute\";\nvar _CTGRT = \"CreateTransitGatewayRouteTable\";\nvar _CTGRTA = \"CreateTransitGatewayRouteTableAnnouncement\";\nvar _CTGVA = \"CreateTransitGatewayVpcAttachment\";\nvar _CTI = \"ConversionTaskId\";\nvar _CTIo = \"ConversionTaskIds\";\nvar _CTMF = \"CreateTrafficMirrorFilter\";\nvar _CTMFR = \"CreateTrafficMirrorFilterRule\";\nvar _CTMS = \"CreateTrafficMirrorSession\";\nvar _CTMT = \"CreateTrafficMirrorTarget\";\nvar _CTS = \"ConnectionTrackingSpecification\";\nvar _CTl = \"ClientToken\";\nvar _CTo = \"ConnectivityType\";\nvar _CTom = \"CompleteTime\";\nvar _CTomp = \"CompletionTime\";\nvar _CTon = \"ConversionTasks\";\nvar _CTonv = \"ConversionTask\";\nvar _CTr = \"CreateTime\";\nvar _CTre = \"CreationTime\";\nvar _CTrea = \"CreationTimestamp\";\nvar _CV = \"CreateVolume\";\nvar _CVAE = \"CreateVerifiedAccessEndpoint\";\nvar _CVAG = \"CreateVerifiedAccessGroup\";\nvar _CVAI = \"CreateVerifiedAccessInstance\";\nvar _CVATP = \"CreateVerifiedAccessTrustProvider\";\nvar _CVBPAE = \"CreateVpcBlockPublicAccessExclusion\";\nvar _CVC = \"CreateVpnConnection\";\nvar _CVCR = \"CreateVpnConnectionRoute\";\nvar _CVE = \"CreateVpcEndpoint\";\nvar _CVECN = \"CreateVpcEndpointConnectionNotification\";\nvar _CVEI = \"ClientVpnEndpointId\";\nvar _CVEIl = \"ClientVpnEndpointIds\";\nvar _CVESC = \"CreateVpcEndpointServiceConfiguration\";\nvar _CVEl = \"ClientVpnEndpoints\";\nvar _CVG = \"CreateVpnGateway\";\nvar _CVP = \"CreateVolumePermission\";\nvar _CVPC = \"CreateVpcPeeringConnection\";\nvar _CVPr = \"CreateVolumePermissions\";\nvar _CVTN = \"ClientVpnTargetNetworks\";\nvar _CVr = \"CreateVpc\";\nvar _CVu = \"CurrentVersion\";\nvar _CWL = \"CloudWatchLogs\";\nvar _CWLO = \"CloudWatchLogOptions\";\nvar _Ca = \"Cascade\";\nvar _Cat = \"Category\";\nvar _Ch = \"Checksum\";\nvar _Ci = \"Cidrs\";\nvar _Co = \"Comment\";\nvar _Cod = \"Code\";\nvar _Com = \"Component\";\nvar _Con = \"Context\";\nvar _Conf = \"Configured\";\nvar _Confi = \"Config\";\nvar _Conn = \"Connections\";\nvar _Cor = \"Cores\";\nvar _Cou = \"Count\";\nvar _Cp = \"Cpu\";\nvar _D = \"Destination\";\nvar _DA = \"DescribeAddresses\";\nvar _DAA = \"DescribeAccountAttributes\";\nvar _DAAI = \"DelegatedAdminAccountId\";\nvar _DAAe = \"DescribeAddressesAttribute\";\nvar _DAIF = \"DescribeAggregateIdFormat\";\nvar _DAIS = \"DisableAllowedImagesSettings\";\nvar _DAIT = \"DenyAllIgwTraffic\";\nvar _DANPMS = \"DescribeAwsNetworkPerformanceMetricSubscriptions\";\nvar _DANPMSi = \"DisableAwsNetworkPerformanceMetricSubscription\";\nvar _DART = \"DefaultAssociationRouteTable\";\nvar _DAS = \"DisableApiStop\";\nvar _DAT = \"DescribeAddressTransfers\";\nvar _DATi = \"DisableAddressTransfer\";\nvar _DATis = \"DisableApiTermination\";\nvar _DAZ = \"DescribeAvailabilityZones\";\nvar _DAe = \"DeprecateAt\";\nvar _DAep = \"DeprovisionedAddresses\";\nvar _DAes = \"DestinationAddresses\";\nvar _DAest = \"DestinationAddress\";\nvar _DAesti = \"DestinationArn\";\nvar _DAi = \"DisassociateAddress\";\nvar _DBC = \"DeprovisionByoipCidr\";\nvar _DBCe = \"DescribeByoipCidrs\";\nvar _DBT = \"DescribeBundleTasks\";\nvar _DC = \"DisallowedCidrs\";\nvar _DCA = \"DomainCertificateArn\";\nvar _DCAR = \"DeliverCrossAccountRole\";\nvar _DCB = \"DestinationCidrBlock\";\nvar _DCBEH = \"DescribeCapacityBlockExtensionHistory\";\nvar _DCBEO = \"DescribeCapacityBlockExtensionOfferings\";\nvar _DCBO = \"DescribeCapacityBlockOfferings\";\nvar _DCC = \"DeleteCoipCidr\";\nvar _DCG = \"DeleteCarrierGateway\";\nvar _DCGe = \"DeleteCustomerGateway\";\nvar _DCGes = \"DescribeCarrierGateways\";\nvar _DCGesc = \"DescribeCustomerGateways\";\nvar _DCLI = \"DescribeClassicLinkInstances\";\nvar _DCLV = \"DetachClassicLinkVpc\";\nvar _DCP = \"DeleteCoipPool\";\nvar _DCPe = \"DescribeCoipPools\";\nvar _DCR = \"DescribeCapacityReservations\";\nvar _DCRBO = \"DisassociateCapacityReservationBillingOwner\";\nvar _DCRBR = \"DescribeCapacityReservationBillingRequests\";\nvar _DCRF = \"DescribeCapacityReservationFleets\";\nvar _DCRI = \"DestinationCapacityReservationId\";\nvar _DCRe = \"DestinationCapacityReservation\";\nvar _DCT = \"DescribeConversionTasks\";\nvar _DCVAR = \"DescribeClientVpnAuthorizationRules\";\nvar _DCVC = \"DescribeClientVpnConnections\";\nvar _DCVE = \"DeleteClientVpnEndpoint\";\nvar _DCVEe = \"DescribeClientVpnEndpoints\";\nvar _DCVR = \"DeleteClientVpnRoute\";\nvar _DCVRe = \"DescribeClientVpnRoutes\";\nvar _DCVTN = \"DescribeClientVpnTargetNetworks\";\nvar _DCVTNi = \"DisassociateClientVpnTargetNetwork\";\nvar _DCe = \"DestinationCidr\";\nvar _DCef = \"DefaultCores\";\nvar _DCh = \"DhcpConfigurations\";\nvar _DCi = \"DiskContainers\";\nvar _DCis = \"DiskContainer\";\nvar _DDO = \"DeleteDhcpOptions\";\nvar _DDOe = \"DescribeDhcpOptions\";\nvar _DDPR = \"DescribeDeclarativePoliciesReports\";\nvar _DE = \"DnsEntries\";\nvar _DECIR = \"DisassociateEnclaveCertificateIamRole\";\nvar _DEEBD = \"DisableEbsEncryptionByDefault\";\nvar _DEG = \"DescribeElasticGpus\";\nvar _DEIT = \"DescribeExportImageTasks\";\nvar _DEKI = \"DataEncryptionKeyId\";\nvar _DEOIG = \"DeleteEgressOnlyInternetGateway\";\nvar _DEOIGe = \"DescribeEgressOnlyInternetGateways\";\nvar _DEQC = \"DefaultEnaQueueCount\";\nvar _DEQCPI = \"DefaultEnaQueueCountPerInterface\";\nvar _DET = \"DescribeExportTasks\";\nvar _DEn = \"DnsEntry\";\nvar _DF = \"DeleteFleets\";\nvar _DFA = \"DefaultForAz\";\nvar _DFH = \"DescribeFleetHistory\";\nvar _DFI = \"DeleteFpgaImage\";\nvar _DFIA = \"DescribeFpgaImageAttribute\";\nvar _DFIe = \"DescribeFleetInstances\";\nvar _DFIes = \"DescribeFpgaImages\";\nvar _DFL = \"DeleteFlowLogs\";\nvar _DFLI = \"DescribeFastLaunchImages\";\nvar _DFLe = \"DescribeFlowLogs\";\nvar _DFLi = \"DisableFastLaunch\";\nvar _DFSR = \"DescribeFastSnapshotRestores\";\nvar _DFSRi = \"DisableFastSnapshotRestores\";\nvar _DFe = \"DescribeFleets\";\nvar _DH = \"DescribeHosts\";\nvar _DHI = \"DedicatedHostIds\";\nvar _DHR = \"DescribeHostReservations\";\nvar _DHRO = \"DescribeHostReservationOfferings\";\nvar _DHS = \"DedicatedHostsSupported\";\nvar _DI = \"DeleteIpam\";\nvar _DIA = \"DescribeImageAttribute\";\nvar _DIAe = \"DescribeInstanceAttribute\";\nvar _DIB = \"DeprovisionIpamByoasn\";\nvar _DIBPA = \"DisableImageBlockPublicAccess\";\nvar _DIBe = \"DescribeIpamByoasn\";\nvar _DIBi = \"DisassociateIpamByoasn\";\nvar _DICB = \"DestinationIpv6CidrBlock\";\nvar _DICE = \"DeleteInstanceConnectEndpoint\";\nvar _DICEe = \"DescribeInstanceConnectEndpoints\";\nvar _DICS = \"DescribeInstanceCreditSpecifications\";\nvar _DID = \"DisableImageDeprecation\";\nvar _DIDP = \"DisableImageDeregistrationProtection\";\nvar _DIENA = \"DeregisterInstanceEventNotificationAttributes\";\nvar _DIENAe = \"DescribeInstanceEventNotificationAttributes\";\nvar _DIERVT = \"DeleteIpamExternalResourceVerificationToken\";\nvar _DIERVTe = \"DescribeIpamExternalResourceVerificationTokens\";\nvar _DIEW = \"DeleteInstanceEventWindow\";\nvar _DIEWe = \"DescribeInstanceEventWindows\";\nvar _DIEWi = \"DisassociateInstanceEventWindow\";\nvar _DIF = \"DescribeIdFormat\";\nvar _DIFi = \"DiskImageFormat\";\nvar _DIG = \"DeleteInternetGateway\";\nvar _DIGe = \"DescribeInternetGateways\";\nvar _DIGet = \"DetachInternetGateway\";\nvar _DIIF = \"DescribeIdentityIdFormat\";\nvar _DIIM = \"DescribeInstanceImageMetadata\";\nvar _DIIP = \"DisassociateIamInstanceProfile\";\nvar _DIIPA = \"DescribeIamInstanceProfileAssociations\";\nvar _DIIT = \"DescribeImportImageTasks\";\nvar _DIOAA = \"DisableIpamOrganizationAdminAccount\";\nvar _DIP = \"DeleteIpamPool\";\nvar _DIPC = \"DeprovisionIpamPoolCidr\";\nvar _DIPe = \"DescribeIpamPools\";\nvar _DIPes = \"DescribeIpv6Pools\";\nvar _DIRD = \"DeleteIpamResourceDiscovery\";\nvar _DIRDA = \"DescribeIpamResourceDiscoveryAssociations\";\nvar _DIRDe = \"DescribeIpamResourceDiscoveries\";\nvar _DIRDi = \"DisassociateIpamResourceDiscovery\";\nvar _DIS = \"DeleteIpamScope\";\nvar _DISI = \"DestinationIpamScopeId\";\nvar _DIST = \"DescribeImportSnapshotTasks\";\nvar _DISe = \"DescribeInstanceStatus\";\nvar _DISes = \"DescribeIpamScopes\";\nvar _DISi = \"DiskImageSize\";\nvar _DIT = \"DescribeInstanceTopology\";\nvar _DITO = \"DescribeInstanceTypeOfferings\";\nvar _DITe = \"DescribeInstanceTypes\";\nvar _DIe = \"DeregisterImage\";\nvar _DIes = \"DescribeImages\";\nvar _DIesc = \"DescribeInstances\";\nvar _DIescr = \"DescribeIpams\";\nvar _DIest = \"DestinationIp\";\nvar _DIev = \"DeviceIndex\";\nvar _DIevi = \"DeviceId\";\nvar _DIi = \"DisableImage\";\nvar _DIir = \"DirectoryId\";\nvar _DIis = \"DiskImages\";\nvar _DKP = \"DeleteKeyPair\";\nvar _DKPe = \"DescribeKeyPairs\";\nvar _DLADI = \"DisableLniAtDeviceIndex\";\nvar _DLEM = \"DeliverLogsErrorMessage\";\nvar _DLG = \"DescribeLocalGateways\";\nvar _DLGR = \"DeleteLocalGatewayRoute\";\nvar _DLGRT = \"DeleteLocalGatewayRouteTable\";\nvar _DLGRTVA = \"DeleteLocalGatewayRouteTableVpcAssociation\";\nvar _DLGRTVAe = \"DescribeLocalGatewayRouteTableVpcAssociations\";\nvar _DLGRTVIGA = \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _DLGRTVIGAe = \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations\";\nvar _DLGRTe = \"DescribeLocalGatewayRouteTables\";\nvar _DLGVI = \"DeleteLocalGatewayVirtualInterface\";\nvar _DLGVIG = \"DeleteLocalGatewayVirtualInterfaceGroup\";\nvar _DLGVIGe = \"DescribeLocalGatewayVirtualInterfaceGroups\";\nvar _DLGVIe = \"DescribeLocalGatewayVirtualInterfaces\";\nvar _DLPA = \"DeliverLogsPermissionArn\";\nvar _DLS = \"DescribeLockedSnapshots\";\nvar _DLSe = \"DeliverLogsStatus\";\nvar _DLT = \"DeleteLaunchTemplate\";\nvar _DLTV = \"DeleteLaunchTemplateVersions\";\nvar _DLTVe = \"DescribeLaunchTemplateVersions\";\nvar _DLTe = \"DescribeLaunchTemplates\";\nvar _DMA = \"DescribeMovingAddresses\";\nvar _DMGM = \"DeregisteredMulticastGroupMembers\";\nvar _DMGS = \"DeregisteredMulticastGroupSources\";\nvar _DMH = \"DescribeMacHosts\";\nvar _DMPL = \"DeleteManagedPrefixList\";\nvar _DMPLe = \"DescribeManagedPrefixLists\";\nvar _DN = \"DeviceName\";\nvar _DNA = \"DeleteNetworkAcl\";\nvar _DNAE = \"DeleteNetworkAclEntry\";\nvar _DNAe = \"DescribeNetworkAcls\";\nvar _DNCI = \"DefaultNetworkCardIndex\";\nvar _DNG = \"DeleteNatGateway\";\nvar _DNGA = \"DisassociateNatGatewayAddress\";\nvar _DNGe = \"DescribeNatGateways\";\nvar _DNI = \"DeleteNetworkInterface\";\nvar _DNIA = \"DeleteNetworkInsightsAnalysis\";\nvar _DNIAS = \"DeleteNetworkInsightsAccessScope\";\nvar _DNIASA = \"DeleteNetworkInsightsAccessScopeAnalysis\";\nvar _DNIASAe = \"DescribeNetworkInsightsAccessScopeAnalyses\";\nvar _DNIASe = \"DescribeNetworkInsightsAccessScopes\";\nvar _DNIAe = \"DescribeNetworkInsightsAnalyses\";\nvar _DNIAes = \"DescribeNetworkInterfaceAttribute\";\nvar _DNII = \"DeregisteredNetworkInterfaceIds\";\nvar _DNIP = \"DeleteNetworkInsightsPath\";\nvar _DNIPe = \"DeleteNetworkInterfacePermission\";\nvar _DNIPes = \"DescribeNetworkInsightsPaths\";\nvar _DNIPesc = \"DescribeNetworkInterfacePermissions\";\nvar _DNIe = \"DescribeNetworkInterfaces\";\nvar _DNIet = \"DetachNetworkInterface\";\nvar _DNn = \"DnsName\";\nvar _DNo = \"DomainName\";\nvar _DO = \"DestinationOptions\";\nvar _DOA = \"DestinationOutpostArn\";\nvar _DOI = \"DhcpOptionsId\";\nvar _DOIh = \"DhcpOptionsIds\";\nvar _DOL = \"DescribeOutpostLags\";\nvar _DOST = \"DisconnectOnSessionTimeout\";\nvar _DOT = \"DeleteOnTermination\";\nvar _DOe = \"DeviceOptions\";\nvar _DOh = \"DhcpOptions\";\nvar _DOn = \"DnsOptions\";\nvar _DP = \"DeliveryPreference\";\nvar _DPDTA = \"DPDTimeoutAction\";\nvar _DPDTS = \"DPDTimeoutSeconds\";\nvar _DPG = \"DeletePlacementGroup\";\nvar _DPGe = \"DescribePlacementGroups\";\nvar _DPIF = \"DescribePrincipalIdFormat\";\nvar _DPIP = \"DeletePublicIpv4Pool\";\nvar _DPIPC = \"DeprovisionPublicIpv4PoolCidr\";\nvar _DPIPe = \"DescribePublicIpv4Pools\";\nvar _DPL = \"DescribePrefixLists\";\nvar _DPLI = \"DestinationPrefixListId\";\nvar _DPLe = \"DestinationPrefixLists\";\nvar _DPR = \"DestinationPortRange\";\nvar _DPRT = \"DefaultPropagationRouteTable\";\nvar _DPRe = \"DestinationPortRanges\";\nvar _DPe = \"DestinationPort\";\nvar _DPer = \"DeregistrationProtection\";\nvar _DPes = \"DestinationPorts\";\nvar _DQ = \"DataQueries\";\nvar _DQRI = \"DeleteQueuedReservedInstances\";\nvar _DR = \"DeleteRoute\";\nvar _DRDAI = \"DefaultResourceDiscoveryAssociationId\";\nvar _DRDI = \"DefaultResourceDiscoveryId\";\nvar _DRI = \"DescribeReservedInstances\";\nvar _DRIL = \"DescribeReservedInstancesListings\";\nvar _DRIM = \"DescribeReservedInstancesModifications\";\nvar _DRIO = \"DescribeReservedInstancesOfferings\";\nvar _DRIT = \"DnsRecordIpType\";\nvar _DRRV = \"DeleteReplacedRootVolume\";\nvar _DRRVT = \"DescribeReplaceRootVolumeTasks\";\nvar _DRS = \"DeleteRouteServer\";\nvar _DRSE = \"DeleteRouteServerEndpoint\";\nvar _DRSEe = \"DescribeRouteServerEndpoints\";\nvar _DRSP = \"DeleteRouteServerPeer\";\nvar _DRSPe = \"DescribeRouteServerPeers\";\nvar _DRSPi = \"DisableRouteServerPropagation\";\nvar _DRSa = \"DataRetentionSupport\";\nvar _DRSe = \"DescribeRouteServers\";\nvar _DRSi = \"DisassociateRouteServer\";\nvar _DRT = \"DeleteRouteTable\";\nvar _DRTA = \"DefaultRouteTableAssociation\";\nvar _DRTP = \"DefaultRouteTablePropagation\";\nvar _DRTe = \"DescribeRouteTables\";\nvar _DRTi = \"DisassociateRouteTable\";\nvar _DRa = \"DataResponses\";\nvar _DRe = \"DescribeRegions\";\nvar _DRes = \"DestinationRegion\";\nvar _DRi = \"DiscoveryRegion\";\nvar _DRr = \"DryRun\";\nvar _DRy = \"DynamicRouting\";\nvar _DS = \"DeleteSnapshot\";\nvar _DSA = \"DescribeSnapshotAttribute\";\nvar _DSBPA = \"DisableSnapshotBlockPublicAccess\";\nvar _DSCA = \"DisableSerialConsoleAccess\";\nvar _DSCB = \"DisassociateSubnetCidrBlock\";\nvar _DSCR = \"DeleteSubnetCidrReservation\";\nvar _DSCRe = \"DeletedSubnetCidrReservation\";\nvar _DSDS = \"DeleteSpotDatafeedSubscription\";\nvar _DSDSe = \"DescribeSpotDatafeedSubscription\";\nvar _DSFI = \"DescribeSpotFleetInstances\";\nvar _DSFR = \"DescribeSpotFleetRequests\";\nvar _DSFRH = \"DescribeSpotFleetRequestHistory\";\nvar _DSG = \"DeleteSecurityGroup\";\nvar _DSGR = \"DescribeSecurityGroupReferences\";\nvar _DSGRe = \"DescribeSecurityGroupRules\";\nvar _DSGV = \"DisassociateSecurityGroupVpc\";\nvar _DSGVA = \"DescribeSecurityGroupVpcAssociations\";\nvar _DSGe = \"DescribeSecurityGroups\";\nvar _DSI = \"DescribeScheduledInstances\";\nvar _DSIA = \"DescribeScheduledInstanceAvailability\";\nvar _DSIR = \"DescribeSpotInstanceRequests\";\nvar _DSIT = \"DescribeStoreImageTasks\";\nvar _DSLVI = \"DescribeServiceLinkVirtualInterfaces\";\nvar _DSPH = \"DescribeSpotPriceHistory\";\nvar _DSSG = \"DescribeStaleSecurityGroups\";\nvar _DSTS = \"DescribeSnapshotTierStatus\";\nvar _DSe = \"DeleteSubnet\";\nvar _DSel = \"DeliveryStream\";\nvar _DSeli = \"DeliveryStatus\";\nvar _DSes = \"DescribeSnapshots\";\nvar _DSesc = \"DescribeSubnets\";\nvar _DSn = \"DnsServers\";\nvar _DSns = \"DnsSupport\";\nvar _DT = \"DeleteTags\";\nvar _DTA = \"DpdTimeoutAction\";\nvar _DTCT = \"DefaultTargetCapacityType\";\nvar _DTG = \"DeleteTransitGateway\";\nvar _DTGA = \"DescribeTransitGatewayAttachments\";\nvar _DTGC = \"DeleteTransitGatewayConnect\";\nvar _DTGCP = \"DeleteTransitGatewayConnectPeer\";\nvar _DTGCPe = \"DescribeTransitGatewayConnectPeers\";\nvar _DTGCe = \"DescribeTransitGatewayConnects\";\nvar _DTGMD = \"DeleteTransitGatewayMulticastDomain\";\nvar _DTGMDe = \"DescribeTransitGatewayMulticastDomains\";\nvar _DTGMDi = \"DisassociateTransitGatewayMulticastDomain\";\nvar _DTGMGM = \"DeregisterTransitGatewayMulticastGroupMembers\";\nvar _DTGMGS = \"DeregisterTransitGatewayMulticastGroupSources\";\nvar _DTGPA = \"DeleteTransitGatewayPeeringAttachment\";\nvar _DTGPAe = \"DescribeTransitGatewayPeeringAttachments\";\nvar _DTGPLR = \"DeleteTransitGatewayPrefixListReference\";\nvar _DTGPT = \"DeleteTransitGatewayPolicyTable\";\nvar _DTGPTe = \"DescribeTransitGatewayPolicyTables\";\nvar _DTGPTi = \"DisassociateTransitGatewayPolicyTable\";\nvar _DTGR = \"DeleteTransitGatewayRoute\";\nvar _DTGRT = \"DeleteTransitGatewayRouteTable\";\nvar _DTGRTA = \"DeleteTransitGatewayRouteTableAnnouncement\";\nvar _DTGRTAe = \"DescribeTransitGatewayRouteTableAnnouncements\";\nvar _DTGRTP = \"DisableTransitGatewayRouteTablePropagation\";\nvar _DTGRTe = \"DescribeTransitGatewayRouteTables\";\nvar _DTGRTi = \"DisassociateTransitGatewayRouteTable\";\nvar _DTGVA = \"DeleteTransitGatewayVpcAttachment\";\nvar _DTGVAe = \"DescribeTransitGatewayVpcAttachments\";\nvar _DTGe = \"DescribeTransitGateways\";\nvar _DTI = \"DisassociateTrunkInterface\";\nvar _DTIA = \"DescribeTrunkInterfaceAssociations\";\nvar _DTMF = \"DeleteTrafficMirrorFilter\";\nvar _DTMFR = \"DeleteTrafficMirrorFilterRule\";\nvar _DTMFRe = \"DescribeTrafficMirrorFilterRules\";\nvar _DTMFe = \"DescribeTrafficMirrorFilters\";\nvar _DTMS = \"DeleteTrafficMirrorSession\";\nvar _DTMSe = \"DescribeTrafficMirrorSessions\";\nvar _DTMT = \"DeleteTrafficMirrorTarget\";\nvar _DTMTe = \"DescribeTrafficMirrorTargets\";\nvar _DTP = \"DeviceTrustProviders\";\nvar _DTPC = \"DefaultThreadsPerCore\";\nvar _DTPT = \"DeviceTrustProviderType\";\nvar _DTS = \"DpdTimeoutSeconds\";\nvar _DTe = \"DescribeTags\";\nvar _DTel = \"DeletionTime\";\nvar _DTele = \"DeleteTime\";\nvar _DTelet = \"DeletionTimestamp\";\nvar _DTep = \"DeprecationTime\";\nvar _DTi = \"DisablingTime\";\nvar _DTis = \"DisabledTime\";\nvar _DV = \"DeleteVolume\";\nvar _DVA = \"DescribeVolumeAttribute\";\nvar _DVAE = \"DeleteVerifiedAccessEndpoint\";\nvar _DVAEe = \"DescribeVerifiedAccessEndpoints\";\nvar _DVAG = \"DeleteVerifiedAccessGroup\";\nvar _DVAGe = \"DescribeVerifiedAccessGroups\";\nvar _DVAI = \"DeleteVerifiedAccessInstance\";\nvar _DVAILC = \"DescribeVerifiedAccessInstanceLoggingConfigurations\";\nvar _DVAIe = \"DescribeVerifiedAccessInstances\";\nvar _DVATP = \"DeleteVerifiedAccessTrustProvider\";\nvar _DVATPe = \"DescribeVerifiedAccessTrustProviders\";\nvar _DVATPet = \"DetachVerifiedAccessTrustProvider\";\nvar _DVAe = \"DescribeVpcAttribute\";\nvar _DVBPAE = \"DeleteVpcBlockPublicAccessExclusion\";\nvar _DVBPAEe = \"DescribeVpcBlockPublicAccessExclusions\";\nvar _DVBPAO = \"DescribeVpcBlockPublicAccessOptions\";\nvar _DVC = \"DeleteVpnConnection\";\nvar _DVCB = \"DisassociateVpcCidrBlock\";\nvar _DVCL = \"DescribeVpcClassicLink\";\nvar _DVCLDS = \"DescribeVpcClassicLinkDnsSupport\";\nvar _DVCLDSi = \"DisableVpcClassicLinkDnsSupport\";\nvar _DVCLi = \"DisableVpcClassicLink\";\nvar _DVCR = \"DeleteVpnConnectionRoute\";\nvar _DVCe = \"DescribeVpnConnections\";\nvar _DVCef = \"DefaultVCpus\";\nvar _DVD = \"DeviceValidationDomain\";\nvar _DVE = \"DeleteVpcEndpoints\";\nvar _DVEA = \"DescribeVpcEndpointAssociations\";\nvar _DVEC = \"DescribeVpcEndpointConnections\";\nvar _DVECN = \"DeleteVpcEndpointConnectionNotifications\";\nvar _DVECNe = \"DescribeVpcEndpointConnectionNotifications\";\nvar _DVES = \"DescribeVpcEndpointServices\";\nvar _DVESC = \"DeleteVpcEndpointServiceConfigurations\";\nvar _DVESCe = \"DescribeVpcEndpointServiceConfigurations\";\nvar _DVESP = \"DescribeVpcEndpointServicePermissions\";\nvar _DVEe = \"DescribeVpcEndpoints\";\nvar _DVG = \"DeleteVpnGateway\";\nvar _DVGe = \"DescribeVpnGateways\";\nvar _DVGet = \"DetachVpnGateway\";\nvar _DVM = \"DescribeVolumesModifications\";\nvar _DVN = \"DefaultVersionNumber\";\nvar _DVPC = \"DeleteVpcPeeringConnection\";\nvar _DVPCe = \"DescribeVpcPeeringConnections\";\nvar _DVRP = \"DisableVgwRoutePropagation\";\nvar _DVS = \"DescribeVolumeStatus\";\nvar _DVe = \"DeleteVpc\";\nvar _DVef = \"DefaultVersion\";\nvar _DVes = \"DescribeVolumes\";\nvar _DVesc = \"DescribeVpcs\";\nvar _DVest = \"DestinationVpc\";\nvar _DVet = \"DetachVolume\";\nvar _Da = \"Data\";\nvar _De = \"Description\";\nvar _Dea = \"Deadline\";\nvar _Des = \"Destinations\";\nvar _Det = \"Details\";\nvar _Dev = \"Device\";\nvar _Di = \"Direction\";\nvar _Dis = \"Disks\";\nvar _Do = \"Domain\";\nvar _Du = \"Duration\";\nvar _E = \"Ebs\";\nvar _EA = \"EnableAcceleration\";\nvar _EAIS = \"EnableAllowedImagesSettings\";\nvar _EANPMS = \"EnableAwsNetworkPerformanceMetricSubscription\";\nvar _EAT = \"EnableAddressTransfer\";\nvar _EAn = \"EniAddress\";\nvar _EAx = \"ExclusionsAllowed\";\nvar _EB = \"EgressBytes\";\nvar _EBV = \"ExcludeBootVolume\";\nvar _EC = \"ErrorCode\";\nvar _ECTP = \"ExcessCapacityTerminationPolicy\";\nvar _ECVCC = \"ExportClientVpnClientConfiguration\";\nvar _ECVCCRL = \"ExportClientVpnClientCertificateRevocationList\";\nvar _ECn = \"EncryptionControl\";\nvar _ECx = \"ExplanationCode\";\nvar _ED = \"EndDate\";\nvar _EDH = \"EnableDnsHostnames\";\nvar _EDP = \"EndpointDomainPrefix\";\nvar _EDR = \"EndDateRange\";\nvar _EDS = \"EnableDnsSupport\";\nvar _EDT = \"EndDateType\";\nvar _EDVI = \"ExcludeDataVolumeIds\";\nvar _EDf = \"EffectiveDate\";\nvar _EDn = \"EnableDns64\";\nvar _EDnd = \"EndpointDomain\";\nvar _EDv = \"EventDescription\";\nvar _EDx = \"ExpirationDate\";\nvar _EEA = \"EndpointEniAddress\";\nvar _EEBD = \"EbsEncryptionByDefault\";\nvar _EEEBD = \"EnableEbsEncryptionByDefault\";\nvar _EEI = \"EndpointEniId\";\nvar _EFL = \"EnableFastLaunch\";\nvar _EFR = \"EgressFilterRules\";\nvar _EFSR = \"EnableFastSnapshotRestores\";\nvar _EGA = \"ElasticGpuAssociations\";\nvar _EGAI = \"ElasticGpuAssociationId\";\nvar _EGAS = \"ElasticGpuAssociationState\";\nvar _EGAT = \"ElasticGpuAssociationTime\";\nvar _EGH = \"ElasticGpuHealth\";\nvar _EGI = \"ElasticGpuIds\";\nvar _EGIl = \"ElasticGpuId\";\nvar _EGS = \"ElasticGpuSpecifications\";\nvar _EGSl = \"ElasticGpuSpecification\";\nvar _EGSla = \"ElasticGpuSet\";\nvar _EGSlas = \"ElasticGpuState\";\nvar _EGT = \"ElasticGpuType\";\nvar _EH = \"EndHour\";\nvar _EI = \"EnableImage\";\nvar _EIA = \"ElasticInferenceAccelerators\";\nvar _EIAA = \"ElasticInferenceAcceleratorArn\";\nvar _EIAAI = \"ElasticInferenceAcceleratorAssociationId\";\nvar _EIAAS = \"ElasticInferenceAcceleratorAssociationState\";\nvar _EIAAT = \"ElasticInferenceAcceleratorAssociationTime\";\nvar _EIAAl = \"ElasticInferenceAcceleratorAssociations\";\nvar _EIBPA = \"EnableImageBlockPublicAccess\";\nvar _EID = \"EnableImageDeprecation\";\nvar _EIDP = \"EnableImageDeregistrationProtection\";\nvar _EIOAA = \"EnableIpamOrganizationAdminAccount\";\nvar _EIT = \"ExcludedInstanceTypes\";\nvar _EITI = \"ExportImageTaskIds\";\nvar _EITIx = \"ExportImageTaskId\";\nvar _EITS = \"EncryptionInTransitSupported\";\nvar _EITx = \"ExportImageTasks\";\nvar _EIb = \"EbsInfo\";\nvar _EIf = \"EfaInfo\";\nvar _EIn = \"EniId\";\nvar _EIv = \"EventInformation\";\nvar _EIve = \"EventId\";\nvar _EIx = \"ExportImage\";\nvar _EIxc = \"ExclusionId\";\nvar _EIxch = \"ExchangeId\";\nvar _EIxcl = \"ExclusionIds\";\nvar _EKKI = \"EncryptionKmsKeyId\";\nvar _ELADI = \"EnableLniAtDeviceIndex\";\nvar _ELBL = \"ElasticLoadBalancerListener\";\nvar _EM = \"ErrorMessage\";\nvar _ENAUM = \"EnableNetworkAddressUsageMetrics\";\nvar _EO = \"EbsOptimized\";\nvar _EOI = \"EbsOptimizedInfo\";\nvar _EOIG = \"EgressOnlyInternetGateway\";\nvar _EOIGI = \"EgressOnlyInternetGatewayId\";\nvar _EOIGIg = \"EgressOnlyInternetGatewayIds\";\nvar _EOIGg = \"EgressOnlyInternetGateways\";\nvar _EOS = \"EbsOptimizedSupport\";\nvar _EOn = \"EnclaveOptions\";\nvar _EP = \"ExcludePaths\";\nvar _EPG = \"EnablePrivateGua\";\nvar _EPI = \"EnablePrimaryIpv6\";\nvar _EPg = \"EgressPackets\";\nvar _EQC = \"EnaQueueCount\";\nvar _ERAOS = \"EnableReachabilityAnalyzerOrganizationSharing\";\nvar _ERNDAAAAR = \"EnableResourceNameDnsAAAARecord\";\nvar _ERNDAAAAROL = \"EnableResourceNameDnsAAAARecordOnLaunch\";\nvar _ERNDAR = \"EnableResourceNameDnsARecord\";\nvar _ERNDAROL = \"EnableResourceNameDnsARecordOnLaunch\";\nvar _ERSP = \"EnableRouteServerPropagation\";\nvar _ES = \"EphemeralStorage\";\nvar _ESBPA = \"EnableSnapshotBlockPublicAccess\";\nvar _ESCA = \"EnableSerialConsoleAccess\";\nvar _ESE = \"EnaSrdEnabled\";\nvar _ESS = \"EnaSrdSpecification\";\nvar _ESSn = \"EnaSrdSupported\";\nvar _EST = \"EventSubType\";\nvar _ESUE = \"EnaSrdUdpEnabled\";\nvar _ESUS = \"EnaSrdUdpSpecification\";\nvar _ESf = \"EfaSupported\";\nvar _ESn = \"EnaSupport\";\nvar _ESnc = \"EncryptionSupport\";\nvar _ET = \"EndpointType\";\nvar _ETGR = \"ExportTransitGatewayRoutes\";\nvar _ETGRTP = \"EnableTransitGatewayRouteTablePropagation\";\nvar _ETI = \"ExportTaskId\";\nvar _ETIx = \"ExportTaskIds\";\nvar _ETLC = \"EnableTunnelLifecycleControl\";\nvar _ETST = \"ExportToS3Task\";\nvar _ETa = \"EarliestTime\";\nvar _ETi = \"EipTags\";\nvar _ETn = \"EndTime\";\nvar _ETna = \"EnablingTime\";\nvar _ETnab = \"EnabledTime\";\nvar _ETv = \"EventType\";\nvar _ETx = \"ExpirationTime\";\nvar _ETxp = \"ExportTask\";\nvar _ETxpo = \"ExportTasks\";\nvar _EU = \"ExecutableUsers\";\nvar _EVAICC = \"ExportVerifiedAccessInstanceClientConfiguration\";\nvar _EVCL = \"EnableVpcClassicLink\";\nvar _EVCLDS = \"EnableVpcClassicLinkDnsSupport\";\nvar _EVIO = \"EnableVolumeIO\";\nvar _EVRP = \"EnableVgwRoutePropagation\";\nvar _EWD = \"EndWeekDay\";\nvar _Eg = \"Egress\";\nvar _En = \"Enabled\";\nvar _Enc = \"Encrypted\";\nvar _End = \"End\";\nvar _Endp = \"Endpoint\";\nvar _Enf = \"Enforced\";\nvar _Ent = \"Entries\";\nvar _Er = \"Error\";\nvar _Err = \"Errors\";\nvar _Ev = \"Events\";\nvar _Eve = \"Event\";\nvar _Ex = \"Explanations\";\nvar _F = \"Force\";\nvar _FA = \"FederatedAuthentication\";\nvar _FAD = \"FilterAtDestination\";\nvar _FAS = \"FilterAtSource\";\nvar _FAi = \"FirstAddress\";\nvar _FC = \"FulfilledCapacity\";\nvar _FCR = \"FleetCapacityReservations\";\nvar _FCa = \"FailureCode\";\nvar _FCi = \"FindingComponents\";\nvar _FD = \"ForceDelete\";\nvar _FDN = \"FipsDnsName\";\nvar _FE = \"FipsEnabled\";\nvar _FEQS = \"FlexibleEnaQueuesSupport\";\nvar _FF = \"FileFormat\";\nvar _FFC = \"FailedFleetCancellations\";\nvar _FFi = \"FindingsFound\";\nvar _FI = \"FleetIds\";\nvar _FIA = \"FilterInArns\";\nvar _FIAp = \"FpgaImageAttribute\";\nvar _FIGI = \"FpgaImageGlobalId\";\nvar _FII = \"FpgaImageId\";\nvar _FIIp = \"FpgaImageIds\";\nvar _FIPSE = \"FIPSEnabled\";\nvar _FIi = \"FindingId\";\nvar _FIl = \"FleetId\";\nvar _FIp = \"FpgaImages\";\nvar _FIpg = \"FpgaInfo\";\nvar _FL = \"FlowLogs\";\nvar _FLI = \"FlowLogIds\";\nvar _FLIa = \"FastLaunchImages\";\nvar _FLIl = \"FlowLogId\";\nvar _FLS = \"FlowLogStatus\";\nvar _FM = \"FailureMessage\";\nvar _FOA = \"FilterOutArns\";\nvar _FODC = \"FulfilledOnDemandCapacity\";\nvar _FP = \"FromPort\";\nvar _FPC = \"ForwardPathComponents\";\nvar _FPi = \"FixedPrice\";\nvar _FQPD = \"FailedQueuedPurchaseDeletions\";\nvar _FR = \"FailureReason\";\nvar _FRa = \"FastRestored\";\nvar _FS = \"FleetState\";\nvar _FSR = \"FastSnapshotRestores\";\nvar _FSRSE = \"FastSnapshotRestoreStateErrors\";\nvar _FSRi = \"FirewallStatelessRule\";\nvar _FSRir = \"FirewallStatefulRule\";\nvar _FSSIB = \"FullSnapshotSizeInBytes\";\nvar _FSST = \"FirstSlotStartTime\";\nvar _FSSTR = \"FirstSlotStartTimeRange\";\nvar _FTE = \"FreeTierEligible\";\nvar _Fa = \"Fault\";\nvar _Fi = \"Filters\";\nvar _Fil = \"Filter\";\nvar _Fl = \"Fleets\";\nvar _Fo = \"Format\";\nvar _Fp = \"Fpgas\";\nvar _Fr = \"From\";\nvar _Fre = \"Frequency\";\nvar _G = \"Groups\";\nvar _GA = \"GroupArn\";\nvar _GAECIR = \"GetAssociatedEnclaveCertificateIamRoles\";\nvar _GAIPC = \"GetAssociatedIpv6PoolCidrs\";\nvar _GAIS = \"GetAllowedImagesSettings\";\nvar _GANPD = \"GetAwsNetworkPerformanceData\";\nvar _GAS = \"GatewayAssociationState\";\nvar _GCO = \"GetConsoleOutput\";\nvar _GCPU = \"GetCoipPoolUsage\";\nvar _GCRU = \"GetCapacityReservationUsage\";\nvar _GCS = \"GetConsoleScreenshot\";\nvar _GD = \"GroupDescription\";\nvar _GDCS = \"GetDefaultCreditSpecification\";\nvar _GDPRS = \"GetDeclarativePoliciesReportSummary\";\nvar _GEDKKI = \"GetEbsDefaultKmsKeyId\";\nvar _GEEBD = \"GetEbsEncryptionByDefault\";\nvar _GFLIT = \"GetFlowLogsIntegrationTemplate\";\nvar _GGFCR = \"GetGroupsForCapacityReservation\";\nvar _GHRPP = \"GetHostReservationPurchasePreview\";\nvar _GI = \"GatewayId\";\nvar _GIA = \"GroupIpAddress\";\nvar _GIAH = \"GetIpamAddressHistory\";\nvar _GIBPAS = \"GetImageBlockPublicAccessState\";\nvar _GIDA = \"GetIpamDiscoveredAccounts\";\nvar _GIDPA = \"GetIpamDiscoveredPublicAddresses\";\nvar _GIDRC = \"GetIpamDiscoveredResourceCidrs\";\nvar _GIMD = \"GetInstanceMetadataDefaults\";\nvar _GIPA = \"GetIpamPoolAllocations\";\nvar _GIPC = \"GetIpamPoolCidrs\";\nvar _GIRC = \"GetIpamResourceCidrs\";\nvar _GITEP = \"GetInstanceTpmEkPub\";\nvar _GITFIR = \"GetInstanceTypesFromInstanceRequirements\";\nvar _GIUD = \"GetInstanceUefiData\";\nvar _GIp = \"GpuInfo\";\nvar _GIr = \"GroupId\";\nvar _GIro = \"GroupIds\";\nvar _GK = \"GreKey\";\nvar _GLBA = \"GatewayLoadBalancerArns\";\nvar _GLBEI = \"GatewayLoadBalancerEndpointId\";\nvar _GLN = \"GroupLongName\";\nvar _GLTD = \"GetLaunchTemplateData\";\nvar _GM = \"GroupMember\";\nvar _GMPLA = \"GetManagedPrefixListAssociations\";\nvar _GMPLE = \"GetManagedPrefixListEntries\";\nvar _GN = \"GroupName\";\nvar _GNIASAF = \"GetNetworkInsightsAccessScopeAnalysisFindings\";\nvar _GNIASC = \"GetNetworkInsightsAccessScopeContent\";\nvar _GNr = \"GroupNames\";\nvar _GOI = \"GroupOwnerId\";\nvar _GPD = \"GetPasswordData\";\nvar _GRIEQ = \"GetReservedInstancesExchangeQuote\";\nvar _GRSA = \"GetRouteServerAssociations\";\nvar _GRSP = \"GetRouteServerPropagations\";\nvar _GRSRD = \"GetRouteServerRoutingDatabase\";\nvar _GS = \"GroupSource\";\nvar _GSBPAS = \"GetSnapshotBlockPublicAccessState\";\nvar _GSCAS = \"GetSerialConsoleAccessStatus\";\nvar _GSCR = \"GetSubnetCidrReservations\";\nvar _GSGFV = \"GetSecurityGroupsForVpc\";\nvar _GSPS = \"GetSpotPlacementScores\";\nvar _GTGAP = \"GetTransitGatewayAttachmentPropagations\";\nvar _GTGMDA = \"GetTransitGatewayMulticastDomainAssociations\";\nvar _GTGPLR = \"GetTransitGatewayPrefixListReferences\";\nvar _GTGPTA = \"GetTransitGatewayPolicyTableAssociations\";\nvar _GTGPTE = \"GetTransitGatewayPolicyTableEntries\";\nvar _GTGRTA = \"GetTransitGatewayRouteTableAssociations\";\nvar _GTGRTP = \"GetTransitGatewayRouteTablePropagations\";\nvar _GVAEP = \"GetVerifiedAccessEndpointPolicy\";\nvar _GVAET = \"GetVerifiedAccessEndpointTargets\";\nvar _GVAGP = \"GetVerifiedAccessGroupPolicy\";\nvar _GVCDSC = \"GetVpnConnectionDeviceSampleConfiguration\";\nvar _GVCDT = \"GetVpnConnectionDeviceTypes\";\nvar _GVTRS = \"GetVpnTunnelReplacementStatus\";\nvar _Gp = \"Gpus\";\nvar _Gr = \"Group\";\nvar _H = \"Hypervisor\";\nvar _HCP = \"HiveCompatiblePartitions\";\nvar _HE = \"HttpEndpoint\";\nvar _HI = \"HostIds\";\nvar _HIS = \"HostIdSet\";\nvar _HIo = \"HostId\";\nvar _HM = \"HostMaintenance\";\nvar _HO = \"HibernationOptions\";\nvar _HP = \"HostProperties\";\nvar _HPI = \"HttpProtocolIpv6\";\nvar _HPRHL = \"HttpPutResponseHopLimit\";\nvar _HPo = \"HourlyPrice\";\nvar _HR = \"HostRecovery\";\nvar _HRGA = \"HostResourceGroupArn\";\nvar _HRI = \"HostReservationId\";\nvar _HRIS = \"HostReservationIdSet\";\nvar _HRS = \"HostReservationSet\";\nvar _HRi = \"HistoryRecords\";\nvar _HS = \"HibernationSupported\";\nvar _HT = \"HttpTokens\";\nvar _HTo = \"HostnameType\";\nvar _HZI = \"HostedZoneId\";\nvar _Hi = \"Hibernate\";\nvar _Ho = \"Hosts\";\nvar _I = \"Issuer\";\nvar _IA = \"Ipv6Addresses\";\nvar _IAA = \"Ipv6AddressAttribute\";\nvar _IAC = \"Ipv6AddressCount\";\nvar _IAI = \"IncludeAllInstances\";\nvar _IAIn = \"InferenceAcceleratorInfo\";\nvar _IAPI = \"Ipv4AddressesPerInterface\";\nvar _IAPIp = \"Ipv6AddressesPerInterface\";\nvar _IAT = \"IpAddressType\";\nvar _IATOI = \"IncludeAllTagsOfInstance\";\nvar _IAm = \"ImageAllowed\";\nvar _IAn = \"InterfaceAssociation\";\nvar _IAnt = \"InterfaceAssociations\";\nvar _IAp = \"IpAddress\";\nvar _IApa = \"IpamArn\";\nvar _IApv = \"Ipv6Address\";\nvar _IB = \"IngressBytes\";\nvar _IBPAS = \"ImageBlockPublicAccessState\";\nvar _IC = \"InstanceCount\";\nvar _ICA = \"Ipv6CidrAssociations\";\nvar _ICB = \"Ipv6CidrBlock\";\nvar _ICBA = \"Ipv6CidrBlockAssociation\";\nvar _ICBAS = \"Ipv6CidrBlockAssociationSet\";\nvar _ICBNBG = \"Ipv6CidrBlockNetworkBorderGroup\";\nvar _ICBS = \"Ipv6CidrBlockState\";\nvar _ICBSp = \"Ipv6CidrBlockSet\";\nvar _ICBn = \"InsideCidrBlocks\";\nvar _ICE = \"InstanceConnectEndpoint\";\nvar _ICEA = \"InstanceConnectEndpointArn\";\nvar _ICEI = \"InstanceConnectEndpointId\";\nvar _ICEIn = \"InstanceConnectEndpointIds\";\nvar _ICEn = \"InstanceConnectEndpoints\";\nvar _ICS = \"InstanceCreditSpecifications\";\nvar _ICVCCRL = \"ImportClientVpnClientCertificateRevocationList\";\nvar _ICm = \"ImageCriteria\";\nvar _ICn = \"InstanceCounts\";\nvar _ICp = \"Ipv6Cidr\";\nvar _ID = \"IncludeDeprecated\";\nvar _IDA = \"IpamDiscoveredAccounts\";\nvar _IDPA = \"IpamDiscoveredPublicAddresses\";\nvar _IDRC = \"IpamDiscoveredResourceCidrs\";\nvar _IDm = \"ImageData\";\nvar _IDn = \"IncludeDisabled\";\nvar _IDs = \"IsDefault\";\nvar _IE = \"IsEgress\";\nvar _IED = \"InstanceExportDetails\";\nvar _IEI = \"InstanceEventId\";\nvar _IERVT = \"IpamExternalResourceVerificationToken\";\nvar _IERVTA = \"IpamExternalResourceVerificationTokenArn\";\nvar _IERVTI = \"IpamExternalResourceVerificationTokenId\";\nvar _IERVTIp = \"IpamExternalResourceVerificationTokenIds\";\nvar _IERVTp = \"IpamExternalResourceVerificationTokens\";\nvar _IEW = \"InstanceEventWindow\";\nvar _IEWI = \"InstanceEventWindowId\";\nvar _IEWIn = \"InstanceEventWindowIds\";\nvar _IEWS = \"InstanceEventWindowState\";\nvar _IEWn = \"InstanceEventWindows\";\nvar _IF = \"InstanceFamily\";\nvar _IFCS = \"InstanceFamilyCreditSpecification\";\nvar _IFR = \"IamFleetRole\";\nvar _IFRn = \"IngressFilterRules\";\nvar _IG = \"InstanceGenerations\";\nvar _IGBM = \"InternetGatewayBlockMode\";\nvar _IGEM = \"InternetGatewayExclusionMode\";\nvar _IGI = \"InternetGatewayId\";\nvar _IGIn = \"InternetGatewayIds\";\nvar _IGn = \"InternetGateway\";\nvar _IGnt = \"InternetGateways\";\nvar _IH = \"InstanceHealth\";\nvar _IHn = \"InboundHeader\";\nvar _II = \"ImportImage\";\nvar _IIB = \"InstanceInterruptionBehavior\";\nvar _IIM = \"InstanceImageMetadata\";\nvar _IIP = \"IamInstanceProfile\";\nvar _IIPA = \"IamInstanceProfileAssociation\";\nvar _IIPAa = \"IamInstanceProfileAssociations\";\nvar _IIPI = \"Ipv6IpamPoolId\";\nvar _IIPIp = \"Ipv4IpamPoolId\";\nvar _IIS = \"InstanceIdSet\";\nvar _IISB = \"InstanceInitiatedShutdownBehavior\";\nvar _IIT = \"ImportImageTasks\";\nvar _IIm = \"ImportInstance\";\nvar _IIma = \"ImageId\";\nvar _IImag = \"ImageIds\";\nvar _IIn = \"InstanceId\";\nvar _IIns = \"InstanceIds\";\nvar _IIp = \"IpamId\";\nvar _IIpa = \"IpamIds\";\nvar _IKEV = \"InternetKeyExchangeVersion\";\nvar _IKEVe = \"IKEVersions\";\nvar _IKP = \"ImportKeyPair\";\nvar _IL = \"ImageLocation\";\nvar _ILn = \"InstanceLifecycle\";\nvar _IM = \"IncludeMarketplace\";\nvar _IMC = \"InstanceMatchCriteria\";\nvar _IMO = \"InstanceMarketOptions\";\nvar _IMOn = \"InstanceMetadataOptions\";\nvar _IMT = \"InstanceMetadataTags\";\nvar _IMU = \"ImportManifestUrl\";\nvar _IMm = \"ImageMetadata\";\nvar _IMn = \"InstanceMonitorings\";\nvar _IN = \"Ipv6Native\";\nvar _INL = \"Ipv6NetmaskLength\";\nvar _INLp = \"Ipv4NetmaskLength\";\nvar _IOA = \"ImageOwnerAlias\";\nvar _IOI = \"IpOwnerId\";\nvar _IOIn = \"InstanceOwnerId\";\nvar _IOS = \"InstanceOwningService\";\nvar _IP = \"Ipv6Prefixes\";\nvar _IPA = \"IpamPoolAllocation\";\nvar _IPAI = \"IpamPoolAllocationId\";\nvar _IPAp = \"IpamPoolAllocations\";\nvar _IPApa = \"IpamPoolArn\";\nvar _IPC = \"Ipv6PrefixCount\";\nvar _IPCI = \"IpamPoolCidrId\";\nvar _IPCp = \"Ipv4PrefixCount\";\nvar _IPCpa = \"IpamPoolCidr\";\nvar _IPCpam = \"IpamPoolCidrs\";\nvar _IPE = \"IpPermissionsEgress\";\nvar _IPI = \"IpamPoolId\";\nvar _IPIp = \"IpamPoolIds\";\nvar _IPIs = \"IsPrimaryIpv6\";\nvar _IPK = \"IncludePublicKey\";\nvar _IPO = \"IpamPoolOwner\";\nvar _IPR = \"IsPermanentRestore\";\nvar _IPTUC = \"InstancePoolsToUseCount\";\nvar _IPm = \"ImageProviders\";\nvar _IPn = \"InstancePlatform\";\nvar _IPng = \"IngressPackets\";\nvar _IPns = \"InstancePort\";\nvar _IPnt = \"InterfacePermission\";\nvar _IPnte = \"InterfaceProtocol\";\nvar _IPo = \"IoPerformance\";\nvar _IPp = \"Ipv4Prefixes\";\nvar _IPpa = \"IpamPool\";\nvar _IPpam = \"IpamPools\";\nvar _IPpe = \"IpPermissions\";\nvar _IPpr = \"IpProtocol\";\nvar _IPpre = \"IpPrefixes\";\nvar _IPpv = \"Ipv6Pool\";\nvar _IPpvo = \"Ipv6Pools\";\nvar _IPpvr = \"Ipv4Prefix\";\nvar _IPpvre = \"Ipv6Prefix\";\nvar _IPs = \"IsPublic\";\nvar _IPsr = \"IsPrimary\";\nvar _IR = \"InstanceRequirements\";\nvar _IRC = \"IpamResourceCidrs\";\nvar _IRCp = \"IpamResourceCidr\";\nvar _IRD = \"IpamResourceDiscovery\";\nvar _IRDA = \"IpamResourceDiscoveryAssociation\";\nvar _IRDAA = \"IpamResourceDiscoveryAssociationArn\";\nvar _IRDAI = \"IpamResourceDiscoveryAssociationIds\";\nvar _IRDAIp = \"IpamResourceDiscoveryAssociationId\";\nvar _IRDAp = \"IpamResourceDiscoveryAssociations\";\nvar _IRDApa = \"IpamResourceDiscoveryArn\";\nvar _IRDI = \"IpamResourceDiscoveryId\";\nvar _IRDIp = \"IpamResourceDiscoveryIds\";\nvar _IRDR = \"IpamResourceDiscoveryRegion\";\nvar _IRDp = \"IpamResourceDiscoveries\";\nvar _IRSDA = \"IntegrationResultS3DestinationArn\";\nvar _IRT = \"IngressRouteTable\";\nvar _IRWM = \"InstanceRequirementsWithMetadata\";\nvar _IRp = \"IpRanges\";\nvar _IRpa = \"IpamRegion\";\nvar _IRpv = \"Ipv6Ranges\";\nvar _IS = \"ImportSnapshot\";\nvar _ISA = \"IpamScopeArn\";\nvar _ISI = \"IpamScopeId\";\nvar _ISIn = \"InstanceStorageInfo\";\nvar _ISIp = \"IpamScopeIds\";\nvar _ISL = \"InputStorageLocation\";\nvar _ISS = \"InstanceStorageSupported\";\nvar _IST = \"ImportSnapshotTasks\";\nvar _ISTp = \"IpamScopeType\";\nvar _ISg = \"Igmpv2Support\";\nvar _ISm = \"ImdsSupport\";\nvar _ISmp = \"ImpairedSince\";\nvar _ISn = \"InstanceSpecification\";\nvar _ISns = \"InstanceStatuses\";\nvar _ISnst = \"InstanceState\";\nvar _ISnsta = \"InstanceStatus\";\nvar _ISnt = \"IntegrateServices\";\nvar _ISp = \"Ipv6Support\";\nvar _ISpa = \"IpamScope\";\nvar _ISpam = \"IpamScopes\";\nvar _ISpo = \"IpSource\";\nvar _ISpv = \"Ipv6Supported\";\nvar _IT = \"InstanceType\";\nvar _ITA = \"InstanceTagAttribute\";\nvar _ITC = \"IcmpTypeCode\";\nvar _ITCn = \"IncludeTrustContext\";\nvar _ITI = \"ImportTaskId\";\nvar _ITIm = \"ImportTaskIds\";\nvar _ITK = \"InstanceTagKeys\";\nvar _ITO = \"InstanceTypeOfferings\";\nvar _ITS = \"InstanceTypeSpecifications\";\nvar _ITm = \"ImageType\";\nvar _ITn = \"InterfaceType\";\nvar _ITns = \"InstanceTenancy\";\nvar _ITnst = \"InstanceTypes\";\nvar _ITnsta = \"InstanceTags\";\nvar _IU = \"InstanceUsages\";\nvar _IUp = \"IpUsage\";\nvar _IV = \"ImportVolume\";\nvar _IVE = \"IsValidExchange\";\nvar _IVk = \"IkeVersions\";\nvar _Id = \"Id\";\nvar _Im = \"Image\";\nvar _Ima = \"Images\";\nvar _In = \"Instances\";\nvar _Ins = \"Instance\";\nvar _Int = \"Interval\";\nvar _Io = \"Iops\";\nvar _Ip = \"Ipv4\";\nvar _Ipa = \"Ipam\";\nvar _Ipam = \"Ipams\";\nvar _Ipv = \"Ipv6\";\nvar _K = \"Kernel\";\nvar _KDF = \"KinesisDataFirehose\";\nvar _KF = \"KeyFormat\";\nvar _KFe = \"KeyFingerprint\";\nvar _KI = \"KernelId\";\nvar _KKA = \"KmsKeyArn\";\nvar _KKI = \"KmsKeyId\";\nvar _KM = \"KeyMaterial\";\nvar _KN = \"KeyName\";\nvar _KNe = \"KeyNames\";\nvar _KP = \"KeyPairs\";\nvar _KPI = \"KeyPairId\";\nvar _KPIe = \"KeyPairIds\";\nvar _KT = \"KeyType\";\nvar _KV = \"KeyValue\";\nvar _Ke = \"Key\";\nvar _Key = \"Keyword\";\nvar _L = \"Locale\";\nvar _LA = \"LocalAddress\";\nvar _LADT = \"LastAttemptedDiscoveryTime\";\nvar _LAZ = \"LaunchedAvailabilityZone\";\nvar _LAa = \"LastAddress\";\nvar _LB = \"LoadBalancers\";\nvar _LBA = \"LocalBgpAsn\";\nvar _LBAE = \"LocalBgpAsnExtended\";\nvar _LBAo = \"LoadBalancerArn\";\nvar _LBC = \"LoadBalancersConfig\";\nvar _LBLP = \"LoadBalancerListenerPort\";\nvar _LBO = \"LoadBalancerOptions\";\nvar _LBP = \"LoadBalancerPort\";\nvar _LBT = \"LoadBalancerTarget\";\nvar _LBTG = \"LoadBalancerTargetGroup\";\nvar _LBTGo = \"LoadBalancerTargetGroups\";\nvar _LBTP = \"LoadBalancerTargetPort\";\nvar _LC = \"LoggingConfigurations\";\nvar _LCA = \"LicenseConfigurationArn\";\nvar _LCO = \"LockCreatedOn\";\nvar _LCo = \"LoggingConfiguration\";\nvar _LD = \"LogDestination\";\nvar _LDST = \"LockDurationStartTime\";\nvar _LDT = \"LogDestinationType\";\nvar _LDo = \"LockDuration\";\nvar _LE = \"LogEnabled\";\nvar _LEO = \"LockExpiresOn\";\nvar _LET = \"LastEvaluatedTime\";\nvar _LEa = \"LastError\";\nvar _LF = \"LogFormat\";\nvar _LFA = \"LambdaFunctionArn\";\nvar _LG = \"LaunchGroup\";\nvar _LGA = \"LogGroupArn\";\nvar _LGI = \"LocalGatewayId\";\nvar _LGIo = \"LocalGatewayIds\";\nvar _LGN = \"LogGroupName\";\nvar _LGRT = \"LocalGatewayRouteTable\";\nvar _LGRTA = \"LocalGatewayRouteTableArn\";\nvar _LGRTI = \"LocalGatewayRouteTableId\";\nvar _LGRTIo = \"LocalGatewayRouteTableIds\";\nvar _LGRTVA = \"LocalGatewayRouteTableVpcAssociation\";\nvar _LGRTVAI = \"LocalGatewayRouteTableVpcAssociationId\";\nvar _LGRTVAIo = \"LocalGatewayRouteTableVpcAssociationIds\";\nvar _LGRTVAo = \"LocalGatewayRouteTableVpcAssociations\";\nvar _LGRTVIGA = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _LGRTVIGAI = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociationId\";\nvar _LGRTVIGAIo = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds\";\nvar _LGRTVIGAo = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociations\";\nvar _LGRTo = \"LocalGatewayRouteTables\";\nvar _LGVI = \"LocalGatewayVirtualInterface\";\nvar _LGVIA = \"LocalGatewayVirtualInterfaceArn\";\nvar _LGVIG = \"LocalGatewayVirtualInterfaceGroup\";\nvar _LGVIGA = \"LocalGatewayVirtualInterfaceGroupArn\";\nvar _LGVIGI = \"LocalGatewayVirtualInterfaceGroupId\";\nvar _LGVIGIo = \"LocalGatewayVirtualInterfaceGroupIds\";\nvar _LGVIGo = \"LocalGatewayVirtualInterfaceGroups\";\nvar _LGVII = \"LocalGatewayVirtualInterfaceId\";\nvar _LGVIIo = \"LocalGatewayVirtualInterfaceIds\";\nvar _LGVIo = \"LocalGatewayVirtualInterfaces\";\nvar _LGo = \"LogGroup\";\nvar _LGoc = \"LocalGateways\";\nvar _LIIRB = \"ListImagesInRecycleBin\";\nvar _LINC = \"LocalIpv4NetworkCidr\";\nvar _LINCo = \"LocalIpv6NetworkCidr\";\nvar _LLT = \"LastLaunchedTime\";\nvar _LM = \"LockMode\";\nvar _LMA = \"LastMaintenanceApplied\";\nvar _LO = \"LogOptions\";\nvar _LOF = \"LogOutputFormat\";\nvar _LP = \"LoadPermission\";\nvar _LPa = \"LaunchPermission\";\nvar _LPau = \"LaunchPermissions\";\nvar _LPi = \"LimitPrice\";\nvar _LPo = \"LoadPermissions\";\nvar _LS = \"LockSnapshot\";\nvar _LSC = \"LastStatusChange\";\nvar _LSDT = \"LastSuccessfulDiscoveryTime\";\nvar _LSIRB = \"ListSnapshotsInRecycleBin\";\nvar _LSL = \"LogsStorageLocation\";\nvar _LST = \"LocalStorageTypes\";\nvar _LSa = \"LaunchSpecification\";\nvar _LSau = \"LaunchSpecifications\";\nvar _LSi = \"LicenseSpecifications\";\nvar _LSo = \"LocalStorage\";\nvar _LSoc = \"LockState\";\nvar _LT = \"LocationType\";\nvar _LTAO = \"LaunchTemplateAndOverrides\";\nvar _LTC = \"LaunchTemplateConfigs\";\nvar _LTD = \"LaunchTemplateData\";\nvar _LTI = \"LaunchTemplateId\";\nvar _LTIa = \"LaunchTemplateIds\";\nvar _LTN = \"LaunchTemplateName\";\nvar _LTNa = \"LaunchTemplateNames\";\nvar _LTOS = \"LastTieringOperationStatus\";\nvar _LTOSD = \"LastTieringOperationStatusDetail\";\nvar _LTP = \"LastTieringProgress\";\nvar _LTS = \"LaunchTemplateSpecification\";\nvar _LTST = \"LastTieringStartTime\";\nvar _LTV = \"LaunchTemplateVersion\";\nvar _LTVa = \"LaunchTemplateVersions\";\nvar _LTa = \"LaunchTemplate\";\nvar _LTat = \"LatestTime\";\nvar _LTau = \"LaunchTemplates\";\nvar _LTaun = \"LaunchTime\";\nvar _LTi = \"LicenseType\";\nvar _LTo = \"LocalTarget\";\nvar _LUT = \"LastUpdateTime\";\nvar _LUTa = \"LastUpdatedTime\";\nvar _LUTas = \"LastUpdateTimestamp\";\nvar _LV = \"LogVersion\";\nvar _LVN = \"LatestVersionNumber\";\nvar _La = \"Latest\";\nvar _Li = \"Lifecycle\";\nvar _Lic = \"Licenses\";\nvar _Lo = \"Location\";\nvar _M = \"Min\";\nvar _MA = \"MutualAuthentication\";\nvar _MAA = \"ModifyAddressAttribute\";\nvar _MAAA = \"MaintenanceAutoAppliedAfter\";\nvar _MAE = \"MultiAttachEnabled\";\nvar _MAI = \"MaxAggregationInterval\";\nvar _MAIe = \"MediaAcceleratorInfo\";\nvar _MAS = \"MovingAddressStatuses\";\nvar _MATV = \"MoveAddressToVpc\";\nvar _MAZG = \"ModifyAvailabilityZoneGroup\";\nvar _MAa = \"MacAddress\";\nvar _MAe = \"MeteredAccount\";\nvar _MB = \"ManagedBy\";\nvar _MBCTI = \"MoveByoipCidrToIpam\";\nvar _MBIM = \"MaximumBandwidthInMbps\";\nvar _MC = \"MaxCount\";\nvar _MCOIOL = \"MapCustomerOwnedIpOnLaunch\";\nvar _MCR = \"ModifyCapacityReservation\";\nvar _MCRF = \"ModifyCapacityReservationFleet\";\nvar _MCRI = \"MoveCapacityReservationInstances\";\nvar _MCVE = \"ModifyClientVpnEndpoint\";\nvar _MCi = \"MinCount\";\nvar _MCis = \"MissingComponent\";\nvar _MD = \"MaxDuration\";\nvar _MDA = \"MulticastDomainAssociations\";\nvar _MDCS = \"ModifyDefaultCreditSpecification\";\nvar _MDDS = \"MaxDrainDurationSeconds\";\nvar _MDK = \"MetaDataKey\";\nvar _MDV = \"MetaDataValue\";\nvar _MDa = \"MaintenanceDetails\";\nvar _MDe = \"MetaData\";\nvar _MDi = \"MinDuration\";\nvar _ME = \"MaxEntries\";\nvar _MEDKKI = \"ModifyEbsDefaultKmsKeyId\";\nvar _MEI = \"MaximumEfaInterfaces\";\nvar _MEM = \"ManagedExceptionMessage\";\nvar _MEQC = \"MaximumEnaQueueCount\";\nvar _MEQCPI = \"MaximumEnaQueueCountPerInterface\";\nvar _MF = \"ModifyFleet\";\nvar _MFIA = \"ModifyFpgaImageAttribute\";\nvar _MFV = \"MostFrequentValue\";\nvar _MG = \"MulticastGroups\";\nvar _MGBPVC = \"MemoryGiBPerVCpu\";\nvar _MH = \"ModifyHosts\";\nvar _MHa = \"MacHosts\";\nvar _MI = \"ModifyIpam\";\nvar _MIA = \"ModifyImageAttribute\";\nvar _MIAo = \"ModifyInstanceAttribute\";\nvar _MIC = \"MaxInstanceCount\";\nvar _MICO = \"ModifyInstanceCpuOptions\";\nvar _MICRA = \"ModifyInstanceCapacityReservationAttributes\";\nvar _MICS = \"ModifyInstanceCreditSpecification\";\nvar _MIEST = \"ModifyInstanceEventStartTime\";\nvar _MIEW = \"ModifyInstanceEventWindow\";\nvar _MIF = \"ModifyIdFormat\";\nvar _MIIF = \"ModifyIdentityIdFormat\";\nvar _MIMD = \"ModifyInstanceMetadataDefaults\";\nvar _MIMO = \"ModifyInstanceMaintenanceOptions\";\nvar _MIMOo = \"ModifyInstanceMetadataOptions\";\nvar _MINPO = \"ModifyInstanceNetworkPerformanceOptions\";\nvar _MIP = \"ModifyInstancePlacement\";\nvar _MIPo = \"ModifyIpamPool\";\nvar _MIRC = \"ModifyIpamResourceCidr\";\nvar _MIRD = \"ModifyIpamResourceDiscovery\";\nvar _MIS = \"ModifyIpamScope\";\nvar _MIa = \"MaximumIops\";\nvar _MIe = \"MemoryInfo\";\nvar _MIo = \"MonitorInstances\";\nvar _MLGR = \"ModifyLocalGatewayRoute\";\nvar _MLT = \"ModifyLaunchTemplate\";\nvar _MMB = \"MemoryMiB\";\nvar _MMPL = \"ModifyManagedPrefixList\";\nvar _MNC = \"MaximumNetworkCards\";\nvar _MNI = \"MaximumNetworkInterfaces\";\nvar _MNIA = \"ModifyNetworkInterfaceAttribute\";\nvar _MO = \"MetadataOptions\";\nvar _MOSLRG = \"MemberOfServiceLinkedResourceGroup\";\nvar _MOSLSV = \"MacOSLatestSupportedVersions\";\nvar _MOa = \"MaintenanceOptions\";\nvar _MP = \"MatchPaths\";\nvar _MPDNO = \"ModifyPrivateDnsNameOptions\";\nvar _MPIOL = \"MapPublicIpOnLaunch\";\nvar _MPL = \"MaxParallelLaunches\";\nvar _MPa = \"MaxPrice\";\nvar _MPe = \"MetricPoints\";\nvar _MR = \"MaxResults\";\nvar _MRI = \"ModifyReservedInstances\";\nvar _MRS = \"ModifyRouteServer\";\nvar _MRo = \"ModificationResults\";\nvar _MRu = \"MultiRegion\";\nvar _MS = \"MaintenanceStrategies\";\nvar _MSA = \"ModifySnapshotAttribute\";\nvar _MSAo = \"ModifySubnetAttribute\";\nvar _MSDIH = \"MaxSlotDurationInHours\";\nvar _MSDIHi = \"MinSlotDurationInHours\";\nvar _MSFR = \"ModifySpotFleetRequest\";\nvar _MSGR = \"ModifySecurityGroupRules\";\nvar _MSPAPOOODP = \"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice\";\nvar _MST = \"ModifySnapshotTier\";\nvar _MSa = \"ManagementState\";\nvar _MSo = \"MoveStatus\";\nvar _MSod = \"ModificationState\";\nvar _MSu = \"MulticastSupport\";\nvar _MT = \"MarketType\";\nvar _MTC = \"MinTargetCapacity\";\nvar _MTDID = \"MaxTermDurationInDays\";\nvar _MTDIDi = \"MinTermDurationInDays\";\nvar _MTG = \"ModifyTransitGateway\";\nvar _MTGPLR = \"ModifyTransitGatewayPrefixListReference\";\nvar _MTGVA = \"ModifyTransitGatewayVpcAttachment\";\nvar _MTIMB = \"MaximumThroughputInMBps\";\nvar _MTMFNS = \"ModifyTrafficMirrorFilterNetworkServices\";\nvar _MTMFR = \"ModifyTrafficMirrorFilterRule\";\nvar _MTMS = \"ModifyTrafficMirrorSession\";\nvar _MTP = \"MaxTotalPrice\";\nvar _MTe = \"MemberType\";\nvar _MV = \"ModifyVolume\";\nvar _MVA = \"ModifyVolumeAttribute\";\nvar _MVAE = \"ModifyVerifiedAccessEndpoint\";\nvar _MVAEP = \"ModifyVerifiedAccessEndpointPolicy\";\nvar _MVAG = \"ModifyVerifiedAccessGroup\";\nvar _MVAGP = \"ModifyVerifiedAccessGroupPolicy\";\nvar _MVAI = \"ModifyVerifiedAccessInstance\";\nvar _MVAILC = \"ModifyVerifiedAccessInstanceLoggingConfiguration\";\nvar _MVATP = \"ModifyVerifiedAccessTrustProvider\";\nvar _MVAo = \"ModifyVpcAttribute\";\nvar _MVBPAE = \"ModifyVpcBlockPublicAccessExclusion\";\nvar _MVBPAO = \"ModifyVpcBlockPublicAccessOptions\";\nvar _MVC = \"ModifyVpnConnection\";\nvar _MVCO = \"ModifyVpnConnectionOptions\";\nvar _MVE = \"ModifyVpcEndpoint\";\nvar _MVECN = \"ModifyVpcEndpointConnectionNotification\";\nvar _MVESC = \"ModifyVpcEndpointServiceConfiguration\";\nvar _MVESP = \"ModifyVpcEndpointServicePermissions\";\nvar _MVESPR = \"ModifyVpcEndpointServicePayerResponsibility\";\nvar _MVEa = \"ManagesVpcEndpoints\";\nvar _MVPCO = \"ModifyVpcPeeringConnectionOptions\";\nvar _MVT = \"ModifyVpcTenancy\";\nvar _MVTC = \"ModifyVpnTunnelCertificate\";\nvar _MVTO = \"ModifyVpnTunnelOptions\";\nvar _MVa = \"MaxVersion\";\nvar _MVi = \"MinVersion\";\nvar _Ma = \"Max\";\nvar _Mai = \"Main\";\nvar _Man = \"Manufacturer\";\nvar _Mana = \"Managed\";\nvar _Mar = \"Marketplace\";\nvar _Me = \"Message\";\nvar _Med = \"Med\";\nvar _Mes = \"Messages\";\nvar _Met = \"Metric\";\nvar _Mo = \"Mode\";\nvar _Mon = \"Monitoring\";\nvar _Moni = \"Monitored\";\nvar _N = \"Name\";\nvar _NA = \"NetworkAcl\";\nvar _NAAI = \"NetworkAclAssociationId\";\nvar _NAI = \"NetworkAclId\";\nvar _NAIe = \"NetworkAclIds\";\nvar _NAIew = \"NewAssociationId\";\nvar _NAOO = \"NativeApplicationOidcOptions\";\nvar _NAe = \"NetworkAcls\";\nvar _NAo = \"NotAfter\";\nvar _NB = \"NotBefore\";\nvar _NBD = \"NotBeforeDeadline\";\nvar _NBG = \"NetworkBorderGroup\";\nvar _NBGe = \"NetworkBandwidthGbps\";\nvar _NC = \"NetworkCards\";\nvar _NCI = \"NetworkCardIndex\";\nvar _ND = \"NoDevice\";\nvar _NDe = \"NeuronDevices\";\nvar _NES = \"NitroEnclavesSupport\";\nvar _NG = \"NatGateway\";\nvar _NGA = \"NatGatewayAddresses\";\nvar _NGI = \"NatGatewayId\";\nvar _NGIa = \"NatGatewayIds\";\nvar _NGa = \"NatGateways\";\nvar _NHI = \"NextHopIp\";\nvar _NI = \"NetworkInterfaces\";\nvar _NIA = \"NetworkInsightsAnalyses\";\nvar _NIAA = \"NetworkInsightsAnalysisArn\";\nvar _NIAI = \"NetworkInsightsAnalysisId\";\nvar _NIAIe = \"NetworkInsightsAnalysisIds\";\nvar _NIAS = \"NetworkInsightsAccessScope\";\nvar _NIASA = \"NetworkInsightsAccessScopeAnalyses\";\nvar _NIASAA = \"NetworkInsightsAccessScopeAnalysisArn\";\nvar _NIASAI = \"NetworkInsightsAccessScopeAnalysisId\";\nvar _NIASAIe = \"NetworkInsightsAccessScopeAnalysisIds\";\nvar _NIASAe = \"NetworkInsightsAccessScopeArn\";\nvar _NIASAet = \"NetworkInsightsAccessScopeAnalysis\";\nvar _NIASC = \"NetworkInsightsAccessScopeContent\";\nvar _NIASI = \"NetworkInsightsAccessScopeId\";\nvar _NIASIe = \"NetworkInsightsAccessScopeIds\";\nvar _NIASe = \"NetworkInsightsAccessScopes\";\nvar _NIASet = \"NetworkInterfaceAttachmentStatus\";\nvar _NIAe = \"NetworkInsightsAnalysis\";\nvar _NIC = \"NetworkInterfaceCount\";\nvar _NID = \"NetworkInterfaceDescription\";\nvar _NII = \"NetworkInterfaceId\";\nvar _NIIe = \"NetworkInterfaceIds\";\nvar _NIO = \"NetworkInterfaceOptions\";\nvar _NIOI = \"NetworkInterfaceOwnerId\";\nvar _NIP = \"NetworkInsightsPath\";\nvar _NIPA = \"NetworkInsightsPathArn\";\nvar _NIPI = \"NetworkInsightsPathId\";\nvar _NIPIe = \"NetworkInterfacePermissionId\";\nvar _NIPIet = \"NetworkInsightsPathIds\";\nvar _NIPIetw = \"NetworkInterfacePermissionIds\";\nvar _NIPe = \"NetworkInsightsPaths\";\nvar _NIPet = \"NetworkInterfacePermissions\";\nvar _NIe = \"NetworkId\";\nvar _NIet = \"NetworkInterface\";\nvar _NIetw = \"NetworkInfo\";\nvar _NIeu = \"NeuronInfo\";\nvar _NL = \"NetmaskLength\";\nvar _NLBA = \"NetworkLoadBalancerArn\";\nvar _NLBAe = \"NetworkLoadBalancerArns\";\nvar _NN = \"NetworkNodes\";\nvar _NOA = \"NumberOfAccounts\";\nvar _NOFA = \"NumberOfFailedAccounts\";\nvar _NOMA = \"NumberOfMatchedAccounts\";\nvar _NOUA = \"NumberOfUnmatchedAccounts\";\nvar _NP = \"NetworkPerformance\";\nvar _NPF = \"NetworkPathFound\";\nvar _NPO = \"NetworkPerformanceOptions\";\nvar _NPe = \"NetworkPlatform\";\nvar _NR = \"NoReboot\";\nvar _NS = \"NvmeSupport\";\nvar _NSST = \"NextSlotStartTime\";\nvar _NSe = \"NetworkServices\";\nvar _NT = \"NextToken\";\nvar _NTI = \"NitroTpmInfo\";\nvar _NTS = \"NitroTpmSupport\";\nvar _NTe = \"NetworkType\";\nvar _Na = \"Nameservers\";\nvar _O = \"Operator\";\nvar _OA = \"OutpostArn\";\nvar _OAr = \"OrganizationArn\";\nvar _OArg = \"OrganizationArns\";\nvar _OAw = \"OwnerAlias\";\nvar _OC = \"OfferingClass\";\nvar _OD = \"OccurrenceDays\";\nvar _ODAS = \"OnDemandAllocationStrategy\";\nvar _ODFC = \"OnDemandFulfilledCapacity\";\nvar _ODMPPOLP = \"OnDemandMaxPricePercentageOverLowestPrice\";\nvar _ODMTP = \"OnDemandMaxTotalPrice\";\nvar _ODO = \"OnDemandOptions\";\nvar _ODS = \"OccurrenceDaySet\";\nvar _ODTC = \"OnDemandTargetCapacity\";\nvar _OEP = \"OrganizationsEntityPath\";\nvar _OH = \"OutboundHeader\";\nvar _OI = \"OfferingId\";\nvar _OIA = \"OutsideIpAddress\";\nvar _OIAT = \"OutsideIpAddressType\";\nvar _OIS = \"OptInStatus\";\nvar _OIr = \"OriginalIops\";\nvar _OIu = \"OutpostId\";\nvar _OIw = \"OwnerIds\";\nvar _OIwn = \"OwnerId\";\nvar _OK = \"ObjectKey\";\nvar _OL = \"OutpostLags\";\nvar _OLI = \"OutpostLagId\";\nvar _OLIu = \"OutpostLagIds\";\nvar _OMAE = \"OriginalMultiAttachEnabled\";\nvar _OO = \"OidcOptions\";\nvar _OR = \"OperatingRegions\";\nvar _ORIWEA = \"OutputReservedInstancesWillExpireAt\";\nvar _ORTE = \"OccurrenceRelativeToEnd\";\nvar _OS = \"OfferingSet\";\nvar _OST = \"OldestSampleTime\";\nvar _OSr = \"OriginalSize\";\nvar _OSv = \"OverlapStatus\";\nvar _OT = \"OfferingType\";\nvar _OTp = \"OperationType\";\nvar _OTpt = \"OptimizingTime\";\nvar _OTr = \"OriginalThroughput\";\nvar _OU = \"OccurrenceUnit\";\nvar _OUA = \"OrganizationalUnitArn\";\nvar _OUAr = \"OrganizationalUnitArns\";\nvar _OUE = \"OrganizationalUnitExclusions\";\nvar _OUI = \"OrganizationalUnitId\";\nvar _OVC = \"OpenVpnConfigurations\";\nvar _OVT = \"OriginalVolumeType\";\nvar _Op = \"Options\";\nvar _Or = \"Origin\";\nvar _Ou = \"Output\";\nvar _Ov = \"Overrides\";\nvar _Ow = \"Owners\";\nvar _Own = \"Owner\";\nvar _P = \"Protocol\";\nvar _PA = \"PubliclyAdvertisable\";\nvar _PAI = \"PeerAccountId\";\nvar _PAIe = \"PeeringAttachmentId\";\nvar _PAR = \"PoolAddressRange\";\nvar _PARo = \"PoolAddressRanges\";\nvar _PAe = \"PeerAddress\";\nvar _PAee = \"PeerAsn\";\nvar _PAo = \"PoolArn\";\nvar _PAr = \"PrincipalArn\";\nvar _PB = \"ProvisionedBandwidth\";\nvar _PBA = \"PeerBgpAsn\";\nvar _PBAE = \"PeerBgpAsnExtended\";\nvar _PBC = \"ProvisionByoipCidr\";\nvar _PBIG = \"PeakBandwidthInGbps\";\nvar _PC = \"ProductCode\";\nvar _PCB = \"PurchaseCapacityBlock\";\nvar _PCBE = \"PurchaseCapacityBlockExtension\";\nvar _PCBo = \"PoolCidrBlocks\";\nvar _PCI = \"PreserveClientIp\";\nvar _PCIr = \"ProductCodeId\";\nvar _PCNI = \"PeerCoreNetworkId\";\nvar _PCS = \"PostureComplianceStatuses\";\nvar _PCT = \"ProductCodeType\";\nvar _PCa = \"PartitionCount\";\nvar _PCo = \"PoolCidrs\";\nvar _PCoo = \"PoolCount\";\nvar _PCr = \"ProductCodes\";\nvar _PD = \"PolicyDocument\";\nvar _PDE = \"PrivateDnsEnabled\";\nvar _PDEr = \"PrivateDnsEntry\";\nvar _PDHGN = \"Phase1DHGroupNumbers\";\nvar _PDHGNh = \"Phase2DHGroupNumbers\";\nvar _PDHT = \"PrivateDnsHostnameType\";\nvar _PDHTOL = \"PrivateDnsHostnameTypeOnLaunch\";\nvar _PDN = \"PrivateDnsName\";\nvar _PDNC = \"PrivateDnsNameConfiguration\";\nvar _PDNO = \"PrivateDnsNameOptions\";\nvar _PDNOOL = \"PrivateDnsNameOptionsOnLaunch\";\nvar _PDNVS = \"PrivateDnsNameVerificationState\";\nvar _PDNr = \"PrivateDnsNames\";\nvar _PDNu = \"PublicDnsName\";\nvar _PDOFIRE = \"PrivateDnsOnlyForInboundResolverEndpoint\";\nvar _PDRTI = \"PropagationDefaultRouteTableId\";\nvar _PDSI = \"PublicDefaultScopeId\";\nvar _PDSIr = \"PrivateDefaultScopeId\";\nvar _PDa = \"PasswordData\";\nvar _PDay = \"PaymentDue\";\nvar _PDl = \"PlatformDetails\";\nvar _PDo = \"PoolDepth\";\nvar _PDr = \"ProductDescription\";\nvar _PDri = \"PricingDetails\";\nvar _PDro = \"ProductDescriptions\";\nvar _PE = \"PolicyEnabled\";\nvar _PEA = \"Phase1EncryptionAlgorithms\";\nvar _PEAh = \"Phase2EncryptionAlgorithms\";\nvar _PED = \"PartitionEndDate\";\nvar _PEk = \"PkceEnabled\";\nvar _PF = \"PacketField\";\nvar _PFS = \"PreviousFleetState\";\nvar _PG = \"PlacementGroup\";\nvar _PGA = \"PlacementGroupArn\";\nvar _PGI = \"PlacementGroupInfo\";\nvar _PGl = \"PlacementGroups\";\nvar _PHP = \"PerHourPartition\";\nvar _PHR = \"PurchaseHostReservation\";\nvar _PHS = \"PacketHeaderStatement\";\nvar _PI = \"PublicIp\";\nvar _PIA = \"PrivateIpAddresses\";\nvar _PIAC = \"PrivateIpAddressCount\";\nvar _PIACr = \"PrivateIpAddressConfigs\";\nvar _PIAh = \"Phase1IntegrityAlgorithms\";\nvar _PIAha = \"Phase2IntegrityAlgorithms\";\nvar _PIAr = \"PrivateIpAddress\";\nvar _PIAu = \"PublicIpAddress\";\nvar _PIB = \"ProvisionIpamByoasn\";\nvar _PIP = \"PublicIpv4Pool\";\nvar _PIPC = \"ProvisionIpamPoolCidr\";\nvar _PIPI = \"PublicIpv4PoolId\";\nvar _PIPu = \"PublicIpv4Pools\";\nvar _PIS = \"PublicIpSource\";\nvar _PIc = \"PciId\";\nvar _PIo = \"PoolId\";\nvar _PIoo = \"PoolIds\";\nvar _PIr = \"PrimaryIpv6\";\nvar _PIri = \"PrivateIp\";\nvar _PIro = \"ProcessorInfo\";\nvar _PIu = \"PublicIps\";\nvar _PK = \"PublicKey\";\nvar _PKM = \"PublicKeyMaterial\";\nvar _PL = \"PacketLength\";\nvar _PLA = \"PrefixListAssociations\";\nvar _PLAr = \"PrefixListArn\";\nvar _PLD = \"PeerLivenessDetection\";\nvar _PLF = \"PartitionLoadFrequency\";\nvar _PLI = \"PrefixListId\";\nvar _PLIr = \"PrefixListIds\";\nvar _PLN = \"PrefixListName\";\nvar _PLOI = \"PrefixListOwnerId\";\nvar _PLS = \"Phase1LifetimeSeconds\";\nvar _PLSh = \"Phase2LifetimeSeconds\";\nvar _PLr = \"PrefixList\";\nvar _PLre = \"PrefixLists\";\nvar _PM = \"PendingMaintenance\";\nvar _PN = \"PartitionNumber\";\nvar _PNC = \"PreviewNextCidr\";\nvar _PO = \"PaymentOption\";\nvar _POI = \"PeerOwnerId\";\nvar _POe = \"PeeringOptions\";\nvar _PP = \"ProgressPercentage\";\nvar _PPIPC = \"ProvisionPublicIpv4PoolCidr\";\nvar _PR = \"PortRange\";\nvar _PRD = \"PersistRoutesDuration\";\nvar _PRIO = \"PurchaseReservedInstancesOffering\";\nvar _PRN = \"PolicyReferenceName\";\nvar _PRNo = \"PolicyRuleNumber\";\nvar _PRS = \"PersistRoutesState\";\nvar _PRU = \"PtrRecordUpdate\";\nvar _PRa = \"PayerResponsibility\";\nvar _PRe = \"PersistRoutes\";\nvar _PRee = \"PeerRegion\";\nvar _PRer = \"PermanentRestore\";\nvar _PRo = \"PortRanges\";\nvar _PRol = \"PolicyRule\";\nvar _PRt = \"PtrRecord\";\nvar _PRu = \"PurchaseRequests\";\nvar _PS = \"PriceSchedules\";\nvar _PSD = \"PartitionStartDate\";\nvar _PSET = \"PreviousSlotEndTime\";\nvar _PSFRS = \"PreviousSpotFleetRequestState\";\nvar _PSI = \"PurchaseScheduledInstances\";\nvar _PSK = \"PreSharedKey\";\nvar _PSKE = \"PublicSigningKeyEndpoint\";\nvar _PSKU = \"PublicSigningKeyUrl\";\nvar _PSe = \"PeeringStatus\";\nvar _PSer = \"PermissionState\";\nvar _PSh = \"PhcSupport\";\nvar _PSr = \"PreviousState\";\nvar _PSre = \"PreviousStatus\";\nvar _PT = \"PurchaseToken\";\nvar _PTGI = \"PeerTransitGatewayId\";\nvar _PTS = \"PoolTagSpecifications\";\nvar _PTr = \"PrincipalType\";\nvar _PTro = \"ProvisionTime\";\nvar _PTu = \"PurchaseTime\";\nvar _PU = \"PresignedUrl\";\nvar _PV = \"PreviousVersion\";\nvar _PVI = \"PeerVpcId\";\nvar _PVIr = \"PrimaryVpcId\";\nvar _PVr = \"PropagatingVgws\";\nvar _PZI = \"ParentZoneId\";\nvar _PZN = \"ParentZoneName\";\nvar _Pe = \"Permission\";\nvar _Per = \"Period\";\nvar _Pl = \"Placement\";\nvar _Pla = \"Platform\";\nvar _Po = \"Port\";\nvar _Pr = \"Prefix\";\nvar _Pri = \"Priority\";\nvar _Pric = \"Price\";\nvar _Prim = \"Primary\";\nvar _Prin = \"Principal\";\nvar _Princ = \"Principals\";\nvar _Pro = \"Protocols\";\nvar _Prog = \"Progress\";\nvar _Prop = \"Propagation\";\nvar _Prov = \"Provisioned\";\nvar _Pu = \"Public\";\nvar _Pur = \"Purchase\";\nvar _Q = \"Quantity\";\nvar _R = \"References\";\nvar _RA = \"ReleaseAddress\";\nvar _RAA = \"ResetAddressAttribute\";\nvar _RAE = \"RemoteAccessEnabled\";\nvar _RAG = \"RevokeAllGroups\";\nvar _RAP = \"RemoveAllowedPrincipals\";\nvar _RART = \"RemoveAllocationResourceTags\";\nvar _RATC = \"RestoreAddressToClassic\";\nvar _RAe = \"ResolveAlias\";\nvar _RAes = \"ResourceArn\";\nvar _RAo = \"RoleArn\";\nvar _RAu = \"RuleAction\";\nvar _RB = \"RequestedBy\";\nvar _RBET = \"RecycleBinEnterTime\";\nvar _RBETe = \"RecycleBinExitTime\";\nvar _RBUI = \"RestorableByUserIds\";\nvar _RC = \"ResourceCidr\";\nvar _RCA = \"ResourceConfigurationArn\";\nvar _RCGA = \"ResourceConfigurationGroupArn\";\nvar _RCRBO = \"RejectCapacityReservationBillingOwnership\";\nvar _RCS = \"ResourceComplianceStatus\";\nvar _RCVI = \"RevokeClientVpnIngress\";\nvar _RCe = \"ReasonCodes\";\nvar _RCec = \"RecurringCharges\";\nvar _RCet = \"ReturnCode\";\nvar _RD = \"RestoreDuration\";\nvar _RDAC = \"ResourceDiscoveryAssociationCount\";\nvar _RDCA = \"RdsDbClusterArn\";\nvar _RDI = \"RamDiskId\";\nvar _RDIA = \"RdsDbInstanceArn\";\nvar _RDN = \"RootDeviceName\";\nvar _RDPA = \"RdsDbProxyArn\";\nvar _RDS = \"ResourceDiscoveryStatus\";\nvar _RDT = \"RootDeviceType\";\nvar _RE = \"RdsEndpoint\";\nvar _RED = \"RemoveEndDate\";\nvar _REDKKI = \"ResetEbsDefaultKmsKeyId\";\nvar _RET = \"RestoreExpiryTime\";\nvar _REe = \"RemoveEntries\";\nvar _REes = \"ResponseError\";\nvar _REeso = \"ResourceExclusions\";\nvar _RF = \"RemoveFields\";\nvar _RFIA = \"ResetFpgaImageAttribute\";\nvar _RFP = \"RekeyFuzzPercentage\";\nvar _RGA = \"RuleGroupArn\";\nvar _RGI = \"ReferencedGroupId\";\nvar _RGIe = \"ReferencedGroupInfo\";\nvar _RGLBA = \"RemoveGatewayLoadBalancerArns\";\nvar _RGROP = \"RuleGroupRuleOptionsPairs\";\nvar _RGT = \"RuleGroupType\";\nvar _RGTP = \"RuleGroupTypePairs\";\nvar _RH = \"ReleaseHosts\";\nvar _RHS = \"RequireHibernateSupport\";\nvar _RI = \"RebootInstances\";\nvar _RIA = \"ResetImageAttribute\";\nvar _RIAe = \"ResetInstanceAttribute\";\nvar _RICIAIS = \"ReplaceImageCriteriaInAllowedImagesSettings\";\nvar _RID = \"RouteInstallationDetails\";\nvar _RIENA = \"RegisterInstanceEventNotificationAttributes\";\nvar _RIFRB = \"RestoreImageFromRecycleBin\";\nvar _RII = \"ReservedInstanceIds\";\nvar _RIIPA = \"ReplaceIamInstanceProfileAssociation\";\nvar _RIIe = \"ReservedInstancesId\";\nvar _RIIes = \"ReservedInstancesIds\";\nvar _RIIese = \"ReservedInstanceId\";\nvar _RIL = \"ReservedInstancesListings\";\nvar _RILI = \"ReservedInstancesListingId\";\nvar _RIM = \"ReservedInstancesModifications\";\nvar _RIMI = \"ReservedInstancesModificationIds\";\nvar _RIMIe = \"ReservedInstancesModificationId\";\nvar _RINC = \"RemoteIpv4NetworkCidr\";\nvar _RINCe = \"RemoteIpv6NetworkCidr\";\nvar _RIO = \"ReservedInstancesOfferings\";\nvar _RIOI = \"ReservedInstancesOfferingIds\";\nvar _RIOIe = \"ReservedInstancesOfferingId\";\nvar _RIPA = \"ReleaseIpamPoolAllocation\";\nvar _RIS = \"ReportInstanceStatus\";\nvar _RISR = \"RouteInstallationStatusReason\";\nvar _RISo = \"RouteInstallationStatus\";\nvar _RIVR = \"ReservedInstanceValueRollup\";\nvar _RIVS = \"ReservedInstanceValueSet\";\nvar _RIa = \"RamdiskId\";\nvar _RIe = \"RegisterImage\";\nvar _RIep = \"ReportId\";\nvar _RIepo = \"ReportIds\";\nvar _RIeq = \"RequesterId\";\nvar _RIes = \"ResourceIds\";\nvar _RIese = \"ReservedInstances\";\nvar _RIeser = \"ReservationId\";\nvar _RIeso = \"ResourceId\";\nvar _RIu = \"RunInstances\";\nvar _RM = \"ReasonMessage\";\nvar _RMGM = \"RegisteredMulticastGroupMembers\";\nvar _RMGS = \"RegisteredMulticastGroupSources\";\nvar _RMPLV = \"RestoreManagedPrefixListVersion\";\nvar _RMTS = \"RekeyMarginTimeSeconds\";\nvar _RMe = \"RequesterManaged\";\nvar _RN = \"RegionName\";\nvar _RNAA = \"ReplaceNetworkAclAssociation\";\nvar _RNAE = \"ReplaceNetworkAclEntry\";\nvar _RNIA = \"ResetNetworkInterfaceAttribute\";\nvar _RNII = \"RegisteredNetworkInterfaceIds\";\nvar _RNLBA = \"RemoveNetworkLoadBalancerArns\";\nvar _RNS = \"RemoveNetworkServices\";\nvar _RNe = \"RegionNames\";\nvar _RNes = \"ResourceName\";\nvar _RNo = \"RoleName\";\nvar _RNu = \"RuleNumber\";\nvar _RO = \"RdsOptions\";\nvar _ROI = \"ResourceOwnerId\";\nvar _ROR = \"RemoveOperatingRegions\";\nvar _ROS = \"ResourceOverlapStatus\";\nvar _ROUE = \"RemoveOrganizationalUnitExclusions\";\nvar _ROe = \"ResourceOwner\";\nvar _ROo = \"RouteOrigin\";\nvar _ROu = \"RuleOptions\";\nvar _RP = \"ResetPolicy\";\nvar _RPC = \"ReturnPathComponents\";\nvar _RPCO = \"RequesterPeeringConnectionOptions\";\nvar _RPDN = \"RemovePrivateDnsName\";\nvar _RR = \"ReplaceRoute\";\nvar _RRTA = \"ReplaceRouteTableAssociation\";\nvar _RRTI = \"RemoveRouteTableIds\";\nvar _RRVT = \"ReplaceRootVolumeTask\";\nvar _RRVTI = \"ReplaceRootVolumeTaskIds\";\nvar _RRVTIe = \"ReplaceRootVolumeTaskId\";\nvar _RRVTe = \"ReplaceRootVolumeTasks\";\nvar _RRe = \"ResourceRegion\";\nvar _RS = \"ReplacementStrategy\";\nvar _RSA = \"ResetSnapshotAttribute\";\nvar _RSAo = \"RouteServerAssociation\";\nvar _RSAou = \"RouteServerAssociations\";\nvar _RSE = \"RouteServerEndpoint\";\nvar _RSEI = \"RouteServerEndpointId\";\nvar _RSEIo = \"RouteServerEndpointIds\";\nvar _RSEo = \"RouteServerEndpoints\";\nvar _RSF = \"RequestSpotFleet\";\nvar _RSFRB = \"RestoreSnapshotFromRecycleBin\";\nvar _RSGE = \"RevokeSecurityGroupEgress\";\nvar _RSGI = \"RevokeSecurityGroupIngress\";\nvar _RSGIe = \"RemoveSecurityGroupIds\";\nvar _RSGR = \"RevokedSecurityGroupRules\";\nvar _RSI = \"RequestSpotInstances\";\nvar _RSIAT = \"RemoveSupportedIpAddressTypes\";\nvar _RSIe = \"RemoveSubnetIds\";\nvar _RSIo = \"RouteServerId\";\nvar _RSIou = \"RouteServerIds\";\nvar _RSIu = \"RunScheduledInstances\";\nvar _RSP = \"RouteServerPeer\";\nvar _RSPI = \"RouteServerPeerId\";\nvar _RSPIo = \"RouteServerPeerIds\";\nvar _RSPo = \"RouteServerPeers\";\nvar _RSPou = \"RouteServerPropagation\";\nvar _RSPout = \"RouteServerPropagations\";\nvar _RSR = \"RemoveSupportedRegions\";\nvar _RST = \"RestoreSnapshotTier\";\nvar _RSTe = \"RestoreStartTime\";\nvar _RSe = \"ResourceStatement\";\nvar _RSeg = \"RegionalSummaries\";\nvar _RSo = \"RouteServer\";\nvar _RSou = \"RouteServers\";\nvar _RSout = \"RouteStatus\";\nvar _RT = \"ResourceType\";\nvar _RTAI = \"RouteTableAssociationId\";\nvar _RTGCB = \"RemoveTransitGatewayCidrBlocks\";\nvar _RTGMDA = \"RejectTransitGatewayMulticastDomainAssociations\";\nvar _RTGMGM = \"RegisterTransitGatewayMulticastGroupMembers\";\nvar _RTGMGS = \"RegisterTransitGatewayMulticastGroupSources\";\nvar _RTGPA = \"RejectTransitGatewayPeeringAttachment\";\nvar _RTGR = \"ReplaceTransitGatewayRoute\";\nvar _RTGVA = \"RejectTransitGatewayVpcAttachment\";\nvar _RTI = \"RouteTableId\";\nvar _RTIe = \"RequesterTgwInfo\";\nvar _RTIo = \"RouteTableIds\";\nvar _RTR = \"RouteTableRoute\";\nvar _RTV = \"RemainingTotalValue\";\nvar _RTe = \"ReservationType\";\nvar _RTel = \"ReleaseTime\";\nvar _RTeq = \"RequestTime\";\nvar _RTes = \"ResourceTag\";\nvar _RTeso = \"ResourceTypes\";\nvar _RTesou = \"ResourceTags\";\nvar _RTo = \"RouteTable\";\nvar _RTou = \"RouteTables\";\nvar _RUI = \"ReplaceUnhealthyInstances\";\nvar _RUV = \"RemainingUpfrontValue\";\nvar _RV = \"ReturnValue\";\nvar _RVEC = \"RejectVpcEndpointConnections\";\nvar _RVI = \"ReferencingVpcId\";\nvar _RVIe = \"RequesterVpcInfo\";\nvar _RVPC = \"RejectVpcPeeringConnection\";\nvar _RVT = \"ReplaceVpnTunnel\";\nvar _RVe = \"ReservationValue\";\nvar _RWS = \"ReplayWindowSize\";\nvar _Ra = \"Ramdisk\";\nvar _Re = \"Resources\";\nvar _Rea = \"Reason\";\nvar _Rec = \"Recurrence\";\nvar _Reg = \"Regions\";\nvar _Regi = \"Region\";\nvar _Rem = \"Remove\";\nvar _Rep = \"Reports\";\nvar _Req = \"Requested\";\nvar _Res = \"Resource\";\nvar _Rese = \"Reservations\";\nvar _Resu = \"Result\";\nvar _Ret = \"Return\";\nvar _Ro = \"Role\";\nvar _Rou = \"Route\";\nvar _Rout = \"Routes\";\nvar _S = \"Source\";\nvar _SA = \"StartupAction\";\nvar _SAI = \"SecondaryAllocationIds\";\nvar _SAMLPA = \"SAMLProviderArn\";\nvar _SAZ = \"SingleAvailabilityZone\";\nvar _SAo = \"SourceAddresses\";\nvar _SAou = \"SourceAddress\";\nvar _SAour = \"SourceArn\";\nvar _SAu = \"SuggestedAccounts\";\nvar _SAub = \"SubnetArn\";\nvar _SAup = \"SupportedArchitectures\";\nvar _SB = \"S3Bucket\";\nvar _SBM = \"SupportedBootModes\";\nvar _SC = \"SubnetConfigurations\";\nvar _SCA = \"ServerCertificateArn\";\nvar _SCAE = \"SerialConsoleAccessEnabled\";\nvar _SCB = \"SourceCidrBlock\";\nvar _SCCDM = \"SnapshotCopyCompletionDurationMinutes\";\nvar _SCR = \"SourceCapacityReservation\";\nvar _SCRI = \"SourceCapacityReservationId\";\nvar _SCRIu = \"SubnetCidrReservationId\";\nvar _SCRu = \"SubnetCidrReservation\";\nvar _SCSIG = \"SustainedClockSpeedInGhz\";\nvar _SCc = \"ScopeCount\";\nvar _SCe = \"ServiceConfiguration\";\nvar _SCer = \"ServiceConfigurations\";\nvar _SCn = \"SnapshotConfiguration\";\nvar _SD = \"StartDate\";\nvar _SDC = \"SourceDestCheck\";\nvar _SDI = \"SendDiagnosticInterrupt\";\nvar _SDIH = \"SlotDurationInHours\";\nvar _SDLTV = \"SuccessfullyDeletedLaunchTemplateVersions\";\nvar _SDPR = \"StartDeclarativePoliciesReport\";\nvar _SDR = \"StartDateRange\";\nvar _SDS = \"SpotDatafeedSubscription\";\nvar _SDV = \"SetDefaultVersion\";\nvar _SDe = \"ServiceDetails\";\nvar _SDn = \"SnapshotDetails\";\nvar _SDp = \"SpreadDomain\";\nvar _SDu = \"SubDomain\";\nvar _SEL = \"S3ExportLocation\";\nvar _SET = \"SampledEndTime\";\nvar _SF = \"SupportedFeatures\";\nvar _SFC = \"SuccessfulFleetCancellations\";\nvar _SFD = \"SuccessfulFleetDeletions\";\nvar _SFII = \"SourceFpgaImageId\";\nvar _SFR = \"SuccessfulFleetRequests\";\nvar _SFRC = \"SpotFleetRequestConfig\";\nvar _SFRCp = \"SpotFleetRequestConfigs\";\nvar _SFRI = \"SpotFleetRequestIds\";\nvar _SFRIp = \"SpotFleetRequestId\";\nvar _SFRS = \"SpotFleetRequestState\";\nvar _SG = \"SecurityGroups\";\nvar _SGA = \"SecurityGroupArn\";\nvar _SGFV = \"SecurityGroupForVpcs\";\nvar _SGI = \"SecurityGroupIds\";\nvar _SGIe = \"SecurityGroupId\";\nvar _SGR = \"SecurityGroupRules\";\nvar _SGRA = \"SecurityGroupRuleArn\";\nvar _SGRD = \"SecurityGroupRuleDescriptions\";\nvar _SGRI = \"SecurityGroupRuleIds\";\nvar _SGRIe = \"SecurityGroupRuleId\";\nvar _SGRS = \"SecurityGroupReferencingSupport\";\nvar _SGRSe = \"SecurityGroupReferenceSet\";\nvar _SGRe = \"SecurityGroupRule\";\nvar _SGVA = \"SecurityGroupVpcAssociations\";\nvar _SGe = \"SecurityGroup\";\nvar _SH = \"StartHour\";\nvar _SI = \"StartInstances\";\nvar _SIAS = \"ScheduledInstanceAvailabilitySet\";\nvar _SIAT = \"SupportedIpAddressTypes\";\nvar _SICR = \"SubnetIpv4CidrReservations\";\nvar _SICRu = \"SubnetIpv6CidrReservations\";\nvar _SICS = \"SuccessfulInstanceCreditSpecifications\";\nvar _SIGB = \"SizeInGB\";\nvar _SII = \"SourceImageId\";\nvar _SIIc = \"ScheduledInstanceIds\";\nvar _SIIch = \"ScheduledInstanceId\";\nvar _SIIo = \"SourceInstanceId\";\nvar _SIMB = \"SizeInMiB\";\nvar _SIP = \"StaleIpPermissions\";\nvar _SIPE = \"StaleIpPermissionsEgress\";\nvar _SIPI = \"SourceIpamPoolId\";\nvar _SIR = \"SpotInstanceRequests\";\nvar _SIRI = \"SpotInstanceRequestIds\";\nvar _SIRIp = \"SpotInstanceRequestId\";\nvar _SIRo = \"SourceImageRegion\";\nvar _SIS = \"ScheduledInstanceSet\";\nvar _SIT = \"SpotInstanceType\";\nvar _SITR = \"StoreImageTaskResults\";\nvar _SITi = \"SingleInstanceType\";\nvar _SIe = \"ServiceId\";\nvar _SIer = \"ServiceIds\";\nvar _SIn = \"SnapshotId\";\nvar _SIna = \"SnapshotIds\";\nvar _SIo = \"SourceIp\";\nvar _SIt = \"StopInstances\";\nvar _SIta = \"StartingInstances\";\nvar _SIto = \"StoppingInstances\";\nvar _SIu = \"SubnetIds\";\nvar _SIub = \"SubnetId\";\nvar _SIubs = \"SubsystemId\";\nvar _SK = \"S3Key\";\nvar _SKo = \"S3objectKey\";\nvar _SL = \"SpreadLevel\";\nvar _SLGR = \"SearchLocalGatewayRoutes\";\nvar _SLVI = \"ServiceLinkVirtualInterfaces\";\nvar _SLVIA = \"ServiceLinkVirtualInterfaceArn\";\nvar _SLVII = \"ServiceLinkVirtualInterfaceIds\";\nvar _SLVIIe = \"ServiceLinkVirtualInterfaceId\";\nvar _SLo = \"S3Location\";\nvar _SM = \"ServiceManaged\";\nvar _SMPPOLP = \"SpotMaxPricePercentageOverLowestPrice\";\nvar _SMS = \"SpotMaintenanceStrategies\";\nvar _SMTP = \"SpotMaxTotalPrice\";\nvar _SMt = \"StatusMessage\";\nvar _SMta = \"StateMessage\";\nvar _SN = \"SessionNumber\";\nvar _SNA = \"ServiceNetworkArn\";\nvar _SNE = \"SnsNotificationsEnabled\";\nvar _SNIA = \"StartNetworkInsightsAnalysis\";\nvar _SNIASA = \"StartNetworkInsightsAccessScopeAnalysis\";\nvar _SNN = \"ServiceNetworkName\";\nvar _SNS = \"SriovNetSupport\";\nvar _SNe = \"ServiceName\";\nvar _SNeq = \"SequenceNumber\";\nvar _SNer = \"ServiceNames\";\nvar _SO = \"SpotOptions\";\nvar _SOT = \"S3ObjectTags\";\nvar _SP = \"S3Prefix\";\nvar _SPA = \"SamlProviderArn\";\nvar _SPH = \"SpotPriceHistory\";\nvar _SPI = \"ServicePermissionId\";\nvar _SPIA = \"SecondaryPrivateIpAddresses\";\nvar _SPIAC = \"SecondaryPrivateIpAddressCount\";\nvar _SPL = \"SourcePrefixLists\";\nvar _SPR = \"SourcePortRange\";\nvar _SPRo = \"SourcePortRanges\";\nvar _SPS = \"SpotPlacementScores\";\nvar _SPo = \"SourcePorts\";\nvar _SPp = \"SpotPrice\";\nvar _SQPD = \"SuccessfulQueuedPurchaseDeletions\";\nvar _SR = \"SourceRegion\";\nvar _SRDT = \"SupportedRootDeviceTypes\";\nvar _SRO = \"StaticRoutesOnly\";\nvar _SRT = \"SubnetRouteTable\";\nvar _SRe = \"ServiceRegion\";\nvar _SRer = \"ServiceRegions\";\nvar _SRerv = \"ServiceResource\";\nvar _SRo = \"SourceResource\";\nvar _SRt = \"StateReason\";\nvar _SRu = \"SupportedRegions\";\nvar _SS = \"SseSpecification\";\nvar _SSGN = \"SourceSecurityGroupName\";\nvar _SSGOI = \"SourceSecurityGroupOwnerId\";\nvar _SSGS = \"StaleSecurityGroupSet\";\nvar _SSI = \"SourceSnapshotId\";\nvar _SSIo = \"SourceSnapshotIds\";\nvar _SSP = \"SelfServicePortal\";\nvar _SSPU = \"SelfServicePortalUrl\";\nvar _SSS = \"StaticSourcesSupport\";\nvar _SSSAMLPA = \"SelfServiceSAMLProviderArn\";\nvar _SSSPA = \"SelfServiceSamlProviderArn\";\nvar _SST = \"SampledStartTime\";\nvar _SSTR = \"SlotStartTimeRange\";\nvar _SSe = \"ServiceState\";\nvar _SSu = \"SupportedStrategies\";\nvar _SSy = \"SystemStatus\";\nvar _ST = \"SplitTunnel\";\nvar _STA = \"SnsTopicArn\";\nvar _STC = \"SpotTargetCapacity\";\nvar _STD = \"SnapshotTaskDetail\";\nvar _STFR = \"StoreTaskFailureReason\";\nvar _STGMG = \"SearchTransitGatewayMulticastGroups\";\nvar _STGR = \"SearchTransitGatewayRoutes\";\nvar _STH = \"SessionTimeoutHours\";\nvar _STR = \"SkipTunnelReplacement\";\nvar _STRt = \"StateTransitionReason\";\nvar _STS = \"SnapshotTierStatuses\";\nvar _STSt = \"StoreTaskState\";\nvar _STT = \"StateTransitionTime\";\nvar _STa = \"SampleTime\";\nvar _STe = \"ServiceType\";\nvar _STo = \"SourceType\";\nvar _STs = \"SseType\";\nvar _STt = \"StartTime\";\nvar _STto = \"StorageTier\";\nvar _SUC = \"SupportedUsageClasses\";\nvar _SV = \"SourceVersion\";\nvar _SVESPDV = \"StartVpcEndpointServicePrivateDnsVerification\";\nvar _SVI = \"SubsystemVendorId\";\nvar _SVT = \"SupportedVirtualizationTypes\";\nvar _SVh = \"ShellVersion\";\nvar _SVo = \"SourceVpc\";\nvar _SVu = \"SupportedVersions\";\nvar _SWD = \"StartWeekDay\";\nvar _S_ = \"S3\";\nvar _Sc = \"Scope\";\nvar _Sco = \"Score\";\nvar _Scop = \"Scopes\";\nvar _Se = \"Service\";\nvar _Set = \"Settings\";\nvar _Si = \"Signature\";\nvar _Siz = \"Size\";\nvar _Sn = \"Snapshots\";\nvar _So = \"Sources\";\nvar _Soc = \"Sockets\";\nvar _Sof = \"Software\";\nvar _St = \"Storage\";\nvar _Sta = \"Statistic\";\nvar _Star = \"Start\";\nvar _Stat = \"State\";\nvar _Statu = \"Status\";\nvar _Status = \"Statuses\";\nvar _Str = \"Strategy\";\nvar _Su = \"Subnet\";\nvar _Sub = \"Subscriptions\";\nvar _Subn = \"Subnets\";\nvar _Suc = \"Successful\";\nvar _Succ = \"Success\";\nvar _T = \"Type\";\nvar _TAAC = \"TotalAvailableAddressCount\";\nvar _TAC = \"TotalAddressCount\";\nvar _TAI = \"TransferAccountId\";\nvar _TC = \"TargetConfigurations\";\nvar _TCS = \"TargetCapacitySpecification\";\nvar _TCUT = \"TargetCapacityUnitType\";\nvar _TCVC = \"TerminateClientVpnConnections\";\nvar _TCVR = \"TargetConfigurationValueRollup\";\nvar _TCVS = \"TargetConfigurationValueSet\";\nvar _TCa = \"TargetCapacity\";\nvar _TCar = \"TargetConfiguration\";\nvar _TCo = \"TotalCapacity\";\nvar _TD = \"TrafficDirection\";\nvar _TDe = \"TerminationDelay\";\nvar _TE = \"TargetEnvironment\";\nvar _TED = \"TermEndDate\";\nvar _TET = \"TcpEstablishedTimeout\";\nvar _TEo = \"TokenEndpoint\";\nvar _TFC = \"TotalFulfilledCapacity\";\nvar _TFMIMB = \"TotalFpgaMemoryInMiB\";\nvar _TG = \"TargetGroups\";\nvar _TGA = \"TransitGatewayAddress\";\nvar _TGAI = \"TransitGatewayAttachmentId\";\nvar _TGAIr = \"TransitGatewayAttachmentIds\";\nvar _TGAP = \"TransitGatewayAttachmentPropagations\";\nvar _TGAr = \"TransitGatewayAttachments\";\nvar _TGAra = \"TransitGatewayAttachment\";\nvar _TGAran = \"TransitGatewayArn\";\nvar _TGArans = \"TransitGatewayAsn\";\nvar _TGC = \"TargetGroupsConfig\";\nvar _TGCB = \"TransitGatewayCidrBlocks\";\nvar _TGCP = \"TransitGatewayConnectPeer\";\nvar _TGCPI = \"TransitGatewayConnectPeerId\";\nvar _TGCPIr = \"TransitGatewayConnectPeerIds\";\nvar _TGCPr = \"TransitGatewayConnectPeers\";\nvar _TGCr = \"TransitGatewayConnect\";\nvar _TGCra = \"TransitGatewayConnects\";\nvar _TGI = \"TransitGatewayId\";\nvar _TGIr = \"TransitGatewayIds\";\nvar _TGMD = \"TransitGatewayMulticastDomain\";\nvar _TGMDA = \"TransitGatewayMulticastDomainArn\";\nvar _TGMDI = \"TransitGatewayMulticastDomainId\";\nvar _TGMDIr = \"TransitGatewayMulticastDomainIds\";\nvar _TGMDr = \"TransitGatewayMulticastDomains\";\nvar _TGMIMB = \"TotalGpuMemoryInMiB\";\nvar _TGOI = \"TransitGatewayOwnerId\";\nvar _TGPA = \"TransitGatewayPeeringAttachment\";\nvar _TGPAr = \"TransitGatewayPeeringAttachments\";\nvar _TGPLR = \"TransitGatewayPrefixListReference\";\nvar _TGPLRr = \"TransitGatewayPrefixListReferences\";\nvar _TGPT = \"TransitGatewayPolicyTable\";\nvar _TGPTE = \"TransitGatewayPolicyTableEntries\";\nvar _TGPTI = \"TransitGatewayPolicyTableId\";\nvar _TGPTIr = \"TransitGatewayPolicyTableIds\";\nvar _TGPTr = \"TransitGatewayPolicyTables\";\nvar _TGRT = \"TransitGatewayRouteTable\";\nvar _TGRTA = \"TransitGatewayRouteTableAnnouncement\";\nvar _TGRTAI = \"TransitGatewayRouteTableAnnouncementId\";\nvar _TGRTAIr = \"TransitGatewayRouteTableAnnouncementIds\";\nvar _TGRTAr = \"TransitGatewayRouteTableAnnouncements\";\nvar _TGRTI = \"TransitGatewayRouteTableId\";\nvar _TGRTIr = \"TransitGatewayRouteTableIds\";\nvar _TGRTP = \"TransitGatewayRouteTablePropagations\";\nvar _TGRTR = \"TransitGatewayRouteTableRoute\";\nvar _TGRTr = \"TransitGatewayRouteTables\";\nvar _TGVA = \"TransitGatewayVpcAttachment\";\nvar _TGVAr = \"TransitGatewayVpcAttachments\";\nvar _TGr = \"TransitGateway\";\nvar _TGra = \"TransitGateways\";\nvar _THP = \"TotalHourlyPrice\";\nvar _TI = \"TerminateInstances\";\nvar _TIC = \"TunnelInsideCidr\";\nvar _TICo = \"TotalInstanceCount\";\nvar _TII = \"TrunkInterfaceId\";\nvar _TIIC = \"TunnelInsideIpv6Cidr\";\nvar _TIIV = \"TunnelInsideIpVersion\";\nvar _TIMIMB = \"TotalInferenceMemoryInMiB\";\nvar _TIWE = \"TerminateInstancesWithExpiration\";\nvar _TIa = \"TargetId\";\nvar _TIar = \"TargetIops\";\nvar _TIe = \"TenantId\";\nvar _TIer = \"TerminatingInstances\";\nvar _TLSGB = \"TotalLocalStorageGB\";\nvar _TMAE = \"TargetMultiAttachEnabled\";\nvar _TMF = \"TrafficMirrorFilter\";\nvar _TMFI = \"TrafficMirrorFilterId\";\nvar _TMFIr = \"TrafficMirrorFilterIds\";\nvar _TMFR = \"TrafficMirrorFilterRule\";\nvar _TMFRI = \"TrafficMirrorFilterRuleId\";\nvar _TMFRIr = \"TrafficMirrorFilterRuleIds\";\nvar _TMFRr = \"TrafficMirrorFilterRules\";\nvar _TMFr = \"TrafficMirrorFilters\";\nvar _TMMIMB = \"TotalMediaMemoryInMiB\";\nvar _TMS = \"TrafficMirrorSession\";\nvar _TMSI = \"TrafficMirrorSessionId\";\nvar _TMSIr = \"TrafficMirrorSessionIds\";\nvar _TMSr = \"TrafficMirrorSessions\";\nvar _TMT = \"TrafficMirrorTarget\";\nvar _TMTI = \"TrafficMirrorTargetId\";\nvar _TMTIr = \"TrafficMirrorTargetIds\";\nvar _TMTr = \"TrafficMirrorTargets\";\nvar _TN = \"TokenName\";\nvar _TNC = \"TargetNetworkCidr\";\nvar _TNDMIMB = \"TotalNeuronDeviceMemoryInMiB\";\nvar _TNI = \"TargetNetworkId\";\nvar _TO = \"TunnelOptions\";\nvar _TOAT = \"TransferOfferAcceptedTimestamp\";\nvar _TOET = \"TransferOfferExpirationTimestamp\";\nvar _TP = \"ToPort\";\nvar _TPC = \"ThreadsPerCore\";\nvar _TPT = \"TrustProviderType\";\nvar _TPr = \"TransportProtocol\";\nvar _TR = \"ThroughResources\";\nvar _TRC = \"TargetResourceCount\";\nvar _TRD = \"TemporaryRestoreDays\";\nvar _TRTI = \"TargetRouteTableId\";\nvar _TRi = \"TimeRanges\";\nvar _TS = \"TagSpecifications\";\nvar _TSD = \"TermStartDate\";\nvar _TSIGB = \"TotalSizeInGB\";\nvar _TSIH = \"TotalScheduledInstanceHours\";\nvar _TST = \"TieringStartTime\";\nvar _TSTa = \"TaskStartTime\";\nvar _TSa = \"TargetSubnet\";\nvar _TSag = \"TagSet\";\nvar _TSagp = \"TagSpecification\";\nvar _TSar = \"TargetSize\";\nvar _TSas = \"TaskState\";\nvar _TSp = \"TpmSupport\";\nvar _TT = \"TrafficType\";\nvar _TTC = \"TotalTargetCapacity\";\nvar _TTGAI = \"TransportTransitGatewayAttachmentId\";\nvar _TTa = \"TargetThroughput\";\nvar _TTr = \"TransferType\";\nvar _TUP = \"TotalUpfrontPrice\";\nvar _TV = \"TargetVersion\";\nvar _TVC = \"TotalVCpus\";\nvar _TVSI = \"TargetVpcSubnetId\";\nvar _TVT = \"TargetVolumeType\";\nvar _TVo = \"TokenValue\";\nvar _Ta = \"Tags\";\nvar _Tag = \"Tag\";\nvar _Te = \"Tenancy\";\nvar _Ter = \"Term\";\nvar _Th = \"Throughput\";\nvar _Ti = \"Tier\";\nvar _Tim = \"Timestamp\";\nvar _To = \"To\";\nvar _U = \"Url\";\nvar _UB = \"UserBucket\";\nvar _UD = \"UserData\";\nvar _UDLTV = \"UnsuccessfullyDeletedLaunchTemplateVersions\";\nvar _UDe = \"UefiData\";\nvar _UDp = \"UpdatedDate\";\nvar _UDpd = \"UpdateDate\";\nvar _UE = \"UploadEnd\";\nvar _UF = \"UpfrontFee\";\nvar _UFD = \"UnsuccessfulFleetDeletions\";\nvar _UFR = \"UnsuccessfulFleetRequests\";\nvar _UG = \"UserGroups\";\nvar _UI = \"UnmonitorInstances\";\nvar _UIA = \"UnassignIpv6Addresses\";\nvar _UIAn = \"UnassignedIpv6Addresses\";\nvar _UIC = \"UsedInstanceCount\";\nvar _UICS = \"UnsuccessfulInstanceCreditSpecifications\";\nvar _UIE = \"UserInfoEndpoint\";\nvar _UIGP = \"UserIdGroupPairs\";\nvar _UIP = \"UnknownIpPermissions\";\nvar _UIPn = \"UnassignedIpv6Prefixes\";\nvar _UIs = \"UserId\";\nvar _UIse = \"UserIds\";\nvar _ULI = \"UseLongIds\";\nvar _ULIA = \"UseLongIdsAggregated\";\nvar _UO = \"UsageOperation\";\nvar _UOUT = \"UsageOperationUpdateTime\";\nvar _UP = \"UploadPolicy\";\nvar _UPIA = \"UnassignPrivateIpAddresses\";\nvar _UPNGA = \"UnassignPrivateNatGatewayAddress\";\nvar _UPS = \"UploadPolicySignature\";\nvar _UPp = \"UpfrontPrice\";\nvar _UPs = \"UsagePrice\";\nvar _URBOI = \"UnusedReservationBillingOwnerId\";\nvar _US = \"UnlockSnapshot\";\nvar _USGRDE = \"UpdateSecurityGroupRuleDescriptionsEgress\";\nvar _USGRDI = \"UpdateSecurityGroupRuleDescriptionsIngress\";\nvar _UST = \"UdpStreamTimeout\";\nvar _USp = \"UploadSize\";\nvar _USpl = \"UploadStart\";\nvar _USs = \"UsageStrategy\";\nvar _UT = \"UdpTimeout\";\nvar _UTP = \"UserTrustProvider\";\nvar _UTPT = \"UserTrustProviderType\";\nvar _UTp = \"UpdateTime\";\nvar _Un = \"Unsuccessful\";\nvar _Us = \"Username\";\nvar _V = \"Version\";\nvar _VA = \"VpcAttachment\";\nvar _VAE = \"VerifiedAccessEndpoint\";\nvar _VAEI = \"VerifiedAccessEndpointId\";\nvar _VAEIe = \"VerifiedAccessEndpointIds\";\nvar _VAET = \"VerifiedAccessEndpointTargets\";\nvar _VAETD = \"VerifiedAccessEndpointTargetDns\";\nvar _VAETIA = \"VerifiedAccessEndpointTargetIpAddress\";\nvar _VAEe = \"VerifiedAccessEndpoints\";\nvar _VAG = \"VerifiedAccessGroup\";\nvar _VAGA = \"VerifiedAccessGroupArn\";\nvar _VAGI = \"VerifiedAccessGroupId\";\nvar _VAGIe = \"VerifiedAccessGroupIds\";\nvar _VAGe = \"VerifiedAccessGroups\";\nvar _VAI = \"VerifiedAccessInstance\";\nvar _VAII = \"VerifiedAccessInstanceId\";\nvar _VAIIe = \"VerifiedAccessInstanceIds\";\nvar _VAIe = \"VerifiedAccessInstances\";\nvar _VATP = \"VerifiedAccessTrustProvider\";\nvar _VATPI = \"VerifiedAccessTrustProviderId\";\nvar _VATPIe = \"VerifiedAccessTrustProviderIds\";\nvar _VATPe = \"VerifiedAccessTrustProviders\";\nvar _VAp = \"VpcAttachments\";\nvar _VBPAE = \"VpcBlockPublicAccessExclusion\";\nvar _VBPAEp = \"VpcBlockPublicAccessExclusions\";\nvar _VBPAO = \"VpcBlockPublicAccessOptions\";\nvar _VC = \"VpnConnection\";\nvar _VCC = \"VCpuCount\";\nvar _VCDSC = \"VpnConnectionDeviceSampleConfiguration\";\nvar _VCDT = \"VpnConnectionDeviceTypes\";\nvar _VCDTI = \"VpnConnectionDeviceTypeId\";\nvar _VCI = \"VpnConnectionId\";\nvar _VCIp = \"VpnConnectionIds\";\nvar _VCIpu = \"VCpuInfo\";\nvar _VCa = \"ValidCores\";\nvar _VCp = \"VpnConnections\";\nvar _VD = \"VersionDescription\";\nvar _VE = \"VpcEndpoint\";\nvar _VEA = \"VpcEndpointAssociations\";\nvar _VEC = \"VpcEndpointConnections\";\nvar _VECI = \"VpcEncryptionControlId\";\nvar _VECIp = \"VpcEndpointConnectionId\";\nvar _VEI = \"VpcEndpointIds\";\nvar _VEIp = \"VpcEndpointId\";\nvar _VEO = \"VpcEndpointOwner\";\nvar _VEPS = \"VpcEndpointPolicySupported\";\nvar _VER = \"VpcEndpointRegion\";\nvar _VES = \"VpnEcmpSupport\";\nvar _VESp = \"VpcEndpointService\";\nvar _VESpc = \"VpcEndpointState\";\nvar _VET = \"VpcEndpointType\";\nvar _VEp = \"VpcEndpoints\";\nvar _VF = \"ValidFrom\";\nvar _VFR = \"ValidationFailureReason\";\nvar _VG = \"VpnGateway\";\nvar _VGI = \"VpnGatewayId\";\nvar _VGIp = \"VpnGatewayIds\";\nvar _VGp = \"VpnGateways\";\nvar _VI = \"VpcId\";\nvar _VIR = \"VolumeInitializationRate\";\nvar _VIe = \"VendorId\";\nvar _VIl = \"VlanId\";\nvar _VIo = \"VolumeId\";\nvar _VIol = \"VolumeIds\";\nvar _VIp = \"VpcIds\";\nvar _VM = \"VerificationMethod\";\nvar _VMo = \"VolumesModifications\";\nvar _VMol = \"VolumeModification\";\nvar _VN = \"VirtualName\";\nvar _VNI = \"VirtualNetworkId\";\nvar _VNe = \"VersionNumber\";\nvar _VOI = \"VolumeOwnerId\";\nvar _VOIp = \"VpcOwnerId\";\nvar _VP = \"VpnPort\";\nvar _VPC = \"VpcPeeringConnection\";\nvar _VPCI = \"VpcPeeringConnectionId\";\nvar _VPCIp = \"VpcPeeringConnectionIds\";\nvar _VPCp = \"VpcPeeringConnections\";\nvar _VPG = \"VirtualPrivateGateway\";\nvar _VPp = \"VpnProtocol\";\nvar _VPpc = \"VpcPeering\";\nvar _VS = \"VolumeSize\";\nvar _VSo = \"VolumeStatuses\";\nvar _VSol = \"VolumeStatus\";\nvar _VT = \"VolumeType\";\nvar _VTOIA = \"VpnTunnelOutsideIpAddress\";\nvar _VTPC = \"ValidThreadsPerCore\";\nvar _VTg = \"VgwTelemetry\";\nvar _VTi = \"VirtualizationTypes\";\nvar _VTir = \"VirtualizationType\";\nvar _VU = \"ValidUntil\";\nvar _Va = \"Value\";\nvar _Val = \"Values\";\nvar _Ve = \"Versions\";\nvar _Ven = \"Vendor\";\nvar _Vl = \"Vlan\";\nvar _Vo = \"Volume\";\nvar _Vol = \"Volumes\";\nvar _Vp = \"Vpc\";\nvar _Vpc = \"Vpcs\";\nvar _W = \"Weight\";\nvar _WBC = \"WithdrawByoipCidr\";\nvar _WC = \"WithCooldown\";\nvar _WCe = \"WeightedCapacity\";\nvar _WM = \"WarningMessage\";\nvar _WU = \"WakeUp\";\nvar _Wa = \"Warning\";\nvar _ZI = \"ZoneIds\";\nvar _ZIo = \"ZoneId\";\nvar _ZN = \"ZoneNames\";\nvar _ZNo = \"ZoneName\";\nvar _ZT = \"ZoneType\";\nvar _a = \"associations\";\nvar _aA = \"asnAssociation\";\nvar _aAC = \"availableAddressCount\";\nvar _aAI = \"awsAccountId\";\nvar _aAId = \"addressAllocationId\";\nvar _aAS = \"asnAssociationSet\";\nvar _aASA = \"autoAcceptSharedAssociations\";\nvar _aASAu = \"autoAcceptSharedAttachments\";\nvar _aASc = \"accountAttributeSet\";\nvar _aASd = \"additionalAccountSet\";\nvar _aAc = \"accessAll\";\nvar _aBHP = \"actualBlockHourlyPrice\";\nvar _aC = \"availableCapacity\";\nvar _aCIA = \"associateCarrierIpAddress\";\nvar _aCT = \"archivalCompleteTime\";\nvar _aCc = \"acceleratorCount\";\nvar _aCd = \"addressCount\";\nvar _aD = \"activeDirectory\";\nvar _aDNL = \"allocationDefaultNetmaskLength\";\nvar _aDRFRV = \"allowDnsResolutionFromRemoteVpc\";\nvar _aDRTI = \"associationDefaultRouteTableId\";\nvar _aDS = \"additionalDetailSet\";\nvar _aDT = \"additionalDetailType\";\nvar _aDn = \"announcementDirection\";\nvar _aDp = \"applicationDomain\";\nvar _aE = \"authorizationEndpoint\";\nvar _aEC = \"analyzedEniCount\";\nvar _aEFLCLTRV = \"allowEgressFromLocalClassicLinkToRemoteVpc\";\nvar _aEFLVTRCL = \"allowEgressFromLocalVpcToRemoteClassicLink\";\nvar _aEIO = \"autoEnableIO\";\nvar _aES = \"attachedEbsStatus\";\nvar _aF = \"addressFamily\";\nvar _aFS = \"analysisFindingSet\";\nvar _aI = \"allocationId\";\nvar _aIA = \"assignedIpv6Addresses\";\nvar _aIAC = \"availableIpAddressCount\";\nvar _aIAOC = \"assignIpv6AddressOnCreation\";\nvar _aIC = \"availableInstanceCapacity\";\nvar _aICv = \"availableInstanceCount\";\nvar _aIPS = \"assignedIpv6PrefixSet\";\nvar _aIPSs = \"assignedIpv4PrefixSet\";\nvar _aIS = \"activeInstanceSet\";\nvar _aISS = \"allowedImagesSettingsState\";\nvar _aITS = \"allowedInstanceTypeSet\";\nvar _aIc = \"accountId\";\nvar _aIm = \"amiId\";\nvar _aIs = \"associationId\";\nvar _aIss = \"assetId\";\nvar _aIt = \"attachmentId\";\nvar _aIu = \"autoImport\";\nvar _aL = \"accountLevel\";\nvar _aLI = \"amiLaunchIndex\";\nvar _aLc = \"accessLogs\";\nvar _aMIT = \"allowsMultipleInstanceTypes\";\nvar _aMNL = \"allocationMinNetmaskLength\";\nvar _aMNLl = \"allocationMaxNetmaskLength\";\nvar _aMS = \"acceleratorManufacturerSet\";\nvar _aMSp = \"applianceModeSupport\";\nvar _aN = \"attributeName\";\nvar _aNS = \"acceleratorNameSet\";\nvar _aO = \"authenticationOptions\";\nvar _aOI = \"addressOwnerId\";\nvar _aP = \"allowedPrincipals\";\nvar _aPCO = \"accepterPeeringConnectionOptions\";\nvar _aPHS = \"alternatePathHintSet\";\nvar _aPIA = \"associatePublicIpAddress\";\nvar _aPIAS = \"assignedPrivateIpAddressesSet\";\nvar _aPS = \"addedPrincipalSet\";\nvar _aPSs = \"asPathSet\";\nvar _aPu = \"autoPlacement\";\nvar _aR = \"authorizationRule\";\nvar _aRA = \"associatedRoleArn\";\nvar _aRAd = \"additionalRoutesAvailable\";\nvar _aRAs = \"associatedResourceAccessibility\";\nvar _aRAss = \"associatedResourceArn\";\nvar _aRC = \"acceptedRouteCount\";\nvar _aRP = \"areRoutesPersisted\";\nvar _aRS = \"associatedRoleSet\";\nvar _aRSu = \"autoRecoverySupported\";\nvar _aRTS = \"allocationResourceTagSet\";\nvar _aRc = \"aclRule\";\nvar _aRcc = \"acceptanceRequired\";\nvar _aRd = \"addressRegion\";\nvar _aRs = \"associatedResource\";\nvar _aRu = \"autoRecovery\";\nvar _aRw = \"awsRegion\";\nvar _aS = \"associationState\";\nvar _aSA = \"amazonSideAsn\";\nvar _aSS = \"amdSevSnp\";\nvar _aSSt = \"attributeSummarySet\";\nvar _aSc = \"activityStatus\";\nvar _aSct = \"actionsSet\";\nvar _aSd = \"addressSet\";\nvar _aSdd = \"addressesSet\";\nvar _aSl = \"allocationStrategy\";\nvar _aSn = \"analysisStatus\";\nvar _aSs = \"associationStatus\";\nvar _aSss = \"associationSet\";\nvar _aSt = \"attachmentSet\";\nvar _aStt = \"attachmentStatuses\";\nvar _aSw = \"awsService\";\nvar _aT = \"addressTransfer\";\nvar _aTGAI = \"accepterTransitGatewayAttachmentId\";\nvar _aTI = \"accepterTgwInfo\";\nvar _aTMMB = \"acceleratorTotalMemoryMiB\";\nvar _aTN = \"associatedTargetNetwork\";\nvar _aTS = \"addressTransferStatus\";\nvar _aTSc = \"acceleratorTypeSet\";\nvar _aTSd = \"addressTransferSet\";\nvar _aTd = \"addressType\";\nvar _aTdd = \"addressingType\";\nvar _aTl = \"allocationType\";\nvar _aTll = \"allocationTime\";\nvar _aTs = \"associationTarget\";\nvar _aTt = \"attachTime\";\nvar _aTtt = \"attachedTo\";\nvar _aTtta = \"attachmentType\";\nvar _aV = \"attributeValue\";\nvar _aVC = \"availableVCpus\";\nvar _aVI = \"accepterVpcInfo\";\nvar _aVS = \"attributeValueSet\";\nvar _aZ = \"availabilityZone\";\nvar _aZG = \"availabilityZoneGroup\";\nvar _aZI = \"availabilityZoneId\";\nvar _aZIS = \"availabilityZoneIdSet\";\nvar _aZIv = \"availabilityZoneInfo\";\nvar _aZS = \"availabilityZoneSet\";\nvar _ac = \"acl\";\nvar _acc = \"accelerators\";\nvar _act = \"active\";\nvar _ad = \"address\";\nvar _af = \"affinity\";\nvar _am = \"amount\";\nvar _ar = \"arn\";\nvar _arc = \"architecture\";\nvar _as = \"asn\";\nvar _ass = \"association\";\nvar _at = \"attachment\";\nvar _att = \"attachments\";\nvar _b = \"byoasn\";\nvar _bA = \"bgpAsn\";\nvar _bAE = \"bgpAsnExtended\";\nvar _bBIG = \"baselineBandwidthInGbps\";\nvar _bBIM = \"baselineBandwidthInMbps\";\nvar _bC = \"byoipCidr\";\nvar _bCS = \"byoipCidrSet\";\nvar _bCg = \"bgpConfigurations\";\nvar _bCy = \"bytesConverted\";\nvar _bDM = \"blockDeviceMapping\";\nvar _bDMS = \"blockDeviceMappingSet\";\nvar _bDMl = \"blockDurationMinutes\";\nvar _bEBM = \"baselineEbsBandwidthMbps\";\nvar _bEDNS = \"baseEndpointDnsNameSet\";\nvar _bI = \"bundleId\";\nvar _bII = \"branchInterfaceId\";\nvar _bIT = \"bundleInstanceTask\";\nvar _bITS = \"bundleInstanceTasksSet\";\nvar _bIa = \"baselineIops\";\nvar _bM = \"bootMode\";\nvar _bMa = \"bareMetal\";\nvar _bN = \"bucketName\";\nvar _bO = \"bgpOptions\";\nvar _bOu = \"bucketOwner\";\nvar _bP = \"burstablePerformance\";\nvar _bPAS = \"blockPublicAccessStates\";\nvar _bPF = \"baselinePerformanceFactors\";\nvar _bPS = \"burstablePerformanceSupported\";\nvar _bS = \"byoasnSet\";\nvar _bSf = \"bfdStatus\";\nvar _bSg = \"bgpStatus\";\nvar _bT = \"bannerText\";\nvar _bTIMB = \"baselineThroughputInMBps\";\nvar _bW = \"bandwidthWeighting\";\nvar _bWa = \"bandwidthWeightings\";\nvar _bl = \"blackhole\";\nvar _bu = \"bucket\";\nvar _c = \"component\";\nvar _cA = \"componentArn\";\nvar _cAS = \"capacityAllocationSet\";\nvar _cAUS = \"coipAddressUsageSet\";\nvar _cAe = \"certificateArn\";\nvar _cAo = \"componentAccount\";\nvar _cAr = \"createdAt\";\nvar _cB = \"cidrBlock\";\nvar _cBA = \"cidrBlockAssociation\";\nvar _cBAS = \"cidrBlockAssociationSet\";\nvar _cBDH = \"capacityBlockDurationHours\";\nvar _cBDM = \"capacityBlockDurationMinutes\";\nvar _cBEDH = \"capacityBlockExtensionDurationHours\";\nvar _cBEED = \"capacityBlockExtensionEndDate\";\nvar _cBEOI = \"capacityBlockExtensionOfferingId\";\nvar _cBEOS = \"capacityBlockExtensionOfferingSet\";\nvar _cBEPD = \"capacityBlockExtensionPurchaseDate\";\nvar _cBES = \"capacityBlockExtensionStatus\";\nvar _cBESD = \"capacityBlockExtensionStartDate\";\nvar _cBESa = \"capacityBlockExtensionSet\";\nvar _cBOI = \"capacityBlockOfferingId\";\nvar _cBOS = \"capacityBlockOfferingSet\";\nvar _cBS = \"cidrBlockState\";\nvar _cBSi = \"cidrBlockSet\";\nvar _cBr = \"createdBy\";\nvar _cC = \"currencyCode\";\nvar _cCB = \"clientCidrBlock\";\nvar _cCO = \"clientConnectOptions\";\nvar _cCRFE = \"cancelCapacityReservationFleetError\";\nvar _cCl = \"clientConfiguration\";\nvar _cCo = \"coreCount\";\nvar _cCoi = \"coipCidr\";\nvar _cCp = \"cpuCredits\";\nvar _cD = \"createDate\";\nvar _cDM = \"completionDurationMinutes\";\nvar _cDr = \"creationDate\";\nvar _cDre = \"createdDate\";\nvar _cE = \"connectionEvents\";\nvar _cECSD = \"cidrEndpointsCustomSubDomain\";\nvar _cED = \"commitmentEndDate\";\nvar _cET = \"connectionEstablishedTime\";\nvar _cETo = \"connectionEndTime\";\nvar _cEr = \"cronExpression\";\nvar _cF = \"containerFormat\";\nvar _cFS = \"currentFleetState\";\nvar _cG = \"carrierGateway\";\nvar _cGC = \"customerGatewayConfiguration\";\nvar _cGI = \"carrierGatewayId\";\nvar _cGIu = \"customerGatewayId\";\nvar _cGS = \"carrierGatewaySet\";\nvar _cGSu = \"customerGatewaySet\";\nvar _cGu = \"customerGateway\";\nvar _cGur = \"currentGeneration\";\nvar _cI = \"carrierIp\";\nvar _cIBM = \"currentInstanceBootMode\";\nvar _cIC = \"committedInstanceCount\";\nvar _cIi = \"cidrIp\";\nvar _cIid = \"cidrIpv6\";\nvar _cIidr = \"cidrIpv4\";\nvar _cIl = \"clientIp\";\nvar _cIli = \"clientId\";\nvar _cIo = \"componentId\";\nvar _cIom = \"commitmentInfo\";\nvar _cIon = \"connectionId\";\nvar _cIop = \"coIp\";\nvar _cIor = \"coreInfo\";\nvar _cLB = \"classicLoadBalancers\";\nvar _cLBC = \"classicLoadBalancersConfig\";\nvar _cLBL = \"classicLoadBalancerListener\";\nvar _cLBO = \"clientLoginBannerOptions\";\nvar _cLDS = \"classicLinkDnsSupported\";\nvar _cLE = \"classicLinkEnabled\";\nvar _cLO = \"connectionLogOptions\";\nvar _cMKE = \"customerManagedKeyEnabled\";\nvar _cMS = \"cpuManufacturerSet\";\nvar _cN = \"commonName\";\nvar _cNA = \"coreNetworkArn\";\nvar _cNAA = \"coreNetworkAttachmentArn\";\nvar _cNAo = \"connectionNotificationArn\";\nvar _cNI = \"connectionNotificationId\";\nvar _cNIo = \"coreNetworkId\";\nvar _cNS = \"connectionNotificationState\";\nvar _cNSo = \"connectionNotificationSet\";\nvar _cNT = \"connectionNotificationType\";\nvar _cNo = \"connectionNotification\";\nvar _cO = \"cpuOptions\";\nvar _cOI = \"customerOwnedIp\";\nvar _cOIP = \"customerOwnedIpv4Pool\";\nvar _cOP = \"coolOffPeriod\";\nvar _cOPEO = \"coolOffPeriodExpiresOn\";\nvar _cOi = \"cidrOptions\";\nvar _cP = \"coipPool\";\nvar _cPC = \"connectPeerConfiguration\";\nvar _cPI = \"coipPoolId\";\nvar _cPS = \"coipPoolSet\";\nvar _cR = \"capacityReservation\";\nvar _cRA = \"capacityReservationArn\";\nvar _cRBRS = \"capacityReservationBillingRequestSet\";\nvar _cRCC = \"clientRootCertificateChain\";\nvar _cREO = \"clientRouteEnforcementOptions\";\nvar _cRFA = \"capacityReservationFleetArn\";\nvar _cRFI = \"capacityReservationFleetId\";\nvar _cRFS = \"capacityReservationFleetSet\";\nvar _cRGS = \"capacityReservationGroupSet\";\nvar _cRI = \"capacityReservationId\";\nvar _cRIa = \"capacityReservationInfo\";\nvar _cRL = \"certificateRevocationList\";\nvar _cRO = \"capacityReservationOptions\";\nvar _cRP = \"capacityReservationPreference\";\nvar _cRRGA = \"capacityReservationResourceGroupArn\";\nvar _cRS = \"capacityReservationSet\";\nvar _cRSa = \"capacityReservationSpecification\";\nvar _cRT = \"capacityReservationTarget\";\nvar _cRa = \"capacityRebalance\";\nvar _cRo = \"componentRegion\";\nvar _cS = \"cidrSet\";\nvar _cSBN = \"certificateS3BucketName\";\nvar _cSFRS = \"currentSpotFleetRequestState\";\nvar _cSOK = \"certificateS3ObjectKey\";\nvar _cSl = \"clientSecret\";\nvar _cSo = \"complianceStatus\";\nvar _cSon = \"configurationState\";\nvar _cSonn = \"connectionStatuses\";\nvar _cSr = \"creditSpecification\";\nvar _cSu = \"currentState\";\nvar _cSur = \"currentStatus\";\nvar _cT = \"clientToken\";\nvar _cTC = \"connectionTrackingConfiguration\";\nvar _cTI = \"conversionTaskId\";\nvar _cTS = \"connectionTrackingSpecification\";\nvar _cTo = \"conversionTasks\";\nvar _cTom = \"completeTime\";\nvar _cTomp = \"completionTime\";\nvar _cTon = \"conversionTask\";\nvar _cTonn = \"connectivityType\";\nvar _cTr = \"createTime\";\nvar _cTre = \"creationTime\";\nvar _cTrea = \"creationTimestamp\";\nvar _cVE = \"clientVpnEndpoint\";\nvar _cVEI = \"clientVpnEndpointId\";\nvar _cVP = \"createVolumePermission\";\nvar _cVTN = \"clientVpnTargetNetworks\";\nvar _cWL = \"cloudWatchLogs\";\nvar _cWLO = \"cloudWatchLogOptions\";\nvar _ca = \"category\";\nvar _ch = \"checksum\";\nvar _ci = \"cidr\";\nvar _co = \"code\";\nvar _con = \"connections\";\nvar _conf = \"configured\";\nvar _confi = \"config\";\nvar _cont = \"context\";\nvar _cor = \"cores\";\nvar _cou = \"count\";\nvar _cp = \"cpu\";\nvar _d = \"destination\";\nvar _dA = \"destinationArn\";\nvar _dAIT = \"denyAllIgwTraffic\";\nvar _dART = \"defaultAssociationRouteTable\";\nvar _dAS = \"destinationAddressSet\";\nvar _dASe = \"deprovisionedAddressSet\";\nvar _dASi = \"disableApiStop\";\nvar _dAT = \"disableApiTermination\";\nvar _dAe = \"destinationAddress\";\nvar _dC = \"destinationCidr\";\nvar _dCA = \"domainCertificateArn\";\nvar _dCAR = \"deliverCrossAccountRole\";\nvar _dCB = \"destinationCidrBlock\";\nvar _dCR = \"destinationCapacityReservation\";\nvar _dCS = \"dhcpConfigurationSet\";\nvar _dCe = \"defaultCores\";\nvar _dE = \"dnsEntry\";\nvar _dEKI = \"dataEncryptionKeyId\";\nvar _dEQCPI = \"defaultEnaQueueCountPerInterface\";\nvar _dES = \"dnsEntrySet\";\nvar _dFA = \"defaultForAz\";\nvar _dHIS = \"dedicatedHostIdSet\";\nvar _dHS = \"dedicatedHostsSupported\";\nvar _dI = \"directoryId\";\nvar _dICB = \"destinationIpv6CidrBlock\";\nvar _dIF = \"diskImageFormat\";\nvar _dIS = \"diskImageSize\";\nvar _dIe = \"deviceIndex\";\nvar _dIes = \"destinationIp\";\nvar _dLEM = \"deliverLogsErrorMessage\";\nvar _dLPA = \"deliverLogsPermissionArn\";\nvar _dLS = \"deliverLogsStatus\";\nvar _dMGM = \"deregisteredMulticastGroupMembers\";\nvar _dMGS = \"deregisteredMulticastGroupSources\";\nvar _dN = \"deviceName\";\nvar _dNCI = \"defaultNetworkCardIndex\";\nvar _dNII = \"deregisteredNetworkInterfaceIds\";\nvar _dNn = \"dnsName\";\nvar _dO = \"dhcpOptions\";\nvar _dOI = \"dhcpOptionsId\";\nvar _dOS = \"dhcpOptionsSet\";\nvar _dOST = \"disconnectOnSessionTimeout\";\nvar _dOT = \"deleteOnTermination\";\nvar _dOe = \"destinationOptions\";\nvar _dOev = \"deviceOptions\";\nvar _dOn = \"dnsOptions\";\nvar _dP = \"deliveryPreference\";\nvar _dPLI = \"destinationPrefixListId\";\nvar _dPLS = \"destinationPrefixListSet\";\nvar _dPR = \"destinationPortRange\";\nvar _dPRS = \"destinationPortRangeSet\";\nvar _dPRT = \"defaultPropagationRouteTable\";\nvar _dPS = \"destinationPortSet\";\nvar _dPe = \"deregistrationProtection\";\nvar _dPes = \"destinationPort\";\nvar _dR = \"discoveryRegion\";\nvar _dRDAI = \"defaultResourceDiscoveryAssociationId\";\nvar _dRDI = \"defaultResourceDiscoveryId\";\nvar _dRIT = \"dnsRecordIpType\";\nvar _dRRV = \"deleteReplacedRootVolume\";\nvar _dRS = \"dataRetentionSupport\";\nvar _dRSa = \"dataResponseSet\";\nvar _dRTA = \"defaultRouteTableAssociation\";\nvar _dRTP = \"defaultRouteTablePropagation\";\nvar _dRy = \"dynamicRouting\";\nvar _dS = \"dnsServer\";\nvar _dSCR = \"deletedSubnetCidrReservation\";\nvar _dSe = \"destinationSet\";\nvar _dSel = \"deliveryStatus\";\nvar _dSeli = \"deliveryStream\";\nvar _dSn = \"dnsSupport\";\nvar _dT = \"deletionTime\";\nvar _dTA = \"dpdTimeoutAction\";\nvar _dTCT = \"defaultTargetCapacityType\";\nvar _dTPC = \"defaultThreadsPerCore\";\nvar _dTPS = \"deviceTrustProviderSet\";\nvar _dTPT = \"deviceTrustProviderType\";\nvar _dTS = \"dpdTimeoutSeconds\";\nvar _dTe = \"deprecationTime\";\nvar _dTel = \"deleteTime\";\nvar _dTele = \"deletionTimestamp\";\nvar _dTi = \"disablingTime\";\nvar _dTis = \"disabledTime\";\nvar _dV = \"destinationVpc\";\nvar _dVC = \"defaultVCpus\";\nvar _dVD = \"deviceValidationDomain\";\nvar _dVN = \"defaultVersionNumber\";\nvar _dVe = \"defaultVersion\";\nvar _de = \"description\";\nvar _dea = \"deadline\";\nvar _def = \"default\";\nvar _det = \"details\";\nvar _dev = \"device\";\nvar _di = \"direction\";\nvar _dis = \"disks\";\nvar _do = \"domain\";\nvar _du = \"duration\";\nvar _e = \"egress\";\nvar _eA = \"eniAddress\";\nvar _eAn = \"enableAcceleration\";\nvar _eAx = \"exclusionsAllowed\";\nvar _eB = \"egressBytes\";\nvar _eC = \"errorCode\";\nvar _eCTP = \"excessCapacityTerminationPolicy\";\nvar _eCn = \"encryptionControl\";\nvar _eCx = \"explanationCode\";\nvar _eD = \"endDate\";\nvar _eDH = \"enableDnsHostnames\";\nvar _eDS = \"enableDnsSupport\";\nvar _eDT = \"endDateType\";\nvar _eDf = \"effectiveDate\";\nvar _eDn = \"enableDns64\";\nvar _eDnd = \"endpointDomain\";\nvar _eDv = \"eventDescription\";\nvar _eEA = \"endpointEniAddress\";\nvar _eEBD = \"ebsEncryptionByDefault\";\nvar _eEI = \"endpointEniId\";\nvar _eFRS = \"egressFilterRuleSet\";\nvar _eGAI = \"elasticGpuAssociationId\";\nvar _eGAS = \"elasticGpuAssociationState\";\nvar _eGASl = \"elasticGpuAssociationSet\";\nvar _eGAT = \"elasticGpuAssociationTime\";\nvar _eGH = \"elasticGpuHealth\";\nvar _eGI = \"elasticGpuId\";\nvar _eGS = \"elasticGpuSet\";\nvar _eGSS = \"elasticGpuSpecificationSet\";\nvar _eGSl = \"elasticGpuState\";\nvar _eGT = \"elasticGpuType\";\nvar _eH = \"endHour\";\nvar _eI = \"exchangeId\";\nvar _eIAA = \"elasticInferenceAcceleratorArn\";\nvar _eIAAI = \"elasticInferenceAcceleratorAssociationId\";\nvar _eIAAS = \"elasticInferenceAcceleratorAssociationState\";\nvar _eIAASl = \"elasticInferenceAcceleratorAssociationSet\";\nvar _eIAAT = \"elasticInferenceAcceleratorAssociationTime\";\nvar _eIAS = \"elasticInferenceAcceleratorSet\";\nvar _eITI = \"exportImageTaskId\";\nvar _eITS = \"exportImageTaskSet\";\nvar _eITSn = \"encryptionInTransitSupported\";\nvar _eITSx = \"excludedInstanceTypeSet\";\nvar _eIb = \"ebsInfo\";\nvar _eIf = \"efaInfo\";\nvar _eIn = \"eniId\";\nvar _eIv = \"eventInformation\";\nvar _eIve = \"eventId\";\nvar _eIx = \"exclusionId\";\nvar _eKKI = \"encryptionKmsKeyId\";\nvar _eLADI = \"enableLniAtDeviceIndex\";\nvar _eLBL = \"elasticLoadBalancerListener\";\nvar _eM = \"errorMessage\";\nvar _eNAUM = \"enableNetworkAddressUsageMetrics\";\nvar _eO = \"ebsOptimized\";\nvar _eOI = \"ebsOptimizedInfo\";\nvar _eOIG = \"egressOnlyInternetGateway\";\nvar _eOIGI = \"egressOnlyInternetGatewayId\";\nvar _eOIGS = \"egressOnlyInternetGatewaySet\";\nvar _eOS = \"ebsOptimizedSupport\";\nvar _eOn = \"enclaveOptions\";\nvar _eP = \"egressPackets\";\nvar _ePG = \"enablePrivateGua\";\nvar _ePS = \"excludePathSet\";\nvar _eQC = \"enaQueueCount\";\nvar _eRNDAAAAR = \"enableResourceNameDnsAAAARecord\";\nvar _eRNDAR = \"enableResourceNameDnsARecord\";\nvar _eS = \"ephemeralStorage\";\nvar _eSE = \"enaSrdEnabled\";\nvar _eSS = \"enaSrdSpecification\";\nvar _eSSn = \"enaSrdSupported\";\nvar _eST = \"eventSubType\";\nvar _eSUE = \"enaSrdUdpEnabled\";\nvar _eSUS = \"enaSrdUdpSpecification\";\nvar _eSf = \"efaSupported\";\nvar _eSn = \"encryptionSupport\";\nvar _eSna = \"enaSupport\";\nvar _eSnt = \"entrySet\";\nvar _eSr = \"errorSet\";\nvar _eSv = \"eventsSet\";\nvar _eSx = \"explanationSet\";\nvar _eT = \"expirationTime\";\nvar _eTI = \"exportTaskId\";\nvar _eTLC = \"enableTunnelLifecycleControl\";\nvar _eTS = \"exportTaskSet\";\nvar _eTSi = \"eipTagSet\";\nvar _eTSx = \"exportToS3\";\nvar _eTn = \"endTime\";\nvar _eTna = \"enablingTime\";\nvar _eTnab = \"enabledTime\";\nvar _eTnd = \"endpointType\";\nvar _eTv = \"eventType\";\nvar _eTx = \"exportTask\";\nvar _eWD = \"endWeekDay\";\nvar _eb = \"ebs\";\nvar _en = \"enabled\";\nvar _enc = \"encrypted\";\nvar _end = \"end\";\nvar _enf = \"enforced\";\nvar _er = \"error\";\nvar _ev = \"event\";\nvar _f = \"format\";\nvar _fA = \"federatedAuthentication\";\nvar _fAD = \"filterAtDestination\";\nvar _fAS = \"filterAtSource\";\nvar _fAi = \"firstAddress\";\nvar _fC = \"fulfilledCapacity\";\nvar _fCRS = \"fleetCapacityReservationSet\";\nvar _fCS = \"findingComponentSet\";\nvar _fCa = \"failureCode\";\nvar _fDN = \"fipsDnsName\";\nvar _fE = \"fipsEnabled\";\nvar _fEQS = \"flexibleEnaQueuesSupport\";\nvar _fF = \"fileFormat\";\nvar _fFCS = \"failedFleetCancellationSet\";\nvar _fFi = \"findingsFound\";\nvar _fI = \"findingId\";\nvar _fIA = \"fpgaImageAttribute\";\nvar _fIAS = \"filterInArnSet\";\nvar _fIGI = \"fpgaImageGlobalId\";\nvar _fII = \"fpgaImageId\";\nvar _fIS = \"fleetInstanceSet\";\nvar _fISp = \"fpgaImageSet\";\nvar _fIl = \"fleetId\";\nvar _fIp = \"fpgaInfo\";\nvar _fLI = \"flowLogId\";\nvar _fLIS = \"flowLogIdSet\";\nvar _fLISa = \"fastLaunchImageSet\";\nvar _fLS = \"flowLogSet\";\nvar _fLSl = \"flowLogStatus\";\nvar _fM = \"failureMessage\";\nvar _fOAS = \"filterOutArnSet\";\nvar _fODC = \"fulfilledOnDemandCapacity\";\nvar _fP = \"fromPort\";\nvar _fPCS = \"forwardPathComponentSet\";\nvar _fPi = \"fixedPrice\";\nvar _fQPDS = \"failedQueuedPurchaseDeletionSet\";\nvar _fR = \"failureReason\";\nvar _fRa = \"fastRestored\";\nvar _fS = \"fleetSet\";\nvar _fSR = \"firewallStatelessRule\";\nvar _fSRS = \"fastSnapshotRestoreSet\";\nvar _fSRSES = \"fastSnapshotRestoreStateErrorSet\";\nvar _fSRi = \"firewallStatefulRule\";\nvar _fSSIB = \"fullSnapshotSizeInBytes\";\nvar _fSST = \"firstSlotStartTime\";\nvar _fSl = \"fleetState\";\nvar _fTE = \"freeTierEligible\";\nvar _fa = \"fault\";\nvar _fp = \"fpgas\";\nvar _fr = \"from\";\nvar _fre = \"frequency\";\nvar _g = \"group\";\nvar _gA = \"groupArn\";\nvar _gAS = \"gatewayAssociationState\";\nvar _gD = \"groupDescription\";\nvar _gI = \"gatewayId\";\nvar _gIA = \"groupIpAddress\";\nvar _gIp = \"gpuInfo\";\nvar _gIr = \"groupId\";\nvar _gK = \"greKey\";\nvar _gLBAS = \"gatewayLoadBalancerArnSet\";\nvar _gLBEI = \"gatewayLoadBalancerEndpointId\";\nvar _gLN = \"groupLongName\";\nvar _gM = \"groupMember\";\nvar _gN = \"groupName\";\nvar _gOI = \"groupOwnerId\";\nvar _gS = \"groupSet\";\nvar _gSr = \"groupSource\";\nvar _gp = \"gpus\";\nvar _gr = \"groups\";\nvar _h = \"hypervisor\";\nvar _hCP = \"hiveCompatiblePartitions\";\nvar _hE = \"httpEndpoint\";\nvar _hI = \"hostId\";\nvar _hIS = \"hostIdSet\";\nvar _hM = \"hostMaintenance\";\nvar _hO = \"hibernationOptions\";\nvar _hP = \"hostProperties\";\nvar _hPI = \"httpProtocolIpv6\";\nvar _hPRHL = \"httpPutResponseHopLimit\";\nvar _hPo = \"hourlyPrice\";\nvar _hR = \"hostRecovery\";\nvar _hRGA = \"hostResourceGroupArn\";\nvar _hRI = \"hostReservationId\";\nvar _hRS = \"historyRecordSet\";\nvar _hRSo = \"hostReservationSet\";\nvar _hS = \"hostSet\";\nvar _hSi = \"hibernationSupported\";\nvar _hT = \"httpTokens\";\nvar _hTo = \"hostnameType\";\nvar _hZI = \"hostedZoneId\";\nvar _i = \"item\";\nvar _iA = \"interfaceAssociation\";\nvar _iAA = \"ipv6AddressAttribute\";\nvar _iAC = \"ipv6AddressCount\";\nvar _iAI = \"inferenceAcceleratorInfo\";\nvar _iAPI = \"ipv4AddressesPerInterface\";\nvar _iAPIp = \"ipv6AddressesPerInterface\";\nvar _iAS = \"interfaceAssociationSet\";\nvar _iASp = \"ipv6AddressesSet\";\nvar _iAT = \"ipAddressType\";\nvar _iATOI = \"includeAllTagsOfInstance\";\nvar _iAm = \"imageAllowed\";\nvar _iAp = \"ipAddress\";\nvar _iApa = \"ipamArn\";\nvar _iApv = \"ipv6Address\";\nvar _iB = \"ingressBytes\";\nvar _iBPAS = \"imageBlockPublicAccessState\";\nvar _iC = \"instanceCount\";\nvar _iCAS = \"ipv6CidrAssociationSet\";\nvar _iCB = \"ipv6CidrBlock\";\nvar _iCBA = \"ipv6CidrBlockAssociation\";\nvar _iCBAS = \"ipv6CidrBlockAssociationSet\";\nvar _iCBS = \"ipv6CidrBlockState\";\nvar _iCBSp = \"ipv6CidrBlockSet\";\nvar _iCBn = \"insideCidrBlocks\";\nvar _iCE = \"instanceConnectEndpoint\";\nvar _iCEA = \"instanceConnectEndpointArn\";\nvar _iCEI = \"instanceConnectEndpointId\";\nvar _iCES = \"instanceConnectEndpointSet\";\nvar _iCS = \"imageCriterionSet\";\nvar _iCSS = \"instanceCreditSpecificationSet\";\nvar _iCn = \"instanceCounts\";\nvar _iCp = \"ipv6Cidr\";\nvar _iD = \"imageData\";\nvar _iDAS = \"ipamDiscoveredAccountSet\";\nvar _iDPAS = \"ipamDiscoveredPublicAddressSet\";\nvar _iDRCS = \"ipamDiscoveredResourceCidrSet\";\nvar _iDs = \"isDefault\";\nvar _iE = \"instanceExport\";\nvar _iEI = \"instanceEventId\";\nvar _iERVT = \"ipamExternalResourceVerificationToken\";\nvar _iERVTA = \"ipamExternalResourceVerificationTokenArn\";\nvar _iERVTI = \"ipamExternalResourceVerificationTokenId\";\nvar _iERVTS = \"ipamExternalResourceVerificationTokenSet\";\nvar _iEW = \"instanceEventWindow\";\nvar _iEWI = \"instanceEventWindowId\";\nvar _iEWS = \"instanceEventWindowState\";\nvar _iEWSn = \"instanceEventWindowSet\";\nvar _iEs = \"isEgress\";\nvar _iF = \"instanceFamily\";\nvar _iFCS = \"instanceFamilyCreditSpecification\";\nvar _iFR = \"iamFleetRole\";\nvar _iFRS = \"ingressFilterRuleSet\";\nvar _iG = \"internetGateway\";\nvar _iGBM = \"internetGatewayBlockMode\";\nvar _iGEM = \"internetGatewayExclusionMode\";\nvar _iGI = \"internetGatewayId\";\nvar _iGS = \"internetGatewaySet\";\nvar _iGSn = \"instanceGenerationSet\";\nvar _iH = \"instanceHealth\";\nvar _iHn = \"inboundHeader\";\nvar _iI = \"instanceId\";\nvar _iIB = \"instanceInterruptionBehavior\";\nvar _iIMS = \"instanceImageMetadataSet\";\nvar _iIP = \"iamInstanceProfile\";\nvar _iIPA = \"iamInstanceProfileAssociation\";\nvar _iIPAS = \"iamInstanceProfileAssociationSet\";\nvar _iIS = \"instanceIdSet\";\nvar _iISB = \"instanceInitiatedShutdownBehavior\";\nvar _iITS = \"importImageTaskSet\";\nvar _iIm = \"importInstance\";\nvar _iIma = \"imageId\";\nvar _iIn = \"instanceIds\";\nvar _iIp = \"ipamId\";\nvar _iL = \"imageLocation\";\nvar _iLn = \"instanceLifecycle\";\nvar _iM = \"imageMetadata\";\nvar _iMC = \"instanceMatchCriteria\";\nvar _iMO = \"instanceMetadataOptions\";\nvar _iMOn = \"instanceMarketOptions\";\nvar _iMT = \"instanceMetadataTags\";\nvar _iMU = \"importManifestUrl\";\nvar _iN = \"ipv6Native\";\nvar _iOA = \"imageOwnerAlias\";\nvar _iOI = \"imageOwnerId\";\nvar _iOIn = \"instanceOwnerId\";\nvar _iOIp = \"ipOwnerId\";\nvar _iOS = \"instanceOwningService\";\nvar _iP = \"instancePort\";\nvar _iPA = \"ipamPoolAllocation\";\nvar _iPAI = \"ipamPoolAllocationId\";\nvar _iPAS = \"ipamPoolAllocationSet\";\nvar _iPAp = \"ipamPoolArn\";\nvar _iPC = \"ipamPoolCidr\";\nvar _iPCI = \"ipamPoolCidrId\";\nvar _iPCS = \"ipamPoolCidrSet\";\nvar _iPCp = \"ipv4PrefixCount\";\nvar _iPCpv = \"ipv6PrefixCount\";\nvar _iPE = \"ipPermissionsEgress\";\nvar _iPI = \"isPrimaryIpv6\";\nvar _iPIp = \"ipamPoolId\";\nvar _iPR = \"isPermanentRestore\";\nvar _iPS = \"ipamPoolSet\";\nvar _iPSm = \"imageProviderSet\";\nvar _iPSp = \"ipv6PoolSet\";\nvar _iPSpr = \"ipPrefixSet\";\nvar _iPSpv = \"ipv4PrefixSet\";\nvar _iPSpvr = \"ipv6PrefixSet\";\nvar _iPTUC = \"instancePoolsToUseCount\";\nvar _iPn = \"instancePlatform\";\nvar _iPng = \"ingressPackets\";\nvar _iPnt = \"interfacePermission\";\nvar _iPnte = \"interfaceProtocol\";\nvar _iPo = \"ioPerformance\";\nvar _iPp = \"ipamPool\";\nvar _iPpe = \"ipPermissions\";\nvar _iPpr = \"ipProtocol\";\nvar _iPpv = \"ipv4Prefix\";\nvar _iPpvo = \"ipv6Pool\";\nvar _iPpvr = \"ipv6Prefix\";\nvar _iPs = \"isPublic\";\nvar _iPsr = \"isPrimary\";\nvar _iR = \"instanceRequirements\";\nvar _iRC = \"ipamResourceCidr\";\nvar _iRCS = \"ipamResourceCidrSet\";\nvar _iRD = \"ipamResourceDiscovery\";\nvar _iRDA = \"ipamResourceDiscoveryAssociation\";\nvar _iRDAA = \"ipamResourceDiscoveryAssociationArn\";\nvar _iRDAI = \"ipamResourceDiscoveryAssociationId\";\nvar _iRDAS = \"ipamResourceDiscoveryAssociationSet\";\nvar _iRDAp = \"ipamResourceDiscoveryArn\";\nvar _iRDI = \"ipamResourceDiscoveryId\";\nvar _iRDR = \"ipamResourceDiscoveryRegion\";\nvar _iRDS = \"ipamResourceDiscoverySet\";\nvar _iRT = \"ingressRouteTable\";\nvar _iRp = \"ipamRegion\";\nvar _iRpa = \"ipRanges\";\nvar _iRpv = \"ipv6Ranges\";\nvar _iS = \"ipamScope\";\nvar _iSA = \"ipamScopeArn\";\nvar _iSI = \"instanceStorageInfo\";\nvar _iSIp = \"ipamScopeId\";\nvar _iSS = \"instanceStatusSet\";\nvar _iSSn = \"instanceStorageSupported\";\nvar _iSSp = \"ipamScopeSet\";\nvar _iST = \"ipamScopeType\";\nvar _iSTS = \"importSnapshotTaskSet\";\nvar _iSg = \"igmpv2Support\";\nvar _iSm = \"imagesSet\";\nvar _iSma = \"imageState\";\nvar _iSmag = \"imageSet\";\nvar _iSmd = \"imdsSupport\";\nvar _iSmp = \"impairedSince\";\nvar _iSn = \"instancesSet\";\nvar _iSns = \"instanceSet\";\nvar _iSnst = \"instanceState\";\nvar _iSnsta = \"instanceStatus\";\nvar _iSp = \"ipamSet\";\nvar _iSpo = \"ipSource\";\nvar _iSpv = \"ipv6Supported\";\nvar _iSpvu = \"ipv6Support\";\nvar _iT = \"instanceType\";\nvar _iTA = \"instanceTagAttribute\";\nvar _iTC = \"icmpTypeCode\";\nvar _iTCn = \"includeTrustContext\";\nvar _iTI = \"importTaskId\";\nvar _iTKS = \"instanceTagKeySet\";\nvar _iTOS = \"instanceTypeOfferingSet\";\nvar _iTS = \"instanceTypeSet\";\nvar _iTSS = \"instanceTypeSpecificationSet\";\nvar _iTm = \"imageType\";\nvar _iTn = \"instanceTypes\";\nvar _iTns = \"instanceTenancy\";\nvar _iTnt = \"interfaceType\";\nvar _iU = \"ipUsage\";\nvar _iUS = \"instanceUsageSet\";\nvar _iV = \"importVolume\";\nvar _iVE = \"isValidExchange\";\nvar _iVS = \"ikeVersionSet\";\nvar _id = \"id\";\nvar _im = \"image\";\nvar _in = \"instance\";\nvar _ins = \"instances\";\nvar _int = \"interval\";\nvar _io = \"iops\";\nvar _ip = \"ipam\";\nvar _is = \"issuer\";\nvar _k = \"key\";\nvar _kDF = \"kinesisDataFirehose\";\nvar _kF = \"keyFormat\";\nvar _kFe = \"keyFingerprint\";\nvar _kI = \"kernelId\";\nvar _kKA = \"kmsKeyArn\";\nvar _kKI = \"kmsKeyId\";\nvar _kM = \"keyMaterial\";\nvar _kN = \"keyName\";\nvar _kPI = \"keyPairId\";\nvar _kS = \"keySet\";\nvar _kT = \"keyType\";\nvar _kV = \"keyValue\";\nvar _ke = \"kernel\";\nvar _key = \"keyword\";\nvar _l = \"lifecycle\";\nvar _lA = \"localAddress\";\nvar _lADT = \"lastAttemptedDiscoveryTime\";\nvar _lAZ = \"launchedAvailabilityZone\";\nvar _lAa = \"lastAddress\";\nvar _lBA = \"loadBalancerArn\";\nvar _lBAE = \"localBgpAsnExtended\";\nvar _lBAo = \"localBgpAsn\";\nvar _lBC = \"loadBalancersConfig\";\nvar _lBLP = \"loadBalancerListenerPort\";\nvar _lBO = \"loadBalancerOptions\";\nvar _lBP = \"loadBalancerPort\";\nvar _lBS = \"loadBalancerSet\";\nvar _lBT = \"loadBalancerTarget\";\nvar _lBTG = \"loadBalancerTargetGroup\";\nvar _lBTGS = \"loadBalancerTargetGroupSet\";\nvar _lBTP = \"loadBalancerTargetPort\";\nvar _lC = \"loggingConfiguration\";\nvar _lCA = \"licenseConfigurationArn\";\nvar _lCO = \"lockCreatedOn\";\nvar _lCS = \"loggingConfigurationSet\";\nvar _lD = \"logDestination\";\nvar _lDST = \"lockDurationStartTime\";\nvar _lDT = \"logDestinationType\";\nvar _lDo = \"lockDuration\";\nvar _lE = \"logEnabled\";\nvar _lEO = \"lockExpiresOn\";\nvar _lET = \"lastEvaluatedTime\";\nvar _lEa = \"lastError\";\nvar _lF = \"logFormat\";\nvar _lFA = \"lambdaFunctionArn\";\nvar _lG = \"launchGroup\";\nvar _lGA = \"logGroupArn\";\nvar _lGI = \"localGatewayId\";\nvar _lGN = \"logGroupName\";\nvar _lGRT = \"localGatewayRouteTable\";\nvar _lGRTA = \"localGatewayRouteTableArn\";\nvar _lGRTI = \"localGatewayRouteTableId\";\nvar _lGRTS = \"localGatewayRouteTableSet\";\nvar _lGRTVA = \"localGatewayRouteTableVpcAssociation\";\nvar _lGRTVAI = \"localGatewayRouteTableVpcAssociationId\";\nvar _lGRTVAS = \"localGatewayRouteTableVpcAssociationSet\";\nvar _lGRTVIGA = \"localGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _lGRTVIGAI = \"localGatewayRouteTableVirtualInterfaceGroupAssociationId\";\nvar _lGRTVIGAS = \"localGatewayRouteTableVirtualInterfaceGroupAssociationSet\";\nvar _lGS = \"localGatewaySet\";\nvar _lGVI = \"localGatewayVirtualInterface\";\nvar _lGVIA = \"localGatewayVirtualInterfaceArn\";\nvar _lGVIG = \"localGatewayVirtualInterfaceGroup\";\nvar _lGVIGA = \"localGatewayVirtualInterfaceGroupArn\";\nvar _lGVIGI = \"localGatewayVirtualInterfaceGroupId\";\nvar _lGVIGS = \"localGatewayVirtualInterfaceGroupSet\";\nvar _lGVII = \"localGatewayVirtualInterfaceId\";\nvar _lGVIIS = \"localGatewayVirtualInterfaceIdSet\";\nvar _lGVIS = \"localGatewayVirtualInterfaceSet\";\nvar _lGo = \"logGroup\";\nvar _lINC = \"localIpv4NetworkCidr\";\nvar _lINCo = \"localIpv6NetworkCidr\";\nvar _lLT = \"lastLaunchedTime\";\nvar _lMA = \"lastMaintenanceApplied\";\nvar _lO = \"logOptions\";\nvar _lOF = \"logOutputFormat\";\nvar _lP = \"loadPermissions\";\nvar _lPa = \"launchPermission\";\nvar _lS = \"licenseSpecifications\";\nvar _lSC = \"lastStatusChange\";\nvar _lSDT = \"lastSuccessfulDiscoveryTime\";\nvar _lSTS = \"localStorageTypeSet\";\nvar _lSa = \"launchSpecifications\";\nvar _lSau = \"launchSpecification\";\nvar _lSi = \"licenseSet\";\nvar _lSo = \"localStorage\";\nvar _lSoc = \"lockState\";\nvar _lT = \"launchTemplate\";\nvar _lTAO = \"launchTemplateAndOverrides\";\nvar _lTC = \"launchTemplateConfigs\";\nvar _lTD = \"launchTemplateData\";\nvar _lTI = \"launchTemplateId\";\nvar _lTN = \"launchTemplateName\";\nvar _lTOS = \"lastTieringOperationStatus\";\nvar _lTOSD = \"lastTieringOperationStatusDetail\";\nvar _lTP = \"lastTieringProgress\";\nvar _lTS = \"launchTemplateSpecification\";\nvar _lTST = \"lastTieringStartTime\";\nvar _lTV = \"launchTemplateVersion\";\nvar _lTVS = \"launchTemplateVersionSet\";\nvar _lTa = \"launchTemplates\";\nvar _lTau = \"launchTime\";\nvar _lTi = \"licenseType\";\nvar _lTo = \"locationType\";\nvar _lUT = \"lastUpdateTime\";\nvar _lUTa = \"lastUpdatedTime\";\nvar _lUTas = \"lastUpdateTimestamp\";\nvar _lV = \"logVersion\";\nvar _lVN = \"latestVersionNumber\";\nvar _lo = \"location\";\nvar _loc = \"locale\";\nvar _m = \"min\";\nvar _mA = \"mutualAuthentication\";\nvar _mAAA = \"maintenanceAutoAppliedAfter\";\nvar _mAE = \"multiAttachEnabled\";\nvar _mAI = \"maxAggregationInterval\";\nvar _mAIe = \"mediaAcceleratorInfo\";\nvar _mASS = \"movingAddressStatusSet\";\nvar _mAa = \"macAddress\";\nvar _mAe = \"meteredAccount\";\nvar _mB = \"managedBy\";\nvar _mBIM = \"maximumBandwidthInMbps\";\nvar _mC = \"missingComponent\";\nvar _mCOIOL = \"mapCustomerOwnedIpOnLaunch\";\nvar _mD = \"maintenanceDetails\";\nvar _mDA = \"multicastDomainAssociations\";\nvar _mDK = \"metaDataKey\";\nvar _mDV = \"metaDataValue\";\nvar _mDe = \"metaData\";\nvar _mE = \"maxEntries\";\nvar _mEI = \"maximumEfaInterfaces\";\nvar _mEM = \"managedExceptionMessage\";\nvar _mEQC = \"maximumEnaQueueCount\";\nvar _mEQCPI = \"maximumEnaQueueCountPerInterface\";\nvar _mFV = \"mostFrequentValue\";\nvar _mG = \"multicastGroups\";\nvar _mGBPVC = \"memoryGiBPerVCpu\";\nvar _mHS = \"macHostSet\";\nvar _mI = \"maximumIops\";\nvar _mIe = \"memoryInfo\";\nvar _mMB = \"memoryMiB\";\nvar _mNC = \"maximumNetworkCards\";\nvar _mNI = \"maximumNetworkInterfaces\";\nvar _mO = \"metadataOptions\";\nvar _mOSLRG = \"memberOfServiceLinkedResourceGroup\";\nvar _mOSLSVS = \"macOSLatestSupportedVersionSet\";\nvar _mOa = \"maintenanceOptions\";\nvar _mP = \"maxPrice\";\nvar _mPIOL = \"mapPublicIpOnLaunch\";\nvar _mPL = \"maxParallelLaunches\";\nvar _mPS = \"metricPointSet\";\nvar _mPSa = \"matchPathSet\";\nvar _mR = \"maxResults\";\nvar _mRS = \"modificationResultSet\";\nvar _mS = \"messageSet\";\nvar _mSPAPOOODP = \"maxSpotPriceAsPercentageOfOptimalOnDemandPrice\";\nvar _mSa = \"managementState\";\nvar _mSai = \"maintenanceStrategies\";\nvar _mSo = \"moveStatus\";\nvar _mSod = \"modificationState\";\nvar _mSu = \"multicastSupport\";\nvar _mT = \"marketType\";\nvar _mTC = \"minTargetCapacity\";\nvar _mTDID = \"maxTermDurationInDays\";\nvar _mTDIDi = \"minTermDurationInDays\";\nvar _mTIMB = \"maximumThroughputInMBps\";\nvar _mTP = \"maxTotalPrice\";\nvar _mTe = \"memberType\";\nvar _mVE = \"managesVpcEndpoints\";\nvar _ma = \"max\";\nvar _mai = \"main\";\nvar _man = \"manufacturer\";\nvar _mana = \"managed\";\nvar _mar = \"marketplace\";\nvar _me = \"message\";\nvar _med = \"med\";\nvar _mem = \"member\";\nvar _met = \"metric\";\nvar _mo = \"monitoring\";\nvar _mod = \"mode\";\nvar _n = \"name\";\nvar _nA = \"networkAcl\";\nvar _nAAI = \"networkAclAssociationId\";\nvar _nAI = \"networkAclId\";\nvar _nAIe = \"newAssociationId\";\nvar _nAOO = \"nativeApplicationOidcOptions\";\nvar _nAS = \"networkAclSet\";\nvar _nAo = \"notAfter\";\nvar _nB = \"notBefore\";\nvar _nBD = \"notBeforeDeadline\";\nvar _nBG = \"networkBorderGroup\";\nvar _nBGe = \"networkBandwidthGbps\";\nvar _nC = \"networkCards\";\nvar _nCI = \"networkCardIndex\";\nvar _nD = \"noDevice\";\nvar _nDe = \"neuronDevices\";\nvar _nES = \"nitroEnclavesSupport\";\nvar _nG = \"natGateway\";\nvar _nGAS = \"natGatewayAddressSet\";\nvar _nGI = \"natGatewayId\";\nvar _nGS = \"natGatewaySet\";\nvar _nHI = \"nextHopIp\";\nvar _nI = \"networkId\";\nvar _nIA = \"networkInsightsAnalysis\";\nvar _nIAA = \"networkInsightsAnalysisArn\";\nvar _nIAI = \"networkInsightsAnalysisId\";\nvar _nIAS = \"networkInsightsAccessScope\";\nvar _nIASA = \"networkInsightsAccessScopeArn\";\nvar _nIASAA = \"networkInsightsAccessScopeAnalysisArn\";\nvar _nIASAI = \"networkInsightsAccessScopeAnalysisId\";\nvar _nIASAS = \"networkInsightsAccessScopeAnalysisSet\";\nvar _nIASAe = \"networkInsightsAccessScopeAnalysis\";\nvar _nIASC = \"networkInsightsAccessScopeContent\";\nvar _nIASI = \"networkInsightsAccessScopeId\";\nvar _nIASS = \"networkInsightsAccessScopeSet\";\nvar _nIASe = \"networkInsightsAnalysisSet\";\nvar _nIASet = \"networkInterfaceAttachmentStatus\";\nvar _nIC = \"networkInterfaceCount\";\nvar _nID = \"networkInterfaceDescription\";\nvar _nII = \"networkInterfaceId\";\nvar _nIIS = \"networkInterfaceIdSet\";\nvar _nIO = \"networkInterfaceOptions\";\nvar _nIOI = \"networkInterfaceOwnerId\";\nvar _nIP = \"networkInsightsPath\";\nvar _nIPA = \"networkInsightsPathArn\";\nvar _nIPI = \"networkInsightsPathId\";\nvar _nIPIe = \"networkInterfacePermissionId\";\nvar _nIPS = \"networkInsightsPathSet\";\nvar _nIPe = \"networkInterfacePermissions\";\nvar _nIS = \"networkInterfaceSet\";\nvar _nIe = \"networkInterface\";\nvar _nIet = \"networkInfo\";\nvar _nIeu = \"neuronInfo\";\nvar _nL = \"netmaskLength\";\nvar _nLBA = \"networkLoadBalancerArn\";\nvar _nLBAS = \"networkLoadBalancerArnSet\";\nvar _nNS = \"networkNodeSet\";\nvar _nOA = \"numberOfAccounts\";\nvar _nOFA = \"numberOfFailedAccounts\";\nvar _nOMA = \"numberOfMatchedAccounts\";\nvar _nOUA = \"numberOfUnmatchedAccounts\";\nvar _nP = \"networkPerformance\";\nvar _nPF = \"networkPathFound\";\nvar _nPO = \"networkPerformanceOptions\";\nvar _nPe = \"networkPlatform\";\nvar _nS = \"nvmeSupport\";\nvar _nSS = \"networkServiceSet\";\nvar _nSST = \"nextSlotStartTime\";\nvar _nSa = \"nameserverSet\";\nvar _nT = \"networkType\";\nvar _nTI = \"nitroTpmInfo\";\nvar _nTS = \"nitroTpmSupport\";\nvar _nTe = \"nextToken\";\nvar _o = \"origin\";\nvar _oA = \"outpostArn\";\nvar _oAr = \"organizationArn\";\nvar _oAw = \"ownerAlias\";\nvar _oC = \"offeringClass\";\nvar _oDAS = \"onDemandAllocationStrategy\";\nvar _oDFC = \"onDemandFulfilledCapacity\";\nvar _oDMPPOLP = \"onDemandMaxPricePercentageOverLowestPrice\";\nvar _oDMTP = \"onDemandMaxTotalPrice\";\nvar _oDO = \"onDemandOptions\";\nvar _oDS = \"occurrenceDaySet\";\nvar _oDTC = \"onDemandTargetCapacity\";\nvar _oEP = \"organizationsEntityPath\";\nvar _oH = \"outboundHeader\";\nvar _oI = \"ownerId\";\nvar _oIA = \"outsideIpAddress\";\nvar _oIAT = \"outsideIpAddressType\";\nvar _oIS = \"optInStatus\";\nvar _oIf = \"offeringId\";\nvar _oIr = \"originalIops\";\nvar _oIu = \"outpostId\";\nvar _oK = \"objectKey\";\nvar _oLI = \"outpostLagId\";\nvar _oLS = \"outpostLagSet\";\nvar _oMAE = \"originalMultiAttachEnabled\";\nvar _oO = \"oidcOptions\";\nvar _oRIWEA = \"outputReservedInstancesWillExpireAt\";\nvar _oRS = \"operatingRegionSet\";\nvar _oRTE = \"occurrenceRelativeToEnd\";\nvar _oS = \"offeringSet\";\nvar _oST = \"oldestSampleTime\";\nvar _oSr = \"originalSize\";\nvar _oSv = \"overlapStatus\";\nvar _oT = \"optimizingTime\";\nvar _oTf = \"offeringType\";\nvar _oTr = \"originalThroughput\";\nvar _oU = \"occurrenceUnit\";\nvar _oUA = \"organizationalUnitArn\";\nvar _oUES = \"organizationalUnitExclusionSet\";\nvar _oUI = \"organizationalUnitId\";\nvar _oVCS = \"openVpnConfigurationSet\";\nvar _oVT = \"originalVolumeType\";\nvar _op = \"operator\";\nvar _opt = \"options\";\nvar _ou = \"output\";\nvar _ov = \"overrides\";\nvar _ow = \"owner\";\nvar _p = \"principal\";\nvar _pA = \"poolArn\";\nvar _pAI = \"peeringAttachmentId\";\nvar _pAR = \"poolAddressRange\";\nvar _pARS = \"poolAddressRangeSet\";\nvar _pAe = \"peerAddress\";\nvar _pAee = \"peerAsn\";\nvar _pAu = \"publiclyAdvertisable\";\nvar _pB = \"provisionedBandwidth\";\nvar _pBA = \"peerBgpAsn\";\nvar _pBAE = \"peerBgpAsnExtended\";\nvar _pBIG = \"peakBandwidthInGbps\";\nvar _pC = \"productCodes\";\nvar _pCB = \"poolCidrBlock\";\nvar _pCBS = \"poolCidrBlockSet\";\nvar _pCI = \"preserveClientIp\";\nvar _pCNI = \"peerCoreNetworkId\";\nvar _pCS = \"poolCidrSet\";\nvar _pCSS = \"postureComplianceStatusSet\";\nvar _pCa = \"partitionCount\";\nvar _pCo = \"poolCount\";\nvar _pCr = \"productCode\";\nvar _pD = \"passwordData\";\nvar _pDE = \"privateDnsEnabled\";\nvar _pDEr = \"privateDnsEntry\";\nvar _pDHGNS = \"phase1DHGroupNumberSet\";\nvar _pDHGNSh = \"phase2DHGroupNumberSet\";\nvar _pDN = \"privateDnsName\";\nvar _pDNC = \"privateDnsNameConfiguration\";\nvar _pDNO = \"privateDnsNameOptions\";\nvar _pDNOOL = \"privateDnsNameOptionsOnLaunch\";\nvar _pDNS = \"privateDnsNameSet\";\nvar _pDNVS = \"privateDnsNameVerificationState\";\nvar _pDNu = \"publicDnsName\";\nvar _pDOFIRE = \"privateDnsOnlyForInboundResolverEndpoint\";\nvar _pDRTI = \"propagationDefaultRouteTableId\";\nvar _pDS = \"pricingDetailsSet\";\nvar _pDSI = \"publicDefaultScopeId\";\nvar _pDSIr = \"privateDefaultScopeId\";\nvar _pDa = \"paymentDue\";\nvar _pDl = \"platformDetails\";\nvar _pDo = \"policyDocument\";\nvar _pDoo = \"poolDepth\";\nvar _pDr = \"productDescription\";\nvar _pE = \"policyEnabled\";\nvar _pEAS = \"phase1EncryptionAlgorithmSet\";\nvar _pEASh = \"phase2EncryptionAlgorithmSet\";\nvar _pEk = \"pkceEnabled\";\nvar _pF = \"packetField\";\nvar _pFS = \"previousFleetState\";\nvar _pG = \"placementGroup\";\nvar _pGA = \"placementGroupArn\";\nvar _pGI = \"placementGroupInfo\";\nvar _pGS = \"placementGroupSet\";\nvar _pHP = \"perHourPartition\";\nvar _pHS = \"packetHeaderStatement\";\nvar _pI = \"publicIp\";\nvar _pIA = \"privateIpAddress\";\nvar _pIAS = \"privateIpAddressesSet\";\nvar _pIASh = \"phase1IntegrityAlgorithmSet\";\nvar _pIASha = \"phase2IntegrityAlgorithmSet\";\nvar _pIP = \"publicIpv4Pool\";\nvar _pIPI = \"publicIpv4PoolId\";\nvar _pIPS = \"publicIpv4PoolSet\";\nvar _pIS = \"publicIpSource\";\nvar _pIc = \"pciId\";\nvar _pIo = \"poolId\";\nvar _pIr = \"processorInfo\";\nvar _pIri = \"primaryIpv6\";\nvar _pIriv = \"privateIp\";\nvar _pK = \"publicKey\";\nvar _pL = \"prefixList\";\nvar _pLA = \"prefixListArn\";\nvar _pLAS = \"prefixListAssociationSet\";\nvar _pLD = \"peerLivenessDetection\";\nvar _pLI = \"prefixListId\";\nvar _pLIr = \"prefixListIds\";\nvar _pLN = \"prefixListName\";\nvar _pLOI = \"prefixListOwnerId\";\nvar _pLS = \"prefixListSet\";\nvar _pLSh = \"phase1LifetimeSeconds\";\nvar _pLSha = \"phase2LifetimeSeconds\";\nvar _pLa = \"packetLength\";\nvar _pM = \"pendingMaintenance\";\nvar _pN = \"partitionNumber\";\nvar _pO = \"paymentOption\";\nvar _pOe = \"peeringOptions\";\nvar _pP = \"progressPercentage\";\nvar _pR = \"ptrRecord\";\nvar _pRD = \"persistRoutesDuration\";\nvar _pRN = \"policyRuleNumber\";\nvar _pRNo = \"policyReferenceName\";\nvar _pRS = \"portRangeSet\";\nvar _pRSe = \"persistRoutesState\";\nvar _pRU = \"ptrRecordUpdate\";\nvar _pRa = \"payerResponsibility\";\nvar _pRo = \"portRange\";\nvar _pRol = \"policyRule\";\nvar _pS = \"previousState\";\nvar _pSET = \"previousSlotEndTime\";\nvar _pSFRS = \"previousSpotFleetRequestState\";\nvar _pSK = \"preSharedKey\";\nvar _pSKE = \"publicSigningKeyEndpoint\";\nvar _pSKU = \"publicSigningKeyUrl\";\nvar _pSe = \"permissionState\";\nvar _pSee = \"peeringStatus\";\nvar _pSh = \"phcSupport\";\nvar _pSr = \"principalSet\";\nvar _pSre = \"previousStatus\";\nvar _pSri = \"priceSchedules\";\nvar _pSro = \"protocolSet\";\nvar _pT = \"principalType\";\nvar _pTGI = \"peerTransitGatewayId\";\nvar _pTr = \"provisionTime\";\nvar _pTu = \"purchaseToken\";\nvar _pVI = \"primaryVpcId\";\nvar _pVS = \"propagatingVgwSet\";\nvar _pZI = \"parentZoneId\";\nvar _pZN = \"parentZoneName\";\nvar _pe = \"period\";\nvar _per = \"permission\";\nvar _pl = \"platform\";\nvar _pla = \"placement\";\nvar _po = \"port\";\nvar _pr = \"protocol\";\nvar _pre = \"prefix\";\nvar _pri = \"priority\";\nvar _pric = \"price\";\nvar _prim = \"primary\";\nvar _pro = \"progress\";\nvar _prop = \"propagation\";\nvar _prov = \"provisioned\";\nvar _pu = \"public\";\nvar _pur = \"purchase\";\nvar _r = \"return\";\nvar _rA = \"ruleAction\";\nvar _rAE = \"remoteAccessEnabled\";\nvar _rAe = \"resourceArn\";\nvar _rB = \"requestedBy\";\nvar _rBET = \"recycleBinEnterTime\";\nvar _rBETe = \"recycleBinExitTime\";\nvar _rC = \"returnCode\";\nvar _rCA = \"resourceConfigurationArn\";\nvar _rCGA = \"resourceConfigurationGroupArn\";\nvar _rCS = \"resourceComplianceStatus\";\nvar _rCe = \"resourceCidr\";\nvar _rCec = \"recurringCharges\";\nvar _rD = \"restoreDuration\";\nvar _rDAC = \"resourceDiscoveryAssociationCount\";\nvar _rDCA = \"rdsDbClusterArn\";\nvar _rDI = \"ramDiskId\";\nvar _rDIA = \"rdsDbInstanceArn\";\nvar _rDN = \"rootDeviceName\";\nvar _rDPA = \"rdsDbProxyArn\";\nvar _rDS = \"resourceDiscoveryStatus\";\nvar _rDT = \"rootDeviceType\";\nvar _rE = \"responseError\";\nvar _rET = \"restoreExpiryTime\";\nvar _rEd = \"rdsEndpoint\";\nvar _rEe = \"regionEndpoint\";\nvar _rEes = \"resourceExclusions\";\nvar _rFP = \"rekeyFuzzPercentage\";\nvar _rGA = \"ruleGroupArn\";\nvar _rGI = \"referencedGroupId\";\nvar _rGIe = \"referencedGroupInfo\";\nvar _rGROPS = \"ruleGroupRuleOptionsPairSet\";\nvar _rGT = \"ruleGroupType\";\nvar _rGTPS = \"ruleGroupTypePairSet\";\nvar _rHS = \"requireHibernateSupport\";\nvar _rI = \"reportId\";\nvar _rIDS = \"routeInstallationDetailSet\";\nvar _rII = \"reservedInstancesId\";\nvar _rIIe = \"reservedInstanceId\";\nvar _rILI = \"reservedInstancesListingId\";\nvar _rILS = \"reservedInstancesListingsSet\";\nvar _rIMI = \"reservedInstancesModificationId\";\nvar _rIMS = \"reservedInstancesModificationsSet\";\nvar _rINC = \"remoteIpv4NetworkCidr\";\nvar _rINCe = \"remoteIpv6NetworkCidr\";\nvar _rIOI = \"reservedInstancesOfferingId\";\nvar _rIOS = \"reservedInstancesOfferingsSet\";\nvar _rIS = \"reservedInstancesSet\";\nvar _rISR = \"routeInstallationStatusReason\";\nvar _rISo = \"routeInstallationStatus\";\nvar _rIVR = \"reservedInstanceValueRollup\";\nvar _rIVS = \"reservedInstanceValueSet\";\nvar _rIa = \"ramdiskId\";\nvar _rIe = \"regionInfo\";\nvar _rIeq = \"requesterId\";\nvar _rIes = \"resourceId\";\nvar _rIese = \"reservationId\";\nvar _rM = \"requesterManaged\";\nvar _rMGM = \"registeredMulticastGroupMembers\";\nvar _rMGS = \"registeredMulticastGroupSources\";\nvar _rMTS = \"rekeyMarginTimeSeconds\";\nvar _rN = \"ruleNumber\";\nvar _rNII = \"registeredNetworkInterfaceIds\";\nvar _rNe = \"regionName\";\nvar _rNes = \"resourceName\";\nvar _rNo = \"roleName\";\nvar _rO = \"resourceOwner\";\nvar _rOI = \"resourceOwnerId\";\nvar _rOS = \"ruleOptionSet\";\nvar _rOSe = \"resourceOverlapStatus\";\nvar _rOd = \"rdsOptions\";\nvar _rOo = \"routeOrigin\";\nvar _rPCO = \"requesterPeeringConnectionOptions\";\nvar _rPCS = \"returnPathComponentSet\";\nvar _rR = \"resourceRegion\";\nvar _rRVT = \"replaceRootVolumeTask\";\nvar _rRVTI = \"replaceRootVolumeTaskId\";\nvar _rRVTS = \"replaceRootVolumeTaskSet\";\nvar _rS = \"referenceSet\";\nvar _rSA = \"routeServerAssociation\";\nvar _rSAS = \"routeServerAssociationSet\";\nvar _rSE = \"routeServerEndpoint\";\nvar _rSEI = \"routeServerEndpointId\";\nvar _rSES = \"routeServerEndpointSet\";\nvar _rSGRS = \"revokedSecurityGroupRuleSet\";\nvar _rSI = \"routeServerId\";\nvar _rSP = \"routeServerPeer\";\nvar _rSPI = \"routeServerPeerId\";\nvar _rSPS = \"routeServerPeerSet\";\nvar _rSPSo = \"routeServerPropagationSet\";\nvar _rSPo = \"routeServerPropagation\";\nvar _rSS = \"regionalSummarySet\";\nvar _rSSo = \"routeServerSet\";\nvar _rST = \"restoreStartTime\";\nvar _rSe = \"reportSet\";\nvar _rSep = \"replacementStrategy\";\nvar _rSes = \"reservationSet\";\nvar _rSeso = \"resourceStatement\";\nvar _rSesou = \"resourceSet\";\nvar _rSo = \"routeServer\";\nvar _rSou = \"routeSet\";\nvar _rSout = \"routeStatus\";\nvar _rT = \"reservationType\";\nvar _rTAI = \"routeTableAssociationId\";\nvar _rTI = \"routeTableId\";\nvar _rTIS = \"routeTableIdSet\";\nvar _rTIe = \"requesterTgwInfo\";\nvar _rTR = \"routeTableRoute\";\nvar _rTS = \"routeTableSet\";\nvar _rTSe = \"resourceTagSet\";\nvar _rTSes = \"resourceTypeSet\";\nvar _rTV = \"remainingTotalValue\";\nvar _rTe = \"resourceType\";\nvar _rTel = \"releaseTime\";\nvar _rTeq = \"requestTime\";\nvar _rTo = \"routeTable\";\nvar _rUI = \"replaceUnhealthyInstances\";\nvar _rUV = \"remainingUpfrontValue\";\nvar _rV = \"returnValue\";\nvar _rVI = \"referencingVpcId\";\nvar _rVIe = \"requesterVpcInfo\";\nvar _rVe = \"reservationValue\";\nvar _rWS = \"replayWindowSize\";\nvar _ra = \"ramdisk\";\nvar _re = \"region\";\nvar _rea = \"reason\";\nvar _rec = \"recurrence\";\nvar _req = \"requested\";\nvar _res = \"result\";\nvar _reso = \"resource\";\nvar _ro = \"route\";\nvar _rou = \"routes\";\nvar _s = \"source\";\nvar _sA = \"sourceArn\";\nvar _sAS = \"sourceAddressSet\";\nvar _sASu = \"suggestedAccountSet\";\nvar _sAZ = \"singleAvailabilityZone\";\nvar _sAo = \"sourceAddress\";\nvar _sAt = \"startupAction\";\nvar _sAu = \"supportedArchitectures\";\nvar _sAub = \"subnetArn\";\nvar _sB = \"s3Bucket\";\nvar _sBM = \"supportedBootModes\";\nvar _sC = \"serviceConfiguration\";\nvar _sCA = \"serverCertificateArn\";\nvar _sCAE = \"serialConsoleAccessEnabled\";\nvar _sCB = \"sourceCidrBlock\";\nvar _sCR = \"sourceCapacityReservation\";\nvar _sCRI = \"subnetCidrReservationId\";\nvar _sCRu = \"subnetCidrReservation\";\nvar _sCS = \"serviceConfigurationSet\";\nvar _sCSIG = \"sustainedClockSpeedInGhz\";\nvar _sCc = \"scopeCount\";\nvar _sCn = \"snapshotConfiguration\";\nvar _sD = \"startDate\";\nvar _sDC = \"sourceDestCheck\";\nvar _sDIH = \"slotDurationInHours\";\nvar _sDLTVS = \"successfullyDeletedLaunchTemplateVersionSet\";\nvar _sDS = \"spotDatafeedSubscription\";\nvar _sDSe = \"serviceDetailSet\";\nvar _sDSn = \"snapshotDetailSet\";\nvar _sDp = \"spreadDomain\";\nvar _sDu = \"subDomain\";\nvar _sEL = \"s3ExportLocation\";\nvar _sET = \"sampledEndTime\";\nvar _sF = \"supportedFeatures\";\nvar _sFCS = \"successfulFleetCancellationSet\";\nvar _sFDS = \"successfulFleetDeletionSet\";\nvar _sFRC = \"spotFleetRequestConfig\";\nvar _sFRCS = \"spotFleetRequestConfigSet\";\nvar _sFRI = \"spotFleetRequestId\";\nvar _sFRS = \"successfulFleetRequestSet\";\nvar _sFRSp = \"spotFleetRequestState\";\nvar _sG = \"securityGroup\";\nvar _sGA = \"securityGroupArn\";\nvar _sGFVS = \"securityGroupForVpcSet\";\nvar _sGI = \"securityGroupId\";\nvar _sGIS = \"securityGroupIdSet\";\nvar _sGIe = \"securityGroupIds\";\nvar _sGIec = \"securityGroupInfo\";\nvar _sGR = \"securityGroupRule\";\nvar _sGRA = \"securityGroupRuleArn\";\nvar _sGRI = \"securityGroupRuleId\";\nvar _sGRS = \"securityGroupRuleSet\";\nvar _sGRSe = \"securityGroupReferenceSet\";\nvar _sGRSec = \"securityGroupReferencingSupport\";\nvar _sGS = \"securityGroupSet\";\nvar _sGVAS = \"securityGroupVpcAssociationSet\";\nvar _sGe = \"securityGroups\";\nvar _sH = \"startHour\";\nvar _sI = \"serviceId\";\nvar _sIAS = \"scheduledInstanceAvailabilitySet\";\nvar _sIATS = \"supportedIpAddressTypeSet\";\nvar _sICRS = \"subnetIpv4CidrReservationSet\";\nvar _sICRSu = \"subnetIpv6CidrReservationSet\";\nvar _sICSS = \"successfulInstanceCreditSpecificationSet\";\nvar _sIGB = \"sizeInGB\";\nvar _sII = \"sourceInstanceId\";\nvar _sIIc = \"scheduledInstanceId\";\nvar _sIIo = \"sourceImageId\";\nvar _sIMB = \"sizeInMiB\";\nvar _sIP = \"staleIpPermissions\";\nvar _sIPE = \"staleIpPermissionsEgress\";\nvar _sIPI = \"sourceIpamPoolId\";\nvar _sIR = \"sourceImageRegion\";\nvar _sIRI = \"spotInstanceRequestId\";\nvar _sIRS = \"spotInstanceRequestSet\";\nvar _sIS = \"scheduledInstanceSet\";\nvar _sISu = \"subnetIdSet\";\nvar _sIT = \"spotInstanceType\";\nvar _sITRS = \"storeImageTaskResultSet\";\nvar _sITi = \"singleInstanceType\";\nvar _sIn = \"snapshotId\";\nvar _sIo = \"sourceIp\";\nvar _sIu = \"subnetId\";\nvar _sIub = \"subnetIds\";\nvar _sK = \"s3Key\";\nvar _sKo = \"s3objectKey\";\nvar _sL = \"s3Location\";\nvar _sLVIA = \"serviceLinkVirtualInterfaceArn\";\nvar _sLVII = \"serviceLinkVirtualInterfaceId\";\nvar _sLVIIS = \"serviceLinkVirtualInterfaceIdSet\";\nvar _sLVIS = \"serviceLinkVirtualInterfaceSet\";\nvar _sLp = \"spreadLevel\";\nvar _sM = \"serviceManaged\";\nvar _sMPPOLP = \"spotMaxPricePercentageOverLowestPrice\";\nvar _sMS = \"spotMaintenanceStrategies\";\nvar _sMTP = \"spotMaxTotalPrice\";\nvar _sMt = \"statusMessage\";\nvar _sMta = \"stateMessage\";\nvar _sN = \"serviceName\";\nvar _sNA = \"serviceNetworkArn\";\nvar _sNE = \"snsNotificationsEnabled\";\nvar _sNN = \"serviceNetworkName\";\nvar _sNS = \"serviceNameSet\";\nvar _sNSr = \"sriovNetSupport\";\nvar _sNe = \"sequenceNumber\";\nvar _sNes = \"sessionNumber\";\nvar _sO = \"spotOptions\";\nvar _sP = \"s3Prefix\";\nvar _sPA = \"samlProviderArn\";\nvar _sPHS = \"spotPriceHistorySet\";\nvar _sPI = \"servicePermissionId\";\nvar _sPIAC = \"secondaryPrivateIpAddressCount\";\nvar _sPLS = \"sourcePrefixListSet\";\nvar _sPR = \"sourcePortRange\";\nvar _sPRS = \"sourcePortRangeSet\";\nvar _sPS = \"sourcePortSet\";\nvar _sPSS = \"spotPlacementScoreSet\";\nvar _sPp = \"spotPrice\";\nvar _sQPDS = \"successfulQueuedPurchaseDeletionSet\";\nvar _sR = \"serviceRegion\";\nvar _sRDT = \"supportedRootDeviceTypes\";\nvar _sRO = \"staticRoutesOnly\";\nvar _sRS = \"supportedRegionSet\";\nvar _sRT = \"subnetRouteTable\";\nvar _sRe = \"serviceResource\";\nvar _sRo = \"sourceResource\";\nvar _sRt = \"stateReason\";\nvar _sS = \"snapshotSet\";\nvar _sSGS = \"staleSecurityGroupSet\";\nvar _sSPU = \"selfServicePortalUrl\";\nvar _sSS = \"staticSourcesSupport\";\nvar _sSSPA = \"selfServiceSamlProviderArn\";\nvar _sST = \"sampledStartTime\";\nvar _sSe = \"settingSet\";\nvar _sSer = \"serviceState\";\nvar _sSo = \"sourceSet\";\nvar _sSs = \"sseSpecification\";\nvar _sSt = \"statusSet\";\nvar _sSu = \"subscriptionSet\";\nvar _sSub = \"subnetSet\";\nvar _sSup = \"supportedStrategies\";\nvar _sSy = \"systemStatus\";\nvar _sT = \"startTime\";\nvar _sTA = \"snsTopicArn\";\nvar _sTC = \"spotTargetCapacity\";\nvar _sTD = \"snapshotTaskDetail\";\nvar _sTFR = \"storeTaskFailureReason\";\nvar _sTH = \"sessionTimeoutHours\";\nvar _sTR = \"stateTransitionReason\";\nvar _sTS = \"storeTaskState\";\nvar _sTSS = \"snapshotTierStatusSet\";\nvar _sTT = \"stateTransitionTime\";\nvar _sTa = \"sampleTime\";\nvar _sTe = \"serviceType\";\nvar _sTo = \"sourceType\";\nvar _sTp = \"splitTunnel\";\nvar _sTs = \"sseType\";\nvar _sTt = \"storageTier\";\nvar _sUC = \"supportedUsageClasses\";\nvar _sV = \"sourceVpc\";\nvar _sVT = \"supportedVirtualizationTypes\";\nvar _sVh = \"shellVersion\";\nvar _sVu = \"supportedVersions\";\nvar _sWD = \"startWeekDay\";\nvar _s_ = \"s3\";\nvar _sc = \"scope\";\nvar _sco = \"score\";\nvar _scop = \"scopes\";\nvar _se = \"service\";\nvar _si = \"size\";\nvar _so = \"sockets\";\nvar _sof = \"software\";\nvar _st = \"state\";\nvar _sta = \"status\";\nvar _star = \"start\";\nvar _stat = \"statistic\";\nvar _sto = \"storage\";\nvar _str = \"strategy\";\nvar _su = \"subnet\";\nvar _sub = \"subnets\";\nvar _suc = \"successful\";\nvar _succ = \"success\";\nvar _t = \"tenancy\";\nvar _tAAC = \"totalAvailableAddressCount\";\nvar _tAC = \"totalAddressCount\";\nvar _tAI = \"transferAccountId\";\nvar _tC = \"totalCapacity\";\nvar _tCS = \"targetCapacitySpecification\";\nvar _tCUT = \"targetCapacityUnitType\";\nvar _tCVR = \"targetConfigurationValueRollup\";\nvar _tCVS = \"targetConfigurationValueSet\";\nvar _tCa = \"targetConfiguration\";\nvar _tCar = \"targetCapacity\";\nvar _tD = \"terminationDelay\";\nvar _tDr = \"trafficDirection\";\nvar _tE = \"targetEnvironment\";\nvar _tED = \"termEndDate\";\nvar _tET = \"tcpEstablishedTimeout\";\nvar _tEo = \"tokenEndpoint\";\nvar _tFC = \"totalFulfilledCapacity\";\nvar _tFMIMB = \"totalFpgaMemoryInMiB\";\nvar _tG = \"transitGateway\";\nvar _tGA = \"transitGatewayAttachments\";\nvar _tGAI = \"transitGatewayAttachmentId\";\nvar _tGAP = \"transitGatewayAttachmentPropagations\";\nvar _tGAr = \"transitGatewayAttachment\";\nvar _tGAra = \"transitGatewayArn\";\nvar _tGAran = \"transitGatewayAsn\";\nvar _tGArans = \"transitGatewayAddress\";\nvar _tGC = \"transitGatewayConnect\";\nvar _tGCB = \"transitGatewayCidrBlocks\";\nvar _tGCP = \"transitGatewayConnectPeer\";\nvar _tGCPI = \"transitGatewayConnectPeerId\";\nvar _tGCPS = \"transitGatewayConnectPeerSet\";\nvar _tGCS = \"transitGatewayConnectSet\";\nvar _tGCa = \"targetGroupsConfig\";\nvar _tGI = \"transitGatewayId\";\nvar _tGMD = \"transitGatewayMulticastDomain\";\nvar _tGMDA = \"transitGatewayMulticastDomainArn\";\nvar _tGMDI = \"transitGatewayMulticastDomainId\";\nvar _tGMDr = \"transitGatewayMulticastDomains\";\nvar _tGMIMB = \"totalGpuMemoryInMiB\";\nvar _tGOI = \"transitGatewayOwnerId\";\nvar _tGPA = \"transitGatewayPeeringAttachment\";\nvar _tGPAr = \"transitGatewayPeeringAttachments\";\nvar _tGPLR = \"transitGatewayPrefixListReference\";\nvar _tGPLRS = \"transitGatewayPrefixListReferenceSet\";\nvar _tGPT = \"transitGatewayPolicyTable\";\nvar _tGPTE = \"transitGatewayPolicyTableEntries\";\nvar _tGPTI = \"transitGatewayPolicyTableId\";\nvar _tGPTr = \"transitGatewayPolicyTables\";\nvar _tGRT = \"transitGatewayRouteTable\";\nvar _tGRTA = \"transitGatewayRouteTableAnnouncement\";\nvar _tGRTAI = \"transitGatewayRouteTableAnnouncementId\";\nvar _tGRTAr = \"transitGatewayRouteTableAnnouncements\";\nvar _tGRTI = \"transitGatewayRouteTableId\";\nvar _tGRTP = \"transitGatewayRouteTablePropagations\";\nvar _tGRTR = \"transitGatewayRouteTableRoute\";\nvar _tGRTr = \"transitGatewayRouteTables\";\nvar _tGS = \"transitGatewaySet\";\nvar _tGVA = \"transitGatewayVpcAttachment\";\nvar _tGVAr = \"transitGatewayVpcAttachments\";\nvar _tGa = \"targetGroups\";\nvar _tHP = \"totalHourlyPrice\";\nvar _tI = \"targetId\";\nvar _tIC = \"totalInstanceCount\";\nvar _tICu = \"tunnelInsideCidr\";\nvar _tII = \"trunkInterfaceId\";\nvar _tIIC = \"tunnelInsideIpv6Cidr\";\nvar _tIIV = \"tunnelInsideIpVersion\";\nvar _tIMIMB = \"totalInferenceMemoryInMiB\";\nvar _tIWE = \"terminateInstancesWithExpiration\";\nvar _tIa = \"targetIops\";\nvar _tIe = \"tenantId\";\nvar _tLSGB = \"totalLocalStorageGB\";\nvar _tMAE = \"targetMultiAttachEnabled\";\nvar _tMF = \"trafficMirrorFilter\";\nvar _tMFI = \"trafficMirrorFilterId\";\nvar _tMFR = \"trafficMirrorFilterRule\";\nvar _tMFRI = \"trafficMirrorFilterRuleId\";\nvar _tMFRS = \"trafficMirrorFilterRuleSet\";\nvar _tMFS = \"trafficMirrorFilterSet\";\nvar _tMMIMB = \"totalMediaMemoryInMiB\";\nvar _tMS = \"trafficMirrorSession\";\nvar _tMSI = \"trafficMirrorSessionId\";\nvar _tMSS = \"trafficMirrorSessionSet\";\nvar _tMT = \"trafficMirrorTarget\";\nvar _tMTI = \"trafficMirrorTargetId\";\nvar _tMTS = \"trafficMirrorTargetSet\";\nvar _tN = \"tokenName\";\nvar _tNDMIMB = \"totalNeuronDeviceMemoryInMiB\";\nvar _tNI = \"targetNetworkId\";\nvar _tOAT = \"transferOfferAcceptedTimestamp\";\nvar _tOET = \"transferOfferExpirationTimestamp\";\nvar _tOS = \"tunnelOptionSet\";\nvar _tP = \"transportProtocol\";\nvar _tPC = \"threadsPerCore\";\nvar _tPT = \"trustProviderType\";\nvar _tPo = \"toPort\";\nvar _tRC = \"targetResourceCount\";\nvar _tRS = \"throughResourceSet\";\nvar _tRSi = \"timeRangeSet\";\nvar _tRTI = \"targetRouteTableId\";\nvar _tS = \"tagSet\";\nvar _tSD = \"termStartDate\";\nvar _tSIGB = \"totalSizeInGB\";\nvar _tSIH = \"totalScheduledInstanceHours\";\nvar _tSS = \"tagSpecificationSet\";\nvar _tST = \"tieringStartTime\";\nvar _tSTa = \"taskStartTime\";\nvar _tSa = \"targetSubnet\";\nvar _tSar = \"targetSize\";\nvar _tSas = \"taskState\";\nvar _tSp = \"tpmSupport\";\nvar _tT = \"trafficType\";\nvar _tTC = \"totalTargetCapacity\";\nvar _tTGAI = \"transportTransitGatewayAttachmentId\";\nvar _tTa = \"targetThroughput\";\nvar _tTr = \"transferType\";\nvar _tUP = \"totalUpfrontPrice\";\nvar _tV = \"tokenValue\";\nvar _tVC = \"totalVCpus\";\nvar _tVT = \"targetVolumeType\";\nvar _ta = \"tags\";\nvar _tag = \"tag\";\nvar _te = \"term\";\nvar _th = \"throughput\";\nvar _ti = \"timestamp\";\nvar _tie = \"tier\";\nvar _to = \"to\";\nvar _ty = \"type\";\nvar _u = \"unsuccessful\";\nvar _uB = \"userBucket\";\nvar _uD = \"uefiData\";\nvar _uDLTVS = \"unsuccessfullyDeletedLaunchTemplateVersionSet\";\nvar _uDp = \"updatedDate\";\nvar _uDpd = \"updateDate\";\nvar _uDs = \"userData\";\nvar _uF = \"upfrontFee\";\nvar _uFDS = \"unsuccessfulFleetDeletionSet\";\nvar _uFRS = \"unsuccessfulFleetRequestSet\";\nvar _uI = \"userId\";\nvar _uIA = \"unassignedIpv6Addresses\";\nvar _uIC = \"usedInstanceCount\";\nvar _uICSS = \"unsuccessfulInstanceCreditSpecificationSet\";\nvar _uIE = \"userInfoEndpoint\";\nvar _uIPS = \"unknownIpPermissionSet\";\nvar _uIPSn = \"unassignedIpv6PrefixSet\";\nvar _uLI = \"useLongIds\";\nvar _uLIA = \"useLongIdsAggregated\";\nvar _uO = \"usageOperation\";\nvar _uOUT = \"usageOperationUpdateTime\";\nvar _uP = \"upfrontPrice\";\nvar _uPS = \"uploadPolicySignature\";\nvar _uPp = \"uploadPolicy\";\nvar _uPs = \"usagePrice\";\nvar _uRBOI = \"unusedReservationBillingOwnerId\";\nvar _uS = \"usageStrategy\";\nvar _uST = \"udpStreamTimeout\";\nvar _uT = \"updateTime\";\nvar _uTP = \"userTrustProvider\";\nvar _uTPT = \"userTrustProviderType\";\nvar _uTd = \"udpTimeout\";\nvar _ur = \"url\";\nvar _us = \"username\";\nvar _v = \"value\";\nvar _vAE = \"verifiedAccessEndpoint\";\nvar _vAEI = \"verifiedAccessEndpointId\";\nvar _vAES = \"verifiedAccessEndpointSet\";\nvar _vAETD = \"verifiedAccessEndpointTargetDns\";\nvar _vAETIA = \"verifiedAccessEndpointTargetIpAddress\";\nvar _vAETS = \"verifiedAccessEndpointTargetSet\";\nvar _vAG = \"verifiedAccessGroup\";\nvar _vAGA = \"verifiedAccessGroupArn\";\nvar _vAGI = \"verifiedAccessGroupId\";\nvar _vAGS = \"verifiedAccessGroupSet\";\nvar _vAI = \"verifiedAccessInstance\";\nvar _vAII = \"verifiedAccessInstanceId\";\nvar _vAIS = \"verifiedAccessInstanceSet\";\nvar _vATP = \"verifiedAccessTrustProvider\";\nvar _vATPI = \"verifiedAccessTrustProviderId\";\nvar _vATPS = \"verifiedAccessTrustProviderSet\";\nvar _vBPAE = \"vpcBlockPublicAccessExclusion\";\nvar _vBPAES = \"vpcBlockPublicAccessExclusionSet\";\nvar _vBPAO = \"vpcBlockPublicAccessOptions\";\nvar _vC = \"vpnConnection\";\nvar _vCC = \"vCpuCount\";\nvar _vCDSC = \"vpnConnectionDeviceSampleConfiguration\";\nvar _vCDTI = \"vpnConnectionDeviceTypeId\";\nvar _vCDTS = \"vpnConnectionDeviceTypeSet\";\nvar _vCI = \"vpnConnectionId\";\nvar _vCIp = \"vCpuInfo\";\nvar _vCS = \"vpnConnectionSet\";\nvar _vCa = \"validCores\";\nvar _vD = \"versionDescription\";\nvar _vE = \"vpcEndpoint\";\nvar _vEAS = \"vpcEndpointAssociationSet\";\nvar _vECI = \"vpcEncryptionControlId\";\nvar _vECIp = \"vpcEndpointConnectionId\";\nvar _vECS = \"vpcEndpointConnectionSet\";\nvar _vEI = \"vpcEndpointId\";\nvar _vEO = \"vpcEndpointOwner\";\nvar _vEPS = \"vpcEndpointPolicySupported\";\nvar _vER = \"vpcEndpointRegion\";\nvar _vES = \"vpcEndpointService\";\nvar _vESp = \"vpcEndpointSet\";\nvar _vESpc = \"vpcEndpointState\";\nvar _vESpn = \"vpnEcmpSupport\";\nvar _vET = \"vpcEndpointType\";\nvar _vF = \"validFrom\";\nvar _vFR = \"validationFailureReason\";\nvar _vG = \"vpnGateway\";\nvar _vGI = \"vpnGatewayId\";\nvar _vGS = \"vpnGatewaySet\";\nvar _vI = \"vpcId\";\nvar _vIR = \"volumeInitializationRate\";\nvar _vIl = \"vlanId\";\nvar _vIo = \"volumeId\";\nvar _vM = \"volumeModification\";\nvar _vMS = \"volumeModificationSet\";\nvar _vN = \"virtualName\";\nvar _vNI = \"virtualNetworkId\";\nvar _vNe = \"versionNumber\";\nvar _vOI = \"volumeOwnerId\";\nvar _vOIp = \"vpcOwnerId\";\nvar _vP = \"vpnProtocol\";\nvar _vPC = \"vpcPeeringConnection\";\nvar _vPCI = \"vpcPeeringConnectionId\";\nvar _vPCS = \"vpcPeeringConnectionSet\";\nvar _vPG = \"virtualPrivateGateway\";\nvar _vPp = \"vpnPort\";\nvar _vPpc = \"vpcPeering\";\nvar _vS = \"volumeSet\";\nvar _vSS = \"volumeStatusSet\";\nvar _vSa = \"valueSet\";\nvar _vSo = \"volumeSize\";\nvar _vSol = \"volumeStatus\";\nvar _vSp = \"vpcSet\";\nvar _vT = \"volumeType\";\nvar _vTOIA = \"vpnTunnelOutsideIpAddress\";\nvar _vTPC = \"validThreadsPerCore\";\nvar _vTg = \"vgwTelemetry\";\nvar _vTi = \"virtualizationType\";\nvar _vU = \"validUntil\";\nvar _ve = \"version\";\nvar _ven = \"vendor\";\nvar _vl = \"vlan\";\nvar _vo = \"volumes\";\nvar _vol = \"volume\";\nvar _vp = \"vpc\";\nvar _vpc = \"vpcs\";\nvar _w = \"warning\";\nvar _wC = \"weightedCapacity\";\nvar _wM = \"warningMessage\";\nvar _we = \"weight\";\nvar _zI = \"zoneId\";\nvar _zN = \"zoneName\";\nvar _zS = \"zoneState\";\nvar _zT = \"zoneType\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadEc2ErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Errors.Error?.Code !== void 0) {\n return data.Errors.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadEc2ErrorCode\");\n\n// src/commands/AcceptAddressTransferCommand.ts\nvar AcceptAddressTransferCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptAddressTransfer\", {}).n(\"EC2Client\", \"AcceptAddressTransferCommand\").f(void 0, void 0).ser(se_AcceptAddressTransferCommand).de(de_AcceptAddressTransferCommand).build() {\n static {\n __name(this, \"AcceptAddressTransferCommand\");\n }\n};\n\n// src/commands/AcceptCapacityReservationBillingOwnershipCommand.ts\n\n\n\nvar AcceptCapacityReservationBillingOwnershipCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptCapacityReservationBillingOwnership\", {}).n(\"EC2Client\", \"AcceptCapacityReservationBillingOwnershipCommand\").f(void 0, void 0).ser(se_AcceptCapacityReservationBillingOwnershipCommand).de(de_AcceptCapacityReservationBillingOwnershipCommand).build() {\n static {\n __name(this, \"AcceptCapacityReservationBillingOwnershipCommand\");\n }\n};\n\n// src/commands/AcceptReservedInstancesExchangeQuoteCommand.ts\n\n\n\nvar AcceptReservedInstancesExchangeQuoteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptReservedInstancesExchangeQuote\", {}).n(\"EC2Client\", \"AcceptReservedInstancesExchangeQuoteCommand\").f(void 0, void 0).ser(se_AcceptReservedInstancesExchangeQuoteCommand).de(de_AcceptReservedInstancesExchangeQuoteCommand).build() {\n static {\n __name(this, \"AcceptReservedInstancesExchangeQuoteCommand\");\n }\n};\n\n// src/commands/AcceptTransitGatewayMulticastDomainAssociationsCommand.ts\n\n\n\nvar AcceptTransitGatewayMulticastDomainAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptTransitGatewayMulticastDomainAssociations\", {}).n(\"EC2Client\", \"AcceptTransitGatewayMulticastDomainAssociationsCommand\").f(void 0, void 0).ser(se_AcceptTransitGatewayMulticastDomainAssociationsCommand).de(de_AcceptTransitGatewayMulticastDomainAssociationsCommand).build() {\n static {\n __name(this, \"AcceptTransitGatewayMulticastDomainAssociationsCommand\");\n }\n};\n\n// src/commands/AcceptTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar AcceptTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"AcceptTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_AcceptTransitGatewayPeeringAttachmentCommand).de(de_AcceptTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"AcceptTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/AcceptTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar AcceptTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"AcceptTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_AcceptTransitGatewayVpcAttachmentCommand).de(de_AcceptTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"AcceptTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/AcceptVpcEndpointConnectionsCommand.ts\n\n\n\nvar AcceptVpcEndpointConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptVpcEndpointConnections\", {}).n(\"EC2Client\", \"AcceptVpcEndpointConnectionsCommand\").f(void 0, void 0).ser(se_AcceptVpcEndpointConnectionsCommand).de(de_AcceptVpcEndpointConnectionsCommand).build() {\n static {\n __name(this, \"AcceptVpcEndpointConnectionsCommand\");\n }\n};\n\n// src/commands/AcceptVpcPeeringConnectionCommand.ts\n\n\n\nvar AcceptVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptVpcPeeringConnection\", {}).n(\"EC2Client\", \"AcceptVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_AcceptVpcPeeringConnectionCommand).de(de_AcceptVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"AcceptVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/AdvertiseByoipCidrCommand.ts\n\n\n\nvar AdvertiseByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AdvertiseByoipCidr\", {}).n(\"EC2Client\", \"AdvertiseByoipCidrCommand\").f(void 0, void 0).ser(se_AdvertiseByoipCidrCommand).de(de_AdvertiseByoipCidrCommand).build() {\n static {\n __name(this, \"AdvertiseByoipCidrCommand\");\n }\n};\n\n// src/commands/AllocateAddressCommand.ts\n\n\n\nvar AllocateAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AllocateAddress\", {}).n(\"EC2Client\", \"AllocateAddressCommand\").f(void 0, void 0).ser(se_AllocateAddressCommand).de(de_AllocateAddressCommand).build() {\n static {\n __name(this, \"AllocateAddressCommand\");\n }\n};\n\n// src/commands/AllocateHostsCommand.ts\n\n\n\nvar AllocateHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AllocateHosts\", {}).n(\"EC2Client\", \"AllocateHostsCommand\").f(void 0, void 0).ser(se_AllocateHostsCommand).de(de_AllocateHostsCommand).build() {\n static {\n __name(this, \"AllocateHostsCommand\");\n }\n};\n\n// src/commands/AllocateIpamPoolCidrCommand.ts\n\n\n\nvar AllocateIpamPoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AllocateIpamPoolCidr\", {}).n(\"EC2Client\", \"AllocateIpamPoolCidrCommand\").f(void 0, void 0).ser(se_AllocateIpamPoolCidrCommand).de(de_AllocateIpamPoolCidrCommand).build() {\n static {\n __name(this, \"AllocateIpamPoolCidrCommand\");\n }\n};\n\n// src/commands/ApplySecurityGroupsToClientVpnTargetNetworkCommand.ts\n\n\n\nvar ApplySecurityGroupsToClientVpnTargetNetworkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ApplySecurityGroupsToClientVpnTargetNetwork\", {}).n(\"EC2Client\", \"ApplySecurityGroupsToClientVpnTargetNetworkCommand\").f(void 0, void 0).ser(se_ApplySecurityGroupsToClientVpnTargetNetworkCommand).de(de_ApplySecurityGroupsToClientVpnTargetNetworkCommand).build() {\n static {\n __name(this, \"ApplySecurityGroupsToClientVpnTargetNetworkCommand\");\n }\n};\n\n// src/commands/AssignIpv6AddressesCommand.ts\n\n\n\nvar AssignIpv6AddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssignIpv6Addresses\", {}).n(\"EC2Client\", \"AssignIpv6AddressesCommand\").f(void 0, void 0).ser(se_AssignIpv6AddressesCommand).de(de_AssignIpv6AddressesCommand).build() {\n static {\n __name(this, \"AssignIpv6AddressesCommand\");\n }\n};\n\n// src/commands/AssignPrivateIpAddressesCommand.ts\n\n\n\nvar AssignPrivateIpAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssignPrivateIpAddresses\", {}).n(\"EC2Client\", \"AssignPrivateIpAddressesCommand\").f(void 0, void 0).ser(se_AssignPrivateIpAddressesCommand).de(de_AssignPrivateIpAddressesCommand).build() {\n static {\n __name(this, \"AssignPrivateIpAddressesCommand\");\n }\n};\n\n// src/commands/AssignPrivateNatGatewayAddressCommand.ts\n\n\n\nvar AssignPrivateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssignPrivateNatGatewayAddress\", {}).n(\"EC2Client\", \"AssignPrivateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_AssignPrivateNatGatewayAddressCommand).de(de_AssignPrivateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"AssignPrivateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/AssociateAddressCommand.ts\n\n\n\nvar AssociateAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateAddress\", {}).n(\"EC2Client\", \"AssociateAddressCommand\").f(void 0, void 0).ser(se_AssociateAddressCommand).de(de_AssociateAddressCommand).build() {\n static {\n __name(this, \"AssociateAddressCommand\");\n }\n};\n\n// src/commands/AssociateCapacityReservationBillingOwnerCommand.ts\n\n\n\nvar AssociateCapacityReservationBillingOwnerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateCapacityReservationBillingOwner\", {}).n(\"EC2Client\", \"AssociateCapacityReservationBillingOwnerCommand\").f(void 0, void 0).ser(se_AssociateCapacityReservationBillingOwnerCommand).de(de_AssociateCapacityReservationBillingOwnerCommand).build() {\n static {\n __name(this, \"AssociateCapacityReservationBillingOwnerCommand\");\n }\n};\n\n// src/commands/AssociateClientVpnTargetNetworkCommand.ts\n\n\n\nvar AssociateClientVpnTargetNetworkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateClientVpnTargetNetwork\", {}).n(\"EC2Client\", \"AssociateClientVpnTargetNetworkCommand\").f(void 0, void 0).ser(se_AssociateClientVpnTargetNetworkCommand).de(de_AssociateClientVpnTargetNetworkCommand).build() {\n static {\n __name(this, \"AssociateClientVpnTargetNetworkCommand\");\n }\n};\n\n// src/commands/AssociateDhcpOptionsCommand.ts\n\n\n\nvar AssociateDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateDhcpOptions\", {}).n(\"EC2Client\", \"AssociateDhcpOptionsCommand\").f(void 0, void 0).ser(se_AssociateDhcpOptionsCommand).de(de_AssociateDhcpOptionsCommand).build() {\n static {\n __name(this, \"AssociateDhcpOptionsCommand\");\n }\n};\n\n// src/commands/AssociateEnclaveCertificateIamRoleCommand.ts\n\n\n\nvar AssociateEnclaveCertificateIamRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateEnclaveCertificateIamRole\", {}).n(\"EC2Client\", \"AssociateEnclaveCertificateIamRoleCommand\").f(void 0, void 0).ser(se_AssociateEnclaveCertificateIamRoleCommand).de(de_AssociateEnclaveCertificateIamRoleCommand).build() {\n static {\n __name(this, \"AssociateEnclaveCertificateIamRoleCommand\");\n }\n};\n\n// src/commands/AssociateIamInstanceProfileCommand.ts\n\n\n\nvar AssociateIamInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateIamInstanceProfile\", {}).n(\"EC2Client\", \"AssociateIamInstanceProfileCommand\").f(void 0, void 0).ser(se_AssociateIamInstanceProfileCommand).de(de_AssociateIamInstanceProfileCommand).build() {\n static {\n __name(this, \"AssociateIamInstanceProfileCommand\");\n }\n};\n\n// src/commands/AssociateInstanceEventWindowCommand.ts\n\n\n\nvar AssociateInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateInstanceEventWindow\", {}).n(\"EC2Client\", \"AssociateInstanceEventWindowCommand\").f(void 0, void 0).ser(se_AssociateInstanceEventWindowCommand).de(de_AssociateInstanceEventWindowCommand).build() {\n static {\n __name(this, \"AssociateInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/AssociateIpamByoasnCommand.ts\n\n\n\nvar AssociateIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateIpamByoasn\", {}).n(\"EC2Client\", \"AssociateIpamByoasnCommand\").f(void 0, void 0).ser(se_AssociateIpamByoasnCommand).de(de_AssociateIpamByoasnCommand).build() {\n static {\n __name(this, \"AssociateIpamByoasnCommand\");\n }\n};\n\n// src/commands/AssociateIpamResourceDiscoveryCommand.ts\n\n\n\nvar AssociateIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateIpamResourceDiscovery\", {}).n(\"EC2Client\", \"AssociateIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_AssociateIpamResourceDiscoveryCommand).de(de_AssociateIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"AssociateIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/AssociateNatGatewayAddressCommand.ts\n\n\n\nvar AssociateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateNatGatewayAddress\", {}).n(\"EC2Client\", \"AssociateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_AssociateNatGatewayAddressCommand).de(de_AssociateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"AssociateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/AssociateRouteServerCommand.ts\n\n\n\nvar AssociateRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateRouteServer\", {}).n(\"EC2Client\", \"AssociateRouteServerCommand\").f(void 0, void 0).ser(se_AssociateRouteServerCommand).de(de_AssociateRouteServerCommand).build() {\n static {\n __name(this, \"AssociateRouteServerCommand\");\n }\n};\n\n// src/commands/AssociateRouteTableCommand.ts\n\n\n\nvar AssociateRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateRouteTable\", {}).n(\"EC2Client\", \"AssociateRouteTableCommand\").f(void 0, void 0).ser(se_AssociateRouteTableCommand).de(de_AssociateRouteTableCommand).build() {\n static {\n __name(this, \"AssociateRouteTableCommand\");\n }\n};\n\n// src/commands/AssociateSecurityGroupVpcCommand.ts\n\n\n\nvar AssociateSecurityGroupVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateSecurityGroupVpc\", {}).n(\"EC2Client\", \"AssociateSecurityGroupVpcCommand\").f(void 0, void 0).ser(se_AssociateSecurityGroupVpcCommand).de(de_AssociateSecurityGroupVpcCommand).build() {\n static {\n __name(this, \"AssociateSecurityGroupVpcCommand\");\n }\n};\n\n// src/commands/AssociateSubnetCidrBlockCommand.ts\n\n\n\nvar AssociateSubnetCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateSubnetCidrBlock\", {}).n(\"EC2Client\", \"AssociateSubnetCidrBlockCommand\").f(void 0, void 0).ser(se_AssociateSubnetCidrBlockCommand).de(de_AssociateSubnetCidrBlockCommand).build() {\n static {\n __name(this, \"AssociateSubnetCidrBlockCommand\");\n }\n};\n\n// src/commands/AssociateTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar AssociateTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"AssociateTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_AssociateTransitGatewayMulticastDomainCommand).de(de_AssociateTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"AssociateTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/AssociateTransitGatewayPolicyTableCommand.ts\n\n\n\nvar AssociateTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"AssociateTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_AssociateTransitGatewayPolicyTableCommand).de(de_AssociateTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"AssociateTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/AssociateTransitGatewayRouteTableCommand.ts\n\n\n\nvar AssociateTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"AssociateTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_AssociateTransitGatewayRouteTableCommand).de(de_AssociateTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"AssociateTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/AssociateTrunkInterfaceCommand.ts\n\n\n\nvar AssociateTrunkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTrunkInterface\", {}).n(\"EC2Client\", \"AssociateTrunkInterfaceCommand\").f(void 0, void 0).ser(se_AssociateTrunkInterfaceCommand).de(de_AssociateTrunkInterfaceCommand).build() {\n static {\n __name(this, \"AssociateTrunkInterfaceCommand\");\n }\n};\n\n// src/commands/AssociateVpcCidrBlockCommand.ts\n\n\n\nvar AssociateVpcCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateVpcCidrBlock\", {}).n(\"EC2Client\", \"AssociateVpcCidrBlockCommand\").f(void 0, void 0).ser(se_AssociateVpcCidrBlockCommand).de(de_AssociateVpcCidrBlockCommand).build() {\n static {\n __name(this, \"AssociateVpcCidrBlockCommand\");\n }\n};\n\n// src/commands/AttachClassicLinkVpcCommand.ts\n\n\n\nvar AttachClassicLinkVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachClassicLinkVpc\", {}).n(\"EC2Client\", \"AttachClassicLinkVpcCommand\").f(void 0, void 0).ser(se_AttachClassicLinkVpcCommand).de(de_AttachClassicLinkVpcCommand).build() {\n static {\n __name(this, \"AttachClassicLinkVpcCommand\");\n }\n};\n\n// src/commands/AttachInternetGatewayCommand.ts\n\n\n\nvar AttachInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachInternetGateway\", {}).n(\"EC2Client\", \"AttachInternetGatewayCommand\").f(void 0, void 0).ser(se_AttachInternetGatewayCommand).de(de_AttachInternetGatewayCommand).build() {\n static {\n __name(this, \"AttachInternetGatewayCommand\");\n }\n};\n\n// src/commands/AttachNetworkInterfaceCommand.ts\n\n\n\nvar AttachNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachNetworkInterface\", {}).n(\"EC2Client\", \"AttachNetworkInterfaceCommand\").f(void 0, void 0).ser(se_AttachNetworkInterfaceCommand).de(de_AttachNetworkInterfaceCommand).build() {\n static {\n __name(this, \"AttachNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/AttachVerifiedAccessTrustProviderCommand.ts\n\n\n\n\n// src/models/models_0.ts\n\nvar AcceleratorManufacturer = {\n AMAZON_WEB_SERVICES: \"amazon-web-services\",\n AMD: \"amd\",\n HABANA: \"habana\",\n NVIDIA: \"nvidia\",\n XILINX: \"xilinx\"\n};\nvar AcceleratorName = {\n A100: \"a100\",\n A10G: \"a10g\",\n H100: \"h100\",\n INFERENTIA: \"inferentia\",\n K520: \"k520\",\n K80: \"k80\",\n M60: \"m60\",\n RADEON_PRO_V520: \"radeon-pro-v520\",\n T4: \"t4\",\n T4G: \"t4g\",\n V100: \"v100\",\n VU9P: \"vu9p\"\n};\nvar AcceleratorType = {\n FPGA: \"fpga\",\n GPU: \"gpu\",\n INFERENCE: \"inference\"\n};\nvar ResourceType = {\n capacity_reservation: \"capacity-reservation\",\n capacity_reservation_fleet: \"capacity-reservation-fleet\",\n carrier_gateway: \"carrier-gateway\",\n client_vpn_endpoint: \"client-vpn-endpoint\",\n coip_pool: \"coip-pool\",\n customer_gateway: \"customer-gateway\",\n declarative_policies_report: \"declarative-policies-report\",\n dedicated_host: \"dedicated-host\",\n dhcp_options: \"dhcp-options\",\n egress_only_internet_gateway: \"egress-only-internet-gateway\",\n elastic_gpu: \"elastic-gpu\",\n elastic_ip: \"elastic-ip\",\n export_image_task: \"export-image-task\",\n export_instance_task: \"export-instance-task\",\n fleet: \"fleet\",\n fpga_image: \"fpga-image\",\n host_reservation: \"host-reservation\",\n image: \"image\",\n import_image_task: \"import-image-task\",\n import_snapshot_task: \"import-snapshot-task\",\n instance: \"instance\",\n instance_connect_endpoint: \"instance-connect-endpoint\",\n instance_event_window: \"instance-event-window\",\n internet_gateway: \"internet-gateway\",\n ipam: \"ipam\",\n ipam_external_resource_verification_token: \"ipam-external-resource-verification-token\",\n ipam_pool: \"ipam-pool\",\n ipam_resource_discovery: \"ipam-resource-discovery\",\n ipam_resource_discovery_association: \"ipam-resource-discovery-association\",\n ipam_scope: \"ipam-scope\",\n ipv4pool_ec2: \"ipv4pool-ec2\",\n ipv6pool_ec2: \"ipv6pool-ec2\",\n key_pair: \"key-pair\",\n launch_template: \"launch-template\",\n local_gateway: \"local-gateway\",\n local_gateway_route_table: \"local-gateway-route-table\",\n local_gateway_route_table_virtual_interface_group_association: \"local-gateway-route-table-virtual-interface-group-association\",\n local_gateway_route_table_vpc_association: \"local-gateway-route-table-vpc-association\",\n local_gateway_virtual_interface: \"local-gateway-virtual-interface\",\n local_gateway_virtual_interface_group: \"local-gateway-virtual-interface-group\",\n natgateway: \"natgateway\",\n network_acl: \"network-acl\",\n network_insights_access_scope: \"network-insights-access-scope\",\n network_insights_access_scope_analysis: \"network-insights-access-scope-analysis\",\n network_insights_analysis: \"network-insights-analysis\",\n network_insights_path: \"network-insights-path\",\n network_interface: \"network-interface\",\n outpost_lag: \"outpost-lag\",\n placement_group: \"placement-group\",\n prefix_list: \"prefix-list\",\n replace_root_volume_task: \"replace-root-volume-task\",\n reserved_instances: \"reserved-instances\",\n route_server: \"route-server\",\n route_server_endpoint: \"route-server-endpoint\",\n route_server_peer: \"route-server-peer\",\n route_table: \"route-table\",\n security_group: \"security-group\",\n security_group_rule: \"security-group-rule\",\n service_link_virtual_interface: \"service-link-virtual-interface\",\n snapshot: \"snapshot\",\n spot_fleet_request: \"spot-fleet-request\",\n spot_instances_request: \"spot-instances-request\",\n subnet: \"subnet\",\n subnet_cidr_reservation: \"subnet-cidr-reservation\",\n traffic_mirror_filter: \"traffic-mirror-filter\",\n traffic_mirror_filter_rule: \"traffic-mirror-filter-rule\",\n traffic_mirror_session: \"traffic-mirror-session\",\n traffic_mirror_target: \"traffic-mirror-target\",\n transit_gateway: \"transit-gateway\",\n transit_gateway_attachment: \"transit-gateway-attachment\",\n transit_gateway_connect_peer: \"transit-gateway-connect-peer\",\n transit_gateway_multicast_domain: \"transit-gateway-multicast-domain\",\n transit_gateway_policy_table: \"transit-gateway-policy-table\",\n transit_gateway_route_table: \"transit-gateway-route-table\",\n transit_gateway_route_table_announcement: \"transit-gateway-route-table-announcement\",\n verified_access_endpoint: \"verified-access-endpoint\",\n verified_access_endpoint_target: \"verified-access-endpoint-target\",\n verified_access_group: \"verified-access-group\",\n verified_access_instance: \"verified-access-instance\",\n verified_access_policy: \"verified-access-policy\",\n verified_access_trust_provider: \"verified-access-trust-provider\",\n volume: \"volume\",\n vpc: \"vpc\",\n vpc_block_public_access_exclusion: \"vpc-block-public-access-exclusion\",\n vpc_endpoint: \"vpc-endpoint\",\n vpc_endpoint_connection: \"vpc-endpoint-connection\",\n vpc_endpoint_connection_device_type: \"vpc-endpoint-connection-device-type\",\n vpc_endpoint_service: \"vpc-endpoint-service\",\n vpc_endpoint_service_permission: \"vpc-endpoint-service-permission\",\n vpc_flow_log: \"vpc-flow-log\",\n vpc_peering_connection: \"vpc-peering-connection\",\n vpn_connection: \"vpn-connection\",\n vpn_connection_device_type: \"vpn-connection-device-type\",\n vpn_gateway: \"vpn-gateway\"\n};\nvar AddressTransferStatus = {\n accepted: \"accepted\",\n disabled: \"disabled\",\n pending: \"pending\"\n};\nvar TransitGatewayAttachmentResourceType = {\n connect: \"connect\",\n direct_connect_gateway: \"direct-connect-gateway\",\n peering: \"peering\",\n tgw_peering: \"tgw-peering\",\n vpc: \"vpc\",\n vpn: \"vpn\"\n};\nvar TransitGatewayMulitcastDomainAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\",\n pendingAcceptance: \"pendingAcceptance\",\n rejected: \"rejected\"\n};\nvar DynamicRoutingValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar TransitGatewayAttachmentState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n failed: \"failed\",\n failing: \"failing\",\n initiating: \"initiating\",\n initiatingRequest: \"initiatingRequest\",\n modifying: \"modifying\",\n pending: \"pending\",\n pendingAcceptance: \"pendingAcceptance\",\n rejected: \"rejected\",\n rejecting: \"rejecting\",\n rollingBack: \"rollingBack\"\n};\nvar ApplianceModeSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar DnsSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar Ipv6SupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar SecurityGroupReferencingSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar VpcPeeringConnectionStateReasonCode = {\n active: \"active\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n expired: \"expired\",\n failed: \"failed\",\n initiating_request: \"initiating-request\",\n pending_acceptance: \"pending-acceptance\",\n provisioning: \"provisioning\",\n rejected: \"rejected\"\n};\nvar Protocol = {\n tcp: \"tcp\",\n udp: \"udp\"\n};\nvar AccountAttributeName = {\n default_vpc: \"default-vpc\",\n supported_platforms: \"supported-platforms\"\n};\nvar InstanceHealthStatus = {\n HEALTHY_STATUS: \"healthy\",\n UNHEALTHY_STATUS: \"unhealthy\"\n};\nvar ActivityStatus = {\n ERROR: \"error\",\n FULFILLED: \"fulfilled\",\n PENDING_FULFILLMENT: \"pending_fulfillment\",\n PENDING_TERMINATION: \"pending_termination\"\n};\nvar PrincipalType = {\n Account: \"Account\",\n All: \"All\",\n OrganizationUnit: \"OrganizationUnit\",\n Role: \"Role\",\n Service: \"Service\",\n User: \"User\"\n};\nvar DomainType = {\n standard: \"standard\",\n vpc: \"vpc\"\n};\nvar ServiceManaged = {\n alb: \"alb\",\n nlb: \"nlb\",\n rnat: \"rnat\"\n};\nvar AddressAttributeName = {\n domain_name: \"domain-name\"\n};\nvar AddressFamily = {\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar AsnAssociationState = {\n associated: \"associated\",\n disassociated: \"disassociated\",\n failed_association: \"failed-association\",\n failed_disassociation: \"failed-disassociation\",\n pending_association: \"pending-association\",\n pending_disassociation: \"pending-disassociation\"\n};\nvar ByoipCidrState = {\n advertised: \"advertised\",\n deprovisioned: \"deprovisioned\",\n failed_deprovision: \"failed-deprovision\",\n failed_provision: \"failed-provision\",\n pending_deprovision: \"pending-deprovision\",\n pending_provision: \"pending-provision\",\n provisioned: \"provisioned\",\n provisioned_not_publicly_advertisable: \"provisioned-not-publicly-advertisable\"\n};\nvar Affinity = {\n default: \"default\",\n host: \"host\"\n};\nvar AutoPlacement = {\n off: \"off\",\n on: \"on\"\n};\nvar HostMaintenance = {\n off: \"off\",\n on: \"on\"\n};\nvar HostRecovery = {\n off: \"off\",\n on: \"on\"\n};\nvar IpamPoolAllocationResourceType = {\n custom: \"custom\",\n ec2_public_ipv4_pool: \"ec2-public-ipv4-pool\",\n eip: \"eip\",\n ipam_pool: \"ipam-pool\",\n subnet: \"subnet\",\n vpc: \"vpc\"\n};\nvar AllocationState = {\n available: \"available\",\n pending: \"pending\",\n permanent_failure: \"permanent-failure\",\n released: \"released\",\n released_permanent_failure: \"released-permanent-failure\",\n under_assessment: \"under-assessment\"\n};\nvar AllocationStrategy = {\n CAPACITY_OPTIMIZED: \"capacityOptimized\",\n CAPACITY_OPTIMIZED_PRIORITIZED: \"capacityOptimizedPrioritized\",\n DIVERSIFIED: \"diversified\",\n LOWEST_PRICE: \"lowestPrice\",\n PRICE_CAPACITY_OPTIMIZED: \"priceCapacityOptimized\"\n};\nvar AllocationType = {\n future: \"future\",\n used: \"used\"\n};\nvar AllowedImagesSettingsDisabledState = {\n disabled: \"disabled\"\n};\nvar AllowedImagesSettingsEnabledState = {\n audit_mode: \"audit-mode\",\n enabled: \"enabled\"\n};\nvar AllowsMultipleInstanceTypes = {\n off: \"off\",\n on: \"on\"\n};\nvar NatGatewayAddressStatus = {\n ASSIGNING: \"assigning\",\n ASSOCIATING: \"associating\",\n DISASSOCIATING: \"disassociating\",\n FAILED: \"failed\",\n SUCCEEDED: \"succeeded\",\n UNASSIGNING: \"unassigning\"\n};\nvar AssociationStatusCode = {\n associated: \"associated\",\n associating: \"associating\",\n association_failed: \"association-failed\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\"\n};\nvar IamInstanceProfileAssociationState = {\n ASSOCIATED: \"associated\",\n ASSOCIATING: \"associating\",\n DISASSOCIATED: \"disassociated\",\n DISASSOCIATING: \"disassociating\"\n};\nvar InstanceEventWindowState = {\n active: \"active\",\n creating: \"creating\",\n deleted: \"deleted\",\n deleting: \"deleting\"\n};\nvar WeekDay = {\n friday: \"friday\",\n monday: \"monday\",\n saturday: \"saturday\",\n sunday: \"sunday\",\n thursday: \"thursday\",\n tuesday: \"tuesday\",\n wednesday: \"wednesday\"\n};\nvar IpamAssociatedResourceDiscoveryStatus = {\n ACTIVE: \"active\",\n NOT_FOUND: \"not-found\"\n};\nvar IpamResourceDiscoveryAssociationState = {\n ASSOCIATE_COMPLETE: \"associate-complete\",\n ASSOCIATE_FAILED: \"associate-failed\",\n ASSOCIATE_IN_PROGRESS: \"associate-in-progress\",\n DISASSOCIATE_COMPLETE: \"disassociate-complete\",\n DISASSOCIATE_FAILED: \"disassociate-failed\",\n DISASSOCIATE_IN_PROGRESS: \"disassociate-in-progress\",\n ISOLATE_COMPLETE: \"isolate-complete\",\n ISOLATE_IN_PROGRESS: \"isolate-in-progress\",\n RESTORE_IN_PROGRESS: \"restore-in-progress\"\n};\nvar RouteServerAssociationState = {\n ASSOCIATED: \"associated\",\n ASSOCIATING: \"associating\",\n DISASSOCIATING: \"disassociating\"\n};\nvar RouteTableAssociationStateCode = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\"\n};\nvar SecurityGroupVpcAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n association_failed: \"association-failed\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n disassociation_failed: \"disassociation-failed\"\n};\nvar IpSource = {\n amazon: \"amazon\",\n byoip: \"byoip\",\n none: \"none\"\n};\nvar Ipv6AddressAttribute = {\n private: \"private\",\n public: \"public\"\n};\nvar SubnetCidrBlockStateCode = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\",\n failing: \"failing\"\n};\nvar TransitGatewayAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\"\n};\nvar InterfaceProtocolType = {\n GRE: \"GRE\",\n VLAN: \"VLAN\"\n};\nvar VpcCidrBlockStateCode = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\",\n failing: \"failing\"\n};\nvar DeviceTrustProviderType = {\n crowdstrike: \"crowdstrike\",\n jamf: \"jamf\",\n jumpcloud: \"jumpcloud\"\n};\nvar TrustProviderType = {\n device: \"device\",\n user: \"user\"\n};\nvar UserTrustProviderType = {\n iam_identity_center: \"iam-identity-center\",\n oidc: \"oidc\"\n};\nvar VolumeAttachmentState = {\n attached: \"attached\",\n attaching: \"attaching\",\n busy: \"busy\",\n detached: \"detached\",\n detaching: \"detaching\"\n};\nvar AttachmentStatus = {\n attached: \"attached\",\n attaching: \"attaching\",\n detached: \"detached\",\n detaching: \"detaching\"\n};\nvar ClientVpnAuthorizationRuleStatusCode = {\n active: \"active\",\n authorizing: \"authorizing\",\n failed: \"failed\",\n revoking: \"revoking\"\n};\nvar BundleTaskState = {\n bundling: \"bundling\",\n cancelling: \"cancelling\",\n complete: \"complete\",\n failed: \"failed\",\n pending: \"pending\",\n storing: \"storing\",\n waiting_for_shutdown: \"waiting-for-shutdown\"\n};\nvar CapacityReservationFleetState = {\n ACTIVE: \"active\",\n CANCELLED: \"cancelled\",\n CANCELLING: \"cancelling\",\n EXPIRED: \"expired\",\n EXPIRING: \"expiring\",\n FAILED: \"failed\",\n MODIFYING: \"modifying\",\n PARTIALLY_FULFILLED: \"partially_fulfilled\",\n SUBMITTED: \"submitted\"\n};\nvar ListingState = {\n available: \"available\",\n cancelled: \"cancelled\",\n pending: \"pending\",\n sold: \"sold\"\n};\nvar CurrencyCodeValues = {\n USD: \"USD\"\n};\nvar ListingStatus = {\n active: \"active\",\n cancelled: \"cancelled\",\n closed: \"closed\",\n pending: \"pending\"\n};\nvar BatchState = {\n ACTIVE: \"active\",\n CANCELLED: \"cancelled\",\n CANCELLED_RUNNING: \"cancelled_running\",\n CANCELLED_TERMINATING_INSTANCES: \"cancelled_terminating\",\n FAILED: \"failed\",\n MODIFYING: \"modifying\",\n SUBMITTED: \"submitted\"\n};\nvar CancelBatchErrorCode = {\n FLEET_REQUEST_ID_DOES_NOT_EXIST: \"fleetRequestIdDoesNotExist\",\n FLEET_REQUEST_ID_MALFORMED: \"fleetRequestIdMalformed\",\n FLEET_REQUEST_NOT_IN_CANCELLABLE_STATE: \"fleetRequestNotInCancellableState\",\n UNEXPECTED_ERROR: \"unexpectedError\"\n};\nvar CancelSpotInstanceRequestState = {\n active: \"active\",\n cancelled: \"cancelled\",\n closed: \"closed\",\n completed: \"completed\",\n open: \"open\"\n};\nvar OidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"OidcOptionsFilterSensitiveLog\");\nvar VerifiedAccessTrustProviderFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OidcOptions && { OidcOptions: OidcOptionsFilterSensitiveLog(obj.OidcOptions) }\n}), \"VerifiedAccessTrustProviderFilterSensitiveLog\");\nvar AttachVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"AttachVerifiedAccessTrustProviderResultFilterSensitiveLog\");\nvar S3StorageFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UploadPolicySignature && { UploadPolicySignature: import_smithy_client.SENSITIVE_STRING }\n}), \"S3StorageFilterSensitiveLog\");\nvar StorageFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.S3 && { S3: S3StorageFilterSensitiveLog(obj.S3) }\n}), \"StorageFilterSensitiveLog\");\nvar BundleInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Storage && { Storage: StorageFilterSensitiveLog(obj.Storage) }\n}), \"BundleInstanceRequestFilterSensitiveLog\");\nvar BundleTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Storage && { Storage: StorageFilterSensitiveLog(obj.Storage) }\n}), \"BundleTaskFilterSensitiveLog\");\nvar BundleInstanceResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.BundleTask && { BundleTask: BundleTaskFilterSensitiveLog(obj.BundleTask) }\n}), \"BundleInstanceResultFilterSensitiveLog\");\nvar CancelBundleTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.BundleTask && { BundleTask: BundleTaskFilterSensitiveLog(obj.BundleTask) }\n}), \"CancelBundleTaskResultFilterSensitiveLog\");\n\n// src/commands/AttachVerifiedAccessTrustProviderCommand.ts\nvar AttachVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"AttachVerifiedAccessTrustProviderCommand\").f(void 0, AttachVerifiedAccessTrustProviderResultFilterSensitiveLog).ser(se_AttachVerifiedAccessTrustProviderCommand).de(de_AttachVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"AttachVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/AttachVolumeCommand.ts\n\n\n\nvar AttachVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachVolume\", {}).n(\"EC2Client\", \"AttachVolumeCommand\").f(void 0, void 0).ser(se_AttachVolumeCommand).de(de_AttachVolumeCommand).build() {\n static {\n __name(this, \"AttachVolumeCommand\");\n }\n};\n\n// src/commands/AttachVpnGatewayCommand.ts\n\n\n\nvar AttachVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachVpnGateway\", {}).n(\"EC2Client\", \"AttachVpnGatewayCommand\").f(void 0, void 0).ser(se_AttachVpnGatewayCommand).de(de_AttachVpnGatewayCommand).build() {\n static {\n __name(this, \"AttachVpnGatewayCommand\");\n }\n};\n\n// src/commands/AuthorizeClientVpnIngressCommand.ts\n\n\n\nvar AuthorizeClientVpnIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AuthorizeClientVpnIngress\", {}).n(\"EC2Client\", \"AuthorizeClientVpnIngressCommand\").f(void 0, void 0).ser(se_AuthorizeClientVpnIngressCommand).de(de_AuthorizeClientVpnIngressCommand).build() {\n static {\n __name(this, \"AuthorizeClientVpnIngressCommand\");\n }\n};\n\n// src/commands/AuthorizeSecurityGroupEgressCommand.ts\n\n\n\nvar AuthorizeSecurityGroupEgressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AuthorizeSecurityGroupEgress\", {}).n(\"EC2Client\", \"AuthorizeSecurityGroupEgressCommand\").f(void 0, void 0).ser(se_AuthorizeSecurityGroupEgressCommand).de(de_AuthorizeSecurityGroupEgressCommand).build() {\n static {\n __name(this, \"AuthorizeSecurityGroupEgressCommand\");\n }\n};\n\n// src/commands/AuthorizeSecurityGroupIngressCommand.ts\n\n\n\nvar AuthorizeSecurityGroupIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AuthorizeSecurityGroupIngress\", {}).n(\"EC2Client\", \"AuthorizeSecurityGroupIngressCommand\").f(void 0, void 0).ser(se_AuthorizeSecurityGroupIngressCommand).de(de_AuthorizeSecurityGroupIngressCommand).build() {\n static {\n __name(this, \"AuthorizeSecurityGroupIngressCommand\");\n }\n};\n\n// src/commands/BundleInstanceCommand.ts\n\n\n\nvar BundleInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"BundleInstance\", {}).n(\"EC2Client\", \"BundleInstanceCommand\").f(BundleInstanceRequestFilterSensitiveLog, BundleInstanceResultFilterSensitiveLog).ser(se_BundleInstanceCommand).de(de_BundleInstanceCommand).build() {\n static {\n __name(this, \"BundleInstanceCommand\");\n }\n};\n\n// src/commands/CancelBundleTaskCommand.ts\n\n\n\nvar CancelBundleTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelBundleTask\", {}).n(\"EC2Client\", \"CancelBundleTaskCommand\").f(void 0, CancelBundleTaskResultFilterSensitiveLog).ser(se_CancelBundleTaskCommand).de(de_CancelBundleTaskCommand).build() {\n static {\n __name(this, \"CancelBundleTaskCommand\");\n }\n};\n\n// src/commands/CancelCapacityReservationCommand.ts\n\n\n\nvar CancelCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelCapacityReservation\", {}).n(\"EC2Client\", \"CancelCapacityReservationCommand\").f(void 0, void 0).ser(se_CancelCapacityReservationCommand).de(de_CancelCapacityReservationCommand).build() {\n static {\n __name(this, \"CancelCapacityReservationCommand\");\n }\n};\n\n// src/commands/CancelCapacityReservationFleetsCommand.ts\n\n\n\nvar CancelCapacityReservationFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelCapacityReservationFleets\", {}).n(\"EC2Client\", \"CancelCapacityReservationFleetsCommand\").f(void 0, void 0).ser(se_CancelCapacityReservationFleetsCommand).de(de_CancelCapacityReservationFleetsCommand).build() {\n static {\n __name(this, \"CancelCapacityReservationFleetsCommand\");\n }\n};\n\n// src/commands/CancelConversionTaskCommand.ts\n\n\n\nvar CancelConversionTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelConversionTask\", {}).n(\"EC2Client\", \"CancelConversionTaskCommand\").f(void 0, void 0).ser(se_CancelConversionTaskCommand).de(de_CancelConversionTaskCommand).build() {\n static {\n __name(this, \"CancelConversionTaskCommand\");\n }\n};\n\n// src/commands/CancelDeclarativePoliciesReportCommand.ts\n\n\n\nvar CancelDeclarativePoliciesReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelDeclarativePoliciesReport\", {}).n(\"EC2Client\", \"CancelDeclarativePoliciesReportCommand\").f(void 0, void 0).ser(se_CancelDeclarativePoliciesReportCommand).de(de_CancelDeclarativePoliciesReportCommand).build() {\n static {\n __name(this, \"CancelDeclarativePoliciesReportCommand\");\n }\n};\n\n// src/commands/CancelExportTaskCommand.ts\n\n\n\nvar CancelExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelExportTask\", {}).n(\"EC2Client\", \"CancelExportTaskCommand\").f(void 0, void 0).ser(se_CancelExportTaskCommand).de(de_CancelExportTaskCommand).build() {\n static {\n __name(this, \"CancelExportTaskCommand\");\n }\n};\n\n// src/commands/CancelImageLaunchPermissionCommand.ts\n\n\n\nvar CancelImageLaunchPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelImageLaunchPermission\", {}).n(\"EC2Client\", \"CancelImageLaunchPermissionCommand\").f(void 0, void 0).ser(se_CancelImageLaunchPermissionCommand).de(de_CancelImageLaunchPermissionCommand).build() {\n static {\n __name(this, \"CancelImageLaunchPermissionCommand\");\n }\n};\n\n// src/commands/CancelImportTaskCommand.ts\n\n\n\nvar CancelImportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelImportTask\", {}).n(\"EC2Client\", \"CancelImportTaskCommand\").f(void 0, void 0).ser(se_CancelImportTaskCommand).de(de_CancelImportTaskCommand).build() {\n static {\n __name(this, \"CancelImportTaskCommand\");\n }\n};\n\n// src/commands/CancelReservedInstancesListingCommand.ts\n\n\n\nvar CancelReservedInstancesListingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelReservedInstancesListing\", {}).n(\"EC2Client\", \"CancelReservedInstancesListingCommand\").f(void 0, void 0).ser(se_CancelReservedInstancesListingCommand).de(de_CancelReservedInstancesListingCommand).build() {\n static {\n __name(this, \"CancelReservedInstancesListingCommand\");\n }\n};\n\n// src/commands/CancelSpotFleetRequestsCommand.ts\n\n\n\nvar CancelSpotFleetRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelSpotFleetRequests\", {}).n(\"EC2Client\", \"CancelSpotFleetRequestsCommand\").f(void 0, void 0).ser(se_CancelSpotFleetRequestsCommand).de(de_CancelSpotFleetRequestsCommand).build() {\n static {\n __name(this, \"CancelSpotFleetRequestsCommand\");\n }\n};\n\n// src/commands/CancelSpotInstanceRequestsCommand.ts\n\n\n\nvar CancelSpotInstanceRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelSpotInstanceRequests\", {}).n(\"EC2Client\", \"CancelSpotInstanceRequestsCommand\").f(void 0, void 0).ser(se_CancelSpotInstanceRequestsCommand).de(de_CancelSpotInstanceRequestsCommand).build() {\n static {\n __name(this, \"CancelSpotInstanceRequestsCommand\");\n }\n};\n\n// src/commands/ConfirmProductInstanceCommand.ts\n\n\n\nvar ConfirmProductInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ConfirmProductInstance\", {}).n(\"EC2Client\", \"ConfirmProductInstanceCommand\").f(void 0, void 0).ser(se_ConfirmProductInstanceCommand).de(de_ConfirmProductInstanceCommand).build() {\n static {\n __name(this, \"ConfirmProductInstanceCommand\");\n }\n};\n\n// src/commands/CopyFpgaImageCommand.ts\n\n\n\nvar CopyFpgaImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CopyFpgaImage\", {}).n(\"EC2Client\", \"CopyFpgaImageCommand\").f(void 0, void 0).ser(se_CopyFpgaImageCommand).de(de_CopyFpgaImageCommand).build() {\n static {\n __name(this, \"CopyFpgaImageCommand\");\n }\n};\n\n// src/commands/CopyImageCommand.ts\n\n\n\nvar CopyImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CopyImage\", {}).n(\"EC2Client\", \"CopyImageCommand\").f(void 0, void 0).ser(se_CopyImageCommand).de(de_CopyImageCommand).build() {\n static {\n __name(this, \"CopyImageCommand\");\n }\n};\n\n// src/commands/CopySnapshotCommand.ts\nvar import_middleware_sdk_ec2 = require(\"@aws-sdk/middleware-sdk-ec2\");\n\n\n\n\n// src/models/models_1.ts\n\nvar CapacityReservationDeliveryPreference = {\n FIXED: \"fixed\",\n INCREMENTAL: \"incremental\"\n};\nvar EndDateType = {\n limited: \"limited\",\n unlimited: \"unlimited\"\n};\nvar InstanceMatchCriteria = {\n open: \"open\",\n targeted: \"targeted\"\n};\nvar CapacityReservationInstancePlatform = {\n LINUX_UNIX: \"Linux/UNIX\",\n LINUX_WITH_SQL_SERVER_ENTERPRISE: \"Linux with SQL Server Enterprise\",\n LINUX_WITH_SQL_SERVER_STANDARD: \"Linux with SQL Server Standard\",\n LINUX_WITH_SQL_SERVER_WEB: \"Linux with SQL Server Web\",\n RED_HAT_ENTERPRISE_LINUX: \"Red Hat Enterprise Linux\",\n RHEL_WITH_HA: \"RHEL with HA\",\n RHEL_WITH_HA_AND_SQL_SERVER_ENTERPRISE: \"RHEL with HA and SQL Server Enterprise\",\n RHEL_WITH_HA_AND_SQL_SERVER_STANDARD: \"RHEL with HA and SQL Server Standard\",\n RHEL_WITH_SQL_SERVER_ENTERPRISE: \"RHEL with SQL Server Enterprise\",\n RHEL_WITH_SQL_SERVER_STANDARD: \"RHEL with SQL Server Standard\",\n RHEL_WITH_SQL_SERVER_WEB: \"RHEL with SQL Server Web\",\n SUSE_LINUX: \"SUSE Linux\",\n UBUNTU_PRO_LINUX: \"Ubuntu Pro\",\n WINDOWS: \"Windows\",\n WINDOWS_WITH_SQL_SERVER: \"Windows with SQL Server\",\n WINDOWS_WITH_SQL_SERVER_ENTERPRISE: \"Windows with SQL Server Enterprise\",\n WINDOWS_WITH_SQL_SERVER_STANDARD: \"Windows with SQL Server Standard\",\n WINDOWS_WITH_SQL_SERVER_WEB: \"Windows with SQL Server Web\"\n};\nvar CapacityReservationTenancy = {\n dedicated: \"dedicated\",\n default: \"default\"\n};\nvar CapacityReservationType = {\n CAPACITY_BLOCK: \"capacity-block\",\n DEFAULT: \"default\"\n};\nvar CapacityReservationState = {\n active: \"active\",\n assessing: \"assessing\",\n cancelled: \"cancelled\",\n delayed: \"delayed\",\n expired: \"expired\",\n failed: \"failed\",\n payment_failed: \"payment-failed\",\n payment_pending: \"payment-pending\",\n pending: \"pending\",\n scheduled: \"scheduled\",\n unsupported: \"unsupported\"\n};\nvar FleetInstanceMatchCriteria = {\n open: \"open\"\n};\nvar _InstanceType = {\n a1_2xlarge: \"a1.2xlarge\",\n a1_4xlarge: \"a1.4xlarge\",\n a1_large: \"a1.large\",\n a1_medium: \"a1.medium\",\n a1_metal: \"a1.metal\",\n a1_xlarge: \"a1.xlarge\",\n c1_medium: \"c1.medium\",\n c1_xlarge: \"c1.xlarge\",\n c3_2xlarge: \"c3.2xlarge\",\n c3_4xlarge: \"c3.4xlarge\",\n c3_8xlarge: \"c3.8xlarge\",\n c3_large: \"c3.large\",\n c3_xlarge: \"c3.xlarge\",\n c4_2xlarge: \"c4.2xlarge\",\n c4_4xlarge: \"c4.4xlarge\",\n c4_8xlarge: \"c4.8xlarge\",\n c4_large: \"c4.large\",\n c4_xlarge: \"c4.xlarge\",\n c5_12xlarge: \"c5.12xlarge\",\n c5_18xlarge: \"c5.18xlarge\",\n c5_24xlarge: \"c5.24xlarge\",\n c5_2xlarge: \"c5.2xlarge\",\n c5_4xlarge: \"c5.4xlarge\",\n c5_9xlarge: \"c5.9xlarge\",\n c5_large: \"c5.large\",\n c5_metal: \"c5.metal\",\n c5_xlarge: \"c5.xlarge\",\n c5a_12xlarge: \"c5a.12xlarge\",\n c5a_16xlarge: \"c5a.16xlarge\",\n c5a_24xlarge: \"c5a.24xlarge\",\n c5a_2xlarge: \"c5a.2xlarge\",\n c5a_4xlarge: \"c5a.4xlarge\",\n c5a_8xlarge: \"c5a.8xlarge\",\n c5a_large: \"c5a.large\",\n c5a_xlarge: \"c5a.xlarge\",\n c5ad_12xlarge: \"c5ad.12xlarge\",\n c5ad_16xlarge: \"c5ad.16xlarge\",\n c5ad_24xlarge: \"c5ad.24xlarge\",\n c5ad_2xlarge: \"c5ad.2xlarge\",\n c5ad_4xlarge: \"c5ad.4xlarge\",\n c5ad_8xlarge: \"c5ad.8xlarge\",\n c5ad_large: \"c5ad.large\",\n c5ad_xlarge: \"c5ad.xlarge\",\n c5d_12xlarge: \"c5d.12xlarge\",\n c5d_18xlarge: \"c5d.18xlarge\",\n c5d_24xlarge: \"c5d.24xlarge\",\n c5d_2xlarge: \"c5d.2xlarge\",\n c5d_4xlarge: \"c5d.4xlarge\",\n c5d_9xlarge: \"c5d.9xlarge\",\n c5d_large: \"c5d.large\",\n c5d_metal: \"c5d.metal\",\n c5d_xlarge: \"c5d.xlarge\",\n c5n_18xlarge: \"c5n.18xlarge\",\n c5n_2xlarge: \"c5n.2xlarge\",\n c5n_4xlarge: \"c5n.4xlarge\",\n c5n_9xlarge: \"c5n.9xlarge\",\n c5n_large: \"c5n.large\",\n c5n_metal: \"c5n.metal\",\n c5n_xlarge: \"c5n.xlarge\",\n c6a_12xlarge: \"c6a.12xlarge\",\n c6a_16xlarge: \"c6a.16xlarge\",\n c6a_24xlarge: \"c6a.24xlarge\",\n c6a_2xlarge: \"c6a.2xlarge\",\n c6a_32xlarge: \"c6a.32xlarge\",\n c6a_48xlarge: \"c6a.48xlarge\",\n c6a_4xlarge: \"c6a.4xlarge\",\n c6a_8xlarge: \"c6a.8xlarge\",\n c6a_large: \"c6a.large\",\n c6a_metal: \"c6a.metal\",\n c6a_xlarge: \"c6a.xlarge\",\n c6g_12xlarge: \"c6g.12xlarge\",\n c6g_16xlarge: \"c6g.16xlarge\",\n c6g_2xlarge: \"c6g.2xlarge\",\n c6g_4xlarge: \"c6g.4xlarge\",\n c6g_8xlarge: \"c6g.8xlarge\",\n c6g_large: \"c6g.large\",\n c6g_medium: \"c6g.medium\",\n c6g_metal: \"c6g.metal\",\n c6g_xlarge: \"c6g.xlarge\",\n c6gd_12xlarge: \"c6gd.12xlarge\",\n c6gd_16xlarge: \"c6gd.16xlarge\",\n c6gd_2xlarge: \"c6gd.2xlarge\",\n c6gd_4xlarge: \"c6gd.4xlarge\",\n c6gd_8xlarge: \"c6gd.8xlarge\",\n c6gd_large: \"c6gd.large\",\n c6gd_medium: \"c6gd.medium\",\n c6gd_metal: \"c6gd.metal\",\n c6gd_xlarge: \"c6gd.xlarge\",\n c6gn_12xlarge: \"c6gn.12xlarge\",\n c6gn_16xlarge: \"c6gn.16xlarge\",\n c6gn_2xlarge: \"c6gn.2xlarge\",\n c6gn_4xlarge: \"c6gn.4xlarge\",\n c6gn_8xlarge: \"c6gn.8xlarge\",\n c6gn_large: \"c6gn.large\",\n c6gn_medium: \"c6gn.medium\",\n c6gn_xlarge: \"c6gn.xlarge\",\n c6i_12xlarge: \"c6i.12xlarge\",\n c6i_16xlarge: \"c6i.16xlarge\",\n c6i_24xlarge: \"c6i.24xlarge\",\n c6i_2xlarge: \"c6i.2xlarge\",\n c6i_32xlarge: \"c6i.32xlarge\",\n c6i_4xlarge: \"c6i.4xlarge\",\n c6i_8xlarge: \"c6i.8xlarge\",\n c6i_large: \"c6i.large\",\n c6i_metal: \"c6i.metal\",\n c6i_xlarge: \"c6i.xlarge\",\n c6id_12xlarge: \"c6id.12xlarge\",\n c6id_16xlarge: \"c6id.16xlarge\",\n c6id_24xlarge: \"c6id.24xlarge\",\n c6id_2xlarge: \"c6id.2xlarge\",\n c6id_32xlarge: \"c6id.32xlarge\",\n c6id_4xlarge: \"c6id.4xlarge\",\n c6id_8xlarge: \"c6id.8xlarge\",\n c6id_large: \"c6id.large\",\n c6id_metal: \"c6id.metal\",\n c6id_xlarge: \"c6id.xlarge\",\n c6in_12xlarge: \"c6in.12xlarge\",\n c6in_16xlarge: \"c6in.16xlarge\",\n c6in_24xlarge: \"c6in.24xlarge\",\n c6in_2xlarge: \"c6in.2xlarge\",\n c6in_32xlarge: \"c6in.32xlarge\",\n c6in_4xlarge: \"c6in.4xlarge\",\n c6in_8xlarge: \"c6in.8xlarge\",\n c6in_large: \"c6in.large\",\n c6in_metal: \"c6in.metal\",\n c6in_xlarge: \"c6in.xlarge\",\n c7a_12xlarge: \"c7a.12xlarge\",\n c7a_16xlarge: \"c7a.16xlarge\",\n c7a_24xlarge: \"c7a.24xlarge\",\n c7a_2xlarge: \"c7a.2xlarge\",\n c7a_32xlarge: \"c7a.32xlarge\",\n c7a_48xlarge: \"c7a.48xlarge\",\n c7a_4xlarge: \"c7a.4xlarge\",\n c7a_8xlarge: \"c7a.8xlarge\",\n c7a_large: \"c7a.large\",\n c7a_medium: \"c7a.medium\",\n c7a_metal_48xl: \"c7a.metal-48xl\",\n c7a_xlarge: \"c7a.xlarge\",\n c7g_12xlarge: \"c7g.12xlarge\",\n c7g_16xlarge: \"c7g.16xlarge\",\n c7g_2xlarge: \"c7g.2xlarge\",\n c7g_4xlarge: \"c7g.4xlarge\",\n c7g_8xlarge: \"c7g.8xlarge\",\n c7g_large: \"c7g.large\",\n c7g_medium: \"c7g.medium\",\n c7g_metal: \"c7g.metal\",\n c7g_xlarge: \"c7g.xlarge\",\n c7gd_12xlarge: \"c7gd.12xlarge\",\n c7gd_16xlarge: \"c7gd.16xlarge\",\n c7gd_2xlarge: \"c7gd.2xlarge\",\n c7gd_4xlarge: \"c7gd.4xlarge\",\n c7gd_8xlarge: \"c7gd.8xlarge\",\n c7gd_large: \"c7gd.large\",\n c7gd_medium: \"c7gd.medium\",\n c7gd_metal: \"c7gd.metal\",\n c7gd_xlarge: \"c7gd.xlarge\",\n c7gn_12xlarge: \"c7gn.12xlarge\",\n c7gn_16xlarge: \"c7gn.16xlarge\",\n c7gn_2xlarge: \"c7gn.2xlarge\",\n c7gn_4xlarge: \"c7gn.4xlarge\",\n c7gn_8xlarge: \"c7gn.8xlarge\",\n c7gn_large: \"c7gn.large\",\n c7gn_medium: \"c7gn.medium\",\n c7gn_metal: \"c7gn.metal\",\n c7gn_xlarge: \"c7gn.xlarge\",\n c7i_12xlarge: \"c7i.12xlarge\",\n c7i_16xlarge: \"c7i.16xlarge\",\n c7i_24xlarge: \"c7i.24xlarge\",\n c7i_2xlarge: \"c7i.2xlarge\",\n c7i_48xlarge: \"c7i.48xlarge\",\n c7i_4xlarge: \"c7i.4xlarge\",\n c7i_8xlarge: \"c7i.8xlarge\",\n c7i_flex_2xlarge: \"c7i-flex.2xlarge\",\n c7i_flex_4xlarge: \"c7i-flex.4xlarge\",\n c7i_flex_8xlarge: \"c7i-flex.8xlarge\",\n c7i_flex_large: \"c7i-flex.large\",\n c7i_flex_xlarge: \"c7i-flex.xlarge\",\n c7i_large: \"c7i.large\",\n c7i_metal_24xl: \"c7i.metal-24xl\",\n c7i_metal_48xl: \"c7i.metal-48xl\",\n c7i_xlarge: \"c7i.xlarge\",\n c8g_12xlarge: \"c8g.12xlarge\",\n c8g_16xlarge: \"c8g.16xlarge\",\n c8g_24xlarge: \"c8g.24xlarge\",\n c8g_2xlarge: \"c8g.2xlarge\",\n c8g_48xlarge: \"c8g.48xlarge\",\n c8g_4xlarge: \"c8g.4xlarge\",\n c8g_8xlarge: \"c8g.8xlarge\",\n c8g_large: \"c8g.large\",\n c8g_medium: \"c8g.medium\",\n c8g_metal_24xl: \"c8g.metal-24xl\",\n c8g_metal_48xl: \"c8g.metal-48xl\",\n c8g_xlarge: \"c8g.xlarge\",\n cc1_4xlarge: \"cc1.4xlarge\",\n cc2_8xlarge: \"cc2.8xlarge\",\n cg1_4xlarge: \"cg1.4xlarge\",\n cr1_8xlarge: \"cr1.8xlarge\",\n d2_2xlarge: \"d2.2xlarge\",\n d2_4xlarge: \"d2.4xlarge\",\n d2_8xlarge: \"d2.8xlarge\",\n d2_xlarge: \"d2.xlarge\",\n d3_2xlarge: \"d3.2xlarge\",\n d3_4xlarge: \"d3.4xlarge\",\n d3_8xlarge: \"d3.8xlarge\",\n d3_xlarge: \"d3.xlarge\",\n d3en_12xlarge: \"d3en.12xlarge\",\n d3en_2xlarge: \"d3en.2xlarge\",\n d3en_4xlarge: \"d3en.4xlarge\",\n d3en_6xlarge: \"d3en.6xlarge\",\n d3en_8xlarge: \"d3en.8xlarge\",\n d3en_xlarge: \"d3en.xlarge\",\n dl1_24xlarge: \"dl1.24xlarge\",\n dl2q_24xlarge: \"dl2q.24xlarge\",\n f1_16xlarge: \"f1.16xlarge\",\n f1_2xlarge: \"f1.2xlarge\",\n f1_4xlarge: \"f1.4xlarge\",\n f2_12xlarge: \"f2.12xlarge\",\n f2_48xlarge: \"f2.48xlarge\",\n g2_2xlarge: \"g2.2xlarge\",\n g2_8xlarge: \"g2.8xlarge\",\n g3_16xlarge: \"g3.16xlarge\",\n g3_4xlarge: \"g3.4xlarge\",\n g3_8xlarge: \"g3.8xlarge\",\n g3s_xlarge: \"g3s.xlarge\",\n g4ad_16xlarge: \"g4ad.16xlarge\",\n g4ad_2xlarge: \"g4ad.2xlarge\",\n g4ad_4xlarge: \"g4ad.4xlarge\",\n g4ad_8xlarge: \"g4ad.8xlarge\",\n g4ad_xlarge: \"g4ad.xlarge\",\n g4dn_12xlarge: \"g4dn.12xlarge\",\n g4dn_16xlarge: \"g4dn.16xlarge\",\n g4dn_2xlarge: \"g4dn.2xlarge\",\n g4dn_4xlarge: \"g4dn.4xlarge\",\n g4dn_8xlarge: \"g4dn.8xlarge\",\n g4dn_metal: \"g4dn.metal\",\n g4dn_xlarge: \"g4dn.xlarge\",\n g5_12xlarge: \"g5.12xlarge\",\n g5_16xlarge: \"g5.16xlarge\",\n g5_24xlarge: \"g5.24xlarge\",\n g5_2xlarge: \"g5.2xlarge\",\n g5_48xlarge: \"g5.48xlarge\",\n g5_4xlarge: \"g5.4xlarge\",\n g5_8xlarge: \"g5.8xlarge\",\n g5_xlarge: \"g5.xlarge\",\n g5g_16xlarge: \"g5g.16xlarge\",\n g5g_2xlarge: \"g5g.2xlarge\",\n g5g_4xlarge: \"g5g.4xlarge\",\n g5g_8xlarge: \"g5g.8xlarge\",\n g5g_metal: \"g5g.metal\",\n g5g_xlarge: \"g5g.xlarge\",\n g6_12xlarge: \"g6.12xlarge\",\n g6_16xlarge: \"g6.16xlarge\",\n g6_24xlarge: \"g6.24xlarge\",\n g6_2xlarge: \"g6.2xlarge\",\n g6_48xlarge: \"g6.48xlarge\",\n g6_4xlarge: \"g6.4xlarge\",\n g6_8xlarge: \"g6.8xlarge\",\n g6_xlarge: \"g6.xlarge\",\n g6e_12xlarge: \"g6e.12xlarge\",\n g6e_16xlarge: \"g6e.16xlarge\",\n g6e_24xlarge: \"g6e.24xlarge\",\n g6e_2xlarge: \"g6e.2xlarge\",\n g6e_48xlarge: \"g6e.48xlarge\",\n g6e_4xlarge: \"g6e.4xlarge\",\n g6e_8xlarge: \"g6e.8xlarge\",\n g6e_xlarge: \"g6e.xlarge\",\n gr6_4xlarge: \"gr6.4xlarge\",\n gr6_8xlarge: \"gr6.8xlarge\",\n h1_16xlarge: \"h1.16xlarge\",\n h1_2xlarge: \"h1.2xlarge\",\n h1_4xlarge: \"h1.4xlarge\",\n h1_8xlarge: \"h1.8xlarge\",\n hi1_4xlarge: \"hi1.4xlarge\",\n hpc6a_48xlarge: \"hpc6a.48xlarge\",\n hpc6id_32xlarge: \"hpc6id.32xlarge\",\n hpc7a_12xlarge: \"hpc7a.12xlarge\",\n hpc7a_24xlarge: \"hpc7a.24xlarge\",\n hpc7a_48xlarge: \"hpc7a.48xlarge\",\n hpc7a_96xlarge: \"hpc7a.96xlarge\",\n hpc7g_16xlarge: \"hpc7g.16xlarge\",\n hpc7g_4xlarge: \"hpc7g.4xlarge\",\n hpc7g_8xlarge: \"hpc7g.8xlarge\",\n hs1_8xlarge: \"hs1.8xlarge\",\n i2_2xlarge: \"i2.2xlarge\",\n i2_4xlarge: \"i2.4xlarge\",\n i2_8xlarge: \"i2.8xlarge\",\n i2_xlarge: \"i2.xlarge\",\n i3_16xlarge: \"i3.16xlarge\",\n i3_2xlarge: \"i3.2xlarge\",\n i3_4xlarge: \"i3.4xlarge\",\n i3_8xlarge: \"i3.8xlarge\",\n i3_large: \"i3.large\",\n i3_metal: \"i3.metal\",\n i3_xlarge: \"i3.xlarge\",\n i3en_12xlarge: \"i3en.12xlarge\",\n i3en_24xlarge: \"i3en.24xlarge\",\n i3en_2xlarge: \"i3en.2xlarge\",\n i3en_3xlarge: \"i3en.3xlarge\",\n i3en_6xlarge: \"i3en.6xlarge\",\n i3en_large: \"i3en.large\",\n i3en_metal: \"i3en.metal\",\n i3en_xlarge: \"i3en.xlarge\",\n i4g_16xlarge: \"i4g.16xlarge\",\n i4g_2xlarge: \"i4g.2xlarge\",\n i4g_4xlarge: \"i4g.4xlarge\",\n i4g_8xlarge: \"i4g.8xlarge\",\n i4g_large: \"i4g.large\",\n i4g_xlarge: \"i4g.xlarge\",\n i4i_12xlarge: \"i4i.12xlarge\",\n i4i_16xlarge: \"i4i.16xlarge\",\n i4i_24xlarge: \"i4i.24xlarge\",\n i4i_2xlarge: \"i4i.2xlarge\",\n i4i_32xlarge: \"i4i.32xlarge\",\n i4i_4xlarge: \"i4i.4xlarge\",\n i4i_8xlarge: \"i4i.8xlarge\",\n i4i_large: \"i4i.large\",\n i4i_metal: \"i4i.metal\",\n i4i_xlarge: \"i4i.xlarge\",\n i7ie_12xlarge: \"i7ie.12xlarge\",\n i7ie_18xlarge: \"i7ie.18xlarge\",\n i7ie_24xlarge: \"i7ie.24xlarge\",\n i7ie_2xlarge: \"i7ie.2xlarge\",\n i7ie_3xlarge: \"i7ie.3xlarge\",\n i7ie_48xlarge: \"i7ie.48xlarge\",\n i7ie_6xlarge: \"i7ie.6xlarge\",\n i7ie_large: \"i7ie.large\",\n i7ie_xlarge: \"i7ie.xlarge\",\n i8g_12xlarge: \"i8g.12xlarge\",\n i8g_16xlarge: \"i8g.16xlarge\",\n i8g_24xlarge: \"i8g.24xlarge\",\n i8g_2xlarge: \"i8g.2xlarge\",\n i8g_4xlarge: \"i8g.4xlarge\",\n i8g_8xlarge: \"i8g.8xlarge\",\n i8g_large: \"i8g.large\",\n i8g_metal_24xl: \"i8g.metal-24xl\",\n i8g_xlarge: \"i8g.xlarge\",\n im4gn_16xlarge: \"im4gn.16xlarge\",\n im4gn_2xlarge: \"im4gn.2xlarge\",\n im4gn_4xlarge: \"im4gn.4xlarge\",\n im4gn_8xlarge: \"im4gn.8xlarge\",\n im4gn_large: \"im4gn.large\",\n im4gn_xlarge: \"im4gn.xlarge\",\n inf1_24xlarge: \"inf1.24xlarge\",\n inf1_2xlarge: \"inf1.2xlarge\",\n inf1_6xlarge: \"inf1.6xlarge\",\n inf1_xlarge: \"inf1.xlarge\",\n inf2_24xlarge: \"inf2.24xlarge\",\n inf2_48xlarge: \"inf2.48xlarge\",\n inf2_8xlarge: \"inf2.8xlarge\",\n inf2_xlarge: \"inf2.xlarge\",\n is4gen_2xlarge: \"is4gen.2xlarge\",\n is4gen_4xlarge: \"is4gen.4xlarge\",\n is4gen_8xlarge: \"is4gen.8xlarge\",\n is4gen_large: \"is4gen.large\",\n is4gen_medium: \"is4gen.medium\",\n is4gen_xlarge: \"is4gen.xlarge\",\n m1_large: \"m1.large\",\n m1_medium: \"m1.medium\",\n m1_small: \"m1.small\",\n m1_xlarge: \"m1.xlarge\",\n m2_2xlarge: \"m2.2xlarge\",\n m2_4xlarge: \"m2.4xlarge\",\n m2_xlarge: \"m2.xlarge\",\n m3_2xlarge: \"m3.2xlarge\",\n m3_large: \"m3.large\",\n m3_medium: \"m3.medium\",\n m3_xlarge: \"m3.xlarge\",\n m4_10xlarge: \"m4.10xlarge\",\n m4_16xlarge: \"m4.16xlarge\",\n m4_2xlarge: \"m4.2xlarge\",\n m4_4xlarge: \"m4.4xlarge\",\n m4_large: \"m4.large\",\n m4_xlarge: \"m4.xlarge\",\n m5_12xlarge: \"m5.12xlarge\",\n m5_16xlarge: \"m5.16xlarge\",\n m5_24xlarge: \"m5.24xlarge\",\n m5_2xlarge: \"m5.2xlarge\",\n m5_4xlarge: \"m5.4xlarge\",\n m5_8xlarge: \"m5.8xlarge\",\n m5_large: \"m5.large\",\n m5_metal: \"m5.metal\",\n m5_xlarge: \"m5.xlarge\",\n m5a_12xlarge: \"m5a.12xlarge\",\n m5a_16xlarge: \"m5a.16xlarge\",\n m5a_24xlarge: \"m5a.24xlarge\",\n m5a_2xlarge: \"m5a.2xlarge\",\n m5a_4xlarge: \"m5a.4xlarge\",\n m5a_8xlarge: \"m5a.8xlarge\",\n m5a_large: \"m5a.large\",\n m5a_xlarge: \"m5a.xlarge\",\n m5ad_12xlarge: \"m5ad.12xlarge\",\n m5ad_16xlarge: \"m5ad.16xlarge\",\n m5ad_24xlarge: \"m5ad.24xlarge\",\n m5ad_2xlarge: \"m5ad.2xlarge\",\n m5ad_4xlarge: \"m5ad.4xlarge\",\n m5ad_8xlarge: \"m5ad.8xlarge\",\n m5ad_large: \"m5ad.large\",\n m5ad_xlarge: \"m5ad.xlarge\",\n m5d_12xlarge: \"m5d.12xlarge\",\n m5d_16xlarge: \"m5d.16xlarge\",\n m5d_24xlarge: \"m5d.24xlarge\",\n m5d_2xlarge: \"m5d.2xlarge\",\n m5d_4xlarge: \"m5d.4xlarge\",\n m5d_8xlarge: \"m5d.8xlarge\",\n m5d_large: \"m5d.large\",\n m5d_metal: \"m5d.metal\",\n m5d_xlarge: \"m5d.xlarge\",\n m5dn_12xlarge: \"m5dn.12xlarge\",\n m5dn_16xlarge: \"m5dn.16xlarge\",\n m5dn_24xlarge: \"m5dn.24xlarge\",\n m5dn_2xlarge: \"m5dn.2xlarge\",\n m5dn_4xlarge: \"m5dn.4xlarge\",\n m5dn_8xlarge: \"m5dn.8xlarge\",\n m5dn_large: \"m5dn.large\",\n m5dn_metal: \"m5dn.metal\",\n m5dn_xlarge: \"m5dn.xlarge\",\n m5n_12xlarge: \"m5n.12xlarge\",\n m5n_16xlarge: \"m5n.16xlarge\",\n m5n_24xlarge: \"m5n.24xlarge\",\n m5n_2xlarge: \"m5n.2xlarge\",\n m5n_4xlarge: \"m5n.4xlarge\",\n m5n_8xlarge: \"m5n.8xlarge\",\n m5n_large: \"m5n.large\",\n m5n_metal: \"m5n.metal\",\n m5n_xlarge: \"m5n.xlarge\",\n m5zn_12xlarge: \"m5zn.12xlarge\",\n m5zn_2xlarge: \"m5zn.2xlarge\",\n m5zn_3xlarge: \"m5zn.3xlarge\",\n m5zn_6xlarge: \"m5zn.6xlarge\",\n m5zn_large: \"m5zn.large\",\n m5zn_metal: \"m5zn.metal\",\n m5zn_xlarge: \"m5zn.xlarge\",\n m6a_12xlarge: \"m6a.12xlarge\",\n m6a_16xlarge: \"m6a.16xlarge\",\n m6a_24xlarge: \"m6a.24xlarge\",\n m6a_2xlarge: \"m6a.2xlarge\",\n m6a_32xlarge: \"m6a.32xlarge\",\n m6a_48xlarge: \"m6a.48xlarge\",\n m6a_4xlarge: \"m6a.4xlarge\",\n m6a_8xlarge: \"m6a.8xlarge\",\n m6a_large: \"m6a.large\",\n m6a_metal: \"m6a.metal\",\n m6a_xlarge: \"m6a.xlarge\",\n m6g_12xlarge: \"m6g.12xlarge\",\n m6g_16xlarge: \"m6g.16xlarge\",\n m6g_2xlarge: \"m6g.2xlarge\",\n m6g_4xlarge: \"m6g.4xlarge\",\n m6g_8xlarge: \"m6g.8xlarge\",\n m6g_large: \"m6g.large\",\n m6g_medium: \"m6g.medium\",\n m6g_metal: \"m6g.metal\",\n m6g_xlarge: \"m6g.xlarge\",\n m6gd_12xlarge: \"m6gd.12xlarge\",\n m6gd_16xlarge: \"m6gd.16xlarge\",\n m6gd_2xlarge: \"m6gd.2xlarge\",\n m6gd_4xlarge: \"m6gd.4xlarge\",\n m6gd_8xlarge: \"m6gd.8xlarge\",\n m6gd_large: \"m6gd.large\",\n m6gd_medium: \"m6gd.medium\",\n m6gd_metal: \"m6gd.metal\",\n m6gd_xlarge: \"m6gd.xlarge\",\n m6i_12xlarge: \"m6i.12xlarge\",\n m6i_16xlarge: \"m6i.16xlarge\",\n m6i_24xlarge: \"m6i.24xlarge\",\n m6i_2xlarge: \"m6i.2xlarge\",\n m6i_32xlarge: \"m6i.32xlarge\",\n m6i_4xlarge: \"m6i.4xlarge\",\n m6i_8xlarge: \"m6i.8xlarge\",\n m6i_large: \"m6i.large\",\n m6i_metal: \"m6i.metal\",\n m6i_xlarge: \"m6i.xlarge\",\n m6id_12xlarge: \"m6id.12xlarge\",\n m6id_16xlarge: \"m6id.16xlarge\",\n m6id_24xlarge: \"m6id.24xlarge\",\n m6id_2xlarge: \"m6id.2xlarge\",\n m6id_32xlarge: \"m6id.32xlarge\",\n m6id_4xlarge: \"m6id.4xlarge\",\n m6id_8xlarge: \"m6id.8xlarge\",\n m6id_large: \"m6id.large\",\n m6id_metal: \"m6id.metal\",\n m6id_xlarge: \"m6id.xlarge\",\n m6idn_12xlarge: \"m6idn.12xlarge\",\n m6idn_16xlarge: \"m6idn.16xlarge\",\n m6idn_24xlarge: \"m6idn.24xlarge\",\n m6idn_2xlarge: \"m6idn.2xlarge\",\n m6idn_32xlarge: \"m6idn.32xlarge\",\n m6idn_4xlarge: \"m6idn.4xlarge\",\n m6idn_8xlarge: \"m6idn.8xlarge\",\n m6idn_large: \"m6idn.large\",\n m6idn_metal: \"m6idn.metal\",\n m6idn_xlarge: \"m6idn.xlarge\",\n m6in_12xlarge: \"m6in.12xlarge\",\n m6in_16xlarge: \"m6in.16xlarge\",\n m6in_24xlarge: \"m6in.24xlarge\",\n m6in_2xlarge: \"m6in.2xlarge\",\n m6in_32xlarge: \"m6in.32xlarge\",\n m6in_4xlarge: \"m6in.4xlarge\",\n m6in_8xlarge: \"m6in.8xlarge\",\n m6in_large: \"m6in.large\",\n m6in_metal: \"m6in.metal\",\n m6in_xlarge: \"m6in.xlarge\",\n m7a_12xlarge: \"m7a.12xlarge\",\n m7a_16xlarge: \"m7a.16xlarge\",\n m7a_24xlarge: \"m7a.24xlarge\",\n m7a_2xlarge: \"m7a.2xlarge\",\n m7a_32xlarge: \"m7a.32xlarge\",\n m7a_48xlarge: \"m7a.48xlarge\",\n m7a_4xlarge: \"m7a.4xlarge\",\n m7a_8xlarge: \"m7a.8xlarge\",\n m7a_large: \"m7a.large\",\n m7a_medium: \"m7a.medium\",\n m7a_metal_48xl: \"m7a.metal-48xl\",\n m7a_xlarge: \"m7a.xlarge\",\n m7g_12xlarge: \"m7g.12xlarge\",\n m7g_16xlarge: \"m7g.16xlarge\",\n m7g_2xlarge: \"m7g.2xlarge\",\n m7g_4xlarge: \"m7g.4xlarge\",\n m7g_8xlarge: \"m7g.8xlarge\",\n m7g_large: \"m7g.large\",\n m7g_medium: \"m7g.medium\",\n m7g_metal: \"m7g.metal\",\n m7g_xlarge: \"m7g.xlarge\",\n m7gd_12xlarge: \"m7gd.12xlarge\",\n m7gd_16xlarge: \"m7gd.16xlarge\",\n m7gd_2xlarge: \"m7gd.2xlarge\",\n m7gd_4xlarge: \"m7gd.4xlarge\",\n m7gd_8xlarge: \"m7gd.8xlarge\",\n m7gd_large: \"m7gd.large\",\n m7gd_medium: \"m7gd.medium\",\n m7gd_metal: \"m7gd.metal\",\n m7gd_xlarge: \"m7gd.xlarge\",\n m7i_12xlarge: \"m7i.12xlarge\",\n m7i_16xlarge: \"m7i.16xlarge\",\n m7i_24xlarge: \"m7i.24xlarge\",\n m7i_2xlarge: \"m7i.2xlarge\",\n m7i_48xlarge: \"m7i.48xlarge\",\n m7i_4xlarge: \"m7i.4xlarge\",\n m7i_8xlarge: \"m7i.8xlarge\",\n m7i_flex_2xlarge: \"m7i-flex.2xlarge\",\n m7i_flex_4xlarge: \"m7i-flex.4xlarge\",\n m7i_flex_8xlarge: \"m7i-flex.8xlarge\",\n m7i_flex_large: \"m7i-flex.large\",\n m7i_flex_xlarge: \"m7i-flex.xlarge\",\n m7i_large: \"m7i.large\",\n m7i_metal_24xl: \"m7i.metal-24xl\",\n m7i_metal_48xl: \"m7i.metal-48xl\",\n m7i_xlarge: \"m7i.xlarge\",\n m8g_12xlarge: \"m8g.12xlarge\",\n m8g_16xlarge: \"m8g.16xlarge\",\n m8g_24xlarge: \"m8g.24xlarge\",\n m8g_2xlarge: \"m8g.2xlarge\",\n m8g_48xlarge: \"m8g.48xlarge\",\n m8g_4xlarge: \"m8g.4xlarge\",\n m8g_8xlarge: \"m8g.8xlarge\",\n m8g_large: \"m8g.large\",\n m8g_medium: \"m8g.medium\",\n m8g_metal_24xl: \"m8g.metal-24xl\",\n m8g_metal_48xl: \"m8g.metal-48xl\",\n m8g_xlarge: \"m8g.xlarge\",\n mac1_metal: \"mac1.metal\",\n mac2_m1ultra_metal: \"mac2-m1ultra.metal\",\n mac2_m2_metal: \"mac2-m2.metal\",\n mac2_m2pro_metal: \"mac2-m2pro.metal\",\n mac2_metal: \"mac2.metal\",\n p2_16xlarge: \"p2.16xlarge\",\n p2_8xlarge: \"p2.8xlarge\",\n p2_xlarge: \"p2.xlarge\",\n p3_16xlarge: \"p3.16xlarge\",\n p3_2xlarge: \"p3.2xlarge\",\n p3_8xlarge: \"p3.8xlarge\",\n p3dn_24xlarge: \"p3dn.24xlarge\",\n p4d_24xlarge: \"p4d.24xlarge\",\n p4de_24xlarge: \"p4de.24xlarge\",\n p5_48xlarge: \"p5.48xlarge\",\n p5e_48xlarge: \"p5e.48xlarge\",\n p5en_48xlarge: \"p5en.48xlarge\",\n r3_2xlarge: \"r3.2xlarge\",\n r3_4xlarge: \"r3.4xlarge\",\n r3_8xlarge: \"r3.8xlarge\",\n r3_large: \"r3.large\",\n r3_xlarge: \"r3.xlarge\",\n r4_16xlarge: \"r4.16xlarge\",\n r4_2xlarge: \"r4.2xlarge\",\n r4_4xlarge: \"r4.4xlarge\",\n r4_8xlarge: \"r4.8xlarge\",\n r4_large: \"r4.large\",\n r4_xlarge: \"r4.xlarge\",\n r5_12xlarge: \"r5.12xlarge\",\n r5_16xlarge: \"r5.16xlarge\",\n r5_24xlarge: \"r5.24xlarge\",\n r5_2xlarge: \"r5.2xlarge\",\n r5_4xlarge: \"r5.4xlarge\",\n r5_8xlarge: \"r5.8xlarge\",\n r5_large: \"r5.large\",\n r5_metal: \"r5.metal\",\n r5_xlarge: \"r5.xlarge\",\n r5a_12xlarge: \"r5a.12xlarge\",\n r5a_16xlarge: \"r5a.16xlarge\",\n r5a_24xlarge: \"r5a.24xlarge\",\n r5a_2xlarge: \"r5a.2xlarge\",\n r5a_4xlarge: \"r5a.4xlarge\",\n r5a_8xlarge: \"r5a.8xlarge\",\n r5a_large: \"r5a.large\",\n r5a_xlarge: \"r5a.xlarge\",\n r5ad_12xlarge: \"r5ad.12xlarge\",\n r5ad_16xlarge: \"r5ad.16xlarge\",\n r5ad_24xlarge: \"r5ad.24xlarge\",\n r5ad_2xlarge: \"r5ad.2xlarge\",\n r5ad_4xlarge: \"r5ad.4xlarge\",\n r5ad_8xlarge: \"r5ad.8xlarge\",\n r5ad_large: \"r5ad.large\",\n r5ad_xlarge: \"r5ad.xlarge\",\n r5b_12xlarge: \"r5b.12xlarge\",\n r5b_16xlarge: \"r5b.16xlarge\",\n r5b_24xlarge: \"r5b.24xlarge\",\n r5b_2xlarge: \"r5b.2xlarge\",\n r5b_4xlarge: \"r5b.4xlarge\",\n r5b_8xlarge: \"r5b.8xlarge\",\n r5b_large: \"r5b.large\",\n r5b_metal: \"r5b.metal\",\n r5b_xlarge: \"r5b.xlarge\",\n r5d_12xlarge: \"r5d.12xlarge\",\n r5d_16xlarge: \"r5d.16xlarge\",\n r5d_24xlarge: \"r5d.24xlarge\",\n r5d_2xlarge: \"r5d.2xlarge\",\n r5d_4xlarge: \"r5d.4xlarge\",\n r5d_8xlarge: \"r5d.8xlarge\",\n r5d_large: \"r5d.large\",\n r5d_metal: \"r5d.metal\",\n r5d_xlarge: \"r5d.xlarge\",\n r5dn_12xlarge: \"r5dn.12xlarge\",\n r5dn_16xlarge: \"r5dn.16xlarge\",\n r5dn_24xlarge: \"r5dn.24xlarge\",\n r5dn_2xlarge: \"r5dn.2xlarge\",\n r5dn_4xlarge: \"r5dn.4xlarge\",\n r5dn_8xlarge: \"r5dn.8xlarge\",\n r5dn_large: \"r5dn.large\",\n r5dn_metal: \"r5dn.metal\",\n r5dn_xlarge: \"r5dn.xlarge\",\n r5n_12xlarge: \"r5n.12xlarge\",\n r5n_16xlarge: \"r5n.16xlarge\",\n r5n_24xlarge: \"r5n.24xlarge\",\n r5n_2xlarge: \"r5n.2xlarge\",\n r5n_4xlarge: \"r5n.4xlarge\",\n r5n_8xlarge: \"r5n.8xlarge\",\n r5n_large: \"r5n.large\",\n r5n_metal: \"r5n.metal\",\n r5n_xlarge: \"r5n.xlarge\",\n r6a_12xlarge: \"r6a.12xlarge\",\n r6a_16xlarge: \"r6a.16xlarge\",\n r6a_24xlarge: \"r6a.24xlarge\",\n r6a_2xlarge: \"r6a.2xlarge\",\n r6a_32xlarge: \"r6a.32xlarge\",\n r6a_48xlarge: \"r6a.48xlarge\",\n r6a_4xlarge: \"r6a.4xlarge\",\n r6a_8xlarge: \"r6a.8xlarge\",\n r6a_large: \"r6a.large\",\n r6a_metal: \"r6a.metal\",\n r6a_xlarge: \"r6a.xlarge\",\n r6g_12xlarge: \"r6g.12xlarge\",\n r6g_16xlarge: \"r6g.16xlarge\",\n r6g_2xlarge: \"r6g.2xlarge\",\n r6g_4xlarge: \"r6g.4xlarge\",\n r6g_8xlarge: \"r6g.8xlarge\",\n r6g_large: \"r6g.large\",\n r6g_medium: \"r6g.medium\",\n r6g_metal: \"r6g.metal\",\n r6g_xlarge: \"r6g.xlarge\",\n r6gd_12xlarge: \"r6gd.12xlarge\",\n r6gd_16xlarge: \"r6gd.16xlarge\",\n r6gd_2xlarge: \"r6gd.2xlarge\",\n r6gd_4xlarge: \"r6gd.4xlarge\",\n r6gd_8xlarge: \"r6gd.8xlarge\",\n r6gd_large: \"r6gd.large\",\n r6gd_medium: \"r6gd.medium\",\n r6gd_metal: \"r6gd.metal\",\n r6gd_xlarge: \"r6gd.xlarge\",\n r6i_12xlarge: \"r6i.12xlarge\",\n r6i_16xlarge: \"r6i.16xlarge\",\n r6i_24xlarge: \"r6i.24xlarge\",\n r6i_2xlarge: \"r6i.2xlarge\",\n r6i_32xlarge: \"r6i.32xlarge\",\n r6i_4xlarge: \"r6i.4xlarge\",\n r6i_8xlarge: \"r6i.8xlarge\",\n r6i_large: \"r6i.large\",\n r6i_metal: \"r6i.metal\",\n r6i_xlarge: \"r6i.xlarge\",\n r6id_12xlarge: \"r6id.12xlarge\",\n r6id_16xlarge: \"r6id.16xlarge\",\n r6id_24xlarge: \"r6id.24xlarge\",\n r6id_2xlarge: \"r6id.2xlarge\",\n r6id_32xlarge: \"r6id.32xlarge\",\n r6id_4xlarge: \"r6id.4xlarge\",\n r6id_8xlarge: \"r6id.8xlarge\",\n r6id_large: \"r6id.large\",\n r6id_metal: \"r6id.metal\",\n r6id_xlarge: \"r6id.xlarge\",\n r6idn_12xlarge: \"r6idn.12xlarge\",\n r6idn_16xlarge: \"r6idn.16xlarge\",\n r6idn_24xlarge: \"r6idn.24xlarge\",\n r6idn_2xlarge: \"r6idn.2xlarge\",\n r6idn_32xlarge: \"r6idn.32xlarge\",\n r6idn_4xlarge: \"r6idn.4xlarge\",\n r6idn_8xlarge: \"r6idn.8xlarge\",\n r6idn_large: \"r6idn.large\",\n r6idn_metal: \"r6idn.metal\",\n r6idn_xlarge: \"r6idn.xlarge\",\n r6in_12xlarge: \"r6in.12xlarge\",\n r6in_16xlarge: \"r6in.16xlarge\",\n r6in_24xlarge: \"r6in.24xlarge\",\n r6in_2xlarge: \"r6in.2xlarge\",\n r6in_32xlarge: \"r6in.32xlarge\",\n r6in_4xlarge: \"r6in.4xlarge\",\n r6in_8xlarge: \"r6in.8xlarge\",\n r6in_large: \"r6in.large\",\n r6in_metal: \"r6in.metal\",\n r6in_xlarge: \"r6in.xlarge\",\n r7a_12xlarge: \"r7a.12xlarge\",\n r7a_16xlarge: \"r7a.16xlarge\",\n r7a_24xlarge: \"r7a.24xlarge\",\n r7a_2xlarge: \"r7a.2xlarge\",\n r7a_32xlarge: \"r7a.32xlarge\",\n r7a_48xlarge: \"r7a.48xlarge\",\n r7a_4xlarge: \"r7a.4xlarge\",\n r7a_8xlarge: \"r7a.8xlarge\",\n r7a_large: \"r7a.large\",\n r7a_medium: \"r7a.medium\",\n r7a_metal_48xl: \"r7a.metal-48xl\",\n r7a_xlarge: \"r7a.xlarge\",\n r7g_12xlarge: \"r7g.12xlarge\",\n r7g_16xlarge: \"r7g.16xlarge\",\n r7g_2xlarge: \"r7g.2xlarge\",\n r7g_4xlarge: \"r7g.4xlarge\",\n r7g_8xlarge: \"r7g.8xlarge\",\n r7g_large: \"r7g.large\",\n r7g_medium: \"r7g.medium\",\n r7g_metal: \"r7g.metal\",\n r7g_xlarge: \"r7g.xlarge\",\n r7gd_12xlarge: \"r7gd.12xlarge\",\n r7gd_16xlarge: \"r7gd.16xlarge\",\n r7gd_2xlarge: \"r7gd.2xlarge\",\n r7gd_4xlarge: \"r7gd.4xlarge\",\n r7gd_8xlarge: \"r7gd.8xlarge\",\n r7gd_large: \"r7gd.large\",\n r7gd_medium: \"r7gd.medium\",\n r7gd_metal: \"r7gd.metal\",\n r7gd_xlarge: \"r7gd.xlarge\",\n r7i_12xlarge: \"r7i.12xlarge\",\n r7i_16xlarge: \"r7i.16xlarge\",\n r7i_24xlarge: \"r7i.24xlarge\",\n r7i_2xlarge: \"r7i.2xlarge\",\n r7i_48xlarge: \"r7i.48xlarge\",\n r7i_4xlarge: \"r7i.4xlarge\",\n r7i_8xlarge: \"r7i.8xlarge\",\n r7i_large: \"r7i.large\",\n r7i_metal_24xl: \"r7i.metal-24xl\",\n r7i_metal_48xl: \"r7i.metal-48xl\",\n r7i_xlarge: \"r7i.xlarge\",\n r7iz_12xlarge: \"r7iz.12xlarge\",\n r7iz_16xlarge: \"r7iz.16xlarge\",\n r7iz_2xlarge: \"r7iz.2xlarge\",\n r7iz_32xlarge: \"r7iz.32xlarge\",\n r7iz_4xlarge: \"r7iz.4xlarge\",\n r7iz_8xlarge: \"r7iz.8xlarge\",\n r7iz_large: \"r7iz.large\",\n r7iz_metal_16xl: \"r7iz.metal-16xl\",\n r7iz_metal_32xl: \"r7iz.metal-32xl\",\n r7iz_xlarge: \"r7iz.xlarge\",\n r8g_12xlarge: \"r8g.12xlarge\",\n r8g_16xlarge: \"r8g.16xlarge\",\n r8g_24xlarge: \"r8g.24xlarge\",\n r8g_2xlarge: \"r8g.2xlarge\",\n r8g_48xlarge: \"r8g.48xlarge\",\n r8g_4xlarge: \"r8g.4xlarge\",\n r8g_8xlarge: \"r8g.8xlarge\",\n r8g_large: \"r8g.large\",\n r8g_medium: \"r8g.medium\",\n r8g_metal_24xl: \"r8g.metal-24xl\",\n r8g_metal_48xl: \"r8g.metal-48xl\",\n r8g_xlarge: \"r8g.xlarge\",\n t1_micro: \"t1.micro\",\n t2_2xlarge: \"t2.2xlarge\",\n t2_large: \"t2.large\",\n t2_medium: \"t2.medium\",\n t2_micro: \"t2.micro\",\n t2_nano: \"t2.nano\",\n t2_small: \"t2.small\",\n t2_xlarge: \"t2.xlarge\",\n t3_2xlarge: \"t3.2xlarge\",\n t3_large: \"t3.large\",\n t3_medium: \"t3.medium\",\n t3_micro: \"t3.micro\",\n t3_nano: \"t3.nano\",\n t3_small: \"t3.small\",\n t3_xlarge: \"t3.xlarge\",\n t3a_2xlarge: \"t3a.2xlarge\",\n t3a_large: \"t3a.large\",\n t3a_medium: \"t3a.medium\",\n t3a_micro: \"t3a.micro\",\n t3a_nano: \"t3a.nano\",\n t3a_small: \"t3a.small\",\n t3a_xlarge: \"t3a.xlarge\",\n t4g_2xlarge: \"t4g.2xlarge\",\n t4g_large: \"t4g.large\",\n t4g_medium: \"t4g.medium\",\n t4g_micro: \"t4g.micro\",\n t4g_nano: \"t4g.nano\",\n t4g_small: \"t4g.small\",\n t4g_xlarge: \"t4g.xlarge\",\n trn1_2xlarge: \"trn1.2xlarge\",\n trn1_32xlarge: \"trn1.32xlarge\",\n trn1n_32xlarge: \"trn1n.32xlarge\",\n trn2_48xlarge: \"trn2.48xlarge\",\n u7i_12tb_224xlarge: \"u7i-12tb.224xlarge\",\n u7i_6tb_112xlarge: \"u7i-6tb.112xlarge\",\n u7i_8tb_112xlarge: \"u7i-8tb.112xlarge\",\n u7ib_12tb_224xlarge: \"u7ib-12tb.224xlarge\",\n u7in_16tb_224xlarge: \"u7in-16tb.224xlarge\",\n u7in_24tb_224xlarge: \"u7in-24tb.224xlarge\",\n u7in_32tb_224xlarge: \"u7in-32tb.224xlarge\",\n u7inh_32tb_480xlarge: \"u7inh-32tb.480xlarge\",\n u_12tb1_112xlarge: \"u-12tb1.112xlarge\",\n u_12tb1_metal: \"u-12tb1.metal\",\n u_18tb1_112xlarge: \"u-18tb1.112xlarge\",\n u_18tb1_metal: \"u-18tb1.metal\",\n u_24tb1_112xlarge: \"u-24tb1.112xlarge\",\n u_24tb1_metal: \"u-24tb1.metal\",\n u_3tb1_56xlarge: \"u-3tb1.56xlarge\",\n u_6tb1_112xlarge: \"u-6tb1.112xlarge\",\n u_6tb1_56xlarge: \"u-6tb1.56xlarge\",\n u_6tb1_metal: \"u-6tb1.metal\",\n u_9tb1_112xlarge: \"u-9tb1.112xlarge\",\n u_9tb1_metal: \"u-9tb1.metal\",\n vt1_24xlarge: \"vt1.24xlarge\",\n vt1_3xlarge: \"vt1.3xlarge\",\n vt1_6xlarge: \"vt1.6xlarge\",\n x1_16xlarge: \"x1.16xlarge\",\n x1_32xlarge: \"x1.32xlarge\",\n x1e_16xlarge: \"x1e.16xlarge\",\n x1e_2xlarge: \"x1e.2xlarge\",\n x1e_32xlarge: \"x1e.32xlarge\",\n x1e_4xlarge: \"x1e.4xlarge\",\n x1e_8xlarge: \"x1e.8xlarge\",\n x1e_xlarge: \"x1e.xlarge\",\n x2gd_12xlarge: \"x2gd.12xlarge\",\n x2gd_16xlarge: \"x2gd.16xlarge\",\n x2gd_2xlarge: \"x2gd.2xlarge\",\n x2gd_4xlarge: \"x2gd.4xlarge\",\n x2gd_8xlarge: \"x2gd.8xlarge\",\n x2gd_large: \"x2gd.large\",\n x2gd_medium: \"x2gd.medium\",\n x2gd_metal: \"x2gd.metal\",\n x2gd_xlarge: \"x2gd.xlarge\",\n x2idn_16xlarge: \"x2idn.16xlarge\",\n x2idn_24xlarge: \"x2idn.24xlarge\",\n x2idn_32xlarge: \"x2idn.32xlarge\",\n x2idn_metal: \"x2idn.metal\",\n x2iedn_16xlarge: \"x2iedn.16xlarge\",\n x2iedn_24xlarge: \"x2iedn.24xlarge\",\n x2iedn_2xlarge: \"x2iedn.2xlarge\",\n x2iedn_32xlarge: \"x2iedn.32xlarge\",\n x2iedn_4xlarge: \"x2iedn.4xlarge\",\n x2iedn_8xlarge: \"x2iedn.8xlarge\",\n x2iedn_metal: \"x2iedn.metal\",\n x2iedn_xlarge: \"x2iedn.xlarge\",\n x2iezn_12xlarge: \"x2iezn.12xlarge\",\n x2iezn_2xlarge: \"x2iezn.2xlarge\",\n x2iezn_4xlarge: \"x2iezn.4xlarge\",\n x2iezn_6xlarge: \"x2iezn.6xlarge\",\n x2iezn_8xlarge: \"x2iezn.8xlarge\",\n x2iezn_metal: \"x2iezn.metal\",\n x8g_12xlarge: \"x8g.12xlarge\",\n x8g_16xlarge: \"x8g.16xlarge\",\n x8g_24xlarge: \"x8g.24xlarge\",\n x8g_2xlarge: \"x8g.2xlarge\",\n x8g_48xlarge: \"x8g.48xlarge\",\n x8g_4xlarge: \"x8g.4xlarge\",\n x8g_8xlarge: \"x8g.8xlarge\",\n x8g_large: \"x8g.large\",\n x8g_medium: \"x8g.medium\",\n x8g_metal_24xl: \"x8g.metal-24xl\",\n x8g_metal_48xl: \"x8g.metal-48xl\",\n x8g_xlarge: \"x8g.xlarge\",\n z1d_12xlarge: \"z1d.12xlarge\",\n z1d_2xlarge: \"z1d.2xlarge\",\n z1d_3xlarge: \"z1d.3xlarge\",\n z1d_6xlarge: \"z1d.6xlarge\",\n z1d_large: \"z1d.large\",\n z1d_metal: \"z1d.metal\",\n z1d_xlarge: \"z1d.xlarge\"\n};\nvar FleetCapacityReservationTenancy = {\n default: \"default\"\n};\nvar CarrierGatewayState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar ClientVpnAuthenticationType = {\n certificate_authentication: \"certificate-authentication\",\n directory_service_authentication: \"directory-service-authentication\",\n federated_authentication: \"federated-authentication\"\n};\nvar SelfServicePortal = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar TransportProtocol = {\n tcp: \"tcp\",\n udp: \"udp\"\n};\nvar ClientVpnEndpointStatusCode = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending_associate: \"pending-associate\"\n};\nvar ClientVpnRouteStatusCode = {\n active: \"active\",\n creating: \"creating\",\n deleting: \"deleting\",\n failed: \"failed\"\n};\nvar GatewayType = {\n ipsec_1: \"ipsec.1\"\n};\nvar BlockPublicAccessMode = {\n block_bidirectional: \"block-bidirectional\",\n block_ingress: \"block-ingress\",\n off: \"off\"\n};\nvar HostnameType = {\n ip_name: \"ip-name\",\n resource_name: \"resource-name\"\n};\nvar SubnetState = {\n available: \"available\",\n pending: \"pending\",\n unavailable: \"unavailable\"\n};\nvar VpcEncryptionControlMode = {\n enforce: \"enforce\",\n monitor: \"monitor\"\n};\nvar VpcEncryptionControlExclusionState = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n enabling: \"enabling\"\n};\nvar VpcEncryptionControlState = {\n available: \"available\",\n creating: \"creating\",\n delete_failed: \"delete-failed\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n enforce_failed: \"enforce-failed\",\n enforce_in_progress: \"enforce-in-progress\",\n monitor_failed: \"monitor-failed\",\n monitor_in_progress: \"monitor-in-progress\"\n};\nvar Tenancy = {\n dedicated: \"dedicated\",\n default: \"default\",\n host: \"host\"\n};\nvar VpcState = {\n available: \"available\",\n pending: \"pending\"\n};\nvar FleetExcessCapacityTerminationPolicy = {\n NO_TERMINATION: \"no-termination\",\n TERMINATION: \"termination\"\n};\nvar VolumeType = {\n gp2: \"gp2\",\n gp3: \"gp3\",\n io1: \"io1\",\n io2: \"io2\",\n sc1: \"sc1\",\n st1: \"st1\",\n standard: \"standard\"\n};\nvar BareMetal = {\n EXCLUDED: \"excluded\",\n INCLUDED: \"included\",\n REQUIRED: \"required\"\n};\nvar BurstablePerformance = {\n EXCLUDED: \"excluded\",\n INCLUDED: \"included\",\n REQUIRED: \"required\"\n};\nvar CpuManufacturer = {\n AMAZON_WEB_SERVICES: \"amazon-web-services\",\n AMD: \"amd\",\n APPLE: \"apple\",\n INTEL: \"intel\"\n};\nvar InstanceGeneration = {\n CURRENT: \"current\",\n PREVIOUS: \"previous\"\n};\nvar LocalStorage = {\n EXCLUDED: \"excluded\",\n INCLUDED: \"included\",\n REQUIRED: \"required\"\n};\nvar LocalStorageType = {\n HDD: \"hdd\",\n SSD: \"ssd\"\n};\nvar FleetOnDemandAllocationStrategy = {\n LOWEST_PRICE: \"lowest-price\",\n PRIORITIZED: \"prioritized\"\n};\nvar FleetCapacityReservationUsageStrategy = {\n USE_CAPACITY_RESERVATIONS_FIRST: \"use-capacity-reservations-first\"\n};\nvar SpotAllocationStrategy = {\n CAPACITY_OPTIMIZED: \"capacity-optimized\",\n CAPACITY_OPTIMIZED_PRIORITIZED: \"capacity-optimized-prioritized\",\n DIVERSIFIED: \"diversified\",\n LOWEST_PRICE: \"lowest-price\",\n PRICE_CAPACITY_OPTIMIZED: \"price-capacity-optimized\"\n};\nvar SpotInstanceInterruptionBehavior = {\n hibernate: \"hibernate\",\n stop: \"stop\",\n terminate: \"terminate\"\n};\nvar FleetReplacementStrategy = {\n LAUNCH: \"launch\",\n LAUNCH_BEFORE_TERMINATE: \"launch-before-terminate\"\n};\nvar DefaultTargetCapacityType = {\n CAPACITY_BLOCK: \"capacity-block\",\n ON_DEMAND: \"on-demand\",\n SPOT: \"spot\"\n};\nvar TargetCapacityUnitType = {\n MEMORY_MIB: \"memory-mib\",\n UNITS: \"units\",\n VCPU: \"vcpu\"\n};\nvar FleetType = {\n INSTANT: \"instant\",\n MAINTAIN: \"maintain\",\n REQUEST: \"request\"\n};\nvar InstanceLifecycle = {\n ON_DEMAND: \"on-demand\",\n SPOT: \"spot\"\n};\nvar PlatformValues = {\n Windows: \"Windows\"\n};\nvar DestinationFileFormat = {\n parquet: \"parquet\",\n plain_text: \"plain-text\"\n};\nvar LogDestinationType = {\n cloud_watch_logs: \"cloud-watch-logs\",\n kinesis_data_firehose: \"kinesis-data-firehose\",\n s3: \"s3\"\n};\nvar FlowLogsResourceType = {\n NetworkInterface: \"NetworkInterface\",\n Subnet: \"Subnet\",\n TransitGateway: \"TransitGateway\",\n TransitGatewayAttachment: \"TransitGatewayAttachment\",\n VPC: \"VPC\"\n};\nvar TrafficType = {\n ACCEPT: \"ACCEPT\",\n ALL: \"ALL\",\n REJECT: \"REJECT\"\n};\nvar Ec2InstanceConnectEndpointState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\"\n};\nvar ContainerFormat = {\n ova: \"ova\"\n};\nvar DiskImageFormat = {\n RAW: \"RAW\",\n VHD: \"VHD\",\n VMDK: \"VMDK\"\n};\nvar ExportEnvironment = {\n citrix: \"citrix\",\n microsoft: \"microsoft\",\n vmware: \"vmware\"\n};\nvar ExportTaskState = {\n active: \"active\",\n cancelled: \"cancelled\",\n cancelling: \"cancelling\",\n completed: \"completed\"\n};\nvar IpamMeteredAccount = {\n ipam_owner: \"ipam-owner\",\n resource_owner: \"resource-owner\"\n};\nvar IpamTier = {\n advanced: \"advanced\",\n free: \"free\"\n};\nvar IpamState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n isolate_complete: \"isolate-complete\",\n isolate_in_progress: \"isolate-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar IpamExternalResourceVerificationTokenState = {\n CREATE_COMPLETE: \"create-complete\",\n CREATE_FAILED: \"create-failed\",\n CREATE_IN_PROGRESS: \"create-in-progress\",\n DELETE_COMPLETE: \"delete-complete\",\n DELETE_FAILED: \"delete-failed\",\n DELETE_IN_PROGRESS: \"delete-in-progress\"\n};\nvar TokenState = {\n expired: \"expired\",\n valid: \"valid\"\n};\nvar IpamPoolAwsService = {\n ec2: \"ec2\"\n};\nvar IpamPoolPublicIpSource = {\n amazon: \"amazon\",\n byoip: \"byoip\"\n};\nvar IpamPoolSourceResourceType = {\n vpc: \"vpc\"\n};\nvar IpamScopeType = {\n private: \"private\",\n public: \"public\"\n};\nvar IpamPoolState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n isolate_complete: \"isolate-complete\",\n isolate_in_progress: \"isolate-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar IpamResourceDiscoveryState = {\n CREATE_COMPLETE: \"create-complete\",\n CREATE_FAILED: \"create-failed\",\n CREATE_IN_PROGRESS: \"create-in-progress\",\n DELETE_COMPLETE: \"delete-complete\",\n DELETE_FAILED: \"delete-failed\",\n DELETE_IN_PROGRESS: \"delete-in-progress\",\n ISOLATE_COMPLETE: \"isolate-complete\",\n ISOLATE_IN_PROGRESS: \"isolate-in-progress\",\n MODIFY_COMPLETE: \"modify-complete\",\n MODIFY_FAILED: \"modify-failed\",\n MODIFY_IN_PROGRESS: \"modify-in-progress\",\n RESTORE_IN_PROGRESS: \"restore-in-progress\"\n};\nvar IpamScopeState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n isolate_complete: \"isolate-complete\",\n isolate_in_progress: \"isolate-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar KeyFormat = {\n pem: \"pem\",\n ppk: \"ppk\"\n};\nvar KeyType = {\n ed25519: \"ed25519\",\n rsa: \"rsa\"\n};\nvar CapacityReservationPreference = {\n capacity_reservations_only: \"capacity-reservations-only\",\n none: \"none\",\n open: \"open\"\n};\nvar AmdSevSnpSpecification = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar ShutdownBehavior = {\n stop: \"stop\",\n terminate: \"terminate\"\n};\nvar MarketType = {\n capacity_block: \"capacity-block\",\n spot: \"spot\"\n};\nvar InstanceInterruptionBehavior = {\n hibernate: \"hibernate\",\n stop: \"stop\",\n terminate: \"terminate\"\n};\nvar SpotInstanceType = {\n one_time: \"one-time\",\n persistent: \"persistent\"\n};\nvar LaunchTemplateAutoRecoveryState = {\n default: \"default\",\n disabled: \"disabled\"\n};\nvar LaunchTemplateInstanceMetadataEndpointState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar LaunchTemplateInstanceMetadataProtocolIpv6 = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar LaunchTemplateHttpTokensState = {\n optional: \"optional\",\n required: \"required\"\n};\nvar LaunchTemplateInstanceMetadataTagsState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar InstanceBandwidthWeighting = {\n DEFAULT: \"default\",\n EBS_1: \"ebs-1\",\n VPC_1: \"vpc-1\"\n};\nvar LaunchTemplateInstanceMetadataOptionsState = {\n applied: \"applied\",\n pending: \"pending\"\n};\nvar CopySnapshotRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PresignedUrl && { PresignedUrl: import_smithy_client.SENSITIVE_STRING }\n}), \"CopySnapshotRequestFilterSensitiveLog\");\nvar KeyPairFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyMaterial && { KeyMaterial: import_smithy_client.SENSITIVE_STRING }\n}), \"KeyPairFilterSensitiveLog\");\nvar RequestLaunchTemplateDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"RequestLaunchTemplateDataFilterSensitiveLog\");\nvar CreateLaunchTemplateRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: RequestLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"CreateLaunchTemplateRequestFilterSensitiveLog\");\nvar CreateLaunchTemplateVersionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: RequestLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"CreateLaunchTemplateVersionRequestFilterSensitiveLog\");\nvar ResponseLaunchTemplateDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"ResponseLaunchTemplateDataFilterSensitiveLog\");\n\n// src/commands/CopySnapshotCommand.ts\nvar CopySnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_ec2.getCopySnapshotPresignedUrlPlugin)(config)\n ];\n}).s(\"AmazonEC2\", \"CopySnapshot\", {}).n(\"EC2Client\", \"CopySnapshotCommand\").f(CopySnapshotRequestFilterSensitiveLog, void 0).ser(se_CopySnapshotCommand).de(de_CopySnapshotCommand).build() {\n static {\n __name(this, \"CopySnapshotCommand\");\n }\n};\n\n// src/commands/CreateCapacityReservationBySplittingCommand.ts\n\n\n\nvar CreateCapacityReservationBySplittingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCapacityReservationBySplitting\", {}).n(\"EC2Client\", \"CreateCapacityReservationBySplittingCommand\").f(void 0, void 0).ser(se_CreateCapacityReservationBySplittingCommand).de(de_CreateCapacityReservationBySplittingCommand).build() {\n static {\n __name(this, \"CreateCapacityReservationBySplittingCommand\");\n }\n};\n\n// src/commands/CreateCapacityReservationCommand.ts\n\n\n\nvar CreateCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCapacityReservation\", {}).n(\"EC2Client\", \"CreateCapacityReservationCommand\").f(void 0, void 0).ser(se_CreateCapacityReservationCommand).de(de_CreateCapacityReservationCommand).build() {\n static {\n __name(this, \"CreateCapacityReservationCommand\");\n }\n};\n\n// src/commands/CreateCapacityReservationFleetCommand.ts\n\n\n\nvar CreateCapacityReservationFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCapacityReservationFleet\", {}).n(\"EC2Client\", \"CreateCapacityReservationFleetCommand\").f(void 0, void 0).ser(se_CreateCapacityReservationFleetCommand).de(de_CreateCapacityReservationFleetCommand).build() {\n static {\n __name(this, \"CreateCapacityReservationFleetCommand\");\n }\n};\n\n// src/commands/CreateCarrierGatewayCommand.ts\n\n\n\nvar CreateCarrierGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCarrierGateway\", {}).n(\"EC2Client\", \"CreateCarrierGatewayCommand\").f(void 0, void 0).ser(se_CreateCarrierGatewayCommand).de(de_CreateCarrierGatewayCommand).build() {\n static {\n __name(this, \"CreateCarrierGatewayCommand\");\n }\n};\n\n// src/commands/CreateClientVpnEndpointCommand.ts\n\n\n\nvar CreateClientVpnEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateClientVpnEndpoint\", {}).n(\"EC2Client\", \"CreateClientVpnEndpointCommand\").f(void 0, void 0).ser(se_CreateClientVpnEndpointCommand).de(de_CreateClientVpnEndpointCommand).build() {\n static {\n __name(this, \"CreateClientVpnEndpointCommand\");\n }\n};\n\n// src/commands/CreateClientVpnRouteCommand.ts\n\n\n\nvar CreateClientVpnRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateClientVpnRoute\", {}).n(\"EC2Client\", \"CreateClientVpnRouteCommand\").f(void 0, void 0).ser(se_CreateClientVpnRouteCommand).de(de_CreateClientVpnRouteCommand).build() {\n static {\n __name(this, \"CreateClientVpnRouteCommand\");\n }\n};\n\n// src/commands/CreateCoipCidrCommand.ts\n\n\n\nvar CreateCoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCoipCidr\", {}).n(\"EC2Client\", \"CreateCoipCidrCommand\").f(void 0, void 0).ser(se_CreateCoipCidrCommand).de(de_CreateCoipCidrCommand).build() {\n static {\n __name(this, \"CreateCoipCidrCommand\");\n }\n};\n\n// src/commands/CreateCoipPoolCommand.ts\n\n\n\nvar CreateCoipPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCoipPool\", {}).n(\"EC2Client\", \"CreateCoipPoolCommand\").f(void 0, void 0).ser(se_CreateCoipPoolCommand).de(de_CreateCoipPoolCommand).build() {\n static {\n __name(this, \"CreateCoipPoolCommand\");\n }\n};\n\n// src/commands/CreateCustomerGatewayCommand.ts\n\n\n\nvar CreateCustomerGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCustomerGateway\", {}).n(\"EC2Client\", \"CreateCustomerGatewayCommand\").f(void 0, void 0).ser(se_CreateCustomerGatewayCommand).de(de_CreateCustomerGatewayCommand).build() {\n static {\n __name(this, \"CreateCustomerGatewayCommand\");\n }\n};\n\n// src/commands/CreateDefaultSubnetCommand.ts\n\n\n\nvar CreateDefaultSubnetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateDefaultSubnet\", {}).n(\"EC2Client\", \"CreateDefaultSubnetCommand\").f(void 0, void 0).ser(se_CreateDefaultSubnetCommand).de(de_CreateDefaultSubnetCommand).build() {\n static {\n __name(this, \"CreateDefaultSubnetCommand\");\n }\n};\n\n// src/commands/CreateDefaultVpcCommand.ts\n\n\n\nvar CreateDefaultVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateDefaultVpc\", {}).n(\"EC2Client\", \"CreateDefaultVpcCommand\").f(void 0, void 0).ser(se_CreateDefaultVpcCommand).de(de_CreateDefaultVpcCommand).build() {\n static {\n __name(this, \"CreateDefaultVpcCommand\");\n }\n};\n\n// src/commands/CreateDhcpOptionsCommand.ts\n\n\n\nvar CreateDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateDhcpOptions\", {}).n(\"EC2Client\", \"CreateDhcpOptionsCommand\").f(void 0, void 0).ser(se_CreateDhcpOptionsCommand).de(de_CreateDhcpOptionsCommand).build() {\n static {\n __name(this, \"CreateDhcpOptionsCommand\");\n }\n};\n\n// src/commands/CreateEgressOnlyInternetGatewayCommand.ts\n\n\n\nvar CreateEgressOnlyInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateEgressOnlyInternetGateway\", {}).n(\"EC2Client\", \"CreateEgressOnlyInternetGatewayCommand\").f(void 0, void 0).ser(se_CreateEgressOnlyInternetGatewayCommand).de(de_CreateEgressOnlyInternetGatewayCommand).build() {\n static {\n __name(this, \"CreateEgressOnlyInternetGatewayCommand\");\n }\n};\n\n// src/commands/CreateFleetCommand.ts\n\n\n\nvar CreateFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateFleet\", {}).n(\"EC2Client\", \"CreateFleetCommand\").f(void 0, void 0).ser(se_CreateFleetCommand).de(de_CreateFleetCommand).build() {\n static {\n __name(this, \"CreateFleetCommand\");\n }\n};\n\n// src/commands/CreateFlowLogsCommand.ts\n\n\n\nvar CreateFlowLogsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateFlowLogs\", {}).n(\"EC2Client\", \"CreateFlowLogsCommand\").f(void 0, void 0).ser(se_CreateFlowLogsCommand).de(de_CreateFlowLogsCommand).build() {\n static {\n __name(this, \"CreateFlowLogsCommand\");\n }\n};\n\n// src/commands/CreateFpgaImageCommand.ts\n\n\n\nvar CreateFpgaImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateFpgaImage\", {}).n(\"EC2Client\", \"CreateFpgaImageCommand\").f(void 0, void 0).ser(se_CreateFpgaImageCommand).de(de_CreateFpgaImageCommand).build() {\n static {\n __name(this, \"CreateFpgaImageCommand\");\n }\n};\n\n// src/commands/CreateImageCommand.ts\n\n\n\nvar CreateImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateImage\", {}).n(\"EC2Client\", \"CreateImageCommand\").f(void 0, void 0).ser(se_CreateImageCommand).de(de_CreateImageCommand).build() {\n static {\n __name(this, \"CreateImageCommand\");\n }\n};\n\n// src/commands/CreateInstanceConnectEndpointCommand.ts\n\n\n\nvar CreateInstanceConnectEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInstanceConnectEndpoint\", {}).n(\"EC2Client\", \"CreateInstanceConnectEndpointCommand\").f(void 0, void 0).ser(se_CreateInstanceConnectEndpointCommand).de(de_CreateInstanceConnectEndpointCommand).build() {\n static {\n __name(this, \"CreateInstanceConnectEndpointCommand\");\n }\n};\n\n// src/commands/CreateInstanceEventWindowCommand.ts\n\n\n\nvar CreateInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInstanceEventWindow\", {}).n(\"EC2Client\", \"CreateInstanceEventWindowCommand\").f(void 0, void 0).ser(se_CreateInstanceEventWindowCommand).de(de_CreateInstanceEventWindowCommand).build() {\n static {\n __name(this, \"CreateInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/CreateInstanceExportTaskCommand.ts\n\n\n\nvar CreateInstanceExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInstanceExportTask\", {}).n(\"EC2Client\", \"CreateInstanceExportTaskCommand\").f(void 0, void 0).ser(se_CreateInstanceExportTaskCommand).de(de_CreateInstanceExportTaskCommand).build() {\n static {\n __name(this, \"CreateInstanceExportTaskCommand\");\n }\n};\n\n// src/commands/CreateInternetGatewayCommand.ts\n\n\n\nvar CreateInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInternetGateway\", {}).n(\"EC2Client\", \"CreateInternetGatewayCommand\").f(void 0, void 0).ser(se_CreateInternetGatewayCommand).de(de_CreateInternetGatewayCommand).build() {\n static {\n __name(this, \"CreateInternetGatewayCommand\");\n }\n};\n\n// src/commands/CreateIpamCommand.ts\n\n\n\nvar CreateIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpam\", {}).n(\"EC2Client\", \"CreateIpamCommand\").f(void 0, void 0).ser(se_CreateIpamCommand).de(de_CreateIpamCommand).build() {\n static {\n __name(this, \"CreateIpamCommand\");\n }\n};\n\n// src/commands/CreateIpamExternalResourceVerificationTokenCommand.ts\n\n\n\nvar CreateIpamExternalResourceVerificationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamExternalResourceVerificationToken\", {}).n(\"EC2Client\", \"CreateIpamExternalResourceVerificationTokenCommand\").f(void 0, void 0).ser(se_CreateIpamExternalResourceVerificationTokenCommand).de(de_CreateIpamExternalResourceVerificationTokenCommand).build() {\n static {\n __name(this, \"CreateIpamExternalResourceVerificationTokenCommand\");\n }\n};\n\n// src/commands/CreateIpamPoolCommand.ts\n\n\n\nvar CreateIpamPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamPool\", {}).n(\"EC2Client\", \"CreateIpamPoolCommand\").f(void 0, void 0).ser(se_CreateIpamPoolCommand).de(de_CreateIpamPoolCommand).build() {\n static {\n __name(this, \"CreateIpamPoolCommand\");\n }\n};\n\n// src/commands/CreateIpamResourceDiscoveryCommand.ts\n\n\n\nvar CreateIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamResourceDiscovery\", {}).n(\"EC2Client\", \"CreateIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_CreateIpamResourceDiscoveryCommand).de(de_CreateIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"CreateIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/CreateIpamScopeCommand.ts\n\n\n\nvar CreateIpamScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamScope\", {}).n(\"EC2Client\", \"CreateIpamScopeCommand\").f(void 0, void 0).ser(se_CreateIpamScopeCommand).de(de_CreateIpamScopeCommand).build() {\n static {\n __name(this, \"CreateIpamScopeCommand\");\n }\n};\n\n// src/commands/CreateKeyPairCommand.ts\n\n\n\nvar CreateKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateKeyPair\", {}).n(\"EC2Client\", \"CreateKeyPairCommand\").f(void 0, KeyPairFilterSensitiveLog).ser(se_CreateKeyPairCommand).de(de_CreateKeyPairCommand).build() {\n static {\n __name(this, \"CreateKeyPairCommand\");\n }\n};\n\n// src/commands/CreateLaunchTemplateCommand.ts\n\n\n\nvar CreateLaunchTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLaunchTemplate\", {}).n(\"EC2Client\", \"CreateLaunchTemplateCommand\").f(CreateLaunchTemplateRequestFilterSensitiveLog, void 0).ser(se_CreateLaunchTemplateCommand).de(de_CreateLaunchTemplateCommand).build() {\n static {\n __name(this, \"CreateLaunchTemplateCommand\");\n }\n};\n\n// src/commands/CreateLaunchTemplateVersionCommand.ts\n\n\n\n\n// src/models/models_2.ts\n\nvar LocalGatewayRouteState = {\n active: \"active\",\n blackhole: \"blackhole\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar LocalGatewayRouteType = {\n propagated: \"propagated\",\n static: \"static\"\n};\nvar LocalGatewayRouteTableMode = {\n coip: \"coip\",\n direct_vpc_routing: \"direct-vpc-routing\"\n};\nvar LocalGatewayVirtualInterfaceConfigurationState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar LocalGatewayVirtualInterfaceGroupConfigurationState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n incomplete: \"incomplete\",\n pending: \"pending\"\n};\nvar PrefixListState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_complete: \"restore-complete\",\n restore_failed: \"restore-failed\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar ConnectivityType = {\n PRIVATE: \"private\",\n PUBLIC: \"public\"\n};\nvar NatGatewayState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETING: \"deleting\",\n FAILED: \"failed\",\n PENDING: \"pending\"\n};\nvar RuleAction = {\n allow: \"allow\",\n deny: \"deny\"\n};\nvar NetworkInterfaceCreationType = {\n branch: \"branch\",\n efa: \"efa\",\n efa_only: \"efa-only\",\n trunk: \"trunk\"\n};\nvar NetworkInterfaceType = {\n api_gateway_managed: \"api_gateway_managed\",\n aws_codestar_connections_managed: \"aws_codestar_connections_managed\",\n branch: \"branch\",\n efa: \"efa\",\n efa_only: \"efa-only\",\n gateway_load_balancer: \"gateway_load_balancer\",\n gateway_load_balancer_endpoint: \"gateway_load_balancer_endpoint\",\n global_accelerator_managed: \"global_accelerator_managed\",\n interface: \"interface\",\n iot_rules_managed: \"iot_rules_managed\",\n lambda: \"lambda\",\n load_balancer: \"load_balancer\",\n natGateway: \"natGateway\",\n network_load_balancer: \"network_load_balancer\",\n quicksight: \"quicksight\",\n transit_gateway: \"transit_gateway\",\n trunk: \"trunk\",\n vpc_endpoint: \"vpc_endpoint\"\n};\nvar NetworkInterfaceStatus = {\n associated: \"associated\",\n attaching: \"attaching\",\n available: \"available\",\n detaching: \"detaching\",\n in_use: \"in-use\"\n};\nvar InterfacePermissionType = {\n EIP_ASSOCIATE: \"EIP-ASSOCIATE\",\n INSTANCE_ATTACH: \"INSTANCE-ATTACH\"\n};\nvar NetworkInterfacePermissionStateCode = {\n granted: \"granted\",\n pending: \"pending\",\n revoked: \"revoked\",\n revoking: \"revoking\"\n};\nvar SpreadLevel = {\n host: \"host\",\n rack: \"rack\"\n};\nvar PlacementStrategy = {\n cluster: \"cluster\",\n partition: \"partition\",\n spread: \"spread\"\n};\nvar PlacementGroupState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar ReplaceRootVolumeTaskState = {\n failed: \"failed\",\n failed_detached: \"failed-detached\",\n failing: \"failing\",\n in_progress: \"in-progress\",\n pending: \"pending\",\n succeeded: \"succeeded\"\n};\nvar RouteServerPersistRoutesAction = {\n DISABLE: \"disable\",\n ENABLE: \"enable\",\n RESET: \"reset\"\n};\nvar RouteServerPersistRoutesState = {\n DISABLED: \"disabled\",\n DISABLING: \"disabling\",\n ENABLED: \"enabled\",\n ENABLING: \"enabling\",\n MODIFYING: \"modifying\",\n RESETTING: \"resetting\"\n};\nvar RouteServerState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETING: \"deleting\",\n MODIFYING: \"modifying\",\n PENDING: \"pending\"\n};\nvar RouteServerEndpointState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETE_FAILED: \"delete-failed\",\n DELETING: \"deleting\",\n FAILED: \"failed\",\n FAILING: \"failing\",\n PENDING: \"pending\"\n};\nvar RouteServerPeerLivenessMode = {\n BFD: \"bfd\",\n BGP_KEEPALIVE: \"bgp-keepalive\"\n};\nvar RouteServerBfdState = {\n DOWN: \"down\",\n UP: \"up\"\n};\nvar RouteServerBgpState = {\n DOWN: \"down\",\n UP: \"up\"\n};\nvar RouteServerPeerState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETING: \"deleting\",\n FAILED: \"failed\",\n FAILING: \"failing\",\n PENDING: \"pending\"\n};\nvar RouteOrigin = {\n CreateRoute: \"CreateRoute\",\n CreateRouteTable: \"CreateRouteTable\",\n EnableVgwRoutePropagation: \"EnableVgwRoutePropagation\"\n};\nvar RouteState = {\n active: \"active\",\n blackhole: \"blackhole\"\n};\nvar SnapshotLocationEnum = {\n LOCAL: \"local\",\n REGIONAL: \"regional\"\n};\nvar SSEType = {\n none: \"none\",\n sse_ebs: \"sse-ebs\",\n sse_kms: \"sse-kms\"\n};\nvar SnapshotState = {\n completed: \"completed\",\n error: \"error\",\n pending: \"pending\",\n recoverable: \"recoverable\",\n recovering: \"recovering\"\n};\nvar StorageTier = {\n archive: \"archive\",\n standard: \"standard\"\n};\nvar TransferType = {\n standard: \"standard\",\n time_based: \"time-based\"\n};\nvar CopyTagsFromSource = {\n volume: \"volume\"\n};\nvar DatafeedSubscriptionState = {\n Active: \"Active\",\n Inactive: \"Inactive\"\n};\nvar SubnetCidrReservationType = {\n explicit: \"explicit\",\n prefix: \"prefix\"\n};\nvar TrafficMirrorRuleAction = {\n accept: \"accept\",\n reject: \"reject\"\n};\nvar TrafficDirection = {\n egress: \"egress\",\n ingress: \"ingress\"\n};\nvar TrafficMirrorNetworkService = {\n amazon_dns: \"amazon-dns\"\n};\nvar TrafficMirrorTargetType = {\n gateway_load_balancer_endpoint: \"gateway-load-balancer-endpoint\",\n network_interface: \"network-interface\",\n network_load_balancer: \"network-load-balancer\"\n};\nvar AutoAcceptSharedAttachmentsValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar DefaultRouteTableAssociationValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar DefaultRouteTablePropagationValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar MulticastSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar VpnEcmpSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar TransitGatewayState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n modifying: \"modifying\",\n pending: \"pending\"\n};\nvar ProtocolValue = {\n gre: \"gre\"\n};\nvar BgpStatus = {\n down: \"down\",\n up: \"up\"\n};\nvar TransitGatewayConnectPeerState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar AutoAcceptSharedAssociationsValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar Igmpv2SupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar StaticSourcesSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar TransitGatewayMulticastDomainState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayPolicyTableState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayPrefixListReferenceState = {\n available: \"available\",\n deleting: \"deleting\",\n modifying: \"modifying\",\n pending: \"pending\"\n};\nvar TransitGatewayRouteState = {\n active: \"active\",\n blackhole: \"blackhole\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayRouteType = {\n propagated: \"propagated\",\n static: \"static\"\n};\nvar TransitGatewayRouteTableState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayRouteTableAnnouncementDirection = {\n incoming: \"incoming\",\n outgoing: \"outgoing\"\n};\nvar TransitGatewayRouteTableAnnouncementState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n failed: \"failed\",\n failing: \"failing\",\n pending: \"pending\"\n};\nvar VerifiedAccessEndpointAttachmentType = {\n vpc: \"vpc\"\n};\nvar VerifiedAccessEndpointProtocol = {\n http: \"http\",\n https: \"https\",\n tcp: \"tcp\"\n};\nvar VerifiedAccessEndpointType = {\n cidr: \"cidr\",\n load_balancer: \"load-balancer\",\n network_interface: \"network-interface\",\n rds: \"rds\"\n};\nvar VerifiedAccessEndpointStatusCode = {\n active: \"active\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\",\n updating: \"updating\"\n};\nvar VolumeState = {\n available: \"available\",\n creating: \"creating\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n error: \"error\",\n in_use: \"in-use\"\n};\nvar InternetGatewayExclusionMode = {\n allow_bidirectional: \"allow-bidirectional\",\n allow_egress: \"allow-egress\"\n};\nvar VpcBlockPublicAccessExclusionState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_in_progress: \"delete-in-progress\",\n disable_complete: \"disable-complete\",\n disable_in_progress: \"disable-in-progress\",\n update_complete: \"update-complete\",\n update_failed: \"update-failed\",\n update_in_progress: \"update-in-progress\"\n};\nvar DnsRecordIpType = {\n dualstack: \"dualstack\",\n ipv4: \"ipv4\",\n ipv6: \"ipv6\",\n service_defined: \"service-defined\"\n};\nvar IpAddressType = {\n dualstack: \"dualstack\",\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar VpcEndpointType = {\n Gateway: \"Gateway\",\n GatewayLoadBalancer: \"GatewayLoadBalancer\",\n Interface: \"Interface\",\n Resource: \"Resource\",\n ServiceNetwork: \"ServiceNetwork\"\n};\nvar State = {\n Available: \"Available\",\n Deleted: \"Deleted\",\n Deleting: \"Deleting\",\n Expired: \"Expired\",\n Failed: \"Failed\",\n Partial: \"Partial\",\n Pending: \"Pending\",\n PendingAcceptance: \"PendingAcceptance\",\n Rejected: \"Rejected\"\n};\nvar ConnectionNotificationState = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ConnectionNotificationType = {\n Topic: \"Topic\"\n};\nvar PayerResponsibility = {\n ServiceOwner: \"ServiceOwner\"\n};\nvar DnsNameState = {\n Failed: \"failed\",\n PendingVerification: \"pendingVerification\",\n Verified: \"verified\"\n};\nvar ServiceState = {\n Available: \"Available\",\n Deleted: \"Deleted\",\n Deleting: \"Deleting\",\n Failed: \"Failed\",\n Pending: \"Pending\"\n};\nvar ServiceType = {\n Gateway: \"Gateway\",\n GatewayLoadBalancer: \"GatewayLoadBalancer\",\n Interface: \"Interface\"\n};\nvar LaunchTemplateVersionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: ResponseLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"LaunchTemplateVersionFilterSensitiveLog\");\nvar CreateLaunchTemplateVersionResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateVersion && {\n LaunchTemplateVersion: LaunchTemplateVersionFilterSensitiveLog(obj.LaunchTemplateVersion)\n }\n}), \"CreateLaunchTemplateVersionResultFilterSensitiveLog\");\nvar CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog\");\nvar CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog\");\nvar CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OidcOptions && {\n OidcOptions: CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog(obj.OidcOptions)\n },\n ...obj.NativeApplicationOidcOptions && {\n NativeApplicationOidcOptions: CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog(\n obj.NativeApplicationOidcOptions\n )\n }\n}), \"CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog\");\nvar CreateVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"CreateVerifiedAccessTrustProviderResultFilterSensitiveLog\");\n\n// src/commands/CreateLaunchTemplateVersionCommand.ts\nvar CreateLaunchTemplateVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLaunchTemplateVersion\", {}).n(\"EC2Client\", \"CreateLaunchTemplateVersionCommand\").f(CreateLaunchTemplateVersionRequestFilterSensitiveLog, CreateLaunchTemplateVersionResultFilterSensitiveLog).ser(se_CreateLaunchTemplateVersionCommand).de(de_CreateLaunchTemplateVersionCommand).build() {\n static {\n __name(this, \"CreateLaunchTemplateVersionCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteCommand.ts\n\n\n\nvar CreateLocalGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRoute\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteCommand).de(de_CreateLocalGatewayRouteCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteTableCommand.ts\n\n\n\nvar CreateLocalGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRouteTable\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteTableCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteTableCommand).de(de_CreateLocalGatewayRouteTableCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.ts\n\n\n\nvar CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).de(de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteTableVpcAssociationCommand.ts\n\n\n\nvar CreateLocalGatewayRouteTableVpcAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRouteTableVpcAssociation\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteTableVpcAssociationCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteTableVpcAssociationCommand).de(de_CreateLocalGatewayRouteTableVpcAssociationCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteTableVpcAssociationCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayVirtualInterfaceCommand.ts\n\n\n\nvar CreateLocalGatewayVirtualInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayVirtualInterface\", {}).n(\"EC2Client\", \"CreateLocalGatewayVirtualInterfaceCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayVirtualInterfaceCommand).de(de_CreateLocalGatewayVirtualInterfaceCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayVirtualInterfaceCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayVirtualInterfaceGroupCommand.ts\n\n\n\nvar CreateLocalGatewayVirtualInterfaceGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayVirtualInterfaceGroup\", {}).n(\"EC2Client\", \"CreateLocalGatewayVirtualInterfaceGroupCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayVirtualInterfaceGroupCommand).de(de_CreateLocalGatewayVirtualInterfaceGroupCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayVirtualInterfaceGroupCommand\");\n }\n};\n\n// src/commands/CreateManagedPrefixListCommand.ts\n\n\n\nvar CreateManagedPrefixListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateManagedPrefixList\", {}).n(\"EC2Client\", \"CreateManagedPrefixListCommand\").f(void 0, void 0).ser(se_CreateManagedPrefixListCommand).de(de_CreateManagedPrefixListCommand).build() {\n static {\n __name(this, \"CreateManagedPrefixListCommand\");\n }\n};\n\n// src/commands/CreateNatGatewayCommand.ts\n\n\n\nvar CreateNatGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNatGateway\", {}).n(\"EC2Client\", \"CreateNatGatewayCommand\").f(void 0, void 0).ser(se_CreateNatGatewayCommand).de(de_CreateNatGatewayCommand).build() {\n static {\n __name(this, \"CreateNatGatewayCommand\");\n }\n};\n\n// src/commands/CreateNetworkAclCommand.ts\n\n\n\nvar CreateNetworkAclCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkAcl\", {}).n(\"EC2Client\", \"CreateNetworkAclCommand\").f(void 0, void 0).ser(se_CreateNetworkAclCommand).de(de_CreateNetworkAclCommand).build() {\n static {\n __name(this, \"CreateNetworkAclCommand\");\n }\n};\n\n// src/commands/CreateNetworkAclEntryCommand.ts\n\n\n\nvar CreateNetworkAclEntryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkAclEntry\", {}).n(\"EC2Client\", \"CreateNetworkAclEntryCommand\").f(void 0, void 0).ser(se_CreateNetworkAclEntryCommand).de(de_CreateNetworkAclEntryCommand).build() {\n static {\n __name(this, \"CreateNetworkAclEntryCommand\");\n }\n};\n\n// src/commands/CreateNetworkInsightsAccessScopeCommand.ts\n\n\n\nvar CreateNetworkInsightsAccessScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInsightsAccessScope\", {}).n(\"EC2Client\", \"CreateNetworkInsightsAccessScopeCommand\").f(void 0, void 0).ser(se_CreateNetworkInsightsAccessScopeCommand).de(de_CreateNetworkInsightsAccessScopeCommand).build() {\n static {\n __name(this, \"CreateNetworkInsightsAccessScopeCommand\");\n }\n};\n\n// src/commands/CreateNetworkInsightsPathCommand.ts\n\n\n\nvar CreateNetworkInsightsPathCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInsightsPath\", {}).n(\"EC2Client\", \"CreateNetworkInsightsPathCommand\").f(void 0, void 0).ser(se_CreateNetworkInsightsPathCommand).de(de_CreateNetworkInsightsPathCommand).build() {\n static {\n __name(this, \"CreateNetworkInsightsPathCommand\");\n }\n};\n\n// src/commands/CreateNetworkInterfaceCommand.ts\n\n\n\nvar CreateNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInterface\", {}).n(\"EC2Client\", \"CreateNetworkInterfaceCommand\").f(void 0, void 0).ser(se_CreateNetworkInterfaceCommand).de(de_CreateNetworkInterfaceCommand).build() {\n static {\n __name(this, \"CreateNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/CreateNetworkInterfacePermissionCommand.ts\n\n\n\nvar CreateNetworkInterfacePermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInterfacePermission\", {}).n(\"EC2Client\", \"CreateNetworkInterfacePermissionCommand\").f(void 0, void 0).ser(se_CreateNetworkInterfacePermissionCommand).de(de_CreateNetworkInterfacePermissionCommand).build() {\n static {\n __name(this, \"CreateNetworkInterfacePermissionCommand\");\n }\n};\n\n// src/commands/CreatePlacementGroupCommand.ts\n\n\n\nvar CreatePlacementGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreatePlacementGroup\", {}).n(\"EC2Client\", \"CreatePlacementGroupCommand\").f(void 0, void 0).ser(se_CreatePlacementGroupCommand).de(de_CreatePlacementGroupCommand).build() {\n static {\n __name(this, \"CreatePlacementGroupCommand\");\n }\n};\n\n// src/commands/CreatePublicIpv4PoolCommand.ts\n\n\n\nvar CreatePublicIpv4PoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreatePublicIpv4Pool\", {}).n(\"EC2Client\", \"CreatePublicIpv4PoolCommand\").f(void 0, void 0).ser(se_CreatePublicIpv4PoolCommand).de(de_CreatePublicIpv4PoolCommand).build() {\n static {\n __name(this, \"CreatePublicIpv4PoolCommand\");\n }\n};\n\n// src/commands/CreateReplaceRootVolumeTaskCommand.ts\n\n\n\nvar CreateReplaceRootVolumeTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateReplaceRootVolumeTask\", {}).n(\"EC2Client\", \"CreateReplaceRootVolumeTaskCommand\").f(void 0, void 0).ser(se_CreateReplaceRootVolumeTaskCommand).de(de_CreateReplaceRootVolumeTaskCommand).build() {\n static {\n __name(this, \"CreateReplaceRootVolumeTaskCommand\");\n }\n};\n\n// src/commands/CreateReservedInstancesListingCommand.ts\n\n\n\nvar CreateReservedInstancesListingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateReservedInstancesListing\", {}).n(\"EC2Client\", \"CreateReservedInstancesListingCommand\").f(void 0, void 0).ser(se_CreateReservedInstancesListingCommand).de(de_CreateReservedInstancesListingCommand).build() {\n static {\n __name(this, \"CreateReservedInstancesListingCommand\");\n }\n};\n\n// src/commands/CreateRestoreImageTaskCommand.ts\n\n\n\nvar CreateRestoreImageTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRestoreImageTask\", {}).n(\"EC2Client\", \"CreateRestoreImageTaskCommand\").f(void 0, void 0).ser(se_CreateRestoreImageTaskCommand).de(de_CreateRestoreImageTaskCommand).build() {\n static {\n __name(this, \"CreateRestoreImageTaskCommand\");\n }\n};\n\n// src/commands/CreateRouteCommand.ts\n\n\n\nvar CreateRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRoute\", {}).n(\"EC2Client\", \"CreateRouteCommand\").f(void 0, void 0).ser(se_CreateRouteCommand).de(de_CreateRouteCommand).build() {\n static {\n __name(this, \"CreateRouteCommand\");\n }\n};\n\n// src/commands/CreateRouteServerCommand.ts\n\n\n\nvar CreateRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteServer\", {}).n(\"EC2Client\", \"CreateRouteServerCommand\").f(void 0, void 0).ser(se_CreateRouteServerCommand).de(de_CreateRouteServerCommand).build() {\n static {\n __name(this, \"CreateRouteServerCommand\");\n }\n};\n\n// src/commands/CreateRouteServerEndpointCommand.ts\n\n\n\nvar CreateRouteServerEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteServerEndpoint\", {}).n(\"EC2Client\", \"CreateRouteServerEndpointCommand\").f(void 0, void 0).ser(se_CreateRouteServerEndpointCommand).de(de_CreateRouteServerEndpointCommand).build() {\n static {\n __name(this, \"CreateRouteServerEndpointCommand\");\n }\n};\n\n// src/commands/CreateRouteServerPeerCommand.ts\n\n\n\nvar CreateRouteServerPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteServerPeer\", {}).n(\"EC2Client\", \"CreateRouteServerPeerCommand\").f(void 0, void 0).ser(se_CreateRouteServerPeerCommand).de(de_CreateRouteServerPeerCommand).build() {\n static {\n __name(this, \"CreateRouteServerPeerCommand\");\n }\n};\n\n// src/commands/CreateRouteTableCommand.ts\n\n\n\nvar CreateRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteTable\", {}).n(\"EC2Client\", \"CreateRouteTableCommand\").f(void 0, void 0).ser(se_CreateRouteTableCommand).de(de_CreateRouteTableCommand).build() {\n static {\n __name(this, \"CreateRouteTableCommand\");\n }\n};\n\n// src/commands/CreateSecurityGroupCommand.ts\n\n\n\nvar CreateSecurityGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSecurityGroup\", {}).n(\"EC2Client\", \"CreateSecurityGroupCommand\").f(void 0, void 0).ser(se_CreateSecurityGroupCommand).de(de_CreateSecurityGroupCommand).build() {\n static {\n __name(this, \"CreateSecurityGroupCommand\");\n }\n};\n\n// src/commands/CreateSnapshotCommand.ts\n\n\n\nvar CreateSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSnapshot\", {}).n(\"EC2Client\", \"CreateSnapshotCommand\").f(void 0, void 0).ser(se_CreateSnapshotCommand).de(de_CreateSnapshotCommand).build() {\n static {\n __name(this, \"CreateSnapshotCommand\");\n }\n};\n\n// src/commands/CreateSnapshotsCommand.ts\n\n\n\nvar CreateSnapshotsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSnapshots\", {}).n(\"EC2Client\", \"CreateSnapshotsCommand\").f(void 0, void 0).ser(se_CreateSnapshotsCommand).de(de_CreateSnapshotsCommand).build() {\n static {\n __name(this, \"CreateSnapshotsCommand\");\n }\n};\n\n// src/commands/CreateSpotDatafeedSubscriptionCommand.ts\n\n\n\nvar CreateSpotDatafeedSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSpotDatafeedSubscription\", {}).n(\"EC2Client\", \"CreateSpotDatafeedSubscriptionCommand\").f(void 0, void 0).ser(se_CreateSpotDatafeedSubscriptionCommand).de(de_CreateSpotDatafeedSubscriptionCommand).build() {\n static {\n __name(this, \"CreateSpotDatafeedSubscriptionCommand\");\n }\n};\n\n// src/commands/CreateStoreImageTaskCommand.ts\n\n\n\nvar CreateStoreImageTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateStoreImageTask\", {}).n(\"EC2Client\", \"CreateStoreImageTaskCommand\").f(void 0, void 0).ser(se_CreateStoreImageTaskCommand).de(de_CreateStoreImageTaskCommand).build() {\n static {\n __name(this, \"CreateStoreImageTaskCommand\");\n }\n};\n\n// src/commands/CreateSubnetCidrReservationCommand.ts\n\n\n\nvar CreateSubnetCidrReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSubnetCidrReservation\", {}).n(\"EC2Client\", \"CreateSubnetCidrReservationCommand\").f(void 0, void 0).ser(se_CreateSubnetCidrReservationCommand).de(de_CreateSubnetCidrReservationCommand).build() {\n static {\n __name(this, \"CreateSubnetCidrReservationCommand\");\n }\n};\n\n// src/commands/CreateSubnetCommand.ts\n\n\n\nvar CreateSubnetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSubnet\", {}).n(\"EC2Client\", \"CreateSubnetCommand\").f(void 0, void 0).ser(se_CreateSubnetCommand).de(de_CreateSubnetCommand).build() {\n static {\n __name(this, \"CreateSubnetCommand\");\n }\n};\n\n// src/commands/CreateTagsCommand.ts\n\n\n\nvar CreateTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTags\", {}).n(\"EC2Client\", \"CreateTagsCommand\").f(void 0, void 0).ser(se_CreateTagsCommand).de(de_CreateTagsCommand).build() {\n static {\n __name(this, \"CreateTagsCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorFilterCommand.ts\n\n\n\nvar CreateTrafficMirrorFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorFilter\", {}).n(\"EC2Client\", \"CreateTrafficMirrorFilterCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorFilterCommand).de(de_CreateTrafficMirrorFilterCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorFilterCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorFilterRuleCommand.ts\n\n\n\nvar CreateTrafficMirrorFilterRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorFilterRule\", {}).n(\"EC2Client\", \"CreateTrafficMirrorFilterRuleCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorFilterRuleCommand).de(de_CreateTrafficMirrorFilterRuleCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorFilterRuleCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorSessionCommand.ts\n\n\n\nvar CreateTrafficMirrorSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorSession\", {}).n(\"EC2Client\", \"CreateTrafficMirrorSessionCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorSessionCommand).de(de_CreateTrafficMirrorSessionCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorSessionCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorTargetCommand.ts\n\n\n\nvar CreateTrafficMirrorTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorTarget\", {}).n(\"EC2Client\", \"CreateTrafficMirrorTargetCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorTargetCommand).de(de_CreateTrafficMirrorTargetCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorTargetCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayCommand.ts\n\n\n\nvar CreateTransitGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGateway\", {}).n(\"EC2Client\", \"CreateTransitGatewayCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayCommand).de(de_CreateTransitGatewayCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayConnectCommand.ts\n\n\n\nvar CreateTransitGatewayConnectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayConnect\", {}).n(\"EC2Client\", \"CreateTransitGatewayConnectCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayConnectCommand).de(de_CreateTransitGatewayConnectCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayConnectCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayConnectPeerCommand.ts\n\n\n\nvar CreateTransitGatewayConnectPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayConnectPeer\", {}).n(\"EC2Client\", \"CreateTransitGatewayConnectPeerCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayConnectPeerCommand).de(de_CreateTransitGatewayConnectPeerCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayConnectPeerCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar CreateTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"CreateTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayMulticastDomainCommand).de(de_CreateTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar CreateTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"CreateTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayPeeringAttachmentCommand).de(de_CreateTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayPolicyTableCommand.ts\n\n\n\nvar CreateTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"CreateTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayPolicyTableCommand).de(de_CreateTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayPrefixListReferenceCommand.ts\n\n\n\nvar CreateTransitGatewayPrefixListReferenceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayPrefixListReference\", {}).n(\"EC2Client\", \"CreateTransitGatewayPrefixListReferenceCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayPrefixListReferenceCommand).de(de_CreateTransitGatewayPrefixListReferenceCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayPrefixListReferenceCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayRouteCommand.ts\n\n\n\nvar CreateTransitGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayRoute\", {}).n(\"EC2Client\", \"CreateTransitGatewayRouteCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayRouteCommand).de(de_CreateTransitGatewayRouteCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayRouteCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayRouteTableAnnouncementCommand.ts\n\n\n\nvar CreateTransitGatewayRouteTableAnnouncementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayRouteTableAnnouncement\", {}).n(\"EC2Client\", \"CreateTransitGatewayRouteTableAnnouncementCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayRouteTableAnnouncementCommand).de(de_CreateTransitGatewayRouteTableAnnouncementCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayRouteTableAnnouncementCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayRouteTableCommand.ts\n\n\n\nvar CreateTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"CreateTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayRouteTableCommand).de(de_CreateTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar CreateTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"CreateTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayVpcAttachmentCommand).de(de_CreateTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessEndpointCommand.ts\n\n\n\nvar CreateVerifiedAccessEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessEndpoint\", {}).n(\"EC2Client\", \"CreateVerifiedAccessEndpointCommand\").f(void 0, void 0).ser(se_CreateVerifiedAccessEndpointCommand).de(de_CreateVerifiedAccessEndpointCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessEndpointCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessGroupCommand.ts\n\n\n\nvar CreateVerifiedAccessGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessGroup\", {}).n(\"EC2Client\", \"CreateVerifiedAccessGroupCommand\").f(void 0, void 0).ser(se_CreateVerifiedAccessGroupCommand).de(de_CreateVerifiedAccessGroupCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessGroupCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessInstanceCommand.ts\n\n\n\nvar CreateVerifiedAccessInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessInstance\", {}).n(\"EC2Client\", \"CreateVerifiedAccessInstanceCommand\").f(void 0, void 0).ser(se_CreateVerifiedAccessInstanceCommand).de(de_CreateVerifiedAccessInstanceCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessInstanceCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar CreateVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"CreateVerifiedAccessTrustProviderCommand\").f(\n CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderResultFilterSensitiveLog\n).ser(se_CreateVerifiedAccessTrustProviderCommand).de(de_CreateVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/CreateVolumeCommand.ts\n\n\n\nvar CreateVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVolume\", {}).n(\"EC2Client\", \"CreateVolumeCommand\").f(void 0, void 0).ser(se_CreateVolumeCommand).de(de_CreateVolumeCommand).build() {\n static {\n __name(this, \"CreateVolumeCommand\");\n }\n};\n\n// src/commands/CreateVpcBlockPublicAccessExclusionCommand.ts\n\n\n\nvar CreateVpcBlockPublicAccessExclusionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcBlockPublicAccessExclusion\", {}).n(\"EC2Client\", \"CreateVpcBlockPublicAccessExclusionCommand\").f(void 0, void 0).ser(se_CreateVpcBlockPublicAccessExclusionCommand).de(de_CreateVpcBlockPublicAccessExclusionCommand).build() {\n static {\n __name(this, \"CreateVpcBlockPublicAccessExclusionCommand\");\n }\n};\n\n// src/commands/CreateVpcCommand.ts\n\n\n\nvar CreateVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpc\", {}).n(\"EC2Client\", \"CreateVpcCommand\").f(void 0, void 0).ser(se_CreateVpcCommand).de(de_CreateVpcCommand).build() {\n static {\n __name(this, \"CreateVpcCommand\");\n }\n};\n\n// src/commands/CreateVpcEndpointCommand.ts\n\n\n\nvar CreateVpcEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcEndpoint\", {}).n(\"EC2Client\", \"CreateVpcEndpointCommand\").f(void 0, void 0).ser(se_CreateVpcEndpointCommand).de(de_CreateVpcEndpointCommand).build() {\n static {\n __name(this, \"CreateVpcEndpointCommand\");\n }\n};\n\n// src/commands/CreateVpcEndpointConnectionNotificationCommand.ts\n\n\n\nvar CreateVpcEndpointConnectionNotificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcEndpointConnectionNotification\", {}).n(\"EC2Client\", \"CreateVpcEndpointConnectionNotificationCommand\").f(void 0, void 0).ser(se_CreateVpcEndpointConnectionNotificationCommand).de(de_CreateVpcEndpointConnectionNotificationCommand).build() {\n static {\n __name(this, \"CreateVpcEndpointConnectionNotificationCommand\");\n }\n};\n\n// src/commands/CreateVpcEndpointServiceConfigurationCommand.ts\n\n\n\nvar CreateVpcEndpointServiceConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcEndpointServiceConfiguration\", {}).n(\"EC2Client\", \"CreateVpcEndpointServiceConfigurationCommand\").f(void 0, void 0).ser(se_CreateVpcEndpointServiceConfigurationCommand).de(de_CreateVpcEndpointServiceConfigurationCommand).build() {\n static {\n __name(this, \"CreateVpcEndpointServiceConfigurationCommand\");\n }\n};\n\n// src/commands/CreateVpcPeeringConnectionCommand.ts\n\n\n\nvar CreateVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcPeeringConnection\", {}).n(\"EC2Client\", \"CreateVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_CreateVpcPeeringConnectionCommand).de(de_CreateVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"CreateVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/CreateVpnConnectionCommand.ts\n\n\n\n\n// src/models/models_3.ts\n\nvar ServiceConnectivityType = {\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar TunnelInsideIpVersion = {\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar GatewayAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n disassociating: \"disassociating\",\n not_associated: \"not-associated\"\n};\nvar VpnStaticRouteSource = {\n Static: \"Static\"\n};\nvar VpnState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TelemetryStatus = {\n DOWN: \"DOWN\",\n UP: \"UP\"\n};\nvar FleetStateCode = {\n ACTIVE: \"active\",\n DELETED: \"deleted\",\n DELETED_RUNNING: \"deleted_running\",\n DELETED_TERMINATING_INSTANCES: \"deleted_terminating\",\n FAILED: \"failed\",\n MODIFYING: \"modifying\",\n SUBMITTED: \"submitted\"\n};\nvar DeleteFleetErrorCode = {\n FLEET_ID_DOES_NOT_EXIST: \"fleetIdDoesNotExist\",\n FLEET_ID_MALFORMED: \"fleetIdMalformed\",\n FLEET_NOT_IN_DELETABLE_STATE: \"fleetNotInDeletableState\",\n UNEXPECTED_ERROR: \"unexpectedError\"\n};\nvar LaunchTemplateErrorCode = {\n LAUNCH_TEMPLATE_ID_DOES_NOT_EXIST: \"launchTemplateIdDoesNotExist\",\n LAUNCH_TEMPLATE_ID_MALFORMED: \"launchTemplateIdMalformed\",\n LAUNCH_TEMPLATE_NAME_DOES_NOT_EXIST: \"launchTemplateNameDoesNotExist\",\n LAUNCH_TEMPLATE_NAME_MALFORMED: \"launchTemplateNameMalformed\",\n LAUNCH_TEMPLATE_VERSION_DOES_NOT_EXIST: \"launchTemplateVersionDoesNotExist\",\n UNEXPECTED_ERROR: \"unexpectedError\"\n};\nvar DeleteQueuedReservedInstancesErrorCode = {\n RESERVED_INSTANCES_ID_INVALID: \"reserved-instances-id-invalid\",\n RESERVED_INSTANCES_NOT_IN_QUEUED_STATE: \"reserved-instances-not-in-queued-state\",\n UNEXPECTED_ERROR: \"unexpected-error\"\n};\nvar AsnState = {\n deprovisioned: \"deprovisioned\",\n failed_deprovision: \"failed-deprovision\",\n failed_provision: \"failed-provision\",\n pending_deprovision: \"pending-deprovision\",\n pending_provision: \"pending-provision\",\n provisioned: \"provisioned\"\n};\nvar IpamPoolCidrFailureCode = {\n cidr_not_available: \"cidr-not-available\",\n limit_exceeded: \"limit-exceeded\"\n};\nvar IpamPoolCidrState = {\n deprovisioned: \"deprovisioned\",\n failed_deprovision: \"failed-deprovision\",\n failed_import: \"failed-import\",\n failed_provision: \"failed-provision\",\n pending_deprovision: \"pending-deprovision\",\n pending_import: \"pending-import\",\n pending_provision: \"pending-provision\",\n provisioned: \"provisioned\"\n};\nvar AvailabilityZoneOptInStatus = {\n not_opted_in: \"not-opted-in\",\n opt_in_not_required: \"opt-in-not-required\",\n opted_in: \"opted-in\"\n};\nvar AvailabilityZoneState = {\n available: \"available\",\n constrained: \"constrained\",\n impaired: \"impaired\",\n information: \"information\",\n unavailable: \"unavailable\"\n};\nvar MetricType = {\n aggregate_latency: \"aggregate-latency\"\n};\nvar PeriodType = {\n fifteen_minutes: \"fifteen-minutes\",\n five_minutes: \"five-minutes\",\n one_day: \"one-day\",\n one_hour: \"one-hour\",\n one_week: \"one-week\",\n three_hours: \"three-hours\"\n};\nvar StatisticType = {\n p50: \"p50\"\n};\nvar CapacityBlockExtensionStatus = {\n PAYMENT_FAILED: \"payment-failed\",\n PAYMENT_PENDING: \"payment-pending\",\n PAYMENT_SUCCEEDED: \"payment-succeeded\"\n};\nvar CallerRole = {\n odcr_owner: \"odcr-owner\",\n unused_reservation_billing_owner: \"unused-reservation-billing-owner\"\n};\nvar CapacityReservationBillingRequestStatus = {\n accepted: \"accepted\",\n cancelled: \"cancelled\",\n expired: \"expired\",\n pending: \"pending\",\n rejected: \"rejected\",\n revoked: \"revoked\"\n};\nvar ClientVpnConnectionStatusCode = {\n active: \"active\",\n failed_to_terminate: \"failed-to-terminate\",\n terminated: \"terminated\",\n terminating: \"terminating\"\n};\nvar AssociatedNetworkType = {\n vpc: \"vpc\"\n};\nvar ClientVpnEndpointAttributeStatusCode = {\n applied: \"applied\",\n applying: \"applying\"\n};\nvar VpnTunnelOptionsSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PreSharedKey && { PreSharedKey: import_smithy_client.SENSITIVE_STRING }\n}), \"VpnTunnelOptionsSpecificationFilterSensitiveLog\");\nvar VpnConnectionOptionsSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TunnelOptions && {\n TunnelOptions: obj.TunnelOptions.map((item) => VpnTunnelOptionsSpecificationFilterSensitiveLog(item))\n }\n}), \"VpnConnectionOptionsSpecificationFilterSensitiveLog\");\nvar CreateVpnConnectionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Options && { Options: VpnConnectionOptionsSpecificationFilterSensitiveLog(obj.Options) }\n}), \"CreateVpnConnectionRequestFilterSensitiveLog\");\nvar TunnelOptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PreSharedKey && { PreSharedKey: import_smithy_client.SENSITIVE_STRING }\n}), \"TunnelOptionFilterSensitiveLog\");\nvar VpnConnectionOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TunnelOptions && { TunnelOptions: obj.TunnelOptions.map((item) => TunnelOptionFilterSensitiveLog(item)) }\n}), \"VpnConnectionOptionsFilterSensitiveLog\");\nvar VpnConnectionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Options && { Options: VpnConnectionOptionsFilterSensitiveLog(obj.Options) },\n ...obj.CustomerGatewayConfiguration && { CustomerGatewayConfiguration: import_smithy_client.SENSITIVE_STRING }\n}), \"VpnConnectionFilterSensitiveLog\");\nvar CreateVpnConnectionResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"CreateVpnConnectionResultFilterSensitiveLog\");\nvar DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog\");\nvar DescribeBundleTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.BundleTasks && { BundleTasks: obj.BundleTasks.map((item) => BundleTaskFilterSensitiveLog(item)) }\n}), \"DescribeBundleTasksResultFilterSensitiveLog\");\n\n// src/commands/CreateVpnConnectionCommand.ts\nvar CreateVpnConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpnConnection\", {}).n(\"EC2Client\", \"CreateVpnConnectionCommand\").f(CreateVpnConnectionRequestFilterSensitiveLog, CreateVpnConnectionResultFilterSensitiveLog).ser(se_CreateVpnConnectionCommand).de(de_CreateVpnConnectionCommand).build() {\n static {\n __name(this, \"CreateVpnConnectionCommand\");\n }\n};\n\n// src/commands/CreateVpnConnectionRouteCommand.ts\n\n\n\nvar CreateVpnConnectionRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpnConnectionRoute\", {}).n(\"EC2Client\", \"CreateVpnConnectionRouteCommand\").f(void 0, void 0).ser(se_CreateVpnConnectionRouteCommand).de(de_CreateVpnConnectionRouteCommand).build() {\n static {\n __name(this, \"CreateVpnConnectionRouteCommand\");\n }\n};\n\n// src/commands/CreateVpnGatewayCommand.ts\n\n\n\nvar CreateVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpnGateway\", {}).n(\"EC2Client\", \"CreateVpnGatewayCommand\").f(void 0, void 0).ser(se_CreateVpnGatewayCommand).de(de_CreateVpnGatewayCommand).build() {\n static {\n __name(this, \"CreateVpnGatewayCommand\");\n }\n};\n\n// src/commands/DeleteCarrierGatewayCommand.ts\n\n\n\nvar DeleteCarrierGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCarrierGateway\", {}).n(\"EC2Client\", \"DeleteCarrierGatewayCommand\").f(void 0, void 0).ser(se_DeleteCarrierGatewayCommand).de(de_DeleteCarrierGatewayCommand).build() {\n static {\n __name(this, \"DeleteCarrierGatewayCommand\");\n }\n};\n\n// src/commands/DeleteClientVpnEndpointCommand.ts\n\n\n\nvar DeleteClientVpnEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteClientVpnEndpoint\", {}).n(\"EC2Client\", \"DeleteClientVpnEndpointCommand\").f(void 0, void 0).ser(se_DeleteClientVpnEndpointCommand).de(de_DeleteClientVpnEndpointCommand).build() {\n static {\n __name(this, \"DeleteClientVpnEndpointCommand\");\n }\n};\n\n// src/commands/DeleteClientVpnRouteCommand.ts\n\n\n\nvar DeleteClientVpnRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteClientVpnRoute\", {}).n(\"EC2Client\", \"DeleteClientVpnRouteCommand\").f(void 0, void 0).ser(se_DeleteClientVpnRouteCommand).de(de_DeleteClientVpnRouteCommand).build() {\n static {\n __name(this, \"DeleteClientVpnRouteCommand\");\n }\n};\n\n// src/commands/DeleteCoipCidrCommand.ts\n\n\n\nvar DeleteCoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCoipCidr\", {}).n(\"EC2Client\", \"DeleteCoipCidrCommand\").f(void 0, void 0).ser(se_DeleteCoipCidrCommand).de(de_DeleteCoipCidrCommand).build() {\n static {\n __name(this, \"DeleteCoipCidrCommand\");\n }\n};\n\n// src/commands/DeleteCoipPoolCommand.ts\n\n\n\nvar DeleteCoipPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCoipPool\", {}).n(\"EC2Client\", \"DeleteCoipPoolCommand\").f(void 0, void 0).ser(se_DeleteCoipPoolCommand).de(de_DeleteCoipPoolCommand).build() {\n static {\n __name(this, \"DeleteCoipPoolCommand\");\n }\n};\n\n// src/commands/DeleteCustomerGatewayCommand.ts\n\n\n\nvar DeleteCustomerGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCustomerGateway\", {}).n(\"EC2Client\", \"DeleteCustomerGatewayCommand\").f(void 0, void 0).ser(se_DeleteCustomerGatewayCommand).de(de_DeleteCustomerGatewayCommand).build() {\n static {\n __name(this, \"DeleteCustomerGatewayCommand\");\n }\n};\n\n// src/commands/DeleteDhcpOptionsCommand.ts\n\n\n\nvar DeleteDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteDhcpOptions\", {}).n(\"EC2Client\", \"DeleteDhcpOptionsCommand\").f(void 0, void 0).ser(se_DeleteDhcpOptionsCommand).de(de_DeleteDhcpOptionsCommand).build() {\n static {\n __name(this, \"DeleteDhcpOptionsCommand\");\n }\n};\n\n// src/commands/DeleteEgressOnlyInternetGatewayCommand.ts\n\n\n\nvar DeleteEgressOnlyInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteEgressOnlyInternetGateway\", {}).n(\"EC2Client\", \"DeleteEgressOnlyInternetGatewayCommand\").f(void 0, void 0).ser(se_DeleteEgressOnlyInternetGatewayCommand).de(de_DeleteEgressOnlyInternetGatewayCommand).build() {\n static {\n __name(this, \"DeleteEgressOnlyInternetGatewayCommand\");\n }\n};\n\n// src/commands/DeleteFleetsCommand.ts\n\n\n\nvar DeleteFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteFleets\", {}).n(\"EC2Client\", \"DeleteFleetsCommand\").f(void 0, void 0).ser(se_DeleteFleetsCommand).de(de_DeleteFleetsCommand).build() {\n static {\n __name(this, \"DeleteFleetsCommand\");\n }\n};\n\n// src/commands/DeleteFlowLogsCommand.ts\n\n\n\nvar DeleteFlowLogsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteFlowLogs\", {}).n(\"EC2Client\", \"DeleteFlowLogsCommand\").f(void 0, void 0).ser(se_DeleteFlowLogsCommand).de(de_DeleteFlowLogsCommand).build() {\n static {\n __name(this, \"DeleteFlowLogsCommand\");\n }\n};\n\n// src/commands/DeleteFpgaImageCommand.ts\n\n\n\nvar DeleteFpgaImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteFpgaImage\", {}).n(\"EC2Client\", \"DeleteFpgaImageCommand\").f(void 0, void 0).ser(se_DeleteFpgaImageCommand).de(de_DeleteFpgaImageCommand).build() {\n static {\n __name(this, \"DeleteFpgaImageCommand\");\n }\n};\n\n// src/commands/DeleteInstanceConnectEndpointCommand.ts\n\n\n\nvar DeleteInstanceConnectEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteInstanceConnectEndpoint\", {}).n(\"EC2Client\", \"DeleteInstanceConnectEndpointCommand\").f(void 0, void 0).ser(se_DeleteInstanceConnectEndpointCommand).de(de_DeleteInstanceConnectEndpointCommand).build() {\n static {\n __name(this, \"DeleteInstanceConnectEndpointCommand\");\n }\n};\n\n// src/commands/DeleteInstanceEventWindowCommand.ts\n\n\n\nvar DeleteInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteInstanceEventWindow\", {}).n(\"EC2Client\", \"DeleteInstanceEventWindowCommand\").f(void 0, void 0).ser(se_DeleteInstanceEventWindowCommand).de(de_DeleteInstanceEventWindowCommand).build() {\n static {\n __name(this, \"DeleteInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/DeleteInternetGatewayCommand.ts\n\n\n\nvar DeleteInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteInternetGateway\", {}).n(\"EC2Client\", \"DeleteInternetGatewayCommand\").f(void 0, void 0).ser(se_DeleteInternetGatewayCommand).de(de_DeleteInternetGatewayCommand).build() {\n static {\n __name(this, \"DeleteInternetGatewayCommand\");\n }\n};\n\n// src/commands/DeleteIpamCommand.ts\n\n\n\nvar DeleteIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpam\", {}).n(\"EC2Client\", \"DeleteIpamCommand\").f(void 0, void 0).ser(se_DeleteIpamCommand).de(de_DeleteIpamCommand).build() {\n static {\n __name(this, \"DeleteIpamCommand\");\n }\n};\n\n// src/commands/DeleteIpamExternalResourceVerificationTokenCommand.ts\n\n\n\nvar DeleteIpamExternalResourceVerificationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamExternalResourceVerificationToken\", {}).n(\"EC2Client\", \"DeleteIpamExternalResourceVerificationTokenCommand\").f(void 0, void 0).ser(se_DeleteIpamExternalResourceVerificationTokenCommand).de(de_DeleteIpamExternalResourceVerificationTokenCommand).build() {\n static {\n __name(this, \"DeleteIpamExternalResourceVerificationTokenCommand\");\n }\n};\n\n// src/commands/DeleteIpamPoolCommand.ts\n\n\n\nvar DeleteIpamPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamPool\", {}).n(\"EC2Client\", \"DeleteIpamPoolCommand\").f(void 0, void 0).ser(se_DeleteIpamPoolCommand).de(de_DeleteIpamPoolCommand).build() {\n static {\n __name(this, \"DeleteIpamPoolCommand\");\n }\n};\n\n// src/commands/DeleteIpamResourceDiscoveryCommand.ts\n\n\n\nvar DeleteIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamResourceDiscovery\", {}).n(\"EC2Client\", \"DeleteIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_DeleteIpamResourceDiscoveryCommand).de(de_DeleteIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"DeleteIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/DeleteIpamScopeCommand.ts\n\n\n\nvar DeleteIpamScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamScope\", {}).n(\"EC2Client\", \"DeleteIpamScopeCommand\").f(void 0, void 0).ser(se_DeleteIpamScopeCommand).de(de_DeleteIpamScopeCommand).build() {\n static {\n __name(this, \"DeleteIpamScopeCommand\");\n }\n};\n\n// src/commands/DeleteKeyPairCommand.ts\n\n\n\nvar DeleteKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteKeyPair\", {}).n(\"EC2Client\", \"DeleteKeyPairCommand\").f(void 0, void 0).ser(se_DeleteKeyPairCommand).de(de_DeleteKeyPairCommand).build() {\n static {\n __name(this, \"DeleteKeyPairCommand\");\n }\n};\n\n// src/commands/DeleteLaunchTemplateCommand.ts\n\n\n\nvar DeleteLaunchTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLaunchTemplate\", {}).n(\"EC2Client\", \"DeleteLaunchTemplateCommand\").f(void 0, void 0).ser(se_DeleteLaunchTemplateCommand).de(de_DeleteLaunchTemplateCommand).build() {\n static {\n __name(this, \"DeleteLaunchTemplateCommand\");\n }\n};\n\n// src/commands/DeleteLaunchTemplateVersionsCommand.ts\n\n\n\nvar DeleteLaunchTemplateVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLaunchTemplateVersions\", {}).n(\"EC2Client\", \"DeleteLaunchTemplateVersionsCommand\").f(void 0, void 0).ser(se_DeleteLaunchTemplateVersionsCommand).de(de_DeleteLaunchTemplateVersionsCommand).build() {\n static {\n __name(this, \"DeleteLaunchTemplateVersionsCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRoute\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteCommand).de(de_DeleteLocalGatewayRouteCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteTableCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRouteTable\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteTableCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteTableCommand).de(de_DeleteLocalGatewayRouteTableCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).de(de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteTableVpcAssociationCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteTableVpcAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRouteTableVpcAssociation\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteTableVpcAssociationCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteTableVpcAssociationCommand).de(de_DeleteLocalGatewayRouteTableVpcAssociationCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteTableVpcAssociationCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayVirtualInterfaceCommand.ts\n\n\n\nvar DeleteLocalGatewayVirtualInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayVirtualInterface\", {}).n(\"EC2Client\", \"DeleteLocalGatewayVirtualInterfaceCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayVirtualInterfaceCommand).de(de_DeleteLocalGatewayVirtualInterfaceCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayVirtualInterfaceCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayVirtualInterfaceGroupCommand.ts\n\n\n\nvar DeleteLocalGatewayVirtualInterfaceGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayVirtualInterfaceGroup\", {}).n(\"EC2Client\", \"DeleteLocalGatewayVirtualInterfaceGroupCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayVirtualInterfaceGroupCommand).de(de_DeleteLocalGatewayVirtualInterfaceGroupCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayVirtualInterfaceGroupCommand\");\n }\n};\n\n// src/commands/DeleteManagedPrefixListCommand.ts\n\n\n\nvar DeleteManagedPrefixListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteManagedPrefixList\", {}).n(\"EC2Client\", \"DeleteManagedPrefixListCommand\").f(void 0, void 0).ser(se_DeleteManagedPrefixListCommand).de(de_DeleteManagedPrefixListCommand).build() {\n static {\n __name(this, \"DeleteManagedPrefixListCommand\");\n }\n};\n\n// src/commands/DeleteNatGatewayCommand.ts\n\n\n\nvar DeleteNatGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNatGateway\", {}).n(\"EC2Client\", \"DeleteNatGatewayCommand\").f(void 0, void 0).ser(se_DeleteNatGatewayCommand).de(de_DeleteNatGatewayCommand).build() {\n static {\n __name(this, \"DeleteNatGatewayCommand\");\n }\n};\n\n// src/commands/DeleteNetworkAclCommand.ts\n\n\n\nvar DeleteNetworkAclCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkAcl\", {}).n(\"EC2Client\", \"DeleteNetworkAclCommand\").f(void 0, void 0).ser(se_DeleteNetworkAclCommand).de(de_DeleteNetworkAclCommand).build() {\n static {\n __name(this, \"DeleteNetworkAclCommand\");\n }\n};\n\n// src/commands/DeleteNetworkAclEntryCommand.ts\n\n\n\nvar DeleteNetworkAclEntryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkAclEntry\", {}).n(\"EC2Client\", \"DeleteNetworkAclEntryCommand\").f(void 0, void 0).ser(se_DeleteNetworkAclEntryCommand).de(de_DeleteNetworkAclEntryCommand).build() {\n static {\n __name(this, \"DeleteNetworkAclEntryCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsAccessScopeAnalysisCommand.ts\n\n\n\nvar DeleteNetworkInsightsAccessScopeAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsAccessScopeAnalysis\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsAccessScopeAnalysisCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsAccessScopeAnalysisCommand).de(de_DeleteNetworkInsightsAccessScopeAnalysisCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsAccessScopeAnalysisCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsAccessScopeCommand.ts\n\n\n\nvar DeleteNetworkInsightsAccessScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsAccessScope\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsAccessScopeCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsAccessScopeCommand).de(de_DeleteNetworkInsightsAccessScopeCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsAccessScopeCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsAnalysisCommand.ts\n\n\n\nvar DeleteNetworkInsightsAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsAnalysis\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsAnalysisCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsAnalysisCommand).de(de_DeleteNetworkInsightsAnalysisCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsAnalysisCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsPathCommand.ts\n\n\n\nvar DeleteNetworkInsightsPathCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsPath\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsPathCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsPathCommand).de(de_DeleteNetworkInsightsPathCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsPathCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInterfaceCommand.ts\n\n\n\nvar DeleteNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInterface\", {}).n(\"EC2Client\", \"DeleteNetworkInterfaceCommand\").f(void 0, void 0).ser(se_DeleteNetworkInterfaceCommand).de(de_DeleteNetworkInterfaceCommand).build() {\n static {\n __name(this, \"DeleteNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInterfacePermissionCommand.ts\n\n\n\nvar DeleteNetworkInterfacePermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInterfacePermission\", {}).n(\"EC2Client\", \"DeleteNetworkInterfacePermissionCommand\").f(void 0, void 0).ser(se_DeleteNetworkInterfacePermissionCommand).de(de_DeleteNetworkInterfacePermissionCommand).build() {\n static {\n __name(this, \"DeleteNetworkInterfacePermissionCommand\");\n }\n};\n\n// src/commands/DeletePlacementGroupCommand.ts\n\n\n\nvar DeletePlacementGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeletePlacementGroup\", {}).n(\"EC2Client\", \"DeletePlacementGroupCommand\").f(void 0, void 0).ser(se_DeletePlacementGroupCommand).de(de_DeletePlacementGroupCommand).build() {\n static {\n __name(this, \"DeletePlacementGroupCommand\");\n }\n};\n\n// src/commands/DeletePublicIpv4PoolCommand.ts\n\n\n\nvar DeletePublicIpv4PoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeletePublicIpv4Pool\", {}).n(\"EC2Client\", \"DeletePublicIpv4PoolCommand\").f(void 0, void 0).ser(se_DeletePublicIpv4PoolCommand).de(de_DeletePublicIpv4PoolCommand).build() {\n static {\n __name(this, \"DeletePublicIpv4PoolCommand\");\n }\n};\n\n// src/commands/DeleteQueuedReservedInstancesCommand.ts\n\n\n\nvar DeleteQueuedReservedInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteQueuedReservedInstances\", {}).n(\"EC2Client\", \"DeleteQueuedReservedInstancesCommand\").f(void 0, void 0).ser(se_DeleteQueuedReservedInstancesCommand).de(de_DeleteQueuedReservedInstancesCommand).build() {\n static {\n __name(this, \"DeleteQueuedReservedInstancesCommand\");\n }\n};\n\n// src/commands/DeleteRouteCommand.ts\n\n\n\nvar DeleteRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRoute\", {}).n(\"EC2Client\", \"DeleteRouteCommand\").f(void 0, void 0).ser(se_DeleteRouteCommand).de(de_DeleteRouteCommand).build() {\n static {\n __name(this, \"DeleteRouteCommand\");\n }\n};\n\n// src/commands/DeleteRouteServerCommand.ts\n\n\n\nvar DeleteRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteServer\", {}).n(\"EC2Client\", \"DeleteRouteServerCommand\").f(void 0, void 0).ser(se_DeleteRouteServerCommand).de(de_DeleteRouteServerCommand).build() {\n static {\n __name(this, \"DeleteRouteServerCommand\");\n }\n};\n\n// src/commands/DeleteRouteServerEndpointCommand.ts\n\n\n\nvar DeleteRouteServerEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteServerEndpoint\", {}).n(\"EC2Client\", \"DeleteRouteServerEndpointCommand\").f(void 0, void 0).ser(se_DeleteRouteServerEndpointCommand).de(de_DeleteRouteServerEndpointCommand).build() {\n static {\n __name(this, \"DeleteRouteServerEndpointCommand\");\n }\n};\n\n// src/commands/DeleteRouteServerPeerCommand.ts\n\n\n\nvar DeleteRouteServerPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteServerPeer\", {}).n(\"EC2Client\", \"DeleteRouteServerPeerCommand\").f(void 0, void 0).ser(se_DeleteRouteServerPeerCommand).de(de_DeleteRouteServerPeerCommand).build() {\n static {\n __name(this, \"DeleteRouteServerPeerCommand\");\n }\n};\n\n// src/commands/DeleteRouteTableCommand.ts\n\n\n\nvar DeleteRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteTable\", {}).n(\"EC2Client\", \"DeleteRouteTableCommand\").f(void 0, void 0).ser(se_DeleteRouteTableCommand).de(de_DeleteRouteTableCommand).build() {\n static {\n __name(this, \"DeleteRouteTableCommand\");\n }\n};\n\n// src/commands/DeleteSecurityGroupCommand.ts\n\n\n\nvar DeleteSecurityGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSecurityGroup\", {}).n(\"EC2Client\", \"DeleteSecurityGroupCommand\").f(void 0, void 0).ser(se_DeleteSecurityGroupCommand).de(de_DeleteSecurityGroupCommand).build() {\n static {\n __name(this, \"DeleteSecurityGroupCommand\");\n }\n};\n\n// src/commands/DeleteSnapshotCommand.ts\n\n\n\nvar DeleteSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSnapshot\", {}).n(\"EC2Client\", \"DeleteSnapshotCommand\").f(void 0, void 0).ser(se_DeleteSnapshotCommand).de(de_DeleteSnapshotCommand).build() {\n static {\n __name(this, \"DeleteSnapshotCommand\");\n }\n};\n\n// src/commands/DeleteSpotDatafeedSubscriptionCommand.ts\n\n\n\nvar DeleteSpotDatafeedSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSpotDatafeedSubscription\", {}).n(\"EC2Client\", \"DeleteSpotDatafeedSubscriptionCommand\").f(void 0, void 0).ser(se_DeleteSpotDatafeedSubscriptionCommand).de(de_DeleteSpotDatafeedSubscriptionCommand).build() {\n static {\n __name(this, \"DeleteSpotDatafeedSubscriptionCommand\");\n }\n};\n\n// src/commands/DeleteSubnetCidrReservationCommand.ts\n\n\n\nvar DeleteSubnetCidrReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSubnetCidrReservation\", {}).n(\"EC2Client\", \"DeleteSubnetCidrReservationCommand\").f(void 0, void 0).ser(se_DeleteSubnetCidrReservationCommand).de(de_DeleteSubnetCidrReservationCommand).build() {\n static {\n __name(this, \"DeleteSubnetCidrReservationCommand\");\n }\n};\n\n// src/commands/DeleteSubnetCommand.ts\n\n\n\nvar DeleteSubnetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSubnet\", {}).n(\"EC2Client\", \"DeleteSubnetCommand\").f(void 0, void 0).ser(se_DeleteSubnetCommand).de(de_DeleteSubnetCommand).build() {\n static {\n __name(this, \"DeleteSubnetCommand\");\n }\n};\n\n// src/commands/DeleteTagsCommand.ts\n\n\n\nvar DeleteTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTags\", {}).n(\"EC2Client\", \"DeleteTagsCommand\").f(void 0, void 0).ser(se_DeleteTagsCommand).de(de_DeleteTagsCommand).build() {\n static {\n __name(this, \"DeleteTagsCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorFilterCommand.ts\n\n\n\nvar DeleteTrafficMirrorFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorFilter\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorFilterCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorFilterCommand).de(de_DeleteTrafficMirrorFilterCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorFilterCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorFilterRuleCommand.ts\n\n\n\nvar DeleteTrafficMirrorFilterRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorFilterRule\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorFilterRuleCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorFilterRuleCommand).de(de_DeleteTrafficMirrorFilterRuleCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorFilterRuleCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorSessionCommand.ts\n\n\n\nvar DeleteTrafficMirrorSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorSession\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorSessionCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorSessionCommand).de(de_DeleteTrafficMirrorSessionCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorSessionCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorTargetCommand.ts\n\n\n\nvar DeleteTrafficMirrorTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorTarget\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorTargetCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorTargetCommand).de(de_DeleteTrafficMirrorTargetCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorTargetCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayCommand.ts\n\n\n\nvar DeleteTransitGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGateway\", {}).n(\"EC2Client\", \"DeleteTransitGatewayCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayCommand).de(de_DeleteTransitGatewayCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayConnectCommand.ts\n\n\n\nvar DeleteTransitGatewayConnectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayConnect\", {}).n(\"EC2Client\", \"DeleteTransitGatewayConnectCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayConnectCommand).de(de_DeleteTransitGatewayConnectCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayConnectCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayConnectPeerCommand.ts\n\n\n\nvar DeleteTransitGatewayConnectPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayConnectPeer\", {}).n(\"EC2Client\", \"DeleteTransitGatewayConnectPeerCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayConnectPeerCommand).de(de_DeleteTransitGatewayConnectPeerCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayConnectPeerCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar DeleteTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"DeleteTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayMulticastDomainCommand).de(de_DeleteTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar DeleteTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"DeleteTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayPeeringAttachmentCommand).de(de_DeleteTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayPolicyTableCommand.ts\n\n\n\nvar DeleteTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"DeleteTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayPolicyTableCommand).de(de_DeleteTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayPrefixListReferenceCommand.ts\n\n\n\nvar DeleteTransitGatewayPrefixListReferenceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayPrefixListReference\", {}).n(\"EC2Client\", \"DeleteTransitGatewayPrefixListReferenceCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayPrefixListReferenceCommand).de(de_DeleteTransitGatewayPrefixListReferenceCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayPrefixListReferenceCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayRouteCommand.ts\n\n\n\nvar DeleteTransitGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayRoute\", {}).n(\"EC2Client\", \"DeleteTransitGatewayRouteCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayRouteCommand).de(de_DeleteTransitGatewayRouteCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayRouteCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayRouteTableAnnouncementCommand.ts\n\n\n\nvar DeleteTransitGatewayRouteTableAnnouncementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayRouteTableAnnouncement\", {}).n(\"EC2Client\", \"DeleteTransitGatewayRouteTableAnnouncementCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayRouteTableAnnouncementCommand).de(de_DeleteTransitGatewayRouteTableAnnouncementCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayRouteTableAnnouncementCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayRouteTableCommand.ts\n\n\n\nvar DeleteTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"DeleteTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayRouteTableCommand).de(de_DeleteTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar DeleteTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"DeleteTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayVpcAttachmentCommand).de(de_DeleteTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessEndpointCommand.ts\n\n\n\nvar DeleteVerifiedAccessEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessEndpoint\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessEndpointCommand\").f(void 0, void 0).ser(se_DeleteVerifiedAccessEndpointCommand).de(de_DeleteVerifiedAccessEndpointCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessEndpointCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessGroupCommand.ts\n\n\n\nvar DeleteVerifiedAccessGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessGroup\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessGroupCommand\").f(void 0, void 0).ser(se_DeleteVerifiedAccessGroupCommand).de(de_DeleteVerifiedAccessGroupCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessGroupCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessInstanceCommand.ts\n\n\n\nvar DeleteVerifiedAccessInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessInstance\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessInstanceCommand\").f(void 0, void 0).ser(se_DeleteVerifiedAccessInstanceCommand).de(de_DeleteVerifiedAccessInstanceCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessInstanceCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar DeleteVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessTrustProviderCommand\").f(void 0, DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog).ser(se_DeleteVerifiedAccessTrustProviderCommand).de(de_DeleteVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/DeleteVolumeCommand.ts\n\n\n\nvar DeleteVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVolume\", {}).n(\"EC2Client\", \"DeleteVolumeCommand\").f(void 0, void 0).ser(se_DeleteVolumeCommand).de(de_DeleteVolumeCommand).build() {\n static {\n __name(this, \"DeleteVolumeCommand\");\n }\n};\n\n// src/commands/DeleteVpcBlockPublicAccessExclusionCommand.ts\n\n\n\nvar DeleteVpcBlockPublicAccessExclusionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcBlockPublicAccessExclusion\", {}).n(\"EC2Client\", \"DeleteVpcBlockPublicAccessExclusionCommand\").f(void 0, void 0).ser(se_DeleteVpcBlockPublicAccessExclusionCommand).de(de_DeleteVpcBlockPublicAccessExclusionCommand).build() {\n static {\n __name(this, \"DeleteVpcBlockPublicAccessExclusionCommand\");\n }\n};\n\n// src/commands/DeleteVpcCommand.ts\n\n\n\nvar DeleteVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpc\", {}).n(\"EC2Client\", \"DeleteVpcCommand\").f(void 0, void 0).ser(se_DeleteVpcCommand).de(de_DeleteVpcCommand).build() {\n static {\n __name(this, \"DeleteVpcCommand\");\n }\n};\n\n// src/commands/DeleteVpcEndpointConnectionNotificationsCommand.ts\n\n\n\nvar DeleteVpcEndpointConnectionNotificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcEndpointConnectionNotifications\", {}).n(\"EC2Client\", \"DeleteVpcEndpointConnectionNotificationsCommand\").f(void 0, void 0).ser(se_DeleteVpcEndpointConnectionNotificationsCommand).de(de_DeleteVpcEndpointConnectionNotificationsCommand).build() {\n static {\n __name(this, \"DeleteVpcEndpointConnectionNotificationsCommand\");\n }\n};\n\n// src/commands/DeleteVpcEndpointsCommand.ts\n\n\n\nvar DeleteVpcEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcEndpoints\", {}).n(\"EC2Client\", \"DeleteVpcEndpointsCommand\").f(void 0, void 0).ser(se_DeleteVpcEndpointsCommand).de(de_DeleteVpcEndpointsCommand).build() {\n static {\n __name(this, \"DeleteVpcEndpointsCommand\");\n }\n};\n\n// src/commands/DeleteVpcEndpointServiceConfigurationsCommand.ts\n\n\n\nvar DeleteVpcEndpointServiceConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcEndpointServiceConfigurations\", {}).n(\"EC2Client\", \"DeleteVpcEndpointServiceConfigurationsCommand\").f(void 0, void 0).ser(se_DeleteVpcEndpointServiceConfigurationsCommand).de(de_DeleteVpcEndpointServiceConfigurationsCommand).build() {\n static {\n __name(this, \"DeleteVpcEndpointServiceConfigurationsCommand\");\n }\n};\n\n// src/commands/DeleteVpcPeeringConnectionCommand.ts\n\n\n\nvar DeleteVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcPeeringConnection\", {}).n(\"EC2Client\", \"DeleteVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_DeleteVpcPeeringConnectionCommand).de(de_DeleteVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"DeleteVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/DeleteVpnConnectionCommand.ts\n\n\n\nvar DeleteVpnConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpnConnection\", {}).n(\"EC2Client\", \"DeleteVpnConnectionCommand\").f(void 0, void 0).ser(se_DeleteVpnConnectionCommand).de(de_DeleteVpnConnectionCommand).build() {\n static {\n __name(this, \"DeleteVpnConnectionCommand\");\n }\n};\n\n// src/commands/DeleteVpnConnectionRouteCommand.ts\n\n\n\nvar DeleteVpnConnectionRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpnConnectionRoute\", {}).n(\"EC2Client\", \"DeleteVpnConnectionRouteCommand\").f(void 0, void 0).ser(se_DeleteVpnConnectionRouteCommand).de(de_DeleteVpnConnectionRouteCommand).build() {\n static {\n __name(this, \"DeleteVpnConnectionRouteCommand\");\n }\n};\n\n// src/commands/DeleteVpnGatewayCommand.ts\n\n\n\nvar DeleteVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpnGateway\", {}).n(\"EC2Client\", \"DeleteVpnGatewayCommand\").f(void 0, void 0).ser(se_DeleteVpnGatewayCommand).de(de_DeleteVpnGatewayCommand).build() {\n static {\n __name(this, \"DeleteVpnGatewayCommand\");\n }\n};\n\n// src/commands/DeprovisionByoipCidrCommand.ts\n\n\n\nvar DeprovisionByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionByoipCidr\", {}).n(\"EC2Client\", \"DeprovisionByoipCidrCommand\").f(void 0, void 0).ser(se_DeprovisionByoipCidrCommand).de(de_DeprovisionByoipCidrCommand).build() {\n static {\n __name(this, \"DeprovisionByoipCidrCommand\");\n }\n};\n\n// src/commands/DeprovisionIpamByoasnCommand.ts\n\n\n\nvar DeprovisionIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionIpamByoasn\", {}).n(\"EC2Client\", \"DeprovisionIpamByoasnCommand\").f(void 0, void 0).ser(se_DeprovisionIpamByoasnCommand).de(de_DeprovisionIpamByoasnCommand).build() {\n static {\n __name(this, \"DeprovisionIpamByoasnCommand\");\n }\n};\n\n// src/commands/DeprovisionIpamPoolCidrCommand.ts\n\n\n\nvar DeprovisionIpamPoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionIpamPoolCidr\", {}).n(\"EC2Client\", \"DeprovisionIpamPoolCidrCommand\").f(void 0, void 0).ser(se_DeprovisionIpamPoolCidrCommand).de(de_DeprovisionIpamPoolCidrCommand).build() {\n static {\n __name(this, \"DeprovisionIpamPoolCidrCommand\");\n }\n};\n\n// src/commands/DeprovisionPublicIpv4PoolCidrCommand.ts\n\n\n\nvar DeprovisionPublicIpv4PoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionPublicIpv4PoolCidr\", {}).n(\"EC2Client\", \"DeprovisionPublicIpv4PoolCidrCommand\").f(void 0, void 0).ser(se_DeprovisionPublicIpv4PoolCidrCommand).de(de_DeprovisionPublicIpv4PoolCidrCommand).build() {\n static {\n __name(this, \"DeprovisionPublicIpv4PoolCidrCommand\");\n }\n};\n\n// src/commands/DeregisterImageCommand.ts\n\n\n\nvar DeregisterImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterImage\", {}).n(\"EC2Client\", \"DeregisterImageCommand\").f(void 0, void 0).ser(se_DeregisterImageCommand).de(de_DeregisterImageCommand).build() {\n static {\n __name(this, \"DeregisterImageCommand\");\n }\n};\n\n// src/commands/DeregisterInstanceEventNotificationAttributesCommand.ts\n\n\n\nvar DeregisterInstanceEventNotificationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterInstanceEventNotificationAttributes\", {}).n(\"EC2Client\", \"DeregisterInstanceEventNotificationAttributesCommand\").f(void 0, void 0).ser(se_DeregisterInstanceEventNotificationAttributesCommand).de(de_DeregisterInstanceEventNotificationAttributesCommand).build() {\n static {\n __name(this, \"DeregisterInstanceEventNotificationAttributesCommand\");\n }\n};\n\n// src/commands/DeregisterTransitGatewayMulticastGroupMembersCommand.ts\n\n\n\nvar DeregisterTransitGatewayMulticastGroupMembersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterTransitGatewayMulticastGroupMembers\", {}).n(\"EC2Client\", \"DeregisterTransitGatewayMulticastGroupMembersCommand\").f(void 0, void 0).ser(se_DeregisterTransitGatewayMulticastGroupMembersCommand).de(de_DeregisterTransitGatewayMulticastGroupMembersCommand).build() {\n static {\n __name(this, \"DeregisterTransitGatewayMulticastGroupMembersCommand\");\n }\n};\n\n// src/commands/DeregisterTransitGatewayMulticastGroupSourcesCommand.ts\n\n\n\nvar DeregisterTransitGatewayMulticastGroupSourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterTransitGatewayMulticastGroupSources\", {}).n(\"EC2Client\", \"DeregisterTransitGatewayMulticastGroupSourcesCommand\").f(void 0, void 0).ser(se_DeregisterTransitGatewayMulticastGroupSourcesCommand).de(de_DeregisterTransitGatewayMulticastGroupSourcesCommand).build() {\n static {\n __name(this, \"DeregisterTransitGatewayMulticastGroupSourcesCommand\");\n }\n};\n\n// src/commands/DescribeAccountAttributesCommand.ts\n\n\n\nvar DescribeAccountAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAccountAttributes\", {}).n(\"EC2Client\", \"DescribeAccountAttributesCommand\").f(void 0, void 0).ser(se_DescribeAccountAttributesCommand).de(de_DescribeAccountAttributesCommand).build() {\n static {\n __name(this, \"DescribeAccountAttributesCommand\");\n }\n};\n\n// src/commands/DescribeAddressesAttributeCommand.ts\n\n\n\nvar DescribeAddressesAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAddressesAttribute\", {}).n(\"EC2Client\", \"DescribeAddressesAttributeCommand\").f(void 0, void 0).ser(se_DescribeAddressesAttributeCommand).de(de_DescribeAddressesAttributeCommand).build() {\n static {\n __name(this, \"DescribeAddressesAttributeCommand\");\n }\n};\n\n// src/commands/DescribeAddressesCommand.ts\n\n\n\nvar DescribeAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAddresses\", {}).n(\"EC2Client\", \"DescribeAddressesCommand\").f(void 0, void 0).ser(se_DescribeAddressesCommand).de(de_DescribeAddressesCommand).build() {\n static {\n __name(this, \"DescribeAddressesCommand\");\n }\n};\n\n// src/commands/DescribeAddressTransfersCommand.ts\n\n\n\nvar DescribeAddressTransfersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAddressTransfers\", {}).n(\"EC2Client\", \"DescribeAddressTransfersCommand\").f(void 0, void 0).ser(se_DescribeAddressTransfersCommand).de(de_DescribeAddressTransfersCommand).build() {\n static {\n __name(this, \"DescribeAddressTransfersCommand\");\n }\n};\n\n// src/commands/DescribeAggregateIdFormatCommand.ts\n\n\n\nvar DescribeAggregateIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAggregateIdFormat\", {}).n(\"EC2Client\", \"DescribeAggregateIdFormatCommand\").f(void 0, void 0).ser(se_DescribeAggregateIdFormatCommand).de(de_DescribeAggregateIdFormatCommand).build() {\n static {\n __name(this, \"DescribeAggregateIdFormatCommand\");\n }\n};\n\n// src/commands/DescribeAvailabilityZonesCommand.ts\n\n\n\nvar DescribeAvailabilityZonesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAvailabilityZones\", {}).n(\"EC2Client\", \"DescribeAvailabilityZonesCommand\").f(void 0, void 0).ser(se_DescribeAvailabilityZonesCommand).de(de_DescribeAvailabilityZonesCommand).build() {\n static {\n __name(this, \"DescribeAvailabilityZonesCommand\");\n }\n};\n\n// src/commands/DescribeAwsNetworkPerformanceMetricSubscriptionsCommand.ts\n\n\n\nvar DescribeAwsNetworkPerformanceMetricSubscriptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAwsNetworkPerformanceMetricSubscriptions\", {}).n(\"EC2Client\", \"DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\").f(void 0, void 0).ser(se_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand).de(de_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand).build() {\n static {\n __name(this, \"DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\");\n }\n};\n\n// src/commands/DescribeBundleTasksCommand.ts\n\n\n\nvar DescribeBundleTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeBundleTasks\", {}).n(\"EC2Client\", \"DescribeBundleTasksCommand\").f(void 0, DescribeBundleTasksResultFilterSensitiveLog).ser(se_DescribeBundleTasksCommand).de(de_DescribeBundleTasksCommand).build() {\n static {\n __name(this, \"DescribeBundleTasksCommand\");\n }\n};\n\n// src/commands/DescribeByoipCidrsCommand.ts\n\n\n\nvar DescribeByoipCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeByoipCidrs\", {}).n(\"EC2Client\", \"DescribeByoipCidrsCommand\").f(void 0, void 0).ser(se_DescribeByoipCidrsCommand).de(de_DescribeByoipCidrsCommand).build() {\n static {\n __name(this, \"DescribeByoipCidrsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityBlockExtensionHistoryCommand.ts\n\n\n\nvar DescribeCapacityBlockExtensionHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityBlockExtensionHistory\", {}).n(\"EC2Client\", \"DescribeCapacityBlockExtensionHistoryCommand\").f(void 0, void 0).ser(se_DescribeCapacityBlockExtensionHistoryCommand).de(de_DescribeCapacityBlockExtensionHistoryCommand).build() {\n static {\n __name(this, \"DescribeCapacityBlockExtensionHistoryCommand\");\n }\n};\n\n// src/commands/DescribeCapacityBlockExtensionOfferingsCommand.ts\n\n\n\nvar DescribeCapacityBlockExtensionOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityBlockExtensionOfferings\", {}).n(\"EC2Client\", \"DescribeCapacityBlockExtensionOfferingsCommand\").f(void 0, void 0).ser(se_DescribeCapacityBlockExtensionOfferingsCommand).de(de_DescribeCapacityBlockExtensionOfferingsCommand).build() {\n static {\n __name(this, \"DescribeCapacityBlockExtensionOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityBlockOfferingsCommand.ts\n\n\n\nvar DescribeCapacityBlockOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityBlockOfferings\", {}).n(\"EC2Client\", \"DescribeCapacityBlockOfferingsCommand\").f(void 0, void 0).ser(se_DescribeCapacityBlockOfferingsCommand).de(de_DescribeCapacityBlockOfferingsCommand).build() {\n static {\n __name(this, \"DescribeCapacityBlockOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationBillingRequestsCommand.ts\n\n\n\nvar DescribeCapacityReservationBillingRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityReservationBillingRequests\", {}).n(\"EC2Client\", \"DescribeCapacityReservationBillingRequestsCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationBillingRequestsCommand).de(de_DescribeCapacityReservationBillingRequestsCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationBillingRequestsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationFleetsCommand.ts\n\n\n\nvar DescribeCapacityReservationFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityReservationFleets\", {}).n(\"EC2Client\", \"DescribeCapacityReservationFleetsCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationFleetsCommand).de(de_DescribeCapacityReservationFleetsCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationFleetsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationsCommand.ts\n\n\n\nvar DescribeCapacityReservationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityReservations\", {}).n(\"EC2Client\", \"DescribeCapacityReservationsCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationsCommand).de(de_DescribeCapacityReservationsCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationsCommand\");\n }\n};\n\n// src/commands/DescribeCarrierGatewaysCommand.ts\n\n\n\nvar DescribeCarrierGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCarrierGateways\", {}).n(\"EC2Client\", \"DescribeCarrierGatewaysCommand\").f(void 0, void 0).ser(se_DescribeCarrierGatewaysCommand).de(de_DescribeCarrierGatewaysCommand).build() {\n static {\n __name(this, \"DescribeCarrierGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeClassicLinkInstancesCommand.ts\n\n\n\nvar DescribeClassicLinkInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClassicLinkInstances\", {}).n(\"EC2Client\", \"DescribeClassicLinkInstancesCommand\").f(void 0, void 0).ser(se_DescribeClassicLinkInstancesCommand).de(de_DescribeClassicLinkInstancesCommand).build() {\n static {\n __name(this, \"DescribeClassicLinkInstancesCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnAuthorizationRulesCommand.ts\n\n\n\nvar DescribeClientVpnAuthorizationRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnAuthorizationRules\", {}).n(\"EC2Client\", \"DescribeClientVpnAuthorizationRulesCommand\").f(void 0, void 0).ser(se_DescribeClientVpnAuthorizationRulesCommand).de(de_DescribeClientVpnAuthorizationRulesCommand).build() {\n static {\n __name(this, \"DescribeClientVpnAuthorizationRulesCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnConnectionsCommand.ts\n\n\n\nvar DescribeClientVpnConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnConnections\", {}).n(\"EC2Client\", \"DescribeClientVpnConnectionsCommand\").f(void 0, void 0).ser(se_DescribeClientVpnConnectionsCommand).de(de_DescribeClientVpnConnectionsCommand).build() {\n static {\n __name(this, \"DescribeClientVpnConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnEndpointsCommand.ts\n\n\n\nvar DescribeClientVpnEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnEndpoints\", {}).n(\"EC2Client\", \"DescribeClientVpnEndpointsCommand\").f(void 0, void 0).ser(se_DescribeClientVpnEndpointsCommand).de(de_DescribeClientVpnEndpointsCommand).build() {\n static {\n __name(this, \"DescribeClientVpnEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnRoutesCommand.ts\n\n\n\nvar DescribeClientVpnRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnRoutes\", {}).n(\"EC2Client\", \"DescribeClientVpnRoutesCommand\").f(void 0, void 0).ser(se_DescribeClientVpnRoutesCommand).de(de_DescribeClientVpnRoutesCommand).build() {\n static {\n __name(this, \"DescribeClientVpnRoutesCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnTargetNetworksCommand.ts\n\n\n\nvar DescribeClientVpnTargetNetworksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnTargetNetworks\", {}).n(\"EC2Client\", \"DescribeClientVpnTargetNetworksCommand\").f(void 0, void 0).ser(se_DescribeClientVpnTargetNetworksCommand).de(de_DescribeClientVpnTargetNetworksCommand).build() {\n static {\n __name(this, \"DescribeClientVpnTargetNetworksCommand\");\n }\n};\n\n// src/commands/DescribeCoipPoolsCommand.ts\n\n\n\nvar DescribeCoipPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCoipPools\", {}).n(\"EC2Client\", \"DescribeCoipPoolsCommand\").f(void 0, void 0).ser(se_DescribeCoipPoolsCommand).de(de_DescribeCoipPoolsCommand).build() {\n static {\n __name(this, \"DescribeCoipPoolsCommand\");\n }\n};\n\n// src/commands/DescribeConversionTasksCommand.ts\n\n\n\n\n// src/models/models_4.ts\n\nvar VpnProtocol = {\n openvpn: \"openvpn\"\n};\nvar ConversionTaskState = {\n active: \"active\",\n cancelled: \"cancelled\",\n cancelling: \"cancelling\",\n completed: \"completed\"\n};\nvar ReportState = {\n cancelled: \"cancelled\",\n complete: \"complete\",\n error: \"error\",\n running: \"running\"\n};\nvar ElasticGpuStatus = {\n Impaired: \"IMPAIRED\",\n Ok: \"OK\"\n};\nvar ElasticGpuState = {\n Attached: \"ATTACHED\"\n};\nvar FastLaunchResourceType = {\n SNAPSHOT: \"snapshot\"\n};\nvar FastLaunchStateCode = {\n disabling: \"disabling\",\n disabling_failed: \"disabling-failed\",\n enabled: \"enabled\",\n enabled_failed: \"enabled-failed\",\n enabling: \"enabling\",\n enabling_failed: \"enabling-failed\"\n};\nvar FastSnapshotRestoreStateCode = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n enabling: \"enabling\",\n optimizing: \"optimizing\"\n};\nvar FleetEventType = {\n FLEET_CHANGE: \"fleet-change\",\n INSTANCE_CHANGE: \"instance-change\",\n SERVICE_ERROR: \"service-error\"\n};\nvar FleetActivityStatus = {\n ERROR: \"error\",\n FULFILLED: \"fulfilled\",\n PENDING_FULFILLMENT: \"pending_fulfillment\",\n PENDING_TERMINATION: \"pending_termination\"\n};\nvar FpgaImageAttributeName = {\n description: \"description\",\n loadPermission: \"loadPermission\",\n name: \"name\",\n productCodes: \"productCodes\"\n};\nvar PermissionGroup = {\n all: \"all\"\n};\nvar ProductCodeValues = {\n devpay: \"devpay\",\n marketplace: \"marketplace\"\n};\nvar FpgaImageStateCode = {\n available: \"available\",\n failed: \"failed\",\n pending: \"pending\",\n unavailable: \"unavailable\"\n};\nvar PaymentOption = {\n ALL_UPFRONT: \"AllUpfront\",\n NO_UPFRONT: \"NoUpfront\",\n PARTIAL_UPFRONT: \"PartialUpfront\"\n};\nvar ReservationState = {\n ACTIVE: \"active\",\n PAYMENT_FAILED: \"payment-failed\",\n PAYMENT_PENDING: \"payment-pending\",\n RETIRED: \"retired\"\n};\nvar ImageAttributeName = {\n blockDeviceMapping: \"blockDeviceMapping\",\n bootMode: \"bootMode\",\n deregistrationProtection: \"deregistrationProtection\",\n description: \"description\",\n imdsSupport: \"imdsSupport\",\n kernel: \"kernel\",\n lastLaunchedTime: \"lastLaunchedTime\",\n launchPermission: \"launchPermission\",\n productCodes: \"productCodes\",\n ramdisk: \"ramdisk\",\n sriovNetSupport: \"sriovNetSupport\",\n tpmSupport: \"tpmSupport\",\n uefiData: \"uefiData\"\n};\nvar ArchitectureValues = {\n arm64: \"arm64\",\n arm64_mac: \"arm64_mac\",\n i386: \"i386\",\n x86_64: \"x86_64\",\n x86_64_mac: \"x86_64_mac\"\n};\nvar BootModeValues = {\n legacy_bios: \"legacy-bios\",\n uefi: \"uefi\",\n uefi_preferred: \"uefi-preferred\"\n};\nvar HypervisorType = {\n ovm: \"ovm\",\n xen: \"xen\"\n};\nvar ImageTypeValues = {\n kernel: \"kernel\",\n machine: \"machine\",\n ramdisk: \"ramdisk\"\n};\nvar ImdsSupportValues = {\n v2_0: \"v2.0\"\n};\nvar DeviceType = {\n ebs: \"ebs\",\n instance_store: \"instance-store\"\n};\nvar ImageState = {\n available: \"available\",\n deregistered: \"deregistered\",\n disabled: \"disabled\",\n error: \"error\",\n failed: \"failed\",\n invalid: \"invalid\",\n pending: \"pending\",\n transient: \"transient\"\n};\nvar TpmSupportValues = {\n v2_0: \"v2.0\"\n};\nvar VirtualizationType = {\n hvm: \"hvm\",\n paravirtual: \"paravirtual\"\n};\nvar InstanceAttributeName = {\n blockDeviceMapping: \"blockDeviceMapping\",\n disableApiStop: \"disableApiStop\",\n disableApiTermination: \"disableApiTermination\",\n ebsOptimized: \"ebsOptimized\",\n enaSupport: \"enaSupport\",\n enclaveOptions: \"enclaveOptions\",\n groupSet: \"groupSet\",\n instanceInitiatedShutdownBehavior: \"instanceInitiatedShutdownBehavior\",\n instanceType: \"instanceType\",\n kernel: \"kernel\",\n productCodes: \"productCodes\",\n ramdisk: \"ramdisk\",\n rootDeviceName: \"rootDeviceName\",\n sourceDestCheck: \"sourceDestCheck\",\n sriovNetSupport: \"sriovNetSupport\",\n userData: \"userData\"\n};\nvar InstanceStateName = {\n pending: \"pending\",\n running: \"running\",\n shutting_down: \"shutting-down\",\n stopped: \"stopped\",\n stopping: \"stopping\",\n terminated: \"terminated\"\n};\nvar InstanceBootModeValues = {\n legacy_bios: \"legacy-bios\",\n uefi: \"uefi\"\n};\nvar InstanceLifecycleType = {\n capacity_block: \"capacity-block\",\n scheduled: \"scheduled\",\n spot: \"spot\"\n};\nvar InstanceAutoRecoveryState = {\n default: \"default\",\n disabled: \"disabled\"\n};\nvar InstanceMetadataEndpointState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar InstanceMetadataProtocolState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar HttpTokensState = {\n optional: \"optional\",\n required: \"required\"\n};\nvar InstanceMetadataTagsState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar InstanceMetadataOptionsState = {\n applied: \"applied\",\n pending: \"pending\"\n};\nvar MonitoringState = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n pending: \"pending\"\n};\nvar StatusName = {\n reachability: \"reachability\"\n};\nvar StatusType = {\n failed: \"failed\",\n initializing: \"initializing\",\n insufficient_data: \"insufficient-data\",\n passed: \"passed\"\n};\nvar SummaryStatus = {\n impaired: \"impaired\",\n initializing: \"initializing\",\n insufficient_data: \"insufficient-data\",\n not_applicable: \"not-applicable\",\n ok: \"ok\"\n};\nvar EventCode = {\n instance_reboot: \"instance-reboot\",\n instance_retirement: \"instance-retirement\",\n instance_stop: \"instance-stop\",\n system_maintenance: \"system-maintenance\",\n system_reboot: \"system-reboot\"\n};\nvar LocationType = {\n availability_zone: \"availability-zone\",\n availability_zone_id: \"availability-zone-id\",\n outpost: \"outpost\",\n region: \"region\"\n};\nvar EbsOptimizedSupport = {\n default: \"default\",\n supported: \"supported\",\n unsupported: \"unsupported\"\n};\nvar EbsEncryptionSupport = {\n supported: \"supported\",\n unsupported: \"unsupported\"\n};\nvar EbsNvmeSupport = {\n REQUIRED: \"required\",\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar InstanceTypeHypervisor = {\n NITRO: \"nitro\",\n XEN: \"xen\"\n};\nvar DiskType = {\n hdd: \"hdd\",\n ssd: \"ssd\"\n};\nvar InstanceStorageEncryptionSupport = {\n required: \"required\",\n unsupported: \"unsupported\"\n};\nvar EphemeralNvmeSupport = {\n REQUIRED: \"required\",\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar BandwidthWeightingType = {\n DEFAULT: \"default\",\n EBS_1: \"ebs-1\",\n VPC_1: \"vpc-1\"\n};\nvar EnaSupport = {\n required: \"required\",\n supported: \"supported\",\n unsupported: \"unsupported\"\n};\nvar FlexibleEnaQueuesSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar NitroEnclavesSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar NitroTpmSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar PhcSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar PlacementGroupStrategy = {\n cluster: \"cluster\",\n partition: \"partition\",\n spread: \"spread\"\n};\nvar ArchitectureType = {\n arm64: \"arm64\",\n arm64_mac: \"arm64_mac\",\n i386: \"i386\",\n x86_64: \"x86_64\",\n x86_64_mac: \"x86_64_mac\"\n};\nvar SupportedAdditionalProcessorFeature = {\n AMD_SEV_SNP: \"amd-sev-snp\"\n};\nvar BootModeType = {\n legacy_bios: \"legacy-bios\",\n uefi: \"uefi\"\n};\nvar RootDeviceType = {\n ebs: \"ebs\",\n instance_store: \"instance-store\"\n};\nvar UsageClassType = {\n capacity_block: \"capacity-block\",\n on_demand: \"on-demand\",\n spot: \"spot\"\n};\nvar DiskImageDescriptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportManifestUrl && { ImportManifestUrl: import_smithy_client.SENSITIVE_STRING }\n}), \"DiskImageDescriptionFilterSensitiveLog\");\nvar ImportInstanceVolumeDetailItemFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDescriptionFilterSensitiveLog(obj.Image) }\n}), \"ImportInstanceVolumeDetailItemFilterSensitiveLog\");\nvar ImportInstanceTaskDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Volumes && { Volumes: obj.Volumes.map((item) => ImportInstanceVolumeDetailItemFilterSensitiveLog(item)) }\n}), \"ImportInstanceTaskDetailsFilterSensitiveLog\");\nvar ImportVolumeTaskDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDescriptionFilterSensitiveLog(obj.Image) }\n}), \"ImportVolumeTaskDetailsFilterSensitiveLog\");\nvar ConversionTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportInstance && { ImportInstance: ImportInstanceTaskDetailsFilterSensitiveLog(obj.ImportInstance) },\n ...obj.ImportVolume && { ImportVolume: ImportVolumeTaskDetailsFilterSensitiveLog(obj.ImportVolume) }\n}), \"ConversionTaskFilterSensitiveLog\");\nvar DescribeConversionTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ConversionTasks && {\n ConversionTasks: obj.ConversionTasks.map((item) => ConversionTaskFilterSensitiveLog(item))\n }\n}), \"DescribeConversionTasksResultFilterSensitiveLog\");\nvar SnapshotDetailFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"SnapshotDetailFilterSensitiveLog\");\nvar ImportImageTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotDetails && {\n SnapshotDetails: obj.SnapshotDetails.map((item) => SnapshotDetailFilterSensitiveLog(item))\n }\n}), \"ImportImageTaskFilterSensitiveLog\");\nvar DescribeImportImageTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"DescribeImportImageTasksResultFilterSensitiveLog\");\nvar SnapshotTaskDetailFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"SnapshotTaskDetailFilterSensitiveLog\");\nvar ImportSnapshotTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotTaskDetail && { SnapshotTaskDetail: SnapshotTaskDetailFilterSensitiveLog(obj.SnapshotTaskDetail) }\n}), \"ImportSnapshotTaskFilterSensitiveLog\");\nvar DescribeImportSnapshotTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportSnapshotTasks && {\n ImportSnapshotTasks: obj.ImportSnapshotTasks.map((item) => ImportSnapshotTaskFilterSensitiveLog(item))\n }\n}), \"DescribeImportSnapshotTasksResultFilterSensitiveLog\");\nvar DescribeLaunchTemplateVersionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateVersions && {\n LaunchTemplateVersions: obj.LaunchTemplateVersions.map((item) => LaunchTemplateVersionFilterSensitiveLog(item))\n }\n}), \"DescribeLaunchTemplateVersionsResultFilterSensitiveLog\");\n\n// src/commands/DescribeConversionTasksCommand.ts\nvar DescribeConversionTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeConversionTasks\", {}).n(\"EC2Client\", \"DescribeConversionTasksCommand\").f(void 0, DescribeConversionTasksResultFilterSensitiveLog).ser(se_DescribeConversionTasksCommand).de(de_DescribeConversionTasksCommand).build() {\n static {\n __name(this, \"DescribeConversionTasksCommand\");\n }\n};\n\n// src/commands/DescribeCustomerGatewaysCommand.ts\n\n\n\nvar DescribeCustomerGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCustomerGateways\", {}).n(\"EC2Client\", \"DescribeCustomerGatewaysCommand\").f(void 0, void 0).ser(se_DescribeCustomerGatewaysCommand).de(de_DescribeCustomerGatewaysCommand).build() {\n static {\n __name(this, \"DescribeCustomerGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeDeclarativePoliciesReportsCommand.ts\n\n\n\nvar DescribeDeclarativePoliciesReportsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeDeclarativePoliciesReports\", {}).n(\"EC2Client\", \"DescribeDeclarativePoliciesReportsCommand\").f(void 0, void 0).ser(se_DescribeDeclarativePoliciesReportsCommand).de(de_DescribeDeclarativePoliciesReportsCommand).build() {\n static {\n __name(this, \"DescribeDeclarativePoliciesReportsCommand\");\n }\n};\n\n// src/commands/DescribeDhcpOptionsCommand.ts\n\n\n\nvar DescribeDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeDhcpOptions\", {}).n(\"EC2Client\", \"DescribeDhcpOptionsCommand\").f(void 0, void 0).ser(se_DescribeDhcpOptionsCommand).de(de_DescribeDhcpOptionsCommand).build() {\n static {\n __name(this, \"DescribeDhcpOptionsCommand\");\n }\n};\n\n// src/commands/DescribeEgressOnlyInternetGatewaysCommand.ts\n\n\n\nvar DescribeEgressOnlyInternetGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeEgressOnlyInternetGateways\", {}).n(\"EC2Client\", \"DescribeEgressOnlyInternetGatewaysCommand\").f(void 0, void 0).ser(se_DescribeEgressOnlyInternetGatewaysCommand).de(de_DescribeEgressOnlyInternetGatewaysCommand).build() {\n static {\n __name(this, \"DescribeEgressOnlyInternetGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeElasticGpusCommand.ts\n\n\n\nvar DescribeElasticGpusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeElasticGpus\", {}).n(\"EC2Client\", \"DescribeElasticGpusCommand\").f(void 0, void 0).ser(se_DescribeElasticGpusCommand).de(de_DescribeElasticGpusCommand).build() {\n static {\n __name(this, \"DescribeElasticGpusCommand\");\n }\n};\n\n// src/commands/DescribeExportImageTasksCommand.ts\n\n\n\nvar DescribeExportImageTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeExportImageTasks\", {}).n(\"EC2Client\", \"DescribeExportImageTasksCommand\").f(void 0, void 0).ser(se_DescribeExportImageTasksCommand).de(de_DescribeExportImageTasksCommand).build() {\n static {\n __name(this, \"DescribeExportImageTasksCommand\");\n }\n};\n\n// src/commands/DescribeExportTasksCommand.ts\n\n\n\nvar DescribeExportTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeExportTasks\", {}).n(\"EC2Client\", \"DescribeExportTasksCommand\").f(void 0, void 0).ser(se_DescribeExportTasksCommand).de(de_DescribeExportTasksCommand).build() {\n static {\n __name(this, \"DescribeExportTasksCommand\");\n }\n};\n\n// src/commands/DescribeFastLaunchImagesCommand.ts\n\n\n\nvar DescribeFastLaunchImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFastLaunchImages\", {}).n(\"EC2Client\", \"DescribeFastLaunchImagesCommand\").f(void 0, void 0).ser(se_DescribeFastLaunchImagesCommand).de(de_DescribeFastLaunchImagesCommand).build() {\n static {\n __name(this, \"DescribeFastLaunchImagesCommand\");\n }\n};\n\n// src/commands/DescribeFastSnapshotRestoresCommand.ts\n\n\n\nvar DescribeFastSnapshotRestoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFastSnapshotRestores\", {}).n(\"EC2Client\", \"DescribeFastSnapshotRestoresCommand\").f(void 0, void 0).ser(se_DescribeFastSnapshotRestoresCommand).de(de_DescribeFastSnapshotRestoresCommand).build() {\n static {\n __name(this, \"DescribeFastSnapshotRestoresCommand\");\n }\n};\n\n// src/commands/DescribeFleetHistoryCommand.ts\n\n\n\nvar DescribeFleetHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFleetHistory\", {}).n(\"EC2Client\", \"DescribeFleetHistoryCommand\").f(void 0, void 0).ser(se_DescribeFleetHistoryCommand).de(de_DescribeFleetHistoryCommand).build() {\n static {\n __name(this, \"DescribeFleetHistoryCommand\");\n }\n};\n\n// src/commands/DescribeFleetInstancesCommand.ts\n\n\n\nvar DescribeFleetInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFleetInstances\", {}).n(\"EC2Client\", \"DescribeFleetInstancesCommand\").f(void 0, void 0).ser(se_DescribeFleetInstancesCommand).de(de_DescribeFleetInstancesCommand).build() {\n static {\n __name(this, \"DescribeFleetInstancesCommand\");\n }\n};\n\n// src/commands/DescribeFleetsCommand.ts\n\n\n\nvar DescribeFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFleets\", {}).n(\"EC2Client\", \"DescribeFleetsCommand\").f(void 0, void 0).ser(se_DescribeFleetsCommand).de(de_DescribeFleetsCommand).build() {\n static {\n __name(this, \"DescribeFleetsCommand\");\n }\n};\n\n// src/commands/DescribeFlowLogsCommand.ts\n\n\n\nvar DescribeFlowLogsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFlowLogs\", {}).n(\"EC2Client\", \"DescribeFlowLogsCommand\").f(void 0, void 0).ser(se_DescribeFlowLogsCommand).de(de_DescribeFlowLogsCommand).build() {\n static {\n __name(this, \"DescribeFlowLogsCommand\");\n }\n};\n\n// src/commands/DescribeFpgaImageAttributeCommand.ts\n\n\n\nvar DescribeFpgaImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFpgaImageAttribute\", {}).n(\"EC2Client\", \"DescribeFpgaImageAttributeCommand\").f(void 0, void 0).ser(se_DescribeFpgaImageAttributeCommand).de(de_DescribeFpgaImageAttributeCommand).build() {\n static {\n __name(this, \"DescribeFpgaImageAttributeCommand\");\n }\n};\n\n// src/commands/DescribeFpgaImagesCommand.ts\n\n\n\nvar DescribeFpgaImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFpgaImages\", {}).n(\"EC2Client\", \"DescribeFpgaImagesCommand\").f(void 0, void 0).ser(se_DescribeFpgaImagesCommand).de(de_DescribeFpgaImagesCommand).build() {\n static {\n __name(this, \"DescribeFpgaImagesCommand\");\n }\n};\n\n// src/commands/DescribeHostReservationOfferingsCommand.ts\n\n\n\nvar DescribeHostReservationOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeHostReservationOfferings\", {}).n(\"EC2Client\", \"DescribeHostReservationOfferingsCommand\").f(void 0, void 0).ser(se_DescribeHostReservationOfferingsCommand).de(de_DescribeHostReservationOfferingsCommand).build() {\n static {\n __name(this, \"DescribeHostReservationOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeHostReservationsCommand.ts\n\n\n\nvar DescribeHostReservationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeHostReservations\", {}).n(\"EC2Client\", \"DescribeHostReservationsCommand\").f(void 0, void 0).ser(se_DescribeHostReservationsCommand).de(de_DescribeHostReservationsCommand).build() {\n static {\n __name(this, \"DescribeHostReservationsCommand\");\n }\n};\n\n// src/commands/DescribeHostsCommand.ts\n\n\n\nvar DescribeHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeHosts\", {}).n(\"EC2Client\", \"DescribeHostsCommand\").f(void 0, void 0).ser(se_DescribeHostsCommand).de(de_DescribeHostsCommand).build() {\n static {\n __name(this, \"DescribeHostsCommand\");\n }\n};\n\n// src/commands/DescribeIamInstanceProfileAssociationsCommand.ts\n\n\n\nvar DescribeIamInstanceProfileAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIamInstanceProfileAssociations\", {}).n(\"EC2Client\", \"DescribeIamInstanceProfileAssociationsCommand\").f(void 0, void 0).ser(se_DescribeIamInstanceProfileAssociationsCommand).de(de_DescribeIamInstanceProfileAssociationsCommand).build() {\n static {\n __name(this, \"DescribeIamInstanceProfileAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeIdentityIdFormatCommand.ts\n\n\n\nvar DescribeIdentityIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIdentityIdFormat\", {}).n(\"EC2Client\", \"DescribeIdentityIdFormatCommand\").f(void 0, void 0).ser(se_DescribeIdentityIdFormatCommand).de(de_DescribeIdentityIdFormatCommand).build() {\n static {\n __name(this, \"DescribeIdentityIdFormatCommand\");\n }\n};\n\n// src/commands/DescribeIdFormatCommand.ts\n\n\n\nvar DescribeIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIdFormat\", {}).n(\"EC2Client\", \"DescribeIdFormatCommand\").f(void 0, void 0).ser(se_DescribeIdFormatCommand).de(de_DescribeIdFormatCommand).build() {\n static {\n __name(this, \"DescribeIdFormatCommand\");\n }\n};\n\n// src/commands/DescribeImageAttributeCommand.ts\n\n\n\nvar DescribeImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImageAttribute\", {}).n(\"EC2Client\", \"DescribeImageAttributeCommand\").f(void 0, void 0).ser(se_DescribeImageAttributeCommand).de(de_DescribeImageAttributeCommand).build() {\n static {\n __name(this, \"DescribeImageAttributeCommand\");\n }\n};\n\n// src/commands/DescribeImagesCommand.ts\n\n\n\nvar DescribeImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImages\", {}).n(\"EC2Client\", \"DescribeImagesCommand\").f(void 0, void 0).ser(se_DescribeImagesCommand).de(de_DescribeImagesCommand).build() {\n static {\n __name(this, \"DescribeImagesCommand\");\n }\n};\n\n// src/commands/DescribeImportImageTasksCommand.ts\n\n\n\nvar DescribeImportImageTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImportImageTasks\", {}).n(\"EC2Client\", \"DescribeImportImageTasksCommand\").f(void 0, DescribeImportImageTasksResultFilterSensitiveLog).ser(se_DescribeImportImageTasksCommand).de(de_DescribeImportImageTasksCommand).build() {\n static {\n __name(this, \"DescribeImportImageTasksCommand\");\n }\n};\n\n// src/commands/DescribeImportSnapshotTasksCommand.ts\n\n\n\nvar DescribeImportSnapshotTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImportSnapshotTasks\", {}).n(\"EC2Client\", \"DescribeImportSnapshotTasksCommand\").f(void 0, DescribeImportSnapshotTasksResultFilterSensitiveLog).ser(se_DescribeImportSnapshotTasksCommand).de(de_DescribeImportSnapshotTasksCommand).build() {\n static {\n __name(this, \"DescribeImportSnapshotTasksCommand\");\n }\n};\n\n// src/commands/DescribeInstanceAttributeCommand.ts\n\n\n\nvar DescribeInstanceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceAttribute\", {}).n(\"EC2Client\", \"DescribeInstanceAttributeCommand\").f(void 0, void 0).ser(se_DescribeInstanceAttributeCommand).de(de_DescribeInstanceAttributeCommand).build() {\n static {\n __name(this, \"DescribeInstanceAttributeCommand\");\n }\n};\n\n// src/commands/DescribeInstanceConnectEndpointsCommand.ts\n\n\n\nvar DescribeInstanceConnectEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceConnectEndpoints\", {}).n(\"EC2Client\", \"DescribeInstanceConnectEndpointsCommand\").f(void 0, void 0).ser(se_DescribeInstanceConnectEndpointsCommand).de(de_DescribeInstanceConnectEndpointsCommand).build() {\n static {\n __name(this, \"DescribeInstanceConnectEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceCreditSpecificationsCommand.ts\n\n\n\nvar DescribeInstanceCreditSpecificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceCreditSpecifications\", {}).n(\"EC2Client\", \"DescribeInstanceCreditSpecificationsCommand\").f(void 0, void 0).ser(se_DescribeInstanceCreditSpecificationsCommand).de(de_DescribeInstanceCreditSpecificationsCommand).build() {\n static {\n __name(this, \"DescribeInstanceCreditSpecificationsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceEventNotificationAttributesCommand.ts\n\n\n\nvar DescribeInstanceEventNotificationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceEventNotificationAttributes\", {}).n(\"EC2Client\", \"DescribeInstanceEventNotificationAttributesCommand\").f(void 0, void 0).ser(se_DescribeInstanceEventNotificationAttributesCommand).de(de_DescribeInstanceEventNotificationAttributesCommand).build() {\n static {\n __name(this, \"DescribeInstanceEventNotificationAttributesCommand\");\n }\n};\n\n// src/commands/DescribeInstanceEventWindowsCommand.ts\n\n\n\nvar DescribeInstanceEventWindowsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceEventWindows\", {}).n(\"EC2Client\", \"DescribeInstanceEventWindowsCommand\").f(void 0, void 0).ser(se_DescribeInstanceEventWindowsCommand).de(de_DescribeInstanceEventWindowsCommand).build() {\n static {\n __name(this, \"DescribeInstanceEventWindowsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceImageMetadataCommand.ts\n\n\n\nvar DescribeInstanceImageMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceImageMetadata\", {}).n(\"EC2Client\", \"DescribeInstanceImageMetadataCommand\").f(void 0, void 0).ser(se_DescribeInstanceImageMetadataCommand).de(de_DescribeInstanceImageMetadataCommand).build() {\n static {\n __name(this, \"DescribeInstanceImageMetadataCommand\");\n }\n};\n\n// src/commands/DescribeInstancesCommand.ts\n\n\n\nvar DescribeInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstances\", {}).n(\"EC2Client\", \"DescribeInstancesCommand\").f(void 0, void 0).ser(se_DescribeInstancesCommand).de(de_DescribeInstancesCommand).build() {\n static {\n __name(this, \"DescribeInstancesCommand\");\n }\n};\n\n// src/commands/DescribeInstanceStatusCommand.ts\n\n\n\nvar DescribeInstanceStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceStatus\", {}).n(\"EC2Client\", \"DescribeInstanceStatusCommand\").f(void 0, void 0).ser(se_DescribeInstanceStatusCommand).de(de_DescribeInstanceStatusCommand).build() {\n static {\n __name(this, \"DescribeInstanceStatusCommand\");\n }\n};\n\n// src/commands/DescribeInstanceTopologyCommand.ts\n\n\n\nvar DescribeInstanceTopologyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceTopology\", {}).n(\"EC2Client\", \"DescribeInstanceTopologyCommand\").f(void 0, void 0).ser(se_DescribeInstanceTopologyCommand).de(de_DescribeInstanceTopologyCommand).build() {\n static {\n __name(this, \"DescribeInstanceTopologyCommand\");\n }\n};\n\n// src/commands/DescribeInstanceTypeOfferingsCommand.ts\n\n\n\nvar DescribeInstanceTypeOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceTypeOfferings\", {}).n(\"EC2Client\", \"DescribeInstanceTypeOfferingsCommand\").f(void 0, void 0).ser(se_DescribeInstanceTypeOfferingsCommand).de(de_DescribeInstanceTypeOfferingsCommand).build() {\n static {\n __name(this, \"DescribeInstanceTypeOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceTypesCommand.ts\n\n\n\nvar DescribeInstanceTypesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceTypes\", {}).n(\"EC2Client\", \"DescribeInstanceTypesCommand\").f(void 0, void 0).ser(se_DescribeInstanceTypesCommand).de(de_DescribeInstanceTypesCommand).build() {\n static {\n __name(this, \"DescribeInstanceTypesCommand\");\n }\n};\n\n// src/commands/DescribeInternetGatewaysCommand.ts\n\n\n\nvar DescribeInternetGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInternetGateways\", {}).n(\"EC2Client\", \"DescribeInternetGatewaysCommand\").f(void 0, void 0).ser(se_DescribeInternetGatewaysCommand).de(de_DescribeInternetGatewaysCommand).build() {\n static {\n __name(this, \"DescribeInternetGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeIpamByoasnCommand.ts\n\n\n\nvar DescribeIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamByoasn\", {}).n(\"EC2Client\", \"DescribeIpamByoasnCommand\").f(void 0, void 0).ser(se_DescribeIpamByoasnCommand).de(de_DescribeIpamByoasnCommand).build() {\n static {\n __name(this, \"DescribeIpamByoasnCommand\");\n }\n};\n\n// src/commands/DescribeIpamExternalResourceVerificationTokensCommand.ts\n\n\n\nvar DescribeIpamExternalResourceVerificationTokensCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamExternalResourceVerificationTokens\", {}).n(\"EC2Client\", \"DescribeIpamExternalResourceVerificationTokensCommand\").f(void 0, void 0).ser(se_DescribeIpamExternalResourceVerificationTokensCommand).de(de_DescribeIpamExternalResourceVerificationTokensCommand).build() {\n static {\n __name(this, \"DescribeIpamExternalResourceVerificationTokensCommand\");\n }\n};\n\n// src/commands/DescribeIpamPoolsCommand.ts\n\n\n\nvar DescribeIpamPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamPools\", {}).n(\"EC2Client\", \"DescribeIpamPoolsCommand\").f(void 0, void 0).ser(se_DescribeIpamPoolsCommand).de(de_DescribeIpamPoolsCommand).build() {\n static {\n __name(this, \"DescribeIpamPoolsCommand\");\n }\n};\n\n// src/commands/DescribeIpamResourceDiscoveriesCommand.ts\n\n\n\nvar DescribeIpamResourceDiscoveriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamResourceDiscoveries\", {}).n(\"EC2Client\", \"DescribeIpamResourceDiscoveriesCommand\").f(void 0, void 0).ser(se_DescribeIpamResourceDiscoveriesCommand).de(de_DescribeIpamResourceDiscoveriesCommand).build() {\n static {\n __name(this, \"DescribeIpamResourceDiscoveriesCommand\");\n }\n};\n\n// src/commands/DescribeIpamResourceDiscoveryAssociationsCommand.ts\n\n\n\nvar DescribeIpamResourceDiscoveryAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamResourceDiscoveryAssociations\", {}).n(\"EC2Client\", \"DescribeIpamResourceDiscoveryAssociationsCommand\").f(void 0, void 0).ser(se_DescribeIpamResourceDiscoveryAssociationsCommand).de(de_DescribeIpamResourceDiscoveryAssociationsCommand).build() {\n static {\n __name(this, \"DescribeIpamResourceDiscoveryAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeIpamsCommand.ts\n\n\n\nvar DescribeIpamsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpams\", {}).n(\"EC2Client\", \"DescribeIpamsCommand\").f(void 0, void 0).ser(se_DescribeIpamsCommand).de(de_DescribeIpamsCommand).build() {\n static {\n __name(this, \"DescribeIpamsCommand\");\n }\n};\n\n// src/commands/DescribeIpamScopesCommand.ts\n\n\n\nvar DescribeIpamScopesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamScopes\", {}).n(\"EC2Client\", \"DescribeIpamScopesCommand\").f(void 0, void 0).ser(se_DescribeIpamScopesCommand).de(de_DescribeIpamScopesCommand).build() {\n static {\n __name(this, \"DescribeIpamScopesCommand\");\n }\n};\n\n// src/commands/DescribeIpv6PoolsCommand.ts\n\n\n\nvar DescribeIpv6PoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpv6Pools\", {}).n(\"EC2Client\", \"DescribeIpv6PoolsCommand\").f(void 0, void 0).ser(se_DescribeIpv6PoolsCommand).de(de_DescribeIpv6PoolsCommand).build() {\n static {\n __name(this, \"DescribeIpv6PoolsCommand\");\n }\n};\n\n// src/commands/DescribeKeyPairsCommand.ts\n\n\n\nvar DescribeKeyPairsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeKeyPairs\", {}).n(\"EC2Client\", \"DescribeKeyPairsCommand\").f(void 0, void 0).ser(se_DescribeKeyPairsCommand).de(de_DescribeKeyPairsCommand).build() {\n static {\n __name(this, \"DescribeKeyPairsCommand\");\n }\n};\n\n// src/commands/DescribeLaunchTemplatesCommand.ts\n\n\n\nvar DescribeLaunchTemplatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLaunchTemplates\", {}).n(\"EC2Client\", \"DescribeLaunchTemplatesCommand\").f(void 0, void 0).ser(se_DescribeLaunchTemplatesCommand).de(de_DescribeLaunchTemplatesCommand).build() {\n static {\n __name(this, \"DescribeLaunchTemplatesCommand\");\n }\n};\n\n// src/commands/DescribeLaunchTemplateVersionsCommand.ts\n\n\n\nvar DescribeLaunchTemplateVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLaunchTemplateVersions\", {}).n(\"EC2Client\", \"DescribeLaunchTemplateVersionsCommand\").f(void 0, DescribeLaunchTemplateVersionsResultFilterSensitiveLog).ser(se_DescribeLaunchTemplateVersionsCommand).de(de_DescribeLaunchTemplateVersionsCommand).build() {\n static {\n __name(this, \"DescribeLaunchTemplateVersionsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayRouteTablesCommand.ts\n\n\n\nvar DescribeLocalGatewayRouteTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayRouteTables\", {}).n(\"EC2Client\", \"DescribeLocalGatewayRouteTablesCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayRouteTablesCommand).de(de_DescribeLocalGatewayRouteTablesCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayRouteTablesCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand.ts\n\n\n\nvar DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations\", {}).n(\"EC2Client\", \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand).de(de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayRouteTableVpcAssociationsCommand.ts\n\n\n\nvar DescribeLocalGatewayRouteTableVpcAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayRouteTableVpcAssociations\", {}).n(\"EC2Client\", \"DescribeLocalGatewayRouteTableVpcAssociationsCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayRouteTableVpcAssociationsCommand).de(de_DescribeLocalGatewayRouteTableVpcAssociationsCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayRouteTableVpcAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewaysCommand.ts\n\n\n\nvar DescribeLocalGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGateways\", {}).n(\"EC2Client\", \"DescribeLocalGatewaysCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewaysCommand).de(de_DescribeLocalGatewaysCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayVirtualInterfaceGroupsCommand.ts\n\n\n\nvar DescribeLocalGatewayVirtualInterfaceGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayVirtualInterfaceGroups\", {}).n(\"EC2Client\", \"DescribeLocalGatewayVirtualInterfaceGroupsCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayVirtualInterfaceGroupsCommand).de(de_DescribeLocalGatewayVirtualInterfaceGroupsCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayVirtualInterfaceGroupsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayVirtualInterfacesCommand.ts\n\n\n\nvar DescribeLocalGatewayVirtualInterfacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayVirtualInterfaces\", {}).n(\"EC2Client\", \"DescribeLocalGatewayVirtualInterfacesCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayVirtualInterfacesCommand).de(de_DescribeLocalGatewayVirtualInterfacesCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayVirtualInterfacesCommand\");\n }\n};\n\n// src/commands/DescribeLockedSnapshotsCommand.ts\n\n\n\nvar DescribeLockedSnapshotsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLockedSnapshots\", {}).n(\"EC2Client\", \"DescribeLockedSnapshotsCommand\").f(void 0, void 0).ser(se_DescribeLockedSnapshotsCommand).de(de_DescribeLockedSnapshotsCommand).build() {\n static {\n __name(this, \"DescribeLockedSnapshotsCommand\");\n }\n};\n\n// src/commands/DescribeMacHostsCommand.ts\n\n\n\nvar DescribeMacHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeMacHosts\", {}).n(\"EC2Client\", \"DescribeMacHostsCommand\").f(void 0, void 0).ser(se_DescribeMacHostsCommand).de(de_DescribeMacHostsCommand).build() {\n static {\n __name(this, \"DescribeMacHostsCommand\");\n }\n};\n\n// src/commands/DescribeManagedPrefixListsCommand.ts\n\n\n\nvar DescribeManagedPrefixListsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeManagedPrefixLists\", {}).n(\"EC2Client\", \"DescribeManagedPrefixListsCommand\").f(void 0, void 0).ser(se_DescribeManagedPrefixListsCommand).de(de_DescribeManagedPrefixListsCommand).build() {\n static {\n __name(this, \"DescribeManagedPrefixListsCommand\");\n }\n};\n\n// src/commands/DescribeMovingAddressesCommand.ts\n\n\n\nvar DescribeMovingAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeMovingAddresses\", {}).n(\"EC2Client\", \"DescribeMovingAddressesCommand\").f(void 0, void 0).ser(se_DescribeMovingAddressesCommand).de(de_DescribeMovingAddressesCommand).build() {\n static {\n __name(this, \"DescribeMovingAddressesCommand\");\n }\n};\n\n// src/commands/DescribeNatGatewaysCommand.ts\n\n\n\nvar DescribeNatGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNatGateways\", {}).n(\"EC2Client\", \"DescribeNatGatewaysCommand\").f(void 0, void 0).ser(se_DescribeNatGatewaysCommand).de(de_DescribeNatGatewaysCommand).build() {\n static {\n __name(this, \"DescribeNatGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeNetworkAclsCommand.ts\n\n\n\nvar DescribeNetworkAclsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkAcls\", {}).n(\"EC2Client\", \"DescribeNetworkAclsCommand\").f(void 0, void 0).ser(se_DescribeNetworkAclsCommand).de(de_DescribeNetworkAclsCommand).build() {\n static {\n __name(this, \"DescribeNetworkAclsCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsAccessScopeAnalysesCommand.ts\n\n\n\nvar DescribeNetworkInsightsAccessScopeAnalysesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsAccessScopeAnalyses\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsAccessScopeAnalysesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsAccessScopeAnalysesCommand).de(de_DescribeNetworkInsightsAccessScopeAnalysesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsAccessScopeAnalysesCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsAccessScopesCommand.ts\n\n\n\nvar DescribeNetworkInsightsAccessScopesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsAccessScopes\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsAccessScopesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsAccessScopesCommand).de(de_DescribeNetworkInsightsAccessScopesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsAccessScopesCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsAnalysesCommand.ts\n\n\n\nvar DescribeNetworkInsightsAnalysesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsAnalyses\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsAnalysesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsAnalysesCommand).de(de_DescribeNetworkInsightsAnalysesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsAnalysesCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsPathsCommand.ts\n\n\n\nvar DescribeNetworkInsightsPathsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsPaths\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsPathsCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsPathsCommand).de(de_DescribeNetworkInsightsPathsCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsPathsCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInterfaceAttributeCommand.ts\n\n\n\nvar DescribeNetworkInterfaceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInterfaceAttribute\", {}).n(\"EC2Client\", \"DescribeNetworkInterfaceAttributeCommand\").f(void 0, void 0).ser(se_DescribeNetworkInterfaceAttributeCommand).de(de_DescribeNetworkInterfaceAttributeCommand).build() {\n static {\n __name(this, \"DescribeNetworkInterfaceAttributeCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInterfacePermissionsCommand.ts\n\n\n\nvar DescribeNetworkInterfacePermissionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInterfacePermissions\", {}).n(\"EC2Client\", \"DescribeNetworkInterfacePermissionsCommand\").f(void 0, void 0).ser(se_DescribeNetworkInterfacePermissionsCommand).de(de_DescribeNetworkInterfacePermissionsCommand).build() {\n static {\n __name(this, \"DescribeNetworkInterfacePermissionsCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInterfacesCommand.ts\n\n\n\nvar DescribeNetworkInterfacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInterfaces\", {}).n(\"EC2Client\", \"DescribeNetworkInterfacesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInterfacesCommand).de(de_DescribeNetworkInterfacesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInterfacesCommand\");\n }\n};\n\n// src/commands/DescribeOutpostLagsCommand.ts\n\n\n\nvar DescribeOutpostLagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeOutpostLags\", {}).n(\"EC2Client\", \"DescribeOutpostLagsCommand\").f(void 0, void 0).ser(se_DescribeOutpostLagsCommand).de(de_DescribeOutpostLagsCommand).build() {\n static {\n __name(this, \"DescribeOutpostLagsCommand\");\n }\n};\n\n// src/commands/DescribePlacementGroupsCommand.ts\n\n\n\nvar DescribePlacementGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePlacementGroups\", {}).n(\"EC2Client\", \"DescribePlacementGroupsCommand\").f(void 0, void 0).ser(se_DescribePlacementGroupsCommand).de(de_DescribePlacementGroupsCommand).build() {\n static {\n __name(this, \"DescribePlacementGroupsCommand\");\n }\n};\n\n// src/commands/DescribePrefixListsCommand.ts\n\n\n\nvar DescribePrefixListsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePrefixLists\", {}).n(\"EC2Client\", \"DescribePrefixListsCommand\").f(void 0, void 0).ser(se_DescribePrefixListsCommand).de(de_DescribePrefixListsCommand).build() {\n static {\n __name(this, \"DescribePrefixListsCommand\");\n }\n};\n\n// src/commands/DescribePrincipalIdFormatCommand.ts\n\n\n\nvar DescribePrincipalIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePrincipalIdFormat\", {}).n(\"EC2Client\", \"DescribePrincipalIdFormatCommand\").f(void 0, void 0).ser(se_DescribePrincipalIdFormatCommand).de(de_DescribePrincipalIdFormatCommand).build() {\n static {\n __name(this, \"DescribePrincipalIdFormatCommand\");\n }\n};\n\n// src/commands/DescribePublicIpv4PoolsCommand.ts\n\n\n\nvar DescribePublicIpv4PoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePublicIpv4Pools\", {}).n(\"EC2Client\", \"DescribePublicIpv4PoolsCommand\").f(void 0, void 0).ser(se_DescribePublicIpv4PoolsCommand).de(de_DescribePublicIpv4PoolsCommand).build() {\n static {\n __name(this, \"DescribePublicIpv4PoolsCommand\");\n }\n};\n\n// src/commands/DescribeRegionsCommand.ts\n\n\n\nvar DescribeRegionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRegions\", {}).n(\"EC2Client\", \"DescribeRegionsCommand\").f(void 0, void 0).ser(se_DescribeRegionsCommand).de(de_DescribeRegionsCommand).build() {\n static {\n __name(this, \"DescribeRegionsCommand\");\n }\n};\n\n// src/commands/DescribeReplaceRootVolumeTasksCommand.ts\n\n\n\nvar DescribeReplaceRootVolumeTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReplaceRootVolumeTasks\", {}).n(\"EC2Client\", \"DescribeReplaceRootVolumeTasksCommand\").f(void 0, void 0).ser(se_DescribeReplaceRootVolumeTasksCommand).de(de_DescribeReplaceRootVolumeTasksCommand).build() {\n static {\n __name(this, \"DescribeReplaceRootVolumeTasksCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesCommand.ts\n\n\n\nvar DescribeReservedInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstances\", {}).n(\"EC2Client\", \"DescribeReservedInstancesCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesCommand).de(de_DescribeReservedInstancesCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesListingsCommand.ts\n\n\n\nvar DescribeReservedInstancesListingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstancesListings\", {}).n(\"EC2Client\", \"DescribeReservedInstancesListingsCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesListingsCommand).de(de_DescribeReservedInstancesListingsCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesListingsCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesModificationsCommand.ts\n\n\n\nvar DescribeReservedInstancesModificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstancesModifications\", {}).n(\"EC2Client\", \"DescribeReservedInstancesModificationsCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesModificationsCommand).de(de_DescribeReservedInstancesModificationsCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesModificationsCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesOfferingsCommand.ts\n\n\n\nvar DescribeReservedInstancesOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstancesOfferings\", {}).n(\"EC2Client\", \"DescribeReservedInstancesOfferingsCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesOfferingsCommand).de(de_DescribeReservedInstancesOfferingsCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeRouteServerEndpointsCommand.ts\n\n\n\nvar DescribeRouteServerEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteServerEndpoints\", {}).n(\"EC2Client\", \"DescribeRouteServerEndpointsCommand\").f(void 0, void 0).ser(se_DescribeRouteServerEndpointsCommand).de(de_DescribeRouteServerEndpointsCommand).build() {\n static {\n __name(this, \"DescribeRouteServerEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeRouteServerPeersCommand.ts\n\n\n\nvar DescribeRouteServerPeersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteServerPeers\", {}).n(\"EC2Client\", \"DescribeRouteServerPeersCommand\").f(void 0, void 0).ser(se_DescribeRouteServerPeersCommand).de(de_DescribeRouteServerPeersCommand).build() {\n static {\n __name(this, \"DescribeRouteServerPeersCommand\");\n }\n};\n\n// src/commands/DescribeRouteServersCommand.ts\n\n\n\nvar DescribeRouteServersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteServers\", {}).n(\"EC2Client\", \"DescribeRouteServersCommand\").f(void 0, void 0).ser(se_DescribeRouteServersCommand).de(de_DescribeRouteServersCommand).build() {\n static {\n __name(this, \"DescribeRouteServersCommand\");\n }\n};\n\n// src/commands/DescribeRouteTablesCommand.ts\n\n\n\nvar DescribeRouteTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteTables\", {}).n(\"EC2Client\", \"DescribeRouteTablesCommand\").f(void 0, void 0).ser(se_DescribeRouteTablesCommand).de(de_DescribeRouteTablesCommand).build() {\n static {\n __name(this, \"DescribeRouteTablesCommand\");\n }\n};\n\n// src/commands/DescribeScheduledInstanceAvailabilityCommand.ts\n\n\n\nvar DescribeScheduledInstanceAvailabilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeScheduledInstanceAvailability\", {}).n(\"EC2Client\", \"DescribeScheduledInstanceAvailabilityCommand\").f(void 0, void 0).ser(se_DescribeScheduledInstanceAvailabilityCommand).de(de_DescribeScheduledInstanceAvailabilityCommand).build() {\n static {\n __name(this, \"DescribeScheduledInstanceAvailabilityCommand\");\n }\n};\n\n// src/commands/DescribeScheduledInstancesCommand.ts\n\n\n\nvar DescribeScheduledInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeScheduledInstances\", {}).n(\"EC2Client\", \"DescribeScheduledInstancesCommand\").f(void 0, void 0).ser(se_DescribeScheduledInstancesCommand).de(de_DescribeScheduledInstancesCommand).build() {\n static {\n __name(this, \"DescribeScheduledInstancesCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupReferencesCommand.ts\n\n\n\nvar DescribeSecurityGroupReferencesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroupReferences\", {}).n(\"EC2Client\", \"DescribeSecurityGroupReferencesCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupReferencesCommand).de(de_DescribeSecurityGroupReferencesCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupReferencesCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupRulesCommand.ts\n\n\n\nvar DescribeSecurityGroupRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroupRules\", {}).n(\"EC2Client\", \"DescribeSecurityGroupRulesCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupRulesCommand).de(de_DescribeSecurityGroupRulesCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupRulesCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupsCommand.ts\n\n\n\nvar DescribeSecurityGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroups\", {}).n(\"EC2Client\", \"DescribeSecurityGroupsCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupsCommand).de(de_DescribeSecurityGroupsCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupsCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupVpcAssociationsCommand.ts\n\n\n\nvar DescribeSecurityGroupVpcAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroupVpcAssociations\", {}).n(\"EC2Client\", \"DescribeSecurityGroupVpcAssociationsCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupVpcAssociationsCommand).de(de_DescribeSecurityGroupVpcAssociationsCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupVpcAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeServiceLinkVirtualInterfacesCommand.ts\n\n\n\nvar DescribeServiceLinkVirtualInterfacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeServiceLinkVirtualInterfaces\", {}).n(\"EC2Client\", \"DescribeServiceLinkVirtualInterfacesCommand\").f(void 0, void 0).ser(se_DescribeServiceLinkVirtualInterfacesCommand).de(de_DescribeServiceLinkVirtualInterfacesCommand).build() {\n static {\n __name(this, \"DescribeServiceLinkVirtualInterfacesCommand\");\n }\n};\n\n// src/commands/DescribeSnapshotAttributeCommand.ts\n\n\n\nvar DescribeSnapshotAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSnapshotAttribute\", {}).n(\"EC2Client\", \"DescribeSnapshotAttributeCommand\").f(void 0, void 0).ser(se_DescribeSnapshotAttributeCommand).de(de_DescribeSnapshotAttributeCommand).build() {\n static {\n __name(this, \"DescribeSnapshotAttributeCommand\");\n }\n};\n\n// src/commands/DescribeSnapshotsCommand.ts\n\n\n\nvar DescribeSnapshotsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSnapshots\", {}).n(\"EC2Client\", \"DescribeSnapshotsCommand\").f(void 0, void 0).ser(se_DescribeSnapshotsCommand).de(de_DescribeSnapshotsCommand).build() {\n static {\n __name(this, \"DescribeSnapshotsCommand\");\n }\n};\n\n// src/commands/DescribeSnapshotTierStatusCommand.ts\n\n\n\nvar DescribeSnapshotTierStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSnapshotTierStatus\", {}).n(\"EC2Client\", \"DescribeSnapshotTierStatusCommand\").f(void 0, void 0).ser(se_DescribeSnapshotTierStatusCommand).de(de_DescribeSnapshotTierStatusCommand).build() {\n static {\n __name(this, \"DescribeSnapshotTierStatusCommand\");\n }\n};\n\n// src/commands/DescribeSpotDatafeedSubscriptionCommand.ts\n\n\n\nvar DescribeSpotDatafeedSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotDatafeedSubscription\", {}).n(\"EC2Client\", \"DescribeSpotDatafeedSubscriptionCommand\").f(void 0, void 0).ser(se_DescribeSpotDatafeedSubscriptionCommand).de(de_DescribeSpotDatafeedSubscriptionCommand).build() {\n static {\n __name(this, \"DescribeSpotDatafeedSubscriptionCommand\");\n }\n};\n\n// src/commands/DescribeSpotFleetInstancesCommand.ts\n\n\n\nvar DescribeSpotFleetInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotFleetInstances\", {}).n(\"EC2Client\", \"DescribeSpotFleetInstancesCommand\").f(void 0, void 0).ser(se_DescribeSpotFleetInstancesCommand).de(de_DescribeSpotFleetInstancesCommand).build() {\n static {\n __name(this, \"DescribeSpotFleetInstancesCommand\");\n }\n};\n\n// src/commands/DescribeSpotFleetRequestHistoryCommand.ts\n\n\n\nvar DescribeSpotFleetRequestHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotFleetRequestHistory\", {}).n(\"EC2Client\", \"DescribeSpotFleetRequestHistoryCommand\").f(void 0, void 0).ser(se_DescribeSpotFleetRequestHistoryCommand).de(de_DescribeSpotFleetRequestHistoryCommand).build() {\n static {\n __name(this, \"DescribeSpotFleetRequestHistoryCommand\");\n }\n};\n\n// src/commands/DescribeSpotFleetRequestsCommand.ts\n\n\n\n\n// src/models/models_5.ts\n\nvar LockState = {\n compliance: \"compliance\",\n compliance_cooloff: \"compliance-cooloff\",\n expired: \"expired\",\n governance: \"governance\"\n};\nvar MoveStatus = {\n movingToVpc: \"movingToVpc\",\n restoringToClassic: \"restoringToClassic\"\n};\nvar FindingsFound = {\n false: \"false\",\n true: \"true\",\n unknown: \"unknown\"\n};\nvar AnalysisStatus = {\n failed: \"failed\",\n running: \"running\",\n succeeded: \"succeeded\"\n};\nvar NetworkInterfaceAttribute = {\n associatePublicIpAddress: \"associatePublicIpAddress\",\n attachment: \"attachment\",\n description: \"description\",\n groupSet: \"groupSet\",\n sourceDestCheck: \"sourceDestCheck\"\n};\nvar OfferingClassType = {\n CONVERTIBLE: \"convertible\",\n STANDARD: \"standard\"\n};\nvar OfferingTypeValues = {\n All_Upfront: \"All Upfront\",\n Heavy_Utilization: \"Heavy Utilization\",\n Light_Utilization: \"Light Utilization\",\n Medium_Utilization: \"Medium Utilization\",\n No_Upfront: \"No Upfront\",\n Partial_Upfront: \"Partial Upfront\"\n};\nvar RIProductDescription = {\n Linux_UNIX: \"Linux/UNIX\",\n Linux_UNIX_Amazon_VPC_: \"Linux/UNIX (Amazon VPC)\",\n Windows: \"Windows\",\n Windows_Amazon_VPC_: \"Windows (Amazon VPC)\"\n};\nvar RecurringChargeFrequency = {\n Hourly: \"Hourly\"\n};\nvar Scope = {\n AVAILABILITY_ZONE: \"Availability Zone\",\n REGIONAL: \"Region\"\n};\nvar ReservedInstanceState = {\n active: \"active\",\n payment_failed: \"payment-failed\",\n payment_pending: \"payment-pending\",\n queued: \"queued\",\n queued_deleted: \"queued-deleted\",\n retired: \"retired\"\n};\nvar ServiceLinkVirtualInterfaceConfigurationState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar SnapshotAttributeName = {\n createVolumePermission: \"createVolumePermission\",\n productCodes: \"productCodes\"\n};\nvar TieringOperationStatus = {\n archival_completed: \"archival-completed\",\n archival_failed: \"archival-failed\",\n archival_in_progress: \"archival-in-progress\",\n permanent_restore_completed: \"permanent-restore-completed\",\n permanent_restore_failed: \"permanent-restore-failed\",\n permanent_restore_in_progress: \"permanent-restore-in-progress\",\n temporary_restore_completed: \"temporary-restore-completed\",\n temporary_restore_failed: \"temporary-restore-failed\",\n temporary_restore_in_progress: \"temporary-restore-in-progress\"\n};\nvar EventType = {\n BATCH_CHANGE: \"fleetRequestChange\",\n ERROR: \"error\",\n INFORMATION: \"information\",\n INSTANCE_CHANGE: \"instanceChange\"\n};\nvar ExcessCapacityTerminationPolicy = {\n DEFAULT: \"default\",\n NO_TERMINATION: \"noTermination\"\n};\nvar OnDemandAllocationStrategy = {\n LOWEST_PRICE: \"lowestPrice\",\n PRIORITIZED: \"prioritized\"\n};\nvar ReplacementStrategy = {\n LAUNCH: \"launch\",\n LAUNCH_BEFORE_TERMINATE: \"launch-before-terminate\"\n};\nvar SpotInstanceState = {\n active: \"active\",\n cancelled: \"cancelled\",\n closed: \"closed\",\n disabled: \"disabled\",\n failed: \"failed\",\n open: \"open\"\n};\nvar VerifiedAccessLogDeliveryStatusCode = {\n FAILED: \"failed\",\n SUCCESS: \"success\"\n};\nvar VolumeAttributeName = {\n autoEnableIO: \"autoEnableIO\",\n productCodes: \"productCodes\"\n};\nvar VolumeModificationState = {\n completed: \"completed\",\n failed: \"failed\",\n modifying: \"modifying\",\n optimizing: \"optimizing\"\n};\nvar VolumeStatusName = {\n io_enabled: \"io-enabled\",\n io_performance: \"io-performance\"\n};\nvar VolumeStatusInfoStatus = {\n impaired: \"impaired\",\n insufficient_data: \"insufficient-data\",\n ok: \"ok\"\n};\nvar VpcAttributeName = {\n enableDnsHostnames: \"enableDnsHostnames\",\n enableDnsSupport: \"enableDnsSupport\",\n enableNetworkAddressUsageMetrics: \"enableNetworkAddressUsageMetrics\"\n};\nvar VpcBlockPublicAccessExclusionsAllowed = {\n allowed: \"allowed\",\n not_allowed: \"not-allowed\"\n};\nvar InternetGatewayBlockMode = {\n block_bidirectional: \"block-bidirectional\",\n block_ingress: \"block-ingress\",\n off: \"off\"\n};\nvar ManagedBy = {\n account: \"account\",\n declarative_policy: \"declarative-policy\"\n};\nvar VpcBlockPublicAccessState = {\n default_state: \"default-state\",\n update_complete: \"update-complete\",\n update_in_progress: \"update-in-progress\"\n};\nvar SpotFleetLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"SpotFleetLaunchSpecificationFilterSensitiveLog\");\nvar SpotFleetRequestConfigDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecifications && {\n LaunchSpecifications: obj.LaunchSpecifications.map((item) => SpotFleetLaunchSpecificationFilterSensitiveLog(item))\n }\n}), \"SpotFleetRequestConfigDataFilterSensitiveLog\");\nvar SpotFleetRequestConfigFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotFleetRequestConfig && {\n SpotFleetRequestConfig: SpotFleetRequestConfigDataFilterSensitiveLog(obj.SpotFleetRequestConfig)\n }\n}), \"SpotFleetRequestConfigFilterSensitiveLog\");\nvar DescribeSpotFleetRequestsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"DescribeSpotFleetRequestsResponseFilterSensitiveLog\");\nvar LaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"LaunchSpecificationFilterSensitiveLog\");\nvar SpotInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && {\n LaunchSpecification: LaunchSpecificationFilterSensitiveLog(obj.LaunchSpecification)\n }\n}), \"SpotInstanceRequestFilterSensitiveLog\");\nvar DescribeSpotInstanceRequestsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotInstanceRequests && {\n SpotInstanceRequests: obj.SpotInstanceRequests.map((item) => SpotInstanceRequestFilterSensitiveLog(item))\n }\n}), \"DescribeSpotInstanceRequestsResultFilterSensitiveLog\");\nvar DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProviders && {\n VerifiedAccessTrustProviders: obj.VerifiedAccessTrustProviders.map(\n (item) => VerifiedAccessTrustProviderFilterSensitiveLog(item)\n )\n }\n}), \"DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog\");\nvar DescribeVpnConnectionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnections && {\n VpnConnections: obj.VpnConnections.map((item) => VpnConnectionFilterSensitiveLog(item))\n }\n}), \"DescribeVpnConnectionsResultFilterSensitiveLog\");\nvar DetachVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"DetachVerifiedAccessTrustProviderResultFilterSensitiveLog\");\n\n// src/commands/DescribeSpotFleetRequestsCommand.ts\nvar DescribeSpotFleetRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotFleetRequests\", {}).n(\"EC2Client\", \"DescribeSpotFleetRequestsCommand\").f(void 0, DescribeSpotFleetRequestsResponseFilterSensitiveLog).ser(se_DescribeSpotFleetRequestsCommand).de(de_DescribeSpotFleetRequestsCommand).build() {\n static {\n __name(this, \"DescribeSpotFleetRequestsCommand\");\n }\n};\n\n// src/commands/DescribeSpotInstanceRequestsCommand.ts\n\n\n\nvar DescribeSpotInstanceRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotInstanceRequests\", {}).n(\"EC2Client\", \"DescribeSpotInstanceRequestsCommand\").f(void 0, DescribeSpotInstanceRequestsResultFilterSensitiveLog).ser(se_DescribeSpotInstanceRequestsCommand).de(de_DescribeSpotInstanceRequestsCommand).build() {\n static {\n __name(this, \"DescribeSpotInstanceRequestsCommand\");\n }\n};\n\n// src/commands/DescribeSpotPriceHistoryCommand.ts\n\n\n\nvar DescribeSpotPriceHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotPriceHistory\", {}).n(\"EC2Client\", \"DescribeSpotPriceHistoryCommand\").f(void 0, void 0).ser(se_DescribeSpotPriceHistoryCommand).de(de_DescribeSpotPriceHistoryCommand).build() {\n static {\n __name(this, \"DescribeSpotPriceHistoryCommand\");\n }\n};\n\n// src/commands/DescribeStaleSecurityGroupsCommand.ts\n\n\n\nvar DescribeStaleSecurityGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeStaleSecurityGroups\", {}).n(\"EC2Client\", \"DescribeStaleSecurityGroupsCommand\").f(void 0, void 0).ser(se_DescribeStaleSecurityGroupsCommand).de(de_DescribeStaleSecurityGroupsCommand).build() {\n static {\n __name(this, \"DescribeStaleSecurityGroupsCommand\");\n }\n};\n\n// src/commands/DescribeStoreImageTasksCommand.ts\n\n\n\nvar DescribeStoreImageTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeStoreImageTasks\", {}).n(\"EC2Client\", \"DescribeStoreImageTasksCommand\").f(void 0, void 0).ser(se_DescribeStoreImageTasksCommand).de(de_DescribeStoreImageTasksCommand).build() {\n static {\n __name(this, \"DescribeStoreImageTasksCommand\");\n }\n};\n\n// src/commands/DescribeSubnetsCommand.ts\n\n\n\nvar DescribeSubnetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSubnets\", {}).n(\"EC2Client\", \"DescribeSubnetsCommand\").f(void 0, void 0).ser(se_DescribeSubnetsCommand).de(de_DescribeSubnetsCommand).build() {\n static {\n __name(this, \"DescribeSubnetsCommand\");\n }\n};\n\n// src/commands/DescribeTagsCommand.ts\n\n\n\nvar DescribeTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTags\", {}).n(\"EC2Client\", \"DescribeTagsCommand\").f(void 0, void 0).ser(se_DescribeTagsCommand).de(de_DescribeTagsCommand).build() {\n static {\n __name(this, \"DescribeTagsCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorFilterRulesCommand.ts\n\n\n\nvar DescribeTrafficMirrorFilterRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorFilterRules\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorFilterRulesCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorFilterRulesCommand).de(de_DescribeTrafficMirrorFilterRulesCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorFilterRulesCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorFiltersCommand.ts\n\n\n\nvar DescribeTrafficMirrorFiltersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorFilters\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorFiltersCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorFiltersCommand).de(de_DescribeTrafficMirrorFiltersCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorFiltersCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorSessionsCommand.ts\n\n\n\nvar DescribeTrafficMirrorSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorSessions\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorSessionsCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorSessionsCommand).de(de_DescribeTrafficMirrorSessionsCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorSessionsCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorTargetsCommand.ts\n\n\n\nvar DescribeTrafficMirrorTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorTargets\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorTargetsCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorTargetsCommand).de(de_DescribeTrafficMirrorTargetsCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorTargetsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayAttachmentsCommand.ts\n\n\n\nvar DescribeTransitGatewayAttachmentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayAttachments\", {}).n(\"EC2Client\", \"DescribeTransitGatewayAttachmentsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayAttachmentsCommand).de(de_DescribeTransitGatewayAttachmentsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayAttachmentsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayConnectPeersCommand.ts\n\n\n\nvar DescribeTransitGatewayConnectPeersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayConnectPeers\", {}).n(\"EC2Client\", \"DescribeTransitGatewayConnectPeersCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayConnectPeersCommand).de(de_DescribeTransitGatewayConnectPeersCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayConnectPeersCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayConnectsCommand.ts\n\n\n\nvar DescribeTransitGatewayConnectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayConnects\", {}).n(\"EC2Client\", \"DescribeTransitGatewayConnectsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayConnectsCommand).de(de_DescribeTransitGatewayConnectsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayConnectsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayMulticastDomainsCommand.ts\n\n\n\nvar DescribeTransitGatewayMulticastDomainsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayMulticastDomains\", {}).n(\"EC2Client\", \"DescribeTransitGatewayMulticastDomainsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayMulticastDomainsCommand).de(de_DescribeTransitGatewayMulticastDomainsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayMulticastDomainsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayPeeringAttachmentsCommand.ts\n\n\n\nvar DescribeTransitGatewayPeeringAttachmentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayPeeringAttachments\", {}).n(\"EC2Client\", \"DescribeTransitGatewayPeeringAttachmentsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayPeeringAttachmentsCommand).de(de_DescribeTransitGatewayPeeringAttachmentsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayPeeringAttachmentsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayPolicyTablesCommand.ts\n\n\n\nvar DescribeTransitGatewayPolicyTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayPolicyTables\", {}).n(\"EC2Client\", \"DescribeTransitGatewayPolicyTablesCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayPolicyTablesCommand).de(de_DescribeTransitGatewayPolicyTablesCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayPolicyTablesCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayRouteTableAnnouncementsCommand.ts\n\n\n\nvar DescribeTransitGatewayRouteTableAnnouncementsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayRouteTableAnnouncements\", {}).n(\"EC2Client\", \"DescribeTransitGatewayRouteTableAnnouncementsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayRouteTableAnnouncementsCommand).de(de_DescribeTransitGatewayRouteTableAnnouncementsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayRouteTableAnnouncementsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayRouteTablesCommand.ts\n\n\n\nvar DescribeTransitGatewayRouteTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayRouteTables\", {}).n(\"EC2Client\", \"DescribeTransitGatewayRouteTablesCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayRouteTablesCommand).de(de_DescribeTransitGatewayRouteTablesCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayRouteTablesCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewaysCommand.ts\n\n\n\nvar DescribeTransitGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGateways\", {}).n(\"EC2Client\", \"DescribeTransitGatewaysCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewaysCommand).de(de_DescribeTransitGatewaysCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayVpcAttachmentsCommand.ts\n\n\n\nvar DescribeTransitGatewayVpcAttachmentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayVpcAttachments\", {}).n(\"EC2Client\", \"DescribeTransitGatewayVpcAttachmentsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayVpcAttachmentsCommand).de(de_DescribeTransitGatewayVpcAttachmentsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayVpcAttachmentsCommand\");\n }\n};\n\n// src/commands/DescribeTrunkInterfaceAssociationsCommand.ts\n\n\n\nvar DescribeTrunkInterfaceAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrunkInterfaceAssociations\", {}).n(\"EC2Client\", \"DescribeTrunkInterfaceAssociationsCommand\").f(void 0, void 0).ser(se_DescribeTrunkInterfaceAssociationsCommand).de(de_DescribeTrunkInterfaceAssociationsCommand).build() {\n static {\n __name(this, \"DescribeTrunkInterfaceAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessEndpointsCommand.ts\n\n\n\nvar DescribeVerifiedAccessEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessEndpoints\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessEndpointsCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessEndpointsCommand).de(de_DescribeVerifiedAccessEndpointsCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessGroupsCommand.ts\n\n\n\nvar DescribeVerifiedAccessGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessGroups\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessGroupsCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessGroupsCommand).de(de_DescribeVerifiedAccessGroupsCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessGroupsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessInstanceLoggingConfigurationsCommand.ts\n\n\n\nvar DescribeVerifiedAccessInstanceLoggingConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessInstanceLoggingConfigurations\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand).de(de_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessInstancesCommand.ts\n\n\n\nvar DescribeVerifiedAccessInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessInstances\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessInstancesCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessInstancesCommand).de(de_DescribeVerifiedAccessInstancesCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessInstancesCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessTrustProvidersCommand.ts\n\n\n\nvar DescribeVerifiedAccessTrustProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessTrustProviders\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessTrustProvidersCommand\").f(void 0, DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog).ser(se_DescribeVerifiedAccessTrustProvidersCommand).de(de_DescribeVerifiedAccessTrustProvidersCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessTrustProvidersCommand\");\n }\n};\n\n// src/commands/DescribeVolumeAttributeCommand.ts\n\n\n\nvar DescribeVolumeAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumeAttribute\", {}).n(\"EC2Client\", \"DescribeVolumeAttributeCommand\").f(void 0, void 0).ser(se_DescribeVolumeAttributeCommand).de(de_DescribeVolumeAttributeCommand).build() {\n static {\n __name(this, \"DescribeVolumeAttributeCommand\");\n }\n};\n\n// src/commands/DescribeVolumesCommand.ts\n\n\n\nvar DescribeVolumesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumes\", {}).n(\"EC2Client\", \"DescribeVolumesCommand\").f(void 0, void 0).ser(se_DescribeVolumesCommand).de(de_DescribeVolumesCommand).build() {\n static {\n __name(this, \"DescribeVolumesCommand\");\n }\n};\n\n// src/commands/DescribeVolumesModificationsCommand.ts\n\n\n\nvar DescribeVolumesModificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumesModifications\", {}).n(\"EC2Client\", \"DescribeVolumesModificationsCommand\").f(void 0, void 0).ser(se_DescribeVolumesModificationsCommand).de(de_DescribeVolumesModificationsCommand).build() {\n static {\n __name(this, \"DescribeVolumesModificationsCommand\");\n }\n};\n\n// src/commands/DescribeVolumeStatusCommand.ts\n\n\n\nvar DescribeVolumeStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumeStatus\", {}).n(\"EC2Client\", \"DescribeVolumeStatusCommand\").f(void 0, void 0).ser(se_DescribeVolumeStatusCommand).de(de_DescribeVolumeStatusCommand).build() {\n static {\n __name(this, \"DescribeVolumeStatusCommand\");\n }\n};\n\n// src/commands/DescribeVpcAttributeCommand.ts\n\n\n\nvar DescribeVpcAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcAttribute\", {}).n(\"EC2Client\", \"DescribeVpcAttributeCommand\").f(void 0, void 0).ser(se_DescribeVpcAttributeCommand).de(de_DescribeVpcAttributeCommand).build() {\n static {\n __name(this, \"DescribeVpcAttributeCommand\");\n }\n};\n\n// src/commands/DescribeVpcBlockPublicAccessExclusionsCommand.ts\n\n\n\nvar DescribeVpcBlockPublicAccessExclusionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcBlockPublicAccessExclusions\", {}).n(\"EC2Client\", \"DescribeVpcBlockPublicAccessExclusionsCommand\").f(void 0, void 0).ser(se_DescribeVpcBlockPublicAccessExclusionsCommand).de(de_DescribeVpcBlockPublicAccessExclusionsCommand).build() {\n static {\n __name(this, \"DescribeVpcBlockPublicAccessExclusionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcBlockPublicAccessOptionsCommand.ts\n\n\n\nvar DescribeVpcBlockPublicAccessOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcBlockPublicAccessOptions\", {}).n(\"EC2Client\", \"DescribeVpcBlockPublicAccessOptionsCommand\").f(void 0, void 0).ser(se_DescribeVpcBlockPublicAccessOptionsCommand).de(de_DescribeVpcBlockPublicAccessOptionsCommand).build() {\n static {\n __name(this, \"DescribeVpcBlockPublicAccessOptionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcClassicLinkCommand.ts\n\n\n\nvar DescribeVpcClassicLinkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcClassicLink\", {}).n(\"EC2Client\", \"DescribeVpcClassicLinkCommand\").f(void 0, void 0).ser(se_DescribeVpcClassicLinkCommand).de(de_DescribeVpcClassicLinkCommand).build() {\n static {\n __name(this, \"DescribeVpcClassicLinkCommand\");\n }\n};\n\n// src/commands/DescribeVpcClassicLinkDnsSupportCommand.ts\n\n\n\nvar DescribeVpcClassicLinkDnsSupportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcClassicLinkDnsSupport\", {}).n(\"EC2Client\", \"DescribeVpcClassicLinkDnsSupportCommand\").f(void 0, void 0).ser(se_DescribeVpcClassicLinkDnsSupportCommand).de(de_DescribeVpcClassicLinkDnsSupportCommand).build() {\n static {\n __name(this, \"DescribeVpcClassicLinkDnsSupportCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointAssociationsCommand.ts\n\n\n\nvar DescribeVpcEndpointAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointAssociations\", {}).n(\"EC2Client\", \"DescribeVpcEndpointAssociationsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointAssociationsCommand).de(de_DescribeVpcEndpointAssociationsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointConnectionNotificationsCommand.ts\n\n\n\nvar DescribeVpcEndpointConnectionNotificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointConnectionNotifications\", {}).n(\"EC2Client\", \"DescribeVpcEndpointConnectionNotificationsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointConnectionNotificationsCommand).de(de_DescribeVpcEndpointConnectionNotificationsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointConnectionNotificationsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointConnectionsCommand.ts\n\n\n\nvar DescribeVpcEndpointConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointConnections\", {}).n(\"EC2Client\", \"DescribeVpcEndpointConnectionsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointConnectionsCommand).de(de_DescribeVpcEndpointConnectionsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointsCommand.ts\n\n\n\nvar DescribeVpcEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpoints\", {}).n(\"EC2Client\", \"DescribeVpcEndpointsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointsCommand).de(de_DescribeVpcEndpointsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointServiceConfigurationsCommand.ts\n\n\n\nvar DescribeVpcEndpointServiceConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointServiceConfigurations\", {}).n(\"EC2Client\", \"DescribeVpcEndpointServiceConfigurationsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointServiceConfigurationsCommand).de(de_DescribeVpcEndpointServiceConfigurationsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointServiceConfigurationsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointServicePermissionsCommand.ts\n\n\n\nvar DescribeVpcEndpointServicePermissionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointServicePermissions\", {}).n(\"EC2Client\", \"DescribeVpcEndpointServicePermissionsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointServicePermissionsCommand).de(de_DescribeVpcEndpointServicePermissionsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointServicePermissionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointServicesCommand.ts\n\n\n\nvar DescribeVpcEndpointServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointServices\", {}).n(\"EC2Client\", \"DescribeVpcEndpointServicesCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointServicesCommand).de(de_DescribeVpcEndpointServicesCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointServicesCommand\");\n }\n};\n\n// src/commands/DescribeVpcPeeringConnectionsCommand.ts\n\n\n\nvar DescribeVpcPeeringConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcPeeringConnections\", {}).n(\"EC2Client\", \"DescribeVpcPeeringConnectionsCommand\").f(void 0, void 0).ser(se_DescribeVpcPeeringConnectionsCommand).de(de_DescribeVpcPeeringConnectionsCommand).build() {\n static {\n __name(this, \"DescribeVpcPeeringConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcsCommand.ts\n\n\n\nvar DescribeVpcsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcs\", {}).n(\"EC2Client\", \"DescribeVpcsCommand\").f(void 0, void 0).ser(se_DescribeVpcsCommand).de(de_DescribeVpcsCommand).build() {\n static {\n __name(this, \"DescribeVpcsCommand\");\n }\n};\n\n// src/commands/DescribeVpnConnectionsCommand.ts\n\n\n\nvar DescribeVpnConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpnConnections\", {}).n(\"EC2Client\", \"DescribeVpnConnectionsCommand\").f(void 0, DescribeVpnConnectionsResultFilterSensitiveLog).ser(se_DescribeVpnConnectionsCommand).de(de_DescribeVpnConnectionsCommand).build() {\n static {\n __name(this, \"DescribeVpnConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeVpnGatewaysCommand.ts\n\n\n\nvar DescribeVpnGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpnGateways\", {}).n(\"EC2Client\", \"DescribeVpnGatewaysCommand\").f(void 0, void 0).ser(se_DescribeVpnGatewaysCommand).de(de_DescribeVpnGatewaysCommand).build() {\n static {\n __name(this, \"DescribeVpnGatewaysCommand\");\n }\n};\n\n// src/commands/DetachClassicLinkVpcCommand.ts\n\n\n\nvar DetachClassicLinkVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachClassicLinkVpc\", {}).n(\"EC2Client\", \"DetachClassicLinkVpcCommand\").f(void 0, void 0).ser(se_DetachClassicLinkVpcCommand).de(de_DetachClassicLinkVpcCommand).build() {\n static {\n __name(this, \"DetachClassicLinkVpcCommand\");\n }\n};\n\n// src/commands/DetachInternetGatewayCommand.ts\n\n\n\nvar DetachInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachInternetGateway\", {}).n(\"EC2Client\", \"DetachInternetGatewayCommand\").f(void 0, void 0).ser(se_DetachInternetGatewayCommand).de(de_DetachInternetGatewayCommand).build() {\n static {\n __name(this, \"DetachInternetGatewayCommand\");\n }\n};\n\n// src/commands/DetachNetworkInterfaceCommand.ts\n\n\n\nvar DetachNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachNetworkInterface\", {}).n(\"EC2Client\", \"DetachNetworkInterfaceCommand\").f(void 0, void 0).ser(se_DetachNetworkInterfaceCommand).de(de_DetachNetworkInterfaceCommand).build() {\n static {\n __name(this, \"DetachNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/DetachVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar DetachVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"DetachVerifiedAccessTrustProviderCommand\").f(void 0, DetachVerifiedAccessTrustProviderResultFilterSensitiveLog).ser(se_DetachVerifiedAccessTrustProviderCommand).de(de_DetachVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"DetachVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/DetachVolumeCommand.ts\n\n\n\nvar DetachVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachVolume\", {}).n(\"EC2Client\", \"DetachVolumeCommand\").f(void 0, void 0).ser(se_DetachVolumeCommand).de(de_DetachVolumeCommand).build() {\n static {\n __name(this, \"DetachVolumeCommand\");\n }\n};\n\n// src/commands/DetachVpnGatewayCommand.ts\n\n\n\nvar DetachVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachVpnGateway\", {}).n(\"EC2Client\", \"DetachVpnGatewayCommand\").f(void 0, void 0).ser(se_DetachVpnGatewayCommand).de(de_DetachVpnGatewayCommand).build() {\n static {\n __name(this, \"DetachVpnGatewayCommand\");\n }\n};\n\n// src/commands/DisableAddressTransferCommand.ts\n\n\n\nvar DisableAddressTransferCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableAddressTransfer\", {}).n(\"EC2Client\", \"DisableAddressTransferCommand\").f(void 0, void 0).ser(se_DisableAddressTransferCommand).de(de_DisableAddressTransferCommand).build() {\n static {\n __name(this, \"DisableAddressTransferCommand\");\n }\n};\n\n// src/commands/DisableAllowedImagesSettingsCommand.ts\n\n\n\nvar DisableAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableAllowedImagesSettings\", {}).n(\"EC2Client\", \"DisableAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_DisableAllowedImagesSettingsCommand).de(de_DisableAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"DisableAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/DisableAwsNetworkPerformanceMetricSubscriptionCommand.ts\n\n\n\nvar DisableAwsNetworkPerformanceMetricSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableAwsNetworkPerformanceMetricSubscription\", {}).n(\"EC2Client\", \"DisableAwsNetworkPerformanceMetricSubscriptionCommand\").f(void 0, void 0).ser(se_DisableAwsNetworkPerformanceMetricSubscriptionCommand).de(de_DisableAwsNetworkPerformanceMetricSubscriptionCommand).build() {\n static {\n __name(this, \"DisableAwsNetworkPerformanceMetricSubscriptionCommand\");\n }\n};\n\n// src/commands/DisableEbsEncryptionByDefaultCommand.ts\n\n\n\nvar DisableEbsEncryptionByDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableEbsEncryptionByDefault\", {}).n(\"EC2Client\", \"DisableEbsEncryptionByDefaultCommand\").f(void 0, void 0).ser(se_DisableEbsEncryptionByDefaultCommand).de(de_DisableEbsEncryptionByDefaultCommand).build() {\n static {\n __name(this, \"DisableEbsEncryptionByDefaultCommand\");\n }\n};\n\n// src/commands/DisableFastLaunchCommand.ts\n\n\n\nvar DisableFastLaunchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableFastLaunch\", {}).n(\"EC2Client\", \"DisableFastLaunchCommand\").f(void 0, void 0).ser(se_DisableFastLaunchCommand).de(de_DisableFastLaunchCommand).build() {\n static {\n __name(this, \"DisableFastLaunchCommand\");\n }\n};\n\n// src/commands/DisableFastSnapshotRestoresCommand.ts\n\n\n\nvar DisableFastSnapshotRestoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableFastSnapshotRestores\", {}).n(\"EC2Client\", \"DisableFastSnapshotRestoresCommand\").f(void 0, void 0).ser(se_DisableFastSnapshotRestoresCommand).de(de_DisableFastSnapshotRestoresCommand).build() {\n static {\n __name(this, \"DisableFastSnapshotRestoresCommand\");\n }\n};\n\n// src/commands/DisableImageBlockPublicAccessCommand.ts\n\n\n\nvar DisableImageBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImageBlockPublicAccess\", {}).n(\"EC2Client\", \"DisableImageBlockPublicAccessCommand\").f(void 0, void 0).ser(se_DisableImageBlockPublicAccessCommand).de(de_DisableImageBlockPublicAccessCommand).build() {\n static {\n __name(this, \"DisableImageBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/DisableImageCommand.ts\n\n\n\nvar DisableImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImage\", {}).n(\"EC2Client\", \"DisableImageCommand\").f(void 0, void 0).ser(se_DisableImageCommand).de(de_DisableImageCommand).build() {\n static {\n __name(this, \"DisableImageCommand\");\n }\n};\n\n// src/commands/DisableImageDeprecationCommand.ts\n\n\n\nvar DisableImageDeprecationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImageDeprecation\", {}).n(\"EC2Client\", \"DisableImageDeprecationCommand\").f(void 0, void 0).ser(se_DisableImageDeprecationCommand).de(de_DisableImageDeprecationCommand).build() {\n static {\n __name(this, \"DisableImageDeprecationCommand\");\n }\n};\n\n// src/commands/DisableImageDeregistrationProtectionCommand.ts\n\n\n\nvar DisableImageDeregistrationProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImageDeregistrationProtection\", {}).n(\"EC2Client\", \"DisableImageDeregistrationProtectionCommand\").f(void 0, void 0).ser(se_DisableImageDeregistrationProtectionCommand).de(de_DisableImageDeregistrationProtectionCommand).build() {\n static {\n __name(this, \"DisableImageDeregistrationProtectionCommand\");\n }\n};\n\n// src/commands/DisableIpamOrganizationAdminAccountCommand.ts\n\n\n\nvar DisableIpamOrganizationAdminAccountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableIpamOrganizationAdminAccount\", {}).n(\"EC2Client\", \"DisableIpamOrganizationAdminAccountCommand\").f(void 0, void 0).ser(se_DisableIpamOrganizationAdminAccountCommand).de(de_DisableIpamOrganizationAdminAccountCommand).build() {\n static {\n __name(this, \"DisableIpamOrganizationAdminAccountCommand\");\n }\n};\n\n// src/commands/DisableRouteServerPropagationCommand.ts\n\n\n\nvar DisableRouteServerPropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableRouteServerPropagation\", {}).n(\"EC2Client\", \"DisableRouteServerPropagationCommand\").f(void 0, void 0).ser(se_DisableRouteServerPropagationCommand).de(de_DisableRouteServerPropagationCommand).build() {\n static {\n __name(this, \"DisableRouteServerPropagationCommand\");\n }\n};\n\n// src/commands/DisableSerialConsoleAccessCommand.ts\n\n\n\nvar DisableSerialConsoleAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableSerialConsoleAccess\", {}).n(\"EC2Client\", \"DisableSerialConsoleAccessCommand\").f(void 0, void 0).ser(se_DisableSerialConsoleAccessCommand).de(de_DisableSerialConsoleAccessCommand).build() {\n static {\n __name(this, \"DisableSerialConsoleAccessCommand\");\n }\n};\n\n// src/commands/DisableSnapshotBlockPublicAccessCommand.ts\n\n\n\nvar DisableSnapshotBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableSnapshotBlockPublicAccess\", {}).n(\"EC2Client\", \"DisableSnapshotBlockPublicAccessCommand\").f(void 0, void 0).ser(se_DisableSnapshotBlockPublicAccessCommand).de(de_DisableSnapshotBlockPublicAccessCommand).build() {\n static {\n __name(this, \"DisableSnapshotBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/DisableTransitGatewayRouteTablePropagationCommand.ts\n\n\n\nvar DisableTransitGatewayRouteTablePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableTransitGatewayRouteTablePropagation\", {}).n(\"EC2Client\", \"DisableTransitGatewayRouteTablePropagationCommand\").f(void 0, void 0).ser(se_DisableTransitGatewayRouteTablePropagationCommand).de(de_DisableTransitGatewayRouteTablePropagationCommand).build() {\n static {\n __name(this, \"DisableTransitGatewayRouteTablePropagationCommand\");\n }\n};\n\n// src/commands/DisableVgwRoutePropagationCommand.ts\n\n\n\nvar DisableVgwRoutePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableVgwRoutePropagation\", {}).n(\"EC2Client\", \"DisableVgwRoutePropagationCommand\").f(void 0, void 0).ser(se_DisableVgwRoutePropagationCommand).de(de_DisableVgwRoutePropagationCommand).build() {\n static {\n __name(this, \"DisableVgwRoutePropagationCommand\");\n }\n};\n\n// src/commands/DisableVpcClassicLinkCommand.ts\n\n\n\nvar DisableVpcClassicLinkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableVpcClassicLink\", {}).n(\"EC2Client\", \"DisableVpcClassicLinkCommand\").f(void 0, void 0).ser(se_DisableVpcClassicLinkCommand).de(de_DisableVpcClassicLinkCommand).build() {\n static {\n __name(this, \"DisableVpcClassicLinkCommand\");\n }\n};\n\n// src/commands/DisableVpcClassicLinkDnsSupportCommand.ts\n\n\n\nvar DisableVpcClassicLinkDnsSupportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableVpcClassicLinkDnsSupport\", {}).n(\"EC2Client\", \"DisableVpcClassicLinkDnsSupportCommand\").f(void 0, void 0).ser(se_DisableVpcClassicLinkDnsSupportCommand).de(de_DisableVpcClassicLinkDnsSupportCommand).build() {\n static {\n __name(this, \"DisableVpcClassicLinkDnsSupportCommand\");\n }\n};\n\n// src/commands/DisassociateAddressCommand.ts\n\n\n\nvar DisassociateAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateAddress\", {}).n(\"EC2Client\", \"DisassociateAddressCommand\").f(void 0, void 0).ser(se_DisassociateAddressCommand).de(de_DisassociateAddressCommand).build() {\n static {\n __name(this, \"DisassociateAddressCommand\");\n }\n};\n\n// src/commands/DisassociateCapacityReservationBillingOwnerCommand.ts\n\n\n\nvar DisassociateCapacityReservationBillingOwnerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateCapacityReservationBillingOwner\", {}).n(\"EC2Client\", \"DisassociateCapacityReservationBillingOwnerCommand\").f(void 0, void 0).ser(se_DisassociateCapacityReservationBillingOwnerCommand).de(de_DisassociateCapacityReservationBillingOwnerCommand).build() {\n static {\n __name(this, \"DisassociateCapacityReservationBillingOwnerCommand\");\n }\n};\n\n// src/commands/DisassociateClientVpnTargetNetworkCommand.ts\n\n\n\nvar DisassociateClientVpnTargetNetworkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateClientVpnTargetNetwork\", {}).n(\"EC2Client\", \"DisassociateClientVpnTargetNetworkCommand\").f(void 0, void 0).ser(se_DisassociateClientVpnTargetNetworkCommand).de(de_DisassociateClientVpnTargetNetworkCommand).build() {\n static {\n __name(this, \"DisassociateClientVpnTargetNetworkCommand\");\n }\n};\n\n// src/commands/DisassociateEnclaveCertificateIamRoleCommand.ts\n\n\n\nvar DisassociateEnclaveCertificateIamRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateEnclaveCertificateIamRole\", {}).n(\"EC2Client\", \"DisassociateEnclaveCertificateIamRoleCommand\").f(void 0, void 0).ser(se_DisassociateEnclaveCertificateIamRoleCommand).de(de_DisassociateEnclaveCertificateIamRoleCommand).build() {\n static {\n __name(this, \"DisassociateEnclaveCertificateIamRoleCommand\");\n }\n};\n\n// src/commands/DisassociateIamInstanceProfileCommand.ts\n\n\n\nvar DisassociateIamInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateIamInstanceProfile\", {}).n(\"EC2Client\", \"DisassociateIamInstanceProfileCommand\").f(void 0, void 0).ser(se_DisassociateIamInstanceProfileCommand).de(de_DisassociateIamInstanceProfileCommand).build() {\n static {\n __name(this, \"DisassociateIamInstanceProfileCommand\");\n }\n};\n\n// src/commands/DisassociateInstanceEventWindowCommand.ts\n\n\n\nvar DisassociateInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateInstanceEventWindow\", {}).n(\"EC2Client\", \"DisassociateInstanceEventWindowCommand\").f(void 0, void 0).ser(se_DisassociateInstanceEventWindowCommand).de(de_DisassociateInstanceEventWindowCommand).build() {\n static {\n __name(this, \"DisassociateInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/DisassociateIpamByoasnCommand.ts\n\n\n\nvar DisassociateIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateIpamByoasn\", {}).n(\"EC2Client\", \"DisassociateIpamByoasnCommand\").f(void 0, void 0).ser(se_DisassociateIpamByoasnCommand).de(de_DisassociateIpamByoasnCommand).build() {\n static {\n __name(this, \"DisassociateIpamByoasnCommand\");\n }\n};\n\n// src/commands/DisassociateIpamResourceDiscoveryCommand.ts\n\n\n\nvar DisassociateIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateIpamResourceDiscovery\", {}).n(\"EC2Client\", \"DisassociateIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_DisassociateIpamResourceDiscoveryCommand).de(de_DisassociateIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"DisassociateIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/DisassociateNatGatewayAddressCommand.ts\n\n\n\nvar DisassociateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateNatGatewayAddress\", {}).n(\"EC2Client\", \"DisassociateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_DisassociateNatGatewayAddressCommand).de(de_DisassociateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"DisassociateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/DisassociateRouteServerCommand.ts\n\n\n\nvar DisassociateRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateRouteServer\", {}).n(\"EC2Client\", \"DisassociateRouteServerCommand\").f(void 0, void 0).ser(se_DisassociateRouteServerCommand).de(de_DisassociateRouteServerCommand).build() {\n static {\n __name(this, \"DisassociateRouteServerCommand\");\n }\n};\n\n// src/commands/DisassociateRouteTableCommand.ts\n\n\n\nvar DisassociateRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateRouteTable\", {}).n(\"EC2Client\", \"DisassociateRouteTableCommand\").f(void 0, void 0).ser(se_DisassociateRouteTableCommand).de(de_DisassociateRouteTableCommand).build() {\n static {\n __name(this, \"DisassociateRouteTableCommand\");\n }\n};\n\n// src/commands/DisassociateSecurityGroupVpcCommand.ts\n\n\n\nvar DisassociateSecurityGroupVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateSecurityGroupVpc\", {}).n(\"EC2Client\", \"DisassociateSecurityGroupVpcCommand\").f(void 0, void 0).ser(se_DisassociateSecurityGroupVpcCommand).de(de_DisassociateSecurityGroupVpcCommand).build() {\n static {\n __name(this, \"DisassociateSecurityGroupVpcCommand\");\n }\n};\n\n// src/commands/DisassociateSubnetCidrBlockCommand.ts\n\n\n\nvar DisassociateSubnetCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateSubnetCidrBlock\", {}).n(\"EC2Client\", \"DisassociateSubnetCidrBlockCommand\").f(void 0, void 0).ser(se_DisassociateSubnetCidrBlockCommand).de(de_DisassociateSubnetCidrBlockCommand).build() {\n static {\n __name(this, \"DisassociateSubnetCidrBlockCommand\");\n }\n};\n\n// src/commands/DisassociateTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar DisassociateTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"DisassociateTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_DisassociateTransitGatewayMulticastDomainCommand).de(de_DisassociateTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"DisassociateTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/DisassociateTransitGatewayPolicyTableCommand.ts\n\n\n\nvar DisassociateTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"DisassociateTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_DisassociateTransitGatewayPolicyTableCommand).de(de_DisassociateTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"DisassociateTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/DisassociateTransitGatewayRouteTableCommand.ts\n\n\n\nvar DisassociateTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"DisassociateTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_DisassociateTransitGatewayRouteTableCommand).de(de_DisassociateTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"DisassociateTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/DisassociateTrunkInterfaceCommand.ts\n\n\n\nvar DisassociateTrunkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTrunkInterface\", {}).n(\"EC2Client\", \"DisassociateTrunkInterfaceCommand\").f(void 0, void 0).ser(se_DisassociateTrunkInterfaceCommand).de(de_DisassociateTrunkInterfaceCommand).build() {\n static {\n __name(this, \"DisassociateTrunkInterfaceCommand\");\n }\n};\n\n// src/commands/DisassociateVpcCidrBlockCommand.ts\n\n\n\nvar DisassociateVpcCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateVpcCidrBlock\", {}).n(\"EC2Client\", \"DisassociateVpcCidrBlockCommand\").f(void 0, void 0).ser(se_DisassociateVpcCidrBlockCommand).de(de_DisassociateVpcCidrBlockCommand).build() {\n static {\n __name(this, \"DisassociateVpcCidrBlockCommand\");\n }\n};\n\n// src/commands/EnableAddressTransferCommand.ts\n\n\n\nvar EnableAddressTransferCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableAddressTransfer\", {}).n(\"EC2Client\", \"EnableAddressTransferCommand\").f(void 0, void 0).ser(se_EnableAddressTransferCommand).de(de_EnableAddressTransferCommand).build() {\n static {\n __name(this, \"EnableAddressTransferCommand\");\n }\n};\n\n// src/commands/EnableAllowedImagesSettingsCommand.ts\n\n\n\nvar EnableAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableAllowedImagesSettings\", {}).n(\"EC2Client\", \"EnableAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_EnableAllowedImagesSettingsCommand).de(de_EnableAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"EnableAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/EnableAwsNetworkPerformanceMetricSubscriptionCommand.ts\n\n\n\nvar EnableAwsNetworkPerformanceMetricSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableAwsNetworkPerformanceMetricSubscription\", {}).n(\"EC2Client\", \"EnableAwsNetworkPerformanceMetricSubscriptionCommand\").f(void 0, void 0).ser(se_EnableAwsNetworkPerformanceMetricSubscriptionCommand).de(de_EnableAwsNetworkPerformanceMetricSubscriptionCommand).build() {\n static {\n __name(this, \"EnableAwsNetworkPerformanceMetricSubscriptionCommand\");\n }\n};\n\n// src/commands/EnableEbsEncryptionByDefaultCommand.ts\n\n\n\nvar EnableEbsEncryptionByDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableEbsEncryptionByDefault\", {}).n(\"EC2Client\", \"EnableEbsEncryptionByDefaultCommand\").f(void 0, void 0).ser(se_EnableEbsEncryptionByDefaultCommand).de(de_EnableEbsEncryptionByDefaultCommand).build() {\n static {\n __name(this, \"EnableEbsEncryptionByDefaultCommand\");\n }\n};\n\n// src/commands/EnableFastLaunchCommand.ts\n\n\n\nvar EnableFastLaunchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableFastLaunch\", {}).n(\"EC2Client\", \"EnableFastLaunchCommand\").f(void 0, void 0).ser(se_EnableFastLaunchCommand).de(de_EnableFastLaunchCommand).build() {\n static {\n __name(this, \"EnableFastLaunchCommand\");\n }\n};\n\n// src/commands/EnableFastSnapshotRestoresCommand.ts\n\n\n\nvar EnableFastSnapshotRestoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableFastSnapshotRestores\", {}).n(\"EC2Client\", \"EnableFastSnapshotRestoresCommand\").f(void 0, void 0).ser(se_EnableFastSnapshotRestoresCommand).de(de_EnableFastSnapshotRestoresCommand).build() {\n static {\n __name(this, \"EnableFastSnapshotRestoresCommand\");\n }\n};\n\n// src/commands/EnableImageBlockPublicAccessCommand.ts\n\n\n\nvar EnableImageBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImageBlockPublicAccess\", {}).n(\"EC2Client\", \"EnableImageBlockPublicAccessCommand\").f(void 0, void 0).ser(se_EnableImageBlockPublicAccessCommand).de(de_EnableImageBlockPublicAccessCommand).build() {\n static {\n __name(this, \"EnableImageBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/EnableImageCommand.ts\n\n\n\nvar EnableImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImage\", {}).n(\"EC2Client\", \"EnableImageCommand\").f(void 0, void 0).ser(se_EnableImageCommand).de(de_EnableImageCommand).build() {\n static {\n __name(this, \"EnableImageCommand\");\n }\n};\n\n// src/commands/EnableImageDeprecationCommand.ts\n\n\n\nvar EnableImageDeprecationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImageDeprecation\", {}).n(\"EC2Client\", \"EnableImageDeprecationCommand\").f(void 0, void 0).ser(se_EnableImageDeprecationCommand).de(de_EnableImageDeprecationCommand).build() {\n static {\n __name(this, \"EnableImageDeprecationCommand\");\n }\n};\n\n// src/commands/EnableImageDeregistrationProtectionCommand.ts\n\n\n\nvar EnableImageDeregistrationProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImageDeregistrationProtection\", {}).n(\"EC2Client\", \"EnableImageDeregistrationProtectionCommand\").f(void 0, void 0).ser(se_EnableImageDeregistrationProtectionCommand).de(de_EnableImageDeregistrationProtectionCommand).build() {\n static {\n __name(this, \"EnableImageDeregistrationProtectionCommand\");\n }\n};\n\n// src/commands/EnableIpamOrganizationAdminAccountCommand.ts\n\n\n\nvar EnableIpamOrganizationAdminAccountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableIpamOrganizationAdminAccount\", {}).n(\"EC2Client\", \"EnableIpamOrganizationAdminAccountCommand\").f(void 0, void 0).ser(se_EnableIpamOrganizationAdminAccountCommand).de(de_EnableIpamOrganizationAdminAccountCommand).build() {\n static {\n __name(this, \"EnableIpamOrganizationAdminAccountCommand\");\n }\n};\n\n// src/commands/EnableReachabilityAnalyzerOrganizationSharingCommand.ts\n\n\n\nvar EnableReachabilityAnalyzerOrganizationSharingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableReachabilityAnalyzerOrganizationSharing\", {}).n(\"EC2Client\", \"EnableReachabilityAnalyzerOrganizationSharingCommand\").f(void 0, void 0).ser(se_EnableReachabilityAnalyzerOrganizationSharingCommand).de(de_EnableReachabilityAnalyzerOrganizationSharingCommand).build() {\n static {\n __name(this, \"EnableReachabilityAnalyzerOrganizationSharingCommand\");\n }\n};\n\n// src/commands/EnableRouteServerPropagationCommand.ts\n\n\n\nvar EnableRouteServerPropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableRouteServerPropagation\", {}).n(\"EC2Client\", \"EnableRouteServerPropagationCommand\").f(void 0, void 0).ser(se_EnableRouteServerPropagationCommand).de(de_EnableRouteServerPropagationCommand).build() {\n static {\n __name(this, \"EnableRouteServerPropagationCommand\");\n }\n};\n\n// src/commands/EnableSerialConsoleAccessCommand.ts\n\n\n\nvar EnableSerialConsoleAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableSerialConsoleAccess\", {}).n(\"EC2Client\", \"EnableSerialConsoleAccessCommand\").f(void 0, void 0).ser(se_EnableSerialConsoleAccessCommand).de(de_EnableSerialConsoleAccessCommand).build() {\n static {\n __name(this, \"EnableSerialConsoleAccessCommand\");\n }\n};\n\n// src/commands/EnableSnapshotBlockPublicAccessCommand.ts\n\n\n\nvar EnableSnapshotBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableSnapshotBlockPublicAccess\", {}).n(\"EC2Client\", \"EnableSnapshotBlockPublicAccessCommand\").f(void 0, void 0).ser(se_EnableSnapshotBlockPublicAccessCommand).de(de_EnableSnapshotBlockPublicAccessCommand).build() {\n static {\n __name(this, \"EnableSnapshotBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/EnableTransitGatewayRouteTablePropagationCommand.ts\n\n\n\nvar EnableTransitGatewayRouteTablePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableTransitGatewayRouteTablePropagation\", {}).n(\"EC2Client\", \"EnableTransitGatewayRouteTablePropagationCommand\").f(void 0, void 0).ser(se_EnableTransitGatewayRouteTablePropagationCommand).de(de_EnableTransitGatewayRouteTablePropagationCommand).build() {\n static {\n __name(this, \"EnableTransitGatewayRouteTablePropagationCommand\");\n }\n};\n\n// src/commands/EnableVgwRoutePropagationCommand.ts\n\n\n\nvar EnableVgwRoutePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVgwRoutePropagation\", {}).n(\"EC2Client\", \"EnableVgwRoutePropagationCommand\").f(void 0, void 0).ser(se_EnableVgwRoutePropagationCommand).de(de_EnableVgwRoutePropagationCommand).build() {\n static {\n __name(this, \"EnableVgwRoutePropagationCommand\");\n }\n};\n\n// src/commands/EnableVolumeIOCommand.ts\n\n\n\nvar EnableVolumeIOCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVolumeIO\", {}).n(\"EC2Client\", \"EnableVolumeIOCommand\").f(void 0, void 0).ser(se_EnableVolumeIOCommand).de(de_EnableVolumeIOCommand).build() {\n static {\n __name(this, \"EnableVolumeIOCommand\");\n }\n};\n\n// src/commands/EnableVpcClassicLinkCommand.ts\n\n\n\nvar EnableVpcClassicLinkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVpcClassicLink\", {}).n(\"EC2Client\", \"EnableVpcClassicLinkCommand\").f(void 0, void 0).ser(se_EnableVpcClassicLinkCommand).de(de_EnableVpcClassicLinkCommand).build() {\n static {\n __name(this, \"EnableVpcClassicLinkCommand\");\n }\n};\n\n// src/commands/EnableVpcClassicLinkDnsSupportCommand.ts\n\n\n\nvar EnableVpcClassicLinkDnsSupportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVpcClassicLinkDnsSupport\", {}).n(\"EC2Client\", \"EnableVpcClassicLinkDnsSupportCommand\").f(void 0, void 0).ser(se_EnableVpcClassicLinkDnsSupportCommand).de(de_EnableVpcClassicLinkDnsSupportCommand).build() {\n static {\n __name(this, \"EnableVpcClassicLinkDnsSupportCommand\");\n }\n};\n\n// src/commands/ExportClientVpnClientCertificateRevocationListCommand.ts\n\n\n\nvar ExportClientVpnClientCertificateRevocationListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportClientVpnClientCertificateRevocationList\", {}).n(\"EC2Client\", \"ExportClientVpnClientCertificateRevocationListCommand\").f(void 0, void 0).ser(se_ExportClientVpnClientCertificateRevocationListCommand).de(de_ExportClientVpnClientCertificateRevocationListCommand).build() {\n static {\n __name(this, \"ExportClientVpnClientCertificateRevocationListCommand\");\n }\n};\n\n// src/commands/ExportClientVpnClientConfigurationCommand.ts\n\n\n\nvar ExportClientVpnClientConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportClientVpnClientConfiguration\", {}).n(\"EC2Client\", \"ExportClientVpnClientConfigurationCommand\").f(void 0, void 0).ser(se_ExportClientVpnClientConfigurationCommand).de(de_ExportClientVpnClientConfigurationCommand).build() {\n static {\n __name(this, \"ExportClientVpnClientConfigurationCommand\");\n }\n};\n\n// src/commands/ExportImageCommand.ts\n\n\n\nvar ExportImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportImage\", {}).n(\"EC2Client\", \"ExportImageCommand\").f(void 0, void 0).ser(se_ExportImageCommand).de(de_ExportImageCommand).build() {\n static {\n __name(this, \"ExportImageCommand\");\n }\n};\n\n// src/commands/ExportTransitGatewayRoutesCommand.ts\n\n\n\nvar ExportTransitGatewayRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportTransitGatewayRoutes\", {}).n(\"EC2Client\", \"ExportTransitGatewayRoutesCommand\").f(void 0, void 0).ser(se_ExportTransitGatewayRoutesCommand).de(de_ExportTransitGatewayRoutesCommand).build() {\n static {\n __name(this, \"ExportTransitGatewayRoutesCommand\");\n }\n};\n\n// src/commands/ExportVerifiedAccessInstanceClientConfigurationCommand.ts\n\n\n\n\n// src/models/models_6.ts\n\nvar ImageBlockPublicAccessDisabledState = {\n unblocked: \"unblocked\"\n};\nvar RouteServerPropagationState = {\n AVAILABLE: \"available\",\n DELETING: \"deleting\",\n PENDING: \"pending\"\n};\nvar SnapshotBlockPublicAccessState = {\n block_all_sharing: \"block-all-sharing\",\n block_new_sharing: \"block-new-sharing\",\n unblocked: \"unblocked\"\n};\nvar TransitGatewayPropagationState = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n enabling: \"enabling\"\n};\nvar ImageBlockPublicAccessEnabledState = {\n block_new_sharing: \"block-new-sharing\"\n};\nvar ClientCertificateRevocationListStatusCode = {\n active: \"active\",\n pending: \"pending\"\n};\nvar UnlimitedSupportedInstanceFamily = {\n t2: \"t2\",\n t3: \"t3\",\n t3a: \"t3a\",\n t4g: \"t4g\"\n};\nvar PartitionLoadFrequency = {\n DAILY: \"daily\",\n MONTHLY: \"monthly\",\n NONE: \"none\",\n WEEKLY: \"weekly\"\n};\nvar EkPubKeyFormat = {\n der: \"der\",\n tpmt: \"tpmt\"\n};\nvar EkPubKeyType = {\n ECC_SEC_P384: \"ecc-sec-p384\",\n RSA_2048: \"rsa-2048\"\n};\nvar IpamComplianceStatus = {\n compliant: \"compliant\",\n ignored: \"ignored\",\n noncompliant: \"noncompliant\",\n unmanaged: \"unmanaged\"\n};\nvar IpamOverlapStatus = {\n ignored: \"ignored\",\n nonoverlapping: \"nonoverlapping\",\n overlapping: \"overlapping\"\n};\nvar IpamAddressHistoryResourceType = {\n eip: \"eip\",\n instance: \"instance\",\n network_interface: \"network-interface\",\n subnet: \"subnet\",\n vpc: \"vpc\"\n};\nvar IpamDiscoveryFailureCode = {\n assume_role_failure: \"assume-role-failure\",\n throttling_failure: \"throttling-failure\",\n unauthorized_failure: \"unauthorized-failure\"\n};\nvar IpamPublicAddressType = {\n AMAZON_OWNED_CONTIG: \"amazon-owned-contig\",\n AMAZON_OWNED_EIP: \"amazon-owned-eip\",\n BYOIP: \"byoip\",\n EC2_PUBLIC_IP: \"ec2-public-ip\",\n SERVICE_MANAGED_BYOIP: \"service-managed-byoip\",\n SERVICE_MANAGED_IP: \"service-managed-ip\"\n};\nvar IpamPublicAddressAssociationStatus = {\n ASSOCIATED: \"associated\",\n DISASSOCIATED: \"disassociated\"\n};\nvar IpamPublicAddressAwsService = {\n AGA: \"global-accelerator\",\n DMS: \"database-migration-service\",\n EC2_LB: \"load-balancer\",\n ECS: \"elastic-container-service\",\n NAT_GATEWAY: \"nat-gateway\",\n OTHER: \"other\",\n RDS: \"relational-database-service\",\n REDSHIFT: \"redshift\",\n S2S_VPN: \"site-to-site-vpn\"\n};\nvar IpamResourceCidrIpSource = {\n amazon: \"amazon\",\n byoip: \"byoip\",\n none: \"none\"\n};\nvar IpamNetworkInterfaceAttachmentStatus = {\n available: \"available\",\n in_use: \"in-use\"\n};\nvar IpamResourceType = {\n eip: \"eip\",\n eni: \"eni\",\n ipv6_pool: \"ipv6-pool\",\n public_ipv4_pool: \"public-ipv4-pool\",\n subnet: \"subnet\",\n vpc: \"vpc\"\n};\nvar IpamManagementState = {\n ignored: \"ignored\",\n managed: \"managed\",\n unmanaged: \"unmanaged\"\n};\nvar RouteServerRouteInstallationStatus = {\n INSTALLED: \"installed\",\n REJECTED: \"rejected\"\n};\nvar RouteServerRouteStatus = {\n IN_FIB: \"in-fib\",\n IN_RIB: \"in-rib\"\n};\nvar VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog\");\nvar ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserTrustProvider && {\n UserTrustProvider: VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog(\n obj.UserTrustProvider\n )\n }\n}), \"ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog\");\nvar GetInstanceTpmEkPubResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyValue && { KeyValue: import_smithy_client.SENSITIVE_STRING }\n}), \"GetInstanceTpmEkPubResultFilterSensitiveLog\");\nvar GetLaunchTemplateDataResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: ResponseLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"GetLaunchTemplateDataResultFilterSensitiveLog\");\nvar GetPasswordDataResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PasswordData && { PasswordData: import_smithy_client.SENSITIVE_STRING }\n}), \"GetPasswordDataResultFilterSensitiveLog\");\n\n// src/commands/ExportVerifiedAccessInstanceClientConfigurationCommand.ts\nvar ExportVerifiedAccessInstanceClientConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportVerifiedAccessInstanceClientConfiguration\", {}).n(\"EC2Client\", \"ExportVerifiedAccessInstanceClientConfigurationCommand\").f(void 0, ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog).ser(se_ExportVerifiedAccessInstanceClientConfigurationCommand).de(de_ExportVerifiedAccessInstanceClientConfigurationCommand).build() {\n static {\n __name(this, \"ExportVerifiedAccessInstanceClientConfigurationCommand\");\n }\n};\n\n// src/commands/GetAllowedImagesSettingsCommand.ts\n\n\n\nvar GetAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAllowedImagesSettings\", {}).n(\"EC2Client\", \"GetAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_GetAllowedImagesSettingsCommand).de(de_GetAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"GetAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/GetAssociatedEnclaveCertificateIamRolesCommand.ts\n\n\n\nvar GetAssociatedEnclaveCertificateIamRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAssociatedEnclaveCertificateIamRoles\", {}).n(\"EC2Client\", \"GetAssociatedEnclaveCertificateIamRolesCommand\").f(void 0, void 0).ser(se_GetAssociatedEnclaveCertificateIamRolesCommand).de(de_GetAssociatedEnclaveCertificateIamRolesCommand).build() {\n static {\n __name(this, \"GetAssociatedEnclaveCertificateIamRolesCommand\");\n }\n};\n\n// src/commands/GetAssociatedIpv6PoolCidrsCommand.ts\n\n\n\nvar GetAssociatedIpv6PoolCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAssociatedIpv6PoolCidrs\", {}).n(\"EC2Client\", \"GetAssociatedIpv6PoolCidrsCommand\").f(void 0, void 0).ser(se_GetAssociatedIpv6PoolCidrsCommand).de(de_GetAssociatedIpv6PoolCidrsCommand).build() {\n static {\n __name(this, \"GetAssociatedIpv6PoolCidrsCommand\");\n }\n};\n\n// src/commands/GetAwsNetworkPerformanceDataCommand.ts\n\n\n\nvar GetAwsNetworkPerformanceDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAwsNetworkPerformanceData\", {}).n(\"EC2Client\", \"GetAwsNetworkPerformanceDataCommand\").f(void 0, void 0).ser(se_GetAwsNetworkPerformanceDataCommand).de(de_GetAwsNetworkPerformanceDataCommand).build() {\n static {\n __name(this, \"GetAwsNetworkPerformanceDataCommand\");\n }\n};\n\n// src/commands/GetCapacityReservationUsageCommand.ts\n\n\n\nvar GetCapacityReservationUsageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetCapacityReservationUsage\", {}).n(\"EC2Client\", \"GetCapacityReservationUsageCommand\").f(void 0, void 0).ser(se_GetCapacityReservationUsageCommand).de(de_GetCapacityReservationUsageCommand).build() {\n static {\n __name(this, \"GetCapacityReservationUsageCommand\");\n }\n};\n\n// src/commands/GetCoipPoolUsageCommand.ts\n\n\n\nvar GetCoipPoolUsageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetCoipPoolUsage\", {}).n(\"EC2Client\", \"GetCoipPoolUsageCommand\").f(void 0, void 0).ser(se_GetCoipPoolUsageCommand).de(de_GetCoipPoolUsageCommand).build() {\n static {\n __name(this, \"GetCoipPoolUsageCommand\");\n }\n};\n\n// src/commands/GetConsoleOutputCommand.ts\n\n\n\nvar GetConsoleOutputCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetConsoleOutput\", {}).n(\"EC2Client\", \"GetConsoleOutputCommand\").f(void 0, void 0).ser(se_GetConsoleOutputCommand).de(de_GetConsoleOutputCommand).build() {\n static {\n __name(this, \"GetConsoleOutputCommand\");\n }\n};\n\n// src/commands/GetConsoleScreenshotCommand.ts\n\n\n\nvar GetConsoleScreenshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetConsoleScreenshot\", {}).n(\"EC2Client\", \"GetConsoleScreenshotCommand\").f(void 0, void 0).ser(se_GetConsoleScreenshotCommand).de(de_GetConsoleScreenshotCommand).build() {\n static {\n __name(this, \"GetConsoleScreenshotCommand\");\n }\n};\n\n// src/commands/GetDeclarativePoliciesReportSummaryCommand.ts\n\n\n\nvar GetDeclarativePoliciesReportSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetDeclarativePoliciesReportSummary\", {}).n(\"EC2Client\", \"GetDeclarativePoliciesReportSummaryCommand\").f(void 0, void 0).ser(se_GetDeclarativePoliciesReportSummaryCommand).de(de_GetDeclarativePoliciesReportSummaryCommand).build() {\n static {\n __name(this, \"GetDeclarativePoliciesReportSummaryCommand\");\n }\n};\n\n// src/commands/GetDefaultCreditSpecificationCommand.ts\n\n\n\nvar GetDefaultCreditSpecificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetDefaultCreditSpecification\", {}).n(\"EC2Client\", \"GetDefaultCreditSpecificationCommand\").f(void 0, void 0).ser(se_GetDefaultCreditSpecificationCommand).de(de_GetDefaultCreditSpecificationCommand).build() {\n static {\n __name(this, \"GetDefaultCreditSpecificationCommand\");\n }\n};\n\n// src/commands/GetEbsDefaultKmsKeyIdCommand.ts\n\n\n\nvar GetEbsDefaultKmsKeyIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetEbsDefaultKmsKeyId\", {}).n(\"EC2Client\", \"GetEbsDefaultKmsKeyIdCommand\").f(void 0, void 0).ser(se_GetEbsDefaultKmsKeyIdCommand).de(de_GetEbsDefaultKmsKeyIdCommand).build() {\n static {\n __name(this, \"GetEbsDefaultKmsKeyIdCommand\");\n }\n};\n\n// src/commands/GetEbsEncryptionByDefaultCommand.ts\n\n\n\nvar GetEbsEncryptionByDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetEbsEncryptionByDefault\", {}).n(\"EC2Client\", \"GetEbsEncryptionByDefaultCommand\").f(void 0, void 0).ser(se_GetEbsEncryptionByDefaultCommand).de(de_GetEbsEncryptionByDefaultCommand).build() {\n static {\n __name(this, \"GetEbsEncryptionByDefaultCommand\");\n }\n};\n\n// src/commands/GetFlowLogsIntegrationTemplateCommand.ts\n\n\n\nvar GetFlowLogsIntegrationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetFlowLogsIntegrationTemplate\", {}).n(\"EC2Client\", \"GetFlowLogsIntegrationTemplateCommand\").f(void 0, void 0).ser(se_GetFlowLogsIntegrationTemplateCommand).de(de_GetFlowLogsIntegrationTemplateCommand).build() {\n static {\n __name(this, \"GetFlowLogsIntegrationTemplateCommand\");\n }\n};\n\n// src/commands/GetGroupsForCapacityReservationCommand.ts\n\n\n\nvar GetGroupsForCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetGroupsForCapacityReservation\", {}).n(\"EC2Client\", \"GetGroupsForCapacityReservationCommand\").f(void 0, void 0).ser(se_GetGroupsForCapacityReservationCommand).de(de_GetGroupsForCapacityReservationCommand).build() {\n static {\n __name(this, \"GetGroupsForCapacityReservationCommand\");\n }\n};\n\n// src/commands/GetHostReservationPurchasePreviewCommand.ts\n\n\n\nvar GetHostReservationPurchasePreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetHostReservationPurchasePreview\", {}).n(\"EC2Client\", \"GetHostReservationPurchasePreviewCommand\").f(void 0, void 0).ser(se_GetHostReservationPurchasePreviewCommand).de(de_GetHostReservationPurchasePreviewCommand).build() {\n static {\n __name(this, \"GetHostReservationPurchasePreviewCommand\");\n }\n};\n\n// src/commands/GetImageBlockPublicAccessStateCommand.ts\n\n\n\nvar GetImageBlockPublicAccessStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetImageBlockPublicAccessState\", {}).n(\"EC2Client\", \"GetImageBlockPublicAccessStateCommand\").f(void 0, void 0).ser(se_GetImageBlockPublicAccessStateCommand).de(de_GetImageBlockPublicAccessStateCommand).build() {\n static {\n __name(this, \"GetImageBlockPublicAccessStateCommand\");\n }\n};\n\n// src/commands/GetInstanceMetadataDefaultsCommand.ts\n\n\n\nvar GetInstanceMetadataDefaultsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceMetadataDefaults\", {}).n(\"EC2Client\", \"GetInstanceMetadataDefaultsCommand\").f(void 0, void 0).ser(se_GetInstanceMetadataDefaultsCommand).de(de_GetInstanceMetadataDefaultsCommand).build() {\n static {\n __name(this, \"GetInstanceMetadataDefaultsCommand\");\n }\n};\n\n// src/commands/GetInstanceTpmEkPubCommand.ts\n\n\n\nvar GetInstanceTpmEkPubCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceTpmEkPub\", {}).n(\"EC2Client\", \"GetInstanceTpmEkPubCommand\").f(void 0, GetInstanceTpmEkPubResultFilterSensitiveLog).ser(se_GetInstanceTpmEkPubCommand).de(de_GetInstanceTpmEkPubCommand).build() {\n static {\n __name(this, \"GetInstanceTpmEkPubCommand\");\n }\n};\n\n// src/commands/GetInstanceTypesFromInstanceRequirementsCommand.ts\n\n\n\nvar GetInstanceTypesFromInstanceRequirementsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceTypesFromInstanceRequirements\", {}).n(\"EC2Client\", \"GetInstanceTypesFromInstanceRequirementsCommand\").f(void 0, void 0).ser(se_GetInstanceTypesFromInstanceRequirementsCommand).de(de_GetInstanceTypesFromInstanceRequirementsCommand).build() {\n static {\n __name(this, \"GetInstanceTypesFromInstanceRequirementsCommand\");\n }\n};\n\n// src/commands/GetInstanceUefiDataCommand.ts\n\n\n\nvar GetInstanceUefiDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceUefiData\", {}).n(\"EC2Client\", \"GetInstanceUefiDataCommand\").f(void 0, void 0).ser(se_GetInstanceUefiDataCommand).de(de_GetInstanceUefiDataCommand).build() {\n static {\n __name(this, \"GetInstanceUefiDataCommand\");\n }\n};\n\n// src/commands/GetIpamAddressHistoryCommand.ts\n\n\n\nvar GetIpamAddressHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamAddressHistory\", {}).n(\"EC2Client\", \"GetIpamAddressHistoryCommand\").f(void 0, void 0).ser(se_GetIpamAddressHistoryCommand).de(de_GetIpamAddressHistoryCommand).build() {\n static {\n __name(this, \"GetIpamAddressHistoryCommand\");\n }\n};\n\n// src/commands/GetIpamDiscoveredAccountsCommand.ts\n\n\n\nvar GetIpamDiscoveredAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamDiscoveredAccounts\", {}).n(\"EC2Client\", \"GetIpamDiscoveredAccountsCommand\").f(void 0, void 0).ser(se_GetIpamDiscoveredAccountsCommand).de(de_GetIpamDiscoveredAccountsCommand).build() {\n static {\n __name(this, \"GetIpamDiscoveredAccountsCommand\");\n }\n};\n\n// src/commands/GetIpamDiscoveredPublicAddressesCommand.ts\n\n\n\nvar GetIpamDiscoveredPublicAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamDiscoveredPublicAddresses\", {}).n(\"EC2Client\", \"GetIpamDiscoveredPublicAddressesCommand\").f(void 0, void 0).ser(se_GetIpamDiscoveredPublicAddressesCommand).de(de_GetIpamDiscoveredPublicAddressesCommand).build() {\n static {\n __name(this, \"GetIpamDiscoveredPublicAddressesCommand\");\n }\n};\n\n// src/commands/GetIpamDiscoveredResourceCidrsCommand.ts\n\n\n\nvar GetIpamDiscoveredResourceCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamDiscoveredResourceCidrs\", {}).n(\"EC2Client\", \"GetIpamDiscoveredResourceCidrsCommand\").f(void 0, void 0).ser(se_GetIpamDiscoveredResourceCidrsCommand).de(de_GetIpamDiscoveredResourceCidrsCommand).build() {\n static {\n __name(this, \"GetIpamDiscoveredResourceCidrsCommand\");\n }\n};\n\n// src/commands/GetIpamPoolAllocationsCommand.ts\n\n\n\nvar GetIpamPoolAllocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamPoolAllocations\", {}).n(\"EC2Client\", \"GetIpamPoolAllocationsCommand\").f(void 0, void 0).ser(se_GetIpamPoolAllocationsCommand).de(de_GetIpamPoolAllocationsCommand).build() {\n static {\n __name(this, \"GetIpamPoolAllocationsCommand\");\n }\n};\n\n// src/commands/GetIpamPoolCidrsCommand.ts\n\n\n\nvar GetIpamPoolCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamPoolCidrs\", {}).n(\"EC2Client\", \"GetIpamPoolCidrsCommand\").f(void 0, void 0).ser(se_GetIpamPoolCidrsCommand).de(de_GetIpamPoolCidrsCommand).build() {\n static {\n __name(this, \"GetIpamPoolCidrsCommand\");\n }\n};\n\n// src/commands/GetIpamResourceCidrsCommand.ts\n\n\n\nvar GetIpamResourceCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamResourceCidrs\", {}).n(\"EC2Client\", \"GetIpamResourceCidrsCommand\").f(void 0, void 0).ser(se_GetIpamResourceCidrsCommand).de(de_GetIpamResourceCidrsCommand).build() {\n static {\n __name(this, \"GetIpamResourceCidrsCommand\");\n }\n};\n\n// src/commands/GetLaunchTemplateDataCommand.ts\n\n\n\nvar GetLaunchTemplateDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetLaunchTemplateData\", {}).n(\"EC2Client\", \"GetLaunchTemplateDataCommand\").f(void 0, GetLaunchTemplateDataResultFilterSensitiveLog).ser(se_GetLaunchTemplateDataCommand).de(de_GetLaunchTemplateDataCommand).build() {\n static {\n __name(this, \"GetLaunchTemplateDataCommand\");\n }\n};\n\n// src/commands/GetManagedPrefixListAssociationsCommand.ts\n\n\n\nvar GetManagedPrefixListAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetManagedPrefixListAssociations\", {}).n(\"EC2Client\", \"GetManagedPrefixListAssociationsCommand\").f(void 0, void 0).ser(se_GetManagedPrefixListAssociationsCommand).de(de_GetManagedPrefixListAssociationsCommand).build() {\n static {\n __name(this, \"GetManagedPrefixListAssociationsCommand\");\n }\n};\n\n// src/commands/GetManagedPrefixListEntriesCommand.ts\n\n\n\nvar GetManagedPrefixListEntriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetManagedPrefixListEntries\", {}).n(\"EC2Client\", \"GetManagedPrefixListEntriesCommand\").f(void 0, void 0).ser(se_GetManagedPrefixListEntriesCommand).de(de_GetManagedPrefixListEntriesCommand).build() {\n static {\n __name(this, \"GetManagedPrefixListEntriesCommand\");\n }\n};\n\n// src/commands/GetNetworkInsightsAccessScopeAnalysisFindingsCommand.ts\n\n\n\nvar GetNetworkInsightsAccessScopeAnalysisFindingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetNetworkInsightsAccessScopeAnalysisFindings\", {}).n(\"EC2Client\", \"GetNetworkInsightsAccessScopeAnalysisFindingsCommand\").f(void 0, void 0).ser(se_GetNetworkInsightsAccessScopeAnalysisFindingsCommand).de(de_GetNetworkInsightsAccessScopeAnalysisFindingsCommand).build() {\n static {\n __name(this, \"GetNetworkInsightsAccessScopeAnalysisFindingsCommand\");\n }\n};\n\n// src/commands/GetNetworkInsightsAccessScopeContentCommand.ts\n\n\n\nvar GetNetworkInsightsAccessScopeContentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetNetworkInsightsAccessScopeContent\", {}).n(\"EC2Client\", \"GetNetworkInsightsAccessScopeContentCommand\").f(void 0, void 0).ser(se_GetNetworkInsightsAccessScopeContentCommand).de(de_GetNetworkInsightsAccessScopeContentCommand).build() {\n static {\n __name(this, \"GetNetworkInsightsAccessScopeContentCommand\");\n }\n};\n\n// src/commands/GetPasswordDataCommand.ts\n\n\n\nvar GetPasswordDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetPasswordData\", {}).n(\"EC2Client\", \"GetPasswordDataCommand\").f(void 0, GetPasswordDataResultFilterSensitiveLog).ser(se_GetPasswordDataCommand).de(de_GetPasswordDataCommand).build() {\n static {\n __name(this, \"GetPasswordDataCommand\");\n }\n};\n\n// src/commands/GetReservedInstancesExchangeQuoteCommand.ts\n\n\n\nvar GetReservedInstancesExchangeQuoteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetReservedInstancesExchangeQuote\", {}).n(\"EC2Client\", \"GetReservedInstancesExchangeQuoteCommand\").f(void 0, void 0).ser(se_GetReservedInstancesExchangeQuoteCommand).de(de_GetReservedInstancesExchangeQuoteCommand).build() {\n static {\n __name(this, \"GetReservedInstancesExchangeQuoteCommand\");\n }\n};\n\n// src/commands/GetRouteServerAssociationsCommand.ts\n\n\n\nvar GetRouteServerAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetRouteServerAssociations\", {}).n(\"EC2Client\", \"GetRouteServerAssociationsCommand\").f(void 0, void 0).ser(se_GetRouteServerAssociationsCommand).de(de_GetRouteServerAssociationsCommand).build() {\n static {\n __name(this, \"GetRouteServerAssociationsCommand\");\n }\n};\n\n// src/commands/GetRouteServerPropagationsCommand.ts\n\n\n\nvar GetRouteServerPropagationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetRouteServerPropagations\", {}).n(\"EC2Client\", \"GetRouteServerPropagationsCommand\").f(void 0, void 0).ser(se_GetRouteServerPropagationsCommand).de(de_GetRouteServerPropagationsCommand).build() {\n static {\n __name(this, \"GetRouteServerPropagationsCommand\");\n }\n};\n\n// src/commands/GetRouteServerRoutingDatabaseCommand.ts\n\n\n\nvar GetRouteServerRoutingDatabaseCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetRouteServerRoutingDatabase\", {}).n(\"EC2Client\", \"GetRouteServerRoutingDatabaseCommand\").f(void 0, void 0).ser(se_GetRouteServerRoutingDatabaseCommand).de(de_GetRouteServerRoutingDatabaseCommand).build() {\n static {\n __name(this, \"GetRouteServerRoutingDatabaseCommand\");\n }\n};\n\n// src/commands/GetSecurityGroupsForVpcCommand.ts\n\n\n\nvar GetSecurityGroupsForVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSecurityGroupsForVpc\", {}).n(\"EC2Client\", \"GetSecurityGroupsForVpcCommand\").f(void 0, void 0).ser(se_GetSecurityGroupsForVpcCommand).de(de_GetSecurityGroupsForVpcCommand).build() {\n static {\n __name(this, \"GetSecurityGroupsForVpcCommand\");\n }\n};\n\n// src/commands/GetSerialConsoleAccessStatusCommand.ts\n\n\n\nvar GetSerialConsoleAccessStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSerialConsoleAccessStatus\", {}).n(\"EC2Client\", \"GetSerialConsoleAccessStatusCommand\").f(void 0, void 0).ser(se_GetSerialConsoleAccessStatusCommand).de(de_GetSerialConsoleAccessStatusCommand).build() {\n static {\n __name(this, \"GetSerialConsoleAccessStatusCommand\");\n }\n};\n\n// src/commands/GetSnapshotBlockPublicAccessStateCommand.ts\n\n\n\nvar GetSnapshotBlockPublicAccessStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSnapshotBlockPublicAccessState\", {}).n(\"EC2Client\", \"GetSnapshotBlockPublicAccessStateCommand\").f(void 0, void 0).ser(se_GetSnapshotBlockPublicAccessStateCommand).de(de_GetSnapshotBlockPublicAccessStateCommand).build() {\n static {\n __name(this, \"GetSnapshotBlockPublicAccessStateCommand\");\n }\n};\n\n// src/commands/GetSpotPlacementScoresCommand.ts\n\n\n\nvar GetSpotPlacementScoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSpotPlacementScores\", {}).n(\"EC2Client\", \"GetSpotPlacementScoresCommand\").f(void 0, void 0).ser(se_GetSpotPlacementScoresCommand).de(de_GetSpotPlacementScoresCommand).build() {\n static {\n __name(this, \"GetSpotPlacementScoresCommand\");\n }\n};\n\n// src/commands/GetSubnetCidrReservationsCommand.ts\n\n\n\nvar GetSubnetCidrReservationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSubnetCidrReservations\", {}).n(\"EC2Client\", \"GetSubnetCidrReservationsCommand\").f(void 0, void 0).ser(se_GetSubnetCidrReservationsCommand).de(de_GetSubnetCidrReservationsCommand).build() {\n static {\n __name(this, \"GetSubnetCidrReservationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayAttachmentPropagationsCommand.ts\n\n\n\nvar GetTransitGatewayAttachmentPropagationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayAttachmentPropagations\", {}).n(\"EC2Client\", \"GetTransitGatewayAttachmentPropagationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayAttachmentPropagationsCommand).de(de_GetTransitGatewayAttachmentPropagationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayAttachmentPropagationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayMulticastDomainAssociationsCommand.ts\n\n\n\nvar GetTransitGatewayMulticastDomainAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayMulticastDomainAssociations\", {}).n(\"EC2Client\", \"GetTransitGatewayMulticastDomainAssociationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayMulticastDomainAssociationsCommand).de(de_GetTransitGatewayMulticastDomainAssociationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayMulticastDomainAssociationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayPolicyTableAssociationsCommand.ts\n\n\n\nvar GetTransitGatewayPolicyTableAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayPolicyTableAssociations\", {}).n(\"EC2Client\", \"GetTransitGatewayPolicyTableAssociationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayPolicyTableAssociationsCommand).de(de_GetTransitGatewayPolicyTableAssociationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayPolicyTableAssociationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayPolicyTableEntriesCommand.ts\n\n\n\nvar GetTransitGatewayPolicyTableEntriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayPolicyTableEntries\", {}).n(\"EC2Client\", \"GetTransitGatewayPolicyTableEntriesCommand\").f(void 0, void 0).ser(se_GetTransitGatewayPolicyTableEntriesCommand).de(de_GetTransitGatewayPolicyTableEntriesCommand).build() {\n static {\n __name(this, \"GetTransitGatewayPolicyTableEntriesCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayPrefixListReferencesCommand.ts\n\n\n\nvar GetTransitGatewayPrefixListReferencesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayPrefixListReferences\", {}).n(\"EC2Client\", \"GetTransitGatewayPrefixListReferencesCommand\").f(void 0, void 0).ser(se_GetTransitGatewayPrefixListReferencesCommand).de(de_GetTransitGatewayPrefixListReferencesCommand).build() {\n static {\n __name(this, \"GetTransitGatewayPrefixListReferencesCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayRouteTableAssociationsCommand.ts\n\n\n\nvar GetTransitGatewayRouteTableAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayRouteTableAssociations\", {}).n(\"EC2Client\", \"GetTransitGatewayRouteTableAssociationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayRouteTableAssociationsCommand).de(de_GetTransitGatewayRouteTableAssociationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayRouteTableAssociationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayRouteTablePropagationsCommand.ts\n\n\n\nvar GetTransitGatewayRouteTablePropagationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayRouteTablePropagations\", {}).n(\"EC2Client\", \"GetTransitGatewayRouteTablePropagationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayRouteTablePropagationsCommand).de(de_GetTransitGatewayRouteTablePropagationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayRouteTablePropagationsCommand\");\n }\n};\n\n// src/commands/GetVerifiedAccessEndpointPolicyCommand.ts\n\n\n\nvar GetVerifiedAccessEndpointPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVerifiedAccessEndpointPolicy\", {}).n(\"EC2Client\", \"GetVerifiedAccessEndpointPolicyCommand\").f(void 0, void 0).ser(se_GetVerifiedAccessEndpointPolicyCommand).de(de_GetVerifiedAccessEndpointPolicyCommand).build() {\n static {\n __name(this, \"GetVerifiedAccessEndpointPolicyCommand\");\n }\n};\n\n// src/commands/GetVerifiedAccessEndpointTargetsCommand.ts\n\n\n\nvar GetVerifiedAccessEndpointTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVerifiedAccessEndpointTargets\", {}).n(\"EC2Client\", \"GetVerifiedAccessEndpointTargetsCommand\").f(void 0, void 0).ser(se_GetVerifiedAccessEndpointTargetsCommand).de(de_GetVerifiedAccessEndpointTargetsCommand).build() {\n static {\n __name(this, \"GetVerifiedAccessEndpointTargetsCommand\");\n }\n};\n\n// src/commands/GetVerifiedAccessGroupPolicyCommand.ts\n\n\n\nvar GetVerifiedAccessGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVerifiedAccessGroupPolicy\", {}).n(\"EC2Client\", \"GetVerifiedAccessGroupPolicyCommand\").f(void 0, void 0).ser(se_GetVerifiedAccessGroupPolicyCommand).de(de_GetVerifiedAccessGroupPolicyCommand).build() {\n static {\n __name(this, \"GetVerifiedAccessGroupPolicyCommand\");\n }\n};\n\n// src/commands/GetVpnConnectionDeviceSampleConfigurationCommand.ts\n\n\n\n\n// src/models/models_7.ts\n\nvar LockMode = {\n compliance: \"compliance\",\n governance: \"governance\"\n};\nvar ModifyAvailabilityZoneOptInStatus = {\n not_opted_in: \"not-opted-in\",\n opted_in: \"opted-in\"\n};\nvar OperationType = {\n add: \"add\",\n remove: \"remove\"\n};\nvar UnsuccessfulInstanceCreditSpecificationErrorCode = {\n INCORRECT_INSTANCE_STATE: \"IncorrectInstanceState\",\n INSTANCE_CREDIT_SPECIFICATION_NOT_SUPPORTED: \"InstanceCreditSpecification.NotSupported\",\n INSTANCE_NOT_FOUND: \"InvalidInstanceID.NotFound\",\n INVALID_INSTANCE_ID: \"InvalidInstanceID.Malformed\"\n};\nvar DefaultInstanceMetadataEndpointState = {\n disabled: \"disabled\",\n enabled: \"enabled\",\n no_preference: \"no-preference\"\n};\nvar MetadataDefaultHttpTokensState = {\n no_preference: \"no-preference\",\n optional: \"optional\",\n required: \"required\"\n};\nvar DefaultInstanceMetadataTagsState = {\n disabled: \"disabled\",\n enabled: \"enabled\",\n no_preference: \"no-preference\"\n};\nvar HostTenancy = {\n dedicated: \"dedicated\",\n default: \"default\",\n host: \"host\"\n};\nvar TargetStorageTier = {\n archive: \"archive\"\n};\nvar TrafficMirrorFilterRuleField = {\n description: \"description\",\n destination_port_range: \"destination-port-range\",\n protocol: \"protocol\",\n source_port_range: \"source-port-range\"\n};\nvar TrafficMirrorSessionField = {\n description: \"description\",\n packet_length: \"packet-length\",\n virtual_network_id: \"virtual-network-id\"\n};\nvar VpcTenancy = {\n default: \"default\"\n};\nvar Status = {\n inClassic: \"InClassic\",\n inVpc: \"InVpc\",\n moveInProgress: \"MoveInProgress\"\n};\nvar VerificationMethod = {\n dns_token: \"dns-token\",\n remarks_x509: \"remarks-x509\"\n};\nvar ReportInstanceReasonCodes = {\n instance_stuck_in_state: \"instance-stuck-in-state\",\n not_accepting_credentials: \"not-accepting-credentials\",\n other: \"other\",\n password_not_available: \"password-not-available\",\n performance_ebs_volume: \"performance-ebs-volume\",\n performance_instance_store: \"performance-instance-store\",\n performance_network: \"performance-network\",\n performance_other: \"performance-other\",\n unresponsive: \"unresponsive\"\n};\nvar ReportStatusType = {\n impaired: \"impaired\",\n ok: \"ok\"\n};\nvar GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnectionDeviceSampleConfiguration && { VpnConnectionDeviceSampleConfiguration: import_smithy_client.SENSITIVE_STRING }\n}), \"GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog\");\nvar ImageDiskContainerFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"ImageDiskContainerFilterSensitiveLog\");\nvar ImportImageRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.DiskContainers && {\n DiskContainers: obj.DiskContainers.map((item) => ImageDiskContainerFilterSensitiveLog(item))\n }\n}), \"ImportImageRequestFilterSensitiveLog\");\nvar ImportImageResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotDetails && {\n SnapshotDetails: obj.SnapshotDetails.map((item) => SnapshotDetailFilterSensitiveLog(item))\n }\n}), \"ImportImageResultFilterSensitiveLog\");\nvar DiskImageDetailFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportManifestUrl && { ImportManifestUrl: import_smithy_client.SENSITIVE_STRING }\n}), \"DiskImageDetailFilterSensitiveLog\");\nvar DiskImageFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDetailFilterSensitiveLog(obj.Image) }\n}), \"DiskImageFilterSensitiveLog\");\nvar UserDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"UserDataFilterSensitiveLog\");\nvar ImportInstanceLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"ImportInstanceLaunchSpecificationFilterSensitiveLog\");\nvar ImportInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && {\n LaunchSpecification: ImportInstanceLaunchSpecificationFilterSensitiveLog(obj.LaunchSpecification)\n },\n ...obj.DiskImages && { DiskImages: obj.DiskImages.map((item) => DiskImageFilterSensitiveLog(item)) }\n}), \"ImportInstanceRequestFilterSensitiveLog\");\nvar ImportInstanceResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ConversionTask && { ConversionTask: ConversionTaskFilterSensitiveLog(obj.ConversionTask) }\n}), \"ImportInstanceResultFilterSensitiveLog\");\nvar SnapshotDiskContainerFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"SnapshotDiskContainerFilterSensitiveLog\");\nvar ImportSnapshotRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.DiskContainer && { DiskContainer: SnapshotDiskContainerFilterSensitiveLog(obj.DiskContainer) }\n}), \"ImportSnapshotRequestFilterSensitiveLog\");\nvar ImportSnapshotResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotTaskDetail && { SnapshotTaskDetail: SnapshotTaskDetailFilterSensitiveLog(obj.SnapshotTaskDetail) }\n}), \"ImportSnapshotResultFilterSensitiveLog\");\nvar ImportVolumeRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDetailFilterSensitiveLog(obj.Image) }\n}), \"ImportVolumeRequestFilterSensitiveLog\");\nvar ImportVolumeResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ConversionTask && { ConversionTask: ConversionTaskFilterSensitiveLog(obj.ConversionTask) }\n}), \"ImportVolumeResultFilterSensitiveLog\");\nvar ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog\");\nvar ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog\");\nvar ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OidcOptions && {\n OidcOptions: ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog(obj.OidcOptions)\n },\n ...obj.NativeApplicationOidcOptions && {\n NativeApplicationOidcOptions: ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog(\n obj.NativeApplicationOidcOptions\n )\n }\n}), \"ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog\");\nvar ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog\");\nvar ModifyVpnConnectionResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnConnectionResultFilterSensitiveLog\");\nvar ModifyVpnConnectionOptionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnConnectionOptionsResultFilterSensitiveLog\");\nvar ModifyVpnTunnelCertificateResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnTunnelCertificateResultFilterSensitiveLog\");\nvar ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PreSharedKey && { PreSharedKey: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog\");\nvar ModifyVpnTunnelOptionsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TunnelOptions && { TunnelOptions: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVpnTunnelOptionsRequestFilterSensitiveLog\");\nvar ModifyVpnTunnelOptionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnTunnelOptionsResultFilterSensitiveLog\");\nvar ReportInstanceStatusRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"ReportInstanceStatusRequestFilterSensitiveLog\");\n\n// src/commands/GetVpnConnectionDeviceSampleConfigurationCommand.ts\nvar GetVpnConnectionDeviceSampleConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVpnConnectionDeviceSampleConfiguration\", {}).n(\"EC2Client\", \"GetVpnConnectionDeviceSampleConfigurationCommand\").f(void 0, GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog).ser(se_GetVpnConnectionDeviceSampleConfigurationCommand).de(de_GetVpnConnectionDeviceSampleConfigurationCommand).build() {\n static {\n __name(this, \"GetVpnConnectionDeviceSampleConfigurationCommand\");\n }\n};\n\n// src/commands/GetVpnConnectionDeviceTypesCommand.ts\n\n\n\nvar GetVpnConnectionDeviceTypesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVpnConnectionDeviceTypes\", {}).n(\"EC2Client\", \"GetVpnConnectionDeviceTypesCommand\").f(void 0, void 0).ser(se_GetVpnConnectionDeviceTypesCommand).de(de_GetVpnConnectionDeviceTypesCommand).build() {\n static {\n __name(this, \"GetVpnConnectionDeviceTypesCommand\");\n }\n};\n\n// src/commands/GetVpnTunnelReplacementStatusCommand.ts\n\n\n\nvar GetVpnTunnelReplacementStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVpnTunnelReplacementStatus\", {}).n(\"EC2Client\", \"GetVpnTunnelReplacementStatusCommand\").f(void 0, void 0).ser(se_GetVpnTunnelReplacementStatusCommand).de(de_GetVpnTunnelReplacementStatusCommand).build() {\n static {\n __name(this, \"GetVpnTunnelReplacementStatusCommand\");\n }\n};\n\n// src/commands/ImportClientVpnClientCertificateRevocationListCommand.ts\n\n\n\nvar ImportClientVpnClientCertificateRevocationListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportClientVpnClientCertificateRevocationList\", {}).n(\"EC2Client\", \"ImportClientVpnClientCertificateRevocationListCommand\").f(void 0, void 0).ser(se_ImportClientVpnClientCertificateRevocationListCommand).de(de_ImportClientVpnClientCertificateRevocationListCommand).build() {\n static {\n __name(this, \"ImportClientVpnClientCertificateRevocationListCommand\");\n }\n};\n\n// src/commands/ImportImageCommand.ts\n\n\n\nvar ImportImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportImage\", {}).n(\"EC2Client\", \"ImportImageCommand\").f(ImportImageRequestFilterSensitiveLog, ImportImageResultFilterSensitiveLog).ser(se_ImportImageCommand).de(de_ImportImageCommand).build() {\n static {\n __name(this, \"ImportImageCommand\");\n }\n};\n\n// src/commands/ImportInstanceCommand.ts\n\n\n\nvar ImportInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportInstance\", {}).n(\"EC2Client\", \"ImportInstanceCommand\").f(ImportInstanceRequestFilterSensitiveLog, ImportInstanceResultFilterSensitiveLog).ser(se_ImportInstanceCommand).de(de_ImportInstanceCommand).build() {\n static {\n __name(this, \"ImportInstanceCommand\");\n }\n};\n\n// src/commands/ImportKeyPairCommand.ts\n\n\n\nvar ImportKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportKeyPair\", {}).n(\"EC2Client\", \"ImportKeyPairCommand\").f(void 0, void 0).ser(se_ImportKeyPairCommand).de(de_ImportKeyPairCommand).build() {\n static {\n __name(this, \"ImportKeyPairCommand\");\n }\n};\n\n// src/commands/ImportSnapshotCommand.ts\n\n\n\nvar ImportSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportSnapshot\", {}).n(\"EC2Client\", \"ImportSnapshotCommand\").f(ImportSnapshotRequestFilterSensitiveLog, ImportSnapshotResultFilterSensitiveLog).ser(se_ImportSnapshotCommand).de(de_ImportSnapshotCommand).build() {\n static {\n __name(this, \"ImportSnapshotCommand\");\n }\n};\n\n// src/commands/ImportVolumeCommand.ts\n\n\n\nvar ImportVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportVolume\", {}).n(\"EC2Client\", \"ImportVolumeCommand\").f(ImportVolumeRequestFilterSensitiveLog, ImportVolumeResultFilterSensitiveLog).ser(se_ImportVolumeCommand).de(de_ImportVolumeCommand).build() {\n static {\n __name(this, \"ImportVolumeCommand\");\n }\n};\n\n// src/commands/ListImagesInRecycleBinCommand.ts\n\n\n\nvar ListImagesInRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ListImagesInRecycleBin\", {}).n(\"EC2Client\", \"ListImagesInRecycleBinCommand\").f(void 0, void 0).ser(se_ListImagesInRecycleBinCommand).de(de_ListImagesInRecycleBinCommand).build() {\n static {\n __name(this, \"ListImagesInRecycleBinCommand\");\n }\n};\n\n// src/commands/ListSnapshotsInRecycleBinCommand.ts\n\n\n\nvar ListSnapshotsInRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ListSnapshotsInRecycleBin\", {}).n(\"EC2Client\", \"ListSnapshotsInRecycleBinCommand\").f(void 0, void 0).ser(se_ListSnapshotsInRecycleBinCommand).de(de_ListSnapshotsInRecycleBinCommand).build() {\n static {\n __name(this, \"ListSnapshotsInRecycleBinCommand\");\n }\n};\n\n// src/commands/LockSnapshotCommand.ts\n\n\n\nvar LockSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"LockSnapshot\", {}).n(\"EC2Client\", \"LockSnapshotCommand\").f(void 0, void 0).ser(se_LockSnapshotCommand).de(de_LockSnapshotCommand).build() {\n static {\n __name(this, \"LockSnapshotCommand\");\n }\n};\n\n// src/commands/ModifyAddressAttributeCommand.ts\n\n\n\nvar ModifyAddressAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyAddressAttribute\", {}).n(\"EC2Client\", \"ModifyAddressAttributeCommand\").f(void 0, void 0).ser(se_ModifyAddressAttributeCommand).de(de_ModifyAddressAttributeCommand).build() {\n static {\n __name(this, \"ModifyAddressAttributeCommand\");\n }\n};\n\n// src/commands/ModifyAvailabilityZoneGroupCommand.ts\n\n\n\nvar ModifyAvailabilityZoneGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyAvailabilityZoneGroup\", {}).n(\"EC2Client\", \"ModifyAvailabilityZoneGroupCommand\").f(void 0, void 0).ser(se_ModifyAvailabilityZoneGroupCommand).de(de_ModifyAvailabilityZoneGroupCommand).build() {\n static {\n __name(this, \"ModifyAvailabilityZoneGroupCommand\");\n }\n};\n\n// src/commands/ModifyCapacityReservationCommand.ts\n\n\n\nvar ModifyCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyCapacityReservation\", {}).n(\"EC2Client\", \"ModifyCapacityReservationCommand\").f(void 0, void 0).ser(se_ModifyCapacityReservationCommand).de(de_ModifyCapacityReservationCommand).build() {\n static {\n __name(this, \"ModifyCapacityReservationCommand\");\n }\n};\n\n// src/commands/ModifyCapacityReservationFleetCommand.ts\n\n\n\nvar ModifyCapacityReservationFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyCapacityReservationFleet\", {}).n(\"EC2Client\", \"ModifyCapacityReservationFleetCommand\").f(void 0, void 0).ser(se_ModifyCapacityReservationFleetCommand).de(de_ModifyCapacityReservationFleetCommand).build() {\n static {\n __name(this, \"ModifyCapacityReservationFleetCommand\");\n }\n};\n\n// src/commands/ModifyClientVpnEndpointCommand.ts\n\n\n\nvar ModifyClientVpnEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyClientVpnEndpoint\", {}).n(\"EC2Client\", \"ModifyClientVpnEndpointCommand\").f(void 0, void 0).ser(se_ModifyClientVpnEndpointCommand).de(de_ModifyClientVpnEndpointCommand).build() {\n static {\n __name(this, \"ModifyClientVpnEndpointCommand\");\n }\n};\n\n// src/commands/ModifyDefaultCreditSpecificationCommand.ts\n\n\n\nvar ModifyDefaultCreditSpecificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyDefaultCreditSpecification\", {}).n(\"EC2Client\", \"ModifyDefaultCreditSpecificationCommand\").f(void 0, void 0).ser(se_ModifyDefaultCreditSpecificationCommand).de(de_ModifyDefaultCreditSpecificationCommand).build() {\n static {\n __name(this, \"ModifyDefaultCreditSpecificationCommand\");\n }\n};\n\n// src/commands/ModifyEbsDefaultKmsKeyIdCommand.ts\n\n\n\nvar ModifyEbsDefaultKmsKeyIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyEbsDefaultKmsKeyId\", {}).n(\"EC2Client\", \"ModifyEbsDefaultKmsKeyIdCommand\").f(void 0, void 0).ser(se_ModifyEbsDefaultKmsKeyIdCommand).de(de_ModifyEbsDefaultKmsKeyIdCommand).build() {\n static {\n __name(this, \"ModifyEbsDefaultKmsKeyIdCommand\");\n }\n};\n\n// src/commands/ModifyFleetCommand.ts\n\n\n\nvar ModifyFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyFleet\", {}).n(\"EC2Client\", \"ModifyFleetCommand\").f(void 0, void 0).ser(se_ModifyFleetCommand).de(de_ModifyFleetCommand).build() {\n static {\n __name(this, \"ModifyFleetCommand\");\n }\n};\n\n// src/commands/ModifyFpgaImageAttributeCommand.ts\n\n\n\nvar ModifyFpgaImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyFpgaImageAttribute\", {}).n(\"EC2Client\", \"ModifyFpgaImageAttributeCommand\").f(void 0, void 0).ser(se_ModifyFpgaImageAttributeCommand).de(de_ModifyFpgaImageAttributeCommand).build() {\n static {\n __name(this, \"ModifyFpgaImageAttributeCommand\");\n }\n};\n\n// src/commands/ModifyHostsCommand.ts\n\n\n\nvar ModifyHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyHosts\", {}).n(\"EC2Client\", \"ModifyHostsCommand\").f(void 0, void 0).ser(se_ModifyHostsCommand).de(de_ModifyHostsCommand).build() {\n static {\n __name(this, \"ModifyHostsCommand\");\n }\n};\n\n// src/commands/ModifyIdentityIdFormatCommand.ts\n\n\n\nvar ModifyIdentityIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIdentityIdFormat\", {}).n(\"EC2Client\", \"ModifyIdentityIdFormatCommand\").f(void 0, void 0).ser(se_ModifyIdentityIdFormatCommand).de(de_ModifyIdentityIdFormatCommand).build() {\n static {\n __name(this, \"ModifyIdentityIdFormatCommand\");\n }\n};\n\n// src/commands/ModifyIdFormatCommand.ts\n\n\n\nvar ModifyIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIdFormat\", {}).n(\"EC2Client\", \"ModifyIdFormatCommand\").f(void 0, void 0).ser(se_ModifyIdFormatCommand).de(de_ModifyIdFormatCommand).build() {\n static {\n __name(this, \"ModifyIdFormatCommand\");\n }\n};\n\n// src/commands/ModifyImageAttributeCommand.ts\n\n\n\nvar ModifyImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyImageAttribute\", {}).n(\"EC2Client\", \"ModifyImageAttributeCommand\").f(void 0, void 0).ser(se_ModifyImageAttributeCommand).de(de_ModifyImageAttributeCommand).build() {\n static {\n __name(this, \"ModifyImageAttributeCommand\");\n }\n};\n\n// src/commands/ModifyInstanceAttributeCommand.ts\n\n\n\nvar ModifyInstanceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceAttribute\", {}).n(\"EC2Client\", \"ModifyInstanceAttributeCommand\").f(void 0, void 0).ser(se_ModifyInstanceAttributeCommand).de(de_ModifyInstanceAttributeCommand).build() {\n static {\n __name(this, \"ModifyInstanceAttributeCommand\");\n }\n};\n\n// src/commands/ModifyInstanceCapacityReservationAttributesCommand.ts\n\n\n\nvar ModifyInstanceCapacityReservationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceCapacityReservationAttributes\", {}).n(\"EC2Client\", \"ModifyInstanceCapacityReservationAttributesCommand\").f(void 0, void 0).ser(se_ModifyInstanceCapacityReservationAttributesCommand).de(de_ModifyInstanceCapacityReservationAttributesCommand).build() {\n static {\n __name(this, \"ModifyInstanceCapacityReservationAttributesCommand\");\n }\n};\n\n// src/commands/ModifyInstanceCpuOptionsCommand.ts\n\n\n\nvar ModifyInstanceCpuOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceCpuOptions\", {}).n(\"EC2Client\", \"ModifyInstanceCpuOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceCpuOptionsCommand).de(de_ModifyInstanceCpuOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceCpuOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceCreditSpecificationCommand.ts\n\n\n\nvar ModifyInstanceCreditSpecificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceCreditSpecification\", {}).n(\"EC2Client\", \"ModifyInstanceCreditSpecificationCommand\").f(void 0, void 0).ser(se_ModifyInstanceCreditSpecificationCommand).de(de_ModifyInstanceCreditSpecificationCommand).build() {\n static {\n __name(this, \"ModifyInstanceCreditSpecificationCommand\");\n }\n};\n\n// src/commands/ModifyInstanceEventStartTimeCommand.ts\n\n\n\nvar ModifyInstanceEventStartTimeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceEventStartTime\", {}).n(\"EC2Client\", \"ModifyInstanceEventStartTimeCommand\").f(void 0, void 0).ser(se_ModifyInstanceEventStartTimeCommand).de(de_ModifyInstanceEventStartTimeCommand).build() {\n static {\n __name(this, \"ModifyInstanceEventStartTimeCommand\");\n }\n};\n\n// src/commands/ModifyInstanceEventWindowCommand.ts\n\n\n\nvar ModifyInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceEventWindow\", {}).n(\"EC2Client\", \"ModifyInstanceEventWindowCommand\").f(void 0, void 0).ser(se_ModifyInstanceEventWindowCommand).de(de_ModifyInstanceEventWindowCommand).build() {\n static {\n __name(this, \"ModifyInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/ModifyInstanceMaintenanceOptionsCommand.ts\n\n\n\nvar ModifyInstanceMaintenanceOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceMaintenanceOptions\", {}).n(\"EC2Client\", \"ModifyInstanceMaintenanceOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceMaintenanceOptionsCommand).de(de_ModifyInstanceMaintenanceOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceMaintenanceOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceMetadataDefaultsCommand.ts\n\n\n\nvar ModifyInstanceMetadataDefaultsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceMetadataDefaults\", {}).n(\"EC2Client\", \"ModifyInstanceMetadataDefaultsCommand\").f(void 0, void 0).ser(se_ModifyInstanceMetadataDefaultsCommand).de(de_ModifyInstanceMetadataDefaultsCommand).build() {\n static {\n __name(this, \"ModifyInstanceMetadataDefaultsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceMetadataOptionsCommand.ts\n\n\n\nvar ModifyInstanceMetadataOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceMetadataOptions\", {}).n(\"EC2Client\", \"ModifyInstanceMetadataOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceMetadataOptionsCommand).de(de_ModifyInstanceMetadataOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceMetadataOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceNetworkPerformanceOptionsCommand.ts\n\n\n\nvar ModifyInstanceNetworkPerformanceOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceNetworkPerformanceOptions\", {}).n(\"EC2Client\", \"ModifyInstanceNetworkPerformanceOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceNetworkPerformanceOptionsCommand).de(de_ModifyInstanceNetworkPerformanceOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceNetworkPerformanceOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstancePlacementCommand.ts\n\n\n\nvar ModifyInstancePlacementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstancePlacement\", {}).n(\"EC2Client\", \"ModifyInstancePlacementCommand\").f(void 0, void 0).ser(se_ModifyInstancePlacementCommand).de(de_ModifyInstancePlacementCommand).build() {\n static {\n __name(this, \"ModifyInstancePlacementCommand\");\n }\n};\n\n// src/commands/ModifyIpamCommand.ts\n\n\n\nvar ModifyIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpam\", {}).n(\"EC2Client\", \"ModifyIpamCommand\").f(void 0, void 0).ser(se_ModifyIpamCommand).de(de_ModifyIpamCommand).build() {\n static {\n __name(this, \"ModifyIpamCommand\");\n }\n};\n\n// src/commands/ModifyIpamPoolCommand.ts\n\n\n\nvar ModifyIpamPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamPool\", {}).n(\"EC2Client\", \"ModifyIpamPoolCommand\").f(void 0, void 0).ser(se_ModifyIpamPoolCommand).de(de_ModifyIpamPoolCommand).build() {\n static {\n __name(this, \"ModifyIpamPoolCommand\");\n }\n};\n\n// src/commands/ModifyIpamResourceCidrCommand.ts\n\n\n\nvar ModifyIpamResourceCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamResourceCidr\", {}).n(\"EC2Client\", \"ModifyIpamResourceCidrCommand\").f(void 0, void 0).ser(se_ModifyIpamResourceCidrCommand).de(de_ModifyIpamResourceCidrCommand).build() {\n static {\n __name(this, \"ModifyIpamResourceCidrCommand\");\n }\n};\n\n// src/commands/ModifyIpamResourceDiscoveryCommand.ts\n\n\n\nvar ModifyIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamResourceDiscovery\", {}).n(\"EC2Client\", \"ModifyIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_ModifyIpamResourceDiscoveryCommand).de(de_ModifyIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"ModifyIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/ModifyIpamScopeCommand.ts\n\n\n\nvar ModifyIpamScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamScope\", {}).n(\"EC2Client\", \"ModifyIpamScopeCommand\").f(void 0, void 0).ser(se_ModifyIpamScopeCommand).de(de_ModifyIpamScopeCommand).build() {\n static {\n __name(this, \"ModifyIpamScopeCommand\");\n }\n};\n\n// src/commands/ModifyLaunchTemplateCommand.ts\n\n\n\nvar ModifyLaunchTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyLaunchTemplate\", {}).n(\"EC2Client\", \"ModifyLaunchTemplateCommand\").f(void 0, void 0).ser(se_ModifyLaunchTemplateCommand).de(de_ModifyLaunchTemplateCommand).build() {\n static {\n __name(this, \"ModifyLaunchTemplateCommand\");\n }\n};\n\n// src/commands/ModifyLocalGatewayRouteCommand.ts\n\n\n\nvar ModifyLocalGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyLocalGatewayRoute\", {}).n(\"EC2Client\", \"ModifyLocalGatewayRouteCommand\").f(void 0, void 0).ser(se_ModifyLocalGatewayRouteCommand).de(de_ModifyLocalGatewayRouteCommand).build() {\n static {\n __name(this, \"ModifyLocalGatewayRouteCommand\");\n }\n};\n\n// src/commands/ModifyManagedPrefixListCommand.ts\n\n\n\nvar ModifyManagedPrefixListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyManagedPrefixList\", {}).n(\"EC2Client\", \"ModifyManagedPrefixListCommand\").f(void 0, void 0).ser(se_ModifyManagedPrefixListCommand).de(de_ModifyManagedPrefixListCommand).build() {\n static {\n __name(this, \"ModifyManagedPrefixListCommand\");\n }\n};\n\n// src/commands/ModifyNetworkInterfaceAttributeCommand.ts\n\n\n\nvar ModifyNetworkInterfaceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyNetworkInterfaceAttribute\", {}).n(\"EC2Client\", \"ModifyNetworkInterfaceAttributeCommand\").f(void 0, void 0).ser(se_ModifyNetworkInterfaceAttributeCommand).de(de_ModifyNetworkInterfaceAttributeCommand).build() {\n static {\n __name(this, \"ModifyNetworkInterfaceAttributeCommand\");\n }\n};\n\n// src/commands/ModifyPrivateDnsNameOptionsCommand.ts\n\n\n\nvar ModifyPrivateDnsNameOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyPrivateDnsNameOptions\", {}).n(\"EC2Client\", \"ModifyPrivateDnsNameOptionsCommand\").f(void 0, void 0).ser(se_ModifyPrivateDnsNameOptionsCommand).de(de_ModifyPrivateDnsNameOptionsCommand).build() {\n static {\n __name(this, \"ModifyPrivateDnsNameOptionsCommand\");\n }\n};\n\n// src/commands/ModifyReservedInstancesCommand.ts\n\n\n\nvar ModifyReservedInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyReservedInstances\", {}).n(\"EC2Client\", \"ModifyReservedInstancesCommand\").f(void 0, void 0).ser(se_ModifyReservedInstancesCommand).de(de_ModifyReservedInstancesCommand).build() {\n static {\n __name(this, \"ModifyReservedInstancesCommand\");\n }\n};\n\n// src/commands/ModifyRouteServerCommand.ts\n\n\n\nvar ModifyRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyRouteServer\", {}).n(\"EC2Client\", \"ModifyRouteServerCommand\").f(void 0, void 0).ser(se_ModifyRouteServerCommand).de(de_ModifyRouteServerCommand).build() {\n static {\n __name(this, \"ModifyRouteServerCommand\");\n }\n};\n\n// src/commands/ModifySecurityGroupRulesCommand.ts\n\n\n\nvar ModifySecurityGroupRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySecurityGroupRules\", {}).n(\"EC2Client\", \"ModifySecurityGroupRulesCommand\").f(void 0, void 0).ser(se_ModifySecurityGroupRulesCommand).de(de_ModifySecurityGroupRulesCommand).build() {\n static {\n __name(this, \"ModifySecurityGroupRulesCommand\");\n }\n};\n\n// src/commands/ModifySnapshotAttributeCommand.ts\n\n\n\nvar ModifySnapshotAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySnapshotAttribute\", {}).n(\"EC2Client\", \"ModifySnapshotAttributeCommand\").f(void 0, void 0).ser(se_ModifySnapshotAttributeCommand).de(de_ModifySnapshotAttributeCommand).build() {\n static {\n __name(this, \"ModifySnapshotAttributeCommand\");\n }\n};\n\n// src/commands/ModifySnapshotTierCommand.ts\n\n\n\nvar ModifySnapshotTierCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySnapshotTier\", {}).n(\"EC2Client\", \"ModifySnapshotTierCommand\").f(void 0, void 0).ser(se_ModifySnapshotTierCommand).de(de_ModifySnapshotTierCommand).build() {\n static {\n __name(this, \"ModifySnapshotTierCommand\");\n }\n};\n\n// src/commands/ModifySpotFleetRequestCommand.ts\n\n\n\nvar ModifySpotFleetRequestCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySpotFleetRequest\", {}).n(\"EC2Client\", \"ModifySpotFleetRequestCommand\").f(void 0, void 0).ser(se_ModifySpotFleetRequestCommand).de(de_ModifySpotFleetRequestCommand).build() {\n static {\n __name(this, \"ModifySpotFleetRequestCommand\");\n }\n};\n\n// src/commands/ModifySubnetAttributeCommand.ts\n\n\n\nvar ModifySubnetAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySubnetAttribute\", {}).n(\"EC2Client\", \"ModifySubnetAttributeCommand\").f(void 0, void 0).ser(se_ModifySubnetAttributeCommand).de(de_ModifySubnetAttributeCommand).build() {\n static {\n __name(this, \"ModifySubnetAttributeCommand\");\n }\n};\n\n// src/commands/ModifyTrafficMirrorFilterNetworkServicesCommand.ts\n\n\n\nvar ModifyTrafficMirrorFilterNetworkServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTrafficMirrorFilterNetworkServices\", {}).n(\"EC2Client\", \"ModifyTrafficMirrorFilterNetworkServicesCommand\").f(void 0, void 0).ser(se_ModifyTrafficMirrorFilterNetworkServicesCommand).de(de_ModifyTrafficMirrorFilterNetworkServicesCommand).build() {\n static {\n __name(this, \"ModifyTrafficMirrorFilterNetworkServicesCommand\");\n }\n};\n\n// src/commands/ModifyTrafficMirrorFilterRuleCommand.ts\n\n\n\nvar ModifyTrafficMirrorFilterRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTrafficMirrorFilterRule\", {}).n(\"EC2Client\", \"ModifyTrafficMirrorFilterRuleCommand\").f(void 0, void 0).ser(se_ModifyTrafficMirrorFilterRuleCommand).de(de_ModifyTrafficMirrorFilterRuleCommand).build() {\n static {\n __name(this, \"ModifyTrafficMirrorFilterRuleCommand\");\n }\n};\n\n// src/commands/ModifyTrafficMirrorSessionCommand.ts\n\n\n\nvar ModifyTrafficMirrorSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTrafficMirrorSession\", {}).n(\"EC2Client\", \"ModifyTrafficMirrorSessionCommand\").f(void 0, void 0).ser(se_ModifyTrafficMirrorSessionCommand).de(de_ModifyTrafficMirrorSessionCommand).build() {\n static {\n __name(this, \"ModifyTrafficMirrorSessionCommand\");\n }\n};\n\n// src/commands/ModifyTransitGatewayCommand.ts\n\n\n\nvar ModifyTransitGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTransitGateway\", {}).n(\"EC2Client\", \"ModifyTransitGatewayCommand\").f(void 0, void 0).ser(se_ModifyTransitGatewayCommand).de(de_ModifyTransitGatewayCommand).build() {\n static {\n __name(this, \"ModifyTransitGatewayCommand\");\n }\n};\n\n// src/commands/ModifyTransitGatewayPrefixListReferenceCommand.ts\n\n\n\nvar ModifyTransitGatewayPrefixListReferenceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTransitGatewayPrefixListReference\", {}).n(\"EC2Client\", \"ModifyTransitGatewayPrefixListReferenceCommand\").f(void 0, void 0).ser(se_ModifyTransitGatewayPrefixListReferenceCommand).de(de_ModifyTransitGatewayPrefixListReferenceCommand).build() {\n static {\n __name(this, \"ModifyTransitGatewayPrefixListReferenceCommand\");\n }\n};\n\n// src/commands/ModifyTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar ModifyTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"ModifyTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_ModifyTransitGatewayVpcAttachmentCommand).de(de_ModifyTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"ModifyTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessEndpointCommand.ts\n\n\n\nvar ModifyVerifiedAccessEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessEndpoint\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessEndpointCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessEndpointCommand).de(de_ModifyVerifiedAccessEndpointCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessEndpointCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessEndpointPolicyCommand.ts\n\n\n\nvar ModifyVerifiedAccessEndpointPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessEndpointPolicy\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessEndpointPolicyCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessEndpointPolicyCommand).de(de_ModifyVerifiedAccessEndpointPolicyCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessEndpointPolicyCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessGroupCommand.ts\n\n\n\nvar ModifyVerifiedAccessGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessGroup\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessGroupCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessGroupCommand).de(de_ModifyVerifiedAccessGroupCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessGroupCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessGroupPolicyCommand.ts\n\n\n\nvar ModifyVerifiedAccessGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessGroupPolicy\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessGroupPolicyCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessGroupPolicyCommand).de(de_ModifyVerifiedAccessGroupPolicyCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessGroupPolicyCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessInstanceCommand.ts\n\n\n\nvar ModifyVerifiedAccessInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessInstance\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessInstanceCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessInstanceCommand).de(de_ModifyVerifiedAccessInstanceCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessInstanceCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessInstanceLoggingConfigurationCommand.ts\n\n\n\nvar ModifyVerifiedAccessInstanceLoggingConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessInstanceLoggingConfiguration\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessInstanceLoggingConfigurationCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessInstanceLoggingConfigurationCommand).de(de_ModifyVerifiedAccessInstanceLoggingConfigurationCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessInstanceLoggingConfigurationCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar ModifyVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessTrustProviderCommand\").f(\n ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog\n).ser(se_ModifyVerifiedAccessTrustProviderCommand).de(de_ModifyVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/ModifyVolumeAttributeCommand.ts\n\n\n\nvar ModifyVolumeAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVolumeAttribute\", {}).n(\"EC2Client\", \"ModifyVolumeAttributeCommand\").f(void 0, void 0).ser(se_ModifyVolumeAttributeCommand).de(de_ModifyVolumeAttributeCommand).build() {\n static {\n __name(this, \"ModifyVolumeAttributeCommand\");\n }\n};\n\n// src/commands/ModifyVolumeCommand.ts\n\n\n\nvar ModifyVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVolume\", {}).n(\"EC2Client\", \"ModifyVolumeCommand\").f(void 0, void 0).ser(se_ModifyVolumeCommand).de(de_ModifyVolumeCommand).build() {\n static {\n __name(this, \"ModifyVolumeCommand\");\n }\n};\n\n// src/commands/ModifyVpcAttributeCommand.ts\n\n\n\nvar ModifyVpcAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcAttribute\", {}).n(\"EC2Client\", \"ModifyVpcAttributeCommand\").f(void 0, void 0).ser(se_ModifyVpcAttributeCommand).de(de_ModifyVpcAttributeCommand).build() {\n static {\n __name(this, \"ModifyVpcAttributeCommand\");\n }\n};\n\n// src/commands/ModifyVpcBlockPublicAccessExclusionCommand.ts\n\n\n\nvar ModifyVpcBlockPublicAccessExclusionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcBlockPublicAccessExclusion\", {}).n(\"EC2Client\", \"ModifyVpcBlockPublicAccessExclusionCommand\").f(void 0, void 0).ser(se_ModifyVpcBlockPublicAccessExclusionCommand).de(de_ModifyVpcBlockPublicAccessExclusionCommand).build() {\n static {\n __name(this, \"ModifyVpcBlockPublicAccessExclusionCommand\");\n }\n};\n\n// src/commands/ModifyVpcBlockPublicAccessOptionsCommand.ts\n\n\n\nvar ModifyVpcBlockPublicAccessOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcBlockPublicAccessOptions\", {}).n(\"EC2Client\", \"ModifyVpcBlockPublicAccessOptionsCommand\").f(void 0, void 0).ser(se_ModifyVpcBlockPublicAccessOptionsCommand).de(de_ModifyVpcBlockPublicAccessOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpcBlockPublicAccessOptionsCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointCommand.ts\n\n\n\nvar ModifyVpcEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpoint\", {}).n(\"EC2Client\", \"ModifyVpcEndpointCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointCommand).de(de_ModifyVpcEndpointCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointConnectionNotificationCommand.ts\n\n\n\nvar ModifyVpcEndpointConnectionNotificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointConnectionNotification\", {}).n(\"EC2Client\", \"ModifyVpcEndpointConnectionNotificationCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointConnectionNotificationCommand).de(de_ModifyVpcEndpointConnectionNotificationCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointConnectionNotificationCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointServiceConfigurationCommand.ts\n\n\n\nvar ModifyVpcEndpointServiceConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointServiceConfiguration\", {}).n(\"EC2Client\", \"ModifyVpcEndpointServiceConfigurationCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointServiceConfigurationCommand).de(de_ModifyVpcEndpointServiceConfigurationCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointServiceConfigurationCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointServicePayerResponsibilityCommand.ts\n\n\n\nvar ModifyVpcEndpointServicePayerResponsibilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointServicePayerResponsibility\", {}).n(\"EC2Client\", \"ModifyVpcEndpointServicePayerResponsibilityCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointServicePayerResponsibilityCommand).de(de_ModifyVpcEndpointServicePayerResponsibilityCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointServicePayerResponsibilityCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointServicePermissionsCommand.ts\n\n\n\nvar ModifyVpcEndpointServicePermissionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointServicePermissions\", {}).n(\"EC2Client\", \"ModifyVpcEndpointServicePermissionsCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointServicePermissionsCommand).de(de_ModifyVpcEndpointServicePermissionsCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointServicePermissionsCommand\");\n }\n};\n\n// src/commands/ModifyVpcPeeringConnectionOptionsCommand.ts\n\n\n\nvar ModifyVpcPeeringConnectionOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcPeeringConnectionOptions\", {}).n(\"EC2Client\", \"ModifyVpcPeeringConnectionOptionsCommand\").f(void 0, void 0).ser(se_ModifyVpcPeeringConnectionOptionsCommand).de(de_ModifyVpcPeeringConnectionOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpcPeeringConnectionOptionsCommand\");\n }\n};\n\n// src/commands/ModifyVpcTenancyCommand.ts\n\n\n\nvar ModifyVpcTenancyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcTenancy\", {}).n(\"EC2Client\", \"ModifyVpcTenancyCommand\").f(void 0, void 0).ser(se_ModifyVpcTenancyCommand).de(de_ModifyVpcTenancyCommand).build() {\n static {\n __name(this, \"ModifyVpcTenancyCommand\");\n }\n};\n\n// src/commands/ModifyVpnConnectionCommand.ts\n\n\n\nvar ModifyVpnConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnConnection\", {}).n(\"EC2Client\", \"ModifyVpnConnectionCommand\").f(void 0, ModifyVpnConnectionResultFilterSensitiveLog).ser(se_ModifyVpnConnectionCommand).de(de_ModifyVpnConnectionCommand).build() {\n static {\n __name(this, \"ModifyVpnConnectionCommand\");\n }\n};\n\n// src/commands/ModifyVpnConnectionOptionsCommand.ts\n\n\n\nvar ModifyVpnConnectionOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnConnectionOptions\", {}).n(\"EC2Client\", \"ModifyVpnConnectionOptionsCommand\").f(void 0, ModifyVpnConnectionOptionsResultFilterSensitiveLog).ser(se_ModifyVpnConnectionOptionsCommand).de(de_ModifyVpnConnectionOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpnConnectionOptionsCommand\");\n }\n};\n\n// src/commands/ModifyVpnTunnelCertificateCommand.ts\n\n\n\nvar ModifyVpnTunnelCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnTunnelCertificate\", {}).n(\"EC2Client\", \"ModifyVpnTunnelCertificateCommand\").f(void 0, ModifyVpnTunnelCertificateResultFilterSensitiveLog).ser(se_ModifyVpnTunnelCertificateCommand).de(de_ModifyVpnTunnelCertificateCommand).build() {\n static {\n __name(this, \"ModifyVpnTunnelCertificateCommand\");\n }\n};\n\n// src/commands/ModifyVpnTunnelOptionsCommand.ts\n\n\n\nvar ModifyVpnTunnelOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnTunnelOptions\", {}).n(\"EC2Client\", \"ModifyVpnTunnelOptionsCommand\").f(ModifyVpnTunnelOptionsRequestFilterSensitiveLog, ModifyVpnTunnelOptionsResultFilterSensitiveLog).ser(se_ModifyVpnTunnelOptionsCommand).de(de_ModifyVpnTunnelOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpnTunnelOptionsCommand\");\n }\n};\n\n// src/commands/MonitorInstancesCommand.ts\n\n\n\nvar MonitorInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MonitorInstances\", {}).n(\"EC2Client\", \"MonitorInstancesCommand\").f(void 0, void 0).ser(se_MonitorInstancesCommand).de(de_MonitorInstancesCommand).build() {\n static {\n __name(this, \"MonitorInstancesCommand\");\n }\n};\n\n// src/commands/MoveAddressToVpcCommand.ts\n\n\n\nvar MoveAddressToVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MoveAddressToVpc\", {}).n(\"EC2Client\", \"MoveAddressToVpcCommand\").f(void 0, void 0).ser(se_MoveAddressToVpcCommand).de(de_MoveAddressToVpcCommand).build() {\n static {\n __name(this, \"MoveAddressToVpcCommand\");\n }\n};\n\n// src/commands/MoveByoipCidrToIpamCommand.ts\n\n\n\nvar MoveByoipCidrToIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MoveByoipCidrToIpam\", {}).n(\"EC2Client\", \"MoveByoipCidrToIpamCommand\").f(void 0, void 0).ser(se_MoveByoipCidrToIpamCommand).de(de_MoveByoipCidrToIpamCommand).build() {\n static {\n __name(this, \"MoveByoipCidrToIpamCommand\");\n }\n};\n\n// src/commands/MoveCapacityReservationInstancesCommand.ts\n\n\n\nvar MoveCapacityReservationInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MoveCapacityReservationInstances\", {}).n(\"EC2Client\", \"MoveCapacityReservationInstancesCommand\").f(void 0, void 0).ser(se_MoveCapacityReservationInstancesCommand).de(de_MoveCapacityReservationInstancesCommand).build() {\n static {\n __name(this, \"MoveCapacityReservationInstancesCommand\");\n }\n};\n\n// src/commands/ProvisionByoipCidrCommand.ts\n\n\n\nvar ProvisionByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionByoipCidr\", {}).n(\"EC2Client\", \"ProvisionByoipCidrCommand\").f(void 0, void 0).ser(se_ProvisionByoipCidrCommand).de(de_ProvisionByoipCidrCommand).build() {\n static {\n __name(this, \"ProvisionByoipCidrCommand\");\n }\n};\n\n// src/commands/ProvisionIpamByoasnCommand.ts\n\n\n\nvar ProvisionIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionIpamByoasn\", {}).n(\"EC2Client\", \"ProvisionIpamByoasnCommand\").f(void 0, void 0).ser(se_ProvisionIpamByoasnCommand).de(de_ProvisionIpamByoasnCommand).build() {\n static {\n __name(this, \"ProvisionIpamByoasnCommand\");\n }\n};\n\n// src/commands/ProvisionIpamPoolCidrCommand.ts\n\n\n\nvar ProvisionIpamPoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionIpamPoolCidr\", {}).n(\"EC2Client\", \"ProvisionIpamPoolCidrCommand\").f(void 0, void 0).ser(se_ProvisionIpamPoolCidrCommand).de(de_ProvisionIpamPoolCidrCommand).build() {\n static {\n __name(this, \"ProvisionIpamPoolCidrCommand\");\n }\n};\n\n// src/commands/ProvisionPublicIpv4PoolCidrCommand.ts\n\n\n\nvar ProvisionPublicIpv4PoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionPublicIpv4PoolCidr\", {}).n(\"EC2Client\", \"ProvisionPublicIpv4PoolCidrCommand\").f(void 0, void 0).ser(se_ProvisionPublicIpv4PoolCidrCommand).de(de_ProvisionPublicIpv4PoolCidrCommand).build() {\n static {\n __name(this, \"ProvisionPublicIpv4PoolCidrCommand\");\n }\n};\n\n// src/commands/PurchaseCapacityBlockCommand.ts\n\n\n\nvar PurchaseCapacityBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseCapacityBlock\", {}).n(\"EC2Client\", \"PurchaseCapacityBlockCommand\").f(void 0, void 0).ser(se_PurchaseCapacityBlockCommand).de(de_PurchaseCapacityBlockCommand).build() {\n static {\n __name(this, \"PurchaseCapacityBlockCommand\");\n }\n};\n\n// src/commands/PurchaseCapacityBlockExtensionCommand.ts\n\n\n\nvar PurchaseCapacityBlockExtensionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseCapacityBlockExtension\", {}).n(\"EC2Client\", \"PurchaseCapacityBlockExtensionCommand\").f(void 0, void 0).ser(se_PurchaseCapacityBlockExtensionCommand).de(de_PurchaseCapacityBlockExtensionCommand).build() {\n static {\n __name(this, \"PurchaseCapacityBlockExtensionCommand\");\n }\n};\n\n// src/commands/PurchaseHostReservationCommand.ts\n\n\n\nvar PurchaseHostReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseHostReservation\", {}).n(\"EC2Client\", \"PurchaseHostReservationCommand\").f(void 0, void 0).ser(se_PurchaseHostReservationCommand).de(de_PurchaseHostReservationCommand).build() {\n static {\n __name(this, \"PurchaseHostReservationCommand\");\n }\n};\n\n// src/commands/PurchaseReservedInstancesOfferingCommand.ts\n\n\n\nvar PurchaseReservedInstancesOfferingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseReservedInstancesOffering\", {}).n(\"EC2Client\", \"PurchaseReservedInstancesOfferingCommand\").f(void 0, void 0).ser(se_PurchaseReservedInstancesOfferingCommand).de(de_PurchaseReservedInstancesOfferingCommand).build() {\n static {\n __name(this, \"PurchaseReservedInstancesOfferingCommand\");\n }\n};\n\n// src/commands/PurchaseScheduledInstancesCommand.ts\n\n\n\nvar PurchaseScheduledInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseScheduledInstances\", {}).n(\"EC2Client\", \"PurchaseScheduledInstancesCommand\").f(void 0, void 0).ser(se_PurchaseScheduledInstancesCommand).de(de_PurchaseScheduledInstancesCommand).build() {\n static {\n __name(this, \"PurchaseScheduledInstancesCommand\");\n }\n};\n\n// src/commands/RebootInstancesCommand.ts\n\n\n\nvar RebootInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RebootInstances\", {}).n(\"EC2Client\", \"RebootInstancesCommand\").f(void 0, void 0).ser(se_RebootInstancesCommand).de(de_RebootInstancesCommand).build() {\n static {\n __name(this, \"RebootInstancesCommand\");\n }\n};\n\n// src/commands/RegisterImageCommand.ts\n\n\n\nvar RegisterImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterImage\", {}).n(\"EC2Client\", \"RegisterImageCommand\").f(void 0, void 0).ser(se_RegisterImageCommand).de(de_RegisterImageCommand).build() {\n static {\n __name(this, \"RegisterImageCommand\");\n }\n};\n\n// src/commands/RegisterInstanceEventNotificationAttributesCommand.ts\n\n\n\nvar RegisterInstanceEventNotificationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterInstanceEventNotificationAttributes\", {}).n(\"EC2Client\", \"RegisterInstanceEventNotificationAttributesCommand\").f(void 0, void 0).ser(se_RegisterInstanceEventNotificationAttributesCommand).de(de_RegisterInstanceEventNotificationAttributesCommand).build() {\n static {\n __name(this, \"RegisterInstanceEventNotificationAttributesCommand\");\n }\n};\n\n// src/commands/RegisterTransitGatewayMulticastGroupMembersCommand.ts\n\n\n\nvar RegisterTransitGatewayMulticastGroupMembersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterTransitGatewayMulticastGroupMembers\", {}).n(\"EC2Client\", \"RegisterTransitGatewayMulticastGroupMembersCommand\").f(void 0, void 0).ser(se_RegisterTransitGatewayMulticastGroupMembersCommand).de(de_RegisterTransitGatewayMulticastGroupMembersCommand).build() {\n static {\n __name(this, \"RegisterTransitGatewayMulticastGroupMembersCommand\");\n }\n};\n\n// src/commands/RegisterTransitGatewayMulticastGroupSourcesCommand.ts\n\n\n\nvar RegisterTransitGatewayMulticastGroupSourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterTransitGatewayMulticastGroupSources\", {}).n(\"EC2Client\", \"RegisterTransitGatewayMulticastGroupSourcesCommand\").f(void 0, void 0).ser(se_RegisterTransitGatewayMulticastGroupSourcesCommand).de(de_RegisterTransitGatewayMulticastGroupSourcesCommand).build() {\n static {\n __name(this, \"RegisterTransitGatewayMulticastGroupSourcesCommand\");\n }\n};\n\n// src/commands/RejectCapacityReservationBillingOwnershipCommand.ts\n\n\n\nvar RejectCapacityReservationBillingOwnershipCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectCapacityReservationBillingOwnership\", {}).n(\"EC2Client\", \"RejectCapacityReservationBillingOwnershipCommand\").f(void 0, void 0).ser(se_RejectCapacityReservationBillingOwnershipCommand).de(de_RejectCapacityReservationBillingOwnershipCommand).build() {\n static {\n __name(this, \"RejectCapacityReservationBillingOwnershipCommand\");\n }\n};\n\n// src/commands/RejectTransitGatewayMulticastDomainAssociationsCommand.ts\n\n\n\nvar RejectTransitGatewayMulticastDomainAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectTransitGatewayMulticastDomainAssociations\", {}).n(\"EC2Client\", \"RejectTransitGatewayMulticastDomainAssociationsCommand\").f(void 0, void 0).ser(se_RejectTransitGatewayMulticastDomainAssociationsCommand).de(de_RejectTransitGatewayMulticastDomainAssociationsCommand).build() {\n static {\n __name(this, \"RejectTransitGatewayMulticastDomainAssociationsCommand\");\n }\n};\n\n// src/commands/RejectTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar RejectTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"RejectTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_RejectTransitGatewayPeeringAttachmentCommand).de(de_RejectTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"RejectTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/RejectTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar RejectTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"RejectTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_RejectTransitGatewayVpcAttachmentCommand).de(de_RejectTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"RejectTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/RejectVpcEndpointConnectionsCommand.ts\n\n\n\nvar RejectVpcEndpointConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectVpcEndpointConnections\", {}).n(\"EC2Client\", \"RejectVpcEndpointConnectionsCommand\").f(void 0, void 0).ser(se_RejectVpcEndpointConnectionsCommand).de(de_RejectVpcEndpointConnectionsCommand).build() {\n static {\n __name(this, \"RejectVpcEndpointConnectionsCommand\");\n }\n};\n\n// src/commands/RejectVpcPeeringConnectionCommand.ts\n\n\n\nvar RejectVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectVpcPeeringConnection\", {}).n(\"EC2Client\", \"RejectVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_RejectVpcPeeringConnectionCommand).de(de_RejectVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"RejectVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/ReleaseAddressCommand.ts\n\n\n\nvar ReleaseAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReleaseAddress\", {}).n(\"EC2Client\", \"ReleaseAddressCommand\").f(void 0, void 0).ser(se_ReleaseAddressCommand).de(de_ReleaseAddressCommand).build() {\n static {\n __name(this, \"ReleaseAddressCommand\");\n }\n};\n\n// src/commands/ReleaseHostsCommand.ts\n\n\n\nvar ReleaseHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReleaseHosts\", {}).n(\"EC2Client\", \"ReleaseHostsCommand\").f(void 0, void 0).ser(se_ReleaseHostsCommand).de(de_ReleaseHostsCommand).build() {\n static {\n __name(this, \"ReleaseHostsCommand\");\n }\n};\n\n// src/commands/ReleaseIpamPoolAllocationCommand.ts\n\n\n\nvar ReleaseIpamPoolAllocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReleaseIpamPoolAllocation\", {}).n(\"EC2Client\", \"ReleaseIpamPoolAllocationCommand\").f(void 0, void 0).ser(se_ReleaseIpamPoolAllocationCommand).de(de_ReleaseIpamPoolAllocationCommand).build() {\n static {\n __name(this, \"ReleaseIpamPoolAllocationCommand\");\n }\n};\n\n// src/commands/ReplaceIamInstanceProfileAssociationCommand.ts\n\n\n\nvar ReplaceIamInstanceProfileAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceIamInstanceProfileAssociation\", {}).n(\"EC2Client\", \"ReplaceIamInstanceProfileAssociationCommand\").f(void 0, void 0).ser(se_ReplaceIamInstanceProfileAssociationCommand).de(de_ReplaceIamInstanceProfileAssociationCommand).build() {\n static {\n __name(this, \"ReplaceIamInstanceProfileAssociationCommand\");\n }\n};\n\n// src/commands/ReplaceImageCriteriaInAllowedImagesSettingsCommand.ts\n\n\n\nvar ReplaceImageCriteriaInAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceImageCriteriaInAllowedImagesSettings\", {}).n(\"EC2Client\", \"ReplaceImageCriteriaInAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_ReplaceImageCriteriaInAllowedImagesSettingsCommand).de(de_ReplaceImageCriteriaInAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"ReplaceImageCriteriaInAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/ReplaceNetworkAclAssociationCommand.ts\n\n\n\nvar ReplaceNetworkAclAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceNetworkAclAssociation\", {}).n(\"EC2Client\", \"ReplaceNetworkAclAssociationCommand\").f(void 0, void 0).ser(se_ReplaceNetworkAclAssociationCommand).de(de_ReplaceNetworkAclAssociationCommand).build() {\n static {\n __name(this, \"ReplaceNetworkAclAssociationCommand\");\n }\n};\n\n// src/commands/ReplaceNetworkAclEntryCommand.ts\n\n\n\nvar ReplaceNetworkAclEntryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceNetworkAclEntry\", {}).n(\"EC2Client\", \"ReplaceNetworkAclEntryCommand\").f(void 0, void 0).ser(se_ReplaceNetworkAclEntryCommand).de(de_ReplaceNetworkAclEntryCommand).build() {\n static {\n __name(this, \"ReplaceNetworkAclEntryCommand\");\n }\n};\n\n// src/commands/ReplaceRouteCommand.ts\n\n\n\nvar ReplaceRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceRoute\", {}).n(\"EC2Client\", \"ReplaceRouteCommand\").f(void 0, void 0).ser(se_ReplaceRouteCommand).de(de_ReplaceRouteCommand).build() {\n static {\n __name(this, \"ReplaceRouteCommand\");\n }\n};\n\n// src/commands/ReplaceRouteTableAssociationCommand.ts\n\n\n\nvar ReplaceRouteTableAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceRouteTableAssociation\", {}).n(\"EC2Client\", \"ReplaceRouteTableAssociationCommand\").f(void 0, void 0).ser(se_ReplaceRouteTableAssociationCommand).de(de_ReplaceRouteTableAssociationCommand).build() {\n static {\n __name(this, \"ReplaceRouteTableAssociationCommand\");\n }\n};\n\n// src/commands/ReplaceTransitGatewayRouteCommand.ts\n\n\n\nvar ReplaceTransitGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceTransitGatewayRoute\", {}).n(\"EC2Client\", \"ReplaceTransitGatewayRouteCommand\").f(void 0, void 0).ser(se_ReplaceTransitGatewayRouteCommand).de(de_ReplaceTransitGatewayRouteCommand).build() {\n static {\n __name(this, \"ReplaceTransitGatewayRouteCommand\");\n }\n};\n\n// src/commands/ReplaceVpnTunnelCommand.ts\n\n\n\nvar ReplaceVpnTunnelCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceVpnTunnel\", {}).n(\"EC2Client\", \"ReplaceVpnTunnelCommand\").f(void 0, void 0).ser(se_ReplaceVpnTunnelCommand).de(de_ReplaceVpnTunnelCommand).build() {\n static {\n __name(this, \"ReplaceVpnTunnelCommand\");\n }\n};\n\n// src/commands/ReportInstanceStatusCommand.ts\n\n\n\nvar ReportInstanceStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReportInstanceStatus\", {}).n(\"EC2Client\", \"ReportInstanceStatusCommand\").f(ReportInstanceStatusRequestFilterSensitiveLog, void 0).ser(se_ReportInstanceStatusCommand).de(de_ReportInstanceStatusCommand).build() {\n static {\n __name(this, \"ReportInstanceStatusCommand\");\n }\n};\n\n// src/commands/RequestSpotFleetCommand.ts\n\n\n\n\n// src/models/models_8.ts\n\nvar ResetFpgaImageAttributeName = {\n loadPermission: \"loadPermission\"\n};\nvar ResetImageAttributeName = {\n launchPermission: \"launchPermission\"\n};\nvar MembershipType = {\n igmp: \"igmp\",\n static: \"static\"\n};\nvar RequestSpotFleetRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotFleetRequestConfig && {\n SpotFleetRequestConfig: SpotFleetRequestConfigDataFilterSensitiveLog(obj.SpotFleetRequestConfig)\n }\n}), \"RequestSpotFleetRequestFilterSensitiveLog\");\nvar RequestSpotLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"RequestSpotLaunchSpecificationFilterSensitiveLog\");\nvar RequestSpotInstancesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && {\n LaunchSpecification: RequestSpotLaunchSpecificationFilterSensitiveLog(obj.LaunchSpecification)\n }\n}), \"RequestSpotInstancesRequestFilterSensitiveLog\");\nvar RequestSpotInstancesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotInstanceRequests && {\n SpotInstanceRequests: obj.SpotInstanceRequests.map((item) => SpotInstanceRequestFilterSensitiveLog(item))\n }\n}), \"RequestSpotInstancesResultFilterSensitiveLog\");\nvar RunInstancesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"RunInstancesRequestFilterSensitiveLog\");\nvar ScheduledInstancesLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"ScheduledInstancesLaunchSpecificationFilterSensitiveLog\");\nvar RunScheduledInstancesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && { LaunchSpecification: import_smithy_client.SENSITIVE_STRING }\n}), \"RunScheduledInstancesRequestFilterSensitiveLog\");\n\n// src/commands/RequestSpotFleetCommand.ts\nvar RequestSpotFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RequestSpotFleet\", {}).n(\"EC2Client\", \"RequestSpotFleetCommand\").f(RequestSpotFleetRequestFilterSensitiveLog, void 0).ser(se_RequestSpotFleetCommand).de(de_RequestSpotFleetCommand).build() {\n static {\n __name(this, \"RequestSpotFleetCommand\");\n }\n};\n\n// src/commands/RequestSpotInstancesCommand.ts\n\n\n\nvar RequestSpotInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RequestSpotInstances\", {}).n(\"EC2Client\", \"RequestSpotInstancesCommand\").f(RequestSpotInstancesRequestFilterSensitiveLog, RequestSpotInstancesResultFilterSensitiveLog).ser(se_RequestSpotInstancesCommand).de(de_RequestSpotInstancesCommand).build() {\n static {\n __name(this, \"RequestSpotInstancesCommand\");\n }\n};\n\n// src/commands/ResetAddressAttributeCommand.ts\n\n\n\nvar ResetAddressAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetAddressAttribute\", {}).n(\"EC2Client\", \"ResetAddressAttributeCommand\").f(void 0, void 0).ser(se_ResetAddressAttributeCommand).de(de_ResetAddressAttributeCommand).build() {\n static {\n __name(this, \"ResetAddressAttributeCommand\");\n }\n};\n\n// src/commands/ResetEbsDefaultKmsKeyIdCommand.ts\n\n\n\nvar ResetEbsDefaultKmsKeyIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetEbsDefaultKmsKeyId\", {}).n(\"EC2Client\", \"ResetEbsDefaultKmsKeyIdCommand\").f(void 0, void 0).ser(se_ResetEbsDefaultKmsKeyIdCommand).de(de_ResetEbsDefaultKmsKeyIdCommand).build() {\n static {\n __name(this, \"ResetEbsDefaultKmsKeyIdCommand\");\n }\n};\n\n// src/commands/ResetFpgaImageAttributeCommand.ts\n\n\n\nvar ResetFpgaImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetFpgaImageAttribute\", {}).n(\"EC2Client\", \"ResetFpgaImageAttributeCommand\").f(void 0, void 0).ser(se_ResetFpgaImageAttributeCommand).de(de_ResetFpgaImageAttributeCommand).build() {\n static {\n __name(this, \"ResetFpgaImageAttributeCommand\");\n }\n};\n\n// src/commands/ResetImageAttributeCommand.ts\n\n\n\nvar ResetImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetImageAttribute\", {}).n(\"EC2Client\", \"ResetImageAttributeCommand\").f(void 0, void 0).ser(se_ResetImageAttributeCommand).de(de_ResetImageAttributeCommand).build() {\n static {\n __name(this, \"ResetImageAttributeCommand\");\n }\n};\n\n// src/commands/ResetInstanceAttributeCommand.ts\n\n\n\nvar ResetInstanceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetInstanceAttribute\", {}).n(\"EC2Client\", \"ResetInstanceAttributeCommand\").f(void 0, void 0).ser(se_ResetInstanceAttributeCommand).de(de_ResetInstanceAttributeCommand).build() {\n static {\n __name(this, \"ResetInstanceAttributeCommand\");\n }\n};\n\n// src/commands/ResetNetworkInterfaceAttributeCommand.ts\n\n\n\nvar ResetNetworkInterfaceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetNetworkInterfaceAttribute\", {}).n(\"EC2Client\", \"ResetNetworkInterfaceAttributeCommand\").f(void 0, void 0).ser(se_ResetNetworkInterfaceAttributeCommand).de(de_ResetNetworkInterfaceAttributeCommand).build() {\n static {\n __name(this, \"ResetNetworkInterfaceAttributeCommand\");\n }\n};\n\n// src/commands/ResetSnapshotAttributeCommand.ts\n\n\n\nvar ResetSnapshotAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetSnapshotAttribute\", {}).n(\"EC2Client\", \"ResetSnapshotAttributeCommand\").f(void 0, void 0).ser(se_ResetSnapshotAttributeCommand).de(de_ResetSnapshotAttributeCommand).build() {\n static {\n __name(this, \"ResetSnapshotAttributeCommand\");\n }\n};\n\n// src/commands/RestoreAddressToClassicCommand.ts\n\n\n\nvar RestoreAddressToClassicCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreAddressToClassic\", {}).n(\"EC2Client\", \"RestoreAddressToClassicCommand\").f(void 0, void 0).ser(se_RestoreAddressToClassicCommand).de(de_RestoreAddressToClassicCommand).build() {\n static {\n __name(this, \"RestoreAddressToClassicCommand\");\n }\n};\n\n// src/commands/RestoreImageFromRecycleBinCommand.ts\n\n\n\nvar RestoreImageFromRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreImageFromRecycleBin\", {}).n(\"EC2Client\", \"RestoreImageFromRecycleBinCommand\").f(void 0, void 0).ser(se_RestoreImageFromRecycleBinCommand).de(de_RestoreImageFromRecycleBinCommand).build() {\n static {\n __name(this, \"RestoreImageFromRecycleBinCommand\");\n }\n};\n\n// src/commands/RestoreManagedPrefixListVersionCommand.ts\n\n\n\nvar RestoreManagedPrefixListVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreManagedPrefixListVersion\", {}).n(\"EC2Client\", \"RestoreManagedPrefixListVersionCommand\").f(void 0, void 0).ser(se_RestoreManagedPrefixListVersionCommand).de(de_RestoreManagedPrefixListVersionCommand).build() {\n static {\n __name(this, \"RestoreManagedPrefixListVersionCommand\");\n }\n};\n\n// src/commands/RestoreSnapshotFromRecycleBinCommand.ts\n\n\n\nvar RestoreSnapshotFromRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreSnapshotFromRecycleBin\", {}).n(\"EC2Client\", \"RestoreSnapshotFromRecycleBinCommand\").f(void 0, void 0).ser(se_RestoreSnapshotFromRecycleBinCommand).de(de_RestoreSnapshotFromRecycleBinCommand).build() {\n static {\n __name(this, \"RestoreSnapshotFromRecycleBinCommand\");\n }\n};\n\n// src/commands/RestoreSnapshotTierCommand.ts\n\n\n\nvar RestoreSnapshotTierCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreSnapshotTier\", {}).n(\"EC2Client\", \"RestoreSnapshotTierCommand\").f(void 0, void 0).ser(se_RestoreSnapshotTierCommand).de(de_RestoreSnapshotTierCommand).build() {\n static {\n __name(this, \"RestoreSnapshotTierCommand\");\n }\n};\n\n// src/commands/RevokeClientVpnIngressCommand.ts\n\n\n\nvar RevokeClientVpnIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RevokeClientVpnIngress\", {}).n(\"EC2Client\", \"RevokeClientVpnIngressCommand\").f(void 0, void 0).ser(se_RevokeClientVpnIngressCommand).de(de_RevokeClientVpnIngressCommand).build() {\n static {\n __name(this, \"RevokeClientVpnIngressCommand\");\n }\n};\n\n// src/commands/RevokeSecurityGroupEgressCommand.ts\n\n\n\nvar RevokeSecurityGroupEgressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RevokeSecurityGroupEgress\", {}).n(\"EC2Client\", \"RevokeSecurityGroupEgressCommand\").f(void 0, void 0).ser(se_RevokeSecurityGroupEgressCommand).de(de_RevokeSecurityGroupEgressCommand).build() {\n static {\n __name(this, \"RevokeSecurityGroupEgressCommand\");\n }\n};\n\n// src/commands/RevokeSecurityGroupIngressCommand.ts\n\n\n\nvar RevokeSecurityGroupIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RevokeSecurityGroupIngress\", {}).n(\"EC2Client\", \"RevokeSecurityGroupIngressCommand\").f(void 0, void 0).ser(se_RevokeSecurityGroupIngressCommand).de(de_RevokeSecurityGroupIngressCommand).build() {\n static {\n __name(this, \"RevokeSecurityGroupIngressCommand\");\n }\n};\n\n// src/commands/RunInstancesCommand.ts\n\n\n\nvar RunInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RunInstances\", {}).n(\"EC2Client\", \"RunInstancesCommand\").f(RunInstancesRequestFilterSensitiveLog, void 0).ser(se_RunInstancesCommand).de(de_RunInstancesCommand).build() {\n static {\n __name(this, \"RunInstancesCommand\");\n }\n};\n\n// src/commands/RunScheduledInstancesCommand.ts\n\n\n\nvar RunScheduledInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RunScheduledInstances\", {}).n(\"EC2Client\", \"RunScheduledInstancesCommand\").f(RunScheduledInstancesRequestFilterSensitiveLog, void 0).ser(se_RunScheduledInstancesCommand).de(de_RunScheduledInstancesCommand).build() {\n static {\n __name(this, \"RunScheduledInstancesCommand\");\n }\n};\n\n// src/commands/SearchLocalGatewayRoutesCommand.ts\n\n\n\nvar SearchLocalGatewayRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SearchLocalGatewayRoutes\", {}).n(\"EC2Client\", \"SearchLocalGatewayRoutesCommand\").f(void 0, void 0).ser(se_SearchLocalGatewayRoutesCommand).de(de_SearchLocalGatewayRoutesCommand).build() {\n static {\n __name(this, \"SearchLocalGatewayRoutesCommand\");\n }\n};\n\n// src/commands/SearchTransitGatewayMulticastGroupsCommand.ts\n\n\n\nvar SearchTransitGatewayMulticastGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SearchTransitGatewayMulticastGroups\", {}).n(\"EC2Client\", \"SearchTransitGatewayMulticastGroupsCommand\").f(void 0, void 0).ser(se_SearchTransitGatewayMulticastGroupsCommand).de(de_SearchTransitGatewayMulticastGroupsCommand).build() {\n static {\n __name(this, \"SearchTransitGatewayMulticastGroupsCommand\");\n }\n};\n\n// src/commands/SearchTransitGatewayRoutesCommand.ts\n\n\n\nvar SearchTransitGatewayRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SearchTransitGatewayRoutes\", {}).n(\"EC2Client\", \"SearchTransitGatewayRoutesCommand\").f(void 0, void 0).ser(se_SearchTransitGatewayRoutesCommand).de(de_SearchTransitGatewayRoutesCommand).build() {\n static {\n __name(this, \"SearchTransitGatewayRoutesCommand\");\n }\n};\n\n// src/commands/SendDiagnosticInterruptCommand.ts\n\n\n\nvar SendDiagnosticInterruptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SendDiagnosticInterrupt\", {}).n(\"EC2Client\", \"SendDiagnosticInterruptCommand\").f(void 0, void 0).ser(se_SendDiagnosticInterruptCommand).de(de_SendDiagnosticInterruptCommand).build() {\n static {\n __name(this, \"SendDiagnosticInterruptCommand\");\n }\n};\n\n// src/commands/StartDeclarativePoliciesReportCommand.ts\n\n\n\nvar StartDeclarativePoliciesReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartDeclarativePoliciesReport\", {}).n(\"EC2Client\", \"StartDeclarativePoliciesReportCommand\").f(void 0, void 0).ser(se_StartDeclarativePoliciesReportCommand).de(de_StartDeclarativePoliciesReportCommand).build() {\n static {\n __name(this, \"StartDeclarativePoliciesReportCommand\");\n }\n};\n\n// src/commands/StartInstancesCommand.ts\n\n\n\nvar StartInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartInstances\", {}).n(\"EC2Client\", \"StartInstancesCommand\").f(void 0, void 0).ser(se_StartInstancesCommand).de(de_StartInstancesCommand).build() {\n static {\n __name(this, \"StartInstancesCommand\");\n }\n};\n\n// src/commands/StartNetworkInsightsAccessScopeAnalysisCommand.ts\n\n\n\nvar StartNetworkInsightsAccessScopeAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartNetworkInsightsAccessScopeAnalysis\", {}).n(\"EC2Client\", \"StartNetworkInsightsAccessScopeAnalysisCommand\").f(void 0, void 0).ser(se_StartNetworkInsightsAccessScopeAnalysisCommand).de(de_StartNetworkInsightsAccessScopeAnalysisCommand).build() {\n static {\n __name(this, \"StartNetworkInsightsAccessScopeAnalysisCommand\");\n }\n};\n\n// src/commands/StartNetworkInsightsAnalysisCommand.ts\n\n\n\nvar StartNetworkInsightsAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartNetworkInsightsAnalysis\", {}).n(\"EC2Client\", \"StartNetworkInsightsAnalysisCommand\").f(void 0, void 0).ser(se_StartNetworkInsightsAnalysisCommand).de(de_StartNetworkInsightsAnalysisCommand).build() {\n static {\n __name(this, \"StartNetworkInsightsAnalysisCommand\");\n }\n};\n\n// src/commands/StartVpcEndpointServicePrivateDnsVerificationCommand.ts\n\n\n\nvar StartVpcEndpointServicePrivateDnsVerificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartVpcEndpointServicePrivateDnsVerification\", {}).n(\"EC2Client\", \"StartVpcEndpointServicePrivateDnsVerificationCommand\").f(void 0, void 0).ser(se_StartVpcEndpointServicePrivateDnsVerificationCommand).de(de_StartVpcEndpointServicePrivateDnsVerificationCommand).build() {\n static {\n __name(this, \"StartVpcEndpointServicePrivateDnsVerificationCommand\");\n }\n};\n\n// src/commands/StopInstancesCommand.ts\n\n\n\nvar StopInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StopInstances\", {}).n(\"EC2Client\", \"StopInstancesCommand\").f(void 0, void 0).ser(se_StopInstancesCommand).de(de_StopInstancesCommand).build() {\n static {\n __name(this, \"StopInstancesCommand\");\n }\n};\n\n// src/commands/TerminateClientVpnConnectionsCommand.ts\n\n\n\nvar TerminateClientVpnConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"TerminateClientVpnConnections\", {}).n(\"EC2Client\", \"TerminateClientVpnConnectionsCommand\").f(void 0, void 0).ser(se_TerminateClientVpnConnectionsCommand).de(de_TerminateClientVpnConnectionsCommand).build() {\n static {\n __name(this, \"TerminateClientVpnConnectionsCommand\");\n }\n};\n\n// src/commands/TerminateInstancesCommand.ts\n\n\n\nvar TerminateInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"TerminateInstances\", {}).n(\"EC2Client\", \"TerminateInstancesCommand\").f(void 0, void 0).ser(se_TerminateInstancesCommand).de(de_TerminateInstancesCommand).build() {\n static {\n __name(this, \"TerminateInstancesCommand\");\n }\n};\n\n// src/commands/UnassignIpv6AddressesCommand.ts\n\n\n\nvar UnassignIpv6AddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnassignIpv6Addresses\", {}).n(\"EC2Client\", \"UnassignIpv6AddressesCommand\").f(void 0, void 0).ser(se_UnassignIpv6AddressesCommand).de(de_UnassignIpv6AddressesCommand).build() {\n static {\n __name(this, \"UnassignIpv6AddressesCommand\");\n }\n};\n\n// src/commands/UnassignPrivateIpAddressesCommand.ts\n\n\n\nvar UnassignPrivateIpAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnassignPrivateIpAddresses\", {}).n(\"EC2Client\", \"UnassignPrivateIpAddressesCommand\").f(void 0, void 0).ser(se_UnassignPrivateIpAddressesCommand).de(de_UnassignPrivateIpAddressesCommand).build() {\n static {\n __name(this, \"UnassignPrivateIpAddressesCommand\");\n }\n};\n\n// src/commands/UnassignPrivateNatGatewayAddressCommand.ts\n\n\n\nvar UnassignPrivateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnassignPrivateNatGatewayAddress\", {}).n(\"EC2Client\", \"UnassignPrivateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_UnassignPrivateNatGatewayAddressCommand).de(de_UnassignPrivateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"UnassignPrivateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/UnlockSnapshotCommand.ts\n\n\n\nvar UnlockSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnlockSnapshot\", {}).n(\"EC2Client\", \"UnlockSnapshotCommand\").f(void 0, void 0).ser(se_UnlockSnapshotCommand).de(de_UnlockSnapshotCommand).build() {\n static {\n __name(this, \"UnlockSnapshotCommand\");\n }\n};\n\n// src/commands/UnmonitorInstancesCommand.ts\n\n\n\nvar UnmonitorInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnmonitorInstances\", {}).n(\"EC2Client\", \"UnmonitorInstancesCommand\").f(void 0, void 0).ser(se_UnmonitorInstancesCommand).de(de_UnmonitorInstancesCommand).build() {\n static {\n __name(this, \"UnmonitorInstancesCommand\");\n }\n};\n\n// src/commands/UpdateSecurityGroupRuleDescriptionsEgressCommand.ts\n\n\n\nvar UpdateSecurityGroupRuleDescriptionsEgressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UpdateSecurityGroupRuleDescriptionsEgress\", {}).n(\"EC2Client\", \"UpdateSecurityGroupRuleDescriptionsEgressCommand\").f(void 0, void 0).ser(se_UpdateSecurityGroupRuleDescriptionsEgressCommand).de(de_UpdateSecurityGroupRuleDescriptionsEgressCommand).build() {\n static {\n __name(this, \"UpdateSecurityGroupRuleDescriptionsEgressCommand\");\n }\n};\n\n// src/commands/UpdateSecurityGroupRuleDescriptionsIngressCommand.ts\n\n\n\nvar UpdateSecurityGroupRuleDescriptionsIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UpdateSecurityGroupRuleDescriptionsIngress\", {}).n(\"EC2Client\", \"UpdateSecurityGroupRuleDescriptionsIngressCommand\").f(void 0, void 0).ser(se_UpdateSecurityGroupRuleDescriptionsIngressCommand).de(de_UpdateSecurityGroupRuleDescriptionsIngressCommand).build() {\n static {\n __name(this, \"UpdateSecurityGroupRuleDescriptionsIngressCommand\");\n }\n};\n\n// src/commands/WithdrawByoipCidrCommand.ts\n\n\n\nvar WithdrawByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"WithdrawByoipCidr\", {}).n(\"EC2Client\", \"WithdrawByoipCidrCommand\").f(void 0, void 0).ser(se_WithdrawByoipCidrCommand).de(de_WithdrawByoipCidrCommand).build() {\n static {\n __name(this, \"WithdrawByoipCidrCommand\");\n }\n};\n\n// src/EC2.ts\nvar commands = {\n AcceptAddressTransferCommand,\n AcceptCapacityReservationBillingOwnershipCommand,\n AcceptReservedInstancesExchangeQuoteCommand,\n AcceptTransitGatewayMulticastDomainAssociationsCommand,\n AcceptTransitGatewayPeeringAttachmentCommand,\n AcceptTransitGatewayVpcAttachmentCommand,\n AcceptVpcEndpointConnectionsCommand,\n AcceptVpcPeeringConnectionCommand,\n AdvertiseByoipCidrCommand,\n AllocateAddressCommand,\n AllocateHostsCommand,\n AllocateIpamPoolCidrCommand,\n ApplySecurityGroupsToClientVpnTargetNetworkCommand,\n AssignIpv6AddressesCommand,\n AssignPrivateIpAddressesCommand,\n AssignPrivateNatGatewayAddressCommand,\n AssociateAddressCommand,\n AssociateCapacityReservationBillingOwnerCommand,\n AssociateClientVpnTargetNetworkCommand,\n AssociateDhcpOptionsCommand,\n AssociateEnclaveCertificateIamRoleCommand,\n AssociateIamInstanceProfileCommand,\n AssociateInstanceEventWindowCommand,\n AssociateIpamByoasnCommand,\n AssociateIpamResourceDiscoveryCommand,\n AssociateNatGatewayAddressCommand,\n AssociateRouteServerCommand,\n AssociateRouteTableCommand,\n AssociateSecurityGroupVpcCommand,\n AssociateSubnetCidrBlockCommand,\n AssociateTransitGatewayMulticastDomainCommand,\n AssociateTransitGatewayPolicyTableCommand,\n AssociateTransitGatewayRouteTableCommand,\n AssociateTrunkInterfaceCommand,\n AssociateVpcCidrBlockCommand,\n AttachClassicLinkVpcCommand,\n AttachInternetGatewayCommand,\n AttachNetworkInterfaceCommand,\n AttachVerifiedAccessTrustProviderCommand,\n AttachVolumeCommand,\n AttachVpnGatewayCommand,\n AuthorizeClientVpnIngressCommand,\n AuthorizeSecurityGroupEgressCommand,\n AuthorizeSecurityGroupIngressCommand,\n BundleInstanceCommand,\n CancelBundleTaskCommand,\n CancelCapacityReservationCommand,\n CancelCapacityReservationFleetsCommand,\n CancelConversionTaskCommand,\n CancelDeclarativePoliciesReportCommand,\n CancelExportTaskCommand,\n CancelImageLaunchPermissionCommand,\n CancelImportTaskCommand,\n CancelReservedInstancesListingCommand,\n CancelSpotFleetRequestsCommand,\n CancelSpotInstanceRequestsCommand,\n ConfirmProductInstanceCommand,\n CopyFpgaImageCommand,\n CopyImageCommand,\n CopySnapshotCommand,\n CreateCapacityReservationCommand,\n CreateCapacityReservationBySplittingCommand,\n CreateCapacityReservationFleetCommand,\n CreateCarrierGatewayCommand,\n CreateClientVpnEndpointCommand,\n CreateClientVpnRouteCommand,\n CreateCoipCidrCommand,\n CreateCoipPoolCommand,\n CreateCustomerGatewayCommand,\n CreateDefaultSubnetCommand,\n CreateDefaultVpcCommand,\n CreateDhcpOptionsCommand,\n CreateEgressOnlyInternetGatewayCommand,\n CreateFleetCommand,\n CreateFlowLogsCommand,\n CreateFpgaImageCommand,\n CreateImageCommand,\n CreateInstanceConnectEndpointCommand,\n CreateInstanceEventWindowCommand,\n CreateInstanceExportTaskCommand,\n CreateInternetGatewayCommand,\n CreateIpamCommand,\n CreateIpamExternalResourceVerificationTokenCommand,\n CreateIpamPoolCommand,\n CreateIpamResourceDiscoveryCommand,\n CreateIpamScopeCommand,\n CreateKeyPairCommand,\n CreateLaunchTemplateCommand,\n CreateLaunchTemplateVersionCommand,\n CreateLocalGatewayRouteCommand,\n CreateLocalGatewayRouteTableCommand,\n CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n CreateLocalGatewayRouteTableVpcAssociationCommand,\n CreateLocalGatewayVirtualInterfaceCommand,\n CreateLocalGatewayVirtualInterfaceGroupCommand,\n CreateManagedPrefixListCommand,\n CreateNatGatewayCommand,\n CreateNetworkAclCommand,\n CreateNetworkAclEntryCommand,\n CreateNetworkInsightsAccessScopeCommand,\n CreateNetworkInsightsPathCommand,\n CreateNetworkInterfaceCommand,\n CreateNetworkInterfacePermissionCommand,\n CreatePlacementGroupCommand,\n CreatePublicIpv4PoolCommand,\n CreateReplaceRootVolumeTaskCommand,\n CreateReservedInstancesListingCommand,\n CreateRestoreImageTaskCommand,\n CreateRouteCommand,\n CreateRouteServerCommand,\n CreateRouteServerEndpointCommand,\n CreateRouteServerPeerCommand,\n CreateRouteTableCommand,\n CreateSecurityGroupCommand,\n CreateSnapshotCommand,\n CreateSnapshotsCommand,\n CreateSpotDatafeedSubscriptionCommand,\n CreateStoreImageTaskCommand,\n CreateSubnetCommand,\n CreateSubnetCidrReservationCommand,\n CreateTagsCommand,\n CreateTrafficMirrorFilterCommand,\n CreateTrafficMirrorFilterRuleCommand,\n CreateTrafficMirrorSessionCommand,\n CreateTrafficMirrorTargetCommand,\n CreateTransitGatewayCommand,\n CreateTransitGatewayConnectCommand,\n CreateTransitGatewayConnectPeerCommand,\n CreateTransitGatewayMulticastDomainCommand,\n CreateTransitGatewayPeeringAttachmentCommand,\n CreateTransitGatewayPolicyTableCommand,\n CreateTransitGatewayPrefixListReferenceCommand,\n CreateTransitGatewayRouteCommand,\n CreateTransitGatewayRouteTableCommand,\n CreateTransitGatewayRouteTableAnnouncementCommand,\n CreateTransitGatewayVpcAttachmentCommand,\n CreateVerifiedAccessEndpointCommand,\n CreateVerifiedAccessGroupCommand,\n CreateVerifiedAccessInstanceCommand,\n CreateVerifiedAccessTrustProviderCommand,\n CreateVolumeCommand,\n CreateVpcCommand,\n CreateVpcBlockPublicAccessExclusionCommand,\n CreateVpcEndpointCommand,\n CreateVpcEndpointConnectionNotificationCommand,\n CreateVpcEndpointServiceConfigurationCommand,\n CreateVpcPeeringConnectionCommand,\n CreateVpnConnectionCommand,\n CreateVpnConnectionRouteCommand,\n CreateVpnGatewayCommand,\n DeleteCarrierGatewayCommand,\n DeleteClientVpnEndpointCommand,\n DeleteClientVpnRouteCommand,\n DeleteCoipCidrCommand,\n DeleteCoipPoolCommand,\n DeleteCustomerGatewayCommand,\n DeleteDhcpOptionsCommand,\n DeleteEgressOnlyInternetGatewayCommand,\n DeleteFleetsCommand,\n DeleteFlowLogsCommand,\n DeleteFpgaImageCommand,\n DeleteInstanceConnectEndpointCommand,\n DeleteInstanceEventWindowCommand,\n DeleteInternetGatewayCommand,\n DeleteIpamCommand,\n DeleteIpamExternalResourceVerificationTokenCommand,\n DeleteIpamPoolCommand,\n DeleteIpamResourceDiscoveryCommand,\n DeleteIpamScopeCommand,\n DeleteKeyPairCommand,\n DeleteLaunchTemplateCommand,\n DeleteLaunchTemplateVersionsCommand,\n DeleteLocalGatewayRouteCommand,\n DeleteLocalGatewayRouteTableCommand,\n DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n DeleteLocalGatewayRouteTableVpcAssociationCommand,\n DeleteLocalGatewayVirtualInterfaceCommand,\n DeleteLocalGatewayVirtualInterfaceGroupCommand,\n DeleteManagedPrefixListCommand,\n DeleteNatGatewayCommand,\n DeleteNetworkAclCommand,\n DeleteNetworkAclEntryCommand,\n DeleteNetworkInsightsAccessScopeCommand,\n DeleteNetworkInsightsAccessScopeAnalysisCommand,\n DeleteNetworkInsightsAnalysisCommand,\n DeleteNetworkInsightsPathCommand,\n DeleteNetworkInterfaceCommand,\n DeleteNetworkInterfacePermissionCommand,\n DeletePlacementGroupCommand,\n DeletePublicIpv4PoolCommand,\n DeleteQueuedReservedInstancesCommand,\n DeleteRouteCommand,\n DeleteRouteServerCommand,\n DeleteRouteServerEndpointCommand,\n DeleteRouteServerPeerCommand,\n DeleteRouteTableCommand,\n DeleteSecurityGroupCommand,\n DeleteSnapshotCommand,\n DeleteSpotDatafeedSubscriptionCommand,\n DeleteSubnetCommand,\n DeleteSubnetCidrReservationCommand,\n DeleteTagsCommand,\n DeleteTrafficMirrorFilterCommand,\n DeleteTrafficMirrorFilterRuleCommand,\n DeleteTrafficMirrorSessionCommand,\n DeleteTrafficMirrorTargetCommand,\n DeleteTransitGatewayCommand,\n DeleteTransitGatewayConnectCommand,\n DeleteTransitGatewayConnectPeerCommand,\n DeleteTransitGatewayMulticastDomainCommand,\n DeleteTransitGatewayPeeringAttachmentCommand,\n DeleteTransitGatewayPolicyTableCommand,\n DeleteTransitGatewayPrefixListReferenceCommand,\n DeleteTransitGatewayRouteCommand,\n DeleteTransitGatewayRouteTableCommand,\n DeleteTransitGatewayRouteTableAnnouncementCommand,\n DeleteTransitGatewayVpcAttachmentCommand,\n DeleteVerifiedAccessEndpointCommand,\n DeleteVerifiedAccessGroupCommand,\n DeleteVerifiedAccessInstanceCommand,\n DeleteVerifiedAccessTrustProviderCommand,\n DeleteVolumeCommand,\n DeleteVpcCommand,\n DeleteVpcBlockPublicAccessExclusionCommand,\n DeleteVpcEndpointConnectionNotificationsCommand,\n DeleteVpcEndpointsCommand,\n DeleteVpcEndpointServiceConfigurationsCommand,\n DeleteVpcPeeringConnectionCommand,\n DeleteVpnConnectionCommand,\n DeleteVpnConnectionRouteCommand,\n DeleteVpnGatewayCommand,\n DeprovisionByoipCidrCommand,\n DeprovisionIpamByoasnCommand,\n DeprovisionIpamPoolCidrCommand,\n DeprovisionPublicIpv4PoolCidrCommand,\n DeregisterImageCommand,\n DeregisterInstanceEventNotificationAttributesCommand,\n DeregisterTransitGatewayMulticastGroupMembersCommand,\n DeregisterTransitGatewayMulticastGroupSourcesCommand,\n DescribeAccountAttributesCommand,\n DescribeAddressesCommand,\n DescribeAddressesAttributeCommand,\n DescribeAddressTransfersCommand,\n DescribeAggregateIdFormatCommand,\n DescribeAvailabilityZonesCommand,\n DescribeAwsNetworkPerformanceMetricSubscriptionsCommand,\n DescribeBundleTasksCommand,\n DescribeByoipCidrsCommand,\n DescribeCapacityBlockExtensionHistoryCommand,\n DescribeCapacityBlockExtensionOfferingsCommand,\n DescribeCapacityBlockOfferingsCommand,\n DescribeCapacityReservationBillingRequestsCommand,\n DescribeCapacityReservationFleetsCommand,\n DescribeCapacityReservationsCommand,\n DescribeCarrierGatewaysCommand,\n DescribeClassicLinkInstancesCommand,\n DescribeClientVpnAuthorizationRulesCommand,\n DescribeClientVpnConnectionsCommand,\n DescribeClientVpnEndpointsCommand,\n DescribeClientVpnRoutesCommand,\n DescribeClientVpnTargetNetworksCommand,\n DescribeCoipPoolsCommand,\n DescribeConversionTasksCommand,\n DescribeCustomerGatewaysCommand,\n DescribeDeclarativePoliciesReportsCommand,\n DescribeDhcpOptionsCommand,\n DescribeEgressOnlyInternetGatewaysCommand,\n DescribeElasticGpusCommand,\n DescribeExportImageTasksCommand,\n DescribeExportTasksCommand,\n DescribeFastLaunchImagesCommand,\n DescribeFastSnapshotRestoresCommand,\n DescribeFleetHistoryCommand,\n DescribeFleetInstancesCommand,\n DescribeFleetsCommand,\n DescribeFlowLogsCommand,\n DescribeFpgaImageAttributeCommand,\n DescribeFpgaImagesCommand,\n DescribeHostReservationOfferingsCommand,\n DescribeHostReservationsCommand,\n DescribeHostsCommand,\n DescribeIamInstanceProfileAssociationsCommand,\n DescribeIdentityIdFormatCommand,\n DescribeIdFormatCommand,\n DescribeImageAttributeCommand,\n DescribeImagesCommand,\n DescribeImportImageTasksCommand,\n DescribeImportSnapshotTasksCommand,\n DescribeInstanceAttributeCommand,\n DescribeInstanceConnectEndpointsCommand,\n DescribeInstanceCreditSpecificationsCommand,\n DescribeInstanceEventNotificationAttributesCommand,\n DescribeInstanceEventWindowsCommand,\n DescribeInstanceImageMetadataCommand,\n DescribeInstancesCommand,\n DescribeInstanceStatusCommand,\n DescribeInstanceTopologyCommand,\n DescribeInstanceTypeOfferingsCommand,\n DescribeInstanceTypesCommand,\n DescribeInternetGatewaysCommand,\n DescribeIpamByoasnCommand,\n DescribeIpamExternalResourceVerificationTokensCommand,\n DescribeIpamPoolsCommand,\n DescribeIpamResourceDiscoveriesCommand,\n DescribeIpamResourceDiscoveryAssociationsCommand,\n DescribeIpamsCommand,\n DescribeIpamScopesCommand,\n DescribeIpv6PoolsCommand,\n DescribeKeyPairsCommand,\n DescribeLaunchTemplatesCommand,\n DescribeLaunchTemplateVersionsCommand,\n DescribeLocalGatewayRouteTablesCommand,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n DescribeLocalGatewayRouteTableVpcAssociationsCommand,\n DescribeLocalGatewaysCommand,\n DescribeLocalGatewayVirtualInterfaceGroupsCommand,\n DescribeLocalGatewayVirtualInterfacesCommand,\n DescribeLockedSnapshotsCommand,\n DescribeMacHostsCommand,\n DescribeManagedPrefixListsCommand,\n DescribeMovingAddressesCommand,\n DescribeNatGatewaysCommand,\n DescribeNetworkAclsCommand,\n DescribeNetworkInsightsAccessScopeAnalysesCommand,\n DescribeNetworkInsightsAccessScopesCommand,\n DescribeNetworkInsightsAnalysesCommand,\n DescribeNetworkInsightsPathsCommand,\n DescribeNetworkInterfaceAttributeCommand,\n DescribeNetworkInterfacePermissionsCommand,\n DescribeNetworkInterfacesCommand,\n DescribeOutpostLagsCommand,\n DescribePlacementGroupsCommand,\n DescribePrefixListsCommand,\n DescribePrincipalIdFormatCommand,\n DescribePublicIpv4PoolsCommand,\n DescribeRegionsCommand,\n DescribeReplaceRootVolumeTasksCommand,\n DescribeReservedInstancesCommand,\n DescribeReservedInstancesListingsCommand,\n DescribeReservedInstancesModificationsCommand,\n DescribeReservedInstancesOfferingsCommand,\n DescribeRouteServerEndpointsCommand,\n DescribeRouteServerPeersCommand,\n DescribeRouteServersCommand,\n DescribeRouteTablesCommand,\n DescribeScheduledInstanceAvailabilityCommand,\n DescribeScheduledInstancesCommand,\n DescribeSecurityGroupReferencesCommand,\n DescribeSecurityGroupRulesCommand,\n DescribeSecurityGroupsCommand,\n DescribeSecurityGroupVpcAssociationsCommand,\n DescribeServiceLinkVirtualInterfacesCommand,\n DescribeSnapshotAttributeCommand,\n DescribeSnapshotsCommand,\n DescribeSnapshotTierStatusCommand,\n DescribeSpotDatafeedSubscriptionCommand,\n DescribeSpotFleetInstancesCommand,\n DescribeSpotFleetRequestHistoryCommand,\n DescribeSpotFleetRequestsCommand,\n DescribeSpotInstanceRequestsCommand,\n DescribeSpotPriceHistoryCommand,\n DescribeStaleSecurityGroupsCommand,\n DescribeStoreImageTasksCommand,\n DescribeSubnetsCommand,\n DescribeTagsCommand,\n DescribeTrafficMirrorFilterRulesCommand,\n DescribeTrafficMirrorFiltersCommand,\n DescribeTrafficMirrorSessionsCommand,\n DescribeTrafficMirrorTargetsCommand,\n DescribeTransitGatewayAttachmentsCommand,\n DescribeTransitGatewayConnectPeersCommand,\n DescribeTransitGatewayConnectsCommand,\n DescribeTransitGatewayMulticastDomainsCommand,\n DescribeTransitGatewayPeeringAttachmentsCommand,\n DescribeTransitGatewayPolicyTablesCommand,\n DescribeTransitGatewayRouteTableAnnouncementsCommand,\n DescribeTransitGatewayRouteTablesCommand,\n DescribeTransitGatewaysCommand,\n DescribeTransitGatewayVpcAttachmentsCommand,\n DescribeTrunkInterfaceAssociationsCommand,\n DescribeVerifiedAccessEndpointsCommand,\n DescribeVerifiedAccessGroupsCommand,\n DescribeVerifiedAccessInstanceLoggingConfigurationsCommand,\n DescribeVerifiedAccessInstancesCommand,\n DescribeVerifiedAccessTrustProvidersCommand,\n DescribeVolumeAttributeCommand,\n DescribeVolumesCommand,\n DescribeVolumesModificationsCommand,\n DescribeVolumeStatusCommand,\n DescribeVpcAttributeCommand,\n DescribeVpcBlockPublicAccessExclusionsCommand,\n DescribeVpcBlockPublicAccessOptionsCommand,\n DescribeVpcClassicLinkCommand,\n DescribeVpcClassicLinkDnsSupportCommand,\n DescribeVpcEndpointAssociationsCommand,\n DescribeVpcEndpointConnectionNotificationsCommand,\n DescribeVpcEndpointConnectionsCommand,\n DescribeVpcEndpointsCommand,\n DescribeVpcEndpointServiceConfigurationsCommand,\n DescribeVpcEndpointServicePermissionsCommand,\n DescribeVpcEndpointServicesCommand,\n DescribeVpcPeeringConnectionsCommand,\n DescribeVpcsCommand,\n DescribeVpnConnectionsCommand,\n DescribeVpnGatewaysCommand,\n DetachClassicLinkVpcCommand,\n DetachInternetGatewayCommand,\n DetachNetworkInterfaceCommand,\n DetachVerifiedAccessTrustProviderCommand,\n DetachVolumeCommand,\n DetachVpnGatewayCommand,\n DisableAddressTransferCommand,\n DisableAllowedImagesSettingsCommand,\n DisableAwsNetworkPerformanceMetricSubscriptionCommand,\n DisableEbsEncryptionByDefaultCommand,\n DisableFastLaunchCommand,\n DisableFastSnapshotRestoresCommand,\n DisableImageCommand,\n DisableImageBlockPublicAccessCommand,\n DisableImageDeprecationCommand,\n DisableImageDeregistrationProtectionCommand,\n DisableIpamOrganizationAdminAccountCommand,\n DisableRouteServerPropagationCommand,\n DisableSerialConsoleAccessCommand,\n DisableSnapshotBlockPublicAccessCommand,\n DisableTransitGatewayRouteTablePropagationCommand,\n DisableVgwRoutePropagationCommand,\n DisableVpcClassicLinkCommand,\n DisableVpcClassicLinkDnsSupportCommand,\n DisassociateAddressCommand,\n DisassociateCapacityReservationBillingOwnerCommand,\n DisassociateClientVpnTargetNetworkCommand,\n DisassociateEnclaveCertificateIamRoleCommand,\n DisassociateIamInstanceProfileCommand,\n DisassociateInstanceEventWindowCommand,\n DisassociateIpamByoasnCommand,\n DisassociateIpamResourceDiscoveryCommand,\n DisassociateNatGatewayAddressCommand,\n DisassociateRouteServerCommand,\n DisassociateRouteTableCommand,\n DisassociateSecurityGroupVpcCommand,\n DisassociateSubnetCidrBlockCommand,\n DisassociateTransitGatewayMulticastDomainCommand,\n DisassociateTransitGatewayPolicyTableCommand,\n DisassociateTransitGatewayRouteTableCommand,\n DisassociateTrunkInterfaceCommand,\n DisassociateVpcCidrBlockCommand,\n EnableAddressTransferCommand,\n EnableAllowedImagesSettingsCommand,\n EnableAwsNetworkPerformanceMetricSubscriptionCommand,\n EnableEbsEncryptionByDefaultCommand,\n EnableFastLaunchCommand,\n EnableFastSnapshotRestoresCommand,\n EnableImageCommand,\n EnableImageBlockPublicAccessCommand,\n EnableImageDeprecationCommand,\n EnableImageDeregistrationProtectionCommand,\n EnableIpamOrganizationAdminAccountCommand,\n EnableReachabilityAnalyzerOrganizationSharingCommand,\n EnableRouteServerPropagationCommand,\n EnableSerialConsoleAccessCommand,\n EnableSnapshotBlockPublicAccessCommand,\n EnableTransitGatewayRouteTablePropagationCommand,\n EnableVgwRoutePropagationCommand,\n EnableVolumeIOCommand,\n EnableVpcClassicLinkCommand,\n EnableVpcClassicLinkDnsSupportCommand,\n ExportClientVpnClientCertificateRevocationListCommand,\n ExportClientVpnClientConfigurationCommand,\n ExportImageCommand,\n ExportTransitGatewayRoutesCommand,\n ExportVerifiedAccessInstanceClientConfigurationCommand,\n GetAllowedImagesSettingsCommand,\n GetAssociatedEnclaveCertificateIamRolesCommand,\n GetAssociatedIpv6PoolCidrsCommand,\n GetAwsNetworkPerformanceDataCommand,\n GetCapacityReservationUsageCommand,\n GetCoipPoolUsageCommand,\n GetConsoleOutputCommand,\n GetConsoleScreenshotCommand,\n GetDeclarativePoliciesReportSummaryCommand,\n GetDefaultCreditSpecificationCommand,\n GetEbsDefaultKmsKeyIdCommand,\n GetEbsEncryptionByDefaultCommand,\n GetFlowLogsIntegrationTemplateCommand,\n GetGroupsForCapacityReservationCommand,\n GetHostReservationPurchasePreviewCommand,\n GetImageBlockPublicAccessStateCommand,\n GetInstanceMetadataDefaultsCommand,\n GetInstanceTpmEkPubCommand,\n GetInstanceTypesFromInstanceRequirementsCommand,\n GetInstanceUefiDataCommand,\n GetIpamAddressHistoryCommand,\n GetIpamDiscoveredAccountsCommand,\n GetIpamDiscoveredPublicAddressesCommand,\n GetIpamDiscoveredResourceCidrsCommand,\n GetIpamPoolAllocationsCommand,\n GetIpamPoolCidrsCommand,\n GetIpamResourceCidrsCommand,\n GetLaunchTemplateDataCommand,\n GetManagedPrefixListAssociationsCommand,\n GetManagedPrefixListEntriesCommand,\n GetNetworkInsightsAccessScopeAnalysisFindingsCommand,\n GetNetworkInsightsAccessScopeContentCommand,\n GetPasswordDataCommand,\n GetReservedInstancesExchangeQuoteCommand,\n GetRouteServerAssociationsCommand,\n GetRouteServerPropagationsCommand,\n GetRouteServerRoutingDatabaseCommand,\n GetSecurityGroupsForVpcCommand,\n GetSerialConsoleAccessStatusCommand,\n GetSnapshotBlockPublicAccessStateCommand,\n GetSpotPlacementScoresCommand,\n GetSubnetCidrReservationsCommand,\n GetTransitGatewayAttachmentPropagationsCommand,\n GetTransitGatewayMulticastDomainAssociationsCommand,\n GetTransitGatewayPolicyTableAssociationsCommand,\n GetTransitGatewayPolicyTableEntriesCommand,\n GetTransitGatewayPrefixListReferencesCommand,\n GetTransitGatewayRouteTableAssociationsCommand,\n GetTransitGatewayRouteTablePropagationsCommand,\n GetVerifiedAccessEndpointPolicyCommand,\n GetVerifiedAccessEndpointTargetsCommand,\n GetVerifiedAccessGroupPolicyCommand,\n GetVpnConnectionDeviceSampleConfigurationCommand,\n GetVpnConnectionDeviceTypesCommand,\n GetVpnTunnelReplacementStatusCommand,\n ImportClientVpnClientCertificateRevocationListCommand,\n ImportImageCommand,\n ImportInstanceCommand,\n ImportKeyPairCommand,\n ImportSnapshotCommand,\n ImportVolumeCommand,\n ListImagesInRecycleBinCommand,\n ListSnapshotsInRecycleBinCommand,\n LockSnapshotCommand,\n ModifyAddressAttributeCommand,\n ModifyAvailabilityZoneGroupCommand,\n ModifyCapacityReservationCommand,\n ModifyCapacityReservationFleetCommand,\n ModifyClientVpnEndpointCommand,\n ModifyDefaultCreditSpecificationCommand,\n ModifyEbsDefaultKmsKeyIdCommand,\n ModifyFleetCommand,\n ModifyFpgaImageAttributeCommand,\n ModifyHostsCommand,\n ModifyIdentityIdFormatCommand,\n ModifyIdFormatCommand,\n ModifyImageAttributeCommand,\n ModifyInstanceAttributeCommand,\n ModifyInstanceCapacityReservationAttributesCommand,\n ModifyInstanceCpuOptionsCommand,\n ModifyInstanceCreditSpecificationCommand,\n ModifyInstanceEventStartTimeCommand,\n ModifyInstanceEventWindowCommand,\n ModifyInstanceMaintenanceOptionsCommand,\n ModifyInstanceMetadataDefaultsCommand,\n ModifyInstanceMetadataOptionsCommand,\n ModifyInstanceNetworkPerformanceOptionsCommand,\n ModifyInstancePlacementCommand,\n ModifyIpamCommand,\n ModifyIpamPoolCommand,\n ModifyIpamResourceCidrCommand,\n ModifyIpamResourceDiscoveryCommand,\n ModifyIpamScopeCommand,\n ModifyLaunchTemplateCommand,\n ModifyLocalGatewayRouteCommand,\n ModifyManagedPrefixListCommand,\n ModifyNetworkInterfaceAttributeCommand,\n ModifyPrivateDnsNameOptionsCommand,\n ModifyReservedInstancesCommand,\n ModifyRouteServerCommand,\n ModifySecurityGroupRulesCommand,\n ModifySnapshotAttributeCommand,\n ModifySnapshotTierCommand,\n ModifySpotFleetRequestCommand,\n ModifySubnetAttributeCommand,\n ModifyTrafficMirrorFilterNetworkServicesCommand,\n ModifyTrafficMirrorFilterRuleCommand,\n ModifyTrafficMirrorSessionCommand,\n ModifyTransitGatewayCommand,\n ModifyTransitGatewayPrefixListReferenceCommand,\n ModifyTransitGatewayVpcAttachmentCommand,\n ModifyVerifiedAccessEndpointCommand,\n ModifyVerifiedAccessEndpointPolicyCommand,\n ModifyVerifiedAccessGroupCommand,\n ModifyVerifiedAccessGroupPolicyCommand,\n ModifyVerifiedAccessInstanceCommand,\n ModifyVerifiedAccessInstanceLoggingConfigurationCommand,\n ModifyVerifiedAccessTrustProviderCommand,\n ModifyVolumeCommand,\n ModifyVolumeAttributeCommand,\n ModifyVpcAttributeCommand,\n ModifyVpcBlockPublicAccessExclusionCommand,\n ModifyVpcBlockPublicAccessOptionsCommand,\n ModifyVpcEndpointCommand,\n ModifyVpcEndpointConnectionNotificationCommand,\n ModifyVpcEndpointServiceConfigurationCommand,\n ModifyVpcEndpointServicePayerResponsibilityCommand,\n ModifyVpcEndpointServicePermissionsCommand,\n ModifyVpcPeeringConnectionOptionsCommand,\n ModifyVpcTenancyCommand,\n ModifyVpnConnectionCommand,\n ModifyVpnConnectionOptionsCommand,\n ModifyVpnTunnelCertificateCommand,\n ModifyVpnTunnelOptionsCommand,\n MonitorInstancesCommand,\n MoveAddressToVpcCommand,\n MoveByoipCidrToIpamCommand,\n MoveCapacityReservationInstancesCommand,\n ProvisionByoipCidrCommand,\n ProvisionIpamByoasnCommand,\n ProvisionIpamPoolCidrCommand,\n ProvisionPublicIpv4PoolCidrCommand,\n PurchaseCapacityBlockCommand,\n PurchaseCapacityBlockExtensionCommand,\n PurchaseHostReservationCommand,\n PurchaseReservedInstancesOfferingCommand,\n PurchaseScheduledInstancesCommand,\n RebootInstancesCommand,\n RegisterImageCommand,\n RegisterInstanceEventNotificationAttributesCommand,\n RegisterTransitGatewayMulticastGroupMembersCommand,\n RegisterTransitGatewayMulticastGroupSourcesCommand,\n RejectCapacityReservationBillingOwnershipCommand,\n RejectTransitGatewayMulticastDomainAssociationsCommand,\n RejectTransitGatewayPeeringAttachmentCommand,\n RejectTransitGatewayVpcAttachmentCommand,\n RejectVpcEndpointConnectionsCommand,\n RejectVpcPeeringConnectionCommand,\n ReleaseAddressCommand,\n ReleaseHostsCommand,\n ReleaseIpamPoolAllocationCommand,\n ReplaceIamInstanceProfileAssociationCommand,\n ReplaceImageCriteriaInAllowedImagesSettingsCommand,\n ReplaceNetworkAclAssociationCommand,\n ReplaceNetworkAclEntryCommand,\n ReplaceRouteCommand,\n ReplaceRouteTableAssociationCommand,\n ReplaceTransitGatewayRouteCommand,\n ReplaceVpnTunnelCommand,\n ReportInstanceStatusCommand,\n RequestSpotFleetCommand,\n RequestSpotInstancesCommand,\n ResetAddressAttributeCommand,\n ResetEbsDefaultKmsKeyIdCommand,\n ResetFpgaImageAttributeCommand,\n ResetImageAttributeCommand,\n ResetInstanceAttributeCommand,\n ResetNetworkInterfaceAttributeCommand,\n ResetSnapshotAttributeCommand,\n RestoreAddressToClassicCommand,\n RestoreImageFromRecycleBinCommand,\n RestoreManagedPrefixListVersionCommand,\n RestoreSnapshotFromRecycleBinCommand,\n RestoreSnapshotTierCommand,\n RevokeClientVpnIngressCommand,\n RevokeSecurityGroupEgressCommand,\n RevokeSecurityGroupIngressCommand,\n RunInstancesCommand,\n RunScheduledInstancesCommand,\n SearchLocalGatewayRoutesCommand,\n SearchTransitGatewayMulticastGroupsCommand,\n SearchTransitGatewayRoutesCommand,\n SendDiagnosticInterruptCommand,\n StartDeclarativePoliciesReportCommand,\n StartInstancesCommand,\n StartNetworkInsightsAccessScopeAnalysisCommand,\n StartNetworkInsightsAnalysisCommand,\n StartVpcEndpointServicePrivateDnsVerificationCommand,\n StopInstancesCommand,\n TerminateClientVpnConnectionsCommand,\n TerminateInstancesCommand,\n UnassignIpv6AddressesCommand,\n UnassignPrivateIpAddressesCommand,\n UnassignPrivateNatGatewayAddressCommand,\n UnlockSnapshotCommand,\n UnmonitorInstancesCommand,\n UpdateSecurityGroupRuleDescriptionsEgressCommand,\n UpdateSecurityGroupRuleDescriptionsIngressCommand,\n WithdrawByoipCidrCommand\n};\nvar EC2 = class extends EC2Client {\n static {\n __name(this, \"EC2\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, EC2);\n\n// src/pagination/DescribeAddressTransfersPaginator.ts\n\nvar paginateDescribeAddressTransfers = (0, import_core.createPaginator)(EC2Client, DescribeAddressTransfersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAddressesAttributePaginator.ts\n\nvar paginateDescribeAddressesAttribute = (0, import_core.createPaginator)(EC2Client, DescribeAddressesAttributeCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAwsNetworkPerformanceMetricSubscriptionsPaginator.ts\n\nvar paginateDescribeAwsNetworkPerformanceMetricSubscriptions = (0, import_core.createPaginator)(EC2Client, DescribeAwsNetworkPerformanceMetricSubscriptionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeByoipCidrsPaginator.ts\n\nvar paginateDescribeByoipCidrs = (0, import_core.createPaginator)(EC2Client, DescribeByoipCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityBlockExtensionHistoryPaginator.ts\n\nvar paginateDescribeCapacityBlockExtensionHistory = (0, import_core.createPaginator)(EC2Client, DescribeCapacityBlockExtensionHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityBlockExtensionOfferingsPaginator.ts\n\nvar paginateDescribeCapacityBlockExtensionOfferings = (0, import_core.createPaginator)(EC2Client, DescribeCapacityBlockExtensionOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityBlockOfferingsPaginator.ts\n\nvar paginateDescribeCapacityBlockOfferings = (0, import_core.createPaginator)(EC2Client, DescribeCapacityBlockOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityReservationBillingRequestsPaginator.ts\n\nvar paginateDescribeCapacityReservationBillingRequests = (0, import_core.createPaginator)(EC2Client, DescribeCapacityReservationBillingRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityReservationFleetsPaginator.ts\n\nvar paginateDescribeCapacityReservationFleets = (0, import_core.createPaginator)(EC2Client, DescribeCapacityReservationFleetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityReservationsPaginator.ts\n\nvar paginateDescribeCapacityReservations = (0, import_core.createPaginator)(EC2Client, DescribeCapacityReservationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCarrierGatewaysPaginator.ts\n\nvar paginateDescribeCarrierGateways = (0, import_core.createPaginator)(EC2Client, DescribeCarrierGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClassicLinkInstancesPaginator.ts\n\nvar paginateDescribeClassicLinkInstances = (0, import_core.createPaginator)(EC2Client, DescribeClassicLinkInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnAuthorizationRulesPaginator.ts\n\nvar paginateDescribeClientVpnAuthorizationRules = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnAuthorizationRulesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnConnectionsPaginator.ts\n\nvar paginateDescribeClientVpnConnections = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnConnectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnEndpointsPaginator.ts\n\nvar paginateDescribeClientVpnEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnRoutesPaginator.ts\n\nvar paginateDescribeClientVpnRoutes = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnRoutesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnTargetNetworksPaginator.ts\n\nvar paginateDescribeClientVpnTargetNetworks = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnTargetNetworksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCoipPoolsPaginator.ts\n\nvar paginateDescribeCoipPools = (0, import_core.createPaginator)(EC2Client, DescribeCoipPoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeDhcpOptionsPaginator.ts\n\nvar paginateDescribeDhcpOptions = (0, import_core.createPaginator)(EC2Client, DescribeDhcpOptionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeEgressOnlyInternetGatewaysPaginator.ts\n\nvar paginateDescribeEgressOnlyInternetGateways = (0, import_core.createPaginator)(EC2Client, DescribeEgressOnlyInternetGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeExportImageTasksPaginator.ts\n\nvar paginateDescribeExportImageTasks = (0, import_core.createPaginator)(EC2Client, DescribeExportImageTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFastLaunchImagesPaginator.ts\n\nvar paginateDescribeFastLaunchImages = (0, import_core.createPaginator)(EC2Client, DescribeFastLaunchImagesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFastSnapshotRestoresPaginator.ts\n\nvar paginateDescribeFastSnapshotRestores = (0, import_core.createPaginator)(EC2Client, DescribeFastSnapshotRestoresCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFleetsPaginator.ts\n\nvar paginateDescribeFleets = (0, import_core.createPaginator)(EC2Client, DescribeFleetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFlowLogsPaginator.ts\n\nvar paginateDescribeFlowLogs = (0, import_core.createPaginator)(EC2Client, DescribeFlowLogsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFpgaImagesPaginator.ts\n\nvar paginateDescribeFpgaImages = (0, import_core.createPaginator)(EC2Client, DescribeFpgaImagesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeHostReservationOfferingsPaginator.ts\n\nvar paginateDescribeHostReservationOfferings = (0, import_core.createPaginator)(EC2Client, DescribeHostReservationOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeHostReservationsPaginator.ts\n\nvar paginateDescribeHostReservations = (0, import_core.createPaginator)(EC2Client, DescribeHostReservationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeHostsPaginator.ts\n\nvar paginateDescribeHosts = (0, import_core.createPaginator)(EC2Client, DescribeHostsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIamInstanceProfileAssociationsPaginator.ts\n\nvar paginateDescribeIamInstanceProfileAssociations = (0, import_core.createPaginator)(EC2Client, DescribeIamInstanceProfileAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeImagesPaginator.ts\n\nvar paginateDescribeImages = (0, import_core.createPaginator)(EC2Client, DescribeImagesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeImportImageTasksPaginator.ts\n\nvar paginateDescribeImportImageTasks = (0, import_core.createPaginator)(EC2Client, DescribeImportImageTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeImportSnapshotTasksPaginator.ts\n\nvar paginateDescribeImportSnapshotTasks = (0, import_core.createPaginator)(EC2Client, DescribeImportSnapshotTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceConnectEndpointsPaginator.ts\n\nvar paginateDescribeInstanceConnectEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeInstanceConnectEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceCreditSpecificationsPaginator.ts\n\nvar paginateDescribeInstanceCreditSpecifications = (0, import_core.createPaginator)(EC2Client, DescribeInstanceCreditSpecificationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceEventWindowsPaginator.ts\n\nvar paginateDescribeInstanceEventWindows = (0, import_core.createPaginator)(EC2Client, DescribeInstanceEventWindowsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceImageMetadataPaginator.ts\n\nvar paginateDescribeInstanceImageMetadata = (0, import_core.createPaginator)(EC2Client, DescribeInstanceImageMetadataCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceStatusPaginator.ts\n\nvar paginateDescribeInstanceStatus = (0, import_core.createPaginator)(EC2Client, DescribeInstanceStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceTopologyPaginator.ts\n\nvar paginateDescribeInstanceTopology = (0, import_core.createPaginator)(EC2Client, DescribeInstanceTopologyCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceTypeOfferingsPaginator.ts\n\nvar paginateDescribeInstanceTypeOfferings = (0, import_core.createPaginator)(EC2Client, DescribeInstanceTypeOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceTypesPaginator.ts\n\nvar paginateDescribeInstanceTypes = (0, import_core.createPaginator)(EC2Client, DescribeInstanceTypesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancesPaginator.ts\n\nvar paginateDescribeInstances = (0, import_core.createPaginator)(EC2Client, DescribeInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInternetGatewaysPaginator.ts\n\nvar paginateDescribeInternetGateways = (0, import_core.createPaginator)(EC2Client, DescribeInternetGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamPoolsPaginator.ts\n\nvar paginateDescribeIpamPools = (0, import_core.createPaginator)(EC2Client, DescribeIpamPoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamResourceDiscoveriesPaginator.ts\n\nvar paginateDescribeIpamResourceDiscoveries = (0, import_core.createPaginator)(EC2Client, DescribeIpamResourceDiscoveriesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamResourceDiscoveryAssociationsPaginator.ts\n\nvar paginateDescribeIpamResourceDiscoveryAssociations = (0, import_core.createPaginator)(EC2Client, DescribeIpamResourceDiscoveryAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamScopesPaginator.ts\n\nvar paginateDescribeIpamScopes = (0, import_core.createPaginator)(EC2Client, DescribeIpamScopesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamsPaginator.ts\n\nvar paginateDescribeIpams = (0, import_core.createPaginator)(EC2Client, DescribeIpamsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpv6PoolsPaginator.ts\n\nvar paginateDescribeIpv6Pools = (0, import_core.createPaginator)(EC2Client, DescribeIpv6PoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLaunchTemplateVersionsPaginator.ts\n\nvar paginateDescribeLaunchTemplateVersions = (0, import_core.createPaginator)(EC2Client, DescribeLaunchTemplateVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLaunchTemplatesPaginator.ts\n\nvar paginateDescribeLaunchTemplates = (0, import_core.createPaginator)(EC2Client, DescribeLaunchTemplatesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginator.ts\n\nvar paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations = (0, import_core.createPaginator)(\n EC2Client,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n \"NextToken\",\n \"NextToken\",\n \"MaxResults\"\n);\n\n// src/pagination/DescribeLocalGatewayRouteTableVpcAssociationsPaginator.ts\n\nvar paginateDescribeLocalGatewayRouteTableVpcAssociations = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayRouteTableVpcAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayRouteTablesPaginator.ts\n\nvar paginateDescribeLocalGatewayRouteTables = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayRouteTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayVirtualInterfaceGroupsPaginator.ts\n\nvar paginateDescribeLocalGatewayVirtualInterfaceGroups = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayVirtualInterfaceGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayVirtualInterfacesPaginator.ts\n\nvar paginateDescribeLocalGatewayVirtualInterfaces = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayVirtualInterfacesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewaysPaginator.ts\n\nvar paginateDescribeLocalGateways = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMacHostsPaginator.ts\n\nvar paginateDescribeMacHosts = (0, import_core.createPaginator)(EC2Client, DescribeMacHostsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeManagedPrefixListsPaginator.ts\n\nvar paginateDescribeManagedPrefixLists = (0, import_core.createPaginator)(EC2Client, DescribeManagedPrefixListsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMovingAddressesPaginator.ts\n\nvar paginateDescribeMovingAddresses = (0, import_core.createPaginator)(EC2Client, DescribeMovingAddressesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNatGatewaysPaginator.ts\n\nvar paginateDescribeNatGateways = (0, import_core.createPaginator)(EC2Client, DescribeNatGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkAclsPaginator.ts\n\nvar paginateDescribeNetworkAcls = (0, import_core.createPaginator)(EC2Client, DescribeNetworkAclsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsAccessScopeAnalysesPaginator.ts\n\nvar paginateDescribeNetworkInsightsAccessScopeAnalyses = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsAccessScopeAnalysesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsAccessScopesPaginator.ts\n\nvar paginateDescribeNetworkInsightsAccessScopes = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsAccessScopesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsAnalysesPaginator.ts\n\nvar paginateDescribeNetworkInsightsAnalyses = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsAnalysesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsPathsPaginator.ts\n\nvar paginateDescribeNetworkInsightsPaths = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsPathsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInterfacePermissionsPaginator.ts\n\nvar paginateDescribeNetworkInterfacePermissions = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInterfacePermissionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInterfacesPaginator.ts\n\nvar paginateDescribeNetworkInterfaces = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInterfacesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePrefixListsPaginator.ts\n\nvar paginateDescribePrefixLists = (0, import_core.createPaginator)(EC2Client, DescribePrefixListsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePrincipalIdFormatPaginator.ts\n\nvar paginateDescribePrincipalIdFormat = (0, import_core.createPaginator)(EC2Client, DescribePrincipalIdFormatCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePublicIpv4PoolsPaginator.ts\n\nvar paginateDescribePublicIpv4Pools = (0, import_core.createPaginator)(EC2Client, DescribePublicIpv4PoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeReplaceRootVolumeTasksPaginator.ts\n\nvar paginateDescribeReplaceRootVolumeTasks = (0, import_core.createPaginator)(EC2Client, DescribeReplaceRootVolumeTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeReservedInstancesModificationsPaginator.ts\n\nvar paginateDescribeReservedInstancesModifications = (0, import_core.createPaginator)(EC2Client, DescribeReservedInstancesModificationsCommand, \"NextToken\", \"NextToken\", \"\");\n\n// src/pagination/DescribeReservedInstancesOfferingsPaginator.ts\n\nvar paginateDescribeReservedInstancesOfferings = (0, import_core.createPaginator)(EC2Client, DescribeReservedInstancesOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteServerEndpointsPaginator.ts\n\nvar paginateDescribeRouteServerEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeRouteServerEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteServerPeersPaginator.ts\n\nvar paginateDescribeRouteServerPeers = (0, import_core.createPaginator)(EC2Client, DescribeRouteServerPeersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteServersPaginator.ts\n\nvar paginateDescribeRouteServers = (0, import_core.createPaginator)(EC2Client, DescribeRouteServersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteTablesPaginator.ts\n\nvar paginateDescribeRouteTables = (0, import_core.createPaginator)(EC2Client, DescribeRouteTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeScheduledInstanceAvailabilityPaginator.ts\n\nvar paginateDescribeScheduledInstanceAvailability = (0, import_core.createPaginator)(EC2Client, DescribeScheduledInstanceAvailabilityCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeScheduledInstancesPaginator.ts\n\nvar paginateDescribeScheduledInstances = (0, import_core.createPaginator)(EC2Client, DescribeScheduledInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSecurityGroupRulesPaginator.ts\n\nvar paginateDescribeSecurityGroupRules = (0, import_core.createPaginator)(EC2Client, DescribeSecurityGroupRulesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSecurityGroupVpcAssociationsPaginator.ts\n\nvar paginateDescribeSecurityGroupVpcAssociations = (0, import_core.createPaginator)(EC2Client, DescribeSecurityGroupVpcAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSecurityGroupsPaginator.ts\n\nvar paginateDescribeSecurityGroups = (0, import_core.createPaginator)(EC2Client, DescribeSecurityGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSnapshotTierStatusPaginator.ts\n\nvar paginateDescribeSnapshotTierStatus = (0, import_core.createPaginator)(EC2Client, DescribeSnapshotTierStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSnapshotsPaginator.ts\n\nvar paginateDescribeSnapshots = (0, import_core.createPaginator)(EC2Client, DescribeSnapshotsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSpotFleetRequestsPaginator.ts\n\nvar paginateDescribeSpotFleetRequests = (0, import_core.createPaginator)(EC2Client, DescribeSpotFleetRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSpotInstanceRequestsPaginator.ts\n\nvar paginateDescribeSpotInstanceRequests = (0, import_core.createPaginator)(EC2Client, DescribeSpotInstanceRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSpotPriceHistoryPaginator.ts\n\nvar paginateDescribeSpotPriceHistory = (0, import_core.createPaginator)(EC2Client, DescribeSpotPriceHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeStaleSecurityGroupsPaginator.ts\n\nvar paginateDescribeStaleSecurityGroups = (0, import_core.createPaginator)(EC2Client, DescribeStaleSecurityGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeStoreImageTasksPaginator.ts\n\nvar paginateDescribeStoreImageTasks = (0, import_core.createPaginator)(EC2Client, DescribeStoreImageTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSubnetsPaginator.ts\n\nvar paginateDescribeSubnets = (0, import_core.createPaginator)(EC2Client, DescribeSubnetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTagsPaginator.ts\n\nvar paginateDescribeTags = (0, import_core.createPaginator)(EC2Client, DescribeTagsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrafficMirrorFiltersPaginator.ts\n\nvar paginateDescribeTrafficMirrorFilters = (0, import_core.createPaginator)(EC2Client, DescribeTrafficMirrorFiltersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrafficMirrorSessionsPaginator.ts\n\nvar paginateDescribeTrafficMirrorSessions = (0, import_core.createPaginator)(EC2Client, DescribeTrafficMirrorSessionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrafficMirrorTargetsPaginator.ts\n\nvar paginateDescribeTrafficMirrorTargets = (0, import_core.createPaginator)(EC2Client, DescribeTrafficMirrorTargetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayAttachmentsPaginator.ts\n\nvar paginateDescribeTransitGatewayAttachments = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayAttachmentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayConnectPeersPaginator.ts\n\nvar paginateDescribeTransitGatewayConnectPeers = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayConnectPeersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayConnectsPaginator.ts\n\nvar paginateDescribeTransitGatewayConnects = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayConnectsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayMulticastDomainsPaginator.ts\n\nvar paginateDescribeTransitGatewayMulticastDomains = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayMulticastDomainsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayPeeringAttachmentsPaginator.ts\n\nvar paginateDescribeTransitGatewayPeeringAttachments = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayPeeringAttachmentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayPolicyTablesPaginator.ts\n\nvar paginateDescribeTransitGatewayPolicyTables = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayPolicyTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayRouteTableAnnouncementsPaginator.ts\n\nvar paginateDescribeTransitGatewayRouteTableAnnouncements = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayRouteTableAnnouncementsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayRouteTablesPaginator.ts\n\nvar paginateDescribeTransitGatewayRouteTables = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayRouteTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayVpcAttachmentsPaginator.ts\n\nvar paginateDescribeTransitGatewayVpcAttachments = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayVpcAttachmentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewaysPaginator.ts\n\nvar paginateDescribeTransitGateways = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrunkInterfaceAssociationsPaginator.ts\n\nvar paginateDescribeTrunkInterfaceAssociations = (0, import_core.createPaginator)(EC2Client, DescribeTrunkInterfaceAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessEndpointsPaginator.ts\n\nvar paginateDescribeVerifiedAccessEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessGroupsPaginator.ts\n\nvar paginateDescribeVerifiedAccessGroups = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessInstanceLoggingConfigurationsPaginator.ts\n\nvar paginateDescribeVerifiedAccessInstanceLoggingConfigurations = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessInstanceLoggingConfigurationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessInstancesPaginator.ts\n\nvar paginateDescribeVerifiedAccessInstances = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessTrustProvidersPaginator.ts\n\nvar paginateDescribeVerifiedAccessTrustProviders = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessTrustProvidersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVolumeStatusPaginator.ts\n\nvar paginateDescribeVolumeStatus = (0, import_core.createPaginator)(EC2Client, DescribeVolumeStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVolumesModificationsPaginator.ts\n\nvar paginateDescribeVolumesModifications = (0, import_core.createPaginator)(EC2Client, DescribeVolumesModificationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVolumesPaginator.ts\n\nvar paginateDescribeVolumes = (0, import_core.createPaginator)(EC2Client, DescribeVolumesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcClassicLinkDnsSupportPaginator.ts\n\nvar paginateDescribeVpcClassicLinkDnsSupport = (0, import_core.createPaginator)(EC2Client, DescribeVpcClassicLinkDnsSupportCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointConnectionNotificationsPaginator.ts\n\nvar paginateDescribeVpcEndpointConnectionNotifications = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointConnectionNotificationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointConnectionsPaginator.ts\n\nvar paginateDescribeVpcEndpointConnections = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointConnectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointServiceConfigurationsPaginator.ts\n\nvar paginateDescribeVpcEndpointServiceConfigurations = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointServiceConfigurationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointServicePermissionsPaginator.ts\n\nvar paginateDescribeVpcEndpointServicePermissions = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointServicePermissionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointsPaginator.ts\n\nvar paginateDescribeVpcEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcPeeringConnectionsPaginator.ts\n\nvar paginateDescribeVpcPeeringConnections = (0, import_core.createPaginator)(EC2Client, DescribeVpcPeeringConnectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcsPaginator.ts\n\nvar paginateDescribeVpcs = (0, import_core.createPaginator)(EC2Client, DescribeVpcsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetAssociatedIpv6PoolCidrsPaginator.ts\n\nvar paginateGetAssociatedIpv6PoolCidrs = (0, import_core.createPaginator)(EC2Client, GetAssociatedIpv6PoolCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetAwsNetworkPerformanceDataPaginator.ts\n\nvar paginateGetAwsNetworkPerformanceData = (0, import_core.createPaginator)(EC2Client, GetAwsNetworkPerformanceDataCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetGroupsForCapacityReservationPaginator.ts\n\nvar paginateGetGroupsForCapacityReservation = (0, import_core.createPaginator)(EC2Client, GetGroupsForCapacityReservationCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetInstanceTypesFromInstanceRequirementsPaginator.ts\n\nvar paginateGetInstanceTypesFromInstanceRequirements = (0, import_core.createPaginator)(EC2Client, GetInstanceTypesFromInstanceRequirementsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamAddressHistoryPaginator.ts\n\nvar paginateGetIpamAddressHistory = (0, import_core.createPaginator)(EC2Client, GetIpamAddressHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamDiscoveredAccountsPaginator.ts\n\nvar paginateGetIpamDiscoveredAccounts = (0, import_core.createPaginator)(EC2Client, GetIpamDiscoveredAccountsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamDiscoveredResourceCidrsPaginator.ts\n\nvar paginateGetIpamDiscoveredResourceCidrs = (0, import_core.createPaginator)(EC2Client, GetIpamDiscoveredResourceCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamPoolAllocationsPaginator.ts\n\nvar paginateGetIpamPoolAllocations = (0, import_core.createPaginator)(EC2Client, GetIpamPoolAllocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamPoolCidrsPaginator.ts\n\nvar paginateGetIpamPoolCidrs = (0, import_core.createPaginator)(EC2Client, GetIpamPoolCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamResourceCidrsPaginator.ts\n\nvar paginateGetIpamResourceCidrs = (0, import_core.createPaginator)(EC2Client, GetIpamResourceCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetManagedPrefixListAssociationsPaginator.ts\n\nvar paginateGetManagedPrefixListAssociations = (0, import_core.createPaginator)(EC2Client, GetManagedPrefixListAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetManagedPrefixListEntriesPaginator.ts\n\nvar paginateGetManagedPrefixListEntries = (0, import_core.createPaginator)(EC2Client, GetManagedPrefixListEntriesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetNetworkInsightsAccessScopeAnalysisFindingsPaginator.ts\n\nvar paginateGetNetworkInsightsAccessScopeAnalysisFindings = (0, import_core.createPaginator)(EC2Client, GetNetworkInsightsAccessScopeAnalysisFindingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetSecurityGroupsForVpcPaginator.ts\n\nvar paginateGetSecurityGroupsForVpc = (0, import_core.createPaginator)(EC2Client, GetSecurityGroupsForVpcCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetSpotPlacementScoresPaginator.ts\n\nvar paginateGetSpotPlacementScores = (0, import_core.createPaginator)(EC2Client, GetSpotPlacementScoresCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayAttachmentPropagationsPaginator.ts\n\nvar paginateGetTransitGatewayAttachmentPropagations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayAttachmentPropagationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayMulticastDomainAssociationsPaginator.ts\n\nvar paginateGetTransitGatewayMulticastDomainAssociations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayMulticastDomainAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayPolicyTableAssociationsPaginator.ts\n\nvar paginateGetTransitGatewayPolicyTableAssociations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayPolicyTableAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayPrefixListReferencesPaginator.ts\n\nvar paginateGetTransitGatewayPrefixListReferences = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayPrefixListReferencesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayRouteTableAssociationsPaginator.ts\n\nvar paginateGetTransitGatewayRouteTableAssociations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayRouteTableAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayRouteTablePropagationsPaginator.ts\n\nvar paginateGetTransitGatewayRouteTablePropagations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayRouteTablePropagationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetVpnConnectionDeviceTypesPaginator.ts\n\nvar paginateGetVpnConnectionDeviceTypes = (0, import_core.createPaginator)(EC2Client, GetVpnConnectionDeviceTypesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListImagesInRecycleBinPaginator.ts\n\nvar paginateListImagesInRecycleBin = (0, import_core.createPaginator)(EC2Client, ListImagesInRecycleBinCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListSnapshotsInRecycleBinPaginator.ts\n\nvar paginateListSnapshotsInRecycleBin = (0, import_core.createPaginator)(EC2Client, ListSnapshotsInRecycleBinCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/SearchLocalGatewayRoutesPaginator.ts\n\nvar paginateSearchLocalGatewayRoutes = (0, import_core.createPaginator)(EC2Client, SearchLocalGatewayRoutesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/SearchTransitGatewayMulticastGroupsPaginator.ts\n\nvar paginateSearchTransitGatewayMulticastGroups = (0, import_core.createPaginator)(EC2Client, SearchTransitGatewayMulticastGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForBundleTaskComplete.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeBundleTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.BundleTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"complete\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.BundleTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForBundleTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForBundleTaskComplete\");\nvar waitUntilBundleTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilBundleTaskComplete\");\n\n// src/waiters/waitForConversionTaskCancelled.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeConversionTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"cancelled\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForConversionTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForConversionTaskCancelled\");\nvar waitUntilConversionTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilConversionTaskCancelled\");\n\n// src/waiters/waitForConversionTaskCompleted.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeConversionTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"cancelled\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"cancelling\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForConversionTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForConversionTaskCompleted\");\nvar waitUntilConversionTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilConversionTaskCompleted\");\n\n// src/waiters/waitForConversionTaskDeleted.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeConversionTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForConversionTaskDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForConversionTaskDeleted\");\nvar waitUntilConversionTaskDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilConversionTaskDeleted\");\n\n// src/waiters/waitForCustomerGatewayAvailable.ts\n\nvar checkState5 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeCustomerGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.CustomerGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.CustomerGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.CustomerGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleting\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForCustomerGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n}, \"waitForCustomerGatewayAvailable\");\nvar waitUntilCustomerGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilCustomerGatewayAvailable\");\n\n// src/waiters/waitForExportTaskCancelled.ts\n\nvar checkState6 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeExportTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ExportTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"cancelled\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForExportTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n}, \"waitForExportTaskCancelled\");\nvar waitUntilExportTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilExportTaskCancelled\");\n\n// src/waiters/waitForExportTaskCompleted.ts\n\nvar checkState7 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeExportTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ExportTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForExportTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState7);\n}, \"waitForExportTaskCompleted\");\nvar waitUntilExportTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState7);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilExportTaskCompleted\");\n\n// src/waiters/waitForImageAvailable.ts\n\nvar checkState8 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImagesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Images);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Images);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForImageAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState8);\n}, \"waitForImageAvailable\");\nvar waitUntilImageAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState8);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilImageAvailable\");\n\n// src/waiters/waitForImageExists.ts\n\nvar checkState9 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImagesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Images);\n return flat_1.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidAMIID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForImageExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState9);\n}, \"waitForImageExists\");\nvar waitUntilImageExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState9);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilImageExists\");\n\n// src/waiters/waitForInstanceExists.ts\n\nvar checkState10 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n return flat_1.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstanceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState10);\n}, \"waitForInstanceExists\");\nvar waitUntilInstanceExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState10);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceExists\");\n\n// src/waiters/waitForInstanceRunning.ts\n\nvar checkState11 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n let allStringEq_8 = returnComparator().length > 0;\n for (const element_7 of returnComparator()) {\n allStringEq_8 = allStringEq_8 && element_7 == \"running\";\n }\n if (allStringEq_8) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"shutting-down\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"terminated\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"stopping\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstanceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState11);\n}, \"waitForInstanceRunning\");\nvar waitUntilInstanceRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState11);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceRunning\");\n\n// src/waiters/waitForInstanceStatusOk.ts\n\nvar checkState12 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstanceStatusCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.InstanceStatuses);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.InstanceStatus.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"ok\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstanceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState12);\n}, \"waitForInstanceStatusOk\");\nvar waitUntilInstanceStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState12);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceStatusOk\");\n\n// src/waiters/waitForInstanceStopped.ts\n\nvar checkState13 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n let allStringEq_8 = returnComparator().length > 0;\n for (const element_7 of returnComparator()) {\n allStringEq_8 = allStringEq_8 && element_7 == \"stopped\";\n }\n if (allStringEq_8) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"pending\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"terminated\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState13);\n}, \"waitForInstanceStopped\");\nvar waitUntilInstanceStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState13);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceStopped\");\n\n// src/waiters/waitForInstanceTerminated.ts\n\nvar checkState14 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n let allStringEq_8 = returnComparator().length > 0;\n for (const element_7 of returnComparator()) {\n allStringEq_8 = allStringEq_8 && element_7 == \"terminated\";\n }\n if (allStringEq_8) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"pending\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"stopping\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceTerminated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState14);\n}, \"waitForInstanceTerminated\");\nvar waitUntilInstanceTerminated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState14);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceTerminated\");\n\n// src/waiters/waitForInternetGatewayExists.ts\n\nvar checkState15 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInternetGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.InternetGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.InternetGatewayId;\n });\n return projection_3.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInternetGateway.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInternetGatewayExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState15);\n}, \"waitForInternetGatewayExists\");\nvar waitUntilInternetGatewayExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState15);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInternetGatewayExists\");\n\n// src/waiters/waitForKeyPairExists.ts\n\nvar checkState16 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeKeyPairsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.KeyPairs);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.KeyName;\n });\n return projection_3.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidKeyPair.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForKeyPairExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState16);\n}, \"waitForKeyPairExists\");\nvar waitUntilKeyPairExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState16);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilKeyPairExists\");\n\n// src/waiters/waitForNatGatewayAvailable.ts\n\nvar checkState17 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeNatGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleting\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NatGatewayNotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForNatGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState17);\n}, \"waitForNatGatewayAvailable\");\nvar waitUntilNatGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState17);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilNatGatewayAvailable\");\n\n// src/waiters/waitForNatGatewayDeleted.ts\n\nvar checkState18 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeNatGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NatGatewayNotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForNatGatewayDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState18);\n}, \"waitForNatGatewayDeleted\");\nvar waitUntilNatGatewayDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState18);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilNatGatewayDeleted\");\n\n// src/waiters/waitForNetworkInterfaceAvailable.ts\n\nvar checkState19 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeNetworkInterfacesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NetworkInterfaces);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidNetworkInterfaceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForNetworkInterfaceAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 20, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState19);\n}, \"waitForNetworkInterfaceAvailable\");\nvar waitUntilNetworkInterfaceAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 20, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState19);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilNetworkInterfaceAvailable\");\n\n// src/waiters/waitForSnapshotImported.ts\n\nvar checkState20 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImportSnapshotTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ImportSnapshotTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.SnapshotTaskDetail.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ImportSnapshotTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.SnapshotTaskDetail.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"error\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSnapshotImported = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState20);\n}, \"waitForSnapshotImported\");\nvar waitUntilSnapshotImported = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState20);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSnapshotImported\");\n\n// src/waiters/waitForSecurityGroupExists.ts\n\nvar checkState21 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSecurityGroupsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SecurityGroups);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.GroupId;\n });\n return projection_3.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidGroup.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSecurityGroupExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState21);\n}, \"waitForSecurityGroupExists\");\nvar waitUntilSecurityGroupExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState21);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSecurityGroupExists\");\n\n// src/waiters/waitForSnapshotCompleted.ts\n\nvar checkState22 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSnapshotsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Snapshots);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Snapshots);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"error\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSnapshotCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState22);\n}, \"waitForSnapshotCompleted\");\nvar waitUntilSnapshotCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState22);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSnapshotCompleted\");\n\n// src/waiters/waitForSpotInstanceRequestFulfilled.ts\n\nvar checkState23 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSpotInstanceRequestsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"fulfilled\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"request-canceled-and-instance-running\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"schedule-expired\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"canceled-before-fulfillment\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"bad-parameters\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"system-error\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidSpotInstanceRequestID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSpotInstanceRequestFulfilled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState23);\n}, \"waitForSpotInstanceRequestFulfilled\");\nvar waitUntilSpotInstanceRequestFulfilled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState23);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSpotInstanceRequestFulfilled\");\n\n// src/waiters/waitForStoreImageTaskComplete.ts\n\nvar checkState24 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeStoreImageTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.StoreImageTaskResults);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.StoreTaskState;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"Completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.StoreImageTaskResults);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.StoreTaskState;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.StoreImageTaskResults);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.StoreTaskState;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForStoreImageTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState24);\n}, \"waitForStoreImageTaskComplete\");\nvar waitUntilStoreImageTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState24);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilStoreImageTaskComplete\");\n\n// src/waiters/waitForSubnetAvailable.ts\n\nvar checkState25 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSubnetsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Subnets);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSubnetAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState25);\n}, \"waitForSubnetAvailable\");\nvar waitUntilSubnetAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState25);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSubnetAvailable\");\n\n// src/waiters/waitForSystemStatusOk.ts\n\nvar checkState26 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstanceStatusCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.InstanceStatuses);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.SystemStatus.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"ok\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSystemStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState26);\n}, \"waitForSystemStatusOk\");\nvar waitUntilSystemStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState26);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSystemStatusOk\");\n\n// src/waiters/waitForPasswordDataAvailable.ts\n\nvar checkState27 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetPasswordDataCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.PasswordData.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForPasswordDataAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState27);\n}, \"waitForPasswordDataAvailable\");\nvar waitUntilPasswordDataAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState27);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilPasswordDataAvailable\");\n\n// src/waiters/waitForVolumeAvailable.ts\n\nvar checkState28 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVolumesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVolumeAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState28);\n}, \"waitForVolumeAvailable\");\nvar waitUntilVolumeAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState28);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVolumeAvailable\");\n\n// src/waiters/waitForVolumeDeleted.ts\n\nvar checkState29 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVolumesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVolume.NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVolumeDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState29);\n}, \"waitForVolumeDeleted\");\nvar waitUntilVolumeDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState29);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVolumeDeleted\");\n\n// src/waiters/waitForVolumeInUse.ts\n\nvar checkState30 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVolumesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"in-use\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVolumeInUse = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState30);\n}, \"waitForVolumeInUse\");\nvar waitUntilVolumeInUse = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState30);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVolumeInUse\");\n\n// src/waiters/waitForVpcAvailable.ts\n\nvar checkState31 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Vpcs);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState31);\n}, \"waitForVpcAvailable\");\nvar waitUntilVpcAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState31);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcAvailable\");\n\n// src/waiters/waitForVpcExists.ts\n\nvar checkState32 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcsCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVpcID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState32);\n}, \"waitForVpcExists\");\nvar waitUntilVpcExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState32);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcExists\");\n\n// src/waiters/waitForVpcPeeringConnectionDeleted.ts\n\nvar checkState33 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcPeeringConnectionsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpcPeeringConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVpcPeeringConnectionID.NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcPeeringConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState33);\n}, \"waitForVpcPeeringConnectionDeleted\");\nvar waitUntilVpcPeeringConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState33);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcPeeringConnectionDeleted\");\n\n// src/waiters/waitForVpcPeeringConnectionExists.ts\n\nvar checkState34 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcPeeringConnectionsCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVpcPeeringConnectionID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcPeeringConnectionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState34);\n}, \"waitForVpcPeeringConnectionExists\");\nvar waitUntilVpcPeeringConnectionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState34);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcPeeringConnectionExists\");\n\n// src/waiters/waitForVpnConnectionAvailable.ts\n\nvar checkState35 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpnConnectionsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleting\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpnConnectionAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState35);\n}, \"waitForVpnConnectionAvailable\");\nvar waitUntilVpnConnectionAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState35);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpnConnectionAvailable\");\n\n// src/waiters/waitForVpnConnectionDeleted.ts\n\nvar checkState36 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpnConnectionsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"pending\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpnConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState36);\n}, \"waitForVpnConnectionDeleted\");\nvar waitUntilVpnConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState36);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpnConnectionDeleted\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EC2ServiceException,\n __Client,\n EC2Client,\n EC2,\n $Command,\n AcceptAddressTransferCommand,\n AcceptCapacityReservationBillingOwnershipCommand,\n AcceptReservedInstancesExchangeQuoteCommand,\n AcceptTransitGatewayMulticastDomainAssociationsCommand,\n AcceptTransitGatewayPeeringAttachmentCommand,\n AcceptTransitGatewayVpcAttachmentCommand,\n AcceptVpcEndpointConnectionsCommand,\n AcceptVpcPeeringConnectionCommand,\n AdvertiseByoipCidrCommand,\n AllocateAddressCommand,\n AllocateHostsCommand,\n AllocateIpamPoolCidrCommand,\n ApplySecurityGroupsToClientVpnTargetNetworkCommand,\n AssignIpv6AddressesCommand,\n AssignPrivateIpAddressesCommand,\n AssignPrivateNatGatewayAddressCommand,\n AssociateAddressCommand,\n AssociateCapacityReservationBillingOwnerCommand,\n AssociateClientVpnTargetNetworkCommand,\n AssociateDhcpOptionsCommand,\n AssociateEnclaveCertificateIamRoleCommand,\n AssociateIamInstanceProfileCommand,\n AssociateInstanceEventWindowCommand,\n AssociateIpamByoasnCommand,\n AssociateIpamResourceDiscoveryCommand,\n AssociateNatGatewayAddressCommand,\n AssociateRouteServerCommand,\n AssociateRouteTableCommand,\n AssociateSecurityGroupVpcCommand,\n AssociateSubnetCidrBlockCommand,\n AssociateTransitGatewayMulticastDomainCommand,\n AssociateTransitGatewayPolicyTableCommand,\n AssociateTransitGatewayRouteTableCommand,\n AssociateTrunkInterfaceCommand,\n AssociateVpcCidrBlockCommand,\n AttachClassicLinkVpcCommand,\n AttachInternetGatewayCommand,\n AttachNetworkInterfaceCommand,\n AttachVerifiedAccessTrustProviderCommand,\n AttachVolumeCommand,\n AttachVpnGatewayCommand,\n AuthorizeClientVpnIngressCommand,\n AuthorizeSecurityGroupEgressCommand,\n AuthorizeSecurityGroupIngressCommand,\n BundleInstanceCommand,\n CancelBundleTaskCommand,\n CancelCapacityReservationCommand,\n CancelCapacityReservationFleetsCommand,\n CancelConversionTaskCommand,\n CancelDeclarativePoliciesReportCommand,\n CancelExportTaskCommand,\n CancelImageLaunchPermissionCommand,\n CancelImportTaskCommand,\n CancelReservedInstancesListingCommand,\n CancelSpotFleetRequestsCommand,\n CancelSpotInstanceRequestsCommand,\n ConfirmProductInstanceCommand,\n CopyFpgaImageCommand,\n CopyImageCommand,\n CopySnapshotCommand,\n CreateCapacityReservationBySplittingCommand,\n CreateCapacityReservationCommand,\n CreateCapacityReservationFleetCommand,\n CreateCarrierGatewayCommand,\n CreateClientVpnEndpointCommand,\n CreateClientVpnRouteCommand,\n CreateCoipCidrCommand,\n CreateCoipPoolCommand,\n CreateCustomerGatewayCommand,\n CreateDefaultSubnetCommand,\n CreateDefaultVpcCommand,\n CreateDhcpOptionsCommand,\n CreateEgressOnlyInternetGatewayCommand,\n CreateFleetCommand,\n CreateFlowLogsCommand,\n CreateFpgaImageCommand,\n CreateImageCommand,\n CreateInstanceConnectEndpointCommand,\n CreateInstanceEventWindowCommand,\n CreateInstanceExportTaskCommand,\n CreateInternetGatewayCommand,\n CreateIpamCommand,\n CreateIpamExternalResourceVerificationTokenCommand,\n CreateIpamPoolCommand,\n CreateIpamResourceDiscoveryCommand,\n CreateIpamScopeCommand,\n CreateKeyPairCommand,\n CreateLaunchTemplateCommand,\n CreateLaunchTemplateVersionCommand,\n CreateLocalGatewayRouteCommand,\n CreateLocalGatewayRouteTableCommand,\n CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n CreateLocalGatewayRouteTableVpcAssociationCommand,\n CreateLocalGatewayVirtualInterfaceCommand,\n CreateLocalGatewayVirtualInterfaceGroupCommand,\n CreateManagedPrefixListCommand,\n CreateNatGatewayCommand,\n CreateNetworkAclCommand,\n CreateNetworkAclEntryCommand,\n CreateNetworkInsightsAccessScopeCommand,\n CreateNetworkInsightsPathCommand,\n CreateNetworkInterfaceCommand,\n CreateNetworkInterfacePermissionCommand,\n CreatePlacementGroupCommand,\n CreatePublicIpv4PoolCommand,\n CreateReplaceRootVolumeTaskCommand,\n CreateReservedInstancesListingCommand,\n CreateRestoreImageTaskCommand,\n CreateRouteCommand,\n CreateRouteServerCommand,\n CreateRouteServerEndpointCommand,\n CreateRouteServerPeerCommand,\n CreateRouteTableCommand,\n CreateSecurityGroupCommand,\n CreateSnapshotCommand,\n CreateSnapshotsCommand,\n CreateSpotDatafeedSubscriptionCommand,\n CreateStoreImageTaskCommand,\n CreateSubnetCidrReservationCommand,\n CreateSubnetCommand,\n CreateTagsCommand,\n CreateTrafficMirrorFilterCommand,\n CreateTrafficMirrorFilterRuleCommand,\n CreateTrafficMirrorSessionCommand,\n CreateTrafficMirrorTargetCommand,\n CreateTransitGatewayCommand,\n CreateTransitGatewayConnectCommand,\n CreateTransitGatewayConnectPeerCommand,\n CreateTransitGatewayMulticastDomainCommand,\n CreateTransitGatewayPeeringAttachmentCommand,\n CreateTransitGatewayPolicyTableCommand,\n CreateTransitGatewayPrefixListReferenceCommand,\n CreateTransitGatewayRouteCommand,\n CreateTransitGatewayRouteTableAnnouncementCommand,\n CreateTransitGatewayRouteTableCommand,\n CreateTransitGatewayVpcAttachmentCommand,\n CreateVerifiedAccessEndpointCommand,\n CreateVerifiedAccessGroupCommand,\n CreateVerifiedAccessInstanceCommand,\n CreateVerifiedAccessTrustProviderCommand,\n CreateVolumeCommand,\n CreateVpcBlockPublicAccessExclusionCommand,\n CreateVpcCommand,\n CreateVpcEndpointCommand,\n CreateVpcEndpointConnectionNotificationCommand,\n CreateVpcEndpointServiceConfigurationCommand,\n CreateVpcPeeringConnectionCommand,\n CreateVpnConnectionCommand,\n CreateVpnConnectionRouteCommand,\n CreateVpnGatewayCommand,\n DeleteCarrierGatewayCommand,\n DeleteClientVpnEndpointCommand,\n DeleteClientVpnRouteCommand,\n DeleteCoipCidrCommand,\n DeleteCoipPoolCommand,\n DeleteCustomerGatewayCommand,\n DeleteDhcpOptionsCommand,\n DeleteEgressOnlyInternetGatewayCommand,\n DeleteFleetsCommand,\n DeleteFlowLogsCommand,\n DeleteFpgaImageCommand,\n DeleteInstanceConnectEndpointCommand,\n DeleteInstanceEventWindowCommand,\n DeleteInternetGatewayCommand,\n DeleteIpamCommand,\n DeleteIpamExternalResourceVerificationTokenCommand,\n DeleteIpamPoolCommand,\n DeleteIpamResourceDiscoveryCommand,\n DeleteIpamScopeCommand,\n DeleteKeyPairCommand,\n DeleteLaunchTemplateCommand,\n DeleteLaunchTemplateVersionsCommand,\n DeleteLocalGatewayRouteCommand,\n DeleteLocalGatewayRouteTableCommand,\n DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n DeleteLocalGatewayRouteTableVpcAssociationCommand,\n DeleteLocalGatewayVirtualInterfaceCommand,\n DeleteLocalGatewayVirtualInterfaceGroupCommand,\n DeleteManagedPrefixListCommand,\n DeleteNatGatewayCommand,\n DeleteNetworkAclCommand,\n DeleteNetworkAclEntryCommand,\n DeleteNetworkInsightsAccessScopeAnalysisCommand,\n DeleteNetworkInsightsAccessScopeCommand,\n DeleteNetworkInsightsAnalysisCommand,\n DeleteNetworkInsightsPathCommand,\n DeleteNetworkInterfaceCommand,\n DeleteNetworkInterfacePermissionCommand,\n DeletePlacementGroupCommand,\n DeletePublicIpv4PoolCommand,\n DeleteQueuedReservedInstancesCommand,\n DeleteRouteCommand,\n DeleteRouteServerCommand,\n DeleteRouteServerEndpointCommand,\n DeleteRouteServerPeerCommand,\n DeleteRouteTableCommand,\n DeleteSecurityGroupCommand,\n DeleteSnapshotCommand,\n DeleteSpotDatafeedSubscriptionCommand,\n DeleteSubnetCidrReservationCommand,\n DeleteSubnetCommand,\n DeleteTagsCommand,\n DeleteTrafficMirrorFilterCommand,\n DeleteTrafficMirrorFilterRuleCommand,\n DeleteTrafficMirrorSessionCommand,\n DeleteTrafficMirrorTargetCommand,\n DeleteTransitGatewayCommand,\n DeleteTransitGatewayConnectCommand,\n DeleteTransitGatewayConnectPeerCommand,\n DeleteTransitGatewayMulticastDomainCommand,\n DeleteTransitGatewayPeeringAttachmentCommand,\n DeleteTransitGatewayPolicyTableCommand,\n DeleteTransitGatewayPrefixListReferenceCommand,\n DeleteTransitGatewayRouteCommand,\n DeleteTransitGatewayRouteTableAnnouncementCommand,\n DeleteTransitGatewayRouteTableCommand,\n DeleteTransitGatewayVpcAttachmentCommand,\n DeleteVerifiedAccessEndpointCommand,\n DeleteVerifiedAccessGroupCommand,\n DeleteVerifiedAccessInstanceCommand,\n DeleteVerifiedAccessTrustProviderCommand,\n DeleteVolumeCommand,\n DeleteVpcBlockPublicAccessExclusionCommand,\n DeleteVpcCommand,\n DeleteVpcEndpointConnectionNotificationsCommand,\n DeleteVpcEndpointServiceConfigurationsCommand,\n DeleteVpcEndpointsCommand,\n DeleteVpcPeeringConnectionCommand,\n DeleteVpnConnectionCommand,\n DeleteVpnConnectionRouteCommand,\n DeleteVpnGatewayCommand,\n DeprovisionByoipCidrCommand,\n DeprovisionIpamByoasnCommand,\n DeprovisionIpamPoolCidrCommand,\n DeprovisionPublicIpv4PoolCidrCommand,\n DeregisterImageCommand,\n DeregisterInstanceEventNotificationAttributesCommand,\n DeregisterTransitGatewayMulticastGroupMembersCommand,\n DeregisterTransitGatewayMulticastGroupSourcesCommand,\n DescribeAccountAttributesCommand,\n DescribeAddressTransfersCommand,\n DescribeAddressesAttributeCommand,\n DescribeAddressesCommand,\n DescribeAggregateIdFormatCommand,\n DescribeAvailabilityZonesCommand,\n DescribeAwsNetworkPerformanceMetricSubscriptionsCommand,\n DescribeBundleTasksCommand,\n DescribeByoipCidrsCommand,\n DescribeCapacityBlockExtensionHistoryCommand,\n DescribeCapacityBlockExtensionOfferingsCommand,\n DescribeCapacityBlockOfferingsCommand,\n DescribeCapacityReservationBillingRequestsCommand,\n DescribeCapacityReservationFleetsCommand,\n DescribeCapacityReservationsCommand,\n DescribeCarrierGatewaysCommand,\n DescribeClassicLinkInstancesCommand,\n DescribeClientVpnAuthorizationRulesCommand,\n DescribeClientVpnConnectionsCommand,\n DescribeClientVpnEndpointsCommand,\n DescribeClientVpnRoutesCommand,\n DescribeClientVpnTargetNetworksCommand,\n DescribeCoipPoolsCommand,\n DescribeConversionTasksCommand,\n DescribeCustomerGatewaysCommand,\n DescribeDeclarativePoliciesReportsCommand,\n DescribeDhcpOptionsCommand,\n DescribeEgressOnlyInternetGatewaysCommand,\n DescribeElasticGpusCommand,\n DescribeExportImageTasksCommand,\n DescribeExportTasksCommand,\n DescribeFastLaunchImagesCommand,\n DescribeFastSnapshotRestoresCommand,\n DescribeFleetHistoryCommand,\n DescribeFleetInstancesCommand,\n DescribeFleetsCommand,\n DescribeFlowLogsCommand,\n DescribeFpgaImageAttributeCommand,\n DescribeFpgaImagesCommand,\n DescribeHostReservationOfferingsCommand,\n DescribeHostReservationsCommand,\n DescribeHostsCommand,\n DescribeIamInstanceProfileAssociationsCommand,\n DescribeIdFormatCommand,\n DescribeIdentityIdFormatCommand,\n DescribeImageAttributeCommand,\n DescribeImagesCommand,\n DescribeImportImageTasksCommand,\n DescribeImportSnapshotTasksCommand,\n DescribeInstanceAttributeCommand,\n DescribeInstanceConnectEndpointsCommand,\n DescribeInstanceCreditSpecificationsCommand,\n DescribeInstanceEventNotificationAttributesCommand,\n DescribeInstanceEventWindowsCommand,\n DescribeInstanceImageMetadataCommand,\n DescribeInstanceStatusCommand,\n DescribeInstanceTopologyCommand,\n DescribeInstanceTypeOfferingsCommand,\n DescribeInstanceTypesCommand,\n DescribeInstancesCommand,\n DescribeInternetGatewaysCommand,\n DescribeIpamByoasnCommand,\n DescribeIpamExternalResourceVerificationTokensCommand,\n DescribeIpamPoolsCommand,\n DescribeIpamResourceDiscoveriesCommand,\n DescribeIpamResourceDiscoveryAssociationsCommand,\n DescribeIpamScopesCommand,\n DescribeIpamsCommand,\n DescribeIpv6PoolsCommand,\n DescribeKeyPairsCommand,\n DescribeLaunchTemplateVersionsCommand,\n DescribeLaunchTemplatesCommand,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n DescribeLocalGatewayRouteTableVpcAssociationsCommand,\n DescribeLocalGatewayRouteTablesCommand,\n DescribeLocalGatewayVirtualInterfaceGroupsCommand,\n DescribeLocalGatewayVirtualInterfacesCommand,\n DescribeLocalGatewaysCommand,\n DescribeLockedSnapshotsCommand,\n DescribeMacHostsCommand,\n DescribeManagedPrefixListsCommand,\n DescribeMovingAddressesCommand,\n DescribeNatGatewaysCommand,\n DescribeNetworkAclsCommand,\n DescribeNetworkInsightsAccessScopeAnalysesCommand,\n DescribeNetworkInsightsAccessScopesCommand,\n DescribeNetworkInsightsAnalysesCommand,\n DescribeNetworkInsightsPathsCommand,\n DescribeNetworkInterfaceAttributeCommand,\n DescribeNetworkInterfacePermissionsCommand,\n DescribeNetworkInterfacesCommand,\n DescribeOutpostLagsCommand,\n DescribePlacementGroupsCommand,\n DescribePrefixListsCommand,\n DescribePrincipalIdFormatCommand,\n DescribePublicIpv4PoolsCommand,\n DescribeRegionsCommand,\n DescribeReplaceRootVolumeTasksCommand,\n DescribeReservedInstancesCommand,\n DescribeReservedInstancesListingsCommand,\n DescribeReservedInstancesModificationsCommand,\n DescribeReservedInstancesOfferingsCommand,\n DescribeRouteServerEndpointsCommand,\n DescribeRouteServerPeersCommand,\n DescribeRouteServersCommand,\n DescribeRouteTablesCommand,\n DescribeScheduledInstanceAvailabilityCommand,\n DescribeScheduledInstancesCommand,\n DescribeSecurityGroupReferencesCommand,\n DescribeSecurityGroupRulesCommand,\n DescribeSecurityGroupVpcAssociationsCommand,\n DescribeSecurityGroupsCommand,\n DescribeServiceLinkVirtualInterfacesCommand,\n DescribeSnapshotAttributeCommand,\n DescribeSnapshotTierStatusCommand,\n DescribeSnapshotsCommand,\n DescribeSpotDatafeedSubscriptionCommand,\n DescribeSpotFleetInstancesCommand,\n DescribeSpotFleetRequestHistoryCommand,\n DescribeSpotFleetRequestsCommand,\n DescribeSpotInstanceRequestsCommand,\n DescribeSpotPriceHistoryCommand,\n DescribeStaleSecurityGroupsCommand,\n DescribeStoreImageTasksCommand,\n DescribeSubnetsCommand,\n DescribeTagsCommand,\n DescribeTrafficMirrorFilterRulesCommand,\n DescribeTrafficMirrorFiltersCommand,\n DescribeTrafficMirrorSessionsCommand,\n DescribeTrafficMirrorTargetsCommand,\n DescribeTransitGatewayAttachmentsCommand,\n DescribeTransitGatewayConnectPeersCommand,\n DescribeTransitGatewayConnectsCommand,\n DescribeTransitGatewayMulticastDomainsCommand,\n DescribeTransitGatewayPeeringAttachmentsCommand,\n DescribeTransitGatewayPolicyTablesCommand,\n DescribeTransitGatewayRouteTableAnnouncementsCommand,\n DescribeTransitGatewayRouteTablesCommand,\n DescribeTransitGatewayVpcAttachmentsCommand,\n DescribeTransitGatewaysCommand,\n DescribeTrunkInterfaceAssociationsCommand,\n DescribeVerifiedAccessEndpointsCommand,\n DescribeVerifiedAccessGroupsCommand,\n DescribeVerifiedAccessInstanceLoggingConfigurationsCommand,\n DescribeVerifiedAccessInstancesCommand,\n DescribeVerifiedAccessTrustProvidersCommand,\n DescribeVolumeAttributeCommand,\n DescribeVolumeStatusCommand,\n DescribeVolumesCommand,\n DescribeVolumesModificationsCommand,\n DescribeVpcAttributeCommand,\n DescribeVpcBlockPublicAccessExclusionsCommand,\n DescribeVpcBlockPublicAccessOptionsCommand,\n DescribeVpcClassicLinkCommand,\n DescribeVpcClassicLinkDnsSupportCommand,\n DescribeVpcEndpointAssociationsCommand,\n DescribeVpcEndpointConnectionNotificationsCommand,\n DescribeVpcEndpointConnectionsCommand,\n DescribeVpcEndpointServiceConfigurationsCommand,\n DescribeVpcEndpointServicePermissionsCommand,\n DescribeVpcEndpointServicesCommand,\n DescribeVpcEndpointsCommand,\n DescribeVpcPeeringConnectionsCommand,\n DescribeVpcsCommand,\n DescribeVpnConnectionsCommand,\n DescribeVpnGatewaysCommand,\n DetachClassicLinkVpcCommand,\n DetachInternetGatewayCommand,\n DetachNetworkInterfaceCommand,\n DetachVerifiedAccessTrustProviderCommand,\n DetachVolumeCommand,\n DetachVpnGatewayCommand,\n DisableAddressTransferCommand,\n DisableAllowedImagesSettingsCommand,\n DisableAwsNetworkPerformanceMetricSubscriptionCommand,\n DisableEbsEncryptionByDefaultCommand,\n DisableFastLaunchCommand,\n DisableFastSnapshotRestoresCommand,\n DisableImageBlockPublicAccessCommand,\n DisableImageCommand,\n DisableImageDeprecationCommand,\n DisableImageDeregistrationProtectionCommand,\n DisableIpamOrganizationAdminAccountCommand,\n DisableRouteServerPropagationCommand,\n DisableSerialConsoleAccessCommand,\n DisableSnapshotBlockPublicAccessCommand,\n DisableTransitGatewayRouteTablePropagationCommand,\n DisableVgwRoutePropagationCommand,\n DisableVpcClassicLinkCommand,\n DisableVpcClassicLinkDnsSupportCommand,\n DisassociateAddressCommand,\n DisassociateCapacityReservationBillingOwnerCommand,\n DisassociateClientVpnTargetNetworkCommand,\n DisassociateEnclaveCertificateIamRoleCommand,\n DisassociateIamInstanceProfileCommand,\n DisassociateInstanceEventWindowCommand,\n DisassociateIpamByoasnCommand,\n DisassociateIpamResourceDiscoveryCommand,\n DisassociateNatGatewayAddressCommand,\n DisassociateRouteServerCommand,\n DisassociateRouteTableCommand,\n DisassociateSecurityGroupVpcCommand,\n DisassociateSubnetCidrBlockCommand,\n DisassociateTransitGatewayMulticastDomainCommand,\n DisassociateTransitGatewayPolicyTableCommand,\n DisassociateTransitGatewayRouteTableCommand,\n DisassociateTrunkInterfaceCommand,\n DisassociateVpcCidrBlockCommand,\n EnableAddressTransferCommand,\n EnableAllowedImagesSettingsCommand,\n EnableAwsNetworkPerformanceMetricSubscriptionCommand,\n EnableEbsEncryptionByDefaultCommand,\n EnableFastLaunchCommand,\n EnableFastSnapshotRestoresCommand,\n EnableImageBlockPublicAccessCommand,\n EnableImageCommand,\n EnableImageDeprecationCommand,\n EnableImageDeregistrationProtectionCommand,\n EnableIpamOrganizationAdminAccountCommand,\n EnableReachabilityAnalyzerOrganizationSharingCommand,\n EnableRouteServerPropagationCommand,\n EnableSerialConsoleAccessCommand,\n EnableSnapshotBlockPublicAccessCommand,\n EnableTransitGatewayRouteTablePropagationCommand,\n EnableVgwRoutePropagationCommand,\n EnableVolumeIOCommand,\n EnableVpcClassicLinkCommand,\n EnableVpcClassicLinkDnsSupportCommand,\n ExportClientVpnClientCertificateRevocationListCommand,\n ExportClientVpnClientConfigurationCommand,\n ExportImageCommand,\n ExportTransitGatewayRoutesCommand,\n ExportVerifiedAccessInstanceClientConfigurationCommand,\n GetAllowedImagesSettingsCommand,\n GetAssociatedEnclaveCertificateIamRolesCommand,\n GetAssociatedIpv6PoolCidrsCommand,\n GetAwsNetworkPerformanceDataCommand,\n GetCapacityReservationUsageCommand,\n GetCoipPoolUsageCommand,\n GetConsoleOutputCommand,\n GetConsoleScreenshotCommand,\n GetDeclarativePoliciesReportSummaryCommand,\n GetDefaultCreditSpecificationCommand,\n GetEbsDefaultKmsKeyIdCommand,\n GetEbsEncryptionByDefaultCommand,\n GetFlowLogsIntegrationTemplateCommand,\n GetGroupsForCapacityReservationCommand,\n GetHostReservationPurchasePreviewCommand,\n GetImageBlockPublicAccessStateCommand,\n GetInstanceMetadataDefaultsCommand,\n GetInstanceTpmEkPubCommand,\n GetInstanceTypesFromInstanceRequirementsCommand,\n GetInstanceUefiDataCommand,\n GetIpamAddressHistoryCommand,\n GetIpamDiscoveredAccountsCommand,\n GetIpamDiscoveredPublicAddressesCommand,\n GetIpamDiscoveredResourceCidrsCommand,\n GetIpamPoolAllocationsCommand,\n GetIpamPoolCidrsCommand,\n GetIpamResourceCidrsCommand,\n GetLaunchTemplateDataCommand,\n GetManagedPrefixListAssociationsCommand,\n GetManagedPrefixListEntriesCommand,\n GetNetworkInsightsAccessScopeAnalysisFindingsCommand,\n GetNetworkInsightsAccessScopeContentCommand,\n GetPasswordDataCommand,\n GetReservedInstancesExchangeQuoteCommand,\n GetRouteServerAssociationsCommand,\n GetRouteServerPropagationsCommand,\n GetRouteServerRoutingDatabaseCommand,\n GetSecurityGroupsForVpcCommand,\n GetSerialConsoleAccessStatusCommand,\n GetSnapshotBlockPublicAccessStateCommand,\n GetSpotPlacementScoresCommand,\n GetSubnetCidrReservationsCommand,\n GetTransitGatewayAttachmentPropagationsCommand,\n GetTransitGatewayMulticastDomainAssociationsCommand,\n GetTransitGatewayPolicyTableAssociationsCommand,\n GetTransitGatewayPolicyTableEntriesCommand,\n GetTransitGatewayPrefixListReferencesCommand,\n GetTransitGatewayRouteTableAssociationsCommand,\n GetTransitGatewayRouteTablePropagationsCommand,\n GetVerifiedAccessEndpointPolicyCommand,\n GetVerifiedAccessEndpointTargetsCommand,\n GetVerifiedAccessGroupPolicyCommand,\n GetVpnConnectionDeviceSampleConfigurationCommand,\n GetVpnConnectionDeviceTypesCommand,\n GetVpnTunnelReplacementStatusCommand,\n ImportClientVpnClientCertificateRevocationListCommand,\n ImportImageCommand,\n ImportInstanceCommand,\n ImportKeyPairCommand,\n ImportSnapshotCommand,\n ImportVolumeCommand,\n ListImagesInRecycleBinCommand,\n ListSnapshotsInRecycleBinCommand,\n LockSnapshotCommand,\n ModifyAddressAttributeCommand,\n ModifyAvailabilityZoneGroupCommand,\n ModifyCapacityReservationCommand,\n ModifyCapacityReservationFleetCommand,\n ModifyClientVpnEndpointCommand,\n ModifyDefaultCreditSpecificationCommand,\n ModifyEbsDefaultKmsKeyIdCommand,\n ModifyFleetCommand,\n ModifyFpgaImageAttributeCommand,\n ModifyHostsCommand,\n ModifyIdFormatCommand,\n ModifyIdentityIdFormatCommand,\n ModifyImageAttributeCommand,\n ModifyInstanceAttributeCommand,\n ModifyInstanceCapacityReservationAttributesCommand,\n ModifyInstanceCpuOptionsCommand,\n ModifyInstanceCreditSpecificationCommand,\n ModifyInstanceEventStartTimeCommand,\n ModifyInstanceEventWindowCommand,\n ModifyInstanceMaintenanceOptionsCommand,\n ModifyInstanceMetadataDefaultsCommand,\n ModifyInstanceMetadataOptionsCommand,\n ModifyInstanceNetworkPerformanceOptionsCommand,\n ModifyInstancePlacementCommand,\n ModifyIpamCommand,\n ModifyIpamPoolCommand,\n ModifyIpamResourceCidrCommand,\n ModifyIpamResourceDiscoveryCommand,\n ModifyIpamScopeCommand,\n ModifyLaunchTemplateCommand,\n ModifyLocalGatewayRouteCommand,\n ModifyManagedPrefixListCommand,\n ModifyNetworkInterfaceAttributeCommand,\n ModifyPrivateDnsNameOptionsCommand,\n ModifyReservedInstancesCommand,\n ModifyRouteServerCommand,\n ModifySecurityGroupRulesCommand,\n ModifySnapshotAttributeCommand,\n ModifySnapshotTierCommand,\n ModifySpotFleetRequestCommand,\n ModifySubnetAttributeCommand,\n ModifyTrafficMirrorFilterNetworkServicesCommand,\n ModifyTrafficMirrorFilterRuleCommand,\n ModifyTrafficMirrorSessionCommand,\n ModifyTransitGatewayCommand,\n ModifyTransitGatewayPrefixListReferenceCommand,\n ModifyTransitGatewayVpcAttachmentCommand,\n ModifyVerifiedAccessEndpointCommand,\n ModifyVerifiedAccessEndpointPolicyCommand,\n ModifyVerifiedAccessGroupCommand,\n ModifyVerifiedAccessGroupPolicyCommand,\n ModifyVerifiedAccessInstanceCommand,\n ModifyVerifiedAccessInstanceLoggingConfigurationCommand,\n ModifyVerifiedAccessTrustProviderCommand,\n ModifyVolumeAttributeCommand,\n ModifyVolumeCommand,\n ModifyVpcAttributeCommand,\n ModifyVpcBlockPublicAccessExclusionCommand,\n ModifyVpcBlockPublicAccessOptionsCommand,\n ModifyVpcEndpointCommand,\n ModifyVpcEndpointConnectionNotificationCommand,\n ModifyVpcEndpointServiceConfigurationCommand,\n ModifyVpcEndpointServicePayerResponsibilityCommand,\n ModifyVpcEndpointServicePermissionsCommand,\n ModifyVpcPeeringConnectionOptionsCommand,\n ModifyVpcTenancyCommand,\n ModifyVpnConnectionCommand,\n ModifyVpnConnectionOptionsCommand,\n ModifyVpnTunnelCertificateCommand,\n ModifyVpnTunnelOptionsCommand,\n MonitorInstancesCommand,\n MoveAddressToVpcCommand,\n MoveByoipCidrToIpamCommand,\n MoveCapacityReservationInstancesCommand,\n ProvisionByoipCidrCommand,\n ProvisionIpamByoasnCommand,\n ProvisionIpamPoolCidrCommand,\n ProvisionPublicIpv4PoolCidrCommand,\n PurchaseCapacityBlockCommand,\n PurchaseCapacityBlockExtensionCommand,\n PurchaseHostReservationCommand,\n PurchaseReservedInstancesOfferingCommand,\n PurchaseScheduledInstancesCommand,\n RebootInstancesCommand,\n RegisterImageCommand,\n RegisterInstanceEventNotificationAttributesCommand,\n RegisterTransitGatewayMulticastGroupMembersCommand,\n RegisterTransitGatewayMulticastGroupSourcesCommand,\n RejectCapacityReservationBillingOwnershipCommand,\n RejectTransitGatewayMulticastDomainAssociationsCommand,\n RejectTransitGatewayPeeringAttachmentCommand,\n RejectTransitGatewayVpcAttachmentCommand,\n RejectVpcEndpointConnectionsCommand,\n RejectVpcPeeringConnectionCommand,\n ReleaseAddressCommand,\n ReleaseHostsCommand,\n ReleaseIpamPoolAllocationCommand,\n ReplaceIamInstanceProfileAssociationCommand,\n ReplaceImageCriteriaInAllowedImagesSettingsCommand,\n ReplaceNetworkAclAssociationCommand,\n ReplaceNetworkAclEntryCommand,\n ReplaceRouteCommand,\n ReplaceRouteTableAssociationCommand,\n ReplaceTransitGatewayRouteCommand,\n ReplaceVpnTunnelCommand,\n ReportInstanceStatusCommand,\n RequestSpotFleetCommand,\n RequestSpotInstancesCommand,\n ResetAddressAttributeCommand,\n ResetEbsDefaultKmsKeyIdCommand,\n ResetFpgaImageAttributeCommand,\n ResetImageAttributeCommand,\n ResetInstanceAttributeCommand,\n ResetNetworkInterfaceAttributeCommand,\n ResetSnapshotAttributeCommand,\n RestoreAddressToClassicCommand,\n RestoreImageFromRecycleBinCommand,\n RestoreManagedPrefixListVersionCommand,\n RestoreSnapshotFromRecycleBinCommand,\n RestoreSnapshotTierCommand,\n RevokeClientVpnIngressCommand,\n RevokeSecurityGroupEgressCommand,\n RevokeSecurityGroupIngressCommand,\n RunInstancesCommand,\n RunScheduledInstancesCommand,\n SearchLocalGatewayRoutesCommand,\n SearchTransitGatewayMulticastGroupsCommand,\n SearchTransitGatewayRoutesCommand,\n SendDiagnosticInterruptCommand,\n StartDeclarativePoliciesReportCommand,\n StartInstancesCommand,\n StartNetworkInsightsAccessScopeAnalysisCommand,\n StartNetworkInsightsAnalysisCommand,\n StartVpcEndpointServicePrivateDnsVerificationCommand,\n StopInstancesCommand,\n TerminateClientVpnConnectionsCommand,\n TerminateInstancesCommand,\n UnassignIpv6AddressesCommand,\n UnassignPrivateIpAddressesCommand,\n UnassignPrivateNatGatewayAddressCommand,\n UnlockSnapshotCommand,\n UnmonitorInstancesCommand,\n UpdateSecurityGroupRuleDescriptionsEgressCommand,\n UpdateSecurityGroupRuleDescriptionsIngressCommand,\n WithdrawByoipCidrCommand,\n paginateDescribeAddressTransfers,\n paginateDescribeAddressesAttribute,\n paginateDescribeAwsNetworkPerformanceMetricSubscriptions,\n paginateDescribeByoipCidrs,\n paginateDescribeCapacityBlockExtensionHistory,\n paginateDescribeCapacityBlockExtensionOfferings,\n paginateDescribeCapacityBlockOfferings,\n paginateDescribeCapacityReservationBillingRequests,\n paginateDescribeCapacityReservationFleets,\n paginateDescribeCapacityReservations,\n paginateDescribeCarrierGateways,\n paginateDescribeClassicLinkInstances,\n paginateDescribeClientVpnAuthorizationRules,\n paginateDescribeClientVpnConnections,\n paginateDescribeClientVpnEndpoints,\n paginateDescribeClientVpnRoutes,\n paginateDescribeClientVpnTargetNetworks,\n paginateDescribeCoipPools,\n paginateDescribeDhcpOptions,\n paginateDescribeEgressOnlyInternetGateways,\n paginateDescribeExportImageTasks,\n paginateDescribeFastLaunchImages,\n paginateDescribeFastSnapshotRestores,\n paginateDescribeFleets,\n paginateDescribeFlowLogs,\n paginateDescribeFpgaImages,\n paginateDescribeHostReservationOfferings,\n paginateDescribeHostReservations,\n paginateDescribeHosts,\n paginateDescribeIamInstanceProfileAssociations,\n paginateDescribeImages,\n paginateDescribeImportImageTasks,\n paginateDescribeImportSnapshotTasks,\n paginateDescribeInstanceConnectEndpoints,\n paginateDescribeInstanceCreditSpecifications,\n paginateDescribeInstanceEventWindows,\n paginateDescribeInstanceImageMetadata,\n paginateDescribeInstanceStatus,\n paginateDescribeInstanceTopology,\n paginateDescribeInstanceTypeOfferings,\n paginateDescribeInstanceTypes,\n paginateDescribeInstances,\n paginateDescribeInternetGateways,\n paginateDescribeIpamPools,\n paginateDescribeIpamResourceDiscoveries,\n paginateDescribeIpamResourceDiscoveryAssociations,\n paginateDescribeIpamScopes,\n paginateDescribeIpams,\n paginateDescribeIpv6Pools,\n paginateDescribeLaunchTemplateVersions,\n paginateDescribeLaunchTemplates,\n paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations,\n paginateDescribeLocalGatewayRouteTableVpcAssociations,\n paginateDescribeLocalGatewayRouteTables,\n paginateDescribeLocalGatewayVirtualInterfaceGroups,\n paginateDescribeLocalGatewayVirtualInterfaces,\n paginateDescribeLocalGateways,\n paginateDescribeMacHosts,\n paginateDescribeManagedPrefixLists,\n paginateDescribeMovingAddresses,\n paginateDescribeNatGateways,\n paginateDescribeNetworkAcls,\n paginateDescribeNetworkInsightsAccessScopeAnalyses,\n paginateDescribeNetworkInsightsAccessScopes,\n paginateDescribeNetworkInsightsAnalyses,\n paginateDescribeNetworkInsightsPaths,\n paginateDescribeNetworkInterfacePermissions,\n paginateDescribeNetworkInterfaces,\n paginateDescribePrefixLists,\n paginateDescribePrincipalIdFormat,\n paginateDescribePublicIpv4Pools,\n paginateDescribeReplaceRootVolumeTasks,\n paginateDescribeReservedInstancesModifications,\n paginateDescribeReservedInstancesOfferings,\n paginateDescribeRouteServerEndpoints,\n paginateDescribeRouteServerPeers,\n paginateDescribeRouteServers,\n paginateDescribeRouteTables,\n paginateDescribeScheduledInstanceAvailability,\n paginateDescribeScheduledInstances,\n paginateDescribeSecurityGroupRules,\n paginateDescribeSecurityGroupVpcAssociations,\n paginateDescribeSecurityGroups,\n paginateDescribeSnapshotTierStatus,\n paginateDescribeSnapshots,\n paginateDescribeSpotFleetRequests,\n paginateDescribeSpotInstanceRequests,\n paginateDescribeSpotPriceHistory,\n paginateDescribeStaleSecurityGroups,\n paginateDescribeStoreImageTasks,\n paginateDescribeSubnets,\n paginateDescribeTags,\n paginateDescribeTrafficMirrorFilters,\n paginateDescribeTrafficMirrorSessions,\n paginateDescribeTrafficMirrorTargets,\n paginateDescribeTransitGatewayAttachments,\n paginateDescribeTransitGatewayConnectPeers,\n paginateDescribeTransitGatewayConnects,\n paginateDescribeTransitGatewayMulticastDomains,\n paginateDescribeTransitGatewayPeeringAttachments,\n paginateDescribeTransitGatewayPolicyTables,\n paginateDescribeTransitGatewayRouteTableAnnouncements,\n paginateDescribeTransitGatewayRouteTables,\n paginateDescribeTransitGatewayVpcAttachments,\n paginateDescribeTransitGateways,\n paginateDescribeTrunkInterfaceAssociations,\n paginateDescribeVerifiedAccessEndpoints,\n paginateDescribeVerifiedAccessGroups,\n paginateDescribeVerifiedAccessInstanceLoggingConfigurations,\n paginateDescribeVerifiedAccessInstances,\n paginateDescribeVerifiedAccessTrustProviders,\n paginateDescribeVolumeStatus,\n paginateDescribeVolumesModifications,\n paginateDescribeVolumes,\n paginateDescribeVpcClassicLinkDnsSupport,\n paginateDescribeVpcEndpointConnectionNotifications,\n paginateDescribeVpcEndpointConnections,\n paginateDescribeVpcEndpointServiceConfigurations,\n paginateDescribeVpcEndpointServicePermissions,\n paginateDescribeVpcEndpoints,\n paginateDescribeVpcPeeringConnections,\n paginateDescribeVpcs,\n paginateGetAssociatedIpv6PoolCidrs,\n paginateGetAwsNetworkPerformanceData,\n paginateGetGroupsForCapacityReservation,\n paginateGetInstanceTypesFromInstanceRequirements,\n paginateGetIpamAddressHistory,\n paginateGetIpamDiscoveredAccounts,\n paginateGetIpamDiscoveredResourceCidrs,\n paginateGetIpamPoolAllocations,\n paginateGetIpamPoolCidrs,\n paginateGetIpamResourceCidrs,\n paginateGetManagedPrefixListAssociations,\n paginateGetManagedPrefixListEntries,\n paginateGetNetworkInsightsAccessScopeAnalysisFindings,\n paginateGetSecurityGroupsForVpc,\n paginateGetSpotPlacementScores,\n paginateGetTransitGatewayAttachmentPropagations,\n paginateGetTransitGatewayMulticastDomainAssociations,\n paginateGetTransitGatewayPolicyTableAssociations,\n paginateGetTransitGatewayPrefixListReferences,\n paginateGetTransitGatewayRouteTableAssociations,\n paginateGetTransitGatewayRouteTablePropagations,\n paginateGetVpnConnectionDeviceTypes,\n paginateListImagesInRecycleBin,\n paginateListSnapshotsInRecycleBin,\n paginateSearchLocalGatewayRoutes,\n paginateSearchTransitGatewayMulticastGroups,\n waitForBundleTaskComplete,\n waitUntilBundleTaskComplete,\n waitForConversionTaskCancelled,\n waitUntilConversionTaskCancelled,\n waitForConversionTaskCompleted,\n waitUntilConversionTaskCompleted,\n waitForConversionTaskDeleted,\n waitUntilConversionTaskDeleted,\n waitForCustomerGatewayAvailable,\n waitUntilCustomerGatewayAvailable,\n waitForExportTaskCancelled,\n waitUntilExportTaskCancelled,\n waitForExportTaskCompleted,\n waitUntilExportTaskCompleted,\n waitForImageAvailable,\n waitUntilImageAvailable,\n waitForImageExists,\n waitUntilImageExists,\n waitForInstanceExists,\n waitUntilInstanceExists,\n waitForInstanceRunning,\n waitUntilInstanceRunning,\n waitForInstanceStatusOk,\n waitUntilInstanceStatusOk,\n waitForInstanceStopped,\n waitUntilInstanceStopped,\n waitForInstanceTerminated,\n waitUntilInstanceTerminated,\n waitForInternetGatewayExists,\n waitUntilInternetGatewayExists,\n waitForKeyPairExists,\n waitUntilKeyPairExists,\n waitForNatGatewayAvailable,\n waitUntilNatGatewayAvailable,\n waitForNatGatewayDeleted,\n waitUntilNatGatewayDeleted,\n waitForNetworkInterfaceAvailable,\n waitUntilNetworkInterfaceAvailable,\n waitForSnapshotImported,\n waitUntilSnapshotImported,\n waitForSecurityGroupExists,\n waitUntilSecurityGroupExists,\n waitForSnapshotCompleted,\n waitUntilSnapshotCompleted,\n waitForSpotInstanceRequestFulfilled,\n waitUntilSpotInstanceRequestFulfilled,\n waitForStoreImageTaskComplete,\n waitUntilStoreImageTaskComplete,\n waitForSubnetAvailable,\n waitUntilSubnetAvailable,\n waitForSystemStatusOk,\n waitUntilSystemStatusOk,\n waitForPasswordDataAvailable,\n waitUntilPasswordDataAvailable,\n waitForVolumeAvailable,\n waitUntilVolumeAvailable,\n waitForVolumeDeleted,\n waitUntilVolumeDeleted,\n waitForVolumeInUse,\n waitUntilVolumeInUse,\n waitForVpcAvailable,\n waitUntilVpcAvailable,\n waitForVpcExists,\n waitUntilVpcExists,\n waitForVpcPeeringConnectionDeleted,\n waitUntilVpcPeeringConnectionDeleted,\n waitForVpcPeeringConnectionExists,\n waitUntilVpcPeeringConnectionExists,\n waitForVpnConnectionAvailable,\n waitUntilVpnConnectionAvailable,\n waitForVpnConnectionDeleted,\n waitUntilVpnConnectionDeleted,\n AcceleratorManufacturer,\n AcceleratorName,\n AcceleratorType,\n ResourceType,\n AddressTransferStatus,\n TransitGatewayAttachmentResourceType,\n TransitGatewayMulitcastDomainAssociationState,\n DynamicRoutingValue,\n TransitGatewayAttachmentState,\n ApplianceModeSupportValue,\n DnsSupportValue,\n Ipv6SupportValue,\n SecurityGroupReferencingSupportValue,\n VpcPeeringConnectionStateReasonCode,\n Protocol,\n AccountAttributeName,\n InstanceHealthStatus,\n ActivityStatus,\n PrincipalType,\n DomainType,\n ServiceManaged,\n AddressAttributeName,\n AddressFamily,\n AsnAssociationState,\n ByoipCidrState,\n Affinity,\n AutoPlacement,\n HostMaintenance,\n HostRecovery,\n IpamPoolAllocationResourceType,\n AllocationState,\n AllocationStrategy,\n AllocationType,\n AllowedImagesSettingsDisabledState,\n AllowedImagesSettingsEnabledState,\n AllowsMultipleInstanceTypes,\n NatGatewayAddressStatus,\n AssociationStatusCode,\n IamInstanceProfileAssociationState,\n InstanceEventWindowState,\n WeekDay,\n IpamAssociatedResourceDiscoveryStatus,\n IpamResourceDiscoveryAssociationState,\n RouteServerAssociationState,\n RouteTableAssociationStateCode,\n SecurityGroupVpcAssociationState,\n IpSource,\n Ipv6AddressAttribute,\n SubnetCidrBlockStateCode,\n TransitGatewayAssociationState,\n InterfaceProtocolType,\n VpcCidrBlockStateCode,\n DeviceTrustProviderType,\n TrustProviderType,\n UserTrustProviderType,\n VolumeAttachmentState,\n AttachmentStatus,\n ClientVpnAuthorizationRuleStatusCode,\n BundleTaskState,\n CapacityReservationFleetState,\n ListingState,\n CurrencyCodeValues,\n ListingStatus,\n BatchState,\n CancelBatchErrorCode,\n CancelSpotInstanceRequestState,\n OidcOptionsFilterSensitiveLog,\n VerifiedAccessTrustProviderFilterSensitiveLog,\n AttachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n S3StorageFilterSensitiveLog,\n StorageFilterSensitiveLog,\n BundleInstanceRequestFilterSensitiveLog,\n BundleTaskFilterSensitiveLog,\n BundleInstanceResultFilterSensitiveLog,\n CancelBundleTaskResultFilterSensitiveLog,\n CapacityReservationDeliveryPreference,\n EndDateType,\n InstanceMatchCriteria,\n CapacityReservationInstancePlatform,\n CapacityReservationTenancy,\n CapacityReservationType,\n CapacityReservationState,\n FleetInstanceMatchCriteria,\n _InstanceType,\n FleetCapacityReservationTenancy,\n CarrierGatewayState,\n ClientVpnAuthenticationType,\n SelfServicePortal,\n TransportProtocol,\n ClientVpnEndpointStatusCode,\n ClientVpnRouteStatusCode,\n GatewayType,\n BlockPublicAccessMode,\n HostnameType,\n SubnetState,\n VpcEncryptionControlMode,\n VpcEncryptionControlExclusionState,\n VpcEncryptionControlState,\n Tenancy,\n VpcState,\n FleetExcessCapacityTerminationPolicy,\n VolumeType,\n BareMetal,\n BurstablePerformance,\n CpuManufacturer,\n InstanceGeneration,\n LocalStorage,\n LocalStorageType,\n FleetOnDemandAllocationStrategy,\n FleetCapacityReservationUsageStrategy,\n SpotAllocationStrategy,\n SpotInstanceInterruptionBehavior,\n FleetReplacementStrategy,\n DefaultTargetCapacityType,\n TargetCapacityUnitType,\n FleetType,\n InstanceLifecycle,\n PlatformValues,\n DestinationFileFormat,\n LogDestinationType,\n FlowLogsResourceType,\n TrafficType,\n Ec2InstanceConnectEndpointState,\n ContainerFormat,\n DiskImageFormat,\n ExportEnvironment,\n ExportTaskState,\n IpamMeteredAccount,\n IpamTier,\n IpamState,\n IpamExternalResourceVerificationTokenState,\n TokenState,\n IpamPoolAwsService,\n IpamPoolPublicIpSource,\n IpamPoolSourceResourceType,\n IpamScopeType,\n IpamPoolState,\n IpamResourceDiscoveryState,\n IpamScopeState,\n KeyFormat,\n KeyType,\n CapacityReservationPreference,\n AmdSevSnpSpecification,\n ShutdownBehavior,\n MarketType,\n InstanceInterruptionBehavior,\n SpotInstanceType,\n LaunchTemplateAutoRecoveryState,\n LaunchTemplateInstanceMetadataEndpointState,\n LaunchTemplateInstanceMetadataProtocolIpv6,\n LaunchTemplateHttpTokensState,\n LaunchTemplateInstanceMetadataTagsState,\n InstanceBandwidthWeighting,\n LaunchTemplateInstanceMetadataOptionsState,\n CopySnapshotRequestFilterSensitiveLog,\n KeyPairFilterSensitiveLog,\n RequestLaunchTemplateDataFilterSensitiveLog,\n CreateLaunchTemplateRequestFilterSensitiveLog,\n CreateLaunchTemplateVersionRequestFilterSensitiveLog,\n ResponseLaunchTemplateDataFilterSensitiveLog,\n LocalGatewayRouteState,\n LocalGatewayRouteType,\n LocalGatewayRouteTableMode,\n LocalGatewayVirtualInterfaceConfigurationState,\n LocalGatewayVirtualInterfaceGroupConfigurationState,\n PrefixListState,\n ConnectivityType,\n NatGatewayState,\n RuleAction,\n NetworkInterfaceCreationType,\n NetworkInterfaceType,\n NetworkInterfaceStatus,\n InterfacePermissionType,\n NetworkInterfacePermissionStateCode,\n SpreadLevel,\n PlacementStrategy,\n PlacementGroupState,\n ReplaceRootVolumeTaskState,\n RouteServerPersistRoutesAction,\n RouteServerPersistRoutesState,\n RouteServerState,\n RouteServerEndpointState,\n RouteServerPeerLivenessMode,\n RouteServerBfdState,\n RouteServerBgpState,\n RouteServerPeerState,\n RouteOrigin,\n RouteState,\n SnapshotLocationEnum,\n SSEType,\n SnapshotState,\n StorageTier,\n TransferType,\n CopyTagsFromSource,\n DatafeedSubscriptionState,\n SubnetCidrReservationType,\n TrafficMirrorRuleAction,\n TrafficDirection,\n TrafficMirrorNetworkService,\n TrafficMirrorTargetType,\n AutoAcceptSharedAttachmentsValue,\n DefaultRouteTableAssociationValue,\n DefaultRouteTablePropagationValue,\n MulticastSupportValue,\n VpnEcmpSupportValue,\n TransitGatewayState,\n ProtocolValue,\n BgpStatus,\n TransitGatewayConnectPeerState,\n AutoAcceptSharedAssociationsValue,\n Igmpv2SupportValue,\n StaticSourcesSupportValue,\n TransitGatewayMulticastDomainState,\n TransitGatewayPolicyTableState,\n TransitGatewayPrefixListReferenceState,\n TransitGatewayRouteState,\n TransitGatewayRouteType,\n TransitGatewayRouteTableState,\n TransitGatewayRouteTableAnnouncementDirection,\n TransitGatewayRouteTableAnnouncementState,\n VerifiedAccessEndpointAttachmentType,\n VerifiedAccessEndpointProtocol,\n VerifiedAccessEndpointType,\n VerifiedAccessEndpointStatusCode,\n VolumeState,\n InternetGatewayExclusionMode,\n VpcBlockPublicAccessExclusionState,\n DnsRecordIpType,\n IpAddressType,\n VpcEndpointType,\n State,\n ConnectionNotificationState,\n ConnectionNotificationType,\n PayerResponsibility,\n DnsNameState,\n ServiceState,\n ServiceType,\n LaunchTemplateVersionFilterSensitiveLog,\n CreateLaunchTemplateVersionResultFilterSensitiveLog,\n CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ServiceConnectivityType,\n TunnelInsideIpVersion,\n GatewayAssociationState,\n VpnStaticRouteSource,\n VpnState,\n TelemetryStatus,\n FleetStateCode,\n DeleteFleetErrorCode,\n LaunchTemplateErrorCode,\n DeleteQueuedReservedInstancesErrorCode,\n AsnState,\n IpamPoolCidrFailureCode,\n IpamPoolCidrState,\n AvailabilityZoneOptInStatus,\n AvailabilityZoneState,\n MetricType,\n PeriodType,\n StatisticType,\n CapacityBlockExtensionStatus,\n CallerRole,\n CapacityReservationBillingRequestStatus,\n ClientVpnConnectionStatusCode,\n AssociatedNetworkType,\n ClientVpnEndpointAttributeStatusCode,\n VpnTunnelOptionsSpecificationFilterSensitiveLog,\n VpnConnectionOptionsSpecificationFilterSensitiveLog,\n CreateVpnConnectionRequestFilterSensitiveLog,\n TunnelOptionFilterSensitiveLog,\n VpnConnectionOptionsFilterSensitiveLog,\n VpnConnectionFilterSensitiveLog,\n CreateVpnConnectionResultFilterSensitiveLog,\n DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog,\n DescribeBundleTasksResultFilterSensitiveLog,\n VpnProtocol,\n ConversionTaskState,\n ReportState,\n ElasticGpuStatus,\n ElasticGpuState,\n FastLaunchResourceType,\n FastLaunchStateCode,\n FastSnapshotRestoreStateCode,\n FleetEventType,\n FleetActivityStatus,\n FpgaImageAttributeName,\n PermissionGroup,\n ProductCodeValues,\n FpgaImageStateCode,\n PaymentOption,\n ReservationState,\n ImageAttributeName,\n ArchitectureValues,\n BootModeValues,\n HypervisorType,\n ImageTypeValues,\n ImdsSupportValues,\n DeviceType,\n ImageState,\n TpmSupportValues,\n VirtualizationType,\n InstanceAttributeName,\n InstanceStateName,\n InstanceBootModeValues,\n InstanceLifecycleType,\n InstanceAutoRecoveryState,\n InstanceMetadataEndpointState,\n InstanceMetadataProtocolState,\n HttpTokensState,\n InstanceMetadataTagsState,\n InstanceMetadataOptionsState,\n MonitoringState,\n StatusName,\n StatusType,\n SummaryStatus,\n EventCode,\n LocationType,\n EbsOptimizedSupport,\n EbsEncryptionSupport,\n EbsNvmeSupport,\n InstanceTypeHypervisor,\n DiskType,\n InstanceStorageEncryptionSupport,\n EphemeralNvmeSupport,\n BandwidthWeightingType,\n EnaSupport,\n FlexibleEnaQueuesSupport,\n NitroEnclavesSupport,\n NitroTpmSupport,\n PhcSupport,\n PlacementGroupStrategy,\n ArchitectureType,\n SupportedAdditionalProcessorFeature,\n BootModeType,\n RootDeviceType,\n UsageClassType,\n DiskImageDescriptionFilterSensitiveLog,\n ImportInstanceVolumeDetailItemFilterSensitiveLog,\n ImportInstanceTaskDetailsFilterSensitiveLog,\n ImportVolumeTaskDetailsFilterSensitiveLog,\n ConversionTaskFilterSensitiveLog,\n DescribeConversionTasksResultFilterSensitiveLog,\n SnapshotDetailFilterSensitiveLog,\n ImportImageTaskFilterSensitiveLog,\n DescribeImportImageTasksResultFilterSensitiveLog,\n SnapshotTaskDetailFilterSensitiveLog,\n ImportSnapshotTaskFilterSensitiveLog,\n DescribeImportSnapshotTasksResultFilterSensitiveLog,\n DescribeLaunchTemplateVersionsResultFilterSensitiveLog,\n LockState,\n MoveStatus,\n FindingsFound,\n AnalysisStatus,\n NetworkInterfaceAttribute,\n OfferingClassType,\n OfferingTypeValues,\n RIProductDescription,\n RecurringChargeFrequency,\n Scope,\n ReservedInstanceState,\n ServiceLinkVirtualInterfaceConfigurationState,\n SnapshotAttributeName,\n TieringOperationStatus,\n EventType,\n ExcessCapacityTerminationPolicy,\n OnDemandAllocationStrategy,\n ReplacementStrategy,\n SpotInstanceState,\n VerifiedAccessLogDeliveryStatusCode,\n VolumeAttributeName,\n VolumeModificationState,\n VolumeStatusName,\n VolumeStatusInfoStatus,\n VpcAttributeName,\n VpcBlockPublicAccessExclusionsAllowed,\n InternetGatewayBlockMode,\n ManagedBy,\n VpcBlockPublicAccessState,\n SpotFleetLaunchSpecificationFilterSensitiveLog,\n SpotFleetRequestConfigDataFilterSensitiveLog,\n SpotFleetRequestConfigFilterSensitiveLog,\n DescribeSpotFleetRequestsResponseFilterSensitiveLog,\n LaunchSpecificationFilterSensitiveLog,\n SpotInstanceRequestFilterSensitiveLog,\n DescribeSpotInstanceRequestsResultFilterSensitiveLog,\n DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog,\n DescribeVpnConnectionsResultFilterSensitiveLog,\n DetachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ImageBlockPublicAccessDisabledState,\n RouteServerPropagationState,\n SnapshotBlockPublicAccessState,\n TransitGatewayPropagationState,\n ImageBlockPublicAccessEnabledState,\n ClientCertificateRevocationListStatusCode,\n UnlimitedSupportedInstanceFamily,\n PartitionLoadFrequency,\n EkPubKeyFormat,\n EkPubKeyType,\n IpamComplianceStatus,\n IpamOverlapStatus,\n IpamAddressHistoryResourceType,\n IpamDiscoveryFailureCode,\n IpamPublicAddressType,\n IpamPublicAddressAssociationStatus,\n IpamPublicAddressAwsService,\n IpamResourceCidrIpSource,\n IpamNetworkInterfaceAttachmentStatus,\n IpamResourceType,\n IpamManagementState,\n RouteServerRouteInstallationStatus,\n RouteServerRouteStatus,\n VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog,\n ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog,\n GetInstanceTpmEkPubResultFilterSensitiveLog,\n GetLaunchTemplateDataResultFilterSensitiveLog,\n GetPasswordDataResultFilterSensitiveLog,\n LockMode,\n ModifyAvailabilityZoneOptInStatus,\n OperationType,\n UnsuccessfulInstanceCreditSpecificationErrorCode,\n DefaultInstanceMetadataEndpointState,\n MetadataDefaultHttpTokensState,\n DefaultInstanceMetadataTagsState,\n HostTenancy,\n TargetStorageTier,\n TrafficMirrorFilterRuleField,\n TrafficMirrorSessionField,\n VpcTenancy,\n Status,\n VerificationMethod,\n ReportInstanceReasonCodes,\n ReportStatusType,\n GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog,\n ImageDiskContainerFilterSensitiveLog,\n ImportImageRequestFilterSensitiveLog,\n ImportImageResultFilterSensitiveLog,\n DiskImageDetailFilterSensitiveLog,\n DiskImageFilterSensitiveLog,\n UserDataFilterSensitiveLog,\n ImportInstanceLaunchSpecificationFilterSensitiveLog,\n ImportInstanceRequestFilterSensitiveLog,\n ImportInstanceResultFilterSensitiveLog,\n SnapshotDiskContainerFilterSensitiveLog,\n ImportSnapshotRequestFilterSensitiveLog,\n ImportSnapshotResultFilterSensitiveLog,\n ImportVolumeRequestFilterSensitiveLog,\n ImportVolumeResultFilterSensitiveLog,\n ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ModifyVpnConnectionResultFilterSensitiveLog,\n ModifyVpnConnectionOptionsResultFilterSensitiveLog,\n ModifyVpnTunnelCertificateResultFilterSensitiveLog,\n ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog,\n ModifyVpnTunnelOptionsRequestFilterSensitiveLog,\n ModifyVpnTunnelOptionsResultFilterSensitiveLog,\n ReportInstanceStatusRequestFilterSensitiveLog,\n ResetFpgaImageAttributeName,\n ResetImageAttributeName,\n MembershipType,\n RequestSpotFleetRequestFilterSensitiveLog,\n RequestSpotLaunchSpecificationFilterSensitiveLog,\n RequestSpotInstancesRequestFilterSensitiveLog,\n RequestSpotInstancesResultFilterSensitiveLog,\n RunInstancesRequestFilterSensitiveLog,\n ScheduledInstancesLaunchSpecificationFilterSensitiveLog,\n RunScheduledInstancesRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2016-11-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultEC2HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"EC2\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultECRHttpAuthSchemeProvider = exports.defaultECRHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultECRHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultECRHttpAuthSchemeParametersProvider = defaultECRHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ecr\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultECRHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultECRHttpAuthSchemeProvider = defaultECRHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst B = \"required\", C = \"fn\", D = \"argv\", E = \"ref\", F = \"url\", G = \"properties\", H = \"headers\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = \"aws\", j = \"aws-us-gov\", k = { [B]: false, \"type\": \"String\" }, l = { [B]: true, \"default\": false, \"type\": \"Boolean\" }, m = { [E]: \"Endpoint\" }, n = { [C]: c, [D]: [{ [E]: \"UseFIPS\" }, true] }, o = { [C]: c, [D]: [{ [E]: \"UseDualStack\" }, true] }, p = {}, q = { [C]: \"getAttr\", [D]: [{ [E]: g }, \"supportsFIPS\"] }, r = { [C]: c, [D]: [true, { [C]: \"getAttr\", [D]: [{ [E]: g }, \"supportsDualStack\"] }] }, s = { [C]: \"getAttr\", [D]: [{ [E]: g }, \"name\"] }, t = { [F]: \"https://ecr-fips.{Region}.api.aws\", [G]: {}, [H]: {} }, u = { [F]: \"https://ecr-fips.{Region}.amazonaws.com\", [G]: {}, [H]: {} }, v = { [F]: \"https://ecr.{Region}.api.aws\", [G]: {}, [H]: {} }, w = [n], x = [o], y = [{ [E]: \"Region\" }], z = [{ [C]: h, [D]: [i, s] }], A = [{ [C]: h, [D]: [j, s] }];\nconst _data = { version: \"1.0\", parameters: { Region: k, UseDualStack: l, UseFIPS: l, Endpoint: k }, rules: [{ conditions: [{ [C]: b, [D]: [m] }], rules: [{ conditions: w, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: x, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { [F]: m, [G]: p, [H]: p }, type: e }], type: f }, { conditions: [{ [C]: b, [D]: y }], rules: [{ conditions: [{ [C]: \"aws.partition\", [D]: y, assign: g }], rules: [{ conditions: [n, o], rules: [{ conditions: [{ [C]: c, [D]: [a, q] }, r], rules: [{ conditions: z, endpoint: t, type: e }, { conditions: A, endpoint: t, type: e }, { endpoint: { [F]: \"https://api.ecr-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: w, rules: [{ conditions: [{ [C]: c, [D]: [q, a] }], rules: [{ conditions: [{ [C]: h, [D]: [s, i] }], endpoint: u, type: e }, { conditions: [{ [C]: h, [D]: [s, j] }], endpoint: u, type: e }, { endpoint: { [F]: \"https://api.ecr-fips.{Region}.{PartitionResult#dnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: x, rules: [{ conditions: [r], rules: [{ conditions: z, endpoint: v, type: e }, { conditions: [{ [C]: h, [D]: [\"aws-cn\", s] }], endpoint: { [F]: \"https://ecr.{Region}.api.amazonwebservices.com.cn\", [G]: p, [H]: p }, type: e }, { conditions: A, endpoint: v, type: e }, { endpoint: { [F]: \"https://api.ecr.{Region}.{PartitionResult#dualStackDnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { [F]: \"https://api.ecr.{Region}.{PartitionResult#dnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n BatchCheckLayerAvailabilityCommand: () => BatchCheckLayerAvailabilityCommand,\n BatchDeleteImageCommand: () => BatchDeleteImageCommand,\n BatchGetImageCommand: () => BatchGetImageCommand,\n BatchGetRepositoryScanningConfigurationCommand: () => BatchGetRepositoryScanningConfigurationCommand,\n CompleteLayerUploadCommand: () => CompleteLayerUploadCommand,\n CreatePullThroughCacheRuleCommand: () => CreatePullThroughCacheRuleCommand,\n CreateRepositoryCommand: () => CreateRepositoryCommand,\n CreateRepositoryCreationTemplateCommand: () => CreateRepositoryCreationTemplateCommand,\n DeleteLifecyclePolicyCommand: () => DeleteLifecyclePolicyCommand,\n DeletePullThroughCacheRuleCommand: () => DeletePullThroughCacheRuleCommand,\n DeleteRegistryPolicyCommand: () => DeleteRegistryPolicyCommand,\n DeleteRepositoryCommand: () => DeleteRepositoryCommand,\n DeleteRepositoryCreationTemplateCommand: () => DeleteRepositoryCreationTemplateCommand,\n DeleteRepositoryPolicyCommand: () => DeleteRepositoryPolicyCommand,\n DescribeImageReplicationStatusCommand: () => DescribeImageReplicationStatusCommand,\n DescribeImageScanFindingsCommand: () => DescribeImageScanFindingsCommand,\n DescribeImagesCommand: () => DescribeImagesCommand,\n DescribePullThroughCacheRulesCommand: () => DescribePullThroughCacheRulesCommand,\n DescribeRegistryCommand: () => DescribeRegistryCommand,\n DescribeRepositoriesCommand: () => DescribeRepositoriesCommand,\n DescribeRepositoryCreationTemplatesCommand: () => DescribeRepositoryCreationTemplatesCommand,\n ECR: () => ECR,\n ECRClient: () => ECRClient,\n ECRServiceException: () => ECRServiceException,\n EmptyUploadException: () => EmptyUploadException,\n EncryptionType: () => EncryptionType,\n FindingSeverity: () => FindingSeverity,\n GetAccountSettingCommand: () => GetAccountSettingCommand,\n GetAuthorizationTokenCommand: () => GetAuthorizationTokenCommand,\n GetDownloadUrlForLayerCommand: () => GetDownloadUrlForLayerCommand,\n GetLifecyclePolicyCommand: () => GetLifecyclePolicyCommand,\n GetLifecyclePolicyPreviewCommand: () => GetLifecyclePolicyPreviewCommand,\n GetRegistryPolicyCommand: () => GetRegistryPolicyCommand,\n GetRegistryScanningConfigurationCommand: () => GetRegistryScanningConfigurationCommand,\n GetRepositoryPolicyCommand: () => GetRepositoryPolicyCommand,\n ImageActionType: () => ImageActionType,\n ImageAlreadyExistsException: () => ImageAlreadyExistsException,\n ImageDigestDoesNotMatchException: () => ImageDigestDoesNotMatchException,\n ImageFailureCode: () => ImageFailureCode,\n ImageNotFoundException: () => ImageNotFoundException,\n ImageTagAlreadyExistsException: () => ImageTagAlreadyExistsException,\n ImageTagMutability: () => ImageTagMutability,\n ImageTagMutabilityExclusionFilterType: () => ImageTagMutabilityExclusionFilterType,\n InitiateLayerUploadCommand: () => InitiateLayerUploadCommand,\n InvalidLayerException: () => InvalidLayerException,\n InvalidLayerPartException: () => InvalidLayerPartException,\n InvalidParameterException: () => InvalidParameterException,\n InvalidTagParameterException: () => InvalidTagParameterException,\n KmsException: () => KmsException,\n LayerAlreadyExistsException: () => LayerAlreadyExistsException,\n LayerAvailability: () => LayerAvailability,\n LayerFailureCode: () => LayerFailureCode,\n LayerInaccessibleException: () => LayerInaccessibleException,\n LayerPartTooSmallException: () => LayerPartTooSmallException,\n LayersNotFoundException: () => LayersNotFoundException,\n LifecyclePolicyNotFoundException: () => LifecyclePolicyNotFoundException,\n LifecyclePolicyPreviewInProgressException: () => LifecyclePolicyPreviewInProgressException,\n LifecyclePolicyPreviewNotFoundException: () => LifecyclePolicyPreviewNotFoundException,\n LifecyclePolicyPreviewStatus: () => LifecyclePolicyPreviewStatus,\n LimitExceededException: () => LimitExceededException,\n ListImagesCommand: () => ListImagesCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n PullThroughCacheRuleAlreadyExistsException: () => PullThroughCacheRuleAlreadyExistsException,\n PullThroughCacheRuleNotFoundException: () => PullThroughCacheRuleNotFoundException,\n PutAccountSettingCommand: () => PutAccountSettingCommand,\n PutImageCommand: () => PutImageCommand,\n PutImageScanningConfigurationCommand: () => PutImageScanningConfigurationCommand,\n PutImageTagMutabilityCommand: () => PutImageTagMutabilityCommand,\n PutLifecyclePolicyCommand: () => PutLifecyclePolicyCommand,\n PutRegistryPolicyCommand: () => PutRegistryPolicyCommand,\n PutRegistryScanningConfigurationCommand: () => PutRegistryScanningConfigurationCommand,\n PutReplicationConfigurationCommand: () => PutReplicationConfigurationCommand,\n RCTAppliedFor: () => RCTAppliedFor,\n ReferencedImagesNotFoundException: () => ReferencedImagesNotFoundException,\n RegistryPolicyNotFoundException: () => RegistryPolicyNotFoundException,\n ReplicationStatus: () => ReplicationStatus,\n RepositoryAlreadyExistsException: () => RepositoryAlreadyExistsException,\n RepositoryFilterType: () => RepositoryFilterType,\n RepositoryNotEmptyException: () => RepositoryNotEmptyException,\n RepositoryNotFoundException: () => RepositoryNotFoundException,\n RepositoryPolicyNotFoundException: () => RepositoryPolicyNotFoundException,\n ScanFrequency: () => ScanFrequency,\n ScanNotFoundException: () => ScanNotFoundException,\n ScanStatus: () => ScanStatus,\n ScanType: () => ScanType,\n ScanningConfigurationFailureCode: () => ScanningConfigurationFailureCode,\n ScanningRepositoryFilterType: () => ScanningRepositoryFilterType,\n SecretNotFoundException: () => SecretNotFoundException,\n ServerException: () => ServerException,\n SetRepositoryPolicyCommand: () => SetRepositoryPolicyCommand,\n StartImageScanCommand: () => StartImageScanCommand,\n StartLifecyclePolicyPreviewCommand: () => StartLifecyclePolicyPreviewCommand,\n TagResourceCommand: () => TagResourceCommand,\n TagStatus: () => TagStatus,\n TemplateAlreadyExistsException: () => TemplateAlreadyExistsException,\n TemplateNotFoundException: () => TemplateNotFoundException,\n TooManyTagsException: () => TooManyTagsException,\n UnableToAccessSecretException: () => UnableToAccessSecretException,\n UnableToDecryptSecretValueException: () => UnableToDecryptSecretValueException,\n UnableToGetUpstreamImageException: () => UnableToGetUpstreamImageException,\n UnableToGetUpstreamLayerException: () => UnableToGetUpstreamLayerException,\n UnsupportedImageTypeException: () => UnsupportedImageTypeException,\n UnsupportedUpstreamRegistryException: () => UnsupportedUpstreamRegistryException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdatePullThroughCacheRuleCommand: () => UpdatePullThroughCacheRuleCommand,\n UpdateRepositoryCreationTemplateCommand: () => UpdateRepositoryCreationTemplateCommand,\n UploadLayerPartCommand: () => UploadLayerPartCommand,\n UploadNotFoundException: () => UploadNotFoundException,\n UpstreamRegistry: () => UpstreamRegistry,\n ValidatePullThroughCacheRuleCommand: () => ValidatePullThroughCacheRuleCommand,\n ValidationException: () => ValidationException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeImageScanFindings: () => paginateDescribeImageScanFindings,\n paginateDescribeImages: () => paginateDescribeImages,\n paginateDescribePullThroughCacheRules: () => paginateDescribePullThroughCacheRules,\n paginateDescribeRepositories: () => paginateDescribeRepositories,\n paginateDescribeRepositoryCreationTemplates: () => paginateDescribeRepositoryCreationTemplates,\n paginateGetLifecyclePolicyPreview: () => paginateGetLifecyclePolicyPreview,\n paginateListImages: () => paginateListImages,\n waitForImageScanComplete: () => waitForImageScanComplete,\n waitForLifecyclePolicyPreviewComplete: () => waitForLifecyclePolicyPreviewComplete,\n waitUntilImageScanComplete: () => waitUntilImageScanComplete,\n waitUntilLifecyclePolicyPreviewComplete: () => waitUntilLifecyclePolicyPreviewComplete\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/ECRClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ecr\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/ECRClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/ECRClient.ts\nvar ECRClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"ECRClient\");\n }\n /**\n * The resolved configuration of ECRClient class. This is resolved and normalized from the {@link ECRClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultECRHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/ECR.ts\n\n\n// src/commands/BatchCheckLayerAvailabilityCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/ECRServiceException.ts\n\nvar ECRServiceException = class _ECRServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"ECRServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _ECRServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar LayerFailureCode = {\n InvalidLayerDigest: \"InvalidLayerDigest\",\n MissingLayerDigest: \"MissingLayerDigest\"\n};\nvar LayerAvailability = {\n AVAILABLE: \"AVAILABLE\",\n UNAVAILABLE: \"UNAVAILABLE\"\n};\nvar InvalidParameterException = class _InvalidParameterException extends ECRServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar RepositoryNotFoundException = class _RepositoryNotFoundException extends ECRServiceException {\n static {\n __name(this, \"RepositoryNotFoundException\");\n }\n name = \"RepositoryNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryNotFoundException.prototype);\n }\n};\nvar ServerException = class _ServerException extends ECRServiceException {\n static {\n __name(this, \"ServerException\");\n }\n name = \"ServerException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServerException.prototype);\n }\n};\nvar ImageFailureCode = {\n ImageNotFound: \"ImageNotFound\",\n ImageReferencedByManifestList: \"ImageReferencedByManifestList\",\n ImageTagDoesNotMatchDigest: \"ImageTagDoesNotMatchDigest\",\n InvalidImageDigest: \"InvalidImageDigest\",\n InvalidImageTag: \"InvalidImageTag\",\n KmsError: \"KmsError\",\n MissingDigestAndTag: \"MissingDigestAndTag\",\n UpstreamAccessDenied: \"UpstreamAccessDenied\",\n UpstreamTooManyRequests: \"UpstreamTooManyRequests\",\n UpstreamUnavailable: \"UpstreamUnavailable\"\n};\nvar LimitExceededException = class _LimitExceededException extends ECRServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar UnableToGetUpstreamImageException = class _UnableToGetUpstreamImageException extends ECRServiceException {\n static {\n __name(this, \"UnableToGetUpstreamImageException\");\n }\n name = \"UnableToGetUpstreamImageException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToGetUpstreamImageException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToGetUpstreamImageException.prototype);\n }\n};\nvar ScanningConfigurationFailureCode = {\n REPOSITORY_NOT_FOUND: \"REPOSITORY_NOT_FOUND\"\n};\nvar ScanningRepositoryFilterType = {\n WILDCARD: \"WILDCARD\"\n};\nvar ScanFrequency = {\n CONTINUOUS_SCAN: \"CONTINUOUS_SCAN\",\n MANUAL: \"MANUAL\",\n SCAN_ON_PUSH: \"SCAN_ON_PUSH\"\n};\nvar ValidationException = class _ValidationException extends ECRServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n }\n};\nvar EmptyUploadException = class _EmptyUploadException extends ECRServiceException {\n static {\n __name(this, \"EmptyUploadException\");\n }\n name = \"EmptyUploadException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EmptyUploadException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EmptyUploadException.prototype);\n }\n};\nvar InvalidLayerException = class _InvalidLayerException extends ECRServiceException {\n static {\n __name(this, \"InvalidLayerException\");\n }\n name = \"InvalidLayerException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLayerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLayerException.prototype);\n }\n};\nvar KmsException = class _KmsException extends ECRServiceException {\n static {\n __name(this, \"KmsException\");\n }\n name = \"KmsException\";\n $fault = \"client\";\n /**\n *

The error code returned by KMS.

\n * @public\n */\n kmsError;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsException.prototype);\n this.kmsError = opts.kmsError;\n }\n};\nvar LayerAlreadyExistsException = class _LayerAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"LayerAlreadyExistsException\");\n }\n name = \"LayerAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayerAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayerAlreadyExistsException.prototype);\n }\n};\nvar LayerPartTooSmallException = class _LayerPartTooSmallException extends ECRServiceException {\n static {\n __name(this, \"LayerPartTooSmallException\");\n }\n name = \"LayerPartTooSmallException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayerPartTooSmallException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayerPartTooSmallException.prototype);\n }\n};\nvar UploadNotFoundException = class _UploadNotFoundException extends ECRServiceException {\n static {\n __name(this, \"UploadNotFoundException\");\n }\n name = \"UploadNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UploadNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UploadNotFoundException.prototype);\n }\n};\nvar UpstreamRegistry = {\n AzureContainerRegistry: \"azure-container-registry\",\n DockerHub: \"docker-hub\",\n Ecr: \"ecr\",\n EcrPublic: \"ecr-public\",\n GitHubContainerRegistry: \"github-container-registry\",\n GitLabContainerRegistry: \"gitlab-container-registry\",\n K8s: \"k8s\",\n Quay: \"quay\"\n};\nvar PullThroughCacheRuleAlreadyExistsException = class _PullThroughCacheRuleAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"PullThroughCacheRuleAlreadyExistsException\");\n }\n name = \"PullThroughCacheRuleAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PullThroughCacheRuleAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PullThroughCacheRuleAlreadyExistsException.prototype);\n }\n};\nvar SecretNotFoundException = class _SecretNotFoundException extends ECRServiceException {\n static {\n __name(this, \"SecretNotFoundException\");\n }\n name = \"SecretNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SecretNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SecretNotFoundException.prototype);\n }\n};\nvar UnableToAccessSecretException = class _UnableToAccessSecretException extends ECRServiceException {\n static {\n __name(this, \"UnableToAccessSecretException\");\n }\n name = \"UnableToAccessSecretException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToAccessSecretException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToAccessSecretException.prototype);\n }\n};\nvar UnableToDecryptSecretValueException = class _UnableToDecryptSecretValueException extends ECRServiceException {\n static {\n __name(this, \"UnableToDecryptSecretValueException\");\n }\n name = \"UnableToDecryptSecretValueException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToDecryptSecretValueException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToDecryptSecretValueException.prototype);\n }\n};\nvar UnsupportedUpstreamRegistryException = class _UnsupportedUpstreamRegistryException extends ECRServiceException {\n static {\n __name(this, \"UnsupportedUpstreamRegistryException\");\n }\n name = \"UnsupportedUpstreamRegistryException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedUpstreamRegistryException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedUpstreamRegistryException.prototype);\n }\n};\nvar EncryptionType = {\n AES256: \"AES256\",\n KMS: \"KMS\",\n KMS_DSSE: \"KMS_DSSE\"\n};\nvar ImageTagMutability = {\n IMMUTABLE: \"IMMUTABLE\",\n IMMUTABLE_WITH_EXCLUSION: \"IMMUTABLE_WITH_EXCLUSION\",\n MUTABLE: \"MUTABLE\",\n MUTABLE_WITH_EXCLUSION: \"MUTABLE_WITH_EXCLUSION\"\n};\nvar ImageTagMutabilityExclusionFilterType = {\n WILDCARD: \"WILDCARD\"\n};\nvar InvalidTagParameterException = class _InvalidTagParameterException extends ECRServiceException {\n static {\n __name(this, \"InvalidTagParameterException\");\n }\n name = \"InvalidTagParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTagParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTagParameterException.prototype);\n }\n};\nvar RepositoryAlreadyExistsException = class _RepositoryAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"RepositoryAlreadyExistsException\");\n }\n name = \"RepositoryAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryAlreadyExistsException.prototype);\n }\n};\nvar TooManyTagsException = class _TooManyTagsException extends ECRServiceException {\n static {\n __name(this, \"TooManyTagsException\");\n }\n name = \"TooManyTagsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsException.prototype);\n }\n};\nvar RCTAppliedFor = {\n PULL_THROUGH_CACHE: \"PULL_THROUGH_CACHE\",\n REPLICATION: \"REPLICATION\"\n};\nvar TemplateAlreadyExistsException = class _TemplateAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"TemplateAlreadyExistsException\");\n }\n name = \"TemplateAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TemplateAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TemplateAlreadyExistsException.prototype);\n }\n};\nvar LifecyclePolicyNotFoundException = class _LifecyclePolicyNotFoundException extends ECRServiceException {\n static {\n __name(this, \"LifecyclePolicyNotFoundException\");\n }\n name = \"LifecyclePolicyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LifecyclePolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LifecyclePolicyNotFoundException.prototype);\n }\n};\nvar PullThroughCacheRuleNotFoundException = class _PullThroughCacheRuleNotFoundException extends ECRServiceException {\n static {\n __name(this, \"PullThroughCacheRuleNotFoundException\");\n }\n name = \"PullThroughCacheRuleNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PullThroughCacheRuleNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PullThroughCacheRuleNotFoundException.prototype);\n }\n};\nvar RegistryPolicyNotFoundException = class _RegistryPolicyNotFoundException extends ECRServiceException {\n static {\n __name(this, \"RegistryPolicyNotFoundException\");\n }\n name = \"RegistryPolicyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegistryPolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegistryPolicyNotFoundException.prototype);\n }\n};\nvar RepositoryNotEmptyException = class _RepositoryNotEmptyException extends ECRServiceException {\n static {\n __name(this, \"RepositoryNotEmptyException\");\n }\n name = \"RepositoryNotEmptyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryNotEmptyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryNotEmptyException.prototype);\n }\n};\nvar TemplateNotFoundException = class _TemplateNotFoundException extends ECRServiceException {\n static {\n __name(this, \"TemplateNotFoundException\");\n }\n name = \"TemplateNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TemplateNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TemplateNotFoundException.prototype);\n }\n};\nvar RepositoryPolicyNotFoundException = class _RepositoryPolicyNotFoundException extends ECRServiceException {\n static {\n __name(this, \"RepositoryPolicyNotFoundException\");\n }\n name = \"RepositoryPolicyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryPolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryPolicyNotFoundException.prototype);\n }\n};\nvar ReplicationStatus = {\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar ImageNotFoundException = class _ImageNotFoundException extends ECRServiceException {\n static {\n __name(this, \"ImageNotFoundException\");\n }\n name = \"ImageNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageNotFoundException.prototype);\n }\n};\nvar TagStatus = {\n ANY: \"ANY\",\n TAGGED: \"TAGGED\",\n UNTAGGED: \"UNTAGGED\"\n};\nvar FindingSeverity = {\n CRITICAL: \"CRITICAL\",\n HIGH: \"HIGH\",\n INFORMATIONAL: \"INFORMATIONAL\",\n LOW: \"LOW\",\n MEDIUM: \"MEDIUM\",\n UNDEFINED: \"UNDEFINED\"\n};\nvar ScanStatus = {\n ACTIVE: \"ACTIVE\",\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n FINDINGS_UNAVAILABLE: \"FINDINGS_UNAVAILABLE\",\n IN_PROGRESS: \"IN_PROGRESS\",\n LIMIT_EXCEEDED: \"LIMIT_EXCEEDED\",\n PENDING: \"PENDING\",\n SCAN_ELIGIBILITY_EXPIRED: \"SCAN_ELIGIBILITY_EXPIRED\",\n UNSUPPORTED_IMAGE: \"UNSUPPORTED_IMAGE\"\n};\nvar ScanNotFoundException = class _ScanNotFoundException extends ECRServiceException {\n static {\n __name(this, \"ScanNotFoundException\");\n }\n name = \"ScanNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ScanNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ScanNotFoundException.prototype);\n }\n};\nvar RepositoryFilterType = {\n PREFIX_MATCH: \"PREFIX_MATCH\"\n};\nvar LayerInaccessibleException = class _LayerInaccessibleException extends ECRServiceException {\n static {\n __name(this, \"LayerInaccessibleException\");\n }\n name = \"LayerInaccessibleException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayerInaccessibleException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayerInaccessibleException.prototype);\n }\n};\nvar LayersNotFoundException = class _LayersNotFoundException extends ECRServiceException {\n static {\n __name(this, \"LayersNotFoundException\");\n }\n name = \"LayersNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayersNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayersNotFoundException.prototype);\n }\n};\nvar UnableToGetUpstreamLayerException = class _UnableToGetUpstreamLayerException extends ECRServiceException {\n static {\n __name(this, \"UnableToGetUpstreamLayerException\");\n }\n name = \"UnableToGetUpstreamLayerException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToGetUpstreamLayerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToGetUpstreamLayerException.prototype);\n }\n};\nvar ImageActionType = {\n EXPIRE: \"EXPIRE\"\n};\nvar LifecyclePolicyPreviewStatus = {\n COMPLETE: \"COMPLETE\",\n EXPIRED: \"EXPIRED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar LifecyclePolicyPreviewNotFoundException = class _LifecyclePolicyPreviewNotFoundException extends ECRServiceException {\n static {\n __name(this, \"LifecyclePolicyPreviewNotFoundException\");\n }\n name = \"LifecyclePolicyPreviewNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LifecyclePolicyPreviewNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LifecyclePolicyPreviewNotFoundException.prototype);\n }\n};\nvar ScanType = {\n BASIC: \"BASIC\",\n ENHANCED: \"ENHANCED\"\n};\nvar ImageAlreadyExistsException = class _ImageAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"ImageAlreadyExistsException\");\n }\n name = \"ImageAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageAlreadyExistsException.prototype);\n }\n};\nvar ImageDigestDoesNotMatchException = class _ImageDigestDoesNotMatchException extends ECRServiceException {\n static {\n __name(this, \"ImageDigestDoesNotMatchException\");\n }\n name = \"ImageDigestDoesNotMatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageDigestDoesNotMatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageDigestDoesNotMatchException.prototype);\n }\n};\nvar ImageTagAlreadyExistsException = class _ImageTagAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"ImageTagAlreadyExistsException\");\n }\n name = \"ImageTagAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageTagAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageTagAlreadyExistsException.prototype);\n }\n};\nvar ReferencedImagesNotFoundException = class _ReferencedImagesNotFoundException extends ECRServiceException {\n static {\n __name(this, \"ReferencedImagesNotFoundException\");\n }\n name = \"ReferencedImagesNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ReferencedImagesNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ReferencedImagesNotFoundException.prototype);\n }\n};\nvar UnsupportedImageTypeException = class _UnsupportedImageTypeException extends ECRServiceException {\n static {\n __name(this, \"UnsupportedImageTypeException\");\n }\n name = \"UnsupportedImageTypeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedImageTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedImageTypeException.prototype);\n }\n};\nvar LifecyclePolicyPreviewInProgressException = class _LifecyclePolicyPreviewInProgressException extends ECRServiceException {\n static {\n __name(this, \"LifecyclePolicyPreviewInProgressException\");\n }\n name = \"LifecyclePolicyPreviewInProgressException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LifecyclePolicyPreviewInProgressException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LifecyclePolicyPreviewInProgressException.prototype);\n }\n};\nvar InvalidLayerPartException = class _InvalidLayerPartException extends ECRServiceException {\n static {\n __name(this, \"InvalidLayerPartException\");\n }\n name = \"InvalidLayerPartException\";\n $fault = \"client\";\n /**\n *

The registry ID associated with the exception.

\n * @public\n */\n registryId;\n /**\n *

The repository name associated with the exception.

\n * @public\n */\n repositoryName;\n /**\n *

The upload ID associated with the exception.

\n * @public\n */\n uploadId;\n /**\n *

The last valid byte received from the layer part upload that is associated with the\n * exception.

\n * @public\n */\n lastValidByteReceived;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLayerPartException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLayerPartException.prototype);\n this.registryId = opts.registryId;\n this.repositoryName = opts.repositoryName;\n this.uploadId = opts.uploadId;\n this.lastValidByteReceived = opts.lastValidByteReceived;\n }\n};\n\n// src/protocols/Aws_json1_1.ts\nvar se_BatchCheckLayerAvailabilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchCheckLayerAvailability\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchCheckLayerAvailabilityCommand\");\nvar se_BatchDeleteImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchDeleteImage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchDeleteImageCommand\");\nvar se_BatchGetImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetImage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetImageCommand\");\nvar se_BatchGetRepositoryScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetRepositoryScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetRepositoryScanningConfigurationCommand\");\nvar se_CompleteLayerUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CompleteLayerUpload\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CompleteLayerUploadCommand\");\nvar se_CreatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreatePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePullThroughCacheRuleCommand\");\nvar se_CreateRepositoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateRepository\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRepositoryCommand\");\nvar se_CreateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateRepositoryCreationTemplate\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRepositoryCreationTemplateCommand\");\nvar se_DeleteLifecyclePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLifecyclePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLifecyclePolicyCommand\");\nvar se_DeletePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeletePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePullThroughCacheRuleCommand\");\nvar se_DeleteRegistryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRegistryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRegistryPolicyCommand\");\nvar se_DeleteRepositoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRepository\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRepositoryCommand\");\nvar se_DeleteRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRepositoryCreationTemplate\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRepositoryCreationTemplateCommand\");\nvar se_DeleteRepositoryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRepositoryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRepositoryPolicyCommand\");\nvar se_DescribeImageReplicationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeImageReplicationStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImageReplicationStatusCommand\");\nvar se_DescribeImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeImages\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImagesCommand\");\nvar se_DescribeImageScanFindingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeImageScanFindings\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImageScanFindingsCommand\");\nvar se_DescribePullThroughCacheRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePullThroughCacheRules\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePullThroughCacheRulesCommand\");\nvar se_DescribeRegistryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeRegistry\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRegistryCommand\");\nvar se_DescribeRepositoriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeRepositories\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRepositoriesCommand\");\nvar se_DescribeRepositoryCreationTemplatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeRepositoryCreationTemplates\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRepositoryCreationTemplatesCommand\");\nvar se_GetAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountSettingCommand\");\nvar se_GetAuthorizationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAuthorizationToken\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAuthorizationTokenCommand\");\nvar se_GetDownloadUrlForLayerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDownloadUrlForLayer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDownloadUrlForLayerCommand\");\nvar se_GetLifecyclePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLifecyclePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLifecyclePolicyCommand\");\nvar se_GetLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLifecyclePolicyPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLifecyclePolicyPreviewCommand\");\nvar se_GetRegistryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRegistryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRegistryPolicyCommand\");\nvar se_GetRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRegistryScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRegistryScanningConfigurationCommand\");\nvar se_GetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRepositoryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRepositoryPolicyCommand\");\nvar se_InitiateLayerUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"InitiateLayerUpload\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_InitiateLayerUploadCommand\");\nvar se_ListImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListImages\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListImagesCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_PutAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountSettingCommand\");\nvar se_PutImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutImage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutImageCommand\");\nvar se_PutImageScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutImageScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutImageScanningConfigurationCommand\");\nvar se_PutImageTagMutabilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutImageTagMutability\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutImageTagMutabilityCommand\");\nvar se_PutLifecyclePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutLifecyclePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutLifecyclePolicyCommand\");\nvar se_PutRegistryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutRegistryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRegistryPolicyCommand\");\nvar se_PutRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutRegistryScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRegistryScanningConfigurationCommand\");\nvar se_PutReplicationConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutReplicationConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutReplicationConfigurationCommand\");\nvar se_SetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SetRepositoryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetRepositoryPolicyCommand\");\nvar se_StartImageScanCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartImageScan\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartImageScanCommand\");\nvar se_StartLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartLifecyclePolicyPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartLifecyclePolicyPreviewCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdatePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdatePullThroughCacheRuleCommand\");\nvar se_UpdateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateRepositoryCreationTemplate\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateRepositoryCreationTemplateCommand\");\nvar se_UploadLayerPartCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UploadLayerPart\");\n let body;\n body = JSON.stringify(se_UploadLayerPartRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadLayerPartCommand\");\nvar se_ValidatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ValidatePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ValidatePullThroughCacheRuleCommand\");\nvar de_BatchCheckLayerAvailabilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchCheckLayerAvailabilityCommand\");\nvar de_BatchDeleteImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchDeleteImageCommand\");\nvar de_BatchGetImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetImageCommand\");\nvar de_BatchGetRepositoryScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetRepositoryScanningConfigurationCommand\");\nvar de_CompleteLayerUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CompleteLayerUploadCommand\");\nvar de_CreatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreatePullThroughCacheRuleResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePullThroughCacheRuleCommand\");\nvar de_CreateRepositoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateRepositoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRepositoryCommand\");\nvar de_CreateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateRepositoryCreationTemplateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRepositoryCreationTemplateCommand\");\nvar de_DeleteLifecyclePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLifecyclePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLifecyclePolicyCommand\");\nvar de_DeletePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeletePullThroughCacheRuleResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeletePullThroughCacheRuleCommand\");\nvar de_DeleteRegistryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRegistryPolicyCommand\");\nvar de_DeleteRepositoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRepositoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRepositoryCommand\");\nvar de_DeleteRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRepositoryCreationTemplateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRepositoryCreationTemplateCommand\");\nvar de_DeleteRepositoryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRepositoryPolicyCommand\");\nvar de_DescribeImageReplicationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImageReplicationStatusCommand\");\nvar de_DescribeImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImagesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImagesCommand\");\nvar de_DescribeImageScanFindingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImageScanFindingsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImageScanFindingsCommand\");\nvar de_DescribePullThroughCacheRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribePullThroughCacheRulesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePullThroughCacheRulesCommand\");\nvar de_DescribeRegistryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRegistryCommand\");\nvar de_DescribeRepositoriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRepositoriesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRepositoriesCommand\");\nvar de_DescribeRepositoryCreationTemplatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRepositoryCreationTemplatesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRepositoryCreationTemplatesCommand\");\nvar de_GetAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountSettingCommand\");\nvar de_GetAuthorizationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetAuthorizationTokenResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAuthorizationTokenCommand\");\nvar de_GetDownloadUrlForLayerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDownloadUrlForLayerCommand\");\nvar de_GetLifecyclePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetLifecyclePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLifecyclePolicyCommand\");\nvar de_GetLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetLifecyclePolicyPreviewResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLifecyclePolicyPreviewCommand\");\nvar de_GetRegistryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRegistryPolicyCommand\");\nvar de_GetRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRegistryScanningConfigurationCommand\");\nvar de_GetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRepositoryPolicyCommand\");\nvar de_InitiateLayerUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_InitiateLayerUploadCommand\");\nvar de_ListImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListImagesCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_PutAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountSettingCommand\");\nvar de_PutImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutImageCommand\");\nvar de_PutImageScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutImageScanningConfigurationCommand\");\nvar de_PutImageTagMutabilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutImageTagMutabilityCommand\");\nvar de_PutLifecyclePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutLifecyclePolicyCommand\");\nvar de_PutRegistryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutRegistryPolicyCommand\");\nvar de_PutRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutRegistryScanningConfigurationCommand\");\nvar de_PutReplicationConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutReplicationConfigurationCommand\");\nvar de_SetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetRepositoryPolicyCommand\");\nvar de_StartImageScanCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartImageScanCommand\");\nvar de_StartLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartLifecyclePolicyPreviewCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdatePullThroughCacheRuleResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdatePullThroughCacheRuleCommand\");\nvar de_UpdateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateRepositoryCreationTemplateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateRepositoryCreationTemplateCommand\");\nvar de_UploadLayerPartCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadLayerPartCommand\");\nvar de_ValidatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ValidatePullThroughCacheRuleCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidParameterException\":\n case \"com.amazonaws.ecr#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"RepositoryNotFoundException\":\n case \"com.amazonaws.ecr#RepositoryNotFoundException\":\n throw await de_RepositoryNotFoundExceptionRes(parsedOutput, context);\n case \"ServerException\":\n case \"com.amazonaws.ecr#ServerException\":\n throw await de_ServerExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.ecr#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"UnableToGetUpstreamImageException\":\n case \"com.amazonaws.ecr#UnableToGetUpstreamImageException\":\n throw await de_UnableToGetUpstreamImageExceptionRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.ecr#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"EmptyUploadException\":\n case \"com.amazonaws.ecr#EmptyUploadException\":\n throw await de_EmptyUploadExceptionRes(parsedOutput, context);\n case \"InvalidLayerException\":\n case \"com.amazonaws.ecr#InvalidLayerException\":\n throw await de_InvalidLayerExceptionRes(parsedOutput, context);\n case \"KmsException\":\n case \"com.amazonaws.ecr#KmsException\":\n throw await de_KmsExceptionRes(parsedOutput, context);\n case \"LayerAlreadyExistsException\":\n case \"com.amazonaws.ecr#LayerAlreadyExistsException\":\n throw await de_LayerAlreadyExistsExceptionRes(parsedOutput, context);\n case \"LayerPartTooSmallException\":\n case \"com.amazonaws.ecr#LayerPartTooSmallException\":\n throw await de_LayerPartTooSmallExceptionRes(parsedOutput, context);\n case \"UploadNotFoundException\":\n case \"com.amazonaws.ecr#UploadNotFoundException\":\n throw await de_UploadNotFoundExceptionRes(parsedOutput, context);\n case \"PullThroughCacheRuleAlreadyExistsException\":\n case \"com.amazonaws.ecr#PullThroughCacheRuleAlreadyExistsException\":\n throw await de_PullThroughCacheRuleAlreadyExistsExceptionRes(parsedOutput, context);\n case \"SecretNotFoundException\":\n case \"com.amazonaws.ecr#SecretNotFoundException\":\n throw await de_SecretNotFoundExceptionRes(parsedOutput, context);\n case \"UnableToAccessSecretException\":\n case \"com.amazonaws.ecr#UnableToAccessSecretException\":\n throw await de_UnableToAccessSecretExceptionRes(parsedOutput, context);\n case \"UnableToDecryptSecretValueException\":\n case \"com.amazonaws.ecr#UnableToDecryptSecretValueException\":\n throw await de_UnableToDecryptSecretValueExceptionRes(parsedOutput, context);\n case \"UnsupportedUpstreamRegistryException\":\n case \"com.amazonaws.ecr#UnsupportedUpstreamRegistryException\":\n throw await de_UnsupportedUpstreamRegistryExceptionRes(parsedOutput, context);\n case \"InvalidTagParameterException\":\n case \"com.amazonaws.ecr#InvalidTagParameterException\":\n throw await de_InvalidTagParameterExceptionRes(parsedOutput, context);\n case \"RepositoryAlreadyExistsException\":\n case \"com.amazonaws.ecr#RepositoryAlreadyExistsException\":\n throw await de_RepositoryAlreadyExistsExceptionRes(parsedOutput, context);\n case \"TooManyTagsException\":\n case \"com.amazonaws.ecr#TooManyTagsException\":\n throw await de_TooManyTagsExceptionRes(parsedOutput, context);\n case \"TemplateAlreadyExistsException\":\n case \"com.amazonaws.ecr#TemplateAlreadyExistsException\":\n throw await de_TemplateAlreadyExistsExceptionRes(parsedOutput, context);\n case \"LifecyclePolicyNotFoundException\":\n case \"com.amazonaws.ecr#LifecyclePolicyNotFoundException\":\n throw await de_LifecyclePolicyNotFoundExceptionRes(parsedOutput, context);\n case \"PullThroughCacheRuleNotFoundException\":\n case \"com.amazonaws.ecr#PullThroughCacheRuleNotFoundException\":\n throw await de_PullThroughCacheRuleNotFoundExceptionRes(parsedOutput, context);\n case \"RegistryPolicyNotFoundException\":\n case \"com.amazonaws.ecr#RegistryPolicyNotFoundException\":\n throw await de_RegistryPolicyNotFoundExceptionRes(parsedOutput, context);\n case \"RepositoryNotEmptyException\":\n case \"com.amazonaws.ecr#RepositoryNotEmptyException\":\n throw await de_RepositoryNotEmptyExceptionRes(parsedOutput, context);\n case \"TemplateNotFoundException\":\n case \"com.amazonaws.ecr#TemplateNotFoundException\":\n throw await de_TemplateNotFoundExceptionRes(parsedOutput, context);\n case \"RepositoryPolicyNotFoundException\":\n case \"com.amazonaws.ecr#RepositoryPolicyNotFoundException\":\n throw await de_RepositoryPolicyNotFoundExceptionRes(parsedOutput, context);\n case \"ImageNotFoundException\":\n case \"com.amazonaws.ecr#ImageNotFoundException\":\n throw await de_ImageNotFoundExceptionRes(parsedOutput, context);\n case \"ScanNotFoundException\":\n case \"com.amazonaws.ecr#ScanNotFoundException\":\n throw await de_ScanNotFoundExceptionRes(parsedOutput, context);\n case \"LayerInaccessibleException\":\n case \"com.amazonaws.ecr#LayerInaccessibleException\":\n throw await de_LayerInaccessibleExceptionRes(parsedOutput, context);\n case \"LayersNotFoundException\":\n case \"com.amazonaws.ecr#LayersNotFoundException\":\n throw await de_LayersNotFoundExceptionRes(parsedOutput, context);\n case \"UnableToGetUpstreamLayerException\":\n case \"com.amazonaws.ecr#UnableToGetUpstreamLayerException\":\n throw await de_UnableToGetUpstreamLayerExceptionRes(parsedOutput, context);\n case \"LifecyclePolicyPreviewNotFoundException\":\n case \"com.amazonaws.ecr#LifecyclePolicyPreviewNotFoundException\":\n throw await de_LifecyclePolicyPreviewNotFoundExceptionRes(parsedOutput, context);\n case \"ImageAlreadyExistsException\":\n case \"com.amazonaws.ecr#ImageAlreadyExistsException\":\n throw await de_ImageAlreadyExistsExceptionRes(parsedOutput, context);\n case \"ImageDigestDoesNotMatchException\":\n case \"com.amazonaws.ecr#ImageDigestDoesNotMatchException\":\n throw await de_ImageDigestDoesNotMatchExceptionRes(parsedOutput, context);\n case \"ImageTagAlreadyExistsException\":\n case \"com.amazonaws.ecr#ImageTagAlreadyExistsException\":\n throw await de_ImageTagAlreadyExistsExceptionRes(parsedOutput, context);\n case \"ReferencedImagesNotFoundException\":\n case \"com.amazonaws.ecr#ReferencedImagesNotFoundException\":\n throw await de_ReferencedImagesNotFoundExceptionRes(parsedOutput, context);\n case \"UnsupportedImageTypeException\":\n case \"com.amazonaws.ecr#UnsupportedImageTypeException\":\n throw await de_UnsupportedImageTypeExceptionRes(parsedOutput, context);\n case \"LifecyclePolicyPreviewInProgressException\":\n case \"com.amazonaws.ecr#LifecyclePolicyPreviewInProgressException\":\n throw await de_LifecyclePolicyPreviewInProgressExceptionRes(parsedOutput, context);\n case \"InvalidLayerPartException\":\n case \"com.amazonaws.ecr#InvalidLayerPartException\":\n throw await de_InvalidLayerPartExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_EmptyUploadExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new EmptyUploadException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EmptyUploadExceptionRes\");\nvar de_ImageAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageAlreadyExistsExceptionRes\");\nvar de_ImageDigestDoesNotMatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageDigestDoesNotMatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageDigestDoesNotMatchExceptionRes\");\nvar de_ImageNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageNotFoundExceptionRes\");\nvar de_ImageTagAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageTagAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageTagAlreadyExistsExceptionRes\");\nvar de_InvalidLayerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidLayerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLayerExceptionRes\");\nvar de_InvalidLayerPartExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidLayerPartException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLayerPartExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_InvalidTagParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTagParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTagParameterExceptionRes\");\nvar de_KmsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsExceptionRes\");\nvar de_LayerAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayerAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayerAlreadyExistsExceptionRes\");\nvar de_LayerInaccessibleExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayerInaccessibleException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayerInaccessibleExceptionRes\");\nvar de_LayerPartTooSmallExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayerPartTooSmallException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayerPartTooSmallExceptionRes\");\nvar de_LayersNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayersNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayersNotFoundExceptionRes\");\nvar de_LifecyclePolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LifecyclePolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LifecyclePolicyNotFoundExceptionRes\");\nvar de_LifecyclePolicyPreviewInProgressExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LifecyclePolicyPreviewInProgressException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LifecyclePolicyPreviewInProgressExceptionRes\");\nvar de_LifecyclePolicyPreviewNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LifecyclePolicyPreviewNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LifecyclePolicyPreviewNotFoundExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_PullThroughCacheRuleAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PullThroughCacheRuleAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PullThroughCacheRuleAlreadyExistsExceptionRes\");\nvar de_PullThroughCacheRuleNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PullThroughCacheRuleNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PullThroughCacheRuleNotFoundExceptionRes\");\nvar de_ReferencedImagesNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ReferencedImagesNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ReferencedImagesNotFoundExceptionRes\");\nvar de_RegistryPolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RegistryPolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RegistryPolicyNotFoundExceptionRes\");\nvar de_RepositoryAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryAlreadyExistsExceptionRes\");\nvar de_RepositoryNotEmptyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryNotEmptyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryNotEmptyExceptionRes\");\nvar de_RepositoryNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryNotFoundExceptionRes\");\nvar de_RepositoryPolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryPolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryPolicyNotFoundExceptionRes\");\nvar de_ScanNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ScanNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ScanNotFoundExceptionRes\");\nvar de_SecretNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SecretNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SecretNotFoundExceptionRes\");\nvar de_ServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServerExceptionRes\");\nvar de_TemplateAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TemplateAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TemplateAlreadyExistsExceptionRes\");\nvar de_TemplateNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TemplateNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TemplateNotFoundExceptionRes\");\nvar de_TooManyTagsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTagsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsExceptionRes\");\nvar de_UnableToAccessSecretExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToAccessSecretException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToAccessSecretExceptionRes\");\nvar de_UnableToDecryptSecretValueExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToDecryptSecretValueException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToDecryptSecretValueExceptionRes\");\nvar de_UnableToGetUpstreamImageExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToGetUpstreamImageException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToGetUpstreamImageExceptionRes\");\nvar de_UnableToGetUpstreamLayerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToGetUpstreamLayerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToGetUpstreamLayerExceptionRes\");\nvar de_UnsupportedImageTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedImageTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedImageTypeExceptionRes\");\nvar de_UnsupportedUpstreamRegistryExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedUpstreamRegistryException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedUpstreamRegistryExceptionRes\");\nvar de_UploadNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UploadNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UploadNotFoundExceptionRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar se_UploadLayerPartRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n layerPartBlob: context.base64Encoder,\n partFirstByte: [],\n partLastByte: [],\n registryId: [],\n repositoryName: [],\n uploadId: []\n });\n}, \"se_UploadLayerPartRequest\");\nvar de_AuthorizationData = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n authorizationToken: import_smithy_client.expectString,\n expiresAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expiresAt\"),\n proxyEndpoint: import_smithy_client.expectString\n });\n}, \"de_AuthorizationData\");\nvar de_AuthorizationDataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AuthorizationData(entry, context);\n });\n return retVal;\n}, \"de_AuthorizationDataList\");\nvar de_AwsEcrContainerImageDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n architecture: import_smithy_client.expectString,\n author: import_smithy_client.expectString,\n imageHash: import_smithy_client.expectString,\n imageTags: import_smithy_client._json,\n inUseCount: import_smithy_client.expectLong,\n lastInUseAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastInUseAt\"),\n platform: import_smithy_client.expectString,\n pushedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"pushedAt\"),\n registry: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_AwsEcrContainerImageDetails\");\nvar de_CreatePullThroughCacheRuleResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n upstreamRegistry: import_smithy_client.expectString,\n upstreamRegistryUrl: import_smithy_client.expectString,\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_CreatePullThroughCacheRuleResponse\");\nvar de_CreateRepositoryCreationTemplateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplate: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplate(_, context), \"repositoryCreationTemplate\")\n });\n}, \"de_CreateRepositoryCreationTemplateResponse\");\nvar de_CreateRepositoryResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n repository: /* @__PURE__ */ __name((_) => de_Repository(_, context), \"repository\")\n });\n}, \"de_CreateRepositoryResponse\");\nvar de_CvssScore = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n baseScore: import_smithy_client.limitedParseDouble,\n scoringVector: import_smithy_client.expectString,\n source: import_smithy_client.expectString,\n version: import_smithy_client.expectString\n });\n}, \"de_CvssScore\");\nvar de_CvssScoreDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n adjustments: import_smithy_client._json,\n score: import_smithy_client.limitedParseDouble,\n scoreSource: import_smithy_client.expectString,\n scoringVector: import_smithy_client.expectString,\n version: import_smithy_client.expectString\n });\n}, \"de_CvssScoreDetails\");\nvar de_CvssScoreList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CvssScore(entry, context);\n });\n return retVal;\n}, \"de_CvssScoreList\");\nvar de_DeleteLifecyclePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastEvaluatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastEvaluatedAt\"),\n lifecyclePolicyText: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_DeleteLifecyclePolicyResponse\");\nvar de_DeletePullThroughCacheRuleResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n upstreamRegistryUrl: import_smithy_client.expectString,\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_DeletePullThroughCacheRuleResponse\");\nvar de_DeleteRepositoryCreationTemplateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplate: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplate(_, context), \"repositoryCreationTemplate\")\n });\n}, \"de_DeleteRepositoryCreationTemplateResponse\");\nvar de_DeleteRepositoryResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n repository: /* @__PURE__ */ __name((_) => de_Repository(_, context), \"repository\")\n });\n}, \"de_DeleteRepositoryResponse\");\nvar de_DescribeImageScanFindingsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n imageId: import_smithy_client._json,\n imageScanFindings: /* @__PURE__ */ __name((_) => de_ImageScanFindings(_, context), \"imageScanFindings\"),\n imageScanStatus: import_smithy_client._json,\n nextToken: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_DescribeImageScanFindingsResponse\");\nvar de_DescribeImagesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n imageDetails: /* @__PURE__ */ __name((_) => de_ImageDetailList(_, context), \"imageDetails\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeImagesResponse\");\nvar de_DescribePullThroughCacheRulesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n pullThroughCacheRules: /* @__PURE__ */ __name((_) => de_PullThroughCacheRuleList(_, context), \"pullThroughCacheRules\")\n });\n}, \"de_DescribePullThroughCacheRulesResponse\");\nvar de_DescribeRepositoriesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n repositories: /* @__PURE__ */ __name((_) => de_RepositoryList(_, context), \"repositories\")\n });\n}, \"de_DescribeRepositoriesResponse\");\nvar de_DescribeRepositoryCreationTemplatesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplates: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplateList(_, context), \"repositoryCreationTemplates\")\n });\n}, \"de_DescribeRepositoryCreationTemplatesResponse\");\nvar de_EnhancedImageScanFinding = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n awsAccountId: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n exploitAvailable: import_smithy_client.expectString,\n findingArn: import_smithy_client.expectString,\n firstObservedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"firstObservedAt\"),\n fixAvailable: import_smithy_client.expectString,\n lastObservedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastObservedAt\"),\n packageVulnerabilityDetails: /* @__PURE__ */ __name((_) => de_PackageVulnerabilityDetails(_, context), \"packageVulnerabilityDetails\"),\n remediation: import_smithy_client._json,\n resources: /* @__PURE__ */ __name((_) => de_ResourceList(_, context), \"resources\"),\n score: import_smithy_client.limitedParseDouble,\n scoreDetails: /* @__PURE__ */ __name((_) => de_ScoreDetails(_, context), \"scoreDetails\"),\n severity: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n title: import_smithy_client.expectString,\n type: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_EnhancedImageScanFinding\");\nvar de_EnhancedImageScanFindingList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_EnhancedImageScanFinding(entry, context);\n });\n return retVal;\n}, \"de_EnhancedImageScanFindingList\");\nvar de_GetAuthorizationTokenResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n authorizationData: /* @__PURE__ */ __name((_) => de_AuthorizationDataList(_, context), \"authorizationData\")\n });\n}, \"de_GetAuthorizationTokenResponse\");\nvar de_GetLifecyclePolicyPreviewResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lifecyclePolicyText: import_smithy_client.expectString,\n nextToken: import_smithy_client.expectString,\n previewResults: /* @__PURE__ */ __name((_) => de_LifecyclePolicyPreviewResultList(_, context), \"previewResults\"),\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n summary: import_smithy_client._json\n });\n}, \"de_GetLifecyclePolicyPreviewResponse\");\nvar de_GetLifecyclePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastEvaluatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastEvaluatedAt\"),\n lifecyclePolicyText: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_GetLifecyclePolicyResponse\");\nvar de_ImageDetail = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n artifactMediaType: import_smithy_client.expectString,\n imageDigest: import_smithy_client.expectString,\n imageManifestMediaType: import_smithy_client.expectString,\n imagePushedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imagePushedAt\"),\n imageScanFindingsSummary: /* @__PURE__ */ __name((_) => de_ImageScanFindingsSummary(_, context), \"imageScanFindingsSummary\"),\n imageScanStatus: import_smithy_client._json,\n imageSizeInBytes: import_smithy_client.expectLong,\n imageTags: import_smithy_client._json,\n lastRecordedPullTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastRecordedPullTime\"),\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_ImageDetail\");\nvar de_ImageDetailList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ImageDetail(entry, context);\n });\n return retVal;\n}, \"de_ImageDetailList\");\nvar de_ImageScanFindings = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n enhancedFindings: /* @__PURE__ */ __name((_) => de_EnhancedImageScanFindingList(_, context), \"enhancedFindings\"),\n findingSeverityCounts: import_smithy_client._json,\n findings: import_smithy_client._json,\n imageScanCompletedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imageScanCompletedAt\"),\n vulnerabilitySourceUpdatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vulnerabilitySourceUpdatedAt\")\n });\n}, \"de_ImageScanFindings\");\nvar de_ImageScanFindingsSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n findingSeverityCounts: import_smithy_client._json,\n imageScanCompletedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imageScanCompletedAt\"),\n vulnerabilitySourceUpdatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vulnerabilitySourceUpdatedAt\")\n });\n}, \"de_ImageScanFindingsSummary\");\nvar de_LifecyclePolicyPreviewResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n action: import_smithy_client._json,\n appliedRulePriority: import_smithy_client.expectInt32,\n imageDigest: import_smithy_client.expectString,\n imagePushedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imagePushedAt\"),\n imageTags: import_smithy_client._json\n });\n}, \"de_LifecyclePolicyPreviewResult\");\nvar de_LifecyclePolicyPreviewResultList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_LifecyclePolicyPreviewResult(entry, context);\n });\n return retVal;\n}, \"de_LifecyclePolicyPreviewResultList\");\nvar de_PackageVulnerabilityDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n cvss: /* @__PURE__ */ __name((_) => de_CvssScoreList(_, context), \"cvss\"),\n referenceUrls: import_smithy_client._json,\n relatedVulnerabilities: import_smithy_client._json,\n source: import_smithy_client.expectString,\n sourceUrl: import_smithy_client.expectString,\n vendorCreatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vendorCreatedAt\"),\n vendorSeverity: import_smithy_client.expectString,\n vendorUpdatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vendorUpdatedAt\"),\n vulnerabilityId: import_smithy_client.expectString,\n vulnerablePackages: import_smithy_client._json\n });\n}, \"de_PackageVulnerabilityDetails\");\nvar de_PullThroughCacheRule = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\"),\n upstreamRegistry: import_smithy_client.expectString,\n upstreamRegistryUrl: import_smithy_client.expectString,\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_PullThroughCacheRule\");\nvar de_PullThroughCacheRuleList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_PullThroughCacheRule(entry, context);\n });\n return retVal;\n}, \"de_PullThroughCacheRuleList\");\nvar de_Repository = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n encryptionConfiguration: import_smithy_client._json,\n imageScanningConfiguration: import_smithy_client._json,\n imageTagMutability: import_smithy_client.expectString,\n imageTagMutabilityExclusionFilters: import_smithy_client._json,\n registryId: import_smithy_client.expectString,\n repositoryArn: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString,\n repositoryUri: import_smithy_client.expectString\n });\n}, \"de_Repository\");\nvar de_RepositoryCreationTemplate = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n appliedFor: import_smithy_client._json,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n customRoleArn: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n encryptionConfiguration: import_smithy_client._json,\n imageTagMutability: import_smithy_client.expectString,\n imageTagMutabilityExclusionFilters: import_smithy_client._json,\n lifecyclePolicy: import_smithy_client.expectString,\n prefix: import_smithy_client.expectString,\n repositoryPolicy: import_smithy_client.expectString,\n resourceTags: import_smithy_client._json,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_RepositoryCreationTemplate\");\nvar de_RepositoryCreationTemplateList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_RepositoryCreationTemplate(entry, context);\n });\n return retVal;\n}, \"de_RepositoryCreationTemplateList\");\nvar de_RepositoryList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Repository(entry, context);\n });\n return retVal;\n}, \"de_RepositoryList\");\nvar de_Resource = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n details: /* @__PURE__ */ __name((_) => de_ResourceDetails(_, context), \"details\"),\n id: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n type: import_smithy_client.expectString\n });\n}, \"de_Resource\");\nvar de_ResourceDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n awsEcrContainerImage: /* @__PURE__ */ __name((_) => de_AwsEcrContainerImageDetails(_, context), \"awsEcrContainerImage\")\n });\n}, \"de_ResourceDetails\");\nvar de_ResourceList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Resource(entry, context);\n });\n return retVal;\n}, \"de_ResourceList\");\nvar de_ScoreDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n cvss: /* @__PURE__ */ __name((_) => de_CvssScoreDetails(_, context), \"cvss\")\n });\n}, \"de_ScoreDetails\");\nvar de_UpdatePullThroughCacheRuleResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\"),\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_UpdatePullThroughCacheRuleResponse\");\nvar de_UpdateRepositoryCreationTemplateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplate: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplate(_, context), \"repositoryCreationTemplate\")\n });\n}, \"de_UpdateRepositoryCreationTemplateResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(ECRServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AmazonEC2ContainerRegistry_V20150921.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/BatchCheckLayerAvailabilityCommand.ts\nvar BatchCheckLayerAvailabilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchCheckLayerAvailability\", {}).n(\"ECRClient\", \"BatchCheckLayerAvailabilityCommand\").f(void 0, void 0).ser(se_BatchCheckLayerAvailabilityCommand).de(de_BatchCheckLayerAvailabilityCommand).build() {\n static {\n __name(this, \"BatchCheckLayerAvailabilityCommand\");\n }\n};\n\n// src/commands/BatchDeleteImageCommand.ts\n\n\n\nvar BatchDeleteImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchDeleteImage\", {}).n(\"ECRClient\", \"BatchDeleteImageCommand\").f(void 0, void 0).ser(se_BatchDeleteImageCommand).de(de_BatchDeleteImageCommand).build() {\n static {\n __name(this, \"BatchDeleteImageCommand\");\n }\n};\n\n// src/commands/BatchGetImageCommand.ts\n\n\n\nvar BatchGetImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchGetImage\", {}).n(\"ECRClient\", \"BatchGetImageCommand\").f(void 0, void 0).ser(se_BatchGetImageCommand).de(de_BatchGetImageCommand).build() {\n static {\n __name(this, \"BatchGetImageCommand\");\n }\n};\n\n// src/commands/BatchGetRepositoryScanningConfigurationCommand.ts\n\n\n\nvar BatchGetRepositoryScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchGetRepositoryScanningConfiguration\", {}).n(\"ECRClient\", \"BatchGetRepositoryScanningConfigurationCommand\").f(void 0, void 0).ser(se_BatchGetRepositoryScanningConfigurationCommand).de(de_BatchGetRepositoryScanningConfigurationCommand).build() {\n static {\n __name(this, \"BatchGetRepositoryScanningConfigurationCommand\");\n }\n};\n\n// src/commands/CompleteLayerUploadCommand.ts\n\n\n\nvar CompleteLayerUploadCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CompleteLayerUpload\", {}).n(\"ECRClient\", \"CompleteLayerUploadCommand\").f(void 0, void 0).ser(se_CompleteLayerUploadCommand).de(de_CompleteLayerUploadCommand).build() {\n static {\n __name(this, \"CompleteLayerUploadCommand\");\n }\n};\n\n// src/commands/CreatePullThroughCacheRuleCommand.ts\n\n\n\nvar CreatePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CreatePullThroughCacheRule\", {}).n(\"ECRClient\", \"CreatePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_CreatePullThroughCacheRuleCommand).de(de_CreatePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"CreatePullThroughCacheRuleCommand\");\n }\n};\n\n// src/commands/CreateRepositoryCommand.ts\n\n\n\nvar CreateRepositoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CreateRepository\", {}).n(\"ECRClient\", \"CreateRepositoryCommand\").f(void 0, void 0).ser(se_CreateRepositoryCommand).de(de_CreateRepositoryCommand).build() {\n static {\n __name(this, \"CreateRepositoryCommand\");\n }\n};\n\n// src/commands/CreateRepositoryCreationTemplateCommand.ts\n\n\n\nvar CreateRepositoryCreationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CreateRepositoryCreationTemplate\", {}).n(\"ECRClient\", \"CreateRepositoryCreationTemplateCommand\").f(void 0, void 0).ser(se_CreateRepositoryCreationTemplateCommand).de(de_CreateRepositoryCreationTemplateCommand).build() {\n static {\n __name(this, \"CreateRepositoryCreationTemplateCommand\");\n }\n};\n\n// src/commands/DeleteLifecyclePolicyCommand.ts\n\n\n\nvar DeleteLifecyclePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteLifecyclePolicy\", {}).n(\"ECRClient\", \"DeleteLifecyclePolicyCommand\").f(void 0, void 0).ser(se_DeleteLifecyclePolicyCommand).de(de_DeleteLifecyclePolicyCommand).build() {\n static {\n __name(this, \"DeleteLifecyclePolicyCommand\");\n }\n};\n\n// src/commands/DeletePullThroughCacheRuleCommand.ts\n\n\n\nvar DeletePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeletePullThroughCacheRule\", {}).n(\"ECRClient\", \"DeletePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_DeletePullThroughCacheRuleCommand).de(de_DeletePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"DeletePullThroughCacheRuleCommand\");\n }\n};\n\n// src/commands/DeleteRegistryPolicyCommand.ts\n\n\n\nvar DeleteRegistryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRegistryPolicy\", {}).n(\"ECRClient\", \"DeleteRegistryPolicyCommand\").f(void 0, void 0).ser(se_DeleteRegistryPolicyCommand).de(de_DeleteRegistryPolicyCommand).build() {\n static {\n __name(this, \"DeleteRegistryPolicyCommand\");\n }\n};\n\n// src/commands/DeleteRepositoryCommand.ts\n\n\n\nvar DeleteRepositoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRepository\", {}).n(\"ECRClient\", \"DeleteRepositoryCommand\").f(void 0, void 0).ser(se_DeleteRepositoryCommand).de(de_DeleteRepositoryCommand).build() {\n static {\n __name(this, \"DeleteRepositoryCommand\");\n }\n};\n\n// src/commands/DeleteRepositoryCreationTemplateCommand.ts\n\n\n\nvar DeleteRepositoryCreationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRepositoryCreationTemplate\", {}).n(\"ECRClient\", \"DeleteRepositoryCreationTemplateCommand\").f(void 0, void 0).ser(se_DeleteRepositoryCreationTemplateCommand).de(de_DeleteRepositoryCreationTemplateCommand).build() {\n static {\n __name(this, \"DeleteRepositoryCreationTemplateCommand\");\n }\n};\n\n// src/commands/DeleteRepositoryPolicyCommand.ts\n\n\n\nvar DeleteRepositoryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRepositoryPolicy\", {}).n(\"ECRClient\", \"DeleteRepositoryPolicyCommand\").f(void 0, void 0).ser(se_DeleteRepositoryPolicyCommand).de(de_DeleteRepositoryPolicyCommand).build() {\n static {\n __name(this, \"DeleteRepositoryPolicyCommand\");\n }\n};\n\n// src/commands/DescribeImageReplicationStatusCommand.ts\n\n\n\nvar DescribeImageReplicationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeImageReplicationStatus\", {}).n(\"ECRClient\", \"DescribeImageReplicationStatusCommand\").f(void 0, void 0).ser(se_DescribeImageReplicationStatusCommand).de(de_DescribeImageReplicationStatusCommand).build() {\n static {\n __name(this, \"DescribeImageReplicationStatusCommand\");\n }\n};\n\n// src/commands/DescribeImageScanFindingsCommand.ts\n\n\n\nvar DescribeImageScanFindingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeImageScanFindings\", {}).n(\"ECRClient\", \"DescribeImageScanFindingsCommand\").f(void 0, void 0).ser(se_DescribeImageScanFindingsCommand).de(de_DescribeImageScanFindingsCommand).build() {\n static {\n __name(this, \"DescribeImageScanFindingsCommand\");\n }\n};\n\n// src/commands/DescribeImagesCommand.ts\n\n\n\nvar DescribeImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeImages\", {}).n(\"ECRClient\", \"DescribeImagesCommand\").f(void 0, void 0).ser(se_DescribeImagesCommand).de(de_DescribeImagesCommand).build() {\n static {\n __name(this, \"DescribeImagesCommand\");\n }\n};\n\n// src/commands/DescribePullThroughCacheRulesCommand.ts\n\n\n\nvar DescribePullThroughCacheRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribePullThroughCacheRules\", {}).n(\"ECRClient\", \"DescribePullThroughCacheRulesCommand\").f(void 0, void 0).ser(se_DescribePullThroughCacheRulesCommand).de(de_DescribePullThroughCacheRulesCommand).build() {\n static {\n __name(this, \"DescribePullThroughCacheRulesCommand\");\n }\n};\n\n// src/commands/DescribeRegistryCommand.ts\n\n\n\nvar DescribeRegistryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeRegistry\", {}).n(\"ECRClient\", \"DescribeRegistryCommand\").f(void 0, void 0).ser(se_DescribeRegistryCommand).de(de_DescribeRegistryCommand).build() {\n static {\n __name(this, \"DescribeRegistryCommand\");\n }\n};\n\n// src/commands/DescribeRepositoriesCommand.ts\n\n\n\nvar DescribeRepositoriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeRepositories\", {}).n(\"ECRClient\", \"DescribeRepositoriesCommand\").f(void 0, void 0).ser(se_DescribeRepositoriesCommand).de(de_DescribeRepositoriesCommand).build() {\n static {\n __name(this, \"DescribeRepositoriesCommand\");\n }\n};\n\n// src/commands/DescribeRepositoryCreationTemplatesCommand.ts\n\n\n\nvar DescribeRepositoryCreationTemplatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeRepositoryCreationTemplates\", {}).n(\"ECRClient\", \"DescribeRepositoryCreationTemplatesCommand\").f(void 0, void 0).ser(se_DescribeRepositoryCreationTemplatesCommand).de(de_DescribeRepositoryCreationTemplatesCommand).build() {\n static {\n __name(this, \"DescribeRepositoryCreationTemplatesCommand\");\n }\n};\n\n// src/commands/GetAccountSettingCommand.ts\n\n\n\nvar GetAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetAccountSetting\", {}).n(\"ECRClient\", \"GetAccountSettingCommand\").f(void 0, void 0).ser(se_GetAccountSettingCommand).de(de_GetAccountSettingCommand).build() {\n static {\n __name(this, \"GetAccountSettingCommand\");\n }\n};\n\n// src/commands/GetAuthorizationTokenCommand.ts\n\n\n\nvar GetAuthorizationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetAuthorizationToken\", {}).n(\"ECRClient\", \"GetAuthorizationTokenCommand\").f(void 0, void 0).ser(se_GetAuthorizationTokenCommand).de(de_GetAuthorizationTokenCommand).build() {\n static {\n __name(this, \"GetAuthorizationTokenCommand\");\n }\n};\n\n// src/commands/GetDownloadUrlForLayerCommand.ts\n\n\n\nvar GetDownloadUrlForLayerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetDownloadUrlForLayer\", {}).n(\"ECRClient\", \"GetDownloadUrlForLayerCommand\").f(void 0, void 0).ser(se_GetDownloadUrlForLayerCommand).de(de_GetDownloadUrlForLayerCommand).build() {\n static {\n __name(this, \"GetDownloadUrlForLayerCommand\");\n }\n};\n\n// src/commands/GetLifecyclePolicyCommand.ts\n\n\n\nvar GetLifecyclePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetLifecyclePolicy\", {}).n(\"ECRClient\", \"GetLifecyclePolicyCommand\").f(void 0, void 0).ser(se_GetLifecyclePolicyCommand).de(de_GetLifecyclePolicyCommand).build() {\n static {\n __name(this, \"GetLifecyclePolicyCommand\");\n }\n};\n\n// src/commands/GetLifecyclePolicyPreviewCommand.ts\n\n\n\nvar GetLifecyclePolicyPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetLifecyclePolicyPreview\", {}).n(\"ECRClient\", \"GetLifecyclePolicyPreviewCommand\").f(void 0, void 0).ser(se_GetLifecyclePolicyPreviewCommand).de(de_GetLifecyclePolicyPreviewCommand).build() {\n static {\n __name(this, \"GetLifecyclePolicyPreviewCommand\");\n }\n};\n\n// src/commands/GetRegistryPolicyCommand.ts\n\n\n\nvar GetRegistryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetRegistryPolicy\", {}).n(\"ECRClient\", \"GetRegistryPolicyCommand\").f(void 0, void 0).ser(se_GetRegistryPolicyCommand).de(de_GetRegistryPolicyCommand).build() {\n static {\n __name(this, \"GetRegistryPolicyCommand\");\n }\n};\n\n// src/commands/GetRegistryScanningConfigurationCommand.ts\n\n\n\nvar GetRegistryScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetRegistryScanningConfiguration\", {}).n(\"ECRClient\", \"GetRegistryScanningConfigurationCommand\").f(void 0, void 0).ser(se_GetRegistryScanningConfigurationCommand).de(de_GetRegistryScanningConfigurationCommand).build() {\n static {\n __name(this, \"GetRegistryScanningConfigurationCommand\");\n }\n};\n\n// src/commands/GetRepositoryPolicyCommand.ts\n\n\n\nvar GetRepositoryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetRepositoryPolicy\", {}).n(\"ECRClient\", \"GetRepositoryPolicyCommand\").f(void 0, void 0).ser(se_GetRepositoryPolicyCommand).de(de_GetRepositoryPolicyCommand).build() {\n static {\n __name(this, \"GetRepositoryPolicyCommand\");\n }\n};\n\n// src/commands/InitiateLayerUploadCommand.ts\n\n\n\nvar InitiateLayerUploadCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"InitiateLayerUpload\", {}).n(\"ECRClient\", \"InitiateLayerUploadCommand\").f(void 0, void 0).ser(se_InitiateLayerUploadCommand).de(de_InitiateLayerUploadCommand).build() {\n static {\n __name(this, \"InitiateLayerUploadCommand\");\n }\n};\n\n// src/commands/ListImagesCommand.ts\n\n\n\nvar ListImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"ListImages\", {}).n(\"ECRClient\", \"ListImagesCommand\").f(void 0, void 0).ser(se_ListImagesCommand).de(de_ListImagesCommand).build() {\n static {\n __name(this, \"ListImagesCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"ListTagsForResource\", {}).n(\"ECRClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/PutAccountSettingCommand.ts\n\n\n\nvar PutAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutAccountSetting\", {}).n(\"ECRClient\", \"PutAccountSettingCommand\").f(void 0, void 0).ser(se_PutAccountSettingCommand).de(de_PutAccountSettingCommand).build() {\n static {\n __name(this, \"PutAccountSettingCommand\");\n }\n};\n\n// src/commands/PutImageCommand.ts\n\n\n\nvar PutImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutImage\", {}).n(\"ECRClient\", \"PutImageCommand\").f(void 0, void 0).ser(se_PutImageCommand).de(de_PutImageCommand).build() {\n static {\n __name(this, \"PutImageCommand\");\n }\n};\n\n// src/commands/PutImageScanningConfigurationCommand.ts\n\n\n\nvar PutImageScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutImageScanningConfiguration\", {}).n(\"ECRClient\", \"PutImageScanningConfigurationCommand\").f(void 0, void 0).ser(se_PutImageScanningConfigurationCommand).de(de_PutImageScanningConfigurationCommand).build() {\n static {\n __name(this, \"PutImageScanningConfigurationCommand\");\n }\n};\n\n// src/commands/PutImageTagMutabilityCommand.ts\n\n\n\nvar PutImageTagMutabilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutImageTagMutability\", {}).n(\"ECRClient\", \"PutImageTagMutabilityCommand\").f(void 0, void 0).ser(se_PutImageTagMutabilityCommand).de(de_PutImageTagMutabilityCommand).build() {\n static {\n __name(this, \"PutImageTagMutabilityCommand\");\n }\n};\n\n// src/commands/PutLifecyclePolicyCommand.ts\n\n\n\nvar PutLifecyclePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutLifecyclePolicy\", {}).n(\"ECRClient\", \"PutLifecyclePolicyCommand\").f(void 0, void 0).ser(se_PutLifecyclePolicyCommand).de(de_PutLifecyclePolicyCommand).build() {\n static {\n __name(this, \"PutLifecyclePolicyCommand\");\n }\n};\n\n// src/commands/PutRegistryPolicyCommand.ts\n\n\n\nvar PutRegistryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutRegistryPolicy\", {}).n(\"ECRClient\", \"PutRegistryPolicyCommand\").f(void 0, void 0).ser(se_PutRegistryPolicyCommand).de(de_PutRegistryPolicyCommand).build() {\n static {\n __name(this, \"PutRegistryPolicyCommand\");\n }\n};\n\n// src/commands/PutRegistryScanningConfigurationCommand.ts\n\n\n\nvar PutRegistryScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutRegistryScanningConfiguration\", {}).n(\"ECRClient\", \"PutRegistryScanningConfigurationCommand\").f(void 0, void 0).ser(se_PutRegistryScanningConfigurationCommand).de(de_PutRegistryScanningConfigurationCommand).build() {\n static {\n __name(this, \"PutRegistryScanningConfigurationCommand\");\n }\n};\n\n// src/commands/PutReplicationConfigurationCommand.ts\n\n\n\nvar PutReplicationConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutReplicationConfiguration\", {}).n(\"ECRClient\", \"PutReplicationConfigurationCommand\").f(void 0, void 0).ser(se_PutReplicationConfigurationCommand).de(de_PutReplicationConfigurationCommand).build() {\n static {\n __name(this, \"PutReplicationConfigurationCommand\");\n }\n};\n\n// src/commands/SetRepositoryPolicyCommand.ts\n\n\n\nvar SetRepositoryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"SetRepositoryPolicy\", {}).n(\"ECRClient\", \"SetRepositoryPolicyCommand\").f(void 0, void 0).ser(se_SetRepositoryPolicyCommand).de(de_SetRepositoryPolicyCommand).build() {\n static {\n __name(this, \"SetRepositoryPolicyCommand\");\n }\n};\n\n// src/commands/StartImageScanCommand.ts\n\n\n\nvar StartImageScanCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"StartImageScan\", {}).n(\"ECRClient\", \"StartImageScanCommand\").f(void 0, void 0).ser(se_StartImageScanCommand).de(de_StartImageScanCommand).build() {\n static {\n __name(this, \"StartImageScanCommand\");\n }\n};\n\n// src/commands/StartLifecyclePolicyPreviewCommand.ts\n\n\n\nvar StartLifecyclePolicyPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"StartLifecyclePolicyPreview\", {}).n(\"ECRClient\", \"StartLifecyclePolicyPreviewCommand\").f(void 0, void 0).ser(se_StartLifecyclePolicyPreviewCommand).de(de_StartLifecyclePolicyPreviewCommand).build() {\n static {\n __name(this, \"StartLifecyclePolicyPreviewCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"TagResource\", {}).n(\"ECRClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UntagResource\", {}).n(\"ECRClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdatePullThroughCacheRuleCommand.ts\n\n\n\nvar UpdatePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UpdatePullThroughCacheRule\", {}).n(\"ECRClient\", \"UpdatePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_UpdatePullThroughCacheRuleCommand).de(de_UpdatePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"UpdatePullThroughCacheRuleCommand\");\n }\n};\n\n// src/commands/UpdateRepositoryCreationTemplateCommand.ts\n\n\n\nvar UpdateRepositoryCreationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UpdateRepositoryCreationTemplate\", {}).n(\"ECRClient\", \"UpdateRepositoryCreationTemplateCommand\").f(void 0, void 0).ser(se_UpdateRepositoryCreationTemplateCommand).de(de_UpdateRepositoryCreationTemplateCommand).build() {\n static {\n __name(this, \"UpdateRepositoryCreationTemplateCommand\");\n }\n};\n\n// src/commands/UploadLayerPartCommand.ts\n\n\n\nvar UploadLayerPartCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UploadLayerPart\", {}).n(\"ECRClient\", \"UploadLayerPartCommand\").f(void 0, void 0).ser(se_UploadLayerPartCommand).de(de_UploadLayerPartCommand).build() {\n static {\n __name(this, \"UploadLayerPartCommand\");\n }\n};\n\n// src/commands/ValidatePullThroughCacheRuleCommand.ts\n\n\n\nvar ValidatePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"ValidatePullThroughCacheRule\", {}).n(\"ECRClient\", \"ValidatePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_ValidatePullThroughCacheRuleCommand).de(de_ValidatePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"ValidatePullThroughCacheRuleCommand\");\n }\n};\n\n// src/ECR.ts\nvar commands = {\n BatchCheckLayerAvailabilityCommand,\n BatchDeleteImageCommand,\n BatchGetImageCommand,\n BatchGetRepositoryScanningConfigurationCommand,\n CompleteLayerUploadCommand,\n CreatePullThroughCacheRuleCommand,\n CreateRepositoryCommand,\n CreateRepositoryCreationTemplateCommand,\n DeleteLifecyclePolicyCommand,\n DeletePullThroughCacheRuleCommand,\n DeleteRegistryPolicyCommand,\n DeleteRepositoryCommand,\n DeleteRepositoryCreationTemplateCommand,\n DeleteRepositoryPolicyCommand,\n DescribeImageReplicationStatusCommand,\n DescribeImagesCommand,\n DescribeImageScanFindingsCommand,\n DescribePullThroughCacheRulesCommand,\n DescribeRegistryCommand,\n DescribeRepositoriesCommand,\n DescribeRepositoryCreationTemplatesCommand,\n GetAccountSettingCommand,\n GetAuthorizationTokenCommand,\n GetDownloadUrlForLayerCommand,\n GetLifecyclePolicyCommand,\n GetLifecyclePolicyPreviewCommand,\n GetRegistryPolicyCommand,\n GetRegistryScanningConfigurationCommand,\n GetRepositoryPolicyCommand,\n InitiateLayerUploadCommand,\n ListImagesCommand,\n ListTagsForResourceCommand,\n PutAccountSettingCommand,\n PutImageCommand,\n PutImageScanningConfigurationCommand,\n PutImageTagMutabilityCommand,\n PutLifecyclePolicyCommand,\n PutRegistryPolicyCommand,\n PutRegistryScanningConfigurationCommand,\n PutReplicationConfigurationCommand,\n SetRepositoryPolicyCommand,\n StartImageScanCommand,\n StartLifecyclePolicyPreviewCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdatePullThroughCacheRuleCommand,\n UpdateRepositoryCreationTemplateCommand,\n UploadLayerPartCommand,\n ValidatePullThroughCacheRuleCommand\n};\nvar ECR = class extends ECRClient {\n static {\n __name(this, \"ECR\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, ECR);\n\n// src/pagination/DescribeImageScanFindingsPaginator.ts\n\nvar paginateDescribeImageScanFindings = (0, import_core.createPaginator)(ECRClient, DescribeImageScanFindingsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeImagesPaginator.ts\n\nvar paginateDescribeImages = (0, import_core.createPaginator)(ECRClient, DescribeImagesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribePullThroughCacheRulesPaginator.ts\n\nvar paginateDescribePullThroughCacheRules = (0, import_core.createPaginator)(ECRClient, DescribePullThroughCacheRulesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeRepositoriesPaginator.ts\n\nvar paginateDescribeRepositories = (0, import_core.createPaginator)(ECRClient, DescribeRepositoriesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeRepositoryCreationTemplatesPaginator.ts\n\nvar paginateDescribeRepositoryCreationTemplates = (0, import_core.createPaginator)(ECRClient, DescribeRepositoryCreationTemplatesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/GetLifecyclePolicyPreviewPaginator.ts\n\nvar paginateGetLifecyclePolicyPreview = (0, import_core.createPaginator)(ECRClient, GetLifecyclePolicyPreviewCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListImagesPaginator.ts\n\nvar paginateListImages = (0, import_core.createPaginator)(ECRClient, ListImagesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/waiters/waitForImageScanComplete.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImageScanFindingsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.imageScanStatus.status;\n }, \"returnComparator\");\n if (returnComparator() === \"COMPLETE\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.imageScanStatus.status;\n }, \"returnComparator\");\n if (returnComparator() === \"FAILED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForImageScanComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForImageScanComplete\");\nvar waitUntilImageScanComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilImageScanComplete\");\n\n// src/waiters/waitForLifecyclePolicyPreviewComplete.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetLifecyclePolicyPreviewCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.status;\n }, \"returnComparator\");\n if (returnComparator() === \"COMPLETE\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.status;\n }, \"returnComparator\");\n if (returnComparator() === \"FAILED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLifecyclePolicyPreviewComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForLifecyclePolicyPreviewComplete\");\nvar waitUntilLifecyclePolicyPreviewComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLifecyclePolicyPreviewComplete\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ECRServiceException,\n __Client,\n ECRClient,\n ECR,\n $Command,\n BatchCheckLayerAvailabilityCommand,\n BatchDeleteImageCommand,\n BatchGetImageCommand,\n BatchGetRepositoryScanningConfigurationCommand,\n CompleteLayerUploadCommand,\n CreatePullThroughCacheRuleCommand,\n CreateRepositoryCommand,\n CreateRepositoryCreationTemplateCommand,\n DeleteLifecyclePolicyCommand,\n DeletePullThroughCacheRuleCommand,\n DeleteRegistryPolicyCommand,\n DeleteRepositoryCommand,\n DeleteRepositoryCreationTemplateCommand,\n DeleteRepositoryPolicyCommand,\n DescribeImageReplicationStatusCommand,\n DescribeImageScanFindingsCommand,\n DescribeImagesCommand,\n DescribePullThroughCacheRulesCommand,\n DescribeRegistryCommand,\n DescribeRepositoriesCommand,\n DescribeRepositoryCreationTemplatesCommand,\n GetAccountSettingCommand,\n GetAuthorizationTokenCommand,\n GetDownloadUrlForLayerCommand,\n GetLifecyclePolicyCommand,\n GetLifecyclePolicyPreviewCommand,\n GetRegistryPolicyCommand,\n GetRegistryScanningConfigurationCommand,\n GetRepositoryPolicyCommand,\n InitiateLayerUploadCommand,\n ListImagesCommand,\n ListTagsForResourceCommand,\n PutAccountSettingCommand,\n PutImageCommand,\n PutImageScanningConfigurationCommand,\n PutImageTagMutabilityCommand,\n PutLifecyclePolicyCommand,\n PutRegistryPolicyCommand,\n PutRegistryScanningConfigurationCommand,\n PutReplicationConfigurationCommand,\n SetRepositoryPolicyCommand,\n StartImageScanCommand,\n StartLifecyclePolicyPreviewCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdatePullThroughCacheRuleCommand,\n UpdateRepositoryCreationTemplateCommand,\n UploadLayerPartCommand,\n ValidatePullThroughCacheRuleCommand,\n paginateDescribeImageScanFindings,\n paginateDescribeImages,\n paginateDescribePullThroughCacheRules,\n paginateDescribeRepositories,\n paginateDescribeRepositoryCreationTemplates,\n paginateGetLifecyclePolicyPreview,\n paginateListImages,\n waitForImageScanComplete,\n waitUntilImageScanComplete,\n waitForLifecyclePolicyPreviewComplete,\n waitUntilLifecyclePolicyPreviewComplete,\n LayerFailureCode,\n LayerAvailability,\n InvalidParameterException,\n RepositoryNotFoundException,\n ServerException,\n ImageFailureCode,\n LimitExceededException,\n UnableToGetUpstreamImageException,\n ScanningConfigurationFailureCode,\n ScanningRepositoryFilterType,\n ScanFrequency,\n ValidationException,\n EmptyUploadException,\n InvalidLayerException,\n KmsException,\n LayerAlreadyExistsException,\n LayerPartTooSmallException,\n UploadNotFoundException,\n UpstreamRegistry,\n PullThroughCacheRuleAlreadyExistsException,\n SecretNotFoundException,\n UnableToAccessSecretException,\n UnableToDecryptSecretValueException,\n UnsupportedUpstreamRegistryException,\n EncryptionType,\n ImageTagMutability,\n ImageTagMutabilityExclusionFilterType,\n InvalidTagParameterException,\n RepositoryAlreadyExistsException,\n TooManyTagsException,\n RCTAppliedFor,\n TemplateAlreadyExistsException,\n LifecyclePolicyNotFoundException,\n PullThroughCacheRuleNotFoundException,\n RegistryPolicyNotFoundException,\n RepositoryNotEmptyException,\n TemplateNotFoundException,\n RepositoryPolicyNotFoundException,\n ReplicationStatus,\n ImageNotFoundException,\n TagStatus,\n FindingSeverity,\n ScanStatus,\n ScanNotFoundException,\n RepositoryFilterType,\n LayerInaccessibleException,\n LayersNotFoundException,\n UnableToGetUpstreamLayerException,\n ImageActionType,\n LifecyclePolicyPreviewStatus,\n LifecyclePolicyPreviewNotFoundException,\n ScanType,\n ImageAlreadyExistsException,\n ImageDigestDoesNotMatchException,\n ImageTagAlreadyExistsException,\n ReferencedImagesNotFoundException,\n UnsupportedImageTypeException,\n LifecyclePolicyPreviewInProgressException,\n InvalidLayerPartException\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2015-09-21\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultECRHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"ECR\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultECSHttpAuthSchemeProvider = exports.defaultECSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultECSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultECSHttpAuthSchemeParametersProvider = defaultECSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ecs\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultECSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultECSHttpAuthSchemeProvider = defaultECSHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://ecs.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n AgentUpdateStatus: () => AgentUpdateStatus,\n ApplicationProtocol: () => ApplicationProtocol,\n AssignPublicIp: () => AssignPublicIp,\n AttributeLimitExceededException: () => AttributeLimitExceededException,\n AvailabilityZoneRebalancing: () => AvailabilityZoneRebalancing,\n BlockedException: () => BlockedException,\n CPUArchitecture: () => CPUArchitecture,\n CapacityProviderField: () => CapacityProviderField,\n CapacityProviderStatus: () => CapacityProviderStatus,\n CapacityProviderUpdateStatus: () => CapacityProviderUpdateStatus,\n ClientException: () => ClientException,\n ClusterContainsContainerInstancesException: () => ClusterContainsContainerInstancesException,\n ClusterContainsServicesException: () => ClusterContainsServicesException,\n ClusterContainsTasksException: () => ClusterContainsTasksException,\n ClusterField: () => ClusterField,\n ClusterNotFoundException: () => ClusterNotFoundException,\n ClusterSettingName: () => ClusterSettingName,\n Compatibility: () => Compatibility,\n ConflictException: () => ConflictException,\n Connectivity: () => Connectivity,\n ContainerCondition: () => ContainerCondition,\n ContainerInstanceField: () => ContainerInstanceField,\n ContainerInstanceStatus: () => ContainerInstanceStatus,\n CreateCapacityProviderCommand: () => CreateCapacityProviderCommand,\n CreateClusterCommand: () => CreateClusterCommand,\n CreateServiceCommand: () => CreateServiceCommand,\n CreateTaskSetCommand: () => CreateTaskSetCommand,\n DeleteAccountSettingCommand: () => DeleteAccountSettingCommand,\n DeleteAttributesCommand: () => DeleteAttributesCommand,\n DeleteCapacityProviderCommand: () => DeleteCapacityProviderCommand,\n DeleteClusterCommand: () => DeleteClusterCommand,\n DeleteServiceCommand: () => DeleteServiceCommand,\n DeleteTaskDefinitionsCommand: () => DeleteTaskDefinitionsCommand,\n DeleteTaskSetCommand: () => DeleteTaskSetCommand,\n DeploymentControllerType: () => DeploymentControllerType,\n DeploymentRolloutState: () => DeploymentRolloutState,\n DeregisterContainerInstanceCommand: () => DeregisterContainerInstanceCommand,\n DeregisterTaskDefinitionCommand: () => DeregisterTaskDefinitionCommand,\n DescribeCapacityProvidersCommand: () => DescribeCapacityProvidersCommand,\n DescribeClustersCommand: () => DescribeClustersCommand,\n DescribeContainerInstancesCommand: () => DescribeContainerInstancesCommand,\n DescribeServiceDeploymentsCommand: () => DescribeServiceDeploymentsCommand,\n DescribeServiceRevisionsCommand: () => DescribeServiceRevisionsCommand,\n DescribeServicesCommand: () => DescribeServicesCommand,\n DescribeTaskDefinitionCommand: () => DescribeTaskDefinitionCommand,\n DescribeTaskSetsCommand: () => DescribeTaskSetsCommand,\n DescribeTasksCommand: () => DescribeTasksCommand,\n DesiredStatus: () => DesiredStatus,\n DeviceCgroupPermission: () => DeviceCgroupPermission,\n DiscoverPollEndpointCommand: () => DiscoverPollEndpointCommand,\n EBSResourceType: () => EBSResourceType,\n ECS: () => ECS,\n ECSClient: () => ECSClient,\n ECSServiceException: () => ECSServiceException,\n EFSAuthorizationConfigIAM: () => EFSAuthorizationConfigIAM,\n EFSTransitEncryption: () => EFSTransitEncryption,\n EnvironmentFileType: () => EnvironmentFileType,\n ExecuteCommandCommand: () => ExecuteCommandCommand,\n ExecuteCommandLogging: () => ExecuteCommandLogging,\n ExecuteCommandResponseFilterSensitiveLog: () => ExecuteCommandResponseFilterSensitiveLog,\n FirelensConfigurationType: () => FirelensConfigurationType,\n GetTaskProtectionCommand: () => GetTaskProtectionCommand,\n HealthStatus: () => HealthStatus,\n InstanceHealthCheckState: () => InstanceHealthCheckState,\n InstanceHealthCheckType: () => InstanceHealthCheckType,\n InvalidParameterException: () => InvalidParameterException,\n IpcMode: () => IpcMode,\n LaunchType: () => LaunchType,\n LimitExceededException: () => LimitExceededException,\n ListAccountSettingsCommand: () => ListAccountSettingsCommand,\n ListAttributesCommand: () => ListAttributesCommand,\n ListClustersCommand: () => ListClustersCommand,\n ListContainerInstancesCommand: () => ListContainerInstancesCommand,\n ListServiceDeploymentsCommand: () => ListServiceDeploymentsCommand,\n ListServicesByNamespaceCommand: () => ListServicesByNamespaceCommand,\n ListServicesCommand: () => ListServicesCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTaskDefinitionFamiliesCommand: () => ListTaskDefinitionFamiliesCommand,\n ListTaskDefinitionsCommand: () => ListTaskDefinitionsCommand,\n ListTasksCommand: () => ListTasksCommand,\n LogDriver: () => LogDriver,\n ManagedAgentName: () => ManagedAgentName,\n ManagedDraining: () => ManagedDraining,\n ManagedScalingStatus: () => ManagedScalingStatus,\n ManagedTerminationProtection: () => ManagedTerminationProtection,\n MissingVersionException: () => MissingVersionException,\n NamespaceNotFoundException: () => NamespaceNotFoundException,\n NetworkMode: () => NetworkMode,\n NoUpdateAvailableException: () => NoUpdateAvailableException,\n OSFamily: () => OSFamily,\n PidMode: () => PidMode,\n PlacementConstraintType: () => PlacementConstraintType,\n PlacementStrategyType: () => PlacementStrategyType,\n PlatformDeviceType: () => PlatformDeviceType,\n PlatformTaskDefinitionIncompatibilityException: () => PlatformTaskDefinitionIncompatibilityException,\n PlatformUnknownException: () => PlatformUnknownException,\n PropagateTags: () => PropagateTags,\n ProxyConfigurationType: () => ProxyConfigurationType,\n PutAccountSettingCommand: () => PutAccountSettingCommand,\n PutAccountSettingDefaultCommand: () => PutAccountSettingDefaultCommand,\n PutAttributesCommand: () => PutAttributesCommand,\n PutClusterCapacityProvidersCommand: () => PutClusterCapacityProvidersCommand,\n RegisterContainerInstanceCommand: () => RegisterContainerInstanceCommand,\n RegisterTaskDefinitionCommand: () => RegisterTaskDefinitionCommand,\n ResourceInUseException: () => ResourceInUseException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ResourceType: () => ResourceType,\n RunTaskCommand: () => RunTaskCommand,\n ScaleUnit: () => ScaleUnit,\n SchedulingStrategy: () => SchedulingStrategy,\n Scope: () => Scope,\n ServerException: () => ServerException,\n ServiceDeploymentNotFoundException: () => ServiceDeploymentNotFoundException,\n ServiceDeploymentRollbackMonitorsStatus: () => ServiceDeploymentRollbackMonitorsStatus,\n ServiceDeploymentStatus: () => ServiceDeploymentStatus,\n ServiceField: () => ServiceField,\n ServiceNotActiveException: () => ServiceNotActiveException,\n ServiceNotFoundException: () => ServiceNotFoundException,\n SessionFilterSensitiveLog: () => SessionFilterSensitiveLog,\n SettingName: () => SettingName,\n SettingType: () => SettingType,\n SortOrder: () => SortOrder,\n StabilityStatus: () => StabilityStatus,\n StartTaskCommand: () => StartTaskCommand,\n StopServiceDeploymentCommand: () => StopServiceDeploymentCommand,\n StopServiceDeploymentStopType: () => StopServiceDeploymentStopType,\n StopTaskCommand: () => StopTaskCommand,\n SubmitAttachmentStateChangesCommand: () => SubmitAttachmentStateChangesCommand,\n SubmitContainerStateChangeCommand: () => SubmitContainerStateChangeCommand,\n SubmitTaskStateChangeCommand: () => SubmitTaskStateChangeCommand,\n TagResourceCommand: () => TagResourceCommand,\n TargetNotConnectedException: () => TargetNotConnectedException,\n TargetNotFoundException: () => TargetNotFoundException,\n TargetType: () => TargetType,\n TaskDefinitionFamilyStatus: () => TaskDefinitionFamilyStatus,\n TaskDefinitionField: () => TaskDefinitionField,\n TaskDefinitionPlacementConstraintType: () => TaskDefinitionPlacementConstraintType,\n TaskDefinitionStatus: () => TaskDefinitionStatus,\n TaskField: () => TaskField,\n TaskFilesystemType: () => TaskFilesystemType,\n TaskSetField: () => TaskSetField,\n TaskSetNotFoundException: () => TaskSetNotFoundException,\n TaskStopCode: () => TaskStopCode,\n TransportProtocol: () => TransportProtocol,\n UlimitName: () => UlimitName,\n UnsupportedFeatureException: () => UnsupportedFeatureException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateCapacityProviderCommand: () => UpdateCapacityProviderCommand,\n UpdateClusterCommand: () => UpdateClusterCommand,\n UpdateClusterSettingsCommand: () => UpdateClusterSettingsCommand,\n UpdateContainerAgentCommand: () => UpdateContainerAgentCommand,\n UpdateContainerInstancesStateCommand: () => UpdateContainerInstancesStateCommand,\n UpdateInProgressException: () => UpdateInProgressException,\n UpdateServiceCommand: () => UpdateServiceCommand,\n UpdateServicePrimaryTaskSetCommand: () => UpdateServicePrimaryTaskSetCommand,\n UpdateTaskProtectionCommand: () => UpdateTaskProtectionCommand,\n UpdateTaskSetCommand: () => UpdateTaskSetCommand,\n VersionConsistency: () => VersionConsistency,\n __Client: () => import_smithy_client.Client,\n paginateListAccountSettings: () => paginateListAccountSettings,\n paginateListAttributes: () => paginateListAttributes,\n paginateListClusters: () => paginateListClusters,\n paginateListContainerInstances: () => paginateListContainerInstances,\n paginateListServices: () => paginateListServices,\n paginateListServicesByNamespace: () => paginateListServicesByNamespace,\n paginateListTaskDefinitionFamilies: () => paginateListTaskDefinitionFamilies,\n paginateListTaskDefinitions: () => paginateListTaskDefinitions,\n paginateListTasks: () => paginateListTasks,\n waitForServicesInactive: () => waitForServicesInactive,\n waitForServicesStable: () => waitForServicesStable,\n waitForTasksRunning: () => waitForTasksRunning,\n waitForTasksStopped: () => waitForTasksStopped,\n waitUntilServicesInactive: () => waitUntilServicesInactive,\n waitUntilServicesStable: () => waitUntilServicesStable,\n waitUntilTasksRunning: () => waitUntilTasksRunning,\n waitUntilTasksStopped: () => waitUntilTasksStopped\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/ECSClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ecs\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/ECSClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/ECSClient.ts\nvar ECSClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"ECSClient\");\n }\n /**\n * The resolved configuration of ECSClient class. This is resolved and normalized from the {@link ECSClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultECSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/ECS.ts\n\n\n// src/commands/CreateCapacityProviderCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/ECSServiceException.ts\n\nvar ECSServiceException = class _ECSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"ECSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _ECSServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AccessDeniedException = class _AccessDeniedException extends ECSServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n }\n};\nvar AgentUpdateStatus = {\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n STAGED: \"STAGED\",\n STAGING: \"STAGING\",\n UPDATED: \"UPDATED\",\n UPDATING: \"UPDATING\"\n};\nvar ClientException = class _ClientException extends ECSServiceException {\n static {\n __name(this, \"ClientException\");\n }\n name = \"ClientException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClientException.prototype);\n }\n};\nvar ManagedDraining = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ManagedScalingStatus = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ManagedTerminationProtection = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar CapacityProviderStatus = {\n ACTIVE: \"ACTIVE\",\n INACTIVE: \"INACTIVE\"\n};\nvar CapacityProviderUpdateStatus = {\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n UPDATE_COMPLETE: \"UPDATE_COMPLETE\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\"\n};\nvar InvalidParameterException = class _InvalidParameterException extends ECSServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends ECSServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar ServerException = class _ServerException extends ECSServiceException {\n static {\n __name(this, \"ServerException\");\n }\n name = \"ServerException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServerException.prototype);\n }\n};\nvar UpdateInProgressException = class _UpdateInProgressException extends ECSServiceException {\n static {\n __name(this, \"UpdateInProgressException\");\n }\n name = \"UpdateInProgressException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UpdateInProgressException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UpdateInProgressException.prototype);\n }\n};\nvar ExecuteCommandLogging = {\n DEFAULT: \"DEFAULT\",\n NONE: \"NONE\",\n OVERRIDE: \"OVERRIDE\"\n};\nvar ClusterSettingName = {\n CONTAINER_INSIGHTS: \"containerInsights\"\n};\nvar NamespaceNotFoundException = class _NamespaceNotFoundException extends ECSServiceException {\n static {\n __name(this, \"NamespaceNotFoundException\");\n }\n name = \"NamespaceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NamespaceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NamespaceNotFoundException.prototype);\n }\n};\nvar ClusterNotFoundException = class _ClusterNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ClusterNotFoundException\");\n }\n name = \"ClusterNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterNotFoundException.prototype);\n }\n};\nvar AvailabilityZoneRebalancing = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar DeploymentControllerType = {\n CODE_DEPLOY: \"CODE_DEPLOY\",\n ECS: \"ECS\",\n EXTERNAL: \"EXTERNAL\"\n};\nvar LaunchType = {\n EC2: \"EC2\",\n EXTERNAL: \"EXTERNAL\",\n FARGATE: \"FARGATE\"\n};\nvar AssignPublicIp = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar PlacementConstraintType = {\n DISTINCT_INSTANCE: \"distinctInstance\",\n MEMBER_OF: \"memberOf\"\n};\nvar PlacementStrategyType = {\n BINPACK: \"binpack\",\n RANDOM: \"random\",\n SPREAD: \"spread\"\n};\nvar PropagateTags = {\n NONE: \"NONE\",\n SERVICE: \"SERVICE\",\n TASK_DEFINITION: \"TASK_DEFINITION\"\n};\nvar SchedulingStrategy = {\n DAEMON: \"DAEMON\",\n REPLICA: \"REPLICA\"\n};\nvar LogDriver = {\n AWSFIRELENS: \"awsfirelens\",\n AWSLOGS: \"awslogs\",\n FLUENTD: \"fluentd\",\n GELF: \"gelf\",\n JOURNALD: \"journald\",\n JSON_FILE: \"json-file\",\n SPLUNK: \"splunk\",\n SYSLOG: \"syslog\"\n};\nvar TaskFilesystemType = {\n EXT3: \"ext3\",\n EXT4: \"ext4\",\n NTFS: \"ntfs\",\n XFS: \"xfs\"\n};\nvar EBSResourceType = {\n VOLUME: \"volume\"\n};\nvar DeploymentRolloutState = {\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar ScaleUnit = {\n PERCENT: \"PERCENT\"\n};\nvar StabilityStatus = {\n STABILIZING: \"STABILIZING\",\n STEADY_STATE: \"STEADY_STATE\"\n};\nvar PlatformTaskDefinitionIncompatibilityException = class _PlatformTaskDefinitionIncompatibilityException extends ECSServiceException {\n static {\n __name(this, \"PlatformTaskDefinitionIncompatibilityException\");\n }\n name = \"PlatformTaskDefinitionIncompatibilityException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PlatformTaskDefinitionIncompatibilityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PlatformTaskDefinitionIncompatibilityException.prototype);\n }\n};\nvar PlatformUnknownException = class _PlatformUnknownException extends ECSServiceException {\n static {\n __name(this, \"PlatformUnknownException\");\n }\n name = \"PlatformUnknownException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PlatformUnknownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PlatformUnknownException.prototype);\n }\n};\nvar UnsupportedFeatureException = class _UnsupportedFeatureException extends ECSServiceException {\n static {\n __name(this, \"UnsupportedFeatureException\");\n }\n name = \"UnsupportedFeatureException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedFeatureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedFeatureException.prototype);\n }\n};\nvar ServiceNotActiveException = class _ServiceNotActiveException extends ECSServiceException {\n static {\n __name(this, \"ServiceNotActiveException\");\n }\n name = \"ServiceNotActiveException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceNotActiveException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceNotActiveException.prototype);\n }\n};\nvar ServiceNotFoundException = class _ServiceNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ServiceNotFoundException\");\n }\n name = \"ServiceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceNotFoundException.prototype);\n }\n};\nvar SettingName = {\n AWSVPC_TRUNKING: \"awsvpcTrunking\",\n CONTAINER_INSIGHTS: \"containerInsights\",\n CONTAINER_INSTANCE_LONG_ARN_FORMAT: \"containerInstanceLongArnFormat\",\n DEFAULT_LOG_DRIVER_MODE: \"defaultLogDriverMode\",\n FARGATE_FIPS_MODE: \"fargateFIPSMode\",\n FARGATE_TASK_RETIREMENT_WAIT_PERIOD: \"fargateTaskRetirementWaitPeriod\",\n GUARD_DUTY_ACTIVATE: \"guardDutyActivate\",\n SERVICE_LONG_ARN_FORMAT: \"serviceLongArnFormat\",\n TAG_RESOURCE_AUTHORIZATION: \"tagResourceAuthorization\",\n TASK_LONG_ARN_FORMAT: \"taskLongArnFormat\"\n};\nvar SettingType = {\n AWS_MANAGED: \"aws_managed\",\n USER: \"user\"\n};\nvar TargetType = {\n CONTAINER_INSTANCE: \"container-instance\"\n};\nvar TargetNotFoundException = class _TargetNotFoundException extends ECSServiceException {\n static {\n __name(this, \"TargetNotFoundException\");\n }\n name = \"TargetNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetNotFoundException.prototype);\n }\n};\nvar ClusterContainsContainerInstancesException = class _ClusterContainsContainerInstancesException extends ECSServiceException {\n static {\n __name(this, \"ClusterContainsContainerInstancesException\");\n }\n name = \"ClusterContainsContainerInstancesException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterContainsContainerInstancesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterContainsContainerInstancesException.prototype);\n }\n};\nvar ClusterContainsServicesException = class _ClusterContainsServicesException extends ECSServiceException {\n static {\n __name(this, \"ClusterContainsServicesException\");\n }\n name = \"ClusterContainsServicesException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterContainsServicesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterContainsServicesException.prototype);\n }\n};\nvar ClusterContainsTasksException = class _ClusterContainsTasksException extends ECSServiceException {\n static {\n __name(this, \"ClusterContainsTasksException\");\n }\n name = \"ClusterContainsTasksException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterContainsTasksException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterContainsTasksException.prototype);\n }\n};\nvar Compatibility = {\n EC2: \"EC2\",\n EXTERNAL: \"EXTERNAL\",\n FARGATE: \"FARGATE\"\n};\nvar ContainerCondition = {\n COMPLETE: \"COMPLETE\",\n HEALTHY: \"HEALTHY\",\n START: \"START\",\n SUCCESS: \"SUCCESS\"\n};\nvar EnvironmentFileType = {\n S3: \"s3\"\n};\nvar FirelensConfigurationType = {\n FLUENTBIT: \"fluentbit\",\n FLUENTD: \"fluentd\"\n};\nvar DeviceCgroupPermission = {\n MKNOD: \"mknod\",\n READ: \"read\",\n WRITE: \"write\"\n};\nvar ApplicationProtocol = {\n GRPC: \"grpc\",\n HTTP: \"http\",\n HTTP2: \"http2\"\n};\nvar TransportProtocol = {\n TCP: \"tcp\",\n UDP: \"udp\"\n};\nvar ResourceType = {\n GPU: \"GPU\",\n INFERENCE_ACCELERATOR: \"InferenceAccelerator\"\n};\nvar UlimitName = {\n CORE: \"core\",\n CPU: \"cpu\",\n DATA: \"data\",\n FSIZE: \"fsize\",\n LOCKS: \"locks\",\n MEMLOCK: \"memlock\",\n MSGQUEUE: \"msgqueue\",\n NICE: \"nice\",\n NOFILE: \"nofile\",\n NPROC: \"nproc\",\n RSS: \"rss\",\n RTPRIO: \"rtprio\",\n RTTIME: \"rttime\",\n SIGPENDING: \"sigpending\",\n STACK: \"stack\"\n};\nvar VersionConsistency = {\n DISABLED: \"disabled\",\n ENABLED: \"enabled\"\n};\nvar IpcMode = {\n HOST: \"host\",\n NONE: \"none\",\n TASK: \"task\"\n};\nvar NetworkMode = {\n AWSVPC: \"awsvpc\",\n BRIDGE: \"bridge\",\n HOST: \"host\",\n NONE: \"none\"\n};\nvar PidMode = {\n HOST: \"host\",\n TASK: \"task\"\n};\nvar TaskDefinitionPlacementConstraintType = {\n MEMBER_OF: \"memberOf\"\n};\nvar ProxyConfigurationType = {\n APPMESH: \"APPMESH\"\n};\nvar CPUArchitecture = {\n ARM64: \"ARM64\",\n X86_64: \"X86_64\"\n};\nvar OSFamily = {\n LINUX: \"LINUX\",\n WINDOWS_SERVER_2004_CORE: \"WINDOWS_SERVER_2004_CORE\",\n WINDOWS_SERVER_2016_FULL: \"WINDOWS_SERVER_2016_FULL\",\n WINDOWS_SERVER_2019_CORE: \"WINDOWS_SERVER_2019_CORE\",\n WINDOWS_SERVER_2019_FULL: \"WINDOWS_SERVER_2019_FULL\",\n WINDOWS_SERVER_2022_CORE: \"WINDOWS_SERVER_2022_CORE\",\n WINDOWS_SERVER_2022_FULL: \"WINDOWS_SERVER_2022_FULL\",\n WINDOWS_SERVER_20H2_CORE: \"WINDOWS_SERVER_20H2_CORE\"\n};\nvar TaskDefinitionStatus = {\n ACTIVE: \"ACTIVE\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n INACTIVE: \"INACTIVE\"\n};\nvar Scope = {\n SHARED: \"shared\",\n TASK: \"task\"\n};\nvar EFSAuthorizationConfigIAM = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar EFSTransitEncryption = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar TaskSetNotFoundException = class _TaskSetNotFoundException extends ECSServiceException {\n static {\n __name(this, \"TaskSetNotFoundException\");\n }\n name = \"TaskSetNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TaskSetNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TaskSetNotFoundException.prototype);\n }\n};\nvar InstanceHealthCheckState = {\n IMPAIRED: \"IMPAIRED\",\n INITIALIZING: \"INITIALIZING\",\n INSUFFICIENT_DATA: \"INSUFFICIENT_DATA\",\n OK: \"OK\"\n};\nvar InstanceHealthCheckType = {\n CONTAINER_RUNTIME: \"CONTAINER_RUNTIME\"\n};\nvar CapacityProviderField = {\n TAGS: \"TAGS\"\n};\nvar ClusterField = {\n ATTACHMENTS: \"ATTACHMENTS\",\n CONFIGURATIONS: \"CONFIGURATIONS\",\n SETTINGS: \"SETTINGS\",\n STATISTICS: \"STATISTICS\",\n TAGS: \"TAGS\"\n};\nvar ContainerInstanceField = {\n CONTAINER_INSTANCE_HEALTH: \"CONTAINER_INSTANCE_HEALTH\",\n TAGS: \"TAGS\"\n};\nvar ServiceDeploymentRollbackMonitorsStatus = {\n DISABLED: \"DISABLED\",\n MONITORING: \"MONITORING\",\n MONITORING_COMPLETE: \"MONITORING_COMPLETE\",\n TRIGGERED: \"TRIGGERED\"\n};\nvar ServiceDeploymentStatus = {\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n ROLLBACK_REQUESTED: \"ROLLBACK_REQUESTED\",\n ROLLBACK_SUCCESSFUL: \"ROLLBACK_SUCCESSFUL\",\n STOPPED: \"STOPPED\",\n STOP_REQUESTED: \"STOP_REQUESTED\",\n SUCCESSFUL: \"SUCCESSFUL\"\n};\nvar ServiceField = {\n TAGS: \"TAGS\"\n};\nvar TaskDefinitionField = {\n TAGS: \"TAGS\"\n};\nvar TaskField = {\n TAGS: \"TAGS\"\n};\nvar Connectivity = {\n CONNECTED: \"CONNECTED\",\n DISCONNECTED: \"DISCONNECTED\"\n};\nvar HealthStatus = {\n HEALTHY: \"HEALTHY\",\n UNHEALTHY: \"UNHEALTHY\",\n UNKNOWN: \"UNKNOWN\"\n};\nvar ManagedAgentName = {\n ExecuteCommandAgent: \"ExecuteCommandAgent\"\n};\nvar TaskStopCode = {\n ESSENTIAL_CONTAINER_EXITED: \"EssentialContainerExited\",\n SERVICE_SCHEDULER_INITIATED: \"ServiceSchedulerInitiated\",\n SPOT_INTERRUPTION: \"SpotInterruption\",\n TASK_FAILED_TO_START: \"TaskFailedToStart\",\n TERMINATION_NOTICE: \"TerminationNotice\",\n USER_INITIATED: \"UserInitiated\"\n};\nvar TaskSetField = {\n TAGS: \"TAGS\"\n};\nvar TargetNotConnectedException = class _TargetNotConnectedException extends ECSServiceException {\n static {\n __name(this, \"TargetNotConnectedException\");\n }\n name = \"TargetNotConnectedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetNotConnectedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetNotConnectedException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ContainerInstanceStatus = {\n ACTIVE: \"ACTIVE\",\n DEREGISTERING: \"DEREGISTERING\",\n DRAINING: \"DRAINING\",\n REGISTERING: \"REGISTERING\",\n REGISTRATION_FAILED: \"REGISTRATION_FAILED\"\n};\nvar TaskDefinitionFamilyStatus = {\n ACTIVE: \"ACTIVE\",\n ALL: \"ALL\",\n INACTIVE: \"INACTIVE\"\n};\nvar SortOrder = {\n ASC: \"ASC\",\n DESC: \"DESC\"\n};\nvar DesiredStatus = {\n PENDING: \"PENDING\",\n RUNNING: \"RUNNING\",\n STOPPED: \"STOPPED\"\n};\nvar AttributeLimitExceededException = class _AttributeLimitExceededException extends ECSServiceException {\n static {\n __name(this, \"AttributeLimitExceededException\");\n }\n name = \"AttributeLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AttributeLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AttributeLimitExceededException.prototype);\n }\n};\nvar ResourceInUseException = class _ResourceInUseException extends ECSServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n }\n};\nvar PlatformDeviceType = {\n GPU: \"GPU\"\n};\nvar BlockedException = class _BlockedException extends ECSServiceException {\n static {\n __name(this, \"BlockedException\");\n }\n name = \"BlockedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BlockedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BlockedException.prototype);\n }\n};\nvar ConflictException = class _ConflictException extends ECSServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n *

The existing task ARNs which are already associated with the\n * \t\t\t\tclientToken.

\n * @public\n */\n resourceIds;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n this.resourceIds = opts.resourceIds;\n }\n};\nvar ServiceDeploymentNotFoundException = class _ServiceDeploymentNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ServiceDeploymentNotFoundException\");\n }\n name = \"ServiceDeploymentNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceDeploymentNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceDeploymentNotFoundException.prototype);\n }\n};\nvar StopServiceDeploymentStopType = {\n ABORT: \"ABORT\",\n ROLLBACK: \"ROLLBACK\"\n};\nvar SessionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.tokenValue && { tokenValue: import_smithy_client.SENSITIVE_STRING }\n}), \"SessionFilterSensitiveLog\");\nvar ExecuteCommandResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.session && { session: SessionFilterSensitiveLog(obj.session) }\n}), \"ExecuteCommandResponseFilterSensitiveLog\");\n\n// src/models/models_1.ts\nvar MissingVersionException = class _MissingVersionException extends ECSServiceException {\n static {\n __name(this, \"MissingVersionException\");\n }\n name = \"MissingVersionException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MissingVersionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MissingVersionException.prototype);\n }\n};\nvar NoUpdateAvailableException = class _NoUpdateAvailableException extends ECSServiceException {\n static {\n __name(this, \"NoUpdateAvailableException\");\n }\n name = \"NoUpdateAvailableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoUpdateAvailableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoUpdateAvailableException.prototype);\n }\n};\n\n// src/protocols/Aws_json1_1.ts\nvar se_CreateCapacityProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateCapacityProvider\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityProviderCommand\");\nvar se_CreateClusterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateCluster\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateClusterCommand\");\nvar se_CreateServiceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateService\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateServiceCommand\");\nvar se_CreateTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateTaskSet\");\n let body;\n body = JSON.stringify(se_CreateTaskSetRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTaskSetCommand\");\nvar se_DeleteAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountSettingCommand\");\nvar se_DeleteAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAttributes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAttributesCommand\");\nvar se_DeleteCapacityProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteCapacityProvider\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCapacityProviderCommand\");\nvar se_DeleteClusterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteCluster\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteClusterCommand\");\nvar se_DeleteServiceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteService\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServiceCommand\");\nvar se_DeleteTaskDefinitionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteTaskDefinitions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTaskDefinitionsCommand\");\nvar se_DeleteTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteTaskSet\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTaskSetCommand\");\nvar se_DeregisterContainerInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterContainerInstance\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterContainerInstanceCommand\");\nvar se_DeregisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterTaskDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTaskDefinitionCommand\");\nvar se_DescribeCapacityProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeCapacityProviders\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityProvidersCommand\");\nvar se_DescribeClustersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeClusters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClustersCommand\");\nvar se_DescribeContainerInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeContainerInstances\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeContainerInstancesCommand\");\nvar se_DescribeServiceDeploymentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeServiceDeployments\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServiceDeploymentsCommand\");\nvar se_DescribeServiceRevisionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeServiceRevisions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServiceRevisionsCommand\");\nvar se_DescribeServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeServices\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServicesCommand\");\nvar se_DescribeTaskDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTaskDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTaskDefinitionCommand\");\nvar se_DescribeTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTasksCommand\");\nvar se_DescribeTaskSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTaskSets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTaskSetsCommand\");\nvar se_DiscoverPollEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DiscoverPollEndpoint\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DiscoverPollEndpointCommand\");\nvar se_ExecuteCommandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ExecuteCommand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExecuteCommandCommand\");\nvar se_GetTaskProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetTaskProtection\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTaskProtectionCommand\");\nvar se_ListAccountSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAccountSettings\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAccountSettingsCommand\");\nvar se_ListAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAttributes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttributesCommand\");\nvar se_ListClustersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListClusters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListClustersCommand\");\nvar se_ListContainerInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListContainerInstances\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListContainerInstancesCommand\");\nvar se_ListServiceDeploymentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListServiceDeployments\");\n let body;\n body = JSON.stringify(se_ListServiceDeploymentsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServiceDeploymentsCommand\");\nvar se_ListServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListServices\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServicesCommand\");\nvar se_ListServicesByNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListServicesByNamespace\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServicesByNamespaceCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTaskDefinitionFamiliesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTaskDefinitionFamilies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTaskDefinitionFamiliesCommand\");\nvar se_ListTaskDefinitionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTaskDefinitions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTaskDefinitionsCommand\");\nvar se_ListTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTasksCommand\");\nvar se_PutAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountSettingCommand\");\nvar se_PutAccountSettingDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountSettingDefault\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountSettingDefaultCommand\");\nvar se_PutAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAttributes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAttributesCommand\");\nvar se_PutClusterCapacityProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutClusterCapacityProviders\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutClusterCapacityProvidersCommand\");\nvar se_RegisterContainerInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterContainerInstance\");\n let body;\n body = JSON.stringify(se_RegisterContainerInstanceRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterContainerInstanceCommand\");\nvar se_RegisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterTaskDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTaskDefinitionCommand\");\nvar se_RunTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RunTask\");\n let body;\n body = JSON.stringify(se_RunTaskRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RunTaskCommand\");\nvar se_StartTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartTaskCommand\");\nvar se_StopServiceDeploymentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopServiceDeployment\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopServiceDeploymentCommand\");\nvar se_StopTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopTaskCommand\");\nvar se_SubmitAttachmentStateChangesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SubmitAttachmentStateChanges\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SubmitAttachmentStateChangesCommand\");\nvar se_SubmitContainerStateChangeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SubmitContainerStateChange\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SubmitContainerStateChangeCommand\");\nvar se_SubmitTaskStateChangeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SubmitTaskStateChange\");\n let body;\n body = JSON.stringify(se_SubmitTaskStateChangeRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SubmitTaskStateChangeCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateCapacityProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateCapacityProvider\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateCapacityProviderCommand\");\nvar se_UpdateClusterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateCluster\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateClusterCommand\");\nvar se_UpdateClusterSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateClusterSettings\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateClusterSettingsCommand\");\nvar se_UpdateContainerAgentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateContainerAgent\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateContainerAgentCommand\");\nvar se_UpdateContainerInstancesStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateContainerInstancesState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateContainerInstancesStateCommand\");\nvar se_UpdateServiceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateService\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServiceCommand\");\nvar se_UpdateServicePrimaryTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateServicePrimaryTaskSet\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServicePrimaryTaskSetCommand\");\nvar se_UpdateTaskProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateTaskProtection\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateTaskProtectionCommand\");\nvar se_UpdateTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateTaskSet\");\n let body;\n body = JSON.stringify(se_UpdateTaskSetRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateTaskSetCommand\");\nvar de_CreateCapacityProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityProviderCommand\");\nvar de_CreateClusterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateClusterCommand\");\nvar de_CreateServiceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateServiceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateServiceCommand\");\nvar de_CreateTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTaskSetCommand\");\nvar de_DeleteAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteAccountSettingCommand\");\nvar de_DeleteAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteAttributesCommand\");\nvar de_DeleteCapacityProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCapacityProviderCommand\");\nvar de_DeleteClusterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteClusterCommand\");\nvar de_DeleteServiceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteServiceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteServiceCommand\");\nvar de_DeleteTaskDefinitionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTaskDefinitionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTaskDefinitionsCommand\");\nvar de_DeleteTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTaskSetCommand\");\nvar de_DeregisterContainerInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterContainerInstanceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterContainerInstanceCommand\");\nvar de_DeregisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTaskDefinitionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTaskDefinitionCommand\");\nvar de_DescribeCapacityProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityProvidersCommand\");\nvar de_DescribeClustersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClustersCommand\");\nvar de_DescribeContainerInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeContainerInstancesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeContainerInstancesCommand\");\nvar de_DescribeServiceDeploymentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServiceDeploymentsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServiceDeploymentsCommand\");\nvar de_DescribeServiceRevisionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServiceRevisionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServiceRevisionsCommand\");\nvar de_DescribeServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServicesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServicesCommand\");\nvar de_DescribeTaskDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTaskDefinitionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTaskDefinitionCommand\");\nvar de_DescribeTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTasksResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTasksCommand\");\nvar de_DescribeTaskSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTaskSetsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTaskSetsCommand\");\nvar de_DiscoverPollEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DiscoverPollEndpointCommand\");\nvar de_ExecuteCommandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExecuteCommandCommand\");\nvar de_GetTaskProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetTaskProtectionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTaskProtectionCommand\");\nvar de_ListAccountSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAccountSettingsCommand\");\nvar de_ListAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttributesCommand\");\nvar de_ListClustersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListClustersCommand\");\nvar de_ListContainerInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListContainerInstancesCommand\");\nvar de_ListServiceDeploymentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListServiceDeploymentsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServiceDeploymentsCommand\");\nvar de_ListServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServicesCommand\");\nvar de_ListServicesByNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServicesByNamespaceCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTaskDefinitionFamiliesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTaskDefinitionFamiliesCommand\");\nvar de_ListTaskDefinitionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTaskDefinitionsCommand\");\nvar de_ListTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTasksCommand\");\nvar de_PutAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountSettingCommand\");\nvar de_PutAccountSettingDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountSettingDefaultCommand\");\nvar de_PutAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAttributesCommand\");\nvar de_PutClusterCapacityProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutClusterCapacityProvidersCommand\");\nvar de_RegisterContainerInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RegisterContainerInstanceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterContainerInstanceCommand\");\nvar de_RegisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTaskDefinitionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTaskDefinitionCommand\");\nvar de_RunTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RunTaskResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RunTaskCommand\");\nvar de_StartTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartTaskResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartTaskCommand\");\nvar de_StopServiceDeploymentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopServiceDeploymentCommand\");\nvar de_StopTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopTaskResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopTaskCommand\");\nvar de_SubmitAttachmentStateChangesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SubmitAttachmentStateChangesCommand\");\nvar de_SubmitContainerStateChangeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SubmitContainerStateChangeCommand\");\nvar de_SubmitTaskStateChangeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SubmitTaskStateChangeCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateCapacityProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateCapacityProviderCommand\");\nvar de_UpdateClusterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateClusterCommand\");\nvar de_UpdateClusterSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateClusterSettingsCommand\");\nvar de_UpdateContainerAgentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateContainerAgentResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateContainerAgentCommand\");\nvar de_UpdateContainerInstancesStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateContainerInstancesStateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateContainerInstancesStateCommand\");\nvar de_UpdateServiceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateServiceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateServiceCommand\");\nvar de_UpdateServicePrimaryTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateServicePrimaryTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateServicePrimaryTaskSetCommand\");\nvar de_UpdateTaskProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateTaskProtectionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateTaskProtectionCommand\");\nvar de_UpdateTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateTaskSetCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ClientException\":\n case \"com.amazonaws.ecs#ClientException\":\n throw await de_ClientExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.ecs#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.ecs#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"ServerException\":\n case \"com.amazonaws.ecs#ServerException\":\n throw await de_ServerExceptionRes(parsedOutput, context);\n case \"UpdateInProgressException\":\n case \"com.amazonaws.ecs#UpdateInProgressException\":\n throw await de_UpdateInProgressExceptionRes(parsedOutput, context);\n case \"NamespaceNotFoundException\":\n case \"com.amazonaws.ecs#NamespaceNotFoundException\":\n throw await de_NamespaceNotFoundExceptionRes(parsedOutput, context);\n case \"AccessDeniedException\":\n case \"com.amazonaws.ecs#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"ClusterNotFoundException\":\n case \"com.amazonaws.ecs#ClusterNotFoundException\":\n throw await de_ClusterNotFoundExceptionRes(parsedOutput, context);\n case \"PlatformTaskDefinitionIncompatibilityException\":\n case \"com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException\":\n throw await de_PlatformTaskDefinitionIncompatibilityExceptionRes(parsedOutput, context);\n case \"PlatformUnknownException\":\n case \"com.amazonaws.ecs#PlatformUnknownException\":\n throw await de_PlatformUnknownExceptionRes(parsedOutput, context);\n case \"UnsupportedFeatureException\":\n case \"com.amazonaws.ecs#UnsupportedFeatureException\":\n throw await de_UnsupportedFeatureExceptionRes(parsedOutput, context);\n case \"ServiceNotActiveException\":\n case \"com.amazonaws.ecs#ServiceNotActiveException\":\n throw await de_ServiceNotActiveExceptionRes(parsedOutput, context);\n case \"ServiceNotFoundException\":\n case \"com.amazonaws.ecs#ServiceNotFoundException\":\n throw await de_ServiceNotFoundExceptionRes(parsedOutput, context);\n case \"TargetNotFoundException\":\n case \"com.amazonaws.ecs#TargetNotFoundException\":\n throw await de_TargetNotFoundExceptionRes(parsedOutput, context);\n case \"ClusterContainsContainerInstancesException\":\n case \"com.amazonaws.ecs#ClusterContainsContainerInstancesException\":\n throw await de_ClusterContainsContainerInstancesExceptionRes(parsedOutput, context);\n case \"ClusterContainsServicesException\":\n case \"com.amazonaws.ecs#ClusterContainsServicesException\":\n throw await de_ClusterContainsServicesExceptionRes(parsedOutput, context);\n case \"ClusterContainsTasksException\":\n case \"com.amazonaws.ecs#ClusterContainsTasksException\":\n throw await de_ClusterContainsTasksExceptionRes(parsedOutput, context);\n case \"TaskSetNotFoundException\":\n case \"com.amazonaws.ecs#TaskSetNotFoundException\":\n throw await de_TaskSetNotFoundExceptionRes(parsedOutput, context);\n case \"TargetNotConnectedException\":\n case \"com.amazonaws.ecs#TargetNotConnectedException\":\n throw await de_TargetNotConnectedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.ecs#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"AttributeLimitExceededException\":\n case \"com.amazonaws.ecs#AttributeLimitExceededException\":\n throw await de_AttributeLimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceInUseException\":\n case \"com.amazonaws.ecs#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"BlockedException\":\n case \"com.amazonaws.ecs#BlockedException\":\n throw await de_BlockedExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.ecs#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"ServiceDeploymentNotFoundException\":\n case \"com.amazonaws.ecs#ServiceDeploymentNotFoundException\":\n throw await de_ServiceDeploymentNotFoundExceptionRes(parsedOutput, context);\n case \"MissingVersionException\":\n case \"com.amazonaws.ecs#MissingVersionException\":\n throw await de_MissingVersionExceptionRes(parsedOutput, context);\n case \"NoUpdateAvailableException\":\n case \"com.amazonaws.ecs#NoUpdateAvailableException\":\n throw await de_NoUpdateAvailableExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AttributeLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AttributeLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AttributeLimitExceededExceptionRes\");\nvar de_BlockedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new BlockedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_BlockedExceptionRes\");\nvar de_ClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClientExceptionRes\");\nvar de_ClusterContainsContainerInstancesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterContainsContainerInstancesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterContainsContainerInstancesExceptionRes\");\nvar de_ClusterContainsServicesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterContainsServicesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterContainsServicesExceptionRes\");\nvar de_ClusterContainsTasksExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterContainsTasksException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterContainsTasksExceptionRes\");\nvar de_ClusterNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterNotFoundExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MissingVersionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MissingVersionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MissingVersionExceptionRes\");\nvar de_NamespaceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NamespaceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NamespaceNotFoundExceptionRes\");\nvar de_NoUpdateAvailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NoUpdateAvailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NoUpdateAvailableExceptionRes\");\nvar de_PlatformTaskDefinitionIncompatibilityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PlatformTaskDefinitionIncompatibilityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PlatformTaskDefinitionIncompatibilityExceptionRes\");\nvar de_PlatformUnknownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PlatformUnknownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PlatformUnknownExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServerExceptionRes\");\nvar de_ServiceDeploymentNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceDeploymentNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceDeploymentNotFoundExceptionRes\");\nvar de_ServiceNotActiveExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceNotActiveException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceNotActiveExceptionRes\");\nvar de_ServiceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceNotFoundExceptionRes\");\nvar de_TargetNotConnectedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetNotConnectedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetNotConnectedExceptionRes\");\nvar de_TargetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetNotFoundExceptionRes\");\nvar de_TaskSetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TaskSetNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TaskSetNotFoundExceptionRes\");\nvar de_UnsupportedFeatureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedFeatureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedFeatureExceptionRes\");\nvar de_UpdateInProgressExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UpdateInProgressException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UpdateInProgressExceptionRes\");\nvar se_CreatedAt = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n after: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"after\"),\n before: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"before\")\n });\n}, \"se_CreatedAt\");\nvar se_CreateTaskSetRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n capacityProviderStrategy: import_smithy_client._json,\n clientToken: [],\n cluster: [],\n externalId: [],\n launchType: [],\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n platformVersion: [],\n scale: /* @__PURE__ */ __name((_) => se_Scale(_, context), \"scale\"),\n service: [],\n serviceRegistries: import_smithy_client._json,\n tags: import_smithy_client._json,\n taskDefinition: []\n });\n}, \"se_CreateTaskSetRequest\");\nvar se_ListServiceDeploymentsRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n cluster: [],\n createdAt: /* @__PURE__ */ __name((_) => se_CreatedAt(_, context), \"createdAt\"),\n maxResults: [],\n nextToken: [],\n service: [],\n status: import_smithy_client._json\n });\n}, \"se_ListServiceDeploymentsRequest\");\nvar se_RegisterContainerInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n attributes: import_smithy_client._json,\n cluster: [],\n containerInstanceArn: [],\n instanceIdentityDocument: [],\n instanceIdentityDocumentSignature: [],\n platformDevices: import_smithy_client._json,\n tags: import_smithy_client._json,\n totalResources: /* @__PURE__ */ __name((_) => se_Resources(_, context), \"totalResources\"),\n versionInfo: import_smithy_client._json\n });\n}, \"se_RegisterContainerInstanceRequest\");\nvar se_Resource = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n doubleValue: import_smithy_client.serializeFloat,\n integerValue: [],\n longValue: [],\n name: [],\n stringSetValue: import_smithy_client._json,\n type: []\n });\n}, \"se_Resource\");\nvar se_Resources = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_Resource(entry, context);\n });\n}, \"se_Resources\");\nvar se_RunTaskRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n capacityProviderStrategy: import_smithy_client._json,\n clientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n cluster: [],\n count: [],\n enableECSManagedTags: [],\n enableExecuteCommand: [],\n group: [],\n launchType: [],\n networkConfiguration: import_smithy_client._json,\n overrides: import_smithy_client._json,\n placementConstraints: import_smithy_client._json,\n placementStrategy: import_smithy_client._json,\n platformVersion: [],\n propagateTags: [],\n referenceId: [],\n startedBy: [],\n tags: import_smithy_client._json,\n taskDefinition: [],\n volumeConfigurations: import_smithy_client._json\n });\n}, \"se_RunTaskRequest\");\nvar se_Scale = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n unit: [],\n value: import_smithy_client.serializeFloat\n });\n}, \"se_Scale\");\nvar se_SubmitTaskStateChangeRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n attachments: import_smithy_client._json,\n cluster: [],\n containers: import_smithy_client._json,\n executionStoppedAt: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"executionStoppedAt\"),\n managedAgents: import_smithy_client._json,\n pullStartedAt: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"pullStartedAt\"),\n pullStoppedAt: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"pullStoppedAt\"),\n reason: [],\n status: [],\n task: []\n });\n}, \"se_SubmitTaskStateChangeRequest\");\nvar se_UpdateTaskSetRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n cluster: [],\n scale: /* @__PURE__ */ __name((_) => se_Scale(_, context), \"scale\"),\n service: [],\n taskSet: []\n });\n}, \"se_UpdateTaskSetRequest\");\nvar de_Container = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerArn: import_smithy_client.expectString,\n cpu: import_smithy_client.expectString,\n exitCode: import_smithy_client.expectInt32,\n gpuIds: import_smithy_client._json,\n healthStatus: import_smithy_client.expectString,\n image: import_smithy_client.expectString,\n imageDigest: import_smithy_client.expectString,\n lastStatus: import_smithy_client.expectString,\n managedAgents: /* @__PURE__ */ __name((_) => de_ManagedAgents(_, context), \"managedAgents\"),\n memory: import_smithy_client.expectString,\n memoryReservation: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n networkBindings: import_smithy_client._json,\n networkInterfaces: import_smithy_client._json,\n reason: import_smithy_client.expectString,\n runtimeId: import_smithy_client.expectString,\n taskArn: import_smithy_client.expectString\n });\n}, \"de_Container\");\nvar de_ContainerInstance = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n agentConnected: import_smithy_client.expectBoolean,\n agentUpdateStatus: import_smithy_client.expectString,\n attachments: import_smithy_client._json,\n attributes: import_smithy_client._json,\n capacityProviderName: import_smithy_client.expectString,\n containerInstanceArn: import_smithy_client.expectString,\n ec2InstanceId: import_smithy_client.expectString,\n healthStatus: /* @__PURE__ */ __name((_) => de_ContainerInstanceHealthStatus(_, context), \"healthStatus\"),\n pendingTasksCount: import_smithy_client.expectInt32,\n registeredAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"registeredAt\"),\n registeredResources: /* @__PURE__ */ __name((_) => de_Resources(_, context), \"registeredResources\"),\n remainingResources: /* @__PURE__ */ __name((_) => de_Resources(_, context), \"remainingResources\"),\n runningTasksCount: import_smithy_client.expectInt32,\n status: import_smithy_client.expectString,\n statusReason: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n version: import_smithy_client.expectLong,\n versionInfo: import_smithy_client._json\n });\n}, \"de_ContainerInstance\");\nvar de_ContainerInstanceHealthStatus = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n details: /* @__PURE__ */ __name((_) => de_InstanceHealthCheckResultList(_, context), \"details\"),\n overallStatus: import_smithy_client.expectString\n });\n}, \"de_ContainerInstanceHealthStatus\");\nvar de_ContainerInstances = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ContainerInstance(entry, context);\n });\n return retVal;\n}, \"de_ContainerInstances\");\nvar de_Containers = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Container(entry, context);\n });\n return retVal;\n}, \"de_Containers\");\nvar de_CreateServiceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n service: /* @__PURE__ */ __name((_) => de_Service(_, context), \"service\")\n });\n}, \"de_CreateServiceResponse\");\nvar de_CreateTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_CreateTaskSetResponse\");\nvar de_DeleteServiceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n service: /* @__PURE__ */ __name((_) => de_Service(_, context), \"service\")\n });\n}, \"de_DeleteServiceResponse\");\nvar de_DeleteTaskDefinitionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n taskDefinitions: /* @__PURE__ */ __name((_) => de_TaskDefinitionList(_, context), \"taskDefinitions\")\n });\n}, \"de_DeleteTaskDefinitionsResponse\");\nvar de_DeleteTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_DeleteTaskSetResponse\");\nvar de_Deployment = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n capacityProviderStrategy: import_smithy_client._json,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n desiredCount: import_smithy_client.expectInt32,\n failedTasks: import_smithy_client.expectInt32,\n fargateEphemeralStorage: import_smithy_client._json,\n id: import_smithy_client.expectString,\n launchType: import_smithy_client.expectString,\n networkConfiguration: import_smithy_client._json,\n pendingCount: import_smithy_client.expectInt32,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n rolloutState: import_smithy_client.expectString,\n rolloutStateReason: import_smithy_client.expectString,\n runningCount: import_smithy_client.expectInt32,\n serviceConnectConfiguration: import_smithy_client._json,\n serviceConnectResources: import_smithy_client._json,\n status: import_smithy_client.expectString,\n taskDefinition: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\"),\n volumeConfigurations: import_smithy_client._json,\n vpcLatticeConfigurations: import_smithy_client._json\n });\n}, \"de_Deployment\");\nvar de_Deployments = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Deployment(entry, context);\n });\n return retVal;\n}, \"de_Deployments\");\nvar de_DeregisterContainerInstanceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstance: /* @__PURE__ */ __name((_) => de_ContainerInstance(_, context), \"containerInstance\")\n });\n}, \"de_DeregisterContainerInstanceResponse\");\nvar de_DeregisterTaskDefinitionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskDefinition: /* @__PURE__ */ __name((_) => de_TaskDefinition(_, context), \"taskDefinition\")\n });\n}, \"de_DeregisterTaskDefinitionResponse\");\nvar de_DescribeContainerInstancesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstances: /* @__PURE__ */ __name((_) => de_ContainerInstances(_, context), \"containerInstances\"),\n failures: import_smithy_client._json\n });\n}, \"de_DescribeContainerInstancesResponse\");\nvar de_DescribeServiceDeploymentsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n serviceDeployments: /* @__PURE__ */ __name((_) => de_ServiceDeployments(_, context), \"serviceDeployments\")\n });\n}, \"de_DescribeServiceDeploymentsResponse\");\nvar de_DescribeServiceRevisionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n serviceRevisions: /* @__PURE__ */ __name((_) => de_ServiceRevisions(_, context), \"serviceRevisions\")\n });\n}, \"de_DescribeServiceRevisionsResponse\");\nvar de_DescribeServicesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n services: /* @__PURE__ */ __name((_) => de_Services(_, context), \"services\")\n });\n}, \"de_DescribeServicesResponse\");\nvar de_DescribeTaskDefinitionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n tags: import_smithy_client._json,\n taskDefinition: /* @__PURE__ */ __name((_) => de_TaskDefinition(_, context), \"taskDefinition\")\n });\n}, \"de_DescribeTaskDefinitionResponse\");\nvar de_DescribeTaskSetsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n taskSets: /* @__PURE__ */ __name((_) => de_TaskSets(_, context), \"taskSets\")\n });\n}, \"de_DescribeTaskSetsResponse\");\nvar de_DescribeTasksResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n tasks: /* @__PURE__ */ __name((_) => de_Tasks(_, context), \"tasks\")\n });\n}, \"de_DescribeTasksResponse\");\nvar de_GetTaskProtectionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n protectedTasks: /* @__PURE__ */ __name((_) => de_ProtectedTasks(_, context), \"protectedTasks\")\n });\n}, \"de_GetTaskProtectionResponse\");\nvar de_InstanceHealthCheckResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastStatusChange: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastStatusChange\"),\n lastUpdated: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastUpdated\"),\n status: import_smithy_client.expectString,\n type: import_smithy_client.expectString\n });\n}, \"de_InstanceHealthCheckResult\");\nvar de_InstanceHealthCheckResultList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceHealthCheckResult(entry, context);\n });\n return retVal;\n}, \"de_InstanceHealthCheckResultList\");\nvar de_ListServiceDeploymentsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n serviceDeployments: /* @__PURE__ */ __name((_) => de_ServiceDeploymentsBrief(_, context), \"serviceDeployments\")\n });\n}, \"de_ListServiceDeploymentsResponse\");\nvar de_ManagedAgent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastStartedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastStartedAt\"),\n lastStatus: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n reason: import_smithy_client.expectString\n });\n}, \"de_ManagedAgent\");\nvar de_ManagedAgents = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ManagedAgent(entry, context);\n });\n return retVal;\n}, \"de_ManagedAgents\");\nvar de_ProtectedTask = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n expirationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expirationDate\"),\n protectionEnabled: import_smithy_client.expectBoolean,\n taskArn: import_smithy_client.expectString\n });\n}, \"de_ProtectedTask\");\nvar de_ProtectedTasks = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ProtectedTask(entry, context);\n });\n return retVal;\n}, \"de_ProtectedTasks\");\nvar de_RegisterContainerInstanceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstance: /* @__PURE__ */ __name((_) => de_ContainerInstance(_, context), \"containerInstance\")\n });\n}, \"de_RegisterContainerInstanceResponse\");\nvar de_RegisterTaskDefinitionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n tags: import_smithy_client._json,\n taskDefinition: /* @__PURE__ */ __name((_) => de_TaskDefinition(_, context), \"taskDefinition\")\n });\n}, \"de_RegisterTaskDefinitionResponse\");\nvar de_Resource = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n doubleValue: import_smithy_client.limitedParseDouble,\n integerValue: import_smithy_client.expectInt32,\n longValue: import_smithy_client.expectLong,\n name: import_smithy_client.expectString,\n stringSetValue: import_smithy_client._json,\n type: import_smithy_client.expectString\n });\n}, \"de_Resource\");\nvar de_Resources = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Resource(entry, context);\n });\n return retVal;\n}, \"de_Resources\");\nvar de_Rollback = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reason: import_smithy_client.expectString,\n serviceRevisionArn: import_smithy_client.expectString,\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\")\n });\n}, \"de_Rollback\");\nvar de_RunTaskResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n tasks: /* @__PURE__ */ __name((_) => de_Tasks(_, context), \"tasks\")\n });\n}, \"de_RunTaskResponse\");\nvar de_Scale = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n unit: import_smithy_client.expectString,\n value: import_smithy_client.limitedParseDouble\n });\n}, \"de_Scale\");\nvar de_Service = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n availabilityZoneRebalancing: import_smithy_client.expectString,\n capacityProviderStrategy: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n createdBy: import_smithy_client.expectString,\n deploymentConfiguration: import_smithy_client._json,\n deploymentController: import_smithy_client._json,\n deployments: /* @__PURE__ */ __name((_) => de_Deployments(_, context), \"deployments\"),\n desiredCount: import_smithy_client.expectInt32,\n enableECSManagedTags: import_smithy_client.expectBoolean,\n enableExecuteCommand: import_smithy_client.expectBoolean,\n events: /* @__PURE__ */ __name((_) => de_ServiceEvents(_, context), \"events\"),\n healthCheckGracePeriodSeconds: import_smithy_client.expectInt32,\n launchType: import_smithy_client.expectString,\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n pendingCount: import_smithy_client.expectInt32,\n placementConstraints: import_smithy_client._json,\n placementStrategy: import_smithy_client._json,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n propagateTags: import_smithy_client.expectString,\n roleArn: import_smithy_client.expectString,\n runningCount: import_smithy_client.expectInt32,\n schedulingStrategy: import_smithy_client.expectString,\n serviceArn: import_smithy_client.expectString,\n serviceName: import_smithy_client.expectString,\n serviceRegistries: import_smithy_client._json,\n status: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n taskDefinition: import_smithy_client.expectString,\n taskSets: /* @__PURE__ */ __name((_) => de_TaskSets(_, context), \"taskSets\")\n });\n}, \"de_Service\");\nvar de_ServiceDeployment = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n alarms: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n deploymentCircuitBreaker: import_smithy_client._json,\n deploymentConfiguration: import_smithy_client._json,\n finishedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"finishedAt\"),\n rollback: /* @__PURE__ */ __name((_) => de_Rollback(_, context), \"rollback\"),\n serviceArn: import_smithy_client.expectString,\n serviceDeploymentArn: import_smithy_client.expectString,\n sourceServiceRevisions: import_smithy_client._json,\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\"),\n status: import_smithy_client.expectString,\n statusReason: import_smithy_client.expectString,\n stoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stoppedAt\"),\n targetServiceRevision: import_smithy_client._json,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_ServiceDeployment\");\nvar de_ServiceDeploymentBrief = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n clusterArn: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n finishedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"finishedAt\"),\n serviceArn: import_smithy_client.expectString,\n serviceDeploymentArn: import_smithy_client.expectString,\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\"),\n status: import_smithy_client.expectString,\n statusReason: import_smithy_client.expectString,\n targetServiceRevisionArn: import_smithy_client.expectString\n });\n}, \"de_ServiceDeploymentBrief\");\nvar de_ServiceDeployments = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceDeployment(entry, context);\n });\n return retVal;\n}, \"de_ServiceDeployments\");\nvar de_ServiceDeploymentsBrief = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceDeploymentBrief(entry, context);\n });\n return retVal;\n}, \"de_ServiceDeploymentsBrief\");\nvar de_ServiceEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n id: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n}, \"de_ServiceEvent\");\nvar de_ServiceEvents = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceEvent(entry, context);\n });\n return retVal;\n}, \"de_ServiceEvents\");\nvar de_ServiceRevision = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n capacityProviderStrategy: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n containerImages: import_smithy_client._json,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n fargateEphemeralStorage: import_smithy_client._json,\n guardDutyEnabled: import_smithy_client.expectBoolean,\n launchType: import_smithy_client.expectString,\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n serviceArn: import_smithy_client.expectString,\n serviceConnectConfiguration: import_smithy_client._json,\n serviceRegistries: import_smithy_client._json,\n serviceRevisionArn: import_smithy_client.expectString,\n taskDefinition: import_smithy_client.expectString,\n volumeConfigurations: import_smithy_client._json,\n vpcLatticeConfigurations: import_smithy_client._json\n });\n}, \"de_ServiceRevision\");\nvar de_ServiceRevisions = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceRevision(entry, context);\n });\n return retVal;\n}, \"de_ServiceRevisions\");\nvar de_Services = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Service(entry, context);\n });\n return retVal;\n}, \"de_Services\");\nvar de_StartTaskResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n tasks: /* @__PURE__ */ __name((_) => de_Tasks(_, context), \"tasks\")\n });\n}, \"de_StartTaskResponse\");\nvar de_StopTaskResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n task: /* @__PURE__ */ __name((_) => de_Task(_, context), \"task\")\n });\n}, \"de_StopTaskResponse\");\nvar de_Task = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n attachments: import_smithy_client._json,\n attributes: import_smithy_client._json,\n availabilityZone: import_smithy_client.expectString,\n capacityProviderName: import_smithy_client.expectString,\n clusterArn: import_smithy_client.expectString,\n connectivity: import_smithy_client.expectString,\n connectivityAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"connectivityAt\"),\n containerInstanceArn: import_smithy_client.expectString,\n containers: /* @__PURE__ */ __name((_) => de_Containers(_, context), \"containers\"),\n cpu: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n desiredStatus: import_smithy_client.expectString,\n enableExecuteCommand: import_smithy_client.expectBoolean,\n ephemeralStorage: import_smithy_client._json,\n executionStoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"executionStoppedAt\"),\n fargateEphemeralStorage: import_smithy_client._json,\n group: import_smithy_client.expectString,\n healthStatus: import_smithy_client.expectString,\n inferenceAccelerators: import_smithy_client._json,\n lastStatus: import_smithy_client.expectString,\n launchType: import_smithy_client.expectString,\n memory: import_smithy_client.expectString,\n overrides: import_smithy_client._json,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n pullStartedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"pullStartedAt\"),\n pullStoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"pullStoppedAt\"),\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\"),\n startedBy: import_smithy_client.expectString,\n stopCode: import_smithy_client.expectString,\n stoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stoppedAt\"),\n stoppedReason: import_smithy_client.expectString,\n stoppingAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stoppingAt\"),\n tags: import_smithy_client._json,\n taskArn: import_smithy_client.expectString,\n taskDefinitionArn: import_smithy_client.expectString,\n version: import_smithy_client.expectLong\n });\n}, \"de_Task\");\nvar de_TaskDefinition = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n compatibilities: import_smithy_client._json,\n containerDefinitions: import_smithy_client._json,\n cpu: import_smithy_client.expectString,\n deregisteredAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"deregisteredAt\"),\n enableFaultInjection: import_smithy_client.expectBoolean,\n ephemeralStorage: import_smithy_client._json,\n executionRoleArn: import_smithy_client.expectString,\n family: import_smithy_client.expectString,\n inferenceAccelerators: import_smithy_client._json,\n ipcMode: import_smithy_client.expectString,\n memory: import_smithy_client.expectString,\n networkMode: import_smithy_client.expectString,\n pidMode: import_smithy_client.expectString,\n placementConstraints: import_smithy_client._json,\n proxyConfiguration: import_smithy_client._json,\n registeredAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"registeredAt\"),\n registeredBy: import_smithy_client.expectString,\n requiresAttributes: import_smithy_client._json,\n requiresCompatibilities: import_smithy_client._json,\n revision: import_smithy_client.expectInt32,\n runtimePlatform: import_smithy_client._json,\n status: import_smithy_client.expectString,\n taskDefinitionArn: import_smithy_client.expectString,\n taskRoleArn: import_smithy_client.expectString,\n volumes: import_smithy_client._json\n });\n}, \"de_TaskDefinition\");\nvar de_TaskDefinitionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TaskDefinition(entry, context);\n });\n return retVal;\n}, \"de_TaskDefinitionList\");\nvar de_Tasks = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Task(entry, context);\n });\n return retVal;\n}, \"de_Tasks\");\nvar de_TaskSet = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n capacityProviderStrategy: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n computedDesiredCount: import_smithy_client.expectInt32,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n externalId: import_smithy_client.expectString,\n fargateEphemeralStorage: import_smithy_client._json,\n id: import_smithy_client.expectString,\n launchType: import_smithy_client.expectString,\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n pendingCount: import_smithy_client.expectInt32,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n runningCount: import_smithy_client.expectInt32,\n scale: /* @__PURE__ */ __name((_) => de_Scale(_, context), \"scale\"),\n serviceArn: import_smithy_client.expectString,\n serviceRegistries: import_smithy_client._json,\n stabilityStatus: import_smithy_client.expectString,\n stabilityStatusAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stabilityStatusAt\"),\n startedBy: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n taskDefinition: import_smithy_client.expectString,\n taskSetArn: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_TaskSet\");\nvar de_TaskSets = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TaskSet(entry, context);\n });\n return retVal;\n}, \"de_TaskSets\");\nvar de_UpdateContainerAgentResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstance: /* @__PURE__ */ __name((_) => de_ContainerInstance(_, context), \"containerInstance\")\n });\n}, \"de_UpdateContainerAgentResponse\");\nvar de_UpdateContainerInstancesStateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstances: /* @__PURE__ */ __name((_) => de_ContainerInstances(_, context), \"containerInstances\"),\n failures: import_smithy_client._json\n });\n}, \"de_UpdateContainerInstancesStateResponse\");\nvar de_UpdateServicePrimaryTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_UpdateServicePrimaryTaskSetResponse\");\nvar de_UpdateServiceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n service: /* @__PURE__ */ __name((_) => de_Service(_, context), \"service\")\n });\n}, \"de_UpdateServiceResponse\");\nvar de_UpdateTaskProtectionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n protectedTasks: /* @__PURE__ */ __name((_) => de_ProtectedTasks(_, context), \"protectedTasks\")\n });\n}, \"de_UpdateTaskProtectionResponse\");\nvar de_UpdateTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_UpdateTaskSetResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(ECSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AmazonEC2ContainerServiceV20141113.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CreateCapacityProviderCommand.ts\nvar CreateCapacityProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateCapacityProvider\", {}).n(\"ECSClient\", \"CreateCapacityProviderCommand\").f(void 0, void 0).ser(se_CreateCapacityProviderCommand).de(de_CreateCapacityProviderCommand).build() {\n static {\n __name(this, \"CreateCapacityProviderCommand\");\n }\n};\n\n// src/commands/CreateClusterCommand.ts\n\n\n\nvar CreateClusterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateCluster\", {}).n(\"ECSClient\", \"CreateClusterCommand\").f(void 0, void 0).ser(se_CreateClusterCommand).de(de_CreateClusterCommand).build() {\n static {\n __name(this, \"CreateClusterCommand\");\n }\n};\n\n// src/commands/CreateServiceCommand.ts\n\n\n\nvar CreateServiceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateService\", {}).n(\"ECSClient\", \"CreateServiceCommand\").f(void 0, void 0).ser(se_CreateServiceCommand).de(de_CreateServiceCommand).build() {\n static {\n __name(this, \"CreateServiceCommand\");\n }\n};\n\n// src/commands/CreateTaskSetCommand.ts\n\n\n\nvar CreateTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateTaskSet\", {}).n(\"ECSClient\", \"CreateTaskSetCommand\").f(void 0, void 0).ser(se_CreateTaskSetCommand).de(de_CreateTaskSetCommand).build() {\n static {\n __name(this, \"CreateTaskSetCommand\");\n }\n};\n\n// src/commands/DeleteAccountSettingCommand.ts\n\n\n\nvar DeleteAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteAccountSetting\", {}).n(\"ECSClient\", \"DeleteAccountSettingCommand\").f(void 0, void 0).ser(se_DeleteAccountSettingCommand).de(de_DeleteAccountSettingCommand).build() {\n static {\n __name(this, \"DeleteAccountSettingCommand\");\n }\n};\n\n// src/commands/DeleteAttributesCommand.ts\n\n\n\nvar DeleteAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteAttributes\", {}).n(\"ECSClient\", \"DeleteAttributesCommand\").f(void 0, void 0).ser(se_DeleteAttributesCommand).de(de_DeleteAttributesCommand).build() {\n static {\n __name(this, \"DeleteAttributesCommand\");\n }\n};\n\n// src/commands/DeleteCapacityProviderCommand.ts\n\n\n\nvar DeleteCapacityProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteCapacityProvider\", {}).n(\"ECSClient\", \"DeleteCapacityProviderCommand\").f(void 0, void 0).ser(se_DeleteCapacityProviderCommand).de(de_DeleteCapacityProviderCommand).build() {\n static {\n __name(this, \"DeleteCapacityProviderCommand\");\n }\n};\n\n// src/commands/DeleteClusterCommand.ts\n\n\n\nvar DeleteClusterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteCluster\", {}).n(\"ECSClient\", \"DeleteClusterCommand\").f(void 0, void 0).ser(se_DeleteClusterCommand).de(de_DeleteClusterCommand).build() {\n static {\n __name(this, \"DeleteClusterCommand\");\n }\n};\n\n// src/commands/DeleteServiceCommand.ts\n\n\n\nvar DeleteServiceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteService\", {}).n(\"ECSClient\", \"DeleteServiceCommand\").f(void 0, void 0).ser(se_DeleteServiceCommand).de(de_DeleteServiceCommand).build() {\n static {\n __name(this, \"DeleteServiceCommand\");\n }\n};\n\n// src/commands/DeleteTaskDefinitionsCommand.ts\n\n\n\nvar DeleteTaskDefinitionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteTaskDefinitions\", {}).n(\"ECSClient\", \"DeleteTaskDefinitionsCommand\").f(void 0, void 0).ser(se_DeleteTaskDefinitionsCommand).de(de_DeleteTaskDefinitionsCommand).build() {\n static {\n __name(this, \"DeleteTaskDefinitionsCommand\");\n }\n};\n\n// src/commands/DeleteTaskSetCommand.ts\n\n\n\nvar DeleteTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteTaskSet\", {}).n(\"ECSClient\", \"DeleteTaskSetCommand\").f(void 0, void 0).ser(se_DeleteTaskSetCommand).de(de_DeleteTaskSetCommand).build() {\n static {\n __name(this, \"DeleteTaskSetCommand\");\n }\n};\n\n// src/commands/DeregisterContainerInstanceCommand.ts\n\n\n\nvar DeregisterContainerInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeregisterContainerInstance\", {}).n(\"ECSClient\", \"DeregisterContainerInstanceCommand\").f(void 0, void 0).ser(se_DeregisterContainerInstanceCommand).de(de_DeregisterContainerInstanceCommand).build() {\n static {\n __name(this, \"DeregisterContainerInstanceCommand\");\n }\n};\n\n// src/commands/DeregisterTaskDefinitionCommand.ts\n\n\n\nvar DeregisterTaskDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeregisterTaskDefinition\", {}).n(\"ECSClient\", \"DeregisterTaskDefinitionCommand\").f(void 0, void 0).ser(se_DeregisterTaskDefinitionCommand).de(de_DeregisterTaskDefinitionCommand).build() {\n static {\n __name(this, \"DeregisterTaskDefinitionCommand\");\n }\n};\n\n// src/commands/DescribeCapacityProvidersCommand.ts\n\n\n\nvar DescribeCapacityProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeCapacityProviders\", {}).n(\"ECSClient\", \"DescribeCapacityProvidersCommand\").f(void 0, void 0).ser(se_DescribeCapacityProvidersCommand).de(de_DescribeCapacityProvidersCommand).build() {\n static {\n __name(this, \"DescribeCapacityProvidersCommand\");\n }\n};\n\n// src/commands/DescribeClustersCommand.ts\n\n\n\nvar DescribeClustersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeClusters\", {}).n(\"ECSClient\", \"DescribeClustersCommand\").f(void 0, void 0).ser(se_DescribeClustersCommand).de(de_DescribeClustersCommand).build() {\n static {\n __name(this, \"DescribeClustersCommand\");\n }\n};\n\n// src/commands/DescribeContainerInstancesCommand.ts\n\n\n\nvar DescribeContainerInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeContainerInstances\", {}).n(\"ECSClient\", \"DescribeContainerInstancesCommand\").f(void 0, void 0).ser(se_DescribeContainerInstancesCommand).de(de_DescribeContainerInstancesCommand).build() {\n static {\n __name(this, \"DescribeContainerInstancesCommand\");\n }\n};\n\n// src/commands/DescribeServiceDeploymentsCommand.ts\n\n\n\nvar DescribeServiceDeploymentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeServiceDeployments\", {}).n(\"ECSClient\", \"DescribeServiceDeploymentsCommand\").f(void 0, void 0).ser(se_DescribeServiceDeploymentsCommand).de(de_DescribeServiceDeploymentsCommand).build() {\n static {\n __name(this, \"DescribeServiceDeploymentsCommand\");\n }\n};\n\n// src/commands/DescribeServiceRevisionsCommand.ts\n\n\n\nvar DescribeServiceRevisionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeServiceRevisions\", {}).n(\"ECSClient\", \"DescribeServiceRevisionsCommand\").f(void 0, void 0).ser(se_DescribeServiceRevisionsCommand).de(de_DescribeServiceRevisionsCommand).build() {\n static {\n __name(this, \"DescribeServiceRevisionsCommand\");\n }\n};\n\n// src/commands/DescribeServicesCommand.ts\n\n\n\nvar DescribeServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeServices\", {}).n(\"ECSClient\", \"DescribeServicesCommand\").f(void 0, void 0).ser(se_DescribeServicesCommand).de(de_DescribeServicesCommand).build() {\n static {\n __name(this, \"DescribeServicesCommand\");\n }\n};\n\n// src/commands/DescribeTaskDefinitionCommand.ts\n\n\n\nvar DescribeTaskDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeTaskDefinition\", {}).n(\"ECSClient\", \"DescribeTaskDefinitionCommand\").f(void 0, void 0).ser(se_DescribeTaskDefinitionCommand).de(de_DescribeTaskDefinitionCommand).build() {\n static {\n __name(this, \"DescribeTaskDefinitionCommand\");\n }\n};\n\n// src/commands/DescribeTasksCommand.ts\n\n\n\nvar DescribeTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeTasks\", {}).n(\"ECSClient\", \"DescribeTasksCommand\").f(void 0, void 0).ser(se_DescribeTasksCommand).de(de_DescribeTasksCommand).build() {\n static {\n __name(this, \"DescribeTasksCommand\");\n }\n};\n\n// src/commands/DescribeTaskSetsCommand.ts\n\n\n\nvar DescribeTaskSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeTaskSets\", {}).n(\"ECSClient\", \"DescribeTaskSetsCommand\").f(void 0, void 0).ser(se_DescribeTaskSetsCommand).de(de_DescribeTaskSetsCommand).build() {\n static {\n __name(this, \"DescribeTaskSetsCommand\");\n }\n};\n\n// src/commands/DiscoverPollEndpointCommand.ts\n\n\n\nvar DiscoverPollEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DiscoverPollEndpoint\", {}).n(\"ECSClient\", \"DiscoverPollEndpointCommand\").f(void 0, void 0).ser(se_DiscoverPollEndpointCommand).de(de_DiscoverPollEndpointCommand).build() {\n static {\n __name(this, \"DiscoverPollEndpointCommand\");\n }\n};\n\n// src/commands/ExecuteCommandCommand.ts\n\n\n\nvar ExecuteCommandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ExecuteCommand\", {}).n(\"ECSClient\", \"ExecuteCommandCommand\").f(void 0, ExecuteCommandResponseFilterSensitiveLog).ser(se_ExecuteCommandCommand).de(de_ExecuteCommandCommand).build() {\n static {\n __name(this, \"ExecuteCommandCommand\");\n }\n};\n\n// src/commands/GetTaskProtectionCommand.ts\n\n\n\nvar GetTaskProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"GetTaskProtection\", {}).n(\"ECSClient\", \"GetTaskProtectionCommand\").f(void 0, void 0).ser(se_GetTaskProtectionCommand).de(de_GetTaskProtectionCommand).build() {\n static {\n __name(this, \"GetTaskProtectionCommand\");\n }\n};\n\n// src/commands/ListAccountSettingsCommand.ts\n\n\n\nvar ListAccountSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListAccountSettings\", {}).n(\"ECSClient\", \"ListAccountSettingsCommand\").f(void 0, void 0).ser(se_ListAccountSettingsCommand).de(de_ListAccountSettingsCommand).build() {\n static {\n __name(this, \"ListAccountSettingsCommand\");\n }\n};\n\n// src/commands/ListAttributesCommand.ts\n\n\n\nvar ListAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListAttributes\", {}).n(\"ECSClient\", \"ListAttributesCommand\").f(void 0, void 0).ser(se_ListAttributesCommand).de(de_ListAttributesCommand).build() {\n static {\n __name(this, \"ListAttributesCommand\");\n }\n};\n\n// src/commands/ListClustersCommand.ts\n\n\n\nvar ListClustersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListClusters\", {}).n(\"ECSClient\", \"ListClustersCommand\").f(void 0, void 0).ser(se_ListClustersCommand).de(de_ListClustersCommand).build() {\n static {\n __name(this, \"ListClustersCommand\");\n }\n};\n\n// src/commands/ListContainerInstancesCommand.ts\n\n\n\nvar ListContainerInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListContainerInstances\", {}).n(\"ECSClient\", \"ListContainerInstancesCommand\").f(void 0, void 0).ser(se_ListContainerInstancesCommand).de(de_ListContainerInstancesCommand).build() {\n static {\n __name(this, \"ListContainerInstancesCommand\");\n }\n};\n\n// src/commands/ListServiceDeploymentsCommand.ts\n\n\n\nvar ListServiceDeploymentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListServiceDeployments\", {}).n(\"ECSClient\", \"ListServiceDeploymentsCommand\").f(void 0, void 0).ser(se_ListServiceDeploymentsCommand).de(de_ListServiceDeploymentsCommand).build() {\n static {\n __name(this, \"ListServiceDeploymentsCommand\");\n }\n};\n\n// src/commands/ListServicesByNamespaceCommand.ts\n\n\n\nvar ListServicesByNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListServicesByNamespace\", {}).n(\"ECSClient\", \"ListServicesByNamespaceCommand\").f(void 0, void 0).ser(se_ListServicesByNamespaceCommand).de(de_ListServicesByNamespaceCommand).build() {\n static {\n __name(this, \"ListServicesByNamespaceCommand\");\n }\n};\n\n// src/commands/ListServicesCommand.ts\n\n\n\nvar ListServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListServices\", {}).n(\"ECSClient\", \"ListServicesCommand\").f(void 0, void 0).ser(se_ListServicesCommand).de(de_ListServicesCommand).build() {\n static {\n __name(this, \"ListServicesCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTagsForResource\", {}).n(\"ECSClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTaskDefinitionFamiliesCommand.ts\n\n\n\nvar ListTaskDefinitionFamiliesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTaskDefinitionFamilies\", {}).n(\"ECSClient\", \"ListTaskDefinitionFamiliesCommand\").f(void 0, void 0).ser(se_ListTaskDefinitionFamiliesCommand).de(de_ListTaskDefinitionFamiliesCommand).build() {\n static {\n __name(this, \"ListTaskDefinitionFamiliesCommand\");\n }\n};\n\n// src/commands/ListTaskDefinitionsCommand.ts\n\n\n\nvar ListTaskDefinitionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTaskDefinitions\", {}).n(\"ECSClient\", \"ListTaskDefinitionsCommand\").f(void 0, void 0).ser(se_ListTaskDefinitionsCommand).de(de_ListTaskDefinitionsCommand).build() {\n static {\n __name(this, \"ListTaskDefinitionsCommand\");\n }\n};\n\n// src/commands/ListTasksCommand.ts\n\n\n\nvar ListTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTasks\", {}).n(\"ECSClient\", \"ListTasksCommand\").f(void 0, void 0).ser(se_ListTasksCommand).de(de_ListTasksCommand).build() {\n static {\n __name(this, \"ListTasksCommand\");\n }\n};\n\n// src/commands/PutAccountSettingCommand.ts\n\n\n\nvar PutAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutAccountSetting\", {}).n(\"ECSClient\", \"PutAccountSettingCommand\").f(void 0, void 0).ser(se_PutAccountSettingCommand).de(de_PutAccountSettingCommand).build() {\n static {\n __name(this, \"PutAccountSettingCommand\");\n }\n};\n\n// src/commands/PutAccountSettingDefaultCommand.ts\n\n\n\nvar PutAccountSettingDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutAccountSettingDefault\", {}).n(\"ECSClient\", \"PutAccountSettingDefaultCommand\").f(void 0, void 0).ser(se_PutAccountSettingDefaultCommand).de(de_PutAccountSettingDefaultCommand).build() {\n static {\n __name(this, \"PutAccountSettingDefaultCommand\");\n }\n};\n\n// src/commands/PutAttributesCommand.ts\n\n\n\nvar PutAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutAttributes\", {}).n(\"ECSClient\", \"PutAttributesCommand\").f(void 0, void 0).ser(se_PutAttributesCommand).de(de_PutAttributesCommand).build() {\n static {\n __name(this, \"PutAttributesCommand\");\n }\n};\n\n// src/commands/PutClusterCapacityProvidersCommand.ts\n\n\n\nvar PutClusterCapacityProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutClusterCapacityProviders\", {}).n(\"ECSClient\", \"PutClusterCapacityProvidersCommand\").f(void 0, void 0).ser(se_PutClusterCapacityProvidersCommand).de(de_PutClusterCapacityProvidersCommand).build() {\n static {\n __name(this, \"PutClusterCapacityProvidersCommand\");\n }\n};\n\n// src/commands/RegisterContainerInstanceCommand.ts\n\n\n\nvar RegisterContainerInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"RegisterContainerInstance\", {}).n(\"ECSClient\", \"RegisterContainerInstanceCommand\").f(void 0, void 0).ser(se_RegisterContainerInstanceCommand).de(de_RegisterContainerInstanceCommand).build() {\n static {\n __name(this, \"RegisterContainerInstanceCommand\");\n }\n};\n\n// src/commands/RegisterTaskDefinitionCommand.ts\n\n\n\nvar RegisterTaskDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"RegisterTaskDefinition\", {}).n(\"ECSClient\", \"RegisterTaskDefinitionCommand\").f(void 0, void 0).ser(se_RegisterTaskDefinitionCommand).de(de_RegisterTaskDefinitionCommand).build() {\n static {\n __name(this, \"RegisterTaskDefinitionCommand\");\n }\n};\n\n// src/commands/RunTaskCommand.ts\n\n\n\nvar RunTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"RunTask\", {}).n(\"ECSClient\", \"RunTaskCommand\").f(void 0, void 0).ser(se_RunTaskCommand).de(de_RunTaskCommand).build() {\n static {\n __name(this, \"RunTaskCommand\");\n }\n};\n\n// src/commands/StartTaskCommand.ts\n\n\n\nvar StartTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"StartTask\", {}).n(\"ECSClient\", \"StartTaskCommand\").f(void 0, void 0).ser(se_StartTaskCommand).de(de_StartTaskCommand).build() {\n static {\n __name(this, \"StartTaskCommand\");\n }\n};\n\n// src/commands/StopServiceDeploymentCommand.ts\n\n\n\nvar StopServiceDeploymentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"StopServiceDeployment\", {}).n(\"ECSClient\", \"StopServiceDeploymentCommand\").f(void 0, void 0).ser(se_StopServiceDeploymentCommand).de(de_StopServiceDeploymentCommand).build() {\n static {\n __name(this, \"StopServiceDeploymentCommand\");\n }\n};\n\n// src/commands/StopTaskCommand.ts\n\n\n\nvar StopTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"StopTask\", {}).n(\"ECSClient\", \"StopTaskCommand\").f(void 0, void 0).ser(se_StopTaskCommand).de(de_StopTaskCommand).build() {\n static {\n __name(this, \"StopTaskCommand\");\n }\n};\n\n// src/commands/SubmitAttachmentStateChangesCommand.ts\n\n\n\nvar SubmitAttachmentStateChangesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"SubmitAttachmentStateChanges\", {}).n(\"ECSClient\", \"SubmitAttachmentStateChangesCommand\").f(void 0, void 0).ser(se_SubmitAttachmentStateChangesCommand).de(de_SubmitAttachmentStateChangesCommand).build() {\n static {\n __name(this, \"SubmitAttachmentStateChangesCommand\");\n }\n};\n\n// src/commands/SubmitContainerStateChangeCommand.ts\n\n\n\nvar SubmitContainerStateChangeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"SubmitContainerStateChange\", {}).n(\"ECSClient\", \"SubmitContainerStateChangeCommand\").f(void 0, void 0).ser(se_SubmitContainerStateChangeCommand).de(de_SubmitContainerStateChangeCommand).build() {\n static {\n __name(this, \"SubmitContainerStateChangeCommand\");\n }\n};\n\n// src/commands/SubmitTaskStateChangeCommand.ts\n\n\n\nvar SubmitTaskStateChangeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"SubmitTaskStateChange\", {}).n(\"ECSClient\", \"SubmitTaskStateChangeCommand\").f(void 0, void 0).ser(se_SubmitTaskStateChangeCommand).de(de_SubmitTaskStateChangeCommand).build() {\n static {\n __name(this, \"SubmitTaskStateChangeCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"TagResource\", {}).n(\"ECSClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UntagResource\", {}).n(\"ECSClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateCapacityProviderCommand.ts\n\n\n\nvar UpdateCapacityProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateCapacityProvider\", {}).n(\"ECSClient\", \"UpdateCapacityProviderCommand\").f(void 0, void 0).ser(se_UpdateCapacityProviderCommand).de(de_UpdateCapacityProviderCommand).build() {\n static {\n __name(this, \"UpdateCapacityProviderCommand\");\n }\n};\n\n// src/commands/UpdateClusterCommand.ts\n\n\n\nvar UpdateClusterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateCluster\", {}).n(\"ECSClient\", \"UpdateClusterCommand\").f(void 0, void 0).ser(se_UpdateClusterCommand).de(de_UpdateClusterCommand).build() {\n static {\n __name(this, \"UpdateClusterCommand\");\n }\n};\n\n// src/commands/UpdateClusterSettingsCommand.ts\n\n\n\nvar UpdateClusterSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateClusterSettings\", {}).n(\"ECSClient\", \"UpdateClusterSettingsCommand\").f(void 0, void 0).ser(se_UpdateClusterSettingsCommand).de(de_UpdateClusterSettingsCommand).build() {\n static {\n __name(this, \"UpdateClusterSettingsCommand\");\n }\n};\n\n// src/commands/UpdateContainerAgentCommand.ts\n\n\n\nvar UpdateContainerAgentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateContainerAgent\", {}).n(\"ECSClient\", \"UpdateContainerAgentCommand\").f(void 0, void 0).ser(se_UpdateContainerAgentCommand).de(de_UpdateContainerAgentCommand).build() {\n static {\n __name(this, \"UpdateContainerAgentCommand\");\n }\n};\n\n// src/commands/UpdateContainerInstancesStateCommand.ts\n\n\n\nvar UpdateContainerInstancesStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateContainerInstancesState\", {}).n(\"ECSClient\", \"UpdateContainerInstancesStateCommand\").f(void 0, void 0).ser(se_UpdateContainerInstancesStateCommand).de(de_UpdateContainerInstancesStateCommand).build() {\n static {\n __name(this, \"UpdateContainerInstancesStateCommand\");\n }\n};\n\n// src/commands/UpdateServiceCommand.ts\n\n\n\nvar UpdateServiceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateService\", {}).n(\"ECSClient\", \"UpdateServiceCommand\").f(void 0, void 0).ser(se_UpdateServiceCommand).de(de_UpdateServiceCommand).build() {\n static {\n __name(this, \"UpdateServiceCommand\");\n }\n};\n\n// src/commands/UpdateServicePrimaryTaskSetCommand.ts\n\n\n\nvar UpdateServicePrimaryTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateServicePrimaryTaskSet\", {}).n(\"ECSClient\", \"UpdateServicePrimaryTaskSetCommand\").f(void 0, void 0).ser(se_UpdateServicePrimaryTaskSetCommand).de(de_UpdateServicePrimaryTaskSetCommand).build() {\n static {\n __name(this, \"UpdateServicePrimaryTaskSetCommand\");\n }\n};\n\n// src/commands/UpdateTaskProtectionCommand.ts\n\n\n\nvar UpdateTaskProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateTaskProtection\", {}).n(\"ECSClient\", \"UpdateTaskProtectionCommand\").f(void 0, void 0).ser(se_UpdateTaskProtectionCommand).de(de_UpdateTaskProtectionCommand).build() {\n static {\n __name(this, \"UpdateTaskProtectionCommand\");\n }\n};\n\n// src/commands/UpdateTaskSetCommand.ts\n\n\n\nvar UpdateTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateTaskSet\", {}).n(\"ECSClient\", \"UpdateTaskSetCommand\").f(void 0, void 0).ser(se_UpdateTaskSetCommand).de(de_UpdateTaskSetCommand).build() {\n static {\n __name(this, \"UpdateTaskSetCommand\");\n }\n};\n\n// src/ECS.ts\nvar commands = {\n CreateCapacityProviderCommand,\n CreateClusterCommand,\n CreateServiceCommand,\n CreateTaskSetCommand,\n DeleteAccountSettingCommand,\n DeleteAttributesCommand,\n DeleteCapacityProviderCommand,\n DeleteClusterCommand,\n DeleteServiceCommand,\n DeleteTaskDefinitionsCommand,\n DeleteTaskSetCommand,\n DeregisterContainerInstanceCommand,\n DeregisterTaskDefinitionCommand,\n DescribeCapacityProvidersCommand,\n DescribeClustersCommand,\n DescribeContainerInstancesCommand,\n DescribeServiceDeploymentsCommand,\n DescribeServiceRevisionsCommand,\n DescribeServicesCommand,\n DescribeTaskDefinitionCommand,\n DescribeTasksCommand,\n DescribeTaskSetsCommand,\n DiscoverPollEndpointCommand,\n ExecuteCommandCommand,\n GetTaskProtectionCommand,\n ListAccountSettingsCommand,\n ListAttributesCommand,\n ListClustersCommand,\n ListContainerInstancesCommand,\n ListServiceDeploymentsCommand,\n ListServicesCommand,\n ListServicesByNamespaceCommand,\n ListTagsForResourceCommand,\n ListTaskDefinitionFamiliesCommand,\n ListTaskDefinitionsCommand,\n ListTasksCommand,\n PutAccountSettingCommand,\n PutAccountSettingDefaultCommand,\n PutAttributesCommand,\n PutClusterCapacityProvidersCommand,\n RegisterContainerInstanceCommand,\n RegisterTaskDefinitionCommand,\n RunTaskCommand,\n StartTaskCommand,\n StopServiceDeploymentCommand,\n StopTaskCommand,\n SubmitAttachmentStateChangesCommand,\n SubmitContainerStateChangeCommand,\n SubmitTaskStateChangeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateCapacityProviderCommand,\n UpdateClusterCommand,\n UpdateClusterSettingsCommand,\n UpdateContainerAgentCommand,\n UpdateContainerInstancesStateCommand,\n UpdateServiceCommand,\n UpdateServicePrimaryTaskSetCommand,\n UpdateTaskProtectionCommand,\n UpdateTaskSetCommand\n};\nvar ECS = class extends ECSClient {\n static {\n __name(this, \"ECS\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, ECS);\n\n// src/pagination/ListAccountSettingsPaginator.ts\n\nvar paginateListAccountSettings = (0, import_core.createPaginator)(ECSClient, ListAccountSettingsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAttributesPaginator.ts\n\nvar paginateListAttributes = (0, import_core.createPaginator)(ECSClient, ListAttributesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListClustersPaginator.ts\n\nvar paginateListClusters = (0, import_core.createPaginator)(ECSClient, ListClustersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListContainerInstancesPaginator.ts\n\nvar paginateListContainerInstances = (0, import_core.createPaginator)(ECSClient, ListContainerInstancesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListServicesByNamespacePaginator.ts\n\nvar paginateListServicesByNamespace = (0, import_core.createPaginator)(ECSClient, ListServicesByNamespaceCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListServicesPaginator.ts\n\nvar paginateListServices = (0, import_core.createPaginator)(ECSClient, ListServicesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTaskDefinitionFamiliesPaginator.ts\n\nvar paginateListTaskDefinitionFamilies = (0, import_core.createPaginator)(ECSClient, ListTaskDefinitionFamiliesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTaskDefinitionsPaginator.ts\n\nvar paginateListTaskDefinitions = (0, import_core.createPaginator)(ECSClient, ListTaskDefinitionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTasksPaginator.ts\n\nvar paginateListTasks = (0, import_core.createPaginator)(ECSClient, ListTasksCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/waiters/waitForServicesInactive.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeServicesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.failures);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.reason;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"MISSING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.services);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"INACTIVE\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForServicesInactive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForServicesInactive\");\nvar waitUntilServicesInactive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilServicesInactive\");\n\n// src/waiters/waitForServicesStable.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeServicesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.failures);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.reason;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"MISSING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.services);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DRAINING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.services);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"INACTIVE\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const filterRes_2 = result.services.filter((element_1) => {\n return !(element_1.deployments.length == 1 && element_1.runningCount == element_1.desiredCount);\n });\n return filterRes_2.length == 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForServicesStable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForServicesStable\");\nvar waitUntilServicesStable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilServicesStable\");\n\n// src/waiters/waitForTasksRunning.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.tasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.lastStatus;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"STOPPED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.failures);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.reason;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"MISSING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.tasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.lastStatus;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"RUNNING\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTasksRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForTasksRunning\");\nvar waitUntilTasksRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTasksRunning\");\n\n// src/waiters/waitForTasksStopped.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.tasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.lastStatus;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"STOPPED\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTasksStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForTasksStopped\");\nvar waitUntilTasksStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTasksStopped\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ECSServiceException,\n __Client,\n ECSClient,\n ECS,\n $Command,\n CreateCapacityProviderCommand,\n CreateClusterCommand,\n CreateServiceCommand,\n CreateTaskSetCommand,\n DeleteAccountSettingCommand,\n DeleteAttributesCommand,\n DeleteCapacityProviderCommand,\n DeleteClusterCommand,\n DeleteServiceCommand,\n DeleteTaskDefinitionsCommand,\n DeleteTaskSetCommand,\n DeregisterContainerInstanceCommand,\n DeregisterTaskDefinitionCommand,\n DescribeCapacityProvidersCommand,\n DescribeClustersCommand,\n DescribeContainerInstancesCommand,\n DescribeServiceDeploymentsCommand,\n DescribeServiceRevisionsCommand,\n DescribeServicesCommand,\n DescribeTaskDefinitionCommand,\n DescribeTaskSetsCommand,\n DescribeTasksCommand,\n DiscoverPollEndpointCommand,\n ExecuteCommandCommand,\n GetTaskProtectionCommand,\n ListAccountSettingsCommand,\n ListAttributesCommand,\n ListClustersCommand,\n ListContainerInstancesCommand,\n ListServiceDeploymentsCommand,\n ListServicesByNamespaceCommand,\n ListServicesCommand,\n ListTagsForResourceCommand,\n ListTaskDefinitionFamiliesCommand,\n ListTaskDefinitionsCommand,\n ListTasksCommand,\n PutAccountSettingCommand,\n PutAccountSettingDefaultCommand,\n PutAttributesCommand,\n PutClusterCapacityProvidersCommand,\n RegisterContainerInstanceCommand,\n RegisterTaskDefinitionCommand,\n RunTaskCommand,\n StartTaskCommand,\n StopServiceDeploymentCommand,\n StopTaskCommand,\n SubmitAttachmentStateChangesCommand,\n SubmitContainerStateChangeCommand,\n SubmitTaskStateChangeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateCapacityProviderCommand,\n UpdateClusterCommand,\n UpdateClusterSettingsCommand,\n UpdateContainerAgentCommand,\n UpdateContainerInstancesStateCommand,\n UpdateServiceCommand,\n UpdateServicePrimaryTaskSetCommand,\n UpdateTaskProtectionCommand,\n UpdateTaskSetCommand,\n paginateListAccountSettings,\n paginateListAttributes,\n paginateListClusters,\n paginateListContainerInstances,\n paginateListServicesByNamespace,\n paginateListServices,\n paginateListTaskDefinitionFamilies,\n paginateListTaskDefinitions,\n paginateListTasks,\n waitForServicesInactive,\n waitUntilServicesInactive,\n waitForServicesStable,\n waitUntilServicesStable,\n waitForTasksRunning,\n waitUntilTasksRunning,\n waitForTasksStopped,\n waitUntilTasksStopped,\n AccessDeniedException,\n AgentUpdateStatus,\n ClientException,\n ManagedDraining,\n ManagedScalingStatus,\n ManagedTerminationProtection,\n CapacityProviderStatus,\n CapacityProviderUpdateStatus,\n InvalidParameterException,\n LimitExceededException,\n ServerException,\n UpdateInProgressException,\n ExecuteCommandLogging,\n ClusterSettingName,\n NamespaceNotFoundException,\n ClusterNotFoundException,\n AvailabilityZoneRebalancing,\n DeploymentControllerType,\n LaunchType,\n AssignPublicIp,\n PlacementConstraintType,\n PlacementStrategyType,\n PropagateTags,\n SchedulingStrategy,\n LogDriver,\n TaskFilesystemType,\n EBSResourceType,\n DeploymentRolloutState,\n ScaleUnit,\n StabilityStatus,\n PlatformTaskDefinitionIncompatibilityException,\n PlatformUnknownException,\n UnsupportedFeatureException,\n ServiceNotActiveException,\n ServiceNotFoundException,\n SettingName,\n SettingType,\n TargetType,\n TargetNotFoundException,\n ClusterContainsContainerInstancesException,\n ClusterContainsServicesException,\n ClusterContainsTasksException,\n Compatibility,\n ContainerCondition,\n EnvironmentFileType,\n FirelensConfigurationType,\n DeviceCgroupPermission,\n ApplicationProtocol,\n TransportProtocol,\n ResourceType,\n UlimitName,\n VersionConsistency,\n IpcMode,\n NetworkMode,\n PidMode,\n TaskDefinitionPlacementConstraintType,\n ProxyConfigurationType,\n CPUArchitecture,\n OSFamily,\n TaskDefinitionStatus,\n Scope,\n EFSAuthorizationConfigIAM,\n EFSTransitEncryption,\n TaskSetNotFoundException,\n InstanceHealthCheckState,\n InstanceHealthCheckType,\n CapacityProviderField,\n ClusterField,\n ContainerInstanceField,\n ServiceDeploymentRollbackMonitorsStatus,\n ServiceDeploymentStatus,\n ServiceField,\n TaskDefinitionField,\n TaskField,\n Connectivity,\n HealthStatus,\n ManagedAgentName,\n TaskStopCode,\n TaskSetField,\n TargetNotConnectedException,\n ResourceNotFoundException,\n ContainerInstanceStatus,\n TaskDefinitionFamilyStatus,\n SortOrder,\n DesiredStatus,\n AttributeLimitExceededException,\n ResourceInUseException,\n PlatformDeviceType,\n BlockedException,\n ConflictException,\n ServiceDeploymentNotFoundException,\n StopServiceDeploymentStopType,\n SessionFilterSensitiveLog,\n ExecuteCommandResponseFilterSensitiveLog,\n MissingVersionException,\n NoUpdateAvailableException\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-11-13\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultECSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"ECS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultElasticLoadBalancingV2HttpAuthSchemeProvider = exports.defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider = defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"elasticloadbalancing\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultElasticLoadBalancingV2HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultElasticLoadBalancingV2HttpAuthSchemeProvider = defaultElasticLoadBalancingV2HttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://elasticloadbalancing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://elasticloadbalancing.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://elasticloadbalancing-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://elasticloadbalancing.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://elasticloadbalancing.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ALPNPolicyNotSupportedException: () => ALPNPolicyNotSupportedException,\n ActionTypeEnum: () => ActionTypeEnum,\n AddListenerCertificatesCommand: () => AddListenerCertificatesCommand,\n AddTagsCommand: () => AddTagsCommand,\n AddTrustStoreRevocationsCommand: () => AddTrustStoreRevocationsCommand,\n AdvertiseTrustStoreCaNamesEnum: () => AdvertiseTrustStoreCaNamesEnum,\n AllocationIdNotFoundException: () => AllocationIdNotFoundException,\n AnomalyResultEnum: () => AnomalyResultEnum,\n AuthenticateCognitoActionConditionalBehaviorEnum: () => AuthenticateCognitoActionConditionalBehaviorEnum,\n AuthenticateOidcActionConditionalBehaviorEnum: () => AuthenticateOidcActionConditionalBehaviorEnum,\n AvailabilityZoneNotSupportedException: () => AvailabilityZoneNotSupportedException,\n CaCertificatesBundleNotFoundException: () => CaCertificatesBundleNotFoundException,\n CapacityDecreaseRequestsLimitExceededException: () => CapacityDecreaseRequestsLimitExceededException,\n CapacityReservationPendingException: () => CapacityReservationPendingException,\n CapacityReservationStateEnum: () => CapacityReservationStateEnum,\n CapacityUnitsLimitExceededException: () => CapacityUnitsLimitExceededException,\n CertificateNotFoundException: () => CertificateNotFoundException,\n CreateListenerCommand: () => CreateListenerCommand,\n CreateLoadBalancerCommand: () => CreateLoadBalancerCommand,\n CreateRuleCommand: () => CreateRuleCommand,\n CreateTargetGroupCommand: () => CreateTargetGroupCommand,\n CreateTrustStoreCommand: () => CreateTrustStoreCommand,\n DeleteAssociationSameAccountException: () => DeleteAssociationSameAccountException,\n DeleteListenerCommand: () => DeleteListenerCommand,\n DeleteLoadBalancerCommand: () => DeleteLoadBalancerCommand,\n DeleteRuleCommand: () => DeleteRuleCommand,\n DeleteSharedTrustStoreAssociationCommand: () => DeleteSharedTrustStoreAssociationCommand,\n DeleteTargetGroupCommand: () => DeleteTargetGroupCommand,\n DeleteTrustStoreCommand: () => DeleteTrustStoreCommand,\n DeregisterTargetsCommand: () => DeregisterTargetsCommand,\n DescribeAccountLimitsCommand: () => DescribeAccountLimitsCommand,\n DescribeCapacityReservationCommand: () => DescribeCapacityReservationCommand,\n DescribeListenerAttributesCommand: () => DescribeListenerAttributesCommand,\n DescribeListenerCertificatesCommand: () => DescribeListenerCertificatesCommand,\n DescribeListenersCommand: () => DescribeListenersCommand,\n DescribeLoadBalancerAttributesCommand: () => DescribeLoadBalancerAttributesCommand,\n DescribeLoadBalancersCommand: () => DescribeLoadBalancersCommand,\n DescribeRulesCommand: () => DescribeRulesCommand,\n DescribeSSLPoliciesCommand: () => DescribeSSLPoliciesCommand,\n DescribeTagsCommand: () => DescribeTagsCommand,\n DescribeTargetGroupAttributesCommand: () => DescribeTargetGroupAttributesCommand,\n DescribeTargetGroupsCommand: () => DescribeTargetGroupsCommand,\n DescribeTargetHealthCommand: () => DescribeTargetHealthCommand,\n DescribeTargetHealthInputIncludeEnum: () => DescribeTargetHealthInputIncludeEnum,\n DescribeTrustStoreAssociationsCommand: () => DescribeTrustStoreAssociationsCommand,\n DescribeTrustStoreRevocationsCommand: () => DescribeTrustStoreRevocationsCommand,\n DescribeTrustStoresCommand: () => DescribeTrustStoresCommand,\n DuplicateListenerException: () => DuplicateListenerException,\n DuplicateLoadBalancerNameException: () => DuplicateLoadBalancerNameException,\n DuplicateTagKeysException: () => DuplicateTagKeysException,\n DuplicateTargetGroupNameException: () => DuplicateTargetGroupNameException,\n DuplicateTrustStoreNameException: () => DuplicateTrustStoreNameException,\n ElasticLoadBalancingV2: () => ElasticLoadBalancingV2,\n ElasticLoadBalancingV2Client: () => ElasticLoadBalancingV2Client,\n ElasticLoadBalancingV2ServiceException: () => ElasticLoadBalancingV2ServiceException,\n EnablePrefixForIpv6SourceNatEnum: () => EnablePrefixForIpv6SourceNatEnum,\n EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum: () => EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum,\n GetResourcePolicyCommand: () => GetResourcePolicyCommand,\n GetTrustStoreCaCertificatesBundleCommand: () => GetTrustStoreCaCertificatesBundleCommand,\n GetTrustStoreRevocationContentCommand: () => GetTrustStoreRevocationContentCommand,\n HealthUnavailableException: () => HealthUnavailableException,\n IncompatibleProtocolsException: () => IncompatibleProtocolsException,\n InsufficientCapacityException: () => InsufficientCapacityException,\n InvalidCaCertificatesBundleException: () => InvalidCaCertificatesBundleException,\n InvalidConfigurationRequestException: () => InvalidConfigurationRequestException,\n InvalidLoadBalancerActionException: () => InvalidLoadBalancerActionException,\n InvalidRevocationContentException: () => InvalidRevocationContentException,\n InvalidSchemeException: () => InvalidSchemeException,\n InvalidSecurityGroupException: () => InvalidSecurityGroupException,\n InvalidSubnetException: () => InvalidSubnetException,\n InvalidTargetException: () => InvalidTargetException,\n IpAddressType: () => IpAddressType,\n ListenerNotFoundException: () => ListenerNotFoundException,\n LoadBalancerNotFoundException: () => LoadBalancerNotFoundException,\n LoadBalancerSchemeEnum: () => LoadBalancerSchemeEnum,\n LoadBalancerStateEnum: () => LoadBalancerStateEnum,\n LoadBalancerTypeEnum: () => LoadBalancerTypeEnum,\n MitigationInEffectEnum: () => MitigationInEffectEnum,\n ModifyCapacityReservationCommand: () => ModifyCapacityReservationCommand,\n ModifyIpPoolsCommand: () => ModifyIpPoolsCommand,\n ModifyListenerAttributesCommand: () => ModifyListenerAttributesCommand,\n ModifyListenerCommand: () => ModifyListenerCommand,\n ModifyLoadBalancerAttributesCommand: () => ModifyLoadBalancerAttributesCommand,\n ModifyRuleCommand: () => ModifyRuleCommand,\n ModifyTargetGroupAttributesCommand: () => ModifyTargetGroupAttributesCommand,\n ModifyTargetGroupCommand: () => ModifyTargetGroupCommand,\n ModifyTrustStoreCommand: () => ModifyTrustStoreCommand,\n OperationNotPermittedException: () => OperationNotPermittedException,\n PriorRequestNotCompleteException: () => PriorRequestNotCompleteException,\n PriorityInUseException: () => PriorityInUseException,\n ProtocolEnum: () => ProtocolEnum,\n RedirectActionStatusCodeEnum: () => RedirectActionStatusCodeEnum,\n RegisterTargetsCommand: () => RegisterTargetsCommand,\n RemoveIpamPoolEnum: () => RemoveIpamPoolEnum,\n RemoveListenerCertificatesCommand: () => RemoveListenerCertificatesCommand,\n RemoveTagsCommand: () => RemoveTagsCommand,\n RemoveTrustStoreRevocationsCommand: () => RemoveTrustStoreRevocationsCommand,\n ResourceInUseException: () => ResourceInUseException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RevocationContentNotFoundException: () => RevocationContentNotFoundException,\n RevocationIdNotFoundException: () => RevocationIdNotFoundException,\n RevocationType: () => RevocationType,\n RuleNotFoundException: () => RuleNotFoundException,\n SSLPolicyNotFoundException: () => SSLPolicyNotFoundException,\n SetIpAddressTypeCommand: () => SetIpAddressTypeCommand,\n SetRulePrioritiesCommand: () => SetRulePrioritiesCommand,\n SetSecurityGroupsCommand: () => SetSecurityGroupsCommand,\n SetSubnetsCommand: () => SetSubnetsCommand,\n SubnetNotFoundException: () => SubnetNotFoundException,\n TargetAdministrativeOverrideReasonEnum: () => TargetAdministrativeOverrideReasonEnum,\n TargetAdministrativeOverrideStateEnum: () => TargetAdministrativeOverrideStateEnum,\n TargetGroupAssociationLimitException: () => TargetGroupAssociationLimitException,\n TargetGroupIpAddressTypeEnum: () => TargetGroupIpAddressTypeEnum,\n TargetGroupNotFoundException: () => TargetGroupNotFoundException,\n TargetHealthReasonEnum: () => TargetHealthReasonEnum,\n TargetHealthStateEnum: () => TargetHealthStateEnum,\n TargetTypeEnum: () => TargetTypeEnum,\n TooManyActionsException: () => TooManyActionsException,\n TooManyCertificatesException: () => TooManyCertificatesException,\n TooManyListenersException: () => TooManyListenersException,\n TooManyLoadBalancersException: () => TooManyLoadBalancersException,\n TooManyRegistrationsForTargetIdException: () => TooManyRegistrationsForTargetIdException,\n TooManyRulesException: () => TooManyRulesException,\n TooManyTagsException: () => TooManyTagsException,\n TooManyTargetGroupsException: () => TooManyTargetGroupsException,\n TooManyTargetsException: () => TooManyTargetsException,\n TooManyTrustStoreRevocationEntriesException: () => TooManyTrustStoreRevocationEntriesException,\n TooManyTrustStoresException: () => TooManyTrustStoresException,\n TooManyUniqueTargetGroupsPerLoadBalancerException: () => TooManyUniqueTargetGroupsPerLoadBalancerException,\n TrustStoreAssociationNotFoundException: () => TrustStoreAssociationNotFoundException,\n TrustStoreAssociationStatusEnum: () => TrustStoreAssociationStatusEnum,\n TrustStoreInUseException: () => TrustStoreInUseException,\n TrustStoreNotFoundException: () => TrustStoreNotFoundException,\n TrustStoreNotReadyException: () => TrustStoreNotReadyException,\n TrustStoreStatus: () => TrustStoreStatus,\n UnsupportedProtocolException: () => UnsupportedProtocolException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeListenerCertificates: () => paginateDescribeListenerCertificates,\n paginateDescribeListeners: () => paginateDescribeListeners,\n paginateDescribeLoadBalancers: () => paginateDescribeLoadBalancers,\n paginateDescribeRules: () => paginateDescribeRules,\n paginateDescribeTargetGroups: () => paginateDescribeTargetGroups,\n paginateDescribeTrustStoreAssociations: () => paginateDescribeTrustStoreAssociations,\n paginateDescribeTrustStoreRevocations: () => paginateDescribeTrustStoreRevocations,\n paginateDescribeTrustStores: () => paginateDescribeTrustStores,\n waitForLoadBalancerAvailable: () => waitForLoadBalancerAvailable,\n waitForLoadBalancerExists: () => waitForLoadBalancerExists,\n waitForLoadBalancersDeleted: () => waitForLoadBalancersDeleted,\n waitForTargetDeregistered: () => waitForTargetDeregistered,\n waitForTargetInService: () => waitForTargetInService,\n waitUntilLoadBalancerAvailable: () => waitUntilLoadBalancerAvailable,\n waitUntilLoadBalancerExists: () => waitUntilLoadBalancerExists,\n waitUntilLoadBalancersDeleted: () => waitUntilLoadBalancersDeleted,\n waitUntilTargetDeregistered: () => waitUntilTargetDeregistered,\n waitUntilTargetInService: () => waitUntilTargetInService\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/ElasticLoadBalancingV2Client.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"elasticloadbalancing\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/ElasticLoadBalancingV2Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/ElasticLoadBalancingV2Client.ts\nvar ElasticLoadBalancingV2Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"ElasticLoadBalancingV2Client\");\n }\n /**\n * The resolved configuration of ElasticLoadBalancingV2Client class. This is resolved and normalized from the {@link ElasticLoadBalancingV2ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/ElasticLoadBalancingV2.ts\n\n\n// src/commands/AddListenerCertificatesCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_query.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/ElasticLoadBalancingV2ServiceException.ts\n\nvar ElasticLoadBalancingV2ServiceException = class _ElasticLoadBalancingV2ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"ElasticLoadBalancingV2ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _ElasticLoadBalancingV2ServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AuthenticateCognitoActionConditionalBehaviorEnum = {\n ALLOW: \"allow\",\n AUTHENTICATE: \"authenticate\",\n DENY: \"deny\"\n};\nvar AuthenticateOidcActionConditionalBehaviorEnum = {\n ALLOW: \"allow\",\n AUTHENTICATE: \"authenticate\",\n DENY: \"deny\"\n};\nvar RedirectActionStatusCodeEnum = {\n HTTP_301: \"HTTP_301\",\n HTTP_302: \"HTTP_302\"\n};\nvar ActionTypeEnum = {\n AUTHENTICATE_COGNITO: \"authenticate-cognito\",\n AUTHENTICATE_OIDC: \"authenticate-oidc\",\n FIXED_RESPONSE: \"fixed-response\",\n FORWARD: \"forward\",\n REDIRECT: \"redirect\"\n};\nvar CertificateNotFoundException = class _CertificateNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CertificateNotFoundException\");\n }\n name = \"CertificateNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CertificateNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CertificateNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ListenerNotFoundException = class _ListenerNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ListenerNotFoundException\");\n }\n name = \"ListenerNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ListenerNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ListenerNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyCertificatesException = class _TooManyCertificatesException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyCertificatesException\");\n }\n name = \"TooManyCertificatesException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyCertificatesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyCertificatesException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DuplicateTagKeysException = class _DuplicateTagKeysException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateTagKeysException\");\n }\n name = \"DuplicateTagKeysException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateTagKeysException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateTagKeysException.prototype);\n this.Message = opts.Message;\n }\n};\nvar LoadBalancerNotFoundException = class _LoadBalancerNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"LoadBalancerNotFoundException\");\n }\n name = \"LoadBalancerNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LoadBalancerNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LoadBalancerNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RuleNotFoundException = class _RuleNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"RuleNotFoundException\");\n }\n name = \"RuleNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RuleNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RuleNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetGroupNotFoundException = class _TargetGroupNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TargetGroupNotFoundException\");\n }\n name = \"TargetGroupNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetGroupNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetGroupNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTagsException = class _TooManyTagsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTagsException\");\n }\n name = \"TooManyTagsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreNotFoundException = class _TrustStoreNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreNotFoundException\");\n }\n name = \"TrustStoreNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RevocationType = {\n CRL: \"CRL\"\n};\nvar InvalidRevocationContentException = class _InvalidRevocationContentException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidRevocationContentException\");\n }\n name = \"InvalidRevocationContentException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRevocationContentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRevocationContentException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RevocationContentNotFoundException = class _RevocationContentNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"RevocationContentNotFoundException\");\n }\n name = \"RevocationContentNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RevocationContentNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RevocationContentNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTrustStoreRevocationEntriesException = class _TooManyTrustStoreRevocationEntriesException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTrustStoreRevocationEntriesException\");\n }\n name = \"TooManyTrustStoreRevocationEntriesException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrustStoreRevocationEntriesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrustStoreRevocationEntriesException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetAdministrativeOverrideReasonEnum = {\n INTERNAL_ERROR: \"AdministrativeOverride.Unknown\",\n NO_OVERRIDE_ENGAGED: \"AdministrativeOverride.NoOverride\",\n ZONAL_SHIFT_DELEGATED_TO_DNS: \"AdministrativeOverride.ZonalShiftDelegatedToDns\",\n ZONAL_SHIFT_ENGAGED: \"AdministrativeOverride.ZonalShiftActive\"\n};\nvar TargetAdministrativeOverrideStateEnum = {\n NO_OVERRIDE: \"no_override\",\n UNKNOWN: \"unknown\",\n ZONAL_SHIFT_ACTIVE: \"zonal_shift_active\",\n ZONAL_SHIFT_DELEGATED_TO_DNS: \"zonal_shift_delegated_to_dns\"\n};\nvar AdvertiseTrustStoreCaNamesEnum = {\n off: \"off\",\n on: \"on\"\n};\nvar AllocationIdNotFoundException = class _AllocationIdNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"AllocationIdNotFoundException\");\n }\n name = \"AllocationIdNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AllocationIdNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AllocationIdNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ALPNPolicyNotSupportedException = class _ALPNPolicyNotSupportedException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ALPNPolicyNotSupportedException\");\n }\n name = \"ALPNPolicyNotSupportedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ALPNPolicyNotSupportedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ALPNPolicyNotSupportedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar MitigationInEffectEnum = {\n NO: \"no\",\n YES: \"yes\"\n};\nvar AnomalyResultEnum = {\n ANOMALOUS: \"anomalous\",\n NORMAL: \"normal\"\n};\nvar AvailabilityZoneNotSupportedException = class _AvailabilityZoneNotSupportedException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"AvailabilityZoneNotSupportedException\");\n }\n name = \"AvailabilityZoneNotSupportedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AvailabilityZoneNotSupportedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AvailabilityZoneNotSupportedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CaCertificatesBundleNotFoundException = class _CaCertificatesBundleNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CaCertificatesBundleNotFoundException\");\n }\n name = \"CaCertificatesBundleNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CaCertificatesBundleNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CaCertificatesBundleNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CapacityDecreaseRequestsLimitExceededException = class _CapacityDecreaseRequestsLimitExceededException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CapacityDecreaseRequestsLimitExceededException\");\n }\n name = \"CapacityDecreaseRequestsLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CapacityDecreaseRequestsLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CapacityDecreaseRequestsLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CapacityReservationPendingException = class _CapacityReservationPendingException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CapacityReservationPendingException\");\n }\n name = \"CapacityReservationPendingException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CapacityReservationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CapacityReservationPendingException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CapacityReservationStateEnum = {\n FAILED: \"failed\",\n PENDING: \"pending\",\n PROVISIONED: \"provisioned\",\n REBALANCING: \"rebalancing\"\n};\nvar CapacityUnitsLimitExceededException = class _CapacityUnitsLimitExceededException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CapacityUnitsLimitExceededException\");\n }\n name = \"CapacityUnitsLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CapacityUnitsLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CapacityUnitsLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreAssociationStatusEnum = {\n ACTIVE: \"active\",\n REMOVED: \"removed\"\n};\nvar ProtocolEnum = {\n GENEVE: \"GENEVE\",\n HTTP: \"HTTP\",\n HTTPS: \"HTTPS\",\n TCP: \"TCP\",\n TCP_UDP: \"TCP_UDP\",\n TLS: \"TLS\",\n UDP: \"UDP\"\n};\nvar DuplicateListenerException = class _DuplicateListenerException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateListenerException\");\n }\n name = \"DuplicateListenerException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateListenerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateListenerException.prototype);\n this.Message = opts.Message;\n }\n};\nvar IncompatibleProtocolsException = class _IncompatibleProtocolsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"IncompatibleProtocolsException\");\n }\n name = \"IncompatibleProtocolsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncompatibleProtocolsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncompatibleProtocolsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidConfigurationRequestException = class _InvalidConfigurationRequestException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidConfigurationRequestException\");\n }\n name = \"InvalidConfigurationRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidConfigurationRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidConfigurationRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidLoadBalancerActionException = class _InvalidLoadBalancerActionException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidLoadBalancerActionException\");\n }\n name = \"InvalidLoadBalancerActionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLoadBalancerActionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLoadBalancerActionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SSLPolicyNotFoundException = class _SSLPolicyNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"SSLPolicyNotFoundException\");\n }\n name = \"SSLPolicyNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SSLPolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SSLPolicyNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetGroupAssociationLimitException = class _TargetGroupAssociationLimitException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TargetGroupAssociationLimitException\");\n }\n name = \"TargetGroupAssociationLimitException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetGroupAssociationLimitException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetGroupAssociationLimitException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyActionsException = class _TooManyActionsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyActionsException\");\n }\n name = \"TooManyActionsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyActionsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyActionsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyListenersException = class _TooManyListenersException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyListenersException\");\n }\n name = \"TooManyListenersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyListenersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyListenersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyRegistrationsForTargetIdException = class _TooManyRegistrationsForTargetIdException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyRegistrationsForTargetIdException\");\n }\n name = \"TooManyRegistrationsForTargetIdException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRegistrationsForTargetIdException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRegistrationsForTargetIdException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTargetsException = class _TooManyTargetsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTargetsException\");\n }\n name = \"TooManyTargetsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTargetsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTargetsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyUniqueTargetGroupsPerLoadBalancerException = class _TooManyUniqueTargetGroupsPerLoadBalancerException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyUniqueTargetGroupsPerLoadBalancerException\");\n }\n name = \"TooManyUniqueTargetGroupsPerLoadBalancerException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyUniqueTargetGroupsPerLoadBalancerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyUniqueTargetGroupsPerLoadBalancerException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreNotReadyException = class _TrustStoreNotReadyException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreNotReadyException\");\n }\n name = \"TrustStoreNotReadyException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreNotReadyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreNotReadyException.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedProtocolException = class _UnsupportedProtocolException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"UnsupportedProtocolException\");\n }\n name = \"UnsupportedProtocolException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedProtocolException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedProtocolException.prototype);\n this.Message = opts.Message;\n }\n};\nvar EnablePrefixForIpv6SourceNatEnum = {\n OFF: \"off\",\n ON: \"on\"\n};\nvar IpAddressType = {\n DUALSTACK: \"dualstack\",\n DUALSTACK_WITHOUT_PUBLIC_IPV4: \"dualstack-without-public-ipv4\",\n IPV4: \"ipv4\"\n};\nvar LoadBalancerSchemeEnum = {\n INTERNAL: \"internal\",\n INTERNET_FACING: \"internet-facing\"\n};\nvar LoadBalancerTypeEnum = {\n APPLICATION: \"application\",\n GATEWAY: \"gateway\",\n NETWORK: \"network\"\n};\nvar LoadBalancerStateEnum = {\n ACTIVE: \"active\",\n ACTIVE_IMPAIRED: \"active_impaired\",\n FAILED: \"failed\",\n PROVISIONING: \"provisioning\"\n};\nvar DuplicateLoadBalancerNameException = class _DuplicateLoadBalancerNameException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateLoadBalancerNameException\");\n }\n name = \"DuplicateLoadBalancerNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateLoadBalancerNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateLoadBalancerNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidSchemeException = class _InvalidSchemeException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidSchemeException\");\n }\n name = \"InvalidSchemeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSchemeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSchemeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidSecurityGroupException = class _InvalidSecurityGroupException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidSecurityGroupException\");\n }\n name = \"InvalidSecurityGroupException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSecurityGroupException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSecurityGroupException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidSubnetException = class _InvalidSubnetException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidSubnetException\");\n }\n name = \"InvalidSubnetException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSubnetException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSubnetException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OperationNotPermittedException = class _OperationNotPermittedException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"OperationNotPermittedException\");\n }\n name = \"OperationNotPermittedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OperationNotPermittedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OperationNotPermittedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceInUseException = class _ResourceInUseException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SubnetNotFoundException = class _SubnetNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"SubnetNotFoundException\");\n }\n name = \"SubnetNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SubnetNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SubnetNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyLoadBalancersException = class _TooManyLoadBalancersException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyLoadBalancersException\");\n }\n name = \"TooManyLoadBalancersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyLoadBalancersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyLoadBalancersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PriorityInUseException = class _PriorityInUseException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"PriorityInUseException\");\n }\n name = \"PriorityInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PriorityInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PriorityInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyRulesException = class _TooManyRulesException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyRulesException\");\n }\n name = \"TooManyRulesException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRulesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRulesException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTargetGroupsException = class _TooManyTargetGroupsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTargetGroupsException\");\n }\n name = \"TooManyTargetGroupsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTargetGroupsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTargetGroupsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetGroupIpAddressTypeEnum = {\n IPV4: \"ipv4\",\n IPV6: \"ipv6\"\n};\nvar TargetTypeEnum = {\n ALB: \"alb\",\n INSTANCE: \"instance\",\n IP: \"ip\",\n LAMBDA: \"lambda\"\n};\nvar DuplicateTargetGroupNameException = class _DuplicateTargetGroupNameException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateTargetGroupNameException\");\n }\n name = \"DuplicateTargetGroupNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateTargetGroupNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateTargetGroupNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreStatus = {\n ACTIVE: \"ACTIVE\",\n CREATING: \"CREATING\"\n};\nvar DuplicateTrustStoreNameException = class _DuplicateTrustStoreNameException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateTrustStoreNameException\");\n }\n name = \"DuplicateTrustStoreNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateTrustStoreNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateTrustStoreNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidCaCertificatesBundleException = class _InvalidCaCertificatesBundleException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidCaCertificatesBundleException\");\n }\n name = \"InvalidCaCertificatesBundleException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCaCertificatesBundleException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCaCertificatesBundleException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTrustStoresException = class _TooManyTrustStoresException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTrustStoresException\");\n }\n name = \"TooManyTrustStoresException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrustStoresException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrustStoresException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DeleteAssociationSameAccountException = class _DeleteAssociationSameAccountException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DeleteAssociationSameAccountException\");\n }\n name = \"DeleteAssociationSameAccountException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DeleteAssociationSameAccountException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DeleteAssociationSameAccountException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreAssociationNotFoundException = class _TrustStoreAssociationNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreAssociationNotFoundException\");\n }\n name = \"TrustStoreAssociationNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreAssociationNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreAssociationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreInUseException = class _TrustStoreInUseException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreInUseException\");\n }\n name = \"TrustStoreInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTargetException = class _InvalidTargetException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidTargetException\");\n }\n name = \"InvalidTargetException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTargetException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTargetException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DescribeTargetHealthInputIncludeEnum = {\n ALL: \"All\",\n ANOMALY: \"AnomalyDetection\"\n};\nvar TargetHealthReasonEnum = {\n DEREGISTRATION_IN_PROGRESS: \"Target.DeregistrationInProgress\",\n FAILED_HEALTH_CHECKS: \"Target.FailedHealthChecks\",\n HEALTH_CHECK_DISABLED: \"Target.HealthCheckDisabled\",\n INITIAL_HEALTH_CHECKING: \"Elb.InitialHealthChecking\",\n INTERNAL_ERROR: \"Elb.InternalError\",\n INVALID_STATE: \"Target.InvalidState\",\n IP_UNUSABLE: \"Target.IpUnusable\",\n NOT_IN_USE: \"Target.NotInUse\",\n NOT_REGISTERED: \"Target.NotRegistered\",\n REGISTRATION_IN_PROGRESS: \"Elb.RegistrationInProgress\",\n RESPONSE_CODE_MISMATCH: \"Target.ResponseCodeMismatch\",\n TIMEOUT: \"Target.Timeout\"\n};\nvar TargetHealthStateEnum = {\n DRAINING: \"draining\",\n HEALTHY: \"healthy\",\n INITIAL: \"initial\",\n UNAVAILABLE: \"unavailable\",\n UNHEALTHY: \"unhealthy\",\n UNHEALTHY_DRAINING: \"unhealthy.draining\",\n UNUSED: \"unused\"\n};\nvar HealthUnavailableException = class _HealthUnavailableException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"HealthUnavailableException\");\n }\n name = \"HealthUnavailableException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthUnavailableException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthUnavailableException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RevocationIdNotFoundException = class _RevocationIdNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"RevocationIdNotFoundException\");\n }\n name = \"RevocationIdNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RevocationIdNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RevocationIdNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InsufficientCapacityException = class _InsufficientCapacityException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InsufficientCapacityException\");\n }\n name = \"InsufficientCapacityException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InsufficientCapacityException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InsufficientCapacityException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PriorRequestNotCompleteException = class _PriorRequestNotCompleteException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"PriorRequestNotCompleteException\");\n }\n name = \"PriorRequestNotCompleteException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PriorRequestNotCompleteException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PriorRequestNotCompleteException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RemoveIpamPoolEnum = {\n ipv4: \"ipv4\"\n};\nvar EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum = {\n off: \"off\",\n on: \"on\"\n};\n\n// src/protocols/Aws_query.ts\nvar se_AddListenerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddListenerCertificatesInput(input, context),\n [_A]: _ALC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddListenerCertificatesCommand\");\nvar se_AddTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddTagsInput(input, context),\n [_A]: _AT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddTagsCommand\");\nvar se_AddTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddTrustStoreRevocationsInput(input, context),\n [_A]: _ATSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddTrustStoreRevocationsCommand\");\nvar se_CreateListenerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateListenerInput(input, context),\n [_A]: _CL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateListenerCommand\");\nvar se_CreateLoadBalancerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLoadBalancerInput(input, context),\n [_A]: _CLB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLoadBalancerCommand\");\nvar se_CreateRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRuleInput(input, context),\n [_A]: _CR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRuleCommand\");\nvar se_CreateTargetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTargetGroupInput(input, context),\n [_A]: _CTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTargetGroupCommand\");\nvar se_CreateTrustStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrustStoreInput(input, context),\n [_A]: _CTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrustStoreCommand\");\nvar se_DeleteListenerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteListenerInput(input, context),\n [_A]: _DL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteListenerCommand\");\nvar se_DeleteLoadBalancerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLoadBalancerInput(input, context),\n [_A]: _DLB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLoadBalancerCommand\");\nvar se_DeleteRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRuleInput(input, context),\n [_A]: _DR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRuleCommand\");\nvar se_DeleteSharedTrustStoreAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSharedTrustStoreAssociationInput(input, context),\n [_A]: _DSTSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSharedTrustStoreAssociationCommand\");\nvar se_DeleteTargetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTargetGroupInput(input, context),\n [_A]: _DTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTargetGroupCommand\");\nvar se_DeleteTrustStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrustStoreInput(input, context),\n [_A]: _DTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrustStoreCommand\");\nvar se_DeregisterTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterTargetsInput(input, context),\n [_A]: _DT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTargetsCommand\");\nvar se_DescribeAccountLimitsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAccountLimitsInput(input, context),\n [_A]: _DAL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAccountLimitsCommand\");\nvar se_DescribeCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationInput(input, context),\n [_A]: _DCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationCommand\");\nvar se_DescribeListenerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeListenerAttributesInput(input, context),\n [_A]: _DLA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeListenerAttributesCommand\");\nvar se_DescribeListenerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeListenerCertificatesInput(input, context),\n [_A]: _DLC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeListenerCertificatesCommand\");\nvar se_DescribeListenersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeListenersInput(input, context),\n [_A]: _DLe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeListenersCommand\");\nvar se_DescribeLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLoadBalancerAttributesInput(input, context),\n [_A]: _DLBA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLoadBalancerAttributesCommand\");\nvar se_DescribeLoadBalancersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLoadBalancersInput(input, context),\n [_A]: _DLBe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLoadBalancersCommand\");\nvar se_DescribeRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRulesInput(input, context),\n [_A]: _DRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRulesCommand\");\nvar se_DescribeSSLPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSSLPoliciesInput(input, context),\n [_A]: _DSSLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSSLPoliciesCommand\");\nvar se_DescribeTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTagsInput(input, context),\n [_A]: _DTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTagsCommand\");\nvar se_DescribeTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTargetGroupAttributesInput(input, context),\n [_A]: _DTGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTargetGroupAttributesCommand\");\nvar se_DescribeTargetGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTargetGroupsInput(input, context),\n [_A]: _DTGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTargetGroupsCommand\");\nvar se_DescribeTargetHealthCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTargetHealthInput(input, context),\n [_A]: _DTH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTargetHealthCommand\");\nvar se_DescribeTrustStoreAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrustStoreAssociationsInput(input, context),\n [_A]: _DTSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrustStoreAssociationsCommand\");\nvar se_DescribeTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrustStoreRevocationsInput(input, context),\n [_A]: _DTSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrustStoreRevocationsCommand\");\nvar se_DescribeTrustStoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrustStoresInput(input, context),\n [_A]: _DTSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrustStoresCommand\");\nvar se_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetResourcePolicyInput(input, context),\n [_A]: _GRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePolicyCommand\");\nvar se_GetTrustStoreCaCertificatesBundleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTrustStoreCaCertificatesBundleInput(input, context),\n [_A]: _GTSCCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTrustStoreCaCertificatesBundleCommand\");\nvar se_GetTrustStoreRevocationContentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTrustStoreRevocationContentInput(input, context),\n [_A]: _GTSRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTrustStoreRevocationContentCommand\");\nvar se_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyCapacityReservationInput(input, context),\n [_A]: _MCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyCapacityReservationCommand\");\nvar se_ModifyIpPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpPoolsInput(input, context),\n [_A]: _MIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpPoolsCommand\");\nvar se_ModifyListenerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyListenerInput(input, context),\n [_A]: _ML,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyListenerCommand\");\nvar se_ModifyListenerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyListenerAttributesInput(input, context),\n [_A]: _MLA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyListenerAttributesCommand\");\nvar se_ModifyLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyLoadBalancerAttributesInput(input, context),\n [_A]: _MLBA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyLoadBalancerAttributesCommand\");\nvar se_ModifyRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyRuleInput(input, context),\n [_A]: _MR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyRuleCommand\");\nvar se_ModifyTargetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTargetGroupInput(input, context),\n [_A]: _MTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTargetGroupCommand\");\nvar se_ModifyTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTargetGroupAttributesInput(input, context),\n [_A]: _MTGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTargetGroupAttributesCommand\");\nvar se_ModifyTrustStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrustStoreInput(input, context),\n [_A]: _MTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrustStoreCommand\");\nvar se_RegisterTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterTargetsInput(input, context),\n [_A]: _RT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTargetsCommand\");\nvar se_RemoveListenerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveListenerCertificatesInput(input, context),\n [_A]: _RLC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveListenerCertificatesCommand\");\nvar se_RemoveTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveTagsInput(input, context),\n [_A]: _RTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveTagsCommand\");\nvar se_RemoveTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveTrustStoreRevocationsInput(input, context),\n [_A]: _RTSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveTrustStoreRevocationsCommand\");\nvar se_SetIpAddressTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetIpAddressTypeInput(input, context),\n [_A]: _SIAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetIpAddressTypeCommand\");\nvar se_SetRulePrioritiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetRulePrioritiesInput(input, context),\n [_A]: _SRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetRulePrioritiesCommand\");\nvar se_SetSecurityGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetSecurityGroupsInput(input, context),\n [_A]: _SSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetSecurityGroupsCommand\");\nvar se_SetSubnetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetSubnetsInput(input, context),\n [_A]: _SS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetSubnetsCommand\");\nvar de_AddListenerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AddListenerCertificatesOutput(data.AddListenerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddListenerCertificatesCommand\");\nvar de_AddTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AddTagsOutput(data.AddTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddTagsCommand\");\nvar de_AddTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AddTrustStoreRevocationsOutput(data.AddTrustStoreRevocationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddTrustStoreRevocationsCommand\");\nvar de_CreateListenerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateListenerOutput(data.CreateListenerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateListenerCommand\");\nvar de_CreateLoadBalancerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLoadBalancerOutput(data.CreateLoadBalancerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLoadBalancerCommand\");\nvar de_CreateRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRuleOutput(data.CreateRuleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRuleCommand\");\nvar de_CreateTargetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTargetGroupOutput(data.CreateTargetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTargetGroupCommand\");\nvar de_CreateTrustStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrustStoreOutput(data.CreateTrustStoreResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrustStoreCommand\");\nvar de_DeleteListenerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteListenerOutput(data.DeleteListenerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteListenerCommand\");\nvar de_DeleteLoadBalancerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLoadBalancerOutput(data.DeleteLoadBalancerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLoadBalancerCommand\");\nvar de_DeleteRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRuleOutput(data.DeleteRuleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRuleCommand\");\nvar de_DeleteSharedTrustStoreAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSharedTrustStoreAssociationOutput(data.DeleteSharedTrustStoreAssociationResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSharedTrustStoreAssociationCommand\");\nvar de_DeleteTargetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTargetGroupOutput(data.DeleteTargetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTargetGroupCommand\");\nvar de_DeleteTrustStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrustStoreOutput(data.DeleteTrustStoreResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrustStoreCommand\");\nvar de_DeregisterTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTargetsOutput(data.DeregisterTargetsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTargetsCommand\");\nvar de_DescribeAccountLimitsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAccountLimitsOutput(data.DescribeAccountLimitsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAccountLimitsCommand\");\nvar de_DescribeCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationOutput(data.DescribeCapacityReservationResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationCommand\");\nvar de_DescribeListenerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeListenerAttributesOutput(data.DescribeListenerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeListenerAttributesCommand\");\nvar de_DescribeListenerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeListenerCertificatesOutput(data.DescribeListenerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeListenerCertificatesCommand\");\nvar de_DescribeListenersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeListenersOutput(data.DescribeListenersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeListenersCommand\");\nvar de_DescribeLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLoadBalancerAttributesOutput(data.DescribeLoadBalancerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLoadBalancerAttributesCommand\");\nvar de_DescribeLoadBalancersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLoadBalancersOutput(data.DescribeLoadBalancersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLoadBalancersCommand\");\nvar de_DescribeRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRulesOutput(data.DescribeRulesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRulesCommand\");\nvar de_DescribeSSLPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSSLPoliciesOutput(data.DescribeSSLPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSSLPoliciesCommand\");\nvar de_DescribeTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTagsOutput(data.DescribeTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTagsCommand\");\nvar de_DescribeTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTargetGroupAttributesOutput(data.DescribeTargetGroupAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTargetGroupAttributesCommand\");\nvar de_DescribeTargetGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTargetGroupsOutput(data.DescribeTargetGroupsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTargetGroupsCommand\");\nvar de_DescribeTargetHealthCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTargetHealthOutput(data.DescribeTargetHealthResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTargetHealthCommand\");\nvar de_DescribeTrustStoreAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrustStoreAssociationsOutput(data.DescribeTrustStoreAssociationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrustStoreAssociationsCommand\");\nvar de_DescribeTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrustStoreRevocationsOutput(data.DescribeTrustStoreRevocationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrustStoreRevocationsCommand\");\nvar de_DescribeTrustStoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrustStoresOutput(data.DescribeTrustStoresResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrustStoresCommand\");\nvar de_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetResourcePolicyOutput(data.GetResourcePolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePolicyCommand\");\nvar de_GetTrustStoreCaCertificatesBundleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTrustStoreCaCertificatesBundleOutput(data.GetTrustStoreCaCertificatesBundleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTrustStoreCaCertificatesBundleCommand\");\nvar de_GetTrustStoreRevocationContentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTrustStoreRevocationContentOutput(data.GetTrustStoreRevocationContentResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTrustStoreRevocationContentCommand\");\nvar de_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyCapacityReservationOutput(data.ModifyCapacityReservationResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyCapacityReservationCommand\");\nvar de_ModifyIpPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpPoolsOutput(data.ModifyIpPoolsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpPoolsCommand\");\nvar de_ModifyListenerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyListenerOutput(data.ModifyListenerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyListenerCommand\");\nvar de_ModifyListenerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyListenerAttributesOutput(data.ModifyListenerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyListenerAttributesCommand\");\nvar de_ModifyLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyLoadBalancerAttributesOutput(data.ModifyLoadBalancerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyLoadBalancerAttributesCommand\");\nvar de_ModifyRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyRuleOutput(data.ModifyRuleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyRuleCommand\");\nvar de_ModifyTargetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTargetGroupOutput(data.ModifyTargetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTargetGroupCommand\");\nvar de_ModifyTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTargetGroupAttributesOutput(data.ModifyTargetGroupAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTargetGroupAttributesCommand\");\nvar de_ModifyTrustStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrustStoreOutput(data.ModifyTrustStoreResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrustStoreCommand\");\nvar de_RegisterTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTargetsOutput(data.RegisterTargetsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTargetsCommand\");\nvar de_RemoveListenerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RemoveListenerCertificatesOutput(data.RemoveListenerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveListenerCertificatesCommand\");\nvar de_RemoveTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RemoveTagsOutput(data.RemoveTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveTagsCommand\");\nvar de_RemoveTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RemoveTrustStoreRevocationsOutput(data.RemoveTrustStoreRevocationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveTrustStoreRevocationsCommand\");\nvar de_SetIpAddressTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetIpAddressTypeOutput(data.SetIpAddressTypeResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetIpAddressTypeCommand\");\nvar de_SetRulePrioritiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetRulePrioritiesOutput(data.SetRulePrioritiesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetRulePrioritiesCommand\");\nvar de_SetSecurityGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetSecurityGroupsOutput(data.SetSecurityGroupsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetSecurityGroupsCommand\");\nvar de_SetSubnetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetSubnetsOutput(data.SetSubnetsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetSubnetsCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CertificateNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#CertificateNotFoundException\":\n throw await de_CertificateNotFoundExceptionRes(parsedOutput, context);\n case \"ListenerNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#ListenerNotFoundException\":\n throw await de_ListenerNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyCertificates\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyCertificatesException\":\n throw await de_TooManyCertificatesExceptionRes(parsedOutput, context);\n case \"DuplicateTagKeys\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateTagKeysException\":\n throw await de_DuplicateTagKeysExceptionRes(parsedOutput, context);\n case \"LoadBalancerNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#LoadBalancerNotFoundException\":\n throw await de_LoadBalancerNotFoundExceptionRes(parsedOutput, context);\n case \"RuleNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#RuleNotFoundException\":\n throw await de_RuleNotFoundExceptionRes(parsedOutput, context);\n case \"TargetGroupNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#TargetGroupNotFoundException\":\n throw await de_TargetGroupNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyTags\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTagsException\":\n throw await de_TooManyTagsExceptionRes(parsedOutput, context);\n case \"TrustStoreNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreNotFoundException\":\n throw await de_TrustStoreNotFoundExceptionRes(parsedOutput, context);\n case \"InvalidRevocationContent\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidRevocationContentException\":\n throw await de_InvalidRevocationContentExceptionRes(parsedOutput, context);\n case \"RevocationContentNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#RevocationContentNotFoundException\":\n throw await de_RevocationContentNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyTrustStoreRevocationEntries\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTrustStoreRevocationEntriesException\":\n throw await de_TooManyTrustStoreRevocationEntriesExceptionRes(parsedOutput, context);\n case \"ALPNPolicyNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#ALPNPolicyNotSupportedException\":\n throw await de_ALPNPolicyNotSupportedExceptionRes(parsedOutput, context);\n case \"DuplicateListener\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateListenerException\":\n throw await de_DuplicateListenerExceptionRes(parsedOutput, context);\n case \"IncompatibleProtocols\":\n case \"com.amazonaws.elasticloadbalancingv2#IncompatibleProtocolsException\":\n throw await de_IncompatibleProtocolsExceptionRes(parsedOutput, context);\n case \"InvalidConfigurationRequest\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidConfigurationRequestException\":\n throw await de_InvalidConfigurationRequestExceptionRes(parsedOutput, context);\n case \"InvalidLoadBalancerAction\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidLoadBalancerActionException\":\n throw await de_InvalidLoadBalancerActionExceptionRes(parsedOutput, context);\n case \"SSLPolicyNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#SSLPolicyNotFoundException\":\n throw await de_SSLPolicyNotFoundExceptionRes(parsedOutput, context);\n case \"TargetGroupAssociationLimit\":\n case \"com.amazonaws.elasticloadbalancingv2#TargetGroupAssociationLimitException\":\n throw await de_TargetGroupAssociationLimitExceptionRes(parsedOutput, context);\n case \"TooManyActions\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyActionsException\":\n throw await de_TooManyActionsExceptionRes(parsedOutput, context);\n case \"TooManyListeners\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyListenersException\":\n throw await de_TooManyListenersExceptionRes(parsedOutput, context);\n case \"TooManyRegistrationsForTargetId\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyRegistrationsForTargetIdException\":\n throw await de_TooManyRegistrationsForTargetIdExceptionRes(parsedOutput, context);\n case \"TooManyTargets\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTargetsException\":\n throw await de_TooManyTargetsExceptionRes(parsedOutput, context);\n case \"TooManyUniqueTargetGroupsPerLoadBalancer\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyUniqueTargetGroupsPerLoadBalancerException\":\n throw await de_TooManyUniqueTargetGroupsPerLoadBalancerExceptionRes(parsedOutput, context);\n case \"TrustStoreNotReady\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreNotReadyException\":\n throw await de_TrustStoreNotReadyExceptionRes(parsedOutput, context);\n case \"UnsupportedProtocol\":\n case \"com.amazonaws.elasticloadbalancingv2#UnsupportedProtocolException\":\n throw await de_UnsupportedProtocolExceptionRes(parsedOutput, context);\n case \"AllocationIdNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#AllocationIdNotFoundException\":\n throw await de_AllocationIdNotFoundExceptionRes(parsedOutput, context);\n case \"AvailabilityZoneNotSupported\":\n case \"com.amazonaws.elasticloadbalancingv2#AvailabilityZoneNotSupportedException\":\n throw await de_AvailabilityZoneNotSupportedExceptionRes(parsedOutput, context);\n case \"DuplicateLoadBalancerName\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateLoadBalancerNameException\":\n throw await de_DuplicateLoadBalancerNameExceptionRes(parsedOutput, context);\n case \"InvalidScheme\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidSchemeException\":\n throw await de_InvalidSchemeExceptionRes(parsedOutput, context);\n case \"InvalidSecurityGroup\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidSecurityGroupException\":\n throw await de_InvalidSecurityGroupExceptionRes(parsedOutput, context);\n case \"InvalidSubnet\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidSubnetException\":\n throw await de_InvalidSubnetExceptionRes(parsedOutput, context);\n case \"OperationNotPermitted\":\n case \"com.amazonaws.elasticloadbalancingv2#OperationNotPermittedException\":\n throw await de_OperationNotPermittedExceptionRes(parsedOutput, context);\n case \"ResourceInUse\":\n case \"com.amazonaws.elasticloadbalancingv2#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"SubnetNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#SubnetNotFoundException\":\n throw await de_SubnetNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyLoadBalancers\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyLoadBalancersException\":\n throw await de_TooManyLoadBalancersExceptionRes(parsedOutput, context);\n case \"PriorityInUse\":\n case \"com.amazonaws.elasticloadbalancingv2#PriorityInUseException\":\n throw await de_PriorityInUseExceptionRes(parsedOutput, context);\n case \"TooManyRules\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyRulesException\":\n throw await de_TooManyRulesExceptionRes(parsedOutput, context);\n case \"TooManyTargetGroups\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTargetGroupsException\":\n throw await de_TooManyTargetGroupsExceptionRes(parsedOutput, context);\n case \"DuplicateTargetGroupName\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateTargetGroupNameException\":\n throw await de_DuplicateTargetGroupNameExceptionRes(parsedOutput, context);\n case \"CaCertificatesBundleNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#CaCertificatesBundleNotFoundException\":\n throw await de_CaCertificatesBundleNotFoundExceptionRes(parsedOutput, context);\n case \"DuplicateTrustStoreName\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateTrustStoreNameException\":\n throw await de_DuplicateTrustStoreNameExceptionRes(parsedOutput, context);\n case \"InvalidCaCertificatesBundle\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidCaCertificatesBundleException\":\n throw await de_InvalidCaCertificatesBundleExceptionRes(parsedOutput, context);\n case \"TooManyTrustStores\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTrustStoresException\":\n throw await de_TooManyTrustStoresExceptionRes(parsedOutput, context);\n case \"AssociationNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreAssociationNotFoundException\":\n throw await de_TrustStoreAssociationNotFoundExceptionRes(parsedOutput, context);\n case \"DeleteAssociationSameAccount\":\n case \"com.amazonaws.elasticloadbalancingv2#DeleteAssociationSameAccountException\":\n throw await de_DeleteAssociationSameAccountExceptionRes(parsedOutput, context);\n case \"TrustStoreInUse\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreInUseException\":\n throw await de_TrustStoreInUseExceptionRes(parsedOutput, context);\n case \"InvalidTarget\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidTargetException\":\n throw await de_InvalidTargetExceptionRes(parsedOutput, context);\n case \"HealthUnavailable\":\n case \"com.amazonaws.elasticloadbalancingv2#HealthUnavailableException\":\n throw await de_HealthUnavailableExceptionRes(parsedOutput, context);\n case \"RevocationIdNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#RevocationIdNotFoundException\":\n throw await de_RevocationIdNotFoundExceptionRes(parsedOutput, context);\n case \"ResourceNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"CapacityDecreaseRequestLimitExceeded\":\n case \"com.amazonaws.elasticloadbalancingv2#CapacityDecreaseRequestsLimitExceededException\":\n throw await de_CapacityDecreaseRequestsLimitExceededExceptionRes(parsedOutput, context);\n case \"CapacityReservationPending\":\n case \"com.amazonaws.elasticloadbalancingv2#CapacityReservationPendingException\":\n throw await de_CapacityReservationPendingExceptionRes(parsedOutput, context);\n case \"CapacityUnitsLimitExceeded\":\n case \"com.amazonaws.elasticloadbalancingv2#CapacityUnitsLimitExceededException\":\n throw await de_CapacityUnitsLimitExceededExceptionRes(parsedOutput, context);\n case \"InsufficientCapacity\":\n case \"com.amazonaws.elasticloadbalancingv2#InsufficientCapacityException\":\n throw await de_InsufficientCapacityExceptionRes(parsedOutput, context);\n case \"PriorRequestNotComplete\":\n case \"com.amazonaws.elasticloadbalancingv2#PriorRequestNotCompleteException\":\n throw await de_PriorRequestNotCompleteExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AllocationIdNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_AllocationIdNotFoundException(body.Error, context);\n const exception = new AllocationIdNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AllocationIdNotFoundExceptionRes\");\nvar de_ALPNPolicyNotSupportedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ALPNPolicyNotSupportedException(body.Error, context);\n const exception = new ALPNPolicyNotSupportedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ALPNPolicyNotSupportedExceptionRes\");\nvar de_AvailabilityZoneNotSupportedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_AvailabilityZoneNotSupportedException(body.Error, context);\n const exception = new AvailabilityZoneNotSupportedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AvailabilityZoneNotSupportedExceptionRes\");\nvar de_CaCertificatesBundleNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CaCertificatesBundleNotFoundException(body.Error, context);\n const exception = new CaCertificatesBundleNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CaCertificatesBundleNotFoundExceptionRes\");\nvar de_CapacityDecreaseRequestsLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CapacityDecreaseRequestsLimitExceededException(body.Error, context);\n const exception = new CapacityDecreaseRequestsLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CapacityDecreaseRequestsLimitExceededExceptionRes\");\nvar de_CapacityReservationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CapacityReservationPendingException(body.Error, context);\n const exception = new CapacityReservationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CapacityReservationPendingExceptionRes\");\nvar de_CapacityUnitsLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CapacityUnitsLimitExceededException(body.Error, context);\n const exception = new CapacityUnitsLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CapacityUnitsLimitExceededExceptionRes\");\nvar de_CertificateNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CertificateNotFoundException(body.Error, context);\n const exception = new CertificateNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CertificateNotFoundExceptionRes\");\nvar de_DeleteAssociationSameAccountExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DeleteAssociationSameAccountException(body.Error, context);\n const exception = new DeleteAssociationSameAccountException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DeleteAssociationSameAccountExceptionRes\");\nvar de_DuplicateListenerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateListenerException(body.Error, context);\n const exception = new DuplicateListenerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateListenerExceptionRes\");\nvar de_DuplicateLoadBalancerNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateLoadBalancerNameException(body.Error, context);\n const exception = new DuplicateLoadBalancerNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateLoadBalancerNameExceptionRes\");\nvar de_DuplicateTagKeysExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateTagKeysException(body.Error, context);\n const exception = new DuplicateTagKeysException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateTagKeysExceptionRes\");\nvar de_DuplicateTargetGroupNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateTargetGroupNameException(body.Error, context);\n const exception = new DuplicateTargetGroupNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateTargetGroupNameExceptionRes\");\nvar de_DuplicateTrustStoreNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateTrustStoreNameException(body.Error, context);\n const exception = new DuplicateTrustStoreNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateTrustStoreNameExceptionRes\");\nvar de_HealthUnavailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_HealthUnavailableException(body.Error, context);\n const exception = new HealthUnavailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HealthUnavailableExceptionRes\");\nvar de_IncompatibleProtocolsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IncompatibleProtocolsException(body.Error, context);\n const exception = new IncompatibleProtocolsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncompatibleProtocolsExceptionRes\");\nvar de_InsufficientCapacityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InsufficientCapacityException(body.Error, context);\n const exception = new InsufficientCapacityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InsufficientCapacityExceptionRes\");\nvar de_InvalidCaCertificatesBundleExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidCaCertificatesBundleException(body.Error, context);\n const exception = new InvalidCaCertificatesBundleException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCaCertificatesBundleExceptionRes\");\nvar de_InvalidConfigurationRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidConfigurationRequestException(body.Error, context);\n const exception = new InvalidConfigurationRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidConfigurationRequestExceptionRes\");\nvar de_InvalidLoadBalancerActionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidLoadBalancerActionException(body.Error, context);\n const exception = new InvalidLoadBalancerActionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLoadBalancerActionExceptionRes\");\nvar de_InvalidRevocationContentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidRevocationContentException(body.Error, context);\n const exception = new InvalidRevocationContentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRevocationContentExceptionRes\");\nvar de_InvalidSchemeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidSchemeException(body.Error, context);\n const exception = new InvalidSchemeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSchemeExceptionRes\");\nvar de_InvalidSecurityGroupExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidSecurityGroupException(body.Error, context);\n const exception = new InvalidSecurityGroupException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSecurityGroupExceptionRes\");\nvar de_InvalidSubnetExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidSubnetException(body.Error, context);\n const exception = new InvalidSubnetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSubnetExceptionRes\");\nvar de_InvalidTargetExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidTargetException(body.Error, context);\n const exception = new InvalidTargetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTargetExceptionRes\");\nvar de_ListenerNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ListenerNotFoundException(body.Error, context);\n const exception = new ListenerNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ListenerNotFoundExceptionRes\");\nvar de_LoadBalancerNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_LoadBalancerNotFoundException(body.Error, context);\n const exception = new LoadBalancerNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LoadBalancerNotFoundExceptionRes\");\nvar de_OperationNotPermittedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OperationNotPermittedException(body.Error, context);\n const exception = new OperationNotPermittedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OperationNotPermittedExceptionRes\");\nvar de_PriorityInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PriorityInUseException(body.Error, context);\n const exception = new PriorityInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PriorityInUseExceptionRes\");\nvar de_PriorRequestNotCompleteExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PriorRequestNotCompleteException(body.Error, context);\n const exception = new PriorRequestNotCompleteException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PriorRequestNotCompleteExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ResourceInUseException(body.Error, context);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ResourceNotFoundException(body.Error, context);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_RevocationContentNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RevocationContentNotFoundException(body.Error, context);\n const exception = new RevocationContentNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RevocationContentNotFoundExceptionRes\");\nvar de_RevocationIdNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RevocationIdNotFoundException(body.Error, context);\n const exception = new RevocationIdNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RevocationIdNotFoundExceptionRes\");\nvar de_RuleNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RuleNotFoundException(body.Error, context);\n const exception = new RuleNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RuleNotFoundExceptionRes\");\nvar de_SSLPolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_SSLPolicyNotFoundException(body.Error, context);\n const exception = new SSLPolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SSLPolicyNotFoundExceptionRes\");\nvar de_SubnetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_SubnetNotFoundException(body.Error, context);\n const exception = new SubnetNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SubnetNotFoundExceptionRes\");\nvar de_TargetGroupAssociationLimitExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TargetGroupAssociationLimitException(body.Error, context);\n const exception = new TargetGroupAssociationLimitException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetGroupAssociationLimitExceptionRes\");\nvar de_TargetGroupNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TargetGroupNotFoundException(body.Error, context);\n const exception = new TargetGroupNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetGroupNotFoundExceptionRes\");\nvar de_TooManyActionsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyActionsException(body.Error, context);\n const exception = new TooManyActionsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyActionsExceptionRes\");\nvar de_TooManyCertificatesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyCertificatesException(body.Error, context);\n const exception = new TooManyCertificatesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyCertificatesExceptionRes\");\nvar de_TooManyListenersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyListenersException(body.Error, context);\n const exception = new TooManyListenersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyListenersExceptionRes\");\nvar de_TooManyLoadBalancersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyLoadBalancersException(body.Error, context);\n const exception = new TooManyLoadBalancersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyLoadBalancersExceptionRes\");\nvar de_TooManyRegistrationsForTargetIdExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyRegistrationsForTargetIdException(body.Error, context);\n const exception = new TooManyRegistrationsForTargetIdException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyRegistrationsForTargetIdExceptionRes\");\nvar de_TooManyRulesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyRulesException(body.Error, context);\n const exception = new TooManyRulesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyRulesExceptionRes\");\nvar de_TooManyTagsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTagsException(body.Error, context);\n const exception = new TooManyTagsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsExceptionRes\");\nvar de_TooManyTargetGroupsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTargetGroupsException(body.Error, context);\n const exception = new TooManyTargetGroupsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTargetGroupsExceptionRes\");\nvar de_TooManyTargetsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTargetsException(body.Error, context);\n const exception = new TooManyTargetsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTargetsExceptionRes\");\nvar de_TooManyTrustStoreRevocationEntriesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTrustStoreRevocationEntriesException(body.Error, context);\n const exception = new TooManyTrustStoreRevocationEntriesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTrustStoreRevocationEntriesExceptionRes\");\nvar de_TooManyTrustStoresExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTrustStoresException(body.Error, context);\n const exception = new TooManyTrustStoresException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTrustStoresExceptionRes\");\nvar de_TooManyUniqueTargetGroupsPerLoadBalancerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyUniqueTargetGroupsPerLoadBalancerException(body.Error, context);\n const exception = new TooManyUniqueTargetGroupsPerLoadBalancerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyUniqueTargetGroupsPerLoadBalancerExceptionRes\");\nvar de_TrustStoreAssociationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreAssociationNotFoundException(body.Error, context);\n const exception = new TrustStoreAssociationNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreAssociationNotFoundExceptionRes\");\nvar de_TrustStoreInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreInUseException(body.Error, context);\n const exception = new TrustStoreInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreInUseExceptionRes\");\nvar de_TrustStoreNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreNotFoundException(body.Error, context);\n const exception = new TrustStoreNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreNotFoundExceptionRes\");\nvar de_TrustStoreNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreNotReadyException(body.Error, context);\n const exception = new TrustStoreNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreNotReadyExceptionRes\");\nvar de_UnsupportedProtocolExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_UnsupportedProtocolException(body.Error, context);\n const exception = new UnsupportedProtocolException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedProtocolExceptionRes\");\nvar se_Action = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_AOC] != null) {\n const memberEntries = se_AuthenticateOidcActionConfig(input[_AOC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticateOidcConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ACC] != null) {\n const memberEntries = se_AuthenticateCognitoActionConfig(input[_ACC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticateCognitoConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n entries[_O] = input[_O];\n }\n if (input[_RC] != null) {\n const memberEntries = se_RedirectActionConfig(input[_RC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RedirectConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FRC] != null) {\n const memberEntries = se_FixedResponseActionConfig(input[_FRC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FixedResponseConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FC] != null) {\n const memberEntries = se_ForwardActionConfig(input[_FC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ForwardConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_Action\");\nvar se_Actions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Action(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Actions\");\nvar se_AddListenerCertificatesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AddListenerCertificatesInput\");\nvar se_AddTagsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n const memberEntries = se_ResourceArns(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AddTagsInput\");\nvar se_AddTrustStoreRevocationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RCe] != null) {\n const memberEntries = se_RevocationContents(input[_RCe], context);\n if (input[_RCe]?.length === 0) {\n entries.RevocationContents = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RevocationContents.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AddTrustStoreRevocationsInput\");\nvar se_AlpnPolicyName = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AlpnPolicyName\");\nvar se_AuthenticateCognitoActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n Object.keys(input).filter((key) => input[key] != null).forEach((key) => {\n entries[`entry.${counter}.key`] = key;\n entries[`entry.${counter}.value`] = input[key];\n counter++;\n });\n return entries;\n}, \"se_AuthenticateCognitoActionAuthenticationRequestExtraParams\");\nvar se_AuthenticateCognitoActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UPA] != null) {\n entries[_UPA] = input[_UPA];\n }\n if (input[_UPCI] != null) {\n entries[_UPCI] = input[_UPCI];\n }\n if (input[_UPD] != null) {\n entries[_UPD] = input[_UPD];\n }\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_AREP] != null) {\n const memberEntries = se_AuthenticateCognitoActionAuthenticationRequestExtraParams(input[_AREP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticationRequestExtraParams.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OUR] != null) {\n entries[_OUR] = input[_OUR];\n }\n return entries;\n}, \"se_AuthenticateCognitoActionConfig\");\nvar se_AuthenticateOidcActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n Object.keys(input).filter((key) => input[key] != null).forEach((key) => {\n entries[`entry.${counter}.key`] = key;\n entries[`entry.${counter}.value`] = input[key];\n counter++;\n });\n return entries;\n}, \"se_AuthenticateOidcActionAuthenticationRequestExtraParams\");\nvar se_AuthenticateOidcActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TE] != null) {\n entries[_TE] = input[_TE];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CI] != null) {\n entries[_CI] = input[_CI];\n }\n if (input[_CS] != null) {\n entries[_CS] = input[_CS];\n }\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_AREP] != null) {\n const memberEntries = se_AuthenticateOidcActionAuthenticationRequestExtraParams(input[_AREP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticationRequestExtraParams.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OUR] != null) {\n entries[_OUR] = input[_OUR];\n }\n if (input[_UECS] != null) {\n entries[_UECS] = input[_UECS];\n }\n return entries;\n}, \"se_AuthenticateOidcActionConfig\");\nvar se_Certificate = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_ID] != null) {\n entries[_ID] = input[_ID];\n }\n return entries;\n}, \"se_Certificate\");\nvar se_CertificateList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Certificate(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_CertificateList\");\nvar se_CreateListenerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DA] != null) {\n const memberEntries = se_Actions(input[_DA], context);\n if (input[_DA]?.length === 0) {\n entries.DefaultActions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DefaultActions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AP] != null) {\n const memberEntries = se_AlpnPolicyName(input[_AP], context);\n if (input[_AP]?.length === 0) {\n entries.AlpnPolicy = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AlpnPolicy.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MA] != null) {\n const memberEntries = se_MutualAuthenticationAttributes(input[_MA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MutualAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateListenerInput\");\nvar se_CreateLoadBalancerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_Su] != null) {\n const memberEntries = se_Subnets(input[_Su], context);\n if (input[_Su]?.length === 0) {\n entries.Subnets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Subnets.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SM] != null) {\n const memberEntries = se_SubnetMappings(input[_SM], context);\n if (input[_SM]?.length === 0) {\n entries.SubnetMappings = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetMappings.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroups(input[_SG], context);\n if (input[_SG]?.length === 0) {\n entries.SecurityGroups = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroups.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_COIP] != null) {\n entries[_COIP] = input[_COIP];\n }\n if (input[_EPFISN] != null) {\n entries[_EPFISN] = input[_EPFISN];\n }\n if (input[_IP] != null) {\n const memberEntries = se_IpamPools(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamPools.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateLoadBalancerInput\");\nvar se_CreateRuleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_Co] != null) {\n const memberEntries = se_RuleConditionList(input[_Co], context);\n if (input[_Co]?.length === 0) {\n entries.Conditions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Conditions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n if (input[_Ac] != null) {\n const memberEntries = se_Actions(input[_Ac], context);\n if (input[_Ac]?.length === 0) {\n entries.Actions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Actions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRuleInput\");\nvar se_CreateTargetGroupInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_PV] != null) {\n entries[_PV] = input[_PV];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_HCP] != null) {\n entries[_HCP] = input[_HCP];\n }\n if (input[_HCPe] != null) {\n entries[_HCPe] = input[_HCPe];\n }\n if (input[_HCE] != null) {\n entries[_HCE] = input[_HCE];\n }\n if (input[_HCPea] != null) {\n entries[_HCPea] = input[_HCPea];\n }\n if (input[_HCIS] != null) {\n entries[_HCIS] = input[_HCIS];\n }\n if (input[_HCTS] != null) {\n entries[_HCTS] = input[_HCTS];\n }\n if (input[_HTC] != null) {\n entries[_HTC] = input[_HTC];\n }\n if (input[_UTC] != null) {\n entries[_UTC] = input[_UTC];\n }\n if (input[_M] != null) {\n const memberEntries = se_Matcher(input[_M], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Matcher.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TT] != null) {\n entries[_TT] = input[_TT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n return entries;\n}, \"se_CreateTargetGroupInput\");\nvar se_CreateTrustStoreInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_CCBSB] != null) {\n entries[_CCBSB] = input[_CCBSB];\n }\n if (input[_CCBSK] != null) {\n entries[_CCBSK] = input[_CCBSK];\n }\n if (input[_CCBSOV] != null) {\n entries[_CCBSOV] = input[_CCBSOV];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateTrustStoreInput\");\nvar se_DeleteListenerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n return entries;\n}, \"se_DeleteListenerInput\");\nvar se_DeleteLoadBalancerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n return entries;\n}, \"se_DeleteLoadBalancerInput\");\nvar se_DeleteRuleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n return entries;\n}, \"se_DeleteRuleInput\");\nvar se_DeleteSharedTrustStoreAssociationInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_DeleteSharedTrustStoreAssociationInput\");\nvar se_DeleteTargetGroupInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n return entries;\n}, \"se_DeleteTargetGroupInput\");\nvar se_DeleteTrustStoreInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n return entries;\n}, \"se_DeleteTrustStoreInput\");\nvar se_DeregisterTargetsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_Tar] != null) {\n const memberEntries = se_TargetDescriptions(input[_Tar], context);\n if (input[_Tar]?.length === 0) {\n entries.Targets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Targets.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeregisterTargetsInput\");\nvar se_DescribeAccountLimitsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeAccountLimitsInput\");\nvar se_DescribeCapacityReservationInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n return entries;\n}, \"se_DescribeCapacityReservationInput\");\nvar se_DescribeListenerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n return entries;\n}, \"se_DescribeListenerAttributesInput\");\nvar se_DescribeListenerCertificatesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeListenerCertificatesInput\");\nvar se_DescribeListenersInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_LAi] != null) {\n const memberEntries = se_ListenerArns(input[_LAi], context);\n if (input[_LAi]?.length === 0) {\n entries.ListenerArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ListenerArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeListenersInput\");\nvar se_DescribeLoadBalancerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n return entries;\n}, \"se_DescribeLoadBalancerAttributesInput\");\nvar se_DescribeLoadBalancersInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBAo] != null) {\n const memberEntries = se_LoadBalancerArns(input[_LBAo], context);\n if (input[_LBAo]?.length === 0) {\n entries.LoadBalancerArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancerArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Na] != null) {\n const memberEntries = se_LoadBalancerNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeLoadBalancersInput\");\nvar se_DescribeRulesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_RAul] != null) {\n const memberEntries = se_RuleArns(input[_RAul], context);\n if (input[_RAul]?.length === 0) {\n entries.RuleArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RuleArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeRulesInput\");\nvar se_DescribeSSLPoliciesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Na] != null) {\n const memberEntries = se_SslPolicyNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n if (input[_LBT] != null) {\n entries[_LBT] = input[_LBT];\n }\n return entries;\n}, \"se_DescribeSSLPoliciesInput\");\nvar se_DescribeTagsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n const memberEntries = se_ResourceArns(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeTagsInput\");\nvar se_DescribeTargetGroupAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n return entries;\n}, \"se_DescribeTargetGroupAttributesInput\");\nvar se_DescribeTargetGroupsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_TGAa] != null) {\n const memberEntries = se_TargetGroupArns(input[_TGAa], context);\n if (input[_TGAa]?.length === 0) {\n entries.TargetGroupArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroupArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Na] != null) {\n const memberEntries = se_TargetGroupNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTargetGroupsInput\");\nvar se_DescribeTargetHealthInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_Tar] != null) {\n const memberEntries = se_TargetDescriptions(input[_Tar], context);\n if (input[_Tar]?.length === 0) {\n entries.Targets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Targets.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_In] != null) {\n const memberEntries = se_ListOfDescribeTargetHealthIncludeOptions(input[_In], context);\n if (input[_In]?.length === 0) {\n entries.Include = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Include.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeTargetHealthInput\");\nvar se_DescribeTrustStoreAssociationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTrustStoreAssociationsInput\");\nvar se_DescribeTrustStoreRevocationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RI] != null) {\n const memberEntries = se_RevocationIds(input[_RI], context);\n if (input[_RI]?.length === 0) {\n entries.RevocationIds = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RevocationIds.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTrustStoreRevocationsInput\");\nvar se_DescribeTrustStoresInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSAr] != null) {\n const memberEntries = se_TrustStoreArns(input[_TSAr], context);\n if (input[_TSAr]?.length === 0) {\n entries.TrustStoreArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrustStoreArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Na] != null) {\n const memberEntries = se_TrustStoreNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTrustStoresInput\");\nvar se_FixedResponseActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MB] != null) {\n entries[_MB] = input[_MB];\n }\n if (input[_SC] != null) {\n entries[_SC] = input[_SC];\n }\n if (input[_CT] != null) {\n entries[_CT] = input[_CT];\n }\n return entries;\n}, \"se_FixedResponseActionConfig\");\nvar se_ForwardActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TG] != null) {\n const memberEntries = se_TargetGroupList(input[_TG], context);\n if (input[_TG]?.length === 0) {\n entries.TargetGroups = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroups.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TGSC] != null) {\n const memberEntries = se_TargetGroupStickinessConfig(input[_TGSC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroupStickinessConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ForwardActionConfig\");\nvar se_GetResourcePolicyInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_GetResourcePolicyInput\");\nvar se_GetTrustStoreCaCertificatesBundleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n return entries;\n}, \"se_GetTrustStoreCaCertificatesBundleInput\");\nvar se_GetTrustStoreRevocationContentInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RIe] != null) {\n entries[_RIe] = input[_RIe];\n }\n return entries;\n}, \"se_GetTrustStoreRevocationContentInput\");\nvar se_HostHeaderConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_HostHeaderConditionConfig\");\nvar se_HttpHeaderConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HHN] != null) {\n entries[_HHN] = input[_HHN];\n }\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_HttpHeaderConditionConfig\");\nvar se_HttpRequestMethodConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_HttpRequestMethodConditionConfig\");\nvar se_IpamPools = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n return entries;\n}, \"se_IpamPools\");\nvar se_ListenerArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ListenerArns\");\nvar se_ListenerAttribute = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_ListenerAttribute\");\nvar se_ListenerAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ListenerAttribute(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ListenerAttributes\");\nvar se_ListOfDescribeTargetHealthIncludeOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ListOfDescribeTargetHealthIncludeOptions\");\nvar se_ListOfString = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ListOfString\");\nvar se_LoadBalancerArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LoadBalancerArns\");\nvar se_LoadBalancerAttribute = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_LoadBalancerAttribute\");\nvar se_LoadBalancerAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LoadBalancerAttribute(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LoadBalancerAttributes\");\nvar se_LoadBalancerNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LoadBalancerNames\");\nvar se_Matcher = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HC] != null) {\n entries[_HC] = input[_HC];\n }\n if (input[_GC] != null) {\n entries[_GC] = input[_GC];\n }\n return entries;\n}, \"se_Matcher\");\nvar se_MinimumLoadBalancerCapacity = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CU] != null) {\n entries[_CU] = input[_CU];\n }\n return entries;\n}, \"se_MinimumLoadBalancerCapacity\");\nvar se_ModifyCapacityReservationInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_MLBC] != null) {\n const memberEntries = se_MinimumLoadBalancerCapacity(input[_MLBC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MinimumLoadBalancerCapacity.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RCR] != null) {\n entries[_RCR] = input[_RCR];\n }\n return entries;\n}, \"se_ModifyCapacityReservationInput\");\nvar se_ModifyIpPoolsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_IP] != null) {\n const memberEntries = se_IpamPools(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamPools.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIP] != null) {\n const memberEntries = se_RemoveIpamPools(input[_RIP], context);\n if (input[_RIP]?.length === 0) {\n entries.RemoveIpamPools = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveIpamPools.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyIpPoolsInput\");\nvar se_ModifyListenerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_At] != null) {\n const memberEntries = se_ListenerAttributes(input[_At], context);\n if (input[_At]?.length === 0) {\n entries.Attributes = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attributes.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyListenerAttributesInput\");\nvar se_ModifyListenerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DA] != null) {\n const memberEntries = se_Actions(input[_DA], context);\n if (input[_DA]?.length === 0) {\n entries.DefaultActions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DefaultActions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AP] != null) {\n const memberEntries = se_AlpnPolicyName(input[_AP], context);\n if (input[_AP]?.length === 0) {\n entries.AlpnPolicy = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AlpnPolicy.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MA] != null) {\n const memberEntries = se_MutualAuthenticationAttributes(input[_MA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MutualAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyListenerInput\");\nvar se_ModifyLoadBalancerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_At] != null) {\n const memberEntries = se_LoadBalancerAttributes(input[_At], context);\n if (input[_At]?.length === 0) {\n entries.Attributes = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attributes.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyLoadBalancerAttributesInput\");\nvar se_ModifyRuleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Co] != null) {\n const memberEntries = se_RuleConditionList(input[_Co], context);\n if (input[_Co]?.length === 0) {\n entries.Conditions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Conditions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ac] != null) {\n const memberEntries = se_Actions(input[_Ac], context);\n if (input[_Ac]?.length === 0) {\n entries.Actions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Actions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyRuleInput\");\nvar se_ModifyTargetGroupAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_At] != null) {\n const memberEntries = se_TargetGroupAttributes(input[_At], context);\n if (input[_At]?.length === 0) {\n entries.Attributes = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attributes.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyTargetGroupAttributesInput\");\nvar se_ModifyTargetGroupInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_HCP] != null) {\n entries[_HCP] = input[_HCP];\n }\n if (input[_HCPe] != null) {\n entries[_HCPe] = input[_HCPe];\n }\n if (input[_HCPea] != null) {\n entries[_HCPea] = input[_HCPea];\n }\n if (input[_HCE] != null) {\n entries[_HCE] = input[_HCE];\n }\n if (input[_HCIS] != null) {\n entries[_HCIS] = input[_HCIS];\n }\n if (input[_HCTS] != null) {\n entries[_HCTS] = input[_HCTS];\n }\n if (input[_HTC] != null) {\n entries[_HTC] = input[_HTC];\n }\n if (input[_UTC] != null) {\n entries[_UTC] = input[_UTC];\n }\n if (input[_M] != null) {\n const memberEntries = se_Matcher(input[_M], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Matcher.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyTargetGroupInput\");\nvar se_ModifyTrustStoreInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_CCBSB] != null) {\n entries[_CCBSB] = input[_CCBSB];\n }\n if (input[_CCBSK] != null) {\n entries[_CCBSK] = input[_CCBSK];\n }\n if (input[_CCBSOV] != null) {\n entries[_CCBSOV] = input[_CCBSOV];\n }\n return entries;\n}, \"se_ModifyTrustStoreInput\");\nvar se_MutualAuthenticationAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Mo] != null) {\n entries[_Mo] = input[_Mo];\n }\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_ICCE] != null) {\n entries[_ICCE] = input[_ICCE];\n }\n if (input[_TSAS] != null) {\n entries[_TSAS] = input[_TSAS];\n }\n if (input[_ATSCN] != null) {\n entries[_ATSCN] = input[_ATSCN];\n }\n return entries;\n}, \"se_MutualAuthenticationAttributes\");\nvar se_PathPatternConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PathPatternConditionConfig\");\nvar se_QueryStringConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_QueryStringKeyValuePairList(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_QueryStringConditionConfig\");\nvar se_QueryStringKeyValuePair = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_QueryStringKeyValuePair\");\nvar se_QueryStringKeyValuePairList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_QueryStringKeyValuePair(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_QueryStringKeyValuePairList\");\nvar se_RedirectActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_H] != null) {\n entries[_H] = input[_H];\n }\n if (input[_Pa] != null) {\n entries[_Pa] = input[_Pa];\n }\n if (input[_Q] != null) {\n entries[_Q] = input[_Q];\n }\n if (input[_SC] != null) {\n entries[_SC] = input[_SC];\n }\n return entries;\n}, \"se_RedirectActionConfig\");\nvar se_RegisterTargetsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_Tar] != null) {\n const memberEntries = se_TargetDescriptions(input[_Tar], context);\n if (input[_Tar]?.length === 0) {\n entries.Targets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Targets.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RegisterTargetsInput\");\nvar se_RemoveIpamPools = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RemoveIpamPools\");\nvar se_RemoveListenerCertificatesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RemoveListenerCertificatesInput\");\nvar se_RemoveTagsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n const memberEntries = se_ResourceArns(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TK] != null) {\n const memberEntries = se_TagKeys(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RemoveTagsInput\");\nvar se_RemoveTrustStoreRevocationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RI] != null) {\n const memberEntries = se_RevocationIds(input[_RI], context);\n if (input[_RI]?.length === 0) {\n entries.RevocationIds = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RevocationIds.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RemoveTrustStoreRevocationsInput\");\nvar se_ResourceArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceArns\");\nvar se_RevocationContent = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SK] != null) {\n entries[_SK] = input[_SK];\n }\n if (input[_SOV] != null) {\n entries[_SOV] = input[_SOV];\n }\n if (input[_RTev] != null) {\n entries[_RTev] = input[_RTev];\n }\n return entries;\n}, \"se_RevocationContent\");\nvar se_RevocationContents = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RevocationContent(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RevocationContents\");\nvar se_RevocationIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RevocationIds\");\nvar se_RuleArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RuleArns\");\nvar se_RuleCondition = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HHC] != null) {\n const memberEntries = se_HostHeaderConditionConfig(input[_HHC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostHeaderConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PPC] != null) {\n const memberEntries = se_PathPatternConditionConfig(input[_PPC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PathPatternConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HHCt] != null) {\n const memberEntries = se_HttpHeaderConditionConfig(input[_HHCt], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HttpHeaderConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_QSC] != null) {\n const memberEntries = se_QueryStringConditionConfig(input[_QSC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `QueryStringConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HRMC] != null) {\n const memberEntries = se_HttpRequestMethodConditionConfig(input[_HRMC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HttpRequestMethodConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIC] != null) {\n const memberEntries = se_SourceIpConditionConfig(input[_SIC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceIpConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RuleCondition\");\nvar se_RuleConditionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RuleCondition(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RuleConditionList\");\nvar se_RulePriorityList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RulePriorityPair(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RulePriorityList\");\nvar se_RulePriorityPair = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n return entries;\n}, \"se_RulePriorityPair\");\nvar se_SecurityGroups = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroups\");\nvar se_SetIpAddressTypeInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n return entries;\n}, \"se_SetIpAddressTypeInput\");\nvar se_SetRulePrioritiesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RP] != null) {\n const memberEntries = se_RulePriorityList(input[_RP], context);\n if (input[_RP]?.length === 0) {\n entries.RulePriorities = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RulePriorities.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SetRulePrioritiesInput\");\nvar se_SetSecurityGroupsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroups(input[_SG], context);\n if (input[_SG]?.length === 0) {\n entries.SecurityGroups = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroups.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ESGIROPLT] != null) {\n entries[_ESGIROPLT] = input[_ESGIROPLT];\n }\n return entries;\n}, \"se_SetSecurityGroupsInput\");\nvar se_SetSubnetsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_Su] != null) {\n const memberEntries = se_Subnets(input[_Su], context);\n if (input[_Su]?.length === 0) {\n entries.Subnets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Subnets.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SM] != null) {\n const memberEntries = se_SubnetMappings(input[_SM], context);\n if (input[_SM]?.length === 0) {\n entries.SubnetMappings = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetMappings.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_EPFISN] != null) {\n entries[_EPFISN] = input[_EPFISN];\n }\n return entries;\n}, \"se_SetSubnetsInput\");\nvar se_SourceIpConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SourceIpConditionConfig\");\nvar se_SslPolicyNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SslPolicyNames\");\nvar se_SubnetMapping = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_AI] != null) {\n entries[_AI] = input[_AI];\n }\n if (input[_PIPA] != null) {\n entries[_PIPA] = input[_PIPA];\n }\n if (input[_IPA] != null) {\n entries[_IPA] = input[_IPA];\n }\n if (input[_SNIP] != null) {\n entries[_SNIP] = input[_SNIP];\n }\n return entries;\n}, \"se_SubnetMapping\");\nvar se_SubnetMappings = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SubnetMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SubnetMappings\");\nvar se_Subnets = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_Subnets\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_Tag\");\nvar se_TagKeys = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TagKeys\");\nvar se_TagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TagList\");\nvar se_TargetDescription = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Id] != null) {\n entries[_Id] = input[_Id];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n return entries;\n}, \"se_TargetDescription\");\nvar se_TargetDescriptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetDescription(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetDescriptions\");\nvar se_TargetGroupArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TargetGroupArns\");\nvar se_TargetGroupAttribute = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_TargetGroupAttribute\");\nvar se_TargetGroupAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetGroupAttribute(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetGroupAttributes\");\nvar se_TargetGroupList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetGroupTuple(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetGroupList\");\nvar se_TargetGroupNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TargetGroupNames\");\nvar se_TargetGroupStickinessConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_E] != null) {\n entries[_E] = input[_E];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_TargetGroupStickinessConfig\");\nvar se_TargetGroupTuple = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_W] != null) {\n entries[_W] = input[_W];\n }\n return entries;\n}, \"se_TargetGroupTuple\");\nvar se_TrustStoreArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrustStoreArns\");\nvar se_TrustStoreNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrustStoreNames\");\nvar de_Action = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_TGA] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_TGA]);\n }\n if (output[_AOC] != null) {\n contents[_AOC] = de_AuthenticateOidcActionConfig(output[_AOC], context);\n }\n if (output[_ACC] != null) {\n contents[_ACC] = de_AuthenticateCognitoActionConfig(output[_ACC], context);\n }\n if (output[_O] != null) {\n contents[_O] = (0, import_smithy_client.strictParseInt32)(output[_O]);\n }\n if (output[_RC] != null) {\n contents[_RC] = de_RedirectActionConfig(output[_RC], context);\n }\n if (output[_FRC] != null) {\n contents[_FRC] = de_FixedResponseActionConfig(output[_FRC], context);\n }\n if (output[_FC] != null) {\n contents[_FC] = de_ForwardActionConfig(output[_FC], context);\n }\n return contents;\n}, \"de_Action\");\nvar de_Actions = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Action(entry, context);\n });\n}, \"de_Actions\");\nvar de_AddListenerCertificatesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Certificates === \"\") {\n contents[_C] = [];\n } else if (output[_C] != null && output[_C][_m] != null) {\n contents[_C] = de_CertificateList((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context);\n }\n return contents;\n}, \"de_AddListenerCertificatesOutput\");\nvar de_AddTagsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_AddTagsOutput\");\nvar de_AddTrustStoreRevocationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStoreRevocations === \"\") {\n contents[_TSR] = [];\n } else if (output[_TSR] != null && output[_TSR][_m] != null) {\n contents[_TSR] = de_TrustStoreRevocations((0, import_smithy_client.getArrayIfSingleItem)(output[_TSR][_m]), context);\n }\n return contents;\n}, \"de_AddTrustStoreRevocationsOutput\");\nvar de_AdministrativeOverride = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n return contents;\n}, \"de_AdministrativeOverride\");\nvar de_AllocationIdNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_AllocationIdNotFoundException\");\nvar de_AlpnPolicyName = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AlpnPolicyName\");\nvar de_ALPNPolicyNotSupportedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ALPNPolicyNotSupportedException\");\nvar de_AnomalyDetection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_MIE] != null) {\n contents[_MIE] = (0, import_smithy_client.expectString)(output[_MIE]);\n }\n return contents;\n}, \"de_AnomalyDetection\");\nvar de_AuthenticateCognitoActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_AuthenticateCognitoActionAuthenticationRequestExtraParams\");\nvar de_AuthenticateCognitoActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UPA] != null) {\n contents[_UPA] = (0, import_smithy_client.expectString)(output[_UPA]);\n }\n if (output[_UPCI] != null) {\n contents[_UPCI] = (0, import_smithy_client.expectString)(output[_UPCI]);\n }\n if (output[_UPD] != null) {\n contents[_UPD] = (0, import_smithy_client.expectString)(output[_UPD]);\n }\n if (output[_SCN] != null) {\n contents[_SCN] = (0, import_smithy_client.expectString)(output[_SCN]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.strictParseLong)(output[_ST]);\n }\n if (output.AuthenticationRequestExtraParams === \"\") {\n contents[_AREP] = {};\n } else if (output[_AREP] != null && output[_AREP][_e] != null) {\n contents[_AREP] = de_AuthenticateCognitoActionAuthenticationRequestExtraParams(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_AREP][_e]),\n context\n );\n }\n if (output[_OUR] != null) {\n contents[_OUR] = (0, import_smithy_client.expectString)(output[_OUR]);\n }\n return contents;\n}, \"de_AuthenticateCognitoActionConfig\");\nvar de_AuthenticateOidcActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_AuthenticateOidcActionAuthenticationRequestExtraParams\");\nvar de_AuthenticateOidcActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_AE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_AE]);\n }\n if (output[_TE] != null) {\n contents[_TE] = (0, import_smithy_client.expectString)(output[_TE]);\n }\n if (output[_UIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_UIE]);\n }\n if (output[_CI] != null) {\n contents[_CI] = (0, import_smithy_client.expectString)(output[_CI]);\n }\n if (output[_CS] != null) {\n contents[_CS] = (0, import_smithy_client.expectString)(output[_CS]);\n }\n if (output[_SCN] != null) {\n contents[_SCN] = (0, import_smithy_client.expectString)(output[_SCN]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.strictParseLong)(output[_ST]);\n }\n if (output.AuthenticationRequestExtraParams === \"\") {\n contents[_AREP] = {};\n } else if (output[_AREP] != null && output[_AREP][_e] != null) {\n contents[_AREP] = de_AuthenticateOidcActionAuthenticationRequestExtraParams(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_AREP][_e]),\n context\n );\n }\n if (output[_OUR] != null) {\n contents[_OUR] = (0, import_smithy_client.expectString)(output[_OUR]);\n }\n if (output[_UECS] != null) {\n contents[_UECS] = (0, import_smithy_client.parseBoolean)(output[_UECS]);\n }\n return contents;\n}, \"de_AuthenticateOidcActionConfig\");\nvar de_AvailabilityZone = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ZN] != null) {\n contents[_ZN] = (0, import_smithy_client.expectString)(output[_ZN]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.LoadBalancerAddresses === \"\") {\n contents[_LBAoa] = [];\n } else if (output[_LBAoa] != null && output[_LBAoa][_m] != null) {\n contents[_LBAoa] = de_LoadBalancerAddresses((0, import_smithy_client.getArrayIfSingleItem)(output[_LBAoa][_m]), context);\n }\n if (output.SourceNatIpv6Prefixes === \"\") {\n contents[_SNIPo] = [];\n } else if (output[_SNIPo] != null && output[_SNIPo][_m] != null) {\n contents[_SNIPo] = de_SourceNatIpv6Prefixes((0, import_smithy_client.getArrayIfSingleItem)(output[_SNIPo][_m]), context);\n }\n return contents;\n}, \"de_AvailabilityZone\");\nvar de_AvailabilityZoneNotSupportedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_AvailabilityZoneNotSupportedException\");\nvar de_AvailabilityZones = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AvailabilityZone(entry, context);\n });\n}, \"de_AvailabilityZones\");\nvar de_CaCertificatesBundleNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CaCertificatesBundleNotFoundException\");\nvar de_CapacityDecreaseRequestsLimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CapacityDecreaseRequestsLimitExceededException\");\nvar de_CapacityReservationPendingException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CapacityReservationPendingException\");\nvar de_CapacityReservationStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Cod] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_Cod]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_CapacityReservationStatus\");\nvar de_CapacityUnitsLimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CapacityUnitsLimitExceededException\");\nvar de_Certificate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CA] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_CA]);\n }\n if (output[_ID] != null) {\n contents[_ID] = (0, import_smithy_client.parseBoolean)(output[_ID]);\n }\n return contents;\n}, \"de_Certificate\");\nvar de_CertificateList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Certificate(entry, context);\n });\n}, \"de_CertificateList\");\nvar de_CertificateNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CertificateNotFoundException\");\nvar de_Cipher = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.strictParseInt32)(output[_Pr]);\n }\n return contents;\n}, \"de_Cipher\");\nvar de_Ciphers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Cipher(entry, context);\n });\n}, \"de_Ciphers\");\nvar de_CreateListenerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Listeners === \"\") {\n contents[_L] = [];\n } else if (output[_L] != null && output[_L][_m] != null) {\n contents[_L] = de_Listeners((0, import_smithy_client.getArrayIfSingleItem)(output[_L][_m]), context);\n }\n return contents;\n}, \"de_CreateListenerOutput\");\nvar de_CreateLoadBalancerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.LoadBalancers === \"\") {\n contents[_LB] = [];\n } else if (output[_LB] != null && output[_LB][_m] != null) {\n contents[_LB] = de_LoadBalancers((0, import_smithy_client.getArrayIfSingleItem)(output[_LB][_m]), context);\n }\n return contents;\n}, \"de_CreateLoadBalancerOutput\");\nvar de_CreateRuleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n return contents;\n}, \"de_CreateRuleOutput\");\nvar de_CreateTargetGroupOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n return contents;\n}, \"de_CreateTargetGroupOutput\");\nvar de_CreateTrustStoreOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStores === \"\") {\n contents[_TS] = [];\n } else if (output[_TS] != null && output[_TS][_m] != null) {\n contents[_TS] = de_TrustStores((0, import_smithy_client.getArrayIfSingleItem)(output[_TS][_m]), context);\n }\n return contents;\n}, \"de_CreateTrustStoreOutput\");\nvar de_DeleteAssociationSameAccountException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DeleteAssociationSameAccountException\");\nvar de_DeleteListenerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteListenerOutput\");\nvar de_DeleteLoadBalancerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteLoadBalancerOutput\");\nvar de_DeleteRuleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteRuleOutput\");\nvar de_DeleteSharedTrustStoreAssociationOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteSharedTrustStoreAssociationOutput\");\nvar de_DeleteTargetGroupOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteTargetGroupOutput\");\nvar de_DeleteTrustStoreOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteTrustStoreOutput\");\nvar de_DeregisterTargetsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeregisterTargetsOutput\");\nvar de_DescribeAccountLimitsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Limits === \"\") {\n contents[_Li] = [];\n } else if (output[_Li] != null && output[_Li][_m] != null) {\n contents[_Li] = de_Limits((0, import_smithy_client.getArrayIfSingleItem)(output[_Li][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeAccountLimitsOutput\");\nvar de_DescribeCapacityReservationOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LMT] != null) {\n contents[_LMT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LMT]));\n }\n if (output[_DRR] != null) {\n contents[_DRR] = (0, import_smithy_client.strictParseInt32)(output[_DRR]);\n }\n if (output[_MLBC] != null) {\n contents[_MLBC] = de_MinimumLoadBalancerCapacity(output[_MLBC], context);\n }\n if (output.CapacityReservationState === \"\") {\n contents[_CRS] = [];\n } else if (output[_CRS] != null && output[_CRS][_m] != null) {\n contents[_CRS] = de_ZonalCapacityReservationStates((0, import_smithy_client.getArrayIfSingleItem)(output[_CRS][_m]), context);\n }\n return contents;\n}, \"de_DescribeCapacityReservationOutput\");\nvar de_DescribeListenerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_ListenerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_DescribeListenerAttributesOutput\");\nvar de_DescribeListenerCertificatesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Certificates === \"\") {\n contents[_C] = [];\n } else if (output[_C] != null && output[_C][_m] != null) {\n contents[_C] = de_CertificateList((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeListenerCertificatesOutput\");\nvar de_DescribeListenersOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Listeners === \"\") {\n contents[_L] = [];\n } else if (output[_L] != null && output[_L][_m] != null) {\n contents[_L] = de_Listeners((0, import_smithy_client.getArrayIfSingleItem)(output[_L][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeListenersOutput\");\nvar de_DescribeLoadBalancerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_LoadBalancerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_DescribeLoadBalancerAttributesOutput\");\nvar de_DescribeLoadBalancersOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.LoadBalancers === \"\") {\n contents[_LB] = [];\n } else if (output[_LB] != null && output[_LB][_m] != null) {\n contents[_LB] = de_LoadBalancers((0, import_smithy_client.getArrayIfSingleItem)(output[_LB][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeLoadBalancersOutput\");\nvar de_DescribeRulesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeRulesOutput\");\nvar de_DescribeSSLPoliciesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SslPolicies === \"\") {\n contents[_SPs] = [];\n } else if (output[_SPs] != null && output[_SPs][_m] != null) {\n contents[_SPs] = de_SslPolicies((0, import_smithy_client.getArrayIfSingleItem)(output[_SPs][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeSSLPoliciesOutput\");\nvar de_DescribeTagsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TagDescriptions === \"\") {\n contents[_TD] = [];\n } else if (output[_TD] != null && output[_TD][_m] != null) {\n contents[_TD] = de_TagDescriptions((0, import_smithy_client.getArrayIfSingleItem)(output[_TD][_m]), context);\n }\n return contents;\n}, \"de_DescribeTagsOutput\");\nvar de_DescribeTargetGroupAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_TargetGroupAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_DescribeTargetGroupAttributesOutput\");\nvar de_DescribeTargetGroupsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTargetGroupsOutput\");\nvar de_DescribeTargetHealthOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetHealthDescriptions === \"\") {\n contents[_THD] = [];\n } else if (output[_THD] != null && output[_THD][_m] != null) {\n contents[_THD] = de_TargetHealthDescriptions((0, import_smithy_client.getArrayIfSingleItem)(output[_THD][_m]), context);\n }\n return contents;\n}, \"de_DescribeTargetHealthOutput\");\nvar de_DescribeTrustStoreAssociationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStoreAssociations === \"\") {\n contents[_TSAru] = [];\n } else if (output[_TSAru] != null && output[_TSAru][_m] != null) {\n contents[_TSAru] = de_TrustStoreAssociations((0, import_smithy_client.getArrayIfSingleItem)(output[_TSAru][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTrustStoreAssociationsOutput\");\nvar de_DescribeTrustStoreRevocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_RIe] != null) {\n contents[_RIe] = (0, import_smithy_client.strictParseLong)(output[_RIe]);\n }\n if (output[_RTev] != null) {\n contents[_RTev] = (0, import_smithy_client.expectString)(output[_RTev]);\n }\n if (output[_NORE] != null) {\n contents[_NORE] = (0, import_smithy_client.strictParseLong)(output[_NORE]);\n }\n return contents;\n}, \"de_DescribeTrustStoreRevocation\");\nvar de_DescribeTrustStoreRevocationResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeTrustStoreRevocation(entry, context);\n });\n}, \"de_DescribeTrustStoreRevocationResponse\");\nvar de_DescribeTrustStoreRevocationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStoreRevocations === \"\") {\n contents[_TSR] = [];\n } else if (output[_TSR] != null && output[_TSR][_m] != null) {\n contents[_TSR] = de_DescribeTrustStoreRevocationResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_TSR][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTrustStoreRevocationsOutput\");\nvar de_DescribeTrustStoresOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStores === \"\") {\n contents[_TS] = [];\n } else if (output[_TS] != null && output[_TS][_m] != null) {\n contents[_TS] = de_TrustStores((0, import_smithy_client.getArrayIfSingleItem)(output[_TS][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTrustStoresOutput\");\nvar de_DuplicateListenerException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateListenerException\");\nvar de_DuplicateLoadBalancerNameException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateLoadBalancerNameException\");\nvar de_DuplicateTagKeysException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateTagKeysException\");\nvar de_DuplicateTargetGroupNameException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateTargetGroupNameException\");\nvar de_DuplicateTrustStoreNameException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateTrustStoreNameException\");\nvar de_FixedResponseActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_MB]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n return contents;\n}, \"de_FixedResponseActionConfig\");\nvar de_ForwardActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n if (output[_TGSC] != null) {\n contents[_TGSC] = de_TargetGroupStickinessConfig(output[_TGSC], context);\n }\n return contents;\n}, \"de_ForwardActionConfig\");\nvar de_GetResourcePolicyOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Pol] != null) {\n contents[_Pol] = (0, import_smithy_client.expectString)(output[_Pol]);\n }\n return contents;\n}, \"de_GetResourcePolicyOutput\");\nvar de_GetTrustStoreCaCertificatesBundleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_Lo]);\n }\n return contents;\n}, \"de_GetTrustStoreCaCertificatesBundleOutput\");\nvar de_GetTrustStoreRevocationContentOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_Lo]);\n }\n return contents;\n}, \"de_GetTrustStoreRevocationContentOutput\");\nvar de_HealthUnavailableException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_HealthUnavailableException\");\nvar de_HostHeaderConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_HostHeaderConditionConfig\");\nvar de_HttpHeaderConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HHN] != null) {\n contents[_HHN] = (0, import_smithy_client.expectString)(output[_HHN]);\n }\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_HttpHeaderConditionConfig\");\nvar de_HttpRequestMethodConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_HttpRequestMethodConditionConfig\");\nvar de_IncompatibleProtocolsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_IncompatibleProtocolsException\");\nvar de_InsufficientCapacityException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InsufficientCapacityException\");\nvar de_InvalidCaCertificatesBundleException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidCaCertificatesBundleException\");\nvar de_InvalidConfigurationRequestException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidConfigurationRequestException\");\nvar de_InvalidLoadBalancerActionException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidLoadBalancerActionException\");\nvar de_InvalidRevocationContentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidRevocationContentException\");\nvar de_InvalidSchemeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidSchemeException\");\nvar de_InvalidSecurityGroupException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidSecurityGroupException\");\nvar de_InvalidSubnetException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidSubnetException\");\nvar de_InvalidTargetException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidTargetException\");\nvar de_IpamPools = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IIPI] != null) {\n contents[_IIPI] = (0, import_smithy_client.expectString)(output[_IIPI]);\n }\n return contents;\n}, \"de_IpamPools\");\nvar de_Limit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Max] != null) {\n contents[_Max] = (0, import_smithy_client.expectString)(output[_Max]);\n }\n return contents;\n}, \"de_Limit\");\nvar de_Limits = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Limit(entry, context);\n });\n}, \"de_Limits\");\nvar de_Listener = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LA] != null) {\n contents[_LA] = (0, import_smithy_client.expectString)(output[_LA]);\n }\n if (output[_LBA] != null) {\n contents[_LBA] = (0, import_smithy_client.expectString)(output[_LBA]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_Po]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Certificates === \"\") {\n contents[_C] = [];\n } else if (output[_C] != null && output[_C][_m] != null) {\n contents[_C] = de_CertificateList((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context);\n }\n if (output[_SP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_SP]);\n }\n if (output.DefaultActions === \"\") {\n contents[_DA] = [];\n } else if (output[_DA] != null && output[_DA][_m] != null) {\n contents[_DA] = de_Actions((0, import_smithy_client.getArrayIfSingleItem)(output[_DA][_m]), context);\n }\n if (output.AlpnPolicy === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_m] != null) {\n contents[_AP] = de_AlpnPolicyName((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_m]), context);\n }\n if (output[_MA] != null) {\n contents[_MA] = de_MutualAuthenticationAttributes(output[_MA], context);\n }\n return contents;\n}, \"de_Listener\");\nvar de_ListenerAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_ListenerAttribute\");\nvar de_ListenerAttributes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ListenerAttribute(entry, context);\n });\n}, \"de_ListenerAttributes\");\nvar de_ListenerNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ListenerNotFoundException\");\nvar de_Listeners = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Listener(entry, context);\n });\n}, \"de_Listeners\");\nvar de_ListOfString = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ListOfString\");\nvar de_LoadBalancer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LBA] != null) {\n contents[_LBA] = (0, import_smithy_client.expectString)(output[_LBA]);\n }\n if (output[_DNSN] != null) {\n contents[_DNSN] = (0, import_smithy_client.expectString)(output[_DNSN]);\n }\n if (output[_CHZI] != null) {\n contents[_CHZI] = (0, import_smithy_client.expectString)(output[_CHZI]);\n }\n if (output[_CTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr]));\n }\n if (output[_LBN] != null) {\n contents[_LBN] = (0, import_smithy_client.expectString)(output[_LBN]);\n }\n if (output[_Sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_Sc]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_St] != null) {\n contents[_St] = de_LoadBalancerState(output[_St], context);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output.AvailabilityZones === \"\") {\n contents[_AZv] = [];\n } else if (output[_AZv] != null && output[_AZv][_m] != null) {\n contents[_AZv] = de_AvailabilityZones((0, import_smithy_client.getArrayIfSingleItem)(output[_AZv][_m]), context);\n }\n if (output.SecurityGroups === \"\") {\n contents[_SG] = [];\n } else if (output[_SG] != null && output[_SG][_m] != null) {\n contents[_SG] = de_SecurityGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_SG][_m]), context);\n }\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n if (output[_COIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_COIP]);\n }\n if (output[_ESGIROPLT] != null) {\n contents[_ESGIROPLT] = (0, import_smithy_client.expectString)(output[_ESGIROPLT]);\n }\n if (output[_EPFISN] != null) {\n contents[_EPFISN] = (0, import_smithy_client.expectString)(output[_EPFISN]);\n }\n if (output[_IP] != null) {\n contents[_IP] = de_IpamPools(output[_IP], context);\n }\n return contents;\n}, \"de_LoadBalancer\");\nvar de_LoadBalancerAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IA] != null) {\n contents[_IA] = (0, import_smithy_client.expectString)(output[_IA]);\n }\n if (output[_AI] != null) {\n contents[_AI] = (0, import_smithy_client.expectString)(output[_AI]);\n }\n if (output[_PIPA] != null) {\n contents[_PIPA] = (0, import_smithy_client.expectString)(output[_PIPA]);\n }\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.expectString)(output[_IPA]);\n }\n return contents;\n}, \"de_LoadBalancerAddress\");\nvar de_LoadBalancerAddresses = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadBalancerAddress(entry, context);\n });\n}, \"de_LoadBalancerAddresses\");\nvar de_LoadBalancerArns = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_LoadBalancerArns\");\nvar de_LoadBalancerAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_LoadBalancerAttribute\");\nvar de_LoadBalancerAttributes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadBalancerAttribute(entry, context);\n });\n}, \"de_LoadBalancerAttributes\");\nvar de_LoadBalancerNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_LoadBalancerNotFoundException\");\nvar de_LoadBalancers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadBalancer(entry, context);\n });\n}, \"de_LoadBalancers\");\nvar de_LoadBalancerState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Cod] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_Cod]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_LoadBalancerState\");\nvar de_Matcher = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HC] != null) {\n contents[_HC] = (0, import_smithy_client.expectString)(output[_HC]);\n }\n if (output[_GC] != null) {\n contents[_GC] = (0, import_smithy_client.expectString)(output[_GC]);\n }\n return contents;\n}, \"de_Matcher\");\nvar de_MinimumLoadBalancerCapacity = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CU] != null) {\n contents[_CU] = (0, import_smithy_client.strictParseInt32)(output[_CU]);\n }\n return contents;\n}, \"de_MinimumLoadBalancerCapacity\");\nvar de_ModifyCapacityReservationOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LMT] != null) {\n contents[_LMT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LMT]));\n }\n if (output[_DRR] != null) {\n contents[_DRR] = (0, import_smithy_client.strictParseInt32)(output[_DRR]);\n }\n if (output[_MLBC] != null) {\n contents[_MLBC] = de_MinimumLoadBalancerCapacity(output[_MLBC], context);\n }\n if (output.CapacityReservationState === \"\") {\n contents[_CRS] = [];\n } else if (output[_CRS] != null && output[_CRS][_m] != null) {\n contents[_CRS] = de_ZonalCapacityReservationStates((0, import_smithy_client.getArrayIfSingleItem)(output[_CRS][_m]), context);\n }\n return contents;\n}, \"de_ModifyCapacityReservationOutput\");\nvar de_ModifyIpPoolsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = de_IpamPools(output[_IP], context);\n }\n return contents;\n}, \"de_ModifyIpPoolsOutput\");\nvar de_ModifyListenerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_ListenerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_ModifyListenerAttributesOutput\");\nvar de_ModifyListenerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Listeners === \"\") {\n contents[_L] = [];\n } else if (output[_L] != null && output[_L][_m] != null) {\n contents[_L] = de_Listeners((0, import_smithy_client.getArrayIfSingleItem)(output[_L][_m]), context);\n }\n return contents;\n}, \"de_ModifyListenerOutput\");\nvar de_ModifyLoadBalancerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_LoadBalancerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_ModifyLoadBalancerAttributesOutput\");\nvar de_ModifyRuleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n return contents;\n}, \"de_ModifyRuleOutput\");\nvar de_ModifyTargetGroupAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_TargetGroupAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_ModifyTargetGroupAttributesOutput\");\nvar de_ModifyTargetGroupOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n return contents;\n}, \"de_ModifyTargetGroupOutput\");\nvar de_ModifyTrustStoreOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStores === \"\") {\n contents[_TS] = [];\n } else if (output[_TS] != null && output[_TS][_m] != null) {\n contents[_TS] = de_TrustStores((0, import_smithy_client.getArrayIfSingleItem)(output[_TS][_m]), context);\n }\n return contents;\n}, \"de_ModifyTrustStoreOutput\");\nvar de_MutualAuthenticationAttributes = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mo] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_Mo]);\n }\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_ICCE] != null) {\n contents[_ICCE] = (0, import_smithy_client.parseBoolean)(output[_ICCE]);\n }\n if (output[_TSAS] != null) {\n contents[_TSAS] = (0, import_smithy_client.expectString)(output[_TSAS]);\n }\n if (output[_ATSCN] != null) {\n contents[_ATSCN] = (0, import_smithy_client.expectString)(output[_ATSCN]);\n }\n return contents;\n}, \"de_MutualAuthenticationAttributes\");\nvar de_OperationNotPermittedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_OperationNotPermittedException\");\nvar de_PathPatternConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_PathPatternConditionConfig\");\nvar de_PriorityInUseException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_PriorityInUseException\");\nvar de_PriorRequestNotCompleteException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_PriorRequestNotCompleteException\");\nvar de_QueryStringConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_QueryStringKeyValuePairList((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_QueryStringConditionConfig\");\nvar de_QueryStringKeyValuePair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_QueryStringKeyValuePair\");\nvar de_QueryStringKeyValuePairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_QueryStringKeyValuePair(entry, context);\n });\n}, \"de_QueryStringKeyValuePairList\");\nvar de_RedirectActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.expectString)(output[_Po]);\n }\n if (output[_H] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_H]);\n }\n if (output[_Pa] != null) {\n contents[_Pa] = (0, import_smithy_client.expectString)(output[_Pa]);\n }\n if (output[_Q] != null) {\n contents[_Q] = (0, import_smithy_client.expectString)(output[_Q]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n return contents;\n}, \"de_RedirectActionConfig\");\nvar de_RegisterTargetsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RegisterTargetsOutput\");\nvar de_RemoveListenerCertificatesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RemoveListenerCertificatesOutput\");\nvar de_RemoveTagsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RemoveTagsOutput\");\nvar de_RemoveTrustStoreRevocationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RemoveTrustStoreRevocationsOutput\");\nvar de_ResourceInUseException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ResourceInUseException\");\nvar de_ResourceNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ResourceNotFoundException\");\nvar de_RevocationContentNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_RevocationContentNotFoundException\");\nvar de_RevocationIdNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_RevocationIdNotFoundException\");\nvar de_Rule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RAu] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_RAu]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n if (output.Conditions === \"\") {\n contents[_Co] = [];\n } else if (output[_Co] != null && output[_Co][_m] != null) {\n contents[_Co] = de_RuleConditionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Co][_m]), context);\n }\n if (output.Actions === \"\") {\n contents[_Ac] = [];\n } else if (output[_Ac] != null && output[_Ac][_m] != null) {\n contents[_Ac] = de_Actions((0, import_smithy_client.getArrayIfSingleItem)(output[_Ac][_m]), context);\n }\n if (output[_ID] != null) {\n contents[_ID] = (0, import_smithy_client.parseBoolean)(output[_ID]);\n }\n return contents;\n}, \"de_Rule\");\nvar de_RuleCondition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_F] != null) {\n contents[_F] = (0, import_smithy_client.expectString)(output[_F]);\n }\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n if (output[_HHC] != null) {\n contents[_HHC] = de_HostHeaderConditionConfig(output[_HHC], context);\n }\n if (output[_PPC] != null) {\n contents[_PPC] = de_PathPatternConditionConfig(output[_PPC], context);\n }\n if (output[_HHCt] != null) {\n contents[_HHCt] = de_HttpHeaderConditionConfig(output[_HHCt], context);\n }\n if (output[_QSC] != null) {\n contents[_QSC] = de_QueryStringConditionConfig(output[_QSC], context);\n }\n if (output[_HRMC] != null) {\n contents[_HRMC] = de_HttpRequestMethodConditionConfig(output[_HRMC], context);\n }\n if (output[_SIC] != null) {\n contents[_SIC] = de_SourceIpConditionConfig(output[_SIC], context);\n }\n return contents;\n}, \"de_RuleCondition\");\nvar de_RuleConditionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleCondition(entry, context);\n });\n}, \"de_RuleConditionList\");\nvar de_RuleNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_RuleNotFoundException\");\nvar de_Rules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Rule(entry, context);\n });\n}, \"de_Rules\");\nvar de_SecurityGroups = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroups\");\nvar de_SetIpAddressTypeOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n return contents;\n}, \"de_SetIpAddressTypeOutput\");\nvar de_SetRulePrioritiesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n return contents;\n}, \"de_SetRulePrioritiesOutput\");\nvar de_SetSecurityGroupsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SecurityGroupIds === \"\") {\n contents[_SGI] = [];\n } else if (output[_SGI] != null && output[_SGI][_m] != null) {\n contents[_SGI] = de_SecurityGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_SGI][_m]), context);\n }\n if (output[_ESGIROPLT] != null) {\n contents[_ESGIROPLT] = (0, import_smithy_client.expectString)(output[_ESGIROPLT]);\n }\n return contents;\n}, \"de_SetSecurityGroupsOutput\");\nvar de_SetSubnetsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AvailabilityZones === \"\") {\n contents[_AZv] = [];\n } else if (output[_AZv] != null && output[_AZv][_m] != null) {\n contents[_AZv] = de_AvailabilityZones((0, import_smithy_client.getArrayIfSingleItem)(output[_AZv][_m]), context);\n }\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n if (output[_EPFISN] != null) {\n contents[_EPFISN] = (0, import_smithy_client.expectString)(output[_EPFISN]);\n }\n return contents;\n}, \"de_SetSubnetsOutput\");\nvar de_SourceIpConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_SourceIpConditionConfig\");\nvar de_SourceNatIpv6Prefixes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SourceNatIpv6Prefixes\");\nvar de_SslPolicies = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SslPolicy(entry, context);\n });\n}, \"de_SslPolicies\");\nvar de_SslPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SslProtocols === \"\") {\n contents[_SPsl] = [];\n } else if (output[_SPsl] != null && output[_SPsl][_m] != null) {\n contents[_SPsl] = de_SslProtocols((0, import_smithy_client.getArrayIfSingleItem)(output[_SPsl][_m]), context);\n }\n if (output.Ciphers === \"\") {\n contents[_Ci] = [];\n } else if (output[_Ci] != null && output[_Ci][_m] != null) {\n contents[_Ci] = de_Ciphers((0, import_smithy_client.getArrayIfSingleItem)(output[_Ci][_m]), context);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output.SupportedLoadBalancerTypes === \"\") {\n contents[_SLBT] = [];\n } else if (output[_SLBT] != null && output[_SLBT][_m] != null) {\n contents[_SLBT] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_SLBT][_m]), context);\n }\n return contents;\n}, \"de_SslPolicy\");\nvar de_SSLPolicyNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_SSLPolicyNotFoundException\");\nvar de_SslProtocols = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SslProtocols\");\nvar de_SubnetNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_SubnetNotFoundException\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RAe] != null) {\n contents[_RAe] = (0, import_smithy_client.expectString)(output[_RAe]);\n }\n if (output.Tags === \"\") {\n contents[_Ta] = [];\n } else if (output[_Ta] != null && output[_Ta][_m] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), context);\n }\n return contents;\n}, \"de_TagDescription\");\nvar de_TagDescriptions = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TagDescription(entry, context);\n });\n}, \"de_TagDescriptions\");\nvar de_TagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagList\");\nvar de_TargetDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_Po]);\n }\n if (output[_AZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_AZ]);\n }\n return contents;\n}, \"de_TargetDescription\");\nvar de_TargetGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TGA] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_TGA]);\n }\n if (output[_TGN] != null) {\n contents[_TGN] = (0, import_smithy_client.expectString)(output[_TGN]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_Po]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_HCP] != null) {\n contents[_HCP] = (0, import_smithy_client.expectString)(output[_HCP]);\n }\n if (output[_HCPe] != null) {\n contents[_HCPe] = (0, import_smithy_client.expectString)(output[_HCPe]);\n }\n if (output[_HCE] != null) {\n contents[_HCE] = (0, import_smithy_client.parseBoolean)(output[_HCE]);\n }\n if (output[_HCIS] != null) {\n contents[_HCIS] = (0, import_smithy_client.strictParseInt32)(output[_HCIS]);\n }\n if (output[_HCTS] != null) {\n contents[_HCTS] = (0, import_smithy_client.strictParseInt32)(output[_HCTS]);\n }\n if (output[_HTC] != null) {\n contents[_HTC] = (0, import_smithy_client.strictParseInt32)(output[_HTC]);\n }\n if (output[_UTC] != null) {\n contents[_UTC] = (0, import_smithy_client.strictParseInt32)(output[_UTC]);\n }\n if (output[_HCPea] != null) {\n contents[_HCPea] = (0, import_smithy_client.expectString)(output[_HCPea]);\n }\n if (output[_M] != null) {\n contents[_M] = de_Matcher(output[_M], context);\n }\n if (output.LoadBalancerArns === \"\") {\n contents[_LBAo] = [];\n } else if (output[_LBAo] != null && output[_LBAo][_m] != null) {\n contents[_LBAo] = de_LoadBalancerArns((0, import_smithy_client.getArrayIfSingleItem)(output[_LBAo][_m]), context);\n }\n if (output[_TT] != null) {\n contents[_TT] = (0, import_smithy_client.expectString)(output[_TT]);\n }\n if (output[_PV] != null) {\n contents[_PV] = (0, import_smithy_client.expectString)(output[_PV]);\n }\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n return contents;\n}, \"de_TargetGroup\");\nvar de_TargetGroupAssociationLimitException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TargetGroupAssociationLimitException\");\nvar de_TargetGroupAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_TargetGroupAttribute\");\nvar de_TargetGroupAttributes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroupAttribute(entry, context);\n });\n}, \"de_TargetGroupAttributes\");\nvar de_TargetGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroupTuple(entry, context);\n });\n}, \"de_TargetGroupList\");\nvar de_TargetGroupNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TargetGroupNotFoundException\");\nvar de_TargetGroups = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroup(entry, context);\n });\n}, \"de_TargetGroups\");\nvar de_TargetGroupStickinessConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client.parseBoolean)(output[_E]);\n }\n if (output[_DS] != null) {\n contents[_DS] = (0, import_smithy_client.strictParseInt32)(output[_DS]);\n }\n return contents;\n}, \"de_TargetGroupStickinessConfig\");\nvar de_TargetGroupTuple = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TGA] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_TGA]);\n }\n if (output[_W] != null) {\n contents[_W] = (0, import_smithy_client.strictParseInt32)(output[_W]);\n }\n return contents;\n}, \"de_TargetGroupTuple\");\nvar de_TargetHealth = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n return contents;\n}, \"de_TargetHealth\");\nvar de_TargetHealthDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Targ] != null) {\n contents[_Targ] = de_TargetDescription(output[_Targ], context);\n }\n if (output[_HCPe] != null) {\n contents[_HCPe] = (0, import_smithy_client.expectString)(output[_HCPe]);\n }\n if (output[_TH] != null) {\n contents[_TH] = de_TargetHealth(output[_TH], context);\n }\n if (output[_AD] != null) {\n contents[_AD] = de_AnomalyDetection(output[_AD], context);\n }\n if (output[_AO] != null) {\n contents[_AO] = de_AdministrativeOverride(output[_AO], context);\n }\n return contents;\n}, \"de_TargetHealthDescription\");\nvar de_TargetHealthDescriptions = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetHealthDescription(entry, context);\n });\n}, \"de_TargetHealthDescriptions\");\nvar de_TooManyActionsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyActionsException\");\nvar de_TooManyCertificatesException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyCertificatesException\");\nvar de_TooManyListenersException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyListenersException\");\nvar de_TooManyLoadBalancersException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyLoadBalancersException\");\nvar de_TooManyRegistrationsForTargetIdException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyRegistrationsForTargetIdException\");\nvar de_TooManyRulesException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyRulesException\");\nvar de_TooManyTagsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTagsException\");\nvar de_TooManyTargetGroupsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTargetGroupsException\");\nvar de_TooManyTargetsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTargetsException\");\nvar de_TooManyTrustStoreRevocationEntriesException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTrustStoreRevocationEntriesException\");\nvar de_TooManyTrustStoresException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTrustStoresException\");\nvar de_TooManyUniqueTargetGroupsPerLoadBalancerException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyUniqueTargetGroupsPerLoadBalancerException\");\nvar de_TrustStore = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_Sta] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_Sta]);\n }\n if (output[_NOCC] != null) {\n contents[_NOCC] = (0, import_smithy_client.strictParseInt32)(output[_NOCC]);\n }\n if (output[_TRE] != null) {\n contents[_TRE] = (0, import_smithy_client.strictParseLong)(output[_TRE]);\n }\n return contents;\n}, \"de_TrustStore\");\nvar de_TrustStoreAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RAe] != null) {\n contents[_RAe] = (0, import_smithy_client.expectString)(output[_RAe]);\n }\n return contents;\n}, \"de_TrustStoreAssociation\");\nvar de_TrustStoreAssociationNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreAssociationNotFoundException\");\nvar de_TrustStoreAssociations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrustStoreAssociation(entry, context);\n });\n}, \"de_TrustStoreAssociations\");\nvar de_TrustStoreInUseException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreInUseException\");\nvar de_TrustStoreNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreNotFoundException\");\nvar de_TrustStoreNotReadyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreNotReadyException\");\nvar de_TrustStoreRevocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_RIe] != null) {\n contents[_RIe] = (0, import_smithy_client.strictParseLong)(output[_RIe]);\n }\n if (output[_RTev] != null) {\n contents[_RTev] = (0, import_smithy_client.expectString)(output[_RTev]);\n }\n if (output[_NORE] != null) {\n contents[_NORE] = (0, import_smithy_client.strictParseLong)(output[_NORE]);\n }\n return contents;\n}, \"de_TrustStoreRevocation\");\nvar de_TrustStoreRevocations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrustStoreRevocation(entry, context);\n });\n}, \"de_TrustStoreRevocations\");\nvar de_TrustStores = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrustStore(entry, context);\n });\n}, \"de_TrustStores\");\nvar de_UnsupportedProtocolException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_UnsupportedProtocolException\");\nvar de_ZonalCapacityReservationState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = de_CapacityReservationStatus(output[_St], context);\n }\n if (output[_AZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_AZ]);\n }\n if (output[_ECU] != null) {\n contents[_ECU] = (0, import_smithy_client.strictParseFloat)(output[_ECU]);\n }\n return contents;\n}, \"de_ZonalCapacityReservationState\");\nvar de_ZonalCapacityReservationStates = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ZonalCapacityReservationState(entry, context);\n });\n}, \"de_ZonalCapacityReservationStates\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(ElasticLoadBalancingV2ServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2015-12-01\";\nvar _A = \"Action\";\nvar _ACC = \"AuthenticateCognitoConfig\";\nvar _AD = \"AnomalyDetection\";\nvar _AE = \"AuthorizationEndpoint\";\nvar _AI = \"AllocationId\";\nvar _ALC = \"AddListenerCertificates\";\nvar _AO = \"AdministrativeOverride\";\nvar _AOC = \"AuthenticateOidcConfig\";\nvar _AP = \"AlpnPolicy\";\nvar _AREP = \"AuthenticationRequestExtraParams\";\nvar _AT = \"AddTags\";\nvar _ATSCN = \"AdvertiseTrustStoreCaNames\";\nvar _ATSR = \"AddTrustStoreRevocations\";\nvar _AZ = \"AvailabilityZone\";\nvar _AZv = \"AvailabilityZones\";\nvar _Ac = \"Actions\";\nvar _At = \"Attributes\";\nvar _C = \"Certificates\";\nvar _CA = \"CertificateArn\";\nvar _CCBSB = \"CaCertificatesBundleS3Bucket\";\nvar _CCBSK = \"CaCertificatesBundleS3Key\";\nvar _CCBSOV = \"CaCertificatesBundleS3ObjectVersion\";\nvar _CHZI = \"CanonicalHostedZoneId\";\nvar _CI = \"ClientId\";\nvar _CL = \"CreateListener\";\nvar _CLB = \"CreateLoadBalancer\";\nvar _COIP = \"CustomerOwnedIpv4Pool\";\nvar _CR = \"CreateRule\";\nvar _CRS = \"CapacityReservationState\";\nvar _CS = \"ClientSecret\";\nvar _CT = \"ContentType\";\nvar _CTG = \"CreateTargetGroup\";\nvar _CTS = \"CreateTrustStore\";\nvar _CTr = \"CreatedTime\";\nvar _CU = \"CapacityUnits\";\nvar _Ci = \"Ciphers\";\nvar _Co = \"Conditions\";\nvar _Cod = \"Code\";\nvar _D = \"Description\";\nvar _DA = \"DefaultActions\";\nvar _DAL = \"DescribeAccountLimits\";\nvar _DCR = \"DescribeCapacityReservation\";\nvar _DL = \"DeleteListener\";\nvar _DLA = \"DescribeListenerAttributes\";\nvar _DLB = \"DeleteLoadBalancer\";\nvar _DLBA = \"DescribeLoadBalancerAttributes\";\nvar _DLBe = \"DescribeLoadBalancers\";\nvar _DLC = \"DescribeListenerCertificates\";\nvar _DLe = \"DescribeListeners\";\nvar _DNSN = \"DNSName\";\nvar _DR = \"DeleteRule\";\nvar _DRR = \"DecreaseRequestsRemaining\";\nvar _DRe = \"DescribeRules\";\nvar _DS = \"DurationSeconds\";\nvar _DSSLP = \"DescribeSSLPolicies\";\nvar _DSTSA = \"DeleteSharedTrustStoreAssociation\";\nvar _DT = \"DeregisterTargets\";\nvar _DTG = \"DeleteTargetGroup\";\nvar _DTGA = \"DescribeTargetGroupAttributes\";\nvar _DTGe = \"DescribeTargetGroups\";\nvar _DTH = \"DescribeTargetHealth\";\nvar _DTS = \"DeleteTrustStore\";\nvar _DTSA = \"DescribeTrustStoreAssociations\";\nvar _DTSR = \"DescribeTrustStoreRevocations\";\nvar _DTSe = \"DescribeTrustStores\";\nvar _DTe = \"DescribeTags\";\nvar _E = \"Enabled\";\nvar _ECU = \"EffectiveCapacityUnits\";\nvar _EPFISN = \"EnablePrefixForIpv6SourceNat\";\nvar _ESGIROPLT = \"EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic\";\nvar _F = \"Field\";\nvar _FC = \"ForwardConfig\";\nvar _FRC = \"FixedResponseConfig\";\nvar _GC = \"GrpcCode\";\nvar _GRP = \"GetResourcePolicy\";\nvar _GTSCCB = \"GetTrustStoreCaCertificatesBundle\";\nvar _GTSRC = \"GetTrustStoreRevocationContent\";\nvar _H = \"Host\";\nvar _HC = \"HttpCode\";\nvar _HCE = \"HealthCheckEnabled\";\nvar _HCIS = \"HealthCheckIntervalSeconds\";\nvar _HCP = \"HealthCheckProtocol\";\nvar _HCPe = \"HealthCheckPort\";\nvar _HCPea = \"HealthCheckPath\";\nvar _HCTS = \"HealthCheckTimeoutSeconds\";\nvar _HHC = \"HostHeaderConfig\";\nvar _HHCt = \"HttpHeaderConfig\";\nvar _HHN = \"HttpHeaderName\";\nvar _HRMC = \"HttpRequestMethodConfig\";\nvar _HTC = \"HealthyThresholdCount\";\nvar _I = \"Issuer\";\nvar _IA = \"IpAddress\";\nvar _IAT = \"IpAddressType\";\nvar _ICCE = \"IgnoreClientCertificateExpiry\";\nvar _ID = \"IsDefault\";\nvar _IIPI = \"Ipv4IpamPoolId\";\nvar _IP = \"IpamPools\";\nvar _IPA = \"IPv6Address\";\nvar _Id = \"Id\";\nvar _In = \"Include\";\nvar _K = \"Key\";\nvar _L = \"Listeners\";\nvar _LA = \"ListenerArn\";\nvar _LAi = \"ListenerArns\";\nvar _LB = \"LoadBalancers\";\nvar _LBA = \"LoadBalancerArn\";\nvar _LBAo = \"LoadBalancerArns\";\nvar _LBAoa = \"LoadBalancerAddresses\";\nvar _LBN = \"LoadBalancerName\";\nvar _LBT = \"LoadBalancerType\";\nvar _LMT = \"LastModifiedTime\";\nvar _Li = \"Limits\";\nvar _Lo = \"Location\";\nvar _M = \"Matcher\";\nvar _MA = \"MutualAuthentication\";\nvar _MB = \"MessageBody\";\nvar _MCR = \"ModifyCapacityReservation\";\nvar _MIE = \"MitigationInEffect\";\nvar _MIP = \"ModifyIpPools\";\nvar _ML = \"ModifyListener\";\nvar _MLA = \"ModifyListenerAttributes\";\nvar _MLBA = \"ModifyLoadBalancerAttributes\";\nvar _MLBC = \"MinimumLoadBalancerCapacity\";\nvar _MR = \"ModifyRule\";\nvar _MTG = \"ModifyTargetGroup\";\nvar _MTGA = \"ModifyTargetGroupAttributes\";\nvar _MTS = \"ModifyTrustStore\";\nvar _Ma = \"Marker\";\nvar _Max = \"Max\";\nvar _Me = \"Message\";\nvar _Mo = \"Mode\";\nvar _N = \"Name\";\nvar _NM = \"NextMarker\";\nvar _NOCC = \"NumberOfCaCertificates\";\nvar _NORE = \"NumberOfRevokedEntries\";\nvar _Na = \"Names\";\nvar _O = \"Order\";\nvar _OI = \"OutpostId\";\nvar _OUR = \"OnUnauthenticatedRequest\";\nvar _P = \"Protocol\";\nvar _PIPA = \"PrivateIPv4Address\";\nvar _PPC = \"PathPatternConfig\";\nvar _PS = \"PageSize\";\nvar _PV = \"ProtocolVersion\";\nvar _Pa = \"Path\";\nvar _Po = \"Port\";\nvar _Pol = \"Policy\";\nvar _Pr = \"Priority\";\nvar _Q = \"Query\";\nvar _QSC = \"QueryStringConfig\";\nvar _R = \"Reason\";\nvar _RA = \"ResourceArns\";\nvar _RAe = \"ResourceArn\";\nvar _RAu = \"RuleArn\";\nvar _RAul = \"RuleArns\";\nvar _RC = \"RedirectConfig\";\nvar _RCR = \"ResetCapacityReservation\";\nvar _RCe = \"RevocationContents\";\nvar _RI = \"RevocationIds\";\nvar _RIP = \"RemoveIpamPools\";\nvar _RIe = \"RevocationId\";\nvar _RLC = \"RemoveListenerCertificates\";\nvar _RP = \"RulePriorities\";\nvar _RT = \"RegisterTargets\";\nvar _RTSR = \"RemoveTrustStoreRevocations\";\nvar _RTe = \"RemoveTags\";\nvar _RTev = \"RevocationType\";\nvar _Re = \"Result\";\nvar _Ru = \"Rules\";\nvar _S = \"Scope\";\nvar _SB = \"S3Bucket\";\nvar _SC = \"StatusCode\";\nvar _SCN = \"SessionCookieName\";\nvar _SG = \"SecurityGroups\";\nvar _SGI = \"SecurityGroupIds\";\nvar _SI = \"SubnetId\";\nvar _SIAT = \"SetIpAddressType\";\nvar _SIC = \"SourceIpConfig\";\nvar _SK = \"S3Key\";\nvar _SLBT = \"SupportedLoadBalancerTypes\";\nvar _SM = \"SubnetMappings\";\nvar _SNIP = \"SourceNatIpv6Prefix\";\nvar _SNIPo = \"SourceNatIpv6Prefixes\";\nvar _SOV = \"S3ObjectVersion\";\nvar _SP = \"SslPolicy\";\nvar _SPs = \"SslPolicies\";\nvar _SPsl = \"SslProtocols\";\nvar _SRP = \"SetRulePriorities\";\nvar _SS = \"SetSubnets\";\nvar _SSG = \"SetSecurityGroups\";\nvar _ST = \"SessionTimeout\";\nvar _Sc = \"Scheme\";\nvar _St = \"State\";\nvar _Sta = \"Status\";\nvar _Su = \"Subnets\";\nvar _T = \"Type\";\nvar _TD = \"TagDescriptions\";\nvar _TE = \"TokenEndpoint\";\nvar _TG = \"TargetGroups\";\nvar _TGA = \"TargetGroupArn\";\nvar _TGAa = \"TargetGroupArns\";\nvar _TGN = \"TargetGroupName\";\nvar _TGSC = \"TargetGroupStickinessConfig\";\nvar _TH = \"TargetHealth\";\nvar _THD = \"TargetHealthDescriptions\";\nvar _TK = \"TagKeys\";\nvar _TRE = \"TotalRevokedEntries\";\nvar _TS = \"TrustStores\";\nvar _TSA = \"TrustStoreArn\";\nvar _TSAS = \"TrustStoreAssociationStatus\";\nvar _TSAr = \"TrustStoreArns\";\nvar _TSAru = \"TrustStoreAssociations\";\nvar _TSR = \"TrustStoreRevocations\";\nvar _TT = \"TargetType\";\nvar _Ta = \"Tags\";\nvar _Tar = \"Targets\";\nvar _Targ = \"Target\";\nvar _UECS = \"UseExistingClientSecret\";\nvar _UIE = \"UserInfoEndpoint\";\nvar _UPA = \"UserPoolArn\";\nvar _UPCI = \"UserPoolClientId\";\nvar _UPD = \"UserPoolDomain\";\nvar _UTC = \"UnhealthyThresholdCount\";\nvar _V = \"Version\";\nvar _VI = \"VpcId\";\nvar _Va = \"Values\";\nvar _Val = \"Value\";\nvar _W = \"Weight\";\nvar _ZN = \"ZoneName\";\nvar _e = \"entry\";\nvar _m = \"member\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/commands/AddListenerCertificatesCommand.ts\nvar AddListenerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"AddListenerCertificates\", {}).n(\"ElasticLoadBalancingV2Client\", \"AddListenerCertificatesCommand\").f(void 0, void 0).ser(se_AddListenerCertificatesCommand).de(de_AddListenerCertificatesCommand).build() {\n static {\n __name(this, \"AddListenerCertificatesCommand\");\n }\n};\n\n// src/commands/AddTagsCommand.ts\n\n\n\nvar AddTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"AddTags\", {}).n(\"ElasticLoadBalancingV2Client\", \"AddTagsCommand\").f(void 0, void 0).ser(se_AddTagsCommand).de(de_AddTagsCommand).build() {\n static {\n __name(this, \"AddTagsCommand\");\n }\n};\n\n// src/commands/AddTrustStoreRevocationsCommand.ts\n\n\n\nvar AddTrustStoreRevocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"AddTrustStoreRevocations\", {}).n(\"ElasticLoadBalancingV2Client\", \"AddTrustStoreRevocationsCommand\").f(void 0, void 0).ser(se_AddTrustStoreRevocationsCommand).de(de_AddTrustStoreRevocationsCommand).build() {\n static {\n __name(this, \"AddTrustStoreRevocationsCommand\");\n }\n};\n\n// src/commands/CreateListenerCommand.ts\n\n\n\nvar CreateListenerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateListener\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateListenerCommand\").f(void 0, void 0).ser(se_CreateListenerCommand).de(de_CreateListenerCommand).build() {\n static {\n __name(this, \"CreateListenerCommand\");\n }\n};\n\n// src/commands/CreateLoadBalancerCommand.ts\n\n\n\nvar CreateLoadBalancerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateLoadBalancer\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateLoadBalancerCommand\").f(void 0, void 0).ser(se_CreateLoadBalancerCommand).de(de_CreateLoadBalancerCommand).build() {\n static {\n __name(this, \"CreateLoadBalancerCommand\");\n }\n};\n\n// src/commands/CreateRuleCommand.ts\n\n\n\nvar CreateRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateRule\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateRuleCommand\").f(void 0, void 0).ser(se_CreateRuleCommand).de(de_CreateRuleCommand).build() {\n static {\n __name(this, \"CreateRuleCommand\");\n }\n};\n\n// src/commands/CreateTargetGroupCommand.ts\n\n\n\nvar CreateTargetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateTargetGroup\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateTargetGroupCommand\").f(void 0, void 0).ser(se_CreateTargetGroupCommand).de(de_CreateTargetGroupCommand).build() {\n static {\n __name(this, \"CreateTargetGroupCommand\");\n }\n};\n\n// src/commands/CreateTrustStoreCommand.ts\n\n\n\nvar CreateTrustStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateTrustStore\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateTrustStoreCommand\").f(void 0, void 0).ser(se_CreateTrustStoreCommand).de(de_CreateTrustStoreCommand).build() {\n static {\n __name(this, \"CreateTrustStoreCommand\");\n }\n};\n\n// src/commands/DeleteListenerCommand.ts\n\n\n\nvar DeleteListenerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteListener\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteListenerCommand\").f(void 0, void 0).ser(se_DeleteListenerCommand).de(de_DeleteListenerCommand).build() {\n static {\n __name(this, \"DeleteListenerCommand\");\n }\n};\n\n// src/commands/DeleteLoadBalancerCommand.ts\n\n\n\nvar DeleteLoadBalancerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteLoadBalancer\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteLoadBalancerCommand\").f(void 0, void 0).ser(se_DeleteLoadBalancerCommand).de(de_DeleteLoadBalancerCommand).build() {\n static {\n __name(this, \"DeleteLoadBalancerCommand\");\n }\n};\n\n// src/commands/DeleteRuleCommand.ts\n\n\n\nvar DeleteRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteRule\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteRuleCommand\").f(void 0, void 0).ser(se_DeleteRuleCommand).de(de_DeleteRuleCommand).build() {\n static {\n __name(this, \"DeleteRuleCommand\");\n }\n};\n\n// src/commands/DeleteSharedTrustStoreAssociationCommand.ts\n\n\n\nvar DeleteSharedTrustStoreAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteSharedTrustStoreAssociation\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteSharedTrustStoreAssociationCommand\").f(void 0, void 0).ser(se_DeleteSharedTrustStoreAssociationCommand).de(de_DeleteSharedTrustStoreAssociationCommand).build() {\n static {\n __name(this, \"DeleteSharedTrustStoreAssociationCommand\");\n }\n};\n\n// src/commands/DeleteTargetGroupCommand.ts\n\n\n\nvar DeleteTargetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteTargetGroup\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteTargetGroupCommand\").f(void 0, void 0).ser(se_DeleteTargetGroupCommand).de(de_DeleteTargetGroupCommand).build() {\n static {\n __name(this, \"DeleteTargetGroupCommand\");\n }\n};\n\n// src/commands/DeleteTrustStoreCommand.ts\n\n\n\nvar DeleteTrustStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteTrustStore\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteTrustStoreCommand\").f(void 0, void 0).ser(se_DeleteTrustStoreCommand).de(de_DeleteTrustStoreCommand).build() {\n static {\n __name(this, \"DeleteTrustStoreCommand\");\n }\n};\n\n// src/commands/DeregisterTargetsCommand.ts\n\n\n\nvar DeregisterTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeregisterTargets\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeregisterTargetsCommand\").f(void 0, void 0).ser(se_DeregisterTargetsCommand).de(de_DeregisterTargetsCommand).build() {\n static {\n __name(this, \"DeregisterTargetsCommand\");\n }\n};\n\n// src/commands/DescribeAccountLimitsCommand.ts\n\n\n\nvar DescribeAccountLimitsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeAccountLimits\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeAccountLimitsCommand\").f(void 0, void 0).ser(se_DescribeAccountLimitsCommand).de(de_DescribeAccountLimitsCommand).build() {\n static {\n __name(this, \"DescribeAccountLimitsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationCommand.ts\n\n\n\nvar DescribeCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeCapacityReservation\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeCapacityReservationCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationCommand).de(de_DescribeCapacityReservationCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationCommand\");\n }\n};\n\n// src/commands/DescribeListenerAttributesCommand.ts\n\n\n\nvar DescribeListenerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeListenerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeListenerAttributesCommand\").f(void 0, void 0).ser(se_DescribeListenerAttributesCommand).de(de_DescribeListenerAttributesCommand).build() {\n static {\n __name(this, \"DescribeListenerAttributesCommand\");\n }\n};\n\n// src/commands/DescribeListenerCertificatesCommand.ts\n\n\n\nvar DescribeListenerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeListenerCertificates\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeListenerCertificatesCommand\").f(void 0, void 0).ser(se_DescribeListenerCertificatesCommand).de(de_DescribeListenerCertificatesCommand).build() {\n static {\n __name(this, \"DescribeListenerCertificatesCommand\");\n }\n};\n\n// src/commands/DescribeListenersCommand.ts\n\n\n\nvar DescribeListenersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeListeners\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeListenersCommand\").f(void 0, void 0).ser(se_DescribeListenersCommand).de(de_DescribeListenersCommand).build() {\n static {\n __name(this, \"DescribeListenersCommand\");\n }\n};\n\n// src/commands/DescribeLoadBalancerAttributesCommand.ts\n\n\n\nvar DescribeLoadBalancerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeLoadBalancerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeLoadBalancerAttributesCommand\").f(void 0, void 0).ser(se_DescribeLoadBalancerAttributesCommand).de(de_DescribeLoadBalancerAttributesCommand).build() {\n static {\n __name(this, \"DescribeLoadBalancerAttributesCommand\");\n }\n};\n\n// src/commands/DescribeLoadBalancersCommand.ts\n\n\n\nvar DescribeLoadBalancersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeLoadBalancers\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeLoadBalancersCommand\").f(void 0, void 0).ser(se_DescribeLoadBalancersCommand).de(de_DescribeLoadBalancersCommand).build() {\n static {\n __name(this, \"DescribeLoadBalancersCommand\");\n }\n};\n\n// src/commands/DescribeRulesCommand.ts\n\n\n\nvar DescribeRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeRules\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeRulesCommand\").f(void 0, void 0).ser(se_DescribeRulesCommand).de(de_DescribeRulesCommand).build() {\n static {\n __name(this, \"DescribeRulesCommand\");\n }\n};\n\n// src/commands/DescribeSSLPoliciesCommand.ts\n\n\n\nvar DescribeSSLPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeSSLPolicies\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeSSLPoliciesCommand\").f(void 0, void 0).ser(se_DescribeSSLPoliciesCommand).de(de_DescribeSSLPoliciesCommand).build() {\n static {\n __name(this, \"DescribeSSLPoliciesCommand\");\n }\n};\n\n// src/commands/DescribeTagsCommand.ts\n\n\n\nvar DescribeTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTags\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTagsCommand\").f(void 0, void 0).ser(se_DescribeTagsCommand).de(de_DescribeTagsCommand).build() {\n static {\n __name(this, \"DescribeTagsCommand\");\n }\n};\n\n// src/commands/DescribeTargetGroupAttributesCommand.ts\n\n\n\nvar DescribeTargetGroupAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTargetGroupAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTargetGroupAttributesCommand\").f(void 0, void 0).ser(se_DescribeTargetGroupAttributesCommand).de(de_DescribeTargetGroupAttributesCommand).build() {\n static {\n __name(this, \"DescribeTargetGroupAttributesCommand\");\n }\n};\n\n// src/commands/DescribeTargetGroupsCommand.ts\n\n\n\nvar DescribeTargetGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTargetGroups\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTargetGroupsCommand\").f(void 0, void 0).ser(se_DescribeTargetGroupsCommand).de(de_DescribeTargetGroupsCommand).build() {\n static {\n __name(this, \"DescribeTargetGroupsCommand\");\n }\n};\n\n// src/commands/DescribeTargetHealthCommand.ts\n\n\n\nvar DescribeTargetHealthCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTargetHealth\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTargetHealthCommand\").f(void 0, void 0).ser(se_DescribeTargetHealthCommand).de(de_DescribeTargetHealthCommand).build() {\n static {\n __name(this, \"DescribeTargetHealthCommand\");\n }\n};\n\n// src/commands/DescribeTrustStoreAssociationsCommand.ts\n\n\n\nvar DescribeTrustStoreAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTrustStoreAssociations\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTrustStoreAssociationsCommand\").f(void 0, void 0).ser(se_DescribeTrustStoreAssociationsCommand).de(de_DescribeTrustStoreAssociationsCommand).build() {\n static {\n __name(this, \"DescribeTrustStoreAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeTrustStoreRevocationsCommand.ts\n\n\n\nvar DescribeTrustStoreRevocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTrustStoreRevocations\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTrustStoreRevocationsCommand\").f(void 0, void 0).ser(se_DescribeTrustStoreRevocationsCommand).de(de_DescribeTrustStoreRevocationsCommand).build() {\n static {\n __name(this, \"DescribeTrustStoreRevocationsCommand\");\n }\n};\n\n// src/commands/DescribeTrustStoresCommand.ts\n\n\n\nvar DescribeTrustStoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTrustStores\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTrustStoresCommand\").f(void 0, void 0).ser(se_DescribeTrustStoresCommand).de(de_DescribeTrustStoresCommand).build() {\n static {\n __name(this, \"DescribeTrustStoresCommand\");\n }\n};\n\n// src/commands/GetResourcePolicyCommand.ts\n\n\n\nvar GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"GetResourcePolicy\", {}).n(\"ElasticLoadBalancingV2Client\", \"GetResourcePolicyCommand\").f(void 0, void 0).ser(se_GetResourcePolicyCommand).de(de_GetResourcePolicyCommand).build() {\n static {\n __name(this, \"GetResourcePolicyCommand\");\n }\n};\n\n// src/commands/GetTrustStoreCaCertificatesBundleCommand.ts\n\n\n\nvar GetTrustStoreCaCertificatesBundleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"GetTrustStoreCaCertificatesBundle\", {}).n(\"ElasticLoadBalancingV2Client\", \"GetTrustStoreCaCertificatesBundleCommand\").f(void 0, void 0).ser(se_GetTrustStoreCaCertificatesBundleCommand).de(de_GetTrustStoreCaCertificatesBundleCommand).build() {\n static {\n __name(this, \"GetTrustStoreCaCertificatesBundleCommand\");\n }\n};\n\n// src/commands/GetTrustStoreRevocationContentCommand.ts\n\n\n\nvar GetTrustStoreRevocationContentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"GetTrustStoreRevocationContent\", {}).n(\"ElasticLoadBalancingV2Client\", \"GetTrustStoreRevocationContentCommand\").f(void 0, void 0).ser(se_GetTrustStoreRevocationContentCommand).de(de_GetTrustStoreRevocationContentCommand).build() {\n static {\n __name(this, \"GetTrustStoreRevocationContentCommand\");\n }\n};\n\n// src/commands/ModifyCapacityReservationCommand.ts\n\n\n\nvar ModifyCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyCapacityReservation\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyCapacityReservationCommand\").f(void 0, void 0).ser(se_ModifyCapacityReservationCommand).de(de_ModifyCapacityReservationCommand).build() {\n static {\n __name(this, \"ModifyCapacityReservationCommand\");\n }\n};\n\n// src/commands/ModifyIpPoolsCommand.ts\n\n\n\nvar ModifyIpPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyIpPools\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyIpPoolsCommand\").f(void 0, void 0).ser(se_ModifyIpPoolsCommand).de(de_ModifyIpPoolsCommand).build() {\n static {\n __name(this, \"ModifyIpPoolsCommand\");\n }\n};\n\n// src/commands/ModifyListenerAttributesCommand.ts\n\n\n\nvar ModifyListenerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyListenerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyListenerAttributesCommand\").f(void 0, void 0).ser(se_ModifyListenerAttributesCommand).de(de_ModifyListenerAttributesCommand).build() {\n static {\n __name(this, \"ModifyListenerAttributesCommand\");\n }\n};\n\n// src/commands/ModifyListenerCommand.ts\n\n\n\nvar ModifyListenerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyListener\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyListenerCommand\").f(void 0, void 0).ser(se_ModifyListenerCommand).de(de_ModifyListenerCommand).build() {\n static {\n __name(this, \"ModifyListenerCommand\");\n }\n};\n\n// src/commands/ModifyLoadBalancerAttributesCommand.ts\n\n\n\nvar ModifyLoadBalancerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyLoadBalancerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyLoadBalancerAttributesCommand\").f(void 0, void 0).ser(se_ModifyLoadBalancerAttributesCommand).de(de_ModifyLoadBalancerAttributesCommand).build() {\n static {\n __name(this, \"ModifyLoadBalancerAttributesCommand\");\n }\n};\n\n// src/commands/ModifyRuleCommand.ts\n\n\n\nvar ModifyRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyRule\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyRuleCommand\").f(void 0, void 0).ser(se_ModifyRuleCommand).de(de_ModifyRuleCommand).build() {\n static {\n __name(this, \"ModifyRuleCommand\");\n }\n};\n\n// src/commands/ModifyTargetGroupAttributesCommand.ts\n\n\n\nvar ModifyTargetGroupAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyTargetGroupAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyTargetGroupAttributesCommand\").f(void 0, void 0).ser(se_ModifyTargetGroupAttributesCommand).de(de_ModifyTargetGroupAttributesCommand).build() {\n static {\n __name(this, \"ModifyTargetGroupAttributesCommand\");\n }\n};\n\n// src/commands/ModifyTargetGroupCommand.ts\n\n\n\nvar ModifyTargetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyTargetGroup\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyTargetGroupCommand\").f(void 0, void 0).ser(se_ModifyTargetGroupCommand).de(de_ModifyTargetGroupCommand).build() {\n static {\n __name(this, \"ModifyTargetGroupCommand\");\n }\n};\n\n// src/commands/ModifyTrustStoreCommand.ts\n\n\n\nvar ModifyTrustStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyTrustStore\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyTrustStoreCommand\").f(void 0, void 0).ser(se_ModifyTrustStoreCommand).de(de_ModifyTrustStoreCommand).build() {\n static {\n __name(this, \"ModifyTrustStoreCommand\");\n }\n};\n\n// src/commands/RegisterTargetsCommand.ts\n\n\n\nvar RegisterTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RegisterTargets\", {}).n(\"ElasticLoadBalancingV2Client\", \"RegisterTargetsCommand\").f(void 0, void 0).ser(se_RegisterTargetsCommand).de(de_RegisterTargetsCommand).build() {\n static {\n __name(this, \"RegisterTargetsCommand\");\n }\n};\n\n// src/commands/RemoveListenerCertificatesCommand.ts\n\n\n\nvar RemoveListenerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RemoveListenerCertificates\", {}).n(\"ElasticLoadBalancingV2Client\", \"RemoveListenerCertificatesCommand\").f(void 0, void 0).ser(se_RemoveListenerCertificatesCommand).de(de_RemoveListenerCertificatesCommand).build() {\n static {\n __name(this, \"RemoveListenerCertificatesCommand\");\n }\n};\n\n// src/commands/RemoveTagsCommand.ts\n\n\n\nvar RemoveTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RemoveTags\", {}).n(\"ElasticLoadBalancingV2Client\", \"RemoveTagsCommand\").f(void 0, void 0).ser(se_RemoveTagsCommand).de(de_RemoveTagsCommand).build() {\n static {\n __name(this, \"RemoveTagsCommand\");\n }\n};\n\n// src/commands/RemoveTrustStoreRevocationsCommand.ts\n\n\n\nvar RemoveTrustStoreRevocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RemoveTrustStoreRevocations\", {}).n(\"ElasticLoadBalancingV2Client\", \"RemoveTrustStoreRevocationsCommand\").f(void 0, void 0).ser(se_RemoveTrustStoreRevocationsCommand).de(de_RemoveTrustStoreRevocationsCommand).build() {\n static {\n __name(this, \"RemoveTrustStoreRevocationsCommand\");\n }\n};\n\n// src/commands/SetIpAddressTypeCommand.ts\n\n\n\nvar SetIpAddressTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetIpAddressType\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetIpAddressTypeCommand\").f(void 0, void 0).ser(se_SetIpAddressTypeCommand).de(de_SetIpAddressTypeCommand).build() {\n static {\n __name(this, \"SetIpAddressTypeCommand\");\n }\n};\n\n// src/commands/SetRulePrioritiesCommand.ts\n\n\n\nvar SetRulePrioritiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetRulePriorities\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetRulePrioritiesCommand\").f(void 0, void 0).ser(se_SetRulePrioritiesCommand).de(de_SetRulePrioritiesCommand).build() {\n static {\n __name(this, \"SetRulePrioritiesCommand\");\n }\n};\n\n// src/commands/SetSecurityGroupsCommand.ts\n\n\n\nvar SetSecurityGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetSecurityGroups\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetSecurityGroupsCommand\").f(void 0, void 0).ser(se_SetSecurityGroupsCommand).de(de_SetSecurityGroupsCommand).build() {\n static {\n __name(this, \"SetSecurityGroupsCommand\");\n }\n};\n\n// src/commands/SetSubnetsCommand.ts\n\n\n\nvar SetSubnetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetSubnets\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetSubnetsCommand\").f(void 0, void 0).ser(se_SetSubnetsCommand).de(de_SetSubnetsCommand).build() {\n static {\n __name(this, \"SetSubnetsCommand\");\n }\n};\n\n// src/ElasticLoadBalancingV2.ts\nvar commands = {\n AddListenerCertificatesCommand,\n AddTagsCommand,\n AddTrustStoreRevocationsCommand,\n CreateListenerCommand,\n CreateLoadBalancerCommand,\n CreateRuleCommand,\n CreateTargetGroupCommand,\n CreateTrustStoreCommand,\n DeleteListenerCommand,\n DeleteLoadBalancerCommand,\n DeleteRuleCommand,\n DeleteSharedTrustStoreAssociationCommand,\n DeleteTargetGroupCommand,\n DeleteTrustStoreCommand,\n DeregisterTargetsCommand,\n DescribeAccountLimitsCommand,\n DescribeCapacityReservationCommand,\n DescribeListenerAttributesCommand,\n DescribeListenerCertificatesCommand,\n DescribeListenersCommand,\n DescribeLoadBalancerAttributesCommand,\n DescribeLoadBalancersCommand,\n DescribeRulesCommand,\n DescribeSSLPoliciesCommand,\n DescribeTagsCommand,\n DescribeTargetGroupAttributesCommand,\n DescribeTargetGroupsCommand,\n DescribeTargetHealthCommand,\n DescribeTrustStoreAssociationsCommand,\n DescribeTrustStoreRevocationsCommand,\n DescribeTrustStoresCommand,\n GetResourcePolicyCommand,\n GetTrustStoreCaCertificatesBundleCommand,\n GetTrustStoreRevocationContentCommand,\n ModifyCapacityReservationCommand,\n ModifyIpPoolsCommand,\n ModifyListenerCommand,\n ModifyListenerAttributesCommand,\n ModifyLoadBalancerAttributesCommand,\n ModifyRuleCommand,\n ModifyTargetGroupCommand,\n ModifyTargetGroupAttributesCommand,\n ModifyTrustStoreCommand,\n RegisterTargetsCommand,\n RemoveListenerCertificatesCommand,\n RemoveTagsCommand,\n RemoveTrustStoreRevocationsCommand,\n SetIpAddressTypeCommand,\n SetRulePrioritiesCommand,\n SetSecurityGroupsCommand,\n SetSubnetsCommand\n};\nvar ElasticLoadBalancingV2 = class extends ElasticLoadBalancingV2Client {\n static {\n __name(this, \"ElasticLoadBalancingV2\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, ElasticLoadBalancingV2);\n\n// src/pagination/DescribeListenerCertificatesPaginator.ts\n\nvar paginateDescribeListenerCertificates = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeListenerCertificatesCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeListenersPaginator.ts\n\nvar paginateDescribeListeners = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeListenersCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeLoadBalancersPaginator.ts\n\nvar paginateDescribeLoadBalancers = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeLoadBalancersCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeRulesPaginator.ts\n\nvar paginateDescribeRules = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeRulesCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeTargetGroupsPaginator.ts\n\nvar paginateDescribeTargetGroups = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTargetGroupsCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeTrustStoreAssociationsPaginator.ts\n\nvar paginateDescribeTrustStoreAssociations = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTrustStoreAssociationsCommand, \"Marker\", \"NextMarker\", \"PageSize\");\n\n// src/pagination/DescribeTrustStoreRevocationsPaginator.ts\n\nvar paginateDescribeTrustStoreRevocations = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTrustStoreRevocationsCommand, \"Marker\", \"NextMarker\", \"PageSize\");\n\n// src/pagination/DescribeTrustStoresPaginator.ts\n\nvar paginateDescribeTrustStores = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTrustStoresCommand, \"Marker\", \"NextMarker\", \"PageSize\");\n\n// src/waiters/waitForLoadBalancerAvailable.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeLoadBalancersCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.LoadBalancers);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"active\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.LoadBalancers);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"provisioning\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"LoadBalancerNotFoundException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLoadBalancerAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForLoadBalancerAvailable\");\nvar waitUntilLoadBalancerAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLoadBalancerAvailable\");\n\n// src/waiters/waitForLoadBalancerExists.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeLoadBalancersCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"LoadBalancerNotFoundException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLoadBalancerExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForLoadBalancerExists\");\nvar waitUntilLoadBalancerExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLoadBalancerExists\");\n\n// src/waiters/waitForLoadBalancersDeleted.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeLoadBalancersCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.LoadBalancers);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"active\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"LoadBalancerNotFoundException\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLoadBalancersDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForLoadBalancersDeleted\");\nvar waitUntilLoadBalancersDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLoadBalancersDeleted\");\n\n// src/waiters/waitForTargetDeregistered.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTargetHealthCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.TargetHealthDescriptions);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.TargetHealth.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"unused\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidTargetException\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTargetDeregistered = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForTargetDeregistered\");\nvar waitUntilTargetDeregistered = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTargetDeregistered\");\n\n// src/waiters/waitForTargetInService.ts\n\nvar checkState5 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTargetHealthCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.TargetHealthDescriptions);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.TargetHealth.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"healthy\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstance\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTargetInService = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n}, \"waitForTargetInService\");\nvar waitUntilTargetInService = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTargetInService\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ElasticLoadBalancingV2ServiceException,\n __Client,\n ElasticLoadBalancingV2Client,\n ElasticLoadBalancingV2,\n $Command,\n AddListenerCertificatesCommand,\n AddTagsCommand,\n AddTrustStoreRevocationsCommand,\n CreateListenerCommand,\n CreateLoadBalancerCommand,\n CreateRuleCommand,\n CreateTargetGroupCommand,\n CreateTrustStoreCommand,\n DeleteListenerCommand,\n DeleteLoadBalancerCommand,\n DeleteRuleCommand,\n DeleteSharedTrustStoreAssociationCommand,\n DeleteTargetGroupCommand,\n DeleteTrustStoreCommand,\n DeregisterTargetsCommand,\n DescribeAccountLimitsCommand,\n DescribeCapacityReservationCommand,\n DescribeListenerAttributesCommand,\n DescribeListenerCertificatesCommand,\n DescribeListenersCommand,\n DescribeLoadBalancerAttributesCommand,\n DescribeLoadBalancersCommand,\n DescribeRulesCommand,\n DescribeSSLPoliciesCommand,\n DescribeTagsCommand,\n DescribeTargetGroupAttributesCommand,\n DescribeTargetGroupsCommand,\n DescribeTargetHealthCommand,\n DescribeTrustStoreAssociationsCommand,\n DescribeTrustStoreRevocationsCommand,\n DescribeTrustStoresCommand,\n GetResourcePolicyCommand,\n GetTrustStoreCaCertificatesBundleCommand,\n GetTrustStoreRevocationContentCommand,\n ModifyCapacityReservationCommand,\n ModifyIpPoolsCommand,\n ModifyListenerAttributesCommand,\n ModifyListenerCommand,\n ModifyLoadBalancerAttributesCommand,\n ModifyRuleCommand,\n ModifyTargetGroupAttributesCommand,\n ModifyTargetGroupCommand,\n ModifyTrustStoreCommand,\n RegisterTargetsCommand,\n RemoveListenerCertificatesCommand,\n RemoveTagsCommand,\n RemoveTrustStoreRevocationsCommand,\n SetIpAddressTypeCommand,\n SetRulePrioritiesCommand,\n SetSecurityGroupsCommand,\n SetSubnetsCommand,\n paginateDescribeListenerCertificates,\n paginateDescribeListeners,\n paginateDescribeLoadBalancers,\n paginateDescribeRules,\n paginateDescribeTargetGroups,\n paginateDescribeTrustStoreAssociations,\n paginateDescribeTrustStoreRevocations,\n paginateDescribeTrustStores,\n waitForLoadBalancerAvailable,\n waitUntilLoadBalancerAvailable,\n waitForLoadBalancerExists,\n waitUntilLoadBalancerExists,\n waitForLoadBalancersDeleted,\n waitUntilLoadBalancersDeleted,\n waitForTargetDeregistered,\n waitUntilTargetDeregistered,\n waitForTargetInService,\n waitUntilTargetInService,\n AuthenticateCognitoActionConditionalBehaviorEnum,\n AuthenticateOidcActionConditionalBehaviorEnum,\n RedirectActionStatusCodeEnum,\n ActionTypeEnum,\n CertificateNotFoundException,\n ListenerNotFoundException,\n TooManyCertificatesException,\n DuplicateTagKeysException,\n LoadBalancerNotFoundException,\n RuleNotFoundException,\n TargetGroupNotFoundException,\n TooManyTagsException,\n TrustStoreNotFoundException,\n RevocationType,\n InvalidRevocationContentException,\n RevocationContentNotFoundException,\n TooManyTrustStoreRevocationEntriesException,\n TargetAdministrativeOverrideReasonEnum,\n TargetAdministrativeOverrideStateEnum,\n AdvertiseTrustStoreCaNamesEnum,\n AllocationIdNotFoundException,\n ALPNPolicyNotSupportedException,\n MitigationInEffectEnum,\n AnomalyResultEnum,\n AvailabilityZoneNotSupportedException,\n CaCertificatesBundleNotFoundException,\n CapacityDecreaseRequestsLimitExceededException,\n CapacityReservationPendingException,\n CapacityReservationStateEnum,\n CapacityUnitsLimitExceededException,\n TrustStoreAssociationStatusEnum,\n ProtocolEnum,\n DuplicateListenerException,\n IncompatibleProtocolsException,\n InvalidConfigurationRequestException,\n InvalidLoadBalancerActionException,\n SSLPolicyNotFoundException,\n TargetGroupAssociationLimitException,\n TooManyActionsException,\n TooManyListenersException,\n TooManyRegistrationsForTargetIdException,\n TooManyTargetsException,\n TooManyUniqueTargetGroupsPerLoadBalancerException,\n TrustStoreNotReadyException,\n UnsupportedProtocolException,\n EnablePrefixForIpv6SourceNatEnum,\n IpAddressType,\n LoadBalancerSchemeEnum,\n LoadBalancerTypeEnum,\n LoadBalancerStateEnum,\n DuplicateLoadBalancerNameException,\n InvalidSchemeException,\n InvalidSecurityGroupException,\n InvalidSubnetException,\n OperationNotPermittedException,\n ResourceInUseException,\n SubnetNotFoundException,\n TooManyLoadBalancersException,\n PriorityInUseException,\n TooManyRulesException,\n TooManyTargetGroupsException,\n TargetGroupIpAddressTypeEnum,\n TargetTypeEnum,\n DuplicateTargetGroupNameException,\n TrustStoreStatus,\n DuplicateTrustStoreNameException,\n InvalidCaCertificatesBundleException,\n TooManyTrustStoresException,\n DeleteAssociationSameAccountException,\n TrustStoreAssociationNotFoundException,\n TrustStoreInUseException,\n InvalidTargetException,\n DescribeTargetHealthInputIncludeEnum,\n TargetHealthReasonEnum,\n TargetHealthStateEnum,\n HealthUnavailableException,\n RevocationIdNotFoundException,\n ResourceNotFoundException,\n InsufficientCapacityException,\n PriorRequestNotCompleteException,\n RemoveIpamPoolEnum,\n EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2015-12-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultElasticLoadBalancingV2HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Elastic Load Balancing v2\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultIAMHttpAuthSchemeProvider = exports.defaultIAMHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultIAMHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultIAMHttpAuthSchemeParametersProvider = defaultIAMHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"iam\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultIAMHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultIAMHttpAuthSchemeProvider = defaultIAMHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst H = \"required\", I = \"fn\", J = \"argv\", K = \"ref\", L = \"properties\", M = \"headers\", N = \"authSchemes\", O = \"name\", P = \"signingRegion\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = \"sigv4\", j = { [H]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [H]: false, \"type\": \"String\" }, l = { [K]: \"Endpoint\" }, m = { [I]: c, [J]: [{ [K]: \"UseFIPS\" }, true] }, n = { [I]: c, [J]: [{ [K]: \"UseDualStack\" }, true] }, o = {}, p = { [I]: h, [J]: [{ [I]: \"getAttr\", [J]: [{ [K]: g }, \"name\"] }, \"aws\"] }, q = { [I]: \"getAttr\", [J]: [{ [K]: g }, \"name\"] }, r = { [I]: c, [J]: [{ [K]: \"UseFIPS\" }, false] }, s = { [N]: [{ [O]: i, [P]: \"us-east-1\" }] }, t = { [I]: h, [J]: [q, \"aws-cn\"] }, u = { [N]: [{ [O]: i, [P]: \"cn-north-1\" }] }, v = { [I]: c, [J]: [{ [K]: \"UseDualStack\" }, false] }, w = { [I]: h, [J]: [q, \"aws-us-gov\"] }, x = { \"url\": \"https://iam.us-gov.api.aws\", [L]: { [N]: [{ [O]: i, [P]: \"us-gov-west-1\" }] }, [M]: {} }, y = { \"url\": \"https://iam.us-gov.amazonaws.com\", [L]: { [N]: [{ [O]: i, [P]: \"us-gov-west-1\" }] }, [M]: {} }, z = { [I]: h, [J]: [q, \"aws-iso\"] }, A = { [N]: [{ [O]: i, [P]: \"us-iso-east-1\" }] }, B = { [I]: h, [J]: [q, \"aws-iso-b\"] }, C = { [N]: [{ [O]: i, [P]: \"us-isob-east-1\" }] }, D = { [I]: \"getAttr\", [J]: [{ [K]: g }, \"supportsFIPS\"] }, E = { [I]: c, [J]: [true, { [I]: \"getAttr\", [J]: [{ [K]: g }, \"supportsDualStack\"] }] }, F = { [N]: [{ [O]: i, [P]: \"{PartitionResult#implicitGlobalRegion}\" }] }, G = [{ [K]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { UseDualStack: j, UseFIPS: j, Endpoint: k, Region: k }, rules: [{ conditions: [{ [I]: b, [J]: [l] }], rules: [{ conditions: [m], error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { rules: [{ conditions: [n], error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: l, [L]: o, [M]: o }, type: e }], type: f }], type: f }, { rules: [{ conditions: [{ [I]: b, [J]: G }], rules: [{ conditions: [{ [I]: \"aws.partition\", [J]: G, assign: g }], rules: [{ conditions: [p, r, n], endpoint: { url: \"https://iam.global.api.aws\", [L]: s, [M]: o }, type: e }, { conditions: [p, m, n], endpoint: { url: \"https://iam-fips.global.api.aws\", [L]: s, [M]: o }, type: e }, { conditions: [t, r, n], endpoint: { url: \"https://iam.global.api.amazonwebservices.com.cn\", [L]: u, [M]: o }, type: e }, { conditions: [t, r, v], endpoint: { url: \"https://iam.cn-north-1.amazonaws.com.cn\", [L]: u, [M]: o }, type: e }, { conditions: [w, r, n], endpoint: x, type: e }, { conditions: [w, m, n], endpoint: x, type: e }, { conditions: [w, r, v], endpoint: y, type: e }, { conditions: [w, m, v], endpoint: y, type: e }, { conditions: [z, r, v], endpoint: { url: \"https://iam.us-iso-east-1.c2s.ic.gov\", [L]: A, [M]: o }, type: e }, { conditions: [z, m, v], endpoint: { url: \"https://iam-fips.us-iso-east-1.c2s.ic.gov\", [L]: A, [M]: o }, type: e }, { conditions: [B, r, v], endpoint: { url: \"https://iam.us-isob-east-1.sc2s.sgov.gov\", [L]: C, [M]: o }, type: e }, { conditions: [B, m, v], endpoint: { url: \"https://iam-fips.us-isob-east-1.sc2s.sgov.gov\", [L]: C, [M]: o }, type: e }, { conditions: [{ [I]: h, [J]: [q, \"aws-iso-e\"] }, r, v], endpoint: { url: \"https://iam.eu-isoe-west-1.cloud.adc-e.uk\", [L]: { [N]: [{ [O]: i, [P]: \"eu-isoe-west-1\" }] }, [M]: o }, type: e }, { conditions: [{ [I]: h, [J]: [q, \"aws-iso-f\"] }, r, v], endpoint: { url: \"https://iam.us-isof-south-1.csp.hci.ic.gov\", [L]: { [N]: [{ [O]: i, [P]: \"us-isof-south-1\" }] }, [M]: o }, type: e }, { conditions: [{ [I]: h, [J]: [q, \"aws-eusc\"] }, r, v], endpoint: { url: \"https://iam.eusc-de-east-1.amazonaws.eu\", [L]: { [N]: [{ [O]: i, [P]: \"eusc-de-east-1\" }] }, [M]: o }, type: e }, { conditions: [m, n], rules: [{ conditions: [{ [I]: c, [J]: [a, D] }, E], rules: [{ endpoint: { url: \"https://iam-fips.{PartitionResult#dualStackDnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: [m, v], rules: [{ conditions: [{ [I]: c, [J]: [D, a] }], rules: [{ endpoint: { url: \"https://iam-fips.{PartitionResult#dnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: [r, n], rules: [{ conditions: [E], rules: [{ endpoint: { url: \"https://iam.{PartitionResult#dualStackDnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://iam.{PartitionResult#dnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }], type: f }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessAdvisorUsageGranularityType: () => AccessAdvisorUsageGranularityType,\n AccessKeyFilterSensitiveLog: () => AccessKeyFilterSensitiveLog,\n AccountNotManagementOrDelegatedAdministratorException: () => AccountNotManagementOrDelegatedAdministratorException,\n AddClientIDToOpenIDConnectProviderCommand: () => AddClientIDToOpenIDConnectProviderCommand,\n AddRoleToInstanceProfileCommand: () => AddRoleToInstanceProfileCommand,\n AddUserToGroupCommand: () => AddUserToGroupCommand,\n AssertionEncryptionModeType: () => AssertionEncryptionModeType,\n AssignmentStatusType: () => AssignmentStatusType,\n AttachGroupPolicyCommand: () => AttachGroupPolicyCommand,\n AttachRolePolicyCommand: () => AttachRolePolicyCommand,\n AttachUserPolicyCommand: () => AttachUserPolicyCommand,\n CallerIsNotManagementAccountException: () => CallerIsNotManagementAccountException,\n ChangePasswordCommand: () => ChangePasswordCommand,\n ChangePasswordRequestFilterSensitiveLog: () => ChangePasswordRequestFilterSensitiveLog,\n ConcurrentModificationException: () => ConcurrentModificationException,\n ContextKeyTypeEnum: () => ContextKeyTypeEnum,\n CreateAccessKeyCommand: () => CreateAccessKeyCommand,\n CreateAccessKeyResponseFilterSensitiveLog: () => CreateAccessKeyResponseFilterSensitiveLog,\n CreateAccountAliasCommand: () => CreateAccountAliasCommand,\n CreateGroupCommand: () => CreateGroupCommand,\n CreateInstanceProfileCommand: () => CreateInstanceProfileCommand,\n CreateLoginProfileCommand: () => CreateLoginProfileCommand,\n CreateLoginProfileRequestFilterSensitiveLog: () => CreateLoginProfileRequestFilterSensitiveLog,\n CreateOpenIDConnectProviderCommand: () => CreateOpenIDConnectProviderCommand,\n CreatePolicyCommand: () => CreatePolicyCommand,\n CreatePolicyVersionCommand: () => CreatePolicyVersionCommand,\n CreateRoleCommand: () => CreateRoleCommand,\n CreateSAMLProviderCommand: () => CreateSAMLProviderCommand,\n CreateSAMLProviderRequestFilterSensitiveLog: () => CreateSAMLProviderRequestFilterSensitiveLog,\n CreateServiceLinkedRoleCommand: () => CreateServiceLinkedRoleCommand,\n CreateServiceSpecificCredentialCommand: () => CreateServiceSpecificCredentialCommand,\n CreateServiceSpecificCredentialResponseFilterSensitiveLog: () => CreateServiceSpecificCredentialResponseFilterSensitiveLog,\n CreateUserCommand: () => CreateUserCommand,\n CreateVirtualMFADeviceCommand: () => CreateVirtualMFADeviceCommand,\n CreateVirtualMFADeviceResponseFilterSensitiveLog: () => CreateVirtualMFADeviceResponseFilterSensitiveLog,\n CredentialReportExpiredException: () => CredentialReportExpiredException,\n CredentialReportNotPresentException: () => CredentialReportNotPresentException,\n CredentialReportNotReadyException: () => CredentialReportNotReadyException,\n DeactivateMFADeviceCommand: () => DeactivateMFADeviceCommand,\n DeleteAccessKeyCommand: () => DeleteAccessKeyCommand,\n DeleteAccountAliasCommand: () => DeleteAccountAliasCommand,\n DeleteAccountPasswordPolicyCommand: () => DeleteAccountPasswordPolicyCommand,\n DeleteConflictException: () => DeleteConflictException,\n DeleteGroupCommand: () => DeleteGroupCommand,\n DeleteGroupPolicyCommand: () => DeleteGroupPolicyCommand,\n DeleteInstanceProfileCommand: () => DeleteInstanceProfileCommand,\n DeleteLoginProfileCommand: () => DeleteLoginProfileCommand,\n DeleteOpenIDConnectProviderCommand: () => DeleteOpenIDConnectProviderCommand,\n DeletePolicyCommand: () => DeletePolicyCommand,\n DeletePolicyVersionCommand: () => DeletePolicyVersionCommand,\n DeleteRoleCommand: () => DeleteRoleCommand,\n DeleteRolePermissionsBoundaryCommand: () => DeleteRolePermissionsBoundaryCommand,\n DeleteRolePolicyCommand: () => DeleteRolePolicyCommand,\n DeleteSAMLProviderCommand: () => DeleteSAMLProviderCommand,\n DeleteSSHPublicKeyCommand: () => DeleteSSHPublicKeyCommand,\n DeleteServerCertificateCommand: () => DeleteServerCertificateCommand,\n DeleteServiceLinkedRoleCommand: () => DeleteServiceLinkedRoleCommand,\n DeleteServiceSpecificCredentialCommand: () => DeleteServiceSpecificCredentialCommand,\n DeleteSigningCertificateCommand: () => DeleteSigningCertificateCommand,\n DeleteUserCommand: () => DeleteUserCommand,\n DeleteUserPermissionsBoundaryCommand: () => DeleteUserPermissionsBoundaryCommand,\n DeleteUserPolicyCommand: () => DeleteUserPolicyCommand,\n DeleteVirtualMFADeviceCommand: () => DeleteVirtualMFADeviceCommand,\n DeletionTaskStatusType: () => DeletionTaskStatusType,\n DetachGroupPolicyCommand: () => DetachGroupPolicyCommand,\n DetachRolePolicyCommand: () => DetachRolePolicyCommand,\n DetachUserPolicyCommand: () => DetachUserPolicyCommand,\n DisableOrganizationsRootCredentialsManagementCommand: () => DisableOrganizationsRootCredentialsManagementCommand,\n DisableOrganizationsRootSessionsCommand: () => DisableOrganizationsRootSessionsCommand,\n DuplicateCertificateException: () => DuplicateCertificateException,\n DuplicateSSHPublicKeyException: () => DuplicateSSHPublicKeyException,\n EnableMFADeviceCommand: () => EnableMFADeviceCommand,\n EnableOrganizationsRootCredentialsManagementCommand: () => EnableOrganizationsRootCredentialsManagementCommand,\n EnableOrganizationsRootSessionsCommand: () => EnableOrganizationsRootSessionsCommand,\n EncodingType: () => EncodingType,\n EntityAlreadyExistsException: () => EntityAlreadyExistsException,\n EntityTemporarilyUnmodifiableException: () => EntityTemporarilyUnmodifiableException,\n EntityType: () => EntityType,\n FeatureType: () => FeatureType,\n GenerateCredentialReportCommand: () => GenerateCredentialReportCommand,\n GenerateOrganizationsAccessReportCommand: () => GenerateOrganizationsAccessReportCommand,\n GenerateServiceLastAccessedDetailsCommand: () => GenerateServiceLastAccessedDetailsCommand,\n GetAccessKeyLastUsedCommand: () => GetAccessKeyLastUsedCommand,\n GetAccountAuthorizationDetailsCommand: () => GetAccountAuthorizationDetailsCommand,\n GetAccountPasswordPolicyCommand: () => GetAccountPasswordPolicyCommand,\n GetAccountSummaryCommand: () => GetAccountSummaryCommand,\n GetContextKeysForCustomPolicyCommand: () => GetContextKeysForCustomPolicyCommand,\n GetContextKeysForPrincipalPolicyCommand: () => GetContextKeysForPrincipalPolicyCommand,\n GetCredentialReportCommand: () => GetCredentialReportCommand,\n GetGroupCommand: () => GetGroupCommand,\n GetGroupPolicyCommand: () => GetGroupPolicyCommand,\n GetInstanceProfileCommand: () => GetInstanceProfileCommand,\n GetLoginProfileCommand: () => GetLoginProfileCommand,\n GetMFADeviceCommand: () => GetMFADeviceCommand,\n GetOpenIDConnectProviderCommand: () => GetOpenIDConnectProviderCommand,\n GetOrganizationsAccessReportCommand: () => GetOrganizationsAccessReportCommand,\n GetPolicyCommand: () => GetPolicyCommand,\n GetPolicyVersionCommand: () => GetPolicyVersionCommand,\n GetRoleCommand: () => GetRoleCommand,\n GetRolePolicyCommand: () => GetRolePolicyCommand,\n GetSAMLProviderCommand: () => GetSAMLProviderCommand,\n GetSSHPublicKeyCommand: () => GetSSHPublicKeyCommand,\n GetServerCertificateCommand: () => GetServerCertificateCommand,\n GetServiceLastAccessedDetailsCommand: () => GetServiceLastAccessedDetailsCommand,\n GetServiceLastAccessedDetailsWithEntitiesCommand: () => GetServiceLastAccessedDetailsWithEntitiesCommand,\n GetServiceLinkedRoleDeletionStatusCommand: () => GetServiceLinkedRoleDeletionStatusCommand,\n GetUserCommand: () => GetUserCommand,\n GetUserPolicyCommand: () => GetUserPolicyCommand,\n GlobalEndpointTokenVersion: () => GlobalEndpointTokenVersion,\n IAM: () => IAM,\n IAMClient: () => IAMClient,\n IAMServiceException: () => IAMServiceException,\n InvalidAuthenticationCodeException: () => InvalidAuthenticationCodeException,\n InvalidCertificateException: () => InvalidCertificateException,\n InvalidInputException: () => InvalidInputException,\n InvalidPublicKeyException: () => InvalidPublicKeyException,\n InvalidUserTypeException: () => InvalidUserTypeException,\n JobStatusType: () => JobStatusType,\n KeyPairMismatchException: () => KeyPairMismatchException,\n LimitExceededException: () => LimitExceededException,\n ListAccessKeysCommand: () => ListAccessKeysCommand,\n ListAccountAliasesCommand: () => ListAccountAliasesCommand,\n ListAttachedGroupPoliciesCommand: () => ListAttachedGroupPoliciesCommand,\n ListAttachedRolePoliciesCommand: () => ListAttachedRolePoliciesCommand,\n ListAttachedUserPoliciesCommand: () => ListAttachedUserPoliciesCommand,\n ListEntitiesForPolicyCommand: () => ListEntitiesForPolicyCommand,\n ListGroupPoliciesCommand: () => ListGroupPoliciesCommand,\n ListGroupsCommand: () => ListGroupsCommand,\n ListGroupsForUserCommand: () => ListGroupsForUserCommand,\n ListInstanceProfileTagsCommand: () => ListInstanceProfileTagsCommand,\n ListInstanceProfilesCommand: () => ListInstanceProfilesCommand,\n ListInstanceProfilesForRoleCommand: () => ListInstanceProfilesForRoleCommand,\n ListMFADeviceTagsCommand: () => ListMFADeviceTagsCommand,\n ListMFADevicesCommand: () => ListMFADevicesCommand,\n ListOpenIDConnectProviderTagsCommand: () => ListOpenIDConnectProviderTagsCommand,\n ListOpenIDConnectProvidersCommand: () => ListOpenIDConnectProvidersCommand,\n ListOrganizationsFeaturesCommand: () => ListOrganizationsFeaturesCommand,\n ListPoliciesCommand: () => ListPoliciesCommand,\n ListPoliciesGrantingServiceAccessCommand: () => ListPoliciesGrantingServiceAccessCommand,\n ListPolicyTagsCommand: () => ListPolicyTagsCommand,\n ListPolicyVersionsCommand: () => ListPolicyVersionsCommand,\n ListRolePoliciesCommand: () => ListRolePoliciesCommand,\n ListRoleTagsCommand: () => ListRoleTagsCommand,\n ListRolesCommand: () => ListRolesCommand,\n ListSAMLProviderTagsCommand: () => ListSAMLProviderTagsCommand,\n ListSAMLProvidersCommand: () => ListSAMLProvidersCommand,\n ListSSHPublicKeysCommand: () => ListSSHPublicKeysCommand,\n ListServerCertificateTagsCommand: () => ListServerCertificateTagsCommand,\n ListServerCertificatesCommand: () => ListServerCertificatesCommand,\n ListServiceSpecificCredentialsCommand: () => ListServiceSpecificCredentialsCommand,\n ListSigningCertificatesCommand: () => ListSigningCertificatesCommand,\n ListUserPoliciesCommand: () => ListUserPoliciesCommand,\n ListUserTagsCommand: () => ListUserTagsCommand,\n ListUsersCommand: () => ListUsersCommand,\n ListVirtualMFADevicesCommand: () => ListVirtualMFADevicesCommand,\n ListVirtualMFADevicesResponseFilterSensitiveLog: () => ListVirtualMFADevicesResponseFilterSensitiveLog,\n MalformedCertificateException: () => MalformedCertificateException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n NoSuchEntityException: () => NoSuchEntityException,\n OpenIdIdpCommunicationErrorException: () => OpenIdIdpCommunicationErrorException,\n OrganizationNotFoundException: () => OrganizationNotFoundException,\n OrganizationNotInAllFeaturesModeException: () => OrganizationNotInAllFeaturesModeException,\n PasswordPolicyViolationException: () => PasswordPolicyViolationException,\n PermissionsBoundaryAttachmentType: () => PermissionsBoundaryAttachmentType,\n PolicyEvaluationDecisionType: () => PolicyEvaluationDecisionType,\n PolicyEvaluationException: () => PolicyEvaluationException,\n PolicyNotAttachableException: () => PolicyNotAttachableException,\n PolicyOwnerEntityType: () => PolicyOwnerEntityType,\n PolicyScopeType: () => PolicyScopeType,\n PolicySourceType: () => PolicySourceType,\n PolicyType: () => PolicyType,\n PolicyUsageType: () => PolicyUsageType,\n PutGroupPolicyCommand: () => PutGroupPolicyCommand,\n PutRolePermissionsBoundaryCommand: () => PutRolePermissionsBoundaryCommand,\n PutRolePolicyCommand: () => PutRolePolicyCommand,\n PutUserPermissionsBoundaryCommand: () => PutUserPermissionsBoundaryCommand,\n PutUserPolicyCommand: () => PutUserPolicyCommand,\n RemoveClientIDFromOpenIDConnectProviderCommand: () => RemoveClientIDFromOpenIDConnectProviderCommand,\n RemoveRoleFromInstanceProfileCommand: () => RemoveRoleFromInstanceProfileCommand,\n RemoveUserFromGroupCommand: () => RemoveUserFromGroupCommand,\n ReportFormatType: () => ReportFormatType,\n ReportGenerationLimitExceededException: () => ReportGenerationLimitExceededException,\n ReportStateType: () => ReportStateType,\n ResetServiceSpecificCredentialCommand: () => ResetServiceSpecificCredentialCommand,\n ResetServiceSpecificCredentialResponseFilterSensitiveLog: () => ResetServiceSpecificCredentialResponseFilterSensitiveLog,\n ResyncMFADeviceCommand: () => ResyncMFADeviceCommand,\n ServiceAccessNotEnabledException: () => ServiceAccessNotEnabledException,\n ServiceFailureException: () => ServiceFailureException,\n ServiceNotSupportedException: () => ServiceNotSupportedException,\n ServiceSpecificCredentialFilterSensitiveLog: () => ServiceSpecificCredentialFilterSensitiveLog,\n SetDefaultPolicyVersionCommand: () => SetDefaultPolicyVersionCommand,\n SetSecurityTokenServicePreferencesCommand: () => SetSecurityTokenServicePreferencesCommand,\n SimulateCustomPolicyCommand: () => SimulateCustomPolicyCommand,\n SimulatePrincipalPolicyCommand: () => SimulatePrincipalPolicyCommand,\n SortKeyType: () => SortKeyType,\n StatusType: () => StatusType,\n SummaryKeyType: () => SummaryKeyType,\n TagInstanceProfileCommand: () => TagInstanceProfileCommand,\n TagMFADeviceCommand: () => TagMFADeviceCommand,\n TagOpenIDConnectProviderCommand: () => TagOpenIDConnectProviderCommand,\n TagPolicyCommand: () => TagPolicyCommand,\n TagRoleCommand: () => TagRoleCommand,\n TagSAMLProviderCommand: () => TagSAMLProviderCommand,\n TagServerCertificateCommand: () => TagServerCertificateCommand,\n TagUserCommand: () => TagUserCommand,\n UnmodifiableEntityException: () => UnmodifiableEntityException,\n UnrecognizedPublicKeyEncodingException: () => UnrecognizedPublicKeyEncodingException,\n UntagInstanceProfileCommand: () => UntagInstanceProfileCommand,\n UntagMFADeviceCommand: () => UntagMFADeviceCommand,\n UntagOpenIDConnectProviderCommand: () => UntagOpenIDConnectProviderCommand,\n UntagPolicyCommand: () => UntagPolicyCommand,\n UntagRoleCommand: () => UntagRoleCommand,\n UntagSAMLProviderCommand: () => UntagSAMLProviderCommand,\n UntagServerCertificateCommand: () => UntagServerCertificateCommand,\n UntagUserCommand: () => UntagUserCommand,\n UpdateAccessKeyCommand: () => UpdateAccessKeyCommand,\n UpdateAccountPasswordPolicyCommand: () => UpdateAccountPasswordPolicyCommand,\n UpdateAssumeRolePolicyCommand: () => UpdateAssumeRolePolicyCommand,\n UpdateGroupCommand: () => UpdateGroupCommand,\n UpdateLoginProfileCommand: () => UpdateLoginProfileCommand,\n UpdateLoginProfileRequestFilterSensitiveLog: () => UpdateLoginProfileRequestFilterSensitiveLog,\n UpdateOpenIDConnectProviderThumbprintCommand: () => UpdateOpenIDConnectProviderThumbprintCommand,\n UpdateRoleCommand: () => UpdateRoleCommand,\n UpdateRoleDescriptionCommand: () => UpdateRoleDescriptionCommand,\n UpdateSAMLProviderCommand: () => UpdateSAMLProviderCommand,\n UpdateSAMLProviderRequestFilterSensitiveLog: () => UpdateSAMLProviderRequestFilterSensitiveLog,\n UpdateSSHPublicKeyCommand: () => UpdateSSHPublicKeyCommand,\n UpdateServerCertificateCommand: () => UpdateServerCertificateCommand,\n UpdateServiceSpecificCredentialCommand: () => UpdateServiceSpecificCredentialCommand,\n UpdateSigningCertificateCommand: () => UpdateSigningCertificateCommand,\n UpdateUserCommand: () => UpdateUserCommand,\n UploadSSHPublicKeyCommand: () => UploadSSHPublicKeyCommand,\n UploadServerCertificateCommand: () => UploadServerCertificateCommand,\n UploadServerCertificateRequestFilterSensitiveLog: () => UploadServerCertificateRequestFilterSensitiveLog,\n UploadSigningCertificateCommand: () => UploadSigningCertificateCommand,\n VirtualMFADeviceFilterSensitiveLog: () => VirtualMFADeviceFilterSensitiveLog,\n __Client: () => import_smithy_client.Client,\n paginateGetAccountAuthorizationDetails: () => paginateGetAccountAuthorizationDetails,\n paginateGetGroup: () => paginateGetGroup,\n paginateListAccessKeys: () => paginateListAccessKeys,\n paginateListAccountAliases: () => paginateListAccountAliases,\n paginateListAttachedGroupPolicies: () => paginateListAttachedGroupPolicies,\n paginateListAttachedRolePolicies: () => paginateListAttachedRolePolicies,\n paginateListAttachedUserPolicies: () => paginateListAttachedUserPolicies,\n paginateListEntitiesForPolicy: () => paginateListEntitiesForPolicy,\n paginateListGroupPolicies: () => paginateListGroupPolicies,\n paginateListGroups: () => paginateListGroups,\n paginateListGroupsForUser: () => paginateListGroupsForUser,\n paginateListInstanceProfileTags: () => paginateListInstanceProfileTags,\n paginateListInstanceProfiles: () => paginateListInstanceProfiles,\n paginateListInstanceProfilesForRole: () => paginateListInstanceProfilesForRole,\n paginateListMFADeviceTags: () => paginateListMFADeviceTags,\n paginateListMFADevices: () => paginateListMFADevices,\n paginateListOpenIDConnectProviderTags: () => paginateListOpenIDConnectProviderTags,\n paginateListPolicies: () => paginateListPolicies,\n paginateListPolicyTags: () => paginateListPolicyTags,\n paginateListPolicyVersions: () => paginateListPolicyVersions,\n paginateListRolePolicies: () => paginateListRolePolicies,\n paginateListRoleTags: () => paginateListRoleTags,\n paginateListRoles: () => paginateListRoles,\n paginateListSAMLProviderTags: () => paginateListSAMLProviderTags,\n paginateListSSHPublicKeys: () => paginateListSSHPublicKeys,\n paginateListServerCertificateTags: () => paginateListServerCertificateTags,\n paginateListServerCertificates: () => paginateListServerCertificates,\n paginateListSigningCertificates: () => paginateListSigningCertificates,\n paginateListUserPolicies: () => paginateListUserPolicies,\n paginateListUserTags: () => paginateListUserTags,\n paginateListUsers: () => paginateListUsers,\n paginateListVirtualMFADevices: () => paginateListVirtualMFADevices,\n paginateSimulateCustomPolicy: () => paginateSimulateCustomPolicy,\n paginateSimulatePrincipalPolicy: () => paginateSimulatePrincipalPolicy,\n waitForInstanceProfileExists: () => waitForInstanceProfileExists,\n waitForPolicyExists: () => waitForPolicyExists,\n waitForRoleExists: () => waitForRoleExists,\n waitForUserExists: () => waitForUserExists,\n waitUntilInstanceProfileExists: () => waitUntilInstanceProfileExists,\n waitUntilPolicyExists: () => waitUntilPolicyExists,\n waitUntilRoleExists: () => waitUntilRoleExists,\n waitUntilUserExists: () => waitUntilUserExists\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/IAMClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"iam\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/IAMClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/IAMClient.ts\nvar IAMClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"IAMClient\");\n }\n /**\n * The resolved configuration of IAMClient class. This is resolved and normalized from the {@link IAMClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultIAMHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/IAM.ts\n\n\n// src/commands/AddClientIDToOpenIDConnectProviderCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_query.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/IAMServiceException.ts\n\nvar IAMServiceException = class _IAMServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"IAMServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _IAMServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AccessAdvisorUsageGranularityType = {\n ACTION_LEVEL: \"ACTION_LEVEL\",\n SERVICE_LEVEL: \"SERVICE_LEVEL\"\n};\nvar StatusType = {\n Active: \"Active\",\n Inactive: \"Inactive\"\n};\nvar AccountNotManagementOrDelegatedAdministratorException = class _AccountNotManagementOrDelegatedAdministratorException extends IAMServiceException {\n static {\n __name(this, \"AccountNotManagementOrDelegatedAdministratorException\");\n }\n name = \"AccountNotManagementOrDelegatedAdministratorException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccountNotManagementOrDelegatedAdministratorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccountNotManagementOrDelegatedAdministratorException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInputException = class _InvalidInputException extends IAMServiceException {\n static {\n __name(this, \"InvalidInputException\");\n }\n name = \"InvalidInputException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInputException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInputException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends IAMServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar NoSuchEntityException = class _NoSuchEntityException extends IAMServiceException {\n static {\n __name(this, \"NoSuchEntityException\");\n }\n name = \"NoSuchEntityException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchEntityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchEntityException.prototype);\n }\n};\nvar ServiceFailureException = class _ServiceFailureException extends IAMServiceException {\n static {\n __name(this, \"ServiceFailureException\");\n }\n name = \"ServiceFailureException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceFailureException.prototype);\n }\n};\nvar EntityAlreadyExistsException = class _EntityAlreadyExistsException extends IAMServiceException {\n static {\n __name(this, \"EntityAlreadyExistsException\");\n }\n name = \"EntityAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EntityAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EntityAlreadyExistsException.prototype);\n }\n};\nvar UnmodifiableEntityException = class _UnmodifiableEntityException extends IAMServiceException {\n static {\n __name(this, \"UnmodifiableEntityException\");\n }\n name = \"UnmodifiableEntityException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnmodifiableEntityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnmodifiableEntityException.prototype);\n }\n};\nvar AssertionEncryptionModeType = {\n Allowed: \"Allowed\",\n Required: \"Required\"\n};\nvar AssignmentStatusType = {\n Any: \"Any\",\n Assigned: \"Assigned\",\n Unassigned: \"Unassigned\"\n};\nvar PermissionsBoundaryAttachmentType = {\n Policy: \"PermissionsBoundaryPolicy\"\n};\nvar PolicyNotAttachableException = class _PolicyNotAttachableException extends IAMServiceException {\n static {\n __name(this, \"PolicyNotAttachableException\");\n }\n name = \"PolicyNotAttachableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PolicyNotAttachableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PolicyNotAttachableException.prototype);\n }\n};\nvar EntityTemporarilyUnmodifiableException = class _EntityTemporarilyUnmodifiableException extends IAMServiceException {\n static {\n __name(this, \"EntityTemporarilyUnmodifiableException\");\n }\n name = \"EntityTemporarilyUnmodifiableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EntityTemporarilyUnmodifiableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EntityTemporarilyUnmodifiableException.prototype);\n }\n};\nvar InvalidUserTypeException = class _InvalidUserTypeException extends IAMServiceException {\n static {\n __name(this, \"InvalidUserTypeException\");\n }\n name = \"InvalidUserTypeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidUserTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidUserTypeException.prototype);\n }\n};\nvar PasswordPolicyViolationException = class _PasswordPolicyViolationException extends IAMServiceException {\n static {\n __name(this, \"PasswordPolicyViolationException\");\n }\n name = \"PasswordPolicyViolationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PasswordPolicyViolationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PasswordPolicyViolationException.prototype);\n }\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends IAMServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n }\n};\nvar OpenIdIdpCommunicationErrorException = class _OpenIdIdpCommunicationErrorException extends IAMServiceException {\n static {\n __name(this, \"OpenIdIdpCommunicationErrorException\");\n }\n name = \"OpenIdIdpCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpenIdIdpCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpenIdIdpCommunicationErrorException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends IAMServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar ServiceNotSupportedException = class _ServiceNotSupportedException extends IAMServiceException {\n static {\n __name(this, \"ServiceNotSupportedException\");\n }\n name = \"ServiceNotSupportedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceNotSupportedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceNotSupportedException.prototype);\n }\n};\nvar DeleteConflictException = class _DeleteConflictException extends IAMServiceException {\n static {\n __name(this, \"DeleteConflictException\");\n }\n name = \"DeleteConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DeleteConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DeleteConflictException.prototype);\n }\n};\nvar FeatureType = {\n ROOT_CREDENTIALS_MANAGEMENT: \"RootCredentialsManagement\",\n ROOT_SESSIONS: \"RootSessions\"\n};\nvar OrganizationNotFoundException = class _OrganizationNotFoundException extends IAMServiceException {\n static {\n __name(this, \"OrganizationNotFoundException\");\n }\n name = \"OrganizationNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OrganizationNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OrganizationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OrganizationNotInAllFeaturesModeException = class _OrganizationNotInAllFeaturesModeException extends IAMServiceException {\n static {\n __name(this, \"OrganizationNotInAllFeaturesModeException\");\n }\n name = \"OrganizationNotInAllFeaturesModeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OrganizationNotInAllFeaturesModeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OrganizationNotInAllFeaturesModeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceAccessNotEnabledException = class _ServiceAccessNotEnabledException extends IAMServiceException {\n static {\n __name(this, \"ServiceAccessNotEnabledException\");\n }\n name = \"ServiceAccessNotEnabledException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceAccessNotEnabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceAccessNotEnabledException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAuthenticationCodeException = class _InvalidAuthenticationCodeException extends IAMServiceException {\n static {\n __name(this, \"InvalidAuthenticationCodeException\");\n }\n name = \"InvalidAuthenticationCodeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAuthenticationCodeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAuthenticationCodeException.prototype);\n }\n};\nvar CallerIsNotManagementAccountException = class _CallerIsNotManagementAccountException extends IAMServiceException {\n static {\n __name(this, \"CallerIsNotManagementAccountException\");\n }\n name = \"CallerIsNotManagementAccountException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CallerIsNotManagementAccountException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CallerIsNotManagementAccountException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ReportStateType = {\n COMPLETE: \"COMPLETE\",\n INPROGRESS: \"INPROGRESS\",\n STARTED: \"STARTED\"\n};\nvar ReportGenerationLimitExceededException = class _ReportGenerationLimitExceededException extends IAMServiceException {\n static {\n __name(this, \"ReportGenerationLimitExceededException\");\n }\n name = \"ReportGenerationLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ReportGenerationLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ReportGenerationLimitExceededException.prototype);\n }\n};\nvar EntityType = {\n AWSManagedPolicy: \"AWSManagedPolicy\",\n Group: \"Group\",\n LocalManagedPolicy: \"LocalManagedPolicy\",\n Role: \"Role\",\n User: \"User\"\n};\nvar SummaryKeyType = {\n AccessKeysPerUserQuota: \"AccessKeysPerUserQuota\",\n AccountAccessKeysPresent: \"AccountAccessKeysPresent\",\n AccountMFAEnabled: \"AccountMFAEnabled\",\n AccountPasswordPresent: \"AccountPasswordPresent\",\n AccountSigningCertificatesPresent: \"AccountSigningCertificatesPresent\",\n AttachedPoliciesPerGroupQuota: \"AttachedPoliciesPerGroupQuota\",\n AttachedPoliciesPerRoleQuota: \"AttachedPoliciesPerRoleQuota\",\n AttachedPoliciesPerUserQuota: \"AttachedPoliciesPerUserQuota\",\n GlobalEndpointTokenVersion: \"GlobalEndpointTokenVersion\",\n GroupPolicySizeQuota: \"GroupPolicySizeQuota\",\n Groups: \"Groups\",\n GroupsPerUserQuota: \"GroupsPerUserQuota\",\n GroupsQuota: \"GroupsQuota\",\n MFADevices: \"MFADevices\",\n MFADevicesInUse: \"MFADevicesInUse\",\n Policies: \"Policies\",\n PoliciesQuota: \"PoliciesQuota\",\n PolicySizeQuota: \"PolicySizeQuota\",\n PolicyVersionsInUse: \"PolicyVersionsInUse\",\n PolicyVersionsInUseQuota: \"PolicyVersionsInUseQuota\",\n ServerCertificates: \"ServerCertificates\",\n ServerCertificatesQuota: \"ServerCertificatesQuota\",\n SigningCertificatesPerUserQuota: \"SigningCertificatesPerUserQuota\",\n UserPolicySizeQuota: \"UserPolicySizeQuota\",\n Users: \"Users\",\n UsersQuota: \"UsersQuota\",\n VersionsPerPolicyQuota: \"VersionsPerPolicyQuota\"\n};\nvar CredentialReportExpiredException = class _CredentialReportExpiredException extends IAMServiceException {\n static {\n __name(this, \"CredentialReportExpiredException\");\n }\n name = \"CredentialReportExpiredException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CredentialReportExpiredException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CredentialReportExpiredException.prototype);\n }\n};\nvar CredentialReportNotPresentException = class _CredentialReportNotPresentException extends IAMServiceException {\n static {\n __name(this, \"CredentialReportNotPresentException\");\n }\n name = \"CredentialReportNotPresentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CredentialReportNotPresentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CredentialReportNotPresentException.prototype);\n }\n};\nvar CredentialReportNotReadyException = class _CredentialReportNotReadyException extends IAMServiceException {\n static {\n __name(this, \"CredentialReportNotReadyException\");\n }\n name = \"CredentialReportNotReadyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CredentialReportNotReadyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CredentialReportNotReadyException.prototype);\n }\n};\nvar ReportFormatType = {\n text_csv: \"text/csv\"\n};\nvar SortKeyType = {\n LAST_AUTHENTICATED_TIME_ASCENDING: \"LAST_AUTHENTICATED_TIME_ASCENDING\",\n LAST_AUTHENTICATED_TIME_DESCENDING: \"LAST_AUTHENTICATED_TIME_DESCENDING\",\n SERVICE_NAMESPACE_ASCENDING: \"SERVICE_NAMESPACE_ASCENDING\",\n SERVICE_NAMESPACE_DESCENDING: \"SERVICE_NAMESPACE_DESCENDING\"\n};\nvar JobStatusType = {\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar PolicyOwnerEntityType = {\n GROUP: \"GROUP\",\n ROLE: \"ROLE\",\n USER: \"USER\"\n};\nvar DeletionTaskStatusType = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n NOT_STARTED: \"NOT_STARTED\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar EncodingType = {\n PEM: \"PEM\",\n SSH: \"SSH\"\n};\nvar UnrecognizedPublicKeyEncodingException = class _UnrecognizedPublicKeyEncodingException extends IAMServiceException {\n static {\n __name(this, \"UnrecognizedPublicKeyEncodingException\");\n }\n name = \"UnrecognizedPublicKeyEncodingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnrecognizedPublicKeyEncodingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnrecognizedPublicKeyEncodingException.prototype);\n }\n};\nvar PolicyUsageType = {\n PermissionsBoundary: \"PermissionsBoundary\",\n PermissionsPolicy: \"PermissionsPolicy\"\n};\nvar PolicyScopeType = {\n AWS: \"AWS\",\n All: \"All\",\n Local: \"Local\"\n};\nvar PolicyType = {\n INLINE: \"INLINE\",\n MANAGED: \"MANAGED\"\n};\nvar GlobalEndpointTokenVersion = {\n v1Token: \"v1Token\",\n v2Token: \"v2Token\"\n};\nvar PolicyEvaluationException = class _PolicyEvaluationException extends IAMServiceException {\n static {\n __name(this, \"PolicyEvaluationException\");\n }\n name = \"PolicyEvaluationException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PolicyEvaluationException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _PolicyEvaluationException.prototype);\n }\n};\nvar ContextKeyTypeEnum = {\n BINARY: \"binary\",\n BINARY_LIST: \"binaryList\",\n BOOLEAN: \"boolean\",\n BOOLEAN_LIST: \"booleanList\",\n DATE: \"date\",\n DATE_LIST: \"dateList\",\n IP: \"ip\",\n IP_LIST: \"ipList\",\n NUMERIC: \"numeric\",\n NUMERIC_LIST: \"numericList\",\n STRING: \"string\",\n STRING_LIST: \"stringList\"\n};\nvar AccessKeyFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING }\n}), \"AccessKeyFilterSensitiveLog\");\nvar ChangePasswordRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OldPassword && { OldPassword: import_smithy_client.SENSITIVE_STRING },\n ...obj.NewPassword && { NewPassword: import_smithy_client.SENSITIVE_STRING }\n}), \"ChangePasswordRequestFilterSensitiveLog\");\nvar CreateAccessKeyResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AccessKey && { AccessKey: AccessKeyFilterSensitiveLog(obj.AccessKey) }\n}), \"CreateAccessKeyResponseFilterSensitiveLog\");\nvar CreateLoginProfileRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Password && { Password: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateLoginProfileRequestFilterSensitiveLog\");\nvar CreateSAMLProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AddPrivateKey && { AddPrivateKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateSAMLProviderRequestFilterSensitiveLog\");\nvar ServiceSpecificCredentialFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServicePassword && { ServicePassword: import_smithy_client.SENSITIVE_STRING }\n}), \"ServiceSpecificCredentialFilterSensitiveLog\");\nvar CreateServiceSpecificCredentialResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServiceSpecificCredential && {\n ServiceSpecificCredential: ServiceSpecificCredentialFilterSensitiveLog(obj.ServiceSpecificCredential)\n }\n}), \"CreateServiceSpecificCredentialResponseFilterSensitiveLog\");\nvar VirtualMFADeviceFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Base32StringSeed && { Base32StringSeed: import_smithy_client.SENSITIVE_STRING },\n ...obj.QRCodePNG && { QRCodePNG: import_smithy_client.SENSITIVE_STRING }\n}), \"VirtualMFADeviceFilterSensitiveLog\");\nvar CreateVirtualMFADeviceResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VirtualMFADevice && { VirtualMFADevice: VirtualMFADeviceFilterSensitiveLog(obj.VirtualMFADevice) }\n}), \"CreateVirtualMFADeviceResponseFilterSensitiveLog\");\nvar ListVirtualMFADevicesResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VirtualMFADevices && {\n VirtualMFADevices: obj.VirtualMFADevices.map((item) => VirtualMFADeviceFilterSensitiveLog(item))\n }\n}), \"ListVirtualMFADevicesResponseFilterSensitiveLog\");\nvar ResetServiceSpecificCredentialResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServiceSpecificCredential && {\n ServiceSpecificCredential: ServiceSpecificCredentialFilterSensitiveLog(obj.ServiceSpecificCredential)\n }\n}), \"ResetServiceSpecificCredentialResponseFilterSensitiveLog\");\n\n// src/models/models_1.ts\n\nvar PolicyEvaluationDecisionType = {\n ALLOWED: \"allowed\",\n EXPLICIT_DENY: \"explicitDeny\",\n IMPLICIT_DENY: \"implicitDeny\"\n};\nvar PolicySourceType = {\n AWS_MANAGED: \"aws-managed\",\n GROUP: \"group\",\n NONE: \"none\",\n RESOURCE: \"resource\",\n ROLE: \"role\",\n USER: \"user\",\n USER_MANAGED: \"user-managed\"\n};\nvar KeyPairMismatchException = class _KeyPairMismatchException extends IAMServiceException {\n static {\n __name(this, \"KeyPairMismatchException\");\n }\n name = \"KeyPairMismatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeyPairMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeyPairMismatchException.prototype);\n }\n};\nvar MalformedCertificateException = class _MalformedCertificateException extends IAMServiceException {\n static {\n __name(this, \"MalformedCertificateException\");\n }\n name = \"MalformedCertificateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedCertificateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedCertificateException.prototype);\n }\n};\nvar DuplicateCertificateException = class _DuplicateCertificateException extends IAMServiceException {\n static {\n __name(this, \"DuplicateCertificateException\");\n }\n name = \"DuplicateCertificateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateCertificateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateCertificateException.prototype);\n }\n};\nvar InvalidCertificateException = class _InvalidCertificateException extends IAMServiceException {\n static {\n __name(this, \"InvalidCertificateException\");\n }\n name = \"InvalidCertificateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCertificateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCertificateException.prototype);\n }\n};\nvar DuplicateSSHPublicKeyException = class _DuplicateSSHPublicKeyException extends IAMServiceException {\n static {\n __name(this, \"DuplicateSSHPublicKeyException\");\n }\n name = \"DuplicateSSHPublicKeyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateSSHPublicKeyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateSSHPublicKeyException.prototype);\n }\n};\nvar InvalidPublicKeyException = class _InvalidPublicKeyException extends IAMServiceException {\n static {\n __name(this, \"InvalidPublicKeyException\");\n }\n name = \"InvalidPublicKeyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPublicKeyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPublicKeyException.prototype);\n }\n};\nvar UpdateLoginProfileRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Password && { Password: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateLoginProfileRequestFilterSensitiveLog\");\nvar UpdateSAMLProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AddPrivateKey && { AddPrivateKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateSAMLProviderRequestFilterSensitiveLog\");\nvar UploadServerCertificateRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PrivateKey && { PrivateKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadServerCertificateRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_query.ts\nvar se_AddClientIDToOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddClientIDToOpenIDConnectProviderRequest(input, context),\n [_A]: _ACIDTOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddClientIDToOpenIDConnectProviderCommand\");\nvar se_AddRoleToInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddRoleToInstanceProfileRequest(input, context),\n [_A]: _ARTIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddRoleToInstanceProfileCommand\");\nvar se_AddUserToGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddUserToGroupRequest(input, context),\n [_A]: _AUTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddUserToGroupCommand\");\nvar se_AttachGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachGroupPolicyRequest(input, context),\n [_A]: _AGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachGroupPolicyCommand\");\nvar se_AttachRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachRolePolicyRequest(input, context),\n [_A]: _ARP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachRolePolicyCommand\");\nvar se_AttachUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachUserPolicyRequest(input, context),\n [_A]: _AUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachUserPolicyCommand\");\nvar se_ChangePasswordCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ChangePasswordRequest(input, context),\n [_A]: _CP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ChangePasswordCommand\");\nvar se_CreateAccessKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateAccessKeyRequest(input, context),\n [_A]: _CAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAccessKeyCommand\");\nvar se_CreateAccountAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateAccountAliasRequest(input, context),\n [_A]: _CAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAccountAliasCommand\");\nvar se_CreateGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateGroupRequest(input, context),\n [_A]: _CG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateGroupCommand\");\nvar se_CreateInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceProfileRequest(input, context),\n [_A]: _CIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceProfileCommand\");\nvar se_CreateLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLoginProfileRequest(input, context),\n [_A]: _CLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLoginProfileCommand\");\nvar se_CreateOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateOpenIDConnectProviderRequest(input, context),\n [_A]: _COIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateOpenIDConnectProviderCommand\");\nvar se_CreatePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePolicyRequest(input, context),\n [_A]: _CPr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePolicyCommand\");\nvar se_CreatePolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePolicyVersionRequest(input, context),\n [_A]: _CPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePolicyVersionCommand\");\nvar se_CreateRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRoleRequest(input, context),\n [_A]: _CR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRoleCommand\");\nvar se_CreateSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSAMLProviderRequest(input, context),\n [_A]: _CSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSAMLProviderCommand\");\nvar se_CreateServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateServiceLinkedRoleRequest(input, context),\n [_A]: _CSLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateServiceLinkedRoleCommand\");\nvar se_CreateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateServiceSpecificCredentialRequest(input, context),\n [_A]: _CSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateServiceSpecificCredentialCommand\");\nvar se_CreateUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateUserRequest(input, context),\n [_A]: _CU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateUserCommand\");\nvar se_CreateVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVirtualMFADeviceRequest(input, context),\n [_A]: _CVMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVirtualMFADeviceCommand\");\nvar se_DeactivateMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeactivateMFADeviceRequest(input, context),\n [_A]: _DMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeactivateMFADeviceCommand\");\nvar se_DeleteAccessKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteAccessKeyRequest(input, context),\n [_A]: _DAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccessKeyCommand\");\nvar se_DeleteAccountAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteAccountAliasRequest(input, context),\n [_A]: _DAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountAliasCommand\");\nvar se_DeleteAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _DAPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountPasswordPolicyCommand\");\nvar se_DeleteGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteGroupRequest(input, context),\n [_A]: _DG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteGroupCommand\");\nvar se_DeleteGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteGroupPolicyRequest(input, context),\n [_A]: _DGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteGroupPolicyCommand\");\nvar se_DeleteInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInstanceProfileRequest(input, context),\n [_A]: _DIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInstanceProfileCommand\");\nvar se_DeleteLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLoginProfileRequest(input, context),\n [_A]: _DLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLoginProfileCommand\");\nvar se_DeleteOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteOpenIDConnectProviderRequest(input, context),\n [_A]: _DOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteOpenIDConnectProviderCommand\");\nvar se_DeletePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePolicyRequest(input, context),\n [_A]: _DP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePolicyCommand\");\nvar se_DeletePolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePolicyVersionRequest(input, context),\n [_A]: _DPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePolicyVersionCommand\");\nvar se_DeleteRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRoleRequest(input, context),\n [_A]: _DR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRoleCommand\");\nvar se_DeleteRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRolePermissionsBoundaryRequest(input, context),\n [_A]: _DRPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRolePermissionsBoundaryCommand\");\nvar se_DeleteRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRolePolicyRequest(input, context),\n [_A]: _DRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRolePolicyCommand\");\nvar se_DeleteSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSAMLProviderRequest(input, context),\n [_A]: _DSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSAMLProviderCommand\");\nvar se_DeleteServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteServerCertificateRequest(input, context),\n [_A]: _DSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServerCertificateCommand\");\nvar se_DeleteServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteServiceLinkedRoleRequest(input, context),\n [_A]: _DSLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServiceLinkedRoleCommand\");\nvar se_DeleteServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteServiceSpecificCredentialRequest(input, context),\n [_A]: _DSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServiceSpecificCredentialCommand\");\nvar se_DeleteSigningCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSigningCertificateRequest(input, context),\n [_A]: _DSCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSigningCertificateCommand\");\nvar se_DeleteSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSSHPublicKeyRequest(input, context),\n [_A]: _DSSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSSHPublicKeyCommand\");\nvar se_DeleteUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteUserRequest(input, context),\n [_A]: _DU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteUserCommand\");\nvar se_DeleteUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteUserPermissionsBoundaryRequest(input, context),\n [_A]: _DUPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteUserPermissionsBoundaryCommand\");\nvar se_DeleteUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteUserPolicyRequest(input, context),\n [_A]: _DUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteUserPolicyCommand\");\nvar se_DeleteVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVirtualMFADeviceRequest(input, context),\n [_A]: _DVMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVirtualMFADeviceCommand\");\nvar se_DetachGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachGroupPolicyRequest(input, context),\n [_A]: _DGPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachGroupPolicyCommand\");\nvar se_DetachRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachRolePolicyRequest(input, context),\n [_A]: _DRPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachRolePolicyCommand\");\nvar se_DetachUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachUserPolicyRequest(input, context),\n [_A]: _DUPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachUserPolicyCommand\");\nvar se_DisableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableOrganizationsRootCredentialsManagementRequest(input, context),\n [_A]: _DORCM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableOrganizationsRootCredentialsManagementCommand\");\nvar se_DisableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableOrganizationsRootSessionsRequest(input, context),\n [_A]: _DORS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableOrganizationsRootSessionsCommand\");\nvar se_EnableMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableMFADeviceRequest(input, context),\n [_A]: _EMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableMFADeviceCommand\");\nvar se_EnableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableOrganizationsRootCredentialsManagementRequest(input, context),\n [_A]: _EORCM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableOrganizationsRootCredentialsManagementCommand\");\nvar se_EnableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableOrganizationsRootSessionsRequest(input, context),\n [_A]: _EORS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableOrganizationsRootSessionsCommand\");\nvar se_GenerateCredentialReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateCredentialReportCommand\");\nvar se_GenerateOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GenerateOrganizationsAccessReportRequest(input, context),\n [_A]: _GOAR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateOrganizationsAccessReportCommand\");\nvar se_GenerateServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GenerateServiceLastAccessedDetailsRequest(input, context),\n [_A]: _GSLAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateServiceLastAccessedDetailsCommand\");\nvar se_GetAccessKeyLastUsedCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAccessKeyLastUsedRequest(input, context),\n [_A]: _GAKLU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccessKeyLastUsedCommand\");\nvar se_GetAccountAuthorizationDetailsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAccountAuthorizationDetailsRequest(input, context),\n [_A]: _GAAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountAuthorizationDetailsCommand\");\nvar se_GetAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GAPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountPasswordPolicyCommand\");\nvar se_GetAccountSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountSummaryCommand\");\nvar se_GetContextKeysForCustomPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetContextKeysForCustomPolicyRequest(input, context),\n [_A]: _GCKFCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetContextKeysForCustomPolicyCommand\");\nvar se_GetContextKeysForPrincipalPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetContextKeysForPrincipalPolicyRequest(input, context),\n [_A]: _GCKFPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetContextKeysForPrincipalPolicyCommand\");\nvar se_GetCredentialReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GCRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCredentialReportCommand\");\nvar se_GetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetGroupRequest(input, context),\n [_A]: _GG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetGroupCommand\");\nvar se_GetGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetGroupPolicyRequest(input, context),\n [_A]: _GGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetGroupPolicyCommand\");\nvar se_GetInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceProfileRequest(input, context),\n [_A]: _GIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceProfileCommand\");\nvar se_GetLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetLoginProfileRequest(input, context),\n [_A]: _GLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLoginProfileCommand\");\nvar se_GetMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetMFADeviceRequest(input, context),\n [_A]: _GMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMFADeviceCommand\");\nvar se_GetOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetOpenIDConnectProviderRequest(input, context),\n [_A]: _GOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpenIDConnectProviderCommand\");\nvar se_GetOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetOrganizationsAccessReportRequest(input, context),\n [_A]: _GOARe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOrganizationsAccessReportCommand\");\nvar se_GetPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetPolicyRequest(input, context),\n [_A]: _GP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPolicyCommand\");\nvar se_GetPolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetPolicyVersionRequest(input, context),\n [_A]: _GPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPolicyVersionCommand\");\nvar se_GetRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRoleRequest(input, context),\n [_A]: _GR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRoleCommand\");\nvar se_GetRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRolePolicyRequest(input, context),\n [_A]: _GRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRolePolicyCommand\");\nvar se_GetSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSAMLProviderRequest(input, context),\n [_A]: _GSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSAMLProviderCommand\");\nvar se_GetServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServerCertificateRequest(input, context),\n [_A]: _GSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServerCertificateCommand\");\nvar se_GetServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServiceLastAccessedDetailsRequest(input, context),\n [_A]: _GSLADe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceLastAccessedDetailsCommand\");\nvar se_GetServiceLastAccessedDetailsWithEntitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServiceLastAccessedDetailsWithEntitiesRequest(input, context),\n [_A]: _GSLADWE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceLastAccessedDetailsWithEntitiesCommand\");\nvar se_GetServiceLinkedRoleDeletionStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServiceLinkedRoleDeletionStatusRequest(input, context),\n [_A]: _GSLRDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceLinkedRoleDeletionStatusCommand\");\nvar se_GetSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSSHPublicKeyRequest(input, context),\n [_A]: _GSSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSSHPublicKeyCommand\");\nvar se_GetUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetUserRequest(input, context),\n [_A]: _GU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetUserCommand\");\nvar se_GetUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetUserPolicyRequest(input, context),\n [_A]: _GUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetUserPolicyCommand\");\nvar se_ListAccessKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAccessKeysRequest(input, context),\n [_A]: _LAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAccessKeysCommand\");\nvar se_ListAccountAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAccountAliasesRequest(input, context),\n [_A]: _LAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAccountAliasesCommand\");\nvar se_ListAttachedGroupPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAttachedGroupPoliciesRequest(input, context),\n [_A]: _LAGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttachedGroupPoliciesCommand\");\nvar se_ListAttachedRolePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAttachedRolePoliciesRequest(input, context),\n [_A]: _LARP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttachedRolePoliciesCommand\");\nvar se_ListAttachedUserPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAttachedUserPoliciesRequest(input, context),\n [_A]: _LAUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttachedUserPoliciesCommand\");\nvar se_ListEntitiesForPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListEntitiesForPolicyRequest(input, context),\n [_A]: _LEFP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListEntitiesForPolicyCommand\");\nvar se_ListGroupPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListGroupPoliciesRequest(input, context),\n [_A]: _LGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGroupPoliciesCommand\");\nvar se_ListGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListGroupsRequest(input, context),\n [_A]: _LG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGroupsCommand\");\nvar se_ListGroupsForUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListGroupsForUserRequest(input, context),\n [_A]: _LGFU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGroupsForUserCommand\");\nvar se_ListInstanceProfilesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListInstanceProfilesRequest(input, context),\n [_A]: _LIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInstanceProfilesCommand\");\nvar se_ListInstanceProfilesForRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListInstanceProfilesForRoleRequest(input, context),\n [_A]: _LIPFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInstanceProfilesForRoleCommand\");\nvar se_ListInstanceProfileTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListInstanceProfileTagsRequest(input, context),\n [_A]: _LIPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInstanceProfileTagsCommand\");\nvar se_ListMFADevicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListMFADevicesRequest(input, context),\n [_A]: _LMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListMFADevicesCommand\");\nvar se_ListMFADeviceTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListMFADeviceTagsRequest(input, context),\n [_A]: _LMFADT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListMFADeviceTagsCommand\");\nvar se_ListOpenIDConnectProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListOpenIDConnectProvidersRequest(input, context),\n [_A]: _LOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpenIDConnectProvidersCommand\");\nvar se_ListOpenIDConnectProviderTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListOpenIDConnectProviderTagsRequest(input, context),\n [_A]: _LOIDCPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpenIDConnectProviderTagsCommand\");\nvar se_ListOrganizationsFeaturesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListOrganizationsFeaturesRequest(input, context),\n [_A]: _LOF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOrganizationsFeaturesCommand\");\nvar se_ListPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPoliciesRequest(input, context),\n [_A]: _LP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPoliciesCommand\");\nvar se_ListPoliciesGrantingServiceAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPoliciesGrantingServiceAccessRequest(input, context),\n [_A]: _LPGSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPoliciesGrantingServiceAccessCommand\");\nvar se_ListPolicyTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPolicyTagsRequest(input, context),\n [_A]: _LPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPolicyTagsCommand\");\nvar se_ListPolicyVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPolicyVersionsRequest(input, context),\n [_A]: _LPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPolicyVersionsCommand\");\nvar se_ListRolePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListRolePoliciesRequest(input, context),\n [_A]: _LRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRolePoliciesCommand\");\nvar se_ListRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListRolesRequest(input, context),\n [_A]: _LR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRolesCommand\");\nvar se_ListRoleTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListRoleTagsRequest(input, context),\n [_A]: _LRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRoleTagsCommand\");\nvar se_ListSAMLProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSAMLProvidersRequest(input, context),\n [_A]: _LSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSAMLProvidersCommand\");\nvar se_ListSAMLProviderTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSAMLProviderTagsRequest(input, context),\n [_A]: _LSAMLPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSAMLProviderTagsCommand\");\nvar se_ListServerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListServerCertificatesRequest(input, context),\n [_A]: _LSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServerCertificatesCommand\");\nvar se_ListServerCertificateTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListServerCertificateTagsRequest(input, context),\n [_A]: _LSCT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServerCertificateTagsCommand\");\nvar se_ListServiceSpecificCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListServiceSpecificCredentialsRequest(input, context),\n [_A]: _LSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServiceSpecificCredentialsCommand\");\nvar se_ListSigningCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSigningCertificatesRequest(input, context),\n [_A]: _LSCi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSigningCertificatesCommand\");\nvar se_ListSSHPublicKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSSHPublicKeysRequest(input, context),\n [_A]: _LSSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSSHPublicKeysCommand\");\nvar se_ListUserPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListUserPoliciesRequest(input, context),\n [_A]: _LUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListUserPoliciesCommand\");\nvar se_ListUsersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListUsersRequest(input, context),\n [_A]: _LU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListUsersCommand\");\nvar se_ListUserTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListUserTagsRequest(input, context),\n [_A]: _LUT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListUserTagsCommand\");\nvar se_ListVirtualMFADevicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListVirtualMFADevicesRequest(input, context),\n [_A]: _LVMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListVirtualMFADevicesCommand\");\nvar se_PutGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutGroupPolicyRequest(input, context),\n [_A]: _PGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutGroupPolicyCommand\");\nvar se_PutRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutRolePermissionsBoundaryRequest(input, context),\n [_A]: _PRPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRolePermissionsBoundaryCommand\");\nvar se_PutRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutRolePolicyRequest(input, context),\n [_A]: _PRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRolePolicyCommand\");\nvar se_PutUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutUserPermissionsBoundaryRequest(input, context),\n [_A]: _PUPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutUserPermissionsBoundaryCommand\");\nvar se_PutUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutUserPolicyRequest(input, context),\n [_A]: _PUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutUserPolicyCommand\");\nvar se_RemoveClientIDFromOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveClientIDFromOpenIDConnectProviderRequest(input, context),\n [_A]: _RCIDFOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveClientIDFromOpenIDConnectProviderCommand\");\nvar se_RemoveRoleFromInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveRoleFromInstanceProfileRequest(input, context),\n [_A]: _RRFIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveRoleFromInstanceProfileCommand\");\nvar se_RemoveUserFromGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveUserFromGroupRequest(input, context),\n [_A]: _RUFG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveUserFromGroupCommand\");\nvar se_ResetServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetServiceSpecificCredentialRequest(input, context),\n [_A]: _RSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetServiceSpecificCredentialCommand\");\nvar se_ResyncMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResyncMFADeviceRequest(input, context),\n [_A]: _RMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResyncMFADeviceCommand\");\nvar se_SetDefaultPolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetDefaultPolicyVersionRequest(input, context),\n [_A]: _SDPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetDefaultPolicyVersionCommand\");\nvar se_SetSecurityTokenServicePreferencesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetSecurityTokenServicePreferencesRequest(input, context),\n [_A]: _SSTSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetSecurityTokenServicePreferencesCommand\");\nvar se_SimulateCustomPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SimulateCustomPolicyRequest(input, context),\n [_A]: _SCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SimulateCustomPolicyCommand\");\nvar se_SimulatePrincipalPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SimulatePrincipalPolicyRequest(input, context),\n [_A]: _SPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SimulatePrincipalPolicyCommand\");\nvar se_TagInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagInstanceProfileRequest(input, context),\n [_A]: _TIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagInstanceProfileCommand\");\nvar se_TagMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagMFADeviceRequest(input, context),\n [_A]: _TMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagMFADeviceCommand\");\nvar se_TagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagOpenIDConnectProviderRequest(input, context),\n [_A]: _TOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagOpenIDConnectProviderCommand\");\nvar se_TagPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagPolicyRequest(input, context),\n [_A]: _TP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagPolicyCommand\");\nvar se_TagRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagRoleRequest(input, context),\n [_A]: _TR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagRoleCommand\");\nvar se_TagSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagSAMLProviderRequest(input, context),\n [_A]: _TSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagSAMLProviderCommand\");\nvar se_TagServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagServerCertificateRequest(input, context),\n [_A]: _TSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagServerCertificateCommand\");\nvar se_TagUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagUserRequest(input, context),\n [_A]: _TU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagUserCommand\");\nvar se_UntagInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagInstanceProfileRequest(input, context),\n [_A]: _UIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagInstanceProfileCommand\");\nvar se_UntagMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagMFADeviceRequest(input, context),\n [_A]: _UMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagMFADeviceCommand\");\nvar se_UntagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagOpenIDConnectProviderRequest(input, context),\n [_A]: _UOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagOpenIDConnectProviderCommand\");\nvar se_UntagPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagPolicyRequest(input, context),\n [_A]: _UP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagPolicyCommand\");\nvar se_UntagRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagRoleRequest(input, context),\n [_A]: _UR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagRoleCommand\");\nvar se_UntagSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagSAMLProviderRequest(input, context),\n [_A]: _USAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagSAMLProviderCommand\");\nvar se_UntagServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagServerCertificateRequest(input, context),\n [_A]: _USC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagServerCertificateCommand\");\nvar se_UntagUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagUserRequest(input, context),\n [_A]: _UU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagUserCommand\");\nvar se_UpdateAccessKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateAccessKeyRequest(input, context),\n [_A]: _UAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAccessKeyCommand\");\nvar se_UpdateAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateAccountPasswordPolicyRequest(input, context),\n [_A]: _UAPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAccountPasswordPolicyCommand\");\nvar se_UpdateAssumeRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateAssumeRolePolicyRequest(input, context),\n [_A]: _UARP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAssumeRolePolicyCommand\");\nvar se_UpdateGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateGroupRequest(input, context),\n [_A]: _UG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateGroupCommand\");\nvar se_UpdateLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateLoginProfileRequest(input, context),\n [_A]: _ULP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateLoginProfileCommand\");\nvar se_UpdateOpenIDConnectProviderThumbprintCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateOpenIDConnectProviderThumbprintRequest(input, context),\n [_A]: _UOIDCPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateOpenIDConnectProviderThumbprintCommand\");\nvar se_UpdateRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateRoleRequest(input, context),\n [_A]: _URp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateRoleCommand\");\nvar se_UpdateRoleDescriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateRoleDescriptionRequest(input, context),\n [_A]: _URD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateRoleDescriptionCommand\");\nvar se_UpdateSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSAMLProviderRequest(input, context),\n [_A]: _USAMLPp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSAMLProviderCommand\");\nvar se_UpdateServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateServerCertificateRequest(input, context),\n [_A]: _USCp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServerCertificateCommand\");\nvar se_UpdateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateServiceSpecificCredentialRequest(input, context),\n [_A]: _USSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServiceSpecificCredentialCommand\");\nvar se_UpdateSigningCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSigningCertificateRequest(input, context),\n [_A]: _USCpd,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSigningCertificateCommand\");\nvar se_UpdateSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSSHPublicKeyRequest(input, context),\n [_A]: _USSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSSHPublicKeyCommand\");\nvar se_UpdateUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateUserRequest(input, context),\n [_A]: _UUp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateUserCommand\");\nvar se_UploadServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UploadServerCertificateRequest(input, context),\n [_A]: _USCpl,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadServerCertificateCommand\");\nvar se_UploadSigningCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UploadSigningCertificateRequest(input, context),\n [_A]: _USCplo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadSigningCertificateCommand\");\nvar se_UploadSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UploadSSHPublicKeyRequest(input, context),\n [_A]: _USSHPKp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadSSHPublicKeyCommand\");\nvar de_AddClientIDToOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AddClientIDToOpenIDConnectProviderCommand\");\nvar de_AddRoleToInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AddRoleToInstanceProfileCommand\");\nvar de_AddUserToGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AddUserToGroupCommand\");\nvar de_AttachGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachGroupPolicyCommand\");\nvar de_AttachRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachRolePolicyCommand\");\nvar de_AttachUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachUserPolicyCommand\");\nvar de_ChangePasswordCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ChangePasswordCommand\");\nvar de_CreateAccessKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateAccessKeyResponse(data.CreateAccessKeyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateAccessKeyCommand\");\nvar de_CreateAccountAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateAccountAliasCommand\");\nvar de_CreateGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateGroupResponse(data.CreateGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateGroupCommand\");\nvar de_CreateInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceProfileResponse(data.CreateInstanceProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceProfileCommand\");\nvar de_CreateLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLoginProfileResponse(data.CreateLoginProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLoginProfileCommand\");\nvar de_CreateOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateOpenIDConnectProviderResponse(data.CreateOpenIDConnectProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateOpenIDConnectProviderCommand\");\nvar de_CreatePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePolicyResponse(data.CreatePolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePolicyCommand\");\nvar de_CreatePolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePolicyVersionResponse(data.CreatePolicyVersionResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePolicyVersionCommand\");\nvar de_CreateRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRoleResponse(data.CreateRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRoleCommand\");\nvar de_CreateSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSAMLProviderResponse(data.CreateSAMLProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSAMLProviderCommand\");\nvar de_CreateServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateServiceLinkedRoleResponse(data.CreateServiceLinkedRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateServiceLinkedRoleCommand\");\nvar de_CreateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateServiceSpecificCredentialResponse(data.CreateServiceSpecificCredentialResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateServiceSpecificCredentialCommand\");\nvar de_CreateUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateUserResponse(data.CreateUserResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateUserCommand\");\nvar de_CreateVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVirtualMFADeviceResponse(data.CreateVirtualMFADeviceResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVirtualMFADeviceCommand\");\nvar de_DeactivateMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeactivateMFADeviceCommand\");\nvar de_DeleteAccessKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccessKeyCommand\");\nvar de_DeleteAccountAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccountAliasCommand\");\nvar de_DeleteAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccountPasswordPolicyCommand\");\nvar de_DeleteGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteGroupCommand\");\nvar de_DeleteGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteGroupPolicyCommand\");\nvar de_DeleteInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteInstanceProfileCommand\");\nvar de_DeleteLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLoginProfileCommand\");\nvar de_DeleteOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteOpenIDConnectProviderCommand\");\nvar de_DeletePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeletePolicyCommand\");\nvar de_DeletePolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeletePolicyVersionCommand\");\nvar de_DeleteRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRoleCommand\");\nvar de_DeleteRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRolePermissionsBoundaryCommand\");\nvar de_DeleteRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRolePolicyCommand\");\nvar de_DeleteSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSAMLProviderCommand\");\nvar de_DeleteServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteServerCertificateCommand\");\nvar de_DeleteServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteServiceLinkedRoleResponse(data.DeleteServiceLinkedRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteServiceLinkedRoleCommand\");\nvar de_DeleteServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteServiceSpecificCredentialCommand\");\nvar de_DeleteSigningCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSigningCertificateCommand\");\nvar de_DeleteSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSSHPublicKeyCommand\");\nvar de_DeleteUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteUserCommand\");\nvar de_DeleteUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteUserPermissionsBoundaryCommand\");\nvar de_DeleteUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteUserPolicyCommand\");\nvar de_DeleteVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVirtualMFADeviceCommand\");\nvar de_DetachGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachGroupPolicyCommand\");\nvar de_DetachRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachRolePolicyCommand\");\nvar de_DetachUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachUserPolicyCommand\");\nvar de_DisableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableOrganizationsRootCredentialsManagementResponse(\n data.DisableOrganizationsRootCredentialsManagementResult,\n context\n );\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableOrganizationsRootCredentialsManagementCommand\");\nvar de_DisableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableOrganizationsRootSessionsResponse(data.DisableOrganizationsRootSessionsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableOrganizationsRootSessionsCommand\");\nvar de_EnableMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableMFADeviceCommand\");\nvar de_EnableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableOrganizationsRootCredentialsManagementResponse(\n data.EnableOrganizationsRootCredentialsManagementResult,\n context\n );\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableOrganizationsRootCredentialsManagementCommand\");\nvar de_EnableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableOrganizationsRootSessionsResponse(data.EnableOrganizationsRootSessionsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableOrganizationsRootSessionsCommand\");\nvar de_GenerateCredentialReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GenerateCredentialReportResponse(data.GenerateCredentialReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateCredentialReportCommand\");\nvar de_GenerateOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GenerateOrganizationsAccessReportResponse(data.GenerateOrganizationsAccessReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateOrganizationsAccessReportCommand\");\nvar de_GenerateServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GenerateServiceLastAccessedDetailsResponse(data.GenerateServiceLastAccessedDetailsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateServiceLastAccessedDetailsCommand\");\nvar de_GetAccessKeyLastUsedCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccessKeyLastUsedResponse(data.GetAccessKeyLastUsedResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccessKeyLastUsedCommand\");\nvar de_GetAccountAuthorizationDetailsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccountAuthorizationDetailsResponse(data.GetAccountAuthorizationDetailsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountAuthorizationDetailsCommand\");\nvar de_GetAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccountPasswordPolicyResponse(data.GetAccountPasswordPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountPasswordPolicyCommand\");\nvar de_GetAccountSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccountSummaryResponse(data.GetAccountSummaryResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountSummaryCommand\");\nvar de_GetContextKeysForCustomPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetContextKeysForPolicyResponse(data.GetContextKeysForCustomPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetContextKeysForCustomPolicyCommand\");\nvar de_GetContextKeysForPrincipalPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetContextKeysForPolicyResponse(data.GetContextKeysForPrincipalPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetContextKeysForPrincipalPolicyCommand\");\nvar de_GetCredentialReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCredentialReportResponse(data.GetCredentialReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCredentialReportCommand\");\nvar de_GetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetGroupResponse(data.GetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetGroupCommand\");\nvar de_GetGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetGroupPolicyResponse(data.GetGroupPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetGroupPolicyCommand\");\nvar de_GetInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceProfileResponse(data.GetInstanceProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceProfileCommand\");\nvar de_GetLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetLoginProfileResponse(data.GetLoginProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLoginProfileCommand\");\nvar de_GetMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetMFADeviceResponse(data.GetMFADeviceResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMFADeviceCommand\");\nvar de_GetOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetOpenIDConnectProviderResponse(data.GetOpenIDConnectProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpenIDConnectProviderCommand\");\nvar de_GetOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetOrganizationsAccessReportResponse(data.GetOrganizationsAccessReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOrganizationsAccessReportCommand\");\nvar de_GetPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetPolicyResponse(data.GetPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPolicyCommand\");\nvar de_GetPolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetPolicyVersionResponse(data.GetPolicyVersionResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPolicyVersionCommand\");\nvar de_GetRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRoleResponse(data.GetRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRoleCommand\");\nvar de_GetRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRolePolicyResponse(data.GetRolePolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRolePolicyCommand\");\nvar de_GetSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSAMLProviderResponse(data.GetSAMLProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSAMLProviderCommand\");\nvar de_GetServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServerCertificateResponse(data.GetServerCertificateResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServerCertificateCommand\");\nvar de_GetServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceLastAccessedDetailsResponse(data.GetServiceLastAccessedDetailsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceLastAccessedDetailsCommand\");\nvar de_GetServiceLastAccessedDetailsWithEntitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceLastAccessedDetailsWithEntitiesResponse(\n data.GetServiceLastAccessedDetailsWithEntitiesResult,\n context\n );\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceLastAccessedDetailsWithEntitiesCommand\");\nvar de_GetServiceLinkedRoleDeletionStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceLinkedRoleDeletionStatusResponse(data.GetServiceLinkedRoleDeletionStatusResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceLinkedRoleDeletionStatusCommand\");\nvar de_GetSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSSHPublicKeyResponse(data.GetSSHPublicKeyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSSHPublicKeyCommand\");\nvar de_GetUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetUserResponse(data.GetUserResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetUserCommand\");\nvar de_GetUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetUserPolicyResponse(data.GetUserPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetUserPolicyCommand\");\nvar de_ListAccessKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAccessKeysResponse(data.ListAccessKeysResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAccessKeysCommand\");\nvar de_ListAccountAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAccountAliasesResponse(data.ListAccountAliasesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAccountAliasesCommand\");\nvar de_ListAttachedGroupPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAttachedGroupPoliciesResponse(data.ListAttachedGroupPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttachedGroupPoliciesCommand\");\nvar de_ListAttachedRolePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAttachedRolePoliciesResponse(data.ListAttachedRolePoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttachedRolePoliciesCommand\");\nvar de_ListAttachedUserPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAttachedUserPoliciesResponse(data.ListAttachedUserPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttachedUserPoliciesCommand\");\nvar de_ListEntitiesForPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListEntitiesForPolicyResponse(data.ListEntitiesForPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListEntitiesForPolicyCommand\");\nvar de_ListGroupPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListGroupPoliciesResponse(data.ListGroupPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGroupPoliciesCommand\");\nvar de_ListGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListGroupsResponse(data.ListGroupsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGroupsCommand\");\nvar de_ListGroupsForUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListGroupsForUserResponse(data.ListGroupsForUserResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGroupsForUserCommand\");\nvar de_ListInstanceProfilesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListInstanceProfilesResponse(data.ListInstanceProfilesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInstanceProfilesCommand\");\nvar de_ListInstanceProfilesForRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListInstanceProfilesForRoleResponse(data.ListInstanceProfilesForRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInstanceProfilesForRoleCommand\");\nvar de_ListInstanceProfileTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListInstanceProfileTagsResponse(data.ListInstanceProfileTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInstanceProfileTagsCommand\");\nvar de_ListMFADevicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListMFADevicesResponse(data.ListMFADevicesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListMFADevicesCommand\");\nvar de_ListMFADeviceTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListMFADeviceTagsResponse(data.ListMFADeviceTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListMFADeviceTagsCommand\");\nvar de_ListOpenIDConnectProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListOpenIDConnectProvidersResponse(data.ListOpenIDConnectProvidersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpenIDConnectProvidersCommand\");\nvar de_ListOpenIDConnectProviderTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListOpenIDConnectProviderTagsResponse(data.ListOpenIDConnectProviderTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpenIDConnectProviderTagsCommand\");\nvar de_ListOrganizationsFeaturesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListOrganizationsFeaturesResponse(data.ListOrganizationsFeaturesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOrganizationsFeaturesCommand\");\nvar de_ListPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPoliciesResponse(data.ListPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPoliciesCommand\");\nvar de_ListPoliciesGrantingServiceAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPoliciesGrantingServiceAccessResponse(data.ListPoliciesGrantingServiceAccessResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPoliciesGrantingServiceAccessCommand\");\nvar de_ListPolicyTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPolicyTagsResponse(data.ListPolicyTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPolicyTagsCommand\");\nvar de_ListPolicyVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPolicyVersionsResponse(data.ListPolicyVersionsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPolicyVersionsCommand\");\nvar de_ListRolePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListRolePoliciesResponse(data.ListRolePoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRolePoliciesCommand\");\nvar de_ListRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListRolesResponse(data.ListRolesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRolesCommand\");\nvar de_ListRoleTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListRoleTagsResponse(data.ListRoleTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRoleTagsCommand\");\nvar de_ListSAMLProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSAMLProvidersResponse(data.ListSAMLProvidersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSAMLProvidersCommand\");\nvar de_ListSAMLProviderTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSAMLProviderTagsResponse(data.ListSAMLProviderTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSAMLProviderTagsCommand\");\nvar de_ListServerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListServerCertificatesResponse(data.ListServerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServerCertificatesCommand\");\nvar de_ListServerCertificateTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListServerCertificateTagsResponse(data.ListServerCertificateTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServerCertificateTagsCommand\");\nvar de_ListServiceSpecificCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListServiceSpecificCredentialsResponse(data.ListServiceSpecificCredentialsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServiceSpecificCredentialsCommand\");\nvar de_ListSigningCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSigningCertificatesResponse(data.ListSigningCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSigningCertificatesCommand\");\nvar de_ListSSHPublicKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSSHPublicKeysResponse(data.ListSSHPublicKeysResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSSHPublicKeysCommand\");\nvar de_ListUserPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListUserPoliciesResponse(data.ListUserPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListUserPoliciesCommand\");\nvar de_ListUsersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListUsersResponse(data.ListUsersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListUsersCommand\");\nvar de_ListUserTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListUserTagsResponse(data.ListUserTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListUserTagsCommand\");\nvar de_ListVirtualMFADevicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListVirtualMFADevicesResponse(data.ListVirtualMFADevicesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListVirtualMFADevicesCommand\");\nvar de_PutGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutGroupPolicyCommand\");\nvar de_PutRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutRolePermissionsBoundaryCommand\");\nvar de_PutRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutRolePolicyCommand\");\nvar de_PutUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutUserPermissionsBoundaryCommand\");\nvar de_PutUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutUserPolicyCommand\");\nvar de_RemoveClientIDFromOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RemoveClientIDFromOpenIDConnectProviderCommand\");\nvar de_RemoveRoleFromInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RemoveRoleFromInstanceProfileCommand\");\nvar de_RemoveUserFromGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RemoveUserFromGroupCommand\");\nvar de_ResetServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetServiceSpecificCredentialResponse(data.ResetServiceSpecificCredentialResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetServiceSpecificCredentialCommand\");\nvar de_ResyncMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResyncMFADeviceCommand\");\nvar de_SetDefaultPolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SetDefaultPolicyVersionCommand\");\nvar de_SetSecurityTokenServicePreferencesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SetSecurityTokenServicePreferencesCommand\");\nvar de_SimulateCustomPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SimulatePolicyResponse(data.SimulateCustomPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SimulateCustomPolicyCommand\");\nvar de_SimulatePrincipalPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SimulatePolicyResponse(data.SimulatePrincipalPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SimulatePrincipalPolicyCommand\");\nvar de_TagInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagInstanceProfileCommand\");\nvar de_TagMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagMFADeviceCommand\");\nvar de_TagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagOpenIDConnectProviderCommand\");\nvar de_TagPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagPolicyCommand\");\nvar de_TagRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagRoleCommand\");\nvar de_TagSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagSAMLProviderCommand\");\nvar de_TagServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagServerCertificateCommand\");\nvar de_TagUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagUserCommand\");\nvar de_UntagInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagInstanceProfileCommand\");\nvar de_UntagMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagMFADeviceCommand\");\nvar de_UntagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagOpenIDConnectProviderCommand\");\nvar de_UntagPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagPolicyCommand\");\nvar de_UntagRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagRoleCommand\");\nvar de_UntagSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagSAMLProviderCommand\");\nvar de_UntagServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagServerCertificateCommand\");\nvar de_UntagUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagUserCommand\");\nvar de_UpdateAccessKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAccessKeyCommand\");\nvar de_UpdateAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAccountPasswordPolicyCommand\");\nvar de_UpdateAssumeRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAssumeRolePolicyCommand\");\nvar de_UpdateGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateGroupCommand\");\nvar de_UpdateLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateLoginProfileCommand\");\nvar de_UpdateOpenIDConnectProviderThumbprintCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateOpenIDConnectProviderThumbprintCommand\");\nvar de_UpdateRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateRoleResponse(data.UpdateRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateRoleCommand\");\nvar de_UpdateRoleDescriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateRoleDescriptionResponse(data.UpdateRoleDescriptionResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateRoleDescriptionCommand\");\nvar de_UpdateSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateSAMLProviderResponse(data.UpdateSAMLProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSAMLProviderCommand\");\nvar de_UpdateServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateServerCertificateCommand\");\nvar de_UpdateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateServiceSpecificCredentialCommand\");\nvar de_UpdateSigningCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateSigningCertificateCommand\");\nvar de_UpdateSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateSSHPublicKeyCommand\");\nvar de_UpdateUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateUserCommand\");\nvar de_UploadServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UploadServerCertificateResponse(data.UploadServerCertificateResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadServerCertificateCommand\");\nvar de_UploadSigningCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UploadSigningCertificateResponse(data.UploadSigningCertificateResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadSigningCertificateCommand\");\nvar de_UploadSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UploadSSHPublicKeyResponse(data.UploadSSHPublicKeyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadSSHPublicKeyCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidInput\":\n case \"com.amazonaws.iam#InvalidInputException\":\n throw await de_InvalidInputExceptionRes(parsedOutput, context);\n case \"LimitExceeded\":\n case \"com.amazonaws.iam#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NoSuchEntity\":\n case \"com.amazonaws.iam#NoSuchEntityException\":\n throw await de_NoSuchEntityExceptionRes(parsedOutput, context);\n case \"ServiceFailure\":\n case \"com.amazonaws.iam#ServiceFailureException\":\n throw await de_ServiceFailureExceptionRes(parsedOutput, context);\n case \"EntityAlreadyExists\":\n case \"com.amazonaws.iam#EntityAlreadyExistsException\":\n throw await de_EntityAlreadyExistsExceptionRes(parsedOutput, context);\n case \"UnmodifiableEntity\":\n case \"com.amazonaws.iam#UnmodifiableEntityException\":\n throw await de_UnmodifiableEntityExceptionRes(parsedOutput, context);\n case \"PolicyNotAttachable\":\n case \"com.amazonaws.iam#PolicyNotAttachableException\":\n throw await de_PolicyNotAttachableExceptionRes(parsedOutput, context);\n case \"EntityTemporarilyUnmodifiable\":\n case \"com.amazonaws.iam#EntityTemporarilyUnmodifiableException\":\n throw await de_EntityTemporarilyUnmodifiableExceptionRes(parsedOutput, context);\n case \"InvalidUserType\":\n case \"com.amazonaws.iam#InvalidUserTypeException\":\n throw await de_InvalidUserTypeExceptionRes(parsedOutput, context);\n case \"PasswordPolicyViolation\":\n case \"com.amazonaws.iam#PasswordPolicyViolationException\":\n throw await de_PasswordPolicyViolationExceptionRes(parsedOutput, context);\n case \"ConcurrentModification\":\n case \"com.amazonaws.iam#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"OpenIdIdpCommunicationError\":\n case \"com.amazonaws.iam#OpenIdIdpCommunicationErrorException\":\n throw await de_OpenIdIdpCommunicationErrorExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.iam#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"NotSupportedService\":\n case \"com.amazonaws.iam#ServiceNotSupportedException\":\n throw await de_ServiceNotSupportedExceptionRes(parsedOutput, context);\n case \"DeleteConflict\":\n case \"com.amazonaws.iam#DeleteConflictException\":\n throw await de_DeleteConflictExceptionRes(parsedOutput, context);\n case \"AccountNotManagementOrDelegatedAdministratorException\":\n case \"com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException\":\n throw await de_AccountNotManagementOrDelegatedAdministratorExceptionRes(parsedOutput, context);\n case \"OrganizationNotFoundException\":\n case \"com.amazonaws.iam#OrganizationNotFoundException\":\n throw await de_OrganizationNotFoundExceptionRes(parsedOutput, context);\n case \"OrganizationNotInAllFeaturesModeException\":\n case \"com.amazonaws.iam#OrganizationNotInAllFeaturesModeException\":\n throw await de_OrganizationNotInAllFeaturesModeExceptionRes(parsedOutput, context);\n case \"ServiceAccessNotEnabledException\":\n case \"com.amazonaws.iam#ServiceAccessNotEnabledException\":\n throw await de_ServiceAccessNotEnabledExceptionRes(parsedOutput, context);\n case \"InvalidAuthenticationCode\":\n case \"com.amazonaws.iam#InvalidAuthenticationCodeException\":\n throw await de_InvalidAuthenticationCodeExceptionRes(parsedOutput, context);\n case \"CallerIsNotManagementAccountException\":\n case \"com.amazonaws.iam#CallerIsNotManagementAccountException\":\n throw await de_CallerIsNotManagementAccountExceptionRes(parsedOutput, context);\n case \"ReportGenerationLimitExceeded\":\n case \"com.amazonaws.iam#ReportGenerationLimitExceededException\":\n throw await de_ReportGenerationLimitExceededExceptionRes(parsedOutput, context);\n case \"ReportExpired\":\n case \"com.amazonaws.iam#CredentialReportExpiredException\":\n throw await de_CredentialReportExpiredExceptionRes(parsedOutput, context);\n case \"ReportInProgress\":\n case \"com.amazonaws.iam#CredentialReportNotReadyException\":\n throw await de_CredentialReportNotReadyExceptionRes(parsedOutput, context);\n case \"ReportNotPresent\":\n case \"com.amazonaws.iam#CredentialReportNotPresentException\":\n throw await de_CredentialReportNotPresentExceptionRes(parsedOutput, context);\n case \"UnrecognizedPublicKeyEncoding\":\n case \"com.amazonaws.iam#UnrecognizedPublicKeyEncodingException\":\n throw await de_UnrecognizedPublicKeyEncodingExceptionRes(parsedOutput, context);\n case \"PolicyEvaluation\":\n case \"com.amazonaws.iam#PolicyEvaluationException\":\n throw await de_PolicyEvaluationExceptionRes(parsedOutput, context);\n case \"KeyPairMismatch\":\n case \"com.amazonaws.iam#KeyPairMismatchException\":\n throw await de_KeyPairMismatchExceptionRes(parsedOutput, context);\n case \"MalformedCertificate\":\n case \"com.amazonaws.iam#MalformedCertificateException\":\n throw await de_MalformedCertificateExceptionRes(parsedOutput, context);\n case \"DuplicateCertificate\":\n case \"com.amazonaws.iam#DuplicateCertificateException\":\n throw await de_DuplicateCertificateExceptionRes(parsedOutput, context);\n case \"InvalidCertificate\":\n case \"com.amazonaws.iam#InvalidCertificateException\":\n throw await de_InvalidCertificateExceptionRes(parsedOutput, context);\n case \"DuplicateSSHPublicKey\":\n case \"com.amazonaws.iam#DuplicateSSHPublicKeyException\":\n throw await de_DuplicateSSHPublicKeyExceptionRes(parsedOutput, context);\n case \"InvalidPublicKey\":\n case \"com.amazonaws.iam#InvalidPublicKeyException\":\n throw await de_InvalidPublicKeyExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccountNotManagementOrDelegatedAdministratorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_AccountNotManagementOrDelegatedAdministratorException(body.Error, context);\n const exception = new AccountNotManagementOrDelegatedAdministratorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccountNotManagementOrDelegatedAdministratorExceptionRes\");\nvar de_CallerIsNotManagementAccountExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CallerIsNotManagementAccountException(body.Error, context);\n const exception = new CallerIsNotManagementAccountException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CallerIsNotManagementAccountExceptionRes\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ConcurrentModificationException(body.Error, context);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_CredentialReportExpiredExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CredentialReportExpiredException(body.Error, context);\n const exception = new CredentialReportExpiredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CredentialReportExpiredExceptionRes\");\nvar de_CredentialReportNotPresentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CredentialReportNotPresentException(body.Error, context);\n const exception = new CredentialReportNotPresentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CredentialReportNotPresentExceptionRes\");\nvar de_CredentialReportNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CredentialReportNotReadyException(body.Error, context);\n const exception = new CredentialReportNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CredentialReportNotReadyExceptionRes\");\nvar de_DeleteConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DeleteConflictException(body.Error, context);\n const exception = new DeleteConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DeleteConflictExceptionRes\");\nvar de_DuplicateCertificateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateCertificateException(body.Error, context);\n const exception = new DuplicateCertificateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateCertificateExceptionRes\");\nvar de_DuplicateSSHPublicKeyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateSSHPublicKeyException(body.Error, context);\n const exception = new DuplicateSSHPublicKeyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateSSHPublicKeyExceptionRes\");\nvar de_EntityAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_EntityAlreadyExistsException(body.Error, context);\n const exception = new EntityAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EntityAlreadyExistsExceptionRes\");\nvar de_EntityTemporarilyUnmodifiableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_EntityTemporarilyUnmodifiableException(body.Error, context);\n const exception = new EntityTemporarilyUnmodifiableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EntityTemporarilyUnmodifiableExceptionRes\");\nvar de_InvalidAuthenticationCodeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidAuthenticationCodeException(body.Error, context);\n const exception = new InvalidAuthenticationCodeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAuthenticationCodeExceptionRes\");\nvar de_InvalidCertificateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidCertificateException(body.Error, context);\n const exception = new InvalidCertificateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCertificateExceptionRes\");\nvar de_InvalidInputExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidInputException(body.Error, context);\n const exception = new InvalidInputException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInputExceptionRes\");\nvar de_InvalidPublicKeyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidPublicKeyException(body.Error, context);\n const exception = new InvalidPublicKeyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPublicKeyExceptionRes\");\nvar de_InvalidUserTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidUserTypeException(body.Error, context);\n const exception = new InvalidUserTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidUserTypeExceptionRes\");\nvar de_KeyPairMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_KeyPairMismatchException(body.Error, context);\n const exception = new KeyPairMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KeyPairMismatchExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_LimitExceededException(body.Error, context);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedCertificateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedCertificateException(body.Error, context);\n const exception = new MalformedCertificateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedCertificateExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_NoSuchEntityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_NoSuchEntityException(body.Error, context);\n const exception = new NoSuchEntityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NoSuchEntityExceptionRes\");\nvar de_OpenIdIdpCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OpenIdIdpCommunicationErrorException(body.Error, context);\n const exception = new OpenIdIdpCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpenIdIdpCommunicationErrorExceptionRes\");\nvar de_OrganizationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OrganizationNotFoundException(body.Error, context);\n const exception = new OrganizationNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OrganizationNotFoundExceptionRes\");\nvar de_OrganizationNotInAllFeaturesModeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OrganizationNotInAllFeaturesModeException(body.Error, context);\n const exception = new OrganizationNotInAllFeaturesModeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OrganizationNotInAllFeaturesModeExceptionRes\");\nvar de_PasswordPolicyViolationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PasswordPolicyViolationException(body.Error, context);\n const exception = new PasswordPolicyViolationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PasswordPolicyViolationExceptionRes\");\nvar de_PolicyEvaluationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PolicyEvaluationException(body.Error, context);\n const exception = new PolicyEvaluationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PolicyEvaluationExceptionRes\");\nvar de_PolicyNotAttachableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PolicyNotAttachableException(body.Error, context);\n const exception = new PolicyNotAttachableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PolicyNotAttachableExceptionRes\");\nvar de_ReportGenerationLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ReportGenerationLimitExceededException(body.Error, context);\n const exception = new ReportGenerationLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ReportGenerationLimitExceededExceptionRes\");\nvar de_ServiceAccessNotEnabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ServiceAccessNotEnabledException(body.Error, context);\n const exception = new ServiceAccessNotEnabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceAccessNotEnabledExceptionRes\");\nvar de_ServiceFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ServiceFailureException(body.Error, context);\n const exception = new ServiceFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceFailureExceptionRes\");\nvar de_ServiceNotSupportedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ServiceNotSupportedException(body.Error, context);\n const exception = new ServiceNotSupportedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceNotSupportedExceptionRes\");\nvar de_UnmodifiableEntityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_UnmodifiableEntityException(body.Error, context);\n const exception = new UnmodifiableEntityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnmodifiableEntityExceptionRes\");\nvar de_UnrecognizedPublicKeyEncodingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_UnrecognizedPublicKeyEncodingException(body.Error, context);\n const exception = new UnrecognizedPublicKeyEncodingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnrecognizedPublicKeyEncodingExceptionRes\");\nvar se_ActionNameListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ActionNameListType\");\nvar se_AddClientIDToOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_CID] != null) {\n entries[_CID] = input[_CID];\n }\n return entries;\n}, \"se_AddClientIDToOpenIDConnectProviderRequest\");\nvar se_AddRoleToInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_AddRoleToInstanceProfileRequest\");\nvar se_AddUserToGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_AddUserToGroupRequest\");\nvar se_AttachGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_AttachGroupPolicyRequest\");\nvar se_AttachRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_AttachRolePolicyRequest\");\nvar se_AttachUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_AttachUserPolicyRequest\");\nvar se_ChangePasswordRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OP] != null) {\n entries[_OP] = input[_OP];\n }\n if (input[_NP] != null) {\n entries[_NP] = input[_NP];\n }\n return entries;\n}, \"se_ChangePasswordRequest\");\nvar se_clientIDListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_clientIDListType\");\nvar se_ContextEntry = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CKN] != null) {\n entries[_CKN] = input[_CKN];\n }\n if (input[_CKV] != null) {\n const memberEntries = se_ContextKeyValueListType(input[_CKV], context);\n if (input[_CKV]?.length === 0) {\n entries.ContextKeyValues = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ContextKeyValues.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CKT] != null) {\n entries[_CKT] = input[_CKT];\n }\n return entries;\n}, \"se_ContextEntry\");\nvar se_ContextEntryListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ContextEntry(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ContextEntryListType\");\nvar se_ContextKeyValueListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ContextKeyValueListType\");\nvar se_CreateAccessKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_CreateAccessKeyRequest\");\nvar se_CreateAccountAliasRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AA] != null) {\n entries[_AA] = input[_AA];\n }\n return entries;\n}, \"se_CreateAccountAliasRequest\");\nvar se_CreateGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_CreateGroupRequest\");\nvar se_CreateInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceProfileRequest\");\nvar se_CreateLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_Pa] != null) {\n entries[_Pa] = input[_Pa];\n }\n if (input[_PRR] != null) {\n entries[_PRR] = input[_PRR];\n }\n return entries;\n}, \"se_CreateLoginProfileRequest\");\nvar se_CreateOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_U] != null) {\n entries[_U] = input[_U];\n }\n if (input[_CIDL] != null) {\n const memberEntries = se_clientIDListType(input[_CIDL], context);\n if (input[_CIDL]?.length === 0) {\n entries.ClientIDList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientIDList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TL] != null) {\n const memberEntries = se_thumbprintListType(input[_TL], context);\n if (input[_TL]?.length === 0) {\n entries.ThumbprintList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ThumbprintList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateOpenIDConnectProviderRequest\");\nvar se_CreatePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreatePolicyRequest\");\nvar se_CreatePolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_SAD] != null) {\n entries[_SAD] = input[_SAD];\n }\n return entries;\n}, \"se_CreatePolicyVersionRequest\");\nvar se_CreateRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_ARPD] != null) {\n entries[_ARPD] = input[_ARPD];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_MSD] != null) {\n entries[_MSD] = input[_MSD];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRoleRequest\");\nvar se_CreateSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLMD] != null) {\n entries[_SAMLMD] = input[_SAMLMD];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AEM] != null) {\n entries[_AEM] = input[_AEM];\n }\n if (input[_APK] != null) {\n entries[_APK] = input[_APK];\n }\n return entries;\n}, \"se_CreateSAMLProviderRequest\");\nvar se_CreateServiceLinkedRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AWSSN] != null) {\n entries[_AWSSN] = input[_AWSSN];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_CS] != null) {\n entries[_CS] = input[_CS];\n }\n return entries;\n}, \"se_CreateServiceLinkedRoleRequest\");\nvar se_CreateServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n return entries;\n}, \"se_CreateServiceSpecificCredentialRequest\");\nvar se_CreateUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateUserRequest\");\nvar se_CreateVirtualMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_VMFADN] != null) {\n entries[_VMFADN] = input[_VMFADN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVirtualMFADeviceRequest\");\nvar se_DeactivateMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n return entries;\n}, \"se_DeactivateMFADeviceRequest\");\nvar se_DeleteAccessKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n return entries;\n}, \"se_DeleteAccessKeyRequest\");\nvar se_DeleteAccountAliasRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AA] != null) {\n entries[_AA] = input[_AA];\n }\n return entries;\n}, \"se_DeleteAccountAliasRequest\");\nvar se_DeleteGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_DeleteGroupPolicyRequest\");\nvar se_DeleteGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_DeleteGroupRequest\");\nvar se_DeleteInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n return entries;\n}, \"se_DeleteInstanceProfileRequest\");\nvar se_DeleteLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_DeleteLoginProfileRequest\");\nvar se_DeleteOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n return entries;\n}, \"se_DeleteOpenIDConnectProviderRequest\");\nvar se_DeletePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DeletePolicyRequest\");\nvar se_DeletePolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DeletePolicyVersionRequest\");\nvar se_DeleteRolePermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_DeleteRolePermissionsBoundaryRequest\");\nvar se_DeleteRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_DeleteRolePolicyRequest\");\nvar se_DeleteRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_DeleteRoleRequest\");\nvar se_DeleteSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n return entries;\n}, \"se_DeleteSAMLProviderRequest\");\nvar se_DeleteServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n return entries;\n}, \"se_DeleteServerCertificateRequest\");\nvar se_DeleteServiceLinkedRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_DeleteServiceLinkedRoleRequest\");\nvar se_DeleteServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSCI] != null) {\n entries[_SSCI] = input[_SSCI];\n }\n return entries;\n}, \"se_DeleteServiceSpecificCredentialRequest\");\nvar se_DeleteSigningCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_CI] != null) {\n entries[_CI] = input[_CI];\n }\n return entries;\n}, \"se_DeleteSigningCertificateRequest\");\nvar se_DeleteSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKI] != null) {\n entries[_SSHPKI] = input[_SSHPKI];\n }\n return entries;\n}, \"se_DeleteSSHPublicKeyRequest\");\nvar se_DeleteUserPermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_DeleteUserPermissionsBoundaryRequest\");\nvar se_DeleteUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_DeleteUserPolicyRequest\");\nvar se_DeleteUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_DeleteUserRequest\");\nvar se_DeleteVirtualMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n return entries;\n}, \"se_DeleteVirtualMFADeviceRequest\");\nvar se_DetachGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DetachGroupPolicyRequest\");\nvar se_DetachRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DetachRolePolicyRequest\");\nvar se_DetachUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DetachUserPolicyRequest\");\nvar se_DisableOrganizationsRootCredentialsManagementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_DisableOrganizationsRootCredentialsManagementRequest\");\nvar se_DisableOrganizationsRootSessionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_DisableOrganizationsRootSessionsRequest\");\nvar se_EnableMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_AC] != null) {\n entries[_AC] = input[_AC];\n }\n if (input[_ACu] != null) {\n entries[_ACu] = input[_ACu];\n }\n return entries;\n}, \"se_EnableMFADeviceRequest\");\nvar se_EnableOrganizationsRootCredentialsManagementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_EnableOrganizationsRootCredentialsManagementRequest\");\nvar se_EnableOrganizationsRootSessionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_EnableOrganizationsRootSessionsRequest\");\nvar se_entityListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_entityListType\");\nvar se_GenerateOrganizationsAccessReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EP] != null) {\n entries[_EP] = input[_EP];\n }\n if (input[_OPI] != null) {\n entries[_OPI] = input[_OPI];\n }\n return entries;\n}, \"se_GenerateOrganizationsAccessReportRequest\");\nvar se_GenerateServiceLastAccessedDetailsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_G] != null) {\n entries[_G] = input[_G];\n }\n return entries;\n}, \"se_GenerateServiceLastAccessedDetailsRequest\");\nvar se_GetAccessKeyLastUsedRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n return entries;\n}, \"se_GetAccessKeyLastUsedRequest\");\nvar se_GetAccountAuthorizationDetailsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_F] != null) {\n const memberEntries = se_entityListType(input[_F], context);\n if (input[_F]?.length === 0) {\n entries.Filter = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_GetAccountAuthorizationDetailsRequest\");\nvar se_GetContextKeysForCustomPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetContextKeysForCustomPolicyRequest\");\nvar se_GetContextKeysForPrincipalPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSA] != null) {\n entries[_PSA] = input[_PSA];\n }\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetContextKeysForPrincipalPolicyRequest\");\nvar se_GetGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_GetGroupPolicyRequest\");\nvar se_GetGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_GetGroupRequest\");\nvar se_GetInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n return entries;\n}, \"se_GetInstanceProfileRequest\");\nvar se_GetLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_GetLoginProfileRequest\");\nvar se_GetMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_GetMFADeviceRequest\");\nvar se_GetOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n return entries;\n}, \"se_GetOpenIDConnectProviderRequest\");\nvar se_GetOrganizationsAccessReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_JI] != null) {\n entries[_JI] = input[_JI];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_SK] != null) {\n entries[_SK] = input[_SK];\n }\n return entries;\n}, \"se_GetOrganizationsAccessReportRequest\");\nvar se_GetPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_GetPolicyRequest\");\nvar se_GetPolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_GetPolicyVersionRequest\");\nvar se_GetRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_GetRolePolicyRequest\");\nvar se_GetRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_GetRoleRequest\");\nvar se_GetSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n return entries;\n}, \"se_GetSAMLProviderRequest\");\nvar se_GetServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n return entries;\n}, \"se_GetServerCertificateRequest\");\nvar se_GetServiceLastAccessedDetailsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_JI] != null) {\n entries[_JI] = input[_JI];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_GetServiceLastAccessedDetailsRequest\");\nvar se_GetServiceLastAccessedDetailsWithEntitiesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_JI] != null) {\n entries[_JI] = input[_JI];\n }\n if (input[_SNer] != null) {\n entries[_SNer] = input[_SNer];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_GetServiceLastAccessedDetailsWithEntitiesRequest\");\nvar se_GetServiceLinkedRoleDeletionStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DTI] != null) {\n entries[_DTI] = input[_DTI];\n }\n return entries;\n}, \"se_GetServiceLinkedRoleDeletionStatusRequest\");\nvar se_GetSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKI] != null) {\n entries[_SSHPKI] = input[_SSHPKI];\n }\n if (input[_E] != null) {\n entries[_E] = input[_E];\n }\n return entries;\n}, \"se_GetSSHPublicKeyRequest\");\nvar se_GetUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_GetUserPolicyRequest\");\nvar se_GetUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_GetUserRequest\");\nvar se_ListAccessKeysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAccessKeysRequest\");\nvar se_ListAccountAliasesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAccountAliasesRequest\");\nvar se_ListAttachedGroupPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAttachedGroupPoliciesRequest\");\nvar se_ListAttachedRolePoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAttachedRolePoliciesRequest\");\nvar se_ListAttachedUserPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAttachedUserPoliciesRequest\");\nvar se_ListEntitiesForPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_EF] != null) {\n entries[_EF] = input[_EF];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_PUF] != null) {\n entries[_PUF] = input[_PUF];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListEntitiesForPolicyRequest\");\nvar se_ListGroupPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListGroupPoliciesRequest\");\nvar se_ListGroupsForUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListGroupsForUserRequest\");\nvar se_ListGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListGroupsRequest\");\nvar se_ListInstanceProfilesForRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListInstanceProfilesForRoleRequest\");\nvar se_ListInstanceProfilesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListInstanceProfilesRequest\");\nvar se_ListInstanceProfileTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListInstanceProfileTagsRequest\");\nvar se_ListMFADevicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListMFADevicesRequest\");\nvar se_ListMFADeviceTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListMFADeviceTagsRequest\");\nvar se_ListOpenIDConnectProvidersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_ListOpenIDConnectProvidersRequest\");\nvar se_ListOpenIDConnectProviderTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListOpenIDConnectProviderTagsRequest\");\nvar se_ListOrganizationsFeaturesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_ListOrganizationsFeaturesRequest\");\nvar se_ListPoliciesGrantingServiceAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_SNerv] != null) {\n const memberEntries = se_serviceNamespaceListType(input[_SNerv], context);\n if (input[_SNerv]?.length === 0) {\n entries.ServiceNamespaces = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceNamespaces.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ListPoliciesGrantingServiceAccessRequest\");\nvar se_ListPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_PUF] != null) {\n entries[_PUF] = input[_PUF];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListPoliciesRequest\");\nvar se_ListPolicyTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListPolicyTagsRequest\");\nvar se_ListPolicyVersionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListPolicyVersionsRequest\");\nvar se_ListRolePoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListRolePoliciesRequest\");\nvar se_ListRolesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListRolesRequest\");\nvar se_ListRoleTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListRoleTagsRequest\");\nvar se_ListSAMLProvidersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_ListSAMLProvidersRequest\");\nvar se_ListSAMLProviderTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListSAMLProviderTagsRequest\");\nvar se_ListServerCertificatesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListServerCertificatesRequest\");\nvar se_ListServerCertificateTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListServerCertificateTagsRequest\");\nvar se_ListServiceSpecificCredentialsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n return entries;\n}, \"se_ListServiceSpecificCredentialsRequest\");\nvar se_ListSigningCertificatesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListSigningCertificatesRequest\");\nvar se_ListSSHPublicKeysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListSSHPublicKeysRequest\");\nvar se_ListUserPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListUserPoliciesRequest\");\nvar se_ListUsersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListUsersRequest\");\nvar se_ListUserTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListUserTagsRequest\");\nvar se_ListVirtualMFADevicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListVirtualMFADevicesRequest\");\nvar se_PutGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_PutGroupPolicyRequest\");\nvar se_PutRolePermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n return entries;\n}, \"se_PutRolePermissionsBoundaryRequest\");\nvar se_PutRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_PutRolePolicyRequest\");\nvar se_PutUserPermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n return entries;\n}, \"se_PutUserPermissionsBoundaryRequest\");\nvar se_PutUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_PutUserPolicyRequest\");\nvar se_RemoveClientIDFromOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_CID] != null) {\n entries[_CID] = input[_CID];\n }\n return entries;\n}, \"se_RemoveClientIDFromOpenIDConnectProviderRequest\");\nvar se_RemoveRoleFromInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_RemoveRoleFromInstanceProfileRequest\");\nvar se_RemoveUserFromGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_RemoveUserFromGroupRequest\");\nvar se_ResetServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSCI] != null) {\n entries[_SSCI] = input[_SSCI];\n }\n return entries;\n}, \"se_ResetServiceSpecificCredentialRequest\");\nvar se_ResourceNameListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceNameListType\");\nvar se_ResyncMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_AC] != null) {\n entries[_AC] = input[_AC];\n }\n if (input[_ACu] != null) {\n entries[_ACu] = input[_ACu];\n }\n return entries;\n}, \"se_ResyncMFADeviceRequest\");\nvar se_serviceNamespaceListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_serviceNamespaceListType\");\nvar se_SetDefaultPolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_SetDefaultPolicyVersionRequest\");\nvar se_SetSecurityTokenServicePreferencesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GETV] != null) {\n entries[_GETV] = input[_GETV];\n }\n return entries;\n}, \"se_SetSecurityTokenServicePreferencesRequest\");\nvar se_SimulateCustomPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PBPIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PBPIL], context);\n if (input[_PBPIL]?.length === 0) {\n entries.PermissionsBoundaryPolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PermissionsBoundaryPolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AN] != null) {\n const memberEntries = se_ActionNameListType(input[_AN], context);\n if (input[_AN]?.length === 0) {\n entries.ActionNames = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ActionNames.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RA] != null) {\n const memberEntries = se_ResourceNameListType(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RP] != null) {\n entries[_RP] = input[_RP];\n }\n if (input[_RO] != null) {\n entries[_RO] = input[_RO];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_CE] != null) {\n const memberEntries = se_ContextEntryListType(input[_CE], context);\n if (input[_CE]?.length === 0) {\n entries.ContextEntries = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ContextEntries.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RHO] != null) {\n entries[_RHO] = input[_RHO];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_SimulateCustomPolicyRequest\");\nvar se_SimulatePrincipalPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSA] != null) {\n entries[_PSA] = input[_PSA];\n }\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PBPIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PBPIL], context);\n if (input[_PBPIL]?.length === 0) {\n entries.PermissionsBoundaryPolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PermissionsBoundaryPolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AN] != null) {\n const memberEntries = se_ActionNameListType(input[_AN], context);\n if (input[_AN]?.length === 0) {\n entries.ActionNames = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ActionNames.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RA] != null) {\n const memberEntries = se_ResourceNameListType(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RP] != null) {\n entries[_RP] = input[_RP];\n }\n if (input[_RO] != null) {\n entries[_RO] = input[_RO];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_CE] != null) {\n const memberEntries = se_ContextEntryListType(input[_CE], context);\n if (input[_CE]?.length === 0) {\n entries.ContextEntries = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ContextEntries.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RHO] != null) {\n entries[_RHO] = input[_RHO];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_SimulatePrincipalPolicyRequest\");\nvar se_SimulationPolicyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SimulationPolicyListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_TagInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagInstanceProfileRequest\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar se_TagMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagMFADeviceRequest\");\nvar se_TagOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagOpenIDConnectProviderRequest\");\nvar se_TagPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagPolicyRequest\");\nvar se_TagRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagRoleRequest\");\nvar se_TagSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagSAMLProviderRequest\");\nvar se_TagServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagServerCertificateRequest\");\nvar se_TagUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagUserRequest\");\nvar se_thumbprintListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_thumbprintListType\");\nvar se_UntagInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagInstanceProfileRequest\");\nvar se_UntagMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagMFADeviceRequest\");\nvar se_UntagOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagOpenIDConnectProviderRequest\");\nvar se_UntagPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagPolicyRequest\");\nvar se_UntagRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagRoleRequest\");\nvar se_UntagSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagSAMLProviderRequest\");\nvar se_UntagServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagServerCertificateRequest\");\nvar se_UntagUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagUserRequest\");\nvar se_UpdateAccessKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateAccessKeyRequest\");\nvar se_UpdateAccountPasswordPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MPL] != null) {\n entries[_MPL] = input[_MPL];\n }\n if (input[_RS] != null) {\n entries[_RS] = input[_RS];\n }\n if (input[_RNe] != null) {\n entries[_RNe] = input[_RNe];\n }\n if (input[_RUC] != null) {\n entries[_RUC] = input[_RUC];\n }\n if (input[_RLC] != null) {\n entries[_RLC] = input[_RLC];\n }\n if (input[_AUTCP] != null) {\n entries[_AUTCP] = input[_AUTCP];\n }\n if (input[_MPA] != null) {\n entries[_MPA] = input[_MPA];\n }\n if (input[_PRPa] != null) {\n entries[_PRPa] = input[_PRPa];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n return entries;\n}, \"se_UpdateAccountPasswordPolicyRequest\");\nvar se_UpdateAssumeRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_UpdateAssumeRolePolicyRequest\");\nvar se_UpdateGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_NPe] != null) {\n entries[_NPe] = input[_NPe];\n }\n if (input[_NGN] != null) {\n entries[_NGN] = input[_NGN];\n }\n return entries;\n}, \"se_UpdateGroupRequest\");\nvar se_UpdateLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_Pa] != null) {\n entries[_Pa] = input[_Pa];\n }\n if (input[_PRR] != null) {\n entries[_PRR] = input[_PRR];\n }\n return entries;\n}, \"se_UpdateLoginProfileRequest\");\nvar se_UpdateOpenIDConnectProviderThumbprintRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_TL] != null) {\n const memberEntries = se_thumbprintListType(input[_TL], context);\n if (input[_TL]?.length === 0) {\n entries.ThumbprintList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ThumbprintList.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UpdateOpenIDConnectProviderThumbprintRequest\");\nvar se_UpdateRoleDescriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n return entries;\n}, \"se_UpdateRoleDescriptionRequest\");\nvar se_UpdateRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_MSD] != null) {\n entries[_MSD] = input[_MSD];\n }\n return entries;\n}, \"se_UpdateRoleRequest\");\nvar se_UpdateSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLMD] != null) {\n entries[_SAMLMD] = input[_SAMLMD];\n }\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_AEM] != null) {\n entries[_AEM] = input[_AEM];\n }\n if (input[_APK] != null) {\n entries[_APK] = input[_APK];\n }\n if (input[_RPK] != null) {\n entries[_RPK] = input[_RPK];\n }\n return entries;\n}, \"se_UpdateSAMLProviderRequest\");\nvar se_UpdateServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_NPe] != null) {\n entries[_NPe] = input[_NPe];\n }\n if (input[_NSCN] != null) {\n entries[_NSCN] = input[_NSCN];\n }\n return entries;\n}, \"se_UpdateServerCertificateRequest\");\nvar se_UpdateServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSCI] != null) {\n entries[_SSCI] = input[_SSCI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateServiceSpecificCredentialRequest\");\nvar se_UpdateSigningCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_CI] != null) {\n entries[_CI] = input[_CI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateSigningCertificateRequest\");\nvar se_UpdateSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKI] != null) {\n entries[_SSHPKI] = input[_SSHPKI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateSSHPublicKeyRequest\");\nvar se_UpdateUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_NPe] != null) {\n entries[_NPe] = input[_NPe];\n }\n if (input[_NUN] != null) {\n entries[_NUN] = input[_NUN];\n }\n return entries;\n}, \"se_UpdateUserRequest\");\nvar se_UploadServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_PK] != null) {\n entries[_PK] = input[_PK];\n }\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UploadServerCertificateRequest\");\nvar se_UploadSigningCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n return entries;\n}, \"se_UploadSigningCertificateRequest\");\nvar se_UploadSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKB] != null) {\n entries[_SSHPKB] = input[_SSHPKB];\n }\n return entries;\n}, \"se_UploadSSHPublicKeyRequest\");\nvar de_AccessDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_SNer] != null) {\n contents[_SNer] = (0, import_smithy_client.expectString)(output[_SNer]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output[_EP] != null) {\n contents[_EP] = (0, import_smithy_client.expectString)(output[_EP]);\n }\n if (output[_LAT] != null) {\n contents[_LAT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LAT]));\n }\n if (output[_TAE] != null) {\n contents[_TAE] = (0, import_smithy_client.strictParseInt32)(output[_TAE]);\n }\n return contents;\n}, \"de_AccessDetail\");\nvar de_AccessDetails = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessDetail(entry, context);\n });\n}, \"de_AccessDetails\");\nvar de_AccessKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_AccessKey\");\nvar de_AccessKeyLastUsed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LUD] != null) {\n contents[_LUD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUD]));\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_AccessKeyLastUsed\");\nvar de_AccessKeyMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_AccessKeyMetadata\");\nvar de_accessKeyMetadataListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessKeyMetadata(entry, context);\n });\n}, \"de_accessKeyMetadataListType\");\nvar de_accountAliasListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_accountAliasListType\");\nvar de_AccountNotManagementOrDelegatedAdministratorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_AccountNotManagementOrDelegatedAdministratorException\");\nvar de_ArnListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ArnListType\");\nvar de_AttachedPermissionsBoundary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PBT] != null) {\n contents[_PBT] = (0, import_smithy_client.expectString)(output[_PBT]);\n }\n if (output[_PBA] != null) {\n contents[_PBA] = (0, import_smithy_client.expectString)(output[_PBA]);\n }\n return contents;\n}, \"de_AttachedPermissionsBoundary\");\nvar de_attachedPoliciesListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AttachedPolicy(entry, context);\n });\n}, \"de_attachedPoliciesListType\");\nvar de_AttachedPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PA] != null) {\n contents[_PA] = (0, import_smithy_client.expectString)(output[_PA]);\n }\n return contents;\n}, \"de_AttachedPolicy\");\nvar de_CallerIsNotManagementAccountException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CallerIsNotManagementAccountException\");\nvar de_certificateListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SigningCertificate(entry, context);\n });\n}, \"de_certificateListType\");\nvar de_CertificationMapType = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_CertificationMapType\");\nvar de_clientIDListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_clientIDListType\");\nvar de_ConcurrentModificationException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ConcurrentModificationException\");\nvar de_ContextKeyNamesResultListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ContextKeyNamesResultListType\");\nvar de_CreateAccessKeyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AK] != null) {\n contents[_AK] = de_AccessKey(output[_AK], context);\n }\n return contents;\n}, \"de_CreateAccessKeyResponse\");\nvar de_CreateGroupResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gr] != null) {\n contents[_Gr] = de_Group(output[_Gr], context);\n }\n return contents;\n}, \"de_CreateGroupResponse\");\nvar de_CreateInstanceProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = de_InstanceProfile(output[_IP], context);\n }\n return contents;\n}, \"de_CreateInstanceProfileResponse\");\nvar de_CreateLoginProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LPo] != null) {\n contents[_LPo] = de_LoginProfile(output[_LPo], context);\n }\n return contents;\n}, \"de_CreateLoginProfileResponse\");\nvar de_CreateOpenIDConnectProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OIDCPA] != null) {\n contents[_OIDCPA] = (0, import_smithy_client.expectString)(output[_OIDCPA]);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_CreateOpenIDConnectProviderResponse\");\nvar de_CreatePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Po] != null) {\n contents[_Po] = de_Policy(output[_Po], context);\n }\n return contents;\n}, \"de_CreatePolicyResponse\");\nvar de_CreatePolicyVersionResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PV] != null) {\n contents[_PV] = de_PolicyVersion(output[_PV], context);\n }\n return contents;\n}, \"de_CreatePolicyVersionResponse\");\nvar de_CreateRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_CreateRoleResponse\");\nvar de_CreateSAMLProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SAMLPA] != null) {\n contents[_SAMLPA] = (0, import_smithy_client.expectString)(output[_SAMLPA]);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_CreateSAMLProviderResponse\");\nvar de_CreateServiceLinkedRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_CreateServiceLinkedRoleResponse\");\nvar de_CreateServiceSpecificCredentialResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSC] != null) {\n contents[_SSC] = de_ServiceSpecificCredential(output[_SSC], context);\n }\n return contents;\n}, \"de_CreateServiceSpecificCredentialResponse\");\nvar de_CreateUserResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Us] != null) {\n contents[_Us] = de_User(output[_Us], context);\n }\n return contents;\n}, \"de_CreateUserResponse\");\nvar de_CreateVirtualMFADeviceResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_VMFAD] != null) {\n contents[_VMFAD] = de_VirtualMFADevice(output[_VMFAD], context);\n }\n return contents;\n}, \"de_CreateVirtualMFADeviceResponse\");\nvar de_CredentialReportExpiredException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_CredentialReportExpiredException\");\nvar de_CredentialReportNotPresentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_CredentialReportNotPresentException\");\nvar de_CredentialReportNotReadyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_CredentialReportNotReadyException\");\nvar de_DeleteConflictException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_DeleteConflictException\");\nvar de_DeleteServiceLinkedRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DTI] != null) {\n contents[_DTI] = (0, import_smithy_client.expectString)(output[_DTI]);\n }\n return contents;\n}, \"de_DeleteServiceLinkedRoleResponse\");\nvar de_DeletionTaskFailureReasonType = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output.RoleUsageList === \"\") {\n contents[_RUL] = [];\n } else if (output[_RUL] != null && output[_RUL][_me] != null) {\n contents[_RUL] = de_RoleUsageListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RUL][_me]), context);\n }\n return contents;\n}, \"de_DeletionTaskFailureReasonType\");\nvar de_DisableOrganizationsRootCredentialsManagementResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_DisableOrganizationsRootCredentialsManagementResponse\");\nvar de_DisableOrganizationsRootSessionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_DisableOrganizationsRootSessionsResponse\");\nvar de_DuplicateCertificateException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_DuplicateCertificateException\");\nvar de_DuplicateSSHPublicKeyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_DuplicateSSHPublicKeyException\");\nvar de_EnableOrganizationsRootCredentialsManagementResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_EnableOrganizationsRootCredentialsManagementResponse\");\nvar de_EnableOrganizationsRootSessionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_EnableOrganizationsRootSessionsResponse\");\nvar de_EntityAlreadyExistsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_EntityAlreadyExistsException\");\nvar de_EntityDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EI] != null) {\n contents[_EI] = de_EntityInfo(output[_EI], context);\n }\n if (output[_LA] != null) {\n contents[_LA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LA]));\n }\n return contents;\n}, \"de_EntityDetails\");\nvar de_entityDetailsListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EntityDetails(entry, context);\n });\n}, \"de_entityDetailsListType\");\nvar de_EntityInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Ty] != null) {\n contents[_Ty] = (0, import_smithy_client.expectString)(output[_Ty]);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_EntityInfo\");\nvar de_EntityTemporarilyUnmodifiableException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_EntityTemporarilyUnmodifiableException\");\nvar de_ErrorDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n return contents;\n}, \"de_ErrorDetails\");\nvar de_EvalDecisionDetailsType = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_EvalDecisionDetailsType\");\nvar de_EvaluationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EAN] != null) {\n contents[_EAN] = (0, import_smithy_client.expectString)(output[_EAN]);\n }\n if (output[_ERN] != null) {\n contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]);\n }\n if (output[_ED] != null) {\n contents[_ED] = (0, import_smithy_client.expectString)(output[_ED]);\n }\n if (output.MatchedStatements === \"\") {\n contents[_MS] = [];\n } else if (output[_MS] != null && output[_MS][_me] != null) {\n contents[_MS] = de_StatementListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MS][_me]), context);\n }\n if (output.MissingContextValues === \"\") {\n contents[_MCV] = [];\n } else if (output[_MCV] != null && output[_MCV][_me] != null) {\n contents[_MCV] = de_ContextKeyNamesResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MCV][_me]), context);\n }\n if (output[_ODD] != null) {\n contents[_ODD] = de_OrganizationsDecisionDetail(output[_ODD], context);\n }\n if (output[_PBDD] != null) {\n contents[_PBDD] = de_PermissionsBoundaryDecisionDetail(output[_PBDD], context);\n }\n if (output.EvalDecisionDetails === \"\") {\n contents[_EDD] = {};\n } else if (output[_EDD] != null && output[_EDD][_e] != null) {\n contents[_EDD] = de_EvalDecisionDetailsType((0, import_smithy_client.getArrayIfSingleItem)(output[_EDD][_e]), context);\n }\n if (output.ResourceSpecificResults === \"\") {\n contents[_RSR] = [];\n } else if (output[_RSR] != null && output[_RSR][_me] != null) {\n contents[_RSR] = de_ResourceSpecificResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RSR][_me]), context);\n }\n return contents;\n}, \"de_EvaluationResult\");\nvar de_EvaluationResultsListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EvaluationResult(entry, context);\n });\n}, \"de_EvaluationResultsListType\");\nvar de_FeaturesListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_FeaturesListType\");\nvar de_GenerateCredentialReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Sta] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_Sta]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n return contents;\n}, \"de_GenerateCredentialReportResponse\");\nvar de_GenerateOrganizationsAccessReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JI] != null) {\n contents[_JI] = (0, import_smithy_client.expectString)(output[_JI]);\n }\n return contents;\n}, \"de_GenerateOrganizationsAccessReportResponse\");\nvar de_GenerateServiceLastAccessedDetailsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JI] != null) {\n contents[_JI] = (0, import_smithy_client.expectString)(output[_JI]);\n }\n return contents;\n}, \"de_GenerateServiceLastAccessedDetailsResponse\");\nvar de_GetAccessKeyLastUsedResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_AKLU] != null) {\n contents[_AKLU] = de_AccessKeyLastUsed(output[_AKLU], context);\n }\n return contents;\n}, \"de_GetAccessKeyLastUsedResponse\");\nvar de_GetAccountAuthorizationDetailsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.UserDetailList === \"\") {\n contents[_UDL] = [];\n } else if (output[_UDL] != null && output[_UDL][_me] != null) {\n contents[_UDL] = de_userDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_UDL][_me]), context);\n }\n if (output.GroupDetailList === \"\") {\n contents[_GDL] = [];\n } else if (output[_GDL] != null && output[_GDL][_me] != null) {\n contents[_GDL] = de_groupDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_GDL][_me]), context);\n }\n if (output.RoleDetailList === \"\") {\n contents[_RDL] = [];\n } else if (output[_RDL] != null && output[_RDL][_me] != null) {\n contents[_RDL] = de_roleDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RDL][_me]), context);\n }\n if (output.Policies === \"\") {\n contents[_Pol] = [];\n } else if (output[_Pol] != null && output[_Pol][_me] != null) {\n contents[_Pol] = de_ManagedPolicyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Pol][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_GetAccountAuthorizationDetailsResponse\");\nvar de_GetAccountPasswordPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PPa] != null) {\n contents[_PPa] = de_PasswordPolicy(output[_PPa], context);\n }\n return contents;\n}, \"de_GetAccountPasswordPolicyResponse\");\nvar de_GetAccountSummaryResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SummaryMap === \"\") {\n contents[_SM] = {};\n } else if (output[_SM] != null && output[_SM][_e] != null) {\n contents[_SM] = de_summaryMapType((0, import_smithy_client.getArrayIfSingleItem)(output[_SM][_e]), context);\n }\n return contents;\n}, \"de_GetAccountSummaryResponse\");\nvar de_GetContextKeysForPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ContextKeyNames === \"\") {\n contents[_CKNo] = [];\n } else if (output[_CKNo] != null && output[_CKNo][_me] != null) {\n contents[_CKNo] = de_ContextKeyNamesResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_CKNo][_me]), context);\n }\n return contents;\n}, \"de_GetContextKeysForPolicyResponse\");\nvar de_GetCredentialReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Co] != null) {\n contents[_Co] = context.base64Decoder(output[_Co]);\n }\n if (output[_RF] != null) {\n contents[_RF] = (0, import_smithy_client.expectString)(output[_RF]);\n }\n if (output[_GT] != null) {\n contents[_GT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_GT]));\n }\n return contents;\n}, \"de_GetCredentialReportResponse\");\nvar de_GetGroupPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_GetGroupPolicyResponse\");\nvar de_GetGroupResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gr] != null) {\n contents[_Gr] = de_Group(output[_Gr], context);\n }\n if (output.Users === \"\") {\n contents[_Use] = [];\n } else if (output[_Use] != null && output[_Use][_me] != null) {\n contents[_Use] = de_userListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Use][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_GetGroupResponse\");\nvar de_GetInstanceProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = de_InstanceProfile(output[_IP], context);\n }\n return contents;\n}, \"de_GetInstanceProfileResponse\");\nvar de_GetLoginProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LPo] != null) {\n contents[_LPo] = de_LoginProfile(output[_LPo], context);\n }\n return contents;\n}, \"de_GetLoginProfileResponse\");\nvar de_GetMFADeviceResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SNe] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_SNe]);\n }\n if (output[_EDn] != null) {\n contents[_EDn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_EDn]));\n }\n if (output.Certifications === \"\") {\n contents[_Ce] = {};\n } else if (output[_Ce] != null && output[_Ce][_e] != null) {\n contents[_Ce] = de_CertificationMapType((0, import_smithy_client.getArrayIfSingleItem)(output[_Ce][_e]), context);\n }\n return contents;\n}, \"de_GetMFADeviceResponse\");\nvar de_GetOpenIDConnectProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_U] != null) {\n contents[_U] = (0, import_smithy_client.expectString)(output[_U]);\n }\n if (output.ClientIDList === \"\") {\n contents[_CIDL] = [];\n } else if (output[_CIDL] != null && output[_CIDL][_me] != null) {\n contents[_CIDL] = de_clientIDListType((0, import_smithy_client.getArrayIfSingleItem)(output[_CIDL][_me]), context);\n }\n if (output.ThumbprintList === \"\") {\n contents[_TL] = [];\n } else if (output[_TL] != null && output[_TL][_me] != null) {\n contents[_TL] = de_thumbprintListType((0, import_smithy_client.getArrayIfSingleItem)(output[_TL][_me]), context);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_GetOpenIDConnectProviderResponse\");\nvar de_GetOrganizationsAccessReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JS] != null) {\n contents[_JS] = (0, import_smithy_client.expectString)(output[_JS]);\n }\n if (output[_JCD] != null) {\n contents[_JCD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCD]));\n }\n if (output[_JCDo] != null) {\n contents[_JCDo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCDo]));\n }\n if (output[_NOSA] != null) {\n contents[_NOSA] = (0, import_smithy_client.strictParseInt32)(output[_NOSA]);\n }\n if (output[_NOSNA] != null) {\n contents[_NOSNA] = (0, import_smithy_client.strictParseInt32)(output[_NOSNA]);\n }\n if (output.AccessDetails === \"\") {\n contents[_AD] = [];\n } else if (output[_AD] != null && output[_AD][_me] != null) {\n contents[_AD] = de_AccessDetails((0, import_smithy_client.getArrayIfSingleItem)(output[_AD][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n if (output[_EDr] != null) {\n contents[_EDr] = de_ErrorDetails(output[_EDr], context);\n }\n return contents;\n}, \"de_GetOrganizationsAccessReportResponse\");\nvar de_GetPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Po] != null) {\n contents[_Po] = de_Policy(output[_Po], context);\n }\n return contents;\n}, \"de_GetPolicyResponse\");\nvar de_GetPolicyVersionResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PV] != null) {\n contents[_PV] = de_PolicyVersion(output[_PV], context);\n }\n return contents;\n}, \"de_GetPolicyVersionResponse\");\nvar de_GetRolePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_GetRolePolicyResponse\");\nvar de_GetRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_GetRoleResponse\");\nvar de_GetSAMLProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SAMLPUUID] != null) {\n contents[_SAMLPUUID] = (0, import_smithy_client.expectString)(output[_SAMLPUUID]);\n }\n if (output[_SAMLMD] != null) {\n contents[_SAMLMD] = (0, import_smithy_client.expectString)(output[_SAMLMD]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_VU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_VU]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_AEM] != null) {\n contents[_AEM] = (0, import_smithy_client.expectString)(output[_AEM]);\n }\n if (output.PrivateKeyList === \"\") {\n contents[_PKL] = [];\n } else if (output[_PKL] != null && output[_PKL][_me] != null) {\n contents[_PKL] = de_privateKeyList((0, import_smithy_client.getArrayIfSingleItem)(output[_PKL][_me]), context);\n }\n return contents;\n}, \"de_GetSAMLProviderResponse\");\nvar de_GetServerCertificateResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SC] != null) {\n contents[_SC] = de_ServerCertificate(output[_SC], context);\n }\n return contents;\n}, \"de_GetServerCertificateResponse\");\nvar de_GetServiceLastAccessedDetailsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JS] != null) {\n contents[_JS] = (0, import_smithy_client.expectString)(output[_JS]);\n }\n if (output[_JT] != null) {\n contents[_JT] = (0, import_smithy_client.expectString)(output[_JT]);\n }\n if (output[_JCD] != null) {\n contents[_JCD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCD]));\n }\n if (output.ServicesLastAccessed === \"\") {\n contents[_SLA] = [];\n } else if (output[_SLA] != null && output[_SLA][_me] != null) {\n contents[_SLA] = de_ServicesLastAccessed((0, import_smithy_client.getArrayIfSingleItem)(output[_SLA][_me]), context);\n }\n if (output[_JCDo] != null) {\n contents[_JCDo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCDo]));\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n return contents;\n}, \"de_GetServiceLastAccessedDetailsResponse\");\nvar de_GetServiceLastAccessedDetailsWithEntitiesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JS] != null) {\n contents[_JS] = (0, import_smithy_client.expectString)(output[_JS]);\n }\n if (output[_JCD] != null) {\n contents[_JCD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCD]));\n }\n if (output[_JCDo] != null) {\n contents[_JCDo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCDo]));\n }\n if (output.EntityDetailsList === \"\") {\n contents[_EDL] = [];\n } else if (output[_EDL] != null && output[_EDL][_me] != null) {\n contents[_EDL] = de_entityDetailsListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EDL][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n return contents;\n}, \"de_GetServiceLastAccessedDetailsWithEntitiesResponse\");\nvar de_GetServiceLinkedRoleDeletionStatusResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_Re] != null) {\n contents[_Re] = de_DeletionTaskFailureReasonType(output[_Re], context);\n }\n return contents;\n}, \"de_GetServiceLinkedRoleDeletionStatusResponse\");\nvar de_GetSSHPublicKeyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSHPK] != null) {\n contents[_SSHPK] = de_SSHPublicKey(output[_SSHPK], context);\n }\n return contents;\n}, \"de_GetSSHPublicKeyResponse\");\nvar de_GetUserPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_GetUserPolicyResponse\");\nvar de_GetUserResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Us] != null) {\n contents[_Us] = de_User(output[_Us], context);\n }\n return contents;\n}, \"de_GetUserResponse\");\nvar de_Group = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_GI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_GI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_Group\");\nvar de_GroupDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_GI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_GI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.GroupPolicyList === \"\") {\n contents[_GPL] = [];\n } else if (output[_GPL] != null && output[_GPL][_me] != null) {\n contents[_GPL] = de_policyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_GPL][_me]), context);\n }\n if (output.AttachedManagedPolicies === \"\") {\n contents[_AMP] = [];\n } else if (output[_AMP] != null && output[_AMP][_me] != null) {\n contents[_AMP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AMP][_me]), context);\n }\n return contents;\n}, \"de_GroupDetail\");\nvar de_groupDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GroupDetail(entry, context);\n });\n}, \"de_groupDetailListType\");\nvar de_groupListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Group(entry, context);\n });\n}, \"de_groupListType\");\nvar de_groupNameListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_groupNameListType\");\nvar de_InstanceProfile = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_IPN] != null) {\n contents[_IPN] = (0, import_smithy_client.expectString)(output[_IPN]);\n }\n if (output[_IPI] != null) {\n contents[_IPI] = (0, import_smithy_client.expectString)(output[_IPI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.Roles === \"\") {\n contents[_Rol] = [];\n } else if (output[_Rol] != null && output[_Rol][_me] != null) {\n contents[_Rol] = de_roleListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Rol][_me]), context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_InstanceProfile\");\nvar de_instanceProfileListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceProfile(entry, context);\n });\n}, \"de_instanceProfileListType\");\nvar de_InvalidAuthenticationCodeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidAuthenticationCodeException\");\nvar de_InvalidCertificateException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidCertificateException\");\nvar de_InvalidInputException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidInputException\");\nvar de_InvalidPublicKeyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidPublicKeyException\");\nvar de_InvalidUserTypeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidUserTypeException\");\nvar de_KeyPairMismatchException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_KeyPairMismatchException\");\nvar de_LimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_LimitExceededException\");\nvar de_ListAccessKeysResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AccessKeyMetadata === \"\") {\n contents[_AKM] = [];\n } else if (output[_AKM] != null && output[_AKM][_me] != null) {\n contents[_AKM] = de_accessKeyMetadataListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AKM][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAccessKeysResponse\");\nvar de_ListAccountAliasesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AccountAliases === \"\") {\n contents[_AAc] = [];\n } else if (output[_AAc] != null && output[_AAc][_me] != null) {\n contents[_AAc] = de_accountAliasListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AAc][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAccountAliasesResponse\");\nvar de_ListAttachedGroupPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AttachedPolicies === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_me] != null) {\n contents[_AP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAttachedGroupPoliciesResponse\");\nvar de_ListAttachedRolePoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AttachedPolicies === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_me] != null) {\n contents[_AP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAttachedRolePoliciesResponse\");\nvar de_ListAttachedUserPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AttachedPolicies === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_me] != null) {\n contents[_AP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAttachedUserPoliciesResponse\");\nvar de_ListEntitiesForPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyGroups === \"\") {\n contents[_PG] = [];\n } else if (output[_PG] != null && output[_PG][_me] != null) {\n contents[_PG] = de_PolicyGroupListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PG][_me]), context);\n }\n if (output.PolicyUsers === \"\") {\n contents[_PU] = [];\n } else if (output[_PU] != null && output[_PU][_me] != null) {\n contents[_PU] = de_PolicyUserListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PU][_me]), context);\n }\n if (output.PolicyRoles === \"\") {\n contents[_PR] = [];\n } else if (output[_PR] != null && output[_PR][_me] != null) {\n contents[_PR] = de_PolicyRoleListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PR][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListEntitiesForPolicyResponse\");\nvar de_ListGroupPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyNames === \"\") {\n contents[_PNo] = [];\n } else if (output[_PNo] != null && output[_PNo][_me] != null) {\n contents[_PNo] = de_policyNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PNo][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListGroupPoliciesResponse\");\nvar de_ListGroupsForUserResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Groups === \"\") {\n contents[_Gro] = [];\n } else if (output[_Gro] != null && output[_Gro][_me] != null) {\n contents[_Gro] = de_groupListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Gro][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListGroupsForUserResponse\");\nvar de_ListGroupsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Groups === \"\") {\n contents[_Gro] = [];\n } else if (output[_Gro] != null && output[_Gro][_me] != null) {\n contents[_Gro] = de_groupListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Gro][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListGroupsResponse\");\nvar de_ListInstanceProfilesForRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.InstanceProfiles === \"\") {\n contents[_IPn] = [];\n } else if (output[_IPn] != null && output[_IPn][_me] != null) {\n contents[_IPn] = de_instanceProfileListType((0, import_smithy_client.getArrayIfSingleItem)(output[_IPn][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListInstanceProfilesForRoleResponse\");\nvar de_ListInstanceProfilesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.InstanceProfiles === \"\") {\n contents[_IPn] = [];\n } else if (output[_IPn] != null && output[_IPn][_me] != null) {\n contents[_IPn] = de_instanceProfileListType((0, import_smithy_client.getArrayIfSingleItem)(output[_IPn][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListInstanceProfilesResponse\");\nvar de_ListInstanceProfileTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListInstanceProfileTagsResponse\");\nvar de_ListMFADevicesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.MFADevices === \"\") {\n contents[_MFAD] = [];\n } else if (output[_MFAD] != null && output[_MFAD][_me] != null) {\n contents[_MFAD] = de_mfaDeviceListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MFAD][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListMFADevicesResponse\");\nvar de_ListMFADeviceTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListMFADeviceTagsResponse\");\nvar de_ListOpenIDConnectProvidersResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.OpenIDConnectProviderList === \"\") {\n contents[_OIDCPL] = [];\n } else if (output[_OIDCPL] != null && output[_OIDCPL][_me] != null) {\n contents[_OIDCPL] = de_OpenIDConnectProviderListType((0, import_smithy_client.getArrayIfSingleItem)(output[_OIDCPL][_me]), context);\n }\n return contents;\n}, \"de_ListOpenIDConnectProvidersResponse\");\nvar de_ListOpenIDConnectProviderTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListOpenIDConnectProviderTagsResponse\");\nvar de_ListOrganizationsFeaturesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_ListOrganizationsFeaturesResponse\");\nvar de_ListPoliciesGrantingServiceAccessEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SNer] != null) {\n contents[_SNer] = (0, import_smithy_client.expectString)(output[_SNer]);\n }\n if (output.Policies === \"\") {\n contents[_Pol] = [];\n } else if (output[_Pol] != null && output[_Pol][_me] != null) {\n contents[_Pol] = de_policyGrantingServiceAccessListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Pol][_me]), context);\n }\n return contents;\n}, \"de_ListPoliciesGrantingServiceAccessEntry\");\nvar de_ListPoliciesGrantingServiceAccessResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PoliciesGrantingServiceAccess === \"\") {\n contents[_PGSA] = [];\n } else if (output[_PGSA] != null && output[_PGSA][_me] != null) {\n contents[_PGSA] = de_listPolicyGrantingServiceAccessResponseListType(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_PGSA][_me]),\n context\n );\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPoliciesGrantingServiceAccessResponse\");\nvar de_ListPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Policies === \"\") {\n contents[_Pol] = [];\n } else if (output[_Pol] != null && output[_Pol][_me] != null) {\n contents[_Pol] = de_policyListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Pol][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPoliciesResponse\");\nvar de_listPolicyGrantingServiceAccessResponseListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ListPoliciesGrantingServiceAccessEntry(entry, context);\n });\n}, \"de_listPolicyGrantingServiceAccessResponseListType\");\nvar de_ListPolicyTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPolicyTagsResponse\");\nvar de_ListPolicyVersionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Versions === \"\") {\n contents[_Ve] = [];\n } else if (output[_Ve] != null && output[_Ve][_me] != null) {\n contents[_Ve] = de_policyDocumentVersionListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Ve][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPolicyVersionsResponse\");\nvar de_ListRolePoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyNames === \"\") {\n contents[_PNo] = [];\n } else if (output[_PNo] != null && output[_PNo][_me] != null) {\n contents[_PNo] = de_policyNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PNo][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListRolePoliciesResponse\");\nvar de_ListRolesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Roles === \"\") {\n contents[_Rol] = [];\n } else if (output[_Rol] != null && output[_Rol][_me] != null) {\n contents[_Rol] = de_roleListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Rol][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListRolesResponse\");\nvar de_ListRoleTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListRoleTagsResponse\");\nvar de_ListSAMLProvidersResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SAMLProviderList === \"\") {\n contents[_SAMLPL] = [];\n } else if (output[_SAMLPL] != null && output[_SAMLPL][_me] != null) {\n contents[_SAMLPL] = de_SAMLProviderListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SAMLPL][_me]), context);\n }\n return contents;\n}, \"de_ListSAMLProvidersResponse\");\nvar de_ListSAMLProviderTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListSAMLProviderTagsResponse\");\nvar de_ListServerCertificatesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ServerCertificateMetadataList === \"\") {\n contents[_SCML] = [];\n } else if (output[_SCML] != null && output[_SCML][_me] != null) {\n contents[_SCML] = de_serverCertificateMetadataListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SCML][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListServerCertificatesResponse\");\nvar de_ListServerCertificateTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListServerCertificateTagsResponse\");\nvar de_ListServiceSpecificCredentialsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ServiceSpecificCredentials === \"\") {\n contents[_SSCe] = [];\n } else if (output[_SSCe] != null && output[_SSCe][_me] != null) {\n contents[_SSCe] = de_ServiceSpecificCredentialsListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SSCe][_me]), context);\n }\n return contents;\n}, \"de_ListServiceSpecificCredentialsResponse\");\nvar de_ListSigningCertificatesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Certificates === \"\") {\n contents[_Cer] = [];\n } else if (output[_Cer] != null && output[_Cer][_me] != null) {\n contents[_Cer] = de_certificateListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Cer][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListSigningCertificatesResponse\");\nvar de_ListSSHPublicKeysResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SSHPublicKeys === \"\") {\n contents[_SSHPKu] = [];\n } else if (output[_SSHPKu] != null && output[_SSHPKu][_me] != null) {\n contents[_SSHPKu] = de_SSHPublicKeyListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SSHPKu][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListSSHPublicKeysResponse\");\nvar de_ListUserPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyNames === \"\") {\n contents[_PNo] = [];\n } else if (output[_PNo] != null && output[_PNo][_me] != null) {\n contents[_PNo] = de_policyNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PNo][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListUserPoliciesResponse\");\nvar de_ListUsersResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Users === \"\") {\n contents[_Use] = [];\n } else if (output[_Use] != null && output[_Use][_me] != null) {\n contents[_Use] = de_userListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Use][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListUsersResponse\");\nvar de_ListUserTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListUserTagsResponse\");\nvar de_ListVirtualMFADevicesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.VirtualMFADevices === \"\") {\n contents[_VMFADi] = [];\n } else if (output[_VMFADi] != null && output[_VMFADi][_me] != null) {\n contents[_VMFADi] = de_virtualMFADeviceListType((0, import_smithy_client.getArrayIfSingleItem)(output[_VMFADi][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListVirtualMFADevicesResponse\");\nvar de_LoginProfile = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_PRR] != null) {\n contents[_PRR] = (0, import_smithy_client.parseBoolean)(output[_PRR]);\n }\n return contents;\n}, \"de_LoginProfile\");\nvar de_MalformedCertificateException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedCertificateException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_ManagedPolicyDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_DVI] != null) {\n contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]);\n }\n if (output[_ACt] != null) {\n contents[_ACt] = (0, import_smithy_client.strictParseInt32)(output[_ACt]);\n }\n if (output[_PBUC] != null) {\n contents[_PBUC] = (0, import_smithy_client.strictParseInt32)(output[_PBUC]);\n }\n if (output[_IA] != null) {\n contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_UD] != null) {\n contents[_UD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UD]));\n }\n if (output.PolicyVersionList === \"\") {\n contents[_PVL] = [];\n } else if (output[_PVL] != null && output[_PVL][_me] != null) {\n contents[_PVL] = de_policyDocumentVersionListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PVL][_me]), context);\n }\n return contents;\n}, \"de_ManagedPolicyDetail\");\nvar de_ManagedPolicyDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ManagedPolicyDetail(entry, context);\n });\n}, \"de_ManagedPolicyDetailListType\");\nvar de_MFADevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SNe] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_SNe]);\n }\n if (output[_EDn] != null) {\n contents[_EDn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_EDn]));\n }\n return contents;\n}, \"de_MFADevice\");\nvar de_mfaDeviceListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MFADevice(entry, context);\n });\n}, \"de_mfaDeviceListType\");\nvar de_NoSuchEntityException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_NoSuchEntityException\");\nvar de_OpenIDConnectProviderListEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_OpenIDConnectProviderListEntry\");\nvar de_OpenIDConnectProviderListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_OpenIDConnectProviderListEntry(entry, context);\n });\n}, \"de_OpenIDConnectProviderListType\");\nvar de_OpenIdIdpCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_OpenIdIdpCommunicationErrorException\");\nvar de_OrganizationNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_OrganizationNotFoundException\");\nvar de_OrganizationNotInAllFeaturesModeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_OrganizationNotInAllFeaturesModeException\");\nvar de_OrganizationsDecisionDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ABO] != null) {\n contents[_ABO] = (0, import_smithy_client.parseBoolean)(output[_ABO]);\n }\n return contents;\n}, \"de_OrganizationsDecisionDetail\");\nvar de_PasswordPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_MPL]);\n }\n if (output[_RS] != null) {\n contents[_RS] = (0, import_smithy_client.parseBoolean)(output[_RS]);\n }\n if (output[_RNe] != null) {\n contents[_RNe] = (0, import_smithy_client.parseBoolean)(output[_RNe]);\n }\n if (output[_RUC] != null) {\n contents[_RUC] = (0, import_smithy_client.parseBoolean)(output[_RUC]);\n }\n if (output[_RLC] != null) {\n contents[_RLC] = (0, import_smithy_client.parseBoolean)(output[_RLC]);\n }\n if (output[_AUTCP] != null) {\n contents[_AUTCP] = (0, import_smithy_client.parseBoolean)(output[_AUTCP]);\n }\n if (output[_EPx] != null) {\n contents[_EPx] = (0, import_smithy_client.parseBoolean)(output[_EPx]);\n }\n if (output[_MPA] != null) {\n contents[_MPA] = (0, import_smithy_client.strictParseInt32)(output[_MPA]);\n }\n if (output[_PRPa] != null) {\n contents[_PRPa] = (0, import_smithy_client.strictParseInt32)(output[_PRPa]);\n }\n if (output[_HE] != null) {\n contents[_HE] = (0, import_smithy_client.parseBoolean)(output[_HE]);\n }\n return contents;\n}, \"de_PasswordPolicy\");\nvar de_PasswordPolicyViolationException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PasswordPolicyViolationException\");\nvar de_PermissionsBoundaryDecisionDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ABPB] != null) {\n contents[_ABPB] = (0, import_smithy_client.parseBoolean)(output[_ABPB]);\n }\n return contents;\n}, \"de_PermissionsBoundaryDecisionDetail\");\nvar de_Policy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_DVI] != null) {\n contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]);\n }\n if (output[_ACt] != null) {\n contents[_ACt] = (0, import_smithy_client.strictParseInt32)(output[_ACt]);\n }\n if (output[_PBUC] != null) {\n contents[_PBUC] = (0, import_smithy_client.strictParseInt32)(output[_PBUC]);\n }\n if (output[_IA] != null) {\n contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_UD] != null) {\n contents[_UD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UD]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_Policy\");\nvar de_PolicyDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_PolicyDetail\");\nvar de_policyDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyDetail(entry, context);\n });\n}, \"de_policyDetailListType\");\nvar de_policyDocumentVersionListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyVersion(entry, context);\n });\n}, \"de_policyDocumentVersionListType\");\nvar de_PolicyEvaluationException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PolicyEvaluationException\");\nvar de_PolicyGrantingServiceAccess = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PT] != null) {\n contents[_PT] = (0, import_smithy_client.expectString)(output[_PT]);\n }\n if (output[_PA] != null) {\n contents[_PA] = (0, import_smithy_client.expectString)(output[_PA]);\n }\n if (output[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(output[_ET]);\n }\n if (output[_EN] != null) {\n contents[_EN] = (0, import_smithy_client.expectString)(output[_EN]);\n }\n return contents;\n}, \"de_PolicyGrantingServiceAccess\");\nvar de_policyGrantingServiceAccessListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyGrantingServiceAccess(entry, context);\n });\n}, \"de_policyGrantingServiceAccessListType\");\nvar de_PolicyGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_GI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_GI]);\n }\n return contents;\n}, \"de_PolicyGroup\");\nvar de_PolicyGroupListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyGroup(entry, context);\n });\n}, \"de_PolicyGroupListType\");\nvar de_policyListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Policy(entry, context);\n });\n}, \"de_policyListType\");\nvar de_policyNameListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_policyNameListType\");\nvar de_PolicyNotAttachableException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PolicyNotAttachableException\");\nvar de_PolicyRole = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n return contents;\n}, \"de_PolicyRole\");\nvar de_PolicyRoleListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyRole(entry, context);\n });\n}, \"de_PolicyRoleListType\");\nvar de_PolicyUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n return contents;\n}, \"de_PolicyUser\");\nvar de_PolicyUserListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyUser(entry, context);\n });\n}, \"de_PolicyUserListType\");\nvar de_PolicyVersion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Do] != null) {\n contents[_Do] = (0, import_smithy_client.expectString)(output[_Do]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_IDV] != null) {\n contents[_IDV] = (0, import_smithy_client.parseBoolean)(output[_IDV]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_PolicyVersion\");\nvar de_Position = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_L] != null) {\n contents[_L] = (0, import_smithy_client.strictParseInt32)(output[_L]);\n }\n if (output[_Col] != null) {\n contents[_Col] = (0, import_smithy_client.strictParseInt32)(output[_Col]);\n }\n return contents;\n}, \"de_Position\");\nvar de_privateKeyList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SAMLPrivateKey(entry, context);\n });\n}, \"de_privateKeyList\");\nvar de_ReportGenerationLimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ReportGenerationLimitExceededException\");\nvar de_ResetServiceSpecificCredentialResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSC] != null) {\n contents[_SSC] = de_ServiceSpecificCredential(output[_SSC], context);\n }\n return contents;\n}, \"de_ResetServiceSpecificCredentialResponse\");\nvar de_ResourceSpecificResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ERN] != null) {\n contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]);\n }\n if (output[_ERD] != null) {\n contents[_ERD] = (0, import_smithy_client.expectString)(output[_ERD]);\n }\n if (output.MatchedStatements === \"\") {\n contents[_MS] = [];\n } else if (output[_MS] != null && output[_MS][_me] != null) {\n contents[_MS] = de_StatementListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MS][_me]), context);\n }\n if (output.MissingContextValues === \"\") {\n contents[_MCV] = [];\n } else if (output[_MCV] != null && output[_MCV][_me] != null) {\n contents[_MCV] = de_ContextKeyNamesResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MCV][_me]), context);\n }\n if (output.EvalDecisionDetails === \"\") {\n contents[_EDD] = {};\n } else if (output[_EDD] != null && output[_EDD][_e] != null) {\n contents[_EDD] = de_EvalDecisionDetailsType((0, import_smithy_client.getArrayIfSingleItem)(output[_EDD][_e]), context);\n }\n if (output[_PBDD] != null) {\n contents[_PBDD] = de_PermissionsBoundaryDecisionDetail(output[_PBDD], context);\n }\n return contents;\n}, \"de_ResourceSpecificResult\");\nvar de_ResourceSpecificResultListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceSpecificResult(entry, context);\n });\n}, \"de_ResourceSpecificResultListType\");\nvar de_Role = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_ARPD] != null) {\n contents[_ARPD] = (0, import_smithy_client.expectString)(output[_ARPD]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_MSD] != null) {\n contents[_MSD] = (0, import_smithy_client.strictParseInt32)(output[_MSD]);\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_RLU] != null) {\n contents[_RLU] = de_RoleLastUsed(output[_RLU], context);\n }\n return contents;\n}, \"de_Role\");\nvar de_RoleDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_ARPD] != null) {\n contents[_ARPD] = (0, import_smithy_client.expectString)(output[_ARPD]);\n }\n if (output.InstanceProfileList === \"\") {\n contents[_IPL] = [];\n } else if (output[_IPL] != null && output[_IPL][_me] != null) {\n contents[_IPL] = de_instanceProfileListType((0, import_smithy_client.getArrayIfSingleItem)(output[_IPL][_me]), context);\n }\n if (output.RolePolicyList === \"\") {\n contents[_RPL] = [];\n } else if (output[_RPL] != null && output[_RPL][_me] != null) {\n contents[_RPL] = de_policyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RPL][_me]), context);\n }\n if (output.AttachedManagedPolicies === \"\") {\n contents[_AMP] = [];\n } else if (output[_AMP] != null && output[_AMP][_me] != null) {\n contents[_AMP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AMP][_me]), context);\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_RLU] != null) {\n contents[_RLU] = de_RoleLastUsed(output[_RLU], context);\n }\n return contents;\n}, \"de_RoleDetail\");\nvar de_roleDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RoleDetail(entry, context);\n });\n}, \"de_roleDetailListType\");\nvar de_RoleLastUsed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LUD] != null) {\n contents[_LUD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUD]));\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_RoleLastUsed\");\nvar de_roleListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Role(entry, context);\n });\n}, \"de_roleListType\");\nvar de_RoleUsageListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RoleUsageType(entry, context);\n });\n}, \"de_RoleUsageListType\");\nvar de_RoleUsageType = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output.Resources === \"\") {\n contents[_Res] = [];\n } else if (output[_Res] != null && output[_Res][_me] != null) {\n contents[_Res] = de_ArnListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Res][_me]), context);\n }\n return contents;\n}, \"de_RoleUsageType\");\nvar de_SAMLPrivateKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_KI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_KI]);\n }\n if (output[_Ti] != null) {\n contents[_Ti] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ti]));\n }\n return contents;\n}, \"de_SAMLPrivateKey\");\nvar de_SAMLProviderListEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_VU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_VU]));\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_SAMLProviderListEntry\");\nvar de_SAMLProviderListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SAMLProviderListEntry(entry, context);\n });\n}, \"de_SAMLProviderListType\");\nvar de_ServerCertificate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SCM] != null) {\n contents[_SCM] = de_ServerCertificateMetadata(output[_SCM], context);\n }\n if (output[_CB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_CB]);\n }\n if (output[_CC] != null) {\n contents[_CC] = (0, import_smithy_client.expectString)(output[_CC]);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_ServerCertificate\");\nvar de_ServerCertificateMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_SCN] != null) {\n contents[_SCN] = (0, import_smithy_client.expectString)(output[_SCN]);\n }\n if (output[_SCI] != null) {\n contents[_SCI] = (0, import_smithy_client.expectString)(output[_SCI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n if (output[_Ex] != null) {\n contents[_Ex] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ex]));\n }\n return contents;\n}, \"de_ServerCertificateMetadata\");\nvar de_serverCertificateMetadataListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServerCertificateMetadata(entry, context);\n });\n}, \"de_serverCertificateMetadataListType\");\nvar de_ServiceAccessNotEnabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ServiceAccessNotEnabledException\");\nvar de_ServiceFailureException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ServiceFailureException\");\nvar de_ServiceLastAccessed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_LA] != null) {\n contents[_LA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LA]));\n }\n if (output[_SNer] != null) {\n contents[_SNer] = (0, import_smithy_client.expectString)(output[_SNer]);\n }\n if (output[_LAE] != null) {\n contents[_LAE] = (0, import_smithy_client.expectString)(output[_LAE]);\n }\n if (output[_LAR] != null) {\n contents[_LAR] = (0, import_smithy_client.expectString)(output[_LAR]);\n }\n if (output[_TAE] != null) {\n contents[_TAE] = (0, import_smithy_client.strictParseInt32)(output[_TAE]);\n }\n if (output.TrackedActionsLastAccessed === \"\") {\n contents[_TALA] = [];\n } else if (output[_TALA] != null && output[_TALA][_me] != null) {\n contents[_TALA] = de_TrackedActionsLastAccessed((0, import_smithy_client.getArrayIfSingleItem)(output[_TALA][_me]), context);\n }\n return contents;\n}, \"de_ServiceLastAccessed\");\nvar de_ServiceNotSupportedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ServiceNotSupportedException\");\nvar de_ServicesLastAccessed = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceLastAccessed(entry, context);\n });\n}, \"de_ServicesLastAccessed\");\nvar de_ServiceSpecificCredential = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_SUN] != null) {\n contents[_SUN] = (0, import_smithy_client.expectString)(output[_SUN]);\n }\n if (output[_SP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_SP]);\n }\n if (output[_SSCI] != null) {\n contents[_SSCI] = (0, import_smithy_client.expectString)(output[_SSCI]);\n }\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n return contents;\n}, \"de_ServiceSpecificCredential\");\nvar de_ServiceSpecificCredentialMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_SUN] != null) {\n contents[_SUN] = (0, import_smithy_client.expectString)(output[_SUN]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_SSCI] != null) {\n contents[_SSCI] = (0, import_smithy_client.expectString)(output[_SSCI]);\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n return contents;\n}, \"de_ServiceSpecificCredentialMetadata\");\nvar de_ServiceSpecificCredentialsListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceSpecificCredentialMetadata(entry, context);\n });\n}, \"de_ServiceSpecificCredentialsListType\");\nvar de_SigningCertificate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_CI] != null) {\n contents[_CI] = (0, import_smithy_client.expectString)(output[_CI]);\n }\n if (output[_CB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_CB]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n return contents;\n}, \"de_SigningCertificate\");\nvar de_SimulatePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.EvaluationResults === \"\") {\n contents[_ER] = [];\n } else if (output[_ER] != null && output[_ER][_me] != null) {\n contents[_ER] = de_EvaluationResultsListType((0, import_smithy_client.getArrayIfSingleItem)(output[_ER][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_SimulatePolicyResponse\");\nvar de_SSHPublicKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SSHPKI] != null) {\n contents[_SSHPKI] = (0, import_smithy_client.expectString)(output[_SSHPKI]);\n }\n if (output[_Fi] != null) {\n contents[_Fi] = (0, import_smithy_client.expectString)(output[_Fi]);\n }\n if (output[_SSHPKB] != null) {\n contents[_SSHPKB] = (0, import_smithy_client.expectString)(output[_SSHPKB]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n return contents;\n}, \"de_SSHPublicKey\");\nvar de_SSHPublicKeyListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SSHPublicKeyMetadata(entry, context);\n });\n}, \"de_SSHPublicKeyListType\");\nvar de_SSHPublicKeyMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SSHPKI] != null) {\n contents[_SSHPKI] = (0, import_smithy_client.expectString)(output[_SSHPKI]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n return contents;\n}, \"de_SSHPublicKeyMetadata\");\nvar de_Statement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SPI] != null) {\n contents[_SPI] = (0, import_smithy_client.expectString)(output[_SPI]);\n }\n if (output[_SPT] != null) {\n contents[_SPT] = (0, import_smithy_client.expectString)(output[_SPT]);\n }\n if (output[_SPt] != null) {\n contents[_SPt] = de_Position(output[_SPt], context);\n }\n if (output[_EPn] != null) {\n contents[_EPn] = de_Position(output[_EPn], context);\n }\n return contents;\n}, \"de_Statement\");\nvar de_StatementListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Statement(entry, context);\n });\n}, \"de_StatementListType\");\nvar de_summaryMapType = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.strictParseInt32)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_summaryMapType\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Va] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_Va]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_tagListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_tagListType\");\nvar de_thumbprintListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_thumbprintListType\");\nvar de_TrackedActionLastAccessed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ANc] != null) {\n contents[_ANc] = (0, import_smithy_client.expectString)(output[_ANc]);\n }\n if (output[_LAEa] != null) {\n contents[_LAEa] = (0, import_smithy_client.expectString)(output[_LAEa]);\n }\n if (output[_LATa] != null) {\n contents[_LATa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LATa]));\n }\n if (output[_LARa] != null) {\n contents[_LARa] = (0, import_smithy_client.expectString)(output[_LARa]);\n }\n return contents;\n}, \"de_TrackedActionLastAccessed\");\nvar de_TrackedActionsLastAccessed = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrackedActionLastAccessed(entry, context);\n });\n}, \"de_TrackedActionsLastAccessed\");\nvar de_UnmodifiableEntityException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_UnmodifiableEntityException\");\nvar de_UnrecognizedPublicKeyEncodingException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_UnrecognizedPublicKeyEncodingException\");\nvar de_UpdateRoleDescriptionResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_UpdateRoleDescriptionResponse\");\nvar de_UpdateRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_UpdateRoleResponse\");\nvar de_UpdateSAMLProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SAMLPA] != null) {\n contents[_SAMLPA] = (0, import_smithy_client.expectString)(output[_SAMLPA]);\n }\n return contents;\n}, \"de_UpdateSAMLProviderResponse\");\nvar de_UploadServerCertificateResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SCM] != null) {\n contents[_SCM] = de_ServerCertificateMetadata(output[_SCM], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_UploadServerCertificateResponse\");\nvar de_UploadSigningCertificateResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Cert] != null) {\n contents[_Cert] = de_SigningCertificate(output[_Cert], context);\n }\n return contents;\n}, \"de_UploadSigningCertificateResponse\");\nvar de_UploadSSHPublicKeyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSHPK] != null) {\n contents[_SSHPK] = de_SSHPublicKey(output[_SSHPK], context);\n }\n return contents;\n}, \"de_UploadSSHPublicKeyResponse\");\nvar de_User = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_PLU] != null) {\n contents[_PLU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_PLU]));\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_User\");\nvar de_UserDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.UserPolicyList === \"\") {\n contents[_UPL] = [];\n } else if (output[_UPL] != null && output[_UPL][_me] != null) {\n contents[_UPL] = de_policyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_UPL][_me]), context);\n }\n if (output.GroupList === \"\") {\n contents[_GL] = [];\n } else if (output[_GL] != null && output[_GL][_me] != null) {\n contents[_GL] = de_groupNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_GL][_me]), context);\n }\n if (output.AttachedManagedPolicies === \"\") {\n contents[_AMP] = [];\n } else if (output[_AMP] != null && output[_AMP][_me] != null) {\n contents[_AMP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AMP][_me]), context);\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_UserDetail\");\nvar de_userDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UserDetail(entry, context);\n });\n}, \"de_userDetailListType\");\nvar de_userListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_User(entry, context);\n });\n}, \"de_userListType\");\nvar de_VirtualMFADevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SNe] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_SNe]);\n }\n if (output[_BSS] != null) {\n contents[_BSS] = context.base64Decoder(output[_BSS]);\n }\n if (output[_QRCPNG] != null) {\n contents[_QRCPNG] = context.base64Decoder(output[_QRCPNG]);\n }\n if (output[_Us] != null) {\n contents[_Us] = de_User(output[_Us], context);\n }\n if (output[_EDn] != null) {\n contents[_EDn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_EDn]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_VirtualMFADevice\");\nvar de_virtualMFADeviceListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VirtualMFADevice(entry, context);\n });\n}, \"de_virtualMFADeviceListType\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(IAMServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2010-05-08\";\nvar _A = \"Action\";\nvar _AA = \"AccountAlias\";\nvar _AAc = \"AccountAliases\";\nvar _ABO = \"AllowedByOrganizations\";\nvar _ABPB = \"AllowedByPermissionsBoundary\";\nvar _AC = \"AuthenticationCode1\";\nvar _ACIDTOIDCP = \"AddClientIDToOpenIDConnectProvider\";\nvar _ACt = \"AttachmentCount\";\nvar _ACu = \"AuthenticationCode2\";\nvar _AD = \"AccessDetails\";\nvar _AEM = \"AssertionEncryptionMode\";\nvar _AGP = \"AttachGroupPolicy\";\nvar _AK = \"AccessKey\";\nvar _AKI = \"AccessKeyId\";\nvar _AKLU = \"AccessKeyLastUsed\";\nvar _AKM = \"AccessKeyMetadata\";\nvar _AMP = \"AttachedManagedPolicies\";\nvar _AN = \"ActionNames\";\nvar _ANc = \"ActionName\";\nvar _AP = \"AttachedPolicies\";\nvar _APK = \"AddPrivateKey\";\nvar _ARP = \"AttachRolePolicy\";\nvar _ARPD = \"AssumeRolePolicyDocument\";\nvar _ARTIP = \"AddRoleToInstanceProfile\";\nvar _AS = \"AssignmentStatus\";\nvar _AUP = \"AttachUserPolicy\";\nvar _AUTCP = \"AllowUsersToChangePassword\";\nvar _AUTG = \"AddUserToGroup\";\nvar _AWSSN = \"AWSServiceName\";\nvar _Ar = \"Arn\";\nvar _BSS = \"Base32StringSeed\";\nvar _C = \"Code\";\nvar _CA = \"CallerArn\";\nvar _CAA = \"CreateAccountAlias\";\nvar _CAK = \"CreateAccessKey\";\nvar _CB = \"CertificateBody\";\nvar _CC = \"CertificateChain\";\nvar _CD = \"CreateDate\";\nvar _CE = \"ContextEntries\";\nvar _CG = \"CreateGroup\";\nvar _CI = \"CertificateId\";\nvar _CID = \"ClientID\";\nvar _CIDL = \"ClientIDList\";\nvar _CIP = \"CreateInstanceProfile\";\nvar _CKN = \"ContextKeyName\";\nvar _CKNo = \"ContextKeyNames\";\nvar _CKT = \"ContextKeyType\";\nvar _CKV = \"ContextKeyValues\";\nvar _CLP = \"CreateLoginProfile\";\nvar _COIDCP = \"CreateOpenIDConnectProvider\";\nvar _CP = \"ChangePassword\";\nvar _CPV = \"CreatePolicyVersion\";\nvar _CPr = \"CreatePolicy\";\nvar _CR = \"CreateRole\";\nvar _CS = \"CustomSuffix\";\nvar _CSAMLP = \"CreateSAMLProvider\";\nvar _CSLR = \"CreateServiceLinkedRole\";\nvar _CSSC = \"CreateServiceSpecificCredential\";\nvar _CU = \"CreateUser\";\nvar _CVMFAD = \"CreateVirtualMFADevice\";\nvar _Ce = \"Certifications\";\nvar _Cer = \"Certificates\";\nvar _Cert = \"Certificate\";\nvar _Co = \"Content\";\nvar _Col = \"Column\";\nvar _D = \"Description\";\nvar _DAA = \"DeleteAccountAlias\";\nvar _DAK = \"DeleteAccessKey\";\nvar _DAPP = \"DeleteAccountPasswordPolicy\";\nvar _DG = \"DeleteGroup\";\nvar _DGP = \"DeleteGroupPolicy\";\nvar _DGPe = \"DetachGroupPolicy\";\nvar _DIP = \"DeleteInstanceProfile\";\nvar _DLP = \"DeleteLoginProfile\";\nvar _DMFAD = \"DeactivateMFADevice\";\nvar _DOIDCP = \"DeleteOpenIDConnectProvider\";\nvar _DORCM = \"DisableOrganizationsRootCredentialsManagement\";\nvar _DORS = \"DisableOrganizationsRootSessions\";\nvar _DP = \"DeletePolicy\";\nvar _DPV = \"DeletePolicyVersion\";\nvar _DR = \"DeleteRole\";\nvar _DRP = \"DeleteRolePolicy\";\nvar _DRPB = \"DeleteRolePermissionsBoundary\";\nvar _DRPe = \"DetachRolePolicy\";\nvar _DSAMLP = \"DeleteSAMLProvider\";\nvar _DSC = \"DeleteServerCertificate\";\nvar _DSCe = \"DeleteSigningCertificate\";\nvar _DSLR = \"DeleteServiceLinkedRole\";\nvar _DSSC = \"DeleteServiceSpecificCredential\";\nvar _DSSHPK = \"DeleteSSHPublicKey\";\nvar _DTI = \"DeletionTaskId\";\nvar _DU = \"DeleteUser\";\nvar _DUP = \"DeleteUserPolicy\";\nvar _DUPB = \"DeleteUserPermissionsBoundary\";\nvar _DUPe = \"DetachUserPolicy\";\nvar _DVI = \"DefaultVersionId\";\nvar _DVMFAD = \"DeleteVirtualMFADevice\";\nvar _Do = \"Document\";\nvar _E = \"Encoding\";\nvar _EAN = \"EvalActionName\";\nvar _ED = \"EvalDecision\";\nvar _EDD = \"EvalDecisionDetails\";\nvar _EDL = \"EntityDetailsList\";\nvar _EDn = \"EnableDate\";\nvar _EDr = \"ErrorDetails\";\nvar _EF = \"EntityFilter\";\nvar _EFn = \"EnabledFeatures\";\nvar _EI = \"EntityInfo\";\nvar _EMFAD = \"EnableMFADevice\";\nvar _EN = \"EntityName\";\nvar _EORCM = \"EnableOrganizationsRootCredentialsManagement\";\nvar _EORS = \"EnableOrganizationsRootSessions\";\nvar _EP = \"EntityPath\";\nvar _EPn = \"EndPosition\";\nvar _EPx = \"ExpirePasswords\";\nvar _ER = \"EvaluationResults\";\nvar _ERD = \"EvalResourceDecision\";\nvar _ERN = \"EvalResourceName\";\nvar _ET = \"EntityType\";\nvar _Er = \"Error\";\nvar _Ex = \"Expiration\";\nvar _F = \"Filter\";\nvar _Fi = \"Fingerprint\";\nvar _G = \"Granularity\";\nvar _GAAD = \"GetAccountAuthorizationDetails\";\nvar _GAKLU = \"GetAccessKeyLastUsed\";\nvar _GAPP = \"GetAccountPasswordPolicy\";\nvar _GAS = \"GetAccountSummary\";\nvar _GCKFCP = \"GetContextKeysForCustomPolicy\";\nvar _GCKFPP = \"GetContextKeysForPrincipalPolicy\";\nvar _GCR = \"GenerateCredentialReport\";\nvar _GCRe = \"GetCredentialReport\";\nvar _GDL = \"GroupDetailList\";\nvar _GETV = \"GlobalEndpointTokenVersion\";\nvar _GG = \"GetGroup\";\nvar _GGP = \"GetGroupPolicy\";\nvar _GI = \"GroupId\";\nvar _GIP = \"GetInstanceProfile\";\nvar _GL = \"GroupList\";\nvar _GLP = \"GetLoginProfile\";\nvar _GMFAD = \"GetMFADevice\";\nvar _GN = \"GroupName\";\nvar _GOAR = \"GenerateOrganizationsAccessReport\";\nvar _GOARe = \"GetOrganizationsAccessReport\";\nvar _GOIDCP = \"GetOpenIDConnectProvider\";\nvar _GP = \"GetPolicy\";\nvar _GPL = \"GroupPolicyList\";\nvar _GPV = \"GetPolicyVersion\";\nvar _GR = \"GetRole\";\nvar _GRP = \"GetRolePolicy\";\nvar _GSAMLP = \"GetSAMLProvider\";\nvar _GSC = \"GetServerCertificate\";\nvar _GSLAD = \"GenerateServiceLastAccessedDetails\";\nvar _GSLADWE = \"GetServiceLastAccessedDetailsWithEntities\";\nvar _GSLADe = \"GetServiceLastAccessedDetails\";\nvar _GSLRDS = \"GetServiceLinkedRoleDeletionStatus\";\nvar _GSSHPK = \"GetSSHPublicKey\";\nvar _GT = \"GeneratedTime\";\nvar _GU = \"GetUser\";\nvar _GUP = \"GetUserPolicy\";\nvar _Gr = \"Group\";\nvar _Gro = \"Groups\";\nvar _HE = \"HardExpiry\";\nvar _I = \"Id\";\nvar _IA = \"IsAttachable\";\nvar _IDV = \"IsDefaultVersion\";\nvar _IP = \"InstanceProfile\";\nvar _IPI = \"InstanceProfileId\";\nvar _IPL = \"InstanceProfileList\";\nvar _IPN = \"InstanceProfileName\";\nvar _IPn = \"InstanceProfiles\";\nvar _IT = \"IsTruncated\";\nvar _JCD = \"JobCreationDate\";\nvar _JCDo = \"JobCompletionDate\";\nvar _JI = \"JobId\";\nvar _JS = \"JobStatus\";\nvar _JT = \"JobType\";\nvar _K = \"Key\";\nvar _KI = \"KeyId\";\nvar _L = \"Line\";\nvar _LA = \"LastAuthenticated\";\nvar _LAA = \"ListAccountAliases\";\nvar _LAE = \"LastAuthenticatedEntity\";\nvar _LAEa = \"LastAccessedEntity\";\nvar _LAGP = \"ListAttachedGroupPolicies\";\nvar _LAK = \"ListAccessKeys\";\nvar _LAR = \"LastAuthenticatedRegion\";\nvar _LARP = \"ListAttachedRolePolicies\";\nvar _LARa = \"LastAccessedRegion\";\nvar _LAT = \"LastAuthenticatedTime\";\nvar _LATa = \"LastAccessedTime\";\nvar _LAUP = \"ListAttachedUserPolicies\";\nvar _LEFP = \"ListEntitiesForPolicy\";\nvar _LG = \"ListGroups\";\nvar _LGFU = \"ListGroupsForUser\";\nvar _LGP = \"ListGroupPolicies\";\nvar _LIP = \"ListInstanceProfiles\";\nvar _LIPFR = \"ListInstanceProfilesForRole\";\nvar _LIPT = \"ListInstanceProfileTags\";\nvar _LMFAD = \"ListMFADevices\";\nvar _LMFADT = \"ListMFADeviceTags\";\nvar _LOF = \"ListOrganizationsFeatures\";\nvar _LOIDCP = \"ListOpenIDConnectProviders\";\nvar _LOIDCPT = \"ListOpenIDConnectProviderTags\";\nvar _LP = \"ListPolicies\";\nvar _LPGSA = \"ListPoliciesGrantingServiceAccess\";\nvar _LPT = \"ListPolicyTags\";\nvar _LPV = \"ListPolicyVersions\";\nvar _LPo = \"LoginProfile\";\nvar _LR = \"ListRoles\";\nvar _LRP = \"ListRolePolicies\";\nvar _LRT = \"ListRoleTags\";\nvar _LSAMLP = \"ListSAMLProviders\";\nvar _LSAMLPT = \"ListSAMLProviderTags\";\nvar _LSC = \"ListServerCertificates\";\nvar _LSCT = \"ListServerCertificateTags\";\nvar _LSCi = \"ListSigningCertificates\";\nvar _LSSC = \"ListServiceSpecificCredentials\";\nvar _LSSHPK = \"ListSSHPublicKeys\";\nvar _LU = \"ListUsers\";\nvar _LUD = \"LastUsedDate\";\nvar _LUP = \"ListUserPolicies\";\nvar _LUT = \"ListUserTags\";\nvar _LVMFAD = \"ListVirtualMFADevices\";\nvar _M = \"Marker\";\nvar _MCV = \"MissingContextValues\";\nvar _MFAD = \"MFADevices\";\nvar _MI = \"MaxItems\";\nvar _MPA = \"MaxPasswordAge\";\nvar _MPL = \"MinimumPasswordLength\";\nvar _MS = \"MatchedStatements\";\nvar _MSD = \"MaxSessionDuration\";\nvar _Me = \"Message\";\nvar _N = \"Name\";\nvar _NGN = \"NewGroupName\";\nvar _NOSA = \"NumberOfServicesAccessible\";\nvar _NOSNA = \"NumberOfServicesNotAccessed\";\nvar _NP = \"NewPassword\";\nvar _NPe = \"NewPath\";\nvar _NSCN = \"NewServerCertificateName\";\nvar _NUN = \"NewUserName\";\nvar _OA = \"OnlyAttached\";\nvar _ODD = \"OrganizationsDecisionDetail\";\nvar _OI = \"OrganizationId\";\nvar _OIDCPA = \"OpenIDConnectProviderArn\";\nvar _OIDCPL = \"OpenIDConnectProviderList\";\nvar _OP = \"OldPassword\";\nvar _OPI = \"OrganizationsPolicyId\";\nvar _P = \"Path\";\nvar _PA = \"PolicyArn\";\nvar _PB = \"PermissionsBoundary\";\nvar _PBA = \"PermissionsBoundaryArn\";\nvar _PBDD = \"PermissionsBoundaryDecisionDetail\";\nvar _PBPIL = \"PermissionsBoundaryPolicyInputList\";\nvar _PBT = \"PermissionsBoundaryType\";\nvar _PBUC = \"PermissionsBoundaryUsageCount\";\nvar _PD = \"PolicyDocument\";\nvar _PG = \"PolicyGroups\";\nvar _PGP = \"PutGroupPolicy\";\nvar _PGSA = \"PoliciesGrantingServiceAccess\";\nvar _PI = \"PolicyId\";\nvar _PIL = \"PolicyInputList\";\nvar _PK = \"PrivateKey\";\nvar _PKL = \"PrivateKeyList\";\nvar _PLU = \"PasswordLastUsed\";\nvar _PN = \"PolicyName\";\nvar _PNo = \"PolicyNames\";\nvar _PP = \"PathPrefix\";\nvar _PPa = \"PasswordPolicy\";\nvar _PR = \"PolicyRoles\";\nvar _PRP = \"PutRolePolicy\";\nvar _PRPB = \"PutRolePermissionsBoundary\";\nvar _PRPa = \"PasswordReusePrevention\";\nvar _PRR = \"PasswordResetRequired\";\nvar _PSA = \"PolicySourceArn\";\nvar _PT = \"PolicyType\";\nvar _PU = \"PolicyUsers\";\nvar _PUF = \"PolicyUsageFilter\";\nvar _PUP = \"PutUserPolicy\";\nvar _PUPB = \"PutUserPermissionsBoundary\";\nvar _PV = \"PolicyVersion\";\nvar _PVL = \"PolicyVersionList\";\nvar _Pa = \"Password\";\nvar _Po = \"Policy\";\nvar _Pol = \"Policies\";\nvar _QRCPNG = \"QRCodePNG\";\nvar _R = \"Region\";\nvar _RA = \"ResourceArns\";\nvar _RCIDFOIDCP = \"RemoveClientIDFromOpenIDConnectProvider\";\nvar _RDL = \"RoleDetailList\";\nvar _RF = \"ReportFormat\";\nvar _RHO = \"ResourceHandlingOption\";\nvar _RI = \"RoleId\";\nvar _RLC = \"RequireLowercaseCharacters\";\nvar _RLU = \"RoleLastUsed\";\nvar _RMFAD = \"ResyncMFADevice\";\nvar _RN = \"RoleName\";\nvar _RNe = \"RequireNumbers\";\nvar _RO = \"ResourceOwner\";\nvar _RP = \"ResourcePolicy\";\nvar _RPK = \"RemovePrivateKey\";\nvar _RPL = \"RolePolicyList\";\nvar _RRFIP = \"RemoveRoleFromInstanceProfile\";\nvar _RS = \"RequireSymbols\";\nvar _RSR = \"ResourceSpecificResults\";\nvar _RSSC = \"ResetServiceSpecificCredential\";\nvar _RUC = \"RequireUppercaseCharacters\";\nvar _RUFG = \"RemoveUserFromGroup\";\nvar _RUL = \"RoleUsageList\";\nvar _Re = \"Reason\";\nvar _Res = \"Resources\";\nvar _Ro = \"Role\";\nvar _Rol = \"Roles\";\nvar _S = \"Scope\";\nvar _SAD = \"SetAsDefault\";\nvar _SAK = \"SecretAccessKey\";\nvar _SAMLMD = \"SAMLMetadataDocument\";\nvar _SAMLPA = \"SAMLProviderArn\";\nvar _SAMLPL = \"SAMLProviderList\";\nvar _SAMLPUUID = \"SAMLProviderUUID\";\nvar _SC = \"ServerCertificate\";\nvar _SCI = \"ServerCertificateId\";\nvar _SCM = \"ServerCertificateMetadata\";\nvar _SCML = \"ServerCertificateMetadataList\";\nvar _SCN = \"ServerCertificateName\";\nvar _SCP = \"SimulateCustomPolicy\";\nvar _SDPV = \"SetDefaultPolicyVersion\";\nvar _SK = \"SortKey\";\nvar _SLA = \"ServicesLastAccessed\";\nvar _SM = \"SummaryMap\";\nvar _SN = \"ServiceName\";\nvar _SNe = \"SerialNumber\";\nvar _SNer = \"ServiceNamespace\";\nvar _SNerv = \"ServiceNamespaces\";\nvar _SP = \"ServicePassword\";\nvar _SPI = \"SourcePolicyId\";\nvar _SPP = \"SimulatePrincipalPolicy\";\nvar _SPT = \"SourcePolicyType\";\nvar _SPt = \"StartPosition\";\nvar _SSC = \"ServiceSpecificCredential\";\nvar _SSCI = \"ServiceSpecificCredentialId\";\nvar _SSCe = \"ServiceSpecificCredentials\";\nvar _SSHPK = \"SSHPublicKey\";\nvar _SSHPKB = \"SSHPublicKeyBody\";\nvar _SSHPKI = \"SSHPublicKeyId\";\nvar _SSHPKu = \"SSHPublicKeys\";\nvar _SSTSP = \"SetSecurityTokenServicePreferences\";\nvar _SUN = \"ServiceUserName\";\nvar _St = \"Status\";\nvar _Sta = \"State\";\nvar _T = \"Tags\";\nvar _TAE = \"TotalAuthenticatedEntities\";\nvar _TALA = \"TrackedActionsLastAccessed\";\nvar _TIP = \"TagInstanceProfile\";\nvar _TK = \"TagKeys\";\nvar _TL = \"ThumbprintList\";\nvar _TMFAD = \"TagMFADevice\";\nvar _TOIDCP = \"TagOpenIDConnectProvider\";\nvar _TP = \"TagPolicy\";\nvar _TR = \"TagRole\";\nvar _TSAMLP = \"TagSAMLProvider\";\nvar _TSC = \"TagServerCertificate\";\nvar _TU = \"TagUser\";\nvar _Ti = \"Timestamp\";\nvar _Ty = \"Type\";\nvar _U = \"Url\";\nvar _UAK = \"UpdateAccessKey\";\nvar _UAPP = \"UpdateAccountPasswordPolicy\";\nvar _UARP = \"UpdateAssumeRolePolicy\";\nvar _UD = \"UpdateDate\";\nvar _UDL = \"UserDetailList\";\nvar _UDp = \"UploadDate\";\nvar _UG = \"UpdateGroup\";\nvar _UI = \"UserId\";\nvar _UIP = \"UntagInstanceProfile\";\nvar _ULP = \"UpdateLoginProfile\";\nvar _UMFAD = \"UntagMFADevice\";\nvar _UN = \"UserName\";\nvar _UOIDCP = \"UntagOpenIDConnectProvider\";\nvar _UOIDCPT = \"UpdateOpenIDConnectProviderThumbprint\";\nvar _UP = \"UntagPolicy\";\nvar _UPL = \"UserPolicyList\";\nvar _UR = \"UntagRole\";\nvar _URD = \"UpdateRoleDescription\";\nvar _URp = \"UpdateRole\";\nvar _USAMLP = \"UntagSAMLProvider\";\nvar _USAMLPp = \"UpdateSAMLProvider\";\nvar _USC = \"UntagServerCertificate\";\nvar _USCp = \"UpdateServerCertificate\";\nvar _USCpd = \"UpdateSigningCertificate\";\nvar _USCpl = \"UploadServerCertificate\";\nvar _USCplo = \"UploadSigningCertificate\";\nvar _USSC = \"UpdateServiceSpecificCredential\";\nvar _USSHPK = \"UpdateSSHPublicKey\";\nvar _USSHPKp = \"UploadSSHPublicKey\";\nvar _UU = \"UntagUser\";\nvar _UUp = \"UpdateUser\";\nvar _Us = \"User\";\nvar _Use = \"Users\";\nvar _V = \"Version\";\nvar _VI = \"VersionId\";\nvar _VMFAD = \"VirtualMFADevice\";\nvar _VMFADN = \"VirtualMFADeviceName\";\nvar _VMFADi = \"VirtualMFADevices\";\nvar _VU = \"ValidUntil\";\nvar _Va = \"Value\";\nvar _Ve = \"Versions\";\nvar _e = \"entry\";\nvar _m = \"message\";\nvar _me = \"member\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/commands/AddClientIDToOpenIDConnectProviderCommand.ts\nvar AddClientIDToOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AddClientIDToOpenIDConnectProvider\", {}).n(\"IAMClient\", \"AddClientIDToOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_AddClientIDToOpenIDConnectProviderCommand).de(de_AddClientIDToOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"AddClientIDToOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/AddRoleToInstanceProfileCommand.ts\n\n\n\nvar AddRoleToInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AddRoleToInstanceProfile\", {}).n(\"IAMClient\", \"AddRoleToInstanceProfileCommand\").f(void 0, void 0).ser(se_AddRoleToInstanceProfileCommand).de(de_AddRoleToInstanceProfileCommand).build() {\n static {\n __name(this, \"AddRoleToInstanceProfileCommand\");\n }\n};\n\n// src/commands/AddUserToGroupCommand.ts\n\n\n\nvar AddUserToGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AddUserToGroup\", {}).n(\"IAMClient\", \"AddUserToGroupCommand\").f(void 0, void 0).ser(se_AddUserToGroupCommand).de(de_AddUserToGroupCommand).build() {\n static {\n __name(this, \"AddUserToGroupCommand\");\n }\n};\n\n// src/commands/AttachGroupPolicyCommand.ts\n\n\n\nvar AttachGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AttachGroupPolicy\", {}).n(\"IAMClient\", \"AttachGroupPolicyCommand\").f(void 0, void 0).ser(se_AttachGroupPolicyCommand).de(de_AttachGroupPolicyCommand).build() {\n static {\n __name(this, \"AttachGroupPolicyCommand\");\n }\n};\n\n// src/commands/AttachRolePolicyCommand.ts\n\n\n\nvar AttachRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AttachRolePolicy\", {}).n(\"IAMClient\", \"AttachRolePolicyCommand\").f(void 0, void 0).ser(se_AttachRolePolicyCommand).de(de_AttachRolePolicyCommand).build() {\n static {\n __name(this, \"AttachRolePolicyCommand\");\n }\n};\n\n// src/commands/AttachUserPolicyCommand.ts\n\n\n\nvar AttachUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AttachUserPolicy\", {}).n(\"IAMClient\", \"AttachUserPolicyCommand\").f(void 0, void 0).ser(se_AttachUserPolicyCommand).de(de_AttachUserPolicyCommand).build() {\n static {\n __name(this, \"AttachUserPolicyCommand\");\n }\n};\n\n// src/commands/ChangePasswordCommand.ts\n\n\n\nvar ChangePasswordCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ChangePassword\", {}).n(\"IAMClient\", \"ChangePasswordCommand\").f(ChangePasswordRequestFilterSensitiveLog, void 0).ser(se_ChangePasswordCommand).de(de_ChangePasswordCommand).build() {\n static {\n __name(this, \"ChangePasswordCommand\");\n }\n};\n\n// src/commands/CreateAccessKeyCommand.ts\n\n\n\nvar CreateAccessKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateAccessKey\", {}).n(\"IAMClient\", \"CreateAccessKeyCommand\").f(void 0, CreateAccessKeyResponseFilterSensitiveLog).ser(se_CreateAccessKeyCommand).de(de_CreateAccessKeyCommand).build() {\n static {\n __name(this, \"CreateAccessKeyCommand\");\n }\n};\n\n// src/commands/CreateAccountAliasCommand.ts\n\n\n\nvar CreateAccountAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateAccountAlias\", {}).n(\"IAMClient\", \"CreateAccountAliasCommand\").f(void 0, void 0).ser(se_CreateAccountAliasCommand).de(de_CreateAccountAliasCommand).build() {\n static {\n __name(this, \"CreateAccountAliasCommand\");\n }\n};\n\n// src/commands/CreateGroupCommand.ts\n\n\n\nvar CreateGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateGroup\", {}).n(\"IAMClient\", \"CreateGroupCommand\").f(void 0, void 0).ser(se_CreateGroupCommand).de(de_CreateGroupCommand).build() {\n static {\n __name(this, \"CreateGroupCommand\");\n }\n};\n\n// src/commands/CreateInstanceProfileCommand.ts\n\n\n\nvar CreateInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateInstanceProfile\", {}).n(\"IAMClient\", \"CreateInstanceProfileCommand\").f(void 0, void 0).ser(se_CreateInstanceProfileCommand).de(de_CreateInstanceProfileCommand).build() {\n static {\n __name(this, \"CreateInstanceProfileCommand\");\n }\n};\n\n// src/commands/CreateLoginProfileCommand.ts\n\n\n\nvar CreateLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateLoginProfile\", {}).n(\"IAMClient\", \"CreateLoginProfileCommand\").f(CreateLoginProfileRequestFilterSensitiveLog, void 0).ser(se_CreateLoginProfileCommand).de(de_CreateLoginProfileCommand).build() {\n static {\n __name(this, \"CreateLoginProfileCommand\");\n }\n};\n\n// src/commands/CreateOpenIDConnectProviderCommand.ts\n\n\n\nvar CreateOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateOpenIDConnectProvider\", {}).n(\"IAMClient\", \"CreateOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_CreateOpenIDConnectProviderCommand).de(de_CreateOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"CreateOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/CreatePolicyCommand.ts\n\n\n\nvar CreatePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreatePolicy\", {}).n(\"IAMClient\", \"CreatePolicyCommand\").f(void 0, void 0).ser(se_CreatePolicyCommand).de(de_CreatePolicyCommand).build() {\n static {\n __name(this, \"CreatePolicyCommand\");\n }\n};\n\n// src/commands/CreatePolicyVersionCommand.ts\n\n\n\nvar CreatePolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreatePolicyVersion\", {}).n(\"IAMClient\", \"CreatePolicyVersionCommand\").f(void 0, void 0).ser(se_CreatePolicyVersionCommand).de(de_CreatePolicyVersionCommand).build() {\n static {\n __name(this, \"CreatePolicyVersionCommand\");\n }\n};\n\n// src/commands/CreateRoleCommand.ts\n\n\n\nvar CreateRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateRole\", {}).n(\"IAMClient\", \"CreateRoleCommand\").f(void 0, void 0).ser(se_CreateRoleCommand).de(de_CreateRoleCommand).build() {\n static {\n __name(this, \"CreateRoleCommand\");\n }\n};\n\n// src/commands/CreateSAMLProviderCommand.ts\n\n\n\nvar CreateSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateSAMLProvider\", {}).n(\"IAMClient\", \"CreateSAMLProviderCommand\").f(CreateSAMLProviderRequestFilterSensitiveLog, void 0).ser(se_CreateSAMLProviderCommand).de(de_CreateSAMLProviderCommand).build() {\n static {\n __name(this, \"CreateSAMLProviderCommand\");\n }\n};\n\n// src/commands/CreateServiceLinkedRoleCommand.ts\n\n\n\nvar CreateServiceLinkedRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateServiceLinkedRole\", {}).n(\"IAMClient\", \"CreateServiceLinkedRoleCommand\").f(void 0, void 0).ser(se_CreateServiceLinkedRoleCommand).de(de_CreateServiceLinkedRoleCommand).build() {\n static {\n __name(this, \"CreateServiceLinkedRoleCommand\");\n }\n};\n\n// src/commands/CreateServiceSpecificCredentialCommand.ts\n\n\n\nvar CreateServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateServiceSpecificCredential\", {}).n(\"IAMClient\", \"CreateServiceSpecificCredentialCommand\").f(void 0, CreateServiceSpecificCredentialResponseFilterSensitiveLog).ser(se_CreateServiceSpecificCredentialCommand).de(de_CreateServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"CreateServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/CreateUserCommand.ts\n\n\n\nvar CreateUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateUser\", {}).n(\"IAMClient\", \"CreateUserCommand\").f(void 0, void 0).ser(se_CreateUserCommand).de(de_CreateUserCommand).build() {\n static {\n __name(this, \"CreateUserCommand\");\n }\n};\n\n// src/commands/CreateVirtualMFADeviceCommand.ts\n\n\n\nvar CreateVirtualMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateVirtualMFADevice\", {}).n(\"IAMClient\", \"CreateVirtualMFADeviceCommand\").f(void 0, CreateVirtualMFADeviceResponseFilterSensitiveLog).ser(se_CreateVirtualMFADeviceCommand).de(de_CreateVirtualMFADeviceCommand).build() {\n static {\n __name(this, \"CreateVirtualMFADeviceCommand\");\n }\n};\n\n// src/commands/DeactivateMFADeviceCommand.ts\n\n\n\nvar DeactivateMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeactivateMFADevice\", {}).n(\"IAMClient\", \"DeactivateMFADeviceCommand\").f(void 0, void 0).ser(se_DeactivateMFADeviceCommand).de(de_DeactivateMFADeviceCommand).build() {\n static {\n __name(this, \"DeactivateMFADeviceCommand\");\n }\n};\n\n// src/commands/DeleteAccessKeyCommand.ts\n\n\n\nvar DeleteAccessKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteAccessKey\", {}).n(\"IAMClient\", \"DeleteAccessKeyCommand\").f(void 0, void 0).ser(se_DeleteAccessKeyCommand).de(de_DeleteAccessKeyCommand).build() {\n static {\n __name(this, \"DeleteAccessKeyCommand\");\n }\n};\n\n// src/commands/DeleteAccountAliasCommand.ts\n\n\n\nvar DeleteAccountAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteAccountAlias\", {}).n(\"IAMClient\", \"DeleteAccountAliasCommand\").f(void 0, void 0).ser(se_DeleteAccountAliasCommand).de(de_DeleteAccountAliasCommand).build() {\n static {\n __name(this, \"DeleteAccountAliasCommand\");\n }\n};\n\n// src/commands/DeleteAccountPasswordPolicyCommand.ts\n\n\n\nvar DeleteAccountPasswordPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteAccountPasswordPolicy\", {}).n(\"IAMClient\", \"DeleteAccountPasswordPolicyCommand\").f(void 0, void 0).ser(se_DeleteAccountPasswordPolicyCommand).de(de_DeleteAccountPasswordPolicyCommand).build() {\n static {\n __name(this, \"DeleteAccountPasswordPolicyCommand\");\n }\n};\n\n// src/commands/DeleteGroupCommand.ts\n\n\n\nvar DeleteGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteGroup\", {}).n(\"IAMClient\", \"DeleteGroupCommand\").f(void 0, void 0).ser(se_DeleteGroupCommand).de(de_DeleteGroupCommand).build() {\n static {\n __name(this, \"DeleteGroupCommand\");\n }\n};\n\n// src/commands/DeleteGroupPolicyCommand.ts\n\n\n\nvar DeleteGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteGroupPolicy\", {}).n(\"IAMClient\", \"DeleteGroupPolicyCommand\").f(void 0, void 0).ser(se_DeleteGroupPolicyCommand).de(de_DeleteGroupPolicyCommand).build() {\n static {\n __name(this, \"DeleteGroupPolicyCommand\");\n }\n};\n\n// src/commands/DeleteInstanceProfileCommand.ts\n\n\n\nvar DeleteInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteInstanceProfile\", {}).n(\"IAMClient\", \"DeleteInstanceProfileCommand\").f(void 0, void 0).ser(se_DeleteInstanceProfileCommand).de(de_DeleteInstanceProfileCommand).build() {\n static {\n __name(this, \"DeleteInstanceProfileCommand\");\n }\n};\n\n// src/commands/DeleteLoginProfileCommand.ts\n\n\n\nvar DeleteLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteLoginProfile\", {}).n(\"IAMClient\", \"DeleteLoginProfileCommand\").f(void 0, void 0).ser(se_DeleteLoginProfileCommand).de(de_DeleteLoginProfileCommand).build() {\n static {\n __name(this, \"DeleteLoginProfileCommand\");\n }\n};\n\n// src/commands/DeleteOpenIDConnectProviderCommand.ts\n\n\n\nvar DeleteOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteOpenIDConnectProvider\", {}).n(\"IAMClient\", \"DeleteOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_DeleteOpenIDConnectProviderCommand).de(de_DeleteOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"DeleteOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/DeletePolicyCommand.ts\n\n\n\nvar DeletePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeletePolicy\", {}).n(\"IAMClient\", \"DeletePolicyCommand\").f(void 0, void 0).ser(se_DeletePolicyCommand).de(de_DeletePolicyCommand).build() {\n static {\n __name(this, \"DeletePolicyCommand\");\n }\n};\n\n// src/commands/DeletePolicyVersionCommand.ts\n\n\n\nvar DeletePolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeletePolicyVersion\", {}).n(\"IAMClient\", \"DeletePolicyVersionCommand\").f(void 0, void 0).ser(se_DeletePolicyVersionCommand).de(de_DeletePolicyVersionCommand).build() {\n static {\n __name(this, \"DeletePolicyVersionCommand\");\n }\n};\n\n// src/commands/DeleteRoleCommand.ts\n\n\n\nvar DeleteRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteRole\", {}).n(\"IAMClient\", \"DeleteRoleCommand\").f(void 0, void 0).ser(se_DeleteRoleCommand).de(de_DeleteRoleCommand).build() {\n static {\n __name(this, \"DeleteRoleCommand\");\n }\n};\n\n// src/commands/DeleteRolePermissionsBoundaryCommand.ts\n\n\n\nvar DeleteRolePermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteRolePermissionsBoundary\", {}).n(\"IAMClient\", \"DeleteRolePermissionsBoundaryCommand\").f(void 0, void 0).ser(se_DeleteRolePermissionsBoundaryCommand).de(de_DeleteRolePermissionsBoundaryCommand).build() {\n static {\n __name(this, \"DeleteRolePermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/DeleteRolePolicyCommand.ts\n\n\n\nvar DeleteRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteRolePolicy\", {}).n(\"IAMClient\", \"DeleteRolePolicyCommand\").f(void 0, void 0).ser(se_DeleteRolePolicyCommand).de(de_DeleteRolePolicyCommand).build() {\n static {\n __name(this, \"DeleteRolePolicyCommand\");\n }\n};\n\n// src/commands/DeleteSAMLProviderCommand.ts\n\n\n\nvar DeleteSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteSAMLProvider\", {}).n(\"IAMClient\", \"DeleteSAMLProviderCommand\").f(void 0, void 0).ser(se_DeleteSAMLProviderCommand).de(de_DeleteSAMLProviderCommand).build() {\n static {\n __name(this, \"DeleteSAMLProviderCommand\");\n }\n};\n\n// src/commands/DeleteServerCertificateCommand.ts\n\n\n\nvar DeleteServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteServerCertificate\", {}).n(\"IAMClient\", \"DeleteServerCertificateCommand\").f(void 0, void 0).ser(se_DeleteServerCertificateCommand).de(de_DeleteServerCertificateCommand).build() {\n static {\n __name(this, \"DeleteServerCertificateCommand\");\n }\n};\n\n// src/commands/DeleteServiceLinkedRoleCommand.ts\n\n\n\nvar DeleteServiceLinkedRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteServiceLinkedRole\", {}).n(\"IAMClient\", \"DeleteServiceLinkedRoleCommand\").f(void 0, void 0).ser(se_DeleteServiceLinkedRoleCommand).de(de_DeleteServiceLinkedRoleCommand).build() {\n static {\n __name(this, \"DeleteServiceLinkedRoleCommand\");\n }\n};\n\n// src/commands/DeleteServiceSpecificCredentialCommand.ts\n\n\n\nvar DeleteServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteServiceSpecificCredential\", {}).n(\"IAMClient\", \"DeleteServiceSpecificCredentialCommand\").f(void 0, void 0).ser(se_DeleteServiceSpecificCredentialCommand).de(de_DeleteServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"DeleteServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/DeleteSigningCertificateCommand.ts\n\n\n\nvar DeleteSigningCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteSigningCertificate\", {}).n(\"IAMClient\", \"DeleteSigningCertificateCommand\").f(void 0, void 0).ser(se_DeleteSigningCertificateCommand).de(de_DeleteSigningCertificateCommand).build() {\n static {\n __name(this, \"DeleteSigningCertificateCommand\");\n }\n};\n\n// src/commands/DeleteSSHPublicKeyCommand.ts\n\n\n\nvar DeleteSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteSSHPublicKey\", {}).n(\"IAMClient\", \"DeleteSSHPublicKeyCommand\").f(void 0, void 0).ser(se_DeleteSSHPublicKeyCommand).de(de_DeleteSSHPublicKeyCommand).build() {\n static {\n __name(this, \"DeleteSSHPublicKeyCommand\");\n }\n};\n\n// src/commands/DeleteUserCommand.ts\n\n\n\nvar DeleteUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteUser\", {}).n(\"IAMClient\", \"DeleteUserCommand\").f(void 0, void 0).ser(se_DeleteUserCommand).de(de_DeleteUserCommand).build() {\n static {\n __name(this, \"DeleteUserCommand\");\n }\n};\n\n// src/commands/DeleteUserPermissionsBoundaryCommand.ts\n\n\n\nvar DeleteUserPermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteUserPermissionsBoundary\", {}).n(\"IAMClient\", \"DeleteUserPermissionsBoundaryCommand\").f(void 0, void 0).ser(se_DeleteUserPermissionsBoundaryCommand).de(de_DeleteUserPermissionsBoundaryCommand).build() {\n static {\n __name(this, \"DeleteUserPermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/DeleteUserPolicyCommand.ts\n\n\n\nvar DeleteUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteUserPolicy\", {}).n(\"IAMClient\", \"DeleteUserPolicyCommand\").f(void 0, void 0).ser(se_DeleteUserPolicyCommand).de(de_DeleteUserPolicyCommand).build() {\n static {\n __name(this, \"DeleteUserPolicyCommand\");\n }\n};\n\n// src/commands/DeleteVirtualMFADeviceCommand.ts\n\n\n\nvar DeleteVirtualMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteVirtualMFADevice\", {}).n(\"IAMClient\", \"DeleteVirtualMFADeviceCommand\").f(void 0, void 0).ser(se_DeleteVirtualMFADeviceCommand).de(de_DeleteVirtualMFADeviceCommand).build() {\n static {\n __name(this, \"DeleteVirtualMFADeviceCommand\");\n }\n};\n\n// src/commands/DetachGroupPolicyCommand.ts\n\n\n\nvar DetachGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DetachGroupPolicy\", {}).n(\"IAMClient\", \"DetachGroupPolicyCommand\").f(void 0, void 0).ser(se_DetachGroupPolicyCommand).de(de_DetachGroupPolicyCommand).build() {\n static {\n __name(this, \"DetachGroupPolicyCommand\");\n }\n};\n\n// src/commands/DetachRolePolicyCommand.ts\n\n\n\nvar DetachRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DetachRolePolicy\", {}).n(\"IAMClient\", \"DetachRolePolicyCommand\").f(void 0, void 0).ser(se_DetachRolePolicyCommand).de(de_DetachRolePolicyCommand).build() {\n static {\n __name(this, \"DetachRolePolicyCommand\");\n }\n};\n\n// src/commands/DetachUserPolicyCommand.ts\n\n\n\nvar DetachUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DetachUserPolicy\", {}).n(\"IAMClient\", \"DetachUserPolicyCommand\").f(void 0, void 0).ser(se_DetachUserPolicyCommand).de(de_DetachUserPolicyCommand).build() {\n static {\n __name(this, \"DetachUserPolicyCommand\");\n }\n};\n\n// src/commands/DisableOrganizationsRootCredentialsManagementCommand.ts\n\n\n\nvar DisableOrganizationsRootCredentialsManagementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DisableOrganizationsRootCredentialsManagement\", {}).n(\"IAMClient\", \"DisableOrganizationsRootCredentialsManagementCommand\").f(void 0, void 0).ser(se_DisableOrganizationsRootCredentialsManagementCommand).de(de_DisableOrganizationsRootCredentialsManagementCommand).build() {\n static {\n __name(this, \"DisableOrganizationsRootCredentialsManagementCommand\");\n }\n};\n\n// src/commands/DisableOrganizationsRootSessionsCommand.ts\n\n\n\nvar DisableOrganizationsRootSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DisableOrganizationsRootSessions\", {}).n(\"IAMClient\", \"DisableOrganizationsRootSessionsCommand\").f(void 0, void 0).ser(se_DisableOrganizationsRootSessionsCommand).de(de_DisableOrganizationsRootSessionsCommand).build() {\n static {\n __name(this, \"DisableOrganizationsRootSessionsCommand\");\n }\n};\n\n// src/commands/EnableMFADeviceCommand.ts\n\n\n\nvar EnableMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"EnableMFADevice\", {}).n(\"IAMClient\", \"EnableMFADeviceCommand\").f(void 0, void 0).ser(se_EnableMFADeviceCommand).de(de_EnableMFADeviceCommand).build() {\n static {\n __name(this, \"EnableMFADeviceCommand\");\n }\n};\n\n// src/commands/EnableOrganizationsRootCredentialsManagementCommand.ts\n\n\n\nvar EnableOrganizationsRootCredentialsManagementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"EnableOrganizationsRootCredentialsManagement\", {}).n(\"IAMClient\", \"EnableOrganizationsRootCredentialsManagementCommand\").f(void 0, void 0).ser(se_EnableOrganizationsRootCredentialsManagementCommand).de(de_EnableOrganizationsRootCredentialsManagementCommand).build() {\n static {\n __name(this, \"EnableOrganizationsRootCredentialsManagementCommand\");\n }\n};\n\n// src/commands/EnableOrganizationsRootSessionsCommand.ts\n\n\n\nvar EnableOrganizationsRootSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"EnableOrganizationsRootSessions\", {}).n(\"IAMClient\", \"EnableOrganizationsRootSessionsCommand\").f(void 0, void 0).ser(se_EnableOrganizationsRootSessionsCommand).de(de_EnableOrganizationsRootSessionsCommand).build() {\n static {\n __name(this, \"EnableOrganizationsRootSessionsCommand\");\n }\n};\n\n// src/commands/GenerateCredentialReportCommand.ts\n\n\n\nvar GenerateCredentialReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GenerateCredentialReport\", {}).n(\"IAMClient\", \"GenerateCredentialReportCommand\").f(void 0, void 0).ser(se_GenerateCredentialReportCommand).de(de_GenerateCredentialReportCommand).build() {\n static {\n __name(this, \"GenerateCredentialReportCommand\");\n }\n};\n\n// src/commands/GenerateOrganizationsAccessReportCommand.ts\n\n\n\nvar GenerateOrganizationsAccessReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GenerateOrganizationsAccessReport\", {}).n(\"IAMClient\", \"GenerateOrganizationsAccessReportCommand\").f(void 0, void 0).ser(se_GenerateOrganizationsAccessReportCommand).de(de_GenerateOrganizationsAccessReportCommand).build() {\n static {\n __name(this, \"GenerateOrganizationsAccessReportCommand\");\n }\n};\n\n// src/commands/GenerateServiceLastAccessedDetailsCommand.ts\n\n\n\nvar GenerateServiceLastAccessedDetailsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GenerateServiceLastAccessedDetails\", {}).n(\"IAMClient\", \"GenerateServiceLastAccessedDetailsCommand\").f(void 0, void 0).ser(se_GenerateServiceLastAccessedDetailsCommand).de(de_GenerateServiceLastAccessedDetailsCommand).build() {\n static {\n __name(this, \"GenerateServiceLastAccessedDetailsCommand\");\n }\n};\n\n// src/commands/GetAccessKeyLastUsedCommand.ts\n\n\n\nvar GetAccessKeyLastUsedCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccessKeyLastUsed\", {}).n(\"IAMClient\", \"GetAccessKeyLastUsedCommand\").f(void 0, void 0).ser(se_GetAccessKeyLastUsedCommand).de(de_GetAccessKeyLastUsedCommand).build() {\n static {\n __name(this, \"GetAccessKeyLastUsedCommand\");\n }\n};\n\n// src/commands/GetAccountAuthorizationDetailsCommand.ts\n\n\n\nvar GetAccountAuthorizationDetailsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccountAuthorizationDetails\", {}).n(\"IAMClient\", \"GetAccountAuthorizationDetailsCommand\").f(void 0, void 0).ser(se_GetAccountAuthorizationDetailsCommand).de(de_GetAccountAuthorizationDetailsCommand).build() {\n static {\n __name(this, \"GetAccountAuthorizationDetailsCommand\");\n }\n};\n\n// src/commands/GetAccountPasswordPolicyCommand.ts\n\n\n\nvar GetAccountPasswordPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccountPasswordPolicy\", {}).n(\"IAMClient\", \"GetAccountPasswordPolicyCommand\").f(void 0, void 0).ser(se_GetAccountPasswordPolicyCommand).de(de_GetAccountPasswordPolicyCommand).build() {\n static {\n __name(this, \"GetAccountPasswordPolicyCommand\");\n }\n};\n\n// src/commands/GetAccountSummaryCommand.ts\n\n\n\nvar GetAccountSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccountSummary\", {}).n(\"IAMClient\", \"GetAccountSummaryCommand\").f(void 0, void 0).ser(se_GetAccountSummaryCommand).de(de_GetAccountSummaryCommand).build() {\n static {\n __name(this, \"GetAccountSummaryCommand\");\n }\n};\n\n// src/commands/GetContextKeysForCustomPolicyCommand.ts\n\n\n\nvar GetContextKeysForCustomPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetContextKeysForCustomPolicy\", {}).n(\"IAMClient\", \"GetContextKeysForCustomPolicyCommand\").f(void 0, void 0).ser(se_GetContextKeysForCustomPolicyCommand).de(de_GetContextKeysForCustomPolicyCommand).build() {\n static {\n __name(this, \"GetContextKeysForCustomPolicyCommand\");\n }\n};\n\n// src/commands/GetContextKeysForPrincipalPolicyCommand.ts\n\n\n\nvar GetContextKeysForPrincipalPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetContextKeysForPrincipalPolicy\", {}).n(\"IAMClient\", \"GetContextKeysForPrincipalPolicyCommand\").f(void 0, void 0).ser(se_GetContextKeysForPrincipalPolicyCommand).de(de_GetContextKeysForPrincipalPolicyCommand).build() {\n static {\n __name(this, \"GetContextKeysForPrincipalPolicyCommand\");\n }\n};\n\n// src/commands/GetCredentialReportCommand.ts\n\n\n\nvar GetCredentialReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetCredentialReport\", {}).n(\"IAMClient\", \"GetCredentialReportCommand\").f(void 0, void 0).ser(se_GetCredentialReportCommand).de(de_GetCredentialReportCommand).build() {\n static {\n __name(this, \"GetCredentialReportCommand\");\n }\n};\n\n// src/commands/GetGroupCommand.ts\n\n\n\nvar GetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetGroup\", {}).n(\"IAMClient\", \"GetGroupCommand\").f(void 0, void 0).ser(se_GetGroupCommand).de(de_GetGroupCommand).build() {\n static {\n __name(this, \"GetGroupCommand\");\n }\n};\n\n// src/commands/GetGroupPolicyCommand.ts\n\n\n\nvar GetGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetGroupPolicy\", {}).n(\"IAMClient\", \"GetGroupPolicyCommand\").f(void 0, void 0).ser(se_GetGroupPolicyCommand).de(de_GetGroupPolicyCommand).build() {\n static {\n __name(this, \"GetGroupPolicyCommand\");\n }\n};\n\n// src/commands/GetInstanceProfileCommand.ts\n\n\n\nvar GetInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetInstanceProfile\", {}).n(\"IAMClient\", \"GetInstanceProfileCommand\").f(void 0, void 0).ser(se_GetInstanceProfileCommand).de(de_GetInstanceProfileCommand).build() {\n static {\n __name(this, \"GetInstanceProfileCommand\");\n }\n};\n\n// src/commands/GetLoginProfileCommand.ts\n\n\n\nvar GetLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetLoginProfile\", {}).n(\"IAMClient\", \"GetLoginProfileCommand\").f(void 0, void 0).ser(se_GetLoginProfileCommand).de(de_GetLoginProfileCommand).build() {\n static {\n __name(this, \"GetLoginProfileCommand\");\n }\n};\n\n// src/commands/GetMFADeviceCommand.ts\n\n\n\nvar GetMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetMFADevice\", {}).n(\"IAMClient\", \"GetMFADeviceCommand\").f(void 0, void 0).ser(se_GetMFADeviceCommand).de(de_GetMFADeviceCommand).build() {\n static {\n __name(this, \"GetMFADeviceCommand\");\n }\n};\n\n// src/commands/GetOpenIDConnectProviderCommand.ts\n\n\n\nvar GetOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetOpenIDConnectProvider\", {}).n(\"IAMClient\", \"GetOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_GetOpenIDConnectProviderCommand).de(de_GetOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"GetOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/GetOrganizationsAccessReportCommand.ts\n\n\n\nvar GetOrganizationsAccessReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetOrganizationsAccessReport\", {}).n(\"IAMClient\", \"GetOrganizationsAccessReportCommand\").f(void 0, void 0).ser(se_GetOrganizationsAccessReportCommand).de(de_GetOrganizationsAccessReportCommand).build() {\n static {\n __name(this, \"GetOrganizationsAccessReportCommand\");\n }\n};\n\n// src/commands/GetPolicyCommand.ts\n\n\n\nvar GetPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetPolicy\", {}).n(\"IAMClient\", \"GetPolicyCommand\").f(void 0, void 0).ser(se_GetPolicyCommand).de(de_GetPolicyCommand).build() {\n static {\n __name(this, \"GetPolicyCommand\");\n }\n};\n\n// src/commands/GetPolicyVersionCommand.ts\n\n\n\nvar GetPolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetPolicyVersion\", {}).n(\"IAMClient\", \"GetPolicyVersionCommand\").f(void 0, void 0).ser(se_GetPolicyVersionCommand).de(de_GetPolicyVersionCommand).build() {\n static {\n __name(this, \"GetPolicyVersionCommand\");\n }\n};\n\n// src/commands/GetRoleCommand.ts\n\n\n\nvar GetRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetRole\", {}).n(\"IAMClient\", \"GetRoleCommand\").f(void 0, void 0).ser(se_GetRoleCommand).de(de_GetRoleCommand).build() {\n static {\n __name(this, \"GetRoleCommand\");\n }\n};\n\n// src/commands/GetRolePolicyCommand.ts\n\n\n\nvar GetRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetRolePolicy\", {}).n(\"IAMClient\", \"GetRolePolicyCommand\").f(void 0, void 0).ser(se_GetRolePolicyCommand).de(de_GetRolePolicyCommand).build() {\n static {\n __name(this, \"GetRolePolicyCommand\");\n }\n};\n\n// src/commands/GetSAMLProviderCommand.ts\n\n\n\nvar GetSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetSAMLProvider\", {}).n(\"IAMClient\", \"GetSAMLProviderCommand\").f(void 0, void 0).ser(se_GetSAMLProviderCommand).de(de_GetSAMLProviderCommand).build() {\n static {\n __name(this, \"GetSAMLProviderCommand\");\n }\n};\n\n// src/commands/GetServerCertificateCommand.ts\n\n\n\nvar GetServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServerCertificate\", {}).n(\"IAMClient\", \"GetServerCertificateCommand\").f(void 0, void 0).ser(se_GetServerCertificateCommand).de(de_GetServerCertificateCommand).build() {\n static {\n __name(this, \"GetServerCertificateCommand\");\n }\n};\n\n// src/commands/GetServiceLastAccessedDetailsCommand.ts\n\n\n\nvar GetServiceLastAccessedDetailsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServiceLastAccessedDetails\", {}).n(\"IAMClient\", \"GetServiceLastAccessedDetailsCommand\").f(void 0, void 0).ser(se_GetServiceLastAccessedDetailsCommand).de(de_GetServiceLastAccessedDetailsCommand).build() {\n static {\n __name(this, \"GetServiceLastAccessedDetailsCommand\");\n }\n};\n\n// src/commands/GetServiceLastAccessedDetailsWithEntitiesCommand.ts\n\n\n\nvar GetServiceLastAccessedDetailsWithEntitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServiceLastAccessedDetailsWithEntities\", {}).n(\"IAMClient\", \"GetServiceLastAccessedDetailsWithEntitiesCommand\").f(void 0, void 0).ser(se_GetServiceLastAccessedDetailsWithEntitiesCommand).de(de_GetServiceLastAccessedDetailsWithEntitiesCommand).build() {\n static {\n __name(this, \"GetServiceLastAccessedDetailsWithEntitiesCommand\");\n }\n};\n\n// src/commands/GetServiceLinkedRoleDeletionStatusCommand.ts\n\n\n\nvar GetServiceLinkedRoleDeletionStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServiceLinkedRoleDeletionStatus\", {}).n(\"IAMClient\", \"GetServiceLinkedRoleDeletionStatusCommand\").f(void 0, void 0).ser(se_GetServiceLinkedRoleDeletionStatusCommand).de(de_GetServiceLinkedRoleDeletionStatusCommand).build() {\n static {\n __name(this, \"GetServiceLinkedRoleDeletionStatusCommand\");\n }\n};\n\n// src/commands/GetSSHPublicKeyCommand.ts\n\n\n\nvar GetSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetSSHPublicKey\", {}).n(\"IAMClient\", \"GetSSHPublicKeyCommand\").f(void 0, void 0).ser(se_GetSSHPublicKeyCommand).de(de_GetSSHPublicKeyCommand).build() {\n static {\n __name(this, \"GetSSHPublicKeyCommand\");\n }\n};\n\n// src/commands/GetUserCommand.ts\n\n\n\nvar GetUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetUser\", {}).n(\"IAMClient\", \"GetUserCommand\").f(void 0, void 0).ser(se_GetUserCommand).de(de_GetUserCommand).build() {\n static {\n __name(this, \"GetUserCommand\");\n }\n};\n\n// src/commands/GetUserPolicyCommand.ts\n\n\n\nvar GetUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetUserPolicy\", {}).n(\"IAMClient\", \"GetUserPolicyCommand\").f(void 0, void 0).ser(se_GetUserPolicyCommand).de(de_GetUserPolicyCommand).build() {\n static {\n __name(this, \"GetUserPolicyCommand\");\n }\n};\n\n// src/commands/ListAccessKeysCommand.ts\n\n\n\nvar ListAccessKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAccessKeys\", {}).n(\"IAMClient\", \"ListAccessKeysCommand\").f(void 0, void 0).ser(se_ListAccessKeysCommand).de(de_ListAccessKeysCommand).build() {\n static {\n __name(this, \"ListAccessKeysCommand\");\n }\n};\n\n// src/commands/ListAccountAliasesCommand.ts\n\n\n\nvar ListAccountAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAccountAliases\", {}).n(\"IAMClient\", \"ListAccountAliasesCommand\").f(void 0, void 0).ser(se_ListAccountAliasesCommand).de(de_ListAccountAliasesCommand).build() {\n static {\n __name(this, \"ListAccountAliasesCommand\");\n }\n};\n\n// src/commands/ListAttachedGroupPoliciesCommand.ts\n\n\n\nvar ListAttachedGroupPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAttachedGroupPolicies\", {}).n(\"IAMClient\", \"ListAttachedGroupPoliciesCommand\").f(void 0, void 0).ser(se_ListAttachedGroupPoliciesCommand).de(de_ListAttachedGroupPoliciesCommand).build() {\n static {\n __name(this, \"ListAttachedGroupPoliciesCommand\");\n }\n};\n\n// src/commands/ListAttachedRolePoliciesCommand.ts\n\n\n\nvar ListAttachedRolePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAttachedRolePolicies\", {}).n(\"IAMClient\", \"ListAttachedRolePoliciesCommand\").f(void 0, void 0).ser(se_ListAttachedRolePoliciesCommand).de(de_ListAttachedRolePoliciesCommand).build() {\n static {\n __name(this, \"ListAttachedRolePoliciesCommand\");\n }\n};\n\n// src/commands/ListAttachedUserPoliciesCommand.ts\n\n\n\nvar ListAttachedUserPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAttachedUserPolicies\", {}).n(\"IAMClient\", \"ListAttachedUserPoliciesCommand\").f(void 0, void 0).ser(se_ListAttachedUserPoliciesCommand).de(de_ListAttachedUserPoliciesCommand).build() {\n static {\n __name(this, \"ListAttachedUserPoliciesCommand\");\n }\n};\n\n// src/commands/ListEntitiesForPolicyCommand.ts\n\n\n\nvar ListEntitiesForPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListEntitiesForPolicy\", {}).n(\"IAMClient\", \"ListEntitiesForPolicyCommand\").f(void 0, void 0).ser(se_ListEntitiesForPolicyCommand).de(de_ListEntitiesForPolicyCommand).build() {\n static {\n __name(this, \"ListEntitiesForPolicyCommand\");\n }\n};\n\n// src/commands/ListGroupPoliciesCommand.ts\n\n\n\nvar ListGroupPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListGroupPolicies\", {}).n(\"IAMClient\", \"ListGroupPoliciesCommand\").f(void 0, void 0).ser(se_ListGroupPoliciesCommand).de(de_ListGroupPoliciesCommand).build() {\n static {\n __name(this, \"ListGroupPoliciesCommand\");\n }\n};\n\n// src/commands/ListGroupsCommand.ts\n\n\n\nvar ListGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListGroups\", {}).n(\"IAMClient\", \"ListGroupsCommand\").f(void 0, void 0).ser(se_ListGroupsCommand).de(de_ListGroupsCommand).build() {\n static {\n __name(this, \"ListGroupsCommand\");\n }\n};\n\n// src/commands/ListGroupsForUserCommand.ts\n\n\n\nvar ListGroupsForUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListGroupsForUser\", {}).n(\"IAMClient\", \"ListGroupsForUserCommand\").f(void 0, void 0).ser(se_ListGroupsForUserCommand).de(de_ListGroupsForUserCommand).build() {\n static {\n __name(this, \"ListGroupsForUserCommand\");\n }\n};\n\n// src/commands/ListInstanceProfilesCommand.ts\n\n\n\nvar ListInstanceProfilesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListInstanceProfiles\", {}).n(\"IAMClient\", \"ListInstanceProfilesCommand\").f(void 0, void 0).ser(se_ListInstanceProfilesCommand).de(de_ListInstanceProfilesCommand).build() {\n static {\n __name(this, \"ListInstanceProfilesCommand\");\n }\n};\n\n// src/commands/ListInstanceProfilesForRoleCommand.ts\n\n\n\nvar ListInstanceProfilesForRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListInstanceProfilesForRole\", {}).n(\"IAMClient\", \"ListInstanceProfilesForRoleCommand\").f(void 0, void 0).ser(se_ListInstanceProfilesForRoleCommand).de(de_ListInstanceProfilesForRoleCommand).build() {\n static {\n __name(this, \"ListInstanceProfilesForRoleCommand\");\n }\n};\n\n// src/commands/ListInstanceProfileTagsCommand.ts\n\n\n\nvar ListInstanceProfileTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListInstanceProfileTags\", {}).n(\"IAMClient\", \"ListInstanceProfileTagsCommand\").f(void 0, void 0).ser(se_ListInstanceProfileTagsCommand).de(de_ListInstanceProfileTagsCommand).build() {\n static {\n __name(this, \"ListInstanceProfileTagsCommand\");\n }\n};\n\n// src/commands/ListMFADevicesCommand.ts\n\n\n\nvar ListMFADevicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListMFADevices\", {}).n(\"IAMClient\", \"ListMFADevicesCommand\").f(void 0, void 0).ser(se_ListMFADevicesCommand).de(de_ListMFADevicesCommand).build() {\n static {\n __name(this, \"ListMFADevicesCommand\");\n }\n};\n\n// src/commands/ListMFADeviceTagsCommand.ts\n\n\n\nvar ListMFADeviceTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListMFADeviceTags\", {}).n(\"IAMClient\", \"ListMFADeviceTagsCommand\").f(void 0, void 0).ser(se_ListMFADeviceTagsCommand).de(de_ListMFADeviceTagsCommand).build() {\n static {\n __name(this, \"ListMFADeviceTagsCommand\");\n }\n};\n\n// src/commands/ListOpenIDConnectProvidersCommand.ts\n\n\n\nvar ListOpenIDConnectProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListOpenIDConnectProviders\", {}).n(\"IAMClient\", \"ListOpenIDConnectProvidersCommand\").f(void 0, void 0).ser(se_ListOpenIDConnectProvidersCommand).de(de_ListOpenIDConnectProvidersCommand).build() {\n static {\n __name(this, \"ListOpenIDConnectProvidersCommand\");\n }\n};\n\n// src/commands/ListOpenIDConnectProviderTagsCommand.ts\n\n\n\nvar ListOpenIDConnectProviderTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListOpenIDConnectProviderTags\", {}).n(\"IAMClient\", \"ListOpenIDConnectProviderTagsCommand\").f(void 0, void 0).ser(se_ListOpenIDConnectProviderTagsCommand).de(de_ListOpenIDConnectProviderTagsCommand).build() {\n static {\n __name(this, \"ListOpenIDConnectProviderTagsCommand\");\n }\n};\n\n// src/commands/ListOrganizationsFeaturesCommand.ts\n\n\n\nvar ListOrganizationsFeaturesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListOrganizationsFeatures\", {}).n(\"IAMClient\", \"ListOrganizationsFeaturesCommand\").f(void 0, void 0).ser(se_ListOrganizationsFeaturesCommand).de(de_ListOrganizationsFeaturesCommand).build() {\n static {\n __name(this, \"ListOrganizationsFeaturesCommand\");\n }\n};\n\n// src/commands/ListPoliciesCommand.ts\n\n\n\nvar ListPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPolicies\", {}).n(\"IAMClient\", \"ListPoliciesCommand\").f(void 0, void 0).ser(se_ListPoliciesCommand).de(de_ListPoliciesCommand).build() {\n static {\n __name(this, \"ListPoliciesCommand\");\n }\n};\n\n// src/commands/ListPoliciesGrantingServiceAccessCommand.ts\n\n\n\nvar ListPoliciesGrantingServiceAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPoliciesGrantingServiceAccess\", {}).n(\"IAMClient\", \"ListPoliciesGrantingServiceAccessCommand\").f(void 0, void 0).ser(se_ListPoliciesGrantingServiceAccessCommand).de(de_ListPoliciesGrantingServiceAccessCommand).build() {\n static {\n __name(this, \"ListPoliciesGrantingServiceAccessCommand\");\n }\n};\n\n// src/commands/ListPolicyTagsCommand.ts\n\n\n\nvar ListPolicyTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPolicyTags\", {}).n(\"IAMClient\", \"ListPolicyTagsCommand\").f(void 0, void 0).ser(se_ListPolicyTagsCommand).de(de_ListPolicyTagsCommand).build() {\n static {\n __name(this, \"ListPolicyTagsCommand\");\n }\n};\n\n// src/commands/ListPolicyVersionsCommand.ts\n\n\n\nvar ListPolicyVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPolicyVersions\", {}).n(\"IAMClient\", \"ListPolicyVersionsCommand\").f(void 0, void 0).ser(se_ListPolicyVersionsCommand).de(de_ListPolicyVersionsCommand).build() {\n static {\n __name(this, \"ListPolicyVersionsCommand\");\n }\n};\n\n// src/commands/ListRolePoliciesCommand.ts\n\n\n\nvar ListRolePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListRolePolicies\", {}).n(\"IAMClient\", \"ListRolePoliciesCommand\").f(void 0, void 0).ser(se_ListRolePoliciesCommand).de(de_ListRolePoliciesCommand).build() {\n static {\n __name(this, \"ListRolePoliciesCommand\");\n }\n};\n\n// src/commands/ListRolesCommand.ts\n\n\n\nvar ListRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListRoles\", {}).n(\"IAMClient\", \"ListRolesCommand\").f(void 0, void 0).ser(se_ListRolesCommand).de(de_ListRolesCommand).build() {\n static {\n __name(this, \"ListRolesCommand\");\n }\n};\n\n// src/commands/ListRoleTagsCommand.ts\n\n\n\nvar ListRoleTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListRoleTags\", {}).n(\"IAMClient\", \"ListRoleTagsCommand\").f(void 0, void 0).ser(se_ListRoleTagsCommand).de(de_ListRoleTagsCommand).build() {\n static {\n __name(this, \"ListRoleTagsCommand\");\n }\n};\n\n// src/commands/ListSAMLProvidersCommand.ts\n\n\n\nvar ListSAMLProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSAMLProviders\", {}).n(\"IAMClient\", \"ListSAMLProvidersCommand\").f(void 0, void 0).ser(se_ListSAMLProvidersCommand).de(de_ListSAMLProvidersCommand).build() {\n static {\n __name(this, \"ListSAMLProvidersCommand\");\n }\n};\n\n// src/commands/ListSAMLProviderTagsCommand.ts\n\n\n\nvar ListSAMLProviderTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSAMLProviderTags\", {}).n(\"IAMClient\", \"ListSAMLProviderTagsCommand\").f(void 0, void 0).ser(se_ListSAMLProviderTagsCommand).de(de_ListSAMLProviderTagsCommand).build() {\n static {\n __name(this, \"ListSAMLProviderTagsCommand\");\n }\n};\n\n// src/commands/ListServerCertificatesCommand.ts\n\n\n\nvar ListServerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListServerCertificates\", {}).n(\"IAMClient\", \"ListServerCertificatesCommand\").f(void 0, void 0).ser(se_ListServerCertificatesCommand).de(de_ListServerCertificatesCommand).build() {\n static {\n __name(this, \"ListServerCertificatesCommand\");\n }\n};\n\n// src/commands/ListServerCertificateTagsCommand.ts\n\n\n\nvar ListServerCertificateTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListServerCertificateTags\", {}).n(\"IAMClient\", \"ListServerCertificateTagsCommand\").f(void 0, void 0).ser(se_ListServerCertificateTagsCommand).de(de_ListServerCertificateTagsCommand).build() {\n static {\n __name(this, \"ListServerCertificateTagsCommand\");\n }\n};\n\n// src/commands/ListServiceSpecificCredentialsCommand.ts\n\n\n\nvar ListServiceSpecificCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListServiceSpecificCredentials\", {}).n(\"IAMClient\", \"ListServiceSpecificCredentialsCommand\").f(void 0, void 0).ser(se_ListServiceSpecificCredentialsCommand).de(de_ListServiceSpecificCredentialsCommand).build() {\n static {\n __name(this, \"ListServiceSpecificCredentialsCommand\");\n }\n};\n\n// src/commands/ListSigningCertificatesCommand.ts\n\n\n\nvar ListSigningCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSigningCertificates\", {}).n(\"IAMClient\", \"ListSigningCertificatesCommand\").f(void 0, void 0).ser(se_ListSigningCertificatesCommand).de(de_ListSigningCertificatesCommand).build() {\n static {\n __name(this, \"ListSigningCertificatesCommand\");\n }\n};\n\n// src/commands/ListSSHPublicKeysCommand.ts\n\n\n\nvar ListSSHPublicKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSSHPublicKeys\", {}).n(\"IAMClient\", \"ListSSHPublicKeysCommand\").f(void 0, void 0).ser(se_ListSSHPublicKeysCommand).de(de_ListSSHPublicKeysCommand).build() {\n static {\n __name(this, \"ListSSHPublicKeysCommand\");\n }\n};\n\n// src/commands/ListUserPoliciesCommand.ts\n\n\n\nvar ListUserPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListUserPolicies\", {}).n(\"IAMClient\", \"ListUserPoliciesCommand\").f(void 0, void 0).ser(se_ListUserPoliciesCommand).de(de_ListUserPoliciesCommand).build() {\n static {\n __name(this, \"ListUserPoliciesCommand\");\n }\n};\n\n// src/commands/ListUsersCommand.ts\n\n\n\nvar ListUsersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListUsers\", {}).n(\"IAMClient\", \"ListUsersCommand\").f(void 0, void 0).ser(se_ListUsersCommand).de(de_ListUsersCommand).build() {\n static {\n __name(this, \"ListUsersCommand\");\n }\n};\n\n// src/commands/ListUserTagsCommand.ts\n\n\n\nvar ListUserTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListUserTags\", {}).n(\"IAMClient\", \"ListUserTagsCommand\").f(void 0, void 0).ser(se_ListUserTagsCommand).de(de_ListUserTagsCommand).build() {\n static {\n __name(this, \"ListUserTagsCommand\");\n }\n};\n\n// src/commands/ListVirtualMFADevicesCommand.ts\n\n\n\nvar ListVirtualMFADevicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListVirtualMFADevices\", {}).n(\"IAMClient\", \"ListVirtualMFADevicesCommand\").f(void 0, ListVirtualMFADevicesResponseFilterSensitiveLog).ser(se_ListVirtualMFADevicesCommand).de(de_ListVirtualMFADevicesCommand).build() {\n static {\n __name(this, \"ListVirtualMFADevicesCommand\");\n }\n};\n\n// src/commands/PutGroupPolicyCommand.ts\n\n\n\nvar PutGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutGroupPolicy\", {}).n(\"IAMClient\", \"PutGroupPolicyCommand\").f(void 0, void 0).ser(se_PutGroupPolicyCommand).de(de_PutGroupPolicyCommand).build() {\n static {\n __name(this, \"PutGroupPolicyCommand\");\n }\n};\n\n// src/commands/PutRolePermissionsBoundaryCommand.ts\n\n\n\nvar PutRolePermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutRolePermissionsBoundary\", {}).n(\"IAMClient\", \"PutRolePermissionsBoundaryCommand\").f(void 0, void 0).ser(se_PutRolePermissionsBoundaryCommand).de(de_PutRolePermissionsBoundaryCommand).build() {\n static {\n __name(this, \"PutRolePermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/PutRolePolicyCommand.ts\n\n\n\nvar PutRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutRolePolicy\", {}).n(\"IAMClient\", \"PutRolePolicyCommand\").f(void 0, void 0).ser(se_PutRolePolicyCommand).de(de_PutRolePolicyCommand).build() {\n static {\n __name(this, \"PutRolePolicyCommand\");\n }\n};\n\n// src/commands/PutUserPermissionsBoundaryCommand.ts\n\n\n\nvar PutUserPermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutUserPermissionsBoundary\", {}).n(\"IAMClient\", \"PutUserPermissionsBoundaryCommand\").f(void 0, void 0).ser(se_PutUserPermissionsBoundaryCommand).de(de_PutUserPermissionsBoundaryCommand).build() {\n static {\n __name(this, \"PutUserPermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/PutUserPolicyCommand.ts\n\n\n\nvar PutUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutUserPolicy\", {}).n(\"IAMClient\", \"PutUserPolicyCommand\").f(void 0, void 0).ser(se_PutUserPolicyCommand).de(de_PutUserPolicyCommand).build() {\n static {\n __name(this, \"PutUserPolicyCommand\");\n }\n};\n\n// src/commands/RemoveClientIDFromOpenIDConnectProviderCommand.ts\n\n\n\nvar RemoveClientIDFromOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"RemoveClientIDFromOpenIDConnectProvider\", {}).n(\"IAMClient\", \"RemoveClientIDFromOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_RemoveClientIDFromOpenIDConnectProviderCommand).de(de_RemoveClientIDFromOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"RemoveClientIDFromOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/RemoveRoleFromInstanceProfileCommand.ts\n\n\n\nvar RemoveRoleFromInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"RemoveRoleFromInstanceProfile\", {}).n(\"IAMClient\", \"RemoveRoleFromInstanceProfileCommand\").f(void 0, void 0).ser(se_RemoveRoleFromInstanceProfileCommand).de(de_RemoveRoleFromInstanceProfileCommand).build() {\n static {\n __name(this, \"RemoveRoleFromInstanceProfileCommand\");\n }\n};\n\n// src/commands/RemoveUserFromGroupCommand.ts\n\n\n\nvar RemoveUserFromGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"RemoveUserFromGroup\", {}).n(\"IAMClient\", \"RemoveUserFromGroupCommand\").f(void 0, void 0).ser(se_RemoveUserFromGroupCommand).de(de_RemoveUserFromGroupCommand).build() {\n static {\n __name(this, \"RemoveUserFromGroupCommand\");\n }\n};\n\n// src/commands/ResetServiceSpecificCredentialCommand.ts\n\n\n\nvar ResetServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ResetServiceSpecificCredential\", {}).n(\"IAMClient\", \"ResetServiceSpecificCredentialCommand\").f(void 0, ResetServiceSpecificCredentialResponseFilterSensitiveLog).ser(se_ResetServiceSpecificCredentialCommand).de(de_ResetServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"ResetServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/ResyncMFADeviceCommand.ts\n\n\n\nvar ResyncMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ResyncMFADevice\", {}).n(\"IAMClient\", \"ResyncMFADeviceCommand\").f(void 0, void 0).ser(se_ResyncMFADeviceCommand).de(de_ResyncMFADeviceCommand).build() {\n static {\n __name(this, \"ResyncMFADeviceCommand\");\n }\n};\n\n// src/commands/SetDefaultPolicyVersionCommand.ts\n\n\n\nvar SetDefaultPolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SetDefaultPolicyVersion\", {}).n(\"IAMClient\", \"SetDefaultPolicyVersionCommand\").f(void 0, void 0).ser(se_SetDefaultPolicyVersionCommand).de(de_SetDefaultPolicyVersionCommand).build() {\n static {\n __name(this, \"SetDefaultPolicyVersionCommand\");\n }\n};\n\n// src/commands/SetSecurityTokenServicePreferencesCommand.ts\n\n\n\nvar SetSecurityTokenServicePreferencesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SetSecurityTokenServicePreferences\", {}).n(\"IAMClient\", \"SetSecurityTokenServicePreferencesCommand\").f(void 0, void 0).ser(se_SetSecurityTokenServicePreferencesCommand).de(de_SetSecurityTokenServicePreferencesCommand).build() {\n static {\n __name(this, \"SetSecurityTokenServicePreferencesCommand\");\n }\n};\n\n// src/commands/SimulateCustomPolicyCommand.ts\n\n\n\nvar SimulateCustomPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SimulateCustomPolicy\", {}).n(\"IAMClient\", \"SimulateCustomPolicyCommand\").f(void 0, void 0).ser(se_SimulateCustomPolicyCommand).de(de_SimulateCustomPolicyCommand).build() {\n static {\n __name(this, \"SimulateCustomPolicyCommand\");\n }\n};\n\n// src/commands/SimulatePrincipalPolicyCommand.ts\n\n\n\nvar SimulatePrincipalPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SimulatePrincipalPolicy\", {}).n(\"IAMClient\", \"SimulatePrincipalPolicyCommand\").f(void 0, void 0).ser(se_SimulatePrincipalPolicyCommand).de(de_SimulatePrincipalPolicyCommand).build() {\n static {\n __name(this, \"SimulatePrincipalPolicyCommand\");\n }\n};\n\n// src/commands/TagInstanceProfileCommand.ts\n\n\n\nvar TagInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagInstanceProfile\", {}).n(\"IAMClient\", \"TagInstanceProfileCommand\").f(void 0, void 0).ser(se_TagInstanceProfileCommand).de(de_TagInstanceProfileCommand).build() {\n static {\n __name(this, \"TagInstanceProfileCommand\");\n }\n};\n\n// src/commands/TagMFADeviceCommand.ts\n\n\n\nvar TagMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagMFADevice\", {}).n(\"IAMClient\", \"TagMFADeviceCommand\").f(void 0, void 0).ser(se_TagMFADeviceCommand).de(de_TagMFADeviceCommand).build() {\n static {\n __name(this, \"TagMFADeviceCommand\");\n }\n};\n\n// src/commands/TagOpenIDConnectProviderCommand.ts\n\n\n\nvar TagOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagOpenIDConnectProvider\", {}).n(\"IAMClient\", \"TagOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_TagOpenIDConnectProviderCommand).de(de_TagOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"TagOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/TagPolicyCommand.ts\n\n\n\nvar TagPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagPolicy\", {}).n(\"IAMClient\", \"TagPolicyCommand\").f(void 0, void 0).ser(se_TagPolicyCommand).de(de_TagPolicyCommand).build() {\n static {\n __name(this, \"TagPolicyCommand\");\n }\n};\n\n// src/commands/TagRoleCommand.ts\n\n\n\nvar TagRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagRole\", {}).n(\"IAMClient\", \"TagRoleCommand\").f(void 0, void 0).ser(se_TagRoleCommand).de(de_TagRoleCommand).build() {\n static {\n __name(this, \"TagRoleCommand\");\n }\n};\n\n// src/commands/TagSAMLProviderCommand.ts\n\n\n\nvar TagSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagSAMLProvider\", {}).n(\"IAMClient\", \"TagSAMLProviderCommand\").f(void 0, void 0).ser(se_TagSAMLProviderCommand).de(de_TagSAMLProviderCommand).build() {\n static {\n __name(this, \"TagSAMLProviderCommand\");\n }\n};\n\n// src/commands/TagServerCertificateCommand.ts\n\n\n\nvar TagServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagServerCertificate\", {}).n(\"IAMClient\", \"TagServerCertificateCommand\").f(void 0, void 0).ser(se_TagServerCertificateCommand).de(de_TagServerCertificateCommand).build() {\n static {\n __name(this, \"TagServerCertificateCommand\");\n }\n};\n\n// src/commands/TagUserCommand.ts\n\n\n\nvar TagUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagUser\", {}).n(\"IAMClient\", \"TagUserCommand\").f(void 0, void 0).ser(se_TagUserCommand).de(de_TagUserCommand).build() {\n static {\n __name(this, \"TagUserCommand\");\n }\n};\n\n// src/commands/UntagInstanceProfileCommand.ts\n\n\n\nvar UntagInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagInstanceProfile\", {}).n(\"IAMClient\", \"UntagInstanceProfileCommand\").f(void 0, void 0).ser(se_UntagInstanceProfileCommand).de(de_UntagInstanceProfileCommand).build() {\n static {\n __name(this, \"UntagInstanceProfileCommand\");\n }\n};\n\n// src/commands/UntagMFADeviceCommand.ts\n\n\n\nvar UntagMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagMFADevice\", {}).n(\"IAMClient\", \"UntagMFADeviceCommand\").f(void 0, void 0).ser(se_UntagMFADeviceCommand).de(de_UntagMFADeviceCommand).build() {\n static {\n __name(this, \"UntagMFADeviceCommand\");\n }\n};\n\n// src/commands/UntagOpenIDConnectProviderCommand.ts\n\n\n\nvar UntagOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagOpenIDConnectProvider\", {}).n(\"IAMClient\", \"UntagOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_UntagOpenIDConnectProviderCommand).de(de_UntagOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"UntagOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/UntagPolicyCommand.ts\n\n\n\nvar UntagPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagPolicy\", {}).n(\"IAMClient\", \"UntagPolicyCommand\").f(void 0, void 0).ser(se_UntagPolicyCommand).de(de_UntagPolicyCommand).build() {\n static {\n __name(this, \"UntagPolicyCommand\");\n }\n};\n\n// src/commands/UntagRoleCommand.ts\n\n\n\nvar UntagRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagRole\", {}).n(\"IAMClient\", \"UntagRoleCommand\").f(void 0, void 0).ser(se_UntagRoleCommand).de(de_UntagRoleCommand).build() {\n static {\n __name(this, \"UntagRoleCommand\");\n }\n};\n\n// src/commands/UntagSAMLProviderCommand.ts\n\n\n\nvar UntagSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagSAMLProvider\", {}).n(\"IAMClient\", \"UntagSAMLProviderCommand\").f(void 0, void 0).ser(se_UntagSAMLProviderCommand).de(de_UntagSAMLProviderCommand).build() {\n static {\n __name(this, \"UntagSAMLProviderCommand\");\n }\n};\n\n// src/commands/UntagServerCertificateCommand.ts\n\n\n\nvar UntagServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagServerCertificate\", {}).n(\"IAMClient\", \"UntagServerCertificateCommand\").f(void 0, void 0).ser(se_UntagServerCertificateCommand).de(de_UntagServerCertificateCommand).build() {\n static {\n __name(this, \"UntagServerCertificateCommand\");\n }\n};\n\n// src/commands/UntagUserCommand.ts\n\n\n\nvar UntagUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagUser\", {}).n(\"IAMClient\", \"UntagUserCommand\").f(void 0, void 0).ser(se_UntagUserCommand).de(de_UntagUserCommand).build() {\n static {\n __name(this, \"UntagUserCommand\");\n }\n};\n\n// src/commands/UpdateAccessKeyCommand.ts\n\n\n\nvar UpdateAccessKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateAccessKey\", {}).n(\"IAMClient\", \"UpdateAccessKeyCommand\").f(void 0, void 0).ser(se_UpdateAccessKeyCommand).de(de_UpdateAccessKeyCommand).build() {\n static {\n __name(this, \"UpdateAccessKeyCommand\");\n }\n};\n\n// src/commands/UpdateAccountPasswordPolicyCommand.ts\n\n\n\nvar UpdateAccountPasswordPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateAccountPasswordPolicy\", {}).n(\"IAMClient\", \"UpdateAccountPasswordPolicyCommand\").f(void 0, void 0).ser(se_UpdateAccountPasswordPolicyCommand).de(de_UpdateAccountPasswordPolicyCommand).build() {\n static {\n __name(this, \"UpdateAccountPasswordPolicyCommand\");\n }\n};\n\n// src/commands/UpdateAssumeRolePolicyCommand.ts\n\n\n\nvar UpdateAssumeRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateAssumeRolePolicy\", {}).n(\"IAMClient\", \"UpdateAssumeRolePolicyCommand\").f(void 0, void 0).ser(se_UpdateAssumeRolePolicyCommand).de(de_UpdateAssumeRolePolicyCommand).build() {\n static {\n __name(this, \"UpdateAssumeRolePolicyCommand\");\n }\n};\n\n// src/commands/UpdateGroupCommand.ts\n\n\n\nvar UpdateGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateGroup\", {}).n(\"IAMClient\", \"UpdateGroupCommand\").f(void 0, void 0).ser(se_UpdateGroupCommand).de(de_UpdateGroupCommand).build() {\n static {\n __name(this, \"UpdateGroupCommand\");\n }\n};\n\n// src/commands/UpdateLoginProfileCommand.ts\n\n\n\nvar UpdateLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateLoginProfile\", {}).n(\"IAMClient\", \"UpdateLoginProfileCommand\").f(UpdateLoginProfileRequestFilterSensitiveLog, void 0).ser(se_UpdateLoginProfileCommand).de(de_UpdateLoginProfileCommand).build() {\n static {\n __name(this, \"UpdateLoginProfileCommand\");\n }\n};\n\n// src/commands/UpdateOpenIDConnectProviderThumbprintCommand.ts\n\n\n\nvar UpdateOpenIDConnectProviderThumbprintCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateOpenIDConnectProviderThumbprint\", {}).n(\"IAMClient\", \"UpdateOpenIDConnectProviderThumbprintCommand\").f(void 0, void 0).ser(se_UpdateOpenIDConnectProviderThumbprintCommand).de(de_UpdateOpenIDConnectProviderThumbprintCommand).build() {\n static {\n __name(this, \"UpdateOpenIDConnectProviderThumbprintCommand\");\n }\n};\n\n// src/commands/UpdateRoleCommand.ts\n\n\n\nvar UpdateRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateRole\", {}).n(\"IAMClient\", \"UpdateRoleCommand\").f(void 0, void 0).ser(se_UpdateRoleCommand).de(de_UpdateRoleCommand).build() {\n static {\n __name(this, \"UpdateRoleCommand\");\n }\n};\n\n// src/commands/UpdateRoleDescriptionCommand.ts\n\n\n\nvar UpdateRoleDescriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateRoleDescription\", {}).n(\"IAMClient\", \"UpdateRoleDescriptionCommand\").f(void 0, void 0).ser(se_UpdateRoleDescriptionCommand).de(de_UpdateRoleDescriptionCommand).build() {\n static {\n __name(this, \"UpdateRoleDescriptionCommand\");\n }\n};\n\n// src/commands/UpdateSAMLProviderCommand.ts\n\n\n\nvar UpdateSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateSAMLProvider\", {}).n(\"IAMClient\", \"UpdateSAMLProviderCommand\").f(UpdateSAMLProviderRequestFilterSensitiveLog, void 0).ser(se_UpdateSAMLProviderCommand).de(de_UpdateSAMLProviderCommand).build() {\n static {\n __name(this, \"UpdateSAMLProviderCommand\");\n }\n};\n\n// src/commands/UpdateServerCertificateCommand.ts\n\n\n\nvar UpdateServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateServerCertificate\", {}).n(\"IAMClient\", \"UpdateServerCertificateCommand\").f(void 0, void 0).ser(se_UpdateServerCertificateCommand).de(de_UpdateServerCertificateCommand).build() {\n static {\n __name(this, \"UpdateServerCertificateCommand\");\n }\n};\n\n// src/commands/UpdateServiceSpecificCredentialCommand.ts\n\n\n\nvar UpdateServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateServiceSpecificCredential\", {}).n(\"IAMClient\", \"UpdateServiceSpecificCredentialCommand\").f(void 0, void 0).ser(se_UpdateServiceSpecificCredentialCommand).de(de_UpdateServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"UpdateServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/UpdateSigningCertificateCommand.ts\n\n\n\nvar UpdateSigningCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateSigningCertificate\", {}).n(\"IAMClient\", \"UpdateSigningCertificateCommand\").f(void 0, void 0).ser(se_UpdateSigningCertificateCommand).de(de_UpdateSigningCertificateCommand).build() {\n static {\n __name(this, \"UpdateSigningCertificateCommand\");\n }\n};\n\n// src/commands/UpdateSSHPublicKeyCommand.ts\n\n\n\nvar UpdateSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateSSHPublicKey\", {}).n(\"IAMClient\", \"UpdateSSHPublicKeyCommand\").f(void 0, void 0).ser(se_UpdateSSHPublicKeyCommand).de(de_UpdateSSHPublicKeyCommand).build() {\n static {\n __name(this, \"UpdateSSHPublicKeyCommand\");\n }\n};\n\n// src/commands/UpdateUserCommand.ts\n\n\n\nvar UpdateUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateUser\", {}).n(\"IAMClient\", \"UpdateUserCommand\").f(void 0, void 0).ser(se_UpdateUserCommand).de(de_UpdateUserCommand).build() {\n static {\n __name(this, \"UpdateUserCommand\");\n }\n};\n\n// src/commands/UploadServerCertificateCommand.ts\n\n\n\nvar UploadServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UploadServerCertificate\", {}).n(\"IAMClient\", \"UploadServerCertificateCommand\").f(UploadServerCertificateRequestFilterSensitiveLog, void 0).ser(se_UploadServerCertificateCommand).de(de_UploadServerCertificateCommand).build() {\n static {\n __name(this, \"UploadServerCertificateCommand\");\n }\n};\n\n// src/commands/UploadSigningCertificateCommand.ts\n\n\n\nvar UploadSigningCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UploadSigningCertificate\", {}).n(\"IAMClient\", \"UploadSigningCertificateCommand\").f(void 0, void 0).ser(se_UploadSigningCertificateCommand).de(de_UploadSigningCertificateCommand).build() {\n static {\n __name(this, \"UploadSigningCertificateCommand\");\n }\n};\n\n// src/commands/UploadSSHPublicKeyCommand.ts\n\n\n\nvar UploadSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UploadSSHPublicKey\", {}).n(\"IAMClient\", \"UploadSSHPublicKeyCommand\").f(void 0, void 0).ser(se_UploadSSHPublicKeyCommand).de(de_UploadSSHPublicKeyCommand).build() {\n static {\n __name(this, \"UploadSSHPublicKeyCommand\");\n }\n};\n\n// src/IAM.ts\nvar commands = {\n AddClientIDToOpenIDConnectProviderCommand,\n AddRoleToInstanceProfileCommand,\n AddUserToGroupCommand,\n AttachGroupPolicyCommand,\n AttachRolePolicyCommand,\n AttachUserPolicyCommand,\n ChangePasswordCommand,\n CreateAccessKeyCommand,\n CreateAccountAliasCommand,\n CreateGroupCommand,\n CreateInstanceProfileCommand,\n CreateLoginProfileCommand,\n CreateOpenIDConnectProviderCommand,\n CreatePolicyCommand,\n CreatePolicyVersionCommand,\n CreateRoleCommand,\n CreateSAMLProviderCommand,\n CreateServiceLinkedRoleCommand,\n CreateServiceSpecificCredentialCommand,\n CreateUserCommand,\n CreateVirtualMFADeviceCommand,\n DeactivateMFADeviceCommand,\n DeleteAccessKeyCommand,\n DeleteAccountAliasCommand,\n DeleteAccountPasswordPolicyCommand,\n DeleteGroupCommand,\n DeleteGroupPolicyCommand,\n DeleteInstanceProfileCommand,\n DeleteLoginProfileCommand,\n DeleteOpenIDConnectProviderCommand,\n DeletePolicyCommand,\n DeletePolicyVersionCommand,\n DeleteRoleCommand,\n DeleteRolePermissionsBoundaryCommand,\n DeleteRolePolicyCommand,\n DeleteSAMLProviderCommand,\n DeleteServerCertificateCommand,\n DeleteServiceLinkedRoleCommand,\n DeleteServiceSpecificCredentialCommand,\n DeleteSigningCertificateCommand,\n DeleteSSHPublicKeyCommand,\n DeleteUserCommand,\n DeleteUserPermissionsBoundaryCommand,\n DeleteUserPolicyCommand,\n DeleteVirtualMFADeviceCommand,\n DetachGroupPolicyCommand,\n DetachRolePolicyCommand,\n DetachUserPolicyCommand,\n DisableOrganizationsRootCredentialsManagementCommand,\n DisableOrganizationsRootSessionsCommand,\n EnableMFADeviceCommand,\n EnableOrganizationsRootCredentialsManagementCommand,\n EnableOrganizationsRootSessionsCommand,\n GenerateCredentialReportCommand,\n GenerateOrganizationsAccessReportCommand,\n GenerateServiceLastAccessedDetailsCommand,\n GetAccessKeyLastUsedCommand,\n GetAccountAuthorizationDetailsCommand,\n GetAccountPasswordPolicyCommand,\n GetAccountSummaryCommand,\n GetContextKeysForCustomPolicyCommand,\n GetContextKeysForPrincipalPolicyCommand,\n GetCredentialReportCommand,\n GetGroupCommand,\n GetGroupPolicyCommand,\n GetInstanceProfileCommand,\n GetLoginProfileCommand,\n GetMFADeviceCommand,\n GetOpenIDConnectProviderCommand,\n GetOrganizationsAccessReportCommand,\n GetPolicyCommand,\n GetPolicyVersionCommand,\n GetRoleCommand,\n GetRolePolicyCommand,\n GetSAMLProviderCommand,\n GetServerCertificateCommand,\n GetServiceLastAccessedDetailsCommand,\n GetServiceLastAccessedDetailsWithEntitiesCommand,\n GetServiceLinkedRoleDeletionStatusCommand,\n GetSSHPublicKeyCommand,\n GetUserCommand,\n GetUserPolicyCommand,\n ListAccessKeysCommand,\n ListAccountAliasesCommand,\n ListAttachedGroupPoliciesCommand,\n ListAttachedRolePoliciesCommand,\n ListAttachedUserPoliciesCommand,\n ListEntitiesForPolicyCommand,\n ListGroupPoliciesCommand,\n ListGroupsCommand,\n ListGroupsForUserCommand,\n ListInstanceProfilesCommand,\n ListInstanceProfilesForRoleCommand,\n ListInstanceProfileTagsCommand,\n ListMFADevicesCommand,\n ListMFADeviceTagsCommand,\n ListOpenIDConnectProvidersCommand,\n ListOpenIDConnectProviderTagsCommand,\n ListOrganizationsFeaturesCommand,\n ListPoliciesCommand,\n ListPoliciesGrantingServiceAccessCommand,\n ListPolicyTagsCommand,\n ListPolicyVersionsCommand,\n ListRolePoliciesCommand,\n ListRolesCommand,\n ListRoleTagsCommand,\n ListSAMLProvidersCommand,\n ListSAMLProviderTagsCommand,\n ListServerCertificatesCommand,\n ListServerCertificateTagsCommand,\n ListServiceSpecificCredentialsCommand,\n ListSigningCertificatesCommand,\n ListSSHPublicKeysCommand,\n ListUserPoliciesCommand,\n ListUsersCommand,\n ListUserTagsCommand,\n ListVirtualMFADevicesCommand,\n PutGroupPolicyCommand,\n PutRolePermissionsBoundaryCommand,\n PutRolePolicyCommand,\n PutUserPermissionsBoundaryCommand,\n PutUserPolicyCommand,\n RemoveClientIDFromOpenIDConnectProviderCommand,\n RemoveRoleFromInstanceProfileCommand,\n RemoveUserFromGroupCommand,\n ResetServiceSpecificCredentialCommand,\n ResyncMFADeviceCommand,\n SetDefaultPolicyVersionCommand,\n SetSecurityTokenServicePreferencesCommand,\n SimulateCustomPolicyCommand,\n SimulatePrincipalPolicyCommand,\n TagInstanceProfileCommand,\n TagMFADeviceCommand,\n TagOpenIDConnectProviderCommand,\n TagPolicyCommand,\n TagRoleCommand,\n TagSAMLProviderCommand,\n TagServerCertificateCommand,\n TagUserCommand,\n UntagInstanceProfileCommand,\n UntagMFADeviceCommand,\n UntagOpenIDConnectProviderCommand,\n UntagPolicyCommand,\n UntagRoleCommand,\n UntagSAMLProviderCommand,\n UntagServerCertificateCommand,\n UntagUserCommand,\n UpdateAccessKeyCommand,\n UpdateAccountPasswordPolicyCommand,\n UpdateAssumeRolePolicyCommand,\n UpdateGroupCommand,\n UpdateLoginProfileCommand,\n UpdateOpenIDConnectProviderThumbprintCommand,\n UpdateRoleCommand,\n UpdateRoleDescriptionCommand,\n UpdateSAMLProviderCommand,\n UpdateServerCertificateCommand,\n UpdateServiceSpecificCredentialCommand,\n UpdateSigningCertificateCommand,\n UpdateSSHPublicKeyCommand,\n UpdateUserCommand,\n UploadServerCertificateCommand,\n UploadSigningCertificateCommand,\n UploadSSHPublicKeyCommand\n};\nvar IAM = class extends IAMClient {\n static {\n __name(this, \"IAM\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, IAM);\n\n// src/pagination/GetAccountAuthorizationDetailsPaginator.ts\n\nvar paginateGetAccountAuthorizationDetails = (0, import_core.createPaginator)(IAMClient, GetAccountAuthorizationDetailsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/GetGroupPaginator.ts\n\nvar paginateGetGroup = (0, import_core.createPaginator)(IAMClient, GetGroupCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAccessKeysPaginator.ts\n\nvar paginateListAccessKeys = (0, import_core.createPaginator)(IAMClient, ListAccessKeysCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAccountAliasesPaginator.ts\n\nvar paginateListAccountAliases = (0, import_core.createPaginator)(IAMClient, ListAccountAliasesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAttachedGroupPoliciesPaginator.ts\n\nvar paginateListAttachedGroupPolicies = (0, import_core.createPaginator)(IAMClient, ListAttachedGroupPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAttachedRolePoliciesPaginator.ts\n\nvar paginateListAttachedRolePolicies = (0, import_core.createPaginator)(IAMClient, ListAttachedRolePoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAttachedUserPoliciesPaginator.ts\n\nvar paginateListAttachedUserPolicies = (0, import_core.createPaginator)(IAMClient, ListAttachedUserPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListEntitiesForPolicyPaginator.ts\n\nvar paginateListEntitiesForPolicy = (0, import_core.createPaginator)(IAMClient, ListEntitiesForPolicyCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListGroupPoliciesPaginator.ts\n\nvar paginateListGroupPolicies = (0, import_core.createPaginator)(IAMClient, ListGroupPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListGroupsForUserPaginator.ts\n\nvar paginateListGroupsForUser = (0, import_core.createPaginator)(IAMClient, ListGroupsForUserCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListGroupsPaginator.ts\n\nvar paginateListGroups = (0, import_core.createPaginator)(IAMClient, ListGroupsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListInstanceProfileTagsPaginator.ts\n\nvar paginateListInstanceProfileTags = (0, import_core.createPaginator)(IAMClient, ListInstanceProfileTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListInstanceProfilesForRolePaginator.ts\n\nvar paginateListInstanceProfilesForRole = (0, import_core.createPaginator)(IAMClient, ListInstanceProfilesForRoleCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListInstanceProfilesPaginator.ts\n\nvar paginateListInstanceProfiles = (0, import_core.createPaginator)(IAMClient, ListInstanceProfilesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListMFADeviceTagsPaginator.ts\n\nvar paginateListMFADeviceTags = (0, import_core.createPaginator)(IAMClient, ListMFADeviceTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListMFADevicesPaginator.ts\n\nvar paginateListMFADevices = (0, import_core.createPaginator)(IAMClient, ListMFADevicesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListOpenIDConnectProviderTagsPaginator.ts\n\nvar paginateListOpenIDConnectProviderTags = (0, import_core.createPaginator)(IAMClient, ListOpenIDConnectProviderTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListPoliciesPaginator.ts\n\nvar paginateListPolicies = (0, import_core.createPaginator)(IAMClient, ListPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListPolicyTagsPaginator.ts\n\nvar paginateListPolicyTags = (0, import_core.createPaginator)(IAMClient, ListPolicyTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListPolicyVersionsPaginator.ts\n\nvar paginateListPolicyVersions = (0, import_core.createPaginator)(IAMClient, ListPolicyVersionsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListRolePoliciesPaginator.ts\n\nvar paginateListRolePolicies = (0, import_core.createPaginator)(IAMClient, ListRolePoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListRoleTagsPaginator.ts\n\nvar paginateListRoleTags = (0, import_core.createPaginator)(IAMClient, ListRoleTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListRolesPaginator.ts\n\nvar paginateListRoles = (0, import_core.createPaginator)(IAMClient, ListRolesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListSAMLProviderTagsPaginator.ts\n\nvar paginateListSAMLProviderTags = (0, import_core.createPaginator)(IAMClient, ListSAMLProviderTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListSSHPublicKeysPaginator.ts\n\nvar paginateListSSHPublicKeys = (0, import_core.createPaginator)(IAMClient, ListSSHPublicKeysCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListServerCertificateTagsPaginator.ts\n\nvar paginateListServerCertificateTags = (0, import_core.createPaginator)(IAMClient, ListServerCertificateTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListServerCertificatesPaginator.ts\n\nvar paginateListServerCertificates = (0, import_core.createPaginator)(IAMClient, ListServerCertificatesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListSigningCertificatesPaginator.ts\n\nvar paginateListSigningCertificates = (0, import_core.createPaginator)(IAMClient, ListSigningCertificatesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListUserPoliciesPaginator.ts\n\nvar paginateListUserPolicies = (0, import_core.createPaginator)(IAMClient, ListUserPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListUserTagsPaginator.ts\n\nvar paginateListUserTags = (0, import_core.createPaginator)(IAMClient, ListUserTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListUsersPaginator.ts\n\nvar paginateListUsers = (0, import_core.createPaginator)(IAMClient, ListUsersCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListVirtualMFADevicesPaginator.ts\n\nvar paginateListVirtualMFADevices = (0, import_core.createPaginator)(IAMClient, ListVirtualMFADevicesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/SimulateCustomPolicyPaginator.ts\n\nvar paginateSimulateCustomPolicy = (0, import_core.createPaginator)(IAMClient, SimulateCustomPolicyCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/SimulatePrincipalPolicyPaginator.ts\n\nvar paginateSimulatePrincipalPolicy = (0, import_core.createPaginator)(IAMClient, SimulatePrincipalPolicyCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/waiters/waitForInstanceProfileExists.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetInstanceProfileCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceProfileExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForInstanceProfileExists\");\nvar waitUntilInstanceProfileExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceProfileExists\");\n\n// src/waiters/waitForPolicyExists.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetPolicyCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForPolicyExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForPolicyExists\");\nvar waitUntilPolicyExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilPolicyExists\");\n\n// src/waiters/waitForRoleExists.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetRoleCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForRoleExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForRoleExists\");\nvar waitUntilRoleExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilRoleExists\");\n\n// src/waiters/waitForUserExists.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetUserCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForUserExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForUserExists\");\nvar waitUntilUserExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilUserExists\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n IAMServiceException,\n __Client,\n IAMClient,\n IAM,\n $Command,\n AddClientIDToOpenIDConnectProviderCommand,\n AddRoleToInstanceProfileCommand,\n AddUserToGroupCommand,\n AttachGroupPolicyCommand,\n AttachRolePolicyCommand,\n AttachUserPolicyCommand,\n ChangePasswordCommand,\n CreateAccessKeyCommand,\n CreateAccountAliasCommand,\n CreateGroupCommand,\n CreateInstanceProfileCommand,\n CreateLoginProfileCommand,\n CreateOpenIDConnectProviderCommand,\n CreatePolicyCommand,\n CreatePolicyVersionCommand,\n CreateRoleCommand,\n CreateSAMLProviderCommand,\n CreateServiceLinkedRoleCommand,\n CreateServiceSpecificCredentialCommand,\n CreateUserCommand,\n CreateVirtualMFADeviceCommand,\n DeactivateMFADeviceCommand,\n DeleteAccessKeyCommand,\n DeleteAccountAliasCommand,\n DeleteAccountPasswordPolicyCommand,\n DeleteGroupCommand,\n DeleteGroupPolicyCommand,\n DeleteInstanceProfileCommand,\n DeleteLoginProfileCommand,\n DeleteOpenIDConnectProviderCommand,\n DeletePolicyCommand,\n DeletePolicyVersionCommand,\n DeleteRoleCommand,\n DeleteRolePermissionsBoundaryCommand,\n DeleteRolePolicyCommand,\n DeleteSAMLProviderCommand,\n DeleteSSHPublicKeyCommand,\n DeleteServerCertificateCommand,\n DeleteServiceLinkedRoleCommand,\n DeleteServiceSpecificCredentialCommand,\n DeleteSigningCertificateCommand,\n DeleteUserCommand,\n DeleteUserPermissionsBoundaryCommand,\n DeleteUserPolicyCommand,\n DeleteVirtualMFADeviceCommand,\n DetachGroupPolicyCommand,\n DetachRolePolicyCommand,\n DetachUserPolicyCommand,\n DisableOrganizationsRootCredentialsManagementCommand,\n DisableOrganizationsRootSessionsCommand,\n EnableMFADeviceCommand,\n EnableOrganizationsRootCredentialsManagementCommand,\n EnableOrganizationsRootSessionsCommand,\n GenerateCredentialReportCommand,\n GenerateOrganizationsAccessReportCommand,\n GenerateServiceLastAccessedDetailsCommand,\n GetAccessKeyLastUsedCommand,\n GetAccountAuthorizationDetailsCommand,\n GetAccountPasswordPolicyCommand,\n GetAccountSummaryCommand,\n GetContextKeysForCustomPolicyCommand,\n GetContextKeysForPrincipalPolicyCommand,\n GetCredentialReportCommand,\n GetGroupCommand,\n GetGroupPolicyCommand,\n GetInstanceProfileCommand,\n GetLoginProfileCommand,\n GetMFADeviceCommand,\n GetOpenIDConnectProviderCommand,\n GetOrganizationsAccessReportCommand,\n GetPolicyCommand,\n GetPolicyVersionCommand,\n GetRoleCommand,\n GetRolePolicyCommand,\n GetSAMLProviderCommand,\n GetSSHPublicKeyCommand,\n GetServerCertificateCommand,\n GetServiceLastAccessedDetailsCommand,\n GetServiceLastAccessedDetailsWithEntitiesCommand,\n GetServiceLinkedRoleDeletionStatusCommand,\n GetUserCommand,\n GetUserPolicyCommand,\n ListAccessKeysCommand,\n ListAccountAliasesCommand,\n ListAttachedGroupPoliciesCommand,\n ListAttachedRolePoliciesCommand,\n ListAttachedUserPoliciesCommand,\n ListEntitiesForPolicyCommand,\n ListGroupPoliciesCommand,\n ListGroupsCommand,\n ListGroupsForUserCommand,\n ListInstanceProfileTagsCommand,\n ListInstanceProfilesCommand,\n ListInstanceProfilesForRoleCommand,\n ListMFADeviceTagsCommand,\n ListMFADevicesCommand,\n ListOpenIDConnectProviderTagsCommand,\n ListOpenIDConnectProvidersCommand,\n ListOrganizationsFeaturesCommand,\n ListPoliciesCommand,\n ListPoliciesGrantingServiceAccessCommand,\n ListPolicyTagsCommand,\n ListPolicyVersionsCommand,\n ListRolePoliciesCommand,\n ListRoleTagsCommand,\n ListRolesCommand,\n ListSAMLProviderTagsCommand,\n ListSAMLProvidersCommand,\n ListSSHPublicKeysCommand,\n ListServerCertificateTagsCommand,\n ListServerCertificatesCommand,\n ListServiceSpecificCredentialsCommand,\n ListSigningCertificatesCommand,\n ListUserPoliciesCommand,\n ListUserTagsCommand,\n ListUsersCommand,\n ListVirtualMFADevicesCommand,\n PutGroupPolicyCommand,\n PutRolePermissionsBoundaryCommand,\n PutRolePolicyCommand,\n PutUserPermissionsBoundaryCommand,\n PutUserPolicyCommand,\n RemoveClientIDFromOpenIDConnectProviderCommand,\n RemoveRoleFromInstanceProfileCommand,\n RemoveUserFromGroupCommand,\n ResetServiceSpecificCredentialCommand,\n ResyncMFADeviceCommand,\n SetDefaultPolicyVersionCommand,\n SetSecurityTokenServicePreferencesCommand,\n SimulateCustomPolicyCommand,\n SimulatePrincipalPolicyCommand,\n TagInstanceProfileCommand,\n TagMFADeviceCommand,\n TagOpenIDConnectProviderCommand,\n TagPolicyCommand,\n TagRoleCommand,\n TagSAMLProviderCommand,\n TagServerCertificateCommand,\n TagUserCommand,\n UntagInstanceProfileCommand,\n UntagMFADeviceCommand,\n UntagOpenIDConnectProviderCommand,\n UntagPolicyCommand,\n UntagRoleCommand,\n UntagSAMLProviderCommand,\n UntagServerCertificateCommand,\n UntagUserCommand,\n UpdateAccessKeyCommand,\n UpdateAccountPasswordPolicyCommand,\n UpdateAssumeRolePolicyCommand,\n UpdateGroupCommand,\n UpdateLoginProfileCommand,\n UpdateOpenIDConnectProviderThumbprintCommand,\n UpdateRoleCommand,\n UpdateRoleDescriptionCommand,\n UpdateSAMLProviderCommand,\n UpdateSSHPublicKeyCommand,\n UpdateServerCertificateCommand,\n UpdateServiceSpecificCredentialCommand,\n UpdateSigningCertificateCommand,\n UpdateUserCommand,\n UploadSSHPublicKeyCommand,\n UploadServerCertificateCommand,\n UploadSigningCertificateCommand,\n paginateGetAccountAuthorizationDetails,\n paginateGetGroup,\n paginateListAccessKeys,\n paginateListAccountAliases,\n paginateListAttachedGroupPolicies,\n paginateListAttachedRolePolicies,\n paginateListAttachedUserPolicies,\n paginateListEntitiesForPolicy,\n paginateListGroupPolicies,\n paginateListGroupsForUser,\n paginateListGroups,\n paginateListInstanceProfileTags,\n paginateListInstanceProfilesForRole,\n paginateListInstanceProfiles,\n paginateListMFADeviceTags,\n paginateListMFADevices,\n paginateListOpenIDConnectProviderTags,\n paginateListPolicies,\n paginateListPolicyTags,\n paginateListPolicyVersions,\n paginateListRolePolicies,\n paginateListRoleTags,\n paginateListRoles,\n paginateListSAMLProviderTags,\n paginateListSSHPublicKeys,\n paginateListServerCertificateTags,\n paginateListServerCertificates,\n paginateListSigningCertificates,\n paginateListUserPolicies,\n paginateListUserTags,\n paginateListUsers,\n paginateListVirtualMFADevices,\n paginateSimulateCustomPolicy,\n paginateSimulatePrincipalPolicy,\n waitForInstanceProfileExists,\n waitUntilInstanceProfileExists,\n waitForPolicyExists,\n waitUntilPolicyExists,\n waitForRoleExists,\n waitUntilRoleExists,\n waitForUserExists,\n waitUntilUserExists,\n AccessAdvisorUsageGranularityType,\n StatusType,\n AccountNotManagementOrDelegatedAdministratorException,\n InvalidInputException,\n LimitExceededException,\n NoSuchEntityException,\n ServiceFailureException,\n EntityAlreadyExistsException,\n UnmodifiableEntityException,\n AssertionEncryptionModeType,\n AssignmentStatusType,\n PermissionsBoundaryAttachmentType,\n PolicyNotAttachableException,\n EntityTemporarilyUnmodifiableException,\n InvalidUserTypeException,\n PasswordPolicyViolationException,\n ConcurrentModificationException,\n OpenIdIdpCommunicationErrorException,\n MalformedPolicyDocumentException,\n ServiceNotSupportedException,\n DeleteConflictException,\n FeatureType,\n OrganizationNotFoundException,\n OrganizationNotInAllFeaturesModeException,\n ServiceAccessNotEnabledException,\n InvalidAuthenticationCodeException,\n CallerIsNotManagementAccountException,\n ReportStateType,\n ReportGenerationLimitExceededException,\n EntityType,\n SummaryKeyType,\n CredentialReportExpiredException,\n CredentialReportNotPresentException,\n CredentialReportNotReadyException,\n ReportFormatType,\n SortKeyType,\n JobStatusType,\n PolicyOwnerEntityType,\n DeletionTaskStatusType,\n EncodingType,\n UnrecognizedPublicKeyEncodingException,\n PolicyUsageType,\n PolicyScopeType,\n PolicyType,\n GlobalEndpointTokenVersion,\n PolicyEvaluationException,\n ContextKeyTypeEnum,\n AccessKeyFilterSensitiveLog,\n ChangePasswordRequestFilterSensitiveLog,\n CreateAccessKeyResponseFilterSensitiveLog,\n CreateLoginProfileRequestFilterSensitiveLog,\n CreateSAMLProviderRequestFilterSensitiveLog,\n ServiceSpecificCredentialFilterSensitiveLog,\n CreateServiceSpecificCredentialResponseFilterSensitiveLog,\n VirtualMFADeviceFilterSensitiveLog,\n CreateVirtualMFADeviceResponseFilterSensitiveLog,\n ListVirtualMFADevicesResponseFilterSensitiveLog,\n ResetServiceSpecificCredentialResponseFilterSensitiveLog,\n PolicyEvaluationDecisionType,\n PolicySourceType,\n KeyPairMismatchException,\n MalformedCertificateException,\n DuplicateCertificateException,\n InvalidCertificateException,\n DuplicateSSHPublicKeyException,\n InvalidPublicKeyException,\n UpdateLoginProfileRequestFilterSensitiveLog,\n UpdateSAMLProviderRequestFilterSensitiveLog,\n UploadServerCertificateRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2010-05-08\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultIAMHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"IAM\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultKMSHttpAuthSchemeProvider = exports.defaultKMSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultKMSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultKMSHttpAuthSchemeParametersProvider = defaultKMSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"kms\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultKMSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultKMSHttpAuthSchemeProvider = defaultKMSHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://kms-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://kms.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AlgorithmSpec: () => AlgorithmSpec,\n AlreadyExistsException: () => AlreadyExistsException,\n CancelKeyDeletionCommand: () => CancelKeyDeletionCommand,\n CloudHsmClusterInUseException: () => CloudHsmClusterInUseException,\n CloudHsmClusterInvalidConfigurationException: () => CloudHsmClusterInvalidConfigurationException,\n CloudHsmClusterNotActiveException: () => CloudHsmClusterNotActiveException,\n CloudHsmClusterNotFoundException: () => CloudHsmClusterNotFoundException,\n CloudHsmClusterNotRelatedException: () => CloudHsmClusterNotRelatedException,\n ConflictException: () => ConflictException,\n ConnectCustomKeyStoreCommand: () => ConnectCustomKeyStoreCommand,\n ConnectionErrorCodeType: () => ConnectionErrorCodeType,\n ConnectionStateType: () => ConnectionStateType,\n CreateAliasCommand: () => CreateAliasCommand,\n CreateCustomKeyStoreCommand: () => CreateCustomKeyStoreCommand,\n CreateCustomKeyStoreRequestFilterSensitiveLog: () => CreateCustomKeyStoreRequestFilterSensitiveLog,\n CreateGrantCommand: () => CreateGrantCommand,\n CreateKeyCommand: () => CreateKeyCommand,\n CustomKeyStoreHasCMKsException: () => CustomKeyStoreHasCMKsException,\n CustomKeyStoreInvalidStateException: () => CustomKeyStoreInvalidStateException,\n CustomKeyStoreNameInUseException: () => CustomKeyStoreNameInUseException,\n CustomKeyStoreNotFoundException: () => CustomKeyStoreNotFoundException,\n CustomKeyStoreType: () => CustomKeyStoreType,\n CustomKeyStoresListEntryFilterSensitiveLog: () => CustomKeyStoresListEntryFilterSensitiveLog,\n CustomerMasterKeySpec: () => CustomerMasterKeySpec,\n DataKeyPairSpec: () => DataKeyPairSpec,\n DataKeySpec: () => DataKeySpec,\n DecryptCommand: () => DecryptCommand,\n DecryptResponseFilterSensitiveLog: () => DecryptResponseFilterSensitiveLog,\n DeleteAliasCommand: () => DeleteAliasCommand,\n DeleteCustomKeyStoreCommand: () => DeleteCustomKeyStoreCommand,\n DeleteImportedKeyMaterialCommand: () => DeleteImportedKeyMaterialCommand,\n DependencyTimeoutException: () => DependencyTimeoutException,\n DeriveSharedSecretCommand: () => DeriveSharedSecretCommand,\n DeriveSharedSecretResponseFilterSensitiveLog: () => DeriveSharedSecretResponseFilterSensitiveLog,\n DescribeCustomKeyStoresCommand: () => DescribeCustomKeyStoresCommand,\n DescribeCustomKeyStoresResponseFilterSensitiveLog: () => DescribeCustomKeyStoresResponseFilterSensitiveLog,\n DescribeKeyCommand: () => DescribeKeyCommand,\n DisableKeyCommand: () => DisableKeyCommand,\n DisableKeyRotationCommand: () => DisableKeyRotationCommand,\n DisabledException: () => DisabledException,\n DisconnectCustomKeyStoreCommand: () => DisconnectCustomKeyStoreCommand,\n DryRunOperationException: () => DryRunOperationException,\n EnableKeyCommand: () => EnableKeyCommand,\n EnableKeyRotationCommand: () => EnableKeyRotationCommand,\n EncryptCommand: () => EncryptCommand,\n EncryptRequestFilterSensitiveLog: () => EncryptRequestFilterSensitiveLog,\n EncryptionAlgorithmSpec: () => EncryptionAlgorithmSpec,\n ExpirationModelType: () => ExpirationModelType,\n ExpiredImportTokenException: () => ExpiredImportTokenException,\n GenerateDataKeyCommand: () => GenerateDataKeyCommand,\n GenerateDataKeyPairCommand: () => GenerateDataKeyPairCommand,\n GenerateDataKeyPairResponseFilterSensitiveLog: () => GenerateDataKeyPairResponseFilterSensitiveLog,\n GenerateDataKeyPairWithoutPlaintextCommand: () => GenerateDataKeyPairWithoutPlaintextCommand,\n GenerateDataKeyResponseFilterSensitiveLog: () => GenerateDataKeyResponseFilterSensitiveLog,\n GenerateDataKeyWithoutPlaintextCommand: () => GenerateDataKeyWithoutPlaintextCommand,\n GenerateMacCommand: () => GenerateMacCommand,\n GenerateMacRequestFilterSensitiveLog: () => GenerateMacRequestFilterSensitiveLog,\n GenerateRandomCommand: () => GenerateRandomCommand,\n GenerateRandomResponseFilterSensitiveLog: () => GenerateRandomResponseFilterSensitiveLog,\n GetKeyPolicyCommand: () => GetKeyPolicyCommand,\n GetKeyRotationStatusCommand: () => GetKeyRotationStatusCommand,\n GetParametersForImportCommand: () => GetParametersForImportCommand,\n GetParametersForImportResponseFilterSensitiveLog: () => GetParametersForImportResponseFilterSensitiveLog,\n GetPublicKeyCommand: () => GetPublicKeyCommand,\n GrantOperation: () => GrantOperation,\n ImportKeyMaterialCommand: () => ImportKeyMaterialCommand,\n IncorrectKeyException: () => IncorrectKeyException,\n IncorrectKeyMaterialException: () => IncorrectKeyMaterialException,\n IncorrectTrustAnchorException: () => IncorrectTrustAnchorException,\n InvalidAliasNameException: () => InvalidAliasNameException,\n InvalidArnException: () => InvalidArnException,\n InvalidCiphertextException: () => InvalidCiphertextException,\n InvalidGrantIdException: () => InvalidGrantIdException,\n InvalidGrantTokenException: () => InvalidGrantTokenException,\n InvalidImportTokenException: () => InvalidImportTokenException,\n InvalidKeyUsageException: () => InvalidKeyUsageException,\n InvalidMarkerException: () => InvalidMarkerException,\n KMS: () => KMS,\n KMSClient: () => KMSClient,\n KMSInternalException: () => KMSInternalException,\n KMSInvalidMacException: () => KMSInvalidMacException,\n KMSInvalidSignatureException: () => KMSInvalidSignatureException,\n KMSInvalidStateException: () => KMSInvalidStateException,\n KMSServiceException: () => KMSServiceException,\n KeyAgreementAlgorithmSpec: () => KeyAgreementAlgorithmSpec,\n KeyEncryptionMechanism: () => KeyEncryptionMechanism,\n KeyManagerType: () => KeyManagerType,\n KeySpec: () => KeySpec,\n KeyState: () => KeyState,\n KeyUnavailableException: () => KeyUnavailableException,\n KeyUsageType: () => KeyUsageType,\n LimitExceededException: () => LimitExceededException,\n ListAliasesCommand: () => ListAliasesCommand,\n ListGrantsCommand: () => ListGrantsCommand,\n ListKeyPoliciesCommand: () => ListKeyPoliciesCommand,\n ListKeyRotationsCommand: () => ListKeyRotationsCommand,\n ListKeysCommand: () => ListKeysCommand,\n ListResourceTagsCommand: () => ListResourceTagsCommand,\n ListRetirableGrantsCommand: () => ListRetirableGrantsCommand,\n MacAlgorithmSpec: () => MacAlgorithmSpec,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n MessageType: () => MessageType,\n MultiRegionKeyType: () => MultiRegionKeyType,\n NotFoundException: () => NotFoundException,\n OriginType: () => OriginType,\n PutKeyPolicyCommand: () => PutKeyPolicyCommand,\n ReEncryptCommand: () => ReEncryptCommand,\n ReplicateKeyCommand: () => ReplicateKeyCommand,\n RetireGrantCommand: () => RetireGrantCommand,\n RevokeGrantCommand: () => RevokeGrantCommand,\n RotateKeyOnDemandCommand: () => RotateKeyOnDemandCommand,\n RotationType: () => RotationType,\n ScheduleKeyDeletionCommand: () => ScheduleKeyDeletionCommand,\n SignCommand: () => SignCommand,\n SignRequestFilterSensitiveLog: () => SignRequestFilterSensitiveLog,\n SigningAlgorithmSpec: () => SigningAlgorithmSpec,\n TagException: () => TagException,\n TagResourceCommand: () => TagResourceCommand,\n UnsupportedOperationException: () => UnsupportedOperationException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateAliasCommand: () => UpdateAliasCommand,\n UpdateCustomKeyStoreCommand: () => UpdateCustomKeyStoreCommand,\n UpdateCustomKeyStoreRequestFilterSensitiveLog: () => UpdateCustomKeyStoreRequestFilterSensitiveLog,\n UpdateKeyDescriptionCommand: () => UpdateKeyDescriptionCommand,\n UpdatePrimaryRegionCommand: () => UpdatePrimaryRegionCommand,\n VerifyCommand: () => VerifyCommand,\n VerifyMacCommand: () => VerifyMacCommand,\n VerifyMacRequestFilterSensitiveLog: () => VerifyMacRequestFilterSensitiveLog,\n VerifyRequestFilterSensitiveLog: () => VerifyRequestFilterSensitiveLog,\n WrappingKeySpec: () => WrappingKeySpec,\n XksKeyAlreadyInUseException: () => XksKeyAlreadyInUseException,\n XksKeyInvalidConfigurationException: () => XksKeyInvalidConfigurationException,\n XksKeyNotFoundException: () => XksKeyNotFoundException,\n XksProxyAuthenticationCredentialTypeFilterSensitiveLog: () => XksProxyAuthenticationCredentialTypeFilterSensitiveLog,\n XksProxyConfigurationTypeFilterSensitiveLog: () => XksProxyConfigurationTypeFilterSensitiveLog,\n XksProxyConnectivityType: () => XksProxyConnectivityType,\n XksProxyIncorrectAuthenticationCredentialException: () => XksProxyIncorrectAuthenticationCredentialException,\n XksProxyInvalidConfigurationException: () => XksProxyInvalidConfigurationException,\n XksProxyInvalidResponseException: () => XksProxyInvalidResponseException,\n XksProxyUriEndpointInUseException: () => XksProxyUriEndpointInUseException,\n XksProxyUriInUseException: () => XksProxyUriInUseException,\n XksProxyUriUnreachableException: () => XksProxyUriUnreachableException,\n XksProxyVpcEndpointServiceInUseException: () => XksProxyVpcEndpointServiceInUseException,\n XksProxyVpcEndpointServiceInvalidConfigurationException: () => XksProxyVpcEndpointServiceInvalidConfigurationException,\n XksProxyVpcEndpointServiceNotFoundException: () => XksProxyVpcEndpointServiceNotFoundException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeCustomKeyStores: () => paginateDescribeCustomKeyStores,\n paginateListAliases: () => paginateListAliases,\n paginateListGrants: () => paginateListGrants,\n paginateListKeyPolicies: () => paginateListKeyPolicies,\n paginateListKeyRotations: () => paginateListKeyRotations,\n paginateListKeys: () => paginateListKeys,\n paginateListResourceTags: () => paginateListResourceTags,\n paginateListRetirableGrants: () => paginateListRetirableGrants\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/KMSClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"kms\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/KMSClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/KMSClient.ts\nvar KMSClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"KMSClient\");\n }\n /**\n * The resolved configuration of KMSClient class. This is resolved and normalized from the {@link KMSClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultKMSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/KMS.ts\n\n\n// src/commands/CancelKeyDeletionCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/KMSServiceException.ts\n\nvar KMSServiceException = class _KMSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"KMSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _KMSServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AlgorithmSpec = {\n RSAES_OAEP_SHA_1: \"RSAES_OAEP_SHA_1\",\n RSAES_OAEP_SHA_256: \"RSAES_OAEP_SHA_256\",\n RSAES_PKCS1_V1_5: \"RSAES_PKCS1_V1_5\",\n RSA_AES_KEY_WRAP_SHA_1: \"RSA_AES_KEY_WRAP_SHA_1\",\n RSA_AES_KEY_WRAP_SHA_256: \"RSA_AES_KEY_WRAP_SHA_256\",\n SM2PKE: \"SM2PKE\"\n};\nvar AlreadyExistsException = class _AlreadyExistsException extends KMSServiceException {\n static {\n __name(this, \"AlreadyExistsException\");\n }\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AlreadyExistsException.prototype);\n }\n};\nvar DependencyTimeoutException = class _DependencyTimeoutException extends KMSServiceException {\n static {\n __name(this, \"DependencyTimeoutException\");\n }\n name = \"DependencyTimeoutException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DependencyTimeoutException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _DependencyTimeoutException.prototype);\n }\n};\nvar InvalidArnException = class _InvalidArnException extends KMSServiceException {\n static {\n __name(this, \"InvalidArnException\");\n }\n name = \"InvalidArnException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidArnException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidArnException.prototype);\n }\n};\nvar KMSInternalException = class _KMSInternalException extends KMSServiceException {\n static {\n __name(this, \"KMSInternalException\");\n }\n name = \"KMSInternalException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInternalException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInternalException.prototype);\n }\n};\nvar KMSInvalidStateException = class _KMSInvalidStateException extends KMSServiceException {\n static {\n __name(this, \"KMSInvalidStateException\");\n }\n name = \"KMSInvalidStateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidStateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidStateException.prototype);\n }\n};\nvar NotFoundException = class _NotFoundException extends KMSServiceException {\n static {\n __name(this, \"NotFoundException\");\n }\n name = \"NotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotFoundException.prototype);\n }\n};\nvar CloudHsmClusterInUseException = class _CloudHsmClusterInUseException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterInUseException\");\n }\n name = \"CloudHsmClusterInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterInUseException.prototype);\n }\n};\nvar CloudHsmClusterInvalidConfigurationException = class _CloudHsmClusterInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterInvalidConfigurationException\");\n }\n name = \"CloudHsmClusterInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterInvalidConfigurationException.prototype);\n }\n};\nvar CloudHsmClusterNotActiveException = class _CloudHsmClusterNotActiveException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterNotActiveException\");\n }\n name = \"CloudHsmClusterNotActiveException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterNotActiveException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterNotActiveException.prototype);\n }\n};\nvar CloudHsmClusterNotFoundException = class _CloudHsmClusterNotFoundException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterNotFoundException\");\n }\n name = \"CloudHsmClusterNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterNotFoundException.prototype);\n }\n};\nvar CloudHsmClusterNotRelatedException = class _CloudHsmClusterNotRelatedException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterNotRelatedException\");\n }\n name = \"CloudHsmClusterNotRelatedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterNotRelatedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterNotRelatedException.prototype);\n }\n};\nvar ConflictException = class _ConflictException extends KMSServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar CustomKeyStoreInvalidStateException = class _CustomKeyStoreInvalidStateException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreInvalidStateException\");\n }\n name = \"CustomKeyStoreInvalidStateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreInvalidStateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreInvalidStateException.prototype);\n }\n};\nvar CustomKeyStoreNotFoundException = class _CustomKeyStoreNotFoundException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreNotFoundException\");\n }\n name = \"CustomKeyStoreNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreNotFoundException.prototype);\n }\n};\nvar ConnectionErrorCodeType = {\n CLUSTER_NOT_FOUND: \"CLUSTER_NOT_FOUND\",\n INSUFFICIENT_CLOUDHSM_HSMS: \"INSUFFICIENT_CLOUDHSM_HSMS\",\n INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET: \"INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n INVALID_CREDENTIALS: \"INVALID_CREDENTIALS\",\n NETWORK_ERRORS: \"NETWORK_ERRORS\",\n SUBNET_NOT_FOUND: \"SUBNET_NOT_FOUND\",\n USER_LOCKED_OUT: \"USER_LOCKED_OUT\",\n USER_LOGGED_IN: \"USER_LOGGED_IN\",\n USER_NOT_FOUND: \"USER_NOT_FOUND\",\n XKS_PROXY_ACCESS_DENIED: \"XKS_PROXY_ACCESS_DENIED\",\n XKS_PROXY_INVALID_CONFIGURATION: \"XKS_PROXY_INVALID_CONFIGURATION\",\n XKS_PROXY_INVALID_RESPONSE: \"XKS_PROXY_INVALID_RESPONSE\",\n XKS_PROXY_INVALID_TLS_CONFIGURATION: \"XKS_PROXY_INVALID_TLS_CONFIGURATION\",\n XKS_PROXY_NOT_REACHABLE: \"XKS_PROXY_NOT_REACHABLE\",\n XKS_PROXY_TIMED_OUT: \"XKS_PROXY_TIMED_OUT\",\n XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION: \"XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION\",\n XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND: \"XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND\"\n};\nvar ConnectionStateType = {\n CONNECTED: \"CONNECTED\",\n CONNECTING: \"CONNECTING\",\n DISCONNECTED: \"DISCONNECTED\",\n DISCONNECTING: \"DISCONNECTING\",\n FAILED: \"FAILED\"\n};\nvar InvalidAliasNameException = class _InvalidAliasNameException extends KMSServiceException {\n static {\n __name(this, \"InvalidAliasNameException\");\n }\n name = \"InvalidAliasNameException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAliasNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAliasNameException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends KMSServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar CustomKeyStoreType = {\n AWS_CLOUDHSM: \"AWS_CLOUDHSM\",\n EXTERNAL_KEY_STORE: \"EXTERNAL_KEY_STORE\"\n};\nvar XksProxyConnectivityType = {\n PUBLIC_ENDPOINT: \"PUBLIC_ENDPOINT\",\n VPC_ENDPOINT_SERVICE: \"VPC_ENDPOINT_SERVICE\"\n};\nvar CustomKeyStoreNameInUseException = class _CustomKeyStoreNameInUseException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreNameInUseException\");\n }\n name = \"CustomKeyStoreNameInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreNameInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreNameInUseException.prototype);\n }\n};\nvar IncorrectTrustAnchorException = class _IncorrectTrustAnchorException extends KMSServiceException {\n static {\n __name(this, \"IncorrectTrustAnchorException\");\n }\n name = \"IncorrectTrustAnchorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncorrectTrustAnchorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncorrectTrustAnchorException.prototype);\n }\n};\nvar XksProxyIncorrectAuthenticationCredentialException = class _XksProxyIncorrectAuthenticationCredentialException extends KMSServiceException {\n static {\n __name(this, \"XksProxyIncorrectAuthenticationCredentialException\");\n }\n name = \"XksProxyIncorrectAuthenticationCredentialException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyIncorrectAuthenticationCredentialException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyIncorrectAuthenticationCredentialException.prototype);\n }\n};\nvar XksProxyInvalidConfigurationException = class _XksProxyInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"XksProxyInvalidConfigurationException\");\n }\n name = \"XksProxyInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyInvalidConfigurationException.prototype);\n }\n};\nvar XksProxyInvalidResponseException = class _XksProxyInvalidResponseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyInvalidResponseException\");\n }\n name = \"XksProxyInvalidResponseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyInvalidResponseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyInvalidResponseException.prototype);\n }\n};\nvar XksProxyUriEndpointInUseException = class _XksProxyUriEndpointInUseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyUriEndpointInUseException\");\n }\n name = \"XksProxyUriEndpointInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyUriEndpointInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyUriEndpointInUseException.prototype);\n }\n};\nvar XksProxyUriInUseException = class _XksProxyUriInUseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyUriInUseException\");\n }\n name = \"XksProxyUriInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyUriInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyUriInUseException.prototype);\n }\n};\nvar XksProxyUriUnreachableException = class _XksProxyUriUnreachableException extends KMSServiceException {\n static {\n __name(this, \"XksProxyUriUnreachableException\");\n }\n name = \"XksProxyUriUnreachableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyUriUnreachableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyUriUnreachableException.prototype);\n }\n};\nvar XksProxyVpcEndpointServiceInUseException = class _XksProxyVpcEndpointServiceInUseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyVpcEndpointServiceInUseException\");\n }\n name = \"XksProxyVpcEndpointServiceInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyVpcEndpointServiceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyVpcEndpointServiceInUseException.prototype);\n }\n};\nvar XksProxyVpcEndpointServiceInvalidConfigurationException = class _XksProxyVpcEndpointServiceInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"XksProxyVpcEndpointServiceInvalidConfigurationException\");\n }\n name = \"XksProxyVpcEndpointServiceInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyVpcEndpointServiceInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyVpcEndpointServiceInvalidConfigurationException.prototype);\n }\n};\nvar XksProxyVpcEndpointServiceNotFoundException = class _XksProxyVpcEndpointServiceNotFoundException extends KMSServiceException {\n static {\n __name(this, \"XksProxyVpcEndpointServiceNotFoundException\");\n }\n name = \"XksProxyVpcEndpointServiceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyVpcEndpointServiceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyVpcEndpointServiceNotFoundException.prototype);\n }\n};\nvar GrantOperation = {\n CreateGrant: \"CreateGrant\",\n Decrypt: \"Decrypt\",\n DeriveSharedSecret: \"DeriveSharedSecret\",\n DescribeKey: \"DescribeKey\",\n Encrypt: \"Encrypt\",\n GenerateDataKey: \"GenerateDataKey\",\n GenerateDataKeyPair: \"GenerateDataKeyPair\",\n GenerateDataKeyPairWithoutPlaintext: \"GenerateDataKeyPairWithoutPlaintext\",\n GenerateDataKeyWithoutPlaintext: \"GenerateDataKeyWithoutPlaintext\",\n GenerateMac: \"GenerateMac\",\n GetPublicKey: \"GetPublicKey\",\n ReEncryptFrom: \"ReEncryptFrom\",\n ReEncryptTo: \"ReEncryptTo\",\n RetireGrant: \"RetireGrant\",\n Sign: \"Sign\",\n Verify: \"Verify\",\n VerifyMac: \"VerifyMac\"\n};\nvar DisabledException = class _DisabledException extends KMSServiceException {\n static {\n __name(this, \"DisabledException\");\n }\n name = \"DisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DisabledException.prototype);\n }\n};\nvar DryRunOperationException = class _DryRunOperationException extends KMSServiceException {\n static {\n __name(this, \"DryRunOperationException\");\n }\n name = \"DryRunOperationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DryRunOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DryRunOperationException.prototype);\n }\n};\nvar InvalidGrantTokenException = class _InvalidGrantTokenException extends KMSServiceException {\n static {\n __name(this, \"InvalidGrantTokenException\");\n }\n name = \"InvalidGrantTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantTokenException.prototype);\n }\n};\nvar CustomerMasterKeySpec = {\n ECC_NIST_P256: \"ECC_NIST_P256\",\n ECC_NIST_P384: \"ECC_NIST_P384\",\n ECC_NIST_P521: \"ECC_NIST_P521\",\n ECC_SECG_P256K1: \"ECC_SECG_P256K1\",\n HMAC_224: \"HMAC_224\",\n HMAC_256: \"HMAC_256\",\n HMAC_384: \"HMAC_384\",\n HMAC_512: \"HMAC_512\",\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\",\n SYMMETRIC_DEFAULT: \"SYMMETRIC_DEFAULT\"\n};\nvar KeySpec = {\n ECC_NIST_P256: \"ECC_NIST_P256\",\n ECC_NIST_P384: \"ECC_NIST_P384\",\n ECC_NIST_P521: \"ECC_NIST_P521\",\n ECC_SECG_P256K1: \"ECC_SECG_P256K1\",\n HMAC_224: \"HMAC_224\",\n HMAC_256: \"HMAC_256\",\n HMAC_384: \"HMAC_384\",\n HMAC_512: \"HMAC_512\",\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\",\n SYMMETRIC_DEFAULT: \"SYMMETRIC_DEFAULT\"\n};\nvar KeyUsageType = {\n ENCRYPT_DECRYPT: \"ENCRYPT_DECRYPT\",\n GENERATE_VERIFY_MAC: \"GENERATE_VERIFY_MAC\",\n KEY_AGREEMENT: \"KEY_AGREEMENT\",\n SIGN_VERIFY: \"SIGN_VERIFY\"\n};\nvar OriginType = {\n AWS_CLOUDHSM: \"AWS_CLOUDHSM\",\n AWS_KMS: \"AWS_KMS\",\n EXTERNAL: \"EXTERNAL\",\n EXTERNAL_KEY_STORE: \"EXTERNAL_KEY_STORE\"\n};\nvar EncryptionAlgorithmSpec = {\n RSAES_OAEP_SHA_1: \"RSAES_OAEP_SHA_1\",\n RSAES_OAEP_SHA_256: \"RSAES_OAEP_SHA_256\",\n SM2PKE: \"SM2PKE\",\n SYMMETRIC_DEFAULT: \"SYMMETRIC_DEFAULT\"\n};\nvar ExpirationModelType = {\n KEY_MATERIAL_DOES_NOT_EXPIRE: \"KEY_MATERIAL_DOES_NOT_EXPIRE\",\n KEY_MATERIAL_EXPIRES: \"KEY_MATERIAL_EXPIRES\"\n};\nvar KeyAgreementAlgorithmSpec = {\n ECDH: \"ECDH\"\n};\nvar KeyManagerType = {\n AWS: \"AWS\",\n CUSTOMER: \"CUSTOMER\"\n};\nvar KeyState = {\n Creating: \"Creating\",\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n PendingDeletion: \"PendingDeletion\",\n PendingImport: \"PendingImport\",\n PendingReplicaDeletion: \"PendingReplicaDeletion\",\n Unavailable: \"Unavailable\",\n Updating: \"Updating\"\n};\nvar MacAlgorithmSpec = {\n HMAC_SHA_224: \"HMAC_SHA_224\",\n HMAC_SHA_256: \"HMAC_SHA_256\",\n HMAC_SHA_384: \"HMAC_SHA_384\",\n HMAC_SHA_512: \"HMAC_SHA_512\"\n};\nvar MultiRegionKeyType = {\n PRIMARY: \"PRIMARY\",\n REPLICA: \"REPLICA\"\n};\nvar SigningAlgorithmSpec = {\n ECDSA_SHA_256: \"ECDSA_SHA_256\",\n ECDSA_SHA_384: \"ECDSA_SHA_384\",\n ECDSA_SHA_512: \"ECDSA_SHA_512\",\n RSASSA_PKCS1_V1_5_SHA_256: \"RSASSA_PKCS1_V1_5_SHA_256\",\n RSASSA_PKCS1_V1_5_SHA_384: \"RSASSA_PKCS1_V1_5_SHA_384\",\n RSASSA_PKCS1_V1_5_SHA_512: \"RSASSA_PKCS1_V1_5_SHA_512\",\n RSASSA_PSS_SHA_256: \"RSASSA_PSS_SHA_256\",\n RSASSA_PSS_SHA_384: \"RSASSA_PSS_SHA_384\",\n RSASSA_PSS_SHA_512: \"RSASSA_PSS_SHA_512\",\n SM2DSA: \"SM2DSA\"\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends KMSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar TagException = class _TagException extends KMSServiceException {\n static {\n __name(this, \"TagException\");\n }\n name = \"TagException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TagException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TagException.prototype);\n }\n};\nvar UnsupportedOperationException = class _UnsupportedOperationException extends KMSServiceException {\n static {\n __name(this, \"UnsupportedOperationException\");\n }\n name = \"UnsupportedOperationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedOperationException.prototype);\n }\n};\nvar XksKeyAlreadyInUseException = class _XksKeyAlreadyInUseException extends KMSServiceException {\n static {\n __name(this, \"XksKeyAlreadyInUseException\");\n }\n name = \"XksKeyAlreadyInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksKeyAlreadyInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksKeyAlreadyInUseException.prototype);\n }\n};\nvar XksKeyInvalidConfigurationException = class _XksKeyInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"XksKeyInvalidConfigurationException\");\n }\n name = \"XksKeyInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksKeyInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksKeyInvalidConfigurationException.prototype);\n }\n};\nvar XksKeyNotFoundException = class _XksKeyNotFoundException extends KMSServiceException {\n static {\n __name(this, \"XksKeyNotFoundException\");\n }\n name = \"XksKeyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksKeyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksKeyNotFoundException.prototype);\n }\n};\nvar CustomKeyStoreHasCMKsException = class _CustomKeyStoreHasCMKsException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreHasCMKsException\");\n }\n name = \"CustomKeyStoreHasCMKsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreHasCMKsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreHasCMKsException.prototype);\n }\n};\nvar DataKeyPairSpec = {\n ECC_NIST_P256: \"ECC_NIST_P256\",\n ECC_NIST_P384: \"ECC_NIST_P384\",\n ECC_NIST_P521: \"ECC_NIST_P521\",\n ECC_SECG_P256K1: \"ECC_SECG_P256K1\",\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\"\n};\nvar DataKeySpec = {\n AES_128: \"AES_128\",\n AES_256: \"AES_256\"\n};\nvar KeyEncryptionMechanism = {\n RSAES_OAEP_SHA_256: \"RSAES_OAEP_SHA_256\"\n};\nvar IncorrectKeyException = class _IncorrectKeyException extends KMSServiceException {\n static {\n __name(this, \"IncorrectKeyException\");\n }\n name = \"IncorrectKeyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncorrectKeyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncorrectKeyException.prototype);\n }\n};\nvar InvalidCiphertextException = class _InvalidCiphertextException extends KMSServiceException {\n static {\n __name(this, \"InvalidCiphertextException\");\n }\n name = \"InvalidCiphertextException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCiphertextException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCiphertextException.prototype);\n }\n};\nvar InvalidKeyUsageException = class _InvalidKeyUsageException extends KMSServiceException {\n static {\n __name(this, \"InvalidKeyUsageException\");\n }\n name = \"InvalidKeyUsageException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeyUsageException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeyUsageException.prototype);\n }\n};\nvar KeyUnavailableException = class _KeyUnavailableException extends KMSServiceException {\n static {\n __name(this, \"KeyUnavailableException\");\n }\n name = \"KeyUnavailableException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeyUnavailableException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeyUnavailableException.prototype);\n }\n};\nvar InvalidMarkerException = class _InvalidMarkerException extends KMSServiceException {\n static {\n __name(this, \"InvalidMarkerException\");\n }\n name = \"InvalidMarkerException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidMarkerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidMarkerException.prototype);\n }\n};\nvar ExpiredImportTokenException = class _ExpiredImportTokenException extends KMSServiceException {\n static {\n __name(this, \"ExpiredImportTokenException\");\n }\n name = \"ExpiredImportTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredImportTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredImportTokenException.prototype);\n }\n};\nvar WrappingKeySpec = {\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\"\n};\nvar IncorrectKeyMaterialException = class _IncorrectKeyMaterialException extends KMSServiceException {\n static {\n __name(this, \"IncorrectKeyMaterialException\");\n }\n name = \"IncorrectKeyMaterialException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncorrectKeyMaterialException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncorrectKeyMaterialException.prototype);\n }\n};\nvar InvalidImportTokenException = class _InvalidImportTokenException extends KMSServiceException {\n static {\n __name(this, \"InvalidImportTokenException\");\n }\n name = \"InvalidImportTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidImportTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidImportTokenException.prototype);\n }\n};\nvar InvalidGrantIdException = class _InvalidGrantIdException extends KMSServiceException {\n static {\n __name(this, \"InvalidGrantIdException\");\n }\n name = \"InvalidGrantIdException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantIdException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantIdException.prototype);\n }\n};\nvar KMSInvalidMacException = class _KMSInvalidMacException extends KMSServiceException {\n static {\n __name(this, \"KMSInvalidMacException\");\n }\n name = \"KMSInvalidMacException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidMacException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidMacException.prototype);\n }\n};\nvar KMSInvalidSignatureException = class _KMSInvalidSignatureException extends KMSServiceException {\n static {\n __name(this, \"KMSInvalidSignatureException\");\n }\n name = \"KMSInvalidSignatureException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidSignatureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidSignatureException.prototype);\n }\n};\nvar RotationType = {\n AUTOMATIC: \"AUTOMATIC\",\n ON_DEMAND: \"ON_DEMAND\"\n};\nvar MessageType = {\n DIGEST: \"DIGEST\",\n RAW: \"RAW\"\n};\nvar XksProxyAuthenticationCredentialTypeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AccessKeyId && { AccessKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.RawSecretAccessKey && { RawSecretAccessKey: import_smithy_client.SENSITIVE_STRING }\n}), \"XksProxyAuthenticationCredentialTypeFilterSensitiveLog\");\nvar CreateCustomKeyStoreRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyStorePassword && { KeyStorePassword: import_smithy_client.SENSITIVE_STRING },\n ...obj.XksProxyAuthenticationCredential && {\n XksProxyAuthenticationCredential: XksProxyAuthenticationCredentialTypeFilterSensitiveLog(\n obj.XksProxyAuthenticationCredential\n )\n }\n}), \"CreateCustomKeyStoreRequestFilterSensitiveLog\");\nvar XksProxyConfigurationTypeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AccessKeyId && { AccessKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"XksProxyConfigurationTypeFilterSensitiveLog\");\nvar CustomKeyStoresListEntryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.XksProxyConfiguration && {\n XksProxyConfiguration: XksProxyConfigurationTypeFilterSensitiveLog(obj.XksProxyConfiguration)\n }\n}), \"CustomKeyStoresListEntryFilterSensitiveLog\");\nvar DecryptResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"DecryptResponseFilterSensitiveLog\");\nvar DeriveSharedSecretResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SharedSecret && { SharedSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"DeriveSharedSecretResponseFilterSensitiveLog\");\nvar DescribeCustomKeyStoresResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.CustomKeyStores && {\n CustomKeyStores: obj.CustomKeyStores.map((item) => CustomKeyStoresListEntryFilterSensitiveLog(item))\n }\n}), \"DescribeCustomKeyStoresResponseFilterSensitiveLog\");\nvar EncryptRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"EncryptRequestFilterSensitiveLog\");\nvar GenerateDataKeyResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateDataKeyResponseFilterSensitiveLog\");\nvar GenerateDataKeyPairResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PrivateKeyPlaintext && { PrivateKeyPlaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateDataKeyPairResponseFilterSensitiveLog\");\nvar GenerateMacRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateMacRequestFilterSensitiveLog\");\nvar GenerateRandomResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateRandomResponseFilterSensitiveLog\");\nvar GetParametersForImportResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PublicKey && { PublicKey: import_smithy_client.SENSITIVE_STRING }\n}), \"GetParametersForImportResponseFilterSensitiveLog\");\nvar SignRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"SignRequestFilterSensitiveLog\");\nvar UpdateCustomKeyStoreRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyStorePassword && { KeyStorePassword: import_smithy_client.SENSITIVE_STRING },\n ...obj.XksProxyAuthenticationCredential && {\n XksProxyAuthenticationCredential: XksProxyAuthenticationCredentialTypeFilterSensitiveLog(\n obj.XksProxyAuthenticationCredential\n )\n }\n}), \"UpdateCustomKeyStoreRequestFilterSensitiveLog\");\nvar VerifyRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"VerifyRequestFilterSensitiveLog\");\nvar VerifyMacRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"VerifyMacRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_CancelKeyDeletionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelKeyDeletion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelKeyDeletionCommand\");\nvar se_ConnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ConnectCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ConnectCustomKeyStoreCommand\");\nvar se_CreateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAliasCommand\");\nvar se_CreateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCustomKeyStoreCommand\");\nvar se_CreateGrantCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateGrant\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateGrantCommand\");\nvar se_CreateKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateKeyCommand\");\nvar se_DecryptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Decrypt\");\n let body;\n body = JSON.stringify(se_DecryptRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DecryptCommand\");\nvar se_DeleteAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAliasCommand\");\nvar se_DeleteCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCustomKeyStoreCommand\");\nvar se_DeleteImportedKeyMaterialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteImportedKeyMaterial\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteImportedKeyMaterialCommand\");\nvar se_DeriveSharedSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeriveSharedSecret\");\n let body;\n body = JSON.stringify(se_DeriveSharedSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeriveSharedSecretCommand\");\nvar se_DescribeCustomKeyStoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeCustomKeyStores\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCustomKeyStoresCommand\");\nvar se_DescribeKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeKeyCommand\");\nvar se_DisableKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisableKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableKeyCommand\");\nvar se_DisableKeyRotationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisableKeyRotation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableKeyRotationCommand\");\nvar se_DisconnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisconnectCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisconnectCustomKeyStoreCommand\");\nvar se_EnableKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"EnableKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableKeyCommand\");\nvar se_EnableKeyRotationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"EnableKeyRotation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableKeyRotationCommand\");\nvar se_EncryptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Encrypt\");\n let body;\n body = JSON.stringify(se_EncryptRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EncryptCommand\");\nvar se_GenerateDataKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKey\");\n let body;\n body = JSON.stringify(se_GenerateDataKeyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyCommand\");\nvar se_GenerateDataKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKeyPair\");\n let body;\n body = JSON.stringify(se_GenerateDataKeyPairRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyPairCommand\");\nvar se_GenerateDataKeyPairWithoutPlaintextCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKeyPairWithoutPlaintext\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyPairWithoutPlaintextCommand\");\nvar se_GenerateDataKeyWithoutPlaintextCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKeyWithoutPlaintext\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyWithoutPlaintextCommand\");\nvar se_GenerateMacCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateMac\");\n let body;\n body = JSON.stringify(se_GenerateMacRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateMacCommand\");\nvar se_GenerateRandomCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateRandom\");\n let body;\n body = JSON.stringify(se_GenerateRandomRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateRandomCommand\");\nvar se_GetKeyPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetKeyPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetKeyPolicyCommand\");\nvar se_GetKeyRotationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetKeyRotationStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetKeyRotationStatusCommand\");\nvar se_GetParametersForImportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParametersForImport\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParametersForImportCommand\");\nvar se_GetPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPublicKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPublicKeyCommand\");\nvar se_ImportKeyMaterialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ImportKeyMaterial\");\n let body;\n body = JSON.stringify(se_ImportKeyMaterialRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportKeyMaterialCommand\");\nvar se_ListAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAliases\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAliasesCommand\");\nvar se_ListGrantsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListGrants\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGrantsCommand\");\nvar se_ListKeyPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListKeyPolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListKeyPoliciesCommand\");\nvar se_ListKeyRotationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListKeyRotations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListKeyRotationsCommand\");\nvar se_ListKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListKeys\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListKeysCommand\");\nvar se_ListResourceTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceTags\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceTagsCommand\");\nvar se_ListRetirableGrantsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListRetirableGrants\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRetirableGrantsCommand\");\nvar se_PutKeyPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutKeyPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutKeyPolicyCommand\");\nvar se_ReEncryptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ReEncrypt\");\n let body;\n body = JSON.stringify(se_ReEncryptRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReEncryptCommand\");\nvar se_ReplicateKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ReplicateKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplicateKeyCommand\");\nvar se_RetireGrantCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RetireGrant\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RetireGrantCommand\");\nvar se_RevokeGrantCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RevokeGrant\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeGrantCommand\");\nvar se_RotateKeyOnDemandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RotateKeyOnDemand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RotateKeyOnDemandCommand\");\nvar se_ScheduleKeyDeletionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ScheduleKeyDeletion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ScheduleKeyDeletionCommand\");\nvar se_SignCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Sign\");\n let body;\n body = JSON.stringify(se_SignRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SignCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAliasCommand\");\nvar se_UpdateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateCustomKeyStoreCommand\");\nvar se_UpdateKeyDescriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateKeyDescription\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateKeyDescriptionCommand\");\nvar se_UpdatePrimaryRegionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdatePrimaryRegion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdatePrimaryRegionCommand\");\nvar se_VerifyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Verify\");\n let body;\n body = JSON.stringify(se_VerifyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_VerifyCommand\");\nvar se_VerifyMacCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"VerifyMac\");\n let body;\n body = JSON.stringify(se_VerifyMacRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_VerifyMacCommand\");\nvar de_CancelKeyDeletionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelKeyDeletionCommand\");\nvar de_ConnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ConnectCustomKeyStoreCommand\");\nvar de_CreateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateAliasCommand\");\nvar de_CreateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCustomKeyStoreCommand\");\nvar de_CreateGrantCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateGrantCommand\");\nvar de_CreateKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateKeyCommand\");\nvar de_DecryptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DecryptResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DecryptCommand\");\nvar de_DeleteAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAliasCommand\");\nvar de_DeleteCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCustomKeyStoreCommand\");\nvar de_DeleteImportedKeyMaterialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteImportedKeyMaterialCommand\");\nvar de_DeriveSharedSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeriveSharedSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeriveSharedSecretCommand\");\nvar de_DescribeCustomKeyStoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCustomKeyStoresResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCustomKeyStoresCommand\");\nvar de_DescribeKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeKeyCommand\");\nvar de_DisableKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisableKeyCommand\");\nvar de_DisableKeyRotationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisableKeyRotationCommand\");\nvar de_DisconnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisconnectCustomKeyStoreCommand\");\nvar de_EnableKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableKeyCommand\");\nvar de_EnableKeyRotationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableKeyRotationCommand\");\nvar de_EncryptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_EncryptResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EncryptCommand\");\nvar de_GenerateDataKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyCommand\");\nvar de_GenerateDataKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyPairResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyPairCommand\");\nvar de_GenerateDataKeyPairWithoutPlaintextCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyPairWithoutPlaintextResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyPairWithoutPlaintextCommand\");\nvar de_GenerateDataKeyWithoutPlaintextCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyWithoutPlaintextResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyWithoutPlaintextCommand\");\nvar de_GenerateMacCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateMacResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateMacCommand\");\nvar de_GenerateRandomCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateRandomResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateRandomCommand\");\nvar de_GetKeyPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetKeyPolicyCommand\");\nvar de_GetKeyRotationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetKeyRotationStatusResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetKeyRotationStatusCommand\");\nvar de_GetParametersForImportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParametersForImportResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParametersForImportCommand\");\nvar de_GetPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetPublicKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPublicKeyCommand\");\nvar de_ImportKeyMaterialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportKeyMaterialCommand\");\nvar de_ListAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListAliasesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAliasesCommand\");\nvar de_ListGrantsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListGrantsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGrantsCommand\");\nvar de_ListKeyPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListKeyPoliciesCommand\");\nvar de_ListKeyRotationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListKeyRotationsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListKeyRotationsCommand\");\nvar de_ListKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListKeysCommand\");\nvar de_ListResourceTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceTagsCommand\");\nvar de_ListRetirableGrantsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListGrantsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRetirableGrantsCommand\");\nvar de_PutKeyPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutKeyPolicyCommand\");\nvar de_ReEncryptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ReEncryptResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReEncryptCommand\");\nvar de_ReplicateKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ReplicateKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplicateKeyCommand\");\nvar de_RetireGrantCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RetireGrantCommand\");\nvar de_RevokeGrantCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RevokeGrantCommand\");\nvar de_RotateKeyOnDemandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RotateKeyOnDemandCommand\");\nvar de_ScheduleKeyDeletionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ScheduleKeyDeletionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ScheduleKeyDeletionCommand\");\nvar de_SignCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_SignResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SignCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAliasCommand\");\nvar de_UpdateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateCustomKeyStoreCommand\");\nvar de_UpdateKeyDescriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateKeyDescriptionCommand\");\nvar de_UpdatePrimaryRegionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdatePrimaryRegionCommand\");\nvar de_VerifyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_VerifyCommand\");\nvar de_VerifyMacCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_VerifyMacCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"DependencyTimeoutException\":\n case \"com.amazonaws.kms#DependencyTimeoutException\":\n throw await de_DependencyTimeoutExceptionRes(parsedOutput, context);\n case \"InvalidArnException\":\n case \"com.amazonaws.kms#InvalidArnException\":\n throw await de_InvalidArnExceptionRes(parsedOutput, context);\n case \"KMSInternalException\":\n case \"com.amazonaws.kms#KMSInternalException\":\n throw await de_KMSInternalExceptionRes(parsedOutput, context);\n case \"KMSInvalidStateException\":\n case \"com.amazonaws.kms#KMSInvalidStateException\":\n throw await de_KMSInvalidStateExceptionRes(parsedOutput, context);\n case \"NotFoundException\":\n case \"com.amazonaws.kms#NotFoundException\":\n throw await de_NotFoundExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterInvalidConfigurationException\":\n case \"com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException\":\n throw await de_CloudHsmClusterInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterNotActiveException\":\n case \"com.amazonaws.kms#CloudHsmClusterNotActiveException\":\n throw await de_CloudHsmClusterNotActiveExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreInvalidStateException\":\n case \"com.amazonaws.kms#CustomKeyStoreInvalidStateException\":\n throw await de_CustomKeyStoreInvalidStateExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreNotFoundException\":\n case \"com.amazonaws.kms#CustomKeyStoreNotFoundException\":\n throw await de_CustomKeyStoreNotFoundExceptionRes(parsedOutput, context);\n case \"AlreadyExistsException\":\n case \"com.amazonaws.kms#AlreadyExistsException\":\n throw await de_AlreadyExistsExceptionRes(parsedOutput, context);\n case \"InvalidAliasNameException\":\n case \"com.amazonaws.kms#InvalidAliasNameException\":\n throw await de_InvalidAliasNameExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.kms#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterInUseException\":\n case \"com.amazonaws.kms#CloudHsmClusterInUseException\":\n throw await de_CloudHsmClusterInUseExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterNotFoundException\":\n case \"com.amazonaws.kms#CloudHsmClusterNotFoundException\":\n throw await de_CloudHsmClusterNotFoundExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreNameInUseException\":\n case \"com.amazonaws.kms#CustomKeyStoreNameInUseException\":\n throw await de_CustomKeyStoreNameInUseExceptionRes(parsedOutput, context);\n case \"IncorrectTrustAnchorException\":\n case \"com.amazonaws.kms#IncorrectTrustAnchorException\":\n throw await de_IncorrectTrustAnchorExceptionRes(parsedOutput, context);\n case \"XksProxyIncorrectAuthenticationCredentialException\":\n case \"com.amazonaws.kms#XksProxyIncorrectAuthenticationCredentialException\":\n throw await de_XksProxyIncorrectAuthenticationCredentialExceptionRes(parsedOutput, context);\n case \"XksProxyInvalidConfigurationException\":\n case \"com.amazonaws.kms#XksProxyInvalidConfigurationException\":\n throw await de_XksProxyInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"XksProxyInvalidResponseException\":\n case \"com.amazonaws.kms#XksProxyInvalidResponseException\":\n throw await de_XksProxyInvalidResponseExceptionRes(parsedOutput, context);\n case \"XksProxyUriEndpointInUseException\":\n case \"com.amazonaws.kms#XksProxyUriEndpointInUseException\":\n throw await de_XksProxyUriEndpointInUseExceptionRes(parsedOutput, context);\n case \"XksProxyUriInUseException\":\n case \"com.amazonaws.kms#XksProxyUriInUseException\":\n throw await de_XksProxyUriInUseExceptionRes(parsedOutput, context);\n case \"XksProxyUriUnreachableException\":\n case \"com.amazonaws.kms#XksProxyUriUnreachableException\":\n throw await de_XksProxyUriUnreachableExceptionRes(parsedOutput, context);\n case \"XksProxyVpcEndpointServiceInUseException\":\n case \"com.amazonaws.kms#XksProxyVpcEndpointServiceInUseException\":\n throw await de_XksProxyVpcEndpointServiceInUseExceptionRes(parsedOutput, context);\n case \"XksProxyVpcEndpointServiceInvalidConfigurationException\":\n case \"com.amazonaws.kms#XksProxyVpcEndpointServiceInvalidConfigurationException\":\n throw await de_XksProxyVpcEndpointServiceInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"XksProxyVpcEndpointServiceNotFoundException\":\n case \"com.amazonaws.kms#XksProxyVpcEndpointServiceNotFoundException\":\n throw await de_XksProxyVpcEndpointServiceNotFoundExceptionRes(parsedOutput, context);\n case \"DisabledException\":\n case \"com.amazonaws.kms#DisabledException\":\n throw await de_DisabledExceptionRes(parsedOutput, context);\n case \"DryRunOperationException\":\n case \"com.amazonaws.kms#DryRunOperationException\":\n throw await de_DryRunOperationExceptionRes(parsedOutput, context);\n case \"InvalidGrantTokenException\":\n case \"com.amazonaws.kms#InvalidGrantTokenException\":\n throw await de_InvalidGrantTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.kms#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"TagException\":\n case \"com.amazonaws.kms#TagException\":\n throw await de_TagExceptionRes(parsedOutput, context);\n case \"UnsupportedOperationException\":\n case \"com.amazonaws.kms#UnsupportedOperationException\":\n throw await de_UnsupportedOperationExceptionRes(parsedOutput, context);\n case \"XksKeyAlreadyInUseException\":\n case \"com.amazonaws.kms#XksKeyAlreadyInUseException\":\n throw await de_XksKeyAlreadyInUseExceptionRes(parsedOutput, context);\n case \"XksKeyInvalidConfigurationException\":\n case \"com.amazonaws.kms#XksKeyInvalidConfigurationException\":\n throw await de_XksKeyInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"XksKeyNotFoundException\":\n case \"com.amazonaws.kms#XksKeyNotFoundException\":\n throw await de_XksKeyNotFoundExceptionRes(parsedOutput, context);\n case \"IncorrectKeyException\":\n case \"com.amazonaws.kms#IncorrectKeyException\":\n throw await de_IncorrectKeyExceptionRes(parsedOutput, context);\n case \"InvalidCiphertextException\":\n case \"com.amazonaws.kms#InvalidCiphertextException\":\n throw await de_InvalidCiphertextExceptionRes(parsedOutput, context);\n case \"InvalidKeyUsageException\":\n case \"com.amazonaws.kms#InvalidKeyUsageException\":\n throw await de_InvalidKeyUsageExceptionRes(parsedOutput, context);\n case \"KeyUnavailableException\":\n case \"com.amazonaws.kms#KeyUnavailableException\":\n throw await de_KeyUnavailableExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreHasCMKsException\":\n case \"com.amazonaws.kms#CustomKeyStoreHasCMKsException\":\n throw await de_CustomKeyStoreHasCMKsExceptionRes(parsedOutput, context);\n case \"InvalidMarkerException\":\n case \"com.amazonaws.kms#InvalidMarkerException\":\n throw await de_InvalidMarkerExceptionRes(parsedOutput, context);\n case \"ExpiredImportTokenException\":\n case \"com.amazonaws.kms#ExpiredImportTokenException\":\n throw await de_ExpiredImportTokenExceptionRes(parsedOutput, context);\n case \"IncorrectKeyMaterialException\":\n case \"com.amazonaws.kms#IncorrectKeyMaterialException\":\n throw await de_IncorrectKeyMaterialExceptionRes(parsedOutput, context);\n case \"InvalidImportTokenException\":\n case \"com.amazonaws.kms#InvalidImportTokenException\":\n throw await de_InvalidImportTokenExceptionRes(parsedOutput, context);\n case \"InvalidGrantIdException\":\n case \"com.amazonaws.kms#InvalidGrantIdException\":\n throw await de_InvalidGrantIdExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.kms#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterNotRelatedException\":\n case \"com.amazonaws.kms#CloudHsmClusterNotRelatedException\":\n throw await de_CloudHsmClusterNotRelatedExceptionRes(parsedOutput, context);\n case \"KMSInvalidSignatureException\":\n case \"com.amazonaws.kms#KMSInvalidSignatureException\":\n throw await de_KMSInvalidSignatureExceptionRes(parsedOutput, context);\n case \"KMSInvalidMacException\":\n case \"com.amazonaws.kms#KMSInvalidMacException\":\n throw await de_KMSInvalidMacExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AlreadyExistsExceptionRes\");\nvar de_CloudHsmClusterInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterInUseExceptionRes\");\nvar de_CloudHsmClusterInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterInvalidConfigurationExceptionRes\");\nvar de_CloudHsmClusterNotActiveExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterNotActiveException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterNotActiveExceptionRes\");\nvar de_CloudHsmClusterNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterNotFoundExceptionRes\");\nvar de_CloudHsmClusterNotRelatedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterNotRelatedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterNotRelatedExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_CustomKeyStoreHasCMKsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreHasCMKsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreHasCMKsExceptionRes\");\nvar de_CustomKeyStoreInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreInvalidStateExceptionRes\");\nvar de_CustomKeyStoreNameInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreNameInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreNameInUseExceptionRes\");\nvar de_CustomKeyStoreNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreNotFoundExceptionRes\");\nvar de_DependencyTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DependencyTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DependencyTimeoutExceptionRes\");\nvar de_DisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DisabledExceptionRes\");\nvar de_DryRunOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DryRunOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DryRunOperationExceptionRes\");\nvar de_ExpiredImportTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExpiredImportTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExpiredImportTokenExceptionRes\");\nvar de_IncorrectKeyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncorrectKeyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncorrectKeyExceptionRes\");\nvar de_IncorrectKeyMaterialExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncorrectKeyMaterialException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncorrectKeyMaterialExceptionRes\");\nvar de_IncorrectTrustAnchorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncorrectTrustAnchorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncorrectTrustAnchorExceptionRes\");\nvar de_InvalidAliasNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAliasNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAliasNameExceptionRes\");\nvar de_InvalidArnExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidArnException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidArnExceptionRes\");\nvar de_InvalidCiphertextExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidCiphertextException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCiphertextExceptionRes\");\nvar de_InvalidGrantIdExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidGrantIdException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidGrantIdExceptionRes\");\nvar de_InvalidGrantTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidGrantTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidGrantTokenExceptionRes\");\nvar de_InvalidImportTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidImportTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidImportTokenExceptionRes\");\nvar de_InvalidKeyUsageExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidKeyUsageException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidKeyUsageExceptionRes\");\nvar de_InvalidMarkerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidMarkerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidMarkerExceptionRes\");\nvar de_KeyUnavailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KeyUnavailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KeyUnavailableExceptionRes\");\nvar de_KMSInternalExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInternalException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInternalExceptionRes\");\nvar de_KMSInvalidMacExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInvalidMacException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInvalidMacExceptionRes\");\nvar de_KMSInvalidSignatureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInvalidSignatureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInvalidSignatureExceptionRes\");\nvar de_KMSInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInvalidStateExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_NotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotFoundExceptionRes\");\nvar de_TagExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TagException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TagExceptionRes\");\nvar de_UnsupportedOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedOperationExceptionRes\");\nvar de_XksKeyAlreadyInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksKeyAlreadyInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksKeyAlreadyInUseExceptionRes\");\nvar de_XksKeyInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksKeyInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksKeyInvalidConfigurationExceptionRes\");\nvar de_XksKeyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksKeyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksKeyNotFoundExceptionRes\");\nvar de_XksProxyIncorrectAuthenticationCredentialExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyIncorrectAuthenticationCredentialException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyIncorrectAuthenticationCredentialExceptionRes\");\nvar de_XksProxyInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyInvalidConfigurationExceptionRes\");\nvar de_XksProxyInvalidResponseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyInvalidResponseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyInvalidResponseExceptionRes\");\nvar de_XksProxyUriEndpointInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyUriEndpointInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyUriEndpointInUseExceptionRes\");\nvar de_XksProxyUriInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyUriInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyUriInUseExceptionRes\");\nvar de_XksProxyUriUnreachableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyUriUnreachableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyUriUnreachableExceptionRes\");\nvar de_XksProxyVpcEndpointServiceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyVpcEndpointServiceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyVpcEndpointServiceInUseExceptionRes\");\nvar de_XksProxyVpcEndpointServiceInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyVpcEndpointServiceInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyVpcEndpointServiceInvalidConfigurationExceptionRes\");\nvar de_XksProxyVpcEndpointServiceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyVpcEndpointServiceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyVpcEndpointServiceNotFoundExceptionRes\");\nvar se_DecryptRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n CiphertextBlob: context.base64Encoder,\n DryRun: [],\n EncryptionAlgorithm: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_DecryptRequest\");\nvar se_DeriveSharedSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyAgreementAlgorithm: [],\n KeyId: [],\n PublicKey: context.base64Encoder,\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_DeriveSharedSecretRequest\");\nvar se_EncryptRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n EncryptionAlgorithm: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Plaintext: context.base64Encoder\n });\n}, \"se_EncryptRequest\");\nvar se_GenerateDataKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n KeyPairSpec: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_GenerateDataKeyPairRequest\");\nvar se_GenerateDataKeyRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n KeySpec: [],\n NumberOfBytes: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_GenerateDataKeyRequest\");\nvar se_GenerateMacRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n MacAlgorithm: [],\n Message: context.base64Encoder\n });\n}, \"se_GenerateMacRequest\");\nvar se_GenerateRandomRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n CustomKeyStoreId: [],\n NumberOfBytes: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_GenerateRandomRequest\");\nvar se_ImportKeyMaterialRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n EncryptedKeyMaterial: context.base64Encoder,\n ExpirationModel: [],\n ImportToken: context.base64Encoder,\n KeyId: [],\n ValidTo: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ValidTo\")\n });\n}, \"se_ImportKeyMaterialRequest\");\nvar se_RecipientInfo = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AttestationDocument: context.base64Encoder,\n KeyEncryptionAlgorithm: []\n });\n}, \"se_RecipientInfo\");\nvar se_ReEncryptRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n CiphertextBlob: context.base64Encoder,\n DestinationEncryptionAlgorithm: [],\n DestinationEncryptionContext: import_smithy_client._json,\n DestinationKeyId: [],\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n SourceEncryptionAlgorithm: [],\n SourceEncryptionContext: import_smithy_client._json,\n SourceKeyId: []\n });\n}, \"se_ReEncryptRequest\");\nvar se_SignRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Message: context.base64Encoder,\n MessageType: [],\n SigningAlgorithm: []\n });\n}, \"se_SignRequest\");\nvar se_VerifyMacRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Mac: context.base64Encoder,\n MacAlgorithm: [],\n Message: context.base64Encoder\n });\n}, \"se_VerifyMacRequest\");\nvar se_VerifyRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Message: context.base64Encoder,\n MessageType: [],\n Signature: context.base64Encoder,\n SigningAlgorithm: []\n });\n}, \"se_VerifyRequest\");\nvar de_AliasList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AliasListEntry(entry, context);\n });\n return retVal;\n}, \"de_AliasList\");\nvar de_AliasListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AliasArn: import_smithy_client.expectString,\n AliasName: import_smithy_client.expectString,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n LastUpdatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastUpdatedDate\"),\n TargetKeyId: import_smithy_client.expectString\n });\n}, \"de_AliasListEntry\");\nvar de_CreateKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyMetadata: /* @__PURE__ */ __name((_) => de_KeyMetadata(_, context), \"KeyMetadata\")\n });\n}, \"de_CreateKeyResponse\");\nvar de_CustomKeyStoresList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CustomKeyStoresListEntry(entry, context);\n });\n return retVal;\n}, \"de_CustomKeyStoresList\");\nvar de_CustomKeyStoresListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CloudHsmClusterId: import_smithy_client.expectString,\n ConnectionErrorCode: import_smithy_client.expectString,\n ConnectionState: import_smithy_client.expectString,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n CustomKeyStoreId: import_smithy_client.expectString,\n CustomKeyStoreName: import_smithy_client.expectString,\n CustomKeyStoreType: import_smithy_client.expectString,\n TrustAnchorCertificate: import_smithy_client.expectString,\n XksProxyConfiguration: import_smithy_client._json\n });\n}, \"de_CustomKeyStoresListEntry\");\nvar de_DecryptResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n EncryptionAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n Plaintext: context.base64Decoder\n });\n}, \"de_DecryptResponse\");\nvar de_DeriveSharedSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n KeyAgreementAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n KeyOrigin: import_smithy_client.expectString,\n SharedSecret: context.base64Decoder\n });\n}, \"de_DeriveSharedSecretResponse\");\nvar de_DescribeCustomKeyStoresResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CustomKeyStores: /* @__PURE__ */ __name((_) => de_CustomKeyStoresList(_, context), \"CustomKeyStores\"),\n NextMarker: import_smithy_client.expectString,\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_DescribeCustomKeyStoresResponse\");\nvar de_DescribeKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyMetadata: /* @__PURE__ */ __name((_) => de_KeyMetadata(_, context), \"KeyMetadata\")\n });\n}, \"de_DescribeKeyResponse\");\nvar de_EncryptResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n EncryptionAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString\n });\n}, \"de_EncryptResponse\");\nvar de_GenerateDataKeyPairResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n KeyId: import_smithy_client.expectString,\n KeyPairSpec: import_smithy_client.expectString,\n PrivateKeyCiphertextBlob: context.base64Decoder,\n PrivateKeyPlaintext: context.base64Decoder,\n PublicKey: context.base64Decoder\n });\n}, \"de_GenerateDataKeyPairResponse\");\nvar de_GenerateDataKeyPairWithoutPlaintextResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n KeyPairSpec: import_smithy_client.expectString,\n PrivateKeyCiphertextBlob: context.base64Decoder,\n PublicKey: context.base64Decoder\n });\n}, \"de_GenerateDataKeyPairWithoutPlaintextResponse\");\nvar de_GenerateDataKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n CiphertextForRecipient: context.base64Decoder,\n KeyId: import_smithy_client.expectString,\n Plaintext: context.base64Decoder\n });\n}, \"de_GenerateDataKeyResponse\");\nvar de_GenerateDataKeyWithoutPlaintextResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n KeyId: import_smithy_client.expectString\n });\n}, \"de_GenerateDataKeyWithoutPlaintextResponse\");\nvar de_GenerateMacResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n Mac: context.base64Decoder,\n MacAlgorithm: import_smithy_client.expectString\n });\n}, \"de_GenerateMacResponse\");\nvar de_GenerateRandomResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n Plaintext: context.base64Decoder\n });\n}, \"de_GenerateRandomResponse\");\nvar de_GetKeyRotationStatusResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n KeyRotationEnabled: import_smithy_client.expectBoolean,\n NextRotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"NextRotationDate\"),\n OnDemandRotationStartDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"OnDemandRotationStartDate\"),\n RotationPeriodInDays: import_smithy_client.expectInt32\n });\n}, \"de_GetKeyRotationStatusResponse\");\nvar de_GetParametersForImportResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ImportToken: context.base64Decoder,\n KeyId: import_smithy_client.expectString,\n ParametersValidTo: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ParametersValidTo\"),\n PublicKey: context.base64Decoder\n });\n}, \"de_GetParametersForImportResponse\");\nvar de_GetPublicKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CustomerMasterKeySpec: import_smithy_client.expectString,\n EncryptionAlgorithms: import_smithy_client._json,\n KeyAgreementAlgorithms: import_smithy_client._json,\n KeyId: import_smithy_client.expectString,\n KeySpec: import_smithy_client.expectString,\n KeyUsage: import_smithy_client.expectString,\n PublicKey: context.base64Decoder,\n SigningAlgorithms: import_smithy_client._json\n });\n}, \"de_GetPublicKeyResponse\");\nvar de_GrantList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_GrantListEntry(entry, context);\n });\n return retVal;\n}, \"de_GrantList\");\nvar de_GrantListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Constraints: import_smithy_client._json,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n GrantId: import_smithy_client.expectString,\n GranteePrincipal: import_smithy_client.expectString,\n IssuingAccount: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Operations: import_smithy_client._json,\n RetiringPrincipal: import_smithy_client.expectString\n });\n}, \"de_GrantListEntry\");\nvar de_KeyMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AWSAccountId: import_smithy_client.expectString,\n Arn: import_smithy_client.expectString,\n CloudHsmClusterId: import_smithy_client.expectString,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n CustomKeyStoreId: import_smithy_client.expectString,\n CustomerMasterKeySpec: import_smithy_client.expectString,\n DeletionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionDate\"),\n Description: import_smithy_client.expectString,\n Enabled: import_smithy_client.expectBoolean,\n EncryptionAlgorithms: import_smithy_client._json,\n ExpirationModel: import_smithy_client.expectString,\n KeyAgreementAlgorithms: import_smithy_client._json,\n KeyId: import_smithy_client.expectString,\n KeyManager: import_smithy_client.expectString,\n KeySpec: import_smithy_client.expectString,\n KeyState: import_smithy_client.expectString,\n KeyUsage: import_smithy_client.expectString,\n MacAlgorithms: import_smithy_client._json,\n MultiRegion: import_smithy_client.expectBoolean,\n MultiRegionConfiguration: import_smithy_client._json,\n Origin: import_smithy_client.expectString,\n PendingDeletionWindowInDays: import_smithy_client.expectInt32,\n SigningAlgorithms: import_smithy_client._json,\n ValidTo: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ValidTo\"),\n XksKeyConfiguration: import_smithy_client._json\n });\n}, \"de_KeyMetadata\");\nvar de_ListAliasesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Aliases: /* @__PURE__ */ __name((_) => de_AliasList(_, context), \"Aliases\"),\n NextMarker: import_smithy_client.expectString,\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_ListAliasesResponse\");\nvar de_ListGrantsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Grants: /* @__PURE__ */ __name((_) => de_GrantList(_, context), \"Grants\"),\n NextMarker: import_smithy_client.expectString,\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_ListGrantsResponse\");\nvar de_ListKeyRotationsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextMarker: import_smithy_client.expectString,\n Rotations: /* @__PURE__ */ __name((_) => de_RotationsList(_, context), \"Rotations\"),\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_ListKeyRotationsResponse\");\nvar de_ReEncryptResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n DestinationEncryptionAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n SourceEncryptionAlgorithm: import_smithy_client.expectString,\n SourceKeyId: import_smithy_client.expectString\n });\n}, \"de_ReEncryptResponse\");\nvar de_ReplicateKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ReplicaKeyMetadata: /* @__PURE__ */ __name((_) => de_KeyMetadata(_, context), \"ReplicaKeyMetadata\"),\n ReplicaPolicy: import_smithy_client.expectString,\n ReplicaTags: import_smithy_client._json\n });\n}, \"de_ReplicateKeyResponse\");\nvar de_RotationsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_RotationsListEntry(entry, context);\n });\n return retVal;\n}, \"de_RotationsList\");\nvar de_RotationsListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n RotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RotationDate\"),\n RotationType: import_smithy_client.expectString\n });\n}, \"de_RotationsListEntry\");\nvar de_ScheduleKeyDeletionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DeletionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionDate\"),\n KeyId: import_smithy_client.expectString,\n KeyState: import_smithy_client.expectString,\n PendingWindowInDays: import_smithy_client.expectInt32\n });\n}, \"de_ScheduleKeyDeletionResponse\");\nvar de_SignResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n Signature: context.base64Decoder,\n SigningAlgorithm: import_smithy_client.expectString\n });\n}, \"de_SignResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(KMSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `TrentService.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CancelKeyDeletionCommand.ts\nvar CancelKeyDeletionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CancelKeyDeletion\", {}).n(\"KMSClient\", \"CancelKeyDeletionCommand\").f(void 0, void 0).ser(se_CancelKeyDeletionCommand).de(de_CancelKeyDeletionCommand).build() {\n static {\n __name(this, \"CancelKeyDeletionCommand\");\n }\n};\n\n// src/commands/ConnectCustomKeyStoreCommand.ts\n\n\n\nvar ConnectCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ConnectCustomKeyStore\", {}).n(\"KMSClient\", \"ConnectCustomKeyStoreCommand\").f(void 0, void 0).ser(se_ConnectCustomKeyStoreCommand).de(de_ConnectCustomKeyStoreCommand).build() {\n static {\n __name(this, \"ConnectCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/CreateAliasCommand.ts\n\n\n\nvar CreateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateAlias\", {}).n(\"KMSClient\", \"CreateAliasCommand\").f(void 0, void 0).ser(se_CreateAliasCommand).de(de_CreateAliasCommand).build() {\n static {\n __name(this, \"CreateAliasCommand\");\n }\n};\n\n// src/commands/CreateCustomKeyStoreCommand.ts\n\n\n\nvar CreateCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateCustomKeyStore\", {}).n(\"KMSClient\", \"CreateCustomKeyStoreCommand\").f(CreateCustomKeyStoreRequestFilterSensitiveLog, void 0).ser(se_CreateCustomKeyStoreCommand).de(de_CreateCustomKeyStoreCommand).build() {\n static {\n __name(this, \"CreateCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/CreateGrantCommand.ts\n\n\n\nvar CreateGrantCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateGrant\", {}).n(\"KMSClient\", \"CreateGrantCommand\").f(void 0, void 0).ser(se_CreateGrantCommand).de(de_CreateGrantCommand).build() {\n static {\n __name(this, \"CreateGrantCommand\");\n }\n};\n\n// src/commands/CreateKeyCommand.ts\n\n\n\nvar CreateKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateKey\", {}).n(\"KMSClient\", \"CreateKeyCommand\").f(void 0, void 0).ser(se_CreateKeyCommand).de(de_CreateKeyCommand).build() {\n static {\n __name(this, \"CreateKeyCommand\");\n }\n};\n\n// src/commands/DecryptCommand.ts\n\n\n\nvar DecryptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Decrypt\", {}).n(\"KMSClient\", \"DecryptCommand\").f(void 0, DecryptResponseFilterSensitiveLog).ser(se_DecryptCommand).de(de_DecryptCommand).build() {\n static {\n __name(this, \"DecryptCommand\");\n }\n};\n\n// src/commands/DeleteAliasCommand.ts\n\n\n\nvar DeleteAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeleteAlias\", {}).n(\"KMSClient\", \"DeleteAliasCommand\").f(void 0, void 0).ser(se_DeleteAliasCommand).de(de_DeleteAliasCommand).build() {\n static {\n __name(this, \"DeleteAliasCommand\");\n }\n};\n\n// src/commands/DeleteCustomKeyStoreCommand.ts\n\n\n\nvar DeleteCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeleteCustomKeyStore\", {}).n(\"KMSClient\", \"DeleteCustomKeyStoreCommand\").f(void 0, void 0).ser(se_DeleteCustomKeyStoreCommand).de(de_DeleteCustomKeyStoreCommand).build() {\n static {\n __name(this, \"DeleteCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/DeleteImportedKeyMaterialCommand.ts\n\n\n\nvar DeleteImportedKeyMaterialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeleteImportedKeyMaterial\", {}).n(\"KMSClient\", \"DeleteImportedKeyMaterialCommand\").f(void 0, void 0).ser(se_DeleteImportedKeyMaterialCommand).de(de_DeleteImportedKeyMaterialCommand).build() {\n static {\n __name(this, \"DeleteImportedKeyMaterialCommand\");\n }\n};\n\n// src/commands/DeriveSharedSecretCommand.ts\n\n\n\nvar DeriveSharedSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeriveSharedSecret\", {}).n(\"KMSClient\", \"DeriveSharedSecretCommand\").f(void 0, DeriveSharedSecretResponseFilterSensitiveLog).ser(se_DeriveSharedSecretCommand).de(de_DeriveSharedSecretCommand).build() {\n static {\n __name(this, \"DeriveSharedSecretCommand\");\n }\n};\n\n// src/commands/DescribeCustomKeyStoresCommand.ts\n\n\n\nvar DescribeCustomKeyStoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DescribeCustomKeyStores\", {}).n(\"KMSClient\", \"DescribeCustomKeyStoresCommand\").f(void 0, DescribeCustomKeyStoresResponseFilterSensitiveLog).ser(se_DescribeCustomKeyStoresCommand).de(de_DescribeCustomKeyStoresCommand).build() {\n static {\n __name(this, \"DescribeCustomKeyStoresCommand\");\n }\n};\n\n// src/commands/DescribeKeyCommand.ts\n\n\n\nvar DescribeKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DescribeKey\", {}).n(\"KMSClient\", \"DescribeKeyCommand\").f(void 0, void 0).ser(se_DescribeKeyCommand).de(de_DescribeKeyCommand).build() {\n static {\n __name(this, \"DescribeKeyCommand\");\n }\n};\n\n// src/commands/DisableKeyCommand.ts\n\n\n\nvar DisableKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DisableKey\", {}).n(\"KMSClient\", \"DisableKeyCommand\").f(void 0, void 0).ser(se_DisableKeyCommand).de(de_DisableKeyCommand).build() {\n static {\n __name(this, \"DisableKeyCommand\");\n }\n};\n\n// src/commands/DisableKeyRotationCommand.ts\n\n\n\nvar DisableKeyRotationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DisableKeyRotation\", {}).n(\"KMSClient\", \"DisableKeyRotationCommand\").f(void 0, void 0).ser(se_DisableKeyRotationCommand).de(de_DisableKeyRotationCommand).build() {\n static {\n __name(this, \"DisableKeyRotationCommand\");\n }\n};\n\n// src/commands/DisconnectCustomKeyStoreCommand.ts\n\n\n\nvar DisconnectCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DisconnectCustomKeyStore\", {}).n(\"KMSClient\", \"DisconnectCustomKeyStoreCommand\").f(void 0, void 0).ser(se_DisconnectCustomKeyStoreCommand).de(de_DisconnectCustomKeyStoreCommand).build() {\n static {\n __name(this, \"DisconnectCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/EnableKeyCommand.ts\n\n\n\nvar EnableKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"EnableKey\", {}).n(\"KMSClient\", \"EnableKeyCommand\").f(void 0, void 0).ser(se_EnableKeyCommand).de(de_EnableKeyCommand).build() {\n static {\n __name(this, \"EnableKeyCommand\");\n }\n};\n\n// src/commands/EnableKeyRotationCommand.ts\n\n\n\nvar EnableKeyRotationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"EnableKeyRotation\", {}).n(\"KMSClient\", \"EnableKeyRotationCommand\").f(void 0, void 0).ser(se_EnableKeyRotationCommand).de(de_EnableKeyRotationCommand).build() {\n static {\n __name(this, \"EnableKeyRotationCommand\");\n }\n};\n\n// src/commands/EncryptCommand.ts\n\n\n\nvar EncryptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Encrypt\", {}).n(\"KMSClient\", \"EncryptCommand\").f(EncryptRequestFilterSensitiveLog, void 0).ser(se_EncryptCommand).de(de_EncryptCommand).build() {\n static {\n __name(this, \"EncryptCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyCommand.ts\n\n\n\nvar GenerateDataKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKey\", {}).n(\"KMSClient\", \"GenerateDataKeyCommand\").f(void 0, GenerateDataKeyResponseFilterSensitiveLog).ser(se_GenerateDataKeyCommand).de(de_GenerateDataKeyCommand).build() {\n static {\n __name(this, \"GenerateDataKeyCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyPairCommand.ts\n\n\n\nvar GenerateDataKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKeyPair\", {}).n(\"KMSClient\", \"GenerateDataKeyPairCommand\").f(void 0, GenerateDataKeyPairResponseFilterSensitiveLog).ser(se_GenerateDataKeyPairCommand).de(de_GenerateDataKeyPairCommand).build() {\n static {\n __name(this, \"GenerateDataKeyPairCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyPairWithoutPlaintextCommand.ts\n\n\n\nvar GenerateDataKeyPairWithoutPlaintextCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKeyPairWithoutPlaintext\", {}).n(\"KMSClient\", \"GenerateDataKeyPairWithoutPlaintextCommand\").f(void 0, void 0).ser(se_GenerateDataKeyPairWithoutPlaintextCommand).de(de_GenerateDataKeyPairWithoutPlaintextCommand).build() {\n static {\n __name(this, \"GenerateDataKeyPairWithoutPlaintextCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyWithoutPlaintextCommand.ts\n\n\n\nvar GenerateDataKeyWithoutPlaintextCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKeyWithoutPlaintext\", {}).n(\"KMSClient\", \"GenerateDataKeyWithoutPlaintextCommand\").f(void 0, void 0).ser(se_GenerateDataKeyWithoutPlaintextCommand).de(de_GenerateDataKeyWithoutPlaintextCommand).build() {\n static {\n __name(this, \"GenerateDataKeyWithoutPlaintextCommand\");\n }\n};\n\n// src/commands/GenerateMacCommand.ts\n\n\n\nvar GenerateMacCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateMac\", {}).n(\"KMSClient\", \"GenerateMacCommand\").f(GenerateMacRequestFilterSensitiveLog, void 0).ser(se_GenerateMacCommand).de(de_GenerateMacCommand).build() {\n static {\n __name(this, \"GenerateMacCommand\");\n }\n};\n\n// src/commands/GenerateRandomCommand.ts\n\n\n\nvar GenerateRandomCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateRandom\", {}).n(\"KMSClient\", \"GenerateRandomCommand\").f(void 0, GenerateRandomResponseFilterSensitiveLog).ser(se_GenerateRandomCommand).de(de_GenerateRandomCommand).build() {\n static {\n __name(this, \"GenerateRandomCommand\");\n }\n};\n\n// src/commands/GetKeyPolicyCommand.ts\n\n\n\nvar GetKeyPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetKeyPolicy\", {}).n(\"KMSClient\", \"GetKeyPolicyCommand\").f(void 0, void 0).ser(se_GetKeyPolicyCommand).de(de_GetKeyPolicyCommand).build() {\n static {\n __name(this, \"GetKeyPolicyCommand\");\n }\n};\n\n// src/commands/GetKeyRotationStatusCommand.ts\n\n\n\nvar GetKeyRotationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetKeyRotationStatus\", {}).n(\"KMSClient\", \"GetKeyRotationStatusCommand\").f(void 0, void 0).ser(se_GetKeyRotationStatusCommand).de(de_GetKeyRotationStatusCommand).build() {\n static {\n __name(this, \"GetKeyRotationStatusCommand\");\n }\n};\n\n// src/commands/GetParametersForImportCommand.ts\n\n\n\nvar GetParametersForImportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetParametersForImport\", {}).n(\"KMSClient\", \"GetParametersForImportCommand\").f(void 0, GetParametersForImportResponseFilterSensitiveLog).ser(se_GetParametersForImportCommand).de(de_GetParametersForImportCommand).build() {\n static {\n __name(this, \"GetParametersForImportCommand\");\n }\n};\n\n// src/commands/GetPublicKeyCommand.ts\n\n\n\nvar GetPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetPublicKey\", {}).n(\"KMSClient\", \"GetPublicKeyCommand\").f(void 0, void 0).ser(se_GetPublicKeyCommand).de(de_GetPublicKeyCommand).build() {\n static {\n __name(this, \"GetPublicKeyCommand\");\n }\n};\n\n// src/commands/ImportKeyMaterialCommand.ts\n\n\n\nvar ImportKeyMaterialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ImportKeyMaterial\", {}).n(\"KMSClient\", \"ImportKeyMaterialCommand\").f(void 0, void 0).ser(se_ImportKeyMaterialCommand).de(de_ImportKeyMaterialCommand).build() {\n static {\n __name(this, \"ImportKeyMaterialCommand\");\n }\n};\n\n// src/commands/ListAliasesCommand.ts\n\n\n\nvar ListAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListAliases\", {}).n(\"KMSClient\", \"ListAliasesCommand\").f(void 0, void 0).ser(se_ListAliasesCommand).de(de_ListAliasesCommand).build() {\n static {\n __name(this, \"ListAliasesCommand\");\n }\n};\n\n// src/commands/ListGrantsCommand.ts\n\n\n\nvar ListGrantsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListGrants\", {}).n(\"KMSClient\", \"ListGrantsCommand\").f(void 0, void 0).ser(se_ListGrantsCommand).de(de_ListGrantsCommand).build() {\n static {\n __name(this, \"ListGrantsCommand\");\n }\n};\n\n// src/commands/ListKeyPoliciesCommand.ts\n\n\n\nvar ListKeyPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListKeyPolicies\", {}).n(\"KMSClient\", \"ListKeyPoliciesCommand\").f(void 0, void 0).ser(se_ListKeyPoliciesCommand).de(de_ListKeyPoliciesCommand).build() {\n static {\n __name(this, \"ListKeyPoliciesCommand\");\n }\n};\n\n// src/commands/ListKeyRotationsCommand.ts\n\n\n\nvar ListKeyRotationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListKeyRotations\", {}).n(\"KMSClient\", \"ListKeyRotationsCommand\").f(void 0, void 0).ser(se_ListKeyRotationsCommand).de(de_ListKeyRotationsCommand).build() {\n static {\n __name(this, \"ListKeyRotationsCommand\");\n }\n};\n\n// src/commands/ListKeysCommand.ts\n\n\n\nvar ListKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListKeys\", {}).n(\"KMSClient\", \"ListKeysCommand\").f(void 0, void 0).ser(se_ListKeysCommand).de(de_ListKeysCommand).build() {\n static {\n __name(this, \"ListKeysCommand\");\n }\n};\n\n// src/commands/ListResourceTagsCommand.ts\n\n\n\nvar ListResourceTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListResourceTags\", {}).n(\"KMSClient\", \"ListResourceTagsCommand\").f(void 0, void 0).ser(se_ListResourceTagsCommand).de(de_ListResourceTagsCommand).build() {\n static {\n __name(this, \"ListResourceTagsCommand\");\n }\n};\n\n// src/commands/ListRetirableGrantsCommand.ts\n\n\n\nvar ListRetirableGrantsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListRetirableGrants\", {}).n(\"KMSClient\", \"ListRetirableGrantsCommand\").f(void 0, void 0).ser(se_ListRetirableGrantsCommand).de(de_ListRetirableGrantsCommand).build() {\n static {\n __name(this, \"ListRetirableGrantsCommand\");\n }\n};\n\n// src/commands/PutKeyPolicyCommand.ts\n\n\n\nvar PutKeyPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"PutKeyPolicy\", {}).n(\"KMSClient\", \"PutKeyPolicyCommand\").f(void 0, void 0).ser(se_PutKeyPolicyCommand).de(de_PutKeyPolicyCommand).build() {\n static {\n __name(this, \"PutKeyPolicyCommand\");\n }\n};\n\n// src/commands/ReEncryptCommand.ts\n\n\n\nvar ReEncryptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ReEncrypt\", {}).n(\"KMSClient\", \"ReEncryptCommand\").f(void 0, void 0).ser(se_ReEncryptCommand).de(de_ReEncryptCommand).build() {\n static {\n __name(this, \"ReEncryptCommand\");\n }\n};\n\n// src/commands/ReplicateKeyCommand.ts\n\n\n\nvar ReplicateKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ReplicateKey\", {}).n(\"KMSClient\", \"ReplicateKeyCommand\").f(void 0, void 0).ser(se_ReplicateKeyCommand).de(de_ReplicateKeyCommand).build() {\n static {\n __name(this, \"ReplicateKeyCommand\");\n }\n};\n\n// src/commands/RetireGrantCommand.ts\n\n\n\nvar RetireGrantCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"RetireGrant\", {}).n(\"KMSClient\", \"RetireGrantCommand\").f(void 0, void 0).ser(se_RetireGrantCommand).de(de_RetireGrantCommand).build() {\n static {\n __name(this, \"RetireGrantCommand\");\n }\n};\n\n// src/commands/RevokeGrantCommand.ts\n\n\n\nvar RevokeGrantCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"RevokeGrant\", {}).n(\"KMSClient\", \"RevokeGrantCommand\").f(void 0, void 0).ser(se_RevokeGrantCommand).de(de_RevokeGrantCommand).build() {\n static {\n __name(this, \"RevokeGrantCommand\");\n }\n};\n\n// src/commands/RotateKeyOnDemandCommand.ts\n\n\n\nvar RotateKeyOnDemandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"RotateKeyOnDemand\", {}).n(\"KMSClient\", \"RotateKeyOnDemandCommand\").f(void 0, void 0).ser(se_RotateKeyOnDemandCommand).de(de_RotateKeyOnDemandCommand).build() {\n static {\n __name(this, \"RotateKeyOnDemandCommand\");\n }\n};\n\n// src/commands/ScheduleKeyDeletionCommand.ts\n\n\n\nvar ScheduleKeyDeletionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ScheduleKeyDeletion\", {}).n(\"KMSClient\", \"ScheduleKeyDeletionCommand\").f(void 0, void 0).ser(se_ScheduleKeyDeletionCommand).de(de_ScheduleKeyDeletionCommand).build() {\n static {\n __name(this, \"ScheduleKeyDeletionCommand\");\n }\n};\n\n// src/commands/SignCommand.ts\n\n\n\nvar SignCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Sign\", {}).n(\"KMSClient\", \"SignCommand\").f(SignRequestFilterSensitiveLog, void 0).ser(se_SignCommand).de(de_SignCommand).build() {\n static {\n __name(this, \"SignCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"TagResource\", {}).n(\"KMSClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UntagResource\", {}).n(\"KMSClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateAliasCommand.ts\n\n\n\nvar UpdateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdateAlias\", {}).n(\"KMSClient\", \"UpdateAliasCommand\").f(void 0, void 0).ser(se_UpdateAliasCommand).de(de_UpdateAliasCommand).build() {\n static {\n __name(this, \"UpdateAliasCommand\");\n }\n};\n\n// src/commands/UpdateCustomKeyStoreCommand.ts\n\n\n\nvar UpdateCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdateCustomKeyStore\", {}).n(\"KMSClient\", \"UpdateCustomKeyStoreCommand\").f(UpdateCustomKeyStoreRequestFilterSensitiveLog, void 0).ser(se_UpdateCustomKeyStoreCommand).de(de_UpdateCustomKeyStoreCommand).build() {\n static {\n __name(this, \"UpdateCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/UpdateKeyDescriptionCommand.ts\n\n\n\nvar UpdateKeyDescriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdateKeyDescription\", {}).n(\"KMSClient\", \"UpdateKeyDescriptionCommand\").f(void 0, void 0).ser(se_UpdateKeyDescriptionCommand).de(de_UpdateKeyDescriptionCommand).build() {\n static {\n __name(this, \"UpdateKeyDescriptionCommand\");\n }\n};\n\n// src/commands/UpdatePrimaryRegionCommand.ts\n\n\n\nvar UpdatePrimaryRegionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdatePrimaryRegion\", {}).n(\"KMSClient\", \"UpdatePrimaryRegionCommand\").f(void 0, void 0).ser(se_UpdatePrimaryRegionCommand).de(de_UpdatePrimaryRegionCommand).build() {\n static {\n __name(this, \"UpdatePrimaryRegionCommand\");\n }\n};\n\n// src/commands/VerifyCommand.ts\n\n\n\nvar VerifyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Verify\", {}).n(\"KMSClient\", \"VerifyCommand\").f(VerifyRequestFilterSensitiveLog, void 0).ser(se_VerifyCommand).de(de_VerifyCommand).build() {\n static {\n __name(this, \"VerifyCommand\");\n }\n};\n\n// src/commands/VerifyMacCommand.ts\n\n\n\nvar VerifyMacCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"VerifyMac\", {}).n(\"KMSClient\", \"VerifyMacCommand\").f(VerifyMacRequestFilterSensitiveLog, void 0).ser(se_VerifyMacCommand).de(de_VerifyMacCommand).build() {\n static {\n __name(this, \"VerifyMacCommand\");\n }\n};\n\n// src/KMS.ts\nvar commands = {\n CancelKeyDeletionCommand,\n ConnectCustomKeyStoreCommand,\n CreateAliasCommand,\n CreateCustomKeyStoreCommand,\n CreateGrantCommand,\n CreateKeyCommand,\n DecryptCommand,\n DeleteAliasCommand,\n DeleteCustomKeyStoreCommand,\n DeleteImportedKeyMaterialCommand,\n DeriveSharedSecretCommand,\n DescribeCustomKeyStoresCommand,\n DescribeKeyCommand,\n DisableKeyCommand,\n DisableKeyRotationCommand,\n DisconnectCustomKeyStoreCommand,\n EnableKeyCommand,\n EnableKeyRotationCommand,\n EncryptCommand,\n GenerateDataKeyCommand,\n GenerateDataKeyPairCommand,\n GenerateDataKeyPairWithoutPlaintextCommand,\n GenerateDataKeyWithoutPlaintextCommand,\n GenerateMacCommand,\n GenerateRandomCommand,\n GetKeyPolicyCommand,\n GetKeyRotationStatusCommand,\n GetParametersForImportCommand,\n GetPublicKeyCommand,\n ImportKeyMaterialCommand,\n ListAliasesCommand,\n ListGrantsCommand,\n ListKeyPoliciesCommand,\n ListKeyRotationsCommand,\n ListKeysCommand,\n ListResourceTagsCommand,\n ListRetirableGrantsCommand,\n PutKeyPolicyCommand,\n ReEncryptCommand,\n ReplicateKeyCommand,\n RetireGrantCommand,\n RevokeGrantCommand,\n RotateKeyOnDemandCommand,\n ScheduleKeyDeletionCommand,\n SignCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCustomKeyStoreCommand,\n UpdateKeyDescriptionCommand,\n UpdatePrimaryRegionCommand,\n VerifyCommand,\n VerifyMacCommand\n};\nvar KMS = class extends KMSClient {\n static {\n __name(this, \"KMS\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, KMS);\n\n// src/pagination/DescribeCustomKeyStoresPaginator.ts\n\nvar paginateDescribeCustomKeyStores = (0, import_core.createPaginator)(KMSClient, DescribeCustomKeyStoresCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListAliasesPaginator.ts\n\nvar paginateListAliases = (0, import_core.createPaginator)(KMSClient, ListAliasesCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListGrantsPaginator.ts\n\nvar paginateListGrants = (0, import_core.createPaginator)(KMSClient, ListGrantsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListKeyPoliciesPaginator.ts\n\nvar paginateListKeyPolicies = (0, import_core.createPaginator)(KMSClient, ListKeyPoliciesCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListKeyRotationsPaginator.ts\n\nvar paginateListKeyRotations = (0, import_core.createPaginator)(KMSClient, ListKeyRotationsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListKeysPaginator.ts\n\nvar paginateListKeys = (0, import_core.createPaginator)(KMSClient, ListKeysCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListResourceTagsPaginator.ts\n\nvar paginateListResourceTags = (0, import_core.createPaginator)(KMSClient, ListResourceTagsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListRetirableGrantsPaginator.ts\n\nvar paginateListRetirableGrants = (0, import_core.createPaginator)(KMSClient, ListRetirableGrantsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n KMSServiceException,\n __Client,\n KMSClient,\n KMS,\n $Command,\n CancelKeyDeletionCommand,\n ConnectCustomKeyStoreCommand,\n CreateAliasCommand,\n CreateCustomKeyStoreCommand,\n CreateGrantCommand,\n CreateKeyCommand,\n DecryptCommand,\n DeleteAliasCommand,\n DeleteCustomKeyStoreCommand,\n DeleteImportedKeyMaterialCommand,\n DeriveSharedSecretCommand,\n DescribeCustomKeyStoresCommand,\n DescribeKeyCommand,\n DisableKeyCommand,\n DisableKeyRotationCommand,\n DisconnectCustomKeyStoreCommand,\n EnableKeyCommand,\n EnableKeyRotationCommand,\n EncryptCommand,\n GenerateDataKeyCommand,\n GenerateDataKeyPairCommand,\n GenerateDataKeyPairWithoutPlaintextCommand,\n GenerateDataKeyWithoutPlaintextCommand,\n GenerateMacCommand,\n GenerateRandomCommand,\n GetKeyPolicyCommand,\n GetKeyRotationStatusCommand,\n GetParametersForImportCommand,\n GetPublicKeyCommand,\n ImportKeyMaterialCommand,\n ListAliasesCommand,\n ListGrantsCommand,\n ListKeyPoliciesCommand,\n ListKeyRotationsCommand,\n ListKeysCommand,\n ListResourceTagsCommand,\n ListRetirableGrantsCommand,\n PutKeyPolicyCommand,\n ReEncryptCommand,\n ReplicateKeyCommand,\n RetireGrantCommand,\n RevokeGrantCommand,\n RotateKeyOnDemandCommand,\n ScheduleKeyDeletionCommand,\n SignCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCustomKeyStoreCommand,\n UpdateKeyDescriptionCommand,\n UpdatePrimaryRegionCommand,\n VerifyCommand,\n VerifyMacCommand,\n paginateDescribeCustomKeyStores,\n paginateListAliases,\n paginateListGrants,\n paginateListKeyPolicies,\n paginateListKeyRotations,\n paginateListKeys,\n paginateListResourceTags,\n paginateListRetirableGrants,\n AlgorithmSpec,\n AlreadyExistsException,\n DependencyTimeoutException,\n InvalidArnException,\n KMSInternalException,\n KMSInvalidStateException,\n NotFoundException,\n CloudHsmClusterInUseException,\n CloudHsmClusterInvalidConfigurationException,\n CloudHsmClusterNotActiveException,\n CloudHsmClusterNotFoundException,\n CloudHsmClusterNotRelatedException,\n ConflictException,\n CustomKeyStoreInvalidStateException,\n CustomKeyStoreNotFoundException,\n ConnectionErrorCodeType,\n ConnectionStateType,\n InvalidAliasNameException,\n LimitExceededException,\n CustomKeyStoreType,\n XksProxyConnectivityType,\n CustomKeyStoreNameInUseException,\n IncorrectTrustAnchorException,\n XksProxyIncorrectAuthenticationCredentialException,\n XksProxyInvalidConfigurationException,\n XksProxyInvalidResponseException,\n XksProxyUriEndpointInUseException,\n XksProxyUriInUseException,\n XksProxyUriUnreachableException,\n XksProxyVpcEndpointServiceInUseException,\n XksProxyVpcEndpointServiceInvalidConfigurationException,\n XksProxyVpcEndpointServiceNotFoundException,\n GrantOperation,\n DisabledException,\n DryRunOperationException,\n InvalidGrantTokenException,\n CustomerMasterKeySpec,\n KeySpec,\n KeyUsageType,\n OriginType,\n EncryptionAlgorithmSpec,\n ExpirationModelType,\n KeyAgreementAlgorithmSpec,\n KeyManagerType,\n KeyState,\n MacAlgorithmSpec,\n MultiRegionKeyType,\n SigningAlgorithmSpec,\n MalformedPolicyDocumentException,\n TagException,\n UnsupportedOperationException,\n XksKeyAlreadyInUseException,\n XksKeyInvalidConfigurationException,\n XksKeyNotFoundException,\n CustomKeyStoreHasCMKsException,\n DataKeyPairSpec,\n DataKeySpec,\n KeyEncryptionMechanism,\n IncorrectKeyException,\n InvalidCiphertextException,\n InvalidKeyUsageException,\n KeyUnavailableException,\n InvalidMarkerException,\n ExpiredImportTokenException,\n WrappingKeySpec,\n IncorrectKeyMaterialException,\n InvalidImportTokenException,\n InvalidGrantIdException,\n KMSInvalidMacException,\n KMSInvalidSignatureException,\n RotationType,\n MessageType,\n XksProxyAuthenticationCredentialTypeFilterSensitiveLog,\n CreateCustomKeyStoreRequestFilterSensitiveLog,\n XksProxyConfigurationTypeFilterSensitiveLog,\n CustomKeyStoresListEntryFilterSensitiveLog,\n DecryptResponseFilterSensitiveLog,\n DeriveSharedSecretResponseFilterSensitiveLog,\n DescribeCustomKeyStoresResponseFilterSensitiveLog,\n EncryptRequestFilterSensitiveLog,\n GenerateDataKeyResponseFilterSensitiveLog,\n GenerateDataKeyPairResponseFilterSensitiveLog,\n GenerateMacRequestFilterSensitiveLog,\n GenerateRandomResponseFilterSensitiveLog,\n GetParametersForImportResponseFilterSensitiveLog,\n SignRequestFilterSensitiveLog,\n UpdateCustomKeyStoreRequestFilterSensitiveLog,\n VerifyRequestFilterSensitiveLog,\n VerifyMacRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-11-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultKMSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"KMS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultLambdaHttpAuthSchemeProvider = exports.defaultLambdaHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultLambdaHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultLambdaHttpAuthSchemeParametersProvider = defaultLambdaHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"lambda\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultLambdaHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultLambdaHttpAuthSchemeProvider = defaultLambdaHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://lambda.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AddLayerVersionPermissionCommand: () => AddLayerVersionPermissionCommand,\n AddPermissionCommand: () => AddPermissionCommand,\n ApplicationLogLevel: () => ApplicationLogLevel,\n Architecture: () => Architecture,\n CodeSigningConfigNotFoundException: () => CodeSigningConfigNotFoundException,\n CodeSigningPolicy: () => CodeSigningPolicy,\n CodeStorageExceededException: () => CodeStorageExceededException,\n CodeVerificationFailedException: () => CodeVerificationFailedException,\n CreateAliasCommand: () => CreateAliasCommand,\n CreateCodeSigningConfigCommand: () => CreateCodeSigningConfigCommand,\n CreateEventSourceMappingCommand: () => CreateEventSourceMappingCommand,\n CreateFunctionCommand: () => CreateFunctionCommand,\n CreateFunctionRequestFilterSensitiveLog: () => CreateFunctionRequestFilterSensitiveLog,\n CreateFunctionUrlConfigCommand: () => CreateFunctionUrlConfigCommand,\n DeleteAliasCommand: () => DeleteAliasCommand,\n DeleteCodeSigningConfigCommand: () => DeleteCodeSigningConfigCommand,\n DeleteEventSourceMappingCommand: () => DeleteEventSourceMappingCommand,\n DeleteFunctionCodeSigningConfigCommand: () => DeleteFunctionCodeSigningConfigCommand,\n DeleteFunctionCommand: () => DeleteFunctionCommand,\n DeleteFunctionConcurrencyCommand: () => DeleteFunctionConcurrencyCommand,\n DeleteFunctionEventInvokeConfigCommand: () => DeleteFunctionEventInvokeConfigCommand,\n DeleteFunctionUrlConfigCommand: () => DeleteFunctionUrlConfigCommand,\n DeleteLayerVersionCommand: () => DeleteLayerVersionCommand,\n DeleteProvisionedConcurrencyConfigCommand: () => DeleteProvisionedConcurrencyConfigCommand,\n EC2AccessDeniedException: () => EC2AccessDeniedException,\n EC2ThrottledException: () => EC2ThrottledException,\n EC2UnexpectedException: () => EC2UnexpectedException,\n EFSIOException: () => EFSIOException,\n EFSMountConnectivityException: () => EFSMountConnectivityException,\n EFSMountFailureException: () => EFSMountFailureException,\n EFSMountTimeoutException: () => EFSMountTimeoutException,\n ENILimitReachedException: () => ENILimitReachedException,\n EndPointType: () => EndPointType,\n EnvironmentErrorFilterSensitiveLog: () => EnvironmentErrorFilterSensitiveLog,\n EnvironmentFilterSensitiveLog: () => EnvironmentFilterSensitiveLog,\n EnvironmentResponseFilterSensitiveLog: () => EnvironmentResponseFilterSensitiveLog,\n EventSourceMappingMetric: () => EventSourceMappingMetric,\n EventSourcePosition: () => EventSourcePosition,\n FullDocument: () => FullDocument,\n FunctionCodeFilterSensitiveLog: () => FunctionCodeFilterSensitiveLog,\n FunctionConfigurationFilterSensitiveLog: () => FunctionConfigurationFilterSensitiveLog,\n FunctionResponseType: () => FunctionResponseType,\n FunctionUrlAuthType: () => FunctionUrlAuthType,\n FunctionVersion: () => FunctionVersion,\n GetAccountSettingsCommand: () => GetAccountSettingsCommand,\n GetAliasCommand: () => GetAliasCommand,\n GetCodeSigningConfigCommand: () => GetCodeSigningConfigCommand,\n GetEventSourceMappingCommand: () => GetEventSourceMappingCommand,\n GetFunctionCodeSigningConfigCommand: () => GetFunctionCodeSigningConfigCommand,\n GetFunctionCommand: () => GetFunctionCommand,\n GetFunctionConcurrencyCommand: () => GetFunctionConcurrencyCommand,\n GetFunctionConfigurationCommand: () => GetFunctionConfigurationCommand,\n GetFunctionEventInvokeConfigCommand: () => GetFunctionEventInvokeConfigCommand,\n GetFunctionRecursionConfigCommand: () => GetFunctionRecursionConfigCommand,\n GetFunctionResponseFilterSensitiveLog: () => GetFunctionResponseFilterSensitiveLog,\n GetFunctionUrlConfigCommand: () => GetFunctionUrlConfigCommand,\n GetLayerVersionByArnCommand: () => GetLayerVersionByArnCommand,\n GetLayerVersionCommand: () => GetLayerVersionCommand,\n GetLayerVersionPolicyCommand: () => GetLayerVersionPolicyCommand,\n GetPolicyCommand: () => GetPolicyCommand,\n GetProvisionedConcurrencyConfigCommand: () => GetProvisionedConcurrencyConfigCommand,\n GetRuntimeManagementConfigCommand: () => GetRuntimeManagementConfigCommand,\n ImageConfigErrorFilterSensitiveLog: () => ImageConfigErrorFilterSensitiveLog,\n ImageConfigResponseFilterSensitiveLog: () => ImageConfigResponseFilterSensitiveLog,\n InvalidCodeSignatureException: () => InvalidCodeSignatureException,\n InvalidParameterValueException: () => InvalidParameterValueException,\n InvalidRequestContentException: () => InvalidRequestContentException,\n InvalidRuntimeException: () => InvalidRuntimeException,\n InvalidSecurityGroupIDException: () => InvalidSecurityGroupIDException,\n InvalidSubnetIDException: () => InvalidSubnetIDException,\n InvalidZipFileException: () => InvalidZipFileException,\n InvocationRequestFilterSensitiveLog: () => InvocationRequestFilterSensitiveLog,\n InvocationResponseFilterSensitiveLog: () => InvocationResponseFilterSensitiveLog,\n InvocationType: () => InvocationType,\n InvokeAsyncCommand: () => InvokeAsyncCommand,\n InvokeAsyncRequestFilterSensitiveLog: () => InvokeAsyncRequestFilterSensitiveLog,\n InvokeCommand: () => InvokeCommand,\n InvokeMode: () => InvokeMode,\n InvokeResponseStreamUpdateFilterSensitiveLog: () => InvokeResponseStreamUpdateFilterSensitiveLog,\n InvokeWithResponseStreamCommand: () => InvokeWithResponseStreamCommand,\n InvokeWithResponseStreamRequestFilterSensitiveLog: () => InvokeWithResponseStreamRequestFilterSensitiveLog,\n InvokeWithResponseStreamResponseEvent: () => InvokeWithResponseStreamResponseEvent,\n InvokeWithResponseStreamResponseEventFilterSensitiveLog: () => InvokeWithResponseStreamResponseEventFilterSensitiveLog,\n InvokeWithResponseStreamResponseFilterSensitiveLog: () => InvokeWithResponseStreamResponseFilterSensitiveLog,\n KMSAccessDeniedException: () => KMSAccessDeniedException,\n KMSDisabledException: () => KMSDisabledException,\n KMSInvalidStateException: () => KMSInvalidStateException,\n KMSNotFoundException: () => KMSNotFoundException,\n Lambda: () => Lambda,\n LambdaClient: () => LambdaClient,\n LambdaServiceException: () => LambdaServiceException,\n LastUpdateStatus: () => LastUpdateStatus,\n LastUpdateStatusReasonCode: () => LastUpdateStatusReasonCode,\n LayerVersionContentInputFilterSensitiveLog: () => LayerVersionContentInputFilterSensitiveLog,\n ListAliasesCommand: () => ListAliasesCommand,\n ListCodeSigningConfigsCommand: () => ListCodeSigningConfigsCommand,\n ListEventSourceMappingsCommand: () => ListEventSourceMappingsCommand,\n ListFunctionEventInvokeConfigsCommand: () => ListFunctionEventInvokeConfigsCommand,\n ListFunctionUrlConfigsCommand: () => ListFunctionUrlConfigsCommand,\n ListFunctionsByCodeSigningConfigCommand: () => ListFunctionsByCodeSigningConfigCommand,\n ListFunctionsCommand: () => ListFunctionsCommand,\n ListFunctionsResponseFilterSensitiveLog: () => ListFunctionsResponseFilterSensitiveLog,\n ListLayerVersionsCommand: () => ListLayerVersionsCommand,\n ListLayersCommand: () => ListLayersCommand,\n ListProvisionedConcurrencyConfigsCommand: () => ListProvisionedConcurrencyConfigsCommand,\n ListTagsCommand: () => ListTagsCommand,\n ListVersionsByFunctionCommand: () => ListVersionsByFunctionCommand,\n ListVersionsByFunctionResponseFilterSensitiveLog: () => ListVersionsByFunctionResponseFilterSensitiveLog,\n LogFormat: () => LogFormat,\n LogType: () => LogType,\n PackageType: () => PackageType,\n PolicyLengthExceededException: () => PolicyLengthExceededException,\n PreconditionFailedException: () => PreconditionFailedException,\n ProvisionedConcurrencyConfigNotFoundException: () => ProvisionedConcurrencyConfigNotFoundException,\n ProvisionedConcurrencyStatusEnum: () => ProvisionedConcurrencyStatusEnum,\n PublishLayerVersionCommand: () => PublishLayerVersionCommand,\n PublishLayerVersionRequestFilterSensitiveLog: () => PublishLayerVersionRequestFilterSensitiveLog,\n PublishVersionCommand: () => PublishVersionCommand,\n PutFunctionCodeSigningConfigCommand: () => PutFunctionCodeSigningConfigCommand,\n PutFunctionConcurrencyCommand: () => PutFunctionConcurrencyCommand,\n PutFunctionEventInvokeConfigCommand: () => PutFunctionEventInvokeConfigCommand,\n PutFunctionRecursionConfigCommand: () => PutFunctionRecursionConfigCommand,\n PutProvisionedConcurrencyConfigCommand: () => PutProvisionedConcurrencyConfigCommand,\n PutRuntimeManagementConfigCommand: () => PutRuntimeManagementConfigCommand,\n RecursiveInvocationException: () => RecursiveInvocationException,\n RecursiveLoop: () => RecursiveLoop,\n RemoveLayerVersionPermissionCommand: () => RemoveLayerVersionPermissionCommand,\n RemovePermissionCommand: () => RemovePermissionCommand,\n RequestTooLargeException: () => RequestTooLargeException,\n ResourceConflictException: () => ResourceConflictException,\n ResourceInUseException: () => ResourceInUseException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ResourceNotReadyException: () => ResourceNotReadyException,\n ResponseStreamingInvocationType: () => ResponseStreamingInvocationType,\n Runtime: () => Runtime,\n RuntimeVersionConfigFilterSensitiveLog: () => RuntimeVersionConfigFilterSensitiveLog,\n RuntimeVersionErrorFilterSensitiveLog: () => RuntimeVersionErrorFilterSensitiveLog,\n ServiceException: () => ServiceException,\n SnapStartApplyOn: () => SnapStartApplyOn,\n SnapStartException: () => SnapStartException,\n SnapStartNotReadyException: () => SnapStartNotReadyException,\n SnapStartOptimizationStatus: () => SnapStartOptimizationStatus,\n SnapStartTimeoutException: () => SnapStartTimeoutException,\n SourceAccessType: () => SourceAccessType,\n State: () => State,\n StateReasonCode: () => StateReasonCode,\n SubnetIPAddressLimitReachedException: () => SubnetIPAddressLimitReachedException,\n SystemLogLevel: () => SystemLogLevel,\n TagResourceCommand: () => TagResourceCommand,\n ThrottleReason: () => ThrottleReason,\n TooManyRequestsException: () => TooManyRequestsException,\n TracingMode: () => TracingMode,\n UnsupportedMediaTypeException: () => UnsupportedMediaTypeException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateAliasCommand: () => UpdateAliasCommand,\n UpdateCodeSigningConfigCommand: () => UpdateCodeSigningConfigCommand,\n UpdateEventSourceMappingCommand: () => UpdateEventSourceMappingCommand,\n UpdateFunctionCodeCommand: () => UpdateFunctionCodeCommand,\n UpdateFunctionCodeRequestFilterSensitiveLog: () => UpdateFunctionCodeRequestFilterSensitiveLog,\n UpdateFunctionConfigurationCommand: () => UpdateFunctionConfigurationCommand,\n UpdateFunctionConfigurationRequestFilterSensitiveLog: () => UpdateFunctionConfigurationRequestFilterSensitiveLog,\n UpdateFunctionEventInvokeConfigCommand: () => UpdateFunctionEventInvokeConfigCommand,\n UpdateFunctionUrlConfigCommand: () => UpdateFunctionUrlConfigCommand,\n UpdateRuntimeOn: () => UpdateRuntimeOn,\n __Client: () => import_smithy_client.Client,\n paginateListAliases: () => paginateListAliases,\n paginateListCodeSigningConfigs: () => paginateListCodeSigningConfigs,\n paginateListEventSourceMappings: () => paginateListEventSourceMappings,\n paginateListFunctionEventInvokeConfigs: () => paginateListFunctionEventInvokeConfigs,\n paginateListFunctionUrlConfigs: () => paginateListFunctionUrlConfigs,\n paginateListFunctions: () => paginateListFunctions,\n paginateListFunctionsByCodeSigningConfig: () => paginateListFunctionsByCodeSigningConfig,\n paginateListLayerVersions: () => paginateListLayerVersions,\n paginateListLayers: () => paginateListLayers,\n paginateListProvisionedConcurrencyConfigs: () => paginateListProvisionedConcurrencyConfigs,\n paginateListVersionsByFunction: () => paginateListVersionsByFunction,\n waitForFunctionActive: () => waitForFunctionActive,\n waitForFunctionActiveV2: () => waitForFunctionActiveV2,\n waitForFunctionExists: () => waitForFunctionExists,\n waitForFunctionUpdated: () => waitForFunctionUpdated,\n waitForFunctionUpdatedV2: () => waitForFunctionUpdatedV2,\n waitForPublishedVersionActive: () => waitForPublishedVersionActive,\n waitUntilFunctionActive: () => waitUntilFunctionActive,\n waitUntilFunctionActiveV2: () => waitUntilFunctionActiveV2,\n waitUntilFunctionExists: () => waitUntilFunctionExists,\n waitUntilFunctionUpdated: () => waitUntilFunctionUpdated,\n waitUntilFunctionUpdatedV2: () => waitUntilFunctionUpdatedV2,\n waitUntilPublishedVersionActive: () => waitUntilPublishedVersionActive\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/LambdaClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_eventstream_serde_config_resolver = require(\"@smithy/eventstream-serde-config-resolver\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"lambda\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/LambdaClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/LambdaClient.ts\nvar LambdaClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"LambdaClient\");\n }\n /**\n * The resolved configuration of LambdaClient class. This is resolved and normalized from the {@link LambdaClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_eventstream_serde_config_resolver.resolveEventStreamSerdeConfig)(_config_6);\n const _config_8 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_7);\n const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []);\n this.config = _config_9;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultLambdaHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/Lambda.ts\n\n\n// src/commands/AddLayerVersionPermissionCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/LambdaServiceException.ts\n\nvar LambdaServiceException = class _LambdaServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"LambdaServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _LambdaServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar InvalidParameterValueException = class _InvalidParameterValueException extends LambdaServiceException {\n static {\n __name(this, \"InvalidParameterValueException\");\n }\n name = \"InvalidParameterValueException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterValueException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterValueException.prototype);\n this.Type = opts.Type;\n }\n};\nvar PolicyLengthExceededException = class _PolicyLengthExceededException extends LambdaServiceException {\n static {\n __name(this, \"PolicyLengthExceededException\");\n }\n name = \"PolicyLengthExceededException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PolicyLengthExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PolicyLengthExceededException.prototype);\n this.Type = opts.Type;\n }\n};\nvar PreconditionFailedException = class _PreconditionFailedException extends LambdaServiceException {\n static {\n __name(this, \"PreconditionFailedException\");\n }\n name = \"PreconditionFailedException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PreconditionFailedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PreconditionFailedException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResourceConflictException = class _ResourceConflictException extends LambdaServiceException {\n static {\n __name(this, \"ResourceConflictException\");\n }\n name = \"ResourceConflictException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceConflictException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar ServiceException = class _ServiceException extends LambdaServiceException {\n static {\n __name(this, \"ServiceException\");\n }\n name = \"ServiceException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar ThrottleReason = {\n CallerRateLimitExceeded: \"CallerRateLimitExceeded\",\n ConcurrentInvocationLimitExceeded: \"ConcurrentInvocationLimitExceeded\",\n ConcurrentSnapshotCreateLimitExceeded: \"ConcurrentSnapshotCreateLimitExceeded\",\n FunctionInvocationRateLimitExceeded: \"FunctionInvocationRateLimitExceeded\",\n ReservedFunctionConcurrentInvocationLimitExceeded: \"ReservedFunctionConcurrentInvocationLimitExceeded\",\n ReservedFunctionInvocationRateLimitExceeded: \"ReservedFunctionInvocationRateLimitExceeded\"\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends LambdaServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n *

The number of seconds the caller should wait before retrying.

\n * @public\n */\n retryAfterSeconds;\n Type;\n Reason;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n this.retryAfterSeconds = opts.retryAfterSeconds;\n this.Type = opts.Type;\n this.Reason = opts.Reason;\n }\n};\nvar FunctionUrlAuthType = {\n AWS_IAM: \"AWS_IAM\",\n NONE: \"NONE\"\n};\nvar ApplicationLogLevel = {\n Debug: \"DEBUG\",\n Error: \"ERROR\",\n Fatal: \"FATAL\",\n Info: \"INFO\",\n Trace: \"TRACE\",\n Warn: \"WARN\"\n};\nvar Architecture = {\n arm64: \"arm64\",\n x86_64: \"x86_64\"\n};\nvar CodeSigningPolicy = {\n Enforce: \"Enforce\",\n Warn: \"Warn\"\n};\nvar FullDocument = {\n Default: \"Default\",\n UpdateLookup: \"UpdateLookup\"\n};\nvar FunctionResponseType = {\n ReportBatchItemFailures: \"ReportBatchItemFailures\"\n};\nvar EventSourceMappingMetric = {\n EventCount: \"EventCount\"\n};\nvar EndPointType = {\n KAFKA_BOOTSTRAP_SERVERS: \"KAFKA_BOOTSTRAP_SERVERS\"\n};\nvar SourceAccessType = {\n BASIC_AUTH: \"BASIC_AUTH\",\n CLIENT_CERTIFICATE_TLS_AUTH: \"CLIENT_CERTIFICATE_TLS_AUTH\",\n SASL_SCRAM_256_AUTH: \"SASL_SCRAM_256_AUTH\",\n SASL_SCRAM_512_AUTH: \"SASL_SCRAM_512_AUTH\",\n SERVER_ROOT_CA_CERTIFICATE: \"SERVER_ROOT_CA_CERTIFICATE\",\n VIRTUAL_HOST: \"VIRTUAL_HOST\",\n VPC_SECURITY_GROUP: \"VPC_SECURITY_GROUP\",\n VPC_SUBNET: \"VPC_SUBNET\"\n};\nvar EventSourcePosition = {\n AT_TIMESTAMP: \"AT_TIMESTAMP\",\n LATEST: \"LATEST\",\n TRIM_HORIZON: \"TRIM_HORIZON\"\n};\nvar CodeSigningConfigNotFoundException = class _CodeSigningConfigNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"CodeSigningConfigNotFoundException\");\n }\n name = \"CodeSigningConfigNotFoundException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CodeSigningConfigNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CodeSigningConfigNotFoundException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar CodeStorageExceededException = class _CodeStorageExceededException extends LambdaServiceException {\n static {\n __name(this, \"CodeStorageExceededException\");\n }\n name = \"CodeStorageExceededException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CodeStorageExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CodeStorageExceededException.prototype);\n this.Type = opts.Type;\n }\n};\nvar CodeVerificationFailedException = class _CodeVerificationFailedException extends LambdaServiceException {\n static {\n __name(this, \"CodeVerificationFailedException\");\n }\n name = \"CodeVerificationFailedException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CodeVerificationFailedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CodeVerificationFailedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar LogFormat = {\n Json: \"JSON\",\n Text: \"Text\"\n};\nvar SystemLogLevel = {\n Debug: \"DEBUG\",\n Info: \"INFO\",\n Warn: \"WARN\"\n};\nvar PackageType = {\n Image: \"Image\",\n Zip: \"Zip\"\n};\nvar Runtime = {\n dotnet6: \"dotnet6\",\n dotnet8: \"dotnet8\",\n dotnetcore10: \"dotnetcore1.0\",\n dotnetcore20: \"dotnetcore2.0\",\n dotnetcore21: \"dotnetcore2.1\",\n dotnetcore31: \"dotnetcore3.1\",\n go1x: \"go1.x\",\n java11: \"java11\",\n java17: \"java17\",\n java21: \"java21\",\n java8: \"java8\",\n java8al2: \"java8.al2\",\n nodejs: \"nodejs\",\n nodejs10x: \"nodejs10.x\",\n nodejs12x: \"nodejs12.x\",\n nodejs14x: \"nodejs14.x\",\n nodejs16x: \"nodejs16.x\",\n nodejs18x: \"nodejs18.x\",\n nodejs20x: \"nodejs20.x\",\n nodejs22x: \"nodejs22.x\",\n nodejs43: \"nodejs4.3\",\n nodejs43edge: \"nodejs4.3-edge\",\n nodejs610: \"nodejs6.10\",\n nodejs810: \"nodejs8.10\",\n provided: \"provided\",\n providedal2: \"provided.al2\",\n providedal2023: \"provided.al2023\",\n python27: \"python2.7\",\n python310: \"python3.10\",\n python311: \"python3.11\",\n python312: \"python3.12\",\n python313: \"python3.13\",\n python36: \"python3.6\",\n python37: \"python3.7\",\n python38: \"python3.8\",\n python39: \"python3.9\",\n ruby25: \"ruby2.5\",\n ruby27: \"ruby2.7\",\n ruby32: \"ruby3.2\",\n ruby33: \"ruby3.3\",\n ruby34: \"ruby3.4\"\n};\nvar SnapStartApplyOn = {\n None: \"None\",\n PublishedVersions: \"PublishedVersions\"\n};\nvar TracingMode = {\n Active: \"Active\",\n PassThrough: \"PassThrough\"\n};\nvar LastUpdateStatus = {\n Failed: \"Failed\",\n InProgress: \"InProgress\",\n Successful: \"Successful\"\n};\nvar LastUpdateStatusReasonCode = {\n DisabledKMSKey: \"DisabledKMSKey\",\n EFSIOError: \"EFSIOError\",\n EFSMountConnectivityError: \"EFSMountConnectivityError\",\n EFSMountFailure: \"EFSMountFailure\",\n EFSMountTimeout: \"EFSMountTimeout\",\n EniLimitExceeded: \"EniLimitExceeded\",\n FunctionError: \"FunctionError\",\n ImageAccessDenied: \"ImageAccessDenied\",\n ImageDeleted: \"ImageDeleted\",\n InsufficientRolePermissions: \"InsufficientRolePermissions\",\n InternalError: \"InternalError\",\n InvalidConfiguration: \"InvalidConfiguration\",\n InvalidImage: \"InvalidImage\",\n InvalidRuntime: \"InvalidRuntime\",\n InvalidSecurityGroup: \"InvalidSecurityGroup\",\n InvalidStateKMSKey: \"InvalidStateKMSKey\",\n InvalidSubnet: \"InvalidSubnet\",\n InvalidZipFileException: \"InvalidZipFileException\",\n KMSKeyAccessDenied: \"KMSKeyAccessDenied\",\n KMSKeyNotFound: \"KMSKeyNotFound\",\n SubnetOutOfIPAddresses: \"SubnetOutOfIPAddresses\"\n};\nvar SnapStartOptimizationStatus = {\n Off: \"Off\",\n On: \"On\"\n};\nvar State = {\n Active: \"Active\",\n Failed: \"Failed\",\n Inactive: \"Inactive\",\n Pending: \"Pending\"\n};\nvar StateReasonCode = {\n Creating: \"Creating\",\n DisabledKMSKey: \"DisabledKMSKey\",\n EFSIOError: \"EFSIOError\",\n EFSMountConnectivityError: \"EFSMountConnectivityError\",\n EFSMountFailure: \"EFSMountFailure\",\n EFSMountTimeout: \"EFSMountTimeout\",\n EniLimitExceeded: \"EniLimitExceeded\",\n FunctionError: \"FunctionError\",\n Idle: \"Idle\",\n ImageAccessDenied: \"ImageAccessDenied\",\n ImageDeleted: \"ImageDeleted\",\n InsufficientRolePermissions: \"InsufficientRolePermissions\",\n InternalError: \"InternalError\",\n InvalidConfiguration: \"InvalidConfiguration\",\n InvalidImage: \"InvalidImage\",\n InvalidRuntime: \"InvalidRuntime\",\n InvalidSecurityGroup: \"InvalidSecurityGroup\",\n InvalidStateKMSKey: \"InvalidStateKMSKey\",\n InvalidSubnet: \"InvalidSubnet\",\n InvalidZipFileException: \"InvalidZipFileException\",\n KMSKeyAccessDenied: \"KMSKeyAccessDenied\",\n KMSKeyNotFound: \"KMSKeyNotFound\",\n Restoring: \"Restoring\",\n SubnetOutOfIPAddresses: \"SubnetOutOfIPAddresses\"\n};\nvar InvalidCodeSignatureException = class _InvalidCodeSignatureException extends LambdaServiceException {\n static {\n __name(this, \"InvalidCodeSignatureException\");\n }\n name = \"InvalidCodeSignatureException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCodeSignatureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCodeSignatureException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvokeMode = {\n BUFFERED: \"BUFFERED\",\n RESPONSE_STREAM: \"RESPONSE_STREAM\"\n};\nvar ResourceInUseException = class _ResourceInUseException extends LambdaServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar RecursiveLoop = {\n Allow: \"Allow\",\n Terminate: \"Terminate\"\n};\nvar ProvisionedConcurrencyStatusEnum = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n READY: \"READY\"\n};\nvar ProvisionedConcurrencyConfigNotFoundException = class _ProvisionedConcurrencyConfigNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"ProvisionedConcurrencyConfigNotFoundException\");\n }\n name = \"ProvisionedConcurrencyConfigNotFoundException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ProvisionedConcurrencyConfigNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ProvisionedConcurrencyConfigNotFoundException.prototype);\n this.Type = opts.Type;\n }\n};\nvar UpdateRuntimeOn = {\n Auto: \"Auto\",\n FunctionUpdate: \"FunctionUpdate\",\n Manual: \"Manual\"\n};\nvar EC2AccessDeniedException = class _EC2AccessDeniedException extends LambdaServiceException {\n static {\n __name(this, \"EC2AccessDeniedException\");\n }\n name = \"EC2AccessDeniedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EC2AccessDeniedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _EC2AccessDeniedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EC2ThrottledException = class _EC2ThrottledException extends LambdaServiceException {\n static {\n __name(this, \"EC2ThrottledException\");\n }\n name = \"EC2ThrottledException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EC2ThrottledException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _EC2ThrottledException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EC2UnexpectedException = class _EC2UnexpectedException extends LambdaServiceException {\n static {\n __name(this, \"EC2UnexpectedException\");\n }\n name = \"EC2UnexpectedException\";\n $fault = \"server\";\n Type;\n Message;\n EC2ErrorCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EC2UnexpectedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _EC2UnexpectedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n this.EC2ErrorCode = opts.EC2ErrorCode;\n }\n};\nvar EFSIOException = class _EFSIOException extends LambdaServiceException {\n static {\n __name(this, \"EFSIOException\");\n }\n name = \"EFSIOException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSIOException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSIOException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EFSMountConnectivityException = class _EFSMountConnectivityException extends LambdaServiceException {\n static {\n __name(this, \"EFSMountConnectivityException\");\n }\n name = \"EFSMountConnectivityException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSMountConnectivityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSMountConnectivityException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EFSMountFailureException = class _EFSMountFailureException extends LambdaServiceException {\n static {\n __name(this, \"EFSMountFailureException\");\n }\n name = \"EFSMountFailureException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSMountFailureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSMountFailureException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EFSMountTimeoutException = class _EFSMountTimeoutException extends LambdaServiceException {\n static {\n __name(this, \"EFSMountTimeoutException\");\n }\n name = \"EFSMountTimeoutException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSMountTimeoutException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSMountTimeoutException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar ENILimitReachedException = class _ENILimitReachedException extends LambdaServiceException {\n static {\n __name(this, \"ENILimitReachedException\");\n }\n name = \"ENILimitReachedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ENILimitReachedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ENILimitReachedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidRequestContentException = class _InvalidRequestContentException extends LambdaServiceException {\n static {\n __name(this, \"InvalidRequestContentException\");\n }\n name = \"InvalidRequestContentException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestContentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestContentException.prototype);\n this.Type = opts.Type;\n }\n};\nvar InvalidRuntimeException = class _InvalidRuntimeException extends LambdaServiceException {\n static {\n __name(this, \"InvalidRuntimeException\");\n }\n name = \"InvalidRuntimeException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRuntimeException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRuntimeException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidSecurityGroupIDException = class _InvalidSecurityGroupIDException extends LambdaServiceException {\n static {\n __name(this, \"InvalidSecurityGroupIDException\");\n }\n name = \"InvalidSecurityGroupIDException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSecurityGroupIDException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSecurityGroupIDException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidSubnetIDException = class _InvalidSubnetIDException extends LambdaServiceException {\n static {\n __name(this, \"InvalidSubnetIDException\");\n }\n name = \"InvalidSubnetIDException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSubnetIDException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSubnetIDException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidZipFileException = class _InvalidZipFileException extends LambdaServiceException {\n static {\n __name(this, \"InvalidZipFileException\");\n }\n name = \"InvalidZipFileException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidZipFileException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidZipFileException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvocationType = {\n DryRun: \"DryRun\",\n Event: \"Event\",\n RequestResponse: \"RequestResponse\"\n};\nvar LogType = {\n None: \"None\",\n Tail: \"Tail\"\n};\nvar KMSAccessDeniedException = class _KMSAccessDeniedException extends LambdaServiceException {\n static {\n __name(this, \"KMSAccessDeniedException\");\n }\n name = \"KMSAccessDeniedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSAccessDeniedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSAccessDeniedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar KMSDisabledException = class _KMSDisabledException extends LambdaServiceException {\n static {\n __name(this, \"KMSDisabledException\");\n }\n name = \"KMSDisabledException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSDisabledException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSDisabledException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar KMSInvalidStateException = class _KMSInvalidStateException extends LambdaServiceException {\n static {\n __name(this, \"KMSInvalidStateException\");\n }\n name = \"KMSInvalidStateException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidStateException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidStateException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar KMSNotFoundException = class _KMSNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"KMSNotFoundException\");\n }\n name = \"KMSNotFoundException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSNotFoundException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSNotFoundException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar RecursiveInvocationException = class _RecursiveInvocationException extends LambdaServiceException {\n static {\n __name(this, \"RecursiveInvocationException\");\n }\n name = \"RecursiveInvocationException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n *

The exception message.

\n * @public\n */\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RecursiveInvocationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RecursiveInvocationException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar RequestTooLargeException = class _RequestTooLargeException extends LambdaServiceException {\n static {\n __name(this, \"RequestTooLargeException\");\n }\n name = \"RequestTooLargeException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RequestTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RequestTooLargeException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResourceNotReadyException = class _ResourceNotReadyException extends LambdaServiceException {\n static {\n __name(this, \"ResourceNotReadyException\");\n }\n name = \"ResourceNotReadyException\";\n $fault = \"server\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotReadyException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotReadyException.prototype);\n this.Type = opts.Type;\n }\n};\nvar SnapStartException = class _SnapStartException extends LambdaServiceException {\n static {\n __name(this, \"SnapStartException\");\n }\n name = \"SnapStartException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SnapStartException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SnapStartException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar SnapStartNotReadyException = class _SnapStartNotReadyException extends LambdaServiceException {\n static {\n __name(this, \"SnapStartNotReadyException\");\n }\n name = \"SnapStartNotReadyException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SnapStartNotReadyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SnapStartNotReadyException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar SnapStartTimeoutException = class _SnapStartTimeoutException extends LambdaServiceException {\n static {\n __name(this, \"SnapStartTimeoutException\");\n }\n name = \"SnapStartTimeoutException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SnapStartTimeoutException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SnapStartTimeoutException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar SubnetIPAddressLimitReachedException = class _SubnetIPAddressLimitReachedException extends LambdaServiceException {\n static {\n __name(this, \"SubnetIPAddressLimitReachedException\");\n }\n name = \"SubnetIPAddressLimitReachedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SubnetIPAddressLimitReachedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _SubnetIPAddressLimitReachedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar UnsupportedMediaTypeException = class _UnsupportedMediaTypeException extends LambdaServiceException {\n static {\n __name(this, \"UnsupportedMediaTypeException\");\n }\n name = \"UnsupportedMediaTypeException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedMediaTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedMediaTypeException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResponseStreamingInvocationType = {\n DryRun: \"DryRun\",\n RequestResponse: \"RequestResponse\"\n};\nvar InvokeWithResponseStreamResponseEvent;\n((InvokeWithResponseStreamResponseEvent3) => {\n InvokeWithResponseStreamResponseEvent3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.PayloadChunk !== void 0) return visitor.PayloadChunk(value.PayloadChunk);\n if (value.InvokeComplete !== void 0) return visitor.InvokeComplete(value.InvokeComplete);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(InvokeWithResponseStreamResponseEvent || (InvokeWithResponseStreamResponseEvent = {}));\nvar FunctionVersion = {\n ALL: \"ALL\"\n};\nvar FunctionCodeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ZipFile && { ZipFile: import_smithy_client.SENSITIVE_STRING }\n}), \"FunctionCodeFilterSensitiveLog\");\nvar EnvironmentFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Variables && { Variables: import_smithy_client.SENSITIVE_STRING }\n}), \"EnvironmentFilterSensitiveLog\");\nvar CreateFunctionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Code && { Code: FunctionCodeFilterSensitiveLog(obj.Code) },\n ...obj.Environment && { Environment: EnvironmentFilterSensitiveLog(obj.Environment) }\n}), \"CreateFunctionRequestFilterSensitiveLog\");\nvar EnvironmentErrorFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"EnvironmentErrorFilterSensitiveLog\");\nvar EnvironmentResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Variables && { Variables: import_smithy_client.SENSITIVE_STRING },\n ...obj.Error && { Error: EnvironmentErrorFilterSensitiveLog(obj.Error) }\n}), \"EnvironmentResponseFilterSensitiveLog\");\nvar ImageConfigErrorFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"ImageConfigErrorFilterSensitiveLog\");\nvar ImageConfigResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Error && { Error: ImageConfigErrorFilterSensitiveLog(obj.Error) }\n}), \"ImageConfigResponseFilterSensitiveLog\");\nvar RuntimeVersionErrorFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"RuntimeVersionErrorFilterSensitiveLog\");\nvar RuntimeVersionConfigFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Error && { Error: RuntimeVersionErrorFilterSensitiveLog(obj.Error) }\n}), \"RuntimeVersionConfigFilterSensitiveLog\");\nvar FunctionConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Environment && { Environment: EnvironmentResponseFilterSensitiveLog(obj.Environment) },\n ...obj.ImageConfigResponse && {\n ImageConfigResponse: ImageConfigResponseFilterSensitiveLog(obj.ImageConfigResponse)\n },\n ...obj.RuntimeVersionConfig && {\n RuntimeVersionConfig: RuntimeVersionConfigFilterSensitiveLog(obj.RuntimeVersionConfig)\n }\n}), \"FunctionConfigurationFilterSensitiveLog\");\nvar GetFunctionResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Configuration && { Configuration: FunctionConfigurationFilterSensitiveLog(obj.Configuration) }\n}), \"GetFunctionResponseFilterSensitiveLog\");\nvar InvocationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvocationRequestFilterSensitiveLog\");\nvar InvocationResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvocationResponseFilterSensitiveLog\");\nvar InvokeAsyncRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"InvokeAsyncRequestFilterSensitiveLog\");\nvar InvokeWithResponseStreamRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvokeWithResponseStreamRequestFilterSensitiveLog\");\nvar InvokeResponseStreamUpdateFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvokeResponseStreamUpdateFilterSensitiveLog\");\nvar InvokeWithResponseStreamResponseEventFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.PayloadChunk !== void 0)\n return { PayloadChunk: InvokeResponseStreamUpdateFilterSensitiveLog(obj.PayloadChunk) };\n if (obj.InvokeComplete !== void 0) return { InvokeComplete: obj.InvokeComplete };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"InvokeWithResponseStreamResponseEventFilterSensitiveLog\");\nvar InvokeWithResponseStreamResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.EventStream && { EventStream: \"STREAMING_CONTENT\" }\n}), \"InvokeWithResponseStreamResponseFilterSensitiveLog\");\nvar ListFunctionsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Functions && { Functions: obj.Functions.map((item) => FunctionConfigurationFilterSensitiveLog(item)) }\n}), \"ListFunctionsResponseFilterSensitiveLog\");\nvar ListVersionsByFunctionResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Versions && { Versions: obj.Versions.map((item) => FunctionConfigurationFilterSensitiveLog(item)) }\n}), \"ListVersionsByFunctionResponseFilterSensitiveLog\");\nvar LayerVersionContentInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ZipFile && { ZipFile: import_smithy_client.SENSITIVE_STRING }\n}), \"LayerVersionContentInputFilterSensitiveLog\");\nvar PublishLayerVersionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Content && { Content: LayerVersionContentInputFilterSensitiveLog(obj.Content) }\n}), \"PublishLayerVersionRequestFilterSensitiveLog\");\nvar UpdateFunctionCodeRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ZipFile && { ZipFile: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateFunctionCodeRequestFilterSensitiveLog\");\nvar UpdateFunctionConfigurationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Environment && { Environment: EnvironmentFilterSensitiveLog(obj.Environment) }\n}), \"UpdateFunctionConfigurationRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar se_AddLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n const query = (0, import_smithy_client.map)({\n [_RI]: [, input[_RI]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Action: [],\n OrganizationId: [],\n Principal: [],\n StatementId: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_AddLayerVersionPermissionCommand\");\nvar se_AddPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/policy\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Action: [],\n EventSourceToken: [],\n FunctionUrlAuthType: [],\n Principal: [],\n PrincipalOrgID: [],\n RevisionId: [],\n SourceAccount: [],\n SourceArn: [],\n StatementId: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_AddPermissionCommand\");\nvar se_CreateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Description: [],\n FunctionVersion: [],\n Name: [],\n RoutingConfig: /* @__PURE__ */ __name((_) => se_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateAliasCommand\");\nvar se_CreateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2020-04-22/code-signing-configs\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AllowedPublishers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"AllowedPublishers\"),\n CodeSigningPolicies: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CodeSigningPolicies\"),\n Description: [],\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateCodeSigningConfigCommand\");\nvar se_CreateEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/event-source-mappings\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AmazonManagedKafkaEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"AmazonManagedKafkaEventSourceConfig\"),\n BatchSize: [],\n BisectBatchOnFunctionError: [],\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n DocumentDBEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DocumentDBEventSourceConfig\"),\n Enabled: [],\n EventSourceArn: [],\n FilterCriteria: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FilterCriteria\"),\n FunctionName: [],\n FunctionResponseTypes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FunctionResponseTypes\"),\n KMSKeyArn: [],\n MaximumBatchingWindowInSeconds: [],\n MaximumRecordAgeInSeconds: [],\n MaximumRetryAttempts: [],\n MetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"MetricsConfig\"),\n ParallelizationFactor: [],\n ProvisionedPollerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ProvisionedPollerConfig\"),\n Queues: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Queues\"),\n ScalingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ScalingConfig\"),\n SelfManagedEventSource: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SelfManagedEventSource\"),\n SelfManagedKafkaEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SelfManagedKafkaEventSourceConfig\"),\n SourceAccessConfigurations: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SourceAccessConfigurations\"),\n StartingPosition: [],\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"StartingPositionTimestamp\"),\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\"),\n Topics: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Topics\"),\n TumblingWindowInSeconds: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateEventSourceMappingCommand\");\nvar se_CreateFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Architectures: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Architectures\"),\n Code: /* @__PURE__ */ __name((_) => se_FunctionCode(_, context), \"Code\"),\n CodeSigningConfigArn: [],\n DeadLetterConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DeadLetterConfig\"),\n Description: [],\n Environment: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Environment\"),\n EphemeralStorage: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"EphemeralStorage\"),\n FileSystemConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FileSystemConfigs\"),\n FunctionName: [],\n Handler: [],\n ImageConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ImageConfig\"),\n KMSKeyArn: [],\n Layers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Layers\"),\n LoggingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"LoggingConfig\"),\n MemorySize: [],\n PackageType: [],\n Publish: [],\n Role: [],\n Runtime: [],\n SnapStart: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SnapStart\"),\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\"),\n Timeout: [],\n TracingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"TracingConfig\"),\n VpcConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"VpcConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateFunctionCommand\");\nvar se_CreateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AuthType: [],\n Cors: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Cors\"),\n InvokeMode: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateFunctionUrlConfigCommand\");\nvar se_DeleteAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases/{Name}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteAliasCommand\");\nvar se_DeleteCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteCodeSigningConfigCommand\");\nvar se_DeleteEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/event-source-mappings/{UUID}\");\n b.p(\"UUID\", () => input.UUID, \"{UUID}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteEventSourceMappingCommand\");\nvar se_DeleteFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteFunctionCommand\");\nvar se_DeleteFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-06-30/functions/{FunctionName}/code-signing-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteFunctionCodeSigningConfigCommand\");\nvar se_DeleteFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2017-10-31/functions/{FunctionName}/concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteFunctionConcurrencyCommand\");\nvar se_DeleteFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteFunctionEventInvokeConfigCommand\");\nvar se_DeleteFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteFunctionUrlConfigCommand\");\nvar se_DeleteLayerVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteLayerVersionCommand\");\nvar se_DeleteProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, (0, import_smithy_client.expectNonNull)(input[_Q], `Qualifier`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteProvisionedConcurrencyConfigCommand\");\nvar se_GetAccountSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2016-08-19/account-settings\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetAccountSettingsCommand\");\nvar se_GetAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases/{Name}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetAliasCommand\");\nvar se_GetCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetCodeSigningConfigCommand\");\nvar se_GetEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/event-source-mappings/{UUID}\");\n b.p(\"UUID\", () => input.UUID, \"{UUID}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetEventSourceMappingCommand\");\nvar se_GetFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionCommand\");\nvar se_GetFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-06-30/functions/{FunctionName}/code-signing-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionCodeSigningConfigCommand\");\nvar se_GetFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionConcurrencyCommand\");\nvar se_GetFunctionConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/configuration\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionConfigurationCommand\");\nvar se_GetFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionEventInvokeConfigCommand\");\nvar se_GetFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2024-08-31/functions/{FunctionName}/recursion-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionRecursionConfigCommand\");\nvar se_GetFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionUrlConfigCommand\");\nvar se_GetLayerVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetLayerVersionCommand\");\nvar se_GetLayerVersionByArnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers\");\n const query = (0, import_smithy_client.map)({\n [_f]: [, \"LayerVersion\"],\n [_A]: [, (0, import_smithy_client.expectNonNull)(input[_A], `Arn`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetLayerVersionByArnCommand\");\nvar se_GetLayerVersionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetLayerVersionPolicyCommand\");\nvar se_GetPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/policy\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetPolicyCommand\");\nvar se_GetProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, (0, import_smithy_client.expectNonNull)(input[_Q], `Qualifier`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetProvisionedConcurrencyConfigCommand\");\nvar se_GetRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-07-20/functions/{FunctionName}/runtime-management-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRuntimeManagementConfigCommand\");\nvar se_InvokeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n [_xait]: input[_IT],\n [_xalt]: input[_LT],\n [_xacc]: input[_CC]\n });\n b.bp(\"/2015-03-31/functions/{FunctionName}/invocations\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n if (input.Payload !== void 0) {\n body = input.Payload;\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_InvokeCommand\");\nvar se_InvokeAsyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/octet-stream\"\n };\n b.bp(\"/2014-11-13/functions/{FunctionName}/invoke-async\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n if (input.InvokeArgs !== void 0) {\n body = input.InvokeArgs;\n }\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_InvokeAsyncCommand\");\nvar se_InvokeWithResponseStreamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n [_xait]: input[_IT],\n [_xalt]: input[_LT],\n [_xacc]: input[_CC]\n });\n b.bp(\"/2021-11-15/functions/{FunctionName}/response-streaming-invocations\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n if (input.Payload !== void 0) {\n body = input.Payload;\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_InvokeWithResponseStreamCommand\");\nvar se_ListAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_FV]: [, input[_FV]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAliasesCommand\");\nvar se_ListCodeSigningConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs\");\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCodeSigningConfigsCommand\");\nvar se_ListEventSourceMappingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/event-source-mappings\");\n const query = (0, import_smithy_client.map)({\n [_ESA]: [, input[_ESA]],\n [_FN]: [, input[_FN]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListEventSourceMappingsCommand\");\nvar se_ListFunctionEventInvokeConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config/list\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionEventInvokeConfigsCommand\");\nvar se_ListFunctionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions\");\n const query = (0, import_smithy_client.map)({\n [_MR]: [, input[_MR]],\n [_FV]: [, input[_FV]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionsCommand\");\nvar se_ListFunctionsByCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}/functions\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionsByCodeSigningConfigCommand\");\nvar se_ListFunctionUrlConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-10-31/functions/{FunctionName}/urls\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionUrlConfigsCommand\");\nvar se_ListLayersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers\");\n const query = (0, import_smithy_client.map)({\n [_CR]: [, input[_CR]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_CA]: [, input[_CA]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListLayersCommand\");\nvar se_ListLayerVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n const query = (0, import_smithy_client.map)({\n [_CR]: [, input[_CR]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_CA]: [, input[_CA]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListLayerVersionsCommand\");\nvar se_ListProvisionedConcurrencyConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_L]: [, \"ALL\"],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListProvisionedConcurrencyConfigsCommand\");\nvar se_ListTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2017-03-31/tags/{Resource}\");\n b.p(\"Resource\", () => input.Resource, \"{Resource}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsCommand\");\nvar se_ListVersionsByFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/versions\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListVersionsByFunctionCommand\");\nvar se_PublishLayerVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2018-10-31/layers/{LayerName}/versions\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n CompatibleArchitectures: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CompatibleArchitectures\"),\n CompatibleRuntimes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CompatibleRuntimes\"),\n Content: /* @__PURE__ */ __name((_) => se_LayerVersionContentInput(_, context), \"Content\"),\n Description: [],\n LicenseInfo: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_PublishLayerVersionCommand\");\nvar se_PublishVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/versions\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n CodeSha256: [],\n Description: [],\n RevisionId: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_PublishVersionCommand\");\nvar se_PutFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2020-06-30/functions/{FunctionName}/code-signing-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n CodeSigningConfigArn: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutFunctionCodeSigningConfigCommand\");\nvar se_PutFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2017-10-31/functions/{FunctionName}/concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n ReservedConcurrentExecutions: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutFunctionConcurrencyCommand\");\nvar se_PutFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n MaximumEventAgeInSeconds: [],\n MaximumRetryAttempts: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutFunctionEventInvokeConfigCommand\");\nvar se_PutFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2024-08-31/functions/{FunctionName}/recursion-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n RecursiveLoop: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutFunctionRecursionConfigCommand\");\nvar se_PutProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, (0, import_smithy_client.expectNonNull)(input[_Q], `Qualifier`)]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n ProvisionedConcurrentExecutions: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutProvisionedConcurrencyConfigCommand\");\nvar se_PutRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2021-07-20/functions/{FunctionName}/runtime-management-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n RuntimeVersionArn: [],\n UpdateRuntimeOn: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutRuntimeManagementConfigCommand\");\nvar se_RemoveLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy/{StatementId}\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n b.p(\"StatementId\", () => input.StatementId, \"{StatementId}\", false);\n const query = (0, import_smithy_client.map)({\n [_RI]: [, input[_RI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RemoveLayerVersionPermissionCommand\");\nvar se_RemovePermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/policy/{StatementId}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"StatementId\", () => input.StatementId, \"{StatementId}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]],\n [_RI]: [, input[_RI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RemovePermissionCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2017-03-31/tags/{Resource}\");\n b.p(\"Resource\", () => input.Resource, \"{Resource}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2017-03-31/tags/{Resource}\");\n b.p(\"Resource\", () => input.Resource, \"{Resource}\", false);\n const query = (0, import_smithy_client.map)({\n [_tK]: [(0, import_smithy_client.expectNonNull)(input.TagKeys, `TagKeys`) != null, () => input[_TK] || []]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UntagResourceCommand\");\nvar se_UpdateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases/{Name}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Description: [],\n FunctionVersion: [],\n RevisionId: [],\n RoutingConfig: /* @__PURE__ */ __name((_) => se_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateAliasCommand\");\nvar se_UpdateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AllowedPublishers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"AllowedPublishers\"),\n CodeSigningPolicies: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CodeSigningPolicies\"),\n Description: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateCodeSigningConfigCommand\");\nvar se_UpdateEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/event-source-mappings/{UUID}\");\n b.p(\"UUID\", () => input.UUID, \"{UUID}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n BatchSize: [],\n BisectBatchOnFunctionError: [],\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n DocumentDBEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DocumentDBEventSourceConfig\"),\n Enabled: [],\n FilterCriteria: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FilterCriteria\"),\n FunctionName: [],\n FunctionResponseTypes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FunctionResponseTypes\"),\n KMSKeyArn: [],\n MaximumBatchingWindowInSeconds: [],\n MaximumRecordAgeInSeconds: [],\n MaximumRetryAttempts: [],\n MetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"MetricsConfig\"),\n ParallelizationFactor: [],\n ProvisionedPollerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ProvisionedPollerConfig\"),\n ScalingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ScalingConfig\"),\n SourceAccessConfigurations: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SourceAccessConfigurations\"),\n TumblingWindowInSeconds: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateEventSourceMappingCommand\");\nvar se_UpdateFunctionCodeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/code\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Architectures: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Architectures\"),\n DryRun: [],\n ImageUri: [],\n Publish: [],\n RevisionId: [],\n S3Bucket: [],\n S3Key: [],\n S3ObjectVersion: [],\n SourceKMSKeyArn: [],\n ZipFile: /* @__PURE__ */ __name((_) => context.base64Encoder(_), \"ZipFile\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateFunctionCodeCommand\");\nvar se_UpdateFunctionConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/configuration\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n DeadLetterConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DeadLetterConfig\"),\n Description: [],\n Environment: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Environment\"),\n EphemeralStorage: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"EphemeralStorage\"),\n FileSystemConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FileSystemConfigs\"),\n Handler: [],\n ImageConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ImageConfig\"),\n KMSKeyArn: [],\n Layers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Layers\"),\n LoggingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"LoggingConfig\"),\n MemorySize: [],\n RevisionId: [],\n Role: [],\n Runtime: [],\n SnapStart: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SnapStart\"),\n Timeout: [],\n TracingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"TracingConfig\"),\n VpcConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"VpcConfig\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateFunctionConfigurationCommand\");\nvar se_UpdateFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n MaximumEventAgeInSeconds: [],\n MaximumRetryAttempts: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateFunctionEventInvokeConfigCommand\");\nvar se_UpdateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AuthType: [],\n Cors: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Cors\"),\n InvokeMode: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateFunctionUrlConfigCommand\");\nvar de_AddLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n RevisionId: import_smithy_client.expectString,\n Statement: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AddLayerVersionPermissionCommand\");\nvar de_AddPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Statement: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AddPermissionCommand\");\nvar de_CreateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateAliasCommand\");\nvar de_CreateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateCodeSigningConfigCommand\");\nvar de_CreateEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateEventSourceMappingCommand\");\nvar de_CreateFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateFunctionCommand\");\nvar de_CreateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AuthType: import_smithy_client.expectString,\n Cors: import_smithy_client._json,\n CreationTime: import_smithy_client.expectString,\n FunctionArn: import_smithy_client.expectString,\n FunctionUrl: import_smithy_client.expectString,\n InvokeMode: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateFunctionUrlConfigCommand\");\nvar de_DeleteAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteAliasCommand\");\nvar de_DeleteCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteCodeSigningConfigCommand\");\nvar de_DeleteEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_DeleteEventSourceMappingCommand\");\nvar de_DeleteFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionCommand\");\nvar de_DeleteFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionCodeSigningConfigCommand\");\nvar de_DeleteFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionConcurrencyCommand\");\nvar de_DeleteFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionEventInvokeConfigCommand\");\nvar de_DeleteFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionUrlConfigCommand\");\nvar de_DeleteLayerVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteLayerVersionCommand\");\nvar de_DeleteProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteProvisionedConcurrencyConfigCommand\");\nvar de_GetAccountSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AccountLimit: import_smithy_client._json,\n AccountUsage: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetAccountSettingsCommand\");\nvar de_GetAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetAliasCommand\");\nvar de_GetCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetCodeSigningConfigCommand\");\nvar de_GetEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetEventSourceMappingCommand\");\nvar de_GetFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Code: import_smithy_client._json,\n Concurrency: import_smithy_client._json,\n Configuration: import_smithy_client._json,\n Tags: import_smithy_client._json,\n TagsError: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionCommand\");\nvar de_GetFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfigArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionCodeSigningConfigCommand\");\nvar de_GetFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n ReservedConcurrentExecutions: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionConcurrencyCommand\");\nvar de_GetFunctionConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionConfigurationCommand\");\nvar de_GetFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionEventInvokeConfigCommand\");\nvar de_GetFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n RecursiveLoop: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionRecursionConfigCommand\");\nvar de_GetFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AuthType: import_smithy_client.expectString,\n Cors: import_smithy_client._json,\n CreationTime: import_smithy_client.expectString,\n FunctionArn: import_smithy_client.expectString,\n FunctionUrl: import_smithy_client.expectString,\n InvokeMode: import_smithy_client.expectString,\n LastModifiedTime: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionUrlConfigCommand\");\nvar de_GetLayerVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CompatibleArchitectures: import_smithy_client._json,\n CompatibleRuntimes: import_smithy_client._json,\n Content: import_smithy_client._json,\n CreatedDate: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LayerArn: import_smithy_client.expectString,\n LayerVersionArn: import_smithy_client.expectString,\n LicenseInfo: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetLayerVersionCommand\");\nvar de_GetLayerVersionByArnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CompatibleArchitectures: import_smithy_client._json,\n CompatibleRuntimes: import_smithy_client._json,\n Content: import_smithy_client._json,\n CreatedDate: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LayerArn: import_smithy_client.expectString,\n LayerVersionArn: import_smithy_client.expectString,\n LicenseInfo: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetLayerVersionByArnCommand\");\nvar de_GetLayerVersionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Policy: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetLayerVersionPolicyCommand\");\nvar de_GetPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Policy: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetPolicyCommand\");\nvar de_GetProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AllocatedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n AvailableProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n LastModified: import_smithy_client.expectString,\n RequestedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n Status: import_smithy_client.expectString,\n StatusReason: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetProvisionedConcurrencyConfigCommand\");\nvar de_GetRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionArn: import_smithy_client.expectString,\n RuntimeVersionArn: import_smithy_client.expectString,\n UpdateRuntimeOn: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRuntimeManagementConfigCommand\");\nvar de_InvokeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_FE]: [, output.headers[_xafe]],\n [_LR]: [, output.headers[_xalr]],\n [_EV]: [, output.headers[_xaev]]\n });\n const data = await (0, import_smithy_client.collectBody)(output.body, context);\n contents.Payload = data;\n (0, import_smithy_client.map)(contents, {\n StatusCode: [, output.statusCode]\n });\n return contents;\n}, \"de_InvokeCommand\");\nvar de_InvokeAsyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n (0, import_smithy_client.map)(contents, {\n Status: [, output.statusCode]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_InvokeAsyncCommand\");\nvar de_InvokeWithResponseStreamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_EV]: [, output.headers[_xaev]],\n [_RSCT]: [, output.headers[_ct]]\n });\n const data = output.body;\n contents.EventStream = de_InvokeWithResponseStreamResponseEvent(data, context);\n (0, import_smithy_client.map)(contents, {\n StatusCode: [, output.statusCode]\n });\n return contents;\n}, \"de_InvokeWithResponseStreamCommand\");\nvar de_ListAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Aliases: /* @__PURE__ */ __name((_) => de_AliasList(_, context), \"Aliases\"),\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAliasesCommand\");\nvar de_ListCodeSigningConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfigs: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListCodeSigningConfigsCommand\");\nvar de_ListEventSourceMappingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n EventSourceMappings: /* @__PURE__ */ __name((_) => de_EventSourceMappingsList(_, context), \"EventSourceMappings\"),\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListEventSourceMappingsCommand\");\nvar de_ListFunctionEventInvokeConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionEventInvokeConfigs: /* @__PURE__ */ __name((_) => de_FunctionEventInvokeConfigList(_, context), \"FunctionEventInvokeConfigs\"),\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionEventInvokeConfigsCommand\");\nvar de_ListFunctionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Functions: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionsCommand\");\nvar de_ListFunctionsByCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionArns: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionsByCodeSigningConfigCommand\");\nvar de_ListFunctionUrlConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionUrlConfigs: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionUrlConfigsCommand\");\nvar de_ListLayersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Layers: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListLayersCommand\");\nvar de_ListLayerVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n LayerVersions: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListLayerVersionsCommand\");\nvar de_ListProvisionedConcurrencyConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n NextMarker: import_smithy_client.expectString,\n ProvisionedConcurrencyConfigs: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListProvisionedConcurrencyConfigsCommand\");\nvar de_ListTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Tags: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTagsCommand\");\nvar de_ListVersionsByFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n NextMarker: import_smithy_client.expectString,\n Versions: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListVersionsByFunctionCommand\");\nvar de_PublishLayerVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CompatibleArchitectures: import_smithy_client._json,\n CompatibleRuntimes: import_smithy_client._json,\n Content: import_smithy_client._json,\n CreatedDate: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LayerArn: import_smithy_client.expectString,\n LayerVersionArn: import_smithy_client.expectString,\n LicenseInfo: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PublishLayerVersionCommand\");\nvar de_PublishVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PublishVersionCommand\");\nvar de_PutFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfigArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionCodeSigningConfigCommand\");\nvar de_PutFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n ReservedConcurrentExecutions: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionConcurrencyCommand\");\nvar de_PutFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionEventInvokeConfigCommand\");\nvar de_PutFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n RecursiveLoop: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionRecursionConfigCommand\");\nvar de_PutProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AllocatedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n AvailableProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n LastModified: import_smithy_client.expectString,\n RequestedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n Status: import_smithy_client.expectString,\n StatusReason: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutProvisionedConcurrencyConfigCommand\");\nvar de_PutRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionArn: import_smithy_client.expectString,\n RuntimeVersionArn: import_smithy_client.expectString,\n UpdateRuntimeOn: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutRuntimeManagementConfigCommand\");\nvar de_RemoveLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RemoveLayerVersionPermissionCommand\");\nvar de_RemovePermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RemovePermissionCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateAliasCommand\");\nvar de_UpdateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateCodeSigningConfigCommand\");\nvar de_UpdateEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateEventSourceMappingCommand\");\nvar de_UpdateFunctionCodeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionCodeCommand\");\nvar de_UpdateFunctionConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionConfigurationCommand\");\nvar de_UpdateFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionEventInvokeConfigCommand\");\nvar de_UpdateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AuthType: import_smithy_client.expectString,\n Cors: import_smithy_client._json,\n CreationTime: import_smithy_client.expectString,\n FunctionArn: import_smithy_client.expectString,\n FunctionUrl: import_smithy_client.expectString,\n InvokeMode: import_smithy_client.expectString,\n LastModifiedTime: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionUrlConfigCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidParameterValueException\":\n case \"com.amazonaws.lambda#InvalidParameterValueException\":\n throw await de_InvalidParameterValueExceptionRes(parsedOutput, context);\n case \"PolicyLengthExceededException\":\n case \"com.amazonaws.lambda#PolicyLengthExceededException\":\n throw await de_PolicyLengthExceededExceptionRes(parsedOutput, context);\n case \"PreconditionFailedException\":\n case \"com.amazonaws.lambda#PreconditionFailedException\":\n throw await de_PreconditionFailedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.lambda#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.lambda#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ServiceException\":\n case \"com.amazonaws.lambda#ServiceException\":\n throw await de_ServiceExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.lambda#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"CodeSigningConfigNotFoundException\":\n case \"com.amazonaws.lambda#CodeSigningConfigNotFoundException\":\n throw await de_CodeSigningConfigNotFoundExceptionRes(parsedOutput, context);\n case \"CodeStorageExceededException\":\n case \"com.amazonaws.lambda#CodeStorageExceededException\":\n throw await de_CodeStorageExceededExceptionRes(parsedOutput, context);\n case \"CodeVerificationFailedException\":\n case \"com.amazonaws.lambda#CodeVerificationFailedException\":\n throw await de_CodeVerificationFailedExceptionRes(parsedOutput, context);\n case \"InvalidCodeSignatureException\":\n case \"com.amazonaws.lambda#InvalidCodeSignatureException\":\n throw await de_InvalidCodeSignatureExceptionRes(parsedOutput, context);\n case \"ResourceInUseException\":\n case \"com.amazonaws.lambda#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"ProvisionedConcurrencyConfigNotFoundException\":\n case \"com.amazonaws.lambda#ProvisionedConcurrencyConfigNotFoundException\":\n throw await de_ProvisionedConcurrencyConfigNotFoundExceptionRes(parsedOutput, context);\n case \"EC2AccessDeniedException\":\n case \"com.amazonaws.lambda#EC2AccessDeniedException\":\n throw await de_EC2AccessDeniedExceptionRes(parsedOutput, context);\n case \"EC2ThrottledException\":\n case \"com.amazonaws.lambda#EC2ThrottledException\":\n throw await de_EC2ThrottledExceptionRes(parsedOutput, context);\n case \"EC2UnexpectedException\":\n case \"com.amazonaws.lambda#EC2UnexpectedException\":\n throw await de_EC2UnexpectedExceptionRes(parsedOutput, context);\n case \"EFSIOException\":\n case \"com.amazonaws.lambda#EFSIOException\":\n throw await de_EFSIOExceptionRes(parsedOutput, context);\n case \"EFSMountConnectivityException\":\n case \"com.amazonaws.lambda#EFSMountConnectivityException\":\n throw await de_EFSMountConnectivityExceptionRes(parsedOutput, context);\n case \"EFSMountFailureException\":\n case \"com.amazonaws.lambda#EFSMountFailureException\":\n throw await de_EFSMountFailureExceptionRes(parsedOutput, context);\n case \"EFSMountTimeoutException\":\n case \"com.amazonaws.lambda#EFSMountTimeoutException\":\n throw await de_EFSMountTimeoutExceptionRes(parsedOutput, context);\n case \"ENILimitReachedException\":\n case \"com.amazonaws.lambda#ENILimitReachedException\":\n throw await de_ENILimitReachedExceptionRes(parsedOutput, context);\n case \"InvalidRequestContentException\":\n case \"com.amazonaws.lambda#InvalidRequestContentException\":\n throw await de_InvalidRequestContentExceptionRes(parsedOutput, context);\n case \"InvalidRuntimeException\":\n case \"com.amazonaws.lambda#InvalidRuntimeException\":\n throw await de_InvalidRuntimeExceptionRes(parsedOutput, context);\n case \"InvalidSecurityGroupIDException\":\n case \"com.amazonaws.lambda#InvalidSecurityGroupIDException\":\n throw await de_InvalidSecurityGroupIDExceptionRes(parsedOutput, context);\n case \"InvalidSubnetIDException\":\n case \"com.amazonaws.lambda#InvalidSubnetIDException\":\n throw await de_InvalidSubnetIDExceptionRes(parsedOutput, context);\n case \"InvalidZipFileException\":\n case \"com.amazonaws.lambda#InvalidZipFileException\":\n throw await de_InvalidZipFileExceptionRes(parsedOutput, context);\n case \"KMSAccessDeniedException\":\n case \"com.amazonaws.lambda#KMSAccessDeniedException\":\n throw await de_KMSAccessDeniedExceptionRes(parsedOutput, context);\n case \"KMSDisabledException\":\n case \"com.amazonaws.lambda#KMSDisabledException\":\n throw await de_KMSDisabledExceptionRes(parsedOutput, context);\n case \"KMSInvalidStateException\":\n case \"com.amazonaws.lambda#KMSInvalidStateException\":\n throw await de_KMSInvalidStateExceptionRes(parsedOutput, context);\n case \"KMSNotFoundException\":\n case \"com.amazonaws.lambda#KMSNotFoundException\":\n throw await de_KMSNotFoundExceptionRes(parsedOutput, context);\n case \"RecursiveInvocationException\":\n case \"com.amazonaws.lambda#RecursiveInvocationException\":\n throw await de_RecursiveInvocationExceptionRes(parsedOutput, context);\n case \"RequestTooLargeException\":\n case \"com.amazonaws.lambda#RequestTooLargeException\":\n throw await de_RequestTooLargeExceptionRes(parsedOutput, context);\n case \"ResourceNotReadyException\":\n case \"com.amazonaws.lambda#ResourceNotReadyException\":\n throw await de_ResourceNotReadyExceptionRes(parsedOutput, context);\n case \"SnapStartException\":\n case \"com.amazonaws.lambda#SnapStartException\":\n throw await de_SnapStartExceptionRes(parsedOutput, context);\n case \"SnapStartNotReadyException\":\n case \"com.amazonaws.lambda#SnapStartNotReadyException\":\n throw await de_SnapStartNotReadyExceptionRes(parsedOutput, context);\n case \"SnapStartTimeoutException\":\n case \"com.amazonaws.lambda#SnapStartTimeoutException\":\n throw await de_SnapStartTimeoutExceptionRes(parsedOutput, context);\n case \"SubnetIPAddressLimitReachedException\":\n case \"com.amazonaws.lambda#SubnetIPAddressLimitReachedException\":\n throw await de_SubnetIPAddressLimitReachedExceptionRes(parsedOutput, context);\n case \"UnsupportedMediaTypeException\":\n case \"com.amazonaws.lambda#UnsupportedMediaTypeException\":\n throw await de_UnsupportedMediaTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(LambdaServiceException);\nvar de_CodeSigningConfigNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new CodeSigningConfigNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_CodeSigningConfigNotFoundExceptionRes\");\nvar de_CodeStorageExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new CodeStorageExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_CodeStorageExceededExceptionRes\");\nvar de_CodeVerificationFailedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new CodeVerificationFailedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_CodeVerificationFailedExceptionRes\");\nvar de_EC2AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EC2AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EC2AccessDeniedExceptionRes\");\nvar de_EC2ThrottledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EC2ThrottledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EC2ThrottledExceptionRes\");\nvar de_EC2UnexpectedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n EC2ErrorCode: import_smithy_client.expectString,\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EC2UnexpectedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EC2UnexpectedExceptionRes\");\nvar de_EFSIOExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSIOException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSIOExceptionRes\");\nvar de_EFSMountConnectivityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSMountConnectivityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSMountConnectivityExceptionRes\");\nvar de_EFSMountFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSMountFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSMountFailureExceptionRes\");\nvar de_EFSMountTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSMountTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSMountTimeoutExceptionRes\");\nvar de_ENILimitReachedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ENILimitReachedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ENILimitReachedExceptionRes\");\nvar de_InvalidCodeSignatureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidCodeSignatureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidCodeSignatureExceptionRes\");\nvar de_InvalidParameterValueExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidParameterValueException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidParameterValueExceptionRes\");\nvar de_InvalidRequestContentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestContentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestContentExceptionRes\");\nvar de_InvalidRuntimeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRuntimeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRuntimeExceptionRes\");\nvar de_InvalidSecurityGroupIDExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidSecurityGroupIDException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidSecurityGroupIDExceptionRes\");\nvar de_InvalidSubnetIDExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidSubnetIDException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidSubnetIDExceptionRes\");\nvar de_InvalidZipFileExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidZipFileException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidZipFileExceptionRes\");\nvar de_KMSAccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSAccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSAccessDeniedExceptionRes\");\nvar de_KMSDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSDisabledExceptionRes\");\nvar de_KMSInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSInvalidStateExceptionRes\");\nvar de_KMSNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSNotFoundExceptionRes\");\nvar de_PolicyLengthExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new PolicyLengthExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_PolicyLengthExceededExceptionRes\");\nvar de_PreconditionFailedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new PreconditionFailedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_PreconditionFailedExceptionRes\");\nvar de_ProvisionedConcurrencyConfigNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ProvisionedConcurrencyConfigNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ProvisionedConcurrencyConfigNotFoundExceptionRes\");\nvar de_RecursiveInvocationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new RecursiveInvocationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_RecursiveInvocationExceptionRes\");\nvar de_RequestTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new RequestTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_RequestTooLargeExceptionRes\");\nvar de_ResourceConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceConflictExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ResourceNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotReadyExceptionRes\");\nvar de_ServiceExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ServiceExceptionRes\");\nvar de_SnapStartExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SnapStartException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SnapStartExceptionRes\");\nvar de_SnapStartNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SnapStartNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SnapStartNotReadyExceptionRes\");\nvar de_SnapStartTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SnapStartTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SnapStartTimeoutExceptionRes\");\nvar de_SubnetIPAddressLimitReachedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SubnetIPAddressLimitReachedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SubnetIPAddressLimitReachedExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({\n [_rAS]: [, parsedOutput.headers[_ra]]\n });\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Reason: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnsupportedMediaTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedMediaTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedMediaTypeExceptionRes\");\nvar de_InvokeWithResponseStreamResponseEvent = /* @__PURE__ */ __name((output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"PayloadChunk\"] != null) {\n return {\n PayloadChunk: await de_InvokeResponseStreamUpdate_event(event[\"PayloadChunk\"], context)\n };\n }\n if (event[\"InvokeComplete\"] != null) {\n return {\n InvokeComplete: await de_InvokeWithResponseStreamCompleteEvent_event(event[\"InvokeComplete\"], context)\n };\n }\n return { $unknown: output };\n });\n}, \"de_InvokeWithResponseStreamResponseEvent\");\nvar de_InvokeResponseStreamUpdate_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n contents.Payload = output.body;\n return contents;\n}, \"de_InvokeResponseStreamUpdate_event\");\nvar de_InvokeWithResponseStreamCompleteEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n Object.assign(contents, (0, import_smithy_client._json)(data));\n return contents;\n}, \"de_InvokeWithResponseStreamCompleteEvent_event\");\nvar se_AdditionalVersionWeights = /* @__PURE__ */ __name((input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, import_smithy_client.serializeFloat)(value);\n return acc;\n }, {});\n}, \"se_AdditionalVersionWeights\");\nvar se_AliasRoutingConfiguration = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AdditionalVersionWeights: /* @__PURE__ */ __name((_) => se_AdditionalVersionWeights(_, context), \"AdditionalVersionWeights\")\n });\n}, \"se_AliasRoutingConfiguration\");\nvar se_FunctionCode = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ImageUri: [],\n S3Bucket: [],\n S3Key: [],\n S3ObjectVersion: [],\n SourceKMSKeyArn: [],\n ZipFile: context.base64Encoder\n });\n}, \"se_FunctionCode\");\nvar se_LayerVersionContentInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n S3Bucket: [],\n S3Key: [],\n S3ObjectVersion: [],\n ZipFile: context.base64Encoder\n });\n}, \"se_LayerVersionContentInput\");\nvar de_AdditionalVersionWeights = /* @__PURE__ */ __name((output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, import_smithy_client.limitedParseDouble)(value);\n return acc;\n }, {});\n}, \"de_AdditionalVersionWeights\");\nvar de_AliasConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n}, \"de_AliasConfiguration\");\nvar de_AliasList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AliasConfiguration(entry, context);\n });\n return retVal;\n}, \"de_AliasList\");\nvar de_AliasRoutingConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AdditionalVersionWeights: /* @__PURE__ */ __name((_) => de_AdditionalVersionWeights(_, context), \"AdditionalVersionWeights\")\n });\n}, \"de_AliasRoutingConfiguration\");\nvar de_EventSourceMappingConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n}, \"de_EventSourceMappingConfiguration\");\nvar de_EventSourceMappingsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_EventSourceMappingConfiguration(entry, context);\n });\n return retVal;\n}, \"de_EventSourceMappingsList\");\nvar de_FunctionEventInvokeConfig = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n}, \"de_FunctionEventInvokeConfig\");\nvar de_FunctionEventInvokeConfigList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_FunctionEventInvokeConfig(entry, context);\n });\n return retVal;\n}, \"de_FunctionEventInvokeConfigList\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _A = \"Arn\";\nvar _CA = \"CompatibleArchitecture\";\nvar _CC = \"ClientContext\";\nvar _CR = \"CompatibleRuntime\";\nvar _ESA = \"EventSourceArn\";\nvar _EV = \"ExecutedVersion\";\nvar _FE = \"FunctionError\";\nvar _FN = \"FunctionName\";\nvar _FV = \"FunctionVersion\";\nvar _IT = \"InvocationType\";\nvar _L = \"List\";\nvar _LR = \"LogResult\";\nvar _LT = \"LogType\";\nvar _M = \"Marker\";\nvar _MI = \"MaxItems\";\nvar _MR = \"MasterRegion\";\nvar _Q = \"Qualifier\";\nvar _RI = \"RevisionId\";\nvar _RSCT = \"ResponseStreamContentType\";\nvar _TK = \"TagKeys\";\nvar _ct = \"content-type\";\nvar _f = \"find\";\nvar _rAS = \"retryAfterSeconds\";\nvar _ra = \"retry-after\";\nvar _tK = \"tagKeys\";\nvar _xacc = \"x-amz-client-context\";\nvar _xaev = \"x-amz-executed-version\";\nvar _xafe = \"x-amz-function-error\";\nvar _xait = \"x-amz-invocation-type\";\nvar _xalr = \"x-amz-log-result\";\nvar _xalt = \"x-amz-log-type\";\n\n// src/commands/AddLayerVersionPermissionCommand.ts\nvar AddLayerVersionPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"AddLayerVersionPermission\", {}).n(\"LambdaClient\", \"AddLayerVersionPermissionCommand\").f(void 0, void 0).ser(se_AddLayerVersionPermissionCommand).de(de_AddLayerVersionPermissionCommand).build() {\n static {\n __name(this, \"AddLayerVersionPermissionCommand\");\n }\n};\n\n// src/commands/AddPermissionCommand.ts\n\n\n\nvar AddPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"AddPermission\", {}).n(\"LambdaClient\", \"AddPermissionCommand\").f(void 0, void 0).ser(se_AddPermissionCommand).de(de_AddPermissionCommand).build() {\n static {\n __name(this, \"AddPermissionCommand\");\n }\n};\n\n// src/commands/CreateAliasCommand.ts\n\n\n\nvar CreateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateAlias\", {}).n(\"LambdaClient\", \"CreateAliasCommand\").f(void 0, void 0).ser(se_CreateAliasCommand).de(de_CreateAliasCommand).build() {\n static {\n __name(this, \"CreateAliasCommand\");\n }\n};\n\n// src/commands/CreateCodeSigningConfigCommand.ts\n\n\n\nvar CreateCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateCodeSigningConfig\", {}).n(\"LambdaClient\", \"CreateCodeSigningConfigCommand\").f(void 0, void 0).ser(se_CreateCodeSigningConfigCommand).de(de_CreateCodeSigningConfigCommand).build() {\n static {\n __name(this, \"CreateCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/CreateEventSourceMappingCommand.ts\n\n\n\nvar CreateEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateEventSourceMapping\", {}).n(\"LambdaClient\", \"CreateEventSourceMappingCommand\").f(void 0, void 0).ser(se_CreateEventSourceMappingCommand).de(de_CreateEventSourceMappingCommand).build() {\n static {\n __name(this, \"CreateEventSourceMappingCommand\");\n }\n};\n\n// src/commands/CreateFunctionCommand.ts\n\n\n\nvar CreateFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateFunction\", {}).n(\"LambdaClient\", \"CreateFunctionCommand\").f(CreateFunctionRequestFilterSensitiveLog, FunctionConfigurationFilterSensitiveLog).ser(se_CreateFunctionCommand).de(de_CreateFunctionCommand).build() {\n static {\n __name(this, \"CreateFunctionCommand\");\n }\n};\n\n// src/commands/CreateFunctionUrlConfigCommand.ts\n\n\n\nvar CreateFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateFunctionUrlConfig\", {}).n(\"LambdaClient\", \"CreateFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_CreateFunctionUrlConfigCommand).de(de_CreateFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"CreateFunctionUrlConfigCommand\");\n }\n};\n\n// src/commands/DeleteAliasCommand.ts\n\n\n\nvar DeleteAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteAlias\", {}).n(\"LambdaClient\", \"DeleteAliasCommand\").f(void 0, void 0).ser(se_DeleteAliasCommand).de(de_DeleteAliasCommand).build() {\n static {\n __name(this, \"DeleteAliasCommand\");\n }\n};\n\n// src/commands/DeleteCodeSigningConfigCommand.ts\n\n\n\nvar DeleteCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteCodeSigningConfig\", {}).n(\"LambdaClient\", \"DeleteCodeSigningConfigCommand\").f(void 0, void 0).ser(se_DeleteCodeSigningConfigCommand).de(de_DeleteCodeSigningConfigCommand).build() {\n static {\n __name(this, \"DeleteCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/DeleteEventSourceMappingCommand.ts\n\n\n\nvar DeleteEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteEventSourceMapping\", {}).n(\"LambdaClient\", \"DeleteEventSourceMappingCommand\").f(void 0, void 0).ser(se_DeleteEventSourceMappingCommand).de(de_DeleteEventSourceMappingCommand).build() {\n static {\n __name(this, \"DeleteEventSourceMappingCommand\");\n }\n};\n\n// src/commands/DeleteFunctionCodeSigningConfigCommand.ts\n\n\n\nvar DeleteFunctionCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionCodeSigningConfig\", {}).n(\"LambdaClient\", \"DeleteFunctionCodeSigningConfigCommand\").f(void 0, void 0).ser(se_DeleteFunctionCodeSigningConfigCommand).de(de_DeleteFunctionCodeSigningConfigCommand).build() {\n static {\n __name(this, \"DeleteFunctionCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/DeleteFunctionCommand.ts\n\n\n\nvar DeleteFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunction\", {}).n(\"LambdaClient\", \"DeleteFunctionCommand\").f(void 0, void 0).ser(se_DeleteFunctionCommand).de(de_DeleteFunctionCommand).build() {\n static {\n __name(this, \"DeleteFunctionCommand\");\n }\n};\n\n// src/commands/DeleteFunctionConcurrencyCommand.ts\n\n\n\nvar DeleteFunctionConcurrencyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionConcurrency\", {}).n(\"LambdaClient\", \"DeleteFunctionConcurrencyCommand\").f(void 0, void 0).ser(se_DeleteFunctionConcurrencyCommand).de(de_DeleteFunctionConcurrencyCommand).build() {\n static {\n __name(this, \"DeleteFunctionConcurrencyCommand\");\n }\n};\n\n// src/commands/DeleteFunctionEventInvokeConfigCommand.ts\n\n\n\nvar DeleteFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"DeleteFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_DeleteFunctionEventInvokeConfigCommand).de(de_DeleteFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"DeleteFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/DeleteFunctionUrlConfigCommand.ts\n\n\n\nvar DeleteFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionUrlConfig\", {}).n(\"LambdaClient\", \"DeleteFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_DeleteFunctionUrlConfigCommand).de(de_DeleteFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"DeleteFunctionUrlConfigCommand\");\n }\n};\n\n// src/commands/DeleteLayerVersionCommand.ts\n\n\n\nvar DeleteLayerVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteLayerVersion\", {}).n(\"LambdaClient\", \"DeleteLayerVersionCommand\").f(void 0, void 0).ser(se_DeleteLayerVersionCommand).de(de_DeleteLayerVersionCommand).build() {\n static {\n __name(this, \"DeleteLayerVersionCommand\");\n }\n};\n\n// src/commands/DeleteProvisionedConcurrencyConfigCommand.ts\n\n\n\nvar DeleteProvisionedConcurrencyConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteProvisionedConcurrencyConfig\", {}).n(\"LambdaClient\", \"DeleteProvisionedConcurrencyConfigCommand\").f(void 0, void 0).ser(se_DeleteProvisionedConcurrencyConfigCommand).de(de_DeleteProvisionedConcurrencyConfigCommand).build() {\n static {\n __name(this, \"DeleteProvisionedConcurrencyConfigCommand\");\n }\n};\n\n// src/commands/GetAccountSettingsCommand.ts\n\n\n\nvar GetAccountSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetAccountSettings\", {}).n(\"LambdaClient\", \"GetAccountSettingsCommand\").f(void 0, void 0).ser(se_GetAccountSettingsCommand).de(de_GetAccountSettingsCommand).build() {\n static {\n __name(this, \"GetAccountSettingsCommand\");\n }\n};\n\n// src/commands/GetAliasCommand.ts\n\n\n\nvar GetAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetAlias\", {}).n(\"LambdaClient\", \"GetAliasCommand\").f(void 0, void 0).ser(se_GetAliasCommand).de(de_GetAliasCommand).build() {\n static {\n __name(this, \"GetAliasCommand\");\n }\n};\n\n// src/commands/GetCodeSigningConfigCommand.ts\n\n\n\nvar GetCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetCodeSigningConfig\", {}).n(\"LambdaClient\", \"GetCodeSigningConfigCommand\").f(void 0, void 0).ser(se_GetCodeSigningConfigCommand).de(de_GetCodeSigningConfigCommand).build() {\n static {\n __name(this, \"GetCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/GetEventSourceMappingCommand.ts\n\n\n\nvar GetEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetEventSourceMapping\", {}).n(\"LambdaClient\", \"GetEventSourceMappingCommand\").f(void 0, void 0).ser(se_GetEventSourceMappingCommand).de(de_GetEventSourceMappingCommand).build() {\n static {\n __name(this, \"GetEventSourceMappingCommand\");\n }\n};\n\n// src/commands/GetFunctionCodeSigningConfigCommand.ts\n\n\n\nvar GetFunctionCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionCodeSigningConfig\", {}).n(\"LambdaClient\", \"GetFunctionCodeSigningConfigCommand\").f(void 0, void 0).ser(se_GetFunctionCodeSigningConfigCommand).de(de_GetFunctionCodeSigningConfigCommand).build() {\n static {\n __name(this, \"GetFunctionCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/GetFunctionCommand.ts\n\n\n\nvar GetFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunction\", {}).n(\"LambdaClient\", \"GetFunctionCommand\").f(void 0, GetFunctionResponseFilterSensitiveLog).ser(se_GetFunctionCommand).de(de_GetFunctionCommand).build() {\n static {\n __name(this, \"GetFunctionCommand\");\n }\n};\n\n// src/commands/GetFunctionConcurrencyCommand.ts\n\n\n\nvar GetFunctionConcurrencyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionConcurrency\", {}).n(\"LambdaClient\", \"GetFunctionConcurrencyCommand\").f(void 0, void 0).ser(se_GetFunctionConcurrencyCommand).de(de_GetFunctionConcurrencyCommand).build() {\n static {\n __name(this, \"GetFunctionConcurrencyCommand\");\n }\n};\n\n// src/commands/GetFunctionConfigurationCommand.ts\n\n\n\nvar GetFunctionConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionConfiguration\", {}).n(\"LambdaClient\", \"GetFunctionConfigurationCommand\").f(void 0, FunctionConfigurationFilterSensitiveLog).ser(se_GetFunctionConfigurationCommand).de(de_GetFunctionConfigurationCommand).build() {\n static {\n __name(this, \"GetFunctionConfigurationCommand\");\n }\n};\n\n// src/commands/GetFunctionEventInvokeConfigCommand.ts\n\n\n\nvar GetFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"GetFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_GetFunctionEventInvokeConfigCommand).de(de_GetFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"GetFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/GetFunctionRecursionConfigCommand.ts\n\n\n\nvar GetFunctionRecursionConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionRecursionConfig\", {}).n(\"LambdaClient\", \"GetFunctionRecursionConfigCommand\").f(void 0, void 0).ser(se_GetFunctionRecursionConfigCommand).de(de_GetFunctionRecursionConfigCommand).build() {\n static {\n __name(this, \"GetFunctionRecursionConfigCommand\");\n }\n};\n\n// src/commands/GetFunctionUrlConfigCommand.ts\n\n\n\nvar GetFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionUrlConfig\", {}).n(\"LambdaClient\", \"GetFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_GetFunctionUrlConfigCommand).de(de_GetFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"GetFunctionUrlConfigCommand\");\n }\n};\n\n// src/commands/GetLayerVersionByArnCommand.ts\n\n\n\nvar GetLayerVersionByArnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetLayerVersionByArn\", {}).n(\"LambdaClient\", \"GetLayerVersionByArnCommand\").f(void 0, void 0).ser(se_GetLayerVersionByArnCommand).de(de_GetLayerVersionByArnCommand).build() {\n static {\n __name(this, \"GetLayerVersionByArnCommand\");\n }\n};\n\n// src/commands/GetLayerVersionCommand.ts\n\n\n\nvar GetLayerVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetLayerVersion\", {}).n(\"LambdaClient\", \"GetLayerVersionCommand\").f(void 0, void 0).ser(se_GetLayerVersionCommand).de(de_GetLayerVersionCommand).build() {\n static {\n __name(this, \"GetLayerVersionCommand\");\n }\n};\n\n// src/commands/GetLayerVersionPolicyCommand.ts\n\n\n\nvar GetLayerVersionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetLayerVersionPolicy\", {}).n(\"LambdaClient\", \"GetLayerVersionPolicyCommand\").f(void 0, void 0).ser(se_GetLayerVersionPolicyCommand).de(de_GetLayerVersionPolicyCommand).build() {\n static {\n __name(this, \"GetLayerVersionPolicyCommand\");\n }\n};\n\n// src/commands/GetPolicyCommand.ts\n\n\n\nvar GetPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetPolicy\", {}).n(\"LambdaClient\", \"GetPolicyCommand\").f(void 0, void 0).ser(se_GetPolicyCommand).de(de_GetPolicyCommand).build() {\n static {\n __name(this, \"GetPolicyCommand\");\n }\n};\n\n// src/commands/GetProvisionedConcurrencyConfigCommand.ts\n\n\n\nvar GetProvisionedConcurrencyConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetProvisionedConcurrencyConfig\", {}).n(\"LambdaClient\", \"GetProvisionedConcurrencyConfigCommand\").f(void 0, void 0).ser(se_GetProvisionedConcurrencyConfigCommand).de(de_GetProvisionedConcurrencyConfigCommand).build() {\n static {\n __name(this, \"GetProvisionedConcurrencyConfigCommand\");\n }\n};\n\n// src/commands/GetRuntimeManagementConfigCommand.ts\n\n\n\nvar GetRuntimeManagementConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetRuntimeManagementConfig\", {}).n(\"LambdaClient\", \"GetRuntimeManagementConfigCommand\").f(void 0, void 0).ser(se_GetRuntimeManagementConfigCommand).de(de_GetRuntimeManagementConfigCommand).build() {\n static {\n __name(this, \"GetRuntimeManagementConfigCommand\");\n }\n};\n\n// src/commands/InvokeAsyncCommand.ts\n\n\n\nvar InvokeAsyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"InvokeAsync\", {}).n(\"LambdaClient\", \"InvokeAsyncCommand\").f(InvokeAsyncRequestFilterSensitiveLog, void 0).ser(se_InvokeAsyncCommand).de(de_InvokeAsyncCommand).build() {\n static {\n __name(this, \"InvokeAsyncCommand\");\n }\n};\n\n// src/commands/InvokeCommand.ts\n\n\n\nvar InvokeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"Invoke\", {}).n(\"LambdaClient\", \"InvokeCommand\").f(InvocationRequestFilterSensitiveLog, InvocationResponseFilterSensitiveLog).ser(se_InvokeCommand).de(de_InvokeCommand).build() {\n static {\n __name(this, \"InvokeCommand\");\n }\n};\n\n// src/commands/InvokeWithResponseStreamCommand.ts\n\n\n\nvar InvokeWithResponseStreamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"InvokeWithResponseStream\", {\n /**\n * @internal\n */\n eventStream: {\n output: true\n }\n}).n(\"LambdaClient\", \"InvokeWithResponseStreamCommand\").f(InvokeWithResponseStreamRequestFilterSensitiveLog, InvokeWithResponseStreamResponseFilterSensitiveLog).ser(se_InvokeWithResponseStreamCommand).de(de_InvokeWithResponseStreamCommand).build() {\n static {\n __name(this, \"InvokeWithResponseStreamCommand\");\n }\n};\n\n// src/commands/ListAliasesCommand.ts\n\n\n\nvar ListAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListAliases\", {}).n(\"LambdaClient\", \"ListAliasesCommand\").f(void 0, void 0).ser(se_ListAliasesCommand).de(de_ListAliasesCommand).build() {\n static {\n __name(this, \"ListAliasesCommand\");\n }\n};\n\n// src/commands/ListCodeSigningConfigsCommand.ts\n\n\n\nvar ListCodeSigningConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListCodeSigningConfigs\", {}).n(\"LambdaClient\", \"ListCodeSigningConfigsCommand\").f(void 0, void 0).ser(se_ListCodeSigningConfigsCommand).de(de_ListCodeSigningConfigsCommand).build() {\n static {\n __name(this, \"ListCodeSigningConfigsCommand\");\n }\n};\n\n// src/commands/ListEventSourceMappingsCommand.ts\n\n\n\nvar ListEventSourceMappingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListEventSourceMappings\", {}).n(\"LambdaClient\", \"ListEventSourceMappingsCommand\").f(void 0, void 0).ser(se_ListEventSourceMappingsCommand).de(de_ListEventSourceMappingsCommand).build() {\n static {\n __name(this, \"ListEventSourceMappingsCommand\");\n }\n};\n\n// src/commands/ListFunctionEventInvokeConfigsCommand.ts\n\n\n\nvar ListFunctionEventInvokeConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctionEventInvokeConfigs\", {}).n(\"LambdaClient\", \"ListFunctionEventInvokeConfigsCommand\").f(void 0, void 0).ser(se_ListFunctionEventInvokeConfigsCommand).de(de_ListFunctionEventInvokeConfigsCommand).build() {\n static {\n __name(this, \"ListFunctionEventInvokeConfigsCommand\");\n }\n};\n\n// src/commands/ListFunctionsByCodeSigningConfigCommand.ts\n\n\n\nvar ListFunctionsByCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctionsByCodeSigningConfig\", {}).n(\"LambdaClient\", \"ListFunctionsByCodeSigningConfigCommand\").f(void 0, void 0).ser(se_ListFunctionsByCodeSigningConfigCommand).de(de_ListFunctionsByCodeSigningConfigCommand).build() {\n static {\n __name(this, \"ListFunctionsByCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/ListFunctionsCommand.ts\n\n\n\nvar ListFunctionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctions\", {}).n(\"LambdaClient\", \"ListFunctionsCommand\").f(void 0, ListFunctionsResponseFilterSensitiveLog).ser(se_ListFunctionsCommand).de(de_ListFunctionsCommand).build() {\n static {\n __name(this, \"ListFunctionsCommand\");\n }\n};\n\n// src/commands/ListFunctionUrlConfigsCommand.ts\n\n\n\nvar ListFunctionUrlConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctionUrlConfigs\", {}).n(\"LambdaClient\", \"ListFunctionUrlConfigsCommand\").f(void 0, void 0).ser(se_ListFunctionUrlConfigsCommand).de(de_ListFunctionUrlConfigsCommand).build() {\n static {\n __name(this, \"ListFunctionUrlConfigsCommand\");\n }\n};\n\n// src/commands/ListLayersCommand.ts\n\n\n\nvar ListLayersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListLayers\", {}).n(\"LambdaClient\", \"ListLayersCommand\").f(void 0, void 0).ser(se_ListLayersCommand).de(de_ListLayersCommand).build() {\n static {\n __name(this, \"ListLayersCommand\");\n }\n};\n\n// src/commands/ListLayerVersionsCommand.ts\n\n\n\nvar ListLayerVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListLayerVersions\", {}).n(\"LambdaClient\", \"ListLayerVersionsCommand\").f(void 0, void 0).ser(se_ListLayerVersionsCommand).de(de_ListLayerVersionsCommand).build() {\n static {\n __name(this, \"ListLayerVersionsCommand\");\n }\n};\n\n// src/commands/ListProvisionedConcurrencyConfigsCommand.ts\n\n\n\nvar ListProvisionedConcurrencyConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListProvisionedConcurrencyConfigs\", {}).n(\"LambdaClient\", \"ListProvisionedConcurrencyConfigsCommand\").f(void 0, void 0).ser(se_ListProvisionedConcurrencyConfigsCommand).de(de_ListProvisionedConcurrencyConfigsCommand).build() {\n static {\n __name(this, \"ListProvisionedConcurrencyConfigsCommand\");\n }\n};\n\n// src/commands/ListTagsCommand.ts\n\n\n\nvar ListTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListTags\", {}).n(\"LambdaClient\", \"ListTagsCommand\").f(void 0, void 0).ser(se_ListTagsCommand).de(de_ListTagsCommand).build() {\n static {\n __name(this, \"ListTagsCommand\");\n }\n};\n\n// src/commands/ListVersionsByFunctionCommand.ts\n\n\n\nvar ListVersionsByFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListVersionsByFunction\", {}).n(\"LambdaClient\", \"ListVersionsByFunctionCommand\").f(void 0, ListVersionsByFunctionResponseFilterSensitiveLog).ser(se_ListVersionsByFunctionCommand).de(de_ListVersionsByFunctionCommand).build() {\n static {\n __name(this, \"ListVersionsByFunctionCommand\");\n }\n};\n\n// src/commands/PublishLayerVersionCommand.ts\n\n\n\nvar PublishLayerVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PublishLayerVersion\", {}).n(\"LambdaClient\", \"PublishLayerVersionCommand\").f(PublishLayerVersionRequestFilterSensitiveLog, void 0).ser(se_PublishLayerVersionCommand).de(de_PublishLayerVersionCommand).build() {\n static {\n __name(this, \"PublishLayerVersionCommand\");\n }\n};\n\n// src/commands/PublishVersionCommand.ts\n\n\n\nvar PublishVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PublishVersion\", {}).n(\"LambdaClient\", \"PublishVersionCommand\").f(void 0, FunctionConfigurationFilterSensitiveLog).ser(se_PublishVersionCommand).de(de_PublishVersionCommand).build() {\n static {\n __name(this, \"PublishVersionCommand\");\n }\n};\n\n// src/commands/PutFunctionCodeSigningConfigCommand.ts\n\n\n\nvar PutFunctionCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionCodeSigningConfig\", {}).n(\"LambdaClient\", \"PutFunctionCodeSigningConfigCommand\").f(void 0, void 0).ser(se_PutFunctionCodeSigningConfigCommand).de(de_PutFunctionCodeSigningConfigCommand).build() {\n static {\n __name(this, \"PutFunctionCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/PutFunctionConcurrencyCommand.ts\n\n\n\nvar PutFunctionConcurrencyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionConcurrency\", {}).n(\"LambdaClient\", \"PutFunctionConcurrencyCommand\").f(void 0, void 0).ser(se_PutFunctionConcurrencyCommand).de(de_PutFunctionConcurrencyCommand).build() {\n static {\n __name(this, \"PutFunctionConcurrencyCommand\");\n }\n};\n\n// src/commands/PutFunctionEventInvokeConfigCommand.ts\n\n\n\nvar PutFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"PutFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_PutFunctionEventInvokeConfigCommand).de(de_PutFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"PutFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/PutFunctionRecursionConfigCommand.ts\n\n\n\nvar PutFunctionRecursionConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionRecursionConfig\", {}).n(\"LambdaClient\", \"PutFunctionRecursionConfigCommand\").f(void 0, void 0).ser(se_PutFunctionRecursionConfigCommand).de(de_PutFunctionRecursionConfigCommand).build() {\n static {\n __name(this, \"PutFunctionRecursionConfigCommand\");\n }\n};\n\n// src/commands/PutProvisionedConcurrencyConfigCommand.ts\n\n\n\nvar PutProvisionedConcurrencyConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutProvisionedConcurrencyConfig\", {}).n(\"LambdaClient\", \"PutProvisionedConcurrencyConfigCommand\").f(void 0, void 0).ser(se_PutProvisionedConcurrencyConfigCommand).de(de_PutProvisionedConcurrencyConfigCommand).build() {\n static {\n __name(this, \"PutProvisionedConcurrencyConfigCommand\");\n }\n};\n\n// src/commands/PutRuntimeManagementConfigCommand.ts\n\n\n\nvar PutRuntimeManagementConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutRuntimeManagementConfig\", {}).n(\"LambdaClient\", \"PutRuntimeManagementConfigCommand\").f(void 0, void 0).ser(se_PutRuntimeManagementConfigCommand).de(de_PutRuntimeManagementConfigCommand).build() {\n static {\n __name(this, \"PutRuntimeManagementConfigCommand\");\n }\n};\n\n// src/commands/RemoveLayerVersionPermissionCommand.ts\n\n\n\nvar RemoveLayerVersionPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"RemoveLayerVersionPermission\", {}).n(\"LambdaClient\", \"RemoveLayerVersionPermissionCommand\").f(void 0, void 0).ser(se_RemoveLayerVersionPermissionCommand).de(de_RemoveLayerVersionPermissionCommand).build() {\n static {\n __name(this, \"RemoveLayerVersionPermissionCommand\");\n }\n};\n\n// src/commands/RemovePermissionCommand.ts\n\n\n\nvar RemovePermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"RemovePermission\", {}).n(\"LambdaClient\", \"RemovePermissionCommand\").f(void 0, void 0).ser(se_RemovePermissionCommand).de(de_RemovePermissionCommand).build() {\n static {\n __name(this, \"RemovePermissionCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"TagResource\", {}).n(\"LambdaClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UntagResource\", {}).n(\"LambdaClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateAliasCommand.ts\n\n\n\nvar UpdateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateAlias\", {}).n(\"LambdaClient\", \"UpdateAliasCommand\").f(void 0, void 0).ser(se_UpdateAliasCommand).de(de_UpdateAliasCommand).build() {\n static {\n __name(this, \"UpdateAliasCommand\");\n }\n};\n\n// src/commands/UpdateCodeSigningConfigCommand.ts\n\n\n\nvar UpdateCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateCodeSigningConfig\", {}).n(\"LambdaClient\", \"UpdateCodeSigningConfigCommand\").f(void 0, void 0).ser(se_UpdateCodeSigningConfigCommand).de(de_UpdateCodeSigningConfigCommand).build() {\n static {\n __name(this, \"UpdateCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/UpdateEventSourceMappingCommand.ts\n\n\n\nvar UpdateEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateEventSourceMapping\", {}).n(\"LambdaClient\", \"UpdateEventSourceMappingCommand\").f(void 0, void 0).ser(se_UpdateEventSourceMappingCommand).de(de_UpdateEventSourceMappingCommand).build() {\n static {\n __name(this, \"UpdateEventSourceMappingCommand\");\n }\n};\n\n// src/commands/UpdateFunctionCodeCommand.ts\n\n\n\nvar UpdateFunctionCodeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionCode\", {}).n(\"LambdaClient\", \"UpdateFunctionCodeCommand\").f(UpdateFunctionCodeRequestFilterSensitiveLog, FunctionConfigurationFilterSensitiveLog).ser(se_UpdateFunctionCodeCommand).de(de_UpdateFunctionCodeCommand).build() {\n static {\n __name(this, \"UpdateFunctionCodeCommand\");\n }\n};\n\n// src/commands/UpdateFunctionConfigurationCommand.ts\n\n\n\nvar UpdateFunctionConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionConfiguration\", {}).n(\"LambdaClient\", \"UpdateFunctionConfigurationCommand\").f(UpdateFunctionConfigurationRequestFilterSensitiveLog, FunctionConfigurationFilterSensitiveLog).ser(se_UpdateFunctionConfigurationCommand).de(de_UpdateFunctionConfigurationCommand).build() {\n static {\n __name(this, \"UpdateFunctionConfigurationCommand\");\n }\n};\n\n// src/commands/UpdateFunctionEventInvokeConfigCommand.ts\n\n\n\nvar UpdateFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"UpdateFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_UpdateFunctionEventInvokeConfigCommand).de(de_UpdateFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"UpdateFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/UpdateFunctionUrlConfigCommand.ts\n\n\n\nvar UpdateFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionUrlConfig\", {}).n(\"LambdaClient\", \"UpdateFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_UpdateFunctionUrlConfigCommand).de(de_UpdateFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"UpdateFunctionUrlConfigCommand\");\n }\n};\n\n// src/Lambda.ts\nvar commands = {\n AddLayerVersionPermissionCommand,\n AddPermissionCommand,\n CreateAliasCommand,\n CreateCodeSigningConfigCommand,\n CreateEventSourceMappingCommand,\n CreateFunctionCommand,\n CreateFunctionUrlConfigCommand,\n DeleteAliasCommand,\n DeleteCodeSigningConfigCommand,\n DeleteEventSourceMappingCommand,\n DeleteFunctionCommand,\n DeleteFunctionCodeSigningConfigCommand,\n DeleteFunctionConcurrencyCommand,\n DeleteFunctionEventInvokeConfigCommand,\n DeleteFunctionUrlConfigCommand,\n DeleteLayerVersionCommand,\n DeleteProvisionedConcurrencyConfigCommand,\n GetAccountSettingsCommand,\n GetAliasCommand,\n GetCodeSigningConfigCommand,\n GetEventSourceMappingCommand,\n GetFunctionCommand,\n GetFunctionCodeSigningConfigCommand,\n GetFunctionConcurrencyCommand,\n GetFunctionConfigurationCommand,\n GetFunctionEventInvokeConfigCommand,\n GetFunctionRecursionConfigCommand,\n GetFunctionUrlConfigCommand,\n GetLayerVersionCommand,\n GetLayerVersionByArnCommand,\n GetLayerVersionPolicyCommand,\n GetPolicyCommand,\n GetProvisionedConcurrencyConfigCommand,\n GetRuntimeManagementConfigCommand,\n InvokeCommand,\n InvokeAsyncCommand,\n InvokeWithResponseStreamCommand,\n ListAliasesCommand,\n ListCodeSigningConfigsCommand,\n ListEventSourceMappingsCommand,\n ListFunctionEventInvokeConfigsCommand,\n ListFunctionsCommand,\n ListFunctionsByCodeSigningConfigCommand,\n ListFunctionUrlConfigsCommand,\n ListLayersCommand,\n ListLayerVersionsCommand,\n ListProvisionedConcurrencyConfigsCommand,\n ListTagsCommand,\n ListVersionsByFunctionCommand,\n PublishLayerVersionCommand,\n PublishVersionCommand,\n PutFunctionCodeSigningConfigCommand,\n PutFunctionConcurrencyCommand,\n PutFunctionEventInvokeConfigCommand,\n PutFunctionRecursionConfigCommand,\n PutProvisionedConcurrencyConfigCommand,\n PutRuntimeManagementConfigCommand,\n RemoveLayerVersionPermissionCommand,\n RemovePermissionCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCodeSigningConfigCommand,\n UpdateEventSourceMappingCommand,\n UpdateFunctionCodeCommand,\n UpdateFunctionConfigurationCommand,\n UpdateFunctionEventInvokeConfigCommand,\n UpdateFunctionUrlConfigCommand\n};\nvar Lambda = class extends LambdaClient {\n static {\n __name(this, \"Lambda\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, Lambda);\n\n// src/pagination/ListAliasesPaginator.ts\n\nvar paginateListAliases = (0, import_core.createPaginator)(LambdaClient, ListAliasesCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListCodeSigningConfigsPaginator.ts\n\nvar paginateListCodeSigningConfigs = (0, import_core.createPaginator)(LambdaClient, ListCodeSigningConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListEventSourceMappingsPaginator.ts\n\nvar paginateListEventSourceMappings = (0, import_core.createPaginator)(LambdaClient, ListEventSourceMappingsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionEventInvokeConfigsPaginator.ts\n\nvar paginateListFunctionEventInvokeConfigs = (0, import_core.createPaginator)(LambdaClient, ListFunctionEventInvokeConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionUrlConfigsPaginator.ts\n\nvar paginateListFunctionUrlConfigs = (0, import_core.createPaginator)(LambdaClient, ListFunctionUrlConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionsByCodeSigningConfigPaginator.ts\n\nvar paginateListFunctionsByCodeSigningConfig = (0, import_core.createPaginator)(LambdaClient, ListFunctionsByCodeSigningConfigCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionsPaginator.ts\n\nvar paginateListFunctions = (0, import_core.createPaginator)(LambdaClient, ListFunctionsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListLayerVersionsPaginator.ts\n\nvar paginateListLayerVersions = (0, import_core.createPaginator)(LambdaClient, ListLayerVersionsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListLayersPaginator.ts\n\nvar paginateListLayers = (0, import_core.createPaginator)(LambdaClient, ListLayersCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListProvisionedConcurrencyConfigsPaginator.ts\n\nvar paginateListProvisionedConcurrencyConfigs = (0, import_core.createPaginator)(LambdaClient, ListProvisionedConcurrencyConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListVersionsByFunctionPaginator.ts\n\nvar paginateListVersionsByFunction = (0, import_core.createPaginator)(LambdaClient, ListVersionsByFunctionCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/waiters/waitForFunctionActive.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionConfigurationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Active\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForFunctionActive\");\nvar waitUntilFunctionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionActive\");\n\n// src/waiters/waitForFunctionActiveV2.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Active\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionActiveV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForFunctionActiveV2\");\nvar waitUntilFunctionActiveV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionActiveV2\");\n\n// src/waiters/waitForFunctionExists.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ResourceNotFoundException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForFunctionExists\");\nvar waitUntilFunctionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionExists\");\n\n// src/waiters/waitForFunctionUpdated.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionConfigurationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Successful\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionUpdated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForFunctionUpdated\");\nvar waitUntilFunctionUpdated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionUpdated\");\n\n// src/waiters/waitForFunctionUpdatedV2.ts\n\nvar checkState5 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Successful\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionUpdatedV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n}, \"waitForFunctionUpdatedV2\");\nvar waitUntilFunctionUpdatedV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionUpdatedV2\");\n\n// src/waiters/waitForPublishedVersionActive.ts\n\nvar checkState6 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionConfigurationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Active\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForPublishedVersionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n}, \"waitForPublishedVersionActive\");\nvar waitUntilPublishedVersionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilPublishedVersionActive\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n LambdaServiceException,\n __Client,\n LambdaClient,\n Lambda,\n $Command,\n AddLayerVersionPermissionCommand,\n AddPermissionCommand,\n CreateAliasCommand,\n CreateCodeSigningConfigCommand,\n CreateEventSourceMappingCommand,\n CreateFunctionCommand,\n CreateFunctionUrlConfigCommand,\n DeleteAliasCommand,\n DeleteCodeSigningConfigCommand,\n DeleteEventSourceMappingCommand,\n DeleteFunctionCodeSigningConfigCommand,\n DeleteFunctionCommand,\n DeleteFunctionConcurrencyCommand,\n DeleteFunctionEventInvokeConfigCommand,\n DeleteFunctionUrlConfigCommand,\n DeleteLayerVersionCommand,\n DeleteProvisionedConcurrencyConfigCommand,\n GetAccountSettingsCommand,\n GetAliasCommand,\n GetCodeSigningConfigCommand,\n GetEventSourceMappingCommand,\n GetFunctionCodeSigningConfigCommand,\n GetFunctionCommand,\n GetFunctionConcurrencyCommand,\n GetFunctionConfigurationCommand,\n GetFunctionEventInvokeConfigCommand,\n GetFunctionRecursionConfigCommand,\n GetFunctionUrlConfigCommand,\n GetLayerVersionByArnCommand,\n GetLayerVersionCommand,\n GetLayerVersionPolicyCommand,\n GetPolicyCommand,\n GetProvisionedConcurrencyConfigCommand,\n GetRuntimeManagementConfigCommand,\n InvokeAsyncCommand,\n InvokeCommand,\n InvokeWithResponseStreamCommand,\n ListAliasesCommand,\n ListCodeSigningConfigsCommand,\n ListEventSourceMappingsCommand,\n ListFunctionEventInvokeConfigsCommand,\n ListFunctionUrlConfigsCommand,\n ListFunctionsByCodeSigningConfigCommand,\n ListFunctionsCommand,\n ListLayerVersionsCommand,\n ListLayersCommand,\n ListProvisionedConcurrencyConfigsCommand,\n ListTagsCommand,\n ListVersionsByFunctionCommand,\n PublishLayerVersionCommand,\n PublishVersionCommand,\n PutFunctionCodeSigningConfigCommand,\n PutFunctionConcurrencyCommand,\n PutFunctionEventInvokeConfigCommand,\n PutFunctionRecursionConfigCommand,\n PutProvisionedConcurrencyConfigCommand,\n PutRuntimeManagementConfigCommand,\n RemoveLayerVersionPermissionCommand,\n RemovePermissionCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCodeSigningConfigCommand,\n UpdateEventSourceMappingCommand,\n UpdateFunctionCodeCommand,\n UpdateFunctionConfigurationCommand,\n UpdateFunctionEventInvokeConfigCommand,\n UpdateFunctionUrlConfigCommand,\n paginateListAliases,\n paginateListCodeSigningConfigs,\n paginateListEventSourceMappings,\n paginateListFunctionEventInvokeConfigs,\n paginateListFunctionUrlConfigs,\n paginateListFunctionsByCodeSigningConfig,\n paginateListFunctions,\n paginateListLayerVersions,\n paginateListLayers,\n paginateListProvisionedConcurrencyConfigs,\n paginateListVersionsByFunction,\n waitForFunctionActive,\n waitUntilFunctionActive,\n waitForFunctionActiveV2,\n waitUntilFunctionActiveV2,\n waitForFunctionExists,\n waitUntilFunctionExists,\n waitForFunctionUpdated,\n waitUntilFunctionUpdated,\n waitForFunctionUpdatedV2,\n waitUntilFunctionUpdatedV2,\n waitForPublishedVersionActive,\n waitUntilPublishedVersionActive,\n InvalidParameterValueException,\n PolicyLengthExceededException,\n PreconditionFailedException,\n ResourceConflictException,\n ResourceNotFoundException,\n ServiceException,\n ThrottleReason,\n TooManyRequestsException,\n FunctionUrlAuthType,\n ApplicationLogLevel,\n Architecture,\n CodeSigningPolicy,\n FullDocument,\n FunctionResponseType,\n EventSourceMappingMetric,\n EndPointType,\n SourceAccessType,\n EventSourcePosition,\n CodeSigningConfigNotFoundException,\n CodeStorageExceededException,\n CodeVerificationFailedException,\n LogFormat,\n SystemLogLevel,\n PackageType,\n Runtime,\n SnapStartApplyOn,\n TracingMode,\n LastUpdateStatus,\n LastUpdateStatusReasonCode,\n SnapStartOptimizationStatus,\n State,\n StateReasonCode,\n InvalidCodeSignatureException,\n InvokeMode,\n ResourceInUseException,\n RecursiveLoop,\n ProvisionedConcurrencyStatusEnum,\n ProvisionedConcurrencyConfigNotFoundException,\n UpdateRuntimeOn,\n EC2AccessDeniedException,\n EC2ThrottledException,\n EC2UnexpectedException,\n EFSIOException,\n EFSMountConnectivityException,\n EFSMountFailureException,\n EFSMountTimeoutException,\n ENILimitReachedException,\n InvalidRequestContentException,\n InvalidRuntimeException,\n InvalidSecurityGroupIDException,\n InvalidSubnetIDException,\n InvalidZipFileException,\n InvocationType,\n LogType,\n KMSAccessDeniedException,\n KMSDisabledException,\n KMSInvalidStateException,\n KMSNotFoundException,\n RecursiveInvocationException,\n RequestTooLargeException,\n ResourceNotReadyException,\n SnapStartException,\n SnapStartNotReadyException,\n SnapStartTimeoutException,\n SubnetIPAddressLimitReachedException,\n UnsupportedMediaTypeException,\n ResponseStreamingInvocationType,\n InvokeWithResponseStreamResponseEvent,\n FunctionVersion,\n FunctionCodeFilterSensitiveLog,\n EnvironmentFilterSensitiveLog,\n CreateFunctionRequestFilterSensitiveLog,\n EnvironmentErrorFilterSensitiveLog,\n EnvironmentResponseFilterSensitiveLog,\n ImageConfigErrorFilterSensitiveLog,\n ImageConfigResponseFilterSensitiveLog,\n RuntimeVersionErrorFilterSensitiveLog,\n RuntimeVersionConfigFilterSensitiveLog,\n FunctionConfigurationFilterSensitiveLog,\n GetFunctionResponseFilterSensitiveLog,\n InvocationRequestFilterSensitiveLog,\n InvocationResponseFilterSensitiveLog,\n InvokeAsyncRequestFilterSensitiveLog,\n InvokeWithResponseStreamRequestFilterSensitiveLog,\n InvokeResponseStreamUpdateFilterSensitiveLog,\n InvokeWithResponseStreamResponseEventFilterSensitiveLog,\n InvokeWithResponseStreamResponseFilterSensitiveLog,\n ListFunctionsResponseFilterSensitiveLog,\n ListVersionsByFunctionResponseFilterSensitiveLog,\n LayerVersionContentInputFilterSensitiveLog,\n PublishLayerVersionRequestFilterSensitiveLog,\n UpdateFunctionCodeRequestFilterSensitiveLog,\n UpdateFunctionConfigurationRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst eventstream_serde_node_1 = require(\"@smithy/eventstream-serde-node\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventstream_serde_node_1.eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2015-03-31\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultLambdaHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Lambda\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultRoute53HttpAuthSchemeProvider = exports.defaultRoute53HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultRoute53HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultRoute53HttpAuthSchemeParametersProvider = defaultRoute53HttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"route53\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultRoute53HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultRoute53HttpAuthSchemeProvider = defaultRoute53HttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst C = \"required\", D = \"fn\", E = \"argv\", F = \"ref\", G = \"authSchemes\", H = \"signingName\", I = \"signingRegion\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = \"sigv4\", j = \"route53\", k = { [C]: false, \"type\": \"String\" }, l = { [C]: true, \"default\": false, \"type\": \"Boolean\" }, m = { [F]: \"Endpoint\" }, n = { [D]: c, [E]: [{ [F]: \"UseFIPS\" }, true] }, o = { [D]: c, [E]: [{ [F]: \"UseDualStack\" }, true] }, p = {}, q = { [D]: h, [E]: [{ [D]: \"getAttr\", [E]: [{ [F]: g }, \"name\"] }, \"aws\"] }, r = { [D]: \"getAttr\", [E]: [{ [F]: g }, \"name\"] }, s = { [D]: c, [E]: [{ [F]: \"UseFIPS\" }, false] }, t = { [D]: c, [E]: [{ [F]: \"UseDualStack\" }, false] }, u = { [G]: [{ \"name\": i, [H]: j, [I]: \"us-east-1\" }] }, v = { [D]: h, [E]: [r, \"aws-us-gov\"] }, w = { \"url\": \"https://route53.us-gov.amazonaws.com\", \"properties\": { [G]: [{ \"name\": i, [H]: j, [I]: \"us-gov-west-1\" }] }, \"headers\": {} }, x = { [D]: \"getAttr\", [E]: [{ [F]: g }, \"supportsFIPS\"] }, y = { [D]: c, [E]: [true, { [D]: \"getAttr\", [E]: [{ [F]: g }, \"supportsDualStack\"] }] }, z = [n], A = [o], B = [{ [F]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: k, UseDualStack: l, UseFIPS: l, Endpoint: k }, rules: [{ conditions: [{ [D]: b, [E]: [m] }], rules: [{ conditions: z, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: A, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: m, properties: p, headers: p }, type: e }], type: f }, { conditions: [{ [D]: b, [E]: B }], rules: [{ conditions: [{ [D]: \"aws.partition\", [E]: B, assign: g }], rules: [{ conditions: [q, s, t], endpoint: { url: \"https://route53.amazonaws.com\", properties: u, headers: p }, type: e }, { conditions: [q, n, t], endpoint: { url: \"https://route53-fips.amazonaws.com\", properties: u, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-cn\"] }, s, t], endpoint: { url: \"https://route53.amazonaws.com.cn\", properties: { [G]: [{ name: i, [H]: j, [I]: \"cn-northwest-1\" }] }, headers: p }, type: e }, { conditions: [v, s, t], endpoint: w, type: e }, { conditions: [v, n, t], endpoint: w, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso\"] }, s, t], endpoint: { url: \"https://route53.c2s.ic.gov\", properties: { [G]: [{ name: i, [H]: j, [I]: \"us-iso-east-1\" }] }, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso-b\"] }, s, t], endpoint: { url: \"https://route53.sc2s.sgov.gov\", properties: { [G]: [{ name: i, [H]: j, [I]: \"us-isob-east-1\" }] }, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso-e\"] }, s, t], endpoint: { url: \"https://route53.cloud.adc-e.uk\", properties: { [G]: [{ name: i, [H]: j, [I]: \"eu-isoe-west-1\" }] }, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso-f\"] }, s, t], endpoint: { url: \"https://route53.csp.hci.ic.gov\", properties: { [G]: [{ name: i, [H]: j, [I]: \"us-isof-south-1\" }] }, headers: p }, type: e }, { conditions: [n, o], rules: [{ conditions: [{ [D]: c, [E]: [a, x] }, y], rules: [{ endpoint: { url: \"https://route53-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: p, headers: p }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: z, rules: [{ conditions: [{ [D]: c, [E]: [x, a] }], rules: [{ endpoint: { url: \"https://route53-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: p, headers: p }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: A, rules: [{ conditions: [y], rules: [{ endpoint: { url: \"https://route53.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: p, headers: p }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://route53.{Region}.{PartitionResult#dnsSuffix}\", properties: p, headers: p }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccountLimitType: () => AccountLimitType,\n ActivateKeySigningKeyCommand: () => ActivateKeySigningKeyCommand,\n AssociateVPCWithHostedZoneCommand: () => AssociateVPCWithHostedZoneCommand,\n ChangeAction: () => ChangeAction,\n ChangeCidrCollectionCommand: () => ChangeCidrCollectionCommand,\n ChangeResourceRecordSetsCommand: () => ChangeResourceRecordSetsCommand,\n ChangeStatus: () => ChangeStatus,\n ChangeTagsForResourceCommand: () => ChangeTagsForResourceCommand,\n CidrBlockInUseException: () => CidrBlockInUseException,\n CidrCollectionAlreadyExistsException: () => CidrCollectionAlreadyExistsException,\n CidrCollectionChangeAction: () => CidrCollectionChangeAction,\n CidrCollectionInUseException: () => CidrCollectionInUseException,\n CidrCollectionVersionMismatchException: () => CidrCollectionVersionMismatchException,\n CloudWatchRegion: () => CloudWatchRegion,\n ComparisonOperator: () => ComparisonOperator,\n ConcurrentModification: () => ConcurrentModification,\n ConflictingDomainExists: () => ConflictingDomainExists,\n ConflictingTypes: () => ConflictingTypes,\n CreateCidrCollectionCommand: () => CreateCidrCollectionCommand,\n CreateHealthCheckCommand: () => CreateHealthCheckCommand,\n CreateHostedZoneCommand: () => CreateHostedZoneCommand,\n CreateKeySigningKeyCommand: () => CreateKeySigningKeyCommand,\n CreateQueryLoggingConfigCommand: () => CreateQueryLoggingConfigCommand,\n CreateReusableDelegationSetCommand: () => CreateReusableDelegationSetCommand,\n CreateTrafficPolicyCommand: () => CreateTrafficPolicyCommand,\n CreateTrafficPolicyInstanceCommand: () => CreateTrafficPolicyInstanceCommand,\n CreateTrafficPolicyVersionCommand: () => CreateTrafficPolicyVersionCommand,\n CreateVPCAssociationAuthorizationCommand: () => CreateVPCAssociationAuthorizationCommand,\n DNSSECNotFound: () => DNSSECNotFound,\n DeactivateKeySigningKeyCommand: () => DeactivateKeySigningKeyCommand,\n DelegationSetAlreadyCreated: () => DelegationSetAlreadyCreated,\n DelegationSetAlreadyReusable: () => DelegationSetAlreadyReusable,\n DelegationSetInUse: () => DelegationSetInUse,\n DelegationSetNotAvailable: () => DelegationSetNotAvailable,\n DelegationSetNotReusable: () => DelegationSetNotReusable,\n DeleteCidrCollectionCommand: () => DeleteCidrCollectionCommand,\n DeleteHealthCheckCommand: () => DeleteHealthCheckCommand,\n DeleteHostedZoneCommand: () => DeleteHostedZoneCommand,\n DeleteKeySigningKeyCommand: () => DeleteKeySigningKeyCommand,\n DeleteQueryLoggingConfigCommand: () => DeleteQueryLoggingConfigCommand,\n DeleteReusableDelegationSetCommand: () => DeleteReusableDelegationSetCommand,\n DeleteTrafficPolicyCommand: () => DeleteTrafficPolicyCommand,\n DeleteTrafficPolicyInstanceCommand: () => DeleteTrafficPolicyInstanceCommand,\n DeleteVPCAssociationAuthorizationCommand: () => DeleteVPCAssociationAuthorizationCommand,\n DisableHostedZoneDNSSECCommand: () => DisableHostedZoneDNSSECCommand,\n DisassociateVPCFromHostedZoneCommand: () => DisassociateVPCFromHostedZoneCommand,\n EnableHostedZoneDNSSECCommand: () => EnableHostedZoneDNSSECCommand,\n GetAccountLimitCommand: () => GetAccountLimitCommand,\n GetChangeCommand: () => GetChangeCommand,\n GetCheckerIpRangesCommand: () => GetCheckerIpRangesCommand,\n GetDNSSECCommand: () => GetDNSSECCommand,\n GetGeoLocationCommand: () => GetGeoLocationCommand,\n GetHealthCheckCommand: () => GetHealthCheckCommand,\n GetHealthCheckCountCommand: () => GetHealthCheckCountCommand,\n GetHealthCheckLastFailureReasonCommand: () => GetHealthCheckLastFailureReasonCommand,\n GetHealthCheckStatusCommand: () => GetHealthCheckStatusCommand,\n GetHostedZoneCommand: () => GetHostedZoneCommand,\n GetHostedZoneCountCommand: () => GetHostedZoneCountCommand,\n GetHostedZoneLimitCommand: () => GetHostedZoneLimitCommand,\n GetQueryLoggingConfigCommand: () => GetQueryLoggingConfigCommand,\n GetReusableDelegationSetCommand: () => GetReusableDelegationSetCommand,\n GetReusableDelegationSetLimitCommand: () => GetReusableDelegationSetLimitCommand,\n GetTrafficPolicyCommand: () => GetTrafficPolicyCommand,\n GetTrafficPolicyInstanceCommand: () => GetTrafficPolicyInstanceCommand,\n GetTrafficPolicyInstanceCountCommand: () => GetTrafficPolicyInstanceCountCommand,\n HealthCheckAlreadyExists: () => HealthCheckAlreadyExists,\n HealthCheckInUse: () => HealthCheckInUse,\n HealthCheckRegion: () => HealthCheckRegion,\n HealthCheckType: () => HealthCheckType,\n HealthCheckVersionMismatch: () => HealthCheckVersionMismatch,\n HostedZoneAlreadyExists: () => HostedZoneAlreadyExists,\n HostedZoneLimitType: () => HostedZoneLimitType,\n HostedZoneNotEmpty: () => HostedZoneNotEmpty,\n HostedZoneNotFound: () => HostedZoneNotFound,\n HostedZoneNotPrivate: () => HostedZoneNotPrivate,\n HostedZonePartiallyDelegated: () => HostedZonePartiallyDelegated,\n HostedZoneType: () => HostedZoneType,\n IncompatibleVersion: () => IncompatibleVersion,\n InsufficientCloudWatchLogsResourcePolicy: () => InsufficientCloudWatchLogsResourcePolicy,\n InsufficientDataHealthStatus: () => InsufficientDataHealthStatus,\n InvalidArgument: () => InvalidArgument,\n InvalidChangeBatch: () => InvalidChangeBatch,\n InvalidDomainName: () => InvalidDomainName,\n InvalidInput: () => InvalidInput,\n InvalidKMSArn: () => InvalidKMSArn,\n InvalidKeySigningKeyName: () => InvalidKeySigningKeyName,\n InvalidKeySigningKeyStatus: () => InvalidKeySigningKeyStatus,\n InvalidPaginationToken: () => InvalidPaginationToken,\n InvalidSigningStatus: () => InvalidSigningStatus,\n InvalidTrafficPolicyDocument: () => InvalidTrafficPolicyDocument,\n InvalidVPCId: () => InvalidVPCId,\n KeySigningKeyAlreadyExists: () => KeySigningKeyAlreadyExists,\n KeySigningKeyInParentDSRecord: () => KeySigningKeyInParentDSRecord,\n KeySigningKeyInUse: () => KeySigningKeyInUse,\n KeySigningKeyWithActiveStatusNotFound: () => KeySigningKeyWithActiveStatusNotFound,\n LastVPCAssociation: () => LastVPCAssociation,\n LimitsExceeded: () => LimitsExceeded,\n ListCidrBlocksCommand: () => ListCidrBlocksCommand,\n ListCidrCollectionsCommand: () => ListCidrCollectionsCommand,\n ListCidrLocationsCommand: () => ListCidrLocationsCommand,\n ListGeoLocationsCommand: () => ListGeoLocationsCommand,\n ListHealthChecksCommand: () => ListHealthChecksCommand,\n ListHostedZonesByNameCommand: () => ListHostedZonesByNameCommand,\n ListHostedZonesByVPCCommand: () => ListHostedZonesByVPCCommand,\n ListHostedZonesCommand: () => ListHostedZonesCommand,\n ListQueryLoggingConfigsCommand: () => ListQueryLoggingConfigsCommand,\n ListResourceRecordSetsCommand: () => ListResourceRecordSetsCommand,\n ListReusableDelegationSetsCommand: () => ListReusableDelegationSetsCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTagsForResourcesCommand: () => ListTagsForResourcesCommand,\n ListTrafficPoliciesCommand: () => ListTrafficPoliciesCommand,\n ListTrafficPolicyInstancesByHostedZoneCommand: () => ListTrafficPolicyInstancesByHostedZoneCommand,\n ListTrafficPolicyInstancesByPolicyCommand: () => ListTrafficPolicyInstancesByPolicyCommand,\n ListTrafficPolicyInstancesCommand: () => ListTrafficPolicyInstancesCommand,\n ListTrafficPolicyVersionsCommand: () => ListTrafficPolicyVersionsCommand,\n ListVPCAssociationAuthorizationsCommand: () => ListVPCAssociationAuthorizationsCommand,\n NoSuchChange: () => NoSuchChange,\n NoSuchCidrCollectionException: () => NoSuchCidrCollectionException,\n NoSuchCidrLocationException: () => NoSuchCidrLocationException,\n NoSuchCloudWatchLogsLogGroup: () => NoSuchCloudWatchLogsLogGroup,\n NoSuchDelegationSet: () => NoSuchDelegationSet,\n NoSuchGeoLocation: () => NoSuchGeoLocation,\n NoSuchHealthCheck: () => NoSuchHealthCheck,\n NoSuchHostedZone: () => NoSuchHostedZone,\n NoSuchKeySigningKey: () => NoSuchKeySigningKey,\n NoSuchQueryLoggingConfig: () => NoSuchQueryLoggingConfig,\n NoSuchTrafficPolicy: () => NoSuchTrafficPolicy,\n NoSuchTrafficPolicyInstance: () => NoSuchTrafficPolicyInstance,\n NotAuthorizedException: () => NotAuthorizedException,\n PriorRequestNotComplete: () => PriorRequestNotComplete,\n PublicZoneVPCAssociation: () => PublicZoneVPCAssociation,\n QueryLoggingConfigAlreadyExists: () => QueryLoggingConfigAlreadyExists,\n RRType: () => RRType,\n ResettableElementName: () => ResettableElementName,\n ResourceRecordSetFailover: () => ResourceRecordSetFailover,\n ResourceRecordSetRegion: () => ResourceRecordSetRegion,\n ReusableDelegationSetLimitType: () => ReusableDelegationSetLimitType,\n Route53: () => Route53,\n Route53Client: () => Route53Client,\n Route53ServiceException: () => Route53ServiceException,\n Statistic: () => Statistic,\n TagResourceType: () => TagResourceType,\n TestDNSAnswerCommand: () => TestDNSAnswerCommand,\n ThrottlingException: () => ThrottlingException,\n TooManyHealthChecks: () => TooManyHealthChecks,\n TooManyHostedZones: () => TooManyHostedZones,\n TooManyKeySigningKeys: () => TooManyKeySigningKeys,\n TooManyTrafficPolicies: () => TooManyTrafficPolicies,\n TooManyTrafficPolicyInstances: () => TooManyTrafficPolicyInstances,\n TooManyTrafficPolicyVersionsForCurrentPolicy: () => TooManyTrafficPolicyVersionsForCurrentPolicy,\n TooManyVPCAssociationAuthorizations: () => TooManyVPCAssociationAuthorizations,\n TrafficPolicyAlreadyExists: () => TrafficPolicyAlreadyExists,\n TrafficPolicyInUse: () => TrafficPolicyInUse,\n TrafficPolicyInstanceAlreadyExists: () => TrafficPolicyInstanceAlreadyExists,\n UpdateHealthCheckCommand: () => UpdateHealthCheckCommand,\n UpdateHostedZoneCommentCommand: () => UpdateHostedZoneCommentCommand,\n UpdateTrafficPolicyCommentCommand: () => UpdateTrafficPolicyCommentCommand,\n UpdateTrafficPolicyInstanceCommand: () => UpdateTrafficPolicyInstanceCommand,\n VPCAssociationAuthorizationNotFound: () => VPCAssociationAuthorizationNotFound,\n VPCAssociationNotFound: () => VPCAssociationNotFound,\n VPCRegion: () => VPCRegion,\n __Client: () => import_smithy_client.Client,\n paginateListCidrBlocks: () => paginateListCidrBlocks,\n paginateListCidrCollections: () => paginateListCidrCollections,\n paginateListCidrLocations: () => paginateListCidrLocations,\n paginateListHealthChecks: () => paginateListHealthChecks,\n paginateListHostedZones: () => paginateListHostedZones,\n paginateListQueryLoggingConfigs: () => paginateListQueryLoggingConfigs,\n waitForResourceRecordSetsChanged: () => waitForResourceRecordSetsChanged,\n waitUntilResourceRecordSetsChanged: () => waitUntilResourceRecordSetsChanged\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/Route53Client.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"route53\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/Route53Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/Route53Client.ts\nvar Route53Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"Route53Client\");\n }\n /**\n * The resolved configuration of Route53Client class. This is resolved and normalized from the {@link Route53ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultRoute53HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/Route53.ts\n\n\n// src/commands/ActivateKeySigningKeyCommand.ts\nvar import_middleware_sdk_route53 = require(\"@aws-sdk/middleware-sdk-route53\");\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_restXml.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\n\n\n\n// src/models/Route53ServiceException.ts\n\nvar Route53ServiceException = class _Route53ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"Route53ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _Route53ServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccountLimitType = {\n MAX_HEALTH_CHECKS_BY_OWNER: \"MAX_HEALTH_CHECKS_BY_OWNER\",\n MAX_HOSTED_ZONES_BY_OWNER: \"MAX_HOSTED_ZONES_BY_OWNER\",\n MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: \"MAX_REUSABLE_DELEGATION_SETS_BY_OWNER\",\n MAX_TRAFFIC_POLICIES_BY_OWNER: \"MAX_TRAFFIC_POLICIES_BY_OWNER\",\n MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: \"MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER\"\n};\nvar ChangeStatus = {\n INSYNC: \"INSYNC\",\n PENDING: \"PENDING\"\n};\nvar ConcurrentModification = class _ConcurrentModification extends Route53ServiceException {\n static {\n __name(this, \"ConcurrentModification\");\n }\n name = \"ConcurrentModification\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModification\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModification.prototype);\n }\n};\nvar InvalidInput = class _InvalidInput extends Route53ServiceException {\n static {\n __name(this, \"InvalidInput\");\n }\n name = \"InvalidInput\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInput\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInput.prototype);\n }\n};\nvar InvalidKeySigningKeyStatus = class _InvalidKeySigningKeyStatus extends Route53ServiceException {\n static {\n __name(this, \"InvalidKeySigningKeyStatus\");\n }\n name = \"InvalidKeySigningKeyStatus\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeySigningKeyStatus\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeySigningKeyStatus.prototype);\n }\n};\nvar InvalidKMSArn = class _InvalidKMSArn extends Route53ServiceException {\n static {\n __name(this, \"InvalidKMSArn\");\n }\n name = \"InvalidKMSArn\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKMSArn\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKMSArn.prototype);\n }\n};\nvar InvalidSigningStatus = class _InvalidSigningStatus extends Route53ServiceException {\n static {\n __name(this, \"InvalidSigningStatus\");\n }\n name = \"InvalidSigningStatus\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSigningStatus\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSigningStatus.prototype);\n }\n};\nvar NoSuchKeySigningKey = class _NoSuchKeySigningKey extends Route53ServiceException {\n static {\n __name(this, \"NoSuchKeySigningKey\");\n }\n name = \"NoSuchKeySigningKey\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchKeySigningKey\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchKeySigningKey.prototype);\n }\n};\nvar CloudWatchRegion = {\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ap_southeast_7: \"ap-southeast-7\",\n ca_central_1: \"ca-central-1\",\n ca_west_1: \"ca-west-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n mx_central_1: \"mx-central-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_iso_east_1: \"us-iso-east-1\",\n us_iso_west_1: \"us-iso-west-1\",\n us_isob_east_1: \"us-isob-east-1\",\n us_isof_east_1: \"us-isof-east-1\",\n us_isof_south_1: \"us-isof-south-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar VPCRegion = {\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ap_southeast_7: \"ap-southeast-7\",\n ca_central_1: \"ca-central-1\",\n ca_west_1: \"ca-west-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n mx_central_1: \"mx-central-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_iso_east_1: \"us-iso-east-1\",\n us_iso_west_1: \"us-iso-west-1\",\n us_isob_east_1: \"us-isob-east-1\",\n us_isof_east_1: \"us-isof-east-1\",\n us_isof_south_1: \"us-isof-south-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar ConflictingDomainExists = class _ConflictingDomainExists extends Route53ServiceException {\n static {\n __name(this, \"ConflictingDomainExists\");\n }\n name = \"ConflictingDomainExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictingDomainExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictingDomainExists.prototype);\n }\n};\nvar InvalidVPCId = class _InvalidVPCId extends Route53ServiceException {\n static {\n __name(this, \"InvalidVPCId\");\n }\n name = \"InvalidVPCId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidVPCId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidVPCId.prototype);\n }\n};\nvar LimitsExceeded = class _LimitsExceeded extends Route53ServiceException {\n static {\n __name(this, \"LimitsExceeded\");\n }\n name = \"LimitsExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitsExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitsExceeded.prototype);\n }\n};\nvar NoSuchHostedZone = class _NoSuchHostedZone extends Route53ServiceException {\n static {\n __name(this, \"NoSuchHostedZone\");\n }\n name = \"NoSuchHostedZone\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchHostedZone\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchHostedZone.prototype);\n }\n};\nvar NotAuthorizedException = class _NotAuthorizedException extends Route53ServiceException {\n static {\n __name(this, \"NotAuthorizedException\");\n }\n name = \"NotAuthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotAuthorizedException.prototype);\n }\n};\nvar PriorRequestNotComplete = class _PriorRequestNotComplete extends Route53ServiceException {\n static {\n __name(this, \"PriorRequestNotComplete\");\n }\n name = \"PriorRequestNotComplete\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PriorRequestNotComplete\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PriorRequestNotComplete.prototype);\n }\n};\nvar PublicZoneVPCAssociation = class _PublicZoneVPCAssociation extends Route53ServiceException {\n static {\n __name(this, \"PublicZoneVPCAssociation\");\n }\n name = \"PublicZoneVPCAssociation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PublicZoneVPCAssociation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PublicZoneVPCAssociation.prototype);\n }\n};\nvar CidrCollectionChangeAction = {\n DELETE_IF_EXISTS: \"DELETE_IF_EXISTS\",\n PUT: \"PUT\"\n};\nvar CidrBlockInUseException = class _CidrBlockInUseException extends Route53ServiceException {\n static {\n __name(this, \"CidrBlockInUseException\");\n }\n name = \"CidrBlockInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrBlockInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrBlockInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CidrCollectionVersionMismatchException = class _CidrCollectionVersionMismatchException extends Route53ServiceException {\n static {\n __name(this, \"CidrCollectionVersionMismatchException\");\n }\n name = \"CidrCollectionVersionMismatchException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrCollectionVersionMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrCollectionVersionMismatchException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NoSuchCidrCollectionException = class _NoSuchCidrCollectionException extends Route53ServiceException {\n static {\n __name(this, \"NoSuchCidrCollectionException\");\n }\n name = \"NoSuchCidrCollectionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchCidrCollectionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchCidrCollectionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ChangeAction = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n UPSERT: \"UPSERT\"\n};\nvar ResourceRecordSetFailover = {\n PRIMARY: \"PRIMARY\",\n SECONDARY: \"SECONDARY\"\n};\nvar ResourceRecordSetRegion = {\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ap_southeast_7: \"ap-southeast-7\",\n ca_central_1: \"ca-central-1\",\n ca_west_1: \"ca-west-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n mx_central_1: \"mx-central-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar RRType = {\n A: \"A\",\n AAAA: \"AAAA\",\n CAA: \"CAA\",\n CNAME: \"CNAME\",\n DS: \"DS\",\n HTTPS: \"HTTPS\",\n MX: \"MX\",\n NAPTR: \"NAPTR\",\n NS: \"NS\",\n PTR: \"PTR\",\n SOA: \"SOA\",\n SPF: \"SPF\",\n SRV: \"SRV\",\n SSHFP: \"SSHFP\",\n SVCB: \"SVCB\",\n TLSA: \"TLSA\",\n TXT: \"TXT\"\n};\nvar InvalidChangeBatch = class _InvalidChangeBatch extends Route53ServiceException {\n static {\n __name(this, \"InvalidChangeBatch\");\n }\n name = \"InvalidChangeBatch\";\n $fault = \"client\";\n /**\n *

\n * @public\n */\n messages;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidChangeBatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidChangeBatch.prototype);\n this.messages = opts.messages;\n }\n};\nvar NoSuchHealthCheck = class _NoSuchHealthCheck extends Route53ServiceException {\n static {\n __name(this, \"NoSuchHealthCheck\");\n }\n name = \"NoSuchHealthCheck\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchHealthCheck\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchHealthCheck.prototype);\n }\n};\nvar TagResourceType = {\n healthcheck: \"healthcheck\",\n hostedzone: \"hostedzone\"\n};\nvar ThrottlingException = class _ThrottlingException extends Route53ServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n }\n};\nvar CidrCollectionAlreadyExistsException = class _CidrCollectionAlreadyExistsException extends Route53ServiceException {\n static {\n __name(this, \"CidrCollectionAlreadyExistsException\");\n }\n name = \"CidrCollectionAlreadyExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrCollectionAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrCollectionAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InsufficientDataHealthStatus = {\n Healthy: \"Healthy\",\n LastKnownStatus: \"LastKnownStatus\",\n Unhealthy: \"Unhealthy\"\n};\nvar HealthCheckRegion = {\n ap_northeast_1: \"ap-northeast-1\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n eu_west_1: \"eu-west-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar HealthCheckType = {\n CALCULATED: \"CALCULATED\",\n CLOUDWATCH_METRIC: \"CLOUDWATCH_METRIC\",\n HTTP: \"HTTP\",\n HTTPS: \"HTTPS\",\n HTTPS_STR_MATCH: \"HTTPS_STR_MATCH\",\n HTTP_STR_MATCH: \"HTTP_STR_MATCH\",\n RECOVERY_CONTROL: \"RECOVERY_CONTROL\",\n TCP: \"TCP\"\n};\nvar ComparisonOperator = {\n GreaterThanOrEqualToThreshold: \"GreaterThanOrEqualToThreshold\",\n GreaterThanThreshold: \"GreaterThanThreshold\",\n LessThanOrEqualToThreshold: \"LessThanOrEqualToThreshold\",\n LessThanThreshold: \"LessThanThreshold\"\n};\nvar Statistic = {\n Average: \"Average\",\n Maximum: \"Maximum\",\n Minimum: \"Minimum\",\n SampleCount: \"SampleCount\",\n Sum: \"Sum\"\n};\nvar HealthCheckAlreadyExists = class _HealthCheckAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"HealthCheckAlreadyExists\");\n }\n name = \"HealthCheckAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthCheckAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthCheckAlreadyExists.prototype);\n }\n};\nvar TooManyHealthChecks = class _TooManyHealthChecks extends Route53ServiceException {\n static {\n __name(this, \"TooManyHealthChecks\");\n }\n name = \"TooManyHealthChecks\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyHealthChecks\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyHealthChecks.prototype);\n }\n};\nvar DelegationSetNotAvailable = class _DelegationSetNotAvailable extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetNotAvailable\");\n }\n name = \"DelegationSetNotAvailable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetNotAvailable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetNotAvailable.prototype);\n }\n};\nvar DelegationSetNotReusable = class _DelegationSetNotReusable extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetNotReusable\");\n }\n name = \"DelegationSetNotReusable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetNotReusable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetNotReusable.prototype);\n }\n};\nvar HostedZoneAlreadyExists = class _HostedZoneAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneAlreadyExists\");\n }\n name = \"HostedZoneAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneAlreadyExists.prototype);\n }\n};\nvar InvalidDomainName = class _InvalidDomainName extends Route53ServiceException {\n static {\n __name(this, \"InvalidDomainName\");\n }\n name = \"InvalidDomainName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDomainName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDomainName.prototype);\n }\n};\nvar NoSuchDelegationSet = class _NoSuchDelegationSet extends Route53ServiceException {\n static {\n __name(this, \"NoSuchDelegationSet\");\n }\n name = \"NoSuchDelegationSet\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchDelegationSet\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchDelegationSet.prototype);\n }\n};\nvar TooManyHostedZones = class _TooManyHostedZones extends Route53ServiceException {\n static {\n __name(this, \"TooManyHostedZones\");\n }\n name = \"TooManyHostedZones\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyHostedZones\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyHostedZones.prototype);\n }\n};\nvar InvalidArgument = class _InvalidArgument extends Route53ServiceException {\n static {\n __name(this, \"InvalidArgument\");\n }\n name = \"InvalidArgument\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidArgument\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidArgument.prototype);\n }\n};\nvar InvalidKeySigningKeyName = class _InvalidKeySigningKeyName extends Route53ServiceException {\n static {\n __name(this, \"InvalidKeySigningKeyName\");\n }\n name = \"InvalidKeySigningKeyName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeySigningKeyName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeySigningKeyName.prototype);\n }\n};\nvar KeySigningKeyAlreadyExists = class _KeySigningKeyAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyAlreadyExists\");\n }\n name = \"KeySigningKeyAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyAlreadyExists.prototype);\n }\n};\nvar TooManyKeySigningKeys = class _TooManyKeySigningKeys extends Route53ServiceException {\n static {\n __name(this, \"TooManyKeySigningKeys\");\n }\n name = \"TooManyKeySigningKeys\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyKeySigningKeys\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyKeySigningKeys.prototype);\n }\n};\nvar InsufficientCloudWatchLogsResourcePolicy = class _InsufficientCloudWatchLogsResourcePolicy extends Route53ServiceException {\n static {\n __name(this, \"InsufficientCloudWatchLogsResourcePolicy\");\n }\n name = \"InsufficientCloudWatchLogsResourcePolicy\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InsufficientCloudWatchLogsResourcePolicy\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InsufficientCloudWatchLogsResourcePolicy.prototype);\n }\n};\nvar NoSuchCloudWatchLogsLogGroup = class _NoSuchCloudWatchLogsLogGroup extends Route53ServiceException {\n static {\n __name(this, \"NoSuchCloudWatchLogsLogGroup\");\n }\n name = \"NoSuchCloudWatchLogsLogGroup\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchCloudWatchLogsLogGroup\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchCloudWatchLogsLogGroup.prototype);\n }\n};\nvar QueryLoggingConfigAlreadyExists = class _QueryLoggingConfigAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"QueryLoggingConfigAlreadyExists\");\n }\n name = \"QueryLoggingConfigAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"QueryLoggingConfigAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _QueryLoggingConfigAlreadyExists.prototype);\n }\n};\nvar DelegationSetAlreadyCreated = class _DelegationSetAlreadyCreated extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetAlreadyCreated\");\n }\n name = \"DelegationSetAlreadyCreated\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetAlreadyCreated\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetAlreadyCreated.prototype);\n }\n};\nvar DelegationSetAlreadyReusable = class _DelegationSetAlreadyReusable extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetAlreadyReusable\");\n }\n name = \"DelegationSetAlreadyReusable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetAlreadyReusable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetAlreadyReusable.prototype);\n }\n};\nvar HostedZoneNotFound = class _HostedZoneNotFound extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneNotFound\");\n }\n name = \"HostedZoneNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneNotFound.prototype);\n }\n};\nvar InvalidTrafficPolicyDocument = class _InvalidTrafficPolicyDocument extends Route53ServiceException {\n static {\n __name(this, \"InvalidTrafficPolicyDocument\");\n }\n name = \"InvalidTrafficPolicyDocument\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTrafficPolicyDocument\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTrafficPolicyDocument.prototype);\n }\n};\nvar TooManyTrafficPolicies = class _TooManyTrafficPolicies extends Route53ServiceException {\n static {\n __name(this, \"TooManyTrafficPolicies\");\n }\n name = \"TooManyTrafficPolicies\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrafficPolicies\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrafficPolicies.prototype);\n }\n};\nvar TrafficPolicyAlreadyExists = class _TrafficPolicyAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"TrafficPolicyAlreadyExists\");\n }\n name = \"TrafficPolicyAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrafficPolicyAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrafficPolicyAlreadyExists.prototype);\n }\n};\nvar NoSuchTrafficPolicy = class _NoSuchTrafficPolicy extends Route53ServiceException {\n static {\n __name(this, \"NoSuchTrafficPolicy\");\n }\n name = \"NoSuchTrafficPolicy\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchTrafficPolicy\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchTrafficPolicy.prototype);\n }\n};\nvar TooManyTrafficPolicyInstances = class _TooManyTrafficPolicyInstances extends Route53ServiceException {\n static {\n __name(this, \"TooManyTrafficPolicyInstances\");\n }\n name = \"TooManyTrafficPolicyInstances\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrafficPolicyInstances\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrafficPolicyInstances.prototype);\n }\n};\nvar TrafficPolicyInstanceAlreadyExists = class _TrafficPolicyInstanceAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"TrafficPolicyInstanceAlreadyExists\");\n }\n name = \"TrafficPolicyInstanceAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrafficPolicyInstanceAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrafficPolicyInstanceAlreadyExists.prototype);\n }\n};\nvar TooManyTrafficPolicyVersionsForCurrentPolicy = class _TooManyTrafficPolicyVersionsForCurrentPolicy extends Route53ServiceException {\n static {\n __name(this, \"TooManyTrafficPolicyVersionsForCurrentPolicy\");\n }\n name = \"TooManyTrafficPolicyVersionsForCurrentPolicy\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrafficPolicyVersionsForCurrentPolicy\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrafficPolicyVersionsForCurrentPolicy.prototype);\n }\n};\nvar TooManyVPCAssociationAuthorizations = class _TooManyVPCAssociationAuthorizations extends Route53ServiceException {\n static {\n __name(this, \"TooManyVPCAssociationAuthorizations\");\n }\n name = \"TooManyVPCAssociationAuthorizations\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyVPCAssociationAuthorizations\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyVPCAssociationAuthorizations.prototype);\n }\n};\nvar KeySigningKeyInParentDSRecord = class _KeySigningKeyInParentDSRecord extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyInParentDSRecord\");\n }\n name = \"KeySigningKeyInParentDSRecord\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyInParentDSRecord\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyInParentDSRecord.prototype);\n }\n};\nvar KeySigningKeyInUse = class _KeySigningKeyInUse extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyInUse\");\n }\n name = \"KeySigningKeyInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyInUse.prototype);\n }\n};\nvar CidrCollectionInUseException = class _CidrCollectionInUseException extends Route53ServiceException {\n static {\n __name(this, \"CidrCollectionInUseException\");\n }\n name = \"CidrCollectionInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrCollectionInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrCollectionInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HealthCheckInUse = class _HealthCheckInUse extends Route53ServiceException {\n static {\n __name(this, \"HealthCheckInUse\");\n }\n name = \"HealthCheckInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthCheckInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthCheckInUse.prototype);\n }\n};\nvar HostedZoneNotEmpty = class _HostedZoneNotEmpty extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneNotEmpty\");\n }\n name = \"HostedZoneNotEmpty\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneNotEmpty\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneNotEmpty.prototype);\n }\n};\nvar NoSuchQueryLoggingConfig = class _NoSuchQueryLoggingConfig extends Route53ServiceException {\n static {\n __name(this, \"NoSuchQueryLoggingConfig\");\n }\n name = \"NoSuchQueryLoggingConfig\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchQueryLoggingConfig\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchQueryLoggingConfig.prototype);\n }\n};\nvar DelegationSetInUse = class _DelegationSetInUse extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetInUse\");\n }\n name = \"DelegationSetInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetInUse.prototype);\n }\n};\nvar TrafficPolicyInUse = class _TrafficPolicyInUse extends Route53ServiceException {\n static {\n __name(this, \"TrafficPolicyInUse\");\n }\n name = \"TrafficPolicyInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrafficPolicyInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrafficPolicyInUse.prototype);\n }\n};\nvar NoSuchTrafficPolicyInstance = class _NoSuchTrafficPolicyInstance extends Route53ServiceException {\n static {\n __name(this, \"NoSuchTrafficPolicyInstance\");\n }\n name = \"NoSuchTrafficPolicyInstance\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchTrafficPolicyInstance\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchTrafficPolicyInstance.prototype);\n }\n};\nvar VPCAssociationAuthorizationNotFound = class _VPCAssociationAuthorizationNotFound extends Route53ServiceException {\n static {\n __name(this, \"VPCAssociationAuthorizationNotFound\");\n }\n name = \"VPCAssociationAuthorizationNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"VPCAssociationAuthorizationNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _VPCAssociationAuthorizationNotFound.prototype);\n }\n};\nvar DNSSECNotFound = class _DNSSECNotFound extends Route53ServiceException {\n static {\n __name(this, \"DNSSECNotFound\");\n }\n name = \"DNSSECNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DNSSECNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DNSSECNotFound.prototype);\n }\n};\nvar LastVPCAssociation = class _LastVPCAssociation extends Route53ServiceException {\n static {\n __name(this, \"LastVPCAssociation\");\n }\n name = \"LastVPCAssociation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LastVPCAssociation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LastVPCAssociation.prototype);\n }\n};\nvar VPCAssociationNotFound = class _VPCAssociationNotFound extends Route53ServiceException {\n static {\n __name(this, \"VPCAssociationNotFound\");\n }\n name = \"VPCAssociationNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"VPCAssociationNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _VPCAssociationNotFound.prototype);\n }\n};\nvar HostedZonePartiallyDelegated = class _HostedZonePartiallyDelegated extends Route53ServiceException {\n static {\n __name(this, \"HostedZonePartiallyDelegated\");\n }\n name = \"HostedZonePartiallyDelegated\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZonePartiallyDelegated\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZonePartiallyDelegated.prototype);\n }\n};\nvar KeySigningKeyWithActiveStatusNotFound = class _KeySigningKeyWithActiveStatusNotFound extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyWithActiveStatusNotFound\");\n }\n name = \"KeySigningKeyWithActiveStatusNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyWithActiveStatusNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyWithActiveStatusNotFound.prototype);\n }\n};\nvar NoSuchChange = class _NoSuchChange extends Route53ServiceException {\n static {\n __name(this, \"NoSuchChange\");\n }\n name = \"NoSuchChange\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchChange\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchChange.prototype);\n }\n};\nvar NoSuchGeoLocation = class _NoSuchGeoLocation extends Route53ServiceException {\n static {\n __name(this, \"NoSuchGeoLocation\");\n }\n name = \"NoSuchGeoLocation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchGeoLocation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchGeoLocation.prototype);\n }\n};\nvar IncompatibleVersion = class _IncompatibleVersion extends Route53ServiceException {\n static {\n __name(this, \"IncompatibleVersion\");\n }\n name = \"IncompatibleVersion\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncompatibleVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncompatibleVersion.prototype);\n }\n};\nvar HostedZoneLimitType = {\n MAX_RRSETS_BY_ZONE: \"MAX_RRSETS_BY_ZONE\",\n MAX_VPCS_ASSOCIATED_BY_ZONE: \"MAX_VPCS_ASSOCIATED_BY_ZONE\"\n};\nvar HostedZoneNotPrivate = class _HostedZoneNotPrivate extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneNotPrivate\");\n }\n name = \"HostedZoneNotPrivate\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneNotPrivate\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneNotPrivate.prototype);\n }\n};\nvar ReusableDelegationSetLimitType = {\n MAX_ZONES_BY_REUSABLE_DELEGATION_SET: \"MAX_ZONES_BY_REUSABLE_DELEGATION_SET\"\n};\nvar NoSuchCidrLocationException = class _NoSuchCidrLocationException extends Route53ServiceException {\n static {\n __name(this, \"NoSuchCidrLocationException\");\n }\n name = \"NoSuchCidrLocationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchCidrLocationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchCidrLocationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HostedZoneType = {\n PRIVATE_HOSTED_ZONE: \"PrivateHostedZone\"\n};\nvar InvalidPaginationToken = class _InvalidPaginationToken extends Route53ServiceException {\n static {\n __name(this, \"InvalidPaginationToken\");\n }\n name = \"InvalidPaginationToken\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPaginationToken\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPaginationToken.prototype);\n }\n};\nvar HealthCheckVersionMismatch = class _HealthCheckVersionMismatch extends Route53ServiceException {\n static {\n __name(this, \"HealthCheckVersionMismatch\");\n }\n name = \"HealthCheckVersionMismatch\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthCheckVersionMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthCheckVersionMismatch.prototype);\n }\n};\nvar ResettableElementName = {\n ChildHealthChecks: \"ChildHealthChecks\",\n FullyQualifiedDomainName: \"FullyQualifiedDomainName\",\n Regions: \"Regions\",\n ResourcePath: \"ResourcePath\"\n};\nvar ConflictingTypes = class _ConflictingTypes extends Route53ServiceException {\n static {\n __name(this, \"ConflictingTypes\");\n }\n name = \"ConflictingTypes\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictingTypes\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictingTypes.prototype);\n }\n};\n\n// src/protocols/Aws_restXml.ts\nvar se_ActivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/keysigningkey/{HostedZoneId}/{Name}/activate\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ActivateKeySigningKeyCommand\");\nvar se_AssociateVPCWithHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/associatevpc\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_AVPCWHZR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AVPCC, input[_C]).n(_C));\n }\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateVPCWithHostedZoneCommand\");\nvar se_ChangeCidrCollectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/cidrcollection/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CCCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.lc(input, \"Changes\", \"Changes\", () => se_CidrCollectionChanges(input[_Ch], context));\n if (input[_CV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CV, String(input[_CV])).n(_CV));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ChangeCidrCollectionCommand\");\nvar se_ChangeResourceRecordSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/rrset\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CRRSR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CB] != null) {\n bn.c(se_ChangeBatch(input[_CB], context).n(_CB));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ChangeResourceRecordSetsCommand\");\nvar se_ChangeTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/tags/{ResourceType}/{ResourceId}\");\n b.p(\"ResourceType\", () => input.ResourceType, \"{ResourceType}\", false);\n b.p(\"ResourceId\", () => input.ResourceId, \"{ResourceId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTFRR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.lc(input, \"AddTags\", \"AddTags\", () => se_TagList(input[_AT], context));\n bn.lc(input, \"RemoveTagKeys\", \"RemoveTagKeys\", () => se_TagKeyList(input[_RTK], context));\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ChangeTagsForResourceCommand\");\nvar se_CreateCidrCollectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/cidrcollection\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CCCRr);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CN, input[_CR]).n(_CR));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CNo, input[_N]).n(_N));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateCidrCollectionCommand\");\nvar se_CreateHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/healthcheck\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CHCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HCN, input[_CR]).n(_CR));\n }\n if (input[_HCC] != null) {\n bn.c(se_HealthCheckConfig(input[_HCC], context).n(_HCC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateHealthCheckCommand\");\nvar se_CreateHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CHZR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_No, input[_CR]).n(_CR));\n }\n if (input[_DSI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_DSI]).n(_DSI));\n }\n if (input[_HZC] != null) {\n bn.c(se_HostedZoneConfig(input[_HZC], context).n(_HZC));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DNSN, input[_N]).n(_N));\n }\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateHostedZoneCommand\");\nvar se_CreateKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/keysigningkey\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CKSKR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_No, input[_CR]).n(_CR));\n }\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n if (input[_KMSA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKS, input[_KMSA]).n(_KMSA));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKN, input[_N]).n(_N));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKSi, input[_S]).n(_S));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateKeySigningKeyCommand\");\nvar se_CreateQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/queryloggingconfig\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CQLCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.cc(input, _CWLLGA);\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateQueryLoggingConfigCommand\");\nvar se_CreateReusableDelegationSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/delegationset\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CRDSR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_No, input[_CR]).n(_CR));\n }\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateReusableDelegationSetCommand\");\nvar se_CreateTrafficPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicy\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTPR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPC, input[_C]).n(_C));\n }\n if (input[_D] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPD, input[_D]).n(_D));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPN, input[_N]).n(_N));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTrafficPolicyCommand\");\nvar se_CreateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicyinstance\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTPIR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DNSN, input[_N]).n(_N));\n }\n if (input[_TTL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TTL, String(input[_TTL])).n(_TTL));\n }\n bn.cc(input, _TPI);\n if (input[_TPV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPV, String(input[_TPV])).n(_TPV));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTrafficPolicyInstanceCommand\");\nvar se_CreateTrafficPolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicy/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTPVR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPC, input[_C]).n(_C));\n }\n if (input[_D] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPD, input[_D]).n(_D));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTrafficPolicyVersionCommand\");\nvar se_CreateVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/authorizevpcassociation\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CVPCAAR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateVPCAssociationAuthorizationCommand\");\nvar se_DeactivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/keysigningkey/{HostedZoneId}/{Name}/deactivate\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DeactivateKeySigningKeyCommand\");\nvar se_DeleteCidrCollectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteCidrCollectionCommand\");\nvar se_DeleteHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteHealthCheckCommand\");\nvar se_DeleteHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteHostedZoneCommand\");\nvar se_DeleteKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/keysigningkey/{HostedZoneId}/{Name}\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteKeySigningKeyCommand\");\nvar se_DeleteQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/queryloggingconfig/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteQueryLoggingConfigCommand\");\nvar se_DeleteReusableDelegationSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/delegationset/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteReusableDelegationSetCommand\");\nvar se_DeleteTrafficPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicy/{Id}/{Version}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n b.p(\"Version\", () => input.Version.toString(), \"{Version}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteTrafficPolicyCommand\");\nvar se_DeleteTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstance/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteTrafficPolicyInstanceCommand\");\nvar se_DeleteVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/deauthorizevpcassociation\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_DVPCAAR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteVPCAssociationAuthorizationCommand\");\nvar se_DisableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/disable-dnssec\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DisableHostedZoneDNSSECCommand\");\nvar se_DisassociateVPCFromHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/disassociatevpc\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_DVPCFHZR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DVPCC, input[_C]).n(_C));\n }\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateVPCFromHostedZoneCommand\");\nvar se_EnableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/enable-dnssec\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_EnableHostedZoneDNSSECCommand\");\nvar se_GetAccountLimitCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/accountlimit/{Type}\");\n b.p(\"Type\", () => input.Type, \"{Type}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetAccountLimitCommand\");\nvar se_GetChangeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/change/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetChangeCommand\");\nvar se_GetCheckerIpRangesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/checkeripranges\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetCheckerIpRangesCommand\");\nvar se_GetDNSSECCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/dnssec\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetDNSSECCommand\");\nvar se_GetGeoLocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/geolocation\");\n const query = (0, import_smithy_client.map)({\n [_c]: [, input[_CC]],\n [_co]: [, input[_CCo]],\n [_s]: [, input[_SC]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetGeoLocationCommand\");\nvar se_GetHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckCommand\");\nvar se_GetHealthCheckCountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheckcount\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckCountCommand\");\nvar se_GetHealthCheckLastFailureReasonCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckLastFailureReasonCommand\");\nvar se_GetHealthCheckStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}/status\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckStatusCommand\");\nvar se_GetHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHostedZoneCommand\");\nvar se_GetHostedZoneCountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonecount\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHostedZoneCountCommand\");\nvar se_GetHostedZoneLimitCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonelimit/{HostedZoneId}/{Type}\");\n b.p(\"Type\", () => input.Type, \"{Type}\", false);\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHostedZoneLimitCommand\");\nvar se_GetQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/queryloggingconfig/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetQueryLoggingConfigCommand\");\nvar se_GetReusableDelegationSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/delegationset/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetReusableDelegationSetCommand\");\nvar se_GetReusableDelegationSetLimitCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/reusabledelegationsetlimit/{DelegationSetId}/{Type}\");\n b.p(\"Type\", () => input.Type, \"{Type}\", false);\n b.p(\"DelegationSetId\", () => input.DelegationSetId, \"{DelegationSetId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetReusableDelegationSetLimitCommand\");\nvar se_GetTrafficPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicy/{Id}/{Version}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n b.p(\"Version\", () => input.Version.toString(), \"{Version}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetTrafficPolicyCommand\");\nvar se_GetTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstance/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetTrafficPolicyInstanceCommand\");\nvar se_GetTrafficPolicyInstanceCountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstancecount\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetTrafficPolicyInstanceCountCommand\");\nvar se_ListCidrBlocksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection/{CollectionId}/cidrblocks\");\n b.p(\"CollectionId\", () => input.CollectionId, \"{CollectionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, input[_LN]],\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCidrBlocksCommand\");\nvar se_ListCidrCollectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection\");\n const query = (0, import_smithy_client.map)({\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCidrCollectionsCommand\");\nvar se_ListCidrLocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection/{CollectionId}\");\n b.p(\"CollectionId\", () => input.CollectionId, \"{CollectionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCidrLocationsCommand\");\nvar se_ListGeoLocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/geolocations\");\n const query = (0, import_smithy_client.map)({\n [_st]: [, input[_SCC]],\n [_sta]: [, input[_SCCt]],\n [_star]: [, input[_SSC]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListGeoLocationsCommand\");\nvar se_ListHealthChecksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck\");\n const query = (0, import_smithy_client.map)({\n [_mar]: [, input[_M]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHealthChecksCommand\");\nvar se_ListHostedZonesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone\");\n const query = (0, import_smithy_client.map)({\n [_mar]: [, input[_M]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_d]: [, input[_DSI]],\n [_h]: [, input[_HZT]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHostedZonesCommand\");\nvar se_ListHostedZonesByNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonesbyname\");\n const query = (0, import_smithy_client.map)({\n [_dn]: [, input[_DNSN]],\n [_ho]: [, input[_HZI]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHostedZonesByNameCommand\");\nvar se_ListHostedZonesByVPCCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonesbyvpc\");\n const query = (0, import_smithy_client.map)({\n [_v]: [, (0, import_smithy_client.expectNonNull)(input[_VPCI], `VPCId`)],\n [_vp]: [, (0, import_smithy_client.expectNonNull)(input[_VPCR], `VPCRegion`)],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_n]: [, input[_NT]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHostedZonesByVPCCommand\");\nvar se_ListQueryLoggingConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/queryloggingconfig\");\n const query = (0, import_smithy_client.map)({\n [_ho]: [, input[_HZI]],\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListQueryLoggingConfigsCommand\");\nvar se_ListResourceRecordSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/rrset\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n const query = (0, import_smithy_client.map)({\n [_na]: [, input[_SRN]],\n [_t]: [, input[_SRT]],\n [_i]: [, input[_SRI]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListResourceRecordSetsCommand\");\nvar se_ListReusableDelegationSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/delegationset\");\n const query = (0, import_smithy_client.map)({\n [_mar]: [, input[_M]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListReusableDelegationSetsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/tags/{ResourceType}/{ResourceId}\");\n b.p(\"ResourceType\", () => input.ResourceType, \"{ResourceType}\", false);\n b.p(\"ResourceId\", () => input.ResourceId, \"{ResourceId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTagsForResourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/tags/{ResourceType}\");\n b.p(\"ResourceType\", () => input.ResourceType, \"{ResourceType}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_LTFRR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.lc(input, \"ResourceIds\", \"ResourceIds\", () => se_TagResourceIdList(input[_RIe], context));\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsForResourcesCommand\");\nvar se_ListTrafficPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicies\");\n const query = (0, import_smithy_client.map)({\n [_tr]: [, input[_TPIM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPoliciesCommand\");\nvar se_ListTrafficPolicyInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstances\");\n const query = (0, import_smithy_client.map)({\n [_ho]: [, input[_HZIM]],\n [_tra]: [, input[_TPINM]],\n [_traf]: [, input[_TPITM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyInstancesCommand\");\nvar se_ListTrafficPolicyInstancesByHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstances/hostedzone\");\n const query = (0, import_smithy_client.map)({\n [_id]: [, (0, import_smithy_client.expectNonNull)(input[_HZI], `HostedZoneId`)],\n [_tra]: [, input[_TPINM]],\n [_traf]: [, input[_TPITM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyInstancesByHostedZoneCommand\");\nvar se_ListTrafficPolicyInstancesByPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstances/trafficpolicy\");\n const query = (0, import_smithy_client.map)({\n [_id]: [, (0, import_smithy_client.expectNonNull)(input[_TPI], `TrafficPolicyId`)],\n [_ver]: [\n (0, import_smithy_client.expectNonNull)(input.TrafficPolicyVersion, `TrafficPolicyVersion`) != null,\n () => input[_TPV].toString()\n ],\n [_ho]: [, input[_HZIM]],\n [_tra]: [, input[_TPINM]],\n [_traf]: [, input[_TPITM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyInstancesByPolicyCommand\");\nvar se_ListTrafficPolicyVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicies/{Id}/versions\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n const query = (0, import_smithy_client.map)({\n [_traff]: [, input[_TPVM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyVersionsCommand\");\nvar se_ListVPCAssociationAuthorizationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/authorizevpcassociation\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListVPCAssociationAuthorizationsCommand\");\nvar se_TestDNSAnswerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/testdnsanswer\");\n const query = (0, import_smithy_client.map)({\n [_ho]: [, (0, import_smithy_client.expectNonNull)(input[_HZI], `HostedZoneId`)],\n [_r]: [, (0, import_smithy_client.expectNonNull)(input[_RN], `RecordName`)],\n [_re]: [, (0, import_smithy_client.expectNonNull)(input[_RT], `RecordType`)],\n [_res]: [, input[_RIP]],\n [_e]: [, input[_EDNSCSIP]],\n [_ed]: [, input[_EDNSCSM]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_TestDNSAnswerCommand\");\nvar se_UpdateHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UHCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_AI] != null) {\n bn.c(se_AlarmIdentifier(input[_AI], context).n(_AI));\n }\n bn.lc(input, \"ChildHealthChecks\", \"ChildHealthChecks\", () => se_ChildHealthCheckList(input[_CHC], context));\n if (input[_Di] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Di, String(input[_Di])).n(_Di));\n }\n if (input[_ESNI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESNI, String(input[_ESNI])).n(_ESNI));\n }\n if (input[_FT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FT, String(input[_FT])).n(_FT));\n }\n bn.cc(input, _FQDN);\n if (input[_HCV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HCV, String(input[_HCV])).n(_HCV));\n }\n if (input[_HT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HT, String(input[_HT])).n(_HT));\n }\n bn.cc(input, _IPA);\n bn.cc(input, _IDHS);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_I, String(input[_I])).n(_I));\n }\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, String(input[_P])).n(_P));\n }\n bn.lc(input, \"Regions\", \"Regions\", () => se_HealthCheckRegionList(input[_R], context));\n bn.lc(input, \"ResetElements\", \"ResetElements\", () => se_ResettableElementNameList(input[_RE], context));\n bn.cc(input, _RP);\n bn.cc(input, _SS);\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateHealthCheckCommand\");\nvar se_UpdateHostedZoneCommentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UHZCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RD, input[_C]).n(_C));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateHostedZoneCommentCommand\");\nvar se_UpdateTrafficPolicyCommentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicy/{Id}/{Version}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n b.p(\"Version\", () => input.Version.toString(), \"{Version}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UTPCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPC, input[_C]).n(_C));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateTrafficPolicyCommentCommand\");\nvar se_UpdateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicyinstance/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UTPIR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_TTL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TTL, String(input[_TTL])).n(_TTL));\n }\n bn.cc(input, _TPI);\n if (input[_TPV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPV, String(input[_TPV])).n(_TPV));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateTrafficPolicyInstanceCommand\");\nvar de_ActivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_ActivateKeySigningKeyCommand\");\nvar de_AssociateVPCWithHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_AssociateVPCWithHostedZoneCommand\");\nvar de_ChangeCidrCollectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(data[_Id]);\n }\n return contents;\n}, \"de_ChangeCidrCollectionCommand\");\nvar de_ChangeResourceRecordSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_ChangeResourceRecordSetsCommand\");\nvar de_ChangeTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_ChangeTagsForResourceCommand\");\nvar de_CreateCidrCollectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Co] != null) {\n contents[_Co] = de_CidrCollection(data[_Co], context);\n }\n return contents;\n}, \"de_CreateCidrCollectionCommand\");\nvar de_CreateHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HC] != null) {\n contents[_HC] = de_HealthCheck(data[_HC], context);\n }\n return contents;\n}, \"de_CreateHealthCheckCommand\");\nvar de_CreateHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n if (data[_HZ] != null) {\n contents[_HZ] = de_HostedZone(data[_HZ], context);\n }\n if (data[_VPC] != null) {\n contents[_VPC] = de_VPC(data[_VPC], context);\n }\n return contents;\n}, \"de_CreateHostedZoneCommand\");\nvar de_CreateKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n if (data[_KSK] != null) {\n contents[_KSK] = de_KeySigningKey(data[_KSK], context);\n }\n return contents;\n}, \"de_CreateKeySigningKeyCommand\");\nvar de_CreateQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_QLC] != null) {\n contents[_QLC] = de_QueryLoggingConfig(data[_QLC], context);\n }\n return contents;\n}, \"de_CreateQueryLoggingConfigCommand\");\nvar de_CreateReusableDelegationSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n return contents;\n}, \"de_CreateReusableDelegationSetCommand\");\nvar de_CreateTrafficPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_CreateTrafficPolicyCommand\");\nvar de_CreateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIr] != null) {\n contents[_TPIr] = de_TrafficPolicyInstance(data[_TPIr], context);\n }\n return contents;\n}, \"de_CreateTrafficPolicyInstanceCommand\");\nvar de_CreateTrafficPolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_CreateTrafficPolicyVersionCommand\");\nvar de_CreateVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(data[_HZI]);\n }\n if (data[_VPC] != null) {\n contents[_VPC] = de_VPC(data[_VPC], context);\n }\n return contents;\n}, \"de_CreateVPCAssociationAuthorizationCommand\");\nvar de_DeactivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DeactivateKeySigningKeyCommand\");\nvar de_DeleteCidrCollectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteCidrCollectionCommand\");\nvar de_DeleteHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteHealthCheckCommand\");\nvar de_DeleteHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DeleteHostedZoneCommand\");\nvar de_DeleteKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DeleteKeySigningKeyCommand\");\nvar de_DeleteQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteQueryLoggingConfigCommand\");\nvar de_DeleteReusableDelegationSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteReusableDelegationSetCommand\");\nvar de_DeleteTrafficPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteTrafficPolicyCommand\");\nvar de_DeleteTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteTrafficPolicyInstanceCommand\");\nvar de_DeleteVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteVPCAssociationAuthorizationCommand\");\nvar de_DisableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DisableHostedZoneDNSSECCommand\");\nvar de_DisassociateVPCFromHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DisassociateVPCFromHostedZoneCommand\");\nvar de_EnableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_EnableHostedZoneDNSSECCommand\");\nvar de_GetAccountLimitCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseLong)(data[_Cou]);\n }\n if (data[_Li] != null) {\n contents[_Li] = de_AccountLimit(data[_Li], context);\n }\n return contents;\n}, \"de_GetAccountLimitCommand\");\nvar de_GetChangeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_GetChangeCommand\");\nvar de_GetCheckerIpRangesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CheckerIpRanges === \"\") {\n contents[_CIR] = [];\n } else if (data[_CIR] != null && data[_CIR][_me] != null) {\n contents[_CIR] = de_CheckerIpRanges((0, import_smithy_client.getArrayIfSingleItem)(data[_CIR][_me]), context);\n }\n return contents;\n}, \"de_GetCheckerIpRangesCommand\");\nvar de_GetDNSSECCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.KeySigningKeys === \"\") {\n contents[_KSKe] = [];\n } else if (data[_KSKe] != null && data[_KSKe][_me] != null) {\n contents[_KSKe] = de_KeySigningKeys((0, import_smithy_client.getArrayIfSingleItem)(data[_KSKe][_me]), context);\n }\n if (data[_S] != null) {\n contents[_S] = de_DNSSECStatus(data[_S], context);\n }\n return contents;\n}, \"de_GetDNSSECCommand\");\nvar de_GetGeoLocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_GLD] != null) {\n contents[_GLD] = de_GeoLocationDetails(data[_GLD], context);\n }\n return contents;\n}, \"de_GetGeoLocationCommand\");\nvar de_GetHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HC] != null) {\n contents[_HC] = de_HealthCheck(data[_HC], context);\n }\n return contents;\n}, \"de_GetHealthCheckCommand\");\nvar de_GetHealthCheckCountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HCCe] != null) {\n contents[_HCCe] = (0, import_smithy_client.strictParseLong)(data[_HCCe]);\n }\n return contents;\n}, \"de_GetHealthCheckCountCommand\");\nvar de_GetHealthCheckLastFailureReasonCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HealthCheckObservations === \"\") {\n contents[_HCO] = [];\n } else if (data[_HCO] != null && data[_HCO][_HCOe] != null) {\n contents[_HCO] = de_HealthCheckObservations((0, import_smithy_client.getArrayIfSingleItem)(data[_HCO][_HCOe]), context);\n }\n return contents;\n}, \"de_GetHealthCheckLastFailureReasonCommand\");\nvar de_GetHealthCheckStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HealthCheckObservations === \"\") {\n contents[_HCO] = [];\n } else if (data[_HCO] != null && data[_HCO][_HCOe] != null) {\n contents[_HCO] = de_HealthCheckObservations((0, import_smithy_client.getArrayIfSingleItem)(data[_HCO][_HCOe]), context);\n }\n return contents;\n}, \"de_GetHealthCheckStatusCommand\");\nvar de_GetHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n if (data[_HZ] != null) {\n contents[_HZ] = de_HostedZone(data[_HZ], context);\n }\n if (data.VPCs === \"\") {\n contents[_VPCs] = [];\n } else if (data[_VPCs] != null && data[_VPCs][_VPC] != null) {\n contents[_VPCs] = de_VPCs((0, import_smithy_client.getArrayIfSingleItem)(data[_VPCs][_VPC]), context);\n }\n return contents;\n}, \"de_GetHostedZoneCommand\");\nvar de_GetHostedZoneCountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZCo] != null) {\n contents[_HZCo] = (0, import_smithy_client.strictParseLong)(data[_HZCo]);\n }\n return contents;\n}, \"de_GetHostedZoneCountCommand\");\nvar de_GetHostedZoneLimitCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseLong)(data[_Cou]);\n }\n if (data[_Li] != null) {\n contents[_Li] = de_HostedZoneLimit(data[_Li], context);\n }\n return contents;\n}, \"de_GetHostedZoneLimitCommand\");\nvar de_GetQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_QLC] != null) {\n contents[_QLC] = de_QueryLoggingConfig(data[_QLC], context);\n }\n return contents;\n}, \"de_GetQueryLoggingConfigCommand\");\nvar de_GetReusableDelegationSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n return contents;\n}, \"de_GetReusableDelegationSetCommand\");\nvar de_GetReusableDelegationSetLimitCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseLong)(data[_Cou]);\n }\n if (data[_Li] != null) {\n contents[_Li] = de_ReusableDelegationSetLimit(data[_Li], context);\n }\n return contents;\n}, \"de_GetReusableDelegationSetLimitCommand\");\nvar de_GetTrafficPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_GetTrafficPolicyCommand\");\nvar de_GetTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIr] != null) {\n contents[_TPIr] = de_TrafficPolicyInstance(data[_TPIr], context);\n }\n return contents;\n}, \"de_GetTrafficPolicyInstanceCommand\");\nvar de_GetTrafficPolicyInstanceCountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIC] != null) {\n contents[_TPIC] = (0, import_smithy_client.strictParseInt32)(data[_TPIC]);\n }\n return contents;\n}, \"de_GetTrafficPolicyInstanceCountCommand\");\nvar de_ListCidrBlocksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CidrBlocks === \"\") {\n contents[_CBi] = [];\n } else if (data[_CBi] != null && data[_CBi][_me] != null) {\n contents[_CBi] = de_CidrBlockSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_CBi][_me]), context);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListCidrBlocksCommand\");\nvar de_ListCidrCollectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CidrCollections === \"\") {\n contents[_CCi] = [];\n } else if (data[_CCi] != null && data[_CCi][_me] != null) {\n contents[_CCi] = de_CollectionSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_CCi][_me]), context);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListCidrCollectionsCommand\");\nvar de_ListCidrLocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CidrLocations === \"\") {\n contents[_CL] = [];\n } else if (data[_CL] != null && data[_CL][_me] != null) {\n contents[_CL] = de_LocationSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_CL][_me]), context);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListCidrLocationsCommand\");\nvar de_ListGeoLocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.GeoLocationDetailsList === \"\") {\n contents[_GLDL] = [];\n } else if (data[_GLDL] != null && data[_GLDL][_GLD] != null) {\n contents[_GLDL] = de_GeoLocationDetailsList((0, import_smithy_client.getArrayIfSingleItem)(data[_GLDL][_GLD]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NCC] != null) {\n contents[_NCC] = (0, import_smithy_client.expectString)(data[_NCC]);\n }\n if (data[_NCCe] != null) {\n contents[_NCCe] = (0, import_smithy_client.expectString)(data[_NCCe]);\n }\n if (data[_NSC] != null) {\n contents[_NSC] = (0, import_smithy_client.expectString)(data[_NSC]);\n }\n return contents;\n}, \"de_ListGeoLocationsCommand\");\nvar de_ListHealthChecksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HealthChecks === \"\") {\n contents[_HCe] = [];\n } else if (data[_HCe] != null && data[_HCe][_HC] != null) {\n contents[_HCe] = de_HealthChecks((0, import_smithy_client.getArrayIfSingleItem)(data[_HCe][_HC]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n return contents;\n}, \"de_ListHealthChecksCommand\");\nvar de_ListHostedZonesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HostedZones === \"\") {\n contents[_HZo] = [];\n } else if (data[_HZo] != null && data[_HZo][_HZ] != null) {\n contents[_HZo] = de_HostedZones((0, import_smithy_client.getArrayIfSingleItem)(data[_HZo][_HZ]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n return contents;\n}, \"de_ListHostedZonesCommand\");\nvar de_ListHostedZonesByNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DNSN] != null) {\n contents[_DNSN] = (0, import_smithy_client.expectString)(data[_DNSN]);\n }\n if (data[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(data[_HZI]);\n }\n if (data.HostedZones === \"\") {\n contents[_HZo] = [];\n } else if (data[_HZo] != null && data[_HZo][_HZ] != null) {\n contents[_HZo] = de_HostedZones((0, import_smithy_client.getArrayIfSingleItem)(data[_HZo][_HZ]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NDNSN] != null) {\n contents[_NDNSN] = (0, import_smithy_client.expectString)(data[_NDNSN]);\n }\n if (data[_NHZI] != null) {\n contents[_NHZI] = (0, import_smithy_client.expectString)(data[_NHZI]);\n }\n return contents;\n}, \"de_ListHostedZonesByNameCommand\");\nvar de_ListHostedZonesByVPCCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HostedZoneSummaries === \"\") {\n contents[_HZS] = [];\n } else if (data[_HZS] != null && data[_HZS][_HZSo] != null) {\n contents[_HZS] = de_HostedZoneSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_HZS][_HZSo]), context);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListHostedZonesByVPCCommand\");\nvar de_ListQueryLoggingConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n if (data.QueryLoggingConfigs === \"\") {\n contents[_QLCu] = [];\n } else if (data[_QLCu] != null && data[_QLCu][_QLC] != null) {\n contents[_QLCu] = de_QueryLoggingConfigs((0, import_smithy_client.getArrayIfSingleItem)(data[_QLCu][_QLC]), context);\n }\n return contents;\n}, \"de_ListQueryLoggingConfigsCommand\");\nvar de_ListResourceRecordSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NRI] != null) {\n contents[_NRI] = (0, import_smithy_client.expectString)(data[_NRI]);\n }\n if (data[_NRN] != null) {\n contents[_NRN] = (0, import_smithy_client.expectString)(data[_NRN]);\n }\n if (data[_NRT] != null) {\n contents[_NRT] = (0, import_smithy_client.expectString)(data[_NRT]);\n }\n if (data.ResourceRecordSets === \"\") {\n contents[_RRS] = [];\n } else if (data[_RRS] != null && data[_RRS][_RRSe] != null) {\n contents[_RRS] = de_ResourceRecordSets((0, import_smithy_client.getArrayIfSingleItem)(data[_RRS][_RRSe]), context);\n }\n return contents;\n}, \"de_ListResourceRecordSetsCommand\");\nvar de_ListReusableDelegationSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.DelegationSets === \"\") {\n contents[_DSe] = [];\n } else if (data[_DSe] != null && data[_DSe][_DS] != null) {\n contents[_DSe] = de_DelegationSets((0, import_smithy_client.getArrayIfSingleItem)(data[_DSe][_DS]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n return contents;\n}, \"de_ListReusableDelegationSetsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_RTS] != null) {\n contents[_RTS] = de_ResourceTagSet(data[_RTS], context);\n }\n return contents;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTagsForResourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.ResourceTagSets === \"\") {\n contents[_RTSe] = [];\n } else if (data[_RTSe] != null && data[_RTSe][_RTS] != null) {\n contents[_RTSe] = de_ResourceTagSetList((0, import_smithy_client.getArrayIfSingleItem)(data[_RTSe][_RTS]), context);\n }\n return contents;\n}, \"de_ListTagsForResourcesCommand\");\nvar de_ListTrafficPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPIM] != null) {\n contents[_TPIM] = (0, import_smithy_client.expectString)(data[_TPIM]);\n }\n if (data.TrafficPolicySummaries === \"\") {\n contents[_TPS] = [];\n } else if (data[_TPS] != null && data[_TPS][_TPSr] != null) {\n contents[_TPS] = de_TrafficPolicySummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_TPS][_TPSr]), context);\n }\n return contents;\n}, \"de_ListTrafficPoliciesCommand\");\nvar de_ListTrafficPolicyInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZIM] != null) {\n contents[_HZIM] = (0, import_smithy_client.expectString)(data[_HZIM]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPINM] != null) {\n contents[_TPINM] = (0, import_smithy_client.expectString)(data[_TPINM]);\n }\n if (data[_TPITM] != null) {\n contents[_TPITM] = (0, import_smithy_client.expectString)(data[_TPITM]);\n }\n if (data.TrafficPolicyInstances === \"\") {\n contents[_TPIra] = [];\n } else if (data[_TPIra] != null && data[_TPIra][_TPIr] != null) {\n contents[_TPIra] = de_TrafficPolicyInstances((0, import_smithy_client.getArrayIfSingleItem)(data[_TPIra][_TPIr]), context);\n }\n return contents;\n}, \"de_ListTrafficPolicyInstancesCommand\");\nvar de_ListTrafficPolicyInstancesByHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPINM] != null) {\n contents[_TPINM] = (0, import_smithy_client.expectString)(data[_TPINM]);\n }\n if (data[_TPITM] != null) {\n contents[_TPITM] = (0, import_smithy_client.expectString)(data[_TPITM]);\n }\n if (data.TrafficPolicyInstances === \"\") {\n contents[_TPIra] = [];\n } else if (data[_TPIra] != null && data[_TPIra][_TPIr] != null) {\n contents[_TPIra] = de_TrafficPolicyInstances((0, import_smithy_client.getArrayIfSingleItem)(data[_TPIra][_TPIr]), context);\n }\n return contents;\n}, \"de_ListTrafficPolicyInstancesByHostedZoneCommand\");\nvar de_ListTrafficPolicyInstancesByPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZIM] != null) {\n contents[_HZIM] = (0, import_smithy_client.expectString)(data[_HZIM]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPINM] != null) {\n contents[_TPINM] = (0, import_smithy_client.expectString)(data[_TPINM]);\n }\n if (data[_TPITM] != null) {\n contents[_TPITM] = (0, import_smithy_client.expectString)(data[_TPITM]);\n }\n if (data.TrafficPolicyInstances === \"\") {\n contents[_TPIra] = [];\n } else if (data[_TPIra] != null && data[_TPIra][_TPIr] != null) {\n contents[_TPIra] = de_TrafficPolicyInstances((0, import_smithy_client.getArrayIfSingleItem)(data[_TPIra][_TPIr]), context);\n }\n return contents;\n}, \"de_ListTrafficPolicyInstancesByPolicyCommand\");\nvar de_ListTrafficPolicyVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data.TrafficPolicies === \"\") {\n contents[_TPr] = [];\n } else if (data[_TPr] != null && data[_TPr][_TP] != null) {\n contents[_TPr] = de_TrafficPolicies((0, import_smithy_client.getArrayIfSingleItem)(data[_TPr][_TP]), context);\n }\n if (data[_TPVM] != null) {\n contents[_TPVM] = (0, import_smithy_client.expectString)(data[_TPVM]);\n }\n return contents;\n}, \"de_ListTrafficPolicyVersionsCommand\");\nvar de_ListVPCAssociationAuthorizationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(data[_HZI]);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n if (data.VPCs === \"\") {\n contents[_VPCs] = [];\n } else if (data[_VPCs] != null && data[_VPCs][_VPC] != null) {\n contents[_VPCs] = de_VPCs((0, import_smithy_client.getArrayIfSingleItem)(data[_VPCs][_VPC]), context);\n }\n return contents;\n}, \"de_ListVPCAssociationAuthorizationsCommand\");\nvar de_TestDNSAnswerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Na] != null) {\n contents[_Na] = (0, import_smithy_client.expectString)(data[_Na]);\n }\n if (data[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(data[_Pr]);\n }\n if (data.RecordData === \"\") {\n contents[_RDe] = [];\n } else if (data[_RDe] != null && data[_RDe][_RDE] != null) {\n contents[_RDe] = de_RecordData((0, import_smithy_client.getArrayIfSingleItem)(data[_RDe][_RDE]), context);\n }\n if (data[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(data[_RN]);\n }\n if (data[_RT] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(data[_RT]);\n }\n if (data[_RC] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(data[_RC]);\n }\n return contents;\n}, \"de_TestDNSAnswerCommand\");\nvar de_UpdateHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HC] != null) {\n contents[_HC] = de_HealthCheck(data[_HC], context);\n }\n return contents;\n}, \"de_UpdateHealthCheckCommand\");\nvar de_UpdateHostedZoneCommentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZ] != null) {\n contents[_HZ] = de_HostedZone(data[_HZ], context);\n }\n return contents;\n}, \"de_UpdateHostedZoneCommentCommand\");\nvar de_UpdateTrafficPolicyCommentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_UpdateTrafficPolicyCommentCommand\");\nvar de_UpdateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIr] != null) {\n contents[_TPIr] = de_TrafficPolicyInstance(data[_TPIr], context);\n }\n return contents;\n}, \"de_UpdateTrafficPolicyInstanceCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestXmlErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModification\":\n case \"com.amazonaws.route53#ConcurrentModification\":\n throw await de_ConcurrentModificationRes(parsedOutput, context);\n case \"InvalidInput\":\n case \"com.amazonaws.route53#InvalidInput\":\n throw await de_InvalidInputRes(parsedOutput, context);\n case \"InvalidKMSArn\":\n case \"com.amazonaws.route53#InvalidKMSArn\":\n throw await de_InvalidKMSArnRes(parsedOutput, context);\n case \"InvalidKeySigningKeyStatus\":\n case \"com.amazonaws.route53#InvalidKeySigningKeyStatus\":\n throw await de_InvalidKeySigningKeyStatusRes(parsedOutput, context);\n case \"InvalidSigningStatus\":\n case \"com.amazonaws.route53#InvalidSigningStatus\":\n throw await de_InvalidSigningStatusRes(parsedOutput, context);\n case \"NoSuchKeySigningKey\":\n case \"com.amazonaws.route53#NoSuchKeySigningKey\":\n throw await de_NoSuchKeySigningKeyRes(parsedOutput, context);\n case \"ConflictingDomainExists\":\n case \"com.amazonaws.route53#ConflictingDomainExists\":\n throw await de_ConflictingDomainExistsRes(parsedOutput, context);\n case \"InvalidVPCId\":\n case \"com.amazonaws.route53#InvalidVPCId\":\n throw await de_InvalidVPCIdRes(parsedOutput, context);\n case \"LimitsExceeded\":\n case \"com.amazonaws.route53#LimitsExceeded\":\n throw await de_LimitsExceededRes(parsedOutput, context);\n case \"NoSuchHostedZone\":\n case \"com.amazonaws.route53#NoSuchHostedZone\":\n throw await de_NoSuchHostedZoneRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.route53#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PriorRequestNotComplete\":\n case \"com.amazonaws.route53#PriorRequestNotComplete\":\n throw await de_PriorRequestNotCompleteRes(parsedOutput, context);\n case \"PublicZoneVPCAssociation\":\n case \"com.amazonaws.route53#PublicZoneVPCAssociation\":\n throw await de_PublicZoneVPCAssociationRes(parsedOutput, context);\n case \"CidrBlockInUseException\":\n case \"com.amazonaws.route53#CidrBlockInUseException\":\n throw await de_CidrBlockInUseExceptionRes(parsedOutput, context);\n case \"CidrCollectionVersionMismatchException\":\n case \"com.amazonaws.route53#CidrCollectionVersionMismatchException\":\n throw await de_CidrCollectionVersionMismatchExceptionRes(parsedOutput, context);\n case \"NoSuchCidrCollectionException\":\n case \"com.amazonaws.route53#NoSuchCidrCollectionException\":\n throw await de_NoSuchCidrCollectionExceptionRes(parsedOutput, context);\n case \"InvalidChangeBatch\":\n case \"com.amazonaws.route53#InvalidChangeBatch\":\n throw await de_InvalidChangeBatchRes(parsedOutput, context);\n case \"NoSuchHealthCheck\":\n case \"com.amazonaws.route53#NoSuchHealthCheck\":\n throw await de_NoSuchHealthCheckRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.route53#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"CidrCollectionAlreadyExistsException\":\n case \"com.amazonaws.route53#CidrCollectionAlreadyExistsException\":\n throw await de_CidrCollectionAlreadyExistsExceptionRes(parsedOutput, context);\n case \"HealthCheckAlreadyExists\":\n case \"com.amazonaws.route53#HealthCheckAlreadyExists\":\n throw await de_HealthCheckAlreadyExistsRes(parsedOutput, context);\n case \"TooManyHealthChecks\":\n case \"com.amazonaws.route53#TooManyHealthChecks\":\n throw await de_TooManyHealthChecksRes(parsedOutput, context);\n case \"DelegationSetNotAvailable\":\n case \"com.amazonaws.route53#DelegationSetNotAvailable\":\n throw await de_DelegationSetNotAvailableRes(parsedOutput, context);\n case \"DelegationSetNotReusable\":\n case \"com.amazonaws.route53#DelegationSetNotReusable\":\n throw await de_DelegationSetNotReusableRes(parsedOutput, context);\n case \"HostedZoneAlreadyExists\":\n case \"com.amazonaws.route53#HostedZoneAlreadyExists\":\n throw await de_HostedZoneAlreadyExistsRes(parsedOutput, context);\n case \"InvalidDomainName\":\n case \"com.amazonaws.route53#InvalidDomainName\":\n throw await de_InvalidDomainNameRes(parsedOutput, context);\n case \"NoSuchDelegationSet\":\n case \"com.amazonaws.route53#NoSuchDelegationSet\":\n throw await de_NoSuchDelegationSetRes(parsedOutput, context);\n case \"TooManyHostedZones\":\n case \"com.amazonaws.route53#TooManyHostedZones\":\n throw await de_TooManyHostedZonesRes(parsedOutput, context);\n case \"InvalidArgument\":\n case \"com.amazonaws.route53#InvalidArgument\":\n throw await de_InvalidArgumentRes(parsedOutput, context);\n case \"InvalidKeySigningKeyName\":\n case \"com.amazonaws.route53#InvalidKeySigningKeyName\":\n throw await de_InvalidKeySigningKeyNameRes(parsedOutput, context);\n case \"KeySigningKeyAlreadyExists\":\n case \"com.amazonaws.route53#KeySigningKeyAlreadyExists\":\n throw await de_KeySigningKeyAlreadyExistsRes(parsedOutput, context);\n case \"TooManyKeySigningKeys\":\n case \"com.amazonaws.route53#TooManyKeySigningKeys\":\n throw await de_TooManyKeySigningKeysRes(parsedOutput, context);\n case \"InsufficientCloudWatchLogsResourcePolicy\":\n case \"com.amazonaws.route53#InsufficientCloudWatchLogsResourcePolicy\":\n throw await de_InsufficientCloudWatchLogsResourcePolicyRes(parsedOutput, context);\n case \"NoSuchCloudWatchLogsLogGroup\":\n case \"com.amazonaws.route53#NoSuchCloudWatchLogsLogGroup\":\n throw await de_NoSuchCloudWatchLogsLogGroupRes(parsedOutput, context);\n case \"QueryLoggingConfigAlreadyExists\":\n case \"com.amazonaws.route53#QueryLoggingConfigAlreadyExists\":\n throw await de_QueryLoggingConfigAlreadyExistsRes(parsedOutput, context);\n case \"DelegationSetAlreadyCreated\":\n case \"com.amazonaws.route53#DelegationSetAlreadyCreated\":\n throw await de_DelegationSetAlreadyCreatedRes(parsedOutput, context);\n case \"DelegationSetAlreadyReusable\":\n case \"com.amazonaws.route53#DelegationSetAlreadyReusable\":\n throw await de_DelegationSetAlreadyReusableRes(parsedOutput, context);\n case \"HostedZoneNotFound\":\n case \"com.amazonaws.route53#HostedZoneNotFound\":\n throw await de_HostedZoneNotFoundRes(parsedOutput, context);\n case \"InvalidTrafficPolicyDocument\":\n case \"com.amazonaws.route53#InvalidTrafficPolicyDocument\":\n throw await de_InvalidTrafficPolicyDocumentRes(parsedOutput, context);\n case \"TooManyTrafficPolicies\":\n case \"com.amazonaws.route53#TooManyTrafficPolicies\":\n throw await de_TooManyTrafficPoliciesRes(parsedOutput, context);\n case \"TrafficPolicyAlreadyExists\":\n case \"com.amazonaws.route53#TrafficPolicyAlreadyExists\":\n throw await de_TrafficPolicyAlreadyExistsRes(parsedOutput, context);\n case \"NoSuchTrafficPolicy\":\n case \"com.amazonaws.route53#NoSuchTrafficPolicy\":\n throw await de_NoSuchTrafficPolicyRes(parsedOutput, context);\n case \"TooManyTrafficPolicyInstances\":\n case \"com.amazonaws.route53#TooManyTrafficPolicyInstances\":\n throw await de_TooManyTrafficPolicyInstancesRes(parsedOutput, context);\n case \"TrafficPolicyInstanceAlreadyExists\":\n case \"com.amazonaws.route53#TrafficPolicyInstanceAlreadyExists\":\n throw await de_TrafficPolicyInstanceAlreadyExistsRes(parsedOutput, context);\n case \"TooManyTrafficPolicyVersionsForCurrentPolicy\":\n case \"com.amazonaws.route53#TooManyTrafficPolicyVersionsForCurrentPolicy\":\n throw await de_TooManyTrafficPolicyVersionsForCurrentPolicyRes(parsedOutput, context);\n case \"TooManyVPCAssociationAuthorizations\":\n case \"com.amazonaws.route53#TooManyVPCAssociationAuthorizations\":\n throw await de_TooManyVPCAssociationAuthorizationsRes(parsedOutput, context);\n case \"KeySigningKeyInParentDSRecord\":\n case \"com.amazonaws.route53#KeySigningKeyInParentDSRecord\":\n throw await de_KeySigningKeyInParentDSRecordRes(parsedOutput, context);\n case \"KeySigningKeyInUse\":\n case \"com.amazonaws.route53#KeySigningKeyInUse\":\n throw await de_KeySigningKeyInUseRes(parsedOutput, context);\n case \"CidrCollectionInUseException\":\n case \"com.amazonaws.route53#CidrCollectionInUseException\":\n throw await de_CidrCollectionInUseExceptionRes(parsedOutput, context);\n case \"HealthCheckInUse\":\n case \"com.amazonaws.route53#HealthCheckInUse\":\n throw await de_HealthCheckInUseRes(parsedOutput, context);\n case \"HostedZoneNotEmpty\":\n case \"com.amazonaws.route53#HostedZoneNotEmpty\":\n throw await de_HostedZoneNotEmptyRes(parsedOutput, context);\n case \"NoSuchQueryLoggingConfig\":\n case \"com.amazonaws.route53#NoSuchQueryLoggingConfig\":\n throw await de_NoSuchQueryLoggingConfigRes(parsedOutput, context);\n case \"DelegationSetInUse\":\n case \"com.amazonaws.route53#DelegationSetInUse\":\n throw await de_DelegationSetInUseRes(parsedOutput, context);\n case \"TrafficPolicyInUse\":\n case \"com.amazonaws.route53#TrafficPolicyInUse\":\n throw await de_TrafficPolicyInUseRes(parsedOutput, context);\n case \"NoSuchTrafficPolicyInstance\":\n case \"com.amazonaws.route53#NoSuchTrafficPolicyInstance\":\n throw await de_NoSuchTrafficPolicyInstanceRes(parsedOutput, context);\n case \"VPCAssociationAuthorizationNotFound\":\n case \"com.amazonaws.route53#VPCAssociationAuthorizationNotFound\":\n throw await de_VPCAssociationAuthorizationNotFoundRes(parsedOutput, context);\n case \"DNSSECNotFound\":\n case \"com.amazonaws.route53#DNSSECNotFound\":\n throw await de_DNSSECNotFoundRes(parsedOutput, context);\n case \"LastVPCAssociation\":\n case \"com.amazonaws.route53#LastVPCAssociation\":\n throw await de_LastVPCAssociationRes(parsedOutput, context);\n case \"VPCAssociationNotFound\":\n case \"com.amazonaws.route53#VPCAssociationNotFound\":\n throw await de_VPCAssociationNotFoundRes(parsedOutput, context);\n case \"HostedZonePartiallyDelegated\":\n case \"com.amazonaws.route53#HostedZonePartiallyDelegated\":\n throw await de_HostedZonePartiallyDelegatedRes(parsedOutput, context);\n case \"KeySigningKeyWithActiveStatusNotFound\":\n case \"com.amazonaws.route53#KeySigningKeyWithActiveStatusNotFound\":\n throw await de_KeySigningKeyWithActiveStatusNotFoundRes(parsedOutput, context);\n case \"NoSuchChange\":\n case \"com.amazonaws.route53#NoSuchChange\":\n throw await de_NoSuchChangeRes(parsedOutput, context);\n case \"NoSuchGeoLocation\":\n case \"com.amazonaws.route53#NoSuchGeoLocation\":\n throw await de_NoSuchGeoLocationRes(parsedOutput, context);\n case \"IncompatibleVersion\":\n case \"com.amazonaws.route53#IncompatibleVersion\":\n throw await de_IncompatibleVersionRes(parsedOutput, context);\n case \"HostedZoneNotPrivate\":\n case \"com.amazonaws.route53#HostedZoneNotPrivate\":\n throw await de_HostedZoneNotPrivateRes(parsedOutput, context);\n case \"NoSuchCidrLocationException\":\n case \"com.amazonaws.route53#NoSuchCidrLocationException\":\n throw await de_NoSuchCidrLocationExceptionRes(parsedOutput, context);\n case \"InvalidPaginationToken\":\n case \"com.amazonaws.route53#InvalidPaginationToken\":\n throw await de_InvalidPaginationTokenRes(parsedOutput, context);\n case \"HealthCheckVersionMismatch\":\n case \"com.amazonaws.route53#HealthCheckVersionMismatch\":\n throw await de_HealthCheckVersionMismatchRes(parsedOutput, context);\n case \"ConflictingTypes\":\n case \"com.amazonaws.route53#ConflictingTypes\":\n throw await de_ConflictingTypesRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(Route53ServiceException);\nvar de_CidrBlockInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrBlockInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrBlockInUseExceptionRes\");\nvar de_CidrCollectionAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrCollectionAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrCollectionAlreadyExistsExceptionRes\");\nvar de_CidrCollectionInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrCollectionInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrCollectionInUseExceptionRes\");\nvar de_CidrCollectionVersionMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrCollectionVersionMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrCollectionVersionMismatchExceptionRes\");\nvar de_ConcurrentModificationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ConcurrentModification({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ConcurrentModificationRes\");\nvar de_ConflictingDomainExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ConflictingDomainExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ConflictingDomainExistsRes\");\nvar de_ConflictingTypesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ConflictingTypes({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ConflictingTypesRes\");\nvar de_DelegationSetAlreadyCreatedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetAlreadyCreated({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetAlreadyCreatedRes\");\nvar de_DelegationSetAlreadyReusableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetAlreadyReusable({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetAlreadyReusableRes\");\nvar de_DelegationSetInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetInUseRes\");\nvar de_DelegationSetNotAvailableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetNotAvailable({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetNotAvailableRes\");\nvar de_DelegationSetNotReusableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetNotReusable({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetNotReusableRes\");\nvar de_DNSSECNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DNSSECNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DNSSECNotFoundRes\");\nvar de_HealthCheckAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HealthCheckAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HealthCheckAlreadyExistsRes\");\nvar de_HealthCheckInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HealthCheckInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HealthCheckInUseRes\");\nvar de_HealthCheckVersionMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HealthCheckVersionMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HealthCheckVersionMismatchRes\");\nvar de_HostedZoneAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneAlreadyExistsRes\");\nvar de_HostedZoneNotEmptyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneNotEmpty({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneNotEmptyRes\");\nvar de_HostedZoneNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneNotFoundRes\");\nvar de_HostedZoneNotPrivateRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneNotPrivate({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneNotPrivateRes\");\nvar de_HostedZonePartiallyDelegatedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZonePartiallyDelegated({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZonePartiallyDelegatedRes\");\nvar de_IncompatibleVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new IncompatibleVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_IncompatibleVersionRes\");\nvar de_InsufficientCloudWatchLogsResourcePolicyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InsufficientCloudWatchLogsResourcePolicy({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InsufficientCloudWatchLogsResourcePolicyRes\");\nvar de_InvalidArgumentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidArgument({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidArgumentRes\");\nvar de_InvalidChangeBatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n if (data.messages === \"\") {\n contents[_mess] = [];\n } else if (data[_mess] != null && data[_mess][_Me] != null) {\n contents[_mess] = de_ErrorMessages((0, import_smithy_client.getArrayIfSingleItem)(data[_mess][_Me]), context);\n }\n const exception = new InvalidChangeBatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidChangeBatchRes\");\nvar de_InvalidDomainNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidDomainName({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidDomainNameRes\");\nvar de_InvalidInputRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidInput({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidInputRes\");\nvar de_InvalidKeySigningKeyNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidKeySigningKeyName({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidKeySigningKeyNameRes\");\nvar de_InvalidKeySigningKeyStatusRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidKeySigningKeyStatus({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidKeySigningKeyStatusRes\");\nvar de_InvalidKMSArnRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidKMSArn({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidKMSArnRes\");\nvar de_InvalidPaginationTokenRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidPaginationToken({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidPaginationTokenRes\");\nvar de_InvalidSigningStatusRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidSigningStatus({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidSigningStatusRes\");\nvar de_InvalidTrafficPolicyDocumentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidTrafficPolicyDocument({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidTrafficPolicyDocumentRes\");\nvar de_InvalidVPCIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidVPCId({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidVPCIdRes\");\nvar de_KeySigningKeyAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyAlreadyExistsRes\");\nvar de_KeySigningKeyInParentDSRecordRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyInParentDSRecord({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyInParentDSRecordRes\");\nvar de_KeySigningKeyInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyInUseRes\");\nvar de_KeySigningKeyWithActiveStatusNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyWithActiveStatusNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyWithActiveStatusNotFoundRes\");\nvar de_LastVPCAssociationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new LastVPCAssociation({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_LastVPCAssociationRes\");\nvar de_LimitsExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new LimitsExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_LimitsExceededRes\");\nvar de_NoSuchChangeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchChange({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchChangeRes\");\nvar de_NoSuchCidrCollectionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new NoSuchCidrCollectionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchCidrCollectionExceptionRes\");\nvar de_NoSuchCidrLocationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new NoSuchCidrLocationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchCidrLocationExceptionRes\");\nvar de_NoSuchCloudWatchLogsLogGroupRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchCloudWatchLogsLogGroup({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchCloudWatchLogsLogGroupRes\");\nvar de_NoSuchDelegationSetRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchDelegationSet({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchDelegationSetRes\");\nvar de_NoSuchGeoLocationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchGeoLocation({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchGeoLocationRes\");\nvar de_NoSuchHealthCheckRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchHealthCheck({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchHealthCheckRes\");\nvar de_NoSuchHostedZoneRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchHostedZone({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchHostedZoneRes\");\nvar de_NoSuchKeySigningKeyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchKeySigningKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchKeySigningKeyRes\");\nvar de_NoSuchQueryLoggingConfigRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchQueryLoggingConfig({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchQueryLoggingConfigRes\");\nvar de_NoSuchTrafficPolicyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchTrafficPolicy({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchTrafficPolicyRes\");\nvar de_NoSuchTrafficPolicyInstanceRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchTrafficPolicyInstance({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchTrafficPolicyInstanceRes\");\nvar de_NotAuthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NotAuthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NotAuthorizedExceptionRes\");\nvar de_PriorRequestNotCompleteRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new PriorRequestNotComplete({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_PriorRequestNotCompleteRes\");\nvar de_PublicZoneVPCAssociationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new PublicZoneVPCAssociation({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_PublicZoneVPCAssociationRes\");\nvar de_QueryLoggingConfigAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new QueryLoggingConfigAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_QueryLoggingConfigAlreadyExistsRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TooManyHealthChecksRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyHealthChecks({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyHealthChecksRes\");\nvar de_TooManyHostedZonesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyHostedZones({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyHostedZonesRes\");\nvar de_TooManyKeySigningKeysRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyKeySigningKeys({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyKeySigningKeysRes\");\nvar de_TooManyTrafficPoliciesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyTrafficPolicies({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyTrafficPoliciesRes\");\nvar de_TooManyTrafficPolicyInstancesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyTrafficPolicyInstances({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyTrafficPolicyInstancesRes\");\nvar de_TooManyTrafficPolicyVersionsForCurrentPolicyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyTrafficPolicyVersionsForCurrentPolicy({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyTrafficPolicyVersionsForCurrentPolicyRes\");\nvar de_TooManyVPCAssociationAuthorizationsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyVPCAssociationAuthorizations({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyVPCAssociationAuthorizationsRes\");\nvar de_TrafficPolicyAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TrafficPolicyAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TrafficPolicyAlreadyExistsRes\");\nvar de_TrafficPolicyInstanceAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TrafficPolicyInstanceAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TrafficPolicyInstanceAlreadyExistsRes\");\nvar de_TrafficPolicyInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TrafficPolicyInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TrafficPolicyInUseRes\");\nvar de_VPCAssociationAuthorizationNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new VPCAssociationAuthorizationNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_VPCAssociationAuthorizationNotFoundRes\");\nvar de_VPCAssociationNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new VPCAssociationNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_VPCAssociationNotFoundRes\");\nvar se_AlarmIdentifier = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AI);\n if (input[_Re] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CWR, input[_Re]).n(_Re));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AN, input[_N]).n(_N));\n }\n return bn;\n}, \"se_AlarmIdentifier\");\nvar se_AliasTarget = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ATl);\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n bn.cc(input, _DNSN);\n if (input[_ETH] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AHE, String(input[_ETH])).n(_ETH));\n }\n return bn;\n}, \"se_AliasTarget\");\nvar se_Change = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Cha);\n if (input[_A] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CA, input[_A]).n(_A));\n }\n if (input[_RRSe] != null) {\n bn.c(se_ResourceRecordSet(input[_RRSe], context).n(_RRSe));\n }\n return bn;\n}, \"se_Change\");\nvar se_ChangeBatch = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CB);\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RD, input[_C]).n(_C));\n }\n bn.lc(input, \"Changes\", \"Changes\", () => se_Changes(input[_Ch], context));\n return bn;\n}, \"se_ChangeBatch\");\nvar se_Changes = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Change(entry, context);\n return n.n(_Cha);\n });\n}, \"se_Changes\");\nvar se_ChildHealthCheckList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_HCI, entry);\n return n.n(_CHCh);\n });\n}, \"se_ChildHealthCheckList\");\nvar se_CidrCollectionChange = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CCC);\n if (input[_LN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CLNDNA, input[_LN]).n(_LN));\n }\n if (input[_A] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CCCA, input[_A]).n(_A));\n }\n bn.lc(input, \"CidrList\", \"CidrList\", () => se_CidrList(input[_CLi], context));\n return bn;\n}, \"se_CidrCollectionChange\");\nvar se_CidrCollectionChanges = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_CidrCollectionChange(entry, context);\n return n.n(_me);\n });\n}, \"se_CidrCollectionChanges\");\nvar se_CidrList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_Ci, entry);\n return n.n(_Ci);\n });\n}, \"se_CidrList\");\nvar se_CidrRoutingConfig = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CRC);\n if (input[_CIo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_UUID, input[_CIo]).n(_CIo));\n }\n if (input[_LN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CLNDA, input[_LN]).n(_LN));\n }\n return bn;\n}, \"se_CidrRoutingConfig\");\nvar se_Coordinates = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Coo);\n bn.cc(input, _La);\n bn.cc(input, _Lo);\n return bn;\n}, \"se_Coordinates\");\nvar se_GeoLocation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_GL);\n if (input[_CC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_GLCC, input[_CC]).n(_CC));\n }\n if (input[_CCo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_GLCCe, input[_CCo]).n(_CCo));\n }\n if (input[_SC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_GLSC, input[_SC]).n(_SC));\n }\n return bn;\n}, \"se_GeoLocation\");\nvar se_GeoProximityLocation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_GPL);\n bn.cc(input, _AWSR);\n bn.cc(input, _LZG);\n if (input[_Coo] != null) {\n bn.c(se_Coordinates(input[_Coo], context).n(_Coo));\n }\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_B, String(input[_B])).n(_B));\n }\n return bn;\n}, \"se_GeoProximityLocation\");\nvar se_HealthCheckConfig = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_HCC);\n bn.cc(input, _IPA);\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, String(input[_P])).n(_P));\n }\n if (input[_T] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HCT, input[_T]).n(_T));\n }\n bn.cc(input, _RP);\n bn.cc(input, _FQDN);\n bn.cc(input, _SS);\n if (input[_RIeq] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RIeq, String(input[_RIeq])).n(_RIeq));\n }\n if (input[_FT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FT, String(input[_FT])).n(_FT));\n }\n if (input[_ML] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ML, String(input[_ML])).n(_ML));\n }\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_I, String(input[_I])).n(_I));\n }\n if (input[_Di] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Di, String(input[_Di])).n(_Di));\n }\n if (input[_HT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HT, String(input[_HT])).n(_HT));\n }\n bn.lc(input, \"ChildHealthChecks\", \"ChildHealthChecks\", () => se_ChildHealthCheckList(input[_CHC], context));\n if (input[_ESNI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESNI, String(input[_ESNI])).n(_ESNI));\n }\n bn.lc(input, \"Regions\", \"Regions\", () => se_HealthCheckRegionList(input[_R], context));\n if (input[_AI] != null) {\n bn.c(se_AlarmIdentifier(input[_AI], context).n(_AI));\n }\n bn.cc(input, _IDHS);\n bn.cc(input, _RCA);\n return bn;\n}, \"se_HealthCheckConfig\");\nvar se_HealthCheckRegionList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_HCR, entry);\n return n.n(_Re);\n });\n}, \"se_HealthCheckRegionList\");\nvar se_HostedZoneConfig = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_HZC);\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RD, input[_C]).n(_C));\n }\n if (input[_PZ] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IPZ, String(input[_PZ])).n(_PZ));\n }\n return bn;\n}, \"se_HostedZoneConfig\");\nvar se_ResettableElementNameList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_REN, entry);\n return n.n(_REN);\n });\n}, \"se_ResettableElementNameList\");\nvar se_ResourceRecord = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RR);\n if (input[_V] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RDa, input[_V]).n(_V));\n }\n return bn;\n}, \"se_ResourceRecord\");\nvar se_ResourceRecords = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ResourceRecord(entry, context);\n return n.n(_RR);\n });\n}, \"se_ResourceRecords\");\nvar se_ResourceRecordSet = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRSe);\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DNSN, input[_N]).n(_N));\n }\n if (input[_T] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRT, input[_T]).n(_T));\n }\n if (input[_SI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSI, input[_SI]).n(_SI));\n }\n if (input[_W] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSW, String(input[_W])).n(_W));\n }\n if (input[_Re] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSR, input[_Re]).n(_Re));\n }\n if (input[_GL] != null) {\n bn.c(se_GeoLocation(input[_GL], context).n(_GL));\n }\n if (input[_F] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSF, input[_F]).n(_F));\n }\n if (input[_MVA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSMVA, String(input[_MVA])).n(_MVA));\n }\n if (input[_TTL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TTL, String(input[_TTL])).n(_TTL));\n }\n bn.lc(input, \"ResourceRecords\", \"ResourceRecords\", () => se_ResourceRecords(input[_RRe], context));\n if (input[_ATl] != null) {\n bn.c(se_AliasTarget(input[_ATl], context).n(_ATl));\n }\n bn.cc(input, _HCI);\n bn.cc(input, _TPII);\n if (input[_CRC] != null) {\n bn.c(se_CidrRoutingConfig(input[_CRC], context).n(_CRC));\n }\n if (input[_GPL] != null) {\n bn.c(se_GeoProximityLocation(input[_GPL], context).n(_GPL));\n }\n return bn;\n}, \"se_ResourceRecordSet\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Ta);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TK, input[_K]).n(_K));\n }\n if (input[_V] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TV, input[_V]).n(_V));\n }\n return bn;\n}, \"se_Tag\");\nvar se_TagKeyList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_TK, entry);\n return n.n(_K);\n });\n}, \"se_TagKeyList\");\nvar se_TagList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Tag(entry, context);\n return n.n(_Ta);\n });\n}, \"se_TagList\");\nvar se_TagResourceIdList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_TRI, entry);\n return n.n(_RI);\n });\n}, \"se_TagResourceIdList\");\nvar se_VPC = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_VPC);\n bn.cc(input, _VPCR);\n bn.cc(input, _VPCI);\n return bn;\n}, \"se_VPC\");\nvar de_AccountLimit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_V]);\n }\n return contents;\n}, \"de_AccountLimit\");\nvar de_AlarmIdentifier = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n return contents;\n}, \"de_AlarmIdentifier\");\nvar de_AliasTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_DNSN] != null) {\n contents[_DNSN] = (0, import_smithy_client.expectString)(output[_DNSN]);\n }\n if (output[_ETH] != null) {\n contents[_ETH] = (0, import_smithy_client.parseBoolean)(output[_ETH]);\n }\n return contents;\n}, \"de_AliasTarget\");\nvar de_ChangeInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_SA] != null) {\n contents[_SA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_SA]));\n }\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n return contents;\n}, \"de_ChangeInfo\");\nvar de_CheckerIpRanges = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_CheckerIpRanges\");\nvar de_ChildHealthCheckList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ChildHealthCheckList\");\nvar de_CidrBlockSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CidrBlockSummary(entry, context);\n });\n}, \"de_CidrBlockSummaries\");\nvar de_CidrBlockSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CBid] != null) {\n contents[_CBid] = (0, import_smithy_client.expectString)(output[_CBid]);\n }\n if (output[_LN] != null) {\n contents[_LN] = (0, import_smithy_client.expectString)(output[_LN]);\n }\n return contents;\n}, \"de_CidrBlockSummary\");\nvar de_CidrCollection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Ve] != null) {\n contents[_Ve] = (0, import_smithy_client.strictParseLong)(output[_Ve]);\n }\n return contents;\n}, \"de_CidrCollection\");\nvar de_CidrRoutingConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CIo] != null) {\n contents[_CIo] = (0, import_smithy_client.expectString)(output[_CIo]);\n }\n if (output[_LN] != null) {\n contents[_LN] = (0, import_smithy_client.expectString)(output[_LN]);\n }\n return contents;\n}, \"de_CidrRoutingConfig\");\nvar de_CloudWatchAlarmConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EP] != null) {\n contents[_EP] = (0, import_smithy_client.strictParseInt32)(output[_EP]);\n }\n if (output[_Th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseFloat)(output[_Th]);\n }\n if (output[_CO] != null) {\n contents[_CO] = (0, import_smithy_client.expectString)(output[_CO]);\n }\n if (output[_Pe] != null) {\n contents[_Pe] = (0, import_smithy_client.strictParseInt32)(output[_Pe]);\n }\n if (output[_MN] != null) {\n contents[_MN] = (0, import_smithy_client.expectString)(output[_MN]);\n }\n if (output[_Nam] != null) {\n contents[_Nam] = (0, import_smithy_client.expectString)(output[_Nam]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output.Dimensions === \"\") {\n contents[_Dim] = [];\n } else if (output[_Dim] != null && output[_Dim][_Dime] != null) {\n contents[_Dim] = de_DimensionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Dim][_Dime]), context);\n }\n return contents;\n}, \"de_CloudWatchAlarmConfiguration\");\nvar de_CollectionSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CollectionSummary(entry, context);\n });\n}, \"de_CollectionSummaries\");\nvar de_CollectionSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Ve] != null) {\n contents[_Ve] = (0, import_smithy_client.strictParseLong)(output[_Ve]);\n }\n return contents;\n}, \"de_CollectionSummary\");\nvar de_Coordinates = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_La] != null) {\n contents[_La] = (0, import_smithy_client.expectString)(output[_La]);\n }\n if (output[_Lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_Lo]);\n }\n return contents;\n}, \"de_Coordinates\");\nvar de_DelegationSet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_CR] != null) {\n contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]);\n }\n if (output.NameServers === \"\") {\n contents[_NS] = [];\n } else if (output[_NS] != null && output[_NS][_NSa] != null) {\n contents[_NS] = de_DelegationSetNameServers((0, import_smithy_client.getArrayIfSingleItem)(output[_NS][_NSa]), context);\n }\n return contents;\n}, \"de_DelegationSet\");\nvar de_DelegationSetNameServers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DelegationSetNameServers\");\nvar de_DelegationSets = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DelegationSet(entry, context);\n });\n}, \"de_DelegationSets\");\nvar de_Dimension = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_V]);\n }\n return contents;\n}, \"de_Dimension\");\nvar de_DimensionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Dimension(entry, context);\n });\n}, \"de_DimensionList\");\nvar de_DNSSECStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSe] != null) {\n contents[_SSe] = (0, import_smithy_client.expectString)(output[_SSe]);\n }\n if (output[_SM] != null) {\n contents[_SM] = (0, import_smithy_client.expectString)(output[_SM]);\n }\n return contents;\n}, \"de_DNSSECStatus\");\nvar de_ErrorMessages = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ErrorMessages\");\nvar de_GeoLocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CC] != null) {\n contents[_CC] = (0, import_smithy_client.expectString)(output[_CC]);\n }\n if (output[_CCo] != null) {\n contents[_CCo] = (0, import_smithy_client.expectString)(output[_CCo]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n return contents;\n}, \"de_GeoLocation\");\nvar de_GeoLocationDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CC] != null) {\n contents[_CC] = (0, import_smithy_client.expectString)(output[_CC]);\n }\n if (output[_CNon] != null) {\n contents[_CNon] = (0, import_smithy_client.expectString)(output[_CNon]);\n }\n if (output[_CCo] != null) {\n contents[_CCo] = (0, import_smithy_client.expectString)(output[_CCo]);\n }\n if (output[_CNou] != null) {\n contents[_CNou] = (0, import_smithy_client.expectString)(output[_CNou]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n return contents;\n}, \"de_GeoLocationDetails\");\nvar de_GeoLocationDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GeoLocationDetails(entry, context);\n });\n}, \"de_GeoLocationDetailsList\");\nvar de_GeoProximityLocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AWSR] != null) {\n contents[_AWSR] = (0, import_smithy_client.expectString)(output[_AWSR]);\n }\n if (output[_LZG] != null) {\n contents[_LZG] = (0, import_smithy_client.expectString)(output[_LZG]);\n }\n if (output[_Coo] != null) {\n contents[_Coo] = de_Coordinates(output[_Coo], context);\n }\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.strictParseInt32)(output[_B]);\n }\n return contents;\n}, \"de_GeoProximityLocation\");\nvar de_HealthCheck = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_CR] != null) {\n contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]);\n }\n if (output[_LS] != null) {\n contents[_LS] = de_LinkedService(output[_LS], context);\n }\n if (output[_HCC] != null) {\n contents[_HCC] = de_HealthCheckConfig(output[_HCC], context);\n }\n if (output[_HCV] != null) {\n contents[_HCV] = (0, import_smithy_client.strictParseLong)(output[_HCV]);\n }\n if (output[_CWAC] != null) {\n contents[_CWAC] = de_CloudWatchAlarmConfiguration(output[_CWAC], context);\n }\n return contents;\n}, \"de_HealthCheck\");\nvar de_HealthCheckConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.expectString)(output[_IPA]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.strictParseInt32)(output[_P]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_RP] != null) {\n contents[_RP] = (0, import_smithy_client.expectString)(output[_RP]);\n }\n if (output[_FQDN] != null) {\n contents[_FQDN] = (0, import_smithy_client.expectString)(output[_FQDN]);\n }\n if (output[_SS] != null) {\n contents[_SS] = (0, import_smithy_client.expectString)(output[_SS]);\n }\n if (output[_RIeq] != null) {\n contents[_RIeq] = (0, import_smithy_client.strictParseInt32)(output[_RIeq]);\n }\n if (output[_FT] != null) {\n contents[_FT] = (0, import_smithy_client.strictParseInt32)(output[_FT]);\n }\n if (output[_ML] != null) {\n contents[_ML] = (0, import_smithy_client.parseBoolean)(output[_ML]);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.parseBoolean)(output[_I]);\n }\n if (output[_Di] != null) {\n contents[_Di] = (0, import_smithy_client.parseBoolean)(output[_Di]);\n }\n if (output[_HT] != null) {\n contents[_HT] = (0, import_smithy_client.strictParseInt32)(output[_HT]);\n }\n if (output.ChildHealthChecks === \"\") {\n contents[_CHC] = [];\n } else if (output[_CHC] != null && output[_CHC][_CHCh] != null) {\n contents[_CHC] = de_ChildHealthCheckList((0, import_smithy_client.getArrayIfSingleItem)(output[_CHC][_CHCh]), context);\n }\n if (output[_ESNI] != null) {\n contents[_ESNI] = (0, import_smithy_client.parseBoolean)(output[_ESNI]);\n }\n if (output.Regions === \"\") {\n contents[_R] = [];\n } else if (output[_R] != null && output[_R][_Re] != null) {\n contents[_R] = de_HealthCheckRegionList((0, import_smithy_client.getArrayIfSingleItem)(output[_R][_Re]), context);\n }\n if (output[_AI] != null) {\n contents[_AI] = de_AlarmIdentifier(output[_AI], context);\n }\n if (output[_IDHS] != null) {\n contents[_IDHS] = (0, import_smithy_client.expectString)(output[_IDHS]);\n }\n if (output[_RCA] != null) {\n contents[_RCA] = (0, import_smithy_client.expectString)(output[_RCA]);\n }\n return contents;\n}, \"de_HealthCheckConfig\");\nvar de_HealthCheckObservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.expectString)(output[_IPA]);\n }\n if (output[_SR] != null) {\n contents[_SR] = de_StatusReport(output[_SR], context);\n }\n return contents;\n}, \"de_HealthCheckObservation\");\nvar de_HealthCheckObservations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HealthCheckObservation(entry, context);\n });\n}, \"de_HealthCheckObservations\");\nvar de_HealthCheckRegionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_HealthCheckRegionList\");\nvar de_HealthChecks = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HealthCheck(entry, context);\n });\n}, \"de_HealthChecks\");\nvar de_HostedZone = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_CR] != null) {\n contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]);\n }\n if (output[_Con] != null) {\n contents[_Con] = de_HostedZoneConfig(output[_Con], context);\n }\n if (output[_RRSC] != null) {\n contents[_RRSC] = (0, import_smithy_client.strictParseLong)(output[_RRSC]);\n }\n if (output[_LS] != null) {\n contents[_LS] = de_LinkedService(output[_LS], context);\n }\n return contents;\n}, \"de_HostedZone\");\nvar de_HostedZoneConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n if (output[_PZ] != null) {\n contents[_PZ] = (0, import_smithy_client.parseBoolean)(output[_PZ]);\n }\n return contents;\n}, \"de_HostedZoneConfig\");\nvar de_HostedZoneLimit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_V]);\n }\n return contents;\n}, \"de_HostedZoneLimit\");\nvar de_HostedZoneOwner = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_OA]);\n }\n if (output[_OS] != null) {\n contents[_OS] = (0, import_smithy_client.expectString)(output[_OS]);\n }\n return contents;\n}, \"de_HostedZoneOwner\");\nvar de_HostedZones = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostedZone(entry, context);\n });\n}, \"de_HostedZones\");\nvar de_HostedZoneSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostedZoneSummary(entry, context);\n });\n}, \"de_HostedZoneSummaries\");\nvar de_HostedZoneSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_O] != null) {\n contents[_O] = de_HostedZoneOwner(output[_O], context);\n }\n return contents;\n}, \"de_HostedZoneSummary\");\nvar de_KeySigningKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_KA] != null) {\n contents[_KA] = (0, import_smithy_client.expectString)(output[_KA]);\n }\n if (output[_Fl] != null) {\n contents[_Fl] = (0, import_smithy_client.strictParseInt32)(output[_Fl]);\n }\n if (output[_SAM] != null) {\n contents[_SAM] = (0, import_smithy_client.expectString)(output[_SAM]);\n }\n if (output[_SAT] != null) {\n contents[_SAT] = (0, import_smithy_client.strictParseInt32)(output[_SAT]);\n }\n if (output[_DAM] != null) {\n contents[_DAM] = (0, import_smithy_client.expectString)(output[_DAM]);\n }\n if (output[_DAT] != null) {\n contents[_DAT] = (0, import_smithy_client.strictParseInt32)(output[_DAT]);\n }\n if (output[_KT] != null) {\n contents[_KT] = (0, import_smithy_client.strictParseInt32)(output[_KT]);\n }\n if (output[_DV] != null) {\n contents[_DV] = (0, import_smithy_client.expectString)(output[_DV]);\n }\n if (output[_PK] != null) {\n contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]);\n }\n if (output[_DSR] != null) {\n contents[_DSR] = (0, import_smithy_client.expectString)(output[_DSR]);\n }\n if (output[_DNSKEYR] != null) {\n contents[_DNSKEYR] = (0, import_smithy_client.expectString)(output[_DNSKEYR]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_SM] != null) {\n contents[_SM] = (0, import_smithy_client.expectString)(output[_SM]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_LMD] != null) {\n contents[_LMD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LMD]));\n }\n return contents;\n}, \"de_KeySigningKey\");\nvar de_KeySigningKeys = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_KeySigningKey(entry, context);\n });\n}, \"de_KeySigningKeys\");\nvar de_LinkedService = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_SP]);\n }\n if (output[_De] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_De]);\n }\n return contents;\n}, \"de_LinkedService\");\nvar de_LocationSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocationSummary(entry, context);\n });\n}, \"de_LocationSummaries\");\nvar de_LocationSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LN] != null) {\n contents[_LN] = (0, import_smithy_client.expectString)(output[_LN]);\n }\n return contents;\n}, \"de_LocationSummary\");\nvar de_QueryLoggingConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_CWLLGA] != null) {\n contents[_CWLLGA] = (0, import_smithy_client.expectString)(output[_CWLLGA]);\n }\n return contents;\n}, \"de_QueryLoggingConfig\");\nvar de_QueryLoggingConfigs = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_QueryLoggingConfig(entry, context);\n });\n}, \"de_QueryLoggingConfigs\");\nvar de_RecordData = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_RecordData\");\nvar de_ResourceRecord = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_V]);\n }\n return contents;\n}, \"de_ResourceRecord\");\nvar de_ResourceRecords = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceRecord(entry, context);\n });\n}, \"de_ResourceRecords\");\nvar de_ResourceRecordSet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n if (output[_W] != null) {\n contents[_W] = (0, import_smithy_client.strictParseLong)(output[_W]);\n }\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_GL] != null) {\n contents[_GL] = de_GeoLocation(output[_GL], context);\n }\n if (output[_F] != null) {\n contents[_F] = (0, import_smithy_client.expectString)(output[_F]);\n }\n if (output[_MVA] != null) {\n contents[_MVA] = (0, import_smithy_client.parseBoolean)(output[_MVA]);\n }\n if (output[_TTL] != null) {\n contents[_TTL] = (0, import_smithy_client.strictParseLong)(output[_TTL]);\n }\n if (output.ResourceRecords === \"\") {\n contents[_RRe] = [];\n } else if (output[_RRe] != null && output[_RRe][_RR] != null) {\n contents[_RRe] = de_ResourceRecords((0, import_smithy_client.getArrayIfSingleItem)(output[_RRe][_RR]), context);\n }\n if (output[_ATl] != null) {\n contents[_ATl] = de_AliasTarget(output[_ATl], context);\n }\n if (output[_HCI] != null) {\n contents[_HCI] = (0, import_smithy_client.expectString)(output[_HCI]);\n }\n if (output[_TPII] != null) {\n contents[_TPII] = (0, import_smithy_client.expectString)(output[_TPII]);\n }\n if (output[_CRC] != null) {\n contents[_CRC] = de_CidrRoutingConfig(output[_CRC], context);\n }\n if (output[_GPL] != null) {\n contents[_GPL] = de_GeoProximityLocation(output[_GPL], context);\n }\n return contents;\n}, \"de_ResourceRecordSet\");\nvar de_ResourceRecordSets = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceRecordSet(entry, context);\n });\n}, \"de_ResourceRecordSets\");\nvar de_ResourceTagSet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RTe] != null) {\n contents[_RTe] = (0, import_smithy_client.expectString)(output[_RTe]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n if (output.Tags === \"\") {\n contents[_Tag] = [];\n } else if (output[_Tag] != null && output[_Tag][_Ta] != null) {\n contents[_Tag] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tag][_Ta]), context);\n }\n return contents;\n}, \"de_ResourceTagSet\");\nvar de_ResourceTagSetList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceTagSet(entry, context);\n });\n}, \"de_ResourceTagSetList\");\nvar de_ReusableDelegationSetLimit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_V]);\n }\n return contents;\n}, \"de_ReusableDelegationSetLimit\");\nvar de_StatusReport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CT]));\n }\n return contents;\n}, \"de_StatusReport\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_V]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagList\");\nvar de_TrafficPolicies = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficPolicy(entry, context);\n });\n}, \"de_TrafficPolicies\");\nvar de_TrafficPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_Ve] != null) {\n contents[_Ve] = (0, import_smithy_client.strictParseInt32)(output[_Ve]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n return contents;\n}, \"de_TrafficPolicy\");\nvar de_TrafficPolicyInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_TTL] != null) {\n contents[_TTL] = (0, import_smithy_client.strictParseLong)(output[_TTL]);\n }\n if (output[_Sta] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_Sta]);\n }\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n if (output[_TPI] != null) {\n contents[_TPI] = (0, import_smithy_client.expectString)(output[_TPI]);\n }\n if (output[_TPV] != null) {\n contents[_TPV] = (0, import_smithy_client.strictParseInt32)(output[_TPV]);\n }\n if (output[_TPT] != null) {\n contents[_TPT] = (0, import_smithy_client.expectString)(output[_TPT]);\n }\n return contents;\n}, \"de_TrafficPolicyInstance\");\nvar de_TrafficPolicyInstances = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficPolicyInstance(entry, context);\n });\n}, \"de_TrafficPolicyInstances\");\nvar de_TrafficPolicySummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficPolicySummary(entry, context);\n });\n}, \"de_TrafficPolicySummaries\");\nvar de_TrafficPolicySummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_LV] != null) {\n contents[_LV] = (0, import_smithy_client.strictParseInt32)(output[_LV]);\n }\n if (output[_TPCr] != null) {\n contents[_TPCr] = (0, import_smithy_client.strictParseInt32)(output[_TPCr]);\n }\n return contents;\n}, \"de_TrafficPolicySummary\");\nvar de_VPC = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_VPCR] != null) {\n contents[_VPCR] = (0, import_smithy_client.expectString)(output[_VPCR]);\n }\n if (output[_VPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_VPCI]);\n }\n return contents;\n}, \"de_VPC\");\nvar de_VPCs = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VPC(entry, context);\n });\n}, \"de_VPCs\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _A = \"Action\";\nvar _AHE = \"AliasHealthEnabled\";\nvar _AI = \"AlarmIdentifier\";\nvar _AN = \"AlarmName\";\nvar _AT = \"AddTags\";\nvar _ATl = \"AliasTarget\";\nvar _AVPCC = \"AssociateVPCComment\";\nvar _AVPCWHZR = \"AssociateVPCWithHostedZoneRequest\";\nvar _AWSR = \"AWSRegion\";\nvar _Ar = \"Arn\";\nvar _B = \"Bias\";\nvar _C = \"Comment\";\nvar _CA = \"ChangeAction\";\nvar _CB = \"ChangeBatch\";\nvar _CBi = \"CidrBlocks\";\nvar _CBid = \"CidrBlock\";\nvar _CC = \"ContinentCode\";\nvar _CCC = \"CidrCollectionChange\";\nvar _CCCA = \"CidrCollectionChangeAction\";\nvar _CCCR = \"ChangeCidrCollectionRequest\";\nvar _CCCRr = \"CreateCidrCollectionRequest\";\nvar _CCi = \"CidrCollections\";\nvar _CCo = \"CountryCode\";\nvar _CD = \"CreatedDate\";\nvar _CHC = \"ChildHealthChecks\";\nvar _CHCR = \"CreateHealthCheckRequest\";\nvar _CHCh = \"ChildHealthCheck\";\nvar _CHZR = \"CreateHostedZoneRequest\";\nvar _CI = \"ChangeInfo\";\nvar _CIR = \"CheckerIpRanges\";\nvar _CIo = \"CollectionId\";\nvar _CKSKR = \"CreateKeySigningKeyRequest\";\nvar _CL = \"CidrLocations\";\nvar _CLNDA = \"CidrLocationNameDefaultAllowed\";\nvar _CLNDNA = \"CidrLocationNameDefaultNotAllowed\";\nvar _CLi = \"CidrList\";\nvar _CN = \"CidrNonce\";\nvar _CNo = \"CollectionName\";\nvar _CNon = \"ContinentName\";\nvar _CNou = \"CountryName\";\nvar _CO = \"ComparisonOperator\";\nvar _CQLCR = \"CreateQueryLoggingConfigRequest\";\nvar _CR = \"CallerReference\";\nvar _CRC = \"CidrRoutingConfig\";\nvar _CRDSR = \"CreateReusableDelegationSetRequest\";\nvar _CRRSR = \"ChangeResourceRecordSetsRequest\";\nvar _CT = \"CheckedTime\";\nvar _CTFRR = \"ChangeTagsForResourceRequest\";\nvar _CTPIR = \"CreateTrafficPolicyInstanceRequest\";\nvar _CTPR = \"CreateTrafficPolicyRequest\";\nvar _CTPVR = \"CreateTrafficPolicyVersionRequest\";\nvar _CV = \"CollectionVersion\";\nvar _CVPCAAR = \"CreateVPCAssociationAuthorizationRequest\";\nvar _CWAC = \"CloudWatchAlarmConfiguration\";\nvar _CWLLGA = \"CloudWatchLogsLogGroupArn\";\nvar _CWR = \"CloudWatchRegion\";\nvar _Ch = \"Changes\";\nvar _Cha = \"Change\";\nvar _Ci = \"Cidr\";\nvar _Co = \"Collection\";\nvar _Con = \"Config\";\nvar _Coo = \"Coordinates\";\nvar _Cou = \"Count\";\nvar _D = \"Document\";\nvar _DAM = \"DigestAlgorithmMnemonic\";\nvar _DAT = \"DigestAlgorithmType\";\nvar _DNSKEYR = \"DNSKEYRecord\";\nvar _DNSN = \"DNSName\";\nvar _DS = \"DelegationSet\";\nvar _DSI = \"DelegationSetId\";\nvar _DSR = \"DSRecord\";\nvar _DSe = \"DelegationSets\";\nvar _DV = \"DigestValue\";\nvar _DVPCAAR = \"DeleteVPCAssociationAuthorizationRequest\";\nvar _DVPCC = \"DisassociateVPCComment\";\nvar _DVPCFHZR = \"DisassociateVPCFromHostedZoneRequest\";\nvar _De = \"Description\";\nvar _Di = \"Disabled\";\nvar _Dim = \"Dimensions\";\nvar _Dime = \"Dimension\";\nvar _EDNSCSIP = \"EDNS0ClientSubnetIP\";\nvar _EDNSCSM = \"EDNS0ClientSubnetMask\";\nvar _EP = \"EvaluationPeriods\";\nvar _ESNI = \"EnableSNI\";\nvar _ETH = \"EvaluateTargetHealth\";\nvar _F = \"Failover\";\nvar _FQDN = \"FullyQualifiedDomainName\";\nvar _FT = \"FailureThreshold\";\nvar _Fl = \"Flag\";\nvar _GL = \"GeoLocation\";\nvar _GLCC = \"GeoLocationContinentCode\";\nvar _GLCCe = \"GeoLocationCountryCode\";\nvar _GLD = \"GeoLocationDetails\";\nvar _GLDL = \"GeoLocationDetailsList\";\nvar _GLSC = \"GeoLocationSubdivisionCode\";\nvar _GPL = \"GeoProximityLocation\";\nvar _HC = \"HealthCheck\";\nvar _HCC = \"HealthCheckConfig\";\nvar _HCCe = \"HealthCheckCount\";\nvar _HCI = \"HealthCheckId\";\nvar _HCN = \"HealthCheckNonce\";\nvar _HCO = \"HealthCheckObservations\";\nvar _HCOe = \"HealthCheckObservation\";\nvar _HCR = \"HealthCheckRegion\";\nvar _HCT = \"HealthCheckType\";\nvar _HCV = \"HealthCheckVersion\";\nvar _HCe = \"HealthChecks\";\nvar _HT = \"HealthThreshold\";\nvar _HZ = \"HostedZone\";\nvar _HZC = \"HostedZoneConfig\";\nvar _HZCo = \"HostedZoneCount\";\nvar _HZI = \"HostedZoneId\";\nvar _HZIM = \"HostedZoneIdMarker\";\nvar _HZS = \"HostedZoneSummaries\";\nvar _HZSo = \"HostedZoneSummary\";\nvar _HZT = \"HostedZoneType\";\nvar _HZo = \"HostedZones\";\nvar _I = \"Inverted\";\nvar _IDHS = \"InsufficientDataHealthStatus\";\nvar _IPA = \"IPAddress\";\nvar _IPZ = \"IsPrivateZone\";\nvar _IT = \"IsTruncated\";\nvar _Id = \"Id\";\nvar _K = \"Key\";\nvar _KA = \"KmsArn\";\nvar _KMSA = \"KeyManagementServiceArn\";\nvar _KSK = \"KeySigningKey\";\nvar _KSKe = \"KeySigningKeys\";\nvar _KT = \"KeyTag\";\nvar _L = \"Location\";\nvar _LMD = \"LastModifiedDate\";\nvar _LN = \"LocationName\";\nvar _LS = \"LinkedService\";\nvar _LTFRR = \"ListTagsForResourcesRequest\";\nvar _LV = \"LatestVersion\";\nvar _LZG = \"LocalZoneGroup\";\nvar _La = \"Latitude\";\nvar _Li = \"Limit\";\nvar _Lo = \"Longitude\";\nvar _M = \"Marker\";\nvar _MI = \"MaxItems\";\nvar _ML = \"MeasureLatency\";\nvar _MN = \"MetricName\";\nvar _MR = \"MaxResults\";\nvar _MVA = \"MultiValueAnswer\";\nvar _Me = \"Message\";\nvar _N = \"Name\";\nvar _NCC = \"NextContinentCode\";\nvar _NCCe = \"NextCountryCode\";\nvar _NDNSN = \"NextDNSName\";\nvar _NHZI = \"NextHostedZoneId\";\nvar _NM = \"NextMarker\";\nvar _NRI = \"NextRecordIdentifier\";\nvar _NRN = \"NextRecordName\";\nvar _NRT = \"NextRecordType\";\nvar _NS = \"NameServers\";\nvar _NSC = \"NextSubdivisionCode\";\nvar _NSa = \"NameServer\";\nvar _NT = \"NextToken\";\nvar _Na = \"Nameserver\";\nvar _Nam = \"Namespace\";\nvar _No = \"Nonce\";\nvar _O = \"Owner\";\nvar _OA = \"OwningAccount\";\nvar _OS = \"OwningService\";\nvar _P = \"Port\";\nvar _PK = \"PublicKey\";\nvar _PZ = \"PrivateZone\";\nvar _Pe = \"Period\";\nvar _Pr = \"Protocol\";\nvar _QLC = \"QueryLoggingConfig\";\nvar _QLCu = \"QueryLoggingConfigs\";\nvar _R = \"Regions\";\nvar _RC = \"ResponseCode\";\nvar _RCA = \"RoutingControlArn\";\nvar _RD = \"ResourceDescription\";\nvar _RDE = \"RecordDataEntry\";\nvar _RDa = \"RData\";\nvar _RDe = \"RecordData\";\nvar _RE = \"ResetElements\";\nvar _REN = \"ResettableElementName\";\nvar _RI = \"ResourceId\";\nvar _RIP = \"ResolverIP\";\nvar _RIe = \"ResourceIds\";\nvar _RIeq = \"RequestInterval\";\nvar _RN = \"RecordName\";\nvar _RP = \"ResourcePath\";\nvar _RR = \"ResourceRecord\";\nvar _RRS = \"ResourceRecordSets\";\nvar _RRSC = \"ResourceRecordSetCount\";\nvar _RRSF = \"ResourceRecordSetFailover\";\nvar _RRSI = \"ResourceRecordSetIdentifier\";\nvar _RRSMVA = \"ResourceRecordSetMultiValueAnswer\";\nvar _RRSR = \"ResourceRecordSetRegion\";\nvar _RRSW = \"ResourceRecordSetWeight\";\nvar _RRSe = \"ResourceRecordSet\";\nvar _RRT = \"RRType\";\nvar _RRe = \"ResourceRecords\";\nvar _RT = \"RecordType\";\nvar _RTK = \"RemoveTagKeys\";\nvar _RTS = \"ResourceTagSet\";\nvar _RTSe = \"ResourceTagSets\";\nvar _RTe = \"ResourceType\";\nvar _Re = \"Region\";\nvar _S = \"Status\";\nvar _SA = \"SubmittedAt\";\nvar _SAM = \"SigningAlgorithmMnemonic\";\nvar _SAT = \"SigningAlgorithmType\";\nvar _SC = \"SubdivisionCode\";\nvar _SCC = \"StartContinentCode\";\nvar _SCCt = \"StartCountryCode\";\nvar _SI = \"SetIdentifier\";\nvar _SKN = \"SigningKeyName\";\nvar _SKS = \"SigningKeyString\";\nvar _SKSi = \"SigningKeyStatus\";\nvar _SM = \"StatusMessage\";\nvar _SN = \"SubdivisionName\";\nvar _SP = \"ServicePrincipal\";\nvar _SR = \"StatusReport\";\nvar _SRI = \"StartRecordIdentifier\";\nvar _SRN = \"StartRecordName\";\nvar _SRT = \"StartRecordType\";\nvar _SS = \"SearchString\";\nvar _SSC = \"StartSubdivisionCode\";\nvar _SSe = \"ServeSignature\";\nvar _St = \"Statistic\";\nvar _Sta = \"State\";\nvar _T = \"Type\";\nvar _TK = \"TagKey\";\nvar _TP = \"TrafficPolicy\";\nvar _TPC = \"TrafficPolicyComment\";\nvar _TPCr = \"TrafficPolicyCount\";\nvar _TPD = \"TrafficPolicyDocument\";\nvar _TPI = \"TrafficPolicyId\";\nvar _TPIC = \"TrafficPolicyInstanceCount\";\nvar _TPII = \"TrafficPolicyInstanceId\";\nvar _TPIM = \"TrafficPolicyIdMarker\";\nvar _TPINM = \"TrafficPolicyInstanceNameMarker\";\nvar _TPITM = \"TrafficPolicyInstanceTypeMarker\";\nvar _TPIr = \"TrafficPolicyInstance\";\nvar _TPIra = \"TrafficPolicyInstances\";\nvar _TPN = \"TrafficPolicyName\";\nvar _TPS = \"TrafficPolicySummaries\";\nvar _TPSr = \"TrafficPolicySummary\";\nvar _TPT = \"TrafficPolicyType\";\nvar _TPV = \"TrafficPolicyVersion\";\nvar _TPVM = \"TrafficPolicyVersionMarker\";\nvar _TPr = \"TrafficPolicies\";\nvar _TRI = \"TagResourceId\";\nvar _TTL = \"TTL\";\nvar _TV = \"TagValue\";\nvar _Ta = \"Tag\";\nvar _Tag = \"Tags\";\nvar _Th = \"Threshold\";\nvar _UHCR = \"UpdateHealthCheckRequest\";\nvar _UHZCR = \"UpdateHostedZoneCommentRequest\";\nvar _UTPCR = \"UpdateTrafficPolicyCommentRequest\";\nvar _UTPIR = \"UpdateTrafficPolicyInstanceRequest\";\nvar _UUID = \"UUID\";\nvar _V = \"Value\";\nvar _VPC = \"VPC\";\nvar _VPCI = \"VPCId\";\nvar _VPCR = \"VPCRegion\";\nvar _VPCs = \"VPCs\";\nvar _Ve = \"Version\";\nvar _W = \"Weight\";\nvar _c = \"continentcode\";\nvar _co = \"countrycode\";\nvar _d = \"delegationsetid\";\nvar _dn = \"dnsname\";\nvar _e = \"edns0clientsubnetip\";\nvar _ed = \"edns0clientsubnetmask\";\nvar _h = \"hostedzonetype\";\nvar _ho = \"hostedzoneid\";\nvar _i = \"identifier\";\nvar _id = \"id\";\nvar _l = \"location\";\nvar _m = \"maxresults\";\nvar _ma = \"maxitems\";\nvar _mar = \"marker\";\nvar _me = \"member\";\nvar _mes = \"message\";\nvar _mess = \"messages\";\nvar _n = \"nexttoken\";\nvar _na = \"name\";\nvar _r = \"recordname\";\nvar _re = \"recordtype\";\nvar _res = \"resolverip\";\nvar _s = \"subdivisioncode\";\nvar _st = \"startcontinentcode\";\nvar _sta = \"startcountrycode\";\nvar _star = \"startsubdivisioncode\";\nvar _t = \"type\";\nvar _tr = \"trafficpolicyid\";\nvar _tra = \"trafficpolicyinstancename\";\nvar _traf = \"trafficpolicyinstancetype\";\nvar _traff = \"trafficpolicyversion\";\nvar _v = \"vpcid\";\nvar _ve = '';\nvar _ver = \"version\";\nvar _vp = \"vpcregion\";\n\n// src/commands/ActivateKeySigningKeyCommand.ts\nvar ActivateKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route53.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ActivateKeySigningKey\", {}).n(\"Route53Client\", \"ActivateKeySigningKeyCommand\").f(void 0, void 0).ser(se_ActivateKeySigningKeyCommand).de(de_ActivateKeySigningKeyCommand).build() {\n static {\n __name(this, \"ActivateKeySigningKeyCommand\");\n }\n};\n\n// src/commands/AssociateVPCWithHostedZoneCommand.ts\nvar import_middleware_sdk_route532 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar AssociateVPCWithHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route532.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"AssociateVPCWithHostedZone\", {}).n(\"Route53Client\", \"AssociateVPCWithHostedZoneCommand\").f(void 0, void 0).ser(se_AssociateVPCWithHostedZoneCommand).de(de_AssociateVPCWithHostedZoneCommand).build() {\n static {\n __name(this, \"AssociateVPCWithHostedZoneCommand\");\n }\n};\n\n// src/commands/ChangeCidrCollectionCommand.ts\nvar import_middleware_sdk_route533 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ChangeCidrCollectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route533.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ChangeCidrCollection\", {}).n(\"Route53Client\", \"ChangeCidrCollectionCommand\").f(void 0, void 0).ser(se_ChangeCidrCollectionCommand).de(de_ChangeCidrCollectionCommand).build() {\n static {\n __name(this, \"ChangeCidrCollectionCommand\");\n }\n};\n\n// src/commands/ChangeResourceRecordSetsCommand.ts\nvar import_middleware_sdk_route534 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ChangeResourceRecordSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route534.getChangeResourceRecordSetsPlugin)(config),\n (0, import_middleware_sdk_route534.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ChangeResourceRecordSets\", {}).n(\"Route53Client\", \"ChangeResourceRecordSetsCommand\").f(void 0, void 0).ser(se_ChangeResourceRecordSetsCommand).de(de_ChangeResourceRecordSetsCommand).build() {\n static {\n __name(this, \"ChangeResourceRecordSetsCommand\");\n }\n};\n\n// src/commands/ChangeTagsForResourceCommand.ts\n\n\n\nvar ChangeTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ChangeTagsForResource\", {}).n(\"Route53Client\", \"ChangeTagsForResourceCommand\").f(void 0, void 0).ser(se_ChangeTagsForResourceCommand).de(de_ChangeTagsForResourceCommand).build() {\n static {\n __name(this, \"ChangeTagsForResourceCommand\");\n }\n};\n\n// src/commands/CreateCidrCollectionCommand.ts\n\n\n\nvar CreateCidrCollectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"CreateCidrCollection\", {}).n(\"Route53Client\", \"CreateCidrCollectionCommand\").f(void 0, void 0).ser(se_CreateCidrCollectionCommand).de(de_CreateCidrCollectionCommand).build() {\n static {\n __name(this, \"CreateCidrCollectionCommand\");\n }\n};\n\n// src/commands/CreateHealthCheckCommand.ts\n\n\n\nvar CreateHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"CreateHealthCheck\", {}).n(\"Route53Client\", \"CreateHealthCheckCommand\").f(void 0, void 0).ser(se_CreateHealthCheckCommand).de(de_CreateHealthCheckCommand).build() {\n static {\n __name(this, \"CreateHealthCheckCommand\");\n }\n};\n\n// src/commands/CreateHostedZoneCommand.ts\nvar import_middleware_sdk_route535 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route535.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateHostedZone\", {}).n(\"Route53Client\", \"CreateHostedZoneCommand\").f(void 0, void 0).ser(se_CreateHostedZoneCommand).de(de_CreateHostedZoneCommand).build() {\n static {\n __name(this, \"CreateHostedZoneCommand\");\n }\n};\n\n// src/commands/CreateKeySigningKeyCommand.ts\nvar import_middleware_sdk_route536 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route536.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateKeySigningKey\", {}).n(\"Route53Client\", \"CreateKeySigningKeyCommand\").f(void 0, void 0).ser(se_CreateKeySigningKeyCommand).de(de_CreateKeySigningKeyCommand).build() {\n static {\n __name(this, \"CreateKeySigningKeyCommand\");\n }\n};\n\n// src/commands/CreateQueryLoggingConfigCommand.ts\nvar import_middleware_sdk_route537 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateQueryLoggingConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route537.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateQueryLoggingConfig\", {}).n(\"Route53Client\", \"CreateQueryLoggingConfigCommand\").f(void 0, void 0).ser(se_CreateQueryLoggingConfigCommand).de(de_CreateQueryLoggingConfigCommand).build() {\n static {\n __name(this, \"CreateQueryLoggingConfigCommand\");\n }\n};\n\n// src/commands/CreateReusableDelegationSetCommand.ts\nvar import_middleware_sdk_route538 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateReusableDelegationSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route538.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateReusableDelegationSet\", {}).n(\"Route53Client\", \"CreateReusableDelegationSetCommand\").f(void 0, void 0).ser(se_CreateReusableDelegationSetCommand).de(de_CreateReusableDelegationSetCommand).build() {\n static {\n __name(this, \"CreateReusableDelegationSetCommand\");\n }\n};\n\n// src/commands/CreateTrafficPolicyCommand.ts\n\n\n\nvar CreateTrafficPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"CreateTrafficPolicy\", {}).n(\"Route53Client\", \"CreateTrafficPolicyCommand\").f(void 0, void 0).ser(se_CreateTrafficPolicyCommand).de(de_CreateTrafficPolicyCommand).build() {\n static {\n __name(this, \"CreateTrafficPolicyCommand\");\n }\n};\n\n// src/commands/CreateTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route539 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route539.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateTrafficPolicyInstance\", {}).n(\"Route53Client\", \"CreateTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_CreateTrafficPolicyInstanceCommand).de(de_CreateTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"CreateTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/commands/CreateTrafficPolicyVersionCommand.ts\nvar import_middleware_sdk_route5310 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateTrafficPolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5310.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateTrafficPolicyVersion\", {}).n(\"Route53Client\", \"CreateTrafficPolicyVersionCommand\").f(void 0, void 0).ser(se_CreateTrafficPolicyVersionCommand).de(de_CreateTrafficPolicyVersionCommand).build() {\n static {\n __name(this, \"CreateTrafficPolicyVersionCommand\");\n }\n};\n\n// src/commands/CreateVPCAssociationAuthorizationCommand.ts\nvar import_middleware_sdk_route5311 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateVPCAssociationAuthorizationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5311.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateVPCAssociationAuthorization\", {}).n(\"Route53Client\", \"CreateVPCAssociationAuthorizationCommand\").f(void 0, void 0).ser(se_CreateVPCAssociationAuthorizationCommand).de(de_CreateVPCAssociationAuthorizationCommand).build() {\n static {\n __name(this, \"CreateVPCAssociationAuthorizationCommand\");\n }\n};\n\n// src/commands/DeactivateKeySigningKeyCommand.ts\nvar import_middleware_sdk_route5312 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeactivateKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5312.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeactivateKeySigningKey\", {}).n(\"Route53Client\", \"DeactivateKeySigningKeyCommand\").f(void 0, void 0).ser(se_DeactivateKeySigningKeyCommand).de(de_DeactivateKeySigningKeyCommand).build() {\n static {\n __name(this, \"DeactivateKeySigningKeyCommand\");\n }\n};\n\n// src/commands/DeleteCidrCollectionCommand.ts\nvar import_middleware_sdk_route5313 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteCidrCollectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5313.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteCidrCollection\", {}).n(\"Route53Client\", \"DeleteCidrCollectionCommand\").f(void 0, void 0).ser(se_DeleteCidrCollectionCommand).de(de_DeleteCidrCollectionCommand).build() {\n static {\n __name(this, \"DeleteCidrCollectionCommand\");\n }\n};\n\n// src/commands/DeleteHealthCheckCommand.ts\n\n\n\nvar DeleteHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteHealthCheck\", {}).n(\"Route53Client\", \"DeleteHealthCheckCommand\").f(void 0, void 0).ser(se_DeleteHealthCheckCommand).de(de_DeleteHealthCheckCommand).build() {\n static {\n __name(this, \"DeleteHealthCheckCommand\");\n }\n};\n\n// src/commands/DeleteHostedZoneCommand.ts\nvar import_middleware_sdk_route5314 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5314.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteHostedZone\", {}).n(\"Route53Client\", \"DeleteHostedZoneCommand\").f(void 0, void 0).ser(se_DeleteHostedZoneCommand).de(de_DeleteHostedZoneCommand).build() {\n static {\n __name(this, \"DeleteHostedZoneCommand\");\n }\n};\n\n// src/commands/DeleteKeySigningKeyCommand.ts\nvar import_middleware_sdk_route5315 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5315.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteKeySigningKey\", {}).n(\"Route53Client\", \"DeleteKeySigningKeyCommand\").f(void 0, void 0).ser(se_DeleteKeySigningKeyCommand).de(de_DeleteKeySigningKeyCommand).build() {\n static {\n __name(this, \"DeleteKeySigningKeyCommand\");\n }\n};\n\n// src/commands/DeleteQueryLoggingConfigCommand.ts\nvar import_middleware_sdk_route5316 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteQueryLoggingConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5316.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteQueryLoggingConfig\", {}).n(\"Route53Client\", \"DeleteQueryLoggingConfigCommand\").f(void 0, void 0).ser(se_DeleteQueryLoggingConfigCommand).de(de_DeleteQueryLoggingConfigCommand).build() {\n static {\n __name(this, \"DeleteQueryLoggingConfigCommand\");\n }\n};\n\n// src/commands/DeleteReusableDelegationSetCommand.ts\nvar import_middleware_sdk_route5317 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteReusableDelegationSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5317.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteReusableDelegationSet\", {}).n(\"Route53Client\", \"DeleteReusableDelegationSetCommand\").f(void 0, void 0).ser(se_DeleteReusableDelegationSetCommand).de(de_DeleteReusableDelegationSetCommand).build() {\n static {\n __name(this, \"DeleteReusableDelegationSetCommand\");\n }\n};\n\n// src/commands/DeleteTrafficPolicyCommand.ts\nvar import_middleware_sdk_route5318 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteTrafficPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5318.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteTrafficPolicy\", {}).n(\"Route53Client\", \"DeleteTrafficPolicyCommand\").f(void 0, void 0).ser(se_DeleteTrafficPolicyCommand).de(de_DeleteTrafficPolicyCommand).build() {\n static {\n __name(this, \"DeleteTrafficPolicyCommand\");\n }\n};\n\n// src/commands/DeleteTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route5319 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5319.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteTrafficPolicyInstance\", {}).n(\"Route53Client\", \"DeleteTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_DeleteTrafficPolicyInstanceCommand).de(de_DeleteTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"DeleteTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/commands/DeleteVPCAssociationAuthorizationCommand.ts\nvar import_middleware_sdk_route5320 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteVPCAssociationAuthorizationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5320.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteVPCAssociationAuthorization\", {}).n(\"Route53Client\", \"DeleteVPCAssociationAuthorizationCommand\").f(void 0, void 0).ser(se_DeleteVPCAssociationAuthorizationCommand).de(de_DeleteVPCAssociationAuthorizationCommand).build() {\n static {\n __name(this, \"DeleteVPCAssociationAuthorizationCommand\");\n }\n};\n\n// src/commands/DisableHostedZoneDNSSECCommand.ts\nvar import_middleware_sdk_route5321 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DisableHostedZoneDNSSECCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5321.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DisableHostedZoneDNSSEC\", {}).n(\"Route53Client\", \"DisableHostedZoneDNSSECCommand\").f(void 0, void 0).ser(se_DisableHostedZoneDNSSECCommand).de(de_DisableHostedZoneDNSSECCommand).build() {\n static {\n __name(this, \"DisableHostedZoneDNSSECCommand\");\n }\n};\n\n// src/commands/DisassociateVPCFromHostedZoneCommand.ts\nvar import_middleware_sdk_route5322 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DisassociateVPCFromHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5322.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DisassociateVPCFromHostedZone\", {}).n(\"Route53Client\", \"DisassociateVPCFromHostedZoneCommand\").f(void 0, void 0).ser(se_DisassociateVPCFromHostedZoneCommand).de(de_DisassociateVPCFromHostedZoneCommand).build() {\n static {\n __name(this, \"DisassociateVPCFromHostedZoneCommand\");\n }\n};\n\n// src/commands/EnableHostedZoneDNSSECCommand.ts\nvar import_middleware_sdk_route5323 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar EnableHostedZoneDNSSECCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5323.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"EnableHostedZoneDNSSEC\", {}).n(\"Route53Client\", \"EnableHostedZoneDNSSECCommand\").f(void 0, void 0).ser(se_EnableHostedZoneDNSSECCommand).de(de_EnableHostedZoneDNSSECCommand).build() {\n static {\n __name(this, \"EnableHostedZoneDNSSECCommand\");\n }\n};\n\n// src/commands/GetAccountLimitCommand.ts\n\n\n\nvar GetAccountLimitCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetAccountLimit\", {}).n(\"Route53Client\", \"GetAccountLimitCommand\").f(void 0, void 0).ser(se_GetAccountLimitCommand).de(de_GetAccountLimitCommand).build() {\n static {\n __name(this, \"GetAccountLimitCommand\");\n }\n};\n\n// src/commands/GetChangeCommand.ts\nvar import_middleware_sdk_route5324 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetChangeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5324.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetChange\", {}).n(\"Route53Client\", \"GetChangeCommand\").f(void 0, void 0).ser(se_GetChangeCommand).de(de_GetChangeCommand).build() {\n static {\n __name(this, \"GetChangeCommand\");\n }\n};\n\n// src/commands/GetCheckerIpRangesCommand.ts\n\n\n\nvar GetCheckerIpRangesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetCheckerIpRanges\", {}).n(\"Route53Client\", \"GetCheckerIpRangesCommand\").f(void 0, void 0).ser(se_GetCheckerIpRangesCommand).de(de_GetCheckerIpRangesCommand).build() {\n static {\n __name(this, \"GetCheckerIpRangesCommand\");\n }\n};\n\n// src/commands/GetDNSSECCommand.ts\nvar import_middleware_sdk_route5325 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetDNSSECCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5325.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetDNSSEC\", {}).n(\"Route53Client\", \"GetDNSSECCommand\").f(void 0, void 0).ser(se_GetDNSSECCommand).de(de_GetDNSSECCommand).build() {\n static {\n __name(this, \"GetDNSSECCommand\");\n }\n};\n\n// src/commands/GetGeoLocationCommand.ts\n\n\n\nvar GetGeoLocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetGeoLocation\", {}).n(\"Route53Client\", \"GetGeoLocationCommand\").f(void 0, void 0).ser(se_GetGeoLocationCommand).de(de_GetGeoLocationCommand).build() {\n static {\n __name(this, \"GetGeoLocationCommand\");\n }\n};\n\n// src/commands/GetHealthCheckCommand.ts\n\n\n\nvar GetHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheck\", {}).n(\"Route53Client\", \"GetHealthCheckCommand\").f(void 0, void 0).ser(se_GetHealthCheckCommand).de(de_GetHealthCheckCommand).build() {\n static {\n __name(this, \"GetHealthCheckCommand\");\n }\n};\n\n// src/commands/GetHealthCheckCountCommand.ts\n\n\n\nvar GetHealthCheckCountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheckCount\", {}).n(\"Route53Client\", \"GetHealthCheckCountCommand\").f(void 0, void 0).ser(se_GetHealthCheckCountCommand).de(de_GetHealthCheckCountCommand).build() {\n static {\n __name(this, \"GetHealthCheckCountCommand\");\n }\n};\n\n// src/commands/GetHealthCheckLastFailureReasonCommand.ts\n\n\n\nvar GetHealthCheckLastFailureReasonCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheckLastFailureReason\", {}).n(\"Route53Client\", \"GetHealthCheckLastFailureReasonCommand\").f(void 0, void 0).ser(se_GetHealthCheckLastFailureReasonCommand).de(de_GetHealthCheckLastFailureReasonCommand).build() {\n static {\n __name(this, \"GetHealthCheckLastFailureReasonCommand\");\n }\n};\n\n// src/commands/GetHealthCheckStatusCommand.ts\n\n\n\nvar GetHealthCheckStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheckStatus\", {}).n(\"Route53Client\", \"GetHealthCheckStatusCommand\").f(void 0, void 0).ser(se_GetHealthCheckStatusCommand).de(de_GetHealthCheckStatusCommand).build() {\n static {\n __name(this, \"GetHealthCheckStatusCommand\");\n }\n};\n\n// src/commands/GetHostedZoneCommand.ts\nvar import_middleware_sdk_route5326 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5326.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetHostedZone\", {}).n(\"Route53Client\", \"GetHostedZoneCommand\").f(void 0, void 0).ser(se_GetHostedZoneCommand).de(de_GetHostedZoneCommand).build() {\n static {\n __name(this, \"GetHostedZoneCommand\");\n }\n};\n\n// src/commands/GetHostedZoneCountCommand.ts\n\n\n\nvar GetHostedZoneCountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHostedZoneCount\", {}).n(\"Route53Client\", \"GetHostedZoneCountCommand\").f(void 0, void 0).ser(se_GetHostedZoneCountCommand).de(de_GetHostedZoneCountCommand).build() {\n static {\n __name(this, \"GetHostedZoneCountCommand\");\n }\n};\n\n// src/commands/GetHostedZoneLimitCommand.ts\nvar import_middleware_sdk_route5327 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetHostedZoneLimitCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5327.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetHostedZoneLimit\", {}).n(\"Route53Client\", \"GetHostedZoneLimitCommand\").f(void 0, void 0).ser(se_GetHostedZoneLimitCommand).de(de_GetHostedZoneLimitCommand).build() {\n static {\n __name(this, \"GetHostedZoneLimitCommand\");\n }\n};\n\n// src/commands/GetQueryLoggingConfigCommand.ts\nvar import_middleware_sdk_route5328 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetQueryLoggingConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5328.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetQueryLoggingConfig\", {}).n(\"Route53Client\", \"GetQueryLoggingConfigCommand\").f(void 0, void 0).ser(se_GetQueryLoggingConfigCommand).de(de_GetQueryLoggingConfigCommand).build() {\n static {\n __name(this, \"GetQueryLoggingConfigCommand\");\n }\n};\n\n// src/commands/GetReusableDelegationSetCommand.ts\nvar import_middleware_sdk_route5329 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetReusableDelegationSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5329.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetReusableDelegationSet\", {}).n(\"Route53Client\", \"GetReusableDelegationSetCommand\").f(void 0, void 0).ser(se_GetReusableDelegationSetCommand).de(de_GetReusableDelegationSetCommand).build() {\n static {\n __name(this, \"GetReusableDelegationSetCommand\");\n }\n};\n\n// src/commands/GetReusableDelegationSetLimitCommand.ts\nvar import_middleware_sdk_route5330 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetReusableDelegationSetLimitCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5330.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetReusableDelegationSetLimit\", {}).n(\"Route53Client\", \"GetReusableDelegationSetLimitCommand\").f(void 0, void 0).ser(se_GetReusableDelegationSetLimitCommand).de(de_GetReusableDelegationSetLimitCommand).build() {\n static {\n __name(this, \"GetReusableDelegationSetLimitCommand\");\n }\n};\n\n// src/commands/GetTrafficPolicyCommand.ts\nvar import_middleware_sdk_route5331 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetTrafficPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5331.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetTrafficPolicy\", {}).n(\"Route53Client\", \"GetTrafficPolicyCommand\").f(void 0, void 0).ser(se_GetTrafficPolicyCommand).de(de_GetTrafficPolicyCommand).build() {\n static {\n __name(this, \"GetTrafficPolicyCommand\");\n }\n};\n\n// src/commands/GetTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route5332 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5332.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetTrafficPolicyInstance\", {}).n(\"Route53Client\", \"GetTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_GetTrafficPolicyInstanceCommand).de(de_GetTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"GetTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/commands/GetTrafficPolicyInstanceCountCommand.ts\n\n\n\nvar GetTrafficPolicyInstanceCountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetTrafficPolicyInstanceCount\", {}).n(\"Route53Client\", \"GetTrafficPolicyInstanceCountCommand\").f(void 0, void 0).ser(se_GetTrafficPolicyInstanceCountCommand).de(de_GetTrafficPolicyInstanceCountCommand).build() {\n static {\n __name(this, \"GetTrafficPolicyInstanceCountCommand\");\n }\n};\n\n// src/commands/ListCidrBlocksCommand.ts\n\n\n\nvar ListCidrBlocksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListCidrBlocks\", {}).n(\"Route53Client\", \"ListCidrBlocksCommand\").f(void 0, void 0).ser(se_ListCidrBlocksCommand).de(de_ListCidrBlocksCommand).build() {\n static {\n __name(this, \"ListCidrBlocksCommand\");\n }\n};\n\n// src/commands/ListCidrCollectionsCommand.ts\n\n\n\nvar ListCidrCollectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListCidrCollections\", {}).n(\"Route53Client\", \"ListCidrCollectionsCommand\").f(void 0, void 0).ser(se_ListCidrCollectionsCommand).de(de_ListCidrCollectionsCommand).build() {\n static {\n __name(this, \"ListCidrCollectionsCommand\");\n }\n};\n\n// src/commands/ListCidrLocationsCommand.ts\n\n\n\nvar ListCidrLocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListCidrLocations\", {}).n(\"Route53Client\", \"ListCidrLocationsCommand\").f(void 0, void 0).ser(se_ListCidrLocationsCommand).de(de_ListCidrLocationsCommand).build() {\n static {\n __name(this, \"ListCidrLocationsCommand\");\n }\n};\n\n// src/commands/ListGeoLocationsCommand.ts\n\n\n\nvar ListGeoLocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListGeoLocations\", {}).n(\"Route53Client\", \"ListGeoLocationsCommand\").f(void 0, void 0).ser(se_ListGeoLocationsCommand).de(de_ListGeoLocationsCommand).build() {\n static {\n __name(this, \"ListGeoLocationsCommand\");\n }\n};\n\n// src/commands/ListHealthChecksCommand.ts\n\n\n\nvar ListHealthChecksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListHealthChecks\", {}).n(\"Route53Client\", \"ListHealthChecksCommand\").f(void 0, void 0).ser(se_ListHealthChecksCommand).de(de_ListHealthChecksCommand).build() {\n static {\n __name(this, \"ListHealthChecksCommand\");\n }\n};\n\n// src/commands/ListHostedZonesByNameCommand.ts\nvar import_middleware_sdk_route5333 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListHostedZonesByNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5333.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListHostedZonesByName\", {}).n(\"Route53Client\", \"ListHostedZonesByNameCommand\").f(void 0, void 0).ser(se_ListHostedZonesByNameCommand).de(de_ListHostedZonesByNameCommand).build() {\n static {\n __name(this, \"ListHostedZonesByNameCommand\");\n }\n};\n\n// src/commands/ListHostedZonesByVPCCommand.ts\n\n\n\nvar ListHostedZonesByVPCCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListHostedZonesByVPC\", {}).n(\"Route53Client\", \"ListHostedZonesByVPCCommand\").f(void 0, void 0).ser(se_ListHostedZonesByVPCCommand).de(de_ListHostedZonesByVPCCommand).build() {\n static {\n __name(this, \"ListHostedZonesByVPCCommand\");\n }\n};\n\n// src/commands/ListHostedZonesCommand.ts\nvar import_middleware_sdk_route5334 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListHostedZonesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5334.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListHostedZones\", {}).n(\"Route53Client\", \"ListHostedZonesCommand\").f(void 0, void 0).ser(se_ListHostedZonesCommand).de(de_ListHostedZonesCommand).build() {\n static {\n __name(this, \"ListHostedZonesCommand\");\n }\n};\n\n// src/commands/ListQueryLoggingConfigsCommand.ts\nvar import_middleware_sdk_route5335 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListQueryLoggingConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5335.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListQueryLoggingConfigs\", {}).n(\"Route53Client\", \"ListQueryLoggingConfigsCommand\").f(void 0, void 0).ser(se_ListQueryLoggingConfigsCommand).de(de_ListQueryLoggingConfigsCommand).build() {\n static {\n __name(this, \"ListQueryLoggingConfigsCommand\");\n }\n};\n\n// src/commands/ListResourceRecordSetsCommand.ts\nvar import_middleware_sdk_route5336 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListResourceRecordSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5336.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListResourceRecordSets\", {}).n(\"Route53Client\", \"ListResourceRecordSetsCommand\").f(void 0, void 0).ser(se_ListResourceRecordSetsCommand).de(de_ListResourceRecordSetsCommand).build() {\n static {\n __name(this, \"ListResourceRecordSetsCommand\");\n }\n};\n\n// src/commands/ListReusableDelegationSetsCommand.ts\n\n\n\nvar ListReusableDelegationSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListReusableDelegationSets\", {}).n(\"Route53Client\", \"ListReusableDelegationSetsCommand\").f(void 0, void 0).ser(se_ListReusableDelegationSetsCommand).de(de_ListReusableDelegationSetsCommand).build() {\n static {\n __name(this, \"ListReusableDelegationSetsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTagsForResource\", {}).n(\"Route53Client\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTagsForResourcesCommand.ts\n\n\n\nvar ListTagsForResourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTagsForResources\", {}).n(\"Route53Client\", \"ListTagsForResourcesCommand\").f(void 0, void 0).ser(se_ListTagsForResourcesCommand).de(de_ListTagsForResourcesCommand).build() {\n static {\n __name(this, \"ListTagsForResourcesCommand\");\n }\n};\n\n// src/commands/ListTrafficPoliciesCommand.ts\n\n\n\nvar ListTrafficPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicies\", {}).n(\"Route53Client\", \"ListTrafficPoliciesCommand\").f(void 0, void 0).ser(se_ListTrafficPoliciesCommand).de(de_ListTrafficPoliciesCommand).build() {\n static {\n __name(this, \"ListTrafficPoliciesCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyInstancesByHostedZoneCommand.ts\nvar import_middleware_sdk_route5337 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListTrafficPolicyInstancesByHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5337.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyInstancesByHostedZone\", {}).n(\"Route53Client\", \"ListTrafficPolicyInstancesByHostedZoneCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyInstancesByHostedZoneCommand).de(de_ListTrafficPolicyInstancesByHostedZoneCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyInstancesByHostedZoneCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyInstancesByPolicyCommand.ts\n\n\n\nvar ListTrafficPolicyInstancesByPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyInstancesByPolicy\", {}).n(\"Route53Client\", \"ListTrafficPolicyInstancesByPolicyCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyInstancesByPolicyCommand).de(de_ListTrafficPolicyInstancesByPolicyCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyInstancesByPolicyCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyInstancesCommand.ts\n\n\n\nvar ListTrafficPolicyInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyInstances\", {}).n(\"Route53Client\", \"ListTrafficPolicyInstancesCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyInstancesCommand).de(de_ListTrafficPolicyInstancesCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyInstancesCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyVersionsCommand.ts\nvar import_middleware_sdk_route5338 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListTrafficPolicyVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5338.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyVersions\", {}).n(\"Route53Client\", \"ListTrafficPolicyVersionsCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyVersionsCommand).de(de_ListTrafficPolicyVersionsCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyVersionsCommand\");\n }\n};\n\n// src/commands/ListVPCAssociationAuthorizationsCommand.ts\nvar import_middleware_sdk_route5339 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListVPCAssociationAuthorizationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5339.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListVPCAssociationAuthorizations\", {}).n(\"Route53Client\", \"ListVPCAssociationAuthorizationsCommand\").f(void 0, void 0).ser(se_ListVPCAssociationAuthorizationsCommand).de(de_ListVPCAssociationAuthorizationsCommand).build() {\n static {\n __name(this, \"ListVPCAssociationAuthorizationsCommand\");\n }\n};\n\n// src/commands/TestDNSAnswerCommand.ts\nvar import_middleware_sdk_route5340 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar TestDNSAnswerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5340.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"TestDNSAnswer\", {}).n(\"Route53Client\", \"TestDNSAnswerCommand\").f(void 0, void 0).ser(se_TestDNSAnswerCommand).de(de_TestDNSAnswerCommand).build() {\n static {\n __name(this, \"TestDNSAnswerCommand\");\n }\n};\n\n// src/commands/UpdateHealthCheckCommand.ts\n\n\n\nvar UpdateHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateHealthCheck\", {}).n(\"Route53Client\", \"UpdateHealthCheckCommand\").f(void 0, void 0).ser(se_UpdateHealthCheckCommand).de(de_UpdateHealthCheckCommand).build() {\n static {\n __name(this, \"UpdateHealthCheckCommand\");\n }\n};\n\n// src/commands/UpdateHostedZoneCommentCommand.ts\nvar import_middleware_sdk_route5341 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar UpdateHostedZoneCommentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5341.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateHostedZoneComment\", {}).n(\"Route53Client\", \"UpdateHostedZoneCommentCommand\").f(void 0, void 0).ser(se_UpdateHostedZoneCommentCommand).de(de_UpdateHostedZoneCommentCommand).build() {\n static {\n __name(this, \"UpdateHostedZoneCommentCommand\");\n }\n};\n\n// src/commands/UpdateTrafficPolicyCommentCommand.ts\nvar import_middleware_sdk_route5342 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar UpdateTrafficPolicyCommentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5342.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateTrafficPolicyComment\", {}).n(\"Route53Client\", \"UpdateTrafficPolicyCommentCommand\").f(void 0, void 0).ser(se_UpdateTrafficPolicyCommentCommand).de(de_UpdateTrafficPolicyCommentCommand).build() {\n static {\n __name(this, \"UpdateTrafficPolicyCommentCommand\");\n }\n};\n\n// src/commands/UpdateTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route5343 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar UpdateTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5343.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateTrafficPolicyInstance\", {}).n(\"Route53Client\", \"UpdateTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_UpdateTrafficPolicyInstanceCommand).de(de_UpdateTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"UpdateTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/Route53.ts\nvar commands = {\n ActivateKeySigningKeyCommand,\n AssociateVPCWithHostedZoneCommand,\n ChangeCidrCollectionCommand,\n ChangeResourceRecordSetsCommand,\n ChangeTagsForResourceCommand,\n CreateCidrCollectionCommand,\n CreateHealthCheckCommand,\n CreateHostedZoneCommand,\n CreateKeySigningKeyCommand,\n CreateQueryLoggingConfigCommand,\n CreateReusableDelegationSetCommand,\n CreateTrafficPolicyCommand,\n CreateTrafficPolicyInstanceCommand,\n CreateTrafficPolicyVersionCommand,\n CreateVPCAssociationAuthorizationCommand,\n DeactivateKeySigningKeyCommand,\n DeleteCidrCollectionCommand,\n DeleteHealthCheckCommand,\n DeleteHostedZoneCommand,\n DeleteKeySigningKeyCommand,\n DeleteQueryLoggingConfigCommand,\n DeleteReusableDelegationSetCommand,\n DeleteTrafficPolicyCommand,\n DeleteTrafficPolicyInstanceCommand,\n DeleteVPCAssociationAuthorizationCommand,\n DisableHostedZoneDNSSECCommand,\n DisassociateVPCFromHostedZoneCommand,\n EnableHostedZoneDNSSECCommand,\n GetAccountLimitCommand,\n GetChangeCommand,\n GetCheckerIpRangesCommand,\n GetDNSSECCommand,\n GetGeoLocationCommand,\n GetHealthCheckCommand,\n GetHealthCheckCountCommand,\n GetHealthCheckLastFailureReasonCommand,\n GetHealthCheckStatusCommand,\n GetHostedZoneCommand,\n GetHostedZoneCountCommand,\n GetHostedZoneLimitCommand,\n GetQueryLoggingConfigCommand,\n GetReusableDelegationSetCommand,\n GetReusableDelegationSetLimitCommand,\n GetTrafficPolicyCommand,\n GetTrafficPolicyInstanceCommand,\n GetTrafficPolicyInstanceCountCommand,\n ListCidrBlocksCommand,\n ListCidrCollectionsCommand,\n ListCidrLocationsCommand,\n ListGeoLocationsCommand,\n ListHealthChecksCommand,\n ListHostedZonesCommand,\n ListHostedZonesByNameCommand,\n ListHostedZonesByVPCCommand,\n ListQueryLoggingConfigsCommand,\n ListResourceRecordSetsCommand,\n ListReusableDelegationSetsCommand,\n ListTagsForResourceCommand,\n ListTagsForResourcesCommand,\n ListTrafficPoliciesCommand,\n ListTrafficPolicyInstancesCommand,\n ListTrafficPolicyInstancesByHostedZoneCommand,\n ListTrafficPolicyInstancesByPolicyCommand,\n ListTrafficPolicyVersionsCommand,\n ListVPCAssociationAuthorizationsCommand,\n TestDNSAnswerCommand,\n UpdateHealthCheckCommand,\n UpdateHostedZoneCommentCommand,\n UpdateTrafficPolicyCommentCommand,\n UpdateTrafficPolicyInstanceCommand\n};\nvar Route53 = class extends Route53Client {\n static {\n __name(this, \"Route53\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, Route53);\n\n// src/pagination/ListCidrBlocksPaginator.ts\n\nvar paginateListCidrBlocks = (0, import_core.createPaginator)(Route53Client, ListCidrBlocksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCidrCollectionsPaginator.ts\n\nvar paginateListCidrCollections = (0, import_core.createPaginator)(Route53Client, ListCidrCollectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCidrLocationsPaginator.ts\n\nvar paginateListCidrLocations = (0, import_core.createPaginator)(Route53Client, ListCidrLocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListHealthChecksPaginator.ts\n\nvar paginateListHealthChecks = (0, import_core.createPaginator)(Route53Client, ListHealthChecksCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListHostedZonesPaginator.ts\n\nvar paginateListHostedZones = (0, import_core.createPaginator)(Route53Client, ListHostedZonesCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListQueryLoggingConfigsPaginator.ts\n\nvar paginateListQueryLoggingConfigs = (0, import_core.createPaginator)(Route53Client, ListQueryLoggingConfigsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForResourceRecordSetsChanged.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetChangeCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ChangeInfo.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"INSYNC\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForResourceRecordSetsChanged = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForResourceRecordSetsChanged\");\nvar waitUntilResourceRecordSetsChanged = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilResourceRecordSetsChanged\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n Route53ServiceException,\n __Client,\n Route53Client,\n Route53,\n $Command,\n ActivateKeySigningKeyCommand,\n AssociateVPCWithHostedZoneCommand,\n ChangeCidrCollectionCommand,\n ChangeResourceRecordSetsCommand,\n ChangeTagsForResourceCommand,\n CreateCidrCollectionCommand,\n CreateHealthCheckCommand,\n CreateHostedZoneCommand,\n CreateKeySigningKeyCommand,\n CreateQueryLoggingConfigCommand,\n CreateReusableDelegationSetCommand,\n CreateTrafficPolicyCommand,\n CreateTrafficPolicyInstanceCommand,\n CreateTrafficPolicyVersionCommand,\n CreateVPCAssociationAuthorizationCommand,\n DeactivateKeySigningKeyCommand,\n DeleteCidrCollectionCommand,\n DeleteHealthCheckCommand,\n DeleteHostedZoneCommand,\n DeleteKeySigningKeyCommand,\n DeleteQueryLoggingConfigCommand,\n DeleteReusableDelegationSetCommand,\n DeleteTrafficPolicyCommand,\n DeleteTrafficPolicyInstanceCommand,\n DeleteVPCAssociationAuthorizationCommand,\n DisableHostedZoneDNSSECCommand,\n DisassociateVPCFromHostedZoneCommand,\n EnableHostedZoneDNSSECCommand,\n GetAccountLimitCommand,\n GetChangeCommand,\n GetCheckerIpRangesCommand,\n GetDNSSECCommand,\n GetGeoLocationCommand,\n GetHealthCheckCommand,\n GetHealthCheckCountCommand,\n GetHealthCheckLastFailureReasonCommand,\n GetHealthCheckStatusCommand,\n GetHostedZoneCommand,\n GetHostedZoneCountCommand,\n GetHostedZoneLimitCommand,\n GetQueryLoggingConfigCommand,\n GetReusableDelegationSetCommand,\n GetReusableDelegationSetLimitCommand,\n GetTrafficPolicyCommand,\n GetTrafficPolicyInstanceCommand,\n GetTrafficPolicyInstanceCountCommand,\n ListCidrBlocksCommand,\n ListCidrCollectionsCommand,\n ListCidrLocationsCommand,\n ListGeoLocationsCommand,\n ListHealthChecksCommand,\n ListHostedZonesByNameCommand,\n ListHostedZonesByVPCCommand,\n ListHostedZonesCommand,\n ListQueryLoggingConfigsCommand,\n ListResourceRecordSetsCommand,\n ListReusableDelegationSetsCommand,\n ListTagsForResourceCommand,\n ListTagsForResourcesCommand,\n ListTrafficPoliciesCommand,\n ListTrafficPolicyInstancesByHostedZoneCommand,\n ListTrafficPolicyInstancesByPolicyCommand,\n ListTrafficPolicyInstancesCommand,\n ListTrafficPolicyVersionsCommand,\n ListVPCAssociationAuthorizationsCommand,\n TestDNSAnswerCommand,\n UpdateHealthCheckCommand,\n UpdateHostedZoneCommentCommand,\n UpdateTrafficPolicyCommentCommand,\n UpdateTrafficPolicyInstanceCommand,\n paginateListCidrBlocks,\n paginateListCidrCollections,\n paginateListCidrLocations,\n paginateListHealthChecks,\n paginateListHostedZones,\n paginateListQueryLoggingConfigs,\n waitForResourceRecordSetsChanged,\n waitUntilResourceRecordSetsChanged,\n AccountLimitType,\n ChangeStatus,\n ConcurrentModification,\n InvalidInput,\n InvalidKeySigningKeyStatus,\n InvalidKMSArn,\n InvalidSigningStatus,\n NoSuchKeySigningKey,\n CloudWatchRegion,\n VPCRegion,\n ConflictingDomainExists,\n InvalidVPCId,\n LimitsExceeded,\n NoSuchHostedZone,\n NotAuthorizedException,\n PriorRequestNotComplete,\n PublicZoneVPCAssociation,\n CidrCollectionChangeAction,\n CidrBlockInUseException,\n CidrCollectionVersionMismatchException,\n NoSuchCidrCollectionException,\n ChangeAction,\n ResourceRecordSetFailover,\n ResourceRecordSetRegion,\n RRType,\n InvalidChangeBatch,\n NoSuchHealthCheck,\n TagResourceType,\n ThrottlingException,\n CidrCollectionAlreadyExistsException,\n InsufficientDataHealthStatus,\n HealthCheckRegion,\n HealthCheckType,\n ComparisonOperator,\n Statistic,\n HealthCheckAlreadyExists,\n TooManyHealthChecks,\n DelegationSetNotAvailable,\n DelegationSetNotReusable,\n HostedZoneAlreadyExists,\n InvalidDomainName,\n NoSuchDelegationSet,\n TooManyHostedZones,\n InvalidArgument,\n InvalidKeySigningKeyName,\n KeySigningKeyAlreadyExists,\n TooManyKeySigningKeys,\n InsufficientCloudWatchLogsResourcePolicy,\n NoSuchCloudWatchLogsLogGroup,\n QueryLoggingConfigAlreadyExists,\n DelegationSetAlreadyCreated,\n DelegationSetAlreadyReusable,\n HostedZoneNotFound,\n InvalidTrafficPolicyDocument,\n TooManyTrafficPolicies,\n TrafficPolicyAlreadyExists,\n NoSuchTrafficPolicy,\n TooManyTrafficPolicyInstances,\n TrafficPolicyInstanceAlreadyExists,\n TooManyTrafficPolicyVersionsForCurrentPolicy,\n TooManyVPCAssociationAuthorizations,\n KeySigningKeyInParentDSRecord,\n KeySigningKeyInUse,\n CidrCollectionInUseException,\n HealthCheckInUse,\n HostedZoneNotEmpty,\n NoSuchQueryLoggingConfig,\n DelegationSetInUse,\n TrafficPolicyInUse,\n NoSuchTrafficPolicyInstance,\n VPCAssociationAuthorizationNotFound,\n DNSSECNotFound,\n LastVPCAssociation,\n VPCAssociationNotFound,\n HostedZonePartiallyDelegated,\n KeySigningKeyWithActiveStatusNotFound,\n NoSuchChange,\n NoSuchGeoLocation,\n IncompatibleVersion,\n HostedZoneLimitType,\n HostedZoneNotPrivate,\n ReusableDelegationSetLimitType,\n NoSuchCidrLocationException,\n HostedZoneType,\n InvalidPaginationToken,\n HealthCheckVersionMismatch,\n ResettableElementName,\n ConflictingTypes\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2013-04-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultRoute53HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Route 53\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultS3HttpAuthSchemeProvider = exports.defaultS3HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst signature_v4_multi_region_1 = require(\"@aws-sdk/signature-v4-multi-region\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst endpointResolver_1 = require(\"../endpoint/endpointResolver\");\nconst createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {\n if (!input) {\n throw new Error(`Could not find \\`input\\` for \\`defaultEndpointRuleSetHttpAuthSchemeParametersProvider\\``);\n }\n const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);\n const instructionsFn = (0, util_middleware_1.getSmithyContext)(context)?.commandInstance?.constructor\n ?.getEndpointParameterInstructions;\n if (!instructionsFn) {\n throw new Error(`getEndpointParameterInstructions() is not defined on \\`${context.commandName}\\``);\n }\n const endpointParameters = await (0, middleware_endpoint_1.resolveParams)(input, { getEndpointParameterInstructions: instructionsFn }, config);\n return Object.assign(defaultParameters, endpointParameters);\n};\nconst _defaultS3HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultS3HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultS3HttpAuthSchemeParametersProvider);\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"s3\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createAwsAuthSigv4aHttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4a\",\n signingProperties: {\n name: \"s3\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {\n const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {\n const endpoint = defaultEndpointResolver(authParameters);\n const authSchemes = endpoint.properties?.authSchemes;\n if (!authSchemes) {\n return defaultHttpAuthSchemeResolver(authParameters);\n }\n const options = [];\n for (const scheme of authSchemes) {\n const { name: resolvedName, properties = {}, ...rest } = scheme;\n const name = resolvedName.toLowerCase();\n if (resolvedName !== name) {\n console.warn(`HttpAuthScheme has been normalized with lowercasing: \\`${resolvedName}\\` to \\`${name}\\``);\n }\n let schemeId;\n if (name === \"sigv4a\") {\n schemeId = \"aws.auth#sigv4a\";\n const sigv4Present = authSchemes.find((s) => {\n const name = s.name.toLowerCase();\n return name !== \"sigv4a\" && name.startsWith(\"sigv4\");\n });\n if (signature_v4_multi_region_1.SignatureV4MultiRegion.sigv4aDependency() === \"none\" && sigv4Present) {\n continue;\n }\n }\n else if (name.startsWith(\"sigv4\")) {\n schemeId = \"aws.auth#sigv4\";\n }\n else {\n throw new Error(`Unknown HttpAuthScheme found in \\`@smithy.rules#endpointRuleSet\\`: \\`${name}\\``);\n }\n const createOption = createHttpAuthOptionFunctions[schemeId];\n if (!createOption) {\n throw new Error(`Could not find HttpAuthOption create function for \\`${schemeId}\\``);\n }\n const option = createOption(authParameters);\n option.schemeId = schemeId;\n option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };\n options.push(option);\n }\n return options;\n };\n return endpointRuleSetHttpAuthSchemeProvider;\n};\nconst _defaultS3HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultS3HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(endpointResolver_1.defaultEndpointResolver, _defaultS3HttpAuthSchemeProvider, {\n \"aws.auth#sigv4\": createAwsAuthSigv4HttpAuthOption,\n \"aws.auth#sigv4a\": createAwsAuthSigv4aHttpAuthOption,\n});\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4AConfig)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\n \"Accelerate\",\n \"Bucket\",\n \"DisableAccessPoints\",\n \"DisableMultiRegionAccessPoints\",\n \"DisableS3ExpressSessionAuth\",\n \"Endpoint\",\n \"ForcePathStyle\",\n \"Region\",\n \"UseArnRegion\",\n \"UseDualStack\",\n \"UseFIPS\",\n \"UseGlobalEndpoint\",\n \"UseObjectLambdaEndpoint\",\n \"UseS3ExpressControlEndpoint\",\n ],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst cp = \"required\", cq = \"type\", cr = \"rules\", cs = \"conditions\", ct = \"fn\", cu = \"argv\", cv = \"ref\", cw = \"assign\", cx = \"url\", cy = \"properties\", cz = \"backend\", cA = \"authSchemes\", cB = \"disableDoubleEncoding\", cC = \"signingName\", cD = \"signingRegion\", cE = \"headers\", cF = \"signingRegionSet\";\nconst a = 6, b = false, c = true, d = \"isSet\", e = \"booleanEquals\", f = \"error\", g = \"aws.partition\", h = \"stringEquals\", i = \"getAttr\", j = \"name\", k = \"substring\", l = \"bucketSuffix\", m = \"parseURL\", n = \"endpoint\", o = \"tree\", p = \"aws.isVirtualHostableS3Bucket\", q = \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", r = \"not\", s = \"accessPointSuffix\", t = \"{url#scheme}://{url#authority}{url#path}\", u = \"hardwareType\", v = \"regionPrefix\", w = \"bucketAliasSuffix\", x = \"outpostId\", y = \"isValidHostLabel\", z = \"sigv4a\", A = \"s3-outposts\", B = \"s3\", C = \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", D = \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", E = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", F = \"aws.parseArn\", G = \"bucketArn\", H = \"arnType\", I = \"\", J = \"s3-object-lambda\", K = \"accesspoint\", L = \"accessPointName\", M = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", N = \"mrapPartition\", O = \"outpostType\", P = \"arnPrefix\", Q = \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", R = \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", S = \"https://s3.{partitionResult#dnsSuffix}\", T = { [cp]: false, [cq]: \"String\" }, U = { [cp]: true, \"default\": false, [cq]: \"Boolean\" }, V = { [cp]: false, [cq]: \"Boolean\" }, W = { [ct]: e, [cu]: [{ [cv]: \"Accelerate\" }, true] }, X = { [ct]: e, [cu]: [{ [cv]: \"UseFIPS\" }, true] }, Y = { [ct]: e, [cu]: [{ [cv]: \"UseDualStack\" }, true] }, Z = { [ct]: d, [cu]: [{ [cv]: \"Endpoint\" }] }, aa = { [ct]: g, [cu]: [{ [cv]: \"Region\" }], [cw]: \"partitionResult\" }, ab = { [ct]: h, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"partitionResult\" }, j] }, \"aws-cn\"] }, ac = { [ct]: d, [cu]: [{ [cv]: \"Bucket\" }] }, ad = { [cv]: \"Bucket\" }, ae = { [cs]: [Y], [f]: \"S3Express does not support Dual-stack.\", [cq]: f }, af = { [cs]: [W], [f]: \"S3Express does not support S3 Accelerate.\", [cq]: f }, ag = { [cs]: [Z, { [ct]: m, [cu]: [{ [cv]: \"Endpoint\" }], [cw]: \"url\" }], [cr]: [{ [cs]: [{ [ct]: d, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }] }, { [ct]: e, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }, true] }], [cr]: [{ [cs]: [{ [ct]: e, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"url\" }, \"isIp\"] }, true] }], [cr]: [{ [cs]: [{ [ct]: \"uriEncode\", [cu]: [ad], [cw]: \"uri_encoded_bucket\" }], [cr]: [{ [n]: { [cx]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: p, [cu]: [ad, false] }], [cr]: [{ [n]: { [cx]: q, [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [cq]: f }], [cq]: o }, { [cs]: [{ [ct]: e, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"url\" }, \"isIp\"] }, true] }], [cr]: [{ [cs]: [{ [ct]: \"uriEncode\", [cu]: [ad], [cw]: \"uri_encoded_bucket\" }], [cr]: [{ [n]: { [cx]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: p, [cu]: [ad, false] }], [cr]: [{ [n]: { [cx]: q, [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [cq]: f }], [cq]: o }, ah = { [ct]: m, [cu]: [{ [cv]: \"Endpoint\" }], [cw]: \"url\" }, ai = { [ct]: e, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"url\" }, \"isIp\"] }, true] }, aj = { [cv]: \"url\" }, ak = { [ct]: \"uriEncode\", [cu]: [ad], [cw]: \"uri_encoded_bucket\" }, al = { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, am = {}, an = { [ct]: p, [cu]: [ad, false] }, ao = { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [cq]: f }, ap = { [ct]: d, [cu]: [{ [cv]: \"UseS3ExpressControlEndpoint\" }] }, aq = { [ct]: e, [cu]: [{ [cv]: \"UseS3ExpressControlEndpoint\" }, true] }, ar = { [ct]: r, [cu]: [Z] }, as = { [f]: \"Unrecognized S3Express bucket name format.\", [cq]: f }, at = { [ct]: r, [cu]: [ac] }, au = { [cv]: u }, av = { [cs]: [ar], [f]: \"Expected a endpoint to be specified but no endpoint was found\", [cq]: f }, aw = { [cA]: [{ [cB]: true, [j]: z, [cC]: A, [cF]: [\"*\"] }, { [cB]: true, [j]: \"sigv4\", [cC]: A, [cD]: \"{Region}\" }] }, ax = { [ct]: e, [cu]: [{ [cv]: \"ForcePathStyle\" }, false] }, ay = { [cv]: \"ForcePathStyle\" }, az = { [ct]: e, [cu]: [{ [cv]: \"Accelerate\" }, false] }, aA = { [ct]: h, [cu]: [{ [cv]: \"Region\" }, \"aws-global\"] }, aB = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"us-east-1\" }] }, aC = { [ct]: r, [cu]: [aA] }, aD = { [ct]: e, [cu]: [{ [cv]: \"UseGlobalEndpoint\" }, true] }, aE = { [cx]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"{Region}\" }] }, [cE]: {} }, aF = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"{Region}\" }] }, aG = { [ct]: e, [cu]: [{ [cv]: \"UseGlobalEndpoint\" }, false] }, aH = { [ct]: e, [cu]: [{ [cv]: \"UseDualStack\" }, false] }, aI = { [cx]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aJ = { [ct]: e, [cu]: [{ [cv]: \"UseFIPS\" }, false] }, aK = { [cx]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aL = { [cx]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aM = { [ct]: e, [cu]: [{ [ct]: i, [cu]: [aj, \"isIp\"] }, false] }, aN = { [cx]: C, [cy]: aF, [cE]: {} }, aO = { [cx]: q, [cy]: aF, [cE]: {} }, aP = { [n]: aO, [cq]: n }, aQ = { [cx]: D, [cy]: aF, [cE]: {} }, aR = { [cx]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aS = { [f]: \"Invalid region: region was not a valid DNS name.\", [cq]: f }, aT = { [cv]: G }, aU = { [cv]: H }, aV = { [ct]: i, [cu]: [aT, \"service\"] }, aW = { [cv]: L }, aX = { [cs]: [Y], [f]: \"S3 Object Lambda does not support Dual-stack\", [cq]: f }, aY = { [cs]: [W], [f]: \"S3 Object Lambda does not support S3 Accelerate\", [cq]: f }, aZ = { [cs]: [{ [ct]: d, [cu]: [{ [cv]: \"DisableAccessPoints\" }] }, { [ct]: e, [cu]: [{ [cv]: \"DisableAccessPoints\" }, true] }], [f]: \"Access points are not supported for this operation\", [cq]: f }, ba = { [cs]: [{ [ct]: d, [cu]: [{ [cv]: \"UseArnRegion\" }] }, { [ct]: e, [cu]: [{ [cv]: \"UseArnRegion\" }, false] }, { [ct]: r, [cu]: [{ [ct]: h, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }, \"{Region}\"] }] }], [f]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [cq]: f }, bb = { [ct]: i, [cu]: [{ [cv]: \"bucketPartition\" }, j] }, bc = { [ct]: i, [cu]: [aT, \"accountId\"] }, bd = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: J, [cD]: \"{bucketArn#region}\" }] }, be = { [f]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [cq]: f }, bf = { [f]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [cq]: f }, bg = { [f]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [cq]: f }, bh = { [f]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [cq]: f }, bi = { [f]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [cq]: f }, bj = { [f]: \"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\", [cq]: f }, bk = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"{bucketArn#region}\" }] }, bl = { [cA]: [{ [cB]: true, [j]: z, [cC]: A, [cF]: [\"*\"] }, { [cB]: true, [j]: \"sigv4\", [cC]: A, [cD]: \"{bucketArn#region}\" }] }, bm = { [ct]: F, [cu]: [ad] }, bn = { [cx]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bo = { [cx]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bp = { [cx]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bq = { [cx]: Q, [cy]: aF, [cE]: {} }, br = { [cx]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bs = { [cv]: \"UseObjectLambdaEndpoint\" }, bt = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: J, [cD]: \"{Region}\" }] }, bu = { [cx]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bv = { [cx]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bw = { [cx]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bx = { [cx]: t, [cy]: aF, [cE]: {} }, by = { [cx]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bz = [{ [cv]: \"Region\" }], bA = [{ [cv]: \"Endpoint\" }], bB = [ad], bC = [Y], bD = [W], bE = [Z, ah], bF = [{ [ct]: d, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }] }, { [ct]: e, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }, true] }], bG = [ak], bH = [an], bI = [aa], bJ = [X], bK = [{ [ct]: k, [cu]: [ad, 6, 14, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 14, 16, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bL = [{ [cs]: [X], [n]: { [cx]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: {} }, [cq]: n }, { [n]: { [cx]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: {} }, [cq]: n }], bM = [{ [ct]: k, [cu]: [ad, 6, 15, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 15, 17, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bN = [{ [ct]: k, [cu]: [ad, 6, 19, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 19, 21, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bO = [{ [ct]: k, [cu]: [ad, 6, 20, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 20, 22, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bP = [{ [ct]: k, [cu]: [ad, 6, 26, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 26, 28, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bQ = [{ [cs]: [X], [n]: { [cx]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }, { [n]: { [cx]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], bR = [ad, 0, 7, true], bS = [{ [ct]: k, [cu]: [ad, 7, 15, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 15, 17, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bT = [{ [ct]: k, [cu]: [ad, 7, 16, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 16, 18, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bU = [{ [ct]: k, [cu]: [ad, 7, 20, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 20, 22, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bV = [{ [ct]: k, [cu]: [ad, 7, 21, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 21, 23, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bW = [{ [ct]: k, [cu]: [ad, 7, 27, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 27, 29, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bX = [ac], bY = [{ [ct]: y, [cu]: [{ [cv]: x }, false] }], bZ = [{ [ct]: h, [cu]: [{ [cv]: v }, \"beta\"] }], ca = [\"*\"], cb = [{ [ct]: y, [cu]: [{ [cv]: \"Region\" }, false] }], cc = [{ [ct]: h, [cu]: [{ [cv]: \"Region\" }, \"us-east-1\"] }], cd = [{ [ct]: h, [cu]: [aU, K] }], ce = [{ [ct]: i, [cu]: [aT, \"resourceId[1]\"], [cw]: L }, { [ct]: r, [cu]: [{ [ct]: h, [cu]: [aW, I] }] }], cf = [aT, \"resourceId[1]\"], cg = [{ [ct]: r, [cu]: [{ [ct]: h, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }, I] }] }], ch = [{ [ct]: r, [cu]: [{ [ct]: d, [cu]: [{ [ct]: i, [cu]: [aT, \"resourceId[2]\"] }] }] }], ci = [aT, \"resourceId[2]\"], cj = [{ [ct]: g, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }], [cw]: \"bucketPartition\" }], ck = [{ [ct]: h, [cu]: [bb, { [ct]: i, [cu]: [{ [cv]: \"partitionResult\" }, j] }] }], cl = [{ [ct]: y, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }, true] }], cm = [{ [ct]: y, [cu]: [bc, false] }], cn = [{ [ct]: y, [cu]: [aW, false] }], co = [{ [ct]: y, [cu]: [{ [cv]: \"Region\" }, true] }];\nconst _data = { version: \"1.0\", parameters: { Bucket: T, Region: T, UseFIPS: U, UseDualStack: U, Endpoint: T, ForcePathStyle: U, Accelerate: U, UseGlobalEndpoint: U, UseObjectLambdaEndpoint: V, Key: T, Prefix: T, CopySource: T, DisableAccessPoints: V, DisableMultiRegionAccessPoints: U, UseArnRegion: V, UseS3ExpressControlEndpoint: V, DisableS3ExpressSessionAuth: V }, [cr]: [{ [cs]: [{ [ct]: d, [cu]: bz }], [cr]: [{ [cs]: [W, X], error: \"Accelerate cannot be used with FIPS\", [cq]: f }, { [cs]: [Y, Z], error: \"Cannot set dual-stack in combination with a custom endpoint.\", [cq]: f }, { [cs]: [Z, X], error: \"A custom endpoint cannot be combined with FIPS\", [cq]: f }, { [cs]: [Z, W], error: \"A custom endpoint cannot be combined with S3 Accelerate\", [cq]: f }, { [cs]: [X, aa, ab], error: \"Partition does not support FIPS\", [cq]: f }, { [cs]: [ac, { [ct]: k, [cu]: [ad, 0, a, c], [cw]: l }, { [ct]: h, [cu]: [{ [cv]: l }, \"--x-s3\"] }], [cr]: [ae, af, ag, { [cs]: [ap, aq], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: [ak, ar], [cr]: [{ [cs]: bJ, endpoint: { [cx]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: al, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: al, [cE]: am }, [cq]: n }], [cq]: o }], [cq]: o }], [cq]: o }, { [cs]: bH, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: bF, [cr]: [{ [cs]: bK, [cr]: bL, [cq]: o }, { [cs]: bM, [cr]: bL, [cq]: o }, { [cs]: bN, [cr]: bL, [cq]: o }, { [cs]: bO, [cr]: bL, [cq]: o }, { [cs]: bP, [cr]: bL, [cq]: o }, as], [cq]: o }, { [cs]: bK, [cr]: bQ, [cq]: o }, { [cs]: bM, [cr]: bQ, [cq]: o }, { [cs]: bN, [cr]: bQ, [cq]: o }, { [cs]: bO, [cr]: bQ, [cq]: o }, { [cs]: bP, [cr]: bQ, [cq]: o }, as], [cq]: o }], [cq]: o }, ao], [cq]: o }, { [cs]: [ac, { [ct]: k, [cu]: bR, [cw]: s }, { [ct]: h, [cu]: [{ [cv]: s }, \"--xa-s3\"] }], [cr]: [ae, af, ag, { [cs]: bH, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: bF, [cr]: [{ [cs]: bS, [cr]: bL, [cq]: o }, { [cs]: bT, [cr]: bL, [cq]: o }, { [cs]: bU, [cr]: bL, [cq]: o }, { [cs]: bV, [cr]: bL, [cq]: o }, { [cs]: bW, [cr]: bL, [cq]: o }, as], [cq]: o }, { [cs]: bS, [cr]: bQ, [cq]: o }, { [cs]: bT, [cr]: bQ, [cq]: o }, { [cs]: bU, [cr]: bQ, [cq]: o }, { [cs]: bV, [cr]: bQ, [cq]: o }, { [cs]: bW, [cr]: bQ, [cq]: o }, as], [cq]: o }], [cq]: o }, ao], [cq]: o }, { [cs]: [at, ap, aq], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: bE, endpoint: { [cx]: t, [cy]: al, [cE]: am }, [cq]: n }, { [cs]: bJ, endpoint: { [cx]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: am }, [cq]: n }], [cq]: o }], [cq]: o }, { [cs]: [ac, { [ct]: k, [cu]: [ad, 49, 50, c], [cw]: u }, { [ct]: k, [cu]: [ad, 8, 12, c], [cw]: v }, { [ct]: k, [cu]: bR, [cw]: w }, { [ct]: k, [cu]: [ad, 32, 49, c], [cw]: x }, { [ct]: g, [cu]: bz, [cw]: \"regionPartition\" }, { [ct]: h, [cu]: [{ [cv]: w }, \"--op-s3\"] }], [cr]: [{ [cs]: bY, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [au, \"e\"] }], [cr]: [{ [cs]: bZ, [cr]: [av, { [cs]: bE, endpoint: { [cx]: \"https://{Bucket}.ec2.{url#authority}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { endpoint: { [cx]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { [cs]: [{ [ct]: h, [cu]: [au, \"o\"] }], [cr]: [{ [cs]: bZ, [cr]: [av, { [cs]: bE, endpoint: { [cx]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { endpoint: { [cx]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [cq]: f }], [cq]: o }, { [cs]: bX, [cr]: [{ [cs]: [Z, { [ct]: r, [cu]: [{ [ct]: d, [cu]: [{ [ct]: m, [cu]: bA }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [cq]: f }, { [cs]: [ax, an], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: cb, [cr]: [{ [cs]: [W, ab], error: \"S3 Accelerate cannot be used in this region\", [cq]: f }, { [cs]: [Y, X, az, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, X, az, ar, aC, aD], [cr]: [{ endpoint: aE, [cq]: n }], [cq]: o }, { [cs]: [Y, X, az, ar, aC, aG], endpoint: aE, [cq]: n }, { [cs]: [aH, X, az, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, X, az, ar, aC, aD], [cr]: [{ endpoint: aI, [cq]: n }], [cq]: o }, { [cs]: [aH, X, az, ar, aC, aG], endpoint: aI, [cq]: n }, { [cs]: [Y, aJ, W, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, aJ, W, ar, aC, aD], [cr]: [{ endpoint: aK, [cq]: n }], [cq]: o }, { [cs]: [Y, aJ, W, ar, aC, aG], endpoint: aK, [cq]: n }, { [cs]: [Y, aJ, az, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, aJ, az, ar, aC, aD], [cr]: [{ endpoint: aL, [cq]: n }], [cq]: o }, { [cs]: [Y, aJ, az, ar, aC, aG], endpoint: aL, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, ai, aA], endpoint: { [cx]: C, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, aM, aA], endpoint: { [cx]: q, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, ai, aC, aD], [cr]: [{ [cs]: cc, endpoint: aN, [cq]: n }, { endpoint: aN, [cq]: n }], [cq]: o }, { [cs]: [aH, aJ, az, Z, ah, aM, aC, aD], [cr]: [{ [cs]: cc, endpoint: aO, [cq]: n }, aP], [cq]: o }, { [cs]: [aH, aJ, az, Z, ah, ai, aC, aG], endpoint: aN, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, aM, aC, aG], endpoint: aO, [cq]: n }, { [cs]: [aH, aJ, W, ar, aA], endpoint: { [cx]: D, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, W, ar, aC, aD], [cr]: [{ [cs]: cc, endpoint: aQ, [cq]: n }, { endpoint: aQ, [cq]: n }], [cq]: o }, { [cs]: [aH, aJ, W, ar, aC, aG], endpoint: aQ, [cq]: n }, { [cs]: [aH, aJ, az, ar, aA], endpoint: { [cx]: E, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, az, ar, aC, aD], [cr]: [{ [cs]: cc, endpoint: { [cx]: E, [cy]: aF, [cE]: am }, [cq]: n }, { endpoint: aR, [cq]: n }], [cq]: o }, { [cs]: [aH, aJ, az, ar, aC, aG], endpoint: aR, [cq]: n }], [cq]: o }, aS], [cq]: o }], [cq]: o }, { [cs]: [Z, ah, { [ct]: h, [cu]: [{ [ct]: i, [cu]: [aj, \"scheme\"] }, \"http\"] }, { [ct]: p, [cu]: [ad, c] }, ax, aJ, aH, az], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: cb, [cr]: [aP], [cq]: o }, aS], [cq]: o }], [cq]: o }, { [cs]: [ax, { [ct]: F, [cu]: bB, [cw]: G }], [cr]: [{ [cs]: [{ [ct]: i, [cu]: [aT, \"resourceId[0]\"], [cw]: H }, { [ct]: r, [cu]: [{ [ct]: h, [cu]: [aU, I] }] }], [cr]: [{ [cs]: [{ [ct]: h, [cu]: [aV, J] }], [cr]: [{ [cs]: cd, [cr]: [{ [cs]: ce, [cr]: [aX, aY, { [cs]: cg, [cr]: [aZ, { [cs]: ch, [cr]: [ba, { [cs]: cj, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: ck, [cr]: [{ [cs]: cl, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [bc, I] }], error: \"Invalid ARN: Missing account id\", [cq]: f }, { [cs]: cm, [cr]: [{ [cs]: cn, [cr]: [{ [cs]: bE, endpoint: { [cx]: M, [cy]: bd, [cE]: am }, [cq]: n }, { [cs]: bJ, endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bd, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bd, [cE]: am }, [cq]: n }], [cq]: o }, be], [cq]: o }, bf], [cq]: o }, bg], [cq]: o }, bh], [cq]: o }], [cq]: o }], [cq]: o }, bi], [cq]: o }, { error: \"Invalid ARN: bucket ARN is missing a region\", [cq]: f }], [cq]: o }, bj], [cq]: o }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [cq]: f }], [cq]: o }, { [cs]: cd, [cr]: [{ [cs]: ce, [cr]: [{ [cs]: cg, [cr]: [{ [cs]: cd, [cr]: [{ [cs]: cg, [cr]: [aZ, { [cs]: ch, [cr]: [ba, { [cs]: cj, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [bb, \"{partitionResult#name}\"] }], [cr]: [{ [cs]: cl, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [aV, B] }], [cr]: [{ [cs]: cm, [cr]: [{ [cs]: cn, [cr]: [{ [cs]: bD, error: \"Access Points do not support S3 Accelerate\", [cq]: f }, { [cs]: [X, Y], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [X, aH], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [aJ, Y], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH, Z, ah], endpoint: { [cx]: M, [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }], [cq]: o }, be], [cq]: o }, bf], [cq]: o }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [cq]: f }], [cq]: o }, bg], [cq]: o }, bh], [cq]: o }], [cq]: o }], [cq]: o }, bi], [cq]: o }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: y, [cu]: [aW, c] }], [cr]: [{ [cs]: bC, error: \"S3 MRAP does not support dual-stack\", [cq]: f }, { [cs]: bJ, error: \"S3 MRAP does not support FIPS\", [cq]: f }, { [cs]: bD, error: \"S3 MRAP does not support S3 Accelerate\", [cq]: f }, { [cs]: [{ [ct]: e, [cu]: [{ [cv]: \"DisableMultiRegionAccessPoints\" }, c] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [cq]: f }, { [cs]: [{ [ct]: g, [cu]: bz, [cw]: N }], [cr]: [{ [cs]: [{ [ct]: h, [cu]: [{ [ct]: i, [cu]: [{ [cv]: N }, j] }, { [ct]: i, [cu]: [aT, \"partition\"] }] }], [cr]: [{ endpoint: { [cx]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [cy]: { [cA]: [{ [cB]: c, name: z, [cC]: B, [cF]: ca }] }, [cE]: am }, [cq]: n }], [cq]: o }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [cq]: f }], [cq]: o }], [cq]: o }, { error: \"Invalid Access Point Name\", [cq]: f }], [cq]: o }, bj], [cq]: o }, { [cs]: [{ [ct]: h, [cu]: [aV, A] }], [cr]: [{ [cs]: bC, error: \"S3 Outposts does not support Dual-stack\", [cq]: f }, { [cs]: bJ, error: \"S3 Outposts does not support FIPS\", [cq]: f }, { [cs]: bD, error: \"S3 Outposts does not support S3 Accelerate\", [cq]: f }, { [cs]: [{ [ct]: d, [cu]: [{ [ct]: i, [cu]: [aT, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [cq]: f }, { [cs]: [{ [ct]: i, [cu]: cf, [cw]: x }], [cr]: [{ [cs]: bY, [cr]: [ba, { [cs]: cj, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: ck, [cr]: [{ [cs]: cl, [cr]: [{ [cs]: cm, [cr]: [{ [cs]: [{ [ct]: i, [cu]: ci, [cw]: O }], [cr]: [{ [cs]: [{ [ct]: i, [cu]: [aT, \"resourceId[3]\"], [cw]: L }], [cr]: [{ [cs]: [{ [ct]: h, [cu]: [{ [cv]: O }, K] }], [cr]: [{ [cs]: bE, endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [cy]: bl, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bl, [cE]: am }, [cq]: n }], [cq]: o }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: expected an access point name\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: Expected a 4-component resource\", [cq]: f }], [cq]: o }, bf], [cq]: o }, bg], [cq]: o }, bh], [cq]: o }], [cq]: o }], [cq]: o }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: The Outpost Id was not set\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: No ARN type specified\", [cq]: f }], [cq]: o }, { [cs]: [{ [ct]: k, [cu]: [ad, 0, 4, b], [cw]: P }, { [ct]: h, [cu]: [{ [cv]: P }, \"arn:\"] }, { [ct]: r, [cu]: [{ [ct]: d, [cu]: [bm] }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [cq]: f }, { [cs]: [{ [ct]: e, [cu]: [ay, c] }, bm], error: \"Path-style addressing cannot be used with ARN buckets\", [cq]: f }, { [cs]: bG, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: [az], [cr]: [{ [cs]: [Y, ar, X, aA], endpoint: { [cx]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, ar, X, aC, aD], [cr]: [{ endpoint: bn, [cq]: n }], [cq]: o }, { [cs]: [Y, ar, X, aC, aG], endpoint: bn, [cq]: n }, { [cs]: [aH, ar, X, aA], endpoint: { [cx]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, ar, X, aC, aD], [cr]: [{ endpoint: bo, [cq]: n }], [cq]: o }, { [cs]: [aH, ar, X, aC, aG], endpoint: bo, [cq]: n }, { [cs]: [Y, ar, aJ, aA], endpoint: { [cx]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, ar, aJ, aC, aD], [cr]: [{ endpoint: bp, [cq]: n }], [cq]: o }, { [cs]: [Y, ar, aJ, aC, aG], endpoint: bp, [cq]: n }, { [cs]: [aH, Z, ah, aJ, aA], endpoint: { [cx]: Q, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, Z, ah, aJ, aC, aD], [cr]: [{ [cs]: cc, endpoint: bq, [cq]: n }, { endpoint: bq, [cq]: n }], [cq]: o }, { [cs]: [aH, Z, ah, aJ, aC, aG], endpoint: bq, [cq]: n }, { [cs]: [aH, ar, aJ, aA], endpoint: { [cx]: R, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, ar, aJ, aC, aD], [cr]: [{ [cs]: cc, endpoint: { [cx]: R, [cy]: aF, [cE]: am }, [cq]: n }, { endpoint: br, [cq]: n }], [cq]: o }, { [cs]: [aH, ar, aJ, aC, aG], endpoint: br, [cq]: n }], [cq]: o }, { error: \"Path-style addressing cannot be used with S3 Accelerate\", [cq]: f }], [cq]: o }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: d, [cu]: [bs] }, { [ct]: e, [cu]: [bs, c] }], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: co, [cr]: [aX, aY, { [cs]: bE, endpoint: { [cx]: t, [cy]: bt, [cE]: am }, [cq]: n }, { [cs]: bJ, endpoint: { [cx]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: bt, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [cy]: bt, [cE]: am }, [cq]: n }], [cq]: o }, aS], [cq]: o }], [cq]: o }, { [cs]: [at], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: co, [cr]: [{ [cs]: [X, Y, ar, aA], endpoint: { [cx]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [X, Y, ar, aC, aD], [cr]: [{ endpoint: bu, [cq]: n }], [cq]: o }, { [cs]: [X, Y, ar, aC, aG], endpoint: bu, [cq]: n }, { [cs]: [X, aH, ar, aA], endpoint: { [cx]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [X, aH, ar, aC, aD], [cr]: [{ endpoint: bv, [cq]: n }], [cq]: o }, { [cs]: [X, aH, ar, aC, aG], endpoint: bv, [cq]: n }, { [cs]: [aJ, Y, ar, aA], endpoint: { [cx]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aJ, Y, ar, aC, aD], [cr]: [{ endpoint: bw, [cq]: n }], [cq]: o }, { [cs]: [aJ, Y, ar, aC, aG], endpoint: bw, [cq]: n }, { [cs]: [aJ, aH, Z, ah, aA], endpoint: { [cx]: t, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH, Z, ah, aC, aD], [cr]: [{ [cs]: cc, endpoint: bx, [cq]: n }, { endpoint: bx, [cq]: n }], [cq]: o }, { [cs]: [aJ, aH, Z, ah, aC, aG], endpoint: bx, [cq]: n }, { [cs]: [aJ, aH, ar, aA], endpoint: { [cx]: S, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH, ar, aC, aD], [cr]: [{ [cs]: cc, endpoint: { [cx]: S, [cy]: aF, [cE]: am }, [cq]: n }, { endpoint: by, [cq]: n }], [cq]: o }, { [cs]: [aJ, aH, ar, aC, aG], endpoint: by, [cq]: n }], [cq]: o }, aS], [cq]: o }], [cq]: o }], [cq]: o }, { error: \"A region must be set when sending requests to S3.\", [cq]: f }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AbortMultipartUploadCommand: () => AbortMultipartUploadCommand,\n AnalyticsFilter: () => AnalyticsFilter,\n AnalyticsS3ExportFileFormat: () => AnalyticsS3ExportFileFormat,\n ArchiveStatus: () => ArchiveStatus,\n BucketAccelerateStatus: () => BucketAccelerateStatus,\n BucketAlreadyExists: () => BucketAlreadyExists,\n BucketAlreadyOwnedByYou: () => BucketAlreadyOwnedByYou,\n BucketCannedACL: () => BucketCannedACL,\n BucketLocationConstraint: () => BucketLocationConstraint,\n BucketLogsPermission: () => BucketLogsPermission,\n BucketType: () => BucketType,\n BucketVersioningStatus: () => BucketVersioningStatus,\n ChecksumAlgorithm: () => ChecksumAlgorithm,\n ChecksumMode: () => ChecksumMode,\n ChecksumType: () => ChecksumType,\n CompleteMultipartUploadCommand: () => CompleteMultipartUploadCommand,\n CompleteMultipartUploadOutputFilterSensitiveLog: () => CompleteMultipartUploadOutputFilterSensitiveLog,\n CompleteMultipartUploadRequestFilterSensitiveLog: () => CompleteMultipartUploadRequestFilterSensitiveLog,\n CompressionType: () => CompressionType,\n CopyObjectCommand: () => CopyObjectCommand,\n CopyObjectOutputFilterSensitiveLog: () => CopyObjectOutputFilterSensitiveLog,\n CopyObjectRequestFilterSensitiveLog: () => CopyObjectRequestFilterSensitiveLog,\n CreateBucketCommand: () => CreateBucketCommand,\n CreateBucketMetadataConfigurationCommand: () => CreateBucketMetadataConfigurationCommand,\n CreateBucketMetadataTableConfigurationCommand: () => CreateBucketMetadataTableConfigurationCommand,\n CreateMultipartUploadCommand: () => CreateMultipartUploadCommand,\n CreateMultipartUploadOutputFilterSensitiveLog: () => CreateMultipartUploadOutputFilterSensitiveLog,\n CreateMultipartUploadRequestFilterSensitiveLog: () => CreateMultipartUploadRequestFilterSensitiveLog,\n CreateSessionCommand: () => CreateSessionCommand,\n CreateSessionOutputFilterSensitiveLog: () => CreateSessionOutputFilterSensitiveLog,\n CreateSessionRequestFilterSensitiveLog: () => CreateSessionRequestFilterSensitiveLog,\n DataRedundancy: () => DataRedundancy,\n DeleteBucketAnalyticsConfigurationCommand: () => DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCommand: () => DeleteBucketCommand,\n DeleteBucketCorsCommand: () => DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand: () => DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand: () => DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand: () => DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand: () => DeleteBucketLifecycleCommand,\n DeleteBucketMetadataConfigurationCommand: () => DeleteBucketMetadataConfigurationCommand,\n DeleteBucketMetadataTableConfigurationCommand: () => DeleteBucketMetadataTableConfigurationCommand,\n DeleteBucketMetricsConfigurationCommand: () => DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand: () => DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand: () => DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand: () => DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand: () => DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand: () => DeleteBucketWebsiteCommand,\n DeleteMarkerReplicationStatus: () => DeleteMarkerReplicationStatus,\n DeleteObjectCommand: () => DeleteObjectCommand,\n DeleteObjectTaggingCommand: () => DeleteObjectTaggingCommand,\n DeleteObjectsCommand: () => DeleteObjectsCommand,\n DeletePublicAccessBlockCommand: () => DeletePublicAccessBlockCommand,\n EncodingType: () => EncodingType,\n EncryptionFilterSensitiveLog: () => EncryptionFilterSensitiveLog,\n EncryptionTypeMismatch: () => EncryptionTypeMismatch,\n Event: () => Event,\n ExistingObjectReplicationStatus: () => ExistingObjectReplicationStatus,\n ExpirationState: () => ExpirationState,\n ExpirationStatus: () => ExpirationStatus,\n ExpressionType: () => ExpressionType,\n FileHeaderInfo: () => FileHeaderInfo,\n FilterRuleName: () => FilterRuleName,\n GetBucketAccelerateConfigurationCommand: () => GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand: () => GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand: () => GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand: () => GetBucketCorsCommand,\n GetBucketEncryptionCommand: () => GetBucketEncryptionCommand,\n GetBucketEncryptionOutputFilterSensitiveLog: () => GetBucketEncryptionOutputFilterSensitiveLog,\n GetBucketIntelligentTieringConfigurationCommand: () => GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand: () => GetBucketInventoryConfigurationCommand,\n GetBucketInventoryConfigurationOutputFilterSensitiveLog: () => GetBucketInventoryConfigurationOutputFilterSensitiveLog,\n GetBucketLifecycleConfigurationCommand: () => GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand: () => GetBucketLocationCommand,\n GetBucketLoggingCommand: () => GetBucketLoggingCommand,\n GetBucketMetadataConfigurationCommand: () => GetBucketMetadataConfigurationCommand,\n GetBucketMetadataTableConfigurationCommand: () => GetBucketMetadataTableConfigurationCommand,\n GetBucketMetricsConfigurationCommand: () => GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand: () => GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand: () => GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand: () => GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand: () => GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand: () => GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand: () => GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand: () => GetBucketTaggingCommand,\n GetBucketVersioningCommand: () => GetBucketVersioningCommand,\n GetBucketWebsiteCommand: () => GetBucketWebsiteCommand,\n GetObjectAclCommand: () => GetObjectAclCommand,\n GetObjectAttributesCommand: () => GetObjectAttributesCommand,\n GetObjectAttributesRequestFilterSensitiveLog: () => GetObjectAttributesRequestFilterSensitiveLog,\n GetObjectCommand: () => GetObjectCommand,\n GetObjectLegalHoldCommand: () => GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand: () => GetObjectLockConfigurationCommand,\n GetObjectOutputFilterSensitiveLog: () => GetObjectOutputFilterSensitiveLog,\n GetObjectRequestFilterSensitiveLog: () => GetObjectRequestFilterSensitiveLog,\n GetObjectRetentionCommand: () => GetObjectRetentionCommand,\n GetObjectTaggingCommand: () => GetObjectTaggingCommand,\n GetObjectTorrentCommand: () => GetObjectTorrentCommand,\n GetObjectTorrentOutputFilterSensitiveLog: () => GetObjectTorrentOutputFilterSensitiveLog,\n GetPublicAccessBlockCommand: () => GetPublicAccessBlockCommand,\n HeadBucketCommand: () => HeadBucketCommand,\n HeadObjectCommand: () => HeadObjectCommand,\n HeadObjectOutputFilterSensitiveLog: () => HeadObjectOutputFilterSensitiveLog,\n HeadObjectRequestFilterSensitiveLog: () => HeadObjectRequestFilterSensitiveLog,\n IdempotencyParameterMismatch: () => IdempotencyParameterMismatch,\n IntelligentTieringAccessTier: () => IntelligentTieringAccessTier,\n IntelligentTieringStatus: () => IntelligentTieringStatus,\n InvalidObjectState: () => InvalidObjectState,\n InvalidRequest: () => InvalidRequest,\n InvalidWriteOffset: () => InvalidWriteOffset,\n InventoryConfigurationFilterSensitiveLog: () => InventoryConfigurationFilterSensitiveLog,\n InventoryConfigurationState: () => InventoryConfigurationState,\n InventoryDestinationFilterSensitiveLog: () => InventoryDestinationFilterSensitiveLog,\n InventoryEncryptionFilterSensitiveLog: () => InventoryEncryptionFilterSensitiveLog,\n InventoryFormat: () => InventoryFormat,\n InventoryFrequency: () => InventoryFrequency,\n InventoryIncludedObjectVersions: () => InventoryIncludedObjectVersions,\n InventoryOptionalField: () => InventoryOptionalField,\n InventoryS3BucketDestinationFilterSensitiveLog: () => InventoryS3BucketDestinationFilterSensitiveLog,\n JSONType: () => JSONType,\n ListBucketAnalyticsConfigurationsCommand: () => ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand: () => ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand: () => ListBucketInventoryConfigurationsCommand,\n ListBucketInventoryConfigurationsOutputFilterSensitiveLog: () => ListBucketInventoryConfigurationsOutputFilterSensitiveLog,\n ListBucketMetricsConfigurationsCommand: () => ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand: () => ListBucketsCommand,\n ListDirectoryBucketsCommand: () => ListDirectoryBucketsCommand,\n ListMultipartUploadsCommand: () => ListMultipartUploadsCommand,\n ListObjectVersionsCommand: () => ListObjectVersionsCommand,\n ListObjectsCommand: () => ListObjectsCommand,\n ListObjectsV2Command: () => ListObjectsV2Command,\n ListPartsCommand: () => ListPartsCommand,\n ListPartsRequestFilterSensitiveLog: () => ListPartsRequestFilterSensitiveLog,\n LocationType: () => LocationType,\n MFADelete: () => MFADelete,\n MFADeleteStatus: () => MFADeleteStatus,\n MetadataDirective: () => MetadataDirective,\n MetricsFilter: () => MetricsFilter,\n MetricsStatus: () => MetricsStatus,\n NoSuchBucket: () => NoSuchBucket,\n NoSuchKey: () => NoSuchKey,\n NoSuchUpload: () => NoSuchUpload,\n NotFound: () => NotFound,\n ObjectAlreadyInActiveTierError: () => ObjectAlreadyInActiveTierError,\n ObjectAttributes: () => ObjectAttributes,\n ObjectCannedACL: () => ObjectCannedACL,\n ObjectLockEnabled: () => ObjectLockEnabled,\n ObjectLockLegalHoldStatus: () => ObjectLockLegalHoldStatus,\n ObjectLockMode: () => ObjectLockMode,\n ObjectLockRetentionMode: () => ObjectLockRetentionMode,\n ObjectNotInActiveTierError: () => ObjectNotInActiveTierError,\n ObjectOwnership: () => ObjectOwnership,\n ObjectStorageClass: () => ObjectStorageClass,\n ObjectVersionStorageClass: () => ObjectVersionStorageClass,\n OptionalObjectAttributes: () => OptionalObjectAttributes,\n OutputLocationFilterSensitiveLog: () => OutputLocationFilterSensitiveLog,\n OwnerOverride: () => OwnerOverride,\n PartitionDateSource: () => PartitionDateSource,\n Payer: () => Payer,\n Permission: () => Permission,\n Protocol: () => Protocol,\n PutBucketAccelerateConfigurationCommand: () => PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand: () => PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand: () => PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand: () => PutBucketCorsCommand,\n PutBucketEncryptionCommand: () => PutBucketEncryptionCommand,\n PutBucketEncryptionRequestFilterSensitiveLog: () => PutBucketEncryptionRequestFilterSensitiveLog,\n PutBucketIntelligentTieringConfigurationCommand: () => PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand: () => PutBucketInventoryConfigurationCommand,\n PutBucketInventoryConfigurationRequestFilterSensitiveLog: () => PutBucketInventoryConfigurationRequestFilterSensitiveLog,\n PutBucketLifecycleConfigurationCommand: () => PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand: () => PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand: () => PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand: () => PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand: () => PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand: () => PutBucketPolicyCommand,\n PutBucketReplicationCommand: () => PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand: () => PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand: () => PutBucketTaggingCommand,\n PutBucketVersioningCommand: () => PutBucketVersioningCommand,\n PutBucketWebsiteCommand: () => PutBucketWebsiteCommand,\n PutObjectAclCommand: () => PutObjectAclCommand,\n PutObjectCommand: () => PutObjectCommand,\n PutObjectLegalHoldCommand: () => PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand: () => PutObjectLockConfigurationCommand,\n PutObjectOutputFilterSensitiveLog: () => PutObjectOutputFilterSensitiveLog,\n PutObjectRequestFilterSensitiveLog: () => PutObjectRequestFilterSensitiveLog,\n PutObjectRetentionCommand: () => PutObjectRetentionCommand,\n PutObjectTaggingCommand: () => PutObjectTaggingCommand,\n PutPublicAccessBlockCommand: () => PutPublicAccessBlockCommand,\n QuoteFields: () => QuoteFields,\n RenameObjectCommand: () => RenameObjectCommand,\n ReplicaModificationsStatus: () => ReplicaModificationsStatus,\n ReplicationRuleStatus: () => ReplicationRuleStatus,\n ReplicationStatus: () => ReplicationStatus,\n ReplicationTimeStatus: () => ReplicationTimeStatus,\n RequestCharged: () => RequestCharged,\n RequestPayer: () => RequestPayer,\n RestoreObjectCommand: () => RestoreObjectCommand,\n RestoreObjectRequestFilterSensitiveLog: () => RestoreObjectRequestFilterSensitiveLog,\n RestoreRequestFilterSensitiveLog: () => RestoreRequestFilterSensitiveLog,\n RestoreRequestType: () => RestoreRequestType,\n S3: () => S3,\n S3Client: () => S3Client,\n S3LocationFilterSensitiveLog: () => S3LocationFilterSensitiveLog,\n S3ServiceException: () => S3ServiceException,\n S3TablesBucketType: () => S3TablesBucketType,\n SSEKMSFilterSensitiveLog: () => SSEKMSFilterSensitiveLog,\n SelectObjectContentCommand: () => SelectObjectContentCommand,\n SelectObjectContentEventStream: () => SelectObjectContentEventStream,\n SelectObjectContentEventStreamFilterSensitiveLog: () => SelectObjectContentEventStreamFilterSensitiveLog,\n SelectObjectContentOutputFilterSensitiveLog: () => SelectObjectContentOutputFilterSensitiveLog,\n SelectObjectContentRequestFilterSensitiveLog: () => SelectObjectContentRequestFilterSensitiveLog,\n ServerSideEncryption: () => ServerSideEncryption,\n ServerSideEncryptionByDefaultFilterSensitiveLog: () => ServerSideEncryptionByDefaultFilterSensitiveLog,\n ServerSideEncryptionConfigurationFilterSensitiveLog: () => ServerSideEncryptionConfigurationFilterSensitiveLog,\n ServerSideEncryptionRuleFilterSensitiveLog: () => ServerSideEncryptionRuleFilterSensitiveLog,\n SessionCredentialsFilterSensitiveLog: () => SessionCredentialsFilterSensitiveLog,\n SessionMode: () => SessionMode,\n SseKmsEncryptedObjectsStatus: () => SseKmsEncryptedObjectsStatus,\n StorageClass: () => StorageClass,\n StorageClassAnalysisSchemaVersion: () => StorageClassAnalysisSchemaVersion,\n TableSseAlgorithm: () => TableSseAlgorithm,\n TaggingDirective: () => TaggingDirective,\n Tier: () => Tier,\n TooManyParts: () => TooManyParts,\n TransitionDefaultMinimumObjectSize: () => TransitionDefaultMinimumObjectSize,\n TransitionStorageClass: () => TransitionStorageClass,\n Type: () => Type,\n UpdateBucketMetadataInventoryTableConfigurationCommand: () => UpdateBucketMetadataInventoryTableConfigurationCommand,\n UpdateBucketMetadataJournalTableConfigurationCommand: () => UpdateBucketMetadataJournalTableConfigurationCommand,\n UploadPartCommand: () => UploadPartCommand,\n UploadPartCopyCommand: () => UploadPartCopyCommand,\n UploadPartCopyOutputFilterSensitiveLog: () => UploadPartCopyOutputFilterSensitiveLog,\n UploadPartCopyRequestFilterSensitiveLog: () => UploadPartCopyRequestFilterSensitiveLog,\n UploadPartOutputFilterSensitiveLog: () => UploadPartOutputFilterSensitiveLog,\n UploadPartRequestFilterSensitiveLog: () => UploadPartRequestFilterSensitiveLog,\n WriteGetObjectResponseCommand: () => WriteGetObjectResponseCommand,\n WriteGetObjectResponseRequestFilterSensitiveLog: () => WriteGetObjectResponseRequestFilterSensitiveLog,\n __Client: () => import_smithy_client.Client,\n paginateListBuckets: () => paginateListBuckets,\n paginateListDirectoryBuckets: () => paginateListDirectoryBuckets,\n paginateListObjectsV2: () => paginateListObjectsV2,\n paginateListParts: () => paginateListParts,\n waitForBucketExists: () => waitForBucketExists,\n waitForBucketNotExists: () => waitForBucketNotExists,\n waitForObjectExists: () => waitForObjectExists,\n waitForObjectNotExists: () => waitForObjectNotExists,\n waitUntilBucketExists: () => waitUntilBucketExists,\n waitUntilBucketNotExists: () => waitUntilBucketNotExists,\n waitUntilObjectExists: () => waitUntilObjectExists,\n waitUntilObjectNotExists: () => waitUntilObjectNotExists\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/S3Client.ts\nvar import_middleware_expect_continue = require(\"@aws-sdk/middleware-expect-continue\");\nvar import_middleware_flexible_checksums = require(\"@aws-sdk/middleware-flexible-checksums\");\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_sdk_s32 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_eventstream_serde_config_resolver = require(\"@smithy/eventstream-serde-config-resolver\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\n\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/commands/CreateSessionCommand.ts\nvar import_middleware_sdk_s3 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n forcePathStyle: options.forcePathStyle ?? false,\n useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n defaultSigningName: \"s3\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n DisableS3ExpressSessionAuth: { type: \"clientContextParams\", name: \"disableS3ExpressSessionAuth\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/models/models_0.ts\n\n\n// src/models/S3ServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar S3ServiceException = class _S3ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"S3ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _S3ServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar RequestCharged = {\n requester: \"requester\"\n};\nvar RequestPayer = {\n requester: \"requester\"\n};\nvar NoSuchUpload = class _NoSuchUpload extends S3ServiceException {\n static {\n __name(this, \"NoSuchUpload\");\n }\n name = \"NoSuchUpload\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchUpload\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchUpload.prototype);\n }\n};\nvar BucketAccelerateStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\"\n};\nvar Type = {\n AmazonCustomerByEmail: \"AmazonCustomerByEmail\",\n CanonicalUser: \"CanonicalUser\",\n Group: \"Group\"\n};\nvar Permission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n READ_ACP: \"READ_ACP\",\n WRITE: \"WRITE\",\n WRITE_ACP: \"WRITE_ACP\"\n};\nvar OwnerOverride = {\n Destination: \"Destination\"\n};\nvar ChecksumType = {\n COMPOSITE: \"COMPOSITE\",\n FULL_OBJECT: \"FULL_OBJECT\"\n};\nvar ServerSideEncryption = {\n AES256: \"AES256\",\n aws_fsx: \"aws:fsx\",\n aws_kms: \"aws:kms\",\n aws_kms_dsse: \"aws:kms:dsse\"\n};\nvar ObjectCannedACL = {\n authenticated_read: \"authenticated-read\",\n aws_exec_read: \"aws-exec-read\",\n bucket_owner_full_control: \"bucket-owner-full-control\",\n bucket_owner_read: \"bucket-owner-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\"\n};\nvar ChecksumAlgorithm = {\n CRC32: \"CRC32\",\n CRC32C: \"CRC32C\",\n CRC64NVME: \"CRC64NVME\",\n SHA1: \"SHA1\",\n SHA256: \"SHA256\"\n};\nvar MetadataDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\"\n};\nvar ObjectLockLegalHoldStatus = {\n OFF: \"OFF\",\n ON: \"ON\"\n};\nvar ObjectLockMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\"\n};\nvar StorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n EXPRESS_ONEZONE: \"EXPRESS_ONEZONE\",\n FSX_OPENZFS: \"FSX_OPENZFS\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\"\n};\nvar TaggingDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\"\n};\nvar ObjectNotInActiveTierError = class _ObjectNotInActiveTierError extends S3ServiceException {\n static {\n __name(this, \"ObjectNotInActiveTierError\");\n }\n name = \"ObjectNotInActiveTierError\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ObjectNotInActiveTierError.prototype);\n }\n};\nvar BucketAlreadyExists = class _BucketAlreadyExists extends S3ServiceException {\n static {\n __name(this, \"BucketAlreadyExists\");\n }\n name = \"BucketAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BucketAlreadyExists.prototype);\n }\n};\nvar BucketAlreadyOwnedByYou = class _BucketAlreadyOwnedByYou extends S3ServiceException {\n static {\n __name(this, \"BucketAlreadyOwnedByYou\");\n }\n name = \"BucketAlreadyOwnedByYou\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BucketAlreadyOwnedByYou.prototype);\n }\n};\nvar BucketCannedACL = {\n authenticated_read: \"authenticated-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\"\n};\nvar DataRedundancy = {\n SingleAvailabilityZone: \"SingleAvailabilityZone\",\n SingleLocalZone: \"SingleLocalZone\"\n};\nvar BucketType = {\n Directory: \"Directory\"\n};\nvar LocationType = {\n AvailabilityZone: \"AvailabilityZone\",\n LocalZone: \"LocalZone\"\n};\nvar BucketLocationConstraint = {\n EU: \"EU\",\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ca_central_1: \"ca-central-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n sa_east_1: \"sa-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar ObjectOwnership = {\n BucketOwnerEnforced: \"BucketOwnerEnforced\",\n BucketOwnerPreferred: \"BucketOwnerPreferred\",\n ObjectWriter: \"ObjectWriter\"\n};\nvar InventoryConfigurationState = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar TableSseAlgorithm = {\n AES256: \"AES256\",\n aws_kms: \"aws:kms\"\n};\nvar ExpirationState = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar SessionMode = {\n ReadOnly: \"ReadOnly\",\n ReadWrite: \"ReadWrite\"\n};\nvar NoSuchBucket = class _NoSuchBucket extends S3ServiceException {\n static {\n __name(this, \"NoSuchBucket\");\n }\n name = \"NoSuchBucket\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchBucket\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchBucket.prototype);\n }\n};\nvar AnalyticsFilter;\n((AnalyticsFilter2) => {\n AnalyticsFilter2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Prefix !== void 0) return visitor.Prefix(value.Prefix);\n if (value.Tag !== void 0) return visitor.Tag(value.Tag);\n if (value.And !== void 0) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nvar AnalyticsS3ExportFileFormat = {\n CSV: \"CSV\"\n};\nvar StorageClassAnalysisSchemaVersion = {\n V_1: \"V_1\"\n};\nvar IntelligentTieringStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar IntelligentTieringAccessTier = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\"\n};\nvar InventoryFormat = {\n CSV: \"CSV\",\n ORC: \"ORC\",\n Parquet: \"Parquet\"\n};\nvar InventoryIncludedObjectVersions = {\n All: \"All\",\n Current: \"Current\"\n};\nvar InventoryOptionalField = {\n BucketKeyStatus: \"BucketKeyStatus\",\n ChecksumAlgorithm: \"ChecksumAlgorithm\",\n ETag: \"ETag\",\n EncryptionStatus: \"EncryptionStatus\",\n IntelligentTieringAccessTier: \"IntelligentTieringAccessTier\",\n IsMultipartUploaded: \"IsMultipartUploaded\",\n LastModifiedDate: \"LastModifiedDate\",\n ObjectAccessControlList: \"ObjectAccessControlList\",\n ObjectLockLegalHoldStatus: \"ObjectLockLegalHoldStatus\",\n ObjectLockMode: \"ObjectLockMode\",\n ObjectLockRetainUntilDate: \"ObjectLockRetainUntilDate\",\n ObjectOwner: \"ObjectOwner\",\n ReplicationStatus: \"ReplicationStatus\",\n Size: \"Size\",\n StorageClass: \"StorageClass\"\n};\nvar InventoryFrequency = {\n Daily: \"Daily\",\n Weekly: \"Weekly\"\n};\nvar TransitionStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n STANDARD_IA: \"STANDARD_IA\"\n};\nvar ExpirationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar TransitionDefaultMinimumObjectSize = {\n all_storage_classes_128K: \"all_storage_classes_128K\",\n varies_by_storage_class: \"varies_by_storage_class\"\n};\nvar BucketLogsPermission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n WRITE: \"WRITE\"\n};\nvar PartitionDateSource = {\n DeliveryTime: \"DeliveryTime\",\n EventTime: \"EventTime\"\n};\nvar S3TablesBucketType = {\n aws: \"aws\",\n customer: \"customer\"\n};\nvar MetricsFilter;\n((MetricsFilter2) => {\n MetricsFilter2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Prefix !== void 0) return visitor.Prefix(value.Prefix);\n if (value.Tag !== void 0) return visitor.Tag(value.Tag);\n if (value.AccessPointArn !== void 0) return visitor.AccessPointArn(value.AccessPointArn);\n if (value.And !== void 0) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(MetricsFilter || (MetricsFilter = {}));\nvar Event = {\n s3_IntelligentTiering: \"s3:IntelligentTiering\",\n s3_LifecycleExpiration_: \"s3:LifecycleExpiration:*\",\n s3_LifecycleExpiration_Delete: \"s3:LifecycleExpiration:Delete\",\n s3_LifecycleExpiration_DeleteMarkerCreated: \"s3:LifecycleExpiration:DeleteMarkerCreated\",\n s3_LifecycleTransition: \"s3:LifecycleTransition\",\n s3_ObjectAcl_Put: \"s3:ObjectAcl:Put\",\n s3_ObjectCreated_: \"s3:ObjectCreated:*\",\n s3_ObjectCreated_CompleteMultipartUpload: \"s3:ObjectCreated:CompleteMultipartUpload\",\n s3_ObjectCreated_Copy: \"s3:ObjectCreated:Copy\",\n s3_ObjectCreated_Post: \"s3:ObjectCreated:Post\",\n s3_ObjectCreated_Put: \"s3:ObjectCreated:Put\",\n s3_ObjectRemoved_: \"s3:ObjectRemoved:*\",\n s3_ObjectRemoved_Delete: \"s3:ObjectRemoved:Delete\",\n s3_ObjectRemoved_DeleteMarkerCreated: \"s3:ObjectRemoved:DeleteMarkerCreated\",\n s3_ObjectRestore_: \"s3:ObjectRestore:*\",\n s3_ObjectRestore_Completed: \"s3:ObjectRestore:Completed\",\n s3_ObjectRestore_Delete: \"s3:ObjectRestore:Delete\",\n s3_ObjectRestore_Post: \"s3:ObjectRestore:Post\",\n s3_ObjectTagging_: \"s3:ObjectTagging:*\",\n s3_ObjectTagging_Delete: \"s3:ObjectTagging:Delete\",\n s3_ObjectTagging_Put: \"s3:ObjectTagging:Put\",\n s3_ReducedRedundancyLostObject: \"s3:ReducedRedundancyLostObject\",\n s3_Replication_: \"s3:Replication:*\",\n s3_Replication_OperationFailedReplication: \"s3:Replication:OperationFailedReplication\",\n s3_Replication_OperationMissedThreshold: \"s3:Replication:OperationMissedThreshold\",\n s3_Replication_OperationNotTracked: \"s3:Replication:OperationNotTracked\",\n s3_Replication_OperationReplicatedAfterThreshold: \"s3:Replication:OperationReplicatedAfterThreshold\"\n};\nvar FilterRuleName = {\n prefix: \"prefix\",\n suffix: \"suffix\"\n};\nvar DeleteMarkerReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar MetricsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ReplicationTimeStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ExistingObjectReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ReplicaModificationsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar SseKmsEncryptedObjectsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ReplicationRuleStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar Payer = {\n BucketOwner: \"BucketOwner\",\n Requester: \"Requester\"\n};\nvar MFADeleteStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar BucketVersioningStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\"\n};\nvar Protocol = {\n http: \"http\",\n https: \"https\"\n};\nvar ReplicationStatus = {\n COMPLETE: \"COMPLETE\",\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n REPLICA: \"REPLICA\"\n};\nvar ChecksumMode = {\n ENABLED: \"ENABLED\"\n};\nvar InvalidObjectState = class _InvalidObjectState extends S3ServiceException {\n static {\n __name(this, \"InvalidObjectState\");\n }\n name = \"InvalidObjectState\";\n $fault = \"client\";\n StorageClass;\n AccessTier;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidObjectState\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidObjectState.prototype);\n this.StorageClass = opts.StorageClass;\n this.AccessTier = opts.AccessTier;\n }\n};\nvar NoSuchKey = class _NoSuchKey extends S3ServiceException {\n static {\n __name(this, \"NoSuchKey\");\n }\n name = \"NoSuchKey\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchKey\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchKey.prototype);\n }\n};\nvar ObjectAttributes = {\n CHECKSUM: \"Checksum\",\n ETAG: \"ETag\",\n OBJECT_PARTS: \"ObjectParts\",\n OBJECT_SIZE: \"ObjectSize\",\n STORAGE_CLASS: \"StorageClass\"\n};\nvar ObjectLockEnabled = {\n Enabled: \"Enabled\"\n};\nvar ObjectLockRetentionMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\"\n};\nvar NotFound = class _NotFound extends S3ServiceException {\n static {\n __name(this, \"NotFound\");\n }\n name = \"NotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotFound.prototype);\n }\n};\nvar ArchiveStatus = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\"\n};\nvar EncodingType = {\n url: \"url\"\n};\nvar CompleteMultipartUploadOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"CompleteMultipartUploadOutputFilterSensitiveLog\");\nvar CompleteMultipartUploadRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CompleteMultipartUploadRequestFilterSensitiveLog\");\nvar CopyObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CopyObjectOutputFilterSensitiveLog\");\nvar CopyObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING },\n ...obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CopyObjectRequestFilterSensitiveLog\");\nvar CreateMultipartUploadOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateMultipartUploadOutputFilterSensitiveLog\");\nvar CreateMultipartUploadRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateMultipartUploadRequestFilterSensitiveLog\");\nvar SessionCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SessionToken && { SessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"SessionCredentialsFilterSensitiveLog\");\nvar CreateSessionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING },\n ...obj.Credentials && { Credentials: SessionCredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"CreateSessionOutputFilterSensitiveLog\");\nvar CreateSessionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateSessionRequestFilterSensitiveLog\");\nvar ServerSideEncryptionByDefaultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KMSMasterKeyID && { KMSMasterKeyID: import_smithy_client.SENSITIVE_STRING }\n}), \"ServerSideEncryptionByDefaultFilterSensitiveLog\");\nvar ServerSideEncryptionRuleFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefaultFilterSensitiveLog(\n obj.ApplyServerSideEncryptionByDefault\n )\n }\n}), \"ServerSideEncryptionRuleFilterSensitiveLog\");\nvar ServerSideEncryptionConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Rules && { Rules: obj.Rules.map((item) => ServerSideEncryptionRuleFilterSensitiveLog(item)) }\n}), \"ServerSideEncryptionConfigurationFilterSensitiveLog\");\nvar GetBucketEncryptionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(\n obj.ServerSideEncryptionConfiguration\n )\n }\n}), \"GetBucketEncryptionOutputFilterSensitiveLog\");\nvar SSEKMSFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyId && { KeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"SSEKMSFilterSensitiveLog\");\nvar InventoryEncryptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMS && { SSEKMS: SSEKMSFilterSensitiveLog(obj.SSEKMS) }\n}), \"InventoryEncryptionFilterSensitiveLog\");\nvar InventoryS3BucketDestinationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Encryption && { Encryption: InventoryEncryptionFilterSensitiveLog(obj.Encryption) }\n}), \"InventoryS3BucketDestinationFilterSensitiveLog\");\nvar InventoryDestinationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestinationFilterSensitiveLog(obj.S3BucketDestination)\n }\n}), \"InventoryDestinationFilterSensitiveLog\");\nvar InventoryConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Destination && { Destination: InventoryDestinationFilterSensitiveLog(obj.Destination) }\n}), \"InventoryConfigurationFilterSensitiveLog\");\nvar GetBucketInventoryConfigurationOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration)\n }\n}), \"GetBucketInventoryConfigurationOutputFilterSensitiveLog\");\nvar GetObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"GetObjectOutputFilterSensitiveLog\");\nvar GetObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"GetObjectRequestFilterSensitiveLog\");\nvar GetObjectAttributesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"GetObjectAttributesRequestFilterSensitiveLog\");\nvar GetObjectTorrentOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"GetObjectTorrentOutputFilterSensitiveLog\");\nvar HeadObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"HeadObjectOutputFilterSensitiveLog\");\nvar HeadObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"HeadObjectRequestFilterSensitiveLog\");\nvar ListBucketInventoryConfigurationsOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map(\n (item) => InventoryConfigurationFilterSensitiveLog(item)\n )\n }\n}), \"ListBucketInventoryConfigurationsOutputFilterSensitiveLog\");\n\n// src/protocols/Aws_restXml.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/models_1.ts\n\nvar ObjectStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n EXPRESS_ONEZONE: \"EXPRESS_ONEZONE\",\n FSX_OPENZFS: \"FSX_OPENZFS\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\"\n};\nvar OptionalObjectAttributes = {\n RESTORE_STATUS: \"RestoreStatus\"\n};\nvar ObjectVersionStorageClass = {\n STANDARD: \"STANDARD\"\n};\nvar MFADelete = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar EncryptionTypeMismatch = class _EncryptionTypeMismatch extends S3ServiceException {\n static {\n __name(this, \"EncryptionTypeMismatch\");\n }\n name = \"EncryptionTypeMismatch\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EncryptionTypeMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EncryptionTypeMismatch.prototype);\n }\n};\nvar InvalidRequest = class _InvalidRequest extends S3ServiceException {\n static {\n __name(this, \"InvalidRequest\");\n }\n name = \"InvalidRequest\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequest\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequest.prototype);\n }\n};\nvar InvalidWriteOffset = class _InvalidWriteOffset extends S3ServiceException {\n static {\n __name(this, \"InvalidWriteOffset\");\n }\n name = \"InvalidWriteOffset\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidWriteOffset\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidWriteOffset.prototype);\n }\n};\nvar TooManyParts = class _TooManyParts extends S3ServiceException {\n static {\n __name(this, \"TooManyParts\");\n }\n name = \"TooManyParts\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyParts\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyParts.prototype);\n }\n};\nvar IdempotencyParameterMismatch = class _IdempotencyParameterMismatch extends S3ServiceException {\n static {\n __name(this, \"IdempotencyParameterMismatch\");\n }\n name = \"IdempotencyParameterMismatch\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IdempotencyParameterMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IdempotencyParameterMismatch.prototype);\n }\n};\nvar ObjectAlreadyInActiveTierError = class _ObjectAlreadyInActiveTierError extends S3ServiceException {\n static {\n __name(this, \"ObjectAlreadyInActiveTierError\");\n }\n name = \"ObjectAlreadyInActiveTierError\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ObjectAlreadyInActiveTierError.prototype);\n }\n};\nvar Tier = {\n Bulk: \"Bulk\",\n Expedited: \"Expedited\",\n Standard: \"Standard\"\n};\nvar ExpressionType = {\n SQL: \"SQL\"\n};\nvar CompressionType = {\n BZIP2: \"BZIP2\",\n GZIP: \"GZIP\",\n NONE: \"NONE\"\n};\nvar FileHeaderInfo = {\n IGNORE: \"IGNORE\",\n NONE: \"NONE\",\n USE: \"USE\"\n};\nvar JSONType = {\n DOCUMENT: \"DOCUMENT\",\n LINES: \"LINES\"\n};\nvar QuoteFields = {\n ALWAYS: \"ALWAYS\",\n ASNEEDED: \"ASNEEDED\"\n};\nvar RestoreRequestType = {\n SELECT: \"SELECT\"\n};\nvar SelectObjectContentEventStream;\n((SelectObjectContentEventStream3) => {\n SelectObjectContentEventStream3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Records !== void 0) return visitor.Records(value.Records);\n if (value.Stats !== void 0) return visitor.Stats(value.Stats);\n if (value.Progress !== void 0) return visitor.Progress(value.Progress);\n if (value.Cont !== void 0) return visitor.Cont(value.Cont);\n if (value.End !== void 0) return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nvar ListPartsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"ListPartsRequestFilterSensitiveLog\");\nvar PutBucketEncryptionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(\n obj.ServerSideEncryptionConfiguration\n )\n }\n}), \"PutBucketEncryptionRequestFilterSensitiveLog\");\nvar PutBucketInventoryConfigurationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration)\n }\n}), \"PutBucketInventoryConfigurationRequestFilterSensitiveLog\");\nvar PutObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"PutObjectOutputFilterSensitiveLog\");\nvar PutObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"PutObjectRequestFilterSensitiveLog\");\nvar EncryptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KMSKeyId && { KMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"EncryptionFilterSensitiveLog\");\nvar S3LocationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Encryption && { Encryption: EncryptionFilterSensitiveLog(obj.Encryption) }\n}), \"S3LocationFilterSensitiveLog\");\nvar OutputLocationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.S3 && { S3: S3LocationFilterSensitiveLog(obj.S3) }\n}), \"OutputLocationFilterSensitiveLog\");\nvar RestoreRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OutputLocation && { OutputLocation: OutputLocationFilterSensitiveLog(obj.OutputLocation) }\n}), \"RestoreRequestFilterSensitiveLog\");\nvar RestoreObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.RestoreRequest && { RestoreRequest: RestoreRequestFilterSensitiveLog(obj.RestoreRequest) }\n}), \"RestoreObjectRequestFilterSensitiveLog\");\nvar SelectObjectContentEventStreamFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.Records !== void 0) return { Records: obj.Records };\n if (obj.Stats !== void 0) return { Stats: obj.Stats };\n if (obj.Progress !== void 0) return { Progress: obj.Progress };\n if (obj.Cont !== void 0) return { Cont: obj.Cont };\n if (obj.End !== void 0) return { End: obj.End };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"SelectObjectContentEventStreamFilterSensitiveLog\");\nvar SelectObjectContentOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: \"STREAMING_CONTENT\" }\n}), \"SelectObjectContentOutputFilterSensitiveLog\");\nvar SelectObjectContentRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"SelectObjectContentRequestFilterSensitiveLog\");\nvar UploadPartOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartOutputFilterSensitiveLog\");\nvar UploadPartRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartRequestFilterSensitiveLog\");\nvar UploadPartCopyOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartCopyOutputFilterSensitiveLog\");\nvar UploadPartCopyRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartCopyRequestFilterSensitiveLog\");\nvar WriteGetObjectResponseRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"WriteGetObjectResponseRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restXml.ts\nvar se_AbortMultipartUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaimit]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMIT]), () => (0, import_smithy_client.dateToUtcString)(input[_IMIT]).toString()]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"AbortMultipartUpload\"],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_AbortMultipartUploadCommand\");\nvar se_CompleteMultipartUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xacc]: input[_CCRC],\n [_xacc_]: input[_CCRCC],\n [_xacc__]: input[_CCRCNVME],\n [_xacs]: input[_CSHA],\n [_xacs_]: input[_CSHAh],\n [_xact]: input[_CT],\n [_xamos]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_MOS]), () => input[_MOS].toString()],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_im]: input[_IM],\n [_inm]: input[_INM],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n let contents;\n if (input.MultipartUpload !== void 0) {\n contents = se_CompletedMultipartUpload(input.MultipartUpload, context);\n contents = contents.n(\"CompleteMultipartUpload\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CompleteMultipartUploadCommand\");\nvar se_CopyObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n [_xaa]: input[_ACL],\n [_cc]: input[_CC],\n [_xaca]: input[_CA],\n [_cd]: input[_CD],\n [_ce]: input[_CE],\n [_cl]: input[_CL],\n [_ct]: input[_CTo],\n [_xacs__]: input[_CS],\n [_xacsim]: input[_CSIM],\n [_xacsims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIMS]).toString()],\n [_xacsinm]: input[_CSINM],\n [_xacsius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIUS]).toString()],\n [_e]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagwa]: input[_GWACP],\n [_xamd]: input[_MD],\n [_xatd]: input[_TD],\n [_xasse]: input[_SSE],\n [_xasc]: input[_SC],\n [_xawrl]: input[_WRL],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()],\n [_xacssseca]: input[_CSSSECA],\n [_xacssseck]: input[_CSSSECK],\n [_xacssseckm]: input[_CSSSECKMD],\n [_xarp]: input[_RP],\n [_xat]: input[_T],\n [_xaolm]: input[_OLM],\n [_xaolrud]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]), () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()],\n [_xaollh]: input[_OLLHS],\n [_xaebo]: input[_EBO],\n [_xasebo]: input[_ESBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"CopyObject\"]\n });\n let body;\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CopyObjectCommand\");\nvar se_CreateBucketCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaa]: input[_ACL],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagw]: input[_GW],\n [_xagwa]: input[_GWACP],\n [_xabole]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLEFB]), () => input[_OLEFB].toString()],\n [_xaoo]: input[_OO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n let contents;\n if (input.CreateBucketConfiguration !== void 0) {\n contents = se_CreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_CreateBucketCommand\");\nvar se_CreateBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mC]: [, \"\"]\n });\n let body;\n let contents;\n if (input.MetadataConfiguration !== void 0) {\n contents = se_MetadataConfiguration(input.MetadataConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateBucketMetadataConfigurationCommand\");\nvar se_CreateBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mT]: [, \"\"]\n });\n let body;\n let contents;\n if (input.MetadataTableConfiguration !== void 0) {\n contents = se_MetadataTableConfiguration(input.MetadataTableConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateBucketMetadataTableConfigurationCommand\");\nvar se_CreateMultipartUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n [_xaa]: input[_ACL],\n [_cc]: input[_CC],\n [_cd]: input[_CD],\n [_ce]: input[_CE],\n [_cl]: input[_CL],\n [_ct]: input[_CTo],\n [_e]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagwa]: input[_GWACP],\n [_xasse]: input[_SSE],\n [_xasc]: input[_SC],\n [_xawrl]: input[_WRL],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()],\n [_xarp]: input[_RP],\n [_xat]: input[_T],\n [_xaolm]: input[_OLM],\n [_xaolrud]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]), () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()],\n [_xaollh]: input[_OLLHS],\n [_xaebo]: input[_EBO],\n [_xaca]: input[_CA],\n [_xact]: input[_CT]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_u]: [, \"\"]\n });\n let body;\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateMultipartUploadCommand\");\nvar se_CreateSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xacsm]: input[_SM],\n [_xasse]: input[_SSE],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_s]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateSessionCommand\");\nvar se_DeleteBucketCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteBucketCommand\");\nvar se_DeleteBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketAnalyticsConfigurationCommand\");\nvar se_DeleteBucketCorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_c]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketCorsCommand\");\nvar se_DeleteBucketEncryptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_en]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketEncryptionCommand\");\nvar se_DeleteBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketIntelligentTieringConfigurationCommand\");\nvar se_DeleteBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketInventoryConfigurationCommand\");\nvar se_DeleteBucketLifecycleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketLifecycleCommand\");\nvar se_DeleteBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mC]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketMetadataConfigurationCommand\");\nvar se_DeleteBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mT]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketMetadataTableConfigurationCommand\");\nvar se_DeleteBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketMetricsConfigurationCommand\");\nvar se_DeleteBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_oC]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketOwnershipControlsCommand\");\nvar se_DeleteBucketPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_p]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketPolicyCommand\");\nvar se_DeleteBucketReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_r]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketReplicationCommand\");\nvar se_DeleteBucketTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketTaggingCommand\");\nvar se_DeleteBucketWebsiteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_w]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketWebsiteCommand\");\nvar se_DeleteObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xam]: input[_MFA],\n [_xarp]: input[_RP],\n [_xabgr]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BGR]), () => input[_BGR].toString()],\n [_xaebo]: input[_EBO],\n [_im]: input[_IM],\n [_xaimlmt]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMLMT]), () => (0, import_smithy_client.dateToUtcString)(input[_IMLMT]).toString()],\n [_xaims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMS]), () => input[_IMS].toString()]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"DeleteObject\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteObjectCommand\");\nvar se_DeleteObjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xam]: input[_MFA],\n [_xarp]: input[_RP],\n [_xabgr]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BGR]), () => input[_BGR].toString()],\n [_xaebo]: input[_EBO],\n [_xasca]: input[_CA]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_d]: [, \"\"]\n });\n let body;\n let contents;\n if (input.Delete !== void 0) {\n contents = se_Delete(input.Delete, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteObjectsCommand\");\nvar se_DeleteObjectTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteObjectTaggingCommand\");\nvar se_DeletePublicAccessBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pAB]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeletePublicAccessBlockCommand\");\nvar se_GetBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ac]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketAccelerateConfigurationCommand\");\nvar se_GetBucketAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketAclCommand\");\nvar se_GetBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_xi]: [, \"GetBucketAnalyticsConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketAnalyticsConfigurationCommand\");\nvar se_GetBucketCorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_c]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketCorsCommand\");\nvar se_GetBucketEncryptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_en]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketEncryptionCommand\");\nvar se_GetBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_xi]: [, \"GetBucketIntelligentTieringConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketIntelligentTieringConfigurationCommand\");\nvar se_GetBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_xi]: [, \"GetBucketInventoryConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketInventoryConfigurationCommand\");\nvar se_GetBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketLifecycleConfigurationCommand\");\nvar se_GetBucketLocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_lo]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketLocationCommand\");\nvar se_GetBucketLoggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_log]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketLoggingCommand\");\nvar se_GetBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mC]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketMetadataConfigurationCommand\");\nvar se_GetBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mT]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketMetadataTableConfigurationCommand\");\nvar se_GetBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_xi]: [, \"GetBucketMetricsConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketMetricsConfigurationCommand\");\nvar se_GetBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketNotificationConfigurationCommand\");\nvar se_GetBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_oC]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketOwnershipControlsCommand\");\nvar se_GetBucketPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_p]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketPolicyCommand\");\nvar se_GetBucketPolicyStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pS]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketPolicyStatusCommand\");\nvar se_GetBucketReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_r]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketReplicationCommand\");\nvar se_GetBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_rP]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketRequestPaymentCommand\");\nvar se_GetBucketTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketTaggingCommand\");\nvar se_GetBucketVersioningCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_v]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketVersioningCommand\");\nvar se_GetBucketWebsiteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_w]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketWebsiteCommand\");\nvar se_GetObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_im]: input[_IM],\n [_ims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMSf]), () => (0, import_smithy_client.dateToUtcString)(input[_IMSf]).toString()],\n [_inm]: input[_INM],\n [_ius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IUS]), () => (0, import_smithy_client.dateToUtcString)(input[_IUS]).toString()],\n [_ra]: input[_R],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xacm]: input[_CM]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"GetObject\"],\n [_rcc]: [, input[_RCC]],\n [_rcd]: [, input[_RCD]],\n [_rce]: [, input[_RCE]],\n [_rcl]: [, input[_RCL]],\n [_rct]: [, input[_RCT]],\n [_re]: [() => input.ResponseExpires !== void 0, () => (0, import_smithy_client.dateToUtcString)(input[_RE]).toString()],\n [_vI]: [, input[_VI]],\n [_pN]: [() => input.PartNumber !== void 0, () => input[_PN].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectCommand\");\nvar se_GetObjectAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectAclCommand\");\nvar se_GetObjectAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xamp]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_MP]), () => input[_MP].toString()],\n [_xapnm]: input[_PNM],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaoa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OA]), () => (input[_OA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_at]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectAttributesCommand\");\nvar se_GetObjectLegalHoldCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_lh]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectLegalHoldCommand\");\nvar se_GetObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ol]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectLockConfigurationCommand\");\nvar se_GetObjectRetentionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_ret]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectRetentionCommand\");\nvar se_GetObjectTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectTaggingCommand\");\nvar se_GetObjectTorrentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_to]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectTorrentCommand\");\nvar se_GetPublicAccessBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pAB]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetPublicAccessBlockCommand\");\nvar se_HeadBucketCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n b.m(\"HEAD\").h(headers).b(body);\n return b.build();\n}, \"se_HeadBucketCommand\");\nvar se_HeadObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_im]: input[_IM],\n [_ims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMSf]), () => (0, import_smithy_client.dateToUtcString)(input[_IMSf]).toString()],\n [_inm]: input[_INM],\n [_ius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IUS]), () => (0, import_smithy_client.dateToUtcString)(input[_IUS]).toString()],\n [_ra]: input[_R],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xacm]: input[_CM]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_rcc]: [, input[_RCC]],\n [_rcd]: [, input[_RCD]],\n [_rce]: [, input[_RCE]],\n [_rcl]: [, input[_RCL]],\n [_rct]: [, input[_RCT]],\n [_re]: [() => input.ResponseExpires !== void 0, () => (0, import_smithy_client.dateToUtcString)(input[_RE]).toString()],\n [_vI]: [, input[_VI]],\n [_pN]: [() => input.PartNumber !== void 0, () => input[_PN].toString()]\n });\n let body;\n b.m(\"HEAD\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_HeadObjectCommand\");\nvar se_ListBucketAnalyticsConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_xi]: [, \"ListBucketAnalyticsConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketAnalyticsConfigurationsCommand\");\nvar se_ListBucketIntelligentTieringConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_xi]: [, \"ListBucketIntelligentTieringConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketIntelligentTieringConfigurationsCommand\");\nvar se_ListBucketInventoryConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_xi]: [, \"ListBucketInventoryConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketInventoryConfigurationsCommand\");\nvar se_ListBucketMetricsConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_xi]: [, \"ListBucketMetricsConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketMetricsConfigurationsCommand\");\nvar se_ListBucketsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/\");\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"ListBuckets\"],\n [_mb]: [() => input.MaxBuckets !== void 0, () => input[_MB].toString()],\n [_ct_]: [, input[_CTon]],\n [_pr]: [, input[_P]],\n [_br]: [, input[_BR]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketsCommand\");\nvar se_ListDirectoryBucketsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/\");\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"ListDirectoryBuckets\"],\n [_ct_]: [, input[_CTon]],\n [_mdb]: [() => input.MaxDirectoryBuckets !== void 0, () => input[_MDB].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListDirectoryBucketsCommand\");\nvar se_ListMultipartUploadsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_u]: [, \"\"],\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_km]: [, input[_KM]],\n [_mu]: [() => input.MaxUploads !== void 0, () => input[_MU].toString()],\n [_pr]: [, input[_P]],\n [_uim]: [, input[_UIM]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListMultipartUploadsCommand\");\nvar se_ListObjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaooa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OOA]), () => (input[_OOA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_ma]: [, input[_M]],\n [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n [_pr]: [, input[_P]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListObjectsCommand\");\nvar se_ListObjectsV2Command = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaooa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OOA]), () => (input[_OOA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_lt]: [, \"2\"],\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n [_pr]: [, input[_P]],\n [_ct_]: [, input[_CTon]],\n [_fo]: [() => input.FetchOwner !== void 0, () => input[_FO].toString()],\n [_sa]: [, input[_SA]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListObjectsV2Command\");\nvar se_ListObjectVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP],\n [_xaooa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OOA]), () => (input[_OOA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ver]: [, \"\"],\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_km]: [, input[_KM]],\n [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n [_pr]: [, input[_P]],\n [_vim]: [, input[_VIM]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListObjectVersionsCommand\");\nvar se_ListPartsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"ListParts\"],\n [_mp]: [() => input.MaxParts !== void 0, () => input[_MP].toString()],\n [_pnm]: [, input[_PNM]],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListPartsCommand\");\nvar se_PutBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO],\n [_xasca]: input[_CA]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ac]: [, \"\"]\n });\n let body;\n let contents;\n if (input.AccelerateConfiguration !== void 0) {\n contents = se_AccelerateConfiguration(input.AccelerateConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketAccelerateConfigurationCommand\");\nvar se_PutBucketAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaa]: input[_ACL],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagw]: input[_GW],\n [_xagwa]: input[_GWACP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"]\n });\n let body;\n let contents;\n if (input.AccessControlPolicy !== void 0) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketAclCommand\");\nvar se_PutBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.AnalyticsConfiguration !== void 0) {\n contents = se_AnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketAnalyticsConfigurationCommand\");\nvar se_PutBucketCorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_c]: [, \"\"]\n });\n let body;\n let contents;\n if (input.CORSConfiguration !== void 0) {\n contents = se_CORSConfiguration(input.CORSConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketCorsCommand\");\nvar se_PutBucketEncryptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_en]: [, \"\"]\n });\n let body;\n let contents;\n if (input.ServerSideEncryptionConfiguration !== void 0) {\n contents = se_ServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketEncryptionCommand\");\nvar se_PutBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.IntelligentTieringConfiguration !== void 0) {\n contents = se_IntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketIntelligentTieringConfigurationCommand\");\nvar se_PutBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.InventoryConfiguration !== void 0) {\n contents = se_InventoryConfiguration(input.InventoryConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketInventoryConfigurationCommand\");\nvar se_PutBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO],\n [_xatdmos]: input[_TDMOS]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, \"\"]\n });\n let body;\n let contents;\n if (input.LifecycleConfiguration !== void 0) {\n contents = se_BucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n contents = contents.n(\"LifecycleConfiguration\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketLifecycleConfigurationCommand\");\nvar se_PutBucketLoggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_log]: [, \"\"]\n });\n let body;\n let contents;\n if (input.BucketLoggingStatus !== void 0) {\n contents = se_BucketLoggingStatus(input.BucketLoggingStatus, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketLoggingCommand\");\nvar se_PutBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.MetricsConfiguration !== void 0) {\n contents = se_MetricsConfiguration(input.MetricsConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketMetricsConfigurationCommand\");\nvar se_PutBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO],\n [_xasdv]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SDV]), () => input[_SDV].toString()]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, \"\"]\n });\n let body;\n let contents;\n if (input.NotificationConfiguration !== void 0) {\n contents = se_NotificationConfiguration(input.NotificationConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketNotificationConfigurationCommand\");\nvar se_PutBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xaebo]: input[_EBO],\n [_xasca]: input[_CA]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_oC]: [, \"\"]\n });\n let body;\n let contents;\n if (input.OwnershipControls !== void 0) {\n contents = se_OwnershipControls(input.OwnershipControls, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketOwnershipControlsCommand\");\nvar se_PutBucketPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"text/plain\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xacrsba]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CRSBA]), () => input[_CRSBA].toString()],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_p]: [, \"\"]\n });\n let body;\n let contents;\n if (input.Policy !== void 0) {\n contents = input.Policy;\n body = contents;\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketPolicyCommand\");\nvar se_PutBucketReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xabolt]: input[_To],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_r]: [, \"\"]\n });\n let body;\n let contents;\n if (input.ReplicationConfiguration !== void 0) {\n contents = se_ReplicationConfiguration(input.ReplicationConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketReplicationCommand\");\nvar se_PutBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_rP]: [, \"\"]\n });\n let body;\n let contents;\n if (input.RequestPaymentConfiguration !== void 0) {\n contents = se_RequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketRequestPaymentCommand\");\nvar se_PutBucketTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"]\n });\n let body;\n let contents;\n if (input.Tagging !== void 0) {\n contents = se_Tagging(input.Tagging, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketTaggingCommand\");\nvar se_PutBucketVersioningCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xam]: input[_MFA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_v]: [, \"\"]\n });\n let body;\n let contents;\n if (input.VersioningConfiguration !== void 0) {\n contents = se_VersioningConfiguration(input.VersioningConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketVersioningCommand\");\nvar se_PutBucketWebsiteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_w]: [, \"\"]\n });\n let body;\n let contents;\n if (input.WebsiteConfiguration !== void 0) {\n contents = se_WebsiteConfiguration(input.WebsiteConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketWebsiteCommand\");\nvar se_PutObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n [_ct]: input[_CTo] || \"application/octet-stream\",\n [_xaa]: input[_ACL],\n [_cc]: input[_CC],\n [_cd]: input[_CD],\n [_ce]: input[_CE],\n [_cl]: input[_CL],\n [_cl_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CLo]), () => input[_CLo].toString()],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xacc]: input[_CCRC],\n [_xacc_]: input[_CCRCC],\n [_xacc__]: input[_CCRCNVME],\n [_xacs]: input[_CSHA],\n [_xacs_]: input[_CSHAh],\n [_e]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_im]: input[_IM],\n [_inm]: input[_INM],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagwa]: input[_GWACP],\n [_xawob]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_WOB]), () => input[_WOB].toString()],\n [_xasse]: input[_SSE],\n [_xasc]: input[_SC],\n [_xawrl]: input[_WRL],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()],\n [_xarp]: input[_RP],\n [_xat]: input[_T],\n [_xaolm]: input[_OLM],\n [_xaolrud]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]), () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()],\n [_xaollh]: input[_OLLHS],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"PutObject\"]\n });\n let body;\n let contents;\n if (input.Body !== void 0) {\n contents = input.Body;\n body = contents;\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectCommand\");\nvar se_PutObjectAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaa]: input[_ACL],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagw]: input[_GW],\n [_xagwa]: input[_GWACP],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.AccessControlPolicy !== void 0) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectAclCommand\");\nvar se_PutObjectLegalHoldCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_lh]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.LegalHold !== void 0) {\n contents = se_ObjectLockLegalHold(input.LegalHold, context);\n contents = contents.n(\"LegalHold\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectLegalHoldCommand\");\nvar se_PutObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_xabolt]: input[_To],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ol]: [, \"\"]\n });\n let body;\n let contents;\n if (input.ObjectLockConfiguration !== void 0) {\n contents = se_ObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectLockConfigurationCommand\");\nvar se_PutObjectRetentionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_xabgr]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BGR]), () => input[_BGR].toString()],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_ret]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.Retention !== void 0) {\n contents = se_ObjectLockRetention(input.Retention, context);\n contents = contents.n(\"Retention\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectRetentionCommand\");\nvar se_PutObjectTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.Tagging !== void 0) {\n contents = se_Tagging(input.Tagging, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectTaggingCommand\");\nvar se_PutPublicAccessBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pAB]: [, \"\"]\n });\n let body;\n let contents;\n if (input.PublicAccessBlockConfiguration !== void 0) {\n contents = se_PublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutPublicAccessBlockCommand\");\nvar se_RenameObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xars]: input[_RS],\n [_im]: input[_DIM],\n [_inm]: input[_DINM],\n [_ims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_DIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_DIMS]).toString()],\n [_ius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_DIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_DIUS]).toString()],\n [_xarsim]: input[_SIM],\n [_xarsinm]: input[_SINM],\n [_xarsims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_SIMS]).toString()],\n [_xarsius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_SIUS]).toString()],\n [_xact_]: input[_CTl] ?? (0, import_uuid.v4)()\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_rO]: [, \"\"]\n });\n let body;\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RenameObjectCommand\");\nvar se_RestoreObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_res]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.RestoreRequest !== void 0) {\n contents = se_RestoreRequest(input.RestoreRequest, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RestoreObjectCommand\");\nvar se_SelectObjectContentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_se]: [, \"\"],\n [_st]: [, \"2\"]\n });\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_SOCR);\n bn.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n bn.cc(input, _Ex);\n bn.cc(input, _ETx);\n if (input[_IS] != null) {\n bn.c(se_InputSerialization(input[_IS], context).n(_IS));\n }\n if (input[_OS] != null) {\n bn.c(se_OutputSerialization(input[_OS], context).n(_OS));\n }\n if (input[_RPe] != null) {\n bn.c(se_RequestProgress(input[_RPe], context).n(_RPe));\n }\n if (input[_SR] != null) {\n bn.c(se_ScanRange(input[_SR], context).n(_SR));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_SelectObjectContentCommand\");\nvar se_UpdateBucketMetadataInventoryTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mIT]: [, \"\"]\n });\n let body;\n let contents;\n if (input.InventoryTableConfiguration !== void 0) {\n contents = se_InventoryTableConfigurationUpdates(input.InventoryTableConfiguration, context);\n contents = contents.n(\"InventoryTableConfiguration\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateBucketMetadataInventoryTableConfigurationCommand\");\nvar se_UpdateBucketMetadataJournalTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mJT]: [, \"\"]\n });\n let body;\n let contents;\n if (input.JournalTableConfiguration !== void 0) {\n contents = se_JournalTableConfigurationUpdates(input.JournalTableConfiguration, context);\n contents = contents.n(\"JournalTableConfiguration\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateBucketMetadataJournalTableConfigurationCommand\");\nvar se_UploadPartCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n [_cl_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CLo]), () => input[_CLo].toString()],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xacc]: input[_CCRC],\n [_xacc_]: input[_CCRCC],\n [_xacc__]: input[_CCRCNVME],\n [_xacs]: input[_CSHA],\n [_xacs_]: input[_CSHAh],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"UploadPart\"],\n [_pN]: [(0, import_smithy_client.expectNonNull)(input.PartNumber, `PartNumber`) != null, () => input[_PN].toString()],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n let contents;\n if (input.Body !== void 0) {\n contents = input.Body;\n body = contents;\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UploadPartCommand\");\nvar se_UploadPartCopyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xacs__]: input[_CS],\n [_xacsim]: input[_CSIM],\n [_xacsims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIMS]).toString()],\n [_xacsinm]: input[_CSINM],\n [_xacsius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIUS]).toString()],\n [_xacsr]: input[_CSR],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xacssseca]: input[_CSSSECA],\n [_xacssseck]: input[_CSSSECK],\n [_xacssseckm]: input[_CSSSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xasebo]: input[_ESBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"UploadPartCopy\"],\n [_pN]: [(0, import_smithy_client.expectNonNull)(input.PartNumber, `PartNumber`) != null, () => input[_PN].toString()],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UploadPartCopyCommand\");\nvar se_WriteGetObjectResponseCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\",\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n \"content-type\": \"application/octet-stream\",\n [_xarr]: input[_RR],\n [_xart]: input[_RT],\n [_xafs]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SCt]), () => input[_SCt].toString()],\n [_xafec]: input[_EC],\n [_xafem]: input[_EM],\n [_xafhar]: input[_AR],\n [_xafhcc]: input[_CC],\n [_xafhcd]: input[_CD],\n [_xafhce]: input[_CE],\n [_xafhcl]: input[_CL],\n [_cl_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CLo]), () => input[_CLo].toString()],\n [_xafhcr]: input[_CR],\n [_xafhct]: input[_CTo],\n [_xafhxacc]: input[_CCRC],\n [_xafhxacc_]: input[_CCRCC],\n [_xafhxacc__]: input[_CCRCNVME],\n [_xafhxacs]: input[_CSHA],\n [_xafhxacs_]: input[_CSHAh],\n [_xafhxadm]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_DM]), () => input[_DM].toString()],\n [_xafhe]: input[_ETa],\n [_xafhe_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_xafhxae]: input[_Exp],\n [_xafhlm]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_LM]), () => (0, import_smithy_client.dateToUtcString)(input[_LM]).toString()],\n [_xafhxamm]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_MM]), () => input[_MM].toString()],\n [_xafhxaolm]: input[_OLM],\n [_xafhxaollh]: input[_OLLHS],\n [_xafhxaolrud]: [\n () => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]),\n () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()\n ],\n [_xafhxampc]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_PC]), () => input[_PC].toString()],\n [_xafhxars]: input[_RSe],\n [_xafhxarc]: input[_RC],\n [_xafhxar]: input[_Re],\n [_xafhxasse]: input[_SSE],\n [_xafhxasseca]: input[_SSECA],\n [_xafhxasseakki]: input[_SSEKMSKI],\n [_xafhxasseckm]: input[_SSECKMD],\n [_xafhxasc]: input[_SC],\n [_xafhxatc]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_TC]), () => input[_TC].toString()],\n [_xafhxavi]: input[_VI],\n [_xafhxassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()]\n });\n b.bp(\"/WriteGetObjectResponse\");\n let body;\n let contents;\n if (input.Body !== void 0) {\n contents = input.Body;\n body = contents;\n }\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"{RequestRoute}.\" + resolvedHostname;\n if (input.RequestRoute === void 0) {\n throw new Error(\"Empty value provided for input host prefix: RequestRoute.\");\n }\n resolvedHostname = resolvedHostname.replace(\"{RequestRoute}\", input.RequestRoute);\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n b.hn(resolvedHostname);\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_WriteGetObjectResponseCommand\");\nvar de_AbortMultipartUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_AbortMultipartUploadCommand\");\nvar de_CompleteMultipartUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_Exp]: [, output.headers[_xae]],\n [_SSE]: [, output.headers[_xasse]],\n [_VI]: [, output.headers[_xavi]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(data[_CCRC]);\n }\n if (data[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(data[_CCRCC]);\n }\n if (data[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(data[_CCRCNVME]);\n }\n if (data[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(data[_CSHA]);\n }\n if (data[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(data[_CSHAh]);\n }\n if (data[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(data[_CT]);\n }\n if (data[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(data[_ETa]);\n }\n if (data[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(data[_K]);\n }\n if (data[_L] != null) {\n contents[_L] = (0, import_smithy_client.expectString)(data[_L]);\n }\n return contents;\n}, \"de_CompleteMultipartUploadCommand\");\nvar de_CopyObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_Exp]: [, output.headers[_xae]],\n [_CSVI]: [, output.headers[_xacsvi]],\n [_VI]: [, output.headers[_xavi]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.CopyObjectResult = de_CopyObjectResult(data, context);\n return contents;\n}, \"de_CopyObjectCommand\");\nvar de_CreateBucketCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_lo]],\n [_BA]: [, output.headers[_xaba]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_CreateBucketCommand\");\nvar de_CreateBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_CreateBucketMetadataConfigurationCommand\");\nvar de_CreateBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_CreateBucketMetadataTableConfigurationCommand\");\nvar de_CreateMultipartUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_AD]: [\n () => void 0 !== output.headers[_xaad],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_xaad]))\n ],\n [_ARI]: [, output.headers[_xaari]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]],\n [_CA]: [, output.headers[_xaca]],\n [_CT]: [, output.headers[_xact]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(data[_K]);\n }\n if (data[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(data[_UI]);\n }\n return contents;\n}, \"de_CreateMultipartUploadCommand\");\nvar de_CreateSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_SSE]: [, output.headers[_xasse]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_C] != null) {\n contents[_C] = de_SessionCredentials(data[_C], context);\n }\n return contents;\n}, \"de_CreateSessionCommand\");\nvar de_DeleteBucketCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketCommand\");\nvar de_DeleteBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketAnalyticsConfigurationCommand\");\nvar de_DeleteBucketCorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketCorsCommand\");\nvar de_DeleteBucketEncryptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketEncryptionCommand\");\nvar de_DeleteBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketIntelligentTieringConfigurationCommand\");\nvar de_DeleteBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketInventoryConfigurationCommand\");\nvar de_DeleteBucketLifecycleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketLifecycleCommand\");\nvar de_DeleteBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketMetadataConfigurationCommand\");\nvar de_DeleteBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketMetadataTableConfigurationCommand\");\nvar de_DeleteBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketMetricsConfigurationCommand\");\nvar de_DeleteBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketOwnershipControlsCommand\");\nvar de_DeleteBucketPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketPolicyCommand\");\nvar de_DeleteBucketReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketReplicationCommand\");\nvar de_DeleteBucketTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketTaggingCommand\");\nvar de_DeleteBucketWebsiteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketWebsiteCommand\");\nvar de_DeleteObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_VI]: [, output.headers[_xavi]],\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteObjectCommand\");\nvar de_DeleteObjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Deleted === \"\") {\n contents[_De] = [];\n } else if (data[_De] != null) {\n contents[_De] = de_DeletedObjects((0, import_smithy_client.getArrayIfSingleItem)(data[_De]), context);\n }\n if (data.Error === \"\") {\n contents[_Err] = [];\n } else if (data[_Er] != null) {\n contents[_Err] = de_Errors((0, import_smithy_client.getArrayIfSingleItem)(data[_Er]), context);\n }\n return contents;\n}, \"de_DeleteObjectsCommand\");\nvar de_DeleteObjectTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_VI]: [, output.headers[_xavi]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteObjectTaggingCommand\");\nvar de_DeletePublicAccessBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeletePublicAccessBlockCommand\");\nvar de_GetBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(data[_S]);\n }\n return contents;\n}, \"de_GetBucketAccelerateConfigurationCommand\");\nvar de_GetBucketAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents[_Gr] = [];\n } else if (data[_ACLc] != null && data[_ACLc][_G] != null) {\n contents[_Gr] = de_Grants((0, import_smithy_client.getArrayIfSingleItem)(data[_ACLc][_G]), context);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n return contents;\n}, \"de_GetBucketAclCommand\");\nvar de_GetBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.AnalyticsConfiguration = de_AnalyticsConfiguration(data, context);\n return contents;\n}, \"de_GetBucketAnalyticsConfigurationCommand\");\nvar de_GetBucketCorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CORSRule === \"\") {\n contents[_CORSRu] = [];\n } else if (data[_CORSR] != null) {\n contents[_CORSRu] = de_CORSRules((0, import_smithy_client.getArrayIfSingleItem)(data[_CORSR]), context);\n }\n return contents;\n}, \"de_GetBucketCorsCommand\");\nvar de_GetBucketEncryptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.ServerSideEncryptionConfiguration = de_ServerSideEncryptionConfiguration(data, context);\n return contents;\n}, \"de_GetBucketEncryptionCommand\");\nvar de_GetBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.IntelligentTieringConfiguration = de_IntelligentTieringConfiguration(data, context);\n return contents;\n}, \"de_GetBucketIntelligentTieringConfigurationCommand\");\nvar de_GetBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.InventoryConfiguration = de_InventoryConfiguration(data, context);\n return contents;\n}, \"de_GetBucketInventoryConfigurationCommand\");\nvar de_GetBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_TDMOS]: [, output.headers[_xatdmos]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Rule === \"\") {\n contents[_Rul] = [];\n } else if (data[_Ru] != null) {\n contents[_Rul] = de_LifecycleRules((0, import_smithy_client.getArrayIfSingleItem)(data[_Ru]), context);\n }\n return contents;\n}, \"de_GetBucketLifecycleConfigurationCommand\");\nvar de_GetBucketLocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_LC] != null) {\n contents[_LC] = (0, import_smithy_client.expectString)(data[_LC]);\n }\n return contents;\n}, \"de_GetBucketLocationCommand\");\nvar de_GetBucketLoggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_LE] != null) {\n contents[_LE] = de_LoggingEnabled(data[_LE], context);\n }\n return contents;\n}, \"de_GetBucketLoggingCommand\");\nvar de_GetBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.GetBucketMetadataConfigurationResult = de_GetBucketMetadataConfigurationResult(data, context);\n return contents;\n}, \"de_GetBucketMetadataConfigurationCommand\");\nvar de_GetBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.GetBucketMetadataTableConfigurationResult = de_GetBucketMetadataTableConfigurationResult(data, context);\n return contents;\n}, \"de_GetBucketMetadataTableConfigurationCommand\");\nvar de_GetBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.MetricsConfiguration = de_MetricsConfiguration(data, context);\n return contents;\n}, \"de_GetBucketMetricsConfigurationCommand\");\nvar de_GetBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_EBC] != null) {\n contents[_EBC] = de_EventBridgeConfiguration(data[_EBC], context);\n }\n if (data.CloudFunctionConfiguration === \"\") {\n contents[_LFC] = [];\n } else if (data[_CFC] != null) {\n contents[_LFC] = de_LambdaFunctionConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_CFC]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents[_QCu] = [];\n } else if (data[_QC] != null) {\n contents[_QCu] = de_QueueConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_QC]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents[_TCop] = [];\n } else if (data[_TCo] != null) {\n contents[_TCop] = de_TopicConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_TCo]), context);\n }\n return contents;\n}, \"de_GetBucketNotificationConfigurationCommand\");\nvar de_GetBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.OwnershipControls = de_OwnershipControls(data, context);\n return contents;\n}, \"de_GetBucketOwnershipControlsCommand\");\nvar de_GetBucketPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = await collectBodyString(output.body, context);\n contents.Policy = (0, import_smithy_client.expectString)(data);\n return contents;\n}, \"de_GetBucketPolicyCommand\");\nvar de_GetBucketPolicyStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.PolicyStatus = de_PolicyStatus(data, context);\n return contents;\n}, \"de_GetBucketPolicyStatusCommand\");\nvar de_GetBucketReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.ReplicationConfiguration = de_ReplicationConfiguration(data, context);\n return contents;\n}, \"de_GetBucketReplicationCommand\");\nvar de_GetBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Pa] != null) {\n contents[_Pa] = (0, import_smithy_client.expectString)(data[_Pa]);\n }\n return contents;\n}, \"de_GetBucketRequestPaymentCommand\");\nvar de_GetBucketTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents[_TS] = [];\n } else if (data[_TS] != null && data[_TS][_Ta] != null) {\n contents[_TS] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(data[_TS][_Ta]), context);\n }\n return contents;\n}, \"de_GetBucketTaggingCommand\");\nvar de_GetBucketVersioningCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_MDf] != null) {\n contents[_MFAD] = (0, import_smithy_client.expectString)(data[_MDf]);\n }\n if (data[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(data[_S]);\n }\n return contents;\n}, \"de_GetBucketVersioningCommand\");\nvar de_GetBucketWebsiteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_ED] != null) {\n contents[_ED] = de_ErrorDocument(data[_ED], context);\n }\n if (data[_ID] != null) {\n contents[_ID] = de_IndexDocument(data[_ID], context);\n }\n if (data[_RART] != null) {\n contents[_RART] = de_RedirectAllRequestsTo(data[_RART], context);\n }\n if (data.RoutingRules === \"\") {\n contents[_RRo] = [];\n } else if (data[_RRo] != null && data[_RRo][_RRou] != null) {\n contents[_RRo] = de_RoutingRules((0, import_smithy_client.getArrayIfSingleItem)(data[_RRo][_RRou]), context);\n }\n return contents;\n}, \"de_GetBucketWebsiteCommand\");\nvar de_GetObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_AR]: [, output.headers[_ar]],\n [_Exp]: [, output.headers[_xae]],\n [_Re]: [, output.headers[_xar]],\n [_LM]: [() => void 0 !== output.headers[_lm], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_lm]))],\n [_CLo]: [() => void 0 !== output.headers[_cl_], () => (0, import_smithy_client.strictParseLong)(output.headers[_cl_])],\n [_ETa]: [, output.headers[_eta]],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_CT]: [, output.headers[_xact]],\n [_MM]: [() => void 0 !== output.headers[_xamm], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xamm])],\n [_VI]: [, output.headers[_xavi]],\n [_CC]: [, output.headers[_cc]],\n [_CD]: [, output.headers[_cd]],\n [_CE]: [, output.headers[_ce]],\n [_CL]: [, output.headers[_cl]],\n [_CR]: [, output.headers[_cr]],\n [_CTo]: [, output.headers[_ct]],\n [_E]: [() => void 0 !== output.headers[_e], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_e]))],\n [_ES]: [, output.headers[_ex]],\n [_WRL]: [, output.headers[_xawrl]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_SC]: [, output.headers[_xasc]],\n [_RC]: [, output.headers[_xarc]],\n [_RSe]: [, output.headers[_xars_]],\n [_PC]: [() => void 0 !== output.headers[_xampc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xampc])],\n [_TC]: [() => void 0 !== output.headers[_xatc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xatc])],\n [_OLM]: [, output.headers[_xaolm]],\n [_OLRUD]: [\n () => void 0 !== output.headers[_xaolrud],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output.headers[_xaolrud]))\n ],\n [_OLLHS]: [, output.headers[_xaollh]],\n Metadata: [\n ,\n Object.keys(output.headers).filter((header) => header.startsWith(\"x-amz-meta-\")).reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {})\n ]\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n}, \"de_GetObjectCommand\");\nvar de_GetObjectAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents[_Gr] = [];\n } else if (data[_ACLc] != null && data[_ACLc][_G] != null) {\n contents[_Gr] = de_Grants((0, import_smithy_client.getArrayIfSingleItem)(data[_ACLc][_G]), context);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n return contents;\n}, \"de_GetObjectAclCommand\");\nvar de_GetObjectAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_LM]: [() => void 0 !== output.headers[_lm], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_lm]))],\n [_VI]: [, output.headers[_xavi]],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Ch] != null) {\n contents[_Ch] = de_Checksum(data[_Ch], context);\n }\n if (data[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(data[_ETa]);\n }\n if (data[_OP] != null) {\n contents[_OP] = de_GetObjectAttributesParts(data[_OP], context);\n }\n if (data[_OSb] != null) {\n contents[_OSb] = (0, import_smithy_client.strictParseLong)(data[_OSb]);\n }\n if (data[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(data[_SC]);\n }\n return contents;\n}, \"de_GetObjectAttributesCommand\");\nvar de_GetObjectLegalHoldCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.LegalHold = de_ObjectLockLegalHold(data, context);\n return contents;\n}, \"de_GetObjectLegalHoldCommand\");\nvar de_GetObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.ObjectLockConfiguration = de_ObjectLockConfiguration(data, context);\n return contents;\n}, \"de_GetObjectLockConfigurationCommand\");\nvar de_GetObjectRetentionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.Retention = de_ObjectLockRetention(data, context);\n return contents;\n}, \"de_GetObjectRetentionCommand\");\nvar de_GetObjectTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_VI]: [, output.headers[_xavi]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents[_TS] = [];\n } else if (data[_TS] != null && data[_TS][_Ta] != null) {\n contents[_TS] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(data[_TS][_Ta]), context);\n }\n return contents;\n}, \"de_GetObjectTaggingCommand\");\nvar de_GetObjectTorrentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n}, \"de_GetObjectTorrentCommand\");\nvar de_GetPublicAccessBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.PublicAccessBlockConfiguration = de_PublicAccessBlockConfiguration(data, context);\n return contents;\n}, \"de_GetPublicAccessBlockCommand\");\nvar de_HeadBucketCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_BA]: [, output.headers[_xaba]],\n [_BLT]: [, output.headers[_xablt]],\n [_BLN]: [, output.headers[_xabln]],\n [_BR]: [, output.headers[_xabr]],\n [_APA]: [() => void 0 !== output.headers[_xaapa], () => (0, import_smithy_client.parseBoolean)(output.headers[_xaapa])]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_HeadBucketCommand\");\nvar de_HeadObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_AR]: [, output.headers[_ar]],\n [_Exp]: [, output.headers[_xae]],\n [_Re]: [, output.headers[_xar]],\n [_AS]: [, output.headers[_xaas]],\n [_LM]: [() => void 0 !== output.headers[_lm], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_lm]))],\n [_CLo]: [() => void 0 !== output.headers[_cl_], () => (0, import_smithy_client.strictParseLong)(output.headers[_cl_])],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_CT]: [, output.headers[_xact]],\n [_ETa]: [, output.headers[_eta]],\n [_MM]: [() => void 0 !== output.headers[_xamm], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xamm])],\n [_VI]: [, output.headers[_xavi]],\n [_CC]: [, output.headers[_cc]],\n [_CD]: [, output.headers[_cd]],\n [_CE]: [, output.headers[_ce]],\n [_CL]: [, output.headers[_cl]],\n [_CTo]: [, output.headers[_ct]],\n [_CR]: [, output.headers[_cr]],\n [_E]: [() => void 0 !== output.headers[_e], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_e]))],\n [_ES]: [, output.headers[_ex]],\n [_WRL]: [, output.headers[_xawrl]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_SC]: [, output.headers[_xasc]],\n [_RC]: [, output.headers[_xarc]],\n [_RSe]: [, output.headers[_xars_]],\n [_PC]: [() => void 0 !== output.headers[_xampc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xampc])],\n [_TC]: [() => void 0 !== output.headers[_xatc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xatc])],\n [_OLM]: [, output.headers[_xaolm]],\n [_OLRUD]: [\n () => void 0 !== output.headers[_xaolrud],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output.headers[_xaolrud]))\n ],\n [_OLLHS]: [, output.headers[_xaollh]],\n Metadata: [\n ,\n Object.keys(output.headers).filter((header) => header.startsWith(\"x-amz-meta-\")).reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {})\n ]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_HeadObjectCommand\");\nvar de_ListBucketAnalyticsConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.AnalyticsConfiguration === \"\") {\n contents[_ACLn] = [];\n } else if (data[_AC] != null) {\n contents[_ACLn] = de_AnalyticsConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_AC]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketAnalyticsConfigurationsCommand\");\nvar de_ListBucketIntelligentTieringConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents[_ITCL] = [];\n } else if (data[_ITC] != null) {\n contents[_ITCL] = de_IntelligentTieringConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_ITC]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketIntelligentTieringConfigurationsCommand\");\nvar de_ListBucketInventoryConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data.InventoryConfiguration === \"\") {\n contents[_ICL] = [];\n } else if (data[_IC] != null) {\n contents[_ICL] = de_InventoryConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_IC]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketInventoryConfigurationsCommand\");\nvar de_ListBucketMetricsConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data.MetricsConfiguration === \"\") {\n contents[_MCL] = [];\n } else if (data[_MC] != null) {\n contents[_MCL] = de_MetricsConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_MC]), context);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketMetricsConfigurationsCommand\");\nvar de_ListBucketsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Buckets === \"\") {\n contents[_Bu] = [];\n } else if (data[_Bu] != null && data[_Bu][_B] != null) {\n contents[_Bu] = de_Buckets((0, import_smithy_client.getArrayIfSingleItem)(data[_Bu][_B]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n return contents;\n}, \"de_ListBucketsCommand\");\nvar de_ListDirectoryBucketsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Buckets === \"\") {\n contents[_Bu] = [];\n } else if (data[_Bu] != null && data[_Bu][_B] != null) {\n contents[_Bu] = de_Buckets((0, import_smithy_client.getArrayIfSingleItem)(data[_Bu][_B]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n return contents;\n}, \"de_ListDirectoryBucketsCommand\");\nvar de_ListMultipartUploadsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_KM] != null) {\n contents[_KM] = (0, import_smithy_client.expectString)(data[_KM]);\n }\n if (data[_MU] != null) {\n contents[_MU] = (0, import_smithy_client.strictParseInt32)(data[_MU]);\n }\n if (data[_NKM] != null) {\n contents[_NKM] = (0, import_smithy_client.expectString)(data[_NKM]);\n }\n if (data[_NUIM] != null) {\n contents[_NUIM] = (0, import_smithy_client.expectString)(data[_NUIM]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n if (data[_UIM] != null) {\n contents[_UIM] = (0, import_smithy_client.expectString)(data[_UIM]);\n }\n if (data.Upload === \"\") {\n contents[_Up] = [];\n } else if (data[_U] != null) {\n contents[_Up] = de_MultipartUploadList((0, import_smithy_client.getArrayIfSingleItem)(data[_U]), context);\n }\n return contents;\n}, \"de_ListMultipartUploadsCommand\");\nvar de_ListObjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data.Contents === \"\") {\n contents[_Co] = [];\n } else if (data[_Co] != null) {\n contents[_Co] = de_ObjectList((0, import_smithy_client.getArrayIfSingleItem)(data[_Co]), context);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MK] != null) {\n contents[_MK] = (0, import_smithy_client.strictParseInt32)(data[_MK]);\n }\n if (data[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(data[_N]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n return contents;\n}, \"de_ListObjectsCommand\");\nvar de_ListObjectsV2Command = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data.Contents === \"\") {\n contents[_Co] = [];\n } else if (data[_Co] != null) {\n contents[_Co] = de_ObjectList((0, import_smithy_client.getArrayIfSingleItem)(data[_Co]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_KC] != null) {\n contents[_KC] = (0, import_smithy_client.strictParseInt32)(data[_KC]);\n }\n if (data[_MK] != null) {\n contents[_MK] = (0, import_smithy_client.strictParseInt32)(data[_MK]);\n }\n if (data[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(data[_N]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n if (data[_SA] != null) {\n contents[_SA] = (0, import_smithy_client.expectString)(data[_SA]);\n }\n return contents;\n}, \"de_ListObjectsV2Command\");\nvar de_ListObjectVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents[_DMe] = [];\n } else if (data[_DM] != null) {\n contents[_DMe] = de_DeleteMarkers((0, import_smithy_client.getArrayIfSingleItem)(data[_DM]), context);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_KM] != null) {\n contents[_KM] = (0, import_smithy_client.expectString)(data[_KM]);\n }\n if (data[_MK] != null) {\n contents[_MK] = (0, import_smithy_client.strictParseInt32)(data[_MK]);\n }\n if (data[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(data[_N]);\n }\n if (data[_NKM] != null) {\n contents[_NKM] = (0, import_smithy_client.expectString)(data[_NKM]);\n }\n if (data[_NVIM] != null) {\n contents[_NVIM] = (0, import_smithy_client.expectString)(data[_NVIM]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n if (data[_VIM] != null) {\n contents[_VIM] = (0, import_smithy_client.expectString)(data[_VIM]);\n }\n if (data.Version === \"\") {\n contents[_Ve] = [];\n } else if (data[_V] != null) {\n contents[_Ve] = de_ObjectVersionList((0, import_smithy_client.getArrayIfSingleItem)(data[_V]), context);\n }\n return contents;\n}, \"de_ListObjectVersionsCommand\");\nvar de_ListPartsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_AD]: [\n () => void 0 !== output.headers[_xaad],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_xaad]))\n ],\n [_ARI]: [, output.headers[_xaari]],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data[_CA] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(data[_CA]);\n }\n if (data[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(data[_CT]);\n }\n if (data[_In] != null) {\n contents[_In] = de_Initiator(data[_In], context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(data[_K]);\n }\n if (data[_MP] != null) {\n contents[_MP] = (0, import_smithy_client.strictParseInt32)(data[_MP]);\n }\n if (data[_NPNM] != null) {\n contents[_NPNM] = (0, import_smithy_client.expectString)(data[_NPNM]);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n if (data[_PNM] != null) {\n contents[_PNM] = (0, import_smithy_client.expectString)(data[_PNM]);\n }\n if (data.Part === \"\") {\n contents[_Part] = [];\n } else if (data[_Par] != null) {\n contents[_Part] = de_Parts((0, import_smithy_client.getArrayIfSingleItem)(data[_Par]), context);\n }\n if (data[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(data[_SC]);\n }\n if (data[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(data[_UI]);\n }\n return contents;\n}, \"de_ListPartsCommand\");\nvar de_PutBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketAccelerateConfigurationCommand\");\nvar de_PutBucketAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketAclCommand\");\nvar de_PutBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketAnalyticsConfigurationCommand\");\nvar de_PutBucketCorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketCorsCommand\");\nvar de_PutBucketEncryptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketEncryptionCommand\");\nvar de_PutBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketIntelligentTieringConfigurationCommand\");\nvar de_PutBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketInventoryConfigurationCommand\");\nvar de_PutBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_TDMOS]: [, output.headers[_xatdmos]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketLifecycleConfigurationCommand\");\nvar de_PutBucketLoggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketLoggingCommand\");\nvar de_PutBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketMetricsConfigurationCommand\");\nvar de_PutBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketNotificationConfigurationCommand\");\nvar de_PutBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketOwnershipControlsCommand\");\nvar de_PutBucketPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketPolicyCommand\");\nvar de_PutBucketReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketReplicationCommand\");\nvar de_PutBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketRequestPaymentCommand\");\nvar de_PutBucketTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketTaggingCommand\");\nvar de_PutBucketVersioningCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketVersioningCommand\");\nvar de_PutBucketWebsiteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketWebsiteCommand\");\nvar de_PutObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_Exp]: [, output.headers[_xae]],\n [_ETa]: [, output.headers[_eta]],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_CT]: [, output.headers[_xact]],\n [_SSE]: [, output.headers[_xasse]],\n [_VI]: [, output.headers[_xavi]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_Si]: [() => void 0 !== output.headers[_xaos], () => (0, import_smithy_client.strictParseLong)(output.headers[_xaos])],\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectCommand\");\nvar de_PutObjectAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectAclCommand\");\nvar de_PutObjectLegalHoldCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectLegalHoldCommand\");\nvar de_PutObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectLockConfigurationCommand\");\nvar de_PutObjectRetentionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectRetentionCommand\");\nvar de_PutObjectTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_VI]: [, output.headers[_xavi]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectTaggingCommand\");\nvar de_PutPublicAccessBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutPublicAccessBlockCommand\");\nvar de_RenameObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RenameObjectCommand\");\nvar de_RestoreObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]],\n [_ROP]: [, output.headers[_xarop]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RestoreObjectCommand\");\nvar de_SelectObjectContentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = output.body;\n contents.Payload = de_SelectObjectContentEventStream(data, context);\n return contents;\n}, \"de_SelectObjectContentCommand\");\nvar de_UpdateBucketMetadataInventoryTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UpdateBucketMetadataInventoryTableConfigurationCommand\");\nvar de_UpdateBucketMetadataJournalTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UpdateBucketMetadataJournalTableConfigurationCommand\");\nvar de_UploadPartCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_SSE]: [, output.headers[_xasse]],\n [_ETa]: [, output.headers[_eta]],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UploadPartCommand\");\nvar de_UploadPartCopyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_CSVI]: [, output.headers[_xacsvi]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.CopyPartResult = de_CopyPartResult(data, context);\n return contents;\n}, \"de_UploadPartCopyCommand\");\nvar de_WriteGetObjectResponseCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_WriteGetObjectResponseCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core.loadRestXmlErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchUpload\":\n case \"com.amazonaws.s3#NoSuchUpload\":\n throw await de_NoSuchUploadRes(parsedOutput, context);\n case \"ObjectNotInActiveTierError\":\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\":\n throw await de_ObjectNotInActiveTierErrorRes(parsedOutput, context);\n case \"BucketAlreadyExists\":\n case \"com.amazonaws.s3#BucketAlreadyExists\":\n throw await de_BucketAlreadyExistsRes(parsedOutput, context);\n case \"BucketAlreadyOwnedByYou\":\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\":\n throw await de_BucketAlreadyOwnedByYouRes(parsedOutput, context);\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await de_NoSuchBucketRes(parsedOutput, context);\n case \"InvalidObjectState\":\n case \"com.amazonaws.s3#InvalidObjectState\":\n throw await de_InvalidObjectStateRes(parsedOutput, context);\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await de_NotFoundRes(parsedOutput, context);\n case \"EncryptionTypeMismatch\":\n case \"com.amazonaws.s3#EncryptionTypeMismatch\":\n throw await de_EncryptionTypeMismatchRes(parsedOutput, context);\n case \"InvalidRequest\":\n case \"com.amazonaws.s3#InvalidRequest\":\n throw await de_InvalidRequestRes(parsedOutput, context);\n case \"InvalidWriteOffset\":\n case \"com.amazonaws.s3#InvalidWriteOffset\":\n throw await de_InvalidWriteOffsetRes(parsedOutput, context);\n case \"TooManyParts\":\n case \"com.amazonaws.s3#TooManyParts\":\n throw await de_TooManyPartsRes(parsedOutput, context);\n case \"IdempotencyParameterMismatch\":\n case \"com.amazonaws.s3#IdempotencyParameterMismatch\":\n throw await de_IdempotencyParameterMismatchRes(parsedOutput, context);\n case \"ObjectAlreadyInActiveTierError\":\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\":\n throw await de_ObjectAlreadyInActiveTierErrorRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(S3ServiceException);\nvar de_BucketAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_BucketAlreadyExistsRes\");\nvar de_BucketAlreadyOwnedByYouRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyOwnedByYou({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_BucketAlreadyOwnedByYouRes\");\nvar de_EncryptionTypeMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new EncryptionTypeMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EncryptionTypeMismatchRes\");\nvar de_IdempotencyParameterMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new IdempotencyParameterMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_IdempotencyParameterMismatchRes\");\nvar de_InvalidObjectStateRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n if (data[_AT] != null) {\n contents[_AT] = (0, import_smithy_client.expectString)(data[_AT]);\n }\n if (data[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(data[_SC]);\n }\n const exception = new InvalidObjectState({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidObjectStateRes\");\nvar de_InvalidRequestRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new InvalidRequest({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestRes\");\nvar de_InvalidWriteOffsetRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new InvalidWriteOffset({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidWriteOffsetRes\");\nvar de_NoSuchBucketRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NoSuchBucket({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NoSuchBucketRes\");\nvar de_NoSuchKeyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NoSuchKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NoSuchKeyRes\");\nvar de_NoSuchUploadRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NoSuchUpload({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NoSuchUploadRes\");\nvar de_NotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NotFoundRes\");\nvar de_ObjectAlreadyInActiveTierErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new ObjectAlreadyInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ObjectAlreadyInActiveTierErrorRes\");\nvar de_ObjectNotInActiveTierErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new ObjectNotInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ObjectNotInActiveTierErrorRes\");\nvar de_TooManyPartsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new TooManyParts({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyPartsRes\");\nvar de_SelectObjectContentEventStream = /* @__PURE__ */ __name((output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"Records\"] != null) {\n return {\n Records: await de_RecordsEvent_event(event[\"Records\"], context)\n };\n }\n if (event[\"Stats\"] != null) {\n return {\n Stats: await de_StatsEvent_event(event[\"Stats\"], context)\n };\n }\n if (event[\"Progress\"] != null) {\n return {\n Progress: await de_ProgressEvent_event(event[\"Progress\"], context)\n };\n }\n if (event[\"Cont\"] != null) {\n return {\n Cont: await de_ContinuationEvent_event(event[\"Cont\"], context)\n };\n }\n if (event[\"End\"] != null) {\n return {\n End: await de_EndEvent_event(event[\"End\"], context)\n };\n }\n return { $unknown: event };\n });\n}, \"de_SelectObjectContentEventStream\");\nvar de_ContinuationEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n Object.assign(contents, de_ContinuationEvent(data, context));\n return contents;\n}, \"de_ContinuationEvent_event\");\nvar de_EndEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n Object.assign(contents, de_EndEvent(data, context));\n return contents;\n}, \"de_EndEvent_event\");\nvar de_ProgressEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n contents.Details = de_Progress(data, context);\n return contents;\n}, \"de_ProgressEvent_event\");\nvar de_RecordsEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n contents.Payload = output.body;\n return contents;\n}, \"de_RecordsEvent_event\");\nvar de_StatsEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n contents.Details = de_Stats(data, context);\n return contents;\n}, \"de_StatsEvent_event\");\nvar se_AbortIncompleteMultipartUpload = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AIMU);\n if (input[_DAI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DAI, String(input[_DAI])).n(_DAI));\n }\n return bn;\n}, \"se_AbortIncompleteMultipartUpload\");\nvar se_AccelerateConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ACc);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BAS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_AccelerateConfiguration\");\nvar se_AccessControlPolicy = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ACP);\n bn.lc(input, \"Grants\", \"AccessControlList\", () => se_Grants(input[_Gr], context));\n if (input[_O] != null) {\n bn.c(se_Owner(input[_O], context).n(_O));\n }\n return bn;\n}, \"se_AccessControlPolicy\");\nvar se_AccessControlTranslation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ACT);\n if (input[_O] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OOw, input[_O]).n(_O));\n }\n return bn;\n}, \"se_AccessControlTranslation\");\nvar se_AllowedHeaders = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_AH, entry);\n return n.n(_me);\n });\n}, \"se_AllowedHeaders\");\nvar se_AllowedMethods = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_AM, entry);\n return n.n(_me);\n });\n}, \"se_AllowedMethods\");\nvar se_AllowedOrigins = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_AO, entry);\n return n.n(_me);\n });\n}, \"se_AllowedOrigins\");\nvar se_AnalyticsAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_AnalyticsAndOperator\");\nvar se_AnalyticsConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AI, input[_I]).n(_I));\n }\n if (input[_F] != null) {\n bn.c(se_AnalyticsFilter(input[_F], context).n(_F));\n }\n if (input[_SCA] != null) {\n bn.c(se_StorageClassAnalysis(input[_SCA], context).n(_SCA));\n }\n return bn;\n}, \"se_AnalyticsConfiguration\");\nvar se_AnalyticsExportDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AED);\n if (input[_SBD] != null) {\n bn.c(se_AnalyticsS3BucketDestination(input[_SBD], context).n(_SBD));\n }\n return bn;\n}, \"se_AnalyticsExportDestination\");\nvar se_AnalyticsFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AF);\n AnalyticsFilter.visit(input, {\n Prefix: /* @__PURE__ */ __name((value) => {\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, value).n(_P));\n }\n }, \"Prefix\"),\n Tag: /* @__PURE__ */ __name((value) => {\n if (input[_Ta] != null) {\n bn.c(se_Tag(value, context).n(_Ta));\n }\n }, \"Tag\"),\n And: /* @__PURE__ */ __name((value) => {\n if (input[_A] != null) {\n bn.c(se_AnalyticsAndOperator(value, context).n(_A));\n }\n }, \"And\"),\n _: /* @__PURE__ */ __name((name, value) => {\n if (!(value instanceof import_xml_builder.XmlNode || value instanceof import_xml_builder.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bn.c(new import_xml_builder.XmlNode(name).c(value));\n }, \"_\")\n });\n return bn;\n}, \"se_AnalyticsFilter\");\nvar se_AnalyticsS3BucketDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ASBD);\n if (input[_Fo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ASEFF, input[_Fo]).n(_Fo));\n }\n if (input[_BAI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AIc, input[_BAI]).n(_BAI));\n }\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BN, input[_B]).n(_B));\n }\n bn.cc(input, _P);\n return bn;\n}, \"se_AnalyticsS3BucketDestination\");\nvar se_BucketInfo = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_BI);\n bn.cc(input, _DR);\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BT, input[_Ty]).n(_Ty));\n }\n return bn;\n}, \"se_BucketInfo\");\nvar se_BucketLifecycleConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_BLC);\n bn.l(input, \"Rules\", \"Rule\", () => se_LifecycleRules(input[_Rul], context));\n return bn;\n}, \"se_BucketLifecycleConfiguration\");\nvar se_BucketLoggingStatus = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_BLS);\n if (input[_LE] != null) {\n bn.c(se_LoggingEnabled(input[_LE], context).n(_LE));\n }\n return bn;\n}, \"se_BucketLoggingStatus\");\nvar se_CompletedMultipartUpload = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CMU);\n bn.l(input, \"Parts\", \"Part\", () => se_CompletedPartList(input[_Part], context));\n return bn;\n}, \"se_CompletedMultipartUpload\");\nvar se_CompletedPart = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CPo);\n bn.cc(input, _ETa);\n bn.cc(input, _CCRC);\n bn.cc(input, _CCRCC);\n bn.cc(input, _CCRCNVME);\n bn.cc(input, _CSHA);\n bn.cc(input, _CSHAh);\n if (input[_PN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_PN, String(input[_PN])).n(_PN));\n }\n return bn;\n}, \"se_CompletedPart\");\nvar se_CompletedPartList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_CompletedPart(entry, context);\n return n.n(_me);\n });\n}, \"se_CompletedPartList\");\nvar se_Condition = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Con);\n bn.cc(input, _HECRE);\n bn.cc(input, _KPE);\n return bn;\n}, \"se_Condition\");\nvar se_CORSConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CORSC);\n bn.l(input, \"CORSRules\", \"CORSRule\", () => se_CORSRules(input[_CORSRu], context));\n return bn;\n}, \"se_CORSConfiguration\");\nvar se_CORSRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CORSR);\n bn.cc(input, _ID_);\n bn.l(input, \"AllowedHeaders\", \"AllowedHeader\", () => se_AllowedHeaders(input[_AHl], context));\n bn.l(input, \"AllowedMethods\", \"AllowedMethod\", () => se_AllowedMethods(input[_AMl], context));\n bn.l(input, \"AllowedOrigins\", \"AllowedOrigin\", () => se_AllowedOrigins(input[_AOl], context));\n bn.l(input, \"ExposeHeaders\", \"ExposeHeader\", () => se_ExposeHeaders(input[_EH], context));\n if (input[_MAS] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MAS, String(input[_MAS])).n(_MAS));\n }\n return bn;\n}, \"se_CORSRule\");\nvar se_CORSRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_CORSRule(entry, context);\n return n.n(_me);\n });\n}, \"se_CORSRules\");\nvar se_CreateBucketConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CBC);\n if (input[_LC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BLCu, input[_LC]).n(_LC));\n }\n if (input[_L] != null) {\n bn.c(se_LocationInfo(input[_L], context).n(_L));\n }\n if (input[_B] != null) {\n bn.c(se_BucketInfo(input[_B], context).n(_B));\n }\n bn.lc(input, \"Tags\", \"Tags\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_CreateBucketConfiguration\");\nvar se_CSVInput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CSVIn);\n bn.cc(input, _FHI);\n bn.cc(input, _Com);\n bn.cc(input, _QEC);\n bn.cc(input, _RD);\n bn.cc(input, _FD);\n bn.cc(input, _QCuo);\n if (input[_AQRD] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AQRD, String(input[_AQRD])).n(_AQRD));\n }\n return bn;\n}, \"se_CSVInput\");\nvar se_CSVOutput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CSVO);\n bn.cc(input, _QF);\n bn.cc(input, _QEC);\n bn.cc(input, _RD);\n bn.cc(input, _FD);\n bn.cc(input, _QCuo);\n return bn;\n}, \"se_CSVOutput\");\nvar se_DefaultRetention = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_DRe);\n if (input[_Mo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OLRM, input[_Mo]).n(_Mo));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_Y] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Y, String(input[_Y])).n(_Y));\n }\n return bn;\n}, \"se_DefaultRetention\");\nvar se_Delete = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Del);\n bn.l(input, \"Objects\", \"Object\", () => se_ObjectIdentifierList(input[_Ob], context));\n if (input[_Q] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Q, String(input[_Q])).n(_Q));\n }\n return bn;\n}, \"se_Delete\");\nvar se_DeleteMarkerReplication = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_DMR);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DMRS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_DeleteMarkerReplication\");\nvar se_Destination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Des);\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BN, input[_B]).n(_B));\n }\n if (input[_Ac] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AIc, input[_Ac]).n(_Ac));\n }\n bn.cc(input, _SC);\n if (input[_ACT] != null) {\n bn.c(se_AccessControlTranslation(input[_ACT], context).n(_ACT));\n }\n if (input[_ECn] != null) {\n bn.c(se_EncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n if (input[_RTe] != null) {\n bn.c(se_ReplicationTime(input[_RTe], context).n(_RTe));\n }\n if (input[_Me] != null) {\n bn.c(se_Metrics(input[_Me], context).n(_Me));\n }\n return bn;\n}, \"se_Destination\");\nvar se_Encryption = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_En);\n if (input[_ETn] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSE, input[_ETn]).n(_ETn));\n }\n if (input[_KMSKI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSEKMSKI, input[_KMSKI]).n(_KMSKI));\n }\n bn.cc(input, _KMSC);\n return bn;\n}, \"se_Encryption\");\nvar se_EncryptionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ECn);\n bn.cc(input, _RKKID);\n return bn;\n}, \"se_EncryptionConfiguration\");\nvar se_ErrorDocument = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ED);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OK, input[_K]).n(_K));\n }\n return bn;\n}, \"se_ErrorDocument\");\nvar se_EventBridgeConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_EBC);\n return bn;\n}, \"se_EventBridgeConfiguration\");\nvar se_EventList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_Ev, entry);\n return n.n(_me);\n });\n}, \"se_EventList\");\nvar se_ExistingObjectReplication = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_EOR);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_EORS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_ExistingObjectReplication\");\nvar se_ExposeHeaders = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_EHx, entry);\n return n.n(_me);\n });\n}, \"se_ExposeHeaders\");\nvar se_FilterRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_FR);\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FRN, input[_N]).n(_N));\n }\n if (input[_Va] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FRV, input[_Va]).n(_Va));\n }\n return bn;\n}, \"se_FilterRule\");\nvar se_FilterRuleList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_FilterRule(entry, context);\n return n.n(_me);\n });\n}, \"se_FilterRuleList\");\nvar se_GlacierJobParameters = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_GJP);\n bn.cc(input, _Ti);\n return bn;\n}, \"se_GlacierJobParameters\");\nvar se_Grant = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_G);\n if (input[_Gra] != null) {\n const n = se_Grantee(input[_Gra], context).n(_Gra);\n n.a(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bn.c(n);\n }\n bn.cc(input, _Pe);\n return bn;\n}, \"se_Grant\");\nvar se_Grantee = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Gra);\n bn.cc(input, _DN);\n bn.cc(input, _EA);\n bn.cc(input, _ID_);\n bn.cc(input, _URI);\n bn.a(\"xsi:type\", input[_Ty]);\n return bn;\n}, \"se_Grantee\");\nvar se_Grants = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Grant(entry, context);\n return n.n(_G);\n });\n}, \"se_Grants\");\nvar se_IndexDocument = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ID);\n bn.cc(input, _Su);\n return bn;\n}, \"se_IndexDocument\");\nvar se_InputSerialization = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IS);\n if (input[_CSV] != null) {\n bn.c(se_CSVInput(input[_CSV], context).n(_CSV));\n }\n bn.cc(input, _CTom);\n if (input[_JSON] != null) {\n bn.c(se_JSONInput(input[_JSON], context).n(_JSON));\n }\n if (input[_Parq] != null) {\n bn.c(se_ParquetInput(input[_Parq], context).n(_Parq));\n }\n return bn;\n}, \"se_InputSerialization\");\nvar se_IntelligentTieringAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_IntelligentTieringAndOperator\");\nvar se_IntelligentTieringConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITI, input[_I]).n(_I));\n }\n if (input[_F] != null) {\n bn.c(se_IntelligentTieringFilter(input[_F], context).n(_F));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITS, input[_S]).n(_S));\n }\n bn.l(input, \"Tierings\", \"Tiering\", () => se_TieringList(input[_Tie], context));\n return bn;\n}, \"se_IntelligentTieringConfiguration\");\nvar se_IntelligentTieringFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITF);\n bn.cc(input, _P);\n if (input[_Ta] != null) {\n bn.c(se_Tag(input[_Ta], context).n(_Ta));\n }\n if (input[_A] != null) {\n bn.c(se_IntelligentTieringAndOperator(input[_A], context).n(_A));\n }\n return bn;\n}, \"se_IntelligentTieringFilter\");\nvar se_InventoryConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IC);\n if (input[_Des] != null) {\n bn.c(se_InventoryDestination(input[_Des], context).n(_Des));\n }\n if (input[_IE] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IE, String(input[_IE])).n(_IE));\n }\n if (input[_F] != null) {\n bn.c(se_InventoryFilter(input[_F], context).n(_F));\n }\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_II, input[_I]).n(_I));\n }\n if (input[_IOV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IIOV, input[_IOV]).n(_IOV));\n }\n bn.lc(input, \"OptionalFields\", \"OptionalFields\", () => se_InventoryOptionalFields(input[_OF], context));\n if (input[_Sc] != null) {\n bn.c(se_InventorySchedule(input[_Sc], context).n(_Sc));\n }\n return bn;\n}, \"se_InventoryConfiguration\");\nvar se_InventoryDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IDn);\n if (input[_SBD] != null) {\n bn.c(se_InventoryS3BucketDestination(input[_SBD], context).n(_SBD));\n }\n return bn;\n}, \"se_InventoryDestination\");\nvar se_InventoryEncryption = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IEn);\n if (input[_SSES] != null) {\n bn.c(se_SSES3(input[_SSES], context).n(_SS));\n }\n if (input[_SSEKMS] != null) {\n bn.c(se_SSEKMS(input[_SSEKMS], context).n(_SK));\n }\n return bn;\n}, \"se_InventoryEncryption\");\nvar se_InventoryFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IF);\n bn.cc(input, _P);\n return bn;\n}, \"se_InventoryFilter\");\nvar se_InventoryOptionalFields = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_IOF, entry);\n return n.n(_Fi);\n });\n}, \"se_InventoryOptionalFields\");\nvar se_InventoryS3BucketDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ISBD);\n bn.cc(input, _AIc);\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BN, input[_B]).n(_B));\n }\n if (input[_Fo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IFn, input[_Fo]).n(_Fo));\n }\n bn.cc(input, _P);\n if (input[_En] != null) {\n bn.c(se_InventoryEncryption(input[_En], context).n(_En));\n }\n return bn;\n}, \"se_InventoryS3BucketDestination\");\nvar se_InventorySchedule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ISn);\n if (input[_Fr] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IFnv, input[_Fr]).n(_Fr));\n }\n return bn;\n}, \"se_InventorySchedule\");\nvar se_InventoryTableConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITCn);\n if (input[_CSo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ICS, input[_CSo]).n(_CSo));\n }\n if (input[_ECn] != null) {\n bn.c(se_MetadataTableEncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n return bn;\n}, \"se_InventoryTableConfiguration\");\nvar se_InventoryTableConfigurationUpdates = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITCU);\n if (input[_CSo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ICS, input[_CSo]).n(_CSo));\n }\n if (input[_ECn] != null) {\n bn.c(se_MetadataTableEncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n return bn;\n}, \"se_InventoryTableConfigurationUpdates\");\nvar se_JournalTableConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JTC);\n if (input[_REe] != null) {\n bn.c(se_RecordExpiration(input[_REe], context).n(_REe));\n }\n if (input[_ECn] != null) {\n bn.c(se_MetadataTableEncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n return bn;\n}, \"se_JournalTableConfiguration\");\nvar se_JournalTableConfigurationUpdates = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JTCU);\n if (input[_REe] != null) {\n bn.c(se_RecordExpiration(input[_REe], context).n(_REe));\n }\n return bn;\n}, \"se_JournalTableConfigurationUpdates\");\nvar se_JSONInput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JSONI);\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_JSONT, input[_Ty]).n(_Ty));\n }\n return bn;\n}, \"se_JSONInput\");\nvar se_JSONOutput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JSONO);\n bn.cc(input, _RD);\n return bn;\n}, \"se_JSONOutput\");\nvar se_LambdaFunctionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LFCa);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_NI, input[_I]).n(_I));\n }\n if (input[_LFA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LFA, input[_LFA]).n(_CF));\n }\n bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n if (input[_F] != null) {\n bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_LambdaFunctionConfiguration\");\nvar se_LambdaFunctionConfigurationList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_LambdaFunctionConfiguration(entry, context);\n return n.n(_me);\n });\n}, \"se_LambdaFunctionConfigurationList\");\nvar se_LifecycleExpiration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LEi);\n if (input[_Dat] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Dat, (0, import_smithy_client.serializeDateTime)(input[_Dat]).toString()).n(_Dat));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_EODM] != null) {\n bn.c(import_xml_builder.XmlNode.of(_EODM, String(input[_EODM])).n(_EODM));\n }\n return bn;\n}, \"se_LifecycleExpiration\");\nvar se_LifecycleRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LR);\n if (input[_Exp] != null) {\n bn.c(se_LifecycleExpiration(input[_Exp], context).n(_Exp));\n }\n bn.cc(input, _ID_);\n bn.cc(input, _P);\n if (input[_F] != null) {\n bn.c(se_LifecycleRuleFilter(input[_F], context).n(_F));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESx, input[_S]).n(_S));\n }\n bn.l(input, \"Transitions\", \"Transition\", () => se_TransitionList(input[_Tr], context));\n bn.l(\n input,\n \"NoncurrentVersionTransitions\",\n \"NoncurrentVersionTransition\",\n () => se_NoncurrentVersionTransitionList(input[_NVT], context)\n );\n if (input[_NVE] != null) {\n bn.c(se_NoncurrentVersionExpiration(input[_NVE], context).n(_NVE));\n }\n if (input[_AIMU] != null) {\n bn.c(se_AbortIncompleteMultipartUpload(input[_AIMU], context).n(_AIMU));\n }\n return bn;\n}, \"se_LifecycleRule\");\nvar se_LifecycleRuleAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LRAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n if (input[_OSGT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSGTB, String(input[_OSGT])).n(_OSGT));\n }\n if (input[_OSLT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSLTB, String(input[_OSLT])).n(_OSLT));\n }\n return bn;\n}, \"se_LifecycleRuleAndOperator\");\nvar se_LifecycleRuleFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LRF);\n bn.cc(input, _P);\n if (input[_Ta] != null) {\n bn.c(se_Tag(input[_Ta], context).n(_Ta));\n }\n if (input[_OSGT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSGTB, String(input[_OSGT])).n(_OSGT));\n }\n if (input[_OSLT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSLTB, String(input[_OSLT])).n(_OSLT));\n }\n if (input[_A] != null) {\n bn.c(se_LifecycleRuleAndOperator(input[_A], context).n(_A));\n }\n return bn;\n}, \"se_LifecycleRuleFilter\");\nvar se_LifecycleRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_LifecycleRule(entry, context);\n return n.n(_me);\n });\n}, \"se_LifecycleRules\");\nvar se_LocationInfo = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LI);\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LT, input[_Ty]).n(_Ty));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LNAS, input[_N]).n(_N));\n }\n return bn;\n}, \"se_LocationInfo\");\nvar se_LoggingEnabled = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LE);\n bn.cc(input, _TB);\n bn.lc(input, \"TargetGrants\", \"TargetGrants\", () => se_TargetGrants(input[_TG], context));\n bn.cc(input, _TP);\n if (input[_TOKF] != null) {\n bn.c(se_TargetObjectKeyFormat(input[_TOKF], context).n(_TOKF));\n }\n return bn;\n}, \"se_LoggingEnabled\");\nvar se_MetadataConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MCe);\n if (input[_JTC] != null) {\n bn.c(se_JournalTableConfiguration(input[_JTC], context).n(_JTC));\n }\n if (input[_ITCn] != null) {\n bn.c(se_InventoryTableConfiguration(input[_ITCn], context).n(_ITCn));\n }\n return bn;\n}, \"se_MetadataConfiguration\");\nvar se_MetadataEntry = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ME);\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MKe, input[_N]).n(_N));\n }\n if (input[_Va] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MV, input[_Va]).n(_Va));\n }\n return bn;\n}, \"se_MetadataEntry\");\nvar se_MetadataTableConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MTC);\n if (input[_STD] != null) {\n bn.c(se_S3TablesDestination(input[_STD], context).n(_STD));\n }\n return bn;\n}, \"se_MetadataTableConfiguration\");\nvar se_MetadataTableEncryptionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MTEC);\n if (input[_SAs] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TSA, input[_SAs]).n(_SAs));\n }\n bn.cc(input, _KKA);\n return bn;\n}, \"se_MetadataTableEncryptionConfiguration\");\nvar se_Metrics = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Me);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MS, input[_S]).n(_S));\n }\n if (input[_ETv] != null) {\n bn.c(se_ReplicationTimeValue(input[_ETv], context).n(_ETv));\n }\n return bn;\n}, \"se_Metrics\");\nvar se_MetricsAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n bn.cc(input, _APAc);\n return bn;\n}, \"se_MetricsAndOperator\");\nvar se_MetricsConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MI, input[_I]).n(_I));\n }\n if (input[_F] != null) {\n bn.c(se_MetricsFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_MetricsConfiguration\");\nvar se_MetricsFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MF);\n MetricsFilter.visit(input, {\n Prefix: /* @__PURE__ */ __name((value) => {\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, value).n(_P));\n }\n }, \"Prefix\"),\n Tag: /* @__PURE__ */ __name((value) => {\n if (input[_Ta] != null) {\n bn.c(se_Tag(value, context).n(_Ta));\n }\n }, \"Tag\"),\n AccessPointArn: /* @__PURE__ */ __name((value) => {\n if (input[_APAc] != null) {\n bn.c(import_xml_builder.XmlNode.of(_APAc, value).n(_APAc));\n }\n }, \"AccessPointArn\"),\n And: /* @__PURE__ */ __name((value) => {\n if (input[_A] != null) {\n bn.c(se_MetricsAndOperator(value, context).n(_A));\n }\n }, \"And\"),\n _: /* @__PURE__ */ __name((name, value) => {\n if (!(value instanceof import_xml_builder.XmlNode || value instanceof import_xml_builder.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bn.c(new import_xml_builder.XmlNode(name).c(value));\n }, \"_\")\n });\n return bn;\n}, \"se_MetricsFilter\");\nvar se_NoncurrentVersionExpiration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NVE);\n if (input[_ND] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_ND])).n(_ND));\n }\n if (input[_NNV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_VC, String(input[_NNV])).n(_NNV));\n }\n return bn;\n}, \"se_NoncurrentVersionExpiration\");\nvar se_NoncurrentVersionTransition = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NVTo);\n if (input[_ND] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_ND])).n(_ND));\n }\n if (input[_SC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TSC, input[_SC]).n(_SC));\n }\n if (input[_NNV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_VC, String(input[_NNV])).n(_NNV));\n }\n return bn;\n}, \"se_NoncurrentVersionTransition\");\nvar se_NoncurrentVersionTransitionList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_NoncurrentVersionTransition(entry, context);\n return n.n(_me);\n });\n}, \"se_NoncurrentVersionTransitionList\");\nvar se_NotificationConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NC);\n bn.l(input, \"TopicConfigurations\", \"TopicConfiguration\", () => se_TopicConfigurationList(input[_TCop], context));\n bn.l(input, \"QueueConfigurations\", \"QueueConfiguration\", () => se_QueueConfigurationList(input[_QCu], context));\n bn.l(\n input,\n \"LambdaFunctionConfigurations\",\n \"CloudFunctionConfiguration\",\n () => se_LambdaFunctionConfigurationList(input[_LFC], context)\n );\n if (input[_EBC] != null) {\n bn.c(se_EventBridgeConfiguration(input[_EBC], context).n(_EBC));\n }\n return bn;\n}, \"se_NotificationConfiguration\");\nvar se_NotificationConfigurationFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NCF);\n if (input[_K] != null) {\n bn.c(se_S3KeyFilter(input[_K], context).n(_SKe));\n }\n return bn;\n}, \"se_NotificationConfigurationFilter\");\nvar se_ObjectIdentifier = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OI);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OK, input[_K]).n(_K));\n }\n if (input[_VI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OVI, input[_VI]).n(_VI));\n }\n bn.cc(input, _ETa);\n if (input[_LMT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LMT, (0, import_smithy_client.dateToUtcString)(input[_LMT]).toString()).n(_LMT));\n }\n if (input[_Si] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Si, String(input[_Si])).n(_Si));\n }\n return bn;\n}, \"se_ObjectIdentifier\");\nvar se_ObjectIdentifierList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ObjectIdentifier(entry, context);\n return n.n(_me);\n });\n}, \"se_ObjectIdentifierList\");\nvar se_ObjectLockConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLC);\n bn.cc(input, _OLE);\n if (input[_Ru] != null) {\n bn.c(se_ObjectLockRule(input[_Ru], context).n(_Ru));\n }\n return bn;\n}, \"se_ObjectLockConfiguration\");\nvar se_ObjectLockLegalHold = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLLH);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OLLHS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_ObjectLockLegalHold\");\nvar se_ObjectLockRetention = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLR);\n if (input[_Mo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OLRM, input[_Mo]).n(_Mo));\n }\n if (input[_RUD] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Dat, (0, import_smithy_client.serializeDateTime)(input[_RUD]).toString()).n(_RUD));\n }\n return bn;\n}, \"se_ObjectLockRetention\");\nvar se_ObjectLockRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLRb);\n if (input[_DRe] != null) {\n bn.c(se_DefaultRetention(input[_DRe], context).n(_DRe));\n }\n return bn;\n}, \"se_ObjectLockRule\");\nvar se_OutputLocation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OL);\n if (input[_S_] != null) {\n bn.c(se_S3Location(input[_S_], context).n(_S_));\n }\n return bn;\n}, \"se_OutputLocation\");\nvar se_OutputSerialization = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OS);\n if (input[_CSV] != null) {\n bn.c(se_CSVOutput(input[_CSV], context).n(_CSV));\n }\n if (input[_JSON] != null) {\n bn.c(se_JSONOutput(input[_JSON], context).n(_JSON));\n }\n return bn;\n}, \"se_OutputSerialization\");\nvar se_Owner = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_O);\n bn.cc(input, _DN);\n bn.cc(input, _ID_);\n return bn;\n}, \"se_Owner\");\nvar se_OwnershipControls = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OC);\n bn.l(input, \"Rules\", \"Rule\", () => se_OwnershipControlsRules(input[_Rul], context));\n return bn;\n}, \"se_OwnershipControls\");\nvar se_OwnershipControlsRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OCR);\n bn.cc(input, _OO);\n return bn;\n}, \"se_OwnershipControlsRule\");\nvar se_OwnershipControlsRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_OwnershipControlsRule(entry, context);\n return n.n(_me);\n });\n}, \"se_OwnershipControlsRules\");\nvar se_ParquetInput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_PI);\n return bn;\n}, \"se_ParquetInput\");\nvar se_PartitionedPrefix = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_PP);\n bn.cc(input, _PDS);\n return bn;\n}, \"se_PartitionedPrefix\");\nvar se_PublicAccessBlockConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_PABC);\n if (input[_BPA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_BPA])).n(_BPA));\n }\n if (input[_IPA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_IPA])).n(_IPA));\n }\n if (input[_BPP] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_BPP])).n(_BPP));\n }\n if (input[_RPB] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_RPB])).n(_RPB));\n }\n return bn;\n}, \"se_PublicAccessBlockConfiguration\");\nvar se_QueueConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_QC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_NI, input[_I]).n(_I));\n }\n if (input[_QA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_QA, input[_QA]).n(_Qu));\n }\n bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n if (input[_F] != null) {\n bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_QueueConfiguration\");\nvar se_QueueConfigurationList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_QueueConfiguration(entry, context);\n return n.n(_me);\n });\n}, \"se_QueueConfigurationList\");\nvar se_RecordExpiration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_REe);\n if (input[_Exp] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESxp, input[_Exp]).n(_Exp));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RED, String(input[_Da])).n(_Da));\n }\n return bn;\n}, \"se_RecordExpiration\");\nvar se_Redirect = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Red);\n bn.cc(input, _HN);\n bn.cc(input, _HRC);\n bn.cc(input, _Pr);\n bn.cc(input, _RKPW);\n bn.cc(input, _RKW);\n return bn;\n}, \"se_Redirect\");\nvar se_RedirectAllRequestsTo = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RART);\n bn.cc(input, _HN);\n bn.cc(input, _Pr);\n return bn;\n}, \"se_RedirectAllRequestsTo\");\nvar se_ReplicaModifications = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RM);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RMS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_ReplicaModifications\");\nvar se_ReplicationConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RCe);\n bn.cc(input, _Ro);\n bn.l(input, \"Rules\", \"Rule\", () => se_ReplicationRules(input[_Rul], context));\n return bn;\n}, \"se_ReplicationConfiguration\");\nvar se_ReplicationRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRe);\n bn.cc(input, _ID_);\n if (input[_Pri] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Pri, String(input[_Pri])).n(_Pri));\n }\n bn.cc(input, _P);\n if (input[_F] != null) {\n bn.c(se_ReplicationRuleFilter(input[_F], context).n(_F));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRS, input[_S]).n(_S));\n }\n if (input[_SSC] != null) {\n bn.c(se_SourceSelectionCriteria(input[_SSC], context).n(_SSC));\n }\n if (input[_EOR] != null) {\n bn.c(se_ExistingObjectReplication(input[_EOR], context).n(_EOR));\n }\n if (input[_Des] != null) {\n bn.c(se_Destination(input[_Des], context).n(_Des));\n }\n if (input[_DMR] != null) {\n bn.c(se_DeleteMarkerReplication(input[_DMR], context).n(_DMR));\n }\n return bn;\n}, \"se_ReplicationRule\");\nvar se_ReplicationRuleAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_ReplicationRuleAndOperator\");\nvar se_ReplicationRuleFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRF);\n bn.cc(input, _P);\n if (input[_Ta] != null) {\n bn.c(se_Tag(input[_Ta], context).n(_Ta));\n }\n if (input[_A] != null) {\n bn.c(se_ReplicationRuleAndOperator(input[_A], context).n(_A));\n }\n return bn;\n}, \"se_ReplicationRuleFilter\");\nvar se_ReplicationRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ReplicationRule(entry, context);\n return n.n(_me);\n });\n}, \"se_ReplicationRules\");\nvar se_ReplicationTime = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RTe);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RTS, input[_S]).n(_S));\n }\n if (input[_Tim] != null) {\n bn.c(se_ReplicationTimeValue(input[_Tim], context).n(_Tim));\n }\n return bn;\n}, \"se_ReplicationTime\");\nvar se_ReplicationTimeValue = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RTV);\n if (input[_Mi] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Mi, String(input[_Mi])).n(_Mi));\n }\n return bn;\n}, \"se_ReplicationTimeValue\");\nvar se_RequestPaymentConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RPC);\n bn.cc(input, _Pa);\n return bn;\n}, \"se_RequestPaymentConfiguration\");\nvar se_RequestProgress = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RPe);\n if (input[_Ena] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ERP, String(input[_Ena])).n(_Ena));\n }\n return bn;\n}, \"se_RequestProgress\");\nvar se_RestoreRequest = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRes);\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_GJP] != null) {\n bn.c(se_GlacierJobParameters(input[_GJP], context).n(_GJP));\n }\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRT, input[_Ty]).n(_Ty));\n }\n bn.cc(input, _Ti);\n bn.cc(input, _Desc);\n if (input[_SP] != null) {\n bn.c(se_SelectParameters(input[_SP], context).n(_SP));\n }\n if (input[_OL] != null) {\n bn.c(se_OutputLocation(input[_OL], context).n(_OL));\n }\n return bn;\n}, \"se_RestoreRequest\");\nvar se_RoutingRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRou);\n if (input[_Con] != null) {\n bn.c(se_Condition(input[_Con], context).n(_Con));\n }\n if (input[_Red] != null) {\n bn.c(se_Redirect(input[_Red], context).n(_Red));\n }\n return bn;\n}, \"se_RoutingRule\");\nvar se_RoutingRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_RoutingRule(entry, context);\n return n.n(_RRou);\n });\n}, \"se_RoutingRules\");\nvar se_S3KeyFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SKF);\n bn.l(input, \"FilterRules\", \"FilterRule\", () => se_FilterRuleList(input[_FRi], context));\n return bn;\n}, \"se_S3KeyFilter\");\nvar se_S3Location = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SL);\n bn.cc(input, _BN);\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LP, input[_P]).n(_P));\n }\n if (input[_En] != null) {\n bn.c(se_Encryption(input[_En], context).n(_En));\n }\n if (input[_CACL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OCACL, input[_CACL]).n(_CACL));\n }\n bn.lc(input, \"AccessControlList\", \"AccessControlList\", () => se_Grants(input[_ACLc], context));\n if (input[_T] != null) {\n bn.c(se_Tagging(input[_T], context).n(_T));\n }\n bn.lc(input, \"UserMetadata\", \"UserMetadata\", () => se_UserMetadata(input[_UM], context));\n bn.cc(input, _SC);\n return bn;\n}, \"se_S3Location\");\nvar se_S3TablesDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_STD);\n if (input[_TBA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_STBA, input[_TBA]).n(_TBA));\n }\n if (input[_TN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_STN, input[_TN]).n(_TN));\n }\n return bn;\n}, \"se_S3TablesDestination\");\nvar se_ScanRange = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SR);\n if (input[_St] != null) {\n bn.c(import_xml_builder.XmlNode.of(_St, String(input[_St])).n(_St));\n }\n if (input[_End] != null) {\n bn.c(import_xml_builder.XmlNode.of(_End, String(input[_End])).n(_End));\n }\n return bn;\n}, \"se_ScanRange\");\nvar se_SelectParameters = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SP);\n if (input[_IS] != null) {\n bn.c(se_InputSerialization(input[_IS], context).n(_IS));\n }\n bn.cc(input, _ETx);\n bn.cc(input, _Ex);\n if (input[_OS] != null) {\n bn.c(se_OutputSerialization(input[_OS], context).n(_OS));\n }\n return bn;\n}, \"se_SelectParameters\");\nvar se_ServerSideEncryptionByDefault = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSEBD);\n if (input[_SSEA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSE, input[_SSEA]).n(_SSEA));\n }\n if (input[_KMSMKID] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSEKMSKI, input[_KMSMKID]).n(_KMSMKID));\n }\n return bn;\n}, \"se_ServerSideEncryptionByDefault\");\nvar se_ServerSideEncryptionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSEC);\n bn.l(input, \"Rules\", \"Rule\", () => se_ServerSideEncryptionRules(input[_Rul], context));\n return bn;\n}, \"se_ServerSideEncryptionConfiguration\");\nvar se_ServerSideEncryptionRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSER);\n if (input[_ASSEBD] != null) {\n bn.c(se_ServerSideEncryptionByDefault(input[_ASSEBD], context).n(_ASSEBD));\n }\n if (input[_BKE] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BKE, String(input[_BKE])).n(_BKE));\n }\n return bn;\n}, \"se_ServerSideEncryptionRule\");\nvar se_ServerSideEncryptionRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ServerSideEncryptionRule(entry, context);\n return n.n(_me);\n });\n}, \"se_ServerSideEncryptionRules\");\nvar se_SimplePrefix = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SPi);\n return bn;\n}, \"se_SimplePrefix\");\nvar se_SourceSelectionCriteria = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSC);\n if (input[_SKEO] != null) {\n bn.c(se_SseKmsEncryptedObjects(input[_SKEO], context).n(_SKEO));\n }\n if (input[_RM] != null) {\n bn.c(se_ReplicaModifications(input[_RM], context).n(_RM));\n }\n return bn;\n}, \"se_SourceSelectionCriteria\");\nvar se_SSEKMS = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SK);\n if (input[_KI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSEKMSKI, input[_KI]).n(_KI));\n }\n return bn;\n}, \"se_SSEKMS\");\nvar se_SseKmsEncryptedObjects = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SKEO);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKEOS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_SseKmsEncryptedObjects\");\nvar se_SSES3 = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SS);\n return bn;\n}, \"se_SSES3\");\nvar se_StorageClassAnalysis = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SCA);\n if (input[_DE] != null) {\n bn.c(se_StorageClassAnalysisDataExport(input[_DE], context).n(_DE));\n }\n return bn;\n}, \"se_StorageClassAnalysis\");\nvar se_StorageClassAnalysisDataExport = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SCADE);\n if (input[_OSV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SCASV, input[_OSV]).n(_OSV));\n }\n if (input[_Des] != null) {\n bn.c(se_AnalyticsExportDestination(input[_Des], context).n(_Des));\n }\n return bn;\n}, \"se_StorageClassAnalysisDataExport\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Ta);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OK, input[_K]).n(_K));\n }\n bn.cc(input, _Va);\n return bn;\n}, \"se_Tag\");\nvar se_Tagging = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_T);\n bn.lc(input, \"TagSet\", \"TagSet\", () => se_TagSet(input[_TS], context));\n return bn;\n}, \"se_Tagging\");\nvar se_TagSet = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Tag(entry, context);\n return n.n(_Ta);\n });\n}, \"se_TagSet\");\nvar se_TargetGrant = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_TGa);\n if (input[_Gra] != null) {\n const n = se_Grantee(input[_Gra], context).n(_Gra);\n n.a(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bn.c(n);\n }\n if (input[_Pe] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BLP, input[_Pe]).n(_Pe));\n }\n return bn;\n}, \"se_TargetGrant\");\nvar se_TargetGrants = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_TargetGrant(entry, context);\n return n.n(_G);\n });\n}, \"se_TargetGrants\");\nvar se_TargetObjectKeyFormat = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_TOKF);\n if (input[_SPi] != null) {\n bn.c(se_SimplePrefix(input[_SPi], context).n(_SPi));\n }\n if (input[_PP] != null) {\n bn.c(se_PartitionedPrefix(input[_PP], context).n(_PP));\n }\n return bn;\n}, \"se_TargetObjectKeyFormat\");\nvar se_Tiering = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Tier);\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITD, String(input[_Da])).n(_Da));\n }\n if (input[_AT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITAT, input[_AT]).n(_AT));\n }\n return bn;\n}, \"se_Tiering\");\nvar se_TieringList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Tiering(entry, context);\n return n.n(_me);\n });\n}, \"se_TieringList\");\nvar se_TopicConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_TCo);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_NI, input[_I]).n(_I));\n }\n if (input[_TA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TA, input[_TA]).n(_Top));\n }\n bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n if (input[_F] != null) {\n bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_TopicConfiguration\");\nvar se_TopicConfigurationList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_TopicConfiguration(entry, context);\n return n.n(_me);\n });\n}, \"se_TopicConfigurationList\");\nvar se_Transition = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Tra);\n if (input[_Dat] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Dat, (0, import_smithy_client.serializeDateTime)(input[_Dat]).toString()).n(_Dat));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_SC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TSC, input[_SC]).n(_SC));\n }\n return bn;\n}, \"se_Transition\");\nvar se_TransitionList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Transition(entry, context);\n return n.n(_me);\n });\n}, \"se_TransitionList\");\nvar se_UserMetadata = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_MetadataEntry(entry, context);\n return n.n(_ME);\n });\n}, \"se_UserMetadata\");\nvar se_VersioningConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_VCe);\n if (input[_MFAD] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MFAD, input[_MFAD]).n(_MDf));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BVS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_VersioningConfiguration\");\nvar se_WebsiteConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_WC);\n if (input[_ED] != null) {\n bn.c(se_ErrorDocument(input[_ED], context).n(_ED));\n }\n if (input[_ID] != null) {\n bn.c(se_IndexDocument(input[_ID], context).n(_ID));\n }\n if (input[_RART] != null) {\n bn.c(se_RedirectAllRequestsTo(input[_RART], context).n(_RART));\n }\n bn.lc(input, \"RoutingRules\", \"RoutingRules\", () => se_RoutingRules(input[_RRo], context));\n return bn;\n}, \"se_WebsiteConfiguration\");\nvar de_AbortIncompleteMultipartUpload = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DAI] != null) {\n contents[_DAI] = (0, import_smithy_client.strictParseInt32)(output[_DAI]);\n }\n return contents;\n}, \"de_AbortIncompleteMultipartUpload\");\nvar de_AccessControlTranslation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_O] != null) {\n contents[_O] = (0, import_smithy_client.expectString)(output[_O]);\n }\n return contents;\n}, \"de_AccessControlTranslation\");\nvar de_AllowedHeaders = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedHeaders\");\nvar de_AllowedMethods = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedMethods\");\nvar de_AllowedOrigins = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedOrigins\");\nvar de_AnalyticsAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n return contents;\n}, \"de_AnalyticsAndOperator\");\nvar de_AnalyticsConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output.Filter === \"\") {\n } else if (output[_F] != null) {\n contents[_F] = de_AnalyticsFilter((0, import_smithy_client.expectUnion)(output[_F]), context);\n }\n if (output[_SCA] != null) {\n contents[_SCA] = de_StorageClassAnalysis(output[_SCA], context);\n }\n return contents;\n}, \"de_AnalyticsConfiguration\");\nvar de_AnalyticsConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AnalyticsConfiguration(entry, context);\n });\n}, \"de_AnalyticsConfigurationList\");\nvar de_AnalyticsExportDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SBD] != null) {\n contents[_SBD] = de_AnalyticsS3BucketDestination(output[_SBD], context);\n }\n return contents;\n}, \"de_AnalyticsExportDestination\");\nvar de_AnalyticsFilter = /* @__PURE__ */ __name((output, context) => {\n if (output[_P] != null) {\n return {\n Prefix: (0, import_smithy_client.expectString)(output[_P])\n };\n }\n if (output[_Ta] != null) {\n return {\n Tag: de_Tag(output[_Ta], context)\n };\n }\n if (output[_A] != null) {\n return {\n And: de_AnalyticsAndOperator(output[_A], context)\n };\n }\n return { $unknown: Object.entries(output)[0] };\n}, \"de_AnalyticsFilter\");\nvar de_AnalyticsS3BucketDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Fo] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_Fo]);\n }\n if (output[_BAI] != null) {\n contents[_BAI] = (0, import_smithy_client.expectString)(output[_BAI]);\n }\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_B]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_AnalyticsS3BucketDestination\");\nvar de_Bucket = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_CDr] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CDr]));\n }\n if (output[_BR] != null) {\n contents[_BR] = (0, import_smithy_client.expectString)(output[_BR]);\n }\n if (output[_BA] != null) {\n contents[_BA] = (0, import_smithy_client.expectString)(output[_BA]);\n }\n return contents;\n}, \"de_Bucket\");\nvar de_Buckets = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Bucket(entry, context);\n });\n}, \"de_Buckets\");\nvar de_Checksum = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n return contents;\n}, \"de_Checksum\");\nvar de_ChecksumAlgorithmList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ChecksumAlgorithmList\");\nvar de_CommonPrefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_CommonPrefix\");\nvar de_CommonPrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CommonPrefix(entry, context);\n });\n}, \"de_CommonPrefixList\");\nvar de_Condition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HECRE] != null) {\n contents[_HECRE] = (0, import_smithy_client.expectString)(output[_HECRE]);\n }\n if (output[_KPE] != null) {\n contents[_KPE] = (0, import_smithy_client.expectString)(output[_KPE]);\n }\n return contents;\n}, \"de_Condition\");\nvar de_ContinuationEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_ContinuationEvent\");\nvar de_CopyObjectResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_CopyObjectResult\");\nvar de_CopyPartResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_CopyPartResult\");\nvar de_CORSRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output.AllowedHeader === \"\") {\n contents[_AHl] = [];\n } else if (output[_AH] != null) {\n contents[_AHl] = de_AllowedHeaders((0, import_smithy_client.getArrayIfSingleItem)(output[_AH]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents[_AMl] = [];\n } else if (output[_AM] != null) {\n contents[_AMl] = de_AllowedMethods((0, import_smithy_client.getArrayIfSingleItem)(output[_AM]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents[_AOl] = [];\n } else if (output[_AO] != null) {\n contents[_AOl] = de_AllowedOrigins((0, import_smithy_client.getArrayIfSingleItem)(output[_AO]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents[_EH] = [];\n } else if (output[_EHx] != null) {\n contents[_EH] = de_ExposeHeaders((0, import_smithy_client.getArrayIfSingleItem)(output[_EHx]), context);\n }\n if (output[_MAS] != null) {\n contents[_MAS] = (0, import_smithy_client.strictParseInt32)(output[_MAS]);\n }\n return contents;\n}, \"de_CORSRule\");\nvar de_CORSRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CORSRule(entry, context);\n });\n}, \"de_CORSRules\");\nvar de_DefaultRetention = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mo] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_Mo]);\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_Y] != null) {\n contents[_Y] = (0, import_smithy_client.strictParseInt32)(output[_Y]);\n }\n return contents;\n}, \"de_DefaultRetention\");\nvar de_DeletedObject = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_DM] != null) {\n contents[_DM] = (0, import_smithy_client.parseBoolean)(output[_DM]);\n }\n if (output[_DMVI] != null) {\n contents[_DMVI] = (0, import_smithy_client.expectString)(output[_DMVI]);\n }\n return contents;\n}, \"de_DeletedObject\");\nvar de_DeletedObjects = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeletedObject(entry, context);\n });\n}, \"de_DeletedObjects\");\nvar de_DeleteMarkerEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_IL] != null) {\n contents[_IL] = (0, import_smithy_client.parseBoolean)(output[_IL]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n return contents;\n}, \"de_DeleteMarkerEntry\");\nvar de_DeleteMarkerReplication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_DeleteMarkerReplication\");\nvar de_DeleteMarkers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteMarkerEntry(entry, context);\n });\n}, \"de_DeleteMarkers\");\nvar de_Destination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_B]);\n }\n if (output[_Ac] != null) {\n contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_ACT] != null) {\n contents[_ACT] = de_AccessControlTranslation(output[_ACT], context);\n }\n if (output[_ECn] != null) {\n contents[_ECn] = de_EncryptionConfiguration(output[_ECn], context);\n }\n if (output[_RTe] != null) {\n contents[_RTe] = de_ReplicationTime(output[_RTe], context);\n }\n if (output[_Me] != null) {\n contents[_Me] = de_Metrics(output[_Me], context);\n }\n return contents;\n}, \"de_Destination\");\nvar de_DestinationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TBT] != null) {\n contents[_TBT] = (0, import_smithy_client.expectString)(output[_TBT]);\n }\n if (output[_TBA] != null) {\n contents[_TBA] = (0, import_smithy_client.expectString)(output[_TBA]);\n }\n if (output[_TNa] != null) {\n contents[_TNa] = (0, import_smithy_client.expectString)(output[_TNa]);\n }\n return contents;\n}, \"de_DestinationResult\");\nvar de_EncryptionConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RKKID] != null) {\n contents[_RKKID] = (0, import_smithy_client.expectString)(output[_RKKID]);\n }\n return contents;\n}, \"de_EncryptionConfiguration\");\nvar de_EndEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_EndEvent\");\nvar de__Error = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_Cod] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_Cod]);\n }\n if (output[_Mes] != null) {\n contents[_Mes] = (0, import_smithy_client.expectString)(output[_Mes]);\n }\n return contents;\n}, \"de__Error\");\nvar de_ErrorDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EC] != null) {\n contents[_EC] = (0, import_smithy_client.expectString)(output[_EC]);\n }\n if (output[_EM] != null) {\n contents[_EM] = (0, import_smithy_client.expectString)(output[_EM]);\n }\n return contents;\n}, \"de_ErrorDetails\");\nvar de_ErrorDocument = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n return contents;\n}, \"de_ErrorDocument\");\nvar de_Errors = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de__Error(entry, context);\n });\n}, \"de_Errors\");\nvar de_EventBridgeConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_EventBridgeConfiguration\");\nvar de_EventList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_EventList\");\nvar de_ExistingObjectReplication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_ExistingObjectReplication\");\nvar de_ExposeHeaders = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ExposeHeaders\");\nvar de_FilterRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Va] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_Va]);\n }\n return contents;\n}, \"de_FilterRule\");\nvar de_FilterRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FilterRule(entry, context);\n });\n}, \"de_FilterRuleList\");\nvar de_GetBucketMetadataConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MCR] != null) {\n contents[_MCR] = de_MetadataConfigurationResult(output[_MCR], context);\n }\n return contents;\n}, \"de_GetBucketMetadataConfigurationResult\");\nvar de_GetBucketMetadataTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MTCR] != null) {\n contents[_MTCR] = de_MetadataTableConfigurationResult(output[_MTCR], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n return contents;\n}, \"de_GetBucketMetadataTableConfigurationResult\");\nvar de_GetObjectAttributesParts = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_PC]);\n }\n if (output[_PNM] != null) {\n contents[_PNM] = (0, import_smithy_client.expectString)(output[_PNM]);\n }\n if (output[_NPNM] != null) {\n contents[_NPNM] = (0, import_smithy_client.expectString)(output[_NPNM]);\n }\n if (output[_MP] != null) {\n contents[_MP] = (0, import_smithy_client.strictParseInt32)(output[_MP]);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output.Part === \"\") {\n contents[_Part] = [];\n } else if (output[_Par] != null) {\n contents[_Part] = de_PartsList((0, import_smithy_client.getArrayIfSingleItem)(output[_Par]), context);\n }\n return contents;\n}, \"de_GetObjectAttributesParts\");\nvar de_Grant = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gra] != null) {\n contents[_Gra] = de_Grantee(output[_Gra], context);\n }\n if (output[_Pe] != null) {\n contents[_Pe] = (0, import_smithy_client.expectString)(output[_Pe]);\n }\n return contents;\n}, \"de_Grant\");\nvar de_Grantee = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_DN]);\n }\n if (output[_EA] != null) {\n contents[_EA] = (0, import_smithy_client.expectString)(output[_EA]);\n }\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_URI] != null) {\n contents[_URI] = (0, import_smithy_client.expectString)(output[_URI]);\n }\n if (output[_x] != null) {\n contents[_Ty] = (0, import_smithy_client.expectString)(output[_x]);\n }\n return contents;\n}, \"de_Grantee\");\nvar de_Grants = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Grant(entry, context);\n });\n}, \"de_Grants\");\nvar de_IndexDocument = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Su] != null) {\n contents[_Su] = (0, import_smithy_client.expectString)(output[_Su]);\n }\n return contents;\n}, \"de_IndexDocument\");\nvar de_Initiator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_DN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_DN]);\n }\n return contents;\n}, \"de_Initiator\");\nvar de_IntelligentTieringAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n return contents;\n}, \"de_IntelligentTieringAndOperator\");\nvar de_IntelligentTieringConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_F] != null) {\n contents[_F] = de_IntelligentTieringFilter(output[_F], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output.Tiering === \"\") {\n contents[_Tie] = [];\n } else if (output[_Tier] != null) {\n contents[_Tie] = de_TieringList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tier]), context);\n }\n return contents;\n}, \"de_IntelligentTieringConfiguration\");\nvar de_IntelligentTieringConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IntelligentTieringConfiguration(entry, context);\n });\n}, \"de_IntelligentTieringConfigurationList\");\nvar de_IntelligentTieringFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Ta] != null) {\n contents[_Ta] = de_Tag(output[_Ta], context);\n }\n if (output[_A] != null) {\n contents[_A] = de_IntelligentTieringAndOperator(output[_A], context);\n }\n return contents;\n}, \"de_IntelligentTieringFilter\");\nvar de_InventoryConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Des] != null) {\n contents[_Des] = de_InventoryDestination(output[_Des], context);\n }\n if (output[_IE] != null) {\n contents[_IE] = (0, import_smithy_client.parseBoolean)(output[_IE]);\n }\n if (output[_F] != null) {\n contents[_F] = de_InventoryFilter(output[_F], context);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_IOV] != null) {\n contents[_IOV] = (0, import_smithy_client.expectString)(output[_IOV]);\n }\n if (output.OptionalFields === \"\") {\n contents[_OF] = [];\n } else if (output[_OF] != null && output[_OF][_Fi] != null) {\n contents[_OF] = de_InventoryOptionalFields((0, import_smithy_client.getArrayIfSingleItem)(output[_OF][_Fi]), context);\n }\n if (output[_Sc] != null) {\n contents[_Sc] = de_InventorySchedule(output[_Sc], context);\n }\n return contents;\n}, \"de_InventoryConfiguration\");\nvar de_InventoryConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InventoryConfiguration(entry, context);\n });\n}, \"de_InventoryConfigurationList\");\nvar de_InventoryDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SBD] != null) {\n contents[_SBD] = de_InventoryS3BucketDestination(output[_SBD], context);\n }\n return contents;\n}, \"de_InventoryDestination\");\nvar de_InventoryEncryption = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SS] != null) {\n contents[_SSES] = de_SSES3(output[_SS], context);\n }\n if (output[_SK] != null) {\n contents[_SSEKMS] = de_SSEKMS(output[_SK], context);\n }\n return contents;\n}, \"de_InventoryEncryption\");\nvar de_InventoryFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_InventoryFilter\");\nvar de_InventoryOptionalFields = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InventoryOptionalFields\");\nvar de_InventoryS3BucketDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AIc] != null) {\n contents[_AIc] = (0, import_smithy_client.expectString)(output[_AIc]);\n }\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_B]);\n }\n if (output[_Fo] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_Fo]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_En] != null) {\n contents[_En] = de_InventoryEncryption(output[_En], context);\n }\n return contents;\n}, \"de_InventoryS3BucketDestination\");\nvar de_InventorySchedule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Fr] != null) {\n contents[_Fr] = (0, import_smithy_client.expectString)(output[_Fr]);\n }\n return contents;\n}, \"de_InventorySchedule\");\nvar de_InventoryTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CSo] != null) {\n contents[_CSo] = (0, import_smithy_client.expectString)(output[_CSo]);\n }\n if (output[_TSa] != null) {\n contents[_TSa] = (0, import_smithy_client.expectString)(output[_TSa]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n if (output[_TN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]);\n }\n if (output[_TAa] != null) {\n contents[_TAa] = (0, import_smithy_client.expectString)(output[_TAa]);\n }\n return contents;\n}, \"de_InventoryTableConfigurationResult\");\nvar de_JournalTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TSa] != null) {\n contents[_TSa] = (0, import_smithy_client.expectString)(output[_TSa]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n if (output[_TN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]);\n }\n if (output[_TAa] != null) {\n contents[_TAa] = (0, import_smithy_client.expectString)(output[_TAa]);\n }\n if (output[_REe] != null) {\n contents[_REe] = de_RecordExpiration(output[_REe], context);\n }\n return contents;\n}, \"de_JournalTableConfigurationResult\");\nvar de_LambdaFunctionConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_CF] != null) {\n contents[_LFA] = (0, import_smithy_client.expectString)(output[_CF]);\n }\n if (output.Event === \"\") {\n contents[_Eve] = [];\n } else if (output[_Ev] != null) {\n contents[_Eve] = de_EventList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ev]), context);\n }\n if (output[_F] != null) {\n contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n }\n return contents;\n}, \"de_LambdaFunctionConfiguration\");\nvar de_LambdaFunctionConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LambdaFunctionConfiguration(entry, context);\n });\n}, \"de_LambdaFunctionConfigurationList\");\nvar de_LifecycleExpiration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Dat] != null) {\n contents[_Dat] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Dat]));\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_EODM] != null) {\n contents[_EODM] = (0, import_smithy_client.parseBoolean)(output[_EODM]);\n }\n return contents;\n}, \"de_LifecycleExpiration\");\nvar de_LifecycleRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Exp] != null) {\n contents[_Exp] = de_LifecycleExpiration(output[_Exp], context);\n }\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_F] != null) {\n contents[_F] = de_LifecycleRuleFilter(output[_F], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output.Transition === \"\") {\n contents[_Tr] = [];\n } else if (output[_Tra] != null) {\n contents[_Tr] = de_TransitionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tra]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents[_NVT] = [];\n } else if (output[_NVTo] != null) {\n contents[_NVT] = de_NoncurrentVersionTransitionList((0, import_smithy_client.getArrayIfSingleItem)(output[_NVTo]), context);\n }\n if (output[_NVE] != null) {\n contents[_NVE] = de_NoncurrentVersionExpiration(output[_NVE], context);\n }\n if (output[_AIMU] != null) {\n contents[_AIMU] = de_AbortIncompleteMultipartUpload(output[_AIMU], context);\n }\n return contents;\n}, \"de_LifecycleRule\");\nvar de_LifecycleRuleAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n if (output[_OSGT] != null) {\n contents[_OSGT] = (0, import_smithy_client.strictParseLong)(output[_OSGT]);\n }\n if (output[_OSLT] != null) {\n contents[_OSLT] = (0, import_smithy_client.strictParseLong)(output[_OSLT]);\n }\n return contents;\n}, \"de_LifecycleRuleAndOperator\");\nvar de_LifecycleRuleFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Ta] != null) {\n contents[_Ta] = de_Tag(output[_Ta], context);\n }\n if (output[_OSGT] != null) {\n contents[_OSGT] = (0, import_smithy_client.strictParseLong)(output[_OSGT]);\n }\n if (output[_OSLT] != null) {\n contents[_OSLT] = (0, import_smithy_client.strictParseLong)(output[_OSLT]);\n }\n if (output[_A] != null) {\n contents[_A] = de_LifecycleRuleAndOperator(output[_A], context);\n }\n return contents;\n}, \"de_LifecycleRuleFilter\");\nvar de_LifecycleRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LifecycleRule(entry, context);\n });\n}, \"de_LifecycleRules\");\nvar de_LoggingEnabled = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TB] != null) {\n contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]);\n }\n if (output.TargetGrants === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_G] != null) {\n contents[_TG] = de_TargetGrants((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_G]), context);\n }\n if (output[_TP] != null) {\n contents[_TP] = (0, import_smithy_client.expectString)(output[_TP]);\n }\n if (output[_TOKF] != null) {\n contents[_TOKF] = de_TargetObjectKeyFormat(output[_TOKF], context);\n }\n return contents;\n}, \"de_LoggingEnabled\");\nvar de_MetadataConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DRes] != null) {\n contents[_DRes] = de_DestinationResult(output[_DRes], context);\n }\n if (output[_JTCR] != null) {\n contents[_JTCR] = de_JournalTableConfigurationResult(output[_JTCR], context);\n }\n if (output[_ITCR] != null) {\n contents[_ITCR] = de_InventoryTableConfigurationResult(output[_ITCR], context);\n }\n return contents;\n}, \"de_MetadataConfigurationResult\");\nvar de_MetadataTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_STDR] != null) {\n contents[_STDR] = de_S3TablesDestinationResult(output[_STDR], context);\n }\n return contents;\n}, \"de_MetadataTableConfigurationResult\");\nvar de_Metrics = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ETv] != null) {\n contents[_ETv] = de_ReplicationTimeValue(output[_ETv], context);\n }\n return contents;\n}, \"de_Metrics\");\nvar de_MetricsAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n if (output[_APAc] != null) {\n contents[_APAc] = (0, import_smithy_client.expectString)(output[_APAc]);\n }\n return contents;\n}, \"de_MetricsAndOperator\");\nvar de_MetricsConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output.Filter === \"\") {\n } else if (output[_F] != null) {\n contents[_F] = de_MetricsFilter((0, import_smithy_client.expectUnion)(output[_F]), context);\n }\n return contents;\n}, \"de_MetricsConfiguration\");\nvar de_MetricsConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricsConfiguration(entry, context);\n });\n}, \"de_MetricsConfigurationList\");\nvar de_MetricsFilter = /* @__PURE__ */ __name((output, context) => {\n if (output[_P] != null) {\n return {\n Prefix: (0, import_smithy_client.expectString)(output[_P])\n };\n }\n if (output[_Ta] != null) {\n return {\n Tag: de_Tag(output[_Ta], context)\n };\n }\n if (output[_APAc] != null) {\n return {\n AccessPointArn: (0, import_smithy_client.expectString)(output[_APAc])\n };\n }\n if (output[_A] != null) {\n return {\n And: de_MetricsAndOperator(output[_A], context)\n };\n }\n return { $unknown: Object.entries(output)[0] };\n}, \"de_MetricsFilter\");\nvar de_MultipartUpload = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Ini] != null) {\n contents[_Ini] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ini]));\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_In] != null) {\n contents[_In] = de_Initiator(output[_In], context);\n }\n if (output[_CA] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_CA]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n return contents;\n}, \"de_MultipartUpload\");\nvar de_MultipartUploadList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MultipartUpload(entry, context);\n });\n}, \"de_MultipartUploadList\");\nvar de_NoncurrentVersionExpiration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ND] != null) {\n contents[_ND] = (0, import_smithy_client.strictParseInt32)(output[_ND]);\n }\n if (output[_NNV] != null) {\n contents[_NNV] = (0, import_smithy_client.strictParseInt32)(output[_NNV]);\n }\n return contents;\n}, \"de_NoncurrentVersionExpiration\");\nvar de_NoncurrentVersionTransition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ND] != null) {\n contents[_ND] = (0, import_smithy_client.strictParseInt32)(output[_ND]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_NNV] != null) {\n contents[_NNV] = (0, import_smithy_client.strictParseInt32)(output[_NNV]);\n }\n return contents;\n}, \"de_NoncurrentVersionTransition\");\nvar de_NoncurrentVersionTransitionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NoncurrentVersionTransition(entry, context);\n });\n}, \"de_NoncurrentVersionTransitionList\");\nvar de_NotificationConfigurationFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SKe] != null) {\n contents[_K] = de_S3KeyFilter(output[_SKe], context);\n }\n return contents;\n}, \"de_NotificationConfigurationFilter\");\nvar de__Object = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents[_CA] = [];\n } else if (output[_CA] != null) {\n contents[_CA] = de_ChecksumAlgorithmList((0, import_smithy_client.getArrayIfSingleItem)(output[_CA]), context);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_RSes] != null) {\n contents[_RSes] = de_RestoreStatus(output[_RSes], context);\n }\n return contents;\n}, \"de__Object\");\nvar de_ObjectList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de__Object(entry, context);\n });\n}, \"de_ObjectList\");\nvar de_ObjectLockConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OLE] != null) {\n contents[_OLE] = (0, import_smithy_client.expectString)(output[_OLE]);\n }\n if (output[_Ru] != null) {\n contents[_Ru] = de_ObjectLockRule(output[_Ru], context);\n }\n return contents;\n}, \"de_ObjectLockConfiguration\");\nvar de_ObjectLockLegalHold = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_ObjectLockLegalHold\");\nvar de_ObjectLockRetention = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mo] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_Mo]);\n }\n if (output[_RUD] != null) {\n contents[_RUD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_RUD]));\n }\n return contents;\n}, \"de_ObjectLockRetention\");\nvar de_ObjectLockRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DRe] != null) {\n contents[_DRe] = de_DefaultRetention(output[_DRe], context);\n }\n return contents;\n}, \"de_ObjectLockRule\");\nvar de_ObjectPart = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_PN]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_ObjectPart\");\nvar de_ObjectVersion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents[_CA] = [];\n } else if (output[_CA] != null) {\n contents[_CA] = de_ChecksumAlgorithmList((0, import_smithy_client.getArrayIfSingleItem)(output[_CA]), context);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_IL] != null) {\n contents[_IL] = (0, import_smithy_client.parseBoolean)(output[_IL]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_RSes] != null) {\n contents[_RSes] = de_RestoreStatus(output[_RSes], context);\n }\n return contents;\n}, \"de_ObjectVersion\");\nvar de_ObjectVersionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ObjectVersion(entry, context);\n });\n}, \"de_ObjectVersionList\");\nvar de_Owner = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_DN]);\n }\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n return contents;\n}, \"de_Owner\");\nvar de_OwnershipControls = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents[_Rul] = [];\n } else if (output[_Ru] != null) {\n contents[_Rul] = de_OwnershipControlsRules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru]), context);\n }\n return contents;\n}, \"de_OwnershipControls\");\nvar de_OwnershipControlsRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OO] != null) {\n contents[_OO] = (0, import_smithy_client.expectString)(output[_OO]);\n }\n return contents;\n}, \"de_OwnershipControlsRule\");\nvar de_OwnershipControlsRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_OwnershipControlsRule(entry, context);\n });\n}, \"de_OwnershipControlsRules\");\nvar de_Part = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_PN]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_Part\");\nvar de_PartitionedPrefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PDS] != null) {\n contents[_PDS] = (0, import_smithy_client.expectString)(output[_PDS]);\n }\n return contents;\n}, \"de_PartitionedPrefix\");\nvar de_Parts = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Part(entry, context);\n });\n}, \"de_Parts\");\nvar de_PartsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ObjectPart(entry, context);\n });\n}, \"de_PartsList\");\nvar de_PolicyStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = (0, import_smithy_client.parseBoolean)(output[_IP]);\n }\n return contents;\n}, \"de_PolicyStatus\");\nvar de_Progress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_BS] != null) {\n contents[_BS] = (0, import_smithy_client.strictParseLong)(output[_BS]);\n }\n if (output[_BP] != null) {\n contents[_BP] = (0, import_smithy_client.strictParseLong)(output[_BP]);\n }\n if (output[_BRy] != null) {\n contents[_BRy] = (0, import_smithy_client.strictParseLong)(output[_BRy]);\n }\n return contents;\n}, \"de_Progress\");\nvar de_PublicAccessBlockConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_BPA] != null) {\n contents[_BPA] = (0, import_smithy_client.parseBoolean)(output[_BPA]);\n }\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.parseBoolean)(output[_IPA]);\n }\n if (output[_BPP] != null) {\n contents[_BPP] = (0, import_smithy_client.parseBoolean)(output[_BPP]);\n }\n if (output[_RPB] != null) {\n contents[_RPB] = (0, import_smithy_client.parseBoolean)(output[_RPB]);\n }\n return contents;\n}, \"de_PublicAccessBlockConfiguration\");\nvar de_QueueConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_Qu] != null) {\n contents[_QA] = (0, import_smithy_client.expectString)(output[_Qu]);\n }\n if (output.Event === \"\") {\n contents[_Eve] = [];\n } else if (output[_Ev] != null) {\n contents[_Eve] = de_EventList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ev]), context);\n }\n if (output[_F] != null) {\n contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n }\n return contents;\n}, \"de_QueueConfiguration\");\nvar de_QueueConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_QueueConfiguration(entry, context);\n });\n}, \"de_QueueConfigurationList\");\nvar de_RecordExpiration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Exp] != null) {\n contents[_Exp] = (0, import_smithy_client.expectString)(output[_Exp]);\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n return contents;\n}, \"de_RecordExpiration\");\nvar de_Redirect = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HN] != null) {\n contents[_HN] = (0, import_smithy_client.expectString)(output[_HN]);\n }\n if (output[_HRC] != null) {\n contents[_HRC] = (0, import_smithy_client.expectString)(output[_HRC]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n if (output[_RKPW] != null) {\n contents[_RKPW] = (0, import_smithy_client.expectString)(output[_RKPW]);\n }\n if (output[_RKW] != null) {\n contents[_RKW] = (0, import_smithy_client.expectString)(output[_RKW]);\n }\n return contents;\n}, \"de_Redirect\");\nvar de_RedirectAllRequestsTo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HN] != null) {\n contents[_HN] = (0, import_smithy_client.expectString)(output[_HN]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n return contents;\n}, \"de_RedirectAllRequestsTo\");\nvar de_ReplicaModifications = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_ReplicaModifications\");\nvar de_ReplicationConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = (0, import_smithy_client.expectString)(output[_Ro]);\n }\n if (output.Rule === \"\") {\n contents[_Rul] = [];\n } else if (output[_Ru] != null) {\n contents[_Rul] = de_ReplicationRules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru]), context);\n }\n return contents;\n}, \"de_ReplicationConfiguration\");\nvar de_ReplicationRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_Pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseInt32)(output[_Pri]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_F] != null) {\n contents[_F] = de_ReplicationRuleFilter(output[_F], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_SSC] != null) {\n contents[_SSC] = de_SourceSelectionCriteria(output[_SSC], context);\n }\n if (output[_EOR] != null) {\n contents[_EOR] = de_ExistingObjectReplication(output[_EOR], context);\n }\n if (output[_Des] != null) {\n contents[_Des] = de_Destination(output[_Des], context);\n }\n if (output[_DMR] != null) {\n contents[_DMR] = de_DeleteMarkerReplication(output[_DMR], context);\n }\n return contents;\n}, \"de_ReplicationRule\");\nvar de_ReplicationRuleAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n return contents;\n}, \"de_ReplicationRuleAndOperator\");\nvar de_ReplicationRuleFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Ta] != null) {\n contents[_Ta] = de_Tag(output[_Ta], context);\n }\n if (output[_A] != null) {\n contents[_A] = de_ReplicationRuleAndOperator(output[_A], context);\n }\n return contents;\n}, \"de_ReplicationRuleFilter\");\nvar de_ReplicationRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReplicationRule(entry, context);\n });\n}, \"de_ReplicationRules\");\nvar de_ReplicationTime = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_Tim] != null) {\n contents[_Tim] = de_ReplicationTimeValue(output[_Tim], context);\n }\n return contents;\n}, \"de_ReplicationTime\");\nvar de_ReplicationTimeValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mi] != null) {\n contents[_Mi] = (0, import_smithy_client.strictParseInt32)(output[_Mi]);\n }\n return contents;\n}, \"de_ReplicationTimeValue\");\nvar de_RestoreStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IRIP] != null) {\n contents[_IRIP] = (0, import_smithy_client.parseBoolean)(output[_IRIP]);\n }\n if (output[_REDe] != null) {\n contents[_REDe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_REDe]));\n }\n return contents;\n}, \"de_RestoreStatus\");\nvar de_RoutingRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Con] != null) {\n contents[_Con] = de_Condition(output[_Con], context);\n }\n if (output[_Red] != null) {\n contents[_Red] = de_Redirect(output[_Red], context);\n }\n return contents;\n}, \"de_RoutingRule\");\nvar de_RoutingRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RoutingRule(entry, context);\n });\n}, \"de_RoutingRules\");\nvar de_S3KeyFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.FilterRule === \"\") {\n contents[_FRi] = [];\n } else if (output[_FR] != null) {\n contents[_FRi] = de_FilterRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_FR]), context);\n }\n return contents;\n}, \"de_S3KeyFilter\");\nvar de_S3TablesDestinationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TBA] != null) {\n contents[_TBA] = (0, import_smithy_client.expectString)(output[_TBA]);\n }\n if (output[_TN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]);\n }\n if (output[_TAa] != null) {\n contents[_TAa] = (0, import_smithy_client.expectString)(output[_TAa]);\n }\n if (output[_TNa] != null) {\n contents[_TNa] = (0, import_smithy_client.expectString)(output[_TNa]);\n }\n return contents;\n}, \"de_S3TablesDestinationResult\");\nvar de_ServerSideEncryptionByDefault = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSEA] != null) {\n contents[_SSEA] = (0, import_smithy_client.expectString)(output[_SSEA]);\n }\n if (output[_KMSMKID] != null) {\n contents[_KMSMKID] = (0, import_smithy_client.expectString)(output[_KMSMKID]);\n }\n return contents;\n}, \"de_ServerSideEncryptionByDefault\");\nvar de_ServerSideEncryptionConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents[_Rul] = [];\n } else if (output[_Ru] != null) {\n contents[_Rul] = de_ServerSideEncryptionRules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru]), context);\n }\n return contents;\n}, \"de_ServerSideEncryptionConfiguration\");\nvar de_ServerSideEncryptionRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ASSEBD] != null) {\n contents[_ASSEBD] = de_ServerSideEncryptionByDefault(output[_ASSEBD], context);\n }\n if (output[_BKE] != null) {\n contents[_BKE] = (0, import_smithy_client.parseBoolean)(output[_BKE]);\n }\n return contents;\n}, \"de_ServerSideEncryptionRule\");\nvar de_ServerSideEncryptionRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServerSideEncryptionRule(entry, context);\n });\n}, \"de_ServerSideEncryptionRules\");\nvar de_SessionCredentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.expectString)(output[_ST]);\n }\n if (output[_Exp] != null) {\n contents[_Exp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Exp]));\n }\n return contents;\n}, \"de_SessionCredentials\");\nvar de_SimplePrefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_SimplePrefix\");\nvar de_SourceSelectionCriteria = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SKEO] != null) {\n contents[_SKEO] = de_SseKmsEncryptedObjects(output[_SKEO], context);\n }\n if (output[_RM] != null) {\n contents[_RM] = de_ReplicaModifications(output[_RM], context);\n }\n return contents;\n}, \"de_SourceSelectionCriteria\");\nvar de_SSEKMS = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_KI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_KI]);\n }\n return contents;\n}, \"de_SSEKMS\");\nvar de_SseKmsEncryptedObjects = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_SseKmsEncryptedObjects\");\nvar de_SSES3 = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_SSES3\");\nvar de_Stats = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_BS] != null) {\n contents[_BS] = (0, import_smithy_client.strictParseLong)(output[_BS]);\n }\n if (output[_BP] != null) {\n contents[_BP] = (0, import_smithy_client.strictParseLong)(output[_BP]);\n }\n if (output[_BRy] != null) {\n contents[_BRy] = (0, import_smithy_client.strictParseLong)(output[_BRy]);\n }\n return contents;\n}, \"de_Stats\");\nvar de_StorageClassAnalysis = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DE] != null) {\n contents[_DE] = de_StorageClassAnalysisDataExport(output[_DE], context);\n }\n return contents;\n}, \"de_StorageClassAnalysis\");\nvar de_StorageClassAnalysisDataExport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OSV] != null) {\n contents[_OSV] = (0, import_smithy_client.expectString)(output[_OSV]);\n }\n if (output[_Des] != null) {\n contents[_Des] = de_AnalyticsExportDestination(output[_Des], context);\n }\n return contents;\n}, \"de_StorageClassAnalysisDataExport\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Va] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_Va]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagSet\");\nvar de_TargetGrant = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gra] != null) {\n contents[_Gra] = de_Grantee(output[_Gra], context);\n }\n if (output[_Pe] != null) {\n contents[_Pe] = (0, import_smithy_client.expectString)(output[_Pe]);\n }\n return contents;\n}, \"de_TargetGrant\");\nvar de_TargetGrants = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGrant(entry, context);\n });\n}, \"de_TargetGrants\");\nvar de_TargetObjectKeyFormat = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SPi] != null) {\n contents[_SPi] = de_SimplePrefix(output[_SPi], context);\n }\n if (output[_PP] != null) {\n contents[_PP] = de_PartitionedPrefix(output[_PP], context);\n }\n return contents;\n}, \"de_TargetObjectKeyFormat\");\nvar de_Tiering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_AT] != null) {\n contents[_AT] = (0, import_smithy_client.expectString)(output[_AT]);\n }\n return contents;\n}, \"de_Tiering\");\nvar de_TieringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tiering(entry, context);\n });\n}, \"de_TieringList\");\nvar de_TopicConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_Top] != null) {\n contents[_TA] = (0, import_smithy_client.expectString)(output[_Top]);\n }\n if (output.Event === \"\") {\n contents[_Eve] = [];\n } else if (output[_Ev] != null) {\n contents[_Eve] = de_EventList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ev]), context);\n }\n if (output[_F] != null) {\n contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n }\n return contents;\n}, \"de_TopicConfiguration\");\nvar de_TopicConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TopicConfiguration(entry, context);\n });\n}, \"de_TopicConfigurationList\");\nvar de_Transition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Dat] != null) {\n contents[_Dat] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Dat]));\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n return contents;\n}, \"de_Transition\");\nvar de_TransitionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Transition(entry, context);\n });\n}, \"de_TransitionList\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\nvar _A = \"And\";\nvar _AAO = \"AnalyticsAndOperator\";\nvar _AC = \"AnalyticsConfiguration\";\nvar _ACL = \"ACL\";\nvar _ACLc = \"AccessControlList\";\nvar _ACLn = \"AnalyticsConfigurationList\";\nvar _ACP = \"AccessControlPolicy\";\nvar _ACT = \"AccessControlTranslation\";\nvar _ACc = \"AccelerateConfiguration\";\nvar _AD = \"AbortDate\";\nvar _AED = \"AnalyticsExportDestination\";\nvar _AF = \"AnalyticsFilter\";\nvar _AH = \"AllowedHeader\";\nvar _AHl = \"AllowedHeaders\";\nvar _AI = \"AnalyticsId\";\nvar _AIMU = \"AbortIncompleteMultipartUpload\";\nvar _AIc = \"AccountId\";\nvar _AKI = \"AccessKeyId\";\nvar _AM = \"AllowedMethod\";\nvar _AMl = \"AllowedMethods\";\nvar _AO = \"AllowedOrigin\";\nvar _AOl = \"AllowedOrigins\";\nvar _APA = \"AccessPointAlias\";\nvar _APAc = \"AccessPointArn\";\nvar _AQRD = \"AllowQuotedRecordDelimiter\";\nvar _AR = \"AcceptRanges\";\nvar _ARI = \"AbortRuleId\";\nvar _AS = \"ArchiveStatus\";\nvar _ASBD = \"AnalyticsS3BucketDestination\";\nvar _ASEFF = \"AnalyticsS3ExportFileFormat\";\nvar _ASSEBD = \"ApplyServerSideEncryptionByDefault\";\nvar _AT = \"AccessTier\";\nvar _Ac = \"Account\";\nvar _B = \"Bucket\";\nvar _BA = \"BucketArn\";\nvar _BAI = \"BucketAccountId\";\nvar _BAS = \"BucketAccelerateStatus\";\nvar _BGR = \"BypassGovernanceRetention\";\nvar _BI = \"BucketInfo\";\nvar _BKE = \"BucketKeyEnabled\";\nvar _BLC = \"BucketLifecycleConfiguration\";\nvar _BLCu = \"BucketLocationConstraint\";\nvar _BLN = \"BucketLocationName\";\nvar _BLP = \"BucketLogsPermission\";\nvar _BLS = \"BucketLoggingStatus\";\nvar _BLT = \"BucketLocationType\";\nvar _BN = \"BucketName\";\nvar _BP = \"BytesProcessed\";\nvar _BPA = \"BlockPublicAcls\";\nvar _BPP = \"BlockPublicPolicy\";\nvar _BR = \"BucketRegion\";\nvar _BRy = \"BytesReturned\";\nvar _BS = \"BytesScanned\";\nvar _BT = \"BucketType\";\nvar _BVS = \"BucketVersioningStatus\";\nvar _Bu = \"Buckets\";\nvar _C = \"Credentials\";\nvar _CA = \"ChecksumAlgorithm\";\nvar _CACL = \"CannedACL\";\nvar _CBC = \"CreateBucketConfiguration\";\nvar _CC = \"CacheControl\";\nvar _CCRC = \"ChecksumCRC32\";\nvar _CCRCC = \"ChecksumCRC32C\";\nvar _CCRCNVME = \"ChecksumCRC64NVME\";\nvar _CD = \"ContentDisposition\";\nvar _CDr = \"CreationDate\";\nvar _CE = \"ContentEncoding\";\nvar _CF = \"CloudFunction\";\nvar _CFC = \"CloudFunctionConfiguration\";\nvar _CL = \"ContentLanguage\";\nvar _CLo = \"ContentLength\";\nvar _CM = \"ChecksumMode\";\nvar _CMD = \"ContentMD5\";\nvar _CMU = \"CompletedMultipartUpload\";\nvar _CORSC = \"CORSConfiguration\";\nvar _CORSR = \"CORSRule\";\nvar _CORSRu = \"CORSRules\";\nvar _CP = \"CommonPrefixes\";\nvar _CPo = \"CompletedPart\";\nvar _CR = \"ContentRange\";\nvar _CRSBA = \"ConfirmRemoveSelfBucketAccess\";\nvar _CS = \"CopySource\";\nvar _CSHA = \"ChecksumSHA1\";\nvar _CSHAh = \"ChecksumSHA256\";\nvar _CSIM = \"CopySourceIfMatch\";\nvar _CSIMS = \"CopySourceIfModifiedSince\";\nvar _CSINM = \"CopySourceIfNoneMatch\";\nvar _CSIUS = \"CopySourceIfUnmodifiedSince\";\nvar _CSR = \"CopySourceRange\";\nvar _CSSSECA = \"CopySourceSSECustomerAlgorithm\";\nvar _CSSSECK = \"CopySourceSSECustomerKey\";\nvar _CSSSECKMD = \"CopySourceSSECustomerKeyMD5\";\nvar _CSV = \"CSV\";\nvar _CSVI = \"CopySourceVersionId\";\nvar _CSVIn = \"CSVInput\";\nvar _CSVO = \"CSVOutput\";\nvar _CSo = \"ConfigurationState\";\nvar _CT = \"ChecksumType\";\nvar _CTl = \"ClientToken\";\nvar _CTo = \"ContentType\";\nvar _CTom = \"CompressionType\";\nvar _CTon = \"ContinuationToken\";\nvar _Ch = \"Checksum\";\nvar _Co = \"Contents\";\nvar _Cod = \"Code\";\nvar _Com = \"Comments\";\nvar _Con = \"Condition\";\nvar _D = \"Delimiter\";\nvar _DAI = \"DaysAfterInitiation\";\nvar _DE = \"DataExport\";\nvar _DIM = \"DestinationIfMatch\";\nvar _DIMS = \"DestinationIfModifiedSince\";\nvar _DINM = \"DestinationIfNoneMatch\";\nvar _DIUS = \"DestinationIfUnmodifiedSince\";\nvar _DM = \"DeleteMarker\";\nvar _DMR = \"DeleteMarkerReplication\";\nvar _DMRS = \"DeleteMarkerReplicationStatus\";\nvar _DMVI = \"DeleteMarkerVersionId\";\nvar _DMe = \"DeleteMarkers\";\nvar _DN = \"DisplayName\";\nvar _DR = \"DataRedundancy\";\nvar _DRe = \"DefaultRetention\";\nvar _DRes = \"DestinationResult\";\nvar _Da = \"Days\";\nvar _Dat = \"Date\";\nvar _De = \"Deleted\";\nvar _Del = \"Delete\";\nvar _Des = \"Destination\";\nvar _Desc = \"Description\";\nvar _E = \"Expires\";\nvar _EA = \"EmailAddress\";\nvar _EBC = \"EventBridgeConfiguration\";\nvar _EBO = \"ExpectedBucketOwner\";\nvar _EC = \"ErrorCode\";\nvar _ECn = \"EncryptionConfiguration\";\nvar _ED = \"ErrorDocument\";\nvar _EH = \"ExposeHeaders\";\nvar _EHx = \"ExposeHeader\";\nvar _EM = \"ErrorMessage\";\nvar _EODM = \"ExpiredObjectDeleteMarker\";\nvar _EOR = \"ExistingObjectReplication\";\nvar _EORS = \"ExistingObjectReplicationStatus\";\nvar _ERP = \"EnableRequestProgress\";\nvar _ES = \"ExpiresString\";\nvar _ESBO = \"ExpectedSourceBucketOwner\";\nvar _ESx = \"ExpirationStatus\";\nvar _ESxp = \"ExpirationState\";\nvar _ET = \"EncodingType\";\nvar _ETa = \"ETag\";\nvar _ETn = \"EncryptionType\";\nvar _ETv = \"EventThreshold\";\nvar _ETx = \"ExpressionType\";\nvar _En = \"Encryption\";\nvar _Ena = \"Enabled\";\nvar _End = \"End\";\nvar _Er = \"Error\";\nvar _Err = \"Errors\";\nvar _Ev = \"Event\";\nvar _Eve = \"Events\";\nvar _Ex = \"Expression\";\nvar _Exp = \"Expiration\";\nvar _F = \"Filter\";\nvar _FD = \"FieldDelimiter\";\nvar _FHI = \"FileHeaderInfo\";\nvar _FO = \"FetchOwner\";\nvar _FR = \"FilterRule\";\nvar _FRN = \"FilterRuleName\";\nvar _FRV = \"FilterRuleValue\";\nvar _FRi = \"FilterRules\";\nvar _Fi = \"Field\";\nvar _Fo = \"Format\";\nvar _Fr = \"Frequency\";\nvar _G = \"Grant\";\nvar _GFC = \"GrantFullControl\";\nvar _GJP = \"GlacierJobParameters\";\nvar _GR = \"GrantRead\";\nvar _GRACP = \"GrantReadACP\";\nvar _GW = \"GrantWrite\";\nvar _GWACP = \"GrantWriteACP\";\nvar _Gr = \"Grants\";\nvar _Gra = \"Grantee\";\nvar _HECRE = \"HttpErrorCodeReturnedEquals\";\nvar _HN = \"HostName\";\nvar _HRC = \"HttpRedirectCode\";\nvar _I = \"Id\";\nvar _IC = \"InventoryConfiguration\";\nvar _ICL = \"InventoryConfigurationList\";\nvar _ICS = \"InventoryConfigurationState\";\nvar _ID = \"IndexDocument\";\nvar _ID_ = \"ID\";\nvar _IDn = \"InventoryDestination\";\nvar _IE = \"IsEnabled\";\nvar _IEn = \"InventoryEncryption\";\nvar _IF = \"InventoryFilter\";\nvar _IFn = \"InventoryFormat\";\nvar _IFnv = \"InventoryFrequency\";\nvar _II = \"InventoryId\";\nvar _IIOV = \"InventoryIncludedObjectVersions\";\nvar _IL = \"IsLatest\";\nvar _IM = \"IfMatch\";\nvar _IMIT = \"IfMatchInitiatedTime\";\nvar _IMLMT = \"IfMatchLastModifiedTime\";\nvar _IMS = \"IfMatchSize\";\nvar _IMSf = \"IfModifiedSince\";\nvar _INM = \"IfNoneMatch\";\nvar _IOF = \"InventoryOptionalField\";\nvar _IOV = \"IncludedObjectVersions\";\nvar _IP = \"IsPublic\";\nvar _IPA = \"IgnorePublicAcls\";\nvar _IRIP = \"IsRestoreInProgress\";\nvar _IS = \"InputSerialization\";\nvar _ISBD = \"InventoryS3BucketDestination\";\nvar _ISn = \"InventorySchedule\";\nvar _IT = \"IsTruncated\";\nvar _ITAO = \"IntelligentTieringAndOperator\";\nvar _ITAT = \"IntelligentTieringAccessTier\";\nvar _ITC = \"IntelligentTieringConfiguration\";\nvar _ITCL = \"IntelligentTieringConfigurationList\";\nvar _ITCR = \"InventoryTableConfigurationResult\";\nvar _ITCU = \"InventoryTableConfigurationUpdates\";\nvar _ITCn = \"InventoryTableConfiguration\";\nvar _ITD = \"IntelligentTieringDays\";\nvar _ITF = \"IntelligentTieringFilter\";\nvar _ITI = \"IntelligentTieringId\";\nvar _ITS = \"IntelligentTieringStatus\";\nvar _IUS = \"IfUnmodifiedSince\";\nvar _In = \"Initiator\";\nvar _Ini = \"Initiated\";\nvar _JSON = \"JSON\";\nvar _JSONI = \"JSONInput\";\nvar _JSONO = \"JSONOutput\";\nvar _JSONT = \"JSONType\";\nvar _JTC = \"JournalTableConfiguration\";\nvar _JTCR = \"JournalTableConfigurationResult\";\nvar _JTCU = \"JournalTableConfigurationUpdates\";\nvar _K = \"Key\";\nvar _KC = \"KeyCount\";\nvar _KI = \"KeyId\";\nvar _KKA = \"KmsKeyArn\";\nvar _KM = \"KeyMarker\";\nvar _KMSC = \"KMSContext\";\nvar _KMSKI = \"KMSKeyId\";\nvar _KMSMKID = \"KMSMasterKeyID\";\nvar _KPE = \"KeyPrefixEquals\";\nvar _L = \"Location\";\nvar _LC = \"LocationConstraint\";\nvar _LE = \"LoggingEnabled\";\nvar _LEi = \"LifecycleExpiration\";\nvar _LFA = \"LambdaFunctionArn\";\nvar _LFC = \"LambdaFunctionConfigurations\";\nvar _LFCa = \"LambdaFunctionConfiguration\";\nvar _LI = \"LocationInfo\";\nvar _LM = \"LastModified\";\nvar _LMT = \"LastModifiedTime\";\nvar _LNAS = \"LocationNameAsString\";\nvar _LP = \"LocationPrefix\";\nvar _LR = \"LifecycleRule\";\nvar _LRAO = \"LifecycleRuleAndOperator\";\nvar _LRF = \"LifecycleRuleFilter\";\nvar _LT = \"LocationType\";\nvar _M = \"Marker\";\nvar _MAO = \"MetricsAndOperator\";\nvar _MAS = \"MaxAgeSeconds\";\nvar _MB = \"MaxBuckets\";\nvar _MC = \"MetricsConfiguration\";\nvar _MCL = \"MetricsConfigurationList\";\nvar _MCR = \"MetadataConfigurationResult\";\nvar _MCe = \"MetadataConfiguration\";\nvar _MD = \"MetadataDirective\";\nvar _MDB = \"MaxDirectoryBuckets\";\nvar _MDf = \"MfaDelete\";\nvar _ME = \"MetadataEntry\";\nvar _MF = \"MetricsFilter\";\nvar _MFA = \"MFA\";\nvar _MFAD = \"MFADelete\";\nvar _MI = \"MetricsId\";\nvar _MK = \"MaxKeys\";\nvar _MKe = \"MetadataKey\";\nvar _MM = \"MissingMeta\";\nvar _MOS = \"MpuObjectSize\";\nvar _MP = \"MaxParts\";\nvar _MS = \"MetricsStatus\";\nvar _MTC = \"MetadataTableConfiguration\";\nvar _MTCR = \"MetadataTableConfigurationResult\";\nvar _MTEC = \"MetadataTableEncryptionConfiguration\";\nvar _MU = \"MaxUploads\";\nvar _MV = \"MetadataValue\";\nvar _Me = \"Metrics\";\nvar _Mes = \"Message\";\nvar _Mi = \"Minutes\";\nvar _Mo = \"Mode\";\nvar _N = \"Name\";\nvar _NC = \"NotificationConfiguration\";\nvar _NCF = \"NotificationConfigurationFilter\";\nvar _NCT = \"NextContinuationToken\";\nvar _ND = \"NoncurrentDays\";\nvar _NI = \"NotificationId\";\nvar _NKM = \"NextKeyMarker\";\nvar _NM = \"NextMarker\";\nvar _NNV = \"NewerNoncurrentVersions\";\nvar _NPNM = \"NextPartNumberMarker\";\nvar _NUIM = \"NextUploadIdMarker\";\nvar _NVE = \"NoncurrentVersionExpiration\";\nvar _NVIM = \"NextVersionIdMarker\";\nvar _NVT = \"NoncurrentVersionTransitions\";\nvar _NVTo = \"NoncurrentVersionTransition\";\nvar _O = \"Owner\";\nvar _OA = \"ObjectAttributes\";\nvar _OC = \"OwnershipControls\";\nvar _OCACL = \"ObjectCannedACL\";\nvar _OCR = \"OwnershipControlsRule\";\nvar _OF = \"OptionalFields\";\nvar _OI = \"ObjectIdentifier\";\nvar _OK = \"ObjectKey\";\nvar _OL = \"OutputLocation\";\nvar _OLC = \"ObjectLockConfiguration\";\nvar _OLE = \"ObjectLockEnabled\";\nvar _OLEFB = \"ObjectLockEnabledForBucket\";\nvar _OLLH = \"ObjectLockLegalHold\";\nvar _OLLHS = \"ObjectLockLegalHoldStatus\";\nvar _OLM = \"ObjectLockMode\";\nvar _OLR = \"ObjectLockRetention\";\nvar _OLRM = \"ObjectLockRetentionMode\";\nvar _OLRUD = \"ObjectLockRetainUntilDate\";\nvar _OLRb = \"ObjectLockRule\";\nvar _OO = \"ObjectOwnership\";\nvar _OOA = \"OptionalObjectAttributes\";\nvar _OOw = \"OwnerOverride\";\nvar _OP = \"ObjectParts\";\nvar _OS = \"OutputSerialization\";\nvar _OSGT = \"ObjectSizeGreaterThan\";\nvar _OSGTB = \"ObjectSizeGreaterThanBytes\";\nvar _OSLT = \"ObjectSizeLessThan\";\nvar _OSLTB = \"ObjectSizeLessThanBytes\";\nvar _OSV = \"OutputSchemaVersion\";\nvar _OSb = \"ObjectSize\";\nvar _OVI = \"ObjectVersionId\";\nvar _Ob = \"Objects\";\nvar _P = \"Prefix\";\nvar _PABC = \"PublicAccessBlockConfiguration\";\nvar _PC = \"PartsCount\";\nvar _PDS = \"PartitionDateSource\";\nvar _PI = \"ParquetInput\";\nvar _PN = \"PartNumber\";\nvar _PNM = \"PartNumberMarker\";\nvar _PP = \"PartitionedPrefix\";\nvar _Pa = \"Payer\";\nvar _Par = \"Part\";\nvar _Parq = \"Parquet\";\nvar _Part = \"Parts\";\nvar _Pe = \"Permission\";\nvar _Pr = \"Protocol\";\nvar _Pri = \"Priority\";\nvar _Q = \"Quiet\";\nvar _QA = \"QueueArn\";\nvar _QC = \"QueueConfiguration\";\nvar _QCu = \"QueueConfigurations\";\nvar _QCuo = \"QuoteCharacter\";\nvar _QEC = \"QuoteEscapeCharacter\";\nvar _QF = \"QuoteFields\";\nvar _Qu = \"Queue\";\nvar _R = \"Range\";\nvar _RART = \"RedirectAllRequestsTo\";\nvar _RC = \"RequestCharged\";\nvar _RCC = \"ResponseCacheControl\";\nvar _RCD = \"ResponseContentDisposition\";\nvar _RCE = \"ResponseContentEncoding\";\nvar _RCL = \"ResponseContentLanguage\";\nvar _RCT = \"ResponseContentType\";\nvar _RCe = \"ReplicationConfiguration\";\nvar _RD = \"RecordDelimiter\";\nvar _RE = \"ResponseExpires\";\nvar _RED = \"RecordExpirationDays\";\nvar _REDe = \"RestoreExpiryDate\";\nvar _REe = \"RecordExpiration\";\nvar _RKKID = \"ReplicaKmsKeyID\";\nvar _RKPW = \"ReplaceKeyPrefixWith\";\nvar _RKW = \"ReplaceKeyWith\";\nvar _RM = \"ReplicaModifications\";\nvar _RMS = \"ReplicaModificationsStatus\";\nvar _ROP = \"RestoreOutputPath\";\nvar _RP = \"RequestPayer\";\nvar _RPB = \"RestrictPublicBuckets\";\nvar _RPC = \"RequestPaymentConfiguration\";\nvar _RPe = \"RequestProgress\";\nvar _RR = \"RequestRoute\";\nvar _RRAO = \"ReplicationRuleAndOperator\";\nvar _RRF = \"ReplicationRuleFilter\";\nvar _RRS = \"ReplicationRuleStatus\";\nvar _RRT = \"RestoreRequestType\";\nvar _RRe = \"ReplicationRule\";\nvar _RRes = \"RestoreRequest\";\nvar _RRo = \"RoutingRules\";\nvar _RRou = \"RoutingRule\";\nvar _RS = \"RenameSource\";\nvar _RSe = \"ReplicationStatus\";\nvar _RSes = \"RestoreStatus\";\nvar _RT = \"RequestToken\";\nvar _RTS = \"ReplicationTimeStatus\";\nvar _RTV = \"ReplicationTimeValue\";\nvar _RTe = \"ReplicationTime\";\nvar _RUD = \"RetainUntilDate\";\nvar _Re = \"Restore\";\nvar _Red = \"Redirect\";\nvar _Ro = \"Role\";\nvar _Ru = \"Rule\";\nvar _Rul = \"Rules\";\nvar _S = \"Status\";\nvar _SA = \"StartAfter\";\nvar _SAK = \"SecretAccessKey\";\nvar _SAs = \"SseAlgorithm\";\nvar _SBD = \"S3BucketDestination\";\nvar _SC = \"StorageClass\";\nvar _SCA = \"StorageClassAnalysis\";\nvar _SCADE = \"StorageClassAnalysisDataExport\";\nvar _SCASV = \"StorageClassAnalysisSchemaVersion\";\nvar _SCt = \"StatusCode\";\nvar _SDV = \"SkipDestinationValidation\";\nvar _SIM = \"SourceIfMatch\";\nvar _SIMS = \"SourceIfModifiedSince\";\nvar _SINM = \"SourceIfNoneMatch\";\nvar _SIUS = \"SourceIfUnmodifiedSince\";\nvar _SK = \"SSE-KMS\";\nvar _SKEO = \"SseKmsEncryptedObjects\";\nvar _SKEOS = \"SseKmsEncryptedObjectsStatus\";\nvar _SKF = \"S3KeyFilter\";\nvar _SKe = \"S3Key\";\nvar _SL = \"S3Location\";\nvar _SM = \"SessionMode\";\nvar _SOCR = \"SelectObjectContentRequest\";\nvar _SP = \"SelectParameters\";\nvar _SPi = \"SimplePrefix\";\nvar _SR = \"ScanRange\";\nvar _SS = \"SSE-S3\";\nvar _SSC = \"SourceSelectionCriteria\";\nvar _SSE = \"ServerSideEncryption\";\nvar _SSEA = \"SSEAlgorithm\";\nvar _SSEBD = \"ServerSideEncryptionByDefault\";\nvar _SSEC = \"ServerSideEncryptionConfiguration\";\nvar _SSECA = \"SSECustomerAlgorithm\";\nvar _SSECK = \"SSECustomerKey\";\nvar _SSECKMD = \"SSECustomerKeyMD5\";\nvar _SSEKMS = \"SSEKMS\";\nvar _SSEKMSEC = \"SSEKMSEncryptionContext\";\nvar _SSEKMSKI = \"SSEKMSKeyId\";\nvar _SSER = \"ServerSideEncryptionRule\";\nvar _SSES = \"SSES3\";\nvar _ST = \"SessionToken\";\nvar _STBA = \"S3TablesBucketArn\";\nvar _STD = \"S3TablesDestination\";\nvar _STDR = \"S3TablesDestinationResult\";\nvar _STN = \"S3TablesName\";\nvar _S_ = \"S3\";\nvar _Sc = \"Schedule\";\nvar _Se = \"Setting\";\nvar _Si = \"Size\";\nvar _St = \"Start\";\nvar _Su = \"Suffix\";\nvar _T = \"Tagging\";\nvar _TA = \"TopicArn\";\nvar _TAa = \"TableArn\";\nvar _TB = \"TargetBucket\";\nvar _TBA = \"TableBucketArn\";\nvar _TBT = \"TableBucketType\";\nvar _TC = \"TagCount\";\nvar _TCo = \"TopicConfiguration\";\nvar _TCop = \"TopicConfigurations\";\nvar _TD = \"TaggingDirective\";\nvar _TDMOS = \"TransitionDefaultMinimumObjectSize\";\nvar _TG = \"TargetGrants\";\nvar _TGa = \"TargetGrant\";\nvar _TN = \"TableName\";\nvar _TNa = \"TableNamespace\";\nvar _TOKF = \"TargetObjectKeyFormat\";\nvar _TP = \"TargetPrefix\";\nvar _TPC = \"TotalPartsCount\";\nvar _TS = \"TagSet\";\nvar _TSA = \"TableSseAlgorithm\";\nvar _TSC = \"TransitionStorageClass\";\nvar _TSa = \"TableStatus\";\nvar _Ta = \"Tag\";\nvar _Tag = \"Tags\";\nvar _Ti = \"Tier\";\nvar _Tie = \"Tierings\";\nvar _Tier = \"Tiering\";\nvar _Tim = \"Time\";\nvar _To = \"Token\";\nvar _Top = \"Topic\";\nvar _Tr = \"Transitions\";\nvar _Tra = \"Transition\";\nvar _Ty = \"Type\";\nvar _U = \"Upload\";\nvar _UI = \"UploadId\";\nvar _UIM = \"UploadIdMarker\";\nvar _UM = \"UserMetadata\";\nvar _URI = \"URI\";\nvar _Up = \"Uploads\";\nvar _V = \"Version\";\nvar _VC = \"VersionCount\";\nvar _VCe = \"VersioningConfiguration\";\nvar _VI = \"VersionId\";\nvar _VIM = \"VersionIdMarker\";\nvar _Va = \"Value\";\nvar _Ve = \"Versions\";\nvar _WC = \"WebsiteConfiguration\";\nvar _WOB = \"WriteOffsetBytes\";\nvar _WRL = \"WebsiteRedirectLocation\";\nvar _Y = \"Years\";\nvar _a = \"analytics\";\nvar _ac = \"accelerate\";\nvar _acl = \"acl\";\nvar _ar = \"accept-ranges\";\nvar _at = \"attributes\";\nvar _br = \"bucket-region\";\nvar _c = \"cors\";\nvar _cc = \"cache-control\";\nvar _cd = \"content-disposition\";\nvar _ce = \"content-encoding\";\nvar _cl = \"content-language\";\nvar _cl_ = \"content-length\";\nvar _cm = \"content-md5\";\nvar _cr = \"content-range\";\nvar _ct = \"content-type\";\nvar _ct_ = \"continuation-token\";\nvar _d = \"delete\";\nvar _de = \"delimiter\";\nvar _e = \"expires\";\nvar _en = \"encryption\";\nvar _et = \"encoding-type\";\nvar _eta = \"etag\";\nvar _ex = \"expiresstring\";\nvar _fo = \"fetch-owner\";\nvar _i = \"id\";\nvar _im = \"if-match\";\nvar _ims = \"if-modified-since\";\nvar _in = \"inventory\";\nvar _inm = \"if-none-match\";\nvar _it = \"intelligent-tiering\";\nvar _ius = \"if-unmodified-since\";\nvar _km = \"key-marker\";\nvar _l = \"lifecycle\";\nvar _lh = \"legal-hold\";\nvar _lm = \"last-modified\";\nvar _lo = \"location\";\nvar _log = \"logging\";\nvar _lt = \"list-type\";\nvar _m = \"metrics\";\nvar _mC = \"metadataConfiguration\";\nvar _mIT = \"metadataInventoryTable\";\nvar _mJT = \"metadataJournalTable\";\nvar _mT = \"metadataTable\";\nvar _ma = \"marker\";\nvar _mb = \"max-buckets\";\nvar _mdb = \"max-directory-buckets\";\nvar _me = \"member\";\nvar _mk = \"max-keys\";\nvar _mp = \"max-parts\";\nvar _mu = \"max-uploads\";\nvar _n = \"notification\";\nvar _oC = \"ownershipControls\";\nvar _ol = \"object-lock\";\nvar _p = \"policy\";\nvar _pAB = \"publicAccessBlock\";\nvar _pN = \"partNumber\";\nvar _pS = \"policyStatus\";\nvar _pnm = \"part-number-marker\";\nvar _pr = \"prefix\";\nvar _r = \"replication\";\nvar _rO = \"renameObject\";\nvar _rP = \"requestPayment\";\nvar _ra = \"range\";\nvar _rcc = \"response-cache-control\";\nvar _rcd = \"response-content-disposition\";\nvar _rce = \"response-content-encoding\";\nvar _rcl = \"response-content-language\";\nvar _rct = \"response-content-type\";\nvar _re = \"response-expires\";\nvar _res = \"restore\";\nvar _ret = \"retention\";\nvar _s = \"session\";\nvar _sa = \"start-after\";\nvar _se = \"select\";\nvar _st = \"select-type\";\nvar _t = \"tagging\";\nvar _to = \"torrent\";\nvar _u = \"uploads\";\nvar _uI = \"uploadId\";\nvar _uim = \"upload-id-marker\";\nvar _v = \"versioning\";\nvar _vI = \"versionId\";\nvar _ve = '';\nvar _ver = \"versions\";\nvar _vim = \"version-id-marker\";\nvar _w = \"website\";\nvar _x = \"xsi:type\";\nvar _xaa = \"x-amz-acl\";\nvar _xaad = \"x-amz-abort-date\";\nvar _xaapa = \"x-amz-access-point-alias\";\nvar _xaari = \"x-amz-abort-rule-id\";\nvar _xaas = \"x-amz-archive-status\";\nvar _xaba = \"x-amz-bucket-arn\";\nvar _xabgr = \"x-amz-bypass-governance-retention\";\nvar _xabln = \"x-amz-bucket-location-name\";\nvar _xablt = \"x-amz-bucket-location-type\";\nvar _xabole = \"x-amz-bucket-object-lock-enabled\";\nvar _xabolt = \"x-amz-bucket-object-lock-token\";\nvar _xabr = \"x-amz-bucket-region\";\nvar _xaca = \"x-amz-checksum-algorithm\";\nvar _xacc = \"x-amz-checksum-crc32\";\nvar _xacc_ = \"x-amz-checksum-crc32c\";\nvar _xacc__ = \"x-amz-checksum-crc64nvme\";\nvar _xacm = \"x-amz-checksum-mode\";\nvar _xacrsba = \"x-amz-confirm-remove-self-bucket-access\";\nvar _xacs = \"x-amz-checksum-sha1\";\nvar _xacs_ = \"x-amz-checksum-sha256\";\nvar _xacs__ = \"x-amz-copy-source\";\nvar _xacsim = \"x-amz-copy-source-if-match\";\nvar _xacsims = \"x-amz-copy-source-if-modified-since\";\nvar _xacsinm = \"x-amz-copy-source-if-none-match\";\nvar _xacsius = \"x-amz-copy-source-if-unmodified-since\";\nvar _xacsm = \"x-amz-create-session-mode\";\nvar _xacsr = \"x-amz-copy-source-range\";\nvar _xacssseca = \"x-amz-copy-source-server-side-encryption-customer-algorithm\";\nvar _xacssseck = \"x-amz-copy-source-server-side-encryption-customer-key\";\nvar _xacssseckm = \"x-amz-copy-source-server-side-encryption-customer-key-md5\";\nvar _xacsvi = \"x-amz-copy-source-version-id\";\nvar _xact = \"x-amz-checksum-type\";\nvar _xact_ = \"x-amz-client-token\";\nvar _xadm = \"x-amz-delete-marker\";\nvar _xae = \"x-amz-expiration\";\nvar _xaebo = \"x-amz-expected-bucket-owner\";\nvar _xafec = \"x-amz-fwd-error-code\";\nvar _xafem = \"x-amz-fwd-error-message\";\nvar _xafhar = \"x-amz-fwd-header-accept-ranges\";\nvar _xafhcc = \"x-amz-fwd-header-cache-control\";\nvar _xafhcd = \"x-amz-fwd-header-content-disposition\";\nvar _xafhce = \"x-amz-fwd-header-content-encoding\";\nvar _xafhcl = \"x-amz-fwd-header-content-language\";\nvar _xafhcr = \"x-amz-fwd-header-content-range\";\nvar _xafhct = \"x-amz-fwd-header-content-type\";\nvar _xafhe = \"x-amz-fwd-header-etag\";\nvar _xafhe_ = \"x-amz-fwd-header-expires\";\nvar _xafhlm = \"x-amz-fwd-header-last-modified\";\nvar _xafhxacc = \"x-amz-fwd-header-x-amz-checksum-crc32\";\nvar _xafhxacc_ = \"x-amz-fwd-header-x-amz-checksum-crc32c\";\nvar _xafhxacc__ = \"x-amz-fwd-header-x-amz-checksum-crc64nvme\";\nvar _xafhxacs = \"x-amz-fwd-header-x-amz-checksum-sha1\";\nvar _xafhxacs_ = \"x-amz-fwd-header-x-amz-checksum-sha256\";\nvar _xafhxadm = \"x-amz-fwd-header-x-amz-delete-marker\";\nvar _xafhxae = \"x-amz-fwd-header-x-amz-expiration\";\nvar _xafhxamm = \"x-amz-fwd-header-x-amz-missing-meta\";\nvar _xafhxampc = \"x-amz-fwd-header-x-amz-mp-parts-count\";\nvar _xafhxaollh = \"x-amz-fwd-header-x-amz-object-lock-legal-hold\";\nvar _xafhxaolm = \"x-amz-fwd-header-x-amz-object-lock-mode\";\nvar _xafhxaolrud = \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\";\nvar _xafhxar = \"x-amz-fwd-header-x-amz-restore\";\nvar _xafhxarc = \"x-amz-fwd-header-x-amz-request-charged\";\nvar _xafhxars = \"x-amz-fwd-header-x-amz-replication-status\";\nvar _xafhxasc = \"x-amz-fwd-header-x-amz-storage-class\";\nvar _xafhxasse = \"x-amz-fwd-header-x-amz-server-side-encryption\";\nvar _xafhxasseakki = \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\";\nvar _xafhxassebke = \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\";\nvar _xafhxasseca = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\";\nvar _xafhxasseckm = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5\";\nvar _xafhxatc = \"x-amz-fwd-header-x-amz-tagging-count\";\nvar _xafhxavi = \"x-amz-fwd-header-x-amz-version-id\";\nvar _xafs = \"x-amz-fwd-status\";\nvar _xagfc = \"x-amz-grant-full-control\";\nvar _xagr = \"x-amz-grant-read\";\nvar _xagra = \"x-amz-grant-read-acp\";\nvar _xagw = \"x-amz-grant-write\";\nvar _xagwa = \"x-amz-grant-write-acp\";\nvar _xaimit = \"x-amz-if-match-initiated-time\";\nvar _xaimlmt = \"x-amz-if-match-last-modified-time\";\nvar _xaims = \"x-amz-if-match-size\";\nvar _xam = \"x-amz-mfa\";\nvar _xamd = \"x-amz-metadata-directive\";\nvar _xamm = \"x-amz-missing-meta\";\nvar _xamos = \"x-amz-mp-object-size\";\nvar _xamp = \"x-amz-max-parts\";\nvar _xampc = \"x-amz-mp-parts-count\";\nvar _xaoa = \"x-amz-object-attributes\";\nvar _xaollh = \"x-amz-object-lock-legal-hold\";\nvar _xaolm = \"x-amz-object-lock-mode\";\nvar _xaolrud = \"x-amz-object-lock-retain-until-date\";\nvar _xaoo = \"x-amz-object-ownership\";\nvar _xaooa = \"x-amz-optional-object-attributes\";\nvar _xaos = \"x-amz-object-size\";\nvar _xapnm = \"x-amz-part-number-marker\";\nvar _xar = \"x-amz-restore\";\nvar _xarc = \"x-amz-request-charged\";\nvar _xarop = \"x-amz-restore-output-path\";\nvar _xarp = \"x-amz-request-payer\";\nvar _xarr = \"x-amz-request-route\";\nvar _xars = \"x-amz-rename-source\";\nvar _xars_ = \"x-amz-replication-status\";\nvar _xarsim = \"x-amz-rename-source-if-match\";\nvar _xarsims = \"x-amz-rename-source-if-modified-since\";\nvar _xarsinm = \"x-amz-rename-source-if-none-match\";\nvar _xarsius = \"x-amz-rename-source-if-unmodified-since\";\nvar _xart = \"x-amz-request-token\";\nvar _xasc = \"x-amz-storage-class\";\nvar _xasca = \"x-amz-sdk-checksum-algorithm\";\nvar _xasdv = \"x-amz-skip-destination-validation\";\nvar _xasebo = \"x-amz-source-expected-bucket-owner\";\nvar _xasse = \"x-amz-server-side-encryption\";\nvar _xasseakki = \"x-amz-server-side-encryption-aws-kms-key-id\";\nvar _xassebke = \"x-amz-server-side-encryption-bucket-key-enabled\";\nvar _xassec = \"x-amz-server-side-encryption-context\";\nvar _xasseca = \"x-amz-server-side-encryption-customer-algorithm\";\nvar _xasseck = \"x-amz-server-side-encryption-customer-key\";\nvar _xasseckm = \"x-amz-server-side-encryption-customer-key-md5\";\nvar _xat = \"x-amz-tagging\";\nvar _xatc = \"x-amz-tagging-count\";\nvar _xatd = \"x-amz-tagging-directive\";\nvar _xatdmos = \"x-amz-transition-default-minimum-object-size\";\nvar _xavi = \"x-amz-version-id\";\nvar _xawob = \"x-amz-write-offset-bytes\";\nvar _xawrl = \"x-amz-website-redirect-location\";\nvar _xi = \"x-id\";\n\n// src/commands/CreateSessionCommand.ts\nvar CreateSessionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s3.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CreateSession\", {}).n(\"S3Client\", \"CreateSessionCommand\").f(CreateSessionRequestFilterSensitiveLog, CreateSessionOutputFilterSensitiveLog).ser(se_CreateSessionCommand).de(de_CreateSessionCommand).build() {\n static {\n __name(this, \"CreateSessionCommand\");\n }\n};\n\n// src/S3Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\n\n\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/S3Client.ts\nvar S3Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"S3Client\");\n }\n /**\n * The resolved configuration of S3Client class. This is resolved and normalized from the {@link S3ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_flexible_checksums.resolveFlexibleChecksumsConfig)(_config_2);\n const _config_4 = (0, import_middleware_retry.resolveRetryConfig)(_config_3);\n const _config_5 = (0, import_config_resolver.resolveRegionConfig)(_config_4);\n const _config_6 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_5);\n const _config_7 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_6);\n const _config_8 = (0, import_eventstream_serde_config_resolver.resolveEventStreamSerdeConfig)(_config_7);\n const _config_9 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_8);\n const _config_10 = (0, import_middleware_sdk_s32.resolveS3Config)(_config_9, { session: [() => this, CreateSessionCommand] });\n const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []);\n this.config = _config_11;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core3.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultS3HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core3.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n \"aws.auth#sigv4a\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core3.getHttpSigningPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getValidateBucketNamePlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_expect_continue.getAddExpectContinuePlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getRegionRedirectMiddlewarePlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getS3ExpressPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getS3ExpressHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/S3.ts\n\n\n// src/commands/AbortMultipartUploadCommand.ts\nvar import_middleware_sdk_s33 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar AbortMultipartUploadCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s33.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"AbortMultipartUpload\", {}).n(\"S3Client\", \"AbortMultipartUploadCommand\").f(void 0, void 0).ser(se_AbortMultipartUploadCommand).de(de_AbortMultipartUploadCommand).build() {\n static {\n __name(this, \"AbortMultipartUploadCommand\");\n }\n};\n\n// src/commands/CompleteMultipartUploadCommand.ts\nvar import_middleware_sdk_s34 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_middleware_ssec = require(\"@aws-sdk/middleware-ssec\");\n\n\n\nvar CompleteMultipartUploadCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s34.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CompleteMultipartUpload\", {}).n(\"S3Client\", \"CompleteMultipartUploadCommand\").f(CompleteMultipartUploadRequestFilterSensitiveLog, CompleteMultipartUploadOutputFilterSensitiveLog).ser(se_CompleteMultipartUploadCommand).de(de_CompleteMultipartUploadCommand).build() {\n static {\n __name(this, \"CompleteMultipartUploadCommand\");\n }\n};\n\n// src/commands/CopyObjectCommand.ts\nvar import_middleware_sdk_s35 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar CopyObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" },\n CopySource: { type: \"contextParams\", name: \"CopySource\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s35.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CopyObject\", {}).n(\"S3Client\", \"CopyObjectCommand\").f(CopyObjectRequestFilterSensitiveLog, CopyObjectOutputFilterSensitiveLog).ser(se_CopyObjectCommand).de(de_CopyObjectCommand).build() {\n static {\n __name(this, \"CopyObjectCommand\");\n }\n};\n\n// src/commands/CreateBucketCommand.ts\nvar import_middleware_location_constraint = require(\"@aws-sdk/middleware-location-constraint\");\nvar import_middleware_sdk_s36 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar CreateBucketCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n DisableAccessPoints: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s36.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_location_constraint.getLocationConstraintPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CreateBucket\", {}).n(\"S3Client\", \"CreateBucketCommand\").f(void 0, void 0).ser(se_CreateBucketCommand).de(de_CreateBucketCommand).build() {\n static {\n __name(this, \"CreateBucketCommand\");\n }\n};\n\n// src/commands/CreateBucketMetadataConfigurationCommand.ts\n\n\n\n\nvar CreateBucketMetadataConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"CreateBucketMetadataConfiguration\", {}).n(\"S3Client\", \"CreateBucketMetadataConfigurationCommand\").f(void 0, void 0).ser(se_CreateBucketMetadataConfigurationCommand).de(de_CreateBucketMetadataConfigurationCommand).build() {\n static {\n __name(this, \"CreateBucketMetadataConfigurationCommand\");\n }\n};\n\n// src/commands/CreateBucketMetadataTableConfigurationCommand.ts\n\n\n\n\nvar CreateBucketMetadataTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"CreateBucketMetadataTableConfiguration\", {}).n(\"S3Client\", \"CreateBucketMetadataTableConfigurationCommand\").f(void 0, void 0).ser(se_CreateBucketMetadataTableConfigurationCommand).de(de_CreateBucketMetadataTableConfigurationCommand).build() {\n static {\n __name(this, \"CreateBucketMetadataTableConfigurationCommand\");\n }\n};\n\n// src/commands/CreateMultipartUploadCommand.ts\nvar import_middleware_sdk_s37 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar CreateMultipartUploadCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s37.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CreateMultipartUpload\", {}).n(\"S3Client\", \"CreateMultipartUploadCommand\").f(CreateMultipartUploadRequestFilterSensitiveLog, CreateMultipartUploadOutputFilterSensitiveLog).ser(se_CreateMultipartUploadCommand).de(de_CreateMultipartUploadCommand).build() {\n static {\n __name(this, \"CreateMultipartUploadCommand\");\n }\n};\n\n// src/commands/DeleteBucketAnalyticsConfigurationCommand.ts\n\n\n\nvar DeleteBucketAnalyticsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketAnalyticsConfiguration\", {}).n(\"S3Client\", \"DeleteBucketAnalyticsConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketAnalyticsConfigurationCommand).de(de_DeleteBucketAnalyticsConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketAnalyticsConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketCommand.ts\n\n\n\nvar DeleteBucketCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucket\", {}).n(\"S3Client\", \"DeleteBucketCommand\").f(void 0, void 0).ser(se_DeleteBucketCommand).de(de_DeleteBucketCommand).build() {\n static {\n __name(this, \"DeleteBucketCommand\");\n }\n};\n\n// src/commands/DeleteBucketCorsCommand.ts\n\n\n\nvar DeleteBucketCorsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketCors\", {}).n(\"S3Client\", \"DeleteBucketCorsCommand\").f(void 0, void 0).ser(se_DeleteBucketCorsCommand).de(de_DeleteBucketCorsCommand).build() {\n static {\n __name(this, \"DeleteBucketCorsCommand\");\n }\n};\n\n// src/commands/DeleteBucketEncryptionCommand.ts\n\n\n\nvar DeleteBucketEncryptionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketEncryption\", {}).n(\"S3Client\", \"DeleteBucketEncryptionCommand\").f(void 0, void 0).ser(se_DeleteBucketEncryptionCommand).de(de_DeleteBucketEncryptionCommand).build() {\n static {\n __name(this, \"DeleteBucketEncryptionCommand\");\n }\n};\n\n// src/commands/DeleteBucketIntelligentTieringConfigurationCommand.ts\n\n\n\nvar DeleteBucketIntelligentTieringConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketIntelligentTieringConfiguration\", {}).n(\"S3Client\", \"DeleteBucketIntelligentTieringConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketIntelligentTieringConfigurationCommand).de(de_DeleteBucketIntelligentTieringConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketIntelligentTieringConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketInventoryConfigurationCommand.ts\n\n\n\nvar DeleteBucketInventoryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketInventoryConfiguration\", {}).n(\"S3Client\", \"DeleteBucketInventoryConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketInventoryConfigurationCommand).de(de_DeleteBucketInventoryConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketInventoryConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketLifecycleCommand.ts\n\n\n\nvar DeleteBucketLifecycleCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketLifecycle\", {}).n(\"S3Client\", \"DeleteBucketLifecycleCommand\").f(void 0, void 0).ser(se_DeleteBucketLifecycleCommand).de(de_DeleteBucketLifecycleCommand).build() {\n static {\n __name(this, \"DeleteBucketLifecycleCommand\");\n }\n};\n\n// src/commands/DeleteBucketMetadataConfigurationCommand.ts\n\n\n\nvar DeleteBucketMetadataConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketMetadataConfiguration\", {}).n(\"S3Client\", \"DeleteBucketMetadataConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketMetadataConfigurationCommand).de(de_DeleteBucketMetadataConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketMetadataConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketMetadataTableConfigurationCommand.ts\n\n\n\nvar DeleteBucketMetadataTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketMetadataTableConfiguration\", {}).n(\"S3Client\", \"DeleteBucketMetadataTableConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketMetadataTableConfigurationCommand).de(de_DeleteBucketMetadataTableConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketMetadataTableConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketMetricsConfigurationCommand.ts\n\n\n\nvar DeleteBucketMetricsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketMetricsConfiguration\", {}).n(\"S3Client\", \"DeleteBucketMetricsConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketMetricsConfigurationCommand).de(de_DeleteBucketMetricsConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketMetricsConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketOwnershipControlsCommand.ts\n\n\n\nvar DeleteBucketOwnershipControlsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketOwnershipControls\", {}).n(\"S3Client\", \"DeleteBucketOwnershipControlsCommand\").f(void 0, void 0).ser(se_DeleteBucketOwnershipControlsCommand).de(de_DeleteBucketOwnershipControlsCommand).build() {\n static {\n __name(this, \"DeleteBucketOwnershipControlsCommand\");\n }\n};\n\n// src/commands/DeleteBucketPolicyCommand.ts\n\n\n\nvar DeleteBucketPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketPolicy\", {}).n(\"S3Client\", \"DeleteBucketPolicyCommand\").f(void 0, void 0).ser(se_DeleteBucketPolicyCommand).de(de_DeleteBucketPolicyCommand).build() {\n static {\n __name(this, \"DeleteBucketPolicyCommand\");\n }\n};\n\n// src/commands/DeleteBucketReplicationCommand.ts\n\n\n\nvar DeleteBucketReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketReplication\", {}).n(\"S3Client\", \"DeleteBucketReplicationCommand\").f(void 0, void 0).ser(se_DeleteBucketReplicationCommand).de(de_DeleteBucketReplicationCommand).build() {\n static {\n __name(this, \"DeleteBucketReplicationCommand\");\n }\n};\n\n// src/commands/DeleteBucketTaggingCommand.ts\n\n\n\nvar DeleteBucketTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketTagging\", {}).n(\"S3Client\", \"DeleteBucketTaggingCommand\").f(void 0, void 0).ser(se_DeleteBucketTaggingCommand).de(de_DeleteBucketTaggingCommand).build() {\n static {\n __name(this, \"DeleteBucketTaggingCommand\");\n }\n};\n\n// src/commands/DeleteBucketWebsiteCommand.ts\n\n\n\nvar DeleteBucketWebsiteCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketWebsite\", {}).n(\"S3Client\", \"DeleteBucketWebsiteCommand\").f(void 0, void 0).ser(se_DeleteBucketWebsiteCommand).de(de_DeleteBucketWebsiteCommand).build() {\n static {\n __name(this, \"DeleteBucketWebsiteCommand\");\n }\n};\n\n// src/commands/DeleteObjectCommand.ts\nvar import_middleware_sdk_s38 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar DeleteObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s38.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"DeleteObject\", {}).n(\"S3Client\", \"DeleteObjectCommand\").f(void 0, void 0).ser(se_DeleteObjectCommand).de(de_DeleteObjectCommand).build() {\n static {\n __name(this, \"DeleteObjectCommand\");\n }\n};\n\n// src/commands/DeleteObjectsCommand.ts\n\nvar import_middleware_sdk_s39 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar DeleteObjectsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s39.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"DeleteObjects\", {}).n(\"S3Client\", \"DeleteObjectsCommand\").f(void 0, void 0).ser(se_DeleteObjectsCommand).de(de_DeleteObjectsCommand).build() {\n static {\n __name(this, \"DeleteObjectsCommand\");\n }\n};\n\n// src/commands/DeleteObjectTaggingCommand.ts\nvar import_middleware_sdk_s310 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar DeleteObjectTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s310.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"DeleteObjectTagging\", {}).n(\"S3Client\", \"DeleteObjectTaggingCommand\").f(void 0, void 0).ser(se_DeleteObjectTaggingCommand).de(de_DeleteObjectTaggingCommand).build() {\n static {\n __name(this, \"DeleteObjectTaggingCommand\");\n }\n};\n\n// src/commands/DeletePublicAccessBlockCommand.ts\n\n\n\nvar DeletePublicAccessBlockCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeletePublicAccessBlock\", {}).n(\"S3Client\", \"DeletePublicAccessBlockCommand\").f(void 0, void 0).ser(se_DeletePublicAccessBlockCommand).de(de_DeletePublicAccessBlockCommand).build() {\n static {\n __name(this, \"DeletePublicAccessBlockCommand\");\n }\n};\n\n// src/commands/GetBucketAccelerateConfigurationCommand.ts\nvar import_middleware_sdk_s311 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketAccelerateConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s311.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketAccelerateConfiguration\", {}).n(\"S3Client\", \"GetBucketAccelerateConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketAccelerateConfigurationCommand).de(de_GetBucketAccelerateConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketAccelerateConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketAclCommand.ts\nvar import_middleware_sdk_s312 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s312.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketAcl\", {}).n(\"S3Client\", \"GetBucketAclCommand\").f(void 0, void 0).ser(se_GetBucketAclCommand).de(de_GetBucketAclCommand).build() {\n static {\n __name(this, \"GetBucketAclCommand\");\n }\n};\n\n// src/commands/GetBucketAnalyticsConfigurationCommand.ts\nvar import_middleware_sdk_s313 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketAnalyticsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s313.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketAnalyticsConfiguration\", {}).n(\"S3Client\", \"GetBucketAnalyticsConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketAnalyticsConfigurationCommand).de(de_GetBucketAnalyticsConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketAnalyticsConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketCorsCommand.ts\nvar import_middleware_sdk_s314 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketCorsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s314.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketCors\", {}).n(\"S3Client\", \"GetBucketCorsCommand\").f(void 0, void 0).ser(se_GetBucketCorsCommand).de(de_GetBucketCorsCommand).build() {\n static {\n __name(this, \"GetBucketCorsCommand\");\n }\n};\n\n// src/commands/GetBucketEncryptionCommand.ts\nvar import_middleware_sdk_s315 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketEncryptionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s315.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketEncryption\", {}).n(\"S3Client\", \"GetBucketEncryptionCommand\").f(void 0, GetBucketEncryptionOutputFilterSensitiveLog).ser(se_GetBucketEncryptionCommand).de(de_GetBucketEncryptionCommand).build() {\n static {\n __name(this, \"GetBucketEncryptionCommand\");\n }\n};\n\n// src/commands/GetBucketIntelligentTieringConfigurationCommand.ts\nvar import_middleware_sdk_s316 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketIntelligentTieringConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s316.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketIntelligentTieringConfiguration\", {}).n(\"S3Client\", \"GetBucketIntelligentTieringConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketIntelligentTieringConfigurationCommand).de(de_GetBucketIntelligentTieringConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketIntelligentTieringConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketInventoryConfigurationCommand.ts\nvar import_middleware_sdk_s317 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketInventoryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s317.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketInventoryConfiguration\", {}).n(\"S3Client\", \"GetBucketInventoryConfigurationCommand\").f(void 0, GetBucketInventoryConfigurationOutputFilterSensitiveLog).ser(se_GetBucketInventoryConfigurationCommand).de(de_GetBucketInventoryConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketInventoryConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketLifecycleConfigurationCommand.ts\nvar import_middleware_sdk_s318 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketLifecycleConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s318.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketLifecycleConfiguration\", {}).n(\"S3Client\", \"GetBucketLifecycleConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketLifecycleConfigurationCommand).de(de_GetBucketLifecycleConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketLifecycleConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketLocationCommand.ts\nvar import_middleware_sdk_s319 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketLocationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s319.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketLocation\", {}).n(\"S3Client\", \"GetBucketLocationCommand\").f(void 0, void 0).ser(se_GetBucketLocationCommand).de(de_GetBucketLocationCommand).build() {\n static {\n __name(this, \"GetBucketLocationCommand\");\n }\n};\n\n// src/commands/GetBucketLoggingCommand.ts\nvar import_middleware_sdk_s320 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketLoggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s320.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketLogging\", {}).n(\"S3Client\", \"GetBucketLoggingCommand\").f(void 0, void 0).ser(se_GetBucketLoggingCommand).de(de_GetBucketLoggingCommand).build() {\n static {\n __name(this, \"GetBucketLoggingCommand\");\n }\n};\n\n// src/commands/GetBucketMetadataConfigurationCommand.ts\nvar import_middleware_sdk_s321 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketMetadataConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s321.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketMetadataConfiguration\", {}).n(\"S3Client\", \"GetBucketMetadataConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketMetadataConfigurationCommand).de(de_GetBucketMetadataConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketMetadataConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketMetadataTableConfigurationCommand.ts\nvar import_middleware_sdk_s322 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketMetadataTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s322.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketMetadataTableConfiguration\", {}).n(\"S3Client\", \"GetBucketMetadataTableConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketMetadataTableConfigurationCommand).de(de_GetBucketMetadataTableConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketMetadataTableConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketMetricsConfigurationCommand.ts\nvar import_middleware_sdk_s323 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketMetricsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s323.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketMetricsConfiguration\", {}).n(\"S3Client\", \"GetBucketMetricsConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketMetricsConfigurationCommand).de(de_GetBucketMetricsConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketMetricsConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketNotificationConfigurationCommand.ts\nvar import_middleware_sdk_s324 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketNotificationConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s324.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketNotificationConfiguration\", {}).n(\"S3Client\", \"GetBucketNotificationConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketNotificationConfigurationCommand).de(de_GetBucketNotificationConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketNotificationConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketOwnershipControlsCommand.ts\nvar import_middleware_sdk_s325 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketOwnershipControlsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s325.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketOwnershipControls\", {}).n(\"S3Client\", \"GetBucketOwnershipControlsCommand\").f(void 0, void 0).ser(se_GetBucketOwnershipControlsCommand).de(de_GetBucketOwnershipControlsCommand).build() {\n static {\n __name(this, \"GetBucketOwnershipControlsCommand\");\n }\n};\n\n// src/commands/GetBucketPolicyCommand.ts\nvar import_middleware_sdk_s326 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s326.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketPolicy\", {}).n(\"S3Client\", \"GetBucketPolicyCommand\").f(void 0, void 0).ser(se_GetBucketPolicyCommand).de(de_GetBucketPolicyCommand).build() {\n static {\n __name(this, \"GetBucketPolicyCommand\");\n }\n};\n\n// src/commands/GetBucketPolicyStatusCommand.ts\nvar import_middleware_sdk_s327 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketPolicyStatusCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s327.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketPolicyStatus\", {}).n(\"S3Client\", \"GetBucketPolicyStatusCommand\").f(void 0, void 0).ser(se_GetBucketPolicyStatusCommand).de(de_GetBucketPolicyStatusCommand).build() {\n static {\n __name(this, \"GetBucketPolicyStatusCommand\");\n }\n};\n\n// src/commands/GetBucketReplicationCommand.ts\nvar import_middleware_sdk_s328 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s328.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketReplication\", {}).n(\"S3Client\", \"GetBucketReplicationCommand\").f(void 0, void 0).ser(se_GetBucketReplicationCommand).de(de_GetBucketReplicationCommand).build() {\n static {\n __name(this, \"GetBucketReplicationCommand\");\n }\n};\n\n// src/commands/GetBucketRequestPaymentCommand.ts\nvar import_middleware_sdk_s329 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketRequestPaymentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s329.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketRequestPayment\", {}).n(\"S3Client\", \"GetBucketRequestPaymentCommand\").f(void 0, void 0).ser(se_GetBucketRequestPaymentCommand).de(de_GetBucketRequestPaymentCommand).build() {\n static {\n __name(this, \"GetBucketRequestPaymentCommand\");\n }\n};\n\n// src/commands/GetBucketTaggingCommand.ts\nvar import_middleware_sdk_s330 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s330.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketTagging\", {}).n(\"S3Client\", \"GetBucketTaggingCommand\").f(void 0, void 0).ser(se_GetBucketTaggingCommand).de(de_GetBucketTaggingCommand).build() {\n static {\n __name(this, \"GetBucketTaggingCommand\");\n }\n};\n\n// src/commands/GetBucketVersioningCommand.ts\nvar import_middleware_sdk_s331 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketVersioningCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s331.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketVersioning\", {}).n(\"S3Client\", \"GetBucketVersioningCommand\").f(void 0, void 0).ser(se_GetBucketVersioningCommand).de(de_GetBucketVersioningCommand).build() {\n static {\n __name(this, \"GetBucketVersioningCommand\");\n }\n};\n\n// src/commands/GetBucketWebsiteCommand.ts\nvar import_middleware_sdk_s332 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketWebsiteCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s332.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketWebsite\", {}).n(\"S3Client\", \"GetBucketWebsiteCommand\").f(void 0, void 0).ser(se_GetBucketWebsiteCommand).de(de_GetBucketWebsiteCommand).build() {\n static {\n __name(this, \"GetBucketWebsiteCommand\");\n }\n};\n\n// src/commands/GetObjectAclCommand.ts\nvar import_middleware_sdk_s333 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s333.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectAcl\", {}).n(\"S3Client\", \"GetObjectAclCommand\").f(void 0, void 0).ser(se_GetObjectAclCommand).de(de_GetObjectAclCommand).build() {\n static {\n __name(this, \"GetObjectAclCommand\");\n }\n};\n\n// src/commands/GetObjectAttributesCommand.ts\nvar import_middleware_sdk_s334 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar GetObjectAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s334.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectAttributes\", {}).n(\"S3Client\", \"GetObjectAttributesCommand\").f(GetObjectAttributesRequestFilterSensitiveLog, void 0).ser(se_GetObjectAttributesCommand).de(de_GetObjectAttributesCommand).build() {\n static {\n __name(this, \"GetObjectAttributesCommand\");\n }\n};\n\n// src/commands/GetObjectCommand.ts\n\nvar import_middleware_sdk_s335 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar GetObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestChecksumRequired: false,\n requestValidationModeMember: \"ChecksumMode\",\n responseAlgorithms: [\"CRC64NVME\", \"CRC32\", \"CRC32C\", \"SHA256\", \"SHA1\"]\n }),\n (0, import_middleware_ssec.getSsecPlugin)(config),\n (0, import_middleware_sdk_s335.getS3ExpiresMiddlewarePlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObject\", {}).n(\"S3Client\", \"GetObjectCommand\").f(GetObjectRequestFilterSensitiveLog, GetObjectOutputFilterSensitiveLog).ser(se_GetObjectCommand).de(de_GetObjectCommand).build() {\n static {\n __name(this, \"GetObjectCommand\");\n }\n};\n\n// src/commands/GetObjectLegalHoldCommand.ts\nvar import_middleware_sdk_s336 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectLegalHoldCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s336.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectLegalHold\", {}).n(\"S3Client\", \"GetObjectLegalHoldCommand\").f(void 0, void 0).ser(se_GetObjectLegalHoldCommand).de(de_GetObjectLegalHoldCommand).build() {\n static {\n __name(this, \"GetObjectLegalHoldCommand\");\n }\n};\n\n// src/commands/GetObjectLockConfigurationCommand.ts\nvar import_middleware_sdk_s337 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectLockConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s337.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectLockConfiguration\", {}).n(\"S3Client\", \"GetObjectLockConfigurationCommand\").f(void 0, void 0).ser(se_GetObjectLockConfigurationCommand).de(de_GetObjectLockConfigurationCommand).build() {\n static {\n __name(this, \"GetObjectLockConfigurationCommand\");\n }\n};\n\n// src/commands/GetObjectRetentionCommand.ts\nvar import_middleware_sdk_s338 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectRetentionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s338.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectRetention\", {}).n(\"S3Client\", \"GetObjectRetentionCommand\").f(void 0, void 0).ser(se_GetObjectRetentionCommand).de(de_GetObjectRetentionCommand).build() {\n static {\n __name(this, \"GetObjectRetentionCommand\");\n }\n};\n\n// src/commands/GetObjectTaggingCommand.ts\nvar import_middleware_sdk_s339 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s339.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectTagging\", {}).n(\"S3Client\", \"GetObjectTaggingCommand\").f(void 0, void 0).ser(se_GetObjectTaggingCommand).de(de_GetObjectTaggingCommand).build() {\n static {\n __name(this, \"GetObjectTaggingCommand\");\n }\n};\n\n// src/commands/GetObjectTorrentCommand.ts\n\n\n\nvar GetObjectTorrentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"GetObjectTorrent\", {}).n(\"S3Client\", \"GetObjectTorrentCommand\").f(void 0, GetObjectTorrentOutputFilterSensitiveLog).ser(se_GetObjectTorrentCommand).de(de_GetObjectTorrentCommand).build() {\n static {\n __name(this, \"GetObjectTorrentCommand\");\n }\n};\n\n// src/commands/GetPublicAccessBlockCommand.ts\nvar import_middleware_sdk_s340 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetPublicAccessBlockCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s340.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetPublicAccessBlock\", {}).n(\"S3Client\", \"GetPublicAccessBlockCommand\").f(void 0, void 0).ser(se_GetPublicAccessBlockCommand).de(de_GetPublicAccessBlockCommand).build() {\n static {\n __name(this, \"GetPublicAccessBlockCommand\");\n }\n};\n\n// src/commands/HeadBucketCommand.ts\nvar import_middleware_sdk_s341 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar HeadBucketCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s341.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"HeadBucket\", {}).n(\"S3Client\", \"HeadBucketCommand\").f(void 0, void 0).ser(se_HeadBucketCommand).de(de_HeadBucketCommand).build() {\n static {\n __name(this, \"HeadBucketCommand\");\n }\n};\n\n// src/commands/HeadObjectCommand.ts\nvar import_middleware_sdk_s342 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar HeadObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s342.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config),\n (0, import_middleware_sdk_s342.getS3ExpiresMiddlewarePlugin)(config)\n ];\n}).s(\"AmazonS3\", \"HeadObject\", {}).n(\"S3Client\", \"HeadObjectCommand\").f(HeadObjectRequestFilterSensitiveLog, HeadObjectOutputFilterSensitiveLog).ser(se_HeadObjectCommand).de(de_HeadObjectCommand).build() {\n static {\n __name(this, \"HeadObjectCommand\");\n }\n};\n\n// src/commands/ListBucketAnalyticsConfigurationsCommand.ts\nvar import_middleware_sdk_s343 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketAnalyticsConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s343.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketAnalyticsConfigurations\", {}).n(\"S3Client\", \"ListBucketAnalyticsConfigurationsCommand\").f(void 0, void 0).ser(se_ListBucketAnalyticsConfigurationsCommand).de(de_ListBucketAnalyticsConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketAnalyticsConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketIntelligentTieringConfigurationsCommand.ts\nvar import_middleware_sdk_s344 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketIntelligentTieringConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s344.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketIntelligentTieringConfigurations\", {}).n(\"S3Client\", \"ListBucketIntelligentTieringConfigurationsCommand\").f(void 0, void 0).ser(se_ListBucketIntelligentTieringConfigurationsCommand).de(de_ListBucketIntelligentTieringConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketIntelligentTieringConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketInventoryConfigurationsCommand.ts\nvar import_middleware_sdk_s345 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketInventoryConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s345.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketInventoryConfigurations\", {}).n(\"S3Client\", \"ListBucketInventoryConfigurationsCommand\").f(void 0, ListBucketInventoryConfigurationsOutputFilterSensitiveLog).ser(se_ListBucketInventoryConfigurationsCommand).de(de_ListBucketInventoryConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketInventoryConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketMetricsConfigurationsCommand.ts\nvar import_middleware_sdk_s346 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketMetricsConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s346.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketMetricsConfigurations\", {}).n(\"S3Client\", \"ListBucketMetricsConfigurationsCommand\").f(void 0, void 0).ser(se_ListBucketMetricsConfigurationsCommand).de(de_ListBucketMetricsConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketMetricsConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketsCommand.ts\nvar import_middleware_sdk_s347 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s347.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBuckets\", {}).n(\"S3Client\", \"ListBucketsCommand\").f(void 0, void 0).ser(se_ListBucketsCommand).de(de_ListBucketsCommand).build() {\n static {\n __name(this, \"ListBucketsCommand\");\n }\n};\n\n// src/commands/ListDirectoryBucketsCommand.ts\nvar import_middleware_sdk_s348 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListDirectoryBucketsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s348.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListDirectoryBuckets\", {}).n(\"S3Client\", \"ListDirectoryBucketsCommand\").f(void 0, void 0).ser(se_ListDirectoryBucketsCommand).de(de_ListDirectoryBucketsCommand).build() {\n static {\n __name(this, \"ListDirectoryBucketsCommand\");\n }\n};\n\n// src/commands/ListMultipartUploadsCommand.ts\nvar import_middleware_sdk_s349 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListMultipartUploadsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s349.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListMultipartUploads\", {}).n(\"S3Client\", \"ListMultipartUploadsCommand\").f(void 0, void 0).ser(se_ListMultipartUploadsCommand).de(de_ListMultipartUploadsCommand).build() {\n static {\n __name(this, \"ListMultipartUploadsCommand\");\n }\n};\n\n// src/commands/ListObjectsCommand.ts\nvar import_middleware_sdk_s350 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListObjectsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s350.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListObjects\", {}).n(\"S3Client\", \"ListObjectsCommand\").f(void 0, void 0).ser(se_ListObjectsCommand).de(de_ListObjectsCommand).build() {\n static {\n __name(this, \"ListObjectsCommand\");\n }\n};\n\n// src/commands/ListObjectsV2Command.ts\nvar import_middleware_sdk_s351 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListObjectsV2Command = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s351.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListObjectsV2\", {}).n(\"S3Client\", \"ListObjectsV2Command\").f(void 0, void 0).ser(se_ListObjectsV2Command).de(de_ListObjectsV2Command).build() {\n static {\n __name(this, \"ListObjectsV2Command\");\n }\n};\n\n// src/commands/ListObjectVersionsCommand.ts\nvar import_middleware_sdk_s352 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListObjectVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s352.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListObjectVersions\", {}).n(\"S3Client\", \"ListObjectVersionsCommand\").f(void 0, void 0).ser(se_ListObjectVersionsCommand).de(de_ListObjectVersionsCommand).build() {\n static {\n __name(this, \"ListObjectVersionsCommand\");\n }\n};\n\n// src/commands/ListPartsCommand.ts\nvar import_middleware_sdk_s353 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar ListPartsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s353.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListParts\", {}).n(\"S3Client\", \"ListPartsCommand\").f(ListPartsRequestFilterSensitiveLog, void 0).ser(se_ListPartsCommand).de(de_ListPartsCommand).build() {\n static {\n __name(this, \"ListPartsCommand\");\n }\n};\n\n// src/commands/PutBucketAccelerateConfigurationCommand.ts\n\n\n\n\nvar PutBucketAccelerateConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketAccelerateConfiguration\", {}).n(\"S3Client\", \"PutBucketAccelerateConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketAccelerateConfigurationCommand).de(de_PutBucketAccelerateConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketAccelerateConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketAclCommand.ts\n\n\n\n\nvar PutBucketAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketAcl\", {}).n(\"S3Client\", \"PutBucketAclCommand\").f(void 0, void 0).ser(se_PutBucketAclCommand).de(de_PutBucketAclCommand).build() {\n static {\n __name(this, \"PutBucketAclCommand\");\n }\n};\n\n// src/commands/PutBucketAnalyticsConfigurationCommand.ts\n\n\n\nvar PutBucketAnalyticsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketAnalyticsConfiguration\", {}).n(\"S3Client\", \"PutBucketAnalyticsConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketAnalyticsConfigurationCommand).de(de_PutBucketAnalyticsConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketAnalyticsConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketCorsCommand.ts\n\n\n\n\nvar PutBucketCorsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketCors\", {}).n(\"S3Client\", \"PutBucketCorsCommand\").f(void 0, void 0).ser(se_PutBucketCorsCommand).de(de_PutBucketCorsCommand).build() {\n static {\n __name(this, \"PutBucketCorsCommand\");\n }\n};\n\n// src/commands/PutBucketEncryptionCommand.ts\n\n\n\n\nvar PutBucketEncryptionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketEncryption\", {}).n(\"S3Client\", \"PutBucketEncryptionCommand\").f(PutBucketEncryptionRequestFilterSensitiveLog, void 0).ser(se_PutBucketEncryptionCommand).de(de_PutBucketEncryptionCommand).build() {\n static {\n __name(this, \"PutBucketEncryptionCommand\");\n }\n};\n\n// src/commands/PutBucketIntelligentTieringConfigurationCommand.ts\n\n\n\nvar PutBucketIntelligentTieringConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketIntelligentTieringConfiguration\", {}).n(\"S3Client\", \"PutBucketIntelligentTieringConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketIntelligentTieringConfigurationCommand).de(de_PutBucketIntelligentTieringConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketIntelligentTieringConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketInventoryConfigurationCommand.ts\n\n\n\nvar PutBucketInventoryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketInventoryConfiguration\", {}).n(\"S3Client\", \"PutBucketInventoryConfigurationCommand\").f(PutBucketInventoryConfigurationRequestFilterSensitiveLog, void 0).ser(se_PutBucketInventoryConfigurationCommand).de(de_PutBucketInventoryConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketInventoryConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketLifecycleConfigurationCommand.ts\n\nvar import_middleware_sdk_s354 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutBucketLifecycleConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s354.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutBucketLifecycleConfiguration\", {}).n(\"S3Client\", \"PutBucketLifecycleConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketLifecycleConfigurationCommand).de(de_PutBucketLifecycleConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketLifecycleConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketLoggingCommand.ts\n\n\n\n\nvar PutBucketLoggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketLogging\", {}).n(\"S3Client\", \"PutBucketLoggingCommand\").f(void 0, void 0).ser(se_PutBucketLoggingCommand).de(de_PutBucketLoggingCommand).build() {\n static {\n __name(this, \"PutBucketLoggingCommand\");\n }\n};\n\n// src/commands/PutBucketMetricsConfigurationCommand.ts\n\n\n\nvar PutBucketMetricsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketMetricsConfiguration\", {}).n(\"S3Client\", \"PutBucketMetricsConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketMetricsConfigurationCommand).de(de_PutBucketMetricsConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketMetricsConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketNotificationConfigurationCommand.ts\n\n\n\nvar PutBucketNotificationConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketNotificationConfiguration\", {}).n(\"S3Client\", \"PutBucketNotificationConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketNotificationConfigurationCommand).de(de_PutBucketNotificationConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketNotificationConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketOwnershipControlsCommand.ts\n\n\n\n\nvar PutBucketOwnershipControlsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketOwnershipControls\", {}).n(\"S3Client\", \"PutBucketOwnershipControlsCommand\").f(void 0, void 0).ser(se_PutBucketOwnershipControlsCommand).de(de_PutBucketOwnershipControlsCommand).build() {\n static {\n __name(this, \"PutBucketOwnershipControlsCommand\");\n }\n};\n\n// src/commands/PutBucketPolicyCommand.ts\n\n\n\n\nvar PutBucketPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketPolicy\", {}).n(\"S3Client\", \"PutBucketPolicyCommand\").f(void 0, void 0).ser(se_PutBucketPolicyCommand).de(de_PutBucketPolicyCommand).build() {\n static {\n __name(this, \"PutBucketPolicyCommand\");\n }\n};\n\n// src/commands/PutBucketReplicationCommand.ts\n\n\n\n\nvar PutBucketReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketReplication\", {}).n(\"S3Client\", \"PutBucketReplicationCommand\").f(void 0, void 0).ser(se_PutBucketReplicationCommand).de(de_PutBucketReplicationCommand).build() {\n static {\n __name(this, \"PutBucketReplicationCommand\");\n }\n};\n\n// src/commands/PutBucketRequestPaymentCommand.ts\n\n\n\n\nvar PutBucketRequestPaymentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketRequestPayment\", {}).n(\"S3Client\", \"PutBucketRequestPaymentCommand\").f(void 0, void 0).ser(se_PutBucketRequestPaymentCommand).de(de_PutBucketRequestPaymentCommand).build() {\n static {\n __name(this, \"PutBucketRequestPaymentCommand\");\n }\n};\n\n// src/commands/PutBucketTaggingCommand.ts\n\n\n\n\nvar PutBucketTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketTagging\", {}).n(\"S3Client\", \"PutBucketTaggingCommand\").f(void 0, void 0).ser(se_PutBucketTaggingCommand).de(de_PutBucketTaggingCommand).build() {\n static {\n __name(this, \"PutBucketTaggingCommand\");\n }\n};\n\n// src/commands/PutBucketVersioningCommand.ts\n\n\n\n\nvar PutBucketVersioningCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketVersioning\", {}).n(\"S3Client\", \"PutBucketVersioningCommand\").f(void 0, void 0).ser(se_PutBucketVersioningCommand).de(de_PutBucketVersioningCommand).build() {\n static {\n __name(this, \"PutBucketVersioningCommand\");\n }\n};\n\n// src/commands/PutBucketWebsiteCommand.ts\n\n\n\n\nvar PutBucketWebsiteCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketWebsite\", {}).n(\"S3Client\", \"PutBucketWebsiteCommand\").f(void 0, void 0).ser(se_PutBucketWebsiteCommand).de(de_PutBucketWebsiteCommand).build() {\n static {\n __name(this, \"PutBucketWebsiteCommand\");\n }\n};\n\n// src/commands/PutObjectAclCommand.ts\n\nvar import_middleware_sdk_s355 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s355.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectAcl\", {}).n(\"S3Client\", \"PutObjectAclCommand\").f(void 0, void 0).ser(se_PutObjectAclCommand).de(de_PutObjectAclCommand).build() {\n static {\n __name(this, \"PutObjectAclCommand\");\n }\n};\n\n// src/commands/PutObjectCommand.ts\n\nvar import_middleware_sdk_s356 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar PutObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n }),\n (0, import_middleware_sdk_s356.getCheckContentLengthHeaderPlugin)(config),\n (0, import_middleware_sdk_s356.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObject\", {}).n(\"S3Client\", \"PutObjectCommand\").f(PutObjectRequestFilterSensitiveLog, PutObjectOutputFilterSensitiveLog).ser(se_PutObjectCommand).de(de_PutObjectCommand).build() {\n static {\n __name(this, \"PutObjectCommand\");\n }\n};\n\n// src/commands/PutObjectLegalHoldCommand.ts\n\nvar import_middleware_sdk_s357 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectLegalHoldCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s357.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectLegalHold\", {}).n(\"S3Client\", \"PutObjectLegalHoldCommand\").f(void 0, void 0).ser(se_PutObjectLegalHoldCommand).de(de_PutObjectLegalHoldCommand).build() {\n static {\n __name(this, \"PutObjectLegalHoldCommand\");\n }\n};\n\n// src/commands/PutObjectLockConfigurationCommand.ts\n\nvar import_middleware_sdk_s358 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectLockConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s358.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectLockConfiguration\", {}).n(\"S3Client\", \"PutObjectLockConfigurationCommand\").f(void 0, void 0).ser(se_PutObjectLockConfigurationCommand).de(de_PutObjectLockConfigurationCommand).build() {\n static {\n __name(this, \"PutObjectLockConfigurationCommand\");\n }\n};\n\n// src/commands/PutObjectRetentionCommand.ts\n\nvar import_middleware_sdk_s359 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectRetentionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s359.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectRetention\", {}).n(\"S3Client\", \"PutObjectRetentionCommand\").f(void 0, void 0).ser(se_PutObjectRetentionCommand).de(de_PutObjectRetentionCommand).build() {\n static {\n __name(this, \"PutObjectRetentionCommand\");\n }\n};\n\n// src/commands/PutObjectTaggingCommand.ts\n\nvar import_middleware_sdk_s360 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s360.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectTagging\", {}).n(\"S3Client\", \"PutObjectTaggingCommand\").f(void 0, void 0).ser(se_PutObjectTaggingCommand).de(de_PutObjectTaggingCommand).build() {\n static {\n __name(this, \"PutObjectTaggingCommand\");\n }\n};\n\n// src/commands/PutPublicAccessBlockCommand.ts\n\n\n\n\nvar PutPublicAccessBlockCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutPublicAccessBlock\", {}).n(\"S3Client\", \"PutPublicAccessBlockCommand\").f(void 0, void 0).ser(se_PutPublicAccessBlockCommand).de(de_PutPublicAccessBlockCommand).build() {\n static {\n __name(this, \"PutPublicAccessBlockCommand\");\n }\n};\n\n// src/commands/RenameObjectCommand.ts\nvar import_middleware_sdk_s361 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar RenameObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s361.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"RenameObject\", {}).n(\"S3Client\", \"RenameObjectCommand\").f(void 0, void 0).ser(se_RenameObjectCommand).de(de_RenameObjectCommand).build() {\n static {\n __name(this, \"RenameObjectCommand\");\n }\n};\n\n// src/commands/RestoreObjectCommand.ts\n\nvar import_middleware_sdk_s362 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar RestoreObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n }),\n (0, import_middleware_sdk_s362.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"RestoreObject\", {}).n(\"S3Client\", \"RestoreObjectCommand\").f(RestoreObjectRequestFilterSensitiveLog, void 0).ser(se_RestoreObjectCommand).de(de_RestoreObjectCommand).build() {\n static {\n __name(this, \"RestoreObjectCommand\");\n }\n};\n\n// src/commands/SelectObjectContentCommand.ts\nvar import_middleware_sdk_s363 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar SelectObjectContentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s363.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"SelectObjectContent\", {\n /**\n * @internal\n */\n eventStream: {\n output: true\n }\n}).n(\"S3Client\", \"SelectObjectContentCommand\").f(SelectObjectContentRequestFilterSensitiveLog, SelectObjectContentOutputFilterSensitiveLog).ser(se_SelectObjectContentCommand).de(de_SelectObjectContentCommand).build() {\n static {\n __name(this, \"SelectObjectContentCommand\");\n }\n};\n\n// src/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.ts\n\n\n\n\nvar UpdateBucketMetadataInventoryTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"UpdateBucketMetadataInventoryTableConfiguration\", {}).n(\"S3Client\", \"UpdateBucketMetadataInventoryTableConfigurationCommand\").f(void 0, void 0).ser(se_UpdateBucketMetadataInventoryTableConfigurationCommand).de(de_UpdateBucketMetadataInventoryTableConfigurationCommand).build() {\n static {\n __name(this, \"UpdateBucketMetadataInventoryTableConfigurationCommand\");\n }\n};\n\n// src/commands/UpdateBucketMetadataJournalTableConfigurationCommand.ts\n\n\n\n\nvar UpdateBucketMetadataJournalTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"UpdateBucketMetadataJournalTableConfiguration\", {}).n(\"S3Client\", \"UpdateBucketMetadataJournalTableConfigurationCommand\").f(void 0, void 0).ser(se_UpdateBucketMetadataJournalTableConfigurationCommand).de(de_UpdateBucketMetadataJournalTableConfigurationCommand).build() {\n static {\n __name(this, \"UpdateBucketMetadataJournalTableConfigurationCommand\");\n }\n};\n\n// src/commands/UploadPartCommand.ts\n\nvar import_middleware_sdk_s364 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar UploadPartCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n }),\n (0, import_middleware_sdk_s364.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"UploadPart\", {}).n(\"S3Client\", \"UploadPartCommand\").f(UploadPartRequestFilterSensitiveLog, UploadPartOutputFilterSensitiveLog).ser(se_UploadPartCommand).de(de_UploadPartCommand).build() {\n static {\n __name(this, \"UploadPartCommand\");\n }\n};\n\n// src/commands/UploadPartCopyCommand.ts\nvar import_middleware_sdk_s365 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar UploadPartCopyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s365.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"UploadPartCopy\", {}).n(\"S3Client\", \"UploadPartCopyCommand\").f(UploadPartCopyRequestFilterSensitiveLog, UploadPartCopyOutputFilterSensitiveLog).ser(se_UploadPartCopyCommand).de(de_UploadPartCopyCommand).build() {\n static {\n __name(this, \"UploadPartCopyCommand\");\n }\n};\n\n// src/commands/WriteGetObjectResponseCommand.ts\n\n\n\nvar WriteGetObjectResponseCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseObjectLambdaEndpoint: { type: \"staticContextParams\", value: true }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"WriteGetObjectResponse\", {}).n(\"S3Client\", \"WriteGetObjectResponseCommand\").f(WriteGetObjectResponseRequestFilterSensitiveLog, void 0).ser(se_WriteGetObjectResponseCommand).de(de_WriteGetObjectResponseCommand).build() {\n static {\n __name(this, \"WriteGetObjectResponseCommand\");\n }\n};\n\n// src/S3.ts\nvar commands = {\n AbortMultipartUploadCommand,\n CompleteMultipartUploadCommand,\n CopyObjectCommand,\n CreateBucketCommand,\n CreateBucketMetadataConfigurationCommand,\n CreateBucketMetadataTableConfigurationCommand,\n CreateMultipartUploadCommand,\n CreateSessionCommand,\n DeleteBucketCommand,\n DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand,\n DeleteBucketMetadataConfigurationCommand,\n DeleteBucketMetadataTableConfigurationCommand,\n DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand,\n DeleteObjectCommand,\n DeleteObjectsCommand,\n DeleteObjectTaggingCommand,\n DeletePublicAccessBlockCommand,\n GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand,\n GetBucketEncryptionCommand,\n GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand,\n GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand,\n GetBucketLoggingCommand,\n GetBucketMetadataConfigurationCommand,\n GetBucketMetadataTableConfigurationCommand,\n GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand,\n GetBucketVersioningCommand,\n GetBucketWebsiteCommand,\n GetObjectCommand,\n GetObjectAclCommand,\n GetObjectAttributesCommand,\n GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand,\n GetObjectRetentionCommand,\n GetObjectTaggingCommand,\n GetObjectTorrentCommand,\n GetPublicAccessBlockCommand,\n HeadBucketCommand,\n HeadObjectCommand,\n ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand,\n ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand,\n ListDirectoryBucketsCommand,\n ListMultipartUploadsCommand,\n ListObjectsCommand,\n ListObjectsV2Command,\n ListObjectVersionsCommand,\n ListPartsCommand,\n PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand,\n PutBucketEncryptionCommand,\n PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand,\n PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand,\n PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand,\n PutBucketVersioningCommand,\n PutBucketWebsiteCommand,\n PutObjectCommand,\n PutObjectAclCommand,\n PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand,\n PutObjectRetentionCommand,\n PutObjectTaggingCommand,\n PutPublicAccessBlockCommand,\n RenameObjectCommand,\n RestoreObjectCommand,\n SelectObjectContentCommand,\n UpdateBucketMetadataInventoryTableConfigurationCommand,\n UpdateBucketMetadataJournalTableConfigurationCommand,\n UploadPartCommand,\n UploadPartCopyCommand,\n WriteGetObjectResponseCommand\n};\nvar S3 = class extends S3Client {\n static {\n __name(this, \"S3\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, S3);\n\n// src/pagination/ListBucketsPaginator.ts\nvar import_core4 = require(\"@smithy/core\");\nvar paginateListBuckets = (0, import_core4.createPaginator)(S3Client, ListBucketsCommand, \"ContinuationToken\", \"ContinuationToken\", \"MaxBuckets\");\n\n// src/pagination/ListDirectoryBucketsPaginator.ts\nvar import_core5 = require(\"@smithy/core\");\nvar paginateListDirectoryBuckets = (0, import_core5.createPaginator)(S3Client, ListDirectoryBucketsCommand, \"ContinuationToken\", \"ContinuationToken\", \"MaxDirectoryBuckets\");\n\n// src/pagination/ListObjectsV2Paginator.ts\nvar import_core6 = require(\"@smithy/core\");\nvar paginateListObjectsV2 = (0, import_core6.createPaginator)(S3Client, ListObjectsV2Command, \"ContinuationToken\", \"NextContinuationToken\", \"MaxKeys\");\n\n// src/pagination/ListPartsPaginator.ts\nvar import_core7 = require(\"@smithy/core\");\nvar paginateListParts = (0, import_core7.createPaginator)(S3Client, ListPartsCommand, \"PartNumberMarker\", \"NextPartNumberMarker\", \"MaxParts\");\n\n// src/waiters/waitForBucketExists.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForBucketExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForBucketExists\");\nvar waitUntilBucketExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilBucketExists\");\n\n// src/waiters/waitForBucketNotExists.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForBucketNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForBucketNotExists\");\nvar waitUntilBucketNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilBucketNotExists\");\n\n// src/waiters/waitForObjectExists.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForObjectExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForObjectExists\");\nvar waitUntilObjectExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilObjectExists\");\n\n// src/waiters/waitForObjectNotExists.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForObjectNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForObjectNotExists\");\nvar waitUntilObjectNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilObjectNotExists\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n S3ServiceException,\n __Client,\n S3Client,\n S3,\n $Command,\n AbortMultipartUploadCommand,\n CompleteMultipartUploadCommand,\n CopyObjectCommand,\n CreateBucketCommand,\n CreateBucketMetadataConfigurationCommand,\n CreateBucketMetadataTableConfigurationCommand,\n CreateMultipartUploadCommand,\n CreateSessionCommand,\n DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCommand,\n DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand,\n DeleteBucketMetadataConfigurationCommand,\n DeleteBucketMetadataTableConfigurationCommand,\n DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand,\n DeleteObjectCommand,\n DeleteObjectTaggingCommand,\n DeleteObjectsCommand,\n DeletePublicAccessBlockCommand,\n GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand,\n GetBucketEncryptionCommand,\n GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand,\n GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand,\n GetBucketLoggingCommand,\n GetBucketMetadataConfigurationCommand,\n GetBucketMetadataTableConfigurationCommand,\n GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand,\n GetBucketVersioningCommand,\n GetBucketWebsiteCommand,\n GetObjectAclCommand,\n GetObjectAttributesCommand,\n GetObjectCommand,\n GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand,\n GetObjectRetentionCommand,\n GetObjectTaggingCommand,\n GetObjectTorrentCommand,\n GetPublicAccessBlockCommand,\n HeadBucketCommand,\n HeadObjectCommand,\n ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand,\n ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand,\n ListDirectoryBucketsCommand,\n ListMultipartUploadsCommand,\n ListObjectVersionsCommand,\n ListObjectsCommand,\n ListObjectsV2Command,\n ListPartsCommand,\n PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand,\n PutBucketEncryptionCommand,\n PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand,\n PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand,\n PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand,\n PutBucketVersioningCommand,\n PutBucketWebsiteCommand,\n PutObjectAclCommand,\n PutObjectCommand,\n PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand,\n PutObjectRetentionCommand,\n PutObjectTaggingCommand,\n PutPublicAccessBlockCommand,\n RenameObjectCommand,\n RestoreObjectCommand,\n SelectObjectContentCommand,\n UpdateBucketMetadataInventoryTableConfigurationCommand,\n UpdateBucketMetadataJournalTableConfigurationCommand,\n UploadPartCommand,\n UploadPartCopyCommand,\n WriteGetObjectResponseCommand,\n paginateListBuckets,\n paginateListDirectoryBuckets,\n paginateListObjectsV2,\n paginateListParts,\n waitForBucketExists,\n waitUntilBucketExists,\n waitForBucketNotExists,\n waitUntilBucketNotExists,\n waitForObjectExists,\n waitUntilObjectExists,\n waitForObjectNotExists,\n waitUntilObjectNotExists,\n RequestCharged,\n RequestPayer,\n NoSuchUpload,\n BucketAccelerateStatus,\n Type,\n Permission,\n OwnerOverride,\n ChecksumType,\n ServerSideEncryption,\n ObjectCannedACL,\n ChecksumAlgorithm,\n MetadataDirective,\n ObjectLockLegalHoldStatus,\n ObjectLockMode,\n StorageClass,\n TaggingDirective,\n ObjectNotInActiveTierError,\n BucketAlreadyExists,\n BucketAlreadyOwnedByYou,\n BucketCannedACL,\n DataRedundancy,\n BucketType,\n LocationType,\n BucketLocationConstraint,\n ObjectOwnership,\n InventoryConfigurationState,\n TableSseAlgorithm,\n ExpirationState,\n SessionMode,\n NoSuchBucket,\n AnalyticsFilter,\n AnalyticsS3ExportFileFormat,\n StorageClassAnalysisSchemaVersion,\n IntelligentTieringStatus,\n IntelligentTieringAccessTier,\n InventoryFormat,\n InventoryIncludedObjectVersions,\n InventoryOptionalField,\n InventoryFrequency,\n TransitionStorageClass,\n ExpirationStatus,\n TransitionDefaultMinimumObjectSize,\n BucketLogsPermission,\n PartitionDateSource,\n S3TablesBucketType,\n MetricsFilter,\n Event,\n FilterRuleName,\n DeleteMarkerReplicationStatus,\n MetricsStatus,\n ReplicationTimeStatus,\n ExistingObjectReplicationStatus,\n ReplicaModificationsStatus,\n SseKmsEncryptedObjectsStatus,\n ReplicationRuleStatus,\n Payer,\n MFADeleteStatus,\n BucketVersioningStatus,\n Protocol,\n ReplicationStatus,\n ChecksumMode,\n InvalidObjectState,\n NoSuchKey,\n ObjectAttributes,\n ObjectLockEnabled,\n ObjectLockRetentionMode,\n NotFound,\n ArchiveStatus,\n EncodingType,\n CompleteMultipartUploadOutputFilterSensitiveLog,\n CompleteMultipartUploadRequestFilterSensitiveLog,\n CopyObjectOutputFilterSensitiveLog,\n CopyObjectRequestFilterSensitiveLog,\n CreateMultipartUploadOutputFilterSensitiveLog,\n CreateMultipartUploadRequestFilterSensitiveLog,\n SessionCredentialsFilterSensitiveLog,\n CreateSessionOutputFilterSensitiveLog,\n CreateSessionRequestFilterSensitiveLog,\n ServerSideEncryptionByDefaultFilterSensitiveLog,\n ServerSideEncryptionRuleFilterSensitiveLog,\n ServerSideEncryptionConfigurationFilterSensitiveLog,\n GetBucketEncryptionOutputFilterSensitiveLog,\n SSEKMSFilterSensitiveLog,\n InventoryEncryptionFilterSensitiveLog,\n InventoryS3BucketDestinationFilterSensitiveLog,\n InventoryDestinationFilterSensitiveLog,\n InventoryConfigurationFilterSensitiveLog,\n GetBucketInventoryConfigurationOutputFilterSensitiveLog,\n GetObjectOutputFilterSensitiveLog,\n GetObjectRequestFilterSensitiveLog,\n GetObjectAttributesRequestFilterSensitiveLog,\n GetObjectTorrentOutputFilterSensitiveLog,\n HeadObjectOutputFilterSensitiveLog,\n HeadObjectRequestFilterSensitiveLog,\n ListBucketInventoryConfigurationsOutputFilterSensitiveLog,\n ObjectStorageClass,\n OptionalObjectAttributes,\n ObjectVersionStorageClass,\n MFADelete,\n EncryptionTypeMismatch,\n InvalidRequest,\n InvalidWriteOffset,\n TooManyParts,\n IdempotencyParameterMismatch,\n ObjectAlreadyInActiveTierError,\n Tier,\n ExpressionType,\n CompressionType,\n FileHeaderInfo,\n JSONType,\n QuoteFields,\n RestoreRequestType,\n SelectObjectContentEventStream,\n ListPartsRequestFilterSensitiveLog,\n PutBucketEncryptionRequestFilterSensitiveLog,\n PutBucketInventoryConfigurationRequestFilterSensitiveLog,\n PutObjectOutputFilterSensitiveLog,\n PutObjectRequestFilterSensitiveLog,\n EncryptionFilterSensitiveLog,\n S3LocationFilterSensitiveLog,\n OutputLocationFilterSensitiveLog,\n RestoreRequestFilterSensitiveLog,\n RestoreObjectRequestFilterSensitiveLog,\n SelectObjectContentEventStreamFilterSensitiveLog,\n SelectObjectContentOutputFilterSensitiveLog,\n SelectObjectContentRequestFilterSensitiveLog,\n UploadPartOutputFilterSensitiveLog,\n UploadPartRequestFilterSensitiveLog,\n UploadPartCopyOutputFilterSensitiveLog,\n UploadPartCopyRequestFilterSensitiveLog,\n WriteGetObjectResponseRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst middleware_bucket_endpoint_1 = require(\"@aws-sdk/middleware-bucket-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_sdk_s3_1 = require(\"@aws-sdk/middleware-sdk-s3\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst eventstream_serde_node_1 = require(\"@smithy/eventstream-serde-node\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst hash_stream_node_1 = require(\"@smithy/hash-stream-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n disableS3ExpressSessionAuth: config?.disableS3ExpressSessionAuth ?? (0, node_config_provider_1.loadConfig)(middleware_sdk_s3_1.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS, loaderConfig),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventstream_serde_node_1.eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n md5: config?.md5 ?? hash_node_1.Hash.bind(null, \"md5\"),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestChecksumCalculation: config?.requestChecksumCalculation ??\n (0, node_config_provider_1.loadConfig)(middleware_flexible_checksums_1.NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS, loaderConfig),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n responseChecksumValidation: config?.responseChecksumValidation ??\n (0, node_config_provider_1.loadConfig)(middleware_flexible_checksums_1.NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS, loaderConfig),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha1: config?.sha1 ?? hash_node_1.Hash.bind(null, \"sha1\"),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n sigv4aSigningRegionSet: config?.sigv4aSigningRegionSet ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_SIGV4A_CONFIG_OPTIONS, loaderConfig),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n streamHasher: config?.streamHasher ?? hash_stream_node_1.readableStreamHasher,\n useArnRegion: config?.useArnRegion ?? (0, node_config_provider_1.loadConfig)(middleware_bucket_endpoint_1.NODE_USE_ARN_REGION_CONFIG_OPTIONS, loaderConfig),\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst signature_v4_multi_region_1 = require(\"@aws-sdk/signature-v4-multi-region\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2006-03-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? util_stream_1.getAwsChunkedEncodingStream,\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultS3HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"aws.auth#sigv4a\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4a\"),\n signer: new core_1.AwsSdkSigV4ASigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n sdkStreamMixin: config?.sdkStreamMixin ?? util_stream_1.sdkStreamMixin,\n serviceId: config?.serviceId ?? \"S3\",\n signerConstructor: config?.signerConstructor ?? signature_v4_multi_region_1.SignatureV4MultiRegion,\n signingEscapePath: config?.signingEscapePath ?? false,\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n useArnRegion: config?.useArnRegion ?? undefined,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSecretsManagerHttpAuthSchemeProvider = exports.defaultSecretsManagerHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSecretsManagerHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSecretsManagerHttpAuthSchemeParametersProvider = defaultSecretsManagerHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"secretsmanager\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultSecretsManagerHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSecretsManagerHttpAuthSchemeProvider = defaultSecretsManagerHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst y = \"required\", z = \"fn\", A = \"argv\", B = \"ref\", C = \"properties\", D = \"headers\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = { [y]: false, \"type\": \"String\" }, j = { [y]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [B]: \"Endpoint\" }, l = { [z]: c, [A]: [{ [B]: \"UseFIPS\" }, true] }, m = { [z]: c, [A]: [{ [B]: \"UseDualStack\" }, true] }, n = {}, o = { [z]: \"getAttr\", [A]: [{ [B]: g }, \"supportsFIPS\"] }, p = { [z]: c, [A]: [true, { [z]: \"getAttr\", [A]: [{ [B]: g }, \"supportsDualStack\"] }] }, q = { [z]: \"getAttr\", [A]: [{ [B]: g }, \"name\"] }, r = { \"url\": \"https://secretsmanager-fips.{Region}.amazonaws.com\", [C]: {}, [D]: {} }, s = { \"url\": \"https://secretsmanager.{Region}.amazonaws.com\", [C]: {}, [D]: {} }, t = [l], u = [m], v = [{ [B]: \"Region\" }], w = [{ [z]: h, [A]: [\"aws\", q] }], x = [{ [z]: h, [A]: [\"aws-us-gov\", q] }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [z]: b, [A]: [k] }], rules: [{ conditions: t, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: u, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, [C]: n, [D]: n }, type: e }], type: f }, { conditions: [{ [z]: b, [A]: v }], rules: [{ conditions: [{ [z]: \"aws.partition\", [A]: v, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [z]: c, [A]: [a, o] }, p], rules: [{ conditions: w, endpoint: r, type: e }, { conditions: x, endpoint: r, type: e }, { endpoint: { url: \"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: t, rules: [{ conditions: [{ [z]: c, [A]: [o, a] }], rules: [{ endpoint: { url: \"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: u, rules: [{ conditions: [p], rules: [{ conditions: w, endpoint: s, type: e }, { conditions: [{ [z]: h, [A]: [\"aws-cn\", q] }], endpoint: { url: \"https://secretsmanager.{Region}.amazonaws.com.cn\", [C]: n, [D]: n }, type: e }, { conditions: x, endpoint: s, type: e }, { endpoint: { url: \"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n BatchGetSecretValueCommand: () => BatchGetSecretValueCommand,\n BatchGetSecretValueResponseFilterSensitiveLog: () => BatchGetSecretValueResponseFilterSensitiveLog,\n CancelRotateSecretCommand: () => CancelRotateSecretCommand,\n CreateSecretCommand: () => CreateSecretCommand,\n CreateSecretRequestFilterSensitiveLog: () => CreateSecretRequestFilterSensitiveLog,\n DecryptionFailure: () => DecryptionFailure,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeleteSecretCommand: () => DeleteSecretCommand,\n DescribeSecretCommand: () => DescribeSecretCommand,\n EncryptionFailure: () => EncryptionFailure,\n FilterNameStringType: () => FilterNameStringType,\n GetRandomPasswordCommand: () => GetRandomPasswordCommand,\n GetRandomPasswordResponseFilterSensitiveLog: () => GetRandomPasswordResponseFilterSensitiveLog,\n GetResourcePolicyCommand: () => GetResourcePolicyCommand,\n GetSecretValueCommand: () => GetSecretValueCommand,\n GetSecretValueResponseFilterSensitiveLog: () => GetSecretValueResponseFilterSensitiveLog,\n InternalServiceError: () => InternalServiceError,\n InvalidNextTokenException: () => InvalidNextTokenException,\n InvalidParameterException: () => InvalidParameterException,\n InvalidRequestException: () => InvalidRequestException,\n LimitExceededException: () => LimitExceededException,\n ListSecretVersionIdsCommand: () => ListSecretVersionIdsCommand,\n ListSecretsCommand: () => ListSecretsCommand,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PreconditionNotMetException: () => PreconditionNotMetException,\n PublicPolicyException: () => PublicPolicyException,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n PutSecretValueCommand: () => PutSecretValueCommand,\n PutSecretValueRequestFilterSensitiveLog: () => PutSecretValueRequestFilterSensitiveLog,\n RemoveRegionsFromReplicationCommand: () => RemoveRegionsFromReplicationCommand,\n ReplicateSecretToRegionsCommand: () => ReplicateSecretToRegionsCommand,\n ResourceExistsException: () => ResourceExistsException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RestoreSecretCommand: () => RestoreSecretCommand,\n RotateSecretCommand: () => RotateSecretCommand,\n SecretValueEntryFilterSensitiveLog: () => SecretValueEntryFilterSensitiveLog,\n SecretsManager: () => SecretsManager,\n SecretsManagerClient: () => SecretsManagerClient,\n SecretsManagerServiceException: () => SecretsManagerServiceException,\n SortOrderType: () => SortOrderType,\n StatusType: () => StatusType,\n StopReplicationToReplicaCommand: () => StopReplicationToReplicaCommand,\n TagResourceCommand: () => TagResourceCommand,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateSecretCommand: () => UpdateSecretCommand,\n UpdateSecretRequestFilterSensitiveLog: () => UpdateSecretRequestFilterSensitiveLog,\n UpdateSecretVersionStageCommand: () => UpdateSecretVersionStageCommand,\n ValidateResourcePolicyCommand: () => ValidateResourcePolicyCommand,\n __Client: () => import_smithy_client.Client,\n paginateBatchGetSecretValue: () => paginateBatchGetSecretValue,\n paginateListSecretVersionIds: () => paginateListSecretVersionIds,\n paginateListSecrets: () => paginateListSecrets\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SecretsManagerClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"secretsmanager\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SecretsManagerClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SecretsManagerClient.ts\nvar SecretsManagerClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SecretsManagerClient\");\n }\n /**\n * The resolved configuration of SecretsManagerClient class. This is resolved and normalized from the {@link SecretsManagerClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSecretsManagerHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SecretsManager.ts\n\n\n// src/commands/BatchGetSecretValueCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SecretsManagerServiceException.ts\n\nvar SecretsManagerServiceException = class _SecretsManagerServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SecretsManagerServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SecretsManagerServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar FilterNameStringType = {\n all: \"all\",\n description: \"description\",\n name: \"name\",\n owning_service: \"owning-service\",\n primary_region: \"primary-region\",\n tag_key: \"tag-key\",\n tag_value: \"tag-value\"\n};\nvar DecryptionFailure = class _DecryptionFailure extends SecretsManagerServiceException {\n static {\n __name(this, \"DecryptionFailure\");\n }\n name = \"DecryptionFailure\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DecryptionFailure\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DecryptionFailure.prototype);\n this.Message = opts.Message;\n }\n};\nvar InternalServiceError = class _InternalServiceError extends SecretsManagerServiceException {\n static {\n __name(this, \"InternalServiceError\");\n }\n name = \"InternalServiceError\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServiceError\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServiceError.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidNextTokenException = class _InvalidNextTokenException extends SecretsManagerServiceException {\n static {\n __name(this, \"InvalidNextTokenException\");\n }\n name = \"InvalidNextTokenException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidNextTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidNextTokenException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidParameterException = class _InvalidParameterException extends SecretsManagerServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SecretsManagerServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SecretsManagerServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar StatusType = {\n Failed: \"Failed\",\n InProgress: \"InProgress\",\n InSync: \"InSync\"\n};\nvar EncryptionFailure = class _EncryptionFailure extends SecretsManagerServiceException {\n static {\n __name(this, \"EncryptionFailure\");\n }\n name = \"EncryptionFailure\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EncryptionFailure\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EncryptionFailure.prototype);\n this.Message = opts.Message;\n }\n};\nvar LimitExceededException = class _LimitExceededException extends SecretsManagerServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends SecretsManagerServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PreconditionNotMetException = class _PreconditionNotMetException extends SecretsManagerServiceException {\n static {\n __name(this, \"PreconditionNotMetException\");\n }\n name = \"PreconditionNotMetException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PreconditionNotMetException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PreconditionNotMetException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceExistsException = class _ResourceExistsException extends SecretsManagerServiceException {\n static {\n __name(this, \"ResourceExistsException\");\n }\n name = \"ResourceExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SortOrderType = {\n asc: \"asc\",\n desc: \"desc\"\n};\nvar PublicPolicyException = class _PublicPolicyException extends SecretsManagerServiceException {\n static {\n __name(this, \"PublicPolicyException\");\n }\n name = \"PublicPolicyException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PublicPolicyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PublicPolicyException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SecretValueEntryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"SecretValueEntryFilterSensitiveLog\");\nvar BatchGetSecretValueResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretValues && { SecretValues: obj.SecretValues.map((item) => SecretValueEntryFilterSensitiveLog(item)) }\n}), \"BatchGetSecretValueResponseFilterSensitiveLog\");\nvar CreateSecretRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateSecretRequestFilterSensitiveLog\");\nvar GetRandomPasswordResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.RandomPassword && { RandomPassword: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRandomPasswordResponseFilterSensitiveLog\");\nvar GetSecretValueResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"GetSecretValueResponseFilterSensitiveLog\");\nvar PutSecretValueRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING },\n ...obj.RotationToken && { RotationToken: import_smithy_client.SENSITIVE_STRING }\n}), \"PutSecretValueRequestFilterSensitiveLog\");\nvar UpdateSecretRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateSecretRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\nvar se_BatchGetSecretValueCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetSecretValue\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetSecretValueCommand\");\nvar se_CancelRotateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelRotateSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelRotateSecretCommand\");\nvar se_CreateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateSecret\");\n let body;\n body = JSON.stringify(se_CreateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSecretCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeleteSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSecretCommand\");\nvar se_DescribeSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecretCommand\");\nvar se_GetRandomPasswordCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRandomPassword\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRandomPasswordCommand\");\nvar se_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePolicyCommand\");\nvar se_GetSecretValueCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetSecretValue\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSecretValueCommand\");\nvar se_ListSecretsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSecrets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSecretsCommand\");\nvar se_ListSecretVersionIdsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSecretVersionIds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSecretVersionIdsCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_PutSecretValueCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutSecretValue\");\n let body;\n body = JSON.stringify(se_PutSecretValueRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutSecretValueCommand\");\nvar se_RemoveRegionsFromReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RemoveRegionsFromReplication\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveRegionsFromReplicationCommand\");\nvar se_ReplicateSecretToRegionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ReplicateSecretToRegions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplicateSecretToRegionsCommand\");\nvar se_RestoreSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RestoreSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreSecretCommand\");\nvar se_RotateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RotateSecret\");\n let body;\n body = JSON.stringify(se_RotateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RotateSecretCommand\");\nvar se_StopReplicationToReplicaCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopReplicationToReplica\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopReplicationToReplicaCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateSecret\");\n let body;\n body = JSON.stringify(se_UpdateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecretCommand\");\nvar se_UpdateSecretVersionStageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateSecretVersionStage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecretVersionStageCommand\");\nvar se_ValidateResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ValidateResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ValidateResourcePolicyCommand\");\nvar de_BatchGetSecretValueCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetSecretValueResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetSecretValueCommand\");\nvar de_CancelRotateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelRotateSecretCommand\");\nvar de_CreateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSecretCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeleteSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSecretCommand\");\nvar de_DescribeSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecretCommand\");\nvar de_GetRandomPasswordCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRandomPasswordCommand\");\nvar de_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePolicyCommand\");\nvar de_GetSecretValueCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetSecretValueResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSecretValueCommand\");\nvar de_ListSecretsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListSecretsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSecretsCommand\");\nvar de_ListSecretVersionIdsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListSecretVersionIdsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSecretVersionIdsCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_PutSecretValueCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutSecretValueCommand\");\nvar de_RemoveRegionsFromReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RemoveRegionsFromReplicationResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveRegionsFromReplicationCommand\");\nvar de_ReplicateSecretToRegionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ReplicateSecretToRegionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplicateSecretToRegionsCommand\");\nvar de_RestoreSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreSecretCommand\");\nvar de_RotateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RotateSecretCommand\");\nvar de_StopReplicationToReplicaCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopReplicationToReplicaCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecretCommand\");\nvar de_UpdateSecretVersionStageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecretVersionStageCommand\");\nvar de_ValidateResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ValidateResourcePolicyCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"DecryptionFailure\":\n case \"com.amazonaws.secretsmanager#DecryptionFailure\":\n throw await de_DecryptionFailureRes(parsedOutput, context);\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await de_InternalServiceErrorRes(parsedOutput, context);\n case \"InvalidNextTokenException\":\n case \"com.amazonaws.secretsmanager#InvalidNextTokenException\":\n throw await de_InvalidNextTokenExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"EncryptionFailure\":\n case \"com.amazonaws.secretsmanager#EncryptionFailure\":\n throw await de_EncryptionFailureRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.secretsmanager#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.secretsmanager#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.secretsmanager#PreconditionNotMetException\":\n throw await de_PreconditionNotMetExceptionRes(parsedOutput, context);\n case \"ResourceExistsException\":\n case \"com.amazonaws.secretsmanager#ResourceExistsException\":\n throw await de_ResourceExistsExceptionRes(parsedOutput, context);\n case \"PublicPolicyException\":\n case \"com.amazonaws.secretsmanager#PublicPolicyException\":\n throw await de_PublicPolicyExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_DecryptionFailureRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DecryptionFailure({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DecryptionFailureRes\");\nvar de_EncryptionFailureRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new EncryptionFailure({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EncryptionFailureRes\");\nvar de_InternalServiceErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InternalServiceError({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InternalServiceErrorRes\");\nvar de_InvalidNextTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidNextTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNextTokenExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PreconditionNotMetExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PreconditionNotMetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PreconditionNotMetExceptionRes\");\nvar de_PublicPolicyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PublicPolicyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PublicPolicyExceptionRes\");\nvar de_ResourceExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceExistsExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar se_CreateSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AddReplicaRegions: import_smithy_client._json,\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n ForceOverwriteReplicaSecret: [],\n KmsKeyId: [],\n Name: [],\n SecretBinary: context.base64Encoder,\n SecretString: [],\n Tags: import_smithy_client._json\n });\n}, \"se_CreateSecretRequest\");\nvar se_PutSecretValueRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n RotationToken: [],\n SecretBinary: context.base64Encoder,\n SecretId: [],\n SecretString: [],\n VersionStages: import_smithy_client._json\n });\n}, \"se_PutSecretValueRequest\");\nvar se_RotateSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n RotateImmediately: [],\n RotationLambdaARN: [],\n RotationRules: import_smithy_client._json,\n SecretId: []\n });\n}, \"se_RotateSecretRequest\");\nvar se_UpdateSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n KmsKeyId: [],\n SecretBinary: context.base64Encoder,\n SecretId: [],\n SecretString: []\n });\n}, \"se_UpdateSecretRequest\");\nvar de_BatchGetSecretValueResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Errors: import_smithy_client._json,\n NextToken: import_smithy_client.expectString,\n SecretValues: /* @__PURE__ */ __name((_) => de_SecretValuesType(_, context), \"SecretValues\")\n });\n}, \"de_BatchGetSecretValueResponse\");\nvar de_CreateSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\"),\n VersionId: import_smithy_client.expectString\n });\n}, \"de_CreateSecretResponse\");\nvar de_DeleteSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n DeletionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionDate\"),\n Name: import_smithy_client.expectString\n });\n}, \"de_DeleteSecretResponse\");\nvar de_DescribeSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DeletedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletedDate\"),\n Description: import_smithy_client.expectString,\n KmsKeyId: import_smithy_client.expectString,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n LastChangedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastChangedDate\"),\n LastRotatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastRotatedDate\"),\n Name: import_smithy_client.expectString,\n NextRotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"NextRotationDate\"),\n OwningService: import_smithy_client.expectString,\n PrimaryRegion: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\"),\n RotationEnabled: import_smithy_client.expectBoolean,\n RotationLambdaARN: import_smithy_client.expectString,\n RotationRules: import_smithy_client._json,\n Tags: import_smithy_client._json,\n VersionIdsToStages: import_smithy_client._json\n });\n}, \"de_DescribeSecretResponse\");\nvar de_GetSecretValueResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Name: import_smithy_client.expectString,\n SecretBinary: context.base64Decoder,\n SecretString: import_smithy_client.expectString,\n VersionId: import_smithy_client.expectString,\n VersionStages: import_smithy_client._json\n });\n}, \"de_GetSecretValueResponse\");\nvar de_ListSecretsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n SecretList: /* @__PURE__ */ __name((_) => de_SecretListType(_, context), \"SecretList\")\n });\n}, \"de_ListSecretsResponse\");\nvar de_ListSecretVersionIdsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n NextToken: import_smithy_client.expectString,\n Versions: /* @__PURE__ */ __name((_) => de_SecretVersionsListType(_, context), \"Versions\")\n });\n}, \"de_ListSecretVersionIdsResponse\");\nvar de_RemoveRegionsFromReplicationResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\")\n });\n}, \"de_RemoveRegionsFromReplicationResponse\");\nvar de_ReplicateSecretToRegionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\")\n });\n}, \"de_ReplicateSecretToRegionsResponse\");\nvar de_ReplicationStatusListType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ReplicationStatusType(entry, context);\n });\n return retVal;\n}, \"de_ReplicationStatusListType\");\nvar de_ReplicationStatusType = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KmsKeyId: import_smithy_client.expectString,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n Region: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusMessage: import_smithy_client.expectString\n });\n}, \"de_ReplicationStatusType\");\nvar de_SecretListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DeletedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletedDate\"),\n Description: import_smithy_client.expectString,\n KmsKeyId: import_smithy_client.expectString,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n LastChangedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastChangedDate\"),\n LastRotatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastRotatedDate\"),\n Name: import_smithy_client.expectString,\n NextRotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"NextRotationDate\"),\n OwningService: import_smithy_client.expectString,\n PrimaryRegion: import_smithy_client.expectString,\n RotationEnabled: import_smithy_client.expectBoolean,\n RotationLambdaARN: import_smithy_client.expectString,\n RotationRules: import_smithy_client._json,\n SecretVersionsToStages: import_smithy_client._json,\n Tags: import_smithy_client._json\n });\n}, \"de_SecretListEntry\");\nvar de_SecretListType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SecretListEntry(entry, context);\n });\n return retVal;\n}, \"de_SecretListType\");\nvar de_SecretValueEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Name: import_smithy_client.expectString,\n SecretBinary: context.base64Decoder,\n SecretString: import_smithy_client.expectString,\n VersionId: import_smithy_client.expectString,\n VersionStages: import_smithy_client._json\n });\n}, \"de_SecretValueEntry\");\nvar de_SecretValuesType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SecretValueEntry(entry, context);\n });\n return retVal;\n}, \"de_SecretValuesType\");\nvar de_SecretVersionsListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n KmsKeyIds: import_smithy_client._json,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n VersionId: import_smithy_client.expectString,\n VersionStages: import_smithy_client._json\n });\n}, \"de_SecretVersionsListEntry\");\nvar de_SecretVersionsListType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SecretVersionsListEntry(entry, context);\n });\n return retVal;\n}, \"de_SecretVersionsListType\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SecretsManagerServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `secretsmanager.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/BatchGetSecretValueCommand.ts\nvar BatchGetSecretValueCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"BatchGetSecretValue\", {}).n(\"SecretsManagerClient\", \"BatchGetSecretValueCommand\").f(void 0, BatchGetSecretValueResponseFilterSensitiveLog).ser(se_BatchGetSecretValueCommand).de(de_BatchGetSecretValueCommand).build() {\n static {\n __name(this, \"BatchGetSecretValueCommand\");\n }\n};\n\n// src/commands/CancelRotateSecretCommand.ts\n\n\n\nvar CancelRotateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"CancelRotateSecret\", {}).n(\"SecretsManagerClient\", \"CancelRotateSecretCommand\").f(void 0, void 0).ser(se_CancelRotateSecretCommand).de(de_CancelRotateSecretCommand).build() {\n static {\n __name(this, \"CancelRotateSecretCommand\");\n }\n};\n\n// src/commands/CreateSecretCommand.ts\n\n\n\nvar CreateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"CreateSecret\", {}).n(\"SecretsManagerClient\", \"CreateSecretCommand\").f(CreateSecretRequestFilterSensitiveLog, void 0).ser(se_CreateSecretCommand).de(de_CreateSecretCommand).build() {\n static {\n __name(this, \"CreateSecretCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"DeleteResourcePolicy\", {}).n(\"SecretsManagerClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeleteSecretCommand.ts\n\n\n\nvar DeleteSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"DeleteSecret\", {}).n(\"SecretsManagerClient\", \"DeleteSecretCommand\").f(void 0, void 0).ser(se_DeleteSecretCommand).de(de_DeleteSecretCommand).build() {\n static {\n __name(this, \"DeleteSecretCommand\");\n }\n};\n\n// src/commands/DescribeSecretCommand.ts\n\n\n\nvar DescribeSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"DescribeSecret\", {}).n(\"SecretsManagerClient\", \"DescribeSecretCommand\").f(void 0, void 0).ser(se_DescribeSecretCommand).de(de_DescribeSecretCommand).build() {\n static {\n __name(this, \"DescribeSecretCommand\");\n }\n};\n\n// src/commands/GetRandomPasswordCommand.ts\n\n\n\nvar GetRandomPasswordCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"GetRandomPassword\", {}).n(\"SecretsManagerClient\", \"GetRandomPasswordCommand\").f(void 0, GetRandomPasswordResponseFilterSensitiveLog).ser(se_GetRandomPasswordCommand).de(de_GetRandomPasswordCommand).build() {\n static {\n __name(this, \"GetRandomPasswordCommand\");\n }\n};\n\n// src/commands/GetResourcePolicyCommand.ts\n\n\n\nvar GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"GetResourcePolicy\", {}).n(\"SecretsManagerClient\", \"GetResourcePolicyCommand\").f(void 0, void 0).ser(se_GetResourcePolicyCommand).de(de_GetResourcePolicyCommand).build() {\n static {\n __name(this, \"GetResourcePolicyCommand\");\n }\n};\n\n// src/commands/GetSecretValueCommand.ts\n\n\n\nvar GetSecretValueCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"GetSecretValue\", {}).n(\"SecretsManagerClient\", \"GetSecretValueCommand\").f(void 0, GetSecretValueResponseFilterSensitiveLog).ser(se_GetSecretValueCommand).de(de_GetSecretValueCommand).build() {\n static {\n __name(this, \"GetSecretValueCommand\");\n }\n};\n\n// src/commands/ListSecretsCommand.ts\n\n\n\nvar ListSecretsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ListSecrets\", {}).n(\"SecretsManagerClient\", \"ListSecretsCommand\").f(void 0, void 0).ser(se_ListSecretsCommand).de(de_ListSecretsCommand).build() {\n static {\n __name(this, \"ListSecretsCommand\");\n }\n};\n\n// src/commands/ListSecretVersionIdsCommand.ts\n\n\n\nvar ListSecretVersionIdsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ListSecretVersionIds\", {}).n(\"SecretsManagerClient\", \"ListSecretVersionIdsCommand\").f(void 0, void 0).ser(se_ListSecretVersionIdsCommand).de(de_ListSecretVersionIdsCommand).build() {\n static {\n __name(this, \"ListSecretVersionIdsCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"PutResourcePolicy\", {}).n(\"SecretsManagerClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/PutSecretValueCommand.ts\n\n\n\nvar PutSecretValueCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"PutSecretValue\", {}).n(\"SecretsManagerClient\", \"PutSecretValueCommand\").f(PutSecretValueRequestFilterSensitiveLog, void 0).ser(se_PutSecretValueCommand).de(de_PutSecretValueCommand).build() {\n static {\n __name(this, \"PutSecretValueCommand\");\n }\n};\n\n// src/commands/RemoveRegionsFromReplicationCommand.ts\n\n\n\nvar RemoveRegionsFromReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"RemoveRegionsFromReplication\", {}).n(\"SecretsManagerClient\", \"RemoveRegionsFromReplicationCommand\").f(void 0, void 0).ser(se_RemoveRegionsFromReplicationCommand).de(de_RemoveRegionsFromReplicationCommand).build() {\n static {\n __name(this, \"RemoveRegionsFromReplicationCommand\");\n }\n};\n\n// src/commands/ReplicateSecretToRegionsCommand.ts\n\n\n\nvar ReplicateSecretToRegionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ReplicateSecretToRegions\", {}).n(\"SecretsManagerClient\", \"ReplicateSecretToRegionsCommand\").f(void 0, void 0).ser(se_ReplicateSecretToRegionsCommand).de(de_ReplicateSecretToRegionsCommand).build() {\n static {\n __name(this, \"ReplicateSecretToRegionsCommand\");\n }\n};\n\n// src/commands/RestoreSecretCommand.ts\n\n\n\nvar RestoreSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"RestoreSecret\", {}).n(\"SecretsManagerClient\", \"RestoreSecretCommand\").f(void 0, void 0).ser(se_RestoreSecretCommand).de(de_RestoreSecretCommand).build() {\n static {\n __name(this, \"RestoreSecretCommand\");\n }\n};\n\n// src/commands/RotateSecretCommand.ts\n\n\n\nvar RotateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"RotateSecret\", {}).n(\"SecretsManagerClient\", \"RotateSecretCommand\").f(void 0, void 0).ser(se_RotateSecretCommand).de(de_RotateSecretCommand).build() {\n static {\n __name(this, \"RotateSecretCommand\");\n }\n};\n\n// src/commands/StopReplicationToReplicaCommand.ts\n\n\n\nvar StopReplicationToReplicaCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"StopReplicationToReplica\", {}).n(\"SecretsManagerClient\", \"StopReplicationToReplicaCommand\").f(void 0, void 0).ser(se_StopReplicationToReplicaCommand).de(de_StopReplicationToReplicaCommand).build() {\n static {\n __name(this, \"StopReplicationToReplicaCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"TagResource\", {}).n(\"SecretsManagerClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"UntagResource\", {}).n(\"SecretsManagerClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateSecretCommand.ts\n\n\n\nvar UpdateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"UpdateSecret\", {}).n(\"SecretsManagerClient\", \"UpdateSecretCommand\").f(UpdateSecretRequestFilterSensitiveLog, void 0).ser(se_UpdateSecretCommand).de(de_UpdateSecretCommand).build() {\n static {\n __name(this, \"UpdateSecretCommand\");\n }\n};\n\n// src/commands/UpdateSecretVersionStageCommand.ts\n\n\n\nvar UpdateSecretVersionStageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"UpdateSecretVersionStage\", {}).n(\"SecretsManagerClient\", \"UpdateSecretVersionStageCommand\").f(void 0, void 0).ser(se_UpdateSecretVersionStageCommand).de(de_UpdateSecretVersionStageCommand).build() {\n static {\n __name(this, \"UpdateSecretVersionStageCommand\");\n }\n};\n\n// src/commands/ValidateResourcePolicyCommand.ts\n\n\n\nvar ValidateResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ValidateResourcePolicy\", {}).n(\"SecretsManagerClient\", \"ValidateResourcePolicyCommand\").f(void 0, void 0).ser(se_ValidateResourcePolicyCommand).de(de_ValidateResourcePolicyCommand).build() {\n static {\n __name(this, \"ValidateResourcePolicyCommand\");\n }\n};\n\n// src/SecretsManager.ts\nvar commands = {\n BatchGetSecretValueCommand,\n CancelRotateSecretCommand,\n CreateSecretCommand,\n DeleteResourcePolicyCommand,\n DeleteSecretCommand,\n DescribeSecretCommand,\n GetRandomPasswordCommand,\n GetResourcePolicyCommand,\n GetSecretValueCommand,\n ListSecretsCommand,\n ListSecretVersionIdsCommand,\n PutResourcePolicyCommand,\n PutSecretValueCommand,\n RemoveRegionsFromReplicationCommand,\n ReplicateSecretToRegionsCommand,\n RestoreSecretCommand,\n RotateSecretCommand,\n StopReplicationToReplicaCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateSecretCommand,\n UpdateSecretVersionStageCommand,\n ValidateResourcePolicyCommand\n};\nvar SecretsManager = class extends SecretsManagerClient {\n static {\n __name(this, \"SecretsManager\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SecretsManager);\n\n// src/pagination/BatchGetSecretValuePaginator.ts\n\nvar paginateBatchGetSecretValue = (0, import_core.createPaginator)(SecretsManagerClient, BatchGetSecretValueCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListSecretVersionIdsPaginator.ts\n\nvar paginateListSecretVersionIds = (0, import_core.createPaginator)(SecretsManagerClient, ListSecretVersionIdsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListSecretsPaginator.ts\n\nvar paginateListSecrets = (0, import_core.createPaginator)(SecretsManagerClient, ListSecretsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SecretsManagerServiceException,\n __Client,\n SecretsManagerClient,\n SecretsManager,\n $Command,\n BatchGetSecretValueCommand,\n CancelRotateSecretCommand,\n CreateSecretCommand,\n DeleteResourcePolicyCommand,\n DeleteSecretCommand,\n DescribeSecretCommand,\n GetRandomPasswordCommand,\n GetResourcePolicyCommand,\n GetSecretValueCommand,\n ListSecretVersionIdsCommand,\n ListSecretsCommand,\n PutResourcePolicyCommand,\n PutSecretValueCommand,\n RemoveRegionsFromReplicationCommand,\n ReplicateSecretToRegionsCommand,\n RestoreSecretCommand,\n RotateSecretCommand,\n StopReplicationToReplicaCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateSecretCommand,\n UpdateSecretVersionStageCommand,\n ValidateResourcePolicyCommand,\n paginateBatchGetSecretValue,\n paginateListSecretVersionIds,\n paginateListSecrets,\n FilterNameStringType,\n DecryptionFailure,\n InternalServiceError,\n InvalidNextTokenException,\n InvalidParameterException,\n InvalidRequestException,\n ResourceNotFoundException,\n StatusType,\n EncryptionFailure,\n LimitExceededException,\n MalformedPolicyDocumentException,\n PreconditionNotMetException,\n ResourceExistsException,\n SortOrderType,\n PublicPolicyException,\n SecretValueEntryFilterSensitiveLog,\n BatchGetSecretValueResponseFilterSensitiveLog,\n CreateSecretRequestFilterSensitiveLog,\n GetRandomPasswordResponseFilterSensitiveLog,\n GetSecretValueResponseFilterSensitiveLog,\n PutSecretValueRequestFilterSensitiveLog,\n UpdateSecretRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2017-10-17\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSecretsManagerHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Secrets Manager\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSFNHttpAuthSchemeProvider = exports.defaultSFNHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSFNHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSFNHttpAuthSchemeParametersProvider = defaultSFNHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"states\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultSFNHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSFNHttpAuthSchemeProvider = defaultSFNHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst t = \"required\", u = \"fn\", v = \"argv\", w = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [t]: false, \"type\": \"String\" }, i = { [t]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [w]: \"Endpoint\" }, k = { [u]: c, [v]: [{ [w]: \"UseFIPS\" }, true] }, l = { [u]: c, [v]: [{ [w]: \"UseDualStack\" }, true] }, m = {}, n = { [w]: \"Region\" }, o = { [u]: \"getAttr\", [v]: [{ [w]: g }, \"supportsFIPS\"] }, p = { [u]: c, [v]: [true, { [u]: \"getAttr\", [v]: [{ [w]: g }, \"supportsDualStack\"] }] }, q = [k], r = [l], s = [n];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [u]: b, [v]: [j] }], rules: [{ conditions: q, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: r, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [u]: b, [v]: s }], rules: [{ conditions: [{ [u]: \"aws.partition\", [v]: s, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [u]: c, [v]: [a, o] }, p], rules: [{ endpoint: { url: \"https://states-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [{ [u]: c, [v]: [o, a] }], rules: [{ conditions: [{ [u]: \"stringEquals\", [v]: [n, \"us-gov-west-1\"] }], endpoint: { url: \"https://states.us-gov-west-1.amazonaws.com\", properties: m, headers: m }, type: e }, { endpoint: { url: \"https://states-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [p], rules: [{ endpoint: { url: \"https://states.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://states.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ActivityAlreadyExists: () => ActivityAlreadyExists,\n ActivityDoesNotExist: () => ActivityDoesNotExist,\n ActivityFailedEventDetailsFilterSensitiveLog: () => ActivityFailedEventDetailsFilterSensitiveLog,\n ActivityLimitExceeded: () => ActivityLimitExceeded,\n ActivityScheduleFailedEventDetailsFilterSensitiveLog: () => ActivityScheduleFailedEventDetailsFilterSensitiveLog,\n ActivityScheduledEventDetailsFilterSensitiveLog: () => ActivityScheduledEventDetailsFilterSensitiveLog,\n ActivitySucceededEventDetailsFilterSensitiveLog: () => ActivitySucceededEventDetailsFilterSensitiveLog,\n ActivityTimedOutEventDetailsFilterSensitiveLog: () => ActivityTimedOutEventDetailsFilterSensitiveLog,\n ActivityWorkerLimitExceeded: () => ActivityWorkerLimitExceeded,\n ConflictException: () => ConflictException,\n CreateActivityCommand: () => CreateActivityCommand,\n CreateStateMachineAliasCommand: () => CreateStateMachineAliasCommand,\n CreateStateMachineAliasInputFilterSensitiveLog: () => CreateStateMachineAliasInputFilterSensitiveLog,\n CreateStateMachineCommand: () => CreateStateMachineCommand,\n CreateStateMachineInputFilterSensitiveLog: () => CreateStateMachineInputFilterSensitiveLog,\n DeleteActivityCommand: () => DeleteActivityCommand,\n DeleteStateMachineAliasCommand: () => DeleteStateMachineAliasCommand,\n DeleteStateMachineCommand: () => DeleteStateMachineCommand,\n DeleteStateMachineVersionCommand: () => DeleteStateMachineVersionCommand,\n DescribeActivityCommand: () => DescribeActivityCommand,\n DescribeExecutionCommand: () => DescribeExecutionCommand,\n DescribeExecutionOutputFilterSensitiveLog: () => DescribeExecutionOutputFilterSensitiveLog,\n DescribeMapRunCommand: () => DescribeMapRunCommand,\n DescribeStateMachineAliasCommand: () => DescribeStateMachineAliasCommand,\n DescribeStateMachineAliasOutputFilterSensitiveLog: () => DescribeStateMachineAliasOutputFilterSensitiveLog,\n DescribeStateMachineCommand: () => DescribeStateMachineCommand,\n DescribeStateMachineForExecutionCommand: () => DescribeStateMachineForExecutionCommand,\n DescribeStateMachineForExecutionOutputFilterSensitiveLog: () => DescribeStateMachineForExecutionOutputFilterSensitiveLog,\n DescribeStateMachineOutputFilterSensitiveLog: () => DescribeStateMachineOutputFilterSensitiveLog,\n EncryptionType: () => EncryptionType,\n EvaluationFailedEventDetailsFilterSensitiveLog: () => EvaluationFailedEventDetailsFilterSensitiveLog,\n ExecutionAbortedEventDetailsFilterSensitiveLog: () => ExecutionAbortedEventDetailsFilterSensitiveLog,\n ExecutionAlreadyExists: () => ExecutionAlreadyExists,\n ExecutionDoesNotExist: () => ExecutionDoesNotExist,\n ExecutionFailedEventDetailsFilterSensitiveLog: () => ExecutionFailedEventDetailsFilterSensitiveLog,\n ExecutionLimitExceeded: () => ExecutionLimitExceeded,\n ExecutionNotRedrivable: () => ExecutionNotRedrivable,\n ExecutionRedriveFilter: () => ExecutionRedriveFilter,\n ExecutionRedriveStatus: () => ExecutionRedriveStatus,\n ExecutionStartedEventDetailsFilterSensitiveLog: () => ExecutionStartedEventDetailsFilterSensitiveLog,\n ExecutionStatus: () => ExecutionStatus,\n ExecutionSucceededEventDetailsFilterSensitiveLog: () => ExecutionSucceededEventDetailsFilterSensitiveLog,\n ExecutionTimedOutEventDetailsFilterSensitiveLog: () => ExecutionTimedOutEventDetailsFilterSensitiveLog,\n GetActivityTaskCommand: () => GetActivityTaskCommand,\n GetActivityTaskOutputFilterSensitiveLog: () => GetActivityTaskOutputFilterSensitiveLog,\n GetExecutionHistoryCommand: () => GetExecutionHistoryCommand,\n GetExecutionHistoryOutputFilterSensitiveLog: () => GetExecutionHistoryOutputFilterSensitiveLog,\n HistoryEventFilterSensitiveLog: () => HistoryEventFilterSensitiveLog,\n HistoryEventType: () => HistoryEventType,\n IncludedData: () => IncludedData,\n InspectionDataFilterSensitiveLog: () => InspectionDataFilterSensitiveLog,\n InspectionLevel: () => InspectionLevel,\n InvalidArn: () => InvalidArn,\n InvalidDefinition: () => InvalidDefinition,\n InvalidEncryptionConfiguration: () => InvalidEncryptionConfiguration,\n InvalidExecutionInput: () => InvalidExecutionInput,\n InvalidLoggingConfiguration: () => InvalidLoggingConfiguration,\n InvalidName: () => InvalidName,\n InvalidOutput: () => InvalidOutput,\n InvalidToken: () => InvalidToken,\n InvalidTracingConfiguration: () => InvalidTracingConfiguration,\n KmsAccessDeniedException: () => KmsAccessDeniedException,\n KmsInvalidStateException: () => KmsInvalidStateException,\n KmsKeyState: () => KmsKeyState,\n KmsThrottlingException: () => KmsThrottlingException,\n LambdaFunctionFailedEventDetailsFilterSensitiveLog: () => LambdaFunctionFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog: () => LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduledEventDetailsFilterSensitiveLog: () => LambdaFunctionScheduledEventDetailsFilterSensitiveLog,\n LambdaFunctionStartFailedEventDetailsFilterSensitiveLog: () => LambdaFunctionStartFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionSucceededEventDetailsFilterSensitiveLog: () => LambdaFunctionSucceededEventDetailsFilterSensitiveLog,\n LambdaFunctionTimedOutEventDetailsFilterSensitiveLog: () => LambdaFunctionTimedOutEventDetailsFilterSensitiveLog,\n ListActivitiesCommand: () => ListActivitiesCommand,\n ListExecutionsCommand: () => ListExecutionsCommand,\n ListMapRunsCommand: () => ListMapRunsCommand,\n ListStateMachineAliasesCommand: () => ListStateMachineAliasesCommand,\n ListStateMachineVersionsCommand: () => ListStateMachineVersionsCommand,\n ListStateMachinesCommand: () => ListStateMachinesCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n LogLevel: () => LogLevel,\n MapRunFailedEventDetailsFilterSensitiveLog: () => MapRunFailedEventDetailsFilterSensitiveLog,\n MapRunStatus: () => MapRunStatus,\n MissingRequiredParameter: () => MissingRequiredParameter,\n PublishStateMachineVersionCommand: () => PublishStateMachineVersionCommand,\n PublishStateMachineVersionInputFilterSensitiveLog: () => PublishStateMachineVersionInputFilterSensitiveLog,\n RedriveExecutionCommand: () => RedriveExecutionCommand,\n ResourceNotFound: () => ResourceNotFound,\n SFN: () => SFN,\n SFNClient: () => SFNClient,\n SFNServiceException: () => SFNServiceException,\n SendTaskFailureCommand: () => SendTaskFailureCommand,\n SendTaskFailureInputFilterSensitiveLog: () => SendTaskFailureInputFilterSensitiveLog,\n SendTaskHeartbeatCommand: () => SendTaskHeartbeatCommand,\n SendTaskSuccessCommand: () => SendTaskSuccessCommand,\n SendTaskSuccessInputFilterSensitiveLog: () => SendTaskSuccessInputFilterSensitiveLog,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n StartExecutionCommand: () => StartExecutionCommand,\n StartExecutionInputFilterSensitiveLog: () => StartExecutionInputFilterSensitiveLog,\n StartSyncExecutionCommand: () => StartSyncExecutionCommand,\n StartSyncExecutionInputFilterSensitiveLog: () => StartSyncExecutionInputFilterSensitiveLog,\n StartSyncExecutionOutputFilterSensitiveLog: () => StartSyncExecutionOutputFilterSensitiveLog,\n StateEnteredEventDetailsFilterSensitiveLog: () => StateEnteredEventDetailsFilterSensitiveLog,\n StateExitedEventDetailsFilterSensitiveLog: () => StateExitedEventDetailsFilterSensitiveLog,\n StateMachineAlreadyExists: () => StateMachineAlreadyExists,\n StateMachineDeleting: () => StateMachineDeleting,\n StateMachineDoesNotExist: () => StateMachineDoesNotExist,\n StateMachineLimitExceeded: () => StateMachineLimitExceeded,\n StateMachineStatus: () => StateMachineStatus,\n StateMachineType: () => StateMachineType,\n StateMachineTypeNotSupported: () => StateMachineTypeNotSupported,\n StopExecutionCommand: () => StopExecutionCommand,\n StopExecutionInputFilterSensitiveLog: () => StopExecutionInputFilterSensitiveLog,\n SyncExecutionStatus: () => SyncExecutionStatus,\n TagResourceCommand: () => TagResourceCommand,\n TaskDoesNotExist: () => TaskDoesNotExist,\n TaskFailedEventDetailsFilterSensitiveLog: () => TaskFailedEventDetailsFilterSensitiveLog,\n TaskScheduledEventDetailsFilterSensitiveLog: () => TaskScheduledEventDetailsFilterSensitiveLog,\n TaskStartFailedEventDetailsFilterSensitiveLog: () => TaskStartFailedEventDetailsFilterSensitiveLog,\n TaskSubmitFailedEventDetailsFilterSensitiveLog: () => TaskSubmitFailedEventDetailsFilterSensitiveLog,\n TaskSubmittedEventDetailsFilterSensitiveLog: () => TaskSubmittedEventDetailsFilterSensitiveLog,\n TaskSucceededEventDetailsFilterSensitiveLog: () => TaskSucceededEventDetailsFilterSensitiveLog,\n TaskTimedOut: () => TaskTimedOut,\n TaskTimedOutEventDetailsFilterSensitiveLog: () => TaskTimedOutEventDetailsFilterSensitiveLog,\n TestExecutionStatus: () => TestExecutionStatus,\n TestStateCommand: () => TestStateCommand,\n TestStateInputFilterSensitiveLog: () => TestStateInputFilterSensitiveLog,\n TestStateOutputFilterSensitiveLog: () => TestStateOutputFilterSensitiveLog,\n TooManyTags: () => TooManyTags,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateMapRunCommand: () => UpdateMapRunCommand,\n UpdateStateMachineAliasCommand: () => UpdateStateMachineAliasCommand,\n UpdateStateMachineAliasInputFilterSensitiveLog: () => UpdateStateMachineAliasInputFilterSensitiveLog,\n UpdateStateMachineCommand: () => UpdateStateMachineCommand,\n UpdateStateMachineInputFilterSensitiveLog: () => UpdateStateMachineInputFilterSensitiveLog,\n ValidateStateMachineDefinitionCommand: () => ValidateStateMachineDefinitionCommand,\n ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog: () => ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog,\n ValidateStateMachineDefinitionInputFilterSensitiveLog: () => ValidateStateMachineDefinitionInputFilterSensitiveLog,\n ValidateStateMachineDefinitionOutputFilterSensitiveLog: () => ValidateStateMachineDefinitionOutputFilterSensitiveLog,\n ValidateStateMachineDefinitionResultCode: () => ValidateStateMachineDefinitionResultCode,\n ValidateStateMachineDefinitionSeverity: () => ValidateStateMachineDefinitionSeverity,\n ValidationException: () => ValidationException,\n ValidationExceptionReason: () => ValidationExceptionReason,\n __Client: () => import_smithy_client.Client,\n paginateGetExecutionHistory: () => paginateGetExecutionHistory,\n paginateListActivities: () => paginateListActivities,\n paginateListExecutions: () => paginateListExecutions,\n paginateListMapRuns: () => paginateListMapRuns,\n paginateListStateMachines: () => paginateListStateMachines\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SFNClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"states\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SFNClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SFNClient.ts\nvar SFNClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SFNClient\");\n }\n /**\n * The resolved configuration of SFNClient class. This is resolved and normalized from the {@link SFNClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSFNHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SFN.ts\n\n\n// src/commands/CreateActivityCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_0.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/models_0.ts\n\n\n// src/models/SFNServiceException.ts\n\nvar SFNServiceException = class _SFNServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SFNServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SFNServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar ActivityAlreadyExists = class _ActivityAlreadyExists extends SFNServiceException {\n static {\n __name(this, \"ActivityAlreadyExists\");\n }\n name = \"ActivityAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityAlreadyExists.prototype);\n }\n};\nvar ActivityDoesNotExist = class _ActivityDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"ActivityDoesNotExist\");\n }\n name = \"ActivityDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityDoesNotExist.prototype);\n }\n};\nvar ActivityLimitExceeded = class _ActivityLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"ActivityLimitExceeded\");\n }\n name = \"ActivityLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityLimitExceeded.prototype);\n }\n};\nvar ActivityWorkerLimitExceeded = class _ActivityWorkerLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"ActivityWorkerLimitExceeded\");\n }\n name = \"ActivityWorkerLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityWorkerLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityWorkerLimitExceeded.prototype);\n }\n};\nvar EncryptionType = {\n AWS_OWNED_KEY: \"AWS_OWNED_KEY\",\n CUSTOMER_MANAGED_KMS_KEY: \"CUSTOMER_MANAGED_KMS_KEY\"\n};\nvar InvalidEncryptionConfiguration = class _InvalidEncryptionConfiguration extends SFNServiceException {\n static {\n __name(this, \"InvalidEncryptionConfiguration\");\n }\n name = \"InvalidEncryptionConfiguration\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidEncryptionConfiguration\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidEncryptionConfiguration.prototype);\n }\n};\nvar InvalidName = class _InvalidName extends SFNServiceException {\n static {\n __name(this, \"InvalidName\");\n }\n name = \"InvalidName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidName.prototype);\n }\n};\nvar KmsAccessDeniedException = class _KmsAccessDeniedException extends SFNServiceException {\n static {\n __name(this, \"KmsAccessDeniedException\");\n }\n name = \"KmsAccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsAccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsAccessDeniedException.prototype);\n }\n};\nvar KmsThrottlingException = class _KmsThrottlingException extends SFNServiceException {\n static {\n __name(this, \"KmsThrottlingException\");\n }\n name = \"KmsThrottlingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsThrottlingException.prototype);\n }\n};\nvar TooManyTags = class _TooManyTags extends SFNServiceException {\n static {\n __name(this, \"TooManyTags\");\n }\n name = \"TooManyTags\";\n $fault = \"client\";\n resourceName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTags\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTags.prototype);\n this.resourceName = opts.resourceName;\n }\n};\nvar ConflictException = class _ConflictException extends SFNServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar LogLevel = {\n ALL: \"ALL\",\n ERROR: \"ERROR\",\n FATAL: \"FATAL\",\n OFF: \"OFF\"\n};\nvar StateMachineType = {\n EXPRESS: \"EXPRESS\",\n STANDARD: \"STANDARD\"\n};\nvar InvalidArn = class _InvalidArn extends SFNServiceException {\n static {\n __name(this, \"InvalidArn\");\n }\n name = \"InvalidArn\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidArn\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidArn.prototype);\n }\n};\nvar InvalidDefinition = class _InvalidDefinition extends SFNServiceException {\n static {\n __name(this, \"InvalidDefinition\");\n }\n name = \"InvalidDefinition\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDefinition\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDefinition.prototype);\n }\n};\nvar InvalidLoggingConfiguration = class _InvalidLoggingConfiguration extends SFNServiceException {\n static {\n __name(this, \"InvalidLoggingConfiguration\");\n }\n name = \"InvalidLoggingConfiguration\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLoggingConfiguration\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLoggingConfiguration.prototype);\n }\n};\nvar InvalidTracingConfiguration = class _InvalidTracingConfiguration extends SFNServiceException {\n static {\n __name(this, \"InvalidTracingConfiguration\");\n }\n name = \"InvalidTracingConfiguration\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTracingConfiguration\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTracingConfiguration.prototype);\n }\n};\nvar StateMachineAlreadyExists = class _StateMachineAlreadyExists extends SFNServiceException {\n static {\n __name(this, \"StateMachineAlreadyExists\");\n }\n name = \"StateMachineAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineAlreadyExists.prototype);\n }\n};\nvar StateMachineDeleting = class _StateMachineDeleting extends SFNServiceException {\n static {\n __name(this, \"StateMachineDeleting\");\n }\n name = \"StateMachineDeleting\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineDeleting\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineDeleting.prototype);\n }\n};\nvar StateMachineLimitExceeded = class _StateMachineLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"StateMachineLimitExceeded\");\n }\n name = \"StateMachineLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineLimitExceeded.prototype);\n }\n};\nvar StateMachineTypeNotSupported = class _StateMachineTypeNotSupported extends SFNServiceException {\n static {\n __name(this, \"StateMachineTypeNotSupported\");\n }\n name = \"StateMachineTypeNotSupported\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineTypeNotSupported\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineTypeNotSupported.prototype);\n }\n};\nvar ValidationExceptionReason = {\n API_DOES_NOT_SUPPORT_LABELED_ARNS: \"API_DOES_NOT_SUPPORT_LABELED_ARNS\",\n CANNOT_UPDATE_COMPLETED_MAP_RUN: \"CANNOT_UPDATE_COMPLETED_MAP_RUN\",\n INVALID_ROUTING_CONFIGURATION: \"INVALID_ROUTING_CONFIGURATION\",\n MISSING_REQUIRED_PARAMETER: \"MISSING_REQUIRED_PARAMETER\"\n};\nvar ValidationException = class _ValidationException extends SFNServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n /**\n *

The input does not satisfy the constraints specified by an Amazon Web Services service.

\n * @public\n */\n reason;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n this.reason = opts.reason;\n }\n};\nvar ResourceNotFound = class _ResourceNotFound extends SFNServiceException {\n static {\n __name(this, \"ResourceNotFound\");\n }\n name = \"ResourceNotFound\";\n $fault = \"client\";\n resourceName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFound.prototype);\n this.resourceName = opts.resourceName;\n }\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends SFNServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n }\n};\nvar IncludedData = {\n ALL_DATA: \"ALL_DATA\",\n METADATA_ONLY: \"METADATA_ONLY\"\n};\nvar ExecutionRedriveStatus = {\n NOT_REDRIVABLE: \"NOT_REDRIVABLE\",\n REDRIVABLE: \"REDRIVABLE\",\n REDRIVABLE_BY_MAP_RUN: \"REDRIVABLE_BY_MAP_RUN\"\n};\nvar ExecutionStatus = {\n ABORTED: \"ABORTED\",\n FAILED: \"FAILED\",\n PENDING_REDRIVE: \"PENDING_REDRIVE\",\n RUNNING: \"RUNNING\",\n SUCCEEDED: \"SUCCEEDED\",\n TIMED_OUT: \"TIMED_OUT\"\n};\nvar ExecutionDoesNotExist = class _ExecutionDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"ExecutionDoesNotExist\");\n }\n name = \"ExecutionDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionDoesNotExist.prototype);\n }\n};\nvar KmsKeyState = {\n CREATING: \"CREATING\",\n DISABLED: \"DISABLED\",\n PENDING_DELETION: \"PENDING_DELETION\",\n PENDING_IMPORT: \"PENDING_IMPORT\",\n UNAVAILABLE: \"UNAVAILABLE\"\n};\nvar KmsInvalidStateException = class _KmsInvalidStateException extends SFNServiceException {\n static {\n __name(this, \"KmsInvalidStateException\");\n }\n name = \"KmsInvalidStateException\";\n $fault = \"client\";\n /**\n *

Current status of the KMS; key. For example: DISABLED, PENDING_DELETION, PENDING_IMPORT, UNAVAILABLE, CREATING.

\n * @public\n */\n kmsKeyState;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsInvalidStateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsInvalidStateException.prototype);\n this.kmsKeyState = opts.kmsKeyState;\n }\n};\nvar MapRunStatus = {\n ABORTED: \"ABORTED\",\n FAILED: \"FAILED\",\n RUNNING: \"RUNNING\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar StateMachineStatus = {\n ACTIVE: \"ACTIVE\",\n DELETING: \"DELETING\"\n};\nvar StateMachineDoesNotExist = class _StateMachineDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"StateMachineDoesNotExist\");\n }\n name = \"StateMachineDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineDoesNotExist.prototype);\n }\n};\nvar HistoryEventType = {\n ActivityFailed: \"ActivityFailed\",\n ActivityScheduleFailed: \"ActivityScheduleFailed\",\n ActivityScheduled: \"ActivityScheduled\",\n ActivityStarted: \"ActivityStarted\",\n ActivitySucceeded: \"ActivitySucceeded\",\n ActivityTimedOut: \"ActivityTimedOut\",\n ChoiceStateEntered: \"ChoiceStateEntered\",\n ChoiceStateExited: \"ChoiceStateExited\",\n EvaluationFailed: \"EvaluationFailed\",\n ExecutionAborted: \"ExecutionAborted\",\n ExecutionFailed: \"ExecutionFailed\",\n ExecutionRedriven: \"ExecutionRedriven\",\n ExecutionStarted: \"ExecutionStarted\",\n ExecutionSucceeded: \"ExecutionSucceeded\",\n ExecutionTimedOut: \"ExecutionTimedOut\",\n FailStateEntered: \"FailStateEntered\",\n LambdaFunctionFailed: \"LambdaFunctionFailed\",\n LambdaFunctionScheduleFailed: \"LambdaFunctionScheduleFailed\",\n LambdaFunctionScheduled: \"LambdaFunctionScheduled\",\n LambdaFunctionStartFailed: \"LambdaFunctionStartFailed\",\n LambdaFunctionStarted: \"LambdaFunctionStarted\",\n LambdaFunctionSucceeded: \"LambdaFunctionSucceeded\",\n LambdaFunctionTimedOut: \"LambdaFunctionTimedOut\",\n MapIterationAborted: \"MapIterationAborted\",\n MapIterationFailed: \"MapIterationFailed\",\n MapIterationStarted: \"MapIterationStarted\",\n MapIterationSucceeded: \"MapIterationSucceeded\",\n MapRunAborted: \"MapRunAborted\",\n MapRunFailed: \"MapRunFailed\",\n MapRunRedriven: \"MapRunRedriven\",\n MapRunStarted: \"MapRunStarted\",\n MapRunSucceeded: \"MapRunSucceeded\",\n MapStateAborted: \"MapStateAborted\",\n MapStateEntered: \"MapStateEntered\",\n MapStateExited: \"MapStateExited\",\n MapStateFailed: \"MapStateFailed\",\n MapStateStarted: \"MapStateStarted\",\n MapStateSucceeded: \"MapStateSucceeded\",\n ParallelStateAborted: \"ParallelStateAborted\",\n ParallelStateEntered: \"ParallelStateEntered\",\n ParallelStateExited: \"ParallelStateExited\",\n ParallelStateFailed: \"ParallelStateFailed\",\n ParallelStateStarted: \"ParallelStateStarted\",\n ParallelStateSucceeded: \"ParallelStateSucceeded\",\n PassStateEntered: \"PassStateEntered\",\n PassStateExited: \"PassStateExited\",\n SucceedStateEntered: \"SucceedStateEntered\",\n SucceedStateExited: \"SucceedStateExited\",\n TaskFailed: \"TaskFailed\",\n TaskScheduled: \"TaskScheduled\",\n TaskStartFailed: \"TaskStartFailed\",\n TaskStarted: \"TaskStarted\",\n TaskStateAborted: \"TaskStateAborted\",\n TaskStateEntered: \"TaskStateEntered\",\n TaskStateExited: \"TaskStateExited\",\n TaskSubmitFailed: \"TaskSubmitFailed\",\n TaskSubmitted: \"TaskSubmitted\",\n TaskSucceeded: \"TaskSucceeded\",\n TaskTimedOut: \"TaskTimedOut\",\n WaitStateAborted: \"WaitStateAborted\",\n WaitStateEntered: \"WaitStateEntered\",\n WaitStateExited: \"WaitStateExited\"\n};\nvar InvalidToken = class _InvalidToken extends SFNServiceException {\n static {\n __name(this, \"InvalidToken\");\n }\n name = \"InvalidToken\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidToken\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidToken.prototype);\n }\n};\nvar ExecutionRedriveFilter = {\n NOT_REDRIVEN: \"NOT_REDRIVEN\",\n REDRIVEN: \"REDRIVEN\"\n};\nvar ExecutionLimitExceeded = class _ExecutionLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"ExecutionLimitExceeded\");\n }\n name = \"ExecutionLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionLimitExceeded.prototype);\n }\n};\nvar ExecutionNotRedrivable = class _ExecutionNotRedrivable extends SFNServiceException {\n static {\n __name(this, \"ExecutionNotRedrivable\");\n }\n name = \"ExecutionNotRedrivable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionNotRedrivable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionNotRedrivable.prototype);\n }\n};\nvar TaskDoesNotExist = class _TaskDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"TaskDoesNotExist\");\n }\n name = \"TaskDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TaskDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TaskDoesNotExist.prototype);\n }\n};\nvar TaskTimedOut = class _TaskTimedOut extends SFNServiceException {\n static {\n __name(this, \"TaskTimedOut\");\n }\n name = \"TaskTimedOut\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TaskTimedOut\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TaskTimedOut.prototype);\n }\n};\nvar InvalidOutput = class _InvalidOutput extends SFNServiceException {\n static {\n __name(this, \"InvalidOutput\");\n }\n name = \"InvalidOutput\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOutput\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOutput.prototype);\n }\n};\nvar ExecutionAlreadyExists = class _ExecutionAlreadyExists extends SFNServiceException {\n static {\n __name(this, \"ExecutionAlreadyExists\");\n }\n name = \"ExecutionAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionAlreadyExists.prototype);\n }\n};\nvar InvalidExecutionInput = class _InvalidExecutionInput extends SFNServiceException {\n static {\n __name(this, \"InvalidExecutionInput\");\n }\n name = \"InvalidExecutionInput\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidExecutionInput\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidExecutionInput.prototype);\n }\n};\nvar SyncExecutionStatus = {\n FAILED: \"FAILED\",\n SUCCEEDED: \"SUCCEEDED\",\n TIMED_OUT: \"TIMED_OUT\"\n};\nvar InspectionLevel = {\n DEBUG: \"DEBUG\",\n INFO: \"INFO\",\n TRACE: \"TRACE\"\n};\nvar TestExecutionStatus = {\n CAUGHT_ERROR: \"CAUGHT_ERROR\",\n FAILED: \"FAILED\",\n RETRIABLE: \"RETRIABLE\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar MissingRequiredParameter = class _MissingRequiredParameter extends SFNServiceException {\n static {\n __name(this, \"MissingRequiredParameter\");\n }\n name = \"MissingRequiredParameter\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MissingRequiredParameter\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MissingRequiredParameter.prototype);\n }\n};\nvar ValidateStateMachineDefinitionSeverity = {\n ERROR: \"ERROR\",\n WARNING: \"WARNING\"\n};\nvar ValidateStateMachineDefinitionResultCode = {\n FAIL: \"FAIL\",\n OK: \"OK\"\n};\nvar ActivityFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityFailedEventDetailsFilterSensitiveLog\");\nvar ActivityScheduledEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityScheduledEventDetailsFilterSensitiveLog\");\nvar ActivityScheduleFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityScheduleFailedEventDetailsFilterSensitiveLog\");\nvar ActivitySucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivitySucceededEventDetailsFilterSensitiveLog\");\nvar ActivityTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityTimedOutEventDetailsFilterSensitiveLog\");\nvar CreateStateMachineInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.versionDescription && { versionDescription: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateStateMachineInputFilterSensitiveLog\");\nvar CreateStateMachineAliasInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateStateMachineAliasInputFilterSensitiveLog\");\nvar DescribeExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING },\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.redriveStatusReason && { redriveStatusReason: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeExecutionOutputFilterSensitiveLog\");\nvar DescribeStateMachineOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING },\n ...obj.variableReferences && { variableReferences: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeStateMachineOutputFilterSensitiveLog\");\nvar DescribeStateMachineAliasOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeStateMachineAliasOutputFilterSensitiveLog\");\nvar DescribeStateMachineForExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.variableReferences && { variableReferences: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeStateMachineForExecutionOutputFilterSensitiveLog\");\nvar GetActivityTaskOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"GetActivityTaskOutputFilterSensitiveLog\");\nvar EvaluationFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.location && { location: import_smithy_client.SENSITIVE_STRING }\n}), \"EvaluationFailedEventDetailsFilterSensitiveLog\");\nvar ExecutionAbortedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionAbortedEventDetailsFilterSensitiveLog\");\nvar ExecutionFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionFailedEventDetailsFilterSensitiveLog\");\nvar ExecutionStartedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionStartedEventDetailsFilterSensitiveLog\");\nvar ExecutionSucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionSucceededEventDetailsFilterSensitiveLog\");\nvar ExecutionTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionTimedOutEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionFailedEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionScheduledEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionScheduledEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionStartFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionStartFailedEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionSucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionSucceededEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionTimedOutEventDetailsFilterSensitiveLog\");\nvar MapRunFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"MapRunFailedEventDetailsFilterSensitiveLog\");\nvar StateEnteredEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"StateEnteredEventDetailsFilterSensitiveLog\");\nvar StateExitedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING },\n ...obj.assignedVariables && { assignedVariables: import_smithy_client.SENSITIVE_STRING }\n}), \"StateExitedEventDetailsFilterSensitiveLog\");\nvar TaskFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskFailedEventDetailsFilterSensitiveLog\");\nvar TaskScheduledEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.parameters && { parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskScheduledEventDetailsFilterSensitiveLog\");\nvar TaskStartFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskStartFailedEventDetailsFilterSensitiveLog\");\nvar TaskSubmitFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskSubmitFailedEventDetailsFilterSensitiveLog\");\nvar TaskSubmittedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskSubmittedEventDetailsFilterSensitiveLog\");\nvar TaskSucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskSucceededEventDetailsFilterSensitiveLog\");\nvar TaskTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskTimedOutEventDetailsFilterSensitiveLog\");\nvar HistoryEventFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.activityFailedEventDetails && {\n activityFailedEventDetails: ActivityFailedEventDetailsFilterSensitiveLog(obj.activityFailedEventDetails)\n },\n ...obj.activityScheduleFailedEventDetails && {\n activityScheduleFailedEventDetails: ActivityScheduleFailedEventDetailsFilterSensitiveLog(\n obj.activityScheduleFailedEventDetails\n )\n },\n ...obj.activityScheduledEventDetails && {\n activityScheduledEventDetails: ActivityScheduledEventDetailsFilterSensitiveLog(obj.activityScheduledEventDetails)\n },\n ...obj.activitySucceededEventDetails && {\n activitySucceededEventDetails: ActivitySucceededEventDetailsFilterSensitiveLog(obj.activitySucceededEventDetails)\n },\n ...obj.activityTimedOutEventDetails && {\n activityTimedOutEventDetails: ActivityTimedOutEventDetailsFilterSensitiveLog(obj.activityTimedOutEventDetails)\n },\n ...obj.taskFailedEventDetails && {\n taskFailedEventDetails: TaskFailedEventDetailsFilterSensitiveLog(obj.taskFailedEventDetails)\n },\n ...obj.taskScheduledEventDetails && {\n taskScheduledEventDetails: TaskScheduledEventDetailsFilterSensitiveLog(obj.taskScheduledEventDetails)\n },\n ...obj.taskStartFailedEventDetails && {\n taskStartFailedEventDetails: TaskStartFailedEventDetailsFilterSensitiveLog(obj.taskStartFailedEventDetails)\n },\n ...obj.taskSubmitFailedEventDetails && {\n taskSubmitFailedEventDetails: TaskSubmitFailedEventDetailsFilterSensitiveLog(obj.taskSubmitFailedEventDetails)\n },\n ...obj.taskSubmittedEventDetails && {\n taskSubmittedEventDetails: TaskSubmittedEventDetailsFilterSensitiveLog(obj.taskSubmittedEventDetails)\n },\n ...obj.taskSucceededEventDetails && {\n taskSucceededEventDetails: TaskSucceededEventDetailsFilterSensitiveLog(obj.taskSucceededEventDetails)\n },\n ...obj.taskTimedOutEventDetails && {\n taskTimedOutEventDetails: TaskTimedOutEventDetailsFilterSensitiveLog(obj.taskTimedOutEventDetails)\n },\n ...obj.executionFailedEventDetails && {\n executionFailedEventDetails: ExecutionFailedEventDetailsFilterSensitiveLog(obj.executionFailedEventDetails)\n },\n ...obj.executionStartedEventDetails && {\n executionStartedEventDetails: ExecutionStartedEventDetailsFilterSensitiveLog(obj.executionStartedEventDetails)\n },\n ...obj.executionSucceededEventDetails && {\n executionSucceededEventDetails: ExecutionSucceededEventDetailsFilterSensitiveLog(\n obj.executionSucceededEventDetails\n )\n },\n ...obj.executionAbortedEventDetails && {\n executionAbortedEventDetails: ExecutionAbortedEventDetailsFilterSensitiveLog(obj.executionAbortedEventDetails)\n },\n ...obj.executionTimedOutEventDetails && {\n executionTimedOutEventDetails: ExecutionTimedOutEventDetailsFilterSensitiveLog(obj.executionTimedOutEventDetails)\n },\n ...obj.lambdaFunctionFailedEventDetails && {\n lambdaFunctionFailedEventDetails: LambdaFunctionFailedEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionFailedEventDetails\n )\n },\n ...obj.lambdaFunctionScheduleFailedEventDetails && {\n lambdaFunctionScheduleFailedEventDetails: LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionScheduleFailedEventDetails\n )\n },\n ...obj.lambdaFunctionScheduledEventDetails && {\n lambdaFunctionScheduledEventDetails: LambdaFunctionScheduledEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionScheduledEventDetails\n )\n },\n ...obj.lambdaFunctionStartFailedEventDetails && {\n lambdaFunctionStartFailedEventDetails: LambdaFunctionStartFailedEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionStartFailedEventDetails\n )\n },\n ...obj.lambdaFunctionSucceededEventDetails && {\n lambdaFunctionSucceededEventDetails: LambdaFunctionSucceededEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionSucceededEventDetails\n )\n },\n ...obj.lambdaFunctionTimedOutEventDetails && {\n lambdaFunctionTimedOutEventDetails: LambdaFunctionTimedOutEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionTimedOutEventDetails\n )\n },\n ...obj.stateEnteredEventDetails && {\n stateEnteredEventDetails: StateEnteredEventDetailsFilterSensitiveLog(obj.stateEnteredEventDetails)\n },\n ...obj.stateExitedEventDetails && {\n stateExitedEventDetails: StateExitedEventDetailsFilterSensitiveLog(obj.stateExitedEventDetails)\n },\n ...obj.mapRunFailedEventDetails && {\n mapRunFailedEventDetails: MapRunFailedEventDetailsFilterSensitiveLog(obj.mapRunFailedEventDetails)\n },\n ...obj.evaluationFailedEventDetails && {\n evaluationFailedEventDetails: EvaluationFailedEventDetailsFilterSensitiveLog(obj.evaluationFailedEventDetails)\n }\n}), \"HistoryEventFilterSensitiveLog\");\nvar GetExecutionHistoryOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.events && { events: obj.events.map((item) => HistoryEventFilterSensitiveLog(item)) }\n}), \"GetExecutionHistoryOutputFilterSensitiveLog\");\nvar PublishStateMachineVersionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"PublishStateMachineVersionInputFilterSensitiveLog\");\nvar SendTaskFailureInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"SendTaskFailureInputFilterSensitiveLog\");\nvar SendTaskSuccessInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"SendTaskSuccessInputFilterSensitiveLog\");\nvar StartExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"StartExecutionInputFilterSensitiveLog\");\nvar StartSyncExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"StartSyncExecutionInputFilterSensitiveLog\");\nvar StartSyncExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"StartSyncExecutionOutputFilterSensitiveLog\");\nvar StopExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"StopExecutionInputFilterSensitiveLog\");\nvar TestStateInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.variables && { variables: import_smithy_client.SENSITIVE_STRING }\n}), \"TestStateInputFilterSensitiveLog\");\nvar InspectionDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterArguments && { afterArguments: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterInputPath && { afterInputPath: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterParameters && { afterParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.result && { result: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterResultSelector && { afterResultSelector: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterResultPath && { afterResultPath: import_smithy_client.SENSITIVE_STRING },\n ...obj.variables && { variables: import_smithy_client.SENSITIVE_STRING }\n}), \"InspectionDataFilterSensitiveLog\");\nvar TestStateOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING },\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.inspectionData && { inspectionData: import_smithy_client.SENSITIVE_STRING }\n}), \"TestStateOutputFilterSensitiveLog\");\nvar UpdateStateMachineInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.versionDescription && { versionDescription: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateStateMachineInputFilterSensitiveLog\");\nvar UpdateStateMachineAliasInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateStateMachineAliasInputFilterSensitiveLog\");\nvar ValidateStateMachineDefinitionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING }\n}), \"ValidateStateMachineDefinitionInputFilterSensitiveLog\");\nvar ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.code && { code: import_smithy_client.SENSITIVE_STRING },\n ...obj.message && { message: import_smithy_client.SENSITIVE_STRING },\n ...obj.location && { location: import_smithy_client.SENSITIVE_STRING }\n}), \"ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog\");\nvar ValidateStateMachineDefinitionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.diagnostics && {\n diagnostics: obj.diagnostics.map((item) => ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog(item))\n }\n}), \"ValidateStateMachineDefinitionOutputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_0.ts\nvar se_CreateActivityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateActivity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateActivityCommand\");\nvar se_CreateStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateStateMachineCommand\");\nvar se_CreateStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateStateMachineAliasCommand\");\nvar se_DeleteActivityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteActivity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteActivityCommand\");\nvar se_DeleteStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteStateMachineCommand\");\nvar se_DeleteStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteStateMachineAliasCommand\");\nvar se_DeleteStateMachineVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteStateMachineVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteStateMachineVersionCommand\");\nvar se_DescribeActivityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeActivity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeActivityCommand\");\nvar se_DescribeExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExecutionCommand\");\nvar se_DescribeMapRunCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMapRun\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMapRunCommand\");\nvar se_DescribeStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStateMachineCommand\");\nvar se_DescribeStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStateMachineAliasCommand\");\nvar se_DescribeStateMachineForExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeStateMachineForExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStateMachineForExecutionCommand\");\nvar se_GetActivityTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetActivityTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetActivityTaskCommand\");\nvar se_GetExecutionHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetExecutionHistory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetExecutionHistoryCommand\");\nvar se_ListActivitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListActivities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListActivitiesCommand\");\nvar se_ListExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListExecutionsCommand\");\nvar se_ListMapRunsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListMapRuns\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListMapRunsCommand\");\nvar se_ListStateMachineAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListStateMachineAliases\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListStateMachineAliasesCommand\");\nvar se_ListStateMachinesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListStateMachines\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListStateMachinesCommand\");\nvar se_ListStateMachineVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListStateMachineVersions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListStateMachineVersionsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_PublishStateMachineVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PublishStateMachineVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PublishStateMachineVersionCommand\");\nvar se_RedriveExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RedriveExecution\");\n let body;\n body = JSON.stringify(se_RedriveExecutionInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RedriveExecutionCommand\");\nvar se_SendTaskFailureCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendTaskFailure\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendTaskFailureCommand\");\nvar se_SendTaskHeartbeatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendTaskHeartbeat\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendTaskHeartbeatCommand\");\nvar se_SendTaskSuccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendTaskSuccess\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendTaskSuccessCommand\");\nvar se_StartExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartExecutionCommand\");\nvar se_StartSyncExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSyncExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"sync-\" + resolvedHostname;\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return buildHttpRpcRequest(context, headers, \"/\", resolvedHostname, body);\n}, \"se_StartSyncExecutionCommand\");\nvar se_StopExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopExecutionCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_TestStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TestState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"sync-\" + resolvedHostname;\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return buildHttpRpcRequest(context, headers, \"/\", resolvedHostname, body);\n}, \"se_TestStateCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateMapRunCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMapRun\");\n let body;\n body = JSON.stringify(se_UpdateMapRunInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMapRunCommand\");\nvar se_UpdateStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateStateMachineCommand\");\nvar se_UpdateStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateStateMachineAliasCommand\");\nvar se_ValidateStateMachineDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ValidateStateMachineDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ValidateStateMachineDefinitionCommand\");\nvar de_CreateActivityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateActivityOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateActivityCommand\");\nvar de_CreateStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateStateMachineOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateStateMachineCommand\");\nvar de_CreateStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateStateMachineAliasOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateStateMachineAliasCommand\");\nvar de_DeleteActivityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteActivityCommand\");\nvar de_DeleteStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteStateMachineCommand\");\nvar de_DeleteStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteStateMachineAliasCommand\");\nvar de_DeleteStateMachineVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteStateMachineVersionCommand\");\nvar de_DescribeActivityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeActivityOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeActivityCommand\");\nvar de_DescribeExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExecutionCommand\");\nvar de_DescribeMapRunCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMapRunOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMapRunCommand\");\nvar de_DescribeStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStateMachineOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStateMachineCommand\");\nvar de_DescribeStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStateMachineAliasOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStateMachineAliasCommand\");\nvar de_DescribeStateMachineForExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStateMachineForExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStateMachineForExecutionCommand\");\nvar de_GetActivityTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetActivityTaskCommand\");\nvar de_GetExecutionHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetExecutionHistoryOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetExecutionHistoryCommand\");\nvar de_ListActivitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListActivitiesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListActivitiesCommand\");\nvar de_ListExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListExecutionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListExecutionsCommand\");\nvar de_ListMapRunsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListMapRunsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListMapRunsCommand\");\nvar de_ListStateMachineAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListStateMachineAliasesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListStateMachineAliasesCommand\");\nvar de_ListStateMachinesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListStateMachinesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListStateMachinesCommand\");\nvar de_ListStateMachineVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListStateMachineVersionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListStateMachineVersionsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_PublishStateMachineVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_PublishStateMachineVersionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PublishStateMachineVersionCommand\");\nvar de_RedriveExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RedriveExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RedriveExecutionCommand\");\nvar de_SendTaskFailureCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendTaskFailureCommand\");\nvar de_SendTaskHeartbeatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendTaskHeartbeatCommand\");\nvar de_SendTaskSuccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendTaskSuccessCommand\");\nvar de_StartExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartExecutionCommand\");\nvar de_StartSyncExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartSyncExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSyncExecutionCommand\");\nvar de_StopExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopExecutionCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_TestStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TestStateCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateMapRunCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMapRunCommand\");\nvar de_UpdateStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateStateMachineOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateStateMachineCommand\");\nvar de_UpdateStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateStateMachineAliasOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateStateMachineAliasCommand\");\nvar de_ValidateStateMachineDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ValidateStateMachineDefinitionCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ActivityAlreadyExists\":\n case \"com.amazonaws.sfn#ActivityAlreadyExists\":\n throw await de_ActivityAlreadyExistsRes(parsedOutput, context);\n case \"ActivityLimitExceeded\":\n case \"com.amazonaws.sfn#ActivityLimitExceeded\":\n throw await de_ActivityLimitExceededRes(parsedOutput, context);\n case \"InvalidEncryptionConfiguration\":\n case \"com.amazonaws.sfn#InvalidEncryptionConfiguration\":\n throw await de_InvalidEncryptionConfigurationRes(parsedOutput, context);\n case \"InvalidName\":\n case \"com.amazonaws.sfn#InvalidName\":\n throw await de_InvalidNameRes(parsedOutput, context);\n case \"KmsAccessDeniedException\":\n case \"com.amazonaws.sfn#KmsAccessDeniedException\":\n throw await de_KmsAccessDeniedExceptionRes(parsedOutput, context);\n case \"KmsThrottlingException\":\n case \"com.amazonaws.sfn#KmsThrottlingException\":\n throw await de_KmsThrottlingExceptionRes(parsedOutput, context);\n case \"TooManyTags\":\n case \"com.amazonaws.sfn#TooManyTags\":\n throw await de_TooManyTagsRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.sfn#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"InvalidArn\":\n case \"com.amazonaws.sfn#InvalidArn\":\n throw await de_InvalidArnRes(parsedOutput, context);\n case \"InvalidDefinition\":\n case \"com.amazonaws.sfn#InvalidDefinition\":\n throw await de_InvalidDefinitionRes(parsedOutput, context);\n case \"InvalidLoggingConfiguration\":\n case \"com.amazonaws.sfn#InvalidLoggingConfiguration\":\n throw await de_InvalidLoggingConfigurationRes(parsedOutput, context);\n case \"InvalidTracingConfiguration\":\n case \"com.amazonaws.sfn#InvalidTracingConfiguration\":\n throw await de_InvalidTracingConfigurationRes(parsedOutput, context);\n case \"StateMachineAlreadyExists\":\n case \"com.amazonaws.sfn#StateMachineAlreadyExists\":\n throw await de_StateMachineAlreadyExistsRes(parsedOutput, context);\n case \"StateMachineDeleting\":\n case \"com.amazonaws.sfn#StateMachineDeleting\":\n throw await de_StateMachineDeletingRes(parsedOutput, context);\n case \"StateMachineLimitExceeded\":\n case \"com.amazonaws.sfn#StateMachineLimitExceeded\":\n throw await de_StateMachineLimitExceededRes(parsedOutput, context);\n case \"StateMachineTypeNotSupported\":\n case \"com.amazonaws.sfn#StateMachineTypeNotSupported\":\n throw await de_StateMachineTypeNotSupportedRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.sfn#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"ResourceNotFound\":\n case \"com.amazonaws.sfn#ResourceNotFound\":\n throw await de_ResourceNotFoundRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.sfn#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"ActivityDoesNotExist\":\n case \"com.amazonaws.sfn#ActivityDoesNotExist\":\n throw await de_ActivityDoesNotExistRes(parsedOutput, context);\n case \"ExecutionDoesNotExist\":\n case \"com.amazonaws.sfn#ExecutionDoesNotExist\":\n throw await de_ExecutionDoesNotExistRes(parsedOutput, context);\n case \"KmsInvalidStateException\":\n case \"com.amazonaws.sfn#KmsInvalidStateException\":\n throw await de_KmsInvalidStateExceptionRes(parsedOutput, context);\n case \"StateMachineDoesNotExist\":\n case \"com.amazonaws.sfn#StateMachineDoesNotExist\":\n throw await de_StateMachineDoesNotExistRes(parsedOutput, context);\n case \"ActivityWorkerLimitExceeded\":\n case \"com.amazonaws.sfn#ActivityWorkerLimitExceeded\":\n throw await de_ActivityWorkerLimitExceededRes(parsedOutput, context);\n case \"InvalidToken\":\n case \"com.amazonaws.sfn#InvalidToken\":\n throw await de_InvalidTokenRes(parsedOutput, context);\n case \"ExecutionLimitExceeded\":\n case \"com.amazonaws.sfn#ExecutionLimitExceeded\":\n throw await de_ExecutionLimitExceededRes(parsedOutput, context);\n case \"ExecutionNotRedrivable\":\n case \"com.amazonaws.sfn#ExecutionNotRedrivable\":\n throw await de_ExecutionNotRedrivableRes(parsedOutput, context);\n case \"TaskDoesNotExist\":\n case \"com.amazonaws.sfn#TaskDoesNotExist\":\n throw await de_TaskDoesNotExistRes(parsedOutput, context);\n case \"TaskTimedOut\":\n case \"com.amazonaws.sfn#TaskTimedOut\":\n throw await de_TaskTimedOutRes(parsedOutput, context);\n case \"InvalidOutput\":\n case \"com.amazonaws.sfn#InvalidOutput\":\n throw await de_InvalidOutputRes(parsedOutput, context);\n case \"ExecutionAlreadyExists\":\n case \"com.amazonaws.sfn#ExecutionAlreadyExists\":\n throw await de_ExecutionAlreadyExistsRes(parsedOutput, context);\n case \"InvalidExecutionInput\":\n case \"com.amazonaws.sfn#InvalidExecutionInput\":\n throw await de_InvalidExecutionInputRes(parsedOutput, context);\n case \"MissingRequiredParameter\":\n case \"com.amazonaws.sfn#MissingRequiredParameter\":\n throw await de_MissingRequiredParameterRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ActivityAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityAlreadyExistsRes\");\nvar de_ActivityDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityDoesNotExistRes\");\nvar de_ActivityLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityLimitExceededRes\");\nvar de_ActivityWorkerLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityWorkerLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityWorkerLimitExceededRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_ExecutionAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionAlreadyExistsRes\");\nvar de_ExecutionDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionDoesNotExistRes\");\nvar de_ExecutionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionLimitExceededRes\");\nvar de_ExecutionNotRedrivableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionNotRedrivable({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionNotRedrivableRes\");\nvar de_InvalidArnRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidArn({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidArnRes\");\nvar de_InvalidDefinitionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDefinition({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDefinitionRes\");\nvar de_InvalidEncryptionConfigurationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidEncryptionConfiguration({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidEncryptionConfigurationRes\");\nvar de_InvalidExecutionInputRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidExecutionInput({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidExecutionInputRes\");\nvar de_InvalidLoggingConfigurationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidLoggingConfiguration({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLoggingConfigurationRes\");\nvar de_InvalidNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidName({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNameRes\");\nvar de_InvalidOutputRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOutput({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOutputRes\");\nvar de_InvalidTokenRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidToken({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTokenRes\");\nvar de_InvalidTracingConfigurationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTracingConfiguration({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTracingConfigurationRes\");\nvar de_KmsAccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsAccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsAccessDeniedExceptionRes\");\nvar de_KmsInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsInvalidStateExceptionRes\");\nvar de_KmsThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsThrottlingExceptionRes\");\nvar de_MissingRequiredParameterRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MissingRequiredParameter({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MissingRequiredParameterRes\");\nvar de_ResourceNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_StateMachineAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineAlreadyExistsRes\");\nvar de_StateMachineDeletingRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineDeleting({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineDeletingRes\");\nvar de_StateMachineDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineDoesNotExistRes\");\nvar de_StateMachineLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineLimitExceededRes\");\nvar de_StateMachineTypeNotSupportedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineTypeNotSupported({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineTypeNotSupportedRes\");\nvar de_TaskDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TaskDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TaskDoesNotExistRes\");\nvar de_TaskTimedOutRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TaskTimedOut({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TaskTimedOutRes\");\nvar de_TooManyTagsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTags({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar se_RedriveExecutionInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n clientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n executionArn: []\n });\n}, \"se_RedriveExecutionInput\");\nvar se_UpdateMapRunInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n mapRunArn: [],\n maxConcurrency: [],\n toleratedFailureCount: [],\n toleratedFailurePercentage: import_smithy_client.serializeFloat\n });\n}, \"se_UpdateMapRunInput\");\nvar de_ActivityList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ActivityListItem(entry, context);\n });\n return retVal;\n}, \"de_ActivityList\");\nvar de_ActivityListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityArn: import_smithy_client.expectString,\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n name: import_smithy_client.expectString\n });\n}, \"de_ActivityListItem\");\nvar de_CreateActivityOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityArn: import_smithy_client.expectString,\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\")\n });\n}, \"de_CreateActivityOutput\");\nvar de_CreateStateMachineAliasOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineAliasArn: import_smithy_client.expectString\n });\n}, \"de_CreateStateMachineAliasOutput\");\nvar de_CreateStateMachineOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineArn: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString\n });\n}, \"de_CreateStateMachineOutput\");\nvar de_DescribeActivityOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityArn: import_smithy_client.expectString,\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n encryptionConfiguration: import_smithy_client._json,\n name: import_smithy_client.expectString\n });\n}, \"de_DescribeActivityOutput\");\nvar de_DescribeExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n cause: import_smithy_client.expectString,\n error: import_smithy_client.expectString,\n executionArn: import_smithy_client.expectString,\n input: import_smithy_client.expectString,\n inputDetails: import_smithy_client._json,\n mapRunArn: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n output: import_smithy_client.expectString,\n outputDetails: import_smithy_client._json,\n redriveCount: import_smithy_client.expectInt32,\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\"),\n redriveStatus: import_smithy_client.expectString,\n redriveStatusReason: import_smithy_client.expectString,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineAliasArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\"),\n traceHeader: import_smithy_client.expectString\n });\n}, \"de_DescribeExecutionOutput\");\nvar de_DescribeMapRunOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n executionCounts: import_smithy_client._json,\n itemCounts: import_smithy_client._json,\n mapRunArn: import_smithy_client.expectString,\n maxConcurrency: import_smithy_client.expectInt32,\n redriveCount: import_smithy_client.expectInt32,\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\"),\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\"),\n toleratedFailureCount: import_smithy_client.expectLong,\n toleratedFailurePercentage: import_smithy_client.limitedParseFloat32\n });\n}, \"de_DescribeMapRunOutput\");\nvar de_DescribeStateMachineAliasOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n description: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n routingConfiguration: import_smithy_client._json,\n stateMachineAliasArn: import_smithy_client.expectString,\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\")\n });\n}, \"de_DescribeStateMachineAliasOutput\");\nvar de_DescribeStateMachineForExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n definition: import_smithy_client.expectString,\n encryptionConfiguration: import_smithy_client._json,\n label: import_smithy_client.expectString,\n loggingConfiguration: import_smithy_client._json,\n mapRunArn: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n revisionId: import_smithy_client.expectString,\n roleArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n tracingConfiguration: import_smithy_client._json,\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\"),\n variableReferences: import_smithy_client._json\n });\n}, \"de_DescribeStateMachineForExecutionOutput\");\nvar de_DescribeStateMachineOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n definition: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n encryptionConfiguration: import_smithy_client._json,\n label: import_smithy_client.expectString,\n loggingConfiguration: import_smithy_client._json,\n name: import_smithy_client.expectString,\n revisionId: import_smithy_client.expectString,\n roleArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n tracingConfiguration: import_smithy_client._json,\n type: import_smithy_client.expectString,\n variableReferences: import_smithy_client._json\n });\n}, \"de_DescribeStateMachineOutput\");\nvar de_ExecutionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ExecutionListItem(entry, context);\n });\n return retVal;\n}, \"de_ExecutionList\");\nvar de_ExecutionListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n itemCount: import_smithy_client.expectInt32,\n mapRunArn: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n redriveCount: import_smithy_client.expectInt32,\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\"),\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineAliasArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\")\n });\n}, \"de_ExecutionListItem\");\nvar de_GetExecutionHistoryOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n events: /* @__PURE__ */ __name((_) => de_HistoryEventList(_, context), \"events\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_GetExecutionHistoryOutput\");\nvar de_HistoryEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityFailedEventDetails: import_smithy_client._json,\n activityScheduleFailedEventDetails: import_smithy_client._json,\n activityScheduledEventDetails: import_smithy_client._json,\n activityStartedEventDetails: import_smithy_client._json,\n activitySucceededEventDetails: import_smithy_client._json,\n activityTimedOutEventDetails: import_smithy_client._json,\n evaluationFailedEventDetails: import_smithy_client._json,\n executionAbortedEventDetails: import_smithy_client._json,\n executionFailedEventDetails: import_smithy_client._json,\n executionRedrivenEventDetails: import_smithy_client._json,\n executionStartedEventDetails: import_smithy_client._json,\n executionSucceededEventDetails: import_smithy_client._json,\n executionTimedOutEventDetails: import_smithy_client._json,\n id: import_smithy_client.expectLong,\n lambdaFunctionFailedEventDetails: import_smithy_client._json,\n lambdaFunctionScheduleFailedEventDetails: import_smithy_client._json,\n lambdaFunctionScheduledEventDetails: import_smithy_client._json,\n lambdaFunctionStartFailedEventDetails: import_smithy_client._json,\n lambdaFunctionSucceededEventDetails: import_smithy_client._json,\n lambdaFunctionTimedOutEventDetails: import_smithy_client._json,\n mapIterationAbortedEventDetails: import_smithy_client._json,\n mapIterationFailedEventDetails: import_smithy_client._json,\n mapIterationStartedEventDetails: import_smithy_client._json,\n mapIterationSucceededEventDetails: import_smithy_client._json,\n mapRunFailedEventDetails: import_smithy_client._json,\n mapRunRedrivenEventDetails: import_smithy_client._json,\n mapRunStartedEventDetails: import_smithy_client._json,\n mapStateStartedEventDetails: import_smithy_client._json,\n previousEventId: import_smithy_client.expectLong,\n stateEnteredEventDetails: import_smithy_client._json,\n stateExitedEventDetails: import_smithy_client._json,\n taskFailedEventDetails: import_smithy_client._json,\n taskScheduledEventDetails: import_smithy_client._json,\n taskStartFailedEventDetails: import_smithy_client._json,\n taskStartedEventDetails: import_smithy_client._json,\n taskSubmitFailedEventDetails: import_smithy_client._json,\n taskSubmittedEventDetails: import_smithy_client._json,\n taskSucceededEventDetails: import_smithy_client._json,\n taskTimedOutEventDetails: import_smithy_client._json,\n timestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"timestamp\"),\n type: import_smithy_client.expectString\n });\n}, \"de_HistoryEvent\");\nvar de_HistoryEventList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_HistoryEvent(entry, context);\n });\n return retVal;\n}, \"de_HistoryEventList\");\nvar de_ListActivitiesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activities: /* @__PURE__ */ __name((_) => de_ActivityList(_, context), \"activities\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListActivitiesOutput\");\nvar de_ListExecutionsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executions: /* @__PURE__ */ __name((_) => de_ExecutionList(_, context), \"executions\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListExecutionsOutput\");\nvar de_ListMapRunsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n mapRuns: /* @__PURE__ */ __name((_) => de_MapRunList(_, context), \"mapRuns\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListMapRunsOutput\");\nvar de_ListStateMachineAliasesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n stateMachineAliases: /* @__PURE__ */ __name((_) => de_StateMachineAliasList(_, context), \"stateMachineAliases\")\n });\n}, \"de_ListStateMachineAliasesOutput\");\nvar de_ListStateMachinesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n stateMachines: /* @__PURE__ */ __name((_) => de_StateMachineList(_, context), \"stateMachines\")\n });\n}, \"de_ListStateMachinesOutput\");\nvar de_ListStateMachineVersionsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n stateMachineVersions: /* @__PURE__ */ __name((_) => de_StateMachineVersionList(_, context), \"stateMachineVersions\")\n });\n}, \"de_ListStateMachineVersionsOutput\");\nvar de_MapRunList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MapRunListItem(entry, context);\n });\n return retVal;\n}, \"de_MapRunList\");\nvar de_MapRunListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n mapRunArn: import_smithy_client.expectString,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineArn: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\")\n });\n}, \"de_MapRunListItem\");\nvar de_PublishStateMachineVersionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineVersionArn: import_smithy_client.expectString\n });\n}, \"de_PublishStateMachineVersionOutput\");\nvar de_RedriveExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\")\n });\n}, \"de_RedriveExecutionOutput\");\nvar de_StartExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\")\n });\n}, \"de_StartExecutionOutput\");\nvar de_StartSyncExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n billingDetails: import_smithy_client._json,\n cause: import_smithy_client.expectString,\n error: import_smithy_client.expectString,\n executionArn: import_smithy_client.expectString,\n input: import_smithy_client.expectString,\n inputDetails: import_smithy_client._json,\n name: import_smithy_client.expectString,\n output: import_smithy_client.expectString,\n outputDetails: import_smithy_client._json,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\"),\n traceHeader: import_smithy_client.expectString\n });\n}, \"de_StartSyncExecutionOutput\");\nvar de_StateMachineAliasList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StateMachineAliasListItem(entry, context);\n });\n return retVal;\n}, \"de_StateMachineAliasList\");\nvar de_StateMachineAliasListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineAliasArn: import_smithy_client.expectString\n });\n}, \"de_StateMachineAliasListItem\");\nvar de_StateMachineList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StateMachineListItem(entry, context);\n });\n return retVal;\n}, \"de_StateMachineList\");\nvar de_StateMachineListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n name: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n type: import_smithy_client.expectString\n });\n}, \"de_StateMachineListItem\");\nvar de_StateMachineVersionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StateMachineVersionListItem(entry, context);\n });\n return retVal;\n}, \"de_StateMachineVersionList\");\nvar de_StateMachineVersionListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineVersionArn: import_smithy_client.expectString\n });\n}, \"de_StateMachineVersionListItem\");\nvar de_StopExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\")\n });\n}, \"de_StopExecutionOutput\");\nvar de_UpdateStateMachineAliasOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\")\n });\n}, \"de_UpdateStateMachineAliasOutput\");\nvar de_UpdateStateMachineOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n revisionId: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString,\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\")\n });\n}, \"de_UpdateStateMachineOutput\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SFNServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.0\",\n \"x-amz-target\": `AWSStepFunctions.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CreateActivityCommand.ts\nvar CreateActivityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"CreateActivity\", {}).n(\"SFNClient\", \"CreateActivityCommand\").f(void 0, void 0).ser(se_CreateActivityCommand).de(de_CreateActivityCommand).build() {\n static {\n __name(this, \"CreateActivityCommand\");\n }\n};\n\n// src/commands/CreateStateMachineAliasCommand.ts\n\n\n\nvar CreateStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"CreateStateMachineAlias\", {}).n(\"SFNClient\", \"CreateStateMachineAliasCommand\").f(CreateStateMachineAliasInputFilterSensitiveLog, void 0).ser(se_CreateStateMachineAliasCommand).de(de_CreateStateMachineAliasCommand).build() {\n static {\n __name(this, \"CreateStateMachineAliasCommand\");\n }\n};\n\n// src/commands/CreateStateMachineCommand.ts\n\n\n\nvar CreateStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"CreateStateMachine\", {}).n(\"SFNClient\", \"CreateStateMachineCommand\").f(CreateStateMachineInputFilterSensitiveLog, void 0).ser(se_CreateStateMachineCommand).de(de_CreateStateMachineCommand).build() {\n static {\n __name(this, \"CreateStateMachineCommand\");\n }\n};\n\n// src/commands/DeleteActivityCommand.ts\n\n\n\nvar DeleteActivityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteActivity\", {}).n(\"SFNClient\", \"DeleteActivityCommand\").f(void 0, void 0).ser(se_DeleteActivityCommand).de(de_DeleteActivityCommand).build() {\n static {\n __name(this, \"DeleteActivityCommand\");\n }\n};\n\n// src/commands/DeleteStateMachineAliasCommand.ts\n\n\n\nvar DeleteStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteStateMachineAlias\", {}).n(\"SFNClient\", \"DeleteStateMachineAliasCommand\").f(void 0, void 0).ser(se_DeleteStateMachineAliasCommand).de(de_DeleteStateMachineAliasCommand).build() {\n static {\n __name(this, \"DeleteStateMachineAliasCommand\");\n }\n};\n\n// src/commands/DeleteStateMachineCommand.ts\n\n\n\nvar DeleteStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteStateMachine\", {}).n(\"SFNClient\", \"DeleteStateMachineCommand\").f(void 0, void 0).ser(se_DeleteStateMachineCommand).de(de_DeleteStateMachineCommand).build() {\n static {\n __name(this, \"DeleteStateMachineCommand\");\n }\n};\n\n// src/commands/DeleteStateMachineVersionCommand.ts\n\n\n\nvar DeleteStateMachineVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteStateMachineVersion\", {}).n(\"SFNClient\", \"DeleteStateMachineVersionCommand\").f(void 0, void 0).ser(se_DeleteStateMachineVersionCommand).de(de_DeleteStateMachineVersionCommand).build() {\n static {\n __name(this, \"DeleteStateMachineVersionCommand\");\n }\n};\n\n// src/commands/DescribeActivityCommand.ts\n\n\n\nvar DescribeActivityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeActivity\", {}).n(\"SFNClient\", \"DescribeActivityCommand\").f(void 0, void 0).ser(se_DescribeActivityCommand).de(de_DescribeActivityCommand).build() {\n static {\n __name(this, \"DescribeActivityCommand\");\n }\n};\n\n// src/commands/DescribeExecutionCommand.ts\n\n\n\nvar DescribeExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeExecution\", {}).n(\"SFNClient\", \"DescribeExecutionCommand\").f(void 0, DescribeExecutionOutputFilterSensitiveLog).ser(se_DescribeExecutionCommand).de(de_DescribeExecutionCommand).build() {\n static {\n __name(this, \"DescribeExecutionCommand\");\n }\n};\n\n// src/commands/DescribeMapRunCommand.ts\n\n\n\nvar DescribeMapRunCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeMapRun\", {}).n(\"SFNClient\", \"DescribeMapRunCommand\").f(void 0, void 0).ser(se_DescribeMapRunCommand).de(de_DescribeMapRunCommand).build() {\n static {\n __name(this, \"DescribeMapRunCommand\");\n }\n};\n\n// src/commands/DescribeStateMachineAliasCommand.ts\n\n\n\nvar DescribeStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeStateMachineAlias\", {}).n(\"SFNClient\", \"DescribeStateMachineAliasCommand\").f(void 0, DescribeStateMachineAliasOutputFilterSensitiveLog).ser(se_DescribeStateMachineAliasCommand).de(de_DescribeStateMachineAliasCommand).build() {\n static {\n __name(this, \"DescribeStateMachineAliasCommand\");\n }\n};\n\n// src/commands/DescribeStateMachineCommand.ts\n\n\n\nvar DescribeStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeStateMachine\", {}).n(\"SFNClient\", \"DescribeStateMachineCommand\").f(void 0, DescribeStateMachineOutputFilterSensitiveLog).ser(se_DescribeStateMachineCommand).de(de_DescribeStateMachineCommand).build() {\n static {\n __name(this, \"DescribeStateMachineCommand\");\n }\n};\n\n// src/commands/DescribeStateMachineForExecutionCommand.ts\n\n\n\nvar DescribeStateMachineForExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeStateMachineForExecution\", {}).n(\"SFNClient\", \"DescribeStateMachineForExecutionCommand\").f(void 0, DescribeStateMachineForExecutionOutputFilterSensitiveLog).ser(se_DescribeStateMachineForExecutionCommand).de(de_DescribeStateMachineForExecutionCommand).build() {\n static {\n __name(this, \"DescribeStateMachineForExecutionCommand\");\n }\n};\n\n// src/commands/GetActivityTaskCommand.ts\n\n\n\nvar GetActivityTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"GetActivityTask\", {}).n(\"SFNClient\", \"GetActivityTaskCommand\").f(void 0, GetActivityTaskOutputFilterSensitiveLog).ser(se_GetActivityTaskCommand).de(de_GetActivityTaskCommand).build() {\n static {\n __name(this, \"GetActivityTaskCommand\");\n }\n};\n\n// src/commands/GetExecutionHistoryCommand.ts\n\n\n\nvar GetExecutionHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"GetExecutionHistory\", {}).n(\"SFNClient\", \"GetExecutionHistoryCommand\").f(void 0, GetExecutionHistoryOutputFilterSensitiveLog).ser(se_GetExecutionHistoryCommand).de(de_GetExecutionHistoryCommand).build() {\n static {\n __name(this, \"GetExecutionHistoryCommand\");\n }\n};\n\n// src/commands/ListActivitiesCommand.ts\n\n\n\nvar ListActivitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListActivities\", {}).n(\"SFNClient\", \"ListActivitiesCommand\").f(void 0, void 0).ser(se_ListActivitiesCommand).de(de_ListActivitiesCommand).build() {\n static {\n __name(this, \"ListActivitiesCommand\");\n }\n};\n\n// src/commands/ListExecutionsCommand.ts\n\n\n\nvar ListExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListExecutions\", {}).n(\"SFNClient\", \"ListExecutionsCommand\").f(void 0, void 0).ser(se_ListExecutionsCommand).de(de_ListExecutionsCommand).build() {\n static {\n __name(this, \"ListExecutionsCommand\");\n }\n};\n\n// src/commands/ListMapRunsCommand.ts\n\n\n\nvar ListMapRunsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListMapRuns\", {}).n(\"SFNClient\", \"ListMapRunsCommand\").f(void 0, void 0).ser(se_ListMapRunsCommand).de(de_ListMapRunsCommand).build() {\n static {\n __name(this, \"ListMapRunsCommand\");\n }\n};\n\n// src/commands/ListStateMachineAliasesCommand.ts\n\n\n\nvar ListStateMachineAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListStateMachineAliases\", {}).n(\"SFNClient\", \"ListStateMachineAliasesCommand\").f(void 0, void 0).ser(se_ListStateMachineAliasesCommand).de(de_ListStateMachineAliasesCommand).build() {\n static {\n __name(this, \"ListStateMachineAliasesCommand\");\n }\n};\n\n// src/commands/ListStateMachinesCommand.ts\n\n\n\nvar ListStateMachinesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListStateMachines\", {}).n(\"SFNClient\", \"ListStateMachinesCommand\").f(void 0, void 0).ser(se_ListStateMachinesCommand).de(de_ListStateMachinesCommand).build() {\n static {\n __name(this, \"ListStateMachinesCommand\");\n }\n};\n\n// src/commands/ListStateMachineVersionsCommand.ts\n\n\n\nvar ListStateMachineVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListStateMachineVersions\", {}).n(\"SFNClient\", \"ListStateMachineVersionsCommand\").f(void 0, void 0).ser(se_ListStateMachineVersionsCommand).de(de_ListStateMachineVersionsCommand).build() {\n static {\n __name(this, \"ListStateMachineVersionsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListTagsForResource\", {}).n(\"SFNClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/PublishStateMachineVersionCommand.ts\n\n\n\nvar PublishStateMachineVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"PublishStateMachineVersion\", {}).n(\"SFNClient\", \"PublishStateMachineVersionCommand\").f(PublishStateMachineVersionInputFilterSensitiveLog, void 0).ser(se_PublishStateMachineVersionCommand).de(de_PublishStateMachineVersionCommand).build() {\n static {\n __name(this, \"PublishStateMachineVersionCommand\");\n }\n};\n\n// src/commands/RedriveExecutionCommand.ts\n\n\n\nvar RedriveExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"RedriveExecution\", {}).n(\"SFNClient\", \"RedriveExecutionCommand\").f(void 0, void 0).ser(se_RedriveExecutionCommand).de(de_RedriveExecutionCommand).build() {\n static {\n __name(this, \"RedriveExecutionCommand\");\n }\n};\n\n// src/commands/SendTaskFailureCommand.ts\n\n\n\nvar SendTaskFailureCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"SendTaskFailure\", {}).n(\"SFNClient\", \"SendTaskFailureCommand\").f(SendTaskFailureInputFilterSensitiveLog, void 0).ser(se_SendTaskFailureCommand).de(de_SendTaskFailureCommand).build() {\n static {\n __name(this, \"SendTaskFailureCommand\");\n }\n};\n\n// src/commands/SendTaskHeartbeatCommand.ts\n\n\n\nvar SendTaskHeartbeatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"SendTaskHeartbeat\", {}).n(\"SFNClient\", \"SendTaskHeartbeatCommand\").f(void 0, void 0).ser(se_SendTaskHeartbeatCommand).de(de_SendTaskHeartbeatCommand).build() {\n static {\n __name(this, \"SendTaskHeartbeatCommand\");\n }\n};\n\n// src/commands/SendTaskSuccessCommand.ts\n\n\n\nvar SendTaskSuccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"SendTaskSuccess\", {}).n(\"SFNClient\", \"SendTaskSuccessCommand\").f(SendTaskSuccessInputFilterSensitiveLog, void 0).ser(se_SendTaskSuccessCommand).de(de_SendTaskSuccessCommand).build() {\n static {\n __name(this, \"SendTaskSuccessCommand\");\n }\n};\n\n// src/commands/StartExecutionCommand.ts\n\n\n\nvar StartExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"StartExecution\", {}).n(\"SFNClient\", \"StartExecutionCommand\").f(StartExecutionInputFilterSensitiveLog, void 0).ser(se_StartExecutionCommand).de(de_StartExecutionCommand).build() {\n static {\n __name(this, \"StartExecutionCommand\");\n }\n};\n\n// src/commands/StartSyncExecutionCommand.ts\n\n\n\nvar StartSyncExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"StartSyncExecution\", {}).n(\"SFNClient\", \"StartSyncExecutionCommand\").f(StartSyncExecutionInputFilterSensitiveLog, StartSyncExecutionOutputFilterSensitiveLog).ser(se_StartSyncExecutionCommand).de(de_StartSyncExecutionCommand).build() {\n static {\n __name(this, \"StartSyncExecutionCommand\");\n }\n};\n\n// src/commands/StopExecutionCommand.ts\n\n\n\nvar StopExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"StopExecution\", {}).n(\"SFNClient\", \"StopExecutionCommand\").f(StopExecutionInputFilterSensitiveLog, void 0).ser(se_StopExecutionCommand).de(de_StopExecutionCommand).build() {\n static {\n __name(this, \"StopExecutionCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"TagResource\", {}).n(\"SFNClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/TestStateCommand.ts\n\n\n\nvar TestStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"TestState\", {}).n(\"SFNClient\", \"TestStateCommand\").f(TestStateInputFilterSensitiveLog, TestStateOutputFilterSensitiveLog).ser(se_TestStateCommand).de(de_TestStateCommand).build() {\n static {\n __name(this, \"TestStateCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UntagResource\", {}).n(\"SFNClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateMapRunCommand.ts\n\n\n\nvar UpdateMapRunCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UpdateMapRun\", {}).n(\"SFNClient\", \"UpdateMapRunCommand\").f(void 0, void 0).ser(se_UpdateMapRunCommand).de(de_UpdateMapRunCommand).build() {\n static {\n __name(this, \"UpdateMapRunCommand\");\n }\n};\n\n// src/commands/UpdateStateMachineAliasCommand.ts\n\n\n\nvar UpdateStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UpdateStateMachineAlias\", {}).n(\"SFNClient\", \"UpdateStateMachineAliasCommand\").f(UpdateStateMachineAliasInputFilterSensitiveLog, void 0).ser(se_UpdateStateMachineAliasCommand).de(de_UpdateStateMachineAliasCommand).build() {\n static {\n __name(this, \"UpdateStateMachineAliasCommand\");\n }\n};\n\n// src/commands/UpdateStateMachineCommand.ts\n\n\n\nvar UpdateStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UpdateStateMachine\", {}).n(\"SFNClient\", \"UpdateStateMachineCommand\").f(UpdateStateMachineInputFilterSensitiveLog, void 0).ser(se_UpdateStateMachineCommand).de(de_UpdateStateMachineCommand).build() {\n static {\n __name(this, \"UpdateStateMachineCommand\");\n }\n};\n\n// src/commands/ValidateStateMachineDefinitionCommand.ts\n\n\n\nvar ValidateStateMachineDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ValidateStateMachineDefinition\", {}).n(\"SFNClient\", \"ValidateStateMachineDefinitionCommand\").f(ValidateStateMachineDefinitionInputFilterSensitiveLog, ValidateStateMachineDefinitionOutputFilterSensitiveLog).ser(se_ValidateStateMachineDefinitionCommand).de(de_ValidateStateMachineDefinitionCommand).build() {\n static {\n __name(this, \"ValidateStateMachineDefinitionCommand\");\n }\n};\n\n// src/SFN.ts\nvar commands = {\n CreateActivityCommand,\n CreateStateMachineCommand,\n CreateStateMachineAliasCommand,\n DeleteActivityCommand,\n DeleteStateMachineCommand,\n DeleteStateMachineAliasCommand,\n DeleteStateMachineVersionCommand,\n DescribeActivityCommand,\n DescribeExecutionCommand,\n DescribeMapRunCommand,\n DescribeStateMachineCommand,\n DescribeStateMachineAliasCommand,\n DescribeStateMachineForExecutionCommand,\n GetActivityTaskCommand,\n GetExecutionHistoryCommand,\n ListActivitiesCommand,\n ListExecutionsCommand,\n ListMapRunsCommand,\n ListStateMachineAliasesCommand,\n ListStateMachinesCommand,\n ListStateMachineVersionsCommand,\n ListTagsForResourceCommand,\n PublishStateMachineVersionCommand,\n RedriveExecutionCommand,\n SendTaskFailureCommand,\n SendTaskHeartbeatCommand,\n SendTaskSuccessCommand,\n StartExecutionCommand,\n StartSyncExecutionCommand,\n StopExecutionCommand,\n TagResourceCommand,\n TestStateCommand,\n UntagResourceCommand,\n UpdateMapRunCommand,\n UpdateStateMachineCommand,\n UpdateStateMachineAliasCommand,\n ValidateStateMachineDefinitionCommand\n};\nvar SFN = class extends SFNClient {\n static {\n __name(this, \"SFN\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SFN);\n\n// src/pagination/GetExecutionHistoryPaginator.ts\n\nvar paginateGetExecutionHistory = (0, import_core.createPaginator)(SFNClient, GetExecutionHistoryCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListActivitiesPaginator.ts\n\nvar paginateListActivities = (0, import_core.createPaginator)(SFNClient, ListActivitiesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListExecutionsPaginator.ts\n\nvar paginateListExecutions = (0, import_core.createPaginator)(SFNClient, ListExecutionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListMapRunsPaginator.ts\n\nvar paginateListMapRuns = (0, import_core.createPaginator)(SFNClient, ListMapRunsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListStateMachinesPaginator.ts\n\nvar paginateListStateMachines = (0, import_core.createPaginator)(SFNClient, ListStateMachinesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SFNServiceException,\n __Client,\n SFNClient,\n SFN,\n $Command,\n CreateActivityCommand,\n CreateStateMachineAliasCommand,\n CreateStateMachineCommand,\n DeleteActivityCommand,\n DeleteStateMachineAliasCommand,\n DeleteStateMachineCommand,\n DeleteStateMachineVersionCommand,\n DescribeActivityCommand,\n DescribeExecutionCommand,\n DescribeMapRunCommand,\n DescribeStateMachineAliasCommand,\n DescribeStateMachineCommand,\n DescribeStateMachineForExecutionCommand,\n GetActivityTaskCommand,\n GetExecutionHistoryCommand,\n ListActivitiesCommand,\n ListExecutionsCommand,\n ListMapRunsCommand,\n ListStateMachineAliasesCommand,\n ListStateMachineVersionsCommand,\n ListStateMachinesCommand,\n ListTagsForResourceCommand,\n PublishStateMachineVersionCommand,\n RedriveExecutionCommand,\n SendTaskFailureCommand,\n SendTaskHeartbeatCommand,\n SendTaskSuccessCommand,\n StartExecutionCommand,\n StartSyncExecutionCommand,\n StopExecutionCommand,\n TagResourceCommand,\n TestStateCommand,\n UntagResourceCommand,\n UpdateMapRunCommand,\n UpdateStateMachineAliasCommand,\n UpdateStateMachineCommand,\n ValidateStateMachineDefinitionCommand,\n paginateGetExecutionHistory,\n paginateListActivities,\n paginateListExecutions,\n paginateListMapRuns,\n paginateListStateMachines,\n ActivityAlreadyExists,\n ActivityDoesNotExist,\n ActivityLimitExceeded,\n ActivityWorkerLimitExceeded,\n EncryptionType,\n InvalidEncryptionConfiguration,\n InvalidName,\n KmsAccessDeniedException,\n KmsThrottlingException,\n TooManyTags,\n ConflictException,\n LogLevel,\n StateMachineType,\n InvalidArn,\n InvalidDefinition,\n InvalidLoggingConfiguration,\n InvalidTracingConfiguration,\n StateMachineAlreadyExists,\n StateMachineDeleting,\n StateMachineLimitExceeded,\n StateMachineTypeNotSupported,\n ValidationExceptionReason,\n ValidationException,\n ResourceNotFound,\n ServiceQuotaExceededException,\n IncludedData,\n ExecutionRedriveStatus,\n ExecutionStatus,\n ExecutionDoesNotExist,\n KmsKeyState,\n KmsInvalidStateException,\n MapRunStatus,\n StateMachineStatus,\n StateMachineDoesNotExist,\n HistoryEventType,\n InvalidToken,\n ExecutionRedriveFilter,\n ExecutionLimitExceeded,\n ExecutionNotRedrivable,\n TaskDoesNotExist,\n TaskTimedOut,\n InvalidOutput,\n ExecutionAlreadyExists,\n InvalidExecutionInput,\n SyncExecutionStatus,\n InspectionLevel,\n TestExecutionStatus,\n MissingRequiredParameter,\n ValidateStateMachineDefinitionSeverity,\n ValidateStateMachineDefinitionResultCode,\n ActivityFailedEventDetailsFilterSensitiveLog,\n ActivityScheduledEventDetailsFilterSensitiveLog,\n ActivityScheduleFailedEventDetailsFilterSensitiveLog,\n ActivitySucceededEventDetailsFilterSensitiveLog,\n ActivityTimedOutEventDetailsFilterSensitiveLog,\n CreateStateMachineInputFilterSensitiveLog,\n CreateStateMachineAliasInputFilterSensitiveLog,\n DescribeExecutionOutputFilterSensitiveLog,\n DescribeStateMachineOutputFilterSensitiveLog,\n DescribeStateMachineAliasOutputFilterSensitiveLog,\n DescribeStateMachineForExecutionOutputFilterSensitiveLog,\n GetActivityTaskOutputFilterSensitiveLog,\n EvaluationFailedEventDetailsFilterSensitiveLog,\n ExecutionAbortedEventDetailsFilterSensitiveLog,\n ExecutionFailedEventDetailsFilterSensitiveLog,\n ExecutionStartedEventDetailsFilterSensitiveLog,\n ExecutionSucceededEventDetailsFilterSensitiveLog,\n ExecutionTimedOutEventDetailsFilterSensitiveLog,\n LambdaFunctionFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduledEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionStartFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionSucceededEventDetailsFilterSensitiveLog,\n LambdaFunctionTimedOutEventDetailsFilterSensitiveLog,\n MapRunFailedEventDetailsFilterSensitiveLog,\n StateEnteredEventDetailsFilterSensitiveLog,\n StateExitedEventDetailsFilterSensitiveLog,\n TaskFailedEventDetailsFilterSensitiveLog,\n TaskScheduledEventDetailsFilterSensitiveLog,\n TaskStartFailedEventDetailsFilterSensitiveLog,\n TaskSubmitFailedEventDetailsFilterSensitiveLog,\n TaskSubmittedEventDetailsFilterSensitiveLog,\n TaskSucceededEventDetailsFilterSensitiveLog,\n TaskTimedOutEventDetailsFilterSensitiveLog,\n HistoryEventFilterSensitiveLog,\n GetExecutionHistoryOutputFilterSensitiveLog,\n PublishStateMachineVersionInputFilterSensitiveLog,\n SendTaskFailureInputFilterSensitiveLog,\n SendTaskSuccessInputFilterSensitiveLog,\n StartExecutionInputFilterSensitiveLog,\n StartSyncExecutionInputFilterSensitiveLog,\n StartSyncExecutionOutputFilterSensitiveLog,\n StopExecutionInputFilterSensitiveLog,\n TestStateInputFilterSensitiveLog,\n InspectionDataFilterSensitiveLog,\n TestStateOutputFilterSensitiveLog,\n UpdateStateMachineInputFilterSensitiveLog,\n UpdateStateMachineAliasInputFilterSensitiveLog,\n ValidateStateMachineDefinitionInputFilterSensitiveLog,\n ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog,\n ValidateStateMachineDefinitionOutputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2016-11-23\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSFNHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SFN\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSMHttpAuthSchemeProvider = exports.defaultSSMHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSMHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSMHttpAuthSchemeParametersProvider = defaultSSMHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ssm\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultSSMHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSMHttpAuthSchemeProvider = defaultSSMHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://ssm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://ssm.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://ssm-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://ssm.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://ssm.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n AccessRequestStatus: () => AccessRequestStatus,\n AddTagsToResourceCommand: () => AddTagsToResourceCommand,\n AlreadyExistsException: () => AlreadyExistsException,\n AssociateOpsItemRelatedItemCommand: () => AssociateOpsItemRelatedItemCommand,\n AssociatedInstances: () => AssociatedInstances,\n AssociationAlreadyExists: () => AssociationAlreadyExists,\n AssociationComplianceSeverity: () => AssociationComplianceSeverity,\n AssociationDescriptionFilterSensitiveLog: () => AssociationDescriptionFilterSensitiveLog,\n AssociationDoesNotExist: () => AssociationDoesNotExist,\n AssociationExecutionDoesNotExist: () => AssociationExecutionDoesNotExist,\n AssociationExecutionFilterKey: () => AssociationExecutionFilterKey,\n AssociationExecutionTargetsFilterKey: () => AssociationExecutionTargetsFilterKey,\n AssociationFilterKey: () => AssociationFilterKey,\n AssociationFilterOperatorType: () => AssociationFilterOperatorType,\n AssociationLimitExceeded: () => AssociationLimitExceeded,\n AssociationStatusName: () => AssociationStatusName,\n AssociationSyncCompliance: () => AssociationSyncCompliance,\n AssociationVersionInfoFilterSensitiveLog: () => AssociationVersionInfoFilterSensitiveLog,\n AssociationVersionLimitExceeded: () => AssociationVersionLimitExceeded,\n AttachmentHashType: () => AttachmentHashType,\n AttachmentsSourceKey: () => AttachmentsSourceKey,\n AutomationDefinitionNotApprovedException: () => AutomationDefinitionNotApprovedException,\n AutomationDefinitionNotFoundException: () => AutomationDefinitionNotFoundException,\n AutomationDefinitionVersionNotFoundException: () => AutomationDefinitionVersionNotFoundException,\n AutomationExecutionFilterKey: () => AutomationExecutionFilterKey,\n AutomationExecutionLimitExceededException: () => AutomationExecutionLimitExceededException,\n AutomationExecutionNotFoundException: () => AutomationExecutionNotFoundException,\n AutomationExecutionStatus: () => AutomationExecutionStatus,\n AutomationStepNotFoundException: () => AutomationStepNotFoundException,\n AutomationSubtype: () => AutomationSubtype,\n AutomationType: () => AutomationType,\n BaselineOverrideFilterSensitiveLog: () => BaselineOverrideFilterSensitiveLog,\n CalendarState: () => CalendarState,\n CancelCommandCommand: () => CancelCommandCommand,\n CancelMaintenanceWindowExecutionCommand: () => CancelMaintenanceWindowExecutionCommand,\n CommandFilterKey: () => CommandFilterKey,\n CommandFilterSensitiveLog: () => CommandFilterSensitiveLog,\n CommandInvocationStatus: () => CommandInvocationStatus,\n CommandPluginStatus: () => CommandPluginStatus,\n CommandStatus: () => CommandStatus,\n ComplianceQueryOperatorType: () => ComplianceQueryOperatorType,\n ComplianceSeverity: () => ComplianceSeverity,\n ComplianceStatus: () => ComplianceStatus,\n ComplianceTypeCountLimitExceededException: () => ComplianceTypeCountLimitExceededException,\n ComplianceUploadType: () => ComplianceUploadType,\n ConnectionStatus: () => ConnectionStatus,\n CreateActivationCommand: () => CreateActivationCommand,\n CreateAssociationBatchCommand: () => CreateAssociationBatchCommand,\n CreateAssociationBatchRequestEntryFilterSensitiveLog: () => CreateAssociationBatchRequestEntryFilterSensitiveLog,\n CreateAssociationBatchRequestFilterSensitiveLog: () => CreateAssociationBatchRequestFilterSensitiveLog,\n CreateAssociationBatchResultFilterSensitiveLog: () => CreateAssociationBatchResultFilterSensitiveLog,\n CreateAssociationCommand: () => CreateAssociationCommand,\n CreateAssociationRequestFilterSensitiveLog: () => CreateAssociationRequestFilterSensitiveLog,\n CreateAssociationResultFilterSensitiveLog: () => CreateAssociationResultFilterSensitiveLog,\n CreateDocumentCommand: () => CreateDocumentCommand,\n CreateMaintenanceWindowCommand: () => CreateMaintenanceWindowCommand,\n CreateMaintenanceWindowRequestFilterSensitiveLog: () => CreateMaintenanceWindowRequestFilterSensitiveLog,\n CreateOpsItemCommand: () => CreateOpsItemCommand,\n CreateOpsMetadataCommand: () => CreateOpsMetadataCommand,\n CreatePatchBaselineCommand: () => CreatePatchBaselineCommand,\n CreatePatchBaselineRequestFilterSensitiveLog: () => CreatePatchBaselineRequestFilterSensitiveLog,\n CreateResourceDataSyncCommand: () => CreateResourceDataSyncCommand,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n CustomSchemaCountLimitExceededException: () => CustomSchemaCountLimitExceededException,\n DeleteActivationCommand: () => DeleteActivationCommand,\n DeleteAssociationCommand: () => DeleteAssociationCommand,\n DeleteDocumentCommand: () => DeleteDocumentCommand,\n DeleteInventoryCommand: () => DeleteInventoryCommand,\n DeleteMaintenanceWindowCommand: () => DeleteMaintenanceWindowCommand,\n DeleteOpsItemCommand: () => DeleteOpsItemCommand,\n DeleteOpsMetadataCommand: () => DeleteOpsMetadataCommand,\n DeleteParameterCommand: () => DeleteParameterCommand,\n DeleteParametersCommand: () => DeleteParametersCommand,\n DeletePatchBaselineCommand: () => DeletePatchBaselineCommand,\n DeleteResourceDataSyncCommand: () => DeleteResourceDataSyncCommand,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeregisterManagedInstanceCommand: () => DeregisterManagedInstanceCommand,\n DeregisterPatchBaselineForPatchGroupCommand: () => DeregisterPatchBaselineForPatchGroupCommand,\n DeregisterTargetFromMaintenanceWindowCommand: () => DeregisterTargetFromMaintenanceWindowCommand,\n DeregisterTaskFromMaintenanceWindowCommand: () => DeregisterTaskFromMaintenanceWindowCommand,\n DescribeActivationsCommand: () => DescribeActivationsCommand,\n DescribeActivationsFilterKeys: () => DescribeActivationsFilterKeys,\n DescribeAssociationCommand: () => DescribeAssociationCommand,\n DescribeAssociationExecutionTargetsCommand: () => DescribeAssociationExecutionTargetsCommand,\n DescribeAssociationExecutionsCommand: () => DescribeAssociationExecutionsCommand,\n DescribeAssociationResultFilterSensitiveLog: () => DescribeAssociationResultFilterSensitiveLog,\n DescribeAutomationExecutionsCommand: () => DescribeAutomationExecutionsCommand,\n DescribeAutomationStepExecutionsCommand: () => DescribeAutomationStepExecutionsCommand,\n DescribeAvailablePatchesCommand: () => DescribeAvailablePatchesCommand,\n DescribeDocumentCommand: () => DescribeDocumentCommand,\n DescribeDocumentPermissionCommand: () => DescribeDocumentPermissionCommand,\n DescribeEffectiveInstanceAssociationsCommand: () => DescribeEffectiveInstanceAssociationsCommand,\n DescribeEffectivePatchesForPatchBaselineCommand: () => DescribeEffectivePatchesForPatchBaselineCommand,\n DescribeInstanceAssociationsStatusCommand: () => DescribeInstanceAssociationsStatusCommand,\n DescribeInstanceInformationCommand: () => DescribeInstanceInformationCommand,\n DescribeInstanceInformationResultFilterSensitiveLog: () => DescribeInstanceInformationResultFilterSensitiveLog,\n DescribeInstancePatchStatesCommand: () => DescribeInstancePatchStatesCommand,\n DescribeInstancePatchStatesForPatchGroupCommand: () => DescribeInstancePatchStatesForPatchGroupCommand,\n DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog: () => DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog,\n DescribeInstancePatchStatesResultFilterSensitiveLog: () => DescribeInstancePatchStatesResultFilterSensitiveLog,\n DescribeInstancePatchesCommand: () => DescribeInstancePatchesCommand,\n DescribeInstancePropertiesCommand: () => DescribeInstancePropertiesCommand,\n DescribeInstancePropertiesResultFilterSensitiveLog: () => DescribeInstancePropertiesResultFilterSensitiveLog,\n DescribeInventoryDeletionsCommand: () => DescribeInventoryDeletionsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsCommand: () => DescribeMaintenanceWindowExecutionTaskInvocationsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog: () => DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog,\n DescribeMaintenanceWindowExecutionTasksCommand: () => DescribeMaintenanceWindowExecutionTasksCommand,\n DescribeMaintenanceWindowExecutionsCommand: () => DescribeMaintenanceWindowExecutionsCommand,\n DescribeMaintenanceWindowScheduleCommand: () => DescribeMaintenanceWindowScheduleCommand,\n DescribeMaintenanceWindowTargetsCommand: () => DescribeMaintenanceWindowTargetsCommand,\n DescribeMaintenanceWindowTargetsResultFilterSensitiveLog: () => DescribeMaintenanceWindowTargetsResultFilterSensitiveLog,\n DescribeMaintenanceWindowTasksCommand: () => DescribeMaintenanceWindowTasksCommand,\n DescribeMaintenanceWindowTasksResultFilterSensitiveLog: () => DescribeMaintenanceWindowTasksResultFilterSensitiveLog,\n DescribeMaintenanceWindowsCommand: () => DescribeMaintenanceWindowsCommand,\n DescribeMaintenanceWindowsForTargetCommand: () => DescribeMaintenanceWindowsForTargetCommand,\n DescribeMaintenanceWindowsResultFilterSensitiveLog: () => DescribeMaintenanceWindowsResultFilterSensitiveLog,\n DescribeOpsItemsCommand: () => DescribeOpsItemsCommand,\n DescribeParametersCommand: () => DescribeParametersCommand,\n DescribePatchBaselinesCommand: () => DescribePatchBaselinesCommand,\n DescribePatchGroupStateCommand: () => DescribePatchGroupStateCommand,\n DescribePatchGroupsCommand: () => DescribePatchGroupsCommand,\n DescribePatchPropertiesCommand: () => DescribePatchPropertiesCommand,\n DescribeSessionsCommand: () => DescribeSessionsCommand,\n DisassociateOpsItemRelatedItemCommand: () => DisassociateOpsItemRelatedItemCommand,\n DocumentAlreadyExists: () => DocumentAlreadyExists,\n DocumentFilterKey: () => DocumentFilterKey,\n DocumentFormat: () => DocumentFormat,\n DocumentHashType: () => DocumentHashType,\n DocumentLimitExceeded: () => DocumentLimitExceeded,\n DocumentMetadataEnum: () => DocumentMetadataEnum,\n DocumentParameterType: () => DocumentParameterType,\n DocumentPermissionLimit: () => DocumentPermissionLimit,\n DocumentPermissionType: () => DocumentPermissionType,\n DocumentReviewAction: () => DocumentReviewAction,\n DocumentReviewCommentType: () => DocumentReviewCommentType,\n DocumentStatus: () => DocumentStatus,\n DocumentType: () => DocumentType,\n DocumentVersionLimitExceeded: () => DocumentVersionLimitExceeded,\n DoesNotExistException: () => DoesNotExistException,\n DuplicateDocumentContent: () => DuplicateDocumentContent,\n DuplicateDocumentVersionName: () => DuplicateDocumentVersionName,\n DuplicateInstanceId: () => DuplicateInstanceId,\n ExecutionInputs: () => ExecutionInputs,\n ExecutionMode: () => ExecutionMode,\n ExecutionPreview: () => ExecutionPreview,\n ExecutionPreviewStatus: () => ExecutionPreviewStatus,\n ExternalAlarmState: () => ExternalAlarmState,\n FailedCreateAssociationFilterSensitiveLog: () => FailedCreateAssociationFilterSensitiveLog,\n Fault: () => Fault,\n FeatureNotAvailableException: () => FeatureNotAvailableException,\n GetAccessTokenCommand: () => GetAccessTokenCommand,\n GetAccessTokenResponseFilterSensitiveLog: () => GetAccessTokenResponseFilterSensitiveLog,\n GetAutomationExecutionCommand: () => GetAutomationExecutionCommand,\n GetCalendarStateCommand: () => GetCalendarStateCommand,\n GetCommandInvocationCommand: () => GetCommandInvocationCommand,\n GetConnectionStatusCommand: () => GetConnectionStatusCommand,\n GetDefaultPatchBaselineCommand: () => GetDefaultPatchBaselineCommand,\n GetDeployablePatchSnapshotForInstanceCommand: () => GetDeployablePatchSnapshotForInstanceCommand,\n GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog: () => GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog,\n GetDocumentCommand: () => GetDocumentCommand,\n GetExecutionPreviewCommand: () => GetExecutionPreviewCommand,\n GetInventoryCommand: () => GetInventoryCommand,\n GetInventorySchemaCommand: () => GetInventorySchemaCommand,\n GetMaintenanceWindowCommand: () => GetMaintenanceWindowCommand,\n GetMaintenanceWindowExecutionCommand: () => GetMaintenanceWindowExecutionCommand,\n GetMaintenanceWindowExecutionTaskCommand: () => GetMaintenanceWindowExecutionTaskCommand,\n GetMaintenanceWindowExecutionTaskInvocationCommand: () => GetMaintenanceWindowExecutionTaskInvocationCommand,\n GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog: () => GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog,\n GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog: () => GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog,\n GetMaintenanceWindowResultFilterSensitiveLog: () => GetMaintenanceWindowResultFilterSensitiveLog,\n GetMaintenanceWindowTaskCommand: () => GetMaintenanceWindowTaskCommand,\n GetMaintenanceWindowTaskResultFilterSensitiveLog: () => GetMaintenanceWindowTaskResultFilterSensitiveLog,\n GetOpsItemCommand: () => GetOpsItemCommand,\n GetOpsMetadataCommand: () => GetOpsMetadataCommand,\n GetOpsSummaryCommand: () => GetOpsSummaryCommand,\n GetParameterCommand: () => GetParameterCommand,\n GetParameterHistoryCommand: () => GetParameterHistoryCommand,\n GetParameterHistoryResultFilterSensitiveLog: () => GetParameterHistoryResultFilterSensitiveLog,\n GetParameterResultFilterSensitiveLog: () => GetParameterResultFilterSensitiveLog,\n GetParametersByPathCommand: () => GetParametersByPathCommand,\n GetParametersByPathResultFilterSensitiveLog: () => GetParametersByPathResultFilterSensitiveLog,\n GetParametersCommand: () => GetParametersCommand,\n GetParametersResultFilterSensitiveLog: () => GetParametersResultFilterSensitiveLog,\n GetPatchBaselineCommand: () => GetPatchBaselineCommand,\n GetPatchBaselineForPatchGroupCommand: () => GetPatchBaselineForPatchGroupCommand,\n GetPatchBaselineResultFilterSensitiveLog: () => GetPatchBaselineResultFilterSensitiveLog,\n GetResourcePoliciesCommand: () => GetResourcePoliciesCommand,\n GetServiceSettingCommand: () => GetServiceSettingCommand,\n HierarchyLevelLimitExceededException: () => HierarchyLevelLimitExceededException,\n HierarchyTypeMismatchException: () => HierarchyTypeMismatchException,\n IdempotentParameterMismatch: () => IdempotentParameterMismatch,\n ImpactType: () => ImpactType,\n IncompatiblePolicyException: () => IncompatiblePolicyException,\n InstanceInfoFilterSensitiveLog: () => InstanceInfoFilterSensitiveLog,\n InstanceInformationFilterKey: () => InstanceInformationFilterKey,\n InstanceInformationFilterSensitiveLog: () => InstanceInformationFilterSensitiveLog,\n InstancePatchStateFilterSensitiveLog: () => InstancePatchStateFilterSensitiveLog,\n InstancePatchStateOperatorType: () => InstancePatchStateOperatorType,\n InstancePropertyFilterKey: () => InstancePropertyFilterKey,\n InstancePropertyFilterOperator: () => InstancePropertyFilterOperator,\n InstancePropertyFilterSensitiveLog: () => InstancePropertyFilterSensitiveLog,\n InternalServerError: () => InternalServerError,\n InvalidActivation: () => InvalidActivation,\n InvalidActivationId: () => InvalidActivationId,\n InvalidAggregatorException: () => InvalidAggregatorException,\n InvalidAllowedPatternException: () => InvalidAllowedPatternException,\n InvalidAssociation: () => InvalidAssociation,\n InvalidAssociationVersion: () => InvalidAssociationVersion,\n InvalidAutomationExecutionParametersException: () => InvalidAutomationExecutionParametersException,\n InvalidAutomationSignalException: () => InvalidAutomationSignalException,\n InvalidAutomationStatusUpdateException: () => InvalidAutomationStatusUpdateException,\n InvalidCommandId: () => InvalidCommandId,\n InvalidDeleteInventoryParametersException: () => InvalidDeleteInventoryParametersException,\n InvalidDeletionIdException: () => InvalidDeletionIdException,\n InvalidDocument: () => InvalidDocument,\n InvalidDocumentContent: () => InvalidDocumentContent,\n InvalidDocumentOperation: () => InvalidDocumentOperation,\n InvalidDocumentSchemaVersion: () => InvalidDocumentSchemaVersion,\n InvalidDocumentType: () => InvalidDocumentType,\n InvalidDocumentVersion: () => InvalidDocumentVersion,\n InvalidFilter: () => InvalidFilter,\n InvalidFilterKey: () => InvalidFilterKey,\n InvalidFilterOption: () => InvalidFilterOption,\n InvalidFilterValue: () => InvalidFilterValue,\n InvalidInstanceId: () => InvalidInstanceId,\n InvalidInstanceInformationFilterValue: () => InvalidInstanceInformationFilterValue,\n InvalidInstancePropertyFilterValue: () => InvalidInstancePropertyFilterValue,\n InvalidInventoryGroupException: () => InvalidInventoryGroupException,\n InvalidInventoryItemContextException: () => InvalidInventoryItemContextException,\n InvalidInventoryRequestException: () => InvalidInventoryRequestException,\n InvalidItemContentException: () => InvalidItemContentException,\n InvalidKeyId: () => InvalidKeyId,\n InvalidNextToken: () => InvalidNextToken,\n InvalidNotificationConfig: () => InvalidNotificationConfig,\n InvalidOptionException: () => InvalidOptionException,\n InvalidOutputFolder: () => InvalidOutputFolder,\n InvalidOutputLocation: () => InvalidOutputLocation,\n InvalidParameters: () => InvalidParameters,\n InvalidPermissionType: () => InvalidPermissionType,\n InvalidPluginName: () => InvalidPluginName,\n InvalidPolicyAttributeException: () => InvalidPolicyAttributeException,\n InvalidPolicyTypeException: () => InvalidPolicyTypeException,\n InvalidResourceId: () => InvalidResourceId,\n InvalidResourceType: () => InvalidResourceType,\n InvalidResultAttributeException: () => InvalidResultAttributeException,\n InvalidRole: () => InvalidRole,\n InvalidSchedule: () => InvalidSchedule,\n InvalidTag: () => InvalidTag,\n InvalidTarget: () => InvalidTarget,\n InvalidTargetMaps: () => InvalidTargetMaps,\n InvalidTypeNameException: () => InvalidTypeNameException,\n InvalidUpdate: () => InvalidUpdate,\n InventoryAttributeDataType: () => InventoryAttributeDataType,\n InventoryDeletionStatus: () => InventoryDeletionStatus,\n InventoryQueryOperatorType: () => InventoryQueryOperatorType,\n InventorySchemaDeleteOption: () => InventorySchemaDeleteOption,\n InvocationDoesNotExist: () => InvocationDoesNotExist,\n ItemContentMismatchException: () => ItemContentMismatchException,\n ItemSizeLimitExceededException: () => ItemSizeLimitExceededException,\n LabelParameterVersionCommand: () => LabelParameterVersionCommand,\n LastResourceDataSyncStatus: () => LastResourceDataSyncStatus,\n ListAssociationVersionsCommand: () => ListAssociationVersionsCommand,\n ListAssociationVersionsResultFilterSensitiveLog: () => ListAssociationVersionsResultFilterSensitiveLog,\n ListAssociationsCommand: () => ListAssociationsCommand,\n ListCommandInvocationsCommand: () => ListCommandInvocationsCommand,\n ListCommandsCommand: () => ListCommandsCommand,\n ListCommandsResultFilterSensitiveLog: () => ListCommandsResultFilterSensitiveLog,\n ListComplianceItemsCommand: () => ListComplianceItemsCommand,\n ListComplianceSummariesCommand: () => ListComplianceSummariesCommand,\n ListDocumentMetadataHistoryCommand: () => ListDocumentMetadataHistoryCommand,\n ListDocumentVersionsCommand: () => ListDocumentVersionsCommand,\n ListDocumentsCommand: () => ListDocumentsCommand,\n ListInventoryEntriesCommand: () => ListInventoryEntriesCommand,\n ListNodesCommand: () => ListNodesCommand,\n ListNodesResultFilterSensitiveLog: () => ListNodesResultFilterSensitiveLog,\n ListNodesSummaryCommand: () => ListNodesSummaryCommand,\n ListOpsItemEventsCommand: () => ListOpsItemEventsCommand,\n ListOpsItemRelatedItemsCommand: () => ListOpsItemRelatedItemsCommand,\n ListOpsMetadataCommand: () => ListOpsMetadataCommand,\n ListResourceComplianceSummariesCommand: () => ListResourceComplianceSummariesCommand,\n ListResourceDataSyncCommand: () => ListResourceDataSyncCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n MaintenanceWindowExecutionStatus: () => MaintenanceWindowExecutionStatus,\n MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog: () => MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog,\n MaintenanceWindowIdentityFilterSensitiveLog: () => MaintenanceWindowIdentityFilterSensitiveLog,\n MaintenanceWindowLambdaParametersFilterSensitiveLog: () => MaintenanceWindowLambdaParametersFilterSensitiveLog,\n MaintenanceWindowResourceType: () => MaintenanceWindowResourceType,\n MaintenanceWindowRunCommandParametersFilterSensitiveLog: () => MaintenanceWindowRunCommandParametersFilterSensitiveLog,\n MaintenanceWindowStepFunctionsParametersFilterSensitiveLog: () => MaintenanceWindowStepFunctionsParametersFilterSensitiveLog,\n MaintenanceWindowTargetFilterSensitiveLog: () => MaintenanceWindowTargetFilterSensitiveLog,\n MaintenanceWindowTaskCutoffBehavior: () => MaintenanceWindowTaskCutoffBehavior,\n MaintenanceWindowTaskFilterSensitiveLog: () => MaintenanceWindowTaskFilterSensitiveLog,\n MaintenanceWindowTaskInvocationParametersFilterSensitiveLog: () => MaintenanceWindowTaskInvocationParametersFilterSensitiveLog,\n MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog: () => MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog,\n MaintenanceWindowTaskType: () => MaintenanceWindowTaskType,\n MalformedResourcePolicyDocumentException: () => MalformedResourcePolicyDocumentException,\n ManagedStatus: () => ManagedStatus,\n MaxDocumentSizeExceeded: () => MaxDocumentSizeExceeded,\n ModifyDocumentPermissionCommand: () => ModifyDocumentPermissionCommand,\n NodeAggregatorType: () => NodeAggregatorType,\n NodeAttributeName: () => NodeAttributeName,\n NodeFilterKey: () => NodeFilterKey,\n NodeFilterOperatorType: () => NodeFilterOperatorType,\n NodeFilterSensitiveLog: () => NodeFilterSensitiveLog,\n NodeType: () => NodeType,\n NodeTypeFilterSensitiveLog: () => NodeTypeFilterSensitiveLog,\n NodeTypeName: () => NodeTypeName,\n NotificationEvent: () => NotificationEvent,\n NotificationType: () => NotificationType,\n OperatingSystem: () => OperatingSystem,\n OpsFilterOperatorType: () => OpsFilterOperatorType,\n OpsItemAccessDeniedException: () => OpsItemAccessDeniedException,\n OpsItemAlreadyExistsException: () => OpsItemAlreadyExistsException,\n OpsItemConflictException: () => OpsItemConflictException,\n OpsItemDataType: () => OpsItemDataType,\n OpsItemEventFilterKey: () => OpsItemEventFilterKey,\n OpsItemEventFilterOperator: () => OpsItemEventFilterOperator,\n OpsItemFilterKey: () => OpsItemFilterKey,\n OpsItemFilterOperator: () => OpsItemFilterOperator,\n OpsItemInvalidParameterException: () => OpsItemInvalidParameterException,\n OpsItemLimitExceededException: () => OpsItemLimitExceededException,\n OpsItemNotFoundException: () => OpsItemNotFoundException,\n OpsItemRelatedItemAlreadyExistsException: () => OpsItemRelatedItemAlreadyExistsException,\n OpsItemRelatedItemAssociationNotFoundException: () => OpsItemRelatedItemAssociationNotFoundException,\n OpsItemRelatedItemsFilterKey: () => OpsItemRelatedItemsFilterKey,\n OpsItemRelatedItemsFilterOperator: () => OpsItemRelatedItemsFilterOperator,\n OpsItemStatus: () => OpsItemStatus,\n OpsMetadataAlreadyExistsException: () => OpsMetadataAlreadyExistsException,\n OpsMetadataInvalidArgumentException: () => OpsMetadataInvalidArgumentException,\n OpsMetadataKeyLimitExceededException: () => OpsMetadataKeyLimitExceededException,\n OpsMetadataLimitExceededException: () => OpsMetadataLimitExceededException,\n OpsMetadataNotFoundException: () => OpsMetadataNotFoundException,\n OpsMetadataTooManyUpdatesException: () => OpsMetadataTooManyUpdatesException,\n ParameterAlreadyExists: () => ParameterAlreadyExists,\n ParameterFilterSensitiveLog: () => ParameterFilterSensitiveLog,\n ParameterHistoryFilterSensitiveLog: () => ParameterHistoryFilterSensitiveLog,\n ParameterLimitExceeded: () => ParameterLimitExceeded,\n ParameterMaxVersionLimitExceeded: () => ParameterMaxVersionLimitExceeded,\n ParameterNotFound: () => ParameterNotFound,\n ParameterPatternMismatchException: () => ParameterPatternMismatchException,\n ParameterTier: () => ParameterTier,\n ParameterType: () => ParameterType,\n ParameterVersionLabelLimitExceeded: () => ParameterVersionLabelLimitExceeded,\n ParameterVersionNotFound: () => ParameterVersionNotFound,\n ParametersFilterKey: () => ParametersFilterKey,\n PatchAction: () => PatchAction,\n PatchComplianceDataState: () => PatchComplianceDataState,\n PatchComplianceLevel: () => PatchComplianceLevel,\n PatchComplianceStatus: () => PatchComplianceStatus,\n PatchDeploymentStatus: () => PatchDeploymentStatus,\n PatchFilterKey: () => PatchFilterKey,\n PatchOperationType: () => PatchOperationType,\n PatchProperty: () => PatchProperty,\n PatchSet: () => PatchSet,\n PatchSourceFilterSensitiveLog: () => PatchSourceFilterSensitiveLog,\n PingStatus: () => PingStatus,\n PlatformType: () => PlatformType,\n PoliciesLimitExceededException: () => PoliciesLimitExceededException,\n PutComplianceItemsCommand: () => PutComplianceItemsCommand,\n PutInventoryCommand: () => PutInventoryCommand,\n PutParameterCommand: () => PutParameterCommand,\n PutParameterRequestFilterSensitiveLog: () => PutParameterRequestFilterSensitiveLog,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n RebootOption: () => RebootOption,\n RegisterDefaultPatchBaselineCommand: () => RegisterDefaultPatchBaselineCommand,\n RegisterPatchBaselineForPatchGroupCommand: () => RegisterPatchBaselineForPatchGroupCommand,\n RegisterTargetWithMaintenanceWindowCommand: () => RegisterTargetWithMaintenanceWindowCommand,\n RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog: () => RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog,\n RegisterTaskWithMaintenanceWindowCommand: () => RegisterTaskWithMaintenanceWindowCommand,\n RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog: () => RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog,\n RemoveTagsFromResourceCommand: () => RemoveTagsFromResourceCommand,\n ResetServiceSettingCommand: () => ResetServiceSettingCommand,\n ResourceDataSyncAlreadyExistsException: () => ResourceDataSyncAlreadyExistsException,\n ResourceDataSyncConflictException: () => ResourceDataSyncConflictException,\n ResourceDataSyncCountExceededException: () => ResourceDataSyncCountExceededException,\n ResourceDataSyncInvalidConfigurationException: () => ResourceDataSyncInvalidConfigurationException,\n ResourceDataSyncNotFoundException: () => ResourceDataSyncNotFoundException,\n ResourceDataSyncS3Format: () => ResourceDataSyncS3Format,\n ResourceInUseException: () => ResourceInUseException,\n ResourceLimitExceededException: () => ResourceLimitExceededException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ResourcePolicyConflictException: () => ResourcePolicyConflictException,\n ResourcePolicyInvalidParameterException: () => ResourcePolicyInvalidParameterException,\n ResourcePolicyLimitExceededException: () => ResourcePolicyLimitExceededException,\n ResourcePolicyNotFoundException: () => ResourcePolicyNotFoundException,\n ResourceType: () => ResourceType,\n ResourceTypeForTagging: () => ResourceTypeForTagging,\n ResumeSessionCommand: () => ResumeSessionCommand,\n ReviewStatus: () => ReviewStatus,\n SSM: () => SSM,\n SSMClient: () => SSMClient,\n SSMServiceException: () => SSMServiceException,\n SendAutomationSignalCommand: () => SendAutomationSignalCommand,\n SendCommandCommand: () => SendCommandCommand,\n SendCommandRequestFilterSensitiveLog: () => SendCommandRequestFilterSensitiveLog,\n SendCommandResultFilterSensitiveLog: () => SendCommandResultFilterSensitiveLog,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n ServiceSettingNotFound: () => ServiceSettingNotFound,\n SessionFilterKey: () => SessionFilterKey,\n SessionState: () => SessionState,\n SessionStatus: () => SessionStatus,\n SignalType: () => SignalType,\n SourceType: () => SourceType,\n StartAccessRequestCommand: () => StartAccessRequestCommand,\n StartAssociationsOnceCommand: () => StartAssociationsOnceCommand,\n StartAutomationExecutionCommand: () => StartAutomationExecutionCommand,\n StartChangeRequestExecutionCommand: () => StartChangeRequestExecutionCommand,\n StartExecutionPreviewCommand: () => StartExecutionPreviewCommand,\n StartSessionCommand: () => StartSessionCommand,\n StatusUnchanged: () => StatusUnchanged,\n StepExecutionFilterKey: () => StepExecutionFilterKey,\n StopAutomationExecutionCommand: () => StopAutomationExecutionCommand,\n StopType: () => StopType,\n SubTypeCountLimitExceededException: () => SubTypeCountLimitExceededException,\n TargetInUseException: () => TargetInUseException,\n TargetNotConnected: () => TargetNotConnected,\n TerminateSessionCommand: () => TerminateSessionCommand,\n ThrottlingException: () => ThrottlingException,\n TooManyTagsError: () => TooManyTagsError,\n TooManyUpdates: () => TooManyUpdates,\n TotalSizeLimitExceededException: () => TotalSizeLimitExceededException,\n UnlabelParameterVersionCommand: () => UnlabelParameterVersionCommand,\n UnsupportedCalendarException: () => UnsupportedCalendarException,\n UnsupportedFeatureRequiredException: () => UnsupportedFeatureRequiredException,\n UnsupportedInventoryItemContextException: () => UnsupportedInventoryItemContextException,\n UnsupportedInventorySchemaVersionException: () => UnsupportedInventorySchemaVersionException,\n UnsupportedOperatingSystem: () => UnsupportedOperatingSystem,\n UnsupportedOperationException: () => UnsupportedOperationException,\n UnsupportedParameterType: () => UnsupportedParameterType,\n UnsupportedPlatformType: () => UnsupportedPlatformType,\n UpdateAssociationCommand: () => UpdateAssociationCommand,\n UpdateAssociationRequestFilterSensitiveLog: () => UpdateAssociationRequestFilterSensitiveLog,\n UpdateAssociationResultFilterSensitiveLog: () => UpdateAssociationResultFilterSensitiveLog,\n UpdateAssociationStatusCommand: () => UpdateAssociationStatusCommand,\n UpdateAssociationStatusResultFilterSensitiveLog: () => UpdateAssociationStatusResultFilterSensitiveLog,\n UpdateDocumentCommand: () => UpdateDocumentCommand,\n UpdateDocumentDefaultVersionCommand: () => UpdateDocumentDefaultVersionCommand,\n UpdateDocumentMetadataCommand: () => UpdateDocumentMetadataCommand,\n UpdateMaintenanceWindowCommand: () => UpdateMaintenanceWindowCommand,\n UpdateMaintenanceWindowRequestFilterSensitiveLog: () => UpdateMaintenanceWindowRequestFilterSensitiveLog,\n UpdateMaintenanceWindowResultFilterSensitiveLog: () => UpdateMaintenanceWindowResultFilterSensitiveLog,\n UpdateMaintenanceWindowTargetCommand: () => UpdateMaintenanceWindowTargetCommand,\n UpdateMaintenanceWindowTargetRequestFilterSensitiveLog: () => UpdateMaintenanceWindowTargetRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTargetResultFilterSensitiveLog: () => UpdateMaintenanceWindowTargetResultFilterSensitiveLog,\n UpdateMaintenanceWindowTaskCommand: () => UpdateMaintenanceWindowTaskCommand,\n UpdateMaintenanceWindowTaskRequestFilterSensitiveLog: () => UpdateMaintenanceWindowTaskRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTaskResultFilterSensitiveLog: () => UpdateMaintenanceWindowTaskResultFilterSensitiveLog,\n UpdateManagedInstanceRoleCommand: () => UpdateManagedInstanceRoleCommand,\n UpdateOpsItemCommand: () => UpdateOpsItemCommand,\n UpdateOpsMetadataCommand: () => UpdateOpsMetadataCommand,\n UpdatePatchBaselineCommand: () => UpdatePatchBaselineCommand,\n UpdatePatchBaselineRequestFilterSensitiveLog: () => UpdatePatchBaselineRequestFilterSensitiveLog,\n UpdatePatchBaselineResultFilterSensitiveLog: () => UpdatePatchBaselineResultFilterSensitiveLog,\n UpdateResourceDataSyncCommand: () => UpdateResourceDataSyncCommand,\n UpdateServiceSettingCommand: () => UpdateServiceSettingCommand,\n ValidationException: () => ValidationException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeActivations: () => paginateDescribeActivations,\n paginateDescribeAssociationExecutionTargets: () => paginateDescribeAssociationExecutionTargets,\n paginateDescribeAssociationExecutions: () => paginateDescribeAssociationExecutions,\n paginateDescribeAutomationExecutions: () => paginateDescribeAutomationExecutions,\n paginateDescribeAutomationStepExecutions: () => paginateDescribeAutomationStepExecutions,\n paginateDescribeAvailablePatches: () => paginateDescribeAvailablePatches,\n paginateDescribeEffectiveInstanceAssociations: () => paginateDescribeEffectiveInstanceAssociations,\n paginateDescribeEffectivePatchesForPatchBaseline: () => paginateDescribeEffectivePatchesForPatchBaseline,\n paginateDescribeInstanceAssociationsStatus: () => paginateDescribeInstanceAssociationsStatus,\n paginateDescribeInstanceInformation: () => paginateDescribeInstanceInformation,\n paginateDescribeInstancePatchStates: () => paginateDescribeInstancePatchStates,\n paginateDescribeInstancePatchStatesForPatchGroup: () => paginateDescribeInstancePatchStatesForPatchGroup,\n paginateDescribeInstancePatches: () => paginateDescribeInstancePatches,\n paginateDescribeInstanceProperties: () => paginateDescribeInstanceProperties,\n paginateDescribeInventoryDeletions: () => paginateDescribeInventoryDeletions,\n paginateDescribeMaintenanceWindowExecutionTaskInvocations: () => paginateDescribeMaintenanceWindowExecutionTaskInvocations,\n paginateDescribeMaintenanceWindowExecutionTasks: () => paginateDescribeMaintenanceWindowExecutionTasks,\n paginateDescribeMaintenanceWindowExecutions: () => paginateDescribeMaintenanceWindowExecutions,\n paginateDescribeMaintenanceWindowSchedule: () => paginateDescribeMaintenanceWindowSchedule,\n paginateDescribeMaintenanceWindowTargets: () => paginateDescribeMaintenanceWindowTargets,\n paginateDescribeMaintenanceWindowTasks: () => paginateDescribeMaintenanceWindowTasks,\n paginateDescribeMaintenanceWindows: () => paginateDescribeMaintenanceWindows,\n paginateDescribeMaintenanceWindowsForTarget: () => paginateDescribeMaintenanceWindowsForTarget,\n paginateDescribeOpsItems: () => paginateDescribeOpsItems,\n paginateDescribeParameters: () => paginateDescribeParameters,\n paginateDescribePatchBaselines: () => paginateDescribePatchBaselines,\n paginateDescribePatchGroups: () => paginateDescribePatchGroups,\n paginateDescribePatchProperties: () => paginateDescribePatchProperties,\n paginateDescribeSessions: () => paginateDescribeSessions,\n paginateGetInventory: () => paginateGetInventory,\n paginateGetInventorySchema: () => paginateGetInventorySchema,\n paginateGetOpsSummary: () => paginateGetOpsSummary,\n paginateGetParameterHistory: () => paginateGetParameterHistory,\n paginateGetParametersByPath: () => paginateGetParametersByPath,\n paginateGetResourcePolicies: () => paginateGetResourcePolicies,\n paginateListAssociationVersions: () => paginateListAssociationVersions,\n paginateListAssociations: () => paginateListAssociations,\n paginateListCommandInvocations: () => paginateListCommandInvocations,\n paginateListCommands: () => paginateListCommands,\n paginateListComplianceItems: () => paginateListComplianceItems,\n paginateListComplianceSummaries: () => paginateListComplianceSummaries,\n paginateListDocumentVersions: () => paginateListDocumentVersions,\n paginateListDocuments: () => paginateListDocuments,\n paginateListNodes: () => paginateListNodes,\n paginateListNodesSummary: () => paginateListNodesSummary,\n paginateListOpsItemEvents: () => paginateListOpsItemEvents,\n paginateListOpsItemRelatedItems: () => paginateListOpsItemRelatedItems,\n paginateListOpsMetadata: () => paginateListOpsMetadata,\n paginateListResourceComplianceSummaries: () => paginateListResourceComplianceSummaries,\n paginateListResourceDataSync: () => paginateListResourceDataSync,\n waitForCommandExecuted: () => waitForCommandExecuted,\n waitUntilCommandExecuted: () => waitUntilCommandExecuted\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSMClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ssm\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSMClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSMClient.ts\nvar SSMClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSMClient\");\n }\n /**\n * The resolved configuration of SSMClient class. This is resolved and normalized from the {@link SSMClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSMHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSM.ts\n\n\n// src/commands/AddTagsToResourceCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/models_0.ts\n\n\n// src/models/SSMServiceException.ts\n\nvar SSMServiceException = class _SSMServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSMServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSMServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSMServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AccessRequestStatus = {\n APPROVED: \"Approved\",\n EXPIRED: \"Expired\",\n PENDING: \"Pending\",\n REJECTED: \"Rejected\",\n REVOKED: \"Revoked\"\n};\nvar ResourceTypeForTagging = {\n ASSOCIATION: \"Association\",\n AUTOMATION: \"Automation\",\n DOCUMENT: \"Document\",\n MAINTENANCE_WINDOW: \"MaintenanceWindow\",\n MANAGED_INSTANCE: \"ManagedInstance\",\n OPSMETADATA: \"OpsMetadata\",\n OPS_ITEM: \"OpsItem\",\n PARAMETER: \"Parameter\",\n PATCH_BASELINE: \"PatchBaseline\"\n};\nvar InternalServerError = class _InternalServerError extends SSMServiceException {\n static {\n __name(this, \"InternalServerError\");\n }\n name = \"InternalServerError\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerError\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerError.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidResourceId = class _InvalidResourceId extends SSMServiceException {\n static {\n __name(this, \"InvalidResourceId\");\n }\n name = \"InvalidResourceId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidResourceId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidResourceId.prototype);\n }\n};\nvar InvalidResourceType = class _InvalidResourceType extends SSMServiceException {\n static {\n __name(this, \"InvalidResourceType\");\n }\n name = \"InvalidResourceType\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidResourceType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidResourceType.prototype);\n }\n};\nvar TooManyTagsError = class _TooManyTagsError extends SSMServiceException {\n static {\n __name(this, \"TooManyTagsError\");\n }\n name = \"TooManyTagsError\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsError\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsError.prototype);\n }\n};\nvar TooManyUpdates = class _TooManyUpdates extends SSMServiceException {\n static {\n __name(this, \"TooManyUpdates\");\n }\n name = \"TooManyUpdates\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyUpdates\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyUpdates.prototype);\n this.Message = opts.Message;\n }\n};\nvar ExternalAlarmState = {\n ALARM: \"ALARM\",\n UNKNOWN: \"UNKNOWN\"\n};\nvar AlreadyExistsException = class _AlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"AlreadyExistsException\");\n }\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemConflictException = class _OpsItemConflictException extends SSMServiceException {\n static {\n __name(this, \"OpsItemConflictException\");\n }\n name = \"OpsItemConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemInvalidParameterException = class _OpsItemInvalidParameterException extends SSMServiceException {\n static {\n __name(this, \"OpsItemInvalidParameterException\");\n }\n name = \"OpsItemInvalidParameterException\";\n $fault = \"client\";\n ParameterNames;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemInvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemInvalidParameterException.prototype);\n this.ParameterNames = opts.ParameterNames;\n this.Message = opts.Message;\n }\n};\nvar OpsItemLimitExceededException = class _OpsItemLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"OpsItemLimitExceededException\");\n }\n name = \"OpsItemLimitExceededException\";\n $fault = \"client\";\n ResourceTypes;\n Limit;\n LimitType;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemLimitExceededException.prototype);\n this.ResourceTypes = opts.ResourceTypes;\n this.Limit = opts.Limit;\n this.LimitType = opts.LimitType;\n this.Message = opts.Message;\n }\n};\nvar OpsItemNotFoundException = class _OpsItemNotFoundException extends SSMServiceException {\n static {\n __name(this, \"OpsItemNotFoundException\");\n }\n name = \"OpsItemNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemRelatedItemAlreadyExistsException = class _OpsItemRelatedItemAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"OpsItemRelatedItemAlreadyExistsException\");\n }\n name = \"OpsItemRelatedItemAlreadyExistsException\";\n $fault = \"client\";\n Message;\n ResourceUri;\n OpsItemId;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemRelatedItemAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemRelatedItemAlreadyExistsException.prototype);\n this.Message = opts.Message;\n this.ResourceUri = opts.ResourceUri;\n this.OpsItemId = opts.OpsItemId;\n }\n};\nvar DuplicateInstanceId = class _DuplicateInstanceId extends SSMServiceException {\n static {\n __name(this, \"DuplicateInstanceId\");\n }\n name = \"DuplicateInstanceId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateInstanceId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateInstanceId.prototype);\n }\n};\nvar InvalidCommandId = class _InvalidCommandId extends SSMServiceException {\n static {\n __name(this, \"InvalidCommandId\");\n }\n name = \"InvalidCommandId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCommandId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCommandId.prototype);\n }\n};\nvar InvalidInstanceId = class _InvalidInstanceId extends SSMServiceException {\n static {\n __name(this, \"InvalidInstanceId\");\n }\n name = \"InvalidInstanceId\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInstanceId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInstanceId.prototype);\n this.Message = opts.Message;\n }\n};\nvar DoesNotExistException = class _DoesNotExistException extends SSMServiceException {\n static {\n __name(this, \"DoesNotExistException\");\n }\n name = \"DoesNotExistException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DoesNotExistException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DoesNotExistException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidParameters = class _InvalidParameters extends SSMServiceException {\n static {\n __name(this, \"InvalidParameters\");\n }\n name = \"InvalidParameters\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameters\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameters.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationAlreadyExists = class _AssociationAlreadyExists extends SSMServiceException {\n static {\n __name(this, \"AssociationAlreadyExists\");\n }\n name = \"AssociationAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationAlreadyExists.prototype);\n }\n};\nvar AssociationLimitExceeded = class _AssociationLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"AssociationLimitExceeded\");\n }\n name = \"AssociationLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationLimitExceeded.prototype);\n }\n};\nvar AssociationComplianceSeverity = {\n Critical: \"CRITICAL\",\n High: \"HIGH\",\n Low: \"LOW\",\n Medium: \"MEDIUM\",\n Unspecified: \"UNSPECIFIED\"\n};\nvar AssociationSyncCompliance = {\n Auto: \"AUTO\",\n Manual: \"MANUAL\"\n};\nvar AssociationStatusName = {\n Failed: \"Failed\",\n Pending: \"Pending\",\n Success: \"Success\"\n};\nvar InvalidDocument = class _InvalidDocument extends SSMServiceException {\n static {\n __name(this, \"InvalidDocument\");\n }\n name = \"InvalidDocument\";\n $fault = \"client\";\n /**\n *

The SSM document doesn't exist or the document isn't available to the user. This exception\n * can be issued by various API operations.

\n * @public\n */\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocument\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocument.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidDocumentVersion = class _InvalidDocumentVersion extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentVersion\");\n }\n name = \"InvalidDocumentVersion\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentVersion.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidOutputLocation = class _InvalidOutputLocation extends SSMServiceException {\n static {\n __name(this, \"InvalidOutputLocation\");\n }\n name = \"InvalidOutputLocation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOutputLocation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOutputLocation.prototype);\n }\n};\nvar InvalidSchedule = class _InvalidSchedule extends SSMServiceException {\n static {\n __name(this, \"InvalidSchedule\");\n }\n name = \"InvalidSchedule\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSchedule\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSchedule.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTag = class _InvalidTag extends SSMServiceException {\n static {\n __name(this, \"InvalidTag\");\n }\n name = \"InvalidTag\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTag\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTag.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTarget = class _InvalidTarget extends SSMServiceException {\n static {\n __name(this, \"InvalidTarget\");\n }\n name = \"InvalidTarget\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTarget\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTarget.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTargetMaps = class _InvalidTargetMaps extends SSMServiceException {\n static {\n __name(this, \"InvalidTargetMaps\");\n }\n name = \"InvalidTargetMaps\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTargetMaps\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTargetMaps.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedPlatformType = class _UnsupportedPlatformType extends SSMServiceException {\n static {\n __name(this, \"UnsupportedPlatformType\");\n }\n name = \"UnsupportedPlatformType\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedPlatformType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedPlatformType.prototype);\n this.Message = opts.Message;\n }\n};\nvar Fault = {\n Client: \"Client\",\n Server: \"Server\",\n Unknown: \"Unknown\"\n};\nvar AttachmentsSourceKey = {\n AttachmentReference: \"AttachmentReference\",\n S3FileUrl: \"S3FileUrl\",\n SourceUrl: \"SourceUrl\"\n};\nvar DocumentFormat = {\n JSON: \"JSON\",\n TEXT: \"TEXT\",\n YAML: \"YAML\"\n};\nvar DocumentType = {\n ApplicationConfiguration: \"ApplicationConfiguration\",\n ApplicationConfigurationSchema: \"ApplicationConfigurationSchema\",\n AutoApprovalPolicy: \"AutoApprovalPolicy\",\n Automation: \"Automation\",\n ChangeCalendar: \"ChangeCalendar\",\n ChangeTemplate: \"Automation.ChangeTemplate\",\n CloudFormation: \"CloudFormation\",\n Command: \"Command\",\n ConformancePackTemplate: \"ConformancePackTemplate\",\n DeploymentStrategy: \"DeploymentStrategy\",\n ManualApprovalPolicy: \"ManualApprovalPolicy\",\n Package: \"Package\",\n Policy: \"Policy\",\n ProblemAnalysis: \"ProblemAnalysis\",\n ProblemAnalysisTemplate: \"ProblemAnalysisTemplate\",\n QuickSetup: \"QuickSetup\",\n Session: \"Session\"\n};\nvar DocumentHashType = {\n SHA1: \"Sha1\",\n SHA256: \"Sha256\"\n};\nvar DocumentParameterType = {\n String: \"String\",\n StringList: \"StringList\"\n};\nvar PlatformType = {\n LINUX: \"Linux\",\n MACOS: \"MacOS\",\n WINDOWS: \"Windows\"\n};\nvar ReviewStatus = {\n APPROVED: \"APPROVED\",\n NOT_REVIEWED: \"NOT_REVIEWED\",\n PENDING: \"PENDING\",\n REJECTED: \"REJECTED\"\n};\nvar DocumentStatus = {\n Active: \"Active\",\n Creating: \"Creating\",\n Deleting: \"Deleting\",\n Failed: \"Failed\",\n Updating: \"Updating\"\n};\nvar DocumentAlreadyExists = class _DocumentAlreadyExists extends SSMServiceException {\n static {\n __name(this, \"DocumentAlreadyExists\");\n }\n name = \"DocumentAlreadyExists\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentAlreadyExists.prototype);\n this.Message = opts.Message;\n }\n};\nvar DocumentLimitExceeded = class _DocumentLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"DocumentLimitExceeded\");\n }\n name = \"DocumentLimitExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentLimitExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidDocumentContent = class _InvalidDocumentContent extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentContent\");\n }\n name = \"InvalidDocumentContent\";\n $fault = \"client\";\n /**\n *

A description of the validation error.

\n * @public\n */\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentContent\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentContent.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidDocumentSchemaVersion = class _InvalidDocumentSchemaVersion extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentSchemaVersion\");\n }\n name = \"InvalidDocumentSchemaVersion\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentSchemaVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentSchemaVersion.prototype);\n this.Message = opts.Message;\n }\n};\nvar MaxDocumentSizeExceeded = class _MaxDocumentSizeExceeded extends SSMServiceException {\n static {\n __name(this, \"MaxDocumentSizeExceeded\");\n }\n name = \"MaxDocumentSizeExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MaxDocumentSizeExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MaxDocumentSizeExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar IdempotentParameterMismatch = class _IdempotentParameterMismatch extends SSMServiceException {\n static {\n __name(this, \"IdempotentParameterMismatch\");\n }\n name = \"IdempotentParameterMismatch\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IdempotentParameterMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IdempotentParameterMismatch.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceLimitExceededException = class _ResourceLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ResourceLimitExceededException\");\n }\n name = \"ResourceLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemDataType = {\n SEARCHABLE_STRING: \"SearchableString\",\n STRING: \"String\"\n};\nvar OpsItemAccessDeniedException = class _OpsItemAccessDeniedException extends SSMServiceException {\n static {\n __name(this, \"OpsItemAccessDeniedException\");\n }\n name = \"OpsItemAccessDeniedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemAccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemAccessDeniedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemAlreadyExistsException = class _OpsItemAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"OpsItemAlreadyExistsException\");\n }\n name = \"OpsItemAlreadyExistsException\";\n $fault = \"client\";\n Message;\n OpsItemId;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemAlreadyExistsException.prototype);\n this.Message = opts.Message;\n this.OpsItemId = opts.OpsItemId;\n }\n};\nvar OpsMetadataAlreadyExistsException = class _OpsMetadataAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataAlreadyExistsException\");\n }\n name = \"OpsMetadataAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataAlreadyExistsException.prototype);\n }\n};\nvar OpsMetadataInvalidArgumentException = class _OpsMetadataInvalidArgumentException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataInvalidArgumentException\");\n }\n name = \"OpsMetadataInvalidArgumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataInvalidArgumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataInvalidArgumentException.prototype);\n }\n};\nvar OpsMetadataLimitExceededException = class _OpsMetadataLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataLimitExceededException\");\n }\n name = \"OpsMetadataLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataLimitExceededException.prototype);\n }\n};\nvar OpsMetadataTooManyUpdatesException = class _OpsMetadataTooManyUpdatesException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataTooManyUpdatesException\");\n }\n name = \"OpsMetadataTooManyUpdatesException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataTooManyUpdatesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataTooManyUpdatesException.prototype);\n }\n};\nvar PatchComplianceLevel = {\n Critical: \"CRITICAL\",\n High: \"HIGH\",\n Informational: \"INFORMATIONAL\",\n Low: \"LOW\",\n Medium: \"MEDIUM\",\n Unspecified: \"UNSPECIFIED\"\n};\nvar PatchFilterKey = {\n AdvisoryId: \"ADVISORY_ID\",\n Arch: \"ARCH\",\n BugzillaId: \"BUGZILLA_ID\",\n CVEId: \"CVE_ID\",\n Classification: \"CLASSIFICATION\",\n Epoch: \"EPOCH\",\n MsrcSeverity: \"MSRC_SEVERITY\",\n Name: \"NAME\",\n PatchId: \"PATCH_ID\",\n PatchSet: \"PATCH_SET\",\n Priority: \"PRIORITY\",\n Product: \"PRODUCT\",\n ProductFamily: \"PRODUCT_FAMILY\",\n Release: \"RELEASE\",\n Repository: \"REPOSITORY\",\n Section: \"SECTION\",\n Security: \"SECURITY\",\n Severity: \"SEVERITY\",\n Version: \"VERSION\"\n};\nvar PatchComplianceStatus = {\n Compliant: \"COMPLIANT\",\n NonCompliant: \"NON_COMPLIANT\"\n};\nvar OperatingSystem = {\n AlmaLinux: \"ALMA_LINUX\",\n AmazonLinux: \"AMAZON_LINUX\",\n AmazonLinux2: \"AMAZON_LINUX_2\",\n AmazonLinux2022: \"AMAZON_LINUX_2022\",\n AmazonLinux2023: \"AMAZON_LINUX_2023\",\n CentOS: \"CENTOS\",\n Debian: \"DEBIAN\",\n MacOS: \"MACOS\",\n OracleLinux: \"ORACLE_LINUX\",\n Raspbian: \"RASPBIAN\",\n RedhatEnterpriseLinux: \"REDHAT_ENTERPRISE_LINUX\",\n Rocky_Linux: \"ROCKY_LINUX\",\n Suse: \"SUSE\",\n Ubuntu: \"UBUNTU\",\n Windows: \"WINDOWS\"\n};\nvar PatchAction = {\n AllowAsDependency: \"ALLOW_AS_DEPENDENCY\",\n Block: \"BLOCK\"\n};\nvar ResourceDataSyncS3Format = {\n JSON_SERDE: \"JsonSerDe\"\n};\nvar ResourceDataSyncAlreadyExistsException = class _ResourceDataSyncAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncAlreadyExistsException\");\n }\n name = \"ResourceDataSyncAlreadyExistsException\";\n $fault = \"client\";\n SyncName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncAlreadyExistsException.prototype);\n this.SyncName = opts.SyncName;\n }\n};\nvar ResourceDataSyncCountExceededException = class _ResourceDataSyncCountExceededException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncCountExceededException\");\n }\n name = \"ResourceDataSyncCountExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncCountExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncCountExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceDataSyncInvalidConfigurationException = class _ResourceDataSyncInvalidConfigurationException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncInvalidConfigurationException\");\n }\n name = \"ResourceDataSyncInvalidConfigurationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncInvalidConfigurationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidActivation = class _InvalidActivation extends SSMServiceException {\n static {\n __name(this, \"InvalidActivation\");\n }\n name = \"InvalidActivation\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidActivation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidActivation.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidActivationId = class _InvalidActivationId extends SSMServiceException {\n static {\n __name(this, \"InvalidActivationId\");\n }\n name = \"InvalidActivationId\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidActivationId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidActivationId.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationDoesNotExist = class _AssociationDoesNotExist extends SSMServiceException {\n static {\n __name(this, \"AssociationDoesNotExist\");\n }\n name = \"AssociationDoesNotExist\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationDoesNotExist.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociatedInstances = class _AssociatedInstances extends SSMServiceException {\n static {\n __name(this, \"AssociatedInstances\");\n }\n name = \"AssociatedInstances\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociatedInstances\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociatedInstances.prototype);\n }\n};\nvar InvalidDocumentOperation = class _InvalidDocumentOperation extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentOperation\");\n }\n name = \"InvalidDocumentOperation\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentOperation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentOperation.prototype);\n this.Message = opts.Message;\n }\n};\nvar InventorySchemaDeleteOption = {\n DELETE_SCHEMA: \"DeleteSchema\",\n DISABLE_SCHEMA: \"DisableSchema\"\n};\nvar InvalidDeleteInventoryParametersException = class _InvalidDeleteInventoryParametersException extends SSMServiceException {\n static {\n __name(this, \"InvalidDeleteInventoryParametersException\");\n }\n name = \"InvalidDeleteInventoryParametersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDeleteInventoryParametersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDeleteInventoryParametersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInventoryRequestException = class _InvalidInventoryRequestException extends SSMServiceException {\n static {\n __name(this, \"InvalidInventoryRequestException\");\n }\n name = \"InvalidInventoryRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInventoryRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInventoryRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidOptionException = class _InvalidOptionException extends SSMServiceException {\n static {\n __name(this, \"InvalidOptionException\");\n }\n name = \"InvalidOptionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOptionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOptionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTypeNameException = class _InvalidTypeNameException extends SSMServiceException {\n static {\n __name(this, \"InvalidTypeNameException\");\n }\n name = \"InvalidTypeNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTypeNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTypeNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsMetadataNotFoundException = class _OpsMetadataNotFoundException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataNotFoundException\");\n }\n name = \"OpsMetadataNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataNotFoundException.prototype);\n }\n};\nvar ParameterNotFound = class _ParameterNotFound extends SSMServiceException {\n static {\n __name(this, \"ParameterNotFound\");\n }\n name = \"ParameterNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterNotFound.prototype);\n }\n};\nvar ResourceInUseException = class _ResourceInUseException extends SSMServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceDataSyncNotFoundException = class _ResourceDataSyncNotFoundException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncNotFoundException\");\n }\n name = \"ResourceDataSyncNotFoundException\";\n $fault = \"client\";\n SyncName;\n SyncType;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncNotFoundException.prototype);\n this.SyncName = opts.SyncName;\n this.SyncType = opts.SyncType;\n this.Message = opts.Message;\n }\n};\nvar MalformedResourcePolicyDocumentException = class _MalformedResourcePolicyDocumentException extends SSMServiceException {\n static {\n __name(this, \"MalformedResourcePolicyDocumentException\");\n }\n name = \"MalformedResourcePolicyDocumentException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedResourcePolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedResourcePolicyDocumentException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSMServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourcePolicyConflictException = class _ResourcePolicyConflictException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyConflictException\");\n }\n name = \"ResourcePolicyConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourcePolicyInvalidParameterException = class _ResourcePolicyInvalidParameterException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyInvalidParameterException\");\n }\n name = \"ResourcePolicyInvalidParameterException\";\n $fault = \"client\";\n ParameterNames;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyInvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyInvalidParameterException.prototype);\n this.ParameterNames = opts.ParameterNames;\n this.Message = opts.Message;\n }\n};\nvar ResourcePolicyNotFoundException = class _ResourcePolicyNotFoundException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyNotFoundException\");\n }\n name = \"ResourcePolicyNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetInUseException = class _TargetInUseException extends SSMServiceException {\n static {\n __name(this, \"TargetInUseException\");\n }\n name = \"TargetInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DescribeActivationsFilterKeys = {\n ACTIVATION_IDS: \"ActivationIds\",\n DEFAULT_INSTANCE_NAME: \"DefaultInstanceName\",\n IAM_ROLE: \"IamRole\"\n};\nvar InvalidFilter = class _InvalidFilter extends SSMServiceException {\n static {\n __name(this, \"InvalidFilter\");\n }\n name = \"InvalidFilter\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilter\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilter.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidNextToken = class _InvalidNextToken extends SSMServiceException {\n static {\n __name(this, \"InvalidNextToken\");\n }\n name = \"InvalidNextToken\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidNextToken\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidNextToken.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAssociationVersion = class _InvalidAssociationVersion extends SSMServiceException {\n static {\n __name(this, \"InvalidAssociationVersion\");\n }\n name = \"InvalidAssociationVersion\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAssociationVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAssociationVersion.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationExecutionFilterKey = {\n CreatedTime: \"CreatedTime\",\n ExecutionId: \"ExecutionId\",\n Status: \"Status\"\n};\nvar AssociationFilterOperatorType = {\n Equal: \"EQUAL\",\n GreaterThan: \"GREATER_THAN\",\n LessThan: \"LESS_THAN\"\n};\nvar AssociationExecutionDoesNotExist = class _AssociationExecutionDoesNotExist extends SSMServiceException {\n static {\n __name(this, \"AssociationExecutionDoesNotExist\");\n }\n name = \"AssociationExecutionDoesNotExist\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationExecutionDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationExecutionDoesNotExist.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationExecutionTargetsFilterKey = {\n ResourceId: \"ResourceId\",\n ResourceType: \"ResourceType\",\n Status: \"Status\"\n};\nvar AutomationExecutionFilterKey = {\n AUTOMATION_SUBTYPE: \"AutomationSubtype\",\n AUTOMATION_TYPE: \"AutomationType\",\n CURRENT_ACTION: \"CurrentAction\",\n DOCUMENT_NAME_PREFIX: \"DocumentNamePrefix\",\n EXECUTION_ID: \"ExecutionId\",\n EXECUTION_STATUS: \"ExecutionStatus\",\n OPS_ITEM_ID: \"OpsItemId\",\n PARENT_EXECUTION_ID: \"ParentExecutionId\",\n START_TIME_AFTER: \"StartTimeAfter\",\n START_TIME_BEFORE: \"StartTimeBefore\",\n TAG_KEY: \"TagKey\",\n TARGET_RESOURCE_GROUP: \"TargetResourceGroup\"\n};\nvar AutomationExecutionStatus = {\n APPROVED: \"Approved\",\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n CHANGE_CALENDAR_OVERRIDE_APPROVED: \"ChangeCalendarOverrideApproved\",\n CHANGE_CALENDAR_OVERRIDE_REJECTED: \"ChangeCalendarOverrideRejected\",\n COMPLETED_WITH_FAILURE: \"CompletedWithFailure\",\n COMPLETED_WITH_SUCCESS: \"CompletedWithSuccess\",\n EXITED: \"Exited\",\n FAILED: \"Failed\",\n INPROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n PENDING_APPROVAL: \"PendingApproval\",\n PENDING_CHANGE_CALENDAR_OVERRIDE: \"PendingChangeCalendarOverride\",\n REJECTED: \"Rejected\",\n RUNBOOK_INPROGRESS: \"RunbookInProgress\",\n SCHEDULED: \"Scheduled\",\n SUCCESS: \"Success\",\n TIMEDOUT: \"TimedOut\",\n WAITING: \"Waiting\"\n};\nvar AutomationSubtype = {\n AccessRequest: \"AccessRequest\",\n ChangeRequest: \"ChangeRequest\"\n};\nvar AutomationType = {\n CrossAccount: \"CrossAccount\",\n Local: \"Local\"\n};\nvar ExecutionMode = {\n Auto: \"Auto\",\n Interactive: \"Interactive\"\n};\nvar InvalidFilterKey = class _InvalidFilterKey extends SSMServiceException {\n static {\n __name(this, \"InvalidFilterKey\");\n }\n name = \"InvalidFilterKey\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilterKey\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilterKey.prototype);\n }\n};\nvar InvalidFilterValue = class _InvalidFilterValue extends SSMServiceException {\n static {\n __name(this, \"InvalidFilterValue\");\n }\n name = \"InvalidFilterValue\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilterValue\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilterValue.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationExecutionNotFoundException = class _AutomationExecutionNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationExecutionNotFoundException\");\n }\n name = \"AutomationExecutionNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationExecutionNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationExecutionNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar StepExecutionFilterKey = {\n ACTION: \"Action\",\n PARENT_STEP_EXECUTION_ID: \"ParentStepExecutionId\",\n PARENT_STEP_ITERATION: \"ParentStepIteration\",\n PARENT_STEP_ITERATOR_VALUE: \"ParentStepIteratorValue\",\n START_TIME_AFTER: \"StartTimeAfter\",\n START_TIME_BEFORE: \"StartTimeBefore\",\n STEP_EXECUTION_ID: \"StepExecutionId\",\n STEP_EXECUTION_STATUS: \"StepExecutionStatus\",\n STEP_NAME: \"StepName\"\n};\nvar DocumentPermissionType = {\n SHARE: \"Share\"\n};\nvar InvalidPermissionType = class _InvalidPermissionType extends SSMServiceException {\n static {\n __name(this, \"InvalidPermissionType\");\n }\n name = \"InvalidPermissionType\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPermissionType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPermissionType.prototype);\n this.Message = opts.Message;\n }\n};\nvar PatchDeploymentStatus = {\n Approved: \"APPROVED\",\n ExplicitApproved: \"EXPLICIT_APPROVED\",\n ExplicitRejected: \"EXPLICIT_REJECTED\",\n PendingApproval: \"PENDING_APPROVAL\"\n};\nvar UnsupportedOperatingSystem = class _UnsupportedOperatingSystem extends SSMServiceException {\n static {\n __name(this, \"UnsupportedOperatingSystem\");\n }\n name = \"UnsupportedOperatingSystem\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedOperatingSystem\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedOperatingSystem.prototype);\n this.Message = opts.Message;\n }\n};\nvar InstanceInformationFilterKey = {\n ACTIVATION_IDS: \"ActivationIds\",\n AGENT_VERSION: \"AgentVersion\",\n ASSOCIATION_STATUS: \"AssociationStatus\",\n IAM_ROLE: \"IamRole\",\n INSTANCE_IDS: \"InstanceIds\",\n PING_STATUS: \"PingStatus\",\n PLATFORM_TYPES: \"PlatformTypes\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar PingStatus = {\n CONNECTION_LOST: \"ConnectionLost\",\n INACTIVE: \"Inactive\",\n ONLINE: \"Online\"\n};\nvar ResourceType = {\n EC2_INSTANCE: \"EC2Instance\",\n MANAGED_INSTANCE: \"ManagedInstance\"\n};\nvar SourceType = {\n AWS_EC2_INSTANCE: \"AWS::EC2::Instance\",\n AWS_IOT_THING: \"AWS::IoT::Thing\",\n AWS_SSM_MANAGEDINSTANCE: \"AWS::SSM::ManagedInstance\"\n};\nvar InvalidInstanceInformationFilterValue = class _InvalidInstanceInformationFilterValue extends SSMServiceException {\n static {\n __name(this, \"InvalidInstanceInformationFilterValue\");\n }\n name = \"InvalidInstanceInformationFilterValue\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInstanceInformationFilterValue\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInstanceInformationFilterValue.prototype);\n }\n};\nvar PatchComplianceDataState = {\n AvailableSecurityUpdate: \"AVAILABLE_SECURITY_UPDATE\",\n Failed: \"FAILED\",\n Installed: \"INSTALLED\",\n InstalledOther: \"INSTALLED_OTHER\",\n InstalledPendingReboot: \"INSTALLED_PENDING_REBOOT\",\n InstalledRejected: \"INSTALLED_REJECTED\",\n Missing: \"MISSING\",\n NotApplicable: \"NOT_APPLICABLE\"\n};\nvar PatchOperationType = {\n INSTALL: \"Install\",\n SCAN: \"Scan\"\n};\nvar RebootOption = {\n NO_REBOOT: \"NoReboot\",\n REBOOT_IF_NEEDED: \"RebootIfNeeded\"\n};\nvar InstancePatchStateOperatorType = {\n EQUAL: \"Equal\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InstancePropertyFilterOperator = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InstancePropertyFilterKey = {\n ACTIVATION_IDS: \"ActivationIds\",\n AGENT_VERSION: \"AgentVersion\",\n ASSOCIATION_STATUS: \"AssociationStatus\",\n DOCUMENT_NAME: \"DocumentName\",\n IAM_ROLE: \"IamRole\",\n INSTANCE_IDS: \"InstanceIds\",\n PING_STATUS: \"PingStatus\",\n PLATFORM_TYPES: \"PlatformTypes\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar InvalidInstancePropertyFilterValue = class _InvalidInstancePropertyFilterValue extends SSMServiceException {\n static {\n __name(this, \"InvalidInstancePropertyFilterValue\");\n }\n name = \"InvalidInstancePropertyFilterValue\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInstancePropertyFilterValue\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInstancePropertyFilterValue.prototype);\n }\n};\nvar InventoryDeletionStatus = {\n COMPLETE: \"Complete\",\n IN_PROGRESS: \"InProgress\"\n};\nvar InvalidDeletionIdException = class _InvalidDeletionIdException extends SSMServiceException {\n static {\n __name(this, \"InvalidDeletionIdException\");\n }\n name = \"InvalidDeletionIdException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDeletionIdException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDeletionIdException.prototype);\n this.Message = opts.Message;\n }\n};\nvar MaintenanceWindowExecutionStatus = {\n Cancelled: \"CANCELLED\",\n Cancelling: \"CANCELLING\",\n Failed: \"FAILED\",\n InProgress: \"IN_PROGRESS\",\n Pending: \"PENDING\",\n SkippedOverlapping: \"SKIPPED_OVERLAPPING\",\n Success: \"SUCCESS\",\n TimedOut: \"TIMED_OUT\"\n};\nvar MaintenanceWindowTaskType = {\n Automation: \"AUTOMATION\",\n Lambda: \"LAMBDA\",\n RunCommand: \"RUN_COMMAND\",\n StepFunctions: \"STEP_FUNCTIONS\"\n};\nvar CreateAssociationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateAssociationRequestFilterSensitiveLog\");\nvar AssociationDescriptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"AssociationDescriptionFilterSensitiveLog\");\nvar CreateAssociationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"CreateAssociationResultFilterSensitiveLog\");\nvar CreateAssociationBatchRequestEntryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateAssociationBatchRequestEntryFilterSensitiveLog\");\nvar CreateAssociationBatchRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Entries && {\n Entries: obj.Entries.map((item) => CreateAssociationBatchRequestEntryFilterSensitiveLog(item))\n }\n}), \"CreateAssociationBatchRequestFilterSensitiveLog\");\nvar FailedCreateAssociationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Entry && { Entry: CreateAssociationBatchRequestEntryFilterSensitiveLog(obj.Entry) }\n}), \"FailedCreateAssociationFilterSensitiveLog\");\nvar CreateAssociationBatchResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Successful && { Successful: obj.Successful.map((item) => AssociationDescriptionFilterSensitiveLog(item)) },\n ...obj.Failed && { Failed: obj.Failed.map((item) => FailedCreateAssociationFilterSensitiveLog(item)) }\n}), \"CreateAssociationBatchResultFilterSensitiveLog\");\nvar CreateMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateMaintenanceWindowRequestFilterSensitiveLog\");\nvar PatchSourceFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Configuration && { Configuration: import_smithy_client.SENSITIVE_STRING }\n}), \"PatchSourceFilterSensitiveLog\");\nvar CreatePatchBaselineRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"CreatePatchBaselineRequestFilterSensitiveLog\");\nvar DescribeAssociationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"DescribeAssociationResultFilterSensitiveLog\");\nvar InstanceInformationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.IPAddress && { IPAddress: import_smithy_client.SENSITIVE_STRING }\n}), \"InstanceInformationFilterSensitiveLog\");\nvar DescribeInstanceInformationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstanceInformationList && {\n InstanceInformationList: obj.InstanceInformationList.map((item) => InstanceInformationFilterSensitiveLog(item))\n }\n}), \"DescribeInstanceInformationResultFilterSensitiveLog\");\nvar InstancePatchStateFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING }\n}), \"InstancePatchStateFilterSensitiveLog\");\nvar DescribeInstancePatchStatesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstancePatchStates && {\n InstancePatchStates: obj.InstancePatchStates.map((item) => InstancePatchStateFilterSensitiveLog(item))\n }\n}), \"DescribeInstancePatchStatesResultFilterSensitiveLog\");\nvar DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstancePatchStates && {\n InstancePatchStates: obj.InstancePatchStates.map((item) => InstancePatchStateFilterSensitiveLog(item))\n }\n}), \"DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog\");\nvar InstancePropertyFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.IPAddress && { IPAddress: import_smithy_client.SENSITIVE_STRING }\n}), \"InstancePropertyFilterSensitiveLog\");\nvar DescribeInstancePropertiesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstanceProperties && {\n InstanceProperties: obj.InstanceProperties.map((item) => InstancePropertyFilterSensitiveLog(item))\n }\n}), \"DescribeInstancePropertiesResultFilterSensitiveLog\");\nvar MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog\");\nvar DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WindowExecutionTaskInvocationIdentities && {\n WindowExecutionTaskInvocationIdentities: obj.WindowExecutionTaskInvocationIdentities.map(\n (item) => MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog(item)\n )\n }\n}), \"DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog\");\nvar MaintenanceWindowIdentityFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowIdentityFilterSensitiveLog\");\nvar DescribeMaintenanceWindowsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WindowIdentities && {\n WindowIdentities: obj.WindowIdentities.map((item) => MaintenanceWindowIdentityFilterSensitiveLog(item))\n }\n}), \"DescribeMaintenanceWindowsResultFilterSensitiveLog\");\n\n// src/models/models_1.ts\n\nvar MaintenanceWindowResourceType = {\n Instance: \"INSTANCE\",\n ResourceGroup: \"RESOURCE_GROUP\"\n};\nvar MaintenanceWindowTaskCutoffBehavior = {\n CancelTask: \"CANCEL_TASK\",\n ContinueTask: \"CONTINUE_TASK\"\n};\nvar OpsItemFilterKey = {\n ACCESS_REQUEST_APPROVER_ARN: \"AccessRequestByApproverArn\",\n ACCESS_REQUEST_APPROVER_ID: \"AccessRequestByApproverId\",\n ACCESS_REQUEST_IS_REPLICA: \"AccessRequestByIsReplica\",\n ACCESS_REQUEST_REQUESTER_ARN: \"AccessRequestByRequesterArn\",\n ACCESS_REQUEST_REQUESTER_ID: \"AccessRequestByRequesterId\",\n ACCESS_REQUEST_SOURCE_ACCOUNT_ID: \"AccessRequestBySourceAccountId\",\n ACCESS_REQUEST_SOURCE_OPS_ITEM_ID: \"AccessRequestBySourceOpsItemId\",\n ACCESS_REQUEST_SOURCE_REGION: \"AccessRequestBySourceRegion\",\n ACCESS_REQUEST_TARGET_RESOURCE_ID: \"AccessRequestByTargetResourceId\",\n ACCOUNT_ID: \"AccountId\",\n ACTUAL_END_TIME: \"ActualEndTime\",\n ACTUAL_START_TIME: \"ActualStartTime\",\n AUTOMATION_ID: \"AutomationId\",\n CATEGORY: \"Category\",\n CHANGE_REQUEST_APPROVER_ARN: \"ChangeRequestByApproverArn\",\n CHANGE_REQUEST_APPROVER_NAME: \"ChangeRequestByApproverName\",\n CHANGE_REQUEST_REQUESTER_ARN: \"ChangeRequestByRequesterArn\",\n CHANGE_REQUEST_REQUESTER_NAME: \"ChangeRequestByRequesterName\",\n CHANGE_REQUEST_TARGETS_RESOURCE_GROUP: \"ChangeRequestByTargetsResourceGroup\",\n CHANGE_REQUEST_TEMPLATE: \"ChangeRequestByTemplate\",\n CREATED_BY: \"CreatedBy\",\n CREATED_TIME: \"CreatedTime\",\n INSIGHT_TYPE: \"InsightByType\",\n LAST_MODIFIED_TIME: \"LastModifiedTime\",\n OPERATIONAL_DATA: \"OperationalData\",\n OPERATIONAL_DATA_KEY: \"OperationalDataKey\",\n OPERATIONAL_DATA_VALUE: \"OperationalDataValue\",\n OPSITEM_ID: \"OpsItemId\",\n OPSITEM_TYPE: \"OpsItemType\",\n PLANNED_END_TIME: \"PlannedEndTime\",\n PLANNED_START_TIME: \"PlannedStartTime\",\n PRIORITY: \"Priority\",\n RESOURCE_ID: \"ResourceId\",\n SEVERITY: \"Severity\",\n SOURCE: \"Source\",\n STATUS: \"Status\",\n TITLE: \"Title\"\n};\nvar OpsItemFilterOperator = {\n CONTAINS: \"Contains\",\n EQUAL: \"Equal\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\"\n};\nvar OpsItemStatus = {\n APPROVED: \"Approved\",\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n CHANGE_CALENDAR_OVERRIDE_APPROVED: \"ChangeCalendarOverrideApproved\",\n CHANGE_CALENDAR_OVERRIDE_REJECTED: \"ChangeCalendarOverrideRejected\",\n CLOSED: \"Closed\",\n COMPLETED_WITH_FAILURE: \"CompletedWithFailure\",\n COMPLETED_WITH_SUCCESS: \"CompletedWithSuccess\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n OPEN: \"Open\",\n PENDING: \"Pending\",\n PENDING_APPROVAL: \"PendingApproval\",\n PENDING_CHANGE_CALENDAR_OVERRIDE: \"PendingChangeCalendarOverride\",\n REJECTED: \"Rejected\",\n RESOLVED: \"Resolved\",\n REVOKED: \"Revoked\",\n RUNBOOK_IN_PROGRESS: \"RunbookInProgress\",\n SCHEDULED: \"Scheduled\",\n TIMED_OUT: \"TimedOut\"\n};\nvar ParametersFilterKey = {\n KEY_ID: \"KeyId\",\n NAME: \"Name\",\n TYPE: \"Type\"\n};\nvar ParameterTier = {\n ADVANCED: \"Advanced\",\n INTELLIGENT_TIERING: \"Intelligent-Tiering\",\n STANDARD: \"Standard\"\n};\nvar ParameterType = {\n SECURE_STRING: \"SecureString\",\n STRING: \"String\",\n STRING_LIST: \"StringList\"\n};\nvar InvalidFilterOption = class _InvalidFilterOption extends SSMServiceException {\n static {\n __name(this, \"InvalidFilterOption\");\n }\n name = \"InvalidFilterOption\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilterOption\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilterOption.prototype);\n }\n};\nvar PatchSet = {\n Application: \"APPLICATION\",\n Os: \"OS\"\n};\nvar PatchProperty = {\n PatchClassification: \"CLASSIFICATION\",\n PatchMsrcSeverity: \"MSRC_SEVERITY\",\n PatchPriority: \"PRIORITY\",\n PatchProductFamily: \"PRODUCT_FAMILY\",\n PatchSeverity: \"SEVERITY\",\n Product: \"PRODUCT\"\n};\nvar SessionFilterKey = {\n INVOKED_AFTER: \"InvokedAfter\",\n INVOKED_BEFORE: \"InvokedBefore\",\n OWNER: \"Owner\",\n SESSION_ID: \"SessionId\",\n STATUS: \"Status\",\n TARGET_ID: \"Target\"\n};\nvar SessionState = {\n ACTIVE: \"Active\",\n HISTORY: \"History\"\n};\nvar SessionStatus = {\n CONNECTED: \"Connected\",\n CONNECTING: \"Connecting\",\n DISCONNECTED: \"Disconnected\",\n FAILED: \"Failed\",\n TERMINATED: \"Terminated\",\n TERMINATING: \"Terminating\"\n};\nvar OpsItemRelatedItemAssociationNotFoundException = class _OpsItemRelatedItemAssociationNotFoundException extends SSMServiceException {\n static {\n __name(this, \"OpsItemRelatedItemAssociationNotFoundException\");\n }\n name = \"OpsItemRelatedItemAssociationNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemRelatedItemAssociationNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemRelatedItemAssociationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ThrottlingException = class _ThrottlingException extends SSMServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n Message;\n /**\n *

The quota code recognized by the Amazon Web Services Service Quotas service.

\n * @public\n */\n QuotaCode;\n /**\n *

The code for the Amazon Web Services service that owns the quota.

\n * @public\n */\n ServiceCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n this.Message = opts.Message;\n this.QuotaCode = opts.QuotaCode;\n this.ServiceCode = opts.ServiceCode;\n }\n};\nvar ValidationException = class _ValidationException extends SSMServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n Message;\n /**\n *

The reason code for the invalid request.

\n * @public\n */\n ReasonCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n this.Message = opts.Message;\n this.ReasonCode = opts.ReasonCode;\n }\n};\nvar CalendarState = {\n CLOSED: \"CLOSED\",\n OPEN: \"OPEN\"\n};\nvar InvalidDocumentType = class _InvalidDocumentType extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentType\");\n }\n name = \"InvalidDocumentType\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentType.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedCalendarException = class _UnsupportedCalendarException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedCalendarException\");\n }\n name = \"UnsupportedCalendarException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedCalendarException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedCalendarException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CommandInvocationStatus = {\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n DELAYED: \"Delayed\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar InvalidPluginName = class _InvalidPluginName extends SSMServiceException {\n static {\n __name(this, \"InvalidPluginName\");\n }\n name = \"InvalidPluginName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPluginName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPluginName.prototype);\n }\n};\nvar InvocationDoesNotExist = class _InvocationDoesNotExist extends SSMServiceException {\n static {\n __name(this, \"InvocationDoesNotExist\");\n }\n name = \"InvocationDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvocationDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvocationDoesNotExist.prototype);\n }\n};\nvar ConnectionStatus = {\n CONNECTED: \"connected\",\n NOT_CONNECTED: \"notconnected\"\n};\nvar UnsupportedFeatureRequiredException = class _UnsupportedFeatureRequiredException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedFeatureRequiredException\");\n }\n name = \"UnsupportedFeatureRequiredException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedFeatureRequiredException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedFeatureRequiredException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AttachmentHashType = {\n SHA256: \"Sha256\"\n};\nvar ImpactType = {\n MUTATING: \"Mutating\",\n NON_MUTATING: \"NonMutating\",\n UNDETERMINED: \"Undetermined\"\n};\nvar ExecutionPreview;\n((ExecutionPreview2) => {\n ExecutionPreview2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Automation !== void 0) return visitor.Automation(value.Automation);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(ExecutionPreview || (ExecutionPreview = {}));\nvar ExecutionPreviewStatus = {\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\"\n};\nvar InventoryQueryOperatorType = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n EXISTS: \"Exists\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InvalidAggregatorException = class _InvalidAggregatorException extends SSMServiceException {\n static {\n __name(this, \"InvalidAggregatorException\");\n }\n name = \"InvalidAggregatorException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAggregatorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAggregatorException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInventoryGroupException = class _InvalidInventoryGroupException extends SSMServiceException {\n static {\n __name(this, \"InvalidInventoryGroupException\");\n }\n name = \"InvalidInventoryGroupException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInventoryGroupException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInventoryGroupException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidResultAttributeException = class _InvalidResultAttributeException extends SSMServiceException {\n static {\n __name(this, \"InvalidResultAttributeException\");\n }\n name = \"InvalidResultAttributeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidResultAttributeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidResultAttributeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InventoryAttributeDataType = {\n NUMBER: \"number\",\n STRING: \"string\"\n};\nvar NotificationEvent = {\n ALL: \"All\",\n CANCELLED: \"Cancelled\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar NotificationType = {\n Command: \"Command\",\n Invocation: \"Invocation\"\n};\nvar OpsFilterOperatorType = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n EXISTS: \"Exists\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InvalidKeyId = class _InvalidKeyId extends SSMServiceException {\n static {\n __name(this, \"InvalidKeyId\");\n }\n name = \"InvalidKeyId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeyId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeyId.prototype);\n }\n};\nvar ParameterVersionNotFound = class _ParameterVersionNotFound extends SSMServiceException {\n static {\n __name(this, \"ParameterVersionNotFound\");\n }\n name = \"ParameterVersionNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterVersionNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterVersionNotFound.prototype);\n }\n};\nvar ServiceSettingNotFound = class _ServiceSettingNotFound extends SSMServiceException {\n static {\n __name(this, \"ServiceSettingNotFound\");\n }\n name = \"ServiceSettingNotFound\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceSettingNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceSettingNotFound.prototype);\n this.Message = opts.Message;\n }\n};\nvar ParameterVersionLabelLimitExceeded = class _ParameterVersionLabelLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"ParameterVersionLabelLimitExceeded\");\n }\n name = \"ParameterVersionLabelLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterVersionLabelLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterVersionLabelLimitExceeded.prototype);\n }\n};\nvar AssociationFilterKey = {\n AssociationId: \"AssociationId\",\n AssociationName: \"AssociationName\",\n InstanceId: \"InstanceId\",\n LastExecutedAfter: \"LastExecutedAfter\",\n LastExecutedBefore: \"LastExecutedBefore\",\n Name: \"Name\",\n ResourceGroupName: \"ResourceGroupName\",\n Status: \"AssociationStatusName\"\n};\nvar CommandFilterKey = {\n DOCUMENT_NAME: \"DocumentName\",\n EXECUTION_STAGE: \"ExecutionStage\",\n INVOKED_AFTER: \"InvokedAfter\",\n INVOKED_BEFORE: \"InvokedBefore\",\n STATUS: \"Status\"\n};\nvar CommandPluginStatus = {\n CANCELLED: \"Cancelled\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar CommandStatus = {\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar ComplianceQueryOperatorType = {\n BeginWith: \"BEGIN_WITH\",\n Equal: \"EQUAL\",\n GreaterThan: \"GREATER_THAN\",\n LessThan: \"LESS_THAN\",\n NotEqual: \"NOT_EQUAL\"\n};\nvar ComplianceSeverity = {\n Critical: \"CRITICAL\",\n High: \"HIGH\",\n Informational: \"INFORMATIONAL\",\n Low: \"LOW\",\n Medium: \"MEDIUM\",\n Unspecified: \"UNSPECIFIED\"\n};\nvar ComplianceStatus = {\n Compliant: \"COMPLIANT\",\n NonCompliant: \"NON_COMPLIANT\"\n};\nvar DocumentMetadataEnum = {\n DocumentReviews: \"DocumentReviews\"\n};\nvar DocumentReviewCommentType = {\n Comment: \"Comment\"\n};\nvar DocumentFilterKey = {\n DocumentType: \"DocumentType\",\n Name: \"Name\",\n Owner: \"Owner\",\n PlatformTypes: \"PlatformTypes\"\n};\nvar NodeFilterKey = {\n ACCOUNT_ID: \"AccountId\",\n AGENT_TYPE: \"AgentType\",\n AGENT_VERSION: \"AgentVersion\",\n COMPUTER_NAME: \"ComputerName\",\n INSTANCE_ID: \"InstanceId\",\n INSTANCE_STATUS: \"InstanceStatus\",\n IP_ADDRESS: \"IpAddress\",\n MANAGED_STATUS: \"ManagedStatus\",\n ORGANIZATIONAL_UNIT_ID: \"OrganizationalUnitId\",\n ORGANIZATIONAL_UNIT_PATH: \"OrganizationalUnitPath\",\n PLATFORM_NAME: \"PlatformName\",\n PLATFORM_TYPE: \"PlatformType\",\n PLATFORM_VERSION: \"PlatformVersion\",\n REGION: \"Region\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar NodeFilterOperatorType = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar ManagedStatus = {\n ALL: \"All\",\n MANAGED: \"Managed\",\n UNMANAGED: \"Unmanaged\"\n};\nvar NodeType;\n((NodeType2) => {\n NodeType2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Instance !== void 0) return visitor.Instance(value.Instance);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(NodeType || (NodeType = {}));\nvar UnsupportedOperationException = class _UnsupportedOperationException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedOperationException\");\n }\n name = \"UnsupportedOperationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedOperationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NodeAggregatorType = {\n COUNT: \"Count\"\n};\nvar NodeAttributeName = {\n AGENT_VERSION: \"AgentVersion\",\n PLATFORM_NAME: \"PlatformName\",\n PLATFORM_TYPE: \"PlatformType\",\n PLATFORM_VERSION: \"PlatformVersion\",\n REGION: \"Region\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar NodeTypeName = {\n INSTANCE: \"Instance\"\n};\nvar OpsItemEventFilterKey = {\n OPSITEM_ID: \"OpsItemId\"\n};\nvar OpsItemEventFilterOperator = {\n EQUAL: \"Equal\"\n};\nvar OpsItemRelatedItemsFilterKey = {\n ASSOCIATION_ID: \"AssociationId\",\n RESOURCE_TYPE: \"ResourceType\",\n RESOURCE_URI: \"ResourceUri\"\n};\nvar OpsItemRelatedItemsFilterOperator = {\n EQUAL: \"Equal\"\n};\nvar LastResourceDataSyncStatus = {\n FAILED: \"Failed\",\n INPROGRESS: \"InProgress\",\n SUCCESSFUL: \"Successful\"\n};\nvar DocumentPermissionLimit = class _DocumentPermissionLimit extends SSMServiceException {\n static {\n __name(this, \"DocumentPermissionLimit\");\n }\n name = \"DocumentPermissionLimit\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentPermissionLimit\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentPermissionLimit.prototype);\n this.Message = opts.Message;\n }\n};\nvar ComplianceTypeCountLimitExceededException = class _ComplianceTypeCountLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ComplianceTypeCountLimitExceededException\");\n }\n name = \"ComplianceTypeCountLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ComplianceTypeCountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ComplianceTypeCountLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidItemContentException = class _InvalidItemContentException extends SSMServiceException {\n static {\n __name(this, \"InvalidItemContentException\");\n }\n name = \"InvalidItemContentException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidItemContentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidItemContentException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar ItemSizeLimitExceededException = class _ItemSizeLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ItemSizeLimitExceededException\");\n }\n name = \"ItemSizeLimitExceededException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ItemSizeLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ItemSizeLimitExceededException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar ComplianceUploadType = {\n Complete: \"COMPLETE\",\n Partial: \"PARTIAL\"\n};\nvar TotalSizeLimitExceededException = class _TotalSizeLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"TotalSizeLimitExceededException\");\n }\n name = \"TotalSizeLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TotalSizeLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TotalSizeLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CustomSchemaCountLimitExceededException = class _CustomSchemaCountLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"CustomSchemaCountLimitExceededException\");\n }\n name = \"CustomSchemaCountLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomSchemaCountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomSchemaCountLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInventoryItemContextException = class _InvalidInventoryItemContextException extends SSMServiceException {\n static {\n __name(this, \"InvalidInventoryItemContextException\");\n }\n name = \"InvalidInventoryItemContextException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInventoryItemContextException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInventoryItemContextException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ItemContentMismatchException = class _ItemContentMismatchException extends SSMServiceException {\n static {\n __name(this, \"ItemContentMismatchException\");\n }\n name = \"ItemContentMismatchException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ItemContentMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ItemContentMismatchException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar SubTypeCountLimitExceededException = class _SubTypeCountLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"SubTypeCountLimitExceededException\");\n }\n name = \"SubTypeCountLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SubTypeCountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SubTypeCountLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedInventoryItemContextException = class _UnsupportedInventoryItemContextException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedInventoryItemContextException\");\n }\n name = \"UnsupportedInventoryItemContextException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedInventoryItemContextException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedInventoryItemContextException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar UnsupportedInventorySchemaVersionException = class _UnsupportedInventorySchemaVersionException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedInventorySchemaVersionException\");\n }\n name = \"UnsupportedInventorySchemaVersionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedInventorySchemaVersionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedInventorySchemaVersionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HierarchyLevelLimitExceededException = class _HierarchyLevelLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"HierarchyLevelLimitExceededException\");\n }\n name = \"HierarchyLevelLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HierarchyLevelLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HierarchyLevelLimitExceededException.prototype);\n }\n};\nvar HierarchyTypeMismatchException = class _HierarchyTypeMismatchException extends SSMServiceException {\n static {\n __name(this, \"HierarchyTypeMismatchException\");\n }\n name = \"HierarchyTypeMismatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HierarchyTypeMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HierarchyTypeMismatchException.prototype);\n }\n};\nvar IncompatiblePolicyException = class _IncompatiblePolicyException extends SSMServiceException {\n static {\n __name(this, \"IncompatiblePolicyException\");\n }\n name = \"IncompatiblePolicyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncompatiblePolicyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncompatiblePolicyException.prototype);\n }\n};\nvar InvalidAllowedPatternException = class _InvalidAllowedPatternException extends SSMServiceException {\n static {\n __name(this, \"InvalidAllowedPatternException\");\n }\n name = \"InvalidAllowedPatternException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAllowedPatternException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAllowedPatternException.prototype);\n }\n};\nvar InvalidPolicyAttributeException = class _InvalidPolicyAttributeException extends SSMServiceException {\n static {\n __name(this, \"InvalidPolicyAttributeException\");\n }\n name = \"InvalidPolicyAttributeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPolicyAttributeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPolicyAttributeException.prototype);\n }\n};\nvar InvalidPolicyTypeException = class _InvalidPolicyTypeException extends SSMServiceException {\n static {\n __name(this, \"InvalidPolicyTypeException\");\n }\n name = \"InvalidPolicyTypeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPolicyTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPolicyTypeException.prototype);\n }\n};\nvar ParameterAlreadyExists = class _ParameterAlreadyExists extends SSMServiceException {\n static {\n __name(this, \"ParameterAlreadyExists\");\n }\n name = \"ParameterAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterAlreadyExists.prototype);\n }\n};\nvar ParameterLimitExceeded = class _ParameterLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"ParameterLimitExceeded\");\n }\n name = \"ParameterLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterLimitExceeded.prototype);\n }\n};\nvar ParameterMaxVersionLimitExceeded = class _ParameterMaxVersionLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"ParameterMaxVersionLimitExceeded\");\n }\n name = \"ParameterMaxVersionLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterMaxVersionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterMaxVersionLimitExceeded.prototype);\n }\n};\nvar ParameterPatternMismatchException = class _ParameterPatternMismatchException extends SSMServiceException {\n static {\n __name(this, \"ParameterPatternMismatchException\");\n }\n name = \"ParameterPatternMismatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterPatternMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterPatternMismatchException.prototype);\n }\n};\nvar PoliciesLimitExceededException = class _PoliciesLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"PoliciesLimitExceededException\");\n }\n name = \"PoliciesLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PoliciesLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PoliciesLimitExceededException.prototype);\n }\n};\nvar UnsupportedParameterType = class _UnsupportedParameterType extends SSMServiceException {\n static {\n __name(this, \"UnsupportedParameterType\");\n }\n name = \"UnsupportedParameterType\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedParameterType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedParameterType.prototype);\n }\n};\nvar ResourcePolicyLimitExceededException = class _ResourcePolicyLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyLimitExceededException\");\n }\n name = \"ResourcePolicyLimitExceededException\";\n $fault = \"client\";\n Limit;\n LimitType;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyLimitExceededException.prototype);\n this.Limit = opts.Limit;\n this.LimitType = opts.LimitType;\n this.Message = opts.Message;\n }\n};\nvar MaintenanceWindowTargetFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowTargetFilterSensitiveLog\");\nvar DescribeMaintenanceWindowTargetsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Targets && { Targets: obj.Targets.map((item) => MaintenanceWindowTargetFilterSensitiveLog(item)) }\n}), \"DescribeMaintenanceWindowTargetsResultFilterSensitiveLog\");\nvar MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Values && { Values: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog\");\nvar MaintenanceWindowTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowTaskFilterSensitiveLog\");\nvar DescribeMaintenanceWindowTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Tasks && { Tasks: obj.Tasks.map((item) => MaintenanceWindowTaskFilterSensitiveLog(item)) }\n}), \"DescribeMaintenanceWindowTasksResultFilterSensitiveLog\");\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SessionToken && { SessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar GetAccessTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetAccessTokenResponseFilterSensitiveLog\");\nvar BaselineOverrideFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"BaselineOverrideFilterSensitiveLog\");\nvar GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog\");\nvar GetMaintenanceWindowResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowResultFilterSensitiveLog\");\nvar GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog\");\nvar GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog\");\nvar MaintenanceWindowLambdaParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowLambdaParametersFilterSensitiveLog\");\nvar MaintenanceWindowRunCommandParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowRunCommandParametersFilterSensitiveLog\");\nvar MaintenanceWindowStepFunctionsParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Input && { Input: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowStepFunctionsParametersFilterSensitiveLog\");\nvar MaintenanceWindowTaskInvocationParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.RunCommand && { RunCommand: MaintenanceWindowRunCommandParametersFilterSensitiveLog(obj.RunCommand) },\n ...obj.StepFunctions && {\n StepFunctions: MaintenanceWindowStepFunctionsParametersFilterSensitiveLog(obj.StepFunctions)\n },\n ...obj.Lambda && { Lambda: MaintenanceWindowLambdaParametersFilterSensitiveLog(obj.Lambda) }\n}), \"MaintenanceWindowTaskInvocationParametersFilterSensitiveLog\");\nvar GetMaintenanceWindowTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowTaskResultFilterSensitiveLog\");\nvar ParameterFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Value && { Value: import_smithy_client.SENSITIVE_STRING }\n}), \"ParameterFilterSensitiveLog\");\nvar GetParameterResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameter && { Parameter: ParameterFilterSensitiveLog(obj.Parameter) }\n}), \"GetParameterResultFilterSensitiveLog\");\nvar ParameterHistoryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Value && { Value: import_smithy_client.SENSITIVE_STRING }\n}), \"ParameterHistoryFilterSensitiveLog\");\nvar GetParameterHistoryResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: obj.Parameters.map((item) => ParameterHistoryFilterSensitiveLog(item)) }\n}), \"GetParameterHistoryResultFilterSensitiveLog\");\nvar GetParametersResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: obj.Parameters.map((item) => ParameterFilterSensitiveLog(item)) }\n}), \"GetParametersResultFilterSensitiveLog\");\nvar GetParametersByPathResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: obj.Parameters.map((item) => ParameterFilterSensitiveLog(item)) }\n}), \"GetParametersByPathResultFilterSensitiveLog\");\nvar GetPatchBaselineResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"GetPatchBaselineResultFilterSensitiveLog\");\nvar AssociationVersionInfoFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"AssociationVersionInfoFilterSensitiveLog\");\nvar ListAssociationVersionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationVersions && {\n AssociationVersions: obj.AssociationVersions.map((item) => AssociationVersionInfoFilterSensitiveLog(item))\n }\n}), \"ListAssociationVersionsResultFilterSensitiveLog\");\nvar CommandFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"CommandFilterSensitiveLog\");\nvar ListCommandsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Commands && { Commands: obj.Commands.map((item) => CommandFilterSensitiveLog(item)) }\n}), \"ListCommandsResultFilterSensitiveLog\");\nvar InstanceInfoFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.IpAddress && { IpAddress: import_smithy_client.SENSITIVE_STRING }\n}), \"InstanceInfoFilterSensitiveLog\");\nvar NodeTypeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.Instance !== void 0) return { Instance: InstanceInfoFilterSensitiveLog(obj.Instance) };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"NodeTypeFilterSensitiveLog\");\nvar NodeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.NodeType && { NodeType: NodeTypeFilterSensitiveLog(obj.NodeType) }\n}), \"NodeFilterSensitiveLog\");\nvar ListNodesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Nodes && { Nodes: obj.Nodes.map((item) => NodeFilterSensitiveLog(item)) }\n}), \"ListNodesResultFilterSensitiveLog\");\nvar PutParameterRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Value && { Value: import_smithy_client.SENSITIVE_STRING }\n}), \"PutParameterRequestFilterSensitiveLog\");\n\n// src/models/models_2.ts\n\nvar FeatureNotAvailableException = class _FeatureNotAvailableException extends SSMServiceException {\n static {\n __name(this, \"FeatureNotAvailableException\");\n }\n name = \"FeatureNotAvailableException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"FeatureNotAvailableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _FeatureNotAvailableException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationStepNotFoundException = class _AutomationStepNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationStepNotFoundException\");\n }\n name = \"AutomationStepNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationStepNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationStepNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAutomationSignalException = class _InvalidAutomationSignalException extends SSMServiceException {\n static {\n __name(this, \"InvalidAutomationSignalException\");\n }\n name = \"InvalidAutomationSignalException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAutomationSignalException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAutomationSignalException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SignalType = {\n APPROVE: \"Approve\",\n REJECT: \"Reject\",\n RESUME: \"Resume\",\n REVOKE: \"Revoke\",\n START_STEP: \"StartStep\",\n STOP_STEP: \"StopStep\"\n};\nvar InvalidNotificationConfig = class _InvalidNotificationConfig extends SSMServiceException {\n static {\n __name(this, \"InvalidNotificationConfig\");\n }\n name = \"InvalidNotificationConfig\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidNotificationConfig\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidNotificationConfig.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidOutputFolder = class _InvalidOutputFolder extends SSMServiceException {\n static {\n __name(this, \"InvalidOutputFolder\");\n }\n name = \"InvalidOutputFolder\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOutputFolder\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOutputFolder.prototype);\n }\n};\nvar InvalidRole = class _InvalidRole extends SSMServiceException {\n static {\n __name(this, \"InvalidRole\");\n }\n name = \"InvalidRole\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRole\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRole.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends SSMServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n Message;\n /**\n *

The unique ID of the resource referenced in the failed request.

\n * @public\n */\n ResourceId;\n /**\n *

The resource type of the resource referenced in the failed request.

\n * @public\n */\n ResourceType;\n /**\n *

The quota code recognized by the Amazon Web Services Service Quotas service.

\n * @public\n */\n QuotaCode;\n /**\n *

The code for the Amazon Web Services service that owns the quota.

\n * @public\n */\n ServiceCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n this.Message = opts.Message;\n this.ResourceId = opts.ResourceId;\n this.ResourceType = opts.ResourceType;\n this.QuotaCode = opts.QuotaCode;\n this.ServiceCode = opts.ServiceCode;\n }\n};\nvar InvalidAssociation = class _InvalidAssociation extends SSMServiceException {\n static {\n __name(this, \"InvalidAssociation\");\n }\n name = \"InvalidAssociation\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAssociation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAssociation.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationDefinitionNotFoundException = class _AutomationDefinitionNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationDefinitionNotFoundException\");\n }\n name = \"AutomationDefinitionNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationDefinitionNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationDefinitionNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationDefinitionVersionNotFoundException = class _AutomationDefinitionVersionNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationDefinitionVersionNotFoundException\");\n }\n name = \"AutomationDefinitionVersionNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationDefinitionVersionNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationDefinitionVersionNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationExecutionLimitExceededException = class _AutomationExecutionLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"AutomationExecutionLimitExceededException\");\n }\n name = \"AutomationExecutionLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationExecutionLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationExecutionLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAutomationExecutionParametersException = class _InvalidAutomationExecutionParametersException extends SSMServiceException {\n static {\n __name(this, \"InvalidAutomationExecutionParametersException\");\n }\n name = \"InvalidAutomationExecutionParametersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAutomationExecutionParametersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAutomationExecutionParametersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationDefinitionNotApprovedException = class _AutomationDefinitionNotApprovedException extends SSMServiceException {\n static {\n __name(this, \"AutomationDefinitionNotApprovedException\");\n }\n name = \"AutomationDefinitionNotApprovedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationDefinitionNotApprovedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationDefinitionNotApprovedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ExecutionInputs;\n((ExecutionInputs3) => {\n ExecutionInputs3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Automation !== void 0) return visitor.Automation(value.Automation);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(ExecutionInputs || (ExecutionInputs = {}));\nvar TargetNotConnected = class _TargetNotConnected extends SSMServiceException {\n static {\n __name(this, \"TargetNotConnected\");\n }\n name = \"TargetNotConnected\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetNotConnected\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetNotConnected.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAutomationStatusUpdateException = class _InvalidAutomationStatusUpdateException extends SSMServiceException {\n static {\n __name(this, \"InvalidAutomationStatusUpdateException\");\n }\n name = \"InvalidAutomationStatusUpdateException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAutomationStatusUpdateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAutomationStatusUpdateException.prototype);\n this.Message = opts.Message;\n }\n};\nvar StopType = {\n CANCEL: \"Cancel\",\n COMPLETE: \"Complete\"\n};\nvar AssociationVersionLimitExceeded = class _AssociationVersionLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"AssociationVersionLimitExceeded\");\n }\n name = \"AssociationVersionLimitExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationVersionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationVersionLimitExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidUpdate = class _InvalidUpdate extends SSMServiceException {\n static {\n __name(this, \"InvalidUpdate\");\n }\n name = \"InvalidUpdate\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidUpdate\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidUpdate.prototype);\n this.Message = opts.Message;\n }\n};\nvar StatusUnchanged = class _StatusUnchanged extends SSMServiceException {\n static {\n __name(this, \"StatusUnchanged\");\n }\n name = \"StatusUnchanged\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StatusUnchanged\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StatusUnchanged.prototype);\n }\n};\nvar DocumentVersionLimitExceeded = class _DocumentVersionLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"DocumentVersionLimitExceeded\");\n }\n name = \"DocumentVersionLimitExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentVersionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentVersionLimitExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar DuplicateDocumentContent = class _DuplicateDocumentContent extends SSMServiceException {\n static {\n __name(this, \"DuplicateDocumentContent\");\n }\n name = \"DuplicateDocumentContent\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateDocumentContent\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateDocumentContent.prototype);\n this.Message = opts.Message;\n }\n};\nvar DuplicateDocumentVersionName = class _DuplicateDocumentVersionName extends SSMServiceException {\n static {\n __name(this, \"DuplicateDocumentVersionName\");\n }\n name = \"DuplicateDocumentVersionName\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateDocumentVersionName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateDocumentVersionName.prototype);\n this.Message = opts.Message;\n }\n};\nvar DocumentReviewAction = {\n Approve: \"Approve\",\n Reject: \"Reject\",\n SendForReview: \"SendForReview\",\n UpdateReview: \"UpdateReview\"\n};\nvar OpsMetadataKeyLimitExceededException = class _OpsMetadataKeyLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataKeyLimitExceededException\");\n }\n name = \"OpsMetadataKeyLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataKeyLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataKeyLimitExceededException.prototype);\n }\n};\nvar ResourceDataSyncConflictException = class _ResourceDataSyncConflictException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncConflictException\");\n }\n name = \"ResourceDataSyncConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog\");\nvar RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog\");\nvar SendCommandRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"SendCommandRequestFilterSensitiveLog\");\nvar SendCommandResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Command && { Command: CommandFilterSensitiveLog(obj.Command) }\n}), \"SendCommandResultFilterSensitiveLog\");\nvar UpdateAssociationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateAssociationRequestFilterSensitiveLog\");\nvar UpdateAssociationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"UpdateAssociationResultFilterSensitiveLog\");\nvar UpdateAssociationStatusResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"UpdateAssociationStatusResultFilterSensitiveLog\");\nvar UpdateMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowRequestFilterSensitiveLog\");\nvar UpdateMaintenanceWindowResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowResultFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTargetRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTargetRequestFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTargetResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTargetResultFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTaskRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTaskRequestFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTaskResultFilterSensitiveLog\");\nvar UpdatePatchBaselineRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"UpdatePatchBaselineRequestFilterSensitiveLog\");\nvar UpdatePatchBaselineResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"UpdatePatchBaselineResultFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_AddTagsToResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"AddTagsToResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddTagsToResourceCommand\");\nvar se_AssociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"AssociateOpsItemRelatedItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateOpsItemRelatedItemCommand\");\nvar se_CancelCommandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelCommand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelCommandCommand\");\nvar se_CancelMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelMaintenanceWindowExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelMaintenanceWindowExecutionCommand\");\nvar se_CreateActivationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateActivation\");\n let body;\n body = JSON.stringify(se_CreateActivationRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateActivationCommand\");\nvar se_CreateAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAssociationCommand\");\nvar se_CreateAssociationBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateAssociationBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAssociationBatchCommand\");\nvar se_CreateDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDocumentCommand\");\nvar se_CreateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateMaintenanceWindow\");\n let body;\n body = JSON.stringify(se_CreateMaintenanceWindowRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateMaintenanceWindowCommand\");\nvar se_CreateOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateOpsItem\");\n let body;\n body = JSON.stringify(se_CreateOpsItemRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateOpsItemCommand\");\nvar se_CreateOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateOpsMetadataCommand\");\nvar se_CreatePatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreatePatchBaseline\");\n let body;\n body = JSON.stringify(se_CreatePatchBaselineRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePatchBaselineCommand\");\nvar se_CreateResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateResourceDataSyncCommand\");\nvar se_DeleteActivationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteActivation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteActivationCommand\");\nvar se_DeleteAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAssociationCommand\");\nvar se_DeleteDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDocumentCommand\");\nvar se_DeleteInventoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteInventory\");\n let body;\n body = JSON.stringify(se_DeleteInventoryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInventoryCommand\");\nvar se_DeleteMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteMaintenanceWindowCommand\");\nvar se_DeleteOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteOpsItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteOpsItemCommand\");\nvar se_DeleteOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteOpsMetadataCommand\");\nvar se_DeleteParameterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteParameter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteParameterCommand\");\nvar se_DeleteParametersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteParameters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteParametersCommand\");\nvar se_DeletePatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeletePatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePatchBaselineCommand\");\nvar se_DeleteResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourceDataSyncCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeregisterManagedInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterManagedInstance\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterManagedInstanceCommand\");\nvar se_DeregisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterPatchBaselineForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterPatchBaselineForPatchGroupCommand\");\nvar se_DeregisterTargetFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterTargetFromMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTargetFromMaintenanceWindowCommand\");\nvar se_DeregisterTaskFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterTaskFromMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTaskFromMaintenanceWindowCommand\");\nvar se_DescribeActivationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeActivations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeActivationsCommand\");\nvar se_DescribeAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAssociationCommand\");\nvar se_DescribeAssociationExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAssociationExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAssociationExecutionsCommand\");\nvar se_DescribeAssociationExecutionTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAssociationExecutionTargets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAssociationExecutionTargetsCommand\");\nvar se_DescribeAutomationExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAutomationExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAutomationExecutionsCommand\");\nvar se_DescribeAutomationStepExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAutomationStepExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAutomationStepExecutionsCommand\");\nvar se_DescribeAvailablePatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAvailablePatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAvailablePatchesCommand\");\nvar se_DescribeDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDocumentCommand\");\nvar se_DescribeDocumentPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDocumentPermission\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDocumentPermissionCommand\");\nvar se_DescribeEffectiveInstanceAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeEffectiveInstanceAssociations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeEffectiveInstanceAssociationsCommand\");\nvar se_DescribeEffectivePatchesForPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeEffectivePatchesForPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeEffectivePatchesForPatchBaselineCommand\");\nvar se_DescribeInstanceAssociationsStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstanceAssociationsStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceAssociationsStatusCommand\");\nvar se_DescribeInstanceInformationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstanceInformation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceInformationCommand\");\nvar se_DescribeInstancePatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstancePatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePatchesCommand\");\nvar se_DescribeInstancePatchStatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstancePatchStates\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePatchStatesCommand\");\nvar se_DescribeInstancePatchStatesForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstancePatchStatesForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePatchStatesForPatchGroupCommand\");\nvar se_DescribeInstancePropertiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstanceProperties\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePropertiesCommand\");\nvar se_DescribeInventoryDeletionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInventoryDeletions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInventoryDeletionsCommand\");\nvar se_DescribeMaintenanceWindowExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowExecutionsCommand\");\nvar se_DescribeMaintenanceWindowExecutionTaskInvocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowExecutionTaskInvocations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowExecutionTaskInvocationsCommand\");\nvar se_DescribeMaintenanceWindowExecutionTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowExecutionTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowExecutionTasksCommand\");\nvar se_DescribeMaintenanceWindowsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindows\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowsCommand\");\nvar se_DescribeMaintenanceWindowScheduleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowSchedule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowScheduleCommand\");\nvar se_DescribeMaintenanceWindowsForTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowsForTarget\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowsForTargetCommand\");\nvar se_DescribeMaintenanceWindowTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowTargets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowTargetsCommand\");\nvar se_DescribeMaintenanceWindowTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowTasksCommand\");\nvar se_DescribeOpsItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeOpsItems\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeOpsItemsCommand\");\nvar se_DescribeParametersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeParameters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeParametersCommand\");\nvar se_DescribePatchBaselinesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchBaselines\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchBaselinesCommand\");\nvar se_DescribePatchGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchGroupsCommand\");\nvar se_DescribePatchGroupStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchGroupState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchGroupStateCommand\");\nvar se_DescribePatchPropertiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchProperties\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchPropertiesCommand\");\nvar se_DescribeSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeSessions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSessionsCommand\");\nvar se_DisassociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisassociateOpsItemRelatedItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateOpsItemRelatedItemCommand\");\nvar se_GetAccessTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAccessToken\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccessTokenCommand\");\nvar se_GetAutomationExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAutomationExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAutomationExecutionCommand\");\nvar se_GetCalendarStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetCalendarState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCalendarStateCommand\");\nvar se_GetCommandInvocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetCommandInvocation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCommandInvocationCommand\");\nvar se_GetConnectionStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetConnectionStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetConnectionStatusCommand\");\nvar se_GetDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDefaultPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDefaultPatchBaselineCommand\");\nvar se_GetDeployablePatchSnapshotForInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeployablePatchSnapshotForInstance\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeployablePatchSnapshotForInstanceCommand\");\nvar se_GetDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDocumentCommand\");\nvar se_GetExecutionPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetExecutionPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetExecutionPreviewCommand\");\nvar se_GetInventoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetInventory\");\n let body;\n body = JSON.stringify(se_GetInventoryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInventoryCommand\");\nvar se_GetInventorySchemaCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetInventorySchema\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInventorySchemaCommand\");\nvar se_GetMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowCommand\");\nvar se_GetMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowExecutionCommand\");\nvar se_GetMaintenanceWindowExecutionTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowExecutionTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowExecutionTaskCommand\");\nvar se_GetMaintenanceWindowExecutionTaskInvocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowExecutionTaskInvocation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowExecutionTaskInvocationCommand\");\nvar se_GetMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowTaskCommand\");\nvar se_GetOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpsItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpsItemCommand\");\nvar se_GetOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpsMetadataCommand\");\nvar se_GetOpsSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpsSummary\");\n let body;\n body = JSON.stringify(se_GetOpsSummaryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpsSummaryCommand\");\nvar se_GetParameterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParameter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParameterCommand\");\nvar se_GetParameterHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParameterHistory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParameterHistoryCommand\");\nvar se_GetParametersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParameters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParametersCommand\");\nvar se_GetParametersByPathCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParametersByPath\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParametersByPathCommand\");\nvar se_GetPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPatchBaselineCommand\");\nvar se_GetPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPatchBaselineForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPatchBaselineForPatchGroupCommand\");\nvar se_GetResourcePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourcePolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePoliciesCommand\");\nvar se_GetServiceSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetServiceSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceSettingCommand\");\nvar se_LabelParameterVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"LabelParameterVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_LabelParameterVersionCommand\");\nvar se_ListAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAssociations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAssociationsCommand\");\nvar se_ListAssociationVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAssociationVersions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAssociationVersionsCommand\");\nvar se_ListCommandInvocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCommandInvocations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCommandInvocationsCommand\");\nvar se_ListCommandsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCommands\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCommandsCommand\");\nvar se_ListComplianceItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListComplianceItems\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListComplianceItemsCommand\");\nvar se_ListComplianceSummariesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListComplianceSummaries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListComplianceSummariesCommand\");\nvar se_ListDocumentMetadataHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListDocumentMetadataHistory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListDocumentMetadataHistoryCommand\");\nvar se_ListDocumentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListDocuments\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListDocumentsCommand\");\nvar se_ListDocumentVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListDocumentVersions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListDocumentVersionsCommand\");\nvar se_ListInventoryEntriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListInventoryEntries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInventoryEntriesCommand\");\nvar se_ListNodesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListNodes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListNodesCommand\");\nvar se_ListNodesSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListNodesSummary\");\n let body;\n body = JSON.stringify(se_ListNodesSummaryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListNodesSummaryCommand\");\nvar se_ListOpsItemEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListOpsItemEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpsItemEventsCommand\");\nvar se_ListOpsItemRelatedItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListOpsItemRelatedItems\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpsItemRelatedItemsCommand\");\nvar se_ListOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpsMetadataCommand\");\nvar se_ListResourceComplianceSummariesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceComplianceSummaries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceComplianceSummariesCommand\");\nvar se_ListResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceDataSyncCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_ModifyDocumentPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ModifyDocumentPermission\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyDocumentPermissionCommand\");\nvar se_PutComplianceItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutComplianceItems\");\n let body;\n body = JSON.stringify(se_PutComplianceItemsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutComplianceItemsCommand\");\nvar se_PutInventoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutInventory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutInventoryCommand\");\nvar se_PutParameterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutParameter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutParameterCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_RegisterDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterDefaultPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterDefaultPatchBaselineCommand\");\nvar se_RegisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterPatchBaselineForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterPatchBaselineForPatchGroupCommand\");\nvar se_RegisterTargetWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterTargetWithMaintenanceWindow\");\n let body;\n body = JSON.stringify(se_RegisterTargetWithMaintenanceWindowRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTargetWithMaintenanceWindowCommand\");\nvar se_RegisterTaskWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterTaskWithMaintenanceWindow\");\n let body;\n body = JSON.stringify(se_RegisterTaskWithMaintenanceWindowRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTaskWithMaintenanceWindowCommand\");\nvar se_RemoveTagsFromResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RemoveTagsFromResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveTagsFromResourceCommand\");\nvar se_ResetServiceSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ResetServiceSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetServiceSettingCommand\");\nvar se_ResumeSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ResumeSession\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResumeSessionCommand\");\nvar se_SendAutomationSignalCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendAutomationSignal\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendAutomationSignalCommand\");\nvar se_SendCommandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendCommand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendCommandCommand\");\nvar se_StartAccessRequestCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartAccessRequest\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartAccessRequestCommand\");\nvar se_StartAssociationsOnceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartAssociationsOnce\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartAssociationsOnceCommand\");\nvar se_StartAutomationExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartAutomationExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartAutomationExecutionCommand\");\nvar se_StartChangeRequestExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartChangeRequestExecution\");\n let body;\n body = JSON.stringify(se_StartChangeRequestExecutionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartChangeRequestExecutionCommand\");\nvar se_StartExecutionPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartExecutionPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartExecutionPreviewCommand\");\nvar se_StartSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSession\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartSessionCommand\");\nvar se_StopAutomationExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopAutomationExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopAutomationExecutionCommand\");\nvar se_TerminateSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TerminateSession\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TerminateSessionCommand\");\nvar se_UnlabelParameterVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UnlabelParameterVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlabelParameterVersionCommand\");\nvar se_UpdateAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAssociationCommand\");\nvar se_UpdateAssociationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAssociationStatus\");\n let body;\n body = JSON.stringify(se_UpdateAssociationStatusRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAssociationStatusCommand\");\nvar se_UpdateDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDocumentCommand\");\nvar se_UpdateDocumentDefaultVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDocumentDefaultVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDocumentDefaultVersionCommand\");\nvar se_UpdateDocumentMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDocumentMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDocumentMetadataCommand\");\nvar se_UpdateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMaintenanceWindowCommand\");\nvar se_UpdateMaintenanceWindowTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMaintenanceWindowTarget\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMaintenanceWindowTargetCommand\");\nvar se_UpdateMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMaintenanceWindowTask\");\n let body;\n body = JSON.stringify(se_UpdateMaintenanceWindowTaskRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMaintenanceWindowTaskCommand\");\nvar se_UpdateManagedInstanceRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateManagedInstanceRole\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateManagedInstanceRoleCommand\");\nvar se_UpdateOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateOpsItem\");\n let body;\n body = JSON.stringify(se_UpdateOpsItemRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateOpsItemCommand\");\nvar se_UpdateOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateOpsMetadataCommand\");\nvar se_UpdatePatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdatePatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdatePatchBaselineCommand\");\nvar se_UpdateResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateResourceDataSyncCommand\");\nvar se_UpdateServiceSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateServiceSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServiceSettingCommand\");\nvar de_AddTagsToResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddTagsToResourceCommand\");\nvar de_AssociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateOpsItemRelatedItemCommand\");\nvar de_CancelCommandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelCommandCommand\");\nvar de_CancelMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelMaintenanceWindowExecutionCommand\");\nvar de_CreateActivationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateActivationCommand\");\nvar de_CreateAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateAssociationCommand\");\nvar de_CreateAssociationBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateAssociationBatchResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateAssociationBatchCommand\");\nvar de_CreateDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDocumentCommand\");\nvar de_CreateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateMaintenanceWindowCommand\");\nvar de_CreateOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateOpsItemCommand\");\nvar de_CreateOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateOpsMetadataCommand\");\nvar de_CreatePatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePatchBaselineCommand\");\nvar de_CreateResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateResourceDataSyncCommand\");\nvar de_DeleteActivationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteActivationCommand\");\nvar de_DeleteAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteAssociationCommand\");\nvar de_DeleteDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteDocumentCommand\");\nvar de_DeleteInventoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteInventoryCommand\");\nvar de_DeleteMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteMaintenanceWindowCommand\");\nvar de_DeleteOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteOpsItemCommand\");\nvar de_DeleteOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteOpsMetadataCommand\");\nvar de_DeleteParameterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteParameterCommand\");\nvar de_DeleteParametersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteParametersCommand\");\nvar de_DeletePatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeletePatchBaselineCommand\");\nvar de_DeleteResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourceDataSyncCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeregisterManagedInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterManagedInstanceCommand\");\nvar de_DeregisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterPatchBaselineForPatchGroupCommand\");\nvar de_DeregisterTargetFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTargetFromMaintenanceWindowCommand\");\nvar de_DeregisterTaskFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTaskFromMaintenanceWindowCommand\");\nvar de_DescribeActivationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeActivationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeActivationsCommand\");\nvar de_DescribeAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAssociationCommand\");\nvar de_DescribeAssociationExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAssociationExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAssociationExecutionsCommand\");\nvar de_DescribeAssociationExecutionTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAssociationExecutionTargetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAssociationExecutionTargetsCommand\");\nvar de_DescribeAutomationExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAutomationExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAutomationExecutionsCommand\");\nvar de_DescribeAutomationStepExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAutomationStepExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAutomationStepExecutionsCommand\");\nvar de_DescribeAvailablePatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAvailablePatchesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAvailablePatchesCommand\");\nvar de_DescribeDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDocumentCommand\");\nvar de_DescribeDocumentPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDocumentPermissionCommand\");\nvar de_DescribeEffectiveInstanceAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeEffectiveInstanceAssociationsCommand\");\nvar de_DescribeEffectivePatchesForPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeEffectivePatchesForPatchBaselineResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeEffectivePatchesForPatchBaselineCommand\");\nvar de_DescribeInstanceAssociationsStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceAssociationsStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceAssociationsStatusCommand\");\nvar de_DescribeInstanceInformationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceInformationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceInformationCommand\");\nvar de_DescribeInstancePatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePatchesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePatchesCommand\");\nvar de_DescribeInstancePatchStatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePatchStatesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePatchStatesCommand\");\nvar de_DescribeInstancePatchStatesForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePatchStatesForPatchGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePatchStatesForPatchGroupCommand\");\nvar de_DescribeInstancePropertiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePropertiesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePropertiesCommand\");\nvar de_DescribeInventoryDeletionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInventoryDeletionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInventoryDeletionsCommand\");\nvar de_DescribeMaintenanceWindowExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMaintenanceWindowExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowExecutionsCommand\");\nvar de_DescribeMaintenanceWindowExecutionTaskInvocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMaintenanceWindowExecutionTaskInvocationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowExecutionTaskInvocationsCommand\");\nvar de_DescribeMaintenanceWindowExecutionTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMaintenanceWindowExecutionTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowExecutionTasksCommand\");\nvar de_DescribeMaintenanceWindowsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowsCommand\");\nvar de_DescribeMaintenanceWindowScheduleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowScheduleCommand\");\nvar de_DescribeMaintenanceWindowsForTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowsForTargetCommand\");\nvar de_DescribeMaintenanceWindowTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowTargetsCommand\");\nvar de_DescribeMaintenanceWindowTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowTasksCommand\");\nvar de_DescribeOpsItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeOpsItemsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeOpsItemsCommand\");\nvar de_DescribeParametersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeParametersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeParametersCommand\");\nvar de_DescribePatchBaselinesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchBaselinesCommand\");\nvar de_DescribePatchGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchGroupsCommand\");\nvar de_DescribePatchGroupStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchGroupStateCommand\");\nvar de_DescribePatchPropertiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchPropertiesCommand\");\nvar de_DescribeSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSessionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSessionsCommand\");\nvar de_DisassociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateOpsItemRelatedItemCommand\");\nvar de_GetAccessTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetAccessTokenResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccessTokenCommand\");\nvar de_GetAutomationExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetAutomationExecutionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAutomationExecutionCommand\");\nvar de_GetCalendarStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCalendarStateCommand\");\nvar de_GetCommandInvocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCommandInvocationCommand\");\nvar de_GetConnectionStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetConnectionStatusCommand\");\nvar de_GetDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDefaultPatchBaselineCommand\");\nvar de_GetDeployablePatchSnapshotForInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeployablePatchSnapshotForInstanceCommand\");\nvar de_GetDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDocumentCommand\");\nvar de_GetExecutionPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetExecutionPreviewResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetExecutionPreviewCommand\");\nvar de_GetInventoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInventoryCommand\");\nvar de_GetInventorySchemaCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInventorySchemaCommand\");\nvar de_GetMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowCommand\");\nvar de_GetMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowExecutionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowExecutionCommand\");\nvar de_GetMaintenanceWindowExecutionTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowExecutionTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowExecutionTaskCommand\");\nvar de_GetMaintenanceWindowExecutionTaskInvocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowExecutionTaskInvocationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowExecutionTaskInvocationCommand\");\nvar de_GetMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowTaskCommand\");\nvar de_GetOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetOpsItemResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpsItemCommand\");\nvar de_GetOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpsMetadataCommand\");\nvar de_GetOpsSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpsSummaryCommand\");\nvar de_GetParameterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParameterResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParameterCommand\");\nvar de_GetParameterHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParameterHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParameterHistoryCommand\");\nvar de_GetParametersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParametersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParametersCommand\");\nvar de_GetParametersByPathCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParametersByPathResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParametersByPathCommand\");\nvar de_GetPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetPatchBaselineResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPatchBaselineCommand\");\nvar de_GetPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPatchBaselineForPatchGroupCommand\");\nvar de_GetResourcePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePoliciesCommand\");\nvar de_GetServiceSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceSettingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceSettingCommand\");\nvar de_LabelParameterVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_LabelParameterVersionCommand\");\nvar de_ListAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAssociationsCommand\");\nvar de_ListAssociationVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListAssociationVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAssociationVersionsCommand\");\nvar de_ListCommandInvocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListCommandInvocationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCommandInvocationsCommand\");\nvar de_ListCommandsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListCommandsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCommandsCommand\");\nvar de_ListComplianceItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListComplianceItemsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListComplianceItemsCommand\");\nvar de_ListComplianceSummariesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListComplianceSummariesCommand\");\nvar de_ListDocumentMetadataHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListDocumentMetadataHistoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListDocumentMetadataHistoryCommand\");\nvar de_ListDocumentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListDocumentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListDocumentsCommand\");\nvar de_ListDocumentVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListDocumentVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListDocumentVersionsCommand\");\nvar de_ListInventoryEntriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInventoryEntriesCommand\");\nvar de_ListNodesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListNodesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListNodesCommand\");\nvar de_ListNodesSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListNodesSummaryCommand\");\nvar de_ListOpsItemEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListOpsItemEventsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpsItemEventsCommand\");\nvar de_ListOpsItemRelatedItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListOpsItemRelatedItemsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpsItemRelatedItemsCommand\");\nvar de_ListOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListOpsMetadataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpsMetadataCommand\");\nvar de_ListResourceComplianceSummariesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListResourceComplianceSummariesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceComplianceSummariesCommand\");\nvar de_ListResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListResourceDataSyncResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceDataSyncCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ModifyDocumentPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyDocumentPermissionCommand\");\nvar de_PutComplianceItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutComplianceItemsCommand\");\nvar de_PutInventoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutInventoryCommand\");\nvar de_PutParameterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutParameterCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_RegisterDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterDefaultPatchBaselineCommand\");\nvar de_RegisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterPatchBaselineForPatchGroupCommand\");\nvar de_RegisterTargetWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTargetWithMaintenanceWindowCommand\");\nvar de_RegisterTaskWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTaskWithMaintenanceWindowCommand\");\nvar de_RemoveTagsFromResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveTagsFromResourceCommand\");\nvar de_ResetServiceSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ResetServiceSettingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetServiceSettingCommand\");\nvar de_ResumeSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResumeSessionCommand\");\nvar de_SendAutomationSignalCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendAutomationSignalCommand\");\nvar de_SendCommandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_SendCommandResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendCommandCommand\");\nvar de_StartAccessRequestCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartAccessRequestCommand\");\nvar de_StartAssociationsOnceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartAssociationsOnceCommand\");\nvar de_StartAutomationExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartAutomationExecutionCommand\");\nvar de_StartChangeRequestExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartChangeRequestExecutionCommand\");\nvar de_StartExecutionPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartExecutionPreviewCommand\");\nvar de_StartSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSessionCommand\");\nvar de_StopAutomationExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopAutomationExecutionCommand\");\nvar de_TerminateSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TerminateSessionCommand\");\nvar de_UnlabelParameterVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnlabelParameterVersionCommand\");\nvar de_UpdateAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateAssociationCommand\");\nvar de_UpdateAssociationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateAssociationStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateAssociationStatusCommand\");\nvar de_UpdateDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDocumentCommand\");\nvar de_UpdateDocumentDefaultVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDocumentDefaultVersionCommand\");\nvar de_UpdateDocumentMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDocumentMetadataCommand\");\nvar de_UpdateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMaintenanceWindowCommand\");\nvar de_UpdateMaintenanceWindowTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMaintenanceWindowTargetCommand\");\nvar de_UpdateMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateMaintenanceWindowTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMaintenanceWindowTaskCommand\");\nvar de_UpdateManagedInstanceRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateManagedInstanceRoleCommand\");\nvar de_UpdateOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateOpsItemCommand\");\nvar de_UpdateOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateOpsMetadataCommand\");\nvar de_UpdatePatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdatePatchBaselineResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdatePatchBaselineCommand\");\nvar de_UpdateResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateResourceDataSyncCommand\");\nvar de_UpdateServiceSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateServiceSettingCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerError\":\n case \"com.amazonaws.ssm#InternalServerError\":\n throw await de_InternalServerErrorRes(parsedOutput, context);\n case \"InvalidResourceId\":\n case \"com.amazonaws.ssm#InvalidResourceId\":\n throw await de_InvalidResourceIdRes(parsedOutput, context);\n case \"InvalidResourceType\":\n case \"com.amazonaws.ssm#InvalidResourceType\":\n throw await de_InvalidResourceTypeRes(parsedOutput, context);\n case \"TooManyTagsError\":\n case \"com.amazonaws.ssm#TooManyTagsError\":\n throw await de_TooManyTagsErrorRes(parsedOutput, context);\n case \"TooManyUpdates\":\n case \"com.amazonaws.ssm#TooManyUpdates\":\n throw await de_TooManyUpdatesRes(parsedOutput, context);\n case \"OpsItemConflictException\":\n case \"com.amazonaws.ssm#OpsItemConflictException\":\n throw await de_OpsItemConflictExceptionRes(parsedOutput, context);\n case \"OpsItemInvalidParameterException\":\n case \"com.amazonaws.ssm#OpsItemInvalidParameterException\":\n throw await de_OpsItemInvalidParameterExceptionRes(parsedOutput, context);\n case \"OpsItemLimitExceededException\":\n case \"com.amazonaws.ssm#OpsItemLimitExceededException\":\n throw await de_OpsItemLimitExceededExceptionRes(parsedOutput, context);\n case \"OpsItemNotFoundException\":\n case \"com.amazonaws.ssm#OpsItemNotFoundException\":\n throw await de_OpsItemNotFoundExceptionRes(parsedOutput, context);\n case \"OpsItemRelatedItemAlreadyExistsException\":\n case \"com.amazonaws.ssm#OpsItemRelatedItemAlreadyExistsException\":\n throw await de_OpsItemRelatedItemAlreadyExistsExceptionRes(parsedOutput, context);\n case \"DuplicateInstanceId\":\n case \"com.amazonaws.ssm#DuplicateInstanceId\":\n throw await de_DuplicateInstanceIdRes(parsedOutput, context);\n case \"InvalidCommandId\":\n case \"com.amazonaws.ssm#InvalidCommandId\":\n throw await de_InvalidCommandIdRes(parsedOutput, context);\n case \"InvalidInstanceId\":\n case \"com.amazonaws.ssm#InvalidInstanceId\":\n throw await de_InvalidInstanceIdRes(parsedOutput, context);\n case \"DoesNotExistException\":\n case \"com.amazonaws.ssm#DoesNotExistException\":\n throw await de_DoesNotExistExceptionRes(parsedOutput, context);\n case \"InvalidParameters\":\n case \"com.amazonaws.ssm#InvalidParameters\":\n throw await de_InvalidParametersRes(parsedOutput, context);\n case \"AssociationAlreadyExists\":\n case \"com.amazonaws.ssm#AssociationAlreadyExists\":\n throw await de_AssociationAlreadyExistsRes(parsedOutput, context);\n case \"AssociationLimitExceeded\":\n case \"com.amazonaws.ssm#AssociationLimitExceeded\":\n throw await de_AssociationLimitExceededRes(parsedOutput, context);\n case \"InvalidDocument\":\n case \"com.amazonaws.ssm#InvalidDocument\":\n throw await de_InvalidDocumentRes(parsedOutput, context);\n case \"InvalidDocumentVersion\":\n case \"com.amazonaws.ssm#InvalidDocumentVersion\":\n throw await de_InvalidDocumentVersionRes(parsedOutput, context);\n case \"InvalidOutputLocation\":\n case \"com.amazonaws.ssm#InvalidOutputLocation\":\n throw await de_InvalidOutputLocationRes(parsedOutput, context);\n case \"InvalidSchedule\":\n case \"com.amazonaws.ssm#InvalidSchedule\":\n throw await de_InvalidScheduleRes(parsedOutput, context);\n case \"InvalidTag\":\n case \"com.amazonaws.ssm#InvalidTag\":\n throw await de_InvalidTagRes(parsedOutput, context);\n case \"InvalidTarget\":\n case \"com.amazonaws.ssm#InvalidTarget\":\n throw await de_InvalidTargetRes(parsedOutput, context);\n case \"InvalidTargetMaps\":\n case \"com.amazonaws.ssm#InvalidTargetMaps\":\n throw await de_InvalidTargetMapsRes(parsedOutput, context);\n case \"UnsupportedPlatformType\":\n case \"com.amazonaws.ssm#UnsupportedPlatformType\":\n throw await de_UnsupportedPlatformTypeRes(parsedOutput, context);\n case \"DocumentAlreadyExists\":\n case \"com.amazonaws.ssm#DocumentAlreadyExists\":\n throw await de_DocumentAlreadyExistsRes(parsedOutput, context);\n case \"DocumentLimitExceeded\":\n case \"com.amazonaws.ssm#DocumentLimitExceeded\":\n throw await de_DocumentLimitExceededRes(parsedOutput, context);\n case \"InvalidDocumentContent\":\n case \"com.amazonaws.ssm#InvalidDocumentContent\":\n throw await de_InvalidDocumentContentRes(parsedOutput, context);\n case \"InvalidDocumentSchemaVersion\":\n case \"com.amazonaws.ssm#InvalidDocumentSchemaVersion\":\n throw await de_InvalidDocumentSchemaVersionRes(parsedOutput, context);\n case \"MaxDocumentSizeExceeded\":\n case \"com.amazonaws.ssm#MaxDocumentSizeExceeded\":\n throw await de_MaxDocumentSizeExceededRes(parsedOutput, context);\n case \"IdempotentParameterMismatch\":\n case \"com.amazonaws.ssm#IdempotentParameterMismatch\":\n throw await de_IdempotentParameterMismatchRes(parsedOutput, context);\n case \"ResourceLimitExceededException\":\n case \"com.amazonaws.ssm#ResourceLimitExceededException\":\n throw await de_ResourceLimitExceededExceptionRes(parsedOutput, context);\n case \"OpsItemAccessDeniedException\":\n case \"com.amazonaws.ssm#OpsItemAccessDeniedException\":\n throw await de_OpsItemAccessDeniedExceptionRes(parsedOutput, context);\n case \"OpsItemAlreadyExistsException\":\n case \"com.amazonaws.ssm#OpsItemAlreadyExistsException\":\n throw await de_OpsItemAlreadyExistsExceptionRes(parsedOutput, context);\n case \"OpsMetadataAlreadyExistsException\":\n case \"com.amazonaws.ssm#OpsMetadataAlreadyExistsException\":\n throw await de_OpsMetadataAlreadyExistsExceptionRes(parsedOutput, context);\n case \"OpsMetadataInvalidArgumentException\":\n case \"com.amazonaws.ssm#OpsMetadataInvalidArgumentException\":\n throw await de_OpsMetadataInvalidArgumentExceptionRes(parsedOutput, context);\n case \"OpsMetadataLimitExceededException\":\n case \"com.amazonaws.ssm#OpsMetadataLimitExceededException\":\n throw await de_OpsMetadataLimitExceededExceptionRes(parsedOutput, context);\n case \"OpsMetadataTooManyUpdatesException\":\n case \"com.amazonaws.ssm#OpsMetadataTooManyUpdatesException\":\n throw await de_OpsMetadataTooManyUpdatesExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncAlreadyExistsException\":\n case \"com.amazonaws.ssm#ResourceDataSyncAlreadyExistsException\":\n throw await de_ResourceDataSyncAlreadyExistsExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncCountExceededException\":\n case \"com.amazonaws.ssm#ResourceDataSyncCountExceededException\":\n throw await de_ResourceDataSyncCountExceededExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncInvalidConfigurationException\":\n case \"com.amazonaws.ssm#ResourceDataSyncInvalidConfigurationException\":\n throw await de_ResourceDataSyncInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"InvalidActivation\":\n case \"com.amazonaws.ssm#InvalidActivation\":\n throw await de_InvalidActivationRes(parsedOutput, context);\n case \"InvalidActivationId\":\n case \"com.amazonaws.ssm#InvalidActivationId\":\n throw await de_InvalidActivationIdRes(parsedOutput, context);\n case \"AssociationDoesNotExist\":\n case \"com.amazonaws.ssm#AssociationDoesNotExist\":\n throw await de_AssociationDoesNotExistRes(parsedOutput, context);\n case \"AssociatedInstances\":\n case \"com.amazonaws.ssm#AssociatedInstances\":\n throw await de_AssociatedInstancesRes(parsedOutput, context);\n case \"InvalidDocumentOperation\":\n case \"com.amazonaws.ssm#InvalidDocumentOperation\":\n throw await de_InvalidDocumentOperationRes(parsedOutput, context);\n case \"InvalidDeleteInventoryParametersException\":\n case \"com.amazonaws.ssm#InvalidDeleteInventoryParametersException\":\n throw await de_InvalidDeleteInventoryParametersExceptionRes(parsedOutput, context);\n case \"InvalidInventoryRequestException\":\n case \"com.amazonaws.ssm#InvalidInventoryRequestException\":\n throw await de_InvalidInventoryRequestExceptionRes(parsedOutput, context);\n case \"InvalidOptionException\":\n case \"com.amazonaws.ssm#InvalidOptionException\":\n throw await de_InvalidOptionExceptionRes(parsedOutput, context);\n case \"InvalidTypeNameException\":\n case \"com.amazonaws.ssm#InvalidTypeNameException\":\n throw await de_InvalidTypeNameExceptionRes(parsedOutput, context);\n case \"OpsMetadataNotFoundException\":\n case \"com.amazonaws.ssm#OpsMetadataNotFoundException\":\n throw await de_OpsMetadataNotFoundExceptionRes(parsedOutput, context);\n case \"ParameterNotFound\":\n case \"com.amazonaws.ssm#ParameterNotFound\":\n throw await de_ParameterNotFoundRes(parsedOutput, context);\n case \"ResourceInUseException\":\n case \"com.amazonaws.ssm#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncNotFoundException\":\n case \"com.amazonaws.ssm#ResourceDataSyncNotFoundException\":\n throw await de_ResourceDataSyncNotFoundExceptionRes(parsedOutput, context);\n case \"MalformedResourcePolicyDocumentException\":\n case \"com.amazonaws.ssm#MalformedResourcePolicyDocumentException\":\n throw await de_MalformedResourcePolicyDocumentExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.ssm#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ResourcePolicyConflictException\":\n case \"com.amazonaws.ssm#ResourcePolicyConflictException\":\n throw await de_ResourcePolicyConflictExceptionRes(parsedOutput, context);\n case \"ResourcePolicyInvalidParameterException\":\n case \"com.amazonaws.ssm#ResourcePolicyInvalidParameterException\":\n throw await de_ResourcePolicyInvalidParameterExceptionRes(parsedOutput, context);\n case \"ResourcePolicyNotFoundException\":\n case \"com.amazonaws.ssm#ResourcePolicyNotFoundException\":\n throw await de_ResourcePolicyNotFoundExceptionRes(parsedOutput, context);\n case \"TargetInUseException\":\n case \"com.amazonaws.ssm#TargetInUseException\":\n throw await de_TargetInUseExceptionRes(parsedOutput, context);\n case \"InvalidFilter\":\n case \"com.amazonaws.ssm#InvalidFilter\":\n throw await de_InvalidFilterRes(parsedOutput, context);\n case \"InvalidNextToken\":\n case \"com.amazonaws.ssm#InvalidNextToken\":\n throw await de_InvalidNextTokenRes(parsedOutput, context);\n case \"InvalidAssociationVersion\":\n case \"com.amazonaws.ssm#InvalidAssociationVersion\":\n throw await de_InvalidAssociationVersionRes(parsedOutput, context);\n case \"AssociationExecutionDoesNotExist\":\n case \"com.amazonaws.ssm#AssociationExecutionDoesNotExist\":\n throw await de_AssociationExecutionDoesNotExistRes(parsedOutput, context);\n case \"InvalidFilterKey\":\n case \"com.amazonaws.ssm#InvalidFilterKey\":\n throw await de_InvalidFilterKeyRes(parsedOutput, context);\n case \"InvalidFilterValue\":\n case \"com.amazonaws.ssm#InvalidFilterValue\":\n throw await de_InvalidFilterValueRes(parsedOutput, context);\n case \"AutomationExecutionNotFoundException\":\n case \"com.amazonaws.ssm#AutomationExecutionNotFoundException\":\n throw await de_AutomationExecutionNotFoundExceptionRes(parsedOutput, context);\n case \"InvalidPermissionType\":\n case \"com.amazonaws.ssm#InvalidPermissionType\":\n throw await de_InvalidPermissionTypeRes(parsedOutput, context);\n case \"UnsupportedOperatingSystem\":\n case \"com.amazonaws.ssm#UnsupportedOperatingSystem\":\n throw await de_UnsupportedOperatingSystemRes(parsedOutput, context);\n case \"InvalidInstanceInformationFilterValue\":\n case \"com.amazonaws.ssm#InvalidInstanceInformationFilterValue\":\n throw await de_InvalidInstanceInformationFilterValueRes(parsedOutput, context);\n case \"InvalidInstancePropertyFilterValue\":\n case \"com.amazonaws.ssm#InvalidInstancePropertyFilterValue\":\n throw await de_InvalidInstancePropertyFilterValueRes(parsedOutput, context);\n case \"InvalidDeletionIdException\":\n case \"com.amazonaws.ssm#InvalidDeletionIdException\":\n throw await de_InvalidDeletionIdExceptionRes(parsedOutput, context);\n case \"InvalidFilterOption\":\n case \"com.amazonaws.ssm#InvalidFilterOption\":\n throw await de_InvalidFilterOptionRes(parsedOutput, context);\n case \"OpsItemRelatedItemAssociationNotFoundException\":\n case \"com.amazonaws.ssm#OpsItemRelatedItemAssociationNotFoundException\":\n throw await de_OpsItemRelatedItemAssociationNotFoundExceptionRes(parsedOutput, context);\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssm#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.ssm#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.ssm#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"InvalidDocumentType\":\n case \"com.amazonaws.ssm#InvalidDocumentType\":\n throw await de_InvalidDocumentTypeRes(parsedOutput, context);\n case \"UnsupportedCalendarException\":\n case \"com.amazonaws.ssm#UnsupportedCalendarException\":\n throw await de_UnsupportedCalendarExceptionRes(parsedOutput, context);\n case \"InvalidPluginName\":\n case \"com.amazonaws.ssm#InvalidPluginName\":\n throw await de_InvalidPluginNameRes(parsedOutput, context);\n case \"InvocationDoesNotExist\":\n case \"com.amazonaws.ssm#InvocationDoesNotExist\":\n throw await de_InvocationDoesNotExistRes(parsedOutput, context);\n case \"UnsupportedFeatureRequiredException\":\n case \"com.amazonaws.ssm#UnsupportedFeatureRequiredException\":\n throw await de_UnsupportedFeatureRequiredExceptionRes(parsedOutput, context);\n case \"InvalidAggregatorException\":\n case \"com.amazonaws.ssm#InvalidAggregatorException\":\n throw await de_InvalidAggregatorExceptionRes(parsedOutput, context);\n case \"InvalidInventoryGroupException\":\n case \"com.amazonaws.ssm#InvalidInventoryGroupException\":\n throw await de_InvalidInventoryGroupExceptionRes(parsedOutput, context);\n case \"InvalidResultAttributeException\":\n case \"com.amazonaws.ssm#InvalidResultAttributeException\":\n throw await de_InvalidResultAttributeExceptionRes(parsedOutput, context);\n case \"InvalidKeyId\":\n case \"com.amazonaws.ssm#InvalidKeyId\":\n throw await de_InvalidKeyIdRes(parsedOutput, context);\n case \"ParameterVersionNotFound\":\n case \"com.amazonaws.ssm#ParameterVersionNotFound\":\n throw await de_ParameterVersionNotFoundRes(parsedOutput, context);\n case \"ServiceSettingNotFound\":\n case \"com.amazonaws.ssm#ServiceSettingNotFound\":\n throw await de_ServiceSettingNotFoundRes(parsedOutput, context);\n case \"ParameterVersionLabelLimitExceeded\":\n case \"com.amazonaws.ssm#ParameterVersionLabelLimitExceeded\":\n throw await de_ParameterVersionLabelLimitExceededRes(parsedOutput, context);\n case \"UnsupportedOperationException\":\n case \"com.amazonaws.ssm#UnsupportedOperationException\":\n throw await de_UnsupportedOperationExceptionRes(parsedOutput, context);\n case \"DocumentPermissionLimit\":\n case \"com.amazonaws.ssm#DocumentPermissionLimit\":\n throw await de_DocumentPermissionLimitRes(parsedOutput, context);\n case \"ComplianceTypeCountLimitExceededException\":\n case \"com.amazonaws.ssm#ComplianceTypeCountLimitExceededException\":\n throw await de_ComplianceTypeCountLimitExceededExceptionRes(parsedOutput, context);\n case \"InvalidItemContentException\":\n case \"com.amazonaws.ssm#InvalidItemContentException\":\n throw await de_InvalidItemContentExceptionRes(parsedOutput, context);\n case \"ItemSizeLimitExceededException\":\n case \"com.amazonaws.ssm#ItemSizeLimitExceededException\":\n throw await de_ItemSizeLimitExceededExceptionRes(parsedOutput, context);\n case \"TotalSizeLimitExceededException\":\n case \"com.amazonaws.ssm#TotalSizeLimitExceededException\":\n throw await de_TotalSizeLimitExceededExceptionRes(parsedOutput, context);\n case \"CustomSchemaCountLimitExceededException\":\n case \"com.amazonaws.ssm#CustomSchemaCountLimitExceededException\":\n throw await de_CustomSchemaCountLimitExceededExceptionRes(parsedOutput, context);\n case \"InvalidInventoryItemContextException\":\n case \"com.amazonaws.ssm#InvalidInventoryItemContextException\":\n throw await de_InvalidInventoryItemContextExceptionRes(parsedOutput, context);\n case \"ItemContentMismatchException\":\n case \"com.amazonaws.ssm#ItemContentMismatchException\":\n throw await de_ItemContentMismatchExceptionRes(parsedOutput, context);\n case \"SubTypeCountLimitExceededException\":\n case \"com.amazonaws.ssm#SubTypeCountLimitExceededException\":\n throw await de_SubTypeCountLimitExceededExceptionRes(parsedOutput, context);\n case \"UnsupportedInventoryItemContextException\":\n case \"com.amazonaws.ssm#UnsupportedInventoryItemContextException\":\n throw await de_UnsupportedInventoryItemContextExceptionRes(parsedOutput, context);\n case \"UnsupportedInventorySchemaVersionException\":\n case \"com.amazonaws.ssm#UnsupportedInventorySchemaVersionException\":\n throw await de_UnsupportedInventorySchemaVersionExceptionRes(parsedOutput, context);\n case \"HierarchyLevelLimitExceededException\":\n case \"com.amazonaws.ssm#HierarchyLevelLimitExceededException\":\n throw await de_HierarchyLevelLimitExceededExceptionRes(parsedOutput, context);\n case \"HierarchyTypeMismatchException\":\n case \"com.amazonaws.ssm#HierarchyTypeMismatchException\":\n throw await de_HierarchyTypeMismatchExceptionRes(parsedOutput, context);\n case \"IncompatiblePolicyException\":\n case \"com.amazonaws.ssm#IncompatiblePolicyException\":\n throw await de_IncompatiblePolicyExceptionRes(parsedOutput, context);\n case \"InvalidAllowedPatternException\":\n case \"com.amazonaws.ssm#InvalidAllowedPatternException\":\n throw await de_InvalidAllowedPatternExceptionRes(parsedOutput, context);\n case \"InvalidPolicyAttributeException\":\n case \"com.amazonaws.ssm#InvalidPolicyAttributeException\":\n throw await de_InvalidPolicyAttributeExceptionRes(parsedOutput, context);\n case \"InvalidPolicyTypeException\":\n case \"com.amazonaws.ssm#InvalidPolicyTypeException\":\n throw await de_InvalidPolicyTypeExceptionRes(parsedOutput, context);\n case \"ParameterAlreadyExists\":\n case \"com.amazonaws.ssm#ParameterAlreadyExists\":\n throw await de_ParameterAlreadyExistsRes(parsedOutput, context);\n case \"ParameterLimitExceeded\":\n case \"com.amazonaws.ssm#ParameterLimitExceeded\":\n throw await de_ParameterLimitExceededRes(parsedOutput, context);\n case \"ParameterMaxVersionLimitExceeded\":\n case \"com.amazonaws.ssm#ParameterMaxVersionLimitExceeded\":\n throw await de_ParameterMaxVersionLimitExceededRes(parsedOutput, context);\n case \"ParameterPatternMismatchException\":\n case \"com.amazonaws.ssm#ParameterPatternMismatchException\":\n throw await de_ParameterPatternMismatchExceptionRes(parsedOutput, context);\n case \"PoliciesLimitExceededException\":\n case \"com.amazonaws.ssm#PoliciesLimitExceededException\":\n throw await de_PoliciesLimitExceededExceptionRes(parsedOutput, context);\n case \"UnsupportedParameterType\":\n case \"com.amazonaws.ssm#UnsupportedParameterType\":\n throw await de_UnsupportedParameterTypeRes(parsedOutput, context);\n case \"ResourcePolicyLimitExceededException\":\n case \"com.amazonaws.ssm#ResourcePolicyLimitExceededException\":\n throw await de_ResourcePolicyLimitExceededExceptionRes(parsedOutput, context);\n case \"AlreadyExistsException\":\n case \"com.amazonaws.ssm#AlreadyExistsException\":\n throw await de_AlreadyExistsExceptionRes(parsedOutput, context);\n case \"FeatureNotAvailableException\":\n case \"com.amazonaws.ssm#FeatureNotAvailableException\":\n throw await de_FeatureNotAvailableExceptionRes(parsedOutput, context);\n case \"AutomationStepNotFoundException\":\n case \"com.amazonaws.ssm#AutomationStepNotFoundException\":\n throw await de_AutomationStepNotFoundExceptionRes(parsedOutput, context);\n case \"InvalidAutomationSignalException\":\n case \"com.amazonaws.ssm#InvalidAutomationSignalException\":\n throw await de_InvalidAutomationSignalExceptionRes(parsedOutput, context);\n case \"InvalidNotificationConfig\":\n case \"com.amazonaws.ssm#InvalidNotificationConfig\":\n throw await de_InvalidNotificationConfigRes(parsedOutput, context);\n case \"InvalidOutputFolder\":\n case \"com.amazonaws.ssm#InvalidOutputFolder\":\n throw await de_InvalidOutputFolderRes(parsedOutput, context);\n case \"InvalidRole\":\n case \"com.amazonaws.ssm#InvalidRole\":\n throw await de_InvalidRoleRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.ssm#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"InvalidAssociation\":\n case \"com.amazonaws.ssm#InvalidAssociation\":\n throw await de_InvalidAssociationRes(parsedOutput, context);\n case \"AutomationDefinitionNotFoundException\":\n case \"com.amazonaws.ssm#AutomationDefinitionNotFoundException\":\n throw await de_AutomationDefinitionNotFoundExceptionRes(parsedOutput, context);\n case \"AutomationDefinitionVersionNotFoundException\":\n case \"com.amazonaws.ssm#AutomationDefinitionVersionNotFoundException\":\n throw await de_AutomationDefinitionVersionNotFoundExceptionRes(parsedOutput, context);\n case \"AutomationExecutionLimitExceededException\":\n case \"com.amazonaws.ssm#AutomationExecutionLimitExceededException\":\n throw await de_AutomationExecutionLimitExceededExceptionRes(parsedOutput, context);\n case \"InvalidAutomationExecutionParametersException\":\n case \"com.amazonaws.ssm#InvalidAutomationExecutionParametersException\":\n throw await de_InvalidAutomationExecutionParametersExceptionRes(parsedOutput, context);\n case \"AutomationDefinitionNotApprovedException\":\n case \"com.amazonaws.ssm#AutomationDefinitionNotApprovedException\":\n throw await de_AutomationDefinitionNotApprovedExceptionRes(parsedOutput, context);\n case \"TargetNotConnected\":\n case \"com.amazonaws.ssm#TargetNotConnected\":\n throw await de_TargetNotConnectedRes(parsedOutput, context);\n case \"InvalidAutomationStatusUpdateException\":\n case \"com.amazonaws.ssm#InvalidAutomationStatusUpdateException\":\n throw await de_InvalidAutomationStatusUpdateExceptionRes(parsedOutput, context);\n case \"AssociationVersionLimitExceeded\":\n case \"com.amazonaws.ssm#AssociationVersionLimitExceeded\":\n throw await de_AssociationVersionLimitExceededRes(parsedOutput, context);\n case \"InvalidUpdate\":\n case \"com.amazonaws.ssm#InvalidUpdate\":\n throw await de_InvalidUpdateRes(parsedOutput, context);\n case \"StatusUnchanged\":\n case \"com.amazonaws.ssm#StatusUnchanged\":\n throw await de_StatusUnchangedRes(parsedOutput, context);\n case \"DocumentVersionLimitExceeded\":\n case \"com.amazonaws.ssm#DocumentVersionLimitExceeded\":\n throw await de_DocumentVersionLimitExceededRes(parsedOutput, context);\n case \"DuplicateDocumentContent\":\n case \"com.amazonaws.ssm#DuplicateDocumentContent\":\n throw await de_DuplicateDocumentContentRes(parsedOutput, context);\n case \"DuplicateDocumentVersionName\":\n case \"com.amazonaws.ssm#DuplicateDocumentVersionName\":\n throw await de_DuplicateDocumentVersionNameRes(parsedOutput, context);\n case \"OpsMetadataKeyLimitExceededException\":\n case \"com.amazonaws.ssm#OpsMetadataKeyLimitExceededException\":\n throw await de_OpsMetadataKeyLimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncConflictException\":\n case \"com.amazonaws.ssm#ResourceDataSyncConflictException\":\n throw await de_ResourceDataSyncConflictExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AlreadyExistsExceptionRes\");\nvar de_AssociatedInstancesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociatedInstances({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociatedInstancesRes\");\nvar de_AssociationAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationAlreadyExistsRes\");\nvar de_AssociationDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationDoesNotExistRes\");\nvar de_AssociationExecutionDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationExecutionDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationExecutionDoesNotExistRes\");\nvar de_AssociationLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationLimitExceededRes\");\nvar de_AssociationVersionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationVersionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationVersionLimitExceededRes\");\nvar de_AutomationDefinitionNotApprovedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationDefinitionNotApprovedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationDefinitionNotApprovedExceptionRes\");\nvar de_AutomationDefinitionNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationDefinitionNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationDefinitionNotFoundExceptionRes\");\nvar de_AutomationDefinitionVersionNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationDefinitionVersionNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationDefinitionVersionNotFoundExceptionRes\");\nvar de_AutomationExecutionLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationExecutionLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationExecutionLimitExceededExceptionRes\");\nvar de_AutomationExecutionNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationExecutionNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationExecutionNotFoundExceptionRes\");\nvar de_AutomationStepNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationStepNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationStepNotFoundExceptionRes\");\nvar de_ComplianceTypeCountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ComplianceTypeCountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ComplianceTypeCountLimitExceededExceptionRes\");\nvar de_CustomSchemaCountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomSchemaCountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomSchemaCountLimitExceededExceptionRes\");\nvar de_DocumentAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentAlreadyExistsRes\");\nvar de_DocumentLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentLimitExceededRes\");\nvar de_DocumentPermissionLimitRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentPermissionLimit({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentPermissionLimitRes\");\nvar de_DocumentVersionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentVersionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentVersionLimitExceededRes\");\nvar de_DoesNotExistExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DoesNotExistException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DoesNotExistExceptionRes\");\nvar de_DuplicateDocumentContentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DuplicateDocumentContent({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateDocumentContentRes\");\nvar de_DuplicateDocumentVersionNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DuplicateDocumentVersionName({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateDocumentVersionNameRes\");\nvar de_DuplicateInstanceIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DuplicateInstanceId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateInstanceIdRes\");\nvar de_FeatureNotAvailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new FeatureNotAvailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_FeatureNotAvailableExceptionRes\");\nvar de_HierarchyLevelLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HierarchyLevelLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HierarchyLevelLimitExceededExceptionRes\");\nvar de_HierarchyTypeMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HierarchyTypeMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HierarchyTypeMismatchExceptionRes\");\nvar de_IdempotentParameterMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IdempotentParameterMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IdempotentParameterMismatchRes\");\nvar de_IncompatiblePolicyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncompatiblePolicyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncompatiblePolicyExceptionRes\");\nvar de_InternalServerErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InternalServerError({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InternalServerErrorRes\");\nvar de_InvalidActivationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidActivation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidActivationRes\");\nvar de_InvalidActivationIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidActivationId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidActivationIdRes\");\nvar de_InvalidAggregatorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAggregatorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAggregatorExceptionRes\");\nvar de_InvalidAllowedPatternExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAllowedPatternException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAllowedPatternExceptionRes\");\nvar de_InvalidAssociationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAssociation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAssociationRes\");\nvar de_InvalidAssociationVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAssociationVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAssociationVersionRes\");\nvar de_InvalidAutomationExecutionParametersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAutomationExecutionParametersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAutomationExecutionParametersExceptionRes\");\nvar de_InvalidAutomationSignalExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAutomationSignalException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAutomationSignalExceptionRes\");\nvar de_InvalidAutomationStatusUpdateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAutomationStatusUpdateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAutomationStatusUpdateExceptionRes\");\nvar de_InvalidCommandIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidCommandId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCommandIdRes\");\nvar de_InvalidDeleteInventoryParametersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDeleteInventoryParametersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDeleteInventoryParametersExceptionRes\");\nvar de_InvalidDeletionIdExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDeletionIdException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDeletionIdExceptionRes\");\nvar de_InvalidDocumentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocument({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentRes\");\nvar de_InvalidDocumentContentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentContent({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentContentRes\");\nvar de_InvalidDocumentOperationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentOperation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentOperationRes\");\nvar de_InvalidDocumentSchemaVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentSchemaVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentSchemaVersionRes\");\nvar de_InvalidDocumentTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentTypeRes\");\nvar de_InvalidDocumentVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentVersionRes\");\nvar de_InvalidFilterRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilter({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterRes\");\nvar de_InvalidFilterKeyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilterKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterKeyRes\");\nvar de_InvalidFilterOptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilterOption({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterOptionRes\");\nvar de_InvalidFilterValueRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilterValue({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterValueRes\");\nvar de_InvalidInstanceIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInstanceId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInstanceIdRes\");\nvar de_InvalidInstanceInformationFilterValueRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInstanceInformationFilterValue({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInstanceInformationFilterValueRes\");\nvar de_InvalidInstancePropertyFilterValueRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInstancePropertyFilterValue({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInstancePropertyFilterValueRes\");\nvar de_InvalidInventoryGroupExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInventoryGroupException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInventoryGroupExceptionRes\");\nvar de_InvalidInventoryItemContextExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInventoryItemContextException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInventoryItemContextExceptionRes\");\nvar de_InvalidInventoryRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInventoryRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInventoryRequestExceptionRes\");\nvar de_InvalidItemContentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidItemContentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidItemContentExceptionRes\");\nvar de_InvalidKeyIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidKeyId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidKeyIdRes\");\nvar de_InvalidNextTokenRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidNextToken({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNextTokenRes\");\nvar de_InvalidNotificationConfigRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidNotificationConfig({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNotificationConfigRes\");\nvar de_InvalidOptionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOptionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOptionExceptionRes\");\nvar de_InvalidOutputFolderRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOutputFolder({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOutputFolderRes\");\nvar de_InvalidOutputLocationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOutputLocation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOutputLocationRes\");\nvar de_InvalidParametersRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameters({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParametersRes\");\nvar de_InvalidPermissionTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPermissionType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPermissionTypeRes\");\nvar de_InvalidPluginNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPluginName({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPluginNameRes\");\nvar de_InvalidPolicyAttributeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPolicyAttributeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPolicyAttributeExceptionRes\");\nvar de_InvalidPolicyTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPolicyTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPolicyTypeExceptionRes\");\nvar de_InvalidResourceIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidResourceId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidResourceIdRes\");\nvar de_InvalidResourceTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidResourceType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidResourceTypeRes\");\nvar de_InvalidResultAttributeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidResultAttributeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidResultAttributeExceptionRes\");\nvar de_InvalidRoleRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidRole({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRoleRes\");\nvar de_InvalidScheduleRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidSchedule({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidScheduleRes\");\nvar de_InvalidTagRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTag({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTagRes\");\nvar de_InvalidTargetRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTarget({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTargetRes\");\nvar de_InvalidTargetMapsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTargetMaps({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTargetMapsRes\");\nvar de_InvalidTypeNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTypeNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTypeNameExceptionRes\");\nvar de_InvalidUpdateRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidUpdate({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidUpdateRes\");\nvar de_InvocationDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvocationDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvocationDoesNotExistRes\");\nvar de_ItemContentMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ItemContentMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ItemContentMismatchExceptionRes\");\nvar de_ItemSizeLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ItemSizeLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ItemSizeLimitExceededExceptionRes\");\nvar de_MalformedResourcePolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedResourcePolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedResourcePolicyDocumentExceptionRes\");\nvar de_MaxDocumentSizeExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MaxDocumentSizeExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MaxDocumentSizeExceededRes\");\nvar de_OpsItemAccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemAccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemAccessDeniedExceptionRes\");\nvar de_OpsItemAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemAlreadyExistsExceptionRes\");\nvar de_OpsItemConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemConflictExceptionRes\");\nvar de_OpsItemInvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemInvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemInvalidParameterExceptionRes\");\nvar de_OpsItemLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemLimitExceededExceptionRes\");\nvar de_OpsItemNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemNotFoundExceptionRes\");\nvar de_OpsItemRelatedItemAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemRelatedItemAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemRelatedItemAlreadyExistsExceptionRes\");\nvar de_OpsItemRelatedItemAssociationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemRelatedItemAssociationNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemRelatedItemAssociationNotFoundExceptionRes\");\nvar de_OpsMetadataAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataAlreadyExistsExceptionRes\");\nvar de_OpsMetadataInvalidArgumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataInvalidArgumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataInvalidArgumentExceptionRes\");\nvar de_OpsMetadataKeyLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataKeyLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataKeyLimitExceededExceptionRes\");\nvar de_OpsMetadataLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataLimitExceededExceptionRes\");\nvar de_OpsMetadataNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataNotFoundExceptionRes\");\nvar de_OpsMetadataTooManyUpdatesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataTooManyUpdatesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataTooManyUpdatesExceptionRes\");\nvar de_ParameterAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterAlreadyExistsRes\");\nvar de_ParameterLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterLimitExceededRes\");\nvar de_ParameterMaxVersionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterMaxVersionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterMaxVersionLimitExceededRes\");\nvar de_ParameterNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterNotFoundRes\");\nvar de_ParameterPatternMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterPatternMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterPatternMismatchExceptionRes\");\nvar de_ParameterVersionLabelLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterVersionLabelLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterVersionLabelLimitExceededRes\");\nvar de_ParameterVersionNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterVersionNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterVersionNotFoundRes\");\nvar de_PoliciesLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PoliciesLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PoliciesLimitExceededExceptionRes\");\nvar de_ResourceDataSyncAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncAlreadyExistsExceptionRes\");\nvar de_ResourceDataSyncConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncConflictExceptionRes\");\nvar de_ResourceDataSyncCountExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncCountExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncCountExceededExceptionRes\");\nvar de_ResourceDataSyncInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncInvalidConfigurationExceptionRes\");\nvar de_ResourceDataSyncNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncNotFoundExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceLimitExceededExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ResourcePolicyConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyConflictExceptionRes\");\nvar de_ResourcePolicyInvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyInvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyInvalidParameterExceptionRes\");\nvar de_ResourcePolicyLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyLimitExceededExceptionRes\");\nvar de_ResourcePolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyNotFoundExceptionRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_ServiceSettingNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceSettingNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceSettingNotFoundRes\");\nvar de_StatusUnchangedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StatusUnchanged({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StatusUnchangedRes\");\nvar de_SubTypeCountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SubTypeCountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SubTypeCountLimitExceededExceptionRes\");\nvar de_TargetInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetInUseExceptionRes\");\nvar de_TargetNotConnectedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetNotConnected({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetNotConnectedRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TooManyTagsErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTagsError({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsErrorRes\");\nvar de_TooManyUpdatesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyUpdates({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyUpdatesRes\");\nvar de_TotalSizeLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TotalSizeLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TotalSizeLimitExceededExceptionRes\");\nvar de_UnsupportedCalendarExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedCalendarException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedCalendarExceptionRes\");\nvar de_UnsupportedFeatureRequiredExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedFeatureRequiredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedFeatureRequiredExceptionRes\");\nvar de_UnsupportedInventoryItemContextExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedInventoryItemContextException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedInventoryItemContextExceptionRes\");\nvar de_UnsupportedInventorySchemaVersionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedInventorySchemaVersionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedInventorySchemaVersionExceptionRes\");\nvar de_UnsupportedOperatingSystemRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedOperatingSystem({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedOperatingSystemRes\");\nvar de_UnsupportedOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedOperationExceptionRes\");\nvar de_UnsupportedParameterTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedParameterType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedParameterTypeRes\");\nvar de_UnsupportedPlatformTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedPlatformType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedPlatformTypeRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar se_AssociationStatus = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AdditionalInfo: [],\n Date: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"Date\"),\n Message: [],\n Name: []\n });\n}, \"se_AssociationStatus\");\nvar se_ComplianceExecutionSummary = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ExecutionId: [],\n ExecutionTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ExecutionTime\"),\n ExecutionType: []\n });\n}, \"se_ComplianceExecutionSummary\");\nvar se_CreateActivationRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DefaultInstanceName: [],\n Description: [],\n ExpirationDate: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ExpirationDate\"),\n IamRole: [],\n RegistrationLimit: [],\n RegistrationMetadata: import_smithy_client._json,\n Tags: import_smithy_client._json\n });\n}, \"se_CreateActivationRequest\");\nvar se_CreateMaintenanceWindowRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AllowUnassociatedTargets: [],\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Cutoff: [],\n Description: [],\n Duration: [],\n EndDate: [],\n Name: [],\n Schedule: [],\n ScheduleOffset: [],\n ScheduleTimezone: [],\n StartDate: [],\n Tags: import_smithy_client._json\n });\n}, \"se_CreateMaintenanceWindowRequest\");\nvar se_CreateOpsItemRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AccountId: [],\n ActualEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualStartTime\"),\n Category: [],\n Description: [],\n Notifications: import_smithy_client._json,\n OperationalData: import_smithy_client._json,\n OpsItemType: [],\n PlannedEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedStartTime\"),\n Priority: [],\n RelatedOpsItems: import_smithy_client._json,\n Severity: [],\n Source: [],\n Tags: import_smithy_client._json,\n Title: []\n });\n}, \"se_CreateOpsItemRequest\");\nvar se_CreatePatchBaselineRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ApprovalRules: import_smithy_client._json,\n ApprovedPatches: import_smithy_client._json,\n ApprovedPatchesComplianceLevel: [],\n ApprovedPatchesEnableNonSecurity: [],\n AvailableSecurityUpdatesComplianceStatus: [],\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n GlobalFilters: import_smithy_client._json,\n Name: [],\n OperatingSystem: [],\n RejectedPatches: import_smithy_client._json,\n RejectedPatchesAction: [],\n Sources: import_smithy_client._json,\n Tags: import_smithy_client._json\n });\n}, \"se_CreatePatchBaselineRequest\");\nvar se_DeleteInventoryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n DryRun: [],\n SchemaDeleteOption: [],\n TypeName: []\n });\n}, \"se_DeleteInventoryRequest\");\nvar se_GetInventoryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_InventoryAggregatorList(_, context), \"Aggregators\"),\n Filters: import_smithy_client._json,\n MaxResults: [],\n NextToken: [],\n ResultAttributes: import_smithy_client._json\n });\n}, \"se_GetInventoryRequest\");\nvar se_GetOpsSummaryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_OpsAggregatorList(_, context), \"Aggregators\"),\n Filters: import_smithy_client._json,\n MaxResults: [],\n NextToken: [],\n ResultAttributes: import_smithy_client._json,\n SyncName: []\n });\n}, \"se_GetOpsSummaryRequest\");\nvar se_InventoryAggregator = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_InventoryAggregatorList(_, context), \"Aggregators\"),\n Expression: [],\n Groups: import_smithy_client._json\n });\n}, \"se_InventoryAggregator\");\nvar se_InventoryAggregatorList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_InventoryAggregator(entry, context);\n });\n}, \"se_InventoryAggregatorList\");\nvar se_ListNodesSummaryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_NodeAggregatorList(_, context), \"Aggregators\"),\n Filters: import_smithy_client._json,\n MaxResults: [],\n NextToken: [],\n SyncName: []\n });\n}, \"se_ListNodesSummaryRequest\");\nvar se_MaintenanceWindowLambdaParameters = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientContext: [],\n Payload: context.base64Encoder,\n Qualifier: []\n });\n}, \"se_MaintenanceWindowLambdaParameters\");\nvar se_MaintenanceWindowTaskInvocationParameters = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Automation: import_smithy_client._json,\n Lambda: /* @__PURE__ */ __name((_) => se_MaintenanceWindowLambdaParameters(_, context), \"Lambda\"),\n RunCommand: import_smithy_client._json,\n StepFunctions: import_smithy_client._json\n });\n}, \"se_MaintenanceWindowTaskInvocationParameters\");\nvar se_NodeAggregator = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AggregatorType: [],\n Aggregators: /* @__PURE__ */ __name((_) => se_NodeAggregatorList(_, context), \"Aggregators\"),\n AttributeName: [],\n TypeName: []\n });\n}, \"se_NodeAggregator\");\nvar se_NodeAggregatorList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_NodeAggregator(entry, context);\n });\n}, \"se_NodeAggregatorList\");\nvar se_OpsAggregator = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AggregatorType: [],\n Aggregators: /* @__PURE__ */ __name((_) => se_OpsAggregatorList(_, context), \"Aggregators\"),\n AttributeName: [],\n Filters: import_smithy_client._json,\n TypeName: [],\n Values: import_smithy_client._json\n });\n}, \"se_OpsAggregator\");\nvar se_OpsAggregatorList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_OpsAggregator(entry, context);\n });\n}, \"se_OpsAggregatorList\");\nvar se_PutComplianceItemsRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ComplianceType: [],\n ExecutionSummary: /* @__PURE__ */ __name((_) => se_ComplianceExecutionSummary(_, context), \"ExecutionSummary\"),\n ItemContentHash: [],\n Items: import_smithy_client._json,\n ResourceId: [],\n ResourceType: [],\n UploadType: []\n });\n}, \"se_PutComplianceItemsRequest\");\nvar se_RegisterTargetWithMaintenanceWindowRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n Name: [],\n OwnerInformation: [],\n ResourceType: [],\n Targets: import_smithy_client._json,\n WindowId: []\n });\n}, \"se_RegisterTargetWithMaintenanceWindowRequest\");\nvar se_RegisterTaskWithMaintenanceWindowRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AlarmConfiguration: import_smithy_client._json,\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n CutoffBehavior: [],\n Description: [],\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: [],\n MaxErrors: [],\n Name: [],\n Priority: [],\n ServiceRoleArn: [],\n Targets: import_smithy_client._json,\n TaskArn: [],\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => se_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n TaskType: [],\n WindowId: []\n });\n}, \"se_RegisterTaskWithMaintenanceWindowRequest\");\nvar se_StartChangeRequestExecutionRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AutoApprove: [],\n ChangeDetails: [],\n ChangeRequestName: [],\n ClientToken: [],\n DocumentName: [],\n DocumentVersion: [],\n Parameters: import_smithy_client._json,\n Runbooks: import_smithy_client._json,\n ScheduledEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ScheduledEndTime\"),\n ScheduledTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ScheduledTime\"),\n Tags: import_smithy_client._json\n });\n}, \"se_StartChangeRequestExecutionRequest\");\nvar se_UpdateAssociationStatusRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AssociationStatus: /* @__PURE__ */ __name((_) => se_AssociationStatus(_, context), \"AssociationStatus\"),\n InstanceId: [],\n Name: []\n });\n}, \"se_UpdateAssociationStatusRequest\");\nvar se_UpdateMaintenanceWindowTaskRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AlarmConfiguration: import_smithy_client._json,\n CutoffBehavior: [],\n Description: [],\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: [],\n MaxErrors: [],\n Name: [],\n Priority: [],\n Replace: [],\n ServiceRoleArn: [],\n Targets: import_smithy_client._json,\n TaskArn: [],\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => se_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n WindowId: [],\n WindowTaskId: []\n });\n}, \"se_UpdateMaintenanceWindowTaskRequest\");\nvar se_UpdateOpsItemRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ActualEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualStartTime\"),\n Category: [],\n Description: [],\n Notifications: import_smithy_client._json,\n OperationalData: import_smithy_client._json,\n OperationalDataToDelete: import_smithy_client._json,\n OpsItemArn: [],\n OpsItemId: [],\n PlannedEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedStartTime\"),\n Priority: [],\n RelatedOpsItems: import_smithy_client._json,\n Severity: [],\n Status: [],\n Title: []\n });\n}, \"se_UpdateOpsItemRequest\");\nvar de_Activation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationId: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DefaultInstanceName: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n ExpirationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExpirationDate\"),\n Expired: import_smithy_client.expectBoolean,\n IamRole: import_smithy_client.expectString,\n RegistrationLimit: import_smithy_client.expectInt32,\n RegistrationsCount: import_smithy_client.expectInt32,\n Tags: import_smithy_client._json\n });\n}, \"de_Activation\");\nvar de_ActivationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Activation(entry, context);\n });\n return retVal;\n}, \"de_ActivationList\");\nvar de_Association = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n InstanceId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n Name: import_smithy_client.expectString,\n Overview: import_smithy_client._json,\n ScheduleExpression: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n TargetMaps: import_smithy_client._json,\n Targets: import_smithy_client._json\n });\n}, \"de_Association\");\nvar de_AssociationDescription = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n ApplyOnlyAtCronInterval: import_smithy_client.expectBoolean,\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n AutomationTargetParameterName: import_smithy_client.expectString,\n CalendarNames: import_smithy_client._json,\n ComplianceSeverity: import_smithy_client.expectString,\n Date: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"Date\"),\n DocumentVersion: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n InstanceId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n LastSuccessfulExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulExecutionDate\"),\n LastUpdateAssociationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastUpdateAssociationDate\"),\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n OutputLocation: import_smithy_client._json,\n Overview: import_smithy_client._json,\n Parameters: import_smithy_client._json,\n ScheduleExpression: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n Status: /* @__PURE__ */ __name((_) => de_AssociationStatus(_, context), \"Status\"),\n SyncCompliance: import_smithy_client.expectString,\n TargetLocations: import_smithy_client._json,\n TargetMaps: import_smithy_client._json,\n Targets: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_AssociationDescription\");\nvar de_AssociationDescriptionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationDescription(entry, context);\n });\n return retVal;\n}, \"de_AssociationDescriptionList\");\nvar de_AssociationExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n AssociationId: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n DetailedStatus: import_smithy_client.expectString,\n ExecutionId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n ResourceCountByStatus: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_AssociationExecution\");\nvar de_AssociationExecutionsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationExecution(entry, context);\n });\n return retVal;\n}, \"de_AssociationExecutionsList\");\nvar de_AssociationExecutionTarget = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n DetailedStatus: import_smithy_client.expectString,\n ExecutionId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n OutputSource: import_smithy_client._json,\n ResourceId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_AssociationExecutionTarget\");\nvar de_AssociationExecutionTargetsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationExecutionTarget(entry, context);\n });\n return retVal;\n}, \"de_AssociationExecutionTargetsList\");\nvar de_AssociationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Association(entry, context);\n });\n return retVal;\n}, \"de_AssociationList\");\nvar de_AssociationStatus = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AdditionalInfo: import_smithy_client.expectString,\n Date: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"Date\"),\n Message: import_smithy_client.expectString,\n Name: import_smithy_client.expectString\n });\n}, \"de_AssociationStatus\");\nvar de_AssociationVersionInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApplyOnlyAtCronInterval: import_smithy_client.expectBoolean,\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n CalendarNames: import_smithy_client._json,\n ComplianceSeverity: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DocumentVersion: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n OutputLocation: import_smithy_client._json,\n Parameters: import_smithy_client._json,\n ScheduleExpression: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n SyncCompliance: import_smithy_client.expectString,\n TargetLocations: import_smithy_client._json,\n TargetMaps: import_smithy_client._json,\n Targets: import_smithy_client._json\n });\n}, \"de_AssociationVersionInfo\");\nvar de_AssociationVersionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationVersionInfo(entry, context);\n });\n return retVal;\n}, \"de_AssociationVersionList\");\nvar de_AutomationExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n AssociationId: import_smithy_client.expectString,\n AutomationExecutionId: import_smithy_client.expectString,\n AutomationExecutionStatus: import_smithy_client.expectString,\n AutomationSubtype: import_smithy_client.expectString,\n ChangeRequestName: import_smithy_client.expectString,\n CurrentAction: import_smithy_client.expectString,\n CurrentStepName: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ExecutedBy: import_smithy_client.expectString,\n ExecutionEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionEndTime\"),\n ExecutionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionStartTime\"),\n FailureMessage: import_smithy_client.expectString,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Mode: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n Outputs: import_smithy_client._json,\n Parameters: import_smithy_client._json,\n ParentAutomationExecutionId: import_smithy_client.expectString,\n ProgressCounters: import_smithy_client._json,\n ResolvedTargets: import_smithy_client._json,\n Runbooks: import_smithy_client._json,\n ScheduledTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ScheduledTime\"),\n StepExecutions: /* @__PURE__ */ __name((_) => de_StepExecutionList(_, context), \"StepExecutions\"),\n StepExecutionsTruncated: import_smithy_client.expectBoolean,\n Target: import_smithy_client.expectString,\n TargetLocations: import_smithy_client._json,\n TargetLocationsURL: import_smithy_client.expectString,\n TargetMaps: import_smithy_client._json,\n TargetParameterName: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json,\n Variables: import_smithy_client._json\n });\n}, \"de_AutomationExecution\");\nvar de_AutomationExecutionMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n AssociationId: import_smithy_client.expectString,\n AutomationExecutionId: import_smithy_client.expectString,\n AutomationExecutionStatus: import_smithy_client.expectString,\n AutomationSubtype: import_smithy_client.expectString,\n AutomationType: import_smithy_client.expectString,\n ChangeRequestName: import_smithy_client.expectString,\n CurrentAction: import_smithy_client.expectString,\n CurrentStepName: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ExecutedBy: import_smithy_client.expectString,\n ExecutionEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionEndTime\"),\n ExecutionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionStartTime\"),\n FailureMessage: import_smithy_client.expectString,\n LogFile: import_smithy_client.expectString,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Mode: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n Outputs: import_smithy_client._json,\n ParentAutomationExecutionId: import_smithy_client.expectString,\n ResolvedTargets: import_smithy_client._json,\n Runbooks: import_smithy_client._json,\n ScheduledTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ScheduledTime\"),\n Target: import_smithy_client.expectString,\n TargetLocationsURL: import_smithy_client.expectString,\n TargetMaps: import_smithy_client._json,\n TargetParameterName: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_AutomationExecutionMetadata\");\nvar de_AutomationExecutionMetadataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AutomationExecutionMetadata(entry, context);\n });\n return retVal;\n}, \"de_AutomationExecutionMetadataList\");\nvar de_Command = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n CloudWatchOutputConfig: import_smithy_client._json,\n CommandId: import_smithy_client.expectString,\n Comment: import_smithy_client.expectString,\n CompletedCount: import_smithy_client.expectInt32,\n DeliveryTimedOutCount: import_smithy_client.expectInt32,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ErrorCount: import_smithy_client.expectInt32,\n ExpiresAfter: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExpiresAfter\"),\n InstanceIds: import_smithy_client._json,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n NotificationConfig: import_smithy_client._json,\n OutputS3BucketName: import_smithy_client.expectString,\n OutputS3KeyPrefix: import_smithy_client.expectString,\n OutputS3Region: import_smithy_client.expectString,\n Parameters: import_smithy_client._json,\n RequestedDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RequestedDateTime\"),\n ServiceRole: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TargetCount: import_smithy_client.expectInt32,\n Targets: import_smithy_client._json,\n TimeoutSeconds: import_smithy_client.expectInt32,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_Command\");\nvar de_CommandInvocation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CloudWatchOutputConfig: import_smithy_client._json,\n CommandId: import_smithy_client.expectString,\n CommandPlugins: /* @__PURE__ */ __name((_) => de_CommandPluginList(_, context), \"CommandPlugins\"),\n Comment: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n InstanceName: import_smithy_client.expectString,\n NotificationConfig: import_smithy_client._json,\n RequestedDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RequestedDateTime\"),\n ServiceRole: import_smithy_client.expectString,\n StandardErrorUrl: import_smithy_client.expectString,\n StandardOutputUrl: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TraceOutput: import_smithy_client.expectString\n });\n}, \"de_CommandInvocation\");\nvar de_CommandInvocationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CommandInvocation(entry, context);\n });\n return retVal;\n}, \"de_CommandInvocationList\");\nvar de_CommandList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Command(entry, context);\n });\n return retVal;\n}, \"de_CommandList\");\nvar de_CommandPlugin = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Name: import_smithy_client.expectString,\n Output: import_smithy_client.expectString,\n OutputS3BucketName: import_smithy_client.expectString,\n OutputS3KeyPrefix: import_smithy_client.expectString,\n OutputS3Region: import_smithy_client.expectString,\n ResponseCode: import_smithy_client.expectInt32,\n ResponseFinishDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ResponseFinishDateTime\"),\n ResponseStartDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ResponseStartDateTime\"),\n StandardErrorUrl: import_smithy_client.expectString,\n StandardOutputUrl: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString\n });\n}, \"de_CommandPlugin\");\nvar de_CommandPluginList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CommandPlugin(entry, context);\n });\n return retVal;\n}, \"de_CommandPluginList\");\nvar de_ComplianceExecutionSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ExecutionId: import_smithy_client.expectString,\n ExecutionTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionTime\"),\n ExecutionType: import_smithy_client.expectString\n });\n}, \"de_ComplianceExecutionSummary\");\nvar de_ComplianceItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ComplianceType: import_smithy_client.expectString,\n Details: import_smithy_client._json,\n ExecutionSummary: /* @__PURE__ */ __name((_) => de_ComplianceExecutionSummary(_, context), \"ExecutionSummary\"),\n Id: import_smithy_client.expectString,\n ResourceId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n Severity: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n Title: import_smithy_client.expectString\n });\n}, \"de_ComplianceItem\");\nvar de_ComplianceItemList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ComplianceItem(entry, context);\n });\n return retVal;\n}, \"de_ComplianceItemList\");\nvar de_CreateAssociationBatchResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Failed: import_smithy_client._json,\n Successful: /* @__PURE__ */ __name((_) => de_AssociationDescriptionList(_, context), \"Successful\")\n });\n}, \"de_CreateAssociationBatchResult\");\nvar de_CreateAssociationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_CreateAssociationResult\");\nvar de_CreateDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentDescription: /* @__PURE__ */ __name((_) => de_DocumentDescription(_, context), \"DocumentDescription\")\n });\n}, \"de_CreateDocumentResult\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AccessKeyId: import_smithy_client.expectString,\n ExpirationTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExpirationTime\"),\n SecretAccessKey: import_smithy_client.expectString,\n SessionToken: import_smithy_client.expectString\n });\n}, \"de_Credentials\");\nvar de_DescribeActivationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationList: /* @__PURE__ */ __name((_) => de_ActivationList(_, context), \"ActivationList\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeActivationsResult\");\nvar de_DescribeAssociationExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationExecutions: /* @__PURE__ */ __name((_) => de_AssociationExecutionsList(_, context), \"AssociationExecutions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeAssociationExecutionsResult\");\nvar de_DescribeAssociationExecutionTargetsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationExecutionTargets: /* @__PURE__ */ __name((_) => de_AssociationExecutionTargetsList(_, context), \"AssociationExecutionTargets\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeAssociationExecutionTargetsResult\");\nvar de_DescribeAssociationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_DescribeAssociationResult\");\nvar de_DescribeAutomationExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AutomationExecutionMetadataList: /* @__PURE__ */ __name((_) => de_AutomationExecutionMetadataList(_, context), \"AutomationExecutionMetadataList\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeAutomationExecutionsResult\");\nvar de_DescribeAutomationStepExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n StepExecutions: /* @__PURE__ */ __name((_) => de_StepExecutionList(_, context), \"StepExecutions\")\n });\n}, \"de_DescribeAutomationStepExecutionsResult\");\nvar de_DescribeAvailablePatchesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Patches: /* @__PURE__ */ __name((_) => de_PatchList(_, context), \"Patches\")\n });\n}, \"de_DescribeAvailablePatchesResult\");\nvar de_DescribeDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Document: /* @__PURE__ */ __name((_) => de_DocumentDescription(_, context), \"Document\")\n });\n}, \"de_DescribeDocumentResult\");\nvar de_DescribeEffectivePatchesForPatchBaselineResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EffectivePatches: /* @__PURE__ */ __name((_) => de_EffectivePatchList(_, context), \"EffectivePatches\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeEffectivePatchesForPatchBaselineResult\");\nvar de_DescribeInstanceAssociationsStatusResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstanceAssociationStatusInfos: /* @__PURE__ */ __name((_) => de_InstanceAssociationStatusInfos(_, context), \"InstanceAssociationStatusInfos\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstanceAssociationsStatusResult\");\nvar de_DescribeInstanceInformationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstanceInformationList: /* @__PURE__ */ __name((_) => de_InstanceInformationList(_, context), \"InstanceInformationList\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstanceInformationResult\");\nvar de_DescribeInstancePatchesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Patches: /* @__PURE__ */ __name((_) => de_PatchComplianceDataList(_, context), \"Patches\")\n });\n}, \"de_DescribeInstancePatchesResult\");\nvar de_DescribeInstancePatchStatesForPatchGroupResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstancePatchStates: /* @__PURE__ */ __name((_) => de_InstancePatchStatesList(_, context), \"InstancePatchStates\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstancePatchStatesForPatchGroupResult\");\nvar de_DescribeInstancePatchStatesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstancePatchStates: /* @__PURE__ */ __name((_) => de_InstancePatchStateList(_, context), \"InstancePatchStates\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstancePatchStatesResult\");\nvar de_DescribeInstancePropertiesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstanceProperties: /* @__PURE__ */ __name((_) => de_InstanceProperties(_, context), \"InstanceProperties\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstancePropertiesResult\");\nvar de_DescribeInventoryDeletionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InventoryDeletions: /* @__PURE__ */ __name((_) => de_InventoryDeletionsList(_, context), \"InventoryDeletions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInventoryDeletionsResult\");\nvar de_DescribeMaintenanceWindowExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n WindowExecutions: /* @__PURE__ */ __name((_) => de_MaintenanceWindowExecutionList(_, context), \"WindowExecutions\")\n });\n}, \"de_DescribeMaintenanceWindowExecutionsResult\");\nvar de_DescribeMaintenanceWindowExecutionTaskInvocationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n WindowExecutionTaskInvocationIdentities: /* @__PURE__ */ __name((_) => de_MaintenanceWindowExecutionTaskInvocationIdentityList(_, context), \"WindowExecutionTaskInvocationIdentities\")\n });\n}, \"de_DescribeMaintenanceWindowExecutionTaskInvocationsResult\");\nvar de_DescribeMaintenanceWindowExecutionTasksResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n WindowExecutionTaskIdentities: /* @__PURE__ */ __name((_) => de_MaintenanceWindowExecutionTaskIdentityList(_, context), \"WindowExecutionTaskIdentities\")\n });\n}, \"de_DescribeMaintenanceWindowExecutionTasksResult\");\nvar de_DescribeOpsItemsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n OpsItemSummaries: /* @__PURE__ */ __name((_) => de_OpsItemSummaries(_, context), \"OpsItemSummaries\")\n });\n}, \"de_DescribeOpsItemsResponse\");\nvar de_DescribeParametersResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterMetadataList(_, context), \"Parameters\")\n });\n}, \"de_DescribeParametersResult\");\nvar de_DescribeSessionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Sessions: /* @__PURE__ */ __name((_) => de_SessionList(_, context), \"Sessions\")\n });\n}, \"de_DescribeSessionsResponse\");\nvar de_DocumentDescription = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovedVersion: import_smithy_client.expectString,\n AttachmentsInformation: import_smithy_client._json,\n Author: import_smithy_client.expectString,\n Category: import_smithy_client._json,\n CategoryEnum: import_smithy_client._json,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DefaultVersion: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentType: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Hash: import_smithy_client.expectString,\n HashType: import_smithy_client.expectString,\n LatestVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Owner: import_smithy_client.expectString,\n Parameters: import_smithy_client._json,\n PendingReviewVersion: import_smithy_client.expectString,\n PlatformTypes: import_smithy_client._json,\n Requires: import_smithy_client._json,\n ReviewInformation: /* @__PURE__ */ __name((_) => de_ReviewInformationList(_, context), \"ReviewInformation\"),\n ReviewStatus: import_smithy_client.expectString,\n SchemaVersion: import_smithy_client.expectString,\n Sha1: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusInformation: import_smithy_client.expectString,\n Tags: import_smithy_client._json,\n TargetType: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_DocumentDescription\");\nvar de_DocumentIdentifier = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Author: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentType: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Owner: import_smithy_client.expectString,\n PlatformTypes: import_smithy_client._json,\n Requires: import_smithy_client._json,\n ReviewStatus: import_smithy_client.expectString,\n SchemaVersion: import_smithy_client.expectString,\n Tags: import_smithy_client._json,\n TargetType: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_DocumentIdentifier\");\nvar de_DocumentIdentifierList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DocumentIdentifier(entry, context);\n });\n return retVal;\n}, \"de_DocumentIdentifierList\");\nvar de_DocumentMetadataResponseInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ReviewerResponse: /* @__PURE__ */ __name((_) => de_DocumentReviewerResponseList(_, context), \"ReviewerResponse\")\n });\n}, \"de_DocumentMetadataResponseInfo\");\nvar de_DocumentReviewerResponseList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DocumentReviewerResponseSource(entry, context);\n });\n return retVal;\n}, \"de_DocumentReviewerResponseList\");\nvar de_DocumentReviewerResponseSource = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Comment: import_smithy_client._json,\n CreateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreateTime\"),\n ReviewStatus: import_smithy_client.expectString,\n Reviewer: import_smithy_client.expectString,\n UpdatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"UpdatedTime\")\n });\n}, \"de_DocumentReviewerResponseSource\");\nvar de_DocumentVersionInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n IsDefaultVersion: import_smithy_client.expectBoolean,\n Name: import_smithy_client.expectString,\n ReviewStatus: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusInformation: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_DocumentVersionInfo\");\nvar de_DocumentVersionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DocumentVersionInfo(entry, context);\n });\n return retVal;\n}, \"de_DocumentVersionList\");\nvar de_EffectivePatch = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Patch: /* @__PURE__ */ __name((_) => de_Patch(_, context), \"Patch\"),\n PatchStatus: /* @__PURE__ */ __name((_) => de_PatchStatus(_, context), \"PatchStatus\")\n });\n}, \"de_EffectivePatch\");\nvar de_EffectivePatchList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_EffectivePatch(entry, context);\n });\n return retVal;\n}, \"de_EffectivePatchList\");\nvar de_GetAccessTokenResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AccessRequestStatus: import_smithy_client.expectString,\n Credentials: /* @__PURE__ */ __name((_) => de_Credentials(_, context), \"Credentials\")\n });\n}, \"de_GetAccessTokenResponse\");\nvar de_GetAutomationExecutionResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AutomationExecution: /* @__PURE__ */ __name((_) => de_AutomationExecution(_, context), \"AutomationExecution\")\n });\n}, \"de_GetAutomationExecutionResult\");\nvar de_GetDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AttachmentsContent: import_smithy_client._json,\n Content: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentType: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Requires: import_smithy_client._json,\n ReviewStatus: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusInformation: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_GetDocumentResult\");\nvar de_GetExecutionPreviewResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndedAt\"),\n ExecutionPreview: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)((0, import_core2.awsExpectUnion)(_)), \"ExecutionPreview\"),\n ExecutionPreviewId: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusMessage: import_smithy_client.expectString\n });\n}, \"de_GetExecutionPreviewResponse\");\nvar de_GetMaintenanceWindowExecutionResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskIds: import_smithy_client._json,\n WindowExecutionId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowExecutionResult\");\nvar de_GetMaintenanceWindowExecutionTaskInvocationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n ExecutionId: import_smithy_client.expectString,\n InvocationId: import_smithy_client.expectString,\n OwnerInformation: import_smithy_client.expectString,\n Parameters: import_smithy_client.expectString,\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskType: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString,\n WindowTargetId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowExecutionTaskInvocationResult\");\nvar de_GetMaintenanceWindowExecutionTaskResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Priority: import_smithy_client.expectInt32,\n ServiceRole: import_smithy_client.expectString,\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskArn: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskParameters: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json,\n Type: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowExecutionTaskResult\");\nvar de_GetMaintenanceWindowResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AllowUnassociatedTargets: import_smithy_client.expectBoolean,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Cutoff: import_smithy_client.expectInt32,\n Description: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n Enabled: import_smithy_client.expectBoolean,\n EndDate: import_smithy_client.expectString,\n ModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ModifiedDate\"),\n Name: import_smithy_client.expectString,\n NextExecutionTime: import_smithy_client.expectString,\n Schedule: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n ScheduleTimezone: import_smithy_client.expectString,\n StartDate: import_smithy_client.expectString,\n WindowId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowResult\");\nvar de_GetMaintenanceWindowTaskResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n CutoffBehavior: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Priority: import_smithy_client.expectInt32,\n ServiceRoleArn: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TaskArn: import_smithy_client.expectString,\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => de_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n TaskType: import_smithy_client.expectString,\n WindowId: import_smithy_client.expectString,\n WindowTaskId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowTaskResult\");\nvar de_GetOpsItemResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n OpsItem: /* @__PURE__ */ __name((_) => de_OpsItem(_, context), \"OpsItem\")\n });\n}, \"de_GetOpsItemResponse\");\nvar de_GetParameterHistoryResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterHistoryList(_, context), \"Parameters\")\n });\n}, \"de_GetParameterHistoryResult\");\nvar de_GetParameterResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Parameter: /* @__PURE__ */ __name((_) => de_Parameter(_, context), \"Parameter\")\n });\n}, \"de_GetParameterResult\");\nvar de_GetParametersByPathResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterList(_, context), \"Parameters\")\n });\n}, \"de_GetParametersByPathResult\");\nvar de_GetParametersResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InvalidParameters: import_smithy_client._json,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterList(_, context), \"Parameters\")\n });\n}, \"de_GetParametersResult\");\nvar de_GetPatchBaselineResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovalRules: import_smithy_client._json,\n ApprovedPatches: import_smithy_client._json,\n ApprovedPatchesComplianceLevel: import_smithy_client.expectString,\n ApprovedPatchesEnableNonSecurity: import_smithy_client.expectBoolean,\n AvailableSecurityUpdatesComplianceStatus: import_smithy_client.expectString,\n BaselineId: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Description: import_smithy_client.expectString,\n GlobalFilters: import_smithy_client._json,\n ModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ModifiedDate\"),\n Name: import_smithy_client.expectString,\n OperatingSystem: import_smithy_client.expectString,\n PatchGroups: import_smithy_client._json,\n RejectedPatches: import_smithy_client._json,\n RejectedPatchesAction: import_smithy_client.expectString,\n Sources: import_smithy_client._json\n });\n}, \"de_GetPatchBaselineResult\");\nvar de_GetServiceSettingResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ServiceSetting: /* @__PURE__ */ __name((_) => de_ServiceSetting(_, context), \"ServiceSetting\")\n });\n}, \"de_GetServiceSettingResult\");\nvar de_InstanceAssociationStatusInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n DetailedStatus: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ErrorCode: import_smithy_client.expectString,\n ExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionDate\"),\n ExecutionSummary: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n OutputUrl: import_smithy_client._json,\n Status: import_smithy_client.expectString\n });\n}, \"de_InstanceAssociationStatusInfo\");\nvar de_InstanceAssociationStatusInfos = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceAssociationStatusInfo(entry, context);\n });\n return retVal;\n}, \"de_InstanceAssociationStatusInfos\");\nvar de_InstanceInformation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationId: import_smithy_client.expectString,\n AgentVersion: import_smithy_client.expectString,\n AssociationOverview: import_smithy_client._json,\n AssociationStatus: import_smithy_client.expectString,\n ComputerName: import_smithy_client.expectString,\n IPAddress: import_smithy_client.expectString,\n IamRole: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n IsLatestVersion: import_smithy_client.expectBoolean,\n LastAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAssociationExecutionDate\"),\n LastPingDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastPingDateTime\"),\n LastSuccessfulAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulAssociationExecutionDate\"),\n Name: import_smithy_client.expectString,\n PingStatus: import_smithy_client.expectString,\n PlatformName: import_smithy_client.expectString,\n PlatformType: import_smithy_client.expectString,\n PlatformVersion: import_smithy_client.expectString,\n RegistrationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RegistrationDate\"),\n ResourceType: import_smithy_client.expectString,\n SourceId: import_smithy_client.expectString,\n SourceType: import_smithy_client.expectString\n });\n}, \"de_InstanceInformation\");\nvar de_InstanceInformationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceInformation(entry, context);\n });\n return retVal;\n}, \"de_InstanceInformationList\");\nvar de_InstancePatchState = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AvailableSecurityUpdateCount: import_smithy_client.expectInt32,\n BaselineId: import_smithy_client.expectString,\n CriticalNonCompliantCount: import_smithy_client.expectInt32,\n FailedCount: import_smithy_client.expectInt32,\n InstallOverrideList: import_smithy_client.expectString,\n InstalledCount: import_smithy_client.expectInt32,\n InstalledOtherCount: import_smithy_client.expectInt32,\n InstalledPendingRebootCount: import_smithy_client.expectInt32,\n InstalledRejectedCount: import_smithy_client.expectInt32,\n InstanceId: import_smithy_client.expectString,\n LastNoRebootInstallOperationTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastNoRebootInstallOperationTime\"),\n MissingCount: import_smithy_client.expectInt32,\n NotApplicableCount: import_smithy_client.expectInt32,\n Operation: import_smithy_client.expectString,\n OperationEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"OperationEndTime\"),\n OperationStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"OperationStartTime\"),\n OtherNonCompliantCount: import_smithy_client.expectInt32,\n OwnerInformation: import_smithy_client.expectString,\n PatchGroup: import_smithy_client.expectString,\n RebootOption: import_smithy_client.expectString,\n SecurityNonCompliantCount: import_smithy_client.expectInt32,\n SnapshotId: import_smithy_client.expectString,\n UnreportedNotApplicableCount: import_smithy_client.expectInt32\n });\n}, \"de_InstancePatchState\");\nvar de_InstancePatchStateList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstancePatchState(entry, context);\n });\n return retVal;\n}, \"de_InstancePatchStateList\");\nvar de_InstancePatchStatesList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstancePatchState(entry, context);\n });\n return retVal;\n}, \"de_InstancePatchStatesList\");\nvar de_InstanceProperties = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceProperty(entry, context);\n });\n return retVal;\n}, \"de_InstanceProperties\");\nvar de_InstanceProperty = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationId: import_smithy_client.expectString,\n AgentVersion: import_smithy_client.expectString,\n Architecture: import_smithy_client.expectString,\n AssociationOverview: import_smithy_client._json,\n AssociationStatus: import_smithy_client.expectString,\n ComputerName: import_smithy_client.expectString,\n IPAddress: import_smithy_client.expectString,\n IamRole: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n InstanceRole: import_smithy_client.expectString,\n InstanceState: import_smithy_client.expectString,\n InstanceType: import_smithy_client.expectString,\n KeyName: import_smithy_client.expectString,\n LastAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAssociationExecutionDate\"),\n LastPingDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastPingDateTime\"),\n LastSuccessfulAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulAssociationExecutionDate\"),\n LaunchTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LaunchTime\"),\n Name: import_smithy_client.expectString,\n PingStatus: import_smithy_client.expectString,\n PlatformName: import_smithy_client.expectString,\n PlatformType: import_smithy_client.expectString,\n PlatformVersion: import_smithy_client.expectString,\n RegistrationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RegistrationDate\"),\n ResourceType: import_smithy_client.expectString,\n SourceId: import_smithy_client.expectString,\n SourceType: import_smithy_client.expectString\n });\n}, \"de_InstanceProperty\");\nvar de_InventoryDeletionsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InventoryDeletionStatusItem(entry, context);\n });\n return retVal;\n}, \"de_InventoryDeletionsList\");\nvar de_InventoryDeletionStatusItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DeletionId: import_smithy_client.expectString,\n DeletionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionStartTime\"),\n DeletionSummary: import_smithy_client._json,\n LastStatus: import_smithy_client.expectString,\n LastStatusMessage: import_smithy_client.expectString,\n LastStatusUpdateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastStatusUpdateTime\"),\n TypeName: import_smithy_client.expectString\n });\n}, \"de_InventoryDeletionStatusItem\");\nvar de_ListAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Associations: /* @__PURE__ */ __name((_) => de_AssociationList(_, context), \"Associations\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListAssociationsResult\");\nvar de_ListAssociationVersionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationVersions: /* @__PURE__ */ __name((_) => de_AssociationVersionList(_, context), \"AssociationVersions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListAssociationVersionsResult\");\nvar de_ListCommandInvocationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CommandInvocations: /* @__PURE__ */ __name((_) => de_CommandInvocationList(_, context), \"CommandInvocations\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListCommandInvocationsResult\");\nvar de_ListCommandsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Commands: /* @__PURE__ */ __name((_) => de_CommandList(_, context), \"Commands\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListCommandsResult\");\nvar de_ListComplianceItemsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ComplianceItems: /* @__PURE__ */ __name((_) => de_ComplianceItemList(_, context), \"ComplianceItems\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListComplianceItemsResult\");\nvar de_ListDocumentMetadataHistoryResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Author: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Metadata: /* @__PURE__ */ __name((_) => de_DocumentMetadataResponseInfo(_, context), \"Metadata\"),\n Name: import_smithy_client.expectString,\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListDocumentMetadataHistoryResponse\");\nvar de_ListDocumentsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentIdentifiers: /* @__PURE__ */ __name((_) => de_DocumentIdentifierList(_, context), \"DocumentIdentifiers\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListDocumentsResult\");\nvar de_ListDocumentVersionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentVersions: /* @__PURE__ */ __name((_) => de_DocumentVersionList(_, context), \"DocumentVersions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListDocumentVersionsResult\");\nvar de_ListNodesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Nodes: /* @__PURE__ */ __name((_) => de_NodeList(_, context), \"Nodes\")\n });\n}, \"de_ListNodesResult\");\nvar de_ListOpsItemEventsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Summaries: /* @__PURE__ */ __name((_) => de_OpsItemEventSummaries(_, context), \"Summaries\")\n });\n}, \"de_ListOpsItemEventsResponse\");\nvar de_ListOpsItemRelatedItemsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Summaries: /* @__PURE__ */ __name((_) => de_OpsItemRelatedItemSummaries(_, context), \"Summaries\")\n });\n}, \"de_ListOpsItemRelatedItemsResponse\");\nvar de_ListOpsMetadataResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n OpsMetadataList: /* @__PURE__ */ __name((_) => de_OpsMetadataList(_, context), \"OpsMetadataList\")\n });\n}, \"de_ListOpsMetadataResult\");\nvar de_ListResourceComplianceSummariesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n ResourceComplianceSummaryItems: /* @__PURE__ */ __name((_) => de_ResourceComplianceSummaryItemList(_, context), \"ResourceComplianceSummaryItems\")\n });\n}, \"de_ListResourceComplianceSummariesResult\");\nvar de_ListResourceDataSyncResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n ResourceDataSyncItems: /* @__PURE__ */ __name((_) => de_ResourceDataSyncItemList(_, context), \"ResourceDataSyncItems\")\n });\n}, \"de_ListResourceDataSyncResult\");\nvar de_MaintenanceWindowExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString,\n WindowId: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowExecution\");\nvar de_MaintenanceWindowExecutionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MaintenanceWindowExecution(entry, context);\n });\n return retVal;\n}, \"de_MaintenanceWindowExecutionList\");\nvar de_MaintenanceWindowExecutionTaskIdentity = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskArn: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskType: import_smithy_client.expectString,\n TriggeredAlarms: import_smithy_client._json,\n WindowExecutionId: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowExecutionTaskIdentity\");\nvar de_MaintenanceWindowExecutionTaskIdentityList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MaintenanceWindowExecutionTaskIdentity(entry, context);\n });\n return retVal;\n}, \"de_MaintenanceWindowExecutionTaskIdentityList\");\nvar de_MaintenanceWindowExecutionTaskInvocationIdentity = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n ExecutionId: import_smithy_client.expectString,\n InvocationId: import_smithy_client.expectString,\n OwnerInformation: import_smithy_client.expectString,\n Parameters: import_smithy_client.expectString,\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskType: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString,\n WindowTargetId: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowExecutionTaskInvocationIdentity\");\nvar de_MaintenanceWindowExecutionTaskInvocationIdentityList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MaintenanceWindowExecutionTaskInvocationIdentity(entry, context);\n });\n return retVal;\n}, \"de_MaintenanceWindowExecutionTaskInvocationIdentityList\");\nvar de_MaintenanceWindowLambdaParameters = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ClientContext: import_smithy_client.expectString,\n Payload: context.base64Decoder,\n Qualifier: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowLambdaParameters\");\nvar de_MaintenanceWindowTaskInvocationParameters = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Automation: import_smithy_client._json,\n Lambda: /* @__PURE__ */ __name((_) => de_MaintenanceWindowLambdaParameters(_, context), \"Lambda\"),\n RunCommand: import_smithy_client._json,\n StepFunctions: import_smithy_client._json\n });\n}, \"de_MaintenanceWindowTaskInvocationParameters\");\nvar de_Node = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CaptureTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CaptureTime\"),\n Id: import_smithy_client.expectString,\n NodeType: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)((0, import_core2.awsExpectUnion)(_)), \"NodeType\"),\n Owner: import_smithy_client._json,\n Region: import_smithy_client.expectString\n });\n}, \"de_Node\");\nvar de_NodeList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Node(entry, context);\n });\n return retVal;\n}, \"de_NodeList\");\nvar de_OpsItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActualEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualStartTime\"),\n Category: import_smithy_client.expectString,\n CreatedBy: import_smithy_client.expectString,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n Description: import_smithy_client.expectString,\n LastModifiedBy: import_smithy_client.expectString,\n LastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedTime\"),\n Notifications: import_smithy_client._json,\n OperationalData: import_smithy_client._json,\n OpsItemArn: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n OpsItemType: import_smithy_client.expectString,\n PlannedEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedStartTime\"),\n Priority: import_smithy_client.expectInt32,\n RelatedOpsItems: import_smithy_client._json,\n Severity: import_smithy_client.expectString,\n Source: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n Title: import_smithy_client.expectString,\n Version: import_smithy_client.expectString\n });\n}, \"de_OpsItem\");\nvar de_OpsItemEventSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsItemEventSummary(entry, context);\n });\n return retVal;\n}, \"de_OpsItemEventSummaries\");\nvar de_OpsItemEventSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreatedBy: import_smithy_client._json,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n Detail: import_smithy_client.expectString,\n DetailType: import_smithy_client.expectString,\n EventId: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n Source: import_smithy_client.expectString\n });\n}, \"de_OpsItemEventSummary\");\nvar de_OpsItemRelatedItemSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsItemRelatedItemSummary(entry, context);\n });\n return retVal;\n}, \"de_OpsItemRelatedItemSummaries\");\nvar de_OpsItemRelatedItemSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationType: import_smithy_client.expectString,\n CreatedBy: import_smithy_client._json,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n LastModifiedBy: import_smithy_client._json,\n LastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedTime\"),\n OpsItemId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n ResourceUri: import_smithy_client.expectString\n });\n}, \"de_OpsItemRelatedItemSummary\");\nvar de_OpsItemSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsItemSummary(entry, context);\n });\n return retVal;\n}, \"de_OpsItemSummaries\");\nvar de_OpsItemSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActualEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualStartTime\"),\n Category: import_smithy_client.expectString,\n CreatedBy: import_smithy_client.expectString,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n LastModifiedBy: import_smithy_client.expectString,\n LastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedTime\"),\n OperationalData: import_smithy_client._json,\n OpsItemId: import_smithy_client.expectString,\n OpsItemType: import_smithy_client.expectString,\n PlannedEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedStartTime\"),\n Priority: import_smithy_client.expectInt32,\n Severity: import_smithy_client.expectString,\n Source: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n Title: import_smithy_client.expectString\n });\n}, \"de_OpsItemSummary\");\nvar de_OpsMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n OpsMetadataArn: import_smithy_client.expectString,\n ResourceId: import_smithy_client.expectString\n });\n}, \"de_OpsMetadata\");\nvar de_OpsMetadataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsMetadata(entry, context);\n });\n return retVal;\n}, \"de_OpsMetadataList\");\nvar de_Parameter = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n DataType: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n Name: import_smithy_client.expectString,\n Selector: import_smithy_client.expectString,\n SourceResult: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n Value: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n}, \"de_Parameter\");\nvar de_ParameterHistory = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AllowedPattern: import_smithy_client.expectString,\n DataType: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n Labels: import_smithy_client._json,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Policies: import_smithy_client._json,\n Tier: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n Value: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n}, \"de_ParameterHistory\");\nvar de_ParameterHistoryList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ParameterHistory(entry, context);\n });\n return retVal;\n}, \"de_ParameterHistoryList\");\nvar de_ParameterList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Parameter(entry, context);\n });\n return retVal;\n}, \"de_ParameterList\");\nvar de_ParameterMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n AllowedPattern: import_smithy_client.expectString,\n DataType: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Policies: import_smithy_client._json,\n Tier: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n}, \"de_ParameterMetadata\");\nvar de_ParameterMetadataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ParameterMetadata(entry, context);\n });\n return retVal;\n}, \"de_ParameterMetadataList\");\nvar de_Patch = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AdvisoryIds: import_smithy_client._json,\n Arch: import_smithy_client.expectString,\n BugzillaIds: import_smithy_client._json,\n CVEIds: import_smithy_client._json,\n Classification: import_smithy_client.expectString,\n ContentUrl: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n Epoch: import_smithy_client.expectInt32,\n Id: import_smithy_client.expectString,\n KbNumber: import_smithy_client.expectString,\n Language: import_smithy_client.expectString,\n MsrcNumber: import_smithy_client.expectString,\n MsrcSeverity: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Product: import_smithy_client.expectString,\n ProductFamily: import_smithy_client.expectString,\n Release: import_smithy_client.expectString,\n ReleaseDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ReleaseDate\"),\n Repository: import_smithy_client.expectString,\n Severity: import_smithy_client.expectString,\n Title: import_smithy_client.expectString,\n Vendor: import_smithy_client.expectString,\n Version: import_smithy_client.expectString\n });\n}, \"de_Patch\");\nvar de_PatchComplianceData = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CVEIds: import_smithy_client.expectString,\n Classification: import_smithy_client.expectString,\n InstalledTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"InstalledTime\"),\n KBId: import_smithy_client.expectString,\n Severity: import_smithy_client.expectString,\n State: import_smithy_client.expectString,\n Title: import_smithy_client.expectString\n });\n}, \"de_PatchComplianceData\");\nvar de_PatchComplianceDataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_PatchComplianceData(entry, context);\n });\n return retVal;\n}, \"de_PatchComplianceDataList\");\nvar de_PatchList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Patch(entry, context);\n });\n return retVal;\n}, \"de_PatchList\");\nvar de_PatchStatus = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovalDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ApprovalDate\"),\n ComplianceLevel: import_smithy_client.expectString,\n DeploymentStatus: import_smithy_client.expectString\n });\n}, \"de_PatchStatus\");\nvar de_ResetServiceSettingResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ServiceSetting: /* @__PURE__ */ __name((_) => de_ServiceSetting(_, context), \"ServiceSetting\")\n });\n}, \"de_ResetServiceSettingResult\");\nvar de_ResourceComplianceSummaryItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ComplianceType: import_smithy_client.expectString,\n CompliantSummary: import_smithy_client._json,\n ExecutionSummary: /* @__PURE__ */ __name((_) => de_ComplianceExecutionSummary(_, context), \"ExecutionSummary\"),\n NonCompliantSummary: import_smithy_client._json,\n OverallSeverity: import_smithy_client.expectString,\n ResourceId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_ResourceComplianceSummaryItem\");\nvar de_ResourceComplianceSummaryItemList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceComplianceSummaryItem(entry, context);\n });\n return retVal;\n}, \"de_ResourceComplianceSummaryItemList\");\nvar de_ResourceDataSyncItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n LastStatus: import_smithy_client.expectString,\n LastSuccessfulSyncTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulSyncTime\"),\n LastSyncStatusMessage: import_smithy_client.expectString,\n LastSyncTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSyncTime\"),\n S3Destination: import_smithy_client._json,\n SyncCreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"SyncCreatedTime\"),\n SyncLastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"SyncLastModifiedTime\"),\n SyncName: import_smithy_client.expectString,\n SyncSource: import_smithy_client._json,\n SyncType: import_smithy_client.expectString\n });\n}, \"de_ResourceDataSyncItem\");\nvar de_ResourceDataSyncItemList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceDataSyncItem(entry, context);\n });\n return retVal;\n}, \"de_ResourceDataSyncItemList\");\nvar de_ReviewInformation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ReviewedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ReviewedTime\"),\n Reviewer: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_ReviewInformation\");\nvar de_ReviewInformationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ReviewInformation(entry, context);\n });\n return retVal;\n}, \"de_ReviewInformationList\");\nvar de_SendCommandResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Command: /* @__PURE__ */ __name((_) => de_Command(_, context), \"Command\")\n });\n}, \"de_SendCommandResult\");\nvar de_ServiceSetting = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n SettingId: import_smithy_client.expectString,\n SettingValue: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_ServiceSetting\");\nvar de_Session = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Details: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n EndDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndDate\"),\n MaxSessionDuration: import_smithy_client.expectString,\n OutputUrl: import_smithy_client._json,\n Owner: import_smithy_client.expectString,\n Reason: import_smithy_client.expectString,\n SessionId: import_smithy_client.expectString,\n StartDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartDate\"),\n Status: import_smithy_client.expectString,\n Target: import_smithy_client.expectString\n });\n}, \"de_Session\");\nvar de_SessionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Session(entry, context);\n });\n return retVal;\n}, \"de_SessionList\");\nvar de_StepExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Action: import_smithy_client.expectString,\n ExecutionEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionEndTime\"),\n ExecutionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionStartTime\"),\n FailureDetails: import_smithy_client._json,\n FailureMessage: import_smithy_client.expectString,\n Inputs: import_smithy_client._json,\n IsCritical: import_smithy_client.expectBoolean,\n IsEnd: import_smithy_client.expectBoolean,\n MaxAttempts: import_smithy_client.expectInt32,\n NextStep: import_smithy_client.expectString,\n OnFailure: import_smithy_client.expectString,\n Outputs: import_smithy_client._json,\n OverriddenParameters: import_smithy_client._json,\n ParentStepDetails: import_smithy_client._json,\n Response: import_smithy_client.expectString,\n ResponseCode: import_smithy_client.expectString,\n StepExecutionId: import_smithy_client.expectString,\n StepName: import_smithy_client.expectString,\n StepStatus: import_smithy_client.expectString,\n TargetLocation: import_smithy_client._json,\n Targets: import_smithy_client._json,\n TimeoutSeconds: import_smithy_client.expectLong,\n TriggeredAlarms: import_smithy_client._json,\n ValidNextSteps: import_smithy_client._json\n });\n}, \"de_StepExecution\");\nvar de_StepExecutionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StepExecution(entry, context);\n });\n return retVal;\n}, \"de_StepExecutionList\");\nvar de_UpdateAssociationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_UpdateAssociationResult\");\nvar de_UpdateAssociationStatusResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_UpdateAssociationStatusResult\");\nvar de_UpdateDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentDescription: /* @__PURE__ */ __name((_) => de_DocumentDescription(_, context), \"DocumentDescription\")\n });\n}, \"de_UpdateDocumentResult\");\nvar de_UpdateMaintenanceWindowTaskResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n CutoffBehavior: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Priority: import_smithy_client.expectInt32,\n ServiceRoleArn: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TaskArn: import_smithy_client.expectString,\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => de_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n WindowId: import_smithy_client.expectString,\n WindowTaskId: import_smithy_client.expectString\n });\n}, \"de_UpdateMaintenanceWindowTaskResult\");\nvar de_UpdatePatchBaselineResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovalRules: import_smithy_client._json,\n ApprovedPatches: import_smithy_client._json,\n ApprovedPatchesComplianceLevel: import_smithy_client.expectString,\n ApprovedPatchesEnableNonSecurity: import_smithy_client.expectBoolean,\n AvailableSecurityUpdatesComplianceStatus: import_smithy_client.expectString,\n BaselineId: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Description: import_smithy_client.expectString,\n GlobalFilters: import_smithy_client._json,\n ModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ModifiedDate\"),\n Name: import_smithy_client.expectString,\n OperatingSystem: import_smithy_client.expectString,\n RejectedPatches: import_smithy_client._json,\n RejectedPatchesAction: import_smithy_client.expectString,\n Sources: import_smithy_client._json\n });\n}, \"de_UpdatePatchBaselineResult\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSMServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AmazonSSM.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/AddTagsToResourceCommand.ts\nvar AddTagsToResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"AddTagsToResource\", {}).n(\"SSMClient\", \"AddTagsToResourceCommand\").f(void 0, void 0).ser(se_AddTagsToResourceCommand).de(de_AddTagsToResourceCommand).build() {\n static {\n __name(this, \"AddTagsToResourceCommand\");\n }\n};\n\n// src/commands/AssociateOpsItemRelatedItemCommand.ts\n\n\n\nvar AssociateOpsItemRelatedItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"AssociateOpsItemRelatedItem\", {}).n(\"SSMClient\", \"AssociateOpsItemRelatedItemCommand\").f(void 0, void 0).ser(se_AssociateOpsItemRelatedItemCommand).de(de_AssociateOpsItemRelatedItemCommand).build() {\n static {\n __name(this, \"AssociateOpsItemRelatedItemCommand\");\n }\n};\n\n// src/commands/CancelCommandCommand.ts\n\n\n\nvar CancelCommandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CancelCommand\", {}).n(\"SSMClient\", \"CancelCommandCommand\").f(void 0, void 0).ser(se_CancelCommandCommand).de(de_CancelCommandCommand).build() {\n static {\n __name(this, \"CancelCommandCommand\");\n }\n};\n\n// src/commands/CancelMaintenanceWindowExecutionCommand.ts\n\n\n\nvar CancelMaintenanceWindowExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CancelMaintenanceWindowExecution\", {}).n(\"SSMClient\", \"CancelMaintenanceWindowExecutionCommand\").f(void 0, void 0).ser(se_CancelMaintenanceWindowExecutionCommand).de(de_CancelMaintenanceWindowExecutionCommand).build() {\n static {\n __name(this, \"CancelMaintenanceWindowExecutionCommand\");\n }\n};\n\n// src/commands/CreateActivationCommand.ts\n\n\n\nvar CreateActivationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateActivation\", {}).n(\"SSMClient\", \"CreateActivationCommand\").f(void 0, void 0).ser(se_CreateActivationCommand).de(de_CreateActivationCommand).build() {\n static {\n __name(this, \"CreateActivationCommand\");\n }\n};\n\n// src/commands/CreateAssociationBatchCommand.ts\n\n\n\nvar CreateAssociationBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateAssociationBatch\", {}).n(\"SSMClient\", \"CreateAssociationBatchCommand\").f(CreateAssociationBatchRequestFilterSensitiveLog, CreateAssociationBatchResultFilterSensitiveLog).ser(se_CreateAssociationBatchCommand).de(de_CreateAssociationBatchCommand).build() {\n static {\n __name(this, \"CreateAssociationBatchCommand\");\n }\n};\n\n// src/commands/CreateAssociationCommand.ts\n\n\n\nvar CreateAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateAssociation\", {}).n(\"SSMClient\", \"CreateAssociationCommand\").f(CreateAssociationRequestFilterSensitiveLog, CreateAssociationResultFilterSensitiveLog).ser(se_CreateAssociationCommand).de(de_CreateAssociationCommand).build() {\n static {\n __name(this, \"CreateAssociationCommand\");\n }\n};\n\n// src/commands/CreateDocumentCommand.ts\n\n\n\nvar CreateDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateDocument\", {}).n(\"SSMClient\", \"CreateDocumentCommand\").f(void 0, void 0).ser(se_CreateDocumentCommand).de(de_CreateDocumentCommand).build() {\n static {\n __name(this, \"CreateDocumentCommand\");\n }\n};\n\n// src/commands/CreateMaintenanceWindowCommand.ts\n\n\n\nvar CreateMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateMaintenanceWindow\", {}).n(\"SSMClient\", \"CreateMaintenanceWindowCommand\").f(CreateMaintenanceWindowRequestFilterSensitiveLog, void 0).ser(se_CreateMaintenanceWindowCommand).de(de_CreateMaintenanceWindowCommand).build() {\n static {\n __name(this, \"CreateMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/CreateOpsItemCommand.ts\n\n\n\nvar CreateOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateOpsItem\", {}).n(\"SSMClient\", \"CreateOpsItemCommand\").f(void 0, void 0).ser(se_CreateOpsItemCommand).de(de_CreateOpsItemCommand).build() {\n static {\n __name(this, \"CreateOpsItemCommand\");\n }\n};\n\n// src/commands/CreateOpsMetadataCommand.ts\n\n\n\nvar CreateOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateOpsMetadata\", {}).n(\"SSMClient\", \"CreateOpsMetadataCommand\").f(void 0, void 0).ser(se_CreateOpsMetadataCommand).de(de_CreateOpsMetadataCommand).build() {\n static {\n __name(this, \"CreateOpsMetadataCommand\");\n }\n};\n\n// src/commands/CreatePatchBaselineCommand.ts\n\n\n\nvar CreatePatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreatePatchBaseline\", {}).n(\"SSMClient\", \"CreatePatchBaselineCommand\").f(CreatePatchBaselineRequestFilterSensitiveLog, void 0).ser(se_CreatePatchBaselineCommand).de(de_CreatePatchBaselineCommand).build() {\n static {\n __name(this, \"CreatePatchBaselineCommand\");\n }\n};\n\n// src/commands/CreateResourceDataSyncCommand.ts\n\n\n\nvar CreateResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateResourceDataSync\", {}).n(\"SSMClient\", \"CreateResourceDataSyncCommand\").f(void 0, void 0).ser(se_CreateResourceDataSyncCommand).de(de_CreateResourceDataSyncCommand).build() {\n static {\n __name(this, \"CreateResourceDataSyncCommand\");\n }\n};\n\n// src/commands/DeleteActivationCommand.ts\n\n\n\nvar DeleteActivationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteActivation\", {}).n(\"SSMClient\", \"DeleteActivationCommand\").f(void 0, void 0).ser(se_DeleteActivationCommand).de(de_DeleteActivationCommand).build() {\n static {\n __name(this, \"DeleteActivationCommand\");\n }\n};\n\n// src/commands/DeleteAssociationCommand.ts\n\n\n\nvar DeleteAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteAssociation\", {}).n(\"SSMClient\", \"DeleteAssociationCommand\").f(void 0, void 0).ser(se_DeleteAssociationCommand).de(de_DeleteAssociationCommand).build() {\n static {\n __name(this, \"DeleteAssociationCommand\");\n }\n};\n\n// src/commands/DeleteDocumentCommand.ts\n\n\n\nvar DeleteDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteDocument\", {}).n(\"SSMClient\", \"DeleteDocumentCommand\").f(void 0, void 0).ser(se_DeleteDocumentCommand).de(de_DeleteDocumentCommand).build() {\n static {\n __name(this, \"DeleteDocumentCommand\");\n }\n};\n\n// src/commands/DeleteInventoryCommand.ts\n\n\n\nvar DeleteInventoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteInventory\", {}).n(\"SSMClient\", \"DeleteInventoryCommand\").f(void 0, void 0).ser(se_DeleteInventoryCommand).de(de_DeleteInventoryCommand).build() {\n static {\n __name(this, \"DeleteInventoryCommand\");\n }\n};\n\n// src/commands/DeleteMaintenanceWindowCommand.ts\n\n\n\nvar DeleteMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteMaintenanceWindow\", {}).n(\"SSMClient\", \"DeleteMaintenanceWindowCommand\").f(void 0, void 0).ser(se_DeleteMaintenanceWindowCommand).de(de_DeleteMaintenanceWindowCommand).build() {\n static {\n __name(this, \"DeleteMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/DeleteOpsItemCommand.ts\n\n\n\nvar DeleteOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteOpsItem\", {}).n(\"SSMClient\", \"DeleteOpsItemCommand\").f(void 0, void 0).ser(se_DeleteOpsItemCommand).de(de_DeleteOpsItemCommand).build() {\n static {\n __name(this, \"DeleteOpsItemCommand\");\n }\n};\n\n// src/commands/DeleteOpsMetadataCommand.ts\n\n\n\nvar DeleteOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteOpsMetadata\", {}).n(\"SSMClient\", \"DeleteOpsMetadataCommand\").f(void 0, void 0).ser(se_DeleteOpsMetadataCommand).de(de_DeleteOpsMetadataCommand).build() {\n static {\n __name(this, \"DeleteOpsMetadataCommand\");\n }\n};\n\n// src/commands/DeleteParameterCommand.ts\n\n\n\nvar DeleteParameterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteParameter\", {}).n(\"SSMClient\", \"DeleteParameterCommand\").f(void 0, void 0).ser(se_DeleteParameterCommand).de(de_DeleteParameterCommand).build() {\n static {\n __name(this, \"DeleteParameterCommand\");\n }\n};\n\n// src/commands/DeleteParametersCommand.ts\n\n\n\nvar DeleteParametersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteParameters\", {}).n(\"SSMClient\", \"DeleteParametersCommand\").f(void 0, void 0).ser(se_DeleteParametersCommand).de(de_DeleteParametersCommand).build() {\n static {\n __name(this, \"DeleteParametersCommand\");\n }\n};\n\n// src/commands/DeletePatchBaselineCommand.ts\n\n\n\nvar DeletePatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeletePatchBaseline\", {}).n(\"SSMClient\", \"DeletePatchBaselineCommand\").f(void 0, void 0).ser(se_DeletePatchBaselineCommand).de(de_DeletePatchBaselineCommand).build() {\n static {\n __name(this, \"DeletePatchBaselineCommand\");\n }\n};\n\n// src/commands/DeleteResourceDataSyncCommand.ts\n\n\n\nvar DeleteResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteResourceDataSync\", {}).n(\"SSMClient\", \"DeleteResourceDataSyncCommand\").f(void 0, void 0).ser(se_DeleteResourceDataSyncCommand).de(de_DeleteResourceDataSyncCommand).build() {\n static {\n __name(this, \"DeleteResourceDataSyncCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteResourcePolicy\", {}).n(\"SSMClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeregisterManagedInstanceCommand.ts\n\n\n\nvar DeregisterManagedInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterManagedInstance\", {}).n(\"SSMClient\", \"DeregisterManagedInstanceCommand\").f(void 0, void 0).ser(se_DeregisterManagedInstanceCommand).de(de_DeregisterManagedInstanceCommand).build() {\n static {\n __name(this, \"DeregisterManagedInstanceCommand\");\n }\n};\n\n// src/commands/DeregisterPatchBaselineForPatchGroupCommand.ts\n\n\n\nvar DeregisterPatchBaselineForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterPatchBaselineForPatchGroup\", {}).n(\"SSMClient\", \"DeregisterPatchBaselineForPatchGroupCommand\").f(void 0, void 0).ser(se_DeregisterPatchBaselineForPatchGroupCommand).de(de_DeregisterPatchBaselineForPatchGroupCommand).build() {\n static {\n __name(this, \"DeregisterPatchBaselineForPatchGroupCommand\");\n }\n};\n\n// src/commands/DeregisterTargetFromMaintenanceWindowCommand.ts\n\n\n\nvar DeregisterTargetFromMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterTargetFromMaintenanceWindow\", {}).n(\"SSMClient\", \"DeregisterTargetFromMaintenanceWindowCommand\").f(void 0, void 0).ser(se_DeregisterTargetFromMaintenanceWindowCommand).de(de_DeregisterTargetFromMaintenanceWindowCommand).build() {\n static {\n __name(this, \"DeregisterTargetFromMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/DeregisterTaskFromMaintenanceWindowCommand.ts\n\n\n\nvar DeregisterTaskFromMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterTaskFromMaintenanceWindow\", {}).n(\"SSMClient\", \"DeregisterTaskFromMaintenanceWindowCommand\").f(void 0, void 0).ser(se_DeregisterTaskFromMaintenanceWindowCommand).de(de_DeregisterTaskFromMaintenanceWindowCommand).build() {\n static {\n __name(this, \"DeregisterTaskFromMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/DescribeActivationsCommand.ts\n\n\n\nvar DescribeActivationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeActivations\", {}).n(\"SSMClient\", \"DescribeActivationsCommand\").f(void 0, void 0).ser(se_DescribeActivationsCommand).de(de_DescribeActivationsCommand).build() {\n static {\n __name(this, \"DescribeActivationsCommand\");\n }\n};\n\n// src/commands/DescribeAssociationCommand.ts\n\n\n\nvar DescribeAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAssociation\", {}).n(\"SSMClient\", \"DescribeAssociationCommand\").f(void 0, DescribeAssociationResultFilterSensitiveLog).ser(se_DescribeAssociationCommand).de(de_DescribeAssociationCommand).build() {\n static {\n __name(this, \"DescribeAssociationCommand\");\n }\n};\n\n// src/commands/DescribeAssociationExecutionsCommand.ts\n\n\n\nvar DescribeAssociationExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAssociationExecutions\", {}).n(\"SSMClient\", \"DescribeAssociationExecutionsCommand\").f(void 0, void 0).ser(se_DescribeAssociationExecutionsCommand).de(de_DescribeAssociationExecutionsCommand).build() {\n static {\n __name(this, \"DescribeAssociationExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeAssociationExecutionTargetsCommand.ts\n\n\n\nvar DescribeAssociationExecutionTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAssociationExecutionTargets\", {}).n(\"SSMClient\", \"DescribeAssociationExecutionTargetsCommand\").f(void 0, void 0).ser(se_DescribeAssociationExecutionTargetsCommand).de(de_DescribeAssociationExecutionTargetsCommand).build() {\n static {\n __name(this, \"DescribeAssociationExecutionTargetsCommand\");\n }\n};\n\n// src/commands/DescribeAutomationExecutionsCommand.ts\n\n\n\nvar DescribeAutomationExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAutomationExecutions\", {}).n(\"SSMClient\", \"DescribeAutomationExecutionsCommand\").f(void 0, void 0).ser(se_DescribeAutomationExecutionsCommand).de(de_DescribeAutomationExecutionsCommand).build() {\n static {\n __name(this, \"DescribeAutomationExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeAutomationStepExecutionsCommand.ts\n\n\n\nvar DescribeAutomationStepExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAutomationStepExecutions\", {}).n(\"SSMClient\", \"DescribeAutomationStepExecutionsCommand\").f(void 0, void 0).ser(se_DescribeAutomationStepExecutionsCommand).de(de_DescribeAutomationStepExecutionsCommand).build() {\n static {\n __name(this, \"DescribeAutomationStepExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeAvailablePatchesCommand.ts\n\n\n\nvar DescribeAvailablePatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAvailablePatches\", {}).n(\"SSMClient\", \"DescribeAvailablePatchesCommand\").f(void 0, void 0).ser(se_DescribeAvailablePatchesCommand).de(de_DescribeAvailablePatchesCommand).build() {\n static {\n __name(this, \"DescribeAvailablePatchesCommand\");\n }\n};\n\n// src/commands/DescribeDocumentCommand.ts\n\n\n\nvar DescribeDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeDocument\", {}).n(\"SSMClient\", \"DescribeDocumentCommand\").f(void 0, void 0).ser(se_DescribeDocumentCommand).de(de_DescribeDocumentCommand).build() {\n static {\n __name(this, \"DescribeDocumentCommand\");\n }\n};\n\n// src/commands/DescribeDocumentPermissionCommand.ts\n\n\n\nvar DescribeDocumentPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeDocumentPermission\", {}).n(\"SSMClient\", \"DescribeDocumentPermissionCommand\").f(void 0, void 0).ser(se_DescribeDocumentPermissionCommand).de(de_DescribeDocumentPermissionCommand).build() {\n static {\n __name(this, \"DescribeDocumentPermissionCommand\");\n }\n};\n\n// src/commands/DescribeEffectiveInstanceAssociationsCommand.ts\n\n\n\nvar DescribeEffectiveInstanceAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeEffectiveInstanceAssociations\", {}).n(\"SSMClient\", \"DescribeEffectiveInstanceAssociationsCommand\").f(void 0, void 0).ser(se_DescribeEffectiveInstanceAssociationsCommand).de(de_DescribeEffectiveInstanceAssociationsCommand).build() {\n static {\n __name(this, \"DescribeEffectiveInstanceAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeEffectivePatchesForPatchBaselineCommand.ts\n\n\n\nvar DescribeEffectivePatchesForPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeEffectivePatchesForPatchBaseline\", {}).n(\"SSMClient\", \"DescribeEffectivePatchesForPatchBaselineCommand\").f(void 0, void 0).ser(se_DescribeEffectivePatchesForPatchBaselineCommand).de(de_DescribeEffectivePatchesForPatchBaselineCommand).build() {\n static {\n __name(this, \"DescribeEffectivePatchesForPatchBaselineCommand\");\n }\n};\n\n// src/commands/DescribeInstanceAssociationsStatusCommand.ts\n\n\n\nvar DescribeInstanceAssociationsStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstanceAssociationsStatus\", {}).n(\"SSMClient\", \"DescribeInstanceAssociationsStatusCommand\").f(void 0, void 0).ser(se_DescribeInstanceAssociationsStatusCommand).de(de_DescribeInstanceAssociationsStatusCommand).build() {\n static {\n __name(this, \"DescribeInstanceAssociationsStatusCommand\");\n }\n};\n\n// src/commands/DescribeInstanceInformationCommand.ts\n\n\n\nvar DescribeInstanceInformationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstanceInformation\", {}).n(\"SSMClient\", \"DescribeInstanceInformationCommand\").f(void 0, DescribeInstanceInformationResultFilterSensitiveLog).ser(se_DescribeInstanceInformationCommand).de(de_DescribeInstanceInformationCommand).build() {\n static {\n __name(this, \"DescribeInstanceInformationCommand\");\n }\n};\n\n// src/commands/DescribeInstancePatchesCommand.ts\n\n\n\nvar DescribeInstancePatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstancePatches\", {}).n(\"SSMClient\", \"DescribeInstancePatchesCommand\").f(void 0, void 0).ser(se_DescribeInstancePatchesCommand).de(de_DescribeInstancePatchesCommand).build() {\n static {\n __name(this, \"DescribeInstancePatchesCommand\");\n }\n};\n\n// src/commands/DescribeInstancePatchStatesCommand.ts\n\n\n\nvar DescribeInstancePatchStatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstancePatchStates\", {}).n(\"SSMClient\", \"DescribeInstancePatchStatesCommand\").f(void 0, DescribeInstancePatchStatesResultFilterSensitiveLog).ser(se_DescribeInstancePatchStatesCommand).de(de_DescribeInstancePatchStatesCommand).build() {\n static {\n __name(this, \"DescribeInstancePatchStatesCommand\");\n }\n};\n\n// src/commands/DescribeInstancePatchStatesForPatchGroupCommand.ts\n\n\n\nvar DescribeInstancePatchStatesForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstancePatchStatesForPatchGroup\", {}).n(\"SSMClient\", \"DescribeInstancePatchStatesForPatchGroupCommand\").f(void 0, DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog).ser(se_DescribeInstancePatchStatesForPatchGroupCommand).de(de_DescribeInstancePatchStatesForPatchGroupCommand).build() {\n static {\n __name(this, \"DescribeInstancePatchStatesForPatchGroupCommand\");\n }\n};\n\n// src/commands/DescribeInstancePropertiesCommand.ts\n\n\n\nvar DescribeInstancePropertiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstanceProperties\", {}).n(\"SSMClient\", \"DescribeInstancePropertiesCommand\").f(void 0, DescribeInstancePropertiesResultFilterSensitiveLog).ser(se_DescribeInstancePropertiesCommand).de(de_DescribeInstancePropertiesCommand).build() {\n static {\n __name(this, \"DescribeInstancePropertiesCommand\");\n }\n};\n\n// src/commands/DescribeInventoryDeletionsCommand.ts\n\n\n\nvar DescribeInventoryDeletionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInventoryDeletions\", {}).n(\"SSMClient\", \"DescribeInventoryDeletionsCommand\").f(void 0, void 0).ser(se_DescribeInventoryDeletionsCommand).de(de_DescribeInventoryDeletionsCommand).build() {\n static {\n __name(this, \"DescribeInventoryDeletionsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowExecutionsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowExecutions\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowExecutionsCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowExecutionsCommand).de(de_DescribeMaintenanceWindowExecutionsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowExecutionTaskInvocationsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowExecutionTaskInvocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowExecutionTaskInvocations\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowExecutionTaskInvocationsCommand\").f(void 0, DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowExecutionTaskInvocationsCommand).de(de_DescribeMaintenanceWindowExecutionTaskInvocationsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowExecutionTaskInvocationsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowExecutionTasksCommand.ts\n\n\n\nvar DescribeMaintenanceWindowExecutionTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowExecutionTasks\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowExecutionTasksCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowExecutionTasksCommand).de(de_DescribeMaintenanceWindowExecutionTasksCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowExecutionTasksCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowScheduleCommand.ts\n\n\n\nvar DescribeMaintenanceWindowScheduleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowSchedule\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowScheduleCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowScheduleCommand).de(de_DescribeMaintenanceWindowScheduleCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowScheduleCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindows\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowsCommand\").f(void 0, DescribeMaintenanceWindowsResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowsCommand).de(de_DescribeMaintenanceWindowsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowsForTargetCommand.ts\n\n\n\nvar DescribeMaintenanceWindowsForTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowsForTarget\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowsForTargetCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowsForTargetCommand).de(de_DescribeMaintenanceWindowsForTargetCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowsForTargetCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowTargetsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowTargets\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowTargetsCommand\").f(void 0, DescribeMaintenanceWindowTargetsResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowTargetsCommand).de(de_DescribeMaintenanceWindowTargetsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowTargetsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowTasksCommand.ts\n\n\n\nvar DescribeMaintenanceWindowTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowTasks\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowTasksCommand\").f(void 0, DescribeMaintenanceWindowTasksResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowTasksCommand).de(de_DescribeMaintenanceWindowTasksCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowTasksCommand\");\n }\n};\n\n// src/commands/DescribeOpsItemsCommand.ts\n\n\n\nvar DescribeOpsItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeOpsItems\", {}).n(\"SSMClient\", \"DescribeOpsItemsCommand\").f(void 0, void 0).ser(se_DescribeOpsItemsCommand).de(de_DescribeOpsItemsCommand).build() {\n static {\n __name(this, \"DescribeOpsItemsCommand\");\n }\n};\n\n// src/commands/DescribeParametersCommand.ts\n\n\n\nvar DescribeParametersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeParameters\", {}).n(\"SSMClient\", \"DescribeParametersCommand\").f(void 0, void 0).ser(se_DescribeParametersCommand).de(de_DescribeParametersCommand).build() {\n static {\n __name(this, \"DescribeParametersCommand\");\n }\n};\n\n// src/commands/DescribePatchBaselinesCommand.ts\n\n\n\nvar DescribePatchBaselinesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchBaselines\", {}).n(\"SSMClient\", \"DescribePatchBaselinesCommand\").f(void 0, void 0).ser(se_DescribePatchBaselinesCommand).de(de_DescribePatchBaselinesCommand).build() {\n static {\n __name(this, \"DescribePatchBaselinesCommand\");\n }\n};\n\n// src/commands/DescribePatchGroupsCommand.ts\n\n\n\nvar DescribePatchGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchGroups\", {}).n(\"SSMClient\", \"DescribePatchGroupsCommand\").f(void 0, void 0).ser(se_DescribePatchGroupsCommand).de(de_DescribePatchGroupsCommand).build() {\n static {\n __name(this, \"DescribePatchGroupsCommand\");\n }\n};\n\n// src/commands/DescribePatchGroupStateCommand.ts\n\n\n\nvar DescribePatchGroupStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchGroupState\", {}).n(\"SSMClient\", \"DescribePatchGroupStateCommand\").f(void 0, void 0).ser(se_DescribePatchGroupStateCommand).de(de_DescribePatchGroupStateCommand).build() {\n static {\n __name(this, \"DescribePatchGroupStateCommand\");\n }\n};\n\n// src/commands/DescribePatchPropertiesCommand.ts\n\n\n\nvar DescribePatchPropertiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchProperties\", {}).n(\"SSMClient\", \"DescribePatchPropertiesCommand\").f(void 0, void 0).ser(se_DescribePatchPropertiesCommand).de(de_DescribePatchPropertiesCommand).build() {\n static {\n __name(this, \"DescribePatchPropertiesCommand\");\n }\n};\n\n// src/commands/DescribeSessionsCommand.ts\n\n\n\nvar DescribeSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeSessions\", {}).n(\"SSMClient\", \"DescribeSessionsCommand\").f(void 0, void 0).ser(se_DescribeSessionsCommand).de(de_DescribeSessionsCommand).build() {\n static {\n __name(this, \"DescribeSessionsCommand\");\n }\n};\n\n// src/commands/DisassociateOpsItemRelatedItemCommand.ts\n\n\n\nvar DisassociateOpsItemRelatedItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DisassociateOpsItemRelatedItem\", {}).n(\"SSMClient\", \"DisassociateOpsItemRelatedItemCommand\").f(void 0, void 0).ser(se_DisassociateOpsItemRelatedItemCommand).de(de_DisassociateOpsItemRelatedItemCommand).build() {\n static {\n __name(this, \"DisassociateOpsItemRelatedItemCommand\");\n }\n};\n\n// src/commands/GetAccessTokenCommand.ts\n\n\n\nvar GetAccessTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetAccessToken\", {}).n(\"SSMClient\", \"GetAccessTokenCommand\").f(void 0, GetAccessTokenResponseFilterSensitiveLog).ser(se_GetAccessTokenCommand).de(de_GetAccessTokenCommand).build() {\n static {\n __name(this, \"GetAccessTokenCommand\");\n }\n};\n\n// src/commands/GetAutomationExecutionCommand.ts\n\n\n\nvar GetAutomationExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetAutomationExecution\", {}).n(\"SSMClient\", \"GetAutomationExecutionCommand\").f(void 0, void 0).ser(se_GetAutomationExecutionCommand).de(de_GetAutomationExecutionCommand).build() {\n static {\n __name(this, \"GetAutomationExecutionCommand\");\n }\n};\n\n// src/commands/GetCalendarStateCommand.ts\n\n\n\nvar GetCalendarStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetCalendarState\", {}).n(\"SSMClient\", \"GetCalendarStateCommand\").f(void 0, void 0).ser(se_GetCalendarStateCommand).de(de_GetCalendarStateCommand).build() {\n static {\n __name(this, \"GetCalendarStateCommand\");\n }\n};\n\n// src/commands/GetCommandInvocationCommand.ts\n\n\n\nvar GetCommandInvocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetCommandInvocation\", {}).n(\"SSMClient\", \"GetCommandInvocationCommand\").f(void 0, void 0).ser(se_GetCommandInvocationCommand).de(de_GetCommandInvocationCommand).build() {\n static {\n __name(this, \"GetCommandInvocationCommand\");\n }\n};\n\n// src/commands/GetConnectionStatusCommand.ts\n\n\n\nvar GetConnectionStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetConnectionStatus\", {}).n(\"SSMClient\", \"GetConnectionStatusCommand\").f(void 0, void 0).ser(se_GetConnectionStatusCommand).de(de_GetConnectionStatusCommand).build() {\n static {\n __name(this, \"GetConnectionStatusCommand\");\n }\n};\n\n// src/commands/GetDefaultPatchBaselineCommand.ts\n\n\n\nvar GetDefaultPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetDefaultPatchBaseline\", {}).n(\"SSMClient\", \"GetDefaultPatchBaselineCommand\").f(void 0, void 0).ser(se_GetDefaultPatchBaselineCommand).de(de_GetDefaultPatchBaselineCommand).build() {\n static {\n __name(this, \"GetDefaultPatchBaselineCommand\");\n }\n};\n\n// src/commands/GetDeployablePatchSnapshotForInstanceCommand.ts\n\n\n\nvar GetDeployablePatchSnapshotForInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetDeployablePatchSnapshotForInstance\", {}).n(\"SSMClient\", \"GetDeployablePatchSnapshotForInstanceCommand\").f(GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog, void 0).ser(se_GetDeployablePatchSnapshotForInstanceCommand).de(de_GetDeployablePatchSnapshotForInstanceCommand).build() {\n static {\n __name(this, \"GetDeployablePatchSnapshotForInstanceCommand\");\n }\n};\n\n// src/commands/GetDocumentCommand.ts\n\n\n\nvar GetDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetDocument\", {}).n(\"SSMClient\", \"GetDocumentCommand\").f(void 0, void 0).ser(se_GetDocumentCommand).de(de_GetDocumentCommand).build() {\n static {\n __name(this, \"GetDocumentCommand\");\n }\n};\n\n// src/commands/GetExecutionPreviewCommand.ts\n\n\n\nvar GetExecutionPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetExecutionPreview\", {}).n(\"SSMClient\", \"GetExecutionPreviewCommand\").f(void 0, void 0).ser(se_GetExecutionPreviewCommand).de(de_GetExecutionPreviewCommand).build() {\n static {\n __name(this, \"GetExecutionPreviewCommand\");\n }\n};\n\n// src/commands/GetInventoryCommand.ts\n\n\n\nvar GetInventoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetInventory\", {}).n(\"SSMClient\", \"GetInventoryCommand\").f(void 0, void 0).ser(se_GetInventoryCommand).de(de_GetInventoryCommand).build() {\n static {\n __name(this, \"GetInventoryCommand\");\n }\n};\n\n// src/commands/GetInventorySchemaCommand.ts\n\n\n\nvar GetInventorySchemaCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetInventorySchema\", {}).n(\"SSMClient\", \"GetInventorySchemaCommand\").f(void 0, void 0).ser(se_GetInventorySchemaCommand).de(de_GetInventorySchemaCommand).build() {\n static {\n __name(this, \"GetInventorySchemaCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowCommand.ts\n\n\n\nvar GetMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindow\", {}).n(\"SSMClient\", \"GetMaintenanceWindowCommand\").f(void 0, GetMaintenanceWindowResultFilterSensitiveLog).ser(se_GetMaintenanceWindowCommand).de(de_GetMaintenanceWindowCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowExecutionCommand.ts\n\n\n\nvar GetMaintenanceWindowExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowExecution\", {}).n(\"SSMClient\", \"GetMaintenanceWindowExecutionCommand\").f(void 0, void 0).ser(se_GetMaintenanceWindowExecutionCommand).de(de_GetMaintenanceWindowExecutionCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowExecutionCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowExecutionTaskCommand.ts\n\n\n\nvar GetMaintenanceWindowExecutionTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowExecutionTask\", {}).n(\"SSMClient\", \"GetMaintenanceWindowExecutionTaskCommand\").f(void 0, GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog).ser(se_GetMaintenanceWindowExecutionTaskCommand).de(de_GetMaintenanceWindowExecutionTaskCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowExecutionTaskCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowExecutionTaskInvocationCommand.ts\n\n\n\nvar GetMaintenanceWindowExecutionTaskInvocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowExecutionTaskInvocation\", {}).n(\"SSMClient\", \"GetMaintenanceWindowExecutionTaskInvocationCommand\").f(void 0, GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog).ser(se_GetMaintenanceWindowExecutionTaskInvocationCommand).de(de_GetMaintenanceWindowExecutionTaskInvocationCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowExecutionTaskInvocationCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowTaskCommand.ts\n\n\n\nvar GetMaintenanceWindowTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowTask\", {}).n(\"SSMClient\", \"GetMaintenanceWindowTaskCommand\").f(void 0, GetMaintenanceWindowTaskResultFilterSensitiveLog).ser(se_GetMaintenanceWindowTaskCommand).de(de_GetMaintenanceWindowTaskCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowTaskCommand\");\n }\n};\n\n// src/commands/GetOpsItemCommand.ts\n\n\n\nvar GetOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetOpsItem\", {}).n(\"SSMClient\", \"GetOpsItemCommand\").f(void 0, void 0).ser(se_GetOpsItemCommand).de(de_GetOpsItemCommand).build() {\n static {\n __name(this, \"GetOpsItemCommand\");\n }\n};\n\n// src/commands/GetOpsMetadataCommand.ts\n\n\n\nvar GetOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetOpsMetadata\", {}).n(\"SSMClient\", \"GetOpsMetadataCommand\").f(void 0, void 0).ser(se_GetOpsMetadataCommand).de(de_GetOpsMetadataCommand).build() {\n static {\n __name(this, \"GetOpsMetadataCommand\");\n }\n};\n\n// src/commands/GetOpsSummaryCommand.ts\n\n\n\nvar GetOpsSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetOpsSummary\", {}).n(\"SSMClient\", \"GetOpsSummaryCommand\").f(void 0, void 0).ser(se_GetOpsSummaryCommand).de(de_GetOpsSummaryCommand).build() {\n static {\n __name(this, \"GetOpsSummaryCommand\");\n }\n};\n\n// src/commands/GetParameterCommand.ts\n\n\n\nvar GetParameterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParameter\", {}).n(\"SSMClient\", \"GetParameterCommand\").f(void 0, GetParameterResultFilterSensitiveLog).ser(se_GetParameterCommand).de(de_GetParameterCommand).build() {\n static {\n __name(this, \"GetParameterCommand\");\n }\n};\n\n// src/commands/GetParameterHistoryCommand.ts\n\n\n\nvar GetParameterHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParameterHistory\", {}).n(\"SSMClient\", \"GetParameterHistoryCommand\").f(void 0, GetParameterHistoryResultFilterSensitiveLog).ser(se_GetParameterHistoryCommand).de(de_GetParameterHistoryCommand).build() {\n static {\n __name(this, \"GetParameterHistoryCommand\");\n }\n};\n\n// src/commands/GetParametersByPathCommand.ts\n\n\n\nvar GetParametersByPathCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParametersByPath\", {}).n(\"SSMClient\", \"GetParametersByPathCommand\").f(void 0, GetParametersByPathResultFilterSensitiveLog).ser(se_GetParametersByPathCommand).de(de_GetParametersByPathCommand).build() {\n static {\n __name(this, \"GetParametersByPathCommand\");\n }\n};\n\n// src/commands/GetParametersCommand.ts\n\n\n\nvar GetParametersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParameters\", {}).n(\"SSMClient\", \"GetParametersCommand\").f(void 0, GetParametersResultFilterSensitiveLog).ser(se_GetParametersCommand).de(de_GetParametersCommand).build() {\n static {\n __name(this, \"GetParametersCommand\");\n }\n};\n\n// src/commands/GetPatchBaselineCommand.ts\n\n\n\nvar GetPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetPatchBaseline\", {}).n(\"SSMClient\", \"GetPatchBaselineCommand\").f(void 0, GetPatchBaselineResultFilterSensitiveLog).ser(se_GetPatchBaselineCommand).de(de_GetPatchBaselineCommand).build() {\n static {\n __name(this, \"GetPatchBaselineCommand\");\n }\n};\n\n// src/commands/GetPatchBaselineForPatchGroupCommand.ts\n\n\n\nvar GetPatchBaselineForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetPatchBaselineForPatchGroup\", {}).n(\"SSMClient\", \"GetPatchBaselineForPatchGroupCommand\").f(void 0, void 0).ser(se_GetPatchBaselineForPatchGroupCommand).de(de_GetPatchBaselineForPatchGroupCommand).build() {\n static {\n __name(this, \"GetPatchBaselineForPatchGroupCommand\");\n }\n};\n\n// src/commands/GetResourcePoliciesCommand.ts\n\n\n\nvar GetResourcePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetResourcePolicies\", {}).n(\"SSMClient\", \"GetResourcePoliciesCommand\").f(void 0, void 0).ser(se_GetResourcePoliciesCommand).de(de_GetResourcePoliciesCommand).build() {\n static {\n __name(this, \"GetResourcePoliciesCommand\");\n }\n};\n\n// src/commands/GetServiceSettingCommand.ts\n\n\n\nvar GetServiceSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetServiceSetting\", {}).n(\"SSMClient\", \"GetServiceSettingCommand\").f(void 0, void 0).ser(se_GetServiceSettingCommand).de(de_GetServiceSettingCommand).build() {\n static {\n __name(this, \"GetServiceSettingCommand\");\n }\n};\n\n// src/commands/LabelParameterVersionCommand.ts\n\n\n\nvar LabelParameterVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"LabelParameterVersion\", {}).n(\"SSMClient\", \"LabelParameterVersionCommand\").f(void 0, void 0).ser(se_LabelParameterVersionCommand).de(de_LabelParameterVersionCommand).build() {\n static {\n __name(this, \"LabelParameterVersionCommand\");\n }\n};\n\n// src/commands/ListAssociationsCommand.ts\n\n\n\nvar ListAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListAssociations\", {}).n(\"SSMClient\", \"ListAssociationsCommand\").f(void 0, void 0).ser(se_ListAssociationsCommand).de(de_ListAssociationsCommand).build() {\n static {\n __name(this, \"ListAssociationsCommand\");\n }\n};\n\n// src/commands/ListAssociationVersionsCommand.ts\n\n\n\nvar ListAssociationVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListAssociationVersions\", {}).n(\"SSMClient\", \"ListAssociationVersionsCommand\").f(void 0, ListAssociationVersionsResultFilterSensitiveLog).ser(se_ListAssociationVersionsCommand).de(de_ListAssociationVersionsCommand).build() {\n static {\n __name(this, \"ListAssociationVersionsCommand\");\n }\n};\n\n// src/commands/ListCommandInvocationsCommand.ts\n\n\n\nvar ListCommandInvocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListCommandInvocations\", {}).n(\"SSMClient\", \"ListCommandInvocationsCommand\").f(void 0, void 0).ser(se_ListCommandInvocationsCommand).de(de_ListCommandInvocationsCommand).build() {\n static {\n __name(this, \"ListCommandInvocationsCommand\");\n }\n};\n\n// src/commands/ListCommandsCommand.ts\n\n\n\nvar ListCommandsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListCommands\", {}).n(\"SSMClient\", \"ListCommandsCommand\").f(void 0, ListCommandsResultFilterSensitiveLog).ser(se_ListCommandsCommand).de(de_ListCommandsCommand).build() {\n static {\n __name(this, \"ListCommandsCommand\");\n }\n};\n\n// src/commands/ListComplianceItemsCommand.ts\n\n\n\nvar ListComplianceItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListComplianceItems\", {}).n(\"SSMClient\", \"ListComplianceItemsCommand\").f(void 0, void 0).ser(se_ListComplianceItemsCommand).de(de_ListComplianceItemsCommand).build() {\n static {\n __name(this, \"ListComplianceItemsCommand\");\n }\n};\n\n// src/commands/ListComplianceSummariesCommand.ts\n\n\n\nvar ListComplianceSummariesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListComplianceSummaries\", {}).n(\"SSMClient\", \"ListComplianceSummariesCommand\").f(void 0, void 0).ser(se_ListComplianceSummariesCommand).de(de_ListComplianceSummariesCommand).build() {\n static {\n __name(this, \"ListComplianceSummariesCommand\");\n }\n};\n\n// src/commands/ListDocumentMetadataHistoryCommand.ts\n\n\n\nvar ListDocumentMetadataHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListDocumentMetadataHistory\", {}).n(\"SSMClient\", \"ListDocumentMetadataHistoryCommand\").f(void 0, void 0).ser(se_ListDocumentMetadataHistoryCommand).de(de_ListDocumentMetadataHistoryCommand).build() {\n static {\n __name(this, \"ListDocumentMetadataHistoryCommand\");\n }\n};\n\n// src/commands/ListDocumentsCommand.ts\n\n\n\nvar ListDocumentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListDocuments\", {}).n(\"SSMClient\", \"ListDocumentsCommand\").f(void 0, void 0).ser(se_ListDocumentsCommand).de(de_ListDocumentsCommand).build() {\n static {\n __name(this, \"ListDocumentsCommand\");\n }\n};\n\n// src/commands/ListDocumentVersionsCommand.ts\n\n\n\nvar ListDocumentVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListDocumentVersions\", {}).n(\"SSMClient\", \"ListDocumentVersionsCommand\").f(void 0, void 0).ser(se_ListDocumentVersionsCommand).de(de_ListDocumentVersionsCommand).build() {\n static {\n __name(this, \"ListDocumentVersionsCommand\");\n }\n};\n\n// src/commands/ListInventoryEntriesCommand.ts\n\n\n\nvar ListInventoryEntriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListInventoryEntries\", {}).n(\"SSMClient\", \"ListInventoryEntriesCommand\").f(void 0, void 0).ser(se_ListInventoryEntriesCommand).de(de_ListInventoryEntriesCommand).build() {\n static {\n __name(this, \"ListInventoryEntriesCommand\");\n }\n};\n\n// src/commands/ListNodesCommand.ts\n\n\n\nvar ListNodesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListNodes\", {}).n(\"SSMClient\", \"ListNodesCommand\").f(void 0, ListNodesResultFilterSensitiveLog).ser(se_ListNodesCommand).de(de_ListNodesCommand).build() {\n static {\n __name(this, \"ListNodesCommand\");\n }\n};\n\n// src/commands/ListNodesSummaryCommand.ts\n\n\n\nvar ListNodesSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListNodesSummary\", {}).n(\"SSMClient\", \"ListNodesSummaryCommand\").f(void 0, void 0).ser(se_ListNodesSummaryCommand).de(de_ListNodesSummaryCommand).build() {\n static {\n __name(this, \"ListNodesSummaryCommand\");\n }\n};\n\n// src/commands/ListOpsItemEventsCommand.ts\n\n\n\nvar ListOpsItemEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListOpsItemEvents\", {}).n(\"SSMClient\", \"ListOpsItemEventsCommand\").f(void 0, void 0).ser(se_ListOpsItemEventsCommand).de(de_ListOpsItemEventsCommand).build() {\n static {\n __name(this, \"ListOpsItemEventsCommand\");\n }\n};\n\n// src/commands/ListOpsItemRelatedItemsCommand.ts\n\n\n\nvar ListOpsItemRelatedItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListOpsItemRelatedItems\", {}).n(\"SSMClient\", \"ListOpsItemRelatedItemsCommand\").f(void 0, void 0).ser(se_ListOpsItemRelatedItemsCommand).de(de_ListOpsItemRelatedItemsCommand).build() {\n static {\n __name(this, \"ListOpsItemRelatedItemsCommand\");\n }\n};\n\n// src/commands/ListOpsMetadataCommand.ts\n\n\n\nvar ListOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListOpsMetadata\", {}).n(\"SSMClient\", \"ListOpsMetadataCommand\").f(void 0, void 0).ser(se_ListOpsMetadataCommand).de(de_ListOpsMetadataCommand).build() {\n static {\n __name(this, \"ListOpsMetadataCommand\");\n }\n};\n\n// src/commands/ListResourceComplianceSummariesCommand.ts\n\n\n\nvar ListResourceComplianceSummariesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListResourceComplianceSummaries\", {}).n(\"SSMClient\", \"ListResourceComplianceSummariesCommand\").f(void 0, void 0).ser(se_ListResourceComplianceSummariesCommand).de(de_ListResourceComplianceSummariesCommand).build() {\n static {\n __name(this, \"ListResourceComplianceSummariesCommand\");\n }\n};\n\n// src/commands/ListResourceDataSyncCommand.ts\n\n\n\nvar ListResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListResourceDataSync\", {}).n(\"SSMClient\", \"ListResourceDataSyncCommand\").f(void 0, void 0).ser(se_ListResourceDataSyncCommand).de(de_ListResourceDataSyncCommand).build() {\n static {\n __name(this, \"ListResourceDataSyncCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListTagsForResource\", {}).n(\"SSMClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ModifyDocumentPermissionCommand.ts\n\n\n\nvar ModifyDocumentPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ModifyDocumentPermission\", {}).n(\"SSMClient\", \"ModifyDocumentPermissionCommand\").f(void 0, void 0).ser(se_ModifyDocumentPermissionCommand).de(de_ModifyDocumentPermissionCommand).build() {\n static {\n __name(this, \"ModifyDocumentPermissionCommand\");\n }\n};\n\n// src/commands/PutComplianceItemsCommand.ts\n\n\n\nvar PutComplianceItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutComplianceItems\", {}).n(\"SSMClient\", \"PutComplianceItemsCommand\").f(void 0, void 0).ser(se_PutComplianceItemsCommand).de(de_PutComplianceItemsCommand).build() {\n static {\n __name(this, \"PutComplianceItemsCommand\");\n }\n};\n\n// src/commands/PutInventoryCommand.ts\n\n\n\nvar PutInventoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutInventory\", {}).n(\"SSMClient\", \"PutInventoryCommand\").f(void 0, void 0).ser(se_PutInventoryCommand).de(de_PutInventoryCommand).build() {\n static {\n __name(this, \"PutInventoryCommand\");\n }\n};\n\n// src/commands/PutParameterCommand.ts\n\n\n\nvar PutParameterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutParameter\", {}).n(\"SSMClient\", \"PutParameterCommand\").f(PutParameterRequestFilterSensitiveLog, void 0).ser(se_PutParameterCommand).de(de_PutParameterCommand).build() {\n static {\n __name(this, \"PutParameterCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutResourcePolicy\", {}).n(\"SSMClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/RegisterDefaultPatchBaselineCommand.ts\n\n\n\nvar RegisterDefaultPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterDefaultPatchBaseline\", {}).n(\"SSMClient\", \"RegisterDefaultPatchBaselineCommand\").f(void 0, void 0).ser(se_RegisterDefaultPatchBaselineCommand).de(de_RegisterDefaultPatchBaselineCommand).build() {\n static {\n __name(this, \"RegisterDefaultPatchBaselineCommand\");\n }\n};\n\n// src/commands/RegisterPatchBaselineForPatchGroupCommand.ts\n\n\n\nvar RegisterPatchBaselineForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterPatchBaselineForPatchGroup\", {}).n(\"SSMClient\", \"RegisterPatchBaselineForPatchGroupCommand\").f(void 0, void 0).ser(se_RegisterPatchBaselineForPatchGroupCommand).de(de_RegisterPatchBaselineForPatchGroupCommand).build() {\n static {\n __name(this, \"RegisterPatchBaselineForPatchGroupCommand\");\n }\n};\n\n// src/commands/RegisterTargetWithMaintenanceWindowCommand.ts\n\n\n\nvar RegisterTargetWithMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterTargetWithMaintenanceWindow\", {}).n(\"SSMClient\", \"RegisterTargetWithMaintenanceWindowCommand\").f(RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog, void 0).ser(se_RegisterTargetWithMaintenanceWindowCommand).de(de_RegisterTargetWithMaintenanceWindowCommand).build() {\n static {\n __name(this, \"RegisterTargetWithMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/RegisterTaskWithMaintenanceWindowCommand.ts\n\n\n\nvar RegisterTaskWithMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterTaskWithMaintenanceWindow\", {}).n(\"SSMClient\", \"RegisterTaskWithMaintenanceWindowCommand\").f(RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog, void 0).ser(se_RegisterTaskWithMaintenanceWindowCommand).de(de_RegisterTaskWithMaintenanceWindowCommand).build() {\n static {\n __name(this, \"RegisterTaskWithMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/RemoveTagsFromResourceCommand.ts\n\n\n\nvar RemoveTagsFromResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RemoveTagsFromResource\", {}).n(\"SSMClient\", \"RemoveTagsFromResourceCommand\").f(void 0, void 0).ser(se_RemoveTagsFromResourceCommand).de(de_RemoveTagsFromResourceCommand).build() {\n static {\n __name(this, \"RemoveTagsFromResourceCommand\");\n }\n};\n\n// src/commands/ResetServiceSettingCommand.ts\n\n\n\nvar ResetServiceSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ResetServiceSetting\", {}).n(\"SSMClient\", \"ResetServiceSettingCommand\").f(void 0, void 0).ser(se_ResetServiceSettingCommand).de(de_ResetServiceSettingCommand).build() {\n static {\n __name(this, \"ResetServiceSettingCommand\");\n }\n};\n\n// src/commands/ResumeSessionCommand.ts\n\n\n\nvar ResumeSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ResumeSession\", {}).n(\"SSMClient\", \"ResumeSessionCommand\").f(void 0, void 0).ser(se_ResumeSessionCommand).de(de_ResumeSessionCommand).build() {\n static {\n __name(this, \"ResumeSessionCommand\");\n }\n};\n\n// src/commands/SendAutomationSignalCommand.ts\n\n\n\nvar SendAutomationSignalCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"SendAutomationSignal\", {}).n(\"SSMClient\", \"SendAutomationSignalCommand\").f(void 0, void 0).ser(se_SendAutomationSignalCommand).de(de_SendAutomationSignalCommand).build() {\n static {\n __name(this, \"SendAutomationSignalCommand\");\n }\n};\n\n// src/commands/SendCommandCommand.ts\n\n\n\nvar SendCommandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"SendCommand\", {}).n(\"SSMClient\", \"SendCommandCommand\").f(SendCommandRequestFilterSensitiveLog, SendCommandResultFilterSensitiveLog).ser(se_SendCommandCommand).de(de_SendCommandCommand).build() {\n static {\n __name(this, \"SendCommandCommand\");\n }\n};\n\n// src/commands/StartAccessRequestCommand.ts\n\n\n\nvar StartAccessRequestCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartAccessRequest\", {}).n(\"SSMClient\", \"StartAccessRequestCommand\").f(void 0, void 0).ser(se_StartAccessRequestCommand).de(de_StartAccessRequestCommand).build() {\n static {\n __name(this, \"StartAccessRequestCommand\");\n }\n};\n\n// src/commands/StartAssociationsOnceCommand.ts\n\n\n\nvar StartAssociationsOnceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartAssociationsOnce\", {}).n(\"SSMClient\", \"StartAssociationsOnceCommand\").f(void 0, void 0).ser(se_StartAssociationsOnceCommand).de(de_StartAssociationsOnceCommand).build() {\n static {\n __name(this, \"StartAssociationsOnceCommand\");\n }\n};\n\n// src/commands/StartAutomationExecutionCommand.ts\n\n\n\nvar StartAutomationExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartAutomationExecution\", {}).n(\"SSMClient\", \"StartAutomationExecutionCommand\").f(void 0, void 0).ser(se_StartAutomationExecutionCommand).de(de_StartAutomationExecutionCommand).build() {\n static {\n __name(this, \"StartAutomationExecutionCommand\");\n }\n};\n\n// src/commands/StartChangeRequestExecutionCommand.ts\n\n\n\nvar StartChangeRequestExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartChangeRequestExecution\", {}).n(\"SSMClient\", \"StartChangeRequestExecutionCommand\").f(void 0, void 0).ser(se_StartChangeRequestExecutionCommand).de(de_StartChangeRequestExecutionCommand).build() {\n static {\n __name(this, \"StartChangeRequestExecutionCommand\");\n }\n};\n\n// src/commands/StartExecutionPreviewCommand.ts\n\n\n\nvar StartExecutionPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartExecutionPreview\", {}).n(\"SSMClient\", \"StartExecutionPreviewCommand\").f(void 0, void 0).ser(se_StartExecutionPreviewCommand).de(de_StartExecutionPreviewCommand).build() {\n static {\n __name(this, \"StartExecutionPreviewCommand\");\n }\n};\n\n// src/commands/StartSessionCommand.ts\n\n\n\nvar StartSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartSession\", {}).n(\"SSMClient\", \"StartSessionCommand\").f(void 0, void 0).ser(se_StartSessionCommand).de(de_StartSessionCommand).build() {\n static {\n __name(this, \"StartSessionCommand\");\n }\n};\n\n// src/commands/StopAutomationExecutionCommand.ts\n\n\n\nvar StopAutomationExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StopAutomationExecution\", {}).n(\"SSMClient\", \"StopAutomationExecutionCommand\").f(void 0, void 0).ser(se_StopAutomationExecutionCommand).de(de_StopAutomationExecutionCommand).build() {\n static {\n __name(this, \"StopAutomationExecutionCommand\");\n }\n};\n\n// src/commands/TerminateSessionCommand.ts\n\n\n\nvar TerminateSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"TerminateSession\", {}).n(\"SSMClient\", \"TerminateSessionCommand\").f(void 0, void 0).ser(se_TerminateSessionCommand).de(de_TerminateSessionCommand).build() {\n static {\n __name(this, \"TerminateSessionCommand\");\n }\n};\n\n// src/commands/UnlabelParameterVersionCommand.ts\n\n\n\nvar UnlabelParameterVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UnlabelParameterVersion\", {}).n(\"SSMClient\", \"UnlabelParameterVersionCommand\").f(void 0, void 0).ser(se_UnlabelParameterVersionCommand).de(de_UnlabelParameterVersionCommand).build() {\n static {\n __name(this, \"UnlabelParameterVersionCommand\");\n }\n};\n\n// src/commands/UpdateAssociationCommand.ts\n\n\n\nvar UpdateAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateAssociation\", {}).n(\"SSMClient\", \"UpdateAssociationCommand\").f(UpdateAssociationRequestFilterSensitiveLog, UpdateAssociationResultFilterSensitiveLog).ser(se_UpdateAssociationCommand).de(de_UpdateAssociationCommand).build() {\n static {\n __name(this, \"UpdateAssociationCommand\");\n }\n};\n\n// src/commands/UpdateAssociationStatusCommand.ts\n\n\n\nvar UpdateAssociationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateAssociationStatus\", {}).n(\"SSMClient\", \"UpdateAssociationStatusCommand\").f(void 0, UpdateAssociationStatusResultFilterSensitiveLog).ser(se_UpdateAssociationStatusCommand).de(de_UpdateAssociationStatusCommand).build() {\n static {\n __name(this, \"UpdateAssociationStatusCommand\");\n }\n};\n\n// src/commands/UpdateDocumentCommand.ts\n\n\n\nvar UpdateDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateDocument\", {}).n(\"SSMClient\", \"UpdateDocumentCommand\").f(void 0, void 0).ser(se_UpdateDocumentCommand).de(de_UpdateDocumentCommand).build() {\n static {\n __name(this, \"UpdateDocumentCommand\");\n }\n};\n\n// src/commands/UpdateDocumentDefaultVersionCommand.ts\n\n\n\nvar UpdateDocumentDefaultVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateDocumentDefaultVersion\", {}).n(\"SSMClient\", \"UpdateDocumentDefaultVersionCommand\").f(void 0, void 0).ser(se_UpdateDocumentDefaultVersionCommand).de(de_UpdateDocumentDefaultVersionCommand).build() {\n static {\n __name(this, \"UpdateDocumentDefaultVersionCommand\");\n }\n};\n\n// src/commands/UpdateDocumentMetadataCommand.ts\n\n\n\nvar UpdateDocumentMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateDocumentMetadata\", {}).n(\"SSMClient\", \"UpdateDocumentMetadataCommand\").f(void 0, void 0).ser(se_UpdateDocumentMetadataCommand).de(de_UpdateDocumentMetadataCommand).build() {\n static {\n __name(this, \"UpdateDocumentMetadataCommand\");\n }\n};\n\n// src/commands/UpdateMaintenanceWindowCommand.ts\n\n\n\nvar UpdateMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateMaintenanceWindow\", {}).n(\"SSMClient\", \"UpdateMaintenanceWindowCommand\").f(UpdateMaintenanceWindowRequestFilterSensitiveLog, UpdateMaintenanceWindowResultFilterSensitiveLog).ser(se_UpdateMaintenanceWindowCommand).de(de_UpdateMaintenanceWindowCommand).build() {\n static {\n __name(this, \"UpdateMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/UpdateMaintenanceWindowTargetCommand.ts\n\n\n\nvar UpdateMaintenanceWindowTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateMaintenanceWindowTarget\", {}).n(\"SSMClient\", \"UpdateMaintenanceWindowTargetCommand\").f(UpdateMaintenanceWindowTargetRequestFilterSensitiveLog, UpdateMaintenanceWindowTargetResultFilterSensitiveLog).ser(se_UpdateMaintenanceWindowTargetCommand).de(de_UpdateMaintenanceWindowTargetCommand).build() {\n static {\n __name(this, \"UpdateMaintenanceWindowTargetCommand\");\n }\n};\n\n// src/commands/UpdateMaintenanceWindowTaskCommand.ts\n\n\n\nvar UpdateMaintenanceWindowTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateMaintenanceWindowTask\", {}).n(\"SSMClient\", \"UpdateMaintenanceWindowTaskCommand\").f(UpdateMaintenanceWindowTaskRequestFilterSensitiveLog, UpdateMaintenanceWindowTaskResultFilterSensitiveLog).ser(se_UpdateMaintenanceWindowTaskCommand).de(de_UpdateMaintenanceWindowTaskCommand).build() {\n static {\n __name(this, \"UpdateMaintenanceWindowTaskCommand\");\n }\n};\n\n// src/commands/UpdateManagedInstanceRoleCommand.ts\n\n\n\nvar UpdateManagedInstanceRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateManagedInstanceRole\", {}).n(\"SSMClient\", \"UpdateManagedInstanceRoleCommand\").f(void 0, void 0).ser(se_UpdateManagedInstanceRoleCommand).de(de_UpdateManagedInstanceRoleCommand).build() {\n static {\n __name(this, \"UpdateManagedInstanceRoleCommand\");\n }\n};\n\n// src/commands/UpdateOpsItemCommand.ts\n\n\n\nvar UpdateOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateOpsItem\", {}).n(\"SSMClient\", \"UpdateOpsItemCommand\").f(void 0, void 0).ser(se_UpdateOpsItemCommand).de(de_UpdateOpsItemCommand).build() {\n static {\n __name(this, \"UpdateOpsItemCommand\");\n }\n};\n\n// src/commands/UpdateOpsMetadataCommand.ts\n\n\n\nvar UpdateOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateOpsMetadata\", {}).n(\"SSMClient\", \"UpdateOpsMetadataCommand\").f(void 0, void 0).ser(se_UpdateOpsMetadataCommand).de(de_UpdateOpsMetadataCommand).build() {\n static {\n __name(this, \"UpdateOpsMetadataCommand\");\n }\n};\n\n// src/commands/UpdatePatchBaselineCommand.ts\n\n\n\nvar UpdatePatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdatePatchBaseline\", {}).n(\"SSMClient\", \"UpdatePatchBaselineCommand\").f(UpdatePatchBaselineRequestFilterSensitiveLog, UpdatePatchBaselineResultFilterSensitiveLog).ser(se_UpdatePatchBaselineCommand).de(de_UpdatePatchBaselineCommand).build() {\n static {\n __name(this, \"UpdatePatchBaselineCommand\");\n }\n};\n\n// src/commands/UpdateResourceDataSyncCommand.ts\n\n\n\nvar UpdateResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateResourceDataSync\", {}).n(\"SSMClient\", \"UpdateResourceDataSyncCommand\").f(void 0, void 0).ser(se_UpdateResourceDataSyncCommand).de(de_UpdateResourceDataSyncCommand).build() {\n static {\n __name(this, \"UpdateResourceDataSyncCommand\");\n }\n};\n\n// src/commands/UpdateServiceSettingCommand.ts\n\n\n\nvar UpdateServiceSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateServiceSetting\", {}).n(\"SSMClient\", \"UpdateServiceSettingCommand\").f(void 0, void 0).ser(se_UpdateServiceSettingCommand).de(de_UpdateServiceSettingCommand).build() {\n static {\n __name(this, \"UpdateServiceSettingCommand\");\n }\n};\n\n// src/SSM.ts\nvar commands = {\n AddTagsToResourceCommand,\n AssociateOpsItemRelatedItemCommand,\n CancelCommandCommand,\n CancelMaintenanceWindowExecutionCommand,\n CreateActivationCommand,\n CreateAssociationCommand,\n CreateAssociationBatchCommand,\n CreateDocumentCommand,\n CreateMaintenanceWindowCommand,\n CreateOpsItemCommand,\n CreateOpsMetadataCommand,\n CreatePatchBaselineCommand,\n CreateResourceDataSyncCommand,\n DeleteActivationCommand,\n DeleteAssociationCommand,\n DeleteDocumentCommand,\n DeleteInventoryCommand,\n DeleteMaintenanceWindowCommand,\n DeleteOpsItemCommand,\n DeleteOpsMetadataCommand,\n DeleteParameterCommand,\n DeleteParametersCommand,\n DeletePatchBaselineCommand,\n DeleteResourceDataSyncCommand,\n DeleteResourcePolicyCommand,\n DeregisterManagedInstanceCommand,\n DeregisterPatchBaselineForPatchGroupCommand,\n DeregisterTargetFromMaintenanceWindowCommand,\n DeregisterTaskFromMaintenanceWindowCommand,\n DescribeActivationsCommand,\n DescribeAssociationCommand,\n DescribeAssociationExecutionsCommand,\n DescribeAssociationExecutionTargetsCommand,\n DescribeAutomationExecutionsCommand,\n DescribeAutomationStepExecutionsCommand,\n DescribeAvailablePatchesCommand,\n DescribeDocumentCommand,\n DescribeDocumentPermissionCommand,\n DescribeEffectiveInstanceAssociationsCommand,\n DescribeEffectivePatchesForPatchBaselineCommand,\n DescribeInstanceAssociationsStatusCommand,\n DescribeInstanceInformationCommand,\n DescribeInstancePatchesCommand,\n DescribeInstancePatchStatesCommand,\n DescribeInstancePatchStatesForPatchGroupCommand,\n DescribeInstancePropertiesCommand,\n DescribeInventoryDeletionsCommand,\n DescribeMaintenanceWindowExecutionsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsCommand,\n DescribeMaintenanceWindowExecutionTasksCommand,\n DescribeMaintenanceWindowsCommand,\n DescribeMaintenanceWindowScheduleCommand,\n DescribeMaintenanceWindowsForTargetCommand,\n DescribeMaintenanceWindowTargetsCommand,\n DescribeMaintenanceWindowTasksCommand,\n DescribeOpsItemsCommand,\n DescribeParametersCommand,\n DescribePatchBaselinesCommand,\n DescribePatchGroupsCommand,\n DescribePatchGroupStateCommand,\n DescribePatchPropertiesCommand,\n DescribeSessionsCommand,\n DisassociateOpsItemRelatedItemCommand,\n GetAccessTokenCommand,\n GetAutomationExecutionCommand,\n GetCalendarStateCommand,\n GetCommandInvocationCommand,\n GetConnectionStatusCommand,\n GetDefaultPatchBaselineCommand,\n GetDeployablePatchSnapshotForInstanceCommand,\n GetDocumentCommand,\n GetExecutionPreviewCommand,\n GetInventoryCommand,\n GetInventorySchemaCommand,\n GetMaintenanceWindowCommand,\n GetMaintenanceWindowExecutionCommand,\n GetMaintenanceWindowExecutionTaskCommand,\n GetMaintenanceWindowExecutionTaskInvocationCommand,\n GetMaintenanceWindowTaskCommand,\n GetOpsItemCommand,\n GetOpsMetadataCommand,\n GetOpsSummaryCommand,\n GetParameterCommand,\n GetParameterHistoryCommand,\n GetParametersCommand,\n GetParametersByPathCommand,\n GetPatchBaselineCommand,\n GetPatchBaselineForPatchGroupCommand,\n GetResourcePoliciesCommand,\n GetServiceSettingCommand,\n LabelParameterVersionCommand,\n ListAssociationsCommand,\n ListAssociationVersionsCommand,\n ListCommandInvocationsCommand,\n ListCommandsCommand,\n ListComplianceItemsCommand,\n ListComplianceSummariesCommand,\n ListDocumentMetadataHistoryCommand,\n ListDocumentsCommand,\n ListDocumentVersionsCommand,\n ListInventoryEntriesCommand,\n ListNodesCommand,\n ListNodesSummaryCommand,\n ListOpsItemEventsCommand,\n ListOpsItemRelatedItemsCommand,\n ListOpsMetadataCommand,\n ListResourceComplianceSummariesCommand,\n ListResourceDataSyncCommand,\n ListTagsForResourceCommand,\n ModifyDocumentPermissionCommand,\n PutComplianceItemsCommand,\n PutInventoryCommand,\n PutParameterCommand,\n PutResourcePolicyCommand,\n RegisterDefaultPatchBaselineCommand,\n RegisterPatchBaselineForPatchGroupCommand,\n RegisterTargetWithMaintenanceWindowCommand,\n RegisterTaskWithMaintenanceWindowCommand,\n RemoveTagsFromResourceCommand,\n ResetServiceSettingCommand,\n ResumeSessionCommand,\n SendAutomationSignalCommand,\n SendCommandCommand,\n StartAccessRequestCommand,\n StartAssociationsOnceCommand,\n StartAutomationExecutionCommand,\n StartChangeRequestExecutionCommand,\n StartExecutionPreviewCommand,\n StartSessionCommand,\n StopAutomationExecutionCommand,\n TerminateSessionCommand,\n UnlabelParameterVersionCommand,\n UpdateAssociationCommand,\n UpdateAssociationStatusCommand,\n UpdateDocumentCommand,\n UpdateDocumentDefaultVersionCommand,\n UpdateDocumentMetadataCommand,\n UpdateMaintenanceWindowCommand,\n UpdateMaintenanceWindowTargetCommand,\n UpdateMaintenanceWindowTaskCommand,\n UpdateManagedInstanceRoleCommand,\n UpdateOpsItemCommand,\n UpdateOpsMetadataCommand,\n UpdatePatchBaselineCommand,\n UpdateResourceDataSyncCommand,\n UpdateServiceSettingCommand\n};\nvar SSM = class extends SSMClient {\n static {\n __name(this, \"SSM\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSM);\n\n// src/pagination/DescribeActivationsPaginator.ts\n\nvar paginateDescribeActivations = (0, import_core.createPaginator)(SSMClient, DescribeActivationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAssociationExecutionTargetsPaginator.ts\n\nvar paginateDescribeAssociationExecutionTargets = (0, import_core.createPaginator)(SSMClient, DescribeAssociationExecutionTargetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAssociationExecutionsPaginator.ts\n\nvar paginateDescribeAssociationExecutions = (0, import_core.createPaginator)(SSMClient, DescribeAssociationExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAutomationExecutionsPaginator.ts\n\nvar paginateDescribeAutomationExecutions = (0, import_core.createPaginator)(SSMClient, DescribeAutomationExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAutomationStepExecutionsPaginator.ts\n\nvar paginateDescribeAutomationStepExecutions = (0, import_core.createPaginator)(SSMClient, DescribeAutomationStepExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAvailablePatchesPaginator.ts\n\nvar paginateDescribeAvailablePatches = (0, import_core.createPaginator)(SSMClient, DescribeAvailablePatchesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeEffectiveInstanceAssociationsPaginator.ts\n\nvar paginateDescribeEffectiveInstanceAssociations = (0, import_core.createPaginator)(SSMClient, DescribeEffectiveInstanceAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeEffectivePatchesForPatchBaselinePaginator.ts\n\nvar paginateDescribeEffectivePatchesForPatchBaseline = (0, import_core.createPaginator)(SSMClient, DescribeEffectivePatchesForPatchBaselineCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceAssociationsStatusPaginator.ts\n\nvar paginateDescribeInstanceAssociationsStatus = (0, import_core.createPaginator)(SSMClient, DescribeInstanceAssociationsStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceInformationPaginator.ts\n\nvar paginateDescribeInstanceInformation = (0, import_core.createPaginator)(SSMClient, DescribeInstanceInformationCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePatchStatesForPatchGroupPaginator.ts\n\nvar paginateDescribeInstancePatchStatesForPatchGroup = (0, import_core.createPaginator)(SSMClient, DescribeInstancePatchStatesForPatchGroupCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePatchStatesPaginator.ts\n\nvar paginateDescribeInstancePatchStates = (0, import_core.createPaginator)(SSMClient, DescribeInstancePatchStatesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePatchesPaginator.ts\n\nvar paginateDescribeInstancePatches = (0, import_core.createPaginator)(SSMClient, DescribeInstancePatchesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePropertiesPaginator.ts\n\nvar paginateDescribeInstanceProperties = (0, import_core.createPaginator)(SSMClient, DescribeInstancePropertiesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInventoryDeletionsPaginator.ts\n\nvar paginateDescribeInventoryDeletions = (0, import_core.createPaginator)(SSMClient, DescribeInventoryDeletionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowExecutionTaskInvocationsPaginator.ts\n\nvar paginateDescribeMaintenanceWindowExecutionTaskInvocations = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowExecutionTaskInvocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowExecutionTasksPaginator.ts\n\nvar paginateDescribeMaintenanceWindowExecutionTasks = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowExecutionTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowExecutionsPaginator.ts\n\nvar paginateDescribeMaintenanceWindowExecutions = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowSchedulePaginator.ts\n\nvar paginateDescribeMaintenanceWindowSchedule = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowScheduleCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowTargetsPaginator.ts\n\nvar paginateDescribeMaintenanceWindowTargets = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowTargetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowTasksPaginator.ts\n\nvar paginateDescribeMaintenanceWindowTasks = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowsForTargetPaginator.ts\n\nvar paginateDescribeMaintenanceWindowsForTarget = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowsForTargetCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowsPaginator.ts\n\nvar paginateDescribeMaintenanceWindows = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeOpsItemsPaginator.ts\n\nvar paginateDescribeOpsItems = (0, import_core.createPaginator)(SSMClient, DescribeOpsItemsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeParametersPaginator.ts\n\nvar paginateDescribeParameters = (0, import_core.createPaginator)(SSMClient, DescribeParametersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePatchBaselinesPaginator.ts\n\nvar paginateDescribePatchBaselines = (0, import_core.createPaginator)(SSMClient, DescribePatchBaselinesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePatchGroupsPaginator.ts\n\nvar paginateDescribePatchGroups = (0, import_core.createPaginator)(SSMClient, DescribePatchGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePatchPropertiesPaginator.ts\n\nvar paginateDescribePatchProperties = (0, import_core.createPaginator)(SSMClient, DescribePatchPropertiesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSessionsPaginator.ts\n\nvar paginateDescribeSessions = (0, import_core.createPaginator)(SSMClient, DescribeSessionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetInventoryPaginator.ts\n\nvar paginateGetInventory = (0, import_core.createPaginator)(SSMClient, GetInventoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetInventorySchemaPaginator.ts\n\nvar paginateGetInventorySchema = (0, import_core.createPaginator)(SSMClient, GetInventorySchemaCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetOpsSummaryPaginator.ts\n\nvar paginateGetOpsSummary = (0, import_core.createPaginator)(SSMClient, GetOpsSummaryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetParameterHistoryPaginator.ts\n\nvar paginateGetParameterHistory = (0, import_core.createPaginator)(SSMClient, GetParameterHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetParametersByPathPaginator.ts\n\nvar paginateGetParametersByPath = (0, import_core.createPaginator)(SSMClient, GetParametersByPathCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetResourcePoliciesPaginator.ts\n\nvar paginateGetResourcePolicies = (0, import_core.createPaginator)(SSMClient, GetResourcePoliciesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListAssociationVersionsPaginator.ts\n\nvar paginateListAssociationVersions = (0, import_core.createPaginator)(SSMClient, ListAssociationVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListAssociationsPaginator.ts\n\nvar paginateListAssociations = (0, import_core.createPaginator)(SSMClient, ListAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCommandInvocationsPaginator.ts\n\nvar paginateListCommandInvocations = (0, import_core.createPaginator)(SSMClient, ListCommandInvocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCommandsPaginator.ts\n\nvar paginateListCommands = (0, import_core.createPaginator)(SSMClient, ListCommandsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListComplianceItemsPaginator.ts\n\nvar paginateListComplianceItems = (0, import_core.createPaginator)(SSMClient, ListComplianceItemsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListComplianceSummariesPaginator.ts\n\nvar paginateListComplianceSummaries = (0, import_core.createPaginator)(SSMClient, ListComplianceSummariesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListDocumentVersionsPaginator.ts\n\nvar paginateListDocumentVersions = (0, import_core.createPaginator)(SSMClient, ListDocumentVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListDocumentsPaginator.ts\n\nvar paginateListDocuments = (0, import_core.createPaginator)(SSMClient, ListDocumentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListNodesPaginator.ts\n\nvar paginateListNodes = (0, import_core.createPaginator)(SSMClient, ListNodesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListNodesSummaryPaginator.ts\n\nvar paginateListNodesSummary = (0, import_core.createPaginator)(SSMClient, ListNodesSummaryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListOpsItemEventsPaginator.ts\n\nvar paginateListOpsItemEvents = (0, import_core.createPaginator)(SSMClient, ListOpsItemEventsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListOpsItemRelatedItemsPaginator.ts\n\nvar paginateListOpsItemRelatedItems = (0, import_core.createPaginator)(SSMClient, ListOpsItemRelatedItemsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListOpsMetadataPaginator.ts\n\nvar paginateListOpsMetadata = (0, import_core.createPaginator)(SSMClient, ListOpsMetadataCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListResourceComplianceSummariesPaginator.ts\n\nvar paginateListResourceComplianceSummaries = (0, import_core.createPaginator)(SSMClient, ListResourceComplianceSummariesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListResourceDataSyncPaginator.ts\n\nvar paginateListResourceDataSync = (0, import_core.createPaginator)(SSMClient, ListResourceDataSyncCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForCommandExecuted.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetCommandInvocationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Delayed\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Success\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Cancelled\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"TimedOut\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Cancelling\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvocationDoesNotExist\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForCommandExecuted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForCommandExecuted\");\nvar waitUntilCommandExecuted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilCommandExecuted\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSMServiceException,\n __Client,\n SSMClient,\n SSM,\n $Command,\n AddTagsToResourceCommand,\n AssociateOpsItemRelatedItemCommand,\n CancelCommandCommand,\n CancelMaintenanceWindowExecutionCommand,\n CreateActivationCommand,\n CreateAssociationBatchCommand,\n CreateAssociationCommand,\n CreateDocumentCommand,\n CreateMaintenanceWindowCommand,\n CreateOpsItemCommand,\n CreateOpsMetadataCommand,\n CreatePatchBaselineCommand,\n CreateResourceDataSyncCommand,\n DeleteActivationCommand,\n DeleteAssociationCommand,\n DeleteDocumentCommand,\n DeleteInventoryCommand,\n DeleteMaintenanceWindowCommand,\n DeleteOpsItemCommand,\n DeleteOpsMetadataCommand,\n DeleteParameterCommand,\n DeleteParametersCommand,\n DeletePatchBaselineCommand,\n DeleteResourceDataSyncCommand,\n DeleteResourcePolicyCommand,\n DeregisterManagedInstanceCommand,\n DeregisterPatchBaselineForPatchGroupCommand,\n DeregisterTargetFromMaintenanceWindowCommand,\n DeregisterTaskFromMaintenanceWindowCommand,\n DescribeActivationsCommand,\n DescribeAssociationCommand,\n DescribeAssociationExecutionTargetsCommand,\n DescribeAssociationExecutionsCommand,\n DescribeAutomationExecutionsCommand,\n DescribeAutomationStepExecutionsCommand,\n DescribeAvailablePatchesCommand,\n DescribeDocumentCommand,\n DescribeDocumentPermissionCommand,\n DescribeEffectiveInstanceAssociationsCommand,\n DescribeEffectivePatchesForPatchBaselineCommand,\n DescribeInstanceAssociationsStatusCommand,\n DescribeInstanceInformationCommand,\n DescribeInstancePatchStatesCommand,\n DescribeInstancePatchStatesForPatchGroupCommand,\n DescribeInstancePatchesCommand,\n DescribeInstancePropertiesCommand,\n DescribeInventoryDeletionsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsCommand,\n DescribeMaintenanceWindowExecutionTasksCommand,\n DescribeMaintenanceWindowExecutionsCommand,\n DescribeMaintenanceWindowScheduleCommand,\n DescribeMaintenanceWindowTargetsCommand,\n DescribeMaintenanceWindowTasksCommand,\n DescribeMaintenanceWindowsCommand,\n DescribeMaintenanceWindowsForTargetCommand,\n DescribeOpsItemsCommand,\n DescribeParametersCommand,\n DescribePatchBaselinesCommand,\n DescribePatchGroupStateCommand,\n DescribePatchGroupsCommand,\n DescribePatchPropertiesCommand,\n DescribeSessionsCommand,\n DisassociateOpsItemRelatedItemCommand,\n GetAccessTokenCommand,\n GetAutomationExecutionCommand,\n GetCalendarStateCommand,\n GetCommandInvocationCommand,\n GetConnectionStatusCommand,\n GetDefaultPatchBaselineCommand,\n GetDeployablePatchSnapshotForInstanceCommand,\n GetDocumentCommand,\n GetExecutionPreviewCommand,\n GetInventoryCommand,\n GetInventorySchemaCommand,\n GetMaintenanceWindowCommand,\n GetMaintenanceWindowExecutionCommand,\n GetMaintenanceWindowExecutionTaskCommand,\n GetMaintenanceWindowExecutionTaskInvocationCommand,\n GetMaintenanceWindowTaskCommand,\n GetOpsItemCommand,\n GetOpsMetadataCommand,\n GetOpsSummaryCommand,\n GetParameterCommand,\n GetParameterHistoryCommand,\n GetParametersByPathCommand,\n GetParametersCommand,\n GetPatchBaselineCommand,\n GetPatchBaselineForPatchGroupCommand,\n GetResourcePoliciesCommand,\n GetServiceSettingCommand,\n LabelParameterVersionCommand,\n ListAssociationVersionsCommand,\n ListAssociationsCommand,\n ListCommandInvocationsCommand,\n ListCommandsCommand,\n ListComplianceItemsCommand,\n ListComplianceSummariesCommand,\n ListDocumentMetadataHistoryCommand,\n ListDocumentVersionsCommand,\n ListDocumentsCommand,\n ListInventoryEntriesCommand,\n ListNodesCommand,\n ListNodesSummaryCommand,\n ListOpsItemEventsCommand,\n ListOpsItemRelatedItemsCommand,\n ListOpsMetadataCommand,\n ListResourceComplianceSummariesCommand,\n ListResourceDataSyncCommand,\n ListTagsForResourceCommand,\n ModifyDocumentPermissionCommand,\n PutComplianceItemsCommand,\n PutInventoryCommand,\n PutParameterCommand,\n PutResourcePolicyCommand,\n RegisterDefaultPatchBaselineCommand,\n RegisterPatchBaselineForPatchGroupCommand,\n RegisterTargetWithMaintenanceWindowCommand,\n RegisterTaskWithMaintenanceWindowCommand,\n RemoveTagsFromResourceCommand,\n ResetServiceSettingCommand,\n ResumeSessionCommand,\n SendAutomationSignalCommand,\n SendCommandCommand,\n StartAccessRequestCommand,\n StartAssociationsOnceCommand,\n StartAutomationExecutionCommand,\n StartChangeRequestExecutionCommand,\n StartExecutionPreviewCommand,\n StartSessionCommand,\n StopAutomationExecutionCommand,\n TerminateSessionCommand,\n UnlabelParameterVersionCommand,\n UpdateAssociationCommand,\n UpdateAssociationStatusCommand,\n UpdateDocumentCommand,\n UpdateDocumentDefaultVersionCommand,\n UpdateDocumentMetadataCommand,\n UpdateMaintenanceWindowCommand,\n UpdateMaintenanceWindowTargetCommand,\n UpdateMaintenanceWindowTaskCommand,\n UpdateManagedInstanceRoleCommand,\n UpdateOpsItemCommand,\n UpdateOpsMetadataCommand,\n UpdatePatchBaselineCommand,\n UpdateResourceDataSyncCommand,\n UpdateServiceSettingCommand,\n paginateDescribeActivations,\n paginateDescribeAssociationExecutionTargets,\n paginateDescribeAssociationExecutions,\n paginateDescribeAutomationExecutions,\n paginateDescribeAutomationStepExecutions,\n paginateDescribeAvailablePatches,\n paginateDescribeEffectiveInstanceAssociations,\n paginateDescribeEffectivePatchesForPatchBaseline,\n paginateDescribeInstanceAssociationsStatus,\n paginateDescribeInstanceInformation,\n paginateDescribeInstancePatchStatesForPatchGroup,\n paginateDescribeInstancePatchStates,\n paginateDescribeInstancePatches,\n paginateDescribeInstanceProperties,\n paginateDescribeInventoryDeletions,\n paginateDescribeMaintenanceWindowExecutionTaskInvocations,\n paginateDescribeMaintenanceWindowExecutionTasks,\n paginateDescribeMaintenanceWindowExecutions,\n paginateDescribeMaintenanceWindowSchedule,\n paginateDescribeMaintenanceWindowTargets,\n paginateDescribeMaintenanceWindowTasks,\n paginateDescribeMaintenanceWindowsForTarget,\n paginateDescribeMaintenanceWindows,\n paginateDescribeOpsItems,\n paginateDescribeParameters,\n paginateDescribePatchBaselines,\n paginateDescribePatchGroups,\n paginateDescribePatchProperties,\n paginateDescribeSessions,\n paginateGetInventory,\n paginateGetInventorySchema,\n paginateGetOpsSummary,\n paginateGetParameterHistory,\n paginateGetParametersByPath,\n paginateGetResourcePolicies,\n paginateListAssociationVersions,\n paginateListAssociations,\n paginateListCommandInvocations,\n paginateListCommands,\n paginateListComplianceItems,\n paginateListComplianceSummaries,\n paginateListDocumentVersions,\n paginateListDocuments,\n paginateListNodes,\n paginateListNodesSummary,\n paginateListOpsItemEvents,\n paginateListOpsItemRelatedItems,\n paginateListOpsMetadata,\n paginateListResourceComplianceSummaries,\n paginateListResourceDataSync,\n waitForCommandExecuted,\n waitUntilCommandExecuted,\n AccessDeniedException,\n AccessRequestStatus,\n ResourceTypeForTagging,\n InternalServerError,\n InvalidResourceId,\n InvalidResourceType,\n TooManyTagsError,\n TooManyUpdates,\n ExternalAlarmState,\n AlreadyExistsException,\n OpsItemConflictException,\n OpsItemInvalidParameterException,\n OpsItemLimitExceededException,\n OpsItemNotFoundException,\n OpsItemRelatedItemAlreadyExistsException,\n DuplicateInstanceId,\n InvalidCommandId,\n InvalidInstanceId,\n DoesNotExistException,\n InvalidParameters,\n AssociationAlreadyExists,\n AssociationLimitExceeded,\n AssociationComplianceSeverity,\n AssociationSyncCompliance,\n AssociationStatusName,\n InvalidDocument,\n InvalidDocumentVersion,\n InvalidOutputLocation,\n InvalidSchedule,\n InvalidTag,\n InvalidTarget,\n InvalidTargetMaps,\n UnsupportedPlatformType,\n Fault,\n AttachmentsSourceKey,\n DocumentFormat,\n DocumentType,\n DocumentHashType,\n DocumentParameterType,\n PlatformType,\n ReviewStatus,\n DocumentStatus,\n DocumentAlreadyExists,\n DocumentLimitExceeded,\n InvalidDocumentContent,\n InvalidDocumentSchemaVersion,\n MaxDocumentSizeExceeded,\n IdempotentParameterMismatch,\n ResourceLimitExceededException,\n OpsItemDataType,\n OpsItemAccessDeniedException,\n OpsItemAlreadyExistsException,\n OpsMetadataAlreadyExistsException,\n OpsMetadataInvalidArgumentException,\n OpsMetadataLimitExceededException,\n OpsMetadataTooManyUpdatesException,\n PatchComplianceLevel,\n PatchFilterKey,\n PatchComplianceStatus,\n OperatingSystem,\n PatchAction,\n ResourceDataSyncS3Format,\n ResourceDataSyncAlreadyExistsException,\n ResourceDataSyncCountExceededException,\n ResourceDataSyncInvalidConfigurationException,\n InvalidActivation,\n InvalidActivationId,\n AssociationDoesNotExist,\n AssociatedInstances,\n InvalidDocumentOperation,\n InventorySchemaDeleteOption,\n InvalidDeleteInventoryParametersException,\n InvalidInventoryRequestException,\n InvalidOptionException,\n InvalidTypeNameException,\n OpsMetadataNotFoundException,\n ParameterNotFound,\n ResourceInUseException,\n ResourceDataSyncNotFoundException,\n MalformedResourcePolicyDocumentException,\n ResourceNotFoundException,\n ResourcePolicyConflictException,\n ResourcePolicyInvalidParameterException,\n ResourcePolicyNotFoundException,\n TargetInUseException,\n DescribeActivationsFilterKeys,\n InvalidFilter,\n InvalidNextToken,\n InvalidAssociationVersion,\n AssociationExecutionFilterKey,\n AssociationFilterOperatorType,\n AssociationExecutionDoesNotExist,\n AssociationExecutionTargetsFilterKey,\n AutomationExecutionFilterKey,\n AutomationExecutionStatus,\n AutomationSubtype,\n AutomationType,\n ExecutionMode,\n InvalidFilterKey,\n InvalidFilterValue,\n AutomationExecutionNotFoundException,\n StepExecutionFilterKey,\n DocumentPermissionType,\n InvalidPermissionType,\n PatchDeploymentStatus,\n UnsupportedOperatingSystem,\n InstanceInformationFilterKey,\n PingStatus,\n ResourceType,\n SourceType,\n InvalidInstanceInformationFilterValue,\n PatchComplianceDataState,\n PatchOperationType,\n RebootOption,\n InstancePatchStateOperatorType,\n InstancePropertyFilterOperator,\n InstancePropertyFilterKey,\n InvalidInstancePropertyFilterValue,\n InventoryDeletionStatus,\n InvalidDeletionIdException,\n MaintenanceWindowExecutionStatus,\n MaintenanceWindowTaskType,\n CreateAssociationRequestFilterSensitiveLog,\n AssociationDescriptionFilterSensitiveLog,\n CreateAssociationResultFilterSensitiveLog,\n CreateAssociationBatchRequestEntryFilterSensitiveLog,\n CreateAssociationBatchRequestFilterSensitiveLog,\n FailedCreateAssociationFilterSensitiveLog,\n CreateAssociationBatchResultFilterSensitiveLog,\n CreateMaintenanceWindowRequestFilterSensitiveLog,\n PatchSourceFilterSensitiveLog,\n CreatePatchBaselineRequestFilterSensitiveLog,\n DescribeAssociationResultFilterSensitiveLog,\n InstanceInformationFilterSensitiveLog,\n DescribeInstanceInformationResultFilterSensitiveLog,\n InstancePatchStateFilterSensitiveLog,\n DescribeInstancePatchStatesResultFilterSensitiveLog,\n DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog,\n InstancePropertyFilterSensitiveLog,\n DescribeInstancePropertiesResultFilterSensitiveLog,\n MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog,\n DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog,\n MaintenanceWindowIdentityFilterSensitiveLog,\n DescribeMaintenanceWindowsResultFilterSensitiveLog,\n MaintenanceWindowResourceType,\n MaintenanceWindowTaskCutoffBehavior,\n OpsItemFilterKey,\n OpsItemFilterOperator,\n OpsItemStatus,\n ParametersFilterKey,\n ParameterTier,\n ParameterType,\n InvalidFilterOption,\n PatchSet,\n PatchProperty,\n SessionFilterKey,\n SessionState,\n SessionStatus,\n OpsItemRelatedItemAssociationNotFoundException,\n ThrottlingException,\n ValidationException,\n CalendarState,\n InvalidDocumentType,\n UnsupportedCalendarException,\n CommandInvocationStatus,\n InvalidPluginName,\n InvocationDoesNotExist,\n ConnectionStatus,\n UnsupportedFeatureRequiredException,\n AttachmentHashType,\n ImpactType,\n ExecutionPreview,\n ExecutionPreviewStatus,\n InventoryQueryOperatorType,\n InvalidAggregatorException,\n InvalidInventoryGroupException,\n InvalidResultAttributeException,\n InventoryAttributeDataType,\n NotificationEvent,\n NotificationType,\n OpsFilterOperatorType,\n InvalidKeyId,\n ParameterVersionNotFound,\n ServiceSettingNotFound,\n ParameterVersionLabelLimitExceeded,\n AssociationFilterKey,\n CommandFilterKey,\n CommandPluginStatus,\n CommandStatus,\n ComplianceQueryOperatorType,\n ComplianceSeverity,\n ComplianceStatus,\n DocumentMetadataEnum,\n DocumentReviewCommentType,\n DocumentFilterKey,\n NodeFilterKey,\n NodeFilterOperatorType,\n ManagedStatus,\n NodeType,\n UnsupportedOperationException,\n NodeAggregatorType,\n NodeAttributeName,\n NodeTypeName,\n OpsItemEventFilterKey,\n OpsItemEventFilterOperator,\n OpsItemRelatedItemsFilterKey,\n OpsItemRelatedItemsFilterOperator,\n LastResourceDataSyncStatus,\n DocumentPermissionLimit,\n ComplianceTypeCountLimitExceededException,\n InvalidItemContentException,\n ItemSizeLimitExceededException,\n ComplianceUploadType,\n TotalSizeLimitExceededException,\n CustomSchemaCountLimitExceededException,\n InvalidInventoryItemContextException,\n ItemContentMismatchException,\n SubTypeCountLimitExceededException,\n UnsupportedInventoryItemContextException,\n UnsupportedInventorySchemaVersionException,\n HierarchyLevelLimitExceededException,\n HierarchyTypeMismatchException,\n IncompatiblePolicyException,\n InvalidAllowedPatternException,\n InvalidPolicyAttributeException,\n InvalidPolicyTypeException,\n ParameterAlreadyExists,\n ParameterLimitExceeded,\n ParameterMaxVersionLimitExceeded,\n ParameterPatternMismatchException,\n PoliciesLimitExceededException,\n UnsupportedParameterType,\n ResourcePolicyLimitExceededException,\n MaintenanceWindowTargetFilterSensitiveLog,\n DescribeMaintenanceWindowTargetsResultFilterSensitiveLog,\n MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog,\n MaintenanceWindowTaskFilterSensitiveLog,\n DescribeMaintenanceWindowTasksResultFilterSensitiveLog,\n CredentialsFilterSensitiveLog,\n GetAccessTokenResponseFilterSensitiveLog,\n BaselineOverrideFilterSensitiveLog,\n GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog,\n GetMaintenanceWindowResultFilterSensitiveLog,\n GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog,\n GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog,\n MaintenanceWindowLambdaParametersFilterSensitiveLog,\n MaintenanceWindowRunCommandParametersFilterSensitiveLog,\n MaintenanceWindowStepFunctionsParametersFilterSensitiveLog,\n MaintenanceWindowTaskInvocationParametersFilterSensitiveLog,\n GetMaintenanceWindowTaskResultFilterSensitiveLog,\n ParameterFilterSensitiveLog,\n GetParameterResultFilterSensitiveLog,\n ParameterHistoryFilterSensitiveLog,\n GetParameterHistoryResultFilterSensitiveLog,\n GetParametersResultFilterSensitiveLog,\n GetParametersByPathResultFilterSensitiveLog,\n GetPatchBaselineResultFilterSensitiveLog,\n AssociationVersionInfoFilterSensitiveLog,\n ListAssociationVersionsResultFilterSensitiveLog,\n CommandFilterSensitiveLog,\n ListCommandsResultFilterSensitiveLog,\n InstanceInfoFilterSensitiveLog,\n NodeTypeFilterSensitiveLog,\n NodeFilterSensitiveLog,\n ListNodesResultFilterSensitiveLog,\n PutParameterRequestFilterSensitiveLog,\n FeatureNotAvailableException,\n AutomationStepNotFoundException,\n InvalidAutomationSignalException,\n SignalType,\n InvalidNotificationConfig,\n InvalidOutputFolder,\n InvalidRole,\n ServiceQuotaExceededException,\n InvalidAssociation,\n AutomationDefinitionNotFoundException,\n AutomationDefinitionVersionNotFoundException,\n AutomationExecutionLimitExceededException,\n InvalidAutomationExecutionParametersException,\n AutomationDefinitionNotApprovedException,\n ExecutionInputs,\n TargetNotConnected,\n InvalidAutomationStatusUpdateException,\n StopType,\n AssociationVersionLimitExceeded,\n InvalidUpdate,\n StatusUnchanged,\n DocumentVersionLimitExceeded,\n DuplicateDocumentContent,\n DuplicateDocumentVersionName,\n DocumentReviewAction,\n OpsMetadataKeyLimitExceededException,\n ResourceDataSyncConflictException,\n RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog,\n RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog,\n SendCommandRequestFilterSensitiveLog,\n SendCommandResultFilterSensitiveLog,\n UpdateAssociationRequestFilterSensitiveLog,\n UpdateAssociationResultFilterSensitiveLog,\n UpdateAssociationStatusResultFilterSensitiveLog,\n UpdateMaintenanceWindowRequestFilterSensitiveLog,\n UpdateMaintenanceWindowResultFilterSensitiveLog,\n UpdateMaintenanceWindowTargetRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTargetResultFilterSensitiveLog,\n UpdateMaintenanceWindowTaskRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTaskResultFilterSensitiveLog,\n UpdatePatchBaselineRequestFilterSensitiveLog,\n UpdatePatchBaselineResultFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-11-06\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSMHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSM\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithSAML\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithSAMLCommand: () => AssumeRoleWithSAMLCommand,\n AssumeRoleWithSAMLRequestFilterSensitiveLog: () => AssumeRoleWithSAMLRequestFilterSensitiveLog,\n AssumeRoleWithSAMLResponseFilterSensitiveLog: () => AssumeRoleWithSAMLResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n AssumeRootCommand: () => AssumeRootCommand,\n AssumeRootResponseFilterSensitiveLog: () => AssumeRootResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters10.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n DecodeAuthorizationMessageCommand: () => DecodeAuthorizationMessageCommand,\n ExpiredTokenException: () => ExpiredTokenException,\n GetAccessKeyInfoCommand: () => GetAccessKeyInfoCommand,\n GetCallerIdentityCommand: () => GetCallerIdentityCommand,\n GetFederationTokenCommand: () => GetFederationTokenCommand,\n GetFederationTokenResponseFilterSensitiveLog: () => GetFederationTokenResponseFilterSensitiveLog,\n GetSessionTokenCommand: () => GetSessionTokenCommand,\n GetSessionTokenResponseFilterSensitiveLog: () => GetSessionTokenResponseFilterSensitiveLog,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidAuthorizationMessageException: () => InvalidAuthorizationMessageException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././STSClient\"), module.exports);\n\n// src/STS.ts\n\n\n// src/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/models/models_0.ts\n\n\n// src/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\nvar InvalidAuthorizationMessageException = class _InvalidAuthorizationMessageException extends STSServiceException {\n static {\n __name(this, \"InvalidAuthorizationMessageException\");\n }\n name = \"InvalidAuthorizationMessageException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAuthorizationMessageException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAuthorizationMessageException.prototype);\n }\n};\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar AssumeRoleWithSAMLRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SAMLAssertion && { SAMLAssertion: import_smithy_client.SENSITIVE_STRING }\n}), \"AssumeRoleWithSAMLRequestFilterSensitiveLog\");\nvar AssumeRoleWithSAMLResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithSAMLResponseFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar AssumeRootResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRootResponseFilterSensitiveLog\");\nvar GetFederationTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetFederationTokenResponseFilterSensitiveLog\");\nvar GetSessionTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetSessionTokenResponseFilterSensitiveLog\");\n\n// src/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithSAMLRequest(input, context),\n [_A]: _ARWSAML,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithSAMLCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar se_AssumeRootCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRootRequest(input, context),\n [_A]: _ARs,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRootCommand\");\nvar se_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DecodeAuthorizationMessageRequest(input, context),\n [_A]: _DAM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DecodeAuthorizationMessageCommand\");\nvar se_GetAccessKeyInfoCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAccessKeyInfoRequest(input, context),\n [_A]: _GAKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccessKeyInfoCommand\");\nvar se_GetCallerIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetCallerIdentityRequest(input, context),\n [_A]: _GCI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCallerIdentityCommand\");\nvar se_GetFederationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetFederationTokenRequest(input, context),\n [_A]: _GFT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetFederationTokenCommand\");\nvar se_GetSessionTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSessionTokenRequest(input, context),\n [_A]: _GST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSessionTokenCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithSAMLResponse(data.AssumeRoleWithSAMLResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithSAMLCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRootCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRootResponse(data.AssumeRootResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRootCommand\");\nvar de_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DecodeAuthorizationMessageResponse(data.DecodeAuthorizationMessageResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DecodeAuthorizationMessageCommand\");\nvar de_GetAccessKeyInfoCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccessKeyInfoResponse(data.GetAccessKeyInfoResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccessKeyInfoCommand\");\nvar de_GetCallerIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCallerIdentityResponse(data.GetCallerIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCallerIdentityCommand\");\nvar de_GetFederationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetFederationTokenResponse(data.GetFederationTokenResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetFederationTokenCommand\");\nvar de_GetSessionTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSessionTokenResponse(data.GetSessionTokenResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSessionTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"InvalidAuthorizationMessageException\":\n case \"com.amazonaws.sts#InvalidAuthorizationMessageException\":\n throw await de_InvalidAuthorizationMessageExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidAuthorizationMessageExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidAuthorizationMessageException(body.Error, context);\n const exception = new InvalidAuthorizationMessageException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAuthorizationMessageExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithSAMLRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_SAMLA] != null) {\n entries[_SAMLA] = input[_SAMLA];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithSAMLRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_AssumeRootRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_TPA] != null) {\n const memberEntries = se_PolicyDescriptorType(input[_TPA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TaskPolicyArn.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRootRequest\");\nvar se_DecodeAuthorizationMessageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EM] != null) {\n entries[_EM] = input[_EM];\n }\n return entries;\n}, \"se_DecodeAuthorizationMessageRequest\");\nvar se_GetAccessKeyInfoRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n return entries;\n}, \"se_GetAccessKeyInfoRequest\");\nvar se_GetCallerIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_GetCallerIdentityRequest\");\nvar se_GetFederationTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetFederationTokenRequest\");\nvar se_GetSessionTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n return entries;\n}, \"se_GetSessionTokenRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAro] != null) {\n entries[_PAro] = input[_PAro];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithSAMLResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.expectString)(output[_ST]);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]);\n }\n if (output[_NQ] != null) {\n contents[_NQ] = (0, import_smithy_client.expectString)(output[_NQ]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithSAMLResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_AssumeRootResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRootResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]);\n }\n if (output[_STe] != null) {\n contents[_STe] = (0, import_smithy_client.expectString)(output[_STe]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_DecodeAuthorizationMessageResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DM] != null) {\n contents[_DM] = (0, import_smithy_client.expectString)(output[_DM]);\n }\n return contents;\n}, \"de_DecodeAuthorizationMessageResponse\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_FederatedUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_FUI] != null) {\n contents[_FUI] = (0, import_smithy_client.expectString)(output[_FUI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_FederatedUser\");\nvar de_GetAccessKeyInfoResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ac] != null) {\n contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]);\n }\n return contents;\n}, \"de_GetAccessKeyInfoResponse\");\nvar de_GetCallerIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_Ac] != null) {\n contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_GetCallerIdentityResponse\");\nvar de_GetFederationTokenResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_FU] != null) {\n contents[_FU] = de_FederatedUser(output[_FU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n return contents;\n}, \"de_GetFederationTokenResponse\");\nvar de_GetSessionTokenResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n return contents;\n}, \"de_GetSessionTokenResponse\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidAuthorizationMessageException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidAuthorizationMessageException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWSAML = \"AssumeRoleWithSAML\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _ARs = \"AssumeRoot\";\nvar _Ac = \"Account\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DAM = \"DecodeAuthorizationMessage\";\nvar _DM = \"DecodedMessage\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _EM = \"EncodedMessage\";\nvar _FU = \"FederatedUser\";\nvar _FUI = \"FederatedUserId\";\nvar _GAKI = \"GetAccessKeyInfo\";\nvar _GCI = \"GetCallerIdentity\";\nvar _GFT = \"GetFederationToken\";\nvar _GST = \"GetSessionToken\";\nvar _I = \"Issuer\";\nvar _K = \"Key\";\nvar _N = \"Name\";\nvar _NQ = \"NameQualifier\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"PrincipalArn\";\nvar _PAro = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _S = \"Subject\";\nvar _SAK = \"SecretAccessKey\";\nvar _SAMLA = \"SAMLAssertion\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SubjectType\";\nvar _STe = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TP = \"TargetPrincipal\";\nvar _TPA = \"TaskPolicyArn\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _UI = \"UserId\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/commands/AssumeRoleWithSAMLCommand.ts\n\n\n\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithSAMLCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithSAML\", {}).n(\"STSClient\", \"AssumeRoleWithSAMLCommand\").f(AssumeRoleWithSAMLRequestFilterSensitiveLog, AssumeRoleWithSAMLResponseFilterSensitiveLog).ser(se_AssumeRoleWithSAMLCommand).de(de_AssumeRoleWithSAMLCommand).build() {\n static {\n __name(this, \"AssumeRoleWithSAMLCommand\");\n }\n};\n\n// src/commands/AssumeRoleWithWebIdentityCommand.ts\n\n\n\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters3.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/commands/AssumeRootCommand.ts\n\n\n\nvar import_EndpointParameters4 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRootCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters4.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoot\", {}).n(\"STSClient\", \"AssumeRootCommand\").f(void 0, AssumeRootResponseFilterSensitiveLog).ser(se_AssumeRootCommand).de(de_AssumeRootCommand).build() {\n static {\n __name(this, \"AssumeRootCommand\");\n }\n};\n\n// src/commands/DecodeAuthorizationMessageCommand.ts\n\n\n\nvar import_EndpointParameters5 = require(\"./endpoint/EndpointParameters\");\nvar DecodeAuthorizationMessageCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters5.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"DecodeAuthorizationMessage\", {}).n(\"STSClient\", \"DecodeAuthorizationMessageCommand\").f(void 0, void 0).ser(se_DecodeAuthorizationMessageCommand).de(de_DecodeAuthorizationMessageCommand).build() {\n static {\n __name(this, \"DecodeAuthorizationMessageCommand\");\n }\n};\n\n// src/commands/GetAccessKeyInfoCommand.ts\n\n\n\nvar import_EndpointParameters6 = require(\"./endpoint/EndpointParameters\");\nvar GetAccessKeyInfoCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters6.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetAccessKeyInfo\", {}).n(\"STSClient\", \"GetAccessKeyInfoCommand\").f(void 0, void 0).ser(se_GetAccessKeyInfoCommand).de(de_GetAccessKeyInfoCommand).build() {\n static {\n __name(this, \"GetAccessKeyInfoCommand\");\n }\n};\n\n// src/commands/GetCallerIdentityCommand.ts\n\n\n\nvar import_EndpointParameters7 = require(\"./endpoint/EndpointParameters\");\nvar GetCallerIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters7.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetCallerIdentity\", {}).n(\"STSClient\", \"GetCallerIdentityCommand\").f(void 0, void 0).ser(se_GetCallerIdentityCommand).de(de_GetCallerIdentityCommand).build() {\n static {\n __name(this, \"GetCallerIdentityCommand\");\n }\n};\n\n// src/commands/GetFederationTokenCommand.ts\n\n\n\nvar import_EndpointParameters8 = require(\"./endpoint/EndpointParameters\");\nvar GetFederationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters8.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetFederationToken\", {}).n(\"STSClient\", \"GetFederationTokenCommand\").f(void 0, GetFederationTokenResponseFilterSensitiveLog).ser(se_GetFederationTokenCommand).de(de_GetFederationTokenCommand).build() {\n static {\n __name(this, \"GetFederationTokenCommand\");\n }\n};\n\n// src/commands/GetSessionTokenCommand.ts\n\n\n\nvar import_EndpointParameters9 = require(\"./endpoint/EndpointParameters\");\nvar GetSessionTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters9.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetSessionToken\", {}).n(\"STSClient\", \"GetSessionTokenCommand\").f(void 0, GetSessionTokenResponseFilterSensitiveLog).ser(se_GetSessionTokenCommand).de(de_GetSessionTokenCommand).build() {\n static {\n __name(this, \"GetSessionTokenCommand\");\n }\n};\n\n// src/STS.ts\nvar import_STSClient = require(\"././STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithSAMLCommand,\n AssumeRoleWithWebIdentityCommand,\n AssumeRootCommand,\n DecodeAuthorizationMessageCommand,\n GetAccessKeyInfoCommand,\n GetCallerIdentityCommand,\n GetFederationTokenCommand,\n GetSessionTokenCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, STS);\n\n// src/index.ts\nvar import_EndpointParameters10 = require(\"./endpoint/EndpointParameters\");\n\n// src/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"././STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n STSServiceException,\n __Client,\n STSClient,\n STS,\n $Command,\n AssumeRoleCommand,\n AssumeRoleWithSAMLCommand,\n AssumeRoleWithWebIdentityCommand,\n AssumeRootCommand,\n DecodeAuthorizationMessageCommand,\n GetAccessKeyInfoCommand,\n GetCallerIdentityCommand,\n GetFederationTokenCommand,\n GetSessionTokenCommand,\n ExpiredTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n IDPCommunicationErrorException,\n InvalidAuthorizationMessageException,\n CredentialsFilterSensitiveLog,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithSAMLRequestFilterSensitiveLog,\n AssumeRoleWithSAMLResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n AssumeRootResponseFilterSensitiveLog,\n GetFederationTokenResponseFilterSensitiveLog,\n GetSessionTokenResponseFilterSensitiveLog,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n decorateDefaultCredentialProvider\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await (0, credential_provider_node_1.defaultProvider)(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client2.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== void 0) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadCognitoIdentity.ts\nvar loadCognitoIdentity_exports = {};\n__export(loadCognitoIdentity_exports, {\n CognitoIdentityClient: () => import_client_cognito_identity.CognitoIdentityClient,\n GetCredentialsForIdentityCommand: () => import_client_cognito_identity.GetCredentialsForIdentityCommand,\n GetIdCommand: () => import_client_cognito_identity.GetIdCommand\n});\nvar import_client_cognito_identity;\nvar init_loadCognitoIdentity = __esm({\n \"src/loadCognitoIdentity.ts\"() {\n \"use strict\";\n import_client_cognito_identity = require(\"@aws-sdk/client-cognito-identity\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromCognitoIdentity: () => fromCognitoIdentity,\n fromCognitoIdentityPool: () => fromCognitoIdentityPool\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromCognitoIdentity.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\n\n// src/resolveLogins.ts\nfunction resolveLogins(logins) {\n return Promise.all(\n Object.keys(logins).reduce((arr, name) => {\n const tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n } else {\n arr.push(tokenOrProvider().then((token) => [name, token]));\n }\n return arr;\n }, [])\n ).then(\n (resolvedPairs) => resolvedPairs.reduce((logins2, [key, value]) => {\n logins2[key] = value;\n return logins2;\n }, {})\n );\n}\n__name(resolveLogins, \"resolveLogins\");\n\n// src/fromCognitoIdentity.ts\nfunction fromCognitoIdentity(parameters) {\n return async (awsIdentityProperties) => {\n parameters.logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const { GetCredentialsForIdentityCommand: GetCredentialsForIdentityCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));\n const fromConfigs = /* @__PURE__ */ __name((property) => parameters.clientConfig?.[property] ?? parameters.parentClientConfig?.[property] ?? awsIdentityProperties?.callerClientConfig?.[property], \"fromConfigs\");\n const {\n Credentials: {\n AccessKeyId = throwOnMissingAccessKeyId(parameters.logger),\n Expiration,\n SecretKey = throwOnMissingSecretKey(parameters.logger),\n SessionToken\n } = throwOnMissingCredentials(parameters.logger)\n } = await (parameters.client ?? new CognitoIdentityClient2(\n Object.assign({}, parameters.clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\")\n })\n )).send(\n new GetCredentialsForIdentityCommand2({\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId,\n Logins: parameters.logins ? await resolveLogins(parameters.logins) : void 0\n })\n );\n return {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration\n };\n };\n}\n__name(fromCognitoIdentity, \"fromCognitoIdentity\");\nfunction throwOnMissingAccessKeyId(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no access key ID\", { logger });\n}\n__name(throwOnMissingAccessKeyId, \"throwOnMissingAccessKeyId\");\nfunction throwOnMissingCredentials(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no credentials\", { logger });\n}\n__name(throwOnMissingCredentials, \"throwOnMissingCredentials\");\nfunction throwOnMissingSecretKey(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no secret key\", { logger });\n}\n__name(throwOnMissingSecretKey, \"throwOnMissingSecretKey\");\n\n// src/fromCognitoIdentityPool.ts\n\n\n// src/IndexedDbStorage.ts\nvar STORE_NAME = \"IdentityIds\";\nvar IndexedDbStorage = class {\n constructor(dbName = \"aws:cognito-identity-ids\") {\n this.dbName = dbName;\n }\n static {\n __name(this, \"IndexedDbStorage\");\n }\n getItem(key) {\n return this.withObjectStore(\"readonly\", (store) => {\n const req = store.get(key);\n return new Promise((resolve) => {\n req.onerror = () => resolve(null);\n req.onsuccess = () => resolve(req.result ? req.result.value : null);\n });\n }).catch(() => null);\n }\n removeItem(key) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.delete(key);\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n setItem(id, value) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.put({ id, value });\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n getDb() {\n const openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise((resolve, reject) => {\n openDbRequest.onsuccess = () => {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = () => {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = () => {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = () => {\n const db = openDbRequest.result;\n db.onerror = () => {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n }\n withObjectStore(mode, action) {\n return this.getDb().then((db) => {\n const tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = () => db.close();\n return new Promise((resolve, reject) => {\n tx.onerror = () => reject(tx.error);\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch((err) => {\n db.close();\n throw err;\n });\n });\n }\n};\n\n// src/InMemoryStorage.ts\nvar InMemoryStorage = class {\n constructor(store = {}) {\n this.store = store;\n }\n static {\n __name(this, \"InMemoryStorage\");\n }\n getItem(key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n }\n removeItem(key) {\n delete this.store[key];\n }\n setItem(key, value) {\n this.store[key] = value;\n }\n};\n\n// src/localStorage.ts\nvar inMemoryStorage = new InMemoryStorage();\nfunction localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n__name(localStorage, \"localStorage\");\n\n// src/fromCognitoIdentityPool.ts\nfunction fromCognitoIdentityPool({\n accountId,\n cache = localStorage(),\n client,\n clientConfig,\n customRoleArn,\n identityPoolId,\n logins,\n userIdentifier = !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : void 0,\n logger,\n parentClientConfig\n}) {\n logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const cacheKey = userIdentifier ? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}` : void 0;\n let provider = /* @__PURE__ */ __name(async (awsIdentityProperties) => {\n const { GetIdCommand: GetIdCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));\n const fromConfigs = /* @__PURE__ */ __name((property) => clientConfig?.[property] ?? parentClientConfig?.[property] ?? awsIdentityProperties?.callerClientConfig?.[property], \"fromConfigs\");\n const _client = client ?? new CognitoIdentityClient2(\n Object.assign({}, clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\")\n })\n );\n let identityId = cacheKey && await cache.getItem(cacheKey);\n if (!identityId) {\n const { IdentityId = throwOnMissingId(logger) } = await _client.send(\n new GetIdCommand2({\n AccountId: accountId,\n IdentityPoolId: identityPoolId,\n Logins: logins ? await resolveLogins(logins) : void 0\n })\n );\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(() => {\n });\n }\n }\n provider = fromCognitoIdentity({\n client: _client,\n customRoleArn,\n logins,\n identityId\n });\n return provider(awsIdentityProperties);\n }, \"provider\");\n return (awsIdentityProperties) => provider(awsIdentityProperties).catch(async (err) => {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(() => {\n });\n }\n throw err;\n });\n}\n__name(fromCognitoIdentityPool, \"fromCognitoIdentityPool\");\nfunction throwOnMissingId(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no identity ID\", { logger });\n}\n__name(throwOnMissingId, \"throwOnMissingId\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromCognitoIdentity,\n fromCognitoIdentityPool\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.propertyProviderChain = exports.createCredentialChain = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst createCredentialChain = (...credentialProviders) => {\n let expireAfter = -1;\n const baseFunction = async (awsIdentityProperties) => {\n const credentials = await (0, exports.propertyProviderChain)(...credentialProviders)(awsIdentityProperties);\n if (!credentials.expiration && expireAfter !== -1) {\n credentials.expiration = new Date(Date.now() + expireAfter);\n }\n return credentials;\n };\n const withOptions = Object.assign(baseFunction, {\n expireAfter(milliseconds) {\n if (milliseconds < 5 * 60_000) {\n throw new Error(\"@aws-sdk/credential-providers - createCredentialChain(...).expireAfter(ms) may not be called with a duration lower than five minutes.\");\n }\n expireAfter = milliseconds;\n return withOptions;\n },\n });\n return withOptions;\n};\nexports.createCredentialChain = createCredentialChain;\nconst propertyProviderChain = (...providers) => async (awsIdentityProperties) => {\n if (providers.length === 0) {\n throw new property_provider_1.ProviderError(\"No providers in chain\");\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n const credentials = await provider(awsIdentityProperties);\n return credentials;\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\nexports.propertyProviderChain = propertyProviderChain;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentity = void 0;\nconst credential_provider_cognito_identity_1 = require(\"@aws-sdk/credential-provider-cognito-identity\");\nconst fromCognitoIdentity = (options) => (0, credential_provider_cognito_identity_1.fromCognitoIdentity)({\n ...options,\n});\nexports.fromCognitoIdentity = fromCognitoIdentity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentityPool = void 0;\nconst credential_provider_cognito_identity_1 = require(\"@aws-sdk/credential-provider-cognito-identity\");\nconst fromCognitoIdentityPool = (options) => (0, credential_provider_cognito_identity_1.fromCognitoIdentityPool)({\n ...options,\n});\nexports.fromCognitoIdentityPool = fromCognitoIdentityPool;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromContainerMetadata = void 0;\nconst credential_provider_imds_1 = require(\"@smithy/credential-provider-imds\");\nconst fromContainerMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromContainerMetadata\");\n return (0, credential_provider_imds_1.fromContainerMetadata)(init);\n};\nexports.fromContainerMetadata = fromContainerMetadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = void 0;\nconst credential_provider_env_1 = require(\"@aws-sdk/credential-provider-env\");\nconst fromEnv = (init) => (0, credential_provider_env_1.fromEnv)(init);\nexports.fromEnv = fromEnv;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromIni = void 0;\nconst credential_provider_ini_1 = require(\"@aws-sdk/credential-provider-ini\");\nconst fromIni = (init = {}) => (0, credential_provider_ini_1.fromIni)({\n ...init,\n});\nexports.fromIni = fromIni;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromInstanceMetadata = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst credential_provider_imds_1 = require(\"@smithy/credential-provider-imds\");\nconst fromInstanceMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromInstanceMetadata\");\n return async () => (0, credential_provider_imds_1.fromInstanceMetadata)(init)().then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_IMDS\", \"0\"));\n};\nexports.fromInstanceMetadata = fromInstanceMetadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromNodeProviderChain = void 0;\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst fromNodeProviderChain = (init = {}) => (0, credential_provider_node_1.defaultProvider)({\n ...init,\n});\nexports.fromNodeProviderChain = fromNodeProviderChain;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromProcess = void 0;\nconst credential_provider_process_1 = require(\"@aws-sdk/credential-provider-process\");\nconst fromProcess = (init) => (0, credential_provider_process_1.fromProcess)(init);\nexports.fromProcess = fromProcess;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSSO = void 0;\nconst credential_provider_sso_1 = require(\"@aws-sdk/credential-provider-sso\");\nconst fromSSO = (init = {}) => {\n return (0, credential_provider_sso_1.fromSSO)({ ...init });\n};\nexports.fromSSO = fromSSO;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTemporaryCredentials = void 0;\nconst core_1 = require(\"@smithy/core\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nconst fromTemporaryCredentials = (options, credentialDefaultProvider, regionProvider) => {\n let stsClient;\n return async (awsIdentityProperties = {}) => {\n const { callerClientConfig } = awsIdentityProperties;\n const profile = options.clientConfig?.profile ?? callerClientConfig?.profile;\n const logger = options.logger ?? callerClientConfig?.logger;\n logger?.debug(\"@aws-sdk/credential-providers - fromTemporaryCredentials (STS)\");\n const params = { ...options.params, RoleSessionName: options.params.RoleSessionName ?? \"aws-sdk-js-\" + Date.now() };\n if (params?.SerialNumber) {\n if (!options.mfaCodeProvider) {\n throw new property_provider_1.CredentialsProviderError(`Temporary credential requires multi-factor authentication, but no MFA code callback was provided.`, {\n tryNextLink: false,\n logger,\n });\n }\n params.TokenCode = await options.mfaCodeProvider(params?.SerialNumber);\n }\n const { AssumeRoleCommand, STSClient } = await Promise.resolve().then(() => __importStar(require(\"./loadSts\")));\n if (!stsClient) {\n const defaultCredentialsOrError = typeof credentialDefaultProvider === \"function\" ? credentialDefaultProvider() : undefined;\n const credentialSources = [\n options.masterCredentials,\n options.clientConfig?.credentials,\n void callerClientConfig?.credentials,\n callerClientConfig?.credentialDefaultProvider?.(),\n defaultCredentialsOrError,\n ];\n let credentialSource = \"STS client default credentials\";\n if (credentialSources[0]) {\n credentialSource = \"options.masterCredentials\";\n }\n else if (credentialSources[1]) {\n credentialSource = \"options.clientConfig.credentials\";\n }\n else if (credentialSources[2]) {\n credentialSource = \"caller client's credentials\";\n throw new Error(\"fromTemporaryCredentials recursion in callerClientConfig.credentials\");\n }\n else if (credentialSources[3]) {\n credentialSource = \"caller client's credentialDefaultProvider\";\n }\n else if (credentialSources[4]) {\n credentialSource = \"AWS SDK default credentials\";\n }\n const regionSources = [\n options.clientConfig?.region,\n callerClientConfig?.region,\n await regionProvider?.({\n profile,\n }),\n ASSUME_ROLE_DEFAULT_REGION,\n ];\n let regionSource = \"default partition's default region\";\n if (regionSources[0]) {\n regionSource = \"options.clientConfig.region\";\n }\n else if (regionSources[1]) {\n regionSource = \"caller client's region\";\n }\n else if (regionSources[2]) {\n regionSource = \"file or env region\";\n }\n const requestHandlerSources = [\n filterRequestHandler(options.clientConfig?.requestHandler),\n filterRequestHandler(callerClientConfig?.requestHandler),\n ];\n let requestHandlerSource = \"STS default requestHandler\";\n if (requestHandlerSources[0]) {\n requestHandlerSource = \"options.clientConfig.requestHandler\";\n }\n else if (requestHandlerSources[1]) {\n requestHandlerSource = \"caller client's requestHandler\";\n }\n logger?.debug?.(`@aws-sdk/credential-providers - fromTemporaryCredentials STS client init with ` +\n `${regionSource}=${await (0, core_1.normalizeProvider)(coalesce(regionSources))()}, ${credentialSource}, ${requestHandlerSource}.`);\n stsClient = new STSClient({\n ...options.clientConfig,\n credentials: coalesce(credentialSources),\n logger,\n profile,\n region: coalesce(regionSources),\n requestHandler: coalesce(requestHandlerSources),\n });\n }\n if (options.clientPlugins) {\n for (const plugin of options.clientPlugins) {\n stsClient.middlewareStack.use(plugin);\n }\n }\n const { Credentials } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new property_provider_1.CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`, {\n logger,\n });\n }\n return {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n credentialScope: Credentials.CredentialScope,\n };\n };\n};\nexports.fromTemporaryCredentials = fromTemporaryCredentials;\nconst filterRequestHandler = (requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\" ? undefined : requestHandler;\n};\nconst coalesce = (args) => {\n for (const item of args) {\n if (item !== undefined) {\n return item;\n }\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTemporaryCredentials = void 0;\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst fromNodeProviderChain_1 = require(\"./fromNodeProviderChain\");\nconst fromTemporaryCredentials_base_1 = require(\"./fromTemporaryCredentials.base\");\nconst fromTemporaryCredentials = (options) => {\n return (0, fromTemporaryCredentials_base_1.fromTemporaryCredentials)(options, fromNodeProviderChain_1.fromNodeProviderChain, async ({ profile = process.env.AWS_PROFILE }) => (0, node_config_provider_1.loadConfig)({\n environmentVariableSelector: (env) => env.AWS_REGION,\n configFileSelector: (profileData) => {\n return profileData.region;\n },\n default: () => undefined,\n }, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, profile })());\n};\nexports.fromTemporaryCredentials = fromTemporaryCredentials;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst fromTokenFile = (init = {}) => (0, credential_provider_web_identity_1.fromTokenFile)({\n ...init,\n});\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst fromWebToken = (init) => (0, credential_provider_web_identity_1.fromWebToken)({\n ...init,\n});\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./createCredentialChain\"), exports);\ntslib_1.__exportStar(require(\"./fromCognitoIdentity\"), exports);\ntslib_1.__exportStar(require(\"./fromCognitoIdentityPool\"), exports);\ntslib_1.__exportStar(require(\"./fromContainerMetadata\"), exports);\nvar credential_provider_http_1 = require(\"@aws-sdk/credential-provider-http\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return credential_provider_http_1.fromHttp; } });\ntslib_1.__exportStar(require(\"./fromEnv\"), exports);\ntslib_1.__exportStar(require(\"./fromIni\"), exports);\ntslib_1.__exportStar(require(\"./fromInstanceMetadata\"), exports);\ntslib_1.__exportStar(require(\"./fromNodeProviderChain\"), exports);\ntslib_1.__exportStar(require(\"./fromProcess\"), exports);\ntslib_1.__exportStar(require(\"./fromSSO\"), exports);\ntslib_1.__exportStar(require(\"./fromTemporaryCredentials\"), exports);\ntslib_1.__exportStar(require(\"./fromTokenFile\"), exports);\ntslib_1.__exportStar(require(\"./fromWebToken\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.AssumeRoleCommand = void 0;\nconst sts_1 = require(\"@aws-sdk/nested-clients/sts\");\nObject.defineProperty(exports, \"AssumeRoleCommand\", { enumerable: true, get: function () { return sts_1.AssumeRoleCommand; } });\nObject.defineProperty(exports, \"STSClient\", { enumerable: true, get: function () { return sts_1.STSClient; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n MetadataService: () => MetadataService\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/MetadataService.ts\nvar import_node_config_provider = require(\"@smithy/node-config-provider\");\nvar import_node_http_handler = require(\"@smithy/node-http-handler\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_util_stream = require(\"@smithy/util-stream\");\n\n// src/ConfigLoaders.ts\nvar ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nvar CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nvar ENDPOINT_SELECTORS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[ENV_ENDPOINT_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[CONFIG_ENDPOINT_NAME], \"configFileSelector\"),\n default: \"http://169.254.169.254\" /* IPv4 */\n};\nvar ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nvar CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nvar ENDPOINT_MODE_SELECTORS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[ENV_ENDPOINT_MODE_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[CONFIG_ENDPOINT_MODE_NAME], \"configFileSelector\"),\n default: \"IPv4\" /* IPv4 */\n};\nvar AWS_EC2_METADATA_V1_DISABLED = \"AWS_EC2_METADATA_V1_DISABLED\";\nvar PROFILE_AWS_EC2_METADATA_V1_DISABLED = \"ec2_metadata_v1_disabled\";\nvar IMDSv1_DISABLED_SELECTORS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[AWS_EC2_METADATA_V1_DISABLED] ? env[AWS_EC2_METADATA_V1_DISABLED] !== \"false\" : void 0, \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED] ? profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED] !== \"false\" : void 0, \"configFileSelector\"),\n default: false\n};\n\n// src/MetadataService.ts\nvar MetadataService = class {\n static {\n __name(this, \"MetadataService\");\n }\n disableFetchToken;\n config;\n /**\n * Creates a new MetadataService object with a given set of options.\n */\n constructor(options = {}) {\n this.config = (async () => {\n const profile = options?.profile || process.env.AWS_PROFILE;\n return {\n endpoint: options.endpoint ?? await (0, import_node_config_provider.loadConfig)(ENDPOINT_SELECTORS, { profile })(),\n httpOptions: {\n timeout: options?.httpOptions?.timeout || 0\n },\n ec2MetadataV1Disabled: options?.ec2MetadataV1Disabled ?? await (0, import_node_config_provider.loadConfig)(IMDSv1_DISABLED_SELECTORS, { profile })()\n };\n })();\n this.disableFetchToken = options?.disableFetchToken || false;\n }\n async request(path, options) {\n const { endpoint, ec2MetadataV1Disabled, httpOptions } = await this.config;\n const handler = new import_node_http_handler.NodeHttpHandler({\n requestTimeout: httpOptions?.timeout,\n connectionTimeout: httpOptions?.timeout\n });\n const endpointUrl = new URL(endpoint);\n const headers = options.headers || {};\n if (this.disableFetchToken && ec2MetadataV1Disabled) {\n throw new Error(\"IMDSv1 is disabled and fetching token is disabled, cannot make the request.\");\n }\n if (!this.disableFetchToken) {\n try {\n headers[\"x-aws-ec2-metadata-token\"] = await this.fetchMetadataToken();\n } catch (err) {\n if (ec2MetadataV1Disabled) {\n throw err;\n }\n }\n }\n const request = new import_protocol_http.HttpRequest({\n method: options.method || \"GET\",\n // Default to GET if no method is specified\n headers,\n hostname: endpointUrl.hostname,\n path: endpointUrl.pathname + path,\n protocol: endpointUrl.protocol\n });\n try {\n const { response } = await handler.handle(request, {});\n if (response.statusCode === 200 && response.body) {\n return (0, import_util_stream.sdkStreamMixin)(response.body).transformToString();\n } else {\n throw new Error(`Request failed with status code ${response.statusCode}`);\n }\n } catch (error) {\n throw new Error(`Error making request to the metadata service: ${error}`);\n }\n }\n async fetchMetadataToken() {\n const { endpoint, httpOptions } = await this.config;\n const handler = new import_node_http_handler.NodeHttpHandler({\n requestTimeout: httpOptions?.timeout,\n connectionTimeout: httpOptions?.timeout\n });\n const endpointUrl = new URL(endpoint);\n const tokenRequest = new import_protocol_http.HttpRequest({\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\"\n // 6 hours;\n },\n hostname: endpointUrl.hostname,\n path: \"/latest/api/token\",\n protocol: endpointUrl.protocol\n });\n try {\n const { response } = await handler.handle(tokenRequest, {});\n if (response.statusCode === 200 && response.body) {\n return (0, import_util_stream.sdkStreamMixin)(response.body).transformToString();\n } else {\n throw new Error(`Failed to fetch metadata token with status code ${response.statusCode}`);\n }\n } catch (error) {\n if (error?.statusCode === 400) {\n throw new Error(`Error fetching metadata token: ${error}`);\n } else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n this.disableFetchToken = true;\n throw new Error(`Error fetching metadata token: ${error}. disableFetchToken is enabled`);\n }\n throw new Error(`Error fetching metadata token: ${error}`);\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n MetadataService\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n Upload: () => Upload\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/Upload.ts\nvar import_client_s3 = require(\"@aws-sdk/client-s3\");\nvar import_abort_controller = require(\"@smithy/abort-controller\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar import_events = require(\"events\");\n\n// src/bytelength.ts\nvar import_buffer = require(\"buffer\");\nvar import_runtimeConfig = require(\"././runtimeConfig\");\nvar byteLength = /* @__PURE__ */ __name((input) => {\n if (input === null || input === void 0) return 0;\n if (typeof input === \"string\") {\n return import_buffer.Buffer.byteLength(input);\n }\n if (typeof input.byteLength === \"number\") {\n return input.byteLength;\n } else if (typeof input.length === \"number\") {\n return input.length;\n } else if (typeof input.size === \"number\") {\n return input.size;\n } else if (typeof input.path === \"string\") {\n try {\n return import_runtimeConfig.ClientDefaultValues.lstatSync(input.path).size;\n } catch (error) {\n return void 0;\n }\n }\n return void 0;\n}, \"byteLength\");\n\n// src/chunker.ts\n\nvar import_stream = require(\"stream\");\n\n// src/chunks/getChunkStream.ts\n\nasync function* getChunkStream(data, partSize, getNextData) {\n let partNumber = 1;\n const currentBuffer = { chunks: [], length: 0 };\n for await (const datum of getNextData(data)) {\n currentBuffer.chunks.push(datum);\n currentBuffer.length += datum.byteLength;\n while (currentBuffer.length > partSize) {\n const dataChunk = currentBuffer.chunks.length > 1 ? import_buffer.Buffer.concat(currentBuffer.chunks) : currentBuffer.chunks[0];\n yield {\n partNumber,\n data: dataChunk.subarray(0, partSize)\n };\n currentBuffer.chunks = [dataChunk.subarray(partSize)];\n currentBuffer.length = currentBuffer.chunks[0].byteLength;\n partNumber += 1;\n }\n }\n yield {\n partNumber,\n data: currentBuffer.chunks.length !== 1 ? import_buffer.Buffer.concat(currentBuffer.chunks) : currentBuffer.chunks[0],\n lastPart: true\n };\n}\n__name(getChunkStream, \"getChunkStream\");\n\n// src/chunks/getChunkUint8Array.ts\nasync function* getChunkUint8Array(data, partSize) {\n let partNumber = 1;\n let startByte = 0;\n let endByte = partSize;\n while (endByte < data.byteLength) {\n yield {\n partNumber,\n data: data.subarray(startByte, endByte)\n };\n partNumber += 1;\n startByte = endByte;\n endByte = startByte + partSize;\n }\n yield {\n partNumber,\n data: data.subarray(startByte),\n lastPart: true\n };\n}\n__name(getChunkUint8Array, \"getChunkUint8Array\");\n\n// src/chunks/getDataReadable.ts\n\nasync function* getDataReadable(data) {\n for await (const chunk of data) {\n if (import_buffer.Buffer.isBuffer(chunk) || chunk instanceof Uint8Array) {\n yield chunk;\n } else {\n yield import_buffer.Buffer.from(chunk);\n }\n }\n}\n__name(getDataReadable, \"getDataReadable\");\n\n// src/chunks/getDataReadableStream.ts\n\nasync function* getDataReadableStream(data) {\n const reader = data.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n return;\n }\n if (import_buffer.Buffer.isBuffer(value) || value instanceof Uint8Array) {\n yield value;\n } else {\n yield import_buffer.Buffer.from(value);\n }\n }\n } catch (e) {\n throw e;\n } finally {\n reader.releaseLock();\n }\n}\n__name(getDataReadableStream, \"getDataReadableStream\");\n\n// src/chunker.ts\nvar getChunk = /* @__PURE__ */ __name((data, partSize) => {\n if (data instanceof Uint8Array) {\n return getChunkUint8Array(data, partSize);\n }\n if (data instanceof import_stream.Readable) {\n return getChunkStream(data, partSize, getDataReadable);\n }\n if (data instanceof String || typeof data === \"string\") {\n return getChunkUint8Array(import_buffer.Buffer.from(data), partSize);\n }\n if (typeof data.stream === \"function\") {\n return getChunkStream(data.stream(), partSize, getDataReadableStream);\n }\n if (data instanceof ReadableStream) {\n return getChunkStream(data, partSize, getDataReadableStream);\n }\n throw new Error(\n \"Body Data is unsupported format, expected data to be one of: string | Uint8Array | Buffer | Readable | ReadableStream | Blob;.\"\n );\n}, \"getChunk\");\n\n// src/Upload.ts\nvar Upload = class _Upload extends import_events.EventEmitter {\n static {\n __name(this, \"Upload\");\n }\n /**\n * @internal\n * modified in testing only.\n */\n static MIN_PART_SIZE = 1024 * 1024 * 5;\n /**\n * S3 multipart upload does not allow more than 10,000 parts.\n */\n MAX_PARTS = 1e4;\n // Defaults.\n queueSize = 4;\n partSize = _Upload.MIN_PART_SIZE;\n leavePartsOnError = false;\n tags = [];\n client;\n params;\n // used for reporting progress.\n totalBytes;\n bytesUploadedSoFar;\n // used in the upload.\n abortController;\n concurrentUploaders = [];\n createMultiPartPromise;\n abortMultipartUploadCommand = null;\n uploadedParts = [];\n uploadEnqueuedPartsCount = 0;\n /**\n * Last UploadId if the upload was done with MultipartUpload and not PutObject.\n */\n uploadId;\n uploadEvent;\n isMultiPart = true;\n singleUploadResult;\n sent = false;\n constructor(options) {\n super();\n this.queueSize = options.queueSize || this.queueSize;\n this.partSize = options.partSize || this.partSize;\n this.leavePartsOnError = options.leavePartsOnError || this.leavePartsOnError;\n this.tags = options.tags || this.tags;\n this.client = options.client;\n this.params = options.params;\n this.__validateInput();\n this.totalBytes = byteLength(this.params.Body);\n this.bytesUploadedSoFar = 0;\n this.abortController = options.abortController ?? new import_abort_controller.AbortController();\n }\n async abort() {\n this.abortController.abort();\n }\n async done() {\n if (this.sent) {\n throw new Error(\n \"@aws-sdk/lib-storage: this instance of Upload has already executed .done(). Create a new instance.\"\n );\n }\n this.sent = true;\n return await Promise.race([this.__doMultipartUpload(), this.__abortTimeout(this.abortController.signal)]);\n }\n on(event, listener) {\n this.uploadEvent = event;\n return super.on(event, listener);\n }\n async __uploadUsingPut(dataPart) {\n this.isMultiPart = false;\n const params = { ...this.params, Body: dataPart.data };\n const clientConfig = this.client.config;\n const requestHandler = clientConfig.requestHandler;\n const eventEmitter = requestHandler instanceof import_events.EventEmitter ? requestHandler : null;\n const uploadEventListener = /* @__PURE__ */ __name((event) => {\n this.bytesUploadedSoFar = event.loaded;\n this.totalBytes = event.total;\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }, \"uploadEventListener\");\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n const resolved = await Promise.all([this.client.send(new import_client_s3.PutObjectCommand(params)), clientConfig?.endpoint?.()]);\n const putResult = resolved[0];\n let endpoint = resolved[1];\n if (!endpoint) {\n endpoint = (0, import_middleware_endpoint.toEndpointV1)(\n await (0, import_middleware_endpoint.getEndpointFromInstructions)(params, import_client_s3.PutObjectCommand, {\n ...clientConfig\n })\n );\n }\n if (!endpoint) {\n throw new Error('Could not resolve endpoint from S3 \"client.config.endpoint()\" nor EndpointsV2.');\n }\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n const locationKey = this.params.Key.split(\"/\").map((segment) => (0, import_smithy_client.extendedEncodeURIComponent)(segment)).join(\"/\");\n const locationBucket = (0, import_smithy_client.extendedEncodeURIComponent)(this.params.Bucket);\n const Location = (() => {\n const endpointHostnameIncludesBucket = endpoint.hostname.startsWith(`${locationBucket}.`);\n const forcePathStyle = this.client.config.forcePathStyle;\n const optionalPort = endpoint.port ? `:${endpoint.port}` : ``;\n if (forcePathStyle) {\n return `${endpoint.protocol}//${endpoint.hostname}${optionalPort}/${locationBucket}/${locationKey}`;\n }\n if (endpointHostnameIncludesBucket) {\n return `${endpoint.protocol}//${endpoint.hostname}${optionalPort}/${locationKey}`;\n }\n return `${endpoint.protocol}//${locationBucket}.${endpoint.hostname}${optionalPort}/${locationKey}`;\n })();\n this.singleUploadResult = {\n ...putResult,\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n Location\n };\n const totalSize = byteLength(dataPart.data);\n this.__notifyProgress({\n loaded: totalSize,\n total: totalSize,\n part: 1,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }\n async __createMultipartUpload() {\n const requestChecksumCalculation = await this.client.config.requestChecksumCalculation();\n if (!this.createMultiPartPromise) {\n const createCommandParams = { ...this.params, Body: void 0 };\n if (requestChecksumCalculation === \"WHEN_SUPPORTED\") {\n createCommandParams.ChecksumAlgorithm = this.params.ChecksumAlgorithm || import_client_s3.ChecksumAlgorithm.CRC32;\n }\n this.createMultiPartPromise = this.client.send(new import_client_s3.CreateMultipartUploadCommand(createCommandParams)).then((createMpuResponse) => {\n this.abortMultipartUploadCommand = new import_client_s3.AbortMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: createMpuResponse.UploadId\n });\n return createMpuResponse;\n });\n }\n return this.createMultiPartPromise;\n }\n async __doConcurrentUpload(dataFeeder) {\n for await (const dataPart of dataFeeder) {\n if (this.uploadEnqueuedPartsCount > this.MAX_PARTS) {\n throw new Error(\n `Exceeded ${this.MAX_PARTS} parts in multipart upload to Bucket: ${this.params.Bucket} Key: ${this.params.Key}.`\n );\n }\n if (this.abortController.signal.aborted) {\n return;\n }\n if (dataPart.partNumber === 1 && dataPart.lastPart) {\n return await this.__uploadUsingPut(dataPart);\n }\n if (!this.uploadId) {\n const { UploadId } = await this.__createMultipartUpload();\n this.uploadId = UploadId;\n if (this.abortController.signal.aborted) {\n return;\n }\n }\n const partSize = byteLength(dataPart.data) || 0;\n const requestHandler = this.client.config.requestHandler;\n const eventEmitter = requestHandler instanceof import_events.EventEmitter ? requestHandler : null;\n let lastSeenBytes = 0;\n const uploadEventListener = /* @__PURE__ */ __name((event, request) => {\n const requestPartSize = Number(request.query[\"partNumber\"]) || -1;\n if (requestPartSize !== dataPart.partNumber) {\n return;\n }\n if (event.total && partSize) {\n this.bytesUploadedSoFar += event.loaded - lastSeenBytes;\n lastSeenBytes = event.loaded;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }, \"uploadEventListener\");\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n this.uploadEnqueuedPartsCount += 1;\n const partResult = await this.client.send(\n new import_client_s3.UploadPartCommand({\n ...this.params,\n // dataPart.data is chunked into a non-streaming buffer\n // so the ContentLength from the input should not be used for MPU.\n ContentLength: void 0,\n UploadId: this.uploadId,\n Body: dataPart.data,\n PartNumber: dataPart.partNumber\n })\n );\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n if (this.abortController.signal.aborted) {\n return;\n }\n if (!partResult.ETag) {\n throw new Error(\n `Part ${dataPart.partNumber} is missing ETag in UploadPart response. Missing Bucket CORS configuration for ETag header?`\n );\n }\n this.uploadedParts.push({\n PartNumber: dataPart.partNumber,\n ETag: partResult.ETag,\n ...partResult.ChecksumCRC32 && { ChecksumCRC32: partResult.ChecksumCRC32 },\n ...partResult.ChecksumCRC32C && { ChecksumCRC32C: partResult.ChecksumCRC32C },\n ...partResult.ChecksumSHA1 && { ChecksumSHA1: partResult.ChecksumSHA1 },\n ...partResult.ChecksumSHA256 && { ChecksumSHA256: partResult.ChecksumSHA256 }\n });\n if (eventEmitter === null) {\n this.bytesUploadedSoFar += partSize;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }\n }\n async __doMultipartUpload() {\n const dataFeeder = getChunk(this.params.Body, this.partSize);\n const concurrentUploaderFailures = [];\n for (let index = 0; index < this.queueSize; index++) {\n const currentUpload = this.__doConcurrentUpload(dataFeeder).catch((err) => {\n concurrentUploaderFailures.push(err);\n });\n this.concurrentUploaders.push(currentUpload);\n }\n await Promise.all(this.concurrentUploaders);\n if (concurrentUploaderFailures.length >= 1) {\n await this.markUploadAsAborted();\n throw concurrentUploaderFailures[0];\n }\n if (this.abortController.signal.aborted) {\n await this.markUploadAsAborted();\n throw Object.assign(new Error(\"Upload aborted.\"), { name: \"AbortError\" });\n }\n let result;\n if (this.isMultiPart) {\n this.uploadedParts.sort((a, b) => a.PartNumber - b.PartNumber);\n const uploadCompleteParams = {\n ...this.params,\n Body: void 0,\n UploadId: this.uploadId,\n MultipartUpload: {\n Parts: this.uploadedParts\n }\n };\n result = await this.client.send(new import_client_s3.CompleteMultipartUploadCommand(uploadCompleteParams));\n if (typeof result?.Location === \"string\" && result.Location.includes(\"%2F\")) {\n result.Location = result.Location.replace(/%2F/g, \"/\");\n }\n } else {\n result = this.singleUploadResult;\n }\n this.abortMultipartUploadCommand = null;\n if (this.tags.length) {\n await this.client.send(\n new import_client_s3.PutObjectTaggingCommand({\n ...this.params,\n Tagging: {\n TagSet: this.tags\n }\n })\n );\n }\n return result;\n }\n /**\n * Abort the last multipart upload in progress\n * if we know the upload id, the user did not specify to leave the parts, and\n * we have a prepared AbortMultipartUpload command.\n */\n async markUploadAsAborted() {\n if (this.uploadId && !this.leavePartsOnError && null !== this.abortMultipartUploadCommand) {\n await this.client.send(this.abortMultipartUploadCommand);\n this.abortMultipartUploadCommand = null;\n }\n }\n __notifyProgress(progress) {\n if (this.uploadEvent) {\n this.emit(this.uploadEvent, progress);\n }\n }\n async __abortTimeout(abortSignal) {\n return new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Upload aborted.\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n });\n }\n __validateInput() {\n if (!this.params) {\n throw new Error(`InputError: Upload requires params to be passed to upload.`);\n }\n if (!this.client) {\n throw new Error(`InputError: Upload requires a AWS client to do uploads with.`);\n }\n if (this.partSize < _Upload.MIN_PART_SIZE) {\n throw new Error(\n `EntityTooSmall: Your proposed upload partsize [${this.partSize}] is smaller than the minimum allowed size [${_Upload.MIN_PART_SIZE}] (5MB)`\n );\n }\n if (this.queueSize < 1) {\n throw new Error(`Queue size: Must have at least one uploading queue.`);\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n Upload\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientDefaultValues = void 0;\nconst fs_1 = require(\"fs\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nexports.ClientDefaultValues = {\n ...runtimeConfig_shared_1.ClientSharedValues,\n runtime: \"node\",\n lstatSync: fs_1.lstatSync,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientSharedValues = void 0;\nexports.ClientSharedValues = {\n lstatSync: () => { },\n};\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME,\n NODE_USE_ARN_REGION_CONFIG_OPTIONS: () => NODE_USE_ARN_REGION_CONFIG_OPTIONS,\n NODE_USE_ARN_REGION_ENV_NAME: () => NODE_USE_ARN_REGION_ENV_NAME,\n NODE_USE_ARN_REGION_INI_NAME: () => NODE_USE_ARN_REGION_INI_NAME,\n bucketEndpointMiddleware: () => bucketEndpointMiddleware,\n bucketEndpointMiddlewareOptions: () => bucketEndpointMiddlewareOptions,\n bucketHostname: () => bucketHostname,\n getArnResources: () => getArnResources,\n getBucketEndpointPlugin: () => getBucketEndpointPlugin,\n getSuffixForArnEndpoint: () => getSuffixForArnEndpoint,\n resolveBucketEndpointConfig: () => resolveBucketEndpointConfig,\n validateAccountId: () => validateAccountId,\n validateDNSHostLabel: () => validateDNSHostLabel,\n validateNoDualstack: () => validateNoDualstack,\n validateNoFIPS: () => validateNoFIPS,\n validateOutpostService: () => validateOutpostService,\n validatePartition: () => validatePartition,\n validateRegion: () => validateRegion\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/NodeDisableMultiregionAccessPointConfigOptions.ts\nvar import_util_config_provider = require(\"@smithy/util-config-provider\");\nvar NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = \"AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS\";\nvar NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = \"s3_disable_multiregion_access_points\";\nvar NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => (0, import_util_config_provider.booleanSelector)(env, NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME, import_util_config_provider.SelectorType.ENV), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => (0, import_util_config_provider.booleanSelector)(profile, NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME, import_util_config_provider.SelectorType.CONFIG), \"configFileSelector\"),\n default: false\n};\n\n// src/NodeUseArnRegionConfigOptions.ts\n\nvar NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nvar NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\nvar NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => (0, import_util_config_provider.booleanSelector)(env, NODE_USE_ARN_REGION_ENV_NAME, import_util_config_provider.SelectorType.ENV), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => (0, import_util_config_provider.booleanSelector)(profile, NODE_USE_ARN_REGION_INI_NAME, import_util_config_provider.SelectorType.CONFIG), \"configFileSelector\"),\n /**\n * useArnRegion has specific behavior when undefined instead of false.\n * We therefore use undefined as the default value instead of false.\n */\n default: void 0\n};\n\n// src/bucketEndpointMiddleware.ts\nvar import_util_arn_parser = require(\"@aws-sdk/util-arn-parser\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/bucketHostnameUtils.ts\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\nvar DOT_PATTERN = /\\./;\nvar S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nvar S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\\.amazonaws\\.com$/;\nvar AWS_PARTITION_SUFFIX = \"amazonaws.com\";\nvar isBucketNameOptions = /* @__PURE__ */ __name((options) => typeof options.bucketName === \"string\", \"isBucketNameOptions\");\nvar isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), \"isDnsCompatibleBucketName\");\nvar getRegionalSuffix = /* @__PURE__ */ __name((hostname) => {\n const parts = hostname.match(S3_HOSTNAME_PATTERN);\n return [parts[4], hostname.replace(new RegExp(`^${parts[0]}`), \"\")];\n}, \"getRegionalSuffix\");\nvar getSuffix = /* @__PURE__ */ __name((hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [\"us-east-1\", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname), \"getSuffix\");\nvar getSuffixForArnEndpoint = /* @__PURE__ */ __name((hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [hostname.replace(`.${AWS_PARTITION_SUFFIX}`, \"\"), AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname), \"getSuffixForArnEndpoint\");\nvar validateArnEndpointOptions = /* @__PURE__ */ __name((options) => {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n}, \"validateArnEndpointOptions\");\nvar validateService = /* @__PURE__ */ __name((service) => {\n if (service !== \"s3\" && service !== \"s3-outposts\" && service !== \"s3-object-lambda\") {\n throw new Error(\"Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component\");\n }\n}, \"validateService\");\nvar validateS3Service = /* @__PURE__ */ __name((service) => {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n}, \"validateS3Service\");\nvar validateOutpostService = /* @__PURE__ */ __name((service) => {\n if (service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3-posts' in Outpost ARN service component\");\n }\n}, \"validateOutpostService\");\nvar validatePartition = /* @__PURE__ */ __name((partition, options) => {\n if (partition !== options.clientPartition) {\n throw new Error(`Partition in ARN is incompatible, got \"${partition}\" but expected \"${options.clientPartition}\"`);\n }\n}, \"validatePartition\");\nvar validateRegion = /* @__PURE__ */ __name((region, options) => {\n}, \"validateRegion\");\nvar validateRegionalClient = /* @__PURE__ */ __name((region) => {\n if ([\"s3-external-1\", \"aws-global\"].includes(region)) {\n throw new Error(`Client region ${region} is not regional`);\n }\n}, \"validateRegionalClient\");\nvar validateAccountId = /* @__PURE__ */ __name((accountId) => {\n if (!/[0-9]{12}/.exec(accountId)) {\n throw new Error(\"Access point ARN accountID does not match regex '[0-9]{12}'\");\n }\n}, \"validateAccountId\");\nvar validateDNSHostLabel = /* @__PURE__ */ __name((label, options = { tlsCompatible: true }) => {\n if (label.length >= 64 || !/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(label) || /(\\d+\\.){3}\\d+/.test(label) || /[.-]{2}/.test(label) || options?.tlsCompatible && DOT_PATTERN.test(label)) {\n throw new Error(`Invalid DNS label ${label}`);\n }\n}, \"validateDNSHostLabel\");\nvar validateCustomEndpoint = /* @__PURE__ */ __name((options) => {\n if (options.isCustomEndpoint) {\n if (options.dualstackEndpoint) throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (options.accelerateEndpoint) throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n}, \"validateCustomEndpoint\");\nvar getArnResources = /* @__PURE__ */ __name((resource) => {\n const delimiter = resource.includes(\":\") ? \":\" : \"/\";\n const [resourceType, ...rest] = resource.split(delimiter);\n if (resourceType === \"accesspoint\") {\n if (rest.length !== 1 || rest[0] === \"\") {\n throw new Error(`Access Point ARN should have one resource accesspoint${delimiter}{accesspointname}`);\n }\n return { accesspointName: rest[0] };\n } else if (resourceType === \"outpost\") {\n if (!rest[0] || rest[1] !== \"accesspoint\" || !rest[2] || rest.length !== 3) {\n throw new Error(\n `Outpost ARN should have resource outpost${delimiter}{outpostId}${delimiter}accesspoint${delimiter}{accesspointName}`\n );\n }\n const [outpostId, _, accesspointName] = rest;\n return { outpostId, accesspointName };\n } else {\n throw new Error(`ARN resource should begin with 'accesspoint${delimiter}' or 'outpost${delimiter}'`);\n }\n}, \"getArnResources\");\nvar validateNoDualstack = /* @__PURE__ */ __name((dualstackEndpoint) => {\n}, \"validateNoDualstack\");\nvar validateNoFIPS = /* @__PURE__ */ __name((useFipsEndpoint) => {\n if (useFipsEndpoint) throw new Error(`FIPS region is not supported with Outpost.`);\n}, \"validateNoFIPS\");\nvar validateMrapAlias = /* @__PURE__ */ __name((name) => {\n try {\n name.split(\".\").forEach((label) => {\n validateDNSHostLabel(label);\n });\n } catch (e) {\n throw new Error(`\"${name}\" is not a DNS compatible name.`);\n }\n}, \"validateMrapAlias\");\n\n// src/bucketHostname.ts\nvar bucketHostname = /* @__PURE__ */ __name((options) => {\n validateCustomEndpoint(options);\n return isBucketNameOptions(options) ? (\n // Construct endpoint when bucketName is a string referring to a bucket name\n getEndpointFromBucketName(options)\n ) : (\n // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point\n getEndpointFromArn(options)\n );\n}, \"bucketHostname\");\nvar getEndpointFromBucketName = /* @__PURE__ */ __name(({\n accelerateEndpoint = false,\n clientRegion: region,\n baseHostname,\n bucketName,\n dualstackEndpoint = false,\n fipsEndpoint = false,\n pathStyleEndpoint = false,\n tlsCompatible = true,\n isCustomEndpoint = false\n}) => {\n const [clientRegion, hostnameSuffix] = isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname);\n if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || tlsCompatible && DOT_PATTERN.test(bucketName)) {\n return {\n bucketEndpoint: false,\n hostname: dualstackEndpoint ? `s3.dualstack.${clientRegion}.${hostnameSuffix}` : baseHostname\n };\n }\n if (accelerateEndpoint) {\n baseHostname = `s3-accelerate${dualstackEndpoint ? \".dualstack\" : \"\"}.${hostnameSuffix}`;\n } else if (dualstackEndpoint) {\n baseHostname = `s3.dualstack.${clientRegion}.${hostnameSuffix}`;\n }\n return {\n bucketEndpoint: true,\n hostname: `${bucketName}.${baseHostname}`\n };\n}, \"getEndpointFromBucketName\");\nvar getEndpointFromArn = /* @__PURE__ */ __name((options) => {\n const { isCustomEndpoint, baseHostname, clientRegion } = options;\n const hostnameSuffix = isCustomEndpoint ? baseHostname : getSuffixForArnEndpoint(baseHostname)[1];\n const {\n pathStyleEndpoint,\n accelerateEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n bucketName,\n clientPartition = \"aws\"\n } = options;\n validateArnEndpointOptions({ pathStyleEndpoint, accelerateEndpoint, tlsCompatible });\n const { service, partition, accountId, region, resource } = bucketName;\n validateService(service);\n validatePartition(partition, { clientPartition });\n validateAccountId(accountId);\n const { accesspointName, outpostId } = getArnResources(resource);\n if (service === \"s3-object-lambda\") {\n return getEndpointFromObjectLambdaArn({ ...options, tlsCompatible, bucketName, accesspointName, hostnameSuffix });\n }\n if (region === \"\") {\n return getEndpointFromMRAPArn({ ...options, clientRegion, mrapAlias: accesspointName, hostnameSuffix });\n }\n if (outpostId) {\n return getEndpointFromOutpostArn({ ...options, clientRegion, outpostId, accesspointName, hostnameSuffix });\n }\n return getEndpointFromAccessPointArn({ ...options, clientRegion, accesspointName, hostnameSuffix });\n}, \"getEndpointFromArn\");\nvar getEndpointFromObjectLambdaArn = /* @__PURE__ */ __name(({\n dualstackEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n useArnRegion,\n clientRegion,\n clientSigningRegion = clientRegion,\n accesspointName,\n bucketName,\n hostnameSuffix\n}) => {\n const { accountId, region, service } = bucketName;\n validateRegionalClient(clientRegion);\n const DNSHostLabel = `${accesspointName}-${accountId}`;\n validateDNSHostLabel(DNSHostLabel, { tlsCompatible });\n const endpointRegion = useArnRegion ? region : clientRegion;\n const signingRegion = useArnRegion ? region : clientSigningRegion;\n return {\n bucketEndpoint: true,\n hostname: `${DNSHostLabel}.${service}${fipsEndpoint ? \"-fips\" : \"\"}.${endpointRegion}.${hostnameSuffix}`,\n signingRegion,\n signingService: service\n };\n}, \"getEndpointFromObjectLambdaArn\");\nvar getEndpointFromMRAPArn = /* @__PURE__ */ __name(({\n disableMultiregionAccessPoints,\n dualstackEndpoint = false,\n isCustomEndpoint,\n mrapAlias,\n hostnameSuffix\n}) => {\n if (disableMultiregionAccessPoints === true) {\n throw new Error(\"SDK is attempting to use a MRAP ARN. Please enable to feature.\");\n }\n validateMrapAlias(mrapAlias);\n return {\n bucketEndpoint: true,\n hostname: `${mrapAlias}${isCustomEndpoint ? \"\" : `.accesspoint.s3-global`}.${hostnameSuffix}`,\n signingRegion: \"*\"\n };\n}, \"getEndpointFromMRAPArn\");\nvar getEndpointFromOutpostArn = /* @__PURE__ */ __name(({\n useArnRegion,\n clientRegion,\n clientSigningRegion = clientRegion,\n bucketName,\n outpostId,\n dualstackEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n accesspointName,\n isCustomEndpoint,\n hostnameSuffix\n}) => {\n validateRegionalClient(clientRegion);\n const DNSHostLabel = `${accesspointName}-${bucketName.accountId}`;\n validateDNSHostLabel(DNSHostLabel, { tlsCompatible });\n const endpointRegion = useArnRegion ? bucketName.region : clientRegion;\n const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;\n validateOutpostService(bucketName.service);\n validateDNSHostLabel(outpostId, { tlsCompatible });\n validateNoFIPS(fipsEndpoint);\n const hostnamePrefix = `${DNSHostLabel}.${outpostId}`;\n return {\n bucketEndpoint: true,\n hostname: `${hostnamePrefix}${isCustomEndpoint ? \"\" : `.s3-outposts.${endpointRegion}`}.${hostnameSuffix}`,\n signingRegion,\n signingService: \"s3-outposts\"\n };\n}, \"getEndpointFromOutpostArn\");\nvar getEndpointFromAccessPointArn = /* @__PURE__ */ __name(({\n useArnRegion,\n clientRegion,\n clientSigningRegion = clientRegion,\n bucketName,\n dualstackEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n accesspointName,\n isCustomEndpoint,\n hostnameSuffix\n}) => {\n validateRegionalClient(clientRegion);\n const hostnamePrefix = `${accesspointName}-${bucketName.accountId}`;\n validateDNSHostLabel(hostnamePrefix, { tlsCompatible });\n const endpointRegion = useArnRegion ? bucketName.region : clientRegion;\n const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;\n validateS3Service(bucketName.service);\n return {\n bucketEndpoint: true,\n hostname: `${hostnamePrefix}${isCustomEndpoint ? \"\" : `.s3-accesspoint${fipsEndpoint ? \"-fips\" : \"\"}${dualstackEndpoint ? \".dualstack\" : \"\"}.${endpointRegion}`}.${hostnameSuffix}`,\n signingRegion\n };\n}, \"getEndpointFromAccessPointArn\");\n\n// src/bucketEndpointMiddleware.ts\nvar bucketEndpointMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { Bucket: bucketName } = args.input;\n let replaceBucketInPath = options.bucketEndpoint;\n const request = args.request;\n if (import_protocol_http.HttpRequest.isInstance(request)) {\n if (options.bucketEndpoint) {\n request.hostname = bucketName;\n } else if ((0, import_util_arn_parser.validate)(bucketName)) {\n const bucketArn = (0, import_util_arn_parser.parse)(bucketName);\n const clientRegion = await options.region();\n const useDualstackEndpoint = await options.useDualstackEndpoint();\n const useFipsEndpoint = await options.useFipsEndpoint();\n const { partition, signingRegion = clientRegion } = await options.regionInfoProvider(clientRegion, { useDualstackEndpoint, useFipsEndpoint }) || {};\n const useArnRegion = await options.useArnRegion();\n const {\n hostname,\n bucketEndpoint,\n signingRegion: modifiedSigningRegion,\n signingService\n } = bucketHostname({\n bucketName: bucketArn,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: useDualstackEndpoint,\n fipsEndpoint: useFipsEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n useArnRegion,\n clientPartition: partition,\n clientSigningRegion: signingRegion,\n clientRegion,\n isCustomEndpoint: options.isCustomEndpoint,\n disableMultiregionAccessPoints: await options.disableMultiregionAccessPoints()\n });\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n } else {\n const clientRegion = await options.region();\n const dualstackEndpoint = await options.useDualstackEndpoint();\n const fipsEndpoint = await options.useFipsEndpoint();\n const { hostname, bucketEndpoint } = bucketHostname({\n bucketName,\n clientRegion,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint,\n fipsEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n isCustomEndpoint: options.isCustomEndpoint\n });\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n }\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n }\n return next({ ...args, request });\n}, \"bucketEndpointMiddleware\");\nvar bucketEndpointMiddlewareOptions = {\n tags: [\"BUCKET_ENDPOINT\"],\n name: \"bucketEndpointMiddleware\",\n relation: \"before\",\n toMiddleware: \"hostHeaderMiddleware\",\n override: true\n};\nvar getBucketEndpointPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getBucketEndpointPlugin\");\n\n// src/configurations.ts\nfunction resolveBucketEndpointConfig(input) {\n const {\n bucketEndpoint = false,\n forcePathStyle = false,\n useAccelerateEndpoint = false,\n // useArnRegion has specific behavior when undefined instead of false.\n useArnRegion,\n disableMultiregionAccessPoints = false\n } = input;\n return Object.assign(input, {\n bucketEndpoint,\n forcePathStyle,\n useAccelerateEndpoint,\n useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : () => Promise.resolve(useArnRegion),\n disableMultiregionAccessPoints: typeof disableMultiregionAccessPoints === \"function\" ? disableMultiregionAccessPoints : () => Promise.resolve(disableMultiregionAccessPoints)\n });\n}\n__name(resolveBucketEndpointConfig, \"resolveBucketEndpointConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getArnResources,\n getSuffixForArnEndpoint,\n validateOutpostService,\n validatePartition,\n validateAccountId,\n validateRegion,\n validateDNSHostLabel,\n validateNoDualstack,\n validateNoFIPS,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS,\n NODE_USE_ARN_REGION_ENV_NAME,\n NODE_USE_ARN_REGION_INI_NAME,\n NODE_USE_ARN_REGION_CONFIG_OPTIONS,\n bucketEndpointMiddleware,\n bucketEndpointMiddlewareOptions,\n getBucketEndpointPlugin,\n bucketHostname,\n resolveBucketEndpointConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addExpectContinueMiddleware: () => addExpectContinueMiddleware,\n addExpectContinueMiddlewareOptions: () => addExpectContinueMiddlewareOptions,\n getAddExpectContinuePlugin: () => getAddExpectContinuePlugin\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction addExpectContinueMiddleware(options) {\n return (next) => async (args) => {\n const { request } = args;\n if (import_protocol_http.HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n if (options.requestHandler?.constructor?.name !== \"FetchHttpHandler\") {\n request.headers = {\n ...request.headers,\n Expect: \"100-continue\"\n };\n }\n }\n return next({\n ...args,\n request\n });\n };\n}\n__name(addExpectContinueMiddleware, \"addExpectContinueMiddleware\");\nvar addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true\n};\nvar getAddExpectContinuePlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getAddExpectContinuePlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n addExpectContinueMiddlewareOptions,\n getAddExpectContinuePlugin,\n addExpectContinueMiddleware\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCrc32ChecksumAlgorithmFunction = void 0;\nconst tslib_1 = require(\"tslib\");\nconst crc32_1 = require(\"@aws-crypto/crc32\");\nconst util_1 = require(\"@aws-crypto/util\");\nconst zlib = tslib_1.__importStar(require(\"zlib\"));\nclass NodeCrc32 {\n checksum = 0;\n update(data) {\n this.checksum = zlib.crc32(data, this.checksum);\n }\n async digest() {\n return (0, util_1.numToUint8)(this.checksum);\n }\n reset() {\n this.checksum = 0;\n }\n}\nconst getCrc32ChecksumAlgorithmFunction = () => {\n if (typeof zlib.crc32 === \"undefined\") {\n return crc32_1.AwsCrc32;\n }\n return NodeCrc32;\n};\nexports.getCrc32ChecksumAlgorithmFunction = getCrc32ChecksumAlgorithmFunction;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n CONFIG_REQUEST_CHECKSUM_CALCULATION: () => CONFIG_REQUEST_CHECKSUM_CALCULATION,\n CONFIG_RESPONSE_CHECKSUM_VALIDATION: () => CONFIG_RESPONSE_CHECKSUM_VALIDATION,\n ChecksumAlgorithm: () => ChecksumAlgorithm,\n ChecksumLocation: () => ChecksumLocation,\n DEFAULT_CHECKSUM_ALGORITHM: () => DEFAULT_CHECKSUM_ALGORITHM,\n DEFAULT_REQUEST_CHECKSUM_CALCULATION: () => DEFAULT_REQUEST_CHECKSUM_CALCULATION,\n DEFAULT_RESPONSE_CHECKSUM_VALIDATION: () => DEFAULT_RESPONSE_CHECKSUM_VALIDATION,\n ENV_REQUEST_CHECKSUM_CALCULATION: () => ENV_REQUEST_CHECKSUM_CALCULATION,\n ENV_RESPONSE_CHECKSUM_VALIDATION: () => ENV_RESPONSE_CHECKSUM_VALIDATION,\n NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS: () => NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,\n NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS: () => NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,\n RequestChecksumCalculation: () => RequestChecksumCalculation,\n ResponseChecksumValidation: () => ResponseChecksumValidation,\n crc64NvmeCrtContainer: () => crc64NvmeCrtContainer,\n flexibleChecksumsMiddleware: () => flexibleChecksumsMiddleware,\n flexibleChecksumsMiddlewareOptions: () => flexibleChecksumsMiddlewareOptions,\n getFlexibleChecksumsPlugin: () => getFlexibleChecksumsPlugin,\n resolveFlexibleChecksumsConfig: () => resolveFlexibleChecksumsConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/constants.ts\nvar RequestChecksumCalculation = {\n /**\n * When set, a checksum will be calculated for all request payloads of operations\n * modeled with the {@link httpChecksum} trait where `requestChecksumRequired` is `true`\n * AND/OR a `requestAlgorithmMember` is modeled.\n * {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}\n */\n WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n /**\n * When set, a checksum will only be calculated for request payloads of operations\n * modeled with the {@link httpChecksum} trait where `requestChecksumRequired` is `true`\n * OR where a `requestAlgorithmMember` is modeled and the user sets it.\n * {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}\n */\n WHEN_REQUIRED: \"WHEN_REQUIRED\"\n};\nvar DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nvar ResponseChecksumValidation = {\n /**\n * When set, checksum validation MUST be performed on all response payloads of operations\n * modeled with the {@link httpChecksum} trait where `responseAlgorithms` is modeled,\n * except when no modeled checksum algorithms are supported by an SDK.\n * {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}\n */\n WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n /**\n * When set, checksum validation MUST NOT be performed on response payloads of operations UNLESS\n * the SDK supports the modeled checksum algorithms AND the user has set the `requestValidationModeMember` to `ENABLED`.\n * It is currently impossible to model an operation as requiring a response checksum,\n * but this setting leaves the door open for future updates.\n */\n WHEN_REQUIRED: \"WHEN_REQUIRED\"\n};\nvar DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nvar ChecksumAlgorithm = /* @__PURE__ */ ((ChecksumAlgorithm3) => {\n ChecksumAlgorithm3[\"MD5\"] = \"MD5\";\n ChecksumAlgorithm3[\"CRC32\"] = \"CRC32\";\n ChecksumAlgorithm3[\"CRC32C\"] = \"CRC32C\";\n ChecksumAlgorithm3[\"CRC64NVME\"] = \"CRC64NVME\";\n ChecksumAlgorithm3[\"SHA1\"] = \"SHA1\";\n ChecksumAlgorithm3[\"SHA256\"] = \"SHA256\";\n return ChecksumAlgorithm3;\n})(ChecksumAlgorithm || {});\nvar ChecksumLocation = /* @__PURE__ */ ((ChecksumLocation2) => {\n ChecksumLocation2[\"HEADER\"] = \"header\";\n ChecksumLocation2[\"TRAILER\"] = \"trailer\";\n return ChecksumLocation2;\n})(ChecksumLocation || {});\nvar DEFAULT_CHECKSUM_ALGORITHM = \"CRC32\" /* CRC32 */;\n\n// src/stringUnionSelector.ts\nvar stringUnionSelector = /* @__PURE__ */ __name((obj, key, union, type) => {\n if (!(key in obj)) return void 0;\n const value = obj[key].toUpperCase();\n if (!Object.values(union).includes(value)) {\n throw new TypeError(`Cannot load ${type} '${key}'. Expected one of ${Object.values(union)}, got '${obj[key]}'.`);\n }\n return value;\n}, \"stringUnionSelector\");\n\n// src/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.ts\nvar ENV_REQUEST_CHECKSUM_CALCULATION = \"AWS_REQUEST_CHECKSUM_CALCULATION\";\nvar CONFIG_REQUEST_CHECKSUM_CALCULATION = \"request_checksum_calculation\";\nvar NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => stringUnionSelector(env, ENV_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, \"env\" /* ENV */), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, \"shared config entry\" /* CONFIG */), \"configFileSelector\"),\n default: DEFAULT_REQUEST_CHECKSUM_CALCULATION\n};\n\n// src/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.ts\nvar ENV_RESPONSE_CHECKSUM_VALIDATION = \"AWS_RESPONSE_CHECKSUM_VALIDATION\";\nvar CONFIG_RESPONSE_CHECKSUM_VALIDATION = \"response_checksum_validation\";\nvar NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => stringUnionSelector(env, ENV_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, \"env\" /* ENV */), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, \"shared config entry\" /* CONFIG */), \"configFileSelector\"),\n default: DEFAULT_RESPONSE_CHECKSUM_VALIDATION\n};\n\n// src/crc64-nvme-crt-container.ts\nvar crc64NvmeCrtContainer = {\n CrtCrc64Nvme: null\n};\n\n// src/flexibleChecksumsMiddleware.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_util_stream = require(\"@smithy/util-stream\");\n\n// src/types.ts\nvar CLIENT_SUPPORTED_ALGORITHMS = [\n \"CRC32\" /* CRC32 */,\n \"CRC32C\" /* CRC32C */,\n \"CRC64NVME\" /* CRC64NVME */,\n \"SHA1\" /* SHA1 */,\n \"SHA256\" /* SHA256 */\n];\nvar PRIORITY_ORDER_ALGORITHMS = [\n \"SHA256\" /* SHA256 */,\n \"SHA1\" /* SHA1 */,\n \"CRC32\" /* CRC32 */,\n \"CRC32C\" /* CRC32C */,\n \"CRC64NVME\" /* CRC64NVME */\n];\n\n// src/getChecksumAlgorithmForRequest.ts\nvar getChecksumAlgorithmForRequest = /* @__PURE__ */ __name((input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {\n if (!requestAlgorithmMember) {\n return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired ? DEFAULT_CHECKSUM_ALGORITHM : void 0;\n }\n if (!input[requestAlgorithmMember]) {\n return void 0;\n }\n const checksumAlgorithm = input[requestAlgorithmMember];\n if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {\n throw new Error(\n `The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client. Select one of ${CLIENT_SUPPORTED_ALGORITHMS}.`\n );\n }\n return checksumAlgorithm;\n}, \"getChecksumAlgorithmForRequest\");\n\n// src/getChecksumLocationName.ts\nvar getChecksumLocationName = /* @__PURE__ */ __name((algorithm) => algorithm === \"MD5\" /* MD5 */ ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`, \"getChecksumLocationName\");\n\n// src/hasHeader.ts\nvar hasHeader = /* @__PURE__ */ __name((header, headers) => {\n const soughtHeader = header.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n}, \"hasHeader\");\n\n// src/hasHeaderWithPrefix.ts\nvar hasHeaderWithPrefix = /* @__PURE__ */ __name((headerPrefix, headers) => {\n const soughtHeaderPrefix = headerPrefix.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) {\n return true;\n }\n }\n return false;\n}, \"hasHeaderWithPrefix\");\n\n// src/isStreaming.ts\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\nvar isStreaming = /* @__PURE__ */ __name((body) => body !== void 0 && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !(0, import_is_array_buffer.isArrayBuffer)(body), \"isStreaming\");\n\n// src/selectChecksumAlgorithmFunction.ts\nvar import_crc32c = require(\"@aws-crypto/crc32c\");\nvar import_getCrc32ChecksumAlgorithmFunction = require(\"././getCrc32ChecksumAlgorithmFunction\");\nvar selectChecksumAlgorithmFunction = /* @__PURE__ */ __name((checksumAlgorithm, config) => {\n switch (checksumAlgorithm) {\n case \"MD5\" /* MD5 */:\n return config.md5;\n case \"CRC32\" /* CRC32 */:\n return (0, import_getCrc32ChecksumAlgorithmFunction.getCrc32ChecksumAlgorithmFunction)();\n case \"CRC32C\" /* CRC32C */:\n return import_crc32c.AwsCrc32c;\n case \"CRC64NVME\" /* CRC64NVME */:\n if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== \"function\") {\n throw new Error(\n `Please check whether you have installed the \"@aws-sdk/crc64-nvme-crt\" package explicitly. \nYou must also register the package by calling [require(\"@aws-sdk/crc64-nvme-crt\");] or an ESM equivalent such as [import \"@aws-sdk/crc64-nvme-crt\";]. \nFor more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`\n );\n }\n return crc64NvmeCrtContainer.CrtCrc64Nvme;\n case \"SHA1\" /* SHA1 */:\n return config.sha1;\n case \"SHA256\" /* SHA256 */:\n return config.sha256;\n default:\n throw new Error(`Unsupported checksum algorithm: ${checksumAlgorithm}`);\n }\n}, \"selectChecksumAlgorithmFunction\");\n\n// src/stringHasher.ts\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar stringHasher = /* @__PURE__ */ __name((checksumAlgorithmFn, body) => {\n const hash = new checksumAlgorithmFn();\n hash.update((0, import_util_utf8.toUint8Array)(body || \"\"));\n return hash.digest();\n}, \"stringHasher\");\n\n// src/flexibleChecksumsMiddleware.ts\nvar flexibleChecksumsMiddlewareOptions = {\n name: \"flexibleChecksumsMiddleware\",\n step: \"build\",\n tags: [\"BODY_CHECKSUM\"],\n override: true\n};\nvar flexibleChecksumsMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n if (hasHeaderWithPrefix(\"x-amz-checksum-\", args.request.headers)) {\n return next(args);\n }\n const { request, input } = args;\n const { body: requestBody, headers } = request;\n const { base64Encoder, streamHasher } = config;\n const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n const requestChecksumCalculation = await config.requestChecksumCalculation();\n const requestAlgorithmMemberName = requestAlgorithmMember?.name;\n const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;\n if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {\n if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {\n input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;\n if (requestAlgorithmMemberHttpHeader) {\n headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;\n }\n }\n }\n const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {\n requestChecksumRequired,\n requestAlgorithmMember: requestAlgorithmMember?.name,\n requestChecksumCalculation\n });\n let updatedBody = requestBody;\n let updatedHeaders = headers;\n if (checksumAlgorithm) {\n switch (checksumAlgorithm) {\n case \"CRC32\" /* CRC32 */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32\", \"U\");\n break;\n case \"CRC32C\" /* CRC32C */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32C\", \"V\");\n break;\n case \"CRC64NVME\" /* CRC64NVME */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC64\", \"W\");\n break;\n case \"SHA1\" /* SHA1 */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA1\", \"X\");\n break;\n case \"SHA256\" /* SHA256 */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA256\", \"Y\");\n break;\n }\n const checksumLocationName = getChecksumLocationName(checksumAlgorithm);\n const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);\n if (isStreaming(requestBody)) {\n const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n updatedBody = getAwsChunkedEncodingStream(\n typeof config.requestStreamBufferSize === \"number\" && config.requestStreamBufferSize >= 8 * 1024 ? (0, import_util_stream.createBufferedReadable)(requestBody, config.requestStreamBufferSize, context.logger) : requestBody,\n {\n base64Encoder,\n bodyLengthChecker,\n checksumLocationName,\n checksumAlgorithmFn,\n streamHasher\n }\n );\n updatedHeaders = {\n ...headers,\n \"content-encoding\": headers[\"content-encoding\"] ? `${headers[\"content-encoding\"]},aws-chunked` : \"aws-chunked\",\n \"transfer-encoding\": \"chunked\",\n \"x-amz-decoded-content-length\": headers[\"content-length\"],\n \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n \"x-amz-trailer\": checksumLocationName\n };\n delete updatedHeaders[\"content-length\"];\n } else if (!hasHeader(checksumLocationName, headers)) {\n const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);\n updatedHeaders = {\n ...headers,\n [checksumLocationName]: base64Encoder(rawChecksum)\n };\n }\n }\n const result = await next({\n ...args,\n request: {\n ...request,\n headers: updatedHeaders,\n body: updatedBody\n }\n });\n return result;\n}, \"flexibleChecksumsMiddleware\");\n\n// src/flexibleChecksumsInputMiddleware.ts\n\nvar flexibleChecksumsInputMiddlewareOptions = {\n name: \"flexibleChecksumsInputMiddleware\",\n toMiddleware: \"serializerMiddleware\",\n relation: \"before\",\n tags: [\"BODY_CHECKSUM\"],\n override: true\n};\nvar flexibleChecksumsInputMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {\n const input = args.input;\n const { requestValidationModeMember } = middlewareConfig;\n const requestChecksumCalculation = await config.requestChecksumCalculation();\n const responseChecksumValidation = await config.responseChecksumValidation();\n switch (requestChecksumCalculation) {\n case RequestChecksumCalculation.WHEN_REQUIRED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED\", \"a\");\n break;\n case RequestChecksumCalculation.WHEN_SUPPORTED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED\", \"Z\");\n break;\n }\n switch (responseChecksumValidation) {\n case ResponseChecksumValidation.WHEN_REQUIRED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED\", \"c\");\n break;\n case ResponseChecksumValidation.WHEN_SUPPORTED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED\", \"b\");\n break;\n }\n if (requestValidationModeMember && !input[requestValidationModeMember]) {\n if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {\n input[requestValidationModeMember] = \"ENABLED\";\n }\n }\n return next(args);\n}, \"flexibleChecksumsInputMiddleware\");\n\n// src/flexibleChecksumsResponseMiddleware.ts\n\n\n// src/getChecksumAlgorithmListForResponse.ts\nvar getChecksumAlgorithmListForResponse = /* @__PURE__ */ __name((responseAlgorithms = []) => {\n const validChecksumAlgorithms = [];\n for (const algorithm of PRIORITY_ORDER_ALGORITHMS) {\n if (!responseAlgorithms.includes(algorithm) || !CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {\n continue;\n }\n validChecksumAlgorithms.push(algorithm);\n }\n return validChecksumAlgorithms;\n}, \"getChecksumAlgorithmListForResponse\");\n\n// src/isChecksumWithPartNumber.ts\nvar isChecksumWithPartNumber = /* @__PURE__ */ __name((checksum) => {\n const lastHyphenIndex = checksum.lastIndexOf(\"-\");\n if (lastHyphenIndex !== -1) {\n const numberPart = checksum.slice(lastHyphenIndex + 1);\n if (!numberPart.startsWith(\"0\")) {\n const number = parseInt(numberPart, 10);\n if (!isNaN(number) && number >= 1 && number <= 1e4) {\n return true;\n }\n }\n }\n return false;\n}, \"isChecksumWithPartNumber\");\n\n// src/validateChecksumFromResponse.ts\n\n\n// src/getChecksum.ts\nvar getChecksum = /* @__PURE__ */ __name(async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body)), \"getChecksum\");\n\n// src/validateChecksumFromResponse.ts\nvar validateChecksumFromResponse = /* @__PURE__ */ __name(async (response, { config, responseAlgorithms, logger }) => {\n const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);\n const { body: responseBody, headers: responseHeaders } = response;\n for (const algorithm of checksumAlgorithms) {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = responseHeaders[responseHeader];\n if (checksumFromResponse) {\n let checksumAlgorithmFn;\n try {\n checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);\n } catch (error) {\n if (algorithm === \"CRC64NVME\" /* CRC64NVME */) {\n logger?.warn(`Skipping ${\"CRC64NVME\" /* CRC64NVME */} checksum validation: ${error.message}`);\n continue;\n }\n throw error;\n }\n const { base64Encoder } = config;\n if (isStreaming(responseBody)) {\n response.body = (0, import_util_stream.createChecksumStream)({\n expectedChecksum: checksumFromResponse,\n checksumSourceLocation: responseHeader,\n checksum: new checksumAlgorithmFn(),\n source: responseBody,\n base64Encoder\n });\n return;\n }\n const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder });\n if (checksum === checksumFromResponse) {\n break;\n }\n throw new Error(\n `Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\" in response header \"${responseHeader}\".`\n );\n }\n }\n}, \"validateChecksumFromResponse\");\n\n// src/flexibleChecksumsResponseMiddleware.ts\nvar flexibleChecksumsResponseMiddlewareOptions = {\n name: \"flexibleChecksumsResponseMiddleware\",\n toMiddleware: \"deserializerMiddleware\",\n relation: \"after\",\n tags: [\"BODY_CHECKSUM\"],\n override: true\n};\nvar flexibleChecksumsResponseMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const input = args.input;\n const result = await next(args);\n const response = result.response;\n const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n const { clientName, commandName } = context;\n const isS3WholeObjectMultipartGetResponseChecksum = clientName === \"S3Client\" && commandName === \"GetObjectCommand\" && getChecksumAlgorithmListForResponse(responseAlgorithms).every((algorithm) => {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = response.headers[responseHeader];\n return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);\n });\n if (isS3WholeObjectMultipartGetResponseChecksum) {\n return result;\n }\n await validateChecksumFromResponse(response, {\n config,\n responseAlgorithms,\n logger: context.logger\n });\n }\n return result;\n}, \"flexibleChecksumsResponseMiddleware\");\n\n// src/getFlexibleChecksumsPlugin.ts\nvar getFlexibleChecksumsPlugin = /* @__PURE__ */ __name((config, middlewareConfig) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);\n clientStack.addRelativeTo(\n flexibleChecksumsInputMiddleware(config, middlewareConfig),\n flexibleChecksumsInputMiddlewareOptions\n );\n clientStack.addRelativeTo(\n flexibleChecksumsResponseMiddleware(config, middlewareConfig),\n flexibleChecksumsResponseMiddlewareOptions\n );\n }, \"applyToStack\")\n}), \"getFlexibleChecksumsPlugin\");\n\n// src/resolveFlexibleChecksumsConfig.ts\nvar import_util_middleware = require(\"@smithy/util-middleware\");\nvar resolveFlexibleChecksumsConfig = /* @__PURE__ */ __name((input) => {\n const { requestChecksumCalculation, responseChecksumValidation, requestStreamBufferSize } = input;\n return Object.assign(input, {\n requestChecksumCalculation: (0, import_util_middleware.normalizeProvider)(requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION),\n responseChecksumValidation: (0, import_util_middleware.normalizeProvider)(responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION),\n requestStreamBufferSize: Number(requestStreamBufferSize ?? 0)\n });\n}, \"resolveFlexibleChecksumsConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_REQUEST_CHECKSUM_CALCULATION,\n CONFIG_REQUEST_CHECKSUM_CALCULATION,\n NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,\n ENV_RESPONSE_CHECKSUM_VALIDATION,\n CONFIG_RESPONSE_CHECKSUM_VALIDATION,\n NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,\n RequestChecksumCalculation,\n DEFAULT_REQUEST_CHECKSUM_CALCULATION,\n ResponseChecksumValidation,\n DEFAULT_RESPONSE_CHECKSUM_VALIDATION,\n ChecksumAlgorithm,\n ChecksumLocation,\n DEFAULT_CHECKSUM_ALGORITHM,\n crc64NvmeCrtContainer,\n flexibleChecksumsMiddlewareOptions,\n flexibleChecksumsMiddleware,\n getFlexibleChecksumsPlugin,\n resolveFlexibleChecksumsConfig\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLocationConstraintPlugin: () => getLocationConstraintPlugin,\n locationConstraintMiddleware: () => locationConstraintMiddleware,\n locationConstraintMiddlewareOptions: () => locationConstraintMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\nfunction locationConstraintMiddleware(options) {\n return (next) => async (args) => {\n const { CreateBucketConfiguration } = args.input;\n const region = await options.region();\n if (!CreateBucketConfiguration?.LocationConstraint && !CreateBucketConfiguration?.Location) {\n args = {\n ...args,\n input: {\n ...args.input,\n CreateBucketConfiguration: region === \"us-east-1\" ? void 0 : { LocationConstraint: region }\n }\n };\n }\n return next(args);\n };\n}\n__name(locationConstraintMiddleware, \"locationConstraintMiddleware\");\nvar locationConstraintMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"LOCATION_CONSTRAINT\", \"CREATE_BUCKET_CONFIGURATION\"],\n name: \"locationConstraintMiddleware\",\n override: true\n};\nvar getLocationConstraintPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(locationConstraintMiddleware(config), locationConstraintMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLocationConstraintPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n locationConstraintMiddlewareOptions,\n getLocationConstraintPlugin,\n locationConstraintMiddleware\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n copySnapshotPresignedUrlMiddleware: () => copySnapshotPresignedUrlMiddleware,\n copySnapshotPresignedUrlMiddlewareOptions: () => copySnapshotPresignedUrlMiddlewareOptions,\n getCopySnapshotPresignedUrlPlugin: () => getCopySnapshotPresignedUrlPlugin\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_util_format_url = require(\"@aws-sdk/util-format-url\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar version = \"2016-11-15\";\nfunction copySnapshotPresignedUrlMiddleware(options) {\n return (next, context) => async (args) => {\n const { input } = args;\n if (!input.PresignedUrl) {\n const destinationRegion = await options.region();\n const endpoint = await (0, import_middleware_endpoint.getEndpointFromInstructions)(\n input,\n {\n /**\n * Replication of {@link CopySnapshotCommand} in EC2.\n * Not imported due to circular dependency.\n */\n getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n };\n }\n },\n {\n ...options,\n region: input.SourceRegion\n }\n );\n const resolvedEndpoint = typeof options.endpoint === \"function\" ? await options.endpoint() : (0, import_middleware_endpoint.toEndpointV1)(endpoint);\n const requestToSign = new import_protocol_http.HttpRequest({\n ...resolvedEndpoint,\n protocol: \"https\",\n headers: {\n host: resolvedEndpoint.hostname\n },\n query: {\n // Values must be string instead of e.g. boolean\n // because we need to sign the serialized form.\n ...Object.entries(input).reduce((acc, [k, v]) => {\n acc[k] = String(v ?? \"\");\n return acc;\n }, {}),\n Action: \"CopySnapshot\",\n Version: version,\n DestinationRegion: destinationRegion\n }\n });\n const signer = new import_signature_v4.SignatureV4({\n credentials: options.credentials,\n region: input.SourceRegion,\n service: \"ec2\",\n sha256: options.sha256,\n uriEscapePath: options.signingEscapePath\n });\n const presignedRequest = await signer.presign(requestToSign, {\n expiresIn: 3600\n });\n args = {\n ...args,\n input: {\n ...args.input,\n DestinationRegion: destinationRegion,\n PresignedUrl: (0, import_util_format_url.formatUrl)(presignedRequest)\n }\n };\n if (import_protocol_http.HttpRequest.isInstance(args.request)) {\n const { request } = args;\n if (!(request.body ?? \"\").includes(\"DestinationRegion=\")) {\n request.body += `&DestinationRegion=${destinationRegion}`;\n }\n if (!(request.body ?? \"\").includes(\"PresignedUrl=\")) {\n request.body += `&PresignedUrl=${(0, import_smithy_client.extendedEncodeURIComponent)(args.input.PresignedUrl)}`;\n }\n }\n }\n return next(args);\n };\n}\n__name(copySnapshotPresignedUrlMiddleware, \"copySnapshotPresignedUrlMiddleware\");\nvar copySnapshotPresignedUrlMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"CROSS_REGION_PRESIGNED_URL\"],\n name: \"crossRegionPresignedUrlMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"endpointV2Middleware\"\n};\nvar getCopySnapshotPresignedUrlPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(copySnapshotPresignedUrlMiddleware(config), copySnapshotPresignedUrlMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getCopySnapshotPresignedUrlPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n copySnapshotPresignedUrlMiddlewareOptions,\n getCopySnapshotPresignedUrlPlugin,\n copySnapshotPresignedUrlMiddleware\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n changeResourceRecordSetsMiddleware: () => changeResourceRecordSetsMiddleware,\n changeResourceRecordSetsMiddlewareOptions: () => changeResourceRecordSetsMiddlewareOptions,\n getChangeResourceRecordSetsPlugin: () => getChangeResourceRecordSetsPlugin,\n getIdNormalizerPlugin: () => getIdNormalizerPlugin,\n idNormalizerMiddleware: () => idNormalizerMiddleware,\n idNormalizerMiddlewareOptions: () => idNormalizerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/constants.ts\nvar IDENTIFIER_PREFIX_PATTERN = /^\\/(hostedzone|change|delegationset)\\//;\n\n// src/change-resource-record-sets.ts\nfunction changeResourceRecordSetsMiddleware() {\n return (next) => async (args) => {\n const { ChangeBatch } = args.input;\n const Changes = [];\n for (const change of ChangeBatch.Changes) {\n const { AliasTarget } = change.ResourceRecordSet;\n if (AliasTarget) {\n Changes.push({\n ...change,\n ResourceRecordSet: {\n ...change.ResourceRecordSet,\n AliasTarget: {\n ...AliasTarget,\n HostedZoneId: AliasTarget.HostedZoneId.replace(IDENTIFIER_PREFIX_PATTERN, \"\")\n }\n }\n });\n } else {\n Changes.push(change);\n }\n }\n return next({\n ...args,\n input: {\n ...args.input,\n ChangeBatch: {\n ...ChangeBatch,\n Changes\n }\n }\n });\n };\n}\n__name(changeResourceRecordSetsMiddleware, \"changeResourceRecordSetsMiddleware\");\nvar changeResourceRecordSetsMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"ROUTE53_IDS\", \"CHANGE_RESOURCE_RECORD_SETS\"],\n name: \"changeResourceRecordSetsMiddleware\",\n override: true\n};\nvar getChangeResourceRecordSetsPlugin = /* @__PURE__ */ __name((unused) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(changeResourceRecordSetsMiddleware(), changeResourceRecordSetsMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getChangeResourceRecordSetsPlugin\");\n\n// src/id-normalizer.ts\nvar IDENTIFIER_PARAMETERS = [\"DelegationSetId\", \"HostedZoneId\", \"Id\"];\nfunction idNormalizerMiddleware() {\n return (next) => async (args) => {\n const input = { ...args.input };\n for (const paramName of IDENTIFIER_PARAMETERS) {\n const param = input[paramName];\n if (param) {\n input[paramName] = param.replace(IDENTIFIER_PREFIX_PATTERN, \"\");\n }\n }\n return next({\n ...args,\n input\n });\n };\n}\n__name(idNormalizerMiddleware, \"idNormalizerMiddleware\");\nvar idNormalizerMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"ROUTE53_IDS\"],\n name: \"idNormalizerMiddleware\",\n override: true\n};\nvar getIdNormalizerPlugin = /* @__PURE__ */ __name((unused) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(idNormalizerMiddleware(), idNormalizerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getIdNormalizerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n changeResourceRecordSetsMiddlewareOptions,\n getChangeResourceRecordSetsPlugin,\n changeResourceRecordSetsMiddleware,\n idNormalizerMiddlewareOptions,\n getIdNormalizerPlugin,\n idNormalizerMiddleware\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS: () => NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,\n S3ExpressIdentityCache: () => S3ExpressIdentityCache,\n S3ExpressIdentityCacheEntry: () => S3ExpressIdentityCacheEntry,\n S3ExpressIdentityProviderImpl: () => S3ExpressIdentityProviderImpl,\n SignatureV4S3Express: () => SignatureV4S3Express,\n checkContentLengthHeader: () => checkContentLengthHeader,\n checkContentLengthHeaderMiddlewareOptions: () => checkContentLengthHeaderMiddlewareOptions,\n getCheckContentLengthHeaderPlugin: () => getCheckContentLengthHeaderPlugin,\n getRegionRedirectMiddlewarePlugin: () => getRegionRedirectMiddlewarePlugin,\n getS3ExpiresMiddlewarePlugin: () => getS3ExpiresMiddlewarePlugin,\n getS3ExpressHttpSigningPlugin: () => getS3ExpressHttpSigningPlugin,\n getS3ExpressPlugin: () => getS3ExpressPlugin,\n getThrow200ExceptionsPlugin: () => getThrow200ExceptionsPlugin,\n getValidateBucketNamePlugin: () => getValidateBucketNamePlugin,\n regionRedirectEndpointMiddleware: () => regionRedirectEndpointMiddleware,\n regionRedirectEndpointMiddlewareOptions: () => regionRedirectEndpointMiddlewareOptions,\n regionRedirectMiddleware: () => regionRedirectMiddleware,\n regionRedirectMiddlewareOptions: () => regionRedirectMiddlewareOptions,\n resolveS3Config: () => resolveS3Config,\n s3ExpiresMiddleware: () => s3ExpiresMiddleware,\n s3ExpiresMiddlewareOptions: () => s3ExpiresMiddlewareOptions,\n s3ExpressHttpSigningMiddleware: () => s3ExpressHttpSigningMiddleware,\n s3ExpressHttpSigningMiddlewareOptions: () => s3ExpressHttpSigningMiddlewareOptions,\n s3ExpressMiddleware: () => s3ExpressMiddleware,\n s3ExpressMiddlewareOptions: () => s3ExpressMiddlewareOptions,\n throw200ExceptionsMiddleware: () => throw200ExceptionsMiddleware,\n throw200ExceptionsMiddlewareOptions: () => throw200ExceptionsMiddlewareOptions,\n validateBucketNameMiddleware: () => validateBucketNameMiddleware,\n validateBucketNameMiddlewareOptions: () => validateBucketNameMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/check-content-length-header.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nvar DECODED_CONTENT_LENGTH_HEADER = \"x-amz-decoded-content-length\";\nfunction checkContentLengthHeader() {\n return (next, context) => async (args) => {\n const { request } = args;\n if (import_protocol_http.HttpRequest.isInstance(request)) {\n if (!(CONTENT_LENGTH_HEADER in request.headers) && !(DECODED_CONTENT_LENGTH_HEADER in request.headers)) {\n const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;\n if (typeof context?.logger?.warn === \"function\" && !(context.logger instanceof import_smithy_client.NoOpLogger)) {\n context.logger.warn(message);\n } else {\n console.warn(message);\n }\n }\n }\n return next({ ...args });\n };\n}\n__name(checkContentLengthHeader, \"checkContentLengthHeader\");\nvar checkContentLengthHeaderMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"CHECK_CONTENT_LENGTH_HEADER\"],\n name: \"getCheckContentLengthHeaderPlugin\",\n override: true\n};\nvar getCheckContentLengthHeaderPlugin = /* @__PURE__ */ __name((unused) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getCheckContentLengthHeaderPlugin\");\n\n// src/region-redirect-endpoint-middleware.ts\nvar regionRedirectEndpointMiddleware = /* @__PURE__ */ __name((config) => {\n return (next, context) => async (args) => {\n const originalRegion = await config.region();\n const regionProviderRef = config.region;\n let unlock = /* @__PURE__ */ __name(() => {\n }, \"unlock\");\n if (context.__s3RegionRedirect) {\n Object.defineProperty(config, \"region\", {\n writable: false,\n value: /* @__PURE__ */ __name(async () => {\n return context.__s3RegionRedirect;\n }, \"value\")\n });\n unlock = /* @__PURE__ */ __name(() => Object.defineProperty(config, \"region\", {\n writable: true,\n value: regionProviderRef\n }), \"unlock\");\n }\n try {\n const result = await next(args);\n if (context.__s3RegionRedirect) {\n unlock();\n const region = await config.region();\n if (originalRegion !== region) {\n throw new Error(\"Region was not restored following S3 region redirect.\");\n }\n }\n return result;\n } catch (e) {\n unlock();\n throw e;\n }\n };\n}, \"regionRedirectEndpointMiddleware\");\nvar regionRedirectEndpointMiddlewareOptions = {\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectEndpointMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"endpointV2Middleware\"\n};\n\n// src/region-redirect-middleware.ts\nfunction regionRedirectMiddleware(clientConfig) {\n return (next, context) => async (args) => {\n try {\n return await next(args);\n } catch (err) {\n if (clientConfig.followRegionRedirects) {\n if (err?.$metadata?.httpStatusCode === 301 || // err.name === \"PermanentRedirect\" && --> removing the error name check, as that allows for HEAD operations (which have the 301 status code, but not the same error name) to be covered for region redirection as well\n err?.$metadata?.httpStatusCode === 400 && err?.name === \"IllegalLocationConstraintException\") {\n try {\n const actualRegion = err.$response.headers[\"x-amz-bucket-region\"];\n context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);\n context.__s3RegionRedirect = actualRegion;\n } catch (e) {\n throw new Error(\"Region redirect failed: \" + e);\n }\n return next(args);\n }\n }\n throw err;\n }\n };\n}\n__name(regionRedirectMiddleware, \"regionRedirectMiddleware\");\nvar regionRedirectMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectMiddleware\",\n override: true\n};\nvar getRegionRedirectMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);\n clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRegionRedirectMiddlewarePlugin\");\n\n// src/s3-expires-middleware.ts\n\n\nvar s3ExpiresMiddleware = /* @__PURE__ */ __name((config) => {\n return (next, context) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (import_protocol_http.HttpResponse.isInstance(response)) {\n if (response.headers.expires) {\n response.headers.expiresstring = response.headers.expires;\n try {\n (0, import_smithy_client.parseRfc7231DateTime)(response.headers.expires);\n } catch (e) {\n context.logger?.warn(\n `AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e}`\n );\n delete response.headers.expires;\n }\n }\n }\n return result;\n };\n}, \"s3ExpiresMiddleware\");\nvar s3ExpiresMiddlewareOptions = {\n tags: [\"S3\"],\n name: \"s3ExpiresMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\"\n};\nvar getS3ExpiresMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(s3ExpiresMiddleware(clientConfig), s3ExpiresMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getS3ExpiresMiddlewarePlugin\");\n\n// src/s3-express/classes/S3ExpressIdentityCache.ts\nvar S3ExpressIdentityCache = class _S3ExpressIdentityCache {\n constructor(data = {}) {\n this.data = data;\n }\n static {\n __name(this, \"S3ExpressIdentityCache\");\n }\n lastPurgeTime = Date.now();\n static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 3e4;\n get(key) {\n const entry = this.data[key];\n if (!entry) {\n return;\n }\n return entry;\n }\n set(key, entry) {\n this.data[key] = entry;\n return entry;\n }\n delete(key) {\n delete this.data[key];\n }\n async purgeExpired() {\n const now = Date.now();\n if (this.lastPurgeTime + _S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {\n return;\n }\n for (const key in this.data) {\n const entry = this.data[key];\n if (!entry.isRefreshing) {\n const credential = await entry.identity;\n if (credential.expiration) {\n if (credential.expiration.getTime() < now) {\n delete this.data[key];\n }\n }\n }\n }\n }\n};\n\n// src/s3-express/classes/S3ExpressIdentityCacheEntry.ts\nvar S3ExpressIdentityCacheEntry = class {\n /**\n * @param identity - stored identity.\n * @param accessed - timestamp of last access in epoch ms.\n * @param isRefreshing - this key is currently in the process of being refreshed (background).\n */\n constructor(_identity, isRefreshing = false, accessed = Date.now()) {\n this._identity = _identity;\n this.isRefreshing = isRefreshing;\n this.accessed = accessed;\n }\n static {\n __name(this, \"S3ExpressIdentityCacheEntry\");\n }\n get identity() {\n this.accessed = Date.now();\n return this._identity;\n }\n};\n\n// src/s3-express/classes/S3ExpressIdentityProviderImpl.ts\nvar S3ExpressIdentityProviderImpl = class _S3ExpressIdentityProviderImpl {\n constructor(createSessionFn, cache = new S3ExpressIdentityCache()) {\n this.createSessionFn = createSessionFn;\n this.cache = cache;\n }\n static {\n __name(this, \"S3ExpressIdentityProviderImpl\");\n }\n static REFRESH_WINDOW_MS = 6e4;\n async getS3ExpressIdentity(awsIdentity, identityProperties) {\n const key = identityProperties.Bucket;\n const { cache } = this;\n const entry = cache.get(key);\n if (entry) {\n return entry.identity.then((identity) => {\n const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now();\n if (isExpired) {\n return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n }\n const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + _S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS;\n if (isExpiringSoon && !entry.isRefreshing) {\n entry.isRefreshing = true;\n this.getIdentity(key).then((id) => {\n cache.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id)));\n });\n }\n return identity;\n });\n }\n return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n }\n async getIdentity(key) {\n await this.cache.purgeExpired().catch((error) => {\n console.warn(\"Error while clearing expired entries in S3ExpressIdentityCache: \\n\" + error);\n });\n const session = await this.createSessionFn(key);\n if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) {\n throw new Error(\"s3#createSession response credential missing AccessKeyId or SecretAccessKey.\");\n }\n const identity = {\n accessKeyId: session.Credentials.AccessKeyId,\n secretAccessKey: session.Credentials.SecretAccessKey,\n sessionToken: session.Credentials.SessionToken,\n expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : void 0\n };\n return identity;\n }\n};\n\n// src/s3-express/classes/SignatureV4S3Express.ts\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\n\n// src/s3-express/constants.ts\nvar import_util_config_provider = require(\"@smithy/util-config-provider\");\nvar S3_EXPRESS_BUCKET_TYPE = \"Directory\";\nvar S3_EXPRESS_BACKEND = \"S3Express\";\nvar S3_EXPRESS_AUTH_SCHEME = \"sigv4-s3express\";\nvar SESSION_TOKEN_QUERY_PARAM = \"X-Amz-S3session-Token\";\nvar SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase();\nvar NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = \"AWS_S3_DISABLE_EXPRESS_SESSION_AUTH\";\nvar NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = \"s3_disable_express_session_auth\";\nvar NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => (0, import_util_config_provider.booleanSelector)(env, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, import_util_config_provider.SelectorType.ENV), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => (0, import_util_config_provider.booleanSelector)(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, import_util_config_provider.SelectorType.CONFIG), \"configFileSelector\"),\n default: false\n};\n\n// src/s3-express/classes/SignatureV4S3Express.ts\nvar SignatureV4S3Express = class extends import_signature_v4.SignatureV4 {\n static {\n __name(this, \"SignatureV4S3Express\");\n }\n /**\n * Signs with alternate provided credentials instead of those provided in the\n * constructor.\n *\n * Additionally omits the credential sessionToken and assigns it to the\n * alternate header field for S3 Express.\n */\n async signWithCredentials(requestToSign, credentials, options) {\n const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n requestToSign.headers[SESSION_TOKEN_HEADER] = credentials.sessionToken;\n const privateAccess = this;\n setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n return privateAccess.signRequest(requestToSign, options ?? {});\n }\n /**\n * Similar to {@link SignatureV4S3Express#signWithCredentials} but for presigning.\n */\n async presignWithCredentials(requestToSign, credentials, options) {\n const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n delete requestToSign.headers[SESSION_TOKEN_HEADER];\n requestToSign.headers[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n requestToSign.query = requestToSign.query ?? {};\n requestToSign.query[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n const privateAccess = this;\n setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n return this.presign(requestToSign, options);\n }\n};\nfunction getCredentialsWithoutSessionToken(credentials) {\n const credentialsWithoutSessionToken = {\n accessKeyId: credentials.accessKeyId,\n secretAccessKey: credentials.secretAccessKey,\n expiration: credentials.expiration\n };\n return credentialsWithoutSessionToken;\n}\n__name(getCredentialsWithoutSessionToken, \"getCredentialsWithoutSessionToken\");\nfunction setSingleOverride(privateAccess, credentialsWithoutSessionToken) {\n const id = setTimeout(() => {\n throw new Error(\"SignatureV4S3Express credential override was created but not called.\");\n }, 10);\n const currentCredentialProvider = privateAccess.credentialProvider;\n const overrideCredentialsProviderOnce = /* @__PURE__ */ __name(() => {\n clearTimeout(id);\n privateAccess.credentialProvider = currentCredentialProvider;\n return Promise.resolve(credentialsWithoutSessionToken);\n }, \"overrideCredentialsProviderOnce\");\n privateAccess.credentialProvider = overrideCredentialsProviderOnce;\n}\n__name(setSingleOverride, \"setSingleOverride\");\n\n// src/s3-express/functions/s3ExpressMiddleware.ts\nvar import_core = require(\"@aws-sdk/core\");\n\nvar s3ExpressMiddleware = /* @__PURE__ */ __name((options) => {\n return (next, context) => async (args) => {\n if (context.endpointV2) {\n const endpoint = context.endpointV2;\n const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME;\n const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND || endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE;\n if (isS3ExpressBucket) {\n (0, import_core.setFeature)(context, \"S3_EXPRESS_BUCKET\", \"J\");\n context.isS3ExpressBucket = true;\n }\n if (isS3ExpressAuth) {\n const requestBucket = args.input.Bucket;\n if (requestBucket) {\n const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(\n await options.credentials(),\n {\n Bucket: requestBucket\n }\n );\n context.s3ExpressIdentity = s3ExpressIdentity;\n if (import_protocol_http.HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) {\n args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken;\n }\n }\n }\n }\n return next(args);\n };\n}, \"s3ExpressMiddleware\");\nvar s3ExpressMiddlewareOptions = {\n name: \"s3ExpressMiddleware\",\n step: \"build\",\n tags: [\"S3\", \"S3_EXPRESS\"],\n override: true\n};\nvar getS3ExpressPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getS3ExpressPlugin\");\n\n// src/s3-express/functions/s3ExpressHttpSigningMiddleware.ts\nvar import_core2 = require(\"@smithy/core\");\n\nvar import_util_middleware = require(\"@smithy/util-middleware\");\n\n// src/s3-express/functions/signS3Express.ts\nvar signS3Express = /* @__PURE__ */ __name(async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => {\n const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {});\n if (signedRequest.headers[\"X-Amz-Security-Token\"] || signedRequest.headers[\"x-amz-security-token\"]) {\n throw new Error(\"X-Amz-Security-Token must not be set for s3-express requests.\");\n }\n return signedRequest;\n}, \"signS3Express\");\n\n// src/s3-express/functions/s3ExpressHttpSigningMiddleware.ts\nvar defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error) => {\n throw error;\n}, \"defaultErrorHandler\");\nvar defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => {\n}, \"defaultSuccessHandler\");\nvar s3ExpressHttpSigningMiddlewareOptions = import_core2.httpSigningMiddlewareOptions;\nvar s3ExpressHttpSigningMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = (0, import_util_middleware.getSmithyContext)(context);\n const scheme = smithyContext.selectedHttpAuthScheme;\n if (!scheme) {\n throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n }\n const {\n httpAuthOption: { signingProperties = {} },\n identity,\n signer\n } = scheme;\n let request;\n if (context.s3ExpressIdentity) {\n request = await signS3Express(\n context.s3ExpressIdentity,\n signingProperties,\n args.request,\n await config.signer()\n );\n } else {\n request = await signer.sign(args.request, identity, signingProperties);\n }\n const output = await next({\n ...args,\n request\n }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n return output;\n}, \"s3ExpressHttpSigningMiddleware\");\nvar getS3ExpressHttpSigningPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(\n s3ExpressHttpSigningMiddleware(config),\n import_core2.httpSigningMiddlewareOptions\n );\n }, \"applyToStack\")\n}), \"getS3ExpressHttpSigningPlugin\");\n\n// src/s3Configuration.ts\nvar resolveS3Config = /* @__PURE__ */ __name((input, {\n session\n}) => {\n const [s3ClientProvider, CreateSessionCommandCtor] = session;\n const {\n forcePathStyle,\n useAccelerateEndpoint,\n disableMultiregionAccessPoints,\n followRegionRedirects,\n s3ExpressIdentityProvider,\n bucketEndpoint\n } = input;\n return Object.assign(input, {\n forcePathStyle: forcePathStyle ?? false,\n useAccelerateEndpoint: useAccelerateEndpoint ?? false,\n disableMultiregionAccessPoints: disableMultiregionAccessPoints ?? false,\n followRegionRedirects: followRegionRedirects ?? false,\n s3ExpressIdentityProvider: s3ExpressIdentityProvider ?? new S3ExpressIdentityProviderImpl(\n async (key) => s3ClientProvider().send(\n new CreateSessionCommandCtor({\n Bucket: key\n })\n )\n ),\n bucketEndpoint: bucketEndpoint ?? false\n });\n}, \"resolveS3Config\");\n\n// src/throw-200-exceptions.ts\n\nvar import_util_stream = require(\"@smithy/util-stream\");\nvar THROW_IF_EMPTY_BODY = {\n CopyObjectCommand: true,\n UploadPartCopyCommand: true,\n CompleteMultipartUploadCommand: true\n};\nvar MAX_BYTES_TO_INSPECT = 3e3;\nvar throw200ExceptionsMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (!import_protocol_http.HttpResponse.isInstance(response)) {\n return result;\n }\n const { statusCode, body: sourceBody } = response;\n if (statusCode < 200 || statusCode >= 300) {\n return result;\n }\n const isSplittableStream = typeof sourceBody?.stream === \"function\" || typeof sourceBody?.pipe === \"function\" || typeof sourceBody?.tee === \"function\";\n if (!isSplittableStream) {\n return result;\n }\n let bodyCopy = sourceBody;\n let body = sourceBody;\n if (sourceBody && typeof sourceBody === \"object\" && !(sourceBody instanceof Uint8Array)) {\n [bodyCopy, body] = await (0, import_util_stream.splitStream)(sourceBody);\n }\n response.body = body;\n const bodyBytes = await collectBody(bodyCopy, {\n streamCollector: /* @__PURE__ */ __name(async (stream) => {\n return (0, import_util_stream.headStream)(stream, MAX_BYTES_TO_INSPECT);\n }, \"streamCollector\")\n });\n if (typeof bodyCopy?.destroy === \"function\") {\n bodyCopy.destroy();\n }\n const bodyStringTail = config.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16));\n if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) {\n const err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyStringTail && bodyStringTail.endsWith(\"
\")) {\n response.statusCode = 400;\n }\n return result;\n}, \"throw200ExceptionsMiddleware\");\nvar collectBody = /* @__PURE__ */ __name((streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n}, \"collectBody\");\nvar throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true\n};\nvar getThrow200ExceptionsPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getThrow200ExceptionsPlugin\");\n\n// src/validate-bucket-name.ts\nvar import_util_arn_parser = require(\"@aws-sdk/util-arn-parser\");\n\n// src/bucket-endpoint-middleware.ts\nfunction bucketEndpointMiddleware(options) {\n return (next, context) => async (args) => {\n if (options.bucketEndpoint) {\n const endpoint = context.endpointV2;\n if (endpoint) {\n const bucket = args.input.Bucket;\n if (typeof bucket === \"string\") {\n try {\n const bucketEndpointUrl = new URL(bucket);\n context.endpointV2 = {\n ...endpoint,\n url: bucketEndpointUrl\n };\n } catch (e) {\n const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`;\n if (context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(warning);\n } else {\n context.logger?.warn?.(warning);\n }\n throw e;\n }\n }\n }\n }\n return next(args);\n };\n}\n__name(bucketEndpointMiddleware, \"bucketEndpointMiddleware\");\nvar bucketEndpointMiddlewareOptions = {\n name: \"bucketEndpointMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"endpointV2Middleware\"\n};\n\n// src/validate-bucket-name.ts\nfunction validateBucketNameMiddleware({ bucketEndpoint }) {\n return (next) => async (args) => {\n const {\n input: { Bucket }\n } = args;\n if (!bucketEndpoint && typeof Bucket === \"string\" && !(0, import_util_arn_parser.validate)(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return next({ ...args });\n };\n}\n__name(validateBucketNameMiddleware, \"validateBucketNameMiddleware\");\nvar validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true\n};\nvar getValidateBucketNamePlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions);\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getValidateBucketNamePlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n checkContentLengthHeaderMiddlewareOptions,\n getCheckContentLengthHeaderPlugin,\n checkContentLengthHeader,\n regionRedirectEndpointMiddleware,\n regionRedirectEndpointMiddlewareOptions,\n regionRedirectMiddlewareOptions,\n getRegionRedirectMiddlewarePlugin,\n regionRedirectMiddleware,\n s3ExpiresMiddleware,\n s3ExpiresMiddlewareOptions,\n getS3ExpiresMiddlewarePlugin,\n S3ExpressIdentityCache,\n S3ExpressIdentityCacheEntry,\n S3ExpressIdentityProviderImpl,\n SignatureV4S3Express,\n NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,\n getS3ExpressPlugin,\n s3ExpressMiddleware,\n s3ExpressMiddlewareOptions,\n getS3ExpressHttpSigningPlugin,\n s3ExpressHttpSigningMiddleware,\n s3ExpressHttpSigningMiddlewareOptions,\n resolveS3Config,\n throw200ExceptionsMiddleware,\n throw200ExceptionsMiddlewareOptions,\n getThrow200ExceptionsPlugin,\n validateBucketNameMiddlewareOptions,\n getValidateBucketNamePlugin,\n validateBucketNameMiddleware\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getSsecPlugin: () => getSsecPlugin,\n isValidBase64EncodedSSECustomerKey: () => isValidBase64EncodedSSECustomerKey,\n ssecMiddleware: () => ssecMiddleware,\n ssecMiddlewareOptions: () => ssecMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\nfunction ssecMiddleware(options) {\n return (next) => async (args) => {\n const input = { ...args.input };\n const properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\"\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\"\n }\n ];\n for (const prop of properties) {\n const value = input[prop.target];\n if (value) {\n let valueForHash;\n if (typeof value === \"string\") {\n if (isValidBase64EncodedSSECustomerKey(value, options)) {\n valueForHash = options.base64Decoder(value);\n } else {\n valueForHash = options.utf8Decoder(value);\n input[prop.target] = options.base64Encoder(valueForHash);\n }\n } else {\n valueForHash = ArrayBuffer.isView(value) ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength) : new Uint8Array(value);\n input[prop.target] = options.base64Encoder(valueForHash);\n }\n const hash = new options.md5();\n hash.update(valueForHash);\n input[prop.hash] = options.base64Encoder(await hash.digest());\n }\n }\n return next({\n ...args,\n input\n });\n };\n}\n__name(ssecMiddleware, \"ssecMiddleware\");\nvar ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true\n};\nvar getSsecPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getSsecPlugin\");\nfunction isValidBase64EncodedSSECustomerKey(str, options) {\n const base64Regex = /^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\n if (!base64Regex.test(str)) return false;\n try {\n const decodedBytes = options.base64Decoder(str);\n return decodedBytes.length === 32;\n } catch {\n return false;\n }\n}\n__name(isValidBase64EncodedSSECustomerKey, \"isValidBase64EncodedSSECustomerKey\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ssecMiddlewareOptions,\n getSsecPlugin,\n ssecMiddleware,\n isValidBase64EncodedSSECustomerKey\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n SignatureV4MultiRegion: () => SignatureV4MultiRegion,\n signatureV4CrtContainer: () => signatureV4CrtContainer\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SignatureV4MultiRegion.ts\nvar import_middleware_sdk_s3 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\n\n// src/signature-v4-crt-container.ts\nvar signatureV4CrtContainer = {\n CrtSignerV4: null\n};\n\n// src/SignatureV4MultiRegion.ts\nvar SignatureV4MultiRegion = class {\n static {\n __name(this, \"SignatureV4MultiRegion\");\n }\n sigv4aSigner;\n sigv4Signer;\n signerOptions;\n static sigv4aDependency() {\n if (typeof signatureV4CrtContainer.CrtSignerV4 === \"function\") {\n return \"crt\";\n } else if (typeof import_signature_v4.signatureV4aContainer.SignatureV4a === \"function\") {\n return \"js\";\n }\n return \"none\";\n }\n constructor(options) {\n this.sigv4Signer = new import_middleware_sdk_s3.SignatureV4S3Express(options);\n this.signerOptions = options;\n }\n async sign(requestToSign, options = {}) {\n if (options.signingRegion === \"*\") {\n return this.getSigv4aSigner().sign(requestToSign, options);\n }\n return this.sigv4Signer.sign(requestToSign, options);\n }\n /**\n * Sign with alternate credentials to the ones provided in the constructor.\n * Note: This is only supported for SigV4a when using the CRT implementation.\n */\n async signWithCredentials(requestToSign, credentials, options = {}) {\n if (options.signingRegion === \"*\") {\n const signer = this.getSigv4aSigner();\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n return signer.signWithCredentials(requestToSign, credentials, options);\n } else {\n throw new Error(\n `signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`\n );\n }\n }\n return this.sigv4Signer.signWithCredentials(requestToSign, credentials, options);\n }\n /**\n * Presign a request.\n * Note: This is only supported for SigV4a when using the CRT implementation.\n */\n async presign(originalRequest, options = {}) {\n if (options.signingRegion === \"*\") {\n const signer = this.getSigv4aSigner();\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n return signer.presign(originalRequest, options);\n } else {\n throw new Error(\n `presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`\n );\n }\n }\n return this.sigv4Signer.presign(originalRequest, options);\n }\n async presignWithCredentials(originalRequest, credentials, options = {}) {\n if (options.signingRegion === \"*\") {\n throw new Error(\"Method presignWithCredentials is not supported for [signingRegion=*].\");\n }\n return this.sigv4Signer.presignWithCredentials(originalRequest, credentials, options);\n }\n getSigv4aSigner() {\n if (!this.sigv4aSigner) {\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n const JsSigV4aSigner = import_signature_v4.signatureV4aContainer.SignatureV4a;\n if (this.signerOptions.runtime === \"node\") {\n if (!CrtSignerV4 && !JsSigV4aSigner) {\n throw new Error(\n \"Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\"\n );\n }\n if (CrtSignerV4 && typeof CrtSignerV4 === \"function\") {\n this.sigv4aSigner = new CrtSignerV4({\n ...this.signerOptions,\n signingAlgorithm: 1\n });\n } else if (JsSigV4aSigner && typeof JsSigV4aSigner === \"function\") {\n this.sigv4aSigner = new JsSigV4aSigner({\n ...this.signerOptions\n });\n } else {\n throw new Error(\n \"Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\"\n );\n }\n } else {\n if (!JsSigV4aSigner || typeof JsSigV4aSigner !== \"function\") {\n throw new Error(\n \"JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a\"\n );\n }\n this.sigv4aSigner = new JsSigV4aSigner({\n ...this.signerOptions\n });\n }\n }\n return this.sigv4aSigner;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SignatureV4MultiRegion,\n signatureV4CrtContainer\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n build: () => build,\n parse: () => parse,\n validate: () => validate\n});\nmodule.exports = __toCommonJS(index_exports);\nvar validate = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6, \"validate\");\nvar parse = /* @__PURE__ */ __name((arn) => {\n const segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\") throw new Error(\"Malformed ARN\");\n const [\n ,\n //Skip \"arn\" literal\n partition,\n service,\n region,\n accountId,\n ...resource\n ] = segments;\n return {\n partition,\n service,\n region,\n accountId,\n resource: resource.join(\":\")\n };\n}, \"parse\");\nvar build = /* @__PURE__ */ __name((arnObject) => {\n const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n}, \"build\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n validate,\n parse,\n build\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n formatUrl: () => formatUrl\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_querystring_builder = require(\"@smithy/querystring-builder\");\nfunction formatUrl(request) {\n const { port, query } = request;\n let { protocol, path, hostname } = request;\n if (protocol && protocol.slice(-1) !== \":\") {\n protocol += \":\";\n }\n if (port) {\n hostname += `:${port}`;\n }\n if (path && path.charAt(0) !== \"/\") {\n path = `/${path}`;\n }\n let queryString = query ? (0, import_querystring_builder.buildQueryString)(query) : \"\";\n if (queryString && queryString[0] !== \"?\") {\n queryString = `?${queryString}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n let fragment = \"\";\n if (request.fragment) {\n fragment = `#${request.fragment}`;\n }\n return `${protocol}//${auth}${hostname}${path}${queryString}${fragment}`;\n}\n__name(formatUrl, \"formatUrl\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n formatUrl\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","'use strict';\n\nconst PROTECTED_KEYS = {\n REQUEST_ID: Symbol.for(\"_AWS_LAMBDA_REQUEST_ID\"),\n X_RAY_TRACE_ID: Symbol.for(\"_AWS_LAMBDA_X_RAY_TRACE_ID\"),\n TENANT_ID: Symbol.for(\"_AWS_LAMBDA_TENANT_ID\"),\n};\nconst NO_GLOBAL_AWS_LAMBDA = [\"true\", \"1\"].includes(process.env?.AWS_LAMBDA_NODEJS_NO_GLOBAL_AWSLAMBDA ?? \"\");\nif (!NO_GLOBAL_AWS_LAMBDA) {\n globalThis.awslambda = globalThis.awslambda || {};\n}\nclass InvokeStoreBase {\n static PROTECTED_KEYS = PROTECTED_KEYS;\n isProtectedKey(key) {\n return Object.values(PROTECTED_KEYS).includes(key);\n }\n getRequestId() {\n return this.get(PROTECTED_KEYS.REQUEST_ID) ?? \"-\";\n }\n getXRayTraceId() {\n return this.get(PROTECTED_KEYS.X_RAY_TRACE_ID);\n }\n getTenantId() {\n return this.get(PROTECTED_KEYS.TENANT_ID);\n }\n}\nclass InvokeStoreSingle extends InvokeStoreBase {\n currentContext;\n getContext() {\n return this.currentContext;\n }\n hasContext() {\n return this.currentContext !== undefined;\n }\n get(key) {\n return this.currentContext?.[key];\n }\n set(key, value) {\n if (this.isProtectedKey(key)) {\n throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`);\n }\n this.currentContext = this.currentContext || {};\n this.currentContext[key] = value;\n }\n run(context, fn) {\n this.currentContext = context;\n return fn();\n }\n}\nclass InvokeStoreMulti extends InvokeStoreBase {\n als;\n static async create() {\n const instance = new InvokeStoreMulti();\n const asyncHooks = await import('node:async_hooks');\n instance.als = new asyncHooks.AsyncLocalStorage();\n return instance;\n }\n getContext() {\n return this.als.getStore();\n }\n hasContext() {\n return this.als.getStore() !== undefined;\n }\n get(key) {\n return this.als.getStore()?.[key];\n }\n set(key, value) {\n if (this.isProtectedKey(key)) {\n throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`);\n }\n const store = this.als.getStore();\n if (!store) {\n throw new Error(\"No context available\");\n }\n store[key] = value;\n }\n run(context, fn) {\n return this.als.run(context, fn);\n }\n}\nexports.InvokeStore = void 0;\n(function (InvokeStore) {\n let instance = null;\n async function getInstanceAsync(forceInvokeStoreMulti) {\n if (!instance) {\n instance = (async () => {\n const isMulti = forceInvokeStoreMulti === true || \"AWS_LAMBDA_MAX_CONCURRENCY\" in process.env;\n const newInstance = isMulti\n ? await InvokeStoreMulti.create()\n : new InvokeStoreSingle();\n if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda?.InvokeStore) {\n return globalThis.awslambda.InvokeStore;\n }\n else if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda) {\n globalThis.awslambda.InvokeStore = newInstance;\n return newInstance;\n }\n else {\n return newInstance;\n }\n })();\n }\n return instance;\n }\n InvokeStore.getInstanceAsync = getInstanceAsync;\n InvokeStore._testing = process.env.AWS_LAMBDA_BENCHMARK_MODE === \"1\"\n ? {\n reset: () => {\n instance = null;\n if (globalThis.awslambda?.InvokeStore) {\n delete globalThis.awslambda.InvokeStore;\n }\n globalThis.awslambda = { InvokeStore: undefined };\n },\n }\n : undefined;\n})(exports.InvokeStore || (exports.InvokeStore = {}));\n\nexports.InvokeStoreBase = InvokeStoreBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Database = void 0;\nconst entity_1 = require(\"./entity\");\nconst relationship_1 = require(\"./relationship\");\nclass Database {\n static entitiesOnly(entities) {\n return new Database(entities, relationship_1.NO_RELATIONSHIPS);\n }\n constructor(entities, relationships) {\n this.idCtr = 0;\n this.schema = {\n ...entities,\n ...relationships({\n relationship: (fromKey, toKey) => (0, relationship_1.relationshipCollection)((id) => this.get(fromKey, id), (id) => this.get(toKey, id)),\n }),\n };\n }\n id() {\n return `${this.idCtr++}`;\n }\n /**\n * Allocate an ID and store\n */\n allocate(key, entity) {\n return this.store(key, this.e(entity));\n }\n /**\n * Store with a preallocated ID\n */\n store(key, entity) {\n const coll = this.schema[key];\n coll.add(entity);\n return entity;\n }\n /**\n * Get an entity by key\n */\n get(key, id) {\n const coll = this.schema[key];\n const ret = coll.entities.get(typeof id === 'string' ? id : id.$ref);\n if (!ret) {\n throw new Error(`No such ${String(key)}: ${id}`);\n }\n return ret;\n }\n /**\n * All entities of a given type\n */\n all(key) {\n const coll = this.schema[key];\n return Array.from(coll.entities.values());\n }\n /**\n * Lookup an entity by index\n */\n lookup(key, index, lookup, value) {\n const coll = this.schema[key];\n const ids = coll.indexes[index].lookups[lookup](value);\n return addOnlyMethod(ids.map((id) => coll.entities.get(id)), `${String(key)} with ${String(index)} ${String(lookup)} ${JSON.stringify(value)}`);\n }\n /**\n * Allocate an ID and store if the entity does not yet exist\n */\n findOrAllocate(key, index, lookup, entity) {\n const res = this.lookup(key, index, lookup, entity[index]);\n if (res.length) {\n return res.only();\n }\n return this.allocate(key, entity);\n }\n link(key, from, to, attributes) {\n const col = this.schema[key];\n col.add(from, to, attributes);\n }\n /**\n * Follow a link\n */\n follow(key, from) {\n const col = this.schema[key];\n const toLinks = col.forward.get(from.$id) ?? [];\n const ret = toLinks.map((i) => ({ entity: col.toColl(i.$id), ...removeId(i) }));\n return addOnlyMethod(ret, `${String(key)} from ${from}`);\n }\n /**\n * Follow incoming links backwards\n */\n incoming(key, to) {\n const col = this.schema[key];\n const fromIds = col.backward.get(to.$id) ?? [];\n const ret = fromIds.map((i) => ({ entity: col.fromColl(i.$id), ...removeId(i) }));\n return addOnlyMethod(ret, `${String(key)} to ${to}`);\n }\n e(entity) {\n return {\n $id: this.id(),\n ...entity,\n };\n }\n /**\n * Turn the current database collection into something that can be stored.\n */\n save() {\n return {\n idCtr: this.idCtr,\n schema: dehydrate(this.schema),\n };\n function dehydrate(x) {\n if ((0, entity_1.isEntityCollection)(x)) {\n return x.dehydrate();\n }\n if ((0, relationship_1.isRelationshipCollection)(x)) {\n return x.dehydrate();\n }\n if (Array.isArray(x)) {\n return x.map(dehydrate);\n }\n if (!!x && typeof x === 'object') {\n return Object.fromEntries(Object.entries(x).map(([k, v]) => [k, dehydrate(v)]));\n }\n return x;\n }\n }\n load(db) {\n this.idCtr = db.idCtr;\n hydrate(this.schema, db.schema);\n function hydrate(proto, x) {\n if ((0, entity_1.isEntityCollection)(proto)) {\n proto.hydrateFrom(x);\n }\n if ((0, relationship_1.isRelationshipCollection)(proto)) {\n proto.hydrateFrom(x);\n }\n if (Array.isArray(x)) {\n x.forEach(hydrate);\n }\n if (!!proto && typeof proto === 'object' && !!x && typeof x === 'object') {\n for (const [k, v] of Object.entries(proto)) {\n const dehydratedData = x[k];\n if (dehydratedData !== undefined) {\n // May be missing if this is from a database created from an old version of the schema\n hydrate(v, dehydratedData);\n }\n }\n }\n }\n }\n}\nexports.Database = Database;\nfunction removeId(x) {\n const ret = { ...x };\n delete ret.$id;\n return ret;\n}\nfunction addOnlyMethod(xs, description) {\n return Object.defineProperties(xs, {\n only: {\n enumerable: false,\n value: () => {\n if (xs.length !== 1) {\n throw new Error(`Expected exactly 1 ${description}, found ${xs.length}`);\n }\n return xs[0];\n },\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVHO0FBQ3ZHLGlEQU13QjtBQVN4QixNQUFhLFFBQVE7SUFDWixNQUFNLENBQUMsWUFBWSxDQUFvQixRQUFZO1FBQ3hELE9BQU8sSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLCtCQUFnQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUtELFlBQVksUUFBWSxFQUFFLGFBQWtEO1FBRnBFLFVBQUssR0FBRyxDQUFDLENBQUM7UUFHaEIsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsUUFBUTtZQUNYLEdBQUcsYUFBYSxDQUFDO2dCQUNmLFlBQVksRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUMvQixJQUFBLHFDQUFzQixFQUNwQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQzdCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDNUI7YUFDSixDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxFQUFFO1FBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVEsQ0FBcUIsR0FBTSxFQUFFLE1BQWdDO1FBQzFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBcUIsR0FBTSxFQUFFLE1BQXlCO1FBQ2hFLE1BQU0sSUFBSSxHQUEwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBUSxDQUFD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LENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztTQUNGO0tBQ0YsQ0FBUSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgRW50aXR5Q29sbGVjdGlvbiwgRW50aXR5SW5kZXgsIGlzRW50aXR5Q29sbGVjdGlvbiwgUGxhaW4sIFJlZmVyZW5jZSB9IGZyb20gJy4vZW50aXR5JztcbmltcG9ydCB7XG4gIGlzUmVsYXRpb25zaGlwQ29sbGVjdGlvbixcbiAgTk9fUkVMQVRJT05TSElQUyxcbiAgUmVsYXRpb25zaGlwLFxuICByZWxhdGlvbnNoaXBDb2xsZWN0aW9uLFxuICBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uLFxufSBmcm9tICcuL3JlbGF0aW9uc2hpcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRpb25zaGlwc0J1aWxkZXI8RVMgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgcmVsYXRpb25zaGlwPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+KFxuICAgIGZyb21LZXk6IEtleXNGb3I8RVMsIEVudGl0eUNvbGxlY3Rpb248UlsnZnJvbSddLCBhbnk+PixcbiAgICB0b0tleTogS2V5c0ZvcjxFUywgRW50aXR5Q29sbGVjdGlvbjxSWyd0byddLCBhbnk+PixcbiAgKTogUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxSPjtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlPEVTIGV4dGVuZHMgb2JqZWN0LCBSUyBleHRlbmRzIG9iamVjdD4ge1xuICBwdWJsaWMgc3RhdGljIGVudGl0aWVzT25seTxFUyBleHRlbmRzIG9iamVjdD4oZW50aXRpZXM6IEVTKTogRGF0YWJhc2U8RVMsIHt9PiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhYmFzZShlbnRpdGllcywgTk9fUkVMQVRJT05TSElQUyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYTogRVMgJiBSUztcbiAgcHJpdmF0ZSBpZEN0ciA9IDA7XG5cbiAgY29uc3RydWN0b3IoZW50aXRpZXM6IEVTLCByZWxhdGlvbnNoaXBzOiAoeDogUmVsYXRpb25zaGlwc0J1aWxkZXI8RVM+KSA9PiBSUykge1xuICAgIHRoaXMuc2NoZW1hID0ge1xuICAgICAgLi4uZW50aXRpZXMsXG4gICAgICAuLi5yZWxhdGlvbnNoaXBzKHtcbiAgICAgICAgcmVsYXRpb25zaGlwOiAoZnJvbUtleSwgdG9LZXkpID0+XG4gICAgICAgICAgcmVsYXRpb25zaGlwQ29sbGVjdGlvbihcbiAgICAgICAgICAgIChpZCkgPT4gdGhpcy5nZXQoZnJvbUtleSwgaWQpLFxuICAgICAgICAgICAgKGlkKSA9PiB0aGlzLmdldCh0b0tleSwgaWQpLFxuICAgICAgICAgICksXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGlkKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmlkQ3RyKyt9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvY2F0ZSBhbiBJRCBhbmQgc3RvcmVcbiAgICovXG4gIHB1YmxpYyBhbGxvY2F0ZTxLIGV4dGVuZHMga2V5b2YgRVM+KGtleTogSywgZW50aXR5OiBQbGFpbjxFbnRpdHlUeXBlPEVTW0tdPj4pOiBFbnRpdHlUeXBlPEVTW0tdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUoa2V5LCB0aGlzLmUoZW50aXR5KSk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcmUgd2l0aCBhIHByZWFsbG9jYXRlZCBJRFxuICAgKi9cbiAgcHVibGljIHN0b3JlPEsgZXh0ZW5kcyBrZXlvZiBFUz4oa2V5OiBLLCBlbnRpdHk6IEVudGl0eVR5cGU8RVNbS10+KTogRW50aXR5VHlwZTxFU1tLXT4ge1xuICAgIGNvbnN0IGNvbGw6IEVudGl0eUNvbGxlY3Rpb248YW55PiA9IHRoaXMuc2NoZW1hW2tleV0gYXMgYW55O1xuICAgIGNvbGwuYWRkKGVudGl0eSk7XG4gICAgcmV0dXJuIGVudGl0eSBhcyBhbnk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGVudGl0eSBieSBrZXlcbiAgICovXG4gIHB1YmxpYyBnZXQ8SyBleHRlbmRzIGtleW9mIEVTPihrZXk6IEssIGlkOiBzdHJpbmcgfCBSZWZlcmVuY2U8RW50aXR5VHlwZTxFU1tLXT4+KTogRW50aXR5VHlwZTxFU1tLXT4ge1xuICAgIGNvbnN0IGNvbGw6IEVudGl0eUNvbGxlY3Rpb248YW55PiA9IHRoaXMuc2NoZW1hW2tleV0gYXMgYW55O1xuICAgIGNvbnN0IHJldCA9IGNvbGwuZW50aXRpZXMuZ2V0KHR5cGVvZiBpZCA9PT0gJ3N0cmluZycgPyBpZCA6IGlkLiRyZWYpO1xuICAgIGlmICghcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggJHtTdHJpbmcoa2V5KX06ICR7aWR9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGVudGl0aWVzIG9mIGEgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgcHVibGljIGFsbDxLIGV4dGVuZHMga2V5b2YgRVM+KGtleTogSyk6IEFycmF5PEVudGl0eVR5cGU8RVNbS10+PiB7XG4gICAgY29uc3QgY29sbDogRW50aXR5Q29sbGVjdGlvbjxhbnk+ID0gdGhpcy5zY2hlbWFba2V5XSBhcyBhbnk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oY29sbC5lbnRpdGllcy52YWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9va3VwIGFuIGVudGl0eSBieSBpbmRleFxuICAgKi9cbiAgcHVibGljIGxvb2t1cDxLIGV4dGVuZHMga2V5b2YgRVMsIEkgZXh0ZW5kcyBJbmRleE5hbWVzT2Y8RVNbS10+PihcbiAgICBrZXk6IEssXG4gICAgaW5kZXg6IEksXG4gICAgbG9va3VwOiBJbmRleE9mPEVTW0tdLCBJPlsnbG9va3VwcyddLFxuICAgIHZhbHVlOiBJbmRleE9mPEVTW0tdLCBJPlsndmFsdWVUeXBlJ10sXG4gICk6IFJpY2hSZWFkb25seUFycmF5PEVudGl0eVR5cGU8RVNbS10+PiB7XG4gICAgY29uc3QgY29sbDogRW50aXR5Q29sbGVjdGlvbjxhbnk+ID0gdGhpcy5zY2hlbWFba2V5XSBhcyBhbnk7XG4gICAgY29uc3QgaWRzID0gKGNvbGwuaW5kZXhlcyBhcyBhbnkpW2luZGV4XS5sb29rdXBzW2xvb2t1cF0odmFsdWUpO1xuICAgIHJldHVybiBhZGRPbmx5TWV0aG9kKFxuICAgICAgaWRzLm1hcCgoaWQ6IHN0cmluZykgPT4gY29sbC5lbnRpdGllcy5nZXQoaWQpKSxcbiAgICAgIGAke1N0cmluZyhrZXkpfSB3aXRoICR7U3RyaW5nKGluZGV4KX0gJHtTdHJpbmcobG9va3VwKX0gJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRlIGFuIElEIGFuZCBzdG9yZSBpZiB0aGUgZW50aXR5IGRvZXMgbm90IHlldCBleGlzdFxuICAgKi9cbiAgcHVibGljIGZpbmRPckFsbG9jYXRlPEsgZXh0ZW5kcyBrZXlvZiBFUywgSSBleHRlbmRzIGtleW9mIFBsYWluPEVudGl0eVR5cGU8RVNbS10+PiAmIEluZGV4TmFtZXNPZjxFU1tLXT4+KFxuICAgIGtleTogSyxcbiAgICBpbmRleDogSSxcbiAgICBsb29rdXA6IEluZGV4T2Y8RVNbS10sIEk+Wydsb29rdXBzJ10sXG4gICAgZW50aXR5OiBQbGFpbjxFbnRpdHlUeXBlPEVTW0tdPj4sXG4gICk6IEVudGl0eVR5cGU8RVNbS10+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmxvb2t1cChrZXksIGluZGV4LCBsb29rdXAsIGVudGl0eVtpbmRleF0pO1xuICAgIGlmIChyZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmVzLm9ubHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWxsb2NhdGUoa2V5LCBlbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZCBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBlbnRpdGllc1xuICAgKlxuICAgKiBPdmVybG9hZCB0byBhY2NvdW50IGZvciB3aGV0aGVyIHdlIGhhdmUgYXR0cmlidXRlcyBvciBub3QuXG4gICAqL1xuICBwdWJsaWMgbGluazxLIGV4dGVuZHMgUmVsV0F0dHJzPFJTPj4oXG4gICAga2V5OiBLLFxuICAgIGZyb206IFJlbFR5cGU8UlNbS10+Wydmcm9tJ10sXG4gICAgdG86IFJlbFR5cGU8UlNbS10+Wyd0byddLFxuICAgIGF0dHJpYnV0ZXM6IFJlbFR5cGU8UlNbS10+WydhdHRyJ10sXG4gICk6IHZvaWQ7XG4gIHB1YmxpYyBsaW5rPEsgZXh0ZW5kcyBSZWxXb0F0dHJzPFJTPj4oa2V5OiBLLCBmcm9tOiBSZWxUeXBlPFJTW0tdPlsnZnJvbSddLCB0bzogUmVsVHlwZTxSU1tLXT5bJ3RvJ10pOiB2b2lkO1xuICBwdWJsaWMgbGluazxLIGV4dGVuZHMga2V5b2YgUlM+KFxuICAgIGtleTogSyxcbiAgICBmcm9tOiBSZWxUeXBlPFJTW0tdPlsnZnJvbSddLFxuICAgIHRvOiBSZWxUeXBlPFJTW0tdPlsndG8nXSxcbiAgICBhdHRyaWJ1dGVzPzogUmVsVHlwZTxSU1tLXT5bJ2F0dHInXSxcbiAgKSB7XG4gICAgY29uc3QgY29sOiBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uPGFueT4gPSB0aGlzLnNjaGVtYVtrZXldIGFzIGFueTtcbiAgICBjb2wuYWRkKGZyb20sIHRvLCBhdHRyaWJ1dGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2xsb3cgYSBsaW5rXG4gICAqL1xuICBwdWJsaWMgZm9sbG93PEsgZXh0ZW5kcyBrZXlvZiBSUz4oXG4gICAga2V5OiBLLFxuICAgIGZyb206IFJlbFR5cGU8UlNbS10+Wydmcm9tJ10sXG4gICk6IFJpY2hSZWFkb25seUFycmF5PExpbms8UmVsVHlwZTxSU1tLXT5bJ3RvJ10sIFJlbFR5cGU8UlNbS10+WydhdHRyJ10+PiB7XG4gICAgY29uc3QgY29sOiBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uPGFueT4gPSB0aGlzLnNjaGVtYVtrZXldIGFzIGFueTtcbiAgICBjb25zdCB0b0xpbmtzID0gY29sLmZvcndhcmQuZ2V0KGZyb20uJGlkKSA/PyBbXTtcbiAgICBjb25zdCByZXQgPSB0b0xpbmtzLm1hcCgoaSkgPT4gKHsgZW50aXR5OiBjb2wudG9Db2xsKGkuJGlkKSwgLi4ucmVtb3ZlSWQoaSkgfSBhcyBhbnkpKTtcblxuICAgIHJldHVybiBhZGRPbmx5TWV0aG9kKHJldCwgYCR7U3RyaW5nKGtleSl9IGZyb20gJHtmcm9tfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvbGxvdyBpbmNvbWluZyBsaW5rcyBiYWNrd2FyZHNcbiAgICovXG4gIHB1YmxpYyBpbmNvbWluZzxLIGV4dGVuZHMga2V5b2YgUlM+KFxuICAgIGtleTogSyxcbiAgICB0bzogUmVsVHlwZTxSU1tLXT5bJ3RvJ10sXG4gICk6IFJpY2hSZWFkb25seUFycmF5PExpbms8UmVsVHlwZTxSU1tLXT5bJ2Zyb20nXSwgUmVsVHlwZTxSU1tLXT5bJ2F0dHInXT4+IHtcbiAgICBjb25zdCBjb2w6IFJlbGF0aW9uc2hpcENvbGxlY3Rpb248YW55PiA9IHRoaXMuc2NoZW1hW2tleV0gYXMgYW55O1xuICAgIGNvbnN0IGZyb21JZHMgPSBjb2wuYmFja3dhcmQuZ2V0KHRvLiRpZCkgPz8gW107XG4gICAgY29uc3QgcmV0ID0gZnJvbUlkcy5tYXAoKGkpID0+ICh7IGVudGl0eTogY29sLmZyb21Db2xsKGkuJGlkKSwgLi4ucmVtb3ZlSWQoaSkgfSBhcyBhbnkpKTtcblxuICAgIHJldHVybiBhZGRPbmx5TWV0aG9kKHJldCwgYCR7U3RyaW5nKGtleSl9IHRvICR7dG99YCk7XG4gIH1cblxuICBwdWJsaWMgZTxFIGV4dGVuZHMgRW50aXR5PihlbnRpdHk6IFBsYWluPEU+KTogRSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpZDogdGhpcy5pZCgpLFxuICAgICAgLi4uZW50aXR5LFxuICAgIH0gYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIFR1cm4gdGhlIGN1cnJlbnQgZGF0YWJhc2UgY29sbGVjdGlvbiBpbnRvIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBzdG9yZWQuXG4gICAqL1xuICBwdWJsaWMgc2F2ZSgpOiBEZWh5ZHJhdGVkRGF0YWJhc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpZEN0cjogdGhpcy5pZEN0cixcbiAgICAgIHNjaGVtYTogZGVoeWRyYXRlKHRoaXMuc2NoZW1hKSxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZGVoeWRyYXRlKHg6IHVua25vd24pOiBhbnkge1xuICAgICAgaWYgKGlzRW50aXR5Q29sbGVjdGlvbih4KSkge1xuICAgICAgICByZXR1cm4geC5kZWh5ZHJhdGUoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1JlbGF0aW9uc2hpcENvbGxlY3Rpb24oeCkpIHtcbiAgICAgICAgcmV0dXJuIHguZGVoeWRyYXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh4KSkge1xuICAgICAgICByZXR1cm4geC5tYXAoZGVoeWRyYXRlKTtcbiAgICAgIH1cbiAgICAgIGlmICghIXggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoeCkubWFwKChbaywgdl0pID0+IFtrLCBkZWh5ZHJhdGUodildKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4geDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZChkYjogRGVoeWRyYXRlZERhdGFiYXNlKSB7XG4gICAgdGhpcy5pZEN0ciA9IGRiLmlkQ3RyO1xuICAgIGh5ZHJhdGUodGhpcy5zY2hlbWEsIGRiLnNjaGVtYSk7XG5cbiAgICBmdW5jdGlvbiBoeWRyYXRlKHByb3RvOiB1bmtub3duLCB4OiB1bmtub3duKTogdm9pZCB7XG4gICAgICBpZiAoaXNFbnRpdHlDb2xsZWN0aW9uKHByb3RvKSkge1xuICAgICAgICBwcm90by5oeWRyYXRlRnJvbSh4KTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1JlbGF0aW9uc2hpcENvbGxlY3Rpb24ocHJvdG8pKSB7XG4gICAgICAgIHByb3RvLmh5ZHJhdGVGcm9tKHgpO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoeCkpIHtcbiAgICAgICAgeC5mb3JFYWNoKGh5ZHJhdGUpO1xuICAgICAgfVxuICAgICAgaWYgKCEhcHJvdG8gJiYgdHlwZW9mIHByb3RvID09PSAnb2JqZWN0JyAmJiAhIXggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHByb3RvKSkge1xuICAgICAgICAgIGNvbnN0IGRlaHlkcmF0ZWREYXRhID0gKHggYXMgYW55KVtrXTtcbiAgICAgICAgICBpZiAoZGVoeWRyYXRlZERhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gTWF5IGJlIG1pc3NpbmcgaWYgdGhpcyBpcyBmcm9tIGEgZGF0YWJhc2UgY3JlYXRlZCBmcm9tIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBzY2hlbWFcbiAgICAgICAgICAgIGh5ZHJhdGUodiwgZGVoeWRyYXRlZERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgRGVoeWRyYXRlZERhdGFiYXNlIHtcbiAgcmVhZG9ubHkgaWRDdHI6IG51bWJlcjtcbiAgcmVhZG9ubHkgc2NoZW1hOiBhbnk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUlkPEEgZXh0ZW5kcyBvYmplY3Q+KHg6IEEpOiBPbWl0PEEsICckaWQnPiB7XG4gIGNvbnN0IHJldCA9IHsgLi4ueCB9O1xuICBkZWxldGUgKHJldCBhcyBhbnkpLiRpZDtcbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IHR5cGUgTGluazxFLCBBPiA9IHsgcmVhZG9ubHkgZW50aXR5OiBFIH0gJiBBO1xuXG50eXBlIFJlbFdBdHRyczxSUz4gPSB7IFtLIGluIGtleW9mIFJTXToge30gZXh0ZW5kcyBSZWxUeXBlPFJTW0tdPlsnYXR0ciddID8gbmV2ZXIgOiBLIH1ba2V5b2YgUlNdO1xudHlwZSBSZWxXb0F0dHJzPFJTPiA9IHsgW0sgaW4ga2V5b2YgUlNdOiB7fSBleHRlbmRzIFJlbFR5cGU8UlNbS10+WydhdHRyJ10gPyBLIDogbmV2ZXIgfVtrZXlvZiBSU107XG5cbi8vIE5lY2Vzc2FyeSBiZWNhdXNlIHRoaXMgdHlwZSBtaWdodCBiZSBhIHVuaW9uXG50eXBlIEluZGV4TmFtZXNPZjxBPiA9IEEgZXh0ZW5kcyBFbnRpdHlDb2xsZWN0aW9uPGFueT4gPyBLZXlzT2ZVbmlvbjxBWydpbmRleGVzJ10+IDogbmV2ZXI7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxudHlwZSBJbmRleE9mPEVDLCBJIGV4dGVuZHMgSW5kZXhOYW1lc09mPEVDPj4gPVxuICBFQyBleHRlbmRzIEVudGl0eUNvbGxlY3Rpb248YW55PlxuICA/IEVDWydpbmRleGVzJ11bSV0gZXh0ZW5kcyBFbnRpdHlJbmRleDxhbnksIGluZmVyIEluZGV4VHlwZT5cbiAgICA/IHtcbiAgICAgICAgdmFsdWVUeXBlOiBJbmRleFR5cGU7XG4gICAgICAgIGxvb2t1cHM6IGtleW9mIEVDWydpbmRleGVzJ11bSV1bJ2xvb2t1cHMnXTtcbiAgICAgIH1cbiAgICA6IG5ldmVyXG4gIDogbmV2ZXI7XG5cbnR5cGUgRW50aXR5VHlwZTxBPiA9IEEgZXh0ZW5kcyBFbnRpdHlDb2xsZWN0aW9uPGluZmVyIEI+ID8gQiA6IG5ldmVyO1xuXG50eXBlIFJlbFR5cGU8QT4gPSBBIGV4dGVuZHMgUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxpbmZlciBSPiA/IFIgOiBuZXZlcjtcblxudHlwZSBSZXNvbHZlVW5pb248VD4gPSBUIGV4dGVuZHMgVCA/IFQgOiBuZXZlcjtcblxudHlwZSBLZXlzT2ZVbmlvbjxUPiA9IGtleW9mIFJlc29sdmVVbmlvbjxUPjtcblxuZXhwb3J0IHR5cGUgRW50aXRpZXNPZjxEQj4gPSBEQiBleHRlbmRzIERhdGFiYXNlPGluZmVyIEVTLCBhbnk+ID8geyBbayBpbiBrZXlvZiBFU106IEVudGl0eVR5cGU8RVNba10+IH0gOiB7fTtcblxuZXhwb3J0IGludGVyZmFjZSBSaWNoUmVhZG9ubHlBcnJheTxBPiBleHRlbmRzIFJlYWRvbmx5QXJyYXk8QT4ge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSBmaXJzdCBhbmQgb25seSBlbGVtZW50LCB0aHJvd2luZyBpZiB0aGVyZSBhcmUgIT0gMSBlbGVtZW50c1xuICAgKi9cbiAgb25seSgpOiBBO1xufVxuXG5mdW5jdGlvbiBhZGRPbmx5TWV0aG9kPEE+KHhzOiBBW10sIGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBSaWNoUmVhZG9ubHlBcnJheTxBPiB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh4cywge1xuICAgIG9ubHk6IHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6ICgpID0+IHtcbiAgICAgICAgaWYgKHhzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgZXhhY3RseSAxICR7ZGVzY3JpcHRpb259LCBmb3VuZCAke3hzLmxlbmd0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geHNbMF07XG4gICAgICB9LFxuICAgIH0sXG4gIH0pIGFzIGFueTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGtleXMgb2YgYW4gb2JqZWN0IHRoYXQgbWFwIHRvIGEgcGFydGljdWxhciB0eXBlXG4gKi9cbnR5cGUgS2V5c0ZvcjxPIGV4dGVuZHMgb2JqZWN0LCBUPiA9IHsgW2sgaW4ga2V5b2YgT106IE9ba10gZXh0ZW5kcyBUID8gayA6IG5ldmVyIH1ba2V5b2YgT107XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.optionalCmp = exports.numberCmp = exports.stringCmp = exports.ref = exports.isEntityCollection = exports.calculatedIndex = exports.fieldIndex = exports.entityCollection = void 0;\nconst sorted_map_1 = require(\"./sorted-map\");\nfunction entityCollection() {\n const entities = new Map();\n const _indexes = {};\n function add(x) {\n entities.set(x.$id, x);\n for (const index of Object.values(_indexes)) {\n // FIXME: why can't we type this?\n index.add(x);\n }\n }\n return {\n type: 'entities',\n entities,\n indexes: _indexes,\n add,\n dehydrate: () => ({\n type: 'entities',\n entities: Array.from(validatePlainObjects(entities).values()),\n }),\n hydrateFrom: (x) => {\n entities.clear();\n for (const e of Object.values(x.entities)) {\n add(e);\n }\n },\n index(indexes) {\n // This limitation exists purely because I couldn't type it otherwise.\n // Declaring a return type of `EntityCollection` would make a lot\n // of our other type inspection code stop working (the union is hard to pick\n // apart). Since adding indexes in multiple goes is not really a use case,\n // the simpler solution is just to type it as if we replaced all indexes\n // and add a runtime check to make sure the types aren't lying.\n if (Object.keys(_indexes).length > 0) {\n throw new Error('You may only call .index() once on a new collection');\n }\n Object.assign(_indexes, indexes);\n return this;\n },\n };\n}\nexports.entityCollection = entityCollection;\n/**\n * An index that uses the value of an entity's field\n */\nfunction fieldIndex(propName, comparator) {\n return calculatedIndex((x) => x[propName], comparator);\n}\nexports.fieldIndex = fieldIndex;\n/**\n * An index that is calculated based on a function applied to an entity\n */\nfunction calculatedIndex(fn, comparator) {\n const index = [];\n return {\n add: (x) => sorted_map_1.sortedMap.add(index, comparator, fn(x), x.$id),\n lookups: {\n equals: (value) => sorted_map_1.sortedMap.findAll(index, comparator, value),\n },\n index,\n };\n}\nexports.calculatedIndex = calculatedIndex;\nfunction isEntityCollection(x) {\n return typeof x === 'object' && !!x && x.type === 'entities';\n}\nexports.isEntityCollection = isEntityCollection;\nfunction validatePlainObjects(xs) {\n for (const x of xs.values()) {\n if (x.constructor !== Object) {\n throw new Error(`Entities should be plain-text objects, got instance of ${x.constructor}`);\n }\n }\n return xs;\n}\nfunction ref(x) {\n return typeof x === 'string' ? { $ref: x } : { $ref: x.$id };\n}\nexports.ref = ref;\n/**\n * Determines whether two strings are equivalent in the current or specified locale.\n */\nfunction stringCmp(a, b) {\n return a.localeCompare(b);\n}\nexports.stringCmp = stringCmp;\n/**\n * Determines whether two numbers are equivalent.\n */\nfunction numberCmp(a, b) {\n return a - b;\n}\nexports.numberCmp = numberCmp;\n/**\n * Creates a comparator to determine equivalent of two values, using a given comparator, but allows values to be optional.\n *\n * @param frontOrder If `true`, returns so that undefined values are ordered at the front. If `false`, undefined values are ordered at the back.\n */\nfunction optionalCmp(cmp, frontOrder = true) {\n return (a, b) => {\n if (a == undefined && b != undefined) {\n return frontOrder ? -1 : 1;\n }\n if (a != undefined && b == undefined) {\n return frontOrder ? 1 : -1;\n }\n if (a == undefined && b == undefined) {\n return 0;\n }\n return cmp(a, b);\n };\n}\nexports.optionalCmp = optionalCmp;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBeUQ7QUE0RXpELFNBQWdCLGdCQUFnQjtJQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQ3RDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUVwQixTQUFTLEdBQUcsQ0FBQyxDQUFJO1FBQ2YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQyxpQ0FBaUM7WUFDaEMsS0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsUUFBUTtRQUNSLE9BQU8sRUFBRSxRQUFlO1FBQ3hCLEdBQUc7UUFDSCxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNoQixJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM5RCxDQUFDO1FBQ0YsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakIsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3pDLEdBQUcsQ0FBQyxDQUFRLENBQUMsQ0FBQzthQUNmO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPO1lBQ1gsc0VBQXNFO1lBQ3RFLDRFQUE0RTtZQUM1RSw0RUFBNEU7WUFDNUUsMEVBQTBFO1lB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U0FBUyxFQUFFO1lBQ3BDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxTQUFTLEVBQUU7WUFDcEMsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE9BQU8sR0FBRyxDQUFDLENBQUUsRUFBRSxDQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7QUFDSixDQUFDO0FBZEQsa0NBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb3J0ZWRNYXAsIFNvcnRlZE11bHRpTWFwIH0gZnJvbSAnLi9zb3J0ZWQtbWFwJztcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHkge1xuICByZWFkb25seSAkaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGxhaW48RSBleHRlbmRzIEVudGl0eT4gPSBPbWl0PEUsICckaWQnPjtcblxudHlwZSBJbmRleGVzPEEgZXh0ZW5kcyBFbnRpdHk+ID0geyBbSyBpbiBQcm9wZXJ0eUtleV06IEVudGl0eUluZGV4PEEsIGFueT4gfTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDb2xsZWN0aW9uPEEgZXh0ZW5kcyBFbnRpdHksIEkgZXh0ZW5kcyBJbmRleGVzPEVudGl0eT4gPSB7fT4ge1xuICByZWFkb25seSB0eXBlOiAnZW50aXRpZXMnO1xuICByZWFkb25seSBlbnRpdGllczogTWFwPHN0cmluZywgQT47XG4gIHJlYWRvbmx5IGluZGV4ZXM6IEk7XG5cbiAgYWRkKHg6IEEpOiB2b2lkO1xuICBkZWh5ZHJhdGUoKTogYW55O1xuICBoeWRyYXRlRnJvbSh4OiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGQgaW5kZXhlcyB0byB0aGlzIGNvbGxlY3Rpb25cbiAgICpcbiAgICogQ3JlYXRpbmcgYW4gaW5kZXhlZCBjb2xsZWN0aW9uIGlzIGEgdHdvLXN0ZXAgb3BlcmF0aW9uIHNvIHRoYXQgd2UgY2FuIHNwZWNpZnkgdGhlXG4gICAqIEVudGl0eSB0eXBlLCBidXQgaW5mZXIgdGhlIGluZGV4IHR5cGVzIChUeXBlU2NyaXB0IGRvZXMgbm90IGFsbG93IGJvdGggc3BlY2lmeWluZyBBTkRcbiAgICogaW5mZXJyaW5nIGdlbmVyaWMgYXJndW1lbnRzIGluIGEgc2luZ2xlIGNhbGwpLlxuICAgKi9cbiAgaW5kZXg8SUkgZXh0ZW5kcyBJbmRleGVzPEE+PihpbmRleGVzOiBJSSk6IEVudGl0eUNvbGxlY3Rpb248QSwgSUk+O1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgaW5kZXggb2JqZWN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUluZGV4PEEgZXh0ZW5kcyBFbnRpdHksIEluZGV4VHlwZT4ge1xuICAvKipcbiAgICogVGhlIGxvb2t1cHMgdGhhdCB0aGUgaW5kZXhlZCBmaWVsZCB0eXBlIGFmZm9yZHNcbiAgICpcbiAgICogRm9yIGV4YW1wbGUsICdlcXVhbHMnLCAnbGVzc1RoYW4nLCAncHJlZml4JywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwczogSW5kZXhMb29rdXBzPEluZGV4VHlwZT47XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBkYXRhIHN0b3JlXG4gICAqL1xuICByZWFkb25seSBpbmRleDogU29ydGVkTXVsdGlNYXA8SW5kZXhUeXBlLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBZGQgYW4gZW50aXR5IHRvIHRoZSBpbmRleFxuICAgKi9cbiAgYWRkKHg6IEEpOiB2b2lkO1xufVxuXG4vKipcbiAqIE1hcCBhIHR5cGUgdGhlIHR5cGVzIG9mIGxvb2t1cHMgd2UgY2FuIGRvIG9uIHRoYXQgdHlwZVxuICovXG5leHBvcnQgdHlwZSBJbmRleExvb2t1cHM8UD4gPSBbUF0gZXh0ZW5kcyBbc3RyaW5nXVxuICA/IFN0cmluZ0luZGV4TG9va3Vwc1xuICA6IFtQXSBleHRlbmRzIFtzdHJpbmcgfCB1bmRlZmluZWRdXG4gID8gT3B0aW9uYWxTdHJpbmdJbmRleExvb2t1cHNcbiAgOiB7fTtcblxuLyoqXG4gKiBBbGwgdGhlIGxvb2t1cHMgb24gJ3N0cmluZycgdHlwZXNcbiAqXG4gKiBXZSBjdXJyZW50bHkgb25seSBoYXZlICdlcXVhbHMnIGJ1dCB3ZSBjb3VsZCBoYXZlIG1vcmUgOilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdJbmRleExvb2t1cHMge1xuICBlcXVhbHMoeDogc3RyaW5nKTogc3RyaW5nW107XG59XG5cbi8qKlxuICogQWxsIHRoZSBsb29rdXBzIG9uICdzdHJpbmcgfCB1bmRlZmluZWQnIHR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxTdHJpbmdJbmRleExvb2t1cHMge1xuICBlcXVhbHMoeDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlDb2xsZWN0aW9uPEEgZXh0ZW5kcyBFbnRpdHk+KCk6IEVudGl0eUNvbGxlY3Rpb248QSwge30+IHtcbiAgY29uc3QgZW50aXRpZXMgPSBuZXcgTWFwPHN0cmluZywgQT4oKTtcbiAgY29uc3QgX2luZGV4ZXMgPSB7fTtcblxuICBmdW5jdGlvbiBhZGQoeDogQSkge1xuICAgIGVudGl0aWVzLnNldCh4LiRpZCwgeCk7XG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBPYmplY3QudmFsdWVzKF9pbmRleGVzKSkge1xuICAgICAgLy8gRklYTUU6IHdoeSBjYW4ndCB3ZSB0eXBlIHRoaXM/XG4gICAgICAoaW5kZXggYXMgYW55KS5hZGQoeCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZW50aXRpZXMnLFxuICAgIGVudGl0aWVzLFxuICAgIGluZGV4ZXM6IF9pbmRleGVzIGFzIGFueSxcbiAgICBhZGQsXG4gICAgZGVoeWRyYXRlOiAoKSA9PiAoe1xuICAgICAgdHlwZTogJ2VudGl0aWVzJyxcbiAgICAgIGVudGl0aWVzOiBBcnJheS5mcm9tKHZhbGlkYXRlUGxhaW5PYmplY3RzKGVudGl0aWVzKS52YWx1ZXMoKSksXG4gICAgfSksXG4gICAgaHlkcmF0ZUZyb206ICh4KSA9PiB7XG4gICAgICBlbnRpdGllcy5jbGVhcigpO1xuICAgICAgZm9yIChjb25zdCBlIG9mIE9iamVjdC52YWx1ZXMoeC5lbnRpdGllcykpIHtcbiAgICAgICAgYWRkKGUgYXMgYW55KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGluZGV4KGluZGV4ZXMpIHtcbiAgICAgIC8vIFRoaXMgbGltaXRhdGlvbiBleGlzdHMgcHVyZWx5IGJlY2F1c2UgSSBjb3VsZG4ndCB0eXBlIGl0IG90aGVyd2lzZS5cbiAgICAgIC8vIERlY2xhcmluZyBhIHJldHVybiB0eXBlIG9mIGBFbnRpdHlDb2xsZWN0aW9uPEEsIEkgfCBJST5gIHdvdWxkIG1ha2UgYSBsb3RcbiAgICAgIC8vIG9mIG91ciBvdGhlciB0eXBlIGluc3BlY3Rpb24gY29kZSBzdG9wIHdvcmtpbmcgKHRoZSB1bmlvbiBpcyBoYXJkIHRvIHBpY2tcbiAgICAgIC8vIGFwYXJ0KS4gU2luY2UgYWRkaW5nIGluZGV4ZXMgaW4gbXVsdGlwbGUgZ29lcyBpcyBub3QgcmVhbGx5IGEgdXNlIGNhc2UsXG4gICAgICAvLyB0aGUgc2ltcGxlciBzb2x1dGlvbiBpcyBqdXN0IHRvIHR5cGUgaXQgYXMgaWYgd2UgcmVwbGFjZWQgYWxsIGluZGV4ZXNcbiAgICAgIC8vIGFuZCBhZGQgYSBydW50aW1lIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgdHlwZXMgYXJlbid0IGx5aW5nLlxuICAgICAgaWYgKE9iamVjdC5rZXlzKF9pbmRleGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG1heSBvbmx5IGNhbGwgLmluZGV4KCkgb25jZSBvbiBhIG5ldyBjb2xsZWN0aW9uJyk7XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKF9pbmRleGVzLCBpbmRleGVzKTtcbiAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIEFuIGluZGV4IHRoYXQgdXNlcyB0aGUgdmFsdWUgb2YgYW4gZW50aXR5J3MgZmllbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkSW5kZXg8QSBleHRlbmRzIEVudGl0eSwgUCBleHRlbmRzIGtleW9mIEE+KFxuICBwcm9wTmFtZTogUCxcbiAgY29tcGFyYXRvcjogc29ydGVkTWFwLkNvbXBhcmF0b3I8QVtQXT4sXG4pOiBFbnRpdHlJbmRleDxBLCBBW1BdPiB7XG4gIHJldHVybiBjYWxjdWxhdGVkSW5kZXgoKHgpID0+IHhbcHJvcE5hbWVdLCBjb21wYXJhdG9yKTtcbn1cblxuLyoqXG4gKiBBbiBpbmRleCB0aGF0IGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gYSBmdW5jdGlvbiBhcHBsaWVkIHRvIGFuIGVudGl0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlZEluZGV4PEEgZXh0ZW5kcyBFbnRpdHksIEI+KGZuOiAoeDogQSkgPT4gQiwgY29tcGFyYXRvcjogc29ydGVkTWFwLkNvbXBhcmF0b3I8Qj4pIHtcbiAgY29uc3QgaW5kZXg6IFNvcnRlZE11bHRpTWFwPEIsIHN0cmluZz4gPSBbXTtcbiAgcmV0dXJuIHtcbiAgICBhZGQ6ICh4OiBBKSA9PiBzb3J0ZWRNYXAuYWRkKGluZGV4LCBjb21wYXJhdG9yLCBmbih4KSwgeC4kaWQpLFxuICAgIGxvb2t1cHM6IHtcbiAgICAgIGVxdWFsczogKHZhbHVlOiBCKSA9PiBzb3J0ZWRNYXAuZmluZEFsbChpbmRleCwgY29tcGFyYXRvciwgdmFsdWUpLFxuICAgIH0gYXMgYW55LFxuICAgIGluZGV4LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlDb2xsZWN0aW9uKHg6IHVua25vd24pOiB4IGlzIEVudGl0eUNvbGxlY3Rpb248YW55PiB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgISF4ICYmICh4IGFzIGFueSkudHlwZSA9PT0gJ2VudGl0aWVzJztcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQbGFpbk9iamVjdHM8QSBleHRlbmRzIG9iamVjdD4oeHM6IE1hcDxzdHJpbmcsIEE+KTogTWFwPHN0cmluZywgQT4ge1xuICBmb3IgKGNvbnN0IHggb2YgeHMudmFsdWVzKCkpIHtcbiAgICBpZiAoeC5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVudGl0aWVzIHNob3VsZCBiZSBwbGFpbi10ZXh0IG9iamVjdHMsIGdvdCBpbnN0YW5jZSBvZiAke3guY29uc3RydWN0b3J9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB4cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2U8RSBleHRlbmRzIEVudGl0eT4ge1xuICByZWFkb25seSAkcmVmOiBFWyckaWQnXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZjxFIGV4dGVuZHMgRW50aXR5Pih4OiBFIHwgc3RyaW5nKTogUmVmZXJlbmNlPEU+IHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnc3RyaW5nJyA/IHsgJHJlZjogeCB9IDogeyAkcmVmOiB4LiRpZCB9O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0d28gc3RyaW5ncyBhcmUgZXF1aXZhbGVudCBpbiB0aGUgY3VycmVudCBvciBzcGVjaWZpZWQgbG9jYWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nQ21wKGE6IHN0cmluZywgYjogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdHdvIG51bWJlcnMgYXJlIGVxdWl2YWxlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJDbXAoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gYSAtIGI7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBhcmF0b3IgdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnQgb2YgdHdvIHZhbHVlcywgdXNpbmcgYSBnaXZlbiBjb21wYXJhdG9yLCBidXQgYWxsb3dzIHZhbHVlcyB0byBiZSBvcHRpb25hbC5cbiAqXG4gKiBAcGFyYW0gZnJvbnRPcmRlciBJZiBgdHJ1ZWAsIHJldHVybnMgc28gdGhhdCB1bmRlZmluZWQgdmFsdWVzIGFyZSBvcmRlcmVkIGF0IHRoZSBmcm9udC4gSWYgYGZhbHNlYCwgdW5kZWZpbmVkIHZhbHVlcyBhcmUgb3JkZXJlZCBhdCB0aGUgYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbmFsQ21wPEE+KGNtcDogKGE6IEEsIGI6IEEpID0+IG51bWJlciwgZnJvbnRPcmRlciA9IHRydWUpIHtcbiAgcmV0dXJuIChhOiBBIHwgdW5kZWZpbmVkLCBiOiBBIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKGEgPT0gdW5kZWZpbmVkICYmIGIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJvbnRPcmRlciA/IC0xIDogMTtcbiAgICB9XG4gICAgaWYgKGEgIT0gdW5kZWZpbmVkICYmIGIgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJvbnRPcmRlciA/IDEgOiAtMTtcbiAgICB9XG4gICAgaWYgKGEgPT0gdW5kZWZpbmVkICYmIGIgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gY21wKGEhLCBiISk7XG4gIH07XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./entity\"), exports);\n__exportStar(require(\"./relationship\"), exports);\n__exportStar(require(\"./database\"), exports);\n__exportStar(require(\"./invariant\"), exports);\n__exportStar(require(\"./result\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QixpREFBK0I7QUFDL0IsNkNBQTJCO0FBQzNCLDhDQUE0QjtBQUM1QiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL3JlbGF0aW9uc2hpcCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFiYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW52YXJpYW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdWx0JztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.impliesU = exports.implies = exports.evolutionInvariant = void 0;\nfunction evolutionInvariant(description, pred) {\n // TODO: Find a way\n Array.isArray(description);\n Array.isArray(pred);\n}\nexports.evolutionInvariant = evolutionInvariant;\nfunction implies(x, y) {\n return !x || y;\n}\nexports.implies = implies;\n/**\n * Implies, but treats 'undefined' as 'false'\n */\nfunction impliesU(x, y) {\n return !x || !!y;\n}\nexports.impliesU = impliesU;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YXJpYW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludmFyaWFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxTQUFnQixrQkFBa0IsQ0FBSSxXQUFtQixFQUFFLElBQStCO0lBQ3hGLG1CQUFtQjtJQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUpELGdEQUlDO0FBRUQsU0FBZ0IsT0FBTyxDQUFDLENBQVUsRUFBRSxDQUFVO0lBQzVDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFGRCwwQkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLENBQXNCLEVBQUUsQ0FBc0I7SUFDckUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEludmFyaWFudCA9IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEV2b2x1dGlvbkludmFyaWFudFByZWQ8QT4gPSAocHJldmlvdXM6IEEsIGN1cnJlbnQ6IEEpID0+IGJvb2xlYW47XG5cbmV4cG9ydCBmdW5jdGlvbiBldm9sdXRpb25JbnZhcmlhbnQ8QT4oZGVzY3JpcHRpb246IHN0cmluZywgcHJlZDogRXZvbHV0aW9uSW52YXJpYW50UHJlZDxBPik6IEludmFyaWFudCB7XG4gIC8vIFRPRE86IEZpbmQgYSB3YXlcbiAgQXJyYXkuaXNBcnJheShkZXNjcmlwdGlvbik7XG4gIEFycmF5LmlzQXJyYXkocHJlZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbXBsaWVzKHg6IGJvb2xlYW4sIHk6IGJvb2xlYW4pIHtcbiAgcmV0dXJuICF4IHx8IHk7XG59XG5cbi8qKlxuICogSW1wbGllcywgYnV0IHRyZWF0cyAndW5kZWZpbmVkJyBhcyAnZmFsc2UnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbXBsaWVzVSh4OiBib29sZWFuIHwgdW5kZWZpbmVkLCB5OiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiAheCB8fCAhIXk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isRelationshipCollection = exports.relationshipCollection = exports.NO_RELATIONSHIPS = void 0;\nconst NO_RELATIONSHIPS = () => ({});\nexports.NO_RELATIONSHIPS = NO_RELATIONSHIPS;\nfunction relationshipCollection(fromField, toField) {\n const forward = new Map();\n const backward = new Map();\n function add(fromId, toId, attrs) {\n let f = forward.get(fromId);\n if (!f) {\n f = [];\n forward.set(fromId, f);\n }\n let b = backward.get(toId);\n if (!b) {\n b = [];\n backward.set(toId, b);\n }\n // Behaves like a set, only add new relationship if it is structurally distinct\n const forwardRel = { $id: toId, ...attrs };\n const forwardRelStr = JSON.stringify(forwardRel);\n const existingRelationship = f.find((x) => JSON.stringify(x) === forwardRelStr);\n if (!existingRelationship) {\n f.push(forwardRel);\n b.push({ $id: fromId, ...attrs });\n }\n }\n return {\n type: 'rel',\n fromColl: fromField,\n toColl: toField,\n forward,\n backward,\n add(from, to, attributes) {\n add(from.$id, to.$id, attributes);\n },\n dehydrate() {\n return {\n type: 'rel',\n forward: Object.fromEntries(forward.entries()),\n };\n },\n hydrateFrom(x) {\n forward.clear();\n backward.clear();\n for (const [fromId, targets] of Object.entries(x.forward)) {\n for (const target of targets) {\n add(fromId, target.$id, removeId(target));\n }\n }\n },\n };\n}\nexports.relationshipCollection = relationshipCollection;\nfunction isRelationshipCollection(x) {\n return typeof x === 'object' && !!x && x.type === 'rel';\n}\nexports.isRelationshipCollection = isRelationshipCollection;\nfunction removeId(x) {\n const ret = { ...x };\n delete ret.$id;\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zaGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlbGF0aW9uc2hpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2Qk8sTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQTlCLFFBQUEsZ0JBQWdCLG9CQUFjO0FBRTNDLFNBQWdCLHNCQUFzQixDQUNwQyxTQUF3QixFQUN4QixPQUFvQjtJQUVwQixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztJQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztJQUVwRCxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsSUFBWSxFQUFFLEtBQVU7UUFDbkQsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ04sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ04sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNQLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsK0VBQStFO1FBQy9FLE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLGFBQWEsQ0FBQyxDQUFDO1FBRWhGLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUs7UUFDWCxRQUFRLEVBQUUsU0FBUztRQUNuQixNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU87UUFDUCxRQUFRO1FBQ1IsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFVLEVBQUUsVUFBZTtZQUMzQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxTQUFTO1lBQ1AsT0FBTztnQkFDTCxJQUFJLEVBQUUsS0FBSztnQkFDWCxPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDL0MsQ0FBQztRQUNKLENBQUM7UUFDRCxXQUFXLENBQUMsQ0FBTTtZQUNoQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWpCLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUEwQixFQUFFO29CQUMvQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUJBQzNDO2FBQ0Y7UUFDSCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF4REQsd0RBd0RDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsQ0FBVTtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQVMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0FBQ25FLENBQUM7QUFGRCw0REFFQztBQUVELFNBQVMsUUFBUSxDQUFtQixDQUFJO0lBQ3RDLE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNyQixPQUFRLEdBQVcsQ0FBQyxHQUFHLENBQUM7SUFDeEIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlDb2xsZWN0aW9uIH0gZnJvbSAnLi9lbnRpdHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbGF0aW9uc2hpcDxGcm9tIGV4dGVuZHMgRW50aXR5LCBUbyBleHRlbmRzIEVudGl0eSwgQXR0cmlidXRlcyA9IHt9PiB7XG4gIHJlYWRvbmx5IGZyb206IEZyb207XG4gIHJlYWRvbmx5IHRvOiBUbztcbiAgcmVhZG9ubHkgYXR0cjogQXR0cmlidXRlcztcbn1cblxudHlwZSBGcm9tR2V0dGVyPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+ID0gKGlkOiBzdHJpbmcpID0+IFJbJ2Zyb20nXTtcbnR5cGUgVG9HZXR0ZXI8UiBleHRlbmRzIFJlbGF0aW9uc2hpcDxhbnksIGFueSwgYW55Pj4gPSAoaWQ6IHN0cmluZykgPT4gUlsndG8nXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ3JlbCc7XG4gIHJlYWRvbmx5IGZyb21Db2xsOiBGcm9tR2V0dGVyPFI+O1xuICByZWFkb25seSB0b0NvbGw6IFRvR2V0dGVyPFI+O1xuICByZWFkb25seSBmb3J3YXJkOiBNYXA8c3RyaW5nLCBSZWw8UlsnYXR0ciddPltdPjtcbiAgcmVhZG9ubHkgYmFja3dhcmQ6IE1hcDxzdHJpbmcsIFJlbDxSWydhdHRyJ10+W10+O1xuXG4gIGFkZChmcm9tOiBSWydmcm9tJ10sIHRvOiBSWyd0byddLCBhdHRyaWJ1dGVzOiBSWydhdHRyJ10pOiB2b2lkO1xuICBkZWh5ZHJhdGUoKTogYW55O1xuICBoeWRyYXRlRnJvbSh4OiBhbnkpOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBSZWw8QXR0cmlidXRlcz4gPSB7IHJlYWRvbmx5ICRpZDogc3RyaW5nIH0gJiBBdHRyaWJ1dGVzO1xuXG5leHBvcnQgdHlwZSBLZXlGb3JFbnRpdHlDb2xsZWN0aW9uPFMsIEUgZXh0ZW5kcyBFbnRpdHk+ID0ge1xuICBbSyBpbiBrZXlvZiBTXTogU1tLXSBleHRlbmRzIEVudGl0eUNvbGxlY3Rpb248RT4gPyBLIDogbmV2ZXI7XG59W2tleW9mIFNdO1xuXG5leHBvcnQgY29uc3QgTk9fUkVMQVRJT05TSElQUyA9ICgpID0+ICh7fSk7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxhdGlvbnNoaXBDb2xsZWN0aW9uPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+KFxuICBmcm9tRmllbGQ6IEZyb21HZXR0ZXI8Uj4sXG4gIHRvRmllbGQ6IFRvR2V0dGVyPFI+LFxuKTogUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxSPiB7XG4gIGNvbnN0IGZvcndhcmQgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8UmVsPGFueT4+PigpO1xuICBjb25zdCBiYWNrd2FyZCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxSZWw8YW55Pj4+KCk7XG5cbiAgZnVuY3Rpb24gYWRkKGZyb21JZDogc3RyaW5nLCB0b0lkOiBzdHJpbmcsIGF0dHJzOiBhbnkpIHtcbiAgICBsZXQgZiA9IGZvcndhcmQuZ2V0KGZyb21JZCk7XG4gICAgaWYgKCFmKSB7XG4gICAgICBmID0gW107XG4gICAgICBmb3J3YXJkLnNldChmcm9tSWQsIGYpO1xuICAgIH1cbiAgICBsZXQgYiA9IGJhY2t3YXJkLmdldCh0b0lkKTtcbiAgICBpZiAoIWIpIHtcbiAgICAgIGIgPSBbXTtcbiAgICAgIGJhY2t3YXJkLnNldCh0b0lkLCBiKTtcbiAgICB9XG5cbiAgICAvLyBCZWhhdmVzIGxpa2UgYSBzZXQsIG9ubHkgYWRkIG5ldyByZWxhdGlvbnNoaXAgaWYgaXQgaXMgc3RydWN0dXJhbGx5IGRpc3RpbmN0XG4gICAgY29uc3QgZm9yd2FyZFJlbCA9IHsgJGlkOiB0b0lkLCAuLi5hdHRycyB9O1xuICAgIGNvbnN0IGZvcndhcmRSZWxTdHIgPSBKU09OLnN0cmluZ2lmeShmb3J3YXJkUmVsKTtcbiAgICBjb25zdCBleGlzdGluZ1JlbGF0aW9uc2hpcCA9IGYuZmluZCgoeCkgPT4gSlNPTi5zdHJpbmdpZnkoeCkgPT09IGZvcndhcmRSZWxTdHIpO1xuXG4gICAgaWYgKCFleGlzdGluZ1JlbGF0aW9uc2hpcCkge1xuICAgICAgZi5wdXNoKGZvcndhcmRSZWwpO1xuICAgICAgYi5wdXNoKHsgJGlkOiBmcm9tSWQsIC4uLmF0dHJzIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3JlbCcsXG4gICAgZnJvbUNvbGw6IGZyb21GaWVsZCxcbiAgICB0b0NvbGw6IHRvRmllbGQsXG4gICAgZm9yd2FyZCxcbiAgICBiYWNrd2FyZCxcbiAgICBhZGQoZnJvbTogRW50aXR5LCB0bzogRW50aXR5LCBhdHRyaWJ1dGVzOiBhbnkpIHtcbiAgICAgIGFkZChmcm9tLiRpZCwgdG8uJGlkLCBhdHRyaWJ1dGVzKTtcbiAgICB9LFxuICAgIGRlaHlkcmF0ZSgpOiBhbnkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ3JlbCcsXG4gICAgICAgIGZvcndhcmQ6IE9iamVjdC5mcm9tRW50cmllcyhmb3J3YXJkLmVudHJpZXMoKSksXG4gICAgICB9O1xuICAgIH0sXG4gICAgaHlkcmF0ZUZyb20oeDogYW55KTogdm9pZCB7XG4gICAgICBmb3J3YXJkLmNsZWFyKCk7XG4gICAgICBiYWNrd2FyZC5jbGVhcigpO1xuXG4gICAgICBmb3IgKGNvbnN0IFtmcm9tSWQsIHRhcmdldHNdIG9mIE9iamVjdC5lbnRyaWVzKHguZm9yd2FyZCkpIHtcbiAgICAgICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0cyBhcyBBcnJheTxSZWw8YW55Pj4pIHtcbiAgICAgICAgICBhZGQoZnJvbUlkLCB0YXJnZXQuJGlkLCByZW1vdmVJZCh0YXJnZXQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlbGF0aW9uc2hpcENvbGxlY3Rpb24oeDogdW5rbm93bik6IHggaXMgUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxhbnk+IHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAhIXggJiYgKHggYXMgYW55KS50eXBlID09PSAncmVsJztcbn1cblxuZnVuY3Rpb24gcmVtb3ZlSWQ8QSBleHRlbmRzIG9iamVjdD4oeDogQSk6IE9taXQ8QSwgJyRpZCc+IHtcbiAgY29uc3QgcmV0ID0geyAuLi54IH07XG4gIGRlbGV0ZSAocmV0IGFzIGFueSkuJGlkO1xuICByZXR1cm4gcmV0O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.liftUndefined = exports.liftResult = exports.locateFailure = exports.chain = exports.using = exports.tryCatch = exports.assertSuccess = exports.errorFrom = exports.errorMessage = exports.unpackOr = exports.unpack = exports.isSuccess = exports.isFailure = exports.failure = void 0;\n// Ensures you must use `fail()` to construct an instance of type Failure\nconst errorSym = Symbol('error');\nfunction mkLocate(prefix) {\n const ret = (error) => failure(`${prefix}: ${error}`);\n ret.in = (prefix2) => mkLocate(`${prefix}: ${prefix2}`);\n ret.locate = locateFailure(prefix);\n return ret;\n}\nfunction failure(error) {\n return { [errorSym]: error };\n}\nexports.failure = failure;\nfailure.in = (prefix) => mkLocate(prefix);\nfailure.locate = (x) => x;\nfunction isFailure(x) {\n return !!x && typeof x === 'object' && x[errorSym];\n}\nexports.isFailure = isFailure;\nfunction isSuccess(x) {\n return !isFailure(x);\n}\nexports.isSuccess = isSuccess;\nfunction unpack(x) {\n if (isFailure(x)) {\n throw new Error(`unpack: ${x[errorSym]}`);\n }\n return x;\n}\nexports.unpack = unpack;\nfunction unpackOr(x, def) {\n return (isFailure(x) ? def : x);\n}\nexports.unpackOr = unpackOr;\nfunction errorMessage(x) {\n return x[errorSym];\n}\nexports.errorMessage = errorMessage;\nfunction errorFrom(x) {\n return new Error(errorMessage(x));\n}\nexports.errorFrom = errorFrom;\nfunction assertSuccess(x) {\n if (isFailure(x)) {\n throw errorFrom(x);\n }\n}\nexports.assertSuccess = assertSuccess;\nfunction tryCatch(failOrBlock, maybeBlock) {\n const block = (maybeBlock ?? failOrBlock);\n const f = (maybeBlock ? failOrBlock : failure);\n try {\n return block();\n }\n catch (e) {\n return f(`Error: ${e.message}\\n${e.stack}`);\n }\n}\nexports.tryCatch = tryCatch;\nfunction using(value, block) {\n if (isFailure(value)) {\n return value;\n }\n return block(value);\n}\nexports.using = using;\nfunction chain(value, ...fns) {\n for (const fn of fns) {\n if (isFailure(value)) {\n return value;\n }\n value = fn(value);\n }\n return value;\n}\nexports.chain = chain;\n/* eslint-enable prettier/prettier */\n/**\n * Make a function that will prepend a prefix to error messages\n *\n * This is one way to be specific about the location where errors originate, by prefixing\n * errors as the call stack unwinds.\n *\n * A different method is to pass in a modified failure function using `failure.in(...)`,\n * to build the error message as the call stack deepens.\n */\nfunction locateFailure(prefix) {\n return (x) => (isFailure(x) ? failure(`${prefix}: ${x[errorSym]}`) : x);\n}\nexports.locateFailure = locateFailure;\nfunction liftResult(xs) {\n const failures = Array.isArray(xs) ? xs.filter(isFailure) : Object.values(xs).filter(isFailure);\n if (failures.length > 0) {\n return failure(failures.map(errorMessage).join(', '));\n }\n return xs;\n}\nexports.liftResult = liftResult;\nfunction liftUndefined(valueOrFunction) {\n if (typeof valueOrFunction === 'function') {\n return (...args) => {\n const value = valueOrFunction(...args);\n return value !== undefined ? value : failure('value is undefined');\n };\n }\n return valueOrFunction !== undefined ? valueOrFunction : failure('value is undefined');\n}\nexports.liftUndefined = liftUndefined;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBeUU7QUFDekUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBYWpDLFNBQVMsUUFBUSxDQUFDLE1BQWM7SUFDOUIsTUFBTSxHQUFHLEdBQVMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUlELFNBQWdCLE9BQU8sQ0FBQyxLQUFhO0lBQ25DLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFGRCwwQkFFQztBQUNELE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsRCxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUksQ0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFeEMsU0FBZ0IsU0FBUyxDQUFJLENBQVk7SUFDdkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSyxDQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsU0FBUyxDQUFJLENBQVk7SUFDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFD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O0lBQ2hHLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDdkIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN2RDtJQUNELE9BQU8sRUFBUyxDQUFDO0FBQ25CLENBQUM7QUFSRCxnQ0FRQztBQU9ELFNBQWdCLGFBQWEsQ0FBQyxlQUFvQjtJQUNoRCxJQUFJLE9BQU8sZUFBZSxLQUFLLFVBQVUsRUFBRTtRQUN6QyxPQUFPLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRTtZQUN4QixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2QyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDO0tBQ0g7SUFDRCxPQUFPLGVBQWUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDekYsQ0FBQztBQVJELHNDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRW5zdXJlcyB5b3UgbXVzdCB1c2UgYGZhaWwoKWAgdG8gY29uc3RydWN0IGFuIGluc3RhbmNlIG9mIHR5cGUgRmFpbHVyZVxuY29uc3QgZXJyb3JTeW0gPSBTeW1ib2woJ2Vycm9yJyk7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdDxBPiA9IEEgfCBGYWlsdXJlO1xuZXhwb3J0IGludGVyZmFjZSBGYWlsdXJlIHtcbiAgcmVhZG9ubHkgW2Vycm9yU3ltXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZhaWwge1xuICAoZXJyb3I6IHN0cmluZyk6IEZhaWx1cmU7XG4gIGluKHByZWZpeDogc3RyaW5nKTogRmFpbDtcbiAgbG9jYXRlPEE+KHg6IFJlc3VsdDxBPik6IFJlc3VsdDxBPjtcbn1cblxuZnVuY3Rpb24gbWtMb2NhdGUocHJlZml4OiBzdHJpbmcpOiBGYWlsIHtcbiAgY29uc3QgcmV0OiBGYWlsID0gKGVycm9yOiBzdHJpbmcpID0+IGZhaWx1cmUoYCR7cHJlZml4fTogJHtlcnJvcn1gKTtcbiAgcmV0LmluID0gKHByZWZpeDI6IHN0cmluZykgPT4gbWtMb2NhdGUoYCR7cHJlZml4fTogJHtwcmVmaXgyfWApO1xuICByZXQubG9jYXRlID0gbG9jYXRlRmFpbHVyZShwcmVmaXgpO1xuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIGZhaWx1cmUgZXh0ZW5kcyBGYWlsIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWlsdXJlKGVycm9yOiBzdHJpbmcpOiBGYWlsdXJlIHtcbiAgcmV0dXJuIHsgW2Vycm9yU3ltXTogZXJyb3IgfTtcbn1cbmZhaWx1cmUuaW4gPSAocHJlZml4OiBzdHJpbmcpID0+IG1rTG9jYXRlKHByZWZpeCk7XG5mYWlsdXJlLmxvY2F0ZSA9IDxBPih4OiBSZXN1bHQ8QT4pID0+IHg7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZhaWx1cmU8QT4oeDogUmVzdWx0PEE+KTogeCBpcyBGYWlsdXJlIHtcbiAgcmV0dXJuICEheCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgKHggYXMgYW55KVtlcnJvclN5bV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1Y2Nlc3M8QT4oeDogUmVzdWx0PEE+KTogeCBpcyBBIHtcbiAgcmV0dXJuICFpc0ZhaWx1cmUoeCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnBhY2s8QT4oeDogUmVzdWx0PEE+KTogQSB7XG4gIGlmIChpc0ZhaWx1cmUoeCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVucGFjazogJHt4W2Vycm9yU3ltXX1gKTtcbiAgfVxuICByZXR1cm4geDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucGFja09yPEEsIEI+KHg6IFJlc3VsdDxBPiwgZGVmOiBCKTogQiBleHRlbmRzIEEgPyBBIDogQSB8IEIge1xuICByZXR1cm4gKGlzRmFpbHVyZSh4KSA/IGRlZiA6IHgpIGFzIGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVycm9yTWVzc2FnZSh4OiBGYWlsdXJlKTogc3RyaW5nIHtcbiAgcmV0dXJuIHhbZXJyb3JTeW1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JGcm9tKHg6IEZhaWx1cmUpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKHgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFN1Y2Nlc3M8QT4oeDogUmVzdWx0PEE+KTogYXNzZXJ0cyB4IGlzIEE7XG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U3VjY2Vzcyh4OiBGYWlsdXJlKTogbmV2ZXI7XG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U3VjY2Vzcyh4OiBGYWlsdXJlKTogdm9pZCB7XG4gIGlmIChpc0ZhaWx1cmUoeCkpIHtcbiAgICB0aHJvdyBlcnJvckZyb20oeCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoPEE+KGJsb2NrOiAoKSA9PiBBKTogUmVzdWx0PEE+O1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoPEE+KGZhaWxGbjogRmFpbCwgYmxvY2s6ICgpID0+IEEpOiBSZXN1bHQ8QT47XG5leHBvcnQgZnVuY3Rpb24gdHJ5Q2F0Y2g8QT4oZmFpbE9yQmxvY2s6IEZhaWwgfCAoKCkgPT4gQSksIG1heWJlQmxvY2s/OiAoKSA9PiBBKTogUmVzdWx0PEE+IHtcbiAgY29uc3QgYmxvY2s6ICgpID0+IEEgPSAobWF5YmVCbG9jayA/PyBmYWlsT3JCbG9jaykgYXMgYW55O1xuICBjb25zdCBmOiBGYWlsID0gKG1heWJlQmxvY2sgPyBmYWlsT3JCbG9jayA6IGZhaWx1cmUpIGFzIGFueTtcblxuICB0cnkge1xuICAgIHJldHVybiBibG9jaygpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICByZXR1cm4gZihgRXJyb3I6ICR7ZS5tZXNzYWdlfVxcbiR7ZS5zdGFja31gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNpbmc8QSwgQj4odmFsdWU6IFJlc3VsdDxBPiwgYmxvY2s6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4pOiBSZXN1bHQ8Qj4ge1xuICBpZiAoaXNGYWlsdXJlKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gYmxvY2sodmFsdWUpO1xufVxuXG4vKipcbiAqIExpa2UgJ3VzaW5nJywgYnV0IGNhbiB0YWtlIGFueSBudW1iZXIgb2YgZnVuY3Rpb25zXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQj4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4pOiBSZXN1bHQ8Qj47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQiwgQz4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4sIGIxOiAoeDogQikgPT4gUmVzdWx0PEM+KTogUmVzdWx0PEM+O1xuZXhwb3J0IGZ1bmN0aW9uIGNoYWluPEEsIEIsIEMsIEQ+KHZhbHVlOiBSZXN1bHQ8QT4sIGIwOiAoeDogQSkgPT4gUmVzdWx0PEI+LCBiMTogKHg6IEIpID0+IFJlc3VsdDxDPiwgYjI6ICh4OiBDKSA9PiBSZXN1bHQ8RD4pOiBSZXN1bHQ8RD47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQiwgQywgRCwgRT4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4sIGIxOiAoeDogQikgPT4gUmVzdWx0PEM+LCBiMjogKHg6IEMpID0+IFJlc3VsdDxEPiwgYjM6ICh4OiBEKSA9PiBSZXN1bHQ8RT4pOiBSZXN1bHQ8RT47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQiwgQywgRCwgRSwgRj4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4sIGIxOiAoeDogQikgPT4gUmVzdWx0PEM+LCBiMjogKHg6IEMpID0+IFJlc3VsdDxEPiwgYjM6ICh4OiBEKSA9PiBSZXN1bHQ8RT4sIGI0OiAoeDogRSkgPT4gUmVzdWx0PEY+KTogUmVzdWx0PEY+O1xuZXhwb3J0IGZ1bmN0aW9uIGNoYWluPEEsIEIsIEMsIEQsIEUsIEYsIEc+KHZhbHVlOiBSZXN1bHQ8QT4sIGIwOiAoeDogQSkgPT4gUmVzdWx0PEI+LCBiMTogKHg6IEIpID0+IFJlc3VsdDxDPiwgYjI6ICh4OiBDKSA9PiBSZXN1bHQ8RD4sIGIzOiAoeDogRCkgPT4gUmVzdWx0PEU+LCBiNDogKHg6IEUpID0+IFJlc3VsdDxGPiwgYjU6ICh4OiBGKSA9PiBSZXN1bHQ8Rz4pOiBSZXN1bHQ8Rz47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW4odmFsdWU6IFJlc3VsdDxhbnk+LCAuLi5mbnM6IEFycmF5PCh4OiBhbnkpID0+IFJlc3VsdDxhbnk+Pik6IFJlc3VsdDxhbnk+IHtcbiAgZm9yIChjb25zdCBmbiBvZiBmbnMpIHtcbiAgICBpZiAoaXNGYWlsdXJlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICB2YWx1ZSA9IGZuKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG4vKiBlc2xpbnQtZW5hYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG5cbi8qKlxuICogTWFrZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBwcmVwZW5kIGEgcHJlZml4IHRvIGVycm9yIG1lc3NhZ2VzXG4gKlxuICogVGhpcyBpcyBvbmUgd2F5IHRvIGJlIHNwZWNpZmljIGFib3V0IHRoZSBsb2NhdGlvbiB3aGVyZSBlcnJvcnMgb3JpZ2luYXRlLCBieSBwcmVmaXhpbmdcbiAqIGVycm9ycyBhcyB0aGUgY2FsbCBzdGFjayB1bndpbmRzLlxuICpcbiAqIEEgZGlmZmVyZW50IG1ldGhvZCBpcyB0byBwYXNzIGluIGEgbW9kaWZpZWQgZmFpbHVyZSBmdW5jdGlvbiB1c2luZyBgZmFpbHVyZS5pbiguLi4pYCxcbiAqIHRvIGJ1aWxkIHRoZSBlcnJvciBtZXNzYWdlIGFzIHRoZSBjYWxsIHN0YWNrIGRlZXBlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhdGVGYWlsdXJlKHByZWZpeDogc3RyaW5nKSB7XG4gIHJldHVybiA8QT4oeDogUmVzdWx0PEE+KTogUmVzdWx0PEE+ID0+IChpc0ZhaWx1cmUoeCkgPyBmYWlsdXJlKGAke3ByZWZpeH06ICR7eFtlcnJvclN5bV19YCkgOiB4KTtcbn1cblxuZXhwb3J0IHR5cGUgRmFpbHVyZXMgPSBBcnJheTxGYWlsdXJlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxpZnRSZXN1bHQ8QT4oeHM6IFJlY29yZDxzdHJpbmcsIFJlc3VsdDxBPj4pOiBSZXN1bHQ8UmVjb3JkPHN0cmluZywgQT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGxpZnRSZXN1bHQ8QT4oeHM6IEFycmF5PFJlc3VsdDxBPj4pOiBSZXN1bHQ8QXJyYXk8QT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGxpZnRSZXN1bHQ8QT4oXG4gIHhzOiBSZWNvcmQ8c3RyaW5nLCBSZXN1bHQ8QT4+IHwgQXJyYXk8UmVzdWx0PEE+Pixcbik6IFJlc3VsdDxSZWNvcmQ8c3RyaW5nLCBBPj4gfCBSZXN1bHQ8QXJyYXk8QT4+IHtcbiAgY29uc3QgZmFpbHVyZXMgPSBBcnJheS5pc0FycmF5KHhzKSA/IHhzLmZpbHRlcihpc0ZhaWx1cmUpIDogT2JqZWN0LnZhbHVlcyh4cykuZmlsdGVyKGlzRmFpbHVyZSk7XG4gIGlmIChmYWlsdXJlcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGZhaWx1cmUoZmFpbHVyZXMubWFwKGVycm9yTWVzc2FnZSkuam9pbignLCAnKSk7XG4gIH1cbiAgcmV0dXJuIHhzIGFzIGFueTtcbn1cblxuLyoqXG4gKiBMaWZ0IGEgdmFsdWUgdGhhdCBjYW4gYmUgJ3VuZGVmaW5lZCcgdG8gYSByZXN1bHQsIG9yIGEgZnVuY3Rpb24gdGhhdCBjYW4gcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpZnRVbmRlZmluZWQ8QT4odjogQSB8IHVuZGVmaW5lZCk6IFJlc3VsdDxOb25OdWxsYWJsZTxBPj47XG5leHBvcnQgZnVuY3Rpb24gbGlmdFVuZGVmaW5lZDxBLCBGIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBBPih2OiBGKTogKHg6IFBhcmFtZXRlcnM8Rj4pID0+IFJlc3VsdDxOb25OdWxsYWJsZTxBPj47XG5leHBvcnQgZnVuY3Rpb24gbGlmdFVuZGVmaW5lZCh2YWx1ZU9yRnVuY3Rpb246IGFueSk6IGFueSB7XG4gIGlmICh0eXBlb2YgdmFsdWVPckZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZU9yRnVuY3Rpb24oLi4uYXJncyk7XG4gICAgICByZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogZmFpbHVyZSgndmFsdWUgaXMgdW5kZWZpbmVkJyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gdmFsdWVPckZ1bmN0aW9uICE9PSB1bmRlZmluZWQgPyB2YWx1ZU9yRnVuY3Rpb24gOiBmYWlsdXJlKCd2YWx1ZSBpcyB1bmRlZmluZWQnKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortedMap = void 0;\n/**\n * A sorted map that may contain the same key multiple times\n *\n * Stored as a sorted array of [key, value] pairs, using binary search to locate\n * entries.\n */\nvar sortedMap;\n(function (sortedMap) {\n function add(map, cmp, key, value) {\n const i = lowerBound(map, cmp, key);\n map.splice(i, 0, [key, value]);\n }\n sortedMap.add = add;\n function find(map, cmp, key) {\n const i = lowerBound(map, cmp, key);\n if (i === map.length) {\n return undefined;\n }\n const [foundKey, value] = map[i];\n return cmp(foundKey, key) === 0 ? value : undefined;\n }\n sortedMap.find = find;\n function findAll(map, cmp, key) {\n let i = lowerBound(map, cmp, key);\n const ret = [];\n while (i < map.length && cmp(map[i][0], key) === 0) {\n ret.push(map[i][1]);\n i += 1;\n }\n return ret;\n }\n sortedMap.findAll = findAll;\n /**\n * Return the index to the first element in the the sorted map\n *\n * @see https://en.cppreference.com/w/cpp/algorithm/lower_bound#Version_2\n */\n function lowerBound(map, cmp, key) {\n let first = 0;\n let count = map.length;\n while (count > 0) {\n let it = first;\n let step = Math.floor(count / 2);\n it += step;\n if (cmp(map[it][0], key) < 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n }\n})(sortedMap = exports.sortedMap || (exports.sortedMap = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVkLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zb3J0ZWQtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7OztHQUtHO0FBQ0gsSUFBaUIsU0FBUyxDQXNEekI7QUF0REQsV0FBaUIsU0FBUztJQUd4QixTQUFnQixHQUFHLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU0sRUFBRSxLQUFRO1FBQ3ZGLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFIZSxhQUFHLE1BR2xCLENBQUE7SUFFRCxTQUFnQixJQUFJLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU07UUFDOUUsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNwQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3RELENBQUM7SUFSZSxjQUFJLE9BUW5CLENBQUE7SUFFRCxTQUFnQixPQUFPLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU07UUFDakYsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFbEMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDUjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQVZlLGlCQUFPLFVBVXRCLENBQUE7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxVQUFVLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU07UUFDN0UsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUV2QixPQUFPLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQ2YsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakMsRUFBRSxJQUFJLElBQUksQ0FBQztZQUVYLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDYixLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQzthQUNuQjtpQkFBTTtnQkFDTCxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUMsRUF0RGdCLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBc0R6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNvcnRlZE11bHRpTWFwPEEsIEI+ID0gQXJyYXk8W0EsIEJdPjtcblxuLyoqXG4gKiBBIHNvcnRlZCBtYXAgdGhhdCBtYXkgY29udGFpbiB0aGUgc2FtZSBrZXkgbXVsdGlwbGUgdGltZXNcbiAqXG4gKiBTdG9yZWQgYXMgYSBzb3J0ZWQgYXJyYXkgb2YgW2tleSwgdmFsdWVdIHBhaXJzLCB1c2luZyBiaW5hcnkgc2VhcmNoIHRvIGxvY2F0ZVxuICogZW50cmllcy5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBzb3J0ZWRNYXAge1xuICBleHBvcnQgdHlwZSBDb21wYXJhdG9yPEE+ID0gKGE6IEEsIGI6IEEpID0+IG51bWJlcjtcblxuICBleHBvcnQgZnVuY3Rpb24gYWRkPEEsIEI+KG1hcDogU29ydGVkTXVsdGlNYXA8QSwgQj4sIGNtcDogQ29tcGFyYXRvcjxBPiwga2V5OiBBLCB2YWx1ZTogQikge1xuICAgIGNvbnN0IGkgPSBsb3dlckJvdW5kKG1hcCwgY21wLCBrZXkpO1xuICAgIG1hcC5zcGxpY2UoaSwgMCwgW2tleSwgdmFsdWVdKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBmaW5kPEEsIEI+KG1hcDogU29ydGVkTXVsdGlNYXA8QSwgQj4sIGNtcDogQ29tcGFyYXRvcjxBPiwga2V5OiBBKTogQiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaSA9IGxvd2VyQm91bmQobWFwLCBjbXAsIGtleSk7XG4gICAgaWYgKGkgPT09IG1hcC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgW2ZvdW5kS2V5LCB2YWx1ZV0gPSBtYXBbaV07XG4gICAgcmV0dXJuIGNtcChmb3VuZEtleSwga2V5KSA9PT0gMCA/IHZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbGw8QSwgQj4obWFwOiBTb3J0ZWRNdWx0aU1hcDxBLCBCPiwgY21wOiBDb21wYXJhdG9yPEE+LCBrZXk6IEEpOiBCW10ge1xuICAgIGxldCBpID0gbG93ZXJCb3VuZChtYXAsIGNtcCwga2V5KTtcblxuICAgIGNvbnN0IHJldCA9IFtdO1xuICAgIHdoaWxlIChpIDwgbWFwLmxlbmd0aCAmJiBjbXAobWFwW2ldWzBdLCBrZXkpID09PSAwKSB7XG4gICAgICByZXQucHVzaChtYXBbaV1bMV0pO1xuICAgICAgaSArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBpbmRleCB0byB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgdGhlIHNvcnRlZCBtYXBcbiAgICpcbiAgICogQHNlZSBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvYWxnb3JpdGhtL2xvd2VyX2JvdW5kI1ZlcnNpb25fMlxuICAgKi9cbiAgZnVuY3Rpb24gbG93ZXJCb3VuZDxBLCBCPihtYXA6IFNvcnRlZE11bHRpTWFwPEEsIEI+LCBjbXA6IENvbXBhcmF0b3I8QT4sIGtleTogQSk6IG51bWJlciB7XG4gICAgbGV0IGZpcnN0ID0gMDtcbiAgICBsZXQgY291bnQgPSBtYXAubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGNvdW50ID4gMCkge1xuICAgICAgbGV0IGl0ID0gZmlyc3Q7XG4gICAgICBsZXQgc3RlcCA9IE1hdGguZmxvb3IoY291bnQgLyAyKTtcbiAgICAgIGl0ICs9IHN0ZXA7XG5cbiAgICAgIGlmIChjbXAobWFwW2l0XVswXSwga2V5KSA8IDApIHtcbiAgICAgICAgZmlyc3QgPSArK2l0O1xuICAgICAgICBjb3VudCAtPSBzdGVwICsgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvdW50ID0gc3RlcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3Q7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n}\nfunction readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n }\n catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n}\nexports.readdir = readdir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n settings.fs.lstat(path, (lstatError, lstat) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat);\n return;\n }\n settings.fs.stat(path, (statError, stat) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat);\n return;\n }\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat);\n });\n });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n const lstat = settings.fs.lstatSync(path);\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat;\n }\n try {\n const stat = settings.fs.statSync(path);\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n return stat;\n }\n catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat;\n }\n throw error;\n }\n}\nexports.read = read;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n callback(null, entries);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => { },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit('error', error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n}\nexports.default = StreamProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n}\nexports.default = SyncProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit('end');\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error('The reader is already destroyed');\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on('entry', callback);\n }\n onError(callback) {\n this._emitter.once('error', callback);\n }\n onEnd(callback) {\n this._emitter.once('end', callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, undefined);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, undefined);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit('error', error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit('entry', entry);\n }\n}\nexports.default = AsyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n if (a === '') {\n return b;\n }\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n }\n catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n}\nexports.default = SyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, undefined);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n createTokenAuth: () => createTokenAuth\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/auth.js\nvar REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nvar REGEX_IS_INSTALLATION = /^ghs_/;\nvar REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token,\n tokenType\n };\n}\n\n// pkg/dist-src/with-authorization-prefix.js\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n\n// pkg/dist-src/hook.js\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(\n route,\n parameters\n );\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\n// pkg/dist-src/index.js\nvar createTokenAuth = function createTokenAuth2(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\n \"[@octokit/auth-token] Token passed to createTokenAuth is not a string\"\n );\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n createTokenAuth\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar index_exports = {};\n__export(index_exports, {\n Octokit: () => Octokit\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_universal_user_agent = require(\"universal-user-agent\");\nvar import_before_after_hook = require(\"before-after-hook\");\nvar import_request = require(\"@octokit/request\");\nvar import_graphql = require(\"@octokit/graphql\");\nvar import_auth_token = require(\"@octokit/auth-token\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"5.2.1\";\n\n// pkg/dist-src/index.js\nvar noop = () => {\n};\nvar consoleWarn = console.warn.bind(console);\nvar consoleError = console.error.bind(console);\nvar userAgentTrail = `octokit-core.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`;\nvar Octokit = class {\n static {\n this.VERSION = VERSION;\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(\n Object.assign(\n {},\n defaults,\n options,\n options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null\n )\n );\n }\n };\n return OctokitWithDefaults;\n }\n static {\n this.plugins = [];\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n const currentPlugins = this.plugins;\n const NewOctokit = class extends this {\n static {\n this.plugins = currentPlugins.concat(\n newPlugins.filter((plugin) => !currentPlugins.includes(plugin))\n );\n }\n };\n return NewOctokit;\n }\n constructor(options = {}) {\n const hook = new import_before_after_hook.Collection();\n const requestDefaults = {\n baseUrl: import_request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n };\n requestDefaults.headers[\"user-agent\"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = import_request.request.defaults(requestDefaults);\n this.graphql = (0, import_graphql.withCustomRequest)(this.request).defaults(requestDefaults);\n this.log = Object.assign(\n {\n debug: noop,\n info: noop,\n warn: consoleWarn,\n error: consoleError\n },\n options.log\n );\n this.hook = hook;\n if (!options.authStrategy) {\n if (!options.auth) {\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n const auth = (0, import_auth_token.createTokenAuth)(options.auth);\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(\n Object.assign(\n {\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n },\n options.auth\n )\n );\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n const classConstructor = this.constructor;\n for (let i = 0; i < classConstructor.plugins.length; ++i) {\n Object.assign(this, classConstructor.plugins[i](this, options));\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n Octokit\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n endpoint: () => endpoint\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/defaults.js\nvar import_universal_user_agent = require(\"universal-user-agent\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"9.0.6\";\n\n// pkg/dist-src/defaults.js\nvar userAgent = `octokit-endpoint.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`;\nvar DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\"\n }\n};\n\n// pkg/dist-src/util/lowercase-keys.js\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\n// pkg/dist-src/util/is-plain-object.js\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\n\n// pkg/dist-src/util/merge-deep.js\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n\n// pkg/dist-src/util/remove-undefined-properties.js\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === void 0) {\n delete obj[key];\n }\n }\n return obj;\n}\n\n// pkg/dist-src/merge.js\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n } else {\n options = Object.assign({}, route);\n }\n options.headers = lowercaseKeys(options.headers);\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n if (options.url === \"/graphql\") {\n if (defaults && defaults.mediaType.previews?.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(\n (preview) => !mergedOptions.mediaType.previews.includes(preview)\n ).concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, \"\"));\n }\n return mergedOptions;\n}\n\n// pkg/dist-src/util/add-query-parameters.js\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return url + separator + names.map((name) => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\n// pkg/dist-src/util/extract-url-variable-names.js\nvar urlVariableRegex = /\\{[^{}}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/(?:^\\W+)|(?:(? a.concat(b), []);\n}\n\n// pkg/dist-src/util/omit.js\nfunction omit(object, keysToOmit) {\n const result = { __proto__: null };\n for (const key of Object.keys(object)) {\n if (keysToOmit.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n return result;\n}\n\n// pkg/dist-src/util/url-template.js\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n }).join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== void 0 && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(\n encodeValue(operator, value, isKeyOperator(operator) ? key : \"\")\n );\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n result.push(\n encodeValue(operator, value2, isKeyOperator(operator) ? key : \"\")\n );\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n tmp.push(encodeValue(operator, value2));\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n template = template.replace(\n /\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g,\n function(_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function(variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n }\n );\n if (template === \"/\") {\n return template;\n } else {\n return template.replace(/\\/$/, \"\");\n }\n}\n\n// pkg/dist-src/parse.js\nfunction parse(options) {\n let method = options.method.toUpperCase();\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\"\n ]);\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n headers.accept = headers.accept.split(/,/).map(\n (format) => format.replace(\n /application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/,\n `application/vnd$1$2.${options.mediaType.format}`\n )\n ).join(\",\");\n }\n if (url.endsWith(\"/graphql\")) {\n if (options.mediaType.previews?.length) {\n const previewsFromAcceptHeader = headers.accept.match(/(? {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n }\n }\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n }\n }\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n return Object.assign(\n { method, url, headers },\n typeof body !== \"undefined\" ? { body } : null,\n options.request ? { request: options.request } : null\n );\n}\n\n// pkg/dist-src/endpoint-with-defaults.js\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS2 = merge(oldDefaults, newDefaults);\n const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2);\n return Object.assign(endpoint2, {\n DEFAULTS: DEFAULTS2,\n defaults: withDefaults.bind(null, DEFAULTS2),\n merge: merge.bind(null, DEFAULTS2),\n parse\n });\n}\n\n// pkg/dist-src/index.js\nvar endpoint = withDefaults(null, DEFAULTS);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n endpoint\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar index_exports = {};\n__export(index_exports, {\n GraphqlResponseError: () => GraphqlResponseError,\n graphql: () => graphql2,\n withCustomRequest: () => withCustomRequest\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_request3 = require(\"@octokit/request\");\nvar import_universal_user_agent = require(\"universal-user-agent\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"7.1.1\";\n\n// pkg/dist-src/with-defaults.js\nvar import_request2 = require(\"@octokit/request\");\n\n// pkg/dist-src/graphql.js\nvar import_request = require(\"@octokit/request\");\n\n// pkg/dist-src/error.js\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\n` + data.errors.map((e) => ` - ${e.message}`).join(\"\\n\");\n}\nvar GraphqlResponseError = class extends Error {\n constructor(request2, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request2;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\";\n this.errors = response.errors;\n this.data = response.data;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n};\n\n// pkg/dist-src/graphql.js\nvar NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\"\n];\nvar FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nvar GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request2, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(\n new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`)\n );\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(\n new Error(\n `[@octokit/graphql] \"${key}\" cannot be used as variable name`\n )\n );\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(\n parsedOptions\n ).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request2(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlResponseError(\n requestOptions,\n headers,\n response.data\n );\n }\n return response.data.data;\n });\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(request2, newDefaults) {\n const newRequest = request2.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: newRequest.endpoint\n });\n}\n\n// pkg/dist-src/index.js\nvar graphql2 = withDefaults(import_request3.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n GraphqlResponseError,\n graphql,\n withCustomRequest\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n composePaginateRest: () => composePaginateRest,\n isPaginatingEndpoint: () => isPaginatingEndpoint,\n paginateRest: () => paginateRest,\n paginatingEndpoints: () => paginatingEndpoints\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/version.js\nvar VERSION = \"9.2.2\";\n\n// pkg/dist-src/normalize-paginated-list-response.js\nfunction normalizePaginatedListResponse(response) {\n if (!response.data) {\n return {\n ...response,\n data: []\n };\n }\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n\n// pkg/dist-src/iterator.js\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n try {\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n url = ((normalizedResponse.headers.link || \"\").match(\n /<([^<>]+)>;\\s*rel=\"next\"/\n ) || [])[1];\n return { value: normalizedResponse };\n } catch (error) {\n if (error.status !== 409)\n throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n })\n };\n}\n\n// pkg/dist-src/paginate.js\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = void 0;\n }\n return gather(\n octokit,\n [],\n iterator(octokit, route, parameters)[Symbol.asyncIterator](),\n mapFn\n );\n}\nfunction gather(octokit, results, iterator2, mapFn) {\n return iterator2.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(\n mapFn ? mapFn(result.value, done) : result.value.data\n );\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator2, mapFn);\n });\n}\n\n// pkg/dist-src/compose-paginate.js\nvar composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\n// pkg/dist-src/generated/paginating-endpoints.js\nvar paginatingEndpoints = [\n \"GET /advisories\",\n \"GET /app/hook/deliveries\",\n \"GET /app/installation-requests\",\n \"GET /app/installations\",\n \"GET /assignments/{assignment_id}/accepted_assignments\",\n \"GET /classrooms\",\n \"GET /classrooms/{classroom_id}/assignments\",\n \"GET /enterprises/{enterprise}/dependabot/alerts\",\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /licenses\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/cache/usage-by-repository\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/actions/variables\",\n \"GET /orgs/{org}/actions/variables/{name}/repositories\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/code-scanning/alerts\",\n \"GET /orgs/{org}/codespaces\",\n \"GET /orgs/{org}/codespaces/secrets\",\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/copilot/billing/seats\",\n \"GET /orgs/{org}/dependabot/alerts\",\n \"GET /orgs/{org}/dependabot/secrets\",\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/members/{username}/codespaces\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/organization-roles/{role_id}/teams\",\n \"GET /orgs/{org}/organization-roles/{role_id}/users\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/packages\",\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n \"GET /orgs/{org}/personal-access-token-requests\",\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\",\n \"GET /orgs/{org}/personal-access-tokens\",\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/properties/values\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/rulesets\",\n \"GET /orgs/{org}/rulesets/rule-suites\",\n \"GET /orgs/{org}/secret-scanning/alerts\",\n \"GET /orgs/{org}/security-advisories\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/caches\",\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\",\n \"GET /repos/{owner}/{repo}/actions/organization-variables\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/variables\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/activity\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/codespaces\",\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\",\n \"GET /repos/{owner}/{repo}/codespaces/secrets\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/status\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/dependabot/alerts\",\n \"GET /repos/{owner}/{repo}/dependabot/secrets\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/environments\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\",\n \"GET /repos/{owner}/{repo}/rules/branches/{branch}\",\n \"GET /repos/{owner}/{repo}/rulesets\",\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\",\n \"GET /repos/{owner}/{repo}/security-advisories\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repos/{owner}/{repo}/topics\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/codespaces\",\n \"GET /user/codespaces/secrets\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/packages\",\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/social_accounts\",\n \"GET /user/ssh_signing_keys\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/packages\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/social_accounts\",\n \"GET /users/{username}/ssh_signing_keys\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\"\n];\n\n// pkg/dist-src/paginating-endpoints.js\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n// pkg/dist-src/index.js\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n composePaginateRest,\n isPaginatingEndpoint,\n paginateRest,\n paginatingEndpoints\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n legacyRestEndpointMethods: () => legacyRestEndpointMethods,\n restEndpointMethods: () => restEndpointMethods\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/version.js\nvar VERSION = \"10.4.1\";\n\n// pkg/dist-src/generated/endpoints.js\nvar Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\n \"POST /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n addCustomLabelsToSelfHostedRunnerForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n approveWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"\n ],\n createEnvironmentVariable: [\n \"POST /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n createOrgVariable: [\"POST /orgs/{org}/actions/variables\"],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\"\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\"\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\"\n ],\n createRepoVariable: [\"POST /repos/{owner}/{repo}/actions/variables\"],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"\n ],\n deleteActionsCacheById: [\n \"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"\n ],\n deleteActionsCacheByKey: [\n \"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n deleteEnvironmentVariable: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteOrgVariable: [\"DELETE /orgs/{org}/actions/variables/{name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n deleteRepoVariable: [\n \"DELETE /repos/{owner}/{repo}/actions/variables/{name}\"\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\"\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"\n ],\n downloadWorkflowRunAttemptLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"\n ],\n forceCancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel\"\n ],\n generateRunnerJitconfigForOrg: [\n \"POST /orgs/{org}/actions/runners/generate-jitconfig\"\n ],\n generateRunnerJitconfigForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig\"\n ],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\n \"GET /orgs/{org}/actions/cache/usage-by-repository\"\n ],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\"\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getCustomOidcSubClaimForRepo: [\n \"GET /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n getEnvironmentVariable: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/workflow\"\n ],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\"\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\"\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getOrgVariable: [\"GET /orgs/{org}/actions/variables/{name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] }\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getRepoVariable: [\"GET /repos/{owner}/{repo}/actions/variables/{name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"\n ],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"\n ],\n listEnvironmentVariables: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"\n ],\n listJobsForWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"\n ],\n listLabelsForSelfHostedRunnerForOrg: [\n \"GET /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n listLabelsForSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listOrgVariables: [\"GET /orgs/{org}/actions/variables\"],\n listRepoOrganizationSecrets: [\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\"\n ],\n listRepoOrganizationVariables: [\n \"GET /repos/{owner}/{repo}/actions/organization-variables\"\n ],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoVariables: [\"GET /repos/{owner}/{repo}/actions/variables\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\"\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n listSelectedReposForOrgVariable: [\n \"GET /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\"\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"\n ],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgVariable: [\n \"DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n reviewCustomGatesForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule\"\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\"\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n setCustomLabelsForSelfHostedRunnerForOrg: [\n \"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n setCustomLabelsForSelfHostedRunnerForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n setCustomOidcSubClaimForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/workflow\"\n ],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\"\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\"\n ],\n setWorkflowAccessToRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n updateEnvironmentVariable: [\n \"PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n updateOrgVariable: [\"PATCH /orgs/{org}/actions/variables/{name}\"],\n updateRepoVariable: [\n \"PATCH /repos/{owner}/{repo}/actions/variables/{name}\"\n ]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\"\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\"\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\"\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\"\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\"\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsDone: [\"DELETE /notifications/threads/{thread_id}\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\"\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"] }\n ],\n addRepoToInstallationForAuthenticatedUser: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\"\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\"\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\"\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\"\n ],\n listInstallationRequestsForAuthenticatedApp: [\n \"GET /app/installation-requests\"\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\"\n ],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\n \"POST /app/hook/deliveries/{delivery_id}/attempts\"\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"] }\n ],\n removeRepoFromInstallationForAuthenticatedUser: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\"\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\"\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\"\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\"\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\"\n ]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\n \"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"\n ],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } }\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"\n ],\n getCodeqlDatabase: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}\"\n ],\n getDefaultSetup: [\"GET /repos/{owner}/{repo}/code-scanning/default-setup\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n {},\n { renamed: [\"codeScanning\", \"listAlertInstances\"] }\n ],\n listCodeqlDatabases: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases\"\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"\n ],\n updateDefaultSetup: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/default-setup\"\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n checkPermissionsForDevcontainer: [\n \"GET /repos/{owner}/{repo}/codespaces/permissions_check\"\n ],\n codespaceMachinesForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/machines\"\n ],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}\"\n ],\n createWithPrForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"\n ],\n createWithRepoForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/codespaces\"\n ],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\n \"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/codespaces/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n deleteSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}\"\n ],\n exportForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/exports\"\n ],\n getCodespacesForUserInOrg: [\n \"GET /orgs/{org}/members/{username}/codespaces\"\n ],\n getExportDetailsForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/exports/{export_id}\"\n ],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/codespaces/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/codespaces/secrets/{secret_name}\"],\n getPublicKeyForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/public-key\"\n ],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n getSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}\"\n ],\n listDevcontainersInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\"\n ],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\n \"GET /orgs/{org}/codespaces\",\n {},\n { renamedParameters: { org_id: \"org\" } }\n ],\n listInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/codespaces/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n preFlightWithRepoForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/new\"\n ],\n publishForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/publish\"\n ],\n removeRepositoryForSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n repoMachinesForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/machines\"\n ],\n setRepositoriesForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\n \"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"\n ],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n copilot: {\n addCopilotSeatsForTeams: [\n \"POST /orgs/{org}/copilot/billing/selected_teams\"\n ],\n addCopilotSeatsForUsers: [\n \"POST /orgs/{org}/copilot/billing/selected_users\"\n ],\n cancelCopilotSeatAssignmentForTeams: [\n \"DELETE /orgs/{org}/copilot/billing/selected_teams\"\n ],\n cancelCopilotSeatAssignmentForUsers: [\n \"DELETE /orgs/{org}/copilot/billing/selected_users\"\n ],\n getCopilotOrganizationDetails: [\"GET /orgs/{org}/copilot/billing\"],\n getCopilotSeatDetailsForUser: [\n \"GET /orgs/{org}/members/{username}/copilot\"\n ],\n listCopilotSeats: [\"GET /orgs/{org}/copilot/billing/seats\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n getAlert: [\"GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/dependabot/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/dependabot/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/dependabot/alerts\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"\n ]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\n \"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"\n ],\n diffRange: [\n \"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"\n ],\n exportSbom: [\"GET /repos/{owner}/{repo}/dependency-graph/sbom\"]\n },\n emojis: { get: [\"GET /emojis\"] },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] }\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\"\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] }\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] }\n ]\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n checkUserCanBeAssignedToIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}\"\n ],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } }\n ]\n },\n meta: {\n get: [\"GET /meta\"],\n getAllVersions: [\"GET /versions\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\n \"DELETE /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import\"\n }\n ],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\"\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\"\n ],\n getCommitAuthors: [\n \"GET /repos/{owner}/{repo}/import/authors\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors\"\n }\n ],\n getImportStatus: [\n \"GET /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status\"\n }\n ],\n getLargeFiles: [\n \"GET /repos/{owner}/{repo}/import/large_files\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files\"\n }\n ],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/repositories\"\n ],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n {},\n { renamed: [\"migrations\", \"listReposForAuthenticatedUser\"] }\n ],\n mapCommitAuthor: [\n \"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\",\n {},\n {\n deprecated: \"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author\"\n }\n ],\n setLfsPreference: [\n \"PATCH /repos/{owner}/{repo}/import/lfs\",\n {},\n {\n deprecated: \"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference\"\n }\n ],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\n \"PUT /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import\"\n }\n ],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n updateImport: [\n \"PATCH /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import\"\n }\n ]\n },\n oidc: {\n getOidcCustomSubTemplateForOrg: [\n \"GET /orgs/{org}/actions/oidc/customization/sub\"\n ],\n updateOidcCustomSubTemplateForOrg: [\n \"PUT /orgs/{org}/actions/oidc/customization/sub\"\n ]\n },\n orgs: {\n addSecurityManagerTeam: [\n \"PUT /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n assignTeamToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n assignUserToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\"\n ],\n createCustomOrganizationRole: [\"POST /orgs/{org}/organization-roles\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createOrUpdateCustomProperties: [\"PATCH /orgs/{org}/properties/schema\"],\n createOrUpdateCustomPropertiesValuesForRepos: [\n \"PATCH /orgs/{org}/properties/values\"\n ],\n createOrUpdateCustomProperty: [\n \"PUT /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n delete: [\"DELETE /orgs/{org}\"],\n deleteCustomOrganizationRole: [\n \"DELETE /orgs/{org}/organization-roles/{role_id}\"\n ],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n enableOrDisableSecurityProductOnAllOrgRepos: [\n \"POST /orgs/{org}/{security_product}/{enablement}\"\n ],\n get: [\"GET /orgs/{org}\"],\n getAllCustomProperties: [\"GET /orgs/{org}/properties/schema\"],\n getCustomProperty: [\n \"GET /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getOrgRole: [\"GET /orgs/{org}/organization-roles/{role_id}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomPropertiesValuesForRepos: [\"GET /orgs/{org}/properties/values\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOrgRoleTeams: [\"GET /orgs/{org}/organization-roles/{role_id}/teams\"],\n listOrgRoleUsers: [\"GET /orgs/{org}/organization-roles/{role_id}/users\"],\n listOrgRoles: [\"GET /orgs/{org}/organization-roles\"],\n listOrganizationFineGrainedPermissions: [\n \"GET /orgs/{org}/organization-fine-grained-permissions\"\n ],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPatGrantRepositories: [\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\"\n ],\n listPatGrantRequestRepositories: [\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\"\n ],\n listPatGrantRequests: [\"GET /orgs/{org}/personal-access-token-requests\"],\n listPatGrants: [\"GET /orgs/{org}/personal-access-tokens\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listSecurityManagerTeams: [\"GET /orgs/{org}/security-managers\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n patchCustomOrganizationRole: [\n \"PATCH /orgs/{org}/organization-roles/{role_id}\"\n ],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeCustomProperty: [\n \"DELETE /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\"\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\"\n ],\n removeSecurityManagerTeam: [\n \"DELETE /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n reviewPatGrantRequest: [\n \"POST /orgs/{org}/personal-access-token-requests/{pat_request_id}\"\n ],\n reviewPatGrantRequestsInBulk: [\n \"POST /orgs/{org}/personal-access-token-requests\"\n ],\n revokeAllOrgRolesTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}\"\n ],\n revokeAllOrgRolesUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}\"\n ],\n revokeOrgRoleTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n revokeOrgRoleUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\"\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\"\n ],\n updatePatAccess: [\"POST /orgs/{org}/personal-access-tokens/{pat_id}\"],\n updatePatAccesses: [\"POST /orgs/{org}/personal-access-tokens\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\"\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n deletePackageForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}\"\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n {},\n { renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"] }\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n {},\n {\n renamed: [\n \"packages\",\n \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"\n ]\n }\n ],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\"\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\"\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\"\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n listDockerMigrationConflictingPackagesForAuthenticatedUser: [\n \"GET /user/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForOrganization: [\n \"GET /orgs/{org}/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForUser: [\n \"GET /users/{username}/docker/conflicts\"\n ],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\"\n ],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\"\n ],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ]\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n createForRelease: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForRelease: [\n \"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n listForRelease: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ]\n },\n repos: {\n acceptInvitation: [\n \"PATCH /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"] }\n ],\n acceptInvitationForAuthenticatedUser: [\n \"PATCH /user/repository_invitations/{invitation_id}\"\n ],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n cancelPagesDeployment: [\n \"POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel\"\n ],\n checkAutomatedSecurityFixes: [\n \"GET /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\n \"GET /repos/{owner}/{repo}/compare/{basehead}\"\n ],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentBranchPolicy: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n createDeploymentProtectionRule: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateCustomPropertiesValues: [\n \"PATCH /repos/{owner}/{repo}/properties/values\"\n ],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createOrgRuleset: [\"POST /orgs/{org}/rulesets\"],\n createPagesDeployment: [\"POST /repos/{owner}/{repo}/pages/deployments\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createRepoRuleset: [\"POST /repos/{owner}/{repo}/rulesets\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\"\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\n \"DELETE /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"] }\n ],\n declineInvitationForAuthenticatedUser: [\n \"DELETE /user/repository_invitations/{invitation_id}\"\n ],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"\n ],\n deleteDeploymentBranchPolicy: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n deleteOrgRuleset: [\"DELETE /orgs/{org}/rulesets/{ruleset_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n deleteRepoRuleset: [\"DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n deleteTagProtection: [\n \"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n disableDeploymentProtectionRule: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n disablePrivateVulnerabilityReporting: [\n \"DELETE /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] }\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n enablePrivateVulnerabilityReporting: [\n \"PUT /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n generateReleaseNotes: [\n \"POST /repos/{owner}/{repo}/releases/generate-notes\"\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n getAllDeploymentProtectionRules: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"\n ],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"\n ],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n getBranchRules: [\"GET /repos/{owner}/{repo}/rules/branches/{branch}\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getCustomDeploymentProtectionRule: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n getCustomPropertiesValues: [\"GET /repos/{owner}/{repo}/properties/values\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentBranchPolicy: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getOrgRuleSuite: [\"GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}\"],\n getOrgRuleSuites: [\"GET /orgs/{org}/rulesets/rule-suites\"],\n getOrgRuleset: [\"GET /orgs/{org}/rulesets/{ruleset_id}\"],\n getOrgRulesets: [\"GET /orgs/{org}/rulesets\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesDeployment: [\n \"GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}\"\n ],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getRepoRuleSuite: [\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}\"\n ],\n getRepoRuleSuites: [\"GET /repos/{owner}/{repo}/rulesets/rule-suites\"],\n getRepoRuleset: [\"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n getRepoRulesets: [\"GET /repos/{owner}/{repo}/rulesets\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n getWebhookDelivery: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n listActivities: [\"GET /repos/{owner}/{repo}/activity\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listCustomDeploymentRuleIntegrations: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\"\n ],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentBranchPolicies: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"\n ],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\"\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateDeploymentBranchPolicy: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n updateOrgRuleset: [\"PUT /orgs/{org}/rulesets/{ruleset_id}\"],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n updateRepoRuleset: [\"PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] }\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" }\n ]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ]\n },\n securityAdvisories: {\n createFork: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks\"\n ],\n createPrivateVulnerabilityReport: [\n \"POST /repos/{owner}/{repo}/security-advisories/reports\"\n ],\n createRepositoryAdvisory: [\n \"POST /repos/{owner}/{repo}/security-advisories\"\n ],\n createRepositoryAdvisoryCveRequest: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve\"\n ],\n getGlobalAdvisory: [\"GET /advisories/{ghsa_id}\"],\n getRepositoryAdvisory: [\n \"GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ],\n listGlobalAdvisories: [\"GET /advisories\"],\n listOrgRepositoryAdvisories: [\"GET /orgs/{org}/security-advisories\"],\n listRepositoryAdvisories: [\"GET /repos/{owner}/{repo}/security-advisories\"],\n updateRepositoryAdvisory: [\n \"PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\"\n ],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\n \"POST /user/emails\",\n {},\n { renamed: [\"users\", \"addEmailForAuthenticatedUser\"] }\n ],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n addSocialAccountForAuthenticatedUser: [\"POST /user/social_accounts\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\n \"POST /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"] }\n ],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\n \"POST /user/keys\",\n {},\n { renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"] }\n ],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n createSshSigningKeyForAuthenticatedUser: [\"POST /user/ssh_signing_keys\"],\n deleteEmailForAuthenticated: [\n \"DELETE /user/emails\",\n {},\n { renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"] }\n ],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\n \"DELETE /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"] }\n ],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\n \"DELETE /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"] }\n ],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n deleteSocialAccountForAuthenticatedUser: [\"DELETE /user/social_accounts\"],\n deleteSshSigningKeyForAuthenticatedUser: [\n \"DELETE /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\n \"GET /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"] }\n ],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\n \"GET /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"] }\n ],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n getSshSigningKeyForAuthenticatedUser: [\n \"GET /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\n \"GET /user/blocks\",\n {},\n { renamed: [\"users\", \"listBlockedByAuthenticatedUser\"] }\n ],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\n \"GET /user/emails\",\n {},\n { renamed: [\"users\", \"listEmailsForAuthenticatedUser\"] }\n ],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\n \"GET /user/following\",\n {},\n { renamed: [\"users\", \"listFollowedByAuthenticatedUser\"] }\n ],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\n \"GET /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"] }\n ],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\n \"GET /user/public_emails\",\n {},\n { renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"] }\n ],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\n \"GET /user/keys\",\n {},\n { renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"] }\n ],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n listSocialAccountsForAuthenticatedUser: [\"GET /user/social_accounts\"],\n listSocialAccountsForUser: [\"GET /users/{username}/social_accounts\"],\n listSshSigningKeysForAuthenticatedUser: [\"GET /user/ssh_signing_keys\"],\n listSshSigningKeysForUser: [\"GET /users/{username}/ssh_signing_keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\n \"PATCH /user/email/visibility\",\n {},\n { renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"] }\n ],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\n \"PATCH /user/email/visibility\"\n ],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\nvar endpoints_default = Endpoints;\n\n// pkg/dist-src/endpoints-to-methods.js\nvar endpointMethodsMap = /* @__PURE__ */ new Map();\nfor (const [scope, endpoints] of Object.entries(endpoints_default)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign(\n {\n method,\n url\n },\n defaults\n );\n if (!endpointMethodsMap.has(scope)) {\n endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());\n }\n endpointMethodsMap.get(scope).set(methodName, {\n scope,\n methodName,\n endpointDefaults,\n decorations\n });\n }\n}\nvar handler = {\n has({ scope }, methodName) {\n return endpointMethodsMap.get(scope).has(methodName);\n },\n getOwnPropertyDescriptor(target, methodName) {\n return {\n value: this.get(target, methodName),\n // ensures method is in the cache\n configurable: true,\n writable: true,\n enumerable: true\n };\n },\n defineProperty(target, methodName, descriptor) {\n Object.defineProperty(target.cache, methodName, descriptor);\n return true;\n },\n deleteProperty(target, methodName) {\n delete target.cache[methodName];\n return true;\n },\n ownKeys({ scope }) {\n return [...endpointMethodsMap.get(scope).keys()];\n },\n set(target, methodName, value) {\n return target.cache[methodName] = value;\n },\n get({ octokit, scope, cache }, methodName) {\n if (cache[methodName]) {\n return cache[methodName];\n }\n const method = endpointMethodsMap.get(scope).get(methodName);\n if (!method) {\n return void 0;\n }\n const { endpointDefaults, decorations } = method;\n if (decorations) {\n cache[methodName] = decorate(\n octokit,\n scope,\n methodName,\n endpointDefaults,\n decorations\n );\n } else {\n cache[methodName] = octokit.request.defaults(endpointDefaults);\n }\n return cache[methodName];\n }\n};\nfunction endpointsToMethods(octokit) {\n const newMethods = {};\n for (const scope of endpointMethodsMap.keys()) {\n newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n function withDecorations(...args) {\n let options = requestWithDefaults.endpoint.merge(...args);\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: void 0\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(\n `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`\n );\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n const options2 = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(\n decorations.renamedParameters\n )) {\n if (name in options2) {\n octokit.log.warn(\n `\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`\n );\n if (!(alias in options2)) {\n options2[alias] = options2[name];\n }\n delete options2[name];\n }\n }\n return requestWithDefaults(options2);\n }\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\n// pkg/dist-src/index.js\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n ...api,\n rest: api\n };\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n legacyRestEndpointMethods,\n restEndpointMethods\n});\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n RequestError: () => RequestError\n});\nmodule.exports = __toCommonJS(dist_src_exports);\nvar import_deprecation = require(\"deprecation\");\nvar import_once = __toESM(require(\"once\"));\nvar logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation));\nvar logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation));\nvar RequestError = class extends Error {\n constructor(message, statusCode, options) {\n super(message);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n }\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(\n /(? {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n request: () => request\n});\nmodule.exports = __toCommonJS(dist_src_exports);\nvar import_endpoint = require(\"@octokit/endpoint\");\nvar import_universal_user_agent = require(\"universal-user-agent\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"8.4.1\";\n\n// pkg/dist-src/is-plain-object.js\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\n\n// pkg/dist-src/fetch-wrapper.js\nvar import_request_error = require(\"@octokit/request-error\");\n\n// pkg/dist-src/get-buffer-response.js\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\n// pkg/dist-src/fetch-wrapper.js\nfunction fetchWrapper(requestOptions) {\n var _a, _b, _c, _d;\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n const parseSuccessResponseBody = ((_a = requestOptions.request) == null ? void 0 : _a.parseSuccessResponseBody) !== false;\n if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n let { fetch } = globalThis;\n if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) {\n fetch = requestOptions.request.fetch;\n }\n if (!fetch) {\n throw new Error(\n \"fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing\"\n );\n }\n return fetch(requestOptions.url, {\n method: requestOptions.method,\n body: requestOptions.body,\n redirect: (_c = requestOptions.request) == null ? void 0 : _c.redirect,\n headers: requestOptions.headers,\n signal: (_d = requestOptions.request) == null ? void 0 : _d.signal,\n // duplex must be set if request.body is ReadableStream or Async Iterables.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.\n ...requestOptions.body && { duplex: \"half\" }\n }).then(async (response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^<>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(\n `[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`\n );\n }\n if (status === 204 || status === 205) {\n return;\n }\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new import_request_error.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: void 0\n },\n request: requestOptions\n });\n }\n if (status === 304) {\n throw new import_request_error.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new import_request_error.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n return parseSuccessResponseBody ? await getResponseData(response) : response.body;\n }).then((data) => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch((error) => {\n if (error instanceof import_request_error.RequestError)\n throw error;\n else if (error.name === \"AbortError\")\n throw error;\n let message = error.message;\n if (error.name === \"TypeError\" && \"cause\" in error) {\n if (error.cause instanceof Error) {\n message = error.cause.message;\n } else if (typeof error.cause === \"string\") {\n message = error.cause;\n }\n }\n throw new import_request_error.RequestError(message, 500, {\n request: requestOptions\n });\n });\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json().catch(() => response.text()).catch(() => \"\");\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBufferResponse(response);\n}\nfunction toErrorMessage(data) {\n if (typeof data === \"string\")\n return data;\n let suffix;\n if (\"documentation_url\" in data) {\n suffix = ` - ${data.documentation_url}`;\n } else {\n suffix = \"\";\n }\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}${suffix}`;\n }\n return `${data.message}${suffix}`;\n }\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint2 = oldEndpoint.defaults(newDefaults);\n const newApi = function(route, parameters) {\n const endpointOptions = endpoint2.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint2.parse(endpointOptions));\n }\n const request2 = (route2, parameters2) => {\n return fetchWrapper(\n endpoint2.parse(endpoint2.merge(route2, parameters2))\n );\n };\n Object.assign(request2, {\n endpoint: endpoint2,\n defaults: withDefaults.bind(null, endpoint2)\n });\n return endpointOptions.request.hook(request2, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint: endpoint2,\n defaults: withDefaults.bind(null, endpoint2)\n });\n}\n\n// pkg/dist-src/index.js\nvar request = withDefaults(import_endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`\n }\n});\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n request\n});\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n AbortController: () => AbortController,\n AbortHandler: () => import_types.AbortHandler,\n AbortSignal: () => AbortSignal,\n IAbortController: () => import_types.AbortController,\n IAbortSignal: () => import_types.AbortSignal\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/AbortController.ts\n\n\n// src/AbortSignal.ts\nvar import_types = require(\"@smithy/types\");\nvar AbortSignal = class {\n constructor() {\n this.onabort = null;\n this._aborted = false;\n Object.defineProperty(this, \"_aborted\", {\n value: false,\n writable: true\n });\n }\n static {\n __name(this, \"AbortSignal\");\n }\n /**\n * Whether the associated operation has already been cancelled.\n */\n get aborted() {\n return this._aborted;\n }\n /**\n * @internal\n */\n abort() {\n this._aborted = true;\n if (this.onabort) {\n this.onabort(this);\n this.onabort = null;\n }\n }\n};\n\n// src/AbortController.ts\nvar AbortController = class {\n constructor() {\n this.signal = new AbortSignal();\n }\n static {\n __name(this, \"AbortController\");\n }\n abort() {\n this.signal.abort();\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n AbortController,\n AbortSignal\n});\n\n","'use strict';\n\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilEndpoints = require('@smithy/util-endpoints');\n\nconst ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nconst CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nconst DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nconst NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: false,\n};\nconst nodeDualstackConfigSelectors = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: undefined,\n};\n\nconst ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nconst CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nconst DEFAULT_USE_FIPS_ENDPOINT = false;\nconst NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: false,\n};\nconst nodeFipsConfigSelectors = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: undefined,\n};\n\nconst resolveCustomEndpointsConfig = (input) => {\n const { tls, endpoint, urlParser, useDualstackEndpoint } = input;\n return Object.assign(input, {\n tls: tls ?? true,\n endpoint: utilMiddleware.normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint),\n isCustomEndpoint: true,\n useDualstackEndpoint: utilMiddleware.normalizeProvider(useDualstackEndpoint ?? false),\n });\n};\n\nconst getEndpointFromRegion = async (input) => {\n const { tls = true } = input;\n const region = await input.region();\n const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n const useDualstackEndpoint = await input.useDualstackEndpoint();\n const useFipsEndpoint = await input.useFipsEndpoint();\n const { hostname } = (await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint })) ?? {};\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return input.urlParser(`${tls ? \"https:\" : \"http:\"}//${hostname}`);\n};\n\nconst resolveEndpointsConfig = (input) => {\n const useDualstackEndpoint = utilMiddleware.normalizeProvider(input.useDualstackEndpoint ?? false);\n const { endpoint, useFipsEndpoint, urlParser, tls } = input;\n return Object.assign(input, {\n tls: tls ?? true,\n endpoint: endpoint\n ? utilMiddleware.normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }),\n isCustomEndpoint: !!endpoint,\n useDualstackEndpoint,\n });\n};\n\nconst REGION_ENV_NAME = \"AWS_REGION\";\nconst REGION_INI_NAME = \"region\";\nconst NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[REGION_ENV_NAME],\n configFileSelector: (profile) => profile[REGION_INI_NAME],\n default: () => {\n throw new Error(\"Region is missing\");\n },\n};\nconst NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\n\nconst validRegions = new Set();\nconst checkRegion = (region, check = utilEndpoints.isValidHostLabel) => {\n if (!validRegions.has(region) && !check(region)) {\n if (region === \"*\") {\n console.warn(`@smithy/config-resolver WARN - Please use the caller region instead of \"*\". See \"sigv4a\" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.`);\n }\n else {\n throw new Error(`Region not accepted: region=\"${region}\" is not a valid hostname component.`);\n }\n }\n else {\n validRegions.add(region);\n }\n};\n\nconst isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n\nconst getRealRegion = (region) => isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n\nconst resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: async () => {\n const providedRegion = typeof region === \"function\" ? await region() : region;\n const realRegion = getRealRegion(providedRegion);\n checkRegion(realRegion);\n return realRegion;\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n });\n};\n\nconst getHostnameFromVariants = (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find(({ tags }) => useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\"))?.hostname;\n\nconst getResolvedHostname = (resolvedRegion, { regionHostname, partitionHostname }) => regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\n\nconst getResolvedPartition = (region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? \"aws\";\n\nconst getResolvedSigningRegion = (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => {\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n const regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n const regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\n\nconst getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash, }) => {\n const partition = getResolvedPartition(region, { partitionHash });\n const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region;\n const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint };\n const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions);\n const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions);\n const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname });\n if (hostname === undefined) {\n throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`);\n }\n const signingRegion = getResolvedSigningRegion(hostname, {\n signingRegion: regionHash[resolvedRegion]?.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint,\n });\n return {\n partition,\n signingService,\n hostname,\n ...(signingRegion && { signingRegion }),\n ...(regionHash[resolvedRegion]?.signingService && {\n signingService: regionHash[resolvedRegion].signingService,\n }),\n };\n};\n\nexports.CONFIG_USE_DUALSTACK_ENDPOINT = CONFIG_USE_DUALSTACK_ENDPOINT;\nexports.CONFIG_USE_FIPS_ENDPOINT = CONFIG_USE_FIPS_ENDPOINT;\nexports.DEFAULT_USE_DUALSTACK_ENDPOINT = DEFAULT_USE_DUALSTACK_ENDPOINT;\nexports.DEFAULT_USE_FIPS_ENDPOINT = DEFAULT_USE_FIPS_ENDPOINT;\nexports.ENV_USE_DUALSTACK_ENDPOINT = ENV_USE_DUALSTACK_ENDPOINT;\nexports.ENV_USE_FIPS_ENDPOINT = ENV_USE_FIPS_ENDPOINT;\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = NODE_REGION_CONFIG_OPTIONS;\nexports.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS;\nexports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS;\nexports.REGION_ENV_NAME = REGION_ENV_NAME;\nexports.REGION_INI_NAME = REGION_INI_NAME;\nexports.getRegionInfo = getRegionInfo;\nexports.nodeDualstackConfigSelectors = nodeDualstackConfigSelectors;\nexports.nodeFipsConfigSelectors = nodeFipsConfigSelectors;\nexports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;\nexports.resolveEndpointsConfig = resolveEndpointsConfig;\nexports.resolveRegionConfig = resolveRegionConfig;\n","'use strict';\n\nvar types = require('@smithy/types');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar protocols = require('@smithy/core/protocols');\n\nconst getSmithyContext = (context) => context[types.SMITHY_CONTEXT_KEY] || (context[types.SMITHY_CONTEXT_KEY] = {});\n\nconst resolveAuthOptions = (candidateAuthOptions, authSchemePreference) => {\n if (!authSchemePreference || authSchemePreference.length === 0) {\n return candidateAuthOptions;\n }\n const preferredAuthOptions = [];\n for (const preferredSchemeName of authSchemePreference) {\n for (const candidateAuthOption of candidateAuthOptions) {\n const candidateAuthSchemeName = candidateAuthOption.schemeId.split(\"#\")[1];\n if (candidateAuthSchemeName === preferredSchemeName) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n }\n for (const candidateAuthOption of candidateAuthOptions) {\n if (!preferredAuthOptions.find(({ schemeId }) => schemeId === candidateAuthOption.schemeId)) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n return preferredAuthOptions;\n};\n\nfunction convertHttpAuthSchemesToMap(httpAuthSchemes) {\n const map = new Map();\n for (const scheme of httpAuthSchemes) {\n map.set(scheme.schemeId, scheme);\n }\n return map;\n}\nconst httpAuthSchemeMiddleware = (config, mwOptions) => (next, context) => async (args) => {\n const options = config.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input));\n const authSchemePreference = config.authSchemePreference ? await config.authSchemePreference() : [];\n const resolvedOptions = resolveAuthOptions(options, authSchemePreference);\n const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes);\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const failureReasons = [];\n for (const option of resolvedOptions) {\n const scheme = authSchemes.get(option.schemeId);\n if (!scheme) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` was not enabled for this service.`);\n continue;\n }\n const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config));\n if (!identityProvider) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` did not have an IdentityProvider configured.`);\n continue;\n }\n const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {};\n option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties);\n option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties);\n smithyContext.selectedHttpAuthScheme = {\n httpAuthOption: option,\n identity: await identityProvider(option.identityProperties),\n signer: scheme.signer,\n };\n break;\n }\n if (!smithyContext.selectedHttpAuthScheme) {\n throw new Error(failureReasons.join(\"\\n\"));\n }\n return next(args);\n};\n\nconst httpAuthSchemeEndpointRuleSetMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"endpointV2Middleware\",\n};\nconst getHttpAuthSchemeEndpointRuleSetPlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeEndpointRuleSetMiddlewareOptions);\n },\n});\n\nconst httpAuthSchemeMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"serializerMiddleware\",\n};\nconst getHttpAuthSchemePlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeMiddlewareOptions);\n },\n});\n\nconst defaultErrorHandler = (signingProperties) => (error) => {\n throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nconst httpSigningMiddleware = (config) => (next, context) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const scheme = smithyContext.selectedHttpAuthScheme;\n if (!scheme) {\n throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n }\n const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n const output = await next({\n ...args,\n request: await signer.sign(args.request, identity, signingProperties),\n }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n return output;\n};\n\nconst httpSigningMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"HTTP_SIGNING\"],\n name: \"httpSigningMiddleware\",\n aliases: [\"apiKeyMiddleware\", \"tokenMiddleware\", \"awsAuthMiddleware\"],\n override: true,\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n};\nconst getHttpSigningPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpSigningMiddleware(), httpSigningMiddlewareOptions);\n },\n});\n\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n\nconst makePagedClientRequest = async (CommandCtor, client, input, withCommand = (_) => _, ...args) => {\n let command = new CommandCtor(input);\n command = withCommand(command) ?? command;\n return await client.send(command, ...args);\n};\nfunction createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) {\n return async function* paginateOperation(config, input, ...additionalArguments) {\n const _input = input;\n let token = config.startingToken ?? _input[inputTokenName];\n let hasNext = true;\n let page;\n while (hasNext) {\n _input[inputTokenName] = token;\n if (pageSizeTokenName) {\n _input[pageSizeTokenName] = _input[pageSizeTokenName] ?? config.pageSize;\n }\n if (config.client instanceof ClientCtor) {\n page = await makePagedClientRequest(CommandCtor, config.client, input, config.withCommand, ...additionalArguments);\n }\n else {\n throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`);\n }\n yield page;\n const prevToken = token;\n token = get(page, outputTokenName);\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n };\n}\nconst get = (fromObject, path) => {\n let cursor = fromObject;\n const pathComponents = path.split(\".\");\n for (const step of pathComponents) {\n if (!cursor || typeof cursor !== \"object\") {\n return undefined;\n }\n cursor = cursor[step];\n }\n return cursor;\n};\n\nfunction setFeature(context, feature, value) {\n if (!context.__smithy_context) {\n context.__smithy_context = {\n features: {},\n };\n }\n else if (!context.__smithy_context.features) {\n context.__smithy_context.features = {};\n }\n context.__smithy_context.features[feature] = value;\n}\n\nclass DefaultIdentityProviderConfig {\n authSchemes = new Map();\n constructor(config) {\n for (const key in config) {\n const value = config[key];\n if (value !== undefined) {\n this.authSchemes.set(key, value);\n }\n }\n }\n getIdentityProvider(schemeId) {\n return this.authSchemes.get(schemeId);\n }\n}\n\nclass HttpApiKeyAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n if (!signingProperties) {\n throw new Error(\"request could not be signed with `apiKey` since the `name` and `in` signer properties are missing\");\n }\n if (!signingProperties.name) {\n throw new Error(\"request could not be signed with `apiKey` since the `name` signer property is missing\");\n }\n if (!signingProperties.in) {\n throw new Error(\"request could not be signed with `apiKey` since the `in` signer property is missing\");\n }\n if (!identity.apiKey) {\n throw new Error(\"request could not be signed with `apiKey` since the `apiKey` is not defined\");\n }\n const clonedRequest = protocolHttp.HttpRequest.clone(httpRequest);\n if (signingProperties.in === types.HttpApiKeyAuthLocation.QUERY) {\n clonedRequest.query[signingProperties.name] = identity.apiKey;\n }\n else if (signingProperties.in === types.HttpApiKeyAuthLocation.HEADER) {\n clonedRequest.headers[signingProperties.name] = signingProperties.scheme\n ? `${signingProperties.scheme} ${identity.apiKey}`\n : identity.apiKey;\n }\n else {\n throw new Error(\"request can only be signed with `apiKey` locations `query` or `header`, \" +\n \"but found: `\" +\n signingProperties.in +\n \"`\");\n }\n return clonedRequest;\n }\n}\n\nclass HttpBearerAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n const clonedRequest = protocolHttp.HttpRequest.clone(httpRequest);\n if (!identity.token) {\n throw new Error(\"request could not be signed with `token` since the `token` is not defined\");\n }\n clonedRequest.headers[\"Authorization\"] = `Bearer ${identity.token}`;\n return clonedRequest;\n }\n}\n\nclass NoAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n return httpRequest;\n }\n}\n\nconst createIsIdentityExpiredFunction = (expirationMs) => function isIdentityExpired(identity) {\n return doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs;\n};\nconst EXPIRATION_MS = 300_000;\nconst isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS);\nconst doesIdentityRequireRefresh = (identity) => identity.expiration !== undefined;\nconst memoizeIdentityProvider = (provider, isExpired, requiresRefresh) => {\n if (provider === undefined) {\n return undefined;\n }\n const normalizedProvider = typeof provider !== \"function\" ? async () => Promise.resolve(provider) : provider;\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async (options) => {\n if (!pending) {\n pending = normalizedProvider(options);\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider(options);\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider(options);\n }\n if (isConstant) {\n return resolved;\n }\n if (!requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider(options);\n return resolved;\n }\n return resolved;\n };\n};\n\nexports.requestBuilder = protocols.requestBuilder;\nexports.DefaultIdentityProviderConfig = DefaultIdentityProviderConfig;\nexports.EXPIRATION_MS = EXPIRATION_MS;\nexports.HttpApiKeyAuthSigner = HttpApiKeyAuthSigner;\nexports.HttpBearerAuthSigner = HttpBearerAuthSigner;\nexports.NoAuthSigner = NoAuthSigner;\nexports.createIsIdentityExpiredFunction = createIsIdentityExpiredFunction;\nexports.createPaginator = createPaginator;\nexports.doesIdentityRequireRefresh = doesIdentityRequireRefresh;\nexports.getHttpAuthSchemeEndpointRuleSetPlugin = getHttpAuthSchemeEndpointRuleSetPlugin;\nexports.getHttpAuthSchemePlugin = getHttpAuthSchemePlugin;\nexports.getHttpSigningPlugin = getHttpSigningPlugin;\nexports.getSmithyContext = getSmithyContext;\nexports.httpAuthSchemeEndpointRuleSetMiddlewareOptions = httpAuthSchemeEndpointRuleSetMiddlewareOptions;\nexports.httpAuthSchemeMiddleware = httpAuthSchemeMiddleware;\nexports.httpAuthSchemeMiddlewareOptions = httpAuthSchemeMiddlewareOptions;\nexports.httpSigningMiddleware = httpSigningMiddleware;\nexports.httpSigningMiddlewareOptions = httpSigningMiddlewareOptions;\nexports.isIdentityExpired = isIdentityExpired;\nexports.memoizeIdentityProvider = memoizeIdentityProvider;\nexports.normalizeProvider = normalizeProvider;\nexports.setFeature = setFeature;\n","'use strict';\n\nvar serde = require('@smithy/core/serde');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar protocols = require('@smithy/core/protocols');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilBodyLengthBrowser = require('@smithy/util-body-length-browser');\nvar schema = require('@smithy/core/schema');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilBase64 = require('@smithy/util-base64');\n\nconst majorUint64 = 0;\nconst majorNegativeInt64 = 1;\nconst majorUnstructuredByteString = 2;\nconst majorUtf8String = 3;\nconst majorList = 4;\nconst majorMap = 5;\nconst majorTag = 6;\nconst majorSpecial = 7;\nconst specialFalse = 20;\nconst specialTrue = 21;\nconst specialNull = 22;\nconst specialUndefined = 23;\nconst extendedOneByte = 24;\nconst extendedFloat16 = 25;\nconst extendedFloat32 = 26;\nconst extendedFloat64 = 27;\nconst minorIndefinite = 31;\nfunction alloc(size) {\n return typeof Buffer !== \"undefined\" ? Buffer.alloc(size) : new Uint8Array(size);\n}\nconst tagSymbol = Symbol(\"@smithy/core/cbor::tagSymbol\");\nfunction tag(data) {\n data[tagSymbol] = true;\n return data;\n}\n\nconst USE_TEXT_DECODER = typeof TextDecoder !== \"undefined\";\nconst USE_BUFFER$1 = typeof Buffer !== \"undefined\";\nlet payload = alloc(0);\nlet dataView$1 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);\nconst textDecoder = USE_TEXT_DECODER ? new TextDecoder() : null;\nlet _offset = 0;\nfunction setPayload(bytes) {\n payload = bytes;\n dataView$1 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);\n}\nfunction decode(at, to) {\n if (at >= to) {\n throw new Error(\"unexpected end of (decode) payload.\");\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n switch (major) {\n case majorUint64:\n case majorNegativeInt64:\n case majorTag:\n let unsignedInt;\n let offset;\n if (minor < 24) {\n unsignedInt = minor;\n offset = 1;\n }\n else {\n switch (minor) {\n case extendedOneByte:\n case extendedFloat16:\n case extendedFloat32:\n case extendedFloat64:\n const countLength = minorValueToArgumentLength[minor];\n const countOffset = (countLength + 1);\n offset = countOffset;\n if (to - at < countOffset) {\n throw new Error(`countLength ${countLength} greater than remaining buf len.`);\n }\n const countIndex = at + 1;\n if (countLength === 1) {\n unsignedInt = payload[countIndex];\n }\n else if (countLength === 2) {\n unsignedInt = dataView$1.getUint16(countIndex);\n }\n else if (countLength === 4) {\n unsignedInt = dataView$1.getUint32(countIndex);\n }\n else {\n unsignedInt = dataView$1.getBigUint64(countIndex);\n }\n break;\n default:\n throw new Error(`unexpected minor value ${minor}.`);\n }\n }\n if (major === majorUint64) {\n _offset = offset;\n return castBigInt(unsignedInt);\n }\n else if (major === majorNegativeInt64) {\n let negativeInt;\n if (typeof unsignedInt === \"bigint\") {\n negativeInt = BigInt(-1) - unsignedInt;\n }\n else {\n negativeInt = -1 - unsignedInt;\n }\n _offset = offset;\n return castBigInt(negativeInt);\n }\n else {\n if (minor === 2 || minor === 3) {\n const length = decodeCount(at + offset, to);\n let b = BigInt(0);\n const start = at + offset + _offset;\n for (let i = start; i < start + length; ++i) {\n b = (b << BigInt(8)) | BigInt(payload[i]);\n }\n _offset = offset + _offset + length;\n return minor === 3 ? -b - BigInt(1) : b;\n }\n else if (minor === 4) {\n const decimalFraction = decode(at + offset, to);\n const [exponent, mantissa] = decimalFraction;\n const normalizer = mantissa < 0 ? -1 : 1;\n const mantissaStr = \"0\".repeat(Math.abs(exponent) + 1) + String(BigInt(normalizer) * BigInt(mantissa));\n let numericString;\n const sign = mantissa < 0 ? \"-\" : \"\";\n numericString =\n exponent === 0\n ? mantissaStr\n : mantissaStr.slice(0, mantissaStr.length + exponent) + \".\" + mantissaStr.slice(exponent);\n numericString = numericString.replace(/^0+/g, \"\");\n if (numericString === \"\") {\n numericString = \"0\";\n }\n if (numericString[0] === \".\") {\n numericString = \"0\" + numericString;\n }\n numericString = sign + numericString;\n _offset = offset + _offset;\n return serde.nv(numericString);\n }\n else {\n const value = decode(at + offset, to);\n const valueOffset = _offset;\n _offset = offset + valueOffset;\n return tag({ tag: castBigInt(unsignedInt), value });\n }\n }\n case majorUtf8String:\n case majorMap:\n case majorList:\n case majorUnstructuredByteString:\n if (minor === minorIndefinite) {\n switch (major) {\n case majorUtf8String:\n return decodeUtf8StringIndefinite(at, to);\n case majorMap:\n return decodeMapIndefinite(at, to);\n case majorList:\n return decodeListIndefinite(at, to);\n case majorUnstructuredByteString:\n return decodeUnstructuredByteStringIndefinite(at, to);\n }\n }\n else {\n switch (major) {\n case majorUtf8String:\n return decodeUtf8String(at, to);\n case majorMap:\n return decodeMap(at, to);\n case majorList:\n return decodeList(at, to);\n case majorUnstructuredByteString:\n return decodeUnstructuredByteString(at, to);\n }\n }\n default:\n return decodeSpecial(at, to);\n }\n}\nfunction bytesToUtf8(bytes, at, to) {\n if (USE_BUFFER$1 && bytes.constructor?.name === \"Buffer\") {\n return bytes.toString(\"utf-8\", at, to);\n }\n if (textDecoder) {\n return textDecoder.decode(bytes.subarray(at, to));\n }\n return utilUtf8.toUtf8(bytes.subarray(at, to));\n}\nfunction demote(bigInteger) {\n const num = Number(bigInteger);\n if (num < Number.MIN_SAFE_INTEGER || Number.MAX_SAFE_INTEGER < num) {\n console.warn(new Error(`@smithy/core/cbor - truncating BigInt(${bigInteger}) to ${num} with loss of precision.`));\n }\n return num;\n}\nconst minorValueToArgumentLength = {\n [extendedOneByte]: 1,\n [extendedFloat16]: 2,\n [extendedFloat32]: 4,\n [extendedFloat64]: 8,\n};\nfunction bytesToFloat16(a, b) {\n const sign = a >> 7;\n const exponent = (a & 0b0111_1100) >> 2;\n const fraction = ((a & 0b0000_0011) << 8) | b;\n const scalar = sign === 0 ? 1 : -1;\n let exponentComponent;\n let summation;\n if (exponent === 0b00000) {\n if (fraction === 0b00000_00000) {\n return 0;\n }\n else {\n exponentComponent = Math.pow(2, 1 - 15);\n summation = 0;\n }\n }\n else if (exponent === 0b11111) {\n if (fraction === 0b00000_00000) {\n return scalar * Infinity;\n }\n else {\n return NaN;\n }\n }\n else {\n exponentComponent = Math.pow(2, exponent - 15);\n summation = 1;\n }\n summation += fraction / 1024;\n return scalar * (exponentComponent * summation);\n}\nfunction decodeCount(at, to) {\n const minor = payload[at] & 0b0001_1111;\n if (minor < 24) {\n _offset = 1;\n return minor;\n }\n if (minor === extendedOneByte ||\n minor === extendedFloat16 ||\n minor === extendedFloat32 ||\n minor === extendedFloat64) {\n const countLength = minorValueToArgumentLength[minor];\n _offset = (countLength + 1);\n if (to - at < _offset) {\n throw new Error(`countLength ${countLength} greater than remaining buf len.`);\n }\n const countIndex = at + 1;\n if (countLength === 1) {\n return payload[countIndex];\n }\n else if (countLength === 2) {\n return dataView$1.getUint16(countIndex);\n }\n else if (countLength === 4) {\n return dataView$1.getUint32(countIndex);\n }\n return demote(dataView$1.getBigUint64(countIndex));\n }\n throw new Error(`unexpected minor value ${minor}.`);\n}\nfunction decodeUtf8String(at, to) {\n const length = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n if (to - at < length) {\n throw new Error(`string len ${length} greater than remaining buf len.`);\n }\n const value = bytesToUtf8(payload, at, at + length);\n _offset = offset + length;\n return value;\n}\nfunction decodeUtf8StringIndefinite(at, to) {\n at += 1;\n const vector = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n const data = alloc(vector.length);\n data.set(vector, 0);\n _offset = at - base + 2;\n return bytesToUtf8(data, 0, data.length);\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} in indefinite string.`);\n }\n if (minor === minorIndefinite) {\n throw new Error(\"nested indefinite string.\");\n }\n const bytes = decodeUnstructuredByteString(at, to);\n const length = _offset;\n at += length;\n for (let i = 0; i < bytes.length; ++i) {\n vector.push(bytes[i]);\n }\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeUnstructuredByteString(at, to) {\n const length = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n if (to - at < length) {\n throw new Error(`unstructured byte string len ${length} greater than remaining buf len.`);\n }\n const value = payload.subarray(at, at + length);\n _offset = offset + length;\n return value;\n}\nfunction decodeUnstructuredByteStringIndefinite(at, to) {\n at += 1;\n const vector = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n const data = alloc(vector.length);\n data.set(vector, 0);\n _offset = at - base + 2;\n return data;\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n if (major !== majorUnstructuredByteString) {\n throw new Error(`unexpected major type ${major} in indefinite string.`);\n }\n if (minor === minorIndefinite) {\n throw new Error(\"nested indefinite string.\");\n }\n const bytes = decodeUnstructuredByteString(at, to);\n const length = _offset;\n at += length;\n for (let i = 0; i < bytes.length; ++i) {\n vector.push(bytes[i]);\n }\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeList(at, to) {\n const listDataLength = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n const base = at;\n const list = Array(listDataLength);\n for (let i = 0; i < listDataLength; ++i) {\n const item = decode(at, to);\n const itemOffset = _offset;\n list[i] = item;\n at += itemOffset;\n }\n _offset = offset + (at - base);\n return list;\n}\nfunction decodeListIndefinite(at, to) {\n at += 1;\n const list = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n _offset = at - base + 2;\n return list;\n }\n const item = decode(at, to);\n const n = _offset;\n at += n;\n list.push(item);\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeMap(at, to) {\n const mapDataLength = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n const base = at;\n const map = {};\n for (let i = 0; i < mapDataLength; ++i) {\n if (at >= to) {\n throw new Error(\"unexpected end of map payload.\");\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} for map key at index ${at}.`);\n }\n const key = decode(at, to);\n at += _offset;\n const value = decode(at, to);\n at += _offset;\n map[key] = value;\n }\n _offset = offset + (at - base);\n return map;\n}\nfunction decodeMapIndefinite(at, to) {\n at += 1;\n const base = at;\n const map = {};\n for (; at < to;) {\n if (at >= to) {\n throw new Error(\"unexpected end of map payload.\");\n }\n if (payload[at] === 0b1111_1111) {\n _offset = at - base + 2;\n return map;\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} for map key.`);\n }\n const key = decode(at, to);\n at += _offset;\n const value = decode(at, to);\n at += _offset;\n map[key] = value;\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeSpecial(at, to) {\n const minor = payload[at] & 0b0001_1111;\n switch (minor) {\n case specialTrue:\n case specialFalse:\n _offset = 1;\n return minor === specialTrue;\n case specialNull:\n _offset = 1;\n return null;\n case specialUndefined:\n _offset = 1;\n return null;\n case extendedFloat16:\n if (to - at < 3) {\n throw new Error(\"incomplete float16 at end of buf.\");\n }\n _offset = 3;\n return bytesToFloat16(payload[at + 1], payload[at + 2]);\n case extendedFloat32:\n if (to - at < 5) {\n throw new Error(\"incomplete float32 at end of buf.\");\n }\n _offset = 5;\n return dataView$1.getFloat32(at + 1);\n case extendedFloat64:\n if (to - at < 9) {\n throw new Error(\"incomplete float64 at end of buf.\");\n }\n _offset = 9;\n return dataView$1.getFloat64(at + 1);\n default:\n throw new Error(`unexpected minor value ${minor}.`);\n }\n}\nfunction castBigInt(bigInt) {\n if (typeof bigInt === \"number\") {\n return bigInt;\n }\n const num = Number(bigInt);\n if (Number.MIN_SAFE_INTEGER <= num && num <= Number.MAX_SAFE_INTEGER) {\n return num;\n }\n return bigInt;\n}\n\nconst USE_BUFFER = typeof Buffer !== \"undefined\";\nconst initialSize = 2048;\nlet data = alloc(initialSize);\nlet dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\nlet cursor = 0;\nfunction ensureSpace(bytes) {\n const remaining = data.byteLength - cursor;\n if (remaining < bytes) {\n if (cursor < 16_000_000) {\n resize(Math.max(data.byteLength * 4, data.byteLength + bytes));\n }\n else {\n resize(data.byteLength + bytes + 16_000_000);\n }\n }\n}\nfunction toUint8Array() {\n const out = alloc(cursor);\n out.set(data.subarray(0, cursor), 0);\n cursor = 0;\n return out;\n}\nfunction resize(size) {\n const old = data;\n data = alloc(size);\n if (old) {\n if (old.copy) {\n old.copy(data, 0, 0, old.byteLength);\n }\n else {\n data.set(old, 0);\n }\n }\n dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\n}\nfunction encodeHeader(major, value) {\n if (value < 24) {\n data[cursor++] = (major << 5) | value;\n }\n else if (value < 1 << 8) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = value;\n }\n else if (value < 1 << 16) {\n data[cursor++] = (major << 5) | extendedFloat16;\n dataView.setUint16(cursor, value);\n cursor += 2;\n }\n else if (value < 2 ** 32) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, value);\n cursor += 4;\n }\n else {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, typeof value === \"bigint\" ? value : BigInt(value));\n cursor += 8;\n }\n}\nfunction encode(_input) {\n const encodeStack = [_input];\n while (encodeStack.length) {\n const input = encodeStack.pop();\n ensureSpace(typeof input === \"string\" ? input.length * 4 : 64);\n if (typeof input === \"string\") {\n if (USE_BUFFER) {\n encodeHeader(majorUtf8String, Buffer.byteLength(input));\n cursor += data.write(input, cursor);\n }\n else {\n const bytes = utilUtf8.fromUtf8(input);\n encodeHeader(majorUtf8String, bytes.byteLength);\n data.set(bytes, cursor);\n cursor += bytes.byteLength;\n }\n continue;\n }\n else if (typeof input === \"number\") {\n if (Number.isInteger(input)) {\n const nonNegative = input >= 0;\n const major = nonNegative ? majorUint64 : majorNegativeInt64;\n const value = nonNegative ? input : -input - 1;\n if (value < 24) {\n data[cursor++] = (major << 5) | value;\n }\n else if (value < 256) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = value;\n }\n else if (value < 65536) {\n data[cursor++] = (major << 5) | extendedFloat16;\n data[cursor++] = value >> 8;\n data[cursor++] = value;\n }\n else if (value < 4294967296) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, value);\n cursor += 4;\n }\n else {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, BigInt(value));\n cursor += 8;\n }\n continue;\n }\n data[cursor++] = (majorSpecial << 5) | extendedFloat64;\n dataView.setFloat64(cursor, input);\n cursor += 8;\n continue;\n }\n else if (typeof input === \"bigint\") {\n const nonNegative = input >= 0;\n const major = nonNegative ? majorUint64 : majorNegativeInt64;\n const value = nonNegative ? input : -input - BigInt(1);\n const n = Number(value);\n if (n < 24) {\n data[cursor++] = (major << 5) | n;\n }\n else if (n < 256) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = n;\n }\n else if (n < 65536) {\n data[cursor++] = (major << 5) | extendedFloat16;\n data[cursor++] = n >> 8;\n data[cursor++] = n & 0b1111_1111;\n }\n else if (n < 4294967296) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, n);\n cursor += 4;\n }\n else if (value < BigInt(\"18446744073709551616\")) {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, value);\n cursor += 8;\n }\n else {\n const binaryBigInt = value.toString(2);\n const bigIntBytes = new Uint8Array(Math.ceil(binaryBigInt.length / 8));\n let b = value;\n let i = 0;\n while (bigIntBytes.byteLength - ++i >= 0) {\n bigIntBytes[bigIntBytes.byteLength - i] = Number(b & BigInt(255));\n b >>= BigInt(8);\n }\n ensureSpace(bigIntBytes.byteLength * 2);\n data[cursor++] = nonNegative ? 0b110_00010 : 0b110_00011;\n if (USE_BUFFER) {\n encodeHeader(majorUnstructuredByteString, Buffer.byteLength(bigIntBytes));\n }\n else {\n encodeHeader(majorUnstructuredByteString, bigIntBytes.byteLength);\n }\n data.set(bigIntBytes, cursor);\n cursor += bigIntBytes.byteLength;\n }\n continue;\n }\n else if (input === null) {\n data[cursor++] = (majorSpecial << 5) | specialNull;\n continue;\n }\n else if (typeof input === \"boolean\") {\n data[cursor++] = (majorSpecial << 5) | (input ? specialTrue : specialFalse);\n continue;\n }\n else if (typeof input === \"undefined\") {\n throw new Error(\"@smithy/core/cbor: client may not serialize undefined value.\");\n }\n else if (Array.isArray(input)) {\n for (let i = input.length - 1; i >= 0; --i) {\n encodeStack.push(input[i]);\n }\n encodeHeader(majorList, input.length);\n continue;\n }\n else if (typeof input.byteLength === \"number\") {\n ensureSpace(input.length * 2);\n encodeHeader(majorUnstructuredByteString, input.length);\n data.set(input, cursor);\n cursor += input.byteLength;\n continue;\n }\n else if (typeof input === \"object\") {\n if (input instanceof serde.NumericValue) {\n const decimalIndex = input.string.indexOf(\".\");\n const exponent = decimalIndex === -1 ? 0 : decimalIndex - input.string.length + 1;\n const mantissa = BigInt(input.string.replace(\".\", \"\"));\n data[cursor++] = 0b110_00100;\n encodeStack.push(mantissa);\n encodeStack.push(exponent);\n encodeHeader(majorList, 2);\n continue;\n }\n if (input[tagSymbol]) {\n if (\"tag\" in input && \"value\" in input) {\n encodeStack.push(input.value);\n encodeHeader(majorTag, input.tag);\n continue;\n }\n else {\n throw new Error(\"tag encountered with missing fields, need 'tag' and 'value', found: \" + JSON.stringify(input));\n }\n }\n const keys = Object.keys(input);\n for (let i = keys.length - 1; i >= 0; --i) {\n const key = keys[i];\n encodeStack.push(input[key]);\n encodeStack.push(key);\n }\n encodeHeader(majorMap, keys.length);\n continue;\n }\n throw new Error(`data type ${input?.constructor?.name ?? typeof input} not compatible for encoding.`);\n }\n}\n\nconst cbor = {\n deserialize(payload) {\n setPayload(payload);\n return decode(0, payload.length);\n },\n serialize(input) {\n try {\n encode(input);\n return toUint8Array();\n }\n catch (e) {\n toUint8Array();\n throw e;\n }\n },\n resizeEncodingBuffer(size) {\n resize(size);\n },\n};\n\nconst parseCborBody = (streamBody, context) => {\n return protocols.collectBody(streamBody, context).then(async (bytes) => {\n if (bytes.length) {\n try {\n return cbor.deserialize(bytes);\n }\n catch (e) {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: context.utf8Encoder(bytes),\n });\n throw e;\n }\n }\n return {};\n });\n};\nconst dateToTag = (date) => {\n return tag({\n tag: 1,\n value: date.getTime() / 1000,\n });\n};\nconst parseCborErrorBody = async (errorBody, context) => {\n const value = await parseCborBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadSmithyRpcV2CborErrorCode = (output, data) => {\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n let codeKey;\n for (const key in data) {\n if (key.toLowerCase() === \"code\") {\n codeKey = key;\n break;\n }\n }\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n};\nconst checkCborResponse = (response) => {\n if (String(response.headers[\"smithy-protocol\"]).toLowerCase() !== \"rpc-v2-cbor\") {\n throw new Error(\"Malformed RPCv2 CBOR response, status: \" + response.statusCode);\n }\n};\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const endpoint = await context.endpoint();\n const { hostname, protocol = \"https\", port, path: basePath } = endpoint;\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers: {\n ...headers,\n },\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n contents.headers[name] = endpoint.headers[name];\n }\n }\n if (body !== undefined) {\n contents.body = body;\n try {\n contents.headers[\"content-length\"] = String(utilBodyLengthBrowser.calculateBodyLength(body));\n }\n catch (e) { }\n }\n return new protocolHttp.HttpRequest(contents);\n};\n\nclass CborCodec extends protocols.SerdeContext {\n createSerializer() {\n const serializer = new CborShapeSerializer();\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new CborShapeDeserializer();\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\nclass CborShapeSerializer extends protocols.SerdeContext {\n value;\n write(schema, value) {\n this.value = this.serialize(schema, value);\n }\n serialize(schema$1, source) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (source == null) {\n if (ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n return source;\n }\n if (ns.isBlobSchema()) {\n if (typeof source === \"string\") {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(source);\n }\n return source;\n }\n if (ns.isTimestampSchema()) {\n if (typeof source === \"number\" || typeof source === \"bigint\") {\n return dateToTag(new Date((Number(source) / 1000) | 0));\n }\n return dateToTag(source);\n }\n if (typeof source === \"function\" || typeof source === \"object\") {\n const sourceObject = source;\n if (ns.isListSchema() && Array.isArray(sourceObject)) {\n const sparse = !!ns.getMergedTraits().sparse;\n const newArray = [];\n let i = 0;\n for (const item of sourceObject) {\n const value = this.serialize(ns.getValueSchema(), item);\n if (value != null || sparse) {\n newArray[i++] = value;\n }\n }\n return newArray;\n }\n if (sourceObject instanceof Date) {\n return dateToTag(sourceObject);\n }\n const newObject = {};\n if (ns.isMapSchema()) {\n const sparse = !!ns.getMergedTraits().sparse;\n for (const key in sourceObject) {\n const value = this.serialize(ns.getValueSchema(), sourceObject[key]);\n if (value != null || sparse) {\n newObject[key] = value;\n }\n }\n }\n else if (ns.isStructSchema()) {\n for (const [key, memberSchema] of ns.structIterator()) {\n const value = this.serialize(memberSchema, sourceObject[key]);\n if (value != null) {\n newObject[key] = value;\n }\n }\n const isUnion = ns.isUnionSchema();\n if (isUnion && Array.isArray(sourceObject.$unknown)) {\n const [k, v] = sourceObject.$unknown;\n newObject[k] = v;\n }\n else if (typeof sourceObject.__type === \"string\") {\n for (const k in sourceObject) {\n if (!(k in newObject)) {\n newObject[k] = this.serialize(15, sourceObject[k]);\n }\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n for (const key in sourceObject) {\n newObject[key] = this.serialize(ns.getValueSchema(), sourceObject[key]);\n }\n }\n else if (ns.isBigDecimalSchema()) {\n return sourceObject;\n }\n return newObject;\n }\n return source;\n }\n flush() {\n const buffer = cbor.serialize(this.value);\n this.value = undefined;\n return buffer;\n }\n}\nclass CborShapeDeserializer extends protocols.SerdeContext {\n read(schema, bytes) {\n const data = cbor.deserialize(bytes);\n return this.readValue(schema, data);\n }\n readValue(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isTimestampSchema()) {\n if (typeof value === \"number\") {\n return serde._parseEpochTimestamp(value);\n }\n if (typeof value === \"object\") {\n if (value.tag === 1 && \"value\" in value) {\n return serde._parseEpochTimestamp(value.value);\n }\n }\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\") {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n return value;\n }\n if (typeof value === \"undefined\" ||\n typeof value === \"boolean\" ||\n typeof value === \"number\" ||\n typeof value === \"string\" ||\n typeof value === \"bigint\" ||\n typeof value === \"symbol\") {\n return value;\n }\n else if (typeof value === \"object\") {\n if (value === null) {\n return null;\n }\n if (\"byteLength\" in value) {\n return value;\n }\n if (value instanceof Date) {\n return value;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n if (ns.isListSchema()) {\n const newArray = [];\n const memberSchema = ns.getValueSchema();\n for (const item of value) {\n const itemValue = this.readValue(memberSchema, item);\n newArray.push(itemValue);\n }\n return newArray;\n }\n const newObject = {};\n if (ns.isMapSchema()) {\n const targetSchema = ns.getValueSchema();\n for (const key in value) {\n const itemValue = this.readValue(targetSchema, value[key]);\n newObject[key] = itemValue;\n }\n }\n else if (ns.isStructSchema()) {\n const isUnion = ns.isUnionSchema();\n let keys;\n if (isUnion) {\n keys = new Set();\n for (const k in value) {\n if (k !== \"__type\") {\n keys.add(k);\n }\n }\n }\n for (const [key, memberSchema] of ns.structIterator()) {\n if (isUnion) {\n keys.delete(key);\n }\n if (value[key] != null) {\n newObject[key] = this.readValue(memberSchema, value[key]);\n }\n }\n if (isUnion && keys?.size === 1) {\n let newObjectEmpty = true;\n for (const _ in newObject) {\n newObjectEmpty = false;\n break;\n }\n if (newObjectEmpty) {\n const k = keys.values().next().value;\n newObject.$unknown = [k, value[k]];\n }\n }\n else if (typeof value.__type === \"string\") {\n for (const k in value) {\n if (!(k in newObject)) {\n newObject[k] = value[k];\n }\n }\n }\n }\n else if (value instanceof serde.NumericValue) {\n return value;\n }\n return newObject;\n }\n else {\n return value;\n }\n }\n}\n\nclass SmithyRpcV2CborProtocol extends protocols.RpcProtocol {\n codec = new CborCodec();\n serializer = this.codec.createSerializer();\n deserializer = this.codec.createDeserializer();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({ defaultNamespace, errorTypeRegistries });\n }\n getShapeId() {\n return \"smithy.protocols#rpcv2Cbor\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n Object.assign(request.headers, {\n \"content-type\": this.getDefaultContentType(),\n \"smithy-protocol\": \"rpc-v2-cbor\",\n accept: this.getDefaultContentType(),\n });\n if (schema.deref(operationSchema.input) === \"unit\") {\n delete request.body;\n delete request.headers[\"content-type\"];\n }\n else {\n if (!request.body) {\n this.serializer.write(15, {});\n request.body = this.serializer.flush();\n }\n try {\n request.headers[\"content-length\"] = String(request.body.byteLength);\n }\n catch (e) { }\n }\n const { service, operation } = utilMiddleware.getSmithyContext(context);\n const path = `/service/${service}/operation/${operation}`;\n if (request.path.endsWith(\"/\")) {\n request.path += path.slice(1);\n }\n else {\n request.path += path;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorName = loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode <= 500 ? \"client\" : \"server\",\n };\n let namespace = this.options.defaultNamespace;\n if (errorName.includes(\"#\")) {\n [namespace] = errorName.split(\"#\");\n }\n const registry = this.compositeErrorRegistry;\n const nsRegistry = schema.TypeRegistry.for(namespace);\n registry.copyFrom(nsRegistry);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorName);\n }\n catch (e) {\n if (dataObject.Message) {\n dataObject.message = dataObject.Message;\n }\n const syntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace);\n registry.copyFrom(syntheticRegistry);\n const baseExceptionSchema = registry.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = registry.getErrorCtor(baseExceptionSchema);\n throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);\n }\n throw Object.assign(new Error(errorName), errorMetadata, dataObject);\n }\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = registry.getErrorCtor(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n throw Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output);\n }\n getDefaultContentType() {\n return \"application/cbor\";\n }\n}\n\nexports.CborCodec = CborCodec;\nexports.CborShapeDeserializer = CborShapeDeserializer;\nexports.CborShapeSerializer = CborShapeSerializer;\nexports.SmithyRpcV2CborProtocol = SmithyRpcV2CborProtocol;\nexports.buildHttpRpcRequest = buildHttpRpcRequest;\nexports.cbor = cbor;\nexports.checkCborResponse = checkCborResponse;\nexports.dateToTag = dateToTag;\nexports.loadSmithyRpcV2CborErrorCode = loadSmithyRpcV2CborErrorCode;\nexports.parseCborBody = parseCborBody;\nexports.parseCborErrorBody = parseCborErrorBody;\nexports.tag = tag;\nexports.tagSymbol = tagSymbol;\n","'use strict';\n\nvar urlParser = require('@smithy/url-parser');\n\nconst toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n const v1Endpoint = urlParser.parseUrl(endpoint.url);\n if (endpoint.headers) {\n v1Endpoint.headers = {};\n for (const name in endpoint.headers) {\n v1Endpoint.headers[name.toLowerCase()] = endpoint.headers[name].join(\", \");\n }\n }\n return v1Endpoint;\n }\n return endpoint;\n }\n return urlParser.parseUrl(endpoint);\n};\n\nexports.toEndpointV1 = toEndpointV1;\n","'use strict';\n\nvar utilStream = require('@smithy/util-stream');\nvar schema = require('@smithy/core/schema');\nvar serde = require('@smithy/core/serde');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\n\nconst collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return utilStream.Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return utilStream.Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return utilStream.Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n\nfunction extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nclass SerdeContext {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass HttpProtocol extends SerdeContext {\n options;\n compositeErrorRegistry;\n constructor(options) {\n super();\n this.options = options;\n this.compositeErrorRegistry = schema.TypeRegistry.for(options.defaultNamespace);\n for (const etr of options.errorTypeRegistries ?? []) {\n this.compositeErrorRegistry.copyFrom(etr);\n }\n }\n getRequestType() {\n return protocolHttp.HttpRequest;\n }\n getResponseType() {\n return protocolHttp.HttpResponse;\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n if (this.getPayloadCodec()) {\n this.getPayloadCodec().setSerdeContext(serdeContext);\n }\n }\n updateServiceEndpoint(request, endpoint) {\n if (\"url\" in endpoint) {\n request.protocol = endpoint.url.protocol;\n request.hostname = endpoint.url.hostname;\n request.port = endpoint.url.port ? Number(endpoint.url.port) : undefined;\n request.path = endpoint.url.pathname;\n request.fragment = endpoint.url.hash || void 0;\n request.username = endpoint.url.username || void 0;\n request.password = endpoint.url.password || void 0;\n if (!request.query) {\n request.query = {};\n }\n for (const [k, v] of endpoint.url.searchParams.entries()) {\n request.query[k] = v;\n }\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name].join(\", \");\n }\n }\n return request;\n }\n else {\n request.protocol = endpoint.protocol;\n request.hostname = endpoint.hostname;\n request.port = endpoint.port ? Number(endpoint.port) : undefined;\n request.path = endpoint.path;\n request.query = {\n ...endpoint.query,\n };\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name];\n }\n }\n return request;\n }\n }\n setHostPrefix(request, operationSchema, input) {\n if (this.serdeContext?.disableHostPrefix) {\n return;\n }\n const inputNs = schema.NormalizedSchema.of(operationSchema.input);\n const opTraits = schema.translateTraits(operationSchema.traits ?? {});\n if (opTraits.endpoint) {\n let hostPrefix = opTraits.endpoint?.[0];\n if (typeof hostPrefix === \"string\") {\n for (const [name, member] of inputNs.structIterator()) {\n if (!member.getMergedTraits().hostLabel) {\n continue;\n }\n const replacement = input[name];\n if (typeof replacement !== \"string\") {\n throw new Error(`@smithy/core/schema - ${name} in input must be a string as hostLabel.`);\n }\n hostPrefix = hostPrefix.replace(`{${name}}`, replacement);\n }\n request.hostname = hostPrefix + request.hostname;\n }\n }\n }\n deserializeMetadata(output) {\n return {\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n };\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.serializeEventStream({\n eventStream,\n requestSchema,\n initialRequest,\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.deserializeEventStream({\n response,\n responseSchema,\n initialResponseContainer,\n });\n }\n async loadEventStreamCapability() {\n const { EventStreamSerde } = await import('@smithy/core/event-streams');\n return new EventStreamSerde({\n marshaller: this.getEventStreamMarshaller(),\n serializer: this.serializer,\n deserializer: this.deserializer,\n serdeContext: this.serdeContext,\n defaultContentType: this.getDefaultContentType(),\n });\n }\n getDefaultContentType() {\n throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);\n }\n async deserializeHttpMessage(schema, context, response, arg4, arg5) {\n return [];\n }\n getEventStreamMarshaller() {\n const context = this.serdeContext;\n if (!context.eventStreamMarshaller) {\n throw new Error(\"@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext.\");\n }\n return context.eventStreamMarshaller;\n }\n}\n\nclass HttpBindingProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const input = _input && typeof _input === \"object\" ? _input : {};\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const payloadMemberNames = [];\n const payloadMemberSchemas = [];\n let hasNonHttpBindingMember = false;\n let payload;\n const request = new protocolHttp.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n const opTraits = schema.translateTraits(operationSchema.traits);\n if (opTraits.http) {\n request.method = opTraits.http[0];\n const [path, search] = opTraits.http[1].split(\"?\");\n if (request.path == \"/\") {\n request.path = path;\n }\n else {\n request.path += path;\n }\n const traitSearchParams = new URLSearchParams(search ?? \"\");\n for (const [key, value] of traitSearchParams) {\n query[key] = value;\n }\n }\n }\n for (const [memberName, memberNs] of ns.structIterator()) {\n const memberTraits = memberNs.getMergedTraits() ?? {};\n const inputMemberValue = input[memberName];\n if (inputMemberValue == null && !memberNs.isIdempotencyToken()) {\n if (memberTraits.httpLabel) {\n if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) {\n throw new Error(`No value provided for input HTTP label: ${memberName}.`);\n }\n }\n continue;\n }\n if (memberTraits.httpPayload) {\n const isStreaming = memberNs.isStreaming();\n if (isStreaming) {\n const isEventStream = memberNs.isStructSchema();\n if (isEventStream) {\n if (input[memberName]) {\n payload = await this.serializeEventStream({\n eventStream: input[memberName],\n requestSchema: ns,\n });\n }\n }\n else {\n payload = inputMemberValue;\n }\n }\n else {\n serializer.write(memberNs, inputMemberValue);\n payload = serializer.flush();\n }\n }\n else if (memberTraits.httpLabel) {\n serializer.write(memberNs, inputMemberValue);\n const replacement = serializer.flush();\n if (request.path.includes(`{${memberName}+}`)) {\n request.path = request.path.replace(`{${memberName}+}`, replacement.split(\"/\").map(extendedEncodeURIComponent).join(\"/\"));\n }\n else if (request.path.includes(`{${memberName}}`)) {\n request.path = request.path.replace(`{${memberName}}`, extendedEncodeURIComponent(replacement));\n }\n }\n else if (memberTraits.httpHeader) {\n serializer.write(memberNs, inputMemberValue);\n headers[memberTraits.httpHeader.toLowerCase()] = String(serializer.flush());\n }\n else if (typeof memberTraits.httpPrefixHeaders === \"string\") {\n for (const key in inputMemberValue) {\n const val = inputMemberValue[key];\n const amalgam = memberTraits.httpPrefixHeaders + key;\n serializer.write([memberNs.getValueSchema(), { httpHeader: amalgam }], val);\n headers[amalgam.toLowerCase()] = serializer.flush();\n }\n }\n else if (memberTraits.httpQuery || memberTraits.httpQueryParams) {\n this.serializeQuery(memberNs, inputMemberValue, query);\n }\n else {\n hasNonHttpBindingMember = true;\n payloadMemberNames.push(memberName);\n payloadMemberSchemas.push(memberNs);\n }\n }\n if (hasNonHttpBindingMember && input) {\n const [namespace, name] = (ns.getName(true) ?? \"#Unknown\").split(\"#\");\n const requiredMembers = ns.getSchema()[6];\n const payloadSchema = [\n 3,\n namespace,\n name,\n ns.getMergedTraits(),\n payloadMemberNames,\n payloadMemberSchemas,\n undefined,\n ];\n if (requiredMembers) {\n payloadSchema[6] = requiredMembers;\n }\n else {\n payloadSchema.pop();\n }\n serializer.write(payloadSchema, input);\n payload = serializer.flush();\n }\n request.headers = headers;\n request.query = query;\n request.body = payload;\n return request;\n }\n serializeQuery(ns, data, query) {\n const serializer = this.serializer;\n const traits = ns.getMergedTraits();\n if (traits.httpQueryParams) {\n for (const key in data) {\n if (!(key in query)) {\n const val = data[key];\n const valueSchema = ns.getValueSchema();\n Object.assign(valueSchema.getMergedTraits(), {\n ...traits,\n httpQuery: key,\n httpQueryParams: undefined,\n });\n this.serializeQuery(valueSchema, val, query);\n }\n }\n return;\n }\n if (ns.isListSchema()) {\n const sparse = !!ns.getMergedTraits().sparse;\n const buffer = [];\n for (const item of data) {\n serializer.write([ns.getValueSchema(), traits], item);\n const serializable = serializer.flush();\n if (sparse || serializable !== undefined) {\n buffer.push(serializable);\n }\n }\n query[traits.httpQuery] = buffer;\n }\n else {\n serializer.write([ns, traits], data);\n query[traits.httpQuery] = serializer.flush();\n }\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - HTTP Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const nonHttpBindingMembers = await this.deserializeHttpMessage(ns, context, response, dataObject);\n if (nonHttpBindingMembers.length) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n const dataFromBody = await deserializer.read(ns, bytes);\n for (const member of nonHttpBindingMembers) {\n if (dataFromBody[member] != null) {\n dataObject[member] = dataFromBody[member];\n }\n }\n }\n }\n else if (nonHttpBindingMembers.discardResponseBody) {\n await collectBody(response.body, context);\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n async deserializeHttpMessage(schema$1, context, response, arg4, arg5) {\n let dataObject;\n if (arg4 instanceof Set) {\n dataObject = arg5;\n }\n else {\n dataObject = arg4;\n }\n let discardResponseBody = true;\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(schema$1);\n const nonHttpBindingMembers = [];\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMemberTraits();\n if (memberTraits.httpPayload) {\n discardResponseBody = false;\n const isStreaming = memberSchema.isStreaming();\n if (isStreaming) {\n const isEventStream = memberSchema.isStructSchema();\n if (isEventStream) {\n dataObject[memberName] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n });\n }\n else {\n dataObject[memberName] = utilStream.sdkStreamMixin(response.body);\n }\n }\n else if (response.body) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n dataObject[memberName] = await deserializer.read(memberSchema, bytes);\n }\n }\n }\n else if (memberTraits.httpHeader) {\n const key = String(memberTraits.httpHeader).toLowerCase();\n const value = response.headers[key];\n if (null != value) {\n if (memberSchema.isListSchema()) {\n const headerListValueSchema = memberSchema.getValueSchema();\n headerListValueSchema.getMergedTraits().httpHeader = key;\n let sections;\n if (headerListValueSchema.isTimestampSchema() &&\n headerListValueSchema.getSchema() === 4) {\n sections = serde.splitEvery(value, \",\", 2);\n }\n else {\n sections = serde.splitHeader(value);\n }\n const list = [];\n for (const section of sections) {\n list.push(await deserializer.read(headerListValueSchema, section.trim()));\n }\n dataObject[memberName] = list;\n }\n else {\n dataObject[memberName] = await deserializer.read(memberSchema, value);\n }\n }\n }\n else if (memberTraits.httpPrefixHeaders !== undefined) {\n dataObject[memberName] = {};\n for (const header in response.headers) {\n if (header.startsWith(memberTraits.httpPrefixHeaders)) {\n const value = response.headers[header];\n const valueSchema = memberSchema.getValueSchema();\n valueSchema.getMergedTraits().httpHeader = header;\n dataObject[memberName][header.slice(memberTraits.httpPrefixHeaders.length)] = await deserializer.read(valueSchema, value);\n }\n }\n }\n else if (memberTraits.httpResponseCode) {\n dataObject[memberName] = response.statusCode;\n }\n else {\n nonHttpBindingMembers.push(memberName);\n }\n }\n nonHttpBindingMembers.discardResponseBody = discardResponseBody;\n return nonHttpBindingMembers;\n }\n}\n\nclass RpcProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const schema$1 = ns.getSchema();\n let payload;\n const input = _input && typeof _input === \"object\" ? _input : {};\n const request = new protocolHttp.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"/\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n }\n if (input) {\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n if (input[eventStreamMember]) {\n const initialRequest = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n if (memberName !== eventStreamMember && input[memberName]) {\n serializer.write(memberSchema, input[memberName]);\n initialRequest[memberName] = serializer.flush();\n }\n }\n payload = await this.serializeEventStream({\n eventStream: input[eventStreamMember],\n requestSchema: ns,\n initialRequest,\n });\n }\n }\n else {\n serializer.write(schema$1, input);\n payload = serializer.flush();\n }\n }\n request.headers = Object.assign(request.headers, headers);\n request.query = query;\n request.body = payload;\n request.method = \"POST\";\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - RPC Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n dataObject[eventStreamMember] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n initialResponseContainer: dataObject,\n });\n }\n else {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes));\n }\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n}\n\nconst resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue == null || labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n\nfunction requestBuilder(input, context) {\n return new RequestBuilder(input, context);\n}\nclass RequestBuilder {\n input;\n context;\n query = {};\n method = \"\";\n headers = {};\n path = \"\";\n body = null;\n hostname = \"\";\n resolvePathStack = [];\n constructor(input, context) {\n this.input = input;\n this.context = context;\n }\n async build() {\n const { hostname, protocol = \"https\", port, path: basePath } = await this.context.endpoint();\n this.path = basePath;\n for (const resolvePath of this.resolvePathStack) {\n resolvePath(this.path);\n }\n return new protocolHttp.HttpRequest({\n protocol,\n hostname: this.hostname || hostname,\n port,\n method: this.method,\n path: this.path,\n query: this.query,\n body: this.body,\n headers: this.headers,\n });\n }\n hn(hostname) {\n this.hostname = hostname;\n return this;\n }\n bp(uriLabel) {\n this.resolvePathStack.push((basePath) => {\n this.path = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + uriLabel;\n });\n return this;\n }\n p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n this.resolvePathStack.push((path) => {\n this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);\n });\n return this;\n }\n h(headers) {\n this.headers = headers;\n return this;\n }\n q(query) {\n this.query = query;\n return this;\n }\n b(body) {\n this.body = body;\n return this;\n }\n m(method) {\n this.method = method;\n return this;\n }\n}\n\nfunction determineTimestampFormat(ns, settings) {\n if (settings.timestampFormat.useTrait) {\n if (ns.isTimestampSchema() &&\n (ns.getSchema() === 5 ||\n ns.getSchema() === 6 ||\n ns.getSchema() === 7)) {\n return ns.getSchema();\n }\n }\n const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits();\n const bindingFormat = settings.httpBindings\n ? typeof httpPrefixHeaders === \"string\" || Boolean(httpHeader)\n ? 6\n : Boolean(httpQuery) || Boolean(httpLabel)\n ? 5\n : undefined\n : undefined;\n return bindingFormat ?? settings.timestampFormat.default;\n}\n\nclass FromStringShapeDeserializer extends SerdeContext {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n read(_schema, data) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isListSchema()) {\n return serde.splitHeader(data).map((item) => this.read(ns.getValueSchema(), item));\n }\n if (ns.isBlobSchema()) {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(data);\n }\n if (ns.isTimestampSchema()) {\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde._parseRfc3339DateTimeWithOffset(data);\n case 6:\n return serde._parseRfc7231DateTime(data);\n case 7:\n return serde._parseEpochTimestamp(data);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", data);\n return new Date(data);\n }\n }\n if (ns.isStringSchema()) {\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = data;\n if (mediaType) {\n if (ns.getMergedTraits().httpHeader) {\n intermediateValue = this.base64ToUtf8(intermediateValue);\n }\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n return intermediateValue;\n }\n }\n if (ns.isNumericSchema()) {\n return Number(data);\n }\n if (ns.isBigIntegerSchema()) {\n return BigInt(data);\n }\n if (ns.isBigDecimalSchema()) {\n return new serde.NumericValue(data, \"bigDecimal\");\n }\n if (ns.isBooleanSchema()) {\n return String(data).toLowerCase() === \"true\";\n }\n return data;\n }\n base64ToUtf8(base64String) {\n return (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)((this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(base64String));\n }\n}\n\nclass HttpInterceptingShapeDeserializer extends SerdeContext {\n codecDeserializer;\n stringDeserializer;\n constructor(codecDeserializer, codecSettings) {\n super();\n this.codecDeserializer = codecDeserializer;\n this.stringDeserializer = new FromStringShapeDeserializer(codecSettings);\n }\n setSerdeContext(serdeContext) {\n this.stringDeserializer.setSerdeContext(serdeContext);\n this.codecDeserializer.setSerdeContext(serdeContext);\n this.serdeContext = serdeContext;\n }\n read(schema$1, data) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n const toString = this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8;\n if (traits.httpHeader || traits.httpResponseCode) {\n return this.stringDeserializer.read(ns, toString(data));\n }\n if (traits.httpPayload) {\n if (ns.isBlobSchema()) {\n const toBytes = this.serdeContext?.utf8Decoder ?? utilUtf8.fromUtf8;\n if (typeof data === \"string\") {\n return toBytes(data);\n }\n return data;\n }\n else if (ns.isStringSchema()) {\n if (\"byteLength\" in data) {\n return toString(data);\n }\n return data;\n }\n }\n return this.codecDeserializer.read(ns, data);\n }\n}\n\nclass ToStringShapeSerializer extends SerdeContext {\n settings;\n stringBuffer = \"\";\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n switch (typeof value) {\n case \"object\":\n if (value === null) {\n this.stringBuffer = \"null\";\n return;\n }\n if (ns.isTimestampSchema()) {\n if (!(value instanceof Date)) {\n throw new Error(`@smithy/core/protocols - received non-Date value ${value} when schema expected Date in ${ns.getName(true)}`);\n }\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.stringBuffer = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n this.stringBuffer = serde.dateToUtcString(value);\n break;\n case 7:\n this.stringBuffer = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n this.stringBuffer = String(value.getTime() / 1000);\n }\n return;\n }\n if (ns.isBlobSchema() && \"byteLength\" in value) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n return;\n }\n if (ns.isListSchema() && Array.isArray(value)) {\n let buffer = \"\";\n for (const item of value) {\n this.write([ns.getValueSchema(), ns.getMergedTraits()], item);\n const headerItem = this.flush();\n const serialized = ns.getValueSchema().isTimestampSchema() ? headerItem : serde.quoteHeader(headerItem);\n if (buffer !== \"\") {\n buffer += \", \";\n }\n buffer += serialized;\n }\n this.stringBuffer = buffer;\n return;\n }\n this.stringBuffer = JSON.stringify(value, null, 2);\n break;\n case \"string\":\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = value;\n if (mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n if (ns.getMergedTraits().httpHeader) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(intermediateValue.toString());\n return;\n }\n }\n this.stringBuffer = value;\n break;\n default:\n if (ns.isIdempotencyToken()) {\n this.stringBuffer = serde.generateIdempotencyToken();\n }\n else {\n this.stringBuffer = String(value);\n }\n }\n }\n flush() {\n const buffer = this.stringBuffer;\n this.stringBuffer = \"\";\n return buffer;\n }\n}\n\nclass HttpInterceptingShapeSerializer {\n codecSerializer;\n stringSerializer;\n buffer;\n constructor(codecSerializer, codecSettings, stringSerializer = new ToStringShapeSerializer(codecSettings)) {\n this.codecSerializer = codecSerializer;\n this.stringSerializer = stringSerializer;\n }\n setSerdeContext(serdeContext) {\n this.codecSerializer.setSerdeContext(serdeContext);\n this.stringSerializer.setSerdeContext(serdeContext);\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n if (traits.httpHeader || traits.httpLabel || traits.httpQuery) {\n this.stringSerializer.write(ns, value);\n this.buffer = this.stringSerializer.flush();\n return;\n }\n return this.codecSerializer.write(ns, value);\n }\n flush() {\n if (this.buffer !== undefined) {\n const buffer = this.buffer;\n this.buffer = undefined;\n return buffer;\n }\n return this.codecSerializer.flush();\n }\n}\n\nexports.FromStringShapeDeserializer = FromStringShapeDeserializer;\nexports.HttpBindingProtocol = HttpBindingProtocol;\nexports.HttpInterceptingShapeDeserializer = HttpInterceptingShapeDeserializer;\nexports.HttpInterceptingShapeSerializer = HttpInterceptingShapeSerializer;\nexports.HttpProtocol = HttpProtocol;\nexports.RequestBuilder = RequestBuilder;\nexports.RpcProtocol = RpcProtocol;\nexports.SerdeContext = SerdeContext;\nexports.ToStringShapeSerializer = ToStringShapeSerializer;\nexports.collectBody = collectBody;\nexports.determineTimestampFormat = determineTimestampFormat;\nexports.extendedEncodeURIComponent = extendedEncodeURIComponent;\nexports.requestBuilder = requestBuilder;\nexports.resolvedPath = resolvedPath;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar endpoints = require('@smithy/core/endpoints');\n\nconst deref = (schemaRef) => {\n if (typeof schemaRef === \"function\") {\n return schemaRef();\n }\n return schemaRef;\n};\n\nconst operation = (namespace, name, traits, input, output) => ({\n name,\n namespace,\n traits,\n input,\n output,\n});\n\nconst schemaDeserializationMiddleware = (config) => (next, context) => async (args) => {\n const { response } = await next(args);\n const { operationSchema } = utilMiddleware.getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n try {\n const parsed = await config.protocol.deserializeResponse(operation(ns, n, t, i, o), {\n ...config,\n ...context,\n }, response);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n try {\n error.message += \"\\n \" + hint;\n }\n catch (e) {\n if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(hint);\n }\n else {\n context.logger?.warn?.(hint);\n }\n }\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n try {\n if (protocolHttp.HttpResponse.isInstance(response)) {\n const { headers = {} } = response;\n const headerEntries = Object.entries(headers);\n error.$metadata = {\n httpStatusCode: response.statusCode,\n requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n };\n }\n }\n catch (e) {\n }\n }\n throw error;\n }\n};\nconst findHeader = (pattern, headers) => {\n return (headers.find(([k]) => {\n return k.match(pattern);\n }) || [void 0, void 0])[1];\n};\n\nconst schemaSerializationMiddleware = (config) => (next, context) => async (args) => {\n const { operationSchema } = utilMiddleware.getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n const endpoint = context.endpointV2\n ? async () => endpoints.toEndpointV1(context.endpointV2)\n : config.endpoint;\n const request = await config.protocol.serializeRequest(operation(ns, n, t, i, o), args.input, {\n ...config,\n ...context,\n endpoint,\n });\n return next({\n ...args,\n request,\n });\n};\n\nconst deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSchemaSerdePlugin(config) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(schemaSerializationMiddleware(config), serializerMiddlewareOption);\n commandStack.add(schemaDeserializationMiddleware(config), deserializerMiddlewareOption);\n config.protocol.setSerdeContext(config);\n },\n };\n}\n\nclass Schema {\n name;\n namespace;\n traits;\n static assign(instance, values) {\n const schema = Object.assign(instance, values);\n return schema;\n }\n static [Symbol.hasInstance](lhs) {\n const isPrototype = this.prototype.isPrototypeOf(lhs);\n if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n const list = lhs;\n return list.symbol === this.symbol;\n }\n return isPrototype;\n }\n getName() {\n return this.namespace + \"#\" + this.name;\n }\n}\n\nclass ListSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/lis\");\n name;\n traits;\n valueSchema;\n symbol = ListSchema.symbol;\n}\nconst list = (namespace, name, traits, valueSchema) => Schema.assign(new ListSchema(), {\n name,\n namespace,\n traits,\n valueSchema,\n});\n\nclass MapSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/map\");\n name;\n traits;\n keySchema;\n valueSchema;\n symbol = MapSchema.symbol;\n}\nconst map = (namespace, name, traits, keySchema, valueSchema) => Schema.assign(new MapSchema(), {\n name,\n namespace,\n traits,\n keySchema,\n valueSchema,\n});\n\nclass OperationSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/ope\");\n name;\n traits;\n input;\n output;\n symbol = OperationSchema.symbol;\n}\nconst op = (namespace, name, traits, input, output) => Schema.assign(new OperationSchema(), {\n name,\n namespace,\n traits,\n input,\n output,\n});\n\nclass StructureSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/str\");\n name;\n traits;\n memberNames;\n memberList;\n symbol = StructureSchema.symbol;\n}\nconst struct = (namespace, name, traits, memberNames, memberList) => Schema.assign(new StructureSchema(), {\n name,\n namespace,\n traits,\n memberNames,\n memberList,\n});\n\nclass ErrorSchema extends StructureSchema {\n static symbol = Symbol.for(\"@smithy/err\");\n ctor;\n symbol = ErrorSchema.symbol;\n}\nconst error = (namespace, name, traits, memberNames, memberList, ctor) => Schema.assign(new ErrorSchema(), {\n name,\n namespace,\n traits,\n memberNames,\n memberList,\n ctor: null,\n});\n\nconst traitsCache = [];\nfunction translateTraits(indicator) {\n if (typeof indicator === \"object\") {\n return indicator;\n }\n indicator = indicator | 0;\n if (traitsCache[indicator]) {\n return traitsCache[indicator];\n }\n const traits = {};\n let i = 0;\n for (const trait of [\n \"httpLabel\",\n \"idempotent\",\n \"idempotencyToken\",\n \"sensitive\",\n \"httpPayload\",\n \"httpResponseCode\",\n \"httpQueryParams\",\n ]) {\n if (((indicator >> i++) & 1) === 1) {\n traits[trait] = 1;\n }\n }\n return (traitsCache[indicator] = traits);\n}\n\nconst anno = {\n it: Symbol.for(\"@smithy/nor-struct-it\"),\n ns: Symbol.for(\"@smithy/ns\"),\n};\nconst simpleSchemaCacheN = [];\nconst simpleSchemaCacheS = {};\nclass NormalizedSchema {\n ref;\n memberName;\n static symbol = Symbol.for(\"@smithy/nor\");\n symbol = NormalizedSchema.symbol;\n name;\n schema;\n _isMemberSchema;\n traits;\n memberTraits;\n normalizedTraits;\n constructor(ref, memberName) {\n this.ref = ref;\n this.memberName = memberName;\n const traitStack = [];\n let _ref = ref;\n let schema = ref;\n this._isMemberSchema = false;\n while (isMemberSchema(_ref)) {\n traitStack.push(_ref[1]);\n _ref = _ref[0];\n schema = deref(_ref);\n this._isMemberSchema = true;\n }\n if (traitStack.length > 0) {\n this.memberTraits = {};\n for (let i = traitStack.length - 1; i >= 0; --i) {\n const traitSet = traitStack[i];\n Object.assign(this.memberTraits, translateTraits(traitSet));\n }\n }\n else {\n this.memberTraits = 0;\n }\n if (schema instanceof NormalizedSchema) {\n const computedMemberTraits = this.memberTraits;\n Object.assign(this, schema);\n this.memberTraits = Object.assign({}, computedMemberTraits, schema.getMemberTraits(), this.getMemberTraits());\n this.normalizedTraits = void 0;\n this.memberName = memberName ?? schema.memberName;\n return;\n }\n this.schema = deref(schema);\n if (isStaticSchema(this.schema)) {\n this.name = `${this.schema[1]}#${this.schema[2]}`;\n this.traits = this.schema[3];\n }\n else {\n this.name = this.memberName ?? String(schema);\n this.traits = 0;\n }\n if (this._isMemberSchema && !memberName) {\n throw new Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(true)} missing member name.`);\n }\n }\n static [Symbol.hasInstance](lhs) {\n const isPrototype = this.prototype.isPrototypeOf(lhs);\n if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n const ns = lhs;\n return ns.symbol === this.symbol;\n }\n return isPrototype;\n }\n static of(ref) {\n const keyAble = typeof ref === \"function\" || (typeof ref === \"object\" && ref !== null);\n if (typeof ref === \"number\") {\n if (simpleSchemaCacheN[ref]) {\n return simpleSchemaCacheN[ref];\n }\n }\n else if (typeof ref === \"string\") {\n if (simpleSchemaCacheS[ref]) {\n return simpleSchemaCacheS[ref];\n }\n }\n else if (keyAble) {\n if (ref[anno.ns]) {\n return ref[anno.ns];\n }\n }\n const sc = deref(ref);\n if (sc instanceof NormalizedSchema) {\n return sc;\n }\n if (isMemberSchema(sc)) {\n const [ns, traits] = sc;\n if (ns instanceof NormalizedSchema) {\n Object.assign(ns.getMergedTraits(), translateTraits(traits));\n return ns;\n }\n throw new Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify(ref, null, 2)}.`);\n }\n const ns = new NormalizedSchema(sc);\n if (keyAble) {\n return (ref[anno.ns] = ns);\n }\n if (typeof sc === \"string\") {\n return (simpleSchemaCacheS[sc] = ns);\n }\n if (typeof sc === \"number\") {\n return (simpleSchemaCacheN[sc] = ns);\n }\n return ns;\n }\n getSchema() {\n const sc = this.schema;\n if (Array.isArray(sc) && sc[0] === 0) {\n return sc[4];\n }\n return sc;\n }\n getName(withNamespace = false) {\n const { name } = this;\n const short = !withNamespace && name && name.includes(\"#\");\n return short ? name.split(\"#\")[1] : name || undefined;\n }\n getMemberName() {\n return this.memberName;\n }\n isMemberSchema() {\n return this._isMemberSchema;\n }\n isListSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 64 && sc < 128\n : sc[0] === 1;\n }\n isMapSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 128 && sc <= 0b1111_1111\n : sc[0] === 2;\n }\n isStructSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n const id = sc[0];\n return (id === 3 ||\n id === -3 ||\n id === 4);\n }\n isUnionSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n return sc[0] === 4;\n }\n isBlobSchema() {\n const sc = this.getSchema();\n return sc === 21 || sc === 42;\n }\n isTimestampSchema() {\n const sc = this.getSchema();\n return (typeof sc === \"number\" &&\n sc >= 4 &&\n sc <= 7);\n }\n isUnitSchema() {\n return this.getSchema() === \"unit\";\n }\n isDocumentSchema() {\n return this.getSchema() === 15;\n }\n isStringSchema() {\n return this.getSchema() === 0;\n }\n isBooleanSchema() {\n return this.getSchema() === 2;\n }\n isNumericSchema() {\n return this.getSchema() === 1;\n }\n isBigIntegerSchema() {\n return this.getSchema() === 17;\n }\n isBigDecimalSchema() {\n return this.getSchema() === 19;\n }\n isStreaming() {\n const { streaming } = this.getMergedTraits();\n return !!streaming || this.getSchema() === 42;\n }\n isIdempotencyToken() {\n return !!this.getMergedTraits().idempotencyToken;\n }\n getMergedTraits() {\n return (this.normalizedTraits ??\n (this.normalizedTraits = {\n ...this.getOwnTraits(),\n ...this.getMemberTraits(),\n }));\n }\n getMemberTraits() {\n return translateTraits(this.memberTraits);\n }\n getOwnTraits() {\n return translateTraits(this.traits);\n }\n getKeySchema() {\n const [isDoc, isMap] = [this.isDocumentSchema(), this.isMapSchema()];\n if (!isDoc && !isMap) {\n throw new Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(true)}`);\n }\n const schema = this.getSchema();\n const memberSchema = isDoc\n ? 15\n : schema[4] ?? 0;\n return member([memberSchema, 0], \"key\");\n }\n getValueSchema() {\n const sc = this.getSchema();\n const [isDoc, isMap, isList] = [this.isDocumentSchema(), this.isMapSchema(), this.isListSchema()];\n const memberSchema = typeof sc === \"number\"\n ? 0b0011_1111 & sc\n : sc && typeof sc === \"object\" && (isMap || isList)\n ? sc[3 + sc[0]]\n : isDoc\n ? 15\n : void 0;\n if (memberSchema != null) {\n return member([memberSchema, 0], isMap ? \"value\" : \"member\");\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no value member.`);\n }\n getMemberSchema(memberName) {\n const struct = this.getSchema();\n if (this.isStructSchema() && struct[4].includes(memberName)) {\n const i = struct[4].indexOf(memberName);\n const memberSchema = struct[5][i];\n return member(isMemberSchema(memberSchema) ? memberSchema : [memberSchema, 0], memberName);\n }\n if (this.isDocumentSchema()) {\n return member([15, 0], memberName);\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no member=${memberName}.`);\n }\n getMemberSchemas() {\n const buffer = {};\n try {\n for (const [k, v] of this.structIterator()) {\n buffer[k] = v;\n }\n }\n catch (ignored) { }\n return buffer;\n }\n getEventStreamMember() {\n if (this.isStructSchema()) {\n for (const [memberName, memberSchema] of this.structIterator()) {\n if (memberSchema.isStreaming() && memberSchema.isStructSchema()) {\n return memberName;\n }\n }\n }\n return \"\";\n }\n *structIterator() {\n if (this.isUnitSchema()) {\n return;\n }\n if (!this.isStructSchema()) {\n throw new Error(\"@smithy/core/schema - cannot iterate non-struct schema.\");\n }\n const struct = this.getSchema();\n const z = struct[4].length;\n let it = struct[anno.it];\n if (it && z === it.length) {\n yield* it;\n return;\n }\n it = Array(z);\n for (let i = 0; i < z; ++i) {\n const k = struct[4][i];\n const v = member([struct[5][i], 0], k);\n yield (it[i] = [k, v]);\n }\n struct[anno.it] = it;\n }\n}\nfunction member(memberSchema, memberName) {\n if (memberSchema instanceof NormalizedSchema) {\n return Object.assign(memberSchema, {\n memberName,\n _isMemberSchema: true,\n });\n }\n const internalCtorAccess = NormalizedSchema;\n return new internalCtorAccess(memberSchema, memberName);\n}\nconst isMemberSchema = (sc) => Array.isArray(sc) && sc.length === 2;\nconst isStaticSchema = (sc) => Array.isArray(sc) && sc.length >= 5;\n\nclass SimpleSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/sim\");\n name;\n schemaRef;\n traits;\n symbol = SimpleSchema.symbol;\n}\nconst sim = (namespace, name, schemaRef, traits) => Schema.assign(new SimpleSchema(), {\n name,\n namespace,\n traits,\n schemaRef,\n});\nconst simAdapter = (namespace, name, traits, schemaRef) => Schema.assign(new SimpleSchema(), {\n name,\n namespace,\n traits,\n schemaRef,\n});\n\nconst SCHEMA = {\n BLOB: 0b0001_0101,\n STREAMING_BLOB: 0b0010_1010,\n BOOLEAN: 0b0000_0010,\n STRING: 0b0000_0000,\n NUMERIC: 0b0000_0001,\n BIG_INTEGER: 0b0001_0001,\n BIG_DECIMAL: 0b0001_0011,\n DOCUMENT: 0b0000_1111,\n TIMESTAMP_DEFAULT: 0b0000_0100,\n TIMESTAMP_DATE_TIME: 0b0000_0101,\n TIMESTAMP_HTTP_DATE: 0b0000_0110,\n TIMESTAMP_EPOCH_SECONDS: 0b0000_0111,\n LIST_MODIFIER: 0b0100_0000,\n MAP_MODIFIER: 0b1000_0000,\n};\n\nclass TypeRegistry {\n namespace;\n schemas;\n exceptions;\n static registries = new Map();\n constructor(namespace, schemas = new Map(), exceptions = new Map()) {\n this.namespace = namespace;\n this.schemas = schemas;\n this.exceptions = exceptions;\n }\n static for(namespace) {\n if (!TypeRegistry.registries.has(namespace)) {\n TypeRegistry.registries.set(namespace, new TypeRegistry(namespace));\n }\n return TypeRegistry.registries.get(namespace);\n }\n copyFrom(other) {\n const { schemas, exceptions } = this;\n for (const [k, v] of other.schemas) {\n if (!schemas.has(k)) {\n schemas.set(k, v);\n }\n }\n for (const [k, v] of other.exceptions) {\n if (!exceptions.has(k)) {\n exceptions.set(k, v);\n }\n }\n }\n register(shapeId, schema) {\n const qualifiedName = this.normalizeShapeId(shapeId);\n for (const r of [this, TypeRegistry.for(qualifiedName.split(\"#\")[0])]) {\n r.schemas.set(qualifiedName, schema);\n }\n }\n getSchema(shapeId) {\n const id = this.normalizeShapeId(shapeId);\n if (!this.schemas.has(id)) {\n throw new Error(`@smithy/core/schema - schema not found for ${id}`);\n }\n return this.schemas.get(id);\n }\n registerError(es, ctor) {\n const $error = es;\n const ns = $error[1];\n for (const r of [this, TypeRegistry.for(ns)]) {\n r.schemas.set(ns + \"#\" + $error[2], $error);\n r.exceptions.set($error, ctor);\n }\n }\n getErrorCtor(es) {\n const $error = es;\n if (this.exceptions.has($error)) {\n return this.exceptions.get($error);\n }\n const registry = TypeRegistry.for($error[1]);\n return registry.exceptions.get($error);\n }\n getBaseException() {\n for (const exceptionKey of this.exceptions.keys()) {\n if (Array.isArray(exceptionKey)) {\n const [, ns, name] = exceptionKey;\n const id = ns + \"#\" + name;\n if (id.startsWith(\"smithy.ts.sdk.synthetic.\") && id.endsWith(\"ServiceException\")) {\n return exceptionKey;\n }\n }\n }\n return undefined;\n }\n find(predicate) {\n for (const schema of this.schemas.values()) {\n if (predicate(schema)) {\n return schema;\n }\n }\n return undefined;\n }\n clear() {\n this.schemas.clear();\n this.exceptions.clear();\n }\n normalizeShapeId(shapeId) {\n if (shapeId.includes(\"#\")) {\n return shapeId;\n }\n return this.namespace + \"#\" + shapeId;\n }\n}\n\nexports.ErrorSchema = ErrorSchema;\nexports.ListSchema = ListSchema;\nexports.MapSchema = MapSchema;\nexports.NormalizedSchema = NormalizedSchema;\nexports.OperationSchema = OperationSchema;\nexports.SCHEMA = SCHEMA;\nexports.Schema = Schema;\nexports.SimpleSchema = SimpleSchema;\nexports.StructureSchema = StructureSchema;\nexports.TypeRegistry = TypeRegistry;\nexports.deref = deref;\nexports.deserializerMiddlewareOption = deserializerMiddlewareOption;\nexports.error = error;\nexports.getSchemaSerdePlugin = getSchemaSerdePlugin;\nexports.isStaticSchema = isStaticSchema;\nexports.list = list;\nexports.map = map;\nexports.op = op;\nexports.operation = operation;\nexports.serializerMiddlewareOption = serializerMiddlewareOption;\nexports.sim = sim;\nexports.simAdapter = simAdapter;\nexports.simpleSchemaCacheN = simpleSchemaCacheN;\nexports.simpleSchemaCacheS = simpleSchemaCacheS;\nexports.struct = struct;\nexports.traitsCache = traitsCache;\nexports.translateTraits = translateTraits;\n","'use strict';\n\nvar uuid = require('@smithy/uuid');\n\nconst copyDocumentWithTransform = (source, schemaRef, transform = (_) => _) => source;\n\nconst parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nconst expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nconst expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nconst expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nconst expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nconst expectInt = expectLong;\nconst expectInt32 = (value) => expectSizedInt(value, 32);\nconst expectShort = (value) => expectSizedInt(value, 16);\nconst expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nconst expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nconst expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nconst expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nconst expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = [];\n for (const k in asObject) {\n if (asObject[k] != null) {\n setKeys.push(k);\n }\n }\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nconst strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nconst strictParseFloat = strictParseDouble;\nconst strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nconst limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nconst handleFloat = limitedParseDouble;\nconst limitedParseFloat = limitedParseDouble;\nconst limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nconst strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nconst strictParseInt = strictParseLong;\nconst strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nconst strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nconst strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nconst logger = {\n warn: console.warn,\n};\n\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nfunction dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nconst parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET$1 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nconst parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET$1.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nconst IMF_FIXDATE$1 = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE$1 = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME$1 = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nconst parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE$1.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE$1.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME$1.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nconst parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else if (typeof value === \"object\" && value.tag === 1) {\n valueAsDouble = value.value;\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n\nconst LazyJsonString = function LazyJsonString(val) {\n const str = Object.assign(new String(val), {\n deserializeJSON() {\n return JSON.parse(String(val));\n },\n toString() {\n return String(val);\n },\n toJSON() {\n return String(val);\n },\n });\n return str;\n};\nLazyJsonString.from = (object) => {\n if (object && typeof object === \"object\" && (object instanceof LazyJsonString || \"deserializeJSON\" in object)) {\n return object;\n }\n else if (typeof object === \"string\" || Object.getPrototypeOf(object) === String.prototype) {\n return LazyJsonString(String(object));\n }\n return LazyJsonString(JSON.stringify(object));\n};\nLazyJsonString.fromObject = LazyJsonString.from;\n\nfunction quoteHeader(part) {\n if (part.includes(\",\") || part.includes('\"')) {\n part = `\"${part.replace(/\"/g, '\\\\\"')}\"`;\n }\n return part;\n}\n\nconst ddd = `(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?`;\nconst mmm = `(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)`;\nconst time = `(\\\\d?\\\\d):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))?`;\nconst date = `(\\\\d?\\\\d)`;\nconst year = `(\\\\d{4})`;\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d\\d)-(\\d\\d)[tT](\\d\\d):(\\d\\d):(\\d\\d)(\\.(\\d+))?(([-+]\\d\\d:\\d\\d)|[zZ])$/);\nconst IMF_FIXDATE = new RegExp(`^${ddd}, ${date} ${mmm} ${year} ${time} GMT$`);\nconst RFC_850_DATE = new RegExp(`^${ddd}, ${date}-${mmm}-(\\\\d\\\\d) ${time} GMT$`);\nconst ASC_TIME = new RegExp(`^${ddd} ${mmm} ( [1-9]|\\\\d\\\\d) ${time} ${year}$`);\nconst months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst _parseEpochTimestamp = (value) => {\n if (value == null) {\n return void 0;\n }\n let num = NaN;\n if (typeof value === \"number\") {\n num = value;\n }\n else if (typeof value === \"string\") {\n if (!/^-?\\d*\\.?\\d+$/.test(value)) {\n throw new TypeError(`parseEpochTimestamp - numeric string invalid.`);\n }\n num = Number.parseFloat(value);\n }\n else if (typeof value === \"object\" && value.tag === 1) {\n num = value.value;\n }\n if (isNaN(num) || Math.abs(num) === Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid finite numbers.\");\n }\n return new Date(Math.round(num * 1000));\n};\nconst _parseRfc3339DateTimeWithOffset = (value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC3339 timestamps must be strings\");\n }\n const matches = RFC3339_WITH_OFFSET.exec(value);\n if (!matches) {\n throw new TypeError(`Invalid RFC3339 timestamp format ${value}`);\n }\n const [, yearStr, monthStr, dayStr, hours, minutes, seconds, , ms, offsetStr] = matches;\n range(monthStr, 1, 12);\n range(dayStr, 1, 31);\n range(hours, 0, 23);\n range(minutes, 0, 59);\n range(seconds, 0, 60);\n const date = new Date(Date.UTC(Number(yearStr), Number(monthStr) - 1, Number(dayStr), Number(hours), Number(minutes), Number(seconds), Number(ms) ? Math.round(parseFloat(`0.${ms}`) * 1000) : 0));\n date.setUTCFullYear(Number(yearStr));\n if (offsetStr.toUpperCase() != \"Z\") {\n const [, sign, offsetH, offsetM] = /([+-])(\\d\\d):(\\d\\d)/.exec(offsetStr) || [void 0, \"+\", 0, 0];\n const scalar = sign === \"-\" ? 1 : -1;\n date.setTime(date.getTime() + scalar * (Number(offsetH) * 60 * 60 * 1000 + Number(offsetM) * 60 * 1000));\n }\n return date;\n};\nconst _parseRfc7231DateTime = (value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC7231 timestamps must be strings.\");\n }\n let day;\n let month;\n let year;\n let hour;\n let minute;\n let second;\n let fraction;\n let matches;\n if ((matches = IMF_FIXDATE.exec(value))) {\n [, day, month, year, hour, minute, second, fraction] = matches;\n }\n else if ((matches = RFC_850_DATE.exec(value))) {\n [, day, month, year, hour, minute, second, fraction] = matches;\n year = (Number(year) + 1900).toString();\n }\n else if ((matches = ASC_TIME.exec(value))) {\n [, month, day, hour, minute, second, fraction, year] = matches;\n }\n if (year && second) {\n const timestamp = Date.UTC(Number(year), months.indexOf(month), Number(day), Number(hour), Number(minute), Number(second), fraction ? Math.round(parseFloat(`0.${fraction}`) * 1000) : 0);\n range(day, 1, 31);\n range(hour, 0, 23);\n range(minute, 0, 59);\n range(second, 0, 60);\n const date = new Date(timestamp);\n date.setUTCFullYear(Number(year));\n return date;\n }\n throw new TypeError(`Invalid RFC7231 date-time value ${value}.`);\n};\nfunction range(v, min, max) {\n const _v = Number(v);\n if (_v < min || _v > max) {\n throw new Error(`Value ${_v} out of range [${min}, ${max}]`);\n }\n}\n\nfunction splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n }\n else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\n\nconst splitHeader = (value) => {\n const z = value.length;\n const values = [];\n let withinQuotes = false;\n let prevChar = undefined;\n let anchor = 0;\n for (let i = 0; i < z; ++i) {\n const char = value[i];\n switch (char) {\n case `\"`:\n if (prevChar !== \"\\\\\") {\n withinQuotes = !withinQuotes;\n }\n break;\n case \",\":\n if (!withinQuotes) {\n values.push(value.slice(anchor, i));\n anchor = i + 1;\n }\n break;\n }\n prevChar = char;\n }\n values.push(value.slice(anchor));\n return values.map((v) => {\n v = v.trim();\n const z = v.length;\n if (z < 2) {\n return v;\n }\n if (v[0] === `\"` && v[z - 1] === `\"`) {\n v = v.slice(1, z - 1);\n }\n return v.replace(/\\\\\"/g, '\"');\n });\n};\n\nconst format = /^-?\\d*(\\.\\d+)?$/;\nclass NumericValue {\n string;\n type;\n constructor(string, type) {\n this.string = string;\n this.type = type;\n if (!format.test(string)) {\n throw new Error(`@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point \".\", and an optional negation prefix \"-\".`);\n }\n }\n toString() {\n return this.string;\n }\n static [Symbol.hasInstance](object) {\n if (!object || typeof object !== \"object\") {\n return false;\n }\n const _nv = object;\n return NumericValue.prototype.isPrototypeOf(object) || (_nv.type === \"bigDecimal\" && format.test(_nv.string));\n }\n}\nfunction nv(input) {\n return new NumericValue(String(input), \"bigDecimal\");\n}\n\nexports.generateIdempotencyToken = uuid.v4;\nexports.LazyJsonString = LazyJsonString;\nexports.NumericValue = NumericValue;\nexports._parseEpochTimestamp = _parseEpochTimestamp;\nexports._parseRfc3339DateTimeWithOffset = _parseRfc3339DateTimeWithOffset;\nexports._parseRfc7231DateTime = _parseRfc7231DateTime;\nexports.copyDocumentWithTransform = copyDocumentWithTransform;\nexports.dateToUtcString = dateToUtcString;\nexports.expectBoolean = expectBoolean;\nexports.expectByte = expectByte;\nexports.expectFloat32 = expectFloat32;\nexports.expectInt = expectInt;\nexports.expectInt32 = expectInt32;\nexports.expectLong = expectLong;\nexports.expectNonNull = expectNonNull;\nexports.expectNumber = expectNumber;\nexports.expectObject = expectObject;\nexports.expectShort = expectShort;\nexports.expectString = expectString;\nexports.expectUnion = expectUnion;\nexports.handleFloat = handleFloat;\nexports.limitedParseDouble = limitedParseDouble;\nexports.limitedParseFloat = limitedParseFloat;\nexports.limitedParseFloat32 = limitedParseFloat32;\nexports.logger = logger;\nexports.nv = nv;\nexports.parseBoolean = parseBoolean;\nexports.parseEpochTimestamp = parseEpochTimestamp;\nexports.parseRfc3339DateTime = parseRfc3339DateTime;\nexports.parseRfc3339DateTimeWithOffset = parseRfc3339DateTimeWithOffset;\nexports.parseRfc7231DateTime = parseRfc7231DateTime;\nexports.quoteHeader = quoteHeader;\nexports.splitEvery = splitEvery;\nexports.splitHeader = splitHeader;\nexports.strictParseByte = strictParseByte;\nexports.strictParseDouble = strictParseDouble;\nexports.strictParseFloat = strictParseFloat;\nexports.strictParseFloat32 = strictParseFloat32;\nexports.strictParseInt = strictParseInt;\nexports.strictParseInt32 = strictParseInt32;\nexports.strictParseLong = strictParseLong;\nexports.strictParseShort = strictParseShort;\n","'use strict';\n\nvar propertyProvider = require('@smithy/property-provider');\nvar url = require('url');\nvar buffer = require('buffer');\nvar http = require('http');\nvar nodeConfigProvider = require('@smithy/node-config-provider');\nvar urlParser = require('@smithy/url-parser');\n\nfunction httpRequest(options) {\n return new Promise((resolve, reject) => {\n const req = http.request({\n method: \"GET\",\n ...options,\n hostname: options.hostname?.replace(/^\\[(.+)\\]$/, \"$1\"),\n });\n req.on(\"error\", (err) => {\n reject(Object.assign(new propertyProvider.ProviderError(\"Unable to connect to instance metadata service\"), err));\n req.destroy();\n });\n req.on(\"timeout\", () => {\n reject(new propertyProvider.ProviderError(\"TimeoutError from instance metadata service\"));\n req.destroy();\n });\n req.on(\"response\", (res) => {\n const { statusCode = 400 } = res;\n if (statusCode < 200 || 300 <= statusCode) {\n reject(Object.assign(new propertyProvider.ProviderError(\"Error response received from instance metadata service\"), { statusCode }));\n req.destroy();\n }\n const chunks = [];\n res.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n res.on(\"end\", () => {\n resolve(buffer.Buffer.concat(chunks));\n req.destroy();\n });\n });\n req.end();\n });\n}\n\nconst isImdsCredentials = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.AccessKeyId === \"string\" &&\n typeof arg.SecretAccessKey === \"string\" &&\n typeof arg.Token === \"string\" &&\n typeof arg.Expiration === \"string\";\nconst fromImdsCredentials = (creds) => ({\n accessKeyId: creds.AccessKeyId,\n secretAccessKey: creds.SecretAccessKey,\n sessionToken: creds.Token,\n expiration: new Date(creds.Expiration),\n ...(creds.AccountId && { accountId: creds.AccountId }),\n});\n\nconst DEFAULT_TIMEOUT = 1000;\nconst DEFAULT_MAX_RETRIES = 0;\nconst providerConfigFromInit = ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT, }) => ({ maxRetries, timeout });\n\nconst retry = (toRetry, maxRetries) => {\n let promise = toRetry();\n for (let i = 0; i < maxRetries; i++) {\n promise = promise.catch(toRetry);\n }\n return promise;\n};\n\nconst ENV_CMDS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst ENV_CMDS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst ENV_CMDS_AUTH_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromContainerMetadata = (init = {}) => {\n const { timeout, maxRetries } = providerConfigFromInit(init);\n return () => retry(async () => {\n const requestOptions = await getCmdsUri({ logger: init.logger });\n const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));\n if (!isImdsCredentials(credsResponse)) {\n throw new propertyProvider.CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credsResponse);\n }, maxRetries);\n};\nconst requestFromEcsImds = async (timeout, options) => {\n if (process.env[ENV_CMDS_AUTH_TOKEN]) {\n options.headers = {\n ...options.headers,\n Authorization: process.env[ENV_CMDS_AUTH_TOKEN],\n };\n }\n const buffer = await httpRequest({\n ...options,\n timeout,\n });\n return buffer.toString();\n};\nconst CMDS_IP = \"169.254.170.2\";\nconst GREENGRASS_HOSTS = {\n localhost: true,\n \"127.0.0.1\": true,\n};\nconst GREENGRASS_PROTOCOLS = {\n \"http:\": true,\n \"https:\": true,\n};\nconst getCmdsUri = async ({ logger }) => {\n if (process.env[ENV_CMDS_RELATIVE_URI]) {\n return {\n hostname: CMDS_IP,\n path: process.env[ENV_CMDS_RELATIVE_URI],\n };\n }\n if (process.env[ENV_CMDS_FULL_URI]) {\n const parsed = url.parse(process.env[ENV_CMDS_FULL_URI]);\n if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {\n throw new propertyProvider.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {\n tryNextLink: false,\n logger,\n });\n }\n if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {\n throw new propertyProvider.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {\n tryNextLink: false,\n logger,\n });\n }\n return {\n ...parsed,\n port: parsed.port ? parseInt(parsed.port, 10) : undefined,\n };\n }\n throw new propertyProvider.CredentialsProviderError(\"The container metadata credential provider cannot be used unless\" +\n ` the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment` +\n \" variable is set\", {\n tryNextLink: false,\n logger,\n });\n};\n\nclass InstanceMetadataV1FallbackError extends propertyProvider.CredentialsProviderError {\n tryNextLink;\n name = \"InstanceMetadataV1FallbackError\";\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, InstanceMetadataV1FallbackError.prototype);\n }\n}\n\nexports.Endpoint = void 0;\n(function (Endpoint) {\n Endpoint[\"IPv4\"] = \"http://169.254.169.254\";\n Endpoint[\"IPv6\"] = \"http://[fd00:ec2::254]\";\n})(exports.Endpoint || (exports.Endpoint = {}));\n\nconst ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nconst CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nconst ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME],\n default: undefined,\n};\n\nvar EndpointMode;\n(function (EndpointMode) {\n EndpointMode[\"IPv4\"] = \"IPv4\";\n EndpointMode[\"IPv6\"] = \"IPv6\";\n})(EndpointMode || (EndpointMode = {}));\n\nconst ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nconst CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nconst ENDPOINT_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME],\n default: EndpointMode.IPv4,\n};\n\nconst getInstanceMetadataEndpoint = async () => urlParser.parseUrl((await getFromEndpointConfig()) || (await getFromEndpointModeConfig()));\nconst getFromEndpointConfig = async () => nodeConfigProvider.loadConfig(ENDPOINT_CONFIG_OPTIONS)();\nconst getFromEndpointModeConfig = async () => {\n const endpointMode = await nodeConfigProvider.loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS)();\n switch (endpointMode) {\n case EndpointMode.IPv4:\n return exports.Endpoint.IPv4;\n case EndpointMode.IPv6:\n return exports.Endpoint.IPv6;\n default:\n throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode)}`);\n }\n};\n\nconst STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;\nconst STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;\nconst STATIC_STABILITY_DOC_URL = \"https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html\";\nconst getExtendedInstanceMetadataCredentials = (credentials, logger) => {\n const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS +\n Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);\n const newExpiration = new Date(Date.now() + refreshInterval * 1000);\n logger.warn(\"Attempting credential expiration extension due to a credential service availability issue. A refresh of these \" +\n `credentials will be attempted after ${new Date(newExpiration)}.\\nFor more information, please visit: ` +\n STATIC_STABILITY_DOC_URL);\n const originalExpiration = credentials.originalExpiration ?? credentials.expiration;\n return {\n ...credentials,\n ...(originalExpiration ? { originalExpiration } : {}),\n expiration: newExpiration,\n };\n};\n\nconst staticStabilityProvider = (provider, options = {}) => {\n const logger = options?.logger || console;\n let pastCredentials;\n return async () => {\n let credentials;\n try {\n credentials = await provider();\n if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {\n credentials = getExtendedInstanceMetadataCredentials(credentials, logger);\n }\n }\n catch (e) {\n if (pastCredentials) {\n logger.warn(\"Credential renew failed: \", e);\n credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger);\n }\n else {\n throw e;\n }\n }\n pastCredentials = credentials;\n return credentials;\n };\n};\n\nconst IMDS_PATH = \"/latest/meta-data/iam/security-credentials/\";\nconst IMDS_TOKEN_PATH = \"/latest/api/token\";\nconst AWS_EC2_METADATA_V1_DISABLED = \"AWS_EC2_METADATA_V1_DISABLED\";\nconst PROFILE_AWS_EC2_METADATA_V1_DISABLED = \"ec2_metadata_v1_disabled\";\nconst X_AWS_EC2_METADATA_TOKEN = \"x-aws-ec2-metadata-token\";\nconst fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger });\nconst getInstanceMetadataProvider = (init = {}) => {\n let disableFetchToken = false;\n const { logger, profile } = init;\n const { timeout, maxRetries } = providerConfigFromInit(init);\n const getCredentials = async (maxRetries, options) => {\n const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null;\n if (isImdsV1Fallback) {\n let fallbackBlockedFromProfile = false;\n let fallbackBlockedFromProcessEnv = false;\n const configValue = await nodeConfigProvider.loadConfig({\n environmentVariableSelector: (env) => {\n const envValue = env[AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProcessEnv = !!envValue && envValue !== \"false\";\n if (envValue === undefined) {\n throw new propertyProvider.CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });\n }\n return fallbackBlockedFromProcessEnv;\n },\n configFileSelector: (profile) => {\n const profileValue = profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProfile = !!profileValue && profileValue !== \"false\";\n return fallbackBlockedFromProfile;\n },\n default: false,\n }, {\n profile,\n })();\n if (init.ec2MetadataV1Disabled || configValue) {\n const causes = [];\n if (init.ec2MetadataV1Disabled)\n causes.push(\"credential provider initialization (runtime option ec2MetadataV1Disabled)\");\n if (fallbackBlockedFromProfile)\n causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);\n if (fallbackBlockedFromProcessEnv)\n causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);\n throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(\", \")}].`);\n }\n }\n const imdsProfile = (await retry(async () => {\n let profile;\n try {\n profile = await getProfile(options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return profile;\n }, maxRetries)).trim();\n return retry(async () => {\n let creds;\n try {\n creds = await getCredentialsFromProfile(imdsProfile, options, init);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return creds;\n }, maxRetries);\n };\n return async () => {\n const endpoint = await getInstanceMetadataEndpoint();\n if (disableFetchToken) {\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (no token fetch)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n else {\n let token;\n try {\n token = (await getMetadataToken({ ...endpoint, timeout })).toString();\n }\n catch (error) {\n if (error?.statusCode === 400) {\n throw Object.assign(error, {\n message: \"EC2 Metadata token request returned error\",\n });\n }\n else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n disableFetchToken = true;\n }\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (initial)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n return getCredentials(maxRetries, {\n ...endpoint,\n headers: {\n [X_AWS_EC2_METADATA_TOKEN]: token,\n },\n timeout,\n });\n }\n };\n};\nconst getMetadataToken = async (options) => httpRequest({\n ...options,\n path: IMDS_TOKEN_PATH,\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\",\n },\n});\nconst getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString();\nconst getCredentialsFromProfile = async (profile, options, init) => {\n const credentialsResponse = JSON.parse((await httpRequest({\n ...options,\n path: IMDS_PATH + profile,\n })).toString());\n if (!isImdsCredentials(credentialsResponse)) {\n throw new propertyProvider.CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credentialsResponse);\n};\n\nexports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES;\nexports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;\nexports.ENV_CMDS_AUTH_TOKEN = ENV_CMDS_AUTH_TOKEN;\nexports.ENV_CMDS_FULL_URI = ENV_CMDS_FULL_URI;\nexports.ENV_CMDS_RELATIVE_URI = ENV_CMDS_RELATIVE_URI;\nexports.fromContainerMetadata = fromContainerMetadata;\nexports.fromInstanceMetadata = fromInstanceMetadata;\nexports.getInstanceMetadataEndpoint = getInstanceMetadataEndpoint;\nexports.httpRequest = httpRequest;\nexports.providerConfigFromInit = providerConfigFromInit;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n EventStreamCodec: () => EventStreamCodec,\n HeaderMarshaller: () => HeaderMarshaller,\n Int64: () => Int64,\n MessageDecoderStream: () => MessageDecoderStream,\n MessageEncoderStream: () => MessageEncoderStream,\n SmithyMessageDecoderStream: () => SmithyMessageDecoderStream,\n SmithyMessageEncoderStream: () => SmithyMessageEncoderStream\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamCodec.ts\nvar import_crc322 = require(\"@aws-crypto/crc32\");\n\n// src/HeaderMarshaller.ts\n\n\n// src/Int64.ts\nvar import_util_hex_encoding = require(\"@smithy/util-hex-encoding\");\nvar Int64 = class _Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static {\n __name(this, \"Int64\");\n }\n static fromNumber(number) {\n if (number > 9223372036854776e3 || number < -9223372036854776e3) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new _Int64(bytes);\n }\n /**\n * Called implicitly by infix arithmetic operators.\n */\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n return parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n};\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 255;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n__name(negate, \"negate\");\n\n// src/HeaderMarshaller.ts\nvar HeaderMarshaller = class {\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n static {\n __name(this, \"HeaderMarshaller\");\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]);\n case \"byte\":\n return Uint8Array.from([2 /* byte */, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3 /* short */);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4 /* integer */);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5 /* long */;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6 /* byteArray */);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7 /* string */);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8 /* timestamp */;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9 /* uuid */;\n uuidBytes.set((0, import_util_hex_encoding.fromHex)(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength))\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf())\n };\n position += 8;\n break;\n case 9 /* uuid */:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(0, 4))}-${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(4, 6))}-${(0, import_util_hex_encoding.toHex)(\n uuidBytes.subarray(6, 8)\n )}-${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(8, 10))}-${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(10))}`\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n};\nvar BOOLEAN_TAG = \"boolean\";\nvar BYTE_TAG = \"byte\";\nvar SHORT_TAG = \"short\";\nvar INT_TAG = \"integer\";\nvar LONG_TAG = \"long\";\nvar BINARY_TAG = \"binary\";\nvar STRING_TAG = \"string\";\nvar TIMESTAMP_TAG = \"timestamp\";\nvar UUID_TAG = \"uuid\";\nvar UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n\n// src/splitMessage.ts\nvar import_crc32 = require(\"@aws-crypto/crc32\");\nvar PRELUDE_MEMBER_LENGTH = 4;\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nvar CHECKSUM_LENGTH = 4;\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nfunction splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new import_crc32.Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(\n `The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`\n );\n }\n checksummer.update(\n new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH))\n );\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(\n `The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`\n );\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(\n buffer,\n byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength,\n messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)\n )\n };\n}\n__name(splitMessage, \"splitMessage\");\n\n// src/EventStreamCodec.ts\nvar EventStreamCodec = class {\n static {\n __name(this, \"EventStreamCodec\");\n }\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n }\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n }\n };\n }\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message.\n */\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new import_crc322.Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n /**\n * Convert a binary event stream message into a JavaScript object with an\n * opaque, binary body and tagged, parsed headers.\n */\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message header.\n */\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n};\n\n// src/MessageDecoderStream.ts\nvar MessageDecoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"MessageDecoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n};\n\n// src/MessageEncoderStream.ts\nvar MessageEncoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"MessageEncoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n};\n\n// src/SmithyMessageDecoderStream.ts\nvar SmithyMessageDecoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"SmithyMessageDecoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === void 0)\n continue;\n yield deserialized;\n }\n }\n};\n\n// src/SmithyMessageEncoderStream.ts\nvar SmithyMessageEncoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"SmithyMessageEncoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EventStreamCodec,\n HeaderMarshaller,\n Int64,\n MessageDecoderStream,\n MessageEncoderStream,\n SmithyMessageDecoderStream,\n SmithyMessageEncoderStream\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n resolveEventStreamSerdeConfig: () => resolveEventStreamSerdeConfig\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamSerdeConfig.ts\nvar resolveEventStreamSerdeConfig = /* @__PURE__ */ __name((input) => Object.assign(input, {\n eventStreamMarshaller: input.eventStreamSerdeProvider(input)\n}), \"resolveEventStreamSerdeConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n resolveEventStreamSerdeConfig\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n EventStreamMarshaller: () => EventStreamMarshaller,\n eventStreamSerdeProvider: () => eventStreamSerdeProvider\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamMarshaller.ts\nvar import_eventstream_serde_universal = require(\"@smithy/eventstream-serde-universal\");\nvar import_stream = require(\"stream\");\n\n// src/utils.ts\nasync function* readabletoIterable(readStream) {\n let streamEnded = false;\n let generationEnded = false;\n const records = new Array();\n readStream.on(\"error\", (err) => {\n if (!streamEnded) {\n streamEnded = true;\n }\n if (err) {\n throw err;\n }\n });\n readStream.on(\"data\", (data) => {\n records.push(data);\n });\n readStream.on(\"end\", () => {\n streamEnded = true;\n });\n while (!generationEnded) {\n const value = await new Promise((resolve) => setTimeout(() => resolve(records.shift()), 0));\n if (value) {\n yield value;\n }\n generationEnded = streamEnded && records.length === 0;\n }\n}\n__name(readabletoIterable, \"readabletoIterable\");\n\n// src/EventStreamMarshaller.ts\nvar EventStreamMarshaller = class {\n static {\n __name(this, \"EventStreamMarshaller\");\n }\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new import_eventstream_serde_universal.EventStreamMarshaller({\n utf8Decoder,\n utf8Encoder\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = typeof body[Symbol.asyncIterator] === \"function\" ? body : readabletoIterable(body);\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n return import_stream.Readable.from(this.universalMarshaller.serialize(input, serializer));\n }\n};\n\n// src/provider.ts\nvar eventStreamSerdeProvider = /* @__PURE__ */ __name((options) => new EventStreamMarshaller(options), \"eventStreamSerdeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EventStreamMarshaller,\n eventStreamSerdeProvider\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n EventStreamMarshaller: () => EventStreamMarshaller,\n eventStreamSerdeProvider: () => eventStreamSerdeProvider\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamMarshaller.ts\nvar import_eventstream_codec = require(\"@smithy/eventstream-codec\");\n\n// src/getChunkedStream.ts\nfunction getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = /* @__PURE__ */ __name((size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n }, \"allocateMessage\");\n const iterator = /* @__PURE__ */ __name(async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n } else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n } else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(\n 4 - currentMessagePendingLength,\n // remaining bytes to fill the messageLengthBuffer\n bytesRemaining\n // bytes left in chunk\n );\n messageLengthBuffer.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesForTotal),\n currentMessagePendingLength\n );\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(\n currentMessageTotalLength - currentMessagePendingLength,\n // number of bytes left to complete message\n chunkLength - currentOffset\n // number of bytes left in the original chunk\n );\n currentMessage.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesToWrite),\n currentMessagePendingLength\n );\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n }, \"iterator\");\n return {\n [Symbol.asyncIterator]: iterator\n };\n}\n__name(getChunkedStream, \"getChunkedStream\");\n\n// src/getUnmarshalledStream.ts\nfunction getMessageUnmarshaller(deserializer, toUtf8) {\n return async function(message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n } else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n } else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n } else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n__name(getMessageUnmarshaller, \"getMessageUnmarshaller\");\n\n// src/EventStreamMarshaller.ts\nvar EventStreamMarshaller = class {\n static {\n __name(this, \"EventStreamMarshaller\");\n }\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new import_eventstream_codec.EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new import_eventstream_codec.SmithyMessageDecoderStream({\n messageStream: new import_eventstream_codec.MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n // @ts-expect-error Type 'T' is not assignable to type 'Record'\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder)\n });\n }\n serialize(inputStream, serializer) {\n return new import_eventstream_codec.MessageEncoderStream({\n messageStream: new import_eventstream_codec.SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true\n });\n }\n};\n\n// src/provider.ts\nvar eventStreamSerdeProvider = /* @__PURE__ */ __name((options) => new EventStreamMarshaller(options), \"eventStreamSerdeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EventStreamMarshaller,\n eventStreamSerdeProvider\n});\n\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar querystringBuilder = require('@smithy/querystring-builder');\nvar utilBase64 = require('@smithy/util-base64');\n\nfunction createRequest(url, requestOptions) {\n return new Request(url, requestOptions);\n}\n\nfunction requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n\nconst keepAliveSupport = {\n supported: undefined,\n};\nclass FetchHttpHandler {\n config;\n configProvider;\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new FetchHttpHandler(instanceOrOptions);\n }\n constructor(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then((opts) => opts || {});\n }\n else {\n this.config = options ?? {};\n this.configProvider = Promise.resolve(this.config);\n }\n if (keepAliveSupport.supported === undefined) {\n keepAliveSupport.supported = Boolean(typeof Request !== \"undefined\" && \"keepalive\" in createRequest(\"https://[::1]\"));\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal, requestTimeout: requestTimeout$1 } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = requestTimeout$1 ?? this.config.requestTimeout;\n const keepAlive = this.config.keepAlive === true;\n const credentials = this.config.credentials;\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n return Promise.reject(abortError);\n }\n let path = request.path;\n const queryString = querystringBuilder.buildQueryString(request.query || {});\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const { port, method } = request;\n const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions = {\n body,\n headers: new Headers(request.headers),\n method: method,\n credentials,\n };\n if (this.config?.cache) {\n requestOptions.cache = this.config.cache;\n }\n if (body) {\n requestOptions.duplex = \"half\";\n }\n if (typeof AbortController !== \"undefined\") {\n requestOptions.signal = abortSignal;\n }\n if (keepAliveSupport.supported) {\n requestOptions.keepalive = keepAlive;\n }\n if (typeof this.config.requestInit === \"function\") {\n Object.assign(requestOptions, this.config.requestInit(request));\n }\n let removeSignalEventListener = () => { };\n const fetchRequest = createRequest(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders = response.headers;\n const transformedHeaders = {};\n for (const pair of fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n const hasReadableStream = response.body != undefined;\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new protocolHttp.HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body,\n }),\n }));\n }\n return {\n response: new protocolHttp.HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise((resolve, reject) => {\n const onAbort = () => {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n removeSignalEventListener = () => signal.removeEventListener(\"abort\", onAbort);\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }));\n }\n return Promise.race(raceOfPromises).finally(removeSignalEventListener);\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n config[key] = value;\n return config;\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n\nconst streamCollector = async (stream) => {\n if ((typeof Blob === \"function\" && stream instanceof Blob) || stream.constructor?.name === \"Blob\") {\n if (Blob.prototype.arrayBuffer !== undefined) {\n return new Uint8Array(await stream.arrayBuffer());\n }\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = utilBase64.fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\");\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n\nexports.FetchHttpHandler = FetchHttpHandler;\nexports.keepAliveSupport = keepAliveSupport;\nexports.streamCollector = streamCollector;\n","'use strict';\n\nvar utilBufferFrom = require('@smithy/util-buffer-from');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar buffer = require('buffer');\nvar crypto = require('crypto');\n\nclass Hash {\n algorithmIdentifier;\n secret;\n hash;\n constructor(algorithmIdentifier, secret) {\n this.algorithmIdentifier = algorithmIdentifier;\n this.secret = secret;\n this.reset();\n }\n update(toHash, encoding) {\n this.hash.update(utilUtf8.toUint8Array(castSourceData(toHash, encoding)));\n }\n digest() {\n return Promise.resolve(this.hash.digest());\n }\n reset() {\n this.hash = this.secret\n ? crypto.createHmac(this.algorithmIdentifier, castSourceData(this.secret))\n : crypto.createHash(this.algorithmIdentifier);\n }\n}\nfunction castSourceData(toCast, encoding) {\n if (buffer.Buffer.isBuffer(toCast)) {\n return toCast;\n }\n if (typeof toCast === \"string\") {\n return utilBufferFrom.fromString(toCast, encoding);\n }\n if (ArrayBuffer.isView(toCast)) {\n return utilBufferFrom.fromArrayBuffer(toCast.buffer, toCast.byteOffset, toCast.byteLength);\n }\n return utilBufferFrom.fromArrayBuffer(toCast);\n}\n\nexports.Hash = Hash;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fileStreamHasher: () => fileStreamHasher,\n readableStreamHasher: () => readableStreamHasher\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fileStreamHasher.ts\nvar import_fs = require(\"fs\");\n\n// src/HashCalculator.ts\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_stream = require(\"stream\");\nvar HashCalculator = class extends import_stream.Writable {\n constructor(hash, options) {\n super(options);\n this.hash = hash;\n }\n static {\n __name(this, \"HashCalculator\");\n }\n _write(chunk, encoding, callback) {\n try {\n this.hash.update((0, import_util_utf8.toUint8Array)(chunk));\n } catch (err) {\n return callback(err);\n }\n callback();\n }\n};\n\n// src/fileStreamHasher.ts\nvar fileStreamHasher = /* @__PURE__ */ __name((hashCtor, fileStream) => new Promise((resolve, reject) => {\n if (!isReadStream(fileStream)) {\n reject(new Error(\"Unable to calculate hash for non-file streams.\"));\n return;\n }\n const fileStreamTee = (0, import_fs.createReadStream)(fileStream.path, {\n start: fileStream.start,\n end: fileStream.end\n });\n const hash = new hashCtor();\n const hashCalculator = new HashCalculator(hash);\n fileStreamTee.pipe(hashCalculator);\n fileStreamTee.on(\"error\", (err) => {\n hashCalculator.end();\n reject(err);\n });\n hashCalculator.on(\"error\", reject);\n hashCalculator.on(\"finish\", function() {\n hash.digest().then(resolve).catch(reject);\n });\n}), \"fileStreamHasher\");\nvar isReadStream = /* @__PURE__ */ __name((stream) => typeof stream.path === \"string\", \"isReadStream\");\n\n// src/readableStreamHasher.ts\nvar readableStreamHasher = /* @__PURE__ */ __name((hashCtor, readableStream) => {\n if (readableStream.readableFlowing !== null) {\n throw new Error(\"Unable to calculate hash for flowing readable stream\");\n }\n const hash = new hashCtor();\n const hashCalculator = new HashCalculator(hash);\n readableStream.pipe(hashCalculator);\n return new Promise((resolve, reject) => {\n readableStream.on(\"error\", (err) => {\n hashCalculator.end();\n reject(err);\n });\n hashCalculator.on(\"error\", reject);\n hashCalculator.on(\"finish\", () => {\n hash.digest().then(resolve).catch(reject);\n });\n });\n}, \"readableStreamHasher\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fileStreamHasher,\n readableStreamHasher\n});\n\n","'use strict';\n\nconst isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n\nexports.isArrayBuffer = isArrayBuffer;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nconst contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nconst getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n\nexports.contentLengthMiddleware = contentLengthMiddleware;\nexports.contentLengthMiddlewareOptions = contentLengthMiddlewareOptions;\nexports.getContentLengthPlugin = getContentLengthPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointFromConfig = void 0;\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst getEndpointUrlConfig_1 = require(\"./getEndpointUrlConfig\");\nconst getEndpointFromConfig = async (serviceId) => (0, node_config_provider_1.loadConfig)((0, getEndpointUrlConfig_1.getEndpointUrlConfig)(serviceId ?? \"\"))();\nexports.getEndpointFromConfig = getEndpointFromConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointUrlConfig = void 0;\nconst shared_ini_file_loader_1 = require(\"@smithy/shared-ini-file-loader\");\nconst ENV_ENDPOINT_URL = \"AWS_ENDPOINT_URL\";\nconst CONFIG_ENDPOINT_URL = \"endpoint_url\";\nconst getEndpointUrlConfig = (serviceId) => ({\n environmentVariableSelector: (env) => {\n const serviceSuffixParts = serviceId.split(\" \").map((w) => w.toUpperCase());\n const serviceEndpointUrl = env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join(\"_\")];\n if (serviceEndpointUrl)\n return serviceEndpointUrl;\n const endpointUrl = env[ENV_ENDPOINT_URL];\n if (endpointUrl)\n return endpointUrl;\n return undefined;\n },\n configFileSelector: (profile, config) => {\n if (config && profile.services) {\n const servicesSection = config[[\"services\", profile.services].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)];\n if (servicesSection) {\n const servicePrefixParts = serviceId.split(\" \").map((w) => w.toLowerCase());\n const endpointUrl = servicesSection[[servicePrefixParts.join(\"_\"), CONFIG_ENDPOINT_URL].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)];\n if (endpointUrl)\n return endpointUrl;\n }\n }\n const endpointUrl = profile[CONFIG_ENDPOINT_URL];\n if (endpointUrl)\n return endpointUrl;\n return undefined;\n },\n default: undefined,\n});\nexports.getEndpointUrlConfig = getEndpointUrlConfig;\n","'use strict';\n\nvar core = require('@smithy/core');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar getEndpointFromConfig = require('./adaptors/getEndpointFromConfig');\nvar urlParser = require('@smithy/url-parser');\nvar middlewareSerde = require('@smithy/middleware-serde');\n\nconst resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nconst isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nconst isArnBucketName = (bucketName) => {\n const [arn, partition, service, , , bucket] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = Boolean(isArn && partition && service && bucket);\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return isValidArn;\n};\n\nconst createConfigValueProvider = (configKey, canonicalEndpointParamKey, config, isClientContextParam = false) => {\n const configProvider = async () => {\n let configValue;\n if (isClientContextParam) {\n const clientContextParams = config.clientContextParams;\n const nestedValue = clientContextParams?.[configKey];\n configValue = nestedValue ?? config[configKey] ?? config[canonicalEndpointParamKey];\n }\n else {\n configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n }\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"credentialScope\" || canonicalEndpointParamKey === \"CredentialScope\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.credentialScope ?? credentials?.CredentialScope;\n return configValue;\n };\n }\n if (configKey === \"accountId\" || canonicalEndpointParamKey === \"AccountId\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.accountId ?? credentials?.AccountId;\n return configValue;\n };\n }\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n if (config.isCustomEndpoint === false) {\n return undefined;\n }\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n\nconst toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n const v1Endpoint = urlParser.parseUrl(endpoint.url);\n if (endpoint.headers) {\n v1Endpoint.headers = {};\n for (const [name, values] of Object.entries(endpoint.headers)) {\n v1Endpoint.headers[name.toLowerCase()] = values.join(\", \");\n }\n }\n return v1Endpoint;\n }\n return endpoint;\n }\n return urlParser.parseUrl(endpoint);\n};\n\nconst getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.isCustomEndpoint) {\n let endpointFromConfig;\n if (clientConfig.serviceConfiguredEndpoint) {\n endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n }\n else {\n endpointFromConfig = await getEndpointFromConfig.getEndpointFromConfig(clientConfig.serviceId);\n }\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\n clientConfig.isCustomEndpoint = true;\n }\n }\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n if (clientConfig.isCustomEndpoint && clientConfig.endpoint) {\n const customEndpoint = await clientConfig.endpoint();\n if (customEndpoint?.headers) {\n endpoint.headers ??= {};\n for (const [name, value] of Object.entries(customEndpoint.headers)) {\n endpoint.headers[name] = Array.isArray(value) ? value : [value];\n }\n }\n }\n return endpoint;\n};\nconst resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig, instruction.type !== \"builtInParams\")();\n break;\n case \"operationContextParams\":\n endpointParams[name] = instruction.get(commandInput);\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n\nconst endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n if (config.isCustomEndpoint) {\n core.setFeature(context, \"ENDPOINT_OVERRIDE\", \"N\");\n }\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption;\n if (httpAuthOption) {\n httpAuthOption.signingProperties = Object.assign(httpAuthOption.signingProperties || {}, {\n signing_region: authScheme.signingRegion,\n signingRegion: authScheme.signingRegion,\n signing_service: authScheme.signingName,\n signingName: authScheme.signingName,\n signingRegionSet: authScheme.signingRegionSet,\n }, authScheme.properties);\n }\n }\n return next({\n ...args,\n });\n };\n};\n\nconst endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: middlewareSerde.serializerMiddlewareOption.name,\n};\nconst getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n\nconst resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await utilMiddleware.normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n const resolvedConfig = Object.assign(input, {\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: utilMiddleware.normalizeProvider(useDualstackEndpoint ?? false),\n useFipsEndpoint: utilMiddleware.normalizeProvider(useFipsEndpoint ?? false),\n });\n let configuredEndpointPromise = undefined;\n resolvedConfig.serviceConfiguredEndpoint = async () => {\n if (input.serviceId && !configuredEndpointPromise) {\n configuredEndpointPromise = getEndpointFromConfig.getEndpointFromConfig(input.serviceId);\n }\n return configuredEndpointPromise;\n };\n return resolvedConfig;\n};\n\nconst resolveEndpointRequiredConfig = (input) => {\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n throw new Error(\"@smithy/middleware-endpoint: (default endpointRuleSet) endpoint is not set - you must configure an endpoint.\");\n };\n }\n return input;\n};\n\nexports.endpointMiddleware = endpointMiddleware;\nexports.endpointMiddlewareOptions = endpointMiddlewareOptions;\nexports.getEndpointFromInstructions = getEndpointFromInstructions;\nexports.getEndpointPlugin = getEndpointPlugin;\nexports.resolveEndpointConfig = resolveEndpointConfig;\nexports.resolveEndpointRequiredConfig = resolveEndpointRequiredConfig;\nexports.resolveParams = resolveParams;\nexports.toEndpointV1 = toEndpointV1;\n","'use strict';\n\nvar utilRetry = require('@smithy/util-retry');\nvar protocolHttp = require('@smithy/protocol-http');\nvar serviceErrorClassification = require('@smithy/service-error-classification');\nvar uuid = require('@smithy/uuid');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar smithyClient = require('@smithy/smithy-client');\nvar isStreamingPayload = require('./isStreamingPayload/isStreamingPayload');\nvar serde = require('@smithy/core/serde');\n\nconst asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n\nconst getDefaultRetryQuota = (initialRetryTokens, options) => {\n const MAX_CAPACITY = initialRetryTokens;\n const noRetryIncrement = utilRetry.NO_RETRY_INCREMENT;\n const retryCost = utilRetry.RETRY_COST;\n const timeoutRetryCost = utilRetry.TIMEOUT_RETRY_COST;\n let availableCapacity = initialRetryTokens;\n const getCapacityAmount = (error) => (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost);\n const hasRetryTokens = (error) => getCapacityAmount(error) <= availableCapacity;\n const retrieveRetryTokens = (error) => {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n const releaseRetryTokens = (capacityReleaseAmount) => {\n availableCapacity += capacityReleaseAmount ?? noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens,\n });\n};\n\nconst defaultDelayDecider = (delayBase, attempts) => Math.floor(Math.min(utilRetry.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n\nconst defaultRetryDecider = (error) => {\n if (!error) {\n return false;\n }\n return serviceErrorClassification.isRetryableByTrait(error) || serviceErrorClassification.isClockSkewError(error) || serviceErrorClassification.isThrottlingError(error) || serviceErrorClassification.isTransientError(error);\n};\n\nclass StandardRetryStrategy {\n maxAttemptsProvider;\n retryDecider;\n delayDecider;\n retryQuota;\n mode = utilRetry.RETRY_MODES.STANDARD;\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.retryDecider = options?.retryDecider ?? defaultRetryDecider;\n this.delayDecider = options?.delayDecider ?? defaultDelayDecider;\n this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(utilRetry.INITIAL_RETRY_TOKENS);\n }\n shouldRetry(error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n }\n async getMaxAttempts() {\n let maxAttempts;\n try {\n maxAttempts = await this.maxAttemptsProvider();\n }\n catch (error) {\n maxAttempts = utilRetry.DEFAULT_MAX_ATTEMPTS;\n }\n return maxAttempts;\n }\n async retry(next, args, options) {\n let retryTokenAmount;\n let attempts = 0;\n let totalDelay = 0;\n const maxAttempts = await this.getMaxAttempts();\n const { request } = args;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n request.headers[utilRetry.INVOCATION_ID_HEADER] = uuid.v4();\n }\n while (true) {\n try {\n if (protocolHttp.HttpRequest.isInstance(request)) {\n request.headers[utilRetry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n if (options?.beforeRequest) {\n await options.beforeRequest();\n }\n const { response, output } = await next(args);\n if (options?.afterRequest) {\n options.afterRequest(response);\n }\n this.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return { response, output };\n }\n catch (e) {\n const err = asSdkError(e);\n attempts++;\n if (this.shouldRetry(err, attempts, maxAttempts)) {\n retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\n const delayFromDecider = this.delayDecider(serviceErrorClassification.isThrottlingError(err) ? utilRetry.THROTTLING_RETRY_DELAY_BASE : utilRetry.DEFAULT_RETRY_DELAY_BASE, attempts);\n const delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\n const delay = Math.max(delayFromResponse || 0, delayFromDecider);\n totalDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n continue;\n }\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n }\n }\n }\n}\nconst getDelayFromRetryAfterHeader = (response) => {\n if (!protocolHttp.HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return retryAfterSeconds * 1000;\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n};\n\nclass AdaptiveRetryStrategy extends StandardRetryStrategy {\n rateLimiter;\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter, ...superOptions } = options ?? {};\n super(maxAttemptsProvider, superOptions);\n this.rateLimiter = rateLimiter ?? new utilRetry.DefaultRateLimiter();\n this.mode = utilRetry.RETRY_MODES.ADAPTIVE;\n }\n async retry(next, args) {\n return super.retry(next, args, {\n beforeRequest: async () => {\n return this.rateLimiter.getSendToken();\n },\n afterRequest: (response) => {\n this.rateLimiter.updateClientSendingRate(response);\n },\n });\n }\n}\n\nconst ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nconst CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nconst NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: utilRetry.DEFAULT_MAX_ATTEMPTS,\n};\nconst resolveRetryConfig = (input) => {\n const { retryStrategy, retryMode } = input;\n const maxAttempts = utilMiddleware.normalizeProvider(input.maxAttempts ?? utilRetry.DEFAULT_MAX_ATTEMPTS);\n let controller = retryStrategy\n ? Promise.resolve(retryStrategy)\n : undefined;\n const getDefault = async () => (await utilMiddleware.normalizeProvider(retryMode)()) === utilRetry.RETRY_MODES.ADAPTIVE\n ? new utilRetry.AdaptiveRetryStrategy(maxAttempts)\n : new utilRetry.StandardRetryStrategy(maxAttempts);\n return Object.assign(input, {\n maxAttempts,\n retryStrategy: () => (controller ??= getDefault()),\n });\n};\nconst ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nconst CONFIG_RETRY_MODE = \"retry_mode\";\nconst NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: utilRetry.DEFAULT_RETRY_MODE,\n};\n\nconst omitRetryHeadersMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n delete request.headers[utilRetry.INVOCATION_ID_HEADER];\n delete request.headers[utilRetry.REQUEST_HEADER];\n }\n return next(args);\n};\nconst omitRetryHeadersMiddlewareOptions = {\n name: \"omitRetryHeadersMiddleware\",\n tags: [\"RETRY\", \"HEADERS\", \"OMIT_RETRY_HEADERS\"],\n relation: \"before\",\n toMiddleware: \"awsAuthMiddleware\",\n override: true,\n};\nconst getOmitRetryHeadersPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions);\n },\n});\n\nfunction parseRetryAfterHeader(response, logger) {\n if (!protocolHttp.HttpResponse.isInstance(response)) {\n return;\n }\n for (const header of Object.keys(response.headers)) {\n const h = header.toLowerCase();\n if (h === \"retry-after\") {\n const retryAfter = response.headers[header];\n let retryAfterSeconds = NaN;\n if (retryAfter.endsWith(\"GMT\")) {\n try {\n const date = serde.parseRfc7231DateTime(retryAfter);\n retryAfterSeconds = (date.getTime() - Date.now()) / 1000;\n }\n catch (e) {\n logger?.trace?.(\"Failed to parse retry-after header\");\n logger?.trace?.(e);\n }\n }\n else if (retryAfter.match(/ GMT, ((\\d+)|(\\d+\\.\\d+))$/)) {\n retryAfterSeconds = Number(retryAfter.match(/ GMT, ([\\d.]+)$/)?.[1]);\n }\n else if (retryAfter.match(/^((\\d+)|(\\d+\\.\\d+))$/)) {\n retryAfterSeconds = Number(retryAfter);\n }\n else if (Date.parse(retryAfter) >= Date.now()) {\n retryAfterSeconds = (Date.parse(retryAfter) - Date.now()) / 1000;\n }\n if (isNaN(retryAfterSeconds)) {\n return;\n }\n return new Date(Date.now() + retryAfterSeconds * 1000);\n }\n else if (h === \"x-amz-retry-after\") {\n const v = response.headers[header];\n const backoffMilliseconds = Number(v);\n if (isNaN(backoffMilliseconds)) {\n logger?.trace?.(`Failed to parse x-amz-retry-after=${v}`);\n return;\n }\n return new Date(Date.now() + backoffMilliseconds);\n }\n }\n}\nfunction getRetryAfterHint(response, logger) {\n return parseRetryAfterHeader(response, logger);\n}\n\nconst retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken((context[\"partition_id\"] ?? \"\") + (context.__retryLongPoll ? \":longpoll\" : \"\"));\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n const isRequest = protocolHttp.HttpRequest.isInstance(request);\n if (isRequest) {\n request.headers[utilRetry.INVOCATION_ID_HEADER] = uuid.v4();\n }\n while (true) {\n try {\n if (isRequest) {\n request.headers[utilRetry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e, options.logger);\n lastError = asSdkError(e);\n if (isRequest && isStreamingPayload.isStreamingPayload(request)) {\n (context.logger instanceof smithyClient.NoOpLogger ? console : context.logger)?.warn(\"An error was encountered in a non-retryable streaming request.\");\n throw lastError;\n }\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (typeof refreshError.$backoff === \"number\") {\n await cooldown(refreshError.$backoff);\n }\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await cooldown(delay);\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode) {\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n }\n return retryStrategy.retry(next, args);\n }\n};\nconst cooldown = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error, logger) => {\n const errorInfo = {\n error,\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = parseRetryAfterHeader(error.$response, logger);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if (serviceErrorClassification.isThrottlingError(error))\n return \"THROTTLING\";\n if (serviceErrorClassification.isTransientError(error))\n return \"TRANSIENT\";\n if (serviceErrorClassification.isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nconst retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nconst getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\n\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\nexports.CONFIG_MAX_ATTEMPTS = CONFIG_MAX_ATTEMPTS;\nexports.CONFIG_RETRY_MODE = CONFIG_RETRY_MODE;\nexports.ENV_MAX_ATTEMPTS = ENV_MAX_ATTEMPTS;\nexports.ENV_RETRY_MODE = ENV_RETRY_MODE;\nexports.NODE_MAX_ATTEMPT_CONFIG_OPTIONS = NODE_MAX_ATTEMPT_CONFIG_OPTIONS;\nexports.NODE_RETRY_MODE_CONFIG_OPTIONS = NODE_RETRY_MODE_CONFIG_OPTIONS;\nexports.StandardRetryStrategy = StandardRetryStrategy;\nexports.defaultDelayDecider = defaultDelayDecider;\nexports.defaultRetryDecider = defaultRetryDecider;\nexports.getOmitRetryHeadersPlugin = getOmitRetryHeadersPlugin;\nexports.getRetryAfterHint = getRetryAfterHint;\nexports.getRetryPlugin = getRetryPlugin;\nexports.omitRetryHeadersMiddleware = omitRetryHeadersMiddleware;\nexports.omitRetryHeadersMiddlewareOptions = omitRetryHeadersMiddlewareOptions;\nexports.resolveRetryConfig = resolveRetryConfig;\nexports.retryMiddleware = retryMiddleware;\nexports.retryMiddlewareOptions = retryMiddlewareOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStreamingPayload = void 0;\nconst stream_1 = require(\"stream\");\nconst isStreamingPayload = (request) => request?.body instanceof stream_1.Readable ||\n (typeof ReadableStream !== \"undefined\" && request?.body instanceof ReadableStream);\nexports.isStreamingPayload = isStreamingPayload;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar endpoints = require('@smithy/core/endpoints');\n\nconst deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n try {\n error.message += \"\\n \" + hint;\n }\n catch (e) {\n if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(hint);\n }\n else {\n context.logger?.warn?.(hint);\n }\n }\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n try {\n if (protocolHttp.HttpResponse.isInstance(response)) {\n const { headers = {} } = response;\n const headerEntries = Object.entries(headers);\n error.$metadata = {\n httpStatusCode: response.statusCode,\n requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n };\n }\n }\n catch (e) {\n }\n }\n throw error;\n }\n};\nconst findHeader = (pattern, headers) => {\n return (headers.find(([k]) => {\n return k.match(pattern);\n }) || [void 0, void 0])[1];\n};\n\nconst serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpointConfig = options;\n const endpoint = context.endpointV2\n ? async () => endpoints.toEndpointV1(context.endpointV2)\n : endpointConfig.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n\nconst deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n\nexports.deserializerMiddleware = deserializerMiddleware;\nexports.deserializerMiddlewareOption = deserializerMiddlewareOption;\nexports.getSerdePlugin = getSerdePlugin;\nexports.serializerMiddleware = serializerMiddleware;\nexports.serializerMiddlewareOption = serializerMiddlewareOption;\n","'use strict';\n\nconst getAllAliases = (name, aliases) => {\n const _aliases = [];\n if (name) {\n _aliases.push(name);\n }\n if (aliases) {\n for (const alias of aliases) {\n _aliases.push(alias);\n }\n }\n return _aliases;\n};\nconst getMiddlewareNameWithAliases = (name, aliases) => {\n return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n};\nconst constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n let identifyOnResolve = false;\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const aliases = getAllAliases(entry.name, entry.aliases);\n if (aliases.includes(toRemove)) {\n isRemoved = true;\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n for (const alias of getAllAliases(entry.name, entry.aliases)) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n toStack.identifyOnResolve?.(stack.identifyOnResolve());\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ` +\n `${getMiddlewareNameWithAliases(entry.name, entry.aliases)} ` +\n `middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expandedMiddlewareList) => {\n wholeList.push(...expandedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ` +\n `${toOverride.priority} priority in ${toOverride.step} step cannot ` +\n `be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ` +\n `${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ` +\n `${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} ` +\n `\"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name, aliases: _aliases } = entry;\n if (tags && tags.includes(toRemove)) {\n const aliases = getAllAliases(name, _aliases);\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false));\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n const step = mw.step ??\n mw.relation +\n \" \" +\n mw.toMiddleware;\n return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n });\n },\n identifyOnResolve(toggle) {\n if (typeof toggle === \"boolean\")\n identifyOnResolve = toggle;\n return identifyOnResolve;\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n if (identifyOnResolve) {\n console.log(stack.identify());\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n\nexports.constructStack = constructStack;\n","'use strict';\n\nvar propertyProvider = require('@smithy/property-provider');\nvar sharedIniFileLoader = require('@smithy/shared-ini-file-loader');\n\nfunction getSelectorName(functionString) {\n try {\n const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []));\n constants.delete(\"CONFIG\");\n constants.delete(\"CONFIG_PREFIX_SEPARATOR\");\n constants.delete(\"ENV\");\n return [...constants].join(\", \");\n }\n catch (e) {\n return functionString;\n }\n}\n\nconst fromEnv = (envVarSelector, options) => async () => {\n try {\n const config = envVarSelector(process.env, options);\n if (config === undefined) {\n throw new Error();\n }\n return config;\n }\n catch (e) {\n throw new propertyProvider.CredentialsProviderError(e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, { logger: options?.logger });\n }\n};\n\nconst fromSharedConfigFiles = (configSelector, { preferredFile = \"config\", ...init } = {}) => async () => {\n const profile = sharedIniFileLoader.getProfileName(init);\n const { configFile, credentialsFile } = await sharedIniFileLoader.loadSharedConfigFiles(init);\n const profileFromCredentials = credentialsFile[profile] || {};\n const profileFromConfig = configFile[profile] || {};\n const mergedProfile = preferredFile === \"config\"\n ? { ...profileFromCredentials, ...profileFromConfig }\n : { ...profileFromConfig, ...profileFromCredentials };\n try {\n const cfgFile = preferredFile === \"config\" ? configFile : credentialsFile;\n const configValue = configSelector(mergedProfile, cfgFile);\n if (configValue === undefined) {\n throw new Error();\n }\n return configValue;\n }\n catch (e) {\n throw new propertyProvider.CredentialsProviderError(e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, { logger: init.logger });\n }\n};\n\nconst isFunction = (func) => typeof func === \"function\";\nconst fromStatic = (defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : propertyProvider.fromStatic(defaultValue);\n\nconst loadConfig = ({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => {\n const { signingName, logger } = configuration;\n const envOptions = { signingName, logger };\n return propertyProvider.memoize(propertyProvider.chain(fromEnv(environmentVariableSelector, envOptions), fromSharedConfigFiles(configFileSelector, configuration), fromStatic(defaultValue)));\n};\n\nexports.loadConfig = loadConfig;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar querystringBuilder = require('@smithy/querystring-builder');\nvar node_https = require('node:https');\nvar node_stream = require('node:stream');\nvar http2 = require('node:http2');\n\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n\nconst getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name of Object.keys(headers)) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\n\nconst timing = {\n setTimeout: (cb, ms) => setTimeout(cb, ms),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n};\n\nconst DEFER_EVENT_LISTENER_TIME$2 = 1000;\nconst setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return -1;\n }\n const registerTimeout = (offset) => {\n const timeoutId = timing.setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs - offset);\n const doWithSocket = (socket) => {\n if (socket?.connecting) {\n socket.on(\"connect\", () => {\n timing.clearTimeout(timeoutId);\n });\n }\n else {\n timing.clearTimeout(timeoutId);\n }\n };\n if (request.socket) {\n doWithSocket(request.socket);\n }\n else {\n request.on(\"socket\", doWithSocket);\n }\n };\n if (timeoutInMs < 2000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME$2), DEFER_EVENT_LISTENER_TIME$2);\n};\n\nconst setRequestTimeout = (req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {\n if (timeoutInMs) {\n return timing.setTimeout(() => {\n let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? \"ERROR\" : \"WARN\"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;\n if (throwOnRequestTimeout) {\n const error = Object.assign(new Error(msg), {\n name: \"TimeoutError\",\n code: \"ETIMEDOUT\",\n });\n req.destroy(error);\n reject(error);\n }\n else {\n msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;\n logger?.warn?.(msg);\n }\n }, timeoutInMs);\n }\n return -1;\n};\n\nconst DEFER_EVENT_LISTENER_TIME$1 = 3000;\nconst setSocketKeepAlive = (request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME$1) => {\n if (keepAlive !== true) {\n return -1;\n }\n const registerListener = () => {\n if (request.socket) {\n request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n }\n else {\n request.on(\"socket\", (socket) => {\n socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n });\n }\n };\n if (deferTimeMs === 0) {\n registerListener();\n return 0;\n }\n return timing.setTimeout(registerListener, deferTimeMs);\n};\n\nconst DEFER_EVENT_LISTENER_TIME = 3000;\nconst setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n const registerTimeout = (offset) => {\n const timeout = timeoutInMs - offset;\n const onTimeout = () => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: \"TimeoutError\" }));\n };\n if (request.socket) {\n request.socket.setTimeout(timeout, onTimeout);\n request.on(\"close\", () => request.socket?.removeListener(\"timeout\", onTimeout));\n }\n else {\n request.setTimeout(timeout, onTimeout);\n }\n };\n if (0 < timeoutInMs && timeoutInMs < 6000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n};\n\nconst MIN_WAIT_TIME = 6_000;\nasync function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {\n const headers = request.headers ?? {};\n const expect = headers.Expect || headers.expect;\n let timeoutId = -1;\n let sendBody = true;\n if (!externalAgent && expect === \"100-continue\") {\n sendBody = await Promise.race([\n new Promise((resolve) => {\n timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));\n }),\n new Promise((resolve) => {\n httpRequest.on(\"continue\", () => {\n timing.clearTimeout(timeoutId);\n resolve(true);\n });\n httpRequest.on(\"response\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n httpRequest.on(\"error\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n }),\n ]);\n }\n if (sendBody) {\n writeBody(httpRequest, request.body);\n }\n}\nfunction writeBody(httpRequest, body) {\n if (body instanceof node_stream.Readable) {\n body.pipe(httpRequest);\n return;\n }\n if (body) {\n const isBuffer = Buffer.isBuffer(body);\n const isString = typeof body === \"string\";\n if (isBuffer || isString) {\n if (isBuffer && body.byteLength === 0) {\n httpRequest.end();\n }\n else {\n httpRequest.end(body);\n }\n return;\n }\n const uint8 = body;\n if (typeof uint8 === \"object\" &&\n uint8.buffer &&\n typeof uint8.byteOffset === \"number\" &&\n typeof uint8.byteLength === \"number\") {\n httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));\n return;\n }\n httpRequest.end(Buffer.from(body));\n return;\n }\n httpRequest.end();\n}\n\nconst DEFAULT_REQUEST_TIMEOUT = 0;\nlet hAgent = undefined;\nlet hRequest = undefined;\nclass NodeHttpHandler {\n config;\n configProvider;\n socketWarningTimestamp = 0;\n externalAgent = false;\n metadata = { handlerProtocol: \"http/1.1\" };\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttpHandler(instanceOrOptions);\n }\n static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {\n const { sockets, requests, maxSockets } = agent;\n if (typeof maxSockets !== \"number\" || maxSockets === Infinity) {\n return socketWarningTimestamp;\n }\n const interval = 15_000;\n if (Date.now() - interval < socketWarningTimestamp) {\n return socketWarningTimestamp;\n }\n if (sockets && requests) {\n for (const origin in sockets) {\n const socketsInUse = sockets[origin]?.length ?? 0;\n const requestsEnqueued = requests[origin]?.length ?? 0;\n if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {\n logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.\nSee https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html\nor increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`);\n return Date.now();\n }\n }\n }\n return socketWarningTimestamp;\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n destroy() {\n this.config?.httpAgent?.destroy();\n this.config?.httpsAgent?.destroy();\n }\n async handle(request, { abortSignal, requestTimeout } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const config = this.config;\n const isSSL = request.protocol === \"https:\";\n if (!isSSL && !this.config.httpAgent) {\n this.config.httpAgent = await this.config.httpAgentProvider();\n }\n return new Promise((_resolve, _reject) => {\n let writeRequestBodyPromise = undefined;\n const timeouts = [];\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n timeouts.forEach(timing.clearTimeout);\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n timeouts.forEach(timing.clearTimeout);\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const headers = request.headers ?? {};\n const expectContinue = (headers.Expect ?? headers.expect) === \"100-continue\";\n let agent = isSSL ? config.httpsAgent : config.httpAgent;\n if (expectContinue && !this.externalAgent) {\n agent = new (isSSL ? node_https.Agent : hAgent)({\n keepAlive: false,\n maxSockets: Infinity,\n });\n }\n timeouts.push(timing.setTimeout(() => {\n this.socketWarningTimestamp = NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, config.logger);\n }, config.socketAcquisitionWarningTimeout ?? (config.requestTimeout ?? 2000) + (config.connectionTimeout ?? 1000)));\n const queryString = querystringBuilder.buildQueryString(request.query || {});\n let auth = undefined;\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}`;\n }\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let hostname = request.hostname ?? \"\";\n if (hostname[0] === \"[\" && hostname.endsWith(\"]\")) {\n hostname = request.hostname.slice(1, -1);\n }\n else {\n hostname = request.hostname;\n }\n const nodeHttpsOptions = {\n headers: request.headers,\n host: hostname,\n method: request.method,\n path,\n port: request.port,\n agent,\n auth,\n };\n const requestFunc = isSSL ? node_https.request : hRequest;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new protocolHttp.HttpResponse({\n statusCode: res.statusCode || -1,\n reason: res.statusMessage,\n headers: getTransformedHeaders(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n if (abortSignal) {\n const onAbort = () => {\n req.destroy();\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;\n timeouts.push(setConnectionTimeout(req, reject, config.connectionTimeout));\n timeouts.push(setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, config.logger ?? console));\n timeouts.push(setSocketTimeout(req, reject, config.socketTimeout));\n const httpAgent = nodeHttpsOptions.agent;\n if (typeof httpAgent === \"object\" && \"keepAlive\" in httpAgent) {\n timeouts.push(setSocketKeepAlive(req, {\n keepAlive: httpAgent.keepAlive,\n keepAliveMsecs: httpAgent.keepAliveMsecs,\n }));\n }\n writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout, this.externalAgent).catch((e) => {\n timeouts.forEach(timing.clearTimeout);\n return _reject(e);\n });\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n resolveDefaultConfig(options) {\n const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger, } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n requestTimeout,\n socketTimeout,\n socketAcquisitionWarningTimeout,\n throwOnRequestTimeout,\n httpAgentProvider: async () => {\n const { Agent, request } = await import('node:http');\n hRequest = request;\n hAgent = Agent;\n if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpAgent;\n }\n return new hAgent({ keepAlive, maxSockets, ...httpAgent });\n },\n httpsAgent: (() => {\n if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpsAgent;\n }\n return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent });\n })(),\n logger,\n };\n }\n}\n\nconst ids = new Uint16Array(1);\nclass ClientHttp2SessionRef {\n id = ids[0]++;\n total = 0;\n max = 0;\n session;\n refs = 0;\n constructor(session) {\n session.unref();\n this.session = session;\n }\n retain() {\n if (this.session.destroyed) {\n throw new Error(\"@smithy/node-http-handler - cannot acquire reference to destroyed session.\");\n }\n this.refs += 1;\n this.total += 1;\n this.max = Math.max(this.refs, this.max);\n this.session.ref();\n }\n free() {\n if (this.session.destroyed) {\n return;\n }\n this.refs -= 1;\n if (this.refs === 0) {\n this.session.unref();\n }\n if (this.refs < 0) {\n throw new Error(\"@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement.\");\n }\n }\n deref() {\n return this.session;\n }\n destroy() {\n this.refs = 0;\n if (!this.session.destroyed) {\n this.session.destroy();\n }\n }\n useCount() {\n return this.refs;\n }\n}\n\nclass NodeHttp2ConnectionPool {\n sessions = [];\n maxConcurrency = 0;\n constructor(sessions) {\n this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session));\n }\n poll() {\n let cleanup = false;\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n cleanup = true;\n continue;\n }\n if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) {\n return session;\n }\n }\n if (cleanup) {\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n this.remove(session);\n }\n }\n }\n }\n offerLast(ref) {\n this.sessions.push(ref);\n }\n remove(ref) {\n const ix = this.sessions.indexOf(ref);\n if (ix > -1) {\n this.sessions.splice(ix, 1);\n }\n }\n [Symbol.iterator]() {\n return this.sessions[Symbol.iterator]();\n }\n setMaxConcurrency(maxConcurrency) {\n this.maxConcurrency = maxConcurrency;\n }\n destroy(ref) {\n this.remove(ref);\n ref.destroy();\n }\n}\n\nclass NodeHttp2ConnectionManager {\n config;\n connectionPools = new Map();\n constructor(config) {\n this.config = config;\n if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {\n throw new RangeError(\"maxConcurrency must be greater than zero.\");\n }\n }\n lease(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const pool = this.getPool(url);\n if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) {\n const available = pool.poll();\n if (available) {\n available.retain();\n return available;\n }\n }\n const ref = new ClientHttp2SessionRef(http2.connect(url));\n const session = ref.deref();\n if (this.config.maxConcurrency) {\n session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {\n if (err) {\n throw new Error(\"Fail to set maxConcurrentStreams to \" +\n this.config.maxConcurrency +\n \"when creating new session for \" +\n requestContext.destination.toString());\n }\n });\n }\n const destroySessionCb = () => {\n session.destroy();\n this.removeFromPool(url, ref);\n };\n session.on(\"goaway\", destroySessionCb);\n session.on(\"error\", destroySessionCb);\n session.on(\"frameError\", destroySessionCb);\n session.on(\"close\", () => this.removeFromPool(url, ref));\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb);\n }\n pool.offerLast(ref);\n ref.retain();\n return ref;\n }\n release(_requestContext, ref) {\n ref.free();\n }\n createIsolatedSession(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const ref = new ClientHttp2SessionRef(http2.connect(url));\n const session = ref.deref();\n session.settings({ maxConcurrentStreams: 1 });\n const destroySession = () => {\n session.destroy();\n };\n session.on(\"goaway\", destroySession);\n session.on(\"error\", destroySession);\n session.on(\"frameError\", destroySession);\n session.on(\"close\", destroySession);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, destroySession);\n }\n ref.retain();\n return ref;\n }\n destroy() {\n for (const [url, connectionPool] of this.connectionPools) {\n for (const session of [...connectionPool]) {\n session.destroy();\n }\n this.connectionPools.delete(url);\n }\n }\n setMaxConcurrentStreams(maxConcurrentStreams) {\n if (maxConcurrentStreams && maxConcurrentStreams <= 0) {\n throw new RangeError(\"maxConcurrentStreams must be greater than zero.\");\n }\n this.config.maxConcurrency = maxConcurrentStreams;\n for (const pool of this.connectionPools.values()) {\n pool.setMaxConcurrency(maxConcurrentStreams);\n }\n }\n setDisableConcurrentStreams(disableConcurrentStreams) {\n this.config.disableConcurrency = disableConcurrentStreams;\n }\n debug() {\n const pools = {};\n for (const [url, pool] of this.connectionPools) {\n const sessions = [];\n for (const ref of pool) {\n sessions.push({\n id: ref.id,\n active: ref.useCount(),\n maxConcurrent: ref.max,\n totalRequests: ref.total,\n });\n }\n pools[url] = { sessions };\n }\n return pools;\n }\n removeFromPool(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n }\n getPool(url) {\n if (!this.connectionPools.has(url)) {\n const pool = new NodeHttp2ConnectionPool();\n if (this.config.maxConcurrency) {\n pool.setMaxConcurrency(this.config.maxConcurrency);\n }\n this.connectionPools.set(url, pool);\n }\n return this.connectionPools.get(url);\n }\n getUrlString(request) {\n return request.destination.toString();\n }\n}\n\nclass NodeHttp2Handler {\n config;\n configProvider;\n metadata = { handlerProtocol: \"h2\" };\n connectionManager = new NodeHttp2ConnectionManager({});\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttp2Handler(instanceOrOptions);\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((opts) => {\n resolve(opts || {});\n })\n .catch(reject);\n }\n else {\n resolve(options || {});\n }\n });\n }\n destroy() {\n this.connectionManager.destroy();\n }\n async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n const { disableConcurrentStreams, maxConcurrentStreams } = this.config;\n this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);\n if (maxConcurrentStreams) {\n this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams);\n }\n }\n const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;\n const useIsolatedSession = disableConcurrentStreams || isEventStream;\n const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;\n return new Promise((_resolve, _reject) => {\n let fulfilled = false;\n let writeRequestBodyPromise = undefined;\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n fulfilled = true;\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const { hostname, method, port, protocol, query } = request;\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : \"\"}`;\n const requestContext = { destination: new URL(authority) };\n const connectConfig = {\n requestTimeout: this.config?.sessionTimeout,\n isEventStream,\n };\n const ref = useIsolatedSession\n ? this.connectionManager.createIsolatedSession(requestContext, connectConfig)\n : this.connectionManager.lease(requestContext, connectConfig);\n const session = ref.deref();\n const rejectWithDestroy = (err) => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n fulfilled = true;\n reject(err);\n };\n const queryString = querystringBuilder.buildQueryString(query ?? {});\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n const clientHttp2Stream = session.request({\n ...request.headers,\n [http2.constants.HTTP2_HEADER_PATH]: path,\n [http2.constants.HTTP2_HEADER_METHOD]: method,\n });\n if (effectiveRequestTimeout) {\n clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => {\n clientHttp2Stream.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n rejectWithDestroy(timeoutError);\n });\n }\n if (abortSignal) {\n const onAbort = () => {\n clientHttp2Stream.close();\n const abortError = buildAbortError(abortSignal);\n rejectWithDestroy(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n clientHttp2Stream.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n clientHttp2Stream.on(\"frameError\", (type, code, id) => {\n rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n clientHttp2Stream.on(\"error\", rejectWithDestroy);\n clientHttp2Stream.on(\"aborted\", () => {\n rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`));\n });\n clientHttp2Stream.on(\"response\", (headers) => {\n const httpResponse = new protocolHttp.HttpResponse({\n statusCode: headers[\":status\"] ?? -1,\n headers: getTransformedHeaders(headers),\n body: clientHttp2Stream,\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (useIsolatedSession) {\n session.close();\n }\n });\n clientHttp2Stream.on(\"close\", () => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n else {\n this.connectionManager.release(requestContext, ref);\n }\n if (!fulfilled) {\n rejectWithDestroy(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout);\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n\nclass Collector extends node_stream.Writable {\n bufferedBytes = [];\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\n\nconst streamCollector = (stream) => {\n if (isReadableStreamInstance(stream)) {\n return collectReadableStream(stream);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n });\n};\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\nasync function collectReadableStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\n\nexports.DEFAULT_REQUEST_TIMEOUT = DEFAULT_REQUEST_TIMEOUT;\nexports.NodeHttp2Handler = NodeHttp2Handler;\nexports.NodeHttpHandler = NodeHttpHandler;\nexports.streamCollector = streamCollector;\n","'use strict';\n\nclass ProviderError extends Error {\n name = \"ProviderError\";\n tryNextLink;\n constructor(message, options = true) {\n let logger;\n let tryNextLink = true;\n if (typeof options === \"boolean\") {\n logger = undefined;\n tryNextLink = options;\n }\n else if (options != null && typeof options === \"object\") {\n logger = options.logger;\n tryNextLink = options.tryNextLink ?? true;\n }\n super(message);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, ProviderError.prototype);\n logger?.debug?.(`@smithy/property-provider ${tryNextLink ? \"->\" : \"(!)\"} ${message}`);\n }\n static from(error, options = true) {\n return Object.assign(new this(error.message, options), error);\n }\n}\n\nclass CredentialsProviderError extends ProviderError {\n name = \"CredentialsProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\n\nclass TokenProviderError extends ProviderError {\n name = \"TokenProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n\nconst chain = (...providers) => async () => {\n if (providers.length === 0) {\n throw new ProviderError(\"No providers in chain\");\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n const credentials = await provider();\n return credentials;\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nconst fromStatic = (staticValue) => () => Promise.resolve(staticValue);\n\nconst memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n\nexports.CredentialsProviderError = CredentialsProviderError;\nexports.ProviderError = ProviderError;\nexports.TokenProviderError = TokenProviderError;\nexports.chain = chain;\nexports.fromStatic = fromStatic;\nexports.memoize = memoize;\n","'use strict';\n\nvar types = require('@smithy/types');\n\nconst getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n return {\n setHttpHandler(handler) {\n runtimeConfig.httpHandler = handler;\n },\n httpHandler() {\n return runtimeConfig.httpHandler;\n },\n updateHttpClientConfig(key, value) {\n runtimeConfig.httpHandler?.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return runtimeConfig.httpHandler.httpHandlerConfigs();\n },\n };\n};\nconst resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n\nclass Field {\n name;\n kind;\n values;\n constructor({ name, kind = types.FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n\nclass Fields {\n entries = {};\n encoding;\n constructor({ fields = [], encoding = \"utf-8\" }) {\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n\nclass HttpRequest {\n method;\n protocol;\n hostname;\n port;\n path;\n query;\n headers;\n username;\n password;\n fragment;\n body;\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static clone(request) {\n const cloned = new HttpRequest({\n ...request,\n headers: { ...request.headers },\n });\n if (cloned.query) {\n cloned.query = cloneQuery(cloned.query);\n }\n return cloned;\n }\n static isInstance(request) {\n if (!request) {\n return false;\n }\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n return HttpRequest.clone(this);\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n\nclass HttpResponse {\n statusCode;\n reason;\n headers;\n body;\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n\nfunction isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n\nexports.Field = Field;\nexports.Fields = Fields;\nexports.HttpRequest = HttpRequest;\nexports.HttpResponse = HttpResponse;\nexports.getHttpHandlerExtensionConfiguration = getHttpHandlerExtensionConfiguration;\nexports.isValidHostname = isValidHostname;\nexports.resolveHttpHandlerRuntimeConfig = resolveHttpHandlerRuntimeConfig;\n","'use strict';\n\nvar utilUriEscape = require('@smithy/util-uri-escape');\n\nfunction buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = utilUriEscape.escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${utilUriEscape.escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${utilUriEscape.escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n\nexports.buildQueryString = buildQueryString;\n","'use strict';\n\nfunction parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n\nexports.parseQueryString = parseQueryString;\n","'use strict';\n\nconst CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nconst THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nconst TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nconst TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\nconst NODEJS_NETWORK_ERROR_CODES = [\"EHOSTUNREACH\", \"ENETUNREACH\", \"ENOTFOUND\"];\n\nconst isRetryableByTrait = (error) => error?.$retryable !== undefined;\nconst isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nconst isClockSkewCorrectedError = (error) => error.$metadata?.clockSkewCorrected;\nconst isBrowserNetworkError = (error) => {\n const errorMessages = new Set([\n \"Failed to fetch\",\n \"NetworkError when attempting to fetch resource\",\n \"The Internet connection appears to be offline\",\n \"Load failed\",\n \"Network request failed\",\n ]);\n const isValid = error && error instanceof TypeError;\n if (!isValid) {\n return false;\n }\n return errorMessages.has(error.message);\n};\nconst isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nconst isTransientError = (error, depth = 0) => isRetryableByTrait(error) ||\n isClockSkewCorrectedError(error) ||\n TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n NODEJS_NETWORK_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||\n isBrowserNetworkError(error) ||\n isNodeJsHttp2TransientError(error) ||\n (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));\nconst isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\nfunction isNodeJsHttp2TransientError(error) {\n return error.code === \"ERR_HTTP2_STREAM_ERROR\" && error.message.includes(\"NGHTTP2_REFUSED_STREAM\");\n}\n\nexports.isBrowserNetworkError = isBrowserNetworkError;\nexports.isClockSkewCorrectedError = isClockSkewCorrectedError;\nexports.isClockSkewError = isClockSkewError;\nexports.isNodeJsHttp2TransientError = isNodeJsHttp2TransientError;\nexports.isRetryableByTrait = isRetryableByTrait;\nexports.isServerError = isServerError;\nexports.isThrottlingError = isThrottlingError;\nexports.isTransientError = isTransientError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHomeDir = void 0;\nconst os_1 = require(\"os\");\nconst path_1 = require(\"path\");\nconst homeDirCache = {};\nconst getHomeDirCacheKey = () => {\n if (process && process.geteuid) {\n return `${process.geteuid()}`;\n }\n return \"DEFAULT\";\n};\nconst getHomeDir = () => {\n const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env;\n if (HOME)\n return HOME;\n if (USERPROFILE)\n return USERPROFILE;\n if (HOMEPATH)\n return `${HOMEDRIVE}${HOMEPATH}`;\n const homeDirCacheKey = getHomeDirCacheKey();\n if (!homeDirCache[homeDirCacheKey])\n homeDirCache[homeDirCacheKey] = (0, os_1.homedir)();\n return homeDirCache[homeDirCacheKey];\n};\nexports.getHomeDir = getHomeDir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFilepath = void 0;\nconst crypto_1 = require(\"crypto\");\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nconst getSSOTokenFilepath = (id) => {\n const hasher = (0, crypto_1.createHash)(\"sha1\");\n const cacheName = hasher.update(id).digest(\"hex\");\n return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"sso\", \"cache\", `${cacheName}.json`);\n};\nexports.getSSOTokenFilepath = getSSOTokenFilepath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFromFile = exports.tokenIntercept = void 0;\nconst promises_1 = require(\"fs/promises\");\nconst getSSOTokenFilepath_1 = require(\"./getSSOTokenFilepath\");\nexports.tokenIntercept = {};\nconst getSSOTokenFromFile = async (id) => {\n if (exports.tokenIntercept[id]) {\n return exports.tokenIntercept[id];\n }\n const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id);\n const ssoTokenText = await (0, promises_1.readFile)(ssoTokenFilepath, \"utf8\");\n return JSON.parse(ssoTokenText);\n};\nexports.getSSOTokenFromFile = getSSOTokenFromFile;\n","'use strict';\n\nvar getHomeDir = require('./getHomeDir');\nvar getSSOTokenFilepath = require('./getSSOTokenFilepath');\nvar getSSOTokenFromFile = require('./getSSOTokenFromFile');\nvar path = require('path');\nvar types = require('@smithy/types');\nvar readFile = require('./readFile');\n\nconst ENV_PROFILE = \"AWS_PROFILE\";\nconst DEFAULT_PROFILE = \"default\";\nconst getProfileName = (init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE;\n\nconst CONFIG_PREFIX_SEPARATOR = \".\";\n\nconst getConfigData = (data) => Object.entries(data)\n .filter(([key]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n if (indexOfSeparator === -1) {\n return false;\n }\n return Object.values(types.IniSectionType).includes(key.substring(0, indexOfSeparator));\n})\n .reduce((acc, [key, value]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n const updatedKey = key.substring(0, indexOfSeparator) === types.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key;\n acc[updatedKey] = value;\n return acc;\n}, {\n ...(data.default && { default: data.default }),\n});\n\nconst ENV_CONFIG_PATH = \"AWS_CONFIG_FILE\";\nconst getConfigFilepath = () => process.env[ENV_CONFIG_PATH] || path.join(getHomeDir.getHomeDir(), \".aws\", \"config\");\n\nconst ENV_CREDENTIALS_PATH = \"AWS_SHARED_CREDENTIALS_FILE\";\nconst getCredentialsFilepath = () => process.env[ENV_CREDENTIALS_PATH] || path.join(getHomeDir.getHomeDir(), \".aws\", \"credentials\");\n\nconst prefixKeyRegex = /^([\\w-]+)\\s([\"'])?([\\w-@\\+\\.%:/]+)\\2$/;\nconst profileNameBlockList = [\"__proto__\", \"profile __proto__\"];\nconst parseIni = (iniData) => {\n const map = {};\n let currentSection;\n let currentSubSection;\n for (const iniLine of iniData.split(/\\r?\\n/)) {\n const trimmedLine = iniLine.split(/(^|\\s)[;#]/)[0].trim();\n const isSection = trimmedLine[0] === \"[\" && trimmedLine[trimmedLine.length - 1] === \"]\";\n if (isSection) {\n currentSection = undefined;\n currentSubSection = undefined;\n const sectionName = trimmedLine.substring(1, trimmedLine.length - 1);\n const matches = prefixKeyRegex.exec(sectionName);\n if (matches) {\n const [, prefix, , name] = matches;\n if (Object.values(types.IniSectionType).includes(prefix)) {\n currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR);\n }\n }\n else {\n currentSection = sectionName;\n }\n if (profileNameBlockList.includes(sectionName)) {\n throw new Error(`Found invalid profile name \"${sectionName}\"`);\n }\n }\n else if (currentSection) {\n const indexOfEqualsSign = trimmedLine.indexOf(\"=\");\n if (![0, -1].includes(indexOfEqualsSign)) {\n const [name, value] = [\n trimmedLine.substring(0, indexOfEqualsSign).trim(),\n trimmedLine.substring(indexOfEqualsSign + 1).trim(),\n ];\n if (value === \"\") {\n currentSubSection = name;\n }\n else {\n if (currentSubSection && iniLine.trimStart() === iniLine) {\n currentSubSection = undefined;\n }\n map[currentSection] = map[currentSection] || {};\n const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name;\n map[currentSection][key] = value;\n }\n }\n }\n }\n return map;\n};\n\nconst swallowError$1 = () => ({});\nconst loadSharedConfigFiles = async (init = {}) => {\n const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init;\n const homeDir = getHomeDir.getHomeDir();\n const relativeHomeDirPrefix = \"~/\";\n let resolvedFilepath = filepath;\n if (filepath.startsWith(relativeHomeDirPrefix)) {\n resolvedFilepath = path.join(homeDir, filepath.slice(2));\n }\n let resolvedConfigFilepath = configFilepath;\n if (configFilepath.startsWith(relativeHomeDirPrefix)) {\n resolvedConfigFilepath = path.join(homeDir, configFilepath.slice(2));\n }\n const parsedFiles = await Promise.all([\n readFile.readFile(resolvedConfigFilepath, {\n ignoreCache: init.ignoreCache,\n })\n .then(parseIni)\n .then(getConfigData)\n .catch(swallowError$1),\n readFile.readFile(resolvedFilepath, {\n ignoreCache: init.ignoreCache,\n })\n .then(parseIni)\n .catch(swallowError$1),\n ]);\n return {\n configFile: parsedFiles[0],\n credentialsFile: parsedFiles[1],\n };\n};\n\nconst getSsoSessionData = (data) => Object.entries(data)\n .filter(([key]) => key.startsWith(types.IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR))\n .reduce((acc, [key, value]) => ({ ...acc, [key.substring(key.indexOf(CONFIG_PREFIX_SEPARATOR) + 1)]: value }), {});\n\nconst swallowError = () => ({});\nconst loadSsoSessionData = async (init = {}) => readFile.readFile(init.configFilepath ?? getConfigFilepath())\n .then(parseIni)\n .then(getSsoSessionData)\n .catch(swallowError);\n\nconst mergeConfigFiles = (...files) => {\n const merged = {};\n for (const file of files) {\n for (const [key, values] of Object.entries(file)) {\n if (merged[key] !== undefined) {\n Object.assign(merged[key], values);\n }\n else {\n merged[key] = values;\n }\n }\n }\n return merged;\n};\n\nconst parseKnownFiles = async (init) => {\n const parsedFiles = await loadSharedConfigFiles(init);\n return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile);\n};\n\nconst externalDataInterceptor = {\n getFileRecord() {\n return readFile.fileIntercept;\n },\n interceptFile(path, contents) {\n readFile.fileIntercept[path] = Promise.resolve(contents);\n },\n getTokenRecord() {\n return getSSOTokenFromFile.tokenIntercept;\n },\n interceptToken(id, contents) {\n getSSOTokenFromFile.tokenIntercept[id] = contents;\n },\n};\n\nexports.getSSOTokenFromFile = getSSOTokenFromFile.getSSOTokenFromFile;\nexports.readFile = readFile.readFile;\nexports.CONFIG_PREFIX_SEPARATOR = CONFIG_PREFIX_SEPARATOR;\nexports.DEFAULT_PROFILE = DEFAULT_PROFILE;\nexports.ENV_PROFILE = ENV_PROFILE;\nexports.externalDataInterceptor = externalDataInterceptor;\nexports.getProfileName = getProfileName;\nexports.loadSharedConfigFiles = loadSharedConfigFiles;\nexports.loadSsoSessionData = loadSsoSessionData;\nexports.parseKnownFiles = parseKnownFiles;\nObject.prototype.hasOwnProperty.call(getHomeDir, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: getHomeDir['__proto__']\n });\n\nObject.keys(getHomeDir).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = getHomeDir[k];\n});\nObject.prototype.hasOwnProperty.call(getSSOTokenFilepath, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: getSSOTokenFilepath['__proto__']\n });\n\nObject.keys(getSSOTokenFilepath).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = getSSOTokenFilepath[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readFile = exports.fileIntercept = exports.filePromises = void 0;\nconst promises_1 = require(\"node:fs/promises\");\nexports.filePromises = {};\nexports.fileIntercept = {};\nconst readFile = (path, options) => {\n if (exports.fileIntercept[path] !== undefined) {\n return exports.fileIntercept[path];\n }\n if (!exports.filePromises[path] || options?.ignoreCache) {\n exports.filePromises[path] = (0, promises_1.readFile)(path, \"utf8\");\n }\n return exports.filePromises[path];\n};\nexports.readFile = readFile;\n","'use strict';\n\nvar utilHexEncoding = require('@smithy/util-hex-encoding');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar isArrayBuffer = require('@smithy/is-array-buffer');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilUriEscape = require('@smithy/util-uri-escape');\n\nconst ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nconst CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nconst AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nconst SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nconst EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nconst SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nconst TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nconst REGION_SET_PARAM = \"X-Amz-Region-Set\";\nconst AUTH_HEADER = \"authorization\";\nconst AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nconst DATE_HEADER = \"date\";\nconst GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nconst SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nconst SHA256_HEADER = \"x-amz-content-sha256\";\nconst TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nconst HOST_HEADER = \"host\";\nconst ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nconst PROXY_HEADER_PATTERN = /^proxy-/;\nconst SEC_HEADER_PATTERN = /^sec-/;\nconst UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nconst ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nconst ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nconst EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nconst UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nconst MAX_CACHE_SIZE = 50;\nconst KEY_TYPE_IDENTIFIER = \"aws4_request\";\nconst MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n\nconst signingKeyCache = {};\nconst cacheQueue = [];\nconst createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nconst getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${utilHexEncoding.toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nconst clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(utilUtf8.toUint8Array(data));\n return hash.digest();\n};\n\nconst getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\n\nconst getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer.isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(utilUtf8.toUint8Array(body));\n return utilHexEncoding.toHex(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n};\n\nclass HeaderFormatter {\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = utilUtf8.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = utilUtf8.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(utilHexEncoding.fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\nclass Int64 {\n bytes;\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9_223_372_036_854_775_807 || number < -9223372036854776e3) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(utilHexEncoding.toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n\nconst hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\n\nconst moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = protocolHttp.HttpRequest.clone(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if ((lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) ||\n options.hoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n\nconst prepareRequest = (request) => {\n request = protocolHttp.HttpRequest.clone(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n\nconst getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query)) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n const encodedKey = utilUriEscape.escapeUri(key);\n keys.push(encodedKey);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[encodedKey] = `${encodedKey}=${utilUriEscape.escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[encodedKey] = value\n .slice(0)\n .reduce((encoded, value) => encoded.concat([`${encodedKey}=${utilUriEscape.escapeUri(value)}`]), [])\n .sort()\n .join(\"&\");\n }\n }\n return keys\n .sort()\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n\nconst iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nconst toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n\nclass SignatureV4Base {\n service;\n regionProvider;\n credentialProvider;\n sha256;\n uriEscapePath;\n applyChecksum;\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = utilMiddleware.normalizeProvider(region);\n this.credentialProvider = utilMiddleware.normalizeProvider(credentials);\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest, algorithmIdentifier) {\n const hash = new this.sha256();\n hash.update(utilUtf8.toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${algorithmIdentifier}\n${longDate}\n${credentialScope}\n${utilHexEncoding.toHex(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if (pathSegment?.length === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n const doubleEncoded = utilUriEscape.escapeUri(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n formatDate(now) {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n }\n getCanonicalHeaderList(headers) {\n return Object.keys(headers).sort().join(\";\");\n }\n}\n\nclass SignatureV4 extends SignatureV4Base {\n headerFormatter = new HeaderFormatter();\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n super({\n applyChecksum,\n credentials,\n region,\n service,\n sha256,\n uriEscapePath,\n });\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, hoistableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = this.formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = this.getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else if (toSign.message) {\n return this.signMessage(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService, eventStreamCredentials, }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = this.formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = utilHexEncoding.toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, {\n signingDate,\n signingRegion: region,\n signingService,\n eventStreamCredentials,\n });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials }) {\n const promise = this.signEvent({\n headers: this.headerFormatter.format(signableMessage.message.headers),\n payload: signableMessage.message.body,\n }, {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature,\n eventStreamCredentials,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials, } = {}) {\n const credentials = eventStreamCredentials ?? (await this.credentialProvider());\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = this.formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(utilUtf8.toUint8Array(stringToSign));\n return utilHexEncoding.toHex(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = this.formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${this.getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest, ALGORITHM_IDENTIFIER);\n const hash = new this.sha256(await keyPromise);\n hash.update(utilUtf8.toUint8Array(stringToSign));\n return utilHexEncoding.toHex(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n}\n\nconst signatureV4aContainer = {\n SignatureV4a: null,\n};\n\nexports.ALGORITHM_IDENTIFIER = ALGORITHM_IDENTIFIER;\nexports.ALGORITHM_IDENTIFIER_V4A = ALGORITHM_IDENTIFIER_V4A;\nexports.ALGORITHM_QUERY_PARAM = ALGORITHM_QUERY_PARAM;\nexports.ALWAYS_UNSIGNABLE_HEADERS = ALWAYS_UNSIGNABLE_HEADERS;\nexports.AMZ_DATE_HEADER = AMZ_DATE_HEADER;\nexports.AMZ_DATE_QUERY_PARAM = AMZ_DATE_QUERY_PARAM;\nexports.AUTH_HEADER = AUTH_HEADER;\nexports.CREDENTIAL_QUERY_PARAM = CREDENTIAL_QUERY_PARAM;\nexports.DATE_HEADER = DATE_HEADER;\nexports.EVENT_ALGORITHM_IDENTIFIER = EVENT_ALGORITHM_IDENTIFIER;\nexports.EXPIRES_QUERY_PARAM = EXPIRES_QUERY_PARAM;\nexports.GENERATED_HEADERS = GENERATED_HEADERS;\nexports.HOST_HEADER = HOST_HEADER;\nexports.KEY_TYPE_IDENTIFIER = KEY_TYPE_IDENTIFIER;\nexports.MAX_CACHE_SIZE = MAX_CACHE_SIZE;\nexports.MAX_PRESIGNED_TTL = MAX_PRESIGNED_TTL;\nexports.PROXY_HEADER_PATTERN = PROXY_HEADER_PATTERN;\nexports.REGION_SET_PARAM = REGION_SET_PARAM;\nexports.SEC_HEADER_PATTERN = SEC_HEADER_PATTERN;\nexports.SHA256_HEADER = SHA256_HEADER;\nexports.SIGNATURE_HEADER = SIGNATURE_HEADER;\nexports.SIGNATURE_QUERY_PARAM = SIGNATURE_QUERY_PARAM;\nexports.SIGNED_HEADERS_QUERY_PARAM = SIGNED_HEADERS_QUERY_PARAM;\nexports.SignatureV4 = SignatureV4;\nexports.SignatureV4Base = SignatureV4Base;\nexports.TOKEN_HEADER = TOKEN_HEADER;\nexports.TOKEN_QUERY_PARAM = TOKEN_QUERY_PARAM;\nexports.UNSIGNABLE_PATTERNS = UNSIGNABLE_PATTERNS;\nexports.UNSIGNED_PAYLOAD = UNSIGNED_PAYLOAD;\nexports.clearCredentialCache = clearCredentialCache;\nexports.createScope = createScope;\nexports.getCanonicalHeaders = getCanonicalHeaders;\nexports.getCanonicalQuery = getCanonicalQuery;\nexports.getPayloadHash = getPayloadHash;\nexports.getSigningKey = getSigningKey;\nexports.hasHeader = hasHeader;\nexports.moveHeadersToQuery = moveHeadersToQuery;\nexports.prepareRequest = prepareRequest;\nexports.signatureV4aContainer = signatureV4aContainer;\n","'use strict';\n\nvar middlewareStack = require('@smithy/middleware-stack');\nvar types = require('@smithy/types');\nvar schema = require('@smithy/core/schema');\nvar serde = require('@smithy/core/serde');\nvar protocols = require('@smithy/core/protocols');\n\nclass Client {\n config;\n middlewareStack = middlewareStack.constructStack();\n initConfig;\n handlers;\n constructor(config) {\n this.config = config;\n const { protocol, protocolSettings } = config;\n if (protocolSettings) {\n if (typeof protocol === \"function\") {\n config.protocol = new protocol(protocolSettings);\n }\n }\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const useHandlerCache = options === undefined && this.config.cacheMiddleware === true;\n let handler;\n if (useHandlerCache) {\n if (!this.handlers) {\n this.handlers = new WeakMap();\n }\n const handlers = this.handlers;\n if (handlers.has(command.constructor)) {\n handler = handlers.get(command.constructor);\n }\n else {\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n handlers.set(command.constructor, handler);\n }\n }\n else {\n delete this.handlers;\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n }\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n this.config?.requestHandler?.destroy?.();\n delete this.handlers;\n }\n}\n\nconst SENSITIVE_STRING$1 = \"***SensitiveInformation***\";\nfunction schemaLogFilter(schema$1, data) {\n if (data == null) {\n return data;\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.getMergedTraits().sensitive) {\n return SENSITIVE_STRING$1;\n }\n if (ns.isListSchema()) {\n const isSensitive = !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING$1;\n }\n }\n else if (ns.isMapSchema()) {\n const isSensitive = !!ns.getKeySchema().getMergedTraits().sensitive || !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING$1;\n }\n }\n else if (ns.isStructSchema() && typeof data === \"object\") {\n const object = data;\n const newObject = {};\n for (const [member, memberNs] of ns.structIterator()) {\n if (object[member] != null) {\n newObject[member] = schemaLogFilter(memberNs, object[member]);\n }\n }\n return newObject;\n }\n return data;\n}\n\nclass Command {\n middlewareStack = middlewareStack.constructStack();\n schema;\n static classBuilder() {\n return new ClassBuilder();\n }\n resolveMiddlewareWithContext(clientStack, configuration, options, { middlewareFn, clientName, commandName, inputFilterSensitiveLog, outputFilterSensitiveLog, smithyContext, additionalContext, CommandCtor, }) {\n for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) {\n this.middlewareStack.use(mw);\n }\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog,\n outputFilterSensitiveLog,\n [types.SMITHY_CONTEXT_KEY]: {\n commandInstance: this,\n ...smithyContext,\n },\n ...additionalContext,\n };\n const { requestHandler } = configuration;\n let requestOptions = options ?? {};\n if (smithyContext.eventStream) {\n requestOptions = {\n isEventStream: true,\n ...requestOptions,\n };\n }\n return stack.resolve((request) => requestHandler.handle(request.request, requestOptions), handlerExecutionContext);\n }\n}\nclass ClassBuilder {\n _init = () => { };\n _ep = {};\n _middlewareFn = () => [];\n _commandName = \"\";\n _clientName = \"\";\n _additionalContext = {};\n _smithyContext = {};\n _inputFilterSensitiveLog = undefined;\n _outputFilterSensitiveLog = undefined;\n _serializer = null;\n _deserializer = null;\n _operationSchema;\n init(cb) {\n this._init = cb;\n }\n ep(endpointParameterInstructions) {\n this._ep = endpointParameterInstructions;\n return this;\n }\n m(middlewareSupplier) {\n this._middlewareFn = middlewareSupplier;\n return this;\n }\n s(service, operation, smithyContext = {}) {\n this._smithyContext = {\n service,\n operation,\n ...smithyContext,\n };\n return this;\n }\n c(additionalContext = {}) {\n this._additionalContext = additionalContext;\n return this;\n }\n n(clientName, commandName) {\n this._clientName = clientName;\n this._commandName = commandName;\n return this;\n }\n f(inputFilter = (_) => _, outputFilter = (_) => _) {\n this._inputFilterSensitiveLog = inputFilter;\n this._outputFilterSensitiveLog = outputFilter;\n return this;\n }\n ser(serializer) {\n this._serializer = serializer;\n return this;\n }\n de(deserializer) {\n this._deserializer = deserializer;\n return this;\n }\n sc(operation) {\n this._operationSchema = operation;\n this._smithyContext.operationSchema = operation;\n return this;\n }\n build() {\n const closure = this;\n let CommandRef;\n return (CommandRef = class extends Command {\n input;\n static getEndpointParameterInstructions() {\n return closure._ep;\n }\n constructor(...[input]) {\n super();\n this.input = input ?? {};\n closure._init(this);\n this.schema = closure._operationSchema;\n }\n resolveMiddleware(stack, configuration, options) {\n const op = closure._operationSchema;\n const input = op?.[4] ?? op?.input;\n const output = op?.[5] ?? op?.output;\n return this.resolveMiddlewareWithContext(stack, configuration, options, {\n CommandCtor: CommandRef,\n middlewareFn: closure._middlewareFn,\n clientName: closure._clientName,\n commandName: closure._commandName,\n inputFilterSensitiveLog: closure._inputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, input) : (_) => _),\n outputFilterSensitiveLog: closure._outputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, output) : (_) => _),\n smithyContext: closure._smithyContext,\n additionalContext: closure._additionalContext,\n });\n }\n serialize = closure._serializer;\n deserialize = closure._deserializer;\n });\n }\n}\n\nconst SENSITIVE_STRING = \"***SensitiveInformation***\";\n\nconst createAggregatedClient = (commands, Client, options) => {\n for (const [command, CommandCtor] of Object.entries(commands)) {\n const methodImpl = async function (args, optionsOrCb, cb) {\n const command = new CommandCtor(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expected http options but got ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n };\n const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, \"\");\n Client.prototype[methodName] = methodImpl;\n }\n const { paginators = {}, waiters = {} } = options ?? {};\n for (const [paginatorName, paginatorFn] of Object.entries(paginators)) {\n if (Client.prototype[paginatorName] === void 0) {\n Client.prototype[paginatorName] = function (commandInput = {}, paginationConfiguration, ...rest) {\n return paginatorFn({\n ...paginationConfiguration,\n client: this,\n }, commandInput, ...rest);\n };\n }\n }\n for (const [waiterName, waiterFn] of Object.entries(waiters)) {\n if (Client.prototype[waiterName] === void 0) {\n Client.prototype[waiterName] = async function (commandInput = {}, waiterConfiguration, ...rest) {\n let config = waiterConfiguration;\n if (typeof waiterConfiguration === \"number\") {\n config = {\n maxWaitTime: waiterConfiguration,\n };\n }\n return waiterFn({\n ...config,\n client: this,\n }, commandInput, ...rest);\n };\n }\n }\n};\n\nclass ServiceException extends Error {\n $fault;\n $response;\n $retryable;\n $metadata;\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n static isInstance(value) {\n if (!value)\n return false;\n const candidate = value;\n return (ServiceException.prototype.isPrototypeOf(candidate) ||\n (Boolean(candidate.$fault) &&\n Boolean(candidate.$metadata) &&\n (candidate.$fault === \"client\" || candidate.$fault === \"server\")));\n }\n static [Symbol.hasInstance](instance) {\n if (!instance)\n return false;\n const candidate = instance;\n if (this === ServiceException) {\n return ServiceException.isInstance(instance);\n }\n if (ServiceException.isInstance(instance)) {\n if (candidate.name && this.name) {\n return this.prototype.isPrototypeOf(instance) || candidate.name === this.name;\n }\n return this.prototype.isPrototypeOf(instance);\n }\n return false;\n }\n}\nconst decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n\nconst throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nconst withBaseException = (ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n\nconst loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n\nlet warningEmitted = false;\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 16) {\n warningEmitted = true;\n }\n};\n\nconst knownAlgorithms = Object.values(types.AlgorithmId);\nconst getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n for (const id in types.AlgorithmId) {\n const algorithmId = types.AlgorithmId[id];\n if (runtimeConfig[algorithmId] === undefined) {\n continue;\n }\n checksumAlgorithms.push({\n algorithmId: () => algorithmId,\n checksumConstructor: () => runtimeConfig[algorithmId],\n });\n }\n for (const [id, ChecksumCtor] of Object.entries(runtimeConfig.checksumAlgorithms ?? {})) {\n checksumAlgorithms.push({\n algorithmId: () => id,\n checksumConstructor: () => ChecksumCtor,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n runtimeConfig.checksumAlgorithms = runtimeConfig.checksumAlgorithms ?? {};\n const id = algo.algorithmId();\n const ctor = algo.checksumConstructor();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig.checksumAlgorithms[id.toUpperCase()] = ctor;\n }\n else {\n runtimeConfig.checksumAlgorithms[id] = ctor;\n }\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nconst resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n const id = checksumAlgorithm.algorithmId();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig[id] = checksumAlgorithm.checksumConstructor();\n }\n });\n return runtimeConfig;\n};\n\nconst getRetryConfiguration = (runtimeConfig) => {\n return {\n setRetryStrategy(retryStrategy) {\n runtimeConfig.retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return runtimeConfig.retryStrategy;\n },\n };\n};\nconst resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n const runtimeConfig = {};\n runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n return runtimeConfig;\n};\n\nconst getDefaultExtensionConfiguration = (runtimeConfig) => {\n return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig));\n};\nconst getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nconst resolveDefaultRuntimeConfig = (config) => {\n return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config));\n};\n\nconst getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n\nconst getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n\nconst isSerializableHeaderValue = (value) => {\n return value != null;\n};\n\nclass NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n\nfunction map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\nconst convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nconst take = (source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n }\n else if (customFilterPassed) {\n target[targetKey] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n\nconst serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\nconst serializeDateTime = (date) => date.toISOString().replace(\".000Z\", \"Z\");\n\nconst _json = (obj) => {\n if (obj == null) {\n return {};\n }\n if (Array.isArray(obj)) {\n return obj.filter((_) => _ != null).map(_json);\n }\n if (typeof obj === \"object\") {\n const target = {};\n for (const key of Object.keys(obj)) {\n if (obj[key] == null) {\n continue;\n }\n target[key] = _json(obj[key]);\n }\n return target;\n }\n return obj;\n};\n\nexports.collectBody = protocols.collectBody;\nexports.extendedEncodeURIComponent = protocols.extendedEncodeURIComponent;\nexports.resolvedPath = protocols.resolvedPath;\nexports.Client = Client;\nexports.Command = Command;\nexports.NoOpLogger = NoOpLogger;\nexports.SENSITIVE_STRING = SENSITIVE_STRING;\nexports.ServiceException = ServiceException;\nexports._json = _json;\nexports.convertMap = convertMap;\nexports.createAggregatedClient = createAggregatedClient;\nexports.decorateServiceException = decorateServiceException;\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getArrayIfSingleItem = getArrayIfSingleItem;\nexports.getDefaultClientConfiguration = getDefaultClientConfiguration;\nexports.getDefaultExtensionConfiguration = getDefaultExtensionConfiguration;\nexports.getValueFromTextNode = getValueFromTextNode;\nexports.isSerializableHeaderValue = isSerializableHeaderValue;\nexports.loadConfigsForDefaultMode = loadConfigsForDefaultMode;\nexports.map = map;\nexports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;\nexports.serializeDateTime = serializeDateTime;\nexports.serializeFloat = serializeFloat;\nexports.take = take;\nexports.throwDefaultError = throwDefaultError;\nexports.withBaseException = withBaseException;\nObject.prototype.hasOwnProperty.call(serde, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: serde['__proto__']\n });\n\nObject.keys(serde).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = serde[k];\n});\n","'use strict';\n\nexports.HttpAuthLocation = void 0;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpAuthLocation || (exports.HttpAuthLocation = {}));\n\nexports.HttpApiKeyAuthLocation = void 0;\n(function (HttpApiKeyAuthLocation) {\n HttpApiKeyAuthLocation[\"HEADER\"] = \"header\";\n HttpApiKeyAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpApiKeyAuthLocation || (exports.HttpApiKeyAuthLocation = {}));\n\nexports.EndpointURLScheme = void 0;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(exports.EndpointURLScheme || (exports.EndpointURLScheme = {}));\n\nexports.AlgorithmId = void 0;\n(function (AlgorithmId) {\n AlgorithmId[\"MD5\"] = \"md5\";\n AlgorithmId[\"CRC32\"] = \"crc32\";\n AlgorithmId[\"CRC32C\"] = \"crc32c\";\n AlgorithmId[\"SHA1\"] = \"sha1\";\n AlgorithmId[\"SHA256\"] = \"sha256\";\n})(exports.AlgorithmId || (exports.AlgorithmId = {}));\nconst getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n if (runtimeConfig.sha256 !== undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.SHA256,\n checksumConstructor: () => runtimeConfig.sha256,\n });\n }\n if (runtimeConfig.md5 != undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.MD5,\n checksumConstructor: () => runtimeConfig.md5,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nconst resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n\nconst getDefaultClientConfiguration = (runtimeConfig) => {\n return getChecksumConfiguration(runtimeConfig);\n};\nconst resolveDefaultRuntimeConfig = (config) => {\n return resolveChecksumRuntimeConfig(config);\n};\n\nexports.FieldPosition = void 0;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(exports.FieldPosition || (exports.FieldPosition = {}));\n\nconst SMITHY_CONTEXT_KEY = \"__smithy_context\";\n\nexports.IniSectionType = void 0;\n(function (IniSectionType) {\n IniSectionType[\"PROFILE\"] = \"profile\";\n IniSectionType[\"SSO_SESSION\"] = \"sso-session\";\n IniSectionType[\"SERVICES\"] = \"services\";\n})(exports.IniSectionType || (exports.IniSectionType = {}));\n\nexports.RequestHandlerProtocol = void 0;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(exports.RequestHandlerProtocol || (exports.RequestHandlerProtocol = {}));\n\nexports.SMITHY_CONTEXT_KEY = SMITHY_CONTEXT_KEY;\nexports.getDefaultClientConfiguration = getDefaultClientConfiguration;\nexports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;\n","'use strict';\n\nvar querystringParser = require('@smithy/querystring-parser');\n\nconst parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = querystringParser.parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n\nexports.parseUrl = parseUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBase64 = void 0;\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;\nconst fromBase64 = (input) => {\n if ((input.length * 3) % 4 !== 0) {\n throw new TypeError(`Incorrect padding on base64 string.`);\n }\n if (!BASE64_REGEX.exec(input)) {\n throw new TypeError(`Invalid base64 string.`);\n }\n const buffer = (0, util_buffer_from_1.fromString)(input, \"base64\");\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\nexports.fromBase64 = fromBase64;\n","'use strict';\n\nvar fromBase64 = require('./fromBase64');\nvar toBase64 = require('./toBase64');\n\n\n\nObject.prototype.hasOwnProperty.call(fromBase64, '__proto__') &&\n\t!Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n\tObject.defineProperty(exports, '__proto__', {\n\t\tenumerable: true,\n\t\tvalue: fromBase64['__proto__']\n\t});\n\nObject.keys(fromBase64).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = fromBase64[k];\n});\nObject.prototype.hasOwnProperty.call(toBase64, '__proto__') &&\n\t!Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n\tObject.defineProperty(exports, '__proto__', {\n\t\tenumerable: true,\n\t\tvalue: toBase64['__proto__']\n\t});\n\nObject.keys(toBase64).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = toBase64[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = void 0;\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst toBase64 = (_input) => {\n let input;\n if (typeof _input === \"string\") {\n input = (0, util_utf8_1.fromUtf8)(_input);\n }\n else {\n input = _input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n }\n return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"base64\");\n};\nexports.toBase64 = toBase64;\n","'use strict';\n\nconst TEXT_ENCODER = typeof TextEncoder == \"function\" ? new TextEncoder() : null;\nconst calculateBodyLength = (body) => {\n if (typeof body === \"string\") {\n if (TEXT_ENCODER) {\n return TEXT_ENCODER.encode(body).byteLength;\n }\n let len = body.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n\nexports.calculateBodyLength = calculateBodyLength;\n","'use strict';\n\nvar node_fs = require('node:fs');\n\nconst calculateBodyLength = (body) => {\n if (!body) {\n return 0;\n }\n if (typeof body === \"string\") {\n return Buffer.byteLength(body);\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n else if (typeof body.start === \"number\" && typeof body.end === \"number\") {\n return body.end + 1 - body.start;\n }\n else if (body instanceof node_fs.ReadStream) {\n if (body.path != null) {\n return node_fs.lstatSync(body.path).size;\n }\n else if (typeof body.fd === \"number\") {\n return node_fs.fstatSync(body.fd).size;\n }\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n\nexports.calculateBodyLength = calculateBodyLength;\n","'use strict';\n\nvar isArrayBuffer = require('@smithy/is-array-buffer');\nvar buffer = require('buffer');\n\nconst fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n if (!isArrayBuffer.isArrayBuffer(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return buffer.Buffer.from(input, offset, length);\n};\nconst fromString = (input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? buffer.Buffer.from(input, encoding) : buffer.Buffer.from(input);\n};\n\nexports.fromArrayBuffer = fromArrayBuffer;\nexports.fromString = fromString;\n","'use strict';\n\nconst booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\n\nconst numberSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n const numberValue = parseInt(obj[key], 10);\n if (Number.isNaN(numberValue)) {\n throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`);\n }\n return numberValue;\n};\n\nexports.SelectorType = void 0;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(exports.SelectorType || (exports.SelectorType = {}));\n\nexports.booleanSelector = booleanSelector;\nexports.numberSelector = numberSelector;\n","'use strict';\n\nvar configResolver = require('@smithy/config-resolver');\nvar nodeConfigProvider = require('@smithy/node-config-provider');\nvar propertyProvider = require('@smithy/property-provider');\n\nconst AWS_EXECUTION_ENV = \"AWS_EXECUTION_ENV\";\nconst AWS_REGION_ENV = \"AWS_REGION\";\nconst AWS_DEFAULT_REGION_ENV = \"AWS_DEFAULT_REGION\";\nconst ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\nconst IMDS_REGION_PATH = \"/latest/meta-data/placement/region\";\n\nconst AWS_DEFAULTS_MODE_ENV = \"AWS_DEFAULTS_MODE\";\nconst AWS_DEFAULTS_MODE_CONFIG = \"defaults_mode\";\nconst NODE_DEFAULTS_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n return env[AWS_DEFAULTS_MODE_ENV];\n },\n configFileSelector: (profile) => {\n return profile[AWS_DEFAULTS_MODE_CONFIG];\n },\n default: \"legacy\",\n};\n\nconst resolveDefaultsModeConfig = ({ region = nodeConfigProvider.loadConfig(configResolver.NODE_REGION_CONFIG_OPTIONS), defaultsMode = nodeConfigProvider.loadConfig(NODE_DEFAULTS_MODE_CONFIG_OPTIONS), } = {}) => propertyProvider.memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return resolveNodeDefaultsModeAuto(region);\n case \"in-region\":\n case \"cross-region\":\n case \"mobile\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst resolveNodeDefaultsModeAuto = async (clientRegion) => {\n if (clientRegion) {\n const resolvedRegion = typeof clientRegion === \"function\" ? await clientRegion() : clientRegion;\n const inferredRegion = await inferPhysicalRegion();\n if (!inferredRegion) {\n return \"standard\";\n }\n if (resolvedRegion === inferredRegion) {\n return \"in-region\";\n }\n else {\n return \"cross-region\";\n }\n }\n return \"standard\";\n};\nconst inferPhysicalRegion = async () => {\n if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) {\n return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV];\n }\n if (!process.env[ENV_IMDS_DISABLED]) {\n try {\n const { getInstanceMetadataEndpoint, httpRequest } = await import('@smithy/credential-provider-imds');\n const endpoint = await getInstanceMetadataEndpoint();\n return (await httpRequest({ ...endpoint, path: IMDS_REGION_PATH })).toString();\n }\n catch (e) {\n }\n }\n};\n\nexports.resolveDefaultsModeConfig = resolveDefaultsModeConfig;\n","'use strict';\n\nvar types = require('@smithy/types');\n\nclass BinaryDecisionDiagram {\n nodes;\n root;\n conditions;\n results;\n constructor(bdd, root, conditions, results) {\n this.nodes = bdd;\n this.root = root;\n this.conditions = conditions;\n this.results = results;\n }\n static from(bdd, root, conditions, results) {\n return new BinaryDecisionDiagram(bdd, root, conditions, results);\n }\n}\n\nclass EndpointCache {\n capacity;\n data = new Map();\n parameters = [];\n constructor({ size, params }) {\n this.capacity = size ?? 50;\n if (params) {\n this.parameters = params;\n }\n }\n get(endpointParams, resolver) {\n const key = this.hash(endpointParams);\n if (key === false) {\n return resolver();\n }\n if (!this.data.has(key)) {\n if (this.data.size > this.capacity + 10) {\n const keys = this.data.keys();\n let i = 0;\n while (true) {\n const { value, done } = keys.next();\n this.data.delete(value);\n if (done || ++i > 10) {\n break;\n }\n }\n }\n this.data.set(key, resolver());\n }\n return this.data.get(key);\n }\n size() {\n return this.data.size;\n }\n hash(endpointParams) {\n let buffer = \"\";\n const { parameters } = this;\n if (parameters.length === 0) {\n return false;\n }\n for (const param of parameters) {\n const val = String(endpointParams[param] ?? \"\");\n if (val.includes(\"|;\")) {\n return false;\n }\n buffer += val + \"|;\";\n }\n return buffer;\n }\n}\n\nclass EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n\nconst debugId = \"endpoints\";\n\nfunction toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\n\nconst customEndpointFunctions = {};\n\nconst booleanEquals = (value1, value2) => value1 === value2;\n\nfunction coalesce(...args) {\n for (const arg of args) {\n if (arg != null) {\n return arg;\n }\n }\n return undefined;\n}\n\nconst getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\n\nconst getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n const i = parseInt(index);\n return acc[i < 0 ? acc.length + i : i];\n }\n return acc[index];\n}, value);\n\nconst isSet = (value) => value != null;\n\nconst VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nconst isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!isValidHostLabel(label)) {\n return false;\n }\n }\n return true;\n};\n\nfunction ite(condition, trueValue, falseValue) {\n return condition ? trueValue : falseValue;\n}\n\nconst not = (value) => !value;\n\nconst IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nconst isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n\nconst DEFAULT_PORTS = {\n [types.EndpointURLScheme.HTTP]: 80,\n [types.EndpointURLScheme.HTTPS]: 443,\n};\nconst parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(types.EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = isIpAddress(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\n\nfunction split(value, delimiter, limit) {\n if (limit === 1) {\n return [value];\n }\n if (value === \"\") {\n return [\"\"];\n }\n const parts = value.split(delimiter);\n if (limit === 0) {\n return parts;\n }\n return parts.slice(0, limit - 1).concat(parts.slice(1).join(delimiter));\n}\n\nconst stringEquals = (value1, value2) => value1 === value2;\n\nconst substring = (input, start, stop, reverse) => {\n if (input == null || start >= stop || input.length < stop || /[^\\u0000-\\u007f]/.test(input)) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\n\nconst uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst endpointFunctions = {\n booleanEquals,\n coalesce,\n getAttr,\n isSet,\n isValidHostLabel,\n ite,\n not,\n parseURL,\n split,\n stringEquals,\n substring,\n uriEncode,\n};\n\nconst evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const { referenceRecord, endpointParams } = options;\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push(getAttr((referenceRecord[refName] ?? endpointParams[refName]), attrName));\n }\n else {\n evaluatedTemplateArr.push((referenceRecord[parameterName] ?? endpointParams[parameterName]));\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n\nconst getReferenceValue = ({ ref }, options) => {\n return options.referenceRecord[ref] ?? options.endpointParams[ref];\n};\n\nconst evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return group$2.callFunction(obj, options);\n }\n else if (obj[\"ref\"]) {\n return getReferenceValue(obj, options);\n }\n throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\nconst callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = Array(argv.length);\n for (let i = 0; i < evaluatedArgs.length; ++i) {\n const arg = argv[i];\n if (typeof arg === \"boolean\" || typeof arg === \"number\") {\n evaluatedArgs[i] = arg;\n }\n else {\n evaluatedArgs[i] = group$2.evaluateExpression(arg, \"arg\", options);\n }\n }\n const namespaceSeparatorIndex = fn.indexOf(\".\");\n if (namespaceSeparatorIndex !== -1) {\n const namespaceFunctions = customEndpointFunctions[fn.slice(0, namespaceSeparatorIndex)];\n const customFunction = namespaceFunctions?.[fn.slice(namespaceSeparatorIndex + 1)];\n if (typeof customFunction === \"function\") {\n return customFunction(...evaluatedArgs);\n }\n }\n const callable = endpointFunctions[fn];\n if (typeof callable === \"function\") {\n return callable(...evaluatedArgs);\n }\n throw new Error(`function ${fn} not loaded in endpointFunctions.`);\n};\nconst group$2 = {\n evaluateExpression,\n callFunction,\n};\n\nconst evaluateCondition = (condition, options) => {\n const { assign } = condition;\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(condition, options);\n options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(condition)} = ${toDebugString(value)}`);\n const result = value === \"\" ? true : !!value;\n if (assign != null) {\n return { result, toAssign: { name: assign, value } };\n }\n return { result };\n};\n\nconst getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => {\n acc[headerKey] = headerVal.map((headerValEntry) => {\n const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n });\n return acc;\n}, {});\n\nconst getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => {\n acc[propertyKey] = group$1.getEndpointProperty(propertyVal, options);\n return acc;\n}, {});\nconst getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return evaluateTemplate(property, options);\n case \"object\":\n if (property === null) {\n throw new EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return group$1.getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\nconst group$1 = {\n getEndpointProperty,\n getEndpointProperties,\n};\n\nconst getEndpointUrl = (endpointUrl, options) => {\n const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n\nconst RESULT = 100_000_000;\nconst decideEndpoint = (bdd, options) => {\n const { nodes, root, results, conditions } = bdd;\n let ref = root;\n const referenceRecord = {};\n const closure = {\n referenceRecord,\n endpointParams: options.endpointParams,\n logger: options.logger,\n };\n while (ref !== 1 && ref !== -1 && ref < RESULT) {\n const node_i = 3 * (Math.abs(ref) - 1);\n const [condition_i, highRef, lowRef] = [nodes[node_i], nodes[node_i + 1], nodes[node_i + 2]];\n const [fn, argv, assign] = conditions[condition_i];\n const evaluation = evaluateCondition({ fn, assign, argv }, closure);\n if (evaluation.toAssign) {\n const { name, value } = evaluation.toAssign;\n referenceRecord[name] = value;\n }\n ref = ref >= 0 === evaluation.result ? highRef : lowRef;\n }\n if (ref >= RESULT) {\n const result = results[ref - RESULT];\n if (result[0] === -1) {\n const [, errorExpression] = result;\n throw new EndpointError(evaluateExpression(errorExpression, \"Error\", closure));\n }\n const [url, properties, headers] = result;\n return {\n url: getEndpointUrl(url, closure),\n properties: getEndpointProperties(properties, closure),\n headers: getEndpointHeaders(headers ?? {}, closure),\n };\n }\n throw new EndpointError(`No matching endpoint.`);\n};\n\nconst evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n const conditionOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord },\n };\n let didAssign = false;\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, conditionOptions);\n if (!result) {\n return { result };\n }\n if (toAssign) {\n didAssign = true;\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n conditionOptions.referenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n if (didAssign) {\n return { result: true, referenceRecord: conditionsReferenceRecord };\n }\n return { result: true };\n};\n\nconst evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = referenceRecord\n ? {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }\n : options;\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);\n const endpointToReturn = { url: getEndpointUrl(url, endpointRuleOptions) };\n if (headers != null) {\n endpointToReturn.headers = getEndpointHeaders(headers, endpointRuleOptions);\n }\n if (properties != null) {\n endpointToReturn.properties = getEndpointProperties(properties, endpointRuleOptions);\n }\n return endpointToReturn;\n};\n\nconst evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const errorRuleOptions = referenceRecord\n ? {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }\n : options;\n throw new EndpointError(evaluateExpression(error, \"Error\", errorRuleOptions));\n};\n\nconst evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = evaluateEndpointRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n evaluateErrorRule(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = group.evaluateTreeRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new EndpointError(`Rules evaluation failed`);\n};\nconst evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const treeRuleOptions = referenceRecord\n ? { ...options, referenceRecord: { ...options.referenceRecord, ...referenceRecord } }\n : options;\n return group.evaluateRules(rules, treeRuleOptions);\n};\nconst group = {\n evaluateRules,\n evaluateTreeRule,\n};\n\nconst resolveEndpoint = (ruleSetObject, options) => {\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n for (const paramKey in parameters) {\n const parameter = parameters[paramKey];\n const endpointParam = endpointParams[paramKey];\n if (endpointParam == null && parameter.default != null) {\n endpointParams[paramKey] = parameter.default;\n continue;\n }\n if (parameter.required && endpointParam == null) {\n throw new EndpointError(`Missing required parameter: '${paramKey}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n\nexports.BinaryDecisionDiagram = BinaryDecisionDiagram;\nexports.EndpointCache = EndpointCache;\nexports.EndpointError = EndpointError;\nexports.customEndpointFunctions = customEndpointFunctions;\nexports.decideEndpoint = decideEndpoint;\nexports.isIpAddress = isIpAddress;\nexports.isValidHostLabel = isValidHostLabel;\nexports.resolveEndpoint = resolveEndpoint;\n","'use strict';\n\nconst SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nfunction fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nfunction toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n\nexports.fromHex = fromHex;\nexports.toHex = toHex;\n","'use strict';\n\nvar types = require('@smithy/types');\n\nconst getSmithyContext = (context) => context[types.SMITHY_CONTEXT_KEY] || (context[types.SMITHY_CONTEXT_KEY] = {});\n\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n\nexports.getSmithyContext = getSmithyContext;\nexports.normalizeProvider = normalizeProvider;\n","'use strict';\n\nvar serviceErrorClassification = require('@smithy/service-error-classification');\n\nexports.RETRY_MODES = void 0;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(exports.RETRY_MODES || (exports.RETRY_MODES = {}));\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_RETRY_MODE = exports.RETRY_MODES.STANDARD;\n\nclass DefaultRateLimiter {\n static setTimeoutFn = setTimeout;\n beta;\n minCapacity;\n minFillRate;\n scaleConstant;\n smooth;\n enabled = false;\n availableTokens = 0;\n lastMaxRate = 0;\n measuredTxRate = 0;\n requestCount = 0;\n fillRate;\n lastThrottleTime;\n lastTimestamp = 0;\n lastTxRateBucket;\n maxCapacity;\n timeWindow = 0;\n constructor(options) {\n this.beta = options?.beta ?? 0.7;\n this.minCapacity = options?.minCapacity ?? 1;\n this.minFillRate = options?.minFillRate ?? 0.5;\n this.scaleConstant = options?.scaleConstant ?? 0.4;\n this.smooth = options?.smooth ?? 0.8;\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n const retryErrorInfo = response;\n const isThrottling = retryErrorInfo?.errorType === \"THROTTLING\" || serviceErrorClassification.isThrottlingError(retryErrorInfo?.error ?? response);\n if (isThrottling) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.availableTokens) {\n const delay = ((amount - this.availableTokens) / this.fillRate) * 1000;\n await new Promise((resolve) => DefaultRateLimiter.setTimeoutFn(resolve, delay));\n }\n this.availableTokens = this.availableTokens - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.availableTokens = Math.min(this.maxCapacity, this.availableTokens + fillAmount);\n this.lastTimestamp = timestamp;\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.availableTokens = Math.min(this.availableTokens, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\n\nconst DEFAULT_RETRY_DELAY_BASE = 100;\nconst MAXIMUM_RETRY_DELAY = 20 * 1000;\nconst THROTTLING_RETRY_DELAY_BASE = 500;\nconst INITIAL_RETRY_TOKENS = 500;\nconst RETRY_COST = 5;\nconst TIMEOUT_RETRY_COST = 10;\nconst NO_RETRY_INCREMENT = 1;\nconst INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nconst REQUEST_HEADER = \"amz-sdk-request\";\n\nclass Retry {\n static v2026 = typeof process !== \"undefined\" && process.env?.SMITHY_NEW_RETRIES_2026 === \"true\";\n static delay() {\n return Retry.v2026 ? 50 : 100;\n }\n static throttlingDelay() {\n return Retry.v2026 ? 1_000 : 500;\n }\n static cost() {\n return Retry.v2026 ? 14 : 5;\n }\n static throttlingCost() {\n return Retry.v2026 ? 5 : 10;\n }\n static modifiedCostType() {\n return Retry.v2026 ? \"THROTTLING\" : \"TRANSIENT\";\n }\n}\n\nclass DefaultRetryBackoffStrategy {\n x = Retry.delay();\n computeNextBackoffDelay(i) {\n const b = Math.random();\n const r = 2;\n const t_i = b * Math.min(this.x * r ** i, MAXIMUM_RETRY_DELAY);\n return Math.floor(t_i);\n }\n setDelayBase(delay) {\n this.x = delay;\n }\n}\n\nclass DefaultRetryToken {\n delay;\n count;\n cost;\n longPoll;\n constructor(delay, count, cost, longPoll) {\n this.delay = delay;\n this.count = count;\n this.cost = cost;\n this.longPoll = longPoll;\n }\n getRetryCount() {\n return this.count;\n }\n getRetryDelay() {\n return Math.min(MAXIMUM_RETRY_DELAY, this.delay);\n }\n getRetryCost() {\n return this.cost;\n }\n isLongPoll() {\n return this.longPoll;\n }\n}\n\nclass StandardRetryStrategy {\n mode = exports.RETRY_MODES.STANDARD;\n capacity = INITIAL_RETRY_TOKENS;\n retryBackoffStrategy;\n maxAttemptsProvider;\n baseDelay;\n constructor(arg1) {\n if (typeof arg1 === \"number\") {\n this.maxAttemptsProvider = async () => arg1;\n }\n else if (typeof arg1 === \"function\") {\n this.maxAttemptsProvider = arg1;\n }\n else if (arg1 && typeof arg1 === \"object\") {\n this.maxAttemptsProvider = async () => arg1.maxAttempts;\n this.baseDelay = arg1.baseDelay;\n this.retryBackoffStrategy = arg1.backoff;\n }\n this.maxAttemptsProvider ??= async () => DEFAULT_MAX_ATTEMPTS;\n this.baseDelay ??= Retry.delay();\n this.retryBackoffStrategy ??= new DefaultRetryBackoffStrategy();\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return new DefaultRetryToken(Retry.delay(), 0, undefined, Retry.v2026 && retryTokenScope.includes(\":longpoll\"));\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n const shouldRetry = this.shouldRetry(token, errorInfo, maxAttempts);\n if (shouldRetry || token.isLongPoll?.()) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? Retry.throttlingDelay() : this.baseDelay);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n let retryDelay = delayFromErrorType;\n if (errorInfo.retryAfterHint instanceof Date) {\n retryDelay = Math.max(delayFromErrorType, Math.min(errorInfo.retryAfterHint.getTime() - Date.now(), delayFromErrorType + 5_000));\n }\n if (!shouldRetry) {\n throw Object.assign(new Error(\"No retry token available\"), { $backoff: Retry.v2026 ? retryDelay : 0 });\n }\n else {\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n return new DefaultRetryToken(retryDelay, token.getRetryCount() + 1, capacityCost, token.isLongPoll?.() ?? false);\n }\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.min(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n return DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount() + 1;\n return (attempts < maxAttempts &&\n this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n getCapacityCost(errorType) {\n return errorType === Retry.modifiedCostType() ? Retry.throttlingCost() : Retry.cost();\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n async maxAttempts() {\n return this.maxAttemptsProvider();\n }\n}\n\nclass AdaptiveRetryStrategy {\n mode = exports.RETRY_MODES.ADAPTIVE;\n rateLimiter;\n standardRetryStrategy;\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = options\n ? new StandardRetryStrategy({\n maxAttempts: typeof maxAttemptsProvider === \"number\" ? maxAttemptsProvider : 3,\n ...options,\n })\n : new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n async maxAttemptsProvider() {\n return this.standardRetryStrategy.maxAttempts();\n }\n}\n\nclass ConfiguredRetryStrategy extends StandardRetryStrategy {\n computeNextBackoffDelay;\n constructor(maxAttempts, computeNextBackoffDelay = Retry.delay()) {\n super(typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts);\n if (typeof computeNextBackoffDelay === \"number\") {\n this.computeNextBackoffDelay = () => computeNextBackoffDelay;\n }\n else {\n this.computeNextBackoffDelay = computeNextBackoffDelay;\n }\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount());\n return token;\n }\n}\n\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\nexports.ConfiguredRetryStrategy = ConfiguredRetryStrategy;\nexports.DEFAULT_MAX_ATTEMPTS = DEFAULT_MAX_ATTEMPTS;\nexports.DEFAULT_RETRY_DELAY_BASE = DEFAULT_RETRY_DELAY_BASE;\nexports.DEFAULT_RETRY_MODE = DEFAULT_RETRY_MODE;\nexports.DefaultRateLimiter = DefaultRateLimiter;\nexports.INITIAL_RETRY_TOKENS = INITIAL_RETRY_TOKENS;\nexports.INVOCATION_ID_HEADER = INVOCATION_ID_HEADER;\nexports.MAXIMUM_RETRY_DELAY = MAXIMUM_RETRY_DELAY;\nexports.NO_RETRY_INCREMENT = NO_RETRY_INCREMENT;\nexports.REQUEST_HEADER = REQUEST_HEADER;\nexports.RETRY_COST = RETRY_COST;\nexports.Retry = Retry;\nexports.StandardRetryStrategy = StandardRetryStrategy;\nexports.THROTTLING_RETRY_DELAY_BASE = THROTTLING_RETRY_DELAY_BASE;\nexports.TIMEOUT_RETRY_COST = TIMEOUT_RETRY_COST;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ByteArrayCollector = void 0;\nclass ByteArrayCollector {\n allocByteArray;\n byteLength = 0;\n byteArrays = [];\n constructor(allocByteArray) {\n this.allocByteArray = allocByteArray;\n }\n push(byteArray) {\n this.byteArrays.push(byteArray);\n this.byteLength += byteArray.byteLength;\n }\n flush() {\n if (this.byteArrays.length === 1) {\n const bytes = this.byteArrays[0];\n this.reset();\n return bytes;\n }\n const aggregation = this.allocByteArray(this.byteLength);\n let cursor = 0;\n for (let i = 0; i < this.byteArrays.length; ++i) {\n const bytes = this.byteArrays[i];\n aggregation.set(bytes, cursor);\n cursor += bytes.byteLength;\n }\n this.reset();\n return aggregation;\n }\n reset() {\n this.byteArrays = [];\n this.byteLength = 0;\n }\n}\nexports.ByteArrayCollector = ByteArrayCollector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChecksumStream = void 0;\nconst ReadableStreamRef = typeof ReadableStream === \"function\" ? ReadableStream : function () { };\nclass ChecksumStream extends ReadableStreamRef {\n}\nexports.ChecksumStream = ChecksumStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChecksumStream = void 0;\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst stream_1 = require(\"stream\");\nclass ChecksumStream extends stream_1.Duplex {\n expectedChecksum;\n checksumSourceLocation;\n checksum;\n source;\n base64Encoder;\n pendingCallback = null;\n constructor({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) {\n super();\n if (typeof source.pipe === \"function\") {\n this.source = source;\n }\n else {\n throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n }\n this.base64Encoder = base64Encoder ?? util_base64_1.toBase64;\n this.expectedChecksum = expectedChecksum;\n this.checksum = checksum;\n this.checksumSourceLocation = checksumSourceLocation;\n this.source.pipe(this);\n }\n _read(size) {\n if (this.pendingCallback) {\n const callback = this.pendingCallback;\n this.pendingCallback = null;\n callback();\n }\n }\n _write(chunk, encoding, callback) {\n try {\n this.checksum.update(chunk);\n const canPushMore = this.push(chunk);\n if (!canPushMore) {\n this.pendingCallback = callback;\n return;\n }\n }\n catch (e) {\n return callback(e);\n }\n return callback();\n }\n async _final(callback) {\n try {\n const digest = await this.checksum.digest();\n const received = this.base64Encoder(digest);\n if (this.expectedChecksum !== received) {\n return callback(new Error(`Checksum mismatch: expected \"${this.expectedChecksum}\" but received \"${received}\"` +\n ` in response header \"${this.checksumSourceLocation}\".`));\n }\n }\n catch (e) {\n return callback(e);\n }\n this.push(null);\n return callback();\n }\n}\nexports.ChecksumStream = ChecksumStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createChecksumStream = void 0;\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst stream_type_check_1 = require(\"../stream-type-check\");\nconst ChecksumStream_browser_1 = require(\"./ChecksumStream.browser\");\nconst createChecksumStream = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) => {\n if (!(0, stream_type_check_1.isReadableStream)(source)) {\n throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n }\n const encoder = base64Encoder ?? util_base64_1.toBase64;\n if (typeof TransformStream !== \"function\") {\n throw new Error(\"@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.\");\n }\n const transform = new TransformStream({\n start() { },\n async transform(chunk, controller) {\n checksum.update(chunk);\n controller.enqueue(chunk);\n },\n async flush(controller) {\n const digest = await checksum.digest();\n const received = encoder(digest);\n if (expectedChecksum !== received) {\n const error = new Error(`Checksum mismatch: expected \"${expectedChecksum}\" but received \"${received}\"` +\n ` in response header \"${checksumSourceLocation}\".`);\n controller.error(error);\n }\n else {\n controller.terminate();\n }\n },\n });\n source.pipeThrough(transform);\n const readable = transform.readable;\n Object.setPrototypeOf(readable, ChecksumStream_browser_1.ChecksumStream.prototype);\n return readable;\n};\nexports.createChecksumStream = createChecksumStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createChecksumStream = createChecksumStream;\nconst stream_type_check_1 = require(\"../stream-type-check\");\nconst ChecksumStream_1 = require(\"./ChecksumStream\");\nconst createChecksumStream_browser_1 = require(\"./createChecksumStream.browser\");\nfunction createChecksumStream(init) {\n if (typeof ReadableStream === \"function\" && (0, stream_type_check_1.isReadableStream)(init.source)) {\n return (0, createChecksumStream_browser_1.createChecksumStream)(init);\n }\n return new ChecksumStream_1.ChecksumStream(init);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBufferedReadable = createBufferedReadable;\nconst node_stream_1 = require(\"node:stream\");\nconst ByteArrayCollector_1 = require(\"./ByteArrayCollector\");\nconst createBufferedReadableStream_1 = require(\"./createBufferedReadableStream\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nfunction createBufferedReadable(upstream, size, logger) {\n if ((0, stream_type_check_1.isReadableStream)(upstream)) {\n return (0, createBufferedReadableStream_1.createBufferedReadableStream)(upstream, size, logger);\n }\n const downstream = new node_stream_1.Readable({ read() { } });\n let streamBufferingLoggedWarning = false;\n let bytesSeen = 0;\n const buffers = [\n \"\",\n new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size)),\n new ByteArrayCollector_1.ByteArrayCollector((size) => Buffer.from(new Uint8Array(size))),\n ];\n let mode = -1;\n upstream.on(\"data\", (chunk) => {\n const chunkMode = (0, createBufferedReadableStream_1.modeOf)(chunk, true);\n if (mode !== chunkMode) {\n if (mode >= 0) {\n downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode));\n }\n mode = chunkMode;\n }\n if (mode === -1) {\n downstream.push(chunk);\n return;\n }\n const chunkSize = (0, createBufferedReadableStream_1.sizeOf)(chunk);\n bytesSeen += chunkSize;\n const bufferSize = (0, createBufferedReadableStream_1.sizeOf)(buffers[mode]);\n if (chunkSize >= size && bufferSize === 0) {\n downstream.push(chunk);\n }\n else {\n const newSize = (0, createBufferedReadableStream_1.merge)(buffers, mode, chunk);\n if (!streamBufferingLoggedWarning && bytesSeen > size * 2) {\n streamBufferingLoggedWarning = true;\n logger?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`);\n }\n if (newSize >= size) {\n downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode));\n }\n }\n });\n upstream.on(\"end\", () => {\n if (mode !== -1) {\n const remainder = (0, createBufferedReadableStream_1.flush)(buffers, mode);\n if ((0, createBufferedReadableStream_1.sizeOf)(remainder) > 0) {\n downstream.push(remainder);\n }\n }\n downstream.push(null);\n });\n return downstream;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBufferedReadable = void 0;\nexports.createBufferedReadableStream = createBufferedReadableStream;\nexports.merge = merge;\nexports.flush = flush;\nexports.sizeOf = sizeOf;\nexports.modeOf = modeOf;\nconst ByteArrayCollector_1 = require(\"./ByteArrayCollector\");\nfunction createBufferedReadableStream(upstream, size, logger) {\n const reader = upstream.getReader();\n let streamBufferingLoggedWarning = false;\n let bytesSeen = 0;\n const buffers = [\"\", new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size))];\n let mode = -1;\n const pull = async (controller) => {\n const { value, done } = await reader.read();\n const chunk = value;\n if (done) {\n if (mode !== -1) {\n const remainder = flush(buffers, mode);\n if (sizeOf(remainder) > 0) {\n controller.enqueue(remainder);\n }\n }\n controller.close();\n }\n else {\n const chunkMode = modeOf(chunk, false);\n if (mode !== chunkMode) {\n if (mode >= 0) {\n controller.enqueue(flush(buffers, mode));\n }\n mode = chunkMode;\n }\n if (mode === -1) {\n controller.enqueue(chunk);\n return;\n }\n const chunkSize = sizeOf(chunk);\n bytesSeen += chunkSize;\n const bufferSize = sizeOf(buffers[mode]);\n if (chunkSize >= size && bufferSize === 0) {\n controller.enqueue(chunk);\n }\n else {\n const newSize = merge(buffers, mode, chunk);\n if (!streamBufferingLoggedWarning && bytesSeen > size * 2) {\n streamBufferingLoggedWarning = true;\n logger?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`);\n }\n if (newSize >= size) {\n controller.enqueue(flush(buffers, mode));\n }\n else {\n await pull(controller);\n }\n }\n }\n };\n return new ReadableStream({\n pull,\n });\n}\nexports.createBufferedReadable = createBufferedReadableStream;\nfunction merge(buffers, mode, chunk) {\n switch (mode) {\n case 0:\n buffers[0] += chunk;\n return sizeOf(buffers[0]);\n case 1:\n case 2:\n buffers[mode].push(chunk);\n return sizeOf(buffers[mode]);\n }\n}\nfunction flush(buffers, mode) {\n switch (mode) {\n case 0:\n const s = buffers[0];\n buffers[0] = \"\";\n return s;\n case 1:\n case 2:\n return buffers[mode].flush();\n }\n throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`);\n}\nfunction sizeOf(chunk) {\n return chunk?.byteLength ?? chunk?.length ?? 0;\n}\nfunction modeOf(chunk, allowBuffer = true) {\n if (allowBuffer && typeof Buffer !== \"undefined\" && chunk instanceof Buffer) {\n return 2;\n }\n if (chunk instanceof Uint8Array) {\n return 1;\n }\n if (typeof chunk === \"string\") {\n return 0;\n }\n return -1;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAwsChunkedEncodingStream = void 0;\nconst getAwsChunkedEncodingStream = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n bodyLengthChecker !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const reader = readableStream.getReader();\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await reader.read();\n if (done) {\n controller.enqueue(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n controller.enqueue(`\\r\\n`);\n }\n controller.close();\n }\n else {\n controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n }\n },\n });\n};\nexports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream;\nconst node_stream_1 = require(\"node:stream\");\nconst getAwsChunkedEncodingStream_browser_1 = require(\"./getAwsChunkedEncodingStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nfunction getAwsChunkedEncodingStream(stream, options) {\n const readable = stream;\n const readableStream = stream;\n if ((0, stream_type_check_1.isReadableStream)(readableStream)) {\n return (0, getAwsChunkedEncodingStream_browser_1.getAwsChunkedEncodingStream)(readableStream, options);\n }\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readable) : undefined;\n const awsChunkedEncodingStream = new node_stream_1.Readable({\n read: () => { },\n });\n readable.on(\"data\", (data) => {\n const length = bodyLengthChecker(data) || 0;\n if (length === 0) {\n return;\n }\n awsChunkedEncodingStream.push(`${length.toString(16)}\\r\\n`);\n awsChunkedEncodingStream.push(data);\n awsChunkedEncodingStream.push(\"\\r\\n\");\n });\n readable.on(\"end\", async () => {\n awsChunkedEncodingStream.push(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\\r\\n`);\n awsChunkedEncodingStream.push(`\\r\\n`);\n }\n awsChunkedEncodingStream.push(null);\n });\n return awsChunkedEncodingStream;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headStream = headStream;\nasync function headStream(stream, bytes) {\n let byteLengthCounter = 0;\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n byteLengthCounter += value?.byteLength ?? 0;\n }\n if (byteLengthCounter >= bytes) {\n break;\n }\n isDone = done;\n }\n reader.releaseLock();\n const collected = new Uint8Array(Math.min(bytes, byteLengthCounter));\n let offset = 0;\n for (const chunk of chunks) {\n if (chunk.byteLength > collected.byteLength - offset) {\n collected.set(chunk.subarray(0, collected.byteLength - offset), offset);\n break;\n }\n else {\n collected.set(chunk, offset);\n }\n offset += chunk.length;\n }\n return collected;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headStream = void 0;\nconst stream_1 = require(\"stream\");\nconst headStream_browser_1 = require(\"./headStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nconst headStream = (stream, bytes) => {\n if ((0, stream_type_check_1.isReadableStream)(stream)) {\n return (0, headStream_browser_1.headStream)(stream, bytes);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n collector.limit = bytes;\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.buffers));\n resolve(bytes);\n });\n });\n};\nexports.headStream = headStream;\nclass Collector extends stream_1.Writable {\n buffers = [];\n limit = Infinity;\n bytesBuffered = 0;\n _write(chunk, encoding, callback) {\n this.buffers.push(chunk);\n this.bytesBuffered += chunk.byteLength ?? 0;\n if (this.bytesBuffered >= this.limit) {\n const excess = this.bytesBuffered - this.limit;\n const tailBuffer = this.buffers[this.buffers.length - 1];\n this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess);\n this.emit(\"finish\");\n }\n callback();\n }\n}\n","'use strict';\n\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar ChecksumStream = require('./checksum/ChecksumStream');\nvar createChecksumStream = require('./checksum/createChecksumStream');\nvar createBufferedReadable = require('./createBufferedReadable');\nvar getAwsChunkedEncodingStream = require('./getAwsChunkedEncodingStream');\nvar headStream = require('./headStream');\nvar sdkStreamMixin = require('./sdk-stream-mixin');\nvar splitStream = require('./splitStream');\nvar streamTypeCheck = require('./stream-type-check');\n\nclass Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n if (typeof source === \"string\") {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(utilBase64.fromBase64(source));\n }\n return Uint8ArrayBlobAdapter.mutate(utilUtf8.fromUtf8(source));\n }\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return utilBase64.toBase64(this);\n }\n return utilUtf8.toUtf8(this);\n }\n}\n\nexports.isBlob = streamTypeCheck.isBlob;\nexports.isReadableStream = streamTypeCheck.isReadableStream;\nexports.Uint8ArrayBlobAdapter = Uint8ArrayBlobAdapter;\nObject.prototype.hasOwnProperty.call(ChecksumStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: ChecksumStream['__proto__']\n });\n\nObject.keys(ChecksumStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = ChecksumStream[k];\n});\nObject.prototype.hasOwnProperty.call(createChecksumStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: createChecksumStream['__proto__']\n });\n\nObject.keys(createChecksumStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = createChecksumStream[k];\n});\nObject.prototype.hasOwnProperty.call(createBufferedReadable, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: createBufferedReadable['__proto__']\n });\n\nObject.keys(createBufferedReadable).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = createBufferedReadable[k];\n});\nObject.prototype.hasOwnProperty.call(getAwsChunkedEncodingStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: getAwsChunkedEncodingStream['__proto__']\n });\n\nObject.keys(getAwsChunkedEncodingStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = getAwsChunkedEncodingStream[k];\n});\nObject.prototype.hasOwnProperty.call(headStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: headStream['__proto__']\n });\n\nObject.keys(headStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = headStream[k];\n});\nObject.prototype.hasOwnProperty.call(sdkStreamMixin, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: sdkStreamMixin['__proto__']\n });\n\nObject.keys(sdkStreamMixin).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = sdkStreamMixin[k];\n});\nObject.prototype.hasOwnProperty.call(splitStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: splitStream['__proto__']\n });\n\nObject.keys(splitStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = splitStream[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sdkStreamMixin = void 0;\nconst fetch_http_handler_1 = require(\"@smithy/fetch-http-handler\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_hex_encoding_1 = require(\"@smithy/util-hex-encoding\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n if (!isBlobInstance(stream) && !(0, stream_type_check_1.isReadableStream)(stream)) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await (0, fetch_http_handler_1.streamCollector)(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return (0, util_base64_1.toBase64)(buf);\n }\n else if (encoding === \"hex\") {\n return (0, util_hex_encoding_1.toHex)(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return (0, util_utf8_1.toUtf8)(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if ((0, stream_type_check_1.isReadableStream)(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nexports.sdkStreamMixin = sdkStreamMixin;\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sdkStreamMixin = void 0;\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst stream_1 = require(\"stream\");\nconst sdk_stream_mixin_browser_1 = require(\"./sdk-stream-mixin.browser\");\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n if (!(stream instanceof stream_1.Readable)) {\n try {\n return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream);\n }\n catch (e) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`);\n }\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await (0, node_http_handler_1.streamCollector)(stream);\n };\n return Object.assign(stream, {\n transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === undefined || Buffer.isEncoding(encoding)) {\n return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding);\n }\n else {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buf);\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n if (stream.readableFlowing !== null) {\n throw new Error(\"The stream has been consumed by other callbacks.\");\n }\n if (typeof stream_1.Readable.toWeb !== \"function\") {\n throw new Error(\"Readable.toWeb() is not supported. Please ensure a polyfill is available.\");\n }\n transformed = true;\n return stream_1.Readable.toWeb(stream);\n },\n });\n};\nexports.sdkStreamMixin = sdkStreamMixin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitStream = splitStream;\nasync function splitStream(stream) {\n if (typeof stream.stream === \"function\") {\n stream = stream.stream();\n }\n const readableStream = stream;\n return readableStream.tee();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitStream = splitStream;\nconst stream_1 = require(\"stream\");\nconst splitStream_browser_1 = require(\"./splitStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nasync function splitStream(stream) {\n if ((0, stream_type_check_1.isReadableStream)(stream) || (0, stream_type_check_1.isBlob)(stream)) {\n return (0, splitStream_browser_1.splitStream)(stream);\n }\n const stream1 = new stream_1.PassThrough();\n const stream2 = new stream_1.PassThrough();\n stream.pipe(stream1);\n stream.pipe(stream2);\n return [stream1, stream2];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBlob = exports.isReadableStream = void 0;\nconst isReadableStream = (stream) => typeof ReadableStream === \"function\" &&\n (stream?.constructor?.name === ReadableStream.name || stream instanceof ReadableStream);\nexports.isReadableStream = isReadableStream;\nconst isBlob = (blob) => {\n return typeof Blob === \"function\" && (blob?.constructor?.name === Blob.name || blob instanceof Blob);\n};\nexports.isBlob = isBlob;\n","'use strict';\n\nconst escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n\nconst escapeUriPath = (uri) => uri.split(\"/\").map(escapeUri).join(\"/\");\n\nexports.escapeUri = escapeUri;\nexports.escapeUriPath = escapeUriPath;\n","'use strict';\n\nvar utilBufferFrom = require('@smithy/util-buffer-from');\n\nconst fromUtf8 = (input) => {\n const buf = utilBufferFrom.fromString(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n\nconst toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n\nconst toUtf8 = (input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return utilBufferFrom.fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n};\n\nexports.fromUtf8 = fromUtf8;\nexports.toUint8Array = toUint8Array;\nexports.toUtf8 = toUtf8;\n","'use strict';\n\nconst getCircularReplacer = () => {\n const seen = new WeakSet();\n return (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return \"[Circular]\";\n }\n seen.add(value);\n }\n return value;\n };\n};\n\nconst sleep = (seconds) => {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n};\n\nconst waiterServiceDefaults = {\n minDelay: 2,\n maxDelay: 120,\n};\nexports.WaiterState = void 0;\n(function (WaiterState) {\n WaiterState[\"ABORTED\"] = \"ABORTED\";\n WaiterState[\"FAILURE\"] = \"FAILURE\";\n WaiterState[\"SUCCESS\"] = \"SUCCESS\";\n WaiterState[\"RETRY\"] = \"RETRY\";\n WaiterState[\"TIMEOUT\"] = \"TIMEOUT\";\n})(exports.WaiterState || (exports.WaiterState = {}));\nconst checkExceptions = (result) => {\n if (result.state === exports.WaiterState.ABORTED) {\n const abortError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Request was aborted\",\n }, getCircularReplacer())}`);\n abortError.name = \"AbortError\";\n throw abortError;\n }\n else if (result.state === exports.WaiterState.TIMEOUT) {\n const timeoutError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Waiter has timed out\",\n }, getCircularReplacer())}`);\n timeoutError.name = \"TimeoutError\";\n throw timeoutError;\n }\n else if (result.state !== exports.WaiterState.SUCCESS) {\n throw new Error(`${JSON.stringify(result, getCircularReplacer())}`);\n }\n return result;\n};\n\nconst exponentialBackoffWithJitter = (minDelay, maxDelay, attemptCeiling, attempt) => {\n if (attempt > attemptCeiling)\n return maxDelay;\n const delay = minDelay * 2 ** (attempt - 1);\n return randomInRange(minDelay, delay);\n};\nconst randomInRange = (min, max) => min + Math.random() * (max - min);\nconst runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => {\n const observedResponses = {};\n const { state, reason } = await acceptorChecks(client, input);\n if (reason) {\n const message = createMessageFromResponse(reason);\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n }\n if (state !== exports.WaiterState.RETRY) {\n return { state, reason, observedResponses };\n }\n let currentAttempt = 1;\n const waitUntil = Date.now() + maxWaitTime * 1000;\n const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1;\n while (true) {\n if (abortController?.signal?.aborted || abortSignal?.aborted) {\n const message = \"AbortController signal aborted.\";\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n return { state: exports.WaiterState.ABORTED, observedResponses };\n }\n const delay = exponentialBackoffWithJitter(minDelay, maxDelay, attemptCeiling, currentAttempt);\n if (Date.now() + delay * 1000 > waitUntil) {\n return { state: exports.WaiterState.TIMEOUT, observedResponses };\n }\n await sleep(delay);\n const { state, reason } = await acceptorChecks(client, input);\n if (reason) {\n const message = createMessageFromResponse(reason);\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n }\n if (state !== exports.WaiterState.RETRY) {\n return { state, reason, observedResponses };\n }\n currentAttempt += 1;\n }\n};\nconst createMessageFromResponse = (reason) => {\n if (reason?.$responseBodyText) {\n return `Deserialization error for body: ${reason.$responseBodyText}`;\n }\n if (reason?.$metadata?.httpStatusCode) {\n if (reason.$response || reason.message) {\n return `${reason.$response?.statusCode ?? reason.$metadata.httpStatusCode ?? \"Unknown\"}: ${reason.message}`;\n }\n return `${reason.$metadata.httpStatusCode}: OK`;\n }\n return String(reason?.message ?? JSON.stringify(reason, getCircularReplacer()) ?? \"Unknown\");\n};\n\nconst validateWaiterOptions = (options) => {\n if (options.maxWaitTime <= 0) {\n throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`);\n }\n else if (options.minDelay <= 0) {\n throw new Error(`WaiterConfiguration.minDelay must be greater than 0`);\n }\n else if (options.maxDelay <= 0) {\n throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`);\n }\n else if (options.maxWaitTime <= options.minDelay) {\n throw new Error(`WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n else if (options.maxDelay < options.minDelay) {\n throw new Error(`WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n};\n\nconst abortTimeout = (abortSignal) => {\n let onAbort;\n const promise = new Promise((resolve) => {\n onAbort = () => resolve({ state: exports.WaiterState.ABORTED });\n if (typeof abortSignal.addEventListener === \"function\") {\n abortSignal.addEventListener(\"abort\", onAbort);\n }\n else {\n abortSignal.onabort = onAbort;\n }\n });\n return {\n clearListener() {\n if (typeof abortSignal.removeEventListener === \"function\") {\n abortSignal.removeEventListener(\"abort\", onAbort);\n }\n },\n aborted: promise,\n };\n};\nconst createWaiter = async (options, input, acceptorChecks) => {\n const params = {\n ...waiterServiceDefaults,\n ...options,\n };\n validateWaiterOptions(params);\n const exitConditions = [runPolling(params, input, acceptorChecks)];\n const finalize = [];\n if (options.abortSignal) {\n const { aborted, clearListener } = abortTimeout(options.abortSignal);\n finalize.push(clearListener);\n exitConditions.push(aborted);\n }\n if (options.abortController?.signal) {\n const { aborted, clearListener } = abortTimeout(options.abortController.signal);\n finalize.push(clearListener);\n exitConditions.push(aborted);\n }\n return Promise.race(exitConditions).then((result) => {\n for (const fn of finalize) {\n fn();\n }\n return result;\n });\n};\n\nexports.checkExceptions = checkExceptions;\nexports.createWaiter = createWaiter;\nexports.waiterServiceDefaults = waiterServiceDefaults;\n","'use strict';\n\nvar randomUUID = require('./randomUUID');\n\nconst decimalToHex = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, \"0\"));\nconst v4 = () => {\n if (randomUUID.randomUUID) {\n return randomUUID.randomUUID();\n }\n const rnds = new Uint8Array(16);\n crypto.getRandomValues(rnds);\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n return (decimalToHex[rnds[0]] +\n decimalToHex[rnds[1]] +\n decimalToHex[rnds[2]] +\n decimalToHex[rnds[3]] +\n \"-\" +\n decimalToHex[rnds[4]] +\n decimalToHex[rnds[5]] +\n \"-\" +\n decimalToHex[rnds[6]] +\n decimalToHex[rnds[7]] +\n \"-\" +\n decimalToHex[rnds[8]] +\n decimalToHex[rnds[9]] +\n \"-\" +\n decimalToHex[rnds[10]] +\n decimalToHex[rnds[11]] +\n decimalToHex[rnds[12]] +\n decimalToHex[rnds[13]] +\n decimalToHex[rnds[14]] +\n decimalToHex[rnds[15]]);\n};\n\nexports.v4 = v4;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomUUID = void 0;\nconst tslib_1 = require(\"tslib\");\nconst crypto_1 = tslib_1.__importDefault(require(\"crypto\"));\nexports.randomUUID = crypto_1.default.randomUUID.bind(crypto_1.default);\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","/**\n * archiver-utils\n *\n * Copyright (c) 2012-2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT\n */\nvar fs = require('graceful-fs');\nvar path = require('path');\n\nvar flatten = require('lodash/flatten');\nvar difference = require('lodash/difference');\nvar union = require('lodash/union');\nvar isPlainObject = require('lodash/isPlainObject');\n\nvar glob = require('glob');\n\nvar file = module.exports = {};\n\nvar pathSeparatorRe = /[\\/\\\\]/g;\n\n// Process specified wildcard glob patterns or filenames against a\n// callback, excluding and uniquing files in the result set.\nvar processPatterns = function(patterns, fn) {\n // Filepaths to return.\n var result = [];\n // Iterate over flattened patterns array.\n flatten(patterns).forEach(function(pattern) {\n // If the first character is ! it should be omitted\n var exclusion = pattern.indexOf('!') === 0;\n // If the pattern is an exclusion, remove the !\n if (exclusion) { pattern = pattern.slice(1); }\n // Find all matching files for this pattern.\n var matches = fn(pattern);\n if (exclusion) {\n // If an exclusion, remove matching files.\n result = difference(result, matches);\n } else {\n // Otherwise add matching files.\n result = union(result, matches);\n }\n });\n return result;\n};\n\n// True if the file path exists.\nfile.exists = function() {\n var filepath = path.join.apply(path, arguments);\n return fs.existsSync(filepath);\n};\n\n// Return an array of all file paths that match the given wildcard patterns.\nfile.expand = function(...args) {\n // If the first argument is an options object, save those options to pass\n // into the File.prototype.glob.sync method.\n var options = isPlainObject(args[0]) ? args.shift() : {};\n // Use the first argument if it's an Array, otherwise convert the arguments\n // object to an array and use that.\n var patterns = Array.isArray(args[0]) ? args[0] : args;\n // Return empty set if there are no patterns or filepaths.\n if (patterns.length === 0) { return []; }\n // Return all matching filepaths.\n var matches = processPatterns(patterns, function(pattern) {\n // Find all matching files for this pattern.\n return glob.sync(pattern, options);\n });\n // Filter result set?\n if (options.filter) {\n matches = matches.filter(function(filepath) {\n filepath = path.join(options.cwd || '', filepath);\n try {\n if (typeof options.filter === 'function') {\n return options.filter(filepath);\n } else {\n // If the file is of the right type and exists, this should work.\n return fs.statSync(filepath)[options.filter]();\n }\n } catch(e) {\n // Otherwise, it's probably not the right type.\n return false;\n }\n });\n }\n return matches;\n};\n\n// Build a multi task \"files\" object dynamically.\nfile.expandMapping = function(patterns, destBase, options) {\n options = Object.assign({\n rename: function(destBase, destPath) {\n return path.join(destBase || '', destPath);\n }\n }, options);\n var files = [];\n var fileByDest = {};\n // Find all files matching pattern, using passed-in options.\n file.expand(options, patterns).forEach(function(src) {\n var destPath = src;\n // Flatten?\n if (options.flatten) {\n destPath = path.basename(destPath);\n }\n // Change the extension?\n if (options.ext) {\n destPath = destPath.replace(/(\\.[^\\/]*)?$/, options.ext);\n }\n // Generate destination filename.\n var dest = options.rename(destBase, destPath, options);\n // Prepend cwd to src path if necessary.\n if (options.cwd) { src = path.join(options.cwd, src); }\n // Normalize filepaths to be unix-style.\n dest = dest.replace(pathSeparatorRe, '/');\n src = src.replace(pathSeparatorRe, '/');\n // Map correct src path to dest path.\n if (fileByDest[dest]) {\n // If dest already exists, push this src onto that dest's src array.\n fileByDest[dest].src.push(src);\n } else {\n // Otherwise create a new src-dest file mapping object.\n files.push({\n src: [src],\n dest: dest,\n });\n // And store a reference for later use.\n fileByDest[dest] = files[files.length - 1];\n }\n });\n return files;\n};\n\n// reusing bits of grunt's multi-task source normalization\nfile.normalizeFilesArray = function(data) {\n var files = [];\n\n data.forEach(function(obj) {\n var prop;\n if ('src' in obj || 'dest' in obj) {\n files.push(obj);\n }\n });\n\n if (files.length === 0) {\n return [];\n }\n\n files = _(files).chain().forEach(function(obj) {\n if (!('src' in obj) || !obj.src) { return; }\n // Normalize .src properties to flattened array.\n if (Array.isArray(obj.src)) {\n obj.src = flatten(obj.src);\n } else {\n obj.src = [obj.src];\n }\n }).map(function(obj) {\n // Build options object, removing unwanted properties.\n var expandOptions = Object.assign({}, obj);\n delete expandOptions.src;\n delete expandOptions.dest;\n\n // Expand file mappings.\n if (obj.expand) {\n return file.expandMapping(obj.src, obj.dest, expandOptions).map(function(mapObj) {\n // Copy obj properties to result.\n var result = Object.assign({}, obj);\n // Make a clone of the orig obj available.\n result.orig = Object.assign({}, obj);\n // Set .src and .dest, processing both as templates.\n result.src = mapObj.src;\n result.dest = mapObj.dest;\n // Remove unwanted properties.\n ['expand', 'cwd', 'flatten', 'rename', 'ext'].forEach(function(prop) {\n delete result[prop];\n });\n return result;\n });\n }\n\n // Copy obj properties to result, adding an .orig property.\n var result = Object.assign({}, obj);\n // Make a clone of the orig obj available.\n result.orig = Object.assign({}, obj);\n\n if ('src' in result) {\n // Expose an expand-on-demand getter method as .src.\n Object.defineProperty(result, 'src', {\n enumerable: true,\n get: function fn() {\n var src;\n if (!('result' in fn)) {\n src = obj.src;\n // If src is an array, flatten it. Otherwise, make it into an array.\n src = Array.isArray(src) ? flatten(src) : [src];\n // Expand src files, memoizing result.\n fn.result = file.expand(expandOptions, src);\n }\n return fn.result;\n }\n });\n }\n\n if ('dest' in result) {\n result.dest = obj.dest;\n }\n\n return result;\n }).flatten().value();\n\n return files;\n};\n","/**\n * archiver-utils\n *\n * Copyright (c) 2015 Chris Talkington.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/archiver-utils/blob/master/LICENSE\n */\nvar fs = require('graceful-fs');\nvar path = require('path');\nvar isStream = require('is-stream');\nvar lazystream = require('lazystream');\nvar normalizePath = require('normalize-path');\nvar defaults = require('lodash/defaults');\n\nvar Stream = require('stream').Stream;\nvar PassThrough = require('readable-stream').PassThrough;\n\nvar utils = module.exports = {};\nutils.file = require('./file.js');\n\nutils.collectStream = function(source, callback) {\n var collection = [];\n var size = 0;\n\n source.on('error', callback);\n\n source.on('data', function(chunk) {\n collection.push(chunk);\n size += chunk.length;\n });\n\n source.on('end', function() {\n var buf = Buffer.alloc(size);\n var offset = 0;\n\n collection.forEach(function(data) {\n data.copy(buf, offset);\n offset += data.length;\n });\n\n callback(null, buf);\n });\n};\n\nutils.dateify = function(dateish) {\n dateish = dateish || new Date();\n\n if (dateish instanceof Date) {\n dateish = dateish;\n } else if (typeof dateish === 'string') {\n dateish = new Date(dateish);\n } else {\n dateish = new Date();\n }\n\n return dateish;\n};\n\n// this is slightly different from lodash version\nutils.defaults = function(object, source, guard) {\n var args = arguments;\n args[0] = args[0] || {};\n\n return defaults(...args);\n};\n\nutils.isStream = function(source) {\n return isStream(source);\n};\n\nutils.lazyReadStream = function(filepath) {\n return new lazystream.Readable(function() {\n return fs.createReadStream(filepath);\n });\n};\n\nutils.normalizeInputSource = function(source) {\n if (source === null) {\n return Buffer.alloc(0);\n } else if (typeof source === 'string') {\n return Buffer.from(source);\n } else if (utils.isStream(source)) {\n // Always pipe through a PassThrough stream to guarantee pausing the stream if it's already flowing,\n // since it will only be processed in a (distant) future iteration of the event loop, and will lose\n // data if already flowing now.\n return source.pipe(new PassThrough());\n }\n\n return source;\n};\n\nutils.sanitizePath = function(filepath) {\n return normalizePath(filepath, false).replace(/^\\w+:/, '').replace(/^(\\.\\.\\/|\\/)+/, '');\n};\n\nutils.trailingSlashIt = function(str) {\n return str.slice(-1) !== '/' ? str + '/' : str;\n};\n\nutils.unixifyPath = function(filepath) {\n return normalizePath(filepath, false).replace(/^\\w+:/, '');\n};\n\nutils.walkdir = function(dirpath, base, callback) {\n var results = [];\n\n if (typeof base === 'function') {\n callback = base;\n base = dirpath;\n }\n\n fs.readdir(dirpath, function(err, list) {\n var i = 0;\n var file;\n var filepath;\n\n if (err) {\n return callback(err);\n }\n\n (function next() {\n file = list[i++];\n\n if (!file) {\n return callback(null, results);\n }\n\n filepath = path.join(dirpath, file);\n\n fs.stat(filepath, function(err, stats) {\n results.push({\n path: filepath,\n relative: path.relative(base, filepath).replace(/\\\\/g, '/'),\n stats: stats\n });\n\n if (stats && stats.isDirectory()) {\n utils.walkdir(filepath, base, function(err, res) {\n\t if(err){\n\t return callback(err);\n\t }\n\n res.forEach(function(dirEntry) {\n results.push(dirEntry);\n });\n\t\t \n next(); \n });\n } else {\n next();\n }\n });\n })();\n });\n};\n","/**\n * Archiver Vending\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar Archiver = require('./lib/core');\n\nvar formats = {};\n\n/**\n * Dispenses a new Archiver instance.\n *\n * @constructor\n * @param {String} format The archive format to use.\n * @param {Object} options See [Archiver]{@link Archiver}\n * @return {Archiver}\n */\nvar vending = function(format, options) {\n return vending.create(format, options);\n};\n\n/**\n * Creates a new Archiver instance.\n *\n * @param {String} format The archive format to use.\n * @param {Object} options See [Archiver]{@link Archiver}\n * @return {Archiver}\n */\nvending.create = function(format, options) {\n if (formats[format]) {\n var instance = new Archiver(format, options);\n instance.setFormat(format);\n instance.setModule(new formats[format](options));\n\n return instance;\n } else {\n throw new Error('create(' + format + '): format not registered');\n }\n};\n\n/**\n * Registers a format for use with archiver.\n *\n * @param {String} format The name of the format.\n * @param {Function} module The function for archiver to interact with.\n * @return void\n */\nvending.registerFormat = function(format, module) {\n if (formats[format]) {\n throw new Error('register(' + format + '): format already registered');\n }\n\n if (typeof module !== 'function') {\n throw new Error('register(' + format + '): format module invalid');\n }\n\n if (typeof module.prototype.append !== 'function' || typeof module.prototype.finalize !== 'function') {\n throw new Error('register(' + format + '): format module missing methods');\n }\n\n formats[format] = module;\n};\n\n/**\n * Check if the format is already registered.\n * \n * @param {String} format the name of the format.\n * @return boolean\n */\nvending.isRegisteredFormat = function (format) {\n if (formats[format]) {\n return true;\n }\n \n return false;\n};\n\nvending.registerFormat('zip', require('./lib/plugins/zip'));\nvending.registerFormat('tar', require('./lib/plugins/tar'));\nvending.registerFormat('json', require('./lib/plugins/json'));\n\nmodule.exports = vending;","/**\n * Archiver Core\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar fs = require('fs');\nvar glob = require('readdir-glob');\nvar async = require('async');\nvar path = require('path');\nvar util = require('archiver-utils');\n\nvar inherits = require('util').inherits;\nvar ArchiverError = require('./error');\nvar Transform = require('readable-stream').Transform;\n\nvar win32 = process.platform === 'win32';\n\n/**\n * @constructor\n * @param {String} format The archive format to use.\n * @param {(CoreOptions|TransformOptions)} options See also {@link ZipOptions} and {@link TarOptions}.\n */\nvar Archiver = function(format, options) {\n if (!(this instanceof Archiver)) {\n return new Archiver(format, options);\n }\n\n if (typeof format !== 'string') {\n options = format;\n format = 'zip';\n }\n\n options = this.options = util.defaults(options, {\n highWaterMark: 1024 * 1024,\n statConcurrency: 4\n });\n\n Transform.call(this, options);\n\n this._format = false;\n this._module = false;\n this._pending = 0;\n this._pointer = 0;\n\n this._entriesCount = 0;\n this._entriesProcessedCount = 0;\n this._fsEntriesTotalBytes = 0;\n this._fsEntriesProcessedBytes = 0;\n\n this._queue = async.queue(this._onQueueTask.bind(this), 1);\n this._queue.drain(this._onQueueDrain.bind(this));\n\n this._statQueue = async.queue(this._onStatQueueTask.bind(this), options.statConcurrency);\n this._statQueue.drain(this._onQueueDrain.bind(this));\n\n this._state = {\n aborted: false,\n finalize: false,\n finalizing: false,\n finalized: false,\n modulePiped: false\n };\n\n this._streams = [];\n};\n\ninherits(Archiver, Transform);\n\n/**\n * Internal logic for `abort`.\n *\n * @private\n * @return void\n */\nArchiver.prototype._abort = function() {\n this._state.aborted = true;\n this._queue.kill();\n this._statQueue.kill();\n\n if (this._queue.idle()) {\n this._shutdown();\n }\n};\n\n/**\n * Internal helper for appending files.\n *\n * @private\n * @param {String} filepath The source filepath.\n * @param {EntryData} data The entry data.\n * @return void\n */\nArchiver.prototype._append = function(filepath, data) {\n data = data || {};\n\n var task = {\n source: null,\n filepath: filepath\n };\n\n if (!data.name) {\n data.name = filepath;\n }\n\n data.sourcePath = filepath;\n task.data = data;\n this._entriesCount++;\n\n if (data.stats && data.stats instanceof fs.Stats) {\n task = this._updateQueueTaskWithStats(task, data.stats);\n if (task) {\n if (data.stats.size) {\n this._fsEntriesTotalBytes += data.stats.size;\n }\n\n this._queue.push(task);\n }\n } else {\n this._statQueue.push(task);\n }\n};\n\n/**\n * Internal logic for `finalize`.\n *\n * @private\n * @return void\n */\nArchiver.prototype._finalize = function() {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n return;\n }\n\n this._state.finalizing = true;\n\n this._moduleFinalize();\n\n this._state.finalizing = false;\n this._state.finalized = true;\n};\n\n/**\n * Checks the various state variables to determine if we can `finalize`.\n *\n * @private\n * @return {Boolean}\n */\nArchiver.prototype._maybeFinalize = function() {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n return false;\n }\n\n if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) {\n this._finalize();\n return true;\n }\n\n return false;\n};\n\n/**\n * Appends an entry to the module.\n *\n * @private\n * @fires Archiver#entry\n * @param {(Buffer|Stream)} source\n * @param {EntryData} data\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._moduleAppend = function(source, data, callback) {\n if (this._state.aborted) {\n callback();\n return;\n }\n\n this._module.append(source, data, function(err) {\n this._task = null;\n\n if (this._state.aborted) {\n this._shutdown();\n return;\n }\n\n if (err) {\n this.emit('error', err);\n setImmediate(callback);\n return;\n }\n\n /**\n * Fires when the entry's input has been processed and appended to the archive.\n *\n * @event Archiver#entry\n * @type {EntryData}\n */\n this.emit('entry', data);\n this._entriesProcessedCount++;\n\n if (data.stats && data.stats.size) {\n this._fsEntriesProcessedBytes += data.stats.size;\n }\n\n /**\n * @event Archiver#progress\n * @type {ProgressData}\n */\n this.emit('progress', {\n entries: {\n total: this._entriesCount,\n processed: this._entriesProcessedCount\n },\n fs: {\n totalBytes: this._fsEntriesTotalBytes,\n processedBytes: this._fsEntriesProcessedBytes\n }\n });\n\n setImmediate(callback);\n }.bind(this));\n};\n\n/**\n * Finalizes the module.\n *\n * @private\n * @return void\n */\nArchiver.prototype._moduleFinalize = function() {\n if (typeof this._module.finalize === 'function') {\n this._module.finalize();\n } else if (typeof this._module.end === 'function') {\n this._module.end();\n } else {\n this.emit('error', new ArchiverError('NOENDMETHOD'));\n }\n};\n\n/**\n * Pipes the module to our internal stream with error bubbling.\n *\n * @private\n * @return void\n */\nArchiver.prototype._modulePipe = function() {\n this._module.on('error', this._onModuleError.bind(this));\n this._module.pipe(this);\n this._state.modulePiped = true;\n};\n\n/**\n * Determines if the current module supports a defined feature.\n *\n * @private\n * @param {String} key\n * @return {Boolean}\n */\nArchiver.prototype._moduleSupports = function(key) {\n if (!this._module.supports || !this._module.supports[key]) {\n return false;\n }\n\n return this._module.supports[key];\n};\n\n/**\n * Unpipes the module from our internal stream.\n *\n * @private\n * @return void\n */\nArchiver.prototype._moduleUnpipe = function() {\n this._module.unpipe(this);\n this._state.modulePiped = false;\n};\n\n/**\n * Normalizes entry data with fallbacks for key properties.\n *\n * @private\n * @param {Object} data\n * @param {fs.Stats} stats\n * @return {Object}\n */\nArchiver.prototype._normalizeEntryData = function(data, stats) {\n data = util.defaults(data, {\n type: 'file',\n name: null,\n date: null,\n mode: null,\n prefix: null,\n sourcePath: null,\n stats: false\n });\n\n if (stats && data.stats === false) {\n data.stats = stats;\n }\n\n var isDir = data.type === 'directory';\n\n if (data.name) {\n if (typeof data.prefix === 'string' && '' !== data.prefix) {\n data.name = data.prefix + '/' + data.name;\n data.prefix = null;\n }\n\n data.name = util.sanitizePath(data.name);\n\n if (data.type !== 'symlink' && data.name.slice(-1) === '/') {\n isDir = true;\n data.type = 'directory';\n } else if (isDir) {\n data.name += '/';\n }\n }\n\n // 511 === 0777; 493 === 0755; 438 === 0666; 420 === 0644\n if (typeof data.mode === 'number') {\n if (win32) {\n data.mode &= 511;\n } else {\n data.mode &= 4095\n }\n } else if (data.stats && data.mode === null) {\n if (win32) {\n data.mode = data.stats.mode & 511;\n } else {\n data.mode = data.stats.mode & 4095;\n }\n\n // stat isn't reliable on windows; force 0755 for dir\n if (win32 && isDir) {\n data.mode = 493;\n }\n } else if (data.mode === null) {\n data.mode = isDir ? 493 : 420;\n }\n\n if (data.stats && data.date === null) {\n data.date = data.stats.mtime;\n } else {\n data.date = util.dateify(data.date);\n }\n\n return data;\n};\n\n/**\n * Error listener that re-emits error on to our internal stream.\n *\n * @private\n * @param {Error} err\n * @return void\n */\nArchiver.prototype._onModuleError = function(err) {\n /**\n * @event Archiver#error\n * @type {ErrorData}\n */\n this.emit('error', err);\n};\n\n/**\n * Checks the various state variables after queue has drained to determine if\n * we need to `finalize`.\n *\n * @private\n * @return void\n */\nArchiver.prototype._onQueueDrain = function() {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n return;\n }\n\n if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) {\n this._finalize();\n }\n};\n\n/**\n * Appends each queue task to the module.\n *\n * @private\n * @param {Object} task\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._onQueueTask = function(task, callback) {\n var fullCallback = () => {\n if(task.data.callback) {\n task.data.callback();\n }\n callback();\n }\n\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n fullCallback();\n return;\n }\n\n this._task = task;\n this._moduleAppend(task.source, task.data, fullCallback);\n};\n\n/**\n * Performs a file stat and reinjects the task back into the queue.\n *\n * @private\n * @param {Object} task\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._onStatQueueTask = function(task, callback) {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n callback();\n return;\n }\n\n fs.lstat(task.filepath, function(err, stats) {\n if (this._state.aborted) {\n setImmediate(callback);\n return;\n }\n\n if (err) {\n this._entriesCount--;\n\n /**\n * @event Archiver#warning\n * @type {ErrorData}\n */\n this.emit('warning', err);\n setImmediate(callback);\n return;\n }\n\n task = this._updateQueueTaskWithStats(task, stats);\n\n if (task) {\n if (stats.size) {\n this._fsEntriesTotalBytes += stats.size;\n }\n\n this._queue.push(task);\n }\n\n setImmediate(callback);\n }.bind(this));\n};\n\n/**\n * Unpipes the module and ends our internal stream.\n *\n * @private\n * @return void\n */\nArchiver.prototype._shutdown = function() {\n this._moduleUnpipe();\n this.end();\n};\n\n/**\n * Tracks the bytes emitted by our internal stream.\n *\n * @private\n * @param {Buffer} chunk\n * @param {String} encoding\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._transform = function(chunk, encoding, callback) {\n if (chunk) {\n this._pointer += chunk.length;\n }\n\n callback(null, chunk);\n};\n\n/**\n * Updates and normalizes a queue task using stats data.\n *\n * @private\n * @param {Object} task\n * @param {fs.Stats} stats\n * @return {Object}\n */\nArchiver.prototype._updateQueueTaskWithStats = function(task, stats) {\n if (stats.isFile()) {\n task.data.type = 'file';\n task.data.sourceType = 'stream';\n task.source = util.lazyReadStream(task.filepath);\n } else if (stats.isDirectory() && this._moduleSupports('directory')) {\n task.data.name = util.trailingSlashIt(task.data.name);\n task.data.type = 'directory';\n task.data.sourcePath = util.trailingSlashIt(task.filepath);\n task.data.sourceType = 'buffer';\n task.source = Buffer.concat([]);\n } else if (stats.isSymbolicLink() && this._moduleSupports('symlink')) {\n var linkPath = fs.readlinkSync(task.filepath);\n var dirName = path.dirname(task.filepath);\n task.data.type = 'symlink';\n task.data.linkname = path.relative(dirName, path.resolve(dirName, linkPath));\n task.data.sourceType = 'buffer';\n task.source = Buffer.concat([]);\n } else {\n if (stats.isDirectory()) {\n this.emit('warning', new ArchiverError('DIRECTORYNOTSUPPORTED', task.data));\n } else if (stats.isSymbolicLink()) {\n this.emit('warning', new ArchiverError('SYMLINKNOTSUPPORTED', task.data));\n } else {\n this.emit('warning', new ArchiverError('ENTRYNOTSUPPORTED', task.data));\n }\n\n return null;\n }\n\n task.data = this._normalizeEntryData(task.data, stats);\n\n return task;\n};\n\n/**\n * Aborts the archiving process, taking a best-effort approach, by:\n *\n * - removing any pending queue tasks\n * - allowing any active queue workers to finish\n * - detaching internal module pipes\n * - ending both sides of the Transform stream\n *\n * It will NOT drain any remaining sources.\n *\n * @return {this}\n */\nArchiver.prototype.abort = function() {\n if (this._state.aborted || this._state.finalized) {\n return this;\n }\n\n this._abort();\n\n return this;\n};\n\n/**\n * Appends an input source (text string, buffer, or stream) to the instance.\n *\n * When the instance has received, processed, and emitted the input, the `entry`\n * event is fired.\n *\n * @fires Archiver#entry\n * @param {(Buffer|Stream|String)} source The input source.\n * @param {EntryData} data See also {@link ZipEntryData} and {@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.append = function(source, data) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n data = this._normalizeEntryData(data);\n\n if (typeof data.name !== 'string' || data.name.length === 0) {\n this.emit('error', new ArchiverError('ENTRYNAMEREQUIRED'));\n return this;\n }\n\n if (data.type === 'directory' && !this._moduleSupports('directory')) {\n this.emit('error', new ArchiverError('DIRECTORYNOTSUPPORTED', { name: data.name }));\n return this;\n }\n\n source = util.normalizeInputSource(source);\n\n if (Buffer.isBuffer(source)) {\n data.sourceType = 'buffer';\n } else if (util.isStream(source)) {\n data.sourceType = 'stream';\n } else {\n this.emit('error', new ArchiverError('INPUTSTEAMBUFFERREQUIRED', { name: data.name }));\n return this;\n }\n\n this._entriesCount++;\n this._queue.push({\n data: data,\n source: source\n });\n\n return this;\n};\n\n/**\n * Appends a directory and its files, recursively, given its dirpath.\n *\n * @param {String} dirpath The source directory path.\n * @param {String} destpath The destination path within the archive.\n * @param {(EntryData|Function)} data See also [ZipEntryData]{@link ZipEntryData} and\n * [TarEntryData]{@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.directory = function(dirpath, destpath, data) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n if (typeof dirpath !== 'string' || dirpath.length === 0) {\n this.emit('error', new ArchiverError('DIRECTORYDIRPATHREQUIRED'));\n return this;\n }\n\n this._pending++;\n\n if (destpath === false) {\n destpath = '';\n } else if (typeof destpath !== 'string'){\n destpath = dirpath;\n }\n\n var dataFunction = false;\n if (typeof data === 'function') {\n dataFunction = data;\n data = {};\n } else if (typeof data !== 'object') {\n data = {};\n }\n\n var globOptions = {\n stat: true,\n dot: true\n };\n\n function onGlobEnd() {\n this._pending--;\n this._maybeFinalize();\n }\n\n function onGlobError(err) {\n this.emit('error', err);\n }\n\n function onGlobMatch(match){\n globber.pause();\n\n var ignoreMatch = false;\n var entryData = Object.assign({}, data);\n entryData.name = match.relative;\n entryData.prefix = destpath;\n entryData.stats = match.stat;\n entryData.callback = globber.resume.bind(globber);\n\n try {\n if (dataFunction) {\n entryData = dataFunction(entryData);\n\n if (entryData === false) {\n ignoreMatch = true;\n } else if (typeof entryData !== 'object') {\n throw new ArchiverError('DIRECTORYFUNCTIONINVALIDDATA', { dirpath: dirpath });\n }\n }\n } catch(e) {\n this.emit('error', e);\n return;\n }\n\n if (ignoreMatch) {\n globber.resume();\n return;\n }\n\n this._append(match.absolute, entryData);\n }\n\n var globber = glob(dirpath, globOptions);\n globber.on('error', onGlobError.bind(this));\n globber.on('match', onGlobMatch.bind(this));\n globber.on('end', onGlobEnd.bind(this));\n\n return this;\n};\n\n/**\n * Appends a file given its filepath using a\n * [lazystream]{@link https://github.com/jpommerening/node-lazystream} wrapper to\n * prevent issues with open file limits.\n *\n * When the instance has received, processed, and emitted the file, the `entry`\n * event is fired.\n *\n * @param {String} filepath The source filepath.\n * @param {EntryData} data See also [ZipEntryData]{@link ZipEntryData} and\n * [TarEntryData]{@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.file = function(filepath, data) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n if (typeof filepath !== 'string' || filepath.length === 0) {\n this.emit('error', new ArchiverError('FILEFILEPATHREQUIRED'));\n return this;\n }\n\n this._append(filepath, data);\n\n return this;\n};\n\n/**\n * Appends multiple files that match a glob pattern.\n *\n * @param {String} pattern The [glob pattern]{@link https://github.com/isaacs/minimatch} to match.\n * @param {Object} options See [node-readdir-glob]{@link https://github.com/yqnn/node-readdir-glob#options}.\n * @param {EntryData} data See also [ZipEntryData]{@link ZipEntryData} and\n * [TarEntryData]{@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.glob = function(pattern, options, data) {\n this._pending++;\n\n options = util.defaults(options, {\n stat: true,\n pattern: pattern\n });\n\n function onGlobEnd() {\n this._pending--;\n this._maybeFinalize();\n }\n\n function onGlobError(err) {\n this.emit('error', err);\n }\n\n function onGlobMatch(match){\n globber.pause();\n var entryData = Object.assign({}, data);\n entryData.callback = globber.resume.bind(globber);\n entryData.stats = match.stat;\n entryData.name = match.relative;\n\n this._append(match.absolute, entryData);\n }\n\n var globber = glob(options.cwd || '.', options);\n globber.on('error', onGlobError.bind(this));\n globber.on('match', onGlobMatch.bind(this));\n globber.on('end', onGlobEnd.bind(this));\n\n return this;\n};\n\n/**\n * Finalizes the instance and prevents further appending to the archive\n * structure (queue will continue til drained).\n *\n * The `end`, `close` or `finish` events on the destination stream may fire\n * right after calling this method so you should set listeners beforehand to\n * properly detect stream completion.\n *\n * @return {Promise}\n */\nArchiver.prototype.finalize = function() {\n if (this._state.aborted) {\n var abortedError = new ArchiverError('ABORTED');\n this.emit('error', abortedError);\n return Promise.reject(abortedError);\n }\n\n if (this._state.finalize) {\n var finalizingError = new ArchiverError('FINALIZING');\n this.emit('error', finalizingError);\n return Promise.reject(finalizingError);\n }\n\n this._state.finalize = true;\n\n if (this._pending === 0 && this._queue.idle() && this._statQueue.idle()) {\n this._finalize();\n }\n\n var self = this;\n\n return new Promise(function(resolve, reject) {\n var errored;\n\n self._module.on('end', function() {\n if (!errored) {\n resolve();\n }\n })\n\n self._module.on('error', function(err) {\n errored = true;\n reject(err);\n })\n })\n};\n\n/**\n * Sets the module format name used for archiving.\n *\n * @param {String} format The name of the format.\n * @return {this}\n */\nArchiver.prototype.setFormat = function(format) {\n if (this._format) {\n this.emit('error', new ArchiverError('FORMATSET'));\n return this;\n }\n\n this._format = format;\n\n return this;\n};\n\n/**\n * Sets the module used for archiving.\n *\n * @param {Function} module The function for archiver to interact with.\n * @return {this}\n */\nArchiver.prototype.setModule = function(module) {\n if (this._state.aborted) {\n this.emit('error', new ArchiverError('ABORTED'));\n return this;\n }\n\n if (this._state.module) {\n this.emit('error', new ArchiverError('MODULESET'));\n return this;\n }\n\n this._module = module;\n this._modulePipe();\n\n return this;\n};\n\n/**\n * Appends a symlink to the instance.\n *\n * This does NOT interact with filesystem and is used for programmatically creating symlinks.\n *\n * @param {String} filepath The symlink path (within archive).\n * @param {String} target The target path (within archive).\n * @param {Number} mode Sets the entry permissions.\n * @return {this}\n */\nArchiver.prototype.symlink = function(filepath, target, mode) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n if (typeof filepath !== 'string' || filepath.length === 0) {\n this.emit('error', new ArchiverError('SYMLINKFILEPATHREQUIRED'));\n return this;\n }\n\n if (typeof target !== 'string' || target.length === 0) {\n this.emit('error', new ArchiverError('SYMLINKTARGETREQUIRED', { filepath: filepath }));\n return this;\n }\n\n if (!this._moduleSupports('symlink')) {\n this.emit('error', new ArchiverError('SYMLINKNOTSUPPORTED', { filepath: filepath }));\n return this;\n }\n\n var data = {};\n data.type = 'symlink';\n data.name = filepath.replace(/\\\\/g, '/');\n data.linkname = target.replace(/\\\\/g, '/');\n data.sourceType = 'buffer';\n\n if (typeof mode === \"number\") {\n data.mode = mode;\n }\n\n this._entriesCount++;\n this._queue.push({\n data: data,\n source: Buffer.concat([])\n });\n\n return this;\n};\n\n/**\n * Returns the current length (in bytes) that has been emitted.\n *\n * @return {Number}\n */\nArchiver.prototype.pointer = function() {\n return this._pointer;\n};\n\n/**\n * Middleware-like helper that has yet to be fully implemented.\n *\n * @private\n * @param {Function} plugin\n * @return {this}\n */\nArchiver.prototype.use = function(plugin) {\n this._streams.push(plugin);\n return this;\n};\n\nmodule.exports = Archiver;\n\n/**\n * @typedef {Object} CoreOptions\n * @global\n * @property {Number} [statConcurrency=4] Sets the number of workers used to\n * process the internal fs stat queue.\n */\n\n/**\n * @typedef {Object} TransformOptions\n * @property {Boolean} [allowHalfOpen=true] If set to false, then the stream\n * will automatically end the readable side when the writable side ends and vice\n * versa.\n * @property {Boolean} [readableObjectMode=false] Sets objectMode for readable\n * side of the stream. Has no effect if objectMode is true.\n * @property {Boolean} [writableObjectMode=false] Sets objectMode for writable\n * side of the stream. Has no effect if objectMode is true.\n * @property {Boolean} [decodeStrings=true] Whether or not to decode strings\n * into Buffers before passing them to _write(). `Writable`\n * @property {String} [encoding=NULL] If specified, then buffers will be decoded\n * to strings using the specified encoding. `Readable`\n * @property {Number} [highWaterMark=16kb] The maximum number of bytes to store\n * in the internal buffer before ceasing to read from the underlying resource.\n * `Readable` `Writable`\n * @property {Boolean} [objectMode=false] Whether this stream should behave as a\n * stream of objects. Meaning that stream.read(n) returns a single value instead\n * of a Buffer of size n. `Readable` `Writable`\n */\n\n/**\n * @typedef {Object} EntryData\n * @property {String} name Sets the entry name including internal path.\n * @property {(String|Date)} [date=NOW()] Sets the entry date.\n * @property {Number} [mode=D:0755/F:0644] Sets the entry permissions.\n * @property {String} [prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @property {fs.Stats} [stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n */\n\n/**\n * @typedef {Object} ErrorData\n * @property {String} message The message of the error.\n * @property {String} code The error code assigned to this error.\n * @property {String} data Additional data provided for reporting or debugging (where available).\n */\n\n/**\n * @typedef {Object} ProgressData\n * @property {Object} entries\n * @property {Number} entries.total Number of entries that have been appended.\n * @property {Number} entries.processed Number of entries that have been processed.\n * @property {Object} fs\n * @property {Number} fs.totalBytes Number of bytes that have been appended. Calculated asynchronously and might not be accurate: it growth while entries are added. (based on fs.Stats)\n * @property {Number} fs.processedBytes Number of bytes that have been processed. (based on fs.Stats)\n */\n","/**\n * Archiver Core\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\n\nvar util = require('util');\n\nconst ERROR_CODES = {\n 'ABORTED': 'archive was aborted',\n 'DIRECTORYDIRPATHREQUIRED': 'diretory dirpath argument must be a non-empty string value',\n 'DIRECTORYFUNCTIONINVALIDDATA': 'invalid data returned by directory custom data function',\n 'ENTRYNAMEREQUIRED': 'entry name must be a non-empty string value',\n 'FILEFILEPATHREQUIRED': 'file filepath argument must be a non-empty string value',\n 'FINALIZING': 'archive already finalizing',\n 'QUEUECLOSED': 'queue closed',\n 'NOENDMETHOD': 'no suitable finalize/end method defined by module',\n 'DIRECTORYNOTSUPPORTED': 'support for directory entries not defined by module',\n 'FORMATSET': 'archive format already set',\n 'INPUTSTEAMBUFFERREQUIRED': 'input source must be valid Stream or Buffer instance',\n 'MODULESET': 'module already set',\n 'SYMLINKNOTSUPPORTED': 'support for symlink entries not defined by module',\n 'SYMLINKFILEPATHREQUIRED': 'symlink filepath argument must be a non-empty string value',\n 'SYMLINKTARGETREQUIRED': 'symlink target argument must be a non-empty string value',\n 'ENTRYNOTSUPPORTED': 'entry not supported'\n};\n\nfunction ArchiverError(code, data) {\n Error.captureStackTrace(this, this.constructor);\n //this.name = this.constructor.name;\n this.message = ERROR_CODES[code] || code;\n this.code = code;\n this.data = data;\n}\n\nutil.inherits(ArchiverError, Error);\n\nexports = module.exports = ArchiverError;","/**\n * JSON Format Plugin\n *\n * @module plugins/json\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar inherits = require('util').inherits;\nvar Transform = require('readable-stream').Transform;\n\nvar crc32 = require('buffer-crc32');\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @param {(JsonOptions|TransformOptions)} options\n */\nvar Json = function(options) {\n if (!(this instanceof Json)) {\n return new Json(options);\n }\n\n options = this.options = util.defaults(options, {});\n\n Transform.call(this, options);\n\n this.supports = {\n directory: true,\n symlink: true\n };\n\n this.files = [];\n};\n\ninherits(Json, Transform);\n\n/**\n * [_transform description]\n *\n * @private\n * @param {Buffer} chunk\n * @param {String} encoding\n * @param {Function} callback\n * @return void\n */\nJson.prototype._transform = function(chunk, encoding, callback) {\n callback(null, chunk);\n};\n\n/**\n * [_writeStringified description]\n *\n * @private\n * @return void\n */\nJson.prototype._writeStringified = function() {\n var fileString = JSON.stringify(this.files);\n this.write(fileString);\n};\n\n/**\n * [append description]\n *\n * @param {(Buffer|Stream)} source\n * @param {EntryData} data\n * @param {Function} callback\n * @return void\n */\nJson.prototype.append = function(source, data, callback) {\n var self = this;\n\n data.crc32 = 0;\n\n function onend(err, sourceBuffer) {\n if (err) {\n callback(err);\n return;\n }\n\n data.size = sourceBuffer.length || 0;\n data.crc32 = crc32.unsigned(sourceBuffer);\n\n self.files.push(data);\n\n callback(null, data);\n }\n\n if (data.sourceType === 'buffer') {\n onend(null, source);\n } else if (data.sourceType === 'stream') {\n util.collectStream(source, onend);\n }\n};\n\n/**\n * [finalize description]\n *\n * @return void\n */\nJson.prototype.finalize = function() {\n this._writeStringified();\n this.end();\n};\n\nmodule.exports = Json;\n\n/**\n * @typedef {Object} JsonOptions\n * @global\n */\n","/**\n * TAR Format Plugin\n *\n * @module plugins/tar\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar zlib = require('zlib');\n\nvar engine = require('tar-stream');\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @param {TarOptions} options\n */\nvar Tar = function(options) {\n if (!(this instanceof Tar)) {\n return new Tar(options);\n }\n\n options = this.options = util.defaults(options, {\n gzip: false\n });\n\n if (typeof options.gzipOptions !== 'object') {\n options.gzipOptions = {};\n }\n\n this.supports = {\n directory: true,\n symlink: true\n };\n\n this.engine = engine.pack(options);\n this.compressor = false;\n\n if (options.gzip) {\n this.compressor = zlib.createGzip(options.gzipOptions);\n this.compressor.on('error', this._onCompressorError.bind(this));\n }\n};\n\n/**\n * [_onCompressorError description]\n *\n * @private\n * @param {Error} err\n * @return void\n */\nTar.prototype._onCompressorError = function(err) {\n this.engine.emit('error', err);\n};\n\n/**\n * [append description]\n *\n * @param {(Buffer|Stream)} source\n * @param {TarEntryData} data\n * @param {Function} callback\n * @return void\n */\nTar.prototype.append = function(source, data, callback) {\n var self = this;\n\n data.mtime = data.date;\n\n function append(err, sourceBuffer) {\n if (err) {\n callback(err);\n return;\n }\n\n self.engine.entry(data, sourceBuffer, function(err) {\n callback(err, data);\n });\n }\n\n if (data.sourceType === 'buffer') {\n append(null, source);\n } else if (data.sourceType === 'stream' && data.stats) {\n data.size = data.stats.size;\n\n var entry = self.engine.entry(data, function(err) {\n callback(err, data);\n });\n\n source.pipe(entry);\n } else if (data.sourceType === 'stream') {\n util.collectStream(source, append);\n }\n};\n\n/**\n * [finalize description]\n *\n * @return void\n */\nTar.prototype.finalize = function() {\n this.engine.finalize();\n};\n\n/**\n * [on description]\n *\n * @return this.engine\n */\nTar.prototype.on = function() {\n return this.engine.on.apply(this.engine, arguments);\n};\n\n/**\n * [pipe description]\n *\n * @param {String} destination\n * @param {Object} options\n * @return this.engine\n */\nTar.prototype.pipe = function(destination, options) {\n if (this.compressor) {\n return this.engine.pipe.apply(this.engine, [this.compressor]).pipe(destination, options);\n } else {\n return this.engine.pipe.apply(this.engine, arguments);\n }\n};\n\n/**\n * [unpipe description]\n *\n * @return this.engine\n */\nTar.prototype.unpipe = function() {\n if (this.compressor) {\n return this.compressor.unpipe.apply(this.compressor, arguments);\n } else {\n return this.engine.unpipe.apply(this.engine, arguments);\n }\n};\n\nmodule.exports = Tar;\n\n/**\n * @typedef {Object} TarOptions\n * @global\n * @property {Boolean} [gzip=false] Compress the tar archive using gzip.\n * @property {Object} [gzipOptions] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n * to control compression.\n * @property {*} [*] See [tar-stream]{@link https://github.com/mafintosh/tar-stream} documentation for additional properties.\n */\n\n/**\n * @typedef {Object} TarEntryData\n * @global\n * @property {String} name Sets the entry name including internal path.\n * @property {(String|Date)} [date=NOW()] Sets the entry date.\n * @property {Number} [mode=D:0755/F:0644] Sets the entry permissions.\n * @property {String} [prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @property {fs.Stats} [stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n */\n\n/**\n * TarStream Module\n * @external TarStream\n * @see {@link https://github.com/mafintosh/tar-stream}\n */\n","/**\n * ZIP Format Plugin\n *\n * @module plugins/zip\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar engine = require('zip-stream');\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @param {ZipOptions} [options]\n * @param {String} [options.comment] Sets the zip archive comment.\n * @param {Boolean} [options.forceLocalTime=false] Forces the archive to contain local file times instead of UTC.\n * @param {Boolean} [options.forceZip64=false] Forces the archive to contain ZIP64 headers.\n * @param {Boolean} [options.namePrependSlash=false] Prepends a forward slash to archive file paths.\n * @param {Boolean} [options.store=false] Sets the compression method to STORE.\n * @param {Object} [options.zlib] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n */\nvar Zip = function(options) {\n if (!(this instanceof Zip)) {\n return new Zip(options);\n }\n\n options = this.options = util.defaults(options, {\n comment: '',\n forceUTC: false,\n namePrependSlash: false,\n store: false\n });\n\n this.supports = {\n directory: true,\n symlink: true\n };\n\n this.engine = new engine(options);\n};\n\n/**\n * @param {(Buffer|Stream)} source\n * @param {ZipEntryData} data\n * @param {String} data.name Sets the entry name including internal path.\n * @param {(String|Date)} [data.date=NOW()] Sets the entry date.\n * @param {Number} [data.mode=D:0755/F:0644] Sets the entry permissions.\n * @param {String} [data.prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @param {fs.Stats} [data.stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n * @param {Boolean} [data.store=ZipOptions.store] Sets the compression method to STORE.\n * @param {Function} callback\n * @return void\n */\nZip.prototype.append = function(source, data, callback) {\n this.engine.entry(source, data, callback);\n};\n\n/**\n * @return void\n */\nZip.prototype.finalize = function() {\n this.engine.finalize();\n};\n\n/**\n * @return this.engine\n */\nZip.prototype.on = function() {\n return this.engine.on.apply(this.engine, arguments);\n};\n\n/**\n * @return this.engine\n */\nZip.prototype.pipe = function() {\n return this.engine.pipe.apply(this.engine, arguments);\n};\n\n/**\n * @return this.engine\n */\nZip.prototype.unpipe = function() {\n return this.engine.unpipe.apply(this.engine, arguments);\n};\n\nmodule.exports = Zip;\n\n/**\n * @typedef {Object} ZipOptions\n * @global\n * @property {String} [comment] Sets the zip archive comment.\n * @property {Boolean} [forceLocalTime=false] Forces the archive to contain local file times instead of UTC.\n * @property {Boolean} [forceZip64=false] Forces the archive to contain ZIP64 headers.\n * @prpperty {Boolean} [namePrependSlash=false] Prepends a forward slash to archive file paths.\n * @property {Boolean} [store=false] Sets the compression method to STORE.\n * @property {Object} [zlib] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n * to control compression.\n * @property {*} [*] See [zip-stream]{@link https://archiverjs.com/zip-stream/ZipStream.html} documentation for current list of properties.\n */\n\n/**\n * @typedef {Object} ZipEntryData\n * @global\n * @property {String} name Sets the entry name including internal path.\n * @property {(String|Date)} [date=NOW()] Sets the entry date.\n * @property {Number} [mode=D:0755/F:0644] Sets the entry permissions.\n * @property {Boolean} [namePrependSlash=ZipOptions.namePrependSlash] Prepends a forward slash to archive file paths.\n * @property {String} [prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @property {fs.Stats} [stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n * @property {Boolean} [store=ZipOptions.store] Sets the compression method to STORE.\n */\n\n/**\n * ZipStream Module\n * @external ZipStream\n * @see {@link https://www.archiverjs.com/zip-stream/ZipStream.html}\n */\n","'use strict';\nconst regex = '[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]';\n\nconst astralRegex = options => options && options.exact ? new RegExp(`^${regex}$`) : new RegExp(regex, 'g');\n\nmodule.exports = astralRegex;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.async = {}));\n})(this, (function (exports) { 'use strict';\n\n /**\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {Function} fn - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @returns {Function} the partially-applied function\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n */\n function apply(fn, ...args) {\n return (...callArgs) => fn(...args,...callArgs);\n }\n\n function initialParams (fn) {\n return function (...args/*, callback*/) {\n var callback = args.pop();\n return fn.call(this, args, callback);\n };\n }\n\n /* istanbul ignore file */\n\n var hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;\n var hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\n var hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\n function fallback(fn) {\n setTimeout(fn, 0);\n }\n\n function wrap(defer) {\n return (fn, ...args) => defer(() => fn(...args));\n }\n\n var _defer$1;\n\n if (hasQueueMicrotask) {\n _defer$1 = queueMicrotask;\n } else if (hasSetImmediate) {\n _defer$1 = setImmediate;\n } else if (hasNextTick) {\n _defer$1 = process.nextTick;\n } else {\n _defer$1 = fallback;\n }\n\n var setImmediate$1 = wrap(_defer$1);\n\n /**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\n function asyncify(func) {\n if (isAsync(func)) {\n return function (...args/*, callback*/) {\n const callback = args.pop();\n const promise = func.apply(this, args);\n return handlePromise(promise, callback)\n }\n }\n\n return initialParams(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (result && typeof result.then === 'function') {\n return handlePromise(result, callback)\n } else {\n callback(null, result);\n }\n });\n }\n\n function handlePromise(promise, callback) {\n return promise.then(value => {\n invokeCallback(callback, null, value);\n }, err => {\n invokeCallback(callback, err && (err instanceof Error || err.message) ? err : new Error(err));\n });\n }\n\n function invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (err) {\n setImmediate$1(e => { throw e }, err);\n }\n }\n\n function isAsync(fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n }\n\n function isAsyncGenerator(fn) {\n return fn[Symbol.toStringTag] === 'AsyncGenerator';\n }\n\n function isAsyncIterable(obj) {\n return typeof obj[Symbol.asyncIterator] === 'function';\n }\n\n function wrapAsync(asyncFn) {\n if (typeof asyncFn !== 'function') throw new Error('expected a function')\n return isAsync(asyncFn) ? asyncify(asyncFn) : asyncFn;\n }\n\n // conditionally promisify a function.\n // only return a promise if a callback is omitted\n function awaitify (asyncFn, arity) {\n if (!arity) arity = asyncFn.length;\n if (!arity) throw new Error('arity is undefined')\n function awaitable (...args) {\n if (typeof args[arity - 1] === 'function') {\n return asyncFn.apply(this, args)\n }\n\n return new Promise((resolve, reject) => {\n args[arity - 1] = (err, ...cbArgs) => {\n if (err) return reject(err)\n resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]);\n };\n asyncFn.apply(this, args);\n })\n }\n\n return awaitable\n }\n\n function applyEach$1 (eachfn) {\n return function applyEach(fns, ...callArgs) {\n const go = awaitify(function (callback) {\n var that = this;\n return eachfn(fns, (fn, cb) => {\n wrapAsync(fn).apply(that, callArgs.concat(cb));\n }, callback);\n });\n return go;\n };\n }\n\n function _asyncMap(eachfn, arr, iteratee, callback) {\n arr = arr || [];\n var results = [];\n var counter = 0;\n var _iteratee = wrapAsync(iteratee);\n\n return eachfn(arr, (value, _, iterCb) => {\n var index = counter++;\n _iteratee(value, (err, v) => {\n results[index] = v;\n iterCb(err);\n });\n }, err => {\n callback(err, results);\n });\n }\n\n function isArrayLike(value) {\n return value &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n value.length % 1 === 0;\n }\n\n // A temporary value used to identify if the loop should be broken.\n // See #1064, #1293\n const breakLoop = {};\n\n function once(fn) {\n function wrapper (...args) {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n }\n Object.assign(wrapper, fn);\n return wrapper\n }\n\n function getIterator (coll) {\n return coll[Symbol.iterator] && coll[Symbol.iterator]();\n }\n\n function createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? {value: coll[i], key: i} : null;\n }\n }\n\n function createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done)\n return null;\n i++;\n return {value: item.value, key: i};\n }\n }\n\n function createObjectIterator(obj) {\n var okeys = obj ? Object.keys(obj) : [];\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? {value: obj[key], key} : null;\n };\n }\n\n function createIterator(coll) {\n if (isArrayLike(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = getIterator(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n }\n\n function onlyOnce(fn) {\n return function (...args) {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n };\n }\n\n // for async generators\n function asyncEachOfLimit(generator, limit, iteratee, callback) {\n let done = false;\n let canceled = false;\n let awaiting = false;\n let running = 0;\n let idx = 0;\n\n function replenish() {\n //console.log('replenish')\n if (running >= limit || awaiting || done) return\n //console.log('replenish awaiting')\n awaiting = true;\n generator.next().then(({value, done: iterDone}) => {\n //console.log('got value', value)\n if (canceled || done) return\n awaiting = false;\n if (iterDone) {\n done = true;\n if (running <= 0) {\n //console.log('done nextCb')\n callback(null);\n }\n return;\n }\n running++;\n iteratee(value, idx, iterateeCallback);\n idx++;\n replenish();\n }).catch(handleError);\n }\n\n function iterateeCallback(err, result) {\n //console.log('iterateeCallback')\n running -= 1;\n if (canceled) return\n if (err) return handleError(err)\n\n if (err === false) {\n done = true;\n canceled = true;\n return\n }\n\n if (result === breakLoop || (done && running <= 0)) {\n done = true;\n //console.log('done iterCb')\n return callback(null);\n }\n replenish();\n }\n\n function handleError(err) {\n if (canceled) return\n awaiting = false;\n done = true;\n callback(err);\n }\n\n replenish();\n }\n\n var eachOfLimit$2 = (limit) => {\n return (obj, iteratee, callback) => {\n callback = once(callback);\n if (limit <= 0) {\n throw new RangeError('concurrency limit cannot be less than 1')\n }\n if (!obj) {\n return callback(null);\n }\n if (isAsyncGenerator(obj)) {\n return asyncEachOfLimit(obj, limit, iteratee, callback)\n }\n if (isAsyncIterable(obj)) {\n return asyncEachOfLimit(obj[Symbol.asyncIterator](), limit, iteratee, callback)\n }\n var nextElem = createIterator(obj);\n var done = false;\n var canceled = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n if (canceled) return\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n }\n else if (err === false) {\n done = true;\n canceled = true;\n }\n else if (value === breakLoop || (done && running <= 0)) {\n done = true;\n return callback(null);\n }\n else if (!looping) {\n replenish();\n }\n }\n\n function replenish () {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, onlyOnce(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n };\n\n /**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachOfLimit(coll, limit, iteratee, callback) {\n return eachOfLimit$2(limit)(coll, wrapAsync(iteratee), callback);\n }\n\n var eachOfLimit$1 = awaitify(eachOfLimit, 4);\n\n // eachOf implementation optimized for array-likes\n function eachOfArrayLike(coll, iteratee, callback) {\n callback = once(callback);\n var index = 0,\n completed = 0,\n {length} = coll,\n canceled = false;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err === false) {\n canceled = true;\n }\n if (canceled === true) return\n if (err) {\n callback(err);\n } else if ((++completed === length) || value === breakLoop) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, onlyOnce(iteratorCallback));\n }\n }\n\n // a generic version of eachOf which can handle array, object, and iterator cases.\n function eachOfGeneric (coll, iteratee, callback) {\n return eachOfLimit$1(coll, Infinity, iteratee, callback);\n }\n\n /**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dev.json is a file containing a valid json object config for dev environment\n * // dev.json is a file containing a valid json object config for test environment\n * // prod.json is a file containing a valid json object config for prod environment\n * // invalid.json is a file with a malformed json object\n *\n * let configs = {}; //global variable\n * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'};\n * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'};\n *\n * // asynchronous function that reads a json file and parses the contents as json object\n * function parseFile(file, key, callback) {\n * fs.readFile(file, \"utf8\", function(err, data) {\n * if (err) return calback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }\n *\n * // Using callbacks\n * async.forEachOf(validConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * } else {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * // JSON parse error exception\n * } else {\n * console.log(configs);\n * }\n * });\n *\n * // Using Promises\n * async.forEachOf(validConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }).catch( err => {\n * console.error(err);\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * }).catch( err => {\n * console.error(err);\n * // JSON parse error exception\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.forEachOf(validConfigFileMap, parseFile);\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * //Error handing\n * async () => {\n * try {\n * let result = await async.forEachOf(invalidConfigFileMap, parseFile);\n * console.log(configs);\n * }\n * catch (err) {\n * console.log(err);\n * // JSON parse error exception\n * }\n * }\n *\n */\n function eachOf(coll, iteratee, callback) {\n var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric;\n return eachOfImplementation(coll, wrapAsync(iteratee), callback);\n }\n\n var eachOf$1 = awaitify(eachOf, 3);\n\n /**\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callbacks\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines).\n *\n * @name map\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n * // file4.txt does not exist\n *\n * const fileList = ['file1.txt','file2.txt','file3.txt'];\n * const withMissingFileList = ['file1.txt','file2.txt','file4.txt'];\n *\n * // asynchronous function that returns the file size in bytes\n * function getFileSizeInBytes(file, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * callback(null, stat.size);\n * });\n * }\n *\n * // Using callbacks\n * async.map(fileList, getFileSizeInBytes, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now an array of the file size in bytes for each file, e.g.\n * // [ 1000, 2000, 3000]\n * }\n * });\n *\n * // Error Handling\n * async.map(withMissingFileList, getFileSizeInBytes, function(err, results) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * } else {\n * console.log(results);\n * }\n * });\n *\n * // Using Promises\n * async.map(fileList, getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * // results is now an array of the file size in bytes for each file, e.g.\n * // [ 1000, 2000, 3000]\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.map(withMissingFileList, getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.map(fileList, getFileSizeInBytes);\n * console.log(results);\n * // results is now an array of the file size in bytes for each file, e.g.\n * // [ 1000, 2000, 3000]\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let results = await async.map(withMissingFileList, getFileSizeInBytes);\n * console.log(results);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function map (coll, iteratee, callback) {\n return _asyncMap(eachOf$1, coll, iteratee, callback)\n }\n var map$1 = awaitify(map, 3);\n\n /**\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, `fns`, then it will return a function which lets you pass in the\n * arguments as if it were a single function call. If more arguments are\n * provided, `callback` is required while `args` is still optional. The results\n * for each of the applied async functions are passed to the final callback\n * as an array.\n *\n * @name applyEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} fns - A collection of {@link AsyncFunction}s\n * to all call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {AsyncFunction} - Returns a function that takes no args other than\n * an optional callback, that is the result of applying the `args` to each\n * of the functions.\n * @example\n *\n * const appliedFn = async.applyEach([enableSearch, updateSchema], 'bucket')\n *\n * appliedFn((err, results) => {\n * // results[0] is the results for `enableSearch`\n * // results[1] is the results for `updateSchema`\n * });\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async (bucket) => async.applyEach([enableSearch, updateSchema], bucket)(),\n * callback\n * );\n */\n var applyEach = applyEach$1(map$1);\n\n /**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachOfSeries(coll, iteratee, callback) {\n return eachOfLimit$1(coll, 1, iteratee, callback)\n }\n var eachOfSeries$1 = awaitify(eachOfSeries, 3);\n\n /**\n * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapSeries (coll, iteratee, callback) {\n return _asyncMap(eachOfSeries$1, coll, iteratee, callback)\n }\n var mapSeries$1 = awaitify(mapSeries, 3);\n\n /**\n * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.applyEach]{@link module:ControlFlow.applyEach}\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} fns - A collection of {@link AsyncFunction}s to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {AsyncFunction} - A function, that when called, is the result of\n * appling the `args` to the list of functions. It takes no args, other than\n * a callback.\n */\n var applyEachSeries = applyEach$1(mapSeries$1);\n\n const PROMISE_SYMBOL = Symbol('promiseCallback');\n\n function promiseCallback () {\n let resolve, reject;\n function callback (err, ...args) {\n if (err) return reject(err)\n resolve(args.length > 1 ? args : args[0]);\n }\n\n callback[PROMISE_SYMBOL] = new Promise((res, rej) => {\n resolve = res,\n reject = rej;\n });\n\n return callback\n }\n\n /**\n * Determines the best order for running the {@link AsyncFunction}s in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the {@link AsyncFunction}s pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * {@link AsyncFunction}s also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the {@link AsyncFunction} itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns {Promise} a promise, if a callback is not passed\n * @example\n *\n * //Using Callbacks\n * async.auto({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * // once the file is written let's email a link to it...\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * if (err) {\n * console.log('err = ', err);\n * }\n * console.log('results = ', results);\n * // results = {\n * // get_data: ['data', 'converted to array']\n * // make_folder; 'folder',\n * // write_file: 'filename'\n * // email_link: { file: 'filename', email: 'user@example.com' }\n * // }\n * });\n *\n * //Using Promises\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * // once the file is written let's email a link to it...\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }).then(results => {\n * console.log('results = ', results);\n * // results = {\n * // get_data: ['data', 'converted to array']\n * // make_folder; 'folder',\n * // write_file: 'filename'\n * // email_link: { file: 'filename', email: 'user@example.com' }\n * // }\n * }).catch(err => {\n * console.log('err = ', err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.auto({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * // once the file is written let's email a link to it...\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * });\n * console.log('results = ', results);\n * // results = {\n * // get_data: ['data', 'converted to array']\n * // make_folder; 'folder',\n * // write_file: 'filename'\n * // email_link: { file: 'filename', email: 'user@example.com' }\n * // }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function auto(tasks, concurrency, callback) {\n if (typeof concurrency !== 'number') {\n // concurrency is optional, shift the args.\n callback = concurrency;\n concurrency = null;\n }\n callback = once(callback || promiseCallback());\n var numTasks = Object.keys(tasks).length;\n if (!numTasks) {\n return callback(null);\n }\n if (!concurrency) {\n concurrency = numTasks;\n }\n\n var results = {};\n var runningTasks = 0;\n var canceled = false;\n var hasError = false;\n\n var listeners = Object.create(null);\n\n var readyTasks = [];\n\n // for cycle detection:\n var readyToCheck = []; // tasks that have been identified as reachable\n // without the possibility of returning to an ancestor task\n var uncheckedDependencies = {};\n\n Object.keys(tasks).forEach(key => {\n var task = tasks[key];\n if (!Array.isArray(task)) {\n // no dependencies\n enqueueTask(key, [task]);\n readyToCheck.push(key);\n return;\n }\n\n var dependencies = task.slice(0, task.length - 1);\n var remainingDependencies = dependencies.length;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n readyToCheck.push(key);\n return;\n }\n uncheckedDependencies[key] = remainingDependencies;\n\n dependencies.forEach(dependencyName => {\n if (!tasks[dependencyName]) {\n throw new Error('async.auto task `' + key +\n '` has a non-existent dependency `' +\n dependencyName + '` in ' +\n dependencies.join(', '));\n }\n addListener(dependencyName, () => {\n remainingDependencies--;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n }\n });\n });\n });\n\n checkForDeadlocks();\n processQueue();\n\n function enqueueTask(key, task) {\n readyTasks.push(() => runTask(key, task));\n }\n\n function processQueue() {\n if (canceled) return\n if (readyTasks.length === 0 && runningTasks === 0) {\n return callback(null, results);\n }\n while(readyTasks.length && runningTasks < concurrency) {\n var run = readyTasks.shift();\n run();\n }\n\n }\n\n function addListener(taskName, fn) {\n var taskListeners = listeners[taskName];\n if (!taskListeners) {\n taskListeners = listeners[taskName] = [];\n }\n\n taskListeners.push(fn);\n }\n\n function taskComplete(taskName) {\n var taskListeners = listeners[taskName] || [];\n taskListeners.forEach(fn => fn());\n processQueue();\n }\n\n\n function runTask(key, task) {\n if (hasError) return;\n\n var taskCallback = onlyOnce((err, ...result) => {\n runningTasks--;\n if (err === false) {\n canceled = true;\n return\n }\n if (result.length < 2) {\n [result] = result;\n }\n if (err) {\n var safeResults = {};\n Object.keys(results).forEach(rkey => {\n safeResults[rkey] = results[rkey];\n });\n safeResults[key] = result;\n hasError = true;\n listeners = Object.create(null);\n if (canceled) return\n callback(err, safeResults);\n } else {\n results[key] = result;\n taskComplete(key);\n }\n });\n\n runningTasks++;\n var taskFn = wrapAsync(task[task.length - 1]);\n if (task.length > 1) {\n taskFn(results, taskCallback);\n } else {\n taskFn(taskCallback);\n }\n }\n\n function checkForDeadlocks() {\n // Kahn's algorithm\n // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm\n // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html\n var currentTask;\n var counter = 0;\n while (readyToCheck.length) {\n currentTask = readyToCheck.pop();\n counter++;\n getDependents(currentTask).forEach(dependent => {\n if (--uncheckedDependencies[dependent] === 0) {\n readyToCheck.push(dependent);\n }\n });\n }\n\n if (counter !== numTasks) {\n throw new Error(\n 'async.auto cannot execute tasks due to a recursive dependency'\n );\n }\n }\n\n function getDependents(taskName) {\n var result = [];\n Object.keys(tasks).forEach(key => {\n const task = tasks[key];\n if (Array.isArray(task) && task.indexOf(taskName) >= 0) {\n result.push(key);\n }\n });\n return result;\n }\n\n return callback[PROMISE_SYMBOL]\n }\n\n var FN_ARGS = /^(?:async\\s)?(?:function)?\\s*(?:\\w+\\s*)?\\(([^)]+)\\)(?:\\s*{)/;\n var ARROW_FN_ARGS = /^(?:async\\s)?\\s*(?:\\(\\s*)?((?:[^)=\\s]\\s*)*)(?:\\)\\s*)?=>/;\n var FN_ARG_SPLIT = /,/;\n var FN_ARG = /(=.+)?(\\s*)$/;\n\n function stripComments(string) {\n let stripped = '';\n let index = 0;\n let endBlockComment = string.indexOf('*/');\n while (index < string.length) {\n if (string[index] === '/' && string[index+1] === '/') {\n // inline comment\n let endIndex = string.indexOf('\\n', index);\n index = (endIndex === -1) ? string.length : endIndex;\n } else if ((endBlockComment !== -1) && (string[index] === '/') && (string[index+1] === '*')) {\n // block comment\n let endIndex = string.indexOf('*/', index);\n if (endIndex !== -1) {\n index = endIndex + 2;\n endBlockComment = string.indexOf('*/', index);\n } else {\n stripped += string[index];\n index++;\n }\n } else {\n stripped += string[index];\n index++;\n }\n }\n return stripped;\n }\n\n function parseParams(func) {\n const src = stripComments(func.toString());\n let match = src.match(FN_ARGS);\n if (!match) {\n match = src.match(ARROW_FN_ARGS);\n }\n if (!match) throw new Error('could not parse args in autoInject\\nSource:\\n' + src)\n let [, args] = match;\n return args\n .replace(/\\s/g, '')\n .split(FN_ARG_SPLIT)\n .map((arg) => arg.replace(FN_ARG, '').trim());\n }\n\n /**\n * A dependency-injected version of the [async.auto]{@link module:ControlFlow.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to [async.auto]{@link module:ControlFlow.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.auto]{@link module:ControlFlow.auto}\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is an {@link AsyncFunction} of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback, and a `results` object with any completed\n * task results, similar to `auto`.\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n */\n function autoInject(tasks, callback) {\n var newTasks = {};\n\n Object.keys(tasks).forEach(key => {\n var taskFn = tasks[key];\n var params;\n var fnIsAsync = isAsync(taskFn);\n var hasNoDeps =\n (!fnIsAsync && taskFn.length === 1) ||\n (fnIsAsync && taskFn.length === 0);\n\n if (Array.isArray(taskFn)) {\n params = [...taskFn];\n taskFn = params.pop();\n\n newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn);\n } else if (hasNoDeps) {\n // no dependencies, use the function as-is\n newTasks[key] = taskFn;\n } else {\n params = parseParams(taskFn);\n if ((taskFn.length === 0 && !fnIsAsync) && params.length === 0) {\n throw new Error(\"autoInject task functions require explicit parameters.\");\n }\n\n // remove callback param\n if (!fnIsAsync) params.pop();\n\n newTasks[key] = params.concat(newTask);\n }\n\n function newTask(results, taskCb) {\n var newArgs = params.map(name => results[name]);\n newArgs.push(taskCb);\n wrapAsync(taskFn)(...newArgs);\n }\n });\n\n return auto(newTasks, callback);\n }\n\n // Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation\n // used for queues. This implementation assumes that the node provided by the user can be modified\n // to adjust the next and last properties. We implement only the minimal functionality\n // for queue support.\n class DLL {\n constructor() {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n removeLink(node) {\n if (node.prev) node.prev.next = node.next;\n else this.head = node.next;\n if (node.next) node.next.prev = node.prev;\n else this.tail = node.prev;\n\n node.prev = node.next = null;\n this.length -= 1;\n return node;\n }\n\n empty () {\n while(this.head) this.shift();\n return this;\n }\n\n insertAfter(node, newNode) {\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next) node.next.prev = newNode;\n else this.tail = newNode;\n node.next = newNode;\n this.length += 1;\n }\n\n insertBefore(node, newNode) {\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev) node.prev.next = newNode;\n else this.head = newNode;\n node.prev = newNode;\n this.length += 1;\n }\n\n unshift(node) {\n if (this.head) this.insertBefore(this.head, node);\n else setInitial(this, node);\n }\n\n push(node) {\n if (this.tail) this.insertAfter(this.tail, node);\n else setInitial(this, node);\n }\n\n shift() {\n return this.head && this.removeLink(this.head);\n }\n\n pop() {\n return this.tail && this.removeLink(this.tail);\n }\n\n toArray() {\n return [...this]\n }\n\n *[Symbol.iterator] () {\n var cur = this.head;\n while (cur) {\n yield cur.data;\n cur = cur.next;\n }\n }\n\n remove (testFn) {\n var curr = this.head;\n while(curr) {\n var {next} = curr;\n if (testFn(curr)) {\n this.removeLink(curr);\n }\n curr = next;\n }\n return this;\n }\n }\n\n function setInitial(dll, node) {\n dll.length = 1;\n dll.head = dll.tail = node;\n }\n\n function queue$1(worker, concurrency, payload) {\n if (concurrency == null) {\n concurrency = 1;\n }\n else if(concurrency === 0) {\n throw new RangeError('Concurrency must not be zero');\n }\n\n var _worker = wrapAsync(worker);\n var numRunning = 0;\n var workersList = [];\n const events = {\n error: [],\n drain: [],\n saturated: [],\n unsaturated: [],\n empty: []\n };\n\n function on (event, handler) {\n events[event].push(handler);\n }\n\n function once (event, handler) {\n const handleAndRemove = (...args) => {\n off(event, handleAndRemove);\n handler(...args);\n };\n events[event].push(handleAndRemove);\n }\n\n function off (event, handler) {\n if (!event) return Object.keys(events).forEach(ev => events[ev] = [])\n if (!handler) return events[event] = []\n events[event] = events[event].filter(ev => ev !== handler);\n }\n\n function trigger (event, ...args) {\n events[event].forEach(handler => handler(...args));\n }\n\n var processingScheduled = false;\n function _insert(data, insertAtFront, rejectOnError, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n\n var res, rej;\n function promiseCallback (err, ...args) {\n // we don't care about the error, let the global error handler\n // deal with it\n if (err) return rejectOnError ? rej(err) : res()\n if (args.length <= 1) return res(args[0])\n res(args);\n }\n\n var item = q._createTaskItem(\n data,\n rejectOnError ? promiseCallback :\n (callback || promiseCallback)\n );\n\n if (insertAtFront) {\n q._tasks.unshift(item);\n } else {\n q._tasks.push(item);\n }\n\n if (!processingScheduled) {\n processingScheduled = true;\n setImmediate$1(() => {\n processingScheduled = false;\n q.process();\n });\n }\n\n if (rejectOnError || !callback) {\n return new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n })\n }\n }\n\n function _createCB(tasks) {\n return function (err, ...args) {\n numRunning -= 1;\n\n for (var i = 0, l = tasks.length; i < l; i++) {\n var task = tasks[i];\n\n var index = workersList.indexOf(task);\n if (index === 0) {\n workersList.shift();\n } else if (index > 0) {\n workersList.splice(index, 1);\n }\n\n task.callback(err, ...args);\n\n if (err != null) {\n trigger('error', err, task.data);\n }\n }\n\n if (numRunning <= (q.concurrency - q.buffer) ) {\n trigger('unsaturated');\n }\n\n if (q.idle()) {\n trigger('drain');\n }\n q.process();\n };\n }\n\n function _maybeDrain(data) {\n if (data.length === 0 && q.idle()) {\n // call drain immediately if there are no tasks\n setImmediate$1(() => trigger('drain'));\n return true\n }\n return false\n }\n\n const eventMethod = (name) => (handler) => {\n if (!handler) {\n return new Promise((resolve, reject) => {\n once(name, (err, data) => {\n if (err) return reject(err)\n resolve(data);\n });\n })\n }\n off(name);\n on(name, handler);\n\n };\n\n var isProcessing = false;\n var q = {\n _tasks: new DLL(),\n _createTaskItem (data, callback) {\n return {\n data,\n callback\n };\n },\n *[Symbol.iterator] () {\n yield* q._tasks[Symbol.iterator]();\n },\n concurrency,\n payload,\n buffer: concurrency / 4,\n started: false,\n paused: false,\n push (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, false, false, callback))\n }\n return _insert(data, false, false, callback);\n },\n pushAsync (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, false, true, callback))\n }\n return _insert(data, false, true, callback);\n },\n kill () {\n off();\n q._tasks.empty();\n },\n unshift (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, true, false, callback))\n }\n return _insert(data, true, false, callback);\n },\n unshiftAsync (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, true, true, callback))\n }\n return _insert(data, true, true, callback);\n },\n remove (testFn) {\n q._tasks.remove(testFn);\n },\n process () {\n // Avoid trying to start too many processing operations. This can occur\n // when callbacks resolve synchronously (#1267).\n if (isProcessing) {\n return;\n }\n isProcessing = true;\n while(!q.paused && numRunning < q.concurrency && q._tasks.length){\n var tasks = [], data = [];\n var l = q._tasks.length;\n if (q.payload) l = Math.min(l, q.payload);\n for (var i = 0; i < l; i++) {\n var node = q._tasks.shift();\n tasks.push(node);\n workersList.push(node);\n data.push(node.data);\n }\n\n numRunning += 1;\n\n if (q._tasks.length === 0) {\n trigger('empty');\n }\n\n if (numRunning === q.concurrency) {\n trigger('saturated');\n }\n\n var cb = onlyOnce(_createCB(tasks));\n _worker(data, cb);\n }\n isProcessing = false;\n },\n length () {\n return q._tasks.length;\n },\n running () {\n return numRunning;\n },\n workersList () {\n return workersList;\n },\n idle() {\n return q._tasks.length + numRunning === 0;\n },\n pause () {\n q.paused = true;\n },\n resume () {\n if (q.paused === false) { return; }\n q.paused = false;\n setImmediate$1(q.process);\n }\n };\n // define these as fixed properties, so people get useful errors when updating\n Object.defineProperties(q, {\n saturated: {\n writable: false,\n value: eventMethod('saturated')\n },\n unsaturated: {\n writable: false,\n value: eventMethod('unsaturated')\n },\n empty: {\n writable: false,\n value: eventMethod('empty')\n },\n drain: {\n writable: false,\n value: eventMethod('drain')\n },\n error: {\n writable: false,\n value: eventMethod('error')\n },\n });\n return q;\n }\n\n /**\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [`queue`]{@link module:ControlFlow.queue} passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An asynchronous function for processing an array\n * of queued tasks. Invoked with `(tasks, callback)`.\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {module:ControlFlow.QueueObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i {\n * console.log(result);\n * // 6000\n * // which is the sum of the file sizes of the three files\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.reduce(withMissingFileList, 0, getFileSizeInBytes)\n * .then( result => {\n * console.log(result);\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.reduce(fileList, 0, getFileSizeInBytes);\n * console.log(result);\n * // 6000\n * // which is the sum of the file sizes of the three files\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let result = await async.reduce(withMissingFileList, 0, getFileSizeInBytes);\n * console.log(result);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function reduce(coll, memo, iteratee, callback) {\n callback = once(callback);\n var _iteratee = wrapAsync(iteratee);\n return eachOfSeries$1(coll, (x, i, iterCb) => {\n _iteratee(memo, x, (err, v) => {\n memo = v;\n iterCb(err);\n });\n }, err => callback(err, memo));\n }\n var reduce$1 = awaitify(reduce, 4);\n\n /**\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * [compose]{@link module:ControlFlow.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.compose]{@link module:ControlFlow.compose}\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * User.get.bind(User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n */\n function seq(...functions) {\n var _functions = functions.map(wrapAsync);\n return function (...args) {\n var that = this;\n\n var cb = args[args.length - 1];\n if (typeof cb == 'function') {\n args.pop();\n } else {\n cb = promiseCallback();\n }\n\n reduce$1(_functions, args, (newargs, fn, iterCb) => {\n fn.apply(that, newargs.concat((err, ...nextargs) => {\n iterCb(err, nextargs);\n }));\n },\n (err, results) => cb(err, ...results));\n\n return cb[PROMISE_SYMBOL]\n };\n }\n\n /**\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * If the last argument to the composed function is not a function, a promise\n * is returned when you call it.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n */\n function compose(...args) {\n return seq(...args.reverse());\n }\n\n /**\n * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapLimit (coll, limit, iteratee, callback) {\n return _asyncMap(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var mapLimit$1 = awaitify(mapLimit, 4);\n\n /**\n * The same as [`concat`]{@link module:Collections.concat} but runs a maximum of `limit` async operations at a time.\n *\n * @name concatLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @alias flatMapLimit\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @returns A Promise, if no callback is passed\n */\n function concatLimit(coll, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return mapLimit$1(coll, limit, (val, iterCb) => {\n _iteratee(val, (err, ...args) => {\n if (err) return iterCb(err);\n return iterCb(err, args);\n });\n }, (err, mapResults) => {\n var result = [];\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n result = result.concat(...mapResults[i]);\n }\n }\n\n return callback(err, result);\n });\n }\n var concatLimit$1 = awaitify(concatLimit, 4);\n\n /**\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. The results array will be returned in\n * the original order of `coll` passed to the `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @alias flatMap\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @returns A Promise, if no callback is passed\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * let directoryList = ['dir1','dir2','dir3'];\n * let withMissingDirectoryList = ['dir1','dir2','dir3', 'dir4'];\n *\n * // Using callbacks\n * async.concat(directoryList, fs.readdir, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // [ 'file1.txt', 'file2.txt', 'file3.txt', 'file4.txt', file5.txt ]\n * }\n * });\n *\n * // Error Handling\n * async.concat(withMissingDirectoryList, fs.readdir, function(err, results) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4 does not exist\n * } else {\n * console.log(results);\n * }\n * });\n *\n * // Using Promises\n * async.concat(directoryList, fs.readdir)\n * .then(results => {\n * console.log(results);\n * // [ 'file1.txt', 'file2.txt', 'file3.txt', 'file4.txt', file5.txt ]\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.concat(withMissingDirectoryList, fs.readdir)\n * .then(results => {\n * console.log(results);\n * }).catch(err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4 does not exist\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.concat(directoryList, fs.readdir);\n * console.log(results);\n * // [ 'file1.txt', 'file2.txt', 'file3.txt', 'file4.txt', file5.txt ]\n * } catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let results = await async.concat(withMissingDirectoryList, fs.readdir);\n * console.log(results);\n * } catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4 does not exist\n * }\n * }\n *\n */\n function concat(coll, iteratee, callback) {\n return concatLimit$1(coll, Infinity, iteratee, callback)\n }\n var concat$1 = awaitify(concat, 3);\n\n /**\n * The same as [`concat`]{@link module:Collections.concat} but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @alias flatMapSeries\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`.\n * The iteratee should complete with an array an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @returns A Promise, if no callback is passed\n */\n function concatSeries(coll, iteratee, callback) {\n return concatLimit$1(coll, 1, iteratee, callback)\n }\n var concatSeries$1 = awaitify(concatSeries, 3);\n\n /**\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to\n * [`auto`]{@link module:ControlFlow.auto}.\n *\n * @name constant\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {AsyncFunction} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n */\n function constant$1(...args) {\n return function (...ignoredArgs/*, callback*/) {\n var callback = ignoredArgs.pop();\n return callback(null, ...args);\n };\n }\n\n function _createTester(check, getResult) {\n return (eachfn, arr, _iteratee, cb) => {\n var testPassed = false;\n var testResult;\n const iteratee = wrapAsync(_iteratee);\n eachfn(arr, (value, _, callback) => {\n iteratee(value, (err, result) => {\n if (err || err === false) return callback(err);\n\n if (check(result) && !testResult) {\n testPassed = true;\n testResult = getResult(true, value);\n return callback(null, breakLoop);\n }\n callback();\n });\n }, err => {\n if (err) return cb(err);\n cb(null, testPassed ? testResult : getResult(false));\n });\n };\n }\n\n /**\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * [`detectSeries`]{@link module:Collections.detectSeries}.\n *\n * @name detect\n * @static\n * @memberOf module:Collections\n * @method\n * @alias find\n * @category Collections\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * async.detect(['file3.txt','file2.txt','dir1/file1.txt'], fileExists,\n * function(err, result) {\n * console.log(result);\n * // dir1/file1.txt\n * // result now equals the first file in the list that exists\n * }\n *);\n *\n * // Using Promises\n * async.detect(['file3.txt','file2.txt','dir1/file1.txt'], fileExists)\n * .then(result => {\n * console.log(result);\n * // dir1/file1.txt\n * // result now equals the first file in the list that exists\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.detect(['file3.txt','file2.txt','dir1/file1.txt'], fileExists);\n * console.log(result);\n * // dir1/file1.txt\n * // result now equals the file in the list that exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function detect(coll, iteratee, callback) {\n return _createTester(bool => bool, (res, item) => item)(eachOf$1, coll, iteratee, callback)\n }\n var detect$1 = awaitify(detect, 3);\n\n /**\n * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findLimit\n * @category Collections\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function detectLimit(coll, limit, iteratee, callback) {\n return _createTester(bool => bool, (res, item) => item)(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var detectLimit$1 = awaitify(detectLimit, 4);\n\n /**\n * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findSeries\n * @category Collections\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function detectSeries(coll, iteratee, callback) {\n return _createTester(bool => bool, (res, item) => item)(eachOfLimit$2(1), coll, iteratee, callback)\n }\n\n var detectSeries$1 = awaitify(detectSeries, 3);\n\n function consoleFunc(name) {\n return (fn, ...args) => wrapAsync(fn)(...args, (err, ...resultArgs) => {\n /* istanbul ignore else */\n if (typeof console === 'object') {\n /* istanbul ignore else */\n if (err) {\n /* istanbul ignore else */\n if (console.error) {\n console.error(err);\n }\n } else if (console[name]) { /* istanbul ignore else */\n resultArgs.forEach(x => console[name](x));\n }\n }\n })\n }\n\n /**\n * Logs the result of an [`async` function]{@link AsyncFunction} to the\n * `console` using `console.dir` to display the properties of the resulting object.\n * Only works in Node.js or in browsers that support `console.dir` and\n * `console.error` (such as FF and Chrome).\n * If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name dir\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n */\n var dir = consoleFunc('dir');\n\n /**\n * The post-check version of [`whilst`]{@link module:ControlFlow.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `iteratee` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - A function which is called each time `test`\n * passes. Invoked with (callback).\n * @param {AsyncFunction} test - asynchronous truth test to perform after each\n * execution of `iteratee`. Invoked with (...args, callback), where `...args` are the\n * non-error args from the previous callback of `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped.\n * `callback` will be passed an error and any arguments passed to the final\n * `iteratee`'s callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if no callback is passed\n */\n function doWhilst(iteratee, test, callback) {\n callback = onlyOnce(callback);\n var _fn = wrapAsync(iteratee);\n var _test = wrapAsync(test);\n var results;\n\n function next(err, ...args) {\n if (err) return callback(err);\n if (err === false) return;\n results = args;\n _test(...args, check);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (err === false) return;\n if (!truth) return callback(null, ...results);\n _fn(next);\n }\n\n return check(null, true);\n }\n\n var doWhilst$1 = awaitify(doWhilst, 3);\n\n /**\n * Like ['doWhilst']{@link module:ControlFlow.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.doWhilst]{@link module:ControlFlow.doWhilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {AsyncFunction} test - asynchronous truth test to perform after each\n * execution of `iteratee`. Invoked with (...args, callback), where `...args` are the\n * non-error args from the previous callback of `iteratee`\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if no callback is passed\n */\n function doUntil(iteratee, test, callback) {\n const _test = wrapAsync(test);\n return doWhilst$1(iteratee, (...args) => {\n const cb = args.pop();\n _test(...args, (err, truth) => cb (err, !truth));\n }, callback);\n }\n\n function _withoutIndex(iteratee) {\n return (value, index, callback) => iteratee(value, callback);\n }\n\n /**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt'];\n * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt'];\n *\n * // asynchronous function that deletes a file\n * const deleteFile = function(file, callback) {\n * fs.unlink(file, callback);\n * };\n *\n * // Using callbacks\n * async.each(fileList, deleteFile, function(err) {\n * if( err ) {\n * console.log(err);\n * } else {\n * console.log('All files have been deleted successfully');\n * }\n * });\n *\n * // Error Handling\n * async.each(withMissingFileList, deleteFile, function(err){\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using Promises\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * await async.each(files, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * await async.each(withMissingFileList, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * }\n * }\n *\n */\n function eachLimit$2(coll, iteratee, callback) {\n return eachOf$1(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n }\n\n var each = awaitify(eachLimit$2, 3);\n\n /**\n * The same as [`each`]{@link module:Collections.each} but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfLimit`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachLimit(coll, limit, iteratee, callback) {\n return eachOfLimit$2(limit)(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n }\n var eachLimit$1 = awaitify(eachLimit, 4);\n\n /**\n * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time.\n *\n * Note, that unlike [`each`]{@link module:Collections.each}, this function applies iteratee to each item\n * in series and therefore the iteratee functions will complete in order.\n\n * @name eachSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfSeries`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachSeries(coll, iteratee, callback) {\n return eachLimit$1(coll, 1, iteratee, callback)\n }\n var eachSeries$1 = awaitify(eachSeries, 3);\n\n /**\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained. ES2017 `async` functions are returned as-is -- they are immune\n * to Zalgo's corrupting influences, as they always resolve on a later tick.\n *\n * @name ensureAsync\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {AsyncFunction} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n */\n function ensureAsync(fn) {\n if (isAsync(fn)) return fn;\n return function (...args/*, callback*/) {\n var callback = args.pop();\n var sync = true;\n args.push((...innerArgs) => {\n if (sync) {\n setImmediate$1(() => callback(...innerArgs));\n } else {\n callback(...innerArgs);\n }\n });\n fn.apply(this, args);\n sync = false;\n };\n }\n\n /**\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf module:Collections\n * @method\n * @alias all\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = ['dir1/file1.txt','dir2/file3.txt','dir3/file5.txt'];\n * const withMissingFileList = ['file1.txt','file2.txt','file4.txt'];\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.every(fileList, fileExists, function(err, result) {\n * console.log(result);\n * // true\n * // result is true since every file exists\n * });\n *\n * async.every(withMissingFileList, fileExists, function(err, result) {\n * console.log(result);\n * // false\n * // result is false since NOT every file exists\n * });\n *\n * // Using Promises\n * async.every(fileList, fileExists)\n * .then( result => {\n * console.log(result);\n * // true\n * // result is true since every file exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * async.every(withMissingFileList, fileExists)\n * .then( result => {\n * console.log(result);\n * // false\n * // result is false since NOT every file exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.every(fileList, fileExists);\n * console.log(result);\n * // true\n * // result is true since every file exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * async () => {\n * try {\n * let result = await async.every(withMissingFileList, fileExists);\n * console.log(result);\n * // false\n * // result is false since NOT every file exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function every(coll, iteratee, callback) {\n return _createTester(bool => !bool, res => !res)(eachOf$1, coll, iteratee, callback)\n }\n var every$1 = awaitify(every, 3);\n\n /**\n * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function everyLimit(coll, limit, iteratee, callback) {\n return _createTester(bool => !bool, res => !res)(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var everyLimit$1 = awaitify(everyLimit, 4);\n\n /**\n * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in series.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function everySeries(coll, iteratee, callback) {\n return _createTester(bool => !bool, res => !res)(eachOfSeries$1, coll, iteratee, callback)\n }\n var everySeries$1 = awaitify(everySeries, 3);\n\n function filterArray(eachfn, arr, iteratee, callback) {\n var truthValues = new Array(arr.length);\n eachfn(arr, (x, index, iterCb) => {\n iteratee(x, (err, v) => {\n truthValues[index] = !!v;\n iterCb(err);\n });\n }, err => {\n if (err) return callback(err);\n var results = [];\n for (var i = 0; i < arr.length; i++) {\n if (truthValues[i]) results.push(arr[i]);\n }\n callback(null, results);\n });\n }\n\n function filterGeneric(eachfn, coll, iteratee, callback) {\n var results = [];\n eachfn(coll, (x, index, iterCb) => {\n iteratee(x, (err, v) => {\n if (err) return iterCb(err);\n if (v) {\n results.push({index, value: x});\n }\n iterCb(err);\n });\n }, err => {\n if (err) return callback(err);\n callback(null, results\n .sort((a, b) => a.index - b.index)\n .map(v => v.value));\n });\n }\n\n function _filter(eachfn, coll, iteratee, callback) {\n var filter = isArrayLike(coll) ? filterArray : filterGeneric;\n return filter(eachfn, coll, wrapAsync(iteratee), callback);\n }\n\n /**\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf module:Collections\n * @method\n * @alias select\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n *\n * const files = ['dir1/file1.txt','dir2/file3.txt','dir3/file6.txt'];\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.filter(files, fileExists, function(err, results) {\n * if(err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // [ 'dir1/file1.txt', 'dir2/file3.txt' ]\n * // results is now an array of the existing files\n * }\n * });\n *\n * // Using Promises\n * async.filter(files, fileExists)\n * .then(results => {\n * console.log(results);\n * // [ 'dir1/file1.txt', 'dir2/file3.txt' ]\n * // results is now an array of the existing files\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.filter(files, fileExists);\n * console.log(results);\n * // [ 'dir1/file1.txt', 'dir2/file3.txt' ]\n * // results is now an array of the existing files\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function filter (coll, iteratee, callback) {\n return _filter(eachOf$1, coll, iteratee, callback)\n }\n var filter$1 = awaitify(filter, 3);\n\n /**\n * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback provided\n */\n function filterLimit (coll, limit, iteratee, callback) {\n return _filter(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var filterLimit$1 = awaitify(filterLimit, 4);\n\n /**\n * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n * @returns {Promise} a promise, if no callback provided\n */\n function filterSeries (coll, iteratee, callback) {\n return _filter(eachOfSeries$1, coll, iteratee, callback)\n }\n var filterSeries$1 = awaitify(filterSeries, 3);\n\n /**\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the callback then `errback` is called with the\n * error, and execution stops, otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} fn - an async function to call repeatedly.\n * Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @returns {Promise} a promise that rejects if an error occurs and an errback\n * is not passed\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n */\n function forever(fn, errback) {\n var done = onlyOnce(errback);\n var task = wrapAsync(ensureAsync(fn));\n\n function next(err) {\n if (err) return done(err);\n if (err === false) return;\n task(next);\n }\n return next();\n }\n var forever$1 = awaitify(forever, 2);\n\n /**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs a maximum of `limit` async operations at a time.\n *\n * @name groupByLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n * @returns {Promise} a promise, if no callback is passed\n */\n function groupByLimit(coll, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return mapLimit$1(coll, limit, (val, iterCb) => {\n _iteratee(val, (err, key) => {\n if (err) return iterCb(err);\n return iterCb(err, {key, val});\n });\n }, (err, mapResults) => {\n var result = {};\n // from MDN, handle object having an `hasOwnProperty` prop\n var {hasOwnProperty} = Object.prototype;\n\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n var {key} = mapResults[i];\n var {val} = mapResults[i];\n\n if (hasOwnProperty.call(result, key)) {\n result[key].push(val);\n } else {\n result[key] = [val];\n }\n }\n }\n\n return callback(err, result);\n });\n }\n\n var groupByLimit$1 = awaitify(groupByLimit, 4);\n\n /**\n * Returns a new object, where each value corresponds to an array of items, from\n * `coll`, that returned the corresponding key. That is, the keys of the object\n * correspond to the values passed to the `iteratee` callback.\n *\n * Note: Since this function applies the `iteratee` to each item in parallel,\n * there is no guarantee that the `iteratee` functions will complete in order.\n * However, the values for each key in the `result` will be in the same order as\n * the original `coll`. For Objects, the values will roughly be in the order of\n * the original Objects' keys (but this can vary across JavaScript engines).\n *\n * @name groupBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const files = ['dir1/file1.txt','dir2','dir4']\n *\n * // asynchronous function that detects file type as none, file, or directory\n * function detectFile(file, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(null, 'none');\n * }\n * callback(null, stat.isDirectory() ? 'directory' : 'file');\n * });\n * }\n *\n * //Using callbacks\n * async.groupBy(files, detectFile, function(err, result) {\n * if(err) {\n * console.log(err);\n * } else {\n *\t console.log(result);\n * // {\n * // file: [ 'dir1/file1.txt' ],\n * // none: [ 'dir4' ],\n * // directory: [ 'dir2']\n * // }\n * // result is object containing the files grouped by type\n * }\n * });\n *\n * // Using Promises\n * async.groupBy(files, detectFile)\n * .then( result => {\n * console.log(result);\n * // {\n * // file: [ 'dir1/file1.txt' ],\n * // none: [ 'dir4' ],\n * // directory: [ 'dir2']\n * // }\n * // result is object containing the files grouped by type\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.groupBy(files, detectFile);\n * console.log(result);\n * // {\n * // file: [ 'dir1/file1.txt' ],\n * // none: [ 'dir4' ],\n * // directory: [ 'dir2']\n * // }\n * // result is object containing the files grouped by type\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function groupBy (coll, iteratee, callback) {\n return groupByLimit$1(coll, Infinity, iteratee, callback)\n }\n\n /**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs only a single async operation at a time.\n *\n * @name groupBySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whose\n * properties are arrays of values which returned the corresponding key.\n * @returns {Promise} a promise, if no callback is passed\n */\n function groupBySeries (coll, iteratee, callback) {\n return groupByLimit$1(coll, 1, iteratee, callback)\n }\n\n /**\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n */\n var log = consoleFunc('log');\n\n /**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapValuesLimit(obj, limit, iteratee, callback) {\n callback = once(callback);\n var newObj = {};\n var _iteratee = wrapAsync(iteratee);\n return eachOfLimit$2(limit)(obj, (val, key, next) => {\n _iteratee(val, key, (err, result) => {\n if (err) return next(err);\n newObj[key] = result;\n next(err);\n });\n }, err => callback(err, newObj));\n }\n\n var mapValuesLimit$1 = awaitify(mapValuesLimit, 4);\n\n /**\n * A relative of [`map`]{@link module:Collections.map}, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n * // file4.txt does not exist\n *\n * const fileMap = {\n * f1: 'file1.txt',\n * f2: 'file2.txt',\n * f3: 'file3.txt'\n * };\n *\n * const withMissingFileMap = {\n * f1: 'file1.txt',\n * f2: 'file2.txt',\n * f3: 'file4.txt'\n * };\n *\n * // asynchronous function that returns the file size in bytes\n * function getFileSizeInBytes(file, key, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * callback(null, stat.size);\n * });\n * }\n *\n * // Using callbacks\n * async.mapValues(fileMap, getFileSizeInBytes, function(err, result) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(result);\n * // result is now a map of file size in bytes for each file, e.g.\n * // {\n * // f1: 1000,\n * // f2: 2000,\n * // f3: 3000\n * // }\n * }\n * });\n *\n * // Error handling\n * async.mapValues(withMissingFileMap, getFileSizeInBytes, function(err, result) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * } else {\n * console.log(result);\n * }\n * });\n *\n * // Using Promises\n * async.mapValues(fileMap, getFileSizeInBytes)\n * .then( result => {\n * console.log(result);\n * // result is now a map of file size in bytes for each file, e.g.\n * // {\n * // f1: 1000,\n * // f2: 2000,\n * // f3: 3000\n * // }\n * }).catch (err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.mapValues(withMissingFileMap, getFileSizeInBytes)\n * .then( result => {\n * console.log(result);\n * }).catch (err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.mapValues(fileMap, getFileSizeInBytes);\n * console.log(result);\n * // result is now a map of file size in bytes for each file, e.g.\n * // {\n * // f1: 1000,\n * // f2: 2000,\n * // f3: 3000\n * // }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let result = await async.mapValues(withMissingFileMap, getFileSizeInBytes);\n * console.log(result);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function mapValues(obj, iteratee, callback) {\n return mapValuesLimit$1(obj, Infinity, iteratee, callback)\n }\n\n /**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapValuesSeries(obj, iteratee, callback) {\n return mapValuesLimit$1(obj, 1, iteratee, callback)\n }\n\n /**\n * Caches the results of an async function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * **Note: if the async function errs, the result will not be cached and\n * subsequent calls will call the wrapped function.**\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {AsyncFunction} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n */\n function memoize(fn, hasher = v => v) {\n var memo = Object.create(null);\n var queues = Object.create(null);\n var _fn = wrapAsync(fn);\n var memoized = initialParams((args, callback) => {\n var key = hasher(...args);\n if (key in memo) {\n setImmediate$1(() => callback(null, ...memo[key]));\n } else if (key in queues) {\n queues[key].push(callback);\n } else {\n queues[key] = [callback];\n _fn(...args, (err, ...resultArgs) => {\n // #1465 don't memoize if an error occurred\n if (!err) {\n memo[key] = resultArgs;\n }\n var q = queues[key];\n delete queues[key];\n for (var i = 0, l = q.length; i < l; i++) {\n q[i](err, ...resultArgs);\n }\n });\n }\n });\n memoized.memo = memo;\n memoized.unmemoized = fn;\n return memoized;\n }\n\n /* istanbul ignore file */\n\n /**\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `process.nextTick`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.setImmediate]{@link module:Utils.setImmediate}\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n */\n var _defer;\n\n if (hasNextTick) {\n _defer = process.nextTick;\n } else if (hasSetImmediate) {\n _defer = setImmediate;\n } else {\n _defer = fallback;\n }\n\n var nextTick = wrap(_defer);\n\n var _parallel = awaitify((eachfn, tasks, callback) => {\n var results = isArrayLike(tasks) ? [] : {};\n\n eachfn(tasks, (task, key, taskCb) => {\n wrapAsync(task)((err, ...result) => {\n if (result.length < 2) {\n [result] = result;\n }\n results[key] = result;\n taskCb(err);\n });\n }, err => callback(err, results));\n }, 3);\n\n /**\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * **Hint:** Use [`reflect`]{@link module:Utils.reflect} to continue the\n * execution of other tasks when a task fails.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @returns {Promise} a promise, if a callback is not passed\n *\n * @example\n *\n * //Using Callbacks\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two'] even though\n * // the second function had a shorter timeout.\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two'] even though\n * // the second function had a shorter timeout.\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function parallel(tasks, callback) {\n return _parallel(eachOf$1, tasks, callback);\n }\n\n /**\n * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallelLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.parallel]{@link module:ControlFlow.parallel}\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @returns {Promise} a promise, if a callback is not passed\n */\n function parallelLimit(tasks, limit, callback) {\n return _parallel(eachOfLimit$2(limit), tasks, callback);\n }\n\n /**\n * A queue of tasks for the worker function to complete.\n * @typedef {Iterable} QueueObject\n * @memberOf module:ControlFlow\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with `queue.length()`.\n * @property {boolean} started - a boolean indicating whether or not any\n * items have been pushed and processed by the queue.\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with `queue.running()`.\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with `queue.workersList()`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with `queue.idle()`.\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {number} payload - an integer that specifies how many items are\n * passed to the worker function at a time. only applies if this is a\n * [cargo]{@link module:ControlFlow.cargo} object\n * @property {AsyncFunction} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with `queue.push(task, [callback])`,\n * @property {AsyncFunction} unshift - add a new task to the front of the `queue`.\n * Invoke with `queue.unshift(task, [callback])`.\n * @property {AsyncFunction} pushAsync - the same as `q.push`, except this returns\n * a promise that rejects if an error occurs.\n * @property {AsyncFunction} unshiftAsync - the same as `q.unshift`, except this returns\n * a promise that rejects if an error occurs.\n * @property {Function} remove - remove items from the queue that match a test\n * function. The test function will be passed an object with a `data` property,\n * and a `priority` property, if this is a\n * [priorityQueue]{@link module:ControlFlow.priorityQueue} object.\n * Invoked with `queue.remove(testFn)`, where `testFn` is of the form\n * `function ({data, priority}) {}` and returns a Boolean.\n * @property {Function} saturated - a function that sets a callback that is\n * called when the number of running workers hits the `concurrency` limit, and\n * further tasks will be queued. If the callback is omitted, `q.saturated()`\n * returns a promise for the next occurrence.\n * @property {Function} unsaturated - a function that sets a callback that is\n * called when the number of running workers is less than the `concurrency` &\n * `buffer` limits, and further tasks will not be queued. If the callback is\n * omitted, `q.unsaturated()` returns a promise for the next occurrence.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a function that sets a callback that is called\n * when the last item from the `queue` is given to a `worker`. If the callback\n * is omitted, `q.empty()` returns a promise for the next occurrence.\n * @property {Function} drain - a function that sets a callback that is called\n * when the last item from the `queue` has returned from the `worker`. If the\n * callback is omitted, `q.drain()` returns a promise for the next occurrence.\n * @property {Function} error - a function that sets a callback that is called\n * when a task errors. Has the signature `function(error, task)`. If the\n * callback is omitted, `error()` returns a promise that rejects on the next\n * error.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with `queue.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with `queue.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. No more tasks\n * should be pushed to the queue after calling this function. Invoke with `queue.kill()`.\n *\n * @example\n * const q = async.queue(worker, 2)\n * q.push(item1)\n * q.push(item2)\n * q.push(item3)\n * // queues are iterable, spread into an array to inspect\n * const items = [...q] // [item1, item2, item3]\n * // or use for of\n * for (let item of q) {\n * console.log(item)\n * }\n *\n * q.drain(() => {\n * console.log('all done')\n * })\n * // or\n * await q.drain()\n */\n\n /**\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`. Invoked with (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can be\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain(function() {\n * console.log('all items have been processed');\n * });\n * // or await the end\n * await q.drain()\n *\n * // assign an error callback\n * q.error(function(err, task) {\n * console.error('task experienced an error');\n * });\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * // callback is optional\n * q.push({name: 'bar'});\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n */\n function queue (worker, concurrency) {\n var _worker = wrapAsync(worker);\n return queue$1((items, cb) => {\n _worker(items[0], cb);\n }, concurrency, 1);\n }\n\n // Binary min-heap implementation used for priority queue.\n // Implementation is stable, i.e. push time is considered for equal priorities\n class Heap {\n constructor() {\n this.heap = [];\n this.pushCount = Number.MIN_SAFE_INTEGER;\n }\n\n get length() {\n return this.heap.length;\n }\n\n empty () {\n this.heap = [];\n return this;\n }\n\n percUp(index) {\n let p;\n\n while (index > 0 && smaller(this.heap[index], this.heap[p=parent(index)])) {\n let t = this.heap[index];\n this.heap[index] = this.heap[p];\n this.heap[p] = t;\n\n index = p;\n }\n }\n\n percDown(index) {\n let l;\n\n while ((l=leftChi(index)) < this.heap.length) {\n if (l+1 < this.heap.length && smaller(this.heap[l+1], this.heap[l])) {\n l = l+1;\n }\n\n if (smaller(this.heap[index], this.heap[l])) {\n break;\n }\n\n let t = this.heap[index];\n this.heap[index] = this.heap[l];\n this.heap[l] = t;\n\n index = l;\n }\n }\n\n push(node) {\n node.pushCount = ++this.pushCount;\n this.heap.push(node);\n this.percUp(this.heap.length-1);\n }\n\n unshift(node) {\n return this.heap.push(node);\n }\n\n shift() {\n let [top] = this.heap;\n\n this.heap[0] = this.heap[this.heap.length-1];\n this.heap.pop();\n this.percDown(0);\n\n return top;\n }\n\n toArray() {\n return [...this];\n }\n\n *[Symbol.iterator] () {\n for (let i = 0; i < this.heap.length; i++) {\n yield this.heap[i].data;\n }\n }\n\n remove (testFn) {\n let j = 0;\n for (let i = 0; i < this.heap.length; i++) {\n if (!testFn(this.heap[i])) {\n this.heap[j] = this.heap[i];\n j++;\n }\n }\n\n this.heap.splice(j);\n\n for (let i = parent(this.heap.length-1); i >= 0; i--) {\n this.percDown(i);\n }\n\n return this;\n }\n }\n\n function leftChi(i) {\n return (i<<1)+1;\n }\n\n function parent(i) {\n return ((i+1)>>1)-1;\n }\n\n function smaller(x, y) {\n if (x.priority !== y.priority) {\n return x.priority < y.priority;\n }\n else {\n return x.pushCount < y.pushCount;\n }\n }\n\n /**\n * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`.\n * Invoked with (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are three\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * `pushAsync(task, priority, [callback])` - the same as `priorityQueue.push`,\n * except this returns a promise that rejects if an error occurs.\n * * The `unshift` and `unshiftAsync` methods were removed.\n */\n function priorityQueue(worker, concurrency) {\n // Start with a normal queue\n var q = queue(worker, concurrency);\n\n var {\n push,\n pushAsync\n } = q;\n\n q._tasks = new Heap();\n q._createTaskItem = ({data, priority}, callback) => {\n return {\n data,\n priority,\n callback\n };\n };\n\n function createDataItems(tasks, priority) {\n if (!Array.isArray(tasks)) {\n return {data: tasks, priority};\n }\n return tasks.map(data => { return {data, priority}; });\n }\n\n // Override push to accept second parameter representing priority\n q.push = function(data, priority = 0, callback) {\n return push(createDataItems(data, priority), callback);\n };\n\n q.pushAsync = function(data, priority = 0, callback) {\n return pushAsync(createDataItems(data, priority), callback);\n };\n\n // Remove unshift functions\n delete q.unshift;\n delete q.unshiftAsync;\n\n return q;\n }\n\n /**\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any of the `tasks` complete or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array containing [async functions]{@link AsyncFunction}\n * to run. Each function can complete with an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n */\n function race(tasks, callback) {\n callback = once(callback);\n if (!Array.isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions'));\n if (!tasks.length) return callback();\n for (var i = 0, l = tasks.length; i < l; i++) {\n wrapAsync(tasks[i])(callback);\n }\n }\n\n var race$1 = awaitify(race, 2);\n\n /**\n * Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reduce]{@link module:Collections.reduce}\n * @alias foldr\n * @category Collection\n * @param {Array} array - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction.\n * The `iteratee` should complete with the next state of the reduction.\n * If the iteratee completes with an error, the reduction is stopped and the\n * main `callback` is immediately called with the error.\n * Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if no callback is passed\n */\n function reduceRight (array, memo, iteratee, callback) {\n var reversed = [...array].reverse();\n return reduce$1(reversed, memo, iteratee, callback);\n }\n\n /**\n * Wraps the async function in another function that always completes with a\n * result object, even when it errors.\n *\n * The result object has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n */\n function reflect(fn) {\n var _fn = wrapAsync(fn);\n return initialParams(function reflectOn(args, reflectCallback) {\n args.push((error, ...cbArgs) => {\n let retVal = {};\n if (error) {\n retVal.error = error;\n }\n if (cbArgs.length > 0){\n var value = cbArgs;\n if (cbArgs.length <= 1) {\n [value] = cbArgs;\n }\n retVal.value = value;\n }\n reflectCallback(null, retVal);\n });\n\n return _fn.apply(this, args);\n });\n }\n\n /**\n * A helper function that wraps an array or an object of functions with `reflect`.\n *\n * @name reflectAll\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.reflect]{@link module:Utils.reflect}\n * @category Util\n * @param {Array|Object|Iterable} tasks - The collection of\n * [async functions]{@link AsyncFunction} to wrap in `async.reflect`.\n * @returns {Array} Returns an array of async functions, each wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n *\n * // an example using an object instead of an array\n * let tasks = {\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * two: function(callback) {\n * callback('two');\n * },\n * three: function(callback) {\n * setTimeout(function() {\n * callback(null, 'three');\n * }, 100);\n * }\n * };\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results.one.value = 'one'\n * // results.two.error = 'two'\n * // results.three.value = 'three'\n * });\n */\n function reflectAll(tasks) {\n var results;\n if (Array.isArray(tasks)) {\n results = tasks.map(reflect);\n } else {\n results = {};\n Object.keys(tasks).forEach(key => {\n results[key] = reflect.call(this, tasks[key]);\n });\n }\n return results;\n }\n\n function reject$2(eachfn, arr, _iteratee, callback) {\n const iteratee = wrapAsync(_iteratee);\n return _filter(eachfn, arr, (value, cb) => {\n iteratee(value, (err, v) => {\n cb(err, !v);\n });\n }, callback);\n }\n\n /**\n * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n *\n * const fileList = ['dir1/file1.txt','dir2/file3.txt','dir3/file6.txt'];\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.reject(fileList, fileExists, function(err, results) {\n * // [ 'dir3/file6.txt' ]\n * // results now equals an array of the non-existing files\n * });\n *\n * // Using Promises\n * async.reject(fileList, fileExists)\n * .then( results => {\n * console.log(results);\n * // [ 'dir3/file6.txt' ]\n * // results now equals an array of the non-existing files\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.reject(fileList, fileExists);\n * console.log(results);\n * // [ 'dir3/file6.txt' ]\n * // results now equals an array of the non-existing files\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function reject (coll, iteratee, callback) {\n return reject$2(eachOf$1, coll, iteratee, callback)\n }\n var reject$1 = awaitify(reject, 3);\n\n /**\n * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function rejectLimit (coll, limit, iteratee, callback) {\n return reject$2(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var rejectLimit$1 = awaitify(rejectLimit, 4);\n\n /**\n * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function rejectSeries (coll, iteratee, callback) {\n return reject$2(eachOfSeries$1, coll, iteratee, callback)\n }\n var rejectSeries$1 = awaitify(rejectSeries, 3);\n\n function constant(value) {\n return function () {\n return value;\n }\n }\n\n /**\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @see [async.retryable]{@link module:ControlFlow.retryable}\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * `errorFilter` - An optional synchronous function that is invoked on\n * erroneous result. If it returns `true` the retry attempts will continue;\n * if the function returns `false` the retry flow is aborted with the current\n * attempt's error and result being returned to the final callback.\n * Invoked with (err).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {AsyncFunction} task - An async function to retry.\n * Invoked with (callback).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n * @returns {Promise} a promise if no callback provided\n *\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod only when error condition satisfies, all other\n * // errors will abort the retry control flow and return to final callback\n * async.retry({\n * errorFilter: function(err) {\n * return err.message === 'Temporary error'; // only retry on a specific error\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // to retry individual methods that are not as reliable within other\n * // control flow functions, use the `retryable` wrapper:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retryable(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n *\n */\n const DEFAULT_TIMES = 5;\n const DEFAULT_INTERVAL = 0;\n\n function retry(opts, task, callback) {\n var options = {\n times: DEFAULT_TIMES,\n intervalFunc: constant(DEFAULT_INTERVAL)\n };\n\n if (arguments.length < 3 && typeof opts === 'function') {\n callback = task || promiseCallback();\n task = opts;\n } else {\n parseTimes(options, opts);\n callback = callback || promiseCallback();\n }\n\n if (typeof task !== 'function') {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n\n var _task = wrapAsync(task);\n\n var attempt = 1;\n function retryAttempt() {\n _task((err, ...args) => {\n if (err === false) return\n if (err && attempt++ < options.times &&\n (typeof options.errorFilter != 'function' ||\n options.errorFilter(err))) {\n setTimeout(retryAttempt, options.intervalFunc(attempt - 1));\n } else {\n callback(err, ...args);\n }\n });\n }\n\n retryAttempt();\n return callback[PROMISE_SYMBOL]\n }\n\n function parseTimes(acc, t) {\n if (typeof t === 'object') {\n acc.times = +t.times || DEFAULT_TIMES;\n\n acc.intervalFunc = typeof t.interval === 'function' ?\n t.interval :\n constant(+t.interval || DEFAULT_INTERVAL);\n\n acc.errorFilter = t.errorFilter;\n } else if (typeof t === 'number' || typeof t === 'string') {\n acc.times = +t || DEFAULT_TIMES;\n } else {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n }\n\n /**\n * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method\n * wraps a task and makes it retryable, rather than immediately calling it\n * with retries.\n *\n * @name retryable\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.retry]{@link module:ControlFlow.retry}\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`, except for a `opts.arity` that\n * is the arity of the `task` function, defaulting to `task.length`\n * @param {AsyncFunction} task - the asynchronous function to wrap.\n * This function will be passed any arguments passed to the returned wrapper.\n * Invoked with (...args, callback).\n * @returns {AsyncFunction} The wrapped function, which when invoked, will\n * retry on an error, based on the parameters specified in `opts`.\n * This function will accept the same parameters as `task`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n */\n function retryable (opts, task) {\n if (!task) {\n task = opts;\n opts = null;\n }\n let arity = (opts && opts.arity) || task.length;\n if (isAsync(task)) {\n arity += 1;\n }\n var _task = wrapAsync(task);\n return initialParams((args, callback) => {\n if (args.length < arity - 1 || callback == null) {\n args.push(callback);\n callback = promiseCallback();\n }\n function taskFn(cb) {\n _task(...args, cb);\n }\n\n if (opts) retry(opts, taskFn, callback);\n else retry(taskFn, callback);\n\n return callback[PROMISE_SYMBOL]\n });\n }\n\n /**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @return {Promise} a promise, if no callback is passed\n * @example\n *\n * //Using Callbacks\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two']\n * });\n *\n * // an example using objects instead of arrays\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two']\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function series(tasks, callback) {\n return _parallel(eachOfSeries$1, tasks, callback);\n }\n\n /**\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf module:Collections\n * @method\n * @alias any\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir3/file5.txt'], fileExists,\n * function(err, result) {\n * console.log(result);\n * // true\n * // result is true since some file in the list exists\n * }\n *);\n *\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir4/missing.txt'], fileExists,\n * function(err, result) {\n * console.log(result);\n * // false\n * // result is false since none of the files exists\n * }\n *);\n *\n * // Using Promises\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir3/file5.txt'], fileExists)\n * .then( result => {\n * console.log(result);\n * // true\n * // result is true since some file in the list exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir4/missing.txt'], fileExists)\n * .then( result => {\n * console.log(result);\n * // false\n * // result is false since none of the files exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.some(['dir1/missing.txt','dir2/missing.txt','dir3/file5.txt'], fileExists);\n * console.log(result);\n * // true\n * // result is true since some file in the list exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * async () => {\n * try {\n * let result = await async.some(['dir1/missing.txt','dir2/missing.txt','dir4/missing.txt'], fileExists);\n * console.log(result);\n * // false\n * // result is false since none of the files exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function some(coll, iteratee, callback) {\n return _createTester(Boolean, res => res)(eachOf$1, coll, iteratee, callback)\n }\n var some$1 = awaitify(some, 3);\n\n /**\n * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anyLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function someLimit(coll, limit, iteratee, callback) {\n return _createTester(Boolean, res => res)(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var someLimit$1 = awaitify(someLimit, 4);\n\n /**\n * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anySeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in series.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function someSeries(coll, iteratee, callback) {\n return _createTester(Boolean, res => res)(eachOfSeries$1, coll, iteratee, callback)\n }\n var someSeries$1 = awaitify(someSeries, 3);\n\n /**\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a value to use as the sort criteria as\n * its `result`.\n * Invoked with (item, callback).\n * @param {Function} callback - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback passed\n * @example\n *\n * // bigfile.txt is a file that is 251100 bytes in size\n * // mediumfile.txt is a file that is 11000 bytes in size\n * // smallfile.txt is a file that is 121 bytes in size\n *\n * // asynchronous function that returns the file size in bytes\n * function getFileSizeInBytes(file, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * callback(null, stat.size);\n * });\n * }\n *\n * // Using callbacks\n * async.sortBy(['mediumfile.txt','smallfile.txt','bigfile.txt'], getFileSizeInBytes,\n * function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }\n * }\n * );\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy(['mediumfile.txt','smallfile.txt','bigfile.txt'], function(file, callback) {\n * getFileSizeInBytes(file, function(getFileSizeErr, fileSize) {\n * if (getFileSizeErr) return callback(getFileSizeErr);\n * callback(null, fileSize);\n * });\n * }, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }\n * }\n * );\n *\n * // descending order\n * async.sortBy(['bigfile.txt','mediumfile.txt','smallfile.txt'], function(file, callback) {\n * getFileSizeInBytes(file, function(getFileSizeErr, fileSize) {\n * if (getFileSizeErr) {\n * return callback(getFileSizeErr);\n * }\n * callback(null, fileSize * -1);\n * });\n * }, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'bigfile.txt', 'mediumfile.txt', 'smallfile.txt']\n * }\n * }\n * );\n *\n * // Error handling\n * async.sortBy(['mediumfile.txt','smallfile.txt','missingfile.txt'], getFileSizeInBytes,\n * function(err, results) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * } else {\n * console.log(results);\n * }\n * }\n * );\n *\n * // Using Promises\n * async.sortBy(['mediumfile.txt','smallfile.txt','bigfile.txt'], getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error handling\n * async.sortBy(['mediumfile.txt','smallfile.txt','missingfile.txt'], getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * (async () => {\n * try {\n * let results = await async.sortBy(['bigfile.txt','mediumfile.txt','smallfile.txt'], getFileSizeInBytes);\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * })();\n *\n * // Error handling\n * async () => {\n * try {\n * let results = await async.sortBy(['missingfile.txt','mediumfile.txt','smallfile.txt'], getFileSizeInBytes);\n * console.log(results);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function sortBy (coll, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return map$1(coll, (x, iterCb) => {\n _iteratee(x, (err, criteria) => {\n if (err) return iterCb(err);\n iterCb(err, {value: x, criteria});\n });\n }, (err, results) => {\n if (err) return callback(err);\n callback(null, results.sort(comparator).map(v => v.value));\n });\n\n function comparator(left, right) {\n var a = left.criteria, b = right.criteria;\n return a < b ? -1 : a > b ? 1 : 0;\n }\n }\n var sortBy$1 = awaitify(sortBy, 3);\n\n /**\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} asyncFn - The async function to limit in time.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {AsyncFunction} Returns a wrapped function that can be used with any\n * of the control flow functions.\n * Invoke this function with the same parameters as you would `asyncFunc`.\n * @example\n *\n * function myFunction(foo, callback) {\n * doAsyncTask(foo, function(err, data) {\n * // handle errors\n * if (err) return callback(err);\n *\n * // do some stuff ...\n *\n * // return processed data\n * return callback(null, data);\n * });\n * }\n *\n * var wrapped = async.timeout(myFunction, 1000);\n *\n * // call `wrapped` as you would `myFunction`\n * wrapped({ bar: 'bar' }, function(err, data) {\n * // if `myFunction` takes < 1000 ms to execute, `err`\n * // and `data` will have their expected values\n *\n * // else `err` will be an Error with the code 'ETIMEDOUT'\n * });\n */\n function timeout(asyncFn, milliseconds, info) {\n var fn = wrapAsync(asyncFn);\n\n return initialParams((args, callback) => {\n var timedOut = false;\n var timer;\n\n function timeoutCallback() {\n var name = asyncFn.name || 'anonymous';\n var error = new Error('Callback function \"' + name + '\" timed out.');\n error.code = 'ETIMEDOUT';\n if (info) {\n error.info = info;\n }\n timedOut = true;\n callback(error);\n }\n\n args.push((...cbArgs) => {\n if (!timedOut) {\n callback(...cbArgs);\n clearTimeout(timer);\n }\n });\n\n // setup timer and call original function\n timer = setTimeout(timeoutCallback, milliseconds);\n fn(...args);\n });\n }\n\n function range(size) {\n var result = Array(size);\n while (size--) {\n result[size] = size;\n }\n return result;\n }\n\n /**\n * The same as [times]{@link module:ControlFlow.times} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name timesLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see [async.map]{@link module:Collections.map}.\n * @returns {Promise} a promise, if no callback is provided\n */\n function timesLimit(count, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return mapLimit$1(range(count), limit, _iteratee, callback);\n }\n\n /**\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with [map]{@link module:Collections.map}.\n *\n * @name times\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n * @returns {Promise} a promise, if no callback is provided\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n */\n function times (n, iteratee, callback) {\n return timesLimit(n, Infinity, iteratee, callback)\n }\n\n /**\n * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n * @returns {Promise} a promise, if no callback is provided\n */\n function timesSeries (n, iteratee, callback) {\n return timesLimit(n, 1, iteratee, callback)\n }\n\n /**\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in parallel, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n *\n * // helper function that returns human-readable size format from bytes\n * function formatBytes(bytes, decimals = 2) {\n * // implementation not included for brevity\n * return humanReadbleFilesize;\n * }\n *\n * const fileList = ['file1.txt','file2.txt','file3.txt'];\n *\n * // asynchronous function that returns the file size, transformed to human-readable format\n * // e.g. 1024 bytes = 1KB, 1234 bytes = 1.21 KB, 1048576 bytes = 1MB, etc.\n * function transformFileSize(acc, value, key, callback) {\n * fs.stat(value, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * acc[key] = formatBytes(stat.size);\n * callback(null);\n * });\n * }\n *\n * // Using callbacks\n * async.transform(fileList, transformFileSize, function(err, result) {\n * if(err) {\n * console.log(err);\n * } else {\n * console.log(result);\n * // [ '1000 Bytes', '1.95 KB', '2.93 KB' ]\n * }\n * });\n *\n * // Using Promises\n * async.transform(fileList, transformFileSize)\n * .then(result => {\n * console.log(result);\n * // [ '1000 Bytes', '1.95 KB', '2.93 KB' ]\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * (async () => {\n * try {\n * let result = await async.transform(fileList, transformFileSize);\n * console.log(result);\n * // [ '1000 Bytes', '1.95 KB', '2.93 KB' ]\n * }\n * catch (err) {\n * console.log(err);\n * }\n * })();\n *\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n *\n * // helper function that returns human-readable size format from bytes\n * function formatBytes(bytes, decimals = 2) {\n * // implementation not included for brevity\n * return humanReadbleFilesize;\n * }\n *\n * const fileMap = { f1: 'file1.txt', f2: 'file2.txt', f3: 'file3.txt' };\n *\n * // asynchronous function that returns the file size, transformed to human-readable format\n * // e.g. 1024 bytes = 1KB, 1234 bytes = 1.21 KB, 1048576 bytes = 1MB, etc.\n * function transformFileSize(acc, value, key, callback) {\n * fs.stat(value, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * acc[key] = formatBytes(stat.size);\n * callback(null);\n * });\n * }\n *\n * // Using callbacks\n * async.transform(fileMap, transformFileSize, function(err, result) {\n * if(err) {\n * console.log(err);\n * } else {\n * console.log(result);\n * // { f1: '1000 Bytes', f2: '1.95 KB', f3: '2.93 KB' }\n * }\n * });\n *\n * // Using Promises\n * async.transform(fileMap, transformFileSize)\n * .then(result => {\n * console.log(result);\n * // { f1: '1000 Bytes', f2: '1.95 KB', f3: '2.93 KB' }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.transform(fileMap, transformFileSize);\n * console.log(result);\n * // { f1: '1000 Bytes', f2: '1.95 KB', f3: '2.93 KB' }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function transform (coll, accumulator, iteratee, callback) {\n if (arguments.length <= 3 && typeof accumulator === 'function') {\n callback = iteratee;\n iteratee = accumulator;\n accumulator = Array.isArray(coll) ? [] : {};\n }\n callback = once(callback || promiseCallback());\n var _iteratee = wrapAsync(iteratee);\n\n eachOf$1(coll, (v, k, cb) => {\n _iteratee(accumulator, v, k, cb);\n }, err => callback(err, accumulator));\n return callback[PROMISE_SYMBOL]\n }\n\n /**\n * It runs each task in series but stops whenever any of the functions were\n * successful. If one of the tasks were successful, the `callback` will be\n * passed the result of the successful task. If all tasks fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name tryEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing functions to\n * run, each function is passed a `callback(err, result)` it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback which is called when one\n * of the tasks has succeeded, or all have failed. It receives the `err` and\n * `result` arguments of the last attempt at completing the `task`. Invoked with\n * (err, results).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n * async.tryEach([\n * function getDataFromFirstWebsite(callback) {\n * // Try getting the data from the first website\n * callback(err, data);\n * },\n * function getDataFromSecondWebsite(callback) {\n * // First website failed,\n * // Try getting the data from the backup website\n * callback(err, data);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * Now do something with the data.\n * });\n *\n */\n function tryEach(tasks, callback) {\n var error = null;\n var result;\n return eachSeries$1(tasks, (task, taskCb) => {\n wrapAsync(task)((err, ...args) => {\n if (err === false) return taskCb(err);\n\n if (args.length < 2) {\n [result] = args;\n } else {\n result = args;\n }\n error = err;\n taskCb(err ? null : {});\n });\n }, () => callback(error, result));\n }\n\n var tryEach$1 = awaitify(tryEach);\n\n /**\n * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.memoize]{@link module:Utils.memoize}\n * @category Util\n * @param {AsyncFunction} fn - the memoized function\n * @returns {AsyncFunction} a function that calls the original unmemoized function\n */\n function unmemoize(fn) {\n return (...args) => {\n return (fn.unmemoized || fn)(...args);\n };\n }\n\n /**\n * Repeatedly call `iteratee`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `iteratee`. Invoked with (callback).\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function test(cb) { cb(null, count < 5); },\n * function iter(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n */\n function whilst(test, iteratee, callback) {\n callback = onlyOnce(callback);\n var _fn = wrapAsync(iteratee);\n var _test = wrapAsync(test);\n var results = [];\n\n function next(err, ...rest) {\n if (err) return callback(err);\n results = rest;\n if (err === false) return;\n _test(check);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (err === false) return;\n if (!truth) return callback(null, ...results);\n _fn(next);\n }\n\n return _test(check);\n }\n var whilst$1 = awaitify(whilst, 3);\n\n /**\n * Repeatedly call `iteratee` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `iteratee`'s callback.\n *\n * The inverse of [whilst]{@link module:ControlFlow.whilst}.\n *\n * @name until\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `iteratee`. Invoked with (callback).\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if a callback is not passed\n *\n * @example\n * const results = []\n * let finished = false\n * async.until(function test(cb) {\n * cb(null, finished)\n * }, function iter(next) {\n * fetchPage(url, (err, body) => {\n * if (err) return next(err)\n * results = results.concat(body.objects)\n * finished = !!body.next\n * next(err)\n * })\n * }, function done (err) {\n * // all pages have been fetched\n * })\n */\n function until(test, iteratee, callback) {\n const _test = wrapAsync(test);\n return whilst$1((cb) => _test((err, truth) => cb (err, !truth)), iteratee, callback);\n }\n\n /**\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array of [async functions]{@link AsyncFunction}\n * to run.\n * Each function should complete with any number of `result` values.\n * The `result` values will be passed as arguments, in order, to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n */\n function waterfall (tasks, callback) {\n callback = once(callback);\n if (!Array.isArray(tasks)) return callback(new Error('First argument to waterfall must be an array of functions'));\n if (!tasks.length) return callback();\n var taskIndex = 0;\n\n function nextTask(args) {\n var task = wrapAsync(tasks[taskIndex++]);\n task(...args, onlyOnce(next));\n }\n\n function next(err, ...args) {\n if (err === false) return\n if (err || taskIndex === tasks.length) {\n return callback(err, ...args);\n }\n nextTask(args);\n }\n\n nextTask([]);\n }\n\n var waterfall$1 = awaitify(waterfall);\n\n /**\n * An \"async function\" in the context of Async is an asynchronous function with\n * a variable number of parameters, with the final parameter being a callback.\n * (`function (arg1, arg2, ..., callback) {}`)\n * The final callback is of the form `callback(err, results...)`, which must be\n * called once the function is completed. The callback should be called with a\n * Error as its first argument to signal that an error occurred.\n * Otherwise, if no error occurred, it should be called with `null` as the first\n * argument, and any additional `result` arguments that may apply, to signal\n * successful completion.\n * The callback must be called exactly once, ideally on a later tick of the\n * JavaScript event loop.\n *\n * This type of function is also referred to as a \"Node-style async function\",\n * or a \"continuation passing-style function\" (CPS). Most of the methods of this\n * library are themselves CPS/Node-style async functions, or functions that\n * return CPS/Node-style async functions.\n *\n * Wherever we accept a Node-style async function, we also directly accept an\n * [ES2017 `async` function]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function}.\n * In this case, the `async` function will not be passed a final callback\n * argument, and any thrown error will be used as the `err` argument of the\n * implicit callback, and the return value will be used as the `result` value.\n * (i.e. a `rejected` of the returned Promise becomes the `err` callback\n * argument, and a `resolved` value becomes the `result`.)\n *\n * Note, due to JavaScript limitations, we can only detect native `async`\n * functions and not transpilied implementations.\n * Your environment must have `async`/`await` support for this to work.\n * (e.g. Node > v7.6, or a recent version of a modern browser).\n * If you are using `async` functions through a transpiler (e.g. Babel), you\n * must still wrap the function with [asyncify]{@link module:Utils.asyncify},\n * because the `async function` will be compiled to an ordinary function that\n * returns a promise.\n *\n * @typedef {Function} AsyncFunction\n * @static\n */\n\n\n var index = {\n apply,\n applyEach,\n applyEachSeries,\n asyncify,\n auto,\n autoInject,\n cargo: cargo$1,\n cargoQueue: cargo,\n compose,\n concat: concat$1,\n concatLimit: concatLimit$1,\n concatSeries: concatSeries$1,\n constant: constant$1,\n detect: detect$1,\n detectLimit: detectLimit$1,\n detectSeries: detectSeries$1,\n dir,\n doUntil,\n doWhilst: doWhilst$1,\n each,\n eachLimit: eachLimit$1,\n eachOf: eachOf$1,\n eachOfLimit: eachOfLimit$1,\n eachOfSeries: eachOfSeries$1,\n eachSeries: eachSeries$1,\n ensureAsync,\n every: every$1,\n everyLimit: everyLimit$1,\n everySeries: everySeries$1,\n filter: filter$1,\n filterLimit: filterLimit$1,\n filterSeries: filterSeries$1,\n forever: forever$1,\n groupBy,\n groupByLimit: groupByLimit$1,\n groupBySeries,\n log,\n map: map$1,\n mapLimit: mapLimit$1,\n mapSeries: mapSeries$1,\n mapValues,\n mapValuesLimit: mapValuesLimit$1,\n mapValuesSeries,\n memoize,\n nextTick,\n parallel,\n parallelLimit,\n priorityQueue,\n queue,\n race: race$1,\n reduce: reduce$1,\n reduceRight,\n reflect,\n reflectAll,\n reject: reject$1,\n rejectLimit: rejectLimit$1,\n rejectSeries: rejectSeries$1,\n retry,\n retryable,\n seq,\n series,\n setImmediate: setImmediate$1,\n some: some$1,\n someLimit: someLimit$1,\n someSeries: someSeries$1,\n sortBy: sortBy$1,\n timeout,\n times,\n timesLimit,\n timesSeries,\n transform,\n tryEach: tryEach$1,\n unmemoize,\n until,\n waterfall: waterfall$1,\n whilst: whilst$1,\n\n // aliases\n all: every$1,\n allLimit: everyLimit$1,\n allSeries: everySeries$1,\n any: some$1,\n anyLimit: someLimit$1,\n anySeries: someSeries$1,\n find: detect$1,\n findLimit: detectLimit$1,\n findSeries: detectSeries$1,\n flatMap: concat$1,\n flatMapLimit: concatLimit$1,\n flatMapSeries: concatSeries$1,\n forEach: each,\n forEachSeries: eachSeries$1,\n forEachLimit: eachLimit$1,\n forEachOf: eachOf$1,\n forEachOfSeries: eachOfSeries$1,\n forEachOfLimit: eachOfLimit$1,\n inject: reduce$1,\n foldl: reduce$1,\n foldr: reduceRight,\n select: filter$1,\n selectLimit: filterLimit$1,\n selectSeries: filterSeries$1,\n wrapSync: asyncify,\n during: whilst$1,\n doDuring: doWhilst$1\n };\n\n exports.all = every$1;\n exports.allLimit = everyLimit$1;\n exports.allSeries = everySeries$1;\n exports.any = some$1;\n exports.anyLimit = someLimit$1;\n exports.anySeries = someSeries$1;\n exports.apply = apply;\n exports.applyEach = applyEach;\n exports.applyEachSeries = applyEachSeries;\n exports.asyncify = asyncify;\n exports.auto = auto;\n exports.autoInject = autoInject;\n exports.cargo = cargo$1;\n exports.cargoQueue = cargo;\n exports.compose = compose;\n exports.concat = concat$1;\n exports.concatLimit = concatLimit$1;\n exports.concatSeries = concatSeries$1;\n exports.constant = constant$1;\n exports.default = index;\n exports.detect = detect$1;\n exports.detectLimit = detectLimit$1;\n exports.detectSeries = detectSeries$1;\n exports.dir = dir;\n exports.doDuring = doWhilst$1;\n exports.doUntil = doUntil;\n exports.doWhilst = doWhilst$1;\n exports.during = whilst$1;\n exports.each = each;\n exports.eachLimit = eachLimit$1;\n exports.eachOf = eachOf$1;\n exports.eachOfLimit = eachOfLimit$1;\n exports.eachOfSeries = eachOfSeries$1;\n exports.eachSeries = eachSeries$1;\n exports.ensureAsync = ensureAsync;\n exports.every = every$1;\n exports.everyLimit = everyLimit$1;\n exports.everySeries = everySeries$1;\n exports.filter = filter$1;\n exports.filterLimit = filterLimit$1;\n exports.filterSeries = filterSeries$1;\n exports.find = detect$1;\n exports.findLimit = detectLimit$1;\n exports.findSeries = detectSeries$1;\n exports.flatMap = concat$1;\n exports.flatMapLimit = concatLimit$1;\n exports.flatMapSeries = concatSeries$1;\n exports.foldl = reduce$1;\n exports.foldr = reduceRight;\n exports.forEach = each;\n exports.forEachLimit = eachLimit$1;\n exports.forEachOf = eachOf$1;\n exports.forEachOfLimit = eachOfLimit$1;\n exports.forEachOfSeries = eachOfSeries$1;\n exports.forEachSeries = eachSeries$1;\n exports.forever = forever$1;\n exports.groupBy = groupBy;\n exports.groupByLimit = groupByLimit$1;\n exports.groupBySeries = groupBySeries;\n exports.inject = reduce$1;\n exports.log = log;\n exports.map = map$1;\n exports.mapLimit = mapLimit$1;\n exports.mapSeries = mapSeries$1;\n exports.mapValues = mapValues;\n exports.mapValuesLimit = mapValuesLimit$1;\n exports.mapValuesSeries = mapValuesSeries;\n exports.memoize = memoize;\n exports.nextTick = nextTick;\n exports.parallel = parallel;\n exports.parallelLimit = parallelLimit;\n exports.priorityQueue = priorityQueue;\n exports.queue = queue;\n exports.race = race$1;\n exports.reduce = reduce$1;\n exports.reduceRight = reduceRight;\n exports.reflect = reflect;\n exports.reflectAll = reflectAll;\n exports.reject = reject$1;\n exports.rejectLimit = rejectLimit$1;\n exports.rejectSeries = rejectSeries$1;\n exports.retry = retry;\n exports.retryable = retryable;\n exports.select = filter$1;\n exports.selectLimit = filterLimit$1;\n exports.selectSeries = filterSeries$1;\n exports.seq = seq;\n exports.series = series;\n exports.setImmediate = setImmediate$1;\n exports.some = some$1;\n exports.someLimit = someLimit$1;\n exports.someSeries = someSeries$1;\n exports.sortBy = sortBy$1;\n exports.timeout = timeout;\n exports.times = times;\n exports.timesLimit = timesLimit;\n exports.timesSeries = timesSeries;\n exports.transform = transform;\n exports.tryEach = tryEach$1;\n exports.unmemoize = unmemoize;\n exports.until = until;\n exports.waterfall = waterfall$1;\n exports.whilst = whilst$1;\n exports.wrapSync = asyncify;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","function isBuffer (value) {\n return Buffer.isBuffer(value) || value instanceof Uint8Array\n}\n\nfunction isEncoding (encoding) {\n return Buffer.isEncoding(encoding)\n}\n\nfunction alloc (size, fill, encoding) {\n return Buffer.alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n return Buffer.allocUnsafe(size)\n}\n\nfunction allocUnsafeSlow (size) {\n return Buffer.allocUnsafeSlow(size)\n}\n\nfunction byteLength (string, encoding) {\n return Buffer.byteLength(string, encoding)\n}\n\nfunction compare (a, b) {\n return Buffer.compare(a, b)\n}\n\nfunction concat (buffers, totalLength) {\n return Buffer.concat(buffers, totalLength)\n}\n\nfunction copy (source, target, targetStart, start, end) {\n return toBuffer(source).copy(target, targetStart, start, end)\n}\n\nfunction equals (a, b) {\n return toBuffer(a).equals(b)\n}\n\nfunction fill (buffer, value, offset, end, encoding) {\n return toBuffer(buffer).fill(value, offset, end, encoding)\n}\n\nfunction from (value, encodingOrOffset, length) {\n return Buffer.from(value, encodingOrOffset, length)\n}\n\nfunction includes (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).includes(value, byteOffset, encoding)\n}\n\nfunction indexOf (buffer, value, byfeOffset, encoding) {\n return toBuffer(buffer).indexOf(value, byfeOffset, encoding)\n}\n\nfunction lastIndexOf (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding)\n}\n\nfunction swap16 (buffer) {\n return toBuffer(buffer).swap16()\n}\n\nfunction swap32 (buffer) {\n return toBuffer(buffer).swap32()\n}\n\nfunction swap64 (buffer) {\n return toBuffer(buffer).swap64()\n}\n\nfunction toBuffer (buffer) {\n if (Buffer.isBuffer(buffer)) return buffer\n return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n}\n\nfunction toString (buffer, encoding, start, end) {\n return toBuffer(buffer).toString(encoding, start, end)\n}\n\nfunction write (buffer, string, offset, length, encoding) {\n return toBuffer(buffer).write(string, offset, length, encoding)\n}\n\nfunction writeDoubleLE (buffer, value, offset) {\n return toBuffer(buffer).writeDoubleLE(value, offset)\n}\n\nfunction writeFloatLE (buffer, value, offset) {\n return toBuffer(buffer).writeFloatLE(value, offset)\n}\n\nfunction writeUInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeUInt32LE(value, offset)\n}\n\nfunction writeInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeInt32LE(value, offset)\n}\n\nfunction readDoubleLE (buffer, offset) {\n return toBuffer(buffer).readDoubleLE(offset)\n}\n\nfunction readFloatLE (buffer, offset) {\n return toBuffer(buffer).readFloatLE(offset)\n}\n\nfunction readUInt32LE (buffer, offset) {\n return toBuffer(buffer).readUInt32LE(offset)\n}\n\nfunction readInt32LE (buffer, offset) {\n return toBuffer(buffer).readInt32LE(offset)\n}\n\nfunction writeDoubleBE (buffer, value, offset) {\n return toBuffer(buffer).writeDoubleBE(value, offset)\n}\n\nfunction writeFloatBE (buffer, value, offset) {\n return toBuffer(buffer).writeFloatBE(value, offset)\n}\n\nfunction writeUInt32BE (buffer, value, offset) {\n return toBuffer(buffer).writeUInt32BE(value, offset)\n}\n\nfunction writeInt32BE (buffer, value, offset) {\n return toBuffer(buffer).writeInt32BE(value, offset)\n}\n\nfunction readDoubleBE (buffer, offset) {\n return toBuffer(buffer).readDoubleBE(offset)\n}\n\nfunction readFloatBE (buffer, offset) {\n return toBuffer(buffer).readFloatBE(offset)\n}\n\nfunction readUInt32BE (buffer, offset) {\n return toBuffer(buffer).readUInt32BE(offset)\n}\n\nfunction readInt32BE (buffer, offset) {\n return toBuffer(buffer).readInt32BE(offset)\n}\n\nmodule.exports = {\n isBuffer,\n isEncoding,\n alloc,\n allocUnsafe,\n allocUnsafeSlow,\n byteLength,\n compare,\n concat,\n copy,\n equals,\n fill,\n from,\n includes,\n indexOf,\n lastIndexOf,\n swap16,\n swap32,\n swap64,\n toBuffer,\n toString,\n write,\n writeDoubleLE,\n writeFloatLE,\n writeUInt32LE,\n writeInt32LE,\n readDoubleLE,\n readFloatLE,\n readUInt32LE,\n readInt32LE,\n writeDoubleBE,\n writeFloatBE,\n writeUInt32BE,\n writeInt32BE,\n readDoubleBE,\n readFloatBE,\n readUInt32BE,\n readInt32BE\n\n}\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var register = require(\"./lib/register\");\nvar addHook = require(\"./lib/add\");\nvar removeHook = require(\"./lib/remove\");\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind;\nvar bindable = bind.bind(bind);\n\nfunction bindApi(hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(\n null,\n name ? [state, name] : [state]\n );\n hook.api = { remove: removeHookRef };\n hook.remove = removeHookRef;\n [\"before\", \"error\", \"after\", \"wrap\"].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind];\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args);\n });\n}\n\nfunction HookSingular() {\n var singularHookName = \"h\";\n var singularHookState = {\n registry: {},\n };\n var singularHook = register.bind(null, singularHookState, singularHookName);\n bindApi(singularHook, singularHookState, singularHookName);\n return singularHook;\n}\n\nfunction HookCollection() {\n var state = {\n registry: {},\n };\n\n var hook = register.bind(null, state);\n bindApi(hook, state);\n\n return hook;\n}\n\nvar collectionHookDeprecationMessageDisplayed = false;\nfunction Hook() {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn(\n '[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4'\n );\n collectionHookDeprecationMessageDisplayed = true;\n }\n return HookCollection();\n}\n\nHook.Singular = HookSingular.bind();\nHook.Collection = HookCollection.bind();\n\nmodule.exports = Hook;\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook;\nmodule.exports.Singular = Hook.Singular;\nmodule.exports.Collection = Hook.Collection;\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","var balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m) return [str];\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n if (/\\$$/.test(m.pre)) { \n for (var k = 0; k < post.length; k++) {\n var expansion = pre+ '{' + m.body + '}' + post[k];\n expansions.push(expansion);\n }\n } else {\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = [];\n\n for (var j = 0; j < n.length; j++) {\n N.push.apply(N, expand(n[j], false));\n }\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n }\n\n return expansions;\n}\n\n","'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n let output = [];\n\n if (Array.isArray(input)) {\n for (const pattern of input) {\n const result = braces.create(pattern, options);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options));\n }\n\n if (options && options.expand === true && options.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n if (typeof input === 'string') {\n return stringify(braces.parse(input, options), options);\n }\n return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n\n let result = expand(input, options);\n\n // filter out empty strings if specified\n if (options.noempty === true) {\n result = result.filter(Boolean);\n }\n\n // filter out duplicates if specified\n if (options.nodupes === true) {\n result = [...new Set(result)];\n }\n\n return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n if (input === '' || input.length < 3) {\n return [input];\n }\n\n return options.expand !== true\n ? braces.compile(input, options)\n : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n","'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n const walk = (node, parent = {}) => {\n const invalidBlock = utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\n const invalid = invalidBlock === true || invalidNode === true;\n const prefix = options.escapeInvalid === true ? '\\\\' : '';\n let output = '';\n\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n\n if (node.isClose === true) {\n console.log('node.isClose', prefix, node.value);\n return prefix + node.value;\n }\n\n if (node.type === 'open') {\n return invalid ? prefix + node.value : '(';\n }\n\n if (node.type === 'close') {\n return invalid ? prefix + node.value : ')';\n }\n\n if (node.type === 'comma') {\n return node.prev.type === 'comma' ? '' : invalid ? node.value : '|';\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true });\n\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n\n if (node.nodes) {\n for (const child of node.nodes) {\n output += walk(child, node);\n }\n }\n\n return output;\n };\n\n return walk(ast);\n};\n\nmodule.exports = compile;\n","'use strict';\n\nmodule.exports = {\n MAX_LENGTH: 10000,\n\n // Digits\n CHAR_0: '0', /* 0 */\n CHAR_9: '9', /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 'A', /* A */\n CHAR_LOWERCASE_A: 'a', /* a */\n CHAR_UPPERCASE_Z: 'Z', /* Z */\n CHAR_LOWERCASE_Z: 'z', /* z */\n\n CHAR_LEFT_PARENTHESES: '(', /* ( */\n CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n CHAR_ASTERISK: '*', /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: '&', /* & */\n CHAR_AT: '@', /* @ */\n CHAR_BACKSLASH: '\\\\', /* \\ */\n CHAR_BACKTICK: '`', /* ` */\n CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n CHAR_COLON: ':', /* : */\n CHAR_COMMA: ',', /* , */\n CHAR_DOLLAR: '$', /* . */\n CHAR_DOT: '.', /* . */\n CHAR_DOUBLE_QUOTE: '\"', /* \" */\n CHAR_EQUAL: '=', /* = */\n CHAR_EXCLAMATION_MARK: '!', /* ! */\n CHAR_FORM_FEED: '\\f', /* \\f */\n CHAR_FORWARD_SLASH: '/', /* / */\n CHAR_HASH: '#', /* # */\n CHAR_HYPHEN_MINUS: '-', /* - */\n CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n CHAR_LEFT_CURLY_BRACE: '{', /* { */\n CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n CHAR_LINE_FEED: '\\n', /* \\n */\n CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n CHAR_PERCENT: '%', /* % */\n CHAR_PLUS: '+', /* + */\n CHAR_QUESTION_MARK: '?', /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n CHAR_SEMICOLON: ';', /* ; */\n CHAR_SINGLE_QUOTE: '\\'', /* ' */\n CHAR_SPACE: ' ', /* */\n CHAR_TAB: '\\t', /* \\t */\n CHAR_UNDERSCORE: '_', /* _ */\n CHAR_VERTICAL_LINE: '|', /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n","'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n const result = [];\n\n queue = [].concat(queue);\n stash = [].concat(stash);\n\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n }\n\n for (const item of queue) {\n if (Array.isArray(item)) {\n for (const value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);\n }\n }\n }\n return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit;\n\n const walk = (node, parent = {}) => {\n node.queue = [];\n\n let p = parent;\n let q = parent.queue;\n\n while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify(node, options)));\n return;\n }\n\n if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), ['{}']));\n return;\n }\n\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n\n if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n }\n\n let range = fill(...args, options);\n if (range.length === 0) {\n range = stringify(node, options);\n }\n\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n\n const enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n\n while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n\n for (let i = 0; i < node.nodes.length; i++) {\n const child = node.nodes[i];\n\n if (child.type === 'comma' && node.type === 'brace') {\n if (i === 1) queue.push('');\n queue.push('');\n continue;\n }\n\n if (child.type === 'close') {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n\n if (child.value && child.type !== 'open') {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n\n if (child.nodes) {\n walk(child, node);\n }\n }\n\n return queue;\n };\n\n return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n","'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n CHAR_BACKSLASH, /* \\ */\n CHAR_BACKTICK, /* ` */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n CHAR_DOUBLE_QUOTE, /* \" */\n CHAR_SINGLE_QUOTE, /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n const opts = options || {};\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n\n const ast = { type: 'root', input, nodes: [] };\n const stack = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n const length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n\n /**\n * Helpers\n */\n\n const advance = () => input[index++];\n const push = node => {\n if (node.type === 'text' && prev.type === 'dot') {\n prev.type = 'text';\n }\n\n if (prev && prev.type === 'text' && node.type === 'text') {\n prev.value += node.value;\n return;\n }\n\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n\n push({ type: 'bos' });\n\n while (index < length) {\n block = stack[stack.length - 1];\n value = advance();\n\n /**\n * Invalid chars\n */\n\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n\n /**\n * Escaped chars\n */\n\n if (value === CHAR_BACKSLASH) {\n push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n continue;\n }\n\n /**\n * Right square bracket (literal): ']'\n */\n\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push({ type: 'text', value: '\\\\' + value });\n continue;\n }\n\n /**\n * Left square bracket: '['\n */\n\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n\n let next;\n\n while (index < length && (next = advance())) {\n value += next;\n\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n\n if (brackets === 0) {\n break;\n }\n }\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push({ type: 'paren', nodes: [] });\n stack.push(block);\n push({ type: 'text', value });\n continue;\n }\n\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== 'paren') {\n push({ type: 'text', value });\n continue;\n }\n block = stack.pop();\n push({ type: 'text', value });\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Quotes: '|\"|`\n */\n\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n const open = value;\n let next;\n\n if (options.keepQuotes !== true) {\n value = '';\n }\n\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n\n if (next === open) {\n if (options.keepQuotes === true) value += next;\n break;\n }\n\n value += next;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Left curly brace: '{'\n */\n\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n\n const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n const brace = {\n type: 'brace',\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n\n block = push(brace);\n stack.push(block);\n push({ type: 'open', value });\n continue;\n }\n\n /**\n * Right curly brace: '}'\n */\n\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== 'brace') {\n push({ type: 'text', value });\n continue;\n }\n\n const type = 'close';\n block = stack.pop();\n block.close = true;\n\n push({ type, value });\n depth--;\n\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Comma: ','\n */\n\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n const open = block.nodes.shift();\n block.nodes = [open, { type: 'text', value: stringify(block) }];\n }\n\n push({ type: 'comma', value });\n block.commas++;\n continue;\n }\n\n /**\n * Dot: '.'\n */\n\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n const siblings = block.nodes;\n\n if (depth === 0 || siblings.length === 0) {\n push({ type: 'text', value });\n continue;\n }\n\n if (prev.type === 'dot') {\n block.range = [];\n prev.value += value;\n prev.type = 'range';\n\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = 'text';\n continue;\n }\n\n block.ranges++;\n block.args = [];\n continue;\n }\n\n if (prev.type === 'range') {\n siblings.pop();\n\n const before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n\n push({ type: 'dot', value });\n continue;\n }\n\n /**\n * Text\n */\n\n push({ type: 'text', value });\n }\n\n // Mark imbalanced braces and brackets as invalid\n do {\n block = stack.pop();\n\n if (block.type !== 'root') {\n block.nodes.forEach(node => {\n if (!node.nodes) {\n if (node.type === 'open') node.isOpen = true;\n if (node.type === 'close') node.isClose = true;\n if (!node.nodes) node.type = 'text';\n node.invalid = true;\n }\n });\n\n // get the location of the block on parent.nodes (block's siblings)\n const parent = stack[stack.length - 1];\n const index = parent.nodes.indexOf(block);\n // replace the (invalid) block with it's nodes\n parent.nodes.splice(index, 1, ...block.nodes);\n }\n } while (stack.length > 0);\n\n push({ type: 'eos' });\n return ast;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n const stringify = (node, parent = {}) => {\n const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\n let output = '';\n\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return '\\\\' + node.value;\n }\n return node.value;\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes) {\n for (const child of node.nodes) {\n output += stringify(child);\n }\n }\n return output;\n };\n\n return stringify(ast);\n};\n\n","'use strict';\n\nexports.isInteger = num => {\n if (typeof num === 'number') {\n return Number.isInteger(num);\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isInteger(Number(num));\n }\n return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n const node = block.nodes[n];\n if (!node) return;\n\n if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n if (node.escaped !== true) {\n node.value = '\\\\' + node.value;\n node.escaped = true;\n }\n }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n if (node.type !== 'brace') return false;\n if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n if (block.type !== 'brace') return false;\n if (block.invalid === true || block.dollar) return true;\n if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n if (node.type === 'open' || node.type === 'close') {\n return true;\n }\n return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n if (node.type === 'text') acc.push(node.value);\n if (node.type === 'range') node.type = 'text';\n return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n const result = [];\n\n const flat = arr => {\n for (let i = 0; i < arr.length; i++) {\n const ele = arr[i];\n\n if (Array.isArray(ele)) {\n flat(ele);\n continue;\n }\n\n if (ele !== undefined) {\n result.push(ele);\n }\n }\n return result;\n };\n\n flat(args);\n return result;\n};\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeFsHandler = exports.EVENTS = exports.isIBMi = exports.isFreeBSD = exports.isLinux = exports.isMacos = exports.isWindows = exports.IDENTITY_FN = exports.EMPTY_FN = exports.STR_CLOSE = exports.STR_END = exports.STR_DATA = void 0;\nconst fs_1 = require(\"fs\");\nconst promises_1 = require(\"fs/promises\");\nconst sysPath = require(\"path\");\nconst os_1 = require(\"os\");\nexports.STR_DATA = 'data';\nexports.STR_END = 'end';\nexports.STR_CLOSE = 'close';\nconst EMPTY_FN = () => { };\nexports.EMPTY_FN = EMPTY_FN;\nconst IDENTITY_FN = (val) => val;\nexports.IDENTITY_FN = IDENTITY_FN;\nconst pl = process.platform;\nexports.isWindows = pl === 'win32';\nexports.isMacos = pl === 'darwin';\nexports.isLinux = pl === 'linux';\nexports.isFreeBSD = pl === 'freebsd';\nexports.isIBMi = (0, os_1.type)() === 'OS400';\nexports.EVENTS = {\n ALL: 'all',\n READY: 'ready',\n ADD: 'add',\n CHANGE: 'change',\n ADD_DIR: 'addDir',\n UNLINK: 'unlink',\n UNLINK_DIR: 'unlinkDir',\n RAW: 'raw',\n ERROR: 'error',\n};\nconst EV = exports.EVENTS;\nconst THROTTLE_MODE_WATCH = 'watch';\nconst statMethods = { lstat: promises_1.lstat, stat: promises_1.stat };\nconst KEY_LISTENERS = 'listeners';\nconst KEY_ERR = 'errHandlers';\nconst KEY_RAW = 'rawEmitters';\nconst HANDLER_KEYS = [KEY_LISTENERS, KEY_ERR, KEY_RAW];\n// prettier-ignore\nconst binaryExtensions = new Set([\n '3dm', '3ds', '3g2', '3gp', '7z', 'a', 'aac', 'adp', 'afdesign', 'afphoto', 'afpub', 'ai',\n 'aif', 'aiff', 'alz', 'ape', 'apk', 'appimage', 'ar', 'arj', 'asf', 'au', 'avi',\n 'bak', 'baml', 'bh', 'bin', 'bk', 'bmp', 'btif', 'bz2', 'bzip2',\n 'cab', 'caf', 'cgm', 'class', 'cmx', 'cpio', 'cr2', 'cur', 'dat', 'dcm', 'deb', 'dex', 'djvu',\n 'dll', 'dmg', 'dng', 'doc', 'docm', 'docx', 'dot', 'dotm', 'dra', 'DS_Store', 'dsk', 'dts',\n 'dtshd', 'dvb', 'dwg', 'dxf',\n 'ecelp4800', 'ecelp7470', 'ecelp9600', 'egg', 'eol', 'eot', 'epub', 'exe',\n 'f4v', 'fbs', 'fh', 'fla', 'flac', 'flatpak', 'fli', 'flv', 'fpx', 'fst', 'fvt',\n 'g3', 'gh', 'gif', 'graffle', 'gz', 'gzip',\n 'h261', 'h263', 'h264', 'icns', 'ico', 'ief', 'img', 'ipa', 'iso',\n 'jar', 'jpeg', 'jpg', 'jpgv', 'jpm', 'jxr', 'key', 'ktx',\n 'lha', 'lib', 'lvp', 'lz', 'lzh', 'lzma', 'lzo',\n 'm3u', 'm4a', 'm4v', 'mar', 'mdi', 'mht', 'mid', 'midi', 'mj2', 'mka', 'mkv', 'mmr', 'mng',\n 'mobi', 'mov', 'movie', 'mp3',\n 'mp4', 'mp4a', 'mpeg', 'mpg', 'mpga', 'mxu',\n 'nef', 'npx', 'numbers', 'nupkg',\n 'o', 'odp', 'ods', 'odt', 'oga', 'ogg', 'ogv', 'otf', 'ott',\n 'pages', 'pbm', 'pcx', 'pdb', 'pdf', 'pea', 'pgm', 'pic', 'png', 'pnm', 'pot', 'potm',\n 'potx', 'ppa', 'ppam',\n 'ppm', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptm', 'pptx', 'psd', 'pya', 'pyc', 'pyo', 'pyv',\n 'qt',\n 'rar', 'ras', 'raw', 'resources', 'rgb', 'rip', 'rlc', 'rmf', 'rmvb', 'rpm', 'rtf', 'rz',\n 's3m', 's7z', 'scpt', 'sgi', 'shar', 'snap', 'sil', 'sketch', 'slk', 'smv', 'snk', 'so',\n 'stl', 'suo', 'sub', 'swf',\n 'tar', 'tbz', 'tbz2', 'tga', 'tgz', 'thmx', 'tif', 'tiff', 'tlz', 'ttc', 'ttf', 'txz',\n 'udf', 'uvh', 'uvi', 'uvm', 'uvp', 'uvs', 'uvu',\n 'viv', 'vob',\n 'war', 'wav', 'wax', 'wbmp', 'wdp', 'weba', 'webm', 'webp', 'whl', 'wim', 'wm', 'wma',\n 'wmv', 'wmx', 'woff', 'woff2', 'wrm', 'wvx',\n 'xbm', 'xif', 'xla', 'xlam', 'xls', 'xlsb', 'xlsm', 'xlsx', 'xlt', 'xltm', 'xltx', 'xm',\n 'xmind', 'xpi', 'xpm', 'xwd', 'xz',\n 'z', 'zip', 'zipx',\n]);\nconst isBinaryPath = (filePath) => binaryExtensions.has(sysPath.extname(filePath).slice(1).toLowerCase());\n// TODO: emit errors properly. Example: EMFILE on Macos.\nconst foreach = (val, fn) => {\n if (val instanceof Set) {\n val.forEach(fn);\n }\n else {\n fn(val);\n }\n};\nconst addAndConvert = (main, prop, item) => {\n let container = main[prop];\n if (!(container instanceof Set)) {\n main[prop] = container = new Set([container]);\n }\n container.add(item);\n};\nconst clearItem = (cont) => (key) => {\n const set = cont[key];\n if (set instanceof Set) {\n set.clear();\n }\n else {\n delete cont[key];\n }\n};\nconst delFromSet = (main, prop, item) => {\n const container = main[prop];\n if (container instanceof Set) {\n container.delete(item);\n }\n else if (container === item) {\n delete main[prop];\n }\n};\nconst isEmptySet = (val) => (val instanceof Set ? val.size === 0 : !val);\nconst FsWatchInstances = new Map();\n/**\n * Instantiates the fs_watch interface\n * @param path to be watched\n * @param options to be passed to fs_watch\n * @param listener main event handler\n * @param errHandler emits info about errors\n * @param emitRaw emits raw event data\n * @returns {NativeFsWatcher}\n */\nfunction createFsWatchInstance(path, options, listener, errHandler, emitRaw) {\n const handleEvent = (rawEvent, evPath) => {\n listener(path);\n emitRaw(rawEvent, evPath, { watchedPath: path });\n // emit based on events occurring for files from a directory's watcher in\n // case the file's watcher misses it (and rely on throttling to de-dupe)\n if (evPath && path !== evPath) {\n fsWatchBroadcast(sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath));\n }\n };\n try {\n return (0, fs_1.watch)(path, {\n persistent: options.persistent,\n }, handleEvent);\n }\n catch (error) {\n errHandler(error);\n return undefined;\n }\n}\n/**\n * Helper for passing fs_watch event data to a collection of listeners\n * @param fullPath absolute path bound to fs_watch instance\n */\nconst fsWatchBroadcast = (fullPath, listenerType, val1, val2, val3) => {\n const cont = FsWatchInstances.get(fullPath);\n if (!cont)\n return;\n foreach(cont[listenerType], (listener) => {\n listener(val1, val2, val3);\n });\n};\n/**\n * Instantiates the fs_watch interface or binds listeners\n * to an existing one covering the same file system entry\n * @param path\n * @param fullPath absolute path\n * @param options to be passed to fs_watch\n * @param handlers container for event listener functions\n */\nconst setFsWatchListener = (path, fullPath, options, handlers) => {\n const { listener, errHandler, rawEmitter } = handlers;\n let cont = FsWatchInstances.get(fullPath);\n let watcher;\n if (!options.persistent) {\n watcher = createFsWatchInstance(path, options, listener, errHandler, rawEmitter);\n if (!watcher)\n return;\n return watcher.close.bind(watcher);\n }\n if (cont) {\n addAndConvert(cont, KEY_LISTENERS, listener);\n addAndConvert(cont, KEY_ERR, errHandler);\n addAndConvert(cont, KEY_RAW, rawEmitter);\n }\n else {\n watcher = createFsWatchInstance(path, options, fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), errHandler, // no need to use broadcast here\n fsWatchBroadcast.bind(null, fullPath, KEY_RAW));\n if (!watcher)\n return;\n watcher.on(EV.ERROR, async (error) => {\n const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR);\n if (cont)\n cont.watcherUnusable = true; // documented since Node 10.4.1\n // Workaround for https://github.com/joyent/node/issues/4337\n if (exports.isWindows && error.code === 'EPERM') {\n try {\n const fd = await (0, promises_1.open)(path, 'r');\n await fd.close();\n broadcastErr(error);\n }\n catch (err) {\n // do nothing\n }\n }\n else {\n broadcastErr(error);\n }\n });\n cont = {\n listeners: listener,\n errHandlers: errHandler,\n rawEmitters: rawEmitter,\n watcher,\n };\n FsWatchInstances.set(fullPath, cont);\n }\n // const index = cont.listeners.indexOf(listener);\n // removes this instance's listeners and closes the underlying fs_watch\n // instance if there are no more listeners left\n return () => {\n delFromSet(cont, KEY_LISTENERS, listener);\n delFromSet(cont, KEY_ERR, errHandler);\n delFromSet(cont, KEY_RAW, rawEmitter);\n if (isEmptySet(cont.listeners)) {\n // Check to protect against issue gh-730.\n // if (cont.watcherUnusable) {\n cont.watcher.close();\n // }\n FsWatchInstances.delete(fullPath);\n HANDLER_KEYS.forEach(clearItem(cont));\n // @ts-ignore\n cont.watcher = undefined;\n Object.freeze(cont);\n }\n };\n};\n// fs_watchFile helpers\n// object to hold per-process fs_watchFile instances\n// (may be shared across chokidar FSWatcher instances)\nconst FsWatchFileInstances = new Map();\n/**\n * Instantiates the fs_watchFile interface or binds listeners\n * to an existing one covering the same file system entry\n * @param path to be watched\n * @param fullPath absolute path\n * @param options options to be passed to fs_watchFile\n * @param handlers container for event listener functions\n * @returns closer\n */\nconst setFsWatchFileListener = (path, fullPath, options, handlers) => {\n const { listener, rawEmitter } = handlers;\n let cont = FsWatchFileInstances.get(fullPath);\n // let listeners = new Set();\n // let rawEmitters = new Set();\n const copts = cont && cont.options;\n if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) {\n // \"Upgrade\" the watcher to persistence or a quicker interval.\n // This creates some unlikely edge case issues if the user mixes\n // settings in a very weird way, but solving for those cases\n // doesn't seem worthwhile for the added complexity.\n // listeners = cont.listeners;\n // rawEmitters = cont.rawEmitters;\n (0, fs_1.unwatchFile)(fullPath);\n cont = undefined;\n }\n if (cont) {\n addAndConvert(cont, KEY_LISTENERS, listener);\n addAndConvert(cont, KEY_RAW, rawEmitter);\n }\n else {\n // TODO\n // listeners.add(listener);\n // rawEmitters.add(rawEmitter);\n cont = {\n listeners: listener,\n rawEmitters: rawEmitter,\n options,\n watcher: (0, fs_1.watchFile)(fullPath, options, (curr, prev) => {\n foreach(cont.rawEmitters, (rawEmitter) => {\n rawEmitter(EV.CHANGE, fullPath, { curr, prev });\n });\n const currmtime = curr.mtimeMs;\n if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) {\n foreach(cont.listeners, (listener) => listener(path, curr));\n }\n }),\n };\n FsWatchFileInstances.set(fullPath, cont);\n }\n // const index = cont.listeners.indexOf(listener);\n // Removes this instance's listeners and closes the underlying fs_watchFile\n // instance if there are no more listeners left.\n return () => {\n delFromSet(cont, KEY_LISTENERS, listener);\n delFromSet(cont, KEY_RAW, rawEmitter);\n if (isEmptySet(cont.listeners)) {\n FsWatchFileInstances.delete(fullPath);\n (0, fs_1.unwatchFile)(fullPath);\n cont.options = cont.watcher = undefined;\n Object.freeze(cont);\n }\n };\n};\n/**\n * @mixin\n */\nclass NodeFsHandler {\n constructor(fsW) {\n this.fsw = fsW;\n this._boundHandleError = (error) => fsW._handleError(error);\n }\n /**\n * Watch file for changes with fs_watchFile or fs_watch.\n * @param path to file or dir\n * @param listener on fs change\n * @returns closer for the watcher instance\n */\n _watchWithNodeFs(path, listener) {\n const opts = this.fsw.options;\n const directory = sysPath.dirname(path);\n const basename = sysPath.basename(path);\n const parent = this.fsw._getWatchedDir(directory);\n parent.add(basename);\n const absolutePath = sysPath.resolve(path);\n const options = {\n persistent: opts.persistent,\n };\n if (!listener)\n listener = exports.EMPTY_FN;\n let closer;\n if (opts.usePolling) {\n const enableBin = opts.interval !== opts.binaryInterval;\n options.interval = enableBin && isBinaryPath(basename) ? opts.binaryInterval : opts.interval;\n closer = setFsWatchFileListener(path, absolutePath, options, {\n listener,\n rawEmitter: this.fsw._emitRaw,\n });\n }\n else {\n closer = setFsWatchListener(path, absolutePath, options, {\n listener,\n errHandler: this._boundHandleError,\n rawEmitter: this.fsw._emitRaw,\n });\n }\n return closer;\n }\n /**\n * Watch a file and emit add event if warranted.\n * @returns closer for the watcher instance\n */\n _handleFile(file, stats, initialAdd) {\n if (this.fsw.closed) {\n return;\n }\n const dirname = sysPath.dirname(file);\n const basename = sysPath.basename(file);\n const parent = this.fsw._getWatchedDir(dirname);\n // stats is always present\n let prevStats = stats;\n // if the file is already being watched, do nothing\n if (parent.has(basename))\n return;\n const listener = async (path, newStats) => {\n if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5))\n return;\n if (!newStats || newStats.mtimeMs === 0) {\n try {\n const newStats = await (0, promises_1.stat)(file);\n if (this.fsw.closed)\n return;\n // Check that change event was not fired because of changed only accessTime.\n const at = newStats.atimeMs;\n const mt = newStats.mtimeMs;\n if (!at || at <= mt || mt !== prevStats.mtimeMs) {\n this.fsw._emit(EV.CHANGE, file, newStats);\n }\n if ((exports.isMacos || exports.isLinux || exports.isFreeBSD) && prevStats.ino !== newStats.ino) {\n this.fsw._closeFile(path);\n prevStats = newStats;\n const closer = this._watchWithNodeFs(file, listener);\n if (closer)\n this.fsw._addPathCloser(path, closer);\n }\n else {\n prevStats = newStats;\n }\n }\n catch (error) {\n // Fix issues where mtime is null but file is still present\n this.fsw._remove(dirname, basename);\n }\n // add is about to be emitted if file not already tracked in parent\n }\n else if (parent.has(basename)) {\n // Check that change event was not fired because of changed only accessTime.\n const at = newStats.atimeMs;\n const mt = newStats.mtimeMs;\n if (!at || at <= mt || mt !== prevStats.mtimeMs) {\n this.fsw._emit(EV.CHANGE, file, newStats);\n }\n prevStats = newStats;\n }\n };\n // kick off the watcher\n const closer = this._watchWithNodeFs(file, listener);\n // emit an add event if we're supposed to\n if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) {\n if (!this.fsw._throttle(EV.ADD, file, 0))\n return;\n this.fsw._emit(EV.ADD, file, stats);\n }\n return closer;\n }\n /**\n * Handle symlinks encountered while reading a dir.\n * @param entry returned by readdirp\n * @param directory path of dir being read\n * @param path of this item\n * @param item basename of this item\n * @returns true if no more processing is needed for this entry.\n */\n async _handleSymlink(entry, directory, path, item) {\n if (this.fsw.closed) {\n return;\n }\n const full = entry.fullPath;\n const dir = this.fsw._getWatchedDir(directory);\n if (!this.fsw.options.followSymlinks) {\n // watch symlink directly (don't follow) and detect changes\n this.fsw._incrReadyCount();\n let linkPath;\n try {\n linkPath = await (0, promises_1.realpath)(path);\n }\n catch (e) {\n this.fsw._emitReady();\n return true;\n }\n if (this.fsw.closed)\n return;\n if (dir.has(item)) {\n if (this.fsw._symlinkPaths.get(full) !== linkPath) {\n this.fsw._symlinkPaths.set(full, linkPath);\n this.fsw._emit(EV.CHANGE, path, entry.stats);\n }\n }\n else {\n dir.add(item);\n this.fsw._symlinkPaths.set(full, linkPath);\n this.fsw._emit(EV.ADD, path, entry.stats);\n }\n this.fsw._emitReady();\n return true;\n }\n // don't follow the same symlink more than once\n if (this.fsw._symlinkPaths.has(full)) {\n return true;\n }\n this.fsw._symlinkPaths.set(full, true);\n }\n _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {\n // Normalize the directory name on Windows\n directory = sysPath.join(directory, '');\n throttler = this.fsw._throttle('readdir', directory, 1000);\n if (!throttler)\n return;\n const previous = this.fsw._getWatchedDir(wh.path);\n const current = new Set();\n let stream = this.fsw._readdirp(directory, {\n fileFilter: (entry) => wh.filterPath(entry),\n directoryFilter: (entry) => wh.filterDir(entry),\n });\n if (!stream)\n return;\n stream\n .on(exports.STR_DATA, async (entry) => {\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n const item = entry.path;\n let path = sysPath.join(directory, item);\n current.add(item);\n if (entry.stats.isSymbolicLink() &&\n (await this._handleSymlink(entry, directory, path, item))) {\n return;\n }\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n // Files that present in current directory snapshot\n // but absent in previous are added to watch list and\n // emit `add` event.\n if (item === target || (!target && !previous.has(item))) {\n this.fsw._incrReadyCount();\n // ensure relativeness of path is preserved in case of watcher reuse\n path = sysPath.join(dir, sysPath.relative(dir, path));\n this._addToNodeFs(path, initialAdd, wh, depth + 1);\n }\n })\n .on(EV.ERROR, this._boundHandleError);\n return new Promise((resolve, reject) => {\n if (!stream)\n return reject();\n stream.once(exports.STR_END, () => {\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n const wasThrottled = throttler ? throttler.clear() : false;\n resolve(undefined);\n // Files that absent in current directory snapshot\n // but present in previous emit `remove` event\n // and are removed from @watched[directory].\n previous\n .getChildren()\n .filter((item) => {\n return item !== directory && !current.has(item);\n })\n .forEach((item) => {\n this.fsw._remove(directory, item);\n });\n stream = undefined;\n // one more time for any missed in case changes came in extremely quickly\n if (wasThrottled)\n this._handleRead(directory, false, wh, target, dir, depth, throttler);\n });\n });\n }\n /**\n * Read directory to add / remove files from `@watched` list and re-read it on change.\n * @param dir fs path\n * @param stats\n * @param initialAdd\n * @param depth relative to user-supplied path\n * @param target child path targeted for watch\n * @param wh Common watch helpers for this path\n * @param realpath\n * @returns closer for the watcher instance.\n */\n async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) {\n const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir));\n const tracked = parentDir.has(sysPath.basename(dir));\n if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) {\n this.fsw._emit(EV.ADD_DIR, dir, stats);\n }\n // ensure dir is tracked (harmless if redundant)\n parentDir.add(sysPath.basename(dir));\n this.fsw._getWatchedDir(dir);\n let throttler;\n let closer;\n const oDepth = this.fsw.options.depth;\n if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) {\n if (!target) {\n await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler);\n if (this.fsw.closed)\n return;\n }\n closer = this._watchWithNodeFs(dir, (dirPath, stats) => {\n // if current directory is removed, do nothing\n if (stats && stats.mtimeMs === 0)\n return;\n this._handleRead(dirPath, false, wh, target, dir, depth, throttler);\n });\n }\n return closer;\n }\n /**\n * Handle added file, directory, or glob pattern.\n * Delegates call to _handleFile / _handleDir after checks.\n * @param path to file or ir\n * @param initialAdd was the file added at watch instantiation?\n * @param priorWh depth relative to user-supplied path\n * @param depth Child path actually targeted for watch\n * @param target Child path actually targeted for watch\n */\n async _addToNodeFs(path, initialAdd, priorWh, depth, target) {\n const ready = this.fsw._emitReady;\n if (this.fsw._isIgnored(path) || this.fsw.closed) {\n ready();\n return false;\n }\n const wh = this.fsw._getWatchHelpers(path);\n if (priorWh) {\n wh.filterPath = (entry) => priorWh.filterPath(entry);\n wh.filterDir = (entry) => priorWh.filterDir(entry);\n }\n // evaluate what is at the path we're being asked to watch\n try {\n const stats = await statMethods[wh.statMethod](wh.watchPath);\n if (this.fsw.closed)\n return;\n if (this.fsw._isIgnored(wh.watchPath, stats)) {\n ready();\n return false;\n }\n const follow = this.fsw.options.followSymlinks;\n let closer;\n if (stats.isDirectory()) {\n const absPath = sysPath.resolve(path);\n const targetPath = follow ? await (0, promises_1.realpath)(path) : path;\n if (this.fsw.closed)\n return;\n closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath);\n if (this.fsw.closed)\n return;\n // preserve this symlink's target path\n if (absPath !== targetPath && targetPath !== undefined) {\n this.fsw._symlinkPaths.set(absPath, targetPath);\n }\n }\n else if (stats.isSymbolicLink()) {\n const targetPath = follow ? await (0, promises_1.realpath)(path) : path;\n if (this.fsw.closed)\n return;\n const parent = sysPath.dirname(wh.watchPath);\n this.fsw._getWatchedDir(parent).add(wh.watchPath);\n this.fsw._emit(EV.ADD, wh.watchPath, stats);\n closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath);\n if (this.fsw.closed)\n return;\n // preserve this symlink's target path\n if (targetPath !== undefined) {\n this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath);\n }\n }\n else {\n closer = this._handleFile(wh.watchPath, stats, initialAdd);\n }\n ready();\n if (closer)\n this.fsw._addPathCloser(path, closer);\n return false;\n }\n catch (error) {\n if (this.fsw._handleError(error)) {\n ready();\n return path;\n }\n }\n }\n}\nexports.NodeFsHandler = NodeFsHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FSWatcher = exports.WatchHelper = void 0;\nexports.watch = watch;\n/*! chokidar - MIT License (c) 2012 Paul Miller (paulmillr.com) */\nconst fs_1 = require(\"fs\");\nconst promises_1 = require(\"fs/promises\");\nconst events_1 = require(\"events\");\nconst sysPath = require(\"path\");\nconst readdirp_1 = require(\"readdirp\");\nconst handler_js_1 = require(\"./handler.js\");\nconst SLASH = '/';\nconst SLASH_SLASH = '//';\nconst ONE_DOT = '.';\nconst TWO_DOTS = '..';\nconst STRING_TYPE = 'string';\nconst BACK_SLASH_RE = /\\\\/g;\nconst DOUBLE_SLASH_RE = /\\/\\//;\nconst DOT_RE = /\\..*\\.(sw[px])$|~$|\\.subl.*\\.tmp/;\nconst REPLACER_RE = /^\\.[/\\\\]/;\nfunction arrify(item) {\n return Array.isArray(item) ? item : [item];\n}\nconst isMatcherObject = (matcher) => typeof matcher === 'object' && matcher !== null && !(matcher instanceof RegExp);\nfunction createPattern(matcher) {\n if (typeof matcher === 'function')\n return matcher;\n if (typeof matcher === 'string')\n return (string) => matcher === string;\n if (matcher instanceof RegExp)\n return (string) => matcher.test(string);\n if (typeof matcher === 'object' && matcher !== null) {\n return (string) => {\n if (matcher.path === string)\n return true;\n if (matcher.recursive) {\n const relative = sysPath.relative(matcher.path, string);\n if (!relative) {\n return false;\n }\n return !relative.startsWith('..') && !sysPath.isAbsolute(relative);\n }\n return false;\n };\n }\n return () => false;\n}\nfunction normalizePath(path) {\n if (typeof path !== 'string')\n throw new Error('string expected');\n path = sysPath.normalize(path);\n path = path.replace(/\\\\/g, '/');\n let prepend = false;\n if (path.startsWith('//'))\n prepend = true;\n const DOUBLE_SLASH_RE = /\\/\\//;\n while (path.match(DOUBLE_SLASH_RE))\n path = path.replace(DOUBLE_SLASH_RE, '/');\n if (prepend)\n path = '/' + path;\n return path;\n}\nfunction matchPatterns(patterns, testString, stats) {\n const path = normalizePath(testString);\n for (let index = 0; index < patterns.length; index++) {\n const pattern = patterns[index];\n if (pattern(path, stats)) {\n return true;\n }\n }\n return false;\n}\nfunction anymatch(matchers, testString) {\n if (matchers == null) {\n throw new TypeError('anymatch: specify first argument');\n }\n // Early cache for matchers.\n const matchersArray = arrify(matchers);\n const patterns = matchersArray.map((matcher) => createPattern(matcher));\n if (testString == null) {\n return (testString, stats) => {\n return matchPatterns(patterns, testString, stats);\n };\n }\n return matchPatterns(patterns, testString);\n}\nconst unifyPaths = (paths_) => {\n const paths = arrify(paths_).flat();\n if (!paths.every((p) => typeof p === STRING_TYPE)) {\n throw new TypeError(`Non-string provided as watch path: ${paths}`);\n }\n return paths.map(normalizePathToUnix);\n};\n// If SLASH_SLASH occurs at the beginning of path, it is not replaced\n// because \"//StoragePC/DrivePool/Movies\" is a valid network path\nconst toUnix = (string) => {\n let str = string.replace(BACK_SLASH_RE, SLASH);\n let prepend = false;\n if (str.startsWith(SLASH_SLASH)) {\n prepend = true;\n }\n while (str.match(DOUBLE_SLASH_RE)) {\n str = str.replace(DOUBLE_SLASH_RE, SLASH);\n }\n if (prepend) {\n str = SLASH + str;\n }\n return str;\n};\n// Our version of upath.normalize\n// TODO: this is not equal to path-normalize module - investigate why\nconst normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path)));\n// TODO: refactor\nconst normalizeIgnored = (cwd = '') => (path) => {\n if (typeof path === 'string') {\n return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path));\n }\n else {\n return path;\n }\n};\nconst getAbsolutePath = (path, cwd) => {\n if (sysPath.isAbsolute(path)) {\n return path;\n }\n return sysPath.join(cwd, path);\n};\nconst EMPTY_SET = Object.freeze(new Set());\n/**\n * Directory entry.\n */\nclass DirEntry {\n constructor(dir, removeWatcher) {\n this.path = dir;\n this._removeWatcher = removeWatcher;\n this.items = new Set();\n }\n add(item) {\n const { items } = this;\n if (!items)\n return;\n if (item !== ONE_DOT && item !== TWO_DOTS)\n items.add(item);\n }\n async remove(item) {\n const { items } = this;\n if (!items)\n return;\n items.delete(item);\n if (items.size > 0)\n return;\n const dir = this.path;\n try {\n await (0, promises_1.readdir)(dir);\n }\n catch (err) {\n if (this._removeWatcher) {\n this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir));\n }\n }\n }\n has(item) {\n const { items } = this;\n if (!items)\n return;\n return items.has(item);\n }\n getChildren() {\n const { items } = this;\n if (!items)\n return [];\n return [...items.values()];\n }\n dispose() {\n this.items.clear();\n this.path = '';\n this._removeWatcher = handler_js_1.EMPTY_FN;\n this.items = EMPTY_SET;\n Object.freeze(this);\n }\n}\nconst STAT_METHOD_F = 'stat';\nconst STAT_METHOD_L = 'lstat';\nclass WatchHelper {\n constructor(path, follow, fsw) {\n this.fsw = fsw;\n const watchPath = path;\n this.path = path = path.replace(REPLACER_RE, '');\n this.watchPath = watchPath;\n this.fullWatchPath = sysPath.resolve(watchPath);\n this.dirParts = [];\n this.dirParts.forEach((parts) => {\n if (parts.length > 1)\n parts.pop();\n });\n this.followSymlinks = follow;\n this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L;\n }\n entryPath(entry) {\n return sysPath.join(this.watchPath, sysPath.relative(this.watchPath, entry.fullPath));\n }\n filterPath(entry) {\n const { stats } = entry;\n if (stats && stats.isSymbolicLink())\n return this.filterDir(entry);\n const resolvedPath = this.entryPath(entry);\n // TODO: what if stats is undefined? remove !\n return this.fsw._isntIgnored(resolvedPath, stats) && this.fsw._hasReadPermissions(stats);\n }\n filterDir(entry) {\n return this.fsw._isntIgnored(this.entryPath(entry), entry.stats);\n }\n}\nexports.WatchHelper = WatchHelper;\n/**\n * Watches files & directories for changes. Emitted events:\n * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error`\n *\n * new FSWatcher()\n * .add(directories)\n * .on('add', path => log('File', path, 'was added'))\n */\nclass FSWatcher extends events_1.EventEmitter {\n // Not indenting methods for history sake; for now.\n constructor(_opts = {}) {\n super();\n this.closed = false;\n this._closers = new Map();\n this._ignoredPaths = new Set();\n this._throttled = new Map();\n this._streams = new Set();\n this._symlinkPaths = new Map();\n this._watched = new Map();\n this._pendingWrites = new Map();\n this._pendingUnlinks = new Map();\n this._readyCount = 0;\n this._readyEmitted = false;\n const awf = _opts.awaitWriteFinish;\n const DEF_AWF = { stabilityThreshold: 2000, pollInterval: 100 };\n const opts = {\n // Defaults\n persistent: true,\n ignoreInitial: false,\n ignorePermissionErrors: false,\n interval: 100,\n binaryInterval: 300,\n followSymlinks: true,\n usePolling: false,\n // useAsync: false,\n atomic: true, // NOTE: overwritten later (depends on usePolling)\n ..._opts,\n // Change format\n ignored: _opts.ignored ? arrify(_opts.ignored) : arrify([]),\n awaitWriteFinish: awf === true ? DEF_AWF : typeof awf === 'object' ? { ...DEF_AWF, ...awf } : false,\n };\n // Always default to polling on IBM i because fs.watch() is not available on IBM i.\n if (handler_js_1.isIBMi)\n opts.usePolling = true;\n // Editor atomic write normalization enabled by default with fs.watch\n if (opts.atomic === undefined)\n opts.atomic = !opts.usePolling;\n // opts.atomic = typeof _opts.atomic === 'number' ? _opts.atomic : 100;\n // Global override. Useful for developers, who need to force polling for all\n // instances of chokidar, regardless of usage / dependency depth\n const envPoll = process.env.CHOKIDAR_USEPOLLING;\n if (envPoll !== undefined) {\n const envLower = envPoll.toLowerCase();\n if (envLower === 'false' || envLower === '0')\n opts.usePolling = false;\n else if (envLower === 'true' || envLower === '1')\n opts.usePolling = true;\n else\n opts.usePolling = !!envLower;\n }\n const envInterval = process.env.CHOKIDAR_INTERVAL;\n if (envInterval)\n opts.interval = Number.parseInt(envInterval, 10);\n // This is done to emit ready only once, but each 'add' will increase that?\n let readyCalls = 0;\n this._emitReady = () => {\n readyCalls++;\n if (readyCalls >= this._readyCount) {\n this._emitReady = handler_js_1.EMPTY_FN;\n this._readyEmitted = true;\n // use process.nextTick to allow time for listener to be bound\n process.nextTick(() => this.emit(handler_js_1.EVENTS.READY));\n }\n };\n this._emitRaw = (...args) => this.emit(handler_js_1.EVENTS.RAW, ...args);\n this._boundRemove = this._remove.bind(this);\n this.options = opts;\n this._nodeFsHandler = new handler_js_1.NodeFsHandler(this);\n // You’re frozen when your heart’s not open.\n Object.freeze(opts);\n }\n _addIgnoredPath(matcher) {\n if (isMatcherObject(matcher)) {\n // return early if we already have a deeply equal matcher object\n for (const ignored of this._ignoredPaths) {\n if (isMatcherObject(ignored) &&\n ignored.path === matcher.path &&\n ignored.recursive === matcher.recursive) {\n return;\n }\n }\n }\n this._ignoredPaths.add(matcher);\n }\n _removeIgnoredPath(matcher) {\n this._ignoredPaths.delete(matcher);\n // now find any matcher objects with the matcher as path\n if (typeof matcher === 'string') {\n for (const ignored of this._ignoredPaths) {\n // TODO (43081j): make this more efficient.\n // probably just make a `this._ignoredDirectories` or some\n // such thing.\n if (isMatcherObject(ignored) && ignored.path === matcher) {\n this._ignoredPaths.delete(ignored);\n }\n }\n }\n }\n // Public methods\n /**\n * Adds paths to be watched on an existing FSWatcher instance.\n * @param paths_ file or file list. Other arguments are unused\n */\n add(paths_, _origAdd, _internal) {\n const { cwd } = this.options;\n this.closed = false;\n this._closePromise = undefined;\n let paths = unifyPaths(paths_);\n if (cwd) {\n paths = paths.map((path) => {\n const absPath = getAbsolutePath(path, cwd);\n // Check `path` instead of `absPath` because the cwd portion can't be a glob\n return absPath;\n });\n }\n paths.forEach((path) => {\n this._removeIgnoredPath(path);\n });\n this._userIgnored = undefined;\n if (!this._readyCount)\n this._readyCount = 0;\n this._readyCount += paths.length;\n Promise.all(paths.map(async (path) => {\n const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, undefined, 0, _origAdd);\n if (res)\n this._emitReady();\n return res;\n })).then((results) => {\n if (this.closed)\n return;\n results.forEach((item) => {\n if (item)\n this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item));\n });\n });\n return this;\n }\n /**\n * Close watchers or start ignoring events from specified paths.\n */\n unwatch(paths_) {\n if (this.closed)\n return this;\n const paths = unifyPaths(paths_);\n const { cwd } = this.options;\n paths.forEach((path) => {\n // convert to absolute path unless relative path already matches\n if (!sysPath.isAbsolute(path) && !this._closers.has(path)) {\n if (cwd)\n path = sysPath.join(cwd, path);\n path = sysPath.resolve(path);\n }\n this._closePath(path);\n this._addIgnoredPath(path);\n if (this._watched.has(path)) {\n this._addIgnoredPath({\n path,\n recursive: true,\n });\n }\n // reset the cached userIgnored anymatch fn\n // to make ignoredPaths changes effective\n this._userIgnored = undefined;\n });\n return this;\n }\n /**\n * Close watchers and remove all listeners from watched paths.\n */\n close() {\n if (this._closePromise) {\n return this._closePromise;\n }\n this.closed = true;\n // Memory management.\n this.removeAllListeners();\n const closers = [];\n this._closers.forEach((closerList) => closerList.forEach((closer) => {\n const promise = closer();\n if (promise instanceof Promise)\n closers.push(promise);\n }));\n this._streams.forEach((stream) => stream.destroy());\n this._userIgnored = undefined;\n this._readyCount = 0;\n this._readyEmitted = false;\n this._watched.forEach((dirent) => dirent.dispose());\n this._closers.clear();\n this._watched.clear();\n this._streams.clear();\n this._symlinkPaths.clear();\n this._throttled.clear();\n this._closePromise = closers.length\n ? Promise.all(closers).then(() => undefined)\n : Promise.resolve();\n return this._closePromise;\n }\n /**\n * Expose list of watched paths\n * @returns for chaining\n */\n getWatched() {\n const watchList = {};\n this._watched.forEach((entry, dir) => {\n const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir;\n const index = key || ONE_DOT;\n watchList[index] = entry.getChildren().sort();\n });\n return watchList;\n }\n emitWithAll(event, args) {\n this.emit(event, ...args);\n if (event !== handler_js_1.EVENTS.ERROR)\n this.emit(handler_js_1.EVENTS.ALL, event, ...args);\n }\n // Common helpers\n // --------------\n /**\n * Normalize and emit events.\n * Calling _emit DOES NOT MEAN emit() would be called!\n * @param event Type of event\n * @param path File or directory path\n * @param stats arguments to be passed with event\n * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag\n */\n async _emit(event, path, stats) {\n if (this.closed)\n return;\n const opts = this.options;\n if (handler_js_1.isWindows)\n path = sysPath.normalize(path);\n if (opts.cwd)\n path = sysPath.relative(opts.cwd, path);\n const args = [path];\n if (stats != null)\n args.push(stats);\n const awf = opts.awaitWriteFinish;\n let pw;\n if (awf && (pw = this._pendingWrites.get(path))) {\n pw.lastChange = new Date();\n return this;\n }\n if (opts.atomic) {\n if (event === handler_js_1.EVENTS.UNLINK) {\n this._pendingUnlinks.set(path, [event, ...args]);\n setTimeout(() => {\n this._pendingUnlinks.forEach((entry, path) => {\n this.emit(...entry);\n this.emit(handler_js_1.EVENTS.ALL, ...entry);\n this._pendingUnlinks.delete(path);\n });\n }, typeof opts.atomic === 'number' ? opts.atomic : 100);\n return this;\n }\n if (event === handler_js_1.EVENTS.ADD && this._pendingUnlinks.has(path)) {\n event = handler_js_1.EVENTS.CHANGE;\n this._pendingUnlinks.delete(path);\n }\n }\n if (awf && (event === handler_js_1.EVENTS.ADD || event === handler_js_1.EVENTS.CHANGE) && this._readyEmitted) {\n const awfEmit = (err, stats) => {\n if (err) {\n event = handler_js_1.EVENTS.ERROR;\n args[0] = err;\n this.emitWithAll(event, args);\n }\n else if (stats) {\n // if stats doesn't exist the file must have been deleted\n if (args.length > 1) {\n args[1] = stats;\n }\n else {\n args.push(stats);\n }\n this.emitWithAll(event, args);\n }\n };\n this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit);\n return this;\n }\n if (event === handler_js_1.EVENTS.CHANGE) {\n const isThrottled = !this._throttle(handler_js_1.EVENTS.CHANGE, path, 50);\n if (isThrottled)\n return this;\n }\n if (opts.alwaysStat &&\n stats === undefined &&\n (event === handler_js_1.EVENTS.ADD || event === handler_js_1.EVENTS.ADD_DIR || event === handler_js_1.EVENTS.CHANGE)) {\n const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path;\n let stats;\n try {\n stats = await (0, promises_1.stat)(fullPath);\n }\n catch (err) {\n // do nothing\n }\n // Suppress event when fs_stat fails, to avoid sending undefined 'stat'\n if (!stats || this.closed)\n return;\n args.push(stats);\n }\n this.emitWithAll(event, args);\n return this;\n }\n /**\n * Common handler for errors\n * @returns The error if defined, otherwise the value of the FSWatcher instance's `closed` flag\n */\n _handleError(error) {\n const code = error && error.code;\n if (error &&\n code !== 'ENOENT' &&\n code !== 'ENOTDIR' &&\n (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES'))) {\n this.emit(handler_js_1.EVENTS.ERROR, error);\n }\n return error || this.closed;\n }\n /**\n * Helper utility for throttling\n * @param actionType type being throttled\n * @param path being acted upon\n * @param timeout duration of time to suppress duplicate actions\n * @returns tracking object or false if action should be suppressed\n */\n _throttle(actionType, path, timeout) {\n if (!this._throttled.has(actionType)) {\n this._throttled.set(actionType, new Map());\n }\n const action = this._throttled.get(actionType);\n if (!action)\n throw new Error('invalid throttle');\n const actionPath = action.get(path);\n if (actionPath) {\n actionPath.count++;\n return false;\n }\n // eslint-disable-next-line prefer-const\n let timeoutObject;\n const clear = () => {\n const item = action.get(path);\n const count = item ? item.count : 0;\n action.delete(path);\n clearTimeout(timeoutObject);\n if (item)\n clearTimeout(item.timeoutObject);\n return count;\n };\n timeoutObject = setTimeout(clear, timeout);\n const thr = { timeoutObject, clear, count: 0 };\n action.set(path, thr);\n return thr;\n }\n _incrReadyCount() {\n return this._readyCount++;\n }\n /**\n * Awaits write operation to finish.\n * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback.\n * @param path being acted upon\n * @param threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished\n * @param event\n * @param awfEmit Callback to be called when ready for event to be emitted.\n */\n _awaitWriteFinish(path, threshold, event, awfEmit) {\n const awf = this.options.awaitWriteFinish;\n if (typeof awf !== 'object')\n return;\n const pollInterval = awf.pollInterval;\n let timeoutHandler;\n let fullPath = path;\n if (this.options.cwd && !sysPath.isAbsolute(path)) {\n fullPath = sysPath.join(this.options.cwd, path);\n }\n const now = new Date();\n const writes = this._pendingWrites;\n function awaitWriteFinishFn(prevStat) {\n (0, fs_1.stat)(fullPath, (err, curStat) => {\n if (err || !writes.has(path)) {\n if (err && err.code !== 'ENOENT')\n awfEmit(err);\n return;\n }\n const now = Number(new Date());\n if (prevStat && curStat.size !== prevStat.size) {\n writes.get(path).lastChange = now;\n }\n const pw = writes.get(path);\n const df = now - pw.lastChange;\n if (df >= threshold) {\n writes.delete(path);\n awfEmit(undefined, curStat);\n }\n else {\n timeoutHandler = setTimeout(awaitWriteFinishFn, pollInterval, curStat);\n }\n });\n }\n if (!writes.has(path)) {\n writes.set(path, {\n lastChange: now,\n cancelWait: () => {\n writes.delete(path);\n clearTimeout(timeoutHandler);\n return event;\n },\n });\n timeoutHandler = setTimeout(awaitWriteFinishFn, pollInterval);\n }\n }\n /**\n * Determines whether user has asked to ignore this path.\n */\n _isIgnored(path, stats) {\n if (this.options.atomic && DOT_RE.test(path))\n return true;\n if (!this._userIgnored) {\n const { cwd } = this.options;\n const ign = this.options.ignored;\n const ignored = (ign || []).map(normalizeIgnored(cwd));\n const ignoredPaths = [...this._ignoredPaths];\n const list = [...ignoredPaths.map(normalizeIgnored(cwd)), ...ignored];\n this._userIgnored = anymatch(list, undefined);\n }\n return this._userIgnored(path, stats);\n }\n _isntIgnored(path, stat) {\n return !this._isIgnored(path, stat);\n }\n /**\n * Provides a set of common helpers and properties relating to symlink handling.\n * @param path file or directory pattern being watched\n */\n _getWatchHelpers(path) {\n return new WatchHelper(path, this.options.followSymlinks, this);\n }\n // Directory helpers\n // -----------------\n /**\n * Provides directory tracking objects\n * @param directory path of the directory\n */\n _getWatchedDir(directory) {\n const dir = sysPath.resolve(directory);\n if (!this._watched.has(dir))\n this._watched.set(dir, new DirEntry(dir, this._boundRemove));\n return this._watched.get(dir);\n }\n // File helpers\n // ------------\n /**\n * Check for read permissions: https://stackoverflow.com/a/11781404/1358405\n */\n _hasReadPermissions(stats) {\n if (this.options.ignorePermissionErrors)\n return true;\n return Boolean(Number(stats.mode) & 0o400);\n }\n /**\n * Handles emitting unlink events for\n * files and directories, and via recursion, for\n * files and directories within directories that are unlinked\n * @param directory within which the following item is located\n * @param item base path of item/directory\n */\n _remove(directory, item, isDirectory) {\n // if what is being deleted is a directory, get that directory's paths\n // for recursive deleting and cleaning of watched object\n // if it is not a directory, nestedDirectoryChildren will be empty array\n const path = sysPath.join(directory, item);\n const fullPath = sysPath.resolve(path);\n isDirectory =\n isDirectory != null ? isDirectory : this._watched.has(path) || this._watched.has(fullPath);\n // prevent duplicate handling in case of arriving here nearly simultaneously\n // via multiple paths (such as _handleFile and _handleDir)\n if (!this._throttle('remove', path, 100))\n return;\n // if the only watched file is removed, watch for its return\n if (!isDirectory && this._watched.size === 1) {\n this.add(directory, item, true);\n }\n // This will create a new entry in the watched object in either case\n // so we got to do the directory check beforehand\n const wp = this._getWatchedDir(path);\n const nestedDirectoryChildren = wp.getChildren();\n // Recursively remove children directories / files.\n nestedDirectoryChildren.forEach((nested) => this._remove(path, nested));\n // Check if item was on the watched list and remove it\n const parent = this._getWatchedDir(directory);\n const wasTracked = parent.has(item);\n parent.remove(item);\n // Fixes issue #1042 -> Relative paths were detected and added as symlinks\n // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612),\n // but never removed from the map in case the path was deleted.\n // This leads to an incorrect state if the path was recreated:\n // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553\n if (this._symlinkPaths.has(fullPath)) {\n this._symlinkPaths.delete(fullPath);\n }\n // If we wait for this file to be fully written, cancel the wait.\n let relPath = path;\n if (this.options.cwd)\n relPath = sysPath.relative(this.options.cwd, path);\n if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) {\n const event = this._pendingWrites.get(relPath).cancelWait();\n if (event === handler_js_1.EVENTS.ADD)\n return;\n }\n // The Entry will either be a directory that just got removed\n // or a bogus entry to a file, in either case we have to remove it\n this._watched.delete(path);\n this._watched.delete(fullPath);\n const eventName = isDirectory ? handler_js_1.EVENTS.UNLINK_DIR : handler_js_1.EVENTS.UNLINK;\n if (wasTracked && !this._isIgnored(path))\n this._emit(eventName, path);\n // Avoid conflicts if we later create another file with the same name\n this._closePath(path);\n }\n /**\n * Closes all watchers for a path\n */\n _closePath(path) {\n this._closeFile(path);\n const dir = sysPath.dirname(path);\n this._getWatchedDir(dir).remove(sysPath.basename(path));\n }\n /**\n * Closes only file-specific watchers\n */\n _closeFile(path) {\n const closers = this._closers.get(path);\n if (!closers)\n return;\n closers.forEach((closer) => closer());\n this._closers.delete(path);\n }\n _addPathCloser(path, closer) {\n if (!closer)\n return;\n let list = this._closers.get(path);\n if (!list) {\n list = [];\n this._closers.set(path, list);\n }\n list.push(closer);\n }\n _readdirp(root, opts) {\n if (this.closed)\n return;\n const options = { type: handler_js_1.EVENTS.ALL, alwaysStat: true, lstat: true, ...opts, depth: 0 };\n let stream = (0, readdirp_1.readdirp)(root, options);\n this._streams.add(stream);\n stream.once(handler_js_1.STR_CLOSE, () => {\n stream = undefined;\n });\n stream.once(handler_js_1.STR_END, () => {\n if (stream) {\n this._streams.delete(stream);\n stream = undefined;\n }\n });\n return stream;\n }\n}\nexports.FSWatcher = FSWatcher;\n/**\n * Instantiates watcher with paths to be tracked.\n * @param paths file / directory paths\n * @param options opts, such as `atomic`, `awaitWriteFinish`, `ignored`, and others\n * @returns an instance of FSWatcher for chaining.\n * @example\n * const watcher = watch('.').on('all', (event, path) => { console.log(event, path); });\n * watch('.', { atomic: true, awaitWriteFinish: true, ignored: (f, stats) => stats?.isFile() && !f.endsWith('.js') })\n */\nfunction watch(paths, options = {}) {\n const watcher = new FSWatcher(options);\n watcher.add(paths);\n return watcher;\n}\nexports.default = { watch, FSWatcher };\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar ArchiveEntry = module.exports = function() {};\n\nArchiveEntry.prototype.getName = function() {};\n\nArchiveEntry.prototype.getSize = function() {};\n\nArchiveEntry.prototype.getLastModifiedDate = function() {};\n\nArchiveEntry.prototype.isDirectory = function() {};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar inherits = require('util').inherits;\nvar isStream = require('is-stream');\nvar Transform = require('readable-stream').Transform;\n\nvar ArchiveEntry = require('./archive-entry');\nvar util = require('../util');\n\nvar ArchiveOutputStream = module.exports = function(options) {\n if (!(this instanceof ArchiveOutputStream)) {\n return new ArchiveOutputStream(options);\n }\n\n Transform.call(this, options);\n\n this.offset = 0;\n this._archive = {\n finish: false,\n finished: false,\n processing: false\n };\n};\n\ninherits(ArchiveOutputStream, Transform);\n\nArchiveOutputStream.prototype._appendBuffer = function(zae, source, callback) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._appendStream = function(zae, source, callback) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._emitErrorCallback = function(err) {\n if (err) {\n this.emit('error', err);\n }\n};\n\nArchiveOutputStream.prototype._finish = function(ae) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._normalizeEntry = function(ae) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._transform = function(chunk, encoding, callback) {\n callback(null, chunk);\n};\n\nArchiveOutputStream.prototype.entry = function(ae, source, callback) {\n source = source || null;\n\n if (typeof callback !== 'function') {\n callback = this._emitErrorCallback.bind(this);\n }\n\n if (!(ae instanceof ArchiveEntry)) {\n callback(new Error('not a valid instance of ArchiveEntry'));\n return;\n }\n\n if (this._archive.finish || this._archive.finished) {\n callback(new Error('unacceptable entry after finish'));\n return;\n }\n\n if (this._archive.processing) {\n callback(new Error('already processing an entry'));\n return;\n }\n\n this._archive.processing = true;\n this._normalizeEntry(ae);\n this._entry = ae;\n\n source = util.normalizeInputSource(source);\n\n if (Buffer.isBuffer(source)) {\n this._appendBuffer(ae, source, callback);\n } else if (isStream(source)) {\n this._appendStream(ae, source, callback);\n } else {\n this._archive.processing = false;\n callback(new Error('input source must be valid Stream or Buffer instance'));\n return;\n }\n\n return this;\n};\n\nArchiveOutputStream.prototype.finish = function() {\n if (this._archive.processing) {\n this._archive.finish = true;\n return;\n }\n\n this._finish();\n};\n\nArchiveOutputStream.prototype.getBytesWritten = function() {\n return this.offset;\n};\n\nArchiveOutputStream.prototype.write = function(chunk, cb) {\n if (chunk) {\n this.offset += chunk.length;\n }\n\n return Transform.prototype.write.call(this, chunk, cb);\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nmodule.exports = {\n WORD: 4,\n DWORD: 8,\n EMPTY: Buffer.alloc(0),\n\n SHORT: 2,\n SHORT_MASK: 0xffff,\n SHORT_SHIFT: 16,\n SHORT_ZERO: Buffer.from(Array(2)),\n LONG: 4,\n LONG_ZERO: Buffer.from(Array(4)),\n\n MIN_VERSION_INITIAL: 10,\n MIN_VERSION_DATA_DESCRIPTOR: 20,\n MIN_VERSION_ZIP64: 45,\n VERSION_MADEBY: 45,\n\n METHOD_STORED: 0,\n METHOD_DEFLATED: 8,\n\n PLATFORM_UNIX: 3,\n PLATFORM_FAT: 0,\n\n SIG_LFH: 0x04034b50,\n SIG_DD: 0x08074b50,\n SIG_CFH: 0x02014b50,\n SIG_EOCD: 0x06054b50,\n SIG_ZIP64_EOCD: 0x06064B50,\n SIG_ZIP64_EOCD_LOC: 0x07064B50,\n\n ZIP64_MAGIC_SHORT: 0xffff,\n ZIP64_MAGIC: 0xffffffff,\n ZIP64_EXTRA_ID: 0x0001,\n\n ZLIB_NO_COMPRESSION: 0,\n ZLIB_BEST_SPEED: 1,\n ZLIB_BEST_COMPRESSION: 9,\n ZLIB_DEFAULT_COMPRESSION: -1,\n\n MODE_MASK: 0xFFF,\n DEFAULT_FILE_MODE: 33188, // 010644 = -rw-r--r-- = S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\n DEFAULT_DIR_MODE: 16877, // 040755 = drwxr-xr-x = S_IFDIR | S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH\n\n EXT_FILE_ATTR_DIR: 1106051088, // 010173200020 = drwxr-xr-x = (((S_IFDIR | 0755) << 16) | S_DOS_D)\n EXT_FILE_ATTR_FILE: 2175008800, // 020151000040 = -rw-r--r-- = (((S_IFREG | 0644) << 16) | S_DOS_A) >>> 0\n\n // Unix file types\n S_IFMT: 61440, // 0170000 type of file mask\n S_IFIFO: 4096, // 010000 named pipe (fifo)\n S_IFCHR: 8192, // 020000 character special\n S_IFDIR: 16384, // 040000 directory\n S_IFBLK: 24576, // 060000 block special\n S_IFREG: 32768, // 0100000 regular\n S_IFLNK: 40960, // 0120000 symbolic link\n S_IFSOCK: 49152, // 0140000 socket\n\n // DOS file type flags\n S_DOS_A: 32, // 040 Archive\n S_DOS_D: 16, // 020 Directory\n S_DOS_V: 8, // 010 Volume\n S_DOS_S: 4, // 04 System\n S_DOS_H: 2, // 02 Hidden\n S_DOS_R: 1 // 01 Read Only\n};\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar zipUtil = require('./util');\n\nvar DATA_DESCRIPTOR_FLAG = 1 << 3;\nvar ENCRYPTION_FLAG = 1 << 0;\nvar NUMBER_OF_SHANNON_FANO_TREES_FLAG = 1 << 2;\nvar SLIDING_DICTIONARY_SIZE_FLAG = 1 << 1;\nvar STRONG_ENCRYPTION_FLAG = 1 << 6;\nvar UFT8_NAMES_FLAG = 1 << 11;\n\nvar GeneralPurposeBit = module.exports = function() {\n if (!(this instanceof GeneralPurposeBit)) {\n return new GeneralPurposeBit();\n }\n\n this.descriptor = false;\n this.encryption = false;\n this.utf8 = false;\n this.numberOfShannonFanoTrees = 0;\n this.strongEncryption = false;\n this.slidingDictionarySize = 0;\n\n return this;\n};\n\nGeneralPurposeBit.prototype.encode = function() {\n return zipUtil.getShortBytes(\n (this.descriptor ? DATA_DESCRIPTOR_FLAG : 0) |\n (this.utf8 ? UFT8_NAMES_FLAG : 0) |\n (this.encryption ? ENCRYPTION_FLAG : 0) |\n (this.strongEncryption ? STRONG_ENCRYPTION_FLAG : 0)\n );\n};\n\nGeneralPurposeBit.prototype.parse = function(buf, offset) {\n var flag = zipUtil.getShortBytesValue(buf, offset);\n var gbp = new GeneralPurposeBit();\n\n gbp.useDataDescriptor((flag & DATA_DESCRIPTOR_FLAG) !== 0);\n gbp.useUTF8ForNames((flag & UFT8_NAMES_FLAG) !== 0);\n gbp.useStrongEncryption((flag & STRONG_ENCRYPTION_FLAG) !== 0);\n gbp.useEncryption((flag & ENCRYPTION_FLAG) !== 0);\n gbp.setSlidingDictionarySize((flag & SLIDING_DICTIONARY_SIZE_FLAG) !== 0 ? 8192 : 4096);\n gbp.setNumberOfShannonFanoTrees((flag & NUMBER_OF_SHANNON_FANO_TREES_FLAG) !== 0 ? 3 : 2);\n\n return gbp;\n};\n\nGeneralPurposeBit.prototype.setNumberOfShannonFanoTrees = function(n) {\n this.numberOfShannonFanoTrees = n;\n};\n\nGeneralPurposeBit.prototype.getNumberOfShannonFanoTrees = function() {\n return this.numberOfShannonFanoTrees;\n};\n\nGeneralPurposeBit.prototype.setSlidingDictionarySize = function(n) {\n this.slidingDictionarySize = n;\n};\n\nGeneralPurposeBit.prototype.getSlidingDictionarySize = function() {\n return this.slidingDictionarySize;\n};\n\nGeneralPurposeBit.prototype.useDataDescriptor = function(b) {\n this.descriptor = b;\n};\n\nGeneralPurposeBit.prototype.usesDataDescriptor = function() {\n return this.descriptor;\n};\n\nGeneralPurposeBit.prototype.useEncryption = function(b) {\n this.encryption = b;\n};\n\nGeneralPurposeBit.prototype.usesEncryption = function() {\n return this.encryption;\n};\n\nGeneralPurposeBit.prototype.useStrongEncryption = function(b) {\n this.strongEncryption = b;\n};\n\nGeneralPurposeBit.prototype.usesStrongEncryption = function() {\n return this.strongEncryption;\n};\n\nGeneralPurposeBit.prototype.useUTF8ForNames = function(b) {\n this.utf8 = b;\n};\n\nGeneralPurposeBit.prototype.usesUTF8ForNames = function() {\n return this.utf8;\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nmodule.exports = {\n /**\n * Bits used for permissions (and sticky bit)\n */\n PERM_MASK: 4095, // 07777\n\n /**\n * Bits used to indicate the filesystem object type.\n */\n FILE_TYPE_FLAG: 61440, // 0170000\n\n /**\n * Indicates symbolic links.\n */\n LINK_FLAG: 40960, // 0120000\n\n /**\n * Indicates plain files.\n */\n FILE_FLAG: 32768, // 0100000\n\n /**\n * Indicates directories.\n */\n DIR_FLAG: 16384, // 040000\n\n // ----------------------------------------------------------\n // somewhat arbitrary choices that are quite common for shared\n // installations\n // -----------------------------------------------------------\n\n /**\n * Default permissions for symbolic links.\n */\n DEFAULT_LINK_PERM: 511, // 0777\n\n /**\n * Default permissions for directories.\n */\n DEFAULT_DIR_PERM: 493, // 0755\n\n /**\n * Default permissions for plain files.\n */\n DEFAULT_FILE_PERM: 420 // 0644\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar util = module.exports = {};\n\nutil.dateToDos = function(d, forceLocalTime) {\n forceLocalTime = forceLocalTime || false;\n\n var year = forceLocalTime ? d.getFullYear() : d.getUTCFullYear();\n\n if (year < 1980) {\n return 2162688; // 1980-1-1 00:00:00\n } else if (year >= 2044) {\n return 2141175677; // 2043-12-31 23:59:58\n }\n\n var val = {\n year: year,\n month: forceLocalTime ? d.getMonth() : d.getUTCMonth(),\n date: forceLocalTime ? d.getDate() : d.getUTCDate(),\n hours: forceLocalTime ? d.getHours() : d.getUTCHours(),\n minutes: forceLocalTime ? d.getMinutes() : d.getUTCMinutes(),\n seconds: forceLocalTime ? d.getSeconds() : d.getUTCSeconds()\n };\n\n return ((val.year - 1980) << 25) | ((val.month + 1) << 21) | (val.date << 16) |\n (val.hours << 11) | (val.minutes << 5) | (val.seconds / 2);\n};\n\nutil.dosToDate = function(dos) {\n return new Date(((dos >> 25) & 0x7f) + 1980, ((dos >> 21) & 0x0f) - 1, (dos >> 16) & 0x1f, (dos >> 11) & 0x1f, (dos >> 5) & 0x3f, (dos & 0x1f) << 1);\n};\n\nutil.fromDosTime = function(buf) {\n return util.dosToDate(buf.readUInt32LE(0));\n};\n\nutil.getEightBytes = function(v) {\n var buf = Buffer.alloc(8);\n buf.writeUInt32LE(v % 0x0100000000, 0);\n buf.writeUInt32LE((v / 0x0100000000) | 0, 4);\n\n return buf;\n};\n\nutil.getShortBytes = function(v) {\n var buf = Buffer.alloc(2);\n buf.writeUInt16LE((v & 0xFFFF) >>> 0, 0);\n\n return buf;\n};\n\nutil.getShortBytesValue = function(buf, offset) {\n return buf.readUInt16LE(offset);\n};\n\nutil.getLongBytes = function(v) {\n var buf = Buffer.alloc(4);\n buf.writeUInt32LE((v & 0xFFFFFFFF) >>> 0, 0);\n\n return buf;\n};\n\nutil.getLongBytesValue = function(buf, offset) {\n return buf.readUInt32LE(offset);\n};\n\nutil.toDosTime = function(d) {\n return util.getLongBytes(util.dateToDos(d));\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar inherits = require('util').inherits;\nvar normalizePath = require('normalize-path');\n\nvar ArchiveEntry = require('../archive-entry');\nvar GeneralPurposeBit = require('./general-purpose-bit');\nvar UnixStat = require('./unix-stat');\n\nvar constants = require('./constants');\nvar zipUtil = require('./util');\n\nvar ZipArchiveEntry = module.exports = function(name) {\n if (!(this instanceof ZipArchiveEntry)) {\n return new ZipArchiveEntry(name);\n }\n\n ArchiveEntry.call(this);\n\n this.platform = constants.PLATFORM_FAT;\n this.method = -1;\n\n this.name = null;\n this.size = 0;\n this.csize = 0;\n this.gpb = new GeneralPurposeBit();\n this.crc = 0;\n this.time = -1;\n\n this.minver = constants.MIN_VERSION_INITIAL;\n this.mode = -1;\n this.extra = null;\n this.exattr = 0;\n this.inattr = 0;\n this.comment = null;\n\n if (name) {\n this.setName(name);\n }\n};\n\ninherits(ZipArchiveEntry, ArchiveEntry);\n\n/**\n * Returns the extra fields related to the entry.\n *\n * @returns {Buffer}\n */\nZipArchiveEntry.prototype.getCentralDirectoryExtra = function() {\n return this.getExtra();\n};\n\n/**\n * Returns the comment set for the entry.\n *\n * @returns {string}\n */\nZipArchiveEntry.prototype.getComment = function() {\n return this.comment !== null ? this.comment : '';\n};\n\n/**\n * Returns the compressed size of the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getCompressedSize = function() {\n return this.csize;\n};\n\n/**\n * Returns the CRC32 digest for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getCrc = function() {\n return this.crc;\n};\n\n/**\n * Returns the external file attributes for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getExternalAttributes = function() {\n return this.exattr;\n};\n\n/**\n * Returns the extra fields related to the entry.\n *\n * @returns {Buffer}\n */\nZipArchiveEntry.prototype.getExtra = function() {\n return this.extra !== null ? this.extra : constants.EMPTY;\n};\n\n/**\n * Returns the general purpose bits related to the entry.\n *\n * @returns {GeneralPurposeBit}\n */\nZipArchiveEntry.prototype.getGeneralPurposeBit = function() {\n return this.gpb;\n};\n\n/**\n * Returns the internal file attributes for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getInternalAttributes = function() {\n return this.inattr;\n};\n\n/**\n * Returns the last modified date of the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getLastModifiedDate = function() {\n return this.getTime();\n};\n\n/**\n * Returns the extra fields related to the entry.\n *\n * @returns {Buffer}\n */\nZipArchiveEntry.prototype.getLocalFileDataExtra = function() {\n return this.getExtra();\n};\n\n/**\n * Returns the compression method used on the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getMethod = function() {\n return this.method;\n};\n\n/**\n * Returns the filename of the entry.\n *\n * @returns {string}\n */\nZipArchiveEntry.prototype.getName = function() {\n return this.name;\n};\n\n/**\n * Returns the platform on which the entry was made.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getPlatform = function() {\n return this.platform;\n};\n\n/**\n * Returns the size of the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getSize = function() {\n return this.size;\n};\n\n/**\n * Returns a date object representing the last modified date of the entry.\n *\n * @returns {number|Date}\n */\nZipArchiveEntry.prototype.getTime = function() {\n return this.time !== -1 ? zipUtil.dosToDate(this.time) : -1;\n};\n\n/**\n * Returns the DOS timestamp for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getTimeDos = function() {\n return this.time !== -1 ? this.time : 0;\n};\n\n/**\n * Returns the UNIX file permissions for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getUnixMode = function() {\n return this.platform !== constants.PLATFORM_UNIX ? 0 : ((this.getExternalAttributes() >> constants.SHORT_SHIFT) & constants.SHORT_MASK);\n};\n\n/**\n * Returns the version of ZIP needed to extract the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getVersionNeededToExtract = function() {\n return this.minver;\n};\n\n/**\n * Sets the comment of the entry.\n *\n * @param comment\n */\nZipArchiveEntry.prototype.setComment = function(comment) {\n if (Buffer.byteLength(comment) !== comment.length) {\n this.getGeneralPurposeBit().useUTF8ForNames(true);\n }\n\n this.comment = comment;\n};\n\n/**\n * Sets the compressed size of the entry.\n *\n * @param size\n */\nZipArchiveEntry.prototype.setCompressedSize = function(size) {\n if (size < 0) {\n throw new Error('invalid entry compressed size');\n }\n\n this.csize = size;\n};\n\n/**\n * Sets the checksum of the entry.\n *\n * @param crc\n */\nZipArchiveEntry.prototype.setCrc = function(crc) {\n if (crc < 0) {\n throw new Error('invalid entry crc32');\n }\n\n this.crc = crc;\n};\n\n/**\n * Sets the external file attributes of the entry.\n *\n * @param attr\n */\nZipArchiveEntry.prototype.setExternalAttributes = function(attr) {\n this.exattr = attr >>> 0;\n};\n\n/**\n * Sets the extra fields related to the entry.\n *\n * @param extra\n */\nZipArchiveEntry.prototype.setExtra = function(extra) {\n this.extra = extra;\n};\n\n/**\n * Sets the general purpose bits related to the entry.\n *\n * @param gpb\n */\nZipArchiveEntry.prototype.setGeneralPurposeBit = function(gpb) {\n if (!(gpb instanceof GeneralPurposeBit)) {\n throw new Error('invalid entry GeneralPurposeBit');\n }\n\n this.gpb = gpb;\n};\n\n/**\n * Sets the internal file attributes of the entry.\n *\n * @param attr\n */\nZipArchiveEntry.prototype.setInternalAttributes = function(attr) {\n this.inattr = attr;\n};\n\n/**\n * Sets the compression method of the entry.\n *\n * @param method\n */\nZipArchiveEntry.prototype.setMethod = function(method) {\n if (method < 0) {\n throw new Error('invalid entry compression method');\n }\n\n this.method = method;\n};\n\n/**\n * Sets the name of the entry.\n *\n * @param name\n * @param prependSlash\n */\nZipArchiveEntry.prototype.setName = function(name, prependSlash = false) {\n name = normalizePath(name, false)\n .replace(/^\\w+:/, '')\n .replace(/^(\\.\\.\\/|\\/)+/, '');\n\n if (prependSlash) {\n name = `/${name}`;\n }\n\n if (Buffer.byteLength(name) !== name.length) {\n this.getGeneralPurposeBit().useUTF8ForNames(true);\n }\n\n this.name = name;\n};\n\n/**\n * Sets the platform on which the entry was made.\n *\n * @param platform\n */\nZipArchiveEntry.prototype.setPlatform = function(platform) {\n this.platform = platform;\n};\n\n/**\n * Sets the size of the entry.\n *\n * @param size\n */\nZipArchiveEntry.prototype.setSize = function(size) {\n if (size < 0) {\n throw new Error('invalid entry size');\n }\n\n this.size = size;\n};\n\n/**\n * Sets the time of the entry.\n *\n * @param time\n * @param forceLocalTime\n */\nZipArchiveEntry.prototype.setTime = function(time, forceLocalTime) {\n if (!(time instanceof Date)) {\n throw new Error('invalid entry time');\n }\n\n this.time = zipUtil.dateToDos(time, forceLocalTime);\n};\n\n/**\n * Sets the UNIX file permissions for the entry.\n *\n * @param mode\n */\nZipArchiveEntry.prototype.setUnixMode = function(mode) {\n mode |= this.isDirectory() ? constants.S_IFDIR : constants.S_IFREG;\n\n var extattr = 0;\n extattr |= (mode << constants.SHORT_SHIFT) | (this.isDirectory() ? constants.S_DOS_D : constants.S_DOS_A);\n\n this.setExternalAttributes(extattr);\n this.mode = mode & constants.MODE_MASK;\n this.platform = constants.PLATFORM_UNIX;\n};\n\n/**\n * Sets the version of ZIP needed to extract this entry.\n *\n * @param minver\n */\nZipArchiveEntry.prototype.setVersionNeededToExtract = function(minver) {\n this.minver = minver;\n};\n\n/**\n * Returns true if this entry represents a directory.\n *\n * @returns {boolean}\n */\nZipArchiveEntry.prototype.isDirectory = function() {\n return this.getName().slice(-1) === '/';\n};\n\n/**\n * Returns true if this entry represents a unix symlink,\n * in which case the entry's content contains the target path\n * for the symlink.\n *\n * @returns {boolean}\n */\nZipArchiveEntry.prototype.isUnixSymlink = function() {\n return (this.getUnixMode() & UnixStat.FILE_TYPE_FLAG) === UnixStat.LINK_FLAG;\n};\n\n/**\n * Returns true if this entry is using the ZIP64 extension of ZIP.\n *\n * @returns {boolean}\n */\nZipArchiveEntry.prototype.isZip64 = function() {\n return this.csize > constants.ZIP64_MAGIC || this.size > constants.ZIP64_MAGIC;\n};\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar inherits = require('util').inherits;\nvar crc32 = require('crc-32');\nvar {CRC32Stream} = require('crc32-stream');\nvar {DeflateCRC32Stream} = require('crc32-stream');\n\nvar ArchiveOutputStream = require('../archive-output-stream');\nvar ZipArchiveEntry = require('./zip-archive-entry');\nvar GeneralPurposeBit = require('./general-purpose-bit');\n\nvar constants = require('./constants');\nvar util = require('../../util');\nvar zipUtil = require('./util');\n\nvar ZipArchiveOutputStream = module.exports = function(options) {\n if (!(this instanceof ZipArchiveOutputStream)) {\n return new ZipArchiveOutputStream(options);\n }\n\n options = this.options = this._defaults(options);\n\n ArchiveOutputStream.call(this, options);\n\n this._entry = null;\n this._entries = [];\n this._archive = {\n centralLength: 0,\n centralOffset: 0,\n comment: '',\n finish: false,\n finished: false,\n processing: false,\n forceZip64: options.forceZip64,\n forceLocalTime: options.forceLocalTime\n };\n};\n\ninherits(ZipArchiveOutputStream, ArchiveOutputStream);\n\nZipArchiveOutputStream.prototype._afterAppend = function(ae) {\n this._entries.push(ae);\n\n if (ae.getGeneralPurposeBit().usesDataDescriptor()) {\n this._writeDataDescriptor(ae);\n }\n\n this._archive.processing = false;\n this._entry = null;\n\n if (this._archive.finish && !this._archive.finished) {\n this._finish();\n }\n};\n\nZipArchiveOutputStream.prototype._appendBuffer = function(ae, source, callback) {\n if (source.length === 0) {\n ae.setMethod(constants.METHOD_STORED);\n }\n\n var method = ae.getMethod();\n\n if (method === constants.METHOD_STORED) {\n ae.setSize(source.length);\n ae.setCompressedSize(source.length);\n ae.setCrc(crc32.buf(source) >>> 0);\n }\n\n this._writeLocalFileHeader(ae);\n\n if (method === constants.METHOD_STORED) {\n this.write(source);\n this._afterAppend(ae);\n callback(null, ae);\n return;\n } else if (method === constants.METHOD_DEFLATED) {\n this._smartStream(ae, callback).end(source);\n return;\n } else {\n callback(new Error('compression method ' + method + ' not implemented'));\n return;\n }\n};\n\nZipArchiveOutputStream.prototype._appendStream = function(ae, source, callback) {\n ae.getGeneralPurposeBit().useDataDescriptor(true);\n ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR);\n\n this._writeLocalFileHeader(ae);\n\n var smart = this._smartStream(ae, callback);\n source.once('error', function(err) {\n smart.emit('error', err);\n smart.end();\n })\n source.pipe(smart);\n};\n\nZipArchiveOutputStream.prototype._defaults = function(o) {\n if (typeof o !== 'object') {\n o = {};\n }\n\n if (typeof o.zlib !== 'object') {\n o.zlib = {};\n }\n\n if (typeof o.zlib.level !== 'number') {\n o.zlib.level = constants.ZLIB_BEST_SPEED;\n }\n\n o.forceZip64 = !!o.forceZip64;\n o.forceLocalTime = !!o.forceLocalTime;\n\n return o;\n};\n\nZipArchiveOutputStream.prototype._finish = function() {\n this._archive.centralOffset = this.offset;\n\n this._entries.forEach(function(ae) {\n this._writeCentralFileHeader(ae);\n }.bind(this));\n\n this._archive.centralLength = this.offset - this._archive.centralOffset;\n\n if (this.isZip64()) {\n this._writeCentralDirectoryZip64();\n }\n\n this._writeCentralDirectoryEnd();\n\n this._archive.processing = false;\n this._archive.finish = true;\n this._archive.finished = true;\n this.end();\n};\n\nZipArchiveOutputStream.prototype._normalizeEntry = function(ae) {\n if (ae.getMethod() === -1) {\n ae.setMethod(constants.METHOD_DEFLATED);\n }\n\n if (ae.getMethod() === constants.METHOD_DEFLATED) {\n ae.getGeneralPurposeBit().useDataDescriptor(true);\n ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR);\n }\n\n if (ae.getTime() === -1) {\n ae.setTime(new Date(), this._archive.forceLocalTime);\n }\n\n ae._offsets = {\n file: 0,\n data: 0,\n contents: 0,\n };\n};\n\nZipArchiveOutputStream.prototype._smartStream = function(ae, callback) {\n var deflate = ae.getMethod() === constants.METHOD_DEFLATED;\n var process = deflate ? new DeflateCRC32Stream(this.options.zlib) : new CRC32Stream();\n var error = null;\n\n function handleStuff() {\n var digest = process.digest().readUInt32BE(0);\n ae.setCrc(digest);\n ae.setSize(process.size());\n ae.setCompressedSize(process.size(true));\n this._afterAppend(ae);\n callback(error, ae);\n }\n\n process.once('end', handleStuff.bind(this));\n process.once('error', function(err) {\n error = err;\n });\n\n process.pipe(this, { end: false });\n\n return process;\n};\n\nZipArchiveOutputStream.prototype._writeCentralDirectoryEnd = function() {\n var records = this._entries.length;\n var size = this._archive.centralLength;\n var offset = this._archive.centralOffset;\n\n if (this.isZip64()) {\n records = constants.ZIP64_MAGIC_SHORT;\n size = constants.ZIP64_MAGIC;\n offset = constants.ZIP64_MAGIC;\n }\n\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_EOCD));\n\n // disk numbers\n this.write(constants.SHORT_ZERO);\n this.write(constants.SHORT_ZERO);\n\n // number of entries\n this.write(zipUtil.getShortBytes(records));\n this.write(zipUtil.getShortBytes(records));\n\n // length and location of CD\n this.write(zipUtil.getLongBytes(size));\n this.write(zipUtil.getLongBytes(offset));\n\n // archive comment\n var comment = this.getComment();\n var commentLength = Buffer.byteLength(comment);\n this.write(zipUtil.getShortBytes(commentLength));\n this.write(comment);\n};\n\nZipArchiveOutputStream.prototype._writeCentralDirectoryZip64 = function() {\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD));\n\n // size of the ZIP64 EOCD record\n this.write(zipUtil.getEightBytes(44));\n\n // version made by\n this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64));\n\n // version to extract\n this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64));\n\n // disk numbers\n this.write(constants.LONG_ZERO);\n this.write(constants.LONG_ZERO);\n\n // number of entries\n this.write(zipUtil.getEightBytes(this._entries.length));\n this.write(zipUtil.getEightBytes(this._entries.length));\n\n // length and location of CD\n this.write(zipUtil.getEightBytes(this._archive.centralLength));\n this.write(zipUtil.getEightBytes(this._archive.centralOffset));\n\n // extensible data sector\n // not implemented at this time\n\n // end of central directory locator\n this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD_LOC));\n\n // disk number holding the ZIP64 EOCD record\n this.write(constants.LONG_ZERO);\n\n // relative offset of the ZIP64 EOCD record\n this.write(zipUtil.getEightBytes(this._archive.centralOffset + this._archive.centralLength));\n\n // total number of disks\n this.write(zipUtil.getLongBytes(1));\n};\n\nZipArchiveOutputStream.prototype._writeCentralFileHeader = function(ae) {\n var gpb = ae.getGeneralPurposeBit();\n var method = ae.getMethod();\n var fileOffset = ae._offsets.file;\n\n var size = ae.getSize();\n var compressedSize = ae.getCompressedSize();\n\n if (ae.isZip64() || fileOffset > constants.ZIP64_MAGIC) {\n size = constants.ZIP64_MAGIC;\n compressedSize = constants.ZIP64_MAGIC;\n fileOffset = constants.ZIP64_MAGIC;\n\n ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64);\n\n var extraBuf = Buffer.concat([\n zipUtil.getShortBytes(constants.ZIP64_EXTRA_ID),\n zipUtil.getShortBytes(24),\n zipUtil.getEightBytes(ae.getSize()),\n zipUtil.getEightBytes(ae.getCompressedSize()),\n zipUtil.getEightBytes(ae._offsets.file)\n ], 28);\n\n ae.setExtra(extraBuf);\n }\n\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_CFH));\n\n // version made by\n this.write(zipUtil.getShortBytes((ae.getPlatform() << 8) | constants.VERSION_MADEBY));\n\n // version to extract and general bit flag\n this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract()));\n this.write(gpb.encode());\n\n // compression method\n this.write(zipUtil.getShortBytes(method));\n\n // datetime\n this.write(zipUtil.getLongBytes(ae.getTimeDos()));\n\n // crc32 checksum\n this.write(zipUtil.getLongBytes(ae.getCrc()));\n\n // sizes\n this.write(zipUtil.getLongBytes(compressedSize));\n this.write(zipUtil.getLongBytes(size));\n\n var name = ae.getName();\n var comment = ae.getComment();\n var extra = ae.getCentralDirectoryExtra();\n\n if (gpb.usesUTF8ForNames()) {\n name = Buffer.from(name);\n comment = Buffer.from(comment);\n }\n\n // name length\n this.write(zipUtil.getShortBytes(name.length));\n\n // extra length\n this.write(zipUtil.getShortBytes(extra.length));\n\n // comments length\n this.write(zipUtil.getShortBytes(comment.length));\n\n // disk number start\n this.write(constants.SHORT_ZERO);\n\n // internal attributes\n this.write(zipUtil.getShortBytes(ae.getInternalAttributes()));\n\n // external attributes\n this.write(zipUtil.getLongBytes(ae.getExternalAttributes()));\n\n // relative offset of LFH\n this.write(zipUtil.getLongBytes(fileOffset));\n\n // name\n this.write(name);\n\n // extra\n this.write(extra);\n\n // comment\n this.write(comment);\n};\n\nZipArchiveOutputStream.prototype._writeDataDescriptor = function(ae) {\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_DD));\n\n // crc32 checksum\n this.write(zipUtil.getLongBytes(ae.getCrc()));\n\n // sizes\n if (ae.isZip64()) {\n this.write(zipUtil.getEightBytes(ae.getCompressedSize()));\n this.write(zipUtil.getEightBytes(ae.getSize()));\n } else {\n this.write(zipUtil.getLongBytes(ae.getCompressedSize()));\n this.write(zipUtil.getLongBytes(ae.getSize()));\n }\n};\n\nZipArchiveOutputStream.prototype._writeLocalFileHeader = function(ae) {\n var gpb = ae.getGeneralPurposeBit();\n var method = ae.getMethod();\n var name = ae.getName();\n var extra = ae.getLocalFileDataExtra();\n\n if (ae.isZip64()) {\n gpb.useDataDescriptor(true);\n ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64);\n }\n\n if (gpb.usesUTF8ForNames()) {\n name = Buffer.from(name);\n }\n\n ae._offsets.file = this.offset;\n\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_LFH));\n\n // version to extract and general bit flag\n this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract()));\n this.write(gpb.encode());\n\n // compression method\n this.write(zipUtil.getShortBytes(method));\n\n // datetime\n this.write(zipUtil.getLongBytes(ae.getTimeDos()));\n\n ae._offsets.data = this.offset;\n\n // crc32 checksum and sizes\n if (gpb.usesDataDescriptor()) {\n this.write(constants.LONG_ZERO);\n this.write(constants.LONG_ZERO);\n this.write(constants.LONG_ZERO);\n } else {\n this.write(zipUtil.getLongBytes(ae.getCrc()));\n this.write(zipUtil.getLongBytes(ae.getCompressedSize()));\n this.write(zipUtil.getLongBytes(ae.getSize()));\n }\n\n // name length\n this.write(zipUtil.getShortBytes(name.length));\n\n // extra length\n this.write(zipUtil.getShortBytes(extra.length));\n\n // name\n this.write(name);\n\n // extra\n this.write(extra);\n\n ae._offsets.contents = this.offset;\n};\n\nZipArchiveOutputStream.prototype.getComment = function(comment) {\n return this._archive.comment !== null ? this._archive.comment : '';\n};\n\nZipArchiveOutputStream.prototype.isZip64 = function() {\n return this._archive.forceZip64 || this._entries.length > constants.ZIP64_MAGIC_SHORT || this._archive.centralLength > constants.ZIP64_MAGIC || this._archive.centralOffset > constants.ZIP64_MAGIC;\n};\n\nZipArchiveOutputStream.prototype.setComment = function(comment) {\n this._archive.comment = comment;\n};\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nmodule.exports = {\n ArchiveEntry: require('./archivers/archive-entry'),\n ZipArchiveEntry: require('./archivers/zip/zip-archive-entry'),\n ArchiveOutputStream: require('./archivers/archive-output-stream'),\n ZipArchiveOutputStream: require('./archivers/zip/zip-archive-output-stream')\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar Stream = require('stream').Stream;\nvar PassThrough = require('readable-stream').PassThrough;\nvar isStream = require('is-stream');\n\nvar util = module.exports = {};\n\nutil.normalizeInputSource = function(source) {\n if (source === null) {\n return Buffer.alloc(0);\n } else if (typeof source === 'string') {\n return Buffer.from(source);\n } else if (isStream(source) && !source._readableState) {\n var normalized = new PassThrough();\n source.pipe(normalized);\n\n return normalized;\n }\n\n return source;\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tif(typeof DO_NOT_EXPORT_CRC === 'undefined') {\n\t\tif('object' === typeof exports) {\n\t\t\tfactory(exports);\n\t\t} else if ('function' === typeof define && define.amd) {\n\t\t\tdefine(function () {\n\t\t\t\tvar module = {};\n\t\t\t\tfactory(module);\n\t\t\t\treturn module;\n\t\t\t});\n\t\t} else {\n\t\t\tfactory(CRC32 = {});\n\t\t}\n\t} else {\n\t\tfactory(CRC32 = {});\n\t}\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.2';\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B, seed) {\n\tvar C = seed ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\n// $FlowIgnore\nCRC32.bstr = crc32_bstr;\n// $FlowIgnore\nCRC32.buf = crc32_buf;\n// $FlowIgnore\nCRC32.str = crc32_str;\n}));\n","/**\n * node-crc32-stream\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-crc32-stream/blob/master/LICENSE-MIT\n */\n\n 'use strict';\n\nconst {Transform} = require('readable-stream');\n\nconst crc32 = require('crc-32');\n\nclass CRC32Stream extends Transform {\n constructor(options) {\n super(options);\n this.checksum = Buffer.allocUnsafe(4);\n this.checksum.writeInt32BE(0, 0);\n\n this.rawSize = 0;\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk) {\n this.checksum = crc32.buf(chunk, this.checksum) >>> 0;\n this.rawSize += chunk.length;\n }\n\n callback(null, chunk);\n }\n\n digest(encoding) {\n const checksum = Buffer.allocUnsafe(4);\n checksum.writeUInt32BE(this.checksum >>> 0, 0);\n return encoding ? checksum.toString(encoding) : checksum;\n }\n\n hex() {\n return this.digest('hex').toUpperCase();\n }\n\n size() {\n return this.rawSize;\n }\n}\n\nmodule.exports = CRC32Stream;\n","/**\n * node-crc32-stream\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-crc32-stream/blob/master/LICENSE-MIT\n */\n\n'use strict';\n\nconst {DeflateRaw} = require('zlib');\n\nconst crc32 = require('crc-32');\n\nclass DeflateCRC32Stream extends DeflateRaw {\n constructor(options) {\n super(options);\n\n this.checksum = Buffer.allocUnsafe(4);\n this.checksum.writeInt32BE(0, 0);\n\n this.rawSize = 0;\n this.compressedSize = 0;\n }\n\n push(chunk, encoding) {\n if (chunk) {\n this.compressedSize += chunk.length;\n }\n\n return super.push(chunk, encoding);\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk) {\n this.checksum = crc32.buf(chunk, this.checksum) >>> 0;\n this.rawSize += chunk.length;\n }\n\n super._transform(chunk, encoding, callback)\n }\n\n digest(encoding) {\n const checksum = Buffer.allocUnsafe(4);\n checksum.writeUInt32BE(this.checksum >>> 0, 0);\n return encoding ? checksum.toString(encoding) : checksum;\n }\n\n hex() {\n return this.digest('hex').toUpperCase();\n }\n\n size(compressed = false) {\n if (compressed) {\n return this.compressedSize;\n } else {\n return this.rawSize;\n }\n }\n}\n\nmodule.exports = DeflateCRC32Stream;\n","/**\n * node-crc32-stream\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-crc32-stream/blob/master/LICENSE-MIT\n */\n\n'use strict';\n\nmodule.exports = {\n CRC32Stream: require('./crc32-stream'),\n DeflateCRC32Stream: require('./deflate-crc32-stream')\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","module.exports = class FixedFIFO {\n constructor (hwm) {\n if (!(hwm > 0) || ((hwm - 1) & hwm) !== 0) throw new Error('Max size for a FixedFIFO should be a power of two')\n this.buffer = new Array(hwm)\n this.mask = hwm - 1\n this.top = 0\n this.btm = 0\n this.next = null\n }\n\n clear () {\n this.top = this.btm = 0\n this.next = null\n this.buffer.fill(undefined)\n }\n\n push (data) {\n if (this.buffer[this.top] !== undefined) return false\n this.buffer[this.top] = data\n this.top = (this.top + 1) & this.mask\n return true\n }\n\n shift () {\n const last = this.buffer[this.btm]\n if (last === undefined) return undefined\n this.buffer[this.btm] = undefined\n this.btm = (this.btm + 1) & this.mask\n return last\n }\n\n peek () {\n return this.buffer[this.btm]\n }\n\n isEmpty () {\n return this.buffer[this.btm] === undefined\n }\n}\n","const FixedFIFO = require('./fixed-size')\n\nmodule.exports = class FastFIFO {\n constructor (hwm) {\n this.hwm = hwm || 16\n this.head = new FixedFIFO(this.hwm)\n this.tail = this.head\n this.length = 0\n }\n\n clear () {\n this.head = this.tail\n this.head.clear()\n this.length = 0\n }\n\n push (val) {\n this.length++\n if (!this.head.push(val)) {\n const prev = this.head\n this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length)\n this.head.push(val)\n }\n }\n\n shift () {\n if (this.length !== 0) this.length--\n const val = this.tail.shift()\n if (val === undefined && this.tail.next) {\n const next = this.tail.next\n this.tail.next = null\n this.tail = next\n return this.tail.shift()\n }\n\n return val\n }\n\n peek () {\n const val = this.tail.peek()\n if (val === undefined && this.tail.next) return this.tail.next.peek()\n return val\n }\n\n isEmpty () {\n return this.length === 0\n }\n}\n","\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, async_1.default, options);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n FastGlob.glob = FastGlob;\n FastGlob.globSync = sync;\n FastGlob.globStream = stream;\n FastGlob.async = FastGlob;\n function sync(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, sync_1.default, options);\n return utils.array.flatten(works);\n }\n FastGlob.sync = sync;\n function stream(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, stream_1.default, options);\n /**\n * The stream returned by the provider cannot work with an asynchronous iterator.\n * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n * This affects performance (+25%). I don't see best solution right now.\n */\n return utils.stream.merge(works);\n }\n FastGlob.stream = stream;\n function generateTasks(source, options) {\n assertPatternsInput(source);\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n return taskManager.generate(patterns, settings);\n }\n FastGlob.generateTasks = generateTasks;\n function isDynamicPattern(source, options) {\n assertPatternsInput(source);\n const settings = new settings_1.default(options);\n return utils.pattern.isDynamicPattern(source, settings);\n }\n FastGlob.isDynamicPattern = isDynamicPattern;\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escape(source);\n }\n FastGlob.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPathToPattern(source);\n }\n FastGlob.convertPathToPattern = convertPathToPattern;\n let posix;\n (function (posix) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapePosixPath(source);\n }\n posix.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPosixPathToPattern(source);\n }\n posix.convertPathToPattern = convertPathToPattern;\n })(posix = FastGlob.posix || (FastGlob.posix = {}));\n let win32;\n (function (win32) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapeWindowsPath(source);\n }\n win32.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertWindowsPathToPattern(source);\n }\n win32.convertPathToPattern = convertPathToPattern;\n })(win32 = FastGlob.win32 || (FastGlob.win32 = {}));\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n const source = [].concat(input);\n const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n }\n}\nmodule.exports = FastGlob;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(input, settings) {\n const patterns = processPatterns(input, settings);\n const ignore = processPatterns(settings.ignore, settings);\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\nfunction processPatterns(input, settings) {\n let patterns = input;\n /**\n * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry\n * and some problems with the micromatch package (see fast-glob issues: #365, #394).\n *\n * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown\n * in matching in the case of a large set of patterns after expansion.\n */\n if (settings.braceExpansion) {\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n }\n /**\n * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used\n * at any nesting level.\n *\n * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change\n * the pattern in the filter before creating a regular expression. There is no need to change the patterns\n * in the application. Only on the input.\n */\n if (settings.baseNameMatch) {\n patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`);\n }\n /**\n * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion.\n */\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n}\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n /*\n * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n */\n if ('.' in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n }\n else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n }\n else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new async_1.default(this._settings);\n }\n async read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = await this.api(root, task, options);\n return entries.map((entry) => options.transform(entry));\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n /**\n * Avoid unnecessary depth calculations when it doesn't matter.\n */\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split('/').length;\n if (basePath === '') {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split('/').length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n}\nexports.default = DeepFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = new Map();\n }\n getFilter(positive, negative) {\n const [absoluteNegative, relativeNegative] = utils.pattern.partitionAbsoluteAndRelative(negative);\n const patterns = {\n positive: {\n all: utils.pattern.convertPatternsToRe(positive, this._micromatchOptions)\n },\n negative: {\n absolute: utils.pattern.convertPatternsToRe(absoluteNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })),\n relative: utils.pattern.convertPatternsToRe(relativeNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }))\n }\n };\n return (entry) => this._filter(entry, patterns);\n }\n _filter(entry, patterns) {\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n const isMatched = this._isMatchToPatternsSet(filepath, patterns, entry.dirent.isDirectory());\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(filepath);\n }\n return isMatched;\n }\n _isDuplicateEntry(filepath) {\n return this.index.has(filepath);\n }\n _createIndexRecord(filepath) {\n this.index.set(filepath, undefined);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isMatchToPatternsSet(filepath, patterns, isDirectory) {\n const isMatched = this._isMatchToPatterns(filepath, patterns.positive.all, isDirectory);\n if (!isMatched) {\n return false;\n }\n const isMatchedByRelativeNegative = this._isMatchToPatterns(filepath, patterns.negative.relative, isDirectory);\n if (isMatchedByRelativeNegative) {\n return false;\n }\n const isMatchedByAbsoluteNegative = this._isMatchToAbsoluteNegative(filepath, patterns.negative.absolute, isDirectory);\n if (isMatchedByAbsoluteNegative) {\n return false;\n }\n return true;\n }\n _isMatchToAbsoluteNegative(filepath, patternsRe, isDirectory) {\n if (patternsRe.length === 0) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n return this._isMatchToPatterns(fullpath, patternsRe, isDirectory);\n }\n _isMatchToPatterns(filepath, patternsRe, isDirectory) {\n if (patternsRe.length === 0) {\n return false;\n }\n // Trying to match files and directories by patterns.\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n // A pattern with a trailling slash can be used for directory matching.\n // To apply such pattern, we need to add a tralling slash to the path.\n if (!isMatched && isDirectory) {\n return utils.pattern.matchAny(filepath + '/', patternsRe);\n }\n return isMatched;\n }\n}\nexports.default = EntryFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n}\nexports.default = ErrorFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n for (const pattern of this._patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n}\nexports.default = Matcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split('/');\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n /**\n * In this case, the pattern has a globstar and we must read all directories unconditionally,\n * but only if the level has reached the end of the first group.\n *\n * fixtures/{a,b}/**\n * ^ true/false ^ always true\n */\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n}\nexports.default = PartialMatcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === '.' ? '' : task.base;\n return {\n basePath,\n pathSegmentSeparator: '/',\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n}\nexports.default = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const source = this.api(root, task, options);\n const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n source\n .once('error', (error) => destination.emit('error', error))\n .on('data', (entry) => destination.emit('data', options.transform(entry)))\n .once('end', () => destination.emit('end'));\n destination\n .once('close', () => source.destroy());\n return destination;\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = this.api(root, task, options);\n return entries.map(options.transform);\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += '/';\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n}\nexports.default = EntryTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nconst stream_1 = require(\"./stream\");\nclass ReaderAsync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkAsync = fsWalk.walk;\n this._readerStream = new stream_1.default(this._settings);\n }\n dynamic(root, options) {\n return new Promise((resolve, reject) => {\n this._walkAsync(root, options, (error, entries) => {\n if (error === null) {\n resolve(entries);\n }\n else {\n reject(error);\n }\n });\n });\n }\n async static(patterns, options) {\n const entries = [];\n const stream = this._readerStream.static(patterns, options);\n // After #235, replace it with an asynchronous iterator.\n return new Promise((resolve, reject) => {\n stream.once('error', reject);\n stream.on('data', (entry) => entries.push(entry));\n stream.once('end', () => resolve(entries));\n });\n }\n}\nexports.default = ReaderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root, options) {\n return this._walkStream(root, options);\n }\n static(patterns, options) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options)\n .then((entry) => {\n if (entry !== null && options.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n })\n .catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options) {\n return this._getStat(filepath)\n .then((stats) => this._makeEntry(stats, pattern))\n .catch((error) => {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve(stats) : reject(error);\n });\n });\n }\n}\nexports.default = ReaderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root, options) {\n return this._walkSync(root, options);\n }\n static(patterns, options) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options);\n if (entry === null || !options.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n }\n catch (error) {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n}\nexports.default = ReaderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n lstatSync: fs.lstatSync,\n stat: fs.stat,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n // Remove the cast to the array in the next major (#404).\n this.ignore = [].concat(this.ignore);\n }\n _getValue(option, value) {\n return option === undefined ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n }\n else {\n result[groupIndex].push(item);\n }\n }\n return result;\n}\nexports.splitWhen = splitWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst IS_WINDOWS_PLATFORM = os.platform() === 'win32';\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\n/**\n * All non-escaped special characters.\n * Posix: ()*?[]{|}, !+@ before (, ! at the beginning, \\\\ before non-special characters.\n * Windows: (){}[], !+@ before (, ! at the beginning.\n */\nconst POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\nconst WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()[\\]{}]|^!|[!+@](?=\\())/g;\n/**\n * The device path (\\\\.\\ or \\\\?\\).\n * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths\n */\nconst DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n/**\n * All backslashes except those escaping special characters.\n * Windows: !()+@{}\n * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\n */\nconst WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@[\\]{}])/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction removeLeadingDotSegment(entry) {\n // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (entry.charAt(0) === '.') {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === '/' || secondCharactery === '\\\\') {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\nexports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\nfunction escapeWindowsPath(pattern) {\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapeWindowsPath = escapeWindowsPath;\nfunction escapePosixPath(pattern) {\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapePosixPath = escapePosixPath;\nexports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\nfunction convertWindowsPathToPattern(filepath) {\n return escapeWindowsPath(filepath)\n .replace(DOS_DEVICE_PATH_RE, '//$1')\n .replace(WINDOWS_BACKSLASHES_RE, '/');\n}\nexports.convertWindowsPathToPattern = convertWindowsPathToPattern;\nfunction convertPosixPathToPattern(filepath) {\n return escapePosixPath(filepath);\n}\nexports.convertPosixPathToPattern = convertPosixPathToPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAbsolute = exports.partitionAbsoluteAndRelative = exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\nconst BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n/**\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\n * The latter is due to the presence of the device path at the beginning of the UNC path.\n */\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\nfunction isStaticPattern(pattern, options = {}) {\n return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n /**\n * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n * An empty string cannot be a dynamic pattern.\n * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n */\n if (pattern === '') {\n return false;\n }\n /**\n * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n * filepath directly (without read directory).\n */\n if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {\n return true;\n }\n return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction hasBraceExpansion(pattern) {\n const openingBraceIndex = pattern.indexOf('{');\n if (openingBraceIndex === -1) {\n return false;\n }\n const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);\n if (closingBraceIndex === -1) {\n return false;\n }\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n}\nfunction convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n const basename = path.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n const patterns = micromatch.braces(pattern, { expand: true, nodupes: true, keepEscaping: true });\n /**\n * Sort the patterns by length so that the same depth patterns are processed side by side.\n * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']`\n */\n patterns.sort((a, b) => a.length - b.length);\n /**\n * Micromatch can return an empty string in the case of patterns like `{a,}`.\n */\n return patterns.filter((pattern) => pattern !== '');\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n /**\n * The scan method returns an empty array in some cases.\n * See micromatch/picomatch#58 for more details.\n */\n if (parts.length === 0) {\n parts = [pattern];\n }\n /**\n * The scan method does not return an empty part for the pattern with a forward slash.\n * This is another part of micromatch/picomatch#58.\n */\n if (parts[0].startsWith('/')) {\n parts[0] = parts[0].slice(1);\n parts.unshift('');\n }\n return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n/**\n * This package only works with forward slashes as a path separator.\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\n */\nfunction removeDuplicateSlashes(pattern) {\n return pattern.replace(DOUBLE_SLASH_RE, '/');\n}\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\nfunction partitionAbsoluteAndRelative(patterns) {\n const absolute = [];\n const relative = [];\n for (const pattern of patterns) {\n if (isAbsolute(pattern)) {\n absolute.push(pattern);\n }\n else {\n relative.push(pattern);\n }\n }\n return [absolute, relative];\n}\nexports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;\nfunction isAbsolute(pattern) {\n return path.isAbsolute(pattern);\n}\nexports.isAbsolute = isAbsolute;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once('error', (error) => mergedStream.emit('error', error));\n });\n mergedStream.once('close', () => propagateCloseEventToSources(streams));\n mergedStream.once('end', () => propagateCloseEventToSources(streams));\n return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit('close'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n return input === '';\n}\nexports.isEmpty = isEmpty;\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n};\n\nfunction Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node only if it is not an attribute\n if (this.isAttribute(key)) {\n val += '';\n }\n } else if (jObj[key] === null) {\n // null attribute should be ignored by the attribute list, but should not cause the tag closing\n if (this.isAttribute(key)) {\n val += '';\n } else if (key[0] === '?') {\n val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n } else {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n }\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n if(this.options.oneListGroup){\n const result = this.j2x(item, level + 1);\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr\n }\n }else{\n listTagVal += this.processTextOrObjNode(item, key, level)\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, '', level);\n }\n }\n }\n if(this.options.oneListGroup){\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n val = this.options.attributeValueProcessor(attrName, '' + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return ' ' + attrName;\n } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if(val === \"\"){\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n }else{\n\n let tagEndExp = '' + val + tagEndExp );\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `` + this.newLine;\n }else {\n return (\n this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n val +\n this.indentate(level) + tagEndExp );\n }\n }\n}\n\nBuilder.prototype.closeTag = function(key){\n let closeTag = \"\";\n if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n }else if(this.options.suppressEmptyNode){ //empty\n closeTag = \"/\";\n }else{\n closeTag = `>` + this.newLine;\n }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `` + this.newLine;\n }else if(key[0] === \"?\") {//PI tag\n return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n }else{\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n \n if( textValue === ''){\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }else{\n return this.indentate(level) + '<' + key + attrStr + '>' +\n textValue +\n ' 0 && this.options.processEntities){\n for (let i=0; i 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n if(tagName === undefined) continue;\n\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName\n else newJPath = `${jPath}.${tagName}`;\n\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += ``;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + ``;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n }\n isPreviousElementTag = true;\n }\n\n return xmlStr;\n}\n\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n}\n\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if(!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\nmodule.exports = toXml;\n","const util = require('../util');\n\n//TODO: handle comments\nfunction readDocType(xmlData, i){\n \n const entities = {};\n if( xmlData[i + 3] === 'O' &&\n xmlData[i + 4] === 'C' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'Y' &&\n xmlData[i + 7] === 'P' &&\n xmlData[i + 8] === 'E')\n { \n i = i+9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for(;i') { //Read tag content\n if(comment){\n if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n comment = false;\n angleBracketsCount--;\n }\n }else{\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n }else if( xmlData[i] === '['){\n hasBody = true;\n }else{\n exp += xmlData[i];\n }\n }\n if(angleBracketsCount !== 0){\n throw new Error(`Unclosed DOCTYPE`);\n }\n }else{\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n //External entities are not supported\n // \n\n //Parameter entities are not supported\n // \n\n //Internal entities are supported\n // \n \n //read EntityName\n let entityName = \"\";\n for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n // if(xmlData[i] === \" \") continue;\n // else \n entityName += xmlData[i];\n }\n entityName = entityName.trim();\n if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n //read Entity Value\n const startChar = xmlData[i++];\n let val = \"\"\n for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n val += xmlData[i];\n }\n return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === '-' &&\n xmlData[i+3] === '-') return true\n return false\n}\nfunction isEntity(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'N' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'I' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'Y') return true\n return false\n}\nfunction isElement(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'L' &&\n xmlData[i+4] === 'E' &&\n xmlData[i+5] === 'M' &&\n xmlData[i+6] === 'E' &&\n xmlData[i+7] === 'N' &&\n xmlData[i+8] === 'T') return true\n return false\n}\n\nfunction isAttlist(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'A' &&\n xmlData[i+3] === 'T' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'L' &&\n xmlData[i+6] === 'I' &&\n xmlData[i+7] === 'S' &&\n xmlData[i+8] === 'T') return true\n return false\n}\nfunction isNotation(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'N' &&\n xmlData[i+3] === 'O' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'A' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'I' &&\n xmlData[i+8] === 'O' &&\n xmlData[i+9] === 'N') return true\n return false\n}\n\nfunction validateEntityName(name){\n if (util.isName(name))\n\treturn name;\n else\n throw new Error(`Invalid entity name ${name}`);\n}\n\nmodule.exports = readDocType;\n","\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs){\n return tagName\n },\n // skipEmptyListItem: false\n};\n \nconst buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;","'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\n\n// const regx =\n// '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n// .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n constructor(options){\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 16)) },\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n }\n\n}\n\nfunction addExternalEntities(externalEntities){\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n val : externalEntities[ent]\n }\n }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== undefined) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n if(!escapeEntities) val = this.replaceEntitiesValue(val);\n \n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(this.options.trimValues){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if(aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== undefined) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs\n }\n}\n\nconst parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(this.options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n if(currentNode){\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n\n //check if last tag of nested tag was unpaired tag\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n throw new Error(`Unpaired tag can not be used as closing tag: `);\n }\n let propIndex = 0\n if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n this.tagsNodeStack.pop();\n }else{\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n\n currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n\n let tagData = readTagExp(xmlData,i, false, \"?>\");\n if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n }else{\n \n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n \n if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n\n }\n\n\n i = tagData.closeIndex + 1;\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n if(this.options.commentPropName){\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n }\n i = endIndex;\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const result = readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if(val == undefined) val = \"\";\n\n //cdata should be set even if it is 0 length string\n if(this.options.cdataPropName){\n currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n }else{\n currentNode.add(this.options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n let tagName= result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n\n //check if last tag was unpaired tag\n const lastTag = currentNode;\n if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n //self-closing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i = result.closeIndex;\n }\n //unpaired tag\n else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n \n i = result.closeIndex;\n }\n //normal tag\n else{\n //read until closing tag is found\n const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n i = result.i;\n tagContent = result.tagContent;\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if(tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n \n this.addChild(currentNode, childNode, jPath)\n }else{\n //selfClosing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n \n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n }\n //opening tag\n else{\n const childNode = new xmlNode( tagName);\n this.tagsNodeStack.push(currentNode);\n \n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n if(result === false){\n }else if(typeof result === \"string\"){\n childNode.tagname = result\n currentNode.addChild(childNode);\n }else{\n currentNode.addChild(childNode);\n }\n}\n\nconst replaceEntitiesValue = function(val){\n\n if(this.options.processEntities){\n for(let entityName in this.docTypeEntities){\n const entity = this.docTypeEntities[entityName];\n val = val.replace( entity.regx, entity.val);\n }\n for(let entityName in this.lastEntities){\n const entity = this.lastEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n if(this.options.htmlEntities){\n for(let entityName in this.htmlEntities){\n const entity = this.htmlEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n }\n val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) { //store previously collected data as textNode\n if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n \n textData = this.parseTextData(textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode);\n\n if (textData !== undefined && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if( allNodesExp === stopNodeExp || jPath === stopNodeExp ) return true;\n }\n return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if(closingChar[1]){\n if(xmlData[index + 1] === closingChar[1]){\n return {\n data: tagExp,\n index: index\n }\n }\n }else{\n return {\n data: tagExp,\n index: index\n }\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n if(!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n\n const rawTagName = tagName;\n if(removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n rawTagName: rawTagName,\n }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n const startIndex = i;\n // Starting at 1 since we already have an open tag\n let openTagCount = 1;\n\n for (; i < xmlData.length; i++) {\n if( xmlData[i] === \"<\"){ \n if (xmlData[i+1] === \"/\") {//close tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n if(closeTagName === tagName){\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i : closeIndex\n }\n }\n }\n i=closeIndex;\n } else if(xmlData[i+1] === '?') { \n const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 3) === '!--') { \n const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 2) === '![') { \n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i=closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, '>')\n\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n openTagCount++;\n }\n i=tagData.closeIndex;\n }\n }\n }\n }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n\nmodule.exports = OrderedObjParser;\n","const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n \n constructor(options){\n this.externalEntities = {};\n this.options = buildOptions(options);\n \n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value){\n if(value.indexOf(\"&\") !== -1){\n throw new Error(\"Entity value can't have '&'\")\n }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for ' '\")\n }else if(value === \"&\"){\n throw new Error(\"An entity with value '&' is not permitted\");\n }else{\n this.externalEntities[key] = value;\n }\n }\n}\n\nmodule.exports = XMLParser;","'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj[\":@\"]){\n assignAttributes( val, tagObj[\":@\"], newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \":@\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n \n if (propCount === 0) {\n return true;\n }\n\n if (\n propCount === 1 &&\n (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n ) {\n return true;\n }\n\n return false;\n}\nexports.prettify = prettify;\n","'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[\":@\"] = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if(key === \"__proto__\") key = \"#__proto__\";\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;","'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, _concurrency) {\n if (typeof context === 'function') {\n _concurrency = worker\n worker = context\n context = null\n }\n\n if (!(_concurrency >= 1)) {\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\n }\n\n var cache = reusify(Task)\n var queueHead = null\n var queueTail = null\n var _running = 0\n var errorHandler = null\n\n var self = {\n push: push,\n drain: noop,\n saturated: noop,\n pause: pause,\n paused: false,\n\n get concurrency () {\n return _concurrency\n },\n set concurrency (value) {\n if (!(value >= 1)) {\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\n }\n _concurrency = value\n\n if (self.paused) return\n for (; queueHead && _running < _concurrency;) {\n _running++\n release()\n }\n },\n\n running: running,\n resume: resume,\n idle: idle,\n length: length,\n getQueue: getQueue,\n unshift: unshift,\n empty: noop,\n kill: kill,\n killAndDrain: killAndDrain,\n error: error\n }\n\n return self\n\n function running () {\n return _running\n }\n\n function pause () {\n self.paused = true\n }\n\n function length () {\n var current = queueHead\n var counter = 0\n\n while (current) {\n current = current.next\n counter++\n }\n\n return counter\n }\n\n function getQueue () {\n var current = queueHead\n var tasks = []\n\n while (current) {\n tasks.push(current.value)\n current = current.next\n }\n\n return tasks\n }\n\n function resume () {\n if (!self.paused) return\n self.paused = false\n if (queueHead === null) {\n _running++\n release()\n return\n }\n for (; queueHead && _running < _concurrency;) {\n _running++\n release()\n }\n }\n\n function idle () {\n return _running === 0 && self.length() === 0\n }\n\n function push (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running >= _concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current\n queueTail = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function unshift (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running >= _concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead\n queueHead = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function release (holder) {\n if (holder) {\n cache.release(holder)\n }\n var next = queueHead\n if (next && _running <= _concurrency) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null\n }\n queueHead = next.next\n next.next = null\n worker.call(context, next.value, next.worked)\n if (queueTail === null) {\n self.empty()\n }\n } else {\n _running--\n }\n } else if (--_running === 0) {\n self.drain()\n }\n }\n\n function kill () {\n queueHead = null\n queueTail = null\n self.drain = noop\n }\n\n function killAndDrain () {\n queueHead = null\n queueTail = null\n self.drain()\n self.drain = noop\n }\n\n function error (handler) {\n errorHandler = handler\n }\n}\n\nfunction noop () {}\n\nfunction Task () {\n this.value = null\n this.callback = noop\n this.next = null\n this.release = noop\n this.context = null\n this.errorHandler = null\n\n var self = this\n\n this.worked = function worked (err, result) {\n var callback = self.callback\n var errorHandler = self.errorHandler\n var val = self.value\n self.value = null\n self.callback = noop\n if (self.errorHandler) {\n errorHandler(err, val)\n }\n callback.call(self.context, err, result)\n self.release(self)\n }\n}\n\nfunction queueAsPromised (context, worker, _concurrency) {\n if (typeof context === 'function') {\n _concurrency = worker\n worker = context\n context = null\n }\n\n function asyncWrapper (arg, cb) {\n worker.call(this, arg)\n .then(function (res) {\n cb(null, res)\n }, cb)\n }\n\n var queue = fastqueue(context, asyncWrapper, _concurrency)\n\n var pushCb = queue.push\n var unshiftCb = queue.unshift\n\n queue.push = push\n queue.unshift = unshift\n queue.drained = drained\n\n return queue\n\n function push (value) {\n var p = new Promise(function (resolve, reject) {\n pushCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function unshift (value) {\n var p = new Promise(function (resolve, reject) {\n unshiftCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function drained () {\n var p = new Promise(function (resolve) {\n process.nextTick(function () {\n if (queue.idle()) {\n resolve()\n } else {\n var previousDrain = queue.drain\n queue.drain = function () {\n if (typeof previousDrain === 'function') previousDrain()\n resolve()\n queue.drain = previousDrain\n }\n }\n })\n })\n\n return p\n }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n","/*!\n * fill-range \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === '-') value = value.slice(1);\n if (value === '0') return false;\n while (value[++index] === '0');\n return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n if (typeof start === 'string' || typeof end === 'string') {\n return true;\n }\n return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === '-' ? '-' : '';\n if (dash) input = input.slice(1);\n input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n let negative = input[0] === '-' ? '-' : '';\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = '0' + input;\n return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options, maxLen) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n let prefix = options.capture ? '' : '?:';\n let positives = '';\n let negatives = '';\n let result;\n\n if (parts.positives.length) {\n positives = parts.positives.map(v => toMaxLen(String(v), maxLen)).join('|');\n }\n\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.map(v => toMaxLen(String(v), maxLen)).join('|')})`;\n }\n\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n\n if (options.wrap) {\n return `(${prefix}${result})`;\n }\n\n return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options });\n }\n\n let start = String.fromCharCode(a);\n if (a === b) return start;\n\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n if (Array.isArray(start)) {\n let wrap = options.wrap === true;\n let prefix = options.capture ? '' : '?:';\n return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n }\n return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n};\n\nconst invalidStep = (step, options) => {\n if (options.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n let a = Number(start);\n let b = Number(end);\n\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n\n // fix negative zero\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify(start, end, options) === false;\n let format = options.transform || transform(toNumber);\n\n if (options.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n }\n\n let parts = { negatives: [], positives: [] };\n let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n if (options.toRegex === true && step > 1) {\n push(a);\n } else {\n range.push(pad(format(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return step > 1\n ? toSequence(parts, options, maxLen)\n : toRegex(range, null, { wrap: false, ...options });\n }\n\n return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n return invalidRange(start, end, options);\n }\n\n let format = options.transform || (val => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n\n if (options.toRegex && step === 1) {\n return toRange(min, max, false, options);\n }\n\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n range.push(format(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return toRegex(range, null, { wrap: false, options });\n }\n\n return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options);\n }\n\n if (typeof step === 'function') {\n return fill(start, end, 1, { transform: step });\n }\n\n if (isObject(step)) {\n return fill(start, end, 0, step);\n }\n\n let opts = { ...options };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n\n if (!isNumber(step)) {\n if (step != null && !isObject(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdirsSync = require('../mkdirs').mkdirsSync\nconst utimesMillisSync = require('../util/utimes').utimesMillisSync\nconst stat = require('../util/stat')\n\nfunction copySync (src, dest, opts) {\n if (typeof opts === 'function') {\n opts = { filter: opts }\n }\n\n opts = opts || {}\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n process.emitWarning(\n 'Using the preserveTimestamps option in 32-bit node is not recommended;\\n\\n' +\n '\\tsee https://github.com/jprichardson/node-fs-extra/issues/269',\n 'Warning', 'fs-extra-WARN0002'\n )\n }\n\n const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts)\n stat.checkParentPathsSync(src, srcStat, dest, 'copy')\n if (opts.filter && !opts.filter(src, dest)) return\n const destParent = path.dirname(dest)\n if (!fs.existsSync(destParent)) mkdirsSync(destParent)\n return getStats(destStat, src, dest, opts)\n}\n\nfunction getStats (destStat, src, dest, opts) {\n const statSync = opts.dereference ? fs.statSync : fs.lstatSync\n const srcStat = statSync(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)\n else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)\n throw new Error(`Unknown file: ${src}`)\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts) {\n if (!destStat) return copyFile(srcStat, src, dest, opts)\n return mayCopyFile(srcStat, src, dest, opts)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts) {\n if (opts.overwrite) {\n fs.unlinkSync(dest)\n return copyFile(srcStat, src, dest, opts)\n } else if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nfunction copyFile (srcStat, src, dest, opts) {\n fs.copyFileSync(src, dest)\n if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest)\n return setDestMode(dest, srcStat.mode)\n}\n\nfunction handleTimestamps (srcMode, src, dest) {\n // Make sure the file is writable before setting the timestamp\n // otherwise open fails with EPERM when invoked with 'r+'\n // (through utimes call)\n if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode)\n return setDestTimestamps(src, dest)\n}\n\nfunction fileIsNotWritable (srcMode) {\n return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode) {\n return setDestMode(dest, srcMode | 0o200)\n}\n\nfunction setDestMode (dest, srcMode) {\n return fs.chmodSync(dest, srcMode)\n}\n\nfunction setDestTimestamps (src, dest) {\n // The initial srcStat.atime cannot be trusted\n // because it is modified by the read(2) system call\n // (See https://nodejs.org/api/fs.html#fs_stat_time_values)\n const updatedSrcStat = fs.statSync(src)\n return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime)\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts) {\n if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts)\n return copyDir(src, dest, opts)\n}\n\nfunction mkDirAndCopy (srcMode, src, dest, opts) {\n fs.mkdirSync(dest)\n copyDir(src, dest, opts)\n return setDestMode(dest, srcMode)\n}\n\nfunction copyDir (src, dest, opts) {\n const dir = fs.opendirSync(src)\n\n try {\n let dirent\n\n while ((dirent = dir.readSync()) !== null) {\n copyDirItem(dirent.name, src, dest, opts)\n }\n } finally {\n dir.closeSync()\n }\n}\n\nfunction copyDirItem (item, src, dest, opts) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n if (opts.filter && !opts.filter(srcItem, destItem)) return\n const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts)\n return getStats(destStat, srcItem, destItem, opts)\n}\n\nfunction onLink (destStat, src, dest, opts) {\n let resolvedSrc = fs.readlinkSync(src)\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (!destStat) {\n return fs.symlinkSync(resolvedSrc, dest)\n } else {\n let resolvedDest\n try {\n resolvedDest = fs.readlinkSync(dest)\n } catch (err) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)\n throw err\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n // If both symlinks resolve to the same target, they are still distinct symlinks\n // that can be copied/overwritten. Only check subdirectory constraints when\n // the resolved paths are different.\n if (resolvedSrc !== resolvedDest) {\n if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // prevent copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n }\n return copyLink(resolvedSrc, dest)\n }\n}\n\nfunction copyLink (resolvedSrc, dest) {\n fs.unlinkSync(dest)\n return fs.symlinkSync(resolvedSrc, dest)\n}\n\nmodule.exports = copySync\n","'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst { mkdirs } = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst { utimesMillis } = require('../util/utimes')\nconst stat = require('../util/stat')\nconst { asyncIteratorConcurrentProcess } = require('../util/async')\n\nasync function copy (src, dest, opts = {}) {\n if (typeof opts === 'function') {\n opts = { filter: opts }\n }\n\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n process.emitWarning(\n 'Using the preserveTimestamps option in 32-bit node is not recommended;\\n\\n' +\n '\\tsee https://github.com/jprichardson/node-fs-extra/issues/269',\n 'Warning', 'fs-extra-WARN0001'\n )\n }\n\n const { srcStat, destStat } = await stat.checkPaths(src, dest, 'copy', opts)\n\n await stat.checkParentPaths(src, srcStat, dest, 'copy')\n\n const include = await runFilter(src, dest, opts)\n\n if (!include) return\n\n // check if the parent of dest exists, and create it if it doesn't exist\n const destParent = path.dirname(dest)\n const dirExists = await pathExists(destParent)\n if (!dirExists) {\n await mkdirs(destParent)\n }\n\n await getStatsAndPerformCopy(destStat, src, dest, opts)\n}\n\nasync function runFilter (src, dest, opts) {\n if (!opts.filter) return true\n return opts.filter(src, dest)\n}\n\nasync function getStatsAndPerformCopy (destStat, src, dest, opts) {\n const statFn = opts.dereference ? fs.stat : fs.lstat\n const srcStat = await statFn(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n\n if (\n srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()\n ) return onFile(srcStat, destStat, src, dest, opts)\n\n if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)\n if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)\n throw new Error(`Unknown file: ${src}`)\n}\n\nasync function onFile (srcStat, destStat, src, dest, opts) {\n if (!destStat) return copyFile(srcStat, src, dest, opts)\n\n if (opts.overwrite) {\n await fs.unlink(dest)\n return copyFile(srcStat, src, dest, opts)\n }\n if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nasync function copyFile (srcStat, src, dest, opts) {\n await fs.copyFile(src, dest)\n if (opts.preserveTimestamps) {\n // Make sure the file is writable before setting the timestamp\n // otherwise open fails with EPERM when invoked with 'r+'\n // (through utimes call)\n if (fileIsNotWritable(srcStat.mode)) {\n await makeFileWritable(dest, srcStat.mode)\n }\n\n // Set timestamps and mode correspondingly\n\n // Note that The initial srcStat.atime cannot be trusted\n // because it is modified by the read(2) system call\n // (See https://nodejs.org/api/fs.html#fs_stat_time_values)\n const updatedSrcStat = await fs.stat(src)\n await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime)\n }\n\n return fs.chmod(dest, srcStat.mode)\n}\n\nfunction fileIsNotWritable (srcMode) {\n return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode) {\n return fs.chmod(dest, srcMode | 0o200)\n}\n\nasync function onDir (srcStat, destStat, src, dest, opts) {\n // the dest directory might not exist, create it\n if (!destStat) {\n await fs.mkdir(dest)\n }\n\n // iterate through the files in the current directory to copy everything\n await asyncIteratorConcurrentProcess(await fs.opendir(src), async (item) => {\n const srcItem = path.join(src, item.name)\n const destItem = path.join(dest, item.name)\n\n const include = await runFilter(srcItem, destItem, opts)\n // only copy the item if it matches the filter function\n if (include) {\n const { destStat } = await stat.checkPaths(srcItem, destItem, 'copy', opts)\n // If the item is a copyable file, `getStatsAndPerformCopy` will copy it\n // If the item is a directory, `getStatsAndPerformCopy` will call `onDir` recursively\n await getStatsAndPerformCopy(destStat, srcItem, destItem, opts)\n }\n })\n\n if (!destStat) {\n await fs.chmod(dest, srcStat.mode)\n }\n}\n\nasync function onLink (destStat, src, dest, opts) {\n let resolvedSrc = await fs.readlink(src)\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n if (!destStat) {\n return fs.symlink(resolvedSrc, dest)\n }\n\n let resolvedDest = null\n try {\n resolvedDest = await fs.readlink(dest)\n } catch (e) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (e.code === 'EINVAL' || e.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest)\n throw e\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n // If both symlinks resolve to the same target, they are still distinct symlinks\n // that can be copied/overwritten. Only check subdirectory constraints when\n // the resolved paths are different.\n if (resolvedSrc !== resolvedDest) {\n if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // do not copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n }\n\n // copy the link\n await fs.unlink(dest)\n return fs.symlink(resolvedSrc, dest)\n}\n\nmodule.exports = copy\n","'use strict'\n\nconst u = require('universalify').fromPromise\nmodule.exports = {\n copy: u(require('./copy')),\n copySync: require('./copy-sync')\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst remove = require('../remove')\n\nconst emptyDir = u(async function emptyDir (dir) {\n let items\n try {\n items = await fs.readdir(dir)\n } catch {\n return mkdir.mkdirs(dir)\n }\n\n return Promise.all(items.map(item => remove.remove(path.join(dir, item))))\n})\n\nfunction emptyDirSync (dir) {\n let items\n try {\n items = fs.readdirSync(dir)\n } catch {\n return mkdir.mkdirsSync(dir)\n }\n\n items.forEach(item => {\n item = path.join(dir, item)\n remove.removeSync(item)\n })\n}\n\nmodule.exports = {\n emptyDirSync,\n emptydirSync: emptyDirSync,\n emptyDir,\n emptydir: emptyDir\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\nconst mkdir = require('../mkdirs')\n\nasync function createFile (file) {\n let stats\n try {\n stats = await fs.stat(file)\n } catch { }\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n\n let dirStats = null\n try {\n dirStats = await fs.stat(dir)\n } catch (err) {\n // if the directory doesn't exist, make it\n if (err.code === 'ENOENT') {\n await mkdir.mkdirs(dir)\n await fs.writeFile(file, '')\n return\n } else {\n throw err\n }\n }\n\n if (dirStats.isDirectory()) {\n await fs.writeFile(file, '')\n } else {\n // parent is not a directory\n // This is just to cause an internal ENOTDIR error to be thrown\n await fs.readdir(dir)\n }\n}\n\nfunction createFileSync (file) {\n let stats\n try {\n stats = fs.statSync(file)\n } catch { }\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n try {\n if (!fs.statSync(dir).isDirectory()) {\n // parent is not a directory\n // This is just to cause an internal ENOTDIR error to be thrown\n fs.readdirSync(dir)\n }\n } catch (err) {\n // If the stat call above failed because the directory doesn't exist, create it\n if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir)\n else throw err\n }\n\n fs.writeFileSync(file, '')\n}\n\nmodule.exports = {\n createFile: u(createFile),\n createFileSync\n}\n","'use strict'\n\nconst { createFile, createFileSync } = require('./file')\nconst { createLink, createLinkSync } = require('./link')\nconst { createSymlink, createSymlinkSync } = require('./symlink')\n\nmodule.exports = {\n // file\n createFile,\n createFileSync,\n ensureFile: createFile,\n ensureFileSync: createFileSync,\n // link\n createLink,\n createLinkSync,\n ensureLink: createLink,\n ensureLinkSync: createLinkSync,\n // symlink\n createSymlink,\n createSymlinkSync,\n ensureSymlink: createSymlink,\n ensureSymlinkSync: createSymlinkSync\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\nconst mkdir = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst { areIdentical } = require('../util/stat')\n\nasync function createLink (srcpath, dstpath) {\n let dstStat\n try {\n dstStat = await fs.lstat(dstpath)\n } catch {\n // ignore error\n }\n\n let srcStat\n try {\n srcStat = await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n if (dstStat && areIdentical(srcStat, dstStat)) return\n\n const dir = path.dirname(dstpath)\n\n const dirExists = await pathExists(dir)\n\n if (!dirExists) {\n await mkdir.mkdirs(dir)\n }\n\n await fs.link(srcpath, dstpath)\n}\n\nfunction createLinkSync (srcpath, dstpath) {\n let dstStat\n try {\n dstStat = fs.lstatSync(dstpath)\n } catch {}\n\n try {\n const srcStat = fs.lstatSync(srcpath)\n if (dstStat && areIdentical(srcStat, dstStat)) return\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n const dir = path.dirname(dstpath)\n const dirExists = fs.existsSync(dir)\n if (dirExists) return fs.linkSync(srcpath, dstpath)\n mkdir.mkdirsSync(dir)\n\n return fs.linkSync(srcpath, dstpath)\n}\n\nmodule.exports = {\n createLink: u(createLink),\n createLinkSync\n}\n","'use strict'\n\nconst path = require('path')\nconst fs = require('../fs')\nconst { pathExists } = require('../path-exists')\n\nconst u = require('universalify').fromPromise\n\n/**\n * Function that returns two types of paths, one relative to symlink, and one\n * relative to the current working directory. Checks if path is absolute or\n * relative. If the path is relative, this function checks if the path is\n * relative to symlink or relative to current working directory. This is an\n * initiative to find a smarter `srcpath` to supply when building symlinks.\n * This allows you to determine which path to use out of one of three possible\n * types of source paths. The first is an absolute path. This is detected by\n * `path.isAbsolute()`. When an absolute path is provided, it is checked to\n * see if it exists. If it does it's used, if not an error is returned\n * (callback)/ thrown (sync). The other two options for `srcpath` are a\n * relative url. By default Node's `fs.symlink` works by creating a symlink\n * using `dstpath` and expects the `srcpath` to be relative to the newly\n * created symlink. If you provide a `srcpath` that does not exist on the file\n * system it results in a broken symlink. To minimize this, the function\n * checks to see if the 'relative to symlink' source file exists, and if it\n * does it will use it. If it does not, it checks if there's a file that\n * exists that is relative to the current working directory, if does its used.\n * This preserves the expectations of the original fs.symlink spec and adds\n * the ability to pass in `relative to current working direcotry` paths.\n */\n\nasync function symlinkPaths (srcpath, dstpath) {\n if (path.isAbsolute(srcpath)) {\n try {\n await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n throw err\n }\n\n return {\n toCwd: srcpath,\n toDst: srcpath\n }\n }\n\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n\n const exists = await pathExists(relativeToDst)\n if (exists) {\n return {\n toCwd: relativeToDst,\n toDst: srcpath\n }\n }\n\n try {\n await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n throw err\n }\n\n return {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n }\n}\n\nfunction symlinkPathsSync (srcpath, dstpath) {\n if (path.isAbsolute(srcpath)) {\n const exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('absolute srcpath does not exist')\n return {\n toCwd: srcpath,\n toDst: srcpath\n }\n }\n\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n const exists = fs.existsSync(relativeToDst)\n if (exists) {\n return {\n toCwd: relativeToDst,\n toDst: srcpath\n }\n }\n\n const srcExists = fs.existsSync(srcpath)\n if (!srcExists) throw new Error('relative srcpath does not exist')\n return {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n }\n}\n\nmodule.exports = {\n symlinkPaths: u(symlinkPaths),\n symlinkPathsSync\n}\n","'use strict'\n\nconst fs = require('../fs')\nconst u = require('universalify').fromPromise\n\nasync function symlinkType (srcpath, type) {\n if (type) return type\n\n let stats\n try {\n stats = await fs.lstat(srcpath)\n } catch {\n return 'file'\n }\n\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nfunction symlinkTypeSync (srcpath, type) {\n if (type) return type\n\n let stats\n try {\n stats = fs.lstatSync(srcpath)\n } catch {\n return 'file'\n }\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nmodule.exports = {\n symlinkType: u(symlinkType),\n symlinkTypeSync\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\n\nconst { mkdirs, mkdirsSync } = require('../mkdirs')\n\nconst { symlinkPaths, symlinkPathsSync } = require('./symlink-paths')\nconst { symlinkType, symlinkTypeSync } = require('./symlink-type')\n\nconst { pathExists } = require('../path-exists')\n\nconst { areIdentical } = require('../util/stat')\n\nasync function createSymlink (srcpath, dstpath, type) {\n let stats\n try {\n stats = await fs.lstat(dstpath)\n } catch { }\n\n if (stats && stats.isSymbolicLink()) {\n // When srcpath is relative, resolve it relative to dstpath's directory\n // (standard symlink behavior) or fall back to cwd if that doesn't exist\n let srcStat\n if (path.isAbsolute(srcpath)) {\n srcStat = await fs.stat(srcpath)\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n try {\n srcStat = await fs.stat(relativeToDst)\n } catch {\n srcStat = await fs.stat(srcpath)\n }\n }\n\n const dstStat = await fs.stat(dstpath)\n if (areIdentical(srcStat, dstStat)) return\n }\n\n const relative = await symlinkPaths(srcpath, dstpath)\n srcpath = relative.toDst\n const toType = await symlinkType(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n\n if (!(await pathExists(dir))) {\n await mkdirs(dir)\n }\n\n return fs.symlink(srcpath, dstpath, toType)\n}\n\nfunction createSymlinkSync (srcpath, dstpath, type) {\n let stats\n try {\n stats = fs.lstatSync(dstpath)\n } catch { }\n if (stats && stats.isSymbolicLink()) {\n // When srcpath is relative, resolve it relative to dstpath's directory\n // (standard symlink behavior) or fall back to cwd if that doesn't exist\n let srcStat\n if (path.isAbsolute(srcpath)) {\n srcStat = fs.statSync(srcpath)\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n try {\n srcStat = fs.statSync(relativeToDst)\n } catch {\n srcStat = fs.statSync(srcpath)\n }\n }\n\n const dstStat = fs.statSync(dstpath)\n if (areIdentical(srcStat, dstStat)) return\n }\n\n const relative = symlinkPathsSync(srcpath, dstpath)\n srcpath = relative.toDst\n type = symlinkTypeSync(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n const exists = fs.existsSync(dir)\n if (exists) return fs.symlinkSync(srcpath, dstpath, type)\n mkdirsSync(dir)\n return fs.symlinkSync(srcpath, dstpath, type)\n}\n\nmodule.exports = {\n createSymlink: u(createSymlink),\n createSymlinkSync\n}\n","'use strict'\n// This is adapted from https://github.com/normalize/mz\n// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\n\nconst api = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'close',\n 'copyFile',\n 'cp',\n 'fchmod',\n 'fchown',\n 'fdatasync',\n 'fstat',\n 'fsync',\n 'ftruncate',\n 'futimes',\n 'glob',\n 'lchmod',\n 'lchown',\n 'lutimes',\n 'link',\n 'lstat',\n 'mkdir',\n 'mkdtemp',\n 'open',\n 'opendir',\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'rename',\n 'rm',\n 'rmdir',\n 'stat',\n 'statfs',\n 'symlink',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile'\n].filter(key => {\n // Some commands are not available on some systems. Ex:\n // fs.cp was added in Node.js v16.7.0\n // fs.statfs was added in Node v19.6.0, v18.15.0\n // fs.glob was added in Node.js v22.0.0\n // fs.lchown is not available on at least some Linux\n return typeof fs[key] === 'function'\n})\n\n// Export cloned fs:\nObject.assign(exports, fs)\n\n// Universalify async methods:\napi.forEach(method => {\n exports[method] = u(fs[method])\n})\n\n// We differ from mz/fs in that we still ship the old, broken, fs.exists()\n// since we are a drop-in replacement for the native module\nexports.exists = function (filename, callback) {\n if (typeof callback === 'function') {\n return fs.exists(filename, callback)\n }\n return new Promise(resolve => {\n return fs.exists(filename, resolve)\n })\n}\n\n// fs.read(), fs.write(), fs.readv(), & fs.writev() need special treatment due to multiple callback args\n\nexports.read = function (fd, buffer, offset, length, position, callback) {\n if (typeof callback === 'function') {\n return fs.read(fd, buffer, offset, length, position, callback)\n }\n return new Promise((resolve, reject) => {\n fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffer })\n })\n })\n}\n\n// Function signature can be\n// fs.write(fd, buffer[, offset[, length[, position]]], callback)\n// OR\n// fs.write(fd, string[, position[, encoding]], callback)\n// We need to handle both cases, so we use ...args\nexports.write = function (fd, buffer, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.write(fd, buffer, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffer })\n })\n })\n}\n\n// Function signature is\n// s.readv(fd, buffers[, position], callback)\n// We need to handle the optional arg, so we use ...args\nexports.readv = function (fd, buffers, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.readv(fd, buffers, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.readv(fd, buffers, ...args, (err, bytesRead, buffers) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffers })\n })\n })\n}\n\n// Function signature is\n// s.writev(fd, buffers[, position], callback)\n// We need to handle the optional arg, so we use ...args\nexports.writev = function (fd, buffers, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.writev(fd, buffers, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffers })\n })\n })\n}\n\n// fs.realpath.native sometimes not available if fs is monkey-patched\nif (typeof fs.realpath.native === 'function') {\n exports.realpath.native = u(fs.realpath.native)\n} else {\n process.emitWarning(\n 'fs.realpath.native is not a function. Is fs being monkey-patched?',\n 'Warning', 'fs-extra-WARN0003'\n )\n}\n","'use strict'\n\nmodule.exports = {\n // Export promiseified graceful-fs:\n ...require('./fs'),\n // Export extra methods:\n ...require('./copy'),\n ...require('./empty'),\n ...require('./ensure'),\n ...require('./json'),\n ...require('./mkdirs'),\n ...require('./move'),\n ...require('./output-file'),\n ...require('./path-exists'),\n ...require('./remove')\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst jsonFile = require('./jsonfile')\n\njsonFile.outputJson = u(require('./output-json'))\njsonFile.outputJsonSync = require('./output-json-sync')\n// aliases\njsonFile.outputJSON = jsonFile.outputJson\njsonFile.outputJSONSync = jsonFile.outputJsonSync\njsonFile.writeJSON = jsonFile.writeJson\njsonFile.writeJSONSync = jsonFile.writeJsonSync\njsonFile.readJSON = jsonFile.readJson\njsonFile.readJSONSync = jsonFile.readJsonSync\n\nmodule.exports = jsonFile\n","'use strict'\n\nconst jsonFile = require('jsonfile')\n\nmodule.exports = {\n // jsonfile exports\n readJson: jsonFile.readFile,\n readJsonSync: jsonFile.readFileSync,\n writeJson: jsonFile.writeFile,\n writeJsonSync: jsonFile.writeFileSync\n}\n","'use strict'\n\nconst { stringify } = require('jsonfile/utils')\nconst { outputFileSync } = require('../output-file')\n\nfunction outputJsonSync (file, data, options) {\n const str = stringify(data, options)\n\n outputFileSync(file, str, options)\n}\n\nmodule.exports = outputJsonSync\n","'use strict'\n\nconst { stringify } = require('jsonfile/utils')\nconst { outputFile } = require('../output-file')\n\nasync function outputJson (file, data, options = {}) {\n const str = stringify(data, options)\n\n await outputFile(file, str, options)\n}\n\nmodule.exports = outputJson\n","'use strict'\nconst u = require('universalify').fromPromise\nconst { makeDir: _makeDir, makeDirSync } = require('./make-dir')\nconst makeDir = u(_makeDir)\n\nmodule.exports = {\n mkdirs: makeDir,\n mkdirsSync: makeDirSync,\n // alias\n mkdirp: makeDir,\n mkdirpSync: makeDirSync,\n ensureDir: makeDir,\n ensureDirSync: makeDirSync\n}\n","'use strict'\nconst fs = require('../fs')\nconst { checkPath } = require('./utils')\n\nconst getMode = options => {\n const defaults = { mode: 0o777 }\n if (typeof options === 'number') return options\n return ({ ...defaults, ...options }).mode\n}\n\nmodule.exports.makeDir = async (dir, options) => {\n checkPath(dir)\n\n return fs.mkdir(dir, {\n mode: getMode(options),\n recursive: true\n })\n}\n\nmodule.exports.makeDirSync = (dir, options) => {\n checkPath(dir)\n\n return fs.mkdirSync(dir, {\n mode: getMode(options),\n recursive: true\n })\n}\n","// Adapted from https://github.com/sindresorhus/make-dir\n// Copyright (c) Sindre Sorhus (sindresorhus.com)\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict'\nconst path = require('path')\n\n// https://github.com/nodejs/node/issues/8987\n// https://github.com/libuv/libuv/pull/1088\nmodule.exports.checkPath = function checkPath (pth) {\n if (process.platform === 'win32') {\n const pathHasInvalidWinCharacters = /[<>:\"|?*]/.test(pth.replace(path.parse(pth).root, ''))\n\n if (pathHasInvalidWinCharacters) {\n const error = new Error(`Path contains invalid characters: ${pth}`)\n error.code = 'EINVAL'\n throw error\n }\n }\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nmodule.exports = {\n move: u(require('./move')),\n moveSync: require('./move-sync')\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copySync = require('../copy').copySync\nconst removeSync = require('../remove').removeSync\nconst mkdirpSync = require('../mkdirs').mkdirpSync\nconst stat = require('../util/stat')\n\nfunction moveSync (src, dest, opts) {\n opts = opts || {}\n const overwrite = opts.overwrite || opts.clobber || false\n\n const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, 'move', opts)\n stat.checkParentPathsSync(src, srcStat, dest, 'move')\n if (!isParentRoot(dest)) mkdirpSync(path.dirname(dest))\n return doRename(src, dest, overwrite, isChangingCase)\n}\n\nfunction isParentRoot (dest) {\n const parent = path.dirname(dest)\n const parsedPath = path.parse(parent)\n return parsedPath.root === parent\n}\n\nfunction doRename (src, dest, overwrite, isChangingCase) {\n if (isChangingCase) return rename(src, dest, overwrite)\n if (overwrite) {\n removeSync(dest)\n return rename(src, dest, overwrite)\n }\n if (fs.existsSync(dest)) throw new Error('dest already exists.')\n return rename(src, dest, overwrite)\n}\n\nfunction rename (src, dest, overwrite) {\n try {\n fs.renameSync(src, dest)\n } catch (err) {\n if (err.code !== 'EXDEV') throw err\n return moveAcrossDevice(src, dest, overwrite)\n }\n}\n\nfunction moveAcrossDevice (src, dest, overwrite) {\n const opts = {\n overwrite,\n errorOnExist: true,\n preserveTimestamps: true\n }\n copySync(src, dest, opts)\n return removeSync(src)\n}\n\nmodule.exports = moveSync\n","'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst { copy } = require('../copy')\nconst { remove } = require('../remove')\nconst { mkdirp } = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst stat = require('../util/stat')\n\nasync function move (src, dest, opts = {}) {\n const overwrite = opts.overwrite || opts.clobber || false\n\n const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, 'move', opts)\n\n await stat.checkParentPaths(src, srcStat, dest, 'move')\n\n // If the parent of dest is not root, make sure it exists before proceeding\n const destParent = path.dirname(dest)\n const parsedParentPath = path.parse(destParent)\n if (parsedParentPath.root !== destParent) {\n await mkdirp(destParent)\n }\n\n return doRename(src, dest, overwrite, isChangingCase)\n}\n\nasync function doRename (src, dest, overwrite, isChangingCase) {\n if (!isChangingCase) {\n if (overwrite) {\n await remove(dest)\n } else if (await pathExists(dest)) {\n throw new Error('dest already exists.')\n }\n }\n\n try {\n // Try w/ rename first, and try copy + remove if EXDEV\n await fs.rename(src, dest)\n } catch (err) {\n if (err.code !== 'EXDEV') {\n throw err\n }\n await moveAcrossDevice(src, dest, overwrite)\n }\n}\n\nasync function moveAcrossDevice (src, dest, overwrite) {\n const opts = {\n overwrite,\n errorOnExist: true,\n preserveTimestamps: true\n }\n\n await copy(src, dest, opts)\n return remove(src)\n}\n\nmodule.exports = move\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nasync function outputFile (file, data, encoding = 'utf-8') {\n const dir = path.dirname(file)\n\n if (!(await pathExists(dir))) {\n await mkdir.mkdirs(dir)\n }\n\n return fs.writeFile(file, data, encoding)\n}\n\nfunction outputFileSync (file, ...args) {\n const dir = path.dirname(file)\n if (!fs.existsSync(dir)) {\n mkdir.mkdirsSync(dir)\n }\n\n fs.writeFileSync(file, ...args)\n}\n\nmodule.exports = {\n outputFile: u(outputFile),\n outputFileSync\n}\n","'use strict'\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\n\nfunction pathExists (path) {\n return fs.access(path).then(() => true).catch(() => false)\n}\n\nmodule.exports = {\n pathExists: u(pathExists),\n pathExistsSync: fs.existsSync\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst u = require('universalify').fromCallback\n\nfunction remove (path, callback) {\n fs.rm(path, { recursive: true, force: true }, callback)\n}\n\nfunction removeSync (path) {\n fs.rmSync(path, { recursive: true, force: true })\n}\n\nmodule.exports = {\n remove: u(remove),\n removeSync\n}\n","'use strict'\n\n// https://github.com/jprichardson/node-fs-extra/issues/1056\n// Performing parallel operations on each item of an async iterator is\n// surprisingly hard; you need to have handlers in place to avoid getting an\n// UnhandledPromiseRejectionWarning.\n// NOTE: This function does not presently handle return values, only errors\nasync function asyncIteratorConcurrentProcess (iterator, fn) {\n const promises = []\n for await (const item of iterator) {\n promises.push(\n fn(item).then(\n () => null,\n (err) => err ?? new Error('unknown error')\n )\n )\n }\n await Promise.all(\n promises.map((promise) =>\n promise.then((possibleErr) => {\n if (possibleErr !== null) throw possibleErr\n })\n )\n )\n}\n\nmodule.exports = {\n asyncIteratorConcurrentProcess\n}\n","'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst u = require('universalify').fromPromise\n\nfunction getStats (src, dest, opts) {\n const statFunc = opts.dereference\n ? (file) => fs.stat(file, { bigint: true })\n : (file) => fs.lstat(file, { bigint: true })\n return Promise.all([\n statFunc(src),\n statFunc(dest).catch(err => {\n if (err.code === 'ENOENT') return null\n throw err\n })\n ]).then(([srcStat, destStat]) => ({ srcStat, destStat }))\n}\n\nfunction getStatsSync (src, dest, opts) {\n let destStat\n const statFunc = opts.dereference\n ? (file) => fs.statSync(file, { bigint: true })\n : (file) => fs.lstatSync(file, { bigint: true })\n const srcStat = statFunc(src)\n try {\n destStat = statFunc(dest)\n } catch (err) {\n if (err.code === 'ENOENT') return { srcStat, destStat: null }\n throw err\n }\n return { srcStat, destStat }\n}\n\nasync function checkPaths (src, dest, funcName, opts) {\n const { srcStat, destStat } = await getStats(src, dest, opts)\n if (destStat) {\n if (areIdentical(srcStat, destStat)) {\n const srcBaseName = path.basename(src)\n const destBaseName = path.basename(dest)\n if (funcName === 'move' &&\n srcBaseName !== destBaseName &&\n srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {\n return { srcStat, destStat, isChangingCase: true }\n }\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n if (!srcStat.isDirectory() && destStat.isDirectory()) {\n throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)\n }\n }\n\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n\n return { srcStat, destStat }\n}\n\nfunction checkPathsSync (src, dest, funcName, opts) {\n const { srcStat, destStat } = getStatsSync(src, dest, opts)\n\n if (destStat) {\n if (areIdentical(srcStat, destStat)) {\n const srcBaseName = path.basename(src)\n const destBaseName = path.basename(dest)\n if (funcName === 'move' &&\n srcBaseName !== destBaseName &&\n srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {\n return { srcStat, destStat, isChangingCase: true }\n }\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n if (!srcStat.isDirectory() && destStat.isDirectory()) {\n throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)\n }\n }\n\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n return { srcStat, destStat }\n}\n\n// recursively check if dest parent is a subdirectory of src.\n// It works for all file types including symlinks since it\n// checks the src and dest inodes. It starts from the deepest\n// parent and stops once it reaches the src parent or the root path.\nasync function checkParentPaths (src, srcStat, dest, funcName) {\n const srcParent = path.resolve(path.dirname(src))\n const destParent = path.resolve(path.dirname(dest))\n if (destParent === srcParent || destParent === path.parse(destParent).root) return\n\n let destStat\n try {\n destStat = await fs.stat(destParent, { bigint: true })\n } catch (err) {\n if (err.code === 'ENOENT') return\n throw err\n }\n\n if (areIdentical(srcStat, destStat)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n\n return checkParentPaths(src, srcStat, destParent, funcName)\n}\n\nfunction checkParentPathsSync (src, srcStat, dest, funcName) {\n const srcParent = path.resolve(path.dirname(src))\n const destParent = path.resolve(path.dirname(dest))\n if (destParent === srcParent || destParent === path.parse(destParent).root) return\n let destStat\n try {\n destStat = fs.statSync(destParent, { bigint: true })\n } catch (err) {\n if (err.code === 'ENOENT') return\n throw err\n }\n if (areIdentical(srcStat, destStat)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n return checkParentPathsSync(src, srcStat, destParent, funcName)\n}\n\nfunction areIdentical (srcStat, destStat) {\n // stat.dev can be 0n on windows when node version >= 22.x.x\n return destStat.ino !== undefined && destStat.dev !== undefined && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev\n}\n\n// return true if dest is a subdir of src, otherwise false.\n// It only checks the path strings.\nfunction isSrcSubdir (src, dest) {\n const srcArr = path.resolve(src).split(path.sep).filter(i => i)\n const destArr = path.resolve(dest).split(path.sep).filter(i => i)\n return srcArr.every((cur, i) => destArr[i] === cur)\n}\n\nfunction errMsg (src, dest, funcName) {\n return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`\n}\n\nmodule.exports = {\n // checkPaths\n checkPaths: u(checkPaths),\n checkPathsSync,\n // checkParent\n checkParentPaths: u(checkParentPaths),\n checkParentPathsSync,\n // Misc\n isSrcSubdir,\n areIdentical\n}\n","'use strict'\n\nconst fs = require('../fs')\nconst u = require('universalify').fromPromise\n\nasync function utimesMillis (path, atime, mtime) {\n // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)\n const fd = await fs.open(path, 'r+')\n\n let closeErr = null\n\n try {\n await fs.futimes(fd, atime, mtime)\n } finally {\n try {\n await fs.close(fd)\n } catch (e) {\n closeErr = e\n }\n }\n\n if (closeErr) {\n throw closeErr\n }\n}\n\nfunction utimesMillisSync (path, atime, mtime) {\n const fd = fs.openSync(path, 'r+')\n fs.futimesSync(fd, atime, mtime)\n return fs.closeSync(fd)\n}\n\nmodule.exports = {\n utimesMillis: u(utimesMillis),\n utimesMillisSync\n}\n","'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n var options = Object.assign({ flipBackslashes: true }, opts);\n\n // flip windows path separators\n if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n str = str.replace(backslash, slash);\n }\n\n // special case for strings ending in enclosure containing path separator\n if (enclosure.test(str)) {\n str += slash;\n }\n\n // preserves full path in case of trailing path separator\n str += 'a';\n\n // remove path parts that are globby\n do {\n str = pathPosixDirname(str);\n } while (isGlob(str) || globby.test(str));\n\n // remove escape chars and return result\n return str.replace(escaped, '$1');\n};\n","'use strict'\n\nmodule.exports = clone\n\nvar getPrototypeOf = Object.getPrototypeOf || function (obj) {\n return obj.__proto__\n}\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: getPrototypeOf(obj) }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n","var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar clone = require('./clone.js')\n\nvar util = require('util')\n\n/* istanbul ignore next - node 0.x polyfill */\nvar gracefulQueue\nvar previousSymbol\n\n/* istanbul ignore else - node 0.x polyfill */\nif (typeof Symbol === 'function' && typeof Symbol.for === 'function') {\n gracefulQueue = Symbol.for('graceful-fs.queue')\n // This is used in testing by future versions\n previousSymbol = Symbol.for('graceful-fs.previous')\n} else {\n gracefulQueue = '___graceful-fs.queue'\n previousSymbol = '___graceful-fs.previous'\n}\n\nfunction noop () {}\n\nfunction publishQueue(context, queue) {\n Object.defineProperty(context, gracefulQueue, {\n get: function() {\n return queue\n }\n })\n}\n\nvar debug = noop\nif (util.debuglog)\n debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n debug = function() {\n var m = util.format.apply(util, arguments)\n m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n console.error(m)\n }\n\n// Once time initialization\nif (!fs[gracefulQueue]) {\n // This queue can be shared by multiple loaded instances\n var queue = global[gracefulQueue] || []\n publishQueue(fs, queue)\n\n // Patch fs.close/closeSync to shared queue version, because we need\n // to retry() whenever a close happens *anywhere* in the program.\n // This is essential when multiple graceful-fs instances are\n // in play at the same time.\n fs.close = (function (fs$close) {\n function close (fd, cb) {\n return fs$close.call(fs, fd, function (err) {\n // This function uses the graceful-fs shared queue\n if (!err) {\n resetQueue()\n }\n\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n })\n }\n\n Object.defineProperty(close, previousSymbol, {\n value: fs$close\n })\n return close\n })(fs.close)\n\n fs.closeSync = (function (fs$closeSync) {\n function closeSync (fd) {\n // This function uses the graceful-fs shared queue\n fs$closeSync.apply(fs, arguments)\n resetQueue()\n }\n\n Object.defineProperty(closeSync, previousSymbol, {\n value: fs$closeSync\n })\n return closeSync\n })(fs.closeSync)\n\n if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n process.on('exit', function() {\n debug(fs[gracefulQueue])\n require('assert').equal(fs[gracefulQueue].length, 0)\n })\n }\n}\n\nif (!global[gracefulQueue]) {\n publishQueue(global, fs[gracefulQueue]);\n}\n\nmodule.exports = patch(clone(fs))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {\n module.exports = patch(fs)\n fs.__patched = true;\n}\n\nfunction patch (fs) {\n // Everything that references the open() function needs to be in here\n polyfills(fs)\n fs.gracefulify = patch\n\n fs.createReadStream = createReadStream\n fs.createWriteStream = createWriteStream\n var fs$readFile = fs.readFile\n fs.readFile = readFile\n function readFile (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readFile(path, options, cb)\n\n function go$readFile (path, options, cb, startTime) {\n return fs$readFile(path, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$writeFile = fs.writeFile\n fs.writeFile = writeFile\n function writeFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$writeFile(path, data, options, cb)\n\n function go$writeFile (path, data, options, cb, startTime) {\n return fs$writeFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$appendFile = fs.appendFile\n if (fs$appendFile)\n fs.appendFile = appendFile\n function appendFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$appendFile(path, data, options, cb)\n\n function go$appendFile (path, data, options, cb, startTime) {\n return fs$appendFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$copyFile = fs.copyFile\n if (fs$copyFile)\n fs.copyFile = copyFile\n function copyFile (src, dest, flags, cb) {\n if (typeof flags === 'function') {\n cb = flags\n flags = 0\n }\n return go$copyFile(src, dest, flags, cb)\n\n function go$copyFile (src, dest, flags, cb, startTime) {\n return fs$copyFile(src, dest, flags, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$readdir = fs.readdir\n fs.readdir = readdir\n var noReaddirOptionVersions = /^v[0-5]\\./\n function readdir (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n var go$readdir = noReaddirOptionVersions.test(process.version)\n ? function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, fs$readdirCallback(\n path, options, cb, startTime\n ))\n }\n : function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, options, fs$readdirCallback(\n path, options, cb, startTime\n ))\n }\n\n return go$readdir(path, options, cb)\n\n function fs$readdirCallback (path, options, cb, startTime) {\n return function (err, files) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([\n go$readdir,\n [path, options, cb],\n err,\n startTime || Date.now(),\n Date.now()\n ])\n else {\n if (files && files.sort)\n files.sort()\n\n if (typeof cb === 'function')\n cb.call(this, err, files)\n }\n }\n }\n }\n\n if (process.version.substr(0, 4) === 'v0.8') {\n var legStreams = legacy(fs)\n ReadStream = legStreams.ReadStream\n WriteStream = legStreams.WriteStream\n }\n\n var fs$ReadStream = fs.ReadStream\n if (fs$ReadStream) {\n ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n ReadStream.prototype.open = ReadStream$open\n }\n\n var fs$WriteStream = fs.WriteStream\n if (fs$WriteStream) {\n WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n WriteStream.prototype.open = WriteStream$open\n }\n\n Object.defineProperty(fs, 'ReadStream', {\n get: function () {\n return ReadStream\n },\n set: function (val) {\n ReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n Object.defineProperty(fs, 'WriteStream', {\n get: function () {\n return WriteStream\n },\n set: function (val) {\n WriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n // legacy names\n var FileReadStream = ReadStream\n Object.defineProperty(fs, 'FileReadStream', {\n get: function () {\n return FileReadStream\n },\n set: function (val) {\n FileReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n var FileWriteStream = WriteStream\n Object.defineProperty(fs, 'FileWriteStream', {\n get: function () {\n return FileWriteStream\n },\n set: function (val) {\n FileWriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n function ReadStream (path, options) {\n if (this instanceof ReadStream)\n return fs$ReadStream.apply(this, arguments), this\n else\n return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n }\n\n function ReadStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n if (that.autoClose)\n that.destroy()\n\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n that.read()\n }\n })\n }\n\n function WriteStream (path, options) {\n if (this instanceof WriteStream)\n return fs$WriteStream.apply(this, arguments), this\n else\n return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n }\n\n function WriteStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n that.destroy()\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n }\n })\n }\n\n function createReadStream (path, options) {\n return new fs.ReadStream(path, options)\n }\n\n function createWriteStream (path, options) {\n return new fs.WriteStream(path, options)\n }\n\n var fs$open = fs.open\n fs.open = open\n function open (path, flags, mode, cb) {\n if (typeof mode === 'function')\n cb = mode, mode = null\n\n return go$open(path, flags, mode, cb)\n\n function go$open (path, flags, mode, cb, startTime) {\n return fs$open(path, flags, mode, function (err, fd) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n return fs\n}\n\nfunction enqueue (elem) {\n debug('ENQUEUE', elem[0].name, elem[1])\n fs[gracefulQueue].push(elem)\n retry()\n}\n\n// keep track of the timeout between retry() calls\nvar retryTimer\n\n// reset the startTime and lastTime to now\n// this resets the start of the 60 second overall timeout as well as the\n// delay between attempts so that we'll retry these jobs sooner\nfunction resetQueue () {\n var now = Date.now()\n for (var i = 0; i < fs[gracefulQueue].length; ++i) {\n // entries that are only a length of 2 are from an older version, don't\n // bother modifying those since they'll be retried anyway.\n if (fs[gracefulQueue][i].length > 2) {\n fs[gracefulQueue][i][3] = now // startTime\n fs[gracefulQueue][i][4] = now // lastTime\n }\n }\n // call retry to make sure we're actively processing the queue\n retry()\n}\n\nfunction retry () {\n // clear the timer and remove it to help prevent unintended concurrency\n clearTimeout(retryTimer)\n retryTimer = undefined\n\n if (fs[gracefulQueue].length === 0)\n return\n\n var elem = fs[gracefulQueue].shift()\n var fn = elem[0]\n var args = elem[1]\n // these items may be unset if they were added by an older graceful-fs\n var err = elem[2]\n var startTime = elem[3]\n var lastTime = elem[4]\n\n // if we don't have a startTime we have no way of knowing if we've waited\n // long enough, so go ahead and retry this item now\n if (startTime === undefined) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args)\n } else if (Date.now() - startTime >= 60000) {\n // it's been more than 60 seconds total, bail now\n debug('TIMEOUT', fn.name, args)\n var cb = args.pop()\n if (typeof cb === 'function')\n cb.call(null, err)\n } else {\n // the amount of time between the last attempt and right now\n var sinceAttempt = Date.now() - lastTime\n // the amount of time between when we first tried, and when we last tried\n // rounded up to at least 1\n var sinceStart = Math.max(lastTime - startTime, 1)\n // backoff. wait longer than the total time we've been retrying, but only\n // up to a maximum of 100ms\n var desiredDelay = Math.min(sinceStart * 1.2, 100)\n // it's been long enough since the last retry, do it again\n if (sinceAttempt >= desiredDelay) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args.concat([startTime]))\n } else {\n // if we can't do this job yet, push it to the end of the queue\n // and let the next iteration check again\n fs[gracefulQueue].push(elem)\n }\n }\n\n // schedule our next run if one isn't already scheduled\n if (retryTimer === undefined) {\n retryTimer = setTimeout(retry, 0)\n }\n}\n","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n","var constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\n// This check is needed until node.js 12 is required\nif (typeof process.chdir === 'function') {\n var chdir = process.chdir\n process.chdir = function (d) {\n cwd = null\n chdir.call(process, d)\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (fs.chmod && !fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (fs.chown && !fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = typeof fs.rename !== 'function' ? fs.rename\n : (function (fs$rename) {\n function rename (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\" || er.code === \"EBUSY\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename)\n return rename\n })(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = typeof fs.read !== 'function' ? fs.read\n : (function (fs$read) {\n function read (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n\n // This ensures `util.promisify` works as it does for native `fs.read`.\n if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)\n return read\n })(fs.read)\n\n fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync\n : (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n\n function patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n }\n\n function patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\") && fs.futimes) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else if (fs.futimes) {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n }\n\n function chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n\n function chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n function statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n function callback (er, stats) {\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n if (cb) cb.apply(this, arguments)\n }\n return options ? orig.call(fs, target, options, callback)\n : orig.call(fs, target, callback)\n }\n }\n\n function statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options) {\n var stats = options ? orig.call(fs, target, options)\n : orig.call(fs, target)\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n return stats;\n }\n }\n\n // ENOSYS means that the fs doesn't support the op. Just ignore\n // that, because it doesn't matter.\n //\n // if there's no getuid, or if getuid() is something other\n // than 0, and the error is EINVAL or EPERM, then just ignore\n // it.\n //\n // This specific case is a silent failure in cp, install, tar,\n // and most other unix tools that manage permissions.\n //\n // When running as root, or if other types of errors are\n // encountered, then it's strict.\n function chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n }\n}\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * is-extglob \n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n var match;\n while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n if (match[2]) return true;\n str = str.slice(match.index + match[0].length);\n }\n\n return false;\n};\n","/* eslint-disable yoda */\n'use strict';\n\nconst isFullwidthCodePoint = codePoint => {\n\tif (Number.isNaN(codePoint)) {\n\t\treturn false;\n\t}\n\n\t// Code points are derived from:\n\t// http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt\n\tif (\n\t\tcodePoint >= 0x1100 && (\n\t\t\tcodePoint <= 0x115F || // Hangul Jamo\n\t\t\tcodePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n\t\t\tcodePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET\n\t\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t\t(0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||\n\t\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t\t(0x3250 <= codePoint && codePoint <= 0x4DBF) ||\n\t\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t\t(0x4E00 <= codePoint && codePoint <= 0xA4C6) ||\n\t\t\t// Hangul Jamo Extended-A\n\t\t\t(0xA960 <= codePoint && codePoint <= 0xA97C) ||\n\t\t\t// Hangul Syllables\n\t\t\t(0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n\t\t\t// CJK Compatibility Ideographs\n\t\t\t(0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n\t\t\t// Vertical Forms\n\t\t\t(0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n\t\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t\t(0xFE30 <= codePoint && codePoint <= 0xFE6B) ||\n\t\t\t// Halfwidth and Fullwidth Forms\n\t\t\t(0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n\t\t\t(0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||\n\t\t\t// Kana Supplement\n\t\t\t(0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n\t\t\t// Enclosed Ideographic Supplement\n\t\t\t(0x1F200 <= codePoint && codePoint <= 0x1F251) ||\n\t\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t\t(0x20000 <= codePoint && codePoint <= 0x3FFFD)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\nmodule.exports = isFullwidthCodePoint;\nmodule.exports.default = isFullwidthCodePoint;\n","/*!\n * is-glob \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n var pipeIndex = -2;\n var closeSquareIndex = -2;\n var closeCurlyIndex = -2;\n var closeParenIndex = -2;\n var backSlashIndex = -2;\n while (index < str.length) {\n if (str[index] === '*') {\n return true;\n }\n\n if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\n return true;\n }\n\n if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\n if (closeSquareIndex < index) {\n closeSquareIndex = str.indexOf(']', index);\n }\n if (closeSquareIndex > index) {\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n }\n }\n\n if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\n closeCurlyIndex = str.indexOf('}', index);\n if (closeCurlyIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n return true;\n }\n }\n }\n\n if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\n closeParenIndex = str.indexOf(')', index);\n if (closeParenIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n\n if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\n if (pipeIndex < index) {\n pipeIndex = str.indexOf('|', index);\n }\n if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\n closeParenIndex = str.indexOf(')', pipeIndex);\n if (closeParenIndex > pipeIndex) {\n backSlashIndex = str.indexOf('\\\\', pipeIndex);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nvar relaxedCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n while (index < str.length) {\n if (/[*?{}()[\\]]/.test(str[index])) {\n return true;\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nmodule.exports = function isGlob(str, options) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n if (isExtglob(str)) {\n return true;\n }\n\n var check = strictCheck;\n\n // optionally relax check\n if (options && options.strict === false) {\n check = relaxedCheck;\n }\n\n return check(str);\n};\n","/*!\n * is-number \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","let _fs\ntry {\n _fs = require('graceful-fs')\n} catch (_) {\n _fs = require('fs')\n}\nconst universalify = require('universalify')\nconst { stringify, stripBom } = require('./utils')\n\nasync function _readFile (file, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n const fs = options.fs || _fs\n\n const shouldThrow = 'throws' in options ? options.throws : true\n\n let data = await universalify.fromCallback(fs.readFile)(file, options)\n\n data = stripBom(data)\n\n let obj\n try {\n obj = JSON.parse(data, options ? options.reviver : null)\n } catch (err) {\n if (shouldThrow) {\n err.message = `${file}: ${err.message}`\n throw err\n } else {\n return null\n }\n }\n\n return obj\n}\n\nconst readFile = universalify.fromPromise(_readFile)\n\nfunction readFileSync (file, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n const fs = options.fs || _fs\n\n const shouldThrow = 'throws' in options ? options.throws : true\n\n try {\n let content = fs.readFileSync(file, options)\n content = stripBom(content)\n return JSON.parse(content, options.reviver)\n } catch (err) {\n if (shouldThrow) {\n err.message = `${file}: ${err.message}`\n throw err\n } else {\n return null\n }\n }\n}\n\nasync function _writeFile (file, obj, options = {}) {\n const fs = options.fs || _fs\n\n const str = stringify(obj, options)\n\n await universalify.fromCallback(fs.writeFile)(file, str, options)\n}\n\nconst writeFile = universalify.fromPromise(_writeFile)\n\nfunction writeFileSync (file, obj, options = {}) {\n const fs = options.fs || _fs\n\n const str = stringify(obj, options)\n // not sure if fs.writeFileSync returns anything, but just in case\n return fs.writeFileSync(file, str, options)\n}\n\nconst jsonfile = {\n readFile,\n readFileSync,\n writeFile,\n writeFileSync\n}\n\nmodule.exports = jsonfile\n","function stringify (obj, { EOL = '\\n', finalEOL = true, replacer = null, spaces } = {}) {\n const EOF = finalEOL ? EOL : ''\n const str = JSON.stringify(obj, replacer, spaces)\n\n return str.replace(/\\n/g, EOL) + EOF\n}\n\nfunction stripBom (content) {\n // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified\n if (Buffer.isBuffer(content)) content = content.toString('utf8')\n return content.replace(/^\\uFEFF/, '')\n}\n\nmodule.exports = { stringify, stripBom }\n","var util = require('util');\nvar PassThrough = require('readable-stream/passthrough');\n\nmodule.exports = {\n Readable: Readable,\n Writable: Writable\n};\n\nutil.inherits(Readable, PassThrough);\nutil.inherits(Writable, PassThrough);\n\n// Patch the given method of instance so that the callback\n// is executed once, before the actual method is called the\n// first time.\nfunction beforeFirstCall(instance, method, callback) {\n instance[method] = function() {\n delete instance[method];\n callback.apply(this, arguments);\n return this[method].apply(this, arguments);\n };\n}\n\nfunction Readable(fn, options) {\n if (!(this instanceof Readable))\n return new Readable(fn, options);\n\n PassThrough.call(this, options);\n\n beforeFirstCall(this, '_read', function() {\n var source = fn.call(this, options);\n var emit = this.emit.bind(this, 'error');\n source.on('error', emit);\n source.pipe(this);\n });\n\n this.emit('readable');\n}\n\nfunction Writable(fn, options) {\n if (!(this instanceof Writable))\n return new Writable(fn, options);\n\n PassThrough.call(this, options);\n\n beforeFirstCall(this, '_write', function() {\n var destination = fn.call(this, options);\n var emit = this.emit.bind(this, 'error');\n destination.on('error', emit);\n this.pipe(destination);\n });\n\n this.emit('writable');\n}\n\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('stream');\n","module.exports = require('./readable').PassThrough\n","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n result++;\n }\n return result;\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObject(value) && objectToString.call(value) == regexpTag;\n}\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nmodule.exports = truncate;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n baseUniq = require('./_baseUniq'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nmodule.exports = union;\n","'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n const streamsQueue = []\n const args = slice.call(arguments)\n let merging = false\n let options = args[args.length - 1]\n\n if (options && !Array.isArray(options) && options.pipe == null) {\n args.pop()\n } else {\n options = {}\n }\n\n const doEnd = options.end !== false\n const doPipeError = options.pipeError === true\n if (options.objectMode == null) {\n options.objectMode = true\n }\n if (options.highWaterMark == null) {\n options.highWaterMark = 64 * 1024\n }\n const mergedStream = PassThrough(options)\n\n function addStream () {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options))\n }\n mergeStream()\n return this\n }\n\n function mergeStream () {\n if (merging) {\n return\n }\n merging = true\n\n let streams = streamsQueue.shift()\n if (!streams) {\n process.nextTick(endStream)\n return\n }\n if (!Array.isArray(streams)) {\n streams = [streams]\n }\n\n let pipesCount = streams.length + 1\n\n function next () {\n if (--pipesCount > 0) {\n return\n }\n merging = false\n mergeStream()\n }\n\n function pipe (stream) {\n function onend () {\n stream.removeListener('merge2UnpipeEnd', onend)\n stream.removeListener('end', onend)\n if (doPipeError) {\n stream.removeListener('error', onerror)\n }\n next()\n }\n function onerror (err) {\n mergedStream.emit('error', err)\n }\n // skip ended stream\n if (stream._readableState.endEmitted) {\n return next()\n }\n\n stream.on('merge2UnpipeEnd', onend)\n stream.on('end', onend)\n\n if (doPipeError) {\n stream.on('error', onerror)\n }\n\n stream.pipe(mergedStream, { end: false })\n // compatible for old stream\n stream.resume()\n }\n\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i])\n }\n\n next()\n }\n\n function endStream () {\n merging = false\n // emit 'queueDrain' when all streams merged.\n mergedStream.emit('queueDrain')\n if (doEnd) {\n mergedStream.end()\n }\n }\n\n mergedStream.setMaxListeners(0)\n mergedStream.add = addStream\n mergedStream.on('unpipe', function (stream) {\n stream.emit('merge2UnpipeEnd')\n })\n\n if (args.length) {\n addStream.apply(null, args)\n }\n return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n if (!Array.isArray(streams)) {\n // Backwards-compat with old-style streams\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options))\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error('Only readable stream can be merged.')\n }\n streams.pause()\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options)\n }\n }\n return streams\n}\n","'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\n\nconst isEmptyString = v => v === '' || v === './';\nconst hasBraces = v => {\n const index = v.indexOf('{');\n return index > -1 && v.indexOf('}', index) > -1;\n};\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array} `list` List of strings to match.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n\n let omit = new Set();\n let keep = new Set();\n let items = new Set();\n let negatives = 0;\n\n let onResult = state => {\n items.add(state.output);\n if (options && options.onResult) {\n options.onResult(state);\n }\n };\n\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n\n for (let item of list) {\n let matched = isMatch(item, true);\n\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n\n if (negated) {\n omit.add(matched.output);\n } else {\n omit.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter(item => !omit.has(item));\n\n if (options && matches.length === 0) {\n if (options.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n }\n\n if (options.nonull === true || options.nullglob === true) {\n return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n }\n }\n\n return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = new Set();\n let items = [];\n\n let onResult = state => {\n if (options.onResult) options.onResult(state);\n items.push(state.output);\n };\n\n let matches = new Set(micromatch(list, patterns, { ...options, onResult }));\n\n for (let item of items) {\n if (!matches.has(item)) {\n result.add(item);\n }\n }\n return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n if (Array.isArray(pattern)) {\n return pattern.some(p => micromatch.contains(str, p, options));\n }\n\n if (typeof pattern === 'string') {\n if (isEmptyString(str) || isEmptyString(pattern)) {\n return false;\n }\n\n if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n return true;\n }\n }\n\n return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n if (!utils.isObject(obj)) {\n throw new TypeError('Expected the first argument to be an object');\n }\n let keys = micromatch(Object.keys(obj), patterns, options);\n let res = {};\n for (let key of keys) res[key] = obj[key];\n return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (items.some(item => isMatch(item))) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (!items.every(item => isMatch(item))) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n let posix = utils.isWindows(options);\n let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n if (match) {\n return match.slice(1).map(v => v === void 0 ? '' : v);\n }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.parse(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str of braces(String(pattern), options)) {\n res.push(picomatch.parse(str, options));\n }\n }\n return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n if ((options && options.nobrace === true) || !hasBraces(pattern)) {\n return [pattern];\n }\n return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\n// exposed for tests\nmicromatch.hasBraces = hasBraces;\nmodule.exports = micromatch;\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n","'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n SEP: path.sep,\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split('.').map(Number);\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n return true;\n }\n return false;\n};\n\nexports.isWindows = options => {\n if (options && typeof options.windows === 'boolean') {\n return options.windows;\n }\n return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'), require('./types/other'));\n","module.exports = {\"application/prs.cww\":[\"cww\"],\"application/vnd.1000minds.decision-model+xml\":[\"1km\"],\"application/vnd.3gpp.pic-bw-large\":[\"plb\"],\"application/vnd.3gpp.pic-bw-small\":[\"psb\"],\"application/vnd.3gpp.pic-bw-var\":[\"pvb\"],\"application/vnd.3gpp2.tcap\":[\"tcap\"],\"application/vnd.3m.post-it-notes\":[\"pwn\"],\"application/vnd.accpac.simply.aso\":[\"aso\"],\"application/vnd.accpac.simply.imp\":[\"imp\"],\"application/vnd.acucobol\":[\"acu\"],\"application/vnd.acucorp\":[\"atc\",\"acutc\"],\"application/vnd.adobe.air-application-installer-package+zip\":[\"air\"],\"application/vnd.adobe.formscentral.fcdt\":[\"fcdt\"],\"application/vnd.adobe.fxp\":[\"fxp\",\"fxpl\"],\"application/vnd.adobe.xdp+xml\":[\"xdp\"],\"application/vnd.adobe.xfdf\":[\"xfdf\"],\"application/vnd.ahead.space\":[\"ahead\"],\"application/vnd.airzip.filesecure.azf\":[\"azf\"],\"application/vnd.airzip.filesecure.azs\":[\"azs\"],\"application/vnd.amazon.ebook\":[\"azw\"],\"application/vnd.americandynamics.acc\":[\"acc\"],\"application/vnd.amiga.ami\":[\"ami\"],\"application/vnd.android.package-archive\":[\"apk\"],\"application/vnd.anser-web-certificate-issue-initiation\":[\"cii\"],\"application/vnd.anser-web-funds-transfer-initiation\":[\"fti\"],\"application/vnd.antix.game-component\":[\"atx\"],\"application/vnd.apple.installer+xml\":[\"mpkg\"],\"application/vnd.apple.keynote\":[\"key\"],\"application/vnd.apple.mpegurl\":[\"m3u8\"],\"application/vnd.apple.numbers\":[\"numbers\"],\"application/vnd.apple.pages\":[\"pages\"],\"application/vnd.apple.pkpass\":[\"pkpass\"],\"application/vnd.aristanetworks.swi\":[\"swi\"],\"application/vnd.astraea-software.iota\":[\"iota\"],\"application/vnd.audiograph\":[\"aep\"],\"application/vnd.balsamiq.bmml+xml\":[\"bmml\"],\"application/vnd.blueice.multipass\":[\"mpm\"],\"application/vnd.bmi\":[\"bmi\"],\"application/vnd.businessobjects\":[\"rep\"],\"application/vnd.chemdraw+xml\":[\"cdxml\"],\"application/vnd.chipnuts.karaoke-mmd\":[\"mmd\"],\"application/vnd.cinderella\":[\"cdy\"],\"application/vnd.citationstyles.style+xml\":[\"csl\"],\"application/vnd.claymore\":[\"cla\"],\"application/vnd.cloanto.rp9\":[\"rp9\"],\"application/vnd.clonk.c4group\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"],\"application/vnd.cluetrust.cartomobile-config\":[\"c11amc\"],\"application/vnd.cluetrust.cartomobile-config-pkg\":[\"c11amz\"],\"application/vnd.commonspace\":[\"csp\"],\"application/vnd.contact.cmsg\":[\"cdbcmsg\"],\"application/vnd.cosmocaller\":[\"cmc\"],\"application/vnd.crick.clicker\":[\"clkx\"],\"application/vnd.crick.clicker.keyboard\":[\"clkk\"],\"application/vnd.crick.clicker.palette\":[\"clkp\"],\"application/vnd.crick.clicker.template\":[\"clkt\"],\"application/vnd.crick.clicker.wordbank\":[\"clkw\"],\"application/vnd.criticaltools.wbs+xml\":[\"wbs\"],\"application/vnd.ctc-posml\":[\"pml\"],\"application/vnd.cups-ppd\":[\"ppd\"],\"application/vnd.curl.car\":[\"car\"],\"application/vnd.curl.pcurl\":[\"pcurl\"],\"application/vnd.dart\":[\"dart\"],\"application/vnd.data-vision.rdz\":[\"rdz\"],\"application/vnd.dbf\":[\"dbf\"],\"application/vnd.dece.data\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"],\"application/vnd.dece.ttml+xml\":[\"uvt\",\"uvvt\"],\"application/vnd.dece.unspecified\":[\"uvx\",\"uvvx\"],\"application/vnd.dece.zip\":[\"uvz\",\"uvvz\"],\"application/vnd.denovo.fcselayout-link\":[\"fe_launch\"],\"application/vnd.dna\":[\"dna\"],\"application/vnd.dolby.mlp\":[\"mlp\"],\"application/vnd.dpgraph\":[\"dpg\"],\"application/vnd.dreamfactory\":[\"dfac\"],\"application/vnd.ds-keypoint\":[\"kpxx\"],\"application/vnd.dvb.ait\":[\"ait\"],\"application/vnd.dvb.service\":[\"svc\"],\"application/vnd.dynageo\":[\"geo\"],\"application/vnd.ecowin.chart\":[\"mag\"],\"application/vnd.enliven\":[\"nml\"],\"application/vnd.epson.esf\":[\"esf\"],\"application/vnd.epson.msf\":[\"msf\"],\"application/vnd.epson.quickanime\":[\"qam\"],\"application/vnd.epson.salt\":[\"slt\"],\"application/vnd.epson.ssf\":[\"ssf\"],\"application/vnd.eszigno3+xml\":[\"es3\",\"et3\"],\"application/vnd.ezpix-album\":[\"ez2\"],\"application/vnd.ezpix-package\":[\"ez3\"],\"application/vnd.fdf\":[\"fdf\"],\"application/vnd.fdsn.mseed\":[\"mseed\"],\"application/vnd.fdsn.seed\":[\"seed\",\"dataless\"],\"application/vnd.flographit\":[\"gph\"],\"application/vnd.fluxtime.clip\":[\"ftc\"],\"application/vnd.framemaker\":[\"fm\",\"frame\",\"maker\",\"book\"],\"application/vnd.frogans.fnc\":[\"fnc\"],\"application/vnd.frogans.ltf\":[\"ltf\"],\"application/vnd.fsc.weblaunch\":[\"fsc\"],\"application/vnd.fujitsu.oasys\":[\"oas\"],\"application/vnd.fujitsu.oasys2\":[\"oa2\"],\"application/vnd.fujitsu.oasys3\":[\"oa3\"],\"application/vnd.fujitsu.oasysgp\":[\"fg5\"],\"application/vnd.fujitsu.oasysprs\":[\"bh2\"],\"application/vnd.fujixerox.ddd\":[\"ddd\"],\"application/vnd.fujixerox.docuworks\":[\"xdw\"],\"application/vnd.fujixerox.docuworks.binder\":[\"xbd\"],\"application/vnd.fuzzysheet\":[\"fzs\"],\"application/vnd.genomatix.tuxedo\":[\"txd\"],\"application/vnd.geogebra.file\":[\"ggb\"],\"application/vnd.geogebra.tool\":[\"ggt\"],\"application/vnd.geometry-explorer\":[\"gex\",\"gre\"],\"application/vnd.geonext\":[\"gxt\"],\"application/vnd.geoplan\":[\"g2w\"],\"application/vnd.geospace\":[\"g3w\"],\"application/vnd.gmx\":[\"gmx\"],\"application/vnd.google-apps.document\":[\"gdoc\"],\"application/vnd.google-apps.presentation\":[\"gslides\"],\"application/vnd.google-apps.spreadsheet\":[\"gsheet\"],\"application/vnd.google-earth.kml+xml\":[\"kml\"],\"application/vnd.google-earth.kmz\":[\"kmz\"],\"application/vnd.grafeq\":[\"gqf\",\"gqs\"],\"application/vnd.groove-account\":[\"gac\"],\"application/vnd.groove-help\":[\"ghf\"],\"application/vnd.groove-identity-message\":[\"gim\"],\"application/vnd.groove-injector\":[\"grv\"],\"application/vnd.groove-tool-message\":[\"gtm\"],\"application/vnd.groove-tool-template\":[\"tpl\"],\"application/vnd.groove-vcard\":[\"vcg\"],\"application/vnd.hal+xml\":[\"hal\"],\"application/vnd.handheld-entertainment+xml\":[\"zmm\"],\"application/vnd.hbci\":[\"hbci\"],\"application/vnd.hhe.lesson-player\":[\"les\"],\"application/vnd.hp-hpgl\":[\"hpgl\"],\"application/vnd.hp-hpid\":[\"hpid\"],\"application/vnd.hp-hps\":[\"hps\"],\"application/vnd.hp-jlyt\":[\"jlt\"],\"application/vnd.hp-pcl\":[\"pcl\"],\"application/vnd.hp-pclxl\":[\"pclxl\"],\"application/vnd.hydrostatix.sof-data\":[\"sfd-hdstx\"],\"application/vnd.ibm.minipay\":[\"mpy\"],\"application/vnd.ibm.modcap\":[\"afp\",\"listafp\",\"list3820\"],\"application/vnd.ibm.rights-management\":[\"irm\"],\"application/vnd.ibm.secure-container\":[\"sc\"],\"application/vnd.iccprofile\":[\"icc\",\"icm\"],\"application/vnd.igloader\":[\"igl\"],\"application/vnd.immervision-ivp\":[\"ivp\"],\"application/vnd.immervision-ivu\":[\"ivu\"],\"application/vnd.insors.igm\":[\"igm\"],\"application/vnd.intercon.formnet\":[\"xpw\",\"xpx\"],\"application/vnd.intergeo\":[\"i2g\"],\"application/vnd.intu.qbo\":[\"qbo\"],\"application/vnd.intu.qfx\":[\"qfx\"],\"application/vnd.ipunplugged.rcprofile\":[\"rcprofile\"],\"application/vnd.irepository.package+xml\":[\"irp\"],\"application/vnd.is-xpr\":[\"xpr\"],\"application/vnd.isac.fcs\":[\"fcs\"],\"application/vnd.jam\":[\"jam\"],\"application/vnd.jcp.javame.midlet-rms\":[\"rms\"],\"application/vnd.jisp\":[\"jisp\"],\"application/vnd.joost.joda-archive\":[\"joda\"],\"application/vnd.kahootz\":[\"ktz\",\"ktr\"],\"application/vnd.kde.karbon\":[\"karbon\"],\"application/vnd.kde.kchart\":[\"chrt\"],\"application/vnd.kde.kformula\":[\"kfo\"],\"application/vnd.kde.kivio\":[\"flw\"],\"application/vnd.kde.kontour\":[\"kon\"],\"application/vnd.kde.kpresenter\":[\"kpr\",\"kpt\"],\"application/vnd.kde.kspread\":[\"ksp\"],\"application/vnd.kde.kword\":[\"kwd\",\"kwt\"],\"application/vnd.kenameaapp\":[\"htke\"],\"application/vnd.kidspiration\":[\"kia\"],\"application/vnd.kinar\":[\"kne\",\"knp\"],\"application/vnd.koan\":[\"skp\",\"skd\",\"skt\",\"skm\"],\"application/vnd.kodak-descriptor\":[\"sse\"],\"application/vnd.las.las+xml\":[\"lasxml\"],\"application/vnd.llamagraphics.life-balance.desktop\":[\"lbd\"],\"application/vnd.llamagraphics.life-balance.exchange+xml\":[\"lbe\"],\"application/vnd.lotus-1-2-3\":[\"123\"],\"application/vnd.lotus-approach\":[\"apr\"],\"application/vnd.lotus-freelance\":[\"pre\"],\"application/vnd.lotus-notes\":[\"nsf\"],\"application/vnd.lotus-organizer\":[\"org\"],\"application/vnd.lotus-screencam\":[\"scm\"],\"application/vnd.lotus-wordpro\":[\"lwp\"],\"application/vnd.macports.portpkg\":[\"portpkg\"],\"application/vnd.mapbox-vector-tile\":[\"mvt\"],\"application/vnd.mcd\":[\"mcd\"],\"application/vnd.medcalcdata\":[\"mc1\"],\"application/vnd.mediastation.cdkey\":[\"cdkey\"],\"application/vnd.mfer\":[\"mwf\"],\"application/vnd.mfmp\":[\"mfm\"],\"application/vnd.micrografx.flo\":[\"flo\"],\"application/vnd.micrografx.igx\":[\"igx\"],\"application/vnd.mif\":[\"mif\"],\"application/vnd.mobius.daf\":[\"daf\"],\"application/vnd.mobius.dis\":[\"dis\"],\"application/vnd.mobius.mbk\":[\"mbk\"],\"application/vnd.mobius.mqy\":[\"mqy\"],\"application/vnd.mobius.msl\":[\"msl\"],\"application/vnd.mobius.plc\":[\"plc\"],\"application/vnd.mobius.txf\":[\"txf\"],\"application/vnd.mophun.application\":[\"mpn\"],\"application/vnd.mophun.certificate\":[\"mpc\"],\"application/vnd.mozilla.xul+xml\":[\"xul\"],\"application/vnd.ms-artgalry\":[\"cil\"],\"application/vnd.ms-cab-compressed\":[\"cab\"],\"application/vnd.ms-excel\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"],\"application/vnd.ms-excel.addin.macroenabled.12\":[\"xlam\"],\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":[\"xlsb\"],\"application/vnd.ms-excel.sheet.macroenabled.12\":[\"xlsm\"],\"application/vnd.ms-excel.template.macroenabled.12\":[\"xltm\"],\"application/vnd.ms-fontobject\":[\"eot\"],\"application/vnd.ms-htmlhelp\":[\"chm\"],\"application/vnd.ms-ims\":[\"ims\"],\"application/vnd.ms-lrm\":[\"lrm\"],\"application/vnd.ms-officetheme\":[\"thmx\"],\"application/vnd.ms-outlook\":[\"msg\"],\"application/vnd.ms-pki.seccat\":[\"cat\"],\"application/vnd.ms-pki.stl\":[\"*stl\"],\"application/vnd.ms-powerpoint\":[\"ppt\",\"pps\",\"pot\"],\"application/vnd.ms-powerpoint.addin.macroenabled.12\":[\"ppam\"],\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":[\"pptm\"],\"application/vnd.ms-powerpoint.slide.macroenabled.12\":[\"sldm\"],\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":[\"ppsm\"],\"application/vnd.ms-powerpoint.template.macroenabled.12\":[\"potm\"],\"application/vnd.ms-project\":[\"mpp\",\"mpt\"],\"application/vnd.ms-word.document.macroenabled.12\":[\"docm\"],\"application/vnd.ms-word.template.macroenabled.12\":[\"dotm\"],\"application/vnd.ms-works\":[\"wps\",\"wks\",\"wcm\",\"wdb\"],\"application/vnd.ms-wpl\":[\"wpl\"],\"application/vnd.ms-xpsdocument\":[\"xps\"],\"application/vnd.mseq\":[\"mseq\"],\"application/vnd.musician\":[\"mus\"],\"application/vnd.muvee.style\":[\"msty\"],\"application/vnd.mynfc\":[\"taglet\"],\"application/vnd.neurolanguage.nlu\":[\"nlu\"],\"application/vnd.nitf\":[\"ntf\",\"nitf\"],\"application/vnd.noblenet-directory\":[\"nnd\"],\"application/vnd.noblenet-sealer\":[\"nns\"],\"application/vnd.noblenet-web\":[\"nnw\"],\"application/vnd.nokia.n-gage.ac+xml\":[\"*ac\"],\"application/vnd.nokia.n-gage.data\":[\"ngdat\"],\"application/vnd.nokia.n-gage.symbian.install\":[\"n-gage\"],\"application/vnd.nokia.radio-preset\":[\"rpst\"],\"application/vnd.nokia.radio-presets\":[\"rpss\"],\"application/vnd.novadigm.edm\":[\"edm\"],\"application/vnd.novadigm.edx\":[\"edx\"],\"application/vnd.novadigm.ext\":[\"ext\"],\"application/vnd.oasis.opendocument.chart\":[\"odc\"],\"application/vnd.oasis.opendocument.chart-template\":[\"otc\"],\"application/vnd.oasis.opendocument.database\":[\"odb\"],\"application/vnd.oasis.opendocument.formula\":[\"odf\"],\"application/vnd.oasis.opendocument.formula-template\":[\"odft\"],\"application/vnd.oasis.opendocument.graphics\":[\"odg\"],\"application/vnd.oasis.opendocument.graphics-template\":[\"otg\"],\"application/vnd.oasis.opendocument.image\":[\"odi\"],\"application/vnd.oasis.opendocument.image-template\":[\"oti\"],\"application/vnd.oasis.opendocument.presentation\":[\"odp\"],\"application/vnd.oasis.opendocument.presentation-template\":[\"otp\"],\"application/vnd.oasis.opendocument.spreadsheet\":[\"ods\"],\"application/vnd.oasis.opendocument.spreadsheet-template\":[\"ots\"],\"application/vnd.oasis.opendocument.text\":[\"odt\"],\"application/vnd.oasis.opendocument.text-master\":[\"odm\"],\"application/vnd.oasis.opendocument.text-template\":[\"ott\"],\"application/vnd.oasis.opendocument.text-web\":[\"oth\"],\"application/vnd.olpc-sugar\":[\"xo\"],\"application/vnd.oma.dd2+xml\":[\"dd2\"],\"application/vnd.openblox.game+xml\":[\"obgx\"],\"application/vnd.openofficeorg.extension\":[\"oxt\"],\"application/vnd.openstreetmap.data+xml\":[\"osm\"],\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":[\"pptx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slide\":[\"sldx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":[\"ppsx\"],\"application/vnd.openxmlformats-officedocument.presentationml.template\":[\"potx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":[\"xlsx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":[\"xltx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":[\"docx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":[\"dotx\"],\"application/vnd.osgeo.mapguide.package\":[\"mgp\"],\"application/vnd.osgi.dp\":[\"dp\"],\"application/vnd.osgi.subsystem\":[\"esa\"],\"application/vnd.palm\":[\"pdb\",\"pqa\",\"oprc\"],\"application/vnd.pawaafile\":[\"paw\"],\"application/vnd.pg.format\":[\"str\"],\"application/vnd.pg.osasli\":[\"ei6\"],\"application/vnd.picsel\":[\"efif\"],\"application/vnd.pmi.widget\":[\"wg\"],\"application/vnd.pocketlearn\":[\"plf\"],\"application/vnd.powerbuilder6\":[\"pbd\"],\"application/vnd.previewsystems.box\":[\"box\"],\"application/vnd.proteus.magazine\":[\"mgz\"],\"application/vnd.publishare-delta-tree\":[\"qps\"],\"application/vnd.pvi.ptid1\":[\"ptid\"],\"application/vnd.quark.quarkxpress\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"],\"application/vnd.rar\":[\"rar\"],\"application/vnd.realvnc.bed\":[\"bed\"],\"application/vnd.recordare.musicxml\":[\"mxl\"],\"application/vnd.recordare.musicxml+xml\":[\"musicxml\"],\"application/vnd.rig.cryptonote\":[\"cryptonote\"],\"application/vnd.rim.cod\":[\"cod\"],\"application/vnd.rn-realmedia\":[\"rm\"],\"application/vnd.rn-realmedia-vbr\":[\"rmvb\"],\"application/vnd.route66.link66+xml\":[\"link66\"],\"application/vnd.sailingtracker.track\":[\"st\"],\"application/vnd.seemail\":[\"see\"],\"application/vnd.sema\":[\"sema\"],\"application/vnd.semd\":[\"semd\"],\"application/vnd.semf\":[\"semf\"],\"application/vnd.shana.informed.formdata\":[\"ifm\"],\"application/vnd.shana.informed.formtemplate\":[\"itp\"],\"application/vnd.shana.informed.interchange\":[\"iif\"],\"application/vnd.shana.informed.package\":[\"ipk\"],\"application/vnd.simtech-mindmapper\":[\"twd\",\"twds\"],\"application/vnd.smaf\":[\"mmf\"],\"application/vnd.smart.teacher\":[\"teacher\"],\"application/vnd.software602.filler.form+xml\":[\"fo\"],\"application/vnd.solent.sdkm+xml\":[\"sdkm\",\"sdkd\"],\"application/vnd.spotfire.dxp\":[\"dxp\"],\"application/vnd.spotfire.sfs\":[\"sfs\"],\"application/vnd.stardivision.calc\":[\"sdc\"],\"application/vnd.stardivision.draw\":[\"sda\"],\"application/vnd.stardivision.impress\":[\"sdd\"],\"application/vnd.stardivision.math\":[\"smf\"],\"application/vnd.stardivision.writer\":[\"sdw\",\"vor\"],\"application/vnd.stardivision.writer-global\":[\"sgl\"],\"application/vnd.stepmania.package\":[\"smzip\"],\"application/vnd.stepmania.stepchart\":[\"sm\"],\"application/vnd.sun.wadl+xml\":[\"wadl\"],\"application/vnd.sun.xml.calc\":[\"sxc\"],\"application/vnd.sun.xml.calc.template\":[\"stc\"],\"application/vnd.sun.xml.draw\":[\"sxd\"],\"application/vnd.sun.xml.draw.template\":[\"std\"],\"application/vnd.sun.xml.impress\":[\"sxi\"],\"application/vnd.sun.xml.impress.template\":[\"sti\"],\"application/vnd.sun.xml.math\":[\"sxm\"],\"application/vnd.sun.xml.writer\":[\"sxw\"],\"application/vnd.sun.xml.writer.global\":[\"sxg\"],\"application/vnd.sun.xml.writer.template\":[\"stw\"],\"application/vnd.sus-calendar\":[\"sus\",\"susp\"],\"application/vnd.svd\":[\"svd\"],\"application/vnd.symbian.install\":[\"sis\",\"sisx\"],\"application/vnd.syncml+xml\":[\"xsm\"],\"application/vnd.syncml.dm+wbxml\":[\"bdm\"],\"application/vnd.syncml.dm+xml\":[\"xdm\"],\"application/vnd.syncml.dmddf+xml\":[\"ddf\"],\"application/vnd.tao.intent-module-archive\":[\"tao\"],\"application/vnd.tcpdump.pcap\":[\"pcap\",\"cap\",\"dmp\"],\"application/vnd.tmobile-livetv\":[\"tmo\"],\"application/vnd.trid.tpt\":[\"tpt\"],\"application/vnd.triscape.mxs\":[\"mxs\"],\"application/vnd.trueapp\":[\"tra\"],\"application/vnd.ufdl\":[\"ufd\",\"ufdl\"],\"application/vnd.uiq.theme\":[\"utz\"],\"application/vnd.umajin\":[\"umj\"],\"application/vnd.unity\":[\"unityweb\"],\"application/vnd.uoml+xml\":[\"uoml\"],\"application/vnd.vcx\":[\"vcx\"],\"application/vnd.visio\":[\"vsd\",\"vst\",\"vss\",\"vsw\"],\"application/vnd.visionary\":[\"vis\"],\"application/vnd.vsf\":[\"vsf\"],\"application/vnd.wap.wbxml\":[\"wbxml\"],\"application/vnd.wap.wmlc\":[\"wmlc\"],\"application/vnd.wap.wmlscriptc\":[\"wmlsc\"],\"application/vnd.webturbo\":[\"wtb\"],\"application/vnd.wolfram.player\":[\"nbp\"],\"application/vnd.wordperfect\":[\"wpd\"],\"application/vnd.wqd\":[\"wqd\"],\"application/vnd.wt.stf\":[\"stf\"],\"application/vnd.xara\":[\"xar\"],\"application/vnd.xfdl\":[\"xfdl\"],\"application/vnd.yamaha.hv-dic\":[\"hvd\"],\"application/vnd.yamaha.hv-script\":[\"hvs\"],\"application/vnd.yamaha.hv-voice\":[\"hvp\"],\"application/vnd.yamaha.openscoreformat\":[\"osf\"],\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":[\"osfpvg\"],\"application/vnd.yamaha.smaf-audio\":[\"saf\"],\"application/vnd.yamaha.smaf-phrase\":[\"spf\"],\"application/vnd.yellowriver-custom-menu\":[\"cmp\"],\"application/vnd.zul\":[\"zir\",\"zirz\"],\"application/vnd.zzazz.deck+xml\":[\"zaz\"],\"application/x-7z-compressed\":[\"7z\"],\"application/x-abiword\":[\"abw\"],\"application/x-ace-compressed\":[\"ace\"],\"application/x-apple-diskimage\":[\"*dmg\"],\"application/x-arj\":[\"arj\"],\"application/x-authorware-bin\":[\"aab\",\"x32\",\"u32\",\"vox\"],\"application/x-authorware-map\":[\"aam\"],\"application/x-authorware-seg\":[\"aas\"],\"application/x-bcpio\":[\"bcpio\"],\"application/x-bdoc\":[\"*bdoc\"],\"application/x-bittorrent\":[\"torrent\"],\"application/x-blorb\":[\"blb\",\"blorb\"],\"application/x-bzip\":[\"bz\"],\"application/x-bzip2\":[\"bz2\",\"boz\"],\"application/x-cbr\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"],\"application/x-cdlink\":[\"vcd\"],\"application/x-cfs-compressed\":[\"cfs\"],\"application/x-chat\":[\"chat\"],\"application/x-chess-pgn\":[\"pgn\"],\"application/x-chrome-extension\":[\"crx\"],\"application/x-cocoa\":[\"cco\"],\"application/x-conference\":[\"nsc\"],\"application/x-cpio\":[\"cpio\"],\"application/x-csh\":[\"csh\"],\"application/x-debian-package\":[\"*deb\",\"udeb\"],\"application/x-dgc-compressed\":[\"dgc\"],\"application/x-director\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"],\"application/x-doom\":[\"wad\"],\"application/x-dtbncx+xml\":[\"ncx\"],\"application/x-dtbook+xml\":[\"dtb\"],\"application/x-dtbresource+xml\":[\"res\"],\"application/x-dvi\":[\"dvi\"],\"application/x-envoy\":[\"evy\"],\"application/x-eva\":[\"eva\"],\"application/x-font-bdf\":[\"bdf\"],\"application/x-font-ghostscript\":[\"gsf\"],\"application/x-font-linux-psf\":[\"psf\"],\"application/x-font-pcf\":[\"pcf\"],\"application/x-font-snf\":[\"snf\"],\"application/x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"application/x-freearc\":[\"arc\"],\"application/x-futuresplash\":[\"spl\"],\"application/x-gca-compressed\":[\"gca\"],\"application/x-glulx\":[\"ulx\"],\"application/x-gnumeric\":[\"gnumeric\"],\"application/x-gramps-xml\":[\"gramps\"],\"application/x-gtar\":[\"gtar\"],\"application/x-hdf\":[\"hdf\"],\"application/x-httpd-php\":[\"php\"],\"application/x-install-instructions\":[\"install\"],\"application/x-iso9660-image\":[\"*iso\"],\"application/x-iwork-keynote-sffkey\":[\"*key\"],\"application/x-iwork-numbers-sffnumbers\":[\"*numbers\"],\"application/x-iwork-pages-sffpages\":[\"*pages\"],\"application/x-java-archive-diff\":[\"jardiff\"],\"application/x-java-jnlp-file\":[\"jnlp\"],\"application/x-keepass2\":[\"kdbx\"],\"application/x-latex\":[\"latex\"],\"application/x-lua-bytecode\":[\"luac\"],\"application/x-lzh-compressed\":[\"lzh\",\"lha\"],\"application/x-makeself\":[\"run\"],\"application/x-mie\":[\"mie\"],\"application/x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"application/x-ms-application\":[\"application\"],\"application/x-ms-shortcut\":[\"lnk\"],\"application/x-ms-wmd\":[\"wmd\"],\"application/x-ms-wmz\":[\"wmz\"],\"application/x-ms-xbap\":[\"xbap\"],\"application/x-msaccess\":[\"mdb\"],\"application/x-msbinder\":[\"obd\"],\"application/x-mscardfile\":[\"crd\"],\"application/x-msclip\":[\"clp\"],\"application/x-msdos-program\":[\"*exe\"],\"application/x-msdownload\":[\"*exe\",\"*dll\",\"com\",\"bat\",\"*msi\"],\"application/x-msmediaview\":[\"mvb\",\"m13\",\"m14\"],\"application/x-msmetafile\":[\"*wmf\",\"*wmz\",\"*emf\",\"emz\"],\"application/x-msmoney\":[\"mny\"],\"application/x-mspublisher\":[\"pub\"],\"application/x-msschedule\":[\"scd\"],\"application/x-msterminal\":[\"trm\"],\"application/x-mswrite\":[\"wri\"],\"application/x-netcdf\":[\"nc\",\"cdf\"],\"application/x-ns-proxy-autoconfig\":[\"pac\"],\"application/x-nzb\":[\"nzb\"],\"application/x-perl\":[\"pl\",\"pm\"],\"application/x-pilot\":[\"*prc\",\"*pdb\"],\"application/x-pkcs12\":[\"p12\",\"pfx\"],\"application/x-pkcs7-certificates\":[\"p7b\",\"spc\"],\"application/x-pkcs7-certreqresp\":[\"p7r\"],\"application/x-rar-compressed\":[\"*rar\"],\"application/x-redhat-package-manager\":[\"rpm\"],\"application/x-research-info-systems\":[\"ris\"],\"application/x-sea\":[\"sea\"],\"application/x-sh\":[\"sh\"],\"application/x-shar\":[\"shar\"],\"application/x-shockwave-flash\":[\"swf\"],\"application/x-silverlight-app\":[\"xap\"],\"application/x-sql\":[\"sql\"],\"application/x-stuffit\":[\"sit\"],\"application/x-stuffitx\":[\"sitx\"],\"application/x-subrip\":[\"srt\"],\"application/x-sv4cpio\":[\"sv4cpio\"],\"application/x-sv4crc\":[\"sv4crc\"],\"application/x-t3vm-image\":[\"t3\"],\"application/x-tads\":[\"gam\"],\"application/x-tar\":[\"tar\"],\"application/x-tcl\":[\"tcl\",\"tk\"],\"application/x-tex\":[\"tex\"],\"application/x-tex-tfm\":[\"tfm\"],\"application/x-texinfo\":[\"texinfo\",\"texi\"],\"application/x-tgif\":[\"*obj\"],\"application/x-ustar\":[\"ustar\"],\"application/x-virtualbox-hdd\":[\"hdd\"],\"application/x-virtualbox-ova\":[\"ova\"],\"application/x-virtualbox-ovf\":[\"ovf\"],\"application/x-virtualbox-vbox\":[\"vbox\"],\"application/x-virtualbox-vbox-extpack\":[\"vbox-extpack\"],\"application/x-virtualbox-vdi\":[\"vdi\"],\"application/x-virtualbox-vhd\":[\"vhd\"],\"application/x-virtualbox-vmdk\":[\"vmdk\"],\"application/x-wais-source\":[\"src\"],\"application/x-web-app-manifest+json\":[\"webapp\"],\"application/x-x509-ca-cert\":[\"der\",\"crt\",\"pem\"],\"application/x-xfig\":[\"fig\"],\"application/x-xliff+xml\":[\"*xlf\"],\"application/x-xpinstall\":[\"xpi\"],\"application/x-xz\":[\"xz\"],\"application/x-zmachine\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"],\"audio/vnd.dece.audio\":[\"uva\",\"uvva\"],\"audio/vnd.digital-winds\":[\"eol\"],\"audio/vnd.dra\":[\"dra\"],\"audio/vnd.dts\":[\"dts\"],\"audio/vnd.dts.hd\":[\"dtshd\"],\"audio/vnd.lucent.voice\":[\"lvp\"],\"audio/vnd.ms-playready.media.pya\":[\"pya\"],\"audio/vnd.nuera.ecelp4800\":[\"ecelp4800\"],\"audio/vnd.nuera.ecelp7470\":[\"ecelp7470\"],\"audio/vnd.nuera.ecelp9600\":[\"ecelp9600\"],\"audio/vnd.rip\":[\"rip\"],\"audio/x-aac\":[\"aac\"],\"audio/x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"audio/x-caf\":[\"caf\"],\"audio/x-flac\":[\"flac\"],\"audio/x-m4a\":[\"*m4a\"],\"audio/x-matroska\":[\"mka\"],\"audio/x-mpegurl\":[\"m3u\"],\"audio/x-ms-wax\":[\"wax\"],\"audio/x-ms-wma\":[\"wma\"],\"audio/x-pn-realaudio\":[\"ram\",\"ra\"],\"audio/x-pn-realaudio-plugin\":[\"rmp\"],\"audio/x-realaudio\":[\"*ra\"],\"audio/x-wav\":[\"*wav\"],\"chemical/x-cdx\":[\"cdx\"],\"chemical/x-cif\":[\"cif\"],\"chemical/x-cmdf\":[\"cmdf\"],\"chemical/x-cml\":[\"cml\"],\"chemical/x-csml\":[\"csml\"],\"chemical/x-xyz\":[\"xyz\"],\"image/prs.btif\":[\"btif\"],\"image/prs.pti\":[\"pti\"],\"image/vnd.adobe.photoshop\":[\"psd\"],\"image/vnd.airzip.accelerator.azv\":[\"azv\"],\"image/vnd.dece.graphic\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"],\"image/vnd.djvu\":[\"djvu\",\"djv\"],\"image/vnd.dvb.subtitle\":[\"*sub\"],\"image/vnd.dwg\":[\"dwg\"],\"image/vnd.dxf\":[\"dxf\"],\"image/vnd.fastbidsheet\":[\"fbs\"],\"image/vnd.fpx\":[\"fpx\"],\"image/vnd.fst\":[\"fst\"],\"image/vnd.fujixerox.edmics-mmr\":[\"mmr\"],\"image/vnd.fujixerox.edmics-rlc\":[\"rlc\"],\"image/vnd.microsoft.icon\":[\"ico\"],\"image/vnd.ms-dds\":[\"dds\"],\"image/vnd.ms-modi\":[\"mdi\"],\"image/vnd.ms-photo\":[\"wdp\"],\"image/vnd.net-fpx\":[\"npx\"],\"image/vnd.pco.b16\":[\"b16\"],\"image/vnd.tencent.tap\":[\"tap\"],\"image/vnd.valve.source.texture\":[\"vtf\"],\"image/vnd.wap.wbmp\":[\"wbmp\"],\"image/vnd.xiff\":[\"xif\"],\"image/vnd.zbrush.pcx\":[\"pcx\"],\"image/x-3ds\":[\"3ds\"],\"image/x-cmu-raster\":[\"ras\"],\"image/x-cmx\":[\"cmx\"],\"image/x-freehand\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"],\"image/x-icon\":[\"*ico\"],\"image/x-jng\":[\"jng\"],\"image/x-mrsid-image\":[\"sid\"],\"image/x-ms-bmp\":[\"*bmp\"],\"image/x-pcx\":[\"*pcx\"],\"image/x-pict\":[\"pic\",\"pct\"],\"image/x-portable-anymap\":[\"pnm\"],\"image/x-portable-bitmap\":[\"pbm\"],\"image/x-portable-graymap\":[\"pgm\"],\"image/x-portable-pixmap\":[\"ppm\"],\"image/x-rgb\":[\"rgb\"],\"image/x-tga\":[\"tga\"],\"image/x-xbitmap\":[\"xbm\"],\"image/x-xpixmap\":[\"xpm\"],\"image/x-xwindowdump\":[\"xwd\"],\"message/vnd.wfa.wsc\":[\"wsc\"],\"model/vnd.collada+xml\":[\"dae\"],\"model/vnd.dwf\":[\"dwf\"],\"model/vnd.gdl\":[\"gdl\"],\"model/vnd.gtw\":[\"gtw\"],\"model/vnd.mts\":[\"mts\"],\"model/vnd.opengex\":[\"ogex\"],\"model/vnd.parasolid.transmit.binary\":[\"x_b\"],\"model/vnd.parasolid.transmit.text\":[\"x_t\"],\"model/vnd.sap.vds\":[\"vds\"],\"model/vnd.usdz+zip\":[\"usdz\"],\"model/vnd.valve.source.compiled-map\":[\"bsp\"],\"model/vnd.vtu\":[\"vtu\"],\"text/prs.lines.tag\":[\"dsc\"],\"text/vnd.curl\":[\"curl\"],\"text/vnd.curl.dcurl\":[\"dcurl\"],\"text/vnd.curl.mcurl\":[\"mcurl\"],\"text/vnd.curl.scurl\":[\"scurl\"],\"text/vnd.dvb.subtitle\":[\"sub\"],\"text/vnd.fly\":[\"fly\"],\"text/vnd.fmi.flexstor\":[\"flx\"],\"text/vnd.graphviz\":[\"gv\"],\"text/vnd.in3d.3dml\":[\"3dml\"],\"text/vnd.in3d.spot\":[\"spot\"],\"text/vnd.sun.j2me.app-descriptor\":[\"jad\"],\"text/vnd.wap.wml\":[\"wml\"],\"text/vnd.wap.wmlscript\":[\"wmls\"],\"text/x-asm\":[\"s\",\"asm\"],\"text/x-c\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"],\"text/x-component\":[\"htc\"],\"text/x-fortran\":[\"f\",\"for\",\"f77\",\"f90\"],\"text/x-handlebars-template\":[\"hbs\"],\"text/x-java-source\":[\"java\"],\"text/x-lua\":[\"lua\"],\"text/x-markdown\":[\"mkd\"],\"text/x-nfo\":[\"nfo\"],\"text/x-opml\":[\"opml\"],\"text/x-org\":[\"*org\"],\"text/x-pascal\":[\"p\",\"pas\"],\"text/x-processing\":[\"pde\"],\"text/x-sass\":[\"sass\"],\"text/x-scss\":[\"scss\"],\"text/x-setext\":[\"etx\"],\"text/x-sfv\":[\"sfv\"],\"text/x-suse-ymp\":[\"ymp\"],\"text/x-uuencode\":[\"uu\"],\"text/x-vcalendar\":[\"vcs\"],\"text/x-vcard\":[\"vcf\"],\"video/vnd.dece.hd\":[\"uvh\",\"uvvh\"],\"video/vnd.dece.mobile\":[\"uvm\",\"uvvm\"],\"video/vnd.dece.pd\":[\"uvp\",\"uvvp\"],\"video/vnd.dece.sd\":[\"uvs\",\"uvvs\"],\"video/vnd.dece.video\":[\"uvv\",\"uvvv\"],\"video/vnd.dvb.file\":[\"dvb\"],\"video/vnd.fvt\":[\"fvt\"],\"video/vnd.mpegurl\":[\"mxu\",\"m4u\"],\"video/vnd.ms-playready.media.pyv\":[\"pyv\"],\"video/vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"video/vnd.vivo\":[\"viv\"],\"video/x-f4v\":[\"f4v\"],\"video/x-fli\":[\"fli\"],\"video/x-flv\":[\"flv\"],\"video/x-m4v\":[\"m4v\"],\"video/x-matroska\":[\"mkv\",\"mk3d\",\"mks\"],\"video/x-mng\":[\"mng\"],\"video/x-ms-asf\":[\"asf\",\"asx\"],\"video/x-ms-vob\":[\"vob\"],\"video/x-ms-wm\":[\"wm\"],\"video/x-ms-wmv\":[\"wmv\"],\"video/x-ms-wmx\":[\"wmx\"],\"video/x-ms-wvx\":[\"wvx\"],\"video/x-msvideo\":[\"avi\"],\"video/x-sgi-movie\":[\"movie\"],\"video/x-smv\":[\"smv\"],\"x-conference/x-cooltalk\":[\"ice\"]};","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","/*!\n * normalize-path \n *\n * Copyright (c) 2014-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nmodule.exports = function(path, stripTrailing) {\n if (typeof path !== 'string') {\n throw new TypeError('expected path to be a string');\n }\n\n if (path === '\\\\' || path === '/') return '/';\n\n var len = path.length;\n if (len <= 1) return path;\n\n // ensure that win32 namespaces has two leading slashes, so that the path is\n // handled properly by the win32 version of path.parse() after being normalized\n // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces\n var prefix = '';\n if (len > 4 && path[3] === '\\\\') {\n var ch = path[2];\n if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\\\\\') {\n path = path.slice(2);\n prefix = '//';\n }\n }\n\n var segs = path.split(/[/\\\\]+/);\n if (stripTrailing !== false && segs[segs.length - 1] === '') {\n segs.pop();\n }\n return prefix + segs.join('/');\n};\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","'use strict';\nconst Queue = require('yocto-queue');\n\nconst pLimit = concurrency => {\n\tif (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, ...args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, ...args) => {\n\t\tqueue.enqueue(run.bind(null, fn, resolve, ...args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, ...args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn generator;\n};\n\nmodule.exports = pLimit;\n","'use strict';\n\nconst pico = require('./lib/picomatch');\nconst utils = require('./lib/utils');\n\nfunction picomatch(glob, options, returnState = false) {\n // default to os.platform()\n if (options && (options.windows === null || options.windows === undefined)) {\n // don't mutate the original options object\n options = { ...options, windows: utils.isWindows() };\n }\n\n return pico(glob, options, returnState);\n}\n\nObject.assign(picomatch, pico);\nmodule.exports = picomatch;\n","'use strict';\n\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\nconst DEFAULT_MAX_EXTGLOB_RECURSION = 0;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\nconst SEP = '/';\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR,\n SEP\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`,\n SEP: '\\\\'\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n __proto__: null,\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n DEFAULT_MAX_EXTGLOB_RECURSION,\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n __proto__: null,\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\nconst splitTopLevel = input => {\n const parts = [];\n let bracket = 0;\n let paren = 0;\n let quote = 0;\n let value = '';\n let escaped = false;\n\n for (const ch of input) {\n if (escaped === true) {\n value += ch;\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n value += ch;\n escaped = true;\n continue;\n }\n\n if (ch === '\"') {\n quote = quote === 1 ? 0 : 1;\n value += ch;\n continue;\n }\n\n if (quote === 0) {\n if (ch === '[') {\n bracket++;\n } else if (ch === ']' && bracket > 0) {\n bracket--;\n } else if (bracket === 0) {\n if (ch === '(') {\n paren++;\n } else if (ch === ')' && paren > 0) {\n paren--;\n } else if (ch === '|' && paren === 0) {\n parts.push(value);\n value = '';\n continue;\n }\n }\n }\n\n value += ch;\n }\n\n parts.push(value);\n return parts;\n};\n\nconst isPlainBranch = branch => {\n let escaped = false;\n\n for (const ch of branch) {\n if (escaped === true) {\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n escaped = true;\n continue;\n }\n\n if (/[?*+@!()[\\]{}]/.test(ch)) {\n return false;\n }\n }\n\n return true;\n};\n\nconst normalizeSimpleBranch = branch => {\n let value = branch.trim();\n let changed = true;\n\n while (changed === true) {\n changed = false;\n\n if (/^@\\([^\\\\()[\\]{}|]+\\)$/.test(value)) {\n value = value.slice(2, -1);\n changed = true;\n }\n }\n\n if (!isPlainBranch(value)) {\n return;\n }\n\n return value.replace(/\\\\(.)/g, '$1');\n};\n\nconst hasRepeatedCharPrefixOverlap = branches => {\n const values = branches.map(normalizeSimpleBranch).filter(Boolean);\n\n for (let i = 0; i < values.length; i++) {\n for (let j = i + 1; j < values.length; j++) {\n const a = values[i];\n const b = values[j];\n const char = a[0];\n\n if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) {\n continue;\n }\n\n if (a === b || a.startsWith(b) || b.startsWith(a)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nconst parseRepeatedExtglob = (pattern, requireEnd = true) => {\n if ((pattern[0] !== '+' && pattern[0] !== '*') || pattern[1] !== '(') {\n return;\n }\n\n let bracket = 0;\n let paren = 0;\n let quote = 0;\n let escaped = false;\n\n for (let i = 1; i < pattern.length; i++) {\n const ch = pattern[i];\n\n if (escaped === true) {\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n escaped = true;\n continue;\n }\n\n if (ch === '\"') {\n quote = quote === 1 ? 0 : 1;\n continue;\n }\n\n if (quote === 1) {\n continue;\n }\n\n if (ch === '[') {\n bracket++;\n continue;\n }\n\n if (ch === ']' && bracket > 0) {\n bracket--;\n continue;\n }\n\n if (bracket > 0) {\n continue;\n }\n\n if (ch === '(') {\n paren++;\n continue;\n }\n\n if (ch === ')') {\n paren--;\n\n if (paren === 0) {\n if (requireEnd === true && i !== pattern.length - 1) {\n return;\n }\n\n return {\n type: pattern[0],\n body: pattern.slice(2, i),\n end: i\n };\n }\n }\n }\n};\n\nconst getStarExtglobSequenceOutput = pattern => {\n let index = 0;\n const chars = [];\n\n while (index < pattern.length) {\n const match = parseRepeatedExtglob(pattern.slice(index), false);\n\n if (!match || match.type !== '*') {\n return;\n }\n\n const branches = splitTopLevel(match.body).map(branch => branch.trim());\n if (branches.length !== 1) {\n return;\n }\n\n const branch = normalizeSimpleBranch(branches[0]);\n if (!branch || branch.length !== 1) {\n return;\n }\n\n chars.push(branch);\n index += match.end + 1;\n }\n\n if (chars.length < 1) {\n return;\n }\n\n const source = chars.length === 1\n ? utils.escapeRegex(chars[0])\n : `[${chars.map(ch => utils.escapeRegex(ch)).join('')}]`;\n\n return `${source}*`;\n};\n\nconst repeatedExtglobRecursion = pattern => {\n let depth = 0;\n let value = pattern.trim();\n let match = parseRepeatedExtglob(value);\n\n while (match) {\n depth++;\n value = match.body.trim();\n match = parseRepeatedExtglob(value);\n }\n\n return depth;\n};\n\nconst analyzeRepeatedExtglob = (body, options) => {\n if (options.maxExtglobRecursion === false) {\n return { risky: false };\n }\n\n const max =\n typeof options.maxExtglobRecursion === 'number'\n ? options.maxExtglobRecursion\n : constants.DEFAULT_MAX_EXTGLOB_RECURSION;\n\n const branches = splitTopLevel(body).map(branch => branch.trim());\n\n if (branches.length > 1) {\n if (\n branches.some(branch => branch === '') ||\n branches.some(branch => /^[*?]+$/.test(branch)) ||\n hasRepeatedCharPrefixOverlap(branches)\n ) {\n return { risky: true };\n }\n }\n\n for (const branch of branches) {\n const safeOutput = getStarExtglobSequenceOutput(branch);\n if (safeOutput) {\n return { risky: true, safeOutput };\n }\n\n if (repeatedExtglobRecursion(branch) > max) {\n return { risky: true };\n }\n }\n\n return { risky: false };\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(opts.windows);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.output = (prev.output || prev.value) + tok.value;\n prev.value += tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n token.startIndex = state.index;\n token.tokensIndex = tokens.length;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n const literal = input.slice(token.startIndex, state.index + 1);\n const body = input.slice(token.startIndex + 2, state.index);\n const analysis = analyzeRepeatedExtglob(body, opts);\n\n if ((token.type === 'plus' || token.type === 'star') && analysis.risky) {\n const safeOutput = analysis.safeOutput\n ? (token.output ? '' : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput)\n : undefined;\n const open = tokens[token.tokensIndex];\n\n open.type = 'text';\n open.value = literal;\n open.output = safeOutput || utils.escapeRegex(literal);\n\n for (let i = token.tokensIndex + 1; i < tokens.length; i++) {\n tokens[i].value = '';\n tokens[i].output = '';\n delete tokens[i].suffix;\n }\n\n state.output = token.output + open.output;\n state.backtrack = true;\n\n push({ type: 'paren', extglob: true, value, output: '' });\n decrement('parens');\n return;\n }\n\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(opts.windows);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = opts.windows;\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(utils.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.makeRe(state[, options]);\n *\n * const result = picomatch.makeRe('*.js');\n * console.log(result);\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","/*global navigator*/\n'use strict';\n\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.isWindows = () => {\n if (typeof navigator !== 'undefined' && navigator.platform) {\n const platform = navigator.platform.toLowerCase();\n return platform === 'win32' || platform === 'windows';\n }\n\n if (typeof process !== 'undefined' && process.platform) {\n return process.platform === 'win32';\n }\n\n return false;\n};\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n\nexports.basename = (path, { windows } = {}) => {\n const segs = path.split(windows ? /[\\\\/]/ : '/');\n const last = segs[segs.length - 1];\n\n if (last === '') {\n return segs[segs.length - 2];\n }\n\n return last;\n};\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// for now just expose the builtin process global from node.js\nmodule.exports = global.process;\n","/*! queue-microtask. MIT License. Feross Aboukhadijeh */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n","'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder/')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst { format, inspect } = require('./util/inspect')\nconst { AggregateError: CustomAggregateError } = require('./primordials')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n const limit = BigInt(2) ** BigInt(32)\n if (input > limit || input < -limit) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\nconst Stream = require('stream')\nif (Stream && process.env.READABLE_STREAM === 'disable') {\n const promises = Stream.promises\n\n // Explicit export naming is needed for ESM\n module.exports._uint8ArrayToBuffer = Stream._uint8ArrayToBuffer\n module.exports._isUint8Array = Stream._isUint8Array\n module.exports.isDisturbed = Stream.isDisturbed\n module.exports.isErrored = Stream.isErrored\n module.exports.isReadable = Stream.isReadable\n module.exports.Readable = Stream.Readable\n module.exports.Writable = Stream.Writable\n module.exports.Duplex = Stream.Duplex\n module.exports.Transform = Stream.Transform\n module.exports.PassThrough = Stream.PassThrough\n module.exports.addAbortSignal = Stream.addAbortSignal\n module.exports.finished = Stream.finished\n module.exports.destroy = Stream.destroy\n module.exports.pipeline = Stream.pipeline\n module.exports.compose = Stream.compose\n Object.defineProperty(Stream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n })\n module.exports.Stream = Stream.Stream\n} else {\n const CustomStream = require('../stream')\n const promises = require('../stream/promises')\n const originalDestroy = CustomStream.Readable.destroy\n module.exports = CustomStream.Readable\n\n // Explicit export naming is needed for ESM\n module.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\n module.exports._isUint8Array = CustomStream._isUint8Array\n module.exports.isDisturbed = CustomStream.isDisturbed\n module.exports.isErrored = CustomStream.isErrored\n module.exports.isReadable = CustomStream.isReadable\n module.exports.Readable = CustomStream.Readable\n module.exports.Writable = CustomStream.Writable\n module.exports.Duplex = CustomStream.Duplex\n module.exports.Transform = CustomStream.Transform\n module.exports.PassThrough = CustomStream.PassThrough\n module.exports.addAbortSignal = CustomStream.addAbortSignal\n module.exports.finished = CustomStream.finished\n module.exports.destroy = CustomStream.destroy\n module.exports.destroy = originalDestroy\n module.exports.pipeline = CustomStream.pipeline\n module.exports.compose = CustomStream.compose\n Object.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n })\n module.exports.Stream = CustomStream.Stream\n}\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { format, inspect } = require('./util/inspect')\nconst {\n codes: { ERR_INVALID_ARG_TYPE }\n} = require('./errors')\nconst { kResistStopPropagation, AggregateError, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format,\n inspect,\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/util/inspect.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/util/inspect.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict'\n\n/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","module.exports = readdirGlob;\n\nconst fs = require('fs');\nconst { EventEmitter } = require('events');\nconst { Minimatch } = require('minimatch');\nconst { resolve } = require('path');\n\nfunction readdir(dir, strict) {\n return new Promise((resolve, reject) => {\n fs.readdir(dir, {withFileTypes: true} ,(err, files) => {\n if(err) {\n switch (err.code) {\n case 'ENOTDIR': // Not a directory\n if(strict) {\n reject(err);\n } else {\n resolve([]);\n }\n break;\n case 'ENOTSUP': // Operation not supported\n case 'ENOENT': // No such file or directory\n case 'ENAMETOOLONG': // Filename too long\n case 'UNKNOWN':\n resolve([]);\n break;\n case 'ELOOP': // Too many levels of symbolic links\n default:\n reject(err);\n break;\n }\n } else {\n resolve(files);\n }\n });\n });\n}\nfunction stat(file, followSymlinks) {\n return new Promise((resolve, reject) => {\n const statFunc = followSymlinks ? fs.stat : fs.lstat;\n statFunc(file, (err, stats) => {\n if(err) {\n switch (err.code) {\n case 'ENOENT':\n if(followSymlinks) {\n // Fallback to lstat to handle broken links as files\n resolve(stat(file, false)); \n } else {\n resolve(null);\n }\n break;\n default:\n resolve(null);\n break;\n }\n } else {\n resolve(stats);\n }\n });\n });\n}\n\nasync function* exploreWalkAsync(dir, path, followSymlinks, useStat, shouldSkip, strict) {\n let files = await readdir(path + dir, strict);\n for(const file of files) {\n let name = file.name;\n if(name === undefined) {\n // undefined file.name means the `withFileTypes` options is not supported by node\n // we have to call the stat function to know if file is directory or not.\n name = file;\n useStat = true;\n }\n const filename = dir + '/' + name;\n const relative = filename.slice(1); // Remove the leading /\n const absolute = path + '/' + relative;\n let stats = null;\n if(useStat || followSymlinks) {\n stats = await stat(absolute, followSymlinks);\n }\n if(!stats && file.name !== undefined) {\n stats = file;\n }\n if(stats === null) {\n stats = { isDirectory: () => false };\n }\n\n if(stats.isDirectory()) {\n if(!shouldSkip(relative)) {\n yield {relative, absolute, stats};\n yield* exploreWalkAsync(filename, path, followSymlinks, useStat, shouldSkip, false);\n }\n } else {\n yield {relative, absolute, stats};\n }\n }\n}\nasync function* explore(path, followSymlinks, useStat, shouldSkip) {\n yield* exploreWalkAsync('', path, followSymlinks, useStat, shouldSkip, true);\n}\n\n\nfunction readOptions(options) {\n return {\n pattern: options.pattern,\n dot: !!options.dot,\n noglobstar: !!options.noglobstar,\n matchBase: !!options.matchBase,\n nocase: !!options.nocase,\n ignore: options.ignore,\n skip: options.skip,\n\n follow: !!options.follow,\n stat: !!options.stat,\n nodir: !!options.nodir,\n mark: !!options.mark,\n silent: !!options.silent,\n absolute: !!options.absolute\n };\n}\n\nclass ReaddirGlob extends EventEmitter {\n constructor(cwd, options, cb) {\n super();\n if(typeof options === 'function') {\n cb = options;\n options = null;\n }\n\n this.options = readOptions(options || {});\n \n this.matchers = [];\n if(this.options.pattern) {\n const matchers = Array.isArray(this.options.pattern) ? this.options.pattern : [this.options.pattern];\n this.matchers = matchers.map( m =>\n new Minimatch(m, {\n dot: this.options.dot,\n noglobstar:this.options.noglobstar,\n matchBase:this.options.matchBase,\n nocase:this.options.nocase\n })\n );\n }\n \n this.ignoreMatchers = [];\n if(this.options.ignore) {\n const ignorePatterns = Array.isArray(this.options.ignore) ? this.options.ignore : [this.options.ignore];\n this.ignoreMatchers = ignorePatterns.map( ignore =>\n new Minimatch(ignore, {dot: true})\n );\n }\n \n this.skipMatchers = [];\n if(this.options.skip) {\n const skipPatterns = Array.isArray(this.options.skip) ? this.options.skip : [this.options.skip];\n this.skipMatchers = skipPatterns.map( skip =>\n new Minimatch(skip, {dot: true})\n );\n }\n\n this.iterator = explore(resolve(cwd || '.'), this.options.follow, this.options.stat, this._shouldSkipDirectory.bind(this));\n this.paused = false;\n this.inactive = false;\n this.aborted = false;\n \n if(cb) {\n this._matches = []; \n this.on('match', match => this._matches.push(this.options.absolute ? match.absolute : match.relative));\n this.on('error', err => cb(err));\n this.on('end', () => cb(null, this._matches));\n }\n\n setTimeout( () => this._next(), 0);\n }\n\n _shouldSkipDirectory(relative) {\n //console.log(relative, this.skipMatchers.some(m => m.match(relative)));\n return this.skipMatchers.some(m => m.match(relative));\n }\n\n _fileMatches(relative, isDirectory) {\n const file = relative + (isDirectory ? '/' : '');\n return (this.matchers.length === 0 || this.matchers.some(m => m.match(file)))\n && !this.ignoreMatchers.some(m => m.match(file))\n && (!this.options.nodir || !isDirectory);\n }\n\n _next() {\n if(!this.paused && !this.aborted) {\n this.iterator.next()\n .then((obj)=> {\n if(!obj.done) {\n const isDirectory = obj.value.stats.isDirectory();\n if(this._fileMatches(obj.value.relative, isDirectory )) {\n let relative = obj.value.relative;\n let absolute = obj.value.absolute;\n if(this.options.mark && isDirectory) {\n relative += '/';\n absolute += '/';\n }\n if(this.options.stat) {\n this.emit('match', {relative, absolute, stat:obj.value.stats});\n } else {\n this.emit('match', {relative, absolute});\n }\n }\n this._next(this.iterator);\n } else {\n this.emit('end');\n }\n })\n .catch((err) => {\n this.abort();\n this.emit('error', err);\n if(!err.code && !this.options.silent) {\n console.error(err);\n }\n });\n } else {\n this.inactive = true;\n }\n }\n\n abort() {\n this.aborted = true;\n }\n\n pause() {\n this.paused = true;\n }\n\n resume() {\n this.paused = false;\n if(this.inactive) {\n this.inactive = false;\n this._next();\n }\n }\n}\n\n\nfunction readdirGlob(pattern, options, cb) {\n return new ReaddirGlob(pattern, options, cb);\n}\nreaddirGlob.ReaddirGlob = ReaddirGlob;","const isWindows = typeof process === 'object' &&\n process &&\n process.platform === 'win32'\nmodule.exports = isWindows ? { sep: '\\\\' } : { sep: '/' }\n","const minimatch = module.exports = (p, pattern, options = {}) => {\n assertValidPattern(pattern)\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\nmodule.exports = minimatch\n\nconst path = require('./lib/path.js')\nminimatch.sep = path.sep\n\nconst GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\nconst expand = require('brace-expansion')\n\nconst plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// \"abc\" -> { a:true, b:true, c:true }\nconst charSet = s => s.split('').reduce((set, c) => {\n set[c] = true\n return set\n}, {})\n\n// characters that need to be escaped in RegExp.\nconst reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// characters that indicate we have to add the pattern start\nconst addPatternStartSet = charSet('[.(')\n\n// normalizes slashes.\nconst slashSplit = /\\/+/\n\nminimatch.filter = (pattern, options = {}) =>\n (p, i, list) => minimatch(p, pattern, options)\n\nconst ext = (a, b = {}) => {\n const t = {}\n Object.keys(a).forEach(k => t[k] = a[k])\n Object.keys(b).forEach(k => t[k] = b[k])\n return t\n}\n\nminimatch.defaults = def => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n const orig = minimatch\n\n const m = (p, pattern, options) => orig(p, pattern, ext(def, options))\n m.Minimatch = class Minimatch extends orig.Minimatch {\n constructor (pattern, options) {\n super(pattern, ext(def, options))\n }\n }\n m.Minimatch.defaults = options => orig.defaults(ext(def, options)).Minimatch\n m.filter = (pattern, options) => orig.filter(pattern, ext(def, options))\n m.defaults = options => orig.defaults(ext(def, options))\n m.makeRe = (pattern, options) => orig.makeRe(pattern, ext(def, options))\n m.braceExpand = (pattern, options) => orig.braceExpand(pattern, ext(def, options))\n m.match = (list, pattern, options) => orig.match(list, pattern, ext(def, options))\n\n return m\n}\n\n\n\n\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = (pattern, options) => braceExpand(pattern, options)\n\nconst braceExpand = (pattern, options = {}) => {\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\nconst MAX_PATTERN_LENGTH = 1024 * 64\nconst assertValidPattern = pattern => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst SUBPARSE = Symbol('subparse')\n\nminimatch.makeRe = (pattern, options) =>\n new Minimatch(pattern, options || {}).makeRe()\n\nminimatch.match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options)\n list = list.filter(f => mm.match(f))\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\n// replace stuff like \\* with *\nconst globUnescape = s => s.replace(/\\\\(.)/g, '$1')\nconst charUnescape = s => s.replace(/\\\\([^-\\]])/g, '$1')\nconst regExpEscape = s => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\nconst braExpEscape = s => s.replace(/[[\\]\\\\]/g, '\\\\$&')\n\nclass Minimatch {\n constructor (pattern, options) {\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.windowsPathsNoEscape = !!options.windowsPathsNoEscape ||\n options.allowWindowsEscape === false\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/')\n }\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n\n // make the set of regexps etc.\n this.make()\n }\n\n debug () {}\n\n make () {\n const pattern = this.pattern\n const options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n let set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = (...args) => console.error(...args)\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(s => s.split(slashSplit))\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map((s, si, set) => s.map(this.parse, this))\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(s => s.indexOf(false) === -1)\n\n this.debug(this.pattern, set)\n\n this.set = set\n }\n\n parseNegate () {\n if (this.options.nonegate) return\n\n const pattern = this.pattern\n let negate = false\n let negateOffset = 0\n\n for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.slice(negateOffset)\n this.negate = negate\n }\n\n // set partial to true to test if, for example,\n // \"/a/b\" matches the start of \"/*/b/*/d\"\n // Partial means, if you run out of file before you run\n // out of pattern, then that's fine, as long as all\n // the parts match.\n matchOne (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n /* istanbul ignore if */\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n /* istanbul ignore if */\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n hit = f === p\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else /* istanbul ignore else */ if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n return (fi === fl - 1) && (file[fi] === '')\n }\n\n // should be unreachable.\n /* istanbul ignore next */\n throw new Error('wtf?')\n }\n\n braceExpand () {\n return braceExpand(this.pattern, this.options)\n }\n\n parse (pattern, isSub) {\n assertValidPattern(pattern)\n\n const options = this.options\n\n // shortcuts\n if (pattern === '**') {\n if (!options.noglobstar)\n return GLOBSTAR\n else\n pattern = '*'\n }\n if (pattern === '') return ''\n\n let re = ''\n let hasMagic = false\n let escaping = false\n // ? => one single character\n const patternListStack = []\n const negativeLists = []\n let stateChar\n let inClass = false\n let reClassStart = -1\n let classStart = -1\n let cs\n let pl\n let sp\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set. However, if the pattern\n // starts with ., then traversal patterns can match.\n let dotTravAllowed = pattern.charAt(0) === '.'\n let dotFileAllowed = options.dot || dotTravAllowed\n const patternStart = () =>\n dotTravAllowed\n ? ''\n : dotFileAllowed\n ? '(?!(?:^|\\\\/)\\\\.{1,2}(?:$|\\\\/))'\n : '(?!\\\\.)'\n const subPatternStart = (p) =>\n p.charAt(0) === '.'\n ? ''\n : options.dot\n ? '(?!(?:^|\\\\/)\\\\.{1,2}(?:$|\\\\/))'\n : '(?!\\\\.)'\n\n\n const clearStateChar = () => {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n this.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (let i = 0, c; (i < pattern.length) && (c = pattern.charAt(i)); i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping) {\n /* istanbul ignore next - completely not allowed, even escaped. */\n if (c === '/') {\n return false\n }\n\n if (reSpecials[c]) {\n re += '\\\\'\n }\n re += c\n escaping = false\n continue\n }\n\n switch (c) {\n /* istanbul ignore next */\n case '/': {\n // Should already be path-split by now.\n return false\n }\n\n case '\\\\':\n if (inClass && pattern.charAt(i + 1) === '-') {\n re += c\n continue\n }\n\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n this.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(': {\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n const plEntry = {\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close,\n }\n this.debug(this.pattern, '\\t', plEntry)\n patternListStack.push(plEntry)\n // negation is (?:(?!(?:js)(?:))[^/]*)\n re += plEntry.open\n // next entry starts with a dot maybe?\n if (plEntry.start === 0 && plEntry.type !== '!') {\n dotTravAllowed = true\n re += subPatternStart(pattern.slice(i + 1))\n }\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n }\n\n case ')': {\n const plEntry = patternListStack[patternListStack.length - 1]\n if (inClass || !plEntry) {\n re += '\\\\)'\n continue\n }\n patternListStack.pop()\n\n // closing an extglob\n clearStateChar()\n hasMagic = true\n pl = plEntry\n // negation is (?:(?!js)[^/]*)\n // The others are (?:)\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(Object.assign(pl, { reEnd: re.length }))\n }\n continue\n }\n\n case '|': {\n const plEntry = patternListStack[patternListStack.length - 1]\n if (inClass || !plEntry) {\n re += '\\\\|'\n continue\n }\n\n clearStateChar()\n re += '|'\n // next subpattern can start with a dot?\n if (plEntry.start === 0 && plEntry.type !== '!') {\n dotTravAllowed = true\n re += subPatternStart(pattern.slice(i + 1))\n }\n continue\n }\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n continue\n }\n\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + braExpEscape(charUnescape(cs)) + ']')\n // looks good, finish up the class.\n re += c\n } catch (er) {\n // out of order ranges in JS are errors, but in glob syntax,\n // they're just a range that matches nothing.\n re = re.substring(0, reClassStart) + '(?:$.)' // match nothing ever\n }\n hasMagic = true\n inClass = false\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (reSpecials[c] && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n break\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.slice(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substring(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n let tail\n tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, (_, $1, $2) => {\n /* istanbul ignore else - should already be done */\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n const t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n const addPatternStart = addPatternStartSet[re.charAt(0)]\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (let n = negativeLists.length - 1; n > -1; n--) {\n const nl = negativeLists[n]\n\n const nlBefore = re.slice(0, nl.reStart)\n const nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n let nlAfter = re.slice(nl.reEnd)\n const nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n const closeParensBefore = nlBefore.split(')').length\n const openParensBefore = nlBefore.split('(').length - closeParensBefore\n let cleanAfter = nlAfter\n for (let i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n const dollar = nlAfter === '' && isSub !== SUBPARSE ? '(?:$|\\\\/)' : ''\n\n re = nlBefore + nlFirst + nlAfter + dollar + nlLast\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart() + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // if it's nocase, and the lcase/uppercase don't match, it's magic\n if (options.nocase && !hasMagic) {\n hasMagic = pattern.toUpperCase() !== pattern.toLowerCase()\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n const flags = options.nocase ? 'i' : ''\n try {\n return Object.assign(new RegExp('^' + re + '$', flags), {\n _glob: pattern,\n _src: re,\n })\n } catch (er) /* istanbul ignore next - should be impossible */ {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n }\n\n makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n const set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n const options = this.options\n\n const twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n const flags = options.nocase ? 'i' : ''\n\n // coalesce globstars and regexpify non-globstar patterns\n // if it's the only item, then we just do one twoStar\n // if it's the first, and there are more, prepend (\\/|twoStar\\/)? to next\n // if it's the last, append (\\/twoStar|) to previous\n // if it's in the middle, append (\\/|\\/twoStar\\/) to previous\n // then filter out GLOBSTAR symbols\n let re = set.map(pattern => {\n pattern = pattern.map(p =>\n typeof p === 'string' ? regExpEscape(p)\n : p === GLOBSTAR ? GLOBSTAR\n : p._src\n ).reduce((set, p) => {\n if (!(set[set.length - 1] === GLOBSTAR && p === GLOBSTAR)) {\n set.push(p)\n }\n return set\n }, [])\n pattern.forEach((p, i) => {\n if (p !== GLOBSTAR || pattern[i-1] === GLOBSTAR) {\n return\n }\n if (i === 0) {\n if (pattern.length > 1) {\n pattern[i+1] = '(?:\\\\\\/|' + twoStar + '\\\\\\/)?' + pattern[i+1]\n } else {\n pattern[i] = twoStar\n }\n } else if (i === pattern.length - 1) {\n pattern[i-1] += '(?:\\\\\\/|' + twoStar + ')?'\n } else {\n pattern[i-1] += '(?:\\\\\\/|\\\\\\/' + twoStar + '\\\\\\/)' + pattern[i+1]\n pattern[i+1] = GLOBSTAR\n }\n })\n return pattern.filter(p => p !== GLOBSTAR).join('/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) /* istanbul ignore next - should be impossible */ {\n this.regexp = false\n }\n return this.regexp\n }\n\n match (f, partial = this.partial) {\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n const options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n const set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n let filename\n for (let i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (let i = 0; i < set.length; i++) {\n const pattern = set[i]\n let file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n const hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n }\n\n static defaults (def) {\n return minimatch.defaults(def).Minimatch\n }\n}\n\nminimatch.Minimatch = Minimatch\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReaddirpStream = exports.EntryTypes = void 0;\nexports.readdirp = readdirp;\nexports.readdirpPromise = readdirpPromise;\nconst promises_1 = require(\"node:fs/promises\");\nconst node_stream_1 = require(\"node:stream\");\nconst node_path_1 = require(\"node:path\");\nexports.EntryTypes = {\n FILE_TYPE: 'files',\n DIR_TYPE: 'directories',\n FILE_DIR_TYPE: 'files_directories',\n EVERYTHING_TYPE: 'all',\n};\nconst defaultOptions = {\n root: '.',\n fileFilter: (_entryInfo) => true,\n directoryFilter: (_entryInfo) => true,\n type: exports.EntryTypes.FILE_TYPE,\n lstat: false,\n depth: 2147483648,\n alwaysStat: false,\n highWaterMark: 4096,\n};\nObject.freeze(defaultOptions);\nconst RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR';\nconst NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]);\nconst ALL_TYPES = [\n exports.EntryTypes.DIR_TYPE,\n exports.EntryTypes.EVERYTHING_TYPE,\n exports.EntryTypes.FILE_DIR_TYPE,\n exports.EntryTypes.FILE_TYPE,\n];\nconst DIR_TYPES = new Set([\n exports.EntryTypes.DIR_TYPE,\n exports.EntryTypes.EVERYTHING_TYPE,\n exports.EntryTypes.FILE_DIR_TYPE,\n]);\nconst FILE_TYPES = new Set([\n exports.EntryTypes.EVERYTHING_TYPE,\n exports.EntryTypes.FILE_DIR_TYPE,\n exports.EntryTypes.FILE_TYPE,\n]);\nconst isNormalFlowError = (error) => NORMAL_FLOW_ERRORS.has(error.code);\nconst wantBigintFsStats = process.platform === 'win32';\nconst emptyFn = (_entryInfo) => true;\nconst normalizeFilter = (filter) => {\n if (filter === undefined)\n return emptyFn;\n if (typeof filter === 'function')\n return filter;\n if (typeof filter === 'string') {\n const fl = filter.trim();\n return (entry) => entry.basename === fl;\n }\n if (Array.isArray(filter)) {\n const trItems = filter.map((item) => item.trim());\n return (entry) => trItems.some((f) => entry.basename === f);\n }\n return emptyFn;\n};\n/** Readable readdir stream, emitting new files as they're being listed. */\nclass ReaddirpStream extends node_stream_1.Readable {\n constructor(options = {}) {\n super({\n objectMode: true,\n autoDestroy: true,\n highWaterMark: options.highWaterMark,\n });\n const opts = { ...defaultOptions, ...options };\n const { root, type } = opts;\n this._fileFilter = normalizeFilter(opts.fileFilter);\n this._directoryFilter = normalizeFilter(opts.directoryFilter);\n const statMethod = opts.lstat ? promises_1.lstat : promises_1.stat;\n // Use bigint stats if it's windows and stat() supports options (node 10+).\n if (wantBigintFsStats) {\n this._stat = (path) => statMethod(path, { bigint: true });\n }\n else {\n this._stat = statMethod;\n }\n this._maxDepth = opts.depth ?? defaultOptions.depth;\n this._wantsDir = type ? DIR_TYPES.has(type) : false;\n this._wantsFile = type ? FILE_TYPES.has(type) : false;\n this._wantsEverything = type === exports.EntryTypes.EVERYTHING_TYPE;\n this._root = (0, node_path_1.resolve)(root);\n this._isDirent = !opts.alwaysStat;\n this._statsProp = this._isDirent ? 'dirent' : 'stats';\n this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent };\n // Launch stream with one parent, the root dir.\n this.parents = [this._exploreDir(root, 1)];\n this.reading = false;\n this.parent = undefined;\n }\n async _read(batch) {\n if (this.reading)\n return;\n this.reading = true;\n try {\n while (!this.destroyed && batch > 0) {\n const par = this.parent;\n const fil = par && par.files;\n if (fil && fil.length > 0) {\n const { path, depth } = par;\n const slice = fil.splice(0, batch).map((dirent) => this._formatEntry(dirent, path));\n const awaited = await Promise.all(slice);\n for (const entry of awaited) {\n if (!entry)\n continue;\n if (this.destroyed)\n return;\n const entryType = await this._getEntryType(entry);\n if (entryType === 'directory' && this._directoryFilter(entry)) {\n if (depth <= this._maxDepth) {\n this.parents.push(this._exploreDir(entry.fullPath, depth + 1));\n }\n if (this._wantsDir) {\n this.push(entry);\n batch--;\n }\n }\n else if ((entryType === 'file' || this._includeAsFile(entry)) &&\n this._fileFilter(entry)) {\n if (this._wantsFile) {\n this.push(entry);\n batch--;\n }\n }\n }\n }\n else {\n const parent = this.parents.pop();\n if (!parent) {\n this.push(null);\n break;\n }\n this.parent = await parent;\n if (this.destroyed)\n return;\n }\n }\n }\n catch (error) {\n this.destroy(error);\n }\n finally {\n this.reading = false;\n }\n }\n async _exploreDir(path, depth) {\n let files;\n try {\n files = await (0, promises_1.readdir)(path, this._rdOptions);\n }\n catch (error) {\n this._onError(error);\n }\n return { files, depth, path };\n }\n async _formatEntry(dirent, path) {\n let entry;\n const basename = this._isDirent ? dirent.name : dirent;\n try {\n const fullPath = (0, node_path_1.resolve)((0, node_path_1.join)(path, basename));\n entry = { path: (0, node_path_1.relative)(this._root, fullPath), fullPath, basename };\n entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);\n }\n catch (err) {\n this._onError(err);\n return;\n }\n return entry;\n }\n _onError(err) {\n if (isNormalFlowError(err) && !this.destroyed) {\n this.emit('warn', err);\n }\n else {\n this.destroy(err);\n }\n }\n async _getEntryType(entry) {\n // entry may be undefined, because a warning or an error were emitted\n // and the statsProp is undefined\n if (!entry && this._statsProp in entry) {\n return '';\n }\n const stats = entry[this._statsProp];\n if (stats.isFile())\n return 'file';\n if (stats.isDirectory())\n return 'directory';\n if (stats && stats.isSymbolicLink()) {\n const full = entry.fullPath;\n try {\n const entryRealPath = await (0, promises_1.realpath)(full);\n const entryRealPathStats = await (0, promises_1.lstat)(entryRealPath);\n if (entryRealPathStats.isFile()) {\n return 'file';\n }\n if (entryRealPathStats.isDirectory()) {\n const len = entryRealPath.length;\n if (full.startsWith(entryRealPath) && full.substr(len, 1) === node_path_1.sep) {\n const recursiveError = new Error(`Circular symlink detected: \"${full}\" points to \"${entryRealPath}\"`);\n // @ts-ignore\n recursiveError.code = RECURSIVE_ERROR_CODE;\n return this._onError(recursiveError);\n }\n return 'directory';\n }\n }\n catch (error) {\n this._onError(error);\n return '';\n }\n }\n }\n _includeAsFile(entry) {\n const stats = entry && entry[this._statsProp];\n return stats && this._wantsEverything && !stats.isDirectory();\n }\n}\nexports.ReaddirpStream = ReaddirpStream;\n/**\n * Streaming version: Reads all files and directories in given root recursively.\n * Consumes ~constant small amount of RAM.\n * @param root Root directory\n * @param options Options to specify root (start directory), filters and recursion depth\n */\nfunction readdirp(root, options = {}) {\n // @ts-ignore\n let type = options.entryType || options.type;\n if (type === 'both')\n type = exports.EntryTypes.FILE_DIR_TYPE; // backwards-compatibility\n if (type)\n options.type = type;\n if (!root) {\n throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)');\n }\n else if (typeof root !== 'string') {\n throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)');\n }\n else if (type && !ALL_TYPES.includes(type)) {\n throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);\n }\n options.root = root;\n return new ReaddirpStream(options);\n}\n/**\n * Promise version: Reads all files and directories in given root recursively.\n * Compared to streaming version, will consume a lot of RAM e.g. when 1 million files are listed.\n * @returns array of paths and their entry infos\n */\nfunction readdirpPromise(root, options = {}) {\n return new Promise((resolve, reject) => {\n const files = [];\n readdirp(root, options)\n .on('data', (entry) => files.push(entry))\n .on('end', () => resolve(files))\n .on('error', (error) => reject(error));\n });\n}\nexports.default = readdirp;\n","'use strict'\n\nfunction reusify (Constructor) {\n var head = new Constructor()\n var tail = head\n\n function get () {\n var current = head\n\n if (current.next) {\n head = current.next\n } else {\n head = new Constructor()\n tail = head\n }\n\n current.next = null\n\n return current\n }\n\n function release (obj) {\n tail.next = obj\n tail = obj\n }\n\n return {\n get: get,\n release: release\n }\n}\n\nmodule.exports = reusify\n","/*! run-parallel. MIT License. Feross Aboukhadijeh */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n let results, pending, keys\n let isSync = true\n\n if (Array.isArray(tasks)) {\n results = []\n pending = tasks.length\n } else {\n keys = Object.keys(tasks)\n results = {}\n pending = keys.length\n }\n\n function done (err) {\n function end () {\n if (cb) cb(err, results)\n cb = null\n }\n if (isSync) queueMicrotask(end)\n else end()\n }\n\n function each (i, err, result) {\n results[i] = result\n if (--pending === 0 || err) {\n done(err)\n }\n }\n\n if (!pending) {\n // empty\n done(null)\n } else if (keys) {\n // object\n keys.forEach(function (key) {\n tasks[key](function (err, result) { each(key, err, result) })\n })\n } else {\n // array\n tasks.forEach(function (task, i) {\n task(function (err, result) { each(i, err, result) })\n })\n }\n\n isSync = false\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst astralRegex = require('astral-regex');\nconst ansiStyles = require('ansi-styles');\n\nconst ESCAPES = [\n\t'\\u001B',\n\t'\\u009B'\n];\n\nconst wrapAnsi = code => `${ESCAPES[0]}[${code}m`;\n\nconst checkAnsi = (ansiCodes, isEscapes, endAnsiCode) => {\n\tlet output = [];\n\tansiCodes = [...ansiCodes];\n\n\tfor (let ansiCode of ansiCodes) {\n\t\tconst ansiCodeOrigin = ansiCode;\n\t\tif (ansiCode.includes(';')) {\n\t\t\tansiCode = ansiCode.split(';')[0][0] + '0';\n\t\t}\n\n\t\tconst item = ansiStyles.codes.get(Number.parseInt(ansiCode, 10));\n\t\tif (item) {\n\t\t\tconst indexEscape = ansiCodes.indexOf(item.toString());\n\t\t\tif (indexEscape === -1) {\n\t\t\t\toutput.push(wrapAnsi(isEscapes ? item : ansiCodeOrigin));\n\t\t\t} else {\n\t\t\t\tansiCodes.splice(indexEscape, 1);\n\t\t\t}\n\t\t} else if (isEscapes) {\n\t\t\toutput.push(wrapAnsi(0));\n\t\t\tbreak;\n\t\t} else {\n\t\t\toutput.push(wrapAnsi(ansiCodeOrigin));\n\t\t}\n\t}\n\n\tif (isEscapes) {\n\t\toutput = output.filter((element, index) => output.indexOf(element) === index);\n\n\t\tif (endAnsiCode !== undefined) {\n\t\t\tconst fistEscapeCode = wrapAnsi(ansiStyles.codes.get(Number.parseInt(endAnsiCode, 10)));\n\t\t\toutput = output.reduce((current, next) => next === fistEscapeCode ? [next, ...current] : [...current, next], []);\n\t\t}\n\t}\n\n\treturn output.join('');\n};\n\nmodule.exports = (string, begin, end) => {\n\tconst characters = [...string];\n\tconst ansiCodes = [];\n\n\tlet stringEnd = typeof end === 'number' ? end : characters.length;\n\tlet isInsideEscape = false;\n\tlet ansiCode;\n\tlet visible = 0;\n\tlet output = '';\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tlet leftEscape = false;\n\n\t\tif (ESCAPES.includes(character)) {\n\t\t\tconst code = /\\d[^m]*/.exec(string.slice(index, index + 18));\n\t\t\tansiCode = code && code.length > 0 ? code[0] : undefined;\n\n\t\t\tif (visible < stringEnd) {\n\t\t\t\tisInsideEscape = true;\n\n\t\t\t\tif (ansiCode !== undefined) {\n\t\t\t\t\tansiCodes.push(ansiCode);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isInsideEscape && character === 'm') {\n\t\t\tisInsideEscape = false;\n\t\t\tleftEscape = true;\n\t\t}\n\n\t\tif (!isInsideEscape && !leftEscape) {\n\t\t\tvisible++;\n\t\t}\n\n\t\tif (!astralRegex({exact: true}).test(character) && isFullwidthCodePoint(character.codePointAt())) {\n\t\t\tvisible++;\n\n\t\t\tif (typeof end !== 'number') {\n\t\t\t\tstringEnd++;\n\t\t\t}\n\t\t}\n\n\t\tif (visible > begin && visible <= stringEnd) {\n\t\t\toutput += character;\n\t\t} else if (visible === begin && !isInsideEscape && ansiCode !== undefined) {\n\t\t\toutput = checkAnsi(ansiCodes);\n\t\t} else if (visible >= stringEnd) {\n\t\t\toutput += checkAnsi(ansiCodes, true, ansiCode);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn output;\n};\n","/*\nCopyright (c) 2014-2021, Matteo Collina \n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n*/\n\n'use strict'\n\nconst { Transform } = require('stream')\nconst { StringDecoder } = require('string_decoder')\nconst kLast = Symbol('last')\nconst kDecoder = Symbol('decoder')\n\nfunction transform (chunk, enc, cb) {\n let list\n if (this.overflow) { // Line buffer is full. Skip to start of next line.\n const buf = this[kDecoder].write(chunk)\n list = buf.split(this.matcher)\n\n if (list.length === 1) return cb() // Line ending not found. Discard entire chunk.\n\n // Line ending found. Discard trailing fragment of previous line and reset overflow state.\n list.shift()\n this.overflow = false\n } else {\n this[kLast] += this[kDecoder].write(chunk)\n list = this[kLast].split(this.matcher)\n }\n\n this[kLast] = list.pop()\n\n for (let i = 0; i < list.length; i++) {\n try {\n push(this, this.mapper(list[i]))\n } catch (error) {\n return cb(error)\n }\n }\n\n this.overflow = this[kLast].length > this.maxLength\n if (this.overflow && !this.skipOverflow) {\n cb(new Error('maximum buffer reached'))\n return\n }\n\n cb()\n}\n\nfunction flush (cb) {\n // forward any gibberish left in there\n this[kLast] += this[kDecoder].end()\n\n if (this[kLast]) {\n try {\n push(this, this.mapper(this[kLast]))\n } catch (error) {\n return cb(error)\n }\n }\n\n cb()\n}\n\nfunction push (self, val) {\n if (val !== undefined) {\n self.push(val)\n }\n}\n\nfunction noop (incoming) {\n return incoming\n}\n\nfunction split (matcher, mapper, options) {\n // Set defaults for any arguments not supplied.\n matcher = matcher || /\\r?\\n/\n mapper = mapper || noop\n options = options || {}\n\n // Test arguments explicitly.\n switch (arguments.length) {\n case 1:\n // If mapper is only argument.\n if (typeof matcher === 'function') {\n mapper = matcher\n matcher = /\\r?\\n/\n // If options is only argument.\n } else if (typeof matcher === 'object' && !(matcher instanceof RegExp) && !matcher[Symbol.split]) {\n options = matcher\n matcher = /\\r?\\n/\n }\n break\n\n case 2:\n // If mapper and options are arguments.\n if (typeof matcher === 'function') {\n options = mapper\n mapper = matcher\n matcher = /\\r?\\n/\n // If matcher and options are arguments.\n } else if (typeof mapper === 'object') {\n options = mapper\n mapper = noop\n }\n }\n\n options = Object.assign({}, options)\n options.autoDestroy = true\n options.transform = transform\n options.flush = flush\n options.readableObjectMode = true\n\n const stream = new Transform(options)\n\n stream[kLast] = ''\n stream[kDecoder] = new StringDecoder('utf8')\n stream.matcher = matcher\n stream.mapper = mapper\n stream.maxLength = options.maxLength\n stream.skipOverflow = options.skipOverflow || false\n stream.overflow = false\n stream._destroy = function (err, cb) {\n // Weird Node v12 bug that we need to work around\n this._writableState.errorEmitted = false\n cb(err)\n }\n\n return stream\n}\n\nmodule.exports = split\n","const { EventEmitter } = require('events')\nconst STREAM_DESTROYED = new Error('Stream was destroyed')\nconst PREMATURE_CLOSE = new Error('Premature close')\n\nconst FIFO = require('fast-fifo')\nconst TextDecoder = require('text-decoder')\n\n// if we do a future major, expect queue microtask to be there always, for now a bit defensive\nconst qmt = typeof queueMicrotask === 'undefined' ? fn => global.process.nextTick(fn) : queueMicrotask\n\n/* eslint-disable no-multi-spaces */\n\n// 29 bits used total (4 from shared, 14 from read, and 11 from write)\nconst MAX = ((1 << 29) - 1)\n\n// Shared state\nconst OPENING = 0b0001\nconst PREDESTROYING = 0b0010\nconst DESTROYING = 0b0100\nconst DESTROYED = 0b1000\n\nconst NOT_OPENING = MAX ^ OPENING\nconst NOT_PREDESTROYING = MAX ^ PREDESTROYING\n\n// Read state (4 bit offset from shared state)\nconst READ_ACTIVE = 0b00000000000001 << 4\nconst READ_UPDATING = 0b00000000000010 << 4\nconst READ_PRIMARY = 0b00000000000100 << 4\nconst READ_QUEUED = 0b00000000001000 << 4\nconst READ_RESUMED = 0b00000000010000 << 4\nconst READ_PIPE_DRAINED = 0b00000000100000 << 4\nconst READ_ENDING = 0b00000001000000 << 4\nconst READ_EMIT_DATA = 0b00000010000000 << 4\nconst READ_EMIT_READABLE = 0b00000100000000 << 4\nconst READ_EMITTED_READABLE = 0b00001000000000 << 4\nconst READ_DONE = 0b00010000000000 << 4\nconst READ_NEXT_TICK = 0b00100000000000 << 4\nconst READ_NEEDS_PUSH = 0b01000000000000 << 4\nconst READ_READ_AHEAD = 0b10000000000000 << 4\n\n// Combined read state\nconst READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED\nconst READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH\nconst READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE\nconst READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED\nconst READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD\n\nconst READ_NOT_ACTIVE = MAX ^ READ_ACTIVE\nconst READ_NON_PRIMARY = MAX ^ READ_PRIMARY\nconst READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH)\nconst READ_PUSHED = MAX ^ READ_NEEDS_PUSH\nconst READ_PAUSED = MAX ^ READ_RESUMED\nconst READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE)\nconst READ_NOT_ENDING = MAX ^ READ_ENDING\nconst READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING\nconst READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK\nconst READ_NOT_UPDATING = MAX ^ READ_UPDATING\nconst READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD\nconst READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD\n\n// Write state (18 bit offset, 4 bit offset from shared state and 14 from read state)\nconst WRITE_ACTIVE = 0b00000000001 << 18\nconst WRITE_UPDATING = 0b00000000010 << 18\nconst WRITE_PRIMARY = 0b00000000100 << 18\nconst WRITE_QUEUED = 0b00000001000 << 18\nconst WRITE_UNDRAINED = 0b00000010000 << 18\nconst WRITE_DONE = 0b00000100000 << 18\nconst WRITE_EMIT_DRAIN = 0b00001000000 << 18\nconst WRITE_NEXT_TICK = 0b00010000000 << 18\nconst WRITE_WRITING = 0b00100000000 << 18\nconst WRITE_FINISHING = 0b01000000000 << 18\nconst WRITE_CORKED = 0b10000000000 << 18\n\nconst WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING)\nconst WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY\nconst WRITE_NOT_FINISHING = MAX ^ (WRITE_ACTIVE | WRITE_FINISHING)\nconst WRITE_DRAINED = MAX ^ WRITE_UNDRAINED\nconst WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED\nconst WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK\nconst WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING\nconst WRITE_NOT_CORKED = MAX ^ WRITE_CORKED\n\n// Combined shared state\nconst ACTIVE = READ_ACTIVE | WRITE_ACTIVE\nconst NOT_ACTIVE = MAX ^ ACTIVE\nconst DONE = READ_DONE | WRITE_DONE\nconst DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING\nconst OPEN_STATUS = DESTROY_STATUS | OPENING\nconst AUTO_DESTROY = DESTROY_STATUS | DONE\nconst NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY\nconst ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK\nconst TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE\nconst IS_OPENING = OPEN_STATUS | TICKING\n\n// Combined shared state and read state\nconst READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE\nconst READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED\nconst READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED\nconst READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE\nconst SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD\nconst READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE\nconst READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY\nconst READ_NEXT_TICK_OR_OPENING = READ_NEXT_TICK | OPENING\n\n// Combined write state\nconst WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED\nconst WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE\nconst WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE\nconst WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED\nconst WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE\nconst WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING\nconst WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE\nconst WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY\nconst WRITE_DROP_DATA = WRITE_FINISHING | WRITE_DONE | DESTROY_STATUS\n\nconst asyncIterator = Symbol.asyncIterator || Symbol('asyncIterator')\n\nclass WritableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark\n this.buffered = 0\n this.error = null\n this.pipeline = null\n this.drains = null // if we add more seldomly used helpers we might them into a subobject so its a single ptr\n this.byteLength = byteLengthWritable || byteLength || defaultByteLength\n this.map = mapWritable || map\n this.afterWrite = afterWrite.bind(this)\n this.afterUpdateNextTick = updateWriteNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & WRITE_DONE) !== 0\n }\n\n push (data) {\n if ((this.stream._duplexState & WRITE_DROP_DATA) !== 0) return false\n if (this.map !== null) data = this.map(data)\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n if (this.buffered < this.highWaterMark) {\n this.stream._duplexState |= WRITE_QUEUED\n return true\n }\n\n this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED\n return false\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED\n\n return data\n }\n\n end (data) {\n if (typeof data === 'function') this.stream.once('finish', data)\n else if (data !== undefined && data !== null) this.push(data)\n this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY\n }\n\n autoBatch (data, cb) {\n const buffer = []\n const stream = this.stream\n\n buffer.push(data)\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) {\n buffer.push(stream._writableState.shift())\n }\n\n if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null)\n stream._writev(buffer, cb)\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= WRITE_UPDATING\n\n do {\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) {\n const data = this.shift()\n stream._duplexState |= WRITE_ACTIVE_AND_WRITING\n stream._write(data, this.afterWrite)\n }\n\n if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= WRITE_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) {\n stream._duplexState = stream._duplexState | WRITE_ACTIVE\n stream._final(afterFinal.bind(this))\n return\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return\n this.stream._duplexState |= WRITE_NEXT_TICK\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) qmt(this.afterUpdateNextTick)\n }\n}\n\nclass ReadableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark\n this.buffered = 0\n this.readAhead = highWaterMark > 0\n this.error = null\n this.pipeline = null\n this.byteLength = byteLengthReadable || byteLength || defaultByteLength\n this.map = mapReadable || map\n this.pipeTo = null\n this.afterRead = afterRead.bind(this)\n this.afterUpdateNextTick = updateReadNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & READ_DONE) !== 0\n }\n\n pipe (pipeTo, cb) {\n if (this.pipeTo !== null) throw new Error('Can only pipe to one destination')\n if (typeof cb !== 'function') cb = null\n\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.pipeTo = pipeTo\n this.pipeline = new Pipeline(this.stream, pipeTo, cb)\n\n if (cb) this.stream.on('error', noop) // We already error handle this so supress crashes\n\n if (isStreamx(pipeTo)) {\n pipeTo._writableState.pipeline = this.pipeline\n if (cb) pipeTo.on('error', noop) // We already error handle this so supress crashes\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline)) // TODO: just call finished from pipeTo itself\n } else {\n const onerror = this.pipeline.done.bind(this.pipeline, pipeTo)\n const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null) // onclose has a weird bool arg\n pipeTo.on('error', onerror)\n pipeTo.on('close', onclose)\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline))\n }\n\n pipeTo.on('drain', afterDrain.bind(this))\n this.stream.emit('piping', pipeTo)\n pipeTo.emit('pipe', this.stream)\n }\n\n push (data) {\n const stream = this.stream\n\n if (data === null) {\n this.highWaterMark = 0\n stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED\n return false\n }\n\n if (this.map !== null) {\n data = this.map(data)\n if (data === null) {\n stream._duplexState &= READ_PUSHED\n return this.buffered < this.highWaterMark\n }\n }\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED\n\n return this.buffered < this.highWaterMark\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= READ_NOT_QUEUED\n return data\n }\n\n unshift (data) {\n const pending = [this.map !== null ? this.map(data) : data]\n while (this.buffered > 0) pending.push(this.shift())\n\n for (let i = 0; i < pending.length - 1; i++) {\n const data = pending[i]\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n }\n\n this.push(pending[pending.length - 1])\n }\n\n read () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_STATUS) === READ_QUEUED) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n return data\n }\n\n if (this.readAhead === false) {\n stream._duplexState |= READ_READ_AHEAD\n this.updateNextTick()\n }\n\n return null\n }\n\n drain () {\n const stream = this.stream\n\n while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n }\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= READ_UPDATING\n\n do {\n this.drain()\n\n while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) {\n stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH\n stream._read(this.afterRead)\n this.drain()\n }\n\n if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) {\n stream._duplexState |= READ_EMITTED_READABLE\n stream.emit('readable')\n }\n\n if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= READ_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) {\n stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING\n stream.emit('end')\n if ((stream._duplexState & AUTO_DESTROY) === DONE) stream._duplexState |= DESTROYING\n if (this.pipeTo !== null) this.pipeTo.end()\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTickIfOpen () {\n if ((this.stream._duplexState & READ_NEXT_TICK_OR_OPENING) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) qmt(this.afterUpdateNextTick)\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) qmt(this.afterUpdateNextTick)\n }\n}\n\nclass TransformState {\n constructor (stream) {\n this.data = null\n this.afterTransform = afterTransform.bind(stream)\n this.afterFinal = null\n }\n}\n\nclass Pipeline {\n constructor (src, dst, cb) {\n this.from = src\n this.to = dst\n this.afterPipe = cb\n this.error = null\n this.pipeToFinished = false\n }\n\n finished () {\n this.pipeToFinished = true\n }\n\n done (stream, err) {\n if (err) this.error = err\n\n if (stream === this.to) {\n this.to = null\n\n if (this.from !== null) {\n if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) {\n this.from.destroy(this.error || new Error('Writable stream closed prematurely'))\n }\n return\n }\n }\n\n if (stream === this.from) {\n this.from = null\n\n if (this.to !== null) {\n if ((stream._duplexState & READ_DONE) === 0) {\n this.to.destroy(this.error || new Error('Readable stream closed before ending'))\n }\n return\n }\n }\n\n if (this.afterPipe !== null) this.afterPipe(this.error)\n this.to = this.from = this.afterPipe = null\n }\n}\n\nfunction afterDrain () {\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.updateCallback()\n}\n\nfunction afterFinal (err) {\n const stream = this.stream\n if (err) stream.destroy(err)\n if ((stream._duplexState & DESTROY_STATUS) === 0) {\n stream._duplexState |= WRITE_DONE\n stream.emit('finish')\n }\n if ((stream._duplexState & AUTO_DESTROY) === DONE) {\n stream._duplexState |= DESTROYING\n }\n\n stream._duplexState &= WRITE_NOT_FINISHING\n\n // no need to wait the extra tick here, so we short circuit that\n if ((stream._duplexState & WRITE_UPDATING) === 0) this.update()\n else this.updateNextTick()\n}\n\nfunction afterDestroy (err) {\n const stream = this.stream\n\n if (!err && this.error !== STREAM_DESTROYED) err = this.error\n if (err) stream.emit('error', err)\n stream._duplexState |= DESTROYED\n stream.emit('close')\n\n const rs = stream._readableState\n const ws = stream._writableState\n\n if (rs !== null && rs.pipeline !== null) rs.pipeline.done(stream, err)\n\n if (ws !== null) {\n while (ws.drains !== null && ws.drains.length > 0) ws.drains.shift().resolve(false)\n if (ws.pipeline !== null) ws.pipeline.done(stream, err)\n }\n}\n\nfunction afterWrite (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n if (this.drains !== null) tickDrains(this.drains)\n\n if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) {\n stream._duplexState &= WRITE_DRAINED\n if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) {\n stream.emit('drain')\n }\n }\n\n this.updateCallback()\n}\n\nfunction afterRead (err) {\n if (err) this.stream.destroy(err)\n this.stream._duplexState &= READ_NOT_ACTIVE\n if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) this.stream._duplexState &= READ_NO_READ_AHEAD\n this.updateCallback()\n}\n\nfunction updateReadNT () {\n if ((this.stream._duplexState & READ_UPDATING) === 0) {\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction updateWriteNT () {\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) {\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction tickDrains (drains) {\n for (let i = 0; i < drains.length; i++) {\n // drains.writes are monotonic, so if one is 0 its always the first one\n if (--drains[i].writes === 0) {\n drains.shift().resolve(true)\n i--\n }\n }\n}\n\nfunction afterOpen (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n\n if ((stream._duplexState & DESTROYING) === 0) {\n if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) stream._duplexState |= READ_PRIMARY\n if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) stream._duplexState |= WRITE_PRIMARY\n stream.emit('open')\n }\n\n stream._duplexState &= NOT_ACTIVE\n\n if (stream._writableState !== null) {\n stream._writableState.updateCallback()\n }\n\n if (stream._readableState !== null) {\n stream._readableState.updateCallback()\n }\n}\n\nfunction afterTransform (err, data) {\n if (data !== undefined && data !== null) this.push(data)\n this._writableState.afterWrite(err)\n}\n\nfunction newListener (name) {\n if (this._readableState !== null) {\n if (name === 'data') {\n this._duplexState |= (READ_EMIT_DATA | READ_RESUMED_READ_AHEAD)\n this._readableState.updateNextTick()\n }\n if (name === 'readable') {\n this._duplexState |= READ_EMIT_READABLE\n this._readableState.updateNextTick()\n }\n }\n\n if (this._writableState !== null) {\n if (name === 'drain') {\n this._duplexState |= WRITE_EMIT_DRAIN\n this._writableState.updateNextTick()\n }\n }\n}\n\nclass Stream extends EventEmitter {\n constructor (opts) {\n super()\n\n this._duplexState = 0\n this._readableState = null\n this._writableState = null\n\n if (opts) {\n if (opts.open) this._open = opts.open\n if (opts.destroy) this._destroy = opts.destroy\n if (opts.predestroy) this._predestroy = opts.predestroy\n if (opts.signal) {\n opts.signal.addEventListener('abort', abort.bind(this))\n }\n }\n\n this.on('newListener', newListener)\n }\n\n _open (cb) {\n cb(null)\n }\n\n _destroy (cb) {\n cb(null)\n }\n\n _predestroy () {\n // does nothing\n }\n\n get readable () {\n return this._readableState !== null ? true : undefined\n }\n\n get writable () {\n return this._writableState !== null ? true : undefined\n }\n\n get destroyed () {\n return (this._duplexState & DESTROYED) !== 0\n }\n\n get destroying () {\n return (this._duplexState & DESTROY_STATUS) !== 0\n }\n\n destroy (err) {\n if ((this._duplexState & DESTROY_STATUS) === 0) {\n if (!err) err = STREAM_DESTROYED\n this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY\n\n if (this._readableState !== null) {\n this._readableState.highWaterMark = 0\n this._readableState.error = err\n }\n if (this._writableState !== null) {\n this._writableState.highWaterMark = 0\n this._writableState.error = err\n }\n\n this._duplexState |= PREDESTROYING\n this._predestroy()\n this._duplexState &= NOT_PREDESTROYING\n\n if (this._readableState !== null) this._readableState.updateNextTick()\n if (this._writableState !== null) this._writableState.updateNextTick()\n }\n }\n}\n\nclass Readable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD\n this._readableState = new ReadableState(this, opts)\n\n if (opts) {\n if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD\n if (opts.read) this._read = opts.read\n if (opts.eagerOpen) this._readableState.updateNextTick()\n if (opts.encoding) this.setEncoding(opts.encoding)\n }\n }\n\n setEncoding (encoding) {\n const dec = new TextDecoder(encoding)\n const map = this._readableState.map || echo\n this._readableState.map = mapOrSkip\n return this\n\n function mapOrSkip (data) {\n const next = dec.push(data)\n return next === '' && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next)\n }\n }\n\n _read (cb) {\n cb(null)\n }\n\n pipe (dest, cb) {\n this._readableState.updateNextTick()\n this._readableState.pipe(dest, cb)\n return dest\n }\n\n read () {\n this._readableState.updateNextTick()\n return this._readableState.read()\n }\n\n push (data) {\n this._readableState.updateNextTickIfOpen()\n return this._readableState.push(data)\n }\n\n unshift (data) {\n this._readableState.updateNextTickIfOpen()\n return this._readableState.unshift(data)\n }\n\n resume () {\n this._duplexState |= READ_RESUMED_READ_AHEAD\n this._readableState.updateNextTick()\n return this\n }\n\n pause () {\n this._duplexState &= (this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED)\n return this\n }\n\n static _fromAsyncIterator (ite, opts) {\n let destroy\n\n const rs = new Readable({\n ...opts,\n read (cb) {\n ite.next().then(push).then(cb.bind(null, null)).catch(cb)\n },\n predestroy () {\n destroy = ite.return()\n },\n destroy (cb) {\n if (!destroy) return cb(null)\n destroy.then(cb.bind(null, null)).catch(cb)\n }\n })\n\n return rs\n\n function push (data) {\n if (data.done) rs.push(null)\n else rs.push(data.value)\n }\n }\n\n static from (data, opts) {\n if (isReadStreamx(data)) return data\n if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts)\n if (!Array.isArray(data)) data = data === undefined ? [] : [data]\n\n let i = 0\n return new Readable({\n ...opts,\n read (cb) {\n this.push(i === data.length ? null : data[i++])\n cb(null)\n }\n })\n }\n\n static isBackpressured (rs) {\n return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark\n }\n\n static isPaused (rs) {\n return (rs._duplexState & READ_RESUMED) === 0\n }\n\n [asyncIterator] () {\n const stream = this\n\n let error = null\n let promiseResolve = null\n let promiseReject = null\n\n this.on('error', (err) => { error = err })\n this.on('readable', onreadable)\n this.on('close', onclose)\n\n return {\n [asyncIterator] () {\n return this\n },\n next () {\n return new Promise(function (resolve, reject) {\n promiseResolve = resolve\n promiseReject = reject\n const data = stream.read()\n if (data !== null) ondata(data)\n else if ((stream._duplexState & DESTROYED) !== 0) ondata(null)\n })\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function onreadable () {\n if (promiseResolve !== null) ondata(stream.read())\n }\n\n function onclose () {\n if (promiseResolve !== null) ondata(null)\n }\n\n function ondata (data) {\n if (promiseReject === null) return\n if (error) promiseReject(error)\n else if (data === null && (stream._duplexState & READ_DONE) === 0) promiseReject(STREAM_DESTROYED)\n else promiseResolve({ value: data, done: data === null })\n promiseReject = promiseResolve = null\n }\n\n function destroy (err) {\n stream.destroy(err)\n return new Promise((resolve, reject) => {\n if (stream._duplexState & DESTROYED) return resolve({ value: undefined, done: true })\n stream.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nclass Writable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | READ_DONE\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n if (opts.eagerOpen) this._writableState.updateNextTick()\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n static isBackpressured (ws) {\n return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0\n }\n\n static drained (ws) {\n if (ws.destroyed) return Promise.resolve(false)\n const state = ws._writableState\n const pending = (isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length)\n const writes = pending + ((ws._duplexState & WRITE_WRITING) ? 1 : 0)\n if (writes === 0) return Promise.resolve(true)\n if (state.drains === null) state.drains = []\n return new Promise((resolve) => {\n state.drains.push({ writes, resolve })\n })\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Duplex extends Readable { // and Writable\n constructor (opts) {\n super(opts)\n\n this._duplexState = OPENING | (this._duplexState & READ_READ_AHEAD)\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Transform extends Duplex {\n constructor (opts) {\n super(opts)\n this._transformState = new TransformState(this)\n\n if (opts) {\n if (opts.transform) this._transform = opts.transform\n if (opts.flush) this._flush = opts.flush\n }\n }\n\n _write (data, cb) {\n if (this._readableState.buffered >= this._readableState.highWaterMark) {\n this._transformState.data = data\n } else {\n this._transform(data, this._transformState.afterTransform)\n }\n }\n\n _read (cb) {\n if (this._transformState.data !== null) {\n const data = this._transformState.data\n this._transformState.data = null\n cb(null)\n this._transform(data, this._transformState.afterTransform)\n } else {\n cb(null)\n }\n }\n\n destroy (err) {\n super.destroy(err)\n if (this._transformState.data !== null) {\n this._transformState.data = null\n this._transformState.afterTransform()\n }\n }\n\n _transform (data, cb) {\n cb(null, data)\n }\n\n _flush (cb) {\n cb(null)\n }\n\n _final (cb) {\n this._transformState.afterFinal = cb\n this._flush(transformAfterFlush.bind(this))\n }\n}\n\nclass PassThrough extends Transform {}\n\nfunction transformAfterFlush (err, data) {\n const cb = this._transformState.afterFinal\n if (err) return cb(err)\n if (data !== null && data !== undefined) this.push(data)\n this.push(null)\n cb(null)\n}\n\nfunction pipelinePromise (...streams) {\n return new Promise((resolve, reject) => {\n return pipeline(...streams, (err) => {\n if (err) return reject(err)\n resolve()\n })\n })\n}\n\nfunction pipeline (stream, ...streams) {\n const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]\n const done = (all.length && typeof all[all.length - 1] === 'function') ? all.pop() : null\n\n if (all.length < 2) throw new Error('Pipeline requires at least 2 streams')\n\n let src = all[0]\n let dest = null\n let error = null\n\n for (let i = 1; i < all.length; i++) {\n dest = all[i]\n\n if (isStreamx(src)) {\n src.pipe(dest, onerror)\n } else {\n errorHandle(src, true, i > 1, onerror)\n src.pipe(dest)\n }\n\n src = dest\n }\n\n if (done) {\n let fin = false\n\n const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy)\n\n dest.on('error', (err) => {\n if (error === null) error = err\n })\n\n dest.on('finish', () => {\n fin = true\n if (!autoDestroy) done(error)\n })\n\n if (autoDestroy) {\n dest.on('close', () => done(error || (fin ? null : PREMATURE_CLOSE)))\n }\n }\n\n return dest\n\n function errorHandle (s, rd, wr, onerror) {\n s.on('error', onerror)\n s.on('close', onclose)\n\n function onclose () {\n if (rd && s._readableState && !s._readableState.ended) return onerror(PREMATURE_CLOSE)\n if (wr && s._writableState && !s._writableState.ended) return onerror(PREMATURE_CLOSE)\n }\n }\n\n function onerror (err) {\n if (!err || error) return\n error = err\n\n for (const s of all) {\n s.destroy(err)\n }\n }\n}\n\nfunction echo (s) {\n return s\n}\n\nfunction isStream (stream) {\n return !!stream._readableState || !!stream._writableState\n}\n\nfunction isStreamx (stream) {\n return typeof stream._duplexState === 'number' && isStream(stream)\n}\n\nfunction isEnded (stream) {\n return !!stream._readableState && stream._readableState.ended\n}\n\nfunction isFinished (stream) {\n return !!stream._writableState && stream._writableState.ended\n}\n\nfunction getStreamError (stream, opts = {}) {\n const err = (stream._readableState && stream._readableState.error) || (stream._writableState && stream._writableState.error)\n\n // avoid implicit errors by default\n return (!opts.all && err === STREAM_DESTROYED) ? null : err\n}\n\nfunction isReadStreamx (stream) {\n return isStreamx(stream) && stream.readable\n}\n\nfunction isDisturbed (stream) {\n return (stream._duplexState & OPENING) !== OPENING || (stream._duplexState & ACTIVE_OR_TICKING) !== 0\n}\n\nfunction isTypedArray (data) {\n return typeof data === 'object' && data !== null && typeof data.byteLength === 'number'\n}\n\nfunction defaultByteLength (data) {\n return isTypedArray(data) ? data.byteLength : 1024\n}\n\nfunction noop () {}\n\nfunction abort () {\n this.destroy(new Error('Stream aborted.'))\n}\n\nfunction isWritev (s) {\n return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev\n}\n\nmodule.exports = {\n pipeline,\n pipelinePromise,\n isStream,\n isStreamx,\n isEnded,\n isFinished,\n isDisturbed,\n getStreamError,\n Stream,\n Writable,\n Readable,\n Duplex,\n Transform,\n // Export PassThrough for compatibility with Node.js core's stream module\n PassThrough\n}\n","'use strict';\nconst stripAnsi = require('strip-ansi');\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst emojiRegex = require('emoji-regex');\n\nconst stringWidth = string => {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), ' ');\n\n\tlet width = 0;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst code = string.codePointAt(i);\n\n\t\t// Ignore control characters\n\t\tif (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (code >= 0x300 && code <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Surrogates\n\t\tif (code > 0xFFFF) {\n\t\t\ti++;\n\t\t}\n\n\t\twidth += isFullwidthCodePoint(code) ? 2 : 1;\n\t}\n\n\treturn width;\n};\n\nmodule.exports = stringWidth;\n// TODO: remove this in the next major version\nmodule.exports.default = stringWidth;\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/;\n// const octRegex = /^0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n \nconst consider = {\n hex : true,\n // oct: false,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n eNotation: true,\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n \n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if(str===\"0\") return 0;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return parse_int(trimmedStr, 16);\n // }else if (options.oct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n }else if (trimmedStr.search(/[eE]/)!== -1) { //eNotation\n const notation = trimmedStr.match(/^([-\\+])?(0*)([0-9]*(\\.[0-9]*)?[eE][-\\+]?[0-9]+)$/); \n // +00.123 => [ , '+', '00', '.123', ..\n if(notation){\n // console.log(notation)\n if(options.leadingZeros){ //accept with leading zeros\n trimmedStr = (notation[1] || \"\") + notation[3];\n }else{\n if(notation[2] === \"0\" && notation[3][0]=== \".\"){ //valid number\n }else{\n return str;\n }\n }\n return options.eNotation ? Number(trimmedStr) : str;\n }else{\n return str;\n }\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n // +00.123 => [ , '+', '00', '.123', ..\n if(match){\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n //trim ending zeros for floating number\n \n if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n else if(options.leadingZeros && leadingZeros===str) return 0; //00\n \n else{//no leading zeros or leading zeros are allowed\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n\n if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n if(options.eNotation) return num;\n else return str;\n }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n else return str;\n }\n \n if(leadingZeros){\n return (numTrimmedByZeros === numStr) || (sign+numTrimmedByZeros === numStr) ? num : str\n }else {\n return (trimmedStr === numStr) || (trimmedStr === sign+numStr) ? num : str\n }\n }\n }else{ //non-numeric string\n return str;\n }\n }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n if(numStr && numStr.indexOf(\".\") !== -1){//float\n numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n if(numStr === \".\") numStr = \"0\";\n else if(numStr[0] === \".\") numStr = \"0\"+numStr;\n else if(numStr[numStr.length-1] === \".\") numStr = numStr.substr(0,numStr.length-1);\n return numStr;\n }\n return numStr;\n}\n\nfunction parse_int(numStr, base){\n //polyfill\n if(parseInt) return parseInt(numStr, base);\n else if(Number.parseInt) return Number.parseInt(numStr, base);\n else if(window && window.parseInt) return window.parseInt(numStr, base);\n else throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")\n}\n\nmodule.exports = toNumber;","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignVerticalRangeContent = exports.wrapRangeContent = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst alignString_1 = require(\"./alignString\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst wrapCell_1 = require(\"./wrapCell\");\n/**\n * Fill content into all cells in range in order to calculate total height\n */\nconst wrapRangeContent = (rangeConfig, rangeWidth, context) => {\n const { topLeft, paddingRight, paddingLeft, truncate, wrapWord, alignment } = rangeConfig;\n const originalContent = context.rows[topLeft.row][topLeft.col];\n const contentWidth = rangeWidth - paddingLeft - paddingRight;\n return (0, wrapCell_1.wrapCell)((0, truncateTableData_1.truncateString)(originalContent, truncate), contentWidth, wrapWord).map((line) => {\n const alignedLine = (0, alignString_1.alignString)(line, contentWidth, alignment);\n return (0, padTableData_1.padString)(alignedLine, paddingLeft, paddingRight);\n });\n};\nexports.wrapRangeContent = wrapRangeContent;\nconst alignVerticalRangeContent = (range, content, context) => {\n const { rows, drawHorizontalLine, rowHeights } = context;\n const { topLeft, bottomRight, verticalAlignment } = range;\n // They are empty before calculateRowHeights function run\n if (rowHeights.length === 0) {\n return [];\n }\n const totalCellHeight = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, bottomRight.row + 1));\n const totalBorderHeight = bottomRight.row - topLeft.row;\n const hiddenHorizontalBorderCount = (0, utils_1.sequence)(topLeft.row + 1, bottomRight.row).filter((horizontalBorderIndex) => {\n return !drawHorizontalLine(horizontalBorderIndex, rows.length);\n }).length;\n const availableRangeHeight = totalCellHeight + totalBorderHeight - hiddenHorizontalBorderCount;\n return (0, mapDataUsingRowHeights_1.padCellVertically)(content, availableRangeHeight, verticalAlignment).map((line) => {\n if (line.length === 0) {\n return ' '.repeat((0, string_width_1.default)(content[0]));\n }\n return line;\n });\n};\nexports.alignVerticalRangeContent = alignVerticalRangeContent;\n//# sourceMappingURL=alignSpanningCell.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignString = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst utils_1 = require(\"./utils\");\nconst alignLeft = (subject, width) => {\n return subject + ' '.repeat(width);\n};\nconst alignRight = (subject, width) => {\n return ' '.repeat(width) + subject;\n};\nconst alignCenter = (subject, width) => {\n return ' '.repeat(Math.floor(width / 2)) + subject + ' '.repeat(Math.ceil(width / 2));\n};\nconst alignJustify = (subject, width) => {\n const spaceSequenceCount = (0, utils_1.countSpaceSequence)(subject);\n if (spaceSequenceCount === 0) {\n return alignLeft(subject, width);\n }\n const addingSpaces = (0, utils_1.distributeUnevenly)(width, spaceSequenceCount);\n if (Math.max(...addingSpaces) > 3) {\n return alignLeft(subject, width);\n }\n let spaceSequenceIndex = 0;\n return subject.replace(/\\s+/g, (groupSpace) => {\n return groupSpace + ' '.repeat(addingSpaces[spaceSequenceIndex++]);\n });\n};\n/**\n * Pads a string to the left and/or right to position the subject\n * text in a desired alignment within a container.\n */\nconst alignString = (subject, containerWidth, alignment) => {\n const subjectWidth = (0, string_width_1.default)(subject);\n if (subjectWidth === containerWidth) {\n return subject;\n }\n if (subjectWidth > containerWidth) {\n throw new Error('Subject parameter value width cannot be greater than the container width.');\n }\n if (subjectWidth === 0) {\n return ' '.repeat(containerWidth);\n }\n const availableWidth = containerWidth - subjectWidth;\n if (alignment === 'left') {\n return alignLeft(subject, availableWidth);\n }\n if (alignment === 'right') {\n return alignRight(subject, availableWidth);\n }\n if (alignment === 'justify') {\n return alignJustify(subject, availableWidth);\n }\n return alignCenter(subject, availableWidth);\n};\nexports.alignString = alignString;\n//# sourceMappingURL=alignString.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignTableData = void 0;\nconst alignString_1 = require(\"./alignString\");\nconst alignTableData = (rows, config) => {\n return rows.map((row, rowIndex) => {\n return row.map((cell, cellIndex) => {\n var _a;\n const { width, alignment } = config.columns[cellIndex];\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex }, { mapped: true });\n if (containingRange) {\n return cell;\n }\n return (0, alignString_1.alignString)(cell, width, alignment);\n });\n });\n};\nexports.alignTableData = alignTableData;\n//# sourceMappingURL=alignTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateCellHeight = void 0;\nconst wrapCell_1 = require(\"./wrapCell\");\n/**\n * Calculates height of cell content in regard to its width and word wrapping.\n */\nconst calculateCellHeight = (value, columnWidth, useWrapWord = false) => {\n return (0, wrapCell_1.wrapCell)(value, columnWidth, useWrapWord).length;\n};\nexports.calculateCellHeight = calculateCellHeight;\n//# sourceMappingURL=calculateCellHeight.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateMaximumColumnWidths = exports.calculateMaximumCellWidth = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst utils_1 = require(\"./utils\");\nconst calculateMaximumCellWidth = (cell) => {\n return Math.max(...cell.split('\\n').map(string_width_1.default));\n};\nexports.calculateMaximumCellWidth = calculateMaximumCellWidth;\n/**\n * Produces an array of values that describe the largest value length (width) in every column.\n */\nconst calculateMaximumColumnWidths = (rows, spanningCellConfigs = []) => {\n const columnWidths = new Array(rows[0].length).fill(0);\n const rangeCoordinates = spanningCellConfigs.map(utils_1.calculateRangeCoordinate);\n const isSpanningCell = (rowIndex, columnIndex) => {\n return rangeCoordinates.some((rangeCoordinate) => {\n return (0, utils_1.isCellInRange)({ col: columnIndex,\n row: rowIndex }, rangeCoordinate);\n });\n };\n rows.forEach((row, rowIndex) => {\n row.forEach((cell, cellIndex) => {\n if (isSpanningCell(rowIndex, cellIndex)) {\n return;\n }\n columnWidths[cellIndex] = Math.max(columnWidths[cellIndex], (0, exports.calculateMaximumCellWidth)(cell));\n });\n });\n return columnWidths;\n};\nexports.calculateMaximumColumnWidths = calculateMaximumColumnWidths;\n//# sourceMappingURL=calculateMaximumColumnWidths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateOutputColumnWidths = void 0;\nconst calculateOutputColumnWidths = (config) => {\n return config.columns.map((col) => {\n return col.paddingLeft + col.width + col.paddingRight;\n });\n};\nexports.calculateOutputColumnWidths = calculateOutputColumnWidths;\n//# sourceMappingURL=calculateOutputColumnWidths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateRowHeights = void 0;\nconst calculateCellHeight_1 = require(\"./calculateCellHeight\");\nconst utils_1 = require(\"./utils\");\n/**\n * Produces an array of values that describe the largest value length (height) in every row.\n */\nconst calculateRowHeights = (rows, config) => {\n const rowHeights = [];\n for (const [rowIndex, row] of rows.entries()) {\n let rowHeight = 1;\n row.forEach((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex });\n if (!containingRange) {\n const cellHeight = (0, calculateCellHeight_1.calculateCellHeight)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);\n rowHeight = Math.max(rowHeight, cellHeight);\n return;\n }\n const { topLeft, bottomRight, height } = containingRange;\n // bottom-most cell of a range needs to contain all remain lines of spanning cells\n if (rowIndex === bottomRight.row) {\n const totalOccupiedSpanningCellHeight = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row));\n const totalHorizontalBorderHeight = bottomRight.row - topLeft.row;\n const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, bottomRight.row).filter((horizontalBorderIndex) => {\n var _a;\n /* istanbul ignore next */\n return !((_a = config.drawHorizontalLine) === null || _a === void 0 ? void 0 : _a.call(config, horizontalBorderIndex, rows.length));\n }).length;\n const cellHeight = height - totalOccupiedSpanningCellHeight - totalHorizontalBorderHeight + totalHiddenHorizontalBorderHeight;\n rowHeight = Math.max(rowHeight, cellHeight);\n }\n // otherwise, just depend on other sibling cell heights in the row\n });\n rowHeights.push(rowHeight);\n }\n return rowHeights;\n};\nexports.calculateRowHeights = calculateRowHeights;\n//# sourceMappingURL=calculateRowHeights.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateSpanningCellWidth = void 0;\nconst utils_1 = require(\"./utils\");\nconst calculateSpanningCellWidth = (rangeConfig, dependencies) => {\n const { columnsConfig, drawVerticalLine } = dependencies;\n const { topLeft, bottomRight } = rangeConfig;\n const totalWidth = (0, utils_1.sumArray)(columnsConfig.slice(topLeft.col, bottomRight.col + 1).map(({ width }) => {\n return width;\n }));\n const totalPadding = topLeft.col === bottomRight.col ?\n columnsConfig[topLeft.col].paddingRight +\n columnsConfig[bottomRight.col].paddingLeft :\n (0, utils_1.sumArray)(columnsConfig\n .slice(topLeft.col, bottomRight.col + 1)\n .map(({ paddingLeft, paddingRight }) => {\n return paddingLeft + paddingRight;\n }));\n const totalBorderWidths = bottomRight.col - topLeft.col;\n const totalHiddenVerticalBorders = (0, utils_1.sequence)(topLeft.col + 1, bottomRight.col).filter((verticalBorderIndex) => {\n return !drawVerticalLine(verticalBorderIndex, columnsConfig.length);\n }).length;\n return totalWidth + totalPadding + totalBorderWidths - totalHiddenVerticalBorders;\n};\nexports.calculateSpanningCellWidth = calculateSpanningCellWidth;\n//# sourceMappingURL=calculateSpanningCellWidth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createStream = void 0;\nconst alignTableData_1 = require(\"./alignTableData\");\nconst calculateRowHeights_1 = require(\"./calculateRowHeights\");\nconst drawBorder_1 = require(\"./drawBorder\");\nconst drawRow_1 = require(\"./drawRow\");\nconst makeStreamConfig_1 = require(\"./makeStreamConfig\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst stringifyTableData_1 = require(\"./stringifyTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst prepareData = (data, config) => {\n let rows = (0, stringifyTableData_1.stringifyTableData)(data);\n rows = (0, truncateTableData_1.truncateTableData)(rows, (0, utils_1.extractTruncates)(config));\n const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);\n rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);\n rows = (0, alignTableData_1.alignTableData)(rows, config);\n rows = (0, padTableData_1.padTableData)(rows, config);\n return rows;\n};\nconst create = (row, columnWidths, config) => {\n const rows = prepareData([row], config);\n const body = rows.map((literalRow) => {\n return (0, drawRow_1.drawRow)(literalRow, config);\n }).join('');\n let output;\n output = '';\n output += (0, drawBorder_1.drawBorderTop)(columnWidths, config);\n output += body;\n output += (0, drawBorder_1.drawBorderBottom)(columnWidths, config);\n output = output.trimEnd();\n process.stdout.write(output);\n};\nconst append = (row, columnWidths, config) => {\n const rows = prepareData([row], config);\n const body = rows.map((literalRow) => {\n return (0, drawRow_1.drawRow)(literalRow, config);\n }).join('');\n let output = '';\n const bottom = (0, drawBorder_1.drawBorderBottom)(columnWidths, config);\n if (bottom !== '\\n') {\n output = '\\r\\u001B[K';\n }\n output += (0, drawBorder_1.drawBorderJoin)(columnWidths, config);\n output += body;\n output += bottom;\n output = output.trimEnd();\n process.stdout.write(output);\n};\nconst createStream = (userConfig) => {\n const config = (0, makeStreamConfig_1.makeStreamConfig)(userConfig);\n const columnWidths = Object.values(config.columns).map((column) => {\n return column.width + column.paddingLeft + column.paddingRight;\n });\n let empty = true;\n return {\n write: (row) => {\n if (row.length !== config.columnCount) {\n throw new Error('Row cell count does not match the config.columnCount.');\n }\n if (empty) {\n empty = false;\n create(row, columnWidths, config);\n }\n else {\n append(row, columnWidths, config);\n }\n },\n };\n};\nexports.createStream = createStream;\n//# sourceMappingURL=createStream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTableBorderGetter = exports.drawBorderBottom = exports.drawBorderJoin = exports.drawBorderTop = exports.drawBorder = exports.createSeparatorGetter = exports.drawBorderSegments = void 0;\nconst drawContent_1 = require(\"./drawContent\");\nconst drawBorderSegments = (columnWidths, parameters) => {\n const { separator, horizontalBorderIndex, spanningCellManager } = parameters;\n return columnWidths.map((columnWidth, columnIndex) => {\n const normalSegment = separator.body.repeat(columnWidth);\n if (horizontalBorderIndex === undefined) {\n return normalSegment;\n }\n /* istanbul ignore next */\n const range = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange({ col: columnIndex,\n row: horizontalBorderIndex });\n if (!range) {\n return normalSegment;\n }\n const { topLeft } = range;\n // draw border segments as usual for top border of spanning cell\n if (horizontalBorderIndex === topLeft.row) {\n return normalSegment;\n }\n // if for first column/row of spanning cell, just skip\n if (columnIndex !== topLeft.col) {\n return '';\n }\n return range.extractBorderContent(horizontalBorderIndex);\n });\n};\nexports.drawBorderSegments = drawBorderSegments;\nconst createSeparatorGetter = (dependencies) => {\n const { separator, spanningCellManager, horizontalBorderIndex, rowCount } = dependencies;\n // eslint-disable-next-line complexity\n return (verticalBorderIndex, columnCount) => {\n const inSameRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.inSameRange;\n if (horizontalBorderIndex !== undefined && inSameRange) {\n const topCell = { col: verticalBorderIndex,\n row: horizontalBorderIndex - 1 };\n const leftCell = { col: verticalBorderIndex - 1,\n row: horizontalBorderIndex };\n const oppositeCell = { col: verticalBorderIndex - 1,\n row: horizontalBorderIndex - 1 };\n const currentCell = { col: verticalBorderIndex,\n row: horizontalBorderIndex };\n const pairs = [\n [oppositeCell, topCell],\n [topCell, currentCell],\n [currentCell, leftCell],\n [leftCell, oppositeCell],\n ];\n // left side of horizontal border\n if (verticalBorderIndex === 0) {\n if (inSameRange(currentCell, topCell) && separator.bodyJoinOuter) {\n return separator.bodyJoinOuter;\n }\n return separator.left;\n }\n // right side of horizontal border\n if (verticalBorderIndex === columnCount) {\n if (inSameRange(oppositeCell, leftCell) && separator.bodyJoinOuter) {\n return separator.bodyJoinOuter;\n }\n return separator.right;\n }\n // top horizontal border\n if (horizontalBorderIndex === 0) {\n if (inSameRange(currentCell, leftCell)) {\n return separator.body;\n }\n return separator.join;\n }\n // bottom horizontal border\n if (horizontalBorderIndex === rowCount) {\n if (inSameRange(topCell, oppositeCell)) {\n return separator.body;\n }\n return separator.join;\n }\n const sameRangeCount = pairs.map((pair) => {\n return inSameRange(...pair);\n }).filter(Boolean).length;\n // four cells are belongs to different spanning cells\n if (sameRangeCount === 0) {\n return separator.join;\n }\n // belong to one spanning cell\n if (sameRangeCount === 4) {\n return '';\n }\n // belongs to two spanning cell\n if (sameRangeCount === 2) {\n if (inSameRange(...pairs[1]) && inSameRange(...pairs[3]) && separator.bodyJoinInner) {\n return separator.bodyJoinInner;\n }\n return separator.body;\n }\n /* istanbul ignore next */\n if (sameRangeCount === 1) {\n if (!separator.joinRight || !separator.joinLeft || !separator.joinUp || !separator.joinDown) {\n throw new Error(`Can not get border separator for position [${horizontalBorderIndex}, ${verticalBorderIndex}]`);\n }\n if (inSameRange(...pairs[0])) {\n return separator.joinDown;\n }\n if (inSameRange(...pairs[1])) {\n return separator.joinLeft;\n }\n if (inSameRange(...pairs[2])) {\n return separator.joinUp;\n }\n return separator.joinRight;\n }\n /* istanbul ignore next */\n throw new Error('Invalid case');\n }\n if (verticalBorderIndex === 0) {\n return separator.left;\n }\n if (verticalBorderIndex === columnCount) {\n return separator.right;\n }\n return separator.join;\n };\n};\nexports.createSeparatorGetter = createSeparatorGetter;\nconst drawBorder = (columnWidths, parameters) => {\n const borderSegments = (0, exports.drawBorderSegments)(columnWidths, parameters);\n const { drawVerticalLine, horizontalBorderIndex, spanningCellManager } = parameters;\n return (0, drawContent_1.drawContent)({\n contents: borderSegments,\n drawSeparator: drawVerticalLine,\n elementType: 'border',\n rowIndex: horizontalBorderIndex,\n separatorGetter: (0, exports.createSeparatorGetter)(parameters),\n spanningCellManager,\n }) + '\\n';\n};\nexports.drawBorder = drawBorder;\nconst drawBorderTop = (columnWidths, parameters) => {\n const { border } = parameters;\n const result = (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.topBody,\n join: border.topJoin,\n left: border.topLeft,\n right: border.topRight,\n },\n });\n if (result === '\\n') {\n return '';\n }\n return result;\n};\nexports.drawBorderTop = drawBorderTop;\nconst drawBorderJoin = (columnWidths, parameters) => {\n const { border } = parameters;\n return (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.joinBody,\n bodyJoinInner: border.bodyJoin,\n bodyJoinOuter: border.bodyLeft,\n join: border.joinJoin,\n joinDown: border.joinMiddleDown,\n joinLeft: border.joinMiddleLeft,\n joinRight: border.joinMiddleRight,\n joinUp: border.joinMiddleUp,\n left: border.joinLeft,\n right: border.joinRight,\n },\n });\n};\nexports.drawBorderJoin = drawBorderJoin;\nconst drawBorderBottom = (columnWidths, parameters) => {\n const { border } = parameters;\n return (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.bottomBody,\n join: border.bottomJoin,\n left: border.bottomLeft,\n right: border.bottomRight,\n },\n });\n};\nexports.drawBorderBottom = drawBorderBottom;\nconst createTableBorderGetter = (columnWidths, parameters) => {\n return (index, size) => {\n const drawBorderParameters = { ...parameters,\n horizontalBorderIndex: index };\n if (index === 0) {\n return (0, exports.drawBorderTop)(columnWidths, drawBorderParameters);\n }\n else if (index === size) {\n return (0, exports.drawBorderBottom)(columnWidths, drawBorderParameters);\n }\n return (0, exports.drawBorderJoin)(columnWidths, drawBorderParameters);\n };\n};\nexports.createTableBorderGetter = createTableBorderGetter;\n//# sourceMappingURL=drawBorder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawContent = void 0;\nconst drawContent = (parameters) => {\n const { contents, separatorGetter, drawSeparator, spanningCellManager, rowIndex, elementType } = parameters;\n const contentSize = contents.length;\n const result = [];\n if (drawSeparator(0, contentSize)) {\n result.push(separatorGetter(0, contentSize));\n }\n contents.forEach((content, contentIndex) => {\n if (!elementType || elementType === 'border' || elementType === 'row') {\n result.push(content);\n }\n if (elementType === 'cell' && rowIndex === undefined) {\n result.push(content);\n }\n if (elementType === 'cell' && rowIndex !== undefined) {\n /* istanbul ignore next */\n const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange({ col: contentIndex,\n row: rowIndex });\n // when drawing content row, just add a cell when it is a normal cell\n // or belongs to first column of spanning cell\n if (!containingRange || contentIndex === containingRange.topLeft.col) {\n result.push(content);\n }\n }\n // Only append the middle separator if the content is not the last\n if (contentIndex + 1 < contentSize && drawSeparator(contentIndex + 1, contentSize)) {\n const separator = separatorGetter(contentIndex + 1, contentSize);\n if (elementType === 'cell' && rowIndex !== undefined) {\n const currentCell = { col: contentIndex + 1,\n row: rowIndex };\n /* istanbul ignore next */\n const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange(currentCell);\n if (!containingRange || containingRange.topLeft.col === currentCell.col) {\n result.push(separator);\n }\n }\n else {\n result.push(separator);\n }\n }\n });\n if (drawSeparator(contentSize, contentSize)) {\n result.push(separatorGetter(contentSize, contentSize));\n }\n return result.join('');\n};\nexports.drawContent = drawContent;\n//# sourceMappingURL=drawContent.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawRow = void 0;\nconst drawContent_1 = require(\"./drawContent\");\nconst drawRow = (row, config) => {\n const { border, drawVerticalLine, rowIndex, spanningCellManager } = config;\n return (0, drawContent_1.drawContent)({\n contents: row,\n drawSeparator: drawVerticalLine,\n elementType: 'cell',\n rowIndex,\n separatorGetter: (index, columnCount) => {\n if (index === 0) {\n return border.bodyLeft;\n }\n if (index === columnCount) {\n return border.bodyRight;\n }\n return border.bodyJoin;\n },\n spanningCellManager,\n }) + '\\n';\n};\nexports.drawRow = drawRow;\n//# sourceMappingURL=drawRow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawTable = void 0;\nconst drawBorder_1 = require(\"./drawBorder\");\nconst drawContent_1 = require(\"./drawContent\");\nconst drawRow_1 = require(\"./drawRow\");\nconst utils_1 = require(\"./utils\");\nconst drawTable = (rows, outputColumnWidths, rowHeights, config) => {\n const { drawHorizontalLine, singleLine, } = config;\n const contents = (0, utils_1.groupBySizes)(rows, rowHeights).map((group, groupIndex) => {\n return group.map((row) => {\n return (0, drawRow_1.drawRow)(row, { ...config,\n rowIndex: groupIndex });\n }).join('');\n });\n return (0, drawContent_1.drawContent)({ contents,\n drawSeparator: (index, size) => {\n // Top/bottom border\n if (index === 0 || index === size) {\n return drawHorizontalLine(index, size);\n }\n return !singleLine && drawHorizontalLine(index, size);\n },\n elementType: 'row',\n rowIndex: -1,\n separatorGetter: (0, drawBorder_1.createTableBorderGetter)(outputColumnWidths, { ...config,\n rowCount: contents.length }),\n spanningCellManager: config.spanningCellManager });\n};\nexports.drawTable = drawTable;\n//# sourceMappingURL=drawTable.js.map","\"use strict\";\nexports[\"config.json\"] = validate43;\nconst schema13 = {\n \"$id\": \"config.json\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"border\": {\n \"$ref\": \"shared.json#/definitions/borders\"\n },\n \"header\": {\n \"type\": \"object\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\"\n },\n \"alignment\": {\n \"$ref\": \"shared.json#/definitions/alignment\"\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\"content\"],\n \"additionalProperties\": false\n },\n \"columns\": {\n \"$ref\": \"shared.json#/definitions/columns\"\n },\n \"columnDefault\": {\n \"$ref\": \"shared.json#/definitions/column\"\n },\n \"drawVerticalLine\": {\n \"typeof\": \"function\"\n },\n \"drawHorizontalLine\": {\n \"typeof\": \"function\"\n },\n \"singleLine\": {\n \"typeof\": \"boolean\"\n },\n \"spanningCells\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"col\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"row\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"colSpan\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"rowSpan\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"alignment\": {\n \"$ref\": \"shared.json#/definitions/alignment\"\n },\n \"verticalAlignment\": {\n \"$ref\": \"shared.json#/definitions/verticalAlignment\"\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\"row\", \"col\"],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n};\nconst schema15 = {\n \"type\": \"object\",\n \"properties\": {\n \"topBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"headerJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleUp\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleDown\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleRight\": {\n \"$ref\": \"#/definitions/border\"\n }\n },\n \"additionalProperties\": false\n};\nconst func8 = Object.prototype.hasOwnProperty;\nconst schema16 = {\n \"type\": \"string\"\n};\nfunction validate46(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n validate46.errors = vErrors;\n return errors === 0;\n}\nfunction validate45(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(func8.call(schema15.properties, key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.topBody !== undefined) {\n if (!(validate46(data.topBody, {\n instancePath: instancePath + \"/topBody\",\n parentData: data,\n parentDataProperty: \"topBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topJoin !== undefined) {\n if (!(validate46(data.topJoin, {\n instancePath: instancePath + \"/topJoin\",\n parentData: data,\n parentDataProperty: \"topJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topLeft !== undefined) {\n if (!(validate46(data.topLeft, {\n instancePath: instancePath + \"/topLeft\",\n parentData: data,\n parentDataProperty: \"topLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topRight !== undefined) {\n if (!(validate46(data.topRight, {\n instancePath: instancePath + \"/topRight\",\n parentData: data,\n parentDataProperty: \"topRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomBody !== undefined) {\n if (!(validate46(data.bottomBody, {\n instancePath: instancePath + \"/bottomBody\",\n parentData: data,\n parentDataProperty: \"bottomBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomJoin !== undefined) {\n if (!(validate46(data.bottomJoin, {\n instancePath: instancePath + \"/bottomJoin\",\n parentData: data,\n parentDataProperty: \"bottomJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomLeft !== undefined) {\n if (!(validate46(data.bottomLeft, {\n instancePath: instancePath + \"/bottomLeft\",\n parentData: data,\n parentDataProperty: \"bottomLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomRight !== undefined) {\n if (!(validate46(data.bottomRight, {\n instancePath: instancePath + \"/bottomRight\",\n parentData: data,\n parentDataProperty: \"bottomRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyLeft !== undefined) {\n if (!(validate46(data.bodyLeft, {\n instancePath: instancePath + \"/bodyLeft\",\n parentData: data,\n parentDataProperty: \"bodyLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyRight !== undefined) {\n if (!(validate46(data.bodyRight, {\n instancePath: instancePath + \"/bodyRight\",\n parentData: data,\n parentDataProperty: \"bodyRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyJoin !== undefined) {\n if (!(validate46(data.bodyJoin, {\n instancePath: instancePath + \"/bodyJoin\",\n parentData: data,\n parentDataProperty: \"bodyJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.headerJoin !== undefined) {\n if (!(validate46(data.headerJoin, {\n instancePath: instancePath + \"/headerJoin\",\n parentData: data,\n parentDataProperty: \"headerJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinBody !== undefined) {\n if (!(validate46(data.joinBody, {\n instancePath: instancePath + \"/joinBody\",\n parentData: data,\n parentDataProperty: \"joinBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinLeft !== undefined) {\n if (!(validate46(data.joinLeft, {\n instancePath: instancePath + \"/joinLeft\",\n parentData: data,\n parentDataProperty: \"joinLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinRight !== undefined) {\n if (!(validate46(data.joinRight, {\n instancePath: instancePath + \"/joinRight\",\n parentData: data,\n parentDataProperty: \"joinRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinJoin !== undefined) {\n if (!(validate46(data.joinJoin, {\n instancePath: instancePath + \"/joinJoin\",\n parentData: data,\n parentDataProperty: \"joinJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleUp !== undefined) {\n if (!(validate46(data.joinMiddleUp, {\n instancePath: instancePath + \"/joinMiddleUp\",\n parentData: data,\n parentDataProperty: \"joinMiddleUp\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleDown !== undefined) {\n if (!(validate46(data.joinMiddleDown, {\n instancePath: instancePath + \"/joinMiddleDown\",\n parentData: data,\n parentDataProperty: \"joinMiddleDown\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleLeft !== undefined) {\n if (!(validate46(data.joinMiddleLeft, {\n instancePath: instancePath + \"/joinMiddleLeft\",\n parentData: data,\n parentDataProperty: \"joinMiddleLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleRight !== undefined) {\n if (!(validate46(data.joinMiddleRight, {\n instancePath: instancePath + \"/joinMiddleRight\",\n parentData: data,\n parentDataProperty: \"joinMiddleRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate45.errors = vErrors;\n return errors === 0;\n}\nconst schema17 = {\n \"type\": \"string\",\n \"enum\": [\"left\", \"right\", \"center\", \"justify\"]\n};\nconst func0 = require(\"ajv/dist/runtime/equal\").default;\nfunction validate68(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!((((data === \"left\") || (data === \"right\")) || (data === \"center\")) || (data === \"justify\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema17.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate68.errors = vErrors;\n return errors === 0;\n}\nconst schema18 = {\n \"oneOf\": [{\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[0-9]+$\": {\n \"$ref\": \"#/definitions/column\"\n }\n },\n \"additionalProperties\": false\n }, {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/column\"\n }\n }]\n};\nconst pattern0 = new RegExp(\"^[0-9]+$\", \"u\");\nconst schema19 = {\n \"type\": \"object\",\n \"properties\": {\n \"alignment\": {\n \"$ref\": \"#/definitions/alignment\"\n },\n \"verticalAlignment\": {\n \"$ref\": \"#/definitions/verticalAlignment\"\n },\n \"width\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"additionalProperties\": false\n};\nfunction validate72(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!((((data === \"left\") || (data === \"right\")) || (data === \"center\")) || (data === \"justify\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema17.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate72.errors = vErrors;\n return errors === 0;\n}\nconst schema21 = {\n \"type\": \"string\",\n \"enum\": [\"top\", \"middle\", \"bottom\"]\n};\nfunction validate74(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!(((data === \"top\") || (data === \"middle\")) || (data === \"bottom\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema21.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate74.errors = vErrors;\n return errors === 0;\n}\nfunction validate71(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate71.errors = vErrors;\n return errors === 0;\n}\nfunction validate70(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n const _errs0 = errors;\n let valid0 = false;\n let passing0 = null;\n const _errs1 = errors;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(pattern0.test(key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/oneOf/0/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n for (const key1 in data) {\n if (pattern0.test(key1)) {\n if (!(validate71(data[key1], {\n instancePath: instancePath + \"/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),\n parentData: data,\n parentDataProperty: key1,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/oneOf/0/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n var _valid0 = _errs1 === errors;\n if (_valid0) {\n valid0 = true;\n passing0 = 0;\n }\n const _errs5 = errors;\n if (Array.isArray(data)) {\n const len0 = data.length;\n for (let i0 = 0; i0 < len0; i0++) {\n if (!(validate71(data[i0], {\n instancePath: instancePath + \"/\" + i0,\n parentData: data,\n parentDataProperty: i0,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err2 = {\n instancePath,\n schemaPath: \"#/oneOf/1/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n var _valid0 = _errs5 === errors;\n if (_valid0 && valid0) {\n valid0 = false;\n passing0 = [passing0, 1];\n }\n else {\n if (_valid0) {\n valid0 = true;\n passing0 = 1;\n }\n }\n if (!valid0) {\n const err3 = {\n instancePath,\n schemaPath: \"#/oneOf\",\n keyword: \"oneOf\",\n params: {\n passingSchemas: passing0\n },\n message: \"must match exactly one schema in oneOf\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n else {\n errors = _errs0;\n if (vErrors !== null) {\n if (_errs0) {\n vErrors.length = _errs0;\n }\n else {\n vErrors = null;\n }\n }\n }\n validate70.errors = vErrors;\n return errors === 0;\n}\nfunction validate79(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate79.errors = vErrors;\n return errors === 0;\n}\nfunction validate84(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!(((data === \"top\") || (data === \"middle\")) || (data === \"bottom\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema21.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate84.errors = vErrors;\n return errors === 0;\n}\nfunction validate43(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n /*# sourceURL=\"config.json\" */ ;\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!((((((((key0 === \"border\") || (key0 === \"header\")) || (key0 === \"columns\")) || (key0 === \"columnDefault\")) || (key0 === \"drawVerticalLine\")) || (key0 === \"drawHorizontalLine\")) || (key0 === \"singleLine\")) || (key0 === \"spanningCells\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.border !== undefined) {\n if (!(validate45(data.border, {\n instancePath: instancePath + \"/border\",\n parentData: data,\n parentDataProperty: \"border\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors);\n errors = vErrors.length;\n }\n }\n if (data.header !== undefined) {\n let data1 = data.header;\n if (data1 && typeof data1 == \"object\" && !Array.isArray(data1)) {\n if (data1.content === undefined) {\n const err1 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"content\"\n },\n message: \"must have required property '\" + \"content\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n for (const key1 in data1) {\n if (!((((((key1 === \"content\") || (key1 === \"alignment\")) || (key1 === \"wrapWord\")) || (key1 === \"truncate\")) || (key1 === \"paddingLeft\")) || (key1 === \"paddingRight\"))) {\n const err2 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key1\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n if (data1.content !== undefined) {\n if (typeof data1.content !== \"string\") {\n const err3 = {\n instancePath: instancePath + \"/header/content\",\n schemaPath: \"#/properties/header/properties/content/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data1.alignment !== undefined) {\n if (!(validate68(data1.alignment, {\n instancePath: instancePath + \"/header/alignment\",\n parentData: data1,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors);\n errors = vErrors.length;\n }\n }\n if (data1.wrapWord !== undefined) {\n if (typeof data1.wrapWord !== \"boolean\") {\n const err4 = {\n instancePath: instancePath + \"/header/wrapWord\",\n schemaPath: \"#/properties/header/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data1.truncate !== undefined) {\n let data5 = data1.truncate;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/header/truncate\",\n schemaPath: \"#/properties/header/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data1.paddingLeft !== undefined) {\n let data6 = data1.paddingLeft;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/header/paddingLeft\",\n schemaPath: \"#/properties/header/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n if (data1.paddingRight !== undefined) {\n let data7 = data1.paddingRight;\n if (!(((typeof data7 == \"number\") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) {\n const err7 = {\n instancePath: instancePath + \"/header/paddingRight\",\n schemaPath: \"#/properties/header/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n }\n }\n else {\n const err8 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err8];\n }\n else {\n vErrors.push(err8);\n }\n errors++;\n }\n }\n if (data.columns !== undefined) {\n if (!(validate70(data.columns, {\n instancePath: instancePath + \"/columns\",\n parentData: data,\n parentDataProperty: \"columns\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate70.errors : vErrors.concat(validate70.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnDefault !== undefined) {\n if (!(validate79(data.columnDefault, {\n instancePath: instancePath + \"/columnDefault\",\n parentData: data,\n parentDataProperty: \"columnDefault\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors);\n errors = vErrors.length;\n }\n }\n if (data.drawVerticalLine !== undefined) {\n if (typeof data.drawVerticalLine != \"function\") {\n const err9 = {\n instancePath: instancePath + \"/drawVerticalLine\",\n schemaPath: \"#/properties/drawVerticalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err9];\n }\n else {\n vErrors.push(err9);\n }\n errors++;\n }\n }\n if (data.drawHorizontalLine !== undefined) {\n if (typeof data.drawHorizontalLine != \"function\") {\n const err10 = {\n instancePath: instancePath + \"/drawHorizontalLine\",\n schemaPath: \"#/properties/drawHorizontalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err10];\n }\n else {\n vErrors.push(err10);\n }\n errors++;\n }\n }\n if (data.singleLine !== undefined) {\n if (typeof data.singleLine != \"boolean\") {\n const err11 = {\n instancePath: instancePath + \"/singleLine\",\n schemaPath: \"#/properties/singleLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err11];\n }\n else {\n vErrors.push(err11);\n }\n errors++;\n }\n }\n if (data.spanningCells !== undefined) {\n let data13 = data.spanningCells;\n if (Array.isArray(data13)) {\n const len0 = data13.length;\n for (let i0 = 0; i0 < len0; i0++) {\n let data14 = data13[i0];\n if (data14 && typeof data14 == \"object\" && !Array.isArray(data14)) {\n if (data14.row === undefined) {\n const err12 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"row\"\n },\n message: \"must have required property '\" + \"row\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err12];\n }\n else {\n vErrors.push(err12);\n }\n errors++;\n }\n if (data14.col === undefined) {\n const err13 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"col\"\n },\n message: \"must have required property '\" + \"col\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err13];\n }\n else {\n vErrors.push(err13);\n }\n errors++;\n }\n for (const key2 in data14) {\n if (!(func8.call(schema13.properties.spanningCells.items.properties, key2))) {\n const err14 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key2\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err14];\n }\n else {\n vErrors.push(err14);\n }\n errors++;\n }\n }\n if (data14.col !== undefined) {\n let data15 = data14.col;\n if (!(((typeof data15 == \"number\") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))) {\n const err15 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/col\",\n schemaPath: \"#/properties/spanningCells/items/properties/col/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err15];\n }\n else {\n vErrors.push(err15);\n }\n errors++;\n }\n if ((typeof data15 == \"number\") && (isFinite(data15))) {\n if (data15 < 0 || isNaN(data15)) {\n const err16 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/col\",\n schemaPath: \"#/properties/spanningCells/items/properties/col/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 0\n },\n message: \"must be >= 0\"\n };\n if (vErrors === null) {\n vErrors = [err16];\n }\n else {\n vErrors.push(err16);\n }\n errors++;\n }\n }\n }\n if (data14.row !== undefined) {\n let data16 = data14.row;\n if (!(((typeof data16 == \"number\") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))) {\n const err17 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/row\",\n schemaPath: \"#/properties/spanningCells/items/properties/row/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err17];\n }\n else {\n vErrors.push(err17);\n }\n errors++;\n }\n if ((typeof data16 == \"number\") && (isFinite(data16))) {\n if (data16 < 0 || isNaN(data16)) {\n const err18 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/row\",\n schemaPath: \"#/properties/spanningCells/items/properties/row/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 0\n },\n message: \"must be >= 0\"\n };\n if (vErrors === null) {\n vErrors = [err18];\n }\n else {\n vErrors.push(err18);\n }\n errors++;\n }\n }\n }\n if (data14.colSpan !== undefined) {\n let data17 = data14.colSpan;\n if (!(((typeof data17 == \"number\") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))) {\n const err19 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/colSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/colSpan/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err19];\n }\n else {\n vErrors.push(err19);\n }\n errors++;\n }\n if ((typeof data17 == \"number\") && (isFinite(data17))) {\n if (data17 < 1 || isNaN(data17)) {\n const err20 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/colSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/colSpan/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err20];\n }\n else {\n vErrors.push(err20);\n }\n errors++;\n }\n }\n }\n if (data14.rowSpan !== undefined) {\n let data18 = data14.rowSpan;\n if (!(((typeof data18 == \"number\") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))) {\n const err21 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/rowSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/rowSpan/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err21];\n }\n else {\n vErrors.push(err21);\n }\n errors++;\n }\n if ((typeof data18 == \"number\") && (isFinite(data18))) {\n if (data18 < 1 || isNaN(data18)) {\n const err22 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/rowSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/rowSpan/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err22];\n }\n else {\n vErrors.push(err22);\n }\n errors++;\n }\n }\n }\n if (data14.alignment !== undefined) {\n if (!(validate68(data14.alignment, {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/alignment\",\n parentData: data14,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors);\n errors = vErrors.length;\n }\n }\n if (data14.verticalAlignment !== undefined) {\n if (!(validate84(data14.verticalAlignment, {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/verticalAlignment\",\n parentData: data14,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate84.errors : vErrors.concat(validate84.errors);\n errors = vErrors.length;\n }\n }\n if (data14.wrapWord !== undefined) {\n if (typeof data14.wrapWord !== \"boolean\") {\n const err23 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/wrapWord\",\n schemaPath: \"#/properties/spanningCells/items/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err23];\n }\n else {\n vErrors.push(err23);\n }\n errors++;\n }\n }\n if (data14.truncate !== undefined) {\n let data22 = data14.truncate;\n if (!(((typeof data22 == \"number\") && (!(data22 % 1) && !isNaN(data22))) && (isFinite(data22)))) {\n const err24 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/truncate\",\n schemaPath: \"#/properties/spanningCells/items/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err24];\n }\n else {\n vErrors.push(err24);\n }\n errors++;\n }\n }\n if (data14.paddingLeft !== undefined) {\n let data23 = data14.paddingLeft;\n if (!(((typeof data23 == \"number\") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))) {\n const err25 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/paddingLeft\",\n schemaPath: \"#/properties/spanningCells/items/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err25];\n }\n else {\n vErrors.push(err25);\n }\n errors++;\n }\n }\n if (data14.paddingRight !== undefined) {\n let data24 = data14.paddingRight;\n if (!(((typeof data24 == \"number\") && (!(data24 % 1) && !isNaN(data24))) && (isFinite(data24)))) {\n const err26 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/paddingRight\",\n schemaPath: \"#/properties/spanningCells/items/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err26];\n }\n else {\n vErrors.push(err26);\n }\n errors++;\n }\n }\n }\n else {\n const err27 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err27];\n }\n else {\n vErrors.push(err27);\n }\n errors++;\n }\n }\n }\n else {\n const err28 = {\n instancePath: instancePath + \"/spanningCells\",\n schemaPath: \"#/properties/spanningCells/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err28];\n }\n else {\n vErrors.push(err28);\n }\n errors++;\n }\n }\n }\n else {\n const err29 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err29];\n }\n else {\n vErrors.push(err29);\n }\n errors++;\n }\n validate43.errors = vErrors;\n return errors === 0;\n}\nexports[\"streamConfig.json\"] = validate86;\nconst schema24 = {\n \"$id\": \"streamConfig.json\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"border\": {\n \"$ref\": \"shared.json#/definitions/borders\"\n },\n \"columns\": {\n \"$ref\": \"shared.json#/definitions/columns\"\n },\n \"columnDefault\": {\n \"$ref\": \"shared.json#/definitions/column\"\n },\n \"columnCount\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"drawVerticalLine\": {\n \"typeof\": \"function\"\n }\n },\n \"required\": [\"columnDefault\", \"columnCount\"],\n \"additionalProperties\": false\n};\nfunction validate87(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(func8.call(schema15.properties, key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.topBody !== undefined) {\n if (!(validate46(data.topBody, {\n instancePath: instancePath + \"/topBody\",\n parentData: data,\n parentDataProperty: \"topBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topJoin !== undefined) {\n if (!(validate46(data.topJoin, {\n instancePath: instancePath + \"/topJoin\",\n parentData: data,\n parentDataProperty: \"topJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topLeft !== undefined) {\n if (!(validate46(data.topLeft, {\n instancePath: instancePath + \"/topLeft\",\n parentData: data,\n parentDataProperty: \"topLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topRight !== undefined) {\n if (!(validate46(data.topRight, {\n instancePath: instancePath + \"/topRight\",\n parentData: data,\n parentDataProperty: \"topRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomBody !== undefined) {\n if (!(validate46(data.bottomBody, {\n instancePath: instancePath + \"/bottomBody\",\n parentData: data,\n parentDataProperty: \"bottomBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomJoin !== undefined) {\n if (!(validate46(data.bottomJoin, {\n instancePath: instancePath + \"/bottomJoin\",\n parentData: data,\n parentDataProperty: \"bottomJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomLeft !== undefined) {\n if (!(validate46(data.bottomLeft, {\n instancePath: instancePath + \"/bottomLeft\",\n parentData: data,\n parentDataProperty: \"bottomLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomRight !== undefined) {\n if (!(validate46(data.bottomRight, {\n instancePath: instancePath + \"/bottomRight\",\n parentData: data,\n parentDataProperty: \"bottomRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyLeft !== undefined) {\n if (!(validate46(data.bodyLeft, {\n instancePath: instancePath + \"/bodyLeft\",\n parentData: data,\n parentDataProperty: \"bodyLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyRight !== undefined) {\n if (!(validate46(data.bodyRight, {\n instancePath: instancePath + \"/bodyRight\",\n parentData: data,\n parentDataProperty: \"bodyRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyJoin !== undefined) {\n if (!(validate46(data.bodyJoin, {\n instancePath: instancePath + \"/bodyJoin\",\n parentData: data,\n parentDataProperty: \"bodyJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.headerJoin !== undefined) {\n if (!(validate46(data.headerJoin, {\n instancePath: instancePath + \"/headerJoin\",\n parentData: data,\n parentDataProperty: \"headerJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinBody !== undefined) {\n if (!(validate46(data.joinBody, {\n instancePath: instancePath + \"/joinBody\",\n parentData: data,\n parentDataProperty: \"joinBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinLeft !== undefined) {\n if (!(validate46(data.joinLeft, {\n instancePath: instancePath + \"/joinLeft\",\n parentData: data,\n parentDataProperty: \"joinLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinRight !== undefined) {\n if (!(validate46(data.joinRight, {\n instancePath: instancePath + \"/joinRight\",\n parentData: data,\n parentDataProperty: \"joinRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinJoin !== undefined) {\n if (!(validate46(data.joinJoin, {\n instancePath: instancePath + \"/joinJoin\",\n parentData: data,\n parentDataProperty: \"joinJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleUp !== undefined) {\n if (!(validate46(data.joinMiddleUp, {\n instancePath: instancePath + \"/joinMiddleUp\",\n parentData: data,\n parentDataProperty: \"joinMiddleUp\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleDown !== undefined) {\n if (!(validate46(data.joinMiddleDown, {\n instancePath: instancePath + \"/joinMiddleDown\",\n parentData: data,\n parentDataProperty: \"joinMiddleDown\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleLeft !== undefined) {\n if (!(validate46(data.joinMiddleLeft, {\n instancePath: instancePath + \"/joinMiddleLeft\",\n parentData: data,\n parentDataProperty: \"joinMiddleLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleRight !== undefined) {\n if (!(validate46(data.joinMiddleRight, {\n instancePath: instancePath + \"/joinMiddleRight\",\n parentData: data,\n parentDataProperty: \"joinMiddleRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate87.errors = vErrors;\n return errors === 0;\n}\nfunction validate109(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n const _errs0 = errors;\n let valid0 = false;\n let passing0 = null;\n const _errs1 = errors;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(pattern0.test(key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/oneOf/0/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n for (const key1 in data) {\n if (pattern0.test(key1)) {\n if (!(validate71(data[key1], {\n instancePath: instancePath + \"/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),\n parentData: data,\n parentDataProperty: key1,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/oneOf/0/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n var _valid0 = _errs1 === errors;\n if (_valid0) {\n valid0 = true;\n passing0 = 0;\n }\n const _errs5 = errors;\n if (Array.isArray(data)) {\n const len0 = data.length;\n for (let i0 = 0; i0 < len0; i0++) {\n if (!(validate71(data[i0], {\n instancePath: instancePath + \"/\" + i0,\n parentData: data,\n parentDataProperty: i0,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err2 = {\n instancePath,\n schemaPath: \"#/oneOf/1/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n var _valid0 = _errs5 === errors;\n if (_valid0 && valid0) {\n valid0 = false;\n passing0 = [passing0, 1];\n }\n else {\n if (_valid0) {\n valid0 = true;\n passing0 = 1;\n }\n }\n if (!valid0) {\n const err3 = {\n instancePath,\n schemaPath: \"#/oneOf\",\n keyword: \"oneOf\",\n params: {\n passingSchemas: passing0\n },\n message: \"must match exactly one schema in oneOf\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n else {\n errors = _errs0;\n if (vErrors !== null) {\n if (_errs0) {\n vErrors.length = _errs0;\n }\n else {\n vErrors = null;\n }\n }\n }\n validate109.errors = vErrors;\n return errors === 0;\n}\nfunction validate113(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate113.errors = vErrors;\n return errors === 0;\n}\nfunction validate86(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n /*# sourceURL=\"streamConfig.json\" */ ;\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n if (data.columnDefault === undefined) {\n const err0 = {\n instancePath,\n schemaPath: \"#/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"columnDefault\"\n },\n message: \"must have required property '\" + \"columnDefault\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (data.columnCount === undefined) {\n const err1 = {\n instancePath,\n schemaPath: \"#/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"columnCount\"\n },\n message: \"must have required property '\" + \"columnCount\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n for (const key0 in data) {\n if (!(((((key0 === \"border\") || (key0 === \"columns\")) || (key0 === \"columnDefault\")) || (key0 === \"columnCount\")) || (key0 === \"drawVerticalLine\"))) {\n const err2 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n if (data.border !== undefined) {\n if (!(validate87(data.border, {\n instancePath: instancePath + \"/border\",\n parentData: data,\n parentDataProperty: \"border\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors);\n errors = vErrors.length;\n }\n }\n if (data.columns !== undefined) {\n if (!(validate109(data.columns, {\n instancePath: instancePath + \"/columns\",\n parentData: data,\n parentDataProperty: \"columns\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate109.errors : vErrors.concat(validate109.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnDefault !== undefined) {\n if (!(validate113(data.columnDefault, {\n instancePath: instancePath + \"/columnDefault\",\n parentData: data,\n parentDataProperty: \"columnDefault\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate113.errors : vErrors.concat(validate113.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnCount !== undefined) {\n let data3 = data.columnCount;\n if (!(((typeof data3 == \"number\") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) {\n const err3 = {\n instancePath: instancePath + \"/columnCount\",\n schemaPath: \"#/properties/columnCount/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n if ((typeof data3 == \"number\") && (isFinite(data3))) {\n if (data3 < 1 || isNaN(data3)) {\n const err4 = {\n instancePath: instancePath + \"/columnCount\",\n schemaPath: \"#/properties/columnCount/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n }\n if (data.drawVerticalLine !== undefined) {\n if (typeof data.drawVerticalLine != \"function\") {\n const err5 = {\n instancePath: instancePath + \"/drawVerticalLine\",\n schemaPath: \"#/properties/drawVerticalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n }\n else {\n const err6 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n validate86.errors = vErrors;\n return errors === 0;\n}\n//# sourceMappingURL=validators.js.map","\"use strict\";\n/* eslint-disable sort-keys-fix/sort-keys-fix */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBorderCharacters = void 0;\nconst getBorderCharacters = (name) => {\n if (name === 'honeywell') {\n return {\n topBody: '═',\n topJoin: '╤',\n topLeft: '╔',\n topRight: '╗',\n bottomBody: '═',\n bottomJoin: '╧',\n bottomLeft: '╚',\n bottomRight: '╝',\n bodyLeft: '║',\n bodyRight: '║',\n bodyJoin: '│',\n headerJoin: '┬',\n joinBody: '─',\n joinLeft: '╟',\n joinRight: '╢',\n joinJoin: '┼',\n joinMiddleDown: '┬',\n joinMiddleUp: '┴',\n joinMiddleLeft: '┤',\n joinMiddleRight: '├',\n };\n }\n if (name === 'norc') {\n return {\n topBody: '─',\n topJoin: '┬',\n topLeft: '┌',\n topRight: '┐',\n bottomBody: '─',\n bottomJoin: '┴',\n bottomLeft: '└',\n bottomRight: '┘',\n bodyLeft: '│',\n bodyRight: '│',\n bodyJoin: '│',\n headerJoin: '┬',\n joinBody: '─',\n joinLeft: '├',\n joinRight: '┤',\n joinJoin: '┼',\n joinMiddleDown: '┬',\n joinMiddleUp: '┴',\n joinMiddleLeft: '┤',\n joinMiddleRight: '├',\n };\n }\n if (name === 'ramac') {\n return {\n topBody: '-',\n topJoin: '+',\n topLeft: '+',\n topRight: '+',\n bottomBody: '-',\n bottomJoin: '+',\n bottomLeft: '+',\n bottomRight: '+',\n bodyLeft: '|',\n bodyRight: '|',\n bodyJoin: '|',\n headerJoin: '+',\n joinBody: '-',\n joinLeft: '|',\n joinRight: '|',\n joinJoin: '|',\n joinMiddleDown: '+',\n joinMiddleUp: '+',\n joinMiddleLeft: '+',\n joinMiddleRight: '+',\n };\n }\n if (name === 'void') {\n return {\n topBody: '',\n topJoin: '',\n topLeft: '',\n topRight: '',\n bottomBody: '',\n bottomJoin: '',\n bottomLeft: '',\n bottomRight: '',\n bodyLeft: '',\n bodyRight: '',\n bodyJoin: '',\n headerJoin: '',\n joinBody: '',\n joinLeft: '',\n joinRight: '',\n joinJoin: '',\n joinMiddleDown: '',\n joinMiddleUp: '',\n joinMiddleLeft: '',\n joinMiddleRight: '',\n };\n }\n throw new Error('Unknown border template \"' + name + '\".');\n};\nexports.getBorderCharacters = getBorderCharacters;\n//# sourceMappingURL=getBorderCharacters.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBorderCharacters = exports.createStream = exports.table = void 0;\nconst createStream_1 = require(\"./createStream\");\nObject.defineProperty(exports, \"createStream\", { enumerable: true, get: function () { return createStream_1.createStream; } });\nconst getBorderCharacters_1 = require(\"./getBorderCharacters\");\nObject.defineProperty(exports, \"getBorderCharacters\", { enumerable: true, get: function () { return getBorderCharacters_1.getBorderCharacters; } });\nconst table_1 = require(\"./table\");\nObject.defineProperty(exports, \"table\", { enumerable: true, get: function () { return table_1.table; } });\n__exportStar(require(\"./types/api\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectHeaderConfig = void 0;\nconst injectHeaderConfig = (rows, config) => {\n var _a;\n let spanningCellConfig = (_a = config.spanningCells) !== null && _a !== void 0 ? _a : [];\n const headerConfig = config.header;\n const adjustedRows = [...rows];\n if (headerConfig) {\n spanningCellConfig = spanningCellConfig.map(({ row, ...rest }) => {\n return { ...rest,\n row: row + 1 };\n });\n const { content, ...headerStyles } = headerConfig;\n spanningCellConfig.unshift({ alignment: 'center',\n col: 0,\n colSpan: rows[0].length,\n paddingLeft: 1,\n paddingRight: 1,\n row: 0,\n wrapWord: false,\n ...headerStyles });\n adjustedRows.unshift([content, ...Array.from({ length: rows[0].length - 1 }).fill('')]);\n }\n return [adjustedRows,\n spanningCellConfig];\n};\nexports.injectHeaderConfig = injectHeaderConfig;\n//# sourceMappingURL=injectHeaderConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeRangeConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst makeRangeConfig = (spanningCellConfig, columnsConfig) => {\n var _a;\n const { topLeft, bottomRight } = (0, utils_1.calculateRangeCoordinate)(spanningCellConfig);\n const cellConfig = {\n ...columnsConfig[topLeft.col],\n ...spanningCellConfig,\n paddingRight: (_a = spanningCellConfig.paddingRight) !== null && _a !== void 0 ? _a : columnsConfig[bottomRight.col].paddingRight,\n };\n return { ...cellConfig,\n bottomRight,\n topLeft };\n};\nexports.makeRangeConfig = makeRangeConfig;\n//# sourceMappingURL=makeRangeConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeStreamConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst validateConfig_1 = require(\"./validateConfig\");\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n */\nconst makeColumnsConfig = (columnCount, columns = {}, columnDefault) => {\n return Array.from({ length: columnCount }).map((_, index) => {\n return {\n alignment: 'left',\n paddingLeft: 1,\n paddingRight: 1,\n truncate: Number.POSITIVE_INFINITY,\n verticalAlignment: 'top',\n wrapWord: false,\n ...columnDefault,\n ...columns[index],\n };\n });\n};\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n */\nconst makeStreamConfig = (config) => {\n (0, validateConfig_1.validateConfig)('streamConfig.json', config);\n if (config.columnDefault.width === undefined) {\n throw new Error('Must provide config.columnDefault.width when creating a stream.');\n }\n return {\n drawVerticalLine: () => {\n return true;\n },\n ...config,\n border: (0, utils_1.makeBorderConfig)(config.border),\n columns: makeColumnsConfig(config.columnCount, config.columns, config.columnDefault),\n };\n};\nexports.makeStreamConfig = makeStreamConfig;\n//# sourceMappingURL=makeStreamConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeTableConfig = void 0;\nconst calculateMaximumColumnWidths_1 = require(\"./calculateMaximumColumnWidths\");\nconst spanningCellManager_1 = require(\"./spanningCellManager\");\nconst utils_1 = require(\"./utils\");\nconst validateConfig_1 = require(\"./validateConfig\");\nconst validateSpanningCellConfig_1 = require(\"./validateSpanningCellConfig\");\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n */\nconst makeColumnsConfig = (rows, columns, columnDefault, spanningCellConfigs) => {\n const columnWidths = (0, calculateMaximumColumnWidths_1.calculateMaximumColumnWidths)(rows, spanningCellConfigs);\n return rows[0].map((_, columnIndex) => {\n return {\n alignment: 'left',\n paddingLeft: 1,\n paddingRight: 1,\n truncate: Number.POSITIVE_INFINITY,\n verticalAlignment: 'top',\n width: columnWidths[columnIndex],\n wrapWord: false,\n ...columnDefault,\n ...columns === null || columns === void 0 ? void 0 : columns[columnIndex],\n };\n });\n};\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n */\nconst makeTableConfig = (rows, config = {}, injectedSpanningCellConfig) => {\n var _a, _b, _c, _d, _e;\n (0, validateConfig_1.validateConfig)('config.json', config);\n (0, validateSpanningCellConfig_1.validateSpanningCellConfig)(rows, (_a = config.spanningCells) !== null && _a !== void 0 ? _a : []);\n const spanningCellConfigs = (_b = injectedSpanningCellConfig !== null && injectedSpanningCellConfig !== void 0 ? injectedSpanningCellConfig : config.spanningCells) !== null && _b !== void 0 ? _b : [];\n const columnsConfig = makeColumnsConfig(rows, config.columns, config.columnDefault, spanningCellConfigs);\n const drawVerticalLine = (_c = config.drawVerticalLine) !== null && _c !== void 0 ? _c : (() => {\n return true;\n });\n const drawHorizontalLine = (_d = config.drawHorizontalLine) !== null && _d !== void 0 ? _d : (() => {\n return true;\n });\n return {\n ...config,\n border: (0, utils_1.makeBorderConfig)(config.border),\n columns: columnsConfig,\n drawHorizontalLine,\n drawVerticalLine,\n singleLine: (_e = config.singleLine) !== null && _e !== void 0 ? _e : false,\n spanningCellManager: (0, spanningCellManager_1.createSpanningCellManager)({\n columnsConfig,\n drawHorizontalLine,\n drawVerticalLine,\n rows,\n spanningCellConfigs,\n }),\n };\n};\nexports.makeTableConfig = makeTableConfig;\n//# sourceMappingURL=makeTableConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapDataUsingRowHeights = exports.padCellVertically = void 0;\nconst utils_1 = require(\"./utils\");\nconst wrapCell_1 = require(\"./wrapCell\");\nconst createEmptyStrings = (length) => {\n return new Array(length).fill('');\n};\nconst padCellVertically = (lines, rowHeight, verticalAlignment) => {\n const availableLines = rowHeight - lines.length;\n if (verticalAlignment === 'top') {\n return [...lines, ...createEmptyStrings(availableLines)];\n }\n if (verticalAlignment === 'bottom') {\n return [...createEmptyStrings(availableLines), ...lines];\n }\n return [\n ...createEmptyStrings(Math.floor(availableLines / 2)),\n ...lines,\n ...createEmptyStrings(Math.ceil(availableLines / 2)),\n ];\n};\nexports.padCellVertically = padCellVertically;\nconst mapDataUsingRowHeights = (unmappedRows, rowHeights, config) => {\n const nColumns = unmappedRows[0].length;\n const mappedRows = unmappedRows.map((unmappedRow, unmappedRowIndex) => {\n const outputRowHeight = rowHeights[unmappedRowIndex];\n const outputRow = Array.from({ length: outputRowHeight }, () => {\n return new Array(nColumns).fill('');\n });\n unmappedRow.forEach((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: unmappedRowIndex });\n if (containingRange) {\n containingRange.extractCellContent(unmappedRowIndex).forEach((cellLine, cellLineIndex) => {\n outputRow[cellLineIndex][cellIndex] = cellLine;\n });\n return;\n }\n const cellLines = (0, wrapCell_1.wrapCell)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);\n const paddedCellLines = (0, exports.padCellVertically)(cellLines, outputRowHeight, config.columns[cellIndex].verticalAlignment);\n paddedCellLines.forEach((cellLine, cellLineIndex) => {\n outputRow[cellLineIndex][cellIndex] = cellLine;\n });\n });\n return outputRow;\n });\n return (0, utils_1.flatten)(mappedRows);\n};\nexports.mapDataUsingRowHeights = mapDataUsingRowHeights;\n//# sourceMappingURL=mapDataUsingRowHeights.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.padTableData = exports.padString = void 0;\nconst padString = (input, paddingLeft, paddingRight) => {\n return ' '.repeat(paddingLeft) + input + ' '.repeat(paddingRight);\n};\nexports.padString = padString;\nconst padTableData = (rows, config) => {\n return rows.map((cells, rowIndex) => {\n return cells.map((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex }, { mapped: true });\n if (containingRange) {\n return cell;\n }\n const { paddingLeft, paddingRight } = config.columns[cellIndex];\n return (0, exports.padString)(cell, paddingLeft, paddingRight);\n });\n });\n};\nexports.padTableData = padTableData;\n//# sourceMappingURL=padTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSpanningCellManager = void 0;\nconst alignSpanningCell_1 = require(\"./alignSpanningCell\");\nconst calculateSpanningCellWidth_1 = require(\"./calculateSpanningCellWidth\");\nconst makeRangeConfig_1 = require(\"./makeRangeConfig\");\nconst utils_1 = require(\"./utils\");\nconst findRangeConfig = (cell, rangeConfigs) => {\n return rangeConfigs.find((rangeCoordinate) => {\n return (0, utils_1.isCellInRange)(cell, rangeCoordinate);\n });\n};\nconst getContainingRange = (rangeConfig, context) => {\n const width = (0, calculateSpanningCellWidth_1.calculateSpanningCellWidth)(rangeConfig, context);\n const wrappedContent = (0, alignSpanningCell_1.wrapRangeContent)(rangeConfig, width, context);\n const alignedContent = (0, alignSpanningCell_1.alignVerticalRangeContent)(rangeConfig, wrappedContent, context);\n const getCellContent = (rowIndex) => {\n const { topLeft } = rangeConfig;\n const { drawHorizontalLine, rowHeights } = context;\n const totalWithinHorizontalBorderHeight = rowIndex - topLeft.row;\n const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, rowIndex).filter((index) => {\n /* istanbul ignore next */\n return !(drawHorizontalLine === null || drawHorizontalLine === void 0 ? void 0 : drawHorizontalLine(index, rowHeights.length));\n }).length;\n const offset = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, rowIndex)) + totalWithinHorizontalBorderHeight - totalHiddenHorizontalBorderHeight;\n return alignedContent.slice(offset, offset + rowHeights[rowIndex]);\n };\n const getBorderContent = (borderIndex) => {\n const { topLeft } = rangeConfig;\n const offset = (0, utils_1.sumArray)(context.rowHeights.slice(topLeft.row, borderIndex)) + (borderIndex - topLeft.row - 1);\n return alignedContent[offset];\n };\n return {\n ...rangeConfig,\n extractBorderContent: getBorderContent,\n extractCellContent: getCellContent,\n height: wrappedContent.length,\n width,\n };\n};\nconst inSameRange = (cell1, cell2, ranges) => {\n const range1 = findRangeConfig(cell1, ranges);\n const range2 = findRangeConfig(cell2, ranges);\n if (range1 && range2) {\n return (0, utils_1.areCellEqual)(range1.topLeft, range2.topLeft);\n }\n return false;\n};\nconst hashRange = (range) => {\n const { row, col } = range.topLeft;\n return `${row}/${col}`;\n};\nconst createSpanningCellManager = (parameters) => {\n const { spanningCellConfigs, columnsConfig } = parameters;\n const ranges = spanningCellConfigs.map((config) => {\n return (0, makeRangeConfig_1.makeRangeConfig)(config, columnsConfig);\n });\n const rangeCache = {};\n let rowHeights = [];\n let rowIndexMapping = [];\n return { getContainingRange: (cell, options) => {\n var _a;\n const originalRow = (options === null || options === void 0 ? void 0 : options.mapped) ? rowIndexMapping[cell.row] : cell.row;\n const range = findRangeConfig({ ...cell,\n row: originalRow }, ranges);\n if (!range) {\n return undefined;\n }\n if (rowHeights.length === 0) {\n return getContainingRange(range, { ...parameters,\n rowHeights });\n }\n const hash = hashRange(range);\n (_a = rangeCache[hash]) !== null && _a !== void 0 ? _a : (rangeCache[hash] = getContainingRange(range, { ...parameters,\n rowHeights }));\n return rangeCache[hash];\n },\n inSameRange: (cell1, cell2) => {\n return inSameRange(cell1, cell2, ranges);\n },\n rowHeights,\n rowIndexMapping,\n setRowHeights: (_rowHeights) => {\n rowHeights = _rowHeights;\n },\n setRowIndexMapping: (mappedRowHeights) => {\n rowIndexMapping = (0, utils_1.flatten)(mappedRowHeights.map((height, index) => {\n return Array.from({ length: height }, () => {\n return index;\n });\n }));\n } };\n};\nexports.createSpanningCellManager = createSpanningCellManager;\n//# sourceMappingURL=spanningCellManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringifyTableData = void 0;\nconst utils_1 = require(\"./utils\");\nconst stringifyTableData = (rows) => {\n return rows.map((cells) => {\n return cells.map((cell) => {\n return (0, utils_1.normalizeString)(String(cell));\n });\n });\n};\nexports.stringifyTableData = stringifyTableData;\n//# sourceMappingURL=stringifyTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.table = void 0;\nconst alignTableData_1 = require(\"./alignTableData\");\nconst calculateOutputColumnWidths_1 = require(\"./calculateOutputColumnWidths\");\nconst calculateRowHeights_1 = require(\"./calculateRowHeights\");\nconst drawTable_1 = require(\"./drawTable\");\nconst injectHeaderConfig_1 = require(\"./injectHeaderConfig\");\nconst makeTableConfig_1 = require(\"./makeTableConfig\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst stringifyTableData_1 = require(\"./stringifyTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst validateTableData_1 = require(\"./validateTableData\");\nconst table = (data, userConfig = {}) => {\n (0, validateTableData_1.validateTableData)(data);\n let rows = (0, stringifyTableData_1.stringifyTableData)(data);\n const [injectedRows, injectedSpanningCellConfig] = (0, injectHeaderConfig_1.injectHeaderConfig)(rows, userConfig);\n const config = (0, makeTableConfig_1.makeTableConfig)(injectedRows, userConfig, injectedSpanningCellConfig);\n rows = (0, truncateTableData_1.truncateTableData)(injectedRows, (0, utils_1.extractTruncates)(config));\n const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);\n config.spanningCellManager.setRowHeights(rowHeights);\n config.spanningCellManager.setRowIndexMapping(rowHeights);\n rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);\n rows = (0, alignTableData_1.alignTableData)(rows, config);\n rows = (0, padTableData_1.padTableData)(rows, config);\n const outputColumnWidths = (0, calculateOutputColumnWidths_1.calculateOutputColumnWidths)(config);\n return (0, drawTable_1.drawTable)(rows, outputColumnWidths, rowHeights, config);\n};\nexports.table = table;\n//# sourceMappingURL=table.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.truncateTableData = exports.truncateString = void 0;\nconst lodash_truncate_1 = __importDefault(require(\"lodash.truncate\"));\nconst truncateString = (input, length) => {\n return (0, lodash_truncate_1.default)(input, { length,\n omission: '…' });\n};\nexports.truncateString = truncateString;\n/**\n * @todo Make it work with ASCII content.\n */\nconst truncateTableData = (rows, truncates) => {\n return rows.map((cells) => {\n return cells.map((cell, cellIndex) => {\n return (0, exports.truncateString)(cell, truncates[cellIndex]);\n });\n });\n};\nexports.truncateTableData = truncateTableData;\n//# sourceMappingURL=truncateTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=api.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCellInRange = exports.areCellEqual = exports.calculateRangeCoordinate = exports.flatten = exports.extractTruncates = exports.sumArray = exports.sequence = exports.distributeUnevenly = exports.countSpaceSequence = exports.groupBySizes = exports.makeBorderConfig = exports.splitAnsi = exports.normalizeString = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst strip_ansi_1 = __importDefault(require(\"strip-ansi\"));\nconst getBorderCharacters_1 = require(\"./getBorderCharacters\");\n/**\n * Converts Windows-style newline to Unix-style\n *\n * @internal\n */\nconst normalizeString = (input) => {\n return input.replace(/\\r\\n/g, '\\n');\n};\nexports.normalizeString = normalizeString;\n/**\n * Splits ansi string by newlines\n *\n * @internal\n */\nconst splitAnsi = (input) => {\n const lengths = (0, strip_ansi_1.default)(input).split('\\n').map(string_width_1.default);\n const result = [];\n let startIndex = 0;\n lengths.forEach((length) => {\n result.push(length === 0 ? '' : (0, slice_ansi_1.default)(input, startIndex, startIndex + length));\n // Plus 1 for the newline character itself\n startIndex += length + 1;\n });\n return result;\n};\nexports.splitAnsi = splitAnsi;\n/**\n * Merges user provided border characters with the default border (\"honeywell\") characters.\n *\n * @internal\n */\nconst makeBorderConfig = (border) => {\n return {\n ...(0, getBorderCharacters_1.getBorderCharacters)('honeywell'),\n ...border,\n };\n};\nexports.makeBorderConfig = makeBorderConfig;\n/**\n * Groups the array into sub-arrays by sizes.\n *\n * @internal\n * @example\n * groupBySizes(['a', 'b', 'c', 'd', 'e'], [2, 1, 2]) = [ ['a', 'b'], ['c'], ['d', 'e'] ]\n */\nconst groupBySizes = (array, sizes) => {\n let startIndex = 0;\n return sizes.map((size) => {\n const group = array.slice(startIndex, startIndex + size);\n startIndex += size;\n return group;\n });\n};\nexports.groupBySizes = groupBySizes;\n/**\n * Counts the number of continuous spaces in a string\n *\n * @internal\n * @example\n * countGroupSpaces('a bc de f') = 3\n */\nconst countSpaceSequence = (input) => {\n var _a, _b;\n return (_b = (_a = input.match(/\\s+/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;\n};\nexports.countSpaceSequence = countSpaceSequence;\n/**\n * Creates the non-increasing number array given sum and length\n * whose the difference between maximum and minimum is not greater than 1\n *\n * @internal\n * @example\n * distributeUnevenly(6, 3) = [2, 2, 2]\n * distributeUnevenly(8, 3) = [3, 3, 2]\n */\nconst distributeUnevenly = (sum, length) => {\n const result = Array.from({ length }).fill(Math.floor(sum / length));\n return result.map((element, index) => {\n return element + (index < sum % length ? 1 : 0);\n });\n};\nexports.distributeUnevenly = distributeUnevenly;\nconst sequence = (start, end) => {\n return Array.from({ length: end - start + 1 }, (_, index) => {\n return index + start;\n });\n};\nexports.sequence = sequence;\nconst sumArray = (array) => {\n return array.reduce((accumulator, element) => {\n return accumulator + element;\n }, 0);\n};\nexports.sumArray = sumArray;\nconst extractTruncates = (config) => {\n return config.columns.map(({ truncate }) => {\n return truncate;\n });\n};\nexports.extractTruncates = extractTruncates;\nconst flatten = (array) => {\n return [].concat(...array);\n};\nexports.flatten = flatten;\nconst calculateRangeCoordinate = (spanningCellConfig) => {\n const { row, col, colSpan = 1, rowSpan = 1 } = spanningCellConfig;\n return { bottomRight: { col: col + colSpan - 1,\n row: row + rowSpan - 1 },\n topLeft: { col,\n row } };\n};\nexports.calculateRangeCoordinate = calculateRangeCoordinate;\nconst areCellEqual = (cell1, cell2) => {\n return cell1.row === cell2.row && cell1.col === cell2.col;\n};\nexports.areCellEqual = areCellEqual;\nconst isCellInRange = (cell, { topLeft, bottomRight }) => {\n return (topLeft.row <= cell.row &&\n cell.row <= bottomRight.row &&\n topLeft.col <= cell.col &&\n cell.col <= bottomRight.col);\n};\nexports.isCellInRange = isCellInRange;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateConfig = void 0;\nconst validators_1 = __importDefault(require(\"./generated/validators\"));\nconst validateConfig = (schemaId, config) => {\n const validate = validators_1.default[schemaId];\n if (!validate(config) && validate.errors) {\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n const errors = validate.errors.map((error) => {\n return {\n message: error.message,\n params: error.params,\n schemaPath: error.schemaPath,\n };\n });\n /* eslint-disable no-console */\n console.log('config', config);\n console.log('errors', errors);\n /* eslint-enable no-console */\n throw new Error('Invalid config.');\n }\n};\nexports.validateConfig = validateConfig;\n//# sourceMappingURL=validateConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSpanningCellConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst inRange = (start, end, value) => {\n return start <= value && value <= end;\n};\nconst validateSpanningCellConfig = (rows, configs) => {\n const [nRow, nCol] = [rows.length, rows[0].length];\n configs.forEach((config, configIndex) => {\n const { colSpan, rowSpan } = config;\n if (colSpan === undefined && rowSpan === undefined) {\n throw new Error(`Expect at least colSpan or rowSpan is provided in config.spanningCells[${configIndex}]`);\n }\n if (colSpan !== undefined && colSpan < 1) {\n throw new Error(`Expect colSpan is not equal zero, instead got: ${colSpan} in config.spanningCells[${configIndex}]`);\n }\n if (rowSpan !== undefined && rowSpan < 1) {\n throw new Error(`Expect rowSpan is not equal zero, instead got: ${rowSpan} in config.spanningCells[${configIndex}]`);\n }\n });\n const rangeCoordinates = configs.map(utils_1.calculateRangeCoordinate);\n rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {\n if (!inRange(0, nCol - 1, topLeft.col) ||\n !inRange(0, nRow - 1, topLeft.row) ||\n !inRange(0, nCol - 1, bottomRight.col) ||\n !inRange(0, nRow - 1, bottomRight.row)) {\n throw new Error(`Some cells in config.spanningCells[${rangeIndex}] are out of the table`);\n }\n });\n const configOccupy = Array.from({ length: nRow }, () => {\n return Array.from({ length: nCol });\n });\n rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {\n (0, utils_1.sequence)(topLeft.row, bottomRight.row).forEach((row) => {\n (0, utils_1.sequence)(topLeft.col, bottomRight.col).forEach((col) => {\n if (configOccupy[row][col] !== undefined) {\n throw new Error(`Spanning cells in config.spanningCells[${configOccupy[row][col]}] and config.spanningCells[${rangeIndex}] are overlap each other`);\n }\n configOccupy[row][col] = rangeIndex;\n });\n });\n });\n};\nexports.validateSpanningCellConfig = validateSpanningCellConfig;\n//# sourceMappingURL=validateSpanningCellConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTableData = void 0;\nconst utils_1 = require(\"./utils\");\nconst validateTableData = (rows) => {\n if (!Array.isArray(rows)) {\n throw new TypeError('Table data must be an array.');\n }\n if (rows.length === 0) {\n throw new Error('Table must define at least one row.');\n }\n if (rows[0].length === 0) {\n throw new Error('Table must define at least one column.');\n }\n const columnNumber = rows[0].length;\n for (const row of rows) {\n if (!Array.isArray(row)) {\n throw new TypeError('Table row data must be an array.');\n }\n if (row.length !== columnNumber) {\n throw new Error('Table must have a consistent number of cells.');\n }\n for (const cell of row) {\n // eslint-disable-next-line no-control-regex\n if (/[\\u0001-\\u0006\\u0008\\u0009\\u000B-\\u001A]/.test((0, utils_1.normalizeString)(String(cell)))) {\n throw new Error('Table data must not contain control characters.');\n }\n }\n }\n};\nexports.validateTableData = validateTableData;\n//# sourceMappingURL=validateTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapCell = void 0;\nconst utils_1 = require(\"./utils\");\nconst wrapString_1 = require(\"./wrapString\");\nconst wrapWord_1 = require(\"./wrapWord\");\n/**\n * Wrap a single cell value into a list of lines\n *\n * Always wraps on newlines, for the remainder uses either word or string wrapping\n * depending on user configuration.\n *\n */\nconst wrapCell = (cellValue, cellWidth, useWrapWord) => {\n // First split on literal newlines\n const cellLines = (0, utils_1.splitAnsi)(cellValue);\n // Then iterate over the list and word-wrap every remaining line if necessary.\n for (let lineNr = 0; lineNr < cellLines.length;) {\n let lineChunks;\n if (useWrapWord) {\n lineChunks = (0, wrapWord_1.wrapWord)(cellLines[lineNr], cellWidth);\n }\n else {\n lineChunks = (0, wrapString_1.wrapString)(cellLines[lineNr], cellWidth);\n }\n // Replace our original array element with whatever the wrapping returned\n cellLines.splice(lineNr, 1, ...lineChunks);\n lineNr += lineChunks.length;\n }\n return cellLines;\n};\nexports.wrapCell = wrapCell;\n//# sourceMappingURL=wrapCell.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapString = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst string_width_1 = __importDefault(require(\"string-width\"));\n/**\n * Creates an array of strings split into groups the length of size.\n * This function works with strings that contain ASCII characters.\n *\n * wrapText is different from would-be \"chunk\" implementation\n * in that whitespace characters that occur on a chunk size limit are trimmed.\n *\n */\nconst wrapString = (subject, size) => {\n let subjectSlice = subject;\n const chunks = [];\n do {\n chunks.push((0, slice_ansi_1.default)(subjectSlice, 0, size));\n subjectSlice = (0, slice_ansi_1.default)(subjectSlice, size).trim();\n } while ((0, string_width_1.default)(subjectSlice));\n return chunks;\n};\nexports.wrapString = wrapString;\n//# sourceMappingURL=wrapString.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapWord = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst strip_ansi_1 = __importDefault(require(\"strip-ansi\"));\nconst calculateStringLengths = (input, size) => {\n let subject = (0, strip_ansi_1.default)(input);\n const chunks = [];\n // https://regex101.com/r/gY5kZ1/1\n const re = new RegExp('(^.{1,' + String(Math.max(size, 1)) + '}(\\\\s+|$))|(^.{1,' + String(Math.max(size - 1, 1)) + '}(\\\\\\\\|/|_|\\\\.|,|;|-))');\n do {\n let chunk;\n const match = re.exec(subject);\n if (match) {\n chunk = match[0];\n subject = subject.slice(chunk.length);\n const trimmedLength = chunk.trim().length;\n const offset = chunk.length - trimmedLength;\n chunks.push([trimmedLength, offset]);\n }\n else {\n chunk = subject.slice(0, size);\n subject = subject.slice(size);\n chunks.push([chunk.length, 0]);\n }\n } while (subject.length);\n return chunks;\n};\nconst wrapWord = (input, size) => {\n const result = [];\n let startIndex = 0;\n calculateStringLengths(input, size).forEach(([length, offset]) => {\n result.push((0, slice_ansi_1.default)(input, startIndex, startIndex + length));\n startIndex += length + offset;\n });\n return result;\n};\nexports.wrapWord = wrapWord;\n//# sourceMappingURL=wrapWord.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","const constants = { // just for envs without fs\n S_IFMT: 61440,\n S_IFDIR: 16384,\n S_IFCHR: 8192,\n S_IFBLK: 24576,\n S_IFIFO: 4096,\n S_IFLNK: 40960\n}\n\ntry {\n module.exports = require('fs').constants || constants\n} catch {\n module.exports = constants\n}\n","const { Writable, Readable, getStreamError } = require('streamx')\nconst FIFO = require('fast-fifo')\nconst b4a = require('b4a')\nconst headers = require('./headers')\n\nconst EMPTY = b4a.alloc(0)\n\nclass BufferList {\n constructor () {\n this.buffered = 0\n this.shifted = 0\n this.queue = new FIFO()\n\n this._offset = 0\n }\n\n push (buffer) {\n this.buffered += buffer.byteLength\n this.queue.push(buffer)\n }\n\n shiftFirst (size) {\n return this._buffered === 0 ? null : this._next(size)\n }\n\n shift (size) {\n if (size > this.buffered) return null\n if (size === 0) return EMPTY\n\n let chunk = this._next(size)\n\n if (size === chunk.byteLength) return chunk // likely case\n\n const chunks = [chunk]\n\n while ((size -= chunk.byteLength) > 0) {\n chunk = this._next(size)\n chunks.push(chunk)\n }\n\n return b4a.concat(chunks)\n }\n\n _next (size) {\n const buf = this.queue.peek()\n const rem = buf.byteLength - this._offset\n\n if (size >= rem) {\n const sub = this._offset ? buf.subarray(this._offset, buf.byteLength) : buf\n this.queue.shift()\n this._offset = 0\n this.buffered -= rem\n this.shifted += rem\n return sub\n }\n\n this.buffered -= size\n this.shifted += size\n\n return buf.subarray(this._offset, (this._offset += size))\n }\n}\n\nclass Source extends Readable {\n constructor (self, header, offset) {\n super()\n\n this.header = header\n this.offset = offset\n\n this._parent = self\n }\n\n _read (cb) {\n if (this.header.size === 0) {\n this.push(null)\n }\n if (this._parent._stream === this) {\n this._parent._update()\n }\n cb(null)\n }\n\n _predestroy () {\n this._parent.destroy(getStreamError(this))\n }\n\n _detach () {\n if (this._parent._stream === this) {\n this._parent._stream = null\n this._parent._missing = overflow(this.header.size)\n this._parent._update()\n }\n }\n\n _destroy (cb) {\n this._detach()\n cb(null)\n }\n}\n\nclass Extract extends Writable {\n constructor (opts) {\n super(opts)\n\n if (!opts) opts = {}\n\n this._buffer = new BufferList()\n this._offset = 0\n this._header = null\n this._stream = null\n this._missing = 0\n this._longHeader = false\n this._callback = noop\n this._locked = false\n this._finished = false\n this._pax = null\n this._paxGlobal = null\n this._gnuLongPath = null\n this._gnuLongLinkPath = null\n this._filenameEncoding = opts.filenameEncoding || 'utf-8'\n this._allowUnknownFormat = !!opts.allowUnknownFormat\n this._unlockBound = this._unlock.bind(this)\n }\n\n _unlock (err) {\n this._locked = false\n\n if (err) {\n this.destroy(err)\n this._continueWrite(err)\n return\n }\n\n this._update()\n }\n\n _consumeHeader () {\n if (this._locked) return false\n\n this._offset = this._buffer.shifted\n\n try {\n this._header = headers.decode(this._buffer.shift(512), this._filenameEncoding, this._allowUnknownFormat)\n } catch (err) {\n this._continueWrite(err)\n return false\n }\n\n if (!this._header) return true\n\n switch (this._header.type) {\n case 'gnu-long-path':\n case 'gnu-long-link-path':\n case 'pax-global-header':\n case 'pax-header':\n this._longHeader = true\n this._missing = this._header.size\n return true\n }\n\n this._locked = true\n this._applyLongHeaders()\n\n if (this._header.size === 0 || this._header.type === 'directory') {\n this.emit('entry', this._header, this._createStream(), this._unlockBound)\n return true\n }\n\n this._stream = this._createStream()\n this._missing = this._header.size\n\n this.emit('entry', this._header, this._stream, this._unlockBound)\n return true\n }\n\n _applyLongHeaders () {\n if (this._gnuLongPath) {\n this._header.name = this._gnuLongPath\n this._gnuLongPath = null\n }\n\n if (this._gnuLongLinkPath) {\n this._header.linkname = this._gnuLongLinkPath\n this._gnuLongLinkPath = null\n }\n\n if (this._pax) {\n if (this._pax.path) this._header.name = this._pax.path\n if (this._pax.linkpath) this._header.linkname = this._pax.linkpath\n if (this._pax.size) this._header.size = parseInt(this._pax.size, 10)\n this._header.pax = this._pax\n this._pax = null\n }\n }\n\n _decodeLongHeader (buf) {\n switch (this._header.type) {\n case 'gnu-long-path':\n this._gnuLongPath = headers.decodeLongPath(buf, this._filenameEncoding)\n break\n case 'gnu-long-link-path':\n this._gnuLongLinkPath = headers.decodeLongPath(buf, this._filenameEncoding)\n break\n case 'pax-global-header':\n this._paxGlobal = headers.decodePax(buf)\n break\n case 'pax-header':\n this._pax = this._paxGlobal === null\n ? headers.decodePax(buf)\n : Object.assign({}, this._paxGlobal, headers.decodePax(buf))\n break\n }\n }\n\n _consumeLongHeader () {\n this._longHeader = false\n this._missing = overflow(this._header.size)\n\n const buf = this._buffer.shift(this._header.size)\n\n try {\n this._decodeLongHeader(buf)\n } catch (err) {\n this._continueWrite(err)\n return false\n }\n\n return true\n }\n\n _consumeStream () {\n const buf = this._buffer.shiftFirst(this._missing)\n if (buf === null) return false\n\n this._missing -= buf.byteLength\n const drained = this._stream.push(buf)\n\n if (this._missing === 0) {\n this._stream.push(null)\n if (drained) this._stream._detach()\n return drained && this._locked === false\n }\n\n return drained\n }\n\n _createStream () {\n return new Source(this, this._header, this._offset)\n }\n\n _update () {\n while (this._buffer.buffered > 0 && !this.destroying) {\n if (this._missing > 0) {\n if (this._stream !== null) {\n if (this._consumeStream() === false) return\n continue\n }\n\n if (this._longHeader === true) {\n if (this._missing > this._buffer.buffered) break\n if (this._consumeLongHeader() === false) return false\n continue\n }\n\n const ignore = this._buffer.shiftFirst(this._missing)\n if (ignore !== null) this._missing -= ignore.byteLength\n continue\n }\n\n if (this._buffer.buffered < 512) break\n if (this._stream !== null || this._consumeHeader() === false) return\n }\n\n this._continueWrite(null)\n }\n\n _continueWrite (err) {\n const cb = this._callback\n this._callback = noop\n cb(err)\n }\n\n _write (data, cb) {\n this._callback = cb\n this._buffer.push(data)\n this._update()\n }\n\n _final (cb) {\n this._finished = this._missing === 0 && this._buffer.buffered === 0\n cb(this._finished ? null : new Error('Unexpected end of data'))\n }\n\n _predestroy () {\n this._continueWrite(null)\n }\n\n _destroy (cb) {\n if (this._stream) this._stream.destroy(getStreamError(this))\n cb(null)\n }\n\n [Symbol.asyncIterator] () {\n let error = null\n\n let promiseResolve = null\n let promiseReject = null\n\n let entryStream = null\n let entryCallback = null\n\n const extract = this\n\n this.on('entry', onentry)\n this.on('error', (err) => { error = err })\n this.on('close', onclose)\n\n return {\n [Symbol.asyncIterator] () {\n return this\n },\n next () {\n return new Promise(onnext)\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function consumeCallback (err) {\n if (!entryCallback) return\n const cb = entryCallback\n entryCallback = null\n cb(err)\n }\n\n function onnext (resolve, reject) {\n if (error) {\n return reject(error)\n }\n\n if (entryStream) {\n resolve({ value: entryStream, done: false })\n entryStream = null\n return\n }\n\n promiseResolve = resolve\n promiseReject = reject\n\n consumeCallback(null)\n\n if (extract._finished && promiseResolve) {\n promiseResolve({ value: undefined, done: true })\n promiseResolve = promiseReject = null\n }\n }\n\n function onentry (header, stream, callback) {\n entryCallback = callback\n stream.on('error', noop) // no way around this due to tick sillyness\n\n if (promiseResolve) {\n promiseResolve({ value: stream, done: false })\n promiseResolve = promiseReject = null\n } else {\n entryStream = stream\n }\n }\n\n function onclose () {\n consumeCallback(error)\n if (!promiseResolve) return\n if (error) promiseReject(error)\n else promiseResolve({ value: undefined, done: true })\n promiseResolve = promiseReject = null\n }\n\n function destroy (err) {\n extract.destroy(err)\n consumeCallback(err)\n return new Promise((resolve, reject) => {\n if (extract.destroyed) return resolve({ value: undefined, done: true })\n extract.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nmodule.exports = function extract (opts) {\n return new Extract(opts)\n}\n\nfunction noop () {}\n\nfunction overflow (size) {\n size &= 511\n return size && 512 - size\n}\n","const b4a = require('b4a')\n\nconst ZEROS = '0000000000000000000'\nconst SEVENS = '7777777777777777777'\nconst ZERO_OFFSET = '0'.charCodeAt(0)\nconst USTAR_MAGIC = b4a.from([0x75, 0x73, 0x74, 0x61, 0x72, 0x00]) // ustar\\x00\nconst USTAR_VER = b4a.from([ZERO_OFFSET, ZERO_OFFSET])\nconst GNU_MAGIC = b4a.from([0x75, 0x73, 0x74, 0x61, 0x72, 0x20]) // ustar\\x20\nconst GNU_VER = b4a.from([0x20, 0x00])\nconst MASK = 0o7777\nconst MAGIC_OFFSET = 257\nconst VERSION_OFFSET = 263\n\nexports.decodeLongPath = function decodeLongPath (buf, encoding) {\n return decodeStr(buf, 0, buf.length, encoding)\n}\n\nexports.encodePax = function encodePax (opts) { // TODO: encode more stuff in pax\n let result = ''\n if (opts.name) result += addLength(' path=' + opts.name + '\\n')\n if (opts.linkname) result += addLength(' linkpath=' + opts.linkname + '\\n')\n const pax = opts.pax\n if (pax) {\n for (const key in pax) {\n result += addLength(' ' + key + '=' + pax[key] + '\\n')\n }\n }\n return b4a.from(result)\n}\n\nexports.decodePax = function decodePax (buf) {\n const result = {}\n\n while (buf.length) {\n let i = 0\n while (i < buf.length && buf[i] !== 32) i++\n const len = parseInt(b4a.toString(buf.subarray(0, i)), 10)\n if (!len) return result\n\n const b = b4a.toString(buf.subarray(i + 1, len - 1))\n const keyIndex = b.indexOf('=')\n if (keyIndex === -1) return result\n result[b.slice(0, keyIndex)] = b.slice(keyIndex + 1)\n\n buf = buf.subarray(len)\n }\n\n return result\n}\n\nexports.encode = function encode (opts) {\n const buf = b4a.alloc(512)\n let name = opts.name\n let prefix = ''\n\n if (opts.typeflag === 5 && name[name.length - 1] !== '/') name += '/'\n if (b4a.byteLength(name) !== name.length) return null // utf-8\n\n while (b4a.byteLength(name) > 100) {\n const i = name.indexOf('/')\n if (i === -1) return null\n prefix += prefix ? '/' + name.slice(0, i) : name.slice(0, i)\n name = name.slice(i + 1)\n }\n\n if (b4a.byteLength(name) > 100 || b4a.byteLength(prefix) > 155) return null\n if (opts.linkname && b4a.byteLength(opts.linkname) > 100) return null\n\n b4a.write(buf, name)\n b4a.write(buf, encodeOct(opts.mode & MASK, 6), 100)\n b4a.write(buf, encodeOct(opts.uid, 6), 108)\n b4a.write(buf, encodeOct(opts.gid, 6), 116)\n encodeSize(opts.size, buf, 124)\n b4a.write(buf, encodeOct((opts.mtime.getTime() / 1000) | 0, 11), 136)\n\n buf[156] = ZERO_OFFSET + toTypeflag(opts.type)\n\n if (opts.linkname) b4a.write(buf, opts.linkname, 157)\n\n b4a.copy(USTAR_MAGIC, buf, MAGIC_OFFSET)\n b4a.copy(USTAR_VER, buf, VERSION_OFFSET)\n if (opts.uname) b4a.write(buf, opts.uname, 265)\n if (opts.gname) b4a.write(buf, opts.gname, 297)\n b4a.write(buf, encodeOct(opts.devmajor || 0, 6), 329)\n b4a.write(buf, encodeOct(opts.devminor || 0, 6), 337)\n\n if (prefix) b4a.write(buf, prefix, 345)\n\n b4a.write(buf, encodeOct(cksum(buf), 6), 148)\n\n return buf\n}\n\nexports.decode = function decode (buf, filenameEncoding, allowUnknownFormat) {\n let typeflag = buf[156] === 0 ? 0 : buf[156] - ZERO_OFFSET\n\n let name = decodeStr(buf, 0, 100, filenameEncoding)\n const mode = decodeOct(buf, 100, 8)\n const uid = decodeOct(buf, 108, 8)\n const gid = decodeOct(buf, 116, 8)\n const size = decodeOct(buf, 124, 12)\n const mtime = decodeOct(buf, 136, 12)\n const type = toType(typeflag)\n const linkname = buf[157] === 0 ? null : decodeStr(buf, 157, 100, filenameEncoding)\n const uname = decodeStr(buf, 265, 32)\n const gname = decodeStr(buf, 297, 32)\n const devmajor = decodeOct(buf, 329, 8)\n const devminor = decodeOct(buf, 337, 8)\n\n const c = cksum(buf)\n\n // checksum is still initial value if header was null.\n if (c === 8 * 32) return null\n\n // valid checksum\n if (c !== decodeOct(buf, 148, 8)) throw new Error('Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?')\n\n if (isUSTAR(buf)) {\n // ustar (posix) format.\n // prepend prefix, if present.\n if (buf[345]) name = decodeStr(buf, 345, 155, filenameEncoding) + '/' + name\n } else if (isGNU(buf)) {\n // 'gnu'/'oldgnu' format. Similar to ustar, but has support for incremental and\n // multi-volume tarballs.\n } else {\n if (!allowUnknownFormat) {\n throw new Error('Invalid tar header: unknown format.')\n }\n }\n\n // to support old tar versions that use trailing / to indicate dirs\n if (typeflag === 0 && name && name[name.length - 1] === '/') typeflag = 5\n\n return {\n name,\n mode,\n uid,\n gid,\n size,\n mtime: new Date(1000 * mtime),\n type,\n linkname,\n uname,\n gname,\n devmajor,\n devminor,\n pax: null\n }\n}\n\nfunction isUSTAR (buf) {\n return b4a.equals(USTAR_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6))\n}\n\nfunction isGNU (buf) {\n return b4a.equals(GNU_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6)) &&\n b4a.equals(GNU_VER, buf.subarray(VERSION_OFFSET, VERSION_OFFSET + 2))\n}\n\nfunction clamp (index, len, defaultValue) {\n if (typeof index !== 'number') return defaultValue\n index = ~~index // Coerce to integer.\n if (index >= len) return len\n if (index >= 0) return index\n index += len\n if (index >= 0) return index\n return 0\n}\n\nfunction toType (flag) {\n switch (flag) {\n case 0:\n return 'file'\n case 1:\n return 'link'\n case 2:\n return 'symlink'\n case 3:\n return 'character-device'\n case 4:\n return 'block-device'\n case 5:\n return 'directory'\n case 6:\n return 'fifo'\n case 7:\n return 'contiguous-file'\n case 72:\n return 'pax-header'\n case 55:\n return 'pax-global-header'\n case 27:\n return 'gnu-long-link-path'\n case 28:\n case 30:\n return 'gnu-long-path'\n }\n\n return null\n}\n\nfunction toTypeflag (flag) {\n switch (flag) {\n case 'file':\n return 0\n case 'link':\n return 1\n case 'symlink':\n return 2\n case 'character-device':\n return 3\n case 'block-device':\n return 4\n case 'directory':\n return 5\n case 'fifo':\n return 6\n case 'contiguous-file':\n return 7\n case 'pax-header':\n return 72\n }\n\n return 0\n}\n\nfunction indexOf (block, num, offset, end) {\n for (; offset < end; offset++) {\n if (block[offset] === num) return offset\n }\n return end\n}\n\nfunction cksum (block) {\n let sum = 8 * 32\n for (let i = 0; i < 148; i++) sum += block[i]\n for (let j = 156; j < 512; j++) sum += block[j]\n return sum\n}\n\nfunction encodeOct (val, n) {\n val = val.toString(8)\n if (val.length > n) return SEVENS.slice(0, n) + ' '\n return ZEROS.slice(0, n - val.length) + val + ' '\n}\n\nfunction encodeSizeBin (num, buf, off) {\n buf[off] = 0x80\n for (let i = 11; i > 0; i--) {\n buf[off + i] = num & 0xff\n num = Math.floor(num / 0x100)\n }\n}\n\nfunction encodeSize (num, buf, off) {\n if (num.toString(8).length > 11) {\n encodeSizeBin(num, buf, off)\n } else {\n b4a.write(buf, encodeOct(num, 11), off)\n }\n}\n\n/* Copied from the node-tar repo and modified to meet\n * tar-stream coding standard.\n *\n * Source: https://github.com/npm/node-tar/blob/51b6627a1f357d2eb433e7378e5f05e83b7aa6cd/lib/header.js#L349\n */\nfunction parse256 (buf) {\n // first byte MUST be either 80 or FF\n // 80 for positive, FF for 2's comp\n let positive\n if (buf[0] === 0x80) positive = true\n else if (buf[0] === 0xFF) positive = false\n else return null\n\n // build up a base-256 tuple from the least sig to the highest\n const tuple = []\n let i\n for (i = buf.length - 1; i > 0; i--) {\n const byte = buf[i]\n if (positive) tuple.push(byte)\n else tuple.push(0xFF - byte)\n }\n\n let sum = 0\n const l = tuple.length\n for (i = 0; i < l; i++) {\n sum += tuple[i] * Math.pow(256, i)\n }\n\n return positive ? sum : -1 * sum\n}\n\nfunction decodeOct (val, offset, length) {\n val = val.subarray(offset, offset + length)\n offset = 0\n\n // If prefixed with 0x80 then parse as a base-256 integer\n if (val[offset] & 0x80) {\n return parse256(val)\n } else {\n // Older versions of tar can prefix with spaces\n while (offset < val.length && val[offset] === 32) offset++\n const end = clamp(indexOf(val, 32, offset, val.length), val.length, val.length)\n while (offset < end && val[offset] === 0) offset++\n if (end === offset) return 0\n return parseInt(b4a.toString(val.subarray(offset, end)), 8)\n }\n}\n\nfunction decodeStr (val, offset, length, encoding) {\n return b4a.toString(val.subarray(offset, indexOf(val, 0, offset, offset + length)), encoding)\n}\n\nfunction addLength (str) {\n const len = b4a.byteLength(str)\n let digits = Math.floor(Math.log(len) / Math.log(10)) + 1\n if (len + digits >= Math.pow(10, digits)) digits++\n\n return (len + digits) + str\n}\n","exports.extract = require('./extract')\nexports.pack = require('./pack')\n","const { Readable, Writable, getStreamError } = require('streamx')\nconst b4a = require('b4a')\n\nconst constants = require('./constants')\nconst headers = require('./headers')\n\nconst DMODE = 0o755\nconst FMODE = 0o644\n\nconst END_OF_TAR = b4a.alloc(1024)\n\nclass Sink extends Writable {\n constructor (pack, header, callback) {\n super({ mapWritable, eagerOpen: true })\n\n this.written = 0\n this.header = header\n\n this._callback = callback\n this._linkname = null\n this._isLinkname = header.type === 'symlink' && !header.linkname\n this._isVoid = header.type !== 'file' && header.type !== 'contiguous-file'\n this._finished = false\n this._pack = pack\n this._openCallback = null\n\n if (this._pack._stream === null) this._pack._stream = this\n else this._pack._pending.push(this)\n }\n\n _open (cb) {\n this._openCallback = cb\n if (this._pack._stream === this) this._continueOpen()\n }\n\n _continuePack (err) {\n if (this._callback === null) return\n\n const callback = this._callback\n this._callback = null\n\n callback(err)\n }\n\n _continueOpen () {\n if (this._pack._stream === null) this._pack._stream = this\n\n const cb = this._openCallback\n this._openCallback = null\n if (cb === null) return\n\n if (this._pack.destroying) return cb(new Error('pack stream destroyed'))\n if (this._pack._finalized) return cb(new Error('pack stream is already finalized'))\n\n this._pack._stream = this\n\n if (!this._isLinkname) {\n this._pack._encode(this.header)\n }\n\n if (this._isVoid) {\n this._finish()\n this._continuePack(null)\n }\n\n cb(null)\n }\n\n _write (data, cb) {\n if (this._isLinkname) {\n this._linkname = this._linkname ? b4a.concat([this._linkname, data]) : data\n return cb(null)\n }\n\n if (this._isVoid) {\n if (data.byteLength > 0) {\n return cb(new Error('No body allowed for this entry'))\n }\n return cb()\n }\n\n this.written += data.byteLength\n if (this._pack.push(data)) return cb()\n this._pack._drain = cb\n }\n\n _finish () {\n if (this._finished) return\n this._finished = true\n\n if (this._isLinkname) {\n this.header.linkname = this._linkname ? b4a.toString(this._linkname, 'utf-8') : ''\n this._pack._encode(this.header)\n }\n\n overflow(this._pack, this.header.size)\n\n this._pack._done(this)\n }\n\n _final (cb) {\n if (this.written !== this.header.size) { // corrupting tar\n return cb(new Error('Size mismatch'))\n }\n\n this._finish()\n cb(null)\n }\n\n _getError () {\n return getStreamError(this) || new Error('tar entry destroyed')\n }\n\n _predestroy () {\n this._pack.destroy(this._getError())\n }\n\n _destroy (cb) {\n this._pack._done(this)\n\n this._continuePack(this._finished ? null : this._getError())\n\n cb()\n }\n}\n\nclass Pack extends Readable {\n constructor (opts) {\n super(opts)\n this._drain = noop\n this._finalized = false\n this._finalizing = false\n this._pending = []\n this._stream = null\n }\n\n entry (header, buffer, callback) {\n if (this._finalized || this.destroying) throw new Error('already finalized or destroyed')\n\n if (typeof buffer === 'function') {\n callback = buffer\n buffer = null\n }\n\n if (!callback) callback = noop\n\n if (!header.size || header.type === 'symlink') header.size = 0\n if (!header.type) header.type = modeToType(header.mode)\n if (!header.mode) header.mode = header.type === 'directory' ? DMODE : FMODE\n if (!header.uid) header.uid = 0\n if (!header.gid) header.gid = 0\n if (!header.mtime) header.mtime = new Date()\n\n if (typeof buffer === 'string') buffer = b4a.from(buffer)\n\n const sink = new Sink(this, header, callback)\n\n if (b4a.isBuffer(buffer)) {\n header.size = buffer.byteLength\n sink.write(buffer)\n sink.end()\n return sink\n }\n\n if (sink._isVoid) {\n return sink\n }\n\n return sink\n }\n\n finalize () {\n if (this._stream || this._pending.length > 0) {\n this._finalizing = true\n return\n }\n\n if (this._finalized) return\n this._finalized = true\n\n this.push(END_OF_TAR)\n this.push(null)\n }\n\n _done (stream) {\n if (stream !== this._stream) return\n\n this._stream = null\n\n if (this._finalizing) this.finalize()\n if (this._pending.length) this._pending.shift()._continueOpen()\n }\n\n _encode (header) {\n if (!header.pax) {\n const buf = headers.encode(header)\n if (buf) {\n this.push(buf)\n return\n }\n }\n this._encodePax(header)\n }\n\n _encodePax (header) {\n const paxHeader = headers.encodePax({\n name: header.name,\n linkname: header.linkname,\n pax: header.pax\n })\n\n const newHeader = {\n name: 'PaxHeader',\n mode: header.mode,\n uid: header.uid,\n gid: header.gid,\n size: paxHeader.byteLength,\n mtime: header.mtime,\n type: 'pax-header',\n linkname: header.linkname && 'PaxHeader',\n uname: header.uname,\n gname: header.gname,\n devmajor: header.devmajor,\n devminor: header.devminor\n }\n\n this.push(headers.encode(newHeader))\n this.push(paxHeader)\n overflow(this, paxHeader.byteLength)\n\n newHeader.size = header.size\n newHeader.type = header.type\n this.push(headers.encode(newHeader))\n }\n\n _doDrain () {\n const drain = this._drain\n this._drain = noop\n drain()\n }\n\n _predestroy () {\n const err = getStreamError(this)\n\n if (this._stream) this._stream.destroy(err)\n\n while (this._pending.length) {\n const stream = this._pending.shift()\n stream.destroy(err)\n stream._continueOpen()\n }\n\n this._doDrain()\n }\n\n _read (cb) {\n this._doDrain()\n cb()\n }\n}\n\nmodule.exports = function pack (opts) {\n return new Pack(opts)\n}\n\nfunction modeToType (mode) {\n switch (mode & constants.S_IFMT) {\n case constants.S_IFBLK: return 'block-device'\n case constants.S_IFCHR: return 'character-device'\n case constants.S_IFDIR: return 'directory'\n case constants.S_IFIFO: return 'fifo'\n case constants.S_IFLNK: return 'symlink'\n }\n\n return 'file'\n}\n\nfunction noop () {}\n\nfunction overflow (self, size) {\n size &= 511\n if (size) self.push(END_OF_TAR.subarray(0, 512 - size))\n}\n\nfunction mapWritable (buf) {\n return b4a.isBuffer(buf) ? buf : b4a.from(buf)\n}\n","const PassThroughDecoder = require('./lib/pass-through-decoder')\nconst UTF8Decoder = require('./lib/utf8-decoder')\n\nmodule.exports = class TextDecoder {\n constructor (encoding = 'utf8') {\n this.encoding = normalizeEncoding(encoding)\n\n switch (this.encoding) {\n case 'utf8':\n this.decoder = new UTF8Decoder()\n break\n case 'utf16le':\n case 'base64':\n throw new Error('Unsupported encoding: ' + this.encoding)\n default:\n this.decoder = new PassThroughDecoder(this.encoding)\n }\n }\n\n get remaining () {\n return this.decoder.remaining\n }\n\n push (data) {\n if (typeof data === 'string') return data\n return this.decoder.decode(data)\n }\n\n // For Node.js compatibility\n write (data) {\n return this.push(data)\n }\n\n end (data) {\n let result = ''\n if (data) result = this.push(data)\n result += this.decoder.flush()\n return result\n }\n}\n\nfunction normalizeEncoding (encoding) {\n encoding = encoding.toLowerCase()\n\n switch (encoding) {\n case 'utf8':\n case 'utf-8':\n return 'utf8'\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le'\n case 'latin1':\n case 'binary':\n return 'latin1'\n case 'base64':\n case 'ascii':\n case 'hex':\n return encoding\n default:\n throw new Error('Unknown encoding: ' + encoding)\n }\n};\n","const b4a = require('b4a')\n\nmodule.exports = class PassThroughDecoder {\n constructor (encoding) {\n this.encoding = encoding\n }\n\n get remaining () {\n return 0\n }\n\n decode (tail) {\n return b4a.toString(tail, this.encoding)\n }\n\n flush () {\n return ''\n }\n}\n","const b4a = require('b4a')\n\n/**\n * https://encoding.spec.whatwg.org/#utf-8-decoder\n */\nmodule.exports = class UTF8Decoder {\n constructor () {\n this.codePoint = 0\n this.bytesSeen = 0\n this.bytesNeeded = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n }\n\n get remaining () {\n return this.bytesSeen\n }\n\n decode (data) {\n // If we have a fast path, just sniff if the last part is a boundary\n if (this.bytesNeeded === 0) {\n let isBoundary = true\n\n for (let i = Math.max(0, data.byteLength - 4), n = data.byteLength; i < n && isBoundary; i++) {\n isBoundary = data[i] <= 0x7f\n }\n\n if (isBoundary) return b4a.toString(data, 'utf8')\n }\n\n let result = ''\n\n for (let i = 0, n = data.byteLength; i < n; i++) {\n const byte = data[i]\n\n if (this.bytesNeeded === 0) {\n if (byte <= 0x7f) {\n result += String.fromCharCode(byte)\n } else {\n this.bytesSeen = 1\n\n if (byte >= 0xc2 && byte <= 0xdf) {\n this.bytesNeeded = 2\n this.codePoint = byte & 0x1f\n } else if (byte >= 0xe0 && byte <= 0xef) {\n if (byte === 0xe0) this.lowerBoundary = 0xa0\n else if (byte === 0xed) this.upperBoundary = 0x9f\n this.bytesNeeded = 3\n this.codePoint = byte & 0xf\n } else if (byte >= 0xf0 && byte <= 0xf4) {\n if (byte === 0xf0) this.lowerBoundary = 0x90\n if (byte === 0xf4) this.upperBoundary = 0x8f\n this.bytesNeeded = 4\n this.codePoint = byte & 0x7\n } else {\n result += '\\ufffd'\n }\n }\n\n continue\n }\n\n if (byte < this.lowerBoundary || byte > this.upperBoundary) {\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n result += '\\ufffd'\n\n continue\n }\n\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n this.codePoint = (this.codePoint << 6) | (byte & 0x3f)\n this.bytesSeen++\n\n if (this.bytesSeen !== this.bytesNeeded) continue\n\n result += String.fromCodePoint(this.codePoint)\n\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n }\n\n return result\n }\n\n flush () {\n const result = this.bytesNeeded > 0 ? '\\ufffd' : ''\n\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n return result\n }\n}\n","/*!\n * to-regex-range \n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n if (isNumber(min) === false) {\n throw new TypeError('toRegexRange: expected the first argument to be a number');\n }\n\n if (max === void 0 || min === max) {\n return String(min);\n }\n\n if (isNumber(max) === false) {\n throw new TypeError('toRegexRange: expected the second argument to be a number.');\n }\n\n let opts = { relaxZeros: true, ...options };\n if (typeof opts.strictZeros === 'boolean') {\n opts.relaxZeros = opts.strictZeros === false;\n }\n\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n\n if (Math.abs(a - b) === 1) {\n let result = min + '|' + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n state.result = `(?:${state.result})`;\n }\n\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n\n let stop = countNines(min, nines);\n let stops = new Set([max]);\n\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n\n stop = countZeros(max + 1, zeros) - 1;\n\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n\n stops = [...stops];\n stops.sort(compare);\n return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = '';\n let count = 0;\n\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n\n if (startDigit === stopDigit) {\n pattern += startDigit;\n\n } else if (startDigit !== '0' || stopDigit !== '9') {\n pattern += toCharacterClass(startDigit, stopDigit, options);\n\n } else {\n count++;\n }\n }\n\n if (count) {\n pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n }\n\n return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n\n for (let i = 0; i < ranges.length; i++) {\n let max = ranges[i];\n let obj = rangeToPattern(String(start), String(max), options);\n let zeros = '';\n\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max + 1;\n continue;\n }\n\n if (tok.isPadded) {\n zeros = padZeros(max, tok, options);\n }\n\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max + 1;\n prev = obj;\n }\n\n return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n let result = [];\n\n for (let ele of arr) {\n let { string } = ele;\n\n // only push if _both_ are negative...\n if (!intersection && !contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n\n // or _both_ are positive\n if (intersection && contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n }\n return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n}\n\nfunction compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n let [start = 0, stop = ''] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? ',' + stop : '')}}`;\n }\n return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n if (!tok.isPadded) {\n return value;\n }\n\n let diff = Math.abs(tok.maxLen - String(value).length);\n let relax = options.relaxZeros !== false;\n\n switch (diff) {\n case 0:\n return '';\n case 1:\n return relax ? '0?' : '0';\n case 2:\n return relax ? '0{0,2}' : '00';\n default: {\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\n }\n }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __esDecorate;\r\nvar __runInitializers;\r\nvar __propKey;\r\nvar __setFunctionName;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\nvar __addDisposableResource;\r\nvar __disposeResources;\r\nvar __rewriteRelativeImportExtension;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n };\r\n\r\n __runInitializers = function (thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n };\r\n\r\n __propKey = function (x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n };\r\n\r\n __setFunctionName = function (f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n var ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n __addDisposableResource = function (env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n };\r\n\r\n var _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n };\r\n\r\n __disposeResources = function (env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n };\r\n\r\n __rewriteRelativeImportExtension = function (path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__esDecorate\", __esDecorate);\r\n exporter(\"__runInitializers\", __runInitializers);\r\n exporter(\"__propKey\", __propKey);\r\n exporter(\"__setFunctionName\", __setFunctionName);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n exporter(\"__addDisposableResource\", __addDisposableResource);\r\n exporter(\"__disposeResources\", __disposeResources);\r\n exporter(\"__rewriteRelativeImportExtension\", __rewriteRelativeImportExtension);\r\n});\r\n\r\n0 && (module.exports = {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __exportStar: __exportStar,\r\n __createBinding: __createBinding,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n});\r\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst RetryHandler = require('./lib/handler/RetryHandler')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\nmodule.exports.RetryHandler = RetryHandler\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n if (typeof err === 'object') {\n Error.captureStackTrace(err, this)\n }\n\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n","'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n","const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n","'use strict'\n\nconst { AsyncResource } = require('async_hooks')\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n\n let headers = rawHeaders\n // Indicates is an HTTP2Session\n if (headers != null) {\n headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n","'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n","'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\nmodule.exports.RequestHandler = RequestHandler\n","'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n if (factory === null) {\n return\n }\n\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res ? res.write(chunk) : true\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n if (!res) {\n return\n }\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n","'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n","// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nconst noop = () => {}\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n\n if (signal) {\n try {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n if (this.closed) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve, reject) => {\n const signalListenerCleanup = signal\n ? util.addAbortListener(signal, () => {\n this.destroy()\n })\n : noop\n\n this\n .on('close', function () {\n signalListenerCleanup()\n if (signal && signal.aborted) {\n reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' }))\n } else {\n resolve(null)\n }\n })\n .on('error', noop)\n .on('data', function (chunk) {\n limit -= chunk.length\n if (limit <= 0) {\n this.destroy()\n }\n })\n .resume()\n })\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst.buffer)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n","const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n","'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject)\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n","'use strict'\n\nmodule.exports = {\n kConstruct: require('../core/symbols').kConstruct\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n","// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst http = require('http')\nconst { pipeline } = require('stream')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize,\n kHTTPConnVersion,\n // HTTP2\n kHost,\n kHTTP2Session,\n kHTTP2SessionState,\n kHTTP2BuildRequest,\n kHTTP2CopyHeaders,\n kHTTP1BuildRequest\n} = require('./core/symbols')\n\n/** @type {import('http2')} */\nlet http2\ntry {\n http2 = require('http2')\n} catch {\n // @ts-ignore\n http2 = { constants: {} }\n}\n\nconst {\n constants: {\n HTTP2_HEADER_AUTHORITY,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_CONTENT_LENGTH,\n HTTP2_HEADER_EXPECT,\n HTTP2_HEADER_STATUS\n }\n} = http2\n\n// Experimental\nlet h2ExperimentalWarned = false\n\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n // h2\n allowH2,\n maxConcurrentStreams\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n // h2\n if (allowH2 != null && typeof allowH2 !== 'boolean') {\n throw new InvalidArgumentError('allowH2 must be a valid boolean value')\n }\n\n if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) {\n throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n this[kHTTPConnVersion] = 'h1'\n\n // HTTP/2\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = !allowH2\n ? null\n : {\n // streams: null, // Fixed queue of streams - For future support of `push`\n openStreams: 0, // Keep track of them to decide wether or not unref the session\n maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server\n }\n this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = this[kHTTPConnVersion] === 'h2'\n ? Request[kHTTP2BuildRequest](origin, opts, handler)\n : Request[kHTTP1BuildRequest](origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n // TODO: for H2 we need to gracefully flush the remaining enqueued\n // request and close each stream.\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (this[kHTTP2Session] != null) {\n util.destroy(this[kHTTP2Session], err)\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = null\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nfunction onHttp2SessionError (err) {\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n this[kSocket][kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onHttp2FrameError (type, code, id) {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n\n if (id === 0) {\n this[kSocket][kError] = err\n onError(this[kClient], err)\n }\n}\n\nfunction onHttp2SessionEnd () {\n util.destroy(this, new SocketError('other side closed'))\n util.destroy(this[kSocket], new SocketError('other side closed'))\n}\n\nfunction onHTTP2GoAway (code) {\n const client = this[kClient]\n const err = new InformationalError(`HTTP/2: \"GOAWAY\" frame received with code ${code}`)\n client[kSocket] = null\n client[kHTTP2Session] = null\n\n if (client.destroyed) {\n assert(this[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n } else if (client[kRunning] > 0) {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect',\n client[kUrl],\n [client],\n err\n )\n\n resume(client)\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n\n if (request.aborted) {\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n request.onComplete(headers)\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n if (parser) {\n parser.readMore()\n }\n}\n\nfunction onSocketError (err) {\n const { [kClient]: client, [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n if (client[kHTTPConnVersion] !== 'h2') {\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser, [kClient]: client } = this\n\n if (client[kHTTPConnVersion] !== 'h2') {\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client, [kParser]: parser } = this\n\n if (client[kHTTPConnVersion] === 'h1' && parser) {\n if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n }\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substring(1, idx)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n const isH2 = socket.alpnProtocol === 'h2'\n if (isH2) {\n if (!h2ExperimentalWarned) {\n h2ExperimentalWarned = true\n process.emitWarning('H2 support is experimental, expect them to change at any time.', {\n code: 'UNDICI-H2'\n })\n }\n\n const session = http2.connect(client[kUrl], {\n createConnection: () => socket,\n peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams\n })\n\n client[kHTTPConnVersion] = 'h2'\n session[kClient] = client\n session[kSocket] = socket\n session.on('error', onHttp2SessionError)\n session.on('frameError', onHttp2FrameError)\n session.on('end', onHttp2SessionEnd)\n session.on('goaway', onHTTP2GoAway)\n session.on('close', onSocketClose)\n session.unref()\n\n client[kHTTP2Session] = session\n socket[kHTTP2Session] = session\n } else {\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n }\n\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket[kClient] = client\n socket[kError] = null\n\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket && !client[kHTTP2Session]) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\n// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2\nfunction shouldSendContentLength (method) {\n return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT'\n}\n\nfunction write (client, request) {\n if (client[kHTTPConnVersion] === 'h2') {\n writeH2(client, client[kHTTP2Session], request)\n return\n }\n\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n const bodyLength = util.bodyLength(body)\n\n let contentLength = bodyLength\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body || bodyLength === 0) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeH2 (client, session, request) {\n const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request\n\n let headers\n if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim())\n else headers = reqHeaders\n\n if (upgrade) {\n errorRequest(client, request, new Error('Upgrade not supported for H2'))\n return false\n }\n\n try {\n // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event?\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n /** @type {import('node:http2').ClientHttp2Stream} */\n let stream\n const h2State = client[kHTTP2SessionState]\n\n headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]\n headers[HTTP2_HEADER_METHOD] = method\n\n if (method === 'CONNECT') {\n session.ref()\n // we are already connected, streams are pending, first request\n // will create a new stream. We trigger a request to create the stream and wait until\n // `ready` event is triggered\n // We disabled endStream to allow the user to write to the stream\n stream = session.request(headers, { endStream: false, signal })\n\n if (stream.id && !stream.pending) {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n } else {\n stream.once('ready', () => {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n })\n }\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) session.unref()\n })\n\n return true\n }\n\n // https://tools.ietf.org/html/rfc7540#section-8.3\n // :path and :scheme headers must be omited when sending CONNECT\n\n headers[HTTP2_HEADER_PATH] = path\n headers[HTTP2_HEADER_SCHEME] = 'https'\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength == null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 || !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (contentLength != null) {\n assert(body, 'no body must not have content length')\n headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`\n }\n\n session.ref()\n\n const shouldEndStream = method === 'GET' || method === 'HEAD'\n if (expectContinue) {\n headers[HTTP2_HEADER_EXPECT] = '100-continue'\n stream = session.request(headers, { endStream: shouldEndStream, signal })\n\n stream.once('continue', writeBodyH2)\n } else {\n stream = session.request(headers, {\n endStream: shouldEndStream,\n signal\n })\n writeBodyH2()\n }\n\n // Increment counter as we have new several streams open\n ++h2State.openStreams\n\n stream.once('response', headers => {\n const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers\n\n if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) {\n stream.pause()\n }\n })\n\n stream.once('end', () => {\n request.onComplete([])\n })\n\n stream.on('data', (chunk) => {\n if (request.onData(chunk) === false) {\n stream.pause()\n }\n })\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) {\n session.unref()\n }\n })\n\n stream.once('error', function (err) {\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n stream.once('frameError', (type, code) => {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n errorRequest(client, request, err)\n\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n // stream.on('aborted', () => {\n // // TODO(HTTP/2): Support aborted\n // })\n\n // stream.on('timeout', () => {\n // // TODO(HTTP/2): Support timeout\n // })\n\n // stream.on('push', headers => {\n // // TODO(HTTP/2): Suppor push\n // })\n\n // stream.on('trailers', headers => {\n // // TODO(HTTP/2): Support trailers\n // })\n\n return true\n\n function writeBodyH2 () {\n /* istanbul ignore else: assertion */\n if (!body) {\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n stream.cork()\n stream.write(body)\n stream.uncork()\n stream.end()\n request.onBodySent(body)\n request.onRequestSent()\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({\n client,\n request,\n contentLength,\n h2stream: stream,\n expectsPayload,\n body: body.stream(),\n socket: client[kSocket],\n header: ''\n })\n } else {\n writeBlob({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n h2stream: stream,\n header: '',\n socket: client[kSocket]\n })\n }\n } else if (util.isStream(body)) {\n writeStream({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n socket: client[kSocket],\n h2stream: stream,\n header: ''\n })\n } else if (util.isIterable(body)) {\n writeIterable({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n header: '',\n h2stream: stream,\n socket: client[kSocket]\n })\n } else {\n assert(false)\n }\n }\n}\n\nfunction writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n if (client[kHTTPConnVersion] === 'h2') {\n // For HTTP/2, is enough to pipe the stream\n const pipe = pipeline(\n body,\n h2stream,\n (err) => {\n if (err) {\n util.destroy(body, err)\n util.destroy(h2stream, err)\n } else {\n request.onRequestSent()\n }\n }\n )\n\n pipe.on('data', onPipeData)\n pipe.once('end', () => {\n pipe.removeListener('data', onPipeData)\n util.destroy(pipe)\n })\n\n function onPipeData (chunk) {\n request.onBodySent(chunk)\n }\n\n return\n }\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n if (finished) {\n return\n }\n const err = new RequestAbortedError()\n queueMicrotask(() => onFinished(err))\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n const isH2 = client[kHTTPConnVersion] === 'h2'\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n if (isH2) {\n h2stream.cork()\n h2stream.write(buffer)\n h2stream.uncork()\n } else {\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n }\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(isH2 ? h2stream : socket, err)\n }\n}\n\nasync function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n if (client[kHTTPConnVersion] === 'h2') {\n h2stream\n .on('close', onDrain)\n .on('drain', onDrain)\n\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n const res = h2stream.write(chunk)\n request.onBodySent(chunk)\n if (!res) {\n await waitForDrain()\n }\n }\n } catch (err) {\n h2stream.destroy(err)\n } finally {\n request.onRequestSent()\n h2stream.end()\n h2stream\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n\n return\n }\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n","'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n if (dispatcher.on) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n }\n}\n\nmodule.exports = function () {\n // FIXME: remove workaround when the Node bug is fixed\n // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\n if (process.env.NODE_V8_COVERAGE) {\n return {\n WeakRef: CompatWeakRef,\n FinalizationRegistry: CompatFinalizer\n }\n }\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n","'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n","'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = headers.getSetCookie()\n\n if (!cookies) {\n return []\n }\n\n return cookies.map((pair) => parseSetCookie(pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n","'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n","'use strict'\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = \n token = 1*\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = \n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n validateCookieName,\n validateCookiePath,\n validateCookieValue,\n toIMFDate,\n stringify\n}\n","'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\n// FIXME: remove workaround when the Node bug is fixed\n// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\nif (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n allowH2 = allowH2 != null ? allowH2 : false\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n // TODO(HTTP/2): Add support for h2c\n ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'],\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n","'use strict'\n\n/** @type {Record} */\nconst headerNameLowerCasedRecord = {}\n\n// https://developer.mozilla.org/docs/Web/HTTP/Headers\nconst wellknownHeaderNames = [\n 'Accept',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Alt-Svc',\n 'Alt-Used',\n 'Authorization',\n 'Cache-Control',\n 'Clear-Site-Data',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-Range',\n 'Content-Security-Policy',\n 'Content-Security-Policy-Report-Only',\n 'Content-Type',\n 'Cookie',\n 'Cross-Origin-Embedder-Policy',\n 'Cross-Origin-Opener-Policy',\n 'Cross-Origin-Resource-Policy',\n 'Date',\n 'Device-Memory',\n 'Downlink',\n 'ECT',\n 'ETag',\n 'Expect',\n 'Expect-CT',\n 'Expires',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Link',\n 'Location',\n 'Max-Forwards',\n 'Origin',\n 'Permissions-Policy',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'RTT',\n 'Range',\n 'Referer',\n 'Referrer-Policy',\n 'Refresh',\n 'Retry-After',\n 'Sec-WebSocket-Accept',\n 'Sec-WebSocket-Extensions',\n 'Sec-WebSocket-Key',\n 'Sec-WebSocket-Protocol',\n 'Sec-WebSocket-Version',\n 'Server',\n 'Server-Timing',\n 'Service-Worker-Allowed',\n 'Service-Worker-Navigation-Preload',\n 'Set-Cookie',\n 'SourceMap',\n 'Strict-Transport-Security',\n 'Supports-Loading-Mode',\n 'TE',\n 'Timing-Allow-Origin',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'Upgrade-Insecure-Requests',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'WWW-Authenticate',\n 'X-Content-Type-Options',\n 'X-DNS-Prefetch-Control',\n 'X-Frame-Options',\n 'X-Permitted-Cross-Domain-Policies',\n 'X-Powered-By',\n 'X-Requested-With',\n 'X-XSS-Protection'\n]\n\nfor (let i = 0; i < wellknownHeaderNames.length; ++i) {\n const key = wellknownHeaderNames[i]\n const lowerCasedKey = key.toLowerCase()\n headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] =\n lowerCasedKey\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(headerNameLowerCasedRecord, null)\n\nmodule.exports = {\n wellknownHeaderNames,\n headerNameLowerCasedRecord\n}\n","'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nclass RequestRetryError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n Error.captureStackTrace(this, RequestRetryError)\n this.name = 'RequestRetryError'\n this.message = message || 'Request retry error'\n this.code = 'UND_ERR_REQ_RETRY'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError,\n RequestRetryError\n}\n","'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require('./symbols')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n util.destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n // TODO: adjust to support H2\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n\n static [kHTTP1BuildRequest] (origin, opts, handler) {\n // TODO: Migrate header parsing here, to make Requests\n // HTTP agnostic\n return new Request(origin, opts, handler)\n }\n\n static [kHTTP2BuildRequest] (origin, opts, handler) {\n const headers = opts.headers\n opts = { ...opts, headers: null }\n\n const request = new Request(origin, opts, handler)\n\n request.headers = {}\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(request, headers[i], headers[i + 1], true)\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(request, key, headers[key], true)\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n return request\n }\n\n static [kHTTP2CopyHeaders] (raw) {\n const rawHeaders = raw.split('\\r\\n')\n const headers = {}\n\n for (const header of rawHeaders) {\n const [key, value] = header.split(': ')\n\n if (value == null || value.length === 0) continue\n\n if (headers[key]) headers[key] += `,${value}`\n else headers[key] = value\n }\n\n return headers\n }\n}\n\nfunction processHeaderValue (key, val, skipAppend) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return skipAppend ? val : `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val, skipAppend = false) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n if (skipAppend) {\n if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`\n else request.headers[key] = processHeaderValue(key, val[i], skipAppend)\n } else {\n request.headers += processHeaderValue(key, val[i])\n }\n }\n } else {\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n","module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size'),\n kHTTP2Session: Symbol('http2Session'),\n kHTTP2SessionState: Symbol('http2Session state'),\n kHTTP2BuildRequest: Symbol('http2 build request'),\n kHTTP1BuildRequest: Symbol('http1 build request'),\n kHTTP2CopyHeaders: Symbol('http2 copy headers'),\n kHTTPConnVersion: Symbol('http connection version'),\n kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),\n kConstruct: Symbol('constructable')\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substring(1, idx)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substring(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (stream == null || !isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\n/**\n * Retrieves a header name and returns its lowercase value.\n * @param {string | Buffer} value Header name\n * @returns {string}\n */\nfunction headerNameToString (value) {\n return headerNameLowerCasedRecord[value] || value.toLowerCase()\n}\n\nfunction parseHeaders (headers, obj = {}) {\n // For H2 support\n if (!Array.isArray(headers)) return headers\n\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1].map(x => x.toString('utf8'))\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nasync function * convertIterableToBuffer (iterable) {\n for await (const chunk of iterable) {\n yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n return ReadableStream.from(convertIterableToBuffer(iterable))\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nfunction addAbortListener (signal, listener) {\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\n// Parsed accordingly to RFC 9110\n// https://www.rfc-editor.org/rfc/rfc9110#field.content-range\nfunction parseRangeHeader (range) {\n if (range == null || range === '') return { start: 0, end: null, size: null }\n\n const m = range ? range.match(/^bytes (\\d+)-(\\d+)\\/(\\d+)?$/) : null\n return m\n ? {\n start: parseInt(m[1]),\n end: m[2] ? parseInt(m[2]) : null,\n size: m[3] ? parseInt(m[3]) : null\n }\n : null\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n headerNameToString,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n parseRangeHeader,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13),\n safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n}\n","'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n","'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n","'use strict'\n\nconst Busboy = require('@fastify/busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet random\ntry {\n const crypto = require('node:crypto')\n random = (max) => crypto.randomInt(0, max)\n} catch {\n random = (max) => Math.floor(Math.random(max))\n}\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object’s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? textEncoder.encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy Wärting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object’s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = textEncoder.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = textEncoder.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = textEncoder.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object’s size.\n length = object.size\n\n // If object’s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source’s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let « out1, out2 » be the result of teeing body’s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body’s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this’s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType’s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = new Busboy({\n headers,\n preservePath: true\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, filename, encoding, mimeType) => {\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType’s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n // Note that streaming decoder is stateful and cannot be reused\n const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += streamingDecoder.decode(chunk, { stream: true })\n }\n text += streamingDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object’s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object’s body given successSteps,\n // errorSteps, and object’s relevant global object.\n await fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body’s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8’s\n // decoder, ioQueue, output, and \"replacement\".\n const output = textDecoder.decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n","'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\nconst corsSafeListedMethodsSet = new Set(corsSafeListedMethods)\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\nconst redirectStatusSet = new Set(redirectStatus)\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nconst badPortsSet = new Set(badPorts)\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\nconst referrerPolicySet = new Set(referrerPolicy)\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\nconst safeMethodsSet = new Set(safeMethods)\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\nconst forbiddenMethodsSet = new Set(forbiddenMethods)\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\nconst subresourceSet = new Set(subresource)\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex,\n subresourceSet,\n badPortsSet,\n redirectStatusSet,\n corsSafeListedMethodsSet,\n safeMethodsSet,\n forbiddenMethodsSet,\n referrerPolicySet\n}\n","const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL’s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n if (!excludeFragment) {\n return url.href\n }\n\n const href = url.href\n const hashLength = url.hash.length\n\n return hashLength === 0 ? href : href.substring(0, href.length - hashLength)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn’t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType’s parameters[parameterName] does not exist\n // then set mimeType’s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data’s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data’s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType’s\n // type, U+002F (/), and mimeType’s subtype.\n let serialization = essence\n\n // 2. For each name → value of mimeType’s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n","'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\nconst encoder = new TextEncoder()\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(encoder.encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform’s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n","'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this’s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this’s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this’s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this’s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this’s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this’s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this’s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n","'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst util = require('util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @param {number} code\n */\nfunction isHTTPWhiteSpaceCharCode (code) {\n return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n let i = 0; let j = potentialValue.length\n\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i\n\n return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j)\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; ++i) {\n const header = object[i]\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header’s first item, header’s second item) to headers.\n appendHeader(headers, header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key → value in object,\n // append (key, value) to headers\n const keys = Object.keys(object)\n for (let i = 0; i < keys.length; ++i) {\n appendHeader(headers, keys[i], object[keys[i]])\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-headers-append\n */\nfunction appendHeader (headers, name, value) {\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers’s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (headers[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (headers[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers’s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers’s header list.\n return headers[kHeadersList].append(name, value)\n\n // 8. If headers’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies === null ? null : [...init.cookies]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header’s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n const value = this[kHeadersMap].get(name.toLowerCase())\n\n // 1. If list does not contain name, then return null.\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return value === undefined ? null : value.value\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n if (init === kConstruct) {\n return\n }\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this’s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n return appendHeader(this, name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this’s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this’s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this’s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this’s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this’s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this’s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this’s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this’s header list does not contain `Set-Cookie`, then return « ».\n // 2. Return the values of all headers in this’s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (let i = 0; i < names.length; ++i) {\n const [name, value] = names[i]\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (let j = 0; j < cookies.length; ++j) {\n headers.push([name, cookies[j]])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key+value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n },\n [util.inspect.custom]: {\n enumerable: false\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n safeMethodsSet,\n requestBodyHeader,\n subresourceSet,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\nconst GET_OR_HEAD = ['GET', 'HEAD']\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller’s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller’s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nfunction fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject’s request.\n const request = requestObject[kState]\n\n // 4. If requestObject’s signal’s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject’s signal’s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request’s client’s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request’s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this’s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject’s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject’s signal’s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject’s signal’s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return Promise.resolve()\n }\n\n // 2. If response’s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller’s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return Promise.resolve()\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return Promise.resolve()\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response’s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response’s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response’s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response’s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response’s timing allow passed flag is not set, then:\n if (!response.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo’s end time to the coarsened shared current time\n // given global’s relevant settings object’s cross-origin isolated\n // capability.\n // TODO: given global’s relevant settings object’s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request’s body is not null and is readable, then cancel request’s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject’s response.\n const response = responseObject[kState]\n\n // 5. If response’s body is not null and is readable, then error response’s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request’s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request’s client’s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request’s body is a byte sequence, then set request’s body to\n // request’s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request’s window is \"client\", then set request’s window to request’s\n // client, if request’s client’s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request’s origin is \"client\", then set request’s origin to request’s\n // client’s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request’s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request’s client is non-null, then set request’s policy\n // container to a clone of request’s client’s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request’s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request’s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request’s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request’s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request’s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request’s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request’s priority is null, then use request’s initiator and\n // destination appropriately in setting request’s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresourceSet.has(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request’s local-URLs-only flag is set and request’s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request’s referrer policy is the empty string, then set request’s\n // referrer policy to request’s policy container’s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request’s referrer is not \"no-referrer\", then set request’s\n // referrer to the result of invoking determine request’s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request’s current URL’s scheme to \"https\" if all of the following\n // conditions are true:\n // - request’s current URL’s scheme is \"http\"\n // - request’s current URL’s host is a domain\n // - Matching request’s current URL’s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request’s current URL’s origin is same origin with request’s origin,\n // and request’s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request’s current URL’s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request’s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request’s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request’s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request’s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request’s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s current URL’s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request’s use-CORS-preflight flag is set\n // - request’s unsafe-request flag is set and either request’s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request’s header list is not empty\n // 1. Set request’s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request’s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request’s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response’s header list.\n // TODO\n // 2. If request’s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response’s CORS-exposed header-name list to\n // all unique header names in response’s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response’s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response’s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse’s URL list is empty, then set it to a clone of\n // request’s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request’s timing allow failed flag is unset, then set\n // internalResponse’s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response’s type is \"opaque\", internalResponse’s status is 206,\n // internalResponse’s range-requested flag is set, and request’s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request’s method is\n // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status,\n // set internalResponse’s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request’s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request’s response tainting is \"opaque\", or response’s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request’s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response’s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response’s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nfunction schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return Promise.resolve(makeAppropriateNetworkError(fetchParams))\n }\n\n // 2. Let request be fetchParams’s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request’s current URL’s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request’s current URL’s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) »,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return Promise.resolve(makeNetworkError('about scheme is not supported'))\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request’s current URL’s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.'))\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return Promise.resolve(makeNetworkError('invalid method'))\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType’s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body’s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // « (`Content-Length`, length), (`Content-Type`, type) », and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return Promise.resolve(response)\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request’s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return Promise.resolve(makeNetworkError('failed to fetch the data URL'))\n }\n\n // 3. Let mimeType be dataURLStruct’s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is « (`Content-Type`, mimeType) »,\n // and body is dataURLStruct’s body as a body.\n return Promise.resolve(makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n }))\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return Promise.resolve(makeNetworkError('not implemented... yet...'))\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return Promise.resolve(makeNetworkError('unknown scheme'))\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams’s process response done is not null, then queue a fetch\n // task to run fetchParams’s process response done given response, with\n // fetchParams’s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nfunction fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ».\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response’s timing info to the result of creating an opaque timing\n // info for fetchParams’s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // If fetchParams’s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams’s process response\n // end-of-body given response with fetchParams’s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams’s process response is non-null, then queue a fetch task\n // to run fetchParams’s process response given response, with fetchParams’s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response’s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response’s body to the result of piping response’s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams’s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams’s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams’s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response’s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams’s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response’s body given processBody, processBodyError,\n // and fetchParams’s task destination.\n return fullyReadBody(response.body, processBody, processBodyError)\n }\n return Promise.resolve()\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request’s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request’s redirect mode is \"follow\", then set request’s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request’s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request’s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request’s response tainting or response’s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request’s origin, request’s client, request’s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse’s status is a redirect status, then:\n if (redirectStatusSet.has(actualResponse.status)) {\n // 1. If actualResponse’s status is not 303, request’s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request’s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nfunction httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response’s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse’s location URL given request’s current\n // URL’s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return Promise.resolve(makeNetworkError(err))\n }\n\n // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme'))\n }\n\n // 7. If request’s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return Promise.resolve(makeNetworkError('redirect count exceeded'))\n }\n\n // 8. Increase request’s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request’s mode is \"cors\", locationURL includes credentials, and\n // request’s origin is not same origin with locationURL’s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return Promise.resolve(makeNetworkError('cross origin not allowed for request mode \"cors\"'))\n }\n\n // 10. If request’s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return Promise.resolve(makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n ))\n }\n\n // 11. If actualResponse’s status is not 303, request’s body is non-null,\n // and request’s body’s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return Promise.resolve(makeNetworkError())\n }\n\n // 12. If one of the following is true\n // - actualResponse’s status is 301 or 302 and request’s method is `POST`\n // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !GET_OR_HEAD.includes(request.method))\n ) {\n // then:\n // 1. Set request’s method to `GET` and request’s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request’s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request’s current URL’s origin is not same origin with locationURL’s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request’s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n\n // https://fetch.spec.whatwg.org/#authentication-entries\n request.headersList.delete('proxy-authorization', true)\n\n // \"Cookie\" and \"Host\" are forbidden request-headers, which undici doesn't implement.\n request.headersList.delete('cookie')\n request.headersList.delete('host')\n }\n\n // 14. If request’s body is non-null, then set request’s body to the first return\n // value of safely extracting request’s body’s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo’s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams’s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s\n // redirect start time to timingInfo’s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request’s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request’s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request’s window is \"no-window\" and request’s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams’s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest’s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest’s header list.\n\n // 10. If contentLength is non-null and httpRequest’s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest’s referrer is a URL, then append\n // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded,\n // to httpRequest’s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest’s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest’s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node')\n }\n\n // 15. If httpRequest’s cache mode is \"default\" and httpRequest’s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest’s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest’s cache mode is \"no-cache\", httpRequest’s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest’s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest’s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest’s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest’s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest’s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest’s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest’s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest’s header list per HTTP. Do not append a given\n // header if httpRequest’s header list contains that header’s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n httpRequest.headersList.delete('host')\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest’s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there’s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest’s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest’s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest’s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest’s method is unsafe and forwardResponse’s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethodsSet.has(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse’s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response’s URL list to a clone of httpRequest’s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest’s header list contains `Range`, then set response’s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response’s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response’s status is 401, httpRequest’s response tainting is not\n // \"cors\", includeCredentials is true, and request’s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response’s status is 407, then:\n if (response.status === 407) {\n // 1. If request’s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request’s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response’s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request’s body is null, or request’s body is non-null and request’s body’s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request’s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request’s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request’s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request’s current URL’s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo’s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection’s\n // timing info, timingInfo’s post-redirect start time, and fetchParams’s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request’s body is non-null,\n // and request’s body’s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request’s header list.\n\n // 4. Set timingInfo’s final network-request start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request’s body is non-null, and request’s body’s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request’s body in that buffer. If the user agent reads from\n // request’s body beyond that buffer’s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo’s final network-response start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated capability,\n // immediately after the user agent’s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo’s final network-response start time above.\n\n // - If request’s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request’s window is an environment settings object, make the\n // dialog available in request’s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request’s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams’s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams’s process request\n // end-of-body and fetchParams’s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams’s process request body is non-null, then run\n // fetchParams’s process request body given bytes’s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams’s process request end-of-body is non-null,\n // then run fetchParams’s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams’s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams’s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams, err)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response’s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request’s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response’s header list, if any, and request’s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response’s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo’s decoded body size by bytes’s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams’s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn’t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response’s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams’s\n // controller’s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n\n // For H2, the headers are a plain JS object\n // We distinguish between them and iterate accordingly\n if (Array.isArray(headersList)) {\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n } else {\n const keys = Object.keys(headersList)\n for (const key of keys) {\n const val = headersList[key]\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatusSet.has(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response’s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response’s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo’s encoded body size by bytes’s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers[kHeadersList].append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n","/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer,\n normalizeMethodRecord\n} = require('./util')\nconst {\n forbiddenMethodsSet,\n corsSafeListedMethodsSet,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kConstruct) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this’s relevant settings object’s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input’s request.\n request = input[kState]\n\n // 9. Set signal to input’s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this’s relevant settings object’s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request’s window is an environment settings object and its origin\n // is same origin with origin, then set window to request’s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request’s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request’s method.\n method: request.method,\n // header list A copy of request’s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This’s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request’s priority.\n priority: request.priority,\n // origin request’s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request’s referrer.\n referrer: request.referrer,\n // referrer policy request’s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request’s mode.\n mode: request.mode,\n // credentials mode request’s credentials mode.\n credentials: request.credentials,\n // cache mode request’s cache mode.\n cache: request.cache,\n // redirect mode request’s redirect mode.\n redirect: request.redirect,\n // integrity metadata request’s integrity metadata.\n integrity: request.integrity,\n // keepalive request’s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request’s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request’s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request’s URL list.\n urlList: [...request.urlList]\n })\n\n const initHasKey = Object.keys(init).length !== 0\n\n // 13. If init is not empty, then:\n if (initHasKey) {\n // 1. If request’s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request’s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request’s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request’s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request’s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request’s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request’s URL to request’s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request’s URL list to « request’s URL ».\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request’s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer’s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer’s origin is not same origin with origin\n // then set request’s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request’s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request’s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request’s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request’s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request’s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request’s cache mode is \"only-if-cached\" and request’s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request’s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request’s integrity metadata to it.\n if (init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request’s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(method)) {\n throw new TypeError(`'${method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethodsSet.has(method.toUpperCase())) {\n throw new TypeError(`'${method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethodRecord[method] ?? normalizeMethod(method)\n\n // 4. Set request’s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this’s request to request.\n this[kState] = request\n\n // 28. Set this’s signal to a new AbortSignal object with this’s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this’s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is request’s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this’s request’s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this’s request’s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethodsSet.has(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this’s headers’s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (initHasKey) {\n /** @type {HeadersList} */\n const headersList = this[kHeaders][kHeadersList]\n // 1. Let headers be a copy of this’s headers and its associated header\n // list.\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList)\n\n // 3. Empty this’s headers’s header list.\n headersList.clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header’s name/header’s value to this’s headers.\n if (headers instanceof HeadersList) {\n for (const [key, val] of headers) {\n headersList.append(key, val)\n }\n // Note: Copy the `set-cookie` meta-data.\n headersList.cookies = headers.cookies\n } else {\n // 5. Otherwise, fill this’s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input’s request’s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request’s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request’s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this’s headers’s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this’s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this’s request’s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this’s request’s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this’s request’s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request’s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this’s request’s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this’s request’s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this’s request’s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global’s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this’s request’s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this’s request’s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this’s request’s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request’s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this’s request’s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this’s request’s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this’s request’s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser’s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this’s request’s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this’s request’s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request’s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this’s request’s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this’s request’s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this’s\n // request’s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this’s request’s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this’s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this’s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this’s headers’s guard, and this’s relevant Realm.\n const clonedRequestObject = new Request(kConstruct)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers(kConstruct)\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject’s signal follow this’s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request’s body is non-null, set newRequest’s body to the\n // result of cloning request’s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n","'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\nconst textEncoder = new TextEncoder('utf-8')\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this’s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = textEncoder.encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this’s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object’s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatusSet.has(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this’s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject’s response’s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject’s response’s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this’s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is this’s response’s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response’s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this’s response’s type.\n return this[kState].type\n }\n\n // Returns response’s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this’s\n // response’s URL is null; otherwise this’s response’s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this’s response’s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response’s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this’s response’s status.\n return this[kState].status\n }\n\n // Returns whether response’s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this’s response’s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response’s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this’s response’s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response’s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this’s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this’s headers’s guard, and this’s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response’s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response’s body is non-null, then set newResponse’s body to the\n // result of cloning response’s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response’s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response’s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response’s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams, err = null) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err }))\n : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err }))\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response’s response’s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response’s response’s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response’s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n","'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n","'use strict'\n\nconst { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\nlet supportedHashes = []\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n const possibleRelevantHashes = ['sha256', 'sha384', 'sha512']\n supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash))\n/* c8 ignore next 3 */\n} catch {\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response’s URL list and null if response’s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response’s status is not a redirect status, then return null.\n if (!redirectStatusSet.has(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response’s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response’s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location’s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request’s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n * @param {number} c\n */\nfunction isTokenCharCode (c) {\n switch (c) {\n case 0x22:\n case 0x28:\n case 0x29:\n case 0x2c:\n case 0x2f:\n case 0x3a:\n case 0x3b:\n case 0x3c:\n case 0x3d:\n case 0x3e:\n case 0x3f:\n case 0x40:\n case 0x5b:\n case 0x5c:\n case 0x5d:\n case 0x7b:\n case 0x7d:\n // DQUOTE and \"(),/:;<=>?@[\\]{}\"\n return false\n default:\n // VCHAR %x21-7E\n return c >= 0x21 && c <= 0x7e\n }\n}\n\n/**\n * @param {string} characters\n */\nfunction isValidHTTPToken (characters) {\n if (characters.length === 0) {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n if (!isTokenCharCode(characters.charCodeAt(i))) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-name\n * @param {string} potentialValue\n */\nfunction isValidHeaderName (potentialValue) {\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request’s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing § 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.has(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request’s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r’s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header’s value to r’s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request’s response tainting is \"cors\" or request’s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request’s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request’s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request’s origin is a tuple origin, its scheme is \"https\", and request’s current URL’s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request’s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request’s client.\n\n let referrerSource = null\n\n // 3. Switch on request’s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request’s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request’s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request’s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request’s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url’s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url’s username to the empty string.\n url.username = ''\n\n // 4. Set url’s password to the empty string.\n url.password = ''\n\n // 5. Set url’s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url’s path to « the empty string ».\n url.pathname = ''\n\n // 2. Set url’s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If response is not eligible for integrity validation, return false.\n // TODO\n\n // 4. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 5. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const strongest = getStrongestMetadata(parsedMetadata)\n const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest)\n\n // 6. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e\n // \"be liberal with padding\". This is annoying, and it's not even in the spec.\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n if (actualValue[actualValue.length - 1] === '=') {\n if (actualValue[actualValue.length - 2] === '=') {\n actualValue = actualValue.slice(0, -2)\n } else {\n actualValue = actualValue.slice(0, -1)\n }\n }\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (compareBase64Mixed(actualValue, expectedValue)) {\n return true\n }\n }\n\n // 7. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\\s|$)( +[!-~]*)?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (\n parsedToken === null ||\n parsedToken.groups === undefined ||\n parsedToken.groups.algo === undefined\n ) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo.toLowerCase()\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm)) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n/**\n * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList\n */\nfunction getStrongestMetadata (metadataList) {\n // Let algorithm be the algo component of the first item in metadataList.\n // Can be sha256\n let algorithm = metadataList[0].algo\n // If the algorithm is sha512, then it is the strongest\n // and we can return immediately\n if (algorithm[3] === '5') {\n return algorithm\n }\n\n for (let i = 1; i < metadataList.length; ++i) {\n const metadata = metadataList[i]\n // If the algorithm is sha512, then it is the strongest\n // and we can break the loop immediately\n if (metadata.algo[3] === '5') {\n algorithm = 'sha512'\n break\n // If the algorithm is sha384, then a potential sha256 or sha384 is ignored\n } else if (algorithm[3] === '3') {\n continue\n // algorithm is sha256, check if algorithm is sha384 and if so, set it as\n // the strongest\n } else if (metadata.algo[3] === '3') {\n algorithm = 'sha384'\n }\n }\n return algorithm\n}\n\nfunction filterMetadataListByAlgorithm (metadataList, algorithm) {\n if (metadataList.length === 1) {\n return metadataList\n }\n\n let pos = 0\n for (let i = 0; i < metadataList.length; ++i) {\n if (metadataList[i].algo === algorithm) {\n metadataList[pos++] = metadataList[i]\n }\n }\n\n metadataList.length = pos\n\n return metadataList\n}\n\n/**\n * Compares two base64 strings, allowing for base64url\n * in the second string.\n *\n* @param {string} actualValue always base64\n * @param {string} expectedValue base64 or base64url\n * @returns {boolean}\n */\nfunction compareBase64Mixed (actualValue, expectedValue) {\n if (actualValue.length !== expectedValue.length) {\n return false\n }\n for (let i = 0; i < actualValue.length; ++i) {\n if (actualValue[i] !== expectedValue[i]) {\n if (\n (actualValue[i] === '+' && expectedValue[i] === '-') ||\n (actualValue[i] === '/' && expectedValue[i] === '_')\n ) {\n continue\n }\n return false\n }\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\nconst normalizeMethodRecord = {\n delete: 'DELETE',\n DELETE: 'DELETE',\n get: 'GET',\n GET: 'GET',\n head: 'HEAD',\n HEAD: 'HEAD',\n options: 'OPTIONS',\n OPTIONS: 'OPTIONS',\n post: 'POST',\n POST: 'POST',\n put: 'PUT',\n PUT: 'PUT'\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(normalizeMethodRecord, null)\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-method-normalize\n * @param {string} method\n */\nfunction normalizeMethod (method) {\n return normalizeMethodRecord[method.toLowerCase()] ?? method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object’s index.\n // 7. Let kind be object’s kind.\n // 8. Let values be object’s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object’s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair’s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair’s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair’s key.\n // 2. Let idlValue be pair’s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = processBody\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = processBodyError\n\n // 4. Let reader be the result of getting a reader for body’s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n try {\n const result = await readAllBytes(reader)\n successSteps(result)\n } catch (e) {\n errorSteps(e)\n }\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input’s length and whose code points have the same values\n // as the values of input’s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input’s code\n // point length and whose bytes have the same values as the\n // values of input’s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n */\nasync function readAllBytes (reader) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n const { done, value: chunk } = await reader.read()\n\n if (done) {\n // 1. Call successSteps with bytes.\n return Buffer.concat(bytes, byteLength)\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n throw new TypeError('Received non-Uint8Array chunk')\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes,\n normalizeMethodRecord,\n parseMetadata\n}\n","'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 − 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be −2^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength − 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength − 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength − 1 − 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is −0, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +∞, or −∞, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than −0.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +∞, or −∞, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x ≥ 2^bitLength − 1,\n // then return x − 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 × r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n if (x.charCodeAt(index) > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T’s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n","'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n","'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute’s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute’s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n","'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n","'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr’s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr’s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr’s result to null.\n fr[kResult] = null\n\n // 4. Set fr’s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob’s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr’s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr’s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr’s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr’s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr’s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type’s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding’s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n","'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n","'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n","'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n if (header.length === 4) {\n return util.headerNameToString(header) === 'host'\n }\n if (removeContent && util.headerNameToString(header).startsWith('content-')) {\n return true\n }\n if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) {\n const name = util.headerNameToString(header)\n return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization'\n }\n return false\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n","const assert = require('assert')\n\nconst { kRetryHandlerDefaultRetry } = require('../core/symbols')\nconst { RequestRetryError } = require('../core/errors')\nconst { isDisturbed, parseHeaders, parseRangeHeader } = require('../core/util')\n\nfunction calculateRetryAfterHeader (retryAfter) {\n const current = Date.now()\n const diff = new Date(retryAfter).getTime() - current\n\n return diff\n}\n\nclass RetryHandler {\n constructor (opts, handlers) {\n const { retryOptions, ...dispatchOpts } = opts\n const {\n // Retry scoped\n retry: retryFn,\n maxRetries,\n maxTimeout,\n minTimeout,\n timeoutFactor,\n // Response scoped\n methods,\n errorCodes,\n retryAfter,\n statusCodes\n } = retryOptions ?? {}\n\n this.dispatch = handlers.dispatch\n this.handler = handlers.handler\n this.opts = dispatchOpts\n this.abort = null\n this.aborted = false\n this.retryOpts = {\n retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry],\n retryAfter: retryAfter ?? true,\n maxTimeout: maxTimeout ?? 30 * 1000, // 30s,\n timeout: minTimeout ?? 500, // .5s\n timeoutFactor: timeoutFactor ?? 2,\n maxRetries: maxRetries ?? 5,\n // What errors we should retry\n methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'],\n // Indicates which errors to retry\n statusCodes: statusCodes ?? [500, 502, 503, 504, 429],\n // List of errors to retry\n errorCodes: errorCodes ?? [\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ENOTFOUND',\n 'ENETDOWN',\n 'ENETUNREACH',\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'EPIPE'\n ]\n }\n\n this.retryCount = 0\n this.start = 0\n this.end = null\n this.etag = null\n this.resume = null\n\n // Handle possible onConnect duplication\n this.handler.onConnect(reason => {\n this.aborted = true\n if (this.abort) {\n this.abort(reason)\n } else {\n this.reason = reason\n }\n })\n }\n\n onRequestSent () {\n if (this.handler.onRequestSent) {\n this.handler.onRequestSent()\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n if (this.handler.onUpgrade) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n }\n\n onConnect (abort) {\n if (this.aborted) {\n abort(this.reason)\n } else {\n this.abort = abort\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) return this.handler.onBodySent(chunk)\n }\n\n static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {\n const { statusCode, code, headers } = err\n const { method, retryOptions } = opts\n const {\n maxRetries,\n timeout,\n maxTimeout,\n timeoutFactor,\n statusCodes,\n errorCodes,\n methods\n } = retryOptions\n let { counter, currentTimeout } = state\n\n currentTimeout =\n currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout\n\n // Any code that is not a Undici's originated and allowed to retry\n if (\n code &&\n code !== 'UND_ERR_REQ_RETRY' &&\n code !== 'UND_ERR_SOCKET' &&\n !errorCodes.includes(code)\n ) {\n cb(err)\n return\n }\n\n // If a set of method are provided and the current method is not in the list\n if (Array.isArray(methods) && !methods.includes(method)) {\n cb(err)\n return\n }\n\n // If a set of status code are provided and the current status code is not in the list\n if (\n statusCode != null &&\n Array.isArray(statusCodes) &&\n !statusCodes.includes(statusCode)\n ) {\n cb(err)\n return\n }\n\n // If we reached the max number of retries\n if (counter > maxRetries) {\n cb(err)\n return\n }\n\n let retryAfterHeader = headers != null && headers['retry-after']\n if (retryAfterHeader) {\n retryAfterHeader = Number(retryAfterHeader)\n retryAfterHeader = isNaN(retryAfterHeader)\n ? calculateRetryAfterHeader(retryAfterHeader)\n : retryAfterHeader * 1e3 // Retry-After is in seconds\n }\n\n const retryTimeout =\n retryAfterHeader > 0\n ? Math.min(retryAfterHeader, maxTimeout)\n : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout)\n\n state.currentTimeout = retryTimeout\n\n setTimeout(() => cb(null), retryTimeout)\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const headers = parseHeaders(rawHeaders)\n\n this.retryCount += 1\n\n if (statusCode >= 300) {\n this.abort(\n new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Checkpoint for resume from where we left it\n if (this.resume != null) {\n this.resume = null\n\n if (statusCode !== 206) {\n return true\n }\n\n const contentRange = parseRangeHeader(headers['content-range'])\n // If no content range\n if (!contentRange) {\n this.abort(\n new RequestRetryError('Content-Range mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Let's start with a weak etag check\n if (this.etag != null && this.etag !== headers.etag) {\n this.abort(\n new RequestRetryError('ETag mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n const { start, size, end = size } = contentRange\n\n assert(this.start === start, 'content-range mismatch')\n assert(this.end == null || this.end === end, 'content-range mismatch')\n\n this.resume = resume\n return true\n }\n\n if (this.end == null) {\n if (statusCode === 206) {\n // First time we receive 206\n const range = parseRangeHeader(headers['content-range'])\n\n if (range == null) {\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const { start, size, end = size } = range\n\n assert(\n start != null && Number.isFinite(start) && this.start !== start,\n 'content-range mismatch'\n )\n assert(Number.isFinite(start))\n assert(\n end != null && Number.isFinite(end) && this.end !== end,\n 'invalid content-length'\n )\n\n this.start = start\n this.end = end\n }\n\n // We make our best to checkpoint the body for further range headers\n if (this.end == null) {\n const contentLength = headers['content-length']\n this.end = contentLength != null ? Number(contentLength) : null\n }\n\n assert(Number.isFinite(this.start))\n assert(\n this.end == null || Number.isFinite(this.end),\n 'invalid content-length'\n )\n\n this.resume = resume\n this.etag = headers.etag != null ? headers.etag : null\n\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const err = new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n\n this.abort(err)\n\n return false\n }\n\n onData (chunk) {\n this.start += chunk.length\n\n return this.handler.onData(chunk)\n }\n\n onComplete (rawTrailers) {\n this.retryCount = 0\n return this.handler.onComplete(rawTrailers)\n }\n\n onError (err) {\n if (this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n this.retryOpts.retry(\n err,\n {\n state: { counter: this.retryCount++, currentTimeout: this.retryAfter },\n opts: { retryOptions: this.retryOpts, ...this.opts }\n },\n onRetry.bind(this)\n )\n\n function onRetry (err) {\n if (err != null || this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n if (this.start !== 0) {\n this.opts = {\n ...this.opts,\n headers: {\n ...this.opts.headers,\n range: `bytes=${this.start}-${this.end ?? ''}`\n }\n }\n }\n\n try {\n this.dispatch(this.opts, this)\n } catch (err) {\n this.handler.onError(err)\n }\n }\n }\n}\n\nmodule.exports = RetryHandler\n","'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\nconst utils_1 = require(\"./utils\");\n// C headers\nvar ERROR;\n(function (ERROR) {\n ERROR[ERROR[\"OK\"] = 0] = \"OK\";\n ERROR[ERROR[\"INTERNAL\"] = 1] = \"INTERNAL\";\n ERROR[ERROR[\"STRICT\"] = 2] = \"STRICT\";\n ERROR[ERROR[\"LF_EXPECTED\"] = 3] = \"LF_EXPECTED\";\n ERROR[ERROR[\"UNEXPECTED_CONTENT_LENGTH\"] = 4] = \"UNEXPECTED_CONTENT_LENGTH\";\n ERROR[ERROR[\"CLOSED_CONNECTION\"] = 5] = \"CLOSED_CONNECTION\";\n ERROR[ERROR[\"INVALID_METHOD\"] = 6] = \"INVALID_METHOD\";\n ERROR[ERROR[\"INVALID_URL\"] = 7] = \"INVALID_URL\";\n ERROR[ERROR[\"INVALID_CONSTANT\"] = 8] = \"INVALID_CONSTANT\";\n ERROR[ERROR[\"INVALID_VERSION\"] = 9] = \"INVALID_VERSION\";\n ERROR[ERROR[\"INVALID_HEADER_TOKEN\"] = 10] = \"INVALID_HEADER_TOKEN\";\n ERROR[ERROR[\"INVALID_CONTENT_LENGTH\"] = 11] = \"INVALID_CONTENT_LENGTH\";\n ERROR[ERROR[\"INVALID_CHUNK_SIZE\"] = 12] = \"INVALID_CHUNK_SIZE\";\n ERROR[ERROR[\"INVALID_STATUS\"] = 13] = \"INVALID_STATUS\";\n ERROR[ERROR[\"INVALID_EOF_STATE\"] = 14] = \"INVALID_EOF_STATE\";\n ERROR[ERROR[\"INVALID_TRANSFER_ENCODING\"] = 15] = \"INVALID_TRANSFER_ENCODING\";\n ERROR[ERROR[\"CB_MESSAGE_BEGIN\"] = 16] = \"CB_MESSAGE_BEGIN\";\n ERROR[ERROR[\"CB_HEADERS_COMPLETE\"] = 17] = \"CB_HEADERS_COMPLETE\";\n ERROR[ERROR[\"CB_MESSAGE_COMPLETE\"] = 18] = \"CB_MESSAGE_COMPLETE\";\n ERROR[ERROR[\"CB_CHUNK_HEADER\"] = 19] = \"CB_CHUNK_HEADER\";\n ERROR[ERROR[\"CB_CHUNK_COMPLETE\"] = 20] = \"CB_CHUNK_COMPLETE\";\n ERROR[ERROR[\"PAUSED\"] = 21] = \"PAUSED\";\n ERROR[ERROR[\"PAUSED_UPGRADE\"] = 22] = \"PAUSED_UPGRADE\";\n ERROR[ERROR[\"PAUSED_H2_UPGRADE\"] = 23] = \"PAUSED_H2_UPGRADE\";\n ERROR[ERROR[\"USER\"] = 24] = \"USER\";\n})(ERROR = exports.ERROR || (exports.ERROR = {}));\nvar TYPE;\n(function (TYPE) {\n TYPE[TYPE[\"BOTH\"] = 0] = \"BOTH\";\n TYPE[TYPE[\"REQUEST\"] = 1] = \"REQUEST\";\n TYPE[TYPE[\"RESPONSE\"] = 2] = \"RESPONSE\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"CONNECTION_KEEP_ALIVE\"] = 1] = \"CONNECTION_KEEP_ALIVE\";\n FLAGS[FLAGS[\"CONNECTION_CLOSE\"] = 2] = \"CONNECTION_CLOSE\";\n FLAGS[FLAGS[\"CONNECTION_UPGRADE\"] = 4] = \"CONNECTION_UPGRADE\";\n FLAGS[FLAGS[\"CHUNKED\"] = 8] = \"CHUNKED\";\n FLAGS[FLAGS[\"UPGRADE\"] = 16] = \"UPGRADE\";\n FLAGS[FLAGS[\"CONTENT_LENGTH\"] = 32] = \"CONTENT_LENGTH\";\n FLAGS[FLAGS[\"SKIPBODY\"] = 64] = \"SKIPBODY\";\n FLAGS[FLAGS[\"TRAILING\"] = 128] = \"TRAILING\";\n // 1 << 8 is unused\n FLAGS[FLAGS[\"TRANSFER_ENCODING\"] = 512] = \"TRANSFER_ENCODING\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nvar LENIENT_FLAGS;\n(function (LENIENT_FLAGS) {\n LENIENT_FLAGS[LENIENT_FLAGS[\"HEADERS\"] = 1] = \"HEADERS\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"CHUNKED_LENGTH\"] = 2] = \"CHUNKED_LENGTH\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"KEEP_ALIVE\"] = 4] = \"KEEP_ALIVE\";\n})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\nvar METHODS;\n(function (METHODS) {\n METHODS[METHODS[\"DELETE\"] = 0] = \"DELETE\";\n METHODS[METHODS[\"GET\"] = 1] = \"GET\";\n METHODS[METHODS[\"HEAD\"] = 2] = \"HEAD\";\n METHODS[METHODS[\"POST\"] = 3] = \"POST\";\n METHODS[METHODS[\"PUT\"] = 4] = \"PUT\";\n /* pathological */\n METHODS[METHODS[\"CONNECT\"] = 5] = \"CONNECT\";\n METHODS[METHODS[\"OPTIONS\"] = 6] = \"OPTIONS\";\n METHODS[METHODS[\"TRACE\"] = 7] = \"TRACE\";\n /* WebDAV */\n METHODS[METHODS[\"COPY\"] = 8] = \"COPY\";\n METHODS[METHODS[\"LOCK\"] = 9] = \"LOCK\";\n METHODS[METHODS[\"MKCOL\"] = 10] = \"MKCOL\";\n METHODS[METHODS[\"MOVE\"] = 11] = \"MOVE\";\n METHODS[METHODS[\"PROPFIND\"] = 12] = \"PROPFIND\";\n METHODS[METHODS[\"PROPPATCH\"] = 13] = \"PROPPATCH\";\n METHODS[METHODS[\"SEARCH\"] = 14] = \"SEARCH\";\n METHODS[METHODS[\"UNLOCK\"] = 15] = \"UNLOCK\";\n METHODS[METHODS[\"BIND\"] = 16] = \"BIND\";\n METHODS[METHODS[\"REBIND\"] = 17] = \"REBIND\";\n METHODS[METHODS[\"UNBIND\"] = 18] = \"UNBIND\";\n METHODS[METHODS[\"ACL\"] = 19] = \"ACL\";\n /* subversion */\n METHODS[METHODS[\"REPORT\"] = 20] = \"REPORT\";\n METHODS[METHODS[\"MKACTIVITY\"] = 21] = \"MKACTIVITY\";\n METHODS[METHODS[\"CHECKOUT\"] = 22] = \"CHECKOUT\";\n METHODS[METHODS[\"MERGE\"] = 23] = \"MERGE\";\n /* upnp */\n METHODS[METHODS[\"M-SEARCH\"] = 24] = \"M-SEARCH\";\n METHODS[METHODS[\"NOTIFY\"] = 25] = \"NOTIFY\";\n METHODS[METHODS[\"SUBSCRIBE\"] = 26] = \"SUBSCRIBE\";\n METHODS[METHODS[\"UNSUBSCRIBE\"] = 27] = \"UNSUBSCRIBE\";\n /* RFC-5789 */\n METHODS[METHODS[\"PATCH\"] = 28] = \"PATCH\";\n METHODS[METHODS[\"PURGE\"] = 29] = \"PURGE\";\n /* CalDAV */\n METHODS[METHODS[\"MKCALENDAR\"] = 30] = \"MKCALENDAR\";\n /* RFC-2068, section 19.6.1.2 */\n METHODS[METHODS[\"LINK\"] = 31] = \"LINK\";\n METHODS[METHODS[\"UNLINK\"] = 32] = \"UNLINK\";\n /* icecast */\n METHODS[METHODS[\"SOURCE\"] = 33] = \"SOURCE\";\n /* RFC-7540, section 11.6 */\n METHODS[METHODS[\"PRI\"] = 34] = \"PRI\";\n /* RFC-2326 RTSP */\n METHODS[METHODS[\"DESCRIBE\"] = 35] = \"DESCRIBE\";\n METHODS[METHODS[\"ANNOUNCE\"] = 36] = \"ANNOUNCE\";\n METHODS[METHODS[\"SETUP\"] = 37] = \"SETUP\";\n METHODS[METHODS[\"PLAY\"] = 38] = \"PLAY\";\n METHODS[METHODS[\"PAUSE\"] = 39] = \"PAUSE\";\n METHODS[METHODS[\"TEARDOWN\"] = 40] = \"TEARDOWN\";\n METHODS[METHODS[\"GET_PARAMETER\"] = 41] = \"GET_PARAMETER\";\n METHODS[METHODS[\"SET_PARAMETER\"] = 42] = \"SET_PARAMETER\";\n METHODS[METHODS[\"REDIRECT\"] = 43] = \"REDIRECT\";\n METHODS[METHODS[\"RECORD\"] = 44] = \"RECORD\";\n /* RAOP */\n METHODS[METHODS[\"FLUSH\"] = 45] = \"FLUSH\";\n})(METHODS = exports.METHODS || (exports.METHODS = {}));\nexports.METHODS_HTTP = [\n METHODS.DELETE,\n METHODS.GET,\n METHODS.HEAD,\n METHODS.POST,\n METHODS.PUT,\n METHODS.CONNECT,\n METHODS.OPTIONS,\n METHODS.TRACE,\n METHODS.COPY,\n METHODS.LOCK,\n METHODS.MKCOL,\n METHODS.MOVE,\n METHODS.PROPFIND,\n METHODS.PROPPATCH,\n METHODS.SEARCH,\n METHODS.UNLOCK,\n METHODS.BIND,\n METHODS.REBIND,\n METHODS.UNBIND,\n METHODS.ACL,\n METHODS.REPORT,\n METHODS.MKACTIVITY,\n METHODS.CHECKOUT,\n METHODS.MERGE,\n METHODS['M-SEARCH'],\n METHODS.NOTIFY,\n METHODS.SUBSCRIBE,\n METHODS.UNSUBSCRIBE,\n METHODS.PATCH,\n METHODS.PURGE,\n METHODS.MKCALENDAR,\n METHODS.LINK,\n METHODS.UNLINK,\n METHODS.PRI,\n // TODO(indutny): should we allow it with HTTP?\n METHODS.SOURCE,\n];\nexports.METHODS_ICE = [\n METHODS.SOURCE,\n];\nexports.METHODS_RTSP = [\n METHODS.OPTIONS,\n METHODS.DESCRIBE,\n METHODS.ANNOUNCE,\n METHODS.SETUP,\n METHODS.PLAY,\n METHODS.PAUSE,\n METHODS.TEARDOWN,\n METHODS.GET_PARAMETER,\n METHODS.SET_PARAMETER,\n METHODS.REDIRECT,\n METHODS.RECORD,\n METHODS.FLUSH,\n // For AirPlay\n METHODS.GET,\n METHODS.POST,\n];\nexports.METHOD_MAP = utils_1.enumToMap(METHODS);\nexports.H_METHOD_MAP = {};\nObject.keys(exports.METHOD_MAP).forEach((key) => {\n if (/^H/.test(key)) {\n exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n }\n});\nvar FINISH;\n(function (FINISH) {\n FINISH[FINISH[\"SAFE\"] = 0] = \"SAFE\";\n FINISH[FINISH[\"SAFE_WITH_CB\"] = 1] = \"SAFE_WITH_CB\";\n FINISH[FINISH[\"UNSAFE\"] = 2] = \"UNSAFE\";\n})(FINISH = exports.FINISH || (exports.FINISH = {}));\nexports.ALPHA = [];\nfor (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n // Upper case\n exports.ALPHA.push(String.fromCharCode(i));\n // Lower case\n exports.ALPHA.push(String.fromCharCode(i + 0x20));\n}\nexports.NUM_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n};\nexports.HEX_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF,\n a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf,\n};\nexports.NUM = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n];\nexports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\nexports.MARK = ['-', '_', '.', '!', '~', '*', '\\'', '(', ')'];\nexports.USERINFO_CHARS = exports.ALPHANUM\n .concat(exports.MARK)\n .concat(['%', ';', ':', '&', '=', '+', '$', ',']);\n// TODO(indutny): use RFC\nexports.STRICT_URL_CHAR = [\n '!', '\"', '$', '%', '&', '\\'',\n '(', ')', '*', '+', ',', '-', '.', '/',\n ':', ';', '<', '=', '>',\n '@', '[', '\\\\', ']', '^', '_',\n '`',\n '{', '|', '}', '~',\n].concat(exports.ALPHANUM);\nexports.URL_CHAR = exports.STRICT_URL_CHAR\n .concat(['\\t', '\\f']);\n// All characters with 0x80 bit set to 1\nfor (let i = 0x80; i <= 0xff; i++) {\n exports.URL_CHAR.push(i);\n}\nexports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);\n/* Tokens as defined by rfc 2616. Also lowercases them.\n * token = 1*\n * separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n * | \",\" | \";\" | \":\" | \"\\\" | <\">\n * | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n * | \"{\" | \"}\" | SP | HT\n */\nexports.STRICT_TOKEN = [\n '!', '#', '$', '%', '&', '\\'',\n '*', '+', '-', '.',\n '^', '_', '`',\n '|', '~',\n].concat(exports.ALPHANUM);\nexports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n/*\n * Verify that a char is a valid visible (printable) US-ASCII\n * character or %x80-FF\n */\nexports.HEADER_CHARS = ['\\t'];\nfor (let i = 32; i <= 255; i++) {\n if (i !== 127) {\n exports.HEADER_CHARS.push(i);\n }\n}\n// ',' = \\x44\nexports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\nexports.MAJOR = exports.NUM_MAP;\nexports.MINOR = exports.MAJOR;\nvar HEADER_STATE;\n(function (HEADER_STATE) {\n HEADER_STATE[HEADER_STATE[\"GENERAL\"] = 0] = \"GENERAL\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION\"] = 1] = \"CONNECTION\";\n HEADER_STATE[HEADER_STATE[\"CONTENT_LENGTH\"] = 2] = \"CONTENT_LENGTH\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING\"] = 3] = \"TRANSFER_ENCODING\";\n HEADER_STATE[HEADER_STATE[\"UPGRADE\"] = 4] = \"UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_KEEP_ALIVE\"] = 5] = \"CONNECTION_KEEP_ALIVE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_CLOSE\"] = 6] = \"CONNECTION_CLOSE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_UPGRADE\"] = 7] = \"CONNECTION_UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING_CHUNKED\"] = 8] = \"TRANSFER_ENCODING_CHUNKED\";\n})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\nexports.SPECIAL_HEADERS = {\n 'connection': HEADER_STATE.CONNECTION,\n 'content-length': HEADER_STATE.CONTENT_LENGTH,\n 'proxy-connection': HEADER_STATE.CONNECTION,\n 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,\n 'upgrade': HEADER_STATE.UPGRADE,\n};\n//# sourceMappingURL=constants.js.map","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumToMap = void 0;\nfunction enumToMap(obj) {\n const res = {};\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (typeof value === 'number') {\n res[key] = value;\n }\n });\n return res;\n}\nexports.enumToMap = enumToMap;\n//# sourceMappingURL=utils.js.map","'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n","'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n","'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n","'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n","'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n","'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n","'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n","'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(…)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '✅' : '❌',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n","'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n","/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n","'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n","const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n","'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n allowH2,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect, allowH2 }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n\n this.on('connectionError', (origin, targets, error) => {\n // If a connection error occurs, we remove the client from the pool,\n // and emit a connectionError event. They will not be re-used.\n // Fixes https://github.com/nodejs/undici/issues/3895\n for (const target of targets) {\n // Do not use kRemoveClient here, as it will close the client,\n // but the client cannot be closed in this state.\n const idx = this[kClients].indexOf(target)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n }\n })\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n","'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host, username, password } = resolvedUrl\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n } else if (username && password) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`\n }\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n","'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n","'use strict'\n\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url’s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request’s header list.\n // 4. Append (`Connection`, `Upgrade`) to request’s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request’s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request’s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response’s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n","'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n","'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = crypto.randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n","'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik \n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n","'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n","'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event’s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object’s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { getGlobalOrigin } = require('../fetch/global')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let baseURL be this's relevant settings object's API base URL.\n const baseURL = getGlobalOrigin()\n\n // 1. Let urlRecord be the result of applying the URL parser to url with baseURL.\n let urlRecord\n\n try {\n urlRecord = new URL(url, baseURL)\n } catch (e) {\n // 3. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 4. If urlRecord’s scheme is \"http\", then set urlRecord’s scheme to \"ws\".\n if (urlRecord.protocol === 'http:') {\n urlRecord.protocol = 'ws:'\n } else if (urlRecord.protocol === 'https:') {\n // 5. Otherwise, if urlRecord’s scheme is \"https\", set urlRecord’s scheme to \"wss\".\n urlRecord.protocol = 'wss:'\n }\n\n // 6. If urlRecord’s scheme is not \"ws\" or \"wss\", then throw a \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 7. If urlRecord’s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash || urlRecord.href.endsWith('#')) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 8. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 9. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 10. Set this's url to urlRecord.\n this[kWebSocketURL] = new URL(urlRecord.href)\n\n // 11. Let client be this's relevant settings object.\n\n // 12. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data’s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object’s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response’s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute’s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute’s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && process.version !== undefined) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","'use strict'\n\nexports.fromCallback = function (fn) {\n return Object.defineProperty(function (...args) {\n if (typeof args[args.length - 1] === 'function') fn.apply(this, args)\n else {\n return new Promise((resolve, reject) => {\n args.push((err, res) => (err != null) ? reject(err) : resolve(res))\n fn.apply(this, args)\n })\n }\n }, 'name', { value: fn.name })\n}\n\nexports.fromPromise = function (fn) {\n return Object.defineProperty(function (...args) {\n const cb = args[args.length - 1]\n if (typeof cb !== 'function') return fn.apply(this, args)\n else {\n args.pop()\n fn.apply(this, args).then(r => cb(null, r), cb)\n }\n }, 'name', { value: fn.name })\n}\n","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","'use strict';\nconst stringWidth = require('string-width');\nconst stripAnsi = require('strip-ansi');\nconst ansiStyles = require('ansi-styles');\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B'\n]);\n\nconst END_CODE = 39;\n\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsi = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows[rows.length - 1]));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\t\t\tisInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode\n//\n// 'hard' will never allow a string to take up more than columns characters\n//\n// 'soft' allows long words to expand past the column length\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows[rows.length - 1].trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows[rows.length - 1]);\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(stringVisibleTrimSpacesRight);\n\t}\n\n\tconst pre = [...rows.join('\\n')];\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsi(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsi(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nmodule.exports = (string, columns, options) => {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replace(/\\r\\n/g, '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n};\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\n\t\t// TODO: Remove this when targeting Node.js 12.\n\t\tthis.next = undefined;\n\t}\n}\n\nclass Queue {\n\t// TODO: Use private class fields when targeting Node.js 12.\n\t// #_head;\n\t// #_tail;\n\t// #_size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this._head) {\n\t\t\tthis._tail.next = node;\n\t\t\tthis._tail = node;\n\t\t} else {\n\t\t\tthis._head = node;\n\t\t\tthis._tail = node;\n\t\t}\n\n\t\tthis._size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this._head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._head = this._head.next;\n\t\tthis._size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t}\n\n\tget size() {\n\t\treturn this._size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this._head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n\nmodule.exports = Queue;\n","/**\n * ZipStream\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE}\n * @copyright (c) 2014 Chris Talkington, contributors.\n */\nvar inherits = require('util').inherits;\n\nvar ZipArchiveOutputStream = require('compress-commons').ZipArchiveOutputStream;\nvar ZipArchiveEntry = require('compress-commons').ZipArchiveEntry;\n\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @extends external:ZipArchiveOutputStream\n * @param {Object} [options]\n * @param {String} [options.comment] Sets the zip archive comment.\n * @param {Boolean} [options.forceLocalTime=false] Forces the archive to contain local file times instead of UTC.\n * @param {Boolean} [options.forceZip64=false] Forces the archive to contain ZIP64 headers.\n * @param {Boolean} [options.store=false] Sets the compression method to STORE.\n * @param {Object} [options.zlib] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n * to control compression.\n */\nvar ZipStream = module.exports = function(options) {\n if (!(this instanceof ZipStream)) {\n return new ZipStream(options);\n }\n\n options = this.options = options || {};\n options.zlib = options.zlib || {};\n\n ZipArchiveOutputStream.call(this, options);\n\n if (typeof options.level === 'number' && options.level >= 0) {\n options.zlib.level = options.level;\n delete options.level;\n }\n\n if (!options.forceZip64 && typeof options.zlib.level === 'number' && options.zlib.level === 0) {\n options.store = true;\n }\n\n options.namePrependSlash = options.namePrependSlash || false;\n\n if (options.comment && options.comment.length > 0) {\n this.setComment(options.comment);\n }\n};\n\ninherits(ZipStream, ZipArchiveOutputStream);\n\n/**\n * Normalizes entry data with fallbacks for key properties.\n *\n * @private\n * @param {Object} data\n * @return {Object}\n */\nZipStream.prototype._normalizeFileData = function(data) {\n data = util.defaults(data, {\n type: 'file',\n name: null,\n namePrependSlash: this.options.namePrependSlash,\n linkname: null,\n date: null,\n mode: null,\n store: this.options.store,\n comment: ''\n });\n\n var isDir = data.type === 'directory';\n var isSymlink = data.type === 'symlink';\n\n if (data.name) {\n data.name = util.sanitizePath(data.name);\n\n if (!isSymlink && data.name.slice(-1) === '/') {\n isDir = true;\n data.type = 'directory';\n } else if (isDir) {\n data.name += '/';\n }\n }\n\n if (isDir || isSymlink) {\n data.store = true;\n }\n\n data.date = util.dateify(data.date);\n\n return data;\n};\n\n/**\n * Appends an entry given an input source (text string, buffer, or stream).\n *\n * @param {(Buffer|Stream|String)} source The input source.\n * @param {Object} data\n * @param {String} data.name Sets the entry name including internal path.\n * @param {String} [data.comment] Sets the entry comment.\n * @param {(String|Date)} [data.date=NOW()] Sets the entry date.\n * @param {Number} [data.mode=D:0755/F:0644] Sets the entry permissions.\n * @param {Boolean} [data.store=options.store] Sets the compression method to STORE.\n * @param {String} [data.type=file] Sets the entry type. Defaults to `directory`\n * if name ends with trailing slash.\n * @param {Function} callback\n * @return this\n */\nZipStream.prototype.entry = function(source, data, callback) {\n if (typeof callback !== 'function') {\n callback = this._emitErrorCallback.bind(this);\n }\n\n data = this._normalizeFileData(data);\n\n if (data.type !== 'file' && data.type !== 'directory' && data.type !== 'symlink') {\n callback(new Error(data.type + ' entries not currently supported'));\n return;\n }\n\n if (typeof data.name !== 'string' || data.name.length === 0) {\n callback(new Error('entry name must be a non-empty string value'));\n return;\n }\n\n if (data.type === 'symlink' && typeof data.linkname !== 'string') {\n callback(new Error('entry linkname must be a non-empty string value when type equals symlink'));\n return;\n }\n\n var entry = new ZipArchiveEntry(data.name);\n entry.setTime(data.date, this.options.forceLocalTime);\n\n if (data.namePrependSlash) {\n entry.setName(data.name, true);\n }\n\n if (data.store) {\n entry.setMethod(0);\n }\n\n if (data.comment.length > 0) {\n entry.setComment(data.comment);\n }\n\n if (data.type === 'symlink' && typeof data.mode !== 'number') {\n data.mode = 40960; // 0120000\n }\n\n if (typeof data.mode === 'number') {\n if (data.type === 'symlink') {\n data.mode |= 40960;\n }\n\n entry.setUnixMode(data.mode);\n }\n\n if (data.type === 'symlink' && typeof data.linkname === 'string') {\n source = Buffer.from(data.linkname);\n }\n\n return ZipArchiveOutputStream.prototype.entry.call(this, entry, source, callback);\n};\n\n/**\n * Finalizes the instance and prevents further appending to the archive\n * structure (queue will continue til drained).\n *\n * @return void\n */\nZipStream.prototype.finalize = function() {\n this.finish();\n};\n\n/**\n * Returns the current number of bytes written to this stream.\n * @function ZipStream#getBytesWritten\n * @returns {Number}\n */\n\n/**\n * Compress Commons ZipArchiveOutputStream\n * @external ZipArchiveOutputStream\n * @see {@link https://github.com/archiverjs/node-compress-commons}\n */\n","module.exports = require(\"assert\");","module.exports = require(\"async_hooks\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"console\");","module.exports = require(\"constants\");","module.exports = require(\"crypto\");","module.exports = require(\"diagnostics_channel\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"fs/promises\");","module.exports = require(\"http\");","module.exports = require(\"http2\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:async_hooks\");","module.exports = require(\"node:child_process\");","module.exports = require(\"node:crypto\");","module.exports = require(\"node:events\");","module.exports = require(\"node:fs\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"node:http\");","module.exports = require(\"node:http2\");","module.exports = require(\"node:https\");","module.exports = require(\"node:os\");","module.exports = require(\"node:path\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream\");","module.exports = require(\"node:string_decoder\");","module.exports = require(\"node:url\");","module.exports = require(\"node:util\");","module.exports = require(\"node:zlib\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"perf_hooks\");","module.exports = require(\"process\");","module.exports = require(\"querystring\");","module.exports = require(\"stream\");","module.exports = require(\"stream/web\");","module.exports = require(\"string_decoder\");","module.exports = require(\"timers\");","module.exports = require(\"tls\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"util/types\");","module.exports = require(\"worker_threads\");","module.exports = require(\"zlib\");","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst inherits = require('node:util').inherits\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst PartStream = require('./PartStream')\nconst HeaderParser = require('./HeaderParser')\n\nconst DASH = 45\nconst B_ONEDASH = Buffer.from('-')\nconst B_CRLF = Buffer.from('\\r\\n')\nconst EMPTY_FN = function () {}\n\nfunction Dicer (cfg) {\n if (!(this instanceof Dicer)) { return new Dicer(cfg) }\n WritableStream.call(this, cfg)\n\n if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') }\n\n if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined }\n\n this._headerFirst = cfg.headerFirst\n\n this._dashes = 0\n this._parts = 0\n this._finished = false\n this._realFinish = false\n this._isPreamble = true\n this._justMatched = false\n this._firstWrite = true\n this._inHeader = true\n this._part = undefined\n this._cb = undefined\n this._ignoreData = false\n this._partOpts = { highWaterMark: cfg.partHwm }\n this._pause = false\n\n const self = this\n this._hparser = new HeaderParser(cfg)\n this._hparser.on('header', function (header) {\n self._inHeader = false\n self._part.emit('header', header)\n })\n}\ninherits(Dicer, WritableStream)\n\nDicer.prototype.emit = function (ev) {\n if (ev === 'finish' && !this._realFinish) {\n if (!this._finished) {\n const self = this\n process.nextTick(function () {\n self.emit('error', new Error('Unexpected end of multipart data'))\n if (self._part && !self._ignoreData) {\n const type = (self._isPreamble ? 'Preamble' : 'Part')\n self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data'))\n self._part.push(null)\n process.nextTick(function () {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n return\n }\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n }\n } else { WritableStream.prototype.emit.apply(this, arguments) }\n}\n\nDicer.prototype._write = function (data, encoding, cb) {\n // ignore unexpected data (e.g. extra trailer data after finished)\n if (!this._hparser && !this._bparser) { return cb() }\n\n if (this._headerFirst && this._isPreamble) {\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() }\n }\n const r = this._hparser.push(data)\n if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() }\n }\n\n // allows for \"easier\" testing\n if (this._firstWrite) {\n this._bparser.push(B_CRLF)\n this._firstWrite = false\n }\n\n this._bparser.push(data)\n\n if (this._pause) { this._cb = cb } else { cb() }\n}\n\nDicer.prototype.reset = function () {\n this._part = undefined\n this._bparser = undefined\n this._hparser = undefined\n}\n\nDicer.prototype.setBoundary = function (boundary) {\n const self = this\n this._bparser = new StreamSearch('\\r\\n--' + boundary)\n this._bparser.on('info', function (isMatch, data, start, end) {\n self._oninfo(isMatch, data, start, end)\n })\n}\n\nDicer.prototype._ignore = function () {\n if (this._part && !this._ignoreData) {\n this._ignoreData = true\n this._part.on('error', EMPTY_FN)\n // we must perform some kind of read on the stream even though we are\n // ignoring the data, otherwise node's Readable stream will not emit 'end'\n // after pushing null to the stream\n this._part.resume()\n }\n}\n\nDicer.prototype._oninfo = function (isMatch, data, start, end) {\n let buf; const self = this; let i = 0; let r; let shouldWriteMore = true\n\n if (!this._part && this._justMatched && data) {\n while (this._dashes < 2 && (start + i) < end) {\n if (data[start + i] === DASH) {\n ++i\n ++this._dashes\n } else {\n if (this._dashes) { buf = B_ONEDASH }\n this._dashes = 0\n break\n }\n }\n if (this._dashes === 2) {\n if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) }\n this.reset()\n this._finished = true\n // no more parts will be added\n if (self._parts === 0) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n }\n }\n if (this._dashes) { return }\n }\n if (this._justMatched) { this._justMatched = false }\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n this._part._read = function (n) {\n self._unpause()\n }\n if (this._isPreamble && this.listenerCount('preamble') !== 0) {\n this.emit('preamble', this._part)\n } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) {\n this.emit('part', this._part)\n } else {\n this._ignore()\n }\n if (!this._isPreamble) { this._inHeader = true }\n }\n if (data && start < end && !this._ignoreData) {\n if (this._isPreamble || !this._inHeader) {\n if (buf) { shouldWriteMore = this._part.push(buf) }\n shouldWriteMore = this._part.push(data.slice(start, end))\n if (!shouldWriteMore) { this._pause = true }\n } else if (!this._isPreamble && this._inHeader) {\n if (buf) { this._hparser.push(buf) }\n r = this._hparser.push(data.slice(start, end))\n if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) }\n }\n }\n if (isMatch) {\n this._hparser.reset()\n if (this._isPreamble) { this._isPreamble = false } else {\n if (start !== end) {\n ++this._parts\n this._part.on('end', function () {\n if (--self._parts === 0) {\n if (self._finished) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n } else {\n self._unpause()\n }\n }\n })\n }\n }\n this._part.push(null)\n this._part = undefined\n this._ignoreData = false\n this._justMatched = true\n this._dashes = 0\n }\n}\n\nDicer.prototype._unpause = function () {\n if (!this._pause) { return }\n\n this._pause = false\n if (this._cb) {\n const cb = this._cb\n this._cb = undefined\n cb()\n }\n}\n\nmodule.exports = Dicer\n","'use strict'\n\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\nconst getLimit = require('../../../lib/utils/getLimit')\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst B_DCRLF = Buffer.from('\\r\\n\\r\\n')\nconst RE_CRLF = /\\r\\n/g\nconst RE_HDR = /^([^:]+):[ \\t]?([\\x00-\\xFF]+)?$/ // eslint-disable-line no-control-regex\n\nfunction HeaderParser (cfg) {\n EventEmitter.call(this)\n\n cfg = cfg || {}\n const self = this\n this.nread = 0\n this.maxed = false\n this.npairs = 0\n this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000)\n this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024)\n this.buffer = ''\n this.header = {}\n this.finished = false\n this.ss = new StreamSearch(B_DCRLF)\n this.ss.on('info', function (isMatch, data, start, end) {\n if (data && !self.maxed) {\n if (self.nread + end - start >= self.maxHeaderSize) {\n end = self.maxHeaderSize - self.nread + start\n self.nread = self.maxHeaderSize\n self.maxed = true\n } else { self.nread += (end - start) }\n\n self.buffer += data.toString('binary', start, end)\n }\n if (isMatch) { self._finish() }\n })\n}\ninherits(HeaderParser, EventEmitter)\n\nHeaderParser.prototype.push = function (data) {\n const r = this.ss.push(data)\n if (this.finished) { return r }\n}\n\nHeaderParser.prototype.reset = function () {\n this.finished = false\n this.buffer = ''\n this.header = {}\n this.ss.reset()\n}\n\nHeaderParser.prototype._finish = function () {\n if (this.buffer) { this._parseHeader() }\n this.ss.matches = this.ss.maxMatches\n const header = this.header\n this.header = {}\n this.buffer = ''\n this.finished = true\n this.nread = this.npairs = 0\n this.maxed = false\n this.emit('header', header)\n}\n\nHeaderParser.prototype._parseHeader = function () {\n if (this.npairs === this.maxHeaderPairs) { return }\n\n const lines = this.buffer.split(RE_CRLF)\n const len = lines.length\n let m, h\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (lines[i].length === 0) { continue }\n if (lines[i][0] === '\\t' || lines[i][0] === ' ') {\n // folded header content\n // RFC2822 says to just remove the CRLF and not the whitespace following\n // it, so we follow the RFC and include the leading whitespace ...\n if (h) {\n this.header[h][this.header[h].length - 1] += lines[i]\n continue\n }\n }\n\n const posColon = lines[i].indexOf(':')\n if (\n posColon === -1 ||\n posColon === 0\n ) {\n return\n }\n m = RE_HDR.exec(lines[i])\n h = m[1].toLowerCase()\n this.header[h] = this.header[h] || []\n this.header[h].push((m[2] || ''))\n if (++this.npairs === this.maxHeaderPairs) { break }\n }\n}\n\nmodule.exports = HeaderParser\n","'use strict'\n\nconst inherits = require('node:util').inherits\nconst ReadableStream = require('node:stream').Readable\n\nfunction PartStream (opts) {\n ReadableStream.call(this, opts)\n}\ninherits(PartStream, ReadableStream)\n\nPartStream.prototype._read = function (n) {}\n\nmodule.exports = PartStream\n","'use strict'\n\n/**\n * Copyright Brian White. All rights reserved.\n *\n * @see https://github.com/mscdex/streamsearch\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n */\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\n\nfunction SBMH (needle) {\n if (typeof needle === 'string') {\n needle = Buffer.from(needle)\n }\n\n if (!Buffer.isBuffer(needle)) {\n throw new TypeError('The needle has to be a String or a Buffer.')\n }\n\n const needleLength = needle.length\n\n if (needleLength === 0) {\n throw new Error('The needle cannot be an empty String/Buffer.')\n }\n\n if (needleLength > 256) {\n throw new Error('The needle cannot have a length bigger than 256.')\n }\n\n this.maxMatches = Infinity\n this.matches = 0\n\n this._occ = new Array(256)\n .fill(needleLength) // Initialize occurrence table.\n this._lookbehind_size = 0\n this._needle = needle\n this._bufpos = 0\n\n this._lookbehind = Buffer.alloc(needleLength)\n\n // Populate occurrence table with analysis of the needle,\n // ignoring last letter.\n for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var\n this._occ[needle[i]] = needleLength - 1 - i\n }\n}\ninherits(SBMH, EventEmitter)\n\nSBMH.prototype.reset = function () {\n this._lookbehind_size = 0\n this.matches = 0\n this._bufpos = 0\n}\n\nSBMH.prototype.push = function (chunk, pos) {\n if (!Buffer.isBuffer(chunk)) {\n chunk = Buffer.from(chunk, 'binary')\n }\n const chlen = chunk.length\n this._bufpos = pos || 0\n let r\n while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) }\n return r\n}\n\nSBMH.prototype._sbmh_feed = function (data) {\n const len = data.length\n const needle = this._needle\n const needleLength = needle.length\n const lastNeedleChar = needle[needleLength - 1]\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehind_size - 2]\n let pos = -this._lookbehind_size\n let ch\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= len - needleLength) {\n ch = this._sbmh_lookup_char(data, pos + needleLength - 1)\n\n if (\n ch === lastNeedleChar &&\n this._sbmh_memcmp(data, pos, needleLength - 1)\n ) {\n this._lookbehind_size = 0\n ++this.matches\n this.emit('info', true)\n\n return (this._bufpos = pos + needleLength)\n }\n pos += this._occ[ch]\n }\n\n // No match.\n\n if (pos < 0) {\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos }\n }\n\n if (pos >= 0) {\n // Discard lookbehind buffer.\n this.emit('info', false, this._lookbehind, 0, this._lookbehind_size)\n this._lookbehind_size = 0\n } else {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = this._lookbehind_size + pos\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n this.emit('info', false, this._lookbehind, 0, bytesToCutOff)\n }\n\n this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff,\n this._lookbehind_size - bytesToCutOff)\n this._lookbehind_size -= bytesToCutOff\n\n data.copy(this._lookbehind, this._lookbehind_size)\n this._lookbehind_size += len\n\n this._bufpos = len\n return len\n }\n }\n\n pos += (pos >= 0) * this._bufpos\n\n // Lookbehind buffer is now empty. We only need to check if the\n // needle is in the haystack.\n if (data.indexOf(needle, pos) !== -1) {\n pos = data.indexOf(needle, pos)\n ++this.matches\n if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) }\n\n return (this._bufpos = pos + needleLength)\n } else {\n pos = len - needleLength\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (\n pos < len &&\n (\n data[pos] !== needle[0] ||\n (\n (Buffer.compare(\n data.subarray(pos, pos + len - pos),\n needle.subarray(0, len - pos)\n ) !== 0)\n )\n )\n ) {\n ++pos\n }\n if (pos < len) {\n data.copy(this._lookbehind, 0, pos, pos + (len - pos))\n this._lookbehind_size = len - pos\n }\n\n // Everything until pos is guaranteed not to contain needle data.\n if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) }\n\n this._bufpos = len\n return len\n}\n\nSBMH.prototype._sbmh_lookup_char = function (data, pos) {\n return (pos < 0)\n ? this._lookbehind[this._lookbehind_size + pos]\n : data[pos]\n}\n\nSBMH.prototype._sbmh_memcmp = function (data, pos, len) {\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false }\n }\n return true\n}\n\nmodule.exports = SBMH\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst { inherits } = require('node:util')\nconst Dicer = require('../deps/dicer/lib/Dicer')\n\nconst MultipartParser = require('./types/multipart')\nconst UrlencodedParser = require('./types/urlencoded')\nconst parseParams = require('./utils/parseParams')\n\nfunction Busboy (opts) {\n if (!(this instanceof Busboy)) { return new Busboy(opts) }\n\n if (typeof opts !== 'object') {\n throw new TypeError('Busboy expected an options-Object.')\n }\n if (typeof opts.headers !== 'object') {\n throw new TypeError('Busboy expected an options-Object with headers-attribute.')\n }\n if (typeof opts.headers['content-type'] !== 'string') {\n throw new TypeError('Missing Content-Type-header.')\n }\n\n const {\n headers,\n ...streamOptions\n } = opts\n\n this.opts = {\n autoDestroy: false,\n ...streamOptions\n }\n WritableStream.call(this, this.opts)\n\n this._done = false\n this._parser = this.getParserByHeaders(headers)\n this._finished = false\n}\ninherits(Busboy, WritableStream)\n\nBusboy.prototype.emit = function (ev) {\n if (ev === 'finish') {\n if (!this._done) {\n this._parser?.end()\n return\n } else if (this._finished) {\n return\n }\n this._finished = true\n }\n WritableStream.prototype.emit.apply(this, arguments)\n}\n\nBusboy.prototype.getParserByHeaders = function (headers) {\n const parsed = parseParams(headers['content-type'])\n\n const cfg = {\n defCharset: this.opts.defCharset,\n fileHwm: this.opts.fileHwm,\n headers,\n highWaterMark: this.opts.highWaterMark,\n isPartAFile: this.opts.isPartAFile,\n limits: this.opts.limits,\n parsedConType: parsed,\n preservePath: this.opts.preservePath\n }\n\n if (MultipartParser.detect.test(parsed[0])) {\n return new MultipartParser(this, cfg)\n }\n if (UrlencodedParser.detect.test(parsed[0])) {\n return new UrlencodedParser(this, cfg)\n }\n throw new Error('Unsupported Content-Type.')\n}\n\nBusboy.prototype._write = function (chunk, encoding, cb) {\n this._parser.write(chunk, cb)\n}\n\nmodule.exports = Busboy\nmodule.exports.default = Busboy\nmodule.exports.Busboy = Busboy\n\nmodule.exports.Dicer = Dicer\n","'use strict'\n\n// TODO:\n// * support 1 nested multipart level\n// (see second multipart example here:\n// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)\n// * support limits.fieldNameSize\n// -- this will require modifications to utils.parseParams\n\nconst { Readable } = require('node:stream')\nconst { inherits } = require('node:util')\n\nconst Dicer = require('../../deps/dicer/lib/Dicer')\n\nconst parseParams = require('../utils/parseParams')\nconst decodeText = require('../utils/decodeText')\nconst basename = require('../utils/basename')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_BOUNDARY = /^boundary$/i\nconst RE_FIELD = /^form-data$/i\nconst RE_CHARSET = /^charset$/i\nconst RE_FILENAME = /^filename$/i\nconst RE_NAME = /^name$/i\n\nMultipart.detect = /^multipart\\/form-data/i\nfunction Multipart (boy, cfg) {\n let i\n let len\n const self = this\n let boundary\n const limits = cfg.limits\n const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined))\n const parsedConType = cfg.parsedConType || []\n const defCharset = cfg.defCharset || 'utf8'\n const preservePath = cfg.preservePath\n const fileOpts = { highWaterMark: cfg.fileHwm }\n\n for (i = 0, len = parsedConType.length; i < len; ++i) {\n if (Array.isArray(parsedConType[i]) &&\n RE_BOUNDARY.test(parsedConType[i][0])) {\n boundary = parsedConType[i][1]\n break\n }\n }\n\n function checkFinished () {\n if (nends === 0 && finished && !boy._done) {\n finished = false\n self.end()\n }\n }\n\n if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') }\n\n const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n const fileSizeLimit = getLimit(limits, 'fileSize', Infinity)\n const filesLimit = getLimit(limits, 'files', Infinity)\n const fieldsLimit = getLimit(limits, 'fields', Infinity)\n const partsLimit = getLimit(limits, 'parts', Infinity)\n const headerPairsLimit = getLimit(limits, 'headerPairs', 2000)\n const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024)\n\n let nfiles = 0\n let nfields = 0\n let nends = 0\n let curFile\n let curField\n let finished = false\n\n this._needDrain = false\n this._pause = false\n this._cb = undefined\n this._nparts = 0\n this._boy = boy\n\n const parserCfg = {\n boundary,\n maxHeaderPairs: headerPairsLimit,\n maxHeaderSize: headerSizeLimit,\n partHwm: fileOpts.highWaterMark,\n highWaterMark: cfg.highWaterMark\n }\n\n this.parser = new Dicer(parserCfg)\n this.parser.on('drain', function () {\n self._needDrain = false\n if (self._cb && !self._pause) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }).on('part', function onPart (part) {\n if (++self._nparts > partsLimit) {\n self.parser.removeListener('part', onPart)\n self.parser.on('part', skipPart)\n boy.hitPartsLimit = true\n boy.emit('partsLimit')\n return skipPart(part)\n }\n\n // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let\n // us emit 'end' early since we know the part has ended if we are already\n // seeing the next part\n if (curField) {\n const field = curField\n field.emit('end')\n field.removeAllListeners('end')\n }\n\n part.on('header', function (header) {\n let contype\n let fieldname\n let parsed\n let charset\n let encoding\n let filename\n let nsize = 0\n\n if (header['content-type']) {\n parsed = parseParams(header['content-type'][0])\n if (parsed[0]) {\n contype = parsed[0].toLowerCase()\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_CHARSET.test(parsed[i][0])) {\n charset = parsed[i][1].toLowerCase()\n break\n }\n }\n }\n }\n\n if (contype === undefined) { contype = 'text/plain' }\n if (charset === undefined) { charset = defCharset }\n\n if (header['content-disposition']) {\n parsed = parseParams(header['content-disposition'][0])\n if (!RE_FIELD.test(parsed[0])) { return skipPart(part) }\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_NAME.test(parsed[i][0])) {\n fieldname = parsed[i][1]\n } else if (RE_FILENAME.test(parsed[i][0])) {\n filename = parsed[i][1]\n if (!preservePath) { filename = basename(filename) }\n }\n }\n } else { return skipPart(part) }\n\n if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' }\n\n let onData,\n onEnd\n\n if (isPartAFile(fieldname, contype, filename)) {\n // file/binary field\n if (nfiles === filesLimit) {\n if (!boy.hitFilesLimit) {\n boy.hitFilesLimit = true\n boy.emit('filesLimit')\n }\n return skipPart(part)\n }\n\n ++nfiles\n\n if (boy.listenerCount('file') === 0) {\n self.parser._ignore()\n return\n }\n\n ++nends\n const file = new FileStream(fileOpts)\n curFile = file\n file.on('end', function () {\n --nends\n self._pause = false\n checkFinished()\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n })\n file._read = function (n) {\n if (!self._pause) { return }\n self._pause = false\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }\n boy.emit('file', fieldname, file, filename, encoding, contype)\n\n onData = function (data) {\n if ((nsize += data.length) > fileSizeLimit) {\n const extralen = fileSizeLimit - nsize + data.length\n if (extralen > 0) { file.push(data.slice(0, extralen)) }\n file.truncated = true\n file.bytesRead = fileSizeLimit\n part.removeAllListeners('data')\n file.emit('limit')\n return\n } else if (!file.push(data)) { self._pause = true }\n\n file.bytesRead = nsize\n }\n\n onEnd = function () {\n curFile = undefined\n file.push(null)\n }\n } else {\n // non-file field\n if (nfields === fieldsLimit) {\n if (!boy.hitFieldsLimit) {\n boy.hitFieldsLimit = true\n boy.emit('fieldsLimit')\n }\n return skipPart(part)\n }\n\n ++nfields\n ++nends\n let buffer = ''\n let truncated = false\n curField = part\n\n onData = function (data) {\n if ((nsize += data.length) > fieldSizeLimit) {\n const extralen = (fieldSizeLimit - (nsize - data.length))\n buffer += data.toString('binary', 0, extralen)\n truncated = true\n part.removeAllListeners('data')\n } else { buffer += data.toString('binary') }\n }\n\n onEnd = function () {\n curField = undefined\n if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) }\n boy.emit('field', fieldname, buffer, false, truncated, encoding, contype)\n --nends\n checkFinished()\n }\n }\n\n /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become\n broken. Streams2/streams3 is a huge black box of confusion, but\n somehow overriding the sync state seems to fix things again (and still\n seems to work for previous node versions).\n */\n part._readableState.sync = false\n\n part.on('data', onData)\n part.on('end', onEnd)\n }).on('error', function (err) {\n if (curFile) { curFile.emit('error', err) }\n })\n }).on('error', function (err) {\n boy.emit('error', err)\n }).on('finish', function () {\n finished = true\n checkFinished()\n })\n}\n\nMultipart.prototype.write = function (chunk, cb) {\n const r = this.parser.write(chunk)\n if (r && !this._pause) {\n cb()\n } else {\n this._needDrain = !r\n this._cb = cb\n }\n}\n\nMultipart.prototype.end = function () {\n const self = this\n\n if (self.parser.writable) {\n self.parser.end()\n } else if (!self._boy._done) {\n process.nextTick(function () {\n self._boy._done = true\n self._boy.emit('finish')\n })\n }\n}\n\nfunction skipPart (part) {\n part.resume()\n}\n\nfunction FileStream (opts) {\n Readable.call(this, opts)\n\n this.bytesRead = 0\n\n this.truncated = false\n}\n\ninherits(FileStream, Readable)\n\nFileStream.prototype._read = function (n) {}\n\nmodule.exports = Multipart\n","'use strict'\n\nconst Decoder = require('../utils/Decoder')\nconst decodeText = require('../utils/decodeText')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_CHARSET = /^charset$/i\n\nUrlEncoded.detect = /^application\\/x-www-form-urlencoded/i\nfunction UrlEncoded (boy, cfg) {\n const limits = cfg.limits\n const parsedConType = cfg.parsedConType\n this.boy = boy\n\n this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100)\n this.fieldsLimit = getLimit(limits, 'fields', Infinity)\n\n let charset\n for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var\n if (Array.isArray(parsedConType[i]) &&\n RE_CHARSET.test(parsedConType[i][0])) {\n charset = parsedConType[i][1].toLowerCase()\n break\n }\n }\n\n if (charset === undefined) { charset = cfg.defCharset || 'utf8' }\n\n this.decoder = new Decoder()\n this.charset = charset\n this._fields = 0\n this._state = 'key'\n this._checkingBytes = true\n this._bytesKey = 0\n this._bytesVal = 0\n this._key = ''\n this._val = ''\n this._keyTrunc = false\n this._valTrunc = false\n this._hitLimit = false\n}\n\nUrlEncoded.prototype.write = function (data, cb) {\n if (this._fields === this.fieldsLimit) {\n if (!this.boy.hitFieldsLimit) {\n this.boy.hitFieldsLimit = true\n this.boy.emit('fieldsLimit')\n }\n return cb()\n }\n\n let idxeq; let idxamp; let i; let p = 0; const len = data.length\n\n while (p < len) {\n if (this._state === 'key') {\n idxeq = idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x3D/* = */) {\n idxeq = i\n break\n } else if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesKey }\n }\n\n if (idxeq !== undefined) {\n // key with assignment\n if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) }\n this._state = 'val'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._val = ''\n this._bytesVal = 0\n this._valTrunc = false\n this.decoder.reset()\n\n p = idxeq + 1\n } else if (idxamp !== undefined) {\n // key with no assignment\n ++this._fields\n let key; const keyTrunc = this._keyTrunc\n if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key }\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n if (key.length) {\n this.boy.emit('field', decodeText(key, 'binary', this.charset),\n '',\n keyTrunc,\n false)\n }\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._keyTrunc = true\n }\n } else {\n if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n } else {\n idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesVal }\n }\n\n if (idxamp !== undefined) {\n ++this._fields\n if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) }\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n this._state = 'key'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._val === '' && this.fieldSizeLimit === 0) ||\n (this._bytesVal = this._val.length) === this.fieldSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._valTrunc = true\n }\n } else {\n if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n }\n }\n cb()\n}\n\nUrlEncoded.prototype.end = function () {\n if (this.boy._done) { return }\n\n if (this._state === 'key' && this._key.length > 0) {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n '',\n this._keyTrunc,\n false)\n } else if (this._state === 'val') {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n }\n this.boy._done = true\n this.boy.emit('finish')\n}\n\nmodule.exports = UrlEncoded\n","'use strict'\n\nconst RE_PLUS = /\\+/g\n\nconst HEX = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n]\n\nfunction Decoder () {\n this.buffer = undefined\n}\nDecoder.prototype.write = function (str) {\n // Replace '+' with ' ' before decoding\n str = str.replace(RE_PLUS, ' ')\n let res = ''\n let i = 0; let p = 0; const len = str.length\n for (; i < len; ++i) {\n if (this.buffer !== undefined) {\n if (!HEX[str.charCodeAt(i)]) {\n res += '%' + this.buffer\n this.buffer = undefined\n --i // retry character\n } else {\n this.buffer += str[i]\n ++p\n if (this.buffer.length === 2) {\n res += String.fromCharCode(parseInt(this.buffer, 16))\n this.buffer = undefined\n }\n }\n } else if (str[i] === '%') {\n if (i > p) {\n res += str.substring(p, i)\n p = i\n }\n this.buffer = ''\n ++p\n }\n }\n if (p < len && this.buffer === undefined) { res += str.substring(p) }\n return res\n}\nDecoder.prototype.reset = function () {\n this.buffer = undefined\n}\n\nmodule.exports = Decoder\n","'use strict'\n\nmodule.exports = function basename (path) {\n if (typeof path !== 'string') { return '' }\n for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1)\n return (path === '..' || path === '.' ? '' : path)\n }\n }\n return (path === '..' || path === '.' ? '' : path)\n}\n","'use strict'\n\n// Node has always utf-8\nconst utf8Decoder = new TextDecoder('utf-8')\nconst textDecoders = new Map([\n ['utf-8', utf8Decoder],\n ['utf8', utf8Decoder]\n])\n\nfunction getDecoder (charset) {\n let lc\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le\n case 'base64':\n return decoders.base64\n default:\n if (lc === undefined) {\n lc = true\n charset = charset.toLowerCase()\n continue\n }\n return decoders.other.bind(charset)\n }\n }\n}\n\nconst decoders = {\n utf8: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.utf8Slice(0, data.length)\n },\n\n latin1: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n return data\n }\n return data.latin1Slice(0, data.length)\n },\n\n utf16le: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.ucs2Slice(0, data.length)\n },\n\n base64: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.base64Slice(0, data.length)\n },\n\n other: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n\n if (textDecoders.has(this.toString())) {\n try {\n return textDecoders.get(this).decode(data)\n } catch {}\n }\n return typeof data === 'string'\n ? data\n : data.toString()\n }\n}\n\nfunction decodeText (text, sourceEncoding, destEncoding) {\n if (text) {\n return getDecoder(destEncoding)(text, sourceEncoding)\n }\n return text\n}\n\nmodule.exports = decodeText\n","'use strict'\n\nmodule.exports = function getLimit (limits, name, defaultLimit) {\n if (\n !limits ||\n limits[name] === undefined ||\n limits[name] === null\n ) { return defaultLimit }\n\n if (\n typeof limits[name] !== 'number' ||\n isNaN(limits[name])\n ) { throw new TypeError('Limit ' + name + ' is not a valid number') }\n\n return limits[name]\n}\n","/* eslint-disable object-property-newline */\n'use strict'\n\nconst decodeText = require('./decodeText')\n\nconst RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g\n\nconst EncodedLookup = {\n '%00': '\\x00', '%01': '\\x01', '%02': '\\x02', '%03': '\\x03', '%04': '\\x04',\n '%05': '\\x05', '%06': '\\x06', '%07': '\\x07', '%08': '\\x08', '%09': '\\x09',\n '%0a': '\\x0a', '%0A': '\\x0a', '%0b': '\\x0b', '%0B': '\\x0b', '%0c': '\\x0c',\n '%0C': '\\x0c', '%0d': '\\x0d', '%0D': '\\x0d', '%0e': '\\x0e', '%0E': '\\x0e',\n '%0f': '\\x0f', '%0F': '\\x0f', '%10': '\\x10', '%11': '\\x11', '%12': '\\x12',\n '%13': '\\x13', '%14': '\\x14', '%15': '\\x15', '%16': '\\x16', '%17': '\\x17',\n '%18': '\\x18', '%19': '\\x19', '%1a': '\\x1a', '%1A': '\\x1a', '%1b': '\\x1b',\n '%1B': '\\x1b', '%1c': '\\x1c', '%1C': '\\x1c', '%1d': '\\x1d', '%1D': '\\x1d',\n '%1e': '\\x1e', '%1E': '\\x1e', '%1f': '\\x1f', '%1F': '\\x1f', '%20': '\\x20',\n '%21': '\\x21', '%22': '\\x22', '%23': '\\x23', '%24': '\\x24', '%25': '\\x25',\n '%26': '\\x26', '%27': '\\x27', '%28': '\\x28', '%29': '\\x29', '%2a': '\\x2a',\n '%2A': '\\x2a', '%2b': '\\x2b', '%2B': '\\x2b', '%2c': '\\x2c', '%2C': '\\x2c',\n '%2d': '\\x2d', '%2D': '\\x2d', '%2e': '\\x2e', '%2E': '\\x2e', '%2f': '\\x2f',\n '%2F': '\\x2f', '%30': '\\x30', '%31': '\\x31', '%32': '\\x32', '%33': '\\x33',\n '%34': '\\x34', '%35': '\\x35', '%36': '\\x36', '%37': '\\x37', '%38': '\\x38',\n '%39': '\\x39', '%3a': '\\x3a', '%3A': '\\x3a', '%3b': '\\x3b', '%3B': '\\x3b',\n '%3c': '\\x3c', '%3C': '\\x3c', '%3d': '\\x3d', '%3D': '\\x3d', '%3e': '\\x3e',\n '%3E': '\\x3e', '%3f': '\\x3f', '%3F': '\\x3f', '%40': '\\x40', '%41': '\\x41',\n '%42': '\\x42', '%43': '\\x43', '%44': '\\x44', '%45': '\\x45', '%46': '\\x46',\n '%47': '\\x47', '%48': '\\x48', '%49': '\\x49', '%4a': '\\x4a', '%4A': '\\x4a',\n '%4b': '\\x4b', '%4B': '\\x4b', '%4c': '\\x4c', '%4C': '\\x4c', '%4d': '\\x4d',\n '%4D': '\\x4d', '%4e': '\\x4e', '%4E': '\\x4e', '%4f': '\\x4f', '%4F': '\\x4f',\n '%50': '\\x50', '%51': '\\x51', '%52': '\\x52', '%53': '\\x53', '%54': '\\x54',\n '%55': '\\x55', '%56': '\\x56', '%57': '\\x57', '%58': '\\x58', '%59': '\\x59',\n '%5a': '\\x5a', '%5A': '\\x5a', '%5b': '\\x5b', '%5B': '\\x5b', '%5c': '\\x5c',\n '%5C': '\\x5c', '%5d': '\\x5d', '%5D': '\\x5d', '%5e': '\\x5e', '%5E': '\\x5e',\n '%5f': '\\x5f', '%5F': '\\x5f', '%60': '\\x60', '%61': '\\x61', '%62': '\\x62',\n '%63': '\\x63', '%64': '\\x64', '%65': '\\x65', '%66': '\\x66', '%67': '\\x67',\n '%68': '\\x68', '%69': '\\x69', '%6a': '\\x6a', '%6A': '\\x6a', '%6b': '\\x6b',\n '%6B': '\\x6b', '%6c': '\\x6c', '%6C': '\\x6c', '%6d': '\\x6d', '%6D': '\\x6d',\n '%6e': '\\x6e', '%6E': '\\x6e', '%6f': '\\x6f', '%6F': '\\x6f', '%70': '\\x70',\n '%71': '\\x71', '%72': '\\x72', '%73': '\\x73', '%74': '\\x74', '%75': '\\x75',\n '%76': '\\x76', '%77': '\\x77', '%78': '\\x78', '%79': '\\x79', '%7a': '\\x7a',\n '%7A': '\\x7a', '%7b': '\\x7b', '%7B': '\\x7b', '%7c': '\\x7c', '%7C': '\\x7c',\n '%7d': '\\x7d', '%7D': '\\x7d', '%7e': '\\x7e', '%7E': '\\x7e', '%7f': '\\x7f',\n '%7F': '\\x7f', '%80': '\\x80', '%81': '\\x81', '%82': '\\x82', '%83': '\\x83',\n '%84': '\\x84', '%85': '\\x85', '%86': '\\x86', '%87': '\\x87', '%88': '\\x88',\n '%89': '\\x89', '%8a': '\\x8a', '%8A': '\\x8a', '%8b': '\\x8b', '%8B': '\\x8b',\n '%8c': '\\x8c', '%8C': '\\x8c', '%8d': '\\x8d', '%8D': '\\x8d', '%8e': '\\x8e',\n '%8E': '\\x8e', '%8f': '\\x8f', '%8F': '\\x8f', '%90': '\\x90', '%91': '\\x91',\n '%92': '\\x92', '%93': '\\x93', '%94': '\\x94', '%95': '\\x95', '%96': '\\x96',\n '%97': '\\x97', '%98': '\\x98', '%99': '\\x99', '%9a': '\\x9a', '%9A': '\\x9a',\n '%9b': '\\x9b', '%9B': '\\x9b', '%9c': '\\x9c', '%9C': '\\x9c', '%9d': '\\x9d',\n '%9D': '\\x9d', '%9e': '\\x9e', '%9E': '\\x9e', '%9f': '\\x9f', '%9F': '\\x9f',\n '%a0': '\\xa0', '%A0': '\\xa0', '%a1': '\\xa1', '%A1': '\\xa1', '%a2': '\\xa2',\n '%A2': '\\xa2', '%a3': '\\xa3', '%A3': '\\xa3', '%a4': '\\xa4', '%A4': '\\xa4',\n '%a5': '\\xa5', '%A5': '\\xa5', '%a6': '\\xa6', '%A6': '\\xa6', '%a7': '\\xa7',\n '%A7': '\\xa7', '%a8': '\\xa8', '%A8': '\\xa8', '%a9': '\\xa9', '%A9': '\\xa9',\n '%aa': '\\xaa', '%Aa': '\\xaa', '%aA': '\\xaa', '%AA': '\\xaa', '%ab': '\\xab',\n '%Ab': '\\xab', '%aB': '\\xab', '%AB': '\\xab', '%ac': '\\xac', '%Ac': '\\xac',\n '%aC': '\\xac', '%AC': '\\xac', '%ad': '\\xad', '%Ad': '\\xad', '%aD': '\\xad',\n '%AD': '\\xad', '%ae': '\\xae', '%Ae': '\\xae', '%aE': '\\xae', '%AE': '\\xae',\n '%af': '\\xaf', '%Af': '\\xaf', '%aF': '\\xaf', '%AF': '\\xaf', '%b0': '\\xb0',\n '%B0': '\\xb0', '%b1': '\\xb1', '%B1': '\\xb1', '%b2': '\\xb2', '%B2': '\\xb2',\n '%b3': '\\xb3', '%B3': '\\xb3', '%b4': '\\xb4', '%B4': '\\xb4', '%b5': '\\xb5',\n '%B5': '\\xb5', '%b6': '\\xb6', '%B6': '\\xb6', '%b7': '\\xb7', '%B7': '\\xb7',\n '%b8': '\\xb8', '%B8': '\\xb8', '%b9': '\\xb9', '%B9': '\\xb9', '%ba': '\\xba',\n '%Ba': '\\xba', '%bA': '\\xba', '%BA': '\\xba', '%bb': '\\xbb', '%Bb': '\\xbb',\n '%bB': '\\xbb', '%BB': '\\xbb', '%bc': '\\xbc', '%Bc': '\\xbc', '%bC': '\\xbc',\n '%BC': '\\xbc', '%bd': '\\xbd', '%Bd': '\\xbd', '%bD': '\\xbd', '%BD': '\\xbd',\n '%be': '\\xbe', '%Be': '\\xbe', '%bE': '\\xbe', '%BE': '\\xbe', '%bf': '\\xbf',\n '%Bf': '\\xbf', '%bF': '\\xbf', '%BF': '\\xbf', '%c0': '\\xc0', '%C0': '\\xc0',\n '%c1': '\\xc1', '%C1': '\\xc1', '%c2': '\\xc2', '%C2': '\\xc2', '%c3': '\\xc3',\n '%C3': '\\xc3', '%c4': '\\xc4', '%C4': '\\xc4', '%c5': '\\xc5', '%C5': '\\xc5',\n '%c6': '\\xc6', '%C6': '\\xc6', '%c7': '\\xc7', '%C7': '\\xc7', '%c8': '\\xc8',\n '%C8': '\\xc8', '%c9': '\\xc9', '%C9': '\\xc9', '%ca': '\\xca', '%Ca': '\\xca',\n '%cA': '\\xca', '%CA': '\\xca', '%cb': '\\xcb', '%Cb': '\\xcb', '%cB': '\\xcb',\n '%CB': '\\xcb', '%cc': '\\xcc', '%Cc': '\\xcc', '%cC': '\\xcc', '%CC': '\\xcc',\n '%cd': '\\xcd', '%Cd': '\\xcd', '%cD': '\\xcd', '%CD': '\\xcd', '%ce': '\\xce',\n '%Ce': '\\xce', '%cE': '\\xce', '%CE': '\\xce', '%cf': '\\xcf', '%Cf': '\\xcf',\n '%cF': '\\xcf', '%CF': '\\xcf', '%d0': '\\xd0', '%D0': '\\xd0', '%d1': '\\xd1',\n '%D1': '\\xd1', '%d2': '\\xd2', '%D2': '\\xd2', '%d3': '\\xd3', '%D3': '\\xd3',\n '%d4': '\\xd4', '%D4': '\\xd4', '%d5': '\\xd5', '%D5': '\\xd5', '%d6': '\\xd6',\n '%D6': '\\xd6', '%d7': '\\xd7', '%D7': '\\xd7', '%d8': '\\xd8', '%D8': '\\xd8',\n '%d9': '\\xd9', '%D9': '\\xd9', '%da': '\\xda', '%Da': '\\xda', '%dA': '\\xda',\n '%DA': '\\xda', '%db': '\\xdb', '%Db': '\\xdb', '%dB': '\\xdb', '%DB': '\\xdb',\n '%dc': '\\xdc', '%Dc': '\\xdc', '%dC': '\\xdc', '%DC': '\\xdc', '%dd': '\\xdd',\n '%Dd': '\\xdd', '%dD': '\\xdd', '%DD': '\\xdd', '%de': '\\xde', '%De': '\\xde',\n '%dE': '\\xde', '%DE': '\\xde', '%df': '\\xdf', '%Df': '\\xdf', '%dF': '\\xdf',\n '%DF': '\\xdf', '%e0': '\\xe0', '%E0': '\\xe0', '%e1': '\\xe1', '%E1': '\\xe1',\n '%e2': '\\xe2', '%E2': '\\xe2', '%e3': '\\xe3', '%E3': '\\xe3', '%e4': '\\xe4',\n '%E4': '\\xe4', '%e5': '\\xe5', '%E5': '\\xe5', '%e6': '\\xe6', '%E6': '\\xe6',\n '%e7': '\\xe7', '%E7': '\\xe7', '%e8': '\\xe8', '%E8': '\\xe8', '%e9': '\\xe9',\n '%E9': '\\xe9', '%ea': '\\xea', '%Ea': '\\xea', '%eA': '\\xea', '%EA': '\\xea',\n '%eb': '\\xeb', '%Eb': '\\xeb', '%eB': '\\xeb', '%EB': '\\xeb', '%ec': '\\xec',\n '%Ec': '\\xec', '%eC': '\\xec', '%EC': '\\xec', '%ed': '\\xed', '%Ed': '\\xed',\n '%eD': '\\xed', '%ED': '\\xed', '%ee': '\\xee', '%Ee': '\\xee', '%eE': '\\xee',\n '%EE': '\\xee', '%ef': '\\xef', '%Ef': '\\xef', '%eF': '\\xef', '%EF': '\\xef',\n '%f0': '\\xf0', '%F0': '\\xf0', '%f1': '\\xf1', '%F1': '\\xf1', '%f2': '\\xf2',\n '%F2': '\\xf2', '%f3': '\\xf3', '%F3': '\\xf3', '%f4': '\\xf4', '%F4': '\\xf4',\n '%f5': '\\xf5', '%F5': '\\xf5', '%f6': '\\xf6', '%F6': '\\xf6', '%f7': '\\xf7',\n '%F7': '\\xf7', '%f8': '\\xf8', '%F8': '\\xf8', '%f9': '\\xf9', '%F9': '\\xf9',\n '%fa': '\\xfa', '%Fa': '\\xfa', '%fA': '\\xfa', '%FA': '\\xfa', '%fb': '\\xfb',\n '%Fb': '\\xfb', '%fB': '\\xfb', '%FB': '\\xfb', '%fc': '\\xfc', '%Fc': '\\xfc',\n '%fC': '\\xfc', '%FC': '\\xfc', '%fd': '\\xfd', '%Fd': '\\xfd', '%fD': '\\xfd',\n '%FD': '\\xfd', '%fe': '\\xfe', '%Fe': '\\xfe', '%fE': '\\xfe', '%FE': '\\xfe',\n '%ff': '\\xff', '%Ff': '\\xff', '%fF': '\\xff', '%FF': '\\xff'\n}\n\nfunction encodedReplacer (match) {\n return EncodedLookup[match]\n}\n\nconst STATE_KEY = 0\nconst STATE_VALUE = 1\nconst STATE_CHARSET = 2\nconst STATE_LANG = 3\n\nfunction parseParams (str) {\n const res = []\n let state = STATE_KEY\n let charset = ''\n let inquote = false\n let escaping = false\n let p = 0\n let tmp = ''\n const len = str.length\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n const char = str[i]\n if (char === '\\\\' && inquote) {\n if (escaping) { escaping = false } else {\n escaping = true\n continue\n }\n } else if (char === '\"') {\n if (!escaping) {\n if (inquote) {\n inquote = false\n state = STATE_KEY\n } else { inquote = true }\n continue\n } else { escaping = false }\n } else {\n if (escaping && inquote) { tmp += '\\\\' }\n escaping = false\n if ((state === STATE_CHARSET || state === STATE_LANG) && char === \"'\") {\n if (state === STATE_CHARSET) {\n state = STATE_LANG\n charset = tmp.substring(1)\n } else { state = STATE_VALUE }\n tmp = ''\n continue\n } else if (state === STATE_KEY &&\n (char === '*' || char === '=') &&\n res.length) {\n state = char === '*'\n ? STATE_CHARSET\n : STATE_VALUE\n res[p] = [tmp, undefined]\n tmp = ''\n continue\n } else if (!inquote && char === ';') {\n state = STATE_KEY\n if (charset) {\n if (tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n }\n charset = ''\n } else if (tmp.length) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp }\n tmp = ''\n ++p\n continue\n } else if (!inquote && (char === ' ' || char === '\\t')) { continue }\n }\n tmp += char\n }\n if (charset && tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n } else if (tmp) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n\n if (res[p] === undefined) {\n if (tmp) { res[p] = tmp }\n } else { res[p][1] = tmp }\n\n return res\n}\n\nmodule.exports = parseParams\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.range = exports.balanced = void 0;\nconst balanced = (a, b, str) => {\n const ma = a instanceof RegExp ? maybeMatch(a, str) : a;\n const mb = b instanceof RegExp ? maybeMatch(b, str) : b;\n const r = ma !== null && mb != null && (0, exports.range)(ma, mb, str);\n return (r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + ma.length, r[1]),\n post: str.slice(r[1] + mb.length),\n });\n};\nexports.balanced = balanced;\nconst maybeMatch = (reg, str) => {\n const m = str.match(reg);\n return m ? m[0] : null;\n};\nconst range = (a, b, str) => {\n let begs, beg, left, right = undefined, result;\n let ai = str.indexOf(a);\n let bi = str.indexOf(b, ai + 1);\n let i = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n while (i >= 0 && !result) {\n if (i === ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n }\n else if (begs.length === 1) {\n const r = begs.pop();\n if (r !== undefined)\n result = [r, bi];\n }\n else {\n beg = begs.pop();\n if (beg !== undefined && beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i + 1);\n }\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length && right !== undefined) {\n result = [left, right];\n }\n }\n return result;\n};\nexports.range = range;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expand = expand;\nconst balanced_match_1 = require(\"@isaacs/balanced-match\");\nconst escSlash = '\\0SLASH' + Math.random() + '\\0';\nconst escOpen = '\\0OPEN' + Math.random() + '\\0';\nconst escClose = '\\0CLOSE' + Math.random() + '\\0';\nconst escComma = '\\0COMMA' + Math.random() + '\\0';\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0';\nconst escSlashPattern = new RegExp(escSlash, 'g');\nconst escOpenPattern = new RegExp(escOpen, 'g');\nconst escClosePattern = new RegExp(escClose, 'g');\nconst escCommaPattern = new RegExp(escComma, 'g');\nconst escPeriodPattern = new RegExp(escPeriod, 'g');\nconst slashPattern = /\\\\\\\\/g;\nconst openPattern = /\\\\{/g;\nconst closePattern = /\\\\}/g;\nconst commaPattern = /\\\\,/g;\nconst periodPattern = /\\\\./g;\nfunction numeric(str) {\n return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0);\n}\nfunction escapeBraces(str) {\n return str\n .replace(slashPattern, escSlash)\n .replace(openPattern, escOpen)\n .replace(closePattern, escClose)\n .replace(commaPattern, escComma)\n .replace(periodPattern, escPeriod);\n}\nfunction unescapeBraces(str) {\n return str\n .replace(escSlashPattern, '\\\\')\n .replace(escOpenPattern, '{')\n .replace(escClosePattern, '}')\n .replace(escCommaPattern, ',')\n .replace(escPeriodPattern, '.');\n}\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n */\nfunction parseCommaParts(str) {\n if (!str) {\n return [''];\n }\n const parts = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m) {\n return str.split(',');\n }\n const { pre, body, post } = m;\n const p = pre.split(',');\n p[p.length - 1] += '{' + body + '}';\n const postParts = parseCommaParts(post);\n if (post.length) {\n ;\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n parts.push.apply(parts, p);\n return parts;\n}\nfunction expand(str) {\n if (!str) {\n return [];\n }\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.slice(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.slice(2);\n }\n return expand_(escapeBraces(str), true).map(unescapeBraces);\n}\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\nfunction expand_(str, isTop) {\n /** @type {string[]} */\n const expansions = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m)\n return [str];\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n const pre = m.pre;\n const post = m.post.length ? expand_(m.post, false) : [''];\n if (/\\$$/.test(m.pre)) {\n for (let k = 0; k < post.length; k++) {\n const expansion = pre + '{' + m.body + '}' + post[k];\n expansions.push(expansion);\n }\n }\n else {\n const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n const isSequence = isNumericSequence || isAlphaSequence;\n const isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand_(str);\n }\n return [str];\n }\n let n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n }\n else {\n n = parseCommaParts(m.body);\n if (n.length === 1 && n[0] !== undefined) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand_(n[0], false).map(embrace);\n //XXX is this necessary? Can't seem to hit it in tests.\n /* c8 ignore start */\n if (n.length === 1) {\n return post.map(p => m.pre + n[0] + p);\n }\n /* c8 ignore stop */\n }\n }\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n let N;\n if (isSequence && n[0] !== undefined && n[1] !== undefined) {\n const x = numeric(n[0]);\n const y = numeric(n[1]);\n const width = Math.max(n[0].length, n[1].length);\n let incr = n.length === 3 && n[2] !== undefined ? Math.abs(numeric(n[2])) : 1;\n let test = lte;\n const reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n const pad = n.some(isPadded);\n N = [];\n for (let i = x; test(i, y); i += incr) {\n let c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\') {\n c = '';\n }\n }\n else {\n c = String(i);\n if (pad) {\n const need = width - c.length;\n if (need > 0) {\n const z = new Array(need + 1).join('0');\n if (i < 0) {\n c = '-' + z + c.slice(1);\n }\n else {\n c = z + c;\n }\n }\n }\n }\n N.push(c);\n }\n }\n else {\n N = [];\n for (let j = 0; j < n.length; j++) {\n N.push.apply(N, expand_(n[j], false));\n }\n }\n for (let j = 0; j < N.length; j++) {\n for (let k = 0; k < post.length; k++) {\n const expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion) {\n expansions.push(expansion);\n }\n }\n }\n }\n return expansions;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Glob = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst node_url_1 = require(\"node:url\");\nconst path_scurry_1 = require(\"path-scurry\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst walker_js_1 = require(\"./walker.js\");\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform = (typeof process === 'object' &&\n process &&\n typeof process.platform === 'string') ?\n process.platform\n : 'linux';\n/**\n * An object that can perform glob pattern traversals.\n */\nclass Glob {\n absolute;\n cwd;\n root;\n dot;\n dotRelative;\n follow;\n ignore;\n magicalBraces;\n mark;\n matchBase;\n maxDepth;\n nobrace;\n nocase;\n nodir;\n noext;\n noglobstar;\n pattern;\n platform;\n realpath;\n scurry;\n stat;\n signal;\n windowsPathsNoEscape;\n withFileTypes;\n includeChildMatches;\n /**\n * The options provided to the constructor.\n */\n opts;\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns;\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern, opts) {\n /* c8 ignore start */\n if (!opts)\n throw new TypeError('glob options required');\n /* c8 ignore stop */\n this.withFileTypes = !!opts.withFileTypes;\n this.signal = opts.signal;\n this.follow = !!opts.follow;\n this.dot = !!opts.dot;\n this.dotRelative = !!opts.dotRelative;\n this.nodir = !!opts.nodir;\n this.mark = !!opts.mark;\n if (!opts.cwd) {\n this.cwd = '';\n }\n else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n opts.cwd = (0, node_url_1.fileURLToPath)(opts.cwd);\n }\n this.cwd = opts.cwd || '';\n this.root = opts.root;\n this.magicalBraces = !!opts.magicalBraces;\n this.nobrace = !!opts.nobrace;\n this.noext = !!opts.noext;\n this.realpath = !!opts.realpath;\n this.absolute = opts.absolute;\n this.includeChildMatches = opts.includeChildMatches !== false;\n this.noglobstar = !!opts.noglobstar;\n this.matchBase = !!opts.matchBase;\n this.maxDepth =\n typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity;\n this.stat = !!opts.stat;\n this.ignore = opts.ignore;\n if (this.withFileTypes && this.absolute !== undefined) {\n throw new Error('cannot set absolute and withFileTypes:true');\n }\n if (typeof pattern === 'string') {\n pattern = [pattern];\n }\n this.windowsPathsNoEscape =\n !!opts.windowsPathsNoEscape ||\n opts.allowWindowsEscape ===\n false;\n if (this.windowsPathsNoEscape) {\n pattern = pattern.map(p => p.replace(/\\\\/g, '/'));\n }\n if (this.matchBase) {\n if (opts.noglobstar) {\n throw new TypeError('base matching requires globstar');\n }\n pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`));\n }\n this.pattern = pattern;\n this.platform = opts.platform || defaultPlatform;\n this.opts = { ...opts, platform: this.platform };\n if (opts.scurry) {\n this.scurry = opts.scurry;\n if (opts.nocase !== undefined &&\n opts.nocase !== opts.scurry.nocase) {\n throw new Error('nocase option contradicts provided scurry option');\n }\n }\n else {\n const Scurry = opts.platform === 'win32' ? path_scurry_1.PathScurryWin32\n : opts.platform === 'darwin' ? path_scurry_1.PathScurryDarwin\n : opts.platform ? path_scurry_1.PathScurryPosix\n : path_scurry_1.PathScurry;\n this.scurry = new Scurry(this.cwd, {\n nocase: opts.nocase,\n fs: opts.fs,\n });\n }\n this.nocase = this.scurry.nocase;\n // If you do nocase:true on a case-sensitive file system, then\n // we need to use regexps instead of strings for non-magic\n // path portions, because statting `aBc` won't return results\n // for the file `AbC` for example.\n const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32';\n const mmo = {\n // default nocase based on platform\n ...opts,\n dot: this.dot,\n matchBase: this.matchBase,\n nobrace: this.nobrace,\n nocase: this.nocase,\n nocaseMagicOnly,\n nocomment: true,\n noext: this.noext,\n nonegate: true,\n optimizationLevel: 2,\n platform: this.platform,\n windowsPathsNoEscape: this.windowsPathsNoEscape,\n debug: !!this.opts.debug,\n };\n const mms = this.pattern.map(p => new minimatch_1.Minimatch(p, mmo));\n const [matchSet, globParts] = mms.reduce((set, m) => {\n set[0].push(...m.set);\n set[1].push(...m.globParts);\n return set;\n }, [[], []]);\n this.patterns = matchSet.map((set, i) => {\n const g = globParts[i];\n /* c8 ignore start */\n if (!g)\n throw new Error('invalid pattern object');\n /* c8 ignore stop */\n return new pattern_js_1.Pattern(set, g, 0, this.platform);\n });\n }\n async walk() {\n // Walkers always return array of Path objects, so we just have to\n // coerce them into the right shape. It will have already called\n // realpath() if the option was set to do so, so we know that's cached.\n // start out knowing the cwd, at least\n return [\n ...(await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).walk()),\n ];\n }\n walkSync() {\n return [\n ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).walkSync(),\n ];\n }\n stream() {\n return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).stream();\n }\n streamSync() {\n return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).streamSync();\n }\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync() {\n return this.streamSync()[Symbol.iterator]();\n }\n [Symbol.iterator]() {\n return this.iterateSync();\n }\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate() {\n return this.stream()[Symbol.asyncIterator]();\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n}\nexports.Glob = Glob;\n//# sourceMappingURL=glob.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasMagic = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nconst hasMagic = (pattern, options = {}) => {\n if (!Array.isArray(pattern)) {\n pattern = [pattern];\n }\n for (const p of pattern) {\n if (new minimatch_1.Minimatch(p, options).hasMagic())\n return true;\n }\n return false;\n};\nexports.hasMagic = hasMagic;\n//# sourceMappingURL=has-magic.js.map","\"use strict\";\n// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ignore = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst defaultPlatform = (typeof process === 'object' &&\n process &&\n typeof process.platform === 'string') ?\n process.platform\n : 'linux';\n/**\n * Class used to process ignored patterns\n */\nclass Ignore {\n relative;\n relativeChildren;\n absolute;\n absoluteChildren;\n platform;\n mmopts;\n constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) {\n this.relative = [];\n this.absolute = [];\n this.relativeChildren = [];\n this.absoluteChildren = [];\n this.platform = platform;\n this.mmopts = {\n dot: true,\n nobrace,\n nocase,\n noext,\n noglobstar,\n optimizationLevel: 2,\n platform,\n nocomment: true,\n nonegate: true,\n };\n for (const ign of ignored)\n this.add(ign);\n }\n add(ign) {\n // this is a little weird, but it gives us a clean set of optimized\n // minimatch matchers, without getting tripped up if one of them\n // ends in /** inside a brace section, and it's only inefficient at\n // the start of the walk, not along it.\n // It'd be nice if the Pattern class just had a .test() method, but\n // handling globstars is a bit of a pita, and that code already lives\n // in minimatch anyway.\n // Another way would be if maybe Minimatch could take its set/globParts\n // as an option, and then we could at least just use Pattern to test\n // for absolute-ness.\n // Yet another way, Minimatch could take an array of glob strings, and\n // a cwd option, and do the right thing.\n const mm = new minimatch_1.Minimatch(ign, this.mmopts);\n for (let i = 0; i < mm.set.length; i++) {\n const parsed = mm.set[i];\n const globParts = mm.globParts[i];\n /* c8 ignore start */\n if (!parsed || !globParts) {\n throw new Error('invalid pattern object');\n }\n // strip off leading ./ portions\n // https://github.com/isaacs/node-glob/issues/570\n while (parsed[0] === '.' && globParts[0] === '.') {\n parsed.shift();\n globParts.shift();\n }\n /* c8 ignore stop */\n const p = new pattern_js_1.Pattern(parsed, globParts, 0, this.platform);\n const m = new minimatch_1.Minimatch(p.globString(), this.mmopts);\n const children = globParts[globParts.length - 1] === '**';\n const absolute = p.isAbsolute();\n if (absolute)\n this.absolute.push(m);\n else\n this.relative.push(m);\n if (children) {\n if (absolute)\n this.absoluteChildren.push(m);\n else\n this.relativeChildren.push(m);\n }\n }\n }\n ignored(p) {\n const fullpath = p.fullpath();\n const fullpaths = `${fullpath}/`;\n const relative = p.relative() || '.';\n const relatives = `${relative}/`;\n for (const m of this.relative) {\n if (m.match(relative) || m.match(relatives))\n return true;\n }\n for (const m of this.absolute) {\n if (m.match(fullpath) || m.match(fullpaths))\n return true;\n }\n return false;\n }\n childrenIgnored(p) {\n const fullpath = p.fullpath() + '/';\n const relative = (p.relative() || '.') + '/';\n for (const m of this.relativeChildren) {\n if (m.match(relative))\n return true;\n }\n for (const m of this.absoluteChildren) {\n if (m.match(fullpath))\n return true;\n }\n return false;\n }\n}\nexports.Ignore = Ignore;\n//# sourceMappingURL=ignore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.glob = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.Ignore = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = void 0;\nexports.globStreamSync = globStreamSync;\nexports.globStream = globStream;\nexports.globSync = globSync;\nexports.globIterateSync = globIterateSync;\nexports.globIterate = globIterate;\nconst minimatch_1 = require(\"minimatch\");\nconst glob_js_1 = require(\"./glob.js\");\nconst has_magic_js_1 = require(\"./has-magic.js\");\nvar minimatch_2 = require(\"minimatch\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return minimatch_2.escape; } });\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return minimatch_2.unescape; } });\nvar glob_js_2 = require(\"./glob.js\");\nObject.defineProperty(exports, \"Glob\", { enumerable: true, get: function () { return glob_js_2.Glob; } });\nvar has_magic_js_2 = require(\"./has-magic.js\");\nObject.defineProperty(exports, \"hasMagic\", { enumerable: true, get: function () { return has_magic_js_2.hasMagic; } });\nvar ignore_js_1 = require(\"./ignore.js\");\nObject.defineProperty(exports, \"Ignore\", { enumerable: true, get: function () { return ignore_js_1.Ignore; } });\nfunction globStreamSync(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).streamSync();\n}\nfunction globStream(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).stream();\n}\nfunction globSync(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).walkSync();\n}\nasync function glob_(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).walk();\n}\nfunction globIterateSync(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).iterateSync();\n}\nfunction globIterate(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).iterate();\n}\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexports.streamSync = globStreamSync;\nexports.stream = Object.assign(globStream, { sync: globStreamSync });\nexports.iterateSync = globIterateSync;\nexports.iterate = Object.assign(globIterate, {\n sync: globIterateSync,\n});\nexports.sync = Object.assign(globSync, {\n stream: globStreamSync,\n iterate: globIterateSync,\n});\nexports.glob = Object.assign(glob_, {\n glob: glob_,\n globSync,\n sync: exports.sync,\n globStream,\n stream: exports.stream,\n globStreamSync,\n streamSync: exports.streamSync,\n globIterate,\n iterate: exports.iterate,\n globIterateSync,\n iterateSync: exports.iterateSync,\n Glob: glob_js_1.Glob,\n hasMagic: has_magic_js_1.hasMagic,\n escape: minimatch_1.escape,\n unescape: minimatch_1.unescape,\n});\nexports.glob.glob = exports.glob;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// this is just a very light wrapper around 2 arrays with an offset index\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pattern = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst isPatternList = (pl) => pl.length >= 1;\nconst isGlobList = (gl) => gl.length >= 1;\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nclass Pattern {\n #patternList;\n #globList;\n #index;\n length;\n #platform;\n #rest;\n #globString;\n #isDrive;\n #isUNC;\n #isAbsolute;\n #followGlobstar = true;\n constructor(patternList, globList, index, platform) {\n if (!isPatternList(patternList)) {\n throw new TypeError('empty pattern list');\n }\n if (!isGlobList(globList)) {\n throw new TypeError('empty glob list');\n }\n if (globList.length !== patternList.length) {\n throw new TypeError('mismatched pattern list and glob list lengths');\n }\n this.length = patternList.length;\n if (index < 0 || index >= this.length) {\n throw new TypeError('index out of range');\n }\n this.#patternList = patternList;\n this.#globList = globList;\n this.#index = index;\n this.#platform = platform;\n // normalize root entries of absolute patterns on initial creation.\n if (this.#index === 0) {\n // c: => ['c:/']\n // C:/ => ['C:/']\n // C:/x => ['C:/', 'x']\n // //host/share => ['//host/share/']\n // //host/share/ => ['//host/share/']\n // //host/share/x => ['//host/share/', 'x']\n // /etc => ['/', 'etc']\n // / => ['/']\n if (this.isUNC()) {\n // '' / '' / 'host' / 'share'\n const [p0, p1, p2, p3, ...prest] = this.#patternList;\n const [g0, g1, g2, g3, ...grest] = this.#globList;\n if (prest[0] === '') {\n // ends in /\n prest.shift();\n grest.shift();\n }\n const p = [p0, p1, p2, p3, ''].join('/');\n const g = [g0, g1, g2, g3, ''].join('/');\n this.#patternList = [p, ...prest];\n this.#globList = [g, ...grest];\n this.length = this.#patternList.length;\n }\n else if (this.isDrive() || this.isAbsolute()) {\n const [p1, ...prest] = this.#patternList;\n const [g1, ...grest] = this.#globList;\n if (prest[0] === '') {\n // ends in /\n prest.shift();\n grest.shift();\n }\n const p = p1 + '/';\n const g = g1 + '/';\n this.#patternList = [p, ...prest];\n this.#globList = [g, ...grest];\n this.length = this.#patternList.length;\n }\n }\n }\n /**\n * The first entry in the parsed list of patterns\n */\n pattern() {\n return this.#patternList[this.#index];\n }\n /**\n * true of if pattern() returns a string\n */\n isString() {\n return typeof this.#patternList[this.#index] === 'string';\n }\n /**\n * true of if pattern() returns GLOBSTAR\n */\n isGlobstar() {\n return this.#patternList[this.#index] === minimatch_1.GLOBSTAR;\n }\n /**\n * true if pattern() returns a regexp\n */\n isRegExp() {\n return this.#patternList[this.#index] instanceof RegExp;\n }\n /**\n * The /-joined set of glob parts that make up this pattern\n */\n globString() {\n return (this.#globString =\n this.#globString ||\n (this.#index === 0 ?\n this.isAbsolute() ?\n this.#globList[0] + this.#globList.slice(1).join('/')\n : this.#globList.join('/')\n : this.#globList.slice(this.#index).join('/')));\n }\n /**\n * true if there are more pattern parts after this one\n */\n hasMore() {\n return this.length > this.#index + 1;\n }\n /**\n * The rest of the pattern after this part, or null if this is the end\n */\n rest() {\n if (this.#rest !== undefined)\n return this.#rest;\n if (!this.hasMore())\n return (this.#rest = null);\n this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);\n this.#rest.#isAbsolute = this.#isAbsolute;\n this.#rest.#isUNC = this.#isUNC;\n this.#rest.#isDrive = this.#isDrive;\n return this.#rest;\n }\n /**\n * true if the pattern represents a //unc/path/ on windows\n */\n isUNC() {\n const pl = this.#patternList;\n return this.#isUNC !== undefined ?\n this.#isUNC\n : (this.#isUNC =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n pl[0] === '' &&\n pl[1] === '' &&\n typeof pl[2] === 'string' &&\n !!pl[2] &&\n typeof pl[3] === 'string' &&\n !!pl[3]);\n }\n // pattern like C:/...\n // split = ['C:', ...]\n // XXX: would be nice to handle patterns like `c:*` to test the cwd\n // in c: for *, but I don't know of a way to even figure out what that\n // cwd is without actually chdir'ing into it?\n /**\n * True if the pattern starts with a drive letter on Windows\n */\n isDrive() {\n const pl = this.#patternList;\n return this.#isDrive !== undefined ?\n this.#isDrive\n : (this.#isDrive =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n this.length > 1 &&\n typeof pl[0] === 'string' &&\n /^[a-z]:$/i.test(pl[0]));\n }\n // pattern = '/' or '/...' or '/x/...'\n // split = ['', ''] or ['', ...] or ['', 'x', ...]\n // Drive and UNC both considered absolute on windows\n /**\n * True if the pattern is rooted on an absolute path\n */\n isAbsolute() {\n const pl = this.#patternList;\n return this.#isAbsolute !== undefined ?\n this.#isAbsolute\n : (this.#isAbsolute =\n (pl[0] === '' && pl.length > 1) ||\n this.isDrive() ||\n this.isUNC());\n }\n /**\n * consume the root of the pattern, and return it\n */\n root() {\n const p = this.#patternList[0];\n return (typeof p === 'string' && this.isAbsolute() && this.#index === 0) ?\n p\n : '';\n }\n /**\n * Check to see if the current globstar pattern is allowed to follow\n * a symbolic link.\n */\n checkFollowGlobstar() {\n return !(this.#index === 0 ||\n !this.isGlobstar() ||\n !this.#followGlobstar);\n }\n /**\n * Mark that the current globstar pattern is following a symbolic link\n */\n markFollowGlobstar() {\n if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n return false;\n this.#followGlobstar = false;\n return true;\n }\n}\nexports.Pattern = Pattern;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\n// synchronous utility for filtering entries and calculating subwalks\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * A cache of which patterns have been processed for a given Path\n */\nclass HasWalkedCache {\n store;\n constructor(store = new Map()) {\n this.store = store;\n }\n copy() {\n return new HasWalkedCache(new Map(this.store));\n }\n hasWalked(target, pattern) {\n return this.store.get(target.fullpath())?.has(pattern.globString());\n }\n storeWalked(target, pattern) {\n const fullpath = target.fullpath();\n const cached = this.store.get(fullpath);\n if (cached)\n cached.add(pattern.globString());\n else\n this.store.set(fullpath, new Set([pattern.globString()]));\n }\n}\nexports.HasWalkedCache = HasWalkedCache;\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nclass MatchRecord {\n store = new Map();\n add(target, absolute, ifDir) {\n const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);\n const current = this.store.get(target);\n this.store.set(target, current === undefined ? n : n & current);\n }\n // match, absolute, ifdir\n entries() {\n return [...this.store.entries()].map(([path, n]) => [\n path,\n !!(n & 2),\n !!(n & 1),\n ]);\n }\n}\nexports.MatchRecord = MatchRecord;\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nclass SubWalks {\n store = new Map();\n add(target, pattern) {\n if (!target.canReaddir()) {\n return;\n }\n const subs = this.store.get(target);\n if (subs) {\n if (!subs.find(p => p.globString() === pattern.globString())) {\n subs.push(pattern);\n }\n }\n else\n this.store.set(target, [pattern]);\n }\n get(target) {\n const subs = this.store.get(target);\n /* c8 ignore start */\n if (!subs) {\n throw new Error('attempting to walk unknown path');\n }\n /* c8 ignore stop */\n return subs;\n }\n entries() {\n return this.keys().map(k => [k, this.store.get(k)]);\n }\n keys() {\n return [...this.store.keys()].filter(t => t.canReaddir());\n }\n}\nexports.SubWalks = SubWalks;\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nclass Processor {\n hasWalkedCache;\n matches = new MatchRecord();\n subwalks = new SubWalks();\n patterns;\n follow;\n dot;\n opts;\n constructor(opts, hasWalkedCache) {\n this.opts = opts;\n this.follow = !!opts.follow;\n this.dot = !!opts.dot;\n this.hasWalkedCache =\n hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();\n }\n processPatterns(target, patterns) {\n this.patterns = patterns;\n const processingSet = patterns.map(p => [target, p]);\n // map of paths to the magic-starting subwalks they need to walk\n // first item in patterns is the filter\n for (let [t, pattern] of processingSet) {\n this.hasWalkedCache.storeWalked(t, pattern);\n const root = pattern.root();\n const absolute = pattern.isAbsolute() && this.opts.absolute !== false;\n // start absolute patterns at root\n if (root) {\n t = t.resolve(root === '/' && this.opts.root !== undefined ?\n this.opts.root\n : root);\n const rest = pattern.rest();\n if (!rest) {\n this.matches.add(t, true, false);\n continue;\n }\n else {\n pattern = rest;\n }\n }\n if (t.isENOENT())\n continue;\n let p;\n let rest;\n let changed = false;\n while (typeof (p = pattern.pattern()) === 'string' &&\n (rest = pattern.rest())) {\n const c = t.resolve(p);\n t = c;\n pattern = rest;\n changed = true;\n }\n p = pattern.pattern();\n rest = pattern.rest();\n if (changed) {\n if (this.hasWalkedCache.hasWalked(t, pattern))\n continue;\n this.hasWalkedCache.storeWalked(t, pattern);\n }\n // now we have either a final string for a known entry,\n // more strings for an unknown entry,\n // or a pattern starting with magic, mounted on t.\n if (typeof p === 'string') {\n // must not be final entry, otherwise we would have\n // concatenated it earlier.\n const ifDir = p === '..' || p === '' || p === '.';\n this.matches.add(t.resolve(p), absolute, ifDir);\n continue;\n }\n else if (p === minimatch_1.GLOBSTAR) {\n // if no rest, match and subwalk pattern\n // if rest, process rest and subwalk pattern\n // if it's a symlink, but we didn't get here by way of a\n // globstar match (meaning it's the first time THIS globstar\n // has traversed a symlink), then we follow it. Otherwise, stop.\n if (!t.isSymbolicLink() ||\n this.follow ||\n pattern.checkFollowGlobstar()) {\n this.subwalks.add(t, pattern);\n }\n const rp = rest?.pattern();\n const rrest = rest?.rest();\n if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n // only HAS to be a dir if it ends in **/ or **/.\n // but ending in ** will match files as well.\n this.matches.add(t, absolute, rp === '' || rp === '.');\n }\n else {\n if (rp === '..') {\n // this would mean you're matching **/.. at the fs root,\n // and no thanks, I'm not gonna test that specific case.\n /* c8 ignore start */\n const tp = t.parent || t;\n /* c8 ignore stop */\n if (!rrest)\n this.matches.add(tp, absolute, true);\n else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n this.subwalks.add(tp, rrest);\n }\n }\n }\n }\n else if (p instanceof RegExp) {\n this.subwalks.add(t, pattern);\n }\n }\n return this;\n }\n subwalkTargets() {\n return this.subwalks.keys();\n }\n child() {\n return new Processor(this.opts, this.hasWalkedCache);\n }\n // return a new Processor containing the subwalks for each\n // child entry, and a set of matches, and\n // a hasWalkedCache that's a copy of this one\n // then we're going to call\n filterEntries(parent, entries) {\n const patterns = this.subwalks.get(parent);\n // put matches and entry walks into the results processor\n const results = this.child();\n for (const e of entries) {\n for (const pattern of patterns) {\n const absolute = pattern.isAbsolute();\n const p = pattern.pattern();\n const rest = pattern.rest();\n if (p === minimatch_1.GLOBSTAR) {\n results.testGlobstar(e, pattern, rest, absolute);\n }\n else if (p instanceof RegExp) {\n results.testRegExp(e, p, rest, absolute);\n }\n else {\n results.testString(e, p, rest, absolute);\n }\n }\n }\n return results;\n }\n testGlobstar(e, pattern, rest, absolute) {\n if (this.dot || !e.name.startsWith('.')) {\n if (!pattern.hasMore()) {\n this.matches.add(e, absolute, false);\n }\n if (e.canReaddir()) {\n // if we're in follow mode or it's not a symlink, just keep\n // testing the same pattern. If there's more after the globstar,\n // then this symlink consumes the globstar. If not, then we can\n // follow at most ONE symlink along the way, so we mark it, which\n // also checks to ensure that it wasn't already marked.\n if (this.follow || !e.isSymbolicLink()) {\n this.subwalks.add(e, pattern);\n }\n else if (e.isSymbolicLink()) {\n if (rest && pattern.checkFollowGlobstar()) {\n this.subwalks.add(e, rest);\n }\n else if (pattern.markFollowGlobstar()) {\n this.subwalks.add(e, pattern);\n }\n }\n }\n }\n // if the NEXT thing matches this entry, then also add\n // the rest.\n if (rest) {\n const rp = rest.pattern();\n if (typeof rp === 'string' &&\n // dots and empty were handled already\n rp !== '..' &&\n rp !== '' &&\n rp !== '.') {\n this.testString(e, rp, rest.rest(), absolute);\n }\n else if (rp === '..') {\n /* c8 ignore start */\n const ep = e.parent || e;\n /* c8 ignore stop */\n this.subwalks.add(ep, rest);\n }\n else if (rp instanceof RegExp) {\n this.testRegExp(e, rp, rest.rest(), absolute);\n }\n }\n }\n testRegExp(e, p, rest, absolute) {\n if (!p.test(e.name))\n return;\n if (!rest) {\n this.matches.add(e, absolute, false);\n }\n else {\n this.subwalks.add(e, rest);\n }\n }\n testString(e, p, rest, absolute) {\n // should never happen?\n if (!e.isNamed(p))\n return;\n if (!rest) {\n this.matches.add(e, absolute, false);\n }\n else {\n this.subwalks.add(e, rest);\n }\n }\n}\nexports.Processor = Processor;\n//# sourceMappingURL=processor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobStream = exports.GlobWalker = exports.GlobUtil = void 0;\n/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nconst minipass_1 = require(\"minipass\");\nconst ignore_js_1 = require(\"./ignore.js\");\nconst processor_js_1 = require(\"./processor.js\");\nconst makeIgnore = (ignore, opts) => typeof ignore === 'string' ? new ignore_js_1.Ignore([ignore], opts)\n : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts)\n : ignore;\n/**\n * basic walking utilities that all the glob walker types use\n */\nclass GlobUtil {\n path;\n patterns;\n opts;\n seen = new Set();\n paused = false;\n aborted = false;\n #onResume = [];\n #ignore;\n #sep;\n signal;\n maxDepth;\n includeChildMatches;\n constructor(patterns, path, opts) {\n this.patterns = patterns;\n this.path = path;\n this.opts = opts;\n this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/';\n this.includeChildMatches = opts.includeChildMatches !== false;\n if (opts.ignore || !this.includeChildMatches) {\n this.#ignore = makeIgnore(opts.ignore ?? [], opts);\n if (!this.includeChildMatches &&\n typeof this.#ignore.add !== 'function') {\n const m = 'cannot ignore child matches, ignore lacks add() method.';\n throw new Error(m);\n }\n }\n // ignore, always set with maxDepth, but it's optional on the\n // GlobOptions type\n /* c8 ignore start */\n this.maxDepth = opts.maxDepth || Infinity;\n /* c8 ignore stop */\n if (opts.signal) {\n this.signal = opts.signal;\n this.signal.addEventListener('abort', () => {\n this.#onResume.length = 0;\n });\n }\n }\n #ignored(path) {\n return this.seen.has(path) || !!this.#ignore?.ignored?.(path);\n }\n #childrenIgnored(path) {\n return !!this.#ignore?.childrenIgnored?.(path);\n }\n // backpressure mechanism\n pause() {\n this.paused = true;\n }\n resume() {\n /* c8 ignore start */\n if (this.signal?.aborted)\n return;\n /* c8 ignore stop */\n this.paused = false;\n let fn = undefined;\n while (!this.paused && (fn = this.#onResume.shift())) {\n fn();\n }\n }\n onResume(fn) {\n if (this.signal?.aborted)\n return;\n /* c8 ignore start */\n if (!this.paused) {\n fn();\n }\n else {\n /* c8 ignore stop */\n this.#onResume.push(fn);\n }\n }\n // do the requisite realpath/stat checking, and return the path\n // to add or undefined to filter it out.\n async matchCheck(e, ifDir) {\n if (ifDir && this.opts.nodir)\n return undefined;\n let rpc;\n if (this.opts.realpath) {\n rpc = e.realpathCached() || (await e.realpath());\n if (!rpc)\n return undefined;\n e = rpc;\n }\n const needStat = e.isUnknown() || this.opts.stat;\n const s = needStat ? await e.lstat() : e;\n if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n const target = await s.realpath();\n /* c8 ignore start */\n if (target && (target.isUnknown() || this.opts.stat)) {\n await target.lstat();\n }\n /* c8 ignore stop */\n }\n return this.matchCheckTest(s, ifDir);\n }\n matchCheckTest(e, ifDir) {\n return (e &&\n (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n (!ifDir || e.canReaddir()) &&\n (!this.opts.nodir || !e.isDirectory()) &&\n (!this.opts.nodir ||\n !this.opts.follow ||\n !e.isSymbolicLink() ||\n !e.realpathCached()?.isDirectory()) &&\n !this.#ignored(e)) ?\n e\n : undefined;\n }\n matchCheckSync(e, ifDir) {\n if (ifDir && this.opts.nodir)\n return undefined;\n let rpc;\n if (this.opts.realpath) {\n rpc = e.realpathCached() || e.realpathSync();\n if (!rpc)\n return undefined;\n e = rpc;\n }\n const needStat = e.isUnknown() || this.opts.stat;\n const s = needStat ? e.lstatSync() : e;\n if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n const target = s.realpathSync();\n if (target && (target?.isUnknown() || this.opts.stat)) {\n target.lstatSync();\n }\n }\n return this.matchCheckTest(s, ifDir);\n }\n matchFinish(e, absolute) {\n if (this.#ignored(e))\n return;\n // we know we have an ignore if this is false, but TS doesn't\n if (!this.includeChildMatches && this.#ignore?.add) {\n const ign = `${e.relativePosix()}/**`;\n this.#ignore.add(ign);\n }\n const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute;\n this.seen.add(e);\n const mark = this.opts.mark && e.isDirectory() ? this.#sep : '';\n // ok, we have what we need!\n if (this.opts.withFileTypes) {\n this.matchEmit(e);\n }\n else if (abs) {\n const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath();\n this.matchEmit(abs + mark);\n }\n else {\n const rel = this.opts.posix ? e.relativePosix() : e.relative();\n const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ?\n '.' + this.#sep\n : '';\n this.matchEmit(!rel ? '.' + mark : pre + rel + mark);\n }\n }\n async match(e, absolute, ifDir) {\n const p = await this.matchCheck(e, ifDir);\n if (p)\n this.matchFinish(p, absolute);\n }\n matchSync(e, absolute, ifDir) {\n const p = this.matchCheckSync(e, ifDir);\n if (p)\n this.matchFinish(p, absolute);\n }\n walkCB(target, patterns, cb) {\n /* c8 ignore start */\n if (this.signal?.aborted)\n cb();\n /* c8 ignore stop */\n this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb);\n }\n walkCB2(target, patterns, processor, cb) {\n if (this.#childrenIgnored(target))\n return cb();\n if (this.signal?.aborted)\n cb();\n if (this.paused) {\n this.onResume(() => this.walkCB2(target, patterns, processor, cb));\n return;\n }\n processor.processPatterns(target, patterns);\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n tasks++;\n this.match(m, absolute, ifDir).then(() => next());\n }\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue;\n }\n tasks++;\n const childrenCached = t.readdirCached();\n if (t.calledReaddir())\n this.walkCB3(t, childrenCached, processor, next);\n else {\n t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);\n }\n }\n next();\n }\n walkCB3(target, entries, processor, cb) {\n processor = processor.filterEntries(target, entries);\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n tasks++;\n this.match(m, absolute, ifDir).then(() => next());\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++;\n this.walkCB2(target, patterns, processor.child(), next);\n }\n next();\n }\n walkCBSync(target, patterns, cb) {\n /* c8 ignore start */\n if (this.signal?.aborted)\n cb();\n /* c8 ignore stop */\n this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb);\n }\n walkCB2Sync(target, patterns, processor, cb) {\n if (this.#childrenIgnored(target))\n return cb();\n if (this.signal?.aborted)\n cb();\n if (this.paused) {\n this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));\n return;\n }\n processor.processPatterns(target, patterns);\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n this.matchSync(m, absolute, ifDir);\n }\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue;\n }\n tasks++;\n const children = t.readdirSync();\n this.walkCB3Sync(t, children, processor, next);\n }\n next();\n }\n walkCB3Sync(target, entries, processor, cb) {\n processor = processor.filterEntries(target, entries);\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n this.matchSync(m, absolute, ifDir);\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++;\n this.walkCB2Sync(target, patterns, processor.child(), next);\n }\n next();\n }\n}\nexports.GlobUtil = GlobUtil;\nclass GlobWalker extends GlobUtil {\n matches = new Set();\n constructor(patterns, path, opts) {\n super(patterns, path, opts);\n }\n matchEmit(e) {\n this.matches.add(e);\n }\n async walk() {\n if (this.signal?.aborted)\n throw this.signal.reason;\n if (this.path.isUnknown()) {\n await this.path.lstat();\n }\n await new Promise((res, rej) => {\n this.walkCB(this.path, this.patterns, () => {\n if (this.signal?.aborted) {\n rej(this.signal.reason);\n }\n else {\n res(this.matches);\n }\n });\n });\n return this.matches;\n }\n walkSync() {\n if (this.signal?.aborted)\n throw this.signal.reason;\n if (this.path.isUnknown()) {\n this.path.lstatSync();\n }\n // nothing for the callback to do, because this never pauses\n this.walkCBSync(this.path, this.patterns, () => {\n if (this.signal?.aborted)\n throw this.signal.reason;\n });\n return this.matches;\n }\n}\nexports.GlobWalker = GlobWalker;\nclass GlobStream extends GlobUtil {\n results;\n constructor(patterns, path, opts) {\n super(patterns, path, opts);\n this.results = new minipass_1.Minipass({\n signal: this.signal,\n objectMode: true,\n });\n this.results.on('drain', () => this.resume());\n this.results.on('resume', () => this.resume());\n }\n matchEmit(e) {\n this.results.write(e);\n if (!this.results.flowing)\n this.pause();\n }\n stream() {\n const target = this.path;\n if (target.isUnknown()) {\n target.lstat().then(() => {\n this.walkCB(target, this.patterns, () => this.results.end());\n });\n }\n else {\n this.walkCB(target, this.patterns, () => this.results.end());\n }\n return this.results;\n }\n streamSync() {\n if (this.path.isUnknown()) {\n this.path.lstatSync();\n }\n this.walkCBSync(this.path, this.patterns, () => this.results.end());\n return this.results;\n }\n}\nexports.GlobStream = GlobStream;\n//# sourceMappingURL=walker.js.map","\"use strict\";\n/**\n * @module LRUCache\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LRUCache = void 0;\nconst perf = typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ? performance\n : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ? process : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n typeof PROCESS.emitWarning === 'function'\n ? PROCESS.emitWarning(msg, type, code, fn)\n : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n //@ts-ignore\n AS = class AbortSignal {\n onabort;\n _onabort = [];\n reason;\n aborted = false;\n addEventListener(_, fn) {\n this._onabort.push(fn);\n }\n };\n //@ts-ignore\n AC = class AbortController {\n constructor() {\n warnACPolyfill();\n }\n signal = new AS();\n abort(reason) {\n if (this.signal.aborted)\n return;\n //@ts-ignore\n this.signal.reason = reason;\n //@ts-ignore\n this.signal.aborted = true;\n //@ts-ignore\n for (const fn of this.signal._onabort) {\n fn(reason);\n }\n this.signal.onabort?.(reason);\n }\n };\n let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n const warnACPolyfill = () => {\n if (!printACPolyfillWarning)\n return;\n printACPolyfillWarning = false;\n emitWarning('AbortController is not defined. If using lru-cache in ' +\n 'node 14, load an AbortController polyfill from the ' +\n '`node-abort-controller` package. A minimal polyfill is ' +\n 'provided for use by LRUCache.fetch(), but it should not be ' +\n 'relied upon in other contexts (eg, passing it to other APIs that ' +\n 'use AbortController/AbortSignal might have undesirable effects). ' +\n 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max)\n ? null\n : max <= Math.pow(2, 8)\n ? Uint8Array\n : max <= Math.pow(2, 16)\n ? Uint16Array\n : max <= Math.pow(2, 32)\n ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER\n ? ZeroArray\n : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n constructor(size) {\n super(size);\n this.fill(0);\n }\n}\nclass Stack {\n heap;\n length;\n // private constructor\n static #constructing = false;\n static create(max) {\n const HeapCls = getUintArray(max);\n if (!HeapCls)\n return [];\n Stack.#constructing = true;\n const s = new Stack(max, HeapCls);\n Stack.#constructing = false;\n return s;\n }\n constructor(max, HeapCls) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)');\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max);\n this.length = 0;\n }\n push(n) {\n this.heap[this.length++] = n;\n }\n pop() {\n return this.heap[--this.length];\n }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nclass LRUCache {\n // options that cannot be changed without disaster\n #max;\n #maxSize;\n #dispose;\n #disposeAfter;\n #fetchMethod;\n #memoMethod;\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl;\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution;\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas;\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale;\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet;\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL;\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize;\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort;\n // computed properties\n #size;\n #calculatedSize;\n #keyMap;\n #keyList;\n #valList;\n #next;\n #prev;\n #head;\n #tail;\n #free;\n #disposed;\n #sizes;\n #starts;\n #ttls;\n #hasDispose;\n #hasFetchMethod;\n #hasDisposeAfter;\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals(c) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n sizes: c.#sizes,\n keyMap: c.#keyMap,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head;\n },\n get tail() {\n return c.#tail;\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n moveToTail: (index) => c.#moveToTail(index),\n indexes: (options) => c.#indexes(options),\n rindexes: (options) => c.#rindexes(options),\n isStale: (index) => c.#isStale(index),\n };\n }\n // Protected read-only members\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max() {\n return this.#max;\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize() {\n return this.#maxSize;\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize() {\n return this.#calculatedSize;\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size() {\n return this.#size;\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod() {\n return this.#fetchMethod;\n }\n get memoMethod() {\n return this.#memoMethod;\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose;\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter;\n }\n constructor(options) {\n const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer');\n }\n const UintArray = max ? getUintArray(max) : Array;\n if (!UintArray) {\n throw new Error('invalid max value: ' + max);\n }\n this.#max = max;\n this.#maxSize = maxSize;\n this.maxEntrySize = maxEntrySize || this.#maxSize;\n this.sizeCalculation = sizeCalculation;\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function');\n }\n }\n if (memoMethod !== undefined &&\n typeof memoMethod !== 'function') {\n throw new TypeError('memoMethod must be a function if defined');\n }\n this.#memoMethod = memoMethod;\n if (fetchMethod !== undefined &&\n typeof fetchMethod !== 'function') {\n throw new TypeError('fetchMethod must be a function if specified');\n }\n this.#fetchMethod = fetchMethod;\n this.#hasFetchMethod = !!fetchMethod;\n this.#keyMap = new Map();\n this.#keyList = new Array(max).fill(undefined);\n this.#valList = new Array(max).fill(undefined);\n this.#next = new UintArray(max);\n this.#prev = new UintArray(max);\n this.#head = 0;\n this.#tail = 0;\n this.#free = Stack.create(max);\n this.#size = 0;\n this.#calculatedSize = 0;\n if (typeof dispose === 'function') {\n this.#dispose = dispose;\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter;\n this.#disposed = [];\n }\n else {\n this.#disposeAfter = undefined;\n this.#disposed = undefined;\n }\n this.#hasDispose = !!this.#dispose;\n this.#hasDisposeAfter = !!this.#disposeAfter;\n this.noDisposeOnSet = !!noDisposeOnSet;\n this.noUpdateTTL = !!noUpdateTTL;\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n this.ignoreFetchAbort = !!ignoreFetchAbort;\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError('maxSize must be a positive integer if specified');\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError('maxEntrySize must be a positive integer if specified');\n }\n this.#initializeSizeTracking();\n }\n this.allowStale = !!allowStale;\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n this.updateAgeOnGet = !!updateAgeOnGet;\n this.updateAgeOnHas = !!updateAgeOnHas;\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0\n ? ttlResolution\n : 1;\n this.ttlAutopurge = !!ttlAutopurge;\n this.ttl = ttl || 0;\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError('ttl must be a positive integer if specified');\n }\n this.#initializeTTLTracking();\n }\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError('At least one of max, maxSize, or ttl is required');\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED';\n if (shouldWarn(code)) {\n warned.add(code);\n const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.';\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n }\n }\n }\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key) {\n return this.#keyMap.has(key) ? Infinity : 0;\n }\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max);\n const starts = new ZeroArray(this.#max);\n this.#ttls = ttls;\n this.#starts = starts;\n this.#setItemTTL = (index, ttl, start = perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0;\n ttls[index] = ttl;\n if (ttl !== 0 && this.ttlAutopurge) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index], 'expire');\n }\n }, ttl + 1);\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n };\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? perf.now() : 0;\n };\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index];\n const start = starts[index];\n /* c8 ignore next */\n if (!ttl || !start)\n return;\n status.ttl = ttl;\n status.start = start;\n status.now = cachedNow || getNow();\n const age = status.now - start;\n status.remainingTTL = ttl - age;\n }\n };\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0;\n const getNow = () => {\n const n = perf.now();\n if (this.ttlResolution > 0) {\n cachedNow = n;\n const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n return n;\n };\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key);\n if (index === undefined) {\n return 0;\n }\n const ttl = ttls[index];\n const start = starts[index];\n if (!ttl || !start) {\n return Infinity;\n }\n const age = (cachedNow || getNow()) - start;\n return ttl - age;\n };\n this.#isStale = index => {\n const s = starts[index];\n const t = ttls[index];\n return !!t && !!s && (cachedNow || getNow()) - s > t;\n };\n }\n // conditionally set private methods related to TTL\n #updateItemAge = () => { };\n #statusTTL = () => { };\n #setItemTTL = () => { };\n /* c8 ignore stop */\n #isStale = () => false;\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max);\n this.#calculatedSize = 0;\n this.#sizes = sizes;\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index];\n sizes[index] = 0;\n };\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0;\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function');\n }\n size = sizeCalculation(v, k);\n if (!isPosInt(size)) {\n throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n }\n }\n else {\n throw new TypeError('invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.');\n }\n }\n return size;\n };\n this.#addItemSize = (index, size, status) => {\n sizes[index] = size;\n if (this.#maxSize) {\n const maxSize = this.#maxSize - sizes[index];\n while (this.#calculatedSize > maxSize) {\n this.#evict(true);\n }\n }\n this.#calculatedSize += sizes[index];\n if (status) {\n status.entrySize = size;\n status.totalCalculatedSize = this.#calculatedSize;\n }\n };\n }\n #removeItemSize = _i => { };\n #addItemSize = (_i, _s, _st) => { };\n #requireSize = (_k, _v, size, sizeCalculation) => {\n if (size || sizeCalculation) {\n throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n }\n return 0;\n };\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#head) {\n break;\n }\n else {\n i = this.#prev[i];\n }\n }\n }\n }\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#tail) {\n break;\n }\n else {\n i = this.#next[i];\n }\n }\n }\n }\n #isValidIndex(index) {\n return (index !== undefined &&\n this.#keyMap.get(this.#keyList[index]) === index);\n }\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache';\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(fn, getOptions = {}) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n if (fn(value, this.#keyList[i], this)) {\n return this.get(this.#keyList[i], getOptions);\n }\n }\n }\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(fn, thisp = this) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(fn, thisp = this) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false;\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i], 'expire');\n deleted = true;\n }\n }\n return deleted;\n }\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key) {\n const i = this.#keyMap.get(key);\n if (i === undefined)\n return undefined;\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n return undefined;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i];\n const start = this.#starts[i];\n if (ttl && start) {\n const remain = ttl - (perf.now() - start);\n entry.ttl = remain;\n entry.start = Date.now();\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n return entry;\n }\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRLUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr = [];\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i];\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined || key === undefined)\n continue;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i];\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = perf.now() - this.#starts[i];\n entry.start = Math.floor(Date.now() - age);\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n arr.unshift([key, entry]);\n }\n return arr;\n }\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr) {\n this.clear();\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start;\n entry.start = perf.now() - age;\n }\n this.set(key, entry.value, entry);\n }\n }\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(k, v, setOptions = {}) {\n if (v === undefined) {\n this.delete(k);\n return this;\n }\n const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss';\n status.maxEntrySizeExceeded = true;\n }\n // have to delete, in case something is there already.\n this.#delete(k, 'set');\n return this;\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n if (index === undefined) {\n // addition\n index = (this.#size === 0\n ? this.#tail\n : this.#free.length !== 0\n ? this.#free.pop()\n : this.#size === this.#max\n ? this.#evict(false)\n : this.#size);\n this.#keyList[index] = k;\n this.#valList[index] = v;\n this.#keyMap.set(k, index);\n this.#next[this.#tail] = index;\n this.#prev[index] = this.#tail;\n this.#tail = index;\n this.#size++;\n this.#addItemSize(index, size, status);\n if (status)\n status.set = 'add';\n noUpdateTTL = false;\n }\n else {\n // update\n this.#moveToTail(index);\n const oldVal = this.#valList[index];\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'));\n const { __staleWhileFetching: s } = oldVal;\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s, k, 'set']);\n }\n }\n }\n else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal, k, 'set']);\n }\n }\n this.#removeItemSize(index);\n this.#addItemSize(index, size, status);\n this.#valList[index] = v;\n if (status) {\n status.set = 'replace';\n const oldValue = oldVal && this.#isBackgroundFetch(oldVal)\n ? oldVal.__staleWhileFetching\n : oldVal;\n if (oldValue !== undefined)\n status.oldValue = oldValue;\n }\n }\n else if (status) {\n status.set = 'update';\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking();\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start);\n }\n if (status)\n this.#statusTTL(status, index);\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return this;\n }\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop() {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head];\n this.#evict(true);\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching;\n }\n }\n else if (val !== undefined) {\n return val;\n }\n }\n }\n finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n }\n #evict(free) {\n const head = this.#head;\n const k = this.#keyList[head];\n const v = this.#valList[head];\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict']);\n }\n }\n this.#removeItemSize(head);\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined;\n this.#valList[head] = undefined;\n this.#free.push(head);\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0;\n this.#free.length = 0;\n }\n else {\n this.#head = this.#next[head];\n }\n this.#keyMap.delete(k);\n this.#size--;\n return head;\n }\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k, hasOptions = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined) {\n return false;\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index);\n }\n if (status) {\n status.has = 'hit';\n this.#statusTTL(status, index);\n }\n return true;\n }\n else if (status) {\n status.has = 'stale';\n this.#statusTTL(status, index);\n }\n }\n else if (status) {\n status.has = 'miss';\n }\n return false;\n }\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k, peekOptions = {}) {\n const { allowStale = this.allowStale } = peekOptions;\n const index = this.#keyMap.get(k);\n if (index === undefined ||\n (!allowStale && this.#isStale(index))) {\n return;\n }\n const v = this.#valList[index];\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n }\n #backgroundFetch(k, index, options, context) {\n const v = index === undefined ? undefined : this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n return v;\n }\n const ac = new AC();\n const { signal } = options;\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n });\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n };\n const cb = (v, updateCache = false) => {\n const { aborted } = ac.signal;\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true;\n options.status.fetchError = ac.signal.reason;\n if (ignoreAbort)\n options.status.fetchAbortIgnored = true;\n }\n else {\n options.status.fetchResolved = true;\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason);\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p;\n if (this.#valList[index] === p) {\n if (v === undefined) {\n if (bf.__staleWhileFetching) {\n this.#valList[index] = bf.__staleWhileFetching;\n }\n else {\n this.#delete(k, 'fetch');\n }\n }\n else {\n if (options.status)\n options.status.fetchUpdated = true;\n this.set(k, v, fetchOpts.options);\n }\n }\n return v;\n };\n const eb = (er) => {\n if (options.status) {\n options.status.fetchRejected = true;\n options.status.fetchError = er;\n }\n return fetchFail(er);\n };\n const fetchFail = (er) => {\n const { aborted } = ac.signal;\n const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n const noDelete = allowStale || options.noDeleteOnFetchRejection;\n const bf = p;\n if (this.#valList[index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del = !noDelete || bf.__staleWhileFetching === undefined;\n if (del) {\n this.#delete(k, 'fetch');\n }\n else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index] = bf.__staleWhileFetching;\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true;\n }\n return bf.__staleWhileFetching;\n }\n else if (bf.__returned === bf) {\n throw er;\n }\n };\n const pcall = (res, rej) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej);\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (!options.ignoreFetchAbort ||\n options.allowStaleOnFetchAbort) {\n res(undefined);\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true);\n }\n }\n });\n };\n if (options.status)\n options.status.fetchDispatched = true;\n const p = new Promise(pcall).then(cb, eb);\n const bf = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n });\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, bf, { ...fetchOpts.options, status: undefined });\n index = this.#keyMap.get(k);\n }\n else {\n this.#valList[index] = bf;\n }\n return bf;\n }\n #isBackgroundFetch(p) {\n if (!this.#hasFetchMethod)\n return false;\n const b = p;\n return (!!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AC);\n }\n async fetch(k, fetchOptions = {}) {\n const { \n // get options\n allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n // set options\n ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n if (!this.#hasFetchMethod) {\n if (status)\n status.fetch = 'get';\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n });\n }\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n };\n let index = this.#keyMap.get(k);\n if (index === undefined) {\n if (status)\n status.fetch = 'miss';\n const p = this.#backgroundFetch(k, index, options, context);\n return (p.__returned = p);\n }\n else {\n // in cache, maybe already fetching\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n const stale = allowStale && v.__staleWhileFetching !== undefined;\n if (status) {\n status.fetch = 'inflight';\n if (stale)\n status.returnedStale = true;\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v);\n }\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index);\n if (!forceRefresh && !isStale) {\n if (status)\n status.fetch = 'hit';\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n if (status)\n this.#statusTTL(status, index);\n return v;\n }\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context);\n const hasStale = p.__staleWhileFetching !== undefined;\n const staleVal = hasStale && allowStale;\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh';\n if (staleVal && isStale)\n status.returnedStale = true;\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n }\n }\n async forceFetch(k, fetchOptions = {}) {\n const v = await this.fetch(k, fetchOptions);\n if (v === undefined)\n throw new Error('fetch() returned undefined');\n return v;\n }\n memo(k, memoOptions = {}) {\n const memoMethod = this.#memoMethod;\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor');\n }\n const { context, forceRefresh, ...options } = memoOptions;\n const v = this.get(k, options);\n if (!forceRefresh && v !== undefined)\n return v;\n const vv = memoMethod(k, v, {\n options,\n context,\n });\n this.set(k, vv, options);\n return vv;\n }\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k, getOptions = {}) {\n const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const value = this.#valList[index];\n const fetching = this.#isBackgroundFetch(value);\n if (status)\n this.#statusTTL(status, index);\n if (this.#isStale(index)) {\n if (status)\n status.get = 'stale';\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire');\n }\n if (status && allowStale)\n status.returnedStale = true;\n return allowStale ? value : undefined;\n }\n else {\n if (status &&\n allowStale &&\n value.__staleWhileFetching !== undefined) {\n status.returnedStale = true;\n }\n return allowStale ? value.__staleWhileFetching : undefined;\n }\n }\n else {\n if (status)\n status.get = 'hit';\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching;\n }\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n return value;\n }\n }\n else if (status) {\n status.get = 'miss';\n }\n }\n #connect(p, n) {\n this.#prev[n] = p;\n this.#next[p] = n;\n }\n #moveToTail(index) {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n this.#connect(this.#prev[index], this.#next[index]);\n }\n this.#connect(this.#tail, index);\n this.#tail = index;\n }\n }\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k) {\n return this.#delete(k, 'delete');\n }\n #delete(k, reason) {\n let deleted = false;\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n deleted = true;\n if (this.#size === 1) {\n this.#clear(reason);\n }\n else {\n this.#removeItemSize(index);\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n this.#keyMap.delete(k);\n this.#keyList[index] = undefined;\n this.#valList[index] = undefined;\n if (index === this.#tail) {\n this.#tail = this.#prev[index];\n }\n else if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n const pi = this.#prev[index];\n this.#next[pi] = this.#next[index];\n const ni = this.#next[index];\n this.#prev[ni] = this.#prev[index];\n }\n this.#size--;\n this.#free.push(index);\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return deleted;\n }\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete');\n }\n #clear(reason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else {\n const k = this.#keyList[index];\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n }\n this.#keyMap.clear();\n this.#valList.fill(undefined);\n this.#keyList.fill(undefined);\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0);\n this.#starts.fill(0);\n }\n if (this.#sizes) {\n this.#sizes.fill(0);\n }\n this.#head = 0;\n this.#tail = 0;\n this.#free.length = 0;\n this.#calculatedSize = 0;\n this.#size = 0;\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n}\nexports.LRUCache = LRUCache;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertValidPattern = void 0;\nconst MAX_PATTERN_LENGTH = 1024 * 64;\nconst assertValidPattern = (pattern) => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern');\n }\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long');\n }\n};\nexports.assertValidPattern = assertValidPattern;\n//# sourceMappingURL=assert-valid-pattern.js.map","\"use strict\";\n// parse a single path portion\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AST = void 0;\nconst brace_expressions_js_1 = require(\"./brace-expressions.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nclass AST {\n type;\n #root;\n #hasMagic;\n #uflag = false;\n #parts = [];\n #parent;\n #parentIndex;\n #negs;\n #filledNegs = false;\n #options;\n #toString;\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt = false;\n constructor(type, parent, options = {}) {\n this.type = type;\n // extglobs are inherently magical\n if (type)\n this.#hasMagic = true;\n this.#parent = parent;\n this.#root = this.#parent ? this.#parent.#root : this;\n this.#options = this.#root === this ? options : this.#root.#options;\n this.#negs = this.#root === this ? [] : this.#root.#negs;\n if (type === '!' && !this.#root.#filledNegs)\n this.#negs.push(this);\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n }\n get hasMagic() {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined)\n return this.#hasMagic;\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string')\n continue;\n if (p.type || p.hasMagic)\n return (this.#hasMagic = true);\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic;\n }\n // reconstructs the pattern\n toString() {\n if (this.#toString !== undefined)\n return this.#toString;\n if (!this.type) {\n return (this.#toString = this.#parts.map(p => String(p)).join(''));\n }\n else {\n return (this.#toString =\n this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n }\n }\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root)\n throw new Error('should only call on root');\n if (this.#filledNegs)\n return this;\n /* c8 ignore stop */\n // call toString() once to fill this out\n this.toString();\n this.#filledNegs = true;\n let n;\n while ((n = this.#negs.pop())) {\n if (n.type !== '!')\n continue;\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p = n;\n let pp = p.#parent;\n while (pp) {\n for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??');\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i]);\n }\n }\n p = pp;\n pp = p.#parent;\n }\n }\n return this;\n }\n push(...parts) {\n for (const p of parts) {\n if (p === '')\n continue;\n /* c8 ignore start */\n if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n throw new Error('invalid part: ' + p);\n }\n /* c8 ignore stop */\n this.#parts.push(p);\n }\n }\n toJSON() {\n const ret = this.type === null\n ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => p.toJSON())];\n if (this.isStart() && !this.type)\n ret.unshift([]);\n if (this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n ret.push({});\n }\n return ret;\n }\n isStart() {\n if (this.#root === this)\n return true;\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart())\n return false;\n if (this.#parentIndex === 0)\n return true;\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent;\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i];\n if (!(pp instanceof AST && pp.type === '!')) {\n return false;\n }\n }\n return true;\n }\n isEnd() {\n if (this.#root === this)\n return true;\n if (this.#parent?.type === '!')\n return true;\n if (!this.#parent?.isEnd())\n return false;\n if (!this.type)\n return this.#parent?.isEnd();\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0;\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1;\n }\n copyIn(part) {\n if (typeof part === 'string')\n this.push(part);\n else\n this.push(part.clone(this));\n }\n clone(parent) {\n const c = new AST(this.type, parent);\n for (const p of this.#parts) {\n c.copyIn(p);\n }\n return c;\n }\n static #parseAST(str, ast, pos, opt) {\n let escaping = false;\n let inBrace = false;\n let braceStart = -1;\n let braceNeg = false;\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos;\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n ast.push(acc);\n acc = '';\n const ext = new AST(c, ast);\n i = AST.#parseAST(str, ext, i, opt);\n ast.push(ext);\n continue;\n }\n acc += c;\n }\n ast.push(acc);\n return i;\n }\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1;\n let part = new AST(null, ast);\n const parts = [];\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (isExtglobType(c) && str.charAt(i) === '(') {\n part.push(acc);\n acc = '';\n const ext = new AST(c, part);\n part.push(ext);\n i = AST.#parseAST(str, ext, i, opt);\n continue;\n }\n if (c === '|') {\n part.push(acc);\n acc = '';\n parts.push(part);\n part = new AST(null, ast);\n continue;\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true;\n }\n part.push(acc);\n acc = '';\n ast.push(...parts, part);\n return i;\n }\n acc += c;\n }\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null;\n ast.#hasMagic = undefined;\n ast.#parts = [str.substring(pos - 1)];\n return i;\n }\n static fromGlob(pattern, options = {}) {\n const ast = new AST(null, undefined, options);\n AST.#parseAST(pattern, ast, 0, options);\n return ast;\n }\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern() {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root)\n return this.#root.toMMPattern();\n /* c8 ignore stop */\n const glob = this.toString();\n const [re, body, hasMagic, uflag] = this.toRegExpSource();\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic = hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase());\n if (!anyMagic) {\n return body;\n }\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n });\n }\n get options() {\n return this.#options;\n }\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(allowDot) {\n const dot = allowDot ?? !!this.#options.dot;\n if (this.#root === this)\n this.#fillNegs();\n if (!this.type) {\n const noEmpty = this.isStart() && this.isEnd();\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] = typeof p === 'string'\n ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot);\n this.#hasMagic = this.#hasMagic || hasMagic;\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .join('');\n let start = '';\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n if (!dotTravAllowed) {\n const aps = addPatternStart;\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav = \n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n }\n }\n }\n // append the \"end of path portion\" pattern to negation tails\n let end = '';\n if (this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!') {\n end = '(?:$|\\\\/)';\n }\n const final = start + src + end;\n return [\n final,\n (0, unescape_js_1.unescape)(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n const repeated = this.type === '*' || this.type === '+';\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n let body = this.#partsToRegExp(dot);\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString();\n this.#parts = [s];\n this.type = null;\n this.#hasMagic = undefined;\n return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];\n }\n // XXX abstract out this map method\n let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n ? ''\n : this.#partsToRegExp(true);\n if (bodyDotAllowed === body) {\n bodyDotAllowed = '';\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`;\n }\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = '';\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n }\n else {\n const close = this.type === '!'\n ? // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@'\n ? ')'\n : this.type === '?'\n ? ')?'\n : this.type === '+' && bodyDotAllowed\n ? ')'\n : this.type === '*' && bodyDotAllowed\n ? `)?`\n : `)${this.type}`;\n final = start + body + close;\n }\n return [\n final,\n (0, unescape_js_1.unescape)(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n #partsToRegExp(dot) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??');\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|');\n }\n static #parseGlob(glob, hasMagic, noEmpty = false) {\n let escaping = false;\n let re = '';\n let uflag = false;\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i);\n if (escaping) {\n escaping = false;\n re += (reSpecials.has(c) ? '\\\\' : '') + c;\n continue;\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\';\n }\n else {\n escaping = true;\n }\n continue;\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i);\n if (consumed) {\n re += src;\n uflag = uflag || needUflag;\n i += consumed - 1;\n hasMagic = hasMagic || magic;\n continue;\n }\n }\n if (c === '*') {\n if (noEmpty && glob === '*')\n re += starNoEmpty;\n else\n re += star;\n hasMagic = true;\n continue;\n }\n if (c === '?') {\n re += qmark;\n hasMagic = true;\n continue;\n }\n re += regExpEscape(c);\n }\n return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];\n }\n}\nexports.AST = AST;\n//# sourceMappingURL=ast.js.map","\"use strict\";\n// translate the various posix character classes into unicode properties\n// this works across all unicode locales\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseClass = void 0;\n// { : [, /u flag required, negated]\nconst posixClasses = {\n '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n '[:cntrl:]': ['\\\\p{Cc}', true],\n '[:digit:]': ['\\\\p{Nd}', true],\n '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n '[:lower:]': ['\\\\p{Ll}', true],\n '[:print:]': ['\\\\p{C}', true],\n '[:punct:]': ['\\\\p{P}', true],\n '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n '[:upper:]': ['\\\\p{Lu}', true],\n '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nconst parseClass = (glob, position) => {\n const pos = position;\n /* c8 ignore start */\n if (glob.charAt(pos) !== '[') {\n throw new Error('not in a brace expression');\n }\n /* c8 ignore stop */\n const ranges = [];\n const negs = [];\n let i = pos + 1;\n let sawStart = false;\n let uflag = false;\n let escaping = false;\n let negate = false;\n let endPos = pos;\n let rangeStart = '';\n WHILE: while (i < glob.length) {\n const c = glob.charAt(i);\n if ((c === '!' || c === '^') && i === pos + 1) {\n negate = true;\n i++;\n continue;\n }\n if (c === ']' && sawStart && !escaping) {\n endPos = i + 1;\n break;\n }\n sawStart = true;\n if (c === '\\\\') {\n if (!escaping) {\n escaping = true;\n i++;\n continue;\n }\n // escaped \\ char, fall through and treat like normal char\n }\n if (c === '[' && !escaping) {\n // either a posix class, a collation equivalent, or just a [\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i)) {\n // invalid, [a-[] is fine, but not [a-[:alpha]]\n if (rangeStart) {\n return ['$.', false, glob.length - pos, true];\n }\n i += cls.length;\n if (neg)\n negs.push(unip);\n else\n ranges.push(unip);\n uflag = uflag || u;\n continue WHILE;\n }\n }\n }\n // now it's just a normal character, effectively\n escaping = false;\n if (rangeStart) {\n // throw this range away if it's not valid, but others\n // can still match.\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n }\n else if (c === rangeStart) {\n ranges.push(braceEscape(c));\n }\n rangeStart = '';\n i++;\n continue;\n }\n // now might be the start of a range.\n // can be either c-d or c-] or c] or c] at this point\n if (glob.startsWith('-]', i + 1)) {\n ranges.push(braceEscape(c + '-'));\n i += 2;\n continue;\n }\n if (glob.startsWith('-', i + 1)) {\n rangeStart = c;\n i += 2;\n continue;\n }\n // not the start of a range, just a single character\n ranges.push(braceEscape(c));\n i++;\n }\n if (endPos < i) {\n // didn't see the end of the class, not a valid class,\n // but might still be valid as a literal match.\n return ['', false, 0, false];\n }\n // if we got no ranges and no negates, then we have a range that\n // cannot possibly match anything, and that poisons the whole glob\n if (!ranges.length && !negs.length) {\n return ['$.', false, glob.length - pos, true];\n }\n // if we got one positive range, and it's a single character, then that's\n // not actually a magic pattern, it's just that one literal character.\n // we should not treat that as \"magic\", we should just return the literal\n // character. [_] is a perfectly valid way to escape glob magic chars.\n if (negs.length === 0 &&\n ranges.length === 1 &&\n /^\\\\?.$/.test(ranges[0]) &&\n !negate) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n return [regexpEscape(r), false, endPos - pos, false];\n }\n const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n const comb = ranges.length && negs.length\n ? '(' + sranges + '|' + snegs + ')'\n : ranges.length\n ? sranges\n : snegs;\n return [comb, uflag, endPos - pos, true];\n};\nexports.parseClass = parseClass;\n//# sourceMappingURL=brace-expressions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escape = void 0;\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nconst escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\nexports.escape = escape;\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;\nconst brace_expansion_1 = __importDefault(require(\"brace-expansion\"));\nconst assert_valid_pattern_js_1 = require(\"./assert-valid-pattern.js\");\nconst ast_js_1 = require(\"./ast.js\");\nconst escape_js_1 = require(\"./escape.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst minimatch = (p, pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false;\n }\n return new Minimatch(pattern, options).match(p);\n};\nexports.minimatch = minimatch;\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n ext = ext.toLowerCase();\n return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n ext = ext.toLowerCase();\n return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n ? (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix');\nconst path = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nexports.minimatch.sep = exports.sep;\nexports.GLOBSTAR = Symbol('globstar **');\nexports.minimatch.GLOBSTAR = exports.GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nconst filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options);\nexports.filter = filter;\nexports.minimatch.filter = exports.filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nconst defaults = (def) => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return exports.minimatch;\n }\n const orig = exports.minimatch;\n const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern, options = {}) {\n super(pattern, ext(def, options));\n }\n static defaults(options) {\n return orig.defaults(ext(def, options)).Minimatch;\n }\n },\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(type, parent, options = {}) {\n super(type, parent, ext(def, options));\n }\n /* c8 ignore stop */\n static fromGlob(pattern, options = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options));\n }\n },\n unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n defaults: (options) => orig.defaults(ext(def, options)),\n makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n sep: orig.sep,\n GLOBSTAR: exports.GLOBSTAR,\n });\n};\nexports.defaults = defaults;\nexports.minimatch.defaults = exports.defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nconst braceExpand = (pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern];\n }\n return (0, brace_expansion_1.default)(pattern);\n};\nexports.braceExpand = braceExpand;\nexports.minimatch.braceExpand = exports.braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nexports.makeRe = makeRe;\nexports.minimatch.makeRe = exports.makeRe;\nconst match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options);\n list = list.filter(f => mm.match(f));\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n};\nexports.match = match;\nexports.minimatch.match = exports.match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nclass Minimatch {\n options;\n set;\n pattern;\n windowsPathsNoEscape;\n nonegate;\n negate;\n comment;\n empty;\n preserveMultipleSlashes;\n partial;\n globSet;\n globParts;\n nocase;\n isWindows;\n platform;\n windowsNoMagicRoot;\n regexp;\n constructor(pattern, options = {}) {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n options = options || {};\n this.options = options;\n this.pattern = pattern;\n this.platform = options.platform || defaultPlatform;\n this.isWindows = this.platform === 'win32';\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/');\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n this.regexp = null;\n this.negate = false;\n this.nonegate = !!options.nonegate;\n this.comment = false;\n this.empty = false;\n this.partial = !!options.partial;\n this.nocase = !!this.options.nocase;\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined\n ? options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase);\n this.globSet = [];\n this.globParts = [];\n this.set = [];\n // make the set of regexps etc.\n this.make();\n }\n hasMagic() {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true;\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string')\n return true;\n }\n }\n return false;\n }\n debug(..._) { }\n make() {\n const pattern = this.pattern;\n const options = this.options;\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n // step 1: figure out negation, etc.\n this.parseNegate();\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())];\n if (options.debug) {\n this.debug = (...args) => console.error(...args);\n }\n this.debug(this.pattern, this.globSet);\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n this.globParts = this.preprocess(rawGlobParts);\n this.debug(this.pattern, this.globParts);\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC = s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3]);\n const isDrive = /^[a-z]:/i.test(s[0]);\n if (isUNC) {\n return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n }\n else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n }\n }\n return s.map(ss => this.parse(ss));\n });\n this.debug(this.pattern, set);\n // filter out everything that didn't compile properly.\n this.set = set.filter(s => s.indexOf(false) === -1);\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i];\n if (p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])) {\n p[2] = '?';\n }\n }\n }\n this.debug(this.pattern, this.set);\n }\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts) {\n // if we're not in globstar mode, then turn all ** into *\n if (this.options.noglobstar) {\n for (let i = 0; i < globParts.length; i++) {\n for (let j = 0; j < globParts[i].length; j++) {\n if (globParts[i][j] === '**') {\n globParts[i][j] = '*';\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts);\n globParts = this.secondPhasePreProcess(globParts);\n }\n else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts);\n }\n else {\n // just collapse multiple ** portions into one\n globParts = this.adjascentGlobstarOptimize(globParts);\n }\n return globParts;\n }\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts) {\n return globParts.map(parts => {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs;\n while (parts[i + 1] === '**') {\n i++;\n }\n if (i !== gs) {\n parts.splice(gs, i - gs);\n }\n }\n return parts;\n });\n }\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts) {\n return globParts.map(parts => {\n parts = parts.reduce((set, part) => {\n const prev = set[set.length - 1];\n if (part === '**' && prev === '**') {\n return set;\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop();\n return set;\n }\n }\n set.push(part);\n return set;\n }, []);\n return parts.length === 0 ? [''] : parts;\n });\n }\n levelTwoFileOptimize(parts) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts);\n }\n let didSomething = false;\n do {\n didSomething = false;\n //
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === exports.GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return (0, exports.braceExpand)(this.pattern, this.options);\n    }\n    parse(pattern) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return exports.GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === exports.GLOBSTAR\n                        ? exports.GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== exports.GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== exports.GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = exports.GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== exports.GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return exports.minimatch.defaults(def).Minimatch;\n    }\n}\nexports.Minimatch = Minimatch;\n/* c8 ignore start */\nvar ast_js_2 = require(\"./ast.js\");\nObject.defineProperty(exports, \"AST\", { enumerable: true, get: function () { return ast_js_2.AST; } });\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nvar unescape_js_2 = require(\"./unescape.js\");\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return unescape_js_2.unescape; } });\n/* c8 ignore stop */\nexports.minimatch.AST = ast_js_1.AST;\nexports.minimatch.Minimatch = Minimatch;\nexports.minimatch.escape = escape_js_1.escape;\nexports.minimatch.unescape = unescape_js_1.unescape;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = void 0;\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nconst unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    return windowsPathsNoEscape\n        ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n        : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\nexports.unescape = unescape;\n//# sourceMappingURL=unescape.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathScurry = exports.Path = exports.PathScurryDarwin = exports.PathScurryPosix = exports.PathScurryWin32 = exports.PathScurryBase = exports.PathPosix = exports.PathWin32 = exports.PathBase = exports.ChildrenCache = exports.ResolveCache = void 0;\nconst lru_cache_1 = require(\"lru-cache\");\nconst node_path_1 = require(\"node:path\");\nconst node_url_1 = require(\"node:url\");\nconst fs_1 = require(\"fs\");\nconst actualFS = __importStar(require(\"node:fs\"));\nconst realpathSync = fs_1.realpathSync.native;\n// TODO: test perf of fs/promises realpath vs realpathCB,\n// since the promises one uses realpath.native\nconst promises_1 = require(\"node:fs/promises\");\nconst minipass_1 = require(\"minipass\");\nconst defaultFS = {\n    lstatSync: fs_1.lstatSync,\n    readdir: fs_1.readdir,\n    readdirSync: fs_1.readdirSync,\n    readlinkSync: fs_1.readlinkSync,\n    realpathSync,\n    promises: {\n        lstat: promises_1.lstat,\n        readdir: promises_1.readdir,\n        readlink: promises_1.readlink,\n        realpath: promises_1.realpath,\n    },\n};\n// if they just gave us require('fs') then use our default\nconst fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ?\n    defaultFS\n    : {\n        ...defaultFS,\n        ...fsOption,\n        promises: {\n            ...defaultFS.promises,\n            ...(fsOption.promises || {}),\n        },\n    };\n// turn something like //?/c:/ into c:\\\nconst uncDriveRegexp = /^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i;\nconst uncToDrive = (rootPath) => rootPath.replace(/\\//g, '\\\\').replace(uncDriveRegexp, '$1\\\\');\n// windows paths are separated by either / or \\\nconst eitherSep = /[\\\\\\/]/;\nconst UNKNOWN = 0; // may not even exist, for all we know\nconst IFIFO = 0b0001;\nconst IFCHR = 0b0010;\nconst IFDIR = 0b0100;\nconst IFBLK = 0b0110;\nconst IFREG = 0b1000;\nconst IFLNK = 0b1010;\nconst IFSOCK = 0b1100;\nconst IFMT = 0b1111;\n// mask to unset low 4 bits\nconst IFMT_UNKNOWN = ~IFMT;\n// set after successfully calling readdir() and getting entries.\nconst READDIR_CALLED = 0b0000_0001_0000;\n// set after a successful lstat()\nconst LSTAT_CALLED = 0b0000_0010_0000;\n// set if an entry (or one of its parents) is definitely not a dir\nconst ENOTDIR = 0b0000_0100_0000;\n// set if an entry (or one of its parents) does not exist\n// (can also be set on lstat errors like EACCES or ENAMETOOLONG)\nconst ENOENT = 0b0000_1000_0000;\n// cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK\n// set if we fail to readlink\nconst ENOREADLINK = 0b0001_0000_0000;\n// set if we know realpath() will fail\nconst ENOREALPATH = 0b0010_0000_0000;\nconst ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;\nconst TYPEMASK = 0b0011_1111_1111;\nconst entToType = (s) => s.isFile() ? IFREG\n    : s.isDirectory() ? IFDIR\n        : s.isSymbolicLink() ? IFLNK\n            : s.isCharacterDevice() ? IFCHR\n                : s.isBlockDevice() ? IFBLK\n                    : s.isSocket() ? IFSOCK\n                        : s.isFIFO() ? IFIFO\n                            : UNKNOWN;\n// normalize unicode path names\nconst normalizeCache = new Map();\nconst normalize = (s) => {\n    const c = normalizeCache.get(s);\n    if (c)\n        return c;\n    const n = s.normalize('NFKD');\n    normalizeCache.set(s, n);\n    return n;\n};\nconst normalizeNocaseCache = new Map();\nconst normalizeNocase = (s) => {\n    const c = normalizeNocaseCache.get(s);\n    if (c)\n        return c;\n    const n = normalize(s.toLowerCase());\n    normalizeNocaseCache.set(s, n);\n    return n;\n};\n/**\n * An LRUCache for storing resolved path strings or Path objects.\n * @internal\n */\nclass ResolveCache extends lru_cache_1.LRUCache {\n    constructor() {\n        super({ max: 256 });\n    }\n}\nexports.ResolveCache = ResolveCache;\n// In order to prevent blowing out the js heap by allocating hundreds of\n// thousands of Path entries when walking extremely large trees, the \"children\"\n// in this tree are represented by storing an array of Path entries in an\n// LRUCache, indexed by the parent.  At any time, Path.children() may return an\n// empty array, indicating that it doesn't know about any of its children, and\n// thus has to rebuild that cache.  This is fine, it just means that we don't\n// benefit as much from having the cached entries, but huge directory walks\n// don't blow out the stack, and smaller ones are still as fast as possible.\n//\n//It does impose some complexity when building up the readdir data, because we\n//need to pass a reference to the children array that we started with.\n/**\n * an LRUCache for storing child entries.\n * @internal\n */\nclass ChildrenCache extends lru_cache_1.LRUCache {\n    constructor(maxSize = 16 * 1024) {\n        super({\n            maxSize,\n            // parent + children\n            sizeCalculation: a => a.length + 1,\n        });\n    }\n}\nexports.ChildrenCache = ChildrenCache;\nconst setAsCwd = Symbol('PathScurry setAsCwd');\n/**\n * Path objects are sort of like a super-powered\n * {@link https://nodejs.org/docs/latest/api/fs.html#class-fsdirent fs.Dirent}\n *\n * Each one represents a single filesystem entry on disk, which may or may not\n * exist. It includes methods for reading various types of information via\n * lstat, readlink, and readdir, and caches all information to the greatest\n * degree possible.\n *\n * Note that fs operations that would normally throw will instead return an\n * \"empty\" value. This is in order to prevent excessive overhead from error\n * stack traces.\n */\nclass PathBase {\n    /**\n     * the basename of this path\n     *\n     * **Important**: *always* test the path name against any test string\n     * usingthe {@link isNamed} method, and not by directly comparing this\n     * string. Otherwise, unicode path strings that the system sees as identical\n     * will not be properly treated as the same path, leading to incorrect\n     * behavior and possible security issues.\n     */\n    name;\n    /**\n     * the Path entry corresponding to the path root.\n     *\n     * @internal\n     */\n    root;\n    /**\n     * All roots found within the current PathScurry family\n     *\n     * @internal\n     */\n    roots;\n    /**\n     * a reference to the parent path, or undefined in the case of root entries\n     *\n     * @internal\n     */\n    parent;\n    /**\n     * boolean indicating whether paths are compared case-insensitively\n     * @internal\n     */\n    nocase;\n    /**\n     * boolean indicating that this path is the current working directory\n     * of the PathScurry collection that contains it.\n     */\n    isCWD = false;\n    // potential default fs override\n    #fs;\n    // Stats fields\n    #dev;\n    get dev() {\n        return this.#dev;\n    }\n    #mode;\n    get mode() {\n        return this.#mode;\n    }\n    #nlink;\n    get nlink() {\n        return this.#nlink;\n    }\n    #uid;\n    get uid() {\n        return this.#uid;\n    }\n    #gid;\n    get gid() {\n        return this.#gid;\n    }\n    #rdev;\n    get rdev() {\n        return this.#rdev;\n    }\n    #blksize;\n    get blksize() {\n        return this.#blksize;\n    }\n    #ino;\n    get ino() {\n        return this.#ino;\n    }\n    #size;\n    get size() {\n        return this.#size;\n    }\n    #blocks;\n    get blocks() {\n        return this.#blocks;\n    }\n    #atimeMs;\n    get atimeMs() {\n        return this.#atimeMs;\n    }\n    #mtimeMs;\n    get mtimeMs() {\n        return this.#mtimeMs;\n    }\n    #ctimeMs;\n    get ctimeMs() {\n        return this.#ctimeMs;\n    }\n    #birthtimeMs;\n    get birthtimeMs() {\n        return this.#birthtimeMs;\n    }\n    #atime;\n    get atime() {\n        return this.#atime;\n    }\n    #mtime;\n    get mtime() {\n        return this.#mtime;\n    }\n    #ctime;\n    get ctime() {\n        return this.#ctime;\n    }\n    #birthtime;\n    get birthtime() {\n        return this.#birthtime;\n    }\n    #matchName;\n    #depth;\n    #fullpath;\n    #fullpathPosix;\n    #relative;\n    #relativePosix;\n    #type;\n    #children;\n    #linkTarget;\n    #realpath;\n    /**\n     * This property is for compatibility with the Dirent class as of\n     * Node v20, where Dirent['parentPath'] refers to the path of the\n     * directory that was passed to readdir. For root entries, it's the path\n     * to the entry itself.\n     */\n    get parentPath() {\n        return (this.parent || this).fullpath();\n    }\n    /**\n     * Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,\n     * this property refers to the *parent* path, not the path object itself.\n     */\n    get path() {\n        return this.parentPath;\n    }\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        this.name = name;\n        this.#matchName = nocase ? normalizeNocase(name) : normalize(name);\n        this.#type = type & TYPEMASK;\n        this.nocase = nocase;\n        this.roots = roots;\n        this.root = root || this;\n        this.#children = children;\n        this.#fullpath = opts.fullpath;\n        this.#relative = opts.relative;\n        this.#relativePosix = opts.relativePosix;\n        this.parent = opts.parent;\n        if (this.parent) {\n            this.#fs = this.parent.#fs;\n        }\n        else {\n            this.#fs = fsFromOption(opts.fs);\n        }\n    }\n    /**\n     * Returns the depth of the Path object from its root.\n     *\n     * For example, a path at `/foo/bar` would have a depth of 2.\n     */\n    depth() {\n        if (this.#depth !== undefined)\n            return this.#depth;\n        if (!this.parent)\n            return (this.#depth = 0);\n        return (this.#depth = this.parent.depth() + 1);\n    }\n    /**\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Get the Path object referenced by the string path, resolved from this Path\n     */\n    resolve(path) {\n        if (!path) {\n            return this;\n        }\n        const rootPath = this.getRootString(path);\n        const dir = path.substring(rootPath.length);\n        const dirParts = dir.split(this.splitSep);\n        const result = rootPath ?\n            this.getRoot(rootPath).#resolveParts(dirParts)\n            : this.#resolveParts(dirParts);\n        return result;\n    }\n    #resolveParts(dirParts) {\n        let p = this;\n        for (const part of dirParts) {\n            p = p.child(part);\n        }\n        return p;\n    }\n    /**\n     * Returns the cached children Path objects, if still available.  If they\n     * have fallen out of the cache, then returns an empty array, and resets the\n     * READDIR_CALLED bit, so that future calls to readdir() will require an fs\n     * lookup.\n     *\n     * @internal\n     */\n    children() {\n        const cached = this.#children.get(this);\n        if (cached) {\n            return cached;\n        }\n        const children = Object.assign([], { provisional: 0 });\n        this.#children.set(this, children);\n        this.#type &= ~READDIR_CALLED;\n        return children;\n    }\n    /**\n     * Resolves a path portion and returns or creates the child Path.\n     *\n     * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is\n     * `'..'`.\n     *\n     * This should not be called directly.  If `pathPart` contains any path\n     * separators, it will lead to unsafe undefined behavior.\n     *\n     * Use `Path.resolve()` instead.\n     *\n     * @internal\n     */\n    child(pathPart, opts) {\n        if (pathPart === '' || pathPart === '.') {\n            return this;\n        }\n        if (pathPart === '..') {\n            return this.parent || this;\n        }\n        // find the child\n        const children = this.children();\n        const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);\n        for (const p of children) {\n            if (p.#matchName === name) {\n                return p;\n            }\n        }\n        // didn't find it, create provisional child, since it might not\n        // actually exist.  If we know the parent isn't a dir, then\n        // in fact it CAN'T exist.\n        const s = this.parent ? this.sep : '';\n        const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : undefined;\n        const pchild = this.newChild(pathPart, UNKNOWN, {\n            ...opts,\n            parent: this,\n            fullpath,\n        });\n        if (!this.canReaddir()) {\n            pchild.#type |= ENOENT;\n        }\n        // don't have to update provisional, because if we have real children,\n        // then provisional is set to children.length, otherwise a lower number\n        children.push(pchild);\n        return pchild;\n    }\n    /**\n     * The relative path from the cwd. If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpath()\n     */\n    relative() {\n        if (this.isCWD)\n            return '';\n        if (this.#relative !== undefined) {\n            return this.#relative;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relative = this.name);\n        }\n        const pv = p.relative();\n        return pv + (!pv || !p.parent ? '' : this.sep) + name;\n    }\n    /**\n     * The relative path from the cwd, using / as the path separator.\n     * If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpathPosix()\n     * On posix systems, this is identical to relative().\n     */\n    relativePosix() {\n        if (this.sep === '/')\n            return this.relative();\n        if (this.isCWD)\n            return '';\n        if (this.#relativePosix !== undefined)\n            return this.#relativePosix;\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relativePosix = this.fullpathPosix());\n        }\n        const pv = p.relativePosix();\n        return pv + (!pv || !p.parent ? '' : '/') + name;\n    }\n    /**\n     * The fully resolved path string for this Path entry\n     */\n    fullpath() {\n        if (this.#fullpath !== undefined) {\n            return this.#fullpath;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#fullpath = this.name);\n        }\n        const pv = p.fullpath();\n        const fp = pv + (!p.parent ? '' : this.sep) + name;\n        return (this.#fullpath = fp);\n    }\n    /**\n     * On platforms other than windows, this is identical to fullpath.\n     *\n     * On windows, this is overridden to return the forward-slash form of the\n     * full UNC path.\n     */\n    fullpathPosix() {\n        if (this.#fullpathPosix !== undefined)\n            return this.#fullpathPosix;\n        if (this.sep === '/')\n            return (this.#fullpathPosix = this.fullpath());\n        if (!this.parent) {\n            const p = this.fullpath().replace(/\\\\/g, '/');\n            if (/^[a-z]:\\//i.test(p)) {\n                return (this.#fullpathPosix = `//?/${p}`);\n            }\n            else {\n                return (this.#fullpathPosix = p);\n            }\n        }\n        const p = this.parent;\n        const pfpp = p.fullpathPosix();\n        const fpp = pfpp + (!pfpp || !p.parent ? '' : '/') + this.name;\n        return (this.#fullpathPosix = fpp);\n    }\n    /**\n     * Is the Path of an unknown type?\n     *\n     * Note that we might know *something* about it if there has been a previous\n     * filesystem operation, for example that it does not exist, or is not a\n     * link, or whether it has child entries.\n     */\n    isUnknown() {\n        return (this.#type & IFMT) === UNKNOWN;\n    }\n    isType(type) {\n        return this[`is${type}`]();\n    }\n    getType() {\n        return (this.isUnknown() ? 'Unknown'\n            : this.isDirectory() ? 'Directory'\n                : this.isFile() ? 'File'\n                    : this.isSymbolicLink() ? 'SymbolicLink'\n                        : this.isFIFO() ? 'FIFO'\n                            : this.isCharacterDevice() ? 'CharacterDevice'\n                                : this.isBlockDevice() ? 'BlockDevice'\n                                    : /* c8 ignore start */ this.isSocket() ? 'Socket'\n                                        : 'Unknown');\n        /* c8 ignore stop */\n    }\n    /**\n     * Is the Path a regular file?\n     */\n    isFile() {\n        return (this.#type & IFMT) === IFREG;\n    }\n    /**\n     * Is the Path a directory?\n     */\n    isDirectory() {\n        return (this.#type & IFMT) === IFDIR;\n    }\n    /**\n     * Is the path a character device?\n     */\n    isCharacterDevice() {\n        return (this.#type & IFMT) === IFCHR;\n    }\n    /**\n     * Is the path a block device?\n     */\n    isBlockDevice() {\n        return (this.#type & IFMT) === IFBLK;\n    }\n    /**\n     * Is the path a FIFO pipe?\n     */\n    isFIFO() {\n        return (this.#type & IFMT) === IFIFO;\n    }\n    /**\n     * Is the path a socket?\n     */\n    isSocket() {\n        return (this.#type & IFMT) === IFSOCK;\n    }\n    /**\n     * Is the path a symbolic link?\n     */\n    isSymbolicLink() {\n        return (this.#type & IFLNK) === IFLNK;\n    }\n    /**\n     * Return the entry if it has been subject of a successful lstat, or\n     * undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* simply\n     * mean that we haven't called lstat on it.\n     */\n    lstatCached() {\n        return this.#type & LSTAT_CALLED ? this : undefined;\n    }\n    /**\n     * Return the cached link target if the entry has been the subject of a\n     * successful readlink, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readlink() has been called at some point.\n     */\n    readlinkCached() {\n        return this.#linkTarget;\n    }\n    /**\n     * Returns the cached realpath target if the entry has been the subject\n     * of a successful realpath, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * realpath() has been called at some point.\n     */\n    realpathCached() {\n        return this.#realpath;\n    }\n    /**\n     * Returns the cached child Path entries array if the entry has been the\n     * subject of a successful readdir(), or [] otherwise.\n     *\n     * Does not read the filesystem, so an empty array *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readdir() has been called recently enough to still be valid.\n     */\n    readdirCached() {\n        const children = this.children();\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * Return true if it's worth trying to readlink.  Ie, we don't (yet) have\n     * any indication that readlink will definitely fail.\n     *\n     * Returns false if the path is known to not be a symlink, if a previous\n     * readlink failed, or if the entry does not exist.\n     */\n    canReadlink() {\n        if (this.#linkTarget)\n            return true;\n        if (!this.parent)\n            return false;\n        // cases where it cannot possibly succeed\n        const ifmt = this.#type & IFMT;\n        return !((ifmt !== UNKNOWN && ifmt !== IFLNK) ||\n            this.#type & ENOREADLINK ||\n            this.#type & ENOENT);\n    }\n    /**\n     * Return true if readdir has previously been successfully called on this\n     * path, indicating that cachedReaddir() is likely valid.\n     */\n    calledReaddir() {\n        return !!(this.#type & READDIR_CALLED);\n    }\n    /**\n     * Returns true if the path is known to not exist. That is, a previous lstat\n     * or readdir failed to verify its existence when that would have been\n     * expected, or a parent entry was marked either enoent or enotdir.\n     */\n    isENOENT() {\n        return !!(this.#type & ENOENT);\n    }\n    /**\n     * Return true if the path is a match for the given path name.  This handles\n     * case sensitivity and unicode normalization.\n     *\n     * Note: even on case-sensitive systems, it is **not** safe to test the\n     * equality of the `.name` property to determine whether a given pathname\n     * matches, due to unicode normalization mismatches.\n     *\n     * Always use this method instead of testing the `path.name` property\n     * directly.\n     */\n    isNamed(n) {\n        return !this.nocase ?\n            this.#matchName === normalize(n)\n            : this.#matchName === normalizeNocase(n);\n    }\n    /**\n     * Return the Path object corresponding to the target of a symbolic link.\n     *\n     * If the Path is not a symbolic link, or if the readlink call fails for any\n     * reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     */\n    async readlink() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = await this.#fs.promises.readlink(this.fullpath());\n            const linkTarget = (await this.parent.realpath())?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    /**\n     * Synchronous {@link PathBase.readlink}\n     */\n    readlinkSync() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = this.#fs.readlinkSync(this.fullpath());\n            const linkTarget = this.parent.realpathSync()?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    #readdirSuccess(children) {\n        // succeeded, mark readdir called bit\n        this.#type |= READDIR_CALLED;\n        // mark all remaining provisional children as ENOENT\n        for (let p = children.provisional; p < children.length; p++) {\n            const c = children[p];\n            if (c)\n                c.#markENOENT();\n        }\n    }\n    #markENOENT() {\n        // mark as UNKNOWN and ENOENT\n        if (this.#type & ENOENT)\n            return;\n        this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;\n        this.#markChildrenENOENT();\n    }\n    #markChildrenENOENT() {\n        // all children are provisional and do not exist\n        const children = this.children();\n        children.provisional = 0;\n        for (const p of children) {\n            p.#markENOENT();\n        }\n    }\n    #markENOREALPATH() {\n        this.#type |= ENOREALPATH;\n        this.#markENOTDIR();\n    }\n    // save the information when we know the entry is not a dir\n    #markENOTDIR() {\n        // entry is not a directory, so any children can't exist.\n        // this *should* be impossible, since any children created\n        // after it's been marked ENOTDIR should be marked ENOENT,\n        // so it won't even get to this point.\n        /* c8 ignore start */\n        if (this.#type & ENOTDIR)\n            return;\n        /* c8 ignore stop */\n        let t = this.#type;\n        // this could happen if we stat a dir, then delete it,\n        // then try to read it or one of its children.\n        if ((t & IFMT) === IFDIR)\n            t &= IFMT_UNKNOWN;\n        this.#type = t | ENOTDIR;\n        this.#markChildrenENOENT();\n    }\n    #readdirFail(code = '') {\n        // markENOTDIR and markENOENT also set provisional=0\n        if (code === 'ENOTDIR' || code === 'EPERM') {\n            this.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            this.#markENOENT();\n        }\n        else {\n            this.children().provisional = 0;\n        }\n    }\n    #lstatFail(code = '') {\n        // Windows just raises ENOENT in this case, disable for win CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR') {\n            // already know it has a parent by this point\n            const p = this.parent;\n            p.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            /* c8 ignore stop */\n            this.#markENOENT();\n        }\n    }\n    #readlinkFail(code = '') {\n        let ter = this.#type;\n        ter |= ENOREADLINK;\n        if (code === 'ENOENT')\n            ter |= ENOENT;\n        // windows gets a weird error when you try to readlink a file\n        if (code === 'EINVAL' || code === 'UNKNOWN') {\n            // exists, but not a symlink, we don't know WHAT it is, so remove\n            // all IFMT bits.\n            ter &= IFMT_UNKNOWN;\n        }\n        this.#type = ter;\n        // windows just gets ENOENT in this case.  We do cover the case,\n        // just disabled because it's impossible on Windows CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR' && this.parent) {\n            this.parent.#markENOTDIR();\n        }\n        /* c8 ignore stop */\n    }\n    #readdirAddChild(e, c) {\n        return (this.#readdirMaybePromoteChild(e, c) ||\n            this.#readdirAddNewChild(e, c));\n    }\n    #readdirAddNewChild(e, c) {\n        // alloc new entry at head, so it's never provisional\n        const type = entToType(e);\n        const child = this.newChild(e.name, type, { parent: this });\n        const ifmt = child.#type & IFMT;\n        if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {\n            child.#type |= ENOTDIR;\n        }\n        c.unshift(child);\n        c.provisional++;\n        return child;\n    }\n    #readdirMaybePromoteChild(e, c) {\n        for (let p = c.provisional; p < c.length; p++) {\n            const pchild = c[p];\n            const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);\n            if (name !== pchild.#matchName) {\n                continue;\n            }\n            return this.#readdirPromoteChild(e, pchild, p, c);\n        }\n    }\n    #readdirPromoteChild(e, p, index, c) {\n        const v = p.name;\n        // retain any other flags, but set ifmt from dirent\n        p.#type = (p.#type & IFMT_UNKNOWN) | entToType(e);\n        // case sensitivity fixing when we learn the true name.\n        if (v !== e.name)\n            p.name = e.name;\n        // just advance provisional index (potentially off the list),\n        // otherwise we have to splice/pop it out and re-insert at head\n        if (index !== c.provisional) {\n            if (index === c.length - 1)\n                c.pop();\n            else\n                c.splice(index, 1);\n            c.unshift(p);\n        }\n        c.provisional++;\n        return p;\n    }\n    /**\n     * Call lstat() on this Path, and update all known information that can be\n     * determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    /**\n     * synchronous {@link PathBase.lstat}\n     */\n    lstatSync() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(this.#fs.lstatSync(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    #applyStat(st) {\n        const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid, } = st;\n        this.#atime = atime;\n        this.#atimeMs = atimeMs;\n        this.#birthtime = birthtime;\n        this.#birthtimeMs = birthtimeMs;\n        this.#blksize = blksize;\n        this.#blocks = blocks;\n        this.#ctime = ctime;\n        this.#ctimeMs = ctimeMs;\n        this.#dev = dev;\n        this.#gid = gid;\n        this.#ino = ino;\n        this.#mode = mode;\n        this.#mtime = mtime;\n        this.#mtimeMs = mtimeMs;\n        this.#nlink = nlink;\n        this.#rdev = rdev;\n        this.#size = size;\n        this.#uid = uid;\n        const ifmt = entToType(st);\n        // retain any other flags, but set the ifmt\n        this.#type = (this.#type & IFMT_UNKNOWN) | ifmt | LSTAT_CALLED;\n        if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {\n            this.#type |= ENOTDIR;\n        }\n    }\n    #onReaddirCB = [];\n    #readdirCBInFlight = false;\n    #callOnReaddirCB(children) {\n        this.#readdirCBInFlight = false;\n        const cbs = this.#onReaddirCB.slice();\n        this.#onReaddirCB.length = 0;\n        cbs.forEach(cb => cb(null, children));\n    }\n    /**\n     * Standard node-style callback interface to get list of directory entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     *\n     * @param cb The callback called with (er, entries).  Note that the `er`\n     * param is somewhat extraneous, as all readdir() errors are handled and\n     * simply result in an empty set of entries being returned.\n     * @param allowZalgo Boolean indicating that immediately known results should\n     * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release\n     * zalgo at your peril, the dark pony lord is devious and unforgiving.\n     */\n    readdirCB(cb, allowZalgo = false) {\n        if (!this.canReaddir()) {\n            if (allowZalgo)\n                cb(null, []);\n            else\n                queueMicrotask(() => cb(null, []));\n            return;\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            const c = children.slice(0, children.provisional);\n            if (allowZalgo)\n                cb(null, c);\n            else\n                queueMicrotask(() => cb(null, c));\n            return;\n        }\n        // don't have to worry about zalgo at this point.\n        this.#onReaddirCB.push(cb);\n        if (this.#readdirCBInFlight) {\n            return;\n        }\n        this.#readdirCBInFlight = true;\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {\n            if (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            else {\n                // if we didn't get an error, we always get entries.\n                //@ts-ignore\n                for (const e of entries) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            this.#callOnReaddirCB(children.slice(0, children.provisional));\n            return;\n        });\n    }\n    #asyncReaddirInFlight;\n    /**\n     * Return an array of known child entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async readdir() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        if (this.#asyncReaddirInFlight) {\n            await this.#asyncReaddirInFlight;\n        }\n        else {\n            /* c8 ignore start */\n            let resolve = () => { };\n            /* c8 ignore stop */\n            this.#asyncReaddirInFlight = new Promise(res => (resolve = res));\n            try {\n                for (const e of await this.#fs.promises.readdir(fullpath, {\n                    withFileTypes: true,\n                })) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            catch (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            this.#asyncReaddirInFlight = undefined;\n            resolve();\n        }\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * synchronous {@link PathBase.readdir}\n     */\n    readdirSync() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        try {\n            for (const e of this.#fs.readdirSync(fullpath, {\n                withFileTypes: true,\n            })) {\n                this.#readdirAddChild(e, children);\n            }\n            this.#readdirSuccess(children);\n        }\n        catch (er) {\n            this.#readdirFail(er.code);\n            children.provisional = 0;\n        }\n        return children.slice(0, children.provisional);\n    }\n    canReaddir() {\n        if (this.#type & ENOCHILD)\n            return false;\n        const ifmt = IFMT & this.#type;\n        // we always set ENOTDIR when setting IFMT, so should be impossible\n        /* c8 ignore start */\n        if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {\n            return false;\n        }\n        /* c8 ignore stop */\n        return true;\n    }\n    shouldWalk(dirs, walkFilter) {\n        return ((this.#type & IFDIR) === IFDIR &&\n            !(this.#type & ENOCHILD) &&\n            !dirs.has(this) &&\n            (!walkFilter || walkFilter(this)));\n    }\n    /**\n     * Return the Path object corresponding to path as resolved\n     * by realpath(3).\n     *\n     * If the realpath call fails for any reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     * On success, returns a Path object.\n     */\n    async realpath() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = await this.#fs.promises.realpath(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Synchronous {@link realpath}\n     */\n    realpathSync() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = this.#fs.realpathSync(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Internal method to mark this Path object as the scurry cwd,\n     * called by {@link PathScurry#chdir}\n     *\n     * @internal\n     */\n    [setAsCwd](oldCwd) {\n        if (oldCwd === this)\n            return;\n        oldCwd.isCWD = false;\n        this.isCWD = true;\n        const changed = new Set([]);\n        let rp = [];\n        let p = this;\n        while (p && p.parent) {\n            changed.add(p);\n            p.#relative = rp.join(this.sep);\n            p.#relativePosix = rp.join('/');\n            p = p.parent;\n            rp.push('..');\n        }\n        // now un-memoize parents of old cwd\n        p = oldCwd;\n        while (p && p.parent && !changed.has(p)) {\n            p.#relative = undefined;\n            p.#relativePosix = undefined;\n            p = p.parent;\n        }\n    }\n}\nexports.PathBase = PathBase;\n/**\n * Path class used on win32 systems\n *\n * Uses `'\\\\'` as the path separator for returned paths, either `'\\\\'` or `'/'`\n * as the path separator for parsing paths.\n */\nclass PathWin32 extends PathBase {\n    /**\n     * Separator for generating path strings.\n     */\n    sep = '\\\\';\n    /**\n     * Separator for parsing path strings.\n     */\n    splitSep = eitherSep;\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathWin32(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return node_path_1.win32.parse(path).root;\n    }\n    /**\n     * @internal\n     */\n    getRoot(rootPath) {\n        rootPath = uncToDrive(rootPath.toUpperCase());\n        if (rootPath === this.root.name) {\n            return this.root;\n        }\n        // ok, not that one, check if it matches another we know about\n        for (const [compare, root] of Object.entries(this.roots)) {\n            if (this.sameRoot(rootPath, compare)) {\n                return (this.roots[rootPath] = root);\n            }\n        }\n        // otherwise, have to create a new one.\n        return (this.roots[rootPath] = new PathScurryWin32(rootPath, this).root);\n    }\n    /**\n     * @internal\n     */\n    sameRoot(rootPath, compare = this.root.name) {\n        // windows can (rarely) have case-sensitive filesystem, but\n        // UNC and drive letters are always case-insensitive, and canonically\n        // represented uppercase.\n        rootPath = rootPath\n            .toUpperCase()\n            .replace(/\\//g, '\\\\')\n            .replace(uncDriveRegexp, '$1\\\\');\n        return rootPath === compare;\n    }\n}\nexports.PathWin32 = PathWin32;\n/**\n * Path class used on all posix systems.\n *\n * Uses `'/'` as the path separator.\n */\nclass PathPosix extends PathBase {\n    /**\n     * separator for parsing path strings\n     */\n    splitSep = '/';\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return path.startsWith('/') ? '/' : '';\n    }\n    /**\n     * @internal\n     */\n    getRoot(_rootPath) {\n        return this.root;\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathPosix(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n}\nexports.PathPosix = PathPosix;\n/**\n * The base class for all PathScurry classes, providing the interface for path\n * resolution and filesystem operations.\n *\n * Typically, you should *not* instantiate this class directly, but rather one\n * of the platform-specific classes, or the exported {@link PathScurry} which\n * defaults to the current platform.\n */\nclass PathScurryBase {\n    /**\n     * The root Path entry for the current working directory of this Scurry\n     */\n    root;\n    /**\n     * The string path for the root of this Scurry's current working directory\n     */\n    rootPath;\n    /**\n     * A collection of all roots encountered, referenced by rootPath\n     */\n    roots;\n    /**\n     * The Path entry corresponding to this PathScurry's current working directory.\n     */\n    cwd;\n    #resolveCache;\n    #resolvePosixCache;\n    #children;\n    /**\n     * Perform path comparisons case-insensitively.\n     *\n     * Defaults true on Darwin and Windows systems, false elsewhere.\n     */\n    nocase;\n    #fs;\n    /**\n     * This class should not be instantiated directly.\n     *\n     * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry\n     *\n     * @internal\n     */\n    constructor(cwd = process.cwd(), pathImpl, sep, { nocase, childrenCacheSize = 16 * 1024, fs = defaultFS, } = {}) {\n        this.#fs = fsFromOption(fs);\n        if (cwd instanceof URL || cwd.startsWith('file://')) {\n            cwd = (0, node_url_1.fileURLToPath)(cwd);\n        }\n        // resolve and split root, and then add to the store.\n        // this is the only time we call path.resolve()\n        const cwdPath = pathImpl.resolve(cwd);\n        this.roots = Object.create(null);\n        this.rootPath = this.parseRootPath(cwdPath);\n        this.#resolveCache = new ResolveCache();\n        this.#resolvePosixCache = new ResolveCache();\n        this.#children = new ChildrenCache(childrenCacheSize);\n        const split = cwdPath.substring(this.rootPath.length).split(sep);\n        // resolve('/') leaves '', splits to [''], we don't want that.\n        if (split.length === 1 && !split[0]) {\n            split.pop();\n        }\n        /* c8 ignore start */\n        if (nocase === undefined) {\n            throw new TypeError('must provide nocase setting to PathScurryBase ctor');\n        }\n        /* c8 ignore stop */\n        this.nocase = nocase;\n        this.root = this.newRoot(this.#fs);\n        this.roots[this.rootPath] = this.root;\n        let prev = this.root;\n        let len = split.length - 1;\n        const joinSep = pathImpl.sep;\n        let abs = this.rootPath;\n        let sawFirst = false;\n        for (const part of split) {\n            const l = len--;\n            prev = prev.child(part, {\n                relative: new Array(l).fill('..').join(joinSep),\n                relativePosix: new Array(l).fill('..').join('/'),\n                fullpath: (abs += (sawFirst ? '' : joinSep) + part),\n            });\n            sawFirst = true;\n        }\n        this.cwd = prev;\n    }\n    /**\n     * Get the depth of a provided path, string, or the cwd\n     */\n    depth(path = this.cwd) {\n        if (typeof path === 'string') {\n            path = this.cwd.resolve(path);\n        }\n        return path.depth();\n    }\n    /**\n     * Return the cache of child entries.  Exposed so subclasses can create\n     * child Path objects in a platform-specific way.\n     *\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolve(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolveCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpath();\n        this.#resolveCache.set(r, result);\n        return result;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string, returning\n     * the posix path.  Identical to .resolve() on posix systems, but on\n     * windows will return a forward-slash separated UNC path.\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolvePosix(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolvePosixCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpathPosix();\n        this.#resolvePosixCache.set(r, result);\n        return result;\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or entry\n     */\n    relative(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relative();\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or\n     * entry, using / as the path delimiter, even on Windows.\n     */\n    relativePosix(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relativePosix();\n    }\n    /**\n     * Return the basename for the provided string or Path object\n     */\n    basename(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.name;\n    }\n    /**\n     * Return the dirname for the provided string or Path object\n     */\n    dirname(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return (entry.parent || entry).fullpath();\n    }\n    async readdir(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else {\n            const p = await entry.readdir();\n            return withFileTypes ? p : p.map(e => e.name);\n        }\n    }\n    readdirSync(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else if (withFileTypes) {\n            return entry.readdirSync();\n        }\n        else {\n            return entry.readdirSync().map(e => e.name);\n        }\n    }\n    /**\n     * Call lstat() on the string or Path object, and update all known\n     * information that can be determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstat();\n    }\n    /**\n     * synchronous {@link PathScurryBase.lstat}\n     */\n    lstatSync(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstatSync();\n    }\n    async readlink(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.readlink();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    readlinkSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.readlinkSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async realpath(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.realpath();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    realpathSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.realpathSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async walk(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const walk = (dir, cb) => {\n            dirs.add(dir);\n            dir.readdirCB((er, entries) => {\n                /* c8 ignore start */\n                if (er) {\n                    return cb(er);\n                }\n                /* c8 ignore stop */\n                let len = entries.length;\n                if (!len)\n                    return cb();\n                const next = () => {\n                    if (--len === 0) {\n                        cb();\n                    }\n                };\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        results.push(withFileTypes ? e : e.fullpath());\n                    }\n                    if (follow && e.isSymbolicLink()) {\n                        e.realpath()\n                            .then(r => (r?.isUnknown() ? r.lstat() : r))\n                            .then(r => r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next());\n                    }\n                    else {\n                        if (e.shouldWalk(dirs, walkFilter)) {\n                            walk(e, next);\n                        }\n                        else {\n                            next();\n                        }\n                    }\n                }\n            }, true); // zalgooooooo\n        };\n        const start = entry;\n        return new Promise((res, rej) => {\n            walk(start, er => {\n                /* c8 ignore start */\n                if (er)\n                    return rej(er);\n                /* c8 ignore stop */\n                res(results);\n            });\n        });\n    }\n    walkSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    results.push(withFileTypes ? e : e.fullpath());\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n        return results;\n    }\n    /**\n     * Support for `for await`\n     *\n     * Alias for {@link PathScurryBase.iterate}\n     *\n     * Note: As of Node 19, this is very slow, compared to other methods of\n     * walking.  Consider using {@link PathScurryBase.stream} if memory overhead\n     * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n     */\n    [Symbol.asyncIterator]() {\n        return this.iterate();\n    }\n    iterate(entry = this.cwd, options = {}) {\n        // iterating async over the stream is significantly more performant,\n        // especially in the warm-cache scenario, because it buffers up directory\n        // entries in the background instead of waiting for a yield for each one.\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            options = entry;\n            entry = this.cwd;\n        }\n        return this.stream(entry, options)[Symbol.asyncIterator]();\n    }\n    /**\n     * Iterating over a PathScurry performs a synchronous walk.\n     *\n     * Alias for {@link PathScurryBase.iterateSync}\n     */\n    [Symbol.iterator]() {\n        return this.iterateSync();\n    }\n    *iterateSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        if (!filter || filter(entry)) {\n            yield withFileTypes ? entry : entry.fullpath();\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    yield withFileTypes ? e : e.fullpath();\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n    }\n    stream(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const onReaddir = (er, entries, didRealpaths = false) => {\n                    /* c8 ignore start */\n                    if (er)\n                        return results.emit('error', er);\n                    /* c8 ignore stop */\n                    if (follow && !didRealpaths) {\n                        const promises = [];\n                        for (const e of entries) {\n                            if (e.isSymbolicLink()) {\n                                promises.push(e\n                                    .realpath()\n                                    .then((r) => r?.isUnknown() ? r.lstat() : r));\n                            }\n                        }\n                        if (promises.length) {\n                            Promise.all(promises).then(() => onReaddir(null, entries, true));\n                            return;\n                        }\n                    }\n                    for (const e of entries) {\n                        if (e && (!filter || filter(e))) {\n                            if (!results.write(withFileTypes ? e : e.fullpath())) {\n                                paused = true;\n                            }\n                        }\n                    }\n                    processing--;\n                    for (const e of entries) {\n                        const r = e.realpathCached() || e;\n                        if (r.shouldWalk(dirs, walkFilter)) {\n                            queue.push(r);\n                        }\n                    }\n                    if (paused && !results.flowing) {\n                        results.once('drain', process);\n                    }\n                    else if (!sync) {\n                        process();\n                    }\n                };\n                // zalgo containment\n                let sync = true;\n                dir.readdirCB(onReaddir, true);\n                sync = false;\n            }\n        };\n        process();\n        return results;\n    }\n    streamSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        const dirs = new Set();\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const entries = dir.readdirSync();\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        if (!results.write(withFileTypes ? e : e.fullpath())) {\n                            paused = true;\n                        }\n                    }\n                }\n                processing--;\n                for (const e of entries) {\n                    let r = e;\n                    if (e.isSymbolicLink()) {\n                        if (!(follow && (r = e.realpathSync())))\n                            continue;\n                        if (r.isUnknown())\n                            r.lstatSync();\n                    }\n                    if (r.shouldWalk(dirs, walkFilter)) {\n                        queue.push(r);\n                    }\n                }\n            }\n            if (paused && !results.flowing)\n                results.once('drain', process);\n        };\n        process();\n        return results;\n    }\n    chdir(path = this.cwd) {\n        const oldCwd = this.cwd;\n        this.cwd = typeof path === 'string' ? this.cwd.resolve(path) : path;\n        this.cwd[setAsCwd](oldCwd);\n    }\n}\nexports.PathScurryBase = PathScurryBase;\n/**\n * Windows implementation of {@link PathScurryBase}\n *\n * Defaults to case insensitve, uses `'\\\\'` to generate path strings.  Uses\n * {@link PathWin32} for Path objects.\n */\nclass PathScurryWin32 extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '\\\\';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, node_path_1.win32, '\\\\', { ...opts, nocase });\n        this.nocase = nocase;\n        for (let p = this.cwd; p; p = p.parent) {\n            p.nocase = this.nocase;\n        }\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(dir) {\n        // if the path starts with a single separator, it's not a UNC, and we'll\n        // just get separator as the root, and driveFromUNC will return \\\n        // In that case, mount \\ on the root from the cwd.\n        return node_path_1.win32.parse(dir).root.toUpperCase();\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathWin32(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return (p.startsWith('/') || p.startsWith('\\\\') || /^[a-z]:(\\/|\\\\)/i.test(p));\n    }\n}\nexports.PathScurryWin32 = PathScurryWin32;\n/**\n * {@link PathScurryBase} implementation for all posix systems other than Darwin.\n *\n * Defaults to case-sensitive matching, uses `'/'` to generate path strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryPosix extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = false } = opts;\n        super(cwd, node_path_1.posix, '/', { ...opts, nocase });\n        this.nocase = nocase;\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(_dir) {\n        return '/';\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathPosix(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return p.startsWith('/');\n    }\n}\nexports.PathScurryPosix = PathScurryPosix;\n/**\n * {@link PathScurryBase} implementation for Darwin (macOS) systems.\n *\n * Defaults to case-insensitive matching, uses `'/'` for generating path\n * strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryDarwin extends PathScurryPosix {\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, { ...opts, nocase });\n    }\n}\nexports.PathScurryDarwin = PathScurryDarwin;\n/**\n * Default {@link PathBase} implementation for the current platform.\n *\n * {@link PathWin32} on Windows systems, {@link PathPosix} on all others.\n */\nexports.Path = process.platform === 'win32' ? PathWin32 : PathPosix;\n/**\n * Default {@link PathScurryBase} implementation for the current platform.\n *\n * {@link PathScurryWin32} on Windows systems, {@link PathScurryDarwin} on\n * Darwin (macOS) systems, {@link PathScurryPosix} on all others.\n */\nexports.PathScurry = process.platform === 'win32' ? PathScurryWin32\n    : process.platform === 'darwin' ? PathScurryDarwin\n        : PathScurryPosix;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertChangesToDMP = convertChangesToDMP;\n/**\n * converts a list of change objects to the format returned by Google's [diff-match-patch](https://github.com/google/diff-match-patch) library\n */\nfunction convertChangesToDMP(changes) {\n    var ret = [];\n    var change, operation;\n    for (var i = 0; i < changes.length; i++) {\n        change = changes[i];\n        if (change.added) {\n            operation = 1;\n        }\n        else if (change.removed) {\n            operation = -1;\n        }\n        else {\n            operation = 0;\n        }\n        ret.push([operation, change.value]);\n    }\n    return ret;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertChangesToXML = convertChangesToXML;\n/**\n * converts a list of change objects to a serialized XML format\n */\nfunction convertChangesToXML(changes) {\n    var ret = [];\n    for (var i = 0; i < changes.length; i++) {\n        var change = changes[i];\n        if (change.added) {\n            ret.push('');\n        }\n        else if (change.removed) {\n            ret.push('');\n        }\n        ret.push(escapeHTML(change.value));\n        if (change.added) {\n            ret.push('');\n        }\n        else if (change.removed) {\n            ret.push('');\n        }\n    }\n    return ret.join('');\n}\nfunction escapeHTML(s) {\n    var n = s;\n    n = n.replace(/&/g, '&');\n    n = n.replace(//g, '>');\n    n = n.replace(/\"/g, '"');\n    return n;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayDiff = void 0;\nexports.diffArrays = diffArrays;\nvar base_js_1 = require(\"./base.js\");\nvar ArrayDiff = /** @class */ (function (_super) {\n    __extends(ArrayDiff, _super);\n    function ArrayDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ArrayDiff.prototype.tokenize = function (value) {\n        return value.slice();\n    };\n    ArrayDiff.prototype.join = function (value) {\n        return value;\n    };\n    ArrayDiff.prototype.removeEmpty = function (value) {\n        return value;\n    };\n    return ArrayDiff;\n}(base_js_1.default));\nexports.arrayDiff = new ArrayDiff();\nfunction diffArrays(oldArr, newArr, options) {\n    return exports.arrayDiff.diff(oldArr, newArr, options);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Diff = /** @class */ (function () {\n    function Diff() {\n    }\n    Diff.prototype.diff = function (oldStr, newStr, \n    // Type below is not accurate/complete - see above for full possibilities - but it compiles\n    options) {\n        if (options === void 0) { options = {}; }\n        var callback;\n        if (typeof options === 'function') {\n            callback = options;\n            options = {};\n        }\n        else if ('callback' in options) {\n            callback = options.callback;\n        }\n        // Allow subclasses to massage the input prior to running\n        var oldString = this.castInput(oldStr, options);\n        var newString = this.castInput(newStr, options);\n        var oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n        var newTokens = this.removeEmpty(this.tokenize(newString, options));\n        return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n    };\n    Diff.prototype.diffWithOptionsObj = function (oldTokens, newTokens, options, callback) {\n        var _this = this;\n        var _a;\n        var done = function (value) {\n            value = _this.postProcess(value, options);\n            if (callback) {\n                setTimeout(function () { callback(value); }, 0);\n                return undefined;\n            }\n            else {\n                return value;\n            }\n        };\n        var newLen = newTokens.length, oldLen = oldTokens.length;\n        var editLength = 1;\n        var maxEditLength = newLen + oldLen;\n        if (options.maxEditLength != null) {\n            maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n        }\n        var maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n        var abortAfterTimestamp = Date.now() + maxExecutionTime;\n        var bestPath = [{ oldPos: -1, lastComponent: undefined }];\n        // Seed editLength = 0, i.e. the content starts with the same values\n        var newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n        if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n            // Identity per the equality and tokenizer\n            return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n        }\n        // Once we hit the right edge of the edit graph on some diagonal k, we can\n        // definitely reach the end of the edit graph in no more than k edits, so\n        // there's no point in considering any moves to diagonal k+1 any more (from\n        // which we're guaranteed to need at least k+1 more edits).\n        // Similarly, once we've reached the bottom of the edit graph, there's no\n        // point considering moves to lower diagonals.\n        // We record this fact by setting minDiagonalToConsider and\n        // maxDiagonalToConsider to some finite value once we've hit the edge of\n        // the edit graph.\n        // This optimization is not faithful to the original algorithm presented in\n        // Myers's paper, which instead pointlessly extends D-paths off the end of\n        // the edit graph - see page 7 of Myers's paper which notes this point\n        // explicitly and illustrates it with a diagram. This has major performance\n        // implications for some common scenarios. For instance, to compute a diff\n        // where the new text simply appends d characters on the end of the\n        // original text of length n, the true Myers algorithm will take O(n+d^2)\n        // time while this optimization needs only O(n+d) time.\n        var minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n        // Main worker method. checks all permutations of a given edit length for acceptance.\n        var execEditLength = function () {\n            for (var diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n                var basePath = void 0;\n                var removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n                if (removePath) {\n                    // No one else is going to attempt to use this value, clear it\n                    // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n                    bestPath[diagonalPath - 1] = undefined;\n                }\n                var canAdd = false;\n                if (addPath) {\n                    // what newPos will be after we do an insertion:\n                    var addPathNewPos = addPath.oldPos - diagonalPath;\n                    canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n                }\n                var canRemove = removePath && removePath.oldPos + 1 < oldLen;\n                if (!canAdd && !canRemove) {\n                    // If this path is a terminal then prune\n                    // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n                    bestPath[diagonalPath] = undefined;\n                    continue;\n                }\n                // Select the diagonal that we want to branch from. We select the prior\n                // path whose position in the old string is the farthest from the origin\n                // and does not pass the bounds of the diff graph\n                if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n                    basePath = _this.addToPath(addPath, true, false, 0, options);\n                }\n                else {\n                    basePath = _this.addToPath(removePath, false, true, 1, options);\n                }\n                newPos = _this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n                if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n                    // If we have hit the end of both strings, then we are done\n                    return done(_this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n                }\n                else {\n                    bestPath[diagonalPath] = basePath;\n                    if (basePath.oldPos + 1 >= oldLen) {\n                        maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n                    }\n                    if (newPos + 1 >= newLen) {\n                        minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n                    }\n                }\n            }\n            editLength++;\n        };\n        // Performs the length of edit iteration. Is a bit fugly as this has to support the\n        // sync and async mode which is never fun. Loops over execEditLength until a value\n        // is produced, or until the edit length exceeds options.maxEditLength (if given),\n        // in which case it will return undefined.\n        if (callback) {\n            (function exec() {\n                setTimeout(function () {\n                    if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n                        return callback(undefined);\n                    }\n                    if (!execEditLength()) {\n                        exec();\n                    }\n                }, 0);\n            }());\n        }\n        else {\n            while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n                var ret = execEditLength();\n                if (ret) {\n                    return ret;\n                }\n            }\n        }\n    };\n    Diff.prototype.addToPath = function (path, added, removed, oldPosInc, options) {\n        var last = path.lastComponent;\n        if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n            return {\n                oldPos: path.oldPos + oldPosInc,\n                lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n            };\n        }\n        else {\n            return {\n                oldPos: path.oldPos + oldPosInc,\n                lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n            };\n        }\n    };\n    Diff.prototype.extractCommon = function (basePath, newTokens, oldTokens, diagonalPath, options) {\n        var newLen = newTokens.length, oldLen = oldTokens.length;\n        var oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n        while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n            newPos++;\n            oldPos++;\n            commonCount++;\n            if (options.oneChangePerToken) {\n                basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n            }\n        }\n        if (commonCount && !options.oneChangePerToken) {\n            basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n        }\n        basePath.oldPos = oldPos;\n        return newPos;\n    };\n    Diff.prototype.equals = function (left, right, options) {\n        if (options.comparator) {\n            return options.comparator(left, right);\n        }\n        else {\n            return left === right\n                || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n        }\n    };\n    Diff.prototype.removeEmpty = function (array) {\n        var ret = [];\n        for (var i = 0; i < array.length; i++) {\n            if (array[i]) {\n                ret.push(array[i]);\n            }\n        }\n        return ret;\n    };\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    Diff.prototype.castInput = function (value, options) {\n        return value;\n    };\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    Diff.prototype.tokenize = function (value, options) {\n        return Array.from(value);\n    };\n    Diff.prototype.join = function (chars) {\n        // Assumes ValueT is string, which is the case for most subclasses.\n        // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n        // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n        // assume tokens and values are strings, but not completely - is weird and janky.\n        return chars.join('');\n    };\n    Diff.prototype.postProcess = function (changeObjects, \n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    options) {\n        return changeObjects;\n    };\n    Object.defineProperty(Diff.prototype, \"useLongestToken\", {\n        get: function () {\n            return false;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Diff.prototype.buildValues = function (lastComponent, newTokens, oldTokens) {\n        // First we convert our linked list of components in reverse order to an\n        // array in the right order:\n        var components = [];\n        var nextComponent;\n        while (lastComponent) {\n            components.push(lastComponent);\n            nextComponent = lastComponent.previousComponent;\n            delete lastComponent.previousComponent;\n            lastComponent = nextComponent;\n        }\n        components.reverse();\n        var componentLen = components.length;\n        var componentPos = 0, newPos = 0, oldPos = 0;\n        for (; componentPos < componentLen; componentPos++) {\n            var component = components[componentPos];\n            if (!component.removed) {\n                if (!component.added && this.useLongestToken) {\n                    var value = newTokens.slice(newPos, newPos + component.count);\n                    value = value.map(function (value, i) {\n                        var oldValue = oldTokens[oldPos + i];\n                        return oldValue.length > value.length ? oldValue : value;\n                    });\n                    component.value = this.join(value);\n                }\n                else {\n                    component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n                }\n                newPos += component.count;\n                // Common case\n                if (!component.added) {\n                    oldPos += component.count;\n                }\n            }\n            else {\n                component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n                oldPos += component.count;\n            }\n        }\n        return components;\n    };\n    return Diff;\n}());\nexports.default = Diff;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.characterDiff = void 0;\nexports.diffChars = diffChars;\nvar base_js_1 = require(\"./base.js\");\nvar CharacterDiff = /** @class */ (function (_super) {\n    __extends(CharacterDiff, _super);\n    function CharacterDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return CharacterDiff;\n}(base_js_1.default));\nexports.characterDiff = new CharacterDiff();\nfunction diffChars(oldStr, newStr, options) {\n    return exports.characterDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssDiff = void 0;\nexports.diffCss = diffCss;\nvar base_js_1 = require(\"./base.js\");\nvar CssDiff = /** @class */ (function (_super) {\n    __extends(CssDiff, _super);\n    function CssDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    CssDiff.prototype.tokenize = function (value) {\n        return value.split(/([{}:;,]|\\s+)/);\n    };\n    return CssDiff;\n}(base_js_1.default));\nexports.cssDiff = new CssDiff();\nfunction diffCss(oldStr, newStr, options) {\n    return exports.cssDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonDiff = void 0;\nexports.diffJson = diffJson;\nexports.canonicalize = canonicalize;\nvar base_js_1 = require(\"./base.js\");\nvar line_js_1 = require(\"./line.js\");\nvar JsonDiff = /** @class */ (function (_super) {\n    __extends(JsonDiff, _super);\n    function JsonDiff() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.tokenize = line_js_1.tokenize;\n        return _this;\n    }\n    Object.defineProperty(JsonDiff.prototype, \"useLongestToken\", {\n        get: function () {\n            // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n            // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n            return true;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    JsonDiff.prototype.castInput = function (value, options) {\n        var undefinedReplacement = options.undefinedReplacement, _a = options.stringifyReplacer, stringifyReplacer = _a === void 0 ? function (k, v) { return typeof v === 'undefined' ? undefinedReplacement : v; } : _a;\n        return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, '  ');\n    };\n    JsonDiff.prototype.equals = function (left, right, options) {\n        return _super.prototype.equals.call(this, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'), options);\n    };\n    return JsonDiff;\n}(base_js_1.default));\nexports.jsonDiff = new JsonDiff();\nfunction diffJson(oldStr, newStr, options) {\n    return exports.jsonDiff.diff(oldStr, newStr, options);\n}\n// This function handles the presence of circular references by bailing out when encountering an\n// object that is already on the \"stack\" of items being processed. Accepts an optional replacer\nfunction canonicalize(obj, stack, replacementStack, replacer, key) {\n    stack = stack || [];\n    replacementStack = replacementStack || [];\n    if (replacer) {\n        obj = replacer(key === undefined ? '' : key, obj);\n    }\n    var i;\n    for (i = 0; i < stack.length; i += 1) {\n        if (stack[i] === obj) {\n            return replacementStack[i];\n        }\n    }\n    var canonicalizedObj;\n    if ('[object Array]' === Object.prototype.toString.call(obj)) {\n        stack.push(obj);\n        canonicalizedObj = new Array(obj.length);\n        replacementStack.push(canonicalizedObj);\n        for (i = 0; i < obj.length; i += 1) {\n            canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, String(i));\n        }\n        stack.pop();\n        replacementStack.pop();\n        return canonicalizedObj;\n    }\n    if (obj && obj.toJSON) {\n        obj = obj.toJSON();\n    }\n    if (typeof obj === 'object' && obj !== null) {\n        stack.push(obj);\n        canonicalizedObj = {};\n        replacementStack.push(canonicalizedObj);\n        var sortedKeys = [];\n        var key_1;\n        for (key_1 in obj) {\n            /* istanbul ignore else */\n            if (Object.prototype.hasOwnProperty.call(obj, key_1)) {\n                sortedKeys.push(key_1);\n            }\n        }\n        sortedKeys.sort();\n        for (i = 0; i < sortedKeys.length; i += 1) {\n            key_1 = sortedKeys[i];\n            canonicalizedObj[key_1] = canonicalize(obj[key_1], stack, replacementStack, replacer, key_1);\n        }\n        stack.pop();\n        replacementStack.pop();\n    }\n    else {\n        canonicalizedObj = obj;\n    }\n    return canonicalizedObj;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lineDiff = void 0;\nexports.diffLines = diffLines;\nexports.diffTrimmedLines = diffTrimmedLines;\nexports.tokenize = tokenize;\nvar base_js_1 = require(\"./base.js\");\nvar params_js_1 = require(\"../util/params.js\");\nvar LineDiff = /** @class */ (function (_super) {\n    __extends(LineDiff, _super);\n    function LineDiff() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.tokenize = tokenize;\n        return _this;\n    }\n    LineDiff.prototype.equals = function (left, right, options) {\n        // If we're ignoring whitespace, we need to normalise lines by stripping\n        // whitespace before checking equality. (This has an annoying interaction\n        // with newlineIsToken that requires special handling: if newlines get their\n        // own token, then we DON'T want to trim the *newline* tokens down to empty\n        // strings, since this would cause us to treat whitespace-only line content\n        // as equal to a separator between lines, which would be weird and\n        // inconsistent with the documented behavior of the options.)\n        if (options.ignoreWhitespace) {\n            if (!options.newlineIsToken || !left.includes('\\n')) {\n                left = left.trim();\n            }\n            if (!options.newlineIsToken || !right.includes('\\n')) {\n                right = right.trim();\n            }\n        }\n        else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {\n            if (left.endsWith('\\n')) {\n                left = left.slice(0, -1);\n            }\n            if (right.endsWith('\\n')) {\n                right = right.slice(0, -1);\n            }\n        }\n        return _super.prototype.equals.call(this, left, right, options);\n    };\n    return LineDiff;\n}(base_js_1.default));\nexports.lineDiff = new LineDiff();\nfunction diffLines(oldStr, newStr, options) {\n    return exports.lineDiff.diff(oldStr, newStr, options);\n}\nfunction diffTrimmedLines(oldStr, newStr, options) {\n    options = (0, params_js_1.generateOptions)(options, { ignoreWhitespace: true });\n    return exports.lineDiff.diff(oldStr, newStr, options);\n}\n// Exported standalone so it can be used from jsonDiff too.\nfunction tokenize(value, options) {\n    if (options.stripTrailingCr) {\n        // remove one \\r before \\n to match GNU diff's --strip-trailing-cr behavior\n        value = value.replace(/\\r\\n/g, '\\n');\n    }\n    var retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n    // Ignore the final empty token that occurs if the string ends with a new line\n    if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n        linesAndNewlines.pop();\n    }\n    // Merge the content and line separators into single tokens\n    for (var i = 0; i < linesAndNewlines.length; i++) {\n        var line = linesAndNewlines[i];\n        if (i % 2 && !options.newlineIsToken) {\n            retLines[retLines.length - 1] += line;\n        }\n        else {\n            retLines.push(line);\n        }\n    }\n    return retLines;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sentenceDiff = void 0;\nexports.diffSentences = diffSentences;\nvar base_js_1 = require(\"./base.js\");\nfunction isSentenceEndPunct(char) {\n    return char == '.' || char == '!' || char == '?';\n}\nvar SentenceDiff = /** @class */ (function (_super) {\n    __extends(SentenceDiff, _super);\n    function SentenceDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SentenceDiff.prototype.tokenize = function (value) {\n        var _a;\n        // If in future we drop support for environments that don't support lookbehinds, we can replace\n        // this entire function with:\n        //     return value.split(/(?<=[.!?])(\\s+|$)/);\n        // but until then, for similar reasons to the trailingWs function in string.ts, we are forced\n        // to do this verbosely \"by hand\" instead of using a regex.\n        var result = [];\n        var tokenStartI = 0;\n        for (var i = 0; i < value.length; i++) {\n            if (i == value.length - 1) {\n                result.push(value.slice(tokenStartI));\n                break;\n            }\n            if (isSentenceEndPunct(value[i]) && value[i + 1].match(/\\s/)) {\n                // We've hit a sentence break - i.e. a punctuation mark followed by whitespace.\n                // We now want to push TWO tokens to the result:\n                // 1. the sentence\n                result.push(value.slice(tokenStartI, i + 1));\n                // 2. the whitespace\n                i = tokenStartI = i + 1;\n                while ((_a = value[i + 1]) === null || _a === void 0 ? void 0 : _a.match(/\\s/)) {\n                    i++;\n                }\n                result.push(value.slice(tokenStartI, i + 1));\n                // Then the next token (a sentence) starts on the character after the whitespace.\n                // (It's okay if this is off the end of the string - then the outer loop will terminate\n                // here anyway.)\n                tokenStartI = i + 1;\n            }\n        }\n        return result;\n    };\n    return SentenceDiff;\n}(base_js_1.default));\nexports.sentenceDiff = new SentenceDiff();\nfunction diffSentences(oldStr, newStr, options) {\n    return exports.sentenceDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordsWithSpaceDiff = exports.wordDiff = void 0;\nexports.diffWords = diffWords;\nexports.diffWordsWithSpace = diffWordsWithSpace;\nvar base_js_1 = require(\"./base.js\");\nvar string_js_1 = require(\"../util/string.js\");\n// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\n//\n// Chars/ranges counted as \"word\" characters by this regex are as follows:\n//\n// + U+00AD  Soft hyphen\n// + 00C0–00FF (letters with diacritics from the Latin-1 Supplement), except:\n//   - U+00D7  × Multiplication sign\n//   - U+00F7  ÷ Division sign\n// + Latin Extended-A, 0100–017F\n// + Latin Extended-B, 0180–024F\n// + IPA Extensions, 0250–02AF\n// + Spacing Modifier Letters, 02B0–02FF, except:\n//   - U+02C7  ˇ ˇ  Caron\n//   - U+02D8  ˘ ˘  Breve\n//   - U+02D9  ˙ ˙  Dot Above\n//   - U+02DA  ˚ ˚  Ring Above\n//   - U+02DB  ˛ ˛  Ogonek\n//   - U+02DC  ˜ ˜  Small Tilde\n//   - U+02DD  ˝ ˝  Double Acute Accent\n// + Latin Extended Additional, 1E00–1EFF\nvar extendedWordChars = 'a-zA-Z0-9_\\\\u{AD}\\\\u{C0}-\\\\u{D6}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}';\n// Each token is one of the following:\n// - A punctuation mark plus the surrounding whitespace\n// - A word plus the surrounding whitespace\n// - Pure whitespace (but only in the special case where the entire text\n//   is just whitespace)\n//\n// We have to include surrounding whitespace in the tokens because the two\n// alternative approaches produce horribly broken results:\n// * If we just discard the whitespace, we can't fully reproduce the original\n//   text from the sequence of tokens and any attempt to render the diff will\n//   get the whitespace wrong.\n// * If we have separate tokens for whitespace, then in a typical text every\n//   second token will be a single space character. But this often results in\n//   the optimal diff between two texts being a perverse one that preserves\n//   the spaces between words but deletes and reinserts actual common words.\n//   See https://github.com/kpdecker/jsdiff/issues/160#issuecomment-1866099640\n//   for an example.\n//\n// Keeping the surrounding whitespace of course has implications for .equals\n// and .join, not just .tokenize.\n// This regex does NOT fully implement the tokenization rules described above.\n// Instead, it gives runs of whitespace their own \"token\". The tokenize method\n// then handles stitching whitespace tokens onto adjacent word or punctuation\n// tokens.\nvar tokenizeIncludingWhitespace = new RegExp(\"[\".concat(extendedWordChars, \"]+|\\\\s+|[^\").concat(extendedWordChars, \"]\"), 'ug');\nvar WordDiff = /** @class */ (function (_super) {\n    __extends(WordDiff, _super);\n    function WordDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    WordDiff.prototype.equals = function (left, right, options) {\n        if (options.ignoreCase) {\n            left = left.toLowerCase();\n            right = right.toLowerCase();\n        }\n        return left.trim() === right.trim();\n    };\n    WordDiff.prototype.tokenize = function (value, options) {\n        if (options === void 0) { options = {}; }\n        var parts;\n        if (options.intlSegmenter) {\n            var segmenter = options.intlSegmenter;\n            if (segmenter.resolvedOptions().granularity != 'word') {\n                throw new Error('The segmenter passed must have a granularity of \"word\"');\n            }\n            // We want `parts` to be an array whose elements alternate between being\n            // pure whitespace and being pure non-whitespace. This is ALMOST what the\n            // segments returned by a word-based Intl.Segmenter already look like,\n            // but not quite - see explanation in the docs of our custom segment()\n            // function.\n            parts = (0, string_js_1.segment)(value, segmenter);\n        }\n        else {\n            parts = value.match(tokenizeIncludingWhitespace) || [];\n        }\n        var tokens = [];\n        var prevPart = null;\n        parts.forEach(function (part) {\n            if ((/\\s/).test(part)) {\n                if (prevPart == null) {\n                    tokens.push(part);\n                }\n                else {\n                    tokens.push(tokens.pop() + part);\n                }\n            }\n            else if (prevPart != null && (/\\s/).test(prevPart)) {\n                if (tokens[tokens.length - 1] == prevPart) {\n                    tokens.push(tokens.pop() + part);\n                }\n                else {\n                    tokens.push(prevPart + part);\n                }\n            }\n            else {\n                tokens.push(part);\n            }\n            prevPart = part;\n        });\n        return tokens;\n    };\n    WordDiff.prototype.join = function (tokens) {\n        // Tokens being joined here will always have appeared consecutively in the\n        // same text, so we can simply strip off the leading whitespace from all the\n        // tokens except the first (and except any whitespace-only tokens - but such\n        // a token will always be the first and only token anyway) and then join them\n        // and the whitespace around words and punctuation will end up correct.\n        return tokens.map(function (token, i) {\n            if (i == 0) {\n                return token;\n            }\n            else {\n                return token.replace((/^\\s+/), '');\n            }\n        }).join('');\n    };\n    WordDiff.prototype.postProcess = function (changes, options) {\n        if (!changes || options.oneChangePerToken) {\n            return changes;\n        }\n        var lastKeep = null;\n        // Change objects representing any insertion or deletion since the last\n        // \"keep\" change object. There can be at most one of each.\n        var insertion = null;\n        var deletion = null;\n        changes.forEach(function (change) {\n            if (change.added) {\n                insertion = change;\n            }\n            else if (change.removed) {\n                deletion = change;\n            }\n            else {\n                if (insertion || deletion) { // May be false at start of text\n                    dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change, options.intlSegmenter);\n                }\n                lastKeep = change;\n                insertion = null;\n                deletion = null;\n            }\n        });\n        if (insertion || deletion) {\n            dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null, options.intlSegmenter);\n        }\n        return changes;\n    };\n    return WordDiff;\n}(base_js_1.default));\nexports.wordDiff = new WordDiff();\nfunction diffWords(oldStr, newStr, options) {\n    // This option has never been documented and never will be (it's clearer to\n    // just call `diffWordsWithSpace` directly if you need that behavior), but\n    // has existed in jsdiff for a long time, so we retain support for it here\n    // for the sake of backwards compatibility.\n    if ((options === null || options === void 0 ? void 0 : options.ignoreWhitespace) != null && !options.ignoreWhitespace) {\n        return diffWordsWithSpace(oldStr, newStr, options);\n    }\n    return exports.wordDiff.diff(oldStr, newStr, options);\n}\nfunction dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep, segmenter) {\n    // Before returning, we tidy up the leading and trailing whitespace of the\n    // change objects to eliminate cases where trailing whitespace in one object\n    // is repeated as leading whitespace in the next.\n    // Below are examples of the outcomes we want here to explain the code.\n    // I=insert, K=keep, D=delete\n    // 1. diffing 'foo bar baz' vs 'foo baz'\n    //    Prior to cleanup, we have K:'foo ' D:' bar ' K:' baz'\n    //    After cleanup, we want:   K:'foo ' D:'bar ' K:'baz'\n    //\n    // 2. Diffing 'foo bar baz' vs 'foo qux baz'\n    //    Prior to cleanup, we have K:'foo ' D:' bar ' I:' qux ' K:' baz'\n    //    After cleanup, we want K:'foo ' D:'bar' I:'qux' K:' baz'\n    //\n    // 3. Diffing 'foo\\nbar baz' vs 'foo baz'\n    //    Prior to cleanup, we have K:'foo ' D:'\\nbar ' K:' baz'\n    //    After cleanup, we want K'foo' D:'\\nbar' K:' baz'\n    //\n    // 4. Diffing 'foo baz' vs 'foo\\nbar baz'\n    //    Prior to cleanup, we have K:'foo\\n' I:'\\nbar ' K:' baz'\n    //    After cleanup, we ideally want K'foo' I:'\\nbar' K:' baz'\n    //    but don't actually manage this currently (the pre-cleanup change\n    //    objects don't contain enough information to make it possible).\n    //\n    // 5. Diffing 'foo   bar baz' vs 'foo  baz'\n    //    Prior to cleanup, we have K:'foo  ' D:'   bar ' K:'  baz'\n    //    After cleanup, we want K:'foo  ' D:' bar ' K:'baz'\n    //\n    // Our handling is unavoidably imperfect in the case where there's a single\n    // indel between keeps and the whitespace has changed. For instance, consider\n    // diffing 'foo\\tbar\\nbaz' vs 'foo baz'. Unless we create an extra change\n    // object to represent the insertion of the space character (which isn't even\n    // a token), we have no way to avoid losing information about the texts'\n    // original whitespace in the result we return. Still, we do our best to\n    // output something that will look sensible if we e.g. print it with\n    // insertions in green and deletions in red.\n    // Between two \"keep\" change objects (or before the first or after the last\n    // change object), we can have either:\n    // * A \"delete\" followed by an \"insert\"\n    // * Just an \"insert\"\n    // * Just a \"delete\"\n    // We handle the three cases separately.\n    if (deletion && insertion) {\n        var _a = (0, string_js_1.leadingAndTrailingWs)(deletion.value, segmenter), oldWsPrefix = _a[0], oldWsSuffix = _a[1];\n        var _b = (0, string_js_1.leadingAndTrailingWs)(insertion.value, segmenter), newWsPrefix = _b[0], newWsSuffix = _b[1];\n        if (startKeep) {\n            var commonWsPrefix = (0, string_js_1.longestCommonPrefix)(oldWsPrefix, newWsPrefix);\n            startKeep.value = (0, string_js_1.replaceSuffix)(startKeep.value, newWsPrefix, commonWsPrefix);\n            deletion.value = (0, string_js_1.removePrefix)(deletion.value, commonWsPrefix);\n            insertion.value = (0, string_js_1.removePrefix)(insertion.value, commonWsPrefix);\n        }\n        if (endKeep) {\n            var commonWsSuffix = (0, string_js_1.longestCommonSuffix)(oldWsSuffix, newWsSuffix);\n            endKeep.value = (0, string_js_1.replacePrefix)(endKeep.value, newWsSuffix, commonWsSuffix);\n            deletion.value = (0, string_js_1.removeSuffix)(deletion.value, commonWsSuffix);\n            insertion.value = (0, string_js_1.removeSuffix)(insertion.value, commonWsSuffix);\n        }\n    }\n    else if (insertion) {\n        // The whitespaces all reflect what was in the new text rather than\n        // the old, so we essentially have no information about whitespace\n        // insertion or deletion. We just want to dedupe the whitespace.\n        // We do that by having each change object keep its trailing\n        // whitespace and deleting duplicate leading whitespace where\n        // present.\n        if (startKeep) {\n            var ws = (0, string_js_1.leadingWs)(insertion.value, segmenter);\n            insertion.value = insertion.value.substring(ws.length);\n        }\n        if (endKeep) {\n            var ws = (0, string_js_1.leadingWs)(endKeep.value, segmenter);\n            endKeep.value = endKeep.value.substring(ws.length);\n        }\n        // otherwise we've got a deletion and no insertion\n    }\n    else if (startKeep && endKeep) {\n        var newWsFull = (0, string_js_1.leadingWs)(endKeep.value, segmenter), _c = (0, string_js_1.leadingAndTrailingWs)(deletion.value, segmenter), delWsStart = _c[0], delWsEnd = _c[1];\n        // Any whitespace that comes straight after startKeep in both the old and\n        // new texts, assign to startKeep and remove from the deletion.\n        var newWsStart = (0, string_js_1.longestCommonPrefix)(newWsFull, delWsStart);\n        deletion.value = (0, string_js_1.removePrefix)(deletion.value, newWsStart);\n        // Any whitespace that comes straight before endKeep in both the old and\n        // new texts, and hasn't already been assigned to startKeep, assign to\n        // endKeep and remove from the deletion.\n        var newWsEnd = (0, string_js_1.longestCommonSuffix)((0, string_js_1.removePrefix)(newWsFull, newWsStart), delWsEnd);\n        deletion.value = (0, string_js_1.removeSuffix)(deletion.value, newWsEnd);\n        endKeep.value = (0, string_js_1.replacePrefix)(endKeep.value, newWsFull, newWsEnd);\n        // If there's any whitespace from the new text that HASN'T already been\n        // assigned, assign it to the start:\n        startKeep.value = (0, string_js_1.replaceSuffix)(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));\n    }\n    else if (endKeep) {\n        // We are at the start of the text. Preserve all the whitespace on\n        // endKeep, and just remove whitespace from the end of deletion to the\n        // extent that it overlaps with the start of endKeep.\n        var endKeepWsPrefix = (0, string_js_1.leadingWs)(endKeep.value, segmenter);\n        var deletionWsSuffix = (0, string_js_1.trailingWs)(deletion.value, segmenter);\n        var overlap = (0, string_js_1.maximumOverlap)(deletionWsSuffix, endKeepWsPrefix);\n        deletion.value = (0, string_js_1.removeSuffix)(deletion.value, overlap);\n    }\n    else if (startKeep) {\n        // We are at the END of the text. Preserve all the whitespace on\n        // startKeep, and just remove whitespace from the start of deletion to\n        // the extent that it overlaps with the end of startKeep.\n        var startKeepWsSuffix = (0, string_js_1.trailingWs)(startKeep.value, segmenter);\n        var deletionWsPrefix = (0, string_js_1.leadingWs)(deletion.value, segmenter);\n        var overlap = (0, string_js_1.maximumOverlap)(startKeepWsSuffix, deletionWsPrefix);\n        deletion.value = (0, string_js_1.removePrefix)(deletion.value, overlap);\n    }\n}\nvar WordsWithSpaceDiff = /** @class */ (function (_super) {\n    __extends(WordsWithSpaceDiff, _super);\n    function WordsWithSpaceDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    WordsWithSpaceDiff.prototype.tokenize = function (value) {\n        // Slightly different to the tokenizeIncludingWhitespace regex used above in\n        // that this one treats each individual newline as a distinct token, rather\n        // than merging them into other surrounding whitespace. This was requested\n        // in https://github.com/kpdecker/jsdiff/issues/180 &\n        //    https://github.com/kpdecker/jsdiff/issues/211\n        var regex = new RegExp(\"(\\\\r?\\\\n)|[\".concat(extendedWordChars, \"]+|[^\\\\S\\\\n\\\\r]+|[^\").concat(extendedWordChars, \"]\"), 'ug');\n        return value.match(regex) || [];\n    };\n    return WordsWithSpaceDiff;\n}(base_js_1.default));\nexports.wordsWithSpaceDiff = new WordsWithSpaceDiff();\nfunction diffWordsWithSpace(oldStr, newStr, options) {\n    return exports.wordsWithSpaceDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\n/* See LICENSE file for terms of use */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.reversePatch = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.OMIT_HEADERS = exports.FILE_HEADERS_ONLY = exports.INCLUDE_HEADERS = exports.formatPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.arrayDiff = exports.diffArrays = exports.jsonDiff = exports.diffJson = exports.cssDiff = exports.diffCss = exports.sentenceDiff = exports.diffSentences = exports.diffTrimmedLines = exports.lineDiff = exports.diffLines = exports.wordsWithSpaceDiff = exports.diffWordsWithSpace = exports.wordDiff = exports.diffWords = exports.characterDiff = exports.diffChars = exports.Diff = void 0;\n/*\n * Text diff implementation.\n *\n * This library supports the following APIs:\n * Diff.diffChars: Character by character diff\n * Diff.diffWords: Word (as defined by \\b regex) diff which ignores whitespace\n * Diff.diffLines: Line based diff\n *\n * Diff.diffCss: Diff targeted at CSS content\n *\n * These methods are based on the implementation proposed in\n * \"An O(ND) Difference Algorithm and its Variations\" (Myers, 1986).\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927\n */\nvar base_js_1 = require(\"./diff/base.js\");\nexports.Diff = base_js_1.default;\nvar character_js_1 = require(\"./diff/character.js\");\nObject.defineProperty(exports, \"diffChars\", { enumerable: true, get: function () { return character_js_1.diffChars; } });\nObject.defineProperty(exports, \"characterDiff\", { enumerable: true, get: function () { return character_js_1.characterDiff; } });\nvar word_js_1 = require(\"./diff/word.js\");\nObject.defineProperty(exports, \"diffWords\", { enumerable: true, get: function () { return word_js_1.diffWords; } });\nObject.defineProperty(exports, \"diffWordsWithSpace\", { enumerable: true, get: function () { return word_js_1.diffWordsWithSpace; } });\nObject.defineProperty(exports, \"wordDiff\", { enumerable: true, get: function () { return word_js_1.wordDiff; } });\nObject.defineProperty(exports, \"wordsWithSpaceDiff\", { enumerable: true, get: function () { return word_js_1.wordsWithSpaceDiff; } });\nvar line_js_1 = require(\"./diff/line.js\");\nObject.defineProperty(exports, \"diffLines\", { enumerable: true, get: function () { return line_js_1.diffLines; } });\nObject.defineProperty(exports, \"diffTrimmedLines\", { enumerable: true, get: function () { return line_js_1.diffTrimmedLines; } });\nObject.defineProperty(exports, \"lineDiff\", { enumerable: true, get: function () { return line_js_1.lineDiff; } });\nvar sentence_js_1 = require(\"./diff/sentence.js\");\nObject.defineProperty(exports, \"diffSentences\", { enumerable: true, get: function () { return sentence_js_1.diffSentences; } });\nObject.defineProperty(exports, \"sentenceDiff\", { enumerable: true, get: function () { return sentence_js_1.sentenceDiff; } });\nvar css_js_1 = require(\"./diff/css.js\");\nObject.defineProperty(exports, \"diffCss\", { enumerable: true, get: function () { return css_js_1.diffCss; } });\nObject.defineProperty(exports, \"cssDiff\", { enumerable: true, get: function () { return css_js_1.cssDiff; } });\nvar json_js_1 = require(\"./diff/json.js\");\nObject.defineProperty(exports, \"diffJson\", { enumerable: true, get: function () { return json_js_1.diffJson; } });\nObject.defineProperty(exports, \"canonicalize\", { enumerable: true, get: function () { return json_js_1.canonicalize; } });\nObject.defineProperty(exports, \"jsonDiff\", { enumerable: true, get: function () { return json_js_1.jsonDiff; } });\nvar array_js_1 = require(\"./diff/array.js\");\nObject.defineProperty(exports, \"diffArrays\", { enumerable: true, get: function () { return array_js_1.diffArrays; } });\nObject.defineProperty(exports, \"arrayDiff\", { enumerable: true, get: function () { return array_js_1.arrayDiff; } });\nvar apply_js_1 = require(\"./patch/apply.js\");\nObject.defineProperty(exports, \"applyPatch\", { enumerable: true, get: function () { return apply_js_1.applyPatch; } });\nObject.defineProperty(exports, \"applyPatches\", { enumerable: true, get: function () { return apply_js_1.applyPatches; } });\nvar parse_js_1 = require(\"./patch/parse.js\");\nObject.defineProperty(exports, \"parsePatch\", { enumerable: true, get: function () { return parse_js_1.parsePatch; } });\nvar reverse_js_1 = require(\"./patch/reverse.js\");\nObject.defineProperty(exports, \"reversePatch\", { enumerable: true, get: function () { return reverse_js_1.reversePatch; } });\nvar create_js_1 = require(\"./patch/create.js\");\nObject.defineProperty(exports, \"structuredPatch\", { enumerable: true, get: function () { return create_js_1.structuredPatch; } });\nObject.defineProperty(exports, \"createTwoFilesPatch\", { enumerable: true, get: function () { return create_js_1.createTwoFilesPatch; } });\nObject.defineProperty(exports, \"createPatch\", { enumerable: true, get: function () { return create_js_1.createPatch; } });\nObject.defineProperty(exports, \"formatPatch\", { enumerable: true, get: function () { return create_js_1.formatPatch; } });\nObject.defineProperty(exports, \"INCLUDE_HEADERS\", { enumerable: true, get: function () { return create_js_1.INCLUDE_HEADERS; } });\nObject.defineProperty(exports, \"FILE_HEADERS_ONLY\", { enumerable: true, get: function () { return create_js_1.FILE_HEADERS_ONLY; } });\nObject.defineProperty(exports, \"OMIT_HEADERS\", { enumerable: true, get: function () { return create_js_1.OMIT_HEADERS; } });\nvar dmp_js_1 = require(\"./convert/dmp.js\");\nObject.defineProperty(exports, \"convertChangesToDMP\", { enumerable: true, get: function () { return dmp_js_1.convertChangesToDMP; } });\nvar xml_js_1 = require(\"./convert/xml.js\");\nObject.defineProperty(exports, \"convertChangesToXML\", { enumerable: true, get: function () { return xml_js_1.convertChangesToXML; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyPatch = applyPatch;\nexports.applyPatches = applyPatches;\nvar string_js_1 = require(\"../util/string.js\");\nvar line_endings_js_1 = require(\"./line-endings.js\");\nvar parse_js_1 = require(\"./parse.js\");\nvar distance_iterator_js_1 = require(\"../util/distance-iterator.js\");\n/**\n * attempts to apply a unified diff patch.\n *\n * Hunks are applied first to last.\n * `applyPatch` first tries to apply the first hunk at the line number specified in the hunk header, and with all context lines matching exactly.\n * If that fails, it tries scanning backwards and forwards, one line at a time, to find a place to apply the hunk where the context lines match exactly.\n * If that still fails, and `fuzzFactor` is greater than zero, it increments the maximum number of mismatches (missing, extra, or changed context lines) that there can be between the hunk context and a region where we are trying to apply the patch such that the hunk will still be considered to match.\n * Regardless of `fuzzFactor`, lines to be deleted in the hunk *must* be present for a hunk to match, and the context lines *immediately* before and after an insertion must match exactly.\n *\n * Once a hunk is successfully fitted, the process begins again with the next hunk.\n * Regardless of `fuzzFactor`, later hunks must be applied later in the file than earlier hunks.\n *\n * If a hunk cannot be successfully fitted *anywhere* with fewer than `fuzzFactor` mismatches, `applyPatch` fails and returns `false`.\n *\n * If a hunk is successfully fitted but not at the line number specified by the hunk header, all subsequent hunks have their target line number adjusted accordingly.\n * (e.g. if the first hunk is applied 10 lines below where the hunk header said it should fit, `applyPatch` will *start* looking for somewhere to apply the second hunk 10 lines below where its hunk header says it goes.)\n *\n * If the patch was applied successfully, returns a string containing the patched text.\n * If the patch could not be applied (because some hunks in the patch couldn't be fitted to the text in `source`), `applyPatch` returns false.\n *\n * @param patch a string diff or the output from the `parsePatch` or `structuredPatch` methods.\n */\nfunction applyPatch(source, patch, options) {\n    if (options === void 0) { options = {}; }\n    var patches;\n    if (typeof patch === 'string') {\n        patches = (0, parse_js_1.parsePatch)(patch);\n    }\n    else if (Array.isArray(patch)) {\n        patches = patch;\n    }\n    else {\n        patches = [patch];\n    }\n    if (patches.length > 1) {\n        throw new Error('applyPatch only works with a single input.');\n    }\n    return applyStructuredPatch(source, patches[0], options);\n}\nfunction applyStructuredPatch(source, patch, options) {\n    if (options === void 0) { options = {}; }\n    if (options.autoConvertLineEndings || options.autoConvertLineEndings == null) {\n        if ((0, string_js_1.hasOnlyWinLineEndings)(source) && (0, line_endings_js_1.isUnix)(patch)) {\n            patch = (0, line_endings_js_1.unixToWin)(patch);\n        }\n        else if ((0, string_js_1.hasOnlyUnixLineEndings)(source) && (0, line_endings_js_1.isWin)(patch)) {\n            patch = (0, line_endings_js_1.winToUnix)(patch);\n        }\n    }\n    // Apply the diff to the input\n    var lines = source.split('\\n'), hunks = patch.hunks, compareLine = options.compareLine || (function (lineNumber, line, operation, patchContent) { return line === patchContent; }), fuzzFactor = options.fuzzFactor || 0;\n    var minLine = 0;\n    if (fuzzFactor < 0 || !Number.isInteger(fuzzFactor)) {\n        throw new Error('fuzzFactor must be a non-negative integer');\n    }\n    // Special case for empty patch.\n    if (!hunks.length) {\n        return source;\n    }\n    // Before anything else, handle EOFNL insertion/removal. If the patch tells us to make a change\n    // to the EOFNL that is redundant/impossible - i.e. to remove a newline that's not there, or add a\n    // newline that already exists - then we either return false and fail to apply the patch (if\n    // fuzzFactor is 0) or simply ignore the problem and do nothing (if fuzzFactor is >0).\n    // If we do need to remove/add a newline at EOF, this will always be in the final hunk:\n    var prevLine = '', removeEOFNL = false, addEOFNL = false;\n    for (var i = 0; i < hunks[hunks.length - 1].lines.length; i++) {\n        var line = hunks[hunks.length - 1].lines[i];\n        if (line[0] == '\\\\') {\n            if (prevLine[0] == '+') {\n                removeEOFNL = true;\n            }\n            else if (prevLine[0] == '-') {\n                addEOFNL = true;\n            }\n        }\n        prevLine = line;\n    }\n    if (removeEOFNL) {\n        if (addEOFNL) {\n            // This means the final line gets changed but doesn't have a trailing newline in either the\n            // original or patched version. In that case, we do nothing if fuzzFactor > 0, and if\n            // fuzzFactor is 0, we simply validate that the source file has no trailing newline.\n            if (!fuzzFactor && lines[lines.length - 1] == '') {\n                return false;\n            }\n        }\n        else if (lines[lines.length - 1] == '') {\n            lines.pop();\n        }\n        else if (!fuzzFactor) {\n            return false;\n        }\n    }\n    else if (addEOFNL) {\n        if (lines[lines.length - 1] != '') {\n            lines.push('');\n        }\n        else if (!fuzzFactor) {\n            return false;\n        }\n    }\n    /**\n     * Checks if the hunk can be made to fit at the provided location with at most `maxErrors`\n     * insertions, substitutions, or deletions, while ensuring also that:\n     * - lines deleted in the hunk match exactly, and\n     * - wherever an insertion operation or block of insertion operations appears in the hunk, the\n     *   immediately preceding and following lines of context match exactly\n     *\n     * `toPos` should be set such that lines[toPos] is meant to match hunkLines[0].\n     *\n     * If the hunk can be applied, returns an object with properties `oldLineLastI` and\n     * `replacementLines`. Otherwise, returns null.\n     */\n    function applyHunk(hunkLines, toPos, maxErrors, hunkLinesI, lastContextLineMatched, patchedLines, patchedLinesLength) {\n        if (hunkLinesI === void 0) { hunkLinesI = 0; }\n        if (lastContextLineMatched === void 0) { lastContextLineMatched = true; }\n        if (patchedLines === void 0) { patchedLines = []; }\n        if (patchedLinesLength === void 0) { patchedLinesLength = 0; }\n        var nConsecutiveOldContextLines = 0;\n        var nextContextLineMustMatch = false;\n        for (; hunkLinesI < hunkLines.length; hunkLinesI++) {\n            var hunkLine = hunkLines[hunkLinesI], operation = (hunkLine.length > 0 ? hunkLine[0] : ' '), content = (hunkLine.length > 0 ? hunkLine.substr(1) : hunkLine);\n            if (operation === '-') {\n                if (compareLine(toPos + 1, lines[toPos], operation, content)) {\n                    toPos++;\n                    nConsecutiveOldContextLines = 0;\n                }\n                else {\n                    if (!maxErrors || lines[toPos] == null) {\n                        return null;\n                    }\n                    patchedLines[patchedLinesLength] = lines[toPos];\n                    return applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI, false, patchedLines, patchedLinesLength + 1);\n                }\n            }\n            if (operation === '+') {\n                if (!lastContextLineMatched) {\n                    return null;\n                }\n                patchedLines[patchedLinesLength] = content;\n                patchedLinesLength++;\n                nConsecutiveOldContextLines = 0;\n                nextContextLineMustMatch = true;\n            }\n            if (operation === ' ') {\n                nConsecutiveOldContextLines++;\n                patchedLines[patchedLinesLength] = lines[toPos];\n                if (compareLine(toPos + 1, lines[toPos], operation, content)) {\n                    patchedLinesLength++;\n                    lastContextLineMatched = true;\n                    nextContextLineMustMatch = false;\n                    toPos++;\n                }\n                else {\n                    if (nextContextLineMustMatch || !maxErrors) {\n                        return null;\n                    }\n                    // Consider 3 possibilities in sequence:\n                    // 1. lines contains a *substitution* not included in the patch context, or\n                    // 2. lines contains an *insertion* not included in the patch context, or\n                    // 3. lines contains a *deletion* not included in the patch context\n                    // The first two options are of course only possible if the line from lines is non-null -\n                    // i.e. only option 3 is possible if we've overrun the end of the old file.\n                    return (lines[toPos] && (applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI + 1, false, patchedLines, patchedLinesLength + 1) || applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI, false, patchedLines, patchedLinesLength + 1)) || applyHunk(hunkLines, toPos, maxErrors - 1, hunkLinesI + 1, false, patchedLines, patchedLinesLength));\n                }\n            }\n        }\n        // Before returning, trim any unmodified context lines off the end of patchedLines and reduce\n        // toPos (and thus oldLineLastI) accordingly. This allows later hunks to be applied to a region\n        // that starts in this hunk's trailing context.\n        patchedLinesLength -= nConsecutiveOldContextLines;\n        toPos -= nConsecutiveOldContextLines;\n        patchedLines.length = patchedLinesLength;\n        return {\n            patchedLines: patchedLines,\n            oldLineLastI: toPos - 1\n        };\n    }\n    var resultLines = [];\n    // Search best fit offsets for each hunk based on the previous ones\n    var prevHunkOffset = 0;\n    for (var i = 0; i < hunks.length; i++) {\n        var hunk = hunks[i];\n        var hunkResult = void 0;\n        var maxLine = lines.length - hunk.oldLines + fuzzFactor;\n        var toPos = void 0;\n        for (var maxErrors = 0; maxErrors <= fuzzFactor; maxErrors++) {\n            toPos = hunk.oldStart + prevHunkOffset - 1;\n            var iterator = (0, distance_iterator_js_1.default)(toPos, minLine, maxLine);\n            for (; toPos !== undefined; toPos = iterator()) {\n                hunkResult = applyHunk(hunk.lines, toPos, maxErrors);\n                if (hunkResult) {\n                    break;\n                }\n            }\n            if (hunkResult) {\n                break;\n            }\n        }\n        if (!hunkResult) {\n            return false;\n        }\n        // Copy everything from the end of where we applied the last hunk to the start of this hunk\n        for (var i_1 = minLine; i_1 < toPos; i_1++) {\n            resultLines.push(lines[i_1]);\n        }\n        // Add the lines produced by applying the hunk:\n        for (var i_2 = 0; i_2 < hunkResult.patchedLines.length; i_2++) {\n            var line = hunkResult.patchedLines[i_2];\n            resultLines.push(line);\n        }\n        // Set lower text limit to end of the current hunk, so next ones don't try\n        // to fit over already patched text\n        minLine = hunkResult.oldLineLastI + 1;\n        // Note the offset between where the patch said the hunk should've applied and where we\n        // applied it, so we can adjust future hunks accordingly:\n        prevHunkOffset = toPos + 1 - hunk.oldStart;\n    }\n    // Copy over the rest of the lines from the old text\n    for (var i = minLine; i < lines.length; i++) {\n        resultLines.push(lines[i]);\n    }\n    return resultLines.join('\\n');\n}\n/**\n * applies one or more patches.\n *\n * `patch` may be either an array of structured patch objects, or a string representing a patch in unified diff format (which may patch one or more files).\n *\n * This method will iterate over the contents of the patch and apply to data provided through callbacks. The general flow for each patch index is:\n *\n * - `options.loadFile(index, callback)` is called. The caller should then load the contents of the file and then pass that to the `callback(err, data)` callback. Passing an `err` will terminate further patch execution.\n * - `options.patched(index, content, callback)` is called once the patch has been applied. `content` will be the return value from `applyPatch`. When it's ready, the caller should call `callback(err)` callback. Passing an `err` will terminate further patch execution.\n *\n * Once all patches have been applied or an error occurs, the `options.complete(err)` callback is made.\n */\nfunction applyPatches(uniDiff, options) {\n    var spDiff = typeof uniDiff === 'string' ? (0, parse_js_1.parsePatch)(uniDiff) : uniDiff;\n    var currentIndex = 0;\n    function processIndex() {\n        var index = spDiff[currentIndex++];\n        if (!index) {\n            return options.complete();\n        }\n        options.loadFile(index, function (err, data) {\n            if (err) {\n                return options.complete(err);\n            }\n            var updatedContent = applyPatch(data, index, options);\n            options.patched(index, updatedContent, function (err) {\n                if (err) {\n                    return options.complete(err);\n                }\n                processIndex();\n            });\n        });\n    }\n    processIndex();\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OMIT_HEADERS = exports.FILE_HEADERS_ONLY = exports.INCLUDE_HEADERS = void 0;\nexports.structuredPatch = structuredPatch;\nexports.formatPatch = formatPatch;\nexports.createTwoFilesPatch = createTwoFilesPatch;\nexports.createPatch = createPatch;\nvar line_js_1 = require(\"../diff/line.js\");\nexports.INCLUDE_HEADERS = {\n    includeIndex: true,\n    includeUnderline: true,\n    includeFileHeaders: true\n};\nexports.FILE_HEADERS_ONLY = {\n    includeIndex: false,\n    includeUnderline: false,\n    includeFileHeaders: true\n};\nexports.OMIT_HEADERS = {\n    includeIndex: false,\n    includeUnderline: false,\n    includeFileHeaders: false\n};\nfunction structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n    var optionsObj;\n    if (!options) {\n        optionsObj = {};\n    }\n    else if (typeof options === 'function') {\n        optionsObj = { callback: options };\n    }\n    else {\n        optionsObj = options;\n    }\n    if (typeof optionsObj.context === 'undefined') {\n        optionsObj.context = 4;\n    }\n    // We copy this into its own variable to placate TypeScript, which thinks\n    // optionsObj.context might be undefined in the callbacks below.\n    var context = optionsObj.context;\n    // @ts-expect-error (runtime check for something that is correctly a static type error)\n    if (optionsObj.newlineIsToken) {\n        throw new Error('newlineIsToken may not be used with patch-generation functions, only with diffing functions');\n    }\n    if (!optionsObj.callback) {\n        return diffLinesResultToPatch((0, line_js_1.diffLines)(oldStr, newStr, optionsObj));\n    }\n    else {\n        var callback_1 = optionsObj.callback;\n        (0, line_js_1.diffLines)(oldStr, newStr, __assign(__assign({}, optionsObj), { callback: function (diff) {\n                var patch = diffLinesResultToPatch(diff);\n                // TypeScript is unhappy without the cast because it does not understand that `patch` may\n                // be undefined here only if `callback` is StructuredPatchCallbackAbortable:\n                callback_1(patch);\n            } }));\n    }\n    function diffLinesResultToPatch(diff) {\n        // STEP 1: Build up the patch with no \"\\ No newline at end of file\" lines and with the arrays\n        //         of lines containing trailing newline characters. We'll tidy up later...\n        if (!diff) {\n            return;\n        }\n        diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\n        function contextLines(lines) {\n            return lines.map(function (entry) { return ' ' + entry; });\n        }\n        var hunks = [];\n        var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;\n        for (var i = 0; i < diff.length; i++) {\n            var current = diff[i], lines = current.lines || splitLines(current.value);\n            current.lines = lines;\n            if (current.added || current.removed) {\n                // If we have previous context, start with that\n                if (!oldRangeStart) {\n                    var prev = diff[i - 1];\n                    oldRangeStart = oldLine;\n                    newRangeStart = newLine;\n                    if (prev) {\n                        curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];\n                        oldRangeStart -= curRange.length;\n                        newRangeStart -= curRange.length;\n                    }\n                }\n                // Output our changes\n                for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) {\n                    var line = lines_1[_i];\n                    curRange.push((current.added ? '+' : '-') + line);\n                }\n                // Track the updated file position\n                if (current.added) {\n                    newLine += lines.length;\n                }\n                else {\n                    oldLine += lines.length;\n                }\n            }\n            else {\n                // Identical context lines. Track line changes\n                if (oldRangeStart) {\n                    // Close out any changes that have been output (or join overlapping)\n                    if (lines.length <= context * 2 && i < diff.length - 2) {\n                        // Overlapping\n                        for (var _a = 0, _b = contextLines(lines); _a < _b.length; _a++) {\n                            var line = _b[_a];\n                            curRange.push(line);\n                        }\n                    }\n                    else {\n                        // end the range and output\n                        var contextSize = Math.min(lines.length, context);\n                        for (var _c = 0, _d = contextLines(lines.slice(0, contextSize)); _c < _d.length; _c++) {\n                            var line = _d[_c];\n                            curRange.push(line);\n                        }\n                        var hunk = {\n                            oldStart: oldRangeStart,\n                            oldLines: (oldLine - oldRangeStart + contextSize),\n                            newStart: newRangeStart,\n                            newLines: (newLine - newRangeStart + contextSize),\n                            lines: curRange\n                        };\n                        hunks.push(hunk);\n                        oldRangeStart = 0;\n                        newRangeStart = 0;\n                        curRange = [];\n                    }\n                }\n                oldLine += lines.length;\n                newLine += lines.length;\n            }\n        }\n        // Step 2: eliminate the trailing `\\n` from each line of each hunk, and, where needed, add\n        //         \"\\ No newline at end of file\".\n        for (var _e = 0, hunks_1 = hunks; _e < hunks_1.length; _e++) {\n            var hunk = hunks_1[_e];\n            for (var i = 0; i < hunk.lines.length; i++) {\n                if (hunk.lines[i].endsWith('\\n')) {\n                    hunk.lines[i] = hunk.lines[i].slice(0, -1);\n                }\n                else {\n                    hunk.lines.splice(i + 1, 0, '\\\\ No newline at end of file');\n                    i++; // Skip the line we just added, then continue iterating\n                }\n            }\n        }\n        return {\n            oldFileName: oldFileName, newFileName: newFileName,\n            oldHeader: oldHeader, newHeader: newHeader,\n            hunks: hunks\n        };\n    }\n}\n/**\n * creates a unified diff patch.\n * @param patch either a single structured patch object (as returned by `structuredPatch`) or an array of them (as returned by `parsePatch`)\n */\nfunction formatPatch(patch, headerOptions) {\n    if (!headerOptions) {\n        headerOptions = exports.INCLUDE_HEADERS;\n    }\n    if (Array.isArray(patch)) {\n        if (patch.length > 1 && !headerOptions.includeFileHeaders) {\n            throw new Error('Cannot omit file headers on a multi-file patch. '\n                + '(The result would be unparseable; how would a tool trying to apply '\n                + 'the patch know which changes are to which file?)');\n        }\n        return patch.map(function (p) { return formatPatch(p, headerOptions); }).join('\\n');\n    }\n    var ret = [];\n    if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName) {\n        ret.push('Index: ' + patch.oldFileName);\n    }\n    if (headerOptions.includeUnderline) {\n        ret.push('===================================================================');\n    }\n    if (headerOptions.includeFileHeaders) {\n        ret.push('--- ' + patch.oldFileName + (typeof patch.oldHeader === 'undefined' ? '' : '\\t' + patch.oldHeader));\n        ret.push('+++ ' + patch.newFileName + (typeof patch.newHeader === 'undefined' ? '' : '\\t' + patch.newHeader));\n    }\n    for (var i = 0; i < patch.hunks.length; i++) {\n        var hunk = patch.hunks[i];\n        // Unified Diff Format quirk: If the chunk size is 0,\n        // the first number is one lower than one would expect.\n        // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n        if (hunk.oldLines === 0) {\n            hunk.oldStart -= 1;\n        }\n        if (hunk.newLines === 0) {\n            hunk.newStart -= 1;\n        }\n        ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines\n            + ' +' + hunk.newStart + ',' + hunk.newLines\n            + ' @@');\n        for (var _i = 0, _a = hunk.lines; _i < _a.length; _i++) {\n            var line = _a[_i];\n            ret.push(line);\n        }\n    }\n    return ret.join('\\n') + '\\n';\n}\nfunction createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n    if (typeof options === 'function') {\n        options = { callback: options };\n    }\n    if (!(options === null || options === void 0 ? void 0 : options.callback)) {\n        var patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n        if (!patchObj) {\n            return;\n        }\n        return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);\n    }\n    else {\n        var callback_2 = options.callback;\n        structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, __assign(__assign({}, options), { callback: function (patchObj) {\n                if (!patchObj) {\n                    callback_2(undefined);\n                }\n                else {\n                    callback_2(formatPatch(patchObj, options.headerOptions));\n                }\n            } }));\n    }\n}\nfunction createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n    return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n/**\n * Split `text` into an array of lines, including the trailing newline character (where present)\n */\nfunction splitLines(text) {\n    var hasTrailingNl = text.endsWith('\\n');\n    var result = text.split('\\n').map(function (line) { return line + '\\n'; });\n    if (hasTrailingNl) {\n        result.pop();\n    }\n    else {\n        result.push(result.pop().slice(0, -1));\n    }\n    return result;\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unixToWin = unixToWin;\nexports.winToUnix = winToUnix;\nexports.isUnix = isUnix;\nexports.isWin = isWin;\nfunction unixToWin(patch) {\n    if (Array.isArray(patch)) {\n        // It would be cleaner if instead of the line below we could just write\n        //     return patch.map(unixToWin)\n        // but mysteriously TypeScript (v5.7.3 at the time of writing) does not like this and it will\n        // refuse to compile, thinking that unixToWin could then return StructuredPatch[][] and the\n        // result would be incompatible with the overload signatures.\n        // See bug report at https://github.com/microsoft/TypeScript/issues/61398.\n        return patch.map(function (p) { return unixToWin(p); });\n    }\n    return __assign(__assign({}, patch), { hunks: patch.hunks.map(function (hunk) { return (__assign(__assign({}, hunk), { lines: hunk.lines.map(function (line, i) {\n                var _a;\n                return (line.startsWith('\\\\') || line.endsWith('\\r') || ((_a = hunk.lines[i + 1]) === null || _a === void 0 ? void 0 : _a.startsWith('\\\\')))\n                    ? line\n                    : line + '\\r';\n            }) })); }) });\n}\nfunction winToUnix(patch) {\n    if (Array.isArray(patch)) {\n        // (See comment above equivalent line in unixToWin)\n        return patch.map(function (p) { return winToUnix(p); });\n    }\n    return __assign(__assign({}, patch), { hunks: patch.hunks.map(function (hunk) { return (__assign(__assign({}, hunk), { lines: hunk.lines.map(function (line) { return line.endsWith('\\r') ? line.substring(0, line.length - 1) : line; }) })); }) });\n}\n/**\n * Returns true if the patch consistently uses Unix line endings (or only involves one line and has\n * no line endings).\n */\nfunction isUnix(patch) {\n    if (!Array.isArray(patch)) {\n        patch = [patch];\n    }\n    return !patch.some(function (index) { return index.hunks.some(function (hunk) { return hunk.lines.some(function (line) { return !line.startsWith('\\\\') && line.endsWith('\\r'); }); }); });\n}\n/**\n * Returns true if the patch uses Windows line endings and only Windows line endings.\n */\nfunction isWin(patch) {\n    if (!Array.isArray(patch)) {\n        patch = [patch];\n    }\n    return patch.some(function (index) { return index.hunks.some(function (hunk) { return hunk.lines.some(function (line) { return line.endsWith('\\r'); }); }); })\n        && patch.every(function (index) { return index.hunks.every(function (hunk) { return hunk.lines.every(function (line, i) { var _a; return line.startsWith('\\\\') || line.endsWith('\\r') || ((_a = hunk.lines[i + 1]) === null || _a === void 0 ? void 0 : _a.startsWith('\\\\')); }); }); });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parsePatch = parsePatch;\n/**\n * Parses a patch into structured data, in the same structure returned by `structuredPatch`.\n *\n * @return a JSON object representation of the a patch, suitable for use with the `applyPatch` method.\n */\nfunction parsePatch(uniDiff) {\n    var diffstr = uniDiff.split(/\\n/), list = [];\n    var i = 0;\n    function parseIndex() {\n        var index = {};\n        list.push(index);\n        // Parse diff metadata\n        while (i < diffstr.length) {\n            var line = diffstr[i];\n            // File header found, end parsing diff metadata\n            if ((/^(---|\\+\\+\\+|@@)\\s/).test(line)) {\n                break;\n            }\n            // Try to parse the line as a diff header, like\n            //     Index: README.md\n            // or\n            //     diff -r 9117c6561b0b -r 273ce12ad8f1 .hgignore\n            // or\n            //     Index: something with multiple words\n            // and extract the filename (or whatever else is used as an index name)\n            // from the end (i.e. 'README.md', '.hgignore', or\n            // 'something with multiple words' in the examples above).\n            //\n            // TODO: It seems awkward that we indiscriminately trim off trailing\n            //       whitespace here. Theoretically, couldn't that be meaningful -\n            //       e.g. if the patch represents a diff of a file whose name ends\n            //       with a space? Seems wrong to nuke it.\n            //       But this behaviour has been around since v2.2.1 in 2015, so if\n            //       it's going to change, it should be done cautiously and in a new\n            //       major release, for backwards-compat reasons.\n            //       -- ExplodingCabbage\n            var headerMatch = (/^(?:Index:|diff(?: -r \\w+)+)\\s+/).exec(line);\n            if (headerMatch) {\n                index.index = line.substring(headerMatch[0].length).trim();\n            }\n            i++;\n        }\n        // Parse file headers if they are defined. Unified diff requires them, but\n        // there's no technical issues to have an isolated hunk without file header\n        parseFileHeader(index);\n        parseFileHeader(index);\n        // Parse hunks\n        index.hunks = [];\n        while (i < diffstr.length) {\n            var line = diffstr[i];\n            if ((/^(Index:\\s|diff\\s|---\\s|\\+\\+\\+\\s|===================================================================)/).test(line)) {\n                break;\n            }\n            else if ((/^@@/).test(line)) {\n                index.hunks.push(parseHunk());\n            }\n            else if (line) {\n                throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(line));\n            }\n            else {\n                i++;\n            }\n        }\n    }\n    // Parses the --- and +++ headers, if none are found, no lines\n    // are consumed.\n    function parseFileHeader(index) {\n        var fileHeaderMatch = (/^(---|\\+\\+\\+)\\s+/).exec(diffstr[i]);\n        if (fileHeaderMatch) {\n            var prefix = fileHeaderMatch[1], data = diffstr[i].substring(3).trim().split('\\t', 2), header = (data[1] || '').trim();\n            var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n            if (fileName.startsWith('\"') && fileName.endsWith('\"')) {\n                fileName = fileName.substr(1, fileName.length - 2);\n            }\n            if (prefix === '---') {\n                index.oldFileName = fileName;\n                index.oldHeader = header;\n            }\n            else {\n                index.newFileName = fileName;\n                index.newHeader = header;\n            }\n            i++;\n        }\n    }\n    // Parses a hunk\n    // This assumes that we are at the start of a hunk.\n    function parseHunk() {\n        var _a;\n        var chunkHeaderIndex = i, chunkHeaderLine = diffstr[i++], chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n        var hunk = {\n            oldStart: +chunkHeader[1],\n            oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n            newStart: +chunkHeader[3],\n            newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n            lines: []\n        };\n        // Unified Diff Format quirk: If the chunk size is 0,\n        // the first number is one lower than one would expect.\n        // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n        if (hunk.oldLines === 0) {\n            hunk.oldStart += 1;\n        }\n        if (hunk.newLines === 0) {\n            hunk.newStart += 1;\n        }\n        var addCount = 0, removeCount = 0;\n        for (; i < diffstr.length && (removeCount < hunk.oldLines || addCount < hunk.newLines || ((_a = diffstr[i]) === null || _a === void 0 ? void 0 : _a.startsWith('\\\\'))); i++) {\n            var operation = (diffstr[i].length == 0 && i != (diffstr.length - 1)) ? ' ' : diffstr[i][0];\n            if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n                hunk.lines.push(diffstr[i]);\n                if (operation === '+') {\n                    addCount++;\n                }\n                else if (operation === '-') {\n                    removeCount++;\n                }\n                else if (operation === ' ') {\n                    addCount++;\n                    removeCount++;\n                }\n            }\n            else {\n                throw new Error(\"Hunk at line \".concat(chunkHeaderIndex + 1, \" contained invalid line \").concat(diffstr[i]));\n            }\n        }\n        // Handle the empty block count case\n        if (!addCount && hunk.newLines === 1) {\n            hunk.newLines = 0;\n        }\n        if (!removeCount && hunk.oldLines === 1) {\n            hunk.oldLines = 0;\n        }\n        // Perform sanity checking\n        if (addCount !== hunk.newLines) {\n            throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n        }\n        if (removeCount !== hunk.oldLines) {\n            throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n        }\n        return hunk;\n    }\n    while (i < diffstr.length) {\n        parseIndex();\n    }\n    return list;\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reversePatch = reversePatch;\nfunction reversePatch(structuredPatch) {\n    if (Array.isArray(structuredPatch)) {\n        // (See comment in unixToWin for why we need the pointless-looking anonymous function here)\n        return structuredPatch.map(function (patch) { return reversePatch(patch); }).reverse();\n    }\n    return __assign(__assign({}, structuredPatch), { oldFileName: structuredPatch.newFileName, oldHeader: structuredPatch.newHeader, newFileName: structuredPatch.oldFileName, newHeader: structuredPatch.oldHeader, hunks: structuredPatch.hunks.map(function (hunk) {\n            return {\n                oldLines: hunk.newLines,\n                oldStart: hunk.newStart,\n                newLines: hunk.oldLines,\n                newStart: hunk.oldStart,\n                lines: hunk.lines.map(function (l) {\n                    if (l.startsWith('-')) {\n                        return \"+\".concat(l.slice(1));\n                    }\n                    if (l.startsWith('+')) {\n                        return \"-\".concat(l.slice(1));\n                    }\n                    return l;\n                })\n            };\n        }) });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = default_1;\n// Iterator that traverses in the range of [min, max], stepping\n// by distance from a given start position. I.e. for [0, 4], with\n// start of 2, this will iterate 2, 3, 1, 4, 0.\nfunction default_1(start, minLine, maxLine) {\n    var wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1;\n    return function iterator() {\n        if (wantForward && !forwardExhausted) {\n            if (backwardExhausted) {\n                localOffset++;\n            }\n            else {\n                wantForward = false;\n            }\n            // Check if trying to fit beyond text length, and if not, check it fits\n            // after offset location (or desired location on first iteration)\n            if (start + localOffset <= maxLine) {\n                return start + localOffset;\n            }\n            forwardExhausted = true;\n        }\n        if (!backwardExhausted) {\n            if (!forwardExhausted) {\n                wantForward = true;\n            }\n            // Check if trying to fit before text beginning, and if not, check it fits\n            // before offset location\n            if (minLine <= start - localOffset) {\n                return start - localOffset++;\n            }\n            backwardExhausted = true;\n            return iterator();\n        }\n        // We tried to fit hunk before text beginning and beyond text length, then\n        // hunk can't fit on the text. Return undefined\n        return undefined;\n    };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateOptions = generateOptions;\nfunction generateOptions(options, defaults) {\n    if (typeof options === 'function') {\n        defaults.callback = options;\n    }\n    else if (options) {\n        for (var name in options) {\n            /* istanbul ignore else */\n            if (Object.prototype.hasOwnProperty.call(options, name)) {\n                defaults[name] = options[name];\n            }\n        }\n    }\n    return defaults;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.longestCommonPrefix = longestCommonPrefix;\nexports.longestCommonSuffix = longestCommonSuffix;\nexports.replacePrefix = replacePrefix;\nexports.replaceSuffix = replaceSuffix;\nexports.removePrefix = removePrefix;\nexports.removeSuffix = removeSuffix;\nexports.maximumOverlap = maximumOverlap;\nexports.hasOnlyWinLineEndings = hasOnlyWinLineEndings;\nexports.hasOnlyUnixLineEndings = hasOnlyUnixLineEndings;\nexports.segment = segment;\nexports.trailingWs = trailingWs;\nexports.leadingWs = leadingWs;\nexports.leadingAndTrailingWs = leadingAndTrailingWs;\nfunction longestCommonPrefix(str1, str2) {\n    var i;\n    for (i = 0; i < str1.length && i < str2.length; i++) {\n        if (str1[i] != str2[i]) {\n            return str1.slice(0, i);\n        }\n    }\n    return str1.slice(0, i);\n}\nfunction longestCommonSuffix(str1, str2) {\n    var i;\n    // Unlike longestCommonPrefix, we need a special case to handle all scenarios\n    // where we return the empty string since str1.slice(-0) will return the\n    // entire string.\n    if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) {\n        return '';\n    }\n    for (i = 0; i < str1.length && i < str2.length; i++) {\n        if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) {\n            return str1.slice(-i);\n        }\n    }\n    return str1.slice(-i);\n}\nfunction replacePrefix(string, oldPrefix, newPrefix) {\n    if (string.slice(0, oldPrefix.length) != oldPrefix) {\n        throw Error(\"string \".concat(JSON.stringify(string), \" doesn't start with prefix \").concat(JSON.stringify(oldPrefix), \"; this is a bug\"));\n    }\n    return newPrefix + string.slice(oldPrefix.length);\n}\nfunction replaceSuffix(string, oldSuffix, newSuffix) {\n    if (!oldSuffix) {\n        return string + newSuffix;\n    }\n    if (string.slice(-oldSuffix.length) != oldSuffix) {\n        throw Error(\"string \".concat(JSON.stringify(string), \" doesn't end with suffix \").concat(JSON.stringify(oldSuffix), \"; this is a bug\"));\n    }\n    return string.slice(0, -oldSuffix.length) + newSuffix;\n}\nfunction removePrefix(string, oldPrefix) {\n    return replacePrefix(string, oldPrefix, '');\n}\nfunction removeSuffix(string, oldSuffix) {\n    return replaceSuffix(string, oldSuffix, '');\n}\nfunction maximumOverlap(string1, string2) {\n    return string2.slice(0, overlapCount(string1, string2));\n}\n// Nicked from https://stackoverflow.com/a/60422853/1709587\nfunction overlapCount(a, b) {\n    // Deal with cases where the strings differ in length\n    var startA = 0;\n    if (a.length > b.length) {\n        startA = a.length - b.length;\n    }\n    var endB = b.length;\n    if (a.length < b.length) {\n        endB = a.length;\n    }\n    // Create a back-reference for each index\n    //   that should be followed in case of a mismatch.\n    //   We only need B to make these references:\n    var map = Array(endB);\n    var k = 0; // Index that lags behind j\n    map[0] = 0;\n    for (var j = 1; j < endB; j++) {\n        if (b[j] == b[k]) {\n            map[j] = map[k]; // skip over the same character (optional optimisation)\n        }\n        else {\n            map[j] = k;\n        }\n        while (k > 0 && b[j] != b[k]) {\n            k = map[k];\n        }\n        if (b[j] == b[k]) {\n            k++;\n        }\n    }\n    // Phase 2: use these references while iterating over A\n    k = 0;\n    for (var i = startA; i < a.length; i++) {\n        while (k > 0 && a[i] != b[k]) {\n            k = map[k];\n        }\n        if (a[i] == b[k]) {\n            k++;\n        }\n    }\n    return k;\n}\n/**\n * Returns true if the string consistently uses Windows line endings.\n */\nfunction hasOnlyWinLineEndings(string) {\n    return string.includes('\\r\\n') && !string.startsWith('\\n') && !string.match(/[^\\r]\\n/);\n}\n/**\n * Returns true if the string consistently uses Unix line endings.\n */\nfunction hasOnlyUnixLineEndings(string) {\n    return !string.includes('\\r\\n') && string.includes('\\n');\n}\n/**\n * Split a string into segments using a word segmenter, merging consecutive\n * segments if they are both whitespace segments. Whitespace segments can\n * appear adjacent to one another for two reasons:\n * - newlines always get their own segment\n * - where a diacritic is attached to a whitespace character in the text, the\n *   segment ends after the diacritic, so e.g. \" \\u0300 \" becomes two segments.\n * This function therefore runs the segmenter's .segment() method and then\n * merges consecutive segments of whitespace into a single part.\n */\nfunction segment(string, segmenter) {\n    var parts = [];\n    for (var _i = 0, _a = Array.from(segmenter.segment(string)); _i < _a.length; _i++) {\n        var segmentObj = _a[_i];\n        var segment_1 = segmentObj.segment;\n        if (parts.length && (/\\s/).test(parts[parts.length - 1]) && (/\\s/).test(segment_1)) {\n            parts[parts.length - 1] += segment_1;\n        }\n        else {\n            parts.push(segment_1);\n        }\n    }\n    return parts;\n}\n// The functions below take a `segmenter` argument so that, when called from\n// diffWords when it is using a segmenter, they can use a notion of what\n// constitutes \"whitespace\" that is consistent with the segmenter.\n//\n// USUALLY this will be identical to the result of the non-segmenter-based\n// logic, but it differs in at least one case: when whitespace characters are\n// modified by diacritics. A word segmenter considers these diacritics to be\n// part of the whitespace, whereas our non-segmenter-based logic does not.\n//\n// Because the segmenter-based approach necessarily requires segmenting the\n// entire string, we offer a leadingAndTrailingWs function to allow getting the\n// whitespace prefix AND whitespace suffix with a single call to the segmenter,\n// for efficiency's sake.\nfunction trailingWs(string, segmenter) {\n    if (segmenter) {\n        return leadingAndTrailingWs(string, segmenter)[1];\n    }\n    // Yes, this looks overcomplicated and dumb - why not replace the whole function with\n    //     return string.match(/\\s*$/)[0]\n    // you ask? Because:\n    // 1. the trap described at https://markamery.com/blog/quadratic-time-regexes/ would mean doing\n    //    this would cause this function to take O(n²) time in the worst case (specifically when\n    //    there is a massive run of NON-TRAILING whitespace in `string`), and\n    // 2. the fix proposed in the same blog post, of using a negative lookbehind, is incompatible\n    //    with old Safari versions that we'd like to not break if possible (see\n    //    https://github.com/kpdecker/jsdiff/pull/550)\n    // It feels absurd to do this with an explicit loop instead of a regex, but I really can't see a\n    // better way that doesn't result in broken behaviour.\n    var i;\n    for (i = string.length - 1; i >= 0; i--) {\n        if (!string[i].match(/\\s/)) {\n            break;\n        }\n    }\n    return string.substring(i + 1);\n}\nfunction leadingWs(string, segmenter) {\n    if (segmenter) {\n        return leadingAndTrailingWs(string, segmenter)[0];\n    }\n    // Thankfully the annoying considerations described in trailingWs don't apply here:\n    var match = string.match(/^\\s*/);\n    return match ? match[0] : '';\n}\nfunction leadingAndTrailingWs(string, segmenter) {\n    if (!segmenter) {\n        return [leadingWs(string), trailingWs(string)];\n    }\n    if (segmenter.resolvedOptions().granularity != 'word') {\n        throw new Error('The segmenter passed must have a granularity of \"word\"');\n    }\n    var segments = segment(string, segmenter);\n    var firstSeg = segments[0];\n    var lastSeg = segments[segments.length - 1];\n    var head = (/\\s/).test(firstSeg) ? firstSeg : '';\n    var tail = (/\\s/).test(lastSeg) ? lastSeg : '';\n    return [head, tail];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Glob = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst node_url_1 = require(\"node:url\");\nconst path_scurry_1 = require(\"path-scurry\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst walker_js_1 = require(\"./walker.js\");\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform = (typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string') ?\n    process.platform\n    : 'linux';\n/**\n * An object that can perform glob pattern traversals.\n */\nclass Glob {\n    absolute;\n    cwd;\n    root;\n    dot;\n    dotRelative;\n    follow;\n    ignore;\n    magicalBraces;\n    mark;\n    matchBase;\n    maxDepth;\n    nobrace;\n    nocase;\n    nodir;\n    noext;\n    noglobstar;\n    pattern;\n    platform;\n    realpath;\n    scurry;\n    stat;\n    signal;\n    windowsPathsNoEscape;\n    withFileTypes;\n    includeChildMatches;\n    /**\n     * The options provided to the constructor.\n     */\n    opts;\n    /**\n     * An array of parsed immutable {@link Pattern} objects.\n     */\n    patterns;\n    /**\n     * All options are stored as properties on the `Glob` object.\n     *\n     * See {@link GlobOptions} for full options descriptions.\n     *\n     * Note that a previous `Glob` object can be passed as the\n     * `GlobOptions` to another `Glob` instantiation to re-use settings\n     * and caches with a new pattern.\n     *\n     * Traversal functions can be called multiple times to run the walk\n     * again.\n     */\n    constructor(pattern, opts) {\n        /* c8 ignore start */\n        if (!opts)\n            throw new TypeError('glob options required');\n        /* c8 ignore stop */\n        this.withFileTypes = !!opts.withFileTypes;\n        this.signal = opts.signal;\n        this.follow = !!opts.follow;\n        this.dot = !!opts.dot;\n        this.dotRelative = !!opts.dotRelative;\n        this.nodir = !!opts.nodir;\n        this.mark = !!opts.mark;\n        if (!opts.cwd) {\n            this.cwd = '';\n        }\n        else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n            opts.cwd = (0, node_url_1.fileURLToPath)(opts.cwd);\n        }\n        this.cwd = opts.cwd || '';\n        this.root = opts.root;\n        this.magicalBraces = !!opts.magicalBraces;\n        this.nobrace = !!opts.nobrace;\n        this.noext = !!opts.noext;\n        this.realpath = !!opts.realpath;\n        this.absolute = opts.absolute;\n        this.includeChildMatches = opts.includeChildMatches !== false;\n        this.noglobstar = !!opts.noglobstar;\n        this.matchBase = !!opts.matchBase;\n        this.maxDepth =\n            typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity;\n        this.stat = !!opts.stat;\n        this.ignore = opts.ignore;\n        if (this.withFileTypes && this.absolute !== undefined) {\n            throw new Error('cannot set absolute and withFileTypes:true');\n        }\n        if (typeof pattern === 'string') {\n            pattern = [pattern];\n        }\n        this.windowsPathsNoEscape =\n            !!opts.windowsPathsNoEscape ||\n                opts.allowWindowsEscape ===\n                    false;\n        if (this.windowsPathsNoEscape) {\n            pattern = pattern.map(p => p.replace(/\\\\/g, '/'));\n        }\n        if (this.matchBase) {\n            if (opts.noglobstar) {\n                throw new TypeError('base matching requires globstar');\n            }\n            pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`));\n        }\n        this.pattern = pattern;\n        this.platform = opts.platform || defaultPlatform;\n        this.opts = { ...opts, platform: this.platform };\n        if (opts.scurry) {\n            this.scurry = opts.scurry;\n            if (opts.nocase !== undefined &&\n                opts.nocase !== opts.scurry.nocase) {\n                throw new Error('nocase option contradicts provided scurry option');\n            }\n        }\n        else {\n            const Scurry = opts.platform === 'win32' ? path_scurry_1.PathScurryWin32\n                : opts.platform === 'darwin' ? path_scurry_1.PathScurryDarwin\n                    : opts.platform ? path_scurry_1.PathScurryPosix\n                        : path_scurry_1.PathScurry;\n            this.scurry = new Scurry(this.cwd, {\n                nocase: opts.nocase,\n                fs: opts.fs,\n            });\n        }\n        this.nocase = this.scurry.nocase;\n        // If you do nocase:true on a case-sensitive file system, then\n        // we need to use regexps instead of strings for non-magic\n        // path portions, because statting `aBc` won't return results\n        // for the file `AbC` for example.\n        const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32';\n        const mmo = {\n            // default nocase based on platform\n            ...opts,\n            dot: this.dot,\n            matchBase: this.matchBase,\n            nobrace: this.nobrace,\n            nocase: this.nocase,\n            nocaseMagicOnly,\n            nocomment: true,\n            noext: this.noext,\n            nonegate: true,\n            optimizationLevel: 2,\n            platform: this.platform,\n            windowsPathsNoEscape: this.windowsPathsNoEscape,\n            debug: !!this.opts.debug,\n        };\n        const mms = this.pattern.map(p => new minimatch_1.Minimatch(p, mmo));\n        const [matchSet, globParts] = mms.reduce((set, m) => {\n            set[0].push(...m.set);\n            set[1].push(...m.globParts);\n            return set;\n        }, [[], []]);\n        this.patterns = matchSet.map((set, i) => {\n            const g = globParts[i];\n            /* c8 ignore start */\n            if (!g)\n                throw new Error('invalid pattern object');\n            /* c8 ignore stop */\n            return new pattern_js_1.Pattern(set, g, 0, this.platform);\n        });\n    }\n    async walk() {\n        // Walkers always return array of Path objects, so we just have to\n        // coerce them into the right shape.  It will have already called\n        // realpath() if the option was set to do so, so we know that's cached.\n        // start out knowing the cwd, at least\n        return [\n            ...(await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n                ...this.opts,\n                maxDepth: this.maxDepth !== Infinity ?\n                    this.maxDepth + this.scurry.cwd.depth()\n                    : Infinity,\n                platform: this.platform,\n                nocase: this.nocase,\n                includeChildMatches: this.includeChildMatches,\n            }).walk()),\n        ];\n    }\n    walkSync() {\n        return [\n            ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n                ...this.opts,\n                maxDepth: this.maxDepth !== Infinity ?\n                    this.maxDepth + this.scurry.cwd.depth()\n                    : Infinity,\n                platform: this.platform,\n                nocase: this.nocase,\n                includeChildMatches: this.includeChildMatches,\n            }).walkSync(),\n        ];\n    }\n    stream() {\n        return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n            ...this.opts,\n            maxDepth: this.maxDepth !== Infinity ?\n                this.maxDepth + this.scurry.cwd.depth()\n                : Infinity,\n            platform: this.platform,\n            nocase: this.nocase,\n            includeChildMatches: this.includeChildMatches,\n        }).stream();\n    }\n    streamSync() {\n        return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n            ...this.opts,\n            maxDepth: this.maxDepth !== Infinity ?\n                this.maxDepth + this.scurry.cwd.depth()\n                : Infinity,\n            platform: this.platform,\n            nocase: this.nocase,\n            includeChildMatches: this.includeChildMatches,\n        }).streamSync();\n    }\n    /**\n     * Default sync iteration function. Returns a Generator that\n     * iterates over the results.\n     */\n    iterateSync() {\n        return this.streamSync()[Symbol.iterator]();\n    }\n    [Symbol.iterator]() {\n        return this.iterateSync();\n    }\n    /**\n     * Default async iteration function. Returns an AsyncGenerator that\n     * iterates over the results.\n     */\n    iterate() {\n        return this.stream()[Symbol.asyncIterator]();\n    }\n    [Symbol.asyncIterator]() {\n        return this.iterate();\n    }\n}\nexports.Glob = Glob;\n//# sourceMappingURL=glob.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasMagic = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nconst hasMagic = (pattern, options = {}) => {\n    if (!Array.isArray(pattern)) {\n        pattern = [pattern];\n    }\n    for (const p of pattern) {\n        if (new minimatch_1.Minimatch(p, options).hasMagic())\n            return true;\n    }\n    return false;\n};\nexports.hasMagic = hasMagic;\n//# sourceMappingURL=has-magic.js.map","\"use strict\";\n// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ignore = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst defaultPlatform = (typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string') ?\n    process.platform\n    : 'linux';\n/**\n * Class used to process ignored patterns\n */\nclass Ignore {\n    relative;\n    relativeChildren;\n    absolute;\n    absoluteChildren;\n    platform;\n    mmopts;\n    constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) {\n        this.relative = [];\n        this.absolute = [];\n        this.relativeChildren = [];\n        this.absoluteChildren = [];\n        this.platform = platform;\n        this.mmopts = {\n            dot: true,\n            nobrace,\n            nocase,\n            noext,\n            noglobstar,\n            optimizationLevel: 2,\n            platform,\n            nocomment: true,\n            nonegate: true,\n        };\n        for (const ign of ignored)\n            this.add(ign);\n    }\n    add(ign) {\n        // this is a little weird, but it gives us a clean set of optimized\n        // minimatch matchers, without getting tripped up if one of them\n        // ends in /** inside a brace section, and it's only inefficient at\n        // the start of the walk, not along it.\n        // It'd be nice if the Pattern class just had a .test() method, but\n        // handling globstars is a bit of a pita, and that code already lives\n        // in minimatch anyway.\n        // Another way would be if maybe Minimatch could take its set/globParts\n        // as an option, and then we could at least just use Pattern to test\n        // for absolute-ness.\n        // Yet another way, Minimatch could take an array of glob strings, and\n        // a cwd option, and do the right thing.\n        const mm = new minimatch_1.Minimatch(ign, this.mmopts);\n        for (let i = 0; i < mm.set.length; i++) {\n            const parsed = mm.set[i];\n            const globParts = mm.globParts[i];\n            /* c8 ignore start */\n            if (!parsed || !globParts) {\n                throw new Error('invalid pattern object');\n            }\n            // strip off leading ./ portions\n            // https://github.com/isaacs/node-glob/issues/570\n            while (parsed[0] === '.' && globParts[0] === '.') {\n                parsed.shift();\n                globParts.shift();\n            }\n            /* c8 ignore stop */\n            const p = new pattern_js_1.Pattern(parsed, globParts, 0, this.platform);\n            const m = new minimatch_1.Minimatch(p.globString(), this.mmopts);\n            const children = globParts[globParts.length - 1] === '**';\n            const absolute = p.isAbsolute();\n            if (absolute)\n                this.absolute.push(m);\n            else\n                this.relative.push(m);\n            if (children) {\n                if (absolute)\n                    this.absoluteChildren.push(m);\n                else\n                    this.relativeChildren.push(m);\n            }\n        }\n    }\n    ignored(p) {\n        const fullpath = p.fullpath();\n        const fullpaths = `${fullpath}/`;\n        const relative = p.relative() || '.';\n        const relatives = `${relative}/`;\n        for (const m of this.relative) {\n            if (m.match(relative) || m.match(relatives))\n                return true;\n        }\n        for (const m of this.absolute) {\n            if (m.match(fullpath) || m.match(fullpaths))\n                return true;\n        }\n        return false;\n    }\n    childrenIgnored(p) {\n        const fullpath = p.fullpath() + '/';\n        const relative = (p.relative() || '.') + '/';\n        for (const m of this.relativeChildren) {\n            if (m.match(relative))\n                return true;\n        }\n        for (const m of this.absoluteChildren) {\n            if (m.match(fullpath))\n                return true;\n        }\n        return false;\n    }\n}\nexports.Ignore = Ignore;\n//# sourceMappingURL=ignore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.glob = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.Ignore = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = void 0;\nexports.globStreamSync = globStreamSync;\nexports.globStream = globStream;\nexports.globSync = globSync;\nexports.globIterateSync = globIterateSync;\nexports.globIterate = globIterate;\nconst minimatch_1 = require(\"minimatch\");\nconst glob_js_1 = require(\"./glob.js\");\nconst has_magic_js_1 = require(\"./has-magic.js\");\nvar minimatch_2 = require(\"minimatch\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return minimatch_2.escape; } });\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return minimatch_2.unescape; } });\nvar glob_js_2 = require(\"./glob.js\");\nObject.defineProperty(exports, \"Glob\", { enumerable: true, get: function () { return glob_js_2.Glob; } });\nvar has_magic_js_2 = require(\"./has-magic.js\");\nObject.defineProperty(exports, \"hasMagic\", { enumerable: true, get: function () { return has_magic_js_2.hasMagic; } });\nvar ignore_js_1 = require(\"./ignore.js\");\nObject.defineProperty(exports, \"Ignore\", { enumerable: true, get: function () { return ignore_js_1.Ignore; } });\nfunction globStreamSync(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).streamSync();\n}\nfunction globStream(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).stream();\n}\nfunction globSync(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).walkSync();\n}\nasync function glob_(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).walk();\n}\nfunction globIterateSync(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).iterateSync();\n}\nfunction globIterate(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).iterate();\n}\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexports.streamSync = globStreamSync;\nexports.stream = Object.assign(globStream, { sync: globStreamSync });\nexports.iterateSync = globIterateSync;\nexports.iterate = Object.assign(globIterate, {\n    sync: globIterateSync,\n});\nexports.sync = Object.assign(globSync, {\n    stream: globStreamSync,\n    iterate: globIterateSync,\n});\nexports.glob = Object.assign(glob_, {\n    glob: glob_,\n    globSync,\n    sync: exports.sync,\n    globStream,\n    stream: exports.stream,\n    globStreamSync,\n    streamSync: exports.streamSync,\n    globIterate,\n    iterate: exports.iterate,\n    globIterateSync,\n    iterateSync: exports.iterateSync,\n    Glob: glob_js_1.Glob,\n    hasMagic: has_magic_js_1.hasMagic,\n    escape: minimatch_1.escape,\n    unescape: minimatch_1.unescape,\n});\nexports.glob.glob = exports.glob;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// this is just a very light wrapper around 2 arrays with an offset index\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pattern = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst isPatternList = (pl) => pl.length >= 1;\nconst isGlobList = (gl) => gl.length >= 1;\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nclass Pattern {\n    #patternList;\n    #globList;\n    #index;\n    length;\n    #platform;\n    #rest;\n    #globString;\n    #isDrive;\n    #isUNC;\n    #isAbsolute;\n    #followGlobstar = true;\n    constructor(patternList, globList, index, platform) {\n        if (!isPatternList(patternList)) {\n            throw new TypeError('empty pattern list');\n        }\n        if (!isGlobList(globList)) {\n            throw new TypeError('empty glob list');\n        }\n        if (globList.length !== patternList.length) {\n            throw new TypeError('mismatched pattern list and glob list lengths');\n        }\n        this.length = patternList.length;\n        if (index < 0 || index >= this.length) {\n            throw new TypeError('index out of range');\n        }\n        this.#patternList = patternList;\n        this.#globList = globList;\n        this.#index = index;\n        this.#platform = platform;\n        // normalize root entries of absolute patterns on initial creation.\n        if (this.#index === 0) {\n            // c: => ['c:/']\n            // C:/ => ['C:/']\n            // C:/x => ['C:/', 'x']\n            // //host/share => ['//host/share/']\n            // //host/share/ => ['//host/share/']\n            // //host/share/x => ['//host/share/', 'x']\n            // /etc => ['/', 'etc']\n            // / => ['/']\n            if (this.isUNC()) {\n                // '' / '' / 'host' / 'share'\n                const [p0, p1, p2, p3, ...prest] = this.#patternList;\n                const [g0, g1, g2, g3, ...grest] = this.#globList;\n                if (prest[0] === '') {\n                    // ends in /\n                    prest.shift();\n                    grest.shift();\n                }\n                const p = [p0, p1, p2, p3, ''].join('/');\n                const g = [g0, g1, g2, g3, ''].join('/');\n                this.#patternList = [p, ...prest];\n                this.#globList = [g, ...grest];\n                this.length = this.#patternList.length;\n            }\n            else if (this.isDrive() || this.isAbsolute()) {\n                const [p1, ...prest] = this.#patternList;\n                const [g1, ...grest] = this.#globList;\n                if (prest[0] === '') {\n                    // ends in /\n                    prest.shift();\n                    grest.shift();\n                }\n                const p = p1 + '/';\n                const g = g1 + '/';\n                this.#patternList = [p, ...prest];\n                this.#globList = [g, ...grest];\n                this.length = this.#patternList.length;\n            }\n        }\n    }\n    /**\n     * The first entry in the parsed list of patterns\n     */\n    pattern() {\n        return this.#patternList[this.#index];\n    }\n    /**\n     * true of if pattern() returns a string\n     */\n    isString() {\n        return typeof this.#patternList[this.#index] === 'string';\n    }\n    /**\n     * true of if pattern() returns GLOBSTAR\n     */\n    isGlobstar() {\n        return this.#patternList[this.#index] === minimatch_1.GLOBSTAR;\n    }\n    /**\n     * true if pattern() returns a regexp\n     */\n    isRegExp() {\n        return this.#patternList[this.#index] instanceof RegExp;\n    }\n    /**\n     * The /-joined set of glob parts that make up this pattern\n     */\n    globString() {\n        return (this.#globString =\n            this.#globString ||\n                (this.#index === 0 ?\n                    this.isAbsolute() ?\n                        this.#globList[0] + this.#globList.slice(1).join('/')\n                        : this.#globList.join('/')\n                    : this.#globList.slice(this.#index).join('/')));\n    }\n    /**\n     * true if there are more pattern parts after this one\n     */\n    hasMore() {\n        return this.length > this.#index + 1;\n    }\n    /**\n     * The rest of the pattern after this part, or null if this is the end\n     */\n    rest() {\n        if (this.#rest !== undefined)\n            return this.#rest;\n        if (!this.hasMore())\n            return (this.#rest = null);\n        this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);\n        this.#rest.#isAbsolute = this.#isAbsolute;\n        this.#rest.#isUNC = this.#isUNC;\n        this.#rest.#isDrive = this.#isDrive;\n        return this.#rest;\n    }\n    /**\n     * true if the pattern represents a //unc/path/ on windows\n     */\n    isUNC() {\n        const pl = this.#patternList;\n        return this.#isUNC !== undefined ?\n            this.#isUNC\n            : (this.#isUNC =\n                this.#platform === 'win32' &&\n                    this.#index === 0 &&\n                    pl[0] === '' &&\n                    pl[1] === '' &&\n                    typeof pl[2] === 'string' &&\n                    !!pl[2] &&\n                    typeof pl[3] === 'string' &&\n                    !!pl[3]);\n    }\n    // pattern like C:/...\n    // split = ['C:', ...]\n    // XXX: would be nice to handle patterns like `c:*` to test the cwd\n    // in c: for *, but I don't know of a way to even figure out what that\n    // cwd is without actually chdir'ing into it?\n    /**\n     * True if the pattern starts with a drive letter on Windows\n     */\n    isDrive() {\n        const pl = this.#patternList;\n        return this.#isDrive !== undefined ?\n            this.#isDrive\n            : (this.#isDrive =\n                this.#platform === 'win32' &&\n                    this.#index === 0 &&\n                    this.length > 1 &&\n                    typeof pl[0] === 'string' &&\n                    /^[a-z]:$/i.test(pl[0]));\n    }\n    // pattern = '/' or '/...' or '/x/...'\n    // split = ['', ''] or ['', ...] or ['', 'x', ...]\n    // Drive and UNC both considered absolute on windows\n    /**\n     * True if the pattern is rooted on an absolute path\n     */\n    isAbsolute() {\n        const pl = this.#patternList;\n        return this.#isAbsolute !== undefined ?\n            this.#isAbsolute\n            : (this.#isAbsolute =\n                (pl[0] === '' && pl.length > 1) ||\n                    this.isDrive() ||\n                    this.isUNC());\n    }\n    /**\n     * consume the root of the pattern, and return it\n     */\n    root() {\n        const p = this.#patternList[0];\n        return (typeof p === 'string' && this.isAbsolute() && this.#index === 0) ?\n            p\n            : '';\n    }\n    /**\n     * Check to see if the current globstar pattern is allowed to follow\n     * a symbolic link.\n     */\n    checkFollowGlobstar() {\n        return !(this.#index === 0 ||\n            !this.isGlobstar() ||\n            !this.#followGlobstar);\n    }\n    /**\n     * Mark that the current globstar pattern is following a symbolic link\n     */\n    markFollowGlobstar() {\n        if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n            return false;\n        this.#followGlobstar = false;\n        return true;\n    }\n}\nexports.Pattern = Pattern;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\n// synchronous utility for filtering entries and calculating subwalks\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * A cache of which patterns have been processed for a given Path\n */\nclass HasWalkedCache {\n    store;\n    constructor(store = new Map()) {\n        this.store = store;\n    }\n    copy() {\n        return new HasWalkedCache(new Map(this.store));\n    }\n    hasWalked(target, pattern) {\n        return this.store.get(target.fullpath())?.has(pattern.globString());\n    }\n    storeWalked(target, pattern) {\n        const fullpath = target.fullpath();\n        const cached = this.store.get(fullpath);\n        if (cached)\n            cached.add(pattern.globString());\n        else\n            this.store.set(fullpath, new Set([pattern.globString()]));\n    }\n}\nexports.HasWalkedCache = HasWalkedCache;\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nclass MatchRecord {\n    store = new Map();\n    add(target, absolute, ifDir) {\n        const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);\n        const current = this.store.get(target);\n        this.store.set(target, current === undefined ? n : n & current);\n    }\n    // match, absolute, ifdir\n    entries() {\n        return [...this.store.entries()].map(([path, n]) => [\n            path,\n            !!(n & 2),\n            !!(n & 1),\n        ]);\n    }\n}\nexports.MatchRecord = MatchRecord;\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nclass SubWalks {\n    store = new Map();\n    add(target, pattern) {\n        if (!target.canReaddir()) {\n            return;\n        }\n        const subs = this.store.get(target);\n        if (subs) {\n            if (!subs.find(p => p.globString() === pattern.globString())) {\n                subs.push(pattern);\n            }\n        }\n        else\n            this.store.set(target, [pattern]);\n    }\n    get(target) {\n        const subs = this.store.get(target);\n        /* c8 ignore start */\n        if (!subs) {\n            throw new Error('attempting to walk unknown path');\n        }\n        /* c8 ignore stop */\n        return subs;\n    }\n    entries() {\n        return this.keys().map(k => [k, this.store.get(k)]);\n    }\n    keys() {\n        return [...this.store.keys()].filter(t => t.canReaddir());\n    }\n}\nexports.SubWalks = SubWalks;\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nclass Processor {\n    hasWalkedCache;\n    matches = new MatchRecord();\n    subwalks = new SubWalks();\n    patterns;\n    follow;\n    dot;\n    opts;\n    constructor(opts, hasWalkedCache) {\n        this.opts = opts;\n        this.follow = !!opts.follow;\n        this.dot = !!opts.dot;\n        this.hasWalkedCache =\n            hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();\n    }\n    processPatterns(target, patterns) {\n        this.patterns = patterns;\n        const processingSet = patterns.map(p => [target, p]);\n        // map of paths to the magic-starting subwalks they need to walk\n        // first item in patterns is the filter\n        for (let [t, pattern] of processingSet) {\n            this.hasWalkedCache.storeWalked(t, pattern);\n            const root = pattern.root();\n            const absolute = pattern.isAbsolute() && this.opts.absolute !== false;\n            // start absolute patterns at root\n            if (root) {\n                t = t.resolve(root === '/' && this.opts.root !== undefined ?\n                    this.opts.root\n                    : root);\n                const rest = pattern.rest();\n                if (!rest) {\n                    this.matches.add(t, true, false);\n                    continue;\n                }\n                else {\n                    pattern = rest;\n                }\n            }\n            if (t.isENOENT())\n                continue;\n            let p;\n            let rest;\n            let changed = false;\n            while (typeof (p = pattern.pattern()) === 'string' &&\n                (rest = pattern.rest())) {\n                const c = t.resolve(p);\n                t = c;\n                pattern = rest;\n                changed = true;\n            }\n            p = pattern.pattern();\n            rest = pattern.rest();\n            if (changed) {\n                if (this.hasWalkedCache.hasWalked(t, pattern))\n                    continue;\n                this.hasWalkedCache.storeWalked(t, pattern);\n            }\n            // now we have either a final string for a known entry,\n            // more strings for an unknown entry,\n            // or a pattern starting with magic, mounted on t.\n            if (typeof p === 'string') {\n                // must not be final entry, otherwise we would have\n                // concatenated it earlier.\n                const ifDir = p === '..' || p === '' || p === '.';\n                this.matches.add(t.resolve(p), absolute, ifDir);\n                continue;\n            }\n            else if (p === minimatch_1.GLOBSTAR) {\n                // if no rest, match and subwalk pattern\n                // if rest, process rest and subwalk pattern\n                // if it's a symlink, but we didn't get here by way of a\n                // globstar match (meaning it's the first time THIS globstar\n                // has traversed a symlink), then we follow it. Otherwise, stop.\n                if (!t.isSymbolicLink() ||\n                    this.follow ||\n                    pattern.checkFollowGlobstar()) {\n                    this.subwalks.add(t, pattern);\n                }\n                const rp = rest?.pattern();\n                const rrest = rest?.rest();\n                if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n                    // only HAS to be a dir if it ends in **/ or **/.\n                    // but ending in ** will match files as well.\n                    this.matches.add(t, absolute, rp === '' || rp === '.');\n                }\n                else {\n                    if (rp === '..') {\n                        // this would mean you're matching **/.. at the fs root,\n                        // and no thanks, I'm not gonna test that specific case.\n                        /* c8 ignore start */\n                        const tp = t.parent || t;\n                        /* c8 ignore stop */\n                        if (!rrest)\n                            this.matches.add(tp, absolute, true);\n                        else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n                            this.subwalks.add(tp, rrest);\n                        }\n                    }\n                }\n            }\n            else if (p instanceof RegExp) {\n                this.subwalks.add(t, pattern);\n            }\n        }\n        return this;\n    }\n    subwalkTargets() {\n        return this.subwalks.keys();\n    }\n    child() {\n        return new Processor(this.opts, this.hasWalkedCache);\n    }\n    // return a new Processor containing the subwalks for each\n    // child entry, and a set of matches, and\n    // a hasWalkedCache that's a copy of this one\n    // then we're going to call\n    filterEntries(parent, entries) {\n        const patterns = this.subwalks.get(parent);\n        // put matches and entry walks into the results processor\n        const results = this.child();\n        for (const e of entries) {\n            for (const pattern of patterns) {\n                const absolute = pattern.isAbsolute();\n                const p = pattern.pattern();\n                const rest = pattern.rest();\n                if (p === minimatch_1.GLOBSTAR) {\n                    results.testGlobstar(e, pattern, rest, absolute);\n                }\n                else if (p instanceof RegExp) {\n                    results.testRegExp(e, p, rest, absolute);\n                }\n                else {\n                    results.testString(e, p, rest, absolute);\n                }\n            }\n        }\n        return results;\n    }\n    testGlobstar(e, pattern, rest, absolute) {\n        if (this.dot || !e.name.startsWith('.')) {\n            if (!pattern.hasMore()) {\n                this.matches.add(e, absolute, false);\n            }\n            if (e.canReaddir()) {\n                // if we're in follow mode or it's not a symlink, just keep\n                // testing the same pattern. If there's more after the globstar,\n                // then this symlink consumes the globstar. If not, then we can\n                // follow at most ONE symlink along the way, so we mark it, which\n                // also checks to ensure that it wasn't already marked.\n                if (this.follow || !e.isSymbolicLink()) {\n                    this.subwalks.add(e, pattern);\n                }\n                else if (e.isSymbolicLink()) {\n                    if (rest && pattern.checkFollowGlobstar()) {\n                        this.subwalks.add(e, rest);\n                    }\n                    else if (pattern.markFollowGlobstar()) {\n                        this.subwalks.add(e, pattern);\n                    }\n                }\n            }\n        }\n        // if the NEXT thing matches this entry, then also add\n        // the rest.\n        if (rest) {\n            const rp = rest.pattern();\n            if (typeof rp === 'string' &&\n                // dots and empty were handled already\n                rp !== '..' &&\n                rp !== '' &&\n                rp !== '.') {\n                this.testString(e, rp, rest.rest(), absolute);\n            }\n            else if (rp === '..') {\n                /* c8 ignore start */\n                const ep = e.parent || e;\n                /* c8 ignore stop */\n                this.subwalks.add(ep, rest);\n            }\n            else if (rp instanceof RegExp) {\n                this.testRegExp(e, rp, rest.rest(), absolute);\n            }\n        }\n    }\n    testRegExp(e, p, rest, absolute) {\n        if (!p.test(e.name))\n            return;\n        if (!rest) {\n            this.matches.add(e, absolute, false);\n        }\n        else {\n            this.subwalks.add(e, rest);\n        }\n    }\n    testString(e, p, rest, absolute) {\n        // should never happen?\n        if (!e.isNamed(p))\n            return;\n        if (!rest) {\n            this.matches.add(e, absolute, false);\n        }\n        else {\n            this.subwalks.add(e, rest);\n        }\n    }\n}\nexports.Processor = Processor;\n//# sourceMappingURL=processor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobStream = exports.GlobWalker = exports.GlobUtil = void 0;\n/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nconst minipass_1 = require(\"minipass\");\nconst ignore_js_1 = require(\"./ignore.js\");\nconst processor_js_1 = require(\"./processor.js\");\nconst makeIgnore = (ignore, opts) => typeof ignore === 'string' ? new ignore_js_1.Ignore([ignore], opts)\n    : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts)\n        : ignore;\n/**\n * basic walking utilities that all the glob walker types use\n */\nclass GlobUtil {\n    path;\n    patterns;\n    opts;\n    seen = new Set();\n    paused = false;\n    aborted = false;\n    #onResume = [];\n    #ignore;\n    #sep;\n    signal;\n    maxDepth;\n    includeChildMatches;\n    constructor(patterns, path, opts) {\n        this.patterns = patterns;\n        this.path = path;\n        this.opts = opts;\n        this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/';\n        this.includeChildMatches = opts.includeChildMatches !== false;\n        if (opts.ignore || !this.includeChildMatches) {\n            this.#ignore = makeIgnore(opts.ignore ?? [], opts);\n            if (!this.includeChildMatches &&\n                typeof this.#ignore.add !== 'function') {\n                const m = 'cannot ignore child matches, ignore lacks add() method.';\n                throw new Error(m);\n            }\n        }\n        // ignore, always set with maxDepth, but it's optional on the\n        // GlobOptions type\n        /* c8 ignore start */\n        this.maxDepth = opts.maxDepth || Infinity;\n        /* c8 ignore stop */\n        if (opts.signal) {\n            this.signal = opts.signal;\n            this.signal.addEventListener('abort', () => {\n                this.#onResume.length = 0;\n            });\n        }\n    }\n    #ignored(path) {\n        return this.seen.has(path) || !!this.#ignore?.ignored?.(path);\n    }\n    #childrenIgnored(path) {\n        return !!this.#ignore?.childrenIgnored?.(path);\n    }\n    // backpressure mechanism\n    pause() {\n        this.paused = true;\n    }\n    resume() {\n        /* c8 ignore start */\n        if (this.signal?.aborted)\n            return;\n        /* c8 ignore stop */\n        this.paused = false;\n        let fn = undefined;\n        while (!this.paused && (fn = this.#onResume.shift())) {\n            fn();\n        }\n    }\n    onResume(fn) {\n        if (this.signal?.aborted)\n            return;\n        /* c8 ignore start */\n        if (!this.paused) {\n            fn();\n        }\n        else {\n            /* c8 ignore stop */\n            this.#onResume.push(fn);\n        }\n    }\n    // do the requisite realpath/stat checking, and return the path\n    // to add or undefined to filter it out.\n    async matchCheck(e, ifDir) {\n        if (ifDir && this.opts.nodir)\n            return undefined;\n        let rpc;\n        if (this.opts.realpath) {\n            rpc = e.realpathCached() || (await e.realpath());\n            if (!rpc)\n                return undefined;\n            e = rpc;\n        }\n        const needStat = e.isUnknown() || this.opts.stat;\n        const s = needStat ? await e.lstat() : e;\n        if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n            const target = await s.realpath();\n            /* c8 ignore start */\n            if (target && (target.isUnknown() || this.opts.stat)) {\n                await target.lstat();\n            }\n            /* c8 ignore stop */\n        }\n        return this.matchCheckTest(s, ifDir);\n    }\n    matchCheckTest(e, ifDir) {\n        return (e &&\n            (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n            (!ifDir || e.canReaddir()) &&\n            (!this.opts.nodir || !e.isDirectory()) &&\n            (!this.opts.nodir ||\n                !this.opts.follow ||\n                !e.isSymbolicLink() ||\n                !e.realpathCached()?.isDirectory()) &&\n            !this.#ignored(e)) ?\n            e\n            : undefined;\n    }\n    matchCheckSync(e, ifDir) {\n        if (ifDir && this.opts.nodir)\n            return undefined;\n        let rpc;\n        if (this.opts.realpath) {\n            rpc = e.realpathCached() || e.realpathSync();\n            if (!rpc)\n                return undefined;\n            e = rpc;\n        }\n        const needStat = e.isUnknown() || this.opts.stat;\n        const s = needStat ? e.lstatSync() : e;\n        if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n            const target = s.realpathSync();\n            if (target && (target?.isUnknown() || this.opts.stat)) {\n                target.lstatSync();\n            }\n        }\n        return this.matchCheckTest(s, ifDir);\n    }\n    matchFinish(e, absolute) {\n        if (this.#ignored(e))\n            return;\n        // we know we have an ignore if this is false, but TS doesn't\n        if (!this.includeChildMatches && this.#ignore?.add) {\n            const ign = `${e.relativePosix()}/**`;\n            this.#ignore.add(ign);\n        }\n        const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute;\n        this.seen.add(e);\n        const mark = this.opts.mark && e.isDirectory() ? this.#sep : '';\n        // ok, we have what we need!\n        if (this.opts.withFileTypes) {\n            this.matchEmit(e);\n        }\n        else if (abs) {\n            const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath();\n            this.matchEmit(abs + mark);\n        }\n        else {\n            const rel = this.opts.posix ? e.relativePosix() : e.relative();\n            const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ?\n                '.' + this.#sep\n                : '';\n            this.matchEmit(!rel ? '.' + mark : pre + rel + mark);\n        }\n    }\n    async match(e, absolute, ifDir) {\n        const p = await this.matchCheck(e, ifDir);\n        if (p)\n            this.matchFinish(p, absolute);\n    }\n    matchSync(e, absolute, ifDir) {\n        const p = this.matchCheckSync(e, ifDir);\n        if (p)\n            this.matchFinish(p, absolute);\n    }\n    walkCB(target, patterns, cb) {\n        /* c8 ignore start */\n        if (this.signal?.aborted)\n            cb();\n        /* c8 ignore stop */\n        this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb);\n    }\n    walkCB2(target, patterns, processor, cb) {\n        if (this.#childrenIgnored(target))\n            return cb();\n        if (this.signal?.aborted)\n            cb();\n        if (this.paused) {\n            this.onResume(() => this.walkCB2(target, patterns, processor, cb));\n            return;\n        }\n        processor.processPatterns(target, patterns);\n        // done processing.  all of the above is sync, can be abstracted out.\n        // subwalks is a map of paths to the entry filters they need\n        // matches is a map of paths to [absolute, ifDir] tuples.\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            tasks++;\n            this.match(m, absolute, ifDir).then(() => next());\n        }\n        for (const t of processor.subwalkTargets()) {\n            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n                continue;\n            }\n            tasks++;\n            const childrenCached = t.readdirCached();\n            if (t.calledReaddir())\n                this.walkCB3(t, childrenCached, processor, next);\n            else {\n                t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);\n            }\n        }\n        next();\n    }\n    walkCB3(target, entries, processor, cb) {\n        processor = processor.filterEntries(target, entries);\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            tasks++;\n            this.match(m, absolute, ifDir).then(() => next());\n        }\n        for (const [target, patterns] of processor.subwalks.entries()) {\n            tasks++;\n            this.walkCB2(target, patterns, processor.child(), next);\n        }\n        next();\n    }\n    walkCBSync(target, patterns, cb) {\n        /* c8 ignore start */\n        if (this.signal?.aborted)\n            cb();\n        /* c8 ignore stop */\n        this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb);\n    }\n    walkCB2Sync(target, patterns, processor, cb) {\n        if (this.#childrenIgnored(target))\n            return cb();\n        if (this.signal?.aborted)\n            cb();\n        if (this.paused) {\n            this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));\n            return;\n        }\n        processor.processPatterns(target, patterns);\n        // done processing.  all of the above is sync, can be abstracted out.\n        // subwalks is a map of paths to the entry filters they need\n        // matches is a map of paths to [absolute, ifDir] tuples.\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            this.matchSync(m, absolute, ifDir);\n        }\n        for (const t of processor.subwalkTargets()) {\n            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n                continue;\n            }\n            tasks++;\n            const children = t.readdirSync();\n            this.walkCB3Sync(t, children, processor, next);\n        }\n        next();\n    }\n    walkCB3Sync(target, entries, processor, cb) {\n        processor = processor.filterEntries(target, entries);\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            this.matchSync(m, absolute, ifDir);\n        }\n        for (const [target, patterns] of processor.subwalks.entries()) {\n            tasks++;\n            this.walkCB2Sync(target, patterns, processor.child(), next);\n        }\n        next();\n    }\n}\nexports.GlobUtil = GlobUtil;\nclass GlobWalker extends GlobUtil {\n    matches = new Set();\n    constructor(patterns, path, opts) {\n        super(patterns, path, opts);\n    }\n    matchEmit(e) {\n        this.matches.add(e);\n    }\n    async walk() {\n        if (this.signal?.aborted)\n            throw this.signal.reason;\n        if (this.path.isUnknown()) {\n            await this.path.lstat();\n        }\n        await new Promise((res, rej) => {\n            this.walkCB(this.path, this.patterns, () => {\n                if (this.signal?.aborted) {\n                    rej(this.signal.reason);\n                }\n                else {\n                    res(this.matches);\n                }\n            });\n        });\n        return this.matches;\n    }\n    walkSync() {\n        if (this.signal?.aborted)\n            throw this.signal.reason;\n        if (this.path.isUnknown()) {\n            this.path.lstatSync();\n        }\n        // nothing for the callback to do, because this never pauses\n        this.walkCBSync(this.path, this.patterns, () => {\n            if (this.signal?.aborted)\n                throw this.signal.reason;\n        });\n        return this.matches;\n    }\n}\nexports.GlobWalker = GlobWalker;\nclass GlobStream extends GlobUtil {\n    results;\n    constructor(patterns, path, opts) {\n        super(patterns, path, opts);\n        this.results = new minipass_1.Minipass({\n            signal: this.signal,\n            objectMode: true,\n        });\n        this.results.on('drain', () => this.resume());\n        this.results.on('resume', () => this.resume());\n    }\n    matchEmit(e) {\n        this.results.write(e);\n        if (!this.results.flowing)\n            this.pause();\n    }\n    stream() {\n        const target = this.path;\n        if (target.isUnknown()) {\n            target.lstat().then(() => {\n                this.walkCB(target, this.patterns, () => this.results.end());\n            });\n        }\n        else {\n            this.walkCB(target, this.patterns, () => this.results.end());\n        }\n        return this.results;\n    }\n    streamSync() {\n        if (this.path.isUnknown()) {\n            this.path.lstatSync();\n        }\n        this.walkCBSync(this.path, this.patterns, () => this.results.end());\n        return this.results;\n    }\n}\nexports.GlobStream = GlobStream;\n//# sourceMappingURL=walker.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertValidPattern = void 0;\nconst MAX_PATTERN_LENGTH = 1024 * 64;\nconst assertValidPattern = (pattern) => {\n    if (typeof pattern !== 'string') {\n        throw new TypeError('invalid pattern');\n    }\n    if (pattern.length > MAX_PATTERN_LENGTH) {\n        throw new TypeError('pattern is too long');\n    }\n};\nexports.assertValidPattern = assertValidPattern;\n//# sourceMappingURL=assert-valid-pattern.js.map","\"use strict\";\n// parse a single path portion\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AST = void 0;\nconst brace_expressions_js_1 = require(\"./brace-expressions.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nclass AST {\n    type;\n    #root;\n    #hasMagic;\n    #uflag = false;\n    #parts = [];\n    #parent;\n    #parentIndex;\n    #negs;\n    #filledNegs = false;\n    #options;\n    #toString;\n    // set to true if it's an extglob with no children\n    // (which really means one child of '')\n    #emptyExt = false;\n    constructor(type, parent, options = {}) {\n        this.type = type;\n        // extglobs are inherently magical\n        if (type)\n            this.#hasMagic = true;\n        this.#parent = parent;\n        this.#root = this.#parent ? this.#parent.#root : this;\n        this.#options = this.#root === this ? options : this.#root.#options;\n        this.#negs = this.#root === this ? [] : this.#root.#negs;\n        if (type === '!' && !this.#root.#filledNegs)\n            this.#negs.push(this);\n        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n    }\n    get hasMagic() {\n        /* c8 ignore start */\n        if (this.#hasMagic !== undefined)\n            return this.#hasMagic;\n        /* c8 ignore stop */\n        for (const p of this.#parts) {\n            if (typeof p === 'string')\n                continue;\n            if (p.type || p.hasMagic)\n                return (this.#hasMagic = true);\n        }\n        // note: will be undefined until we generate the regexp src and find out\n        return this.#hasMagic;\n    }\n    // reconstructs the pattern\n    toString() {\n        if (this.#toString !== undefined)\n            return this.#toString;\n        if (!this.type) {\n            return (this.#toString = this.#parts.map(p => String(p)).join(''));\n        }\n        else {\n            return (this.#toString =\n                this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n        }\n    }\n    #fillNegs() {\n        /* c8 ignore start */\n        if (this !== this.#root)\n            throw new Error('should only call on root');\n        if (this.#filledNegs)\n            return this;\n        /* c8 ignore stop */\n        // call toString() once to fill this out\n        this.toString();\n        this.#filledNegs = true;\n        let n;\n        while ((n = this.#negs.pop())) {\n            if (n.type !== '!')\n                continue;\n            // walk up the tree, appending everthing that comes AFTER parentIndex\n            let p = n;\n            let pp = p.#parent;\n            while (pp) {\n                for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n                    for (const part of n.#parts) {\n                        /* c8 ignore start */\n                        if (typeof part === 'string') {\n                            throw new Error('string part in extglob AST??');\n                        }\n                        /* c8 ignore stop */\n                        part.copyIn(pp.#parts[i]);\n                    }\n                }\n                p = pp;\n                pp = p.#parent;\n            }\n        }\n        return this;\n    }\n    push(...parts) {\n        for (const p of parts) {\n            if (p === '')\n                continue;\n            /* c8 ignore start */\n            if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n                throw new Error('invalid part: ' + p);\n            }\n            /* c8 ignore stop */\n            this.#parts.push(p);\n        }\n    }\n    toJSON() {\n        const ret = this.type === null\n            ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n            : [this.type, ...this.#parts.map(p => p.toJSON())];\n        if (this.isStart() && !this.type)\n            ret.unshift([]);\n        if (this.isEnd() &&\n            (this === this.#root ||\n                (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n            ret.push({});\n        }\n        return ret;\n    }\n    isStart() {\n        if (this.#root === this)\n            return true;\n        // if (this.type) return !!this.#parent?.isStart()\n        if (!this.#parent?.isStart())\n            return false;\n        if (this.#parentIndex === 0)\n            return true;\n        // if everything AHEAD of this is a negation, then it's still the \"start\"\n        const p = this.#parent;\n        for (let i = 0; i < this.#parentIndex; i++) {\n            const pp = p.#parts[i];\n            if (!(pp instanceof AST && pp.type === '!')) {\n                return false;\n            }\n        }\n        return true;\n    }\n    isEnd() {\n        if (this.#root === this)\n            return true;\n        if (this.#parent?.type === '!')\n            return true;\n        if (!this.#parent?.isEnd())\n            return false;\n        if (!this.type)\n            return this.#parent?.isEnd();\n        // if not root, it'll always have a parent\n        /* c8 ignore start */\n        const pl = this.#parent ? this.#parent.#parts.length : 0;\n        /* c8 ignore stop */\n        return this.#parentIndex === pl - 1;\n    }\n    copyIn(part) {\n        if (typeof part === 'string')\n            this.push(part);\n        else\n            this.push(part.clone(this));\n    }\n    clone(parent) {\n        const c = new AST(this.type, parent);\n        for (const p of this.#parts) {\n            c.copyIn(p);\n        }\n        return c;\n    }\n    static #parseAST(str, ast, pos, opt) {\n        let escaping = false;\n        let inBrace = false;\n        let braceStart = -1;\n        let braceNeg = false;\n        if (ast.type === null) {\n            // outside of a extglob, append until we find a start\n            let i = pos;\n            let acc = '';\n            while (i < str.length) {\n                const c = str.charAt(i++);\n                // still accumulate escapes at this point, but we do ignore\n                // starts that are escaped\n                if (escaping || c === '\\\\') {\n                    escaping = !escaping;\n                    acc += c;\n                    continue;\n                }\n                if (inBrace) {\n                    if (i === braceStart + 1) {\n                        if (c === '^' || c === '!') {\n                            braceNeg = true;\n                        }\n                    }\n                    else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                        inBrace = false;\n                    }\n                    acc += c;\n                    continue;\n                }\n                else if (c === '[') {\n                    inBrace = true;\n                    braceStart = i;\n                    braceNeg = false;\n                    acc += c;\n                    continue;\n                }\n                if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n                    ast.push(acc);\n                    acc = '';\n                    const ext = new AST(c, ast);\n                    i = AST.#parseAST(str, ext, i, opt);\n                    ast.push(ext);\n                    continue;\n                }\n                acc += c;\n            }\n            ast.push(acc);\n            return i;\n        }\n        // some kind of extglob, pos is at the (\n        // find the next | or )\n        let i = pos + 1;\n        let part = new AST(null, ast);\n        const parts = [];\n        let acc = '';\n        while (i < str.length) {\n            const c = str.charAt(i++);\n            // still accumulate escapes at this point, but we do ignore\n            // starts that are escaped\n            if (escaping || c === '\\\\') {\n                escaping = !escaping;\n                acc += c;\n                continue;\n            }\n            if (inBrace) {\n                if (i === braceStart + 1) {\n                    if (c === '^' || c === '!') {\n                        braceNeg = true;\n                    }\n                }\n                else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                    inBrace = false;\n                }\n                acc += c;\n                continue;\n            }\n            else if (c === '[') {\n                inBrace = true;\n                braceStart = i;\n                braceNeg = false;\n                acc += c;\n                continue;\n            }\n            if (isExtglobType(c) && str.charAt(i) === '(') {\n                part.push(acc);\n                acc = '';\n                const ext = new AST(c, part);\n                part.push(ext);\n                i = AST.#parseAST(str, ext, i, opt);\n                continue;\n            }\n            if (c === '|') {\n                part.push(acc);\n                acc = '';\n                parts.push(part);\n                part = new AST(null, ast);\n                continue;\n            }\n            if (c === ')') {\n                if (acc === '' && ast.#parts.length === 0) {\n                    ast.#emptyExt = true;\n                }\n                part.push(acc);\n                acc = '';\n                ast.push(...parts, part);\n                return i;\n            }\n            acc += c;\n        }\n        // unfinished extglob\n        // if we got here, it was a malformed extglob! not an extglob, but\n        // maybe something else in there.\n        ast.type = null;\n        ast.#hasMagic = undefined;\n        ast.#parts = [str.substring(pos - 1)];\n        return i;\n    }\n    static fromGlob(pattern, options = {}) {\n        const ast = new AST(null, undefined, options);\n        AST.#parseAST(pattern, ast, 0, options);\n        return ast;\n    }\n    // returns the regular expression if there's magic, or the unescaped\n    // string if not.\n    toMMPattern() {\n        // should only be called on root\n        /* c8 ignore start */\n        if (this !== this.#root)\n            return this.#root.toMMPattern();\n        /* c8 ignore stop */\n        const glob = this.toString();\n        const [re, body, hasMagic, uflag] = this.toRegExpSource();\n        // if we're in nocase mode, and not nocaseMagicOnly, then we do\n        // still need a regular expression if we have to case-insensitively\n        // match capital/lowercase characters.\n        const anyMagic = hasMagic ||\n            this.#hasMagic ||\n            (this.#options.nocase &&\n                !this.#options.nocaseMagicOnly &&\n                glob.toUpperCase() !== glob.toLowerCase());\n        if (!anyMagic) {\n            return body;\n        }\n        const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n        return Object.assign(new RegExp(`^${re}$`, flags), {\n            _src: re,\n            _glob: glob,\n        });\n    }\n    get options() {\n        return this.#options;\n    }\n    // returns the string match, the regexp source, whether there's magic\n    // in the regexp (so a regular expression is required) and whether or\n    // not the uflag is needed for the regular expression (for posix classes)\n    // TODO: instead of injecting the start/end at this point, just return\n    // the BODY of the regexp, along with the start/end portions suitable\n    // for binding the start/end in either a joined full-path makeRe context\n    // (where we bind to (^|/), or a standalone matchPart context (where\n    // we bind to ^, and not /).  Otherwise slashes get duped!\n    //\n    // In part-matching mode, the start is:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n    // - if dots allowed or not possible: ^\n    // - if dots possible and not allowed: ^(?!\\.)\n    // end is:\n    // - if not isEnd(): nothing\n    // - else: $\n    //\n    // In full-path matching mode, we put the slash at the START of the\n    // pattern, so start is:\n    // - if first pattern: same as part-matching mode\n    // - if not isStart(): nothing\n    // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n    // - if dots allowed or not possible: /\n    // - if dots possible and not allowed: /(?!\\.)\n    // end is:\n    // - if last pattern, same as part-matching mode\n    // - else nothing\n    //\n    // Always put the (?:$|/) on negated tails, though, because that has to be\n    // there to bind the end of the negated pattern portion, and it's easier to\n    // just stick it in now rather than try to inject it later in the middle of\n    // the pattern.\n    //\n    // We can just always return the same end, and leave it up to the caller\n    // to know whether it's going to be used joined or in parts.\n    // And, if the start is adjusted slightly, can do the same there:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n    // - if dots allowed or not possible: (?:/|^)\n    // - if dots possible and not allowed: (?:/|^)(?!\\.)\n    //\n    // But it's better to have a simpler binding without a conditional, for\n    // performance, so probably better to return both start options.\n    //\n    // Then the caller just ignores the end if it's not the first pattern,\n    // and the start always gets applied.\n    //\n    // But that's always going to be $ if it's the ending pattern, or nothing,\n    // so the caller can just attach $ at the end of the pattern when building.\n    //\n    // So the todo is:\n    // - better detect what kind of start is needed\n    // - return both flavors of starting pattern\n    // - attach $ at the end of the pattern when creating the actual RegExp\n    //\n    // Ah, but wait, no, that all only applies to the root when the first pattern\n    // is not an extglob. If the first pattern IS an extglob, then we need all\n    // that dot prevention biz to live in the extglob portions, because eg\n    // +(*|.x*) can match .xy but not .yx.\n    //\n    // So, return the two flavors if it's #root and the first child is not an\n    // AST, otherwise leave it to the child AST to handle it, and there,\n    // use the (?:^|/) style of start binding.\n    //\n    // Even simplified further:\n    // - Since the start for a join is eg /(?!\\.) and the start for a part\n    // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n    // or start or whatever) and prepend ^ or / at the Regexp construction.\n    toRegExpSource(allowDot) {\n        const dot = allowDot ?? !!this.#options.dot;\n        if (this.#root === this)\n            this.#fillNegs();\n        if (!this.type) {\n            const noEmpty = this.isStart() && this.isEnd();\n            const src = this.#parts\n                .map(p => {\n                const [re, _, hasMagic, uflag] = typeof p === 'string'\n                    ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n                    : p.toRegExpSource(allowDot);\n                this.#hasMagic = this.#hasMagic || hasMagic;\n                this.#uflag = this.#uflag || uflag;\n                return re;\n            })\n                .join('');\n            let start = '';\n            if (this.isStart()) {\n                if (typeof this.#parts[0] === 'string') {\n                    // this is the string that will match the start of the pattern,\n                    // so we need to protect against dots and such.\n                    // '.' and '..' cannot match unless the pattern is that exactly,\n                    // even if it starts with . or dot:true is set.\n                    const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n                    if (!dotTravAllowed) {\n                        const aps = addPatternStart;\n                        // check if we have a possibility of matching . or ..,\n                        // and prevent that.\n                        const needNoTrav = \n                        // dots are allowed, and the pattern starts with [ or .\n                        (dot && aps.has(src.charAt(0))) ||\n                            // the pattern starts with \\., and then [ or .\n                            (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n                            // the pattern starts with \\.\\., and then [ or .\n                            (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n                        // no need to prevent dots if it can't match a dot, or if a\n                        // sub-pattern will be preventing it anyway.\n                        const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n                        start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n                    }\n                }\n            }\n            // append the \"end of path portion\" pattern to negation tails\n            let end = '';\n            if (this.isEnd() &&\n                this.#root.#filledNegs &&\n                this.#parent?.type === '!') {\n                end = '(?:$|\\\\/)';\n            }\n            const final = start + src + end;\n            return [\n                final,\n                (0, unescape_js_1.unescape)(src),\n                (this.#hasMagic = !!this.#hasMagic),\n                this.#uflag,\n            ];\n        }\n        // We need to calculate the body *twice* if it's a repeat pattern\n        // at the start, once in nodot mode, then again in dot mode, so a\n        // pattern like *(?) can match 'x.y'\n        const repeated = this.type === '*' || this.type === '+';\n        // some kind of extglob\n        const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n        let body = this.#partsToRegExp(dot);\n        if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n            // invalid extglob, has to at least be *something* present, if it's\n            // the entire path portion.\n            const s = this.toString();\n            this.#parts = [s];\n            this.type = null;\n            this.#hasMagic = undefined;\n            return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];\n        }\n        // XXX abstract out this map method\n        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n            ? ''\n            : this.#partsToRegExp(true);\n        if (bodyDotAllowed === body) {\n            bodyDotAllowed = '';\n        }\n        if (bodyDotAllowed) {\n            body = `(?:${body})(?:${bodyDotAllowed})*?`;\n        }\n        // an empty !() is exactly equivalent to a starNoEmpty\n        let final = '';\n        if (this.type === '!' && this.#emptyExt) {\n            final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n        }\n        else {\n            const close = this.type === '!'\n                ? // !() must match something,but !(x) can match ''\n                    '))' +\n                        (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n                        star +\n                        ')'\n                : this.type === '@'\n                    ? ')'\n                    : this.type === '?'\n                        ? ')?'\n                        : this.type === '+' && bodyDotAllowed\n                            ? ')'\n                            : this.type === '*' && bodyDotAllowed\n                                ? `)?`\n                                : `)${this.type}`;\n            final = start + body + close;\n        }\n        return [\n            final,\n            (0, unescape_js_1.unescape)(body),\n            (this.#hasMagic = !!this.#hasMagic),\n            this.#uflag,\n        ];\n    }\n    #partsToRegExp(dot) {\n        return this.#parts\n            .map(p => {\n            // extglob ASTs should only contain parent ASTs\n            /* c8 ignore start */\n            if (typeof p === 'string') {\n                throw new Error('string type in extglob ast??');\n            }\n            /* c8 ignore stop */\n            // can ignore hasMagic, because extglobs are already always magic\n            const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n            this.#uflag = this.#uflag || uflag;\n            return re;\n        })\n            .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n            .join('|');\n    }\n    static #parseGlob(glob, hasMagic, noEmpty = false) {\n        let escaping = false;\n        let re = '';\n        let uflag = false;\n        for (let i = 0; i < glob.length; i++) {\n            const c = glob.charAt(i);\n            if (escaping) {\n                escaping = false;\n                re += (reSpecials.has(c) ? '\\\\' : '') + c;\n                continue;\n            }\n            if (c === '\\\\') {\n                if (i === glob.length - 1) {\n                    re += '\\\\\\\\';\n                }\n                else {\n                    escaping = true;\n                }\n                continue;\n            }\n            if (c === '[') {\n                const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i);\n                if (consumed) {\n                    re += src;\n                    uflag = uflag || needUflag;\n                    i += consumed - 1;\n                    hasMagic = hasMagic || magic;\n                    continue;\n                }\n            }\n            if (c === '*') {\n                if (noEmpty && glob === '*')\n                    re += starNoEmpty;\n                else\n                    re += star;\n                hasMagic = true;\n                continue;\n            }\n            if (c === '?') {\n                re += qmark;\n                hasMagic = true;\n                continue;\n            }\n            re += regExpEscape(c);\n        }\n        return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];\n    }\n}\nexports.AST = AST;\n//# sourceMappingURL=ast.js.map","\"use strict\";\n// translate the various posix character classes into unicode properties\n// this works across all unicode locales\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseClass = void 0;\n// { : [, /u flag required, negated]\nconst posixClasses = {\n    '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n    '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n    '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n    '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n    '[:cntrl:]': ['\\\\p{Cc}', true],\n    '[:digit:]': ['\\\\p{Nd}', true],\n    '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n    '[:lower:]': ['\\\\p{Ll}', true],\n    '[:print:]': ['\\\\p{C}', true],\n    '[:punct:]': ['\\\\p{P}', true],\n    '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n    '[:upper:]': ['\\\\p{Lu}', true],\n    '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n    '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nconst parseClass = (glob, position) => {\n    const pos = position;\n    /* c8 ignore start */\n    if (glob.charAt(pos) !== '[') {\n        throw new Error('not in a brace expression');\n    }\n    /* c8 ignore stop */\n    const ranges = [];\n    const negs = [];\n    let i = pos + 1;\n    let sawStart = false;\n    let uflag = false;\n    let escaping = false;\n    let negate = false;\n    let endPos = pos;\n    let rangeStart = '';\n    WHILE: while (i < glob.length) {\n        const c = glob.charAt(i);\n        if ((c === '!' || c === '^') && i === pos + 1) {\n            negate = true;\n            i++;\n            continue;\n        }\n        if (c === ']' && sawStart && !escaping) {\n            endPos = i + 1;\n            break;\n        }\n        sawStart = true;\n        if (c === '\\\\') {\n            if (!escaping) {\n                escaping = true;\n                i++;\n                continue;\n            }\n            // escaped \\ char, fall through and treat like normal char\n        }\n        if (c === '[' && !escaping) {\n            // either a posix class, a collation equivalent, or just a [\n            for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n                if (glob.startsWith(cls, i)) {\n                    // invalid, [a-[] is fine, but not [a-[:alpha]]\n                    if (rangeStart) {\n                        return ['$.', false, glob.length - pos, true];\n                    }\n                    i += cls.length;\n                    if (neg)\n                        negs.push(unip);\n                    else\n                        ranges.push(unip);\n                    uflag = uflag || u;\n                    continue WHILE;\n                }\n            }\n        }\n        // now it's just a normal character, effectively\n        escaping = false;\n        if (rangeStart) {\n            // throw this range away if it's not valid, but others\n            // can still match.\n            if (c > rangeStart) {\n                ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n            }\n            else if (c === rangeStart) {\n                ranges.push(braceEscape(c));\n            }\n            rangeStart = '';\n            i++;\n            continue;\n        }\n        // now might be the start of a range.\n        // can be either c-d or c-] or c] or c] at this point\n        if (glob.startsWith('-]', i + 1)) {\n            ranges.push(braceEscape(c + '-'));\n            i += 2;\n            continue;\n        }\n        if (glob.startsWith('-', i + 1)) {\n            rangeStart = c;\n            i += 2;\n            continue;\n        }\n        // not the start of a range, just a single character\n        ranges.push(braceEscape(c));\n        i++;\n    }\n    if (endPos < i) {\n        // didn't see the end of the class, not a valid class,\n        // but might still be valid as a literal match.\n        return ['', false, 0, false];\n    }\n    // if we got no ranges and no negates, then we have a range that\n    // cannot possibly match anything, and that poisons the whole glob\n    if (!ranges.length && !negs.length) {\n        return ['$.', false, glob.length - pos, true];\n    }\n    // if we got one positive range, and it's a single character, then that's\n    // not actually a magic pattern, it's just that one literal character.\n    // we should not treat that as \"magic\", we should just return the literal\n    // character. [_] is a perfectly valid way to escape glob magic chars.\n    if (negs.length === 0 &&\n        ranges.length === 1 &&\n        /^\\\\?.$/.test(ranges[0]) &&\n        !negate) {\n        const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n        return [regexpEscape(r), false, endPos - pos, false];\n    }\n    const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n    const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n    const comb = ranges.length && negs.length\n        ? '(' + sranges + '|' + snegs + ')'\n        : ranges.length\n            ? sranges\n            : snegs;\n    return [comb, uflag, endPos - pos, true];\n};\nexports.parseClass = parseClass;\n//# sourceMappingURL=brace-expressions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escape = void 0;\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nconst escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    // don't need to escape +@! because we escape the parens\n    // that make those magic, and escaping ! as [!] isn't valid,\n    // because [!]] is a valid glob class meaning not ']'.\n    return windowsPathsNoEscape\n        ? s.replace(/[?*()[\\]]/g, '[$&]')\n        : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\nexports.escape = escape;\n//# sourceMappingURL=escape.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;\nconst brace_expansion_1 = require(\"@isaacs/brace-expansion\");\nconst assert_valid_pattern_js_1 = require(\"./assert-valid-pattern.js\");\nconst ast_js_1 = require(\"./ast.js\");\nconst escape_js_1 = require(\"./escape.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst minimatch = (p, pattern, options = {}) => {\n    (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n    // shortcut: comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n        return false;\n    }\n    return new Minimatch(pattern, options).match(p);\n};\nexports.minimatch = minimatch;\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n        process.platform\n    : 'posix');\nconst path = {\n    win32: { sep: '\\\\' },\n    posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nexports.minimatch.sep = exports.sep;\nexports.GLOBSTAR = Symbol('globstar **');\nexports.minimatch.GLOBSTAR = exports.GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nconst filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options);\nexports.filter = filter;\nexports.minimatch.filter = exports.filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nconst defaults = (def) => {\n    if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n        return exports.minimatch;\n    }\n    const orig = exports.minimatch;\n    const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n    return Object.assign(m, {\n        Minimatch: class Minimatch extends orig.Minimatch {\n            constructor(pattern, options = {}) {\n                super(pattern, ext(def, options));\n            }\n            static defaults(options) {\n                return orig.defaults(ext(def, options)).Minimatch;\n            }\n        },\n        AST: class AST extends orig.AST {\n            /* c8 ignore start */\n            constructor(type, parent, options = {}) {\n                super(type, parent, ext(def, options));\n            }\n            /* c8 ignore stop */\n            static fromGlob(pattern, options = {}) {\n                return orig.AST.fromGlob(pattern, ext(def, options));\n            }\n        },\n        unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n        escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n        defaults: (options) => orig.defaults(ext(def, options)),\n        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n        sep: orig.sep,\n        GLOBSTAR: exports.GLOBSTAR,\n    });\n};\nexports.defaults = defaults;\nexports.minimatch.defaults = exports.defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nconst braceExpand = (pattern, options = {}) => {\n    (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n    // Thanks to Yeting Li  for\n    // improving this regexp to avoid a ReDOS vulnerability.\n    if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n        // shortcut. no need to expand.\n        return [pattern];\n    }\n    return (0, brace_expansion_1.expand)(pattern);\n};\nexports.braceExpand = braceExpand;\nexports.minimatch.braceExpand = exports.braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nexports.makeRe = makeRe;\nexports.minimatch.makeRe = exports.makeRe;\nconst match = (list, pattern, options = {}) => {\n    const mm = new Minimatch(pattern, options);\n    list = list.filter(f => mm.match(f));\n    if (mm.options.nonull && !list.length) {\n        list.push(pattern);\n    }\n    return list;\n};\nexports.match = match;\nexports.minimatch.match = exports.match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nclass Minimatch {\n    options;\n    set;\n    pattern;\n    windowsPathsNoEscape;\n    nonegate;\n    negate;\n    comment;\n    empty;\n    preserveMultipleSlashes;\n    partial;\n    globSet;\n    globParts;\n    nocase;\n    isWindows;\n    platform;\n    windowsNoMagicRoot;\n    regexp;\n    constructor(pattern, options = {}) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        options = options || {};\n        this.options = options;\n        this.pattern = pattern;\n        this.platform = options.platform || defaultPlatform;\n        this.isWindows = this.platform === 'win32';\n        this.windowsPathsNoEscape =\n            !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n        if (this.windowsPathsNoEscape) {\n            this.pattern = this.pattern.replace(/\\\\/g, '/');\n        }\n        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n        this.regexp = null;\n        this.negate = false;\n        this.nonegate = !!options.nonegate;\n        this.comment = false;\n        this.empty = false;\n        this.partial = !!options.partial;\n        this.nocase = !!this.options.nocase;\n        this.windowsNoMagicRoot =\n            options.windowsNoMagicRoot !== undefined\n                ? options.windowsNoMagicRoot\n                : !!(this.isWindows && this.nocase);\n        this.globSet = [];\n        this.globParts = [];\n        this.set = [];\n        // make the set of regexps etc.\n        this.make();\n    }\n    hasMagic() {\n        if (this.options.magicalBraces && this.set.length > 1) {\n            return true;\n        }\n        for (const pattern of this.set) {\n            for (const part of pattern) {\n                if (typeof part !== 'string')\n                    return true;\n            }\n        }\n        return false;\n    }\n    debug(..._) { }\n    make() {\n        const pattern = this.pattern;\n        const options = this.options;\n        // empty patterns and comments match nothing.\n        if (!options.nocomment && pattern.charAt(0) === '#') {\n            this.comment = true;\n            return;\n        }\n        if (!pattern) {\n            this.empty = true;\n            return;\n        }\n        // step 1: figure out negation, etc.\n        this.parseNegate();\n        // step 2: expand braces\n        this.globSet = [...new Set(this.braceExpand())];\n        if (options.debug) {\n            this.debug = (...args) => console.error(...args);\n        }\n        this.debug(this.pattern, this.globSet);\n        // step 3: now we have a set, so turn each one into a series of\n        // path-portion matching patterns.\n        // These will be regexps, except in the case of \"**\", which is\n        // set to the GLOBSTAR object for globstar behavior,\n        // and will not contain any / characters\n        //\n        // First, we preprocess to make the glob pattern sets a bit simpler\n        // and deduped.  There are some perf-killing patterns that can cause\n        // problems with a glob walk, but we can simplify them down a bit.\n        const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n        this.globParts = this.preprocess(rawGlobParts);\n        this.debug(this.pattern, this.globParts);\n        // glob --> regexps\n        let set = this.globParts.map((s, _, __) => {\n            if (this.isWindows && this.windowsNoMagicRoot) {\n                // check if it's a drive or unc path.\n                const isUNC = s[0] === '' &&\n                    s[1] === '' &&\n                    (s[2] === '?' || !globMagic.test(s[2])) &&\n                    !globMagic.test(s[3]);\n                const isDrive = /^[a-z]:/i.test(s[0]);\n                if (isUNC) {\n                    return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n                }\n                else if (isDrive) {\n                    return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n                }\n            }\n            return s.map(ss => this.parse(ss));\n        });\n        this.debug(this.pattern, set);\n        // filter out everything that didn't compile properly.\n        this.set = set.filter(s => s.indexOf(false) === -1);\n        // do not treat the ? in UNC paths as magic\n        if (this.isWindows) {\n            for (let i = 0; i < this.set.length; i++) {\n                const p = this.set[i];\n                if (p[0] === '' &&\n                    p[1] === '' &&\n                    this.globParts[i][2] === '?' &&\n                    typeof p[3] === 'string' &&\n                    /^[a-z]:$/i.test(p[3])) {\n                    p[2] = '?';\n                }\n            }\n        }\n        this.debug(this.pattern, this.set);\n    }\n    // various transforms to equivalent pattern sets that are\n    // faster to process in a filesystem walk.  The goal is to\n    // eliminate what we can, and push all ** patterns as far\n    // to the right as possible, even if it increases the number\n    // of patterns that we have to process.\n    preprocess(globParts) {\n        // if we're not in globstar mode, then turn all ** into *\n        if (this.options.noglobstar) {\n            for (let i = 0; i < globParts.length; i++) {\n                for (let j = 0; j < globParts[i].length; j++) {\n                    if (globParts[i][j] === '**') {\n                        globParts[i][j] = '*';\n                    }\n                }\n            }\n        }\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            // aggressive optimization for the purpose of fs walking\n            globParts = this.firstPhasePreProcess(globParts);\n            globParts = this.secondPhasePreProcess(globParts);\n        }\n        else if (optimizationLevel >= 1) {\n            // just basic optimizations to remove some .. parts\n            globParts = this.levelOneOptimize(globParts);\n        }\n        else {\n            // just collapse multiple ** portions into one\n            globParts = this.adjascentGlobstarOptimize(globParts);\n        }\n        return globParts;\n    }\n    // just get rid of adjascent ** portions\n    adjascentGlobstarOptimize(globParts) {\n        return globParts.map(parts => {\n            let gs = -1;\n            while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n                let i = gs;\n                while (parts[i + 1] === '**') {\n                    i++;\n                }\n                if (i !== gs) {\n                    parts.splice(gs, i - gs);\n                }\n            }\n            return parts;\n        });\n    }\n    // get rid of adjascent ** and resolve .. portions\n    levelOneOptimize(globParts) {\n        return globParts.map(parts => {\n            parts = parts.reduce((set, part) => {\n                const prev = set[set.length - 1];\n                if (part === '**' && prev === '**') {\n                    return set;\n                }\n                if (part === '..') {\n                    if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n                        set.pop();\n                        return set;\n                    }\n                }\n                set.push(part);\n                return set;\n            }, []);\n            return parts.length === 0 ? [''] : parts;\n        });\n    }\n    levelTwoFileOptimize(parts) {\n        if (!Array.isArray(parts)) {\n            parts = this.slashSplit(parts);\n        }\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === exports.GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return (0, exports.braceExpand)(this.pattern, this.options);\n    }\n    parse(pattern) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return exports.GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === exports.GLOBSTAR\n                        ? exports.GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== exports.GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== exports.GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = exports.GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== exports.GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return exports.minimatch.defaults(def).Minimatch;\n    }\n}\nexports.Minimatch = Minimatch;\n/* c8 ignore start */\nvar ast_js_2 = require(\"./ast.js\");\nObject.defineProperty(exports, \"AST\", { enumerable: true, get: function () { return ast_js_2.AST; } });\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nvar unescape_js_2 = require(\"./unescape.js\");\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return unescape_js_2.unescape; } });\n/* c8 ignore stop */\nexports.minimatch.AST = ast_js_1.AST;\nexports.minimatch.Minimatch = Minimatch;\nexports.minimatch.escape = escape_js_1.escape;\nexports.minimatch.unescape = unescape_js_1.unescape;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = void 0;\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nconst unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    return windowsPathsNoEscape\n        ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n        : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\nexports.unescape = unescape;\n//# sourceMappingURL=unescape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Minipass = exports.isWritable = exports.isReadable = exports.isStream = void 0;\nconst proc = typeof process === 'object' && process\n    ? process\n    : {\n        stdout: null,\n        stderr: null,\n    };\nconst node_events_1 = require(\"node:events\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_string_decoder_1 = require(\"node:string_decoder\");\n/**\n * Return true if the argument is a Minipass stream, Node stream, or something\n * else that Minipass can interact with.\n */\nconst isStream = (s) => !!s &&\n    typeof s === 'object' &&\n    (s instanceof Minipass ||\n        s instanceof node_stream_1.default ||\n        (0, exports.isReadable)(s) ||\n        (0, exports.isWritable)(s));\nexports.isStream = isStream;\n/**\n * Return true if the argument is a valid {@link Minipass.Readable}\n */\nconst isReadable = (s) => !!s &&\n    typeof s === 'object' &&\n    s instanceof node_events_1.EventEmitter &&\n    typeof s.pipe === 'function' &&\n    // node core Writable streams have a pipe() method, but it throws\n    s.pipe !== node_stream_1.default.Writable.prototype.pipe;\nexports.isReadable = isReadable;\n/**\n * Return true if the argument is a valid {@link Minipass.Writable}\n */\nconst isWritable = (s) => !!s &&\n    typeof s === 'object' &&\n    s instanceof node_events_1.EventEmitter &&\n    typeof s.write === 'function' &&\n    typeof s.end === 'function';\nexports.isWritable = isWritable;\nconst EOF = Symbol('EOF');\nconst MAYBE_EMIT_END = Symbol('maybeEmitEnd');\nconst EMITTED_END = Symbol('emittedEnd');\nconst EMITTING_END = Symbol('emittingEnd');\nconst EMITTED_ERROR = Symbol('emittedError');\nconst CLOSED = Symbol('closed');\nconst READ = Symbol('read');\nconst FLUSH = Symbol('flush');\nconst FLUSHCHUNK = Symbol('flushChunk');\nconst ENCODING = Symbol('encoding');\nconst DECODER = Symbol('decoder');\nconst FLOWING = Symbol('flowing');\nconst PAUSED = Symbol('paused');\nconst RESUME = Symbol('resume');\nconst BUFFER = Symbol('buffer');\nconst PIPES = Symbol('pipes');\nconst BUFFERLENGTH = Symbol('bufferLength');\nconst BUFFERPUSH = Symbol('bufferPush');\nconst BUFFERSHIFT = Symbol('bufferShift');\nconst OBJECTMODE = Symbol('objectMode');\n// internal event when stream is destroyed\nconst DESTROYED = Symbol('destroyed');\n// internal event when stream has an error\nconst ERROR = Symbol('error');\nconst EMITDATA = Symbol('emitData');\nconst EMITEND = Symbol('emitEnd');\nconst EMITEND2 = Symbol('emitEnd2');\nconst ASYNC = Symbol('async');\nconst ABORT = Symbol('abort');\nconst ABORTED = Symbol('aborted');\nconst SIGNAL = Symbol('signal');\nconst DATALISTENERS = Symbol('dataListeners');\nconst DISCARDED = Symbol('discarded');\nconst defer = (fn) => Promise.resolve().then(fn);\nconst nodefer = (fn) => fn();\nconst isEndish = (ev) => ev === 'end' || ev === 'finish' || ev === 'prefinish';\nconst isArrayBufferLike = (b) => b instanceof ArrayBuffer ||\n    (!!b &&\n        typeof b === 'object' &&\n        b.constructor &&\n        b.constructor.name === 'ArrayBuffer' &&\n        b.byteLength >= 0);\nconst isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);\n/**\n * Internal class representing a pipe to a destination stream.\n *\n * @internal\n */\nclass Pipe {\n    src;\n    dest;\n    opts;\n    ondrain;\n    constructor(src, dest, opts) {\n        this.src = src;\n        this.dest = dest;\n        this.opts = opts;\n        this.ondrain = () => src[RESUME]();\n        this.dest.on('drain', this.ondrain);\n    }\n    unpipe() {\n        this.dest.removeListener('drain', this.ondrain);\n    }\n    // only here for the prototype\n    /* c8 ignore start */\n    proxyErrors(_er) { }\n    /* c8 ignore stop */\n    end() {\n        this.unpipe();\n        if (this.opts.end)\n            this.dest.end();\n    }\n}\n/**\n * Internal class representing a pipe to a destination stream where\n * errors are proxied.\n *\n * @internal\n */\nclass PipeProxyErrors extends Pipe {\n    unpipe() {\n        this.src.removeListener('error', this.proxyErrors);\n        super.unpipe();\n    }\n    constructor(src, dest, opts) {\n        super(src, dest, opts);\n        this.proxyErrors = er => dest.emit('error', er);\n        src.on('error', this.proxyErrors);\n    }\n}\nconst isObjectModeOptions = (o) => !!o.objectMode;\nconst isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== 'buffer';\n/**\n * Main export, the Minipass class\n *\n * `RType` is the type of data emitted, defaults to Buffer\n *\n * `WType` is the type of data to be written, if RType is buffer or string,\n * then any {@link Minipass.ContiguousData} is allowed.\n *\n * `Events` is the set of event handler signatures that this object\n * will emit, see {@link Minipass.Events}\n */\nclass Minipass extends node_events_1.EventEmitter {\n    [FLOWING] = false;\n    [PAUSED] = false;\n    [PIPES] = [];\n    [BUFFER] = [];\n    [OBJECTMODE];\n    [ENCODING];\n    [ASYNC];\n    [DECODER];\n    [EOF] = false;\n    [EMITTED_END] = false;\n    [EMITTING_END] = false;\n    [CLOSED] = false;\n    [EMITTED_ERROR] = null;\n    [BUFFERLENGTH] = 0;\n    [DESTROYED] = false;\n    [SIGNAL];\n    [ABORTED] = false;\n    [DATALISTENERS] = 0;\n    [DISCARDED] = false;\n    /**\n     * true if the stream can be written\n     */\n    writable = true;\n    /**\n     * true if the stream can be read\n     */\n    readable = true;\n    /**\n     * If `RType` is Buffer, then options do not need to be provided.\n     * Otherwise, an options object must be provided to specify either\n     * {@link Minipass.SharedOptions.objectMode} or\n     * {@link Minipass.SharedOptions.encoding}, as appropriate.\n     */\n    constructor(...args) {\n        const options = (args[0] ||\n            {});\n        super();\n        if (options.objectMode && typeof options.encoding === 'string') {\n            throw new TypeError('Encoding and objectMode may not be used together');\n        }\n        if (isObjectModeOptions(options)) {\n            this[OBJECTMODE] = true;\n            this[ENCODING] = null;\n        }\n        else if (isEncodingOptions(options)) {\n            this[ENCODING] = options.encoding;\n            this[OBJECTMODE] = false;\n        }\n        else {\n            this[OBJECTMODE] = false;\n            this[ENCODING] = null;\n        }\n        this[ASYNC] = !!options.async;\n        this[DECODER] = this[ENCODING]\n            ? new node_string_decoder_1.StringDecoder(this[ENCODING])\n            : null;\n        //@ts-ignore - private option for debugging and testing\n        if (options && options.debugExposeBuffer === true) {\n            Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] });\n        }\n        //@ts-ignore - private option for debugging and testing\n        if (options && options.debugExposePipes === true) {\n            Object.defineProperty(this, 'pipes', { get: () => this[PIPES] });\n        }\n        const { signal } = options;\n        if (signal) {\n            this[SIGNAL] = signal;\n            if (signal.aborted) {\n                this[ABORT]();\n            }\n            else {\n                signal.addEventListener('abort', () => this[ABORT]());\n            }\n        }\n    }\n    /**\n     * The amount of data stored in the buffer waiting to be read.\n     *\n     * For Buffer strings, this will be the total byte length.\n     * For string encoding streams, this will be the string character length,\n     * according to JavaScript's `string.length` logic.\n     * For objectMode streams, this is a count of the items waiting to be\n     * emitted.\n     */\n    get bufferLength() {\n        return this[BUFFERLENGTH];\n    }\n    /**\n     * The `BufferEncoding` currently in use, or `null`\n     */\n    get encoding() {\n        return this[ENCODING];\n    }\n    /**\n     * @deprecated - This is a read only property\n     */\n    set encoding(_enc) {\n        throw new Error('Encoding must be set at instantiation time');\n    }\n    /**\n     * @deprecated - Encoding may only be set at instantiation time\n     */\n    setEncoding(_enc) {\n        throw new Error('Encoding must be set at instantiation time');\n    }\n    /**\n     * True if this is an objectMode stream\n     */\n    get objectMode() {\n        return this[OBJECTMODE];\n    }\n    /**\n     * @deprecated - This is a read-only property\n     */\n    set objectMode(_om) {\n        throw new Error('objectMode must be set at instantiation time');\n    }\n    /**\n     * true if this is an async stream\n     */\n    get ['async']() {\n        return this[ASYNC];\n    }\n    /**\n     * Set to true to make this stream async.\n     *\n     * Once set, it cannot be unset, as this would potentially cause incorrect\n     * behavior.  Ie, a sync stream can be made async, but an async stream\n     * cannot be safely made sync.\n     */\n    set ['async'](a) {\n        this[ASYNC] = this[ASYNC] || !!a;\n    }\n    // drop everything and get out of the flow completely\n    [ABORT]() {\n        this[ABORTED] = true;\n        this.emit('abort', this[SIGNAL]?.reason);\n        this.destroy(this[SIGNAL]?.reason);\n    }\n    /**\n     * True if the stream has been aborted.\n     */\n    get aborted() {\n        return this[ABORTED];\n    }\n    /**\n     * No-op setter. Stream aborted status is set via the AbortSignal provided\n     * in the constructor options.\n     */\n    set aborted(_) { }\n    write(chunk, encoding, cb) {\n        if (this[ABORTED])\n            return false;\n        if (this[EOF])\n            throw new Error('write after end');\n        if (this[DESTROYED]) {\n            this.emit('error', Object.assign(new Error('Cannot call write after a stream was destroyed'), { code: 'ERR_STREAM_DESTROYED' }));\n            return true;\n        }\n        if (typeof encoding === 'function') {\n            cb = encoding;\n            encoding = 'utf8';\n        }\n        if (!encoding)\n            encoding = 'utf8';\n        const fn = this[ASYNC] ? defer : nodefer;\n        // convert array buffers and typed array views into buffers\n        // at some point in the future, we may want to do the opposite!\n        // leave strings and buffers as-is\n        // anything is only allowed if in object mode, so throw\n        if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {\n            if (isArrayBufferView(chunk)) {\n                //@ts-ignore - sinful unsafe type changing\n                chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n            }\n            else if (isArrayBufferLike(chunk)) {\n                //@ts-ignore - sinful unsafe type changing\n                chunk = Buffer.from(chunk);\n            }\n            else if (typeof chunk !== 'string') {\n                throw new Error('Non-contiguous data written to non-objectMode stream');\n            }\n        }\n        // handle object mode up front, since it's simpler\n        // this yields better performance, fewer checks later.\n        if (this[OBJECTMODE]) {\n            // maybe impossible?\n            /* c8 ignore start */\n            if (this[FLOWING] && this[BUFFERLENGTH] !== 0)\n                this[FLUSH](true);\n            /* c8 ignore stop */\n            if (this[FLOWING])\n                this.emit('data', chunk);\n            else\n                this[BUFFERPUSH](chunk);\n            if (this[BUFFERLENGTH] !== 0)\n                this.emit('readable');\n            if (cb)\n                fn(cb);\n            return this[FLOWING];\n        }\n        // at this point the chunk is a buffer or string\n        // don't buffer it up or send it to the decoder\n        if (!chunk.length) {\n            if (this[BUFFERLENGTH] !== 0)\n                this.emit('readable');\n            if (cb)\n                fn(cb);\n            return this[FLOWING];\n        }\n        // fast-path writing strings of same encoding to a stream with\n        // an empty buffer, skipping the buffer/decoder dance\n        if (typeof chunk === 'string' &&\n            // unless it is a string already ready for us to use\n            !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {\n            //@ts-ignore - sinful unsafe type change\n            chunk = Buffer.from(chunk, encoding);\n        }\n        if (Buffer.isBuffer(chunk) && this[ENCODING]) {\n            //@ts-ignore - sinful unsafe type change\n            chunk = this[DECODER].write(chunk);\n        }\n        // Note: flushing CAN potentially switch us into not-flowing mode\n        if (this[FLOWING] && this[BUFFERLENGTH] !== 0)\n            this[FLUSH](true);\n        if (this[FLOWING])\n            this.emit('data', chunk);\n        else\n            this[BUFFERPUSH](chunk);\n        if (this[BUFFERLENGTH] !== 0)\n            this.emit('readable');\n        if (cb)\n            fn(cb);\n        return this[FLOWING];\n    }\n    /**\n     * Low-level explicit read method.\n     *\n     * In objectMode, the argument is ignored, and one item is returned if\n     * available.\n     *\n     * `n` is the number of bytes (or in the case of encoding streams,\n     * characters) to consume. If `n` is not provided, then the entire buffer\n     * is returned, or `null` is returned if no data is available.\n     *\n     * If `n` is greater that the amount of data in the internal buffer,\n     * then `null` is returned.\n     */\n    read(n) {\n        if (this[DESTROYED])\n            return null;\n        this[DISCARDED] = false;\n        if (this[BUFFERLENGTH] === 0 ||\n            n === 0 ||\n            (n && n > this[BUFFERLENGTH])) {\n            this[MAYBE_EMIT_END]();\n            return null;\n        }\n        if (this[OBJECTMODE])\n            n = null;\n        if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {\n            // not object mode, so if we have an encoding, then RType is string\n            // otherwise, must be Buffer\n            this[BUFFER] = [\n                (this[ENCODING]\n                    ? this[BUFFER].join('')\n                    : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])),\n            ];\n        }\n        const ret = this[READ](n || null, this[BUFFER][0]);\n        this[MAYBE_EMIT_END]();\n        return ret;\n    }\n    [READ](n, chunk) {\n        if (this[OBJECTMODE])\n            this[BUFFERSHIFT]();\n        else {\n            const c = chunk;\n            if (n === c.length || n === null)\n                this[BUFFERSHIFT]();\n            else if (typeof c === 'string') {\n                this[BUFFER][0] = c.slice(n);\n                chunk = c.slice(0, n);\n                this[BUFFERLENGTH] -= n;\n            }\n            else {\n                this[BUFFER][0] = c.subarray(n);\n                chunk = c.subarray(0, n);\n                this[BUFFERLENGTH] -= n;\n            }\n        }\n        this.emit('data', chunk);\n        if (!this[BUFFER].length && !this[EOF])\n            this.emit('drain');\n        return chunk;\n    }\n    end(chunk, encoding, cb) {\n        if (typeof chunk === 'function') {\n            cb = chunk;\n            chunk = undefined;\n        }\n        if (typeof encoding === 'function') {\n            cb = encoding;\n            encoding = 'utf8';\n        }\n        if (chunk !== undefined)\n            this.write(chunk, encoding);\n        if (cb)\n            this.once('end', cb);\n        this[EOF] = true;\n        this.writable = false;\n        // if we haven't written anything, then go ahead and emit,\n        // even if we're not reading.\n        // we'll re-emit if a new 'end' listener is added anyway.\n        // This makes MP more suitable to write-only use cases.\n        if (this[FLOWING] || !this[PAUSED])\n            this[MAYBE_EMIT_END]();\n        return this;\n    }\n    // don't let the internal resume be overwritten\n    [RESUME]() {\n        if (this[DESTROYED])\n            return;\n        if (!this[DATALISTENERS] && !this[PIPES].length) {\n            this[DISCARDED] = true;\n        }\n        this[PAUSED] = false;\n        this[FLOWING] = true;\n        this.emit('resume');\n        if (this[BUFFER].length)\n            this[FLUSH]();\n        else if (this[EOF])\n            this[MAYBE_EMIT_END]();\n        else\n            this.emit('drain');\n    }\n    /**\n     * Resume the stream if it is currently in a paused state\n     *\n     * If called when there are no pipe destinations or `data` event listeners,\n     * this will place the stream in a \"discarded\" state, where all data will\n     * be thrown away. The discarded state is removed if a pipe destination or\n     * data handler is added, if pause() is called, or if any synchronous or\n     * asynchronous iteration is started.\n     */\n    resume() {\n        return this[RESUME]();\n    }\n    /**\n     * Pause the stream\n     */\n    pause() {\n        this[FLOWING] = false;\n        this[PAUSED] = true;\n        this[DISCARDED] = false;\n    }\n    /**\n     * true if the stream has been forcibly destroyed\n     */\n    get destroyed() {\n        return this[DESTROYED];\n    }\n    /**\n     * true if the stream is currently in a flowing state, meaning that\n     * any writes will be immediately emitted.\n     */\n    get flowing() {\n        return this[FLOWING];\n    }\n    /**\n     * true if the stream is currently in a paused state\n     */\n    get paused() {\n        return this[PAUSED];\n    }\n    [BUFFERPUSH](chunk) {\n        if (this[OBJECTMODE])\n            this[BUFFERLENGTH] += 1;\n        else\n            this[BUFFERLENGTH] += chunk.length;\n        this[BUFFER].push(chunk);\n    }\n    [BUFFERSHIFT]() {\n        if (this[OBJECTMODE])\n            this[BUFFERLENGTH] -= 1;\n        else\n            this[BUFFERLENGTH] -= this[BUFFER][0].length;\n        return this[BUFFER].shift();\n    }\n    [FLUSH](noDrain = false) {\n        do { } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&\n            this[BUFFER].length);\n        if (!noDrain && !this[BUFFER].length && !this[EOF])\n            this.emit('drain');\n    }\n    [FLUSHCHUNK](chunk) {\n        this.emit('data', chunk);\n        return this[FLOWING];\n    }\n    /**\n     * Pipe all data emitted by this stream into the destination provided.\n     *\n     * Triggers the flow of data.\n     */\n    pipe(dest, opts) {\n        if (this[DESTROYED])\n            return dest;\n        this[DISCARDED] = false;\n        const ended = this[EMITTED_END];\n        opts = opts || {};\n        if (dest === proc.stdout || dest === proc.stderr)\n            opts.end = false;\n        else\n            opts.end = opts.end !== false;\n        opts.proxyErrors = !!opts.proxyErrors;\n        // piping an ended stream ends immediately\n        if (ended) {\n            if (opts.end)\n                dest.end();\n        }\n        else {\n            // \"as\" here just ignores the WType, which pipes don't care about,\n            // since they're only consuming from us, and writing to the dest\n            this[PIPES].push(!opts.proxyErrors\n                ? new Pipe(this, dest, opts)\n                : new PipeProxyErrors(this, dest, opts));\n            if (this[ASYNC])\n                defer(() => this[RESUME]());\n            else\n                this[RESUME]();\n        }\n        return dest;\n    }\n    /**\n     * Fully unhook a piped destination stream.\n     *\n     * If the destination stream was the only consumer of this stream (ie,\n     * there are no other piped destinations or `'data'` event listeners)\n     * then the flow of data will stop until there is another consumer or\n     * {@link Minipass#resume} is explicitly called.\n     */\n    unpipe(dest) {\n        const p = this[PIPES].find(p => p.dest === dest);\n        if (p) {\n            if (this[PIPES].length === 1) {\n                if (this[FLOWING] && this[DATALISTENERS] === 0) {\n                    this[FLOWING] = false;\n                }\n                this[PIPES] = [];\n            }\n            else\n                this[PIPES].splice(this[PIPES].indexOf(p), 1);\n            p.unpipe();\n        }\n    }\n    /**\n     * Alias for {@link Minipass#on}\n     */\n    addListener(ev, handler) {\n        return this.on(ev, handler);\n    }\n    /**\n     * Mostly identical to `EventEmitter.on`, with the following\n     * behavior differences to prevent data loss and unnecessary hangs:\n     *\n     * - Adding a 'data' event handler will trigger the flow of data\n     *\n     * - Adding a 'readable' event handler when there is data waiting to be read\n     *   will cause 'readable' to be emitted immediately.\n     *\n     * - Adding an 'endish' event handler ('end', 'finish', etc.) which has\n     *   already passed will cause the event to be emitted immediately and all\n     *   handlers removed.\n     *\n     * - Adding an 'error' event handler after an error has been emitted will\n     *   cause the event to be re-emitted immediately with the error previously\n     *   raised.\n     */\n    on(ev, handler) {\n        const ret = super.on(ev, handler);\n        if (ev === 'data') {\n            this[DISCARDED] = false;\n            this[DATALISTENERS]++;\n            if (!this[PIPES].length && !this[FLOWING]) {\n                this[RESUME]();\n            }\n        }\n        else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {\n            super.emit('readable');\n        }\n        else if (isEndish(ev) && this[EMITTED_END]) {\n            super.emit(ev);\n            this.removeAllListeners(ev);\n        }\n        else if (ev === 'error' && this[EMITTED_ERROR]) {\n            const h = handler;\n            if (this[ASYNC])\n                defer(() => h.call(this, this[EMITTED_ERROR]));\n            else\n                h.call(this, this[EMITTED_ERROR]);\n        }\n        return ret;\n    }\n    /**\n     * Alias for {@link Minipass#off}\n     */\n    removeListener(ev, handler) {\n        return this.off(ev, handler);\n    }\n    /**\n     * Mostly identical to `EventEmitter.off`\n     *\n     * If a 'data' event handler is removed, and it was the last consumer\n     * (ie, there are no pipe destinations or other 'data' event listeners),\n     * then the flow of data will stop until there is another consumer or\n     * {@link Minipass#resume} is explicitly called.\n     */\n    off(ev, handler) {\n        const ret = super.off(ev, handler);\n        // if we previously had listeners, and now we don't, and we don't\n        // have any pipes, then stop the flow, unless it's been explicitly\n        // put in a discarded flowing state via stream.resume().\n        if (ev === 'data') {\n            this[DATALISTENERS] = this.listeners('data').length;\n            if (this[DATALISTENERS] === 0 &&\n                !this[DISCARDED] &&\n                !this[PIPES].length) {\n                this[FLOWING] = false;\n            }\n        }\n        return ret;\n    }\n    /**\n     * Mostly identical to `EventEmitter.removeAllListeners`\n     *\n     * If all 'data' event handlers are removed, and they were the last consumer\n     * (ie, there are no pipe destinations), then the flow of data will stop\n     * until there is another consumer or {@link Minipass#resume} is explicitly\n     * called.\n     */\n    removeAllListeners(ev) {\n        const ret = super.removeAllListeners(ev);\n        if (ev === 'data' || ev === undefined) {\n            this[DATALISTENERS] = 0;\n            if (!this[DISCARDED] && !this[PIPES].length) {\n                this[FLOWING] = false;\n            }\n        }\n        return ret;\n    }\n    /**\n     * true if the 'end' event has been emitted\n     */\n    get emittedEnd() {\n        return this[EMITTED_END];\n    }\n    [MAYBE_EMIT_END]() {\n        if (!this[EMITTING_END] &&\n            !this[EMITTED_END] &&\n            !this[DESTROYED] &&\n            this[BUFFER].length === 0 &&\n            this[EOF]) {\n            this[EMITTING_END] = true;\n            this.emit('end');\n            this.emit('prefinish');\n            this.emit('finish');\n            if (this[CLOSED])\n                this.emit('close');\n            this[EMITTING_END] = false;\n        }\n    }\n    /**\n     * Mostly identical to `EventEmitter.emit`, with the following\n     * behavior differences to prevent data loss and unnecessary hangs:\n     *\n     * If the stream has been destroyed, and the event is something other\n     * than 'close' or 'error', then `false` is returned and no handlers\n     * are called.\n     *\n     * If the event is 'end', and has already been emitted, then the event\n     * is ignored. If the stream is in a paused or non-flowing state, then\n     * the event will be deferred until data flow resumes. If the stream is\n     * async, then handlers will be called on the next tick rather than\n     * immediately.\n     *\n     * If the event is 'close', and 'end' has not yet been emitted, then\n     * the event will be deferred until after 'end' is emitted.\n     *\n     * If the event is 'error', and an AbortSignal was provided for the stream,\n     * and there are no listeners, then the event is ignored, matching the\n     * behavior of node core streams in the presense of an AbortSignal.\n     *\n     * If the event is 'finish' or 'prefinish', then all listeners will be\n     * removed after emitting the event, to prevent double-firing.\n     */\n    emit(ev, ...args) {\n        const data = args[0];\n        // error and close are only events allowed after calling destroy()\n        if (ev !== 'error' &&\n            ev !== 'close' &&\n            ev !== DESTROYED &&\n            this[DESTROYED]) {\n            return false;\n        }\n        else if (ev === 'data') {\n            return !this[OBJECTMODE] && !data\n                ? false\n                : this[ASYNC]\n                    ? (defer(() => this[EMITDATA](data)), true)\n                    : this[EMITDATA](data);\n        }\n        else if (ev === 'end') {\n            return this[EMITEND]();\n        }\n        else if (ev === 'close') {\n            this[CLOSED] = true;\n            // don't emit close before 'end' and 'finish'\n            if (!this[EMITTED_END] && !this[DESTROYED])\n                return false;\n            const ret = super.emit('close');\n            this.removeAllListeners('close');\n            return ret;\n        }\n        else if (ev === 'error') {\n            this[EMITTED_ERROR] = data;\n            super.emit(ERROR, data);\n            const ret = !this[SIGNAL] || this.listeners('error').length\n                ? super.emit('error', data)\n                : false;\n            this[MAYBE_EMIT_END]();\n            return ret;\n        }\n        else if (ev === 'resume') {\n            const ret = super.emit('resume');\n            this[MAYBE_EMIT_END]();\n            return ret;\n        }\n        else if (ev === 'finish' || ev === 'prefinish') {\n            const ret = super.emit(ev);\n            this.removeAllListeners(ev);\n            return ret;\n        }\n        // Some other unknown event\n        const ret = super.emit(ev, ...args);\n        this[MAYBE_EMIT_END]();\n        return ret;\n    }\n    [EMITDATA](data) {\n        for (const p of this[PIPES]) {\n            if (p.dest.write(data) === false)\n                this.pause();\n        }\n        const ret = this[DISCARDED] ? false : super.emit('data', data);\n        this[MAYBE_EMIT_END]();\n        return ret;\n    }\n    [EMITEND]() {\n        if (this[EMITTED_END])\n            return false;\n        this[EMITTED_END] = true;\n        this.readable = false;\n        return this[ASYNC]\n            ? (defer(() => this[EMITEND2]()), true)\n            : this[EMITEND2]();\n    }\n    [EMITEND2]() {\n        if (this[DECODER]) {\n            const data = this[DECODER].end();\n            if (data) {\n                for (const p of this[PIPES]) {\n                    p.dest.write(data);\n                }\n                if (!this[DISCARDED])\n                    super.emit('data', data);\n            }\n        }\n        for (const p of this[PIPES]) {\n            p.end();\n        }\n        const ret = super.emit('end');\n        this.removeAllListeners('end');\n        return ret;\n    }\n    /**\n     * Return a Promise that resolves to an array of all emitted data once\n     * the stream ends.\n     */\n    async collect() {\n        const buf = Object.assign([], {\n            dataLength: 0,\n        });\n        if (!this[OBJECTMODE])\n            buf.dataLength = 0;\n        // set the promise first, in case an error is raised\n        // by triggering the flow here.\n        const p = this.promise();\n        this.on('data', c => {\n            buf.push(c);\n            if (!this[OBJECTMODE])\n                buf.dataLength += c.length;\n        });\n        await p;\n        return buf;\n    }\n    /**\n     * Return a Promise that resolves to the concatenation of all emitted data\n     * once the stream ends.\n     *\n     * Not allowed on objectMode streams.\n     */\n    async concat() {\n        if (this[OBJECTMODE]) {\n            throw new Error('cannot concat in objectMode');\n        }\n        const buf = await this.collect();\n        return (this[ENCODING]\n            ? buf.join('')\n            : Buffer.concat(buf, buf.dataLength));\n    }\n    /**\n     * Return a void Promise that resolves once the stream ends.\n     */\n    async promise() {\n        return new Promise((resolve, reject) => {\n            this.on(DESTROYED, () => reject(new Error('stream destroyed')));\n            this.on('error', er => reject(er));\n            this.on('end', () => resolve());\n        });\n    }\n    /**\n     * Asynchronous `for await of` iteration.\n     *\n     * This will continue emitting all chunks until the stream terminates.\n     */\n    [Symbol.asyncIterator]() {\n        // set this up front, in case the consumer doesn't call next()\n        // right away.\n        this[DISCARDED] = false;\n        let stopped = false;\n        const stop = async () => {\n            this.pause();\n            stopped = true;\n            return { value: undefined, done: true };\n        };\n        const next = () => {\n            if (stopped)\n                return stop();\n            const res = this.read();\n            if (res !== null)\n                return Promise.resolve({ done: false, value: res });\n            if (this[EOF])\n                return stop();\n            let resolve;\n            let reject;\n            const onerr = (er) => {\n                this.off('data', ondata);\n                this.off('end', onend);\n                this.off(DESTROYED, ondestroy);\n                stop();\n                reject(er);\n            };\n            const ondata = (value) => {\n                this.off('error', onerr);\n                this.off('end', onend);\n                this.off(DESTROYED, ondestroy);\n                this.pause();\n                resolve({ value, done: !!this[EOF] });\n            };\n            const onend = () => {\n                this.off('error', onerr);\n                this.off('data', ondata);\n                this.off(DESTROYED, ondestroy);\n                stop();\n                resolve({ done: true, value: undefined });\n            };\n            const ondestroy = () => onerr(new Error('stream destroyed'));\n            return new Promise((res, rej) => {\n                reject = rej;\n                resolve = res;\n                this.once(DESTROYED, ondestroy);\n                this.once('error', onerr);\n                this.once('end', onend);\n                this.once('data', ondata);\n            });\n        };\n        return {\n            next,\n            throw: stop,\n            return: stop,\n            [Symbol.asyncIterator]() {\n                return this;\n            },\n        };\n    }\n    /**\n     * Synchronous `for of` iteration.\n     *\n     * The iteration will terminate when the internal buffer runs out, even\n     * if the stream has not yet terminated.\n     */\n    [Symbol.iterator]() {\n        // set this up front, in case the consumer doesn't call next()\n        // right away.\n        this[DISCARDED] = false;\n        let stopped = false;\n        const stop = () => {\n            this.pause();\n            this.off(ERROR, stop);\n            this.off(DESTROYED, stop);\n            this.off('end', stop);\n            stopped = true;\n            return { done: true, value: undefined };\n        };\n        const next = () => {\n            if (stopped)\n                return stop();\n            const value = this.read();\n            return value === null ? stop() : { done: false, value };\n        };\n        this.once('end', stop);\n        this.once(ERROR, stop);\n        this.once(DESTROYED, stop);\n        return {\n            next,\n            throw: stop,\n            return: stop,\n            [Symbol.iterator]() {\n                return this;\n            },\n        };\n    }\n    /**\n     * Destroy a stream, preventing it from being used for any further purpose.\n     *\n     * If the stream has a `close()` method, then it will be called on\n     * destruction.\n     *\n     * After destruction, any attempt to write data, read data, or emit most\n     * events will be ignored.\n     *\n     * If an error argument is provided, then it will be emitted in an\n     * 'error' event.\n     */\n    destroy(er) {\n        if (this[DESTROYED]) {\n            if (er)\n                this.emit('error', er);\n            else\n                this.emit(DESTROYED);\n            return this;\n        }\n        this[DESTROYED] = true;\n        this[DISCARDED] = true;\n        // throw away all buffered data, it's never coming out\n        this[BUFFER].length = 0;\n        this[BUFFERLENGTH] = 0;\n        const wc = this;\n        if (typeof wc.close === 'function' && !this[CLOSED])\n            wc.close();\n        if (er)\n            this.emit('error', er);\n        // if no error to emit, still reject pending promises\n        else\n            this.emit(DESTROYED);\n        return this;\n    }\n    /**\n     * Alias for {@link isStream}\n     *\n     * Former export location, maintained for backwards compatibility.\n     *\n     * @deprecated\n     */\n    static get isStream() {\n        return exports.isStream;\n    }\n}\nexports.Minipass = Minipass;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathScurry = exports.Path = exports.PathScurryDarwin = exports.PathScurryPosix = exports.PathScurryWin32 = exports.PathScurryBase = exports.PathPosix = exports.PathWin32 = exports.PathBase = exports.ChildrenCache = exports.ResolveCache = void 0;\nconst lru_cache_1 = require(\"lru-cache\");\nconst node_path_1 = require(\"node:path\");\nconst node_url_1 = require(\"node:url\");\nconst fs_1 = require(\"fs\");\nconst actualFS = __importStar(require(\"node:fs\"));\nconst realpathSync = fs_1.realpathSync.native;\n// TODO: test perf of fs/promises realpath vs realpathCB,\n// since the promises one uses realpath.native\nconst promises_1 = require(\"node:fs/promises\");\nconst minipass_1 = require(\"minipass\");\nconst defaultFS = {\n    lstatSync: fs_1.lstatSync,\n    readdir: fs_1.readdir,\n    readdirSync: fs_1.readdirSync,\n    readlinkSync: fs_1.readlinkSync,\n    realpathSync,\n    promises: {\n        lstat: promises_1.lstat,\n        readdir: promises_1.readdir,\n        readlink: promises_1.readlink,\n        realpath: promises_1.realpath,\n    },\n};\n// if they just gave us require('fs') then use our default\nconst fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ?\n    defaultFS\n    : {\n        ...defaultFS,\n        ...fsOption,\n        promises: {\n            ...defaultFS.promises,\n            ...(fsOption.promises || {}),\n        },\n    };\n// turn something like //?/c:/ into c:\\\nconst uncDriveRegexp = /^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i;\nconst uncToDrive = (rootPath) => rootPath.replace(/\\//g, '\\\\').replace(uncDriveRegexp, '$1\\\\');\n// windows paths are separated by either / or \\\nconst eitherSep = /[\\\\\\/]/;\nconst UNKNOWN = 0; // may not even exist, for all we know\nconst IFIFO = 0b0001;\nconst IFCHR = 0b0010;\nconst IFDIR = 0b0100;\nconst IFBLK = 0b0110;\nconst IFREG = 0b1000;\nconst IFLNK = 0b1010;\nconst IFSOCK = 0b1100;\nconst IFMT = 0b1111;\n// mask to unset low 4 bits\nconst IFMT_UNKNOWN = ~IFMT;\n// set after successfully calling readdir() and getting entries.\nconst READDIR_CALLED = 0b0000_0001_0000;\n// set after a successful lstat()\nconst LSTAT_CALLED = 0b0000_0010_0000;\n// set if an entry (or one of its parents) is definitely not a dir\nconst ENOTDIR = 0b0000_0100_0000;\n// set if an entry (or one of its parents) does not exist\n// (can also be set on lstat errors like EACCES or ENAMETOOLONG)\nconst ENOENT = 0b0000_1000_0000;\n// cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK\n// set if we fail to readlink\nconst ENOREADLINK = 0b0001_0000_0000;\n// set if we know realpath() will fail\nconst ENOREALPATH = 0b0010_0000_0000;\nconst ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;\nconst TYPEMASK = 0b0011_1111_1111;\nconst entToType = (s) => s.isFile() ? IFREG\n    : s.isDirectory() ? IFDIR\n        : s.isSymbolicLink() ? IFLNK\n            : s.isCharacterDevice() ? IFCHR\n                : s.isBlockDevice() ? IFBLK\n                    : s.isSocket() ? IFSOCK\n                        : s.isFIFO() ? IFIFO\n                            : UNKNOWN;\n// normalize unicode path names\nconst normalizeCache = new Map();\nconst normalize = (s) => {\n    const c = normalizeCache.get(s);\n    if (c)\n        return c;\n    const n = s.normalize('NFKD');\n    normalizeCache.set(s, n);\n    return n;\n};\nconst normalizeNocaseCache = new Map();\nconst normalizeNocase = (s) => {\n    const c = normalizeNocaseCache.get(s);\n    if (c)\n        return c;\n    const n = normalize(s.toLowerCase());\n    normalizeNocaseCache.set(s, n);\n    return n;\n};\n/**\n * An LRUCache for storing resolved path strings or Path objects.\n * @internal\n */\nclass ResolveCache extends lru_cache_1.LRUCache {\n    constructor() {\n        super({ max: 256 });\n    }\n}\nexports.ResolveCache = ResolveCache;\n// In order to prevent blowing out the js heap by allocating hundreds of\n// thousands of Path entries when walking extremely large trees, the \"children\"\n// in this tree are represented by storing an array of Path entries in an\n// LRUCache, indexed by the parent.  At any time, Path.children() may return an\n// empty array, indicating that it doesn't know about any of its children, and\n// thus has to rebuild that cache.  This is fine, it just means that we don't\n// benefit as much from having the cached entries, but huge directory walks\n// don't blow out the stack, and smaller ones are still as fast as possible.\n//\n//It does impose some complexity when building up the readdir data, because we\n//need to pass a reference to the children array that we started with.\n/**\n * an LRUCache for storing child entries.\n * @internal\n */\nclass ChildrenCache extends lru_cache_1.LRUCache {\n    constructor(maxSize = 16 * 1024) {\n        super({\n            maxSize,\n            // parent + children\n            sizeCalculation: a => a.length + 1,\n        });\n    }\n}\nexports.ChildrenCache = ChildrenCache;\nconst setAsCwd = Symbol('PathScurry setAsCwd');\n/**\n * Path objects are sort of like a super-powered\n * {@link https://nodejs.org/docs/latest/api/fs.html#class-fsdirent fs.Dirent}\n *\n * Each one represents a single filesystem entry on disk, which may or may not\n * exist. It includes methods for reading various types of information via\n * lstat, readlink, and readdir, and caches all information to the greatest\n * degree possible.\n *\n * Note that fs operations that would normally throw will instead return an\n * \"empty\" value. This is in order to prevent excessive overhead from error\n * stack traces.\n */\nclass PathBase {\n    /**\n     * the basename of this path\n     *\n     * **Important**: *always* test the path name against any test string\n     * usingthe {@link isNamed} method, and not by directly comparing this\n     * string. Otherwise, unicode path strings that the system sees as identical\n     * will not be properly treated as the same path, leading to incorrect\n     * behavior and possible security issues.\n     */\n    name;\n    /**\n     * the Path entry corresponding to the path root.\n     *\n     * @internal\n     */\n    root;\n    /**\n     * All roots found within the current PathScurry family\n     *\n     * @internal\n     */\n    roots;\n    /**\n     * a reference to the parent path, or undefined in the case of root entries\n     *\n     * @internal\n     */\n    parent;\n    /**\n     * boolean indicating whether paths are compared case-insensitively\n     * @internal\n     */\n    nocase;\n    /**\n     * boolean indicating that this path is the current working directory\n     * of the PathScurry collection that contains it.\n     */\n    isCWD = false;\n    // potential default fs override\n    #fs;\n    // Stats fields\n    #dev;\n    get dev() {\n        return this.#dev;\n    }\n    #mode;\n    get mode() {\n        return this.#mode;\n    }\n    #nlink;\n    get nlink() {\n        return this.#nlink;\n    }\n    #uid;\n    get uid() {\n        return this.#uid;\n    }\n    #gid;\n    get gid() {\n        return this.#gid;\n    }\n    #rdev;\n    get rdev() {\n        return this.#rdev;\n    }\n    #blksize;\n    get blksize() {\n        return this.#blksize;\n    }\n    #ino;\n    get ino() {\n        return this.#ino;\n    }\n    #size;\n    get size() {\n        return this.#size;\n    }\n    #blocks;\n    get blocks() {\n        return this.#blocks;\n    }\n    #atimeMs;\n    get atimeMs() {\n        return this.#atimeMs;\n    }\n    #mtimeMs;\n    get mtimeMs() {\n        return this.#mtimeMs;\n    }\n    #ctimeMs;\n    get ctimeMs() {\n        return this.#ctimeMs;\n    }\n    #birthtimeMs;\n    get birthtimeMs() {\n        return this.#birthtimeMs;\n    }\n    #atime;\n    get atime() {\n        return this.#atime;\n    }\n    #mtime;\n    get mtime() {\n        return this.#mtime;\n    }\n    #ctime;\n    get ctime() {\n        return this.#ctime;\n    }\n    #birthtime;\n    get birthtime() {\n        return this.#birthtime;\n    }\n    #matchName;\n    #depth;\n    #fullpath;\n    #fullpathPosix;\n    #relative;\n    #relativePosix;\n    #type;\n    #children;\n    #linkTarget;\n    #realpath;\n    /**\n     * This property is for compatibility with the Dirent class as of\n     * Node v20, where Dirent['parentPath'] refers to the path of the\n     * directory that was passed to readdir. For root entries, it's the path\n     * to the entry itself.\n     */\n    get parentPath() {\n        return (this.parent || this).fullpath();\n    }\n    /**\n     * Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,\n     * this property refers to the *parent* path, not the path object itself.\n     *\n     * @deprecated\n     */\n    get path() {\n        return this.parentPath;\n    }\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        this.name = name;\n        this.#matchName = nocase ? normalizeNocase(name) : normalize(name);\n        this.#type = type & TYPEMASK;\n        this.nocase = nocase;\n        this.roots = roots;\n        this.root = root || this;\n        this.#children = children;\n        this.#fullpath = opts.fullpath;\n        this.#relative = opts.relative;\n        this.#relativePosix = opts.relativePosix;\n        this.parent = opts.parent;\n        if (this.parent) {\n            this.#fs = this.parent.#fs;\n        }\n        else {\n            this.#fs = fsFromOption(opts.fs);\n        }\n    }\n    /**\n     * Returns the depth of the Path object from its root.\n     *\n     * For example, a path at `/foo/bar` would have a depth of 2.\n     */\n    depth() {\n        if (this.#depth !== undefined)\n            return this.#depth;\n        if (!this.parent)\n            return (this.#depth = 0);\n        return (this.#depth = this.parent.depth() + 1);\n    }\n    /**\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Get the Path object referenced by the string path, resolved from this Path\n     */\n    resolve(path) {\n        if (!path) {\n            return this;\n        }\n        const rootPath = this.getRootString(path);\n        const dir = path.substring(rootPath.length);\n        const dirParts = dir.split(this.splitSep);\n        const result = rootPath ?\n            this.getRoot(rootPath).#resolveParts(dirParts)\n            : this.#resolveParts(dirParts);\n        return result;\n    }\n    #resolveParts(dirParts) {\n        let p = this;\n        for (const part of dirParts) {\n            p = p.child(part);\n        }\n        return p;\n    }\n    /**\n     * Returns the cached children Path objects, if still available.  If they\n     * have fallen out of the cache, then returns an empty array, and resets the\n     * READDIR_CALLED bit, so that future calls to readdir() will require an fs\n     * lookup.\n     *\n     * @internal\n     */\n    children() {\n        const cached = this.#children.get(this);\n        if (cached) {\n            return cached;\n        }\n        const children = Object.assign([], { provisional: 0 });\n        this.#children.set(this, children);\n        this.#type &= ~READDIR_CALLED;\n        return children;\n    }\n    /**\n     * Resolves a path portion and returns or creates the child Path.\n     *\n     * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is\n     * `'..'`.\n     *\n     * This should not be called directly.  If `pathPart` contains any path\n     * separators, it will lead to unsafe undefined behavior.\n     *\n     * Use `Path.resolve()` instead.\n     *\n     * @internal\n     */\n    child(pathPart, opts) {\n        if (pathPart === '' || pathPart === '.') {\n            return this;\n        }\n        if (pathPart === '..') {\n            return this.parent || this;\n        }\n        // find the child\n        const children = this.children();\n        const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);\n        for (const p of children) {\n            if (p.#matchName === name) {\n                return p;\n            }\n        }\n        // didn't find it, create provisional child, since it might not\n        // actually exist.  If we know the parent isn't a dir, then\n        // in fact it CAN'T exist.\n        const s = this.parent ? this.sep : '';\n        const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : undefined;\n        const pchild = this.newChild(pathPart, UNKNOWN, {\n            ...opts,\n            parent: this,\n            fullpath,\n        });\n        if (!this.canReaddir()) {\n            pchild.#type |= ENOENT;\n        }\n        // don't have to update provisional, because if we have real children,\n        // then provisional is set to children.length, otherwise a lower number\n        children.push(pchild);\n        return pchild;\n    }\n    /**\n     * The relative path from the cwd. If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpath()\n     */\n    relative() {\n        if (this.isCWD)\n            return '';\n        if (this.#relative !== undefined) {\n            return this.#relative;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relative = this.name);\n        }\n        const pv = p.relative();\n        return pv + (!pv || !p.parent ? '' : this.sep) + name;\n    }\n    /**\n     * The relative path from the cwd, using / as the path separator.\n     * If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpathPosix()\n     * On posix systems, this is identical to relative().\n     */\n    relativePosix() {\n        if (this.sep === '/')\n            return this.relative();\n        if (this.isCWD)\n            return '';\n        if (this.#relativePosix !== undefined)\n            return this.#relativePosix;\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relativePosix = this.fullpathPosix());\n        }\n        const pv = p.relativePosix();\n        return pv + (!pv || !p.parent ? '' : '/') + name;\n    }\n    /**\n     * The fully resolved path string for this Path entry\n     */\n    fullpath() {\n        if (this.#fullpath !== undefined) {\n            return this.#fullpath;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#fullpath = this.name);\n        }\n        const pv = p.fullpath();\n        const fp = pv + (!p.parent ? '' : this.sep) + name;\n        return (this.#fullpath = fp);\n    }\n    /**\n     * On platforms other than windows, this is identical to fullpath.\n     *\n     * On windows, this is overridden to return the forward-slash form of the\n     * full UNC path.\n     */\n    fullpathPosix() {\n        if (this.#fullpathPosix !== undefined)\n            return this.#fullpathPosix;\n        if (this.sep === '/')\n            return (this.#fullpathPosix = this.fullpath());\n        if (!this.parent) {\n            const p = this.fullpath().replace(/\\\\/g, '/');\n            if (/^[a-z]:\\//i.test(p)) {\n                return (this.#fullpathPosix = `//?/${p}`);\n            }\n            else {\n                return (this.#fullpathPosix = p);\n            }\n        }\n        const p = this.parent;\n        const pfpp = p.fullpathPosix();\n        const fpp = pfpp + (!pfpp || !p.parent ? '' : '/') + this.name;\n        return (this.#fullpathPosix = fpp);\n    }\n    /**\n     * Is the Path of an unknown type?\n     *\n     * Note that we might know *something* about it if there has been a previous\n     * filesystem operation, for example that it does not exist, or is not a\n     * link, or whether it has child entries.\n     */\n    isUnknown() {\n        return (this.#type & IFMT) === UNKNOWN;\n    }\n    isType(type) {\n        return this[`is${type}`]();\n    }\n    getType() {\n        return (this.isUnknown() ? 'Unknown'\n            : this.isDirectory() ? 'Directory'\n                : this.isFile() ? 'File'\n                    : this.isSymbolicLink() ? 'SymbolicLink'\n                        : this.isFIFO() ? 'FIFO'\n                            : this.isCharacterDevice() ? 'CharacterDevice'\n                                : this.isBlockDevice() ? 'BlockDevice'\n                                    : /* c8 ignore start */ this.isSocket() ? 'Socket'\n                                        : 'Unknown');\n        /* c8 ignore stop */\n    }\n    /**\n     * Is the Path a regular file?\n     */\n    isFile() {\n        return (this.#type & IFMT) === IFREG;\n    }\n    /**\n     * Is the Path a directory?\n     */\n    isDirectory() {\n        return (this.#type & IFMT) === IFDIR;\n    }\n    /**\n     * Is the path a character device?\n     */\n    isCharacterDevice() {\n        return (this.#type & IFMT) === IFCHR;\n    }\n    /**\n     * Is the path a block device?\n     */\n    isBlockDevice() {\n        return (this.#type & IFMT) === IFBLK;\n    }\n    /**\n     * Is the path a FIFO pipe?\n     */\n    isFIFO() {\n        return (this.#type & IFMT) === IFIFO;\n    }\n    /**\n     * Is the path a socket?\n     */\n    isSocket() {\n        return (this.#type & IFMT) === IFSOCK;\n    }\n    /**\n     * Is the path a symbolic link?\n     */\n    isSymbolicLink() {\n        return (this.#type & IFLNK) === IFLNK;\n    }\n    /**\n     * Return the entry if it has been subject of a successful lstat, or\n     * undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* simply\n     * mean that we haven't called lstat on it.\n     */\n    lstatCached() {\n        return this.#type & LSTAT_CALLED ? this : undefined;\n    }\n    /**\n     * Return the cached link target if the entry has been the subject of a\n     * successful readlink, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readlink() has been called at some point.\n     */\n    readlinkCached() {\n        return this.#linkTarget;\n    }\n    /**\n     * Returns the cached realpath target if the entry has been the subject\n     * of a successful realpath, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * realpath() has been called at some point.\n     */\n    realpathCached() {\n        return this.#realpath;\n    }\n    /**\n     * Returns the cached child Path entries array if the entry has been the\n     * subject of a successful readdir(), or [] otherwise.\n     *\n     * Does not read the filesystem, so an empty array *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readdir() has been called recently enough to still be valid.\n     */\n    readdirCached() {\n        const children = this.children();\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * Return true if it's worth trying to readlink.  Ie, we don't (yet) have\n     * any indication that readlink will definitely fail.\n     *\n     * Returns false if the path is known to not be a symlink, if a previous\n     * readlink failed, or if the entry does not exist.\n     */\n    canReadlink() {\n        if (this.#linkTarget)\n            return true;\n        if (!this.parent)\n            return false;\n        // cases where it cannot possibly succeed\n        const ifmt = this.#type & IFMT;\n        return !((ifmt !== UNKNOWN && ifmt !== IFLNK) ||\n            this.#type & ENOREADLINK ||\n            this.#type & ENOENT);\n    }\n    /**\n     * Return true if readdir has previously been successfully called on this\n     * path, indicating that cachedReaddir() is likely valid.\n     */\n    calledReaddir() {\n        return !!(this.#type & READDIR_CALLED);\n    }\n    /**\n     * Returns true if the path is known to not exist. That is, a previous lstat\n     * or readdir failed to verify its existence when that would have been\n     * expected, or a parent entry was marked either enoent or enotdir.\n     */\n    isENOENT() {\n        return !!(this.#type & ENOENT);\n    }\n    /**\n     * Return true if the path is a match for the given path name.  This handles\n     * case sensitivity and unicode normalization.\n     *\n     * Note: even on case-sensitive systems, it is **not** safe to test the\n     * equality of the `.name` property to determine whether a given pathname\n     * matches, due to unicode normalization mismatches.\n     *\n     * Always use this method instead of testing the `path.name` property\n     * directly.\n     */\n    isNamed(n) {\n        return !this.nocase ?\n            this.#matchName === normalize(n)\n            : this.#matchName === normalizeNocase(n);\n    }\n    /**\n     * Return the Path object corresponding to the target of a symbolic link.\n     *\n     * If the Path is not a symbolic link, or if the readlink call fails for any\n     * reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     */\n    async readlink() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = await this.#fs.promises.readlink(this.fullpath());\n            const linkTarget = (await this.parent.realpath())?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    /**\n     * Synchronous {@link PathBase.readlink}\n     */\n    readlinkSync() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = this.#fs.readlinkSync(this.fullpath());\n            const linkTarget = this.parent.realpathSync()?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    #readdirSuccess(children) {\n        // succeeded, mark readdir called bit\n        this.#type |= READDIR_CALLED;\n        // mark all remaining provisional children as ENOENT\n        for (let p = children.provisional; p < children.length; p++) {\n            const c = children[p];\n            if (c)\n                c.#markENOENT();\n        }\n    }\n    #markENOENT() {\n        // mark as UNKNOWN and ENOENT\n        if (this.#type & ENOENT)\n            return;\n        this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;\n        this.#markChildrenENOENT();\n    }\n    #markChildrenENOENT() {\n        // all children are provisional and do not exist\n        const children = this.children();\n        children.provisional = 0;\n        for (const p of children) {\n            p.#markENOENT();\n        }\n    }\n    #markENOREALPATH() {\n        this.#type |= ENOREALPATH;\n        this.#markENOTDIR();\n    }\n    // save the information when we know the entry is not a dir\n    #markENOTDIR() {\n        // entry is not a directory, so any children can't exist.\n        // this *should* be impossible, since any children created\n        // after it's been marked ENOTDIR should be marked ENOENT,\n        // so it won't even get to this point.\n        /* c8 ignore start */\n        if (this.#type & ENOTDIR)\n            return;\n        /* c8 ignore stop */\n        let t = this.#type;\n        // this could happen if we stat a dir, then delete it,\n        // then try to read it or one of its children.\n        if ((t & IFMT) === IFDIR)\n            t &= IFMT_UNKNOWN;\n        this.#type = t | ENOTDIR;\n        this.#markChildrenENOENT();\n    }\n    #readdirFail(code = '') {\n        // markENOTDIR and markENOENT also set provisional=0\n        if (code === 'ENOTDIR' || code === 'EPERM') {\n            this.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            this.#markENOENT();\n        }\n        else {\n            this.children().provisional = 0;\n        }\n    }\n    #lstatFail(code = '') {\n        // Windows just raises ENOENT in this case, disable for win CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR') {\n            // already know it has a parent by this point\n            const p = this.parent;\n            p.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            /* c8 ignore stop */\n            this.#markENOENT();\n        }\n    }\n    #readlinkFail(code = '') {\n        let ter = this.#type;\n        ter |= ENOREADLINK;\n        if (code === 'ENOENT')\n            ter |= ENOENT;\n        // windows gets a weird error when you try to readlink a file\n        if (code === 'EINVAL' || code === 'UNKNOWN') {\n            // exists, but not a symlink, we don't know WHAT it is, so remove\n            // all IFMT bits.\n            ter &= IFMT_UNKNOWN;\n        }\n        this.#type = ter;\n        // windows just gets ENOENT in this case.  We do cover the case,\n        // just disabled because it's impossible on Windows CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR' && this.parent) {\n            this.parent.#markENOTDIR();\n        }\n        /* c8 ignore stop */\n    }\n    #readdirAddChild(e, c) {\n        return (this.#readdirMaybePromoteChild(e, c) ||\n            this.#readdirAddNewChild(e, c));\n    }\n    #readdirAddNewChild(e, c) {\n        // alloc new entry at head, so it's never provisional\n        const type = entToType(e);\n        const child = this.newChild(e.name, type, { parent: this });\n        const ifmt = child.#type & IFMT;\n        if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {\n            child.#type |= ENOTDIR;\n        }\n        c.unshift(child);\n        c.provisional++;\n        return child;\n    }\n    #readdirMaybePromoteChild(e, c) {\n        for (let p = c.provisional; p < c.length; p++) {\n            const pchild = c[p];\n            const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);\n            if (name !== pchild.#matchName) {\n                continue;\n            }\n            return this.#readdirPromoteChild(e, pchild, p, c);\n        }\n    }\n    #readdirPromoteChild(e, p, index, c) {\n        const v = p.name;\n        // retain any other flags, but set ifmt from dirent\n        p.#type = (p.#type & IFMT_UNKNOWN) | entToType(e);\n        // case sensitivity fixing when we learn the true name.\n        if (v !== e.name)\n            p.name = e.name;\n        // just advance provisional index (potentially off the list),\n        // otherwise we have to splice/pop it out and re-insert at head\n        if (index !== c.provisional) {\n            if (index === c.length - 1)\n                c.pop();\n            else\n                c.splice(index, 1);\n            c.unshift(p);\n        }\n        c.provisional++;\n        return p;\n    }\n    /**\n     * Call lstat() on this Path, and update all known information that can be\n     * determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    /**\n     * synchronous {@link PathBase.lstat}\n     */\n    lstatSync() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(this.#fs.lstatSync(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    #applyStat(st) {\n        const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid, } = st;\n        this.#atime = atime;\n        this.#atimeMs = atimeMs;\n        this.#birthtime = birthtime;\n        this.#birthtimeMs = birthtimeMs;\n        this.#blksize = blksize;\n        this.#blocks = blocks;\n        this.#ctime = ctime;\n        this.#ctimeMs = ctimeMs;\n        this.#dev = dev;\n        this.#gid = gid;\n        this.#ino = ino;\n        this.#mode = mode;\n        this.#mtime = mtime;\n        this.#mtimeMs = mtimeMs;\n        this.#nlink = nlink;\n        this.#rdev = rdev;\n        this.#size = size;\n        this.#uid = uid;\n        const ifmt = entToType(st);\n        // retain any other flags, but set the ifmt\n        this.#type = (this.#type & IFMT_UNKNOWN) | ifmt | LSTAT_CALLED;\n        if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {\n            this.#type |= ENOTDIR;\n        }\n    }\n    #onReaddirCB = [];\n    #readdirCBInFlight = false;\n    #callOnReaddirCB(children) {\n        this.#readdirCBInFlight = false;\n        const cbs = this.#onReaddirCB.slice();\n        this.#onReaddirCB.length = 0;\n        cbs.forEach(cb => cb(null, children));\n    }\n    /**\n     * Standard node-style callback interface to get list of directory entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     *\n     * @param cb The callback called with (er, entries).  Note that the `er`\n     * param is somewhat extraneous, as all readdir() errors are handled and\n     * simply result in an empty set of entries being returned.\n     * @param allowZalgo Boolean indicating that immediately known results should\n     * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release\n     * zalgo at your peril, the dark pony lord is devious and unforgiving.\n     */\n    readdirCB(cb, allowZalgo = false) {\n        if (!this.canReaddir()) {\n            if (allowZalgo)\n                cb(null, []);\n            else\n                queueMicrotask(() => cb(null, []));\n            return;\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            const c = children.slice(0, children.provisional);\n            if (allowZalgo)\n                cb(null, c);\n            else\n                queueMicrotask(() => cb(null, c));\n            return;\n        }\n        // don't have to worry about zalgo at this point.\n        this.#onReaddirCB.push(cb);\n        if (this.#readdirCBInFlight) {\n            return;\n        }\n        this.#readdirCBInFlight = true;\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {\n            if (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            else {\n                // if we didn't get an error, we always get entries.\n                //@ts-ignore\n                for (const e of entries) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            this.#callOnReaddirCB(children.slice(0, children.provisional));\n            return;\n        });\n    }\n    #asyncReaddirInFlight;\n    /**\n     * Return an array of known child entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async readdir() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        if (this.#asyncReaddirInFlight) {\n            await this.#asyncReaddirInFlight;\n        }\n        else {\n            /* c8 ignore start */\n            let resolve = () => { };\n            /* c8 ignore stop */\n            this.#asyncReaddirInFlight = new Promise(res => (resolve = res));\n            try {\n                for (const e of await this.#fs.promises.readdir(fullpath, {\n                    withFileTypes: true,\n                })) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            catch (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            this.#asyncReaddirInFlight = undefined;\n            resolve();\n        }\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * synchronous {@link PathBase.readdir}\n     */\n    readdirSync() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        try {\n            for (const e of this.#fs.readdirSync(fullpath, {\n                withFileTypes: true,\n            })) {\n                this.#readdirAddChild(e, children);\n            }\n            this.#readdirSuccess(children);\n        }\n        catch (er) {\n            this.#readdirFail(er.code);\n            children.provisional = 0;\n        }\n        return children.slice(0, children.provisional);\n    }\n    canReaddir() {\n        if (this.#type & ENOCHILD)\n            return false;\n        const ifmt = IFMT & this.#type;\n        // we always set ENOTDIR when setting IFMT, so should be impossible\n        /* c8 ignore start */\n        if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {\n            return false;\n        }\n        /* c8 ignore stop */\n        return true;\n    }\n    shouldWalk(dirs, walkFilter) {\n        return ((this.#type & IFDIR) === IFDIR &&\n            !(this.#type & ENOCHILD) &&\n            !dirs.has(this) &&\n            (!walkFilter || walkFilter(this)));\n    }\n    /**\n     * Return the Path object corresponding to path as resolved\n     * by realpath(3).\n     *\n     * If the realpath call fails for any reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     * On success, returns a Path object.\n     */\n    async realpath() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = await this.#fs.promises.realpath(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Synchronous {@link realpath}\n     */\n    realpathSync() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = this.#fs.realpathSync(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Internal method to mark this Path object as the scurry cwd,\n     * called by {@link PathScurry#chdir}\n     *\n     * @internal\n     */\n    [setAsCwd](oldCwd) {\n        if (oldCwd === this)\n            return;\n        oldCwd.isCWD = false;\n        this.isCWD = true;\n        const changed = new Set([]);\n        let rp = [];\n        let p = this;\n        while (p && p.parent) {\n            changed.add(p);\n            p.#relative = rp.join(this.sep);\n            p.#relativePosix = rp.join('/');\n            p = p.parent;\n            rp.push('..');\n        }\n        // now un-memoize parents of old cwd\n        p = oldCwd;\n        while (p && p.parent && !changed.has(p)) {\n            p.#relative = undefined;\n            p.#relativePosix = undefined;\n            p = p.parent;\n        }\n    }\n}\nexports.PathBase = PathBase;\n/**\n * Path class used on win32 systems\n *\n * Uses `'\\\\'` as the path separator for returned paths, either `'\\\\'` or `'/'`\n * as the path separator for parsing paths.\n */\nclass PathWin32 extends PathBase {\n    /**\n     * Separator for generating path strings.\n     */\n    sep = '\\\\';\n    /**\n     * Separator for parsing path strings.\n     */\n    splitSep = eitherSep;\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathWin32(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return node_path_1.win32.parse(path).root;\n    }\n    /**\n     * @internal\n     */\n    getRoot(rootPath) {\n        rootPath = uncToDrive(rootPath.toUpperCase());\n        if (rootPath === this.root.name) {\n            return this.root;\n        }\n        // ok, not that one, check if it matches another we know about\n        for (const [compare, root] of Object.entries(this.roots)) {\n            if (this.sameRoot(rootPath, compare)) {\n                return (this.roots[rootPath] = root);\n            }\n        }\n        // otherwise, have to create a new one.\n        return (this.roots[rootPath] = new PathScurryWin32(rootPath, this).root);\n    }\n    /**\n     * @internal\n     */\n    sameRoot(rootPath, compare = this.root.name) {\n        // windows can (rarely) have case-sensitive filesystem, but\n        // UNC and drive letters are always case-insensitive, and canonically\n        // represented uppercase.\n        rootPath = rootPath\n            .toUpperCase()\n            .replace(/\\//g, '\\\\')\n            .replace(uncDriveRegexp, '$1\\\\');\n        return rootPath === compare;\n    }\n}\nexports.PathWin32 = PathWin32;\n/**\n * Path class used on all posix systems.\n *\n * Uses `'/'` as the path separator.\n */\nclass PathPosix extends PathBase {\n    /**\n     * separator for parsing path strings\n     */\n    splitSep = '/';\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return path.startsWith('/') ? '/' : '';\n    }\n    /**\n     * @internal\n     */\n    getRoot(_rootPath) {\n        return this.root;\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathPosix(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n}\nexports.PathPosix = PathPosix;\n/**\n * The base class for all PathScurry classes, providing the interface for path\n * resolution and filesystem operations.\n *\n * Typically, you should *not* instantiate this class directly, but rather one\n * of the platform-specific classes, or the exported {@link PathScurry} which\n * defaults to the current platform.\n */\nclass PathScurryBase {\n    /**\n     * The root Path entry for the current working directory of this Scurry\n     */\n    root;\n    /**\n     * The string path for the root of this Scurry's current working directory\n     */\n    rootPath;\n    /**\n     * A collection of all roots encountered, referenced by rootPath\n     */\n    roots;\n    /**\n     * The Path entry corresponding to this PathScurry's current working directory.\n     */\n    cwd;\n    #resolveCache;\n    #resolvePosixCache;\n    #children;\n    /**\n     * Perform path comparisons case-insensitively.\n     *\n     * Defaults true on Darwin and Windows systems, false elsewhere.\n     */\n    nocase;\n    #fs;\n    /**\n     * This class should not be instantiated directly.\n     *\n     * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry\n     *\n     * @internal\n     */\n    constructor(cwd = process.cwd(), pathImpl, sep, { nocase, childrenCacheSize = 16 * 1024, fs = defaultFS, } = {}) {\n        this.#fs = fsFromOption(fs);\n        if (cwd instanceof URL || cwd.startsWith('file://')) {\n            cwd = (0, node_url_1.fileURLToPath)(cwd);\n        }\n        // resolve and split root, and then add to the store.\n        // this is the only time we call path.resolve()\n        const cwdPath = pathImpl.resolve(cwd);\n        this.roots = Object.create(null);\n        this.rootPath = this.parseRootPath(cwdPath);\n        this.#resolveCache = new ResolveCache();\n        this.#resolvePosixCache = new ResolveCache();\n        this.#children = new ChildrenCache(childrenCacheSize);\n        const split = cwdPath.substring(this.rootPath.length).split(sep);\n        // resolve('/') leaves '', splits to [''], we don't want that.\n        if (split.length === 1 && !split[0]) {\n            split.pop();\n        }\n        /* c8 ignore start */\n        if (nocase === undefined) {\n            throw new TypeError('must provide nocase setting to PathScurryBase ctor');\n        }\n        /* c8 ignore stop */\n        this.nocase = nocase;\n        this.root = this.newRoot(this.#fs);\n        this.roots[this.rootPath] = this.root;\n        let prev = this.root;\n        let len = split.length - 1;\n        const joinSep = pathImpl.sep;\n        let abs = this.rootPath;\n        let sawFirst = false;\n        for (const part of split) {\n            const l = len--;\n            prev = prev.child(part, {\n                relative: new Array(l).fill('..').join(joinSep),\n                relativePosix: new Array(l).fill('..').join('/'),\n                fullpath: (abs += (sawFirst ? '' : joinSep) + part),\n            });\n            sawFirst = true;\n        }\n        this.cwd = prev;\n    }\n    /**\n     * Get the depth of a provided path, string, or the cwd\n     */\n    depth(path = this.cwd) {\n        if (typeof path === 'string') {\n            path = this.cwd.resolve(path);\n        }\n        return path.depth();\n    }\n    /**\n     * Return the cache of child entries.  Exposed so subclasses can create\n     * child Path objects in a platform-specific way.\n     *\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolve(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolveCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpath();\n        this.#resolveCache.set(r, result);\n        return result;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string, returning\n     * the posix path.  Identical to .resolve() on posix systems, but on\n     * windows will return a forward-slash separated UNC path.\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolvePosix(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolvePosixCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpathPosix();\n        this.#resolvePosixCache.set(r, result);\n        return result;\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or entry\n     */\n    relative(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relative();\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or\n     * entry, using / as the path delimiter, even on Windows.\n     */\n    relativePosix(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relativePosix();\n    }\n    /**\n     * Return the basename for the provided string or Path object\n     */\n    basename(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.name;\n    }\n    /**\n     * Return the dirname for the provided string or Path object\n     */\n    dirname(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return (entry.parent || entry).fullpath();\n    }\n    async readdir(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else {\n            const p = await entry.readdir();\n            return withFileTypes ? p : p.map(e => e.name);\n        }\n    }\n    readdirSync(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else if (withFileTypes) {\n            return entry.readdirSync();\n        }\n        else {\n            return entry.readdirSync().map(e => e.name);\n        }\n    }\n    /**\n     * Call lstat() on the string or Path object, and update all known\n     * information that can be determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstat();\n    }\n    /**\n     * synchronous {@link PathScurryBase.lstat}\n     */\n    lstatSync(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstatSync();\n    }\n    async readlink(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.readlink();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    readlinkSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.readlinkSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async realpath(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.realpath();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    realpathSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.realpathSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async walk(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const walk = (dir, cb) => {\n            dirs.add(dir);\n            dir.readdirCB((er, entries) => {\n                /* c8 ignore start */\n                if (er) {\n                    return cb(er);\n                }\n                /* c8 ignore stop */\n                let len = entries.length;\n                if (!len)\n                    return cb();\n                const next = () => {\n                    if (--len === 0) {\n                        cb();\n                    }\n                };\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        results.push(withFileTypes ? e : e.fullpath());\n                    }\n                    if (follow && e.isSymbolicLink()) {\n                        e.realpath()\n                            .then(r => (r?.isUnknown() ? r.lstat() : r))\n                            .then(r => r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next());\n                    }\n                    else {\n                        if (e.shouldWalk(dirs, walkFilter)) {\n                            walk(e, next);\n                        }\n                        else {\n                            next();\n                        }\n                    }\n                }\n            }, true); // zalgooooooo\n        };\n        const start = entry;\n        return new Promise((res, rej) => {\n            walk(start, er => {\n                /* c8 ignore start */\n                if (er)\n                    return rej(er);\n                /* c8 ignore stop */\n                res(results);\n            });\n        });\n    }\n    walkSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    results.push(withFileTypes ? e : e.fullpath());\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n        return results;\n    }\n    /**\n     * Support for `for await`\n     *\n     * Alias for {@link PathScurryBase.iterate}\n     *\n     * Note: As of Node 19, this is very slow, compared to other methods of\n     * walking.  Consider using {@link PathScurryBase.stream} if memory overhead\n     * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n     */\n    [Symbol.asyncIterator]() {\n        return this.iterate();\n    }\n    iterate(entry = this.cwd, options = {}) {\n        // iterating async over the stream is significantly more performant,\n        // especially in the warm-cache scenario, because it buffers up directory\n        // entries in the background instead of waiting for a yield for each one.\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            options = entry;\n            entry = this.cwd;\n        }\n        return this.stream(entry, options)[Symbol.asyncIterator]();\n    }\n    /**\n     * Iterating over a PathScurry performs a synchronous walk.\n     *\n     * Alias for {@link PathScurryBase.iterateSync}\n     */\n    [Symbol.iterator]() {\n        return this.iterateSync();\n    }\n    *iterateSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        if (!filter || filter(entry)) {\n            yield withFileTypes ? entry : entry.fullpath();\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    yield withFileTypes ? e : e.fullpath();\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n    }\n    stream(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const onReaddir = (er, entries, didRealpaths = false) => {\n                    /* c8 ignore start */\n                    if (er)\n                        return results.emit('error', er);\n                    /* c8 ignore stop */\n                    if (follow && !didRealpaths) {\n                        const promises = [];\n                        for (const e of entries) {\n                            if (e.isSymbolicLink()) {\n                                promises.push(e\n                                    .realpath()\n                                    .then((r) => r?.isUnknown() ? r.lstat() : r));\n                            }\n                        }\n                        if (promises.length) {\n                            Promise.all(promises).then(() => onReaddir(null, entries, true));\n                            return;\n                        }\n                    }\n                    for (const e of entries) {\n                        if (e && (!filter || filter(e))) {\n                            if (!results.write(withFileTypes ? e : e.fullpath())) {\n                                paused = true;\n                            }\n                        }\n                    }\n                    processing--;\n                    for (const e of entries) {\n                        const r = e.realpathCached() || e;\n                        if (r.shouldWalk(dirs, walkFilter)) {\n                            queue.push(r);\n                        }\n                    }\n                    if (paused && !results.flowing) {\n                        results.once('drain', process);\n                    }\n                    else if (!sync) {\n                        process();\n                    }\n                };\n                // zalgo containment\n                let sync = true;\n                dir.readdirCB(onReaddir, true);\n                sync = false;\n            }\n        };\n        process();\n        return results;\n    }\n    streamSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        const dirs = new Set();\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const entries = dir.readdirSync();\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        if (!results.write(withFileTypes ? e : e.fullpath())) {\n                            paused = true;\n                        }\n                    }\n                }\n                processing--;\n                for (const e of entries) {\n                    let r = e;\n                    if (e.isSymbolicLink()) {\n                        if (!(follow && (r = e.realpathSync())))\n                            continue;\n                        if (r.isUnknown())\n                            r.lstatSync();\n                    }\n                    if (r.shouldWalk(dirs, walkFilter)) {\n                        queue.push(r);\n                    }\n                }\n            }\n            if (paused && !results.flowing)\n                results.once('drain', process);\n        };\n        process();\n        return results;\n    }\n    chdir(path = this.cwd) {\n        const oldCwd = this.cwd;\n        this.cwd = typeof path === 'string' ? this.cwd.resolve(path) : path;\n        this.cwd[setAsCwd](oldCwd);\n    }\n}\nexports.PathScurryBase = PathScurryBase;\n/**\n * Windows implementation of {@link PathScurryBase}\n *\n * Defaults to case insensitve, uses `'\\\\'` to generate path strings.  Uses\n * {@link PathWin32} for Path objects.\n */\nclass PathScurryWin32 extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '\\\\';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, node_path_1.win32, '\\\\', { ...opts, nocase });\n        this.nocase = nocase;\n        for (let p = this.cwd; p; p = p.parent) {\n            p.nocase = this.nocase;\n        }\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(dir) {\n        // if the path starts with a single separator, it's not a UNC, and we'll\n        // just get separator as the root, and driveFromUNC will return \\\n        // In that case, mount \\ on the root from the cwd.\n        return node_path_1.win32.parse(dir).root.toUpperCase();\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathWin32(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return (p.startsWith('/') || p.startsWith('\\\\') || /^[a-z]:(\\/|\\\\)/i.test(p));\n    }\n}\nexports.PathScurryWin32 = PathScurryWin32;\n/**\n * {@link PathScurryBase} implementation for all posix systems other than Darwin.\n *\n * Defaults to case-sensitive matching, uses `'/'` to generate path strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryPosix extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = false } = opts;\n        super(cwd, node_path_1.posix, '/', { ...opts, nocase });\n        this.nocase = nocase;\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(_dir) {\n        return '/';\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathPosix(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return p.startsWith('/');\n    }\n}\nexports.PathScurryPosix = PathScurryPosix;\n/**\n * {@link PathScurryBase} implementation for Darwin (macOS) systems.\n *\n * Defaults to case-insensitive matching, uses `'/'` for generating path\n * strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryDarwin extends PathScurryPosix {\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, { ...opts, nocase });\n    }\n}\nexports.PathScurryDarwin = PathScurryDarwin;\n/**\n * Default {@link PathBase} implementation for the current platform.\n *\n * {@link PathWin32} on Windows systems, {@link PathPosix} on all others.\n */\nexports.Path = process.platform === 'win32' ? PathWin32 : PathPosix;\n/**\n * Default {@link PathScurryBase} implementation for the current platform.\n *\n * {@link PathScurryWin32} on Windows systems, {@link PathScurryDarwin} on\n * Darwin (macOS) systems, {@link PathScurryPosix} on all others.\n */\nexports.PathScurry = process.platform === 'win32' ? PathScurryWin32\n    : process.platform === 'darwin' ? PathScurryDarwin\n        : PathScurryPosix;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/**\n * @module LRUCache\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LRUCache = void 0;\nconst perf = typeof performance === 'object' &&\n    performance &&\n    typeof performance.now === 'function'\n    ? performance\n    : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ? process : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n    typeof PROCESS.emitWarning === 'function'\n        ? PROCESS.emitWarning(msg, type, code, fn)\n        : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n    //@ts-ignore\n    AS = class AbortSignal {\n        onabort;\n        _onabort = [];\n        reason;\n        aborted = false;\n        addEventListener(_, fn) {\n            this._onabort.push(fn);\n        }\n    };\n    //@ts-ignore\n    AC = class AbortController {\n        constructor() {\n            warnACPolyfill();\n        }\n        signal = new AS();\n        abort(reason) {\n            if (this.signal.aborted)\n                return;\n            //@ts-ignore\n            this.signal.reason = reason;\n            //@ts-ignore\n            this.signal.aborted = true;\n            //@ts-ignore\n            for (const fn of this.signal._onabort) {\n                fn(reason);\n            }\n            this.signal.onabort?.(reason);\n        }\n    };\n    let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n    const warnACPolyfill = () => {\n        if (!printACPolyfillWarning)\n            return;\n        printACPolyfillWarning = false;\n        emitWarning('AbortController is not defined. If using lru-cache in ' +\n            'node 14, load an AbortController polyfill from the ' +\n            '`node-abort-controller` package. A minimal polyfill is ' +\n            'provided for use by LRUCache.fetch(), but it should not be ' +\n            'relied upon in other contexts (eg, passing it to other APIs that ' +\n            'use AbortController/AbortSignal might have undesirable effects). ' +\n            'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n    };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values.  Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max)\n    ? null\n    : max <= Math.pow(2, 8)\n        ? Uint8Array\n        : max <= Math.pow(2, 16)\n            ? Uint16Array\n            : max <= Math.pow(2, 32)\n                ? Uint32Array\n                : max <= Number.MAX_SAFE_INTEGER\n                    ? ZeroArray\n                    : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n    constructor(size) {\n        super(size);\n        this.fill(0);\n    }\n}\nclass Stack {\n    heap;\n    length;\n    // private constructor\n    static #constructing = false;\n    static create(max) {\n        const HeapCls = getUintArray(max);\n        if (!HeapCls)\n            return [];\n        Stack.#constructing = true;\n        const s = new Stack(max, HeapCls);\n        Stack.#constructing = false;\n        return s;\n    }\n    constructor(max, HeapCls) {\n        /* c8 ignore start */\n        if (!Stack.#constructing) {\n            throw new TypeError('instantiate Stack using Stack.create(n)');\n        }\n        /* c8 ignore stop */\n        this.heap = new HeapCls(max);\n        this.length = 0;\n    }\n    push(n) {\n        this.heap[this.length++] = n;\n    }\n    pop() {\n        return this.heap[--this.length];\n    }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nclass LRUCache {\n    // options that cannot be changed without disaster\n    #max;\n    #maxSize;\n    #dispose;\n    #onInsert;\n    #disposeAfter;\n    #fetchMethod;\n    #memoMethod;\n    /**\n     * {@link LRUCache.OptionsBase.ttl}\n     */\n    ttl;\n    /**\n     * {@link LRUCache.OptionsBase.ttlResolution}\n     */\n    ttlResolution;\n    /**\n     * {@link LRUCache.OptionsBase.ttlAutopurge}\n     */\n    ttlAutopurge;\n    /**\n     * {@link LRUCache.OptionsBase.updateAgeOnGet}\n     */\n    updateAgeOnGet;\n    /**\n     * {@link LRUCache.OptionsBase.updateAgeOnHas}\n     */\n    updateAgeOnHas;\n    /**\n     * {@link LRUCache.OptionsBase.allowStale}\n     */\n    allowStale;\n    /**\n     * {@link LRUCache.OptionsBase.noDisposeOnSet}\n     */\n    noDisposeOnSet;\n    /**\n     * {@link LRUCache.OptionsBase.noUpdateTTL}\n     */\n    noUpdateTTL;\n    /**\n     * {@link LRUCache.OptionsBase.maxEntrySize}\n     */\n    maxEntrySize;\n    /**\n     * {@link LRUCache.OptionsBase.sizeCalculation}\n     */\n    sizeCalculation;\n    /**\n     * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n     */\n    noDeleteOnFetchRejection;\n    /**\n     * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n     */\n    noDeleteOnStaleGet;\n    /**\n     * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n     */\n    allowStaleOnFetchAbort;\n    /**\n     * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n     */\n    allowStaleOnFetchRejection;\n    /**\n     * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n     */\n    ignoreFetchAbort;\n    // computed properties\n    #size;\n    #calculatedSize;\n    #keyMap;\n    #keyList;\n    #valList;\n    #next;\n    #prev;\n    #head;\n    #tail;\n    #free;\n    #disposed;\n    #sizes;\n    #starts;\n    #ttls;\n    #hasDispose;\n    #hasFetchMethod;\n    #hasDisposeAfter;\n    #hasOnInsert;\n    /**\n     * Do not call this method unless you need to inspect the\n     * inner workings of the cache.  If anything returned by this\n     * object is modified in any way, strange breakage may occur.\n     *\n     * These fields are private for a reason!\n     *\n     * @internal\n     */\n    static unsafeExposeInternals(c) {\n        return {\n            // properties\n            starts: c.#starts,\n            ttls: c.#ttls,\n            sizes: c.#sizes,\n            keyMap: c.#keyMap,\n            keyList: c.#keyList,\n            valList: c.#valList,\n            next: c.#next,\n            prev: c.#prev,\n            get head() {\n                return c.#head;\n            },\n            get tail() {\n                return c.#tail;\n            },\n            free: c.#free,\n            // methods\n            isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n            backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n            moveToTail: (index) => c.#moveToTail(index),\n            indexes: (options) => c.#indexes(options),\n            rindexes: (options) => c.#rindexes(options),\n            isStale: (index) => c.#isStale(index),\n        };\n    }\n    // Protected read-only members\n    /**\n     * {@link LRUCache.OptionsBase.max} (read-only)\n     */\n    get max() {\n        return this.#max;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.maxSize} (read-only)\n     */\n    get maxSize() {\n        return this.#maxSize;\n    }\n    /**\n     * The total computed size of items in the cache (read-only)\n     */\n    get calculatedSize() {\n        return this.#calculatedSize;\n    }\n    /**\n     * The number of items stored in the cache (read-only)\n     */\n    get size() {\n        return this.#size;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n     */\n    get fetchMethod() {\n        return this.#fetchMethod;\n    }\n    get memoMethod() {\n        return this.#memoMethod;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.dispose} (read-only)\n     */\n    get dispose() {\n        return this.#dispose;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.onInsert} (read-only)\n     */\n    get onInsert() {\n        return this.#onInsert;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n     */\n    get disposeAfter() {\n        return this.#disposeAfter;\n    }\n    constructor(options) {\n        const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, onInsert, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;\n        if (max !== 0 && !isPosInt(max)) {\n            throw new TypeError('max option must be a nonnegative integer');\n        }\n        const UintArray = max ? getUintArray(max) : Array;\n        if (!UintArray) {\n            throw new Error('invalid max value: ' + max);\n        }\n        this.#max = max;\n        this.#maxSize = maxSize;\n        this.maxEntrySize = maxEntrySize || this.#maxSize;\n        this.sizeCalculation = sizeCalculation;\n        if (this.sizeCalculation) {\n            if (!this.#maxSize && !this.maxEntrySize) {\n                throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n            }\n            if (typeof this.sizeCalculation !== 'function') {\n                throw new TypeError('sizeCalculation set to non-function');\n            }\n        }\n        if (memoMethod !== undefined &&\n            typeof memoMethod !== 'function') {\n            throw new TypeError('memoMethod must be a function if defined');\n        }\n        this.#memoMethod = memoMethod;\n        if (fetchMethod !== undefined &&\n            typeof fetchMethod !== 'function') {\n            throw new TypeError('fetchMethod must be a function if specified');\n        }\n        this.#fetchMethod = fetchMethod;\n        this.#hasFetchMethod = !!fetchMethod;\n        this.#keyMap = new Map();\n        this.#keyList = new Array(max).fill(undefined);\n        this.#valList = new Array(max).fill(undefined);\n        this.#next = new UintArray(max);\n        this.#prev = new UintArray(max);\n        this.#head = 0;\n        this.#tail = 0;\n        this.#free = Stack.create(max);\n        this.#size = 0;\n        this.#calculatedSize = 0;\n        if (typeof dispose === 'function') {\n            this.#dispose = dispose;\n        }\n        if (typeof onInsert === 'function') {\n            this.#onInsert = onInsert;\n        }\n        if (typeof disposeAfter === 'function') {\n            this.#disposeAfter = disposeAfter;\n            this.#disposed = [];\n        }\n        else {\n            this.#disposeAfter = undefined;\n            this.#disposed = undefined;\n        }\n        this.#hasDispose = !!this.#dispose;\n        this.#hasOnInsert = !!this.#onInsert;\n        this.#hasDisposeAfter = !!this.#disposeAfter;\n        this.noDisposeOnSet = !!noDisposeOnSet;\n        this.noUpdateTTL = !!noUpdateTTL;\n        this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n        this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n        this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n        this.ignoreFetchAbort = !!ignoreFetchAbort;\n        // NB: maxEntrySize is set to maxSize if it's set\n        if (this.maxEntrySize !== 0) {\n            if (this.#maxSize !== 0) {\n                if (!isPosInt(this.#maxSize)) {\n                    throw new TypeError('maxSize must be a positive integer if specified');\n                }\n            }\n            if (!isPosInt(this.maxEntrySize)) {\n                throw new TypeError('maxEntrySize must be a positive integer if specified');\n            }\n            this.#initializeSizeTracking();\n        }\n        this.allowStale = !!allowStale;\n        this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n        this.updateAgeOnGet = !!updateAgeOnGet;\n        this.updateAgeOnHas = !!updateAgeOnHas;\n        this.ttlResolution =\n            isPosInt(ttlResolution) || ttlResolution === 0\n                ? ttlResolution\n                : 1;\n        this.ttlAutopurge = !!ttlAutopurge;\n        this.ttl = ttl || 0;\n        if (this.ttl) {\n            if (!isPosInt(this.ttl)) {\n                throw new TypeError('ttl must be a positive integer if specified');\n            }\n            this.#initializeTTLTracking();\n        }\n        // do not allow completely unbounded caches\n        if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n            throw new TypeError('At least one of max, maxSize, or ttl is required');\n        }\n        if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n            const code = 'LRU_CACHE_UNBOUNDED';\n            if (shouldWarn(code)) {\n                warned.add(code);\n                const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n                    'result in unbounded memory consumption.';\n                emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n            }\n        }\n    }\n    /**\n     * Return the number of ms left in the item's TTL. If item is not in cache,\n     * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n     */\n    getRemainingTTL(key) {\n        return this.#keyMap.has(key) ? Infinity : 0;\n    }\n    #initializeTTLTracking() {\n        const ttls = new ZeroArray(this.#max);\n        const starts = new ZeroArray(this.#max);\n        this.#ttls = ttls;\n        this.#starts = starts;\n        this.#setItemTTL = (index, ttl, start = perf.now()) => {\n            starts[index] = ttl !== 0 ? start : 0;\n            ttls[index] = ttl;\n            if (ttl !== 0 && this.ttlAutopurge) {\n                const t = setTimeout(() => {\n                    if (this.#isStale(index)) {\n                        this.#delete(this.#keyList[index], 'expire');\n                    }\n                }, ttl + 1);\n                // unref() not supported on all platforms\n                /* c8 ignore start */\n                if (t.unref) {\n                    t.unref();\n                }\n                /* c8 ignore stop */\n            }\n        };\n        this.#updateItemAge = index => {\n            starts[index] = ttls[index] !== 0 ? perf.now() : 0;\n        };\n        this.#statusTTL = (status, index) => {\n            if (ttls[index]) {\n                const ttl = ttls[index];\n                const start = starts[index];\n                /* c8 ignore next */\n                if (!ttl || !start)\n                    return;\n                status.ttl = ttl;\n                status.start = start;\n                status.now = cachedNow || getNow();\n                const age = status.now - start;\n                status.remainingTTL = ttl - age;\n            }\n        };\n        // debounce calls to perf.now() to 1s so we're not hitting\n        // that costly call repeatedly.\n        let cachedNow = 0;\n        const getNow = () => {\n            const n = perf.now();\n            if (this.ttlResolution > 0) {\n                cachedNow = n;\n                const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n                // not available on all platforms\n                /* c8 ignore start */\n                if (t.unref) {\n                    t.unref();\n                }\n                /* c8 ignore stop */\n            }\n            return n;\n        };\n        this.getRemainingTTL = key => {\n            const index = this.#keyMap.get(key);\n            if (index === undefined) {\n                return 0;\n            }\n            const ttl = ttls[index];\n            const start = starts[index];\n            if (!ttl || !start) {\n                return Infinity;\n            }\n            const age = (cachedNow || getNow()) - start;\n            return ttl - age;\n        };\n        this.#isStale = index => {\n            const s = starts[index];\n            const t = ttls[index];\n            return !!t && !!s && (cachedNow || getNow()) - s > t;\n        };\n    }\n    // conditionally set private methods related to TTL\n    #updateItemAge = () => { };\n    #statusTTL = () => { };\n    #setItemTTL = () => { };\n    /* c8 ignore stop */\n    #isStale = () => false;\n    #initializeSizeTracking() {\n        const sizes = new ZeroArray(this.#max);\n        this.#calculatedSize = 0;\n        this.#sizes = sizes;\n        this.#removeItemSize = index => {\n            this.#calculatedSize -= sizes[index];\n            sizes[index] = 0;\n        };\n        this.#requireSize = (k, v, size, sizeCalculation) => {\n            // provisionally accept background fetches.\n            // actual value size will be checked when they return.\n            if (this.#isBackgroundFetch(v)) {\n                return 0;\n            }\n            if (!isPosInt(size)) {\n                if (sizeCalculation) {\n                    if (typeof sizeCalculation !== 'function') {\n                        throw new TypeError('sizeCalculation must be a function');\n                    }\n                    size = sizeCalculation(v, k);\n                    if (!isPosInt(size)) {\n                        throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n                    }\n                }\n                else {\n                    throw new TypeError('invalid size value (must be positive integer). ' +\n                        'When maxSize or maxEntrySize is used, sizeCalculation ' +\n                        'or size must be set.');\n                }\n            }\n            return size;\n        };\n        this.#addItemSize = (index, size, status) => {\n            sizes[index] = size;\n            if (this.#maxSize) {\n                const maxSize = this.#maxSize - sizes[index];\n                while (this.#calculatedSize > maxSize) {\n                    this.#evict(true);\n                }\n            }\n            this.#calculatedSize += sizes[index];\n            if (status) {\n                status.entrySize = size;\n                status.totalCalculatedSize = this.#calculatedSize;\n            }\n        };\n    }\n    #removeItemSize = _i => { };\n    #addItemSize = (_i, _s, _st) => { };\n    #requireSize = (_k, _v, size, sizeCalculation) => {\n        if (size || sizeCalculation) {\n            throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n        }\n        return 0;\n    };\n    *#indexes({ allowStale = this.allowStale } = {}) {\n        if (this.#size) {\n            for (let i = this.#tail; true;) {\n                if (!this.#isValidIndex(i)) {\n                    break;\n                }\n                if (allowStale || !this.#isStale(i)) {\n                    yield i;\n                }\n                if (i === this.#head) {\n                    break;\n                }\n                else {\n                    i = this.#prev[i];\n                }\n            }\n        }\n    }\n    *#rindexes({ allowStale = this.allowStale } = {}) {\n        if (this.#size) {\n            for (let i = this.#head; true;) {\n                if (!this.#isValidIndex(i)) {\n                    break;\n                }\n                if (allowStale || !this.#isStale(i)) {\n                    yield i;\n                }\n                if (i === this.#tail) {\n                    break;\n                }\n                else {\n                    i = this.#next[i];\n                }\n            }\n        }\n    }\n    #isValidIndex(index) {\n        return (index !== undefined &&\n            this.#keyMap.get(this.#keyList[index]) === index);\n    }\n    /**\n     * Return a generator yielding `[key, value]` pairs,\n     * in order from most recently used to least recently used.\n     */\n    *entries() {\n        for (const i of this.#indexes()) {\n            if (this.#valList[i] !== undefined &&\n                this.#keyList[i] !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield [this.#keyList[i], this.#valList[i]];\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.entries}\n     *\n     * Return a generator yielding `[key, value]` pairs,\n     * in order from least recently used to most recently used.\n     */\n    *rentries() {\n        for (const i of this.#rindexes()) {\n            if (this.#valList[i] !== undefined &&\n                this.#keyList[i] !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield [this.#keyList[i], this.#valList[i]];\n            }\n        }\n    }\n    /**\n     * Return a generator yielding the keys in the cache,\n     * in order from most recently used to least recently used.\n     */\n    *keys() {\n        for (const i of this.#indexes()) {\n            const k = this.#keyList[i];\n            if (k !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield k;\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.keys}\n     *\n     * Return a generator yielding the keys in the cache,\n     * in order from least recently used to most recently used.\n     */\n    *rkeys() {\n        for (const i of this.#rindexes()) {\n            const k = this.#keyList[i];\n            if (k !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield k;\n            }\n        }\n    }\n    /**\n     * Return a generator yielding the values in the cache,\n     * in order from most recently used to least recently used.\n     */\n    *values() {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            if (v !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield this.#valList[i];\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.values}\n     *\n     * Return a generator yielding the values in the cache,\n     * in order from least recently used to most recently used.\n     */\n    *rvalues() {\n        for (const i of this.#rindexes()) {\n            const v = this.#valList[i];\n            if (v !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield this.#valList[i];\n            }\n        }\n    }\n    /**\n     * Iterating over the cache itself yields the same results as\n     * {@link LRUCache.entries}\n     */\n    [Symbol.iterator]() {\n        return this.entries();\n    }\n    /**\n     * A String value that is used in the creation of the default string\n     * description of an object. Called by the built-in method\n     * `Object.prototype.toString`.\n     */\n    [Symbol.toStringTag] = 'LRUCache';\n    /**\n     * Find a value for which the supplied fn method returns a truthy value,\n     * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n     */\n    find(fn, getOptions = {}) {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            if (fn(value, this.#keyList[i], this)) {\n                return this.get(this.#keyList[i], getOptions);\n            }\n        }\n    }\n    /**\n     * Call the supplied function on each item in the cache, in order from most\n     * recently used to least recently used.\n     *\n     * `fn` is called as `fn(value, key, cache)`.\n     *\n     * If `thisp` is provided, function will be called in the `this`-context of\n     * the provided object, or the cache if no `thisp` object is provided.\n     *\n     * Does not update age or recenty of use, or iterate over stale values.\n     */\n    forEach(fn, thisp = this) {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            fn.call(thisp, value, this.#keyList[i], this);\n        }\n    }\n    /**\n     * The same as {@link LRUCache.forEach} but items are iterated over in\n     * reverse order.  (ie, less recently used items are iterated over first.)\n     */\n    rforEach(fn, thisp = this) {\n        for (const i of this.#rindexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            fn.call(thisp, value, this.#keyList[i], this);\n        }\n    }\n    /**\n     * Delete any stale entries. Returns true if anything was removed,\n     * false otherwise.\n     */\n    purgeStale() {\n        let deleted = false;\n        for (const i of this.#rindexes({ allowStale: true })) {\n            if (this.#isStale(i)) {\n                this.#delete(this.#keyList[i], 'expire');\n                deleted = true;\n            }\n        }\n        return deleted;\n    }\n    /**\n     * Get the extended info about a given entry, to get its value, size, and\n     * TTL info simultaneously. Returns `undefined` if the key is not present.\n     *\n     * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n     * serialization, the `start` value is always the current timestamp, and the\n     * `ttl` is a calculated remaining time to live (negative if expired).\n     *\n     * Always returns stale values, if their info is found in the cache, so be\n     * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n     * if relevant.\n     */\n    info(key) {\n        const i = this.#keyMap.get(key);\n        if (i === undefined)\n            return undefined;\n        const v = this.#valList[i];\n        const value = this.#isBackgroundFetch(v)\n            ? v.__staleWhileFetching\n            : v;\n        if (value === undefined)\n            return undefined;\n        const entry = { value };\n        if (this.#ttls && this.#starts) {\n            const ttl = this.#ttls[i];\n            const start = this.#starts[i];\n            if (ttl && start) {\n                const remain = ttl - (perf.now() - start);\n                entry.ttl = remain;\n                entry.start = Date.now();\n            }\n        }\n        if (this.#sizes) {\n            entry.size = this.#sizes[i];\n        }\n        return entry;\n    }\n    /**\n     * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n     * passed to {@link LRUCache#load}.\n     *\n     * The `start` fields are calculated relative to a portable `Date.now()`\n     * timestamp, even if `performance.now()` is available.\n     *\n     * Stale entries are always included in the `dump`, even if\n     * {@link LRUCache.OptionsBase.allowStale} is false.\n     *\n     * Note: this returns an actual array, not a generator, so it can be more\n     * easily passed around.\n     */\n    dump() {\n        const arr = [];\n        for (const i of this.#indexes({ allowStale: true })) {\n            const key = this.#keyList[i];\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined || key === undefined)\n                continue;\n            const entry = { value };\n            if (this.#ttls && this.#starts) {\n                entry.ttl = this.#ttls[i];\n                // always dump the start relative to a portable timestamp\n                // it's ok for this to be a bit slow, it's a rare operation.\n                const age = perf.now() - this.#starts[i];\n                entry.start = Math.floor(Date.now() - age);\n            }\n            if (this.#sizes) {\n                entry.size = this.#sizes[i];\n            }\n            arr.unshift([key, entry]);\n        }\n        return arr;\n    }\n    /**\n     * Reset the cache and load in the items in entries in the order listed.\n     *\n     * The shape of the resulting cache may be different if the same options are\n     * not used in both caches.\n     *\n     * The `start` fields are assumed to be calculated relative to a portable\n     * `Date.now()` timestamp, even if `performance.now()` is available.\n     */\n    load(arr) {\n        this.clear();\n        for (const [key, entry] of arr) {\n            if (entry.start) {\n                // entry.start is a portable timestamp, but we may be using\n                // node's performance.now(), so calculate the offset, so that\n                // we get the intended remaining TTL, no matter how long it's\n                // been on ice.\n                //\n                // it's ok for this to be a bit slow, it's a rare operation.\n                const age = Date.now() - entry.start;\n                entry.start = perf.now() - age;\n            }\n            this.set(key, entry.value, entry);\n        }\n    }\n    /**\n     * Add a value to the cache.\n     *\n     * Note: if `undefined` is specified as a value, this is an alias for\n     * {@link LRUCache#delete}\n     *\n     * Fields on the {@link LRUCache.SetOptions} options param will override\n     * their corresponding values in the constructor options for the scope\n     * of this single `set()` operation.\n     *\n     * If `start` is provided, then that will set the effective start\n     * time for the TTL calculation. Note that this must be a previous\n     * value of `performance.now()` if supported, or a previous value of\n     * `Date.now()` if not.\n     *\n     * Options object may also include `size`, which will prevent\n     * calling the `sizeCalculation` function and just use the specified\n     * number if it is a positive integer, and `noDisposeOnSet` which\n     * will prevent calling a `dispose` function in the case of\n     * overwrites.\n     *\n     * If the `size` (or return value of `sizeCalculation`) for a given\n     * entry is greater than `maxEntrySize`, then the item will not be\n     * added to the cache.\n     *\n     * Will update the recency of the entry.\n     *\n     * If the value is `undefined`, then this is an alias for\n     * `cache.delete(key)`. `undefined` is never stored in the cache.\n     */\n    set(k, v, setOptions = {}) {\n        if (v === undefined) {\n            this.delete(k);\n            return this;\n        }\n        const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n        let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n        const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n        // if the item doesn't fit, don't do anything\n        // NB: maxEntrySize set to maxSize by default\n        if (this.maxEntrySize && size > this.maxEntrySize) {\n            if (status) {\n                status.set = 'miss';\n                status.maxEntrySizeExceeded = true;\n            }\n            // have to delete, in case something is there already.\n            this.#delete(k, 'set');\n            return this;\n        }\n        let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n        if (index === undefined) {\n            // addition\n            index = (this.#size === 0\n                ? this.#tail\n                : this.#free.length !== 0\n                    ? this.#free.pop()\n                    : this.#size === this.#max\n                        ? this.#evict(false)\n                        : this.#size);\n            this.#keyList[index] = k;\n            this.#valList[index] = v;\n            this.#keyMap.set(k, index);\n            this.#next[this.#tail] = index;\n            this.#prev[index] = this.#tail;\n            this.#tail = index;\n            this.#size++;\n            this.#addItemSize(index, size, status);\n            if (status)\n                status.set = 'add';\n            noUpdateTTL = false;\n            if (this.#hasOnInsert) {\n                this.#onInsert?.(v, k, 'add');\n            }\n        }\n        else {\n            // update\n            this.#moveToTail(index);\n            const oldVal = this.#valList[index];\n            if (v !== oldVal) {\n                if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n                    oldVal.__abortController.abort(new Error('replaced'));\n                    const { __staleWhileFetching: s } = oldVal;\n                    if (s !== undefined && !noDisposeOnSet) {\n                        if (this.#hasDispose) {\n                            this.#dispose?.(s, k, 'set');\n                        }\n                        if (this.#hasDisposeAfter) {\n                            this.#disposed?.push([s, k, 'set']);\n                        }\n                    }\n                }\n                else if (!noDisposeOnSet) {\n                    if (this.#hasDispose) {\n                        this.#dispose?.(oldVal, k, 'set');\n                    }\n                    if (this.#hasDisposeAfter) {\n                        this.#disposed?.push([oldVal, k, 'set']);\n                    }\n                }\n                this.#removeItemSize(index);\n                this.#addItemSize(index, size, status);\n                this.#valList[index] = v;\n                if (status) {\n                    status.set = 'replace';\n                    const oldValue = oldVal && this.#isBackgroundFetch(oldVal)\n                        ? oldVal.__staleWhileFetching\n                        : oldVal;\n                    if (oldValue !== undefined)\n                        status.oldValue = oldValue;\n                }\n            }\n            else if (status) {\n                status.set = 'update';\n            }\n            if (this.#hasOnInsert) {\n                this.onInsert?.(v, k, v === oldVal ? 'update' : 'replace');\n            }\n        }\n        if (ttl !== 0 && !this.#ttls) {\n            this.#initializeTTLTracking();\n        }\n        if (this.#ttls) {\n            if (!noUpdateTTL) {\n                this.#setItemTTL(index, ttl, start);\n            }\n            if (status)\n                this.#statusTTL(status, index);\n        }\n        if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n        return this;\n    }\n    /**\n     * Evict the least recently used item, returning its value or\n     * `undefined` if cache is empty.\n     */\n    pop() {\n        try {\n            while (this.#size) {\n                const val = this.#valList[this.#head];\n                this.#evict(true);\n                if (this.#isBackgroundFetch(val)) {\n                    if (val.__staleWhileFetching) {\n                        return val.__staleWhileFetching;\n                    }\n                }\n                else if (val !== undefined) {\n                    return val;\n                }\n            }\n        }\n        finally {\n            if (this.#hasDisposeAfter && this.#disposed) {\n                const dt = this.#disposed;\n                let task;\n                while ((task = dt?.shift())) {\n                    this.#disposeAfter?.(...task);\n                }\n            }\n        }\n    }\n    #evict(free) {\n        const head = this.#head;\n        const k = this.#keyList[head];\n        const v = this.#valList[head];\n        if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n            v.__abortController.abort(new Error('evicted'));\n        }\n        else if (this.#hasDispose || this.#hasDisposeAfter) {\n            if (this.#hasDispose) {\n                this.#dispose?.(v, k, 'evict');\n            }\n            if (this.#hasDisposeAfter) {\n                this.#disposed?.push([v, k, 'evict']);\n            }\n        }\n        this.#removeItemSize(head);\n        // if we aren't about to use the index, then null these out\n        if (free) {\n            this.#keyList[head] = undefined;\n            this.#valList[head] = undefined;\n            this.#free.push(head);\n        }\n        if (this.#size === 1) {\n            this.#head = this.#tail = 0;\n            this.#free.length = 0;\n        }\n        else {\n            this.#head = this.#next[head];\n        }\n        this.#keyMap.delete(k);\n        this.#size--;\n        return head;\n    }\n    /**\n     * Check if a key is in the cache, without updating the recency of use.\n     * Will return false if the item is stale, even though it is technically\n     * in the cache.\n     *\n     * Check if a key is in the cache, without updating the recency of\n     * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n     * to `true` in either the options or the constructor.\n     *\n     * Will return `false` if the item is stale, even though it is technically in\n     * the cache. The difference can be determined (if it matters) by using a\n     * `status` argument, and inspecting the `has` field.\n     *\n     * Will not update item age unless\n     * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n     */\n    has(k, hasOptions = {}) {\n        const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n        const index = this.#keyMap.get(k);\n        if (index !== undefined) {\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v) &&\n                v.__staleWhileFetching === undefined) {\n                return false;\n            }\n            if (!this.#isStale(index)) {\n                if (updateAgeOnHas) {\n                    this.#updateItemAge(index);\n                }\n                if (status) {\n                    status.has = 'hit';\n                    this.#statusTTL(status, index);\n                }\n                return true;\n            }\n            else if (status) {\n                status.has = 'stale';\n                this.#statusTTL(status, index);\n            }\n        }\n        else if (status) {\n            status.has = 'miss';\n        }\n        return false;\n    }\n    /**\n     * Like {@link LRUCache#get} but doesn't update recency or delete stale\n     * items.\n     *\n     * Returns `undefined` if the item is stale, unless\n     * {@link LRUCache.OptionsBase.allowStale} is set.\n     */\n    peek(k, peekOptions = {}) {\n        const { allowStale = this.allowStale } = peekOptions;\n        const index = this.#keyMap.get(k);\n        if (index === undefined ||\n            (!allowStale && this.#isStale(index))) {\n            return;\n        }\n        const v = this.#valList[index];\n        // either stale and allowed, or forcing a refresh of non-stale value\n        return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n    }\n    #backgroundFetch(k, index, options, context) {\n        const v = index === undefined ? undefined : this.#valList[index];\n        if (this.#isBackgroundFetch(v)) {\n            return v;\n        }\n        const ac = new AC();\n        const { signal } = options;\n        // when/if our AC signals, then stop listening to theirs.\n        signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n            signal: ac.signal,\n        });\n        const fetchOpts = {\n            signal: ac.signal,\n            options,\n            context,\n        };\n        const cb = (v, updateCache = false) => {\n            const { aborted } = ac.signal;\n            const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n            if (options.status) {\n                if (aborted && !updateCache) {\n                    options.status.fetchAborted = true;\n                    options.status.fetchError = ac.signal.reason;\n                    if (ignoreAbort)\n                        options.status.fetchAbortIgnored = true;\n                }\n                else {\n                    options.status.fetchResolved = true;\n                }\n            }\n            if (aborted && !ignoreAbort && !updateCache) {\n                return fetchFail(ac.signal.reason);\n            }\n            // either we didn't abort, and are still here, or we did, and ignored\n            const bf = p;\n            if (this.#valList[index] === p) {\n                if (v === undefined) {\n                    if (bf.__staleWhileFetching) {\n                        this.#valList[index] = bf.__staleWhileFetching;\n                    }\n                    else {\n                        this.#delete(k, 'fetch');\n                    }\n                }\n                else {\n                    if (options.status)\n                        options.status.fetchUpdated = true;\n                    this.set(k, v, fetchOpts.options);\n                }\n            }\n            return v;\n        };\n        const eb = (er) => {\n            if (options.status) {\n                options.status.fetchRejected = true;\n                options.status.fetchError = er;\n            }\n            return fetchFail(er);\n        };\n        const fetchFail = (er) => {\n            const { aborted } = ac.signal;\n            const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n            const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n            const noDelete = allowStale || options.noDeleteOnFetchRejection;\n            const bf = p;\n            if (this.#valList[index] === p) {\n                // if we allow stale on fetch rejections, then we need to ensure that\n                // the stale value is not removed from the cache when the fetch fails.\n                const del = !noDelete || bf.__staleWhileFetching === undefined;\n                if (del) {\n                    this.#delete(k, 'fetch');\n                }\n                else if (!allowStaleAborted) {\n                    // still replace the *promise* with the stale value,\n                    // since we are done with the promise at this point.\n                    // leave it untouched if we're still waiting for an\n                    // aborted background fetch that hasn't yet returned.\n                    this.#valList[index] = bf.__staleWhileFetching;\n                }\n            }\n            if (allowStale) {\n                if (options.status && bf.__staleWhileFetching !== undefined) {\n                    options.status.returnedStale = true;\n                }\n                return bf.__staleWhileFetching;\n            }\n            else if (bf.__returned === bf) {\n                throw er;\n            }\n        };\n        const pcall = (res, rej) => {\n            const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n            if (fmp && fmp instanceof Promise) {\n                fmp.then(v => res(v === undefined ? undefined : v), rej);\n            }\n            // ignored, we go until we finish, regardless.\n            // defer check until we are actually aborting,\n            // so fetchMethod can override.\n            ac.signal.addEventListener('abort', () => {\n                if (!options.ignoreFetchAbort ||\n                    options.allowStaleOnFetchAbort) {\n                    res(undefined);\n                    // when it eventually resolves, update the cache.\n                    if (options.allowStaleOnFetchAbort) {\n                        res = v => cb(v, true);\n                    }\n                }\n            });\n        };\n        if (options.status)\n            options.status.fetchDispatched = true;\n        const p = new Promise(pcall).then(cb, eb);\n        const bf = Object.assign(p, {\n            __abortController: ac,\n            __staleWhileFetching: v,\n            __returned: undefined,\n        });\n        if (index === undefined) {\n            // internal, don't expose status.\n            this.set(k, bf, { ...fetchOpts.options, status: undefined });\n            index = this.#keyMap.get(k);\n        }\n        else {\n            this.#valList[index] = bf;\n        }\n        return bf;\n    }\n    #isBackgroundFetch(p) {\n        if (!this.#hasFetchMethod)\n            return false;\n        const b = p;\n        return (!!b &&\n            b instanceof Promise &&\n            b.hasOwnProperty('__staleWhileFetching') &&\n            b.__abortController instanceof AC);\n    }\n    async fetch(k, fetchOptions = {}) {\n        const { \n        // get options\n        allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n        // set options\n        ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n        // fetch exclusive options\n        noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n        if (!this.#hasFetchMethod) {\n            if (status)\n                status.fetch = 'get';\n            return this.get(k, {\n                allowStale,\n                updateAgeOnGet,\n                noDeleteOnStaleGet,\n                status,\n            });\n        }\n        const options = {\n            allowStale,\n            updateAgeOnGet,\n            noDeleteOnStaleGet,\n            ttl,\n            noDisposeOnSet,\n            size,\n            sizeCalculation,\n            noUpdateTTL,\n            noDeleteOnFetchRejection,\n            allowStaleOnFetchRejection,\n            allowStaleOnFetchAbort,\n            ignoreFetchAbort,\n            status,\n            signal,\n        };\n        let index = this.#keyMap.get(k);\n        if (index === undefined) {\n            if (status)\n                status.fetch = 'miss';\n            const p = this.#backgroundFetch(k, index, options, context);\n            return (p.__returned = p);\n        }\n        else {\n            // in cache, maybe already fetching\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v)) {\n                const stale = allowStale && v.__staleWhileFetching !== undefined;\n                if (status) {\n                    status.fetch = 'inflight';\n                    if (stale)\n                        status.returnedStale = true;\n                }\n                return stale ? v.__staleWhileFetching : (v.__returned = v);\n            }\n            // if we force a refresh, that means do NOT serve the cached value,\n            // unless we are already in the process of refreshing the cache.\n            const isStale = this.#isStale(index);\n            if (!forceRefresh && !isStale) {\n                if (status)\n                    status.fetch = 'hit';\n                this.#moveToTail(index);\n                if (updateAgeOnGet) {\n                    this.#updateItemAge(index);\n                }\n                if (status)\n                    this.#statusTTL(status, index);\n                return v;\n            }\n            // ok, it is stale or a forced refresh, and not already fetching.\n            // refresh the cache.\n            const p = this.#backgroundFetch(k, index, options, context);\n            const hasStale = p.__staleWhileFetching !== undefined;\n            const staleVal = hasStale && allowStale;\n            if (status) {\n                status.fetch = isStale ? 'stale' : 'refresh';\n                if (staleVal && isStale)\n                    status.returnedStale = true;\n            }\n            return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n        }\n    }\n    async forceFetch(k, fetchOptions = {}) {\n        const v = await this.fetch(k, fetchOptions);\n        if (v === undefined)\n            throw new Error('fetch() returned undefined');\n        return v;\n    }\n    memo(k, memoOptions = {}) {\n        const memoMethod = this.#memoMethod;\n        if (!memoMethod) {\n            throw new Error('no memoMethod provided to constructor');\n        }\n        const { context, forceRefresh, ...options } = memoOptions;\n        const v = this.get(k, options);\n        if (!forceRefresh && v !== undefined)\n            return v;\n        const vv = memoMethod(k, v, {\n            options,\n            context,\n        });\n        this.set(k, vv, options);\n        return vv;\n    }\n    /**\n     * Return a value from the cache. Will update the recency of the cache\n     * entry found.\n     *\n     * If the key is not found, get() will return `undefined`.\n     */\n    get(k, getOptions = {}) {\n        const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n        const index = this.#keyMap.get(k);\n        if (index !== undefined) {\n            const value = this.#valList[index];\n            const fetching = this.#isBackgroundFetch(value);\n            if (status)\n                this.#statusTTL(status, index);\n            if (this.#isStale(index)) {\n                if (status)\n                    status.get = 'stale';\n                // delete only if not an in-flight background fetch\n                if (!fetching) {\n                    if (!noDeleteOnStaleGet) {\n                        this.#delete(k, 'expire');\n                    }\n                    if (status && allowStale)\n                        status.returnedStale = true;\n                    return allowStale ? value : undefined;\n                }\n                else {\n                    if (status &&\n                        allowStale &&\n                        value.__staleWhileFetching !== undefined) {\n                        status.returnedStale = true;\n                    }\n                    return allowStale ? value.__staleWhileFetching : undefined;\n                }\n            }\n            else {\n                if (status)\n                    status.get = 'hit';\n                // if we're currently fetching it, we don't actually have it yet\n                // it's not stale, which means this isn't a staleWhileRefetching.\n                // If it's not stale, and fetching, AND has a __staleWhileFetching\n                // value, then that means the user fetched with {forceRefresh:true},\n                // so it's safe to return that value.\n                if (fetching) {\n                    return value.__staleWhileFetching;\n                }\n                this.#moveToTail(index);\n                if (updateAgeOnGet) {\n                    this.#updateItemAge(index);\n                }\n                return value;\n            }\n        }\n        else if (status) {\n            status.get = 'miss';\n        }\n    }\n    #connect(p, n) {\n        this.#prev[n] = p;\n        this.#next[p] = n;\n    }\n    #moveToTail(index) {\n        // if tail already, nothing to do\n        // if head, move head to next[index]\n        // else\n        //   move next[prev[index]] to next[index] (head has no prev)\n        //   move prev[next[index]] to prev[index]\n        // prev[index] = tail\n        // next[tail] = index\n        // tail = index\n        if (index !== this.#tail) {\n            if (index === this.#head) {\n                this.#head = this.#next[index];\n            }\n            else {\n                this.#connect(this.#prev[index], this.#next[index]);\n            }\n            this.#connect(this.#tail, index);\n            this.#tail = index;\n        }\n    }\n    /**\n     * Deletes a key out of the cache.\n     *\n     * Returns true if the key was deleted, false otherwise.\n     */\n    delete(k) {\n        return this.#delete(k, 'delete');\n    }\n    #delete(k, reason) {\n        let deleted = false;\n        if (this.#size !== 0) {\n            const index = this.#keyMap.get(k);\n            if (index !== undefined) {\n                deleted = true;\n                if (this.#size === 1) {\n                    this.#clear(reason);\n                }\n                else {\n                    this.#removeItemSize(index);\n                    const v = this.#valList[index];\n                    if (this.#isBackgroundFetch(v)) {\n                        v.__abortController.abort(new Error('deleted'));\n                    }\n                    else if (this.#hasDispose || this.#hasDisposeAfter) {\n                        if (this.#hasDispose) {\n                            this.#dispose?.(v, k, reason);\n                        }\n                        if (this.#hasDisposeAfter) {\n                            this.#disposed?.push([v, k, reason]);\n                        }\n                    }\n                    this.#keyMap.delete(k);\n                    this.#keyList[index] = undefined;\n                    this.#valList[index] = undefined;\n                    if (index === this.#tail) {\n                        this.#tail = this.#prev[index];\n                    }\n                    else if (index === this.#head) {\n                        this.#head = this.#next[index];\n                    }\n                    else {\n                        const pi = this.#prev[index];\n                        this.#next[pi] = this.#next[index];\n                        const ni = this.#next[index];\n                        this.#prev[ni] = this.#prev[index];\n                    }\n                    this.#size--;\n                    this.#free.push(index);\n                }\n            }\n        }\n        if (this.#hasDisposeAfter && this.#disposed?.length) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n        return deleted;\n    }\n    /**\n     * Clear the cache entirely, throwing away all values.\n     */\n    clear() {\n        return this.#clear('delete');\n    }\n    #clear(reason) {\n        for (const index of this.#rindexes({ allowStale: true })) {\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v)) {\n                v.__abortController.abort(new Error('deleted'));\n            }\n            else {\n                const k = this.#keyList[index];\n                if (this.#hasDispose) {\n                    this.#dispose?.(v, k, reason);\n                }\n                if (this.#hasDisposeAfter) {\n                    this.#disposed?.push([v, k, reason]);\n                }\n            }\n        }\n        this.#keyMap.clear();\n        this.#valList.fill(undefined);\n        this.#keyList.fill(undefined);\n        if (this.#ttls && this.#starts) {\n            this.#ttls.fill(0);\n            this.#starts.fill(0);\n        }\n        if (this.#sizes) {\n            this.#sizes.fill(0);\n        }\n        this.#head = 0;\n        this.#tail = 0;\n        this.#free.length = 0;\n        this.#calculatedSize = 0;\n        this.#size = 0;\n        if (this.#hasDisposeAfter && this.#disposed) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n    }\n}\nexports.LRUCache = LRUCache;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = exports.validate = exports.v7 = exports.v6ToV1 = exports.v6 = exports.v5 = exports.v4 = exports.v3 = exports.v1ToV6 = exports.v1 = exports.stringify = exports.parse = exports.NIL = exports.MAX = void 0;\nvar max_js_1 = require(\"./max.js\");\nObject.defineProperty(exports, \"MAX\", { enumerable: true, get: function () { return max_js_1.default; } });\nvar nil_js_1 = require(\"./nil.js\");\nObject.defineProperty(exports, \"NIL\", { enumerable: true, get: function () { return nil_js_1.default; } });\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.default; } });\nvar stringify_js_1 = require(\"./stringify.js\");\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return stringify_js_1.default; } });\nvar v1_js_1 = require(\"./v1.js\");\nObject.defineProperty(exports, \"v1\", { enumerable: true, get: function () { return v1_js_1.default; } });\nvar v1ToV6_js_1 = require(\"./v1ToV6.js\");\nObject.defineProperty(exports, \"v1ToV6\", { enumerable: true, get: function () { return v1ToV6_js_1.default; } });\nvar v3_js_1 = require(\"./v3.js\");\nObject.defineProperty(exports, \"v3\", { enumerable: true, get: function () { return v3_js_1.default; } });\nvar v4_js_1 = require(\"./v4.js\");\nObject.defineProperty(exports, \"v4\", { enumerable: true, get: function () { return v4_js_1.default; } });\nvar v5_js_1 = require(\"./v5.js\");\nObject.defineProperty(exports, \"v5\", { enumerable: true, get: function () { return v5_js_1.default; } });\nvar v6_js_1 = require(\"./v6.js\");\nObject.defineProperty(exports, \"v6\", { enumerable: true, get: function () { return v6_js_1.default; } });\nvar v6ToV1_js_1 = require(\"./v6ToV1.js\");\nObject.defineProperty(exports, \"v6ToV1\", { enumerable: true, get: function () { return v6ToV1_js_1.default; } });\nvar v7_js_1 = require(\"./v7.js\");\nObject.defineProperty(exports, \"v7\", { enumerable: true, get: function () { return v7_js_1.default; } });\nvar validate_js_1 = require(\"./validate.js\");\nObject.defineProperty(exports, \"validate\", { enumerable: true, get: function () { return validate_js_1.default; } });\nvar version_js_1 = require(\"./version.js\");\nObject.defineProperty(exports, \"version\", { enumerable: true, get: function () { return version_js_1.default; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'ffffffff-ffff-ffff-ffff-ffffffffffff';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nfunction md5(bytes) {\n    if (Array.isArray(bytes)) {\n        bytes = Buffer.from(bytes);\n    }\n    else if (typeof bytes === 'string') {\n        bytes = Buffer.from(bytes, 'utf8');\n    }\n    return (0, crypto_1.createHash)('md5').update(bytes).digest();\n}\nexports.default = md5;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nexports.default = { randomUUID: crypto_1.randomUUID };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = '00000000-0000-0000-0000-000000000000';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_js_1 = require(\"./validate.js\");\nfunction parse(uuid) {\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Invalid UUID');\n    }\n    let v;\n    return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff);\n}\nexports.default = parse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nconst rnds8Pool = new Uint8Array(256);\nlet poolPtr = rnds8Pool.length;\nfunction rng() {\n    if (poolPtr > rnds8Pool.length - 16) {\n        (0, crypto_1.randomFillSync)(rnds8Pool);\n        poolPtr = 0;\n    }\n    return rnds8Pool.slice(poolPtr, (poolPtr += 16));\n}\nexports.default = rng;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nfunction sha1(bytes) {\n    if (Array.isArray(bytes)) {\n        bytes = Buffer.from(bytes);\n    }\n    else if (typeof bytes === 'string') {\n        bytes = Buffer.from(bytes, 'utf8');\n    }\n    return (0, crypto_1.createHash)('sha1').update(bytes).digest();\n}\nexports.default = sha1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unsafeStringify = void 0;\nconst validate_js_1 = require(\"./validate.js\");\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n    byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n    return (byteToHex[arr[offset + 0]] +\n        byteToHex[arr[offset + 1]] +\n        byteToHex[arr[offset + 2]] +\n        byteToHex[arr[offset + 3]] +\n        '-' +\n        byteToHex[arr[offset + 4]] +\n        byteToHex[arr[offset + 5]] +\n        '-' +\n        byteToHex[arr[offset + 6]] +\n        byteToHex[arr[offset + 7]] +\n        '-' +\n        byteToHex[arr[offset + 8]] +\n        byteToHex[arr[offset + 9]] +\n        '-' +\n        byteToHex[arr[offset + 10]] +\n        byteToHex[arr[offset + 11]] +\n        byteToHex[arr[offset + 12]] +\n        byteToHex[arr[offset + 13]] +\n        byteToHex[arr[offset + 14]] +\n        byteToHex[arr[offset + 15]]).toLowerCase();\n}\nexports.unsafeStringify = unsafeStringify;\nfunction stringify(arr, offset = 0) {\n    const uuid = unsafeStringify(arr, offset);\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Stringified UUID is invalid');\n    }\n    return uuid;\n}\nexports.default = stringify;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateV1State = void 0;\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nconst _state = {};\nfunction v1(options, buf, offset) {\n    let bytes;\n    const isV6 = options?._v6 ?? false;\n    if (options) {\n        const optionsKeys = Object.keys(options);\n        if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') {\n            options = undefined;\n        }\n    }\n    if (options) {\n        bytes = v1Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset);\n    }\n    else {\n        const now = Date.now();\n        const rnds = (0, rng_js_1.default)();\n        updateV1State(_state, now, rnds);\n        bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset);\n    }\n    return buf ?? (0, stringify_js_1.unsafeStringify)(bytes);\n}\nfunction updateV1State(state, now, rnds) {\n    state.msecs ??= -Infinity;\n    state.nsecs ??= 0;\n    if (now === state.msecs) {\n        state.nsecs++;\n        if (state.nsecs >= 10000) {\n            state.node = undefined;\n            state.nsecs = 0;\n        }\n    }\n    else if (now > state.msecs) {\n        state.nsecs = 0;\n    }\n    else if (now < state.msecs) {\n        state.node = undefined;\n    }\n    if (!state.node) {\n        state.node = rnds.slice(10, 16);\n        state.node[0] |= 0x01;\n        state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    }\n    state.msecs = now;\n    return state;\n}\nexports.updateV1State = updateV1State;\nfunction v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    if (!buf) {\n        buf = new Uint8Array(16);\n        offset = 0;\n    }\n    else {\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n    }\n    msecs ??= Date.now();\n    nsecs ??= 0;\n    clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    node ??= rnds.slice(10, 16);\n    msecs += 12219292800000;\n    const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n    buf[offset++] = (tl >>> 24) & 0xff;\n    buf[offset++] = (tl >>> 16) & 0xff;\n    buf[offset++] = (tl >>> 8) & 0xff;\n    buf[offset++] = tl & 0xff;\n    const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n    buf[offset++] = (tmh >>> 8) & 0xff;\n    buf[offset++] = tmh & 0xff;\n    buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;\n    buf[offset++] = (tmh >>> 16) & 0xff;\n    buf[offset++] = (clockseq >>> 8) | 0x80;\n    buf[offset++] = clockseq & 0xff;\n    for (let n = 0; n < 6; ++n) {\n        buf[offset++] = node[n];\n    }\n    return buf;\n}\nexports.default = v1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v1ToV6(uuid) {\n    const v1Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid;\n    const v6Bytes = _v1ToV6(v1Bytes);\n    return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v6Bytes) : v6Bytes;\n}\nexports.default = v1ToV6;\nfunction _v1ToV6(v1Bytes) {\n    return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = void 0;\nconst md5_js_1 = require(\"./md5.js\");\nconst v35_js_1 = require(\"./v35.js\");\nvar v35_js_2 = require(\"./v35.js\");\nObject.defineProperty(exports, \"DNS\", { enumerable: true, get: function () { return v35_js_2.DNS; } });\nObject.defineProperty(exports, \"URL\", { enumerable: true, get: function () { return v35_js_2.URL; } });\nfunction v3(value, namespace, buf, offset) {\n    return (0, v35_js_1.default)(0x30, md5_js_1.default, value, namespace, buf, offset);\n}\nv3.DNS = v35_js_1.DNS;\nv3.URL = v35_js_1.URL;\nexports.default = v3;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = exports.stringToBytes = void 0;\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction stringToBytes(str) {\n    str = unescape(encodeURIComponent(str));\n    const bytes = new Uint8Array(str.length);\n    for (let i = 0; i < str.length; ++i) {\n        bytes[i] = str.charCodeAt(i);\n    }\n    return bytes;\n}\nexports.stringToBytes = stringToBytes;\nexports.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nfunction v35(version, hash, value, namespace, buf, offset) {\n    const valueBytes = typeof value === 'string' ? stringToBytes(value) : value;\n    const namespaceBytes = typeof namespace === 'string' ? (0, parse_js_1.default)(namespace) : namespace;\n    if (typeof namespace === 'string') {\n        namespace = (0, parse_js_1.default)(namespace);\n    }\n    if (namespace?.length !== 16) {\n        throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n    }\n    let bytes = new Uint8Array(16 + valueBytes.length);\n    bytes.set(namespaceBytes);\n    bytes.set(valueBytes, namespaceBytes.length);\n    bytes = hash(bytes);\n    bytes[6] = (bytes[6] & 0x0f) | version;\n    bytes[8] = (bytes[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = bytes[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(bytes);\n}\nexports.default = v35;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst native_js_1 = require(\"./native.js\");\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v4(options, buf, offset) {\n    if (native_js_1.default.randomUUID && !buf && !options) {\n        return native_js_1.default.randomUUID();\n    }\n    options = options || {};\n    const rnds = options.random ?? options.rng?.() ?? (0, rng_js_1.default)();\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    rnds[6] = (rnds[6] & 0x0f) | 0x40;\n    rnds[8] = (rnds[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = rnds[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(rnds);\n}\nexports.default = v4;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = void 0;\nconst sha1_js_1 = require(\"./sha1.js\");\nconst v35_js_1 = require(\"./v35.js\");\nvar v35_js_2 = require(\"./v35.js\");\nObject.defineProperty(exports, \"DNS\", { enumerable: true, get: function () { return v35_js_2.DNS; } });\nObject.defineProperty(exports, \"URL\", { enumerable: true, get: function () { return v35_js_2.URL; } });\nfunction v5(value, namespace, buf, offset) {\n    return (0, v35_js_1.default)(0x50, sha1_js_1.default, value, namespace, buf, offset);\n}\nv5.DNS = v35_js_1.DNS;\nv5.URL = v35_js_1.URL;\nexports.default = v5;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stringify_js_1 = require(\"./stringify.js\");\nconst v1_js_1 = require(\"./v1.js\");\nconst v1ToV6_js_1 = require(\"./v1ToV6.js\");\nfunction v6(options, buf, offset) {\n    options ??= {};\n    offset ??= 0;\n    let bytes = (0, v1_js_1.default)({ ...options, _v6: true }, new Uint8Array(16));\n    bytes = (0, v1ToV6_js_1.default)(bytes);\n    if (buf) {\n        for (let i = 0; i < 16; i++) {\n            buf[offset + i] = bytes[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(bytes);\n}\nexports.default = v6;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v6ToV1(uuid) {\n    const v6Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid;\n    const v1Bytes = _v6ToV1(v6Bytes);\n    return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v1Bytes) : v1Bytes;\n}\nexports.default = v6ToV1;\nfunction _v6ToV1(v6Bytes) {\n    return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateV7State = void 0;\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nconst _state = {};\nfunction v7(options, buf, offset) {\n    let bytes;\n    if (options) {\n        bytes = v7Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.seq, buf, offset);\n    }\n    else {\n        const now = Date.now();\n        const rnds = (0, rng_js_1.default)();\n        updateV7State(_state, now, rnds);\n        bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);\n    }\n    return buf ?? (0, stringify_js_1.unsafeStringify)(bytes);\n}\nfunction updateV7State(state, now, rnds) {\n    state.msecs ??= -Infinity;\n    state.seq ??= 0;\n    if (now > state.msecs) {\n        state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n        state.msecs = now;\n    }\n    else {\n        state.seq = (state.seq + 1) | 0;\n        if (state.seq === 0) {\n            state.msecs++;\n        }\n    }\n    return state;\n}\nexports.updateV7State = updateV7State;\nfunction v7Bytes(rnds, msecs, seq, buf, offset = 0) {\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    if (!buf) {\n        buf = new Uint8Array(16);\n        offset = 0;\n    }\n    else {\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n    }\n    msecs ??= Date.now();\n    seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n    buf[offset++] = (msecs / 0x10000000000) & 0xff;\n    buf[offset++] = (msecs / 0x100000000) & 0xff;\n    buf[offset++] = (msecs / 0x1000000) & 0xff;\n    buf[offset++] = (msecs / 0x10000) & 0xff;\n    buf[offset++] = (msecs / 0x100) & 0xff;\n    buf[offset++] = msecs & 0xff;\n    buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);\n    buf[offset++] = (seq >>> 20) & 0xff;\n    buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);\n    buf[offset++] = (seq >>> 6) & 0xff;\n    buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);\n    buf[offset++] = rnds[11];\n    buf[offset++] = rnds[12];\n    buf[offset++] = rnds[13];\n    buf[offset++] = rnds[14];\n    buf[offset++] = rnds[15];\n    return buf;\n}\nexports.default = v7;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst regex_js_1 = require(\"./regex.js\");\nfunction validate(uuid) {\n    return typeof uuid === 'string' && regex_js_1.default.test(uuid);\n}\nexports.default = validate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_js_1 = require(\"./validate.js\");\nfunction version(uuid) {\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Invalid UUID');\n    }\n    return parseInt(uuid.slice(14, 15), 16);\n}\nexports.default = version;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar Schema = require('./Schema-88e323a7.js');\n\nconst defaultOptions = {\n  anchorPrefix: 'a',\n  customTags: null,\n  indent: 2,\n  indentSeq: true,\n  keepCstNodes: false,\n  keepNodeTypes: true,\n  keepBlobsInJSON: true,\n  mapAsMap: false,\n  maxAliasCount: 100,\n  prettyErrors: false,\n  // TODO Set true in v2\n  simpleKeys: false,\n  version: '1.2'\n};\nconst scalarOptions = {\n  get binary() {\n    return resolveSeq.binaryOptions;\n  },\n\n  set binary(opt) {\n    Object.assign(resolveSeq.binaryOptions, opt);\n  },\n\n  get bool() {\n    return resolveSeq.boolOptions;\n  },\n\n  set bool(opt) {\n    Object.assign(resolveSeq.boolOptions, opt);\n  },\n\n  get int() {\n    return resolveSeq.intOptions;\n  },\n\n  set int(opt) {\n    Object.assign(resolveSeq.intOptions, opt);\n  },\n\n  get null() {\n    return resolveSeq.nullOptions;\n  },\n\n  set null(opt) {\n    Object.assign(resolveSeq.nullOptions, opt);\n  },\n\n  get str() {\n    return resolveSeq.strOptions;\n  },\n\n  set str(opt) {\n    Object.assign(resolveSeq.strOptions, opt);\n  }\n\n};\nconst documentOptions = {\n  '1.0': {\n    schema: 'yaml-1.1',\n    merge: true,\n    tagPrefixes: [{\n      handle: '!',\n      prefix: PlainValue.defaultTagPrefix\n    }, {\n      handle: '!!',\n      prefix: 'tag:private.yaml.org,2002:'\n    }]\n  },\n  1.1: {\n    schema: 'yaml-1.1',\n    merge: true,\n    tagPrefixes: [{\n      handle: '!',\n      prefix: '!'\n    }, {\n      handle: '!!',\n      prefix: PlainValue.defaultTagPrefix\n    }]\n  },\n  1.2: {\n    schema: 'core',\n    merge: false,\n    tagPrefixes: [{\n      handle: '!',\n      prefix: '!'\n    }, {\n      handle: '!!',\n      prefix: PlainValue.defaultTagPrefix\n    }]\n  }\n};\n\nfunction stringifyTag(doc, tag) {\n  if ((doc.version || doc.options.version) === '1.0') {\n    const priv = tag.match(/^tag:private\\.yaml\\.org,2002:([^:/]+)$/);\n    if (priv) return '!' + priv[1];\n    const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\\.yaml\\.org,2002:(.*)/);\n    return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, '')}`;\n  }\n\n  let p = doc.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0);\n\n  if (!p) {\n    const dtp = doc.getDefaults().tagPrefixes;\n    p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0);\n  }\n\n  if (!p) return tag[0] === '!' ? tag : `!<${tag}>`;\n  const suffix = tag.substr(p.prefix.length).replace(/[!,[\\]{}]/g, ch => ({\n    '!': '%21',\n    ',': '%2C',\n    '[': '%5B',\n    ']': '%5D',\n    '{': '%7B',\n    '}': '%7D'\n  })[ch]);\n  return p.handle + suffix;\n}\n\nfunction getTagObject(tags, item) {\n  if (item instanceof resolveSeq.Alias) return resolveSeq.Alias;\n\n  if (item.tag) {\n    const match = tags.filter(t => t.tag === item.tag);\n    if (match.length > 0) return match.find(t => t.format === item.format) || match[0];\n  }\n\n  let tagObj, obj;\n\n  if (item instanceof resolveSeq.Scalar) {\n    obj = item.value; // TODO: deprecate/remove class check\n\n    const match = tags.filter(t => t.identify && t.identify(obj) || t.class && obj instanceof t.class);\n    tagObj = match.find(t => t.format === item.format) || match.find(t => !t.format);\n  } else {\n    obj = item;\n    tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n  }\n\n  if (!tagObj) {\n    const name = obj && obj.constructor ? obj.constructor.name : typeof obj;\n    throw new Error(`Tag not resolved for ${name} value`);\n  }\n\n  return tagObj;\n} // needs to be called before value stringifier to allow for circular anchor refs\n\n\nfunction stringifyProps(node, tagObj, {\n  anchors,\n  doc\n}) {\n  const props = [];\n  const anchor = doc.anchors.getName(node);\n\n  if (anchor) {\n    anchors[anchor] = node;\n    props.push(`&${anchor}`);\n  }\n\n  if (node.tag) {\n    props.push(stringifyTag(doc, node.tag));\n  } else if (!tagObj.default) {\n    props.push(stringifyTag(doc, tagObj.tag));\n  }\n\n  return props.join(' ');\n}\n\nfunction stringify(item, ctx, onComment, onChompKeep) {\n  const {\n    anchors,\n    schema\n  } = ctx.doc;\n  let tagObj;\n\n  if (!(item instanceof resolveSeq.Node)) {\n    const createCtx = {\n      aliasNodes: [],\n      onTagObj: o => tagObj = o,\n      prevObjects: new Map()\n    };\n    item = schema.createNode(item, true, null, createCtx);\n\n    for (const alias of createCtx.aliasNodes) {\n      alias.source = alias.source.node;\n      let name = anchors.getName(alias.source);\n\n      if (!name) {\n        name = anchors.newName();\n        anchors.map[name] = alias.source;\n      }\n    }\n  }\n\n  if (item instanceof resolveSeq.Pair) return item.toString(ctx, onComment, onChompKeep);\n  if (!tagObj) tagObj = getTagObject(schema.tags, item);\n  const props = stringifyProps(item, tagObj, ctx);\n  if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;\n  const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);\n  if (!props) return str;\n  return item instanceof resolveSeq.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\\n${ctx.indent}${str}`;\n}\n\nclass Anchors {\n  static validAnchorNode(node) {\n    return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap;\n  }\n\n  constructor(prefix) {\n    PlainValue._defineProperty(this, \"map\", Object.create(null));\n\n    this.prefix = prefix;\n  }\n\n  createAlias(node, name) {\n    this.setAnchor(node, name);\n    return new resolveSeq.Alias(node);\n  }\n\n  createMergePair(...sources) {\n    const merge = new resolveSeq.Merge();\n    merge.value.items = sources.map(s => {\n      if (s instanceof resolveSeq.Alias) {\n        if (s.source instanceof resolveSeq.YAMLMap) return s;\n      } else if (s instanceof resolveSeq.YAMLMap) {\n        return this.createAlias(s);\n      }\n\n      throw new Error('Merge sources must be Map nodes or their Aliases');\n    });\n    return merge;\n  }\n\n  getName(node) {\n    const {\n      map\n    } = this;\n    return Object.keys(map).find(a => map[a] === node);\n  }\n\n  getNames() {\n    return Object.keys(this.map);\n  }\n\n  getNode(name) {\n    return this.map[name];\n  }\n\n  newName(prefix) {\n    if (!prefix) prefix = this.prefix;\n    const names = Object.keys(this.map);\n\n    for (let i = 1; true; ++i) {\n      const name = `${prefix}${i}`;\n      if (!names.includes(name)) return name;\n    }\n  } // During parsing, map & aliases contain CST nodes\n\n\n  resolveNodes() {\n    const {\n      map,\n      _cstAliases\n    } = this;\n    Object.keys(map).forEach(a => {\n      map[a] = map[a].resolved;\n    });\n\n    _cstAliases.forEach(a => {\n      a.source = a.source.resolved;\n    });\n\n    delete this._cstAliases;\n  }\n\n  setAnchor(node, name) {\n    if (node != null && !Anchors.validAnchorNode(node)) {\n      throw new Error('Anchors may only be set for Scalar, Seq and Map nodes');\n    }\n\n    if (name && /[\\x00-\\x19\\s,[\\]{}]/.test(name)) {\n      throw new Error('Anchor names must not contain whitespace or control characters');\n    }\n\n    const {\n      map\n    } = this;\n    const prev = node && Object.keys(map).find(a => map[a] === node);\n\n    if (prev) {\n      if (!name) {\n        return prev;\n      } else if (prev !== name) {\n        delete map[prev];\n        map[name] = node;\n      }\n    } else {\n      if (!name) {\n        if (!node) return null;\n        name = this.newName();\n      }\n\n      map[name] = node;\n    }\n\n    return name;\n  }\n\n}\n\nconst visit = (node, tags) => {\n  if (node && typeof node === 'object') {\n    const {\n      tag\n    } = node;\n\n    if (node instanceof resolveSeq.Collection) {\n      if (tag) tags[tag] = true;\n      node.items.forEach(n => visit(n, tags));\n    } else if (node instanceof resolveSeq.Pair) {\n      visit(node.key, tags);\n      visit(node.value, tags);\n    } else if (node instanceof resolveSeq.Scalar) {\n      if (tag) tags[tag] = true;\n    }\n  }\n\n  return tags;\n};\n\nconst listTagNames = node => Object.keys(visit(node, {}));\n\nfunction parseContents(doc, contents) {\n  const comments = {\n    before: [],\n    after: []\n  };\n  let body = undefined;\n  let spaceBefore = false;\n\n  for (const node of contents) {\n    if (node.valueRange) {\n      if (body !== undefined) {\n        const msg = 'Document contains trailing content not separated by a ... or --- line';\n        doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg));\n        break;\n      }\n\n      const res = resolveSeq.resolveNode(doc, node);\n\n      if (spaceBefore) {\n        res.spaceBefore = true;\n        spaceBefore = false;\n      }\n\n      body = res;\n    } else if (node.comment !== null) {\n      const cc = body === undefined ? comments.before : comments.after;\n      cc.push(node.comment);\n    } else if (node.type === PlainValue.Type.BLANK_LINE) {\n      spaceBefore = true;\n\n      if (body === undefined && comments.before.length > 0 && !doc.commentBefore) {\n        // space-separated comments at start are parsed as document comments\n        doc.commentBefore = comments.before.join('\\n');\n        comments.before = [];\n      }\n    }\n  }\n\n  doc.contents = body || null;\n\n  if (!body) {\n    doc.comment = comments.before.concat(comments.after).join('\\n') || null;\n  } else {\n    const cb = comments.before.join('\\n');\n\n    if (cb) {\n      const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body;\n      cbNode.commentBefore = cbNode.commentBefore ? `${cb}\\n${cbNode.commentBefore}` : cb;\n    }\n\n    doc.comment = comments.after.join('\\n') || null;\n  }\n}\n\nfunction resolveTagDirective({\n  tagPrefixes\n}, directive) {\n  const [handle, prefix] = directive.parameters;\n\n  if (!handle || !prefix) {\n    const msg = 'Insufficient parameters given for %TAG directive';\n    throw new PlainValue.YAMLSemanticError(directive, msg);\n  }\n\n  if (tagPrefixes.some(p => p.handle === handle)) {\n    const msg = 'The %TAG directive must only be given at most once per handle in the same document.';\n    throw new PlainValue.YAMLSemanticError(directive, msg);\n  }\n\n  return {\n    handle,\n    prefix\n  };\n}\n\nfunction resolveYamlDirective(doc, directive) {\n  let [version] = directive.parameters;\n  if (directive.name === 'YAML:1.0') version = '1.0';\n\n  if (!version) {\n    const msg = 'Insufficient parameters given for %YAML directive';\n    throw new PlainValue.YAMLSemanticError(directive, msg);\n  }\n\n  if (!documentOptions[version]) {\n    const v0 = doc.version || doc.options.version;\n    const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;\n    doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));\n  }\n\n  return version;\n}\n\nfunction parseDirectives(doc, directives, prevDoc) {\n  const directiveComments = [];\n  let hasDirectives = false;\n\n  for (const directive of directives) {\n    const {\n      comment,\n      name\n    } = directive;\n\n    switch (name) {\n      case 'TAG':\n        try {\n          doc.tagPrefixes.push(resolveTagDirective(doc, directive));\n        } catch (error) {\n          doc.errors.push(error);\n        }\n\n        hasDirectives = true;\n        break;\n\n      case 'YAML':\n      case 'YAML:1.0':\n        if (doc.version) {\n          const msg = 'The %YAML directive must only be given at most once per document.';\n          doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg));\n        }\n\n        try {\n          doc.version = resolveYamlDirective(doc, directive);\n        } catch (error) {\n          doc.errors.push(error);\n        }\n\n        hasDirectives = true;\n        break;\n\n      default:\n        if (name) {\n          const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;\n          doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));\n        }\n\n    }\n\n    if (comment) directiveComments.push(comment);\n  }\n\n  if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) {\n    const copyTagPrefix = ({\n      handle,\n      prefix\n    }) => ({\n      handle,\n      prefix\n    });\n\n    doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);\n    doc.version = prevDoc.version;\n  }\n\n  doc.commentBefore = directiveComments.join('\\n') || null;\n}\n\nfunction assertCollection(contents) {\n  if (contents instanceof resolveSeq.Collection) return true;\n  throw new Error('Expected a YAML collection as document contents');\n}\n\nclass Document {\n  constructor(options) {\n    this.anchors = new Anchors(options.anchorPrefix);\n    this.commentBefore = null;\n    this.comment = null;\n    this.contents = null;\n    this.directivesEndMarker = null;\n    this.errors = [];\n    this.options = options;\n    this.schema = null;\n    this.tagPrefixes = [];\n    this.version = null;\n    this.warnings = [];\n  }\n\n  add(value) {\n    assertCollection(this.contents);\n    return this.contents.add(value);\n  }\n\n  addIn(path, value) {\n    assertCollection(this.contents);\n    this.contents.addIn(path, value);\n  }\n\n  delete(key) {\n    assertCollection(this.contents);\n    return this.contents.delete(key);\n  }\n\n  deleteIn(path) {\n    if (resolveSeq.isEmptyPath(path)) {\n      if (this.contents == null) return false;\n      this.contents = null;\n      return true;\n    }\n\n    assertCollection(this.contents);\n    return this.contents.deleteIn(path);\n  }\n\n  getDefaults() {\n    return Document.defaults[this.version] || Document.defaults[this.options.version] || {};\n  }\n\n  get(key, keepScalar) {\n    return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : undefined;\n  }\n\n  getIn(path, keepScalar) {\n    if (resolveSeq.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents;\n    return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : undefined;\n  }\n\n  has(key) {\n    return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false;\n  }\n\n  hasIn(path) {\n    if (resolveSeq.isEmptyPath(path)) return this.contents !== undefined;\n    return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false;\n  }\n\n  set(key, value) {\n    assertCollection(this.contents);\n    this.contents.set(key, value);\n  }\n\n  setIn(path, value) {\n    if (resolveSeq.isEmptyPath(path)) this.contents = value;else {\n      assertCollection(this.contents);\n      this.contents.setIn(path, value);\n    }\n  }\n\n  setSchema(id, customTags) {\n    if (!id && !customTags && this.schema) return;\n    if (typeof id === 'number') id = id.toFixed(1);\n\n    if (id === '1.0' || id === '1.1' || id === '1.2') {\n      if (this.version) this.version = id;else this.options.version = id;\n      delete this.options.schema;\n    } else if (id && typeof id === 'string') {\n      this.options.schema = id;\n    }\n\n    if (Array.isArray(customTags)) this.options.customTags = customTags;\n    const opt = Object.assign({}, this.getDefaults(), this.options);\n    this.schema = new Schema.Schema(opt);\n  }\n\n  parse(node, prevDoc) {\n    if (this.options.keepCstNodes) this.cstNode = node;\n    if (this.options.keepNodeTypes) this.type = 'DOCUMENT';\n    const {\n      directives = [],\n      contents = [],\n      directivesEndMarker,\n      error,\n      valueRange\n    } = node;\n\n    if (error) {\n      if (!error.source) error.source = this;\n      this.errors.push(error);\n    }\n\n    parseDirectives(this, directives, prevDoc);\n    if (directivesEndMarker) this.directivesEndMarker = true;\n    this.range = valueRange ? [valueRange.start, valueRange.end] : null;\n    this.setSchema();\n    this.anchors._cstAliases = [];\n    parseContents(this, contents);\n    this.anchors.resolveNodes();\n\n    if (this.options.prettyErrors) {\n      for (const error of this.errors) if (error instanceof PlainValue.YAMLError) error.makePretty();\n\n      for (const warn of this.warnings) if (warn instanceof PlainValue.YAMLError) warn.makePretty();\n    }\n\n    return this;\n  }\n\n  listNonDefaultTags() {\n    return listTagNames(this.contents).filter(t => t.indexOf(Schema.Schema.defaultPrefix) !== 0);\n  }\n\n  setTagPrefix(handle, prefix) {\n    if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !');\n\n    if (prefix) {\n      const prev = this.tagPrefixes.find(p => p.handle === handle);\n      if (prev) prev.prefix = prefix;else this.tagPrefixes.push({\n        handle,\n        prefix\n      });\n    } else {\n      this.tagPrefixes = this.tagPrefixes.filter(p => p.handle !== handle);\n    }\n  }\n\n  toJSON(arg, onAnchor) {\n    const {\n      keepBlobsInJSON,\n      mapAsMap,\n      maxAliasCount\n    } = this.options;\n    const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq.Scalar));\n    const ctx = {\n      doc: this,\n      indentStep: '  ',\n      keep,\n      mapAsMap: keep && !!mapAsMap,\n      maxAliasCount,\n      stringify // Requiring directly in Pair would create circular dependencies\n\n    };\n    const anchorNames = Object.keys(this.anchors.map);\n    if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(name => [this.anchors.map[name], {\n      alias: [],\n      aliasCount: 0,\n      count: 1\n    }]));\n    const res = resolveSeq.toJSON(this.contents, arg, ctx);\n    if (typeof onAnchor === 'function' && ctx.anchors) for (const {\n      count,\n      res\n    } of ctx.anchors.values()) onAnchor(res, count);\n    return res;\n  }\n\n  toString() {\n    if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified');\n    const indentSize = this.options.indent;\n\n    if (!Number.isInteger(indentSize) || indentSize <= 0) {\n      const s = JSON.stringify(indentSize);\n      throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n    }\n\n    this.setSchema();\n    const lines = [];\n    let hasDirectives = false;\n\n    if (this.version) {\n      let vd = '%YAML 1.2';\n\n      if (this.schema.name === 'yaml-1.1') {\n        if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1';\n      }\n\n      lines.push(vd);\n      hasDirectives = true;\n    }\n\n    const tagNames = this.listNonDefaultTags();\n    this.tagPrefixes.forEach(({\n      handle,\n      prefix\n    }) => {\n      if (tagNames.some(t => t.indexOf(prefix) === 0)) {\n        lines.push(`%TAG ${handle} ${prefix}`);\n        hasDirectives = true;\n      }\n    });\n    if (hasDirectives || this.directivesEndMarker) lines.push('---');\n\n    if (this.commentBefore) {\n      if (hasDirectives || !this.directivesEndMarker) lines.unshift('');\n      lines.unshift(this.commentBefore.replace(/^/gm, '#'));\n    }\n\n    const ctx = {\n      anchors: Object.create(null),\n      doc: this,\n      indent: '',\n      indentStep: ' '.repeat(indentSize),\n      stringify // Requiring directly in nodes would create circular dependencies\n\n    };\n    let chompKeep = false;\n    let contentComment = null;\n\n    if (this.contents) {\n      if (this.contents instanceof resolveSeq.Node) {\n        if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push('');\n        if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment\n\n        ctx.forceBlockIndent = !!this.comment;\n        contentComment = this.contents.comment;\n      }\n\n      const onChompKeep = contentComment ? null : () => chompKeep = true;\n      const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep);\n      lines.push(resolveSeq.addComment(body, '', contentComment));\n    } else if (this.contents !== undefined) {\n      lines.push(stringify(this.contents, ctx));\n    }\n\n    if (this.comment) {\n      if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push('');\n      lines.push(this.comment.replace(/^/gm, '#'));\n    }\n\n    return lines.join('\\n') + '\\n';\n  }\n\n}\n\nPlainValue._defineProperty(Document, \"defaults\", documentOptions);\n\nexports.Document = Document;\nexports.defaultOptions = defaultOptions;\nexports.scalarOptions = scalarOptions;\n","'use strict';\n\nconst Char = {\n  ANCHOR: '&',\n  COMMENT: '#',\n  TAG: '!',\n  DIRECTIVES_END: '-',\n  DOCUMENT_END: '.'\n};\nconst Type = {\n  ALIAS: 'ALIAS',\n  BLANK_LINE: 'BLANK_LINE',\n  BLOCK_FOLDED: 'BLOCK_FOLDED',\n  BLOCK_LITERAL: 'BLOCK_LITERAL',\n  COMMENT: 'COMMENT',\n  DIRECTIVE: 'DIRECTIVE',\n  DOCUMENT: 'DOCUMENT',\n  FLOW_MAP: 'FLOW_MAP',\n  FLOW_SEQ: 'FLOW_SEQ',\n  MAP: 'MAP',\n  MAP_KEY: 'MAP_KEY',\n  MAP_VALUE: 'MAP_VALUE',\n  PLAIN: 'PLAIN',\n  QUOTE_DOUBLE: 'QUOTE_DOUBLE',\n  QUOTE_SINGLE: 'QUOTE_SINGLE',\n  SEQ: 'SEQ',\n  SEQ_ITEM: 'SEQ_ITEM'\n};\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nconst defaultTags = {\n  MAP: 'tag:yaml.org,2002:map',\n  SEQ: 'tag:yaml.org,2002:seq',\n  STR: 'tag:yaml.org,2002:str'\n};\n\nfunction findLineStarts(src) {\n  const ls = [0];\n  let offset = src.indexOf('\\n');\n\n  while (offset !== -1) {\n    offset += 1;\n    ls.push(offset);\n    offset = src.indexOf('\\n', offset);\n  }\n\n  return ls;\n}\n\nfunction getSrcInfo(cst) {\n  let lineStarts, src;\n\n  if (typeof cst === 'string') {\n    lineStarts = findLineStarts(cst);\n    src = cst;\n  } else {\n    if (Array.isArray(cst)) cst = cst[0];\n\n    if (cst && cst.context) {\n      if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);\n      lineStarts = cst.lineStarts;\n      src = cst.context.src;\n    }\n  }\n\n  return {\n    lineStarts,\n    src\n  };\n}\n/**\n * @typedef {Object} LinePos - One-indexed position in the source\n * @property {number} line\n * @property {number} col\n */\n\n/**\n * Determine the line/col position matching a character offset.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns a one-indexed `{ line, col }` location if found, or\n * `undefined` otherwise.\n *\n * @param {number} offset\n * @param {string|Document|Document[]} cst\n * @returns {?LinePos}\n */\n\n\nfunction getLinePos(offset, cst) {\n  if (typeof offset !== 'number' || offset < 0) return null;\n  const {\n    lineStarts,\n    src\n  } = getSrcInfo(cst);\n  if (!lineStarts || !src || offset > src.length) return null;\n\n  for (let i = 0; i < lineStarts.length; ++i) {\n    const start = lineStarts[i];\n\n    if (offset < start) {\n      return {\n        line: i,\n        col: offset - lineStarts[i - 1] + 1\n      };\n    }\n\n    if (offset === start) return {\n      line: i + 1,\n      col: 1\n    };\n  }\n\n  const line = lineStarts.length;\n  return {\n    line,\n    col: offset - lineStarts[line - 1] + 1\n  };\n}\n/**\n * Get a specified line from the source.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns the line as a string if found, or `null` otherwise.\n *\n * @param {number} line One-indexed line number\n * @param {string|Document|Document[]} cst\n * @returns {?string}\n */\n\nfunction getLine(line, cst) {\n  const {\n    lineStarts,\n    src\n  } = getSrcInfo(cst);\n  if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;\n  const start = lineStarts[line - 1];\n  let end = lineStarts[line]; // undefined for last line; that's ok for slice()\n\n  while (end && end > start && src[end - 1] === '\\n') --end;\n\n  return src.slice(start, end);\n}\n/**\n * Pretty-print the starting line from the source indicated by the range `pos`\n *\n * Trims output to `maxWidth` chars while keeping the starting column visible,\n * using `…` at either end to indicate dropped characters.\n *\n * Returns a two-line string (or `null`) with `\\n` as separator; the second line\n * will hold appropriately indented `^` marks indicating the column range.\n *\n * @param {Object} pos\n * @param {LinePos} pos.start\n * @param {LinePos} [pos.end]\n * @param {string|Document|Document[]*} cst\n * @param {number} [maxWidth=80]\n * @returns {?string}\n */\n\nfunction getPrettyContext({\n  start,\n  end\n}, cst, maxWidth = 80) {\n  let src = getLine(start.line, cst);\n  if (!src) return null;\n  let {\n    col\n  } = start;\n\n  if (src.length > maxWidth) {\n    if (col <= maxWidth - 10) {\n      src = src.substr(0, maxWidth - 1) + '…';\n    } else {\n      const halfWidth = Math.round(maxWidth / 2);\n      if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';\n      col -= src.length - maxWidth;\n      src = '…' + src.substr(1 - maxWidth);\n    }\n  }\n\n  let errLen = 1;\n  let errEnd = '';\n\n  if (end) {\n    if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {\n      errLen = end.col - start.col;\n    } else {\n      errLen = Math.min(src.length + 1, maxWidth) - col;\n      errEnd = '…';\n    }\n  }\n\n  const offset = col > 1 ? ' '.repeat(col - 1) : '';\n  const err = '^'.repeat(errLen);\n  return `${src}\\n${offset}${err}${errEnd}`;\n}\n\nclass Range {\n  static copy(orig) {\n    return new Range(orig.start, orig.end);\n  }\n\n  constructor(start, end) {\n    this.start = start;\n    this.end = end || start;\n  }\n\n  isEmpty() {\n    return typeof this.start !== 'number' || !this.end || this.end <= this.start;\n  }\n  /**\n   * Set `origStart` and `origEnd` to point to the original source range for\n   * this node, which may differ due to dropped CR characters.\n   *\n   * @param {number[]} cr - Positions of dropped CR characters\n   * @param {number} offset - Starting index of `cr` from the last call\n   * @returns {number} - The next offset, matching the one found for `origStart`\n   */\n\n\n  setOrigRange(cr, offset) {\n    const {\n      start,\n      end\n    } = this;\n\n    if (cr.length === 0 || end <= cr[0]) {\n      this.origStart = start;\n      this.origEnd = end;\n      return offset;\n    }\n\n    let i = offset;\n\n    while (i < cr.length) {\n      if (cr[i] > start) break;else ++i;\n    }\n\n    this.origStart = start + i;\n    const nextOffset = i;\n\n    while (i < cr.length) {\n      // if end was at \\n, it should now be at \\r\n      if (cr[i] >= end) break;else ++i;\n    }\n\n    this.origEnd = end + i;\n    return nextOffset;\n  }\n\n}\n\n/** Root class of all nodes */\n\nclass Node {\n  static addStringTerminator(src, offset, str) {\n    if (str[str.length - 1] === '\\n') return str;\n    const next = Node.endOfWhiteSpace(src, offset);\n    return next >= src.length || src[next] === '\\n' ? str + '\\n' : str;\n  } // ^(---|...)\n\n\n  static atDocumentBoundary(src, offset, sep) {\n    const ch0 = src[offset];\n    if (!ch0) return true;\n    const prev = src[offset - 1];\n    if (prev && prev !== '\\n') return false;\n\n    if (sep) {\n      if (ch0 !== sep) return false;\n    } else {\n      if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;\n    }\n\n    const ch1 = src[offset + 1];\n    const ch2 = src[offset + 2];\n    if (ch1 !== ch0 || ch2 !== ch0) return false;\n    const ch3 = src[offset + 3];\n    return !ch3 || ch3 === '\\n' || ch3 === '\\t' || ch3 === ' ';\n  }\n\n  static endOfIdentifier(src, offset) {\n    let ch = src[offset];\n    const isVerbatim = ch === '<';\n    const notOk = isVerbatim ? ['\\n', '\\t', ' ', '>'] : ['\\n', '\\t', ' ', '[', ']', '{', '}', ','];\n\n    while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1];\n\n    if (isVerbatim && ch === '>') offset += 1;\n    return offset;\n  }\n\n  static endOfIndent(src, offset) {\n    let ch = src[offset];\n\n    while (ch === ' ') ch = src[offset += 1];\n\n    return offset;\n  }\n\n  static endOfLine(src, offset) {\n    let ch = src[offset];\n\n    while (ch && ch !== '\\n') ch = src[offset += 1];\n\n    return offset;\n  }\n\n  static endOfWhiteSpace(src, offset) {\n    let ch = src[offset];\n\n    while (ch === '\\t' || ch === ' ') ch = src[offset += 1];\n\n    return offset;\n  }\n\n  static startOfLine(src, offset) {\n    let ch = src[offset - 1];\n    if (ch === '\\n') return offset;\n\n    while (ch && ch !== '\\n') ch = src[offset -= 1];\n\n    return offset + 1;\n  }\n  /**\n   * End of indentation, or null if the line's indent level is not more\n   * than `indent`\n   *\n   * @param {string} src\n   * @param {number} indent\n   * @param {number} lineStart\n   * @returns {?number}\n   */\n\n\n  static endOfBlockIndent(src, indent, lineStart) {\n    const inEnd = Node.endOfIndent(src, lineStart);\n\n    if (inEnd > lineStart + indent) {\n      return inEnd;\n    } else {\n      const wsEnd = Node.endOfWhiteSpace(src, inEnd);\n      const ch = src[wsEnd];\n      if (!ch || ch === '\\n') return wsEnd;\n    }\n\n    return null;\n  }\n\n  static atBlank(src, offset, endAsBlank) {\n    const ch = src[offset];\n    return ch === '\\n' || ch === '\\t' || ch === ' ' || endAsBlank && !ch;\n  }\n\n  static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {\n    if (!ch || indentDiff < 0) return false;\n    if (indentDiff > 0) return true;\n    return indicatorAsIndent && ch === '-';\n  } // should be at line or string end, or at next non-whitespace char\n\n\n  static normalizeOffset(src, offset) {\n    const ch = src[offset];\n    return !ch ? offset : ch !== '\\n' && src[offset - 1] === '\\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);\n  } // fold single newline into space, multiple newlines to N - 1 newlines\n  // presumes src[offset] === '\\n'\n\n\n  static foldNewline(src, offset, indent) {\n    let inCount = 0;\n    let error = false;\n    let fold = '';\n    let ch = src[offset + 1];\n\n    while (ch === ' ' || ch === '\\t' || ch === '\\n') {\n      switch (ch) {\n        case '\\n':\n          inCount = 0;\n          offset += 1;\n          fold += '\\n';\n          break;\n\n        case '\\t':\n          if (inCount <= indent) error = true;\n          offset = Node.endOfWhiteSpace(src, offset + 2) - 1;\n          break;\n\n        case ' ':\n          inCount += 1;\n          offset += 1;\n          break;\n      }\n\n      ch = src[offset + 1];\n    }\n\n    if (!fold) fold = ' ';\n    if (ch && inCount <= indent) error = true;\n    return {\n      fold,\n      offset,\n      error\n    };\n  }\n\n  constructor(type, props, context) {\n    Object.defineProperty(this, 'context', {\n      value: context || null,\n      writable: true\n    });\n    this.error = null;\n    this.range = null;\n    this.valueRange = null;\n    this.props = props || [];\n    this.type = type;\n    this.value = null;\n  }\n\n  getPropValue(idx, key, skipKey) {\n    if (!this.context) return null;\n    const {\n      src\n    } = this.context;\n    const prop = this.props[idx];\n    return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;\n  }\n\n  get anchor() {\n    for (let i = 0; i < this.props.length; ++i) {\n      const anchor = this.getPropValue(i, Char.ANCHOR, true);\n      if (anchor != null) return anchor;\n    }\n\n    return null;\n  }\n\n  get comment() {\n    const comments = [];\n\n    for (let i = 0; i < this.props.length; ++i) {\n      const comment = this.getPropValue(i, Char.COMMENT, true);\n      if (comment != null) comments.push(comment);\n    }\n\n    return comments.length > 0 ? comments.join('\\n') : null;\n  }\n\n  commentHasRequiredWhitespace(start) {\n    const {\n      src\n    } = this.context;\n    if (this.header && start === this.header.end) return false;\n    if (!this.valueRange) return false;\n    const {\n      end\n    } = this.valueRange;\n    return start !== end || Node.atBlank(src, end - 1);\n  }\n\n  get hasComment() {\n    if (this.context) {\n      const {\n        src\n      } = this.context;\n\n      for (let i = 0; i < this.props.length; ++i) {\n        if (src[this.props[i].start] === Char.COMMENT) return true;\n      }\n    }\n\n    return false;\n  }\n\n  get hasProps() {\n    if (this.context) {\n      const {\n        src\n      } = this.context;\n\n      for (let i = 0; i < this.props.length; ++i) {\n        if (src[this.props[i].start] !== Char.COMMENT) return true;\n      }\n    }\n\n    return false;\n  }\n\n  get includesTrailingLines() {\n    return false;\n  }\n\n  get jsonLike() {\n    const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];\n    return jsonLikeTypes.indexOf(this.type) !== -1;\n  }\n\n  get rangeAsLinePos() {\n    if (!this.range || !this.context) return undefined;\n    const start = getLinePos(this.range.start, this.context.root);\n    if (!start) return undefined;\n    const end = getLinePos(this.range.end, this.context.root);\n    return {\n      start,\n      end\n    };\n  }\n\n  get rawValue() {\n    if (!this.valueRange || !this.context) return null;\n    const {\n      start,\n      end\n    } = this.valueRange;\n    return this.context.src.slice(start, end);\n  }\n\n  get tag() {\n    for (let i = 0; i < this.props.length; ++i) {\n      const tag = this.getPropValue(i, Char.TAG, false);\n\n      if (tag != null) {\n        if (tag[1] === '<') {\n          return {\n            verbatim: tag.slice(2, -1)\n          };\n        } else {\n          // eslint-disable-next-line no-unused-vars\n          const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/);\n          return {\n            handle,\n            suffix\n          };\n        }\n      }\n    }\n\n    return null;\n  }\n\n  get valueRangeContainsNewline() {\n    if (!this.valueRange || !this.context) return false;\n    const {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      src\n    } = this.context;\n\n    for (let i = start; i < end; ++i) {\n      if (src[i] === '\\n') return true;\n    }\n\n    return false;\n  }\n\n  parseComment(start) {\n    const {\n      src\n    } = this.context;\n\n    if (src[start] === Char.COMMENT) {\n      const end = Node.endOfLine(src, start + 1);\n      const commentRange = new Range(start, end);\n      this.props.push(commentRange);\n      return end;\n    }\n\n    return start;\n  }\n  /**\n   * Populates the `origStart` and `origEnd` values of all ranges for this\n   * node. Extended by child classes to handle descendant nodes.\n   *\n   * @param {number[]} cr - Positions of dropped CR characters\n   * @param {number} offset - Starting index of `cr` from the last call\n   * @returns {number} - The next offset, matching the one found for `origStart`\n   */\n\n\n  setOrigRanges(cr, offset) {\n    if (this.range) offset = this.range.setOrigRange(cr, offset);\n    if (this.valueRange) this.valueRange.setOrigRange(cr, offset);\n    this.props.forEach(prop => prop.setOrigRange(cr, offset));\n    return offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    const str = src.slice(range.start, range.end);\n    return Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass YAMLError extends Error {\n  constructor(name, source, message) {\n    if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`);\n    super();\n    this.name = name;\n    this.message = message;\n    this.source = source;\n  }\n\n  makePretty() {\n    if (!this.source) return;\n    this.nodeType = this.source.type;\n    const cst = this.source.context && this.source.context.root;\n\n    if (typeof this.offset === 'number') {\n      this.range = new Range(this.offset, this.offset + 1);\n      const start = cst && getLinePos(this.offset, cst);\n\n      if (start) {\n        const end = {\n          line: start.line,\n          col: start.col + 1\n        };\n        this.linePos = {\n          start,\n          end\n        };\n      }\n\n      delete this.offset;\n    } else {\n      this.range = this.source.range;\n      this.linePos = this.source.rangeAsLinePos;\n    }\n\n    if (this.linePos) {\n      const {\n        line,\n        col\n      } = this.linePos.start;\n      this.message += ` at line ${line}, column ${col}`;\n      const ctx = cst && getPrettyContext(this.linePos, cst);\n      if (ctx) this.message += `:\\n\\n${ctx}\\n`;\n    }\n\n    delete this.source;\n  }\n\n}\nclass YAMLReferenceError extends YAMLError {\n  constructor(source, message) {\n    super('YAMLReferenceError', source, message);\n  }\n\n}\nclass YAMLSemanticError extends YAMLError {\n  constructor(source, message) {\n    super('YAMLSemanticError', source, message);\n  }\n\n}\nclass YAMLSyntaxError extends YAMLError {\n  constructor(source, message) {\n    super('YAMLSyntaxError', source, message);\n  }\n\n}\nclass YAMLWarning extends YAMLError {\n  constructor(source, message) {\n    super('YAMLWarning', source, message);\n  }\n\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nclass PlainValue extends Node {\n  static endOfLine(src, start, inFlow) {\n    let ch = src[start];\n    let offset = start;\n\n    while (ch && ch !== '\\n') {\n      if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;\n      const next = src[offset + 1];\n      if (ch === ':' && (!next || next === '\\n' || next === '\\t' || next === ' ' || inFlow && next === ',')) break;\n      if ((ch === ' ' || ch === '\\t') && next === '#') break;\n      offset += 1;\n      ch = next;\n    }\n\n    return offset;\n  }\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    let {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      src\n    } = this.context;\n    let ch = src[end - 1];\n\n    while (start < end && (ch === '\\n' || ch === '\\t' || ch === ' ')) ch = src[--end - 1];\n\n    let str = '';\n\n    for (let i = start; i < end; ++i) {\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        const {\n          fold,\n          offset\n        } = Node.foldNewline(src, i, -1);\n        str += fold;\n        i = offset;\n      } else if (ch === ' ' || ch === '\\t') {\n        // trim trailing whitespace\n        const wsStart = i;\n        let next = src[i + 1];\n\n        while (i < end && (next === ' ' || next === '\\t')) {\n          i += 1;\n          next = src[i + 1];\n        }\n\n        if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n      } else {\n        str += ch;\n      }\n    }\n\n    const ch0 = src[start];\n\n    switch (ch0) {\n      case '\\t':\n        {\n          const msg = 'Plain value cannot start with a tab character';\n          const errors = [new YAMLSemanticError(this, msg)];\n          return {\n            errors,\n            str\n          };\n        }\n\n      case '@':\n      case '`':\n        {\n          const msg = `Plain value cannot start with reserved character ${ch0}`;\n          const errors = [new YAMLSemanticError(this, msg)];\n          return {\n            errors,\n            str\n          };\n        }\n\n      default:\n        return str;\n    }\n  }\n\n  parseBlockValue(start) {\n    const {\n      indent,\n      inFlow,\n      src\n    } = this.context;\n    let offset = start;\n    let valueEnd = start;\n\n    for (let ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n      if (Node.atDocumentBoundary(src, offset + 1)) break;\n      const end = Node.endOfBlockIndent(src, indent, offset + 1);\n      if (end === null || src[end] === '#') break;\n\n      if (src[end] === '\\n') {\n        offset = end;\n      } else {\n        valueEnd = PlainValue.endOfLine(src, end, inFlow);\n        offset = valueEnd;\n      }\n    }\n\n    if (this.valueRange.isEmpty()) this.valueRange.start = start;\n    this.valueRange.end = valueEnd;\n    return valueEnd;\n  }\n  /**\n   * Parses a plain value from the source\n   *\n   * Accepted forms are:\n   * ```\n   * #comment\n   *\n   * first line\n   *\n   * first line #comment\n   *\n   * first line\n   * block\n   * lines\n   *\n   * #comment\n   * block\n   * lines\n   * ```\n   * where block lines are empty or have an indent level greater than `indent`.\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar, may be `\\n`\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      inFlow,\n      src\n    } = context;\n    let offset = start;\n    const ch = src[offset];\n\n    if (ch && ch !== '#' && ch !== '\\n') {\n      offset = PlainValue.endOfLine(src, start, inFlow);\n    }\n\n    this.valueRange = new Range(start, offset);\n    offset = Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n\n    if (!this.hasComment || this.valueRange.isEmpty()) {\n      offset = this.parseBlockValue(offset);\n    }\n\n    return offset;\n  }\n\n}\n\nexports.Char = Char;\nexports.Node = Node;\nexports.PlainValue = PlainValue;\nexports.Range = Range;\nexports.Type = Type;\nexports.YAMLError = YAMLError;\nexports.YAMLReferenceError = YAMLReferenceError;\nexports.YAMLSemanticError = YAMLSemanticError;\nexports.YAMLSyntaxError = YAMLSyntaxError;\nexports.YAMLWarning = YAMLWarning;\nexports._defineProperty = _defineProperty;\nexports.defaultTagPrefix = defaultTagPrefix;\nexports.defaultTags = defaultTags;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar warnings = require('./warnings-1000a372.js');\n\nfunction createMap(schema, obj, ctx) {\n  const map = new resolveSeq.YAMLMap(schema);\n\n  if (obj instanceof Map) {\n    for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx));\n  } else if (obj && typeof obj === 'object') {\n    for (const key of Object.keys(obj)) map.items.push(schema.createPair(key, obj[key], ctx));\n  }\n\n  if (typeof schema.sortMapEntries === 'function') {\n    map.items.sort(schema.sortMapEntries);\n  }\n\n  return map;\n}\n\nconst map = {\n  createNode: createMap,\n  default: true,\n  nodeClass: resolveSeq.YAMLMap,\n  tag: 'tag:yaml.org,2002:map',\n  resolve: resolveSeq.resolveMap\n};\n\nfunction createSeq(schema, obj, ctx) {\n  const seq = new resolveSeq.YAMLSeq(schema);\n\n  if (obj && obj[Symbol.iterator]) {\n    for (const it of obj) {\n      const v = schema.createNode(it, ctx.wrapScalars, null, ctx);\n      seq.items.push(v);\n    }\n  }\n\n  return seq;\n}\n\nconst seq = {\n  createNode: createSeq,\n  default: true,\n  nodeClass: resolveSeq.YAMLSeq,\n  tag: 'tag:yaml.org,2002:seq',\n  resolve: resolveSeq.resolveSeq\n};\n\nconst string = {\n  identify: value => typeof value === 'string',\n  default: true,\n  tag: 'tag:yaml.org,2002:str',\n  resolve: resolveSeq.resolveString,\n\n  stringify(item, ctx, onComment, onChompKeep) {\n    ctx = Object.assign({\n      actualString: true\n    }, ctx);\n    return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep);\n  },\n\n  options: resolveSeq.strOptions\n};\n\nconst failsafe = [map, seq, string];\n\n/* global BigInt */\n\nconst intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value);\n\nconst intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);\n\nfunction intStringify$1(node, radix, prefix) {\n  const {\n    value\n  } = node;\n  if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix);\n  return resolveSeq.stringifyNumber(node);\n}\n\nconst nullObj = {\n  identify: value => value == null,\n  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n  default: true,\n  tag: 'tag:yaml.org,2002:null',\n  test: /^(?:~|[Nn]ull|NULL)?$/,\n  resolve: () => null,\n  options: resolveSeq.nullOptions,\n  stringify: () => resolveSeq.nullOptions.nullStr\n};\nconst boolObj = {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n  resolve: str => str[0] === 't' || str[0] === 'T',\n  options: resolveSeq.boolOptions,\n  stringify: ({\n    value\n  }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr\n};\nconst octObj = {\n  identify: value => intIdentify$2(value) && value >= 0,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'OCT',\n  test: /^0o([0-7]+)$/,\n  resolve: (str, oct) => intResolve$1(str, oct, 8),\n  options: resolveSeq.intOptions,\n  stringify: node => intStringify$1(node, 8, '0o')\n};\nconst intObj = {\n  identify: intIdentify$2,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  test: /^[-+]?[0-9]+$/,\n  resolve: str => intResolve$1(str, str, 10),\n  options: resolveSeq.intOptions,\n  stringify: resolveSeq.stringifyNumber\n};\nconst hexObj = {\n  identify: value => intIdentify$2(value) && value >= 0,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'HEX',\n  test: /^0x([0-9a-fA-F]+)$/,\n  resolve: (str, hex) => intResolve$1(str, hex, 16),\n  options: resolveSeq.intOptions,\n  stringify: node => intStringify$1(node, 16, '0x')\n};\nconst nanObj = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n  resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,\n  stringify: resolveSeq.stringifyNumber\n};\nconst expObj = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  format: 'EXP',\n  test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n  resolve: str => parseFloat(str),\n  stringify: ({\n    value\n  }) => Number(value).toExponential()\n};\nconst floatObj = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^[-+]?(?:\\.([0-9]+)|[0-9]+\\.([0-9]*))$/,\n\n  resolve(str, frac1, frac2) {\n    const frac = frac1 || frac2;\n    const node = new resolveSeq.Scalar(parseFloat(str));\n    if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;\n    return node;\n  },\n\n  stringify: resolveSeq.stringifyNumber\n};\nconst core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);\n\n/* global BigInt */\n\nconst intIdentify$1 = value => typeof value === 'bigint' || Number.isInteger(value);\n\nconst stringifyJSON = ({\n  value\n}) => JSON.stringify(value);\n\nconst json = [map, seq, {\n  identify: value => typeof value === 'string',\n  default: true,\n  tag: 'tag:yaml.org,2002:str',\n  resolve: resolveSeq.resolveString,\n  stringify: stringifyJSON\n}, {\n  identify: value => value == null,\n  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n  default: true,\n  tag: 'tag:yaml.org,2002:null',\n  test: /^null$/,\n  resolve: () => null,\n  stringify: stringifyJSON\n}, {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^true|false$/,\n  resolve: str => str === 'true',\n  stringify: stringifyJSON\n}, {\n  identify: intIdentify$1,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  test: /^-?(?:0|[1-9][0-9]*)$/,\n  resolve: str => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),\n  stringify: ({\n    value\n  }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value)\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n  resolve: str => parseFloat(str),\n  stringify: stringifyJSON\n}];\n\njson.scalarFallback = str => {\n  throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n};\n\n/* global BigInt */\n\nconst boolStringify = ({\n  value\n}) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr;\n\nconst intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);\n\nfunction intResolve(sign, src, radix) {\n  let str = src.replace(/_/g, '');\n\n  if (resolveSeq.intOptions.asBigInt) {\n    switch (radix) {\n      case 2:\n        str = `0b${str}`;\n        break;\n\n      case 8:\n        str = `0o${str}`;\n        break;\n\n      case 16:\n        str = `0x${str}`;\n        break;\n    }\n\n    const n = BigInt(str);\n    return sign === '-' ? BigInt(-1) * n : n;\n  }\n\n  const n = parseInt(str, radix);\n  return sign === '-' ? -1 * n : n;\n}\n\nfunction intStringify(node, radix, prefix) {\n  const {\n    value\n  } = node;\n\n  if (intIdentify(value)) {\n    const str = value.toString(radix);\n    return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n  }\n\n  return resolveSeq.stringifyNumber(node);\n}\n\nconst yaml11 = failsafe.concat([{\n  identify: value => value == null,\n  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n  default: true,\n  tag: 'tag:yaml.org,2002:null',\n  test: /^(?:~|[Nn]ull|NULL)?$/,\n  resolve: () => null,\n  options: resolveSeq.nullOptions,\n  stringify: () => resolveSeq.nullOptions.nullStr\n}, {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n  resolve: () => true,\n  options: resolveSeq.boolOptions,\n  stringify: boolStringify\n}, {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,\n  resolve: () => false,\n  options: resolveSeq.boolOptions,\n  stringify: boolStringify\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'BIN',\n  test: /^([-+]?)0b([0-1_]+)$/,\n  resolve: (str, sign, bin) => intResolve(sign, bin, 2),\n  stringify: node => intStringify(node, 2, '0b')\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'OCT',\n  test: /^([-+]?)0([0-7_]+)$/,\n  resolve: (str, sign, oct) => intResolve(sign, oct, 8),\n  stringify: node => intStringify(node, 8, '0')\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  test: /^([-+]?)([0-9][0-9_]*)$/,\n  resolve: (str, sign, abs) => intResolve(sign, abs, 10),\n  stringify: resolveSeq.stringifyNumber\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'HEX',\n  test: /^([-+]?)0x([0-9a-fA-F_]+)$/,\n  resolve: (str, sign, hex) => intResolve(sign, hex, 16),\n  stringify: node => intStringify(node, 16, '0x')\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n  resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,\n  stringify: resolveSeq.stringifyNumber\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  format: 'EXP',\n  test: /^[-+]?([0-9][0-9_]*)?(\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n  resolve: str => parseFloat(str.replace(/_/g, '')),\n  stringify: ({\n    value\n  }) => Number(value).toExponential()\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^[-+]?(?:[0-9][0-9_]*)?\\.([0-9_]*)$/,\n\n  resolve(str, frac) {\n    const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, '')));\n\n    if (frac) {\n      const f = frac.replace(/_/g, '');\n      if (f[f.length - 1] === '0') node.minFractionDigits = f.length;\n    }\n\n    return node;\n  },\n\n  stringify: resolveSeq.stringifyNumber\n}], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp);\n\nconst schemas = {\n  core,\n  failsafe,\n  json,\n  yaml11\n};\nconst tags = {\n  binary: warnings.binary,\n  bool: boolObj,\n  float: floatObj,\n  floatExp: expObj,\n  floatNaN: nanObj,\n  floatTime: warnings.floatTime,\n  int: intObj,\n  intHex: hexObj,\n  intOct: octObj,\n  intTime: warnings.intTime,\n  map,\n  null: nullObj,\n  omap: warnings.omap,\n  pairs: warnings.pairs,\n  seq,\n  set: warnings.set,\n  timestamp: warnings.timestamp\n};\n\nfunction findTagObject(value, tagName, tags) {\n  if (tagName) {\n    const match = tags.filter(t => t.tag === tagName);\n    const tagObj = match.find(t => !t.format) || match[0];\n    if (!tagObj) throw new Error(`Tag ${tagName} not found`);\n    return tagObj;\n  } // TODO: deprecate/remove class check\n\n\n  return tags.find(t => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format);\n}\n\nfunction createNode(value, tagName, ctx) {\n  if (value instanceof resolveSeq.Node) return value;\n  const {\n    defaultPrefix,\n    onTagObj,\n    prevObjects,\n    schema,\n    wrapScalars\n  } = ctx;\n  if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2);\n  let tagObj = findTagObject(value, tagName, schema.tags);\n\n  if (!tagObj) {\n    if (typeof value.toJSON === 'function') value = value.toJSON();\n    if (!value || typeof value !== 'object') return wrapScalars ? new resolveSeq.Scalar(value) : value;\n    tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;\n  }\n\n  if (onTagObj) {\n    onTagObj(tagObj);\n    delete ctx.onTagObj;\n  } // Detect duplicate references to the same object & use Alias nodes for all\n  // after first. The `obj` wrapper allows for circular references to resolve.\n\n\n  const obj = {\n    value: undefined,\n    node: undefined\n  };\n\n  if (value && typeof value === 'object' && prevObjects) {\n    const prev = prevObjects.get(value);\n\n    if (prev) {\n      const alias = new resolveSeq.Alias(prev); // leaves source dirty; must be cleaned by caller\n\n      ctx.aliasNodes.push(alias); // defined along with prevObjects\n\n      return alias;\n    }\n\n    obj.value = value;\n    prevObjects.set(value, obj);\n  }\n\n  obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value;\n  if (tagName && obj.node instanceof resolveSeq.Node) obj.node.tag = tagName;\n  return obj.node;\n}\n\nfunction getSchemaTags(schemas, knownTags, customTags, schemaId) {\n  let tags = schemas[schemaId.replace(/\\W/g, '')]; // 'yaml-1.1' -> 'yaml11'\n\n  if (!tags) {\n    const keys = Object.keys(schemas).map(key => JSON.stringify(key)).join(', ');\n    throw new Error(`Unknown schema \"${schemaId}\"; use one of ${keys}`);\n  }\n\n  if (Array.isArray(customTags)) {\n    for (const tag of customTags) tags = tags.concat(tag);\n  } else if (typeof customTags === 'function') {\n    tags = customTags(tags.slice());\n  }\n\n  for (let i = 0; i < tags.length; ++i) {\n    const tag = tags[i];\n\n    if (typeof tag === 'string') {\n      const tagObj = knownTags[tag];\n\n      if (!tagObj) {\n        const keys = Object.keys(knownTags).map(key => JSON.stringify(key)).join(', ');\n        throw new Error(`Unknown custom tag \"${tag}\"; use one of ${keys}`);\n      }\n\n      tags[i] = tagObj;\n    }\n  }\n\n  return tags;\n}\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\n\nclass Schema {\n  // TODO: remove in v2\n  // TODO: remove in v2\n  constructor({\n    customTags,\n    merge,\n    schema,\n    sortMapEntries,\n    tags: deprecatedCustomTags\n  }) {\n    this.merge = !!merge;\n    this.name = schema;\n    this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;\n    if (!customTags && deprecatedCustomTags) warnings.warnOptionDeprecation('tags', 'customTags');\n    this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);\n  }\n\n  createNode(value, wrapScalars, tagName, ctx) {\n    const baseCtx = {\n      defaultPrefix: Schema.defaultPrefix,\n      schema: this,\n      wrapScalars\n    };\n    const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;\n    return createNode(value, tagName, createCtx);\n  }\n\n  createPair(key, value, ctx) {\n    if (!ctx) ctx = {\n      wrapScalars: true\n    };\n    const k = this.createNode(key, ctx.wrapScalars, null, ctx);\n    const v = this.createNode(value, ctx.wrapScalars, null, ctx);\n    return new resolveSeq.Pair(k, v);\n  }\n\n}\n\nPlainValue._defineProperty(Schema, \"defaultPrefix\", PlainValue.defaultTagPrefix);\n\nPlainValue._defineProperty(Schema, \"defaultTags\", PlainValue.defaultTags);\n\nexports.Schema = Schema;\n","'use strict';\n\nvar parseCst = require('./parse-cst.js');\nvar Document$1 = require('./Document-9b4560a1.js');\nvar Schema = require('./Schema-88e323a7.js');\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar warnings = require('./warnings-1000a372.js');\nrequire('./resolveSeq-d03cb037.js');\n\nfunction createNode(value, wrapScalars = true, tag) {\n  if (tag === undefined && typeof wrapScalars === 'string') {\n    tag = wrapScalars;\n    wrapScalars = true;\n  }\n\n  const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions);\n  const schema = new Schema.Schema(options);\n  return schema.createNode(value, wrapScalars, tag);\n}\n\nclass Document extends Document$1.Document {\n  constructor(options) {\n    super(Object.assign({}, Document$1.defaultOptions, options));\n  }\n\n}\n\nfunction parseAllDocuments(src, options) {\n  const stream = [];\n  let prev;\n\n  for (const cstDoc of parseCst.parse(src)) {\n    const doc = new Document(options);\n    doc.parse(cstDoc, prev);\n    stream.push(doc);\n    prev = doc;\n  }\n\n  return stream;\n}\n\nfunction parseDocument(src, options) {\n  const cst = parseCst.parse(src);\n  const doc = new Document(options).parse(cst[0]);\n\n  if (cst.length > 1) {\n    const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';\n    doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg));\n  }\n\n  return doc;\n}\n\nfunction parse(src, options) {\n  const doc = parseDocument(src, options);\n  doc.warnings.forEach(warning => warnings.warn(warning));\n  if (doc.errors.length > 0) throw doc.errors[0];\n  return doc.toJSON();\n}\n\nfunction stringify(value, options) {\n  const doc = new Document(options);\n  doc.contents = value;\n  return String(doc);\n}\n\nconst YAML = {\n  createNode,\n  defaultOptions: Document$1.defaultOptions,\n  Document,\n  parse,\n  parseAllDocuments,\n  parseCST: parseCst.parse,\n  parseDocument,\n  scalarOptions: Document$1.scalarOptions,\n  stringify\n};\n\nexports.YAML = YAML;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\n\nclass BlankLine extends PlainValue.Node {\n  constructor() {\n    super(PlainValue.Type.BLANK_LINE);\n  }\n  /* istanbul ignore next */\n\n\n  get includesTrailingLines() {\n    // This is never called from anywhere, but if it were,\n    // this is the value it should return.\n    return true;\n  }\n  /**\n   * Parses a blank line from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first \\n character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    this.range = new PlainValue.Range(start, start + 1);\n    return start + 1;\n  }\n\n}\n\nclass CollectionItem extends PlainValue.Node {\n  constructor(type, props) {\n    super(type, props);\n    this.node = null;\n  }\n\n  get includesTrailingLines() {\n    return !!this.node && this.node.includesTrailingLines;\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      parseNode,\n      src\n    } = context;\n    let {\n      atLineStart,\n      lineStart\n    } = context;\n    if (!atLineStart && this.type === PlainValue.Type.SEQ_ITEM) this.error = new PlainValue.YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line');\n    const indent = atLineStart ? start - lineStart : context.indent;\n    let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);\n    let ch = src[offset];\n    const inlineComment = ch === '#';\n    const comments = [];\n    let blankLine = null;\n\n    while (ch === '\\n' || ch === '#') {\n      if (ch === '#') {\n        const end = PlainValue.Node.endOfLine(src, offset + 1);\n        comments.push(new PlainValue.Range(offset, end));\n        offset = end;\n      } else {\n        atLineStart = true;\n        lineStart = offset + 1;\n        const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n\n        if (src[wsEnd] === '\\n' && comments.length === 0) {\n          blankLine = new BlankLine();\n          lineStart = blankLine.parse({\n            src\n          }, lineStart);\n        }\n\n        offset = PlainValue.Node.endOfIndent(src, lineStart);\n      }\n\n      ch = src[offset];\n    }\n\n    if (PlainValue.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue.Type.SEQ_ITEM)) {\n      this.node = parseNode({\n        atLineStart,\n        inCollection: false,\n        indent,\n        lineStart,\n        parent: this\n      }, offset);\n    } else if (ch && lineStart > start + 1) {\n      offset = lineStart - 1;\n    }\n\n    if (this.node) {\n      if (blankLine) {\n        // Only blank lines preceding non-empty nodes are captured. Note that\n        // this means that collection item range start indices do not always\n        // increase monotonically. -- eemeli/yaml#126\n        const items = context.parent.items || context.parent.contents;\n        if (items) items.push(blankLine);\n      }\n\n      if (comments.length) Array.prototype.push.apply(this.props, comments);\n      offset = this.node.range.end;\n    } else {\n      if (inlineComment) {\n        const c = comments[0];\n        this.props.push(c);\n        offset = c.end;\n      } else {\n        offset = PlainValue.Node.endOfLine(src, start + 1);\n      }\n    }\n\n    const end = this.node ? this.node.valueRange.end : offset;\n    this.valueRange = new PlainValue.Range(start, end);\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    return this.node ? this.node.setOrigRanges(cr, offset) : offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      node,\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);\n    return PlainValue.Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass Comment extends PlainValue.Node {\n  constructor() {\n    super(PlainValue.Type.COMMENT);\n  }\n  /**\n   * Parses a comment line from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const offset = this.parseComment(start);\n    this.range = new PlainValue.Range(start, offset);\n    return offset;\n  }\n\n}\n\nfunction grabCollectionEndComments(node) {\n  let cnode = node;\n\n  while (cnode instanceof CollectionItem) cnode = cnode.node;\n\n  if (!(cnode instanceof Collection)) return null;\n  const len = cnode.items.length;\n  let ci = -1;\n\n  for (let i = len - 1; i >= 0; --i) {\n    const n = cnode.items[i];\n\n    if (n.type === PlainValue.Type.COMMENT) {\n      // Keep sufficiently indented comments with preceding node\n      const {\n        indent,\n        lineStart\n      } = n.context;\n      if (indent > 0 && n.range.start >= lineStart + indent) break;\n      ci = i;\n    } else if (n.type === PlainValue.Type.BLANK_LINE) ci = i;else break;\n  }\n\n  if (ci === -1) return null;\n  const ca = cnode.items.splice(ci, len - ci);\n  const prevEnd = ca[0].range.start;\n\n  while (true) {\n    cnode.range.end = prevEnd;\n    if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd;\n    if (cnode === node) break;\n    cnode = cnode.context.parent;\n  }\n\n  return ca;\n}\nclass Collection extends PlainValue.Node {\n  static nextContentHasIndent(src, offset, indent) {\n    const lineStart = PlainValue.Node.endOfLine(src, offset) + 1;\n    offset = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n    const ch = src[offset];\n    if (!ch) return false;\n    if (offset >= lineStart + indent) return true;\n    if (ch !== '#' && ch !== '\\n') return false;\n    return Collection.nextContentHasIndent(src, offset, indent);\n  }\n\n  constructor(firstItem) {\n    super(firstItem.type === PlainValue.Type.SEQ_ITEM ? PlainValue.Type.SEQ : PlainValue.Type.MAP);\n\n    for (let i = firstItem.props.length - 1; i >= 0; --i) {\n      if (firstItem.props[i].start < firstItem.context.lineStart) {\n        // props on previous line are assumed by the collection\n        this.props = firstItem.props.slice(0, i + 1);\n        firstItem.props = firstItem.props.slice(i + 1);\n        const itemRange = firstItem.props[0] || firstItem.valueRange;\n        firstItem.range.start = itemRange.start;\n        break;\n      }\n    }\n\n    this.items = [firstItem];\n    const ec = grabCollectionEndComments(firstItem);\n    if (ec) Array.prototype.push.apply(this.items, ec);\n  }\n\n  get includesTrailingLines() {\n    return this.items.length > 0;\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      parseNode,\n      src\n    } = context; // It's easier to recalculate lineStart here rather than tracking down the\n    // last context from which to read it -- eemeli/yaml#2\n\n    let lineStart = PlainValue.Node.startOfLine(src, start);\n    const firstItem = this.items[0]; // First-item context needs to be correct for later comment handling\n    // -- eemeli/yaml#17\n\n    firstItem.context.parent = this;\n    this.valueRange = PlainValue.Range.copy(firstItem.valueRange);\n    const indent = firstItem.range.start - firstItem.context.lineStart;\n    let offset = start;\n    offset = PlainValue.Node.normalizeOffset(src, offset);\n    let ch = src[offset];\n    let atLineStart = PlainValue.Node.endOfWhiteSpace(src, lineStart) === offset;\n    let prevIncludesTrailingLines = false;\n\n    while (ch) {\n      while (ch === '\\n' || ch === '#') {\n        if (atLineStart && ch === '\\n' && !prevIncludesTrailingLines) {\n          const blankLine = new BlankLine();\n          offset = blankLine.parse({\n            src\n          }, offset);\n          this.valueRange.end = offset;\n\n          if (offset >= src.length) {\n            ch = null;\n            break;\n          }\n\n          this.items.push(blankLine);\n          offset -= 1; // blankLine.parse() consumes terminal newline\n        } else if (ch === '#') {\n          if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) {\n            return offset;\n          }\n\n          const comment = new Comment();\n          offset = comment.parse({\n            indent,\n            lineStart,\n            src\n          }, offset);\n          this.items.push(comment);\n          this.valueRange.end = offset;\n\n          if (offset >= src.length) {\n            ch = null;\n            break;\n          }\n        }\n\n        lineStart = offset + 1;\n        offset = PlainValue.Node.endOfIndent(src, lineStart);\n\n        if (PlainValue.Node.atBlank(src, offset)) {\n          const wsEnd = PlainValue.Node.endOfWhiteSpace(src, offset);\n          const next = src[wsEnd];\n\n          if (!next || next === '\\n' || next === '#') {\n            offset = wsEnd;\n          }\n        }\n\n        ch = src[offset];\n        atLineStart = true;\n      }\n\n      if (!ch) {\n        break;\n      }\n\n      if (offset !== lineStart + indent && (atLineStart || ch !== ':')) {\n        if (offset < lineStart + indent) {\n          if (lineStart > start) offset = lineStart;\n          break;\n        } else if (!this.error) {\n          const msg = 'All collection items must start at the same column';\n          this.error = new PlainValue.YAMLSyntaxError(this, msg);\n        }\n      }\n\n      if (firstItem.type === PlainValue.Type.SEQ_ITEM) {\n        if (ch !== '-') {\n          if (lineStart > start) offset = lineStart;\n          break;\n        }\n      } else if (ch === '-' && !this.error) {\n        // map key may start with -, as long as it's followed by a non-whitespace char\n        const next = src[offset + 1];\n\n        if (!next || next === '\\n' || next === '\\t' || next === ' ') {\n          const msg = 'A collection cannot be both a mapping and a sequence';\n          this.error = new PlainValue.YAMLSyntaxError(this, msg);\n        }\n      }\n\n      const node = parseNode({\n        atLineStart,\n        inCollection: true,\n        indent,\n        lineStart,\n        parent: this\n      }, offset);\n      if (!node) return offset; // at next document start\n\n      this.items.push(node);\n      this.valueRange.end = node.valueRange.end;\n      offset = PlainValue.Node.normalizeOffset(src, node.range.end);\n      ch = src[offset];\n      atLineStart = false;\n      prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range\n      // has advanced to check the current line's indentation level\n      // -- eemeli/yaml#10 & eemeli/yaml#38\n\n      if (ch) {\n        let ls = offset - 1;\n        let prev = src[ls];\n\n        while (prev === ' ' || prev === '\\t') prev = src[--ls];\n\n        if (prev === '\\n') {\n          lineStart = ls + 1;\n          atLineStart = true;\n        }\n      }\n\n      const ec = grabCollectionEndComments(node);\n      if (ec) Array.prototype.push.apply(this.items, ec);\n    }\n\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    this.items.forEach(node => {\n      offset = node.setOrigRanges(cr, offset);\n    });\n    return offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      items,\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    let str = src.slice(range.start, items[0].range.start) + String(items[0]);\n\n    for (let i = 1; i < items.length; ++i) {\n      const item = items[i];\n      const {\n        atLineStart,\n        indent\n      } = item.context;\n      if (atLineStart) for (let i = 0; i < indent; ++i) str += ' ';\n      str += String(item);\n    }\n\n    return PlainValue.Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass Directive extends PlainValue.Node {\n  constructor() {\n    super(PlainValue.Type.DIRECTIVE);\n    this.name = null;\n  }\n\n  get parameters() {\n    const raw = this.rawValue;\n    return raw ? raw.trim().split(/[ \\t]+/) : [];\n  }\n\n  parseName(start) {\n    const {\n      src\n    } = this.context;\n    let offset = start;\n    let ch = src[offset];\n\n    while (ch && ch !== '\\n' && ch !== '\\t' && ch !== ' ') ch = src[offset += 1];\n\n    this.name = src.slice(start, offset);\n    return offset;\n  }\n\n  parseParameters(start) {\n    const {\n      src\n    } = this.context;\n    let offset = start;\n    let ch = src[offset];\n\n    while (ch && ch !== '\\n' && ch !== '#') ch = src[offset += 1];\n\n    this.valueRange = new PlainValue.Range(start, offset);\n    return offset;\n  }\n\n  parse(context, start) {\n    this.context = context;\n    let offset = this.parseName(start + 1);\n    offset = this.parseParameters(offset);\n    offset = this.parseComment(offset);\n    this.range = new PlainValue.Range(start, offset);\n    return offset;\n  }\n\n}\n\nclass Document extends PlainValue.Node {\n  static startCommentOrEndBlankLine(src, start) {\n    const offset = PlainValue.Node.endOfWhiteSpace(src, start);\n    const ch = src[offset];\n    return ch === '#' || ch === '\\n' ? offset : start;\n  }\n\n  constructor() {\n    super(PlainValue.Type.DOCUMENT);\n    this.directives = null;\n    this.contents = null;\n    this.directivesEndMarker = null;\n    this.documentEndMarker = null;\n  }\n\n  parseDirectives(start) {\n    const {\n      src\n    } = this.context;\n    this.directives = [];\n    let atLineStart = true;\n    let hasDirectives = false;\n    let offset = start;\n\n    while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DIRECTIVES_END)) {\n      offset = Document.startCommentOrEndBlankLine(src, offset);\n\n      switch (src[offset]) {\n        case '\\n':\n          if (atLineStart) {\n            const blankLine = new BlankLine();\n            offset = blankLine.parse({\n              src\n            }, offset);\n\n            if (offset < src.length) {\n              this.directives.push(blankLine);\n            }\n          } else {\n            offset += 1;\n            atLineStart = true;\n          }\n\n          break;\n\n        case '#':\n          {\n            const comment = new Comment();\n            offset = comment.parse({\n              src\n            }, offset);\n            this.directives.push(comment);\n            atLineStart = false;\n          }\n          break;\n\n        case '%':\n          {\n            const directive = new Directive();\n            offset = directive.parse({\n              parent: this,\n              src\n            }, offset);\n            this.directives.push(directive);\n            hasDirectives = true;\n            atLineStart = false;\n          }\n          break;\n\n        default:\n          if (hasDirectives) {\n            this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line');\n          } else if (this.directives.length > 0) {\n            this.contents = this.directives;\n            this.directives = [];\n          }\n\n          return offset;\n      }\n    }\n\n    if (src[offset]) {\n      this.directivesEndMarker = new PlainValue.Range(offset, offset + 3);\n      return offset + 3;\n    }\n\n    if (hasDirectives) {\n      this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line');\n    } else if (this.directives.length > 0) {\n      this.contents = this.directives;\n      this.directives = [];\n    }\n\n    return offset;\n  }\n\n  parseContents(start) {\n    const {\n      parseNode,\n      src\n    } = this.context;\n    if (!this.contents) this.contents = [];\n    let lineStart = start;\n\n    while (src[lineStart - 1] === '-') lineStart -= 1;\n\n    let offset = PlainValue.Node.endOfWhiteSpace(src, start);\n    let atLineStart = lineStart === start;\n    this.valueRange = new PlainValue.Range(offset);\n\n    while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DOCUMENT_END)) {\n      switch (src[offset]) {\n        case '\\n':\n          if (atLineStart) {\n            const blankLine = new BlankLine();\n            offset = blankLine.parse({\n              src\n            }, offset);\n\n            if (offset < src.length) {\n              this.contents.push(blankLine);\n            }\n          } else {\n            offset += 1;\n            atLineStart = true;\n          }\n\n          lineStart = offset;\n          break;\n\n        case '#':\n          {\n            const comment = new Comment();\n            offset = comment.parse({\n              src\n            }, offset);\n            this.contents.push(comment);\n            atLineStart = false;\n          }\n          break;\n\n        default:\n          {\n            const iEnd = PlainValue.Node.endOfIndent(src, offset);\n            const context = {\n              atLineStart,\n              indent: -1,\n              inFlow: false,\n              inCollection: false,\n              lineStart,\n              parent: this\n            };\n            const node = parseNode(context, iEnd);\n            if (!node) return this.valueRange.end = iEnd; // at next document start\n\n            this.contents.push(node);\n            offset = node.range.end;\n            atLineStart = false;\n            const ec = grabCollectionEndComments(node);\n            if (ec) Array.prototype.push.apply(this.contents, ec);\n          }\n      }\n\n      offset = Document.startCommentOrEndBlankLine(src, offset);\n    }\n\n    this.valueRange.end = offset;\n\n    if (src[offset]) {\n      this.documentEndMarker = new PlainValue.Range(offset, offset + 3);\n      offset += 3;\n\n      if (src[offset]) {\n        offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n\n        if (src[offset] === '#') {\n          const comment = new Comment();\n          offset = comment.parse({\n            src\n          }, offset);\n          this.contents.push(comment);\n        }\n\n        switch (src[offset]) {\n          case '\\n':\n            offset += 1;\n            break;\n\n          case undefined:\n            break;\n\n          default:\n            this.error = new PlainValue.YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix');\n        }\n      }\n    }\n\n    return offset;\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    context.root = this;\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM\n\n    offset = this.parseDirectives(offset);\n    offset = this.parseContents(offset);\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    this.directives.forEach(node => {\n      offset = node.setOrigRanges(cr, offset);\n    });\n    if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset);\n    this.contents.forEach(node => {\n      offset = node.setOrigRanges(cr, offset);\n    });\n    if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset);\n    return offset;\n  }\n\n  toString() {\n    const {\n      contents,\n      directives,\n      value\n    } = this;\n    if (value != null) return value;\n    let str = directives.join('');\n\n    if (contents.length > 0) {\n      if (directives.length > 0 || contents[0].type === PlainValue.Type.COMMENT) str += '---\\n';\n      str += contents.join('');\n    }\n\n    if (str[str.length - 1] !== '\\n') str += '\\n';\n    return str;\n  }\n\n}\n\nclass Alias extends PlainValue.Node {\n  /**\n   * Parses an *alias from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = PlainValue.Node.endOfIdentifier(src, start + 1);\n    this.valueRange = new PlainValue.Range(start + 1, offset);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    return offset;\n  }\n\n}\n\nconst Chomp = {\n  CLIP: 'CLIP',\n  KEEP: 'KEEP',\n  STRIP: 'STRIP'\n};\nclass BlockValue extends PlainValue.Node {\n  constructor(type, props) {\n    super(type, props);\n    this.blockIndent = null;\n    this.chomping = Chomp.CLIP;\n    this.header = null;\n  }\n\n  get includesTrailingLines() {\n    return this.chomping === Chomp.KEEP;\n  }\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    let {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      indent,\n      src\n    } = this.context;\n    if (this.valueRange.isEmpty()) return '';\n    let lastNewLine = null;\n    let ch = src[end - 1];\n\n    while (ch === '\\n' || ch === '\\t' || ch === ' ') {\n      end -= 1;\n\n      if (end <= start) {\n        if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens\n      }\n\n      if (ch === '\\n') lastNewLine = end;\n      ch = src[end - 1];\n    }\n\n    let keepStart = end + 1;\n\n    if (lastNewLine) {\n      if (this.chomping === Chomp.KEEP) {\n        keepStart = lastNewLine;\n        end = this.valueRange.end;\n      } else {\n        end = lastNewLine;\n      }\n    }\n\n    const bi = indent + this.blockIndent;\n    const folded = this.type === PlainValue.Type.BLOCK_FOLDED;\n    let atStart = true;\n    let str = '';\n    let sep = '';\n    let prevMoreIndented = false;\n\n    for (let i = start; i < end; ++i) {\n      for (let j = 0; j < bi; ++j) {\n        if (src[i] !== ' ') break;\n        i += 1;\n      }\n\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        if (sep === '\\n') str += '\\n';else sep = '\\n';\n      } else {\n        const lineEnd = PlainValue.Node.endOfLine(src, i);\n        const line = src.slice(i, lineEnd);\n        i = lineEnd;\n\n        if (folded && (ch === ' ' || ch === '\\t') && i < keepStart) {\n          if (sep === ' ') sep = '\\n';else if (!prevMoreIndented && !atStart && sep === '\\n') sep = '\\n\\n';\n          str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '')\n\n          sep = lineEnd < end && src[lineEnd] || '';\n          prevMoreIndented = true;\n        } else {\n          str += sep + line;\n          sep = folded && i < keepStart ? ' ' : '\\n';\n          prevMoreIndented = false;\n        }\n\n        if (atStart && line !== '') atStart = false;\n      }\n    }\n\n    return this.chomping === Chomp.STRIP ? str : str + '\\n';\n  }\n\n  parseBlockHeader(start) {\n    const {\n      src\n    } = this.context;\n    let offset = start + 1;\n    let bi = '';\n\n    while (true) {\n      const ch = src[offset];\n\n      switch (ch) {\n        case '-':\n          this.chomping = Chomp.STRIP;\n          break;\n\n        case '+':\n          this.chomping = Chomp.KEEP;\n          break;\n\n        case '0':\n        case '1':\n        case '2':\n        case '3':\n        case '4':\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          bi += ch;\n          break;\n\n        default:\n          this.blockIndent = Number(bi) || null;\n          this.header = new PlainValue.Range(start, offset);\n          return offset;\n      }\n\n      offset += 1;\n    }\n  }\n\n  parseBlockValue(start) {\n    const {\n      indent,\n      src\n    } = this.context;\n    const explicit = !!this.blockIndent;\n    let offset = start;\n    let valueEnd = start;\n    let minBlockIndent = 1;\n\n    for (let ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n      offset += 1;\n      if (PlainValue.Node.atDocumentBoundary(src, offset)) break;\n      const end = PlainValue.Node.endOfBlockIndent(src, indent, offset); // should not include tab?\n\n      if (end === null) break;\n      const ch = src[end];\n      const lineIndent = end - (offset + indent);\n\n      if (!this.blockIndent) {\n        // no explicit block indent, none yet detected\n        if (src[end] !== '\\n') {\n          // first line with non-whitespace content\n          if (lineIndent < minBlockIndent) {\n            const msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n            this.error = new PlainValue.YAMLSemanticError(this, msg);\n          }\n\n          this.blockIndent = lineIndent;\n        } else if (lineIndent > minBlockIndent) {\n          // empty line with more whitespace\n          minBlockIndent = lineIndent;\n        }\n      } else if (ch && ch !== '\\n' && lineIndent < this.blockIndent) {\n        if (src[end] === '#') break;\n\n        if (!this.error) {\n          const src = explicit ? 'explicit indentation indicator' : 'first line';\n          const msg = `Block scalars must not be less indented than their ${src}`;\n          this.error = new PlainValue.YAMLSemanticError(this, msg);\n        }\n      }\n\n      if (src[end] === '\\n') {\n        offset = end;\n      } else {\n        offset = valueEnd = PlainValue.Node.endOfLine(src, end);\n      }\n    }\n\n    if (this.chomping !== Chomp.KEEP) {\n      offset = src[valueEnd] ? valueEnd + 1 : valueEnd;\n    }\n\n    this.valueRange = new PlainValue.Range(start + 1, offset);\n    return offset;\n  }\n  /**\n   * Parses a block value from the source\n   *\n   * Accepted forms are:\n   * ```\n   * BS\n   * block\n   * lines\n   *\n   * BS #comment\n   * block\n   * lines\n   * ```\n   * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines\n   * are empty or have an indent level greater than `indent`.\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this block\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = this.parseBlockHeader(start);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    offset = this.parseBlockValue(offset);\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    return this.header ? this.header.setOrigRange(cr, offset) : offset;\n  }\n\n}\n\nclass FlowCollection extends PlainValue.Node {\n  constructor(type, props) {\n    super(type, props);\n    this.items = null;\n  }\n\n  prevNodeIsJsonLike(idx = this.items.length) {\n    const node = this.items[idx - 1];\n    return !!node && (node.jsonLike || node.type === PlainValue.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      parseNode,\n      src\n    } = context;\n    let {\n      indent,\n      lineStart\n    } = context;\n    let char = src[start]; // { or [\n\n    this.items = [{\n      char,\n      offset: start\n    }];\n    let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);\n    char = src[offset];\n\n    while (char && char !== ']' && char !== '}') {\n      switch (char) {\n        case '\\n':\n          {\n            lineStart = offset + 1;\n            const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n\n            if (src[wsEnd] === '\\n') {\n              const blankLine = new BlankLine();\n              lineStart = blankLine.parse({\n                src\n              }, lineStart);\n              this.items.push(blankLine);\n            }\n\n            offset = PlainValue.Node.endOfIndent(src, lineStart);\n\n            if (offset <= lineStart + indent) {\n              char = src[offset];\n\n              if (offset < lineStart + indent || char !== ']' && char !== '}') {\n                const msg = 'Insufficient indentation in flow collection';\n                this.error = new PlainValue.YAMLSemanticError(this, msg);\n              }\n            }\n          }\n          break;\n\n        case ',':\n          {\n            this.items.push({\n              char,\n              offset\n            });\n            offset += 1;\n          }\n          break;\n\n        case '#':\n          {\n            const comment = new Comment();\n            offset = comment.parse({\n              src\n            }, offset);\n            this.items.push(comment);\n          }\n          break;\n\n        case '?':\n        case ':':\n          {\n            const next = src[offset + 1];\n\n            if (next === '\\n' || next === '\\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace\n            char === ':' && this.prevNodeIsJsonLike()) {\n              this.items.push({\n                char,\n                offset\n              });\n              offset += 1;\n              break;\n            }\n          }\n        // fallthrough\n\n        default:\n          {\n            const node = parseNode({\n              atLineStart: false,\n              inCollection: false,\n              inFlow: true,\n              indent: -1,\n              lineStart,\n              parent: this\n            }, offset);\n\n            if (!node) {\n              // at next document start\n              this.valueRange = new PlainValue.Range(start, offset);\n              return offset;\n            }\n\n            this.items.push(node);\n            offset = PlainValue.Node.normalizeOffset(src, node.range.end);\n          }\n      }\n\n      offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n      char = src[offset];\n    }\n\n    this.valueRange = new PlainValue.Range(start, offset + 1);\n\n    if (char) {\n      this.items.push({\n        char,\n        offset\n      });\n      offset = PlainValue.Node.endOfWhiteSpace(src, offset + 1);\n      offset = this.parseComment(offset);\n    }\n\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    this.items.forEach(node => {\n      if (node instanceof PlainValue.Node) {\n        offset = node.setOrigRanges(cr, offset);\n      } else if (cr.length === 0) {\n        node.origOffset = node.offset;\n      } else {\n        let i = offset;\n\n        while (i < cr.length) {\n          if (cr[i] > node.offset) break;else ++i;\n        }\n\n        node.origOffset = node.offset + i;\n        offset = i;\n      }\n    });\n    return offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      items,\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    const nodes = items.filter(item => item instanceof PlainValue.Node);\n    let str = '';\n    let prevEnd = range.start;\n    nodes.forEach(node => {\n      const prefix = src.slice(prevEnd, node.range.start);\n      prevEnd = node.range.end;\n      str += prefix + String(node);\n\n      if (str[str.length - 1] === '\\n' && src[prevEnd - 1] !== '\\n' && src[prevEnd] === '\\n') {\n        // Comment range does not include the terminal newline, but its\n        // stringified value does. Without this fix, newlines at comment ends\n        // get duplicated.\n        prevEnd += 1;\n      }\n    });\n    str += src.slice(prevEnd, range.end);\n    return PlainValue.Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass QuoteDouble extends PlainValue.Node {\n  static endOfQuote(src, offset) {\n    let ch = src[offset];\n\n    while (ch && ch !== '\"') {\n      offset += ch === '\\\\' ? 2 : 1;\n      ch = src[offset];\n    }\n\n    return offset + 1;\n  }\n  /**\n   * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n   */\n\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    const errors = [];\n    const {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      indent,\n      src\n    } = this.context;\n    if (src[end - 1] !== '\"') errors.push(new PlainValue.YAMLSyntaxError(this, 'Missing closing \"quote')); // Using String#replace is too painful with escaped newlines preceded by\n    // escaped backslashes; also, this should be faster.\n\n    let str = '';\n\n    for (let i = start + 1; i < end - 1; ++i) {\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n        const {\n          fold,\n          offset,\n          error\n        } = PlainValue.Node.foldNewline(src, i, indent);\n        str += fold;\n        i = offset;\n        if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));\n      } else if (ch === '\\\\') {\n        i += 1;\n\n        switch (src[i]) {\n          case '0':\n            str += '\\0';\n            break;\n          // null character\n\n          case 'a':\n            str += '\\x07';\n            break;\n          // bell character\n\n          case 'b':\n            str += '\\b';\n            break;\n          // backspace\n\n          case 'e':\n            str += '\\x1b';\n            break;\n          // escape character\n\n          case 'f':\n            str += '\\f';\n            break;\n          // form feed\n\n          case 'n':\n            str += '\\n';\n            break;\n          // line feed\n\n          case 'r':\n            str += '\\r';\n            break;\n          // carriage return\n\n          case 't':\n            str += '\\t';\n            break;\n          // horizontal tab\n\n          case 'v':\n            str += '\\v';\n            break;\n          // vertical tab\n\n          case 'N':\n            str += '\\u0085';\n            break;\n          // Unicode next line\n\n          case '_':\n            str += '\\u00a0';\n            break;\n          // Unicode non-breaking space\n\n          case 'L':\n            str += '\\u2028';\n            break;\n          // Unicode line separator\n\n          case 'P':\n            str += '\\u2029';\n            break;\n          // Unicode paragraph separator\n\n          case ' ':\n            str += ' ';\n            break;\n\n          case '\"':\n            str += '\"';\n            break;\n\n          case '/':\n            str += '/';\n            break;\n\n          case '\\\\':\n            str += '\\\\';\n            break;\n\n          case '\\t':\n            str += '\\t';\n            break;\n\n          case 'x':\n            str += this.parseCharCode(i + 1, 2, errors);\n            i += 2;\n            break;\n\n          case 'u':\n            str += this.parseCharCode(i + 1, 4, errors);\n            i += 4;\n            break;\n\n          case 'U':\n            str += this.parseCharCode(i + 1, 8, errors);\n            i += 8;\n            break;\n\n          case '\\n':\n            // skip escaped newlines, but still trim the following line\n            while (src[i + 1] === ' ' || src[i + 1] === '\\t') i += 1;\n\n            break;\n\n          default:\n            errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));\n            str += '\\\\' + src[i];\n        }\n      } else if (ch === ' ' || ch === '\\t') {\n        // trim trailing whitespace\n        const wsStart = i;\n        let next = src[i + 1];\n\n        while (next === ' ' || next === '\\t') {\n          i += 1;\n          next = src[i + 1];\n        }\n\n        if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n      } else {\n        str += ch;\n      }\n    }\n\n    return errors.length > 0 ? {\n      errors,\n      str\n    } : str;\n  }\n\n  parseCharCode(offset, length, errors) {\n    const {\n      src\n    } = this.context;\n    const cc = src.substr(offset, length);\n    const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n    const code = ok ? parseInt(cc, 16) : NaN;\n\n    if (isNaN(code)) {\n      errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));\n      return src.substr(offset - 2, length + 2);\n    }\n\n    return String.fromCodePoint(code);\n  }\n  /**\n   * Parses a \"double quoted\" value from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = QuoteDouble.endOfQuote(src, start + 1);\n    this.valueRange = new PlainValue.Range(start, offset);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    return offset;\n  }\n\n}\n\nclass QuoteSingle extends PlainValue.Node {\n  static endOfQuote(src, offset) {\n    let ch = src[offset];\n\n    while (ch) {\n      if (ch === \"'\") {\n        if (src[offset + 1] !== \"'\") break;\n        ch = src[offset += 2];\n      } else {\n        ch = src[offset += 1];\n      }\n    }\n\n    return offset + 1;\n  }\n  /**\n   * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n   */\n\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    const errors = [];\n    const {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      indent,\n      src\n    } = this.context;\n    if (src[end - 1] !== \"'\") errors.push(new PlainValue.YAMLSyntaxError(this, \"Missing closing 'quote\"));\n    let str = '';\n\n    for (let i = start + 1; i < end - 1; ++i) {\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n        const {\n          fold,\n          offset,\n          error\n        } = PlainValue.Node.foldNewline(src, i, indent);\n        str += fold;\n        i = offset;\n        if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));\n      } else if (ch === \"'\") {\n        str += ch;\n        i += 1;\n        if (src[i] !== \"'\") errors.push(new PlainValue.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));\n      } else if (ch === ' ' || ch === '\\t') {\n        // trim trailing whitespace\n        const wsStart = i;\n        let next = src[i + 1];\n\n        while (next === ' ' || next === '\\t') {\n          i += 1;\n          next = src[i + 1];\n        }\n\n        if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n      } else {\n        str += ch;\n      }\n    }\n\n    return errors.length > 0 ? {\n      errors,\n      str\n    } : str;\n  }\n  /**\n   * Parses a 'single quoted' value from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = QuoteSingle.endOfQuote(src, start + 1);\n    this.valueRange = new PlainValue.Range(start, offset);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    return offset;\n  }\n\n}\n\nfunction createNewNode(type, props) {\n  switch (type) {\n    case PlainValue.Type.ALIAS:\n      return new Alias(type, props);\n\n    case PlainValue.Type.BLOCK_FOLDED:\n    case PlainValue.Type.BLOCK_LITERAL:\n      return new BlockValue(type, props);\n\n    case PlainValue.Type.FLOW_MAP:\n    case PlainValue.Type.FLOW_SEQ:\n      return new FlowCollection(type, props);\n\n    case PlainValue.Type.MAP_KEY:\n    case PlainValue.Type.MAP_VALUE:\n    case PlainValue.Type.SEQ_ITEM:\n      return new CollectionItem(type, props);\n\n    case PlainValue.Type.COMMENT:\n    case PlainValue.Type.PLAIN:\n      return new PlainValue.PlainValue(type, props);\n\n    case PlainValue.Type.QUOTE_DOUBLE:\n      return new QuoteDouble(type, props);\n\n    case PlainValue.Type.QUOTE_SINGLE:\n      return new QuoteSingle(type, props);\n\n    /* istanbul ignore next */\n\n    default:\n      return null;\n    // should never happen\n  }\n}\n/**\n * @param {boolean} atLineStart - Node starts at beginning of line\n * @param {boolean} inFlow - true if currently in a flow context\n * @param {boolean} inCollection - true if currently in a collection context\n * @param {number} indent - Current level of indentation\n * @param {number} lineStart - Start of the current line\n * @param {Node} parent - The parent of the node\n * @param {string} src - Source of the YAML document\n */\n\n\nclass ParseContext {\n  static parseType(src, offset, inFlow) {\n    switch (src[offset]) {\n      case '*':\n        return PlainValue.Type.ALIAS;\n\n      case '>':\n        return PlainValue.Type.BLOCK_FOLDED;\n\n      case '|':\n        return PlainValue.Type.BLOCK_LITERAL;\n\n      case '{':\n        return PlainValue.Type.FLOW_MAP;\n\n      case '[':\n        return PlainValue.Type.FLOW_SEQ;\n\n      case '?':\n        return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_KEY : PlainValue.Type.PLAIN;\n\n      case ':':\n        return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_VALUE : PlainValue.Type.PLAIN;\n\n      case '-':\n        return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.SEQ_ITEM : PlainValue.Type.PLAIN;\n\n      case '\"':\n        return PlainValue.Type.QUOTE_DOUBLE;\n\n      case \"'\":\n        return PlainValue.Type.QUOTE_SINGLE;\n\n      default:\n        return PlainValue.Type.PLAIN;\n    }\n  }\n\n  constructor(orig = {}, {\n    atLineStart,\n    inCollection,\n    inFlow,\n    indent,\n    lineStart,\n    parent\n  } = {}) {\n    PlainValue._defineProperty(this, \"parseNode\", (overlay, start) => {\n      if (PlainValue.Node.atDocumentBoundary(this.src, start)) return null;\n      const context = new ParseContext(this, overlay);\n      const {\n        props,\n        type,\n        valueStart\n      } = context.parseProps(start);\n      const node = createNewNode(type, props);\n      let offset = node.parse(context, valueStart);\n      node.range = new PlainValue.Range(start, offset);\n      /* istanbul ignore if */\n\n      if (offset <= start) {\n        // This should never happen, but if it does, let's make sure to at least\n        // step one character forward to avoid a busy loop.\n        node.error = new Error(`Node#parse consumed no characters`);\n        node.error.parseEnd = offset;\n        node.error.source = node;\n        node.range.end = start + 1;\n      }\n\n      if (context.nodeStartsCollection(node)) {\n        if (!node.error && !context.atLineStart && context.parent.type === PlainValue.Type.DOCUMENT) {\n          node.error = new PlainValue.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');\n        }\n\n        const collection = new Collection(node);\n        offset = collection.parse(new ParseContext(context), offset);\n        collection.range = new PlainValue.Range(start, offset);\n        return collection;\n      }\n\n      return node;\n    });\n\n    this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;\n    this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;\n    this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;\n    this.indent = indent != null ? indent : orig.indent;\n    this.lineStart = lineStart != null ? lineStart : orig.lineStart;\n    this.parent = parent != null ? parent : orig.parent || {};\n    this.root = orig.root;\n    this.src = orig.src;\n  }\n\n  nodeStartsCollection(node) {\n    const {\n      inCollection,\n      inFlow,\n      src\n    } = this;\n    if (inCollection || inFlow) return false;\n    if (node instanceof CollectionItem) return true; // check for implicit key\n\n    let offset = node.range.end;\n    if (src[offset] === '\\n' || src[offset - 1] === '\\n') return false;\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    return src[offset] === ':';\n  } // Anchor and tag are before type, which determines the node implementation\n  // class; hence this intermediate step.\n\n\n  parseProps(offset) {\n    const {\n      inFlow,\n      parent,\n      src\n    } = this;\n    const props = [];\n    let lineHasProps = false;\n    offset = this.atLineStart ? PlainValue.Node.endOfIndent(src, offset) : PlainValue.Node.endOfWhiteSpace(src, offset);\n    let ch = src[offset];\n\n    while (ch === PlainValue.Char.ANCHOR || ch === PlainValue.Char.COMMENT || ch === PlainValue.Char.TAG || ch === '\\n') {\n      if (ch === '\\n') {\n        let inEnd = offset;\n        let lineStart;\n\n        do {\n          lineStart = inEnd + 1;\n          inEnd = PlainValue.Node.endOfIndent(src, lineStart);\n        } while (src[inEnd] === '\\n');\n\n        const indentDiff = inEnd - (lineStart + this.indent);\n        const noIndicatorAsIndent = parent.type === PlainValue.Type.SEQ_ITEM && parent.context.atLineStart;\n        if (src[inEnd] !== '#' && !PlainValue.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;\n        this.atLineStart = true;\n        this.lineStart = lineStart;\n        lineHasProps = false;\n        offset = inEnd;\n      } else if (ch === PlainValue.Char.COMMENT) {\n        const end = PlainValue.Node.endOfLine(src, offset + 1);\n        props.push(new PlainValue.Range(offset, end));\n        offset = end;\n      } else {\n        let end = PlainValue.Node.endOfIdentifier(src, offset + 1);\n\n        if (ch === PlainValue.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+,\\d\\d\\d\\d(-\\d\\d){0,2}\\/\\S/.test(src.slice(offset + 1, end + 13))) {\n          // Let's presume we're dealing with a YAML 1.0 domain tag here, rather\n          // than an empty but 'foo.bar' private-tagged node in a flow collection\n          // followed without whitespace by a plain string starting with a year\n          // or date divided by something.\n          end = PlainValue.Node.endOfIdentifier(src, end + 5);\n        }\n\n        props.push(new PlainValue.Range(offset, end));\n        lineHasProps = true;\n        offset = PlainValue.Node.endOfWhiteSpace(src, end);\n      }\n\n      ch = src[offset];\n    } // '- &a : b' has an anchor on an empty node\n\n\n    if (lineHasProps && ch === ':' && PlainValue.Node.atBlank(src, offset + 1, true)) offset -= 1;\n    const type = ParseContext.parseType(src, offset, inFlow);\n    return {\n      props,\n      type,\n      valueStart: offset\n    };\n  }\n  /**\n   * Parses a node from the source\n   * @param {ParseContext} overlay\n   * @param {number} start - Index of first non-whitespace character for the node\n   * @returns {?Node} - null if at a document boundary\n   */\n\n\n}\n\n// Published as 'yaml/parse-cst'\nfunction parse(src) {\n  const cr = [];\n\n  if (src.indexOf('\\r') !== -1) {\n    src = src.replace(/\\r\\n?/g, (match, offset) => {\n      if (match.length > 1) cr.push(offset);\n      return '\\n';\n    });\n  }\n\n  const documents = [];\n  let offset = 0;\n\n  do {\n    const doc = new Document();\n    const context = new ParseContext({\n      src\n    });\n    offset = doc.parse(context, offset);\n    documents.push(doc);\n  } while (offset < src.length);\n\n  documents.setOrigRanges = () => {\n    if (cr.length === 0) return false;\n\n    for (let i = 1; i < cr.length; ++i) cr[i] -= i;\n\n    let crOffset = 0;\n\n    for (let i = 0; i < documents.length; ++i) {\n      crOffset = documents[i].setOrigRanges(cr, crOffset);\n    }\n\n    cr.splice(0, cr.length);\n    return true;\n  };\n\n  documents.toString = () => documents.join('...\\n');\n\n  return documents;\n}\n\nexports.parse = parse;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\n\nfunction addCommentBefore(str, indent, comment) {\n  if (!comment) return str;\n  const cc = comment.replace(/[\\s\\S]^/gm, `$&${indent}#`);\n  return `#${cc}\\n${indent}${str}`;\n}\nfunction addComment(str, indent, comment) {\n  return !comment ? str : comment.indexOf('\\n') === -1 ? `${str} #${comment}` : `${str}\\n` + comment.replace(/^/gm, `${indent || ''}#`);\n}\n\nclass Node {}\n\nfunction toJSON(value, arg, ctx) {\n  if (Array.isArray(value)) return value.map((v, i) => toJSON(v, String(i), ctx));\n\n  if (value && typeof value.toJSON === 'function') {\n    const anchor = ctx && ctx.anchors && ctx.anchors.get(value);\n    if (anchor) ctx.onCreate = res => {\n      anchor.res = res;\n      delete ctx.onCreate;\n    };\n    const res = value.toJSON(arg, ctx);\n    if (anchor && ctx.onCreate) ctx.onCreate(res);\n    return res;\n  }\n\n  if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value);\n  return value;\n}\n\nclass Scalar extends Node {\n  constructor(value) {\n    super();\n    this.value = value;\n  }\n\n  toJSON(arg, ctx) {\n    return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx);\n  }\n\n  toString() {\n    return String(this.value);\n  }\n\n}\n\nfunction collectionFromPath(schema, path, value) {\n  let v = value;\n\n  for (let i = path.length - 1; i >= 0; --i) {\n    const k = path[i];\n\n    if (Number.isInteger(k) && k >= 0) {\n      const a = [];\n      a[k] = v;\n      v = a;\n    } else {\n      const o = {};\n      Object.defineProperty(o, k, {\n        value: v,\n        writable: true,\n        enumerable: true,\n        configurable: true\n      });\n      v = o;\n    }\n  }\n\n  return schema.createNode(v, false);\n} // null, undefined, or an empty non-string iterable (e.g. [])\n\n\nconst isEmptyPath = path => path == null || typeof path === 'object' && path[Symbol.iterator]().next().done;\nclass Collection extends Node {\n  constructor(schema) {\n    super();\n\n    PlainValue._defineProperty(this, \"items\", []);\n\n    this.schema = schema;\n  }\n\n  addIn(path, value) {\n    if (isEmptyPath(path)) this.add(value);else {\n      const [key, ...rest] = path;\n      const node = this.get(key, true);\n      if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n    }\n  }\n\n  deleteIn([key, ...rest]) {\n    if (rest.length === 0) return this.delete(key);\n    const node = this.get(key, true);\n    if (node instanceof Collection) return node.deleteIn(rest);else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n  }\n\n  getIn([key, ...rest], keepScalar) {\n    const node = this.get(key, true);\n    if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined;\n  }\n\n  hasAllNullValues() {\n    return this.items.every(node => {\n      if (!node || node.type !== 'PAIR') return false;\n      const n = node.value;\n      return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag;\n    });\n  }\n\n  hasIn([key, ...rest]) {\n    if (rest.length === 0) return this.has(key);\n    const node = this.get(key, true);\n    return node instanceof Collection ? node.hasIn(rest) : false;\n  }\n\n  setIn([key, ...rest], value) {\n    if (rest.length === 0) {\n      this.set(key, value);\n    } else {\n      const node = this.get(key, true);\n      if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n    }\n  } // overridden in implementations\n\n  /* istanbul ignore next */\n\n\n  toJSON() {\n    return null;\n  }\n\n  toString(ctx, {\n    blockItem,\n    flowChars,\n    isMap,\n    itemIndent\n  }, onComment, onChompKeep) {\n    const {\n      indent,\n      indentStep,\n      stringify\n    } = ctx;\n    const inFlow = this.type === PlainValue.Type.FLOW_MAP || this.type === PlainValue.Type.FLOW_SEQ || ctx.inFlow;\n    if (inFlow) itemIndent += indentStep;\n    const allNullValues = isMap && this.hasAllNullValues();\n    ctx = Object.assign({}, ctx, {\n      allNullValues,\n      indent: itemIndent,\n      inFlow,\n      type: null\n    });\n    let chompKeep = false;\n    let hasItemWithNewLine = false;\n    const nodes = this.items.reduce((nodes, item, i) => {\n      let comment;\n\n      if (item) {\n        if (!chompKeep && item.spaceBefore) nodes.push({\n          type: 'comment',\n          str: ''\n        });\n        if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(line => {\n          nodes.push({\n            type: 'comment',\n            str: `#${line}`\n          });\n        });\n        if (item.comment) comment = item.comment;\n        if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true;\n      }\n\n      chompKeep = false;\n      let str = stringify(item, ctx, () => comment = null, () => chompKeep = true);\n      if (inFlow && !hasItemWithNewLine && str.includes('\\n')) hasItemWithNewLine = true;\n      if (inFlow && i < this.items.length - 1) str += ',';\n      str = addComment(str, itemIndent, comment);\n      if (chompKeep && (comment || inFlow)) chompKeep = false;\n      nodes.push({\n        type: 'item',\n        str\n      });\n      return nodes;\n    }, []);\n    let str;\n\n    if (nodes.length === 0) {\n      str = flowChars.start + flowChars.end;\n    } else if (inFlow) {\n      const {\n        start,\n        end\n      } = flowChars;\n      const strings = nodes.map(n => n.str);\n\n      if (hasItemWithNewLine || strings.reduce((sum, str) => sum + str.length + 2, 2) > Collection.maxFlowStringSingleLineLength) {\n        str = start;\n\n        for (const s of strings) {\n          str += s ? `\\n${indentStep}${indent}${s}` : '\\n';\n        }\n\n        str += `\\n${indent}${end}`;\n      } else {\n        str = `${start} ${strings.join(' ')} ${end}`;\n      }\n    } else {\n      const strings = nodes.map(blockItem);\n      str = strings.shift();\n\n      for (const s of strings) str += s ? `\\n${indent}${s}` : '\\n';\n    }\n\n    if (this.comment) {\n      str += '\\n' + this.comment.replace(/^/gm, `${indent}#`);\n      if (onComment) onComment();\n    } else if (chompKeep && onChompKeep) onChompKeep();\n\n    return str;\n  }\n\n}\n\nPlainValue._defineProperty(Collection, \"maxFlowStringSingleLineLength\", 60);\n\nfunction asItemIndex(key) {\n  let idx = key instanceof Scalar ? key.value : key;\n  if (idx && typeof idx === 'string') idx = Number(idx);\n  return Number.isInteger(idx) && idx >= 0 ? idx : null;\n}\n\nclass YAMLSeq extends Collection {\n  add(value) {\n    this.items.push(value);\n  }\n\n  delete(key) {\n    const idx = asItemIndex(key);\n    if (typeof idx !== 'number') return false;\n    const del = this.items.splice(idx, 1);\n    return del.length > 0;\n  }\n\n  get(key, keepScalar) {\n    const idx = asItemIndex(key);\n    if (typeof idx !== 'number') return undefined;\n    const it = this.items[idx];\n    return !keepScalar && it instanceof Scalar ? it.value : it;\n  }\n\n  has(key) {\n    const idx = asItemIndex(key);\n    return typeof idx === 'number' && idx < this.items.length;\n  }\n\n  set(key, value) {\n    const idx = asItemIndex(key);\n    if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`);\n    this.items[idx] = value;\n  }\n\n  toJSON(_, ctx) {\n    const seq = [];\n    if (ctx && ctx.onCreate) ctx.onCreate(seq);\n    let i = 0;\n\n    for (const item of this.items) seq.push(toJSON(item, String(i++), ctx));\n\n    return seq;\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx) return JSON.stringify(this);\n    return super.toString(ctx, {\n      blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`,\n      flowChars: {\n        start: '[',\n        end: ']'\n      },\n      isMap: false,\n      itemIndent: (ctx.indent || '') + '  '\n    }, onComment, onChompKeep);\n  }\n\n}\n\nconst stringifyKey = (key, jsKey, ctx) => {\n  if (jsKey === null) return '';\n  if (typeof jsKey !== 'object') return String(jsKey);\n  if (key instanceof Node && ctx && ctx.doc) return key.toString({\n    anchors: Object.create(null),\n    doc: ctx.doc,\n    indent: '',\n    indentStep: ctx.indentStep,\n    inFlow: true,\n    inStringifyKey: true,\n    stringify: ctx.stringify\n  });\n  return JSON.stringify(jsKey);\n};\n\nclass Pair extends Node {\n  constructor(key, value = null) {\n    super();\n    this.key = key;\n    this.value = value;\n    this.type = Pair.Type.PAIR;\n  }\n\n  get commentBefore() {\n    return this.key instanceof Node ? this.key.commentBefore : undefined;\n  }\n\n  set commentBefore(cb) {\n    if (this.key == null) this.key = new Scalar(null);\n    if (this.key instanceof Node) this.key.commentBefore = cb;else {\n      const msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.';\n      throw new Error(msg);\n    }\n  }\n\n  addToJSMap(ctx, map) {\n    const key = toJSON(this.key, '', ctx);\n\n    if (map instanceof Map) {\n      const value = toJSON(this.value, key, ctx);\n      map.set(key, value);\n    } else if (map instanceof Set) {\n      map.add(key);\n    } else {\n      const stringKey = stringifyKey(this.key, key, ctx);\n      const value = toJSON(this.value, stringKey, ctx);\n      if (stringKey in map) Object.defineProperty(map, stringKey, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true\n      });else map[stringKey] = value;\n    }\n\n    return map;\n  }\n\n  toJSON(_, ctx) {\n    const pair = ctx && ctx.mapAsMap ? new Map() : {};\n    return this.addToJSMap(ctx, pair);\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx || !ctx.doc) return JSON.stringify(this);\n    const {\n      indent: indentSize,\n      indentSeq,\n      simpleKeys\n    } = ctx.doc.options;\n    let {\n      key,\n      value\n    } = this;\n    let keyComment = key instanceof Node && key.comment;\n\n    if (simpleKeys) {\n      if (keyComment) {\n        throw new Error('With simple keys, key nodes cannot have comments');\n      }\n\n      if (key instanceof Collection) {\n        const msg = 'With simple keys, collection cannot be used as a key value';\n        throw new Error(msg);\n      }\n    }\n\n    let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue.Type.BLOCK_FOLDED || key.type === PlainValue.Type.BLOCK_LITERAL : typeof key === 'object'));\n    const {\n      doc,\n      indent,\n      indentStep,\n      stringify\n    } = ctx;\n    ctx = Object.assign({}, ctx, {\n      implicitKey: !explicitKey,\n      indent: indent + indentStep\n    });\n    let chompKeep = false;\n    let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true);\n    str = addComment(str, ctx.indent, keyComment);\n\n    if (!explicitKey && str.length > 1024) {\n      if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n      explicitKey = true;\n    }\n\n    if (ctx.allNullValues && !simpleKeys) {\n      if (this.comment) {\n        str = addComment(str, ctx.indent, this.comment);\n        if (onComment) onComment();\n      } else if (chompKeep && !keyComment && onChompKeep) onChompKeep();\n\n      return ctx.inFlow && !explicitKey ? str : `? ${str}`;\n    }\n\n    str = explicitKey ? `? ${str}\\n${indent}:` : `${str}:`;\n\n    if (this.comment) {\n      // expected (but not strictly required) to be a single-line comment\n      str = addComment(str, ctx.indent, this.comment);\n      if (onComment) onComment();\n    }\n\n    let vcb = '';\n    let valueComment = null;\n\n    if (value instanceof Node) {\n      if (value.spaceBefore) vcb = '\\n';\n\n      if (value.commentBefore) {\n        const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`);\n        vcb += `\\n${cs}`;\n      }\n\n      valueComment = value.comment;\n    } else if (value && typeof value === 'object') {\n      value = doc.schema.createNode(value, true);\n    }\n\n    ctx.implicitKey = false;\n    if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1;\n    chompKeep = false;\n\n    if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {\n      // If indentSeq === false, consider '- ' as part of indentation where possible\n      ctx.indent = ctx.indent.substr(2);\n    }\n\n    const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true);\n    let ws = ' ';\n\n    if (vcb || this.comment) {\n      ws = `${vcb}\\n${ctx.indent}`;\n    } else if (!explicitKey && value instanceof Collection) {\n      const flow = valueStr[0] === '[' || valueStr[0] === '{';\n      if (!flow || valueStr.includes('\\n')) ws = `\\n${ctx.indent}`;\n    } else if (valueStr[0] === '\\n') ws = '';\n\n    if (chompKeep && !valueComment && onChompKeep) onChompKeep();\n    return addComment(str + ws + valueStr, ctx.indent, valueComment);\n  }\n\n}\n\nPlainValue._defineProperty(Pair, \"Type\", {\n  PAIR: 'PAIR',\n  MERGE_PAIR: 'MERGE_PAIR'\n});\n\nconst getAliasCount = (node, anchors) => {\n  if (node instanceof Alias) {\n    const anchor = anchors.get(node.source);\n    return anchor.count * anchor.aliasCount;\n  } else if (node instanceof Collection) {\n    let count = 0;\n\n    for (const item of node.items) {\n      const c = getAliasCount(item, anchors);\n      if (c > count) count = c;\n    }\n\n    return count;\n  } else if (node instanceof Pair) {\n    const kc = getAliasCount(node.key, anchors);\n    const vc = getAliasCount(node.value, anchors);\n    return Math.max(kc, vc);\n  }\n\n  return 1;\n};\n\nclass Alias extends Node {\n  static stringify({\n    range,\n    source\n  }, {\n    anchors,\n    doc,\n    implicitKey,\n    inStringifyKey\n  }) {\n    let anchor = Object.keys(anchors).find(a => anchors[a] === source);\n    if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName();\n    if (anchor) return `*${anchor}${implicitKey ? ' ' : ''}`;\n    const msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node';\n    throw new Error(`${msg} [${range}]`);\n  }\n\n  constructor(source) {\n    super();\n    this.source = source;\n    this.type = PlainValue.Type.ALIAS;\n  }\n\n  set tag(t) {\n    throw new Error('Alias nodes cannot have tags');\n  }\n\n  toJSON(arg, ctx) {\n    if (!ctx) return toJSON(this.source, arg, ctx);\n    const {\n      anchors,\n      maxAliasCount\n    } = ctx;\n    const anchor = anchors.get(this.source);\n    /* istanbul ignore if */\n\n    if (!anchor || anchor.res === undefined) {\n      const msg = 'This should not happen: Alias anchor was not resolved?';\n      if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);\n    }\n\n    if (maxAliasCount >= 0) {\n      anchor.count += 1;\n      if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors);\n\n      if (anchor.count * anchor.aliasCount > maxAliasCount) {\n        const msg = 'Excessive alias count indicates a resource exhaustion attack';\n        if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);\n      }\n    }\n\n    return anchor.res;\n  } // Only called when stringifying an alias mapping key while constructing\n  // Object output.\n\n\n  toString(ctx) {\n    return Alias.stringify(this, ctx);\n  }\n\n}\n\nPlainValue._defineProperty(Alias, \"default\", true);\n\nfunction findPair(items, key) {\n  const k = key instanceof Scalar ? key.value : key;\n\n  for (const it of items) {\n    if (it instanceof Pair) {\n      if (it.key === key || it.key === k) return it;\n      if (it.key && it.key.value === k) return it;\n    }\n  }\n\n  return undefined;\n}\nclass YAMLMap extends Collection {\n  add(pair, overwrite) {\n    if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value);\n    const prev = findPair(this.items, pair.key);\n    const sortEntries = this.schema && this.schema.sortMapEntries;\n\n    if (prev) {\n      if (overwrite) prev.value = pair.value;else throw new Error(`Key ${pair.key} already set`);\n    } else if (sortEntries) {\n      const i = this.items.findIndex(item => sortEntries(pair, item) < 0);\n      if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair);\n    } else {\n      this.items.push(pair);\n    }\n  }\n\n  delete(key) {\n    const it = findPair(this.items, key);\n    if (!it) return false;\n    const del = this.items.splice(this.items.indexOf(it), 1);\n    return del.length > 0;\n  }\n\n  get(key, keepScalar) {\n    const it = findPair(this.items, key);\n    const node = it && it.value;\n    return !keepScalar && node instanceof Scalar ? node.value : node;\n  }\n\n  has(key) {\n    return !!findPair(this.items, key);\n  }\n\n  set(key, value) {\n    this.add(new Pair(key, value), true);\n  }\n  /**\n   * @param {*} arg ignored\n   * @param {*} ctx Conversion context, originally set in Document#toJSON()\n   * @param {Class} Type If set, forces the returned collection type\n   * @returns {*} Instance of Type, Map, or Object\n   */\n\n\n  toJSON(_, ctx, Type) {\n    const map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {};\n    if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n    for (const item of this.items) item.addToJSMap(ctx, map);\n\n    return map;\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx) return JSON.stringify(this);\n\n    for (const item of this.items) {\n      if (!(item instanceof Pair)) throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n    }\n\n    return super.toString(ctx, {\n      blockItem: n => n.str,\n      flowChars: {\n        start: '{',\n        end: '}'\n      },\n      isMap: true,\n      itemIndent: ctx.indent || ''\n    }, onComment, onChompKeep);\n  }\n\n}\n\nconst MERGE_KEY = '<<';\nclass Merge extends Pair {\n  constructor(pair) {\n    if (pair instanceof Pair) {\n      let seq = pair.value;\n\n      if (!(seq instanceof YAMLSeq)) {\n        seq = new YAMLSeq();\n        seq.items.push(pair.value);\n        seq.range = pair.value.range;\n      }\n\n      super(pair.key, seq);\n      this.range = pair.range;\n    } else {\n      super(new Scalar(MERGE_KEY), new YAMLSeq());\n    }\n\n    this.type = Pair.Type.MERGE_PAIR;\n  } // If the value associated with a merge key is a single mapping node, each of\n  // its key/value pairs is inserted into the current mapping, unless the key\n  // already exists in it. If the value associated with the merge key is a\n  // sequence, then this sequence is expected to contain mapping nodes and each\n  // of these nodes is merged in turn according to its order in the sequence.\n  // Keys in mapping nodes earlier in the sequence override keys specified in\n  // later mapping nodes. -- http://yaml.org/type/merge.html\n\n\n  addToJSMap(ctx, map) {\n    for (const {\n      source\n    } of this.value.items) {\n      if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps');\n      const srcMap = source.toJSON(null, ctx, Map);\n\n      for (const [key, value] of srcMap) {\n        if (map instanceof Map) {\n          if (!map.has(key)) map.set(key, value);\n        } else if (map instanceof Set) {\n          map.add(key);\n        } else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n          Object.defineProperty(map, key, {\n            value,\n            writable: true,\n            enumerable: true,\n            configurable: true\n          });\n        }\n      }\n    }\n\n    return map;\n  }\n\n  toString(ctx, onComment) {\n    const seq = this.value;\n    if (seq.items.length > 1) return super.toString(ctx, onComment);\n    this.value = seq.items[0];\n    const str = super.toString(ctx, onComment);\n    this.value = seq;\n    return str;\n  }\n\n}\n\nconst binaryOptions = {\n  defaultType: PlainValue.Type.BLOCK_LITERAL,\n  lineWidth: 76\n};\nconst boolOptions = {\n  trueStr: 'true',\n  falseStr: 'false'\n};\nconst intOptions = {\n  asBigInt: false\n};\nconst nullOptions = {\n  nullStr: 'null'\n};\nconst strOptions = {\n  defaultType: PlainValue.Type.PLAIN,\n  doubleQuoted: {\n    jsonEncoding: false,\n    minMultiLineLength: 40\n  },\n  fold: {\n    lineWidth: 80,\n    minContentWidth: 20\n  }\n};\n\nfunction resolveScalar(str, tags, scalarFallback) {\n  for (const {\n    format,\n    test,\n    resolve\n  } of tags) {\n    if (test) {\n      const match = str.match(test);\n\n      if (match) {\n        let res = resolve.apply(null, match);\n        if (!(res instanceof Scalar)) res = new Scalar(res);\n        if (format) res.format = format;\n        return res;\n      }\n    }\n  }\n\n  if (scalarFallback) str = scalarFallback(str);\n  return new Scalar(str);\n}\n\nconst FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line\n// returns index of last newline in more-indented block\n\nconst consumeMoreIndentedLines = (text, i) => {\n  let ch = text[i + 1];\n\n  while (ch === ' ' || ch === '\\t') {\n    do {\n      ch = text[i += 1];\n    } while (ch && ch !== '\\n');\n\n    ch = text[i + 1];\n  }\n\n  return i;\n};\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n *\n * @param {string} text\n * @param {string} indent\n * @param {string} [mode='flow'] `'block'` prevents more-indented lines\n *   from being folded; `'quoted'` allows for `\\` escapes, including escaped\n *   newlines\n * @param {Object} options\n * @param {number} [options.indentAtStart] Accounts for leading contents on\n *   the first line, defaulting to `indent.length`\n * @param {number} [options.lineWidth=80]\n * @param {number} [options.minContentWidth=20] Allow highly indented lines to\n *   stretch the line width or indent content from the start\n * @param {function} options.onFold Called once if the text is folded\n * @param {function} options.onFold Called once if any line of text exceeds\n *   lineWidth characters\n */\n\n\nfunction foldFlowLines(text, indent, mode, {\n  indentAtStart,\n  lineWidth = 80,\n  minContentWidth = 20,\n  onFold,\n  onOverflow\n}) {\n  if (!lineWidth || lineWidth < 0) return text;\n  const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n  if (text.length <= endStep) return text;\n  const folds = [];\n  const escapedFolds = {};\n  let end = lineWidth - indent.length;\n\n  if (typeof indentAtStart === 'number') {\n    if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart;\n  }\n\n  let split = undefined;\n  let prev = undefined;\n  let overflow = false;\n  let i = -1;\n  let escStart = -1;\n  let escEnd = -1;\n\n  if (mode === FOLD_BLOCK) {\n    i = consumeMoreIndentedLines(text, i);\n    if (i !== -1) end = i + endStep;\n  }\n\n  for (let ch; ch = text[i += 1];) {\n    if (mode === FOLD_QUOTED && ch === '\\\\') {\n      escStart = i;\n\n      switch (text[i + 1]) {\n        case 'x':\n          i += 3;\n          break;\n\n        case 'u':\n          i += 5;\n          break;\n\n        case 'U':\n          i += 9;\n          break;\n\n        default:\n          i += 1;\n      }\n\n      escEnd = i;\n    }\n\n    if (ch === '\\n') {\n      if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i);\n      end = i + endStep;\n      split = undefined;\n    } else {\n      if (ch === ' ' && prev && prev !== ' ' && prev !== '\\n' && prev !== '\\t') {\n        // space surrounded by non-space can be replaced with newline + indent\n        const next = text[i + 1];\n        if (next && next !== ' ' && next !== '\\n' && next !== '\\t') split = i;\n      }\n\n      if (i >= end) {\n        if (split) {\n          folds.push(split);\n          end = split + endStep;\n          split = undefined;\n        } else if (mode === FOLD_QUOTED) {\n          // white-space collected at end may stretch past lineWidth\n          while (prev === ' ' || prev === '\\t') {\n            prev = ch;\n            ch = text[i += 1];\n            overflow = true;\n          } // Account for newline escape, but don't break preceding escape\n\n\n          const j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string\n\n          if (escapedFolds[j]) return text;\n          folds.push(j);\n          escapedFolds[j] = true;\n          end = j + endStep;\n          split = undefined;\n        } else {\n          overflow = true;\n        }\n      }\n    }\n\n    prev = ch;\n  }\n\n  if (overflow && onOverflow) onOverflow();\n  if (folds.length === 0) return text;\n  if (onFold) onFold();\n  let res = text.slice(0, folds[0]);\n\n  for (let i = 0; i < folds.length; ++i) {\n    const fold = folds[i];\n    const end = folds[i + 1] || text.length;\n    if (fold === 0) res = `\\n${indent}${text.slice(0, end)}`;else {\n      if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\\\`;\n      res += `\\n${indent}${text.slice(fold + 1, end)}`;\n    }\n  }\n\n  return res;\n}\n\nconst getFoldOptions = ({\n  indentAtStart\n}) => indentAtStart ? Object.assign({\n  indentAtStart\n}, strOptions.fold) : strOptions.fold; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\n\n\nconst containsDocumentMarker = str => /^(%|---|\\.\\.\\.)/m.test(str);\n\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n  if (!lineWidth || lineWidth < 0) return false;\n  const limit = lineWidth - indentLength;\n  const strLen = str.length;\n  if (strLen <= limit) return false;\n\n  for (let i = 0, start = 0; i < strLen; ++i) {\n    if (str[i] === '\\n') {\n      if (i - start > limit) return true;\n      start = i + 1;\n      if (strLen - start <= limit) return false;\n    }\n  }\n\n  return true;\n}\n\nfunction doubleQuotedString(value, ctx) {\n  const {\n    implicitKey\n  } = ctx;\n  const {\n    jsonEncoding,\n    minMultiLineLength\n  } = strOptions.doubleQuoted;\n  const json = JSON.stringify(value);\n  if (jsonEncoding) return json;\n  const indent = ctx.indent || (containsDocumentMarker(value) ? '  ' : '');\n  let str = '';\n  let start = 0;\n\n  for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n    if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n      // space before newline needs to be escaped to not be folded\n      str += json.slice(start, i) + '\\\\ ';\n      i += 1;\n      start = i;\n      ch = '\\\\';\n    }\n\n    if (ch === '\\\\') switch (json[i + 1]) {\n      case 'u':\n        {\n          str += json.slice(start, i);\n          const code = json.substr(i + 2, 4);\n\n          switch (code) {\n            case '0000':\n              str += '\\\\0';\n              break;\n\n            case '0007':\n              str += '\\\\a';\n              break;\n\n            case '000b':\n              str += '\\\\v';\n              break;\n\n            case '001b':\n              str += '\\\\e';\n              break;\n\n            case '0085':\n              str += '\\\\N';\n              break;\n\n            case '00a0':\n              str += '\\\\_';\n              break;\n\n            case '2028':\n              str += '\\\\L';\n              break;\n\n            case '2029':\n              str += '\\\\P';\n              break;\n\n            default:\n              if (code.substr(0, 2) === '00') str += '\\\\x' + code.substr(2);else str += json.substr(i, 6);\n          }\n\n          i += 5;\n          start = i + 1;\n        }\n        break;\n\n      case 'n':\n        if (implicitKey || json[i + 2] === '\"' || json.length < minMultiLineLength) {\n          i += 1;\n        } else {\n          // folding will eat first newline\n          str += json.slice(start, i) + '\\n\\n';\n\n          while (json[i + 2] === '\\\\' && json[i + 3] === 'n' && json[i + 4] !== '\"') {\n            str += '\\n';\n            i += 2;\n          }\n\n          str += indent; // space after newline needs to be escaped to not be folded\n\n          if (json[i + 2] === ' ') str += '\\\\';\n          i += 1;\n          start = i + 1;\n        }\n\n        break;\n\n      default:\n        i += 1;\n    }\n  }\n\n  str = start ? str + json.slice(start) : json;\n  return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx));\n}\n\nfunction singleQuotedString(value, ctx) {\n  if (ctx.implicitKey) {\n    if (/\\n/.test(value)) return doubleQuotedString(value, ctx);\n  } else {\n    // single quoted string can't have leading or trailing whitespace around newline\n    if (/[ \\t]\\n|\\n[ \\t]/.test(value)) return doubleQuotedString(value, ctx);\n  }\n\n  const indent = ctx.indent || (containsDocumentMarker(value) ? '  ' : '');\n  const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n  return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx));\n}\n\nfunction blockString({\n  comment,\n  type,\n  value\n}, ctx, onComment, onChompKeep) {\n  // 1. Block can't end in whitespace unless the last line is non-empty.\n  // 2. Strings consisting of only whitespace are best rendered explicitly.\n  if (/\\n[\\t ]+$/.test(value) || /^\\s*$/.test(value)) {\n    return doubleQuotedString(value, ctx);\n  }\n\n  const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? '  ' : '');\n  const indentSize = indent ? '2' : '1'; // root is at -1\n\n  const literal = type === PlainValue.Type.BLOCK_FOLDED ? false : type === PlainValue.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length);\n  let header = literal ? '|' : '>';\n  if (!value) return header + '\\n';\n  let wsStart = '';\n  let wsEnd = '';\n  value = value.replace(/[\\n\\t ]*$/, ws => {\n    const n = ws.indexOf('\\n');\n\n    if (n === -1) {\n      header += '-'; // strip\n    } else if (value === ws || n !== ws.length - 1) {\n      header += '+'; // keep\n\n      if (onChompKeep) onChompKeep();\n    }\n\n    wsEnd = ws.replace(/\\n$/, '');\n    return '';\n  }).replace(/^[\\n ]*/, ws => {\n    if (ws.indexOf(' ') !== -1) header += indentSize;\n    const m = ws.match(/ +$/);\n\n    if (m) {\n      wsStart = ws.slice(0, -m[0].length);\n      return m[0];\n    } else {\n      wsStart = ws;\n      return '';\n    }\n  });\n  if (wsEnd) wsEnd = wsEnd.replace(/\\n+(?!\\n|$)/g, `$&${indent}`);\n  if (wsStart) wsStart = wsStart.replace(/\\n+/g, `$&${indent}`);\n\n  if (comment) {\n    header += ' #' + comment.replace(/ ?[\\r\\n]+/g, ' ');\n    if (onComment) onComment();\n  }\n\n  if (!value) return `${header}${indentSize}\\n${indent}${wsEnd}`;\n\n  if (literal) {\n    value = value.replace(/\\n+/g, `$&${indent}`);\n    return `${header}\\n${indent}${wsStart}${value}${wsEnd}`;\n  }\n\n  value = value.replace(/\\n+/g, '\\n$&').replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n  //         ^ ind.line  ^ empty     ^ capture next empty lines only at end of indent\n  .replace(/\\n+/g, `$&${indent}`);\n  const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold);\n  return `${header}\\n${indent}${body}`;\n}\n\nfunction plainString(item, ctx, onComment, onChompKeep) {\n  const {\n    comment,\n    type,\n    value\n  } = item;\n  const {\n    actualString,\n    implicitKey,\n    indent,\n    inFlow\n  } = ctx;\n\n  if (implicitKey && /[\\n[\\]{},]/.test(value) || inFlow && /[[\\]{},]/.test(value)) {\n    return doubleQuotedString(value, ctx);\n  }\n\n  if (!value || /^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n    // not allowed:\n    // - empty string, '-' or '?'\n    // - start with an indicator character (except [?:-]) or /[?-] /\n    // - '\\n ', ': ' or ' \\n' anywhere\n    // - '#' not preceded by a non-space char\n    // - end with ' ' or ':'\n    return implicitKey || inFlow || value.indexOf('\\n') === -1 ? value.indexOf('\"') !== -1 && value.indexOf(\"'\") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);\n  }\n\n  if (!implicitKey && !inFlow && type !== PlainValue.Type.PLAIN && value.indexOf('\\n') !== -1) {\n    // Where allowed & type not set explicitly, prefer block style for multiline strings\n    return blockString(item, ctx, onComment, onChompKeep);\n  }\n\n  if (indent === '' && containsDocumentMarker(value)) {\n    ctx.forceBlockIndent = true;\n    return blockString(item, ctx, onComment, onChompKeep);\n  }\n\n  const str = value.replace(/\\n+/g, `$&\\n${indent}`); // Verify that output will be parsed as a string, as e.g. plain numbers and\n  // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n  // and others in v1.1.\n\n  if (actualString) {\n    const {\n      tags\n    } = ctx.doc.schema;\n    const resolved = resolveScalar(str, tags, tags.scalarFallback).value;\n    if (typeof resolved !== 'string') return doubleQuotedString(value, ctx);\n  }\n\n  const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx));\n\n  if (comment && !inFlow && (body.indexOf('\\n') !== -1 || comment.indexOf('\\n') !== -1)) {\n    if (onComment) onComment();\n    return addCommentBefore(body, indent, comment);\n  }\n\n  return body;\n}\n\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n  const {\n    defaultType\n  } = strOptions;\n  const {\n    implicitKey,\n    inFlow\n  } = ctx;\n  let {\n    type,\n    value\n  } = item;\n\n  if (typeof value !== 'string') {\n    value = String(value);\n    item = Object.assign({}, item, {\n      value\n    });\n  }\n\n  const _stringify = _type => {\n    switch (_type) {\n      case PlainValue.Type.BLOCK_FOLDED:\n      case PlainValue.Type.BLOCK_LITERAL:\n        return blockString(item, ctx, onComment, onChompKeep);\n\n      case PlainValue.Type.QUOTE_DOUBLE:\n        return doubleQuotedString(value, ctx);\n\n      case PlainValue.Type.QUOTE_SINGLE:\n        return singleQuotedString(value, ctx);\n\n      case PlainValue.Type.PLAIN:\n        return plainString(item, ctx, onComment, onChompKeep);\n\n      default:\n        return null;\n    }\n  };\n\n  if (type !== PlainValue.Type.QUOTE_DOUBLE && /[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f]/.test(value)) {\n    // force double quotes on control characters\n    type = PlainValue.Type.QUOTE_DOUBLE;\n  } else if ((implicitKey || inFlow) && (type === PlainValue.Type.BLOCK_FOLDED || type === PlainValue.Type.BLOCK_LITERAL)) {\n    // should not happen; blocks are not valid inside flow containers\n    type = PlainValue.Type.QUOTE_DOUBLE;\n  }\n\n  let res = _stringify(type);\n\n  if (res === null) {\n    res = _stringify(defaultType);\n    if (res === null) throw new Error(`Unsupported default string type ${defaultType}`);\n  }\n\n  return res;\n}\n\nfunction stringifyNumber({\n  format,\n  minFractionDigits,\n  tag,\n  value\n}) {\n  if (typeof value === 'bigint') return String(value);\n  if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf';\n  let n = JSON.stringify(value);\n\n  if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\\d/.test(n)) {\n    let i = n.indexOf('.');\n\n    if (i < 0) {\n      i = n.length;\n      n += '.';\n    }\n\n    let d = minFractionDigits - (n.length - i - 1);\n\n    while (d-- > 0) n += '0';\n  }\n\n  return n;\n}\n\nfunction checkFlowCollectionEnd(errors, cst) {\n  let char, name;\n\n  switch (cst.type) {\n    case PlainValue.Type.FLOW_MAP:\n      char = '}';\n      name = 'flow map';\n      break;\n\n    case PlainValue.Type.FLOW_SEQ:\n      char = ']';\n      name = 'flow sequence';\n      break;\n\n    default:\n      errors.push(new PlainValue.YAMLSemanticError(cst, 'Not a flow collection!?'));\n      return;\n  }\n\n  let lastItem;\n\n  for (let i = cst.items.length - 1; i >= 0; --i) {\n    const item = cst.items[i];\n\n    if (!item || item.type !== PlainValue.Type.COMMENT) {\n      lastItem = item;\n      break;\n    }\n  }\n\n  if (lastItem && lastItem.char !== char) {\n    const msg = `Expected ${name} to end with ${char}`;\n    let err;\n\n    if (typeof lastItem.offset === 'number') {\n      err = new PlainValue.YAMLSemanticError(cst, msg);\n      err.offset = lastItem.offset + 1;\n    } else {\n      err = new PlainValue.YAMLSemanticError(lastItem, msg);\n      if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start;\n    }\n\n    errors.push(err);\n  }\n}\nfunction checkFlowCommentSpace(errors, comment) {\n  const prev = comment.context.src[comment.range.start - 1];\n\n  if (prev !== '\\n' && prev !== '\\t' && prev !== ' ') {\n    const msg = 'Comments must be separated from other tokens by white space characters';\n    errors.push(new PlainValue.YAMLSemanticError(comment, msg));\n  }\n}\nfunction getLongKeyError(source, key) {\n  const sk = String(key);\n  const k = sk.substr(0, 8) + '...' + sk.substr(-8);\n  return new PlainValue.YAMLSemanticError(source, `The \"${k}\" key is too long`);\n}\nfunction resolveComments(collection, comments) {\n  for (const {\n    afterKey,\n    before,\n    comment\n  } of comments) {\n    let item = collection.items[before];\n\n    if (!item) {\n      if (comment !== undefined) {\n        if (collection.comment) collection.comment += '\\n' + comment;else collection.comment = comment;\n      }\n    } else {\n      if (afterKey && item.value) item = item.value;\n\n      if (comment === undefined) {\n        if (afterKey || !item.commentBefore) item.spaceBefore = true;\n      } else {\n        if (item.commentBefore) item.commentBefore += '\\n' + comment;else item.commentBefore = comment;\n      }\n    }\n  }\n}\n\n// on error, will return { str: string, errors: Error[] }\nfunction resolveString(doc, node) {\n  const res = node.strValue;\n  if (!res) return '';\n  if (typeof res === 'string') return res;\n  res.errors.forEach(error => {\n    if (!error.source) error.source = node;\n    doc.errors.push(error);\n  });\n  return res.str;\n}\n\nfunction resolveTagHandle(doc, node) {\n  const {\n    handle,\n    suffix\n  } = node.tag;\n  let prefix = doc.tagPrefixes.find(p => p.handle === handle);\n\n  if (!prefix) {\n    const dtp = doc.getDefaults().tagPrefixes;\n    if (dtp) prefix = dtp.find(p => p.handle === handle);\n    if (!prefix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`);\n  }\n\n  if (!suffix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag has no suffix.`);\n\n  if (handle === '!' && (doc.version || doc.options.version) === '1.0') {\n    if (suffix[0] === '^') {\n      doc.warnings.push(new PlainValue.YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported'));\n      return suffix;\n    }\n\n    if (/[:/]/.test(suffix)) {\n      // word/foo -> tag:word.yaml.org,2002:foo\n      const vocab = suffix.match(/^([a-z0-9-]+)\\/(.*)/i);\n      return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`;\n    }\n  }\n\n  return prefix.prefix + decodeURIComponent(suffix);\n}\n\nfunction resolveTagName(doc, node) {\n  const {\n    tag,\n    type\n  } = node;\n  let nonSpecific = false;\n\n  if (tag) {\n    const {\n      handle,\n      suffix,\n      verbatim\n    } = tag;\n\n    if (verbatim) {\n      if (verbatim !== '!' && verbatim !== '!!') return verbatim;\n      const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`;\n      doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));\n    } else if (handle === '!' && !suffix) {\n      nonSpecific = true;\n    } else {\n      try {\n        return resolveTagHandle(doc, node);\n      } catch (error) {\n        doc.errors.push(error);\n      }\n    }\n  }\n\n  switch (type) {\n    case PlainValue.Type.BLOCK_FOLDED:\n    case PlainValue.Type.BLOCK_LITERAL:\n    case PlainValue.Type.QUOTE_DOUBLE:\n    case PlainValue.Type.QUOTE_SINGLE:\n      return PlainValue.defaultTags.STR;\n\n    case PlainValue.Type.FLOW_MAP:\n    case PlainValue.Type.MAP:\n      return PlainValue.defaultTags.MAP;\n\n    case PlainValue.Type.FLOW_SEQ:\n    case PlainValue.Type.SEQ:\n      return PlainValue.defaultTags.SEQ;\n\n    case PlainValue.Type.PLAIN:\n      return nonSpecific ? PlainValue.defaultTags.STR : null;\n\n    default:\n      return null;\n  }\n}\n\nfunction resolveByTagName(doc, node, tagName) {\n  const {\n    tags\n  } = doc.schema;\n  const matchWithTest = [];\n\n  for (const tag of tags) {\n    if (tag.tag === tagName) {\n      if (tag.test) matchWithTest.push(tag);else {\n        const res = tag.resolve(doc, node);\n        return res instanceof Collection ? res : new Scalar(res);\n      }\n    }\n  }\n\n  const str = resolveString(doc, node);\n  if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback);\n  return null;\n}\n\nfunction getFallbackTagName({\n  type\n}) {\n  switch (type) {\n    case PlainValue.Type.FLOW_MAP:\n    case PlainValue.Type.MAP:\n      return PlainValue.defaultTags.MAP;\n\n    case PlainValue.Type.FLOW_SEQ:\n    case PlainValue.Type.SEQ:\n      return PlainValue.defaultTags.SEQ;\n\n    default:\n      return PlainValue.defaultTags.STR;\n  }\n}\n\nfunction resolveTag(doc, node, tagName) {\n  try {\n    const res = resolveByTagName(doc, node, tagName);\n\n    if (res) {\n      if (tagName && node.tag) res.tag = tagName;\n      return res;\n    }\n  } catch (error) {\n    /* istanbul ignore if */\n    if (!error.source) error.source = node;\n    doc.errors.push(error);\n    return null;\n  }\n\n  try {\n    const fallback = getFallbackTagName(node);\n    if (!fallback) throw new Error(`The tag ${tagName} is unavailable`);\n    const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`;\n    doc.warnings.push(new PlainValue.YAMLWarning(node, msg));\n    const res = resolveByTagName(doc, node, fallback);\n    res.tag = tagName;\n    return res;\n  } catch (error) {\n    const refError = new PlainValue.YAMLReferenceError(node, error.message);\n    refError.stack = error.stack;\n    doc.errors.push(refError);\n    return null;\n  }\n}\n\nconst isCollectionItem = node => {\n  if (!node) return false;\n  const {\n    type\n  } = node;\n  return type === PlainValue.Type.MAP_KEY || type === PlainValue.Type.MAP_VALUE || type === PlainValue.Type.SEQ_ITEM;\n};\n\nfunction resolveNodeProps(errors, node) {\n  const comments = {\n    before: [],\n    after: []\n  };\n  let hasAnchor = false;\n  let hasTag = false;\n  const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props;\n\n  for (const {\n    start,\n    end\n  } of props) {\n    switch (node.context.src[start]) {\n      case PlainValue.Char.COMMENT:\n        {\n          if (!node.commentHasRequiredWhitespace(start)) {\n            const msg = 'Comments must be separated from other tokens by white space characters';\n            errors.push(new PlainValue.YAMLSemanticError(node, msg));\n          }\n\n          const {\n            header,\n            valueRange\n          } = node;\n          const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before;\n          cc.push(node.context.src.slice(start + 1, end));\n          break;\n        }\n      // Actual anchor & tag resolution is handled by schema, here we just complain\n\n      case PlainValue.Char.ANCHOR:\n        if (hasAnchor) {\n          const msg = 'A node can have at most one anchor';\n          errors.push(new PlainValue.YAMLSemanticError(node, msg));\n        }\n\n        hasAnchor = true;\n        break;\n\n      case PlainValue.Char.TAG:\n        if (hasTag) {\n          const msg = 'A node can have at most one tag';\n          errors.push(new PlainValue.YAMLSemanticError(node, msg));\n        }\n\n        hasTag = true;\n        break;\n    }\n  }\n\n  return {\n    comments,\n    hasAnchor,\n    hasTag\n  };\n}\n\nfunction resolveNodeValue(doc, node) {\n  const {\n    anchors,\n    errors,\n    schema\n  } = doc;\n\n  if (node.type === PlainValue.Type.ALIAS) {\n    const name = node.rawValue;\n    const src = anchors.getNode(name);\n\n    if (!src) {\n      const msg = `Aliased anchor not found: ${name}`;\n      errors.push(new PlainValue.YAMLReferenceError(node, msg));\n      return null;\n    } // Lazy resolution for circular references\n\n\n    const res = new Alias(src);\n\n    anchors._cstAliases.push(res);\n\n    return res;\n  }\n\n  const tagName = resolveTagName(doc, node);\n  if (tagName) return resolveTag(doc, node, tagName);\n\n  if (node.type !== PlainValue.Type.PLAIN) {\n    const msg = `Failed to resolve ${node.type} node here`;\n    errors.push(new PlainValue.YAMLSyntaxError(node, msg));\n    return null;\n  }\n\n  try {\n    const str = resolveString(doc, node);\n    return resolveScalar(str, schema.tags, schema.tags.scalarFallback);\n  } catch (error) {\n    if (!error.source) error.source = node;\n    errors.push(error);\n    return null;\n  }\n} // sets node.resolved on success\n\n\nfunction resolveNode(doc, node) {\n  if (!node) return null;\n  if (node.error) doc.errors.push(node.error);\n  const {\n    comments,\n    hasAnchor,\n    hasTag\n  } = resolveNodeProps(doc.errors, node);\n\n  if (hasAnchor) {\n    const {\n      anchors\n    } = doc;\n    const name = node.anchor;\n    const prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor\n    // name have already been resolved, so it may safely be renamed.\n\n    if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as\n    // anchors need to be available during resolution to allow for\n    // circular references.\n\n    anchors.map[name] = node;\n  }\n\n  if (node.type === PlainValue.Type.ALIAS && (hasAnchor || hasTag)) {\n    const msg = 'An alias node must not specify any properties';\n    doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));\n  }\n\n  const res = resolveNodeValue(doc, node);\n\n  if (res) {\n    res.range = [node.range.start, node.range.end];\n    if (doc.options.keepCstNodes) res.cstNode = node;\n    if (doc.options.keepNodeTypes) res.type = node.type;\n    const cb = comments.before.join('\\n');\n\n    if (cb) {\n      res.commentBefore = res.commentBefore ? `${res.commentBefore}\\n${cb}` : cb;\n    }\n\n    const ca = comments.after.join('\\n');\n    if (ca) res.comment = res.comment ? `${res.comment}\\n${ca}` : ca;\n  }\n\n  return node.resolved = res;\n}\n\nfunction resolveMap(doc, cst) {\n  if (cst.type !== PlainValue.Type.MAP && cst.type !== PlainValue.Type.FLOW_MAP) {\n    const msg = `A ${cst.type} node cannot be resolved as a mapping`;\n    doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));\n    return null;\n  }\n\n  const {\n    comments,\n    items\n  } = cst.type === PlainValue.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst);\n  const map = new YAMLMap();\n  map.items = items;\n  resolveComments(map, comments);\n  let hasCollectionKey = false;\n\n  for (let i = 0; i < items.length; ++i) {\n    const {\n      key: iKey\n    } = items[i];\n    if (iKey instanceof Collection) hasCollectionKey = true;\n\n    if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) {\n      items[i] = new Merge(items[i]);\n      const sources = items[i].value.items;\n      let error = null;\n      sources.some(node => {\n        if (node instanceof Alias) {\n          // During parsing, alias sources are CST nodes; to account for\n          // circular references their resolved values can't be used here.\n          const {\n            type\n          } = node.source;\n          if (type === PlainValue.Type.MAP || type === PlainValue.Type.FLOW_MAP) return false;\n          return error = 'Merge nodes aliases can only point to maps';\n        }\n\n        return error = 'Merge nodes can only have Alias nodes as values';\n      });\n      if (error) doc.errors.push(new PlainValue.YAMLSemanticError(cst, error));\n    } else {\n      for (let j = i + 1; j < items.length; ++j) {\n        const {\n          key: jKey\n        } = items[j];\n\n        if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) {\n          const msg = `Map keys must be unique; \"${iKey}\" is repeated`;\n          doc.errors.push(new PlainValue.YAMLSemanticError(cst, msg));\n          break;\n        }\n      }\n    }\n  }\n\n  if (hasCollectionKey && !doc.options.mapAsMap) {\n    const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n    doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));\n  }\n\n  cst.resolved = map;\n  return map;\n}\n\nconst valueHasPairComment = ({\n  context: {\n    lineStart,\n    node,\n    src\n  },\n  props\n}) => {\n  if (props.length === 0) return false;\n  const {\n    start\n  } = props[0];\n  if (node && start > node.valueRange.start) return false;\n  if (src[start] !== PlainValue.Char.COMMENT) return false;\n\n  for (let i = lineStart; i < start; ++i) if (src[i] === '\\n') return false;\n\n  return true;\n};\n\nfunction resolvePairComment(item, pair) {\n  if (!valueHasPairComment(item)) return;\n  const comment = item.getPropValue(0, PlainValue.Char.COMMENT, true);\n  let found = false;\n  const cb = pair.value.commentBefore;\n\n  if (cb && cb.startsWith(comment)) {\n    pair.value.commentBefore = cb.substr(comment.length + 1);\n    found = true;\n  } else {\n    const cc = pair.value.comment;\n\n    if (!item.node && cc && cc.startsWith(comment)) {\n      pair.value.comment = cc.substr(comment.length + 1);\n      found = true;\n    }\n  }\n\n  if (found) pair.comment = comment;\n}\n\nfunction resolveBlockMapItems(doc, cst) {\n  const comments = [];\n  const items = [];\n  let key = undefined;\n  let keyStart = null;\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    switch (item.type) {\n      case PlainValue.Type.BLANK_LINE:\n        comments.push({\n          afterKey: !!key,\n          before: items.length\n        });\n        break;\n\n      case PlainValue.Type.COMMENT:\n        comments.push({\n          afterKey: !!key,\n          before: items.length,\n          comment: item.comment\n        });\n        break;\n\n      case PlainValue.Type.MAP_KEY:\n        if (key !== undefined) items.push(new Pair(key));\n        if (item.error) doc.errors.push(item.error);\n        key = resolveNode(doc, item.node);\n        keyStart = null;\n        break;\n\n      case PlainValue.Type.MAP_VALUE:\n        {\n          if (key === undefined) key = null;\n          if (item.error) doc.errors.push(item.error);\n\n          if (!item.context.atLineStart && item.node && item.node.type === PlainValue.Type.MAP && !item.node.context.atLineStart) {\n            const msg = 'Nested mappings are not allowed in compact mappings';\n            doc.errors.push(new PlainValue.YAMLSemanticError(item.node, msg));\n          }\n\n          let valueNode = item.node;\n\n          if (!valueNode && item.props.length > 0) {\n            // Comments on an empty mapping value need to be preserved, so we\n            // need to construct a minimal empty node here to use instead of the\n            // missing `item.node`. -- eemeli/yaml#19\n            valueNode = new PlainValue.PlainValue(PlainValue.Type.PLAIN, []);\n            valueNode.context = {\n              parent: item,\n              src: item.context.src\n            };\n            const pos = item.range.start + 1;\n            valueNode.range = {\n              start: pos,\n              end: pos\n            };\n            valueNode.valueRange = {\n              start: pos,\n              end: pos\n            };\n\n            if (typeof item.range.origStart === 'number') {\n              const origPos = item.range.origStart + 1;\n              valueNode.range.origStart = valueNode.range.origEnd = origPos;\n              valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos;\n            }\n          }\n\n          const pair = new Pair(key, resolveNode(doc, valueNode));\n          resolvePairComment(item, pair);\n          items.push(pair);\n\n          if (key && typeof keyStart === 'number') {\n            if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n          }\n\n          key = undefined;\n          keyStart = null;\n        }\n        break;\n\n      default:\n        if (key !== undefined) items.push(new Pair(key));\n        key = resolveNode(doc, item);\n        keyStart = item.range.start;\n        if (item.error) doc.errors.push(item.error);\n\n        next: for (let j = i + 1;; ++j) {\n          const nextItem = cst.items[j];\n\n          switch (nextItem && nextItem.type) {\n            case PlainValue.Type.BLANK_LINE:\n            case PlainValue.Type.COMMENT:\n              continue next;\n\n            case PlainValue.Type.MAP_VALUE:\n              break next;\n\n            default:\n              {\n                const msg = 'Implicit map keys need to be followed by map values';\n                doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n                break next;\n              }\n          }\n        }\n\n        if (item.valueRangeContainsNewline) {\n          const msg = 'Implicit map keys need to be on a single line';\n          doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n        }\n\n    }\n  }\n\n  if (key !== undefined) items.push(new Pair(key));\n  return {\n    comments,\n    items\n  };\n}\n\nfunction resolveFlowMapItems(doc, cst) {\n  const comments = [];\n  const items = [];\n  let key = undefined;\n  let explicitKey = false;\n  let next = '{';\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    if (typeof item.char === 'string') {\n      const {\n        char,\n        offset\n      } = item;\n\n      if (char === '?' && key === undefined && !explicitKey) {\n        explicitKey = true;\n        next = ':';\n        continue;\n      }\n\n      if (char === ':') {\n        if (key === undefined) key = null;\n\n        if (next === ':') {\n          next = ',';\n          continue;\n        }\n      } else {\n        if (explicitKey) {\n          if (key === undefined && char !== ',') key = null;\n          explicitKey = false;\n        }\n\n        if (key !== undefined) {\n          items.push(new Pair(key));\n          key = undefined;\n\n          if (char === ',') {\n            next = ':';\n            continue;\n          }\n        }\n      }\n\n      if (char === '}') {\n        if (i === cst.items.length - 1) continue;\n      } else if (char === next) {\n        next = ':';\n        continue;\n      }\n\n      const msg = `Flow map contains an unexpected ${char}`;\n      const err = new PlainValue.YAMLSyntaxError(cst, msg);\n      err.offset = offset;\n      doc.errors.push(err);\n    } else if (item.type === PlainValue.Type.BLANK_LINE) {\n      comments.push({\n        afterKey: !!key,\n        before: items.length\n      });\n    } else if (item.type === PlainValue.Type.COMMENT) {\n      checkFlowCommentSpace(doc.errors, item);\n      comments.push({\n        afterKey: !!key,\n        before: items.length,\n        comment: item.comment\n      });\n    } else if (key === undefined) {\n      if (next === ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Separator , missing in flow map'));\n      key = resolveNode(doc, item);\n    } else {\n      if (next !== ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Indicator : missing in flow map entry'));\n      items.push(new Pair(key, resolveNode(doc, item)));\n      key = undefined;\n      explicitKey = false;\n    }\n  }\n\n  checkFlowCollectionEnd(doc.errors, cst);\n  if (key !== undefined) items.push(new Pair(key));\n  return {\n    comments,\n    items\n  };\n}\n\nfunction resolveSeq(doc, cst) {\n  if (cst.type !== PlainValue.Type.SEQ && cst.type !== PlainValue.Type.FLOW_SEQ) {\n    const msg = `A ${cst.type} node cannot be resolved as a sequence`;\n    doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));\n    return null;\n  }\n\n  const {\n    comments,\n    items\n  } = cst.type === PlainValue.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst);\n  const seq = new YAMLSeq();\n  seq.items = items;\n  resolveComments(seq, comments);\n\n  if (!doc.options.mapAsMap && items.some(it => it instanceof Pair && it.key instanceof Collection)) {\n    const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n    doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));\n  }\n\n  cst.resolved = seq;\n  return seq;\n}\n\nfunction resolveBlockSeqItems(doc, cst) {\n  const comments = [];\n  const items = [];\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    switch (item.type) {\n      case PlainValue.Type.BLANK_LINE:\n        comments.push({\n          before: items.length\n        });\n        break;\n\n      case PlainValue.Type.COMMENT:\n        comments.push({\n          comment: item.comment,\n          before: items.length\n        });\n        break;\n\n      case PlainValue.Type.SEQ_ITEM:\n        if (item.error) doc.errors.push(item.error);\n        items.push(resolveNode(doc, item.node));\n\n        if (item.hasProps) {\n          const msg = 'Sequence items cannot have tags or anchors before the - indicator';\n          doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n        }\n\n        break;\n\n      default:\n        if (item.error) doc.errors.push(item.error);\n        doc.errors.push(new PlainValue.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`));\n    }\n  }\n\n  return {\n    comments,\n    items\n  };\n}\n\nfunction resolveFlowSeqItems(doc, cst) {\n  const comments = [];\n  const items = [];\n  let explicitKey = false;\n  let key = undefined;\n  let keyStart = null;\n  let next = '[';\n  let prevItem = null;\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    if (typeof item.char === 'string') {\n      const {\n        char,\n        offset\n      } = item;\n\n      if (char !== ':' && (explicitKey || key !== undefined)) {\n        if (explicitKey && key === undefined) key = next ? items.pop() : null;\n        items.push(new Pair(key));\n        explicitKey = false;\n        key = undefined;\n        keyStart = null;\n      }\n\n      if (char === next) {\n        next = null;\n      } else if (!next && char === '?') {\n        explicitKey = true;\n      } else if (next !== '[' && char === ':' && key === undefined) {\n        if (next === ',') {\n          key = items.pop();\n\n          if (key instanceof Pair) {\n            const msg = 'Chaining flow sequence pairs is invalid';\n            const err = new PlainValue.YAMLSemanticError(cst, msg);\n            err.offset = offset;\n            doc.errors.push(err);\n          }\n\n          if (!explicitKey && typeof keyStart === 'number') {\n            const keyEnd = item.range ? item.range.start : item.offset;\n            if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n            const {\n              src\n            } = prevItem.context;\n\n            for (let i = keyStart; i < keyEnd; ++i) if (src[i] === '\\n') {\n              const msg = 'Implicit keys of flow sequence pairs need to be on a single line';\n              doc.errors.push(new PlainValue.YAMLSemanticError(prevItem, msg));\n              break;\n            }\n          }\n        } else {\n          key = null;\n        }\n\n        keyStart = null;\n        explicitKey = false;\n        next = null;\n      } else if (next === '[' || char !== ']' || i < cst.items.length - 1) {\n        const msg = `Flow sequence contains an unexpected ${char}`;\n        const err = new PlainValue.YAMLSyntaxError(cst, msg);\n        err.offset = offset;\n        doc.errors.push(err);\n      }\n    } else if (item.type === PlainValue.Type.BLANK_LINE) {\n      comments.push({\n        before: items.length\n      });\n    } else if (item.type === PlainValue.Type.COMMENT) {\n      checkFlowCommentSpace(doc.errors, item);\n      comments.push({\n        comment: item.comment,\n        before: items.length\n      });\n    } else {\n      if (next) {\n        const msg = `Expected a ${next} in flow sequence`;\n        doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n      }\n\n      const value = resolveNode(doc, item);\n\n      if (key === undefined) {\n        items.push(value);\n        prevItem = item;\n      } else {\n        items.push(new Pair(key, value));\n        key = undefined;\n      }\n\n      keyStart = item.range.start;\n      next = ',';\n    }\n  }\n\n  checkFlowCollectionEnd(doc.errors, cst);\n  if (key !== undefined) items.push(new Pair(key));\n  return {\n    comments,\n    items\n  };\n}\n\nexports.Alias = Alias;\nexports.Collection = Collection;\nexports.Merge = Merge;\nexports.Node = Node;\nexports.Pair = Pair;\nexports.Scalar = Scalar;\nexports.YAMLMap = YAMLMap;\nexports.YAMLSeq = YAMLSeq;\nexports.addComment = addComment;\nexports.binaryOptions = binaryOptions;\nexports.boolOptions = boolOptions;\nexports.findPair = findPair;\nexports.intOptions = intOptions;\nexports.isEmptyPath = isEmptyPath;\nexports.nullOptions = nullOptions;\nexports.resolveMap = resolveMap;\nexports.resolveNode = resolveNode;\nexports.resolveSeq = resolveSeq;\nexports.resolveString = resolveString;\nexports.strOptions = strOptions;\nexports.stringifyNumber = stringifyNumber;\nexports.stringifyString = stringifyString;\nexports.toJSON = toJSON;\n","'use strict';\n\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar Schema = require('./Schema-88e323a7.js');\nrequire('./PlainValue-ec8e588e.js');\nrequire('./warnings-1000a372.js');\n\n\n\nexports.Alias = resolveSeq.Alias;\nexports.Collection = resolveSeq.Collection;\nexports.Merge = resolveSeq.Merge;\nexports.Node = resolveSeq.Node;\nexports.Pair = resolveSeq.Pair;\nexports.Scalar = resolveSeq.Scalar;\nexports.YAMLMap = resolveSeq.YAMLMap;\nexports.YAMLSeq = resolveSeq.YAMLSeq;\nexports.binaryOptions = resolveSeq.binaryOptions;\nexports.boolOptions = resolveSeq.boolOptions;\nexports.intOptions = resolveSeq.intOptions;\nexports.nullOptions = resolveSeq.nullOptions;\nexports.strOptions = resolveSeq.strOptions;\nexports.Schema = Schema.Schema;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\n\n/* global atob, btoa, Buffer */\nconst binary = {\n  identify: value => value instanceof Uint8Array,\n  // Buffer inherits from Uint8Array\n  default: false,\n  tag: 'tag:yaml.org,2002:binary',\n\n  /**\n   * Returns a Buffer in node and an Uint8Array in browsers\n   *\n   * To use the resulting buffer as an image, you'll want to do something like:\n   *\n   *   const blob = new Blob([buffer], { type: 'image/jpeg' })\n   *   document.querySelector('#photo').src = URL.createObjectURL(blob)\n   */\n  resolve: (doc, node) => {\n    const src = resolveSeq.resolveString(doc, node);\n\n    if (typeof Buffer === 'function') {\n      return Buffer.from(src, 'base64');\n    } else if (typeof atob === 'function') {\n      // On IE 11, atob() can't handle newlines\n      const str = atob(src.replace(/[\\n\\r]/g, ''));\n      const buffer = new Uint8Array(str.length);\n\n      for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);\n\n      return buffer;\n    } else {\n      const msg = 'This environment does not support reading binary tags; either Buffer or atob is required';\n      doc.errors.push(new PlainValue.YAMLReferenceError(node, msg));\n      return null;\n    }\n  },\n  options: resolveSeq.binaryOptions,\n  stringify: ({\n    comment,\n    type,\n    value\n  }, ctx, onComment, onChompKeep) => {\n    let src;\n\n    if (typeof Buffer === 'function') {\n      src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');\n    } else if (typeof btoa === 'function') {\n      let s = '';\n\n      for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);\n\n      src = btoa(s);\n    } else {\n      throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n    }\n\n    if (!type) type = resolveSeq.binaryOptions.defaultType;\n\n    if (type === PlainValue.Type.QUOTE_DOUBLE) {\n      value = src;\n    } else {\n      const {\n        lineWidth\n      } = resolveSeq.binaryOptions;\n      const n = Math.ceil(src.length / lineWidth);\n      const lines = new Array(n);\n\n      for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n        lines[i] = src.substr(o, lineWidth);\n      }\n\n      value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? '\\n' : ' ');\n    }\n\n    return resolveSeq.stringifyString({\n      comment,\n      type,\n      value\n    }, ctx, onComment, onChompKeep);\n  }\n};\n\nfunction parsePairs(doc, cst) {\n  const seq = resolveSeq.resolveSeq(doc, cst);\n\n  for (let i = 0; i < seq.items.length; ++i) {\n    let item = seq.items[i];\n    if (item instanceof resolveSeq.Pair) continue;else if (item instanceof resolveSeq.YAMLMap) {\n      if (item.items.length > 1) {\n        const msg = 'Each pair must have its own sequence indicator';\n        throw new PlainValue.YAMLSemanticError(cst, msg);\n      }\n\n      const pair = item.items[0] || new resolveSeq.Pair();\n      if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\\n${pair.commentBefore}` : item.commentBefore;\n      if (item.comment) pair.comment = pair.comment ? `${item.comment}\\n${pair.comment}` : item.comment;\n      item = pair;\n    }\n    seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item);\n  }\n\n  return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n  const pairs = new resolveSeq.YAMLSeq(schema);\n  pairs.tag = 'tag:yaml.org,2002:pairs';\n\n  for (const it of iterable) {\n    let key, value;\n\n    if (Array.isArray(it)) {\n      if (it.length === 2) {\n        key = it[0];\n        value = it[1];\n      } else throw new TypeError(`Expected [key, value] tuple: ${it}`);\n    } else if (it && it instanceof Object) {\n      const keys = Object.keys(it);\n\n      if (keys.length === 1) {\n        key = keys[0];\n        value = it[key];\n      } else throw new TypeError(`Expected { key: value } tuple: ${it}`);\n    } else {\n      key = it;\n    }\n\n    const pair = schema.createPair(key, value, ctx);\n    pairs.items.push(pair);\n  }\n\n  return pairs;\n}\nconst pairs = {\n  default: false,\n  tag: 'tag:yaml.org,2002:pairs',\n  resolve: parsePairs,\n  createNode: createPairs\n};\n\nclass YAMLOMap extends resolveSeq.YAMLSeq {\n  constructor() {\n    super();\n\n    PlainValue._defineProperty(this, \"add\", resolveSeq.YAMLMap.prototype.add.bind(this));\n\n    PlainValue._defineProperty(this, \"delete\", resolveSeq.YAMLMap.prototype.delete.bind(this));\n\n    PlainValue._defineProperty(this, \"get\", resolveSeq.YAMLMap.prototype.get.bind(this));\n\n    PlainValue._defineProperty(this, \"has\", resolveSeq.YAMLMap.prototype.has.bind(this));\n\n    PlainValue._defineProperty(this, \"set\", resolveSeq.YAMLMap.prototype.set.bind(this));\n\n    this.tag = YAMLOMap.tag;\n  }\n\n  toJSON(_, ctx) {\n    const map = new Map();\n    if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n    for (const pair of this.items) {\n      let key, value;\n\n      if (pair instanceof resolveSeq.Pair) {\n        key = resolveSeq.toJSON(pair.key, '', ctx);\n        value = resolveSeq.toJSON(pair.value, key, ctx);\n      } else {\n        key = resolveSeq.toJSON(pair, '', ctx);\n      }\n\n      if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');\n      map.set(key, value);\n    }\n\n    return map;\n  }\n\n}\n\nPlainValue._defineProperty(YAMLOMap, \"tag\", 'tag:yaml.org,2002:omap');\n\nfunction parseOMap(doc, cst) {\n  const pairs = parsePairs(doc, cst);\n  const seenKeys = [];\n\n  for (const {\n    key\n  } of pairs.items) {\n    if (key instanceof resolveSeq.Scalar) {\n      if (seenKeys.includes(key.value)) {\n        const msg = 'Ordered maps must not include duplicate keys';\n        throw new PlainValue.YAMLSemanticError(cst, msg);\n      } else {\n        seenKeys.push(key.value);\n      }\n    }\n  }\n\n  return Object.assign(new YAMLOMap(), pairs);\n}\n\nfunction createOMap(schema, iterable, ctx) {\n  const pairs = createPairs(schema, iterable, ctx);\n  const omap = new YAMLOMap();\n  omap.items = pairs.items;\n  return omap;\n}\n\nconst omap = {\n  identify: value => value instanceof Map,\n  nodeClass: YAMLOMap,\n  default: false,\n  tag: 'tag:yaml.org,2002:omap',\n  resolve: parseOMap,\n  createNode: createOMap\n};\n\nclass YAMLSet extends resolveSeq.YAMLMap {\n  constructor() {\n    super();\n    this.tag = YAMLSet.tag;\n  }\n\n  add(key) {\n    const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key);\n    const prev = resolveSeq.findPair(this.items, pair.key);\n    if (!prev) this.items.push(pair);\n  }\n\n  get(key, keepPair) {\n    const pair = resolveSeq.findPair(this.items, key);\n    return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair;\n  }\n\n  set(key, value) {\n    if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n    const prev = resolveSeq.findPair(this.items, key);\n\n    if (prev && !value) {\n      this.items.splice(this.items.indexOf(prev), 1);\n    } else if (!prev && value) {\n      this.items.push(new resolveSeq.Pair(key));\n    }\n  }\n\n  toJSON(_, ctx) {\n    return super.toJSON(_, ctx, Set);\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx) return JSON.stringify(this);\n    if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');\n  }\n\n}\n\nPlainValue._defineProperty(YAMLSet, \"tag\", 'tag:yaml.org,2002:set');\n\nfunction parseSet(doc, cst) {\n  const map = resolveSeq.resolveMap(doc, cst);\n  if (!map.hasAllNullValues()) throw new PlainValue.YAMLSemanticError(cst, 'Set items must all have null values');\n  return Object.assign(new YAMLSet(), map);\n}\n\nfunction createSet(schema, iterable, ctx) {\n  const set = new YAMLSet();\n\n  for (const value of iterable) set.items.push(schema.createPair(value, null, ctx));\n\n  return set;\n}\n\nconst set = {\n  identify: value => value instanceof Set,\n  nodeClass: YAMLSet,\n  default: false,\n  tag: 'tag:yaml.org,2002:set',\n  resolve: parseSet,\n  createNode: createSet\n};\n\nconst parseSexagesimal = (sign, parts) => {\n  const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0);\n  return sign === '-' ? -n : n;\n}; // hhhh:mm:ss.sss\n\n\nconst stringifySexagesimal = ({\n  value\n}) => {\n  if (isNaN(value) || !isFinite(value)) return resolveSeq.stringifyNumber(value);\n  let sign = '';\n\n  if (value < 0) {\n    sign = '-';\n    value = Math.abs(value);\n  }\n\n  const parts = [value % 60]; // seconds, including ms\n\n  if (value < 60) {\n    parts.unshift(0); // at least one : is required\n  } else {\n    value = Math.round((value - parts[0]) / 60);\n    parts.unshift(value % 60); // minutes\n\n    if (value >= 60) {\n      value = Math.round((value - parts[0]) / 60);\n      parts.unshift(value); // hours\n    }\n  }\n\n  return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\\d*$/, '') // % 60 may introduce error\n  ;\n};\n\nconst intTime = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'TIME',\n  test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,\n  resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),\n  stringify: stringifySexagesimal\n};\nconst floatTime = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  format: 'TIME',\n  test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*)$/,\n  resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),\n  stringify: stringifySexagesimal\n};\nconst timestamp = {\n  identify: value => value instanceof Date,\n  default: true,\n  tag: 'tag:yaml.org,2002:timestamp',\n  // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n  // may be omitted altogether, resulting in a date format. In such a case, the time part is\n  // assumed to be 00:00:00Z (start of day, UTC).\n  test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n  '(?:(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n  '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n  '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n  ')?' + ')$'),\n  resolve: (str, year, month, day, hour, minute, second, millisec, tz) => {\n    if (millisec) millisec = (millisec + '00').substr(1, 3);\n    let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);\n\n    if (tz && tz !== 'Z') {\n      let d = parseSexagesimal(tz[0], tz.slice(1));\n      if (Math.abs(d) < 30) d *= 60;\n      date -= 60000 * d;\n    }\n\n    return new Date(date);\n  },\n  stringify: ({\n    value\n  }) => value.toISOString().replace(/((T00:00)?:00)?\\.000Z$/, '')\n};\n\n/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */\nfunction shouldWarn(deprecation) {\n  const env = typeof process !== 'undefined' && process.env || {};\n\n  if (deprecation) {\n    if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS;\n    return !env.YAML_SILENCE_DEPRECATION_WARNINGS;\n  }\n\n  if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS;\n  return !env.YAML_SILENCE_WARNINGS;\n}\n\nfunction warn(warning, type) {\n  if (shouldWarn(false)) {\n    const emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to\n    // https://github.com/facebook/jest/issues/2549\n\n    if (emit) emit(warning, type);else {\n      // eslint-disable-next-line no-console\n      console.warn(type ? `${type}: ${warning}` : warning);\n    }\n  }\n}\nfunction warnFileDeprecation(filename) {\n  if (shouldWarn(true)) {\n    const path = filename.replace(/.*yaml[/\\\\]/i, '').replace(/\\.js$/, '').replace(/\\\\/g, '/');\n    warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, 'DeprecationWarning');\n  }\n}\nconst warned = {};\nfunction warnOptionDeprecation(name, alternative) {\n  if (!warned[name] && shouldWarn(true)) {\n    warned[name] = true;\n    let msg = `The option '${name}' will be removed in a future release`;\n    msg += alternative ? `, use '${alternative}' instead.` : '.';\n    warn(msg, 'DeprecationWarning');\n  }\n}\n\nexports.binary = binary;\nexports.floatTime = floatTime;\nexports.intTime = intTime;\nexports.omap = omap;\nexports.pairs = pairs;\nexports.set = set;\nexports.timestamp = timestamp;\nexports.warn = warn;\nexports.warnFileDeprecation = warnFileDeprecation;\nexports.warnOptionDeprecation = warnOptionDeprecation;\n","module.exports = require('./dist').YAML\n","const types = require('./dist/types')\n\nexports.binaryOptions = types.binaryOptions\nexports.boolOptions = types.boolOptions\nexports.intOptions = types.intOptions\nexports.nullOptions = types.nullOptions\nexports.strOptions = types.strOptions\n\nexports.Schema = types.Schema\nexports.Alias = types.Alias\nexports.Collection = types.Collection\nexports.Merge = types.Merge\nexports.Node = types.Node\nexports.Pair = types.Pair\nexports.Scalar = types.Scalar\nexports.YAMLMap = types.YAMLMap\nexports.YAMLSeq = types.YAMLSeq\n","(()=>{\"use strict\";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>$t,XMLParser:()=>gt,XMLValidator:()=>It});const i=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",n=new RegExp(\"^[\"+i+\"][\"+i+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const i=[];let n=e.exec(t);for(;n;){const s=[];s.startIndex=e.lastIndex-n[0].length;const r=n.length;for(let t=0;t\"!==t[r]&&\" \"!==t[r]&&\"\\t\"!==t[r]&&\"\\n\"!==t[r]&&\"\\r\"!==t[r];r++)h+=t[r];if(h=h.trim(),\"/\"===h[h.length-1]&&(h=h.substring(0,h.length-1),r--),!y(h)){let e;return e=0===h.trim().length?\"Invalid space after '<'.\":\"Tag '\"+h+\"' is an invalid name.\",b(\"InvalidTag\",e,w(t,r))}const l=g(t,r);if(!1===l)return b(\"InvalidAttr\",\"Attributes for '\"+h+\"' have open quote.\",w(t,r));let d=l.value;if(r=l.index,\"/\"===d[d.length-1]){const i=r-d.length;d=d.substring(0,d.length-1);const s=x(d,e);if(!0!==s)return b(s.err.code,s.err.msg,w(t,i+s.err.line));n=!0}else if(a){if(!l.tagClosed)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' doesn't have proper closing.\",w(t,r));if(d.trim().length>0)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' can't have attributes or invalid starting.\",w(t,o));if(0===i.length)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' has not been opened.\",w(t,o));{const e=i.pop();if(h!==e.tagName){let i=w(t,e.tagStartPos);return b(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+i.line+\", col \"+i.col+\") instead of closing tag '\"+h+\"'.\",w(t,o))}0==i.length&&(s=!0)}}else{const a=x(d,e);if(!0!==a)return b(a.err.code,a.err.msg,w(t,r-d.length+a.err.line));if(!0===s)return b(\"InvalidXml\",\"Multiple possible root nodes found.\",w(t,r));-1!==e.unpairedTags.indexOf(h)||i.push({tagName:h,tagStartPos:o}),n=!0}for(r++;r0)||b(\"InvalidXml\",\"Invalid '\"+JSON.stringify(i.map(t=>t.tagName),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):b(\"InvalidXml\",\"Start tag expected.\",1)}function p(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const i=e;for(;e5&&\"xml\"===n)return b(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",w(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}continue}return e}function c(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let i=1;for(e+=8;e\"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function g(t,e){let i=\"\",n=\"\",s=!1;for(;e\"===t[e]&&\"\"===n){s=!0;break}i+=t[e]}return\"\"===n&&{value:i,index:e,tagClosed:s}}const m=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function x(t,e){const i=s(t,m),n={};for(let t=0;to.includes(t)?\"__\"+t:t,P={preserveOrder:!1,attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:T};function S(t,e){if(\"string\"!=typeof t)return;const i=t.toLowerCase();if(o.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);if(a.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`)}function A(t){return\"boolean\"==typeof t?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:\"object\"==typeof t&&null!==t?{enabled:!1!==t.enabled,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??10),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1e3),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??100),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:A(!0)}const O=function(t){const e=Object.assign({},P,t),i=[{value:e.attributeNamePrefix,name:\"attributeNamePrefix\"},{value:e.attributesGroupName,name:\"attributesGroupName\"},{value:e.textNodeName,name:\"textNodeName\"},{value:e.cdataPropName,name:\"cdataPropName\"},{value:e.commentPropName,name:\"commentPropName\"}];for(const{value:t,name:e}of i)t&&S(t,e);return null===e.onDangerousProperty&&(e.onDangerousProperty=T),e.processEntities=A(e.processEntities),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),e};let C;C=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class ${constructor(t){this.tagname=t,this.child=[],this[\":@\"]=Object.create(null)}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][C]={startIndex:e})}static getMetaDataSymbol(){return C}}class I{constructor(t){this.suppressValidationErr=!t,this.options=t}readDocType(t,e){const i=Object.create(null);let n=0;if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let s=1,r=!1,o=!1,a=\"\";for(;e\"===t[e]){if(o?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(o=!1,s--):s--,0===s)break}else\"[\"===t[e]?r=!0:a+=t[e];else{if(r&&M(t,\"!ENTITY\",e)){let s,r;if(e+=7,[s,r,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===r.indexOf(\"&\")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&n>=this.options.maxEntityCount)throw new Error(`Entity count (${n+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);const t=s.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");i[s]={regx:RegExp(`&${t};`,\"g\"),val:r},n++}}else if(r&&M(t,\"!ELEMENT\",e)){e+=8;const{index:i}=this.readElementExp(t,e+1);e=i}else if(r&&M(t,\"!ATTLIST\",e))e+=8;else if(r&&M(t,\"!NOTATION\",e)){e+=9;const{index:i}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=i}else{if(!M(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");o=!0}s++,a=\"\"}if(0!==s)throw new Error(\"Unclosed DOCTYPE\")}return{entities:i,i:e}}readEntityExp(t,e){const i=e=j(t,e);for(;ethis.options.maxEntitySize)throw new Error(`Entity \"${n}\" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[n,s,--e]}readNotationExp(t,e){const i=e=j(t,e);for(;e{for(;e0&&(this.path[this.path.length-1].values=void 0);const n=this.path.length;this.siblingStacks[n]||(this.siblingStacks[n]=new Map);const s=this.siblingStacks[n],r=i?`${i}:${t}`:t,o=s.get(r)||0;let a=0;for(const t of s.values())a+=t;s.set(r,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e=0&&e>=0;){const n=t[i];if(\"deep-wildcard\"===n.type){if(i--,i<0)return!0;const n=t[i];let s=!1;for(let t=e;t>=0;t--){const r=t===this.path.length-1;if(this._matchSegment(n,this.path[t],r)){e=t-1,i--,s=!0;break}}if(!s)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(n,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if(\"*\"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&\"*\"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const n=e.counter??0;if(\"first\"===t.position&&0!==n)return!1;if(\"odd\"===t.position&&n%2!=1)return!1;if(\"even\"===t.position&&n%2!=0)return!1;if(\"nth\"===t.position&&n!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}readOnly(){return new Proxy(this,{get(t,e,i){if(L.has(e))return()=>{throw new TypeError(`Cannot call '${e}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};const n=Reflect.get(t,e,i);return\"path\"===e||\"siblingStacks\"===e?Object.freeze(Array.isArray(n)?n.map(t=>t instanceof Map?Object.freeze(new Map(t)):Object.freeze({...t})):n):\"function\"==typeof n?n.bind(t):n},set(t,e){throw new TypeError(`Cannot set property '${String(e)}' on a read-only Matcher.`)},deleteProperty(t,e){throw new TypeError(`Cannot delete property '${String(e)}' from a read-only Matcher.`)}})}}class R{constructor(t,e={}){this.pattern=t,this.separator=e.separator||\".\",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>\"deep-wildcard\"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,n=\"\";for(;i0){const i=t.substring(0,e);if(\"xmlns\"!==i)return i}}class W{constructor(t){var e;if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>rt(e,10,\"&#\")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>rt(e,16,\"&#x\")}},this.addExternalEntities=Y,this.parseXml=J,this.parseTextData=z,this.resolveNameSpace=X,this.buildAttributesMap=Z,this.isItStopNode=tt,this.replaceEntitiesValue=Q,this.readStopNodeData=nt,this.saveTextToParentTag=H,this.addChild=K,this.ignoreAttributesFn=\"function\"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new G,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodeExpressions=[];for(let t=0;t0)){o||(t=this.replaceEntitiesValue(t,e,i));const n=this.options.jPath?i.toString():i,a=this.options.tagValueProcessor(e,t,n,s,r);return null==a?t:typeof a!=typeof t||a!==t?a:this.options.trimValues||t.trim()===t?st(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function X(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),i=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=i+e[1])}return t}const q=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function Z(t,e,i){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,q),r=n.length,o={},a={};for(let t=0;t0&&\"object\"==typeof e&&e.updateCurrent&&e.updateCurrent(a);for(let t=0;t\",r,\"Closing Tag is not closed.\");let s=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=s.indexOf(\":\");-1!==t&&(s=s.substr(t+1))}s=ot(this.options.transformTagName,s,\"\",this.options).tagName,i&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher));const o=this.matcher.getCurrentTag();if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: `);o&&-1!==this.options.unpairedTags.indexOf(o)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,i=this.tagsNodeStack.pop(),n=\"\",r=e}else if(\"?\"===t[r+1]){let e=it(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(n=this.saveTextToParentTag(n,i,this.readonlyMatcher),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new $(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,this.matcher,e.tagName)),this.addChild(i,t,this.readonlyMatcher,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=et(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const s=t.substring(r+4,e-2);n=this.saveTextToParentTag(n,i,this.readonlyMatcher),i.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=s.readDocType(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=et(t,\"]]>\",r,\"CDATA is not closed.\")-2,s=t.substring(r+9,e);n=this.saveTextToParentTag(n,i,this.readonlyMatcher);let o=this.parseTextData(s,i.tagname,this.readonlyMatcher,!0,!1,!0,!0);null==o&&(o=\"\"),this.options.cdataPropName?i.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):i.add(this.options.textNodeName,o),r=e+2}else{let s=it(t,r,this.options.removeNSPrefix);if(!s){const e=t.substring(Math.max(0,r-50),Math.min(t.length,r+50));throw new Error(`readTagExp returned undefined at position ${r}. Context: \"${e}\"`)}let o=s.tagName;const a=s.rawTagName;let h=s.tagExp,l=s.attrExpPresent,p=s.closeIndex;if(({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options)),this.options.strictReservedNames&&(o===this.options.commentPropName||o===this.options.cdataPropName||o===this.options.textNodeName||o===this.options.attributesGroupName))throw new Error(`Invalid tag name: ${o}`);i&&n&&\"!xml\"!==i.tagname&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher,!1));const u=i;u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(i=this.tagsNodeStack.pop(),this.matcher.pop());let c=!1;h.length>0&&h.lastIndexOf(\"/\")===h.length-1&&(c=!0,\"/\"===o[o.length-1]?(o=o.substr(0,o.length-1),h=o):h=h.substr(0,h.length-1),l=o!==h);let d,f=null,g={};d=B(a),o!==e.tagname&&this.matcher.push(o,{},d),o!==h&&l&&(f=this.buildAttributesMap(h,this.matcher,o),f&&(g=U(f,this.options))),o!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode(this.stopNodeExpressions,this.matcher));const m=r;if(this.isCurrentNodeStopNode){let e=\"\";if(c)r=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(o))r=s.closeIndex;else{const i=this.readStopNodeData(t,a,p+1);if(!i)throw new Error(`Unexpected end of ${a}`);r=i.i,e=i.tagContent}const n=new $(o);f&&(n[\":@\"]=f),n.add(this.options.textNodeName,e),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(i,n,this.readonlyMatcher,m)}else{if(c){({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options));const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(-1!==this.options.unpairedTags.indexOf(o)){const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=s.closeIndex;continue}{const t=new $(o);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");this.tagsNodeStack.push(i),f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),i=t}}n=\"\",r=p}}else n+=t[r];return e.child};function K(t,e,i,n){this.options.captureMetaData||(n=void 0);const s=this.options.jPath?i.toString():i,r=this.options.updateTag(e.tagname,s,e[\":@\"]);!1===r||(\"string\"==typeof r?(e.tagname=r,t.addChild(e,n)):t.addChild(e,n))}function Q(t,e,i){const n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){const s=this.options.jPath?i.toString():i;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,s)))return t}if(n.tagFilter){const s=this.options.jPath?i.toString():i;if(!n.tagFilter(e,s))return t}for(const e of Object.keys(this.docTypeEntities)){const i=this.docTypeEntities[e],s=t.match(i.regx);if(s){if(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);const e=t.length;if(t=t.replace(i.regx,i.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-e,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}for(const e of Object.keys(this.lastEntities)){const i=this.lastEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}if(-1===t.indexOf(\"&\"))return t;if(this.options.htmlEntities)for(const e of Object.keys(this.htmlEntities)){const i=this.htmlEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}return t.replace(this.ampEntity.regex,this.ampEntity.val)}function H(t,e,i,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,n))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function tt(t,e){if(!t||0===t.length)return!1;for(let i=0;i\"){const s=function(t,e,i=\">\"){let n,s=\"\";for(let r=e;r\",i,`${e} is not closed`);if(t.substring(i+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(n,i),i:r};i=r}else if(\"?\"===t[i+1])i=et(t,\"?>\",i+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(i+1,3))i=et(t,\"--\\x3e\",i+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(i+1,2))i=et(t,\"]]>\",i,\"StopNode is not closed.\")-2;else{const n=it(t,i,\">\");n&&((n&&n.tagName)===e&&\"/\"!==n.tagExp[n.tagExp.length-1]&&s++,i=n.closeIndex)}}function st(t,e,i){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},k,e),!t||\"string\"!=typeof t)return t;let i=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(i))return t;if(\"0\"===t)return 0;if(e.hex&&D.test(i))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(i);if(isFinite(i)){if(i.includes(\"e\")||i.includes(\"E\"))return function(t,e,i){if(!i.eNotation)return t;const n=e.match(F);if(n){let s=n[1]||\"\";const r=-1===n[3].indexOf(\"e\")?\"E\":\"e\",o=n[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:(1!==o.length||!n[3].startsWith(`.${r}`)&&n[3][0]!==r)&&o.length>0?i.leadingZeros&&!a?(e=(n[1]||\"\")+n[3],Number(e)):t:Number(e)}return t}(t,i,e);{const s=V.exec(i);if(s){const r=s[1]||\"\",o=s[2];let a=(n=s[3])&&-1!==n.indexOf(\".\")?(\".\"===(n=n.replace(/0+$/,\"\"))?n=\"0\":\".\"===n[0]?n=\"0\"+n:\".\"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n):n;const h=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!h))return t;{const n=Number(i),s=String(n);if(0===n)return n;if(-1!==s.search(/[eE]/))return e.eNotation?n:t;if(-1!==i.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?n:t;let h=o?a:i;return o?h===s||r+h===s?n:t:h===s||h===r+s?n:t}}return t}}var n;return function(t,e,i){const n=e===1/0;switch(i.infinity.toLowerCase()){case\"null\":return null;case\"infinity\":return e;case\"string\":return n?\"Infinity\":\"-Infinity\";default:return t}}(t,Number(i),e)}(t,i)}return void 0!==t?t:\"\"}function rt(t,e,i){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):i+t+\";\"}function ot(t,e,i,n){if(t){const n=t(e);i===e&&(i=n),e=n}return{tagName:e=at(e,n),tagExp:i}}function at(t,e){if(a.includes(t))throw new Error(`[SECURITY] Invalid name: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);return o.includes(t)?e.onDangerousProperty(t):t}const ht=$.getMetaDataSymbol();function lt(t,e){if(!t||\"object\"!=typeof t)return{};if(!e)return t;const i={};for(const n in t)n.startsWith(e)?i[n.substring(e.length)]=t[n]:i[n]=t[n];return i}function pt(t,e,i,n){return ut(t,e,i,n)}function ut(t,e,i,n){let s;const r={};for(let o=0;o0&&(r[e.textNodeName]=s):void 0!==s&&(r[e.textNodeName]=s),r}function ct(t){const e=Object.keys(t);for(let t=0;t0&&(i=\"\\n\");const n=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;te.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=Tt(i,e),i}return\"\"}for(let a=0;a`,o=!1,n.pop();continue}if(l===e.commentPropName){r+=i+`\\x3c!--${h[l][0][e.textNodeName]}--\\x3e`,o=!0,n.pop();continue}if(\"?\"===l[0]){const t=wt(h[\":@\"],e,u),s=\"?xml\"===l?\"\":i;let a=h[l][0][e.textNodeName];a=0!==a.length?\" \"+a:\"\",r+=s+`<${l}${a}${t}?>`,o=!0,n.pop();continue}let c=i;\"\"!==c&&(c+=e.indentBy);const d=i+`<${l}${wt(h[\":@\"],e,u)}`;let f;f=u?bt(h[l],e):xt(h[l],e,c,n,s),-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?r+=d+\">\":r+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?r+=d+`>${f}${i}`:(r+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):r+=d+\"/>\",o=!0,n.pop()}return r}function Nt(t,e){if(!t||e.ignoreAttributes)return null;const i={};let n=!1;for(let s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s.startsWith(e.attributeNamePrefix)?s.substr(e.attributeNamePrefix.length):s]=t[s],n=!0);return n?i:null}function bt(t,e){if(!Array.isArray(t))return null!=t?t.toString():\"\";let i=\"\";for(let n=0;n${n}`:i+=`<${r}${t}/>`}}}return i}function Et(t,e){let i=\"\";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let s=t[n];!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}=\"${s}\"`}return i}function yt(t){const e=Object.keys(t);for(let i=0;i0&&e.processEntities)for(let i=0;i\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0};function St(t){if(this.options=Object.assign({},Pt,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Ct),this.processTextOrObjNode=At,this.options.format?(this.indentate=Ot,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function At(t,e,i,n){const s=this.extractAttributes(t);if(n.push(e,s),this.checkStopNode(n)){const s=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return n.pop(),this.buildObjectNode(s,e,r,i)}const r=this.j2x(t,i+1,n);return n.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i,n):this.buildObjectNode(r.val,e,r.attrStr,i)}function Ot(t){return this.options.indentBy.repeat(t)}function Ct(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}St.prototype.build=function(t){if(this.options.preserveOrder)return mt(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new G;return this.j2x(t,0,e).val}},St.prototype.j2x=function(t,e,i){let n=\"\",s=\"\";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");const r=this.options.jPath?i.toString():i,o=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(s+=\"\");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?s+=\"\":\"?\"===a[0]?s+=this.indentate(e)+\"<\"+a+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+a+\"/\"+this.tagEndChar;else if(t[a]instanceof Date)s+=this.buildTextValNode(t[a],a,\"\",e,i);else if(\"object\"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,r))n+=this.buildAttrPairStr(h,\"\"+t[a],o);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,\"\"+t[a]);s+=this.replaceEntitiesValue(e)}else{i.push(a);const n=this.checkStopNode(i);if(i.pop(),n){const i=\"\"+t[a];s+=\"\"===i?this.indentate(e)+\"<\"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+\"<\"+a+\">\"+i+\"\"+t+\"${t}`;else if(\"object\"==typeof t&&null!==t){const n=this.buildRawContent(t),s=this.buildAttributesForStopNode(t);e+=\"\"===n?`<${i}${s}/>`:`<${i}${s}>${n}`}}else if(\"object\"==typeof n&&null!==n){const t=this.buildRawContent(n),s=this.buildAttributesForStopNode(n);e+=\"\"===t?`<${i}${s}/>`:`<${i}${s}>${t}`}else e+=`<${i}>${n}`}return e},St.prototype.buildAttributesForStopNode=function(t){if(!t||\"object\"!=typeof t)return\"\";let e=\"\";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const n=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,s=i[t];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const n=this.isAttribute(i);if(n){const s=t[i];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}return e},St.prototype.buildObjectNode=function(t,e,i,n){if(\"\"===t)return\"?\"===e[0]?this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar:this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar;{let s=\"\"+t+s}},St.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+\"<\"+e+i+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>$t,XMLParser:()=>gt,XMLValidator:()=>It});const i=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",n=new RegExp(\"^[\"+i+\"][\"+i+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const i=[];let n=e.exec(t);for(;n;){const s=[];s.startIndex=e.lastIndex-n[0].length;const r=n.length;for(let t=0;t\"!==t[r]&&\" \"!==t[r]&&\"\\t\"!==t[r]&&\"\\n\"!==t[r]&&\"\\r\"!==t[r];r++)h+=t[r];if(h=h.trim(),\"/\"===h[h.length-1]&&(h=h.substring(0,h.length-1),r--),!y(h)){let e;return e=0===h.trim().length?\"Invalid space after '<'.\":\"Tag '\"+h+\"' is an invalid name.\",b(\"InvalidTag\",e,w(t,r))}const l=g(t,r);if(!1===l)return b(\"InvalidAttr\",\"Attributes for '\"+h+\"' have open quote.\",w(t,r));let d=l.value;if(r=l.index,\"/\"===d[d.length-1]){const i=r-d.length;d=d.substring(0,d.length-1);const s=x(d,e);if(!0!==s)return b(s.err.code,s.err.msg,w(t,i+s.err.line));n=!0}else if(a){if(!l.tagClosed)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' doesn't have proper closing.\",w(t,r));if(d.trim().length>0)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' can't have attributes or invalid starting.\",w(t,o));if(0===i.length)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' has not been opened.\",w(t,o));{const e=i.pop();if(h!==e.tagName){let i=w(t,e.tagStartPos);return b(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+i.line+\", col \"+i.col+\") instead of closing tag '\"+h+\"'.\",w(t,o))}0==i.length&&(s=!0)}}else{const a=x(d,e);if(!0!==a)return b(a.err.code,a.err.msg,w(t,r-d.length+a.err.line));if(!0===s)return b(\"InvalidXml\",\"Multiple possible root nodes found.\",w(t,r));-1!==e.unpairedTags.indexOf(h)||i.push({tagName:h,tagStartPos:o}),n=!0}for(r++;r0)||b(\"InvalidXml\",\"Invalid '\"+JSON.stringify(i.map(t=>t.tagName),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):b(\"InvalidXml\",\"Start tag expected.\",1)}function p(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const i=e;for(;e5&&\"xml\"===n)return b(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",w(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}continue}return e}function c(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let i=1;for(e+=8;e\"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function g(t,e){let i=\"\",n=\"\",s=!1;for(;e\"===t[e]&&\"\"===n){s=!0;break}i+=t[e]}return\"\"===n&&{value:i,index:e,tagClosed:s}}const m=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function x(t,e){const i=s(t,m),n={};for(let t=0;to.includes(t)?\"__\"+t:t,P={preserveOrder:!1,attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:T};function S(t,e){if(\"string\"!=typeof t)return;const i=t.toLowerCase();if(o.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);if(a.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`)}function A(t){return\"boolean\"==typeof t?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:\"object\"==typeof t&&null!==t?{enabled:!1!==t.enabled,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??10),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1e3),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??100),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:A(!0)}const O=function(t){const e=Object.assign({},P,t),i=[{value:e.attributeNamePrefix,name:\"attributeNamePrefix\"},{value:e.attributesGroupName,name:\"attributesGroupName\"},{value:e.textNodeName,name:\"textNodeName\"},{value:e.cdataPropName,name:\"cdataPropName\"},{value:e.commentPropName,name:\"commentPropName\"}];for(const{value:t,name:e}of i)t&&S(t,e);return null===e.onDangerousProperty&&(e.onDangerousProperty=T),e.processEntities=A(e.processEntities),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),e};let C;C=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class ${constructor(t){this.tagname=t,this.child=[],this[\":@\"]=Object.create(null)}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][C]={startIndex:e})}static getMetaDataSymbol(){return C}}class I{constructor(t){this.suppressValidationErr=!t,this.options=t}readDocType(t,e){const i=Object.create(null);let n=0;if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let s=1,r=!1,o=!1,a=\"\";for(;e\"===t[e]){if(o?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(o=!1,s--):s--,0===s)break}else\"[\"===t[e]?r=!0:a+=t[e];else{if(r&&M(t,\"!ENTITY\",e)){let s,r;if(e+=7,[s,r,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===r.indexOf(\"&\")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&n>=this.options.maxEntityCount)throw new Error(`Entity count (${n+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);const t=s.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");i[s]={regx:RegExp(`&${t};`,\"g\"),val:r},n++}}else if(r&&M(t,\"!ELEMENT\",e)){e+=8;const{index:i}=this.readElementExp(t,e+1);e=i}else if(r&&M(t,\"!ATTLIST\",e))e+=8;else if(r&&M(t,\"!NOTATION\",e)){e+=9;const{index:i}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=i}else{if(!M(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");o=!0}s++,a=\"\"}if(0!==s)throw new Error(\"Unclosed DOCTYPE\")}return{entities:i,i:e}}readEntityExp(t,e){const i=e=j(t,e);for(;ethis.options.maxEntitySize)throw new Error(`Entity \"${n}\" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[n,s,--e]}readNotationExp(t,e){const i=e=j(t,e);for(;e{for(;e0&&(this.path[this.path.length-1].values=void 0);const n=this.path.length;this.siblingStacks[n]||(this.siblingStacks[n]=new Map);const s=this.siblingStacks[n],r=i?`${i}:${t}`:t,o=s.get(r)||0;let a=0;for(const t of s.values())a+=t;s.set(r,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e=0&&e>=0;){const n=t[i];if(\"deep-wildcard\"===n.type){if(i--,i<0)return!0;const n=t[i];let s=!1;for(let t=e;t>=0;t--){const r=t===this.path.length-1;if(this._matchSegment(n,this.path[t],r)){e=t-1,i--,s=!0;break}}if(!s)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(n,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if(\"*\"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&\"*\"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const n=e.counter??0;if(\"first\"===t.position&&0!==n)return!1;if(\"odd\"===t.position&&n%2!=1)return!1;if(\"even\"===t.position&&n%2!=0)return!1;if(\"nth\"===t.position&&n!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}readOnly(){return new Proxy(this,{get(t,e,i){if(L.has(e))return()=>{throw new TypeError(`Cannot call '${e}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};const n=Reflect.get(t,e,i);return\"path\"===e||\"siblingStacks\"===e?Object.freeze(Array.isArray(n)?n.map(t=>t instanceof Map?Object.freeze(new Map(t)):Object.freeze({...t})):n):\"function\"==typeof n?n.bind(t):n},set(t,e){throw new TypeError(`Cannot set property '${String(e)}' on a read-only Matcher.`)},deleteProperty(t,e){throw new TypeError(`Cannot delete property '${String(e)}' from a read-only Matcher.`)}})}}class R{constructor(t,e={}){this.pattern=t,this.separator=e.separator||\".\",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>\"deep-wildcard\"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,n=\"\";for(;i0){const i=t.substring(0,e);if(\"xmlns\"!==i)return i}}class W{constructor(t){var e;if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>rt(e,10,\"&#\")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>rt(e,16,\"&#x\")}},this.addExternalEntities=Y,this.parseXml=J,this.parseTextData=z,this.resolveNameSpace=X,this.buildAttributesMap=Z,this.isItStopNode=tt,this.replaceEntitiesValue=Q,this.readStopNodeData=nt,this.saveTextToParentTag=H,this.addChild=K,this.ignoreAttributesFn=\"function\"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new G,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodeExpressions=[];for(let t=0;t0)){o||(t=this.replaceEntitiesValue(t,e,i));const n=this.options.jPath?i.toString():i,a=this.options.tagValueProcessor(e,t,n,s,r);return null==a?t:typeof a!=typeof t||a!==t?a:this.options.trimValues||t.trim()===t?st(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function X(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),i=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=i+e[1])}return t}const q=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function Z(t,e,i){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,q),r=n.length,o={},a={};for(let t=0;t0&&\"object\"==typeof e&&e.updateCurrent&&e.updateCurrent(a);for(let t=0;t\",r,\"Closing Tag is not closed.\");let s=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=s.indexOf(\":\");-1!==t&&(s=s.substr(t+1))}s=ot(this.options.transformTagName,s,\"\",this.options).tagName,i&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher));const o=this.matcher.getCurrentTag();if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: `);o&&-1!==this.options.unpairedTags.indexOf(o)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,i=this.tagsNodeStack.pop(),n=\"\",r=e}else if(\"?\"===t[r+1]){let e=it(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(n=this.saveTextToParentTag(n,i,this.readonlyMatcher),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new $(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,this.matcher,e.tagName)),this.addChild(i,t,this.readonlyMatcher,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=et(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const s=t.substring(r+4,e-2);n=this.saveTextToParentTag(n,i,this.readonlyMatcher),i.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=s.readDocType(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=et(t,\"]]>\",r,\"CDATA is not closed.\")-2,s=t.substring(r+9,e);n=this.saveTextToParentTag(n,i,this.readonlyMatcher);let o=this.parseTextData(s,i.tagname,this.readonlyMatcher,!0,!1,!0,!0);null==o&&(o=\"\"),this.options.cdataPropName?i.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):i.add(this.options.textNodeName,o),r=e+2}else{let s=it(t,r,this.options.removeNSPrefix);if(!s){const e=t.substring(Math.max(0,r-50),Math.min(t.length,r+50));throw new Error(`readTagExp returned undefined at position ${r}. Context: \"${e}\"`)}let o=s.tagName;const a=s.rawTagName;let h=s.tagExp,l=s.attrExpPresent,p=s.closeIndex;if(({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options)),this.options.strictReservedNames&&(o===this.options.commentPropName||o===this.options.cdataPropName||o===this.options.textNodeName||o===this.options.attributesGroupName))throw new Error(`Invalid tag name: ${o}`);i&&n&&\"!xml\"!==i.tagname&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher,!1));const u=i;u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(i=this.tagsNodeStack.pop(),this.matcher.pop());let c=!1;h.length>0&&h.lastIndexOf(\"/\")===h.length-1&&(c=!0,\"/\"===o[o.length-1]?(o=o.substr(0,o.length-1),h=o):h=h.substr(0,h.length-1),l=o!==h);let d,f=null,g={};d=B(a),o!==e.tagname&&this.matcher.push(o,{},d),o!==h&&l&&(f=this.buildAttributesMap(h,this.matcher,o),f&&(g=U(f,this.options))),o!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode(this.stopNodeExpressions,this.matcher));const m=r;if(this.isCurrentNodeStopNode){let e=\"\";if(c)r=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(o))r=s.closeIndex;else{const i=this.readStopNodeData(t,a,p+1);if(!i)throw new Error(`Unexpected end of ${a}`);r=i.i,e=i.tagContent}const n=new $(o);f&&(n[\":@\"]=f),n.add(this.options.textNodeName,e),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(i,n,this.readonlyMatcher,m)}else{if(c){({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options));const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(-1!==this.options.unpairedTags.indexOf(o)){const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=s.closeIndex;continue}{const t=new $(o);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");this.tagsNodeStack.push(i),f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),i=t}}n=\"\",r=p}}else n+=t[r];return e.child};function K(t,e,i,n){this.options.captureMetaData||(n=void 0);const s=this.options.jPath?i.toString():i,r=this.options.updateTag(e.tagname,s,e[\":@\"]);!1===r||(\"string\"==typeof r?(e.tagname=r,t.addChild(e,n)):t.addChild(e,n))}function Q(t,e,i){const n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){const s=this.options.jPath?i.toString():i;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,s)))return t}if(n.tagFilter){const s=this.options.jPath?i.toString():i;if(!n.tagFilter(e,s))return t}for(const e of Object.keys(this.docTypeEntities)){const i=this.docTypeEntities[e],s=t.match(i.regx);if(s){if(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);const e=t.length;if(t=t.replace(i.regx,i.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-e,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}for(const e of Object.keys(this.lastEntities)){const i=this.lastEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}if(-1===t.indexOf(\"&\"))return t;if(this.options.htmlEntities)for(const e of Object.keys(this.htmlEntities)){const i=this.htmlEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}return t.replace(this.ampEntity.regex,this.ampEntity.val)}function H(t,e,i,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,n))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function tt(t,e){if(!t||0===t.length)return!1;for(let i=0;i\"){const s=function(t,e,i=\">\"){let n,s=\"\";for(let r=e;r\",i,`${e} is not closed`);if(t.substring(i+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(n,i),i:r};i=r}else if(\"?\"===t[i+1])i=et(t,\"?>\",i+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(i+1,3))i=et(t,\"--\\x3e\",i+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(i+1,2))i=et(t,\"]]>\",i,\"StopNode is not closed.\")-2;else{const n=it(t,i,\">\");n&&((n&&n.tagName)===e&&\"/\"!==n.tagExp[n.tagExp.length-1]&&s++,i=n.closeIndex)}}function st(t,e,i){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},k,e),!t||\"string\"!=typeof t)return t;let i=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(i))return t;if(\"0\"===t)return 0;if(e.hex&&D.test(i))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(i);if(isFinite(i)){if(i.includes(\"e\")||i.includes(\"E\"))return function(t,e,i){if(!i.eNotation)return t;const n=e.match(F);if(n){let s=n[1]||\"\";const r=-1===n[3].indexOf(\"e\")?\"E\":\"e\",o=n[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:(1!==o.length||!n[3].startsWith(`.${r}`)&&n[3][0]!==r)&&o.length>0?i.leadingZeros&&!a?(e=(n[1]||\"\")+n[3],Number(e)):t:Number(e)}return t}(t,i,e);{const s=V.exec(i);if(s){const r=s[1]||\"\",o=s[2];let a=(n=s[3])&&-1!==n.indexOf(\".\")?(\".\"===(n=n.replace(/0+$/,\"\"))?n=\"0\":\".\"===n[0]?n=\"0\"+n:\".\"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n):n;const h=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!h))return t;{const n=Number(i),s=String(n);if(0===n)return n;if(-1!==s.search(/[eE]/))return e.eNotation?n:t;if(-1!==i.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?n:t;let h=o?a:i;return o?h===s||r+h===s?n:t:h===s||h===r+s?n:t}}return t}}var n;return function(t,e,i){const n=e===1/0;switch(i.infinity.toLowerCase()){case\"null\":return null;case\"infinity\":return e;case\"string\":return n?\"Infinity\":\"-Infinity\";default:return t}}(t,Number(i),e)}(t,i)}return void 0!==t?t:\"\"}function rt(t,e,i){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):i+t+\";\"}function ot(t,e,i,n){if(t){const n=t(e);i===e&&(i=n),e=n}return{tagName:e=at(e,n),tagExp:i}}function at(t,e){if(a.includes(t))throw new Error(`[SECURITY] Invalid name: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);return o.includes(t)?e.onDangerousProperty(t):t}const ht=$.getMetaDataSymbol();function lt(t,e){if(!t||\"object\"!=typeof t)return{};if(!e)return t;const i={};for(const n in t)n.startsWith(e)?i[n.substring(e.length)]=t[n]:i[n]=t[n];return i}function pt(t,e,i,n){return ut(t,e,i,n)}function ut(t,e,i,n){let s;const r={};for(let o=0;o0&&(r[e.textNodeName]=s):void 0!==s&&(r[e.textNodeName]=s),r}function ct(t){const e=Object.keys(t);for(let t=0;t0&&(i=\"\\n\");const n=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;te.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=Tt(i,e),i}return\"\"}for(let a=0;a`,o=!1,n.pop();continue}if(l===e.commentPropName){r+=i+`\\x3c!--${h[l][0][e.textNodeName]}--\\x3e`,o=!0,n.pop();continue}if(\"?\"===l[0]){const t=wt(h[\":@\"],e,u),s=\"?xml\"===l?\"\":i;let a=h[l][0][e.textNodeName];a=0!==a.length?\" \"+a:\"\",r+=s+`<${l}${a}${t}?>`,o=!0,n.pop();continue}let c=i;\"\"!==c&&(c+=e.indentBy);const d=i+`<${l}${wt(h[\":@\"],e,u)}`;let f;f=u?bt(h[l],e):xt(h[l],e,c,n,s),-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?r+=d+\">\":r+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?r+=d+`>${f}${i}`:(r+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):r+=d+\"/>\",o=!0,n.pop()}return r}function Nt(t,e){if(!t||e.ignoreAttributes)return null;const i={};let n=!1;for(let s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s.startsWith(e.attributeNamePrefix)?s.substr(e.attributeNamePrefix.length):s]=t[s],n=!0);return n?i:null}function bt(t,e){if(!Array.isArray(t))return null!=t?t.toString():\"\";let i=\"\";for(let n=0;n${n}`:i+=`<${r}${t}/>`}}}return i}function Et(t,e){let i=\"\";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let s=t[n];!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}=\"${s}\"`}return i}function yt(t){const e=Object.keys(t);for(let i=0;i0&&e.processEntities)for(let i=0;i\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0};function St(t){if(this.options=Object.assign({},Pt,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Ct),this.processTextOrObjNode=At,this.options.format?(this.indentate=Ot,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function At(t,e,i,n){const s=this.extractAttributes(t);if(n.push(e,s),this.checkStopNode(n)){const s=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return n.pop(),this.buildObjectNode(s,e,r,i)}const r=this.j2x(t,i+1,n);return n.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i,n):this.buildObjectNode(r.val,e,r.attrStr,i)}function Ot(t){return this.options.indentBy.repeat(t)}function Ct(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}St.prototype.build=function(t){if(this.options.preserveOrder)return mt(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new G;return this.j2x(t,0,e).val}},St.prototype.j2x=function(t,e,i){let n=\"\",s=\"\";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");const r=this.options.jPath?i.toString():i,o=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(s+=\"\");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?s+=\"\":\"?\"===a[0]?s+=this.indentate(e)+\"<\"+a+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+a+\"/\"+this.tagEndChar;else if(t[a]instanceof Date)s+=this.buildTextValNode(t[a],a,\"\",e,i);else if(\"object\"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,r))n+=this.buildAttrPairStr(h,\"\"+t[a],o);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,\"\"+t[a]);s+=this.replaceEntitiesValue(e)}else{i.push(a);const n=this.checkStopNode(i);if(i.pop(),n){const i=\"\"+t[a];s+=\"\"===i?this.indentate(e)+\"<\"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+\"<\"+a+\">\"+i+\"\"+t+\"${t}`;else if(\"object\"==typeof t&&null!==t){const n=this.buildRawContent(t),s=this.buildAttributesForStopNode(t);e+=\"\"===n?`<${i}${s}/>`:`<${i}${s}>${n}`}}else if(\"object\"==typeof n&&null!==n){const t=this.buildRawContent(n),s=this.buildAttributesForStopNode(n);e+=\"\"===t?`<${i}${s}/>`:`<${i}${s}>${t}`}else e+=`<${i}>${n}`}return e},St.prototype.buildAttributesForStopNode=function(t){if(!t||\"object\"!=typeof t)return\"\";let e=\"\";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const n=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,s=i[t];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const n=this.isAttribute(i);if(n){const s=t[i];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}return e},St.prototype.buildObjectNode=function(t,e,i,n){if(\"\"===t)return\"?\"===e[0]?this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar:this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar;{let s=\"\"+t+s}},St.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+\"<\"+e+i+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e>> 8;\n  }\n  return crc ^ -1;\n}\nfunction crc32() {\n  return bufferizeInt(_crc32.apply(null, arguments));\n}\ncrc32.signed = function() {\n  return _crc32.apply(null, arguments);\n};\ncrc32.unsigned = function() {\n  return _crc32.apply(null, arguments) >>> 0;\n};\nvar bufferCrc32 = crc32;\n\nconst index = /*@__PURE__*/getDefaultExportFromCjs(bufferCrc32);\n\nmodule.exports = index;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t792: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(51188);\n",""],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3oBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtXA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9NA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjWA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChoDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9HA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA;;;;;;;;;;;;;;;;;;;;;AAqBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACh5CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5OA;;;;;;;;;;;;;;;AAeA;;;;AAIA;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9NA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4IA;;;;;;;;;AC79IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/xEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1qHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC72DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAwDA;;;;;;;;;AC7hDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACprFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC72DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgKA;;;;;;;;;ACj/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqJA;;;;;;;;;AC7vHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuDA;;;;;;;;;AC9iDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAi2CA;;;;;;;;;ACt2mFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8HA;;;;;;;;;AC37HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoLA;;;;;;;;;ACptJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8JA;;;;;;;;;AC9kRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0RA;;;;;;;;;ACl5aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6JA;;;;;;;;;ACz5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+LA;;;;;;;;;AC5vMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6KA;;;;;;;;;AChsPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8PA;;;;;;;;;AC/vXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuDA;;;;;;;;;AChxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsJA;;;;;;;;;AC/pHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAigBA;;;;;;;;;ACvmbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA;;;;;;;;;AC1gDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACtSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBA;;;;;;;;;AChnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;;;;;;;;;ACleA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;ACxfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsBA;;;;;;;;;ACndA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA;;;;;;;;;AC5gBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA;;;;;;;;;ACvrBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACn1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;;;;;;;;;ACjcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzlCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9rBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;;;;;;;;AC1dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACx1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC78BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC56LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1nBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACt0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACt2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5qBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnFA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzdA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;;;;;;;;ACHA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACz2CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzwCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClPA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/pCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACroFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChUA;AACA;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClcA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACr0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1uEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACj7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACroBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrRA;;;;;;;;ACAA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1LA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzgDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACx/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC79DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACr/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACngCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3hDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC32BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5gBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/ZA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;;;;ACJA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":[".././lib/action.js",".././lib/assembly.js",".././lib/comment.js",".././lib/diff.js",".././lib/index.js",".././lib/stage-processor.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/path-utils.js",".././node_modules/@actions/core/lib/platform.js",".././node_modules/@actions/core/lib/summary.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/exec/lib/exec.js",".././node_modules/@actions/exec/lib/toolrunner.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/http-client/lib/auth.js",".././node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/io/lib/io-util.js",".././node_modules/@actions/io/lib/io.js",".././node_modules/@aws-cdk/aws-service-spec/lib/index.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/index.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/augmentations.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/common.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/database.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/diff.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/event.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/metrics.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/types/resource.js",".././node_modules/@aws-cdk/aws-service-spec/node_modules/@aws-cdk/service-spec-types/lib/util/sorting.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/asset-manifest.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/aws.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/index.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/archive.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/docker-credentials.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/docker.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/fs-extra.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/client-options.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/container-images.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/files.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/handlers/index.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/p-limit.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/placeholders.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/shell.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/private/util.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/progress.js",".././node_modules/@aws-cdk/cdk-assets-lib/lib/publishing.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/asset-manifest-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/cloudformation-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/nested-cloud-assembly-artifact-aug.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/nested-cloud-assembly-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/artifacts/tree-cloud-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/assets.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/bootstrap.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/cloud-artifact-aug.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/cloud-artifact.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/cloud-assembly.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/ami.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/availability-zones.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/endpoint-service-availability-zones.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/generic.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/key.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/load-balancer.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/security-group.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/context/vpc.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/environment.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/index.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/metadata.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/placeholders.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/private/error.js",".././node_modules/@aws-cdk/cloud-assembly-api/lib/private/toposort.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/aws-destination.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/docker-image-asset.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/file-asset.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/artifact-schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/context-queries.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/interfaces.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/metadata-schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/common.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/deploy.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/destroy.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/schema.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/test-case.js",".././node_modules/@aws-cdk/cloud-assembly-schema/lib/manifest.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/attribute.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/helpers.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/scan.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/validator.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/comparator.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/range.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/semver.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/clean.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/cmp.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/coerce.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare-build.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare-loose.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/diff.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/eq.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/gt.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/gte.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/inc.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/lt.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/lte.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/major.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/minor.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/neq.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/parse.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/patch.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/prerelease.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/rcompare.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/rsort.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/satisfies.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/sort.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/valid.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/index.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/constants.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/debug.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/identifiers.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/lrucache.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/parse-options.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/re.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/gtr.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/intersects.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/ltr.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/max-satisfying.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/min-satisfying.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/min-version.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/outside.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/simplify.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/subset.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/to-comparators.js",".././node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/valid.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/maybe-parsed.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/template-and-changeset-diff-merger.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/diffable.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/format-foreach.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/format-table.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/format.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-identity-center.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/index.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/mappings.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.js",".././node_modules/@aws-cdk/cloudformation-diff/lib/util.js",".././node_modules/@aws-cdk/cx-api/.warnings.jsii.js",".././node_modules/@aws-cdk/cx-api/lib/app.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/asset-manifest-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/cloudformation-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/nested-cloud-assembly-artifact-aug.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/artifacts/tree-cloud-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/assets.js",".././node_modules/@aws-cdk/cx-api/lib/cloud-artifact-aug.js",".././node_modules/@aws-cdk/cx-api/lib/cloud-artifact.js",".././node_modules/@aws-cdk/cx-api/lib/cloud-assembly.js",".././node_modules/@aws-cdk/cx-api/lib/context/ami.js",".././node_modules/@aws-cdk/cx-api/lib/context/availability-zones.js",".././node_modules/@aws-cdk/cx-api/lib/context/endpoint-service-availability-zones.js",".././node_modules/@aws-cdk/cx-api/lib/context/key.js",".././node_modules/@aws-cdk/cx-api/lib/context/load-balancer.js",".././node_modules/@aws-cdk/cx-api/lib/context/security-group.js",".././node_modules/@aws-cdk/cx-api/lib/context/vpc.js",".././node_modules/@aws-cdk/cx-api/lib/cxapi.js",".././node_modules/@aws-cdk/cx-api/lib/environment.js",".././node_modules/@aws-cdk/cx-api/lib/features.js",".././node_modules/@aws-cdk/cx-api/lib/index.js",".././node_modules/@aws-cdk/cx-api/lib/metadata.js",".././node_modules/@aws-cdk/cx-api/lib/placeholders.js",".././node_modules/@aws-cdk/cx-api/lib/private/error.js",".././node_modules/@aws-cdk/cx-api/lib/private/flag-modeling.js",".././node_modules/@aws-cdk/cx-api/lib/toposort.js",".././node_modules/@aws-cdk/service-spec-types/lib/index.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/augmentations.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/common.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/database.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/diff.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/event.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/metrics.js",".././node_modules/@aws-cdk/service-spec-types/lib/types/resource.js",".././node_modules/@aws-cdk/service-spec-types/lib/util/sorting.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/bootstrap/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/bootstrap/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/bootstrap/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/deploy-options.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/deployment-method.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/deploy/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/destroy/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/diff/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/diff/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/diff/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/drift/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/list/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/publish-assets/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/refactor/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/refactor/private/mapping-helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/rollback/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/synth/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/watch/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/watch/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/actions/watch/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/account-cache.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/awscli-compatible.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/base-credentials.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/cached.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/credential-plugins.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/ec2-detection.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/provider-caching.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/sdk-logger.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/sdk-provider.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/sdk.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/tracing.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/user-agent.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/aws-auth/util.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/bootstrap-environment.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/bootstrap-props.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/deploy-bootstrap.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/bootstrap/legacy-template.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/cached-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/context-store.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/environment.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/borrowed-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/context-aware-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/disposable-box.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/exec.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/prepare-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/readable-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/stack-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/stack-selectors.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/source-builder.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/stack-assembly.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/stack-collection.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/stack-selector.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloud-assembly/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/evaluate-cloudformation-template.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/nested-stack-helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/stack-helpers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/cloudformation/template-body-parameter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/context.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/asset-manifest-builder.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/asset-publishing.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/assets.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/cfn-api.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/checks.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/deploy-stack.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/deployment-result.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/deployments.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/early-validation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/deployments/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/diff/diff-formatter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/diff/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/drift/drift-formatter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/drift/drift.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/drift/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/environment-access.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/environment-resources.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/environment/placeholders.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/appsync-mapping-templates.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/cloud-control-resource.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/code-build-projects.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/common.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/ecs-services.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/hotswap-deployments.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/lambda-functions.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/hotswap/s3-bucket-deployments.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/io-host.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/io-message.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/io-default-messages.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/io-helper.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/io-host-wrappers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/level-priority.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/message-maker.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/messages.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/span.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/private/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/io/toolkit-action.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/logs-monitor/find-cloudwatch-logs.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/logs-monitor/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/logs-monitor/logs-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/network-detector/network-detector.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/cached-data-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/filter.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/notices.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/notices/web-data-source.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/context-provider-plugin.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/mode.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/plugin/plugin.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/cloudformation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/context.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/digest.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/graph.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/refactoring/stack-definitions.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-import/importer.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-import/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-import/migrator.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-metadata/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/resource-metadata/resource-metadata.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/rwlock.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/settings.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-activity-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-event-poller.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-progress-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/stack-events/stack-status.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/streams.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/private/util.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tags/tags.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/toolkit-info.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/tree.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/build-destroy-work-graph.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/work-graph-builder.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/work-graph-types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/api/work-graph/work-graph.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/ami.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/availability-zones.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/cc-api-provider.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/endpoint-service-availability-zones.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/hosted-zones.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/keys.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/load-balancers.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/security-groups.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/ssm-parameters.js",".././node_modules/@aws-cdk/toolkit-lib/lib/context-providers/vpcs.js",".././node_modules/@aws-cdk/toolkit-lib/lib/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/bootstrap-environment-progress.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/context.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/deploy.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/destroy.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/diff.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/drift.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/gc.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/hotswap.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/import.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/list.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/logs-monitor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/progress.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/publish-assets.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/refactor.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/rollback.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/sdk.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/stack-activity.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/stack-details.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/synth.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/payloads/watch.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/base.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/current.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/display.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/history.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/activity-printer/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/private/dispose-polyfill.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/non-interactive-io-host.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/private/count-assembly-results.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/private/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/toolkit-error.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/toolkit.js",".././node_modules/@aws-cdk/toolkit-lib/lib/toolkit/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/archive.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/arrays.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/bool.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/bytes.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/cloudformation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/concurrency.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/content-hash.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/directories.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/format-error.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/glob-matcher.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/guess-language.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/index.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/json.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/net.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/objects.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/package-info.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/parallel.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/promises.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/serialize.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/sets.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/shell-env.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/string-manipulation.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/type-brands.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/types.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/version-range.js",".././node_modules/@aws-cdk/toolkit-lib/lib/util/yaml-cfn.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/classes/comparator.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/classes/range.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/classes/semver.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/clean.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/cmp.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/coerce.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/compare-build.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/compare-loose.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/compare.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/diff.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/eq.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/gt.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/gte.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/inc.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/lt.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/lte.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/major.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/minor.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/neq.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/parse.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/patch.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/prerelease.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/rcompare.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/rsort.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/satisfies.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/sort.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/functions/valid.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/index.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/constants.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/debug.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/identifiers.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/lrucache.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/parse-options.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/internal/re.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/gtr.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/intersects.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/ltr.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/max-satisfying.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/min-satisfying.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/min-version.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/outside.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/simplify.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/subset.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/to-comparators.js",".././node_modules/@aws-cdk/toolkit-lib/node_modules/semver/ranges/valid.js",".././node_modules/@aws-crypto/crc32/build/main/aws_crc32.js",".././node_modules/@aws-crypto/crc32/build/main/index.js",".././node_modules/@aws-crypto/crc32c/build/main/aws_crc32c.js",".././node_modules/@aws-crypto/crc32c/build/main/index.js",".././node_modules/@aws-crypto/util/build/main/convertToBuffer.js",".././node_modules/@aws-crypto/util/build/main/index.js",".././node_modules/@aws-crypto/util/build/main/isEmptyData.js",".././node_modules/@aws-crypto/util/build/main/numToUint8.js",".././node_modules/@aws-crypto/util/build/main/uint32ArrayFrom.js",".././node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer/dist-cjs/index.js",".././node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from/dist-cjs/index.js",".././node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8/dist-cjs/index.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/index.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-appsync/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/endpoint/bdd.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/models/BedrockAgentCoreControlServiceException.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/models/errors.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/dist-cjs/schemas/schemas_0.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/recursionDetectionMiddleware.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/region-config-resolver/dist-cjs/regionConfig/stsRegionDefaultResolver.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cloudcontrol/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-cloudcontrol/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/bdd.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/CloudFormationServiceException.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/errors.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cloudformation/dist-cjs/schemas/schemas_0.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/recursionDetectionMiddleware.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/region-config-resolver/dist-cjs/regionConfig/stsRegionDefaultResolver.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/index.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-codebuild/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ec2/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-ec2/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecr/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ecs/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-ecs/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/index.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-elastic-load-balancing-v2/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/index.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-iam/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/index.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-kms/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/index.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-lambda/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/index.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-route-53/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-s3/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sfn/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-sfn/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/index.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-ssm/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/index.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/md5.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/native.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/nil.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/parse.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/regex.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/rng.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/sha1.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/stringify.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v1.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v3.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v35.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v4.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/v5.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/validate.js",".././node_modules/@aws-sdk/client-ssm/node_modules/uuid/dist/version.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/STSClient.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/dist-cjs/runtimeExtensions.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/createCredentialChain.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromCognitoIdentity.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromCognitoIdentityPool.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromContainerMetadata.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromEnv.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromIni.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromInstanceMetadata.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromNodeProviderChain.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromProcess.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromSSO.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromTemporaryCredentials.base.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromTemporaryCredentials.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/dist-cjs/loadSts.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/ec2-metadata-service/dist-cjs/index.js",".././node_modules/@aws-sdk/lib-storage/dist-cjs/index.js",".././node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.js",".././node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.shared.js",".././node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-expect-continue/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/getCrc32ChecksumAlgorithmFunction.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-location-constraint/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-ec2/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-route53/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-ssec/dist-cjs/index.js",".././node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthExtensionConfiguration.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/EndpointParameters.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js",".././node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeExtensions.js",".././node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js",".././node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js",".././node_modules/@aws-sdk/token-providers/dist-cjs/index.js",".././node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js",".././node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js",".././node_modules/@aws-sdk/util-format-url/dist-cjs/index.js",".././node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js",".././node_modules/@aws-sdk/xml-builder/dist-cjs/index.js",".././node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js",".././node_modules/@cdklabs/tskb/lib/database.js",".././node_modules/@cdklabs/tskb/lib/entity.js",".././node_modules/@cdklabs/tskb/lib/index.js",".././node_modules/@cdklabs/tskb/lib/invariant.js",".././node_modules/@cdklabs/tskb/lib/relationship.js",".././node_modules/@cdklabs/tskb/lib/result.js",".././node_modules/@cdklabs/tskb/lib/sorted-map.js",".././node_modules/@nodelib/fs.scandir/out/adapters/fs.js",".././node_modules/@nodelib/fs.scandir/out/constants.js",".././node_modules/@nodelib/fs.scandir/out/index.js",".././node_modules/@nodelib/fs.scandir/out/providers/async.js",".././node_modules/@nodelib/fs.scandir/out/providers/common.js",".././node_modules/@nodelib/fs.scandir/out/providers/sync.js",".././node_modules/@nodelib/fs.scandir/out/settings.js",".././node_modules/@nodelib/fs.scandir/out/utils/fs.js",".././node_modules/@nodelib/fs.scandir/out/utils/index.js",".././node_modules/@nodelib/fs.stat/out/adapters/fs.js",".././node_modules/@nodelib/fs.stat/out/index.js",".././node_modules/@nodelib/fs.stat/out/providers/async.js",".././node_modules/@nodelib/fs.stat/out/providers/sync.js",".././node_modules/@nodelib/fs.stat/out/settings.js",".././node_modules/@nodelib/fs.walk/out/index.js",".././node_modules/@nodelib/fs.walk/out/providers/async.js",".././node_modules/@nodelib/fs.walk/out/providers/stream.js",".././node_modules/@nodelib/fs.walk/out/providers/sync.js",".././node_modules/@nodelib/fs.walk/out/readers/async.js",".././node_modules/@nodelib/fs.walk/out/readers/common.js",".././node_modules/@nodelib/fs.walk/out/readers/reader.js",".././node_modules/@nodelib/fs.walk/out/readers/sync.js",".././node_modules/@nodelib/fs.walk/out/settings.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@smithy/abort-controller/dist-cjs/index.js",".././node_modules/@smithy/config-resolver/dist-cjs/index.js",".././node_modules/@smithy/core/dist-cjs/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/schema/index.js",".././node_modules/@smithy/core/dist-cjs/submodules/serde/index.js",".././node_modules/@smithy/credential-provider-imds/dist-cjs/index.js",".././node_modules/@smithy/eventstream-codec/dist-cjs/index.js",".././node_modules/@smithy/eventstream-serde-config-resolver/dist-cjs/index.js",".././node_modules/@smithy/eventstream-serde-node/dist-cjs/index.js",".././node_modules/@smithy/eventstream-serde-universal/dist-cjs/index.js",".././node_modules/@smithy/fetch-http-handler/dist-cjs/index.js",".././node_modules/@smithy/hash-node/dist-cjs/index.js",".././node_modules/@smithy/hash-stream-node/dist-cjs/index.js",".././node_modules/@smithy/is-array-buffer/dist-cjs/index.js",".././node_modules/@smithy/middleware-content-length/dist-cjs/index.js",".././node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromConfig.js",".././node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointUrlConfig.js",".././node_modules/@smithy/middleware-endpoint/dist-cjs/index.js",".././node_modules/@smithy/middleware-retry/dist-cjs/index.js",".././node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.js",".././node_modules/@smithy/middleware-serde/dist-cjs/index.js",".././node_modules/@smithy/middleware-stack/dist-cjs/index.js",".././node_modules/@smithy/node-config-provider/dist-cjs/index.js",".././node_modules/@smithy/node-http-handler/dist-cjs/index.js",".././node_modules/@smithy/property-provider/dist-cjs/index.js",".././node_modules/@smithy/protocol-http/dist-cjs/index.js",".././node_modules/@smithy/querystring-builder/dist-cjs/index.js",".././node_modules/@smithy/querystring-parser/dist-cjs/index.js",".././node_modules/@smithy/service-error-classification/dist-cjs/index.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/getHomeDir.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js",".././node_modules/@smithy/shared-ini-file-loader/dist-cjs/readFile.js",".././node_modules/@smithy/signature-v4/dist-cjs/index.js",".././node_modules/@smithy/smithy-client/dist-cjs/index.js",".././node_modules/@smithy/types/dist-cjs/index.js",".././node_modules/@smithy/url-parser/dist-cjs/index.js",".././node_modules/@smithy/util-base64/dist-cjs/fromBase64.js",".././node_modules/@smithy/util-base64/dist-cjs/index.js",".././node_modules/@smithy/util-base64/dist-cjs/toBase64.js",".././node_modules/@smithy/util-body-length-browser/dist-cjs/index.js",".././node_modules/@smithy/util-body-length-node/dist-cjs/index.js",".././node_modules/@smithy/util-buffer-from/dist-cjs/index.js",".././node_modules/@smithy/util-config-provider/dist-cjs/index.js",".././node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js",".././node_modules/@smithy/util-endpoints/dist-cjs/index.js",".././node_modules/@smithy/util-hex-encoding/dist-cjs/index.js",".././node_modules/@smithy/util-middleware/dist-cjs/index.js",".././node_modules/@smithy/util-retry/dist-cjs/index.js",".././node_modules/@smithy/util-stream/dist-cjs/ByteArrayCollector.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.js",".././node_modules/@smithy/util-stream/dist-cjs/createBufferedReadable.js",".././node_modules/@smithy/util-stream/dist-cjs/createBufferedReadableStream.js",".././node_modules/@smithy/util-stream/dist-cjs/getAwsChunkedEncodingStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/getAwsChunkedEncodingStream.js",".././node_modules/@smithy/util-stream/dist-cjs/headStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/headStream.js",".././node_modules/@smithy/util-stream/dist-cjs/index.js",".././node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.js",".././node_modules/@smithy/util-stream/dist-cjs/splitStream.browser.js",".././node_modules/@smithy/util-stream/dist-cjs/splitStream.js",".././node_modules/@smithy/util-stream/dist-cjs/stream-type-check.js",".././node_modules/@smithy/util-uri-escape/dist-cjs/index.js",".././node_modules/@smithy/util-utf8/dist-cjs/index.js",".././node_modules/@smithy/util-waiter/dist-cjs/index.js",".././node_modules/@smithy/uuid/dist-cjs/index.js",".././node_modules/@smithy/uuid/dist-cjs/randomUUID.js",".././node_modules/abort-controller/dist/abort-controller.js",".././node_modules/ansi-styles/index.js",".././node_modules/archiver-utils/file.js",".././node_modules/archiver-utils/index.js",".././node_modules/archiver/index.js",".././node_modules/archiver/lib/core.js",".././node_modules/archiver/lib/error.js",".././node_modules/archiver/lib/plugins/json.js",".././node_modules/archiver/lib/plugins/tar.js",".././node_modules/archiver/lib/plugins/zip.js",".././node_modules/astral-regex/index.js",".././node_modules/async/dist/async.js",".././node_modules/b4a/index.js",".././node_modules/balanced-match/index.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/brace-expansion/index.js",".././node_modules/braces/index.js",".././node_modules/braces/lib/compile.js",".././node_modules/braces/lib/constants.js",".././node_modules/braces/lib/expand.js",".././node_modules/braces/lib/parse.js",".././node_modules/braces/lib/stringify.js",".././node_modules/braces/lib/utils.js",".././node_modules/chalk/source/index.js",".././node_modules/chalk/source/templates.js",".././node_modules/chalk/source/util.js",".././node_modules/chokidar/handler.js",".././node_modules/chokidar/index.js",".././node_modules/color-convert/conversions.js",".././node_modules/color-convert/index.js",".././node_modules/color-convert/route.js",".././node_modules/color-name/index.js",".././node_modules/compress-commons/lib/archivers/archive-entry.js",".././node_modules/compress-commons/lib/archivers/archive-output-stream.js",".././node_modules/compress-commons/lib/archivers/zip/constants.js",".././node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js",".././node_modules/compress-commons/lib/archivers/zip/unix-stat.js",".././node_modules/compress-commons/lib/archivers/zip/util.js",".././node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js",".././node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js",".././node_modules/compress-commons/lib/compress-commons.js",".././node_modules/compress-commons/lib/util/index.js",".././node_modules/core-util-is/lib/util.js",".././node_modules/crc-32/crc32.js",".././node_modules/crc32-stream/lib/crc32-stream.js",".././node_modules/crc32-stream/lib/deflate-crc32-stream.js",".././node_modules/crc32-stream/lib/index.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/emoji-regex/index.js",".././node_modules/event-target-shim/dist/event-target-shim.js",".././node_modules/fast-deep-equal/index.js",".././node_modules/fast-fifo/fixed-size.js",".././node_modules/fast-fifo/index.js",".././node_modules/fast-glob/out/index.js",".././node_modules/fast-glob/out/managers/tasks.js",".././node_modules/fast-glob/out/providers/async.js",".././node_modules/fast-glob/out/providers/filters/deep.js",".././node_modules/fast-glob/out/providers/filters/entry.js",".././node_modules/fast-glob/out/providers/filters/error.js",".././node_modules/fast-glob/out/providers/matchers/matcher.js",".././node_modules/fast-glob/out/providers/matchers/partial.js",".././node_modules/fast-glob/out/providers/provider.js",".././node_modules/fast-glob/out/providers/stream.js",".././node_modules/fast-glob/out/providers/sync.js",".././node_modules/fast-glob/out/providers/transformers/entry.js",".././node_modules/fast-glob/out/readers/async.js",".././node_modules/fast-glob/out/readers/reader.js",".././node_modules/fast-glob/out/readers/stream.js",".././node_modules/fast-glob/out/readers/sync.js",".././node_modules/fast-glob/out/settings.js",".././node_modules/fast-glob/out/utils/array.js",".././node_modules/fast-glob/out/utils/errno.js",".././node_modules/fast-glob/out/utils/fs.js",".././node_modules/fast-glob/out/utils/index.js",".././node_modules/fast-glob/out/utils/path.js",".././node_modules/fast-glob/out/utils/pattern.js",".././node_modules/fast-glob/out/utils/stream.js",".././node_modules/fast-glob/out/utils/string.js",".././node_modules/fast-xml-parser/src/fxp.js",".././node_modules/fast-xml-parser/src/util.js",".././node_modules/fast-xml-parser/src/validator.js",".././node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js",".././node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js",".././node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js",".././node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js",".././node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js",".././node_modules/fast-xml-parser/src/xmlparser/XMLParser.js",".././node_modules/fast-xml-parser/src/xmlparser/node2json.js",".././node_modules/fast-xml-parser/src/xmlparser/xmlNode.js",".././node_modules/fastq/queue.js",".././node_modules/fill-range/index.js",".././node_modules/fs-extra/lib/copy/copy-sync.js",".././node_modules/fs-extra/lib/copy/copy.js",".././node_modules/fs-extra/lib/copy/index.js",".././node_modules/fs-extra/lib/empty/index.js",".././node_modules/fs-extra/lib/ensure/file.js",".././node_modules/fs-extra/lib/ensure/index.js",".././node_modules/fs-extra/lib/ensure/link.js",".././node_modules/fs-extra/lib/ensure/symlink-paths.js",".././node_modules/fs-extra/lib/ensure/symlink-type.js",".././node_modules/fs-extra/lib/ensure/symlink.js",".././node_modules/fs-extra/lib/fs/index.js",".././node_modules/fs-extra/lib/index.js",".././node_modules/fs-extra/lib/json/index.js",".././node_modules/fs-extra/lib/json/jsonfile.js",".././node_modules/fs-extra/lib/json/output-json-sync.js",".././node_modules/fs-extra/lib/json/output-json.js",".././node_modules/fs-extra/lib/mkdirs/index.js",".././node_modules/fs-extra/lib/mkdirs/make-dir.js",".././node_modules/fs-extra/lib/mkdirs/utils.js",".././node_modules/fs-extra/lib/move/index.js",".././node_modules/fs-extra/lib/move/move-sync.js",".././node_modules/fs-extra/lib/move/move.js",".././node_modules/fs-extra/lib/output-file/index.js",".././node_modules/fs-extra/lib/path-exists/index.js",".././node_modules/fs-extra/lib/remove/index.js",".././node_modules/fs-extra/lib/util/async.js",".././node_modules/fs-extra/lib/util/stat.js",".././node_modules/fs-extra/lib/util/utimes.js",".././node_modules/glob-parent/index.js",".././node_modules/graceful-fs/clone.js",".././node_modules/graceful-fs/graceful-fs.js",".././node_modules/graceful-fs/legacy-streams.js",".././node_modules/graceful-fs/polyfills.js",".././node_modules/has-flag/index.js",".././node_modules/inherits/inherits.js",".././node_modules/inherits/inherits_browser.js",".././node_modules/is-extglob/index.js",".././node_modules/is-fullwidth-code-point/index.js",".././node_modules/is-glob/index.js",".././node_modules/is-number/index.js",".././node_modules/is-stream/index.js",".././node_modules/jsonfile/index.js",".././node_modules/jsonfile/utils.js",".././node_modules/lazystream/lib/lazystream.js",".././node_modules/lazystream/node_modules/isarray/index.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_duplex.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_passthrough.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_readable.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_transform.js",".././node_modules/lazystream/node_modules/readable-stream/lib/_stream_writable.js",".././node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/BufferList.js",".././node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/destroy.js",".././node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream.js",".././node_modules/lazystream/node_modules/readable-stream/passthrough.js",".././node_modules/lazystream/node_modules/readable-stream/readable.js",".././node_modules/lazystream/node_modules/safe-buffer/index.js",".././node_modules/lazystream/node_modules/string_decoder/lib/string_decoder.js",".././node_modules/lodash.truncate/index.js",".././node_modules/lodash/_Hash.js",".././node_modules/lodash/_ListCache.js",".././node_modules/lodash/_Map.js",".././node_modules/lodash/_MapCache.js",".././node_modules/lodash/_Set.js",".././node_modules/lodash/_SetCache.js",".././node_modules/lodash/_Symbol.js",".././node_modules/lodash/_apply.js",".././node_modules/lodash/_arrayIncludes.js",".././node_modules/lodash/_arrayIncludesWith.js",".././node_modules/lodash/_arrayLikeKeys.js",".././node_modules/lodash/_arrayMap.js",".././node_modules/lodash/_arrayPush.js",".././node_modules/lodash/_assocIndexOf.js",".././node_modules/lodash/_baseDifference.js",".././node_modules/lodash/_baseFindIndex.js",".././node_modules/lodash/_baseFlatten.js",".././node_modules/lodash/_baseGetTag.js",".././node_modules/lodash/_baseIndexOf.js",".././node_modules/lodash/_baseIsArguments.js",".././node_modules/lodash/_baseIsNaN.js",".././node_modules/lodash/_baseIsNative.js",".././node_modules/lodash/_baseIsTypedArray.js",".././node_modules/lodash/_baseKeysIn.js",".././node_modules/lodash/_baseRest.js",".././node_modules/lodash/_baseSetToString.js",".././node_modules/lodash/_baseTimes.js",".././node_modules/lodash/_baseUnary.js",".././node_modules/lodash/_baseUniq.js",".././node_modules/lodash/_cacheHas.js",".././node_modules/lodash/_coreJsData.js",".././node_modules/lodash/_createSet.js",".././node_modules/lodash/_defineProperty.js",".././node_modules/lodash/_freeGlobal.js",".././node_modules/lodash/_getMapData.js",".././node_modules/lodash/_getNative.js",".././node_modules/lodash/_getPrototype.js",".././node_modules/lodash/_getRawTag.js",".././node_modules/lodash/_getValue.js",".././node_modules/lodash/_hashClear.js",".././node_modules/lodash/_hashDelete.js",".././node_modules/lodash/_hashGet.js",".././node_modules/lodash/_hashHas.js",".././node_modules/lodash/_hashSet.js",".././node_modules/lodash/_isFlattenable.js",".././node_modules/lodash/_isIndex.js",".././node_modules/lodash/_isIterateeCall.js",".././node_modules/lodash/_isKeyable.js",".././node_modules/lodash/_isMasked.js",".././node_modules/lodash/_isPrototype.js",".././node_modules/lodash/_listCacheClear.js",".././node_modules/lodash/_listCacheDelete.js",".././node_modules/lodash/_listCacheGet.js",".././node_modules/lodash/_listCacheHas.js",".././node_modules/lodash/_listCacheSet.js",".././node_modules/lodash/_mapCacheClear.js",".././node_modules/lodash/_mapCacheDelete.js",".././node_modules/lodash/_mapCacheGet.js",".././node_modules/lodash/_mapCacheHas.js",".././node_modules/lodash/_mapCacheSet.js",".././node_modules/lodash/_nativeCreate.js",".././node_modules/lodash/_nativeKeysIn.js",".././node_modules/lodash/_nodeUtil.js",".././node_modules/lodash/_objectToString.js",".././node_modules/lodash/_overArg.js",".././node_modules/lodash/_overRest.js",".././node_modules/lodash/_root.js",".././node_modules/lodash/_setCacheAdd.js",".././node_modules/lodash/_setCacheHas.js",".././node_modules/lodash/_setToArray.js",".././node_modules/lodash/_setToString.js",".././node_modules/lodash/_shortOut.js",".././node_modules/lodash/_strictIndexOf.js",".././node_modules/lodash/_toSource.js",".././node_modules/lodash/constant.js",".././node_modules/lodash/defaults.js",".././node_modules/lodash/difference.js",".././node_modules/lodash/eq.js",".././node_modules/lodash/flatten.js",".././node_modules/lodash/identity.js",".././node_modules/lodash/isArguments.js",".././node_modules/lodash/isArray.js",".././node_modules/lodash/isArrayLike.js",".././node_modules/lodash/isArrayLikeObject.js",".././node_modules/lodash/isBuffer.js",".././node_modules/lodash/isFunction.js",".././node_modules/lodash/isLength.js",".././node_modules/lodash/isObject.js",".././node_modules/lodash/isObjectLike.js",".././node_modules/lodash/isPlainObject.js",".././node_modules/lodash/isTypedArray.js",".././node_modules/lodash/keysIn.js",".././node_modules/lodash/noop.js",".././node_modules/lodash/stubFalse.js",".././node_modules/lodash/union.js",".././node_modules/merge2/index.js",".././node_modules/micromatch/index.js",".././node_modules/micromatch/node_modules/picomatch/index.js",".././node_modules/micromatch/node_modules/picomatch/lib/constants.js",".././node_modules/micromatch/node_modules/picomatch/lib/parse.js",".././node_modules/micromatch/node_modules/picomatch/lib/picomatch.js",".././node_modules/micromatch/node_modules/picomatch/lib/scan.js",".././node_modules/micromatch/node_modules/picomatch/lib/utils.js",".././node_modules/mime/Mime.js",".././node_modules/mime/index.js",".././node_modules/mime/types/other.js",".././node_modules/mime/types/standard.js",".././node_modules/normalize-path/index.js",".././node_modules/once/once.js",".././node_modules/p-limit/index.js",".././node_modules/picomatch/index.js",".././node_modules/picomatch/lib/constants.js",".././node_modules/picomatch/lib/parse.js",".././node_modules/picomatch/lib/picomatch.js",".././node_modules/picomatch/lib/scan.js",".././node_modules/picomatch/lib/utils.js",".././node_modules/process-nextick-args/index.js",".././node_modules/process/index.js",".././node_modules/queue-microtask/index.js",".././node_modules/readable-stream/lib/internal/streams/add-abort-signal.js",".././node_modules/readable-stream/lib/internal/streams/buffer_list.js",".././node_modules/readable-stream/lib/internal/streams/compose.js",".././node_modules/readable-stream/lib/internal/streams/destroy.js",".././node_modules/readable-stream/lib/internal/streams/duplex.js",".././node_modules/readable-stream/lib/internal/streams/duplexify.js",".././node_modules/readable-stream/lib/internal/streams/end-of-stream.js",".././node_modules/readable-stream/lib/internal/streams/from.js",".././node_modules/readable-stream/lib/internal/streams/legacy.js",".././node_modules/readable-stream/lib/internal/streams/operators.js",".././node_modules/readable-stream/lib/internal/streams/passthrough.js",".././node_modules/readable-stream/lib/internal/streams/pipeline.js",".././node_modules/readable-stream/lib/internal/streams/readable.js",".././node_modules/readable-stream/lib/internal/streams/state.js",".././node_modules/readable-stream/lib/internal/streams/transform.js",".././node_modules/readable-stream/lib/internal/streams/utils.js",".././node_modules/readable-stream/lib/internal/streams/writable.js",".././node_modules/readable-stream/lib/internal/validators.js",".././node_modules/readable-stream/lib/ours/errors.js",".././node_modules/readable-stream/lib/ours/index.js",".././node_modules/readable-stream/lib/ours/primordials.js",".././node_modules/readable-stream/lib/ours/util.js",".././node_modules/readable-stream/lib/ours/util/inspect.js",".././node_modules/readable-stream/lib/stream.js",".././node_modules/readable-stream/lib/stream/promises.js",".././node_modules/readdir-glob/index.js",".././node_modules/readdir-glob/node_modules/minimatch/lib/path.js",".././node_modules/readdir-glob/node_modules/minimatch/minimatch.js",".././node_modules/readdirp/index.js",".././node_modules/reusify/reusify.js",".././node_modules/run-parallel/index.js",".././node_modules/safe-buffer/index.js",".././node_modules/slice-ansi/index.js",".././node_modules/split2/index.js",".././node_modules/streamx/index.js",".././node_modules/string-width/index.js",".././node_modules/string-width/node_modules/ansi-regex/index.js",".././node_modules/string-width/node_modules/strip-ansi/index.js",".././node_modules/string_decoder/lib/string_decoder.js",".././node_modules/strnum/strnum.js",".././node_modules/supports-color/index.js",".././node_modules/table/dist/src/alignSpanningCell.js",".././node_modules/table/dist/src/alignString.js",".././node_modules/table/dist/src/alignTableData.js",".././node_modules/table/dist/src/calculateCellHeight.js",".././node_modules/table/dist/src/calculateMaximumColumnWidths.js",".././node_modules/table/dist/src/calculateOutputColumnWidths.js",".././node_modules/table/dist/src/calculateRowHeights.js",".././node_modules/table/dist/src/calculateSpanningCellWidth.js",".././node_modules/table/dist/src/createStream.js",".././node_modules/table/dist/src/drawBorder.js",".././node_modules/table/dist/src/drawContent.js",".././node_modules/table/dist/src/drawRow.js",".././node_modules/table/dist/src/drawTable.js",".././node_modules/table/dist/src/generated/validators.js",".././node_modules/table/dist/src/getBorderCharacters.js",".././node_modules/table/dist/src/index.js",".././node_modules/table/dist/src/injectHeaderConfig.js",".././node_modules/table/dist/src/makeRangeConfig.js",".././node_modules/table/dist/src/makeStreamConfig.js",".././node_modules/table/dist/src/makeTableConfig.js",".././node_modules/table/dist/src/mapDataUsingRowHeights.js",".././node_modules/table/dist/src/padTableData.js",".././node_modules/table/dist/src/spanningCellManager.js",".././node_modules/table/dist/src/stringifyTableData.js",".././node_modules/table/dist/src/table.js",".././node_modules/table/dist/src/truncateTableData.js",".././node_modules/table/dist/src/types/api.js",".././node_modules/table/dist/src/utils.js",".././node_modules/table/dist/src/validateConfig.js",".././node_modules/table/dist/src/validateSpanningCellConfig.js",".././node_modules/table/dist/src/validateTableData.js",".././node_modules/table/dist/src/wrapCell.js",".././node_modules/table/dist/src/wrapString.js",".././node_modules/table/dist/src/wrapWord.js",".././node_modules/table/node_modules/ajv/dist/runtime/equal.js",".././node_modules/table/node_modules/ansi-regex/index.js",".././node_modules/table/node_modules/strip-ansi/index.js",".././node_modules/tar-stream/constants.js",".././node_modules/tar-stream/extract.js",".././node_modules/tar-stream/headers.js",".././node_modules/tar-stream/index.js",".././node_modules/tar-stream/pack.js",".././node_modules/text-decoder/index.js",".././node_modules/text-decoder/lib/pass-through-decoder.js",".././node_modules/text-decoder/lib/utf8-decoder.js",".././node_modules/to-regex-range/index.js",".././node_modules/tslib/tslib.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/undici/index.js",".././node_modules/undici/lib/agent.js",".././node_modules/undici/lib/api/abort-signal.js",".././node_modules/undici/lib/api/api-connect.js",".././node_modules/undici/lib/api/api-pipeline.js",".././node_modules/undici/lib/api/api-request.js",".././node_modules/undici/lib/api/api-stream.js",".././node_modules/undici/lib/api/api-upgrade.js",".././node_modules/undici/lib/api/index.js",".././node_modules/undici/lib/api/readable.js",".././node_modules/undici/lib/api/util.js",".././node_modules/undici/lib/balanced-pool.js",".././node_modules/undici/lib/cache/cache.js",".././node_modules/undici/lib/cache/cachestorage.js",".././node_modules/undici/lib/cache/symbols.js",".././node_modules/undici/lib/cache/util.js",".././node_modules/undici/lib/client.js",".././node_modules/undici/lib/compat/dispatcher-weakref.js",".././node_modules/undici/lib/cookies/constants.js",".././node_modules/undici/lib/cookies/index.js",".././node_modules/undici/lib/cookies/parse.js",".././node_modules/undici/lib/cookies/util.js",".././node_modules/undici/lib/core/connect.js",".././node_modules/undici/lib/core/constants.js",".././node_modules/undici/lib/core/errors.js",".././node_modules/undici/lib/core/request.js",".././node_modules/undici/lib/core/symbols.js",".././node_modules/undici/lib/core/util.js",".././node_modules/undici/lib/dispatcher-base.js",".././node_modules/undici/lib/dispatcher.js",".././node_modules/undici/lib/fetch/body.js",".././node_modules/undici/lib/fetch/constants.js",".././node_modules/undici/lib/fetch/dataURL.js",".././node_modules/undici/lib/fetch/file.js",".././node_modules/undici/lib/fetch/formdata.js",".././node_modules/undici/lib/fetch/global.js",".././node_modules/undici/lib/fetch/headers.js",".././node_modules/undici/lib/fetch/index.js",".././node_modules/undici/lib/fetch/request.js",".././node_modules/undici/lib/fetch/response.js",".././node_modules/undici/lib/fetch/symbols.js",".././node_modules/undici/lib/fetch/util.js",".././node_modules/undici/lib/fetch/webidl.js",".././node_modules/undici/lib/fileapi/encoding.js",".././node_modules/undici/lib/fileapi/filereader.js",".././node_modules/undici/lib/fileapi/progressevent.js",".././node_modules/undici/lib/fileapi/symbols.js",".././node_modules/undici/lib/fileapi/util.js",".././node_modules/undici/lib/global.js",".././node_modules/undici/lib/handler/DecoratorHandler.js",".././node_modules/undici/lib/handler/RedirectHandler.js",".././node_modules/undici/lib/handler/RetryHandler.js",".././node_modules/undici/lib/interceptor/redirectInterceptor.js",".././node_modules/undici/lib/llhttp/constants.js",".././node_modules/undici/lib/llhttp/llhttp-wasm.js",".././node_modules/undici/lib/llhttp/llhttp_simd-wasm.js",".././node_modules/undici/lib/llhttp/utils.js",".././node_modules/undici/lib/mock/mock-agent.js",".././node_modules/undici/lib/mock/mock-client.js",".././node_modules/undici/lib/mock/mock-errors.js",".././node_modules/undici/lib/mock/mock-interceptor.js",".././node_modules/undici/lib/mock/mock-pool.js",".././node_modules/undici/lib/mock/mock-symbols.js",".././node_modules/undici/lib/mock/mock-utils.js",".././node_modules/undici/lib/mock/pending-interceptors-formatter.js",".././node_modules/undici/lib/mock/pluralizer.js",".././node_modules/undici/lib/node/fixed-queue.js",".././node_modules/undici/lib/pool-base.js",".././node_modules/undici/lib/pool-stats.js",".././node_modules/undici/lib/pool.js",".././node_modules/undici/lib/proxy-agent.js",".././node_modules/undici/lib/timers.js",".././node_modules/undici/lib/websocket/connection.js",".././node_modules/undici/lib/websocket/constants.js",".././node_modules/undici/lib/websocket/events.js",".././node_modules/undici/lib/websocket/frame.js",".././node_modules/undici/lib/websocket/receiver.js",".././node_modules/undici/lib/websocket/symbols.js",".././node_modules/undici/lib/websocket/util.js",".././node_modules/undici/lib/websocket/websocket.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/universalify/index.js",".././node_modules/util-deprecate/node.js",".././node_modules/wrap-ansi/index.js",".././node_modules/wrap-ansi/node_modules/ansi-regex/index.js",".././node_modules/wrap-ansi/node_modules/strip-ansi/index.js",".././node_modules/wrappy/wrappy.js",".././node_modules/yocto-queue/index.js",".././node_modules/zip-stream/index.js","../external node-commonjs \"assert\"","../external node-commonjs \"async_hooks\"","../external node-commonjs \"buffer\"","../external node-commonjs \"child_process\"","../external node-commonjs \"console\"","../external node-commonjs \"constants\"","../external node-commonjs \"crypto\"","../external node-commonjs \"diagnostics_channel\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"fs/promises\"","../external node-commonjs \"http\"","../external node-commonjs \"http2\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"node:async_hooks\"","../external node-commonjs \"node:child_process\"","../external node-commonjs \"node:crypto\"","../external node-commonjs \"node:events\"","../external node-commonjs \"node:fs\"","../external node-commonjs \"node:fs/promises\"","../external node-commonjs \"node:http\"","../external node-commonjs \"node:http2\"","../external node-commonjs \"node:https\"","../external node-commonjs \"node:os\"","../external node-commonjs \"node:path\"","../external node-commonjs \"node:process\"","../external node-commonjs \"node:stream\"","../external node-commonjs \"node:string_decoder\"","../external node-commonjs \"node:url\"","../external node-commonjs \"node:util\"","../external node-commonjs \"node:zlib\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"perf_hooks\"","../external node-commonjs \"process\"","../external node-commonjs \"querystring\"","../external node-commonjs \"stream\"","../external node-commonjs \"stream/web\"","../external node-commonjs \"string_decoder\"","../external node-commonjs \"timers\"","../external node-commonjs \"tls\"","../external node-commonjs \"tty\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"util/types\"","../external node-commonjs \"worker_threads\"","../external node-commonjs \"zlib\"",".././node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js",".././node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js",".././node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js",".././node_modules/@fastify/busboy/deps/streamsearch/sbmh.js",".././node_modules/@fastify/busboy/lib/main.js",".././node_modules/@fastify/busboy/lib/types/multipart.js",".././node_modules/@fastify/busboy/lib/types/urlencoded.js",".././node_modules/@fastify/busboy/lib/utils/Decoder.js",".././node_modules/@fastify/busboy/lib/utils/basename.js",".././node_modules/@fastify/busboy/lib/utils/decodeText.js",".././node_modules/@fastify/busboy/lib/utils/getLimit.js",".././node_modules/@fastify/busboy/lib/utils/parseParams.js",".././node_modules/@isaacs/balanced-match/dist/commonjs/index.js",".././node_modules/@isaacs/brace-expansion/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/glob.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/has-magic.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/ignore.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/pattern.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/processor.js",".././node_modules/archiver-utils/node_modules/glob/dist/commonjs/walker.js",".././node_modules/archiver-utils/node_modules/lru-cache/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/ast.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/brace-expressions.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/escape.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/index.js",".././node_modules/archiver-utils/node_modules/minimatch/dist/commonjs/unescape.js",".././node_modules/archiver-utils/node_modules/path-scurry/dist/commonjs/index.js",".././node_modules/diff/libcjs/convert/dmp.js",".././node_modules/diff/libcjs/convert/xml.js",".././node_modules/diff/libcjs/diff/array.js",".././node_modules/diff/libcjs/diff/base.js",".././node_modules/diff/libcjs/diff/character.js",".././node_modules/diff/libcjs/diff/css.js",".././node_modules/diff/libcjs/diff/json.js",".././node_modules/diff/libcjs/diff/line.js",".././node_modules/diff/libcjs/diff/sentence.js",".././node_modules/diff/libcjs/diff/word.js",".././node_modules/diff/libcjs/index.js",".././node_modules/diff/libcjs/patch/apply.js",".././node_modules/diff/libcjs/patch/create.js",".././node_modules/diff/libcjs/patch/line-endings.js",".././node_modules/diff/libcjs/patch/parse.js",".././node_modules/diff/libcjs/patch/reverse.js",".././node_modules/diff/libcjs/util/distance-iterator.js",".././node_modules/diff/libcjs/util/params.js",".././node_modules/diff/libcjs/util/string.js",".././node_modules/glob/dist/commonjs/glob.js",".././node_modules/glob/dist/commonjs/has-magic.js",".././node_modules/glob/dist/commonjs/ignore.js",".././node_modules/glob/dist/commonjs/index.js",".././node_modules/glob/dist/commonjs/pattern.js",".././node_modules/glob/dist/commonjs/processor.js",".././node_modules/glob/dist/commonjs/walker.js",".././node_modules/minimatch/dist/commonjs/assert-valid-pattern.js",".././node_modules/minimatch/dist/commonjs/ast.js",".././node_modules/minimatch/dist/commonjs/brace-expressions.js",".././node_modules/minimatch/dist/commonjs/escape.js",".././node_modules/minimatch/dist/commonjs/index.js",".././node_modules/minimatch/dist/commonjs/unescape.js",".././node_modules/minipass/dist/commonjs/index.js",".././node_modules/path-scurry/dist/commonjs/index.js",".././node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js",".././node_modules/uuid/dist/cjs/index.js",".././node_modules/uuid/dist/cjs/max.js",".././node_modules/uuid/dist/cjs/md5.js",".././node_modules/uuid/dist/cjs/native.js",".././node_modules/uuid/dist/cjs/nil.js",".././node_modules/uuid/dist/cjs/parse.js",".././node_modules/uuid/dist/cjs/regex.js",".././node_modules/uuid/dist/cjs/rng.js",".././node_modules/uuid/dist/cjs/sha1.js",".././node_modules/uuid/dist/cjs/stringify.js",".././node_modules/uuid/dist/cjs/v1.js",".././node_modules/uuid/dist/cjs/v1ToV6.js",".././node_modules/uuid/dist/cjs/v3.js",".././node_modules/uuid/dist/cjs/v35.js",".././node_modules/uuid/dist/cjs/v4.js",".././node_modules/uuid/dist/cjs/v5.js",".././node_modules/uuid/dist/cjs/v6.js",".././node_modules/uuid/dist/cjs/v6ToV1.js",".././node_modules/uuid/dist/cjs/v7.js",".././node_modules/uuid/dist/cjs/validate.js",".././node_modules/uuid/dist/cjs/version.js",".././node_modules/yaml/dist/Document-9b4560a1.js",".././node_modules/yaml/dist/PlainValue-ec8e588e.js",".././node_modules/yaml/dist/Schema-88e323a7.js",".././node_modules/yaml/dist/index.js",".././node_modules/yaml/dist/parse-cst.js",".././node_modules/yaml/dist/resolveSeq-d03cb037.js",".././node_modules/yaml/dist/types.js",".././node_modules/yaml/dist/warnings-1000a372.js",".././node_modules/yaml/index.js",".././node_modules/yaml/types.js",".././node_modules/@aws-sdk/client-bedrock-agentcore-control/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-cloudformation/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-cognito-identity/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-ecr/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-s3/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-secrets-manager/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/client-sts/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/credential-providers/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/@aws-sdk/middleware-sdk-s3/node_modules/fast-xml-parser/lib/fxp.cjs",".././node_modules/buffer-crc32/dist/index.cjs","../webpack/bootstrap","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/compat","../webpack/runtime/require chunk loading","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.run = run;\nconst core_1 = require(\"@actions/core\");\nconst github = __importStar(require(\"@actions/github\"));\nconst toolkit_lib_1 = require(\"@aws-cdk/toolkit-lib\");\nconst comment_1 = require(\"./comment\");\nconst stage_processor_1 = require(\"./stage-processor\");\nasync function run() {\n    const inputs = {\n        title: (0, core_1.getInput)('title') || undefined,\n        defaultStageDisplayName: (0, core_1.getInput)('defaultStageDisplayName', {\n            required: true,\n        }),\n        allowedDestroyTypes: (0, core_1.getMultilineInput)('allowedDestroyTypes'),\n        failOnDestructiveChanges: (0, core_1.getBooleanInput)('failOnDestructiveChanges'),\n        githubToken: (0, core_1.getInput)('githubToken'),\n        stackSelectorPatterns: (0, core_1.getMultilineInput)('stackSelectorPatterns'),\n        stackSelectionStrategy: (0, core_1.getInput)('stackSelectionStrategy', {\n            required: true,\n        }),\n        noFailOnDestructiveChanges: (0, core_1.getMultilineInput)('noFailOnDestructiveChanges'),\n        cdkOutDir: (0, core_1.getInput)('cdkOutDir', { required: true }),\n        diffMethod: (0, core_1.getInput)('diffMethod', { required: true }),\n    };\n    if (inputs.stackSelectorPatterns.length > 0 &&\n        inputs.stackSelectionStrategy === 'all-stacks') {\n        inputs.stackSelectionStrategy = 'pattern-must-match';\n    }\n    (0, core_1.debug)(`Inputs: ${JSON.stringify(inputs, null, 2)}`);\n    const octokit = github.getOctokit(inputs.githubToken);\n    const context = github.context;\n    const toolkit = new toolkit_lib_1.Toolkit({\n        ioHost: new toolkit_lib_1.NonInteractiveIoHost({\n            logLevel: 'info',\n        }),\n    });\n    const method = inputs.diffMethod === 'template-only'\n        ? toolkit_lib_1.DiffMethod.TemplateOnly()\n        : toolkit_lib_1.DiffMethod.ChangeSet();\n    try {\n        const comments = new comment_1.Comments(octokit, context);\n        const processor = new stage_processor_1.AssemblyProcessor({\n            ...inputs,\n            diffMethod: method,\n            toolkit,\n        });\n        try {\n            await processor.processStages(inputs.noFailOnDestructiveChanges);\n        }\n        catch (e) {\n            console.error('Error running process stages: ', e);\n            throw e;\n        }\n        try {\n            await processor.commentStages(comments);\n        }\n        catch (e) {\n            console.error('Error commenting stages: ', e);\n            throw e;\n        }\n        if (processor.hasDestructiveChanges && inputs.failOnDestructiveChanges) {\n            throw new Error('There are destructive changes! See PR comment for details.');\n        }\n    }\n    catch (e) {\n        console.error('Error performing diff: ', e);\n        throw e;\n    }\n    return;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxrQkFzRUM7QUF0RkQsd0NBS3VCO0FBQ3ZCLHdEQUEwQztBQUMxQyxzREFJOEI7QUFDOUIsdUNBQXFDO0FBRXJDLHVEQUFzRDtBQUUvQyxLQUFLLFVBQVUsR0FBRztJQUN2QixNQUFNLE1BQU0sR0FBVztRQUNyQixLQUFLLEVBQUUsSUFBQSxlQUFRLEVBQUMsT0FBTyxDQUFDLElBQUksU0FBUztRQUNyQyx1QkFBdUIsRUFBRSxJQUFBLGVBQVEsRUFBQyx5QkFBeUIsRUFBRTtZQUMzRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixtQkFBbUIsRUFBRSxJQUFBLHdCQUFpQixFQUFDLHFCQUFxQixDQUFDO1FBQzdELHdCQUF3QixFQUFFLElBQUEsc0JBQWUsRUFBQywwQkFBMEIsQ0FBQztRQUNyRSxXQUFXLEVBQUUsSUFBQSxlQUFRLEVBQUMsYUFBYSxDQUFDO1FBQ3BDLHFCQUFxQixFQUFFLElBQUEsd0JBQWlCLEVBQUMsdUJBQXVCLENBQUM7UUFDakUsc0JBQXNCLEVBQUUsSUFBQSxlQUFRLEVBQUMsd0JBQXdCLEVBQUU7WUFDekQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsMEJBQTBCLEVBQUUsSUFBQSx3QkFBaUIsRUFBQyw0QkFBNEIsQ0FBQztRQUMzRSxTQUFTLEVBQUUsSUFBQSxlQUFRLEVBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3BELFVBQVUsRUFBRSxJQUFBLGVBQVEsRUFBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDdkQsQ0FBQztJQUVGLElBQ0UsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxzQkFBc0IsS0FBSyxZQUFZLEVBQzlDLENBQUM7UUFDRCxNQUFNLENBQUMsc0JBQXNCLEdBQUcsb0JBQW9CLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUEsWUFBSyxFQUFDLFdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVwRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBRS9CLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQU8sQ0FBQztRQUMxQixNQUFNLEVBQUUsSUFBSSxrQ0FBb0IsQ0FBQztZQUMvQixRQUFRLEVBQUUsTUFBTTtTQUNqQixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxNQUFNLEdBQ1YsTUFBTSxDQUFDLFVBQVUsS0FBSyxlQUFlO1FBQ25DLENBQUMsQ0FBQyx3QkFBVSxDQUFDLFlBQVksRUFBRTtRQUMzQixDQUFDLENBQUMsd0JBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksbUNBQWlCLENBQUM7WUFDdEMsR0FBRyxNQUFNO1lBQ1QsVUFBVSxFQUFFLE1BQU07WUFDbEIsT0FBTztTQUNSLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLHFCQUFxQixJQUFJLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7SUFDRCxPQUFPO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldElucHV0LFxuICBnZXRCb29sZWFuSW5wdXQsXG4gIGdldE11bHRpbGluZUlucHV0LFxuICBkZWJ1Zyxcbn0gZnJvbSAnQGFjdGlvbnMvY29yZSc7XG5pbXBvcnQgKiBhcyBnaXRodWIgZnJvbSAnQGFjdGlvbnMvZ2l0aHViJztcbmltcG9ydCB7XG4gIERpZmZNZXRob2QsXG4gIE5vbkludGVyYWN0aXZlSW9Ib3N0LFxuICBUb29sa2l0LFxufSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgeyBDb21tZW50cyB9IGZyb20gJy4vY29tbWVudCc7XG5pbXBvcnQgeyBJbnB1dHMgfSBmcm9tICcuL2lucHV0cyc7XG5pbXBvcnQgeyBBc3NlbWJseVByb2Nlc3NvciB9IGZyb20gJy4vc3RhZ2UtcHJvY2Vzc29yJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bigpIHtcbiAgY29uc3QgaW5wdXRzOiBJbnB1dHMgPSB7XG4gICAgdGl0bGU6IGdldElucHV0KCd0aXRsZScpIHx8IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0U3RhZ2VEaXNwbGF5TmFtZTogZ2V0SW5wdXQoJ2RlZmF1bHRTdGFnZURpc3BsYXlOYW1lJywge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgYWxsb3dlZERlc3Ryb3lUeXBlczogZ2V0TXVsdGlsaW5lSW5wdXQoJ2FsbG93ZWREZXN0cm95VHlwZXMnKSxcbiAgICBmYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXM6IGdldEJvb2xlYW5JbnB1dCgnZmFpbE9uRGVzdHJ1Y3RpdmVDaGFuZ2VzJyksXG4gICAgZ2l0aHViVG9rZW46IGdldElucHV0KCdnaXRodWJUb2tlbicpLFxuICAgIHN0YWNrU2VsZWN0b3JQYXR0ZXJuczogZ2V0TXVsdGlsaW5lSW5wdXQoJ3N0YWNrU2VsZWN0b3JQYXR0ZXJucycpLFxuICAgIHN0YWNrU2VsZWN0aW9uU3RyYXRlZ3k6IGdldElucHV0KCdzdGFja1NlbGVjdGlvblN0cmF0ZWd5Jywge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgbm9GYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXM6IGdldE11bHRpbGluZUlucHV0KCdub0ZhaWxPbkRlc3RydWN0aXZlQ2hhbmdlcycpLFxuICAgIGNka091dERpcjogZ2V0SW5wdXQoJ2Nka091dERpcicsIHsgcmVxdWlyZWQ6IHRydWUgfSksXG4gICAgZGlmZk1ldGhvZDogZ2V0SW5wdXQoJ2RpZmZNZXRob2QnLCB7IHJlcXVpcmVkOiB0cnVlIH0pLFxuICB9O1xuXG4gIGlmIChcbiAgICBpbnB1dHMuc3RhY2tTZWxlY3RvclBhdHRlcm5zLmxlbmd0aCA+IDAgJiZcbiAgICBpbnB1dHMuc3RhY2tTZWxlY3Rpb25TdHJhdGVneSA9PT0gJ2FsbC1zdGFja3MnXG4gICkge1xuICAgIGlucHV0cy5zdGFja1NlbGVjdGlvblN0cmF0ZWd5ID0gJ3BhdHRlcm4tbXVzdC1tYXRjaCc7XG4gIH1cblxuICBkZWJ1ZyhgSW5wdXRzOiAke0pTT04uc3RyaW5naWZ5KGlucHV0cywgbnVsbCwgMil9YCk7XG5cbiAgY29uc3Qgb2N0b2tpdCA9IGdpdGh1Yi5nZXRPY3Rva2l0KGlucHV0cy5naXRodWJUb2tlbik7XG4gIGNvbnN0IGNvbnRleHQgPSBnaXRodWIuY29udGV4dDtcblxuICBjb25zdCB0b29sa2l0ID0gbmV3IFRvb2xraXQoe1xuICAgIGlvSG9zdDogbmV3IE5vbkludGVyYWN0aXZlSW9Ib3N0KHtcbiAgICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgfSksXG4gIH0pO1xuICBjb25zdCBtZXRob2QgPVxuICAgIGlucHV0cy5kaWZmTWV0aG9kID09PSAndGVtcGxhdGUtb25seSdcbiAgICAgID8gRGlmZk1ldGhvZC5UZW1wbGF0ZU9ubHkoKVxuICAgICAgOiBEaWZmTWV0aG9kLkNoYW5nZVNldCgpO1xuICB0cnkge1xuICAgIGNvbnN0IGNvbW1lbnRzID0gbmV3IENvbW1lbnRzKG9jdG9raXQsIGNvbnRleHQpO1xuICAgIGNvbnN0IHByb2Nlc3NvciA9IG5ldyBBc3NlbWJseVByb2Nlc3Nvcih7XG4gICAgICAuLi5pbnB1dHMsXG4gICAgICBkaWZmTWV0aG9kOiBtZXRob2QsXG4gICAgICB0b29sa2l0LFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc1N0YWdlcyhpbnB1dHMubm9GYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXMpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcnVubmluZyBwcm9jZXNzIHN0YWdlczogJywgZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwcm9jZXNzb3IuY29tbWVudFN0YWdlcyhjb21tZW50cyk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjb21tZW50aW5nIHN0YWdlczogJywgZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzb3IuaGFzRGVzdHJ1Y3RpdmVDaGFuZ2VzICYmIGlucHV0cy5mYWlsT25EZXN0cnVjdGl2ZUNoYW5nZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZXJlIGFyZSBkZXN0cnVjdGl2ZSBjaGFuZ2VzISBTZWUgUFIgY29tbWVudCBmb3IgZGV0YWlscy4nLFxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBlcmZvcm1pbmcgZGlmZjogJywgZSk7XG4gICAgdGhyb3cgZTtcbiAgfVxuICByZXR1cm47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssemblyManifestReader = void 0;\n/**\n * Reads a Cloud Assembly manifest\n */\nclass AssemblyManifestReader {\n    constructor(assembly, stackDiffs) {\n        this.assembly = assembly;\n        this.stackDiffs = stackDiffs;\n    }\n    inDiff(stackName) {\n        return !!this.stackDiffs[stackName];\n    }\n    /**\n     * Get the stacks from the manifest\n     * returns a map of artifactId to CloudFormation template\n     */\n    get stacks() {\n        const stacks = [];\n        this.assembly.stacks.forEach((stack) => {\n            const stackName = stack.displayName;\n            if (this.inDiff(stackName)) {\n                stacks.push({\n                    name: stackName,\n                });\n            }\n        });\n        return stacks;\n    }\n    /**\n     * Get the stages in the assembly\n     */\n    get stages() {\n        const stages = [];\n        this.assembly.nestedAssemblies.forEach((nestedAssembly) => {\n            const cloudAssembly = new AssemblyManifestReader(nestedAssembly.nestedAssembly, this.stackDiffs);\n            const stacks = cloudAssembly.stacks;\n            if (stacks.length === 0) {\n                return;\n            }\n            stages.push({\n                name: nestedAssembly.displayName ?? nestedAssembly.id,\n                stacks: cloudAssembly.stacks,\n            });\n        });\n        return stages;\n    }\n}\nexports.AssemblyManifestReader = AssemblyManifestReader;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZW1ibHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEJBOztHQUVHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDakMsWUFDbUIsUUFBdUIsRUFDdkIsVUFBNEM7UUFENUMsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFrQztJQUM1RCxDQUFDO0lBRUksTUFBTSxDQUFDLFNBQWlCO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsTUFBTTtRQUNmLE1BQU0sTUFBTSxHQUFnQixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixJQUFJLEVBQUUsU0FBUztpQkFDaEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxNQUFNO1FBQ2YsTUFBTSxNQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3hELE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQXNCLENBQzlDLGNBQWMsQ0FBQyxjQUFjLEVBQzdCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3BDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLElBQUksRUFBRSxjQUFjLENBQUMsV0FBVyxJQUFJLGNBQWMsQ0FBQyxFQUFFO2dCQUNyRCxNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07YUFDN0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFoREQsd0RBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpZmYgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBvbiB0aGUgQ0RLIFN0YWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFnZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2tzIHdpdGhpbiB0aGUgc3RhZ2VcbiAgICovXG4gIHN0YWNrczogU3RhY2tJbmZvW107XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gb24gYSBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2tcbiAgICovXG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyBhIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhc3NlbWJseTogQ2xvdWRBc3NlbWJseSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrRGlmZnM6IHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9LFxuICApIHt9XG5cbiAgcHJpdmF0ZSBpbkRpZmYoc3RhY2tOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0YWNrRGlmZnNbc3RhY2tOYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0YWNrcyBmcm9tIHRoZSBtYW5pZmVzdFxuICAgKiByZXR1cm5zIGEgbWFwIG9mIGFydGlmYWN0SWQgdG8gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhY2tzKCk6IFN0YWNrSW5mb1tdIHtcbiAgICBjb25zdCBzdGFja3M6IFN0YWNrSW5mb1tdID0gW107XG4gICAgdGhpcy5hc3NlbWJseS5zdGFja3MuZm9yRWFjaCgoc3RhY2spID0+IHtcbiAgICAgIGNvbnN0IHN0YWNrTmFtZSA9IHN0YWNrLmRpc3BsYXlOYW1lO1xuICAgICAgaWYgKHRoaXMuaW5EaWZmKHN0YWNrTmFtZSkpIHtcbiAgICAgICAgc3RhY2tzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHN0YWNrTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YWNrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0YWdlcyBpbiB0aGUgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhZ2VzKCk6IFN0YWdlSW5mb1tdIHtcbiAgICBjb25zdCBzdGFnZXM6IFN0YWdlSW5mb1tdID0gW107XG4gICAgdGhpcy5hc3NlbWJseS5uZXN0ZWRBc3NlbWJsaWVzLmZvckVhY2goKG5lc3RlZEFzc2VtYmx5KSA9PiB7XG4gICAgICBjb25zdCBjbG91ZEFzc2VtYmx5ID0gbmV3IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIoXG4gICAgICAgIG5lc3RlZEFzc2VtYmx5Lm5lc3RlZEFzc2VtYmx5LFxuICAgICAgICB0aGlzLnN0YWNrRGlmZnMsXG4gICAgICApO1xuICAgICAgY29uc3Qgc3RhY2tzID0gY2xvdWRBc3NlbWJseS5zdGFja3M7XG4gICAgICBpZiAoc3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdGFnZXMucHVzaCh7XG4gICAgICAgIG5hbWU6IG5lc3RlZEFzc2VtYmx5LmRpc3BsYXlOYW1lID8/IG5lc3RlZEFzc2VtYmx5LmlkLFxuICAgICAgICBzdGFja3M6IGNsb3VkQXNzZW1ibHkuc3RhY2tzLFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YWdlcztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Comments = void 0;\n/**\n * Comments controls interacting with GitHub to make comments\n */\nclass Comments {\n    constructor(octokit, context) {\n        this.octokit = octokit;\n        this.context = context;\n        const payload = context.payload;\n        this.commitSha = payload.pull_request.head.sha;\n        if (!payload.pull_request.number) {\n            throw new Error('Cannot find PR number, is this from a pull request?');\n        }\n        this.issueNumber = this.context.payload.pull_request?.number;\n    }\n    /**\n     * Find the previous comment with the given hash\n     *\n     * @param hash the unique hash identifying the stage comment to look for\n     * @returns the PR comment id or undefined if there is no previous comment\n     */\n    async findPrevious(hash) {\n        const comments = await this.octokit.rest.issues.listComments({\n            ...this.context.repo,\n            issue_number: this.issueNumber,\n        });\n        return comments.data.find((comment) => comment.body?.includes(hash))?.id;\n    }\n    /**\n     * Update an existing comment\n     *\n     * @param hash the unique hash identifying the stage comment to look for\n     * @param content the content of the comment\n     * @param commentId the id of the comment to update\n     */\n    async updateComment(commentId, hash, content) {\n        const timestamp = new Date().toISOString();\n        await this.octokit.rest.issues.updateComment({\n            ...this.context.repo,\n            body: [\n                ``,\n                ...content,\n                '',\n                `_Generated for commit ${this.commitSha} at ${timestamp}_`,\n            ].join('\\n'),\n            comment_id: commentId,\n        });\n    }\n    /**\n     * Create a new comment\n     *\n     * @param hash the unique hash identifying the stage comment to look for\n     * @param content the content of the comment\n     */\n    async createComment(hash, content) {\n        const timestamp = new Date().toISOString();\n        await this.octokit.rest.issues.createComment({\n            ...this.context.repo,\n            body: [\n                ``,\n                ...content,\n                '',\n                `_Generated for commit ${this.commitSha} at ${timestamp}_`,\n            ].join('\\n'),\n            issue_number: this.issueNumber,\n        });\n    }\n}\nexports.Comments = Comments;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBOztHQUVHO0FBQ0gsTUFBYSxRQUFRO0lBR25CLFlBQ21CLE9BQW9DLEVBQ3BDLE9BQWdCO1FBRGhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFakMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQTJCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFPLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUMzRCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNwQixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQ3hCLFNBQWlCLEVBQ2pCLElBQVksRUFDWixPQUFpQjtRQUVqQixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNwQixJQUFJLEVBQUU7Z0JBQ0osa0NBQWtDLElBQUksTUFBTTtnQkFDNUMsR0FBRyxPQUFPO2dCQUNWLEVBQUU7Z0JBQ0YseUJBQXlCLElBQUksQ0FBQyxTQUFTLE9BQU8sU0FBUyxHQUFHO2FBQzNELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNaLFVBQVUsRUFBRSxTQUFTO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBWSxFQUFFLE9BQWlCO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQzNDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ3BCLElBQUksRUFBRTtnQkFDSixrQ0FBa0MsSUFBSSxNQUFNO2dCQUM1QyxHQUFHLE9BQU87Z0JBQ1YsRUFBRTtnQkFDRix5QkFBeUIsSUFBSSxDQUFDLFNBQVMsT0FBTyxTQUFTLEdBQUc7YUFDM0QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1osWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpFRCw0QkF5RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnQGFjdGlvbnMvZ2l0aHViL2xpYi9jb250ZXh0JztcbmltcG9ydCB7IEdpdEh1YiB9IGZyb20gJ0BhY3Rpb25zL2dpdGh1Yi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgUHVsbFJlcXVlc3RFdmVudCB9IGZyb20gJ0BvY3Rva2l0L3dlYmhvb2tzLWRlZmluaXRpb25zL3NjaGVtYSc7XG5cbi8qKlxuICogQ29tbWVudHMgY29udHJvbHMgaW50ZXJhY3Rpbmcgd2l0aCBHaXRIdWIgdG8gbWFrZSBjb21tZW50c1xuICovXG5leHBvcnQgY2xhc3MgQ29tbWVudHMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlzc3VlTnVtYmVyOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWl0U2hhOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2N0b2tpdDogSW5zdGFuY2VUeXBlPHR5cGVvZiBHaXRIdWI+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogQ29udGV4dCxcbiAgKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGNvbnRleHQucGF5bG9hZCBhcyBQdWxsUmVxdWVzdEV2ZW50O1xuICAgIHRoaXMuY29tbWl0U2hhID0gcGF5bG9hZC5wdWxsX3JlcXVlc3QuaGVhZC5zaGE7XG4gICAgaWYgKCFwYXlsb2FkLnB1bGxfcmVxdWVzdC5udW1iZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgUFIgbnVtYmVyLCBpcyB0aGlzIGZyb20gYSBwdWxsIHJlcXVlc3Q/Jyk7XG4gICAgfVxuICAgIHRoaXMuaXNzdWVOdW1iZXIgPSB0aGlzLmNvbnRleHQucGF5bG9hZC5wdWxsX3JlcXVlc3Q/Lm51bWJlciE7XG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgcHJldmlvdXMgY29tbWVudCB3aXRoIHRoZSBnaXZlbiBoYXNoXG4gICAqXG4gICAqIEBwYXJhbSBoYXNoIHRoZSB1bmlxdWUgaGFzaCBpZGVudGlmeWluZyB0aGUgc3RhZ2UgY29tbWVudCB0byBsb29rIGZvclxuICAgKiBAcmV0dXJucyB0aGUgUFIgY29tbWVudCBpZCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgY29tbWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZpbmRQcmV2aW91cyhoYXNoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbW1lbnRzID0gYXdhaXQgdGhpcy5vY3Rva2l0LnJlc3QuaXNzdWVzLmxpc3RDb21tZW50cyh7XG4gICAgICAuLi50aGlzLmNvbnRleHQucmVwbyxcbiAgICAgIGlzc3VlX251bWJlcjogdGhpcy5pc3N1ZU51bWJlcixcbiAgICB9KTtcbiAgICByZXR1cm4gY29tbWVudHMuZGF0YS5maW5kKChjb21tZW50KSA9PiBjb21tZW50LmJvZHk/LmluY2x1ZGVzKGhhc2gpKT8uaWQ7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGFuIGV4aXN0aW5nIGNvbW1lbnRcbiAgICpcbiAgICogQHBhcmFtIGhhc2ggdGhlIHVuaXF1ZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzdGFnZSBjb21tZW50IHRvIGxvb2sgZm9yXG4gICAqIEBwYXJhbSBjb250ZW50IHRoZSBjb250ZW50IG9mIHRoZSBjb21tZW50XG4gICAqIEBwYXJhbSBjb21tZW50SWQgdGhlIGlkIG9mIHRoZSBjb21tZW50IHRvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUNvbW1lbnQoXG4gICAgY29tbWVudElkOiBudW1iZXIsXG4gICAgaGFzaDogc3RyaW5nLFxuICAgIGNvbnRlbnQ6IHN0cmluZ1tdLFxuICApIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgYXdhaXQgdGhpcy5vY3Rva2l0LnJlc3QuaXNzdWVzLnVwZGF0ZUNvbW1lbnQoe1xuICAgICAgLi4udGhpcy5jb250ZXh0LnJlcG8sXG4gICAgICBib2R5OiBbXG4gICAgICAgIGA8IS0tIGNkayBkaWZmIGFjdGlvbiB3aXRoIGhhc2ggJHtoYXNofSAtLT5gLFxuICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAnJyxcbiAgICAgICAgYF9HZW5lcmF0ZWQgZm9yIGNvbW1pdCAke3RoaXMuY29tbWl0U2hhfSBhdCAke3RpbWVzdGFtcH1fYCxcbiAgICAgIF0uam9pbignXFxuJyksXG4gICAgICBjb21tZW50X2lkOiBjb21tZW50SWQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGNvbW1lbnRcbiAgICpcbiAgICogQHBhcmFtIGhhc2ggdGhlIHVuaXF1ZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzdGFnZSBjb21tZW50IHRvIGxvb2sgZm9yXG4gICAqIEBwYXJhbSBjb250ZW50IHRoZSBjb250ZW50IG9mIHRoZSBjb21tZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlQ29tbWVudChoYXNoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgIGF3YWl0IHRoaXMub2N0b2tpdC5yZXN0Lmlzc3Vlcy5jcmVhdGVDb21tZW50KHtcbiAgICAgIC4uLnRoaXMuY29udGV4dC5yZXBvLFxuICAgICAgYm9keTogW1xuICAgICAgICBgPCEtLSBjZGsgZGlmZiBhY3Rpb24gd2l0aCBoYXNoICR7aGFzaH0gLS0+YCxcbiAgICAgICAgLi4uY29udGVudCxcbiAgICAgICAgJycsXG4gICAgICAgIGBfR2VuZXJhdGVkIGZvciBjb21taXQgJHt0aGlzLmNvbW1pdFNoYX0gYXQgJHt0aW1lc3RhbXB9X2AsXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgaXNzdWVfbnVtYmVyOiB0aGlzLmlzc3VlTnVtYmVyLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackDiff = void 0;\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\n/**\n * StackDiff performs the diff on a stack\n */\nclass StackDiff {\n    constructor(stack, allowedDestroyTypes) {\n        this.stack = stack;\n        this.allowedDestroyTypes = allowedDestroyTypes;\n    }\n    /** Performs the diff on the CloudFormation stack\n     * This reads the existing stack from CFN and then uses the cloudformation-diff\n     * package to perform the diff and collect additional information on the type of changes\n     */\n    async diffStack() {\n        const changes = this.evaluateDiff(this.stack.stackName, this.stack.diff);\n        return {\n            diff: this.stack.diff,\n            changes,\n        };\n    }\n    evaluateDiff(templateId, templateDiff) {\n        const changes = {\n            createdResources: 0,\n            removedResources: 0,\n            updatedResources: 0,\n            destructiveChanges: [],\n        };\n        // go through all the resource differences and check for any\n        // \"destructive\" changes\n        templateDiff.resources.forEachDifference((logicalId, change) => {\n            // if the change is a removal it will not show up as a 'changeImpact'\n            // so need to check for it separately, unless it is a resourceType that\n            // has been \"allowed\" to be destroyed\n            const resourceType = change.oldValue?.Type ?? change.newValue?.Type;\n            switch (resourceType) {\n                case 'AWS::CDK::Metadata':\n                    return;\n                case 'AWS::Lambda::Function':\n                    const keys = Object.keys(change.propertyUpdates);\n                    if ((keys.length <= 2 && keys.includes('Code')) ||\n                        keys.includes('Metadata')) {\n                        return;\n                    }\n            }\n            if (change.isUpdate) {\n                changes.updatedResources += 1;\n            }\n            else if (change.isRemoval) {\n                changes.removedResources += 1;\n            }\n            else if (change.isAddition) {\n                changes.createdResources += 1;\n            }\n            if (resourceType && this.allowedDestroyTypes.includes(resourceType)) {\n                return;\n            }\n            if (change.isRemoval) {\n                changes.destructiveChanges.push({\n                    impact: cloudformation_diff_1.ResourceImpact.WILL_DESTROY,\n                    logicalId,\n                    stackName: templateId,\n                });\n            }\n            else {\n                switch (change.changeImpact) {\n                    case cloudformation_diff_1.ResourceImpact.MAY_REPLACE:\n                    case cloudformation_diff_1.ResourceImpact.WILL_ORPHAN:\n                    case cloudformation_diff_1.ResourceImpact.WILL_DESTROY:\n                    case cloudformation_diff_1.ResourceImpact.WILL_REPLACE:\n                        changes.destructiveChanges.push({\n                            impact: change.changeImpact,\n                            logicalId,\n                            stackName: templateId,\n                        });\n                        break;\n                }\n            }\n        });\n        return changes;\n    }\n}\nexports.StackDiff = StackDiff;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUlzQztBQXVFdEM7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFDcEIsWUFDbUIsS0FBb0IsRUFDcEIsbUJBQTZCO1FBRDdCLFVBQUssR0FBTCxLQUFLLENBQWU7UUFDcEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFVO0lBQzdDLENBQUM7SUFFSjs7O09BR0c7SUFDSSxLQUFLLENBQUMsU0FBUztRQUlwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDckIsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUNsQixVQUFrQixFQUNsQixZQUEwQjtRQUUxQixNQUFNLE9BQU8sR0FBa0I7WUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsa0JBQWtCLEVBQUUsRUFBRTtTQUN2QixDQUFDO1FBQ0YsNERBQTREO1FBQzVELHdCQUF3QjtRQUN4QixZQUFZLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUN0QyxDQUFDLFNBQWlCLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1lBQ2hELHFFQUFxRTtZQUNyRSx1RUFBdUU7WUFDdkUscUNBQXFDO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQ3BFLFFBQVEsWUFBWSxFQUFFLENBQUM7Z0JBQ3JCLEtBQUssb0JBQW9CO29CQUN2QixPQUFPO2dCQUNULEtBQUssdUJBQXVCO29CQUMxQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDakQsSUFDRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQ3pCLENBQUM7d0JBQ0QsT0FBTztvQkFDVCxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztpQkFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsSUFBSSxZQUFZLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNyQixPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO29CQUM5QixNQUFNLEVBQUUsb0NBQWMsQ0FBQyxZQUFZO29CQUNuQyxTQUFTO29CQUNULFNBQVMsRUFBRSxVQUFVO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzVCLEtBQUssb0NBQWMsQ0FBQyxXQUFXLENBQUM7b0JBQ2hDLEtBQUssb0NBQWMsQ0FBQyxXQUFXLENBQUM7b0JBQ2hDLEtBQUssb0NBQWMsQ0FBQyxZQUFZLENBQUM7b0JBQ2pDLEtBQUssb0NBQWMsQ0FBQyxZQUFZO3dCQUM5QixPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDOzRCQUM5QixNQUFNLEVBQUUsTUFBTSxDQUFDLFlBQVk7NEJBQzNCLFNBQVM7NEJBQ1QsU0FBUyxFQUFFLFVBQVU7eUJBQ3RCLENBQUMsQ0FBQzt3QkFDSCxNQUFNO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUF0RkQsOEJBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVzb3VyY2VEaWZmZXJlbmNlLFxuICBSZXNvdXJjZUltcGFjdCxcbiAgVGVtcGxhdGVEaWZmLFxufSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0RpZmZJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFja1xuICAgKi9cbiAgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBkaWZmIGZvciB0aGUgc3RhY2tcbiAgICovXG4gIGRpZmY6IFRlbXBsYXRlRGlmZjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZURpZmZJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFnZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2tzIHdpdGhpbiB0aGUgc3RhZ2VcbiAgICovXG4gIHN0YWNrczogU3RhY2tEaWZmSW5mb1tdO1xufVxuXG4vKipcbiAqIERldGFpbHMgb24gd2hhdCBjaGFuZ2VzIGFyZSBvY2N1cnJpbmcgaW4gdGhpcyBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZURldGFpbHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZXNvdXJjZXMgdGhhdCBhcmUgYmVpbmcgdXBkYXRlZFxuICAgKi9cbiAgdXBkYXRlZFJlc291cmNlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHJlc291cmNlcyB0aGF0IGFyZSBiZWluZyByZW1vdmVkXG4gICAqL1xuICByZW1vdmVkUmVzb3VyY2VzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcmVzb3VyY2VzIHRoYXQgYXJlIGJlaW5nIGNyZWF0ZWRcbiAgICovXG4gIGNyZWF0ZWRSZXNvdXJjZXM6IG51bWJlcjtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gb24gYW55IGRlc3RydWN0aXZlIGNoYW5nZXNcbiAgICovXG4gIGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBvbiBhbnkgZGVzdHJ1Y3RpdmUgY2hhbmdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3RydWN0aXZlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBsb2dpY2FsSWQgb2YgdGhlIHJlc291cmNlIHdpdGggYSBkZXN0cnVjdGl2ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWxJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdGhhdCBjb250YWlucyB0aGUgZGVzdHJ1Y3RpdmUgY2hhbmdlXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltcGFjdCBvZiB0aGUgZGVzdHJ1Y3RpdmUgY2hhbmdlXG4gICAqL1xuICByZWFkb25seSBpbXBhY3Q6IFJlc291cmNlSW1wYWN0O1xufVxuXG4vKipcbiAqIFN0YWNrRGlmZiBwZXJmb3JtcyB0aGUgZGlmZiBvbiBhIHN0YWNrXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0RpZmYge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrOiBTdGFja0RpZmZJbmZvLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZERlc3Ryb3lUeXBlczogc3RyaW5nW10sXG4gICkge31cblxuICAvKiogUGVyZm9ybXMgdGhlIGRpZmYgb24gdGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrXG4gICAqIFRoaXMgcmVhZHMgdGhlIGV4aXN0aW5nIHN0YWNrIGZyb20gQ0ZOIGFuZCB0aGVuIHVzZXMgdGhlIGNsb3VkZm9ybWF0aW9uLWRpZmZcbiAgICogcGFja2FnZSB0byBwZXJmb3JtIHRoZSBkaWZmIGFuZCBjb2xsZWN0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gdGhlIHR5cGUgb2YgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGRpZmZTdGFjaygpOiBQcm9taXNlPHtcbiAgICBkaWZmOiBUZW1wbGF0ZURpZmY7XG4gICAgY2hhbmdlczogQ2hhbmdlRGV0YWlscztcbiAgfT4ge1xuICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmV2YWx1YXRlRGlmZih0aGlzLnN0YWNrLnN0YWNrTmFtZSwgdGhpcy5zdGFjay5kaWZmKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlmZjogdGhpcy5zdGFjay5kaWZmLFxuICAgICAgY2hhbmdlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBldmFsdWF0ZURpZmYoXG4gICAgdGVtcGxhdGVJZDogc3RyaW5nLFxuICAgIHRlbXBsYXRlRGlmZjogVGVtcGxhdGVEaWZmLFxuICApOiBDaGFuZ2VEZXRhaWxzIHtcbiAgICBjb25zdCBjaGFuZ2VzOiBDaGFuZ2VEZXRhaWxzID0ge1xuICAgICAgY3JlYXRlZFJlc291cmNlczogMCxcbiAgICAgIHJlbW92ZWRSZXNvdXJjZXM6IDAsXG4gICAgICB1cGRhdGVkUmVzb3VyY2VzOiAwLFxuICAgICAgZGVzdHJ1Y3RpdmVDaGFuZ2VzOiBbXSxcbiAgICB9O1xuICAgIC8vIGdvIHRocm91Z2ggYWxsIHRoZSByZXNvdXJjZSBkaWZmZXJlbmNlcyBhbmQgY2hlY2sgZm9yIGFueVxuICAgIC8vIFwiZGVzdHJ1Y3RpdmVcIiBjaGFuZ2VzXG4gICAgdGVtcGxhdGVEaWZmLnJlc291cmNlcy5mb3JFYWNoRGlmZmVyZW5jZShcbiAgICAgIChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiBSZXNvdXJjZURpZmZlcmVuY2UpID0+IHtcbiAgICAgICAgLy8gaWYgdGhlIGNoYW5nZSBpcyBhIHJlbW92YWwgaXQgd2lsbCBub3Qgc2hvdyB1cCBhcyBhICdjaGFuZ2VJbXBhY3QnXG4gICAgICAgIC8vIHNvIG5lZWQgdG8gY2hlY2sgZm9yIGl0IHNlcGFyYXRlbHksIHVubGVzcyBpdCBpcyBhIHJlc291cmNlVHlwZSB0aGF0XG4gICAgICAgIC8vIGhhcyBiZWVuIFwiYWxsb3dlZFwiIHRvIGJlIGRlc3Ryb3llZFxuICAgICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBjaGFuZ2Uub2xkVmFsdWU/LlR5cGUgPz8gY2hhbmdlLm5ld1ZhbHVlPy5UeXBlO1xuICAgICAgICBzd2l0Y2ggKHJlc291cmNlVHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0FXUzo6Q0RLOjpNZXRhZGF0YSc6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJzpcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjaGFuZ2UucHJvcGVydHlVcGRhdGVzKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKGtleXMubGVuZ3RoIDw9IDIgJiYga2V5cy5pbmNsdWRlcygnQ29kZScpKSB8fFxuICAgICAgICAgICAgICBrZXlzLmluY2x1ZGVzKCdNZXRhZGF0YScpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2UuaXNVcGRhdGUpIHtcbiAgICAgICAgICBjaGFuZ2VzLnVwZGF0ZWRSZXNvdXJjZXMgKz0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNSZW1vdmFsKSB7XG4gICAgICAgICAgY2hhbmdlcy5yZW1vdmVkUmVzb3VyY2VzICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmlzQWRkaXRpb24pIHtcbiAgICAgICAgICBjaGFuZ2VzLmNyZWF0ZWRSZXNvdXJjZXMgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzb3VyY2VUeXBlICYmIHRoaXMuYWxsb3dlZERlc3Ryb3lUeXBlcy5pbmNsdWRlcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZS5pc1JlbW92YWwpIHtcbiAgICAgICAgICBjaGFuZ2VzLmRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgIGltcGFjdDogUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZLFxuICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN3aXRjaCAoY2hhbmdlLmNoYW5nZUltcGFjdCkge1xuICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRTpcbiAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU46XG4gICAgICAgICAgICBjYXNlIFJlc291cmNlSW1wYWN0LldJTExfREVTVFJPWTpcbiAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFOlxuICAgICAgICAgICAgICBjaGFuZ2VzLmRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpbXBhY3Q6IGNoYW5nZS5jaGFuZ2VJbXBhY3QsXG4gICAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICAgIHN0YWNrTmFtZTogdGVtcGxhdGVJZCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst action_1 = require(\"./action\");\n(0, action_1.run)().catch((error) => {\n    core.setFailed(error.message);\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBc0M7QUFDdEMscUNBQStCO0FBRS9CLElBQUEsWUFBRyxHQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7SUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb3JlIGZyb20gJ0BhY3Rpb25zL2NvcmUnO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSAnLi9hY3Rpb24nO1xuXG5ydW4oKS5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xuICBjb3JlLnNldEZhaWxlZChlcnJvci5tZXNzYWdlKTtcbn0pO1xuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n    if (value !== null && value !== void 0) {\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n        var dispose, inner;\n        if (async) {\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n            dispose = value[Symbol.asyncDispose];\n        }\n        if (dispose === void 0) {\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n            dispose = value[Symbol.dispose];\n            if (async) inner = dispose;\n        }\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n        env.stack.push({ value: value, dispose: dispose, async: async });\n    }\n    else if (async) {\n        env.stack.push({ async: true });\n    }\n    return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n    return function (env) {\n        function fail(e) {\n            env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n            env.hasError = true;\n        }\n        var r, s = 0;\n        function next() {\n            while (r = env.stack.pop()) {\n                try {\n                    if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n                    if (r.dispose) {\n                        var result = r.dispose.call(r.value);\n                        if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n                    }\n                    else s |= 1;\n                }\n                catch (e) {\n                    fail(e);\n                }\n            }\n            if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n            if (env.hasError) throw env.error;\n        }\n        return next();\n    };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n    var e = new Error(message);\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssemblyProcessor = void 0;\nconst crypto = __importStar(require(\"crypto\"));\nconst stream_1 = require(\"stream\");\nconst string_decoder_1 = require(\"string_decoder\");\nconst core_1 = require(\"@actions/core\");\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst assembly_1 = require(\"./assembly\");\nconst diff_1 = require(\"./diff\");\n/**\n * StageProcessor processes a CDK stage and creates a comment on the GitHub PR\n * detailing the stack diffs\n */\nclass AssemblyProcessor {\n    constructor(options) {\n        this.options = options;\n        /**\n         * @internal\n         */\n        this.stageComments = {};\n    }\n    get stageInfo() {\n        if (!this._stageInfo) {\n            throw new Error('Stage info has not been created yet');\n        }\n        return this._stageInfo;\n    }\n    processAssembly(cloudAssembly) {\n        const assembly = new assembly_1.AssemblyManifestReader(cloudAssembly, this.templateDiffs);\n        this._stageInfo = assembly.stages;\n        if (assembly.stacks.length) {\n            this.stageInfo.push({\n                name: this.options.defaultStageDisplayName,\n                stacks: assembly.stacks,\n            });\n        }\n    }\n    get templateDiffs() {\n        if (!this._templateDiffs) {\n            throw new Error('Template diffs have not been created yet');\n        }\n        return this._templateDiffs;\n    }\n    get stageDiffInfo() {\n        if (this._stages) {\n            return this._stages;\n        }\n        this._stages = this.stageInfo.flatMap((stage) => {\n            this.stageComments[stage.name] = {\n                title: this.options.title,\n                destructiveChanges: 0,\n                stackComments: stage.stacks.reduce((prev, curr) => {\n                    prev[curr.name] = [];\n                    return prev;\n                }, {}),\n                hash: md5Hash(JSON.stringify({\n                    stageName: stage.name,\n                    title: this.options.title,\n                    ...stage.stacks.reduce((prev, curr) => {\n                        prev.stacks.push({\n                            name: curr.name,\n                        });\n                        return prev;\n                    }, { stacks: [] }),\n                })),\n            };\n            return {\n                name: stage.name,\n                stacks: stage.stacks.map((stack) => {\n                    if (!this.templateDiffs[stack.name]) {\n                        throw new Error(`Template diffs have not been created yet for stack ${stack.name}`);\n                    }\n                    return {\n                        stackName: stack.name,\n                        diff: this.templateDiffs[stack.name],\n                    };\n                }),\n            };\n        });\n        return this._stages;\n    }\n    async diffApp() {\n        const env_1 = { stack: [], error: void 0, hasError: false };\n        try {\n            const assemblySource = await this.options.toolkit.fromAssemblyDirectory(this.options.cdkOutDir, {\n                // When checkVersion=true it means users can't upgrade their CDK version before\n                // we do and they pull in the new action version. Probably better to default to false\n                // and see what happens\n                loadAssemblyOptions: { checkVersion: false },\n                failOnMissingContext: false,\n            });\n            const selector = this.options.stackSelectorPatterns.length > 0\n                ? {\n                    strategy: this.options\n                        .stackSelectionStrategy,\n                    patterns: this.options.stackSelectorPatterns,\n                }\n                : {\n                    strategy: this.options\n                        .stackSelectionStrategy,\n                };\n            const diffResult = await this.options.toolkit.diff(assemblySource, {\n                stacks: selector,\n                method: this.options.diffMethod,\n            });\n            this._templateDiffs = diffResult;\n            const cloudAssembly = __addDisposableResource(env_1, await assemblySource.produce(), true);\n            this.processAssembly(cloudAssembly.cloudAssembly);\n            return diffResult;\n        }\n        catch (e_1) {\n            env_1.error = e_1;\n            env_1.hasError = true;\n        }\n        finally {\n            const result_1 = __disposeResources(env_1);\n            if (result_1)\n                await result_1;\n        }\n    }\n    /**\n     * Process all of the stages. Once this has been run\n     * the comment can be created with `commentStages()`\n     */\n    async processStages(ignoreDestructiveChanges = []) {\n        if (!this._templateDiffs) {\n            await this.diffApp();\n        }\n        (0, core_1.debug)(`Diffs: ${JSON.stringify(this._templateDiffs, null, 2)}`);\n        for (const stage of this.stageDiffInfo) {\n            for (const stack of stage.stacks) {\n                try {\n                    const { comment, changes } = await this.diffStack(stack);\n                    (0, core_1.debug)(`Diff for stack ${stack.stackName}: ${JSON.stringify(comment, null, 2)}`);\n                    this.stageComments[stage.name].stackComments[stack.stackName].push(...comment);\n                    if (!ignoreDestructiveChanges.includes(stage.name)) {\n                        this.stageComments[stage.name].destructiveChanges += changes;\n                    }\n                }\n                catch (e) {\n                    console.error('Error processing stages: ', e);\n                    throw e;\n                }\n            }\n        }\n    }\n    async commentStack(comments, stageName, stackName, comment) {\n        const hash = md5Hash(JSON.stringify({\n            title: this.options.title,\n            stageName,\n            stackName,\n        }));\n        const stackComment = this.getCommentForStack(stageName, stackName, comment);\n        const previous = await comments.findPrevious(hash);\n        try {\n            if (previous) {\n                await comments.updateComment(previous, hash, stackComment);\n            }\n            else {\n                await comments.createComment(hash, stackComment);\n            }\n        }\n        catch (e) {\n            this.handleError(e, `Comment for stack ${stackName} is too long, please report this as a bug https://github.com/corymhall/cdk-diff-action/issues/new`);\n        }\n    }\n    /**\n     * Try to comment all the individual stacks\n     * Do it in parallel so that we don't stop if one of them fails\n     */\n    async commentStacks(comments, stageName, stage) {\n        const commentPromises = [];\n        for (const [stackName, comment] of Object.entries(stage.stackComments)) {\n            commentPromises.push(this.commentStack(comments, stageName, stackName, comment));\n        }\n        const res = await Promise.allSettled(commentPromises);\n        const failed = res\n            .filter((r) => r.status === 'rejected')\n            .flatMap((r) => r.reason);\n        if (failed && failed.length > 0) {\n            throw new Error('Error commenting stacks: \\n' + failed.join('\\n'));\n        }\n    }\n    bodyTooLongError(e) {\n        if (e.response) {\n            const err = e.response;\n            return (err.data.errors?.some((er) => er.message?.includes('Body is too long')) ?? false);\n        }\n        return false;\n    }\n    handleError(e, message) {\n        if (this.bodyTooLongError(e)) {\n            throw new Error(message);\n        }\n        throw e;\n    }\n    async commentStage(comments, hash, comment) {\n        const previous = await comments.findPrevious(hash);\n        if (previous) {\n            await comments.updateComment(previous, hash, comment);\n        }\n        else {\n            await comments.createComment(hash, comment);\n        }\n    }\n    /**\n     * Create the GitHub comment for the stage\n     * This will try to create a single comment per stage, but if the comment\n     * is too long it will create a comment per stack\n     * @param comments the comments object to use to create the comment\n     */\n    async commentStages(comments) {\n        for (const [stageName, comment] of Object.entries(this.stageComments)) {\n            const stageComment = this.getCommentForStage(stageName);\n            try {\n                await this.commentStage(comments, comment.hash, stageComment);\n            }\n            catch (e) {\n                if (this.bodyTooLongError(e) &&\n                    Object.keys(comment.stackComments).length > 1) {\n                    await this.commentStacks(comments, stageName, comment);\n                }\n                else {\n                    throw e;\n                }\n            }\n        }\n    }\n    /**\n     * Returns whether or not there are destructive changes in this stage\n     */\n    get hasDestructiveChanges() {\n        for (const comments of Object.values(this.stageComments)) {\n            if (comments.destructiveChanges) {\n                return true;\n            }\n        }\n        return false;\n    }\n    async diffStack(stack) {\n        try {\n            const stackDiff = new diff_1.StackDiff(stack, this.options.allowedDestroyTypes);\n            const { diff, changes } = await stackDiff.diffStack();\n            return {\n                comment: this.formatStackComment(stack.stackName, diff, changes),\n                changes: changes.destructiveChanges.length,\n            };\n        }\n        catch (e) {\n            console.error('Error performing stack diff: ', e);\n            throw e;\n        }\n    }\n    getEmoji(changes) {\n        // Only flag the stack with :x: for destructive changes that survived\n        // allowedDestroyTypes filtering. Removals of allowed types (e.g. the\n        // AWS::ApiGateway::Deployment roll CDK performs on every API change)\n        // are routine churn and render as :yellow_circle: like other updates.\n        if (changes.destructiveChanges.length) {\n            return ':x:';\n        }\n        else if (changes.updatedResources || changes.removedResources) {\n            return ':yellow_circle:';\n        }\n        else if (changes.createdResources) {\n            return ':sparkle:';\n        }\n        return ':white_check_mark:';\n    }\n    formatStackComment(stackName, diff, changes) {\n        const output = [];\n        const emoji = this.getEmoji(changes);\n        if (diff.isEmpty) {\n            output.push(`No Changes for stack: ${stackName} ${emoji}`);\n            return output;\n        }\n        output.push(...[\n            `#### Diff for stack: ${stackName} - ` +\n                `***${changes.createdResources} to add, ${changes.updatedResources} to update, ${changes.removedResources} to destroy***  ` +\n                emoji,\n            '
Details',\n '',\n ]);\n if (changes.destructiveChanges.length) {\n output.push('');\n (output.push('> [!WARNING]\\n> ***Destructive Changes*** :bangbang:'),\n changes.destructiveChanges.forEach((change) => {\n output.push(`> **Stack: ${change.stackName} - Resource: ${change.logicalId} - Impact:** ***${change.impact}***`);\n output.push('');\n }));\n }\n const writable = new StringWritable({});\n (0, cloudformation_diff_1.formatDifferences)(writable, diff);\n output.push('');\n output.push('```shell');\n output.push(writable.data);\n output.push('```');\n output.push('
');\n output.push('');\n return output;\n }\n /**\n * Only used when the stage comment is too long and we are creating\n * a separate comment for each stack\n */\n getCommentForStack(stageName, stackName, comment) {\n const output = [];\n if (!comment.length) {\n return output;\n }\n if (this.options.title) {\n output.push(`## ${this.options.title}`);\n output.push('');\n }\n output.push(`### Diff for stack: ${stageName} / ${stackName}`);\n return output.concat(comment);\n }\n getCommentForStage(stageName) {\n const output = [];\n const stageComments = this.stageComments[stageName];\n const comments = Object.values(this.stageComments[stageName].stackComments).flatMap((x) => x);\n if (!comments.length) {\n return output;\n }\n if (this.options.title) {\n output.push(`## ${this.options.title}`);\n output.push('');\n }\n output.push(`### Diff for stage: ${stageName}`);\n if (stageComments.destructiveChanges) {\n output.push(`> [!WARNING]\\n> ${stageComments.destructiveChanges} Destructive Changes`);\n output.push('');\n }\n return output.concat(comments);\n }\n}\nexports.AssemblyProcessor = AssemblyProcessor;\nclass StringWritable extends stream_1.Writable {\n constructor(options) {\n super(options);\n this._decoder = new string_decoder_1.StringDecoder();\n this.data = '';\n }\n _write(chunk, encoding, callback) {\n if (encoding === 'buffer') {\n chunk = this._decoder.write(chunk);\n }\n this.data += chunk;\n callback();\n }\n _final(callback) {\n this.data += this._decoder.end();\n callback();\n }\n}\nfunction md5Hash(val) {\n return crypto.createHash('md5').update(val).digest('hex');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YWdlLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBQ2pDLG1DQUFtRDtBQUNuRCxtREFBK0M7QUFDL0Msd0NBQXNDO0FBRXRDLHNFQUErRTtBQVEvRSx5Q0FBMEU7QUFFMUUsaUNBQWdGO0FBcUNoRjs7O0dBR0c7QUFDSCxNQUFhLGlCQUFpQjtJQVE1QixZQUFvQixPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQVByRDs7V0FFRztRQUNhLGtCQUFhLEdBQTBDLEVBQUUsQ0FBQztJQUlsQixDQUFDO0lBRXpELElBQVksU0FBUztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlLENBQUMsYUFBNEI7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQ0FBc0IsQ0FDekMsYUFBYSxFQUNiLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUI7Z0JBQzFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFD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USxFQUFFLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFFRCxTQUFTLE9BQU8sQ0FBQyxHQUFXO0lBQzFCLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFdyaXRhYmxlLCBXcml0YWJsZU9wdGlvbnMgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgU3RyaW5nRGVjb2RlciB9IGZyb20gJ3N0cmluZ19kZWNvZGVyJztcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnQGFjdGlvbnMvY29yZSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFRlbXBsYXRlRGlmZiwgZm9ybWF0RGlmZmVyZW5jZXMgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB7XG4gIERpZmZNZXRob2QsXG4gIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3ksXG4gIFN0YWNrU2VsZWN0b3IsXG4gIFRvb2xraXQsXG59IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEVycm9yLCBPY3Rva2l0UmVzcG9uc2UgfSBmcm9tICdAb2N0b2tpdC90eXBlcyc7XG5pbXBvcnQgeyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyLCBTdGFja0luZm8sIFN0YWdlSW5mbyB9IGZyb20gJy4vYXNzZW1ibHknO1xuaW1wb3J0IHsgQ29tbWVudHMgfSBmcm9tICcuL2NvbW1lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0YWlscywgU3RhY2tEaWZmLCBTdGFja0RpZmZJbmZvLCBTdGFnZURpZmZJbmZvIH0gZnJvbSAnLi9kaWZmJztcbmltcG9ydCB7IElucHV0cyB9IGZyb20gJy4vaW5wdXRzJztcblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBuZWVkZWQgdG8gbWFrZSBhIGNvbW1lbnQgZm9yIGEgQ0RLIFN0YWdlXG4gKi9cbmludGVyZmFjZSBTdGFnZUNvbW1lbnQge1xuICAvKipcbiAgICogVGhlIGZ1bGwgY29tbWVudCBmb3IgZWFjaCBzdGFjay4gVGhlIGxpc3Qgd2lsbCBiZSBqb2luZWQgd2l0aCBcXG5cbiAgICovXG4gIHN0YWNrQ29tbWVudHM6IHsgW3N0YWNrTmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBjb21tZW50XG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBoYXNoIGZvciB0aGUgc3RhZ2UgY29tbWVudFxuICAgKiBUaGlzIHdpbGwgYmUgdXNlZCB0byBsb29rdXAgdGhlIHN0YWdlIGNvbW1lbnQgb24gdGhlIFBSXG4gICAqIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJ3cml0dGVuXG4gICAqL1xuICBoYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGVzdHJ1Y3RpdmUgY2hhbmdlcyBpbiB0aGlzIHN0YWdlXG4gICAqL1xuICBkZXN0cnVjdGl2ZUNoYW5nZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseVByb2Nlc3Nvck9wdGlvbnNcbiAgZXh0ZW5kcyBPbWl0PElucHV0cywgJ2dpdGh1YlRva2VuJyB8ICdkaWZmTWV0aG9kJz4ge1xuICBkaWZmTWV0aG9kOiBEaWZmTWV0aG9kO1xuICB0b29sa2l0OiBUb29sa2l0O1xuICBkZWZhdWx0U3RhZ2VEaXNwbGF5TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFN0YWdlUHJvY2Vzc29yIHByb2Nlc3NlcyBhIENESyBzdGFnZSBhbmQgY3JlYXRlcyBhIGNvbW1lbnQgb24gdGhlIEdpdEh1YiBQUlxuICogZGV0YWlsaW5nIHRoZSBzdGFjayBkaWZmc1xuICovXG5leHBvcnQgY2xhc3MgQXNzZW1ibHlQcm9jZXNzb3Ige1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhZ2VDb21tZW50czogeyBbc3RhZ2VOYW1lOiBzdHJpbmddOiBTdGFnZUNvbW1lbnQgfSA9IHt9O1xuICBwcml2YXRlIF9zdGFnZUluZm8/OiBTdGFnZUluZm9bXTtcbiAgcHJpdmF0ZSBfc3RhZ2VzPzogU3RhZ2VEaWZmSW5mb1tdO1xuICBwcml2YXRlIF90ZW1wbGF0ZURpZmZzPzogeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBUZW1wbGF0ZURpZmYgfTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBBc3NlbWJseVByb2Nlc3Nvck9wdGlvbnMpIHt9XG5cbiAgcHJpdmF0ZSBnZXQgc3RhZ2VJbmZvKCk6IFN0YWdlSW5mb1tdIHtcbiAgICBpZiAoIXRoaXMuX3N0YWdlSW5mbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGFnZSBpbmZvIGhhcyBub3QgYmVlbiBjcmVhdGVkIHlldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3RhZ2VJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQXNzZW1ibHkoY2xvdWRBc3NlbWJseTogQ2xvdWRBc3NlbWJseSkge1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gbmV3IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIoXG4gICAgICBjbG91ZEFzc2VtYmx5LFxuICAgICAgdGhpcy50ZW1wbGF0ZURpZmZzLFxuICAgICk7XG4gICAgdGhpcy5fc3RhZ2VJbmZvID0gYXNzZW1ibHkuc3RhZ2VzO1xuICAgIGlmIChhc3NlbWJseS5zdGFja3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN0YWdlSW5mby5wdXNoKHtcbiAgICAgICAgbmFtZTogdGhpcy5vcHRpb25zLmRlZmF1bHRTdGFnZURpc3BsYXlOYW1lLFxuICAgICAgICBzdGFja3M6IGFzc2VtYmx5LnN0YWNrcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRlbXBsYXRlRGlmZnMoKTogeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBUZW1wbGF0ZURpZmYgfSB7XG4gICAgaWYgKCF0aGlzLl90ZW1wbGF0ZURpZmZzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RlbXBsYXRlIGRpZmZzIGhhdmUgbm90IGJlZW4gY3JlYXRlZCB5ZXQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlRGlmZnM7XG4gIH1cblxuICBwcml2YXRlIGdldCBzdGFnZURpZmZJbmZvKCk6IFN0YWdlRGlmZkluZm9bXSB7XG4gICAgaWYgKHRoaXMuX3N0YWdlcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3N0YWdlcztcbiAgICB9XG4gICAgdGhpcy5fc3RhZ2VzID0gdGhpcy5zdGFnZUluZm8uZmxhdE1hcCgoc3RhZ2UpID0+IHtcbiAgICAgIHRoaXMuc3RhZ2VDb21tZW50c1tzdGFnZS5uYW1lXSA9IHtcbiAgICAgICAgdGl0bGU6IHRoaXMub3B0aW9ucy50aXRsZSxcbiAgICAgICAgZGVzdHJ1Y3RpdmVDaGFuZ2VzOiAwLFxuICAgICAgICBzdGFja0NvbW1lbnRzOiBzdGFnZS5zdGFja3MucmVkdWNlKFxuICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICBwcmV2W2N1cnIubmFtZV0gPSBbXTtcbiAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgIH0sXG4gICAgICAgICAge30gYXMgeyBbc3RhY2tOYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICAgICAgICApLFxuICAgICAgICBoYXNoOiBtZDVIYXNoKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHN0YWdlTmFtZTogc3RhZ2UubmFtZSxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLm9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgICAuLi5zdGFnZS5zdGFja3MucmVkdWNlKFxuICAgICAgICAgICAgICAocHJldiwgY3VycikgPT4ge1xuICAgICAgICAgICAgICAgIHByZXYuc3RhY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgbmFtZTogY3Vyci5uYW1lLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHN0YWNrczogW10gfSBhcyB7IHN0YWNrczogU3RhY2tJbmZvW10gfSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogc3RhZ2UubmFtZSxcbiAgICAgICAgc3RhY2tzOiBzdGFnZS5zdGFja3MubWFwKChzdGFjaykgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZURpZmZzW3N0YWNrLm5hbWVdKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBUZW1wbGF0ZSBkaWZmcyBoYXZlIG5vdCBiZWVuIGNyZWF0ZWQgeWV0IGZvciBzdGFjayAke3N0YWNrLm5hbWV9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFja05hbWU6IHN0YWNrLm5hbWUsXG4gICAgICAgICAgICBkaWZmOiB0aGlzLnRlbXBsYXRlRGlmZnNbc3RhY2submFtZV0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9zdGFnZXM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlmZkFwcCgpOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9PiB7XG4gICAgY29uc3QgYXNzZW1ibHlTb3VyY2UgPSBhd2FpdCB0aGlzLm9wdGlvbnMudG9vbGtpdC5mcm9tQXNzZW1ibHlEaXJlY3RvcnkoXG4gICAgICB0aGlzLm9wdGlvbnMuY2RrT3V0RGlyLFxuICAgICAge1xuICAgICAgICAvLyBXaGVuIGNoZWNrVmVyc2lvbj10cnVlIGl0IG1lYW5zIHVzZXJzIGNhbid0IHVwZ3JhZGUgdGhlaXIgQ0RLIHZlcnNpb24gYmVmb3JlXG4gICAgICAgIC8vIHdlIGRvIGFuZCB0aGV5IHB1bGwgaW4gdGhlIG5ldyBhY3Rpb24gdmVyc2lvbi4gUHJvYmFibHkgYmV0dGVyIHRvIGRlZmF1bHQgdG8gZmFsc2VcbiAgICAgICAgLy8gYW5kIHNlZSB3aGF0IGhhcHBlbnNcbiAgICAgICAgbG9hZEFzc2VtYmx5T3B0aW9uczogeyBjaGVja1ZlcnNpb246IGZhbHNlIH0sXG4gICAgICAgIGZhaWxPbk1pc3NpbmdDb250ZXh0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdG9yOiBTdGFja1NlbGVjdG9yID1cbiAgICAgIHRoaXMub3B0aW9ucy5zdGFja1NlbGVjdG9yUGF0dGVybnMubGVuZ3RoID4gMFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHN0cmF0ZWd5OiB0aGlzLm9wdGlvbnNcbiAgICAgICAgICAgICAgLnN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgYXMgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSxcbiAgICAgICAgICAgIHBhdHRlcm5zOiB0aGlzLm9wdGlvbnMuc3RhY2tTZWxlY3RvclBhdHRlcm5zLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBzdHJhdGVneTogdGhpcy5vcHRpb25zXG4gICAgICAgICAgICAgIC5zdGFja1NlbGVjdGlvblN0cmF0ZWd5IGFzIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgfTtcbiAgICBjb25zdCBkaWZmUmVzdWx0ID0gYXdhaXQgdGhpcy5vcHRpb25zLnRvb2xraXQuZGlmZihhc3NlbWJseVNvdXJjZSwge1xuICAgICAgc3RhY2tzOiBzZWxlY3RvcixcbiAgICAgIG1ldGhvZDogdGhpcy5vcHRpb25zLmRpZmZNZXRob2QsXG4gICAgfSk7XG5cbiAgICB0aGlzLl90ZW1wbGF0ZURpZmZzID0gZGlmZlJlc3VsdDtcbiAgICBhd2FpdCB1c2luZyBjbG91ZEFzc2VtYmx5ID0gYXdhaXQgYXNzZW1ibHlTb3VyY2UucHJvZHVjZSgpO1xuICAgIHRoaXMucHJvY2Vzc0Fzc2VtYmx5KGNsb3VkQXNzZW1ibHkuY2xvdWRBc3NlbWJseSk7XG4gICAgcmV0dXJuIGRpZmZSZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhbGwgb2YgdGhlIHN0YWdlcy4gT25jZSB0aGlzIGhhcyBiZWVuIHJ1blxuICAgKiB0aGUgY29tbWVudCBjYW4gYmUgY3JlYXRlZCB3aXRoIGBjb21tZW50U3RhZ2VzKClgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcHJvY2Vzc1N0YWdlcyhpZ25vcmVEZXN0cnVjdGl2ZUNoYW5nZXM6IHN0cmluZ1tdID0gW10pIHtcbiAgICBpZiAoIXRoaXMuX3RlbXBsYXRlRGlmZnMpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGlmZkFwcCgpO1xuICAgIH1cbiAgICBkZWJ1ZyhgRGlmZnM6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5fdGVtcGxhdGVEaWZmcywgbnVsbCwgMil9YCk7XG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiB0aGlzLnN0YWdlRGlmZkluZm8pIHtcbiAgICAgIGZvciAoY29uc3Qgc3RhY2sgb2Ygc3RhZ2Uuc3RhY2tzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgeyBjb21tZW50LCBjaGFuZ2VzIH0gPSBhd2FpdCB0aGlzLmRpZmZTdGFjayhzdGFjayk7XG4gICAgICAgICAgZGVidWcoXG4gICAgICAgICAgICBgRGlmZiBmb3Igc3RhY2sgJHtzdGFjay5zdGFja05hbWV9OiAke0pTT04uc3RyaW5naWZ5KGNvbW1lbnQsIG51bGwsIDIpfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnN0YWdlQ29tbWVudHNbc3RhZ2UubmFtZV0uc3RhY2tDb21tZW50c1tzdGFjay5zdGFja05hbWVdLnB1c2goXG4gICAgICAgICAgICAuLi5jb21tZW50LFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKCFpZ25vcmVEZXN0cnVjdGl2ZUNoYW5nZXMuaW5jbHVkZXMoc3RhZ2UubmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhZ2VDb21tZW50c1tzdGFnZS5uYW1lXS5kZXN0cnVjdGl2ZUNoYW5nZXMgKz0gY2hhbmdlcztcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByb2Nlc3Npbmcgc3RhZ2VzOiAnLCBlKTtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb21tZW50U3RhY2soXG4gICAgY29tbWVudHM6IENvbW1lbnRzLFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIGNvbW1lbnQ6IHN0cmluZ1tdLFxuICApIHtcbiAgICBjb25zdCBoYXNoID0gbWQ1SGFzaChcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdGl0bGU6IHRoaXMub3B0aW9ucy50aXRsZSxcbiAgICAgICAgc3RhZ2VOYW1lLFxuICAgICAgICBzdGFja05hbWUsXG4gICAgICB9KSxcbiAgICApO1xuICAgIGNvbnN0IHN0YWNrQ29tbWVudCA9IHRoaXMuZ2V0Q29tbWVudEZvclN0YWNrKHN0YWdlTmFtZSwgc3RhY2tOYW1lLCBjb21tZW50KTtcbiAgICBjb25zdCBwcmV2aW91cyA9IGF3YWl0IGNvbW1lbnRzLmZpbmRQcmV2aW91cyhoYXNoKTtcbiAgICB0cnkge1xuICAgICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICAgIGF3YWl0IGNvbW1lbnRzLnVwZGF0ZUNvbW1lbnQocHJldmlvdXMsIGhhc2gsIHN0YWNrQ29tbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBjb21tZW50cy5jcmVhdGVDb21tZW50KGhhc2gsIHN0YWNrQ29tbWVudCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aGlzLmhhbmRsZUVycm9yKFxuICAgICAgICBlLFxuICAgICAgICBgQ29tbWVudCBmb3Igc3RhY2sgJHtzdGFja05hbWV9IGlzIHRvbyBsb25nLCBwbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBidWcgaHR0cHM6Ly9naXRodWIuY29tL2NvcnltaGFsbC9jZGstZGlmZi1hY3Rpb24vaXNzdWVzL25ld2AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gY29tbWVudCBhbGwgdGhlIGluZGl2aWR1YWwgc3RhY2tzXG4gICAqIERvIGl0IGluIHBhcmFsbGVsIHNvIHRoYXQgd2UgZG9uJ3Qgc3RvcCBpZiBvbmUgb2YgdGhlbSBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjb21tZW50U3RhY2tzKFxuICAgIGNvbW1lbnRzOiBDb21tZW50cyxcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICBzdGFnZTogU3RhZ2VDb21tZW50LFxuICApIHtcbiAgICBjb25zdCBjb21tZW50UHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW3N0YWNrTmFtZSwgY29tbWVudF0gb2YgT2JqZWN0LmVudHJpZXMoc3RhZ2Uuc3RhY2tDb21tZW50cykpIHtcbiAgICAgIGNvbW1lbnRQcm9taXNlcy5wdXNoKFxuICAgICAgICB0aGlzLmNvbW1lbnRTdGFjayhjb21tZW50cywgc3RhZ2VOYW1lLCBzdGFja05hbWUsIGNvbW1lbnQpLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgcmVzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKGNvbW1lbnRQcm9taXNlcyk7XG4gICAgY29uc3QgZmFpbGVkID0gcmVzXG4gICAgICAuZmlsdGVyKChyKSA9PiByLnN0YXR1cyA9PT0gJ3JlamVjdGVkJylcbiAgICAgIC5mbGF0TWFwKChyKSA9PiByLnJlYXNvbik7XG4gICAgaWYgKGZhaWxlZCAmJiBmYWlsZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBjb21tZW50aW5nIHN0YWNrczogXFxuJyArIGZhaWxlZC5qb2luKCdcXG4nKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBib2R5VG9vTG9uZ0Vycm9yKGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChlLnJlc3BvbnNlKSB7XG4gICAgICBjb25zdCBlcnIgPSBlLnJlc3BvbnNlIGFzIE9jdG9raXRSZXNwb25zZTxSZXF1ZXN0RXJyb3IsIG51bWJlcj47XG4gICAgICByZXR1cm4gKFxuICAgICAgICBlcnIuZGF0YS5lcnJvcnM/LnNvbWUoKGVyKSA9PlxuICAgICAgICAgIGVyLm1lc3NhZ2U/LmluY2x1ZGVzKCdCb2R5IGlzIHRvbyBsb25nJyksXG4gICAgICAgICkgPz8gZmFsc2VcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZTogYW55LCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5ib2R5VG9vTG9uZ0Vycm9yKGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbW1lbnRTdGFnZShcbiAgICBjb21tZW50czogQ29tbWVudHMsXG4gICAgaGFzaDogc3RyaW5nLFxuICAgIGNvbW1lbnQ6IHN0cmluZ1tdLFxuICApIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IGF3YWl0IGNvbW1lbnRzLmZpbmRQcmV2aW91cyhoYXNoKTtcbiAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgIGF3YWl0IGNvbW1lbnRzLnVwZGF0ZUNvbW1lbnQocHJldmlvdXMsIGhhc2gsIGNvbW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBjb21tZW50cy5jcmVhdGVDb21tZW50KGhhc2gsIGNvbW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIEdpdEh1YiBjb21tZW50IGZvciB0aGUgc3RhZ2VcbiAgICogVGhpcyB3aWxsIHRyeSB0byBjcmVhdGUgYSBzaW5nbGUgY29tbWVudCBwZXIgc3RhZ2UsIGJ1dCBpZiB0aGUgY29tbWVudFxuICAgKiBpcyB0b28gbG9uZyBpdCB3aWxsIGNyZWF0ZSBhIGNvbW1lbnQgcGVyIHN0YWNrXG4gICAqIEBwYXJhbSBjb21tZW50cyB0aGUgY29tbWVudHMgb2JqZWN0IHRvIHVzZSB0byBjcmVhdGUgdGhlIGNvbW1lbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjb21tZW50U3RhZ2VzKGNvbW1lbnRzOiBDb21tZW50cykge1xuICAgIGZvciAoY29uc3QgW3N0YWdlTmFtZSwgY29tbWVudF0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5zdGFnZUNvbW1lbnRzKSkge1xuICAgICAgY29uc3Qgc3RhZ2VDb21tZW50ID0gdGhpcy5nZXRDb21tZW50Rm9yU3RhZ2Uoc3RhZ2VOYW1lKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29tbWVudFN0YWdlKGNvbW1lbnRzLCBjb21tZW50Lmhhc2gsIHN0YWdlQ29tbWVudCk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuYm9keVRvb0xvbmdFcnJvcihlKSAmJlxuICAgICAgICAgIE9iamVjdC5rZXlzKGNvbW1lbnQuc3RhY2tDb21tZW50cykubGVuZ3RoID4gMVxuICAgICAgICApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbW1lbnRTdGFja3MoY29tbWVudHMsIHN0YWdlTmFtZSwgY29tbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBkZXN0cnVjdGl2ZSBjaGFuZ2VzIGluIHRoaXMgc3RhZ2VcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzRGVzdHJ1Y3RpdmVDaGFuZ2VzKCk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgY29tbWVudHMgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnN0YWdlQ29tbWVudHMpKSB7XG4gICAgICBpZiAoY29tbWVudHMuZGVzdHJ1Y3RpdmVDaGFuZ2VzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRpZmZTdGFjayhcbiAgICBzdGFjazogU3RhY2tEaWZmSW5mbyxcbiAgKTogUHJvbWlzZTx7IGNvbW1lbnQ6IHN0cmluZ1tdOyBjaGFuZ2VzOiBudW1iZXIgfT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFja0RpZmYgPSBuZXcgU3RhY2tEaWZmKHN0YWNrLCB0aGlzLm9wdGlvbnMuYWxsb3dlZERlc3Ryb3lUeXBlcyk7XG4gICAgICBjb25zdCB7IGRpZmYsIGNoYW5nZXMgfSA9IGF3YWl0IHN0YWNrRGlmZi5kaWZmU3RhY2soKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbW1lbnQ6IHRoaXMuZm9ybWF0U3RhY2tDb21tZW50KHN0YWNrLnN0YWNrTmFtZSwgZGlmZiwgY2hhbmdlcyksXG4gICAgICAgIGNoYW5nZXM6IGNoYW5nZXMuZGVzdHJ1Y3RpdmVDaGFuZ2VzLmxlbmd0aCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwZXJmb3JtaW5nIHN0YWNrIGRpZmY6ICcsIGUpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEVtb2ppKGNoYW5nZXM6IENoYW5nZURldGFpbHMpOiBzdHJpbmcge1xuICAgIC8vIE9ubHkgZmxhZyB0aGUgc3RhY2sgd2l0aCA6eDogZm9yIGRlc3RydWN0aXZlIGNoYW5nZXMgdGhhdCBzdXJ2aXZlZFxuICAgIC8vIGFsbG93ZWREZXN0cm95VHlwZXMgZmlsdGVyaW5nLiBSZW1vdmFscyBvZiBhbGxvd2VkIHR5cGVzIChlLmcuIHRoZVxuICAgIC8vIEFXUzo6QXBpR2F0ZXdheTo6RGVwbG95bWVudCByb2xsIENESyBwZXJmb3JtcyBvbiBldmVyeSBBUEkgY2hhbmdlKVxuICAgIC8vIGFyZSByb3V0aW5lIGNodXJuIGFuZCByZW5kZXIgYXMgOnllbGxvd19jaXJjbGU6IGxpa2Ugb3RoZXIgdXBkYXRlcy5cbiAgICBpZiAoY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJzp4Oic7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzLnVwZGF0ZWRSZXNvdXJjZXMgfHwgY2hhbmdlcy5yZW1vdmVkUmVzb3VyY2VzKSB7XG4gICAgICByZXR1cm4gJzp5ZWxsb3dfY2lyY2xlOic7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzLmNyZWF0ZWRSZXNvdXJjZXMpIHtcbiAgICAgIHJldHVybiAnOnNwYXJrbGU6JztcbiAgICB9XG4gICAgcmV0dXJuICc6d2hpdGVfY2hlY2tfbWFyazonO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRTdGFja0NvbW1lbnQoXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgZGlmZjogVGVtcGxhdGVEaWZmLFxuICAgIGNoYW5nZXM6IENoYW5nZURldGFpbHMsXG4gICk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBvdXRwdXQ6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgZW1vamkgPSB0aGlzLmdldEVtb2ppKGNoYW5nZXMpO1xuICAgIGlmIChkaWZmLmlzRW1wdHkpIHtcbiAgICAgIG91dHB1dC5wdXNoKGBObyBDaGFuZ2VzIGZvciBzdGFjazogJHtzdGFja05hbWV9ICR7ZW1vaml9YCk7XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cbiAgICBvdXRwdXQucHVzaChcbiAgICAgIC4uLltcbiAgICAgICAgYCMjIyMgRGlmZiBmb3Igc3RhY2s6ICR7c3RhY2tOYW1lfSAtIGAgK1xuICAgICAgICAgIGAqKioke2NoYW5nZXMuY3JlYXRlZFJlc291cmNlc30gdG8gYWRkLCAke2NoYW5nZXMudXBkYXRlZFJlc291cmNlc30gdG8gdXBkYXRlLCAke2NoYW5nZXMucmVtb3ZlZFJlc291cmNlc30gdG8gZGVzdHJveSoqKiAgYCArXG4gICAgICAgICAgZW1vamksXG4gICAgICAgICc8ZGV0YWlscz48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PicsXG4gICAgICAgICcnLFxuICAgICAgXSxcbiAgICApO1xuICAgIGlmIChjaGFuZ2VzLmRlc3RydWN0aXZlQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgIChvdXRwdXQucHVzaCgnPiBbIVdBUk5JTkddXFxuPiAqKipEZXN0cnVjdGl2ZSBDaGFuZ2VzKioqIDpiYW5nYmFuZzonKSxcbiAgICAgICAgY2hhbmdlcy5kZXN0cnVjdGl2ZUNoYW5nZXMuZm9yRWFjaCgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgb3V0cHV0LnB1c2goXG4gICAgICAgICAgICBgPiAqKlN0YWNrOiAke2NoYW5nZS5zdGFja05hbWV9IC0gUmVzb3VyY2U6ICR7Y2hhbmdlLmxvZ2ljYWxJZH0gLSBJbXBhY3Q6KiogKioqJHtjaGFuZ2UuaW1wYWN0fSoqKmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgY29uc3Qgd3JpdGFibGUgPSBuZXcgU3RyaW5nV3JpdGFibGUoe30pO1xuICAgIGZvcm1hdERpZmZlcmVuY2VzKHdyaXRhYmxlLCBkaWZmKTtcblxuICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICBvdXRwdXQucHVzaCgnYGBgc2hlbGwnKTtcbiAgICBvdXRwdXQucHVzaCh3cml0YWJsZS5kYXRhKTtcbiAgICBvdXRwdXQucHVzaCgnYGBgJyk7XG4gICAgb3V0cHV0LnB1c2goJzwvZGV0YWlscz4nKTtcbiAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0aGUgc3RhZ2UgY29tbWVudCBpcyB0b28gbG9uZyBhbmQgd2UgYXJlIGNyZWF0aW5nXG4gICAqIGEgc2VwYXJhdGUgY29tbWVudCBmb3IgZWFjaCBzdGFja1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb21tZW50Rm9yU3RhY2soXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgY29tbWVudDogc3RyaW5nW10sXG4gICk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBvdXRwdXQ6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFjb21tZW50Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucy50aXRsZSkge1xuICAgICAgb3V0cHV0LnB1c2goYCMjICR7dGhpcy5vcHRpb25zLnRpdGxlfWApO1xuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgIH1cbiAgICBvdXRwdXQucHVzaChgIyMjIERpZmYgZm9yIHN0YWNrOiAke3N0YWdlTmFtZX0gLyAke3N0YWNrTmFtZX1gKTtcblxuICAgIHJldHVybiBvdXRwdXQuY29uY2F0KGNvbW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21tZW50Rm9yU3RhZ2Uoc3RhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0YWdlQ29tbWVudHMgPSB0aGlzLnN0YWdlQ29tbWVudHNbc3RhZ2VOYW1lXTtcbiAgICBjb25zdCBjb21tZW50cyA9IE9iamVjdC52YWx1ZXMoXG4gICAgICB0aGlzLnN0YWdlQ29tbWVudHNbc3RhZ2VOYW1lXS5zdGFja0NvbW1lbnRzLFxuICAgICkuZmxhdE1hcCgoeCkgPT4geCk7XG4gICAgaWYgKCFjb21tZW50cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMudGl0bGUpIHtcbiAgICAgIG91dHB1dC5wdXNoKGAjIyAke3RoaXMub3B0aW9ucy50aXRsZX1gKTtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICB9XG4gICAgb3V0cHV0LnB1c2goYCMjIyBEaWZmIGZvciBzdGFnZTogJHtzdGFnZU5hbWV9YCk7XG5cbiAgICBpZiAoc3RhZ2VDb21tZW50cy5kZXN0cnVjdGl2ZUNoYW5nZXMpIHtcbiAgICAgIG91dHB1dC5wdXNoKFxuICAgICAgICBgPiBbIVdBUk5JTkddXFxuPiAke3N0YWdlQ29tbWVudHMuZGVzdHJ1Y3RpdmVDaGFuZ2VzfSBEZXN0cnVjdGl2ZSBDaGFuZ2VzYCxcbiAgICAgICk7XG4gICAgICBvdXRwdXQucHVzaCgnJyk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQuY29uY2F0KGNvbW1lbnRzKTtcbiAgfVxufVxuXG5jbGFzcyBTdHJpbmdXcml0YWJsZSBleHRlbmRzIFdyaXRhYmxlIHtcbiAgcHVibGljIGRhdGE6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVjb2RlcjogU3RyaW5nRGVjb2RlcjtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogV3JpdGFibGVPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gICAgdGhpcy5fZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKCk7XG4gICAgdGhpcy5kYXRhID0gJyc7XG4gIH1cblxuICBfd3JpdGUoXG4gICAgY2h1bms6IGFueSxcbiAgICBlbmNvZGluZzogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQsXG4gICk6IHZvaWQge1xuICAgIGlmIChlbmNvZGluZyA9PT0gJ2J1ZmZlcicpIHtcbiAgICAgIGNodW5rID0gdGhpcy5fZGVjb2Rlci53cml0ZShjaHVuayk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhICs9IGNodW5rO1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICBfZmluYWwoY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSArPSB0aGlzLl9kZWNvZGVyLmVuZCgpO1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWQ1SGFzaCh2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjcnlwdG8uY3JlYXRlSGFzaCgnbWQ1JykudXBkYXRlKHZhbCkuZGlnZXN0KCdoZXgnKTtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.platform = exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = exports.markdownSummary = exports.summary = exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode || (exports.ExitCode = ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = (0, utils_1.toCommandValue)(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('ENV', (0, file_command_1.prepareKeyValueMessage)(name, val));\n }\n (0, command_1.issueCommand)('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n (0, command_1.issueCommand)('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n (0, file_command_1.issueFileCommand)('PATH', inputPath);\n }\n else {\n (0, command_1.issueCommand)('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('OUTPUT', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n process.stdout.write(os.EOL);\n (0, command_1.issueCommand)('set-output', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n (0, command_1.issue)('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n (0, command_1.issueCommand)('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n (0, command_1.issueCommand)('error', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n (0, command_1.issueCommand)('warning', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n (0, command_1.issueCommand)('notice', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n (0, command_1.issue)('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n (0, command_1.issue)('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('STATE', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n (0, command_1.issueCommand)('save-state', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n/**\n * Platform utilities exports\n */\nexports.platform = __importStar(require(\"./platform\"));\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst crypto = __importStar(require(\"crypto\"));\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${(0, utils_1.toCommandValue)(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${crypto.randomUUID()}`;\n const convertedValue = (0, utils_1.toCommandValue)(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n (0, core_1.debug)(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n (0, core_1.setSecret)(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDetails = exports.isLinux = exports.isMacOS = exports.isWindows = exports.arch = exports.platform = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst exec = __importStar(require(\"@actions/exec\"));\nconst getWindowsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout: version } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Version\"', undefined, {\n silent: true\n });\n const { stdout: name } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n return {\n name: name.trim(),\n version: version.trim()\n };\n});\nconst getMacOsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n const { stdout } = yield exec.getExecOutput('sw_vers', undefined, {\n silent: true\n });\n const version = (_b = (_a = stdout.match(/ProductVersion:\\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';\n const name = (_d = (_c = stdout.match(/ProductName:\\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : '';\n return {\n name,\n version\n };\n});\nconst getLinuxInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n const [name, version] = stdout.trim().split('\\n');\n return {\n name,\n version\n };\n});\nexports.platform = os_1.default.platform();\nexports.arch = os_1.default.arch();\nexports.isWindows = exports.platform === 'win32';\nexports.isMacOS = exports.platform === 'darwin';\nexports.isLinux = exports.platform === 'linux';\nfunction getDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n return Object.assign(Object.assign({}, (yield (exports.isWindows\n ? getWindowsInfo()\n : exports.isMacOS\n ? getMacOsInfo()\n : getLinuxInfo()))), { platform: exports.platform,\n arch: exports.arch,\n isWindows: exports.isWindows,\n isMacOS: exports.isMacOS,\n isLinux: exports.isLinux });\n });\n}\nexports.getDetails = getDetails;\n//# sourceMappingURL=platform.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getExecOutput = exports.exec = void 0;\nconst string_decoder_1 = require(\"string_decoder\");\nconst tr = __importStar(require(\"./toolrunner\"));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */\nfunction exec(commandLine, args, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const commandArgs = tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) {\n throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n }\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nexports.exec = exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */\nfunction getExecOutput(commandLine, args, options) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n let stdout = '';\n let stderr = '';\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new string_decoder_1.StringDecoder('utf8');\n const stderrDecoder = new string_decoder_1.StringDecoder('utf8');\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data) => {\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) {\n originalStdErrListener(data);\n }\n };\n const stdOutListener = (data) => {\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) {\n originalStdoutListener(data);\n }\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener });\n const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode,\n stdout,\n stderr\n };\n });\n}\nexports.getExecOutput = getExecOutput;\n//# sourceMappingURL=exec.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.argStringToArray = exports.ToolRunner = void 0;\nconst os = __importStar(require(\"os\"));\nconst events = __importStar(require(\"events\"));\nconst child = __importStar(require(\"child_process\"));\nconst path = __importStar(require(\"path\"));\nconst io = __importStar(require(\"@actions/io\"));\nconst ioUtil = __importStar(require(\"@actions/io/lib/io-util\"));\nconst timers_1 = require(\"timers\");\n/* eslint-disable @typescript-eslint/unbound-method */\nconst IS_WINDOWS = process.platform === 'win32';\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */\nclass ToolRunner extends events.EventEmitter {\n constructor(toolPath, args, options) {\n super();\n if (!toolPath) {\n throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n }\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) {\n this.options.listeners.debug(message);\n }\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool\n if (IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows + verbatim\n else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows (regular)\n else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args) {\n cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n }\n }\n else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf(os.EOL);\n while (n > -1) {\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + os.EOL.length);\n n = s.indexOf(os.EOL);\n }\n return s;\n }\n catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return '';\n }\n }\n _getSpawnFileName() {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n return process.env['COMSPEC'] || 'cmd.exe';\n }\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args) {\n argline += ' ';\n argline += options.windowsVerbatimArguments\n ? a\n : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [argline];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return (this._endsWith(upperToolPath, '.CMD') ||\n this._endsWith(upperToolPath, '.BAT'));\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) {\n return this._uvQuoteCmdArg(arg);\n }\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) {\n return '\"\"';\n }\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n ' ',\n '\\t',\n '&',\n '(',\n ')',\n '[',\n ']',\n '{',\n '}',\n '^',\n '=',\n ';',\n '!',\n \"'\",\n '+',\n ',',\n '`',\n '~',\n '|',\n '<',\n '>',\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg) {\n if (cmdSpecialChars.some(x => x === char)) {\n needsQuotes = true;\n break;\n }\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) {\n return arg;\n }\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\'; // double the slash\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) {\n // Need double quotation for empty argument\n return '\"\"';\n }\n if (!arg.includes(' ') && !arg.includes('\\t') && !arg.includes('\"')) {\n // No quotation needed\n return arg;\n }\n if (!arg.includes('\"') && !arg.includes('\\\\')) {\n // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n }\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\';\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\\\\';\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result['windowsVerbatimArguments'] =\n options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) {\n result.argv0 = `\"${toolPath}\"`;\n }\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */\n exec() {\n return __awaiter(this, void 0, void 0, function* () {\n // root the tool path if it is unrooted and contains relative pathing\n if (!ioUtil.isRooted(this.toolPath) &&\n (this.toolPath.includes('/') ||\n (IS_WINDOWS && this.toolPath.includes('\\\\')))) {\n // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n }\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield io.which(this.toolPath, true);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug('arguments:');\n for (const arg of this.args) {\n this._debug(` ${arg}`);\n }\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);\n }\n const state = new ExecState(optionsNonNull, this.toolPath);\n state.on('debug', (message) => {\n this._debug(message);\n });\n if (this.options.cwd && !(yield ioUtil.exists(this.options.cwd))) {\n return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n }\n const fileName = this._getSpawnFileName();\n const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = '';\n if (cp.stdout) {\n cp.stdout.on('data', (data) => {\n if (this.options.listeners && this.options.listeners.stdout) {\n this.options.listeners.stdout(data);\n }\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(data);\n }\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.stdline) {\n this.options.listeners.stdline(line);\n }\n });\n });\n }\n let errbuffer = '';\n if (cp.stderr) {\n cp.stderr.on('data', (data) => {\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) {\n this.options.listeners.stderr(data);\n }\n if (!optionsNonNull.silent &&\n optionsNonNull.errStream &&\n optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr\n ? optionsNonNull.errStream\n : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.errline) {\n this.options.listeners.errline(line);\n }\n });\n });\n }\n cp.on('error', (err) => {\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on('exit', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on('close', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on('done', (error, exitCode) => {\n if (stdbuffer.length > 0) {\n this.emit('stdline', stdbuffer);\n }\n if (errbuffer.length > 0) {\n this.emit('errline', errbuffer);\n }\n cp.removeAllListeners();\n if (error) {\n reject(error);\n }\n else {\n resolve(exitCode);\n }\n });\n if (this.options.input) {\n if (!cp.stdin) {\n throw new Error('child process missing stdin');\n }\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nexports.ToolRunner = ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */\nfunction argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = '';\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') {\n arg += '\\\\';\n }\n arg += c;\n escaped = false;\n }\n for (let i = 0; i < argString.length; i++) {\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) {\n inQuotes = !inQuotes;\n }\n else {\n append(c);\n }\n continue;\n }\n if (c === '\\\\' && escaped) {\n append(c);\n continue;\n }\n if (c === '\\\\' && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === ' ' && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = '';\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) {\n args.push(arg.trim());\n }\n return args;\n}\nexports.argStringToArray = argStringToArray;\nclass ExecState extends events.EventEmitter {\n constructor(options, toolPath) {\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = '';\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) {\n throw new Error('toolPath must not be empty');\n }\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) {\n this.delay = options.delay;\n }\n }\n CheckComplete() {\n if (this.done) {\n return;\n }\n if (this.processClosed) {\n this._setResult();\n }\n else if (this.processExited) {\n this.timeout = timers_1.setTimeout(ExecState.HandleTimeout, this.delay, this);\n }\n }\n _debug(message) {\n this.emit('debug', message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) {\n error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n }\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) {\n error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n }\n else if (this.processStderr && this.options.failOnStdErr) {\n error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit('done', error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) {\n return;\n }\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay /\n 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n//# sourceMappingURL=toolrunner.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runAttempt = parseInt(process.env.GITHUB_RUN_ATTEMPT, 10);\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl =\n (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyFetch = exports.getProxyAgentDispatcher = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nconst undici_1 = require(\"undici\");\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getProxyAgentDispatcher(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgentDispatcher(destinationUrl);\n}\nexports.getProxyAgentDispatcher = getProxyAgentDispatcher;\nfunction getProxyFetch(destinationUrl) {\n const httpDispatcher = getProxyAgentDispatcher(destinationUrl);\n const proxyFetch = (url, opts) => __awaiter(this, void 0, void 0, function* () {\n return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { dispatcher: httpDispatcher }));\n });\n return proxyFetch;\n}\nexports.getProxyFetch = getProxyFetch;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl),\n fetch: Utils.getProxyFetch(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nconst undici_1 = require(\"undici\");\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes || (exports.HttpCodes = HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers || (exports.Headers = Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes || (exports.MediaTypes = MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n readBodyBuffer() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n const chunks = [];\n this.message.on('data', (chunk) => {\n chunks.push(chunk);\n });\n this.message.on('end', () => {\n resolve(Buffer.concat(chunks));\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n getAgentDispatcher(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (!useProxy) {\n return;\n }\n return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (!useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if tunneling agent isn't assigned create a new agent\n if (!agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _getProxyAgentDispatcher(parsedUrl, proxyUrl) {\n let proxyAgent;\n if (this._keepAlive) {\n proxyAgent = this._proxyAgentDispatcher;\n }\n // if agent is already assigned use that agent.\n if (proxyAgent) {\n return proxyAgent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && {\n token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}`\n })));\n this._proxyAgentDispatcher = proxyAgent;\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, {\n rejectUnauthorized: false\n });\n }\n return proxyAgent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n try {\n return new DecodedURL(proxyVar);\n }\n catch (_a) {\n if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://'))\n return new DecodedURL(`http://${proxyVar}`);\n }\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const reqHost = reqUrl.hostname;\n if (isLoopbackAddress(reqHost)) {\n return true;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperNoProxyItem === '*' ||\n upperReqHosts.some(x => x === upperNoProxyItem ||\n x.endsWith(`.${upperNoProxyItem}`) ||\n (upperNoProxyItem.startsWith('.') &&\n x.endsWith(`${upperNoProxyItem}`)))) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\nfunction isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return (hostLower === 'localhost' ||\n hostLower.startsWith('127.') ||\n hostLower.startsWith('[::1]') ||\n hostLower.startsWith('[0:0:0:0:0:0:0:1]'));\n}\nclass DecodedURL extends URL {\n constructor(url, base) {\n super(url, base);\n this._decodedUsername = decodeURIComponent(super.username);\n this._decodedPassword = decodeURIComponent(super.password);\n }\n get username() {\n return this._decodedUsername;\n }\n get password() {\n return this._decodedPassword;\n }\n}\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\n_a = fs.promises\n// export const {open} = 'fs'\n, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;\n// export const {open} = 'fs'\nexports.IS_WINDOWS = process.platform === 'win32';\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nexports.UV_FS_O_EXLOCK = 0x10000000;\nexports.READONLY = fs.constants.O_RDONLY;\nfunction exists(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield exports.stat(fsPath);\n }\n catch (err) {\n if (err.code === 'ENOENT') {\n return false;\n }\n throw err;\n }\n return true;\n });\n}\nexports.exists = exists;\nfunction isDirectory(fsPath, useStat = false) {\n return __awaiter(this, void 0, void 0, function* () {\n const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nexports.isDirectory = isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */\nfunction isRooted(p) {\n p = normalizeSeparators(p);\n if (!p) {\n throw new Error('isRooted() parameter \"p\" cannot be empty');\n }\n if (exports.IS_WINDOWS) {\n return (p.startsWith('\\\\') || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ); // e.g. C: or C:\\hello\n }\n return p.startsWith('/');\n}\nexports.isRooted = isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */\nfunction tryGetExecutablePath(filePath, extensions) {\n return __awaiter(this, void 0, void 0, function* () {\n let stats = undefined;\n try {\n // test file exists\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = path.extname(filePath).toUpperCase();\n if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {\n return filePath;\n }\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions) {\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = path.dirname(filePath);\n const upperName = path.basename(filePath).toUpperCase();\n for (const actualName of yield exports.readdir(directory)) {\n if (upperName === actualName.toUpperCase()) {\n filePath = path.join(directory, actualName);\n break;\n }\n }\n }\n catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n }\n return '';\n });\n}\nexports.tryGetExecutablePath = tryGetExecutablePath;\nfunction normalizeSeparators(p) {\n p = p || '';\n if (exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, '\\\\');\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, '\\\\');\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, '/');\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction isUnixExecutable(stats) {\n return ((stats.mode & 1) > 0 ||\n ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||\n ((stats.mode & 64) > 0 && stats.uid === process.getuid()));\n}\n// Get the path of cmd.exe in windows\nfunction getCmdPath() {\n var _a;\n return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nexports.getCmdPath = getCmdPath;\n//# sourceMappingURL=io-util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0;\nconst assert_1 = require(\"assert\");\nconst path = __importStar(require(\"path\"));\nconst ioUtil = __importStar(require(\"./io-util\"));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */\nfunction cp(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { force, recursive, copySourceDirectory } = readCopyOptions(options);\n const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) {\n return;\n }\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory\n ? path.join(dest, path.basename(source))\n : dest;\n if (!(yield ioUtil.exists(source))) {\n throw new Error(`no such file or directory: ${source}`);\n }\n const sourceStat = yield ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) {\n throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n }\n else {\n yield cpDirRecursive(source, newDest, 0, force);\n }\n }\n else {\n if (path.relative(source, newDest) === '') {\n // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n }\n yield copyFile(source, newDest, force);\n }\n });\n}\nexports.cp = cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */\nfunction mv(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (yield ioUtil.exists(dest)) {\n let destExists = true;\n if (yield ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = path.join(dest, path.basename(source));\n destExists = yield ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) {\n yield rmRF(dest);\n }\n else {\n throw new Error('Destination already exists');\n }\n }\n }\n yield mkdirP(path.dirname(dest));\n yield ioUtil.rename(source, dest);\n });\n}\nexports.mv = mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */\nfunction rmRF(inputPath) {\n return __awaiter(this, void 0, void 0, function* () {\n if (ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) {\n throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n }\n try {\n // note if path does not exist, error is silent\n yield ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n }\n catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nexports.rmRF = rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */\nfunction mkdirP(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n assert_1.ok(fsPath, 'a path argument must be provided');\n yield ioUtil.mkdir(fsPath, { recursive: true });\n });\n}\nexports.mkdirP = mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */\nfunction which(tool, check) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // recursive when check=true\n if (check) {\n const result = yield which(tool, false);\n if (!result) {\n if (ioUtil.IS_WINDOWS) {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n }\n else {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n }\n return result;\n }\n const matches = yield findInPath(tool);\n if (matches && matches.length > 0) {\n return matches[0];\n }\n return '';\n });\n}\nexports.which = which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */\nfunction findInPath(tool) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // build the list of extensions to try\n const extensions = [];\n if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) {\n for (const extension of process.env['PATHEXT'].split(path.delimiter)) {\n if (extension) {\n extensions.push(extension);\n }\n }\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if (ioUtil.isRooted(tool)) {\n const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) {\n return [filePath];\n }\n return [];\n }\n // if any path separators, return empty\n if (tool.includes(path.sep)) {\n return [];\n }\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split(path.delimiter)) {\n if (p) {\n directories.push(p);\n }\n }\n }\n // find all matches\n const matches = [];\n for (const directory of directories) {\n const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions);\n if (filePath) {\n matches.push(filePath);\n }\n }\n return matches;\n });\n}\nexports.findInPath = findInPath;\nfunction readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null\n ? true\n : Boolean(options.copySourceDirectory);\n return { force, recursive, copySourceDirectory };\n}\nfunction cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return __awaiter(this, void 0, void 0, function* () {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255)\n return;\n currentDepth++;\n yield mkdirP(destDir);\n const files = yield ioUtil.readdir(sourceDir);\n for (const fileName of files) {\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) {\n // Recurse\n yield cpDirRecursive(srcFile, destFile, currentDepth, force);\n }\n else {\n yield copyFile(srcFile, destFile, force);\n }\n }\n // Change the mode for the newly created directory\n yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction copyFile(srcFile, destFile, force) {\n return __awaiter(this, void 0, void 0, function* () {\n if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield ioUtil.lstat(destFile);\n yield ioUtil.unlink(destFile);\n }\n catch (e) {\n // Try to override file permission\n if (e.code === 'EPERM') {\n yield ioUtil.chmod(destFile, '0666');\n yield ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield ioUtil.readlink(srcFile);\n yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);\n }\n else if (!(yield ioUtil.exists(destFile)) || force) {\n yield ioUtil.copyFile(srcFile, destFile);\n }\n });\n}\n//# sourceMappingURL=io.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadAwsServiceSpec = loadAwsServiceSpec;\nexports.loadAwsServiceSpecSync = loadAwsServiceSpecSync;\nconst node_fs_1 = require(\"node:fs\");\nconst path = __importStar(require(\"node:path\"));\nconst node_zlib_1 = require(\"node:zlib\");\nconst service_spec_types_1 = require(\"@aws-cdk/service-spec-types\");\nconst DB_COMPRESSED = 'db.json.gz';\nconst DB_PATH = path.join(__dirname, '..', DB_COMPRESSED);\n/**\n * Load the provided built-in database\n */\nasync function loadAwsServiceSpec() {\n return loadBufferIntoDatabase(await node_fs_1.promises.readFile(DB_PATH));\n}\n/**\n * Synchronously load the provided built-in database\n */\nfunction loadAwsServiceSpecSync() {\n return loadBufferIntoDatabase((0, node_fs_1.readFileSync)(DB_PATH));\n}\nfunction loadBufferIntoDatabase(spec) {\n const db = (0, service_spec_types_1.emptyDatabase)();\n db.load(JSON.parse((0, node_zlib_1.gunzipSync)(spec).toString('utf-8')));\n return db;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxnREFFQztBQUtELHdEQUVDO0FBcEJELHFDQUF1RDtBQUN2RCxnREFBa0M7QUFDbEMseUNBQXVDO0FBQ3ZDLG9FQUEwRTtBQUUxRSxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBRTFEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQjtJQUN0QyxPQUFPLHNCQUFzQixDQUFDLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0I7SUFDcEMsT0FBTyxzQkFBc0IsQ0FBQyxJQUFBLHNCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZO0lBQzFDLE1BQU0sRUFBRSxHQUFHLElBQUEsa0NBQWEsR0FBRSxDQUFDO0lBQzNCLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLHNCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcywgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBndW56aXBTeW5jIH0gZnJvbSAnbm9kZTp6bGliJztcbmltcG9ydCB7IGVtcHR5RGF0YWJhc2UsIFNwZWNEYXRhYmFzZSB9IGZyb20gJ0Bhd3MtY2RrL3NlcnZpY2Utc3BlYy10eXBlcyc7XG5cbmNvbnN0IERCX0NPTVBSRVNTRUQgPSAnZGIuanNvbi5neic7XG5jb25zdCBEQl9QQVRIID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgREJfQ09NUFJFU1NFRCk7XG5cbi8qKlxuICogTG9hZCB0aGUgcHJvdmlkZWQgYnVpbHQtaW4gZGF0YWJhc2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRBd3NTZXJ2aWNlU3BlYygpOiBQcm9taXNlPFNwZWNEYXRhYmFzZT4ge1xuICByZXR1cm4gbG9hZEJ1ZmZlckludG9EYXRhYmFzZShhd2FpdCBmcy5yZWFkRmlsZShEQl9QQVRIKSk7XG59XG5cbi8qKlxuICogU3luY2hyb25vdXNseSBsb2FkIHRoZSBwcm92aWRlZCBidWlsdC1pbiBkYXRhYmFzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEF3c1NlcnZpY2VTcGVjU3luYygpOiBTcGVjRGF0YWJhc2Uge1xuICByZXR1cm4gbG9hZEJ1ZmZlckludG9EYXRhYmFzZShyZWFkRmlsZVN5bmMoREJfUEFUSCkpO1xufVxuXG5mdW5jdGlvbiBsb2FkQnVmZmVySW50b0RhdGFiYXNlKHNwZWM6IEJ1ZmZlcik6IFNwZWNEYXRhYmFzZSB7XG4gIGNvbnN0IGRiID0gZW1wdHlEYXRhYmFzZSgpO1xuICBkYi5sb2FkKEpTT04ucGFyc2UoZ3VuemlwU3luYyhzcGVjKS50b1N0cmluZygndXRmLTgnKSkpO1xuICByZXR1cm4gZGI7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types/database\"), exports);\n__exportStar(require(\"./types/resource\"), exports);\n__exportStar(require(\"./types/augmentations\"), exports);\n__exportStar(require(\"./types/event\"), exports);\n__exportStar(require(\"./types/metrics\"), exports);\n__exportStar(require(\"./types/diff\"), exports);\n__exportStar(require(\"./types/common\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyxtREFBaUM7QUFDakMsd0RBQXNDO0FBQ3RDLGdEQUE4QjtBQUM5QixrREFBZ0M7QUFDaEMsK0NBQTZCO0FBQzdCLGlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMvZGF0YWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9yZXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2F1Z21lbnRhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL21ldHJpY3MnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvY29tbW9uJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVnbWVudGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9hdWdtZW50YXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBdWdtZW50YXRpb25zIGZvciBhIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGVcbiAqXG4gKiBBdWdtZW50YXRpb25zIGFyZSBhIGRlcHJlY2F0ZWQgbWVjaGFuaXNtIGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgbWV0cmljc1xuICogZnVuY3Rpb25zIGZvciBjZXJ0YWluIHJlc291cmNlcywgdXRpbGl6aW5nIFR5cGVTY3JpcHQgbWl4aW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQXVnbWVudGF0aW9uIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIE1ldHJpYyBhdWdtZW50YXRpb25zIGZvciB0aGlzIHJlc291cmNlIHR5cGVcbiAgICovXG4gIG1ldHJpY3M/OiBSZXNvdXJjZU1ldHJpY0F1Z21lbnRhdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGNsYXNzIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGtlYmFiIGNhc2VkIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWUgKyAnLWJhc2UnXG4gICAqL1xuICBiYXNlQ2xhc3NGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgbmFtZSArICdCYXNlJ1xuICAgKi9cbiAgYmFzZUNsYXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBpbnRlcmZhY2UgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzYW1lIGFzIGBgY2xhc3NGaWxlYGAuXG4gICAqL1xuICBpbnRlcmZhY2VGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdJJyArIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWVcbiAgICovXG4gIGludGVyZmFjZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSXNBdWdtZW50ZWRSZXNvdXJjZSA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgUmVzb3VyY2VBdWdtZW50YXRpb24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljQXVnbWVudGF0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG9mIG1ldHJpY3MgZm9yIHRoaXMgc2VydmljZVxuICAgKi9cbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSByZXNvdXJjZSBjbGFzcyB0aGF0IHByb3ZpZGUgdmFsdWVzIGZvciB0aGUgZGltZW5zaW9uc1xuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYHsgUXVldWVOYW1lOiAncXVldWVOYW1lJyB9YCBzYXlzIHRoYXQgdGhlIG1ldHJpYyBoYXMgYSBgUXVldWVOYW1lYFxuICAgKiBkaW1lbnNpb24sIGZvciB3aGljaCB0aGUgdmFsdWUgY2FuIGJlIG9idGFpbmVkIGJ5IHJlYWRpbmcgYHRoaXMucXVldWVOYW1lYC5cbiAgICovXG4gIGRpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWNzIGZvciB0aGlzIHJlc291cmNlXG4gICAqL1xuICBtZXRyaWNzOiBSZXNvdXJjZU1ldHJpY1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljIHtcbiAgLyoqXG4gICAqIFVwcGVyY2FzZS1maXJzdCBtZXRyaWMgbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudGF0aW9uIGxpbmVcbiAgICovXG4gIGRvY3VtZW50YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGV2ZW4gY291bnQgKDEgZ2V0cyBlbWl0dGVkIGV2ZXJ5IHRpbWUgc29tZXRoaW5nIG9jY3VycylcbiAgICpcbiAgICogQGRlZmF1bHQgTWV0cmljVHlwZS5BdHRyaWJcbiAgICovXG4gIHR5cGU/OiBNZXRyaWNUeXBlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRyaWNUeXBlID1cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgbWVhc3VyaW5nIGEgYXR0cmlidXRlIG9mIHRoZSBldmVudC5cbiAgICpcbiAgICogVHlwaWNhbCBleGFtcGxlcyBvZiB0aGlzIHdvdWxkIGJlIGR1cmF0aW9uLCBvciByZXF1ZXN0IHNpemUsIG9yIHNpbWlsYXIuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGFnZ3JlZ2F0ZSBmb3IgdGhpcyB0eXBlIG9mIGV2ZW50IGlzIFwiQXZnXCIuXG4gICAqL1xuICB8ICdhdHRyaWInXG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgYW5kIHRoZSB2YWx1ZSBpcyBhbHdheXMgYDFgLlxuICAgKlxuICAgKiBPbmx5IFwiU3VtXCIgaXMgYSBtZWFuaW5nZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljOyBhbGwgb3RoZXJcbiAgICogYWdncmVnYXRpb25zIHdpbGwgb25seSBldmVyIHByb2R1Y2UgdGhlIHZhbHVlIGAxYC5cbiAgICovXG4gIHwgJ2NvdW50J1xuXG4gIC8qKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBlbWl0dGVkIHBlcmlvZGljYWxseSwgcmVwcmVzZW50aW5nIGEgc3lzdGVtIHByb3BlcnR5LlxuICAgKlxuICAgKiBUaGUgbWV0cmljIG1lYXN1cmVzIHNvbWUgZ2xvYmFsIGV2ZXItY2hhbmdpbmcgcHJvcGVydHksIGFuZCBkb2VzIG5vdFxuICAgKiBtZWFzdXJlIGV2ZW50cy4gVGhlIG1vc3QgdXNlZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljIGlzIFwiTWF4XCIuXG4gICAqL1xuICB8ICdnYXVnZSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5LCBSZWZlcmVuY2UgfSBmcm9tICdAY2RrbGFicy90c2tiJztcblxuZXhwb3J0IHR5cGUgR2VuZXJpY1Byb3BlcnR5VHlwZTxUIGV4dGVuZHMgRW50aXR5PiA9XG4gIHwgUHJpbWl0aXZlVHlwZVxuICB8IEdlbmVyaWNEZWZpbml0aW9uUmVmZXJlbmNlPFQ+XG4gIHwgQnVpbHRpblRhZ1R5cGVcbiAgfCBBcnJheVR5cGU8R2VuZXJpY1Byb3BlcnR5VHlwZTxUPj5cbiAgfCBNYXBUeXBlPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+XG4gIHwgVHlwZVVuaW9uPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+O1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVUeXBlID1cbiAgfCBTdHJpbmdUeXBlXG4gIHwgTnVtYmVyVHlwZVxuICB8IEludGVnZXJUeXBlXG4gIHwgQm9vbGVhblR5cGVcbiAgfCBKc29uVHlwZVxuICB8IERhdGVUaW1lVHlwZVxuICB8IE51bGxUeXBlXG4gIHwgQnVpbHRpblRhZ1R5cGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdzdHJpbmcnO1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogc3RyaW5nW107XG59XG4vKipcbiAqIFRoZSBcImxlZ2FjeVwiIHRhZyB0eXBlICh1c2VkIGluIHRoZSBvbGQgcmVzb3VyY2Ugc3BlYylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsdGluVGFnVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICd0YWcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlclR5cGUge1xuICByZWFkb25seSB0eXBlOiAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdpbnRlZ2VyJztcbiAgcmVhZG9ubHkgYWxsb3dlZFZhbHVlcz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2Jvb2xlYW4nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2pzb24nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdkYXRlLXRpbWUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bGxUeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ251bGwnO1xufVxuXG4vKipcbiAqXG4gKiBUIGlzIHRoZSBlbnRpdHkgdHlwZSBmb3IgY29tcG91bmQgb2JqZWN0cy5cbiAqXG4gKiBGb3IgZXhhbXBsZTogVHlwZURlZmluaXRpb24sIEV2ZW50VHlwZURlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY0RlZmluaXRpb25SZWZlcmVuY2U8VCBleHRlbmRzIEVudGl0eT4ge1xuICByZWFkb25seSB0eXBlOiAncmVmJztcbiAgcmVhZG9ubHkgcmVmZXJlbmNlOiBSZWZlcmVuY2U8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2FycmF5JztcbiAgcmVhZG9ubHkgZWxlbWVudDogRTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ21hcCc7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVVuaW9uPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ3VuaW9uJztcbiAgcmVhZG9ubHkgdHlwZXM6IEVbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichSpecDatabase = void 0;\nexports.emptyDatabase = emptyDatabase;\nexports.loadDatabase = loadDatabase;\nconst fs_1 = require(\"fs\");\nconst zlib_1 = require(\"zlib\");\nconst tskb_1 = require(\"@cdklabs/tskb\");\nfunction emptyDatabase() {\n return new tskb_1.Database({\n resource: (0, tskb_1.entityCollection)().index({\n cloudFormationType: (0, tskb_1.fieldIndex)('cloudFormationType', tskb_1.stringCmp),\n }),\n region: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n service: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n cloudFormationNamespace: (0, tskb_1.fieldIndex)('cloudFormationNamespace', tskb_1.stringCmp),\n }),\n eventTypeDefinition: (0, tskb_1.entityCollection)(),\n typeDefinition: (0, tskb_1.entityCollection)(),\n augmentations: (0, tskb_1.entityCollection)(),\n metric: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n namespace: (0, tskb_1.fieldIndex)('namespace', tskb_1.stringCmp),\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n dimensionSet: (0, tskb_1.entityCollection)().index({\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n event: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n }, (r) => ({\n hasResource: r.relationship('service', 'resource'),\n regionHasResource: r.relationship('region', 'resource'),\n regionHasService: r.relationship('region', 'service'),\n usesType: r.relationship('resource', 'typeDefinition'),\n isAugmented: r.relationship('resource', 'augmentations'),\n usesDimensionSet: r.relationship('metric', 'dimensionSet'),\n resourceHasMetric: r.relationship('resource', 'metric'),\n serviceHasMetric: r.relationship('service', 'metric'),\n resourceHasDimensionSet: r.relationship('resource', 'dimensionSet'),\n serviceHasDimensionSet: r.relationship('service', 'dimensionSet'),\n resourceHasEvent: r.relationship('resource', 'event'),\n serviceHasEvent: r.relationship('service', 'event'),\n eventUsesType: r.relationship('event', 'eventTypeDefinition'),\n }));\n}\nasync function loadDatabase(pathToDb) {\n const db = emptyDatabase();\n const contents = await fs_1.promises.readFile(pathToDb);\n const json = pathToDb.endsWith('.gz') ? (0, zlib_1.gunzipSync)(contents).toString('utf-8') : contents.toString('utf-8');\n db.load(JSON.parse(json));\n return db;\n}\n/**\n * Helpers for working with a SpecDatabase\n */\nclass RichSpecDatabase {\n constructor(db) {\n this.db = db;\n }\n /**\n * Find all resources of a given type\n */\n resourceByType(cfnType, operation = 'resourceByType') {\n const res = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType);\n if (res.length === 0) {\n throw new Error(`${operation}: no such resource: ${cfnType}`);\n }\n return res[0];\n }\n /**\n * All type definitions used by a certain resource\n */\n resourceTypeDefs(cfnType) {\n const resource = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType).only();\n return this.db.follow('usesType', resource).map((x) => x.entity);\n }\n /**\n * Find a type definition from a given property type\n */\n tryFindDef(type) {\n return type.type === 'ref' ? this.db.get('typeDefinition', type.reference.$ref) : undefined;\n }\n}\nexports.RichSpecDatabase = RichSpecDatabase;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLHNDQTRDQztBQUVELG9DQU1DO0FBOUVELDJCQUFvQztBQUNwQywrQkFBa0M7QUFDbEMsd0NBQWtGO0FBd0JsRixTQUFnQixhQUFhO0lBQzNCLE9BQU8sSUFBSSxlQUFRLENBQ2pCO1FBQ0UsUUFBUSxFQUFFLElBQUEsdUJBQWdCLEdBQVksQ0FBQyxLQUFLLENBQUM7WUFDM0Msa0JBQWtCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLG9CQUFvQixFQUFFLGdCQUFTLENBQUM7U0FDaEUsQ0FBQztRQUNGLE1BQU0sRUFBRSxJQUFBLHVCQUFnQixHQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7U0FDcEMsQ0FBQztRQUNGLE9BQU8sRUFBRSxJQUFBLHVCQUFnQixHQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3pDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7WUFDbkMsdUJBQXVCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLHlCQUF5QixFQUFFLGdCQUFTLENBQUM7U0FDMUUsQ0FBQztRQUNGLG1CQUFtQixFQUFFLElBQUEsdUJBQWdCLEdBQXVCO1FBQzVELGNBQWMsRUFBRSxJQUFBLHVCQUFnQixHQUFrQjtRQUNsRCxhQUFhLEVBQUUsSUFBQSx1QkFBZ0IsR0FBd0I7UUFDdkQsTUFBTSxFQUFFLElBQUEsdUJBQWdCLEdBQVUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUEsaUJBQVUsRUFBQyxNQUFNLEVBQUUsZ0JBQVMsQ0FBQztZQUNuQyxTQUFTLEVBQUUsSUFBQSxpQkFBVSxFQUFDLFdBQVcsRUFBRSxnQkFBUyxDQUFDO1lBQzdDLFFBQVEsRUFBRSxJQUFBLGlCQUFVLEVBQUMsVUFBVSxFQUFFLGdCQUFTLENBQUM7U0FDNUMsQ0FBQztRQUNGLFlBQVksRUFBRSxJQUFBLHVCQUFnQixHQUFnQixDQUFDLEtBQUssQ0FBQztZQUNuRCxRQUFRLEVBQUUsSUFBQSxpQkFBVSxFQUFDLFVBQVUsRUFBRSxnQkFBUyxDQUFDO1NBQzVDLENBQUM7UUFDRixLQUFLLEVBQUUsSUFBQSx1QkFBZ0IsR0FBUyxDQUFDLEtBQUssQ0FBQztZQUNyQyxJQUFJLEVBQUUsSUFBQSxpQkFBVSxFQUFDLE1BQU0sRUFBRSxnQkFBUyxDQUFDO1NBQ3BDLENBQUM7S0FDSCxFQUNELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ04sV0FBVyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQWMsU0FBUyxFQUFFLFVBQVUsQ0FBQztRQUMvRCxpQkFBaUIsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFvQixRQUFRLEVBQUUsVUFBVSxDQUFDO1FBQzFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQW1CLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDdkUsUUFBUSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQVcsVUFBVSxFQUFFLGdCQUFnQixDQUFDO1FBQ2hFLFdBQVcsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFzQixVQUFVLEVBQUUsZUFBZSxDQUFDO1FBQzdFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQW1CLFFBQVEsRUFBRSxjQUFjLENBQUM7UUFDNUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBb0IsVUFBVSxFQUFFLFFBQVEsQ0FBQztRQUMxRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFtQixTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQ3ZFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQTBCLFVBQVUsRUFBRSxjQUFjLENBQUM7UUFDNUYsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBeUIsU0FBUyxFQUFFLGNBQWMsQ0FBQztRQUN6RixnQkFBZ0IsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFtQixVQUFVLEVBQUUsT0FBTyxDQUFDO1FBQ3ZFLGVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFrQixTQUFTLEVBQUUsT0FBTyxDQUFDO1FBQ3BFLGFBQWEsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFnQixPQUFPLEVBQUUscUJBQXFCLENBQUM7S0FDN0UsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLFlBQVksQ0FBQyxRQUFnQjtJQUNqRCxNQUFNLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxpQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxQixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFJRDs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBQzNCLFlBQTZCLEVBQWdCO1FBQWhCLE9BQUUsR0FBRixFQUFFLENBQWM7SUFBRyxDQUFDO0lBRWpEOztPQUVHO0lBQ0ksY0FBYyxDQUFDLE9BQWUsRUFBRSxTQUFTLEdBQUcsZ0JBQWdCO1FBQ2pFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEYsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxTQUFTLHVCQUF1QixPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLElBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM5RixDQUFDO0NBQ0Y7QUE1QkQsNENBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBndW56aXBTeW5jIH0gZnJvbSAnemxpYic7XG5pbXBvcnQgeyBEYXRhYmFzZSwgZW50aXR5Q29sbGVjdGlvbiwgZmllbGRJbmRleCwgc3RyaW5nQ21wIH0gZnJvbSAnQGNka2xhYnMvdHNrYic7XG5pbXBvcnQgeyBJc0F1Z21lbnRlZFJlc291cmNlLCBSZXNvdXJjZUF1Z21lbnRhdGlvbiB9IGZyb20gJy4vYXVnbWVudGF0aW9ucyc7XG5pbXBvcnQgeyBSZXNvdXJjZUhhc0V2ZW50LCBFdmVudCwgRXZlbnRVc2VzVHlwZSwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgc2VydmljZUhhc0V2ZW50IH0gZnJvbSAnLi9ldmVudCc7XG5pbXBvcnQge1xuICBEaW1lbnNpb25TZXQsXG4gIE1ldHJpYyxcbiAgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQsXG4gIFNlcnZpY2VIYXNEaW1lbnNpb25TZXQsXG4gIFVzZXNEaW1lbnNpb25TZXQsXG4gIFJlc291cmNlSGFzTWV0cmljLFxuICBTZXJ2aWNlSGFzTWV0cmljLFxufSBmcm9tICcuL21ldHJpY3MnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFNlcnZpY2UsXG4gIFR5cGVEZWZpbml0aW9uLFxuICBQcm9wZXJ0eVR5cGUsXG4gIFJlZ2lvbixcbiAgSGFzUmVzb3VyY2UsXG4gIFJlZ2lvbkhhc1Jlc291cmNlLFxuICBSZWdpb25IYXNTZXJ2aWNlLFxuICBVc2VzVHlwZSxcbn0gZnJvbSAnLi9yZXNvdXJjZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eURhdGFiYXNlKCkge1xuICByZXR1cm4gbmV3IERhdGFiYXNlKFxuICAgIHtcbiAgICAgIHJlc291cmNlOiBlbnRpdHlDb2xsZWN0aW9uPFJlc291cmNlPigpLmluZGV4KHtcbiAgICAgICAgY2xvdWRGb3JtYXRpb25UeXBlOiBmaWVsZEluZGV4KCdjbG91ZEZvcm1hdGlvblR5cGUnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICByZWdpb246IGVudGl0eUNvbGxlY3Rpb248UmVnaW9uPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIHNlcnZpY2U6IGVudGl0eUNvbGxlY3Rpb248U2VydmljZT4oKS5pbmRleCh7XG4gICAgICAgIG5hbWU6IGZpZWxkSW5kZXgoJ25hbWUnLCBzdHJpbmdDbXApLFxuICAgICAgICBjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZTogZmllbGRJbmRleCgnY2xvdWRGb3JtYXRpb25OYW1lc3BhY2UnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICBldmVudFR5cGVEZWZpbml0aW9uOiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50VHlwZURlZmluaXRpb24+KCksXG4gICAgICB0eXBlRGVmaW5pdGlvbjogZW50aXR5Q29sbGVjdGlvbjxUeXBlRGVmaW5pdGlvbj4oKSxcbiAgICAgIGF1Z21lbnRhdGlvbnM6IGVudGl0eUNvbGxlY3Rpb248UmVzb3VyY2VBdWdtZW50YXRpb24+KCksXG4gICAgICBtZXRyaWM6IGVudGl0eUNvbGxlY3Rpb248TWV0cmljPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICAgIG5hbWVzcGFjZTogZmllbGRJbmRleCgnbmFtZXNwYWNlJywgc3RyaW5nQ21wKSxcbiAgICAgICAgZGVkdXBLZXk6IGZpZWxkSW5kZXgoJ2RlZHVwS2V5Jywgc3RyaW5nQ21wKSxcbiAgICAgIH0pLFxuICAgICAgZGltZW5zaW9uU2V0OiBlbnRpdHlDb2xsZWN0aW9uPERpbWVuc2lvblNldD4oKS5pbmRleCh7XG4gICAgICAgIGRlZHVwS2V5OiBmaWVsZEluZGV4KCdkZWR1cEtleScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIGV2ZW50OiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50PigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICB9LFxuICAgIChyKSA9PiAoe1xuICAgICAgaGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPEhhc1Jlc291cmNlPignc2VydmljZScsICdyZXNvdXJjZScpLFxuICAgICAgcmVnaW9uSGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPFJlZ2lvbkhhc1Jlc291cmNlPigncmVnaW9uJywgJ3Jlc291cmNlJyksXG4gICAgICByZWdpb25IYXNTZXJ2aWNlOiByLnJlbGF0aW9uc2hpcDxSZWdpb25IYXNTZXJ2aWNlPigncmVnaW9uJywgJ3NlcnZpY2UnKSxcbiAgICAgIHVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxVc2VzVHlwZT4oJ3Jlc291cmNlJywgJ3R5cGVEZWZpbml0aW9uJyksXG4gICAgICBpc0F1Z21lbnRlZDogci5yZWxhdGlvbnNoaXA8SXNBdWdtZW50ZWRSZXNvdXJjZT4oJ3Jlc291cmNlJywgJ2F1Z21lbnRhdGlvbnMnKSxcbiAgICAgIHVzZXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFVzZXNEaW1lbnNpb25TZXQ+KCdtZXRyaWMnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICByZXNvdXJjZUhhc01ldHJpYzogci5yZWxhdGlvbnNoaXA8UmVzb3VyY2VIYXNNZXRyaWM+KCdyZXNvdXJjZScsICdtZXRyaWMnKSxcbiAgICAgIHNlcnZpY2VIYXNNZXRyaWM6IHIucmVsYXRpb25zaGlwPFNlcnZpY2VIYXNNZXRyaWM+KCdzZXJ2aWNlJywgJ21ldHJpYycpLFxuICAgICAgcmVzb3VyY2VIYXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRGltZW5zaW9uU2V0PigncmVzb3VyY2UnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICBzZXJ2aWNlSGFzRGltZW5zaW9uU2V0OiByLnJlbGF0aW9uc2hpcDxTZXJ2aWNlSGFzRGltZW5zaW9uU2V0Pignc2VydmljZScsICdkaW1lbnNpb25TZXQnKSxcbiAgICAgIHJlc291cmNlSGFzRXZlbnQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRXZlbnQ+KCdyZXNvdXJjZScsICdldmVudCcpLFxuICAgICAgc2VydmljZUhhc0V2ZW50OiByLnJlbGF0aW9uc2hpcDxzZXJ2aWNlSGFzRXZlbnQ+KCdzZXJ2aWNlJywgJ2V2ZW50JyksXG4gICAgICBldmVudFVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxFdmVudFVzZXNUeXBlPignZXZlbnQnLCAnZXZlbnRUeXBlRGVmaW5pdGlvbicpLFxuICAgIH0pLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZERhdGFiYXNlKHBhdGhUb0RiOiBzdHJpbmcpIHtcbiAgY29uc3QgZGIgPSBlbXB0eURhdGFiYXNlKCk7XG4gIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aFRvRGIpO1xuICBjb25zdCBqc29uID0gcGF0aFRvRGIuZW5kc1dpdGgoJy5neicpID8gZ3VuemlwU3luYyhjb250ZW50cykudG9TdHJpbmcoJ3V0Zi04JykgOiBjb250ZW50cy50b1N0cmluZygndXRmLTgnKTtcbiAgZGIubG9hZChKU09OLnBhcnNlKGpzb24pKTtcbiAgcmV0dXJuIGRiO1xufVxuXG5leHBvcnQgdHlwZSBTcGVjRGF0YWJhc2UgPSBSZXR1cm5UeXBlPHR5cGVvZiBlbXB0eURhdGFiYXNlPjtcblxuLyoqXG4gKiBIZWxwZXJzIGZvciB3b3JraW5nIHdpdGggYSBTcGVjRGF0YWJhc2VcbiAqL1xuZXhwb3J0IGNsYXNzIFJpY2hTcGVjRGF0YWJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRiOiBTcGVjRGF0YWJhc2UpIHt9XG5cbiAgLyoqXG4gICAqIEZpbmQgYWxsIHJlc291cmNlcyBvZiBhIGdpdmVuIHR5cGVcbiAgICovXG4gIHB1YmxpYyByZXNvdXJjZUJ5VHlwZShjZm5UeXBlOiBzdHJpbmcsIG9wZXJhdGlvbiA9ICdyZXNvdXJjZUJ5VHlwZScpOiBSZXNvdXJjZSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5kYi5sb29rdXAoJ3Jlc291cmNlJywgJ2Nsb3VkRm9ybWF0aW9uVHlwZScsICdlcXVhbHMnLCBjZm5UeXBlKTtcbiAgICBpZiAocmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29wZXJhdGlvbn06IG5vIHN1Y2ggcmVzb3VyY2U6ICR7Y2ZuVHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgdHlwZSBkZWZpbml0aW9ucyB1c2VkIGJ5IGEgY2VydGFpbiByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlc291cmNlVHlwZURlZnMoY2ZuVHlwZTogc3RyaW5nKTogcmVhZG9ubHkgVHlwZURlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLmRiLmxvb2t1cCgncmVzb3VyY2UnLCAnY2xvdWRGb3JtYXRpb25UeXBlJywgJ2VxdWFscycsIGNmblR5cGUpLm9ubHkoKTtcbiAgICByZXR1cm4gdGhpcy5kYi5mb2xsb3coJ3VzZXNUeXBlJywgcmVzb3VyY2UpLm1hcCgoeCkgPT4geC5lbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSB0eXBlIGRlZmluaXRpb24gZnJvbSBhIGdpdmVuIHByb3BlcnR5IHR5cGVcbiAgICovXG4gIHB1YmxpYyB0cnlGaW5kRGVmKHR5cGU6IFByb3BlcnR5VHlwZSk6IFR5cGVEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdHlwZS50eXBlID09PSAncmVmJyA/IHRoaXMuZGIuZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHR5cGUucmVmZXJlbmNlLiRyZWYpIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudCwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgRXZlbnRQcm9wZXJ0eSB9IGZyb20gJy4vZXZlbnQnO1xuaW1wb3J0IHsgRGltZW5zaW9uLCBEaW1lbnNpb25TZXQsIE1ldHJpYyB9IGZyb20gJy4vbWV0cmljcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIFByb3BlcnR5LCBSZXNvdXJjZSwgU2VydmljZSwgVHlwZURlZmluaXRpb24gfSBmcm9tICcuL3Jlc291cmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGVjRGF0YWJhc2VEaWZmIHtcbiAgc2VydmljZXM6IE1hcERpZmY8U2VydmljZSwgVXBkYXRlZFNlcnZpY2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3REaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogRVtdO1xuICByZWFkb25seSByZW1vdmVkPzogRVtdO1xuICByZWFkb25seSB1cGRhdGVkPzogRURbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBEaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogUmVjb3JkPHN0cmluZywgRT47XG4gIHJlYWRvbmx5IHJlbW92ZWQ/OiBSZWNvcmQ8c3RyaW5nLCBFPjtcbiAgcmVhZG9ubHkgdXBkYXRlZD86IFJlY29yZDxzdHJpbmcsIEVEPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkU2VydmljZSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPFNlcnZpY2VbJ25hbWUnXT47XG4gIHJlYWRvbmx5IHNob3J0TmFtZT86IFNjYWxhckRpZmY8U2VydmljZVsnc2hvcnROYW1lJ10+O1xuICByZWFkb25seSBjYXBpdGFsaXplZD86IFNjYWxhckRpZmY8U2VydmljZVsnY2FwaXRhbGl6ZWQnXT47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uTmFtZXNwYWNlPzogU2NhbGFyRGlmZjxTZXJ2aWNlWydjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZSddPjtcbiAgcmVhZG9ubHkgcmVzb3VyY2VEaWZmPzogTWFwRGlmZjxSZXNvdXJjZSwgVXBkYXRlZFJlc291cmNlPjtcbiAgcmVhZG9ubHkgbWV0cmljcz86IE1hcERpZmY8TWV0cmljLCBDaGFuZ2VkTWV0cmljPjtcbiAgcmVhZG9ubHkgZXZlbnREaWZmPzogTWFwRGlmZjxFdmVudCwgVXBkYXRlZEV2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkTWV0cmljIHtcbiAgcmVhZG9ubHkgc3RhdGlzdGljPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBwcmV2aW91c1N0YXRpc3RpY3M/OiBTY2FsYXJEaWZmPHN0cmluZ1tdPjtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGRpbWVuc2lvblNldHM/OiBNYXBEaWZmPERpbWVuc2lvblNldCwgQ2hhbmdlZERpbWVuc2lvblNldD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlZERpbWVuc2lvblNldCB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGRpbWVuc2lvbnM/OiBTY2FsYXJEaWZmPERpbWVuc2lvbltdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkUmVzb3VyY2Uge1xuICByZWFkb25seSBuYW1lPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uVHJhbnNmb3JtPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkb2N1bWVudGF0aW9uPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogTWFwRGlmZjxQcm9wZXJ0eSwgVXBkYXRlZFByb3BlcnR5PjtcbiAgcmVhZG9ubHkgYXR0cmlidXRlcz86IE1hcERpZmY8QXR0cmlidXRlLCBVcGRhdGVkQXR0cmlidXRlPjtcbiAgcmVhZG9ubHkgYXJuVGVtcGxhdGU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGlzU3RhdGVmdWw/OiBTY2FsYXJEaWZmPGJvb2xlYW4+O1xuICByZWFkb25seSB0YWdJbmZvcm1hdGlvbj86IFNjYWxhckRpZmY8UmVzb3VyY2VbJ3RhZ0luZm9ybWF0aW9uJ10+O1xuICByZWFkb25seSBzY3J1dGluaXphYmxlPzogU2NhbGFyRGlmZjxSZXNvdXJjZVsnc2NydXRpbml6YWJsZSddPjtcbiAgcmVhZG9ubHkgdmVuZGVkTG9ncz86IFNjYWxhckRpZmY8UmVzb3VyY2VbJ3ZlbmRlZExvZ3MnXT47XG4gIHJlYWRvbmx5IHR5cGVEZWZpbml0aW9uRGlmZj86IE1hcERpZmY8VHlwZURlZmluaXRpb24sIFVwZGF0ZWRUeXBlRGVmaW5pdGlvbj47XG4gIHJlYWRvbmx5IHByaW1hcnlJZGVudGlmaWVyPzogU2NhbGFyRGlmZjxzdHJpbmdbXT47XG4gIHJlYWRvbmx5IGNmblJlZklkZW50aWZpZXI/OiBTY2FsYXJEaWZmPHN0cmluZ1tdPjtcbiAgcmVhZG9ubHkgbWV0cmljcz86IE1hcERpZmY8TWV0cmljLCBDaGFuZ2VkTWV0cmljPjtcbiAgcmVhZG9ubHkgZXZlbnRzPzogTWFwRGlmZjxFdmVudCwgVXBkYXRlZEV2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkUHJvcGVydHkge1xuICByZWFkb25seSBvbGQ6IFByb3BlcnR5O1xuICByZWFkb25seSBuZXc6IFByb3BlcnR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRBdHRyaWJ1dGUge1xuICByZWFkb25seSBvbGQ6IEF0dHJpYnV0ZTtcbiAgcmVhZG9ubHkgbmV3OiBBdHRyaWJ1dGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZFR5cGVEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvbj86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IE1hcERpZmY8UHJvcGVydHksIFVwZGF0ZWRQcm9wZXJ0eT47XG4gIHJlYWRvbmx5IG11c3RSZW5kZXJGb3JCd0NvbXBhdD86IFNjYWxhckRpZmY8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZEV2ZW50IHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IHNvdXJjZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGV0YWlsVHlwZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcmVzb3VyY2VzRmllbGQ/OiBTY2FsYXJEaWZmPEV2ZW50WydyZXNvdXJjZXNGaWVsZCddPjtcbiAgcmVhZG9ubHkgcm9vdFByb3BlcnR5PzogU2NhbGFyRGlmZjxFdmVudFsncm9vdFByb3BlcnR5J10+O1xuICByZWFkb25seSB0eXBlRGVmaW5pdGlvbkRpZmY/OiBNYXBEaWZmPEV2ZW50VHlwZURlZmluaXRpb24sIFVwZGF0ZWRFdmVudFR5cGVEZWZpbml0aW9uPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkRXZlbnRUeXBlRGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBNYXBEaWZmPEV2ZW50UHJvcGVydHksIFVwZGF0ZWRFdmVudFByb3BlcnR5Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkRXZlbnRQcm9wZXJ0eSB7XG4gIHJlYWRvbmx5IG9sZDogRXZlbnRQcm9wZXJ0eTtcbiAgcmVhZG9ubHkgbmV3OiBFdmVudFByb3BlcnR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxhckRpZmY8QT4ge1xuICByZWFkb25seSBvbGQ/OiBBO1xuICByZWFkb25seSBuZXc/OiBBO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgUmVmZXJlbmNlLCBSZWxhdGlvbnNoaXAgfSBmcm9tICdAY2RrbGFicy90c2tiJztcbmltcG9ydCB7IEdlbmVyaWNQcm9wZXJ0eVR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgU2VydmljZSB9IGZyb20gJy4vcmVzb3VyY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIEV2ZW50QnJpZGdlIHNjaGVtYVxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNAT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRXZlbnRCcmlkZ2Ugc2NoZW1hIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSB2YWx1ZSBmb3IgdGhpcyBldmVudFxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRldGFpbFR5cGUgdmFsdWUgZm9yIHRoaXMgZXZlbnRcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0IENyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbFR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEVhY2ggaXRlbSBpcyBhIGBSZXNvdXJjZUZpZWxkYCBkZXNjcmliaW5nIHdoaWNoIHByb3BlcnR5IChmaWVsZE5hbWUpXG4gICAqIGluIHRoZSBldmVudCBwYXlsb2FkIGNvbnRhaW5zIGEgcmVzb3VyY2UgaWRlbnRpZmllciBhbmQgdGhlIGFzc29jaWF0ZWRcbiAgICogdHlwZWQgZGVmaW5pdGlvbiBmb3IgdGhhdCByZXNvdXJjZSAodGhlIGB0eXBlYCByZWZlcmVuY2UpLlxuICAgKlxuICAgKiBAZXhhbXBsZSBPYmplY3QgQ3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzRmllbGQ6IEFycmF5PFJlc291cmNlRmllbGQ+O1xuICAvKipcbiAgICogcm9vdFByb3BlcnR5IGhhcyB0aGUgcmVmZXJlbmNlIGZvciB0aGUgcm9vdCBwcm9wZXJ0eSBmb3IgdGhpcyBldmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdFByb3BlcnR5OiBSZWZlcmVuY2U8RXZlbnRUeXBlRGVmaW5pdGlvbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VGaWVsZCB7XG4gIHR5cGU6IFJlZmVyZW5jZTxFdmVudFR5cGVEZWZpbml0aW9uPjtcbiAgZmllbGROYW1lPzogc3RyaW5nO1xuICByZXNvdXJjZTogUmVmZXJlbmNlPFJlc291cmNlPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNFdmVudCA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBzZXJ2aWNlSGFzRXZlbnQgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBFdmVudFByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBFdmVudFByb3BlcnR5PjtcbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqL1xuICB0eXBlOiBHZW5lcmljUHJvcGVydHlUeXBlPEV2ZW50VHlwZURlZmluaXRpb24+O1xuICAvKipcbiAgICogSXMgdGhpcyBwcm9wZXJ0eSByZXF1aXJlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHR5cGVcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBFdmVudFByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50VXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8RXZlbnQsIEV2ZW50VHlwZURlZmluaXRpb24+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFNlcnZpY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBIE1ldHJpYyBEaW1lbnNpb24gKG5vdCBhbiBlbnRpdHkpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGRpbWVuc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQSBwb3RlbnRpYWwgdmFsdWUgZm9yIHRoaXMgZGltZW5zaW9uXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNldCBvZiBNZXRyaWMgRGltZW5zaW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uU2V0IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIEEgdW5pcXVlIHZhbHVlIHVzZWQgdG8gZGVkdXBsaWNhdGUgdGhlIGVudGl0eVxuICAgKi9cbiAgZGVkdXBLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoaXMgZGltZW5zaW9uIHNldFxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRpbWVuc2lvbnMgaW4gdGhpcyBzZXRcbiAgICovXG4gIGRpbWVuc2lvbnM6IERpbWVuc2lvbltdO1xufVxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIERpbWVuc2lvblNldD47XG5leHBvcnQgdHlwZSBTZXJ2aWNlSGFzRGltZW5zaW9uU2V0ID0gUmVsYXRpb25zaGlwPFNlcnZpY2UsIERpbWVuc2lvblNldD47XG5cbi8qKlxuICogQSBDbG91ZFdhdGNoIE1ldHJpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpYyBleHRlbmRzIEVudGl0eSB7XG4gIC8qKlxuICAgKiBNZXRyaWMgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIG1ldHJpY1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCAoc3VnZ2VzdGVkKSBzdGF0aXN0aWMgZm9yIHRoaXMgbWV0cmljXG4gICAqL1xuICByZWFkb25seSBzdGF0aXN0aWM6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIG9yZGVyZWQgbGlzdCBvZiB0aGUgb2YgdGhlIGRlZmF1bHQgc3RhdGlzdGljcyBmb3IgdGhpcyBtZXRyaWNcbiAgICovXG4gIHJlYWRvbmx5IHByZXZpb3VzU3RhdGlzdGljczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSB2YWx1ZSB1c2VkIHRvIGRlZHVwbGljYXRlIHRoZSBlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5IGRlZHVwS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgbWV0cmljXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIFVzZXNEaW1lbnNpb25TZXQgPSBSZWxhdGlvbnNoaXA8TWV0cmljLCBEaW1lbnNpb25TZXQ+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNNZXRyaWMgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIE1ldHJpYz47XG5leHBvcnQgdHlwZSBTZXJ2aWNlSGFzTWV0cmljID0gUmVsYXRpb25zaGlwPFNlcnZpY2UsIE1ldHJpYz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichPropertyType = exports.PropertyScrutinyType = exports.ResourceScrutinyType = exports.Deprecation = exports.RichAttribute = exports.RichProperty = exports.RichTypedField = void 0;\nexports.isCollectionType = isCollectionType;\nconst sorting_1 = require(\"../util/sorting\");\nclass RichTypedField {\n constructor(field) {\n this.field = field;\n if (field === undefined) {\n throw new Error('Field is undefined');\n }\n }\n types() {\n return [...(this.field.previousTypes ?? []), this.field.type];\n }\n /**\n * Update the type of this property with a new type\n *\n * Only if it's not in the set of types already.\n *\n * Returns true if the type was updated.\n */\n updateType(type) {\n const richType = new RichPropertyType(type);\n // Only add this type if we don't already have it. We are only doing comparisons where 'integer' and 'number'\n // are treated the same, for all other types we need strict equality. We used to use 'assignableTo' as a\n // condition, but these types will be rendered in both co- and contravariant positions, and so we really can't\n // do much better than full equality.\n if (this.types().some((t) => richType.equals(t))) {\n // Nothing to do, type is already in there.\n // But if the new type has allowedValues, merge them into the current type.\n if ((type.type === 'string' || type.type === 'integer') && type.allowedValues) {\n if (this.field.type.type === type.type) {\n this.field.type.allowedValues = type.allowedValues;\n }\n }\n return false;\n }\n // Special case: if the new type is `string` and the old type is `date-time`, we assume this is\n // the same type but we dropped some formatting information. No need to make this a separate type.\n if (type.type === 'string' && this.types().some((t) => t.type === 'date-time')) {\n return false;\n }\n // Special case: if the new type is `string` and the old type is `json`, we assume this is a correction\n // of a bug; the old type was incorrectly typed as Json, and we're now correcting this. Since this was a\n // bug, we don't need to keep the old type: it was never accurate.\n //\n // We could be more broad, and only maintain type history if we go from\n // `json` -> `named type`, or `named type` -> `named type`. For now I'm\n // wary of destroying too much information; we'll just do the fix specifically\n // for `json` -> `string`.\n if (type.type === 'string' && this.field.type.type === 'json') {\n this.field.type = type;\n return true;\n }\n if (!this.field.previousTypes) {\n this.field.previousTypes = [];\n }\n this.field.previousTypes.push(this.field.type);\n this.field.type = type;\n return true;\n }\n}\nexports.RichTypedField = RichTypedField;\nclass RichProperty extends RichTypedField {\n constructor(property) {\n super(property);\n }\n}\nexports.RichProperty = RichProperty;\nclass RichAttribute extends RichTypedField {\n constructor(attr) {\n super(attr);\n }\n}\nexports.RichAttribute = RichAttribute;\nvar Deprecation;\n(function (Deprecation) {\n /**\n * Not deprecated\n */\n Deprecation[\"NONE\"] = \"NONE\";\n /**\n * Warn about use\n */\n Deprecation[\"WARN\"] = \"WARN\";\n /**\n * Do not emit the value at all\n *\n * (Handle properties that were incorrectly added to the spec)\n */\n Deprecation[\"IGNORE\"] = \"IGNORE\";\n})(Deprecation || (exports.Deprecation = Deprecation = {}));\nfunction isCollectionType(x) {\n return x.type === 'array' || x.type === 'map';\n}\n/**\n * Mark a resource as a resource that needs additional scrutiy when added, removed or changed\n *\n * Used to mark resources that represent security policies.\n */\nvar ResourceScrutinyType;\n(function (ResourceScrutinyType) {\n /**\n * No additional scrutiny\n */\n ResourceScrutinyType[\"None\"] = \"None\";\n /**\n * An externally attached policy document to a resource\n *\n * (Common for SQS, SNS, S3, ...)\n */\n ResourceScrutinyType[\"ResourcePolicyResource\"] = \"ResourcePolicyResource\";\n /**\n * This is an IAM policy on an identity resource\n *\n * (Basically saying: this is AWS::IAM::Policy)\n */\n ResourceScrutinyType[\"IdentityPolicyResource\"] = \"IdentityPolicyResource\";\n /**\n * This is a Lambda Permission policy\n */\n ResourceScrutinyType[\"LambdaPermission\"] = \"LambdaPermission\";\n /**\n * An ingress rule object\n */\n ResourceScrutinyType[\"IngressRuleResource\"] = \"IngressRuleResource\";\n /**\n * A set of egress rules\n */\n ResourceScrutinyType[\"EgressRuleResource\"] = \"EgressRuleResource\";\n /**\n * AWS::SSO::Assignment\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoAssignmentResource\"] = \"SsoAssignmentResource\";\n /**\n * AWS::SSO::InstanceAccessControlAttributeConfiguration\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoInstanceACAConfigResource\"] = \"SsoInstanceACAConfigResource\";\n /**\n * AWS::SSO::PermissionSet\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoPermissionSet\"] = \"SsoPermissionSet\";\n})(ResourceScrutinyType || (exports.ResourceScrutinyType = ResourceScrutinyType = {}));\n/**\n * Mark a property as a property that needs additional scrutiny when it changes\n *\n * Used to mark sensitive properties that have security-related implications.\n */\nvar PropertyScrutinyType;\n(function (PropertyScrutinyType) {\n /**\n * No additional scrutiny\n */\n PropertyScrutinyType[\"None\"] = \"None\";\n /**\n * This is an IAM policy directly on a resource\n */\n PropertyScrutinyType[\"InlineResourcePolicy\"] = \"InlineResourcePolicy\";\n /**\n * Either an AssumeRolePolicyDocument or a dictionary of policy documents\n */\n PropertyScrutinyType[\"InlineIdentityPolicies\"] = \"InlineIdentityPolicies\";\n /**\n * A list of managed policies (on an identity resource)\n */\n PropertyScrutinyType[\"ManagedPolicies\"] = \"ManagedPolicies\";\n /**\n * A set of ingress rules (on a security group)\n */\n PropertyScrutinyType[\"IngressRules\"] = \"IngressRules\";\n /**\n * A set of egress rules (on a security group)\n */\n PropertyScrutinyType[\"EgressRules\"] = \"EgressRules\";\n})(PropertyScrutinyType || (exports.PropertyScrutinyType = PropertyScrutinyType = {}));\nclass RichPropertyType {\n constructor(type) {\n this.type = type;\n }\n equals(rhs) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return rhs.type === this.type.type;\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).equals(rhs.element);\n case 'ref':\n return rhs.type === 'ref' && this.type.reference.$ref === rhs.reference.$ref;\n case 'union':\n const lhsKey = this.sortKey();\n const rhsKey = new RichPropertyType(rhs).sortKey();\n return lhsKey.length === rhsKey.length && lhsKey.every((l, i) => l === rhsKey[i]);\n }\n }\n /**\n * Whether the current type is JavaScript-equal to the RHS type\n *\n * Same as normal equality, but consider `integer` and `number` the same types.\n */\n javascriptEquals(rhs) {\n switch (this.type.type) {\n case 'number':\n case 'integer':\n // Widening\n return rhs.type === 'integer' || rhs.type === 'number';\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).javascriptEquals(rhs.element);\n case 'union':\n if (rhs.type !== 'union') {\n return false;\n }\n // Every type in this union needs to be equal one type in RHS\n return this.type.types.every((t1) => rhs.types.some((t2) => new RichPropertyType(t1).javascriptEquals(t2)));\n default:\n // For anything else, need strict equality\n return this.equals(rhs);\n }\n }\n /**\n * Whether the current type is assignable to the RHS type.\n *\n * This is means every type member of the LHS must be present in the RHS type\n */\n assignableTo(rhs) {\n const extractMembers = (type) => (type.type == 'union' ? type.types : [type]);\n const asRichType = (type) => new RichPropertyType(type);\n const rhsMembers = extractMembers(rhs);\n for (const lhsMember of extractMembers(this.type).map(asRichType)) {\n if (!rhsMembers.some((type) => lhsMember.equals(type))) {\n return false;\n }\n }\n return true;\n }\n /**\n * Return a version of this type, but with all type unions in a regularized order\n */\n normalize(db) {\n switch (this.type.type) {\n case 'array':\n case 'map':\n return new RichPropertyType({\n type: this.type.type,\n element: new RichPropertyType(this.type.element).normalize(db).type,\n });\n case 'union':\n const types = this.type.types\n .map((t) => new RichPropertyType(t).normalize(db))\n .map((t) => [t, t.sortKey(db)]);\n types.sort((0, sorting_1.sortKeyComparator)(([_, sortKey]) => sortKey));\n return new RichPropertyType({\n type: 'union',\n types: types.map(([t, _]) => t.type),\n });\n default:\n return this;\n }\n }\n stringify(db, withId = true) {\n switch (this.type.type) {\n case 'string':\n return this.type.allowedValues ? `string<${this.type.allowedValues.join('|')}>` : 'string';\n case 'integer':\n return this.type.allowedValues ? `integer<${this.type.allowedValues.join('|')}>` : 'integer';\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'tag':\n return this.type.type;\n case 'array':\n return `Array<${new RichPropertyType(this.type.element).stringify(db, withId)}>`;\n case 'map':\n return `Map`;\n case 'ref':\n const type = db.get('typeDefinition', this.type.reference);\n return withId ? `${type.name}(${this.type.reference.$ref})` : type.name;\n case 'union':\n return this.type.types.map((t) => new RichPropertyType(t).stringify(db, withId)).join(' | ');\n }\n }\n /**\n * Return a sortable key based on this type\n *\n * If a database is given, type definitions will be sorted based on type name,\n * otherwise on identifier\n */\n sortKey(db) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return ['0', this.type.type];\n case 'array':\n case 'map':\n return ['1', this.type.type, ...new RichPropertyType(this.type.element).sortKey(db)];\n case 'ref':\n return ['2', this.type.type, db?.get('typeDefinition', this.type.reference)?.name ?? this.type.reference.$ref];\n case 'union':\n const typeKeys = this.type.types.map((t) => new RichPropertyType(t).sortKey(db));\n typeKeys.sort((0, sorting_1.sortKeyComparator)((x) => x));\n return ['3', this.type.type, ...typeKeys.flatMap((x) => x)];\n }\n }\n}\nexports.RichPropertyType = RichPropertyType;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK1NBLDRDQUVDO0FBOVNELDZDQUFvRDtBQWtNcEQsTUFBYSxjQUFjO0lBQ3pCLFlBQTZCLEtBQStDO1FBQS9DLFVBQUssR0FBTCxLQUFLLENBQTBDO1FBQzFFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxJQUFrQjtRQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVDLDZHQUE2RztRQUM3Ryx3R0FBd0c7UUFDeEcsOEdBQThHO1FBQzlHLHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pELDJDQUEyQztZQUMzQywyRUFBMkU7WUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JB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QWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSwyQkFBaUIsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXhKRCw0Q0F3SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgQXJyYXlUeXBlLCBNYXBUeXBlLCBHZW5lcmljUHJvcGVydHlUeXBlLCBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFNwZWNEYXRhYmFzZSB9IGZyb20gJy4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgc29ydEtleUNvbXBhcmF0b3IgfSBmcm9tICcuLi91dGlsL3NvcnRpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eSB7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBIYXNSZWdpb24gPSBSZWxhdGlvbnNoaXA8UGFydGl0aW9uLCBSZWdpb24sIHsgaXNQcmltYXJ5PzogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHNlcnZpY2UgaW5jbHVkaW5nIHRoZSBncm91cCBwcmVmaXgsIGxvd2VyY2FzZWQgYW5kIGh5cGhlbmF0ZWQuXG4gICAqXG4gICAqIEUuZy4gYEFXUzo6RHluYW1vREJgIC0+IGBhd3MtZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGF3cy1keW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogT25seSB0aGUgc2VydmljZSBwYXJ0IG9mIHRoZSBuYW1lLCBsb3dlcmNhc2VkLlxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBzaG9ydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzaG9ydG5hbWUgb2YgdGhlIHNlcnZpY2UgaW4gY2FwaXRhbGl6ZWQgZm9ybVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgRHluYW1vREJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBjYXBpdGFsaXplZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbXBsZXRlIGNsb3VkZm9ybWF0aW9uIHN0eWxlIG5hbWVzcGFjZSBvZiB0aGUgc2VydmljZVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYFxuICAgKlxuICAgKiBAZXhhbXBsZSBkeW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25OYW1lc3BhY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50YXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlIGV4dGVuZHMgRW50aXR5IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHNldCwgdGhpcyBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm0gaXMgcmVxdWlyZWQgYnkgdGhlIHJlc291cmNlXG4gICAqL1xuICBjbG91ZEZvcm1hdGlvblRyYW5zZm9ybT86IHN0cmluZztcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW1hcnkgaWRlbnRpZmllciwgb3IgaWRlbnRpZmllcnMsIGluIENsb3VkIENvbnRyb2wgQVBJXG4gICAqXG4gICAqIFVuaXF1ZWx5IGlkZW50aWZpZXMgYSByZXNvdXJjZSBpbiBhbiBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHJlYWQgZnJvbSB0aGUgc2NoZW1hLCB3aGljaCBhbHdheXMgcGVydGFpbnMgdG8gdGhlIENDQVBJIGlkZW50aWZpZXIuXG4gICAqIFR5cGljYWxseSB0aGUgc2FtZSBhcyB0aGUgQ2xvdWRGb3JtYXRpb24gaWRlbnRpZmllciwgYnV0IG5vdCBuZWNlc3NhcmlseS5cbiAgICovXG4gIHByaW1hcnlJZGVudGlmaWVyPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcmltYXJ5IGlkZW50aWZpZXIsIG9yIGlkZW50aWZpZXJzLCBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBXaGF0ZXZlciBnZXRzIHJldHVybmVkIHdoZW4geW91IGNhbGwgYHsgUmVmIH1gIGEgcmVzb3VyY2UuIFR5cGljYWxseSB0aGVcbiAgICogdmFsdWUgdGhhdCBvdGhlciByZXNvdXJjZXMgaW4gdGhlIHNhbWUgc2VydmljZSBleHBlY3QgdG8gc2VlIGFzIHRoZSB3YXkgdG9cbiAgICogcmVmZXJlbmNlIHRoaXMgcmVzb3VyY2UgKG5hbWUgb3IgQVJOIG9yIElkKS5cbiAgICpcbiAgICogSWYgbWlzc2luZywgdGhlIGBjZm5SZWZJZGVudGlmaWVyYCBpcyB0aGUgc2FtZSBhcyB0aGUgKENDLUFQSSkgYHByaW1hcnlJZGVudGlmaWVyYC5cbiAgICovXG4gIGNmblJlZklkZW50aWZpZXI/OiBzdHJpbmdbXTtcblxuICByZWFkb25seSBwcm9wZXJ0aWVzOiBSZXNvdXJjZVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIEF0dHJpYnV0ZT47XG4gIHJlYWRvbmx5IHZhbGlkYXRpb25zPzogdW5rbm93bjtcbiAgYXJuVGVtcGxhdGU/OiBzdHJpbmc7XG4gIGlzU3RhdGVmdWw/OiBib29sZWFuO1xuICB2ZW5kZWRMb2dzPzogVmVuZGVkTG9nc1tdO1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFnZ2FiaWxpdHkgb2YgdGhpcyByZXNvdXJjZVxuICAgKlxuICAgKiBVbmRlZmluZWQgaWYgdGhlIHJlc291cmNlIGlzIG5vdCB0YWdnYWJsZS5cbiAgICovXG4gIHRhZ0luZm9ybWF0aW9uPzogVGFnSW5mb3JtYXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2hhbmdlcyB0byB0aGlzIHJlc291cmNlIG5lZWQgdG8gYmUgc2NydXRpbml6ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgUmVzb3VyY2VTY3J1dGlueVR5cGUuTk9ORVxuICAgKi9cbiAgc2NydXRpbml6YWJsZT86IFJlc291cmNlU2NydXRpbnlUeXBlO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhdGhzIHRvIHByb3BlcnRpZXMgdGhhdCBhbHNvIGNhdXNlIHJlcGxhY2VtZW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGluZGljYXRlIHRoYXQgY2VydGFpbiBwcm9wZXJ0eSBwYXRocyBpbnRvIHRoaXMgcmVzb3VyY2VcbiAgICogd2lsbCBjYXVzZSByZXBsYWNlbWVudDsgb25seSByZXBsYWNlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWRcbiAgICogYnkgdGFnZ2luZyB0aGUgcHJvcGVydHkgaW4gYSB0eXBlIGRlZmluaXRpb24gd2lsbCBiZSBpbmNsdWRlZCBoZXJlXG4gICAqIChmb3IgZXhhbXBsZSwgYmVjYXVzZSB0aGUgdGFnZ2VkIHByb3BlcnR5IHdvdWxkIGJlIGluIGEgcHJlZGVmaW5lZFxuICAgKiB0eXBlIGxpa2UgYHRhZ2ApLlxuICAgKlxuICAgKiBBbGwgcHJvcGVydGllcyBpbiB0aGlzIGxpc3Qgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYGNhdXNlc1JlcGxhY2VtZW50OiAneWVzJ2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIGFkZGl0aW9uYWxSZXBsYWNlbWVudFByb3BlcnRpZXM/OiBzdHJpbmdbXVtdO1xufVxuXG5leHBvcnQgdHlwZSBSZXNvdXJjZVByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFJlc291cmNlUHJvcGVydGllcztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgcmVuZGVyIHRoaXMgdHlwZSBldmVuIGlmIGl0IGlzIHVudXNlZC5cbiAgICovXG4gIG11c3RSZW5kZXJGb3JCd0NvbXBhdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHkge1xuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2YgdGhlIHByb3BlcnR5XG4gICAqL1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJcyB0aGlzIHByb3BlcnR5IHJlcXVpcmVkXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHR5cGUgb2YgdGhpcyBwcm9wZXJ0eVxuICAgKi9cbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuXG4gIC8qKlxuICAgKiBBbiBvcmRlcmVkIGxpc3Qgb2YgcHJldmlvdXMgdHlwZXMgb2YgdGhpcyBwcm9wZXJ0eSBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICpcbiAgICogRG9lcyBub3QgaW5jbHVkZSB0aGUgY3VycmVudCB0eXBlLCB1c2UgYHR5cGVgIGZvciB0aGlzLlxuICAgKi9cbiAgcHJldmlvdXNUeXBlcz86IFByb3BlcnR5VHlwZVtdO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRhdGlvbiB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqXG4gICAqIFRoaXMgdmFsdWUgaXMgbm90IGRpcmVjdGx5IGZ1bmN0aW9uYWw7IGl0IGRlc2NyaWJlcyBob3cgdGhlIHVuZGVybHlpbmcgcmVzb3VyY2VcbiAgICogd2lsbCBiZWhhdmUgaWYgdGhlIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCB1bmtub3duXG4gICAqL1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIGRlcHJlY2F0ZWQ/OiBEZXByZWNhdGlvbjtcblxuICAvKipcbiAgICogV2hldGhlciBjaGFuZ2VzIHRvIHRoaXMgcHJvcGVydHkgbmVlZHMgdG8gYmUgc2NydXRpbml6ZWQgc3BlY2lhbGx5XG4gICAqXG4gICAqIEBkZWZhdWx0IFByb3BlcnR5U2NydXRpbnlUeXBlLk5PTkVcbiAgICovXG4gIHNjcnV0aW5pemFibGU/OiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29udGFpbmluZyByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkIGlmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAnbm8nXG4gICAqL1xuICBjYXVzZXNSZXBsYWNlbWVudD86ICd5ZXMnIHwgJ25vJyB8ICdtYXliZSc7XG5cbiAgLyoqXG4gICAqIFJlbGF0aW9uc2hpcCByZWZlcmVuY2VzIHRvIG90aGVyIENsb3VkRm9ybWF0aW9uIHJlc291cmNlc1xuICAgKi9cbiAgcmVsYXRpb25zaGlwUmVmcz86IFJlbGF0aW9uc2hpcFJlZltdO1xufVxuXG5leHBvcnQgY2xhc3MgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBQaWNrPFByb3BlcnR5LCAndHlwZScgfCAncHJldmlvdXNUeXBlcyc+KSB7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmllbGQgaXMgdW5kZWZpbmVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHR5cGVzKCk6IFByb3BlcnR5VHlwZVtdIHtcbiAgICByZXR1cm4gWy4uLih0aGlzLmZpZWxkLnByZXZpb3VzVHlwZXMgPz8gW10pLCB0aGlzLmZpZWxkLnR5cGVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5IHdpdGggYSBuZXcgdHlwZVxuICAgKlxuICAgKiBPbmx5IGlmIGl0J3Mgbm90IGluIHRoZSBzZXQgb2YgdHlwZXMgYWxyZWFkeS5cbiAgICpcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB0eXBlIHdhcyB1cGRhdGVkLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVR5cGUodHlwZTogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmljaFR5cGUgPSBuZXcgUmljaFByb3BlcnR5VHlwZSh0eXBlKTtcblxuICAgIC8vIE9ubHkgYWRkIHRoaXMgdHlwZSBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgaXQuIFdlIGFyZSBvbmx5IGRvaW5nIGNvbXBhcmlzb25zIHdoZXJlICdpbnRlZ2VyJyBhbmQgJ251bWJlcidcbiAgICAvLyBhcmUgdHJlYXRlZCB0aGUgc2FtZSwgZm9yIGFsbCBvdGhlciB0eXBlcyB3ZSBuZWVkIHN0cmljdCBlcXVhbGl0eS4gV2UgdXNlZCB0byB1c2UgJ2Fzc2lnbmFibGVUbycgYXMgYVxuICAgIC8vIGNvbmRpdGlvbiwgYnV0IHRoZXNlIHR5cGVzIHdpbGwgYmUgcmVuZGVyZWQgaW4gYm90aCBjby0gYW5kIGNvbnRyYXZhcmlhbnQgcG9zaXRpb25zLCBhbmQgc28gd2UgcmVhbGx5IGNhbid0XG4gICAgLy8gZG8gbXVjaCBiZXR0ZXIgdGhhbiBmdWxsIGVxdWFsaXR5LlxuICAgIGlmICh0aGlzLnR5cGVzKCkuc29tZSgodCkgPT4gcmljaFR5cGUuZXF1YWxzKHQpKSkge1xuICAgICAgLy8gTm90aGluZyB0byBkbywgdHlwZSBpcyBhbHJlYWR5IGluIHRoZXJlLlxuICAgICAgLy8gQnV0IGlmIHRoZSBuZXcgdHlwZSBoYXMgYWxsb3dlZFZhbHVlcywgbWVyZ2UgdGhlbSBpbnRvIHRoZSBjdXJyZW50IHR5cGUuXG4gICAgICBpZiAoKHR5cGUudHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZS50eXBlID09PSAnaW50ZWdlcicpICYmIHR5cGUuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICBpZiAodGhpcy5maWVsZC50eXBlLnR5cGUgPT09IHR5cGUudHlwZSkge1xuICAgICAgICAgICh0aGlzLmZpZWxkLnR5cGUgYXMgYW55KS5hbGxvd2VkVmFsdWVzID0gdHlwZS5hbGxvd2VkVmFsdWVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBjYXNlOiBpZiB0aGUgbmV3IHR5cGUgaXMgYHN0cmluZ2AgYW5kIHRoZSBvbGQgdHlwZSBpcyBgZGF0ZS10aW1lYCwgd2UgYXNzdW1lIHRoaXMgaXNcbiAgICAvLyB0aGUgc2FtZSB0eXBlIGJ1dCB3ZSBkcm9wcGVkIHNvbWUgZm9ybWF0dGluZyBpbmZvcm1hdGlvbi4gTm8gbmVlZCB0byBtYWtlIHRoaXMgYSBzZXBhcmF0ZSB0eXBlLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMudHlwZXMoKS5zb21lKCh0KSA9PiB0LnR5cGUgPT09ICdkYXRlLXRpbWUnKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgY2FzZTogaWYgdGhlIG5ldyB0eXBlIGlzIGBzdHJpbmdgIGFuZCB0aGUgb2xkIHR5cGUgaXMgYGpzb25gLCB3ZSBhc3N1bWUgdGhpcyBpcyBhIGNvcnJlY3Rpb25cbiAgICAvLyBvZiBhIGJ1ZzsgdGhlIG9sZCB0eXBlIHdhcyBpbmNvcnJlY3RseSB0eXBlZCBhcyBKc29uLCBhbmQgd2UncmUgbm93IGNvcnJlY3RpbmcgdGhpcy4gU2luY2UgdGhpcyB3YXMgYVxuICAgIC8vIGJ1Zywgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIHRoZSBvbGQgdHlwZTogaXQgd2FzIG5ldmVyIGFjY3VyYXRlLlxuICAgIC8vXG4gICAgLy8gV2UgY291bGQgYmUgbW9yZSBicm9hZCwgYW5kIG9ubHkgbWFpbnRhaW4gdHlwZSBoaXN0b3J5IGlmIHdlIGdvIGZyb21cbiAgICAvLyBganNvbmAgLT4gYG5hbWVkIHR5cGVgLCBvciBgbmFtZWQgdHlwZWAgLT4gYG5hbWVkIHR5cGVgLiAgRm9yIG5vdyBJJ21cbiAgICAvLyB3YXJ5IG9mIGRlc3Ryb3lpbmcgdG9vIG11Y2ggaW5mb3JtYXRpb247IHdlJ2xsIGp1c3QgZG8gdGhlIGZpeCBzcGVjaWZpY2FsbHlcbiAgICAvLyBmb3IgYGpzb25gIC0+IGBzdHJpbmdgLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMuZmllbGQudHlwZS50eXBlID09PSAnanNvbicpIHtcbiAgICAgIHRoaXMuZmllbGQudHlwZSA9IHR5cGU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZmllbGQucHJldmlvdXNUeXBlcykge1xuICAgICAgdGhpcy5maWVsZC5wcmV2aW91c1R5cGVzID0gW107XG4gICAgfVxuICAgIHRoaXMuZmllbGQucHJldmlvdXNUeXBlcy5wdXNoKHRoaXMuZmllbGQudHlwZSk7XG4gICAgdGhpcy5maWVsZC50eXBlID0gdHlwZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmljaFByb3BlcnR5IGV4dGVuZHMgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogUHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJpY2hBdHRyaWJ1dGUgZXh0ZW5kcyBSaWNoVHlwZWRGaWVsZCB7XG4gIGNvbnN0cnVjdG9yKGF0dHI6IEF0dHJpYnV0ZSkge1xuICAgIHN1cGVyKGF0dHIpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuICAvKipcbiAgICogQW4gb3JkZXJlZCBsaXN0IG9mIHByZXZpb3VzIHR5cGVzIG9mIHRoaXMgcHJvcGVydHkgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAqXG4gICAqIERvZXMgbm90IGluY2x1ZGUgdGhlIGN1cnJlbnQgdHlwZSwgdXNlIGB0eXBlYCBmb3IgdGhpcy5cbiAgICovXG4gIHByZXZpb3VzVHlwZXM/OiBQcm9wZXJ0eVR5cGVbXTtcbn1cblxuZXhwb3J0IGVudW0gRGVwcmVjYXRpb24ge1xuICAvKipcbiAgICogTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIE5PTkUgPSAnTk9ORScsXG5cbiAgLyoqXG4gICAqIFdhcm4gYWJvdXQgdXNlXG4gICAqL1xuICBXQVJOID0gJ1dBUk4nLFxuXG4gIC8qKlxuICAgKiBEbyBub3QgZW1pdCB0aGUgdmFsdWUgYXQgYWxsXG4gICAqXG4gICAqIChIYW5kbGUgcHJvcGVydGllcyB0aGF0IHdlcmUgaW5jb3JyZWN0bHkgYWRkZWQgdG8gdGhlIHNwZWMpXG4gICAqL1xuICBJR05PUkUgPSAnSUdOT1JFJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29sbGVjdGlvblR5cGUoeDogUHJvcGVydHlUeXBlKTogeCBpcyBBcnJheVR5cGU8YW55PiB8IE1hcFR5cGU8YW55PiB7XG4gIHJldHVybiB4LnR5cGUgPT09ICdhcnJheScgfHwgeC50eXBlID09PSAnbWFwJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdJbmZvcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0aGF0IGhvbGRzIHRoZSB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdQcm9wZXJ0eU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBpbnN0cnVjdCBjZGsuVGFnTWFuYWdlciBob3cgdG8gaGFuZGxlIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhbnQ6IFRhZ1ZhcmlhbnQ7XG59XG5cbmV4cG9ydCB0eXBlIFRhZ1ZhcmlhbnQgPSAnc3RhbmRhcmQnIHwgJ2FzZycgfCAnbWFwJztcblxuZXhwb3J0IHR5cGUgSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgUmVzb3VyY2U+O1xuZXhwb3J0IHR5cGUgUmVnaW9uSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8UmVnaW9uLCBSZXNvdXJjZT47XG5leHBvcnQgdHlwZSBSZWdpb25IYXNTZXJ2aWNlID0gUmVsYXRpb25zaGlwPFJlZ2lvbiwgU2VydmljZT47XG5leHBvcnQgdHlwZSBSZXNvdXJjZURvYyA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRG9jdW1lbnRhdGlvbj47XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFNlcnZpY2U+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFJlc291cmNlPjtcblxuZXhwb3J0IHR5cGUgVXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIFR5cGVEZWZpbml0aW9uPjtcblxuLyoqXG4gKiBNYXJrIGEgcmVzb3VyY2UgYXMgYSByZXNvdXJjZSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpeSB3aGVuIGFkZGVkLCByZW1vdmVkIG9yIGNoYW5nZWRcbiAqXG4gKiBVc2VkIHRvIG1hcmsgcmVzb3VyY2VzIHRoYXQgcmVwcmVzZW50IHNlY3VyaXR5IHBvbGljaWVzLlxuICovXG5leHBvcnQgZW51bSBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIC8qKlxuICAgKiBObyBhZGRpdGlvbmFsIHNjcnV0aW55XG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbGx5IGF0dGFjaGVkIHBvbGljeSBkb2N1bWVudCB0byBhIHJlc291cmNlXG4gICAqXG4gICAqIChDb21tb24gZm9yIFNRUywgU05TLCBTMywgLi4uKVxuICAgKi9cbiAgUmVzb3VyY2VQb2xpY3lSZXNvdXJjZSA9ICdSZXNvdXJjZVBvbGljeVJlc291cmNlJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IG9uIGFuIGlkZW50aXR5IHJlc291cmNlXG4gICAqXG4gICAqIChCYXNpY2FsbHkgc2F5aW5nOiB0aGlzIGlzIEFXUzo6SUFNOjpQb2xpY3kpXG4gICAqL1xuICBJZGVudGl0eVBvbGljeVJlc291cmNlID0gJ0lkZW50aXR5UG9saWN5UmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgTGFtYmRhIFBlcm1pc3Npb24gcG9saWN5XG4gICAqL1xuICBMYW1iZGFQZXJtaXNzaW9uID0gJ0xhbWJkYVBlcm1pc3Npb24nLFxuXG4gIC8qKlxuICAgKiBBbiBpbmdyZXNzIHJ1bGUgb2JqZWN0XG4gICAqL1xuICBJbmdyZXNzUnVsZVJlc291cmNlID0gJ0luZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlZ3Jlc3MgcnVsZXNcbiAgICovXG4gIEVncmVzc1J1bGVSZXNvdXJjZSA9ICdFZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBV1M6OlNTTzo6QXNzaWdubWVudFxuICAgKlxuICAgKiBJQU0gSWRlbnRpdHkgQ2VudGVyIChmb3JtZXJseSBrbm93biBhcyBTU08pXG4gICAqL1xuICBTc29Bc3NpZ25tZW50UmVzb3VyY2UgPSAnU3NvQXNzaWdubWVudFJlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086Okluc3RhbmNlQWNjZXNzQ29udHJvbEF0dHJpYnV0ZUNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvSW5zdGFuY2VBQ0FDb25maWdSZXNvdXJjZSA9ICdTc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086OlBlcm1pc3Npb25TZXRcbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvUGVybWlzc2lvblNldCA9ICdTc29QZXJtaXNzaW9uU2V0Jyxcbn1cblxuLyoqXG4gKiBNYXJrIGEgcHJvcGVydHkgYXMgYSBwcm9wZXJ0eSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpbnkgd2hlbiBpdCBjaGFuZ2VzXG4gKlxuICogVXNlZCB0byBtYXJrIHNlbnNpdGl2ZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGltcGxpY2F0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gUHJvcGVydHlTY3J1dGlueVR5cGUge1xuICAvKipcbiAgICogTm8gYWRkaXRpb25hbCBzY3J1dGlueVxuICAgKi9cbiAgTm9uZSA9ICdOb25lJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IGRpcmVjdGx5IG9uIGEgcmVzb3VyY2VcbiAgICovXG4gIElubGluZVJlc291cmNlUG9saWN5ID0gJ0lubGluZVJlc291cmNlUG9saWN5JyxcblxuICAvKipcbiAgICogRWl0aGVyIGFuIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudCBvciBhIGRpY3Rpb25hcnkgb2YgcG9saWN5IGRvY3VtZW50c1xuICAgKi9cbiAgSW5saW5lSWRlbnRpdHlQb2xpY2llcyA9ICdJbmxpbmVJZGVudGl0eVBvbGljaWVzJyxcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG1hbmFnZWQgcG9saWNpZXMgKG9uIGFuIGlkZW50aXR5IHJlc291cmNlKVxuICAgKi9cbiAgTWFuYWdlZFBvbGljaWVzID0gJ01hbmFnZWRQb2xpY2llcycsXG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGluZ3Jlc3MgcnVsZXMgKG9uIGEgc2VjdXJpdHkgZ3JvdXApXG4gICAqL1xuICBJbmdyZXNzUnVsZXMgPSAnSW5ncmVzc1J1bGVzJyxcblxuICAvKipcbiAgICogQSBzZXQgb2YgZWdyZXNzIHJ1bGVzIChvbiBhIHNlY3VyaXR5IGdyb3VwKVxuICAgKi9cbiAgRWdyZXNzUnVsZXMgPSAnRWdyZXNzUnVsZXMnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSByZWxhdGlvbnNoaXAgcmVmZXJlbmNlIHRvIGFub3RoZXIgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbnNoaXBSZWYge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgdGhpcyBwcm9wZXJ0eSByZWZlcmVuY2VzXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IG5hbWUgd2l0aGluIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIChlLmcuLCBcIklkXCIpXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGVsaXZlcnkgZGVzdGluYXRpb24gdGhhdCBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBzZW5kIGxvZ3MgdG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxpdmVyeURlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHNlcnZpY2UgdGhhdCBpcyBpbmdlc3RpbmcgdGhlIGxvZ3MsIGNhbiBiZSBTMyB8IEZIIHwgQ1dMIHwgWFJBWVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25UeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBmb3JtYXQgb2YgbG9ncyBzZW50IHRvIHRoaXMgZGVsaXZlcnkgZGVzdGluYXRpb24sIGNhbiBiZSBqc29uIHwgcGFycXVldCB8IHczYyB8IHBsYWluIHwgcmF3IHwgdW5kZWZpbmVkXG4gICAqIFdoYXQgZm9ybWF0cyBhcmUgYXZhbGlibGUgdmFyeSBiYXNlZCBvbiBkZXN0aW5hdGlvblR5cGVcbiAgICogUzMgZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBqc29uLCBwbGFpbiwgdzNjLCBvciBwYXJxdWV0XG4gICAqIENsb3Vkd2F0Y2ggZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBwbGFpbiBvciBqc29uXG4gICAqIEZpcmVob3NlIGRlc3RpbmF0aW9uIHR5cGVzIGNhbiBhY2NlcHQganNvbiwgcmF3LCBvciBwYXJxdWV0XG4gICAqIFhSYXkgZGVzdGluYXRpb24gdHlwZXMgZG8gbm90IHVzZSBvdXRwdXQgZm9ybWF0c1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0Rm9ybWF0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0eXBlIG9mIGxvZyB0aGF0IGEgQ2xvdWRmb3JtYXRpb24gUmVzb3VyY2UgY2FuIHByb2R1Y2UgYW5kIHdoYXQgZGVzdGluYXRpb25zIGNhbiBjb25zdW1lIHRoZW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZW5kZWRMb2dzIHtcbiAgLyoqXG4gICAqIFdoYXQgdmVyc2lvbiBvZiBwZXJtaXNzaW9ucyB0aGUgZGVzdGluYXRpb24gc3VwcG9ydHMgVjEgfCBWMlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnNWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUeXBlIG9mIGxvZyBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBwcm9kdWNlXG4gICAqL1xuICByZWFkb25seSBsb2dUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHRoZSBkZXN0aW5hdGlvbnMgdGhlIGNhbiBjb25zdW1lIHRob3NlIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uczogRGVsaXZlcnlEZXN0aW5hdGlvbltdO1xuICAvKipcbiAgICogUmVjb3JkIGZpZWxkcyB0aGF0IGFyZSBtYW5kYXRvcnkgdG8gYmUgZGVsaXZlcmVkXG4gICAqL1xuICBtYW5kYXRvcnlGaWVsZHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFJlY29yZCBmaWVsZHMgdGhhdCBjYW4gYmUgb3B0aW9uYWxseSBkZWxpdmVyZWRcbiAgICovXG4gIG9wdGlvbmFsRmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBSaWNoUHJvcGVydHlUeXBlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0eXBlOiBQcm9wZXJ0eVR5cGUpIHt9XG5cbiAgcHVibGljIGVxdWFscyhyaHM6IFByb3BlcnR5VHlwZSk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgY2FzZSAnanNvbic6XG4gICAgICBjYXNlICdudWxsJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHJocy50eXBlID09PSB0aGlzLnR5cGUudHlwZTtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmVxdWFscyhyaHMuZWxlbWVudCk7XG4gICAgICBjYXNlICdyZWYnOlxuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdyZWYnICYmIHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZiA9PT0gcmhzLnJlZmVyZW5jZS4kcmVmO1xuICAgICAgY2FzZSAndW5pb24nOlxuICAgICAgICBjb25zdCBsaHNLZXkgPSB0aGlzLnNvcnRLZXkoKTtcbiAgICAgICAgY29uc3QgcmhzS2V5ID0gbmV3IFJpY2hQcm9wZXJ0eVR5cGUocmhzKS5zb3J0S2V5KCk7XG4gICAgICAgIHJldHVybiBsaHNLZXkubGVuZ3RoID09PSByaHNLZXkubGVuZ3RoICYmIGxoc0tleS5ldmVyeSgobCwgaSkgPT4gbCA9PT0gcmhzS2V5W2ldKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY3VycmVudCB0eXBlIGlzIEphdmFTY3JpcHQtZXF1YWwgdG8gdGhlIFJIUyB0eXBlXG4gICAqXG4gICAqIFNhbWUgYXMgbm9ybWFsIGVxdWFsaXR5LCBidXQgY29uc2lkZXIgYGludGVnZXJgIGFuZCBgbnVtYmVyYCB0aGUgc2FtZSB0eXBlcy5cbiAgICovXG4gIHB1YmxpYyBqYXZhc2NyaXB0RXF1YWxzKHJoczogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAvLyBXaWRlbmluZ1xuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdpbnRlZ2VyJyB8fCByaHMudHlwZSA9PT0gJ251bWJlcic7XG5cbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmphdmFzY3JpcHRFcXVhbHMocmhzLmVsZW1lbnQpO1xuXG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGlmIChyaHMudHlwZSAhPT0gJ3VuaW9uJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFdmVyeSB0eXBlIGluIHRoaXMgdW5pb24gbmVlZHMgdG8gYmUgZXF1YWwgb25lIHR5cGUgaW4gUkhTXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMuZXZlcnkoKHQxKSA9PiByaHMudHlwZXMuc29tZSgodDIpID0+IG5ldyBSaWNoUHJvcGVydHlUeXBlKHQxKS5qYXZhc2NyaXB0RXF1YWxzKHQyKSkpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBGb3IgYW55dGhpbmcgZWxzZSwgbmVlZCBzdHJpY3QgZXF1YWxpdHlcbiAgICAgICAgcmV0dXJuIHRoaXMuZXF1YWxzKHJocyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgdHlwZSBpcyBhc3NpZ25hYmxlIHRvIHRoZSBSSFMgdHlwZS5cbiAgICpcbiAgICogVGhpcyBpcyBtZWFucyBldmVyeSB0eXBlIG1lbWJlciBvZiB0aGUgTEhTIG11c3QgYmUgcHJlc2VudCBpbiB0aGUgUkhTIHR5cGVcbiAgICovXG4gIHB1YmxpYyBhc3NpZ25hYmxlVG8ocmhzOiBQcm9wZXJ0eVR5cGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHRyYWN0TWVtYmVycyA9ICh0eXBlOiBQcm9wZXJ0eVR5cGUpOiBQcm9wZXJ0eVR5cGVbXSA9PiAodHlwZS50eXBlID09ICd1bmlvbicgPyB0eXBlLnR5cGVzIDogW3R5cGVdKTtcbiAgICBjb25zdCBhc1JpY2hUeXBlID0gKHR5cGU6IFByb3BlcnR5VHlwZSk6IFJpY2hQcm9wZXJ0eVR5cGUgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodHlwZSk7XG5cbiAgICBjb25zdCByaHNNZW1iZXJzID0gZXh0cmFjdE1lbWJlcnMocmhzKTtcbiAgICBmb3IgKGNvbnN0IGxoc01lbWJlciBvZiBleHRyYWN0TWVtYmVycyh0aGlzLnR5cGUpLm1hcChhc1JpY2hUeXBlKSkge1xuICAgICAgaWYgKCFyaHNNZW1iZXJzLnNvbWUoKHR5cGUpID0+IGxoc01lbWJlci5lcXVhbHModHlwZSkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB2ZXJzaW9uIG9mIHRoaXMgdHlwZSwgYnV0IHdpdGggYWxsIHR5cGUgdW5pb25zIGluIGEgcmVndWxhcml6ZWQgb3JkZXJcbiAgICovXG4gIHB1YmxpYyBub3JtYWxpemUoZGI6IFNwZWNEYXRhYmFzZSk6IFJpY2hQcm9wZXJ0eVR5cGUge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBuZXcgUmljaFByb3BlcnR5VHlwZSh7XG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLnR5cGUsXG4gICAgICAgICAgZWxlbWVudDogbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLm5vcm1hbGl6ZShkYikudHlwZSxcbiAgICAgICAgfSk7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVzID0gdGhpcy50eXBlLnR5cGVzXG4gICAgICAgICAgLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkubm9ybWFsaXplKGRiKSlcbiAgICAgICAgICAubWFwKCh0KSA9PiBbdCwgdC5zb3J0S2V5KGRiKV0gYXMgY29uc3QpO1xuICAgICAgICB0eXBlcy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKChbXywgc29ydEtleV0pID0+IHNvcnRLZXkpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSaWNoUHJvcGVydHlUeXBlKHtcbiAgICAgICAgICB0eXBlOiAndW5pb24nLFxuICAgICAgICAgIHR5cGVzOiB0eXBlcy5tYXAoKFt0LCBfXSkgPT4gdC50eXBlKSxcbiAgICAgICAgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RyaW5naWZ5KGRiOiBTcGVjRGF0YWJhc2UsIHdpdGhJZCA9IHRydWUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcyA/IGBzdHJpbmc8JHt0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcy5qb2luKCd8Jyl9PmAgOiAnc3RyaW5nJztcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmFsbG93ZWRWYWx1ZXMgPyBgaW50ZWdlcjwke3RoaXMudHlwZS5hbGxvd2VkVmFsdWVzLmpvaW4oJ3wnKX0+YCA6ICdpbnRlZ2VyJztcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS50eXBlO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICByZXR1cm4gYEFycmF5PCR7bmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLnN0cmluZ2lmeShkYiwgd2l0aElkKX0+YDtcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBgTWFwPHN0cmluZywgJHtuZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc3RyaW5naWZ5KGRiLCB3aXRoSWQpfT5gO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgY29uc3QgdHlwZSA9IGRiLmdldCgndHlwZURlZmluaXRpb24nLCB0aGlzLnR5cGUucmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuIHdpdGhJZCA/IGAke3R5cGUubmFtZX0oJHt0aGlzLnR5cGUucmVmZXJlbmNlLiRyZWZ9KWAgOiB0eXBlLm5hbWU7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMubWFwKCh0KSA9PiBuZXcgUmljaFByb3BlcnR5VHlwZSh0KS5zdHJpbmdpZnkoZGIsIHdpdGhJZCkpLmpvaW4oJyB8ICcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzb3J0YWJsZSBrZXkgYmFzZWQgb24gdGhpcyB0eXBlXG4gICAqXG4gICAqIElmIGEgZGF0YWJhc2UgaXMgZ2l2ZW4sIHR5cGUgZGVmaW5pdGlvbnMgd2lsbCBiZSBzb3J0ZWQgYmFzZWQgb24gdHlwZSBuYW1lLFxuICAgKiBvdGhlcndpc2Ugb24gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIHNvcnRLZXkoZGI/OiBTcGVjRGF0YWJhc2UpOiBzdHJpbmdbXSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICd0YWcnOlxuICAgICAgICByZXR1cm4gWycwJywgdGhpcy50eXBlLnR5cGVdO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnbWFwJzpcbiAgICAgICAgcmV0dXJuIFsnMScsIHRoaXMudHlwZS50eXBlLCAuLi5uZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc29ydEtleShkYildO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgcmV0dXJuIFsnMicsIHRoaXMudHlwZS50eXBlLCBkYj8uZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHRoaXMudHlwZS5yZWZlcmVuY2UpPy5uYW1lID8/IHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZl07XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVLZXlzID0gdGhpcy50eXBlLnR5cGVzLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkuc29ydEtleShkYikpO1xuICAgICAgICB0eXBlS2V5cy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKCh4KSA9PiB4KSk7XG4gICAgICAgIHJldHVybiBbJzMnLCB0aGlzLnR5cGUudHlwZSwgLi4udHlwZUtleXMuZmxhdE1hcCgoeCkgPT4geCldO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVR5cGUgPSBHZW5lcmljUHJvcGVydHlUeXBlPFR5cGVEZWZpbml0aW9uPjtcbmV4cG9ydCB0eXBlIERlZmluaXRpb25SZWZlcmVuY2UgPSBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZTxUeXBlRGVmaW5pdGlvbj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortKeyComparator = sortKeyComparator;\n/**\n * Make a sorting comparator that will sort by a given sort key\n */\nfunction sortKeyComparator(keyFn) {\n return (a, b) => {\n const ak = keyFn(a);\n const bk = keyFn(b);\n for (let i = 0; i < ak.length && i < bk.length; i++) {\n const av = ak[i];\n const bv = bk[i];\n let diff = 0;\n if (typeof av === 'number' && typeof bv === 'number') {\n diff = av - bv;\n }\n else if (typeof av === 'string' && typeof bv === 'string') {\n diff = av.localeCompare(bv);\n }\n if (diff !== 0) {\n return diff;\n }\n }\n return bk.length - ak.length;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3NvcnRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4Q0F1QkM7QUExQkQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBSSxLQUF1QztJQUMxRSxPQUFPLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBVSxFQUFFO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNiLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDO2lCQUFNLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1ha2UgYSBzb3J0aW5nIGNvbXBhcmF0b3IgdGhhdCB3aWxsIHNvcnQgYnkgYSBnaXZlbiBzb3J0IGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydEtleUNvbXBhcmF0b3I8QT4oa2V5Rm46ICh4OiBBKSA9PiBBcnJheTxzdHJpbmcgfCBudW1iZXI+KSB7XG4gIHJldHVybiAoYTogQSwgYjogQSk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgYWsgPSBrZXlGbihhKTtcbiAgICBjb25zdCBiayA9IGtleUZuKGIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhay5sZW5ndGggJiYgaSA8IGJrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhdiA9IGFrW2ldO1xuICAgICAgY29uc3QgYnYgPSBia1tpXTtcblxuICAgICAgbGV0IGRpZmYgPSAwO1xuICAgICAgaWYgKHR5cGVvZiBhdiA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGJ2ID09PSAnbnVtYmVyJykge1xuICAgICAgICBkaWZmID0gYXYgLSBidjtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGF2ID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgYnYgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRpZmYgPSBhdi5sb2NhbGVDb21wYXJlKGJ2KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpZmYgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGRpZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJrLmxlbmd0aCAtIGFrLmxlbmd0aDtcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DestinationPattern = exports.DestinationIdentifier = exports.DockerImageManifestEntry = exports.FileManifestEntry = exports.AssetManifest = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\n/**\n * A manifest of assets\n */\nclass AssetManifest {\n /**\n * Load an asset manifest from the given file\n */\n static fromFile(fileName) {\n try {\n const obj = cloud_assembly_schema_1.Manifest.loadAssetManifest(fileName);\n return new AssetManifest(path.dirname(fileName), obj);\n }\n catch (e) {\n throw new Error(`Cannot read asset manifest '${fileName}': ${e.message}`);\n }\n }\n /**\n * Load an asset manifest from the given file or directory\n *\n * If the argument given is a directoy, the default asset file name will be used.\n */\n static fromPath(filePath) {\n let st;\n try {\n st = fs.statSync(filePath);\n }\n catch (e) {\n throw new Error(`Cannot read asset manifest at '${filePath}': ${e.message}`);\n }\n if (st.isDirectory()) {\n return AssetManifest.fromFile(path.join(filePath, AssetManifest.DEFAULT_FILENAME));\n }\n return AssetManifest.fromFile(filePath);\n }\n constructor(directory, manifest) {\n this.manifest = manifest;\n this.directory = directory;\n }\n /**\n * Select a subset of assets and destinations from this manifest.\n *\n * Only assets with at least 1 selected destination are retained.\n *\n * If selection is not given, everything is returned.\n */\n select(selection) {\n if (selection === undefined) {\n return this;\n }\n const ret = {\n version: this.manifest.version,\n dockerImages: {},\n files: {},\n };\n for (const assetType of ASSET_TYPES) {\n for (const [assetId, asset] of Object.entries(this.manifest[assetType] || {})) {\n const filteredDestinations = filterDict(asset.destinations, (_, destId) => selection.some((sel) => sel.matches(new DestinationIdentifier(assetId, destId))));\n if (Object.keys(filteredDestinations).length > 0) {\n ret[assetType][assetId] = {\n ...asset,\n destinations: filteredDestinations,\n };\n }\n }\n }\n return new AssetManifest(this.directory, ret);\n }\n /**\n * Describe the asset manifest as a list of strings\n */\n list() {\n return [\n ...describeAssets('file', this.manifest.files || {}),\n ...describeAssets('docker-image', this.manifest.dockerImages || {}),\n ];\n function describeAssets(type, assets) {\n const ret = new Array();\n for (const [assetId, asset] of Object.entries(assets || {})) {\n ret.push(`${assetId} ${type} ${JSON.stringify(asset.source)}`);\n const destStrings = Object.entries(asset.destinations).map(([destId, dest]) => ` ${assetId}:${destId} ${JSON.stringify(dest)}`);\n ret.push(...prefixTreeChars(destStrings, ' '));\n }\n return ret;\n }\n }\n /**\n * List of assets per destination\n *\n * Returns one asset for every publishable destination. Multiple asset\n * destinations may share the same asset source.\n */\n get entries() {\n return [\n ...makeEntries(this.manifest.files || {}, FileManifestEntry),\n ...makeEntries(this.manifest.dockerImages || {}, DockerImageManifestEntry),\n ];\n }\n /**\n * List of file assets, splat out to destinations\n */\n get files() {\n return makeEntries(this.manifest.files || {}, FileManifestEntry);\n }\n}\nexports.AssetManifest = AssetManifest;\n/**\n * The default name of the asset manifest in a cdk.out directory\n */\nAssetManifest.DEFAULT_FILENAME = 'assets.json';\nfunction makeEntries(assets, ctor) {\n const ret = new Array();\n for (const [assetId, asset] of Object.entries(assets)) {\n for (const [destId, destination] of Object.entries(asset.destinations)) {\n ret.push(new ctor(new DestinationIdentifier(assetId, destId), asset.displayName, asset.source, destination));\n }\n }\n return ret;\n}\nconst ASSET_TYPES = ['files', 'dockerImages'];\n/**\n * A manifest entry for a file asset\n */\nclass FileManifestEntry {\n constructor(\n /** Identifier for this asset */\n id, _displayName, \n /** Source of the file asset */\n source, \n /** Destination for the file asset */\n destination) {\n this.id = id;\n this._displayName = _displayName;\n this.source = source;\n this.destination = destination;\n this.type = 'file';\n this.genericSource = source;\n this.genericDestination = destination;\n }\n displayName(includeDestination) {\n if (includeDestination) {\n return this._displayName ? `${this._displayName} (${this.id.destinationId})` : `${this.id}`;\n }\n else {\n return this._displayName ? this._displayName : this.id.assetId;\n }\n }\n}\nexports.FileManifestEntry = FileManifestEntry;\n/**\n * A manifest entry for a docker image asset\n */\nclass DockerImageManifestEntry {\n constructor(\n /** Identifier for this asset */\n id, _displayName, \n /** Source of the file asset */\n source, \n /** Destination for the file asset */\n destination) {\n this.id = id;\n this._displayName = _displayName;\n this.source = source;\n this.destination = destination;\n this.type = 'docker-image';\n this.genericSource = source;\n this.genericDestination = destination;\n }\n displayName(includeDestination) {\n if (includeDestination) {\n return this._displayName ? `${this._displayName} (${this.id.destinationId})` : `${this.id}`;\n }\n else {\n return this._displayName ? this._displayName : this.id.assetId;\n }\n }\n}\nexports.DockerImageManifestEntry = DockerImageManifestEntry;\n/**\n * Identify an asset destination in an asset manifest\n *\n * This class is used to identify both an asset to be built as well as a\n * destination where an asset will be published. However, when reasoning about\n * building assets the destination part can be ignored, because the same asset\n * being sent to multiple destinations will only need to be built once and their\n * assetIds are all the same.\n *\n * When stringified, this will be a combination of the source and destination\n * IDs; if a string representation of the source is necessary, use `id.assetId`\n * instead.\n */\nclass DestinationIdentifier {\n constructor(assetId, destinationId) {\n this.assetId = assetId;\n this.destinationId = destinationId;\n }\n /**\n * Return a string representation for this asset identifier\n */\n toString() {\n return this.destinationId ? `${this.assetId}:${this.destinationId}` : this.assetId;\n }\n}\nexports.DestinationIdentifier = DestinationIdentifier;\nfunction filterDict(xs, pred) {\n const ret = {};\n for (const [key, value] of Object.entries(xs)) {\n if (pred(value, key)) {\n ret[key] = value;\n }\n }\n return ret;\n}\n/**\n * A filter pattern for an destination identifier\n */\nclass DestinationPattern {\n /**\n * Parse a ':'-separated string into an asset/destination identifier\n */\n static parse(s) {\n if (!s) {\n throw new Error('Empty string is not a valid destination identifier');\n }\n const parts = s.split(':').map((x) => (x !== '*' ? x : undefined));\n if (parts.length === 1) {\n return new DestinationPattern(parts[0]);\n }\n if (parts.length === 2) {\n return new DestinationPattern(parts[0] || undefined, parts[1] || undefined);\n }\n throw new Error(`Asset identifier must contain at most 2 ':'-separated parts, got '${s}'`);\n }\n constructor(assetId, destinationId) {\n this.assetId = assetId;\n this.destinationId = destinationId;\n }\n /**\n * Whether or not this pattern matches the given identifier\n */\n matches(id) {\n return ((this.assetId === undefined || this.assetId === id.assetId) &&\n (this.destinationId === undefined || this.destinationId === id.destinationId));\n }\n /**\n * Return a string representation for this asset identifier\n */\n toString() {\n return `${this.assetId ?? '*'}:${this.destinationId ?? '*'}`;\n }\n}\nexports.DestinationPattern = DestinationPattern;\n/**\n * Prefix box-drawing characters to make lines look like a hanging tree\n */\nfunction prefixTreeChars(xs, prefix = '') {\n const ret = new Array();\n for (let i = 0; i < xs.length; i++) {\n const isLast = i === xs.length - 1;\n const boxChar = isLast ? '└' : '├';\n ret.push(`${prefix}${boxChar}${xs[i]}`);\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBUTdCLDBFQUV3QztBQUV4Qzs7R0FFRztBQUNILE1BQWEsYUFBYTtJQU14Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsZ0NBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUM7WUFDSCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxRQUFRLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNE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IGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2V0TWFuaWZlc3QgYXMgQXNzZXRNYW5pZmVzdFNjaGVtYSxcbiAgRG9ja2VySW1hZ2VEZXN0aW5hdGlvbixcbiAgRG9ja2VySW1hZ2VTb3VyY2UsXG4gIEZpbGVEZXN0aW5hdGlvbixcbiAgRmlsZVNvdXJjZSxcbn0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7XG4gIE1hbmlmZXN0LFxufSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIEEgbWFuaWZlc3Qgb2YgYXNzZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IG5hbWUgb2YgdGhlIGFzc2V0IG1hbmlmZXN0IGluIGEgY2RrLm91dCBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9GSUxFTkFNRSA9ICdhc3NldHMuanNvbic7XG5cbiAgLyoqXG4gICAqIExvYWQgYW4gYXNzZXQgbWFuaWZlc3QgZnJvbSB0aGUgZ2l2ZW4gZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRmlsZShmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9iaiA9IE1hbmlmZXN0LmxvYWRBc3NldE1hbmlmZXN0KGZpbGVOYW1lKTtcbiAgICAgIHJldHVybiBuZXcgQXNzZXRNYW5pZmVzdChwYXRoLmRpcm5hbWUoZmlsZU5hbWUpLCBvYmopO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVhZCBhc3NldCBtYW5pZmVzdCAnJHtmaWxlTmFtZX0nOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbiBhc3NldCBtYW5pZmVzdCBmcm9tIHRoZSBnaXZlbiBmaWxlIG9yIGRpcmVjdG9yeVxuICAgKlxuICAgKiBJZiB0aGUgYXJndW1lbnQgZ2l2ZW4gaXMgYSBkaXJlY3RveSwgdGhlIGRlZmF1bHQgYXNzZXQgZmlsZSBuYW1lIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIGxldCBzdDtcbiAgICB0cnkge1xuICAgICAgc3QgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGFzc2V0IG1hbmlmZXN0IGF0ICcke2ZpbGVQYXRofSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBpZiAoc3QuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgcmV0dXJuIEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUocGF0aC5qb2luKGZpbGVQYXRoLCBBc3NldE1hbmlmZXN0LkRFRkFVTFRfRklMRU5BTUUpKTtcbiAgICB9XG4gICAgcmV0dXJuIEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUoZmlsZVBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIG1hbmlmZXN0IHdhcyBmb3VuZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRpcmVjdG9yeTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RTY2hlbWEsXG4gICkge1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gZGlyZWN0b3J5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHN1YnNldCBvZiBhc3NldHMgYW5kIGRlc3RpbmF0aW9ucyBmcm9tIHRoaXMgbWFuaWZlc3QuXG4gICAqXG4gICAqIE9ubHkgYXNzZXRzIHdpdGggYXQgbGVhc3QgMSBzZWxlY3RlZCBkZXN0aW5hdGlvbiBhcmUgcmV0YWluZWQuXG4gICAqXG4gICAqIElmIHNlbGVjdGlvbiBpcyBub3QgZ2l2ZW4sIGV2ZXJ5dGhpbmcgaXMgcmV0dXJuZWQuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KHNlbGVjdGlvbj86IERlc3RpbmF0aW9uUGF0dGVybltdKTogQXNzZXRNYW5pZmVzdCB7XG4gICAgaWYgKHNlbGVjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb25zdCByZXQ6IEFzc2V0TWFuaWZlc3RTY2hlbWEgJiBSZXF1aXJlZDxQaWNrPEFzc2V0TWFuaWZlc3RTY2hlbWEsIEFzc2V0VHlwZT4+ID0ge1xuICAgICAgdmVyc2lvbjogdGhpcy5tYW5pZmVzdC52ZXJzaW9uLFxuICAgICAgZG9ja2VySW1hZ2VzOiB7fSxcbiAgICAgIGZpbGVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBhc3NldFR5cGUgb2YgQVNTRVRfVFlQRVMpIHtcbiAgICAgIGZvciAoY29uc3QgW2Fzc2V0SWQsIGFzc2V0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1hbmlmZXN0W2Fzc2V0VHlwZV0gfHwge30pKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGVzdGluYXRpb25zID0gZmlsdGVyRGljdChhc3NldC5kZXN0aW5hdGlvbnMsIChfLCBkZXN0SWQpID0+XG4gICAgICAgICAgc2VsZWN0aW9uLnNvbWUoKHNlbCkgPT4gc2VsLm1hdGNoZXMobmV3IERlc3RpbmF0aW9uSWRlbnRpZmllcihhc3NldElkLCBkZXN0SWQpKSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcmVkRGVzdGluYXRpb25zKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0W2Fzc2V0VHlwZV1bYXNzZXRJZF0gPSB7XG4gICAgICAgICAgICAuLi5hc3NldCxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uczogZmlsdGVyZWREZXN0aW5hdGlvbnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQXNzZXRNYW5pZmVzdCh0aGlzLmRpcmVjdG9yeSwgcmV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmliZSB0aGUgYXNzZXQgbWFuaWZlc3QgYXMgYSBsaXN0IG9mIHN0cmluZ3NcbiAgICovXG4gIHB1YmxpYyBsaXN0KCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5kZXNjcmliZUFzc2V0cygnZmlsZScsIHRoaXMubWFuaWZlc3QuZmlsZXMgfHwge30pLFxuICAgICAgLi4uZGVzY3JpYmVBc3NldHMoJ2RvY2tlci1pbWFnZScsIHRoaXMubWFuaWZlc3QuZG9ja2VySW1hZ2VzIHx8IHt9KSxcbiAgICBdO1xuXG4gICAgZnVuY3Rpb24gZGVzY3JpYmVBc3NldHMoXG4gICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICBhc3NldHM6IFJlY29yZDxzdHJpbmcsIHsgc291cmNlOiBhbnk7IGRlc3RpbmF0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiB9PixcbiAgICApIHtcbiAgICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgICBmb3IgKGNvbnN0IFthc3NldElkLCBhc3NldF0gb2YgT2JqZWN0LmVudHJpZXMoYXNzZXRzIHx8IHt9KSkge1xuICAgICAgICByZXQucHVzaChgJHthc3NldElkfSAke3R5cGV9ICR7SlNPTi5zdHJpbmdpZnkoYXNzZXQuc291cmNlKX1gKTtcblxuICAgICAgICBjb25zdCBkZXN0U3RyaW5ncyA9IE9iamVjdC5lbnRyaWVzKGFzc2V0LmRlc3RpbmF0aW9ucykubWFwKFxuICAgICAgICAgIChbZGVzdElkLCBkZXN0XSkgPT4gYCAke2Fzc2V0SWR9OiR7ZGVzdElkfSAke0pTT04uc3RyaW5naWZ5KGRlc3QpfWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldC5wdXNoKC4uLnByZWZpeFRyZWVDaGFycyhkZXN0U3RyaW5ncywgJyAgJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBhc3NldHMgcGVyIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIFJldHVybnMgb25lIGFzc2V0IGZvciBldmVyeSBwdWJsaXNoYWJsZSBkZXN0aW5hdGlvbi4gTXVsdGlwbGUgYXNzZXRcbiAgICogZGVzdGluYXRpb25zIG1heSBzaGFyZSB0aGUgc2FtZSBhc3NldCBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVudHJpZXMoKTogSU1hbmlmZXN0RW50cnlbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm1ha2VFbnRyaWVzKHRoaXMubWFuaWZlc3QuZmlsZXMgfHwge30sIEZpbGVNYW5pZmVzdEVudHJ5KSxcbiAgICAgIC4uLm1ha2VFbnRyaWVzKHRoaXMubWFuaWZlc3QuZG9ja2VySW1hZ2VzIHx8IHt9LCBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkpLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBmaWxlIGFzc2V0cywgc3BsYXQgb3V0IHRvIGRlc3RpbmF0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlTWFuaWZlc3RFbnRyeVtdIHtcbiAgICByZXR1cm4gbWFrZUVudHJpZXModGhpcy5tYW5pZmVzdC5maWxlcyB8fCB7fSwgRmlsZU1hbmlmZXN0RW50cnkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1ha2VFbnRyaWVzPEEsIEIsIEM+KFxuICBhc3NldHM6IFJlY29yZDxzdHJpbmcsIHsgc291cmNlOiBBOyBkaXNwbGF5TmFtZT86IHN0cmluZzsgZGVzdGluYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBCPiB9PixcbiAgY3RvcjogbmV3IChpZDogRGVzdGluYXRpb25JZGVudGlmaWVyLCBkaXNwbGF5TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBzb3VyY2U6IEEsIGRlc3RpbmF0aW9uOiBCKSA9PiBDLFxuKTogQ1tdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PEM+KCk7XG4gIGZvciAoY29uc3QgW2Fzc2V0SWQsIGFzc2V0XSBvZiBPYmplY3QuZW50cmllcyhhc3NldHMpKSB7XG4gICAgZm9yIChjb25zdCBbZGVzdElkLCBkZXN0aW5hdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoYXNzZXQuZGVzdGluYXRpb25zKSkge1xuICAgICAgcmV0LnB1c2gobmV3IGN0b3IobmV3IERlc3RpbmF0aW9uSWRlbnRpZmllcihhc3NldElkLCBkZXN0SWQpLCBhc3NldC5kaXNwbGF5TmFtZSwgYXNzZXQuc291cmNlLCBkZXN0aW5hdGlvbikpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG50eXBlIEFzc2V0VHlwZSA9ICdmaWxlcycgfCAnZG9ja2VySW1hZ2VzJztcblxuY29uc3QgQVNTRVRfVFlQRVM6IEFzc2V0VHlwZVtdID0gWydmaWxlcycsICdkb2NrZXJJbWFnZXMnXTtcblxuLyoqXG4gKiBBIHNpbmdsZSBhc3NldCBmcm9tIGFuIGFzc2V0IG1hbmlmZXN0J1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElNYW5pZmVzdEVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBhbmQgaXRzIGRlc3RpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSBpZDogRGVzdGluYXRpb25JZGVudGlmaWVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlLWRlcGVuZGVudCBzb3VyY2UgZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcblxuICAvKipcbiAgICogVHlwZS1kZXBlbmRlbnQgZGVzdGluYXRpb24gZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJpY0Rlc3RpbmF0aW9uOiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBkaXNwbGF5IG5hbWUgZm9yIHRoaXMgYXNzZXRcbiAgICpcbiAgICogVGhlIGBpbmNsdWRlRGVzdGluYXRpb25gIHBhcmFtZXRlciBjb250cm9scyB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZVxuICAgKiBkZXN0aW5hdGlvbiBJRCBpbiB0aGUgZGlzcGxheSBuYW1lLlxuICAgKlxuICAgKiAtIFBhc3MgYGZhbHNlYCBpZiB5b3UgYXJlIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucyBhYm91dCBidWlsZGluZyB0aGVcbiAgICogICBhc3NldCwgb3IgaWYgeW91IGFyZSBkZXNjcmliaW5nIHRoZSB3b3JrIG9mIGJ1aWxkaW5nIHRoZSBhc3NldCBhbmQgcHVibGlzaGluZ1xuICAgKiAgIHRvIGFsbCBkZXN0aW5hdGlvbnMgYXQgdGhlIHNhbWUgdGltZS5cbiAgICogLSBQYXNzIGB0cnVlYCBpZiB5b3UgYXJlIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucyBhYm91dCBwdWJsaXNoaW5nIHRvIGFcbiAgICogICBzcGVjaWZpYyBkZXN0aW5hdGlvbi5cbiAgICovXG4gIGRpc3BsYXlOYW1lKGluY2x1ZGVEZXN0aW5hdGlvbjogYm9vbGVhbik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG1hbmlmZXN0IGVudHJ5IGZvciBhIGZpbGUgYXNzZXRcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVNYW5pZmVzdEVudHJ5IGltcGxlbWVudHMgSU1hbmlmZXN0RW50cnkge1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IGdlbmVyaWNEZXN0aW5hdGlvbjogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnZmlsZSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIElkZW50aWZpZXIgZm9yIHRoaXMgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IERlc3RpbmF0aW9uSWRlbnRpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIC8qKiBTb3VyY2Ugb2YgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBGaWxlU291cmNlLFxuICAgIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IEZpbGVEZXN0aW5hdGlvbixcbiAgKSB7XG4gICAgdGhpcy5nZW5lcmljU291cmNlID0gc291cmNlO1xuICAgIHRoaXMuZ2VuZXJpY0Rlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheU5hbWUoaW5jbHVkZURlc3RpbmF0aW9uOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBpZiAoaW5jbHVkZURlc3RpbmF0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5hbWUgPyBgJHt0aGlzLl9kaXNwbGF5TmFtZX0gKCR7dGhpcy5pZC5kZXN0aW5hdGlvbklkfSlgIDogYCR7dGhpcy5pZH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5hbWUgPyB0aGlzLl9kaXNwbGF5TmFtZSA6IHRoaXMuaWQuYXNzZXRJZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBIG1hbmlmZXN0IGVudHJ5IGZvciBhIGRvY2tlciBpbWFnZSBhc3NldFxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5IGltcGxlbWVudHMgSU1hbmlmZXN0RW50cnkge1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJpY1NvdXJjZTogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IGdlbmVyaWNEZXN0aW5hdGlvbjogdW5rbm93bjtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnZG9ja2VyLWltYWdlJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpZDogRGVzdGluYXRpb25JZGVudGlmaWVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rpc3BsYXlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLyoqIFNvdXJjZSBvZiB0aGUgZmlsZSBhc3NldCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IERvY2tlckltYWdlU291cmNlLFxuICAgIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGZpbGUgYXNzZXQgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IERvY2tlckltYWdlRGVzdGluYXRpb24sXG4gICkge1xuICAgIHRoaXMuZ2VuZXJpY1NvdXJjZSA9IHNvdXJjZTtcbiAgICB0aGlzLmdlbmVyaWNEZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuICB9XG5cbiAgcHVibGljIGRpc3BsYXlOYW1lKGluY2x1ZGVEZXN0aW5hdGlvbjogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKGluY2x1ZGVEZXN0aW5hdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOYW1lID8gYCR7dGhpcy5fZGlzcGxheU5hbWV9ICgke3RoaXMuaWQuZGVzdGluYXRpb25JZH0pYCA6IGAke3RoaXMuaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOYW1lID8gdGhpcy5fZGlzcGxheU5hbWUgOiB0aGlzLmlkLmFzc2V0SWQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSWRlbnRpZnkgYW4gYXNzZXQgZGVzdGluYXRpb24gaW4gYW4gYXNzZXQgbWFuaWZlc3RcbiAqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gaWRlbnRpZnkgYm90aCBhbiBhc3NldCB0byBiZSBidWlsdCBhcyB3ZWxsIGFzIGFcbiAqIGRlc3RpbmF0aW9uIHdoZXJlIGFuIGFzc2V0IHdpbGwgYmUgcHVibGlzaGVkLiBIb3dldmVyLCB3aGVuIHJlYXNvbmluZyBhYm91dFxuICogYnVpbGRpbmcgYXNzZXRzIHRoZSBkZXN0aW5hdGlvbiBwYXJ0IGNhbiBiZSBpZ25vcmVkLCBiZWNhdXNlIHRoZSBzYW1lIGFzc2V0XG4gKiBiZWluZyBzZW50IHRvIG11bHRpcGxlIGRlc3RpbmF0aW9ucyB3aWxsIG9ubHkgbmVlZCB0byBiZSBidWlsdCBvbmNlIGFuZCB0aGVpclxuICogYXNzZXRJZHMgYXJlIGFsbCB0aGUgc2FtZS5cbiAqXG4gKiBXaGVuIHN0cmluZ2lmaWVkLCB0aGlzIHdpbGwgYmUgYSBjb21iaW5hdGlvbiBvZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvblxuICogSURzOyBpZiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgc291cmNlIGlzIG5lY2Vzc2FyeSwgdXNlIGBpZC5hc3NldElkYFxuICogaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNsYXNzIERlc3RpbmF0aW9uSWRlbnRpZmllciB7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBhc3NldCwgYnkgc291cmNlLlxuICAgKlxuICAgKiBUaGUgYXNzZXRJZCB3aWxsIGJlIHRoZSBzYW1lIGJldHdlZW4gYXNzZXRzIHRoYXQgcmVwcmVzZW50XG4gICAqIHRoZSBzYW1lIHBoeXNpY2FsIGZpbGUgb3IgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBkZXN0aW5hdGlvbiB3aGVyZSB0aGlzIGFzc2V0IHdpbGwgYmUgcHVibGlzaGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb25JZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2V0SWQ6IHN0cmluZywgZGVzdGluYXRpb25JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hc3NldElkID0gYXNzZXRJZDtcbiAgICB0aGlzLmRlc3RpbmF0aW9uSWQgPSBkZXN0aW5hdGlvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhpcyBhc3NldCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVzdGluYXRpb25JZCA/IGAke3RoaXMuYXNzZXRJZH06JHt0aGlzLmRlc3RpbmF0aW9uSWR9YCA6IHRoaXMuYXNzZXRJZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PEE+KFxuICB4czogUmVjb3JkPHN0cmluZywgQT4sXG4gIHByZWQ6ICh4OiBBLCBrZXk6IHN0cmluZykgPT4gYm9vbGVhbixcbik6IFJlY29yZDxzdHJpbmcsIEE+IHtcbiAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBBPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh4cykpIHtcbiAgICBpZiAocHJlZCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmV0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBBIGZpbHRlciBwYXR0ZXJuIGZvciBhbiBkZXN0aW5hdGlvbiBpZGVudGlmaWVyXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXN0aW5hdGlvblBhdHRlcm4ge1xuICAvKipcbiAgICogUGFyc2UgYSAnOictc2VwYXJhdGVkIHN0cmluZyBpbnRvIGFuIGFzc2V0L2Rlc3RpbmF0aW9uIGlkZW50aWZpZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2Uoczogc3RyaW5nKSB7XG4gICAgaWYgKCFzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IHN0cmluZyBpcyBub3QgYSB2YWxpZCBkZXN0aW5hdGlvbiBpZGVudGlmaWVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0gcy5zcGxpdCgnOicpLm1hcCgoeCkgPT4gKHggIT09ICcqJyA/IHggOiB1bmRlZmluZWQpKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gbmV3IERlc3RpbmF0aW9uUGF0dGVybihwYXJ0c1swXSk7XG4gICAgfVxuICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHJldHVybiBuZXcgRGVzdGluYXRpb25QYXR0ZXJuKHBhcnRzWzBdIHx8IHVuZGVmaW5lZCwgcGFydHNbMV0gfHwgdW5kZWZpbmVkKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBc3NldCBpZGVudGlmaWVyIG11c3QgY29udGFpbiBhdCBtb3N0IDIgJzonLXNlcGFyYXRlZCBwYXJ0cywgZ290ICcke3N9J2ApO1xuICB9XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIGFzc2V0LCBieSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgZGVzdGluYXRpb24gd2hlcmUgdGhpcyBhc3NldCB3aWxsIGJlIHB1Ymxpc2hlZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc3RpbmF0aW9uSWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoYXNzZXRJZD86IHN0cmluZywgZGVzdGluYXRpb25JZD86IHN0cmluZykge1xuICAgIHRoaXMuYXNzZXRJZCA9IGFzc2V0SWQ7XG4gICAgdGhpcy5kZXN0aW5hdGlvbklkID0gZGVzdGluYXRpb25JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHBhdHRlcm4gbWF0Y2hlcyB0aGUgZ2l2ZW4gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIG1hdGNoZXMoaWQ6IERlc3RpbmF0aW9uSWRlbnRpZmllcikge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5hc3NldElkID09PSB1bmRlZmluZWQgfHwgdGhpcy5hc3NldElkID09PSBpZC5hc3NldElkKSAmJlxuICAgICAgKHRoaXMuZGVzdGluYXRpb25JZCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGVzdGluYXRpb25JZCA9PT0gaWQuZGVzdGluYXRpb25JZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhpcyBhc3NldCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYXNzZXRJZCA/PyAnKid9OiR7dGhpcy5kZXN0aW5hdGlvbklkID8/ICcqJ31gO1xuICB9XG59XG5cbi8qKlxuICogUHJlZml4IGJveC1kcmF3aW5nIGNoYXJhY3RlcnMgdG8gbWFrZSBsaW5lcyBsb29rIGxpa2UgYSBoYW5naW5nIHRyZWVcbiAqL1xuZnVuY3Rpb24gcHJlZml4VHJlZUNoYXJzKHhzOiBzdHJpbmdbXSwgcHJlZml4ID0gJycpIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGlzTGFzdCA9IGkgPT09IHhzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgYm94Q2hhciA9IGlzTGFzdCA/ICfilJQnIDogJ+KUnCc7XG4gICAgcmV0LnB1c2goYCR7cHJlZml4fSR7Ym94Q2hhcn0ke3hzW2ldfWApO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultAwsClient = void 0;\nconst os = require(\"os\");\nconst client_ecr_1 = require(\"@aws-sdk/client-ecr\");\nconst client_s3_1 = require(\"@aws-sdk/client-s3\");\nconst client_secrets_manager_1 = require(\"@aws-sdk/client-secrets-manager\");\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst credential_providers_1 = require(\"@aws-sdk/credential-providers\");\nconst lib_storage_1 = require(\"@aws-sdk/lib-storage\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst USER_AGENT = 'cdk-assets';\n/**\n * AWS client using the AWS SDK for JS with no special configuration\n */\nclass DefaultAwsClient {\n constructor(profile) {\n this.profile = profile;\n const clientConfig = {\n customUserAgent: USER_AGENT,\n };\n // storing the main credentials separately because\n // the `config` object changes every time we assume the file publishing role.\n // TODO refactor to make `config` a readonly property and avoid state mutations.\n this.mainCredentials = (0, credential_providers_1.fromNodeProviderChain)({\n profile: this.profile,\n clientConfig,\n });\n this.config = {\n clientConfig,\n credentials: this.mainCredentials,\n };\n }\n async s3Client(options) {\n const client = new client_s3_1.S3Client(await this.awsOptions(options));\n return {\n getBucketEncryption: (input) => client.send(new client_s3_1.GetBucketEncryptionCommand(input)),\n getBucketLocation: (input) => client.send(new client_s3_1.GetBucketLocationCommand(input)),\n listObjectsV2: (input) => client.send(new client_s3_1.ListObjectsV2Command(input)),\n upload: (input) => {\n const upload = new lib_storage_1.Upload({\n client,\n params: input,\n });\n return upload.done();\n },\n };\n }\n async ecrClient(options) {\n const client = new client_ecr_1.ECRClient(await this.awsOptions(options));\n return {\n describeImages: (input) => client.send(new client_ecr_1.DescribeImagesCommand(input)),\n describeRepositories: (input) => client.send(new client_ecr_1.DescribeRepositoriesCommand(input)),\n getAuthorizationToken: (input) => client.send(new client_ecr_1.GetAuthorizationTokenCommand(input ?? {})),\n };\n }\n async secretsManagerClient(options) {\n const client = new client_secrets_manager_1.SecretsManagerClient(await this.awsOptions(options));\n return {\n getSecretValue: (input) => client.send(new client_secrets_manager_1.GetSecretValueCommand(input)),\n };\n }\n async discoverPartition() {\n return (await this.discoverCurrentAccount()).partition;\n }\n async discoverDefaultRegion() {\n return (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS)() || 'us-east-1';\n }\n async discoverCurrentAccount() {\n if (this.account === undefined) {\n this.account = await this.getAccount();\n }\n return this.account;\n }\n async discoverTargetAccount(options) {\n return this.getAccount(await this.awsOptions(options));\n }\n async getAccount(options) {\n this.config.clientConfig = options ?? this.config.clientConfig;\n const stsClient = new client_sts_1.STSClient(await this.awsOptions(options));\n const command = new client_sts_1.GetCallerIdentityCommand();\n const response = await stsClient.send(command);\n if (!response.Account || !response.Arn) {\n throw new Error(`Unrecognized response from STS: '${JSON.stringify(response)}'`);\n }\n return {\n accountId: response.Account,\n partition: response.Arn.split(':')[1],\n };\n }\n async awsOptions(options) {\n const config = this.config;\n config.region = options?.region;\n if (options) {\n config.region = options.region;\n if (options.assumeRoleArn) {\n config.credentials = (0, credential_providers_1.fromTemporaryCredentials)({\n // dont forget the credentials chain.\n masterCredentials: this.mainCredentials,\n params: {\n RoleArn: options.assumeRoleArn,\n ExternalId: options.assumeRoleExternalId,\n RoleSessionName: `${USER_AGENT}-${safeUsername()}`,\n TransitiveTagKeys: options.assumeRoleAdditionalOptions?.Tags\n ? options.assumeRoleAdditionalOptions.Tags.map((t) => t.Key)\n : undefined,\n ...options.assumeRoleAdditionalOptions,\n },\n clientConfig: this.config.clientConfig,\n });\n }\n }\n return config;\n }\n}\nexports.DefaultAwsClient = DefaultAwsClient;\n/**\n * Return the username with characters invalid for a RoleSessionName removed\n *\n * @see https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters\n */\nfunction safeUsername() {\n try {\n return os.userInfo().username.replace(/[^\\w+=,.@-]/g, '@');\n }\n catch {\n return 'noname';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6QixvREFLNkI7QUFDN0Isa0RBSzRCO0FBQzVCLDRFQUE4RjtBQUs5RixvREFHNkI7QUFDN0Isd0VBQWdHO0FBQ2hHLHNEQUE4QztBQUM5Qyw2REFHaUM7QUFDakMsdUVBQTBEO0FBc0UxRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUEwQmhDOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFLM0IsWUFBNkIsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUMzQyxNQUFNLFlBQVksR0FBb0I7WUFDcEMsZUFBZSxFQUFFLFVBQVU7U0FDNUIsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCw2RUFBNkU7UUFDN0UsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBQSw0Q0FBcUIsRUFBQztZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixZQUFZO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFzQjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTztZQUNMLG1CQUFtQixFQUFFLENBQ25CLEtBQXNDLEVBQ0ssRUFBRSxDQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksc0NBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsaUJBQWlCLEVBQUUsQ0FDakIsS0FBb0MsRUFDSyxFQUFFLENBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxvQ0FBd0IsQ0FBQyxLQUFL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QUMsMkJBQTJCO3FCQUN2QztvQkFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO2lCQUN2QyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQWpJRCw0Q0FpSUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxZQUFZO0lBQ25CLElBQUksQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB7XG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kLFxuICBFQ1JDbGllbnQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3InO1xuaW1wb3J0IHtcbiAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNWMkNvbW1hbmQsXG4gIFMzQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgR2V0U2VjcmV0VmFsdWVDb21tYW5kLCBTZWNyZXRzTWFuYWdlckNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXInO1xuaW1wb3J0IHR5cGUge1xuICBBc3N1bWVSb2xlQ29tbWFuZElucHV0LFxuICBTVFNDbGllbnRDb25maWcsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zdHMnO1xuaW1wb3J0IHtcbiAgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kLFxuICBTVFNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zdHMnO1xuaW1wb3J0IHsgZnJvbU5vZGVQcm92aWRlckNoYWluLCBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMgfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tICdAYXdzLXNkay9saWItc3RvcmFnZSc7XG5pbXBvcnQge1xuICBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLFxuICBOT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUyxcbn0gZnJvbSAnQHNtaXRoeS9jb25maWctcmVzb2x2ZXInO1xuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gJ0BzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUge1xuICBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlcixcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0LFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCxcbiAgR2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxufSBmcm9tICcuL2F3cy10eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IFBhcnRpYWw8XG4gIE9taXQ8QXNzdW1lUm9sZUNvbW1hbmRJbnB1dCwgJ0V4dGVybmFsSWQnIHwgJ1JvbGVBcm4nPlxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBJUzNDbGllbnQge1xuICBnZXRCdWNrZXRFbmNyeXB0aW9uKFxuICAgIGlucHV0OiBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQ+O1xuICBnZXRCdWNrZXRMb2NhdGlvbihpbnB1dDogR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZE91dHB1dD47XG4gIGxpc3RPYmplY3RzVjIoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PjtcbiAgdXBsb2FkKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVDUkNsaWVudCB7XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVSZXBvc2l0b3JpZXMoXG4gICAgaW5wdXQ6IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8RGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kT3V0cHV0PjtcbiAgZ2V0QXV0aG9yaXphdGlvblRva2VuKFxuICAgIGlucHV0PzogR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZElucHV0XG4gICk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlY3JldHNNYW5hZ2VyQ2xpZW50IHtcbiAgZ2V0U2VjcmV0VmFsdWUoaW5wdXQ6IEdldFNlY3JldFZhbHVlQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRTZWNyZXRWYWx1ZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG4vKipcbiAqIEFXUyBTREsgb3BlcmF0aW9ucyByZXF1aXJlZCBieSBBc3NldCBQdWJsaXNoaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUF3cyB7XG4gIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPjtcbiAgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+O1xuXG4gIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PjtcbiAgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PjtcbiAgZWNyQ2xpZW50KG9wdGlvbnM6IENsaWVudE9wdGlvbnMpOiBQcm9taXNlPElFQ1JDbGllbnQ+O1xuICBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE9wdGlvbnMge1xuICByZWdpb24/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVBcm4/OiBzdHJpbmc7XG4gIGFzc3VtZVJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuICBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiBBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gIHF1aWV0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgVVNFUl9BR0VOVCA9ICdjZGstYXNzZXRzJztcblxuaW50ZXJmYWNlIENvbmZpZ3VyYXRpb24ge1xuICBjbGllbnRDb25maWc6IFNUU0NsaWVudENvbmZpZztcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBjcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG59XG5cbi8qKlxuICogQW4gQVdTIGFjY291bnRcbiAqXG4gKiBBbiBBV1MgYWNjb3VudCBhbHdheXMgZXhpc3RzIGluIG9ubHkgb25lIHBhcnRpdGlvbi4gVXN1YWxseSB3ZSBkb24ndCBjYXJlIGFib3V0XG4gKiB0aGUgcGFydGl0aW9uLCBidXQgd2hlbiB3ZSBuZWVkIHRvIGZvcm0gQVJOcyB3ZSBkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gKCdhd3MnIG9yICdhd3MtY24nIG9yIG90aGVyd2lzZSlcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFXUyBjbGllbnQgdXNpbmcgdGhlIEFXUyBTREsgZm9yIEpTIHdpdGggbm8gc3BlY2lhbCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0QXdzQ2xpZW50IGltcGxlbWVudHMgSUF3cyB7XG4gIHByaXZhdGUgYWNjb3VudD86IEFjY291bnQ7XG4gIHByaXZhdGUgY29uZmlnOiBDb25maWd1cmF0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IG1haW5DcmVkZW50aWFsczogQXdzQ3JlZGVudGlhbElkZW50aXR5UHJvdmlkZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9maWxlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnOiBTVFNDbGllbnRDb25maWcgPSB7XG4gICAgICBjdXN0b21Vc2VyQWdlbnQ6IFVTRVJfQUdFTlQsXG4gICAgfTtcblxuICAgIC8vIHN0b3JpbmcgdGhlIG1haW4gY3JlZGVudGlhbHMgc2VwYXJhdGVseSBiZWNhdXNlXG4gICAgLy8gdGhlIGBjb25maWdgIG9iamVjdCBjaGFuZ2VzIGV2ZXJ5IHRpbWUgd2UgYXNzdW1lIHRoZSBmaWxlIHB1Ymxpc2hpbmcgcm9sZS5cbiAgICAvLyBUT0RPIHJlZmFjdG9yIHRvIG1ha2UgYGNvbmZpZ2AgYSByZWFkb25seSBwcm9wZXJ0eSBhbmQgYXZvaWQgc3RhdGUgbXV0YXRpb25zLlxuICAgIHRoaXMubWFpbkNyZWRlbnRpYWxzID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IHRoaXMucHJvZmlsZSxcbiAgICAgIGNsaWVudENvbmZpZyxcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgY2xpZW50Q29uZmlnLFxuICAgICAgY3JlZGVudGlhbHM6IHRoaXMubWFpbkNyZWRlbnRpYWxzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFMzQ2xpZW50KGF3YWl0IHRoaXMuYXdzT3B0aW9ucyhvcHRpb25zKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldEJ1Y2tldEVuY3J5cHRpb246IChcbiAgICAgICAgaW5wdXQ6IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldEJ1Y2tldExvY2F0aW9uOiAoXG4gICAgICAgIGlucHV0OiBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8R2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0T2JqZWN0c1YyOiAoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdE9iamVjdHNWMkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwbG9hZDogKGlucHV0OiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dD4gPT4ge1xuICAgICAgICBjb25zdCB1cGxvYWQgPSBuZXcgVXBsb2FkKHtcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgcGFyYW1zOiBpbnB1dCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1cGxvYWQuZG9uZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVjckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJRUNSQ2xpZW50PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEVDUkNsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUltYWdlczogKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbWFnZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVJlcG9zaXRvcmllczogKFxuICAgICAgICBpbnB1dDogRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QXV0aG9yaXphdGlvblRva2VuOiAoXG4gICAgICAgIGlucHV0OiBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kKGlucHV0ID8/IHt9KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWNyZXRzTWFuYWdlckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJU2VjcmV0c01hbmFnZXJDbGllbnQ+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoYXdhaXQgdGhpcy5hd3NPcHRpb25zKG9wdGlvbnMpKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U2VjcmV0VmFsdWU6IChpbnB1dDogR2V0U2VjcmV0VmFsdWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFNlY3JldFZhbHVlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJQYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpKS5wYXJ0aXRpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGxvYWRDb25maWcoTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlMsIE5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMpKCkgfHwgJ3VzLWVhc3QtMSc7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICBpZiAodGhpcy5hY2NvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWNjb3VudCA9IGF3YWl0IHRoaXMuZ2V0QWNjb3VudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2NvdW50O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjb3VudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2NvdW50KG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgdGhpcy5jb25maWcuY2xpZW50Q29uZmlnID0gb3B0aW9ucyA/PyB0aGlzLmNvbmZpZy5jbGllbnRDb25maWc7XG4gICAgY29uc3Qgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudChhd2FpdCB0aGlzLmF3c09wdGlvbnMob3B0aW9ucykpO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHN0c0NsaWVudC5zZW5kKGNvbW1hbmQpO1xuICAgIGlmICghcmVzcG9uc2UuQWNjb3VudCB8fCAhcmVzcG9uc2UuQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNwb25zZSBmcm9tIFNUUzogJyR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpfSdgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY291bnRJZDogcmVzcG9uc2UuQWNjb3VudCEsXG4gICAgICBwYXJ0aXRpb246IHJlc3BvbnNlLkFybiEuc3BsaXQoJzonKVsxXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhd3NPcHRpb25zKG9wdGlvbnM/OiBDbGllbnRPcHRpb25zKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnM/LnJlZ2lvbjtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgY29uZmlnLnJlZ2lvbiA9IG9wdGlvbnMucmVnaW9uO1xuICAgICAgaWYgKG9wdGlvbnMuYXNzdW1lUm9sZUFybikge1xuICAgICAgICBjb25maWcuY3JlZGVudGlhbHMgPSBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgICAgIC8vIGRvbnQgZm9yZ2V0IHRoZSBjcmVkZW50aWFscyBjaGFpbi5cbiAgICAgICAgICBtYXN0ZXJDcmVkZW50aWFsczogdGhpcy5tYWluQ3JlZGVudGlhbHMsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBSb2xlQXJuOiBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICAgICAgICBFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBgJHtVU0VSX0FHRU5UfS0ke3NhZmVVc2VybmFtZSgpfWAsXG4gICAgICAgICAgICBUcmFuc2l0aXZlVGFnS2V5czogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/LlRhZ3NcbiAgICAgICAgICAgICAgPyBvcHRpb25zLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucy5UYWdzLm1hcCgodCkgPT4gdC5LZXkhKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xpZW50Q29uZmlnOiB0aGlzLmNvbmZpZy5jbGllbnRDb25maWcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSB1c2VybmFtZSB3aXRoIGNoYXJhY3RlcnMgaW52YWxpZCBmb3IgYSBSb2xlU2Vzc2lvbk5hbWUgcmVtb3ZlZFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL1NUUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Bc3N1bWVSb2xlLmh0bWwjQVBJX0Fzc3VtZVJvbGVfUmVxdWVzdFBhcmFtZXRlcnNcbiAqL1xuZnVuY3Rpb24gc2FmZVVzZXJuYW1lKCkge1xuICB0cnkge1xuICAgIHJldHVybiBvcy51c2VySW5mbygpLnVzZXJuYW1lLnJlcGxhY2UoL1teXFx3Kz0sLkAtXS9nLCAnQCcpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ25vbmFtZSc7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./publishing\"), exports);\n__exportStar(require(\"./asset-manifest\"), exports);\n__exportStar(require(\"./aws\"), exports);\n__exportStar(require(\"./progress\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLG1EQUFpQztBQUNqQyx3Q0FBc0I7QUFDdEIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaXNoaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXQtbWFuaWZlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hd3MnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zipDirectory = zipDirectory;\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst glob = require(\"glob\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst archiver = require('archiver');\nasync function zipDirectory(directory, outputFile, eventEmitter) {\n // We write to a temporary file and rename at the last moment. This is so that if we are\n // interrupted during this process, we don't leave a half-finished file in the target location.\n const temporaryOutputFile = `${outputFile}.${randomString()}._tmp`;\n await writeZipFile(directory, temporaryOutputFile);\n await moveIntoPlace(temporaryOutputFile, outputFile, eventEmitter);\n}\nfunction writeZipFile(directory, outputFile) {\n return new Promise(async (ok, fail) => {\n // The below options are needed to support following symlinks when building zip files:\n // - nodir: This will prevent symlinks themselves from being copied into the zip.\n // - follow: This will follow symlinks and copy the files within.\n const globOptions = {\n dot: true,\n nodir: true,\n follow: true,\n cwd: directory,\n };\n const files = glob.sync('**', globOptions); // The output here is already sorted\n const output = (0, fs_1.createWriteStream)(outputFile);\n const archive = archiver('zip');\n archive.on('warning', fail);\n archive.on('error', fail);\n // archive has been finalized and the output file descriptor has closed, resolve promise\n // this has to be done before calling `finalize` since the events may fire immediately after.\n // see https://www.npmjs.com/package/archiver\n output.once('close', ok);\n archive.pipe(output);\n // Append files serially to ensure file order\n for (const file of files) {\n const fullPath = path.resolve(directory, file);\n // There are exactly 2 promises\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const [data, stat] = await Promise.all([fs_1.promises.readFile(fullPath), fs_1.promises.stat(fullPath)]);\n archive.append(data, {\n name: file,\n date: new Date('1980-01-01T00:00:00.000Z'), // reset dates to get the same hash for the same content\n mode: stat.mode,\n });\n }\n await archive.finalize();\n });\n}\n/**\n * Rename the file to the target location, taking into account:\n *\n * - That we may see EPERM on Windows while an Antivirus scanner still has the\n * file open, so retry a couple of times.\n * - This same function may be called in parallel and be interrupted at any point.\n */\nasync function moveIntoPlace(source, target, eventEmitter) {\n let delay = 100;\n let attempts = 5;\n while (true) {\n try {\n // 'rename' is guaranteed to overwrite an existing target, as long as it is a file (not a directory)\n await fs_1.promises.rename(source, target);\n return;\n }\n catch (e) {\n if (e.code !== 'EPERM' || attempts-- <= 0) {\n throw e;\n }\n eventEmitter(e.message);\n await sleep(Math.floor(Math.random() * delay));\n delay *= 2;\n }\n }\n}\nfunction sleep(ms) {\n return new Promise((ok) => setTimeout(ok, ms));\n}\nfunction randomString() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z0-9]+/g, '');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFyY2hpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxvQ0FVQztBQXBCRCwyQkFBdUQ7QUFDdkQsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3Qix5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUk5QixLQUFLLFVBQVUsWUFBWSxDQUNoQyxTQUFpQixFQUNqQixVQUFrQixFQUNsQixZQUEwQjtJQUUxQix3RkFBd0Y7SUFDeEYsK0ZBQStGO0lBQy9GLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxVQUFVLElBQUksWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUNuRSxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNuRCxNQUFNLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLFNBQWlCLEVBQUUsVUFBa0I7SUFDekQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3BDLHNGQUFzRjtRQUN0RixpRkFBaUY7UUFDakYsaUVBQWlFO1FBQ2pFLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsRUFBRSxTQUFTO1NBQ2YsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0NBQW9DO1FBRWhGLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWlCLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFFN0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTFCLHdGQUF3RjtRQUN4Riw2RkFBNkY7UUFDN0YsNkNBQTZDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckIsNkNBQTZDO1FBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsK0JBQStCO1lBQy9CLHdFQUF3RTtZQUN4RSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ25CLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLHdEQUF3RDtnQkFDcEcsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQWMsRUFBRSxNQUFjLEVBQUUsWUFBMEI7SUFDckYsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDO1lBQ0gsb0dBQW9HO1lBQ3BHLE1BQU0sYUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsRUFBVTtJQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsWUFBWTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUU7U0FDakIsUUFBUSxDQUFDLEVBQUUsQ0FBQztTQUNaLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVdyaXRlU3RyZWFtLCBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuXG4vLyBuYW1lc3BhY2Ugb2JqZWN0IGltcG9ydHMgd29uJ3Qgd29yayBpbiB0aGUgYnVuZGxlIGZvciBmdW5jdGlvbiBleHBvcnRzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgYXJjaGl2ZXIgPSByZXF1aXJlKCdhcmNoaXZlcicpO1xuXG50eXBlIEV2ZW50RW1pdHRlciA9ICh4OiBzdHJpbmcpID0+IHZvaWQ7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB6aXBEaXJlY3RvcnkoXG4gIGRpcmVjdG9yeTogc3RyaW5nLFxuICBvdXRwdXRGaWxlOiBzdHJpbmcsXG4gIGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFdlIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJlbmFtZSBhdCB0aGUgbGFzdCBtb21lbnQuIFRoaXMgaXMgc28gdGhhdCBpZiB3ZSBhcmVcbiAgLy8gaW50ZXJydXB0ZWQgZHVyaW5nIHRoaXMgcHJvY2Vzcywgd2UgZG9uJ3QgbGVhdmUgYSBoYWxmLWZpbmlzaGVkIGZpbGUgaW4gdGhlIHRhcmdldCBsb2NhdGlvbi5cbiAgY29uc3QgdGVtcG9yYXJ5T3V0cHV0RmlsZSA9IGAke291dHB1dEZpbGV9LiR7cmFuZG9tU3RyaW5nKCl9Ll90bXBgO1xuICBhd2FpdCB3cml0ZVppcEZpbGUoZGlyZWN0b3J5LCB0ZW1wb3JhcnlPdXRwdXRGaWxlKTtcbiAgYXdhaXQgbW92ZUludG9QbGFjZSh0ZW1wb3JhcnlPdXRwdXRGaWxlLCBvdXRwdXRGaWxlLCBldmVudEVtaXR0ZXIpO1xufVxuXG5mdW5jdGlvbiB3cml0ZVppcEZpbGUoZGlyZWN0b3J5OiBzdHJpbmcsIG91dHB1dEZpbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKG9rLCBmYWlsKSA9PiB7XG4gICAgLy8gVGhlIGJlbG93IG9wdGlvbnMgYXJlIG5lZWRlZCB0byBzdXBwb3J0IGZvbGxvd2luZyBzeW1saW5rcyB3aGVuIGJ1aWxkaW5nIHppcCBmaWxlczpcbiAgICAvLyAtIG5vZGlyOiBUaGlzIHdpbGwgcHJldmVudCBzeW1saW5rcyB0aGVtc2VsdmVzIGZyb20gYmVpbmcgY29waWVkIGludG8gdGhlIHppcC5cbiAgICAvLyAtIGZvbGxvdzogVGhpcyB3aWxsIGZvbGxvdyBzeW1saW5rcyBhbmQgY29weSB0aGUgZmlsZXMgd2l0aGluLlxuICAgIGNvbnN0IGdsb2JPcHRpb25zID0ge1xuICAgICAgZG90OiB0cnVlLFxuICAgICAgbm9kaXI6IHRydWUsXG4gICAgICBmb2xsb3c6IHRydWUsXG4gICAgICBjd2Q6IGRpcmVjdG9yeSxcbiAgICB9O1xuICAgIGNvbnN0IGZpbGVzID0gZ2xvYi5zeW5jKCcqKicsIGdsb2JPcHRpb25zKTsgLy8gVGhlIG91dHB1dCBoZXJlIGlzIGFscmVhZHkgc29ydGVkXG5cbiAgICBjb25zdCBvdXRwdXQgPSBjcmVhdGVXcml0ZVN0cmVhbShvdXRwdXRGaWxlKTtcblxuICAgIGNvbnN0IGFyY2hpdmUgPSBhcmNoaXZlcignemlwJyk7XG4gICAgYXJjaGl2ZS5vbignd2FybmluZycsIGZhaWwpO1xuICAgIGFyY2hpdmUub24oJ2Vycm9yJywgZmFpbCk7XG5cbiAgICAvLyBhcmNoaXZlIGhhcyBiZWVuIGZpbmFsaXplZCBhbmQgdGhlIG91dHB1dCBmaWxlIGRlc2NyaXB0b3IgaGFzIGNsb3NlZCwgcmVzb2x2ZSBwcm9taXNlXG4gICAgLy8gdGhpcyBoYXMgdG8gYmUgZG9uZSBiZWZvcmUgY2FsbGluZyBgZmluYWxpemVgIHNpbmNlIHRoZSBldmVudHMgbWF5IGZpcmUgaW1tZWRpYXRlbHkgYWZ0ZXIuXG4gICAgLy8gc2VlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2FyY2hpdmVyXG4gICAgb3V0cHV0Lm9uY2UoJ2Nsb3NlJywgb2spO1xuXG4gICAgYXJjaGl2ZS5waXBlKG91dHB1dCk7XG5cbiAgICAvLyBBcHBlbmQgZmlsZXMgc2VyaWFsbHkgdG8gZW5zdXJlIGZpbGUgb3JkZXJcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKGRpcmVjdG9yeSwgZmlsZSk7XG4gICAgICAvLyBUaGVyZSBhcmUgZXhhY3RseSAyIHByb21pc2VzXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIGNvbnN0IFtkYXRhLCBzdGF0XSA9IGF3YWl0IFByb21pc2UuYWxsKFtmcy5yZWFkRmlsZShmdWxsUGF0aCksIGZzLnN0YXQoZnVsbFBhdGgpXSk7XG4gICAgICBhcmNoaXZlLmFwcGVuZChkYXRhLCB7XG4gICAgICAgIG5hbWU6IGZpbGUsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCcxOTgwLTAxLTAxVDAwOjAwOjAwLjAwMFonKSwgLy8gcmVzZXQgZGF0ZXMgdG8gZ2V0IHRoZSBzYW1lIGhhc2ggZm9yIHRoZSBzYW1lIGNvbnRlbnRcbiAgICAgICAgbW9kZTogc3RhdC5tb2RlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXdhaXQgYXJjaGl2ZS5maW5hbGl6ZSgpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHRhcmdldCBsb2NhdGlvbiwgdGFraW5nIGludG8gYWNjb3VudDpcbiAqXG4gKiAtIFRoYXQgd2UgbWF5IHNlZSBFUEVSTSBvbiBXaW5kb3dzIHdoaWxlIGFuIEFudGl2aXJ1cyBzY2FubmVyIHN0aWxsIGhhcyB0aGVcbiAqICAgZmlsZSBvcGVuLCBzbyByZXRyeSBhIGNvdXBsZSBvZiB0aW1lcy5cbiAqIC0gVGhpcyBzYW1lIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgaW4gcGFyYWxsZWwgYW5kIGJlIGludGVycnVwdGVkIGF0IGFueSBwb2ludC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbW92ZUludG9QbGFjZShzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcsIGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyKSB7XG4gIGxldCBkZWxheSA9IDEwMDtcbiAgbGV0IGF0dGVtcHRzID0gNTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gJ3JlbmFtZScgaXMgZ3VhcmFudGVlZCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgdGFyZ2V0LCBhcyBsb25nIGFzIGl0IGlzIGEgZmlsZSAobm90IGEgZGlyZWN0b3J5KVxuICAgICAgYXdhaXQgZnMucmVuYW1lKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLmNvZGUgIT09ICdFUEVSTScgfHwgYXR0ZW1wdHMtLSA8PSAwKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBldmVudEVtaXR0ZXIoZS5tZXNzYWdlKTtcbiAgICAgIGF3YWl0IHNsZWVwKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGRlbGF5KSk7XG4gICAgICBkZWxheSAqPSAyO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2spID0+IHNldFRpbWVvdXQob2ssIG1zKSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVN0cmluZygpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKClcbiAgICAudG9TdHJpbmcoMzYpXG4gICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cdkCredentialsConfigFile = cdkCredentialsConfigFile;\nexports.cdkCredentialsConfig = cdkCredentialsConfig;\nexports._clearCdkCredentialsConfigCache = _clearCdkCredentialsConfigCache;\nexports.fetchDockerLoginCredentials = fetchDockerLoginCredentials;\nexports.obtainEcrCredentials = obtainEcrCredentials;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst progress_1 = require(\"../progress\");\n/** Returns the presumed location of the CDK Docker credentials config file */\nfunction cdkCredentialsConfigFile() {\n return (process.env.CDK_DOCKER_CREDS_FILE ??\n path.join((os.userInfo().homedir ?? os.homedir()).trim() || '/', '.cdk', 'cdk-docker-creds.json'));\n}\nlet _cdkCredentials;\n/** Loads and parses the CDK Docker credentials configuration, if it exists. */\nfunction cdkCredentialsConfig() {\n if (!_cdkCredentials) {\n try {\n _cdkCredentials = JSON.parse(fs.readFileSync(cdkCredentialsConfigFile(), { encoding: 'utf-8' }));\n }\n catch {\n }\n }\n return _cdkCredentials;\n}\n/**\n * Just for testing\n */\nfunction _clearCdkCredentialsConfigCache() {\n _cdkCredentials = undefined;\n}\n/** Fetches login credentials from the configured source (e.g., SecretsManager, ECR) */\nasync function fetchDockerLoginCredentials(aws, config, endpoint) {\n // Paranoid handling to ensure new URL() doesn't throw if the schema is missing\n // For official docker registry, docker will pass https://index.docker.io/v1/\n endpoint = endpoint.includes('://') ? endpoint : `https://${endpoint}`;\n const domain = new URL(endpoint).hostname;\n if (!Object.keys(config.domainCredentials).includes(domain) &&\n !Object.keys(config.domainCredentials).includes(endpoint)) {\n throw new Error(`unknown domain ${domain}`);\n }\n let domainConfig = config.domainCredentials[domain] ?? config.domainCredentials[endpoint];\n if (domainConfig.secretsManagerSecretId) {\n const sm = await aws.secretsManagerClient({ assumeRoleArn: domainConfig.assumeRoleArn });\n const secretValue = await sm.getSecretValue({\n SecretId: domainConfig.secretsManagerSecretId,\n });\n if (!secretValue.SecretString) {\n throw new Error(`unable to fetch SecretString from secret: ${domainConfig.secretsManagerSecretId}`);\n }\n const secret = JSON.parse(secretValue.SecretString);\n const usernameField = domainConfig.secretsUsernameField ?? 'username';\n const secretField = domainConfig.secretsPasswordField ?? 'secret';\n if (!secret[usernameField] || !secret[secretField]) {\n throw new Error(`malformed secret string (\"${usernameField}\" or \"${secretField}\" field missing)`);\n }\n return { Username: secret[usernameField], Secret: secret[secretField] };\n }\n else if (domainConfig.ecrRepository) {\n const ecr = await aws.ecrClient({ assumeRoleArn: domainConfig.assumeRoleArn });\n const ecrAuthData = await obtainEcrCredentials(ecr);\n return { Username: ecrAuthData.username, Secret: ecrAuthData.password };\n }\n else {\n throw new Error('unknown credential type: no secret ID or ECR repo');\n }\n}\nasync function obtainEcrCredentials(ecr, eventEmitter) {\n if (eventEmitter) {\n eventEmitter(progress_1.EventType.DEBUG, 'Fetching ECR authorization token');\n }\n const authData = (await ecr.getAuthorizationToken()).authorizationData || [];\n if (authData.length === 0) {\n throw new Error('No authorization data received from ECR');\n }\n const token = Buffer.from(authData[0].authorizationToken, 'base64').toString('ascii');\n const [username, password] = token.split(':');\n if (!username || !password) {\n throw new Error('unexpected ECR authData format');\n }\n return {\n username,\n password,\n endpoint: authData[0].proxyEndpoint,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLWNyZWRlbnRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLDREQVNDO0FBSUQsb0RBVUM7QUFLRCwwRUFFQztBQUdELGtFQWlEQztBQUVELG9EQW9CQztBQWxJRCx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUc3QiwwQ0FBd0M7QUFvQnhDLDhFQUE4RTtBQUM5RSxTQUFnQix3QkFBd0I7SUFDdEMsT0FBTyxDQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFDckQsTUFBTSxFQUNOLHVCQUF1QixDQUN4QixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsSUFBSSxlQUFvRCxDQUFDO0FBQ3pELCtFQUErRTtBQUMvRSxTQUFnQixvQkFBb0I7SUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQztZQUNILGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMxQixFQUFFLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDeEMsQ0FBQztRQUMvQixDQUFDO1FBQUMsTUFBTSxDQUFDO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwrQkFBK0I7SUFDN0MsZUFBZSxHQUFHLFNBQVMsQ0FBQztBQUM5QixDQUFDO0FBRUQsdUZBQXVGO0FBQ2hGLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsR0FBUyxFQUNULE1BQStCLEVBQy9CLFFBQWdCO0lB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QkFBcUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO0lBQzdFLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RixNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVE7UUFDUixRQUFRO1FBQ1IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFjO0tBQ3JDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgSUF3cywgSUVDUkNsaWVudCB9IGZyb20gJy4uL2F3cyc7XG5pbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3Byb2dyZXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDcmVkZW50aWFscyB7XG4gIHJlYWRvbmx5IFVzZXJuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IFNlY3JldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckNyZWRlbnRpYWxzQ29uZmlnIHtcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBkb21haW5DcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZSB7XG4gIHJlYWRvbmx5IHNlY3JldHNNYW5hZ2VyU2VjcmV0SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldHNVc2VybmFtZUZpZWxkPzogc3RyaW5nO1xuICByZWFkb25seSBzZWNyZXRzUGFzc3dvcmRGaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZWNyUmVwb3NpdG9yeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBcm4/OiBzdHJpbmc7XG59XG5cbi8qKiBSZXR1cm5zIHRoZSBwcmVzdW1lZCBsb2NhdGlvbiBvZiB0aGUgQ0RLIERvY2tlciBjcmVkZW50aWFscyBjb25maWcgZmlsZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNka0NyZWRlbnRpYWxzQ29uZmlnRmlsZSgpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHByb2Nlc3MuZW52LkNES19ET0NLRVJfQ1JFRFNfRklMRSA/P1xuICAgIHBhdGguam9pbihcbiAgICAgIChvcy51c2VySW5mbygpLmhvbWVkaXIgPz8gb3MuaG9tZWRpcigpKS50cmltKCkgfHwgJy8nLFxuICAgICAgJy5jZGsnLFxuICAgICAgJ2Nkay1kb2NrZXItY3JlZHMuanNvbicsXG4gICAgKVxuICApO1xufVxuXG5sZXQgX2Nka0NyZWRlbnRpYWxzOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyB8IHVuZGVmaW5lZDtcbi8qKiBMb2FkcyBhbmQgcGFyc2VzIHRoZSBDREsgRG9ja2VyIGNyZWRlbnRpYWxzIGNvbmZpZ3VyYXRpb24sIGlmIGl0IGV4aXN0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjZGtDcmVkZW50aWFsc0NvbmZpZygpOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghX2Nka0NyZWRlbnRpYWxzKSB7XG4gICAgdHJ5IHtcbiAgICAgIF9jZGtDcmVkZW50aWFscyA9IEpTT04ucGFyc2UoXG4gICAgICAgIGZzLnJlYWRGaWxlU3luYyhjZGtDcmVkZW50aWFsc0NvbmZpZ0ZpbGUoKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSxcbiAgICAgICkgYXMgRG9ja2VyQ3JlZGVudGlhbHNDb25maWc7XG4gICAgfSBjYXRjaCB7XG4gICAgfVxuICB9XG4gIHJldHVybiBfY2RrQ3JlZGVudGlhbHM7XG59XG5cbi8qKlxuICogSnVzdCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gX2NsZWFyQ2RrQ3JlZGVudGlhbHNDb25maWdDYWNoZSgpIHtcbiAgX2Nka0NyZWRlbnRpYWxzID0gdW5kZWZpbmVkO1xufVxuXG4vKiogRmV0Y2hlcyBsb2dpbiBjcmVkZW50aWFscyBmcm9tIHRoZSBjb25maWd1cmVkIHNvdXJjZSAoZS5nLiwgU2VjcmV0c01hbmFnZXIsIEVDUikgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaERvY2tlckxvZ2luQ3JlZGVudGlhbHMoXG4gIGF3czogSUF3cyxcbiAgY29uZmlnOiBEb2NrZXJDcmVkZW50aWFsc0NvbmZpZyxcbiAgZW5kcG9pbnQ6IHN0cmluZyxcbikge1xuICAvLyBQYXJhbm9pZCBoYW5kbGluZyB0byBlbnN1cmUgbmV3IFVSTCgpIGRvZXNuJ3QgdGhyb3cgaWYgdGhlIHNjaGVtYSBpcyBtaXNzaW5nXG4gIC8vIEZvciBvZmZpY2lhbCBkb2NrZXIgcmVnaXN0cnksIGRvY2tlciB3aWxsIHBhc3MgaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvXG4gIGVuZHBvaW50ID0gZW5kcG9pbnQuaW5jbHVkZXMoJzovLycpID8gZW5kcG9pbnQgOiBgaHR0cHM6Ly8ke2VuZHBvaW50fWA7XG4gIGNvbnN0IGRvbWFpbiA9IG5ldyBVUkwoZW5kcG9pbnQpLmhvc3RuYW1lO1xuXG4gIGlmIChcbiAgICAhT2JqZWN0LmtleXMoY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzKS5pbmNsdWRlcyhkb21haW4pICYmXG4gICAgIU9iamVjdC5rZXlzKGNvbmZpZy5kb21haW5DcmVkZW50aWFscykuaW5jbHVkZXMoZW5kcG9pbnQpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBkb21haW4gJHtkb21haW59YCk7XG4gIH1cblxuICBsZXQgZG9tYWluQ29uZmlnID0gY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzW2RvbWFpbl0gPz8gY29uZmlnLmRvbWFpbkNyZWRlbnRpYWxzW2VuZHBvaW50XTtcblxuICBpZiAoZG9tYWluQ29uZmlnLnNlY3JldHNNYW5hZ2VyU2VjcmV0SWQpIHtcbiAgICBjb25zdCBzbSA9IGF3YWl0IGF3cy5zZWNyZXRzTWFuYWdlckNsaWVudCh7IGFzc3VtZVJvbGVBcm46IGRvbWFpbkNvbmZpZy5hc3N1bWVSb2xlQXJuIH0pO1xuICAgIGNvbnN0IHNlY3JldFZhbHVlID0gYXdhaXQgc20uZ2V0U2VjcmV0VmFsdWUoe1xuICAgICAgU2VjcmV0SWQ6IGRvbWFpbkNvbmZpZy5zZWNyZXRzTWFuYWdlclNlY3JldElkLFxuICAgIH0pO1xuICAgIGlmICghc2VjcmV0VmFsdWUuU2VjcmV0U3RyaW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGB1bmFibGUgdG8gZmV0Y2ggU2VjcmV0U3RyaW5nIGZyb20gc2VjcmV0OiAke2RvbWFpbkNvbmZpZy5zZWNyZXRzTWFuYWdlclNlY3JldElkfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldCA9IEpTT04ucGFyc2Uoc2VjcmV0VmFsdWUuU2VjcmV0U3RyaW5nKTtcblxuICAgIGNvbnN0IHVzZXJuYW1lRmllbGQgPSBkb21haW5Db25maWcuc2VjcmV0c1VzZXJuYW1lRmllbGQgPz8gJ3VzZXJuYW1lJztcbiAgICBjb25zdCBzZWNyZXRGaWVsZCA9IGRvbWFpbkNvbmZpZy5zZWNyZXRzUGFzc3dvcmRGaWVsZCA/PyAnc2VjcmV0JztcbiAgICBpZiAoIXNlY3JldFt1c2VybmFtZUZpZWxkXSB8fCAhc2VjcmV0W3NlY3JldEZpZWxkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgbWFsZm9ybWVkIHNlY3JldCBzdHJpbmcgKFwiJHt1c2VybmFtZUZpZWxkfVwiIG9yIFwiJHtzZWNyZXRGaWVsZH1cIiBmaWVsZCBtaXNzaW5nKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7IFVzZXJuYW1lOiBzZWNyZXRbdXNlcm5hbWVGaWVsZF0sIFNlY3JldDogc2VjcmV0W3NlY3JldEZpZWxkXSB9O1xuICB9IGVsc2UgaWYgKGRvbWFpbkNvbmZpZy5lY3JSZXBvc2l0b3J5KSB7XG4gICAgY29uc3QgZWNyID0gYXdhaXQgYXdzLmVjckNsaWVudCh7IGFzc3VtZVJvbGVBcm46IGRvbWFpbkNvbmZpZy5hc3N1bWVSb2xlQXJuIH0pO1xuICAgIGNvbnN0IGVjckF1dGhEYXRhID0gYXdhaXQgb2J0YWluRWNyQ3JlZGVudGlhbHMoZWNyKTtcblxuICAgIHJldHVybiB7IFVzZXJuYW1lOiBlY3JBdXRoRGF0YS51c2VybmFtZSwgU2VjcmV0OiBlY3JBdXRoRGF0YS5wYXNzd29yZCB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBjcmVkZW50aWFsIHR5cGU6IG5vIHNlY3JldCBJRCBvciBFQ1IgcmVwbycpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvYnRhaW5FY3JDcmVkZW50aWFscyhlY3I6IElFQ1JDbGllbnQsIGV2ZW50RW1pdHRlcj86IEV2ZW50RW1pdHRlcikge1xuICBpZiAoZXZlbnRFbWl0dGVyKSB7XG4gICAgZXZlbnRFbWl0dGVyKEV2ZW50VHlwZS5ERUJVRywgJ0ZldGNoaW5nIEVDUiBhdXRob3JpemF0aW9uIHRva2VuJyk7XG4gIH1cblxuICBjb25zdCBhdXRoRGF0YSA9IChhd2FpdCBlY3IuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpLmF1dGhvcml6YXRpb25EYXRhIHx8IFtdO1xuICBpZiAoYXV0aERhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBhdXRob3JpemF0aW9uIGRhdGEgcmVjZWl2ZWQgZnJvbSBFQ1InKTtcbiAgfVxuICBjb25zdCB0b2tlbiA9IEJ1ZmZlci5mcm9tKGF1dGhEYXRhWzBdLmF1dGhvcml6YXRpb25Ub2tlbiEsICdiYXNlNjQnKS50b1N0cmluZygnYXNjaWknKTtcbiAgY29uc3QgW3VzZXJuYW1lLCBwYXNzd29yZF0gPSB0b2tlbi5zcGxpdCgnOicpO1xuICBpZiAoIXVzZXJuYW1lIHx8ICFwYXNzd29yZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBFQ1IgYXV0aERhdGEgZm9ybWF0Jyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHVzZXJuYW1lLFxuICAgIHBhc3N3b3JkLFxuICAgIGVuZHBvaW50OiBhdXRoRGF0YVswXS5wcm94eUVuZHBvaW50ISxcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DockerFactory = exports.Docker = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst docker_credentials_1 = require(\"./docker-credentials\");\nconst shell_1 = require(\"./shell\");\nconst util_1 = require(\"./util\");\nconst progress_1 = require(\"../progress\");\nvar InspectImageErrorCode;\n(function (InspectImageErrorCode) {\n InspectImageErrorCode[InspectImageErrorCode[\"Docker\"] = 1] = \"Docker\";\n InspectImageErrorCode[InspectImageErrorCode[\"Podman\"] = 125] = \"Podman\";\n})(InspectImageErrorCode || (InspectImageErrorCode = {}));\nclass Docker {\n constructor(eventEmitter, subprocessOutputDestination) {\n this.eventEmitter = eventEmitter;\n this.subprocessOutputDestination = subprocessOutputDestination;\n this.configDir = undefined;\n }\n /**\n * Whether an image with the given tag exists\n */\n async exists(tag) {\n try {\n await this.execute(['inspect', tag], {\n subprocessOutputDestination: 'ignore',\n });\n return true;\n }\n catch (e) {\n const error = e;\n /**\n * The only error we expect to be thrown will have this property and value.\n * If it doesn't, it's unrecognized so re-throw it.\n */\n if (error.code !== 'PROCESS_FAILED') {\n throw error;\n }\n /**\n * If we know the shell command above returned an error, check to see\n * if the exit code is one we know to actually mean that the image doesn't\n * exist.\n */\n switch (error.exitCode) {\n case InspectImageErrorCode.Docker:\n case InspectImageErrorCode.Podman:\n // Docker and Podman will return this exit code when an image doesn't exist, return false\n // context: https://github.com/aws/aws-cdk/issues/16209\n return false;\n default:\n // This is an error but it's not an exit code we recognize, throw.\n throw error;\n }\n }\n }\n async build(options) {\n const buildCommand = [\n 'build',\n ...flatten(Object.entries(options.buildArgs || {}).map(([k, v]) => ['--build-arg', `${k}=${v}`])),\n ...flatten(Object.entries(options.buildSecrets || {}).map(([k, v]) => ['--secret', `id=${k},${v}`])),\n ...(options.buildSsh ? ['--ssh', options.buildSsh] : []),\n '--tag',\n options.tag,\n ...(options.target ? ['--target', options.target] : []),\n ...(options.file ? ['--file', options.file] : []),\n ...(options.networkMode ? ['--network', options.networkMode] : []),\n ...(options.platform ? ['--platform', options.platform] : []),\n ...(options.outputs ? options.outputs.map((output) => [`--output=${output}`]) : []),\n ...(options.cacheFrom\n ? [\n ...options.cacheFrom\n .map((cacheFrom) => ['--cache-from', this.cacheOptionToFlag(cacheFrom)])\n .flat(),\n ]\n : []),\n ...(options.cacheTo ? ['--cache-to', this.cacheOptionToFlag(options.cacheTo)] : []),\n ...(options.cacheDisabled ? ['--no-cache'] : []),\n '.',\n ];\n await this.execute(buildCommand, {\n cwd: options.directory,\n subprocessOutputDestination: this.subprocessOutputDestination,\n env: {\n BUILDX_NO_DEFAULT_ATTESTATIONS: '1', // Docker Build adds provenance attestations by default that confuse cdk-assets\n },\n });\n }\n /**\n * Get credentials from ECR and run docker login\n */\n async login(ecr) {\n const credentials = await (0, docker_credentials_1.obtainEcrCredentials)(ecr, this.eventEmitter);\n // Use --password-stdin otherwise docker will complain. Loudly.\n await this.execute(['login', '--username', credentials.username, '--password-stdin', credentials.endpoint.replace(/^https?:\\/\\/|\\/$/g, '')], {\n input: credentials.password,\n // Need to ignore otherwise Docker will complain\n // 'WARNING! Your password will be stored unencrypted'\n // doesn't really matter since it's a token.\n subprocessOutputDestination: 'ignore',\n });\n }\n async tag(sourceTag, targetTag) {\n await this.execute(['tag', sourceTag, targetTag]);\n }\n async push(options) {\n await this.execute(['push', options.tag], {\n subprocessOutputDestination: this.subprocessOutputDestination,\n });\n }\n /**\n * If a CDK Docker Credentials file exists, creates a new Docker config directory.\n * Sets up `docker-credential-cdk-assets` to be the credential helper for each domain in the CDK config.\n * All future commands (e.g., `build`, `push`) will use this config.\n *\n * See https://docs.docker.com/engine/reference/commandline/login/#credential-helpers for more details on cred helpers.\n *\n * @returns true if CDK config was found and configured, false otherwise\n */\n configureCdkCredentials() {\n const config = (0, docker_credentials_1.cdkCredentialsConfig)();\n if (!config) {\n return false;\n }\n this.configDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdkDockerConfig'));\n const domains = Object.keys(config.domainCredentials);\n const credHelpers = domains.reduce((map, domain) => {\n map[domain] = 'cdk-assets'; // Use docker-credential-cdk-assets for this domain\n return map;\n }, {});\n fs.writeFileSync(path.join(this.configDir, 'config.json'), JSON.stringify({ credHelpers }), {\n encoding: 'utf-8',\n });\n return true;\n }\n /**\n * Removes any configured Docker config directory.\n * All future commands (e.g., `build`, `push`) will use the default config.\n *\n * This is useful after calling `configureCdkCredentials` to reset to default credentials.\n */\n resetAuthPlugins() {\n this.configDir = undefined;\n }\n async execute(args, options = {}) {\n const configArgs = this.configDir ? ['--config', this.configDir] : [];\n const pathToCdkAssets = path.resolve(__dirname, '..', '..', 'bin');\n const shellEventPublisher = (0, progress_1.shellEventPublisherFromEventEmitter)(this.eventEmitter);\n try {\n await (0, shell_1.shell)([getDockerCmd(), ...configArgs, ...args], {\n ...options,\n shellEventPublisher: shellEventPublisher,\n env: {\n ...process.env,\n ...options.env,\n PATH: `${pathToCdkAssets}${path.delimiter}${options.env?.PATH ?? process.env.PATH}`,\n },\n });\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n throw new Error(`Failed to find and execute '${getDockerCmd()}' while attempting to build a container asset. Please install '${getDockerCmd()}' and try again. (Or set the 'CDK_DOCKER ' environment variable to choose a different compatible container client.)`);\n }\n throw e;\n }\n }\n cacheOptionToFlag(option) {\n let flag = `type=${option.type}`;\n if (option.params) {\n flag +=\n ',' +\n Object.entries(option.params)\n .map(([k, v]) => `${k}=${v}`)\n .join(',');\n }\n return flag;\n }\n}\nexports.Docker = Docker;\n/**\n * Helps get appropriately configured Docker instances during the container\n * image publishing process.\n */\nclass DockerFactory {\n constructor() {\n this.enterLoggedInDestinationsCriticalSection = (0, util_1.createCriticalSection)();\n this.loggedInDestinations = new Set();\n }\n /**\n * Gets a Docker instance for building images.\n */\n async forBuild(options) {\n const docker = new Docker(options.eventEmitter, options.subprocessOutputDestination);\n // Default behavior is to login before build so that the Dockerfile can reference images in the ECR repo\n // However, if we're in a pipelines environment (for example),\n // we may have alternative credentials to the default ones to use for the build itself.\n // If the special config file is present, delay the login to the default credentials until the push.\n // If the config file is present, we will configure and use those credentials for the build.\n let cdkDockerCredentialsConfigured = docker.configureCdkCredentials();\n if (!cdkDockerCredentialsConfigured) {\n await this.loginOncePerDestination(docker, options);\n }\n return docker;\n }\n /**\n * Gets a Docker instance for pushing images to ECR.\n */\n async forEcrPush(options) {\n const docker = new Docker(options.eventEmitter, options.subprocessOutputDestination);\n await this.loginOncePerDestination(docker, options);\n return docker;\n }\n async loginOncePerDestination(docker, options) {\n // Changes: 012345678910.dkr.ecr.us-west-2.amazonaws.com/tagging-test\n // To this: 012345678910.dkr.ecr.us-west-2.amazonaws.com\n const repositoryDomain = options.repoUri.split('/')[0];\n // Ensure one-at-a-time access to loggedInDestinations.\n await this.enterLoggedInDestinationsCriticalSection(async () => {\n if (this.loggedInDestinations.has(repositoryDomain)) {\n return;\n }\n await docker.login(options.ecr);\n this.loggedInDestinations.add(repositoryDomain);\n });\n }\n}\nexports.DockerFactory = DockerFactory;\nfunction getDockerCmd() {\n return process.env.CDK_DOCKER ?? 'docker';\n}\nfunction flatten(x) {\n return Array.prototype.concat([], ...x);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZEQUFrRjtBQUVsRixtQ0FBZ0M7QUFDaEMsaUNBQStDO0FBSS9DLDBDQUFrRTtBQW9DbEUsSUFBSyxxQkFHSjtBQUhELFdBQUsscUJBQXFCO0lBQ3hCLHFFQUFVLENBQUE7SUFDVix1RUFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhJLHFCQUFxQixLQUFyQixxQkFBcUIsUUFHekI7QUFPRCxNQUFhLE1BQU07SUFHakIsWUFDbUIsWUFBMEIsRUFDMUIsMkJBQXdEO1FBRHhELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFKbkUsY0FBUyxHQUF1QixTQUFTLENBQUM7SUFNbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXO1FBQzdCLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsMkJBQTJCLEVBQUUsUUFBUTthQUN0QyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxHQUF1QixDQUFDLENBQUM7WUFFcEM7OztlQUdHO1lBQ0gsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVEOzs7O2VBSUc7WUFDSCxRQUFRLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLEtBQUsscUJBQXFCLENBQUMsTUFBTTtvQkFDL0IseUZBQXlG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QUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCx1REFBdUQ7UUFDdkQsTUFBTSxJQUFJLENBQUMsd0NBQXdDLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDN0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDcEQsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQS9DRCxzQ0ErQ0M7QUFFRCxTQUFTLFlBQVk7SUFDbkIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFDLENBQWE7SUFDNUIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGNka0NyZWRlbnRpYWxzQ29uZmlnLCBvYnRhaW5FY3JDcmVkZW50aWFscyB9IGZyb20gJy4vZG9ja2VyLWNyZWRlbnRpYWxzJztcbmltcG9ydCB0eXBlIHsgU2hlbGxPcHRpb25zLCBQcm9jZXNzRmFpbGVkRXJyb3IgfSBmcm9tICcuL3NoZWxsJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi9zaGVsbCc7XG5pbXBvcnQgeyBjcmVhdGVDcml0aWNhbFNlY3Rpb24gfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJRUNSQ2xpZW50IH0gZnJvbSAnLi4vYXdzJztcbmltcG9ydCB0eXBlIHsgU3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uIH0gZnJvbSAnLi9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9wcm9ncmVzcyc7XG5cbmludGVyZmFjZSBCdWlsZE9wdGlvbnMge1xuICByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGFnIHRoZSBpbWFnZSB3aXRoIGEgZ2l2ZW4gcmVwb05hbWU6dGFnIGNvbWJpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSB0YWc6IHN0cmluZztcbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nO1xuICByZWFkb25seSBidWlsZEFyZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICByZWFkb25seSBidWlsZFNzaD86IHN0cmluZztcbiAgcmVhZG9ubHkgbmV0d29ya01vZGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXRzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGNhY2hlRnJvbT86IERvY2tlckNhY2hlT3B0aW9uW107XG4gIHJlYWRvbmx5IGNhY2hlVG8/OiBEb2NrZXJDYWNoZU9wdGlvbjtcbiAgcmVhZG9ubHkgY2FjaGVEaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQdXNoT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckNyZWRlbnRpYWxzQ29uZmlnIHtcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBkb21haW5DcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgRG9ja2VyRG9tYWluQ3JlZGVudGlhbHM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckRvbWFpbkNyZWRlbnRpYWxzIHtcbiAgcmVhZG9ubHkgc2VjcmV0c01hbmFnZXJTZWNyZXRJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZWNyUmVwb3NpdG9yeT86IHN0cmluZztcbn1cblxuZW51bSBJbnNwZWN0SW1hZ2VFcnJvckNvZGUge1xuICBEb2NrZXIgPSAxLFxuICBQb2RtYW4gPSAxMjUsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ2FjaGVPcHRpb24ge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXIge1xuICBwcml2YXRlIGNvbmZpZ0Rpcjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBhbiBpbWFnZSB3aXRoIHRoZSBnaXZlbiB0YWcgZXhpc3RzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhpc3RzKHRhZzogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShbJ2luc3BlY3QnLCB0YWddLCB7XG4gICAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgY29uc3QgZXJyb3I6IFByb2Nlc3NGYWlsZWRFcnJvciA9IGU7XG5cbiAgICAgIC8qKlxuICAgICAgICogVGhlIG9ubHkgZXJyb3Igd2UgZXhwZWN0IHRvIGJlIHRocm93biB3aWxsIGhhdmUgdGhpcyBwcm9wZXJ0eSBhbmQgdmFsdWUuXG4gICAgICAgKiBJZiBpdCBkb2Vzbid0LCBpdCdzIHVucmVjb2duaXplZCBzbyByZS10aHJvdyBpdC5cbiAgICAgICAqL1xuICAgICAgaWYgKGVycm9yLmNvZGUgIT09ICdQUk9DRVNTX0ZBSUxFRCcpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogSWYgd2Uga25vdyB0aGUgc2hlbGwgY29tbWFuZCBhYm92ZSByZXR1cm5lZCBhbiBlcnJvciwgY2hlY2sgdG8gc2VlXG4gICAgICAgKiBpZiB0aGUgZXhpdCBjb2RlIGlzIG9uZSB3ZSBrbm93IHRvIGFjdHVhbGx5IG1lYW4gdGhhdCB0aGUgaW1hZ2UgZG9lc24ndFxuICAgICAgICogZXhpc3QuXG4gICAgICAgKi9cbiAgICAgIHN3aXRjaCAoZXJyb3IuZXhpdENvZGUpIHtcbiAgICAgICAgY2FzZSBJbnNwZWN0SW1hZ2VFcnJvckNvZGUuRG9ja2VyOlxuICAgICAgICBjYXNlIEluc3BlY3RJbWFnZUVycm9yQ29kZS5Qb2RtYW46XG4gICAgICAgICAgLy8gRG9ja2VyIGFuZCBQb2RtYW4gd2lsbCByZXR1cm4gdGhpcyBleGl0IGNvZGUgd2hlbiBhbiBpbWFnZSBkb2Vzbid0IGV4aXN0LCByZXR1cm4gZmFsc2VcbiAgICAgICAgICAvLyBjb250ZXh0OiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE2MjA5XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIFRoaXMgaXMgYW4gZXJyb3IgYnV0IGl0J3Mgbm90IGFuIGV4aXQgY29kZSB3ZSByZWNvZ25pemUsIHRocm93LlxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMpIHtcbiAgICBjb25zdCBidWlsZENvbW1hbmQgPSBbXG4gICAgICAnYnVpbGQnLFxuICAgICAgLi4uZmxhdHRlbihcbiAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0aW9ucy5idWlsZEFyZ3MgfHwge30pLm1hcCgoW2ssIHZdKSA9PiBbJy0tYnVpbGQtYXJnJywgYCR7a309JHt2fWBdKSxcbiAgICAgICksXG4gICAgICAuLi5mbGF0dGVuKFxuICAgICAgICBPYmplY3QuZW50cmllcyhvcHRpb25zLmJ1aWxkU2VjcmV0cyB8fCB7fSkubWFwKChbaywgdl0pID0+IFsnLS1zZWNyZXQnLCBgaWQ9JHtrfSwke3Z9YF0pLFxuICAgICAgKSxcbiAgICAgIC4uLihvcHRpb25zLmJ1aWxkU3NoID8gWyctLXNzaCcsIG9wdGlvbnMuYnVpbGRTc2hdIDogW10pLFxuICAgICAgJy0tdGFnJyxcbiAgICAgIG9wdGlvbnMudGFnLFxuICAgICAgLi4uKG9wdGlvbnMudGFyZ2V0ID8gWyctLXRhcmdldCcsIG9wdGlvbnMudGFyZ2V0XSA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLmZpbGUgPyBbJy0tZmlsZScsIG9wdGlvbnMuZmlsZV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5uZXR3b3JrTW9kZSA/IFsnLS1uZXR3b3JrJywgb3B0aW9ucy5uZXR3b3JrTW9kZV0gOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5wbGF0Zm9ybSA/IFsnLS1wbGF0Zm9ybScsIG9wdGlvbnMucGxhdGZvcm1dIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMub3V0cHV0cyA/IG9wdGlvbnMub3V0cHV0cy5tYXAoKG91dHB1dCkgPT4gW2AtLW91dHB1dD0ke291dHB1dH1gXSkgOiBbXSksXG4gICAgICAuLi4ob3B0aW9ucy5jYWNoZUZyb21cbiAgICAgICAgPyBbXG4gICAgICAgICAgLi4ub3B0aW9ucy5jYWNoZUZyb21cbiAgICAgICAgICAgIC5tYXAoKGNhY2hlRnJvbSkgPT4gWyctLWNhY2hlLWZyb20nLCB0aGlzLmNhY2hlT3B0aW9uVG9GbGFnKGNhY2hlRnJvbSldKVxuICAgICAgICAgICAgLmZsYXQoKSxcbiAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLihvcHRpb25zLmNhY2hlVG8gPyBbJy0tY2FjaGUtdG8nLCB0aGlzLmNhY2hlT3B0aW9uVG9GbGFnKG9wdGlvbnMuY2FjaGVUbyldIDogW10pLFxuICAgICAgLi4uKG9wdGlvbnMuY2FjaGVEaXNhYmxlZCA/IFsnLS1uby1jYWNoZSddIDogW10pLFxuICAgICAgJy4nLFxuICAgIF07XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKGJ1aWxkQ29tbWFuZCwge1xuICAgICAgY3dkOiBvcHRpb25zLmRpcmVjdG9yeSxcbiAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogdGhpcy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24sXG4gICAgICBlbnY6IHtcbiAgICAgICAgQlVJTERYX05PX0RFRkFVTFRfQVRURVNUQVRJT05TOiAnMScsIC8vIERvY2tlciBCdWlsZCBhZGRzIHByb3ZlbmFuY2UgYXR0ZXN0YXRpb25zIGJ5IGRlZmF1bHQgdGhhdCBjb25mdXNlIGNkay1hc3NldHNcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNyZWRlbnRpYWxzIGZyb20gRUNSIGFuZCBydW4gZG9ja2VyIGxvZ2luXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9naW4oZWNyOiBJRUNSQ2xpZW50KSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBvYnRhaW5FY3JDcmVkZW50aWFscyhlY3IsIHRoaXMuZXZlbnRFbWl0dGVyKTtcblxuICAgIC8vIFVzZSAtLXBhc3N3b3JkLXN0ZGluIG90aGVyd2lzZSBkb2NrZXIgd2lsbCBjb21wbGFpbi4gTG91ZGx5LlxuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShcbiAgICAgIFsnbG9naW4nLCAnLS11c2VybmFtZScsIGNyZWRlbnRpYWxzLnVzZXJuYW1lLCAnLS1wYXNzd29yZC1zdGRpbicsIGNyZWRlbnRpYWxzLmVuZHBvaW50LnJlcGxhY2UoL15odHRwcz86XFwvXFwvfFxcLyQvZywgJycpXSxcbiAgICAgIHtcbiAgICAgICAgaW5wdXQ6IGNyZWRlbnRpYWxzLnBhc3N3b3JkLFxuXG4gICAgICAgIC8vIE5lZWQgdG8gaWdub3JlIG90aGVyd2lzZSBEb2NrZXIgd2lsbCBjb21wbGFpblxuICAgICAgICAvLyAnV0FSTklORyEgWW91ciBwYXNzd29yZCB3aWxsIGJlIHN0b3JlZCB1bmVuY3J5cHRlZCdcbiAgICAgICAgLy8gZG9lc24ndCByZWFsbHkgbWF0dGVyIHNpbmNlIGl0J3MgYSB0b2tlbi5cbiAgICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiAnaWdub3JlJyxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0YWcoc291cmNlVGFnOiBzdHJpbmcsIHRhcmdldFRhZzogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFsndGFnJywgc291cmNlVGFnLCB0YXJnZXRUYWddKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdXNoKG9wdGlvbnM6IFB1c2hPcHRpb25zKSB7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKFsncHVzaCcsIG9wdGlvbnMudGFnXSwge1xuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBhIENESyBEb2NrZXIgQ3JlZGVudGlhbHMgZmlsZSBleGlzdHMsIGNyZWF0ZXMgYSBuZXcgRG9ja2VyIGNvbmZpZyBkaXJlY3RvcnkuXG4gICAqIFNldHMgdXAgYGRvY2tlci1jcmVkZW50aWFsLWNkay1hc3NldHNgIHRvIGJlIHRoZSBjcmVkZW50aWFsIGhlbHBlciBmb3IgZWFjaCBkb21haW4gaW4gdGhlIENESyBjb25maWcuXG4gICAqIEFsbCBmdXR1cmUgY29tbWFuZHMgKGUuZy4sIGBidWlsZGAsIGBwdXNoYCkgd2lsbCB1c2UgdGhpcyBjb25maWcuXG4gICAqXG4gICAqIFNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2xvZ2luLyNjcmVkZW50aWFsLWhlbHBlcnMgZm9yIG1vcmUgZGV0YWlscyBvbiBjcmVkIGhlbHBlcnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgQ0RLIGNvbmZpZyB3YXMgZm91bmQgYW5kIGNvbmZpZ3VyZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGNvbmZpZ3VyZUNka0NyZWRlbnRpYWxzKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNka0NyZWRlbnRpYWxzQ29uZmlnKCk7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ0RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nka0RvY2tlckNvbmZpZycpKTtcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBPYmplY3Qua2V5cyhjb25maWcuZG9tYWluQ3JlZGVudGlhbHMpO1xuICAgIGNvbnN0IGNyZWRIZWxwZXJzID0gZG9tYWlucy5yZWR1Y2UoKG1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgZG9tYWluKSA9PiB7XG4gICAgICBtYXBbZG9tYWluXSA9ICdjZGstYXNzZXRzJzsgLy8gVXNlIGRvY2tlci1jcmVkZW50aWFsLWNkay1hc3NldHMgZm9yIHRoaXMgZG9tYWluXG4gICAgICByZXR1cm4gbWFwO1xuICAgIH0sIHt9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbih0aGlzLmNvbmZpZ0RpciwgJ2NvbmZpZy5qc29uJyksIEpTT04uc3RyaW5naWZ5KHsgY3JlZEhlbHBlcnMgfSksIHtcbiAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhbnkgY29uZmlndXJlZCBEb2NrZXIgY29uZmlnIGRpcmVjdG9yeS5cbiAgICogQWxsIGZ1dHVyZSBjb21tYW5kcyAoZS5nLiwgYGJ1aWxkYCwgYHB1c2hgKSB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb25maWcuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIGFmdGVyIGNhbGxpbmcgYGNvbmZpZ3VyZUNka0NyZWRlbnRpYWxzYCB0byByZXNldCB0byBkZWZhdWx0IGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgcHVibGljIHJlc2V0QXV0aFBsdWdpbnMoKSB7XG4gICAgdGhpcy5jb25maWdEaXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGUoYXJnczogc3RyaW5nW10sIG9wdGlvbnM6IE9taXQ8U2hlbGxPcHRpb25zLCAnc2hlbGxFdmVudFB1Ymxpc2hlcic+ID0ge30pIHtcbiAgICBjb25zdCBjb25maWdBcmdzID0gdGhpcy5jb25maWdEaXIgPyBbJy0tY29uZmlnJywgdGhpcy5jb25maWdEaXJdIDogW107XG5cbiAgICBjb25zdCBwYXRoVG9DZGtBc3NldHMgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYmluJyk7XG5cbiAgICBjb25zdCBzaGVsbEV2ZW50UHVibGlzaGVyID0gc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIodGhpcy5ldmVudEVtaXR0ZXIpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzaGVsbChbZ2V0RG9ja2VyQ21kKCksIC4uLmNvbmZpZ0FyZ3MsIC4uLmFyZ3NdLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNoZWxsRXZlbnRQdWJsaXNoZXI6IHNoZWxsRXZlbnRQdWJsaXNoZXIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgICAgIC4uLm9wdGlvbnMuZW52LFxuICAgICAgICAgIFBBVEg6IGAke3BhdGhUb0Nka0Fzc2V0c30ke3BhdGguZGVsaW1pdGVyfSR7b3B0aW9ucy5lbnY/LlBBVEggPz8gcHJvY2Vzcy5lbnYuUEFUSH1gLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBmaW5kIGFuZCBleGVjdXRlICcke2dldERvY2tlckNtZCgpfScgd2hpbGUgYXR0ZW1wdGluZyB0byBidWlsZCBhIGNvbnRhaW5lciBhc3NldC4gUGxlYXNlIGluc3RhbGwgJyR7Z2V0RG9ja2VyQ21kKCl9JyBhbmQgdHJ5IGFnYWluLiAoT3Igc2V0IHRoZSAnQ0RLX0RPQ0tFUiAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGNob29zZSBhIGRpZmZlcmVudCBjb21wYXRpYmxlIGNvbnRhaW5lciBjbGllbnQuKWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FjaGVPcHRpb25Ub0ZsYWcob3B0aW9uOiBEb2NrZXJDYWNoZU9wdGlvbik6IHN0cmluZyB7XG4gICAgbGV0IGZsYWcgPSBgdHlwZT0ke29wdGlvbi50eXBlfWA7XG4gICAgaWYgKG9wdGlvbi5wYXJhbXMpIHtcbiAgICAgIGZsYWcgKz1cbiAgICAgICAgJywnICtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0aW9uLnBhcmFtcylcbiAgICAgICAgICAubWFwKChbaywgdl0pID0+IGAke2t9PSR7dn1gKVxuICAgICAgICAgIC5qb2luKCcsJyk7XG4gICAgfVxuICAgIHJldHVybiBmbGFnO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyRmFjdG9yeU9wdGlvbnMge1xuICByZWFkb25seSByZXBvVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVjcjogSUVDUkNsaWVudDtcbiAgcmVhZG9ubHkgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI7XG4gIHJlYWRvbmx5IHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogU3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uO1xufVxuXG4vKipcbiAqIEhlbHBzIGdldCBhcHByb3ByaWF0ZWx5IGNvbmZpZ3VyZWQgRG9ja2VyIGluc3RhbmNlcyBkdXJpbmcgdGhlIGNvbnRhaW5lclxuICogaW1hZ2UgcHVibGlzaGluZyBwcm9jZXNzLlxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VyRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50ZXJMb2dnZWRJbkRlc3RpbmF0aW9uc0NyaXRpY2FsU2VjdGlvbiA9IGNyZWF0ZUNyaXRpY2FsU2VjdGlvbigpO1xuICBwcml2YXRlIGxvZ2dlZEluRGVzdGluYXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBEb2NrZXIgaW5zdGFuY2UgZm9yIGJ1aWxkaW5nIGltYWdlcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBmb3JCdWlsZChvcHRpb25zOiBEb2NrZXJGYWN0b3J5T3B0aW9ucyk6IFByb21pc2U8RG9ja2VyPiB7XG4gICAgY29uc3QgZG9ja2VyID0gbmV3IERvY2tlcihvcHRpb25zLmV2ZW50RW1pdHRlciwgb3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24pO1xuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byBsb2dpbiBiZWZvcmUgYnVpbGQgc28gdGhhdCB0aGUgRG9ja2VyZmlsZSBjYW4gcmVmZXJlbmNlIGltYWdlcyBpbiB0aGUgRUNSIHJlcG9cbiAgICAvLyBIb3dldmVyLCBpZiB3ZSdyZSBpbiBhIHBpcGVsaW5lcyBlbnZpcm9ubWVudCAoZm9yIGV4YW1wbGUpLFxuICAgIC8vIHdlIG1heSBoYXZlIGFsdGVybmF0aXZlIGNyZWRlbnRpYWxzIHRvIHRoZSBkZWZhdWx0IG9uZXMgdG8gdXNlIGZvciB0aGUgYnVpbGQgaXRzZWxmLlxuICAgIC8vIElmIHRoZSBzcGVjaWFsIGNvbmZpZyBmaWxlIGlzIHByZXNlbnQsIGRlbGF5IHRoZSBsb2dpbiB0byB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyB1bnRpbCB0aGUgcHVzaC5cbiAgICAvLyBJZiB0aGUgY29uZmlnIGZpbGUgaXMgcHJlc2VudCwgd2Ugd2lsbCBjb25maWd1cmUgYW5kIHVzZSB0aG9zZSBjcmVkZW50aWFscyBmb3IgdGhlIGJ1aWxkLlxuICAgIGxldCBjZGtEb2NrZXJDcmVkZW50aWFsc0NvbmZpZ3VyZWQgPSBkb2NrZXIuY29uZmlndXJlQ2RrQ3JlZGVudGlhbHMoKTtcbiAgICBpZiAoIWNka0RvY2tlckNyZWRlbnRpYWxzQ29uZmlndXJlZCkge1xuICAgICAgYXdhaXQgdGhpcy5sb2dpbk9uY2VQZXJEZXN0aW5hdGlvbihkb2NrZXIsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2NrZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIERvY2tlciBpbnN0YW5jZSBmb3IgcHVzaGluZyBpbWFnZXMgdG8gRUNSLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZvckVjclB1c2gob3B0aW9uczogRG9ja2VyRmFjdG9yeU9wdGlvbnMpIHtcbiAgICBjb25zdCBkb2NrZXIgPSBuZXcgRG9ja2VyKG9wdGlvbnMuZXZlbnRFbWl0dGVyLCBvcHRpb25zLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbik7XG4gICAgYXdhaXQgdGhpcy5sb2dpbk9uY2VQZXJEZXN0aW5hdGlvbihkb2NrZXIsIG9wdGlvbnMpO1xuICAgIHJldHVybiBkb2NrZXI7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luT25jZVBlckRlc3RpbmF0aW9uKGRvY2tlcjogRG9ja2VyLCBvcHRpb25zOiBEb2NrZXJGYWN0b3J5T3B0aW9ucykge1xuICAgIC8vIENoYW5nZXM6IDAxMjM0NTY3ODkxMC5ka3IuZWNyLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tL3RhZ2dpbmctdGVzdFxuICAgIC8vIFRvIHRoaXM6IDAxMjM0NTY3ODkxMC5ka3IuZWNyLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tXG4gICAgY29uc3QgcmVwb3NpdG9yeURvbWFpbiA9IG9wdGlvbnMucmVwb1VyaS5zcGxpdCgnLycpWzBdO1xuXG4gICAgLy8gRW5zdXJlIG9uZS1hdC1hLXRpbWUgYWNjZXNzIHRvIGxvZ2dlZEluRGVzdGluYXRpb25zLlxuICAgIGF3YWl0IHRoaXMuZW50ZXJMb2dnZWRJbkRlc3RpbmF0aW9uc0NyaXRpY2FsU2VjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5sb2dnZWRJbkRlc3RpbmF0aW9ucy5oYXMocmVwb3NpdG9yeURvbWFpbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBkb2NrZXIubG9naW4ob3B0aW9ucy5lY3IpO1xuICAgICAgdGhpcy5sb2dnZWRJbkRlc3RpbmF0aW9ucy5hZGQocmVwb3NpdG9yeURvbWFpbik7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RG9ja2VyQ21kKCk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9jZXNzLmVudi5DREtfRE9DS0VSID8/ICdkb2NrZXInO1xufVxuXG5mdW5jdGlvbiBmbGF0dGVuKHg6IHN0cmluZ1tdW10pIHtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQoW10sIC4uLngpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pathExists = pathExists;\nexports.emptyDirSync = emptyDirSync;\nexports.rmRfSync = rmRfSync;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst pfs = fs.promises;\nasync function pathExists(pathName) {\n try {\n await pfs.stat(pathName);\n return true;\n }\n catch (e) {\n if (e.code !== 'ENOENT') {\n throw e;\n }\n return false;\n }\n}\nfunction emptyDirSync(dir) {\n fs.readdirSync(dir, { withFileTypes: true }).forEach((dirent) => {\n const fullPath = path.join(dir, dirent.name);\n if (dirent.isDirectory()) {\n emptyDirSync(fullPath);\n fs.rmdirSync(fullPath);\n }\n else {\n fs.unlinkSync(fullPath);\n }\n });\n}\nfunction rmRfSync(dir) {\n emptyDirSync(dir);\n fs.rmdirSync(dir);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZXh0cmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmcy1leHRyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGdDQVVDO0FBRUQsb0NBVUM7QUFFRCw0QkFHQztBQWhDRCx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7QUFFakIsS0FBSyxVQUFVLFVBQVUsQ0FBQyxRQUFnQjtJQUMvQyxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDOUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDekIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZCLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixRQUFRLENBQUMsR0FBVztJQUNsQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgcGZzID0gZnMucHJvbWlzZXM7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXRoRXhpc3RzKHBhdGhOYW1lOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBwZnMuc3RhdChwYXRoTmFtZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLmNvZGUgIT09ICdFTk9FTlQnKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5RGlyU3luYyhkaXI6IHN0cmluZykge1xuICBmcy5yZWFkZGlyU3luYyhkaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KS5mb3JFYWNoKChkaXJlbnQpID0+IHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGguam9pbihkaXIsIGRpcmVudC5uYW1lKTtcbiAgICBpZiAoZGlyZW50LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGVtcHR5RGlyU3luYyhmdWxsUGF0aCk7XG4gICAgICBmcy5ybWRpclN5bmMoZnVsbFBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmcy51bmxpbmtTeW5jKGZ1bGxQYXRoKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcm1SZlN5bmMoZGlyOiBzdHJpbmcpIHtcbiAgZW1wdHlEaXJTeW5jKGRpcik7XG4gIGZzLnJtZGlyU3luYyhkaXIpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.destinationToClientOptions = destinationToClientOptions;\nfunction destinationToClientOptions(destination) {\n return {\n assumeRoleArn: destination.assumeRoleArn,\n assumeRoleExternalId: destination.assumeRoleExternalId,\n assumeRoleAdditionalOptions: destination.assumeRoleAdditionalOptions,\n region: destination.region,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGllbnQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLGdFQU9DO0FBUEQsU0FBZ0IsMEJBQTBCLENBQUMsV0FBMkI7SUFDcEUsT0FBTztRQUNMLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYTtRQUN4QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsb0JBQW9CO1FBQ3RELDJCQUEyQixFQUFFLFdBQVcsQ0FBQywyQkFBMkI7UUFDcEUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNO0tBQzNCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBd3NEZXN0aW5hdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IENsaWVudE9wdGlvbnMgfSBmcm9tICcuLi8uLi9hd3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMoZGVzdGluYXRpb246IEF3c0Rlc3RpbmF0aW9uKTogQ2xpZW50T3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgYXNzdW1lUm9sZUFybjogZGVzdGluYXRpb24uYXNzdW1lUm9sZUFybixcbiAgICBhc3N1bWVSb2xlRXh0ZXJuYWxJZDogZGVzdGluYXRpb24uYXNzdW1lUm9sZUV4dGVybmFsSWQsXG4gICAgYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zOiBkZXN0aW5hdGlvbi5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgcmVnaW9uOiBkZXN0aW5hdGlvbi5yZWdpb24sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerImageAssetHandler = void 0;\nconst path = require(\"path\");\nconst client_options_1 = require(\"./client-options\");\nconst progress_1 = require(\"../../progress\");\nconst placeholders_1 = require(\"../placeholders\");\nconst shell_1 = require(\"../shell\");\nclass ContainerImageAssetHandler {\n constructor(workDir, asset, host, options) {\n this.workDir = workDir;\n this.asset = asset;\n this.host = host;\n this.options = options;\n }\n async build() {\n const initOnce = await this.initOnce();\n if (initOnce.destinationAlreadyExists) {\n return;\n }\n if (this.host.aborted) {\n return;\n }\n const dockerForBuilding = await this.host.dockerFactory.forBuild({\n repoUri: initOnce.repoUri,\n eventEmitter: (m) => this.host.emitMessage(progress_1.EventType.DEBUG, m),\n ecr: initOnce.ecr,\n subprocessOutputDestination: this.options.subprocessOutputDestination,\n });\n const builder = new ContainerImageBuilder(dockerForBuilding, this.workDir, this.asset, this.host);\n const localTagName = await builder.build();\n if (localTagName === undefined || this.host.aborted) {\n return;\n }\n if (this.host.aborted) {\n return;\n }\n await dockerForBuilding.tag(localTagName, initOnce.imageUri);\n }\n async isPublished() {\n try {\n const initOnce = await this.initOnce({ quiet: true });\n return initOnce.destinationAlreadyExists;\n }\n catch (e) {\n this.host.emitMessage(progress_1.EventType.DEBUG, `${e.message}`);\n }\n return false;\n }\n async publish() {\n const initOnce = await this.initOnce();\n if (initOnce.destinationAlreadyExists) {\n return;\n }\n if (this.host.aborted) {\n return;\n }\n const dockerForPushing = await this.host.dockerFactory.forEcrPush({\n repoUri: initOnce.repoUri,\n eventEmitter: this.host.emitMessage,\n ecr: initOnce.ecr,\n subprocessOutputDestination: this.options.subprocessOutputDestination,\n });\n if (this.host.aborted) {\n return;\n }\n this.host.emitMessage(progress_1.EventType.UPLOAD, `Push ${initOnce.imageUri}`);\n await dockerForPushing.push({\n tag: initOnce.imageUri,\n });\n }\n async initOnce(options = {}) {\n if (this.init) {\n return this.init;\n }\n const destination = await (0, placeholders_1.replaceAwsPlaceholders)(this.asset.destination, this.host.aws);\n const ecr = await this.host.aws.ecrClient({\n ...(0, client_options_1.destinationToClientOptions)(destination),\n quiet: options.quiet,\n });\n const account = async () => (await this.host.aws.discoverCurrentAccount())?.accountId;\n const repoUri = await repositoryUri(ecr, destination.repositoryName);\n if (!repoUri) {\n throw new Error(`No ECR repository named '${destination.repositoryName}' in account ${await account()}. Is this account bootstrapped?`);\n }\n const imageUri = `${repoUri}:${destination.imageTag}`;\n this.init = {\n imageUri,\n ecr,\n repoUri,\n destinationAlreadyExists: await this.destinationAlreadyExists(ecr, destination, imageUri),\n };\n return this.init;\n }\n /**\n * Check whether the image already exists in the ECR repo\n *\n * Use the fields from the destination to do the actual check. The imageUri\n * should correspond to that, but is only used to print Docker image location\n * for user benefit (the format is slightly different).\n */\n async destinationAlreadyExists(ecr, destination, imageUri) {\n this.host.emitMessage(progress_1.EventType.CHECK, `Check ${imageUri}`);\n if (await imageExists(ecr, destination.repositoryName, destination.imageTag)) {\n this.host.emitMessage(progress_1.EventType.FOUND, `Found ${imageUri}`);\n return true;\n }\n return false;\n }\n}\nexports.ContainerImageAssetHandler = ContainerImageAssetHandler;\nclass ContainerImageBuilder {\n constructor(docker, workDir, asset, host) {\n this.docker = docker;\n this.workDir = workDir;\n this.asset = asset;\n this.host = host;\n }\n async build() {\n return this.asset.source.executable\n ? this.buildExternalAsset(this.asset.source.executable)\n : this.buildDirectoryAsset();\n }\n /**\n * Build a (local) Docker asset from a directory with a Dockerfile\n *\n * Tags under a deterministic, unique, local identifier wich will skip\n * the build if it already exists.\n */\n async buildDirectoryAsset() {\n const localTagName = `cdkasset-${this.asset.id.assetId.toLowerCase()}`;\n if (!(await this.isImageCached(localTagName))) {\n if (this.host.aborted) {\n return undefined;\n }\n await this.buildImage(localTagName);\n }\n return localTagName;\n }\n /**\n * Build a (local) Docker asset by running an external command\n *\n * External command is responsible for deduplicating the build if possible,\n * and is expected to return the generated image identifier on stdout.\n */\n async buildExternalAsset(executable, cwd) {\n const assetPath = cwd ?? this.workDir;\n this.host.emitMessage(progress_1.EventType.BUILD, `Building Docker image using command '${executable}'`);\n if (this.host.aborted) {\n return undefined;\n }\n const shellEventPublisher = (0, progress_1.shellEventPublisherFromEventEmitter)(this.host.emitMessage);\n return (await (0, shell_1.shell)(executable, {\n cwd: assetPath,\n shellEventPublisher,\n subprocessOutputDestination: 'ignore',\n })).trim();\n }\n async buildImage(localTagName) {\n const source = this.asset.source;\n if (!source.directory) {\n throw new Error(`'directory' is expected in the DockerImage asset source, got: ${JSON.stringify(source)}`);\n }\n const fullPath = path.resolve(this.workDir, source.directory);\n this.host.emitMessage(progress_1.EventType.BUILD, `Building Docker image at ${fullPath}`);\n await this.docker.build({\n directory: fullPath,\n tag: localTagName,\n buildArgs: source.dockerBuildArgs,\n buildSecrets: source.dockerBuildSecrets,\n buildSsh: source.dockerBuildSsh,\n target: source.dockerBuildTarget,\n file: source.dockerFile,\n networkMode: source.networkMode,\n platform: source.platform,\n outputs: source.dockerOutputs,\n cacheFrom: source.cacheFrom,\n cacheTo: source.cacheTo,\n cacheDisabled: source.cacheDisabled,\n });\n }\n async isImageCached(localTagName) {\n if (await this.docker.exists(localTagName)) {\n this.host.emitMessage(progress_1.EventType.CACHED, `Cached ${localTagName}`);\n return true;\n }\n return false;\n }\n}\nasync function imageExists(ecr, repositoryName, imageTag) {\n try {\n await ecr.describeImages({\n repositoryName,\n imageIds: [{ imageTag }],\n });\n return true;\n }\n catch (e) {\n if (e.name !== 'ImageNotFoundException') {\n throw e;\n }\n return false;\n }\n}\n/**\n * Return the URI for the repository with the given name\n *\n * Returns undefined if the repository does not exist.\n */\nasync function repositoryUri(ecr, repositoryName) {\n try {\n const response = await ecr.describeRepositories({\n repositoryNames: [repositoryName],\n });\n return (response.repositories || [])[0]?.repositoryUri;\n }\n catch (e) {\n if (e.name !== 'RepositoryNotFoundException') {\n throw e;\n }\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRhaW5lci1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLHFEQUE4RDtBQUc5RCw2Q0FBZ0Y7QUFHaEYsa0RBQXlEO0FBQ3pELG9DQUFpQztBQVNqQyxNQUFhLDBCQUEwQjtJQUdyQyxZQUNtQixPQUFlLEVBQ2YsS0FBK0IsRUFDL0IsSUFBa0IsRUFDbEIsT0FBd0I7UUFIeEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7SUFFM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLElBQUksUUFBUSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQy9ELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixZQUFZLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN0RSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkI7U0FDdEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FDdkMsaUJBQWlC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QUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsb0JBQW9CLENBQUM7WUFDOUMsZUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztJQUN6RCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssNkJBQTZCLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IERvY2tlckltYWdlRGVzdGluYXRpb24gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgZGVzdGluYXRpb25Ub0NsaWVudE9wdGlvbnMgfSBmcm9tICcuL2NsaWVudC1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJRUNSQ2xpZW50IH0gZnJvbSAnLi4vLi4vYXdzJztcbmltcG9ydCB7IEV2ZW50VHlwZSwgc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9wcm9ncmVzcyc7XG5pbXBvcnQgdHlwZSB7IElBc3NldEhhbmRsZXIsIElIYW5kbGVySG9zdCwgSUhhbmRsZXJPcHRpb25zIH0gZnJvbSAnLi4vYXNzZXQtaGFuZGxlcic7XG5pbXBvcnQgdHlwZSB7IERvY2tlciB9IGZyb20gJy4uL2RvY2tlcic7XG5pbXBvcnQgeyByZXBsYWNlQXdzUGxhY2Vob2xkZXJzIH0gZnJvbSAnLi4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG5pbnRlcmZhY2UgQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXJJbml0IHtcbiAgcmVhZG9ubHkgZWNyOiBJRUNSQ2xpZW50O1xuICByZWFkb25seSByZXBvVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlVXJpOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0czogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckltYWdlQXNzZXRIYW5kbGVyIGltcGxlbWVudHMgSUFzc2V0SGFuZGxlciB7XG4gIHByaXZhdGUgaW5pdD86IENvbnRhaW5lckltYWdlQXNzZXRIYW5kbGVySW5pdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBJSGFuZGxlckhvc3QsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBJSGFuZGxlck9wdGlvbnMsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSgpO1xuXG4gICAgaWYgKGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NrZXJGb3JCdWlsZGluZyA9IGF3YWl0IHRoaXMuaG9zdC5kb2NrZXJGYWN0b3J5LmZvckJ1aWxkKHtcbiAgICAgIHJlcG9Vcmk6IGluaXRPbmNlLnJlcG9VcmksXG4gICAgICBldmVudEVtaXR0ZXI6IChtOiBzdHJpbmcpID0+IHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIG0pLFxuICAgICAgZWNyOiBpbml0T25jZS5lY3IsXG4gICAgICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb246IHRoaXMub3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IENvbnRhaW5lckltYWdlQnVpbGRlcihcbiAgICAgIGRvY2tlckZvckJ1aWxkaW5nLFxuICAgICAgdGhpcy53b3JrRGlyLFxuICAgICAgdGhpcy5hc3NldCxcbiAgICAgIHRoaXMuaG9zdCxcbiAgICApO1xuICAgIGNvbnN0IGxvY2FsVGFnTmFtZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIGlmIChsb2NhbFRhZ05hbWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBkb2NrZXJGb3JCdWlsZGluZy50YWcobG9jYWxUYWdOYW1lLCBpbml0T25jZS5pbWFnZVVyaSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaXNQdWJsaXNoZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluaXRPbmNlID0gYXdhaXQgdGhpcy5pbml0T25jZSh7IHF1aWV0OiB0cnVlIH0pO1xuICAgICAgcmV0dXJuIGluaXRPbmNlLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cztcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5pdE9uY2UgPSBhd2FpdCB0aGlzLmluaXRPbmNlKCk7XG5cbiAgICBpZiAoaW5pdE9uY2UuZGVzdGluYXRpb25BbHJlYWR5RXhpc3RzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmhvc3QuYWJvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRvY2tlckZvclB1c2hpbmcgPSBhd2FpdCB0aGlzLmhvc3QuZG9ja2VyRmFjdG9yeS5mb3JFY3JQdXNoKHtcbiAgICAgIHJlcG9Vcmk6IGluaXRPbmNlLnJlcG9VcmksXG4gICAgICBldmVudEVtaXR0ZXI6IHRoaXMuaG9zdC5lbWl0TWVzc2FnZSxcbiAgICAgIGVjcjogaW5pdE9uY2UuZWNyLFxuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uOiB0aGlzLm9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5VUExPQUQsIGBQdXNoICR7aW5pdE9uY2UuaW1hZ2VVcml9YCk7XG4gICAgYXdhaXQgZG9ja2VyRm9yUHVzaGluZy5wdXNoKHtcbiAgICAgIHRhZzogaW5pdE9uY2UuaW1hZ2VVcmksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRPbmNlKFxuICAgIG9wdGlvbnM6IHsgcXVpZXQ/OiBib29sZWFuIH0gPSB7fSxcbiAgKTogUHJvbWlzZTxDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlckluaXQ+IHtcbiAgICBpZiAodGhpcy5pbml0KSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0O1xuICAgIH1cblxuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBlY3IgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLmVjckNsaWVudCh7XG4gICAgICAuLi5kZXN0aW5hdGlvblRvQ2xpZW50T3B0aW9ucyhkZXN0aW5hdGlvbiksXG4gICAgICBxdWlldDogb3B0aW9ucy5xdWlldCxcbiAgICB9KTtcbiAgICBjb25zdCBhY2NvdW50ID0gYXN5bmMgKCkgPT4gKGF3YWl0IHRoaXMuaG9zdC5hd3MuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpKT8uYWNjb3VudElkO1xuXG4gICAgY29uc3QgcmVwb1VyaSA9IGF3YWl0IHJlcG9zaXRvcnlVcmkoZWNyLCBkZXN0aW5hdGlvbi5yZXBvc2l0b3J5TmFtZSk7XG4gICAgaWYgKCFyZXBvVXJpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBFQ1IgcmVwb3NpdG9yeSBuYW1lZCAnJHtkZXN0aW5hdGlvbi5yZXBvc2l0b3J5TmFtZX0nIGluIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9LiBJcyB0aGlzIGFjY291bnQgYm9vdHN0cmFwcGVkP2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlVXJpID0gYCR7cmVwb1VyaX06JHtkZXN0aW5hdGlvbi5pbWFnZVRhZ31gO1xuXG4gICAgdGhpcy5pbml0ID0ge1xuICAgICAgaW1hZ2VVcmksXG4gICAgICBlY3IsXG4gICAgICByZXBvVXJpLFxuICAgICAgZGVzdGluYXRpb25BbHJlYWR5RXhpc3RzOiBhd2FpdCB0aGlzLmRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cyhlY3IsIGRlc3RpbmF0aW9uLCBpbWFnZVVyaSksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmluaXQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB0aGUgaW1hZ2UgYWxyZWFkeSBleGlzdHMgaW4gdGhlIEVDUiByZXBvXG4gICAqXG4gICAqIFVzZSB0aGUgZmllbGRzIGZyb20gdGhlIGRlc3RpbmF0aW9uIHRvIGRvIHRoZSBhY3R1YWwgY2hlY2suIFRoZSBpbWFnZVVyaVxuICAgKiBzaG91bGQgY29ycmVzcG9uZCB0byB0aGF0LCBidXQgaXMgb25seSB1c2VkIHRvIHByaW50IERvY2tlciBpbWFnZSBsb2NhdGlvblxuICAgKiBmb3IgdXNlciBiZW5lZml0ICh0aGUgZm9ybWF0IGlzIHNsaWdodGx5IGRpZmZlcmVudCkuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGRlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cyhcbiAgICBlY3I6IElFQ1JDbGllbnQsXG4gICAgZGVzdGluYXRpb246IERvY2tlckltYWdlRGVzdGluYXRpb24sXG4gICAgaW1hZ2VVcmk6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DSEVDSywgYENoZWNrICR7aW1hZ2VVcml9YCk7XG4gICAgaWYgKGF3YWl0IGltYWdlRXhpc3RzKGVjciwgZGVzdGluYXRpb24ucmVwb3NpdG9yeU5hbWUsIGRlc3RpbmF0aW9uLmltYWdlVGFnKSkge1xuICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5GT1VORCwgYEZvdW5kICR7aW1hZ2VVcml9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgQ29udGFpbmVySW1hZ2VCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2NrZXI6IERvY2tlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBJSGFuZGxlckhvc3QsXG4gICkge1xuICB9XG5cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZVxuICAgICAgPyB0aGlzLmJ1aWxkRXh0ZXJuYWxBc3NldCh0aGlzLmFzc2V0LnNvdXJjZS5leGVjdXRhYmxlKVxuICAgICAgOiB0aGlzLmJ1aWxkRGlyZWN0b3J5QXNzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIChsb2NhbCkgRG9ja2VyIGFzc2V0IGZyb20gYSBkaXJlY3Rvcnkgd2l0aCBhIERvY2tlcmZpbGVcbiAgICpcbiAgICogVGFncyB1bmRlciBhIGRldGVybWluaXN0aWMsIHVuaXF1ZSwgbG9jYWwgaWRlbnRpZmllciB3aWNoIHdpbGwgc2tpcFxuICAgKiB0aGUgYnVpbGQgaWYgaXQgYWxyZWFkeSBleGlzdHMuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGJ1aWxkRGlyZWN0b3J5QXNzZXQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBsb2NhbFRhZ05hbWUgPSBgY2RrYXNzZXQtJHt0aGlzLmFzc2V0LmlkLmFzc2V0SWQudG9Mb3dlckNhc2UoKX1gO1xuXG4gICAgaWYgKCEoYXdhaXQgdGhpcy5pc0ltYWdlQ2FjaGVkKGxvY2FsVGFnTmFtZSkpKSB7XG4gICAgICBpZiAodGhpcy5ob3N0LmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5idWlsZEltYWdlKGxvY2FsVGFnTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvY2FsVGFnTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIChsb2NhbCkgRG9ja2VyIGFzc2V0IGJ5IHJ1bm5pbmcgYW4gZXh0ZXJuYWwgY29tbWFuZFxuICAgKlxuICAgKiBFeHRlcm5hbCBjb21tYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWR1cGxpY2F0aW5nIHRoZSBidWlsZCBpZiBwb3NzaWJsZSxcbiAgICogYW5kIGlzIGV4cGVjdGVkIHRvIHJldHVybiB0aGUgZ2VuZXJhdGVkIGltYWdlIGlkZW50aWZpZXIgb24gc3Rkb3V0LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBidWlsZEV4dGVybmFsQXNzZXQoXG4gICAgZXhlY3V0YWJsZTogc3RyaW5nW10sXG4gICAgY3dkPzogc3RyaW5nLFxuICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGFzc2V0UGF0aCA9IGN3ZCA/PyB0aGlzLndvcmtEaXI7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLkJVSUxELCBgQnVpbGRpbmcgRG9ja2VyIGltYWdlIHVzaW5nIGNvbW1hbmQgJyR7ZXhlY3V0YWJsZX0nYCk7XG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmhvc3QuZW1pdE1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHNoZWxsKGV4ZWN1dGFibGUsIHtcbiAgICAgICAgY3dkOiBhc3NldFBhdGgsXG4gICAgICAgIHNoZWxsRXZlbnRQdWJsaXNoZXIsXG4gICAgICAgIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsXG4gICAgICB9KVxuICAgICkudHJpbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZEltYWdlKGxvY2FsVGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5hc3NldC5zb3VyY2U7XG4gICAgaWYgKCFzb3VyY2UuZGlyZWN0b3J5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAnZGlyZWN0b3J5JyBpcyBleHBlY3RlZCBpbiB0aGUgRG9ja2VySW1hZ2UgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5kaXJlY3RvcnkpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBCdWlsZGluZyBEb2NrZXIgaW1hZ2UgYXQgJHtmdWxsUGF0aH1gKTtcblxuICAgIGF3YWl0IHRoaXMuZG9ja2VyLmJ1aWxkKHtcbiAgICAgIGRpcmVjdG9yeTogZnVsbFBhdGgsXG4gICAgICB0YWc6IGxvY2FsVGFnTmFtZSxcbiAgICAgIGJ1aWxkQXJnczogc291cmNlLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIGJ1aWxkU2VjcmV0czogc291cmNlLmRvY2tlckJ1aWxkU2VjcmV0cyxcbiAgICAgIGJ1aWxkU3NoOiBzb3VyY2UuZG9ja2VyQnVpbGRTc2gsXG4gICAgICB0YXJnZXQ6IHNvdXJjZS5kb2NrZXJCdWlsZFRhcmdldCxcbiAgICAgIGZpbGU6IHNvdXJjZS5kb2NrZXJGaWxlLFxuICAgICAgbmV0d29ya01vZGU6IHNvdXJjZS5uZXR3b3JrTW9kZSxcbiAgICAgIHBsYXRmb3JtOiBzb3VyY2UucGxhdGZvcm0sXG4gICAgICBvdXRwdXRzOiBzb3VyY2UuZG9ja2VyT3V0cHV0cyxcbiAgICAgIGNhY2hlRnJvbTogc291cmNlLmNhY2hlRnJvbSxcbiAgICAgIGNhY2hlVG86IHNvdXJjZS5jYWNoZVRvLFxuICAgICAgY2FjaGVEaXNhYmxlZDogc291cmNlLmNhY2hlRGlzYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGlzSW1hZ2VDYWNoZWQobG9jYWxUYWdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5kb2NrZXIuZXhpc3RzKGxvY2FsVGFnTmFtZSkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0FDSEVELCBgQ2FjaGVkICR7bG9jYWxUYWdOYW1lfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGltYWdlRXhpc3RzKGVjcjogSUVDUkNsaWVudCwgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgaW1hZ2VUYWc6IHN0cmluZykge1xuICB0cnkge1xuICAgIGF3YWl0IGVjci5kZXNjcmliZUltYWdlcyh7XG4gICAgICByZXBvc2l0b3J5TmFtZSxcbiAgICAgIGltYWdlSWRzOiBbeyBpbWFnZVRhZyB9XSxcbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUubmFtZSAhPT0gJ0ltYWdlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIFVSSSBmb3IgdGhlIHJlcG9zaXRvcnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZVxuICpcbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSByZXBvc2l0b3J5IGRvZXMgbm90IGV4aXN0LlxuICovXG5hc3luYyBmdW5jdGlvbiByZXBvc2l0b3J5VXJpKGVjcjogSUVDUkNsaWVudCwgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlY3IuZGVzY3JpYmVSZXBvc2l0b3JpZXMoe1xuICAgICAgcmVwb3NpdG9yeU5hbWVzOiBbcmVwb3NpdG9yeU5hbWVdLFxuICAgIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UucmVwb3NpdG9yaWVzIHx8IFtdKVswXT8ucmVwb3NpdG9yeVVyaTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUubmFtZSAhPT0gJ1JlcG9zaXRvcnlOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileAssetHandler = void 0;\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\nconst mime = require(\"mime\");\nconst client_options_1 = require(\"./client-options\");\nconst progress_1 = require(\"../../progress\");\nconst archive_1 = require(\"../archive\");\nconst fs_extra_1 = require(\"../fs-extra\");\nconst placeholders_1 = require(\"../placeholders\");\nconst shell_1 = require(\"../shell\");\n/**\n * The size of an empty zip file is 22 bytes\n *\n * Ref: https://en.wikipedia.org/wiki/ZIP_(file_format)\n */\nconst EMPTY_ZIP_FILE_SIZE = 22;\nclass FileAssetHandler {\n constructor(workDir, asset, host) {\n this.workDir = workDir;\n this.asset = asset;\n this.host = host;\n this.fileCacheRoot = path.join(workDir, '.cache');\n }\n async build() {\n }\n async isPublished() {\n const destination = await (0, placeholders_1.replaceAwsPlaceholders)(this.asset.destination, this.host.aws);\n const s3Url = `s3://${destination.bucketName}/${destination.objectKey}`;\n try {\n const s3 = await this.host.aws.s3Client({\n ...(0, client_options_1.destinationToClientOptions)(destination),\n quiet: true,\n });\n this.host.emitMessage(progress_1.EventType.CHECK, `Check ${s3Url}`);\n if (await objectExists(s3, destination.bucketName, destination.objectKey)) {\n this.host.emitMessage(progress_1.EventType.FOUND, `Found ${s3Url}`);\n return true;\n }\n }\n catch (e) {\n this.host.emitMessage(progress_1.EventType.DEBUG, `${e.message}`);\n }\n return false;\n }\n async publish(options = {}) {\n const destination = await (0, placeholders_1.replaceAwsPlaceholders)(this.asset.destination, this.host.aws);\n const s3Url = `s3://${destination.bucketName}/${destination.objectKey}`;\n const clientOptions = (0, client_options_1.destinationToClientOptions)(destination);\n const s3 = await this.host.aws.s3Client(clientOptions);\n this.host.emitMessage(progress_1.EventType.CHECK, `Check ${s3Url}`);\n const bucketInfo = BucketInformation.for(this.host);\n // A thunk for describing the current account. Used when we need to format an error\n // message, not in the success case.\n const account = async () => (await this.host.aws.discoverTargetAccount(clientOptions)).accountId;\n const allowCrossAccount = options.allowCrossAccount ?? true;\n switch (await bucketInfo.bucketOwnership(s3, destination.bucketName, allowCrossAccount ? undefined : await account())) {\n case BucketOwnership.MINE:\n break;\n case BucketOwnership.DOES_NOT_EXIST:\n throw new Error(`No bucket named '${destination.bucketName}'. Is account ${await account()} bootstrapped?`);\n case BucketOwnership.NO_ACCESS:\n throw new Error(`Bucket named '${destination.bucketName}' exists, but we dont have access to it.`);\n case BucketOwnership.SOMEONE_ELSES_AND_HAVE_ACCESS:\n if (!allowCrossAccount) {\n throw new Error(`❗❗ UNEXPECTED BUCKET OWNER DETECTED ❗❗\n\n We've detected that the S3 bucket ${destination.bucketName} was\n originally created in account ${await account()} as part of the CloudFormation stack CDKToolkit,\n but now resides in a different AWS account. To prevent cross-account asset bucket access of your\n deployments, CDK will stop now.\n\n If this situation is intentional and you own the AWS account that the bucket has moved to, remove the\n resource named StagingBucket from the template of CloudFormation stack CDKToolkit and try again.\n\n If this situation is not intentional, we strongly recommend auditing your account to make sure all\n resources are configured the way you expect them [1]. For questions or concerns, please contact\n AWS Support [2].\n\n [1] https://repost.aws/knowledge-center/potential-account-compromise\n\n [2] https://aws.amazon.com/support`);\n }\n break;\n }\n if (!options.force && await objectExists(s3, destination.bucketName, destination.objectKey)) {\n this.host.emitMessage(progress_1.EventType.FOUND, `Found ${s3Url}`);\n return;\n }\n // Identify the the bucket encryption type to set the header on upload\n // required for SCP rules denying uploads without encryption header\n let paramsEncryption = {};\n const encryption2 = await bucketInfo.bucketEncryption(s3, destination.bucketName);\n switch (encryption2.type) {\n case 'no_encryption':\n break;\n case 'aes256':\n paramsEncryption = { ServerSideEncryption: 'AES256' };\n break;\n case 'kms':\n // We must include the key ID otherwise S3 will encrypt with the default key\n paramsEncryption = {\n ServerSideEncryption: 'aws:kms',\n SSEKMSKeyId: encryption2.kmsKeyId,\n };\n break;\n case 'does_not_exist':\n this.host.emitMessage(progress_1.EventType.DEBUG, `No bucket named '${destination.bucketName}'. Is account ${await account()} bootstrapped?`);\n break;\n case 'access_denied':\n this.host.emitMessage(progress_1.EventType.DEBUG, `Could not read encryption settings of bucket '${destination.bucketName}': uploading with default settings (\"cdk bootstrap\" to version 9 if your organization's policies prevent a successful upload or to get rid of this message).`);\n break;\n }\n if (this.host.aborted) {\n return;\n }\n const publishFile = this.asset.source.executable\n ? await this.externalPackageFile(this.asset.source.executable)\n : await this.packageFile(this.asset.source);\n this.host.emitMessage(progress_1.EventType.UPLOAD, `Upload ${s3Url}`);\n const params = Object.assign({}, {\n Bucket: destination.bucketName,\n Key: destination.objectKey,\n Body: (0, fs_1.createReadStream)(publishFile.packagedPath),\n ContentType: publishFile.contentType,\n ChecksumAlgorithm: 'SHA256',\n }, paramsEncryption);\n await s3.upload(params);\n }\n async packageFile(source) {\n if (!source.path) {\n throw new Error(`'path' is expected in the File asset source, got: ${JSON.stringify(source)}`);\n }\n const fullPath = path.resolve(this.workDir, source.path);\n if (source.packaging === cloud_assembly_schema_1.FileAssetPackaging.ZIP_DIRECTORY) {\n const contentType = 'application/zip';\n await fs_1.promises.mkdir(this.fileCacheRoot, { recursive: true });\n const packagedPath = path.join(this.fileCacheRoot, `${this.asset.id.assetId}.zip`);\n if (await (0, fs_extra_1.pathExists)(packagedPath)) {\n this.host.emitMessage(progress_1.EventType.CACHED, `From cache ${packagedPath}`);\n return { packagedPath, contentType };\n }\n this.host.emitMessage(progress_1.EventType.BUILD, `Zip ${fullPath} -> ${packagedPath}`);\n await (0, archive_1.zipDirectory)(fullPath, packagedPath, (m) => this.host.emitMessage(progress_1.EventType.DEBUG, m));\n return { packagedPath, contentType };\n }\n else {\n const contentType = mime.getType(fullPath) ?? 'application/octet-stream';\n return { packagedPath: fullPath, contentType };\n }\n }\n async externalPackageFile(executable) {\n this.host.emitMessage(progress_1.EventType.BUILD, `Building asset source using command: '${executable}'`);\n const shellEventPublisher = (0, progress_1.shellEventPublisherFromEventEmitter)(this.host.emitMessage);\n return {\n packagedPath: (await (0, shell_1.shell)(executable, { subprocessOutputDestination: 'ignore', shellEventPublisher })).trim(),\n contentType: 'application/zip',\n };\n }\n}\nexports.FileAssetHandler = FileAssetHandler;\nvar BucketOwnership;\n(function (BucketOwnership) {\n BucketOwnership[BucketOwnership[\"DOES_NOT_EXIST\"] = 0] = \"DOES_NOT_EXIST\";\n BucketOwnership[BucketOwnership[\"MINE\"] = 1] = \"MINE\";\n BucketOwnership[BucketOwnership[\"NO_ACCESS\"] = 2] = \"NO_ACCESS\";\n BucketOwnership[BucketOwnership[\"SOMEONE_ELSES_AND_HAVE_ACCESS\"] = 3] = \"SOMEONE_ELSES_AND_HAVE_ACCESS\";\n})(BucketOwnership || (BucketOwnership = {}));\nasync function objectExists(s3, bucket, key) {\n /*\n * The object existence check here refrains from using the `headObject` operation because this\n * would create a negative cache entry, making GET-after-PUT eventually consistent. This has been\n * observed to result in CloudFormation issuing \"ValidationError: S3 error: Access Denied\", for\n * example in https://github.com/aws/aws-cdk/issues/6430.\n *\n * To prevent this, we are instead using the listObjectsV2 call, using the looked up key as the\n * prefix, and limiting results to 1. Since the list operation returns keys ordered by binary\n * UTF-8 representation, the key we are looking for is guaranteed to always be the first match\n * returned if it exists.\n *\n * If the file is too small, we discount it as a cache hit. There is an issue\n * somewhere that sometimes produces empty zip files, and we would otherwise\n * never retry building those assets without users having to manually clear\n * their bucket, which is a bad experience.\n */\n const response = await s3.listObjectsV2({\n Bucket: bucket,\n Prefix: key,\n MaxKeys: 1,\n });\n return (response.Contents != null &&\n response.Contents.some((object) => object.Key === key && (object.Size == null || object.Size > EMPTY_ZIP_FILE_SIZE)));\n}\n/**\n * Cache for bucket information, so we don't have to keep doing the same calls again and again\n *\n * We scope the lifetime of the cache to the lifetime of the host, so that we don't have to do\n * anything special for tests and yet the cache will live for the entire lifetime of the asset\n * upload session when used by the CLI.\n */\nclass BucketInformation {\n static for(host) {\n const existing = BucketInformation.caches.get(host);\n if (existing) {\n return existing;\n }\n const fresh = new BucketInformation();\n BucketInformation.caches.set(host, fresh);\n return fresh;\n }\n constructor() {\n this.ownerships = new Map();\n this.encryptions = new Map();\n }\n async bucketOwnership(s3, bucket, expectedAccount) {\n return cached(this.ownerships, bucket, async () => {\n const anyAccount = await this._bucketOwnership(s3, bucket);\n switch (anyAccount) {\n case BucketOwnership.MINE:\n if (expectedAccount &&\n (await this._bucketOwnership(s3, bucket, expectedAccount)) === BucketOwnership.NO_ACCESS) {\n // if the only difference between MINE and NO_ACCESS is the expected account,\n // then its definitely someone else's bucket.\n return BucketOwnership.SOMEONE_ELSES_AND_HAVE_ACCESS;\n }\n return BucketOwnership.MINE;\n default:\n return anyAccount;\n }\n });\n }\n async bucketEncryption(s3, bucket) {\n return cached(this.encryptions, bucket, () => this._bucketEncryption(s3, bucket));\n }\n async _bucketOwnership(s3, bucket, account) {\n try {\n await s3.getBucketLocation({ Bucket: bucket, ExpectedBucketOwner: account });\n return BucketOwnership.MINE;\n }\n catch (e) {\n if (e.name === 'NoSuchBucket') {\n return BucketOwnership.DOES_NOT_EXIST;\n }\n if (['AccessDenied', 'AllAccessDisabled'].includes(e.name)) {\n return BucketOwnership.NO_ACCESS;\n }\n throw e;\n }\n }\n async _bucketEncryption(s3, bucket) {\n try {\n const encryption = await s3.getBucketEncryption({ Bucket: bucket });\n const l = encryption?.ServerSideEncryptionConfiguration?.Rules?.length ?? 0;\n if (l > 0) {\n const apply = encryption?.ServerSideEncryptionConfiguration?.Rules?.at(0)?.ApplyServerSideEncryptionByDefault;\n let ssealgo = apply?.SSEAlgorithm;\n if (ssealgo === 'AES256')\n return { type: 'aes256' };\n if (ssealgo === 'aws:kms')\n return { type: 'kms', kmsKeyId: apply?.KMSMasterKeyID };\n }\n return { type: 'no_encryption' };\n }\n catch (e) {\n if (e.name === 'NoSuchBucket') {\n return { type: 'does_not_exist' };\n }\n if (e.name === 'ServerSideEncryptionConfigurationNotFoundError') {\n return { type: 'no_encryption' };\n }\n if (['AccessDenied', 'AllAccessDisabled'].includes(e.name)) {\n return { type: 'access_denied' };\n }\n return { type: 'no_encryption' };\n }\n }\n}\nBucketInformation.caches = new WeakMap();\nasync function cached(cache, key, factory) {\n if (cache.has(key)) {\n return cache.get(key);\n }\n const fresh = await factory(key);\n cache.set(key, fresh);\n return fresh;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBc0Q7QUFDdEQsNkJBQTZCO0FBRTdCLDBFQUFvRTtBQUNwRSw2QkFBNkI7QUFDN0IscURBQThEO0FBSTlELDZDQUFnRjtBQUNoRix3Q0FBMEM7QUFFMUMsMENBQXlDO0FBQ3pDLGtEQUF5RDtBQUN6RCxvQ0FBaUM7QUFFakM7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQWEsZ0JBQWdCO0lBRzNCLFlBQ21CLE9BQWUsRUFDZixLQUF3QixFQUN4QixJQUFrQjtRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBYztRQUVuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztJQUNsQixDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLHFDQUFzQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEYsTUFBTSxLQUFLLEdBQUcsUUFBUSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDdEMsR0FBRyxJQUFBLDJDQUEwQixFQUFDLFdBQVcsQ0FBQztnQkFDMUMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFD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QU0sRUFBRSxPQUE2QjtJQUNqRixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgRmlsZVNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBGaWxlQXNzZXRQYWNrYWdpbmcgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgbWltZSBmcm9tICdtaW1lJztcbmltcG9ydCB7IGRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zIH0gZnJvbSAnLi9jbGllbnQtb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vLi4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJUzNDbGllbnQgfSBmcm9tICcuLi8uLi9hd3MnO1xuaW1wb3J0IHR5cGUgeyBQdXRPYmplY3RDb21tYW5kSW5wdXQgfSBmcm9tICcuLi8uLi9hd3MtdHlwZXMnO1xuaW1wb3J0IHsgRXZlbnRUeXBlLCBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL3Byb2dyZXNzJztcbmltcG9ydCB7IHppcERpcmVjdG9yeSB9IGZyb20gJy4uL2FyY2hpdmUnO1xuaW1wb3J0IHR5cGUgeyBJQXNzZXRIYW5kbGVyLCBJSGFuZGxlckhvc3QsIFB1Ymxpc2hPcHRpb25zIH0gZnJvbSAnLi4vYXNzZXQtaGFuZGxlcic7XG5pbXBvcnQgeyBwYXRoRXhpc3RzIH0gZnJvbSAnLi4vZnMtZXh0cmEnO1xuaW1wb3J0IHsgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyB9IGZyb20gJy4uL3BsYWNlaG9sZGVycyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuLyoqXG4gKiBUaGUgc2l6ZSBvZiBhbiBlbXB0eSB6aXAgZmlsZSBpcyAyMiBieXRlc1xuICpcbiAqIFJlZjogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvWklQXyhmaWxlX2Zvcm1hdClcbiAqL1xuY29uc3QgRU1QVFlfWklQX0ZJTEVfU0laRSA9IDIyO1xuXG5leHBvcnQgY2xhc3MgRmlsZUFzc2V0SGFuZGxlciBpbXBsZW1lbnRzIElBc3NldEhhbmRsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVDYWNoZVJvb3Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtEaXI6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0OiBGaWxlTWFuaWZlc3RFbnRyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3Q6IElIYW5kbGVySG9zdCxcbiAgKSB7XG4gICAgdGhpcy5maWxlQ2FjaGVSb290ID0gcGF0aC5qb2luKHdvcmtEaXIsICcuY2FjaGUnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpc1B1Ymxpc2hlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGF3YWl0IHJlcGxhY2VBd3NQbGFjZWhvbGRlcnModGhpcy5hc3NldC5kZXN0aW5hdGlvbiwgdGhpcy5ob3N0LmF3cyk7XG4gICAgY29uc3QgczNVcmwgPSBgczM6Ly8ke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9LyR7ZGVzdGluYXRpb24ub2JqZWN0S2V5fWA7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHMzID0gYXdhaXQgdGhpcy5ob3N0LmF3cy5zM0NsaWVudCh7XG4gICAgICAgIC4uLmRlc3RpbmF0aW9uVG9DbGllbnRPcHRpb25zKGRlc3RpbmF0aW9uKSxcbiAgICAgICAgcXVpZXQ6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke3MzVXJsfWApO1xuXG4gICAgICBpZiAoYXdhaXQgb2JqZWN0RXhpc3RzKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lLCBkZXN0aW5hdGlvbi5vYmplY3RLZXkpKSB7XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke3MzVXJsfWApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIGAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2gob3B0aW9uczogUHVibGlzaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gYXdhaXQgcmVwbGFjZUF3c1BsYWNlaG9sZGVycyh0aGlzLmFzc2V0LmRlc3RpbmF0aW9uLCB0aGlzLmhvc3QuYXdzKTtcbiAgICBjb25zdCBzM1VybCA9IGBzMzovLyR7ZGVzdGluYXRpb24uYnVja2V0TmFtZX0vJHtkZXN0aW5hdGlvbi5vYmplY3RLZXl9YDtcblxuICAgIGNvbnN0IGNsaWVudE9wdGlvbnMgPSBkZXN0aW5hdGlvblRvQ2xpZW50T3B0aW9ucyhkZXN0aW5hdGlvbik7XG4gICAgY29uc3QgczMgPSBhd2FpdCB0aGlzLmhvc3QuYXdzLnMzQ2xpZW50KGNsaWVudE9wdGlvbnMpO1xuICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQ0hFQ0ssIGBDaGVjayAke3MzVXJsfWApO1xuXG4gICAgY29uc3QgYnVja2V0SW5mbyA9IEJ1Y2tldEluZm9ybWF0aW9uLmZvcih0aGlzLmhvc3QpO1xuXG4gICAgLy8gQSB0aHVuayBmb3IgZGVzY3JpYmluZyB0aGUgY3VycmVudCBhY2NvdW50LiBVc2VkIHdoZW4gd2UgbmVlZCB0byBmb3JtYXQgYW4gZXJyb3JcbiAgICAvLyBtZXNzYWdlLCBub3QgaW4gdGhlIHN1Y2Nlc3MgY2FzZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXN5bmMgKCkgPT5cbiAgICAgIChhd2FpdCB0aGlzLmhvc3QuYXdzLmRpc2NvdmVyVGFyZ2V0QWNjb3VudChjbGllbnRPcHRpb25zKSkuYWNjb3VudElkO1xuXG4gICAgY29uc3QgYWxsb3dDcm9zc0FjY291bnQgPSBvcHRpb25zLmFsbG93Q3Jvc3NBY2NvdW50ID8/IHRydWU7XG4gICAgc3dpdGNoIChcbiAgICAgIGF3YWl0IGJ1Y2tldEluZm8uYnVja2V0T3duZXJzaGlwKFxuICAgICAgICBzMyxcbiAgICAgICAgZGVzdGluYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAgYWxsb3dDcm9zc0FjY291bnQgPyB1bmRlZmluZWQgOiBhd2FpdCBhY2NvdW50KCksXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5NSU5FOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnVja2V0T3duZXJzaGlwLkRPRVNfTk9UX0VYSVNUOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYE5vIGJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScuIElzIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9IGJvb3RzdHJhcHBlZD9gLFxuICAgICAgICApO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuTk9fQUNDRVNTOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScgZXhpc3RzLCBidXQgd2UgZG9udCBoYXZlIGFjY2VzcyB0byBpdC5gLFxuICAgICAgICApO1xuICAgICAgY2FzZSBCdWNrZXRPd25lcnNoaXAuU09NRU9ORV9FTFNFU19BTkRfSEFWRV9BQ0NFU1M6XG4gICAgICAgIGlmICghYWxsb3dDcm9zc0FjY291bnQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBg4p2X4p2XIFVORVhQRUNURUQgQlVDS0VUIE9XTkVSIERFVEVDVEVEIOKdl+Kdl1xuXG4gICAgICAgICAgICAgIFdlJ3ZlIGRldGVjdGVkIHRoYXQgdGhlIFMzIGJ1Y2tldCAke2Rlc3RpbmF0aW9uLmJ1Y2tldE5hbWV9IHdhc1xuICAgICAgICAgICAgICBvcmlnaW5hbGx5IGNyZWF0ZWQgaW4gYWNjb3VudCAke2F3YWl0IGFjY291bnQoKX0gYXMgcGFydCBvZiB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgQ0RLVG9vbGtpdCxcbiAgICAgICAgICAgICAgYnV0IG5vdyByZXNpZGVzIGluIGEgZGlmZmVyZW50IEFXUyBhY2NvdW50LiBUbyBwcmV2ZW50IGNyb3NzLWFjY291bnQgYXNzZXQgYnVja2V0IGFjY2VzcyBvZiB5b3VyXG4gICAgICAgICAgICAgIGRlcGxveW1lbnRzLCBDREsgd2lsbCBzdG9wIG5vdy5cblxuICAgICAgICAgICAgICBJZiB0aGlzIHNpdHVhdGlvbiBpcyBpbnRlbnRpb25hbCBhbmQgeW91IG93biB0aGUgQVdTIGFjY291bnQgdGhhdCB0aGUgYnVja2V0IGhhcyBtb3ZlZCB0bywgcmVtb3ZlIHRoZVxuICAgICAgICAgICAgICByZXNvdXJjZSBuYW1lZCBTdGFnaW5nQnVja2V0IGZyb20gdGhlIHRlbXBsYXRlIG9mIENsb3VkRm9ybWF0aW9uIHN0YWNrIENES1Rvb2xraXQgYW5kIHRyeSBhZ2Fpbi5cblxuICAgICAgICAgICAgICBJZiB0aGlzIHNpdHVhdGlvbiBpcyBub3QgaW50ZW50aW9uYWwsIHdlIHN0cm9uZ2x5IHJlY29tbWVuZCBhdWRpdGluZyB5b3VyIGFjY291bnQgdG8gbWFrZSBzdXJlIGFsbFxuICAgICAgICAgICAgICByZXNvdXJjZXMgYXJlIGNvbmZpZ3VyZWQgdGhlIHdheSB5b3UgZXhwZWN0IHRoZW0gWzFdLiBGb3IgcXVlc3Rpb25zIG9yIGNvbmNlcm5zLCBwbGVhc2UgY29udGFjdFxuICAgICAgICAgICAgICBBV1MgU3VwcG9ydCBbMl0uXG5cbiAgICAgICAgICAgICAgWzFdIGh0dHBzOi8vcmVwb3N0LmF3cy9rbm93bGVkZ2UtY2VudGVyL3BvdGVudGlhbC1hY2NvdW50LWNvbXByb21pc2VcblxuICAgICAgICAgICAgICBbMl0gaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9zdXBwb3J0YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5mb3JjZSAmJiBhd2FpdCBvYmplY3RFeGlzdHMoczMsIGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsIGRlc3RpbmF0aW9uLm9iamVjdEtleSkpIHtcbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuRk9VTkQsIGBGb3VuZCAke3MzVXJsfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElkZW50aWZ5IHRoZSB0aGUgYnVja2V0IGVuY3J5cHRpb24gdHlwZSB0byBzZXQgdGhlIGhlYWRlciBvbiB1cGxvYWRcbiAgICAvLyByZXF1aXJlZCBmb3IgU0NQIHJ1bGVzIGRlbnlpbmcgdXBsb2FkcyB3aXRob3V0IGVuY3J5cHRpb24gaGVhZGVyXG4gICAgbGV0IHBhcmFtc0VuY3J5cHRpb246IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGNvbnN0IGVuY3J5cHRpb24yID0gYXdhaXQgYnVja2V0SW5mby5idWNrZXRFbmNyeXB0aW9uKHMzLCBkZXN0aW5hdGlvbi5idWNrZXROYW1lKTtcbiAgICBzd2l0Y2ggKGVuY3J5cHRpb24yLnR5cGUpIHtcbiAgICAgIGNhc2UgJ25vX2VuY3J5cHRpb24nOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FlczI1Nic6XG4gICAgICAgIHBhcmFtc0VuY3J5cHRpb24gPSB7IFNlcnZlclNpZGVFbmNyeXB0aW9uOiAnQUVTMjU2JyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ttcyc6XG4gICAgICAgIC8vIFdlIG11c3QgaW5jbHVkZSB0aGUga2V5IElEIG90aGVyd2lzZSBTMyB3aWxsIGVuY3J5cHQgd2l0aCB0aGUgZGVmYXVsdCBrZXlcbiAgICAgICAgcGFyYW1zRW5jcnlwdGlvbiA9IHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbjogJ2F3czprbXMnLFxuICAgICAgICAgIFNTRUtNU0tleUlkOiBlbmNyeXB0aW9uMi5rbXNLZXlJZCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb2VzX25vdF9leGlzdCc6XG4gICAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShcbiAgICAgICAgICBFdmVudFR5cGUuREVCVUcsXG4gICAgICAgICAgYE5vIGJ1Y2tldCBuYW1lZCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfScuIElzIGFjY291bnQgJHthd2FpdCBhY2NvdW50KCl9IGJvb3RzdHJhcHBlZD9gLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FjY2Vzc19kZW5pZWQnOlxuICAgICAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoXG4gICAgICAgICAgRXZlbnRUeXBlLkRFQlVHLFxuICAgICAgICAgIGBDb3VsZCBub3QgcmVhZCBlbmNyeXB0aW9uIHNldHRpbmdzIG9mIGJ1Y2tldCAnJHtkZXN0aW5hdGlvbi5idWNrZXROYW1lfSc6IHVwbG9hZGluZyB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgKFwiY2RrIGJvb3RzdHJhcFwiIHRvIHZlcnNpb24gOSBpZiB5b3VyIG9yZ2FuaXphdGlvbidzIHBvbGljaWVzIHByZXZlbnQgYSBzdWNjZXNzZnVsIHVwbG9hZCBvciB0byBnZXQgcmlkIG9mIHRoaXMgbWVzc2FnZSkuYCxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHB1Ymxpc2hGaWxlID0gdGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZVxuICAgICAgPyBhd2FpdCB0aGlzLmV4dGVybmFsUGFja2FnZUZpbGUodGhpcy5hc3NldC5zb3VyY2UuZXhlY3V0YWJsZSlcbiAgICAgIDogYXdhaXQgdGhpcy5wYWNrYWdlRmlsZSh0aGlzLmFzc2V0LnNvdXJjZSk7XG5cbiAgICB0aGlzLmhvc3QuZW1pdE1lc3NhZ2UoRXZlbnRUeXBlLlVQTE9BRCwgYFVwbG9hZCAke3MzVXJsfWApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICBCdWNrZXQ6IGRlc3RpbmF0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICAgIEtleTogZGVzdGluYXRpb24ub2JqZWN0S2V5LFxuICAgICAgICBCb2R5OiBjcmVhdGVSZWFkU3RyZWFtKHB1Ymxpc2hGaWxlLnBhY2thZ2VkUGF0aCksXG4gICAgICAgIENvbnRlbnRUeXBlOiBwdWJsaXNoRmlsZS5jb250ZW50VHlwZSxcbiAgICAgICAgQ2hlY2tzdW1BbGdvcml0aG06ICdTSEEyNTYnLFxuICAgICAgfSBzYXRpc2ZpZXMgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxuICAgICAgcGFyYW1zRW5jcnlwdGlvbixcbiAgICApO1xuXG4gICAgYXdhaXQgczMudXBsb2FkKHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBhY2thZ2VGaWxlKHNvdXJjZTogRmlsZVNvdXJjZSk6IFByb21pc2U8UGFja2FnZWRGaWxlQXNzZXQ+IHtcbiAgICBpZiAoIXNvdXJjZS5wYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAncGF0aCcgaXMgZXhwZWN0ZWQgaW4gdGhlIEZpbGUgYXNzZXQgc291cmNlLCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZSh0aGlzLndvcmtEaXIsIHNvdXJjZS5wYXRoKTtcblxuICAgIGlmIChzb3VyY2UucGFja2FnaW5nID09PSBGaWxlQXNzZXRQYWNrYWdpbmcuWklQX0RJUkVDVE9SWSkge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vemlwJztcblxuICAgICAgYXdhaXQgZnMubWtkaXIodGhpcy5maWxlQ2FjaGVSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IHBhY2thZ2VkUGF0aCA9IHBhdGguam9pbih0aGlzLmZpbGVDYWNoZVJvb3QsIGAke3RoaXMuYXNzZXQuaWQuYXNzZXRJZH0uemlwYCk7XG5cbiAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhY2thZ2VkUGF0aCkpIHtcbiAgICAgICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5DQUNIRUQsIGBGcm9tIGNhY2hlICR7cGFja2FnZWRQYXRofWApO1xuICAgICAgICByZXR1cm4geyBwYWNrYWdlZFBhdGgsIGNvbnRlbnRUeXBlIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuQlVJTEQsIGBaaXAgJHtmdWxsUGF0aH0gLT4gJHtwYWNrYWdlZFBhdGh9YCk7XG4gICAgICBhd2FpdCB6aXBEaXJlY3RvcnkoZnVsbFBhdGgsIHBhY2thZ2VkUGF0aCwgKG0pID0+IHRoaXMuaG9zdC5lbWl0TWVzc2FnZShFdmVudFR5cGUuREVCVUcsIG0pKTtcbiAgICAgIHJldHVybiB7IHBhY2thZ2VkUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSBtaW1lLmdldFR5cGUoZnVsbFBhdGgpID8/ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nO1xuICAgICAgcmV0dXJuIHsgcGFja2FnZWRQYXRoOiBmdWxsUGF0aCwgY29udGVudFR5cGUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dGVybmFsUGFja2FnZUZpbGUoZXhlY3V0YWJsZTogc3RyaW5nW10pOiBQcm9taXNlPFBhY2thZ2VkRmlsZUFzc2V0PiB7XG4gICAgdGhpcy5ob3N0LmVtaXRNZXNzYWdlKEV2ZW50VHlwZS5CVUlMRCwgYEJ1aWxkaW5nIGFzc2V0IHNvdXJjZSB1c2luZyBjb21tYW5kOiAnJHtleGVjdXRhYmxlfSdgKTtcblxuICAgIGNvbnN0IHNoZWxsRXZlbnRQdWJsaXNoZXIgPSBzaGVsbEV2ZW50UHVibGlzaGVyRnJvbUV2ZW50RW1pdHRlcih0aGlzLmhvc3QuZW1pdE1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhY2thZ2VkUGF0aDogKFxuICAgICAgICBhd2FpdCBzaGVsbChleGVjdXRhYmxlLCB7IHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbjogJ2lnbm9yZScsIHNoZWxsRXZlbnRQdWJsaXNoZXIgfSlcbiAgICAgICkudHJpbSgpLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi96aXAnLFxuICAgIH07XG4gIH1cbn1cblxuZW51bSBCdWNrZXRPd25lcnNoaXAge1xuICBET0VTX05PVF9FWElTVCxcbiAgTUlORSxcbiAgTk9fQUNDRVNTLFxuICBTT01FT05FX0VMU0VTX0FORF9IQVZFX0FDQ0VTUyxcbn1cblxudHlwZSBCdWNrZXRFbmNyeXB0aW9uID1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdub19lbmNyeXB0aW9uJyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnYWVzMjU2JyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAna21zJzsgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdkb2VzX25vdF9leGlzdCcgfTtcblxuYXN5bmMgZnVuY3Rpb24gb2JqZWN0RXhpc3RzKHMzOiBJUzNDbGllbnQsIGJ1Y2tldDogc3RyaW5nLCBrZXk6IHN0cmluZykge1xuICAvKlxuICAgKiBUaGUgb2JqZWN0IGV4aXN0ZW5jZSBjaGVjayBoZXJlIHJlZnJhaW5zIGZyb20gdXNpbmcgdGhlIGBoZWFkT2JqZWN0YCBvcGVyYXRpb24gYmVjYXVzZSB0aGlzXG4gICAqIHdvdWxkIGNyZWF0ZSBhIG5lZ2F0aXZlIGNhY2hlIGVudHJ5LCBtYWtpbmcgR0VULWFmdGVyLVBVVCBldmVudHVhbGx5IGNvbnNpc3RlbnQuIFRoaXMgaGFzIGJlZW5cbiAgICogb2JzZXJ2ZWQgdG8gcmVzdWx0IGluIENsb3VkRm9ybWF0aW9uIGlzc3VpbmcgXCJWYWxpZGF0aW9uRXJyb3I6IFMzIGVycm9yOiBBY2Nlc3MgRGVuaWVkXCIsIGZvclxuICAgKiBleGFtcGxlIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvNjQzMC5cbiAgICpcbiAgICogVG8gcHJldmVudCB0aGlzLCB3ZSBhcmUgaW5zdGVhZCB1c2luZyB0aGUgbGlzdE9iamVjdHNWMiBjYWxsLCB1c2luZyB0aGUgbG9va2VkIHVwIGtleSBhcyB0aGVcbiAgICogcHJlZml4LCBhbmQgbGltaXRpbmcgcmVzdWx0cyB0byAxLiBTaW5jZSB0aGUgbGlzdCBvcGVyYXRpb24gcmV0dXJucyBrZXlzIG9yZGVyZWQgYnkgYmluYXJ5XG4gICAqIFVURi04IHJlcHJlc2VudGF0aW9uLCB0aGUga2V5IHdlIGFyZSBsb29raW5nIGZvciBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyBiZSB0aGUgZmlyc3QgbWF0Y2hcbiAgICogcmV0dXJuZWQgaWYgaXQgZXhpc3RzLlxuICAgKlxuICAgKiBJZiB0aGUgZmlsZSBpcyB0b28gc21hbGwsIHdlIGRpc2NvdW50IGl0IGFzIGEgY2FjaGUgaGl0LiBUaGVyZSBpcyBhbiBpc3N1ZVxuICAgKiBzb21ld2hlcmUgdGhhdCBzb21ldGltZXMgcHJvZHVjZXMgZW1wdHkgemlwIGZpbGVzLCBhbmQgd2Ugd291bGQgb3RoZXJ3aXNlXG4gICAqIG5ldmVyIHJldHJ5IGJ1aWxkaW5nIHRob3NlIGFzc2V0cyB3aXRob3V0IHVzZXJzIGhhdmluZyB0byBtYW51YWxseSBjbGVhclxuICAgKiB0aGVpciBidWNrZXQsIHdoaWNoIGlzIGEgYmFkIGV4cGVyaWVuY2UuXG4gICAqL1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHMzLmxpc3RPYmplY3RzVjIoe1xuICAgIEJ1Y2tldDogYnVja2V0LFxuICAgIFByZWZpeDoga2V5LFxuICAgIE1heEtleXM6IDEsXG4gIH0pO1xuICByZXR1cm4gKFxuICAgIHJlc3BvbnNlLkNvbnRlbnRzICE9IG51bGwgJiZcbiAgICByZXNwb25zZS5Db250ZW50cy5zb21lKFxuICAgICAgKG9iamVjdCkgPT4gb2JqZWN0LktleSA9PT0ga2V5ICYmIChvYmplY3QuU2l6ZSA9PSBudWxsIHx8IG9iamVjdC5TaXplID4gRU1QVFlfWklQX0ZJTEVfU0laRSksXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEEgcGFja2FnZWQgYXNzZXQgd2hpY2ggY2FuIGJlIHVwbG9hZGVkIChlaXRoZXIgYSBzaW5nbGUgZmlsZSBvciBkaXJlY3RvcnkpXG4gKi9cbmludGVyZmFjZSBQYWNrYWdlZEZpbGVBc3NldCB7XG4gIC8qKlxuICAgKiBQYXRoIG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZWRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnRlbnQgdHlwZSB0byBiZSBhZGRlZCBpbiB0aGUgUzMgdXBsb2FkIGFjdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNvbnRlbnQgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FjaGUgZm9yIGJ1Y2tldCBpbmZvcm1hdGlvbiwgc28gd2UgZG9uJ3QgaGF2ZSB0byBrZWVwIGRvaW5nIHRoZSBzYW1lIGNhbGxzIGFnYWluIGFuZCBhZ2FpblxuICpcbiAqIFdlIHNjb3BlIHRoZSBsaWZldGltZSBvZiB0aGUgY2FjaGUgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBob3N0LCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gZG9cbiAqIGFueXRoaW5nIHNwZWNpYWwgZm9yIHRlc3RzIGFuZCB5ZXQgdGhlIGNhY2hlIHdpbGwgbGl2ZSBmb3IgdGhlIGVudGlyZSBsaWZldGltZSBvZiB0aGUgYXNzZXRcbiAqIHVwbG9hZCBzZXNzaW9uIHdoZW4gdXNlZCBieSB0aGUgQ0xJLlxuICovXG5jbGFzcyBCdWNrZXRJbmZvcm1hdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yKGhvc3Q6IElIYW5kbGVySG9zdCkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gQnVja2V0SW5mb3JtYXRpb24uY2FjaGVzLmdldChob3N0KTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG5cbiAgICBjb25zdCBmcmVzaCA9IG5ldyBCdWNrZXRJbmZvcm1hdGlvbigpO1xuICAgIEJ1Y2tldEluZm9ybWF0aW9uLmNhY2hlcy5zZXQoaG9zdCwgZnJlc2gpO1xuICAgIHJldHVybiBmcmVzaDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNhY2hlcyA9IG5ldyBXZWFrTWFwPElIYW5kbGVySG9zdCwgQnVja2V0SW5mb3JtYXRpb24+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvd25lcnNoaXBzID0gbmV3IE1hcDxzdHJpbmcsIEJ1Y2tldE93bmVyc2hpcD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBCdWNrZXRFbmNyeXB0aW9uPigpO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYnVja2V0T3duZXJzaGlwKFxuICAgIHMzOiBJUzNDbGllbnQsXG4gICAgYnVja2V0OiBzdHJpbmcsXG4gICAgZXhwZWN0ZWRBY2NvdW50Pzogc3RyaW5nLFxuICApOiBQcm9taXNlPEJ1Y2tldE93bmVyc2hpcD4ge1xuICAgIHJldHVybiBjYWNoZWQodGhpcy5vd25lcnNoaXBzLCBidWNrZXQsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGFueUFjY291bnQgPSBhd2FpdCB0aGlzLl9idWNrZXRPd25lcnNoaXAoczMsIGJ1Y2tldCk7XG5cbiAgICAgIHN3aXRjaCAoYW55QWNjb3VudCkge1xuICAgICAgICBjYXNlIEJ1Y2tldE93bmVyc2hpcC5NSU5FOlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV4cGVjdGVkQWNjb3VudCAmJlxuICAgICAgICAgICAgKGF3YWl0IHRoaXMuX2J1Y2tldE93bmVyc2hpcChzMywgYnVja2V0LCBleHBlY3RlZEFjY291bnQpKSA9PT0gQnVja2V0T3duZXJzaGlwLk5PX0FDQ0VTU1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gaWYgdGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIE1JTkUgYW5kIE5PX0FDQ0VTUyBpcyB0aGUgZXhwZWN0ZWQgYWNjb3VudCxcbiAgICAgICAgICAgIC8vIHRoZW4gaXRzIGRlZmluaXRlbHkgc29tZW9uZSBlbHNlJ3MgYnVja2V0LlxuICAgICAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5TT01FT05FX0VMU0VTX0FORF9IQVZFX0FDQ0VTUztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5NSU5FO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBhbnlBY2NvdW50O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJ1Y2tldEVuY3J5cHRpb24oczM6IElTM0NsaWVudCwgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldEVuY3J5cHRpb24+IHtcbiAgICByZXR1cm4gY2FjaGVkKHRoaXMuZW5jcnlwdGlvbnMsIGJ1Y2tldCwgKCkgPT4gdGhpcy5fYnVja2V0RW5jcnlwdGlvbihzMywgYnVja2V0KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9idWNrZXRPd25lcnNoaXAoXG4gICAgczM6IElTM0NsaWVudCxcbiAgICBidWNrZXQ6IHN0cmluZyxcbiAgICBhY2NvdW50Pzogc3RyaW5nLFxuICApOiBQcm9taXNlPEJ1Y2tldE93bmVyc2hpcC5NSU5FIHwgQnVja2V0T3duZXJzaGlwLkRPRVNfTk9UX0VYSVNUIHwgQnVja2V0T3duZXJzaGlwLk5PX0FDQ0VTUz4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzMy5nZXRCdWNrZXRMb2NhdGlvbih7IEJ1Y2tldDogYnVja2V0LCBFeHBlY3RlZEJ1Y2tldE93bmVyOiBhY2NvdW50IH0pO1xuICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5NSU5FO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubmFtZSA9PT0gJ05vU3VjaEJ1Y2tldCcpIHtcbiAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5ET0VTX05PVF9FWElTVDtcbiAgICAgIH1cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIEJ1Y2tldE93bmVyc2hpcC5OT19BQ0NFU1M7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2J1Y2tldEVuY3J5cHRpb24oczM6IElTM0NsaWVudCwgYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPEJ1Y2tldEVuY3J5cHRpb24+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZW5jcnlwdGlvbiA9IGF3YWl0IHMzLmdldEJ1Y2tldEVuY3J5cHRpb24oeyBCdWNrZXQ6IGJ1Y2tldCB9KTtcbiAgICAgIGNvbnN0IGwgPSBlbmNyeXB0aW9uPy5TZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24/LlJ1bGVzPy5sZW5ndGggPz8gMDtcbiAgICAgIGlmIChsID4gMCkge1xuICAgICAgICBjb25zdCBhcHBseSA9XG4gICAgICAgICAgZW5jcnlwdGlvbj8uU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uPy5SdWxlcz8uYXQoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICk/LkFwcGx5U2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ7XG4gICAgICAgIGxldCBzc2VhbGdvID0gYXBwbHk/LlNTRUFsZ29yaXRobTtcbiAgICAgICAgaWYgKHNzZWFsZ28gPT09ICdBRVMyNTYnKSByZXR1cm4geyB0eXBlOiAnYWVzMjU2JyB9O1xuICAgICAgICBpZiAoc3NlYWxnbyA9PT0gJ2F3czprbXMnKSByZXR1cm4geyB0eXBlOiAna21zJywga21zS2V5SWQ6IGFwcGx5Py5LTVNNYXN0ZXJLZXlJRCB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdHlwZTogJ25vX2VuY3J5cHRpb24nIH07XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnTm9TdWNoQnVja2V0Jykge1xuICAgICAgICByZXR1cm4geyB0eXBlOiAnZG9lc19ub3RfZXhpc3QnIH07XG4gICAgICB9XG4gICAgICBpZiAoZS5uYW1lID09PSAnU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uTm90Rm91bmRFcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ25vX2VuY3J5cHRpb24nIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChbJ0FjY2Vzc0RlbmllZCcsICdBbGxBY2Nlc3NEaXNhYmxlZCddLmluY2x1ZGVzKGUubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ2FjY2Vzc19kZW5pZWQnIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9fZW5jcnlwdGlvbicgfTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2FjaGVkPEEsIEI+KGNhY2hlOiBNYXA8QSwgQj4sIGtleTogQSwgZmFjdG9yeTogKHg6IEEpID0+IFByb21pc2U8Qj4pOiBQcm9taXNlPEI+IHtcbiAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChrZXkpITtcbiAgfVxuXG4gIGNvbnN0IGZyZXNoID0gYXdhaXQgZmFjdG9yeShrZXkpO1xuICBjYWNoZS5zZXQoa2V5LCBmcmVzaCk7XG4gIHJldHVybiBmcmVzaDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeAssetHandler = makeAssetHandler;\nconst container_images_1 = require(\"./container-images\");\nconst files_1 = require(\"./files\");\nconst asset_manifest_1 = require(\"../../asset-manifest\");\nfunction makeAssetHandler(manifest, asset, host, options) {\n if (asset instanceof asset_manifest_1.FileManifestEntry) {\n return new files_1.FileAssetHandler(manifest.directory, asset, host);\n }\n if (asset instanceof asset_manifest_1.DockerImageManifestEntry) {\n return new container_images_1.ContainerImageAssetHandler(manifest.directory, asset, host, options);\n }\n throw new Error(`Unrecognized asset type: '${asset}'`);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLDRDQWNDO0FBeEJELHlEQUFnRTtBQUNoRSxtQ0FBMkM7QUFDM0MseURBSzhCO0FBRzlCLFNBQWdCLGdCQUFnQixDQUM5QixRQUF1QixFQUN2QixLQUFxQixFQUNyQixJQUFrQixFQUNsQixPQUF3QjtJQUV4QixJQUFJLEtBQUssWUFBWSxrQ0FBaUIsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBSSxLQUFLLFlBQVkseUNBQXdCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksNkNBQTBCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXJJbWFnZUFzc2V0SGFuZGxlciB9IGZyb20gJy4vY29udGFpbmVyLWltYWdlcyc7XG5pbXBvcnQgeyBGaWxlQXNzZXRIYW5kbGVyIH0gZnJvbSAnLi9maWxlcyc7XG5pbXBvcnQge1xuICB0eXBlIEFzc2V0TWFuaWZlc3QsXG4gIERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSxcbiAgRmlsZU1hbmlmZXN0RW50cnksXG4gIHR5cGUgSU1hbmlmZXN0RW50cnksXG59IGZyb20gJy4uLy4uL2Fzc2V0LW1hbmlmZXN0JztcbmltcG9ydCB0eXBlIHsgSUFzc2V0SGFuZGxlciwgSUhhbmRsZXJIb3N0LCBJSGFuZGxlck9wdGlvbnMgfSBmcm9tICcuLi9hc3NldC1oYW5kbGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VBc3NldEhhbmRsZXIoXG4gIG1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LFxuICBhc3NldDogSU1hbmlmZXN0RW50cnksXG4gIGhvc3Q6IElIYW5kbGVySG9zdCxcbiAgb3B0aW9uczogSUhhbmRsZXJPcHRpb25zLFxuKTogSUFzc2V0SGFuZGxlciB7XG4gIGlmIChhc3NldCBpbnN0YW5jZW9mIEZpbGVNYW5pZmVzdEVudHJ5KSB7XG4gICAgcmV0dXJuIG5ldyBGaWxlQXNzZXRIYW5kbGVyKG1hbmlmZXN0LmRpcmVjdG9yeSwgYXNzZXQsIGhvc3QpO1xuICB9XG4gIGlmIChhc3NldCBpbnN0YW5jZW9mIERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSkge1xuICAgIHJldHVybiBuZXcgQ29udGFpbmVySW1hZ2VBc3NldEhhbmRsZXIobWFuaWZlc3QuZGlyZWN0b3J5LCBhc3NldCwgaG9zdCwgb3B0aW9ucyk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBhc3NldCB0eXBlOiAnJHthc3NldH0nYCk7XG59XG4iXX0=","\"use strict\";\n/**\n * A minimal of p-limit that does not bring in new dependencies, and is not ESM.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pLimit = pLimit;\nfunction pLimit(concurrency) {\n const queue = [];\n let activeCount = 0;\n let stopped = false;\n function dispatch() {\n if (activeCount < concurrency && queue.length > 0) {\n const [fac, resolve, reject] = queue.shift();\n activeCount++;\n fac().then((r) => {\n // Start a new job before reporting back on the previous one\n resumeNext();\n resolve(r);\n }, (e) => {\n // Start a new job before reporting back on the previous one\n resumeNext();\n reject(e);\n });\n }\n }\n function resumeNext() {\n activeCount--;\n if (stopped) {\n for (const [_, __, reject] of queue) {\n reject(new Error('Task has been cancelled'));\n }\n queue.splice(0, queue.length);\n }\n dispatch();\n }\n const ret = (promiseFactory) => {\n return new Promise((resolve, reject) => {\n queue.push([promiseFactory, resolve, reject]);\n dispatch();\n });\n };\n Object.defineProperties(ret, {\n dispose: {\n value: () => {\n stopped = true;\n },\n },\n });\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC1saW1pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInAtbGltaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQUlILHdCQWtEQztBQWxERCxTQUFnQixNQUFNLENBQUMsV0FBbUI7SUFDeEMsTUFBTSxLQUFLLEdBQTJFLEVBQUUsQ0FBQztJQUN6RixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXBCLFNBQVMsUUFBUTtRQUNmLElBQUksV0FBVyxHQUFHLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUcsQ0FBQztZQUM5QyxXQUFXLEVBQUUsQ0FBQztZQUNkLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDUixDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNKLDREQUE0RDtnQkFDNUQsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxFQUNELENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0osNERBQTREO2dCQUM1RCxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDWixDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsQ0FBSSxjQUFpQyxFQUFFLEVBQUU7UUFDbkQsT0FBTyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzlDLFFBQVEsRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1FBQzNCLE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNqQixDQUFDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLEdBQWEsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIG1pbmltYWwgIG9mIHAtbGltaXQgdGhhdCBkb2VzIG5vdCBicmluZyBpbiBuZXcgZGVwZW5kZW5jaWVzLCBhbmQgaXMgbm90IEVTTS5cbiAqL1xuXG50eXBlIFByb21pc2VGYWN0b3J5PEE+ID0gKCkgPT4gUHJvbWlzZTxBPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBMaW1pdChjb25jdXJyZW5jeTogbnVtYmVyKTogUExpbWl0IHtcbiAgY29uc3QgcXVldWU6IEFycmF5PFtQcm9taXNlRmFjdG9yeTxhbnk+LCAoeDogYW55KSA9PiB2b2lkLCAocmVhc29uPzogYW55KSA9PiB2b2lkXT4gPSBbXTtcbiAgbGV0IGFjdGl2ZUNvdW50ID0gMDtcbiAgbGV0IHN0b3BwZWQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiBkaXNwYXRjaCgpIHtcbiAgICBpZiAoYWN0aXZlQ291bnQgPCBjb25jdXJyZW5jeSAmJiBxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBbZmFjLCByZXNvbHZlLCByZWplY3RdID0gcXVldWUuc2hpZnQoKSE7XG4gICAgICBhY3RpdmVDb3VudCsrO1xuICAgICAgZmFjKCkudGhlbihcbiAgICAgICAgKHIpID0+IHtcbiAgICAgICAgICAvLyBTdGFydCBhIG5ldyBqb2IgYmVmb3JlIHJlcG9ydGluZyBiYWNrIG9uIHRoZSBwcmV2aW91cyBvbmVcbiAgICAgICAgICByZXN1bWVOZXh0KCk7XG4gICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAvLyBTdGFydCBhIG5ldyBqb2IgYmVmb3JlIHJlcG9ydGluZyBiYWNrIG9uIHRoZSBwcmV2aW91cyBvbmVcbiAgICAgICAgICByZXN1bWVOZXh0KCk7XG4gICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZXN1bWVOZXh0KCkge1xuICAgIGFjdGl2ZUNvdW50LS07XG4gICAgaWYgKHN0b3BwZWQpIHtcbiAgICAgIGZvciAoY29uc3QgW18sIF9fLCByZWplY3RdIG9mIHF1ZXVlKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Rhc2sgaGFzIGJlZW4gY2FuY2VsbGVkJykpO1xuICAgICAgfVxuICAgICAgcXVldWUuc3BsaWNlKDAsIHF1ZXVlLmxlbmd0aCk7XG4gICAgfVxuICAgIGRpc3BhdGNoKCk7XG4gIH1cblxuICBjb25zdCByZXQgPSA8QT4ocHJvbWlzZUZhY3Rvcnk6IFByb21pc2VGYWN0b3J5PEE+KSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEE+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHF1ZXVlLnB1c2goW3Byb21pc2VGYWN0b3J5LCByZXNvbHZlLCByZWplY3RdKTtcbiAgICAgIGRpc3BhdGNoKCk7XG4gICAgfSk7XG4gIH07XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJldCwge1xuICAgIGRpc3Bvc2U6IHtcbiAgICAgIHZhbHVlOiAoKSA9PiB7XG4gICAgICAgIHN0b3BwZWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gcmV0IGFzIFBMaW1pdDtcbn1cblxuaW50ZXJmYWNlIFBMaW1pdCB7XG4gIGRpc3Bvc2UoKTogdm9pZDtcbiAgPEE+KHByb21pc2VGYWN0b3J5OiBQcm9taXNlRmFjdG9yeTxBPik6IFByb21pc2U8QT47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceAwsPlaceholders = replaceAwsPlaceholders;\nconst cx_api_1 = require(\"@aws-cdk/cx-api\");\n/**\n * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\nasync function replaceAwsPlaceholders(object, aws) {\n let partition = async () => {\n const p = await aws.discoverPartition();\n partition = () => Promise.resolve(p);\n return p;\n };\n let account = async () => {\n const a = await aws.discoverCurrentAccount();\n account = () => Promise.resolve(a);\n return a;\n };\n return cx_api_1.EnvironmentPlaceholders.replaceAsync(object, {\n async region() {\n return object.region ?? aws.discoverDefaultRegion();\n },\n async accountId() {\n return (await account()).accountId;\n },\n async partition() {\n return partition();\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esd0RBMkJDO0FBcENELDRDQUEwRDtBQUcxRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsTUFBUyxFQUNULEdBQVM7SUFFVCxJQUFJLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRTtRQUN6QixNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDO0lBRUYsSUFBSSxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsTUFBTSxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM3QyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQztJQUVGLE9BQU8sZ0NBQXVCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtRQUNsRCxLQUFLLENBQUMsTUFBTTtZQUNWLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVM7WUFDYixPQUFPLENBQUMsTUFBTSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVM7WUFDYixPQUFPLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMgfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBJQXdzIH0gZnJvbSAnLi4vYXdzJztcblxuLyoqXG4gKiBSZXBsYWNlIHRoZSB7QUNDT1VOVH0gYW5kIHtSRUdJT059IHBsYWNlaG9sZGVycyBpbiBhbGwgc3RyaW5ncyBmb3VuZCBpbiBhIGNvbXBsZXggb2JqZWN0LlxuICpcbiAqIER1cGxpY2F0ZWQgYmV0d2VlbiBjZGstYXNzZXRzIGFuZCBhd3MtY2RrIENMSSBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSBnb29kIHNpbmdsZSBwbGFjZSB0byBwdXQgaXRcbiAqICh0aGV5J3JlIG5vbWluYWxseSBpbmRlcGVuZGVudCB0b29scykuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBsYWNlQXdzUGxhY2Vob2xkZXJzPEEgZXh0ZW5kcyB7IHJlZ2lvbj86IHN0cmluZyB9PihcbiAgb2JqZWN0OiBBLFxuICBhd3M6IElBd3MsXG4pOiBQcm9taXNlPEE+IHtcbiAgbGV0IHBhcnRpdGlvbiA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwID0gYXdhaXQgYXdzLmRpc2NvdmVyUGFydGl0aW9uKCk7XG4gICAgcGFydGl0aW9uID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHApO1xuICAgIHJldHVybiBwO1xuICB9O1xuXG4gIGxldCBhY2NvdW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGEgPSBhd2FpdCBhd3MuZGlzY292ZXJDdXJyZW50QWNjb3VudCgpO1xuICAgIGFjY291bnQgPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoYSk7XG4gICAgcmV0dXJuIGE7XG4gIH07XG5cbiAgcmV0dXJuIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLnJlcGxhY2VBc3luYyhvYmplY3QsIHtcbiAgICBhc3luYyByZWdpb24oKSB7XG4gICAgICByZXR1cm4gb2JqZWN0LnJlZ2lvbiA/PyBhd3MuZGlzY292ZXJEZWZhdWx0UmVnaW9uKCk7XG4gICAgfSxcbiAgICBhc3luYyBhY2NvdW50SWQoKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IGFjY291bnQoKSkuYWNjb3VudElkO1xuICAgIH0sXG4gICAgYXN5bmMgcGFydGl0aW9uKCkge1xuICAgICAgcmV0dXJuIHBhcnRpdGlvbigpO1xuICAgIH0sXG4gIH0pO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shell = shell;\nconst child_process = require(\"child_process\");\n/**\n * OS helpers\n *\n * Shell function which both prints to stdout and collects the output into a\n * string.\n */\nasync function shell(command, options) {\n handleShellOutput(renderCommandLine(command), options, 'open');\n const child = child_process.spawn(command[0], command.slice(1), {\n ...options,\n stdio: [options.input ? 'pipe' : 'ignore', 'pipe', 'pipe'],\n });\n return new Promise((resolve, reject) => {\n if (options.input) {\n child.stdin.write(options.input);\n child.stdin.end();\n }\n const stdout = new Array();\n const stderr = new Array();\n // Both emit event and collect output\n child.stdout.on('data', (chunk) => {\n handleShellOutput(chunk, options, 'data_stdout');\n stdout.push(chunk);\n });\n child.stderr.on('data', (chunk) => {\n handleShellOutput(chunk, options, 'data_stderr');\n stderr.push(chunk);\n });\n child.once('error', reject);\n child.once('close', (code, signal) => {\n handleShellOutput(renderCommandLine(command), options, 'close');\n if (code === 0) {\n resolve(Buffer.concat(stdout).toString('utf-8'));\n }\n else {\n const out = Buffer.concat(stderr).toString('utf-8').trim();\n reject(new ProcessFailed(code, signal, `${renderCommandLine(command)} exited with ${code != null ? 'error code' : 'signal'} ${code ?? signal}: ${out}`));\n }\n });\n });\n}\nfunction handleShellOutput(chunk, options, shellEventType) {\n switch (options.subprocessOutputDestination) {\n case 'ignore':\n return;\n case 'publish':\n options.shellEventPublisher(shellEventType, chunk.toString('utf-8'));\n break;\n case 'stdio':\n default:\n switch (shellEventType) {\n case 'data_stdout':\n process.stdout.write(chunk);\n break;\n case 'data_stderr':\n process.stderr.write(chunk);\n break;\n case 'open':\n options.shellEventPublisher(shellEventType, chunk.toString('utf-8'));\n break;\n }\n break;\n }\n}\nclass ProcessFailed extends Error {\n constructor(exitCode, signal, message) {\n super(message);\n this.exitCode = exitCode;\n this.signal = signal;\n this.code = 'PROCESS_FAILED';\n }\n}\n/**\n * Render the given command line as a string\n *\n * Probably missing some cases but giving it a good effort.\n */\nfunction renderCommandLine(cmd) {\n if (process.platform !== 'win32') {\n return doRender(cmd, hasAnyChars(' ', '\\\\', '!', '\"', \"'\", '&', '$'), posixEscape);\n }\n else {\n return doRender(cmd, hasAnyChars(' ', '\"', '&', '^', '%'), windowsEscape);\n }\n}\n/**\n * Render a UNIX command line\n */\nfunction doRender(cmd, needsEscaping, doEscape) {\n return cmd.map((x) => (needsEscaping(x) ? doEscape(x) : x)).join(' ');\n}\n/**\n * Return a predicate that checks if a string has any of the indicated chars in it\n */\nfunction hasAnyChars(...chars) {\n return (str) => {\n return chars.some((c) => str.indexOf(c) !== -1);\n };\n}\n/**\n * Escape a shell argument for POSIX shells\n *\n * Wrapping in single quotes and escaping single quotes inside will do it for us.\n */\nfunction posixEscape(x) {\n // Turn ' -> '\"'\"'\n x = x.replace(/'/g, \"'\\\"'\\\"'\");\n return `'${x}'`;\n}\n/**\n * Escape a shell argument for cmd.exe\n *\n * This is how to do it right, but I'm not following everything:\n *\n * https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/\n */\nfunction windowsEscape(x) {\n // First surround by double quotes, ignore the part about backslashes\n x = `\"${x}\"`;\n // Now escape all special characters\n const shellMeta = new Set(['\"', '&', '^', '%']);\n return x\n .split('')\n .map((c) => (shellMeta.has(x) ? '^' + c : c))\n .join('');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSxzQkE2Q0M7QUFoRUQsK0NBQStDO0FBYS9DOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLEtBQUssQ0FBQyxPQUFpQixFQUFFLE9BQXFCO0lBQ2xFLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlELEdBQUcsT0FBTztRQUNWLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDM0QsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUM3QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsS0FBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsS0FBSyxDQUFDLEtBQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQU8sQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBTyxDQUFDO1FBRWhDLHFDQUFxQztRQUNyQyxLQUFLLENBQUMsTUFBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lB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SUFDOUIscUVBQXFFO0lBQ3JFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2Isb0NBQW9DO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUM7U0FDTCxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHR5cGUgeyBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gfSBmcm9tICcuL2Fzc2V0LWhhbmRsZXInO1xuXG5leHBvcnQgdHlwZSBTaGVsbEV2ZW50VHlwZSA9ICdvcGVuJyB8ICdkYXRhX3N0ZG91dCcgfCAnZGF0YV9zdGRlcnInIHwgJ2Nsb3NlJztcblxuZXhwb3J0IHR5cGUgU2hlbGxFdmVudFB1Ymxpc2hlciA9IChldmVudDogU2hlbGxFdmVudFR5cGUsIG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBTaGVsbE9wdGlvbnMgZXh0ZW5kcyBjaGlsZF9wcm9jZXNzLlNwYXduT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNoZWxsRXZlbnRQdWJsaXNoZXI6IFNoZWxsRXZlbnRQdWJsaXNoZXI7XG4gIHJlYWRvbmx5IGlucHV0Pzogc3RyaW5nO1xuICByZWFkb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24/OiBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb247XG59XG5cbi8qKlxuICogT1MgaGVscGVyc1xuICpcbiAqIFNoZWxsIGZ1bmN0aW9uIHdoaWNoIGJvdGggcHJpbnRzIHRvIHN0ZG91dCBhbmQgY29sbGVjdHMgdGhlIG91dHB1dCBpbnRvIGFcbiAqIHN0cmluZy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKGNvbW1hbmQ6IHN0cmluZ1tdLCBvcHRpb25zOiBTaGVsbE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBoYW5kbGVTaGVsbE91dHB1dChyZW5kZXJDb21tYW5kTGluZShjb21tYW5kKSwgb3B0aW9ucywgJ29wZW4nKTtcbiAgY29uc3QgY2hpbGQgPSBjaGlsZF9wcm9jZXNzLnNwYXduKGNvbW1hbmRbMF0sIGNvbW1hbmQuc2xpY2UoMSksIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIHN0ZGlvOiBbb3B0aW9ucy5pbnB1dCA/ICdwaXBlJyA6ICdpZ25vcmUnLCAncGlwZScsICdwaXBlJ10sXG4gIH0pO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAob3B0aW9ucy5pbnB1dCkge1xuICAgICAgY2hpbGQuc3RkaW4hLndyaXRlKG9wdGlvbnMuaW5wdXQpO1xuICAgICAgY2hpbGQuc3RkaW4hLmVuZCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZG91dCA9IG5ldyBBcnJheTxhbnk+KCk7XG4gICAgY29uc3Qgc3RkZXJyID0gbmV3IEFycmF5PGFueT4oKTtcblxuICAgIC8vIEJvdGggZW1pdCBldmVudCBhbmQgY29sbGVjdCBvdXRwdXRcbiAgICBjaGlsZC5zdGRvdXQhLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICBoYW5kbGVTaGVsbE91dHB1dChjaHVuaywgb3B0aW9ucywgJ2RhdGFfc3Rkb3V0Jyk7XG4gICAgICBzdGRvdXQucHVzaChjaHVuayk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIhLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICBoYW5kbGVTaGVsbE91dHB1dChjaHVuaywgb3B0aW9ucywgJ2RhdGFfc3RkZXJyJyk7XG4gICAgICBzdGRlcnIucHVzaChjaHVuayk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5vbmNlKCdlcnJvcicsIHJlamVjdCk7XG5cbiAgICBjaGlsZC5vbmNlKCdjbG9zZScsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIGhhbmRsZVNoZWxsT3V0cHV0KHJlbmRlckNvbW1hbmRMaW5lKGNvbW1hbmQpLCBvcHRpb25zLCAnY2xvc2UnKTtcbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIHJlc29sdmUoQnVmZmVyLmNvbmNhdChzdGRvdXQpLnRvU3RyaW5nKCd1dGYtOCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG91dCA9IEJ1ZmZlci5jb25jYXQoc3RkZXJyKS50b1N0cmluZygndXRmLTgnKS50cmltKCk7XG4gICAgICAgIHJlamVjdChcbiAgICAgICAgICBuZXcgUHJvY2Vzc0ZhaWxlZChcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzaWduYWwsXG4gICAgICAgICAgICBgJHtyZW5kZXJDb21tYW5kTGluZShjb21tYW5kKX0gZXhpdGVkIHdpdGggJHtjb2RlICE9IG51bGwgPyAnZXJyb3IgY29kZScgOiAnc2lnbmFsJ30gJHtjb2RlID8/IHNpZ25hbH06ICR7b3V0fWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVNoZWxsT3V0cHV0KFxuICBjaHVuazogQnVmZmVyIHwgc3RyaW5nLFxuICBvcHRpb25zOiBTaGVsbE9wdGlvbnMsXG4gIHNoZWxsRXZlbnRUeXBlOiBTaGVsbEV2ZW50VHlwZSxcbik6IHZvaWQge1xuICBzd2l0Y2ggKG9wdGlvbnMuc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uKSB7XG4gICAgY2FzZSAnaWdub3JlJzpcbiAgICAgIHJldHVybjtcbiAgICBjYXNlICdwdWJsaXNoJzpcbiAgICAgIG9wdGlvbnMuc2hlbGxFdmVudFB1Ymxpc2hlcihzaGVsbEV2ZW50VHlwZSwgY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RkaW8nOlxuICAgIGRlZmF1bHQ6XG4gICAgICBzd2l0Y2ggKHNoZWxsRXZlbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGFfc3Rkb3V0JzpcbiAgICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShjaHVuayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RhdGFfc3RkZXJyJzpcbiAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaHVuayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29wZW4nOlxuICAgICAgICAgIG9wdGlvbnMuc2hlbGxFdmVudFB1Ymxpc2hlcihzaGVsbEV2ZW50VHlwZSwgY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cbn1cbmV4cG9ydCB0eXBlIFByb2Nlc3NGYWlsZWRFcnJvciA9IFByb2Nlc3NGYWlsZWQ7XG5cbmNsYXNzIFByb2Nlc3NGYWlsZWQgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBjb2RlID0gJ1BST0NFU1NfRkFJTEVEJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXhpdENvZGU6IG51bWJlciB8IG51bGwsXG4gICAgcHVibGljIHJlYWRvbmx5IHNpZ25hbDogTm9kZUpTLlNpZ25hbHMgfCBudWxsLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGdpdmVuIGNvbW1hbmQgbGluZSBhcyBhIHN0cmluZ1xuICpcbiAqIFByb2JhYmx5IG1pc3Npbmcgc29tZSBjYXNlcyBidXQgZ2l2aW5nIGl0IGEgZ29vZCBlZmZvcnQuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlckNvbW1hbmRMaW5lKGNtZDogc3RyaW5nW10pIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gIT09ICd3aW4zMicpIHtcbiAgICByZXR1cm4gZG9SZW5kZXIoY21kLCBoYXNBbnlDaGFycygnICcsICdcXFxcJywgJyEnLCAnXCInLCBcIidcIiwgJyYnLCAnJCcpLCBwb3NpeEVzY2FwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGRvUmVuZGVyKGNtZCwgaGFzQW55Q2hhcnMoJyAnLCAnXCInLCAnJicsICdeJywgJyUnKSwgd2luZG93c0VzY2FwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBVTklYIGNvbW1hbmQgbGluZVxuICovXG5mdW5jdGlvbiBkb1JlbmRlcihcbiAgY21kOiBzdHJpbmdbXSxcbiAgbmVlZHNFc2NhcGluZzogKHg6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgZG9Fc2NhcGU6ICh4OiBzdHJpbmcpID0+IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIHJldHVybiBjbWQubWFwKCh4KSA9PiAobmVlZHNFc2NhcGluZyh4KSA/IGRvRXNjYXBlKHgpIDogeCkpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBwcmVkaWNhdGUgdGhhdCBjaGVja3MgaWYgYSBzdHJpbmcgaGFzIGFueSBvZiB0aGUgaW5kaWNhdGVkIGNoYXJzIGluIGl0XG4gKi9cbmZ1bmN0aW9uIGhhc0FueUNoYXJzKC4uLmNoYXJzOiBzdHJpbmdbXSk6ICh4OiBzdHJpbmcpID0+IGJvb2xlYW4ge1xuICByZXR1cm4gKHN0cjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGNoYXJzLnNvbWUoKGMpID0+IHN0ci5pbmRleE9mKGMpICE9PSAtMSk7XG4gIH07XG59XG5cbi8qKlxuICogRXNjYXBlIGEgc2hlbGwgYXJndW1lbnQgZm9yIFBPU0lYIHNoZWxsc1xuICpcbiAqIFdyYXBwaW5nIGluIHNpbmdsZSBxdW90ZXMgYW5kIGVzY2FwaW5nIHNpbmdsZSBxdW90ZXMgaW5zaWRlIHdpbGwgZG8gaXQgZm9yIHVzLlxuICovXG5mdW5jdGlvbiBwb3NpeEVzY2FwZSh4OiBzdHJpbmcpIHtcbiAgLy8gVHVybiAnIC0+ICdcIidcIidcbiAgeCA9IHgucmVwbGFjZSgvJy9nLCBcIidcXFwiJ1xcXCInXCIpO1xuICByZXR1cm4gYCcke3h9J2A7XG59XG5cbi8qKlxuICogRXNjYXBlIGEgc2hlbGwgYXJndW1lbnQgZm9yIGNtZC5leGVcbiAqXG4gKiBUaGlzIGlzIGhvdyB0byBkbyBpdCByaWdodCwgYnV0IEknbSBub3QgZm9sbG93aW5nIGV2ZXJ5dGhpbmc6XG4gKlxuICogaHR0cHM6Ly9ibG9ncy5tc2RuLm1pY3Jvc29mdC5jb20vdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS8yMDExLzA0LzIzL2V2ZXJ5b25lLXF1b3Rlcy1jb21tYW5kLWxpbmUtYXJndW1lbnRzLXRoZS13cm9uZy13YXkvXG4gKi9cbmZ1bmN0aW9uIHdpbmRvd3NFc2NhcGUoeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gRmlyc3Qgc3Vycm91bmQgYnkgZG91YmxlIHF1b3RlcywgaWdub3JlIHRoZSBwYXJ0IGFib3V0IGJhY2tzbGFzaGVzXG4gIHggPSBgXCIke3h9XCJgO1xuICAvLyBOb3cgZXNjYXBlIGFsbCBzcGVjaWFsIGNoYXJhY3RlcnNcbiAgY29uc3Qgc2hlbGxNZXRhID0gbmV3IFNldDxzdHJpbmc+KFsnXCInLCAnJicsICdeJywgJyUnXSk7XG4gIHJldHVybiB4XG4gICAgLnNwbGl0KCcnKVxuICAgIC5tYXAoKGMpID0+IChzaGVsbE1ldGEuaGFzKHgpID8gJ14nICsgYyA6IGMpKVxuICAgIC5qb2luKCcnKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCriticalSection = createCriticalSection;\n/**\n * Creates a critical section, ensuring that at most one function can\n * enter the critical section at a time.\n */\nfunction createCriticalSection() {\n let lock = Promise.resolve();\n return async (criticalFunction) => {\n const res = lock.then(() => criticalFunction());\n lock = res.catch((e) => e);\n return res;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzREFPQztBQVhEOzs7R0FHRztBQUNILFNBQWdCLHFCQUFxQjtJQUNuQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsT0FBTyxLQUFLLEVBQUUsZ0JBQXFDLEVBQUUsRUFBRTtRQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGVzIGEgY3JpdGljYWwgc2VjdGlvbiwgZW5zdXJpbmcgdGhhdCBhdCBtb3N0IG9uZSBmdW5jdGlvbiBjYW5cbiAqIGVudGVyIHRoZSBjcml0aWNhbCBzZWN0aW9uIGF0IGEgdGltZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNyaXRpY2FsU2VjdGlvbigpIHtcbiAgbGV0IGxvY2sgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgcmV0dXJuIGFzeW5jIChjcml0aWNhbEZ1bmN0aW9uOiAoKSA9PiBQcm9taXNlPHZvaWQ+KSA9PiB7XG4gICAgY29uc3QgcmVzID0gbG9jay50aGVuKCgpID0+IGNyaXRpY2FsRnVuY3Rpb24oKSk7XG4gICAgbG9jayA9IHJlcy5jYXRjaCgoZSkgPT4gZSk7XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventType = void 0;\nexports.shellEventToEventType = shellEventToEventType;\nexports.shellEventPublisherFromEventEmitter = shellEventPublisherFromEventEmitter;\n/**\n * A single event for an asset\n */\nvar EventType;\n(function (EventType) {\n /**\n * Just starting on an asset\n */\n EventType[\"START\"] = \"start\";\n /**\n * When an asset is successfully finished\n */\n EventType[\"SUCCESS\"] = \"success\";\n /**\n * When an asset failed\n */\n EventType[\"FAIL\"] = \"fail\";\n /**\n * Checking whether an asset has already been published\n */\n EventType[\"CHECK\"] = \"check\";\n /**\n * The asset was already published\n */\n EventType[\"FOUND\"] = \"found\";\n /**\n * The asset was reused locally from a cached version\n */\n EventType[\"CACHED\"] = \"cached\";\n /**\n * The asset will be built\n */\n EventType[\"BUILD\"] = \"build\";\n /**\n * The asset will be uploaded\n */\n EventType[\"UPLOAD\"] = \"upload\";\n /**\n * Another type of detail message\n */\n EventType[\"DEBUG\"] = \"debug\";\n /**\n * When a shell command is executed. Emits the the command line arguments given to\n * the subprocess as a string upon shell execution.\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_OPEN\"] = \"shell_open\";\n /**\n * stdout from a shell command\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_STDOUT\"] = \"shell_stdout\";\n /**\n * stdout from a shell command\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_STDERR\"] = \"shell_stderr\";\n /**\n * When a shell command closes. Emits the the command line arguments given to\n * the subprocess as a string upon shell closure.\n *\n * Only emitted when subprocessOutputDestination is set to 'publish'\n */\n EventType[\"SHELL_CLOSE\"] = \"shell_close\";\n})(EventType || (exports.EventType = EventType = {}));\n/**\n * A helper function to convert shell events to asset progress events\n * @param event - a shell event\n * @returns an {@link EventType}\n */\nfunction shellEventToEventType(event) {\n switch (event) {\n case 'open':\n return EventType.SHELL_OPEN;\n case 'close':\n return EventType.SHELL_CLOSE;\n case 'data_stdout':\n return EventType.SHELL_STDOUT;\n case 'data_stderr':\n return EventType.SHELL_STDERR;\n }\n}\n/**\n * Create a ShellEventPublisher for an {@link EventEmitter}\n *\n * Returns a ShellEventPublisher that translates ShellEvents into messages\n * emitted via the EventEmitter. Uses `shellEventToEventType` to translate\n * shell event types to event types\n */\nfunction shellEventPublisherFromEventEmitter(eventEmitter) {\n return (event, message) => {\n const eventType = shellEventToEventType(event);\n eventEmitter(eventType, message);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrR0Esc0RBV0M7QUFTRCxrRkFLQztBQTlHRDs7R0FFRztBQUNILElBQVksU0EyRVg7QUEzRUQsV0FBWSxTQUFTO0lBQ25COztPQUVHO0lBQ0gsNEJBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsZ0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwwQkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCw0QkFBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCw0QkFBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCw4QkFBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILDRCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDhCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsNEJBQWUsQ0FBQTtJQUVmOzs7OztPQUtHO0lBQ0gsc0NBQXlCLENBQUE7SUFFekI7Ozs7T0FJRztJQUNILDBDQUE2QixDQUFBO0lBRTdCOzs7O09BSUc7SUFDSCwwQ0FBNkIsQ0FBQTtJQUU3Qjs7Ozs7T0FLRztJQUNILHdDQUEyQixDQUFBO0FBQzdCLENBQUMsRUEzRVcsU0FBUyx5QkFBVCxTQUFTLFFBMkVwQjtBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFxQjtJQUN6RCxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxNQUFNO1lBQ1QsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQzlCLEtBQUssT0FBTztZQUNWLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUMvQixLQUFLLGFBQWE7WUFDaEIsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ2hDLEtBQUssYUFBYTtZQUNoQixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixtQ0FBbUMsQ0FBQyxZQUEwQjtJQUM1RSxPQUFPLENBQUMsS0FBcUIsRUFBRSxPQUFlLEVBQUUsRUFBRTtRQUNoRCxNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgdHlwZSB7IFNoZWxsRXZlbnRUeXBlIH0gZnJvbSAnLi9wcml2YXRlL3NoZWxsJztcblxuLyoqXG4gKiBBIGxpc3RlbmVyIGZvciBwcm9ncmVzcyBldmVudHMgZnJvbSB0aGUgcHVibGlzaGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVB1Ymxpc2hQcm9ncmVzc0xpc3RlbmVyIHtcbiAgLyoqXG4gICAqIEFzc2V0IGJ1aWxkIGV2ZW50XG4gICAqL1xuICBvblB1Ymxpc2hFdmVudCh0eXBlOiBFdmVudFR5cGUsIGV2ZW50OiBJUHVibGlzaFByb2dyZXNzKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBldmVudCBmb3IgYW4gYXNzZXRcbiAqL1xuZXhwb3J0IGVudW0gRXZlbnRUeXBlIHtcbiAgLyoqXG4gICAqIEp1c3Qgc3RhcnRpbmcgb24gYW4gYXNzZXRcbiAgICovXG4gIFNUQVJUID0gJ3N0YXJ0JyxcblxuICAvKipcbiAgICogV2hlbiBhbiBhc3NldCBpcyBzdWNjZXNzZnVsbHkgZmluaXNoZWRcbiAgICovXG4gIFNVQ0NFU1MgPSAnc3VjY2VzcycsXG5cbiAgLyoqXG4gICAqIFdoZW4gYW4gYXNzZXQgZmFpbGVkXG4gICAqL1xuICBGQUlMID0gJ2ZhaWwnLFxuXG4gIC8qKlxuICAgKiBDaGVja2luZyB3aGV0aGVyIGFuIGFzc2V0IGhhcyBhbHJlYWR5IGJlZW4gcHVibGlzaGVkXG4gICAqL1xuICBDSEVDSyA9ICdjaGVjaycsXG5cbiAgLyoqXG4gICAqIFRoZSBhc3NldCB3YXMgYWxyZWFkeSBwdWJsaXNoZWRcbiAgICovXG4gIEZPVU5EID0gJ2ZvdW5kJyxcblxuICAvKipcbiAgICogVGhlIGFzc2V0IHdhcyByZXVzZWQgbG9jYWxseSBmcm9tIGEgY2FjaGVkIHZlcnNpb25cbiAgICovXG4gIENBQ0hFRCA9ICdjYWNoZWQnLFxuXG4gIC8qKlxuICAgKiBUaGUgYXNzZXQgd2lsbCBiZSBidWlsdFxuICAgKi9cbiAgQlVJTEQgPSAnYnVpbGQnLFxuXG4gIC8qKlxuICAgKiBUaGUgYXNzZXQgd2lsbCBiZSB1cGxvYWRlZFxuICAgKi9cbiAgVVBMT0FEID0gJ3VwbG9hZCcsXG5cbiAgLyoqXG4gICAqIEFub3RoZXIgdHlwZSBvZiBkZXRhaWwgbWVzc2FnZVxuICAgKi9cbiAgREVCVUcgPSAnZGVidWcnLFxuXG4gIC8qKlxuICAgKiBXaGVuIGEgc2hlbGwgY29tbWFuZCBpcyBleGVjdXRlZC4gRW1pdHMgdGhlIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGdpdmVuIHRvXG4gICAqIHRoZSBzdWJwcm9jZXNzIGFzIGEgc3RyaW5nIHVwb24gc2hlbGwgZXhlY3V0aW9uLlxuICAgKlxuICAgKiBPbmx5IGVtaXR0ZWQgd2hlbiBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gaXMgc2V0IHRvICdwdWJsaXNoJ1xuICAgKi9cbiAgU0hFTExfT1BFTiA9ICdzaGVsbF9vcGVuJyxcblxuICAvKipcbiAgICogc3Rkb3V0IGZyb20gYSBzaGVsbCBjb21tYW5kXG4gICAqXG4gICAqIE9ubHkgZW1pdHRlZCB3aGVuIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbiBpcyBzZXQgdG8gJ3B1Ymxpc2gnXG4gICAqL1xuICBTSEVMTF9TVERPVVQgPSAnc2hlbGxfc3Rkb3V0JyxcblxuICAvKipcbiAgICogc3Rkb3V0IGZyb20gYSBzaGVsbCBjb21tYW5kXG4gICAqXG4gICAqIE9ubHkgZW1pdHRlZCB3aGVuIHN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbiBpcyBzZXQgdG8gJ3B1Ymxpc2gnXG4gICAqL1xuICBTSEVMTF9TVERFUlIgPSAnc2hlbGxfc3RkZXJyJyxcblxuICAvKipcbiAgICogV2hlbiBhIHNoZWxsIGNvbW1hbmQgY2xvc2VzLiBFbWl0cyB0aGUgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgZ2l2ZW4gdG9cbiAgICogdGhlIHN1YnByb2Nlc3MgYXMgYSBzdHJpbmcgdXBvbiBzaGVsbCBjbG9zdXJlLlxuICAgKlxuICAgKiBPbmx5IGVtaXR0ZWQgd2hlbiBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gaXMgc2V0IHRvICdwdWJsaXNoJ1xuICAgKi9cbiAgU0hFTExfQ0xPU0UgPSAnc2hlbGxfY2xvc2UnLFxufVxuXG4vKipcbiAqIEEgaGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgc2hlbGwgZXZlbnRzIHRvIGFzc2V0IHByb2dyZXNzIGV2ZW50c1xuICogQHBhcmFtIGV2ZW50IC0gYSBzaGVsbCBldmVudFxuICogQHJldHVybnMgYW4ge0BsaW5rIEV2ZW50VHlwZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoZWxsRXZlbnRUb0V2ZW50VHlwZShldmVudDogU2hlbGxFdmVudFR5cGUpOiBFdmVudFR5cGUge1xuICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgY2FzZSAnb3Blbic6XG4gICAgICByZXR1cm4gRXZlbnRUeXBlLlNIRUxMX09QRU47XG4gICAgY2FzZSAnY2xvc2UnOlxuICAgICAgcmV0dXJuIEV2ZW50VHlwZS5TSEVMTF9DTE9TRTtcbiAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICByZXR1cm4gRXZlbnRUeXBlLlNIRUxMX1NURE9VVDtcbiAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICByZXR1cm4gRXZlbnRUeXBlLlNIRUxMX1NUREVSUjtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIFNoZWxsRXZlbnRQdWJsaXNoZXIgZm9yIGFuIHtAbGluayBFdmVudEVtaXR0ZXJ9XG4gKlxuICogUmV0dXJucyBhIFNoZWxsRXZlbnRQdWJsaXNoZXIgdGhhdCB0cmFuc2xhdGVzIFNoZWxsRXZlbnRzIGludG8gbWVzc2FnZXNcbiAqIGVtaXR0ZWQgdmlhIHRoZSBFdmVudEVtaXR0ZXIuIFVzZXMgYHNoZWxsRXZlbnRUb0V2ZW50VHlwZWAgdG8gdHJhbnNsYXRlXG4gKiBzaGVsbCBldmVudCB0eXBlcyB0byBldmVudCB0eXBlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hlbGxFdmVudFB1Ymxpc2hlckZyb21FdmVudEVtaXR0ZXIoZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXIpIHtcbiAgcmV0dXJuIChldmVudDogU2hlbGxFdmVudFR5cGUsIG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGV2ZW50VHlwZSA9IHNoZWxsRXZlbnRUb0V2ZW50VHlwZShldmVudCk7XG4gICAgZXZlbnRFbWl0dGVyKGV2ZW50VHlwZSwgbWVzc2FnZSk7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50RW1pdHRlciA9ICh0eXBlOiBFdmVudFR5cGUsIG06IHN0cmluZykgPT4gdm9pZDtcblxuLyoqXG4gKiBDb250ZXh0IG9iamVjdCBmb3IgcHVibGlzaGluZyBwcm9ncmVzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQdWJsaXNoUHJvZ3Jlc3Mge1xuICAvKipcbiAgICogQ3VycmVudCBldmVudCBtZXNzYWdlXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFzc2V0IGN1cnJlbnRseSBiZWluZyBwYWNrYWdlZCAoaWYgYW55KVxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudEFzc2V0PzogSU1hbmlmZXN0RW50cnk7XG5cbiAgLyoqXG4gICAqIEhvdyBmYXIgYWxvbmcgYXJlIHdlP1xuICAgKi9cbiAgcmVhZG9ubHkgcGVyY2VudENvbXBsZXRlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFib3J0IHRoZSBjdXJyZW50IHB1Ymxpc2hpbmcgb3BlcmF0aW9uXG4gICAqL1xuICBhYm9ydCgpOiB2b2lkO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetPublishing = void 0;\nconst docker_1 = require(\"./private/docker\");\nconst handlers_1 = require(\"./private/handlers\");\nconst p_limit_1 = require(\"./private/p-limit\");\nconst progress_1 = require(\"./progress\");\nclass AssetPublishing {\n constructor(manifest, options) {\n this.manifest = manifest;\n this.options = options;\n /**\n * The message for the IPublishProgress interface\n */\n this.message = 'Starting';\n this.failures = new Array();\n this.completedOperations = 0;\n this.aborted = false;\n this.handlerCache = new Map();\n this.assets = manifest.entries;\n this.totalOperations = this.assets.length;\n this.publishInParallel = options.publishInParallel ?? false;\n this.buildAssets = options.buildAssets ?? true;\n this.publishAssets = options.publishAssets ?? true;\n const self = this;\n this.handlerHost = {\n aws: this.options.aws,\n get aborted() {\n return self.aborted;\n },\n emitMessage(t, m) {\n self.progressEvent(t, m);\n },\n dockerFactory: new docker_1.DockerFactory(),\n };\n }\n /**\n * Publish all assets from the manifest\n */\n async publish(options = {}) {\n if (this.publishInParallel) {\n const limit = (0, p_limit_1.pLimit)(20);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(this.assets.map((asset) => limit(async () => this.publishAsset(asset, options))));\n }\n else {\n for (const asset of this.assets) {\n if (!(await this.publishAsset(asset, options))) {\n break;\n }\n }\n }\n if ((this.options.throwOnError ?? true) && this.failures.length > 0) {\n throw new Error(`Error publishing: ${this.failures.map((e) => e.error.message)}`);\n }\n }\n /**\n * Build a single asset from the manifest\n */\n async buildEntry(asset) {\n try {\n if (this.progressEvent(progress_1.EventType.START, `Building ${asset.displayName(false)}`)) {\n return false;\n }\n const handler = this.assetHandler(asset);\n await handler.build();\n if (this.aborted) {\n throw new Error('Aborted');\n }\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.SUCCESS, `Built ${asset.displayName(false)}`)) {\n return false;\n }\n }\n catch (e) {\n this.failures.push({ asset, error: e });\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.FAIL, e.message)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Publish a single asset from the manifest\n */\n async publishEntry(asset, options = {}) {\n try {\n if (this.progressEvent(progress_1.EventType.START, `Publishing ${asset.displayName(true)}`)) {\n return false;\n }\n const handler = this.assetHandler(asset);\n await handler.publish(options);\n if (this.aborted) {\n throw new Error('Aborted');\n }\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.SUCCESS, `Published ${asset.displayName(true)}`)) {\n return false;\n }\n }\n catch (e) {\n this.failures.push({ asset, error: e });\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.FAIL, e.message)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Return whether a single asset is published\n */\n isEntryPublished(asset) {\n const handler = this.assetHandler(asset);\n return handler.isPublished();\n }\n /**\n * publish an asset (used by 'publish()')\n * @param asset - The asset to publish\n * @returns false when publishing should stop\n */\n async publishAsset(asset, options = {}) {\n try {\n if (this.progressEvent(progress_1.EventType.START, `Publishing ${asset.displayName(true)}`)) {\n return false;\n }\n const handler = this.assetHandler(asset);\n if (this.buildAssets) {\n await handler.build();\n }\n if (this.publishAssets) {\n await handler.publish(options);\n }\n if (this.aborted) {\n throw new Error('Aborted');\n }\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.SUCCESS, `Published ${asset.displayName(true)}`)) {\n return false;\n }\n }\n catch (e) {\n this.failures.push({ asset, error: e });\n this.completedOperations++;\n if (this.progressEvent(progress_1.EventType.FAIL, e.message)) {\n return false;\n }\n }\n return true;\n }\n get percentComplete() {\n if (this.totalOperations === 0) {\n return 100;\n }\n return Math.floor((this.completedOperations / this.totalOperations) * 100);\n }\n abort() {\n this.aborted = true;\n }\n get hasFailures() {\n return this.failures.length > 0;\n }\n /**\n * Publish a progress event to the listener, if present.\n *\n * Returns whether an abort is requested. Helper to get rid of repetitive code in publish().\n */\n progressEvent(event, message) {\n this.message = message;\n if (this.options.progressListener) {\n this.options.progressListener.onPublishEvent(event, this);\n }\n return this.aborted;\n }\n assetHandler(asset) {\n const existing = this.handlerCache.get(asset);\n if (existing) {\n return existing;\n }\n if (this.options.quiet !== undefined && this.options.subprocessOutputDestination) {\n throw new Error('Cannot set both quiet and subprocessOutputDestination. Please use only subprocessOutputDestination');\n }\n const subprocessOutputDestination = this.options.subprocessOutputDestination ?? (this.options.quiet ? 'ignore' : 'stdio');\n const ret = (0, handlers_1.makeAssetHandler)(this.manifest, asset, this.handlerHost, {\n subprocessOutputDestination,\n });\n this.handlerCache.set(asset, ret);\n return ret;\n }\n}\nexports.AssetPublishing = AssetPublishing;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsNkNBQWlEO0FBQ2pELGlEQUFzRDtBQUN0RCwrQ0FBMkM7QUFFM0MseUNBQXVDO0FBdUV2QyxNQUFhLGVBQWU7SUFzQjFCLFlBQ21CLFFBQXVCLEVBQ3ZCLE9BQStCO1FBRC9CLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUF2QmxEOztXQUVHO1FBQ0ksWUFBTyxHQUFXLFVBQVUsQ0FBQztRQU1wQixhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUk1Qyx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUtQLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFNdkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1FBRW5ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7WUFDckIsSUFBSSxPQUFPO2dCQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN0QixDQUFDO1lBQ0QsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFDRCxhQUFhLEVBQUUsSUFBSSxzQkFBYSxFQUFFO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQTBCLEVBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixNQUFNLEtBQUssR0FBRyxJQUFBLGdCQUFNLEVBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsd0VBQXdFO1lBQ3hFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUNqRixDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFxQjtRQUMzQyxJQUFJLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNoRixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRXRCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFFRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQVMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMvRSxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBcUIsRUFBRSxVQUEwQixFQUFFO1FBQzNFLElBQUksQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBUyxDQUFDLEtBQUssRUFBRSxjQUFjLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pGLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRS9CLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFFRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNsRixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLEtBQXFCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsT0FBTyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXFCLEVBQUUsVUFBMEIsRUFBRTtRQUM1RSxJQUFJLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQVMsQ0FBQyxLQUFLLEVBQUUsY0FBYyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNqRixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXpDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBUyxDQUFDLE9BQU8sRUFBRSxhQUFhLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xGLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDbEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxPQUFlO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBcUI7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDakYsTUFBTSxJQUFJLEtBQUssQ0FDYixvR0FBb0csQ0FDckcsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLDJCQUEyQixHQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEYsTUFBTSxHQUFHLEdBQUcsSUFBQSwyQkFBZ0IsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25FLDJCQUEyQjtTQUM1QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFoT0QsMENBZ09DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBc3NldE1hbmlmZXN0LCBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJy4vYXNzZXQtbWFuaWZlc3QnO1xuaW1wb3J0IHR5cGUgeyBJQXdzIH0gZnJvbSAnLi9hd3MnO1xuaW1wb3J0IHR5cGUge1xuICBJQXNzZXRIYW5kbGVyLFxuICBJSGFuZGxlckhvc3QsXG4gIFN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbixcbiAgUHVibGlzaE9wdGlvbnMsXG59IGZyb20gJy4vcHJpdmF0ZS9hc3NldC1oYW5kbGVyJztcbmltcG9ydCB7IERvY2tlckZhY3RvcnkgfSBmcm9tICcuL3ByaXZhdGUvZG9ja2VyJztcbmltcG9ydCB7IG1ha2VBc3NldEhhbmRsZXIgfSBmcm9tICcuL3ByaXZhdGUvaGFuZGxlcnMnO1xuaW1wb3J0IHsgcExpbWl0IH0gZnJvbSAnLi9wcml2YXRlL3AtbGltaXQnO1xuaW1wb3J0IHR5cGUgeyBJUHVibGlzaFByb2dyZXNzLCBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXIgfSBmcm9tICcuL3Byb2dyZXNzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4vcHJvZ3Jlc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHVibGlzaGluZ09wdGlvbnMge1xuICAvKipcbiAgICogRW50cnkgcG9pbnQgZm9yIEFXUyBjbGllbnRcbiAgICovXG4gIHJlYWRvbmx5IGF3czogSUF3cztcblxuICAvKipcbiAgICogTGlzdGVuZXIgZm9yIHByb2dyZXNzIGV2ZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCBObyBsaXN0ZW5lclxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZ3Jlc3NMaXN0ZW5lcj86IElQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB0aHJvdyBhdCB0aGUgZW5kIGlmIHRoZXJlIHdlcmUgZXJyb3JzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRocm93T25FcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHVibGlzaCBpbiBwYXJhbGxlbCwgd2hlbiAncHVibGlzaCgpJyBpcyBjYWxsZWRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hJblBhcmFsbGVsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBidWlsZCBhc3NldHMsIHdoZW4gJ3B1Ymxpc2goKScgaXMgY2FsbGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXNzZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwdWJsaXNoIGFzc2V0cywgd2hlbiAncHVibGlzaCgpJyBpcyBjYWxsZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaEFzc2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgI3N1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbn0gaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0byBzZW5kIG91dHB1dCBvZiBhIHN1YnByb2Nlc3Nlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAnc3RkaW8nXG4gICAqL1xuICBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24/OiBTdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb247XG59XG5cbi8qKlxuICogQSBmYWlsdXJlIHRvIHB1Ymxpc2ggYW4gYXNzZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGYWlsZWRBc3NldCB7XG4gIC8qKlxuICAgKiBUaGUgYXNzZXQgdGhhdCBmYWlsZWQgdG8gcHVibGlzaFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXQ6IElNYW5pZmVzdEVudHJ5O1xuXG4gIC8qKlxuICAgKiBUaGUgZmFpbHVyZSB0aGF0IG9jY3VycmVkXG4gICAqL1xuICByZWFkb25seSBlcnJvcjogRXJyb3I7XG59XG5cbmV4cG9ydCBjbGFzcyBBc3NldFB1Ymxpc2hpbmcgaW1wbGVtZW50cyBJUHVibGlzaFByb2dyZXNzIHtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGZvciB0aGUgSVB1Ymxpc2hQcm9ncmVzcyBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgPSAnU3RhcnRpbmcnO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBhc3NldCBmb3IgdGhlIElQdWJsaXNoUHJvZ3Jlc3MgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgY3VycmVudEFzc2V0PzogSU1hbmlmZXN0RW50cnk7XG4gIHB1YmxpYyByZWFkb25seSBmYWlsdXJlcyA9IG5ldyBBcnJheTxGYWlsZWRBc3NldD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldHM6IElNYW5pZmVzdEVudHJ5W107XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0b3RhbE9wZXJhdGlvbnM6IG51bWJlcjtcbiAgcHJpdmF0ZSBjb21wbGV0ZWRPcGVyYXRpb25zOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGFib3J0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVySG9zdDogSUhhbmRsZXJIb3N0O1xuICBwcml2YXRlIHJlYWRvbmx5IHB1Ymxpc2hJblBhcmFsbGVsOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGJ1aWxkQXNzZXRzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHB1Ymxpc2hBc3NldHM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlckNhY2hlID0gbmV3IE1hcDxJTWFuaWZlc3RFbnRyeSwgSUFzc2V0SGFuZGxlcj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQXNzZXRQdWJsaXNoaW5nT3B0aW9ucyxcbiAgKSB7XG4gICAgdGhpcy5hc3NldHMgPSBtYW5pZmVzdC5lbnRyaWVzO1xuICAgIHRoaXMudG90YWxPcGVyYXRpb25zID0gdGhpcy5hc3NldHMubGVuZ3RoO1xuICAgIHRoaXMucHVibGlzaEluUGFyYWxsZWwgPSBvcHRpb25zLnB1Ymxpc2hJblBhcmFsbGVsID8/IGZhbHNlO1xuICAgIHRoaXMuYnVpbGRBc3NldHMgPSBvcHRpb25zLmJ1aWxkQXNzZXRzID8/IHRydWU7XG4gICAgdGhpcy5wdWJsaXNoQXNzZXRzID0gb3B0aW9ucy5wdWJsaXNoQXNzZXRzID8/IHRydWU7XG5cbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLmhhbmRsZXJIb3N0ID0ge1xuICAgICAgYXdzOiB0aGlzLm9wdGlvbnMuYXdzLFxuICAgICAgZ2V0IGFib3J0ZWQoKSB7XG4gICAgICAgIHJldHVybiBzZWxmLmFib3J0ZWQ7XG4gICAgICB9LFxuICAgICAgZW1pdE1lc3NhZ2UodCwgbSkge1xuICAgICAgICBzZWxmLnByb2dyZXNzRXZlbnQodCwgbSk7XG4gICAgICB9LFxuICAgICAgZG9ja2VyRmFjdG9yeTogbmV3IERvY2tlckZhY3RvcnkoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYWxsIGFzc2V0cyBmcm9tIHRoZSBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2gob3B0aW9uczogUHVibGlzaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnB1Ymxpc2hJblBhcmFsbGVsKSB7XG4gICAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCgyMCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICB0aGlzLmFzc2V0cy5tYXAoKGFzc2V0KSA9PiBsaW1pdChhc3luYyAoKSA9PiB0aGlzLnB1Ymxpc2hBc3NldChhc3NldCwgb3B0aW9ucykpKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgYXNzZXQgb2YgdGhpcy5hc3NldHMpIHtcbiAgICAgICAgaWYgKCEoYXdhaXQgdGhpcy5wdWJsaXNoQXNzZXQoYXNzZXQsIG9wdGlvbnMpKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLm9wdGlvbnMudGhyb3dPbkVycm9yID8/IHRydWUpICYmIHRoaXMuZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBwdWJsaXNoaW5nOiAke3RoaXMuZmFpbHVyZXMubWFwKChlKSA9PiBlLmVycm9yLm1lc3NhZ2UpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHNpbmdsZSBhc3NldCBmcm9tIHRoZSBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJ1aWxkRW50cnkoYXNzZXQ6IElNYW5pZmVzdEVudHJ5KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLlNUQVJULCBgQnVpbGRpbmcgJHthc3NldC5kaXNwbGF5TmFtZShmYWxzZSl9YCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5hc3NldEhhbmRsZXIoYXNzZXQpO1xuICAgICAgYXdhaXQgaGFuZGxlci5idWlsZCgpO1xuXG4gICAgICBpZiAodGhpcy5hYm9ydGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQWJvcnRlZCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbXBsZXRlZE9wZXJhdGlvbnMrKztcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLlNVQ0NFU1MsIGBCdWlsdCAke2Fzc2V0LmRpc3BsYXlOYW1lKGZhbHNlKX1gKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aGlzLmZhaWx1cmVzLnB1c2goeyBhc3NldCwgZXJyb3I6IGUgfSk7XG4gICAgICB0aGlzLmNvbXBsZXRlZE9wZXJhdGlvbnMrKztcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLkZBSUwsIGUubWVzc2FnZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBzaW5nbGUgYXNzZXQgZnJvbSB0aGUgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwdWJsaXNoRW50cnkoYXNzZXQ6IElNYW5pZmVzdEVudHJ5LCBvcHRpb25zOiBQdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnByb2dyZXNzRXZlbnQoRXZlbnRUeXBlLlNUQVJULCBgUHVibGlzaGluZyAke2Fzc2V0LmRpc3BsYXlOYW1lKHRydWUpfWApKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuYXNzZXRIYW5kbGVyKGFzc2V0KTtcbiAgICAgIGF3YWl0IGhhbmRsZXIucHVibGlzaChvcHRpb25zKTtcblxuICAgICAgaWYgKHRoaXMuYWJvcnRlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zKys7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5TVUNDRVNTLCBgUHVibGlzaGVkICR7YXNzZXQuZGlzcGxheU5hbWUodHJ1ZSl9YCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhpcy5mYWlsdXJlcy5wdXNoKHsgYXNzZXQsIGVycm9yOiBlIH0pO1xuICAgICAgdGhpcy5jb21wbGV0ZWRPcGVyYXRpb25zKys7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5GQUlMLCBlLm1lc3NhZ2UpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciBhIHNpbmdsZSBhc3NldCBpcyBwdWJsaXNoZWRcbiAgICovXG4gIHB1YmxpYyBpc0VudHJ5UHVibGlzaGVkKGFzc2V0OiBJTWFuaWZlc3RFbnRyeSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmFzc2V0SGFuZGxlcihhc3NldCk7XG4gICAgcmV0dXJuIGhhbmRsZXIuaXNQdWJsaXNoZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwdWJsaXNoIGFuIGFzc2V0ICh1c2VkIGJ5ICdwdWJsaXNoKCknKVxuICAgKiBAcGFyYW0gYXNzZXQgLSBUaGUgYXNzZXQgdG8gcHVibGlzaFxuICAgKiBAcmV0dXJucyBmYWxzZSB3aGVuIHB1Ymxpc2hpbmcgc2hvdWxkIHN0b3BcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcHVibGlzaEFzc2V0KGFzc2V0OiBJTWFuaWZlc3RFbnRyeSwgb3B0aW9uczogUHVibGlzaE9wdGlvbnMgPSB7fSkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0V2ZW50KEV2ZW50VHlwZS5TVEFSVCwgYFB1Ymxpc2hpbmcgJHthc3NldC5kaXNwbGF5TmFtZSh0cnVlKX1gKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmFzc2V0SGFuZGxlcihhc3NldCk7XG5cbiAgICAgIGlmICh0aGlzLmJ1aWxkQXNzZXRzKSB7XG4gICAgICAgIGF3YWl0IGhhbmRsZXIuYnVpbGQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHVibGlzaEFzc2V0cykge1xuICAgICAgICBhd2FpdCBoYW5kbGVyLnB1Ymxpc2gob3B0aW9ucyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFib3J0ZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGVkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29tcGxldGVkT3BlcmF0aW9ucysrO1xuICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NFdmVudChFdmVudFR5cGUuU1VDQ0VTUywgYFB1Ymxpc2hlZCAke2Fzc2V0LmRpc3BsYXlOYW1lKHRydWUpfWApKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMuZmFpbHVyZXMucHVzaCh7IGFzc2V0LCBlcnJvcjogZSB9KTtcbiAgICAgIHRoaXMuY29tcGxldGVkT3BlcmF0aW9ucysrO1xuICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NFdmVudChFdmVudFR5cGUuRkFJTCwgZS5tZXNzYWdlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlcmNlbnRDb21wbGV0ZSgpIHtcbiAgICBpZiAodGhpcy50b3RhbE9wZXJhdGlvbnMgPT09IDApIHtcbiAgICAgIHJldHVybiAxMDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLmZsb29yKCh0aGlzLmNvbXBsZXRlZE9wZXJhdGlvbnMgLyB0aGlzLnRvdGFsT3BlcmF0aW9ucykgKiAxMDApO1xuICB9XG5cbiAgcHVibGljIGFib3J0KCk6IHZvaWQge1xuICAgIHRoaXMuYWJvcnRlZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0ZhaWx1cmVzKCkge1xuICAgIHJldHVybiB0aGlzLmZhaWx1cmVzLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhIHByb2dyZXNzIGV2ZW50IHRvIHRoZSBsaXN0ZW5lciwgaWYgcHJlc2VudC5cbiAgICpcbiAgICogUmV0dXJucyB3aGV0aGVyIGFuIGFib3J0IGlzIHJlcXVlc3RlZC4gSGVscGVyIHRvIGdldCByaWQgb2YgcmVwZXRpdGl2ZSBjb2RlIGluIHB1Ymxpc2goKS5cbiAgICovXG4gIHByaXZhdGUgcHJvZ3Jlc3NFdmVudChldmVudDogRXZlbnRUeXBlLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIGlmICh0aGlzLm9wdGlvbnMucHJvZ3Jlc3NMaXN0ZW5lcikge1xuICAgICAgdGhpcy5vcHRpb25zLnByb2dyZXNzTGlzdGVuZXIub25QdWJsaXNoRXZlbnQoZXZlbnQsIHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hYm9ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NldEhhbmRsZXIoYXNzZXQ6IElNYW5pZmVzdEVudHJ5KSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmhhbmRsZXJDYWNoZS5nZXQoYXNzZXQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLnF1aWV0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5vcHRpb25zLnN1YnByb2Nlc3NPdXRwdXREZXN0aW5hdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IHNldCBib3RoIHF1aWV0IGFuZCBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24uIFBsZWFzZSB1c2Ugb25seSBzdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24nLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uID1cbiAgICAgIHRoaXMub3B0aW9ucy5zdWJwcm9jZXNzT3V0cHV0RGVzdGluYXRpb24gPz8gKHRoaXMub3B0aW9ucy5xdWlldCA/ICdpZ25vcmUnIDogJ3N0ZGlvJyk7XG4gICAgY29uc3QgcmV0ID0gbWFrZUFzc2V0SGFuZGxlcih0aGlzLm1hbmlmZXN0LCBhc3NldCwgdGhpcy5oYW5kbGVySG9zdCwge1xuICAgICAgc3VicHJvY2Vzc091dHB1dERlc3RpbmF0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMuaGFuZGxlckNhY2hlLnNldChhc3NldCwgcmV0KTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestArtifact = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst ASSET_MANIFEST_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.AssetManifestArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass AssetManifestArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `AssetManifestArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `AssetManifestArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isAssetManifestArtifact(art) {\n return art && typeof art === 'object' && art[ASSET_MANIFEST_ARTIFACT_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid AssetManifestArtifact. Missing \"file\" property');\n }\n this.file = path.resolve(this.assembly.directory, properties.file);\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n }\n /**\n * The Asset Manifest contents\n */\n get contents() {\n if (this._contents !== undefined) {\n return this._contents;\n }\n const contents = this._contents = JSON.parse(fs.readFileSync(this.file, 'utf-8'));\n return contents;\n }\n}\nexports.AssetManifestArtifact = AssetManifestArtifact;\n/**\n * Mark all instances of 'AssetManifestArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(AssetManifestArtifact.prototype, ASSET_MANIFEST_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLHNEQUFrRDtBQUVsRCw0Q0FBc0Q7QUFFdEQsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFeEY7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLDhCQUFhO0lBQ3REOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFhLEdBQVE7UUFDeEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFxQkQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBcUMsQ0FBQztRQUN4RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxVQUFVLENBQUMsNkJBQTZCLENBQUM7UUFDOUUsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQztJQUN4RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQWhFRCxzREFnRUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLDJCQUEyQixFQUFFO0lBQ2xGLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLEtBQUs7SUFDakIsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuLi9wcml2YXRlL2Vycm9yJztcblxuY29uc3QgQVNTRVRfTUFOSUZFU1RfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCcpO1xuXG4vKipcbiAqIEFzc2V0IG1hbmlmZXN0IGlzIGEgZGVzY3JpcHRpb24gb2YgYSBzZXQgb2YgYXNzZXRzIHdoaWNoIG5lZWQgdG8gYmUgYnVpbHQgYW5kIHB1Ymxpc2hlZFxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRNYW5pZmVzdEFydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgQXNzZXRNYW5pZmVzdEFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBBc3NldE1hbmlmZXN0QXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh0aGlzOiB2b2lkLCBhcnQ6IGFueSk6IGFydCBpcyBBc3NldE1hbmlmZXN0QXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgYXJ0W0FTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTV07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgYXNzZXQgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogTmFtZSBvZiBTU00gcGFyYW1ldGVyIHdpdGggYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEaXNjb3ZlciBTU00gcGFyYW1ldGVyIGJ5IHJlYWRpbmcgc3RhY2tcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29udGVudHM/OiBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0O1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0UHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMuZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBBc3NldE1hbmlmZXN0QXJ0aWZhY3QuIE1pc3NpbmcgXCJmaWxlXCIgcHJvcGVydHknKTtcbiAgICB9XG4gICAgdGhpcy5maWxlID0gcGF0aC5yZXNvbHZlKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCBwcm9wZXJ0aWVzLmZpbGUpO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFzc2V0IE1hbmlmZXN0IGNvbnRlbnRzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRlbnRzKCk6IGN4c2NoZW1hLkFzc2V0TWFuaWZlc3Qge1xuICAgIGlmICh0aGlzLl9jb250ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29udGVudHM7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudHMgPSB0aGlzLl9jb250ZW50cyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHRoaXMuZmlsZSwgJ3V0Zi04JykpO1xuICAgIHJldHVybiBjb250ZW50cztcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnQXNzZXRNYW5pZmVzdEFydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEFzc2V0TWFuaWZlc3RBcnRpZmFjdC5wcm90b3R5cGUsIEFTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationStackArtifact = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst environment_1 = require(\"../environment\");\nconst error_1 = require(\"../private/error\");\nconst CLOUDFORMATION_STACK_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.CloudFormationStackArtifact');\nclass CloudFormationStackArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `CloudFormationStackArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `CloudFormationStackArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isCloudFormationStackArtifact(art) {\n return art && typeof art === 'object' && CLOUDFORMATION_STACK_ARTIFACT_SYM in art;\n }\n constructor(assembly, artifactId, artifact) {\n super(assembly, artifactId, artifact);\n const properties = (this.manifest.properties || {});\n if (!properties.templateFile) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing \"templateFile\" property in cloud assembly manifest');\n }\n if (!artifact.environment) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing environment');\n }\n this.environment = environment_1.EnvironmentUtils.parse(artifact.environment);\n this.templateFile = properties.templateFile;\n this.parameters = properties.parameters ?? {};\n // We get the tags from 'properties' if available (cloud assembly format >= 6.0.0), otherwise\n // from the stack metadata\n this.tags = properties.tags ?? {};\n this.notificationArns = properties.notificationArns;\n this.assumeRoleArn = properties.assumeRoleArn;\n this.assumeRoleExternalId = properties.assumeRoleExternalId;\n this.assumeRoleAdditionalOptions = properties.assumeRoleAdditionalOptions;\n this.cloudFormationExecutionRoleArn = properties.cloudFormationExecutionRoleArn;\n this.stackTemplateAssetObjectUrl = properties.stackTemplateAssetObjectUrl;\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n this.terminationProtection = properties.terminationProtection;\n this.validateOnSynth = properties.validateOnSynth;\n this.lookupRole = properties.lookupRole;\n this.stackName = properties.stackName || artifactId;\n this.assets = this.findMetadataByType(cxschema.ArtifactMetadataEntryType.ASSET).map(e => e.data);\n this.displayName = this.stackName === artifactId\n ? this.hierarchicalId\n : `${this.hierarchicalId} (${this.stackName})`;\n this.name = this.stackName; // backwards compat\n this.originalName = this.stackName;\n }\n /**\n * Full path to the template file\n */\n get templateFullPath() {\n return path.join(this.assembly.directory, this.templateFile);\n }\n /**\n * The CloudFormation template for this stack.\n */\n get template() {\n if (this._template === undefined) {\n this._template = JSON.parse(fs.readFileSync(this.templateFullPath, 'utf-8'));\n }\n return this._template;\n }\n}\nexports.CloudFormationStackArtifact = CloudFormationStackArtifact;\n/**\n * Mark all instances of 'CloudFormationStackArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(CloudFormationStackArtifact.prototype, CLOUDFORMATION_STACK_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDJEQUEyRDtBQUMzRCxzREFBa0Q7QUFHbEQsZ0RBQWtEO0FBQ2xELDRDQUFzRDtBQUN0RCxNQUFNLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUVwRyxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLGlDQUFpQyxJQUFJLEdBQUcsQ0FBQztJQUNwRixDQUFDO0lBbUlELFlBQVksUUFBdUIsRUFBRSxVQUFrQixFQUFFLFFBQW1DO1FBQzFGLEtBQUssQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUE4QyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLDBCQUFrQixDQUFDLG1HQUFtRyxDQUFDLENBQUM7UUFDcEksQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLDREQUE0RCxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUU5Qyw2RkFBNkY7UUFDN0YsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztRQUM1RCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsVUFBVSxDQUFDLDJCQUEyQixDQUFDO1FBQzFFLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxVQUFVLENBQUMsOEJBQThCLENBQUM7UUFDaEYsSUFBSSxDQUFDLDJCQUEyQixHQUFHLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQztRQUMxRSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsVUFBVSxDQUFDLDZCQUE2QixDQUFDO1FBQzlFLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxVQUFVLENBQUMsaUNBQWlDLENBQUM7UUFDdEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFtQyxDQUFDLENBQUM7UUFFaEksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLFVBQVU7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQ3JCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDO1FBRWpELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLG1CQUFtQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBL01ELGtFQStNQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsaUNBQWlDLEVBQUU7SUFDOUYsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsS0FBSztJQUNqQixRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRVdGlscyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uL3ByaXZhdGUvZXJyb3InO1xuY29uc3QgQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCcpO1xuXG5leHBvcnQgY2xhc3MgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnQ6IGFueSk6IGFydCBpcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNIGluIGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZUZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIG5hbWUgYXMgZGVmaW5lZCBpbiB0aGUgQ0RLIGFwcC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvcmlnaW5hbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW55IGFzc2V0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldHM6IGN4c2NoZW1hLkFzc2V0TWV0YWRhdGFFbnRyeVtdO1xuXG4gIC8qKlxuICAgKiBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2xvdWRGb3JtYXRpb24gdGFncyB0byBwYXNzIHRvIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWdzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNOUyBUb3BpY3MgdGhhdCB3aWxsIHJlY2VpdmUgc3RhY2sgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIG5hbWUgb2YgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoaXMgc3RhY2suIFNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdXNlclxuICAgKiBpbnRlcmZhY2VzLiBJZiB0aGUgc3RhY2tOYW1lIGhhcyBub3QgYmVlbiBzZXQgZXhwbGljaXRseSwgb3IgaGFzIGJlZW4gc2V0XG4gICAqIHRvIGFydGlmYWN0SWQsIGl0IHdpbGwgcmV0dXJuIHRoZSBoaWVyYXJjaGljYWxJZCBvZiB0aGUgc3RhY2suIE90aGVyd2lzZSxcbiAgICogaXQgd2lsbCByZXR1cm4gc29tZXRoaW5nIGxpa2UgXCI8aGllcmFyY2hpY2FsSWQ+ICg8c3RhY2tOYW1lPilcIlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoaXMgc3RhY2suXG4gICAqIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gYHN0YWNrTmFtZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBpbnRvIHdoaWNoIHRvIGRlcGxveSB0aGlzIGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcblxuICAvKipcbiAgICogVGhlIHJvbGUgdGhhdCBuZWVkcyB0byBiZSBhc3N1bWVkIHRvIGRlcGxveSB0aGUgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0ZXJuYWwgSUQgdG8gdXNlIHdoZW4gYXNzdW1pbmcgcm9sZSBmb3IgY2xvdWRmb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlIGZvciBjbG91ZGZvcm1hdGlvbiBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogLSBgUm9sZUFybmAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUFybmAgcHJvcGVydHkgaW5zdGVhZC5cbiAgICogLSBgRXh0ZXJuYWxJZGAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUV4dGVybmFsSWRgIGluc3RlYWQuXG4gICAqIC0gYFRyYW5zaXRpdmVUYWdLZXlzYCBkZWZhdWx0cyB0byB1c2UgYWxsIGtleXMgKGlmIGFueSkgc3BlY2lmaWVkIGluIGBUYWdzYC4gRS5nLCBhbGwgdGFncyBhcmUgdHJhbnNpdGl2ZSBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgaXMgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIHBhc3NlZCAoY3VycmVudGx5IGFzc3VtZWQgcm9sZS9jcmVkZW50aWFscyBhcmUgdXNlZClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRvIHVzZSB0byBsb29rIHVwIHZhbHVlcyBmcm9tIHRoZSB0YXJnZXQgQVdTIGFjY291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9va3VwUm9sZT86IGN4c2NoZW1hLkJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBzdGFjayB0ZW1wbGF0ZSBoYXMgYWxyZWFkeSBiZWVuIGluY2x1ZGVkIGluIHRoZSBhc3NldCBtYW5pZmVzdCwgaXRzIGFzc2V0IFVSTFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCB1cGxvYWRlZCB5ZXQsIHVwbG9hZCBqdXN0IGJlZm9yZSBkZXBsb3lpbmdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgU1NNIHBhcmFtZXRlciB3aXRoIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGlzY292ZXIgU1NNIHBhcmFtZXRlciBieSByZWFkaW5nIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RhY2sgc2hvdWxkIGJlIHZhbGlkYXRlZCBieSB0aGUgQ0xJIGFmdGVyIHN5bnRoZXNpc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdGVPblN5bnRoPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF90ZW1wbGF0ZTogYW55IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBhcnRpZmFjdElkOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIGFydGlmYWN0SWQsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMudGVtcGxhdGVGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbnZhbGlkIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0LiBNaXNzaW5nIFwidGVtcGxhdGVGaWxlXCIgcHJvcGVydHkgaW4gY2xvdWQgYXNzZW1ibHkgbWFuaWZlc3QnKTtcbiAgICB9XG4gICAgaWYgKCFhcnRpZmFjdC5lbnZpcm9ubWVudCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdC4gTWlzc2luZyBlbnZpcm9ubWVudCcpO1xuICAgIH1cbiAgICB0aGlzLmVudmlyb25tZW50ID0gRW52aXJvbm1lbnRVdGlscy5wYXJzZShhcnRpZmFjdC5lbnZpcm9ubWVudCk7XG4gICAgdGhpcy50ZW1wbGF0ZUZpbGUgPSBwcm9wZXJ0aWVzLnRlbXBsYXRlRmlsZTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwcm9wZXJ0aWVzLnBhcmFtZXRlcnMgPz8ge307XG5cbiAgICAvLyBXZSBnZXQgdGhlIHRhZ3MgZnJvbSAncHJvcGVydGllcycgaWYgYXZhaWxhYmxlIChjbG91ZCBhc3NlbWJseSBmb3JtYXQgPj0gNi4wLjApLCBvdGhlcndpc2VcbiAgICAvLyBmcm9tIHRoZSBzdGFjayBtZXRhZGF0YVxuICAgIHRoaXMudGFncyA9IHByb3BlcnRpZXMudGFncyA/PyB7fTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkFybnMgPSBwcm9wZXJ0aWVzLm5vdGlmaWNhdGlvbkFybnM7XG4gICAgdGhpcy5hc3N1bWVSb2xlQXJuID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQXJuO1xuICAgIHRoaXMuYXNzdW1lUm9sZUV4dGVybmFsSWQgPSBwcm9wZXJ0aWVzLmFzc3VtZVJvbGVFeHRlcm5hbElkO1xuICAgIHRoaXMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gICAgdGhpcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4gPSBwcm9wZXJ0aWVzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybjtcbiAgICB0aGlzLnN0YWNrVGVtcGxhdGVBc3NldE9iamVjdFVybCA9IHByb3BlcnRpZXMuc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gICAgdGhpcy50ZXJtaW5hdGlvblByb3RlY3Rpb24gPSBwcm9wZXJ0aWVzLnRlcm1pbmF0aW9uUHJvdGVjdGlvbjtcbiAgICB0aGlzLnZhbGlkYXRlT25TeW50aCA9IHByb3BlcnRpZXMudmFsaWRhdGVPblN5bnRoO1xuICAgIHRoaXMubG9va3VwUm9sZSA9IHByb3BlcnRpZXMubG9va3VwUm9sZTtcblxuICAgIHRoaXMuc3RhY2tOYW1lID0gcHJvcGVydGllcy5zdGFja05hbWUgfHwgYXJ0aWZhY3RJZDtcbiAgICB0aGlzLmFzc2V0cyA9IHRoaXMuZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuQVNTRVQpLm1hcChlID0+IGUuZGF0YSBhcyBjeHNjaGVtYS5Bc3NldE1ldGFkYXRhRW50cnkpO1xuXG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMuc3RhY2tOYW1lID09PSBhcnRpZmFjdElkXG4gICAgICA/IHRoaXMuaGllcmFyY2hpY2FsSWRcbiAgICAgIDogYCR7dGhpcy5oaWVyYXJjaGljYWxJZH0gKCR7dGhpcy5zdGFja05hbWV9KWA7XG5cbiAgICB0aGlzLm5hbWUgPSB0aGlzLnN0YWNrTmFtZTsgLy8gYmFja3dhcmRzIGNvbXBhdFxuICAgIHRoaXMub3JpZ2luYWxOYW1lID0gdGhpcy5zdGFja05hbWU7XG4gIH1cblxuICAvKipcbiAgICogRnVsbCBwYXRoIHRvIHRoZSB0ZW1wbGF0ZSBmaWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRlbXBsYXRlRnVsbFBhdGgoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGhpcy50ZW1wbGF0ZUZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogYW55IHtcbiAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdGVtcGxhdGUgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLnRlbXBsYXRlRnVsbFBhdGgsICd1dGYtOCcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlO1xuICB9XG59XG5cbi8qKlxuICogTWFyayBhbGwgaW5zdGFuY2VzIG9mICdDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QnXG4gKlxuICogV2h5IG5vdCBwdXQgdGhpcyBpbiB0aGUgY29uc3RydWN0b3I/IEJlY2F1c2UgdGhpcyBpcyBhIGNsYXNzIHByb3BlcnR5LFxuICogbm90IGFuIGluc3RhbmNlIHByb3BlcnR5LiBJdCBhcHBsaWVzIHRvIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LnByb3RvdHlwZSwgQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNLCB7XG4gIHZhbHVlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgd3JpdGFibGU6IGZhbHNlLFxufSk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst nested_cloud_assembly_artifact_1 = require(\"./nested-cloud-assembly-artifact\");\nconst cloud_assembly_1 = require(\"../cloud-assembly\");\nconst cacheSym = Symbol();\n/**\n * The nested Assembly\n *\n * Declared in a different file to break circular dep between CloudAssembly and NestedCloudAssemblyArtifact\n */\nObject.defineProperty(nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact.prototype, 'nestedAssembly', {\n get() {\n if (!this[cacheSym]) {\n this[cacheSym] = new cloud_assembly_1.CloudAssembly(this.fullPath, this.assembly.loadOptions);\n }\n return this[cacheSym];\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5lc3RlZC1jbG91ZC1hc3NlbWJseS1hcnRpZmFjdC1hdWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxRkFBK0U7QUFDL0Usc0RBQWtEO0FBRWxELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBRTFCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDREQUEyQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtJQUM3RSxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IH0gZnJvbSAnLi9uZXN0ZWQtY2xvdWQtYXNzZW1ibHktYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcblxuY29uc3QgY2FjaGVTeW0gPSBTeW1ib2woKTtcblxuLyoqXG4gKiBUaGUgbmVzdGVkIEFzc2VtYmx5XG4gKlxuICogRGVjbGFyZWQgaW4gYSBkaWZmZXJlbnQgZmlsZSB0byBicmVhayBjaXJjdWxhciBkZXAgYmV0d2VlbiBDbG91ZEFzc2VtYmx5IGFuZCBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3RcbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdC5wcm90b3R5cGUsICduZXN0ZWRBc3NlbWJseScsIHtcbiAgZ2V0KCkge1xuICAgIGlmICghdGhpc1tjYWNoZVN5bV0pIHtcbiAgICAgIHRoaXNbY2FjaGVTeW1dID0gbmV3IENsb3VkQXNzZW1ibHkodGhpcy5mdWxsUGF0aCwgdGhpcy5hc3NlbWJseS5sb2FkT3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzW2NhY2hlU3ltXTtcbiAgfSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NestedCloudAssemblyArtifact = void 0;\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst NESTED_CLOUD_ASSEMBLY_SYM = Symbol.for('@aws-cdk/cx-api.NestedCloudAssemblyArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass NestedCloudAssemblyArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `NestedCloudAssemblyArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `NestedCloudAssemblyArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isNestedCloudAssemblyArtifact(art) {\n return art && typeof art === 'object' && NESTED_CLOUD_ASSEMBLY_SYM in art;\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n const properties = (this.manifest.properties || {});\n this.directoryName = properties.directoryName;\n this.displayName = properties.displayName ?? name;\n }\n /**\n * Full path to the nested assembly directory\n */\n get fullPath() {\n return path.join(this.assembly.directory, this.directoryName);\n }\n}\nexports.NestedCloudAssemblyArtifact = NestedCloudAssemblyArtifact;\n/**\n * Mark all instances of 'NestedCloudAssemblyArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(NestedCloudAssemblyArtifact.prototype, NESTED_CLOUD_ASSEMBLY_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3QixzREFBa0Q7QUFHbEQsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFNUY7O0dBRUc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLHlCQUF5QixJQUFJLEdBQUcsQ0FBQztJQUM1RSxDQUFDO0lBWUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBMkMsQ0FBQztRQUM5RixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUE5Q0Qsa0VBOENDO0FBV0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSx5QkFBeUIsRUFBRTtJQUN0RixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vY2xvdWQtYXNzZW1ibHknO1xuXG5jb25zdCBORVNURURfQ0xPVURfQVNTRU1CTFlfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLk5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCcpO1xuXG4vKipcbiAqIEFzc2V0IG1hbmlmZXN0IGlzIGEgZGVzY3JpcHRpb24gb2YgYSBzZXQgb2YgYXNzZXRzIHdoaWNoIG5lZWQgdG8gYmUgYnVpbHQgYW5kIHB1Ymxpc2hlZFxuICovXG5leHBvcnQgY2xhc3MgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdChhcnQ6IGFueSk6IGFydCBpcyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgTkVTVEVEX0NMT1VEX0FTU0VNQkxZX1NZTSBpbiBhcnQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIGRpcmVjdG9yeSBuYW1lIG9mIHRoZSBhc3NldCBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGlzcGxheSBuYW1lXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgbmFtZTogc3RyaW5nLCBhcnRpZmFjdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHN1cGVyKGFzc2VtYmx5LCBuYW1lLCBhcnRpZmFjdCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gKHRoaXMubWFuaWZlc3QucHJvcGVydGllcyB8fCB7fSkgYXMgY3hzY2hlbWEuTmVzdGVkQ2xvdWRBc3NlbWJseVByb3BlcnRpZXM7XG4gICAgdGhpcy5kaXJlY3RvcnlOYW1lID0gcHJvcGVydGllcy5kaXJlY3RvcnlOYW1lO1xuICAgIHRoaXMuZGlzcGxheU5hbWUgPSBwcm9wZXJ0aWVzLmRpc3BsYXlOYW1lID8/IG5hbWU7XG4gIH1cblxuICAvKipcbiAgICogRnVsbCBwYXRoIHRvIHRoZSBuZXN0ZWQgYXNzZW1ibHkgZGlyZWN0b3J5XG4gICAqL1xuICBwdWJsaWMgZ2V0IGZ1bGxQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGhpcy5kaXJlY3RvcnlOYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBUaGUgbmVzdGVkIEFzc2VtYmx5XG4gICAqL1xuICByZWFkb25seSBuZXN0ZWRBc3NlbWJseTogQ2xvdWRBc3NlbWJseTtcblxuICAvLyBEZWNsYXJlZCBpbiBhIGRpZmZlcmVudCBmaWxlXG59XG5cbi8qKlxuICogTWFyayBhbGwgaW5zdGFuY2VzIG9mICdOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QnXG4gKlxuICogV2h5IG5vdCBwdXQgdGhpcyBpbiB0aGUgY29uc3RydWN0b3I/IEJlY2F1c2UgdGhpcyBpcyBhIGNsYXNzIHByb3BlcnR5LFxuICogbm90IGFuIGluc3RhbmNlIHByb3BlcnR5LiBJdCBhcHBsaWVzIHRvIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0LnByb3RvdHlwZSwgTkVTVEVEX0NMT1VEX0FTU0VNQkxZX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TreeCloudArtifact = void 0;\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst TREE_CLOUD_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.TreeCloudArtifact');\nclass TreeCloudArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `TreeCloudArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `TreeCloudArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isTreeCloudArtifact(art) {\n return art && typeof art === 'object' && TREE_CLOUD_ARTIFACT_SYM in art;\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid TreeCloudArtifact. Missing \"file\" property');\n }\n this.file = properties.file;\n }\n}\nexports.TreeCloudArtifact = TreeCloudArtifact;\n/**\n * Mark all instances of 'TreeCloudArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(TreeCloudArtifact.prototype, TREE_CLOUD_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jbG91ZC1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUtY2xvdWQtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esc0RBQWtEO0FBRWxELDRDQUFzRDtBQUV0RCxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUVoRixNQUFhLGlCQUFrQixTQUFRLDhCQUFhO0lBQ2xEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVE7UUFDeEMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLHVCQUF1QixJQUFJLEdBQUcsQ0FBQztJQUMxRSxDQUFDO0lBSUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBb0MsQ0FBQztRQUN2RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBakNELDhDQWlDQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUU7SUFDMUUsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsS0FBSztJQUNqQixRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vcHJpdmF0ZS9lcnJvcic7XG5cbmNvbnN0IFRSRUVfQ0xPVURfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLlRyZWVDbG91ZEFydGlmYWN0Jyk7XG5cbmV4cG9ydCBjbGFzcyBUcmVlQ2xvdWRBcnRpZmFjdCBleHRlbmRzIENsb3VkQXJ0aWZhY3Qge1xuICAvKipcbiAgICogQ2hlY2tzIGlmIGBhcnRgIGlzIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuXG4gICAqXG4gICAqIFVzZSB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGBpbnN0YW5jZW9mYCB0byBwcm9wZXJseSBkZXRlY3QgYFRyZWVDbG91ZEFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBUcmVlQ2xvdWRBcnRpZmFjdGAgaW4gZWFjaCBjb3B5IG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5XG4gICAqIGlzIHNlZW4gYXMgYSBkaWZmZXJlbnQgY2xhc3MsIGFuZCBhbiBpbnN0YW5jZSBvZiBvbmUgY2xhc3Mgd2lsbCBub3QgdGVzdCBhc1xuICAgKiBgaW5zdGFuY2VvZmAgdGhlIG90aGVyIGNsYXNzLiBgbnBtIGluc3RhbGxgIHdpbGwgbm90IGNyZWF0ZSBpbnN0YWxsYXRpb25zXG4gICAqIGxpa2UgdGhpcywgYnV0IHVzZXJzIG1heSBtYW51YWxseSBzeW1saW5rIGNvbnN0cnVjdCBsaWJyYXJpZXMgdG9nZXRoZXIgb3JcbiAgICogdXNlIGEgbW9ub3JlcG8gdG9vbDogaW4gdGhvc2UgY2FzZXMsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWBcbiAgICogbGlicmFyeSBjYW4gYmUgYWNjaWRlbnRhbGx5IGluc3RhbGxlZCwgYW5kIGBpbnN0YW5jZW9mYCB3aWxsIGJlaGF2ZVxuICAgKiB1bnByZWRpY3RhYmx5LiBJdCBpcyBzYWZlc3QgdG8gYXZvaWQgdXNpbmcgYGluc3RhbmNlb2ZgLCBhbmQgdXNpbmdcbiAgICogdGhpcyB0eXBlLXRlc3RpbmcgbWV0aG9kIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVHJlZUNsb3VkQXJ0aWZhY3QoYXJ0OiBhbnkpOiBhcnQgaXMgVHJlZUNsb3VkQXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgVFJFRV9DTE9VRF9BUlRJRkFDVF9TWU0gaW4gYXJ0O1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgbmFtZTogc3RyaW5nLCBhcnRpZmFjdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHN1cGVyKGFzc2VtYmx5LCBuYW1lLCBhcnRpZmFjdCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gKHRoaXMubWFuaWZlc3QucHJvcGVydGllcyB8fCB7fSkgYXMgY3hzY2hlbWEuVHJlZUFydGlmYWN0UHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMuZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBUcmVlQ2xvdWRBcnRpZmFjdC4gTWlzc2luZyBcImZpbGVcIiBwcm9wZXJ0eScpO1xuICAgIH1cbiAgICB0aGlzLmZpbGUgPSBwcm9wZXJ0aWVzLmZpbGU7XG4gIH1cbn1cblxuLyoqXG4gKiBNYXJrIGFsbCBpbnN0YW5jZXMgb2YgJ1RyZWVDbG91ZEFydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFRyZWVDbG91ZEFydGlmYWN0LnByb3RvdHlwZSwgVFJFRV9DTE9VRF9BUlRJRkFDVF9TWU0sIHtcbiAgdmFsdWU6IHRydWUsXG4gIGVudW1lcmFibGU6IGZhbHNlLFxuICB3cml0YWJsZTogZmFsc2UsXG59KTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASSET_PREFIX_SEPARATOR = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = exports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = exports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_CONTEXTS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = exports.ASSET_RESOURCE_METADATA_PATH_KEY = exports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = void 0;\n/**\n * If this is set in the context, the aws:asset:xxx metadata entries will not be\n * added to the template. This is used, for example, when we run integrationt\n * tests.\n */\nexports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = 'aws:cdk:enable-asset-metadata';\n/**\n * Metadata added to the CloudFormation template entries that map local assets\n * to resources.\n */\nexports.ASSET_RESOURCE_METADATA_PATH_KEY = 'aws:asset:path';\nexports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = 'aws:asset:dockerfile-path';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = 'aws:asset:docker-build-args';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_CONTEXTS_KEY = 'aws:asset:docker-build-contexts';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = 'aws:asset:docker-build-secrets';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = 'aws:asset:docker-build-ssh';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = 'aws:asset:docker-build-target';\nexports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = 'aws:asset:property';\nexports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = 'aws:asset:is-bundled';\nexports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = 'aws:asset:docker-outputs';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = 'aws:asset:docker-cache-from';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = 'aws:asset:docker-cache-to';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = 'aws:asset:docker-cache-disabled';\n/**\n * Separator string that separates the prefix separator from the object key separator.\n *\n * Asset keys will look like:\n *\n * /assets/MyConstruct12345678/||abcdef12345.zip\n *\n * This allows us to encode both the prefix and the full location in a single\n * CloudFormation Template Parameter.\n */\nexports.ASSET_PREFIX_SEPARATOR = '||';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDVSxRQUFBLHVDQUF1QyxHQUFHLCtCQUErQixDQUFDO0FBRXZGOzs7R0FHRztBQUNVLFFBQUEsZ0NBQWdDLEdBQUcsZ0JBQWdCLENBQUM7QUFDcEQsUUFBQSwyQ0FBMkMsR0FBRywyQkFBMkIsQ0FBQztBQUMxRSxRQUFBLDZDQUE2QyxHQUFHLDZCQUE2QixDQUFDO0FBQzlFLFFBQUEsaURBQWlELEdBQUcsaUNBQWlDLENBQUM7QUFDdEYsUUFBQSxnREFBZ0QsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNwRixRQUFBLDRDQUE0QyxHQUFHLDRCQUE0QixDQUFDO0FBQzVFLFFBQUEsK0NBQStDLEdBQUcsK0JBQStCLENBQUM7QUFDbEYsUUFBQSxvQ0FBb0MsR0FBRyxvQkFBb0IsQ0FBQztBQUM1RCxRQUFBLHNDQUFzQyxHQUFHLHNCQUFzQixDQUFDO0FBQ2hFLFFBQUEsMENBQTBDLEdBQUcsMEJBQTBCLENBQUM7QUFDeEUsUUFBQSw2Q0FBNkMsR0FBRyw2QkFBNkIsQ0FBQztBQUM5RSxRQUFBLDJDQUEyQyxHQUFHLDJCQUEyQixDQUFDO0FBQzFFLFFBQUEsaURBQWlELEdBQUcsaUNBQWlDLENBQUM7QUFFbkc7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIElmIHRoaXMgaXMgc2V0IGluIHRoZSBjb250ZXh0LCB0aGUgYXdzOmFzc2V0Onh4eCBtZXRhZGF0YSBlbnRyaWVzIHdpbGwgbm90IGJlXG4gKiBhZGRlZCB0byB0aGUgdGVtcGxhdGUuIFRoaXMgaXMgdXNlZCwgZm9yIGV4YW1wbGUsIHdoZW4gd2UgcnVuIGludGVncmF0aW9udFxuICogdGVzdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9FTkFCTEVEX0NPTlRFWFQgPSAnYXdzOmNkazplbmFibGUtYXNzZXQtbWV0YWRhdGEnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGFkZGVkIHRvIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBlbnRyaWVzIHRoYXQgbWFwIGxvY2FsIGFzc2V0c1xuICogdG8gcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfUEFUSF9LRVkgPSAnYXdzOmFzc2V0OnBhdGgnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUkZJTEVfUEFUSF9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlcmZpbGUtcGF0aCc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0JVSUxEX0FSR1NfS0VZID0gJ2F3czphc3NldDpkb2NrZXItYnVpbGQtYXJncyc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0JVSUxEX0NPTlRFWFRTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLWNvbnRleHRzJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQlVJTERfU0VDUkVUU19LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1idWlsZC1zZWNyZXRzJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQlVJTERfU1NIX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLXNzaCc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0JVSUxEX1RBUkdFVF9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1idWlsZC10YXJnZXQnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX1BST1BFUlRZX0tFWSA9ICdhd3M6YXNzZXQ6cHJvcGVydHknO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0lTX0JVTkRMRURfS0VZID0gJ2F3czphc3NldDppcy1idW5kbGVkJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfT1VUUFVUU19LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1vdXRwdXRzJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQ0FDSEVfRlJPTV9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1jYWNoZS1mcm9tJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQ0FDSEVfVE9fS0VZID0gJ2F3czphc3NldDpkb2NrZXItY2FjaGUtdG8nO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9DQUNIRV9ESVNBQkxFRF9LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1jYWNoZS1kaXNhYmxlZCc7XG5cbi8qKlxuICogU2VwYXJhdG9yIHN0cmluZyB0aGF0IHNlcGFyYXRlcyB0aGUgcHJlZml4IHNlcGFyYXRvciBmcm9tIHRoZSBvYmplY3Qga2V5IHNlcGFyYXRvci5cbiAqXG4gKiBBc3NldCBrZXlzIHdpbGwgbG9vayBsaWtlOlxuICpcbiAqICAgIC9hc3NldHMvTXlDb25zdHJ1Y3QxMjM0NTY3OC98fGFiY2RlZjEyMzQ1LnppcFxuICpcbiAqIFRoaXMgYWxsb3dzIHVzIHRvIGVuY29kZSBib3RoIHRoZSBwcmVmaXggYW5kIHRoZSBmdWxsIGxvY2F0aW9uIGluIGEgc2luZ2xlXG4gKiBDbG91ZEZvcm1hdGlvbiBUZW1wbGF0ZSBQYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBBU1NFVF9QUkVGSVhfU0VQQVJBVE9SID0gJ3x8JztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSMPARAM_NO_INVALIDATE = void 0;\n/**\n * This SSM parameter does not invalidate the template\n *\n * If this string occurs in the description of an SSM parameter, the CLI\n * will not assume that the stack must always be redeployed.\n */\nexports.SSMPARAM_NO_INVALIDATE = '[cdk:skip]';\n// Not strictly part of the cloud-assembly-api, but it definitely belongs here more than in cx-api.\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7OztHQUtHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxZQUFZLENBQUM7QUFFbkQsbUdBQW1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIFNTTSBwYXJhbWV0ZXIgZG9lcyBub3QgaW52YWxpZGF0ZSB0aGUgdGVtcGxhdGVcbiAqXG4gKiBJZiB0aGlzIHN0cmluZyBvY2N1cnMgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIGFuIFNTTSBwYXJhbWV0ZXIsIHRoZSBDTElcbiAqIHdpbGwgbm90IGFzc3VtZSB0aGF0IHRoZSBzdGFjayBtdXN0IGFsd2F5cyBiZSByZWRlcGxveWVkLlxuICovXG5leHBvcnQgY29uc3QgU1NNUEFSQU1fTk9fSU5WQUxJREFURSA9ICdbY2RrOnNraXBdJztcblxuLy8gTm90IHN0cmljdGx5IHBhcnQgb2YgdGhlIGNsb3VkLWFzc2VtYmx5LWFwaSwgYnV0IGl0IGRlZmluaXRlbHkgYmVsb25ncyBoZXJlIG1vcmUgdGhhbiBpbiBjeC1hcGkuXG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst asset_manifest_artifact_1 = require(\"./artifacts/asset-manifest-artifact\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\n/**\n * Add the 'fromManifest' factory function\n *\n * It is defined in a separate file to avoid circular dependencies between 'cloud-artifact.ts'\n * and all of its subclass files.\n */\ncloud_artifact_1.CloudArtifact.fromManifest = function fromManifest(assembly, id, artifact) {\n switch (artifact.type) {\n case cxschema.ArtifactType.AWS_CLOUDFORMATION_STACK:\n return new cloudformation_artifact_1.CloudFormationStackArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.CDK_TREE:\n return new tree_cloud_artifact_1.TreeCloudArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.ASSET_MANIFEST:\n return new asset_manifest_artifact_1.AssetManifestArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY:\n return new nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact(assembly, id, artifact);\n default:\n return undefined;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QtYXVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtYXJ0aWZhY3QtYXVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkRBQTJEO0FBQzNELGlGQUE0RTtBQUM1RSxpRkFBa0Y7QUFDbEYsK0ZBQXlGO0FBQ3pGLHlFQUFvRTtBQUNwRSxxREFBaUQ7QUFHakQ7Ozs7O0dBS0c7QUFDSCw4QkFBYSxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FDaEQsUUFBdUIsRUFDdkIsRUFBVSxFQUNWLFFBQW1DO0lBRW5DLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFlBQVksQ0FBQyx3QkFBd0I7WUFDakQsT0FBTyxJQUFJLHFEQUEyQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDakMsT0FBTyxJQUFJLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWM7WUFDdkMsT0FBTyxJQUFJLCtDQUFxQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLHFCQUFxQjtZQUM5QyxPQUFPLElBQUksNERBQTJCLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRTtZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQXNzZXRNYW5pZmVzdEFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvYXNzZXQtbWFuaWZlc3QtYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QnO1xuaW1wb3J0IHsgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCB7IFRyZWVDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvdHJlZS1jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcblxuLyoqXG4gKiBBZGQgdGhlICdmcm9tTWFuaWZlc3QnIGZhY3RvcnkgZnVuY3Rpb25cbiAqXG4gKiBJdCBpcyBkZWZpbmVkIGluIGEgc2VwYXJhdGUgZmlsZSB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYmV0d2VlbiAnY2xvdWQtYXJ0aWZhY3QudHMnXG4gKiBhbmQgYWxsIG9mIGl0cyBzdWJjbGFzcyBmaWxlcy5cbiAqL1xuQ2xvdWRBcnRpZmFjdC5mcm9tTWFuaWZlc3QgPSBmdW5jdGlvbiBmcm9tTWFuaWZlc3QoXG4gIGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LFxuICBpZDogc3RyaW5nLFxuICBhcnRpZmFjdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCxcbik6IENsb3VkQXJ0aWZhY3QgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKGFydGlmYWN0LnR5cGUpIHtcbiAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0s6XG4gICAgICByZXR1cm4gbmV3IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhc3NlbWJseSwgaWQsIGFydGlmYWN0KTtcbiAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0VHlwZS5DREtfVFJFRTpcbiAgICAgIHJldHVybiBuZXcgVHJlZUNsb3VkQXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQVNTRVRfTUFOSUZFU1Q6XG4gICAgICByZXR1cm4gbmV3IEFzc2V0TWFuaWZlc3RBcnRpZmFjdChhc3NlbWJseSwgaWQsIGFydGlmYWN0KTtcbiAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0VHlwZS5ORVNURURfQ0xPVURfQVNTRU1CTFk6XG4gICAgICByZXR1cm4gbmV3IE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdChhc3NlbWJseSwgaWQsIGFydGlmYWN0KTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudArtifact = void 0;\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst metadata_1 = require(\"./metadata\");\nconst error_1 = require(\"./private/error\");\n/**\n * Represents an artifact within a cloud assembly.\n */\nclass CloudArtifact {\n /**\n * Read the metadata for the given artifact\n *\n * HISTORICAL OR PRIVATE USE ONLY\n *\n * This is publicly exposed as a static function for downstream libraries that\n * don't use the `CloudAssembly`/`CloudArtifact` API, yet still need to read\n * an artifact's metadata.\n *\n * 99% of consumers should just access `artifact.metadata`.\n */\n static readMetadata(assemblyDirectory, x) {\n const ret = {};\n if (x.additionalMetadataFile) {\n Object.assign(ret, JSON.parse(fs.readFileSync(path.join(assemblyDirectory, x.additionalMetadataFile), 'utf-8')));\n }\n for (const [p, entries] of Object.entries(x.metadata ?? {})) {\n if (ret[p]) {\n ret[p].push(...entries);\n }\n else {\n ret[p] = entries;\n }\n }\n return ret;\n }\n /**\n * Returns a subclass of `CloudArtifact` based on the artifact type defined in the artifact manifest.\n *\n * @param assembly - The cloud assembly from which to load the artifact\n * @param id - The artifact ID\n * @param artifact - The artifact manifest\n * @returns the `CloudArtifact` that matches the artifact type or `undefined` if it's an artifact type that is unrecognized by this module.\n */\n static fromManifest(assembly, id, artifact) {\n // Implementation is defined in a separate file to break cyclic dependencies\n void (assembly), void (id), void (artifact);\n throw new error_1.CloudAssemblyError('Implementation not overridden yet');\n }\n constructor(assembly, id, manifest) {\n this.assembly = assembly;\n this.id = id;\n this.manifest = manifest;\n this.messages = this.renderMessages();\n this._dependencyIDs = manifest.dependencies || [];\n }\n /**\n * Returns the metadata associated with this Cloud Artifact\n */\n get metadata() {\n return CloudArtifact.readMetadata(this.assembly.directory, this.manifest);\n }\n /**\n * Returns all the artifacts that this artifact depends on.\n */\n get dependencies() {\n if (this._deps) {\n return this._deps;\n }\n this._deps = this._dependencyIDs.map(id => {\n const dep = this.assembly.tryGetArtifact(id);\n if (!dep) {\n throw new error_1.CloudAssemblyError(`Artifact ${this.id} depends on non-existing artifact ${id}`);\n }\n return dep;\n });\n return this._deps;\n }\n /**\n * @returns all the metadata entries of a specific type in this artifact.\n */\n findMetadataByType(type) {\n const metadata = this.metadata;\n const result = new Array();\n for (const p of Object.keys(metadata || {})) {\n for (const entry of (metadata || {})[p]) {\n if (entry.type === type) {\n result.push({ path: p, ...entry });\n }\n }\n }\n return result;\n }\n renderMessages() {\n const messages = new Array();\n for (const [id, metadata] of Object.entries(this.metadata || {})) {\n for (const entry of metadata) {\n let level;\n switch (entry.type) {\n case cxschema.ArtifactMetadataEntryType.WARN:\n level = metadata_1.SynthesisMessageLevel.WARNING;\n break;\n case cxschema.ArtifactMetadataEntryType.ERROR:\n level = metadata_1.SynthesisMessageLevel.ERROR;\n break;\n case cxschema.ArtifactMetadataEntryType.INFO:\n level = metadata_1.SynthesisMessageLevel.INFO;\n break;\n default:\n continue;\n }\n messages.push({ level, entry, id });\n }\n }\n return messages;\n }\n /**\n * An identifier that shows where this artifact is located in the tree\n * of nested assemblies, based on their manifests. Defaults to the normal\n * id. Should only be used in user interfaces.\n */\n get hierarchicalId() {\n return this.manifest.displayName ?? this.id;\n }\n}\nexports.CloudArtifact = CloudArtifact;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDJEQUEyRDtBQUczRCx5Q0FBbUQ7QUFDbkQsMkNBQXFEO0FBOEJyRDs7R0FFRztBQUNILE1BQWEsYUFBYTtJQUN4Qjs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxpQkFBeUIsRUFBRSxDQUE0QjtRQUNoRixNQUFNLEdBQUcsR0FBNkMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ILENBQUM7UUFFRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDMUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUF1QixFQUFFLEVBQVUsRUFBRSxRQUFtQztR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QzNDLEtBQUssR0FBRyxnQ0FBcUIsQ0FBQyxLQUFLLENBQUM7d0JBQ3BDLE1BQU07b0JBQ1IsS0FBSyxRQUFRLENBQUMseUJBQXlCLENBQUMsSUFBSTt3QkFDMUMsS0FBSyxHQUFHLGdDQUFxQixDQUFDLElBQUksQ0FBQzt3QkFDbkMsTUFBTTtvQkFDUjt3QkFDRSxTQUFTO2dCQUNiLENBQUM7Z0JBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFwSkQsc0NBb0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgTWV0YWRhdGFFbnRyeVJlc3VsdCwgU3ludGhlc2lzTWVzc2FnZSB9IGZyb20gJy4vbWV0YWRhdGEnO1xuaW1wb3J0IHsgU3ludGhlc2lzTWVzc2FnZUxldmVsIH0gZnJvbSAnLi9tZXRhZGF0YSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL3ByaXZhdGUvZXJyb3InO1xuXG4vKipcbiAqIEFydGlmYWN0IHByb3BlcnRpZXMgZm9yIENsb3VkRm9ybWF0aW9uIHN0YWNrcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBBIGZpbGUgcmVsYXRpdmUgdG8gdGhlIGFzc2VtYmx5IHJvb3Qgd2hpY2ggY29udGFpbnMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGZvciB0aGlzIHN0YWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGVGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhbHVlcyBmb3IgQ2xvdWRGb3JtYXRpb24gc3RhY2sgcGFyYW1ldGVycyB0aGF0IHNob3VsZCBiZSBwYXNzZWQgd2hlbiB0aGUgc3RhY2sgaXMgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0byB1c2UgZm9yIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICogQGRlZmF1bHQgLSBuYW1lIGRlcml2ZWQgZnJvbSBhcnRpZmFjdCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIGZvciB0aGlzIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVybWluYXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGFydGlmYWN0IHdpdGhpbiBhIGNsb3VkIGFzc2VtYmx5LlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBSZWFkIHRoZSBtZXRhZGF0YSBmb3IgdGhlIGdpdmVuIGFydGlmYWN0XG4gICAqXG4gICAqIEhJU1RPUklDQUwgT1IgUFJJVkFURSBVU0UgT05MWVxuICAgKlxuICAgKiBUaGlzIGlzIHB1YmxpY2x5IGV4cG9zZWQgYXMgYSBzdGF0aWMgZnVuY3Rpb24gZm9yIGRvd25zdHJlYW0gbGlicmFyaWVzIHRoYXRcbiAgICogZG9uJ3QgdXNlIHRoZSBgQ2xvdWRBc3NlbWJseWAvYENsb3VkQXJ0aWZhY3RgIEFQSSwgeWV0IHN0aWxsIG5lZWQgdG8gcmVhZFxuICAgKiBhbiBhcnRpZmFjdCdzIG1ldGFkYXRhLlxuICAgKlxuICAgKiA5OSUgb2YgY29uc3VtZXJzIHNob3VsZCBqdXN0IGFjY2VzcyBgYXJ0aWZhY3QubWV0YWRhdGFgLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkTWV0YWRhdGEoYXNzZW1ibHlEaXJlY3Rvcnk6IHN0cmluZywgeDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCk6IFJlY29yZDxzdHJpbmcsIGN4c2NoZW1hLk1ldGFkYXRhRW50cnlbXT4ge1xuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgY3hzY2hlbWEuTWV0YWRhdGFFbnRyeVtdPiA9IHt9O1xuICAgIGlmICh4LmFkZGl0aW9uYWxNZXRhZGF0YUZpbGUpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmV0LCBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oYXNzZW1ibHlEaXJlY3RvcnksIHguYWRkaXRpb25hbE1ldGFkYXRhRmlsZSksICd1dGYtOCcpKSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbcCwgZW50cmllc10gb2YgT2JqZWN0LmVudHJpZXMoeC5tZXRhZGF0YSA/PyB7fSkpIHtcbiAgICAgIGlmIChyZXRbcF0pIHtcbiAgICAgICAgcmV0W3BdLnB1c2goLi4uZW50cmllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXRbcF0gPSBlbnRyaWVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN1YmNsYXNzIG9mIGBDbG91ZEFydGlmYWN0YCBiYXNlZCBvbiB0aGUgYXJ0aWZhY3QgdHlwZSBkZWZpbmVkIGluIHRoZSBhcnRpZmFjdCBtYW5pZmVzdC5cbiAgICpcbiAgICogQHBhcmFtIGFzc2VtYmx5IC0gVGhlIGNsb3VkIGFzc2VtYmx5IGZyb20gd2hpY2ggdG8gbG9hZCB0aGUgYXJ0aWZhY3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIGFydGlmYWN0IElEXG4gICAqIEBwYXJhbSBhcnRpZmFjdCAtIFRoZSBhcnRpZmFjdCBtYW5pZmVzdFxuICAgKiBAcmV0dXJucyB0aGUgYENsb3VkQXJ0aWZhY3RgIHRoYXQgbWF0Y2hlcyB0aGUgYXJ0aWZhY3QgdHlwZSBvciBgdW5kZWZpbmVkYCBpZiBpdCdzIGFuIGFydGlmYWN0IHR5cGUgdGhhdCBpcyB1bnJlY29nbml6ZWQgYnkgdGhpcyBtb2R1bGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21NYW5pZmVzdChhc3NlbWJseTogQ2xvdWRBc3NlbWJseSwgaWQ6IHN0cmluZywgYXJ0aWZhY3Q6IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QpOiBDbG91ZEFydGlmYWN0IHwgdW5kZWZpbmVkIHtcbiAgICAvLyBJbXBsZW1lbnRhdGlvbiBpcyBkZWZpbmVkIGluIGEgc2VwYXJhdGUgZmlsZSB0byBicmVhayBjeWNsaWMgZGVwZW5kZW5jaWVzXG4gICAgdm9pZChhc3NlbWJseSksIHZvaWQoaWQpLCB2b2lkKGFydGlmYWN0KTtcbiAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbXBsZW1lbnRhdGlvbiBub3Qgb3ZlcnJpZGRlbiB5ZXQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3QncyBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIG1lc3NhZ2VzIGV4dHJhY3RlZCBmcm9tIHRoZSBhcnRpZmFjdCdzIG1ldGFkYXRhLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzOiBTeW50aGVzaXNNZXNzYWdlW107XG5cbiAgLyoqXG4gICAqIElEcyBvZiBhbGwgZGVwZW5kZW5jaWVzLiBVc2VkIHdoZW4gdG9wb2xvZ2ljYWxseSBzb3J0aW5nIHRoZSBhcnRpZmFjdHMgd2l0aGluIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgX2RlcGVuZGVuY3lJRHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDYWNoZSBvZiByZXNvbHZlZCBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBwcml2YXRlIF9kZXBzPzogQ2xvdWRBcnRpZmFjdFtdO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IENsb3VkQXNzZW1ibHksIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nLCBtYW5pZmVzdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHRoaXMubWFuaWZlc3QgPSBtYW5pZmVzdDtcbiAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5yZW5kZXJNZXNzYWdlcygpO1xuICAgIHRoaXMuX2RlcGVuZGVuY3lJRHMgPSBtYW5pZmVzdC5kZXBlbmRlbmNpZXMgfHwgW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQ2xvdWQgQXJ0aWZhY3RcbiAgICovXG4gIHB1YmxpYyBnZXQgbWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIENsb3VkQXJ0aWZhY3QucmVhZE1ldGFkYXRhKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCB0aGlzLm1hbmlmZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCB0aGUgYXJ0aWZhY3RzIHRoYXQgdGhpcyBhcnRpZmFjdCBkZXBlbmRzIG9uLlxuICAgKi9cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogQ2xvdWRBcnRpZmFjdFtdIHtcbiAgICBpZiAodGhpcy5fZGVwcykge1xuICAgICAgcmV0dXJuIHRoaXMuX2RlcHM7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVwcyA9IHRoaXMuX2RlcGVuZGVuY3lJRHMubWFwKGlkID0+IHtcbiAgICAgIGNvbnN0IGRlcCA9IHRoaXMuYXNzZW1ibHkudHJ5R2V0QXJ0aWZhY3QoaWQpO1xuICAgICAgaWYgKCFkZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgQXJ0aWZhY3QgJHt0aGlzLmlkfSBkZXBlbmRzIG9uIG5vbi1leGlzdGluZyBhcnRpZmFjdCAke2lkfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRlcDtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9kZXBzO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGFsbCB0aGUgbWV0YWRhdGEgZW50cmllcyBvZiBhIHNwZWNpZmljIHR5cGUgaW4gdGhpcyBhcnRpZmFjdC5cbiAgICovXG4gIHB1YmxpYyBmaW5kTWV0YWRhdGFCeVR5cGUodHlwZTogc3RyaW5nKTogTWV0YWRhdGFFbnRyeVJlc3VsdFtdIHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMubWV0YWRhdGE7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8TWV0YWRhdGFFbnRyeVJlc3VsdD4oKTtcbiAgICBmb3IgKGNvbnN0IHAgb2YgT2JqZWN0LmtleXMobWV0YWRhdGEgfHwge30pKSB7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIChtZXRhZGF0YSB8fCB7fSlbcF0pIHtcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IHR5cGUpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh7IHBhdGg6IHAsIC4uLmVudHJ5IH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlck1lc3NhZ2VzKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gbmV3IEFycmF5PFN5bnRoZXNpc01lc3NhZ2U+KCk7XG5cbiAgICBmb3IgKGNvbnN0IFtpZCwgbWV0YWRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWV0YWRhdGEgfHwgeyB9KSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBtZXRhZGF0YSkge1xuICAgICAgICBsZXQgbGV2ZWw6IFN5bnRoZXNpc01lc3NhZ2VMZXZlbDtcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLldBUk46XG4gICAgICAgICAgICBsZXZlbCA9IFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5XQVJOSU5HO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLkVSUk9SOlxuICAgICAgICAgICAgbGV2ZWwgPSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwuRVJST1I7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuSU5GTzpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk87XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbGV2ZWwsIGVudHJ5LCBpZCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gIH1cblxuICAvKipcbiAgICogQW4gaWRlbnRpZmllciB0aGF0IHNob3dzIHdoZXJlIHRoaXMgYXJ0aWZhY3QgaXMgbG9jYXRlZCBpbiB0aGUgdHJlZVxuICAgKiBvZiBuZXN0ZWQgYXNzZW1ibGllcywgYmFzZWQgb24gdGhlaXIgbWFuaWZlc3RzLiBEZWZhdWx0cyB0byB0aGUgbm9ybWFsXG4gICAqIGlkLiBTaG91bGQgb25seSBiZSB1c2VkIGluIHVzZXIgaW50ZXJmYWNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGllcmFyY2hpY2FsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYW5pZmVzdC5kaXNwbGF5TmFtZSA/PyB0aGlzLmlkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyBuilder = exports.CloudAssembly = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema/lib\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\nconst error_1 = require(\"./private/error\");\nconst toposort_1 = require(\"./private/toposort\");\nconst CLOUD_ASSEMBLY_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssembly');\n/**\n * The name of the root manifest file of the assembly.\n */\nconst MANIFEST_FILE = 'manifest.json';\n/**\n * Represents a deployable cloud application.\n */\nclass CloudAssembly {\n /**\n * Return whether the given object is a CloudAssembly.\n *\n * We do attribute detection since we can't reliably use 'instanceof'.\n */\n static isCloudAssembly(x) {\n return x !== null && typeof (x) === 'object' && CLOUD_ASSEMBLY_SYMBOL in x;\n }\n /**\n * Cleans up any temporary assembly directories that got created in this process\n *\n * If a Cloud Assembly is emitted to a temporary directory, its directory gets\n * added to a list. This function iterates over that list and deletes each\n * directory in it, to free up disk space.\n *\n * This function will normally be called automatically during Node process\n * exit and so you don't need to call this. However, some test environments do\n * not properly trigger Node's `exit` event. Notably: Jest does not trigger\n * the `exit` event ().\n *\n * ## Cleaning up temporary directories in jest\n *\n * For Jest, you have to make sure this function is called at the end of the\n * test suite instead:\n *\n * ```js\n * import { CloudAssembly } from 'aws-cdk-lib/cx-api';\n *\n * afterAll(CloudAssembly.cleanupTemporaryDirectories);\n * ```\n *\n * Alternatively, you can use the `setupFilesAfterEnv` feature and use a\n * provided helper script to automatically inject the above into every\n * test file, so you don't have to do it by hand.\n *\n * ```\n * $ npx jest --setupFilesAfterEnv aws-cdk-lib/testhelpers/jest-autoclean\n * ```\n *\n * Or put the following into `jest.config.js`:\n *\n * ```js\n * module.exports = {\n * // ...\n * setupFilesAfterEnv: ['aws-cdk-lib/testhelpers/jest-cleanup'],\n * };\n * ```\n */\n static cleanupTemporaryDirectories() {\n for (const dir of TEMPORARY_ASSEMBLY_DIRS) {\n fs.rmSync(dir, { recursive: true, force: true });\n }\n TEMPORARY_ASSEMBLY_DIRS.splice(0, TEMPORARY_ASSEMBLY_DIRS.length);\n }\n /**\n * Reads a cloud assembly from the specified directory.\n * @param directory - The root directory of the assembly.\n */\n constructor(directory, loadOptions) {\n this.directory = directory;\n this.loadOptions = loadOptions;\n this.manifest = cxschema.Manifest.loadAssemblyManifest(path.join(directory, MANIFEST_FILE), this.loadOptions);\n this.version = this.manifest.version;\n this.artifacts = this.renderArtifacts(this.loadOptions?.topoSort ?? true);\n this.runtime = this.manifest.runtime || { libraries: {} };\n Object.defineProperty(this, CLOUD_ASSEMBLY_SYMBOL, { value: true });\n // force validation of deps by accessing 'depends' on all artifacts\n this.validateDeps();\n }\n /**\n * Attempts to find an artifact with a specific identity.\n * @returns A `CloudArtifact` object or `undefined` if the artifact does not exist in this assembly.\n * @param id - The artifact ID\n */\n tryGetArtifact(id) {\n return this.artifacts.find(a => a.id === id);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * Will only search the current assembly.\n *\n * @param stackName - the name of the CloudFormation stack.\n * @throws if there is no stack artifact by that name\n * @throws if there is more than one stack with the same stack name. You can\n * use `getStackArtifact(stack.artifactId)` instead.\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackByName(stackName) {\n const artifacts = this.artifacts.filter(a => a instanceof cloudformation_artifact_1.CloudFormationStackArtifact && a.stackName === stackName);\n if (!artifacts || artifacts.length === 0) {\n throw new error_1.CloudAssemblyError(`Unable to find stack with stack name \"${stackName}\"`);\n }\n if (artifacts.length > 1) {\n throw new error_1.CloudAssemblyError(`There are multiple stacks with the stack name \"${stackName}\" (${artifacts.map(a => a.id).join(',')}). Use \"getStackArtifact(id)\" instead`);\n }\n return artifacts[0];\n }\n /**\n * Returns a CloudFormation stack artifact by name from this assembly.\n * @deprecated renamed to `getStackByName` (or `getStackArtifact(id)`)\n */\n getStack(stackName) {\n return this.getStackByName(stackName);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * @param artifactId - the artifact id of the stack (can be obtained through `stack.artifactId`).\n * @throws if there is no stack artifact with that id\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackArtifact(artifactId) {\n const artifact = this.tryGetArtifactRecursively(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof cloudformation_artifact_1.CloudFormationStackArtifact)) {\n throw new error_1.CloudAssemblyError(`Artifact ${artifactId} is not a CloudFormation stack`);\n }\n return artifact;\n }\n tryGetArtifactRecursively(artifactId) {\n return this.stacksRecursively.find(a => a.id === artifactId);\n }\n /**\n * Returns all the stacks, including the ones in nested assemblies\n */\n get stacksRecursively() {\n function search(stackArtifacts, assemblies) {\n if (assemblies.length === 0) {\n return stackArtifacts;\n }\n const [head, ...tail] = assemblies;\n const nestedAssemblies = head.nestedAssemblies.map(asm => asm.nestedAssembly);\n return search(stackArtifacts.concat(head.stacks), tail.concat(nestedAssemblies));\n }\n return search([], [this]);\n }\n /**\n * Returns a nested assembly artifact.\n *\n * @param artifactId - The artifact ID of the nested assembly\n */\n getNestedAssemblyArtifact(artifactId) {\n const artifact = this.tryGetArtifact(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact)) {\n throw new error_1.CloudAssemblyError(`Found artifact '${artifactId}' but it's not a nested cloud assembly`);\n }\n return artifact;\n }\n /**\n * Returns a nested assembly.\n *\n * @param artifactId - The artifact ID of the nested assembly\n */\n getNestedAssembly(artifactId) {\n return this.getNestedAssemblyArtifact(artifactId).nestedAssembly;\n }\n /**\n * Returns the tree metadata artifact from this assembly.\n * @throws if there is no metadata artifact by that name\n * @returns a `TreeCloudArtifact` object if there is one defined in the manifest, `undefined` otherwise.\n */\n tree() {\n const trees = this.artifacts.filter(a => a.manifest.type === cxschema.ArtifactType.CDK_TREE);\n if (trees.length === 0) {\n return undefined;\n }\n else if (trees.length > 1) {\n throw new error_1.CloudAssemblyError(`Multiple artifacts of type ${cxschema.ArtifactType.CDK_TREE} found in manifest`);\n }\n const tree = trees[0];\n if (!(tree instanceof tree_cloud_artifact_1.TreeCloudArtifact)) {\n throw new error_1.CloudAssemblyError('\"Tree\" artifact is not of expected type');\n }\n return tree;\n }\n /**\n * @returns all the CloudFormation stack artifacts that are included in this assembly.\n */\n get stacks() {\n return this.artifacts.filter(isCloudFormationStackArtifact);\n function isCloudFormationStackArtifact(x) {\n return x instanceof cloudformation_artifact_1.CloudFormationStackArtifact;\n }\n }\n /**\n * The nested assembly artifacts in this assembly\n */\n get nestedAssemblies() {\n return this.artifacts.filter(isNestedCloudAssemblyArtifact);\n function isNestedCloudAssemblyArtifact(x) {\n return x instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact;\n }\n }\n validateDeps() {\n for (const artifact of this.artifacts) {\n ignore(artifact.dependencies);\n }\n }\n renderArtifacts(topoSort) {\n const result = new Array();\n for (const [name, artifact] of Object.entries(this.manifest.artifacts || {})) {\n const cloudartifact = cloud_artifact_1.CloudArtifact.fromManifest(this, name, artifact);\n if (cloudartifact) {\n result.push(cloudartifact);\n }\n }\n return topoSort ? (0, toposort_1.topologicalSort)(result, x => x.id, x => x._dependencyIDs) : result;\n }\n}\nexports.CloudAssembly = CloudAssembly;\n/**\n * Can be used to build a cloud assembly.\n */\nclass CloudAssemblyBuilder {\n /**\n * Initializes a cloud assembly builder.\n * @param outdir - The output directory, uses temporary directory if undefined\n */\n constructor(outdir, props = {}) {\n this.artifacts = {};\n this.missing = new Array();\n this.outdir = determineOutputDirectory(outdir);\n this.assetOutdir = props.assetOutdir ?? this.outdir;\n this.parentBuilder = props.parentBuilder;\n // we leverage the fact that outdir is long-lived to avoid staging assets into it\n // that were already staged (copying can be expensive). this is achieved by the fact\n // that assets use a source hash as their name. other artifacts, and the manifest itself,\n // will overwrite existing files as needed.\n ensureDirSync(this.outdir);\n }\n /**\n * Adds an artifact into the cloud assembly.\n * @param id - The ID of the artifact.\n * @param manifest - The artifact manifest\n */\n addArtifact(id, manifest) {\n this.artifacts[id] = filterUndefined(manifest);\n }\n /**\n * Reports that some context is missing in order for this cloud assembly to be fully synthesized.\n * @param missing - Missing context information.\n */\n addMissing(missing) {\n if (this.missing.every(m => m.key !== missing.key)) {\n this.missing.push(missing);\n }\n // Also report in parent\n this.parentBuilder?.addMissing(missing);\n }\n /**\n * Finalizes the cloud assembly into the output directory returns a\n * `CloudAssembly` object that can be used to inspect the assembly.\n */\n buildAssembly(options = {}) {\n // explicitly initializing this type will help us detect\n // breaking changes. (For example adding a required property will break compilation).\n let manifest = {\n version: cxschema.Manifest.version(),\n artifacts: this.artifacts,\n runtime: options.runtimeInfo,\n missing: this.missing.length > 0 ? this.missing : undefined,\n };\n // now we can filter\n manifest = filterUndefined(manifest);\n const manifestFilePath = path.join(this.outdir, MANIFEST_FILE);\n cxschema.Manifest.saveAssemblyManifest(manifest, manifestFilePath);\n // \"backwards compatibility\": in order for the old CLI to tell the user they\n // need a new version, we'll emit the legacy manifest with only \"version\".\n // this will result in an error \"CDK Toolkit >= CLOUD_ASSEMBLY_VERSION is required in order to interact with this program.\"\n fs.writeFileSync(path.join(this.outdir, 'cdk.out'), JSON.stringify({ version: manifest.version }));\n return new CloudAssembly(this.outdir);\n }\n /**\n * Creates a nested cloud assembly\n */\n createNestedAssembly(artifactId, displayName) {\n const directoryName = artifactId;\n const innerAsmDir = path.join(this.outdir, directoryName);\n this.addArtifact(artifactId, {\n type: cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY,\n properties: {\n directoryName,\n displayName,\n },\n });\n return new CloudAssemblyBuilder(innerAsmDir, {\n // Reuse the same asset output directory as the current Casm builder\n assetOutdir: this.assetOutdir,\n parentBuilder: this,\n });\n }\n /**\n * Delete the cloud assembly directory\n */\n delete() {\n fs.rmSync(this.outdir, { recursive: true, force: true });\n }\n}\nexports.CloudAssemblyBuilder = CloudAssemblyBuilder;\n/**\n * Returns a copy of `obj` without undefined values in maps or arrays.\n */\nfunction filterUndefined(obj) {\n if (Array.isArray(obj)) {\n return obj.filter(x => x !== undefined).map(x => filterUndefined(x));\n }\n if (typeof (obj) === 'object') {\n const ret = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined) {\n continue;\n }\n ret[key] = filterUndefined(value);\n }\n return ret;\n }\n return obj;\n}\nfunction ignore(_x) {\n return;\n}\n/**\n * Turn the given optional output directory into a fixed output directory\n */\nfunction determineOutputDirectory(outdir) {\n if (outdir) {\n return outdir;\n }\n // Make a temporary directory; clean it up automatically if this is done for testing.\n const tmpDir = fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out'));\n TEMPORARY_ASSEMBLY_DIRS.push(tmpDir);\n return outdir ?? tmpDir;\n}\nfunction ensureDirSync(dir) {\n if (fs.existsSync(dir)) {\n if (!fs.statSync(dir).isDirectory()) {\n throw new error_1.CloudAssemblyError(`${dir} must be a directory`);\n }\n }\n else {\n fs.mkdirSync(dir, { recursive: true });\n }\n}\n// On process exit, delete all temporary assembly directories\nconst TEMPORARY_ASSEMBLY_DIRS = [];\nprocess.on('exit', () => CloudAssembly.cleanupTemporaryDirectories());\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3QiwrREFBK0Q7QUFDL0QsaUZBQWtGO0FBQ2xGLCtGQUF5RjtBQUN6Rix5RUFBb0U7QUFDcEUscURBQWlEO0FBQ2pELDJDQUFxRDtBQUNyRCxpREFBcUQ7QUFFckQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFMUU7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBTTtRQUNsQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxxQkFBcUIsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1Q0c7SUFDSSxNQUFNLENBQUMsMkJBQTJCO1FBQ3ZDLEtBQUssTUFBTSxHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQztZQUMxQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQWdDRDs7O09BR0c7SUFDSCxZQUFZLFNBQWlCLEVBQUUsV0FBMEM7UUFDdkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdB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QU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRix1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFXO0lBQ2hDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLDBCQUFrQixDQUFDLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztBQUNILENBQUM7QUFFRCw2REFBNkQ7QUFDN0QsTUFBTSx1QkFBdUIsR0FBYSxFQUFFLENBQUM7QUFDN0MsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYS9saWInO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QnO1xuaW1wb3J0IHsgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCB7IFRyZWVDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9hcnRpZmFjdHMvdHJlZS1jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL3ByaXZhdGUvZXJyb3InO1xuaW1wb3J0IHsgdG9wb2xvZ2ljYWxTb3J0IH0gZnJvbSAnLi9wcml2YXRlL3RvcG9zb3J0JztcblxuY29uc3QgQ0xPVURfQVNTRU1CTFlfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkQXNzZW1ibHknKTtcblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcm9vdCBtYW5pZmVzdCBmaWxlIG9mIHRoZSBhc3NlbWJseS5cbiAqL1xuY29uc3QgTUFOSUZFU1RfRklMRSA9ICdtYW5pZmVzdC5qc29uJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGVwbG95YWJsZSBjbG91ZCBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJQ2xvdWRBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgQ2xvdWRBc3NlbWJseS5cbiAgICpcbiAgICogV2UgZG8gYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSB3ZSBjYW4ndCByZWxpYWJseSB1c2UgJ2luc3RhbmNlb2YnLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Nsb3VkQXNzZW1ibHkoeDogYW55KTogeCBpcyBDbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YoeCkgPT09ICdvYmplY3QnICYmIENMT1VEX0FTU0VNQkxZX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyB1cCBhbnkgdGVtcG9yYXJ5IGFzc2VtYmx5IGRpcmVjdG9yaWVzIHRoYXQgZ290IGNyZWF0ZWQgaW4gdGhpcyBwcm9jZXNzXG4gICAqXG4gICAqIElmIGEgQ2xvdWQgQXNzZW1ibHkgaXMgZW1pdHRlZCB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnksIGl0cyBkaXJlY3RvcnkgZ2V0c1xuICAgKiBhZGRlZCB0byBhIGxpc3QuIFRoaXMgZnVuY3Rpb24gaXRlcmF0ZXMgb3ZlciB0aGF0IGxpc3QgYW5kIGRlbGV0ZXMgZWFjaFxuICAgKiBkaXJlY3RvcnkgaW4gaXQsIHRvIGZyZWUgdXAgZGlzayBzcGFjZS5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIG5vcm1hbGx5IGJlIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGR1cmluZyBOb2RlIHByb2Nlc3NcbiAgICogZXhpdCBhbmQgc28geW91IGRvbid0IG5lZWQgdG8gY2FsbCB0aGlzLiBIb3dldmVyLCBzb21lIHRlc3QgZW52aXJvbm1lbnRzIGRvXG4gICAqIG5vdCBwcm9wZXJseSB0cmlnZ2VyIE5vZGUncyBgZXhpdGAgZXZlbnQuIE5vdGFibHk6IEplc3QgZG9lcyBub3QgdHJpZ2dlclxuICAgKiB0aGUgYGV4aXRgIGV2ZW50ICg8aHR0cHM6Ly9naXRodWIuY29tL2plc3Rqcy9qZXN0L2lzc3Vlcy8xMDkyNz4pLlxuICAgKlxuICAgKiAjIyBDbGVhbmluZyB1cCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgaW4gamVzdFxuICAgKlxuICAgKiBGb3IgSmVzdCwgeW91IGhhdmUgdG8gbWFrZSBzdXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgdGhlXG4gICAqIHRlc3Qgc3VpdGUgaW5zdGVhZDpcbiAgICpcbiAgICogYGBganNcbiAgICogaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJ2F3cy1jZGstbGliL2N4LWFwaSc7XG4gICAqXG4gICAqIGFmdGVyQWxsKENsb3VkQXNzZW1ibHkuY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHRoZSBgc2V0dXBGaWxlc0FmdGVyRW52YCBmZWF0dXJlIGFuZCB1c2UgYVxuICAgKiBwcm92aWRlZCBoZWxwZXIgc2NyaXB0IHRvIGF1dG9tYXRpY2FsbHkgaW5qZWN0IHRoZSBhYm92ZSBpbnRvIGV2ZXJ5XG4gICAqIHRlc3QgZmlsZSwgc28geW91IGRvbid0IGhhdmUgdG8gZG8gaXQgYnkgaGFuZC5cbiAgICpcbiAgICogYGBgXG4gICAqICQgbnB4IGplc3QgLS1zZXR1cEZpbGVzQWZ0ZXJFbnYgYXdzLWNkay1saWIvdGVzdGhlbHBlcnMvamVzdC1hdXRvY2xlYW5cbiAgICogYGBgXG4gICAqXG4gICAqIE9yIHB1dCB0aGUgZm9sbG93aW5nIGludG8gYGplc3QuY29uZmlnLmpzYDpcbiAgICpcbiAgICogYGBganNcbiAgICogbW9kdWxlLmV4cG9ydHMgPSB7XG4gICAqICAgLy8gLi4uXG4gICAqICAgc2V0dXBGaWxlc0FmdGVyRW52OiBbJ2F3cy1jZGstbGliL3Rlc3RoZWxwZXJzL2plc3QtY2xlYW51cCddLFxuICAgKiB9O1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzKCkge1xuICAgIGZvciAoY29uc3QgZGlyIG9mIFRFTVBPUkFSWV9BU1NFTUJMWV9ESVJTKSB7XG4gICAgICBmcy5ybVN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICAgIFRFTVBPUkFSWV9BU1NFTUJMWV9ESVJTLnNwbGljZSgwLCBURU1QT1JBUllfQVNTRU1CTFlfRElSUy5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzY2hlbWEgdmVyc2lvbiBvZiB0aGUgYXNzZW1ibHkgbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbGwgYXJ0aWZhY3RzIGluY2x1ZGVkIGluIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWZhY3RzOiBDbG91ZEFydGlmYWN0W107XG5cbiAgLyoqXG4gICAqIFJ1bnRpbWUgaW5mb3JtYXRpb24gc3VjaCBhcyBtb2R1bGUgdmVyc2lvbnMgdXNlZCB0byBzeW50aGVzaXplIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcnVudGltZTogY3hzY2hlbWEuUnVudGltZUluZm87XG5cbiAgLyoqXG4gICAqIFRoZSByYXcgYXNzZW1ibHkgbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWFuaWZlc3Q6IGN4c2NoZW1hLkFzc2VtYmx5TWFuaWZlc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkIG9wdGlvbnMgdXNlZCB0byBjcmVhdGUgdGhpcyBhc3NlbWJseSwgcHJvcGFnYXRlZCB0byBuZXN0ZWQgYXNzZW1ibGllcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZE9wdGlvbnM/OiBjeHNjaGVtYS5Mb2FkTWFuaWZlc3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSZWFkcyBhIGNsb3VkIGFzc2VtYmx5IGZyb20gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGFzc2VtYmx5LlxuICAgKi9cbiAgY29uc3RydWN0b3IoZGlyZWN0b3J5OiBzdHJpbmcsIGxvYWRPcHRpb25zPzogY3hzY2hlbWEuTG9hZE1hbmlmZXN0T3B0aW9ucykge1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gZGlyZWN0b3J5O1xuICAgIHRoaXMubG9hZE9wdGlvbnMgPSBsb2FkT3B0aW9ucztcblxuICAgIHRoaXMubWFuaWZlc3QgPSBjeHNjaGVtYS5NYW5pZmVzdC5sb2FkQXNzZW1ibHlNYW5pZmVzdChwYXRoLmpvaW4oZGlyZWN0b3J5LCBNQU5JRkVTVF9GSUxFKSwgdGhpcy5sb2FkT3B0aW9ucyk7XG4gICAgdGhpcy52ZXJzaW9uID0gdGhpcy5tYW5pZmVzdC52ZXJzaW9uO1xuICAgIHRoaXMuYXJ0aWZhY3RzID0gdGhpcy5yZW5kZXJBcnRpZmFjdHModGhpcy5sb2FkT3B0aW9ucz8udG9wb1NvcnQgPz8gdHJ1ZSk7XG4gICAgdGhpcy5ydW50aW1lID0gdGhpcy5tYW5pZmVzdC5ydW50aW1lIHx8IHsgbGlicmFyaWVzOiB7IH0gfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBDTE9VRF9BU1NFTUJMWV9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICAvLyBmb3JjZSB2YWxpZGF0aW9uIG9mIGRlcHMgYnkgYWNjZXNzaW5nICdkZXBlbmRzJyBvbiBhbGwgYXJ0aWZhY3RzXG4gICAgdGhpcy52YWxpZGF0ZURlcHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBmaW5kIGFuIGFydGlmYWN0IHdpdGggYSBzcGVjaWZpYyBpZGVudGl0eS5cbiAgICogQHJldHVybnMgQSBgQ2xvdWRBcnRpZmFjdGAgb2JqZWN0IG9yIGB1bmRlZmluZWRgIGlmIHRoZSBhcnRpZmFjdCBkb2VzIG5vdCBleGlzdCBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgYXJ0aWZhY3QgSURcbiAgICovXG4gIHB1YmxpYyB0cnlHZXRBcnRpZmFjdChpZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0IGZyb20gdGhpcyBhc3NlbWJseS5cbiAgICpcbiAgICogV2lsbCBvbmx5IHNlYXJjaCB0aGUgY3VycmVudCBhc3NlbWJseS5cbiAgICpcbiAgICogQHBhcmFtIHN0YWNrTmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICogQHRocm93cyBpZiB0aGVyZSBpcyBubyBzdGFjayBhcnRpZmFjdCBieSB0aGF0IG5hbWVcbiAgICogQHRocm93cyBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHN0YWNrIHdpdGggdGhlIHNhbWUgc3RhY2sgbmFtZS4gWW91IGNhblxuICAgKiB1c2UgYGdldFN0YWNrQXJ0aWZhY3Qoc3RhY2suYXJ0aWZhY3RJZClgIGluc3RlYWQuXG4gICAqIEByZXR1cm5zIGEgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrQnlOYW1lKHN0YWNrTmFtZTogc3RyaW5nKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdHMgPSB0aGlzLmFydGlmYWN0cy5maWx0ZXIoYSA9PiBhIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0ICYmIGEuc3RhY2tOYW1lID09PSBzdGFja05hbWUpO1xuICAgIGlmICghYXJ0aWZhY3RzIHx8IGFydGlmYWN0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFVuYWJsZSB0byBmaW5kIHN0YWNrIHdpdGggc3RhY2sgbmFtZSBcIiR7c3RhY2tOYW1lfVwiYCk7XG4gICAgfVxuXG4gICAgaWYgKGFydGlmYWN0cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBUaGVyZSBhcmUgbXVsdGlwbGUgc3RhY2tzIHdpdGggdGhlIHN0YWNrIG5hbWUgXCIke3N0YWNrTmFtZX1cIiAoJHthcnRpZmFjdHMubWFwKGEgPT4gYS5pZCkuam9pbignLCcpfSkuIFVzZSBcImdldFN0YWNrQXJ0aWZhY3QoaWQpXCIgaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHJldHVybiBhcnRpZmFjdHNbMF0gYXMgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdCBieSBuYW1lIGZyb20gdGhpcyBhc3NlbWJseS5cbiAgICogQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byBgZ2V0U3RhY2tCeU5hbWVgIChvciBgZ2V0U3RhY2tBcnRpZmFjdChpZClgKVxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrKHN0YWNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhY2tCeU5hbWUoc3RhY2tOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3QgZnJvbSB0aGlzIGFzc2VtYmx5LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCAtIHRoZSBhcnRpZmFjdCBpZCBvZiB0aGUgc3RhY2sgKGNhbiBiZSBvYnRhaW5lZCB0aHJvdWdoIGBzdGFjay5hcnRpZmFjdElkYCkuXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gc3RhY2sgYXJ0aWZhY3Qgd2l0aCB0aGF0IGlkXG4gICAqIEByZXR1cm5zIGEgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrQXJ0aWZhY3QoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdCA9IHRoaXMudHJ5R2V0QXJ0aWZhY3RSZWN1cnNpdmVseShhcnRpZmFjdElkKTtcblxuICAgIGlmICghYXJ0aWZhY3QpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFVuYWJsZSB0byBmaW5kIGFydGlmYWN0IHdpdGggaWQgXCIke2FydGlmYWN0SWR9XCJgKTtcbiAgICB9XG5cbiAgICBpZiAoIShhcnRpZmFjdCBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYEFydGlmYWN0ICR7YXJ0aWZhY3RJZH0gaXMgbm90IGEgQ2xvdWRGb3JtYXRpb24gc3RhY2tgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJ0aWZhY3Q7XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEFydGlmYWN0UmVjdXJzaXZlbHkoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tzUmVjdXJzaXZlbHkuZmluZChhID0+IGEuaWQgPT09IGFydGlmYWN0SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBzdGFja3MsIGluY2x1ZGluZyB0aGUgb25lcyBpbiBuZXN0ZWQgYXNzZW1ibGllc1xuICAgKi9cbiAgcHVibGljIGdldCBzdGFja3NSZWN1cnNpdmVseSgpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgZnVuY3Rpb24gc2VhcmNoKHN0YWNrQXJ0aWZhY3RzOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSwgYXNzZW1ibGllczogQ2xvdWRBc3NlbWJseVtdKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10ge1xuICAgICAgaWYgKGFzc2VtYmxpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdGFja0FydGlmYWN0cztcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2hlYWQsIC4uLnRhaWxdID0gYXNzZW1ibGllcztcbiAgICAgIGNvbnN0IG5lc3RlZEFzc2VtYmxpZXMgPSBoZWFkLm5lc3RlZEFzc2VtYmxpZXMubWFwKGFzbSA9PiBhc20ubmVzdGVkQXNzZW1ibHkpO1xuICAgICAgcmV0dXJuIHNlYXJjaChzdGFja0FydGlmYWN0cy5jb25jYXQoaGVhZC5zdGFja3MpLCB0YWlsLmNvbmNhdChuZXN0ZWRBc3NlbWJsaWVzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlYXJjaChbXSwgW3RoaXNdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmVzdGVkIGFzc2VtYmx5IGFydGlmYWN0LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCAtIFRoZSBhcnRpZmFjdCBJRCBvZiB0aGUgbmVzdGVkIGFzc2VtYmx5XG4gICAqL1xuICBwdWJsaWMgZ2V0TmVzdGVkQXNzZW1ibHlBcnRpZmFjdChhcnRpZmFjdElkOiBzdHJpbmcpOiBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3Qge1xuICAgIGNvbnN0IGFydGlmYWN0ID0gdGhpcy50cnlHZXRBcnRpZmFjdChhcnRpZmFjdElkKTtcbiAgICBpZiAoIWFydGlmYWN0KSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBVbmFibGUgdG8gZmluZCBhcnRpZmFjdCB3aXRoIGlkIFwiJHthcnRpZmFjdElkfVwiYCk7XG4gICAgfVxuXG4gICAgaWYgKCEoYXJ0aWZhY3QgaW5zdGFuY2VvZiBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBGb3VuZCBhcnRpZmFjdCAnJHthcnRpZmFjdElkfScgYnV0IGl0J3Mgbm90IGEgbmVzdGVkIGNsb3VkIGFzc2VtYmx5YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFydGlmYWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXN0ZWQgYXNzZW1ibHkuXG4gICAqXG4gICAqIEBwYXJhbSBhcnRpZmFjdElkIC0gVGhlIGFydGlmYWN0IElEIG9mIHRoZSBuZXN0ZWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBnZXROZXN0ZWRBc3NlbWJseShhcnRpZmFjdElkOiBzdHJpbmcpOiBDbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4gdGhpcy5nZXROZXN0ZWRBc3NlbWJseUFydGlmYWN0KGFydGlmYWN0SWQpLm5lc3RlZEFzc2VtYmx5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHRyZWUgbWV0YWRhdGEgYXJ0aWZhY3QgZnJvbSB0aGlzIGFzc2VtYmx5LlxuICAgKiBAdGhyb3dzIGlmIHRoZXJlIGlzIG5vIG1ldGFkYXRhIGFydGlmYWN0IGJ5IHRoYXQgbmFtZVxuICAgKiBAcmV0dXJucyBhIGBUcmVlQ2xvdWRBcnRpZmFjdGAgb2JqZWN0IGlmIHRoZXJlIGlzIG9uZSBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIHRyZWUoKTogVHJlZUNsb3VkQXJ0aWZhY3QgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRyZWVzID0gdGhpcy5hcnRpZmFjdHMuZmlsdGVyKGEgPT4gYS5tYW5pZmVzdC50eXBlID09PSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQ0RLX1RSRUUpO1xuICAgIGlmICh0cmVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmICh0cmVlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBNdWx0aXBsZSBhcnRpZmFjdHMgb2YgdHlwZSAke2N4c2NoZW1hLkFydGlmYWN0VHlwZS5DREtfVFJFRX0gZm91bmQgaW4gbWFuaWZlc3RgKTtcbiAgICB9XG4gICAgY29uc3QgdHJlZSA9IHRyZWVzWzBdO1xuXG4gICAgaWYgKCEodHJlZSBpbnN0YW5jZW9mIFRyZWVDbG91ZEFydGlmYWN0KSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignXCJUcmVlXCIgYXJ0aWZhY3QgaXMgbm90IG9mIGV4cGVjdGVkIHR5cGUnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBhbGwgdGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0cyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIGdldCBzdGFja3MoKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10ge1xuICAgIHJldHVybiB0aGlzLmFydGlmYWN0cy5maWx0ZXIoaXNDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpO1xuXG4gICAgZnVuY3Rpb24gaXNDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QoeDogYW55KTogeCBpcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Qge1xuICAgICAgcmV0dXJuIHggaW5zdGFuY2VvZiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuZXN0ZWQgYXNzZW1ibHkgYXJ0aWZhY3RzIGluIHRoaXMgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBnZXQgbmVzdGVkQXNzZW1ibGllcygpOiBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbHRlcihpc05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCk7XG5cbiAgICBmdW5jdGlvbiBpc05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCh4OiBhbnkpOiB4IGlzIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCB7XG4gICAgICByZXR1cm4geCBpbnN0YW5jZW9mIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGVwcygpIHtcbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIHRoaXMuYXJ0aWZhY3RzKSB7XG4gICAgICBpZ25vcmUoYXJ0aWZhY3QuZGVwZW5kZW5jaWVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFydGlmYWN0cyh0b3BvU29ydDogYm9vbGVhbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxDbG91ZEFydGlmYWN0PigpO1xuICAgIGZvciAoY29uc3QgW25hbWUsIGFydGlmYWN0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1hbmlmZXN0LmFydGlmYWN0cyB8fCB7IH0pKSB7XG4gICAgICBjb25zdCBjbG91ZGFydGlmYWN0ID0gQ2xvdWRBcnRpZmFjdC5mcm9tTWFuaWZlc3QodGhpcywgbmFtZSwgYXJ0aWZhY3QpO1xuICAgICAgaWYgKGNsb3VkYXJ0aWZhY3QpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goY2xvdWRhcnRpZmFjdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvcG9Tb3J0ID8gdG9wb2xvZ2ljYWxTb3J0KHJlc3VsdCwgeCA9PiB4LmlkLCB4ID0+IHguX2RlcGVuZGVuY3lJRHMpIDogcmVzdWx0O1xuICB9XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIENsb3VkQXNzZW1ibHlCdWlsZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRBc3NlbWJseUJ1aWxkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2UgdGhlIGdpdmVuIGFzc2V0IG91dHB1dCBkaXJlY3RvcnlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTYW1lIGFzIHRoZSBtYW5pZmVzdCBvdXRkaXJcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0T3V0ZGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB0aGlzIGJ1aWxkZXIgaXMgZm9yIGEgbmVzdGVkIGFzc2VtYmx5LCB0aGUgcGFyZW50IGFzc2VtYmx5IGJ1aWxkZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIGlzIGEgcm9vdCBhc3NlbWJseVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50QnVpbGRlcj86IENsb3VkQXNzZW1ibHlCdWlsZGVyO1xufVxuXG4vKipcbiAqIENhbiBiZSB1c2VkIHRvIGJ1aWxkIGEgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEFzc2VtYmx5QnVpbGRlciB7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHJlc3VsdGluZyBjbG91ZCBhc3NlbWJseS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvdXRkaXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSBhc3NldHMgb2YgdGhpcyBDbG91ZCBBc3NlbWJseSBzaG91bGQgYmUgc3RvcmVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRPdXRkaXI6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFydGlmYWN0czogeyBbaWQ6IHN0cmluZ106IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QgfSA9IHsgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBtaXNzaW5nID0gbmV3IEFycmF5PGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEJ1aWxkZXI/OiBDbG91ZEFzc2VtYmx5QnVpbGRlcjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYSBjbG91ZCBhc3NlbWJseSBidWlsZGVyLlxuICAgKiBAcGFyYW0gb3V0ZGlyIC0gVGhlIG91dHB1dCBkaXJlY3RvcnksIHVzZXMgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpZiB1bmRlZmluZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG91dGRpcj86IHN0cmluZywgcHJvcHM6IENsb3VkQXNzZW1ibHlCdWlsZGVyUHJvcHMgPSB7fSkge1xuICAgIHRoaXMub3V0ZGlyID0gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcik7XG4gICAgdGhpcy5hc3NldE91dGRpciA9IHByb3BzLmFzc2V0T3V0ZGlyID8/IHRoaXMub3V0ZGlyO1xuICAgIHRoaXMucGFyZW50QnVpbGRlciA9IHByb3BzLnBhcmVudEJ1aWxkZXI7XG5cbiAgICAvLyB3ZSBsZXZlcmFnZSB0aGUgZmFjdCB0aGF0IG91dGRpciBpcyBsb25nLWxpdmVkIHRvIGF2b2lkIHN0YWdpbmcgYXNzZXRzIGludG8gaXRcbiAgICAvLyB0aGF0IHdlcmUgYWxyZWFkeSBzdGFnZWQgKGNvcHlpbmcgY2FuIGJlIGV4cGVuc2l2ZSkuIHRoaXMgaXMgYWNoaWV2ZWQgYnkgdGhlIGZhY3RcbiAgICAvLyB0aGF0IGFzc2V0cyB1c2UgYSBzb3VyY2UgaGFzaCBhcyB0aGVpciBuYW1lLiBvdGhlciBhcnRpZmFjdHMsIGFuZCB0aGUgbWFuaWZlc3QgaXRzZWxmLFxuICAgIC8vIHdpbGwgb3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzIGFzIG5lZWRlZC5cbiAgICBlbnN1cmVEaXJTeW5jKHRoaXMub3V0ZGlyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFydGlmYWN0IGludG8gdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhlIGFydGlmYWN0LlxuICAgKiBAcGFyYW0gbWFuaWZlc3QgLSBUaGUgYXJ0aWZhY3QgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyBhZGRBcnRpZmFjdChpZDogc3RyaW5nLCBtYW5pZmVzdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCkge1xuICAgIHRoaXMuYXJ0aWZhY3RzW2lkXSA9IGZpbHRlclVuZGVmaW5lZChtYW5pZmVzdCk7XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyB0aGF0IHNvbWUgY29udGV4dCBpcyBtaXNzaW5nIGluIG9yZGVyIGZvciB0aGlzIGNsb3VkIGFzc2VtYmx5IHRvIGJlIGZ1bGx5IHN5bnRoZXNpemVkLlxuICAgKiBAcGFyYW0gbWlzc2luZyAtIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRNaXNzaW5nKG1pc3Npbmc6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMubWlzc2luZy5ldmVyeShtID0+IG0ua2V5ICE9PSBtaXNzaW5nLmtleSkpIHtcbiAgICAgIHRoaXMubWlzc2luZy5wdXNoKG1pc3NpbmcpO1xuICAgIH1cbiAgICAvLyBBbHNvIHJlcG9ydCBpbiBwYXJlbnRcbiAgICB0aGlzLnBhcmVudEJ1aWxkZXI/LmFkZE1pc3NpbmcobWlzc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogRmluYWxpemVzIHRoZSBjbG91ZCBhc3NlbWJseSBpbnRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHJldHVybnMgYVxuICAgKiBgQ2xvdWRBc3NlbWJseWAgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5zcGVjdCB0aGUgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgYnVpbGRBc3NlbWJseShvcHRpb25zOiBBc3NlbWJseUJ1aWxkT3B0aW9ucyA9IHsgfSk6IENsb3VkQXNzZW1ibHkge1xuICAgIC8vIGV4cGxpY2l0bHkgaW5pdGlhbGl6aW5nIHRoaXMgdHlwZSB3aWxsIGhlbHAgdXMgZGV0ZWN0XG4gICAgLy8gYnJlYWtpbmcgY2hhbmdlcy4gKEZvciBleGFtcGxlIGFkZGluZyBhIHJlcXVpcmVkIHByb3BlcnR5IHdpbGwgYnJlYWsgY29tcGlsYXRpb24pLlxuICAgIGxldCBtYW5pZmVzdDogY3hzY2hlbWEuQXNzZW1ibHlNYW5pZmVzdCA9IHtcbiAgICAgIHZlcnNpb246IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKSxcbiAgICAgIGFydGlmYWN0czogdGhpcy5hcnRpZmFjdHMsXG4gICAgICBydW50aW1lOiBvcHRpb25zLnJ1bnRpbWVJbmZvLFxuICAgICAgbWlzc2luZzogdGhpcy5taXNzaW5nLmxlbmd0aCA+IDAgPyB0aGlzLm1pc3NpbmcgOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIC8vIG5vdyB3ZSBjYW4gZmlsdGVyXG4gICAgbWFuaWZlc3QgPSBmaWx0ZXJVbmRlZmluZWQobWFuaWZlc3QpO1xuXG4gICAgY29uc3QgbWFuaWZlc3RGaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dGRpciwgTUFOSUZFU1RfRklMRSk7XG4gICAgY3hzY2hlbWEuTWFuaWZlc3Quc2F2ZUFzc2VtYmx5TWFuaWZlc3QobWFuaWZlc3QsIG1hbmlmZXN0RmlsZVBhdGgpO1xuXG4gICAgLy8gXCJiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVwiOiBpbiBvcmRlciBmb3IgdGhlIG9sZCBDTEkgdG8gdGVsbCB0aGUgdXNlciB0aGV5XG4gICAgLy8gbmVlZCBhIG5ldyB2ZXJzaW9uLCB3ZSdsbCBlbWl0IHRoZSBsZWdhY3kgbWFuaWZlc3Qgd2l0aCBvbmx5IFwidmVyc2lvblwiLlxuICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgXCJDREsgVG9vbGtpdCA+PSBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGludGVyYWN0IHdpdGggdGhpcyBwcm9ncmFtLlwiXG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGhpcy5vdXRkaXIsICdjZGsub3V0JyksIEpTT04uc3RyaW5naWZ5KHsgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbiB9KSk7XG5cbiAgICByZXR1cm4gbmV3IENsb3VkQXNzZW1ibHkodGhpcy5vdXRkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXN0ZWQgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVOZXN0ZWRBc3NlbWJseShhcnRpZmFjdElkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlOYW1lID0gYXJ0aWZhY3RJZDtcbiAgICBjb25zdCBpbm5lckFzbURpciA9IHBhdGguam9pbih0aGlzLm91dGRpciwgZGlyZWN0b3J5TmFtZSk7XG5cbiAgICB0aGlzLmFkZEFydGlmYWN0KGFydGlmYWN0SWQsIHtcbiAgICAgIHR5cGU6IGN4c2NoZW1hLkFydGlmYWN0VHlwZS5ORVNURURfQ0xPVURfQVNTRU1CTFksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGRpcmVjdG9yeU5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgfSBhcyBjeHNjaGVtYS5OZXN0ZWRDbG91ZEFzc2VtYmx5UHJvcGVydGllcyxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgQ2xvdWRBc3NlbWJseUJ1aWxkZXIoaW5uZXJBc21EaXIsIHtcbiAgICAgIC8vIFJldXNlIHRoZSBzYW1lIGFzc2V0IG91dHB1dCBkaXJlY3RvcnkgYXMgdGhlIGN1cnJlbnQgQ2FzbSBidWlsZGVyXG4gICAgICBhc3NldE91dGRpcjogdGhpcy5hc3NldE91dGRpcixcbiAgICAgIHBhcmVudEJ1aWxkZXI6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBkZWxldGUoKSB7XG4gICAgZnMucm1TeW5jKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Igd2hlbiBgUnVudGltZUluZm9gXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5zeW50aFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVJbmZvIGV4dGVuZHMgY3hzY2hlbWEuUnVudGltZUluZm8ge1xuXG59XG5cbi8qKlxuICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIHdoZW4gYE1ldGFkYXRhRW50cnlgXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5tZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhRW50cnkgZXh0ZW5kcyBjeHNjaGVtYS5NZXRhZGF0YUVudHJ5IHtcblxufVxuXG4vKipcbiAqIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciB3aGVuIGBNaXNzaW5nQ29udGV4dGBcbiAqIHdhcyBkZWZpbmVkIGhlcmUuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaXRzIHVzZWQgYXMgYW4gaW5wdXQgaW4gdGhlIHN0YWJsZVxuICogQGF3cy1jZGsvY29yZSBsaWJyYXJ5LlxuICpcbiAqIEBkZXByZWNhdGVkIG1vdmVkIHRvIHBhY2thZ2UgJ2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSdcbiAqIEBzZWUgY29yZS5TdGFjay5yZXBvcnRNaXNzaW5nQ29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBwcm92aWRlci1zcGVjaWZpYyBvcHRpb25zLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm9wczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseUJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHRoZSBzcGVjaWZpZWQgcnVudGltZSBpbmZvcm1hdGlvbiAobW9kdWxlIHZlcnNpb25zKSBpbiBtYW5pZmVzdC5cbiAgICogQGRlZmF1bHQgLSBpZiB0aGlzIG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkLCBydW50aW1lIGluZm8gd2lsbCBub3QgYmUgaW5jbHVkZWRcbiAgICogQGRlcHJlY2F0ZWQgQWxsIHRlbXBsYXRlIG1vZGlmaWNhdGlvbnMgdGhhdCBzaG91bGQgcmVzdWx0IGZyb20gdGhpcyBzaG91bGRcbiAgICogaGF2ZSBhbHJlYWR5IGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBydW50aW1lSW5mbz86IFJ1bnRpbWVJbmZvO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBjb3B5IG9mIGBvYmpgIHdpdGhvdXQgdW5kZWZpbmVkIHZhbHVlcyBpbiBtYXBzIG9yIGFycmF5cy5cbiAqL1xuZnVuY3Rpb24gZmlsdGVyVW5kZWZpbmVkKG9iajogYW55KTogYW55IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmouZmlsdGVyKHggPT4geCAhPT0gdW5kZWZpbmVkKS5tYXAoeCA9PiBmaWx0ZXJVbmRlZmluZWQoeCkpO1xuICB9XG5cbiAgaWYgKHR5cGVvZihvYmopID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJldDogYW55ID0geyB9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcmV0W2tleV0gPSBmaWx0ZXJVbmRlZmluZWQodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gaWdub3JlKF94OiBhbnkpIHtcbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIFR1cm4gdGhlIGdpdmVuIG9wdGlvbmFsIG91dHB1dCBkaXJlY3RvcnkgaW50byBhIGZpeGVkIG91dHB1dCBkaXJlY3RvcnlcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcj86IHN0cmluZykge1xuICBpZiAob3V0ZGlyKSB7XG4gICAgcmV0dXJuIG91dGRpcjtcbiAgfVxuXG4gIC8vIE1ha2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5OyBjbGVhbiBpdCB1cCBhdXRvbWF0aWNhbGx5IGlmIHRoaXMgaXMgZG9uZSBmb3IgdGVzdGluZy5cbiAgY29uc3QgdG1wRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKGZzLnJlYWxwYXRoU3luYyhvcy50bXBkaXIoKSksICdjZGsub3V0JykpO1xuICBURU1QT1JBUllfQVNTRU1CTFlfRElSUy5wdXNoKHRtcERpcik7XG4gIHJldHVybiBvdXRkaXIgPz8gdG1wRGlyO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVEaXJTeW5jKGRpcjogc3RyaW5nKSB7XG4gIGlmIChmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICBpZiAoIWZzLnN0YXRTeW5jKGRpcikuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgJHtkaXJ9IG11c3QgYmUgYSBkaXJlY3RvcnlgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZnMubWtkaXJTeW5jKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cbn1cblxuLy8gT24gcHJvY2VzcyBleGl0LCBkZWxldGUgYWxsIHRlbXBvcmFyeSBhc3NlbWJseSBkaXJlY3Rvcmllc1xuY29uc3QgVEVNUE9SQVJZX0FTU0VNQkxZX0RJUlM6IHN0cmluZ1tdID0gW107XG5wcm9jZXNzLm9uKCdleGl0JywgKCkgPT4gQ2xvdWRBc3NlbWJseS5jbGVhbnVwVGVtcG9yYXJ5RGlyZWN0b3JpZXMoKSk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybnMganVzdCBhbiBBTUkgSURcbiAqL1xuZXhwb3J0IHR5cGUgQW1pQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = void 0;\n/**\n * This context key is used to determine the value of `stack.availabilityZones`\n * when a stack is not associated with a specific account/region (env-agnostic).\n *\n * If this key is passed in the context, the values will be used. Otherwise, a\n * system-fallback which uses `Fn::GetAZs` will be used.\n */\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = 'aws:cdk:availability-zones:fallback';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWxhYmlsaXR5LXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXZhaWxhYmlsaXR5LXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7R0FNRztBQUNVLFFBQUEsc0NBQXNDLEdBQUcscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29udGV4dCBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIGBzdGFjay5hdmFpbGFiaWxpdHlab25lc2BcbiAqIHdoZW4gYSBzdGFjayBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYWNjb3VudC9yZWdpb24gKGVudi1hZ25vc3RpYykuXG4gKlxuICogSWYgdGhpcyBrZXkgaXMgcGFzc2VkIGluIHRoZSBjb250ZXh0LCB0aGUgdmFsdWVzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCBhXG4gKiBzeXN0ZW0tZmFsbGJhY2sgd2hpY2ggdXNlcyBgRm46OkdldEFac2Agd2lsbCBiZSB1c2VkLlxuICovXG5leHBvcnQgY29uc3QgQVZBSUxBQklMSVRZX1pPTkVfRkFMTEJBQ0tfQ09OVEVYVF9LRVkgPSAnYXdzOmNkazphdmFpbGFiaWxpdHktem9uZXM6ZmFsbGJhY2snO1xuXG4vKipcbiAqIFJlc3BvbnNlIG9mIHRoZSBBWiBwcm92aWRlciBsb29rcyBsaWtlIHRoaXNcbiAqL1xuZXhwb3J0IHR5cGUgQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UmVzcG9uc2UgPSBzdHJpbmdbXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = void 0;\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = 'endpoint-service-availability-zones';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLDJDQUEyQyxHQUFHLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuXG4vKipcbiAqIFF1ZXJ5IHRvIGhvc3RlZCB6b25lIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSB7XG4gIC8qKlxuICAgKiBRdWVyeSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBRdWVyeSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgc2VydmljZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBvZiB0aGUgQVogcHJvdmlkZXIgbG9va3MgbGlrZSB0aGlzXG4gKi9cbmV4cG9ydCB0eXBlIEVuZHBvaW50U2VydmljZUF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nW107XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PROVIDER_ERROR_KEY = void 0;\n/**\n * If a context value is an object with this key, it indicates an error\n */\nexports.PROVIDER_ERROR_KEY = '$providerError';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdlbmVyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJZiBhIGNvbnRleHQgdmFsdWUgaXMgYW4gb2JqZWN0IHdpdGggdGhpcyBrZXksIGl0IGluZGljYXRlcyBhbiBlcnJvclxuICovXG5leHBvcnQgY29uc3QgUFJPVklERVJfRVJST1JfS0VZID0gJyRwcm92aWRlckVycm9yJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIGtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRSZXNwb25zZSB7XG5cbiAgLyoqXG4gICAqIElkIG9mIHRoZSBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerIpAddressType = void 0;\n/**\n * Load balancer ip address type.\n */\nvar LoadBalancerIpAddressType;\n(function (LoadBalancerIpAddressType) {\n /**\n * IPV4 ip address\n */\n LoadBalancerIpAddressType[\"IPV4\"] = \"ipv4\";\n /**\n * Dual stack address\n */\n LoadBalancerIpAddressType[\"DUAL_STACK\"] = \"dualstack\";\n /**\n * IPv6 only public addresses, with private IPv4 and IPv6 addresses\n */\n LoadBalancerIpAddressType[\"DUAL_STACK_WITHOUT_PUBLIC_IPV4\"] = \"dualstack-without-public-ipv4\";\n})(LoadBalancerIpAddressType || (exports.LoadBalancerIpAddressType = LoadBalancerIpAddressType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvYWQtYmFsYW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLHlCQWVYO0FBZkQsV0FBWSx5QkFBeUI7SUFDbkM7O09BRUc7SUFDSCwwQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxREFBd0IsQ0FBQTtJQUV4Qjs7T0FFRztJQUNILDZGQUFnRSxDQUFBO0FBQ2xFLENBQUMsRUFmVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWVwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTG9hZCBiYWxhbmNlciBpcCBhZGRyZXNzIHR5cGUuXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlcklwQWRkcmVzc1R5cGUge1xuICAvKipcbiAgICogSVBWNCBpcCBhZGRyZXNzXG4gICAqL1xuICBJUFY0ID0gJ2lwdjQnLFxuXG4gIC8qKlxuICAgKiBEdWFsIHN0YWNrIGFkZHJlc3NcbiAgICovXG4gIERVQUxfU1RBQ0sgPSAnZHVhbHN0YWNrJyxcblxuICAvKipcbiAgICogSVB2NiBvbmx5IHB1YmxpYyBhZGRyZXNzZXMsIHdpdGggcHJpdmF0ZSBJUHY0IGFuZCBJUHY2IGFkZHJlc3Nlc1xuICAgKi9cbiAgRFVBTF9TVEFDS19XSVRIT1VUX1BVQkxJQ19JUFY0ID0gJ2R1YWxzdGFjay13aXRob3V0LXB1YmxpYy1pcHY0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhvc3RlZCB6b25lIElEIG9mIHRoZSBsb2FkIGJhbGFuY2VyJ3MgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3MgRE5TIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckRuc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiBJUCBhZGRyZXNzXG4gICAqL1xuICByZWFkb25seSBpcEFkZHJlc3NUeXBlOiBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3Mgc2VjdXJpdHkgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTG9hZCBiYWxhbmNlcidzIFZQQ1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxpc3RlbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdGhlIGxpc3RlbmVyIGlzIGxpc3RlbmluZyBvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyUG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXBzIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIFNlY3VyaXR5R3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENvbnRleHRSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAncyBpZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzZWN1cml0eSBncm91cCBhbGxvd3MgYWxsIG91dGJvdW5kIHRyYWZmaWMuIFRoaXMgd2lsbCBiZSB0cnVlXG4gICAqIHdoZW4gdGhlIHNlY3VyaXR5IGdyb3VwIGhhcyBhbGwtcHJvdG9jb2wgZWdyZXNzIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBib3RoXG4gICAqIGAwLjAuMC4wLzBgIGFuZCBgOjovMGAuXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kOiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VpcSubnetGroupType = void 0;\n/**\n * The type of subnet group.\n * Same as SubnetType in the aws-cdk-lib/aws-ec2 package,\n * but we can't use that because of cyclical dependencies.\n */\nvar VpcSubnetGroupType;\n(function (VpcSubnetGroupType) {\n /** Public subnet group type. */\n VpcSubnetGroupType[\"PUBLIC\"] = \"Public\";\n /** Private subnet group type. */\n VpcSubnetGroupType[\"PRIVATE\"] = \"Private\";\n /** Isolated subnet group type. */\n VpcSubnetGroupType[\"ISOLATED\"] = \"Isolated\";\n})(VpcSubnetGroupType || (exports.VpcSubnetGroupType = VpcSubnetGroupType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxJQUFZLGtCQVNYO0FBVEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0NBQWdDO0lBQ2hDLHVDQUFpQixDQUFBO0lBRWpCLGlDQUFpQztJQUNqQyx5Q0FBbUIsQ0FBQTtJQUVuQixrQ0FBa0M7SUFDbEMsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVRXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgdHlwZSBvZiBzdWJuZXQgZ3JvdXAuXG4gKiBTYW1lIGFzIFN1Ym5ldFR5cGUgaW4gdGhlIGF3cy1jZGstbGliL2F3cy1lYzIgcGFja2FnZSxcbiAqIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBiZWNhdXNlIG9mIGN5Y2xpY2FsIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGVudW0gVnBjU3VibmV0R3JvdXBUeXBlIHtcbiAgLyoqIFB1YmxpYyBzdWJuZXQgZ3JvdXAgdHlwZS4gKi9cbiAgUFVCTElDID0gJ1B1YmxpYycsXG5cbiAgLyoqIFByaXZhdGUgc3VibmV0IGdyb3VwIHR5cGUuICovXG4gIFBSSVZBVEUgPSAnUHJpdmF0ZScsXG5cbiAgLyoqIElzb2xhdGVkIHN1Ym5ldCBncm91cCB0eXBlLiAqL1xuICBJU09MQVRFRCA9ICdJc29sYXRlZCcsXG59XG5cbi8qKlxuICogQSBzdWJuZXQgcmVwcmVzZW50YXRpb24gdGhhdCB0aGUgVlBDIHByb3ZpZGVyIHVzZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0IHtcbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIG9mIHRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGlzIHN1Ym5ldCBpcyBpblxuICAgKiAoZm9yIGV4YW1wbGUsICd1cy13ZXN0LTJhJykuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSByb3V0ZSB0YWJsZSBmb3IgdGhpcyBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHJvdXRlVGFibGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDSURSIHJhbmdlIG9mIHRoZSBzdWJuZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDSURSIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNpZHI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBncm91cCBvZiBzdWJuZXRzIHJldHVybmVkIGJ5IHRoZSBWUEMgcHJvdmlkZXIuXG4gKiBUaGUgaW5jbHVkZWQgc3VibmV0cyBkbyBOT1QgaGF2ZSB0byBiZSBzeW1tZXRyaWMhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0R3JvdXAge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN1Ym5ldCBncm91cCxcbiAgICogZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0IHRoZSB0YWdzIG9mIG9mIHRoZSBzdWJuZXRzXG4gICAqIHRoYXQgYmVsb25nIHRvIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgdHlwZSBvZiB0aGUgc3VibmV0IGdyb3VwLiAqL1xuICByZWFkb25seSB0eXBlOiBWcGNTdWJuZXRHcm91cFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBncm91cC5cbiAgICogVGhlcmUgaXMgbm8gY29uZGl0aW9uIHRoYXQgdGhlIHN1Ym5ldHMgaGF2ZSB0byBiZSBzeW1tZXRyaWNcbiAgICogaW4gdGhlIGdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0czogVnBjU3VibmV0W107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhIGRpc2NvdmVyZWQgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFJlc3BvbnNlIHtcblxuICAvKipcbiAgICogVlBDIGlkXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgY2lkclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENJRFIgaW5mb3JtYXRpb24gbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBWnNcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwdWJsaWMgc3VibmV0c1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMocHVibGljR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzLlxuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwcml2YXRlIHN1Ym5ldHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwc1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKHByaXZhdGVHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBpc29sYXRlZCBzdWJuZXRzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhpc29sYXRlZEdyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IGlzb2xhdGVkU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHMuXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIFZQTiBnYXRld2F5IElEXG4gICAqL1xuICByZWFkb25seSB2cG5HYXRld2F5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgZ3JvdXBzIGRpc2NvdmVyZWQgZm9yIHRoZSBnaXZlbiBWUEMuXG4gICAqIFVubGlrZSB0aGUgYWJvdmUgcHJvcGVydGllcywgdGhpcyB3aWxsIGluY2x1ZGUgYXN5bW1ldHJpYyBzdWJuZXRzLFxuICAgKiBpZiB0aGUgVlBDIGhhcyBhbnkuXG4gICAqIFRoaXMgcHJvcGVydHkgd2lsbCBvbmx5IGJlIHBvcHVsYXRlZCBpZiBgVnBjQ29udGV4dFF1ZXJ5LnJldHVybkFzeW1tZXRyaWNTdWJuZXRzYFxuICAgKiBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN1Ym5ldCBncm91cHMgd2lsbCBiZSByZXR1cm5lZCB1bmxlc3MgYFZwY0NvbnRleHRRdWVyeS5yZXR1cm5Bc3ltbWV0cmljU3VibmV0c2AgaXMgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBzPzogVnBjU3VibmV0R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBpbiB3aGljaCB0aGUgVlBDIGlzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlZ2lvbiBvZiB0aGUgcGFyZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgQVdTIGFjY291bnQgdGhhdCBvd25zIHRoZSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBhY2NvdW50IGlkIG9mIHRoZSBwYXJlbnQgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG93bmVyQWNjb3VudElkPzogc3RyaW5nO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentUtils = exports.UNKNOWN_REGION = exports.UNKNOWN_ACCOUNT = void 0;\nconst error_1 = require(\"./private/error\");\n/**\n * Parser for the artifact environment field.\n *\n * Account validation is relaxed to allow account aliasing in the future.\n */\nconst AWS_ENV_REGEX = /aws\\:\\/\\/([a-z0-9A-Z\\-\\@\\.\\_]+)\\/([a-z\\-0-9]+)/;\nexports.UNKNOWN_ACCOUNT = 'unknown-account';\nexports.UNKNOWN_REGION = 'unknown-region';\nclass EnvironmentUtils {\n static parse(environment) {\n const env = AWS_ENV_REGEX.exec(environment);\n if (!env) {\n throw new error_1.CloudAssemblyError(`Unable to parse environment specification \"${environment}\". ` +\n 'Expected format: aws://account/region');\n }\n const [, account, region] = env;\n if (!account || !region) {\n throw new error_1.CloudAssemblyError(`Invalid environment specification: ${environment}`);\n }\n return { account, region, name: environment };\n }\n /**\n * Build an environment object from an account and region\n */\n static make(account, region) {\n return { account, region, name: this.format(account, region) };\n }\n /**\n * Format an environment string from an account and region\n */\n static format(account, region) {\n return `aws://${account}/${region}`;\n }\n}\nexports.EnvironmentUtils = EnvironmentUtils;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILE1BQU0sYUFBYSxHQUFHLGdEQUFnRCxDQUFDO0FBZ0IxRCxRQUFBLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztBQUNwQyxRQUFBLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUUvQyxNQUFhLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQW1CO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLDBCQUFrQixDQUMxQiw4Q0FBOEMsV0FBVyxLQUFLO2dCQUM5RCx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksMEJBQWtCLENBQUMsc0NBQXNDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBZSxFQUFFLE1BQWM7UUFDbEQsT0FBTyxTQUFTLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUE5QkQsNENBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUVycm9yIH0gZnJvbSAnLi9wcml2YXRlL2Vycm9yJztcblxuLyoqXG4gKiBQYXJzZXIgZm9yIHRoZSBhcnRpZmFjdCBlbnZpcm9ubWVudCBmaWVsZC5cbiAqXG4gKiBBY2NvdW50IHZhbGlkYXRpb24gaXMgcmVsYXhlZCB0byBhbGxvdyBhY2NvdW50IGFsaWFzaW5nIGluIHRoZSBmdXR1cmUuXG4gKi9cbmNvbnN0IEFXU19FTlZfUkVHRVggPSAvYXdzXFw6XFwvXFwvKFthLXowLTlBLVpcXC1cXEBcXC5cXF9dKylcXC8oW2EtelxcLTAtOV0rKS87XG5cbi8qKlxuICogTW9kZWxzIGFuIEFXUyBleGVjdXRpb24gZW52aXJvbm1lbnQsIGZvciB1c2Ugd2l0aGluIHRoZSBDREsgdG9vbGtpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gIC8qKiBUaGUgYXJiaXRyYXJ5IG5hbWUgb2YgdGhpcyBlbnZpcm9ubWVudCAodXNlci1zZXQsIG9yIGF0IGxlYXN0IHVzZXItbWVhbmluZ2Z1bCkgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgQVdTIGFjY291bnQgdGhpcyBlbnZpcm9ubWVudCBkZXBsb3lzIGludG8gKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgQVdTIHJlZ2lvbiBuYW1lIHdoZXJlIHRoaXMgZW52aXJvbm1lbnQgZGVwbG95cyBpbnRvICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9BQ0NPVU5UID0gJ3Vua25vd24tYWNjb3VudCc7XG5leHBvcnQgY29uc3QgVU5LTk9XTl9SRUdJT04gPSAndW5rbm93bi1yZWdpb24nO1xuXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRVdGlscyB7XG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UoZW52aXJvbm1lbnQ6IHN0cmluZyk6IEVudmlyb25tZW50IHtcbiAgICBjb25zdCBlbnYgPSBBV1NfRU5WX1JFR0VYLmV4ZWMoZW52aXJvbm1lbnQpO1xuICAgIGlmICghZW52KSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGVudmlyb25tZW50IHNwZWNpZmljYXRpb24gXCIke2Vudmlyb25tZW50fVwiLiBgICtcbiAgICAgICAgJ0V4cGVjdGVkIGZvcm1hdDogYXdzOi8vYWNjb3VudC9yZWdpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBbLCBhY2NvdW50LCByZWdpb25dID0gZW52O1xuICAgIGlmICghYWNjb3VudCB8fCAhcmVnaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBJbnZhbGlkIGVudmlyb25tZW50IHNwZWNpZmljYXRpb246ICR7ZW52aXJvbm1lbnR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgYWNjb3VudCwgcmVnaW9uLCBuYW1lOiBlbnZpcm9ubWVudCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIGVudmlyb25tZW50IG9iamVjdCBmcm9tIGFuIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYWtlKGFjY291bnQ6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcpOiBFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIHsgYWNjb3VudCwgcmVnaW9uLCBuYW1lOiB0aGlzLmZvcm1hdChhY2NvdW50LCByZWdpb24pIH07XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGFuIGVudmlyb25tZW50IHN0cmluZyBmcm9tIGFuIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JtYXQoYWNjb3VudDogc3RyaW5nLCByZWdpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhd3M6Ly8ke2FjY291bnR9LyR7cmVnaW9ufWA7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./context/vpc\"), exports);\n__exportStar(require(\"./context/ami\"), exports);\n__exportStar(require(\"./context/load-balancer\"), exports);\n__exportStar(require(\"./context/availability-zones\"), exports);\n__exportStar(require(\"./context/endpoint-service-availability-zones\"), exports);\n__exportStar(require(\"./context/security-group\"), exports);\n__exportStar(require(\"./context/key\"), exports);\n__exportStar(require(\"./context/generic\"), exports);\n__exportStar(require(\"./cloud-artifact\"), exports);\nrequire(\"./cloud-artifact-aug\");\n__exportStar(require(\"./artifacts/asset-manifest-artifact\"), exports);\n__exportStar(require(\"./artifacts/cloudformation-artifact\"), exports);\n__exportStar(require(\"./artifacts/tree-cloud-artifact\"), exports);\n__exportStar(require(\"./artifacts/nested-cloud-assembly-artifact\"), exports);\nrequire(\"./artifacts/nested-cloud-assembly-artifact-aug\");\n__exportStar(require(\"./cloud-assembly\"), exports);\n__exportStar(require(\"./assets\"), exports);\n__exportStar(require(\"./metadata\"), exports);\n__exportStar(require(\"./placeholders\"), exports);\n__exportStar(require(\"./environment\"), exports);\n__exportStar(require(\"./bootstrap\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLGdEQUE4QjtBQUM5QiwwREFBd0M7QUFDeEMsK0RBQTZDO0FBQzdDLGdGQUE4RDtBQUM5RCwyREFBeUM7QUFDekMsZ0RBQThCO0FBQzlCLG9EQUFrQztBQUNsQyxtREFBaUM7QUFDakMsZ0NBQThCO0FBQzlCLHNFQUFvRDtBQUNwRCxzRUFBb0Q7QUFDcEQsa0VBQWdEO0FBQ2hELDZFQUEyRDtBQUMzRCwwREFBd0Q7QUFDeEQsbURBQWlDO0FBQ2pDLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGdEQUE4QjtBQUM5Qiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQvdnBjJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9hbWknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2xvYWQtYmFsYW5jZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2F2YWlsYWJpbGl0eS16b25lcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQvZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L3NlY3VyaXR5LWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2dlbmVyaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgJy4vY2xvdWQtYXJ0aWZhY3QtYXVnJztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Fzc2V0LW1hbmlmZXN0LWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Nsb3VkZm9ybWF0aW9uLWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL3RyZWUtY2xvdWQtYXJ0aWZhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9wbGFjZWhvbGRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb3RzdHJhcCc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SynthesisMessageLevel = exports.PATH_METADATA_KEY = void 0;\n/**\n * The key used when CDK path is embedded in **CloudFormation template** metadata (not cdk metadata).\n */\nexports.PATH_METADATA_KEY = 'aws:cdk:path';\nvar SynthesisMessageLevel;\n(function (SynthesisMessageLevel) {\n SynthesisMessageLevel[\"INFO\"] = \"info\";\n SynthesisMessageLevel[\"WARNING\"] = \"warning\";\n SynthesisMessageLevel[\"ERROR\"] = \"error\";\n})(SynthesisMessageLevel || (exports.SynthesisMessageLevel = SynthesisMessageLevel = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBRWhELElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsNENBQW1CLENBQUE7SUFDbkIsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFJaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5cbi8qKlxuICogVGhlIGtleSB1c2VkIHdoZW4gQ0RLIHBhdGggaXMgZW1iZWRkZWQgaW4gKipDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSoqIG1ldGFkYXRhIChub3QgY2RrIG1ldGFkYXRhKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBVEhfTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6cGF0aCc7XG5cbmV4cG9ydCBlbnVtIFN5bnRoZXNpc01lc3NhZ2VMZXZlbCB7XG4gIElORk8gPSAnaW5mbycsXG4gIFdBUk5JTkcgPSAnd2FybmluZycsXG4gIEVSUk9SID0gJ2Vycm9yJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUVudHJ5UmVzdWx0IGV4dGVuZHMgY3hzY2hlbWEuTWV0YWRhdGFFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB3aGljaCB0aGlzIGVudHJ5IHdhcyBkZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgb2JqZWN0cyBpbiB0aGUgc3RhY2sncyBDb25zdHJ1Y3QgdHJlZVxuICovXG5leHBvcnQgdHlwZSBTdGFja01ldGFkYXRhID0geyBbcGF0aDogc3RyaW5nXTogY3hzY2hlbWEuTWV0YWRhdGFFbnRyeVtdIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhlc2lzTWVzc2FnZSB7XG4gIHJlYWRvbmx5IGxldmVsOiBTeW50aGVzaXNNZXNzYWdlTGV2ZWw7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudHJ5OiBjeHNjaGVtYS5NZXRhZGF0YUVudHJ5O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentPlaceholders = void 0;\n/**\n * Placeholders which can be used manifests\n *\n * These can occur both in the Asset Manifest as well as the general\n * Cloud Assembly manifest.\n */\nclass EnvironmentPlaceholders {\n /**\n * Replace the environment placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\n static replace(object, values) {\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, values.region);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, values.accountId);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, values.partition);\n return value;\n });\n }\n /**\n * Like 'replace', but asynchronous\n */\n static async replaceAsync(object, provider) {\n let needRegion = false;\n let needAccountId = false;\n let needPartition = false;\n this.recurse(object, value => {\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_REGION) > 1) {\n needRegion = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_ACCOUNT) > 1) {\n needAccountId = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_PARTITION) > 1) {\n needPartition = true;\n }\n return value;\n });\n const region = needRegion ? await provider.region() : undefined;\n const accountId = needAccountId ? await provider.accountId() : undefined;\n const partition = needPartition ? await provider.partition() : undefined;\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, region ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, accountId ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, partition ?? 'WONTHAPPEN');\n return value;\n });\n }\n static recurse(value, cb) {\n if (typeof value === 'string') {\n return cb(value);\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(x => this.recurse(x, cb));\n }\n const ret = {};\n for (const [key, inner] of Object.entries(value)) {\n ret[key] = this.recurse(inner, cb);\n }\n return ret;\n }\n}\nexports.EnvironmentPlaceholders = EnvironmentPlaceholders;\n/**\n * Insert this into the destination fields to be replaced with the current region\n */\nEnvironmentPlaceholders.CURRENT_REGION = '${AWS::Region}';\n/**\n * Insert this into the destination fields to be replaced with the current account\n */\nEnvironmentPlaceholders.CURRENT_ACCOUNT = '${AWS::AccountId}';\n/**\n * Insert this into the destination fields to be replaced with the current partition\n */\nEnvironmentPlaceholders.CURRENT_PARTITION = '${AWS::Partition}';\n/**\n * A \"replace-all\" function that doesn't require us escaping a literal string to a regex\n */\nfunction replaceAll(s, search, replace) {\n return s.split(search).join(replace);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7OztHQUtHO0FBQ0gsTUFBYSx1QkFBdUI7SUFnQmxDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsTUFBb0M7UUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNsQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pGLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckYsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFXLEVBQUUsUUFBeUM7UUFDckYsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENB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d2hpY2ggY2FuIGJlIHVzZWQgbWFuaWZlc3RzXG4gKlxuICogVGhlc2UgY2FuIG9jY3VyIGJvdGggaW4gdGhlIEFzc2V0IE1hbmlmZXN0IGFzIHdlbGwgYXMgdGhlIGdlbmVyYWxcbiAqIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0LlxuICovXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMge1xuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENVUlJFTlRfUkVHSU9OID0gJyR7QVdTOjpSZWdpb259JztcblxuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgYWNjb3VudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDVVJSRU5UX0FDQ09VTlQgPSAnJHtBV1M6OkFjY291bnRJZH0nO1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgdGhpcyBpbnRvIHRoZSBkZXN0aW5hdGlvbiBmaWVsZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgY3VycmVudCBwYXJ0aXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1VSUkVOVF9QQVJUSVRJT04gPSAnJHtBV1M6OlBhcnRpdGlvbn0nO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnMgaW4gYWxsIHN0cmluZ3MgZm91bmQgaW4gYSBjb21wbGV4IG9iamVjdC5cbiAgICpcbiAgICogRHVwbGljYXRlZCBiZXR3ZWVuIGNkay1hc3NldHMgYW5kIGF3cy1jZGsgQ0xJIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIGdvb2Qgc2luZ2xlIHBsYWNlIHRvIHB1dCBpdFxuICAgKiAodGhleSdyZSBub21pbmFsbHkgaW5kZXBlbmRlbnQgdG9vbHMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZXBsYWNlKG9iamVjdDogYW55LCB2YWx1ZXM6IEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlY3Vyc2Uob2JqZWN0LCB2YWx1ZSA9PiB7XG4gICAgICB2YWx1ZSA9IHJlcGxhY2VBbGwodmFsdWUsIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfUkVHSU9OLCB2YWx1ZXMucmVnaW9uKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9BQ0NPVU5ULCB2YWx1ZXMuYWNjb3VudElkKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04sIHZhbHVlcy5wYXJ0aXRpb24pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2UgJ3JlcGxhY2UnLCBidXQgYXN5bmNocm9ub3VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlcGxhY2VBc3luYyhvYmplY3Q6IGFueSwgcHJvdmlkZXI6IElFbnZpcm9ubWVudFBsYWNlaG9sZGVyUHJvdmlkZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBuZWVkUmVnaW9uID0gZmFsc2U7XG4gICAgbGV0IG5lZWRBY2NvdW50SWQgPSBmYWxzZTtcbiAgICBsZXQgbmVlZFBhcnRpdGlvbiA9IGZhbHNlO1xuXG4gICAgdGhpcy5yZWN1cnNlKG9iamVjdCwgdmFsdWUgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04pID4gMSkge1xuICAgICAgICBuZWVkUmVnaW9uID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfQUNDT1VOVCkgPiAxKSB7XG4gICAgICAgIG5lZWRBY2NvdW50SWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04pID4gMSkge1xuICAgICAgICBuZWVkUGFydGl0aW9uID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZ2lvbiA9IG5lZWRSZWdpb24gPyBhd2FpdCBwcm92aWRlci5yZWdpb24oKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBuZWVkQWNjb3VudElkID8gYXdhaXQgcHJvdmlkZXIuYWNjb3VudElkKCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFydGl0aW9uID0gbmVlZFBhcnRpdGlvbiA/IGF3YWl0IHByb3ZpZGVyLnBhcnRpdGlvbigpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMucmVjdXJzZShvYmplY3QsIHZhbHVlID0+IHtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04sIHJlZ2lvbiA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX0FDQ09VTlQsIGFjY291bnRJZCA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX1BBUlRJVElPTiwgcGFydGl0aW9uID8/ICdXT05USEFQUEVOJyk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWN1cnNlKHZhbHVlOiBhbnksIGNiOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY2IodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoeCA9PiB0aGlzLnJlY3Vyc2UoeCwgY2IpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGlubmVyXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIHJldFtrZXldID0gdGhpcy5yZWN1cnNlKGlubmVyLCBjYik7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlcyBmb3IgdGhlIGVudmlyb25tZW50IHBsYWNlaG9sZGVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcnRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXJvbm1lbnRQbGFjZWhvbGRlclByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmVnaW9uXG4gICAqL1xuICByZWdpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIGFjY291bnRJZCgpOiBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcGFydGl0aW9uXG4gICAqL1xuICBwYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEEgXCJyZXBsYWNlLWFsbFwiIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzIGVzY2FwaW5nIGEgbGl0ZXJhbCBzdHJpbmcgdG8gYSByZWdleFxuICovXG5mdW5jdGlvbiByZXBsYWNlQWxsKHM6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZykge1xuICByZXR1cm4gcy5zcGxpdChzZWFyY2gpLmpvaW4ocmVwbGFjZSk7XG59XG4iXX0=","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _CloudAssemblyError_time;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyError = void 0;\nconst ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssemblyError');\n/**\n * A CloudAssemblyError is thrown for issues with the synthesized CloudAssembly.\n *\n * These are typically exceptions that are unexpected for end-users,\n * and should only occur during abnormal operation, e.g. when the synthesis\n * didn't fully complete.\n *\n * @internal\n */\nclass CloudAssemblyError extends Error {\n /**\n * The time the error was thrown.\n */\n get time() {\n return __classPrivateFieldGet(this, _CloudAssemblyError_time, \"f\");\n }\n get type() {\n return 'assembly';\n }\n constructor(msg) {\n super(msg);\n _CloudAssemblyError_time.set(this, void 0);\n Object.setPrototypeOf(this, CloudAssemblyError.prototype);\n Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });\n this.name = new.target.name;\n __classPrivateFieldSet(this, _CloudAssemblyError_time, new Date().toISOString(), \"f\");\n }\n}\nexports.CloudAssemblyError = CloudAssemblyError;\n_CloudAssemblyError_time = new WeakMap();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUUvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUczQzs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sdUJBQUEsSUFBSSxnQ0FBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQWRiLDJDQUFjO1FBZ0JaLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM1Qix1QkFBQSxJQUFJLDRCQUFTLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQUEsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQVNTRU1CTFlfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkQXNzZW1ibHlFcnJvcicpO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseUVycm9yIGlzIHRocm93biBmb3IgaXNzdWVzIHdpdGggdGhlIHN5bnRoZXNpemVkIENsb3VkQXNzZW1ibHkuXG4gKlxuICogVGhlc2UgYXJlIHR5cGljYWxseSBleGNlcHRpb25zIHRoYXQgYXJlIHVuZXhwZWN0ZWQgZm9yIGVuZC11c2VycyxcbiAqIGFuZCBzaG91bGQgb25seSBvY2N1ciBkdXJpbmcgYWJub3JtYWwgb3BlcmF0aW9uLCBlLmcuIHdoZW4gdGhlIHN5bnRoZXNpc1xuICogZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRBc3NlbWJseUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAjdGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZXJyb3Igd2FzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGltZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiN0aW1lO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCk6ICdhc3NlbWJseScge1xuICAgIHJldHVybiAnYXNzZW1ibHknO1xuICB9XG5cbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtc2cpO1xuXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIENsb3VkQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLm5hbWUgPSBuZXcudGFyZ2V0Lm5hbWU7XG4gICAgdGhpcy4jdGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.topologicalSort = topologicalSort;\nconst error_1 = require(\"./error\");\n/**\n * Return a topological sort of all elements of xs, according to the given dependency functions\n *\n * Dependencies outside the referenced set are ignored.\n *\n * Not a stable sort, but in order to keep the order as stable as possible, we'll sort by key\n * among elements of equal precedence.\n */\nfunction topologicalSort(xs, keyFn, depFn) {\n const remaining = new Map();\n for (const element of xs) {\n const key = keyFn(element);\n remaining.set(key, { key, element, dependencies: depFn(element) });\n }\n const ret = new Array();\n while (remaining.size > 0) {\n // All elements with no more deps in the set can be ordered\n const selectable = Array.from(remaining.values()).filter(e => e.dependencies.every(d => !remaining.has(d)));\n selectable.sort((a, b) => a.key < b.key ? -1 : b.key < a.key ? 1 : 0);\n for (const selected of selectable) {\n ret.push(selected.element);\n remaining.delete(selected.key);\n }\n // If we didn't make any progress, we got stuck\n if (selectable.length === 0) {\n throw new error_1.CloudAssemblyError(`Could not determine ordering between: ${Array.from(remaining.keys()).join(', ')}`);\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wb3NvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b3Bvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLDBDQTBCQztBQXZDRCxtQ0FBNkM7QUFLN0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBSSxFQUFlLEVBQUUsS0FBaUIsRUFBRSxLQUFpQjtJQUN0RixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUNwRCxLQUFLLE1BQU0sT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsT0FBTyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLDJEQUEyRDtRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELCtDQUErQztRQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLHlDQUF5QyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL2Vycm9yJztcblxuZXhwb3J0IHR5cGUgS2V5RnVuYzxUPiA9ICh4OiBUKSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBEZXBGdW5jPFQ+ID0gKHg6IFQpID0+IHN0cmluZ1tdO1xuXG4vKipcbiAqIFJldHVybiBhIHRvcG9sb2dpY2FsIHNvcnQgb2YgYWxsIGVsZW1lbnRzIG9mIHhzLCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGRlcGVuZGVuY3kgZnVuY3Rpb25zXG4gKlxuICogRGVwZW5kZW5jaWVzIG91dHNpZGUgdGhlIHJlZmVyZW5jZWQgc2V0IGFyZSBpZ25vcmVkLlxuICpcbiAqIE5vdCBhIHN0YWJsZSBzb3J0LCBidXQgaW4gb3JkZXIgdG8ga2VlcCB0aGUgb3JkZXIgYXMgc3RhYmxlIGFzIHBvc3NpYmxlLCB3ZSdsbCBzb3J0IGJ5IGtleVxuICogYW1vbmcgZWxlbWVudHMgb2YgZXF1YWwgcHJlY2VkZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvcG9sb2dpY2FsU29ydDxUPih4czogSXRlcmFibGU8VD4sIGtleUZuOiBLZXlGdW5jPFQ+LCBkZXBGbjogRGVwRnVuYzxUPik6IFRbXSB7XG4gIGNvbnN0IHJlbWFpbmluZyA9IG5ldyBNYXA8c3RyaW5nLCBUb3BvRWxlbWVudDxUPj4oKTtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIHhzKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5Rm4oZWxlbWVudCk7XG4gICAgcmVtYWluaW5nLnNldChrZXksIHsga2V5LCBlbGVtZW50LCBkZXBlbmRlbmNpZXM6IGRlcEZuKGVsZW1lbnQpIH0pO1xuICB9XG5cbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFQ+KCk7XG4gIHdoaWxlIChyZW1haW5pbmcuc2l6ZSA+IDApIHtcbiAgICAvLyBBbGwgZWxlbWVudHMgd2l0aCBubyBtb3JlIGRlcHMgaW4gdGhlIHNldCBjYW4gYmUgb3JkZXJlZFxuICAgIGNvbnN0IHNlbGVjdGFibGUgPSBBcnJheS5mcm9tKHJlbWFpbmluZy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gZS5kZXBlbmRlbmNpZXMuZXZlcnkoZCA9PiAhcmVtYWluaW5nLmhhcyhkKSkpO1xuXG4gICAgc2VsZWN0YWJsZS5zb3J0KChhLCBiKSA9PiBhLmtleSA8IGIua2V5ID8gLTEgOiBiLmtleSA8IGEua2V5ID8gMSA6IDApO1xuXG4gICAgZm9yIChjb25zdCBzZWxlY3RlZCBvZiBzZWxlY3RhYmxlKSB7XG4gICAgICByZXQucHVzaChzZWxlY3RlZC5lbGVtZW50KTtcbiAgICAgIHJlbWFpbmluZy5kZWxldGUoc2VsZWN0ZWQua2V5KTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBkaWRuJ3QgbWFrZSBhbnkgcHJvZ3Jlc3MsIHdlIGdvdCBzdHVja1xuICAgIGlmIChzZWxlY3RhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgQ291bGQgbm90IGRldGVybWluZSBvcmRlcmluZyBiZXR3ZWVuOiAke0FycmF5LmZyb20ocmVtYWluaW5nLmtleXMoKSkuam9pbignLCAnKX1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5pbnRlcmZhY2UgVG9wb0VsZW1lbnQ8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBzdHJpbmdbXTtcbiAgZWxlbWVudDogVDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlc3RpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWRlc3RpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlc3RpbmF0aW9uIGZvciBhc3NldHMgdGhhdCBuZWVkIHRvIGJlIHVwbG9hZGVkIHRvIEFXU1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Rlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgdGhpcyBhc3NldCB3aWxsIG5lZWQgdG8gYmUgcHVibGlzaGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VycmVudCByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgdGhhdCBuZWVkcyB0byBiZSBhc3N1bWVkIHdoaWxlIHB1Ymxpc2hpbmcgdGhpcyBhc3NldFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHJvbGUgd2lsbCBiZSBhc3N1bWVkXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgRXh0ZXJuYWxJZCB0aGF0IG5lZWRzIHRvIGJlIHN1cHBsaWVkIHdoaWxlIGFzc3VtaW5nIHRoaXMgcm9sZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIEV4dGVybmFsSWQgd2lsbCBiZSBzdXBwbGllZFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKlxuICAgKiAtIGBSb2xlQXJuYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlQXJuYCBwcm9wZXJ0eSBpbnN0ZWFkLlxuICAgKiAtIGBFeHRlcm5hbElkYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlRXh0ZXJuYWxJZGAgaW5zdGVhZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL1NUUy5odG1sI2Fzc3VtZVJvbGUtcHJvcGVydHlcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWltYWdlLWFzc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9ja2VyLWltYWdlLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEF3c0Rlc3RpbmF0aW9uIH0gZnJvbSAnLi9hd3MtZGVzdGluYXRpb24nO1xuXG4vKipcbiAqIEEgZmlsZSBhc3NldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckltYWdlQXNzZXQge1xuICAvKipcbiAgICogQSBkaXNwbGF5IG5hbWUgZm9yIHRoaXMgYXNzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgaWRlbnRpZmllciB3aWxsIGJlIHVzZWQgYXMgdGhlIGRpc3BsYXkgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNvdXJjZSBkZXNjcmlwdGlvbiBmb3IgY29udGFpbmVyIGFzc2V0c1xuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBEb2NrZXJJbWFnZVNvdXJjZTtcblxuICAvKipcbiAgICogRGVzdGluYXRpb25zIGZvciB0aGlzIGNvbnRhaW5lciBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25zOiB7IFtpZDogc3RyaW5nXTogRG9ja2VySW1hZ2VEZXN0aW5hdGlvbiB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGhvdyB0byBwcm9kdWNlIGEgRG9ja2VyIGltYWdlIGZyb20gYSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZVNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIERvY2tlciBpbWFnZSBidWlsZCBpbnN0cnVjdGlvbnMuXG4gICAqXG4gICAqIFRoaXMgcGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgYXNzZXQgbWFuaWZlc3QgbG9jYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRXhhY3RseSBvbmUgb2YgYGRpcmVjdG9yeWAgYW5kIGBleGVjdXRhYmxlYCBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbW1hbmQtbGluZSBleGVjdXRhYmxlIHRoYXQgcmV0dXJucyB0aGUgbmFtZSBvZiBhIGxvY2FsXG4gICAqIERvY2tlciBpbWFnZSBvbiBzdGRvdXQgYWZ0ZXIgYmVpbmcgcnVuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEV4YWN0bHkgb25lIG9mIGBkaXJlY3RvcnlgIGFuZCBgZXhlY3V0YWJsZWAgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGFibGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpbGUgd2l0aCBidWlsZCBpbnN0cnVjdGlvbnNcbiAgICpcbiAgICogT25seSBhbGxvd2VkIHdoZW4gYGRpcmVjdG9yeWAgaXMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkRvY2tlcmZpbGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGFyZ2V0IGJ1aWxkIHN0YWdlIGluIGEgRG9ja2VyZmlsZSB3aXRoIG11bHRpcGxlIGJ1aWxkIHN0YWdlc1xuICAgKlxuICAgKiBPbmx5IGFsbG93ZWQgd2hlbiBgZGlyZWN0b3J5YCBpcyBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGxhc3Qgc3RhZ2UgaW4gdGhlIERvY2tlcmZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckJ1aWxkVGFyZ2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJ1aWxkIGFyZ3VtZW50c1xuICAgKlxuICAgKiBPbmx5IGFsbG93ZWQgd2hlbiBgZGlyZWN0b3J5YCBpcyBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBidWlsZCBhcmd1bWVudHNcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckJ1aWxkQXJncz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJ1aWxkIGNvbnRleHRzXG4gICAqXG4gICAqIE9ubHkgYWxsb3dlZCB3aGVuIGBkaXJlY3RvcnlgIGlzIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIGJ1aWxkIGNvbnRleHRzXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJCdWlsZENvbnRleHRzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNTSCBhZ2VudCBzb2NrZXQgb3Iga2V5c1xuICAgKlxuICAgKiBSZXF1aXJlcyBidWlsZGluZyB3aXRoIGRvY2tlciBidWlsZGtpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzc2ggZmxhZyBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckJ1aWxkU3NoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJ1aWxkIHNlY3JldHNcbiAgICpcbiAgICogT25seSBhbGxvd2VkIHdoZW4gYGRpcmVjdG9yeWAgaXMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgYnVpbGQgc2VjcmV0c1xuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyQnVpbGRTZWNyZXRzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE5ldHdvcmtpbmcgbW9kZSBmb3IgdGhlIFJVTiBjb21tYW5kcyBkdXJpbmcgYnVpbGQuIF9SZXF1aXJlcyBEb2NrZXIgRW5naW5lIEFQSSB2MS4yNStfLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgcHJvcGVydHkgdG8gYnVpbGQgaW1hZ2VzIG9uIGEgc3BlY2lmaWMgbmV0d29ya2luZyBtb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldHdvcmtpbmcgbW9kZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSB0byBidWlsZCBmb3IuIF9SZXF1aXJlcyBEb2NrZXIgQnVpbGR4Xy5cbiAgICpcbiAgICogU3BlY2lmeSB0aGlzIHByb3BlcnR5IHRvIGJ1aWxkIGltYWdlcyBvbiBhIHNwZWNpZmljIHBsYXRmb3JtL2FyY2hpdGVjdHVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IG1hY2hpbmUgcGxhdGZvcm1cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3V0cHV0cyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kIChkZWZhdWx0IG91dHB1dHMgYXJlIHVzZWQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8jY3VzdG9tLWJ1aWxkLW91dHB1dHNcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlck91dHB1dHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2FjaGUgZnJvbSBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgZnJvbSBvcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmRcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy9cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRnJvbT86IERvY2tlckNhY2hlT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIENhY2hlIHRvIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSB0byBvcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmRcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy9cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlVG8/OiBEb2NrZXJDYWNoZU9wdGlvbjtcblxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgY2FjaGUgYW5kIHBhc3MgYC0tbm8tY2FjaGVgIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNhY2hlIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFdoZXJlIHRvIHB1Ymxpc2ggZG9ja2VyIGltYWdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckltYWdlRGVzdGluYXRpb24gZXh0ZW5kcyBBd3NEZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBFQ1IgcmVwb3NpdG9yeSB0byBwdWJsaXNoIHRvXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWcgb2YgdGhlIGltYWdlIHRvIHB1Ymxpc2hcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVGFnOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIERvY2tlciBjYWNoZSBiYWNrZW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ2FjaGVPcHRpb24ge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgY2FjaGUgdG8gdXNlLlxuICAgKiBSZWZlciB0byBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy8gZm9yIGZ1bGwgbGlzdCBvZiBiYWNrZW5kcy5cbiAgICogQGRlZmF1bHQgLSB1bnNwZWNpZmllZFxuICAgKlxuICAgKiBAZXhhbXBsZSAncmVnaXN0cnknXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbnkgcGFyYW1ldGVycyB0byBwYXNzIGludG8gdGhlIGRvY2tlciBjYWNoZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIFJlZmVyIHRvIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzLyBmb3IgY2FjaGUgYmFja2VuZCBjb25maWd1cmF0aW9uLlxuICAgKiBAZGVmYXVsdCB7fSBObyBvcHRpb25zIHByb3ZpZGVkXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGRlY2xhcmUgY29uc3QgYnJhbmNoOiBzdHJpbmc7XG4gICAqXG4gICAqIGNvbnN0IHBhcmFtcyA9IHtcbiAgICogICByZWY6IGAxMjM0NTY3OC5ka3IuZWNyLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tL2NhY2hlOiR7YnJhbmNofWAsXG4gICAqICAgbW9kZTogXCJtYXhcIixcbiAgICogfTtcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileAssetPackaging = void 0;\n/**\n * Packaging strategy for file assets\n */\nvar FileAssetPackaging;\n(function (FileAssetPackaging) {\n /**\n * Upload the given path as a file\n */\n FileAssetPackaging[\"FILE\"] = \"file\";\n /**\n * The given path is a directory, zip it and upload\n */\n FileAssetPackaging[\"ZIP_DIRECTORY\"] = \"zip\";\n})(FileAssetPackaging || (exports.FileAssetPackaging = FileAssetPackaging = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZpbGUtYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBOztHQUVHO0FBQ0gsSUFBWSxrQkFVWDtBQVZELFdBQVksa0JBQWtCO0lBQzVCOztPQUVHO0lBQ0gsbUNBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBVTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBd3NEZXN0aW5hdGlvbiB9IGZyb20gJy4vYXdzLWRlc3RpbmF0aW9uJztcblxuLyoqXG4gKiBBIGZpbGUgYXNzZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlQXNzZXQge1xuICAvKipcbiAgICogQSBkaXNwbGF5IG5hbWUgZm9yIHRoaXMgYXNzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgaWRlbnRpZmllciB3aWxsIGJlIHVzZWQgYXMgdGhlIGRpc3BsYXkgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNvdXJjZSBkZXNjcmlwdGlvbiBmb3IgZmlsZSBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogRmlsZVNvdXJjZTtcblxuICAvKipcbiAgICogRGVzdGluYXRpb25zIGZvciB0aGlzIGZpbGUgYXNzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uczogeyBbaWQ6IHN0cmluZ106IEZpbGVEZXN0aW5hdGlvbiB9O1xufVxuXG4vKipcbiAqIFBhY2thZ2luZyBzdHJhdGVneSBmb3IgZmlsZSBhc3NldHNcbiAqL1xuZXhwb3J0IGVudW0gRmlsZUFzc2V0UGFja2FnaW5nIHtcbiAgLyoqXG4gICAqIFVwbG9hZCB0aGUgZ2l2ZW4gcGF0aCBhcyBhIGZpbGVcbiAgICovXG4gIEZJTEUgPSAnZmlsZScsXG5cbiAgLyoqXG4gICAqIFRoZSBnaXZlbiBwYXRoIGlzIGEgZGlyZWN0b3J5LCB6aXAgaXQgYW5kIHVwbG9hZFxuICAgKi9cbiAgWklQX0RJUkVDVE9SWSA9ICd6aXAnLFxufVxuXG4vKipcbiAqIERlc2NyaWJlIHRoZSBzb3VyY2Ugb2YgYSBmaWxlIGFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVNvdXJjZSB7XG4gIC8qKlxuICAgKiBFeHRlcm5hbCBjb21tYW5kIHdoaWNoIHdpbGwgcHJvZHVjZSB0aGUgZmlsZSBhc3NldCB0byB1cGxvYWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRXhhY3RseSBvbmUgb2YgYGV4ZWN1dGFibGVgIGFuZCBgcGF0aGAgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZWFkb25seSBleGVjdXRhYmxlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlc3lzdGVtIG9iamVjdCB0byB1cGxvYWRcbiAgICpcbiAgICogVGhpcyBwYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBhc3NldCBtYW5pZmVzdCBsb2NhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFeGFjdGx5IG9uZSBvZiBgZXhlY3V0YWJsZWAgYW5kIGBwYXRoYCBpcyByZXF1aXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhY2thZ2luZyBtZXRob2RcbiAgICpcbiAgICogT25seSBhbGxvd2VkIHdoZW4gYHBhdGhgIGlzIHNwZWNpZmllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgRklMRVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnaW5nPzogRmlsZUFzc2V0UGFja2FnaW5nO1xufVxuXG4vKipcbiAqIFdoZXJlIGluIFMzIGEgZmlsZSBhc3NldCBuZWVkcyB0byBiZSBwdWJsaXNoZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlRGVzdGluYXRpb24gZXh0ZW5kcyBBd3NEZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnVja2V0XG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBvYmplY3Qga2V5XG4gICAqL1xuICByZWFkb25seSBvYmplY3RLZXk6IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./docker-image-asset\"), exports);\n__exportStar(require(\"./file-asset\"), exports);\n__exportStar(require(\"./aws-destination\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLHVEQUFxQztBQUNyQywrQ0FBNkI7QUFDN0Isb0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2NrZXItaW1hZ2UtYXNzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWFzc2V0JztcbmV4cG9ydCAqIGZyb20gJy4vYXdzLWRlc3RpbmF0aW9uJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvY2tlckltYWdlQXNzZXQgfSBmcm9tICcuL2RvY2tlci1pbWFnZS1hc3NldCc7XG5pbXBvcnQgdHlwZSB7IEZpbGVBc3NldCB9IGZyb20gJy4vZmlsZS1hc3NldCc7XG5cbi8qKlxuICogRGVmaW5pdGlvbnMgZm9yIHRoZSBhc3NldCBtYW5pZmVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0TWFuaWZlc3Qge1xuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUgbWFuaWZlc3RcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbGUgYXNzZXRzIGluIHRoaXMgbWFuaWZlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXM/OiB7IFtpZDogc3RyaW5nXTogRmlsZUFzc2V0IH07XG5cbiAgLyoqXG4gICAqIFRoZSBEb2NrZXIgaW1hZ2UgYXNzZXRzIGluIHRoaXMgbWFuaWZlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBEb2NrZXIgaW1hZ2VzXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJJbWFnZXM/OiB7IFtpZDogc3RyaW5nXTogRG9ja2VySW1hZ2VBc3NldCB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3Qtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXJ0aWZhY3Qtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEluZm9ybWF0aW9uIG5lZWRlZCB0byBhY2Nlc3MgYW4gSUFNIHJvbGUgY3JlYXRlZFxuICogYXMgcGFydCBvZiB0aGUgYm9vdHN0cmFwIHByb2Nlc3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSb2xlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIElBTSByb2xlIGNyZWF0ZWQgYXMgcGFydCBvZiBib290cmFwcGluZ1xuICAgKiBlLmcuIGxvb2t1cFJvbGVBcm5cbiAgICovXG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHRlcm5hbCBJRCB0byB1c2Ugd2hlbiBhc3N1bWluZyB0aGUgYm9vdHN0cmFwIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKlxuICAgKiAtIGBSb2xlQXJuYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhcm5gIHByb3BlcnR5IGluc3RlYWQuXG4gICAqIC0gYEV4dGVybmFsSWRgIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGFzc3VtZVJvbGVFeHRlcm5hbElkYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIHVzZSB0aGlzIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBib290c3RyYXAgc3RhY2sgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIFNTTSBwYXJhbWV0ZXIgd2l0aCBib290c3RyYXAgc3RhY2sgdmVyc2lvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERpc2NvdmVyIFNTTSBwYXJhbWV0ZXIgYnkgcmVhZGluZyBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFydGlmYWN0IHByb3BlcnRpZXMgZm9yIENsb3VkRm9ybWF0aW9uIHN0YWNrcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBBIGZpbGUgcmVsYXRpdmUgdG8gdGhlIGFzc2VtYmx5IHJvb3Qgd2hpY2ggY29udGFpbnMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGZvciB0aGlzIHN0YWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGVGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhbHVlcyBmb3IgQ2xvdWRGb3JtYXRpb24gc3RhY2sgcGFyYW1ldGVycyB0aGF0IHNob3VsZCBiZSBwYXNzZWQgd2hlbiB0aGUgc3RhY2sgaXMgZGVwbG95ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVmFsdWVzIGZvciBDbG91ZEZvcm1hdGlvbiBzdGFjayB0YWdzIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB3aGVuIHRoZSBzdGFjayBpcyBkZXBsb3llZC5cbiAgICpcbiAgICogTi5CLjogVGFncyBhcmUgYWxzbyB3cml0dGVuIHRvIHN0YWNrIG1ldGFkYXRhLCB1bmRlciB0aGUgcGF0aCBvZiB0aGUgU3RhY2tcbiAgICogY29uc3RydWN0LiBPbmx5IGluIENESyBDTEkgdjEgYXJlIHRob3NlIHRhZ3MgZm91bmQgaW4gbWV0YWRhdGEgdXNlZCBmb3JcbiAgICogYWN0dWFsIGRlcGxveW1lbnRzOyBpbiBhbGwgc3RhYmxlIHZlcnNpb25zIG9mIENESyBvbmx5IHRoZSBzdGFjayB0YWdzXG4gICAqIGRpcmVjdGx5IGZvdW5kIGluIHRoZSBgdGFnc2AgcHJvcGVydHkgb2YgYEF3c0Nsb3VkRm9ybWF0aW9uU3RhY2tgIGFydGlmYWN0XG4gICAqIChpLmUuLCB0aGlzIHByb3BlcnR5KSBhcmUgdXNlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBTTlMgTm90aWZpY2F0aW9uIEFSTnMgdGhhdCBzaG91bGQgcmVjZWl2ZSBDbG91ZEZvcm1hdGlvbiBTdGFjayBFdmVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbm90aWZpY2F0aW9uIGFybnNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqIEBkZWZhdWx0IC0gbmFtZSBkZXJpdmVkIGZyb20gYXJ0aWZhY3QgSURcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgdGVybWluYXRpb24gcHJvdGVjdGlvbiBmb3IgdGhpcyBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRlcm1pbmF0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgbmVlZHMgdG8gYmUgYXNzdW1lZCB0byBkZXBsb3kgdGhlIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcm9sZSBpcyBhc3N1bWVkIChjdXJyZW50IGNyZWRlbnRpYWxzIGFyZSB1c2VkKVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0ZXJuYWwgSUQgdG8gdXNlIHdoZW4gYXNzdW1pbmcgcm9sZSBmb3IgY2xvdWRmb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKlxuICAgKiAtIGBSb2xlQXJuYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlQXJuYCBwcm9wZXJ0eSBpbnN0ZWFkLlxuICAgKiAtIGBFeHRlcm5hbElkYCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSB0aGUgZGVkaWNhdGVkIGBhc3N1bWVSb2xlRXh0ZXJuYWxJZGAgaW5zdGVhZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTSmF2YVNjcmlwdFNESy9sYXRlc3QvQVdTL1NUUy5odG1sI2Fzc3VtZVJvbGUtcHJvcGVydHlcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSB0aGF0IGlzIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbiB0byBleGVjdXRlIHRoZSBjaGFuZ2Ugc2V0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcm9sZSBpcyBwYXNzZWQgKGN1cnJlbnRseSBhc3N1bWVkIHJvbGUvY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRvIHVzZSB0byBsb29rIHVwIHZhbHVlcyBmcm9tIHRoZSB0YXJnZXQgQVdTIGFjY291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBsb29rdXBSb2xlPzogQm9vdHN0cmFwUm9sZTtcblxuICAvKipcbiAgICogSWYgdGhlIHN0YWNrIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gaW5jbHVkZWQgaW4gdGhlIGFzc2V0IG1hbmlmZXN0LCBpdHMgYXNzZXQgVVJMXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IHVwbG9hZGVkIHlldCwgdXBsb2FkIGp1c3QgYmVmb3JlIGRlcGxveWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIGJvb3RzdHJhcCBzdGFjayByZXF1aXJlZCB0byBkZXBsb3kgdGhpcyBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGJvb3RzdHJhcCBzdGFjayByZXF1aXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNTTSBwYXJhbWV0ZXIgd2hlcmUgdGhlIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIG51bWJlciBjYW4gYmUgZm91bmRcbiAgICpcbiAgICogT25seSB1c2VkIGlmIGByZXF1aXJlc0Jvb3RzdHJhcFN0YWNrVmVyc2lvbmAgaXMgc2V0LlxuICAgKlxuICAgKiAtIElmIHRoaXMgdmFsdWUgaXMgbm90IHNldCwgdGhlIGJvb3RzdHJhcCBzdGFjayBuYW1lIG11c3QgYmUga25vd24gYXRcbiAgICogICBkZXBsb3ltZW50IHRpbWUgc28gdGhlIHN0YWNrIHZlcnNpb24gY2FuIGJlIGxvb2tlZCB1cCBmcm9tIHRoZSBzdGFja1xuICAgKiAgIG91dHB1dHMuXG4gICAqIC0gSWYgdGhpcyB2YWx1ZSBpcyBzZXQsIHRoZSBib290c3RyYXAgc3RhY2sgY2FuIGhhdmUgYW55IG5hbWUgYmVjYXVzZVxuICAgKiAgIHdlIHdvbid0IG5lZWQgdG8gbG9vayBpdCB1cC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBCb290c3RyYXAgc3RhY2sgdmVyc2lvbiBudW1iZXIgbG9va2VkIHVwXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdGFjayBzaG91bGQgYmUgdmFsaWRhdGVkIGJ5IHRoZSBDTEkgYWZ0ZXIgc3ludGhlc2lzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlT25TeW50aD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgQXNzZXQgTWFuaWZlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldE1hbmlmZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIGJvb3RzdHJhcCBzdGFjayByZXF1aXJlZCB0byBkZXBsb3kgdGhpcyBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFZlcnNpb24gMSAoYmFzaWMgbW9kZXJuIGJvb3RzdHJhcCBzdGFjaylcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTU00gcGFyYW1ldGVyIHdoZXJlIHRoZSBib290c3RyYXAgc3RhY2sgdmVyc2lvbiBudW1iZXIgY2FuIGJlIGZvdW5kXG4gICAqXG4gICAqIC0gSWYgdGhpcyB2YWx1ZSBpcyBub3Qgc2V0LCB0aGUgYm9vdHN0cmFwIHN0YWNrIG5hbWUgbXVzdCBiZSBrbm93biBhdFxuICAgKiAgIGRlcGxveW1lbnQgdGltZSBzbyB0aGUgc3RhY2sgdmVyc2lvbiBjYW4gYmUgbG9va2VkIHVwIGZyb20gdGhlIHN0YWNrXG4gICAqICAgb3V0cHV0cy5cbiAgICogLSBJZiB0aGlzIHZhbHVlIGlzIHNldCwgdGhlIGJvb3RzdHJhcCBzdGFjayBjYW4gaGF2ZSBhbnkgbmFtZSBiZWNhdXNlXG4gICAqICAgd2Ugd29uJ3QgbmVlZCB0byBsb29rIGl0IHVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIG51bWJlciBsb29rZWQgdXBcbiAgICovXG4gIHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBcnRpZmFjdCBwcm9wZXJ0aWVzIGZvciB0aGUgQXNzZXQgTWFuaWZlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldE1hbmlmZXN0UHJvcGVydGllcyBleHRlbmRzIEFzc2V0TWFuaWZlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbGVuYW1lIG9mIHRoZSBhc3NldCBtYW5pZmVzdFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFydGlmYWN0IHByb3BlcnRpZXMgZm9yIHRoZSBDb25zdHJ1Y3QgVHJlZSBBcnRpZmFjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVBcnRpZmFjdFByb3BlcnRpZXMge1xuICAvKipcbiAgICogRmlsZW5hbWUgb2YgdGhlIHRyZWUgYXJ0aWZhY3RcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBcnRpZmFjdCBwcm9wZXJ0aWVzIGZvciBuZXN0ZWQgY2xvdWQgYXNzZW1ibGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RlZENsb3VkQXNzZW1ibHlQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFJlbGF0aXZlIHBhdGggdG8gdGhlIG5lc3RlZCBjbG91ZCBhc3NlbWJseVxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IG5hbWUgZm9yIHRoZSBjbG91ZCBhc3NlbWJseVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBhcnRpZmFjdCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXJ0aWZhY3QgcHJvcGVydGllcyBmb3IgYSBmZWF0dXJlIGZsYWcgcmVwb3J0XG4gKlxuICogQSBmZWF0dXJlIGZsYWcgcmVwb3J0IGlzIHNtYWxsIGVub3VnaCB0aGF0IGFsbCB0aGUgcHJvcGVydGllcyBjYW4gYmUgaW5saW5lZFxuICogaGVyZSwgYW5kIGRvZXNuJ3QgbmVlZCBhbiBhZGRpdGlvbmFsIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWdSZXBvcnRQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBsaWJyYXJ5IHRoYXQgdGhpcyBmZWF0dXJlIGZsYWcgcmVwb3J0IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSBtb2R1bGU6IHN0cmluZztcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgZXZlcnkgZmVhdHVyZSBmbGFnIHN1cHBvcnRlZCBieSB0aGlzIGxpYnJhcnkuXG4gICAqL1xuICByZWFkb25seSBmbGFnczogeyBbZmxhZ05hbWU6IHN0cmluZ106IEZlYXR1cmVGbGFnIH07XG59XG5cbi8qKlxuICogQSBzaW5nbGUgZmVhdHVyZSBmbGFnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWcge1xuICAvKipcbiAgICogVGhlIGxpYnJhcnktcmVjb21tZW5kZWQgdmFsdWUgZm9yIHRoaXMgZmxhZywgaWYgYW55XG4gICAqXG4gICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVjb21tZW5kZWQgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSByZWNvbW1lbmRlZFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgY29uZmlndXJlZCBieSB0aGUgdXNlclxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSB2YWx1ZSBjb25maWd1cmVkIGF0IHRoZSByb290IG9mIHRoZSB0cmVlLiBVc2VycyBtYXkgYWxzbyBoYXZlXG4gICAqIGNvbmZpZ3VyZWQgdmFsdWVzIGF0IHNwZWNpZmljIGxvY2F0aW9ucyBpbiB0aGUgdHJlZTsgd2UgZG9uJ3QgcmVwb3J0IG9uXG4gICAqIHRob3NlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBjb25maWd1cmVkIGJ5IHRoZSB1c2VyXG4gICAqL1xuICByZWFkb25seSB1c2VyVmFsdWU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIEV4cGxhbmF0aW9uIGFib3V0IHRoZSBwdXJwb3NlIG9mIHRoaXMgZmxhZyB0aGF0IGNhbiBiZSBzaG93biB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZXhwbGFuYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgZmxhZyB0aGF0IHByb2R1Y2VzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHdoZW4gdGhlIGZsYWcgaXMgbm90IGNvbmZpZ3VyZWQgYXQgYWxsXG4gICAqXG4gICAqVGhlIHN0cnVjdHVyZSBvZiB0aGlzIGZpZWxkIGlzIGEgaGlzdG9yaWNhbCBhY2NpZGVudC4gVGhlIHR5cGUgb2YgdGhpcyBmaWVsZFxuICAgKnNob3VsZCBoYXZlIGJlZW4gYm9vbGVhbiwgd2hpY2ggc2hvdWxkIGhhdmUgY29udGFpbmVkIHRoZSBkZWZhdWx0IHZhbHVlIGZvclxuICAgKnRoZSBmbGFnIGFwcHJvcHJpYXRlIGZvciB0aGUgKmN1cnJlbnQqIHZlcnNpb24gb2YgdGhlIENESyBsaWJyYXJ5LiBXZSBhcmVcbiAgICpub3QgcmVjdGlmeWluZyB0aGlzIGFjY2lkZW50IGJlY2F1c2UgZG9pbmcgc29cbiAgICpcbiAgICogSW5zdGVhZCwgdGhlIGNhbm9uaWNhbCB3YXkgdG8gYWNjZXNzIHRoaXMgdmFsdWUgaXMgYnkgZXZhbHVhdGluZ1xuICAgKiBgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U/LnYyID8/IGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlPzogVW5jb25maWd1cmVkQmVoYXZlc0xpa2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5jb25maWd1cmVkQmVoYXZlc0xpa2Uge1xuICAvKipcbiAgICogSGlzdG9yaWNhbCBhY2NpZGVudCwgZG9uJ3QgdXNlLlxuICAgKlxuICAgKiBUaGlzIHZhbHVlIG1heSBiZSBwcmVzZW50LCBidXQgaXQgc2hvdWxkIG5ldmVyIGJlIHVzZWQuIFRoZSBhY3R1YWwgdmFsdWUgaXNcbiAgICogaW4gdGhlIGB2MmAgZmllbGQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHZlcnNpb24gb2YgdGhlIENESyBsaWJyYXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgdjE/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgZmxhZyB0aGF0IHByb2R1Y2VzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHdoZW4gdGhlIGZsYWcgaXMgbm90IGNvbmZpZ3VyZWQgYXQgYWxsXG4gICAqXG4gICAqIEV2ZW4gdGhvdWdoIGl0IGlzIGNhbGxlZCAndjInLCB0aGlzIGlzIHRoZSBvZmZpY2lhbCBuYW1lIG9mIHRoaXMgZmllbGQuIEluXG4gICAqIGFueSBmdXR1cmUgdmVyc2lvbnMgb2YgQ0RLICh2MywgdjQsIC4uLiksIHRoaXMgZmllbGQgd2lsbCBzdGlsbCBiZSBjYWxsZWQgJ3YyJy5cbiAgICpcbiAgICogVGhlIHN0cnVjdHVyZSBvZiB0aGlzIGZpZWxkIGlzIGEgaGlzdG9yaWNhbCBhY2NpZGVudC4gU2VlIHRoZSBjb21tZW50IG9uXG4gICAqIGB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZWAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2Mj86IGFueTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBtYW5pZmVzdCBhcnRpZmFjdHNcbiAqL1xuZXhwb3J0IHR5cGUgQXJ0aWZhY3RQcm9wZXJ0aWVzID1cbiAgfCBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllc1xuICB8IEFzc2V0TWFuaWZlc3RQcm9wZXJ0aWVzXG4gIHwgVHJlZUFydGlmYWN0UHJvcGVydGllc1xuICB8IE5lc3RlZENsb3VkQXNzZW1ibHlQcm9wZXJ0aWVzXG4gIHwgRmVhdHVyZUZsYWdSZXBvcnRQcm9wZXJ0aWVzO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerListenerProtocol = exports.LoadBalancerType = exports.ContextProvider = void 0;\n/**\n * Identifier for the context provider\n */\nvar ContextProvider;\n(function (ContextProvider) {\n /**\n * AMI provider\n */\n ContextProvider[\"AMI_PROVIDER\"] = \"ami\";\n /**\n * AZ provider\n */\n ContextProvider[\"AVAILABILITY_ZONE_PROVIDER\"] = \"availability-zones\";\n /**\n * Route53 Hosted Zone provider\n */\n ContextProvider[\"HOSTED_ZONE_PROVIDER\"] = \"hosted-zone\";\n /**\n * SSM Parameter Provider\n */\n ContextProvider[\"SSM_PARAMETER_PROVIDER\"] = \"ssm\";\n /**\n * VPC Provider\n */\n ContextProvider[\"VPC_PROVIDER\"] = \"vpc-provider\";\n /**\n * VPC Endpoint Service AZ Provider\n */\n ContextProvider[\"ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER\"] = \"endpoint-service-availability-zones\";\n /**\n * Load balancer provider\n */\n ContextProvider[\"LOAD_BALANCER_PROVIDER\"] = \"load-balancer\";\n /**\n * Load balancer listener provider\n */\n ContextProvider[\"LOAD_BALANCER_LISTENER_PROVIDER\"] = \"load-balancer-listener\";\n /**\n * Security group provider\n */\n ContextProvider[\"SECURITY_GROUP_PROVIDER\"] = \"security-group\";\n /**\n * KMS Key Provider\n */\n ContextProvider[\"KEY_PROVIDER\"] = \"key-provider\";\n /**\n * CCAPI Provider\n */\n ContextProvider[\"CC_API_PROVIDER\"] = \"cc-api-provider\";\n /**\n * A plugin provider (the actual plugin name will be in the properties)\n */\n ContextProvider[\"PLUGIN\"] = \"plugin\";\n})(ContextProvider || (exports.ContextProvider = ContextProvider = {}));\n/**\n * Type of load balancer\n */\nvar LoadBalancerType;\n(function (LoadBalancerType) {\n /**\n * Network load balancer\n */\n LoadBalancerType[\"NETWORK\"] = \"network\";\n /**\n * Application load balancer\n */\n LoadBalancerType[\"APPLICATION\"] = \"application\";\n})(LoadBalancerType || (exports.LoadBalancerType = LoadBalancerType = {}));\n/**\n * The protocol for connections from clients to the load balancer\n */\nvar LoadBalancerListenerProtocol;\n(function (LoadBalancerListenerProtocol) {\n /**\n * HTTP protocol\n */\n LoadBalancerListenerProtocol[\"HTTP\"] = \"HTTP\";\n /**\n * HTTPS protocol\n */\n LoadBalancerListenerProtocol[\"HTTPS\"] = \"HTTPS\";\n /**\n * TCP protocol\n */\n LoadBalancerListenerProtocol[\"TCP\"] = \"TCP\";\n /**\n * TLS protocol\n */\n LoadBalancerListenerProtocol[\"TLS\"] = \"TLS\";\n /**\n * UDP protocol\n * */\n LoadBalancerListenerProtocol[\"UDP\"] = \"UDP\";\n /**\n * TCP and UDP protocol\n * */\n LoadBalancerListenerProtocol[\"TCP_UDP\"] = \"TCP_UDP\";\n})(LoadBalancerListenerProtocol || (exports.LoadBalancerListenerProtocol = LoadBalancerListenerProtocol = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1xdWVyaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udGV4dC1xdWVyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ0gsSUFBWSxlQTREWDtBQTVERCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCx1Q0FBb0IsQ0FBQTtJQUVwQjs7T0FFRztJQUNILG9FQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsdURBQW9DLENBQUE7SUFFcEM7O09BRUc7SUFDSCxpREFBOEIsQ0FBQTtJQUU5Qjs7T0FFRztJQUNILGdEQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsc0dBQW1GLENBQUE7SUFFbkY7O09BRUc7SUFDSCwyREFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILDZFQUEwRCxDQUFBO0lBRTFEOztPQUVHO0lBQ0gsNkRBQTBDLENBQUE7SUFFMUM7O09BRUc7SUFDSCxnREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILHNEQUFtQyxDQUFBO0lBRW5DOztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQTVEVyxlQUFlLCtCQUFmLGVBQWUsUUE0RDFCO0FBMEpEOztHQUVHO0FBQ0gsSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCOztPQUVHO0lBQ0gsdUNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBVlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFVM0I7QUE4QkQ7O0dBRUc7QUFDSCxJQUFZLDRCQThCWDtBQTlCRCxXQUFZLDRCQUE0QjtJQUN0Qzs7T0FFRztJQUNILDZDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILCtDQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLG1EQUFtQixDQUFBO0FBQ3JCLENBQUMsRUE5QlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUE4QnZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUYWcgfSBmcm9tICcuL21ldGFkYXRhLXNjaGVtYSc7XG5cbi8qKlxuICogSWRlbnRpZmllciBmb3IgdGhlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGVudW0gQ29udGV4dFByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEFNSSBwcm92aWRlclxuICAgKi9cbiAgQU1JX1BST1ZJREVSID0gJ2FtaScsXG5cbiAgLyoqXG4gICAqIEFaIHByb3ZpZGVyXG4gICAqL1xuICBBVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUiA9ICdhdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBSb3V0ZTUzIEhvc3RlZCBab25lIHByb3ZpZGVyXG4gICAqL1xuICBIT1NURURfWk9ORV9QUk9WSURFUiA9ICdob3N0ZWQtem9uZScsXG5cbiAgLyoqXG4gICAqIFNTTSBQYXJhbWV0ZXIgUHJvdmlkZXJcbiAgICovXG4gIFNTTV9QQVJBTUVURVJfUFJPVklERVIgPSAnc3NtJyxcblxuICAvKipcbiAgICogVlBDIFByb3ZpZGVyXG4gICAqL1xuICBWUENfUFJPVklERVIgPSAndnBjLXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogVlBDIEVuZHBvaW50IFNlcnZpY2UgQVogUHJvdmlkZXJcbiAgICovXG4gIEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXInLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX0xJU1RFTkVSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXItbGlzdGVuZXInLFxuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBwcm92aWRlclxuICAgKi9cbiAgU0VDVVJJVFlfR1JPVVBfUFJPVklERVIgPSAnc2VjdXJpdHktZ3JvdXAnLFxuXG4gIC8qKlxuICAgKiBLTVMgS2V5IFByb3ZpZGVyXG4gICAqL1xuICBLRVlfUFJPVklERVIgPSAna2V5LXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogQ0NBUEkgUHJvdmlkZXJcbiAgICovXG4gIENDX0FQSV9QUk9WSURFUiA9ICdjYy1hcGktcHJvdmlkZXInLFxuXG4gIC8qKlxuICAgKiBBIHBsdWdpbiBwcm92aWRlciAodGhlIGFjdHVhbCBwbHVnaW4gbmFtZSB3aWxsIGJlIGluIHRoZSBwcm9wZXJ0aWVzKVxuICAgKi9cbiAgUExVR0lOID0gJ3BsdWdpbicsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udGV4dCBsb29rdXAgcm9sZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFF1ZXJ5IGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgcm9sZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIG1pc3NpbmcgdmFsdWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEV4dGVybmFsSWQgdGhhdCBuZWVkcyB0byBiZSBzdXBwbGllZCB3aGlsZSBhc3N1bWluZyB0aGlzIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBFeHRlcm5hbElkIHdpbGwgYmUgc3VwcGxpZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gcGFzcyB0byBTVFMgd2hlbiBhc3N1bWluZyB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIC0gYFJvbGVBcm5gIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVBcm5gIHByb3BlcnR5IGluc3RlYWQuXG4gICAqIC0gYEV4dGVybmFsSWRgIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVFeHRlcm5hbElkYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gQU1JIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWlDb250ZXh0UXVlcnkgZXh0ZW5kcyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMge1xuICAvKipcbiAgICogT3duZXJzIHRvIERlc2NyaWJlSW1hZ2VzIGNhbGxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgb3duZXJzXG4gICAqL1xuICByZWFkb25seSBvd25lcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRmlsdGVycyB0byBEZXNjcmliZUltYWdlcyBjYWxsXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gYXZhaWxhYmlsaXR5IHpvbmUgY29udGV4dCBwcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBob3N0ZWQgem9uZSBjb250ZXh0IHByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdGVkWm9uZUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWUgZS5nLiBleGFtcGxlLmNvbSB0byBsb29rdXBcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHJ1ZSBpZiB0aGUgem9uZSB5b3Ugd2FudCB0byBmaW5kIGlzIGEgcHJpdmF0ZSBob3N0ZWQgem9uZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIHRoYXQgdGhlIHByaXZhdGUgem9uZSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aFxuICAgKlxuICAgKiBJZiB5b3UgcHJvdmlkZSBWUEMgSUQgYW5kIHByaXZhdGVab25lIGlzIGZhbHNlLCB0aGlzIHdpbGwgcmV0dXJuIG5vIHJlc3VsdHNcbiAgICogYW5kIHJhaXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlcXVpcmVkIGlmIHByaXZhdGVab25lPXRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IHRvIFNTTSBQYXJhbWV0ZXIgQ29udGV4dCBQcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTTVBhcmFtZXRlckNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgbmFtZSB0byBxdWVyeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIFZQQ1xuICAgKlxuICAgKiBGaWx0ZXIgcGFyYW1ldGVycyBhcmUgdGhlIHNhbWUgYXMgcGFzc2VkIHRvIERlc2NyaWJlVnBjcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlVnBjcy5odG1sXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcG9wdWxhdGUgdGhlIHN1Ym5ldEdyb3VwcyBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHBvdGVudGlhbGx5IGFzeW1tZXRyaWMgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJldHVybkFzeW1tZXRyaWNTdWJuZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGFnIGZvciBzdWJuZXQgZ3JvdXAgbmFtZS5cbiAgICogSWYgbm90IHByb3ZpZGVkLCB3ZSdsbCBsb29rIGF0IHRoZSBhd3MtY2RrOnN1Ym5ldC1uYW1lIHRhZy5cbiAgICogSWYgdGhlIHN1Ym5ldCBkb2VzIG5vdCBoYXZlIHRoZSBzcGVjaWZpZWQgdGFnLFxuICAgKiB3ZSdsbCB1c2UgaXRzIHR5cGUgYXMgdGhlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhd3MtY2RrOnN1Ym5ldC1uYW1lJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBOYW1lVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBvcHVsYXRlIHRoZSBgdnBuR2F0ZXdheUlkYCBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHRoZSBWUE4gR2F0ZXdheSBJRCwgaWYgb25lIGV4aXN0cy4gWW91IGNhbiBleHBsaWNpdGx5XG4gICAqIGRpc2FibGUgdGhpcyBpbiBvcmRlciB0byBhdm9pZCB0aGUgbG9va3VwIGlmIHlvdSBrbm93IHRoZSBWUEMgZG9lcyBub3QgaGF2ZVxuICAgKiBhIFZQTiBHYXR3YXkgYXR0YWNoZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldHVyblZwbkdhdGV3YXlzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBlbmRwb2ludCBzZXJ2aWNlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBRdWVyeSBzZXJ2aWNlIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSBvZiBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlclR5cGUge1xuICAvKipcbiAgICogTmV0d29yayBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBORVRXT1JLID0gJ25ldHdvcmsnLFxuXG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBBUFBMSUNBVElPTiA9ICdhcHBsaWNhdGlvbicsXG59XG5cbi8qKlxuICogRmlsdGVycyBmb3Igc2VsZWN0aW5nIGxvYWQgYmFsYW5jZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyRmlsdGVyIGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlciBsb2FkIGJhbGFuY2VycyBieSB0aGVpciB0eXBlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJUeXBlOiBMb2FkQmFsYW5jZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBGaW5kIGJ5IGxvYWQgYmFsYW5jZXIncyBBUk5cbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBzZWFyY2ggYnkgbG9hZCBiYWxhbmNlciBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF0Y2ggbG9hZCBiYWxhbmNlciB0YWdzXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgbWF0Y2ggbG9hZCBiYWxhbmNlcnMgYnkgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyVGFncz86IFRhZ1tdO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgbG9hZCBiYWxhbmNlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckNvbnRleHRRdWVyeSBleHRlbmRzIExvYWRCYWxhbmNlckZpbHRlciB7XG59XG5cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXJcbiAqL1xuZXhwb3J0IGVudW0gTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbCB7XG4gIC8qKlxuICAgKiBIVFRQIHByb3RvY29sXG4gICAqL1xuICBIVFRQID0gJ0hUVFAnLFxuXG4gIC8qKlxuICAgKiBIVFRQUyBwcm90b2NvbFxuICAgKi9cbiAgSFRUUFMgPSAnSFRUUFMnLFxuXG4gIC8qKlxuICAgKiBUQ1AgcHJvdG9jb2xcbiAgICovXG4gIFRDUCA9ICdUQ1AnLFxuXG4gIC8qKlxuICAgKiBUTFMgcHJvdG9jb2xcbiAgICovXG4gIFRMUyA9ICdUTFMnLFxuXG4gIC8qKlxuICAgKiBVRFAgcHJvdG9jb2xcbiAgICogKi9cbiAgVURQID0gJ1VEUCcsXG5cbiAgLyoqXG4gICAqIFRDUCBhbmQgVURQIHByb3RvY29sXG4gICAqICovXG4gIFRDUF9VRFAgPSAnVENQX1VEUCcsXG59XG5cbi8qKlxuICogUXVlcnkgaW5wdXQgZm9yIGxvb2tpbmcgdXAgYSBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkgZXh0ZW5kcyBMb2FkQmFsYW5jZXJGaWx0ZXIge1xuICAvKipcbiAgICogRmluZCBieSBsaXN0ZW5lcidzIGFyblxuICAgKiBAZGVmYXVsdCAtIGRvZXMgbm90IGZpbmQgYnkgbGlzdGVuZXIgYXJuXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclByb3RvY29sPzogTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbDtcblxuICAvKipcbiAgICogRmlsdGVyIGxpc3RlbmVycyBieSBsaXN0ZW5lciBwb3J0XG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGEgbGlzdGVuZXIgcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJQb3J0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgc2VjdXJpdHkgZ3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlY3VyaXR5IGdyb3VwIGlkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBJRFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgS01TIEtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbGlhcyBuYW1lIHVzZWQgdG8gc2VhcmNoIHRoZSBLZXlcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29rdXAgdXAgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VzIHVzaW5nIENDIEFQSVxuICpcbiAqIFRoZSBleGFtcGxlIGJlbG93IGlzIHJlcXVpcmVkIHRvIHN1Y2Nlc3NmdWxseSBjb21waWxlIENESyAob3RoZXJ3aXNlLFxuICogdGhlIENESyBidWlsZCB3aWxsIGdlbmVyYXRlIGEgc3ludGhldGljIGV4YW1wbGUgZm9yIHRoZSBiZWxvdywgYnV0IGl0XG4gKiBkb2Vzbid0IGhhdmUgZW5vdWdoIHR5cGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxpdGVyYWwgc3RyaW5nIHVuaW9uXG4gKiB0byBnZW5lcmF0ZSBhIHZhbGlkbHkgY29tcGlsaW5nIGV4YW1wbGUpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBDY0FwaUNvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG4gKlxuICogY29uc3QgeDogQ2NBcGlDb250ZXh0UXVlcnkgPSB7XG4gKiAgIHR5cGVOYW1lOiAnQVdTOjpTb21lOjpUeXBlJyxcbiAqICAgZXhwZWN0ZWRNYXRjaENvdW50OiAnZXhhY3RseS1vbmUnLFxuICogICByZXNvdXJjZU1vZGVsOiB7U29tZUFybjogJ2Fybjphd3M6Li4uLid9LFxuICogICBwcm9wZXJ0aWVzVG9SZXR1cm46IFsnU29tZVByb3AnXSxcbiAqICAgYWNjb3VudDogJzExMTExMTExMTExJyxcbiAqICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAqIH07XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2NBcGlDb250ZXh0UXVlcnkgZXh0ZW5kcyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUuXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xvdWRjb250cm9sYXBpL2xhdGVzdC91c2VyZ3VpZGUvc3VwcG9ydGVkLXJlc291cmNlcy5odG1sXG4gICAqL1xuICByZWFkb25seSB0eXBlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIG9mIHRoZSByZXNvdXJjZSB0byBsb29rIHVwIHVzaW5nIGBHZXRSZXNvdXJjZWAuXG4gICAqXG4gICAqIFNwZWNpZnlpbmcgZXhhY3RJZGVudGlmaWVyIHdpbGwgcmV0dXJuIGV4YWN0bHkgb25lIHJlc3VsdCwgb3IgdGhyb3cgYW4gZXJyb3JcbiAgICogdW5sZXNzIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFaXRoZXIgZXhhY3RJZGVudGlmaWVyIG9yIHByb3BlcnR5TWF0Y2ggc2hvdWxkIGJlIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4YWN0SWRlbnRpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG1vZGVsIHRvIHVzZSB0byBzZWxlY3QgdGhlIHJlc291cmNlcywgdXNpbmcgYExpc3RSZXNvdXJjZXNgLi5cbiAgICpcbiAgICogVGhpcyBpcyBuZWVkZWQgZm9yIHN1Yi1yZXNvdXJjZXMgd2hlcmUgdGhlIHBhcmVudCBBcm4gaXMgcmVxdWlyZWQuXG4gICAqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xvdWRjb250cm9sYXBpL2xhdGVzdC91c2VyZ3VpZGUvcmVzb3VyY2Utb3BlcmF0aW9ucy1saXN0Lmh0bWwjcmVzb3VyY2Utb3BlcmF0aW9ucy1saXN0LWNvbnRhaW5lcnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyByZXNvdXJjZSBNb2RlbCBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VNb2RlbD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFueSByZXNvdXJjZXMgbWF0Y2hpbmcgdGhlc2UgcHJvcGVydGllcywgdXNpbmcgYExpc3RSZXNvdXJjZXNgLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBzcGVjaWZ5aW5nIHByb3BlcnR5TWF0Y2ggd2lsbCBzdWNjZXNzZnVsbHkgcmV0dXJuIDAgb3IgbW9yZVxuICAgKiByZXN1bHRzLiBUbyB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbnVtYmVyIG9mIHJlc3VsdHMgaXMgdW5leHBlY3RlZCAoYW5kXG4gICAqIHByZXZlbnQgdGhlIHF1ZXJ5IHJlc3VsdHMgZnJvbSBiZWluZyBjb21taXR0ZWQgdG8gY29udGV4dCksIHNwZWNpZnlcbiAgICogYGV4cGVjdGVkTWF0Y2hDb3VudGAuXG4gICAqXG4gICAqICMjIE5vdGVzIG9uIHByb3BlcnR5IGNvbXBsZXRlbmVzc1xuICAgKlxuICAgKiBDbG91ZENvbnRyb2wgQVBJJ3MgYExpc3RSZXNvdXJjZXNgIG1heSByZXR1cm4gZmV3ZXIgcHJvcGVydGllcyB0aGFuXG4gICAqIGBHZXRSZXNvdXJjZWAgd291bGQsIGRlcGVuZGluZyBvbiB0aGUgcmVzb3VyY2UgaW1wbGVtZW50YXRpb24uXG4gICAqXG4gICAqIFRoZSByZXNvdXJjZXMgdGhhdCBgcHJvcGVydHlNYXRjaGAgbWF0Y2hlcyBhZ2FpbnN0IHdpbGwgKm9ubHkgZXZlciogYmUgdGhlXG4gICAqIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgdGhlIGBMaXN0UmVzb3VyY2VzYCBjYWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEVpdGhlciBleGFjdElkZW50aWZpZXIgb3IgcHJvcGVydHlNYXRjaCBzaG91bGQgYmUgc3BlY2lmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydHlNYXRjaD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgc2V0IG9mIHByb3BlcnRpZXMgcmV0dXJuZWQgZnJvbSBDQyBBUEkgdGhhdCB3ZSB3YW50IHRvIHJldHVybiBmcm9tIENvbnRleHRRdWVyeS5cbiAgICpcbiAgICogSWYgYW55IHByb3BlcnRpZXMgbGlzdGVkIGhlcmUgYXJlIGFic2VudCBmcm9tIHRoZSB0YXJnZXQgcmVzb3VyY2UsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuICAgKlxuICAgKiBUaGUgcmV0dXJuZWQgb2JqZWN0IHdpbGwgYWx3YXlzIGluY2x1ZGUgdGhlIGtleSBgSWRlbnRpZmllcmAgd2l0aCB0aGUgQ0MtQVBJIHJldHVybmVkXG4gICAqIGZpZWxkIGBJZGVudGlmaWVyYC5cbiAgICpcbiAgICogIyMgTm90ZXMgb24gcHJvcGVydHkgY29tcGxldGVuZXNzXG4gICAqXG4gICAqIENsb3VkQ29udHJvbCBBUEkncyBgTGlzdFJlc291cmNlc2AgbWF5IHJldHVybiBmZXdlciBwcm9wZXJ0aWVzIHRoYW5cbiAgICogYEdldFJlc291cmNlYCB3b3VsZCwgZGVwZW5kaW5nIG9uIHRoZSByZXNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogVGhlIHJldHVybmVkIHByb3BlcnRpZXMgaGVyZSBhcmUgKmN1cnJlbnRseSogc2VsZWN0ZWQgZnJvbSB0aGUgcmVzcG9uc2VcbiAgICogb2JqZWN0IHRoYXQgQ2xvdWRDb250cm9sIEFQSSByZXR1cm5zIHRvIHRoZSBDREsgQ0xJLlxuICAgKlxuICAgKiBIb3dldmVyLCBpZiB3ZSBmaW5kIHRoZXJlIGlzIG5lZWQgdG8gZG8gc28sIHdlIG1heSBkZWNpZGUgdG8gY2hhbmdlIHRoaXNcbiAgICogYmVoYXZpb3IgaW4gdGhlIGZ1dHVyZTogd2UgbWlnaHQgY2hhbmdlIGl0IHRvIHBlcmZvcm0gYW4gYWRkaXRpb25hbFxuICAgKiBgR2V0UmVzb3VyY2VgIGNhbGwgZm9yIHJlc291cmNlcyBtYXRjaGVkIGJ5IGBwcm9wZXJ0eU1hdGNoYC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXNUb1JldHVybjogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4cGVjdGVkIGNvdW50IG9mIHJlc3VsdHMgaWYgYHByb3BlcnR5TWF0Y2hgIGlzIHNwZWNpZmllZC5cbiAgICpcbiAgICogSWYgdGhlIGV4cGVjdGVkIHJlc3VsdCBjb3VudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWN0dWFsIGNvdW50LFxuICAgKiBieSBkZWZhdWx0IGFuIGVycm9yIGlzIHByb2R1Y2VkIGFuZCB0aGUgcmVzdWx0IGlzIG5vdCBjb21taXR0ZWQgdG8gY2FjaGVkXG4gICAqIGNvbnRleHQsIGFuZCB0aGUgdXNlciBjYW4gY29ycmVjdCB0aGUgc2l0dWF0aW9uIGFuZCB0cnkgYWdhaW4gd2l0aG91dFxuICAgKiBoYXZpbmcgdG8gbWFudWFsbHkgY2xlYXIgb3V0IHRoZSBjb250ZXh0IGtleSB1c2luZyBgY2RrIGNvbnRleHQgLS1yZW1vdmVgXG4gICAqXG4gICAqIElmIHRoZSB2YWx1ZSBvZiAqIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIGB0cnVlYCwgdGhlIHZhbHVlIG9mXG4gICAqIGBleHBlY3RlZE1hdGNoQ291bnRgIGlzIGBhdC1sZWFzdC1vbmUgfCBleGFjdGx5LW9uZWAgYW5kIHRoZSBudW1iZXJcbiAgICogb2YgZm91bmQgcmVzb3VyY2VzIGlzIDAsIGBkdW1teVZhbHVlYCBpcyByZXR1cm5lZCBhbmQgY29tbWl0dGVkIHRvIGNvbnRleHRcbiAgICogaW5zdGVhZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FueSdcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVjdGVkTWF0Y2hDb3VudD86ICdhbnknIHwgJ2F0LWxlYXN0LW9uZScgfCAnYXQtbW9zdC1vbmUnIHwgJ2V4YWN0bHktb25lJztcblxuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHJldHVybiBpZiB0aGUgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZCBhbmQgYGlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dGAgaXMgdHJ1ZS5cbiAgICpcbiAgICogSWYgc3VwcGxpZWQsIGBkdW1teVZhbHVlYCBzaG91bGQgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cy5cbiAgICpcbiAgICogYGR1bW15VmFsdWVgIGRvZXMgbm90IGhhdmUgdG8gaGF2ZSBlbGVtZW50cywgYW5kIGl0IG1heSBoYXZlIG9iamVjdHMgd2l0aFxuICAgKiBkaWZmZXJlbnQgcHJvcGVydGllcyB0aGFuIHRoZSBwcm9wZXJ0aWVzIGluIGBwcm9wZXJ0aWVzVG9SZXR1cm5gLCBidXQgaXRcbiAgICogd2lsbCBiZSBlYXNpZXN0IGZvciBkb3duc3RyZWFtIGNvZGUgaWYgdGhlIGBkdW1teVZhbHVlYCBjb25mb3JtcyB0b1xuICAgKiB0aGUgZXhwZWN0ZWQgcmVzcG9uc2Ugc2hhcGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZHVtbXkgdmFsdWUgYXZhaWxhYmxlXG4gICAqL1xuICByZWFkb25seSBkdW1teVZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBJZ25vcmUgYW4gZXJyb3IgYW5kIHJldHVybiB0aGUgYGR1bW15VmFsdWVgIGluc3RlYWQgaWYgdGhlIHJlc291cmNlIHdhcyBub3QgZm91bmQuXG4gICAqXG4gICAqIC0gSW4gY2FzZSBvZiBhbiBgZXhhY3RJZGVudGlmaWVyYCBsb29rdXAsIHJldHVybiB0aGUgYGR1bW15VmFsdWVgIGlmIHRoZSByZXNvdXJjZSB3aXRoXG4gICAqICAgdGhhdCBpZGVudGlmaWVyIHdhcyBub3QgZm91bmQuXG4gICAqIC0gSW4gY2FzZSBvZiBhIGBwcm9wZXJ0eU1hdGNoYCBsb29rdXAsIHJldHVybiB0aGUgYGR1bW15VmFsdWVgIGlmIGBleHBlY3RlZE1hdGNoQ291bnRgXG4gICAqICAgaXMgYGF0LWxlYXN0LW9uZSB8IGV4YWN0bHktb25lYCBhbmQgdGhlIG51bWJlciBvZiByZXNvdXJjZXMgZm91bmQgd2FzIDAuXG4gICAqXG4gICAqIGlmIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIHNldCwgYGR1bW15VmFsdWVgIHNob3VsZCBiZSBzZXQgYW5kIGJlIGFuIGFycmF5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdWVyeSBpbnB1dCBmb3IgcGx1Z2luc1xuICpcbiAqIFRoaXMgYWx0ZXJuYXRlIGJyYW5jaCBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpdCBuZWVkcyB0byBiZSBhYmxlIHRvIGVzY2FwZSBhbGwgdHlwZSBjaGVja2luZ1xuICogd2UgZG8gb24gb24gdGhlIGNsb3VkIGFzc2VtYmx5IC0tIHdlIGNhbm5vdCBrbm93IHRoZSBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSB1c2VkIGEgcHJpb3JpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRRdWVyeSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGx1Z2luXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFyYml0cmFyeSBvdGhlciBhcmd1bWVudHMgZm9yIHRoZSBwbHVnaW4uXG4gICAqXG4gICAqIFRoaXMgaW5kZXggc2lnbmF0dXJlIGlzIG5vdCB1c2FibGUgaW4gbm9uLVR5cGVTY3JpcHQvSmF2YVNjcmlwdCBsYW5ndWFnZXMuXG4gICAqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzID1cbiAgfCBBbWlDb250ZXh0UXVlcnlcbiAgfCBBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeVxuICB8IEhvc3RlZFpvbmVDb250ZXh0UXVlcnlcbiAgfCBTU01QYXJhbWV0ZXJDb250ZXh0UXVlcnlcbiAgfCBWcGNDb250ZXh0UXVlcnlcbiAgfCBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeVxuICB8IExvYWRCYWxhbmNlckNvbnRleHRRdWVyeVxuICB8IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFF1ZXJ5XG4gIHwgU2VjdXJpdHlHcm91cENvbnRleHRRdWVyeVxuICB8IEtleUNvbnRleHRRdWVyeVxuICB8IENjQXBpQ29udGV4dFF1ZXJ5XG4gIHwgUGx1Z2luQ29udGV4dFF1ZXJ5O1xuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./metadata-schema\"), exports);\n__exportStar(require(\"./artifact-schema\"), exports);\n__exportStar(require(\"./context-queries\"), exports);\n__exportStar(require(\"./interfaces\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLG9EQUFrQztBQUNsQyxvREFBa0M7QUFDbEMsb0RBQWtDO0FBQ2xDLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEtc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3Qtc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1xdWVyaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG4iXX0=","\"use strict\";\n// The interfaces in this file, mainly exist __here__ because this is a convenient place to put them.\n// The Assembly Schema package is already a jsii package and a dependency of `aws-cdk-lib`.\n// It is effectively the only place we can put shared interfaces to be used across the jsii ecosystem.\n//\n// Putting a shared interface in here should be a huge exception.\n// It needs to be justified by great benefits it provides to the ecosystems.\n// All interfaces should be as minimal as possible.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFHQUFxRztBQUNyRywyRkFBMkY7QUFDM0Ysc0dBQXNHO0FBQ3RHLEVBQUU7QUFDRixpRUFBaUU7QUFDakUsNEVBQTRFO0FBQzVFLG1EQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBpbnRlcmZhY2VzIGluIHRoaXMgZmlsZSwgbWFpbmx5IGV4aXN0IF9faGVyZV9fIGJlY2F1c2UgdGhpcyBpcyBhIGNvbnZlbmllbnQgcGxhY2UgdG8gcHV0IHRoZW0uXG4vLyBUaGUgQXNzZW1ibHkgU2NoZW1hIHBhY2thZ2UgaXMgYWxyZWFkeSBhIGpzaWkgcGFja2FnZSBhbmQgYSBkZXBlbmRlbmN5IG9mIGBhd3MtY2RrLWxpYmAuXG4vLyBJdCBpcyBlZmZlY3RpdmVseSB0aGUgb25seSBwbGFjZSB3ZSBjYW4gcHV0IHNoYXJlZCBpbnRlcmZhY2VzIHRvIGJlIHVzZWQgYWNyb3NzIHRoZSBqc2lpIGVjb3N5c3RlbS5cbi8vXG4vLyBQdXR0aW5nIGEgc2hhcmVkIGludGVyZmFjZSBpbiBoZXJlIHNob3VsZCBiZSBhIGh1Z2UgZXhjZXB0aW9uLlxuLy8gSXQgbmVlZHMgdG8gYmUganVzdGlmaWVkIGJ5IGdyZWF0IGJlbmVmaXRzIGl0IHByb3ZpZGVzIHRvIHRoZSBlY29zeXN0ZW1zLlxuLy8gQWxsIGludGVyZmFjZXMgc2hvdWxkIGJlIGFzIG1pbmltYWwgYXMgcG9zc2libGUuXG5cbi8qKlxuICogSW50ZXJvcGVyYWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIGRlcGxveWFibGUgY2xvdWQgYXBwbGljYXRpb24uXG4gKlxuICogVGhlIGV4dGVybmFsIGFuZCBpbnRlcm9wZXJhYmxlIGNvbnRyYWN0IGZvciBhIENsb3VkIEFzc2VtYmx5IGlzXG4gKiBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgdmFsaWQgQ2xvdWQgQXNzZW1ibHkuXG4gKlxuICogSW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2UgdGhlIGRpcmVjdG9yeSB0byBsb2FkIHRoZSBDbG91ZCBBc3NlbWJseSBmcm9tIGRpc2suXG4gKiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IGltcGxlbWVudGF0aW9ucyB2YWxpZGF0ZSBsb2FkZWQgbWFuaWZlc3QgZmlsZXMgdXNpbmdcbiAqIHRoZSBwcm92aWRlZCBmdW5jdGlvbmFsaXR5IGZyb20gdGhpcyBwYWNrYWdlLlxuICogV2l0aGluIGFuIGltcGxlbWVudGF0aW9uLCBpdCBtYXkgYmUgcHJ1ZGVudCB0byBrZWVwIChwYXJ0cyBvZikgdGhlIENsb3VkIEFzc2VtYmx5XG4gKiBpbiBtZW1vcnkgZHVyaW5nIGV4ZWN1dGlvbiBhbmQgdXNlIGFuIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIGNvbnRyYWN0LlxuICogSG93ZXZlciB3aGVuIGFuIGltcGxlbWVudGF0aW9uIGlzIHByb3ZpZGluZyBhbiBleHRlcm5hbCBjb250cmFjdCxcbiAqIHRoaXMgaW50ZXJmYWNlIHNob3VsZCBiZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEFzc2VtYmx5IHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgb2YgdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKlxuICAgKiBUaGlzIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQgdG8gcmVhZCB0aGUgQ2xvdWQgQXNzZW1ibHkgZnJvbS5cbiAgICogSXRzIGNvbnRlbnRzIChpbiBwYXJ0aWN1bGFyIGBtYW5pZmVzdC5qc29uYCkgbXVzdCBjb21wbHkgd2l0aCB0aGUgc2NoZW1hIGRlZmluZWQgaW4gdGhpcyBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArtifactMetadataEntryType = void 0;\n/**\n * Type of artifact metadata entry.\n */\nvar ArtifactMetadataEntryType;\n(function (ArtifactMetadataEntryType) {\n /**\n * Asset in metadata.\n */\n ArtifactMetadataEntryType[\"ASSET\"] = \"aws:cdk:asset\";\n /**\n * Metadata key used to print INFO-level messages by the toolkit when an app is syntheized.\n */\n ArtifactMetadataEntryType[\"INFO\"] = \"aws:cdk:info\";\n /**\n * Metadata key used to print WARNING-level messages by the toolkit when an app is syntheized.\n */\n ArtifactMetadataEntryType[\"WARN\"] = \"aws:cdk:warning\";\n /**\n * Metadata key used to print ERROR-level messages by the toolkit when an app is syntheized.\n */\n ArtifactMetadataEntryType[\"ERROR\"] = \"aws:cdk:error\";\n /**\n * Represents the CloudFormation logical ID of a resource at a certain path.\n */\n ArtifactMetadataEntryType[\"LOGICAL_ID\"] = \"aws:cdk:logicalId\";\n /**\n * Represents tags of a stack.\n */\n ArtifactMetadataEntryType[\"STACK_TAGS\"] = \"aws:cdk:stack-tags\";\n /**\n * Whether the resource should be excluded during refactoring.\n */\n ArtifactMetadataEntryType[\"DO_NOT_REFACTOR\"] = \"aws:cdk:do-not-refactor\";\n /**\n * Creation stack of a construct\n */\n ArtifactMetadataEntryType[\"CREATION_STACK\"] = \"aws:cdk:creationStack\";\n /**\n * A property mutation trace\n */\n ArtifactMetadataEntryType[\"PROPERTY_ASSIGNMENT\"] = \"aws:cdk:propertyAssignment\";\n})(ArtifactMetadataEntryType || (exports.ArtifactMetadataEntryType = ArtifactMetadataEntryType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWV0YWRhdGEtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVUQTs7R0FFRztBQUNILElBQVkseUJBNkNYO0FBN0NELFdBQVkseUJBQXlCO0lBQ25DOztPQUVHO0lBQ0gsb0RBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCxrREFBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILHFEQUF3QixDQUFBO0lBRXhCOztPQUVHO0lBQ0gsb0RBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCw2REFBZ0MsQ0FBQTtJQUVoQzs7T0FFRztJQUNILDhEQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gsd0VBQTJDLENBQUE7SUFFM0M7O09BRUc7SUFDSCxxRUFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILCtFQUFrRCxDQUFBO0FBQ3BELENBQUMsRUE3Q1cseUJBQXlCLHlDQUF6Qix5QkFBeUIsUUE2Q3BDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21tb24gcHJvcGVydGllcyBmb3IgYXNzZXQgbWV0YWRhdGEuXG4gKi9cbmludGVyZmFjZSBCYXNlQXNzZXRNZXRhZGF0YUVudHJ5IHtcbiAgLyoqXG4gICAqIFJlcXVlc3RlZCBwYWNrYWdpbmcgc3R5bGVcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2luZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2dpY2FsIGlkZW50aWZpZXIgZm9yIHRoZSBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhhc2ggb2YgdGhlIGFzc2V0IHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUhhc2g6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCBvbiBkaXNrIHRvIHRoZSBhc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIEVudHJ5IHNwZWMgZm9yIGZpbGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBlbnRyeSA9IHtcbiAqICAgcGFja2FnaW5nOiAnZmlsZScsXG4gKiAgIHMzQnVja2V0UGFyYW1ldGVyOiAnYnVja2V0LXBhcmFtZXRlcicsXG4gKiAgIHMzS2V5UGFyYW1lbnRlcjogJ2tleS1wYXJhbWV0ZXInLFxuICogICBhcnRpZmFjdEhhc2hQYXJhbWV0ZXI6ICdoYXNoLXBhcmFtZXRlcicsXG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSBleHRlbmRzIEJhc2VBc3NldE1ldGFkYXRhRW50cnkge1xuICAvKipcbiAgICogUmVxdWVzdGVkIHBhY2thZ2luZyBzdHlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnaW5nOiAnemlwJyB8ICdmaWxlJztcblxuICAvKipcbiAgICogTmFtZSBvZiBwYXJhbWV0ZXIgd2hlcmUgUzMgYnVja2V0IHNob3VsZCBiZSBwYXNzZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IHMzQnVja2V0UGFyYW1ldGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgcGFyYW1ldGVyIHdoZXJlIFMzIGtleSBzaG91bGQgYmUgcGFzc2VkIGluXG4gICAqL1xuICByZWFkb25seSBzM0tleVBhcmFtZXRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHdoZXJlIHRoZSBoYXNoIG9mIHRoZSBidW5kbGVkIGFzc2V0IHNob3VsZCBiZSBwYXNzZWQgaW4uXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdEhhc2hQYXJhbWV0ZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBFbnRyeSBzcGVjIGZvciBzdGFjayB0YWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgLyoqXG4gICAqIFRhZyBrZXkuXG4gICAqXG4gICAqIChJbiB0aGUgYWN0dWFsIGZpbGUgb24gZGlzayB0aGlzIHdpbGwgYmUgY2FzZWQgYXMgXCJLZXlcIiwgYW5kIHRoZSBzdHJ1Y3R1cmUgaXNcbiAgICogcGF0Y2hlZCB0byBtYXRjaCB0aGlzIHN0cnVjdHVyZSB1cG9uIGxvYWRpbmc6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzRhYWRhYTc3OWI0OGYzNTgzOGNjY2Q0ZTI1MTA3YjIzMzhmMDU1NDcvcGFja2FnZXMvJTQwYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEvbGliL21hbmlmZXN0LnRzI0wxMzcpXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGFnIHZhbHVlLlxuICAgKlxuICAgKiAoSW4gdGhlIGFjdHVhbCBmaWxlIG9uIGRpc2sgdGhpcyB3aWxsIGJlIGNhc2VkIGFzIFwiVmFsdWVcIiwgYW5kIHRoZSBzdHJ1Y3R1cmUgaXNcbiAgICogcGF0Y2hlZCB0byBtYXRjaCB0aGlzIHN0cnVjdHVyZSB1cG9uIGxvYWRpbmc6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzRhYWRhYTc3OWI0OGYzNTgzOGNjY2Q0ZTI1MTA3YjIzMzhmMDU1NDcvcGFja2FnZXMvJTQwYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEvbGliL21hbmlmZXN0LnRzI0wxMzcpXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBEb2NrZXIgY2FjaGUgYmFja2VuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5lckltYWdlQXNzZXRDYWNoZU9wdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBjYWNoZSB0byB1c2UuXG4gICAqIFJlZmVyIHRvIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzLyBmb3IgZnVsbCBsaXN0IG9mIGJhY2tlbmRzLlxuICAgKiBAZGVmYXVsdCAtIHVuc3BlY2lmaWVkXG4gICAqXG4gICAqIEBleGFtcGxlICdyZWdpc3RyeSdcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFueSBwYXJhbWV0ZXJzIHRvIHBhc3MgaW50byB0aGUgZG9ja2VyIGNhY2hlIGJhY2tlbmQgY29uZmlndXJhdGlvbi5cbiAgICogUmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvIGZvciBjYWNoZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IHt9IE5vIG9wdGlvbnMgcHJvdmlkZWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZGVjbGFyZSBjb25zdCBicmFuY2g6IHN0cmluZztcbiAgICpcbiAgICogY29uc3QgcGFyYW1zID0ge1xuICAgKiAgIHJlZjogYDEyMzQ1Njc4LmRrci5lY3IudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vY2FjaGU6JHticmFuY2h9YCxcbiAgICogICBtb2RlOiBcIm1heFwiLFxuICAgKiB9O1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBFbnRyeSBzcGVjIGZvciBjb250YWluZXIgaW1hZ2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBlbnRyeSA9IHtcbiAqICAgcGFja2FnaW5nOiAnY29udGFpbmVyLWltYWdlJyxcbiAqICAgcmVwb3NpdG9yeU5hbWU6ICdyZXBvc2l0b3J5LW5hbWUnLFxuICogICBpbWFnZVRhZzogJ3RhZycsXG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVySW1hZ2VBc3NldE1ldGFkYXRhRW50cnkgZXh0ZW5kcyBCYXNlQXNzZXRNZXRhZGF0YUVudHJ5IHtcbiAgLyoqXG4gICAqIFR5cGUgb2YgYXNzZXRcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2luZzogJ2NvbnRhaW5lci1pbWFnZSc7XG5cbiAgLyoqXG4gICAqIEVDUiBSZXBvc2l0b3J5IG5hbWUgYW5kIHJlcG8gZGlnZXN0IChzZXBhcmF0ZWQgYnkgXCJAc2hhMjU2OlwiKSB3aGVyZSB0aGlzXG4gICAqIGltYWdlIGlzIHN0b3JlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIElmIG5vdCBzcGVjaWZpZWQsIGByZXBvc2l0b3J5TmFtZWAgYW5kIGBpbWFnZVRhZ2AgYXJlXG4gICAqIHJlcXVpcmVkIGJlY2F1c2Ugb3RoZXJ3aXNlIGhvdyB3aWxsIHRoZSBzdGFjayBrbm93IHdoZXJlIHRvIGZpbmQgdGhlIGFzc2V0LFxuICAgKiBoYT9cbiAgICogQGRlcHJlY2F0ZWQgc3BlY2lmeSBgcmVwb3NpdG9yeU5hbWVgIGFuZCBgaW1hZ2VUYWdgIGluc3RlYWQsIGFuZCB0aGVuIHlvdVxuICAgKiBrbm93IHdoZXJlIHRoZSBpbWFnZSB3aWxsIGdvLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VOYW1lUGFyYW1ldGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFQ1IgcmVwb3NpdG9yeSBuYW1lLCBpZiBvbWl0dGVkIGEgZGVmYXVsdCBuYW1lIGJhc2VkIG9uIHRoZSBhc3NldCdzIElEIGlzXG4gICAqIHVzZWQgaW5zdGVhZC4gU3BlY2lmeSB0aGlzIHByb3BlcnR5IGlmIHlvdSBuZWVkIHRvIHN0YXRpY2FsbHkgYWRkcmVzcyB0aGVcbiAgICogaW1hZ2UsIGUuZy4gZnJvbSBhIEt1YmVybmV0ZXMgUG9kLiBOb3RlLCB0aGlzIGlzIG9ubHkgdGhlIHJlcG9zaXRvcnkgbmFtZSxcbiAgICogd2l0aG91dCB0aGUgcmVnaXN0cnkgYW5kIHRoZSB0YWcgcGFydHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhpcyBwYXJhbWV0ZXIgaXMgUkVRVUlSRUQgYWZ0ZXIgMS4yMS4wXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRvY2tlciBpbWFnZSB0YWcgdG8gdXNlIGZvciB0YWdnaW5nIHB1c2hlZCBpbWFnZXMuIFRoaXMgZmllbGQgaXNcbiAgICogcmVxdWlyZWQgaWYgYGltYWdlUGFyYW1ldGVyTmFtZWAgaXMgb21taXRlZCAob3RoZXJ3aXNlLCB0aGUgYXBwIHdvbid0IGJlXG4gICAqIGFibGUgdG8gZmluZCB0aGUgaW1hZ2UpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoaXMgcGFyYW1ldGVyIGlzIFJFUVVJUkVEIGFmdGVyIDEuMjEuMFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VUYWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3MgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZFxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGNvbnRleHRzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmRcbiAgICpcbiAgICogQGRlZmF1bHQgbm8gYnVpbGQgY29udGV4dHMgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRDb250ZXh0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNTSCBhZ2VudCBzb2NrZXQgb3Iga2V5cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIHNzaCBhcmcgaXMgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBidWlsZFNzaD86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGJ1aWxkIHNlY3JldHMgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRTZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRG9ja2VyIHRhcmdldCB0byBidWlsZCB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCBubyBidWlsZCB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldD86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgRG9ja2VyZmlsZSAocmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZmlsZSBpcyBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmtpbmcgbW9kZSBmb3IgdGhlIFJVTiBjb21tYW5kcyBkdXJpbmcgYnVpbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZFxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya01vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsYXRmb3JtIHRvIGJ1aWxkIGZvci4gX1JlcXVpcmVzIERvY2tlciBCdWlsZHhfLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGN1cnJlbnQgbWFjaGluZSBwbGF0Zm9ybVxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE91dHB1dHMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBvdXRwdXRzIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmQgKGRlZmF1bHQgb3V0cHV0cyBhcmUgdXNlZClcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2J1aWxkLyNjdXN0b20tYnVpbGQtb3V0cHV0c1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDYWNoZSBmcm9tIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSBmcm9tIG9wdGlvbnMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzL1xuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogQ29udGFpbmVySW1hZ2VBc3NldENhY2hlT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIENhY2hlIHRvIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSB0byBvcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIGJ1aWxkIGNvbW1hbmRcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9jYWNoZS9iYWNrZW5kcy9cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlVG8/OiBDb250YWluZXJJbWFnZUFzc2V0Q2FjaGVPcHRpb247XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGNhY2hlIGFuZCBwYXNzIGAtLW5vLWNhY2hlYCB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjYWNoZSBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBjYWNoZURpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAc2VlIEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuQVNTRVRcbiAqL1xuZXhwb3J0IHR5cGUgQXNzZXRNZXRhZGF0YUVudHJ5ID0gRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSB8IENvbnRhaW5lckltYWdlQXNzZXRNZXRhZGF0YUVudHJ5O1xuXG4vLyBUeXBlIGFsaWFzZXMgZm9yIG1ldGFkYXRhIGVudHJpZXMuXG4vLyBVc2VkIHNpbXBseSB0byBhc3NpZ24gbmFtZXMgdG8gZGF0YSB0eXBlcyBmb3IgbW9yZSBjbGFyaXR5LlxuXG4vKipcbiAqIEBzZWUgQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5JTkZPXG4gKiBAc2VlIEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuV0FSTlxuICogQHNlZSBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLkVSUk9SXG4gKi9cbmV4cG9ydCB0eXBlIExvZ01lc3NhZ2VNZXRhZGF0YUVudHJ5ID0gc3RyaW5nO1xuXG4vKipcbiAqIEBzZWUgQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5MT0dJQ0FMX0lEXG4gKi9cbmV4cG9ydCB0eXBlIExvZ2ljYWxJZE1ldGFkYXRhRW50cnkgPSBzdHJpbmc7XG5cbi8qKlxuICogQHNlZSBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLlNUQUNLX1RBR1NcbiAqL1xuZXhwb3J0IHR5cGUgU3RhY2tUYWdzTWV0YWRhdGFFbnRyeSA9IFRhZ1tdO1xuXG4vKipcbiAqIEFueSBvdGhlciB0eXBlIG9mIG1ldGFkYXRhIGVudHJ5XG4gKlxuICogVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBjaGFuZ2VkIHRvIGBhbnlgLCBidXQgaXQncyBzYWZlciBub3RcbiAqIHRvIGRvIHNvIHJpZ2h0IG5vdy5cbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9jbG91ZC1hc3NlbWJseS1zY2hlbWEvcHVsbC8xMjEuXG4gKi9cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZVR5cGUgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuXG4vKipcbiAqIFR5cGUgb2YgY3JlYXRpb24gc3RhY2sgZGF0YVxuICovXG5leHBvcnQgdHlwZSBDcmVhdGlvblN0YWNrTWV0YWRhdGFFbnRyeSA9IHN0cmluZ1tdO1xuXG4vKipcbiAqIE1ldGFkYXRhIHR5cGUgb2YgYSBQcm9wZXJ0eU11dGF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlNdXRhdGlvbk1ldGFkYXRhRW50cnkge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcHJvcGVydHlcbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnR5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0cmFjZSBvZiB0aGUgbXV0YXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFVuaW9uIHR5cGUgZm9yIGFsbCBtZXRhZGF0YSBlbnRyaWVzIHRoYXQgbWlnaHQgZXhpc3QgaW4gdGhlIG1hbmlmZXN0LlxuICovXG5leHBvcnQgdHlwZSBNZXRhZGF0YUVudHJ5RGF0YSA9XG4gIHwgQXNzZXRNZXRhZGF0YUVudHJ5XG4gIHwgTG9nTWVzc2FnZU1ldGFkYXRhRW50cnlcbiAgfCBMb2dpY2FsSWRNZXRhZGF0YUVudHJ5XG4gIHwgU3RhY2tUYWdzTWV0YWRhdGFFbnRyeVxuICB8IFByaW1pdGl2ZVR5cGVcbiAgfCBDcmVhdGlvblN0YWNrTWV0YWRhdGFFbnRyeVxuICB8IFByb3BlcnR5TXV0YXRpb25NZXRhZGF0YUVudHJ5XG4gIDtcblxuLyoqXG4gKiBUeXBlIG9mIGFydGlmYWN0IG1ldGFkYXRhIGVudHJ5LlxuICovXG5leHBvcnQgZW51bSBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlIHtcbiAgLyoqXG4gICAqIEFzc2V0IGluIG1ldGFkYXRhLlxuICAgKi9cbiAgQVNTRVQgPSAnYXdzOmNkazphc3NldCcsXG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIGtleSB1c2VkIHRvIHByaW50IElORk8tbGV2ZWwgbWVzc2FnZXMgYnkgdGhlIHRvb2xraXQgd2hlbiBhbiBhcHAgaXMgc3ludGhlaXplZC5cbiAgICovXG4gIElORk8gPSAnYXdzOmNkazppbmZvJyxcblxuICAvKipcbiAgICogTWV0YWRhdGEga2V5IHVzZWQgdG8gcHJpbnQgV0FSTklORy1sZXZlbCBtZXNzYWdlcyBieSB0aGUgdG9vbGtpdCB3aGVuIGFuIGFwcCBpcyBzeW50aGVpemVkLlxuICAgKi9cbiAgV0FSTiA9ICdhd3M6Y2RrOndhcm5pbmcnLFxuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBrZXkgdXNlZCB0byBwcmludCBFUlJPUi1sZXZlbCBtZXNzYWdlcyBieSB0aGUgdG9vbGtpdCB3aGVuIGFuIGFwcCBpcyBzeW50aGVpemVkLlxuICAgKi9cbiAgRVJST1IgPSAnYXdzOmNkazplcnJvcicsXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgSUQgb2YgYSByZXNvdXJjZSBhdCBhIGNlcnRhaW4gcGF0aC5cbiAgICovXG4gIExPR0lDQUxfSUQgPSAnYXdzOmNkazpsb2dpY2FsSWQnLFxuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRhZ3Mgb2YgYSBzdGFjay5cbiAgICovXG4gIFNUQUNLX1RBR1MgPSAnYXdzOmNkazpzdGFjay10YWdzJyxcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmVzb3VyY2Ugc2hvdWxkIGJlIGV4Y2x1ZGVkIGR1cmluZyByZWZhY3RvcmluZy5cbiAgICovXG4gIERPX05PVF9SRUZBQ1RPUiA9ICdhd3M6Y2RrOmRvLW5vdC1yZWZhY3RvcicsXG5cbiAgLyoqXG4gICAqIENyZWF0aW9uIHN0YWNrIG9mIGEgY29uc3RydWN0XG4gICAqL1xuICBDUkVBVElPTl9TVEFDSyA9ICdhd3M6Y2RrOmNyZWF0aW9uU3RhY2snLFxuXG4gIC8qKlxuICAgKiBBIHByb3BlcnR5IG11dGF0aW9uIHRyYWNlXG4gICAqL1xuICBQUk9QRVJUWV9BU1NJR05NRU5UID0gJ2F3czpjZGs6cHJvcGVydHlBc3NpZ25tZW50Jyxcbn1cblxuLyoqXG4gKiBBIG1ldGFkYXRhIGVudHJ5IGluIGEgY2xvdWQgYXNzZW1ibHkgYXJ0aWZhY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgbWV0YWRhdGEgZW50cnkuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBkYXRhPzogTWV0YWRhdGFFbnRyeURhdGE7XG5cbiAgLyoqXG4gICAqIEEgc3RhY2sgdHJhY2UgZm9yIHdoZW4gdGhlIGVudHJ5IHdhcyBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2U/OiBzdHJpbmdbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArtifactType = void 0;\n/**\n * Type of cloud artifact.\n */\nvar ArtifactType;\n(function (ArtifactType) {\n /**\n * Stub required because of JSII.\n */\n ArtifactType[\"NONE\"] = \"none\";\n /**\n * The artifact is an AWS CloudFormation stack.\n */\n ArtifactType[\"AWS_CLOUDFORMATION_STACK\"] = \"aws:cloudformation:stack\";\n /**\n * The artifact contains the CDK application's construct tree.\n */\n ArtifactType[\"CDK_TREE\"] = \"cdk:tree\";\n /**\n * Manifest for all assets in the Cloud Assembly\n */\n ArtifactType[\"ASSET_MANIFEST\"] = \"cdk:asset-manifest\";\n /**\n * Nested Cloud Assembly\n */\n ArtifactType[\"NESTED_CLOUD_ASSEMBLY\"] = \"cdk:cloud-assembly\";\n /**\n * Feature flag report\n */\n ArtifactType[\"FEATURE_FLAG_REPORT\"] = \"cdk:feature-flag-report\";\n})(ArtifactType || (exports.ArtifactType = ArtifactType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBOztHQUVHO0FBQ0gsSUFBWSxZQThCWDtBQTlCRCxXQUFZLFlBQVk7SUFDdEI7O09BRUc7SUFDSCw2QkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxRUFBcUQsQ0FBQTtJQUVyRDs7T0FFRztJQUNILHFDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gscURBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCw0REFBNEMsQ0FBQTtJQUU1Qzs7T0FFRztJQUNILCtEQUErQyxDQUFBO0FBQ2pELENBQUMsRUE5QlcsWUFBWSw0QkFBWixZQUFZLFFBOEJ2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJ0aWZhY3RQcm9wZXJ0aWVzIH0gZnJvbSAnLi9hcnRpZmFjdC1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXIsIENvbnRleHRRdWVyeVByb3BlcnRpZXMgfSBmcm9tICcuL2NvbnRleHQtcXVlcmllcyc7XG5pbXBvcnQgdHlwZSB7IE1ldGFkYXRhRW50cnkgfSBmcm9tICcuL21ldGFkYXRhLXNjaGVtYSc7XG5cbi8qKlxuICogVHlwZSBvZiBjbG91ZCBhcnRpZmFjdC5cbiAqL1xuZXhwb3J0IGVudW0gQXJ0aWZhY3RUeXBlIHtcbiAgLyoqXG4gICAqIFN0dWIgcmVxdWlyZWQgYmVjYXVzZSBvZiBKU0lJLlxuICAgKi9cbiAgTk9ORSA9ICdub25lJywgLy8gcmVxdWlyZWQgZHVlIHRvIGEganNpaSBidWdcblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0IGlzIGFuIEFXUyBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIEFXU19DTE9VREZPUk1BVElPTl9TVEFDSyA9ICdhd3M6Y2xvdWRmb3JtYXRpb246c3RhY2snLFxuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3QgY29udGFpbnMgdGhlIENESyBhcHBsaWNhdGlvbidzIGNvbnN0cnVjdCB0cmVlLlxuICAgKi9cbiAgQ0RLX1RSRUUgPSAnY2RrOnRyZWUnLFxuXG4gIC8qKlxuICAgKiBNYW5pZmVzdCBmb3IgYWxsIGFzc2V0cyBpbiB0aGUgQ2xvdWQgQXNzZW1ibHlcbiAgICovXG4gIEFTU0VUX01BTklGRVNUID0gJ2Nkazphc3NldC1tYW5pZmVzdCcsXG5cbiAgLyoqXG4gICAqIE5lc3RlZCBDbG91ZCBBc3NlbWJseVxuICAgKi9cbiAgTkVTVEVEX0NMT1VEX0FTU0VNQkxZID0gJ2NkazpjbG91ZC1hc3NlbWJseScsXG5cbiAgLyoqXG4gICAqIEZlYXR1cmUgZmxhZyByZXBvcnRcbiAgICovXG4gIEZFQVRVUkVfRkxBR19SRVBPUlQgPSAnY2RrOmZlYXR1cmUtZmxhZy1yZXBvcnQnLFxufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhcHBsaWNhdGlvbidzIHJ1bnRpbWUgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsaWJyYXJpZXMgbG9hZGVkIGluIHRoZSBhcHBsaWNhdGlvbiwgYXNzb2NpYXRlZCB3aXRoIHRoZWlyIHZlcnNpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlicmFyaWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWlzc2luZyBwaWVjZSBvZiBjb250ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlcjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgcHJvdmlkZXItc3BlY2lmaWMgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BzOiBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3QgZm9yIGEgc2luZ2xlIGFydGlmYWN0IHdpdGhpbiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWZhY3RNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhcnRpZmFjdC5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEFydGlmYWN0VHlwZTtcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGludG8gd2hpY2ggdGhpcyBhcnRpZmFjdCBpcyBkZXBsb3llZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbnZyaW9ubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nOyAvLyBmb3JtYXQ6IGF3czovL2FjY291bnQvcmVnaW9uXG5cbiAgLyoqXG4gICAqIEFzc29jaWF0ZWQgbWV0YWRhdGEuXG4gICAqXG4gICAqIE1ldGFkYXRhIGNhbiBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIGFzc2VtYmx5IG1hbmlmZXN0LCBhcyB3ZWxsIGFzIGluIGFcbiAgICogc2VwYXJhdGUgZmlsZSAoc2VlIGBhZGRpdGlvbmFsTWV0YWRhdGFGaWxlYCkuIEl0IHNob3VsZCBwcmVmZXIgdG8gYmUgc3RvcmVkXG4gICAqIGluIHRoZSBhZGRpdGlvbmFsIGZpbGUsIGFzIHRoYXQgd2lsbCByZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGFzc2VtYmx5XG4gICAqIG1hbmlmZXN0IGluIGNhc2VzIG9mIGEgbG90IG9mIG1ldGRhdGEgKHdoaWNoIENESyBkb2VzIGVtaXQgYnkgZGVmYXVsdCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IHsgW3BhdGg6IHN0cmluZ106IE1ldGFkYXRhRW50cnlbXSB9O1xuXG4gIC8qKlxuICAgKiBBIGZpbGUgd2l0aCBhZGRpdGlvbmFsIG1ldGFkYXRhIGVudHJpZXMuXG4gICAqXG4gICAqIFRoZSBzY2hlbWEgb2YgdGhpcyBmaWxlIGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIHR5cGUgb2YgdGhlIGBtZXRhZGF0YWAgZmllbGQuXG4gICAqIEluIG90aGVyIHdvcmRzLCB0aGF0IGZpbGUgY29udGFpbnMgYW4gb2JqZWN0IG1hcHBpbmcgY29uc3RydWN0IHBhdGhzIHRvIGFycmF5c1xuICAgKiBvZiBtZXRhZGF0YSBlbnRyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxNZXRhZGF0YUZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElEcyBvZiBhcnRpZmFjdHMgdGhhdCBtdXN0IGJlIGRlcGxveWVkIGJlZm9yZSB0aGlzIGFydGlmYWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIHByb3BlcnRpZXMgZm9yIHRoaXMgYXJ0aWZhY3QgKGRlcGVuZHMgb24gdHlwZSlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IEFydGlmYWN0UHJvcGVydGllcztcblxuICAvKipcbiAgICogQSBzdHJpbmcgdGhhdCBjYW4gYmUgc2hvd24gdG8gYSB1c2VyIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXJ0aWZhY3QgaW5zaWRlIGEgY2xvdWQgYXNzZW1ibHkgdHJlZVxuICAgKlxuICAgKiBJcyB1c2VkIGJ5IHRoZSBDTEkgdG8gcHJlc2VudCBhIGxpc3Qgb2Ygc3RhY2tzIHRvIHRoZSB1c2VyIGluIGEgd2F5IHRoYXRcbiAgICogbWFrZXMgc2Vuc2UgdG8gdGhlbS4gRXZlbiB0aG91Z2ggdGhlIHByb3BlcnR5IG5hbWUgXCJkaXNwbGF5IG5hbWVcIiBkb2Vzbid0XG4gICAqIGltcGx5IGl0LCB0aGlzIGZpZWxkIGlzIHVzZWQgdG8gc2VsZWN0IHN0YWNrcyBhcyB3ZWxsLCBzbyBhbGwgc3RhY2tzIHNob3VsZFxuICAgKiBoYXZlIGEgdW5pcXVlIGRpc3BsYXkgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkaXNwbGF5IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3Qgd2hpY2ggZGVzY3JpYmVzIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseU1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFByb3RvY29sIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogUmVxdWlyZWQgQ0xJIHZlcnNpb24sIGlmIGF2YWlsYWJsZVxuICAgKlxuICAgKiBJZiB0aGUgbWFuaWZlc3QgcHJvZHVjZXIga25vd3MsIGl0IGNhbiBwdXQgdGhlIG1pbmltdW0gdmVyc2lvbiBvZiB0aGUgQ0xJXG4gICAqIGhlcmUgdGhhdCBzdXBwb3J0cyByZWFkaW5nIHRoaXMgYXNzZW1ibHkuXG4gICAqXG4gICAqIElmIHNldCwgaXQgY2FuIGJlIHVzZWQgdG8gc2hvdyBhIG1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZSB0byB1c2Vycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBNaW5pbXVtIENMSSB2ZXJzaW9uIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1DbGlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIGFydGlmYWN0cyBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0cz86IHsgW2lkOiBzdHJpbmddOiBBcnRpZmFjdE1hbmlmZXN0IH07XG5cbiAgLyoqXG4gICAqIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi4gSWYgdGhpcyBmaWVsZCBoYXMgdmFsdWVzLCBpdCBtZWFucyB0aGF0IHRoZVxuICAgKiBjbG91ZCBhc3NlbWJseSBpcyBub3QgY29tcGxldGUgYW5kIHNob3VsZCBub3QgYmUgZGVwbG95ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWlzc2luZyBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgbWlzc2luZz86IE1pc3NpbmdDb250ZXh0W107XG5cbiAgLyoqXG4gICAqIFJ1bnRpbWUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gaW5mby5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBSdW50aW1lSW5mbztcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./cloud-assembly\"), exports);\n__exportStar(require(\"./assets\"), exports);\n__exportStar(require(\"./manifest\"), exports);\n__exportStar(require(\"./integ-tests\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hc3NlbWJseSc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2V0cyc7XG5leHBvcnQgKiBmcm9tICcuL21hbmlmZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWctdGVzdHMnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequireApproval = void 0;\n/**\n * Specify what changes require manual approval.\n */\nvar RequireApproval;\n(function (RequireApproval) {\n /**\n * Approval is not required\n */\n RequireApproval[\"NEVER\"] = \"never\";\n /**\n * Manual approval required for any change to the stack\n */\n RequireApproval[\"ANYCHANGE\"] = \"any-change\";\n /**\n * Manual approval required if changes involve a broadening of permissions or security group rules\n */\n RequireApproval[\"BROADENING\"] = \"broadening\";\n})(RequireApproval || (exports.RequireApproval = RequireApproval = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBWSxlQWVYO0FBZkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsa0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsMkNBQXdCLENBQUE7SUFFeEI7O09BRUc7SUFDSCw0Q0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBZlcsZUFBZSwrQkFBZixlQUFlLFFBZTFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTcGVjaWZ5IHdoYXQgY2hhbmdlcyByZXF1aXJlIG1hbnVhbCBhcHByb3ZhbC5cbiAqL1xuZXhwb3J0IGVudW0gUmVxdWlyZUFwcHJvdmFsIHtcbiAgLyoqXG4gICAqIEFwcHJvdmFsIGlzIG5vdCByZXF1aXJlZFxuICAgKi9cbiAgTkVWRVIgPSAnbmV2ZXInLFxuXG4gIC8qKlxuICAgKiBNYW51YWwgYXBwcm92YWwgcmVxdWlyZWQgZm9yIGFueSBjaGFuZ2UgdG8gdGhlIHN0YWNrXG4gICAqL1xuICBBTllDSEFOR0UgPSAnYW55LWNoYW5nZScsXG5cbiAgLyoqXG4gICAqIE1hbnVhbCBhcHByb3ZhbCByZXF1aXJlZCBpZiBjaGFuZ2VzIGludm9sdmUgYSBicm9hZGVuaW5nIG9mIHBlcm1pc3Npb25zIG9yIHNlY3VyaXR5IGdyb3VwIHJ1bGVzXG4gICAqL1xuICBCUk9BREVOSU5HID0gJ2Jyb2FkZW5pbmcnLFxufVxuXG4vKipcbiAqIERlZmF1bHQgQ0RLIENMSSBvcHRpb25zIHRoYXQgYXBwbHkgdG8gYWxsIGNvbW1hbmRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdENka09wdGlvbnMge1xuICAvKipcbiAgICogTGlzdCBvZiBzdGFja3MgdG8gZGVwbG95XG4gICAqXG4gICAqIFJlcXVyaWVkIGlmIGBhbGxgIGlzIG5vdCBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBbXVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIERlcGxveSBhbGwgc3RhY2tzXG4gICAqXG4gICAqIFJlcXVyaWVkIGlmIGBzdGFja3NgIGlzIG5vdCBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogY29tbWFuZC1saW5lIGZvciBleGVjdXRpbmcgeW91ciBhcHAgb3IgYSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICogZS5nLiBcIm5vZGUgYmluL215LWFwcC5qc1wiXG4gICAqIG9yXG4gICAqIFwiY2RrLm91dFwiXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmVhZCBmcm9tIGNkay5qc29uXG4gICAqL1xuICByZWFkb25seSBhcHA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgYm9vdHN0cmFwIGNmbi1leGVjIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29udGV4dFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgY29udGV4dFxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBQcmludCB0cmFjZSBmb3Igc3RhY2sgd2FybmluZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRG8gbm90IGNvbnN0cnVjdCBzdGFja3Mgd2l0aCB3YXJuaW5nc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGVyZm9ybSBjb250ZXh0IGxvb2t1cHMuXG4gICAqXG4gICAqIFN5bnRoZXNpcyBmYWlscyBpZiB0aGlzIGlzIGRpc2FibGVkIGFuZCBjb250ZXh0IGxvb2t1cHMgbmVlZFxuICAgKiB0byBiZSBwZXJmb3JtZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3Vwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElnbm9yZXMgc3ludGhlc2lzIGVycm9ycywgd2hpY2ggd2lsbCBsaWtlbHkgcHJvZHVjZSBhbiBpbnZhbGlkIG91dHB1dFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRXJyb3JzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIEpTT04gb3V0cHV0IGluc3RlYWQgb2YgWUFNTCB3aGVuIHRlbXBsYXRlcyBhcmUgcHJpbnRlZFxuICAgKiB0byBTVERPVVRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGpzb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaG93IGRlYnVnIGxvZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcmJvc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBlbmFibGUgZW1pc3Npb24gb2YgYWRkaXRpb25hbCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgY3JlYXRpb24gc3RhY2tcbiAgICogdHJhY2VzIG9mIHRva2Vuc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGluZGljYXRlZCBBV1MgcHJvZmlsZSBhcyB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb2ZpbGUgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIHRoZSBpbmRpY2F0ZWQgcHJveHkuIFdpbGwgcmVhZCBmcm9tXG4gICAqIEhUVFBTX1BST1hZIGVudmlyb25tZW50IGlmIHNwZWNpZmllZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb3h5XG4gICAqL1xuICByZWFkb25seSBwcm94eT86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byBDQSBjZXJ0aWZpY2F0ZSB0byB1c2Ugd2hlbiB2YWxpZGF0aW5nIEhUVFBTXG4gICAqIHJlcXVlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlYWQgZnJvbSBBV1NfQ0FfQlVORExFIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAqL1xuICByZWFkb25seSBjYUJ1bmRsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRyeWluZyB0byBmZXRjaCBFQzIgaW5zdGFuY2UgY3JlZGVudGlhbHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBndWVzcyBFQzIgaW5zdGFuY2Ugc3RhdHVzXG4gICAqL1xuICByZWFkb25seSBlYzJDcmVkcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluY2x1ZGUgXCJBV1M6OkNESzo6TWV0YWRhdGFcIiByZXNvdXJjZSBpbiBzeW50aGVzaXplZCB0ZW1wbGF0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvblJlcG9ydGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluY2x1ZGUgXCJhd3M6Y2RrOnBhdGhcIiBDbG91ZEZvcm1hdGlvbiBtZXRhZGF0YSBmb3IgZWFjaCByZXNvdXJjZVxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXRoTWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIFwiYXdzOmFzc2V0OipcIiBDbG91ZEZvcm1hdGlvbiBtZXRhZGF0YSBmb3IgcmVzb3VyY2VzIHRoYXQgdXNlIGFzc2V0c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldE1ldGFkYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29weSBhc3NldHMgdG8gdGhlIG91dHB1dCBkaXJlY3RvcnlcbiAgICpcbiAgICogTmVlZGVkIGZvciBsb2NhbCBkZWJ1Z2dpbmcgdGhlIHNvdXJjZSBmaWxlcyB3aXRoIFNBTSBDTElcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgaW50byBhIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBvdXRwdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3cgcmVsZXZhbnQgbm90aWNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBub3RpY2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdyBjb2xvcnMgYW5kIG90aGVyIHN0eWxlIGZyb20gY29uc29sZSBvdXRwdXRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29sb3I/OiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZmF1bHRDZGtPcHRpb25zLCBSZXF1aXJlQXBwcm92YWwgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogT3B0aW9ucyB0byB1c2Ugd2l0aCBjZGsgZGVwbG95XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIERlZmF1bHRDZGtPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9ubHkgcGVyZm9ybSBhY3Rpb24gb24gdGhlIGdpdmVuIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBleGNsdXNpdmVseT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHRvb2xraXQgc3RhY2sgdG8gdXNlL2RlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCBDREtUb29sa2l0XG4gICAqL1xuICByZWFkb25seSB0b29sa2l0U3RhY2tOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXVzZSB0aGUgYXNzZXRzIHdpdGggdGhlIGdpdmVuIGFzc2V0IElEc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCByZXVzZSBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlIGEgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWx3YXlzIGRlcGxveSwgZXZlbiBpZiB0ZW1wbGF0ZXMgYXJlIGlkZW50aWNhbC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUm9sbGJhY2sgZmFpbGVkIGRlcGxveW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQVJOcyBvZiBTTlMgdG9waWNzIHRoYXQgQ2xvdWRGb3JtYXRpb24gd2lsbCBub3RpZnkgd2l0aCBzdGFjayByZWxhdGVkIGV2ZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hhdCBraW5kIG9mIHNlY3VyaXR5IGNoYW5nZXMgcmVxdWlyZSBhcHByb3ZhbFxuICAgKlxuICAgKiBAZGVmYXVsdCBSZXF1aXJlQXBwcm92YWwuTkVWRVJcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVBcHByb3ZhbD86IFJlcXVpcmVBcHByb3ZhbDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBleGVjdXRlIHRoZSBDaGFuZ2VTZXRcbiAgICogTm90IHByb3ZpZGluZyBgZXhlY3V0ZWAgcGFyYW1ldGVyIHdpbGwgcmVzdWx0IGluIGV4ZWN1dGlvbiBvZiBDaGFuZ2VTZXRcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgQ2xvdWRGb3JtYXRpb24gYXQgZGVwbG95IHRpbWVcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVXNlIHByZXZpb3VzIHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBJZiBub3Qgc2V0LCBhbGwgcGFyYW1ldGVycyBtdXN0IGJlIHNwZWNpZmllZCBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUHJldmlvdXNQYXJhbWV0ZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB3ZSBhcmUgb24gYSBDSSBzeXN0ZW1cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNpPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwbG95IG11bHRpcGxlIHN0YWNrcyBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW5jeT86IG51bWJlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVmYXVsdENka09wdGlvbnMgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogT3B0aW9ucyB0byB1c2Ugd2l0aCBjZGsgZGVzdHJveVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lPcHRpb25zIGV4dGVuZHMgRGVmYXVsdENka09wdGlvbnMge1xuICAvKipcbiAgICogRG8gbm90IGFzayBmb3IgcGVybWlzc2lvbiBiZWZvcmUgZGVzdHJveWluZyBzdGFja3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT25seSBkZXN0cm95IHRoZSBnaXZlbiBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVzaXZlbHk/OiBib29sZWFuO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./common\"), exports);\n__exportStar(require(\"./deploy\"), exports);\n__exportStar(require(\"./destroy\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3knO1xuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./commands\"), exports);\n__exportStar(require(\"./test-case\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdGVzdC1jYXNlJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlc3RDYXNlIH0gZnJvbSAnLi90ZXN0LWNhc2UnO1xuLyoqXG4gKiBEZWZpbml0aW9ucyBmb3IgdGhlIGludGVncmF0aW9uIHRlc3RpbmcgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ01hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgdGhlIG1hbmlmZXN0XG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBsb29rdXBzIGZvciB0aGlzIHRlc3QuIElmIGxvb2t1cHMgYXJlIGVuYWJsZWRcbiAgICogdGhlbiBgc3RhY2tVcGRhdGVXb3JrZmxvd2AgbXVzdCBiZSBzZXQgdG8gZmFsc2UuXG4gICAqIExvb2t1cHMgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCB3aGVuIHlvdSBhcmUgZXhwbGljaXRseSB0ZXN0aW5nXG4gICAqIGxvb2t1cHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb250ZXh0IHRvIHVzZSB3aGVuIHBlcmZvcm1pbmdcbiAgICogYSBzeW50aC4gQW55IGNvbnRleHQgcHJvdmlkZWQgaGVyZSB3aWxsIG92ZXJyaWRlXG4gICAqIGFueSBkZWZhdWx0IGNvbnRleHRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoQ29udGV4dD86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiB0ZXN0IGNhc2VzXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q2FzZXM6IHsgW3Rlc3ROYW1lOiBzdHJpbmddOiBUZXN0Q2FzZSB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC1jYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlcGxveU9wdGlvbnMsIERlc3Ryb3lPcHRpb25zIH0gZnJvbSAnLi9jb21tYW5kcyc7XG5cbi8qKlxuICogVGhlIHNldCBvZiBvcHRpb25zIHRvIGNvbnRyb2wgdGhlIHdvcmtmbG93IG9mIHRoZSB0ZXN0IHJ1bm5lclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJ1biB1cGRhdGUgd29ya2Zsb3cgb24gdGhpcyB0ZXN0IGNhc2VcbiAgICogVGhpcyBzaG91bGQgb25seSBiZSBzZXQgdG8gZmFsc2UgdG8gdGVzdCBzY2VuYXJpb3NcbiAgICogdGhhdCBhcmUgbm90IHBvc3NpYmxlIHRvIHRlc3QgYXMgcGFydCBvZiB0aGUgdXBkYXRlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVXBkYXRlV29ya2Zsb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gdXNlIGZvciBlYWNoIENESyBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcnVubmVyIGRlZmF1bHQgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgY2RrQ29tbWFuZE9wdGlvbnM/OiBDZGtDb21tYW5kcztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb21tYW5kcyB0byBydW4gYXQgcHJlZGVmaW5lZCBwb2ludHMgaW4gdGhlIHRlc3Qgd29ya2Zsb3dcbiAgICpcbiAgICogZS5nLiB7IHBvc3REZXBsb3k6IFsneWFybicsICd0ZXN0J10gfVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGhvb2tzXG4gICAqL1xuICByZWFkb25seSBob29rcz86IEhvb2tzO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGFzc2V0IGhhc2hlcyBpbiB0aGUgZGlmZlxuICAgKiBBc3NldCBoYXNoZXMgY2FuIGludHJvZHVjZXMgYSBsb3Qgb2YgdW5uZWNjZXNzYXJ5IG5vaXNlIGludG8gdGVzdHMsXG4gICAqIGJ1dCB0aGVyZSBhcmUgc29tZSBjYXNlcyB3aGVyZSBhc3NldCBoYXNoZXMgX3Nob3VsZF8gYmUgaW5jbHVkZWQuIEZvciBleGFtcGxlXG4gICAqIGFueSB0ZXN0cyBpbnZvbHZpbmcgY3VzdG9tIHJlc291cmNlcyBvciBidW5kbGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlmZkFzc2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZXMgaW4gdGhpcyBzdGFjayB0aGF0IGNhblxuICAgKiBiZSBkZXN0cm95ZWQgYXMgcGFydCBvZiBhbiB1cGRhdGUgd2l0aG91dCBmYWlsaW5nIHRoZSB0ZXN0LlxuICAgKlxuICAgKiBUaGlzIGxpc3Qgc2hvdWxkIG9ubHkgaW5jbHVkZSByZXNvdXJjZXMgdGhhdCBmb3IgdGhpcyBzcGVjaWZpY1xuICAgKiBpbnRlZ3JhdGlvbiB0ZXN0IHdlIGFyZSBzdXJlIHdpbGwgbm90IGNhdXNlIGVycm9ycyBvciBhbiBvdXRhZ2UgaWZcbiAgICogZGVzdHJveWVkLiBGb3IgZXhhbXBsZSwgbWF5YmUgd2Uga25vdyB0aGF0IGEgbmV3IHJlc291cmNlIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBmaXJzdCBiZWZvcmUgdGhlIG9sZCByZXNvdXJjZSBpcyBkZXN0cm95ZWQgd2hpY2ggcHJldmVudHMgYW55IG91dGFnZS5cbiAgICpcbiAgICogZS5nLiBbJ0FXUzo6SUFNOjpSb2xlJ11cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkbyBub3QgYWxsb3cgZGVzdHJ1Y3Rpb24gb2YgYW55IHJlc291cmNlcyBvbiB1cGRhdGVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RGVzdHJveT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaW1pdCBkZXBsb3ltZW50IHRvIHRoZXNlIHJlZ2lvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBjYW4gcnVuIGluIGFueSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGludGVncmF0aW9uIHRlc3QgY2FzZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDYXNlIGV4dGVuZHMgVGVzdE9wdGlvbnMge1xuICAvKipcbiAgICogU3RhY2tzIHRoYXQgc2hvdWxkIGJlIHRlc3RlZCBhcyBwYXJ0IG9mIHRoaXMgdGVzdCBjYXNlXG4gICAqIFRoZSBzdGFja05hbWVzIHdpbGwgYmUgcGFzc2VkIGFzIGFyZ3MgdG8gdGhlIGNkayBjb21tYW5kc1xuICAgKiBzbyBkZXBlbmRlbnQgc3RhY2tzIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZXBsb3llZCB1bmxlc3NcbiAgICogYGV4Y2x1c2l2ZWx5YCBpcyBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBub2RlIGlkIG9mIHRoZSBzdGFjayB0aGF0IGNvbnRhaW5zIGFzc2VydGlvbnMuXG4gICAqIFRoaXMgaXMgdGhlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVwbG95IHRoZSBzdGFjayB3aXRoIHRoZSBDREsgQ0xJXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYXNzZXJ0aW9uIHN0YWNrXG4gICAqL1xuICByZWFkb25seSBhc3NlcnRpb25TdGFjaz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0YWNrIHRoYXQgY29udGFpbnMgYXNzZXJ0aW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFzc2VydGlvbiBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXJ0aW9uU3RhY2tOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbW1hbmRzIHRvIHJ1biBhdCBwcmVkZWZpbmVkIHBvaW50cyBkdXJpbmcgdGhlXG4gKiBpbnRlZ3JhdGlvbiB0ZXN0IHdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9va3Mge1xuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIHByaW9yIHRvIGRlcGxveWluZyB0aGUgY2RrIHN0YWNrc1xuICAgKiBpbiB0aGUgaW50ZWdyYXRpb24gdGVzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1hbmRzXG4gICAqL1xuICByZWFkb25seSBwcmVEZXBsb3k/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIHByaW9yIGFmdGVyIGRlcGxveWluZyB0aGUgY2RrIHN0YWNrc1xuICAgKiBpbiB0aGUgaW50ZWdyYXRpb24gdGVzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1hbmRzXG4gICAqL1xuICByZWFkb25seSBwb3N0RGVwbG95Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvbW1hbmRzIHRvIHJ1biBwcmlvciB0byBkZXN0cm95aW5nIHRoZSBjZGsgc3RhY2tzXG4gICAqIGluIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWFuZHNcbiAgICovXG4gIHJlYWRvbmx5IHByZURlc3Ryb3k/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIGFmdGVyIGRlc3Ryb3lpbmcgdGhlIGNkayBzdGFja3NcbiAgICogaW4gdGhlIGludGVncmF0aW9uIHRlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb21tYW5kc1xuICAgKi9cbiAgcmVhZG9ubHkgcG9zdERlc3Ryb3k/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2RrIGNvbW1hbmRcbiAqIGkuZS4gYHN5bnRoYCwgYGRlcGxveWAsICYgYGRlc3Ryb3lgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ29tbWFuZCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBydW4gdGhpcyBjb21tYW5kIGFzIHBhcnQgb2YgdGhlIHdvcmtmbG93XG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaWYgeW91IG9ubHkgd2FudCB0byB0ZXN0IHNvbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqIGZvciBleGFtcGxlIGVuYWJsZSBgc3ludGhgIGFuZCBkaXNhYmxlIGBkZXBsb3lgICYgYGRlc3Ryb3lgIGluIG9yZGVyXG4gICAqIHRvIGxpbWl0IHRoZSB0ZXN0IHRvIHN5bnRoZXNpc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgdGhlIHJ1bm5lciBzaG91bGQgZXhwZWN0IHRoaXMgY29tbWFuZCB0byBmYWlsXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBleHBlY3RFcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgZXhwZWN0ZWRFcnJvcmBcbiAgICogdG8gdmFsaWRhdGUgdGhhdCBhIHNwZWNpZmljIG1lc3NhZ2UgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IHZhbGlkYXRlIG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVjdGVkTWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2RrIGRlcGxveSBjb21tYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95Q29tbWFuZCBleHRlbmRzIENka0NvbW1hbmQge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY29tbWFuZFxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHRlc3Qgc3BlY2lmaWMgQ0xJIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBvbmx5IGRlZmF1bHQgYXJncyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXJncz86IERlcGxveU9wdGlvbnM7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNkayBkZXN0cm95IGNvbW1hbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95Q29tbWFuZCBleHRlbmRzIENka0NvbW1hbmQge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY29tbWFuZFxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHRlc3Qgc3BlY2lmaWMgQ0xJIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBvbmx5IGRlZmF1bHQgYXJncyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYXJncz86IERlc3Ryb3lPcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNwZWNpZmljIGNkayBjb21tYW5kcyB0aGF0IGFyZSBydW5cbiAqIGFzIHBhcnQgb2YgdGhlIGludGVncmF0aW9uIHRlc3Qgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtDb21tYW5kcyB7XG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGZvciB0aGUgY2RrIGRlcGxveSBjb21tYW5kXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBkZXBsb3kgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95PzogRGVwbG95Q29tbWFuZDtcblxuICAvKipcbiAgICogT3B0aW9ucyB0byBmb3IgdGhlIGNkayBkZXN0cm95IGNvbW1hbmRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IGRlc3Ryb3kgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVzdHJveT86IERlc3Ryb3lDb21tYW5kO1xufVxuIl19","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Manifest = exports.VERSION_MISMATCH = void 0;\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst jsonschema = require(\"jsonschema\");\nconst semver = require(\"semver\");\nconst assembly = require(\"./cloud-assembly\");\n/* eslint-disable @typescript-eslint/no-var-requires */\n/* eslint-disable @typescript-eslint/no-require-imports */\n// this prefix is used by the CLI to identify this specific error.\n// in which case we want to instruct the user to upgrade his CLI.\n// see exec.ts#createAssembly\nexports.VERSION_MISMATCH = 'Cloud assembly schema version mismatch';\n/**\n * CLI version is created at build and release time\n *\n * It needs to be .gitignore'd, otherwise the projen 'no uncommitted\n * changes' self-check will fail, which means it needs to be generated\n * at build time if it doesn't already exist.\n */\nconst CLI_VERSION = require(\"../cli-version.json\");\nconst ASSETS_SCHEMA = require(\"../schema/assets.schema.json\");\nconst ASSEMBLY_SCHEMA = require(\"../schema/cloud-assembly.schema.json\");\nconst INTEG_SCHEMA = require(\"../schema/integ.schema.json\");\n/**\n * Version is shared for both manifests\n */\nconst SCHEMA_VERSION = require(\"../schema/version.json\");\n/**\n * Protocol utility class.\n */\nclass Manifest {\n /**\n * Validates and saves the cloud assembly manifest to file.\n *\n * @param manifest - manifest.\n * @param filePath - output file path.\n */\n static saveAssemblyManifest(manifest, filePath) {\n Manifest.saveManifest(manifest, filePath, ASSEMBLY_SCHEMA);\n }\n /**\n * Load and validates the cloud assembly manifest from file.\n *\n * @param filePath - path to the manifest file.\n */\n static loadAssemblyManifest(filePath, options) {\n return Manifest.loadManifest(filePath, ASSEMBLY_SCHEMA, Manifest.patchStackTagsOnRead, options);\n }\n /**\n * Validates and saves the asset manifest to file.\n *\n * @param manifest - manifest.\n * @param filePath - output file path.\n */\n static saveAssetManifest(manifest, filePath) {\n Manifest.saveManifest(manifest, filePath, ASSETS_SCHEMA);\n }\n /**\n * Load and validates the asset manifest from file.\n *\n * @param filePath - path to the manifest file.\n */\n static loadAssetManifest(filePath) {\n return Manifest.loadManifest(filePath, ASSETS_SCHEMA);\n }\n /**\n * Validates and saves the integ manifest to file.\n *\n * @param manifest - manifest.\n * @param filePath - output file path.\n */\n static saveIntegManifest(manifest, filePath) {\n Manifest.saveManifest(manifest, filePath, INTEG_SCHEMA);\n }\n /**\n * Load and validates the integ manifest from file.\n *\n * @param filePath - path to the manifest file.\n */\n static loadIntegManifest(filePath) {\n const manifest = this.loadManifest(filePath, INTEG_SCHEMA);\n // Adding typing to `validate()` led to `loadManifest()` to properly infer\n // its return type, which indicated that the return type of this\n // function may be a lie. I could change the schema to make `testCases`\n // optional, but that will bump the major version of this package and I\n // don't want to do that. So instead, just make sure `testCases` is always there.\n return {\n ...manifest,\n testCases: manifest.testCases ?? [],\n };\n }\n /**\n * Fetch the current schema version number.\n */\n static version() {\n return `${SCHEMA_VERSION.revision}.0.0`;\n }\n /**\n * Return the CLI version that supports this Cloud Assembly Schema version\n */\n static cliVersion() {\n const version = CLI_VERSION.version;\n return version ? version : undefined;\n }\n /**\n * Deprecated\n * @deprecated use `saveAssemblyManifest()`\n */\n static save(manifest, filePath) {\n return this.saveAssemblyManifest(manifest, filePath);\n }\n /**\n * Deprecated\n * @deprecated use `loadAssemblyManifest()`\n */\n static load(filePath) {\n return this.loadAssemblyManifest(filePath);\n }\n static validate(manifest, schema, options) {\n function parseVersion(version) {\n const ver = semver.valid(version);\n if (!ver) {\n throw new Error(`Invalid semver string: \"${version}\"`);\n }\n return ver;\n }\n const maxSupported = semver.major(parseVersion(Manifest.version()));\n const actual = parseVersion(manifest.version);\n // first validate the version should be accepted. all versions within the same minor version are fine\n if (maxSupported < semver.major(actual) && !options?.skipVersionCheck) {\n // If we have a more specific error to throw than the generic one below, make sure to add that info.\n const cliVersion = manifest.minimumCliVersion;\n let cliWarning = '';\n if (cliVersion) {\n cliWarning = `. You need at least CLI version ${cliVersion} to read this manifest.`;\n }\n // we use a well known error prefix so that the CLI can identify this specific error\n // and print some more context to the user.\n throw new Error(`${exports.VERSION_MISMATCH}: Maximum schema version supported is ${maxSupported}.x.x, but found ${actual}${cliWarning}`);\n }\n if (options?.validateSchema ?? (process.env.TESTING_CDK === '1')) {\n // now validate the format is good.\n const validator = new jsonschema.Validator();\n const result = validator.validate(manifest, schema, {\n nestedErrors: true,\n allowUnknownAttributes: false,\n preValidateProperty: Manifest.validateAssumeRoleAdditionalOptions,\n });\n let errors = result.errors;\n if (options?.skipEnumCheck) {\n // Enum validations aren't useful when\n errors = stripEnumErrors(errors);\n }\n if (errors.length > 0) {\n throw new Error(`Invalid assembly manifest:\\n${errors.map((e) => e.stack).join('\\n')}`);\n }\n }\n }\n static saveManifest(manifest, filePath, schema, preprocess) {\n let withVersion = {\n ...manifest,\n version: Manifest.version(),\n minimumCliVersion: Manifest.cliVersion(),\n };\n Manifest.validate(withVersion, schema);\n if (preprocess) {\n withVersion = preprocess(withVersion);\n }\n fs.writeFileSync(filePath, JSON.stringify(withVersion, undefined, 2));\n }\n static loadManifest(filePath, schema, preprocess, options) {\n const contents = fs.readFileSync(filePath, { encoding: 'utf-8' });\n let obj;\n try {\n obj = JSON.parse(contents);\n }\n catch (e) {\n throw new Error(`${e.message}, while parsing ${JSON.stringify(contents)}`);\n }\n if (preprocess) {\n obj = preprocess(obj);\n }\n Manifest.validate(obj, schema, options);\n return obj;\n }\n /**\n * Fix the casing of stack tags entries\n *\n * At the very beginning of the CDK we used to emit stack tags as an object with\n * `{ Key, Value }` keys; this had the \"advantage\" that we could stick those\n * tags directly into the `CreateChangeSet` call.\n *\n * Then we later on used jsii on the assembly schema and we were forced to type\n * the in-memory objects as `{ key, value }` with lowercase letters. Now the\n * objects have a different on-disk and in-memory format, and we need to convert\n * between them.\n *\n * For backwards compatibility reasons, we used to convert lowercase in-memory\n * to uppercase on-disk variant until very recently. This is now unnecessary,\n * since no officially supported CDK tools read the stack tags from the\n * metadata; the CLI and toolkit library read stack tags from the artifact\n * properties.\n *\n * So although we don't emit uppercase stack tag objects anymore, we might still read\n * manifests that have them. Because the manifest we read must pass JSON Schema\n * validation (which expects lowercase tag objects), we have to fix the casing\n * of these objects after reading from disk and before validating.\n *\n * That's what this function does.\n */\n static patchStackTagsOnRead(manifest) {\n const artifacts = Object.values(manifest.artifacts ?? {})\n .filter(artifact => artifact.type === assembly.ArtifactType.AWS_CLOUDFORMATION_STACK);\n for (const artifact of artifacts) {\n const tagMetadata = Object.values(artifact.metadata ?? {})\n .flatMap(x => x)\n .filter(entry => entry.type === assembly.ArtifactMetadataEntryType.STACK_TAGS);\n for (const entry of tagMetadata) {\n const tags = entry.data;\n for (const tag of tags ?? []) {\n const t = tag;\n if ('Key' in t) {\n t.key = t.Key;\n delete t.Key;\n }\n if ('Value' in t) {\n t.value = t.Value;\n delete t.Value;\n }\n }\n }\n }\n return manifest;\n }\n /**\n * Validates that `assumeRoleAdditionalOptions` doesn't contain nor `ExternalId` neither `RoleArn`, as they\n * should have dedicated properties preceding this (e.g `assumeRoleArn` and `assumeRoleExternalId`).\n */\n static validateAssumeRoleAdditionalOptions(instance, key, _schema, _options, _ctx) {\n if (key !== 'assumeRoleAdditionalOptions') {\n // note that this means that if we happen to have a property named like this, but that\n // does want to allow 'RoleArn' or 'ExternalId', this code will have to change to consider the full schema path.\n // I decided to make this less granular for now on purpose because it fits our needs and avoids having messy\n // validation logic due to various schema paths.\n return;\n }\n const assumeRoleOptions = instance[key];\n if (assumeRoleOptions?.RoleArn) {\n throw new Error(`RoleArn is not allowed inside '${key}'`);\n }\n if (assumeRoleOptions?.ExternalId) {\n throw new Error(`ExternalId is not allowed inside '${key}'`);\n }\n }\n}\nexports.Manifest = Manifest;\n_a = JSII_RTTI_SYMBOL_1;\nManifest[_a] = { fqn: \"@aws-cdk/cloud-assembly-schema.Manifest\", version: \"53.17.0\" };\nfunction stripEnumErrors(errors) {\n return errors.filter((e) => typeof e.schema === 'string' || !('enum' in e.schema));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qix5Q0FBeUM7QUFDekMsaUNBQWlDO0FBRWpDLDZDQUE2QztBQUc3Qyx1REFBdUQ7QUFDdkQsMERBQTBEO0FBRTFELGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsNkJBQTZCO0FBQ2hCLFFBQUEsZ0JBQWdCLEdBQVcsd0NBQXdDLENBQUM7QUFFakY7Ozs7OztHQU1HO0FBQ0gsbURBQW9EO0FBRXBELDhEQUErRDtBQUUvRCx3RUFBeUU7QUFFekUsNERBQTZEO0FBRTdEOztHQUVHO0FBQ0gseURBQTBEO0FBZ0QxRDs7R0FFRztBQUNILE1BQXNCLFFBQVE7SUFDNUI7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBbUMsRUFBRSxRQUFnQjtRQUN0RixRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQ2hDLFFBQWdCLEVBQ2hCLE9BQTZCO1FBRTdCLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBOEIsRUFBRSxRQUFnQjtRQUM5RSxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBZ0I7UUFDOUMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN4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QyxJQUFJLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksaUJBQWlCLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQzs7QUFsUkgsNEJBbVJDOzs7QUFFRCxTQUFTLGVBQWUsQ0FBQyxNQUFvQztJQUMzRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMganNvbnNjaGVtYSBmcm9tICdqc29uc2NoZW1hJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBhc3NldHMgZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0ICogYXMgYXNzZW1ibHkgZnJvbSAnLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSAqIGFzIGludGVnIGZyb20gJy4vaW50ZWctdGVzdHMnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5cbi8vIHRoaXMgcHJlZml4IGlzIHVzZWQgYnkgdGhlIENMSSB0byBpZGVudGlmeSB0aGlzIHNwZWNpZmljIGVycm9yLlxuLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGluc3RydWN0IHRoZSB1c2VyIHRvIHVwZ3JhZGUgaGlzIENMSS5cbi8vIHNlZSBleGVjLnRzI2NyZWF0ZUFzc2VtYmx5XG5leHBvcnQgY29uc3QgVkVSU0lPTl9NSVNNQVRDSDogc3RyaW5nID0gJ0Nsb3VkIGFzc2VtYmx5IHNjaGVtYSB2ZXJzaW9uIG1pc21hdGNoJztcblxuLyoqXG4gKiBDTEkgdmVyc2lvbiBpcyBjcmVhdGVkIGF0IGJ1aWxkIGFuZCByZWxlYXNlIHRpbWVcbiAqXG4gKiBJdCBuZWVkcyB0byBiZSAuZ2l0aWdub3JlJ2QsIG90aGVyd2lzZSB0aGUgcHJvamVuICdubyB1bmNvbW1pdHRlZFxuICogY2hhbmdlcycgc2VsZi1jaGVjayB3aWxsIGZhaWwsIHdoaWNoIG1lYW5zIGl0IG5lZWRzIHRvIGJlIGdlbmVyYXRlZFxuICogYXQgYnVpbGQgdGltZSBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QuXG4gKi9cbmltcG9ydCBDTElfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2NsaS12ZXJzaW9uLmpzb24nKTtcblxuaW1wb3J0IEFTU0VUU19TQ0hFTUEgPSByZXF1aXJlKCcuLi9zY2hlbWEvYXNzZXRzLnNjaGVtYS5qc29uJyk7XG5cbmltcG9ydCBBU1NFTUJMWV9TQ0hFTUEgPSByZXF1aXJlKCcuLi9zY2hlbWEvY2xvdWQtYXNzZW1ibHkuc2NoZW1hLmpzb24nKTtcblxuaW1wb3J0IElOVEVHX1NDSEVNQSA9IHJlcXVpcmUoJy4uL3NjaGVtYS9pbnRlZy5zY2hlbWEuanNvbicpO1xuXG4vKipcbiAqIFZlcnNpb24gaXMgc2hhcmVkIGZvciBib3RoIG1hbmlmZXN0c1xuICovXG5pbXBvcnQgU0NIRU1BX1ZFUlNJT04gPSByZXF1aXJlKCcuLi9zY2hlbWEvdmVyc2lvbi5qc29uJyk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGxvYWRNYW5pZmVzdCBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2FkTWFuaWZlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNraXAgdGhlIHZlcnNpb24gY2hlY2tcbiAgICpcbiAgICogVGhpcyBtZWFucyB5b3UgbWF5IHJlYWQgYSBuZXdlciBjbG91ZCBhc3NlbWJseSB0aGFuIHRoZSBDWCBBUEkgaXMgZGVzaWduZWRcbiAgICogdG8gc3VwcG9ydCwgYW5kIHlvdXIgYXBwbGljYXRpb24gbWF5IG5vdCBiZSBhd2FyZSBvZiBhbGwgZmVhdHVyZXMgdGhhdCBpbiB1c2VcbiAgICogaW4gdGhlIENsb3VkIEFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFZlcnNpb25DaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNraXAgZW51bSBjaGVja3NcbiAgICpcbiAgICogVGhpcyBtZWFucyB5b3UgbWF5IHJlYWQgZW51bSB2YWx1ZXMgeW91IGRvbid0IGtub3cgYWJvdXQgeWV0LiBNYWtlIHN1cmUgdG8gYWx3YXlzXG4gICAqIGNoZWNrIHRoZSB2YWx1ZXMgb2YgZW51bXMgeW91IGVuY291bnRlciBpbiB0aGUgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwRW51bUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVG9wb2xvZ2ljYWxseSBzb3J0IGFsbCBhcnRpZmFjdHNcbiAgICpcbiAgICogVGhpcyBwYXJhbWV0ZXIgaXMgb25seSByZXNwZWN0ZWQgYnkgdGhlIGNvbnN0cnVjdG9yIG9mIGBDbG91ZEFzc2VtYmx5YC4gVGhlXG4gICAqIHByb3BlcnR5IGxpdmVzIGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRvcG9Tb3J0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIGZpbGUgYWNjb3JkaW5nIHRvIHRoZSBkZWNsYXJlZCBKU09OIFNjaGVtYVxuICAgKlxuICAgKiBCZSBhd2FyZSB0aGF0IEpTT04gU2NoZW1hIHZhbGlkYXRpb24gaGFzIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgY29zdFxuICAgKiAoYWJvdXQgMTB4IG92ZXIgbm90IHZhbGlkYXRpbmcpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSwgdW5sZXNzICRURVNUSU5HX0NESyBpcyBzZXQgdG8gJzEnXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZVNjaGVtYT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJvdG9jb2wgdXRpbGl0eSBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbmQgc2F2ZXMgdGhlIGNsb3VkIGFzc2VtYmx5IG1hbmlmZXN0IHRvIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBvdXRwdXQgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlQXNzZW1ibHlNYW5pZmVzdChtYW5pZmVzdDogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCwgZmlsZVBhdGg6IHN0cmluZykge1xuICAgIE1hbmlmZXN0LnNhdmVNYW5pZmVzdChtYW5pZmVzdCwgZmlsZVBhdGgsIEFTU0VNQkxZX1NDSEVNQSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbmQgdmFsaWRhdGVzIHRoZSBjbG91ZCBhc3NlbWJseSBtYW5pZmVzdCBmcm9tIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIHBhdGggdG8gdGhlIG1hbmlmZXN0IGZpbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxvYWRBc3NlbWJseU1hbmlmZXN0KFxuICAgIGZpbGVQYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IExvYWRNYW5pZmVzdE9wdGlvbnMsXG4gICk6IGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3Qge1xuICAgIHJldHVybiBNYW5pZmVzdC5sb2FkTWFuaWZlc3QoZmlsZVBhdGgsIEFTU0VNQkxZX1NDSEVNQSwgTWFuaWZlc3QucGF0Y2hTdGFja1RhZ3NPblJlYWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbmQgc2F2ZXMgdGhlIGFzc2V0IG1hbmlmZXN0IHRvIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBvdXRwdXQgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlQXNzZXRNYW5pZmVzdChtYW5pZmVzdDogYXNzZXRzLkFzc2V0TWFuaWZlc3QsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBNYW5pZmVzdC5zYXZlTWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoLCBBU1NFVFNfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGFuZCB2YWxpZGF0ZXMgdGhlIGFzc2V0IG1hbmlmZXN0IGZyb20gZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gcGF0aCB0byB0aGUgbWFuaWZlc3QgZmlsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9hZEFzc2V0TWFuaWZlc3QoZmlsZVBhdGg6IHN0cmluZyk6IGFzc2V0cy5Bc3NldE1hbmlmZXN0IHtcbiAgICByZXR1cm4gTWFuaWZlc3QubG9hZE1hbmlmZXN0KGZpbGVQYXRoLCBBU1NFVFNfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW5kIHNhdmVzIHRoZSBpbnRlZyBtYW5pZmVzdCB0byBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gbWFuaWZlc3QgLSBtYW5pZmVzdC5cbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gb3V0cHV0IGZpbGUgcGF0aC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2F2ZUludGVnTWFuaWZlc3QobWFuaWZlc3Q6IGludGVnLkludGVnTWFuaWZlc3QsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBNYW5pZmVzdC5zYXZlTWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoLCBJTlRFR19TQ0hFTUEpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYW5kIHZhbGlkYXRlcyB0aGUgaW50ZWcgbWFuaWZlc3QgZnJvbSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBwYXRoIHRvIHRoZSBtYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsb2FkSW50ZWdNYW5pZmVzdChmaWxlUGF0aDogc3RyaW5nKTogaW50ZWcuSW50ZWdNYW5pZmVzdCB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB0aGlzLmxvYWRNYW5pZmVzdChmaWxlUGF0aCwgSU5URUdfU0NIRU1BKTtcblxuICAgIC8vIEFkZGluZyB0eXBpbmcgdG8gYHZhbGlkYXRlKClgIGxlZCB0byBgbG9hZE1hbmlmZXN0KClgIHRvIHByb3Blcmx5IGluZmVyXG4gICAgLy8gaXRzIHJldHVybiB0eXBlLCB3aGljaCBpbmRpY2F0ZWQgdGhhdCB0aGUgcmV0dXJuIHR5cGUgb2YgdGhpc1xuICAgIC8vIGZ1bmN0aW9uIG1heSBiZSBhIGxpZS4gSSBjb3VsZCBjaGFuZ2UgdGhlIHNjaGVtYSB0byBtYWtlIGB0ZXN0Q2FzZXNgXG4gICAgLy8gb3B0aW9uYWwsIGJ1dCB0aGF0IHdpbGwgYnVtcCB0aGUgbWFqb3IgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UgYW5kIElcbiAgICAvLyBkb24ndCB3YW50IHRvIGRvIHRoYXQuIFNvIGluc3RlYWQsIGp1c3QgbWFrZSBzdXJlIGB0ZXN0Q2FzZXNgIGlzIGFsd2F5cyB0aGVyZS5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWFuaWZlc3QsXG4gICAgICB0ZXN0Q2FzZXM6IChtYW5pZmVzdCBhcyBhbnkpLnRlc3RDYXNlcyA/PyBbXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIHRoZSBjdXJyZW50IHNjaGVtYSB2ZXJzaW9uIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtTQ0hFTUFfVkVSU0lPTi5yZXZpc2lvbn0uMC4wYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIENMSSB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgdGhpcyBDbG91ZCBBc3NlbWJseSBTY2hlbWEgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjbGlWZXJzaW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmVyc2lvbiA9IENMSV9WRVJTSU9OLnZlcnNpb247XG4gICAgcmV0dXJuIHZlcnNpb24gPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWRcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBzYXZlQXNzZW1ibHlNYW5pZmVzdCgpYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlKG1hbmlmZXN0OiBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0LCBmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZUFzc2VtYmx5TWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgbG9hZEFzc2VtYmx5TWFuaWZlc3QoKWBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9hZChmaWxlUGF0aDogc3RyaW5nKTogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCB7XG4gICAgcmV0dXJuIHRoaXMubG9hZEFzc2VtYmx5TWFuaWZlc3QoZmlsZVBhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGUoXG4gICAgbWFuaWZlc3Q6IGFueSxcbiAgICBzY2hlbWE6IGpzb25zY2hlbWEuU2NoZW1hLFxuICAgIG9wdGlvbnM/OiBMb2FkTWFuaWZlc3RPcHRpb25zLFxuICApOiBhc3NlcnRzIG1hbmlmZXN0IGlzIGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3Qge1xuICAgIGZ1bmN0aW9uIHBhcnNlVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IHZlciA9IHNlbXZlci52YWxpZCh2ZXJzaW9uKTtcbiAgICAgIGlmICghdmVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzZW12ZXIgc3RyaW5nOiBcIiR7dmVyc2lvbn1cImApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZlcjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXhTdXBwb3J0ZWQgPSBzZW12ZXIubWFqb3IocGFyc2VWZXJzaW9uKE1hbmlmZXN0LnZlcnNpb24oKSkpO1xuICAgIGNvbnN0IGFjdHVhbCA9IHBhcnNlVmVyc2lvbihtYW5pZmVzdC52ZXJzaW9uKTtcblxuICAgIC8vIGZpcnN0IHZhbGlkYXRlIHRoZSB2ZXJzaW9uIHNob3VsZCBiZSBhY2NlcHRlZC4gYWxsIHZlcnNpb25zIHdpdGhpbiB0aGUgc2FtZSBtaW5vciB2ZXJzaW9uIGFyZSBmaW5lXG4gICAgaWYgKG1heFN1cHBvcnRlZCA8IHNlbXZlci5tYWpvcihhY3R1YWwpICYmICFvcHRpb25zPy5za2lwVmVyc2lvbkNoZWNrKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIGEgbW9yZSBzcGVjaWZpYyBlcnJvciB0byB0aHJvdyB0aGFuIHRoZSBnZW5lcmljIG9uZSBiZWxvdywgbWFrZSBzdXJlIHRvIGFkZCB0aGF0IGluZm8uXG4gICAgICBjb25zdCBjbGlWZXJzaW9uID0gKG1hbmlmZXN0IGFzIGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3QpLm1pbmltdW1DbGlWZXJzaW9uO1xuICAgICAgbGV0IGNsaVdhcm5pbmcgPSAnJztcbiAgICAgIGlmIChjbGlWZXJzaW9uKSB7XG4gICAgICAgIGNsaVdhcm5pbmcgPSBgLiBZb3UgbmVlZCBhdCBsZWFzdCBDTEkgdmVyc2lvbiAke2NsaVZlcnNpb259IHRvIHJlYWQgdGhpcyBtYW5pZmVzdC5gO1xuICAgICAgfVxuXG4gICAgICAvLyB3ZSB1c2UgYSB3ZWxsIGtub3duIGVycm9yIHByZWZpeCBzbyB0aGF0IHRoZSBDTEkgY2FuIGlkZW50aWZ5IHRoaXMgc3BlY2lmaWMgZXJyb3JcbiAgICAgIC8vIGFuZCBwcmludCBzb21lIG1vcmUgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7VkVSU0lPTl9NSVNNQVRDSH06IE1heGltdW0gc2NoZW1hIHZlcnNpb24gc3VwcG9ydGVkIGlzICR7bWF4U3VwcG9ydGVkfS54LngsIGJ1dCBmb3VuZCAke2FjdHVhbH0ke2NsaVdhcm5pbmd9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LnZhbGlkYXRlU2NoZW1hID8/IChwcm9jZXNzLmVudi5URVNUSU5HX0NESyA9PT0gJzEnKSkge1xuICAgICAgLy8gbm93IHZhbGlkYXRlIHRoZSBmb3JtYXQgaXMgZ29vZC5cbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IG5ldyBqc29uc2NoZW1hLlZhbGlkYXRvcigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdG9yLnZhbGlkYXRlKG1hbmlmZXN0LCBzY2hlbWEsIHtcbiAgICAgICAgbmVzdGVkRXJyb3JzOiB0cnVlLFxuICAgICAgICBhbGxvd1Vua25vd25BdHRyaWJ1dGVzOiBmYWxzZSxcbiAgICAgICAgcHJlVmFsaWRhdGVQcm9wZXJ0eTogTWFuaWZlc3QudmFsaWRhdGVBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgICB9KTtcblxuICAgICAgbGV0IGVycm9ycyA9IHJlc3VsdC5lcnJvcnM7XG4gICAgICBpZiAob3B0aW9ucz8uc2tpcEVudW1DaGVjaykge1xuICAgICAgICAvLyBFbnVtIHZhbGlkYXRpb25zIGFyZW4ndCB1c2VmdWwgd2hlblxuICAgICAgICBlcnJvcnMgPSBzdHJpcEVudW1FcnJvcnMoZXJyb3JzKTtcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXNzZW1ibHkgbWFuaWZlc3Q6XFxuJHtlcnJvcnMubWFwKChlKSA9PiBlLnN0YWNrKS5qb2luKCdcXG4nKX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzYXZlTWFuaWZlc3QoXG4gICAgbWFuaWZlc3Q6IGFueSxcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICAgIHNjaGVtYToganNvbnNjaGVtYS5TY2hlbWEsXG4gICAgcHJlcHJvY2Vzcz86IChvYmo6IGFueSkgPT4gYW55LFxuICApIHtcbiAgICBsZXQgd2l0aFZlcnNpb24gPSB7XG4gICAgICAuLi5tYW5pZmVzdCxcbiAgICAgIHZlcnNpb246IE1hbmlmZXN0LnZlcnNpb24oKSxcbiAgICAgIG1pbmltdW1DbGlWZXJzaW9uOiBNYW5pZmVzdC5jbGlWZXJzaW9uKCksXG4gICAgfSBzYXRpc2ZpZXMgYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdDtcblxuICAgIE1hbmlmZXN0LnZhbGlkYXRlKHdpdGhWZXJzaW9uLCBzY2hlbWEpO1xuXG4gICAgaWYgKHByZXByb2Nlc3MpIHtcbiAgICAgIHdpdGhWZXJzaW9uID0gcHJlcHJvY2Vzcyh3aXRoVmVyc2lvbik7XG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHdpdGhWZXJzaW9uLCB1bmRlZmluZWQsIDIpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGxvYWRNYW5pZmVzdChcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICAgIHNjaGVtYToganNvbnNjaGVtYS5TY2hlbWEsXG4gICAgcHJlcHJvY2Vzcz86IChvYmo6IGFueSkgPT4gYW55LFxuICAgIG9wdGlvbnM/OiBMb2FkTWFuaWZlc3RPcHRpb25zLFxuICApIHtcbiAgICBjb25zdCBjb250ZW50cyA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgICBsZXQgb2JqO1xuICAgIHRyeSB7XG4gICAgICBvYmogPSBKU09OLnBhcnNlKGNvbnRlbnRzKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlLm1lc3NhZ2V9LCB3aGlsZSBwYXJzaW5nICR7SlNPTi5zdHJpbmdpZnkoY29udGVudHMpfWApO1xuICAgIH1cbiAgICBpZiAocHJlcHJvY2Vzcykge1xuICAgICAgb2JqID0gcHJlcHJvY2VzcyhvYmopO1xuICAgIH1cbiAgICBNYW5pZmVzdC52YWxpZGF0ZShvYmosIHNjaGVtYSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXggdGhlIGNhc2luZyBvZiBzdGFjayB0YWdzIGVudHJpZXNcbiAgICpcbiAgICogQXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBDREsgd2UgdXNlZCB0byBlbWl0IHN0YWNrIHRhZ3MgYXMgYW4gb2JqZWN0IHdpdGhcbiAgICogYHsgS2V5LCBWYWx1ZSB9YCBrZXlzOyB0aGlzIGhhZCB0aGUgXCJhZHZhbnRhZ2VcIiB0aGF0IHdlIGNvdWxkIHN0aWNrIHRob3NlXG4gICAqIHRhZ3MgZGlyZWN0bHkgaW50byB0aGUgYENyZWF0ZUNoYW5nZVNldGAgY2FsbC5cbiAgICpcbiAgICogVGhlbiB3ZSBsYXRlciBvbiB1c2VkIGpzaWkgb24gdGhlIGFzc2VtYmx5IHNjaGVtYSBhbmQgd2Ugd2VyZSBmb3JjZWQgdG8gdHlwZVxuICAgKiB0aGUgaW4tbWVtb3J5IG9iamVjdHMgYXMgYHsga2V5LCB2YWx1ZSB9YCB3aXRoIGxvd2VyY2FzZSBsZXR0ZXJzLiBOb3cgdGhlXG4gICAqIG9iamVjdHMgaGF2ZSBhIGRpZmZlcmVudCBvbi1kaXNrIGFuZCBpbi1tZW1vcnkgZm9ybWF0LCBhbmQgd2UgbmVlZCB0byBjb252ZXJ0XG4gICAqIGJldHdlZW4gdGhlbS5cbiAgICpcbiAgICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHdlIHVzZWQgdG8gY29udmVydCBsb3dlcmNhc2UgaW4tbWVtb3J5XG4gICAqIHRvIHVwcGVyY2FzZSBvbi1kaXNrIHZhcmlhbnQgdW50aWwgdmVyeSByZWNlbnRseS4gVGhpcyBpcyBub3cgdW5uZWNlc3NhcnksXG4gICAqIHNpbmNlIG5vIG9mZmljaWFsbHkgc3VwcG9ydGVkIENESyB0b29scyByZWFkIHRoZSBzdGFjayB0YWdzIGZyb20gdGhlXG4gICAqIG1ldGFkYXRhOyB0aGUgQ0xJIGFuZCB0b29sa2l0IGxpYnJhcnkgcmVhZCBzdGFjayB0YWdzIGZyb20gdGhlIGFydGlmYWN0XG4gICAqIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIFNvIGFsdGhvdWdoIHdlIGRvbid0IGVtaXQgdXBwZXJjYXNlIHN0YWNrIHRhZyBvYmplY3RzIGFueW1vcmUsIHdlIG1pZ2h0IHN0aWxsIHJlYWRcbiAgICogbWFuaWZlc3RzIHRoYXQgaGF2ZSB0aGVtLiBCZWNhdXNlIHRoZSBtYW5pZmVzdCB3ZSByZWFkIG11c3QgcGFzcyBKU09OIFNjaGVtYVxuICAgKiB2YWxpZGF0aW9uICh3aGljaCBleHBlY3RzIGxvd2VyY2FzZSB0YWcgb2JqZWN0cyksIHdlIGhhdmUgdG8gZml4IHRoZSBjYXNpbmdcbiAgICogb2YgdGhlc2Ugb2JqZWN0cyBhZnRlciByZWFkaW5nIGZyb20gZGlzayBhbmQgYmVmb3JlIHZhbGlkYXRpbmcuXG4gICAqXG4gICAqIFRoYXQncyB3aGF0IHRoaXMgZnVuY3Rpb24gZG9lcy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHBhdGNoU3RhY2tUYWdzT25SZWFkKHRoaXM6IHZvaWQsIG1hbmlmZXN0OiBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0KSB7XG4gICAgY29uc3QgYXJ0aWZhY3RzID0gT2JqZWN0LnZhbHVlcyhtYW5pZmVzdC5hcnRpZmFjdHMgPz8ge30pXG4gICAgICAuZmlsdGVyKGFydGlmYWN0ID0+IGFydGlmYWN0LnR5cGUgPT09IGFzc2VtYmx5LkFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0spO1xuXG4gICAgZm9yIChjb25zdCBhcnRpZmFjdCBvZiBhcnRpZmFjdHMpIHtcbiAgICAgIGNvbnN0IHRhZ01ldGFkYXRhID0gT2JqZWN0LnZhbHVlcyhhcnRpZmFjdC5tZXRhZGF0YSA/PyB7fSlcbiAgICAgICAgLmZsYXRNYXAoeCA9PiB4KVxuICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LnR5cGUgPT09IGFzc2VtYmx5LkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuU1RBQ0tfVEFHUyk7XG5cbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGFnTWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgdGFncyA9IGVudHJ5LmRhdGEgYXMgdW5rbm93biBhcyBhc3NlbWJseS5TdGFja1RhZ3NNZXRhZGF0YUVudHJ5W10gfCB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgdGFnIG9mIHRhZ3MgPz8gW10pIHtcbiAgICAgICAgICBjb25zdCB0OiBhbnkgPSB0YWc7XG4gICAgICAgICAgaWYgKCdLZXknIGluIHQpIHtcbiAgICAgICAgICAgIHQua2V5ID0gdC5LZXk7XG4gICAgICAgICAgICBkZWxldGUgdC5LZXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgnVmFsdWUnIGluIHQpIHtcbiAgICAgICAgICAgIHQudmFsdWUgPSB0LlZhbHVlO1xuICAgICAgICAgICAgZGVsZXRlIHQuVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hbmlmZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGF0IGBhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnNgIGRvZXNuJ3QgY29udGFpbiBub3IgYEV4dGVybmFsSWRgIG5laXRoZXIgYFJvbGVBcm5gLCBhcyB0aGV5XG4gICAqIHNob3VsZCBoYXZlIGRlZGljYXRlZCBwcm9wZXJ0aWVzIHByZWNlZGluZyB0aGlzIChlLmcgYGFzc3VtZVJvbGVBcm5gIGFuZCBgYXNzdW1lUm9sZUV4dGVybmFsSWRgKS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlQXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zKFxuICAgIHRoaXM6IHZvaWQsXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBfc2NoZW1hOiBqc29uc2NoZW1hLlNjaGVtYSxcbiAgICBfb3B0aW9uczoganNvbnNjaGVtYS5PcHRpb25zLFxuICAgIF9jdHg6IGpzb25zY2hlbWEuU2NoZW1hQ29udGV4dCxcbiAgKSB7XG4gICAgaWYgKGtleSAhPT0gJ2Fzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucycpIHtcbiAgICAgIC8vIG5vdGUgdGhhdCB0aGlzIG1lYW5zIHRoYXQgaWYgd2UgaGFwcGVuIHRvIGhhdmUgYSBwcm9wZXJ0eSBuYW1lZCBsaWtlIHRoaXMsIGJ1dCB0aGF0XG4gICAgICAvLyBkb2VzIHdhbnQgdG8gYWxsb3cgJ1JvbGVBcm4nIG9yICdFeHRlcm5hbElkJywgdGhpcyBjb2RlIHdpbGwgaGF2ZSB0byBjaGFuZ2UgdG8gY29uc2lkZXIgdGhlIGZ1bGwgc2NoZW1hIHBhdGguXG4gICAgICAvLyBJIGRlY2lkZWQgdG8gbWFrZSB0aGlzIGxlc3MgZ3JhbnVsYXIgZm9yIG5vdyBvbiBwdXJwb3NlIGJlY2F1c2UgaXQgZml0cyBvdXIgbmVlZHMgYW5kIGF2b2lkcyBoYXZpbmcgbWVzc3lcbiAgICAgIC8vIHZhbGlkYXRpb24gbG9naWMgZHVlIHRvIHZhcmlvdXMgc2NoZW1hIHBhdGhzLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFzc3VtZVJvbGVPcHRpb25zID0gaW5zdGFuY2Vba2V5XTtcbiAgICBpZiAoYXNzdW1lUm9sZU9wdGlvbnM/LlJvbGVBcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUm9sZUFybiBpcyBub3QgYWxsb3dlZCBpbnNpZGUgJyR7a2V5fSdgKTtcbiAgICB9XG4gICAgaWYgKGFzc3VtZVJvbGVPcHRpb25zPy5FeHRlcm5hbElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4dGVybmFsSWQgaXMgbm90IGFsbG93ZWQgaW5zaWRlICcke2tleX0nYCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHN0cmlwRW51bUVycm9ycyhlcnJvcnM6IGpzb25zY2hlbWEuVmFsaWRhdGlvbkVycm9yW10pIHtcbiAgcmV0dXJuIGVycm9ycy5maWx0ZXIoKGUpID0+IHR5cGVvZiBlLnNjaGVtYSA9PT0gJ3N0cmluZycgfHwgISgnZW51bScgaW4gZS5zY2hlbWEpKTtcbn1cbiJdfQ==","'use strict';\n\nvar helpers = require('./helpers');\n\n/** @type ValidatorResult */\nvar ValidatorResult = helpers.ValidatorResult;\n/** @type SchemaError */\nvar SchemaError = helpers.SchemaError;\n\nvar attribute = {};\n\nattribute.ignoreProperties = {\n // informative properties\n 'id': true,\n 'default': true,\n 'description': true,\n 'title': true,\n // arguments to other properties\n 'additionalItems': true,\n 'then': true,\n 'else': true,\n // special-handled properties\n '$schema': true,\n '$ref': true,\n 'extends': true,\n};\n\n/**\n * @name validators\n */\nvar validators = attribute.validators = {};\n\n/**\n * Validates whether the instance if of a certain type\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {ValidatorResult|null}\n */\nvalidators.type = function validateType (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var types = Array.isArray(schema.type) ? schema.type : [schema.type];\n if (!types.some(this.testType.bind(this, instance, schema, options, ctx))) {\n var list = types.map(function (v) {\n if(!v) return;\n var id = v.$id || v.id;\n return id ? ('<' + id + '>') : (v+'');\n });\n result.addError({\n name: 'type',\n argument: list,\n message: \"is not of a type(s) \" + list,\n });\n }\n return result;\n};\n\nfunction testSchemaNoThrow(instance, options, ctx, callback, schema){\n var throwError = options.throwError;\n var throwAll = options.throwAll;\n options.throwError = false;\n options.throwAll = false;\n var res = this.validateSchema(instance, schema, options, ctx);\n options.throwError = throwError;\n options.throwAll = throwAll;\n\n if (!res.valid && callback instanceof Function) {\n callback(res);\n }\n return res.valid;\n}\n\n/**\n * Validates whether the instance matches some of the given schemas\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {ValidatorResult|null}\n */\nvalidators.anyOf = function validateAnyOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var inner = new ValidatorResult(instance, schema, options, ctx);\n if (!Array.isArray(schema.anyOf)){\n throw new SchemaError(\"anyOf must be an array\");\n }\n if (!schema.anyOf.some(\n testSchemaNoThrow.bind(\n this, instance, options, ctx, function(res){inner.importErrors(res);}\n ))) {\n var list = schema.anyOf.map(function (v, i) {\n var id = v.$id || v.id;\n if(id) return '<' + id + '>';\n return(v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n });\n if (options.nestedErrors) {\n result.importErrors(inner);\n }\n result.addError({\n name: 'anyOf',\n argument: list,\n message: \"is not any of \" + list.join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance matches every given schema\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.allOf = function validateAllOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema.allOf)){\n throw new SchemaError(\"allOf must be an array\");\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var self = this;\n schema.allOf.forEach(function(v, i){\n var valid = self.validateSchema(instance, v, options, ctx);\n if(!valid.valid){\n var id = v.$id || v.id;\n var msg = id || (v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n result.addError({\n name: 'allOf',\n argument: { id: msg, length: valid.errors.length, valid: valid },\n message: 'does not match allOf schema ' + msg + ' with ' + valid.errors.length + ' error[s]:',\n });\n result.importErrors(valid);\n }\n });\n return result;\n};\n\n/**\n * Validates whether the instance matches exactly one of the given schemas\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.oneOf = function validateOneOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema.oneOf)){\n throw new SchemaError(\"oneOf must be an array\");\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var inner = new ValidatorResult(instance, schema, options, ctx);\n var count = schema.oneOf.filter(\n testSchemaNoThrow.bind(\n this, instance, options, ctx, function(res) {inner.importErrors(res);}\n ) ).length;\n var list = schema.oneOf.map(function (v, i) {\n var id = v.$id || v.id;\n return id || (v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n });\n if (count!==1) {\n if (options.nestedErrors) {\n result.importErrors(inner);\n }\n result.addError({\n name: 'oneOf',\n argument: list,\n message: \"is not exactly one from \" + list.join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates \"then\" or \"else\" depending on the result of validating \"if\"\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.if = function validateIf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) return null;\n if (!helpers.isSchema(schema.if)) throw new Error('Expected \"if\" keyword to be a schema');\n var ifValid = testSchemaNoThrow.call(this, instance, options, ctx, null, schema.if);\n var result = new ValidatorResult(instance, schema, options, ctx);\n var res;\n if(ifValid){\n if (schema.then === undefined) return;\n if (!helpers.isSchema(schema.then)) throw new Error('Expected \"then\" keyword to be a schema');\n res = this.validateSchema(instance, schema.then, options, ctx.makeChild(schema.then));\n result.importErrors(res);\n }else{\n if (schema.else === undefined) return;\n if (!helpers.isSchema(schema.else)) throw new Error('Expected \"else\" keyword to be a schema');\n res = this.validateSchema(instance, schema.else, options, ctx.makeChild(schema.else));\n result.importErrors(res);\n }\n return result;\n};\n\nfunction getEnumerableProperty(object, key){\n // Determine if `key` shows up in `for(var key in object)`\n // First test Object.hasOwnProperty.call as an optimization: that guarantees it does\n if(Object.hasOwnProperty.call(object, key)) return object[key];\n // Test `key in object` as an optimization; false means it won't\n if(!(key in object)) return;\n while( (object = Object.getPrototypeOf(object)) ){\n if(Object.propertyIsEnumerable.call(object, key)) return object[key];\n }\n}\n\n/**\n * Validates propertyNames\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.propertyNames = function validatePropertyNames (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var subschema = schema.propertyNames!==undefined ? schema.propertyNames : {};\n if(!helpers.isSchema(subschema)) throw new SchemaError('Expected \"propertyNames\" to be a schema (object or boolean)');\n\n for (var property in instance) {\n if(getEnumerableProperty(instance, property) !== undefined){\n var res = this.validateSchema(property, subschema, options, ctx.makeChild(subschema));\n result.importErrors(res);\n }\n }\n\n return result;\n};\n\n/**\n * Validates properties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.properties = function validateProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var properties = schema.properties || {};\n for (var property in properties) {\n var subschema = properties[property];\n if(subschema===undefined){\n continue;\n }else if(subschema===null){\n throw new SchemaError('Unexpected null, expected schema in \"properties\"');\n }\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, subschema, options, ctx);\n }\n var prop = getEnumerableProperty(instance, property);\n var res = this.validateSchema(prop, subschema, options, ctx.makeChild(subschema, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n return result;\n};\n\n/**\n * Test a specific property within in instance against the additionalProperties schema attribute\n * This ignores properties with definitions in the properties schema attribute, but no other attributes.\n * If too many more types of property-existence tests pop up they may need their own class of tests (like `type` has)\n * @private\n * @return {boolean}\n */\nfunction testAdditionalProperty (instance, schema, options, ctx, property, result) {\n if(!this.types.object(instance)) return;\n if (schema.properties && schema.properties[property] !== undefined) {\n return;\n }\n if (schema.additionalProperties === false) {\n result.addError({\n name: 'additionalProperties',\n argument: property,\n message: \"is not allowed to have the additional property \" + JSON.stringify(property),\n });\n } else {\n var additionalProperties = schema.additionalProperties || {};\n\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, additionalProperties, options, ctx);\n }\n\n var res = this.validateSchema(instance[property], additionalProperties, options, ctx.makeChild(additionalProperties, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n}\n\n/**\n * Validates patternProperties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.patternProperties = function validatePatternProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var patternProperties = schema.patternProperties || {};\n\n for (var property in instance) {\n var test = true;\n for (var pattern in patternProperties) {\n var subschema = patternProperties[pattern];\n if(subschema===undefined){\n continue;\n }else if(subschema===null){\n throw new SchemaError('Unexpected null, expected schema in \"patternProperties\"');\n }\n try {\n var regexp = new RegExp(pattern, 'u');\n } catch(_e) {\n // In the event the stricter handling causes an error, fall back on the forgiving handling\n // DEPRECATED\n regexp = new RegExp(pattern);\n }\n if (!regexp.test(property)) {\n continue;\n }\n test = false;\n\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, subschema, options, ctx);\n }\n\n var res = this.validateSchema(instance[property], subschema, options, ctx.makeChild(subschema, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n if (test) {\n testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n }\n }\n\n return result;\n};\n\n/**\n * Validates additionalProperties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.additionalProperties = function validateAdditionalProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n // if patternProperties is defined then we'll test when that one is called instead\n if (schema.patternProperties) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n for (var property in instance) {\n testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at least of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minProperties = function validateMinProperties (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var keys = Object.keys(instance);\n if (!(keys.length >= schema.minProperties)) {\n result.addError({\n name: 'minProperties',\n argument: schema.minProperties,\n message: \"does not meet minimum property length of \" + schema.minProperties,\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at most of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxProperties = function validateMaxProperties (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var keys = Object.keys(instance);\n if (!(keys.length <= schema.maxProperties)) {\n result.addError({\n name: 'maxProperties',\n argument: schema.maxProperties,\n message: \"does not meet maximum property length of \" + schema.maxProperties,\n });\n }\n return result;\n};\n\n/**\n * Validates items when instance is an array\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.items = function validateItems (instance, schema, options, ctx) {\n var self = this;\n if (!this.types.array(instance)) return;\n if (schema.items===undefined) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n instance.every(function (value, i) {\n if(Array.isArray(schema.items)){\n var items = schema.items[i]===undefined ? schema.additionalItems : schema.items[i];\n }else{\n var items = schema.items;\n }\n if (items === undefined) {\n return true;\n }\n if (items === false) {\n result.addError({\n name: 'items',\n message: \"additionalItems not permitted\",\n });\n return false;\n }\n var res = self.validateSchema(value, items, options, ctx.makeChild(items, i));\n if(res.instance !== result.instance[i]) result.instance[i] = res.instance;\n result.importErrors(res);\n return true;\n });\n return result;\n};\n\n/**\n * Validates the \"contains\" keyword\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.contains = function validateContains (instance, schema, options, ctx) {\n var self = this;\n if (!this.types.array(instance)) return;\n if (schema.contains===undefined) return;\n if (!helpers.isSchema(schema.contains)) throw new Error('Expected \"contains\" keyword to be a schema');\n var result = new ValidatorResult(instance, schema, options, ctx);\n var count = instance.some(function (value, i) {\n var res = self.validateSchema(value, schema.contains, options, ctx.makeChild(schema.contains, i));\n return res.errors.length===0;\n });\n if(count===false){\n result.addError({\n name: 'contains',\n argument: schema.contains,\n message: \"must contain an item matching given schema\",\n });\n }\n return result;\n};\n\n/**\n * Validates minimum and exclusiveMinimum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minimum = function validateMinimum (instance, schema, options, ctx) {\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (schema.exclusiveMinimum && schema.exclusiveMinimum === true) {\n if(!(instance > schema.minimum)){\n result.addError({\n name: 'minimum',\n argument: schema.minimum,\n message: \"must be greater than \" + schema.minimum,\n });\n }\n } else {\n if(!(instance >= schema.minimum)){\n result.addError({\n name: 'minimum',\n argument: schema.minimum,\n message: \"must be greater than or equal to \" + schema.minimum,\n });\n }\n }\n return result;\n};\n\n/**\n * Validates maximum and exclusiveMaximum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maximum = function validateMaximum (instance, schema, options, ctx) {\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (schema.exclusiveMaximum && schema.exclusiveMaximum === true) {\n if(!(instance < schema.maximum)){\n result.addError({\n name: 'maximum',\n argument: schema.maximum,\n message: \"must be less than \" + schema.maximum,\n });\n }\n } else {\n if(!(instance <= schema.maximum)){\n result.addError({\n name: 'maximum',\n argument: schema.maximum,\n message: \"must be less than or equal to \" + schema.maximum,\n });\n }\n }\n return result;\n};\n\n/**\n * Validates the number form of exclusiveMinimum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.exclusiveMinimum = function validateExclusiveMinimum (instance, schema, options, ctx) {\n // Support the boolean form of exclusiveMinimum, which is handled by the \"minimum\" keyword.\n if(typeof schema.exclusiveMinimum === 'boolean') return;\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var valid = instance > schema.exclusiveMinimum;\n if (!valid) {\n result.addError({\n name: 'exclusiveMinimum',\n argument: schema.exclusiveMinimum,\n message: \"must be strictly greater than \" + schema.exclusiveMinimum,\n });\n }\n return result;\n};\n\n/**\n * Validates the number form of exclusiveMaximum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.exclusiveMaximum = function validateExclusiveMaximum (instance, schema, options, ctx) {\n // Support the boolean form of exclusiveMaximum, which is handled by the \"maximum\" keyword.\n if(typeof schema.exclusiveMaximum === 'boolean') return;\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var valid = instance < schema.exclusiveMaximum;\n if (!valid) {\n result.addError({\n name: 'exclusiveMaximum',\n argument: schema.exclusiveMaximum,\n message: \"must be strictly less than \" + schema.exclusiveMaximum,\n });\n }\n return result;\n};\n\n/**\n * Perform validation for multipleOf and divisibleBy, which are essentially the same.\n * @param instance\n * @param schema\n * @param validationType\n * @param errorMessage\n * @returns {String|null}\n */\nvar validateMultipleOfOrDivisbleBy = function validateMultipleOfOrDivisbleBy (instance, schema, options, ctx, validationType, errorMessage) {\n if (!this.types.number(instance)) return;\n\n var validationArgument = schema[validationType];\n if (validationArgument == 0) {\n throw new SchemaError(validationType + \" cannot be zero\");\n }\n\n var result = new ValidatorResult(instance, schema, options, ctx);\n\n var instanceDecimals = helpers.getDecimalPlaces(instance);\n var divisorDecimals = helpers.getDecimalPlaces(validationArgument);\n\n var maxDecimals = Math.max(instanceDecimals , divisorDecimals);\n var multiplier = Math.pow(10, maxDecimals);\n\n if (Math.round(instance * multiplier) % Math.round(validationArgument * multiplier) !== 0) {\n result.addError({\n name: validationType,\n argument: validationArgument,\n message: errorMessage + JSON.stringify(validationArgument),\n });\n }\n\n return result;\n};\n\n/**\n * Validates divisibleBy when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.multipleOf = function validateMultipleOf (instance, schema, options, ctx) {\n return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"multipleOf\", \"is not a multiple of (divisible by) \");\n};\n\n/**\n * Validates multipleOf when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.divisibleBy = function validateDivisibleBy (instance, schema, options, ctx) {\n return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"divisibleBy\", \"is not divisible by (multiple of) \");\n};\n\n/**\n * Validates whether the instance value is present.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.required = function validateRequired (instance, schema, options, ctx) {\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (instance === undefined && schema.required === true) {\n // A boolean form is implemented for reverse-compatibility with schemas written against older drafts\n result.addError({\n name: 'required',\n message: \"is required\",\n });\n } else if (this.types.object(instance) && Array.isArray(schema.required)) {\n schema.required.forEach(function(n){\n if(getEnumerableProperty(instance, n)===undefined){\n result.addError({\n name: 'required',\n argument: n,\n message: \"requires property \" + JSON.stringify(n),\n });\n }\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value matches the regular expression, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.pattern = function validatePattern (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var pattern = schema.pattern;\n try {\n var regexp = new RegExp(pattern, 'u');\n } catch(_e) {\n // In the event the stricter handling causes an error, fall back on the forgiving handling\n // DEPRECATED\n regexp = new RegExp(pattern);\n }\n if (!instance.match(regexp)) {\n result.addError({\n name: 'pattern',\n argument: schema.pattern,\n message: \"does not match pattern \" + JSON.stringify(schema.pattern.toString()),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is of a certain defined format or a custom\n * format.\n * The following formats are supported for string types:\n * - date-time\n * - date\n * - time\n * - ip-address\n * - ipv6\n * - uri\n * - color\n * - host-name\n * - alpha\n * - alpha-numeric\n * - utc-millisec\n * @param instance\n * @param schema\n * @param [options]\n * @param [ctx]\n * @return {String|null}\n */\nvalidators.format = function validateFormat (instance, schema, options, ctx) {\n if (instance===undefined) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!result.disableFormat && !helpers.isFormat(instance, schema.format, this)) {\n result.addError({\n name: 'format',\n argument: schema.format,\n message: \"does not conform to the \" + JSON.stringify(schema.format) + \" format\",\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at least of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minLength = function validateMinLength (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n var length = instance.length - (hsp ? hsp.length : 0);\n if (!(length >= schema.minLength)) {\n result.addError({\n name: 'minLength',\n argument: schema.minLength,\n message: \"does not meet minimum length of \" + schema.minLength,\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at most of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxLength = function validateMaxLength (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n // TODO if this was already computed in \"minLength\", use that value instead of re-computing\n var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n var length = instance.length - (hsp ? hsp.length : 0);\n if (!(length <= schema.maxLength)) {\n result.addError({\n name: 'maxLength',\n argument: schema.maxLength,\n message: \"does not meet maximum length of \" + schema.maxLength,\n });\n }\n return result;\n};\n\n/**\n * Validates whether instance contains at least a minimum number of items, when the instance is an Array.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minItems = function validateMinItems (instance, schema, options, ctx) {\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!(instance.length >= schema.minItems)) {\n result.addError({\n name: 'minItems',\n argument: schema.minItems,\n message: \"does not meet minimum length of \" + schema.minItems,\n });\n }\n return result;\n};\n\n/**\n * Validates whether instance contains no more than a maximum number of items, when the instance is an Array.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxItems = function validateMaxItems (instance, schema, options, ctx) {\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!(instance.length <= schema.maxItems)) {\n result.addError({\n name: 'maxItems',\n argument: schema.maxItems,\n message: \"does not meet maximum length of \" + schema.maxItems,\n });\n }\n return result;\n};\n\n/**\n * Deep compares arrays for duplicates\n * @param v\n * @param i\n * @param a\n * @private\n * @return {boolean}\n */\nfunction testArrays (v, i, a) {\n var j, len = a.length;\n for (j = i + 1, len; j < len; j++) {\n if (helpers.deepCompareStrict(v, a[j])) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Validates whether there are no duplicates, when the instance is an Array.\n * @param instance\n * @return {String|null}\n */\nvalidators.uniqueItems = function validateUniqueItems (instance, schema, options, ctx) {\n if (schema.uniqueItems!==true) return;\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!instance.every(testArrays)) {\n result.addError({\n name: 'uniqueItems',\n message: \"contains duplicate item\",\n });\n }\n return result;\n};\n\n/**\n * Validate for the presence of dependency properties, if the instance is an object.\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {null|ValidatorResult}\n */\nvalidators.dependencies = function validateDependencies (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n for (var property in schema.dependencies) {\n if (instance[property] === undefined) {\n continue;\n }\n var dep = schema.dependencies[property];\n var childContext = ctx.makeChild(dep, property);\n if (typeof dep == 'string') {\n dep = [dep];\n }\n if (Array.isArray(dep)) {\n dep.forEach(function (prop) {\n if (instance[prop] === undefined) {\n result.addError({\n // FIXME there's two different \"dependencies\" errors here with slightly different outputs\n // Can we make these the same? Or should we create different error types?\n name: 'dependencies',\n argument: childContext.propertyPath,\n message: \"property \" + prop + \" not found, required by \" + childContext.propertyPath,\n });\n }\n });\n } else {\n var res = this.validateSchema(instance, dep, options, childContext);\n if(result.instance !== res.instance) result.instance = res.instance;\n if (res && res.errors.length) {\n result.addError({\n name: 'dependencies',\n argument: childContext.propertyPath,\n message: \"does not meet dependency required by \" + childContext.propertyPath,\n });\n result.importErrors(res);\n }\n }\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is one of the enumerated values.\n *\n * @param instance\n * @param schema\n * @return {ValidatorResult|null}\n */\nvalidators['enum'] = function validateEnum (instance, schema, options, ctx) {\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema['enum'])) {\n throw new SchemaError(\"enum expects an array\", schema);\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!schema['enum'].some(helpers.deepCompareStrict.bind(null, instance))) {\n result.addError({\n name: 'enum',\n argument: schema['enum'],\n message: \"is not one of enum values: \" + schema['enum'].map(String).join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance exactly matches a given value\n *\n * @param instance\n * @param schema\n * @return {ValidatorResult|null}\n */\nvalidators['const'] = function validateEnum (instance, schema, options, ctx) {\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!helpers.deepCompareStrict(schema['const'], instance)) {\n result.addError({\n name: 'const',\n argument: schema['const'],\n message: \"does not exactly match expected constant: \" + schema['const'],\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance if of a prohibited type.\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {null|ValidatorResult}\n */\nvalidators.not = validators.disallow = function validateNot (instance, schema, options, ctx) {\n var self = this;\n if(instance===undefined) return null;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var notTypes = schema.not || schema.disallow;\n if(!notTypes) return null;\n if(!Array.isArray(notTypes)) notTypes=[notTypes];\n notTypes.forEach(function (type) {\n if (self.testType(instance, schema, options, ctx, type)) {\n var id = type && (type.$id || type.id);\n var schemaId = id || type;\n result.addError({\n name: 'not',\n argument: schemaId,\n message: \"is of prohibited type \" + schemaId,\n });\n }\n });\n return result;\n};\n\nmodule.exports = attribute;\n","'use strict';\n\nvar uri = require('url');\n\nvar ValidationError = exports.ValidationError = function ValidationError (message, instance, schema, path, name, argument) {\n if(Array.isArray(path)){\n this.path = path;\n this.property = path.reduce(function(sum, item){\n return sum + makeSuffix(item);\n }, 'instance');\n }else if(path !== undefined){\n this.property = path;\n }\n if (message) {\n this.message = message;\n }\n if (schema) {\n var id = schema.$id || schema.id;\n this.schema = id || schema;\n }\n if (instance !== undefined) {\n this.instance = instance;\n }\n this.name = name;\n this.argument = argument;\n this.stack = this.toString();\n};\n\nValidationError.prototype.toString = function toString() {\n return this.property + ' ' + this.message;\n};\n\nvar ValidatorResult = exports.ValidatorResult = function ValidatorResult(instance, schema, options, ctx) {\n this.instance = instance;\n this.schema = schema;\n this.options = options;\n this.path = ctx.path;\n this.propertyPath = ctx.propertyPath;\n this.errors = [];\n this.throwError = options && options.throwError;\n this.throwFirst = options && options.throwFirst;\n this.throwAll = options && options.throwAll;\n this.disableFormat = options && options.disableFormat === true;\n};\n\nValidatorResult.prototype.addError = function addError(detail) {\n var err;\n if (typeof detail == 'string') {\n err = new ValidationError(detail, this.instance, this.schema, this.path);\n } else {\n if (!detail) throw new Error('Missing error detail');\n if (!detail.message) throw new Error('Missing error message');\n if (!detail.name) throw new Error('Missing validator type');\n err = new ValidationError(detail.message, this.instance, this.schema, this.path, detail.name, detail.argument);\n }\n\n this.errors.push(err);\n if (this.throwFirst) {\n throw new ValidatorResultError(this);\n }else if(this.throwError){\n throw err;\n }\n return err;\n};\n\nValidatorResult.prototype.importErrors = function importErrors(res) {\n if (typeof res == 'string' || (res && res.validatorType)) {\n this.addError(res);\n } else if (res && res.errors) {\n this.errors = this.errors.concat(res.errors);\n }\n};\n\nfunction stringizer (v,i){\n return i+': '+v.toString()+'\\n';\n}\nValidatorResult.prototype.toString = function toString(res) {\n return this.errors.map(stringizer).join('');\n};\n\nObject.defineProperty(ValidatorResult.prototype, \"valid\", { get: function() {\n return !this.errors.length;\n} });\n\nmodule.exports.ValidatorResultError = ValidatorResultError;\nfunction ValidatorResultError(result) {\n if(Error.captureStackTrace){\n Error.captureStackTrace(this, ValidatorResultError);\n }\n this.instance = result.instance;\n this.schema = result.schema;\n this.options = result.options;\n this.errors = result.errors;\n}\nValidatorResultError.prototype = new Error();\nValidatorResultError.prototype.constructor = ValidatorResultError;\nValidatorResultError.prototype.name = \"Validation Error\";\n\n/**\n * Describes a problem with a Schema which prevents validation of an instance\n * @name SchemaError\n * @constructor\n */\nvar SchemaError = exports.SchemaError = function SchemaError (msg, schema) {\n this.message = msg;\n this.schema = schema;\n Error.call(this, msg);\n Error.captureStackTrace(this, SchemaError);\n};\nSchemaError.prototype = Object.create(Error.prototype,\n {\n constructor: {value: SchemaError, enumerable: false},\n name: {value: 'SchemaError', enumerable: false},\n });\n\nvar SchemaContext = exports.SchemaContext = function SchemaContext (schema, options, path, base, schemas) {\n this.schema = schema;\n this.options = options;\n if(Array.isArray(path)){\n this.path = path;\n this.propertyPath = path.reduce(function(sum, item){\n return sum + makeSuffix(item);\n }, 'instance');\n }else{\n this.propertyPath = path;\n }\n this.base = base;\n this.schemas = schemas;\n};\n\nSchemaContext.prototype.resolve = function resolve (target) {\n return uri.resolve(this.base, target);\n};\n\nSchemaContext.prototype.makeChild = function makeChild(schema, propertyName){\n var path = (propertyName===undefined) ? this.path : this.path.concat([propertyName]);\n var id = schema.$id || schema.id;\n var base = uri.resolve(this.base, id||'');\n var ctx = new SchemaContext(schema, this.options, path, base, Object.create(this.schemas));\n if(id && !ctx.schemas[base]){\n ctx.schemas[base] = schema;\n }\n return ctx;\n};\n\nvar FORMAT_REGEXPS = exports.FORMAT_REGEXPS = {\n // 7.3.1. Dates, Times, and Duration\n 'date-time': /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])[tT ](2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])(\\.\\d+)?([zZ]|[+-]([0-5][0-9]):(60|[0-5][0-9]))$/,\n 'date': /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])$/,\n 'time': /^(2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])$/,\n 'duration': /P(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S)|\\d+(D|M(\\d+D)?|Y(\\d+M(\\d+D)?)?)(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S))?|\\d+W)/i,\n\n // 7.3.2. Email Addresses\n // TODO: fix the email production\n 'email': /^(?:[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+\\.)*[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!\\.)){0,61}[a-zA-Z0-9]?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\\[(?:(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\]))$/,\n 'idn-email': /^(\"(?:[!#-\\[\\]-\\u{10FFFF}]|\\\\[\\t -\\u{10FFFF}])*\"|[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*)@([!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*|\\[[!-Z\\^-\\u{10FFFF}]*\\])$/u,\n\n // 7.3.3. Hostnames\n\n // 7.3.4. IP Addresses\n 'ip-address': /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,\n // FIXME whitespace is invalid\n 'ipv6': /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/,\n\n // 7.3.5. Resource Identifiers\n // TODO: A more accurate regular expression for \"uri\" goes:\n // [A-Za-z][+\\-.0-9A-Za-z]*:((/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?)?#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])|/?%[0-9A-Fa-f]{2}|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*(#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?)?\n 'uri': /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n 'uri-reference': /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/,\n 'iri': /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n 'iri-reference': /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~-\\u{10FFFF}]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~-\\u{10FFFF}])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/u,\n 'uuid': /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n\n // 7.3.6. uri-template\n 'uri-template': /(%[0-9a-f]{2}|[!#$&(-;=?@\\[\\]_a-z~]|\\{[!#&+,./;=?@|]?(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?(,(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?)*\\})*/iu,\n\n // 7.3.7. JSON Pointers\n 'json-pointer': /^(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*$/iu,\n 'relative-json-pointer': /^\\d+(#|(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*)$/iu,\n\n // hostname regex from: http://stackoverflow.com/a/1420225/5628\n 'hostname': /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n 'host-name': /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n\n 'utc-millisec': function (input) {\n return (typeof input === 'string') && parseFloat(input) === parseInt(input, 10) && !isNaN(input);\n },\n\n // 7.3.8. regex\n 'regex': function (input) {\n var result = true;\n try {\n new RegExp(input);\n } catch (e) {\n result = false;\n }\n return result;\n },\n\n // Other definitions\n // \"style\" was removed from JSON Schema in draft-4 and is deprecated\n 'style': /[\\r\\n\\t ]*[^\\r\\n\\t ][^:]*:[\\r\\n\\t ]*[^\\r\\n\\t ;]*[\\r\\n\\t ]*;?/,\n // \"color\" was removed from JSON Schema in draft-4 and is deprecated\n 'color': /^(#?([0-9A-Fa-f]{3}){1,2}\\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\)))$/,\n 'phone': /^\\+(?:[0-9] ?){6,14}[0-9]$/,\n 'alpha': /^[a-zA-Z]+$/,\n 'alphanumeric': /^[a-zA-Z0-9]+$/,\n};\n\nFORMAT_REGEXPS.regexp = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.pattern = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.ipv4 = FORMAT_REGEXPS['ip-address'];\n\nexports.isFormat = function isFormat (input, format, validator) {\n if (typeof input === 'string' && FORMAT_REGEXPS[format] !== undefined) {\n if (FORMAT_REGEXPS[format] instanceof RegExp) {\n return FORMAT_REGEXPS[format].test(input);\n }\n if (typeof FORMAT_REGEXPS[format] === 'function') {\n return FORMAT_REGEXPS[format](input);\n }\n } else if (validator && validator.customFormats &&\n typeof validator.customFormats[format] === 'function') {\n return validator.customFormats[format](input);\n }\n return true;\n};\n\nvar makeSuffix = exports.makeSuffix = function makeSuffix (key) {\n key = key.toString();\n // This function could be capable of outputting valid a ECMAScript string, but the\n // resulting code for testing which form to use would be tens of thousands of characters long\n // That means this will use the name form for some illegal forms\n if (!key.match(/[.\\s\\[\\]]/) && !key.match(/^[\\d]/)) {\n return '.' + key;\n }\n if (key.match(/^\\d+$/)) {\n return '[' + key + ']';\n }\n return '[' + JSON.stringify(key) + ']';\n};\n\nexports.deepCompareStrict = function deepCompareStrict (a, b) {\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n return a.every(function (v, i) {\n return deepCompareStrict(a[i], b[i]);\n });\n }\n if (typeof a === 'object') {\n if (!a || !b) {\n return a === b;\n }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every(function (v) {\n return deepCompareStrict(a[v], b[v]);\n });\n }\n return a === b;\n};\n\nfunction deepMerger (target, dst, e, i) {\n if (typeof e === 'object') {\n dst[i] = deepMerge(target[i], e);\n } else {\n if (target.indexOf(e) === -1) {\n dst.push(e);\n }\n }\n}\n\nfunction copyist (src, dst, key) {\n dst[key] = src[key];\n}\n\nfunction copyistWithDeepMerge (target, src, dst, key) {\n if (typeof src[key] !== 'object' || !src[key]) {\n dst[key] = src[key];\n }\n else {\n if (!target[key]) {\n dst[key] = src[key];\n } else {\n dst[key] = deepMerge(target[key], src[key]);\n }\n }\n}\n\nfunction deepMerge (target, src) {\n var array = Array.isArray(src);\n var dst = array && [] || {};\n\n if (array) {\n target = target || [];\n dst = dst.concat(target);\n src.forEach(deepMerger.bind(null, target, dst));\n } else {\n if (target && typeof target === 'object') {\n Object.keys(target).forEach(copyist.bind(null, target, dst));\n }\n Object.keys(src).forEach(copyistWithDeepMerge.bind(null, target, src, dst));\n }\n\n return dst;\n}\n\nmodule.exports.deepMerge = deepMerge;\n\n/**\n * Validates instance against the provided schema\n * Implements URI+JSON Pointer encoding, e.g. \"%7e\"=\"~0\"=>\"~\", \"~1\"=\"%2f\"=>\"/\"\n * @param o\n * @param s The path to walk o along\n * @return any\n */\nexports.objectGetPath = function objectGetPath(o, s) {\n var parts = s.split('/').slice(1);\n var k;\n while (typeof (k=parts.shift()) == 'string') {\n var n = decodeURIComponent(k.replace(/~0/,'~').replace(/~1/g,'/'));\n if (!(n in o)) return;\n o = o[n];\n }\n return o;\n};\n\nfunction pathEncoder (v) {\n return '/'+encodeURIComponent(v).replace(/~/g,'%7E');\n}\n/**\n * Accept an Array of property names and return a JSON Pointer URI fragment\n * @param Array a\n * @return {String}\n */\nexports.encodePath = function encodePointer(a){\n // ~ must be encoded explicitly because hacks\n // the slash is encoded by encodeURIComponent\n return a.map(pathEncoder).join('');\n};\n\n\n/**\n * Calculate the number of decimal places a number uses\n * We need this to get correct results out of multipleOf and divisibleBy\n * when either figure is has decimal places, due to IEEE-754 float issues.\n * @param number\n * @returns {number}\n */\nexports.getDecimalPlaces = function getDecimalPlaces(number) {\n\n var decimalPlaces = 0;\n if (isNaN(number)) return decimalPlaces;\n\n if (typeof number !== 'number') {\n number = Number(number);\n }\n\n var parts = number.toString().split('e');\n if (parts.length === 2) {\n if (parts[1][0] !== '-') {\n return decimalPlaces;\n } else {\n decimalPlaces = Number(parts[1].slice(1));\n }\n }\n\n var decimalParts = parts[0].split('.');\n if (decimalParts.length === 2) {\n decimalPlaces += decimalParts[1].length;\n }\n\n return decimalPlaces;\n};\n\nexports.isSchema = function isSchema(val){\n return (typeof val === 'object' && val) || (typeof val === 'boolean');\n};\n\n","'use strict';\n\nvar Validator = module.exports.Validator = require('./validator');\n\nmodule.exports.ValidatorResult = require('./helpers').ValidatorResult;\nmodule.exports.ValidatorResultError = require('./helpers').ValidatorResultError;\nmodule.exports.ValidationError = require('./helpers').ValidationError;\nmodule.exports.SchemaError = require('./helpers').SchemaError;\nmodule.exports.SchemaScanResult = require('./scan').SchemaScanResult;\nmodule.exports.scan = require('./scan').scan;\n\nmodule.exports.validate = function (instance, schema, options) {\n var v = new Validator();\n return v.validate(instance, schema, options);\n};\n","\"use strict\";\n\nvar urilib = require('url');\nvar helpers = require('./helpers');\n\nmodule.exports.SchemaScanResult = SchemaScanResult;\nfunction SchemaScanResult(found, ref){\n this.id = found;\n this.ref = ref;\n}\n\n/**\n * Adds a schema with a certain urn to the Validator instance.\n * @param string uri\n * @param object schema\n * @return {Object}\n */\nmodule.exports.scan = function scan(base, schema){\n function scanSchema(baseuri, schema){\n if(!schema || typeof schema!='object') return;\n // Mark all referenced schemas so we can tell later which schemas are referred to, but never defined\n if(schema.$ref){\n var resolvedUri = urilib.resolve(baseuri, schema.$ref);\n ref[resolvedUri] = ref[resolvedUri] ? ref[resolvedUri]+1 : 0;\n return;\n }\n var id = schema.$id || schema.id;\n var ourBase = id ? urilib.resolve(baseuri, id) : baseuri;\n if (ourBase) {\n // If there's no fragment, append an empty one\n if(ourBase.indexOf('#')<0) ourBase += '#';\n if(found[ourBase]){\n if(!helpers.deepCompareStrict(found[ourBase], schema)){\n throw new Error('Schema <'+ourBase+'> already exists with different definition');\n }\n return found[ourBase];\n }\n found[ourBase] = schema;\n // strip trailing fragment\n if(ourBase[ourBase.length-1]=='#'){\n found[ourBase.substring(0, ourBase.length-1)] = schema;\n }\n }\n scanArray(ourBase+'/items', (Array.isArray(schema.items)?schema.items:[schema.items]));\n scanArray(ourBase+'/extends', (Array.isArray(schema.extends)?schema.extends:[schema.extends]));\n scanSchema(ourBase+'/additionalItems', schema.additionalItems);\n scanObject(ourBase+'/properties', schema.properties);\n scanSchema(ourBase+'/additionalProperties', schema.additionalProperties);\n scanObject(ourBase+'/definitions', schema.definitions);\n scanObject(ourBase+'/patternProperties', schema.patternProperties);\n scanObject(ourBase+'/dependencies', schema.dependencies);\n scanArray(ourBase+'/disallow', schema.disallow);\n scanArray(ourBase+'/allOf', schema.allOf);\n scanArray(ourBase+'/anyOf', schema.anyOf);\n scanArray(ourBase+'/oneOf', schema.oneOf);\n scanSchema(ourBase+'/not', schema.not);\n }\n function scanArray(baseuri, schemas){\n if(!Array.isArray(schemas)) return;\n for(var i=0; i\", schema);\n }\n var subschema = helpers.objectGetPath(ctx.schemas[document], fragment.substr(1));\n if(subschema===undefined){\n throw new SchemaError(\"no such schema \" + fragment + \" located in <\" + document + \">\", schema);\n }\n return {subschema: subschema, switchSchema: switchSchema};\n};\n\n/**\n * Tests whether the instance if of a certain type.\n * @private\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @param type\n * @return {boolean}\n */\nValidator.prototype.testType = function validateType (instance, schema, options, ctx, type) {\n if(type===undefined){\n return;\n }else if(type===null){\n throw new SchemaError('Unexpected null in \"type\" keyword');\n }\n if (typeof this.types[type] == 'function') {\n return this.types[type].call(this, instance);\n }\n if (type && typeof type == 'object') {\n var res = this.validateSchema(instance, type, options, ctx);\n return res === undefined || !(res && res.errors.length);\n }\n // Undefined or properties not on the list are acceptable, same as not being defined\n return true;\n};\n\nvar types = Validator.prototype.types = {};\ntypes.string = function testString (instance) {\n return typeof instance == 'string';\n};\ntypes.number = function testNumber (instance) {\n // isFinite returns false for NaN, Infinity, and -Infinity\n return typeof instance == 'number' && isFinite(instance);\n};\ntypes.integer = function testInteger (instance) {\n return (typeof instance == 'number') && instance % 1 === 0;\n};\ntypes.boolean = function testBoolean (instance) {\n return typeof instance == 'boolean';\n};\ntypes.array = function testArray (instance) {\n return Array.isArray(instance);\n};\ntypes['null'] = function testNull (instance) {\n return instance === null;\n};\ntypes.date = function testDate (instance) {\n return instance instanceof Date;\n};\ntypes.any = function testAny (instance) {\n return true;\n};\ntypes.object = function testObject (instance) {\n // TODO: fix this - see #15\n return instance && (typeof instance === 'object') && !(Array.isArray(instance)) && !(instance instanceof Date);\n};\n\nmodule.exports = Validator;\n","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are prereleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If LT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fullDiff = fullDiff;\nexports.diffTemplate = diffTemplate;\nconst impl = require(\"./diff\");\nconst template_and_changeset_diff_merger_1 = require(\"./diff/template-and-changeset-diff-merger\");\nconst types = require(\"./diff/types\");\nconst util_1 = require(\"./diff/util\");\n__exportStar(require(\"./diff/types\"), exports);\nconst DIFF_HANDLERS = {\n AWSTemplateFormatVersion: (diff, oldValue, newValue) => diff.awsTemplateFormatVersion = impl.diffAttribute(oldValue, newValue),\n Description: (diff, oldValue, newValue) => diff.description = impl.diffAttribute(oldValue, newValue),\n Metadata: (diff, oldValue, newValue) => diff.metadata = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffMetadata)),\n Parameters: (diff, oldValue, newValue) => diff.parameters = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffParameter)),\n Mappings: (diff, oldValue, newValue) => diff.mappings = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffMapping)),\n Conditions: (diff, oldValue, newValue) => diff.conditions = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffCondition)),\n Transform: (diff, oldValue, newValue) => diff.transform = impl.diffAttribute(oldValue, newValue),\n Resources: (diff, oldValue, newValue) => diff.resources = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffResource)),\n Outputs: (diff, oldValue, newValue) => diff.outputs = new types.DifferenceCollection((0, util_1.diffKeyedEntities)(oldValue, newValue, impl.diffOutput)),\n};\n/**\n * Compare two CloudFormation templates and return semantic differences between them.\n *\n * @param currentTemplate - the current state of the stack.\n * @param newTemplate - the target state of the stack.\n * @param changeSet - the change set for this stack.\n *\n * @returns a +types.TemplateDiff+ object that represents the changes that will happen if\n * a stack which current state is described by +currentTemplate+ is updated with\n * the template +newTemplate+.\n */\nfunction fullDiff(currentTemplate, newTemplate, changeSet, isImport) {\n normalize(currentTemplate);\n normalize(newTemplate);\n const theDiff = diffTemplate(currentTemplate, newTemplate);\n if (changeSet) {\n // These methods mutate the state of theDiff, using the changeSet.\n const changeSetDiff = new template_and_changeset_diff_merger_1.TemplateAndChangeSetDiffMerger({ changeSet });\n theDiff.resources.forEachDifference((logicalId, change) => changeSetDiff.overrideDiffResourceChangeImpactWithChangeSetChangeImpact(logicalId, change));\n changeSetDiff.addImportInformationFromChangeset(theDiff.resources);\n }\n else if (isImport) {\n makeAllResourceChangesImports(theDiff);\n }\n return theDiff;\n}\nfunction diffTemplate(currentTemplate, newTemplate) {\n // Base diff\n const theDiff = calculateTemplateDiff(currentTemplate, newTemplate);\n // We're going to modify this in-place\n const newTemplateCopy = deepCopy(newTemplate);\n let didPropagateReferenceChanges;\n let diffWithReplacements;\n do {\n diffWithReplacements = calculateTemplateDiff(currentTemplate, newTemplateCopy);\n // Propagate replacements for replaced resources\n didPropagateReferenceChanges = false;\n if (diffWithReplacements.resources) {\n diffWithReplacements.resources.forEachDifference((logicalId, change) => {\n if (change.changeImpact === types.ResourceImpact.WILL_REPLACE) {\n if (propagateReplacedReferences(newTemplateCopy, logicalId)) {\n didPropagateReferenceChanges = true;\n }\n }\n });\n }\n } while (didPropagateReferenceChanges);\n // Copy \"replaced\" states from `diffWithReplacements` to `theDiff`.\n diffWithReplacements.resources\n .filter(r => isReplacement(r.changeImpact))\n .forEachDifference((logicalId, downstreamReplacement) => {\n const resource = theDiff.resources.get(logicalId);\n if (resource.changeImpact !== downstreamReplacement.changeImpact) {\n propagatePropertyReplacement(downstreamReplacement, resource);\n }\n });\n return theDiff;\n}\nfunction isReplacement(impact) {\n return impact === types.ResourceImpact.MAY_REPLACE || impact === types.ResourceImpact.WILL_REPLACE;\n}\n/**\n * For all properties in 'source' that have a \"replacement\" impact, propagate that impact to \"dest\"\n */\nfunction propagatePropertyReplacement(source, dest) {\n for (const [propertyName, diff] of Object.entries(source.propertyUpdates)) {\n if (diff.changeImpact && isReplacement(diff.changeImpact)) {\n // Use the propertydiff of source in target. The result of this happens to be clear enough.\n dest.setPropertyChange(propertyName, diff);\n }\n }\n}\nfunction calculateTemplateDiff(currentTemplate, newTemplate) {\n const differences = {};\n const unknown = {};\n for (const key of (0, util_1.unionOf)(Object.keys(currentTemplate), Object.keys(newTemplate)).sort()) {\n const oldValue = currentTemplate[key];\n const newValue = newTemplate[key];\n if ((0, util_1.deepEqual)(oldValue, newValue)) {\n continue;\n }\n const handler = DIFF_HANDLERS[key]\n || ((_diff, oldV, newV) => unknown[key] = impl.diffUnknown(oldV, newV));\n handler(differences, oldValue, newValue);\n }\n if (Object.keys(unknown).length > 0) {\n differences.unknown = new types.DifferenceCollection(unknown);\n }\n return new types.TemplateDiff(differences);\n}\n/**\n * Replace all references to the given logicalID on the given template, in-place\n *\n * Returns true if any references were replaced.\n */\nfunction propagateReplacedReferences(template, logicalId) {\n let ret = false;\n function recurse(obj) {\n if (Array.isArray(obj)) {\n obj.forEach(recurse);\n }\n if (typeof obj === 'object' && obj !== null) {\n if (!replaceReference(obj)) {\n Object.values(obj).forEach(recurse);\n }\n }\n }\n function replaceReference(obj) {\n const keys = Object.keys(obj);\n if (keys.length !== 1) {\n return false;\n }\n const key = keys[0];\n if (key === 'Ref') {\n if (obj.Ref === logicalId) {\n obj.Ref = logicalId + ' (replaced)';\n ret = true;\n }\n return true;\n }\n if (key.startsWith('Fn::')) {\n if (Array.isArray(obj[key]) && obj[key].length > 0 && obj[key][0] === logicalId) {\n obj[key][0] = logicalId + '(replaced)';\n ret = true;\n }\n return true;\n }\n return false;\n }\n recurse(template);\n return ret;\n}\nfunction deepCopy(x) {\n if (Array.isArray(x)) {\n return x.map(deepCopy);\n }\n if (typeof x === 'object' && x !== null) {\n const ret = {};\n for (const key of Object.keys(x)) {\n ret[key] = deepCopy(x[key]);\n }\n return ret;\n }\n return x;\n}\nfunction makeAllResourceChangesImports(diff) {\n diff.resources.forEachDifference((_logicalId, change) => {\n change.isImport = true;\n });\n}\nfunction normalize(template) {\n if (typeof template === 'object') {\n for (const key of (Object.keys(template ?? {}))) {\n if (key === 'Fn::GetAtt' && typeof template[key] === 'string') {\n template[key] = template[key].split('.');\n continue;\n }\n else if (key === 'DependsOn') {\n if (typeof template[key] === 'string') {\n template[key] = [template[key]];\n }\n else if (Array.isArray(template[key])) {\n template[key] = template[key].sort();\n }\n continue;\n }\n if (Array.isArray(template[key])) {\n for (const element of (template[key])) {\n normalize(element);\n }\n }\n else {\n normalize(template[key]);\n }\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYtdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSw0QkFxQkM7QUFFRCxvQ0F3Q0M7QUEzR0QsK0JBQStCO0FBQy9CLGtHQUEyRjtBQUMzRixzQ0FBc0M7QUFDdEMsc0NBQW9FO0FBRXBFLCtDQUE2QjtBQU83QixNQUFNLGFBQWEsR0FBb0I7SUFDckMsd0JBQXdCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3JELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDeEUsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUMzRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBQSx3QkFBaUIsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBQSx3QkFBaUIsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3JDLElBQUksQ0FBQyxR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SSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3RDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBTREsgaXMgb25seSB1c2VkIHRvIHJlZmVyZW5jZSBgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXRgLCBzbyB0aGUgU0RLIGlzIGFkZGVkIGFzIGEgZGV2RGVwZW5kZW5jeS5cbi8vIFRoZSBTREsgc2hvdWxkIG5vdCBtYWtlIG5ldHdvcmsgY2FsbHMgaGVyZVxuaW1wb3J0IHR5cGUgeyBEZXNjcmliZUNoYW5nZVNldE91dHB1dCBhcyBEZXNjcmliZUNoYW5nZVNldCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBpbXBsIGZyb20gJy4vZGlmZic7XG5pbXBvcnQgeyBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIgfSBmcm9tICcuL2RpZmYvdGVtcGxhdGUtYW5kLWNoYW5nZXNldC1kaWZmLW1lcmdlcic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL2RpZmYvdHlwZXMnO1xuaW1wb3J0IHsgZGVlcEVxdWFsLCBkaWZmS2V5ZWRFbnRpdGllcywgdW5pb25PZiB9IGZyb20gJy4vZGlmZi91dGlsJztcblxuZXhwb3J0ICogZnJvbSAnLi9kaWZmL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgPSBEZXNjcmliZUNoYW5nZVNldDtcblxudHlwZSBEaWZmSGFuZGxlciA9IChkaWZmOiB0eXBlcy5JVGVtcGxhdGVEaWZmLCBvbGRWYWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KSA9PiB2b2lkO1xudHlwZSBIYW5kbGVyUmVnaXN0cnkgPSB7IFtzZWN0aW9uOiBzdHJpbmddOiBEaWZmSGFuZGxlciB9O1xuXG5jb25zdCBESUZGX0hBTkRMRVJTOiBIYW5kbGVyUmVnaXN0cnkgPSB7XG4gIEFXU1RlbXBsYXRlRm9ybWF0VmVyc2lvbjogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLmF3c1RlbXBsYXRlRm9ybWF0VmVyc2lvbiA9IGltcGwuZGlmZkF0dHJpYnV0ZShvbGRWYWx1ZSwgbmV3VmFsdWUpLFxuICBEZXNjcmlwdGlvbjogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLmRlc2NyaXB0aW9uID0gaW1wbC5kaWZmQXR0cmlidXRlKG9sZFZhbHVlLCBuZXdWYWx1ZSksXG4gIE1ldGFkYXRhOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYubWV0YWRhdGEgPSBuZXcgdHlwZXMuRGlmZmVyZW5jZUNvbGxlY3Rpb24oZGlmZktleWVkRW50aXRpZXMob2xkVmFsdWUsIG5ld1ZhbHVlLCBpbXBsLmRpZmZNZXRhZGF0YSkpLFxuICBQYXJhbWV0ZXJzOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYucGFyYW1ldGVycyA9IG5ldyB0eXBlcy5EaWZmZXJlbmNlQ29sbGVjdGlvbihkaWZmS2V5ZWRFbnRpdGllcyhvbGRWYWx1ZSwgbmV3VmFsdWUsIGltcGwuZGlmZlBhcmFtZXRlcikpLFxuICBNYXBwaW5nczogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLm1hcHBpbmdzID0gbmV3IHR5cGVzLkRpZmZlcmVuY2VDb2xsZWN0aW9uKGRpZmZLZXllZEVudGl0aWVzKG9sZFZhbHVlLCBuZXdWYWx1ZSwgaW1wbC5kaWZmTWFwcGluZykpLFxuICBDb25kaXRpb25zOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYuY29uZGl0aW9ucyA9IG5ldyB0eXBlcy5EaWZmZXJlbmNlQ29sbGVjdGlvbihkaWZmS2V5ZWRFbnRpdGllcyhvbGRWYWx1ZSwgbmV3VmFsdWUsIGltcGwuZGlmZkNvbmRpdGlvbikpLFxuICBUcmFuc2Zvcm06IChkaWZmLCBvbGRWYWx1ZSwgbmV3VmFsdWUpID0+XG4gICAgZGlmZi50cmFuc2Zvcm0gPSBpbXBsLmRpZmZBdHRyaWJ1dGUob2xkVmFsdWUsIG5ld1ZhbHVlKSxcbiAgUmVzb3VyY2VzOiAoZGlmZiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PlxuICAgIGRpZmYucmVzb3VyY2VzID0gbmV3IHR5cGVzLkRpZmZlcmVuY2VDb2xsZWN0aW9uKGRpZmZLZXllZEVudGl0aWVzKG9sZFZhbHVlLCBuZXdWYWx1ZSwgaW1wbC5kaWZmUmVzb3VyY2UpKSxcbiAgT3V0cHV0czogKGRpZmYsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT5cbiAgICBkaWZmLm91dHB1dHMgPSBuZXcgdHlwZXMuRGlmZmVyZW5jZUNvbGxlY3Rpb24oZGlmZktleWVkRW50aXRpZXMob2xkVmFsdWUsIG5ld1ZhbHVlLCBpbXBsLmRpZmZPdXRwdXQpKSxcbn07XG5cbi8qKlxuICogQ29tcGFyZSB0d28gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVzIGFuZCByZXR1cm4gc2VtYW50aWMgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVtLlxuICpcbiAqIEBwYXJhbSBjdXJyZW50VGVtcGxhdGUgLSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gbmV3VGVtcGxhdGUgICAgIC0gdGhlIHRhcmdldCBzdGF0ZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gY2hhbmdlU2V0ICAgICAgIC0gdGhlIGNoYW5nZSBzZXQgZm9yIHRoaXMgc3RhY2suXG4gKlxuICogQHJldHVybnMgYSArdHlwZXMuVGVtcGxhdGVEaWZmKyBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBjaGFuZ2VzIHRoYXQgd2lsbCBoYXBwZW4gaWZcbiAqICAgICAgYSBzdGFjayB3aGljaCBjdXJyZW50IHN0YXRlIGlzIGRlc2NyaWJlZCBieSArY3VycmVudFRlbXBsYXRlKyBpcyB1cGRhdGVkIHdpdGhcbiAqICAgICAgdGhlIHRlbXBsYXRlICtuZXdUZW1wbGF0ZSsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmdWxsRGlmZihcbiAgY3VycmVudFRlbXBsYXRlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICBuZXdUZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQsXG4gIGlzSW1wb3J0PzogYm9vbGVhbixcbik6IHR5cGVzLlRlbXBsYXRlRGlmZiB7XG4gIG5vcm1hbGl6ZShjdXJyZW50VGVtcGxhdGUpO1xuICBub3JtYWxpemUobmV3VGVtcGxhdGUpO1xuICBjb25zdCB0aGVEaWZmID0gZGlmZlRlbXBsYXRlKGN1cnJlbnRUZW1wbGF0ZSwgbmV3VGVtcGxhdGUpO1xuICBpZiAoY2hhbmdlU2V0KSB7XG4gICAgLy8gVGhlc2UgbWV0aG9kcyBtdXRhdGUgdGhlIHN0YXRlIG9mIHRoZURpZmYsIHVzaW5nIHRoZSBjaGFuZ2VTZXQuXG4gICAgY29uc3QgY2hhbmdlU2V0RGlmZiA9IG5ldyBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIoeyBjaGFuZ2VTZXQgfSk7XG4gICAgdGhlRGlmZi5yZXNvdXJjZXMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZSkgPT5cbiAgICAgIGNoYW5nZVNldERpZmYub3ZlcnJpZGVEaWZmUmVzb3VyY2VDaGFuZ2VJbXBhY3RXaXRoQ2hhbmdlU2V0Q2hhbmdlSW1wYWN0KGxvZ2ljYWxJZCwgY2hhbmdlKSxcbiAgICApO1xuICAgIGNoYW5nZVNldERpZmYuYWRkSW1wb3J0SW5mb3JtYXRpb25Gcm9tQ2hhbmdlc2V0KHRoZURpZmYucmVzb3VyY2VzKTtcbiAgfSBlbHNlIGlmIChpc0ltcG9ydCkge1xuICAgIG1ha2VBbGxSZXNvdXJjZUNoYW5nZXNJbXBvcnRzKHRoZURpZmYpO1xuICB9XG5cbiAgcmV0dXJuIHRoZURpZmY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVGVtcGxhdGUoXG4gIGN1cnJlbnRUZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgbmV3VGVtcGxhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4pOiB0eXBlcy5UZW1wbGF0ZURpZmYge1xuICAvLyBCYXNlIGRpZmZcbiAgY29uc3QgdGhlRGlmZiA9IGNhbGN1bGF0ZVRlbXBsYXRlRGlmZihjdXJyZW50VGVtcGxhdGUsIG5ld1RlbXBsYXRlKTtcblxuICAvLyBXZSdyZSBnb2luZyB0byBtb2RpZnkgdGhpcyBpbi1wbGFjZVxuICBjb25zdCBuZXdUZW1wbGF0ZUNvcHkgPSBkZWVwQ29weShuZXdUZW1wbGF0ZSk7XG5cbiAgbGV0IGRpZFByb3BhZ2F0ZVJlZmVyZW5jZUNoYW5nZXM7XG4gIGxldCBkaWZmV2l0aFJlcGxhY2VtZW50cztcbiAgZG8ge1xuICAgIGRpZmZXaXRoUmVwbGFjZW1lbnRzID0gY2FsY3VsYXRlVGVtcGxhdGVEaWZmKGN1cnJlbnRUZW1wbGF0ZSwgbmV3VGVtcGxhdGVDb3B5KTtcblxuICAgIC8vIFByb3BhZ2F0ZSByZXBsYWNlbWVudHMgZm9yIHJlcGxhY2VkIHJlc291cmNlc1xuICAgIGRpZFByb3BhZ2F0ZVJlZmVyZW5jZUNoYW5nZXMgPSBmYWxzZTtcbiAgICBpZiAoZGlmZldpdGhSZXBsYWNlbWVudHMucmVzb3VyY2VzKSB7XG4gICAgICBkaWZmV2l0aFJlcGxhY2VtZW50cy5yZXNvdXJjZXMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZCwgY2hhbmdlKSA9PiB7XG4gICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlSW1wYWN0ID09PSB0eXBlcy5SZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0UpIHtcbiAgICAgICAgICBpZiAocHJvcGFnYXRlUmVwbGFjZWRSZWZlcmVuY2VzKG5ld1RlbXBsYXRlQ29weSwgbG9naWNhbElkKSkge1xuICAgICAgICAgICAgZGlkUHJvcGFnYXRlUmVmZXJlbmNlQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0gd2hpbGUgKGRpZFByb3BhZ2F0ZVJlZmVyZW5jZUNoYW5nZXMpO1xuXG4gIC8vIENvcHkgXCJyZXBsYWNlZFwiIHN0YXRlcyBmcm9tIGBkaWZmV2l0aFJlcGxhY2VtZW50c2AgdG8gYHRoZURpZmZgLlxuICBkaWZmV2l0aFJlcGxhY2VtZW50cy5yZXNvdXJjZXNcbiAgICAuZmlsdGVyKHIgPT4gaXNSZXBsYWNlbWVudChyIS5jaGFuZ2VJbXBhY3QpKVxuICAgIC5mb3JFYWNoRGlmZmVyZW5jZSgobG9naWNhbElkLCBkb3duc3RyZWFtUmVwbGFjZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gdGhlRGlmZi5yZXNvdXJjZXMuZ2V0KGxvZ2ljYWxJZCk7XG5cbiAgICAgIGlmIChyZXNvdXJjZS5jaGFuZ2VJbXBhY3QgIT09IGRvd25zdHJlYW1SZXBsYWNlbWVudC5jaGFuZ2VJbXBhY3QpIHtcbiAgICAgICAgcHJvcGFnYXRlUHJvcGVydHlSZXBsYWNlbWVudChkb3duc3RyZWFtUmVwbGFjZW1lbnQsIHJlc291cmNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICByZXR1cm4gdGhlRGlmZjtcbn1cblxuZnVuY3Rpb24gaXNSZXBsYWNlbWVudChpbXBhY3Q6IHR5cGVzLlJlc291cmNlSW1wYWN0KSB7XG4gIHJldHVybiBpbXBhY3QgPT09IHR5cGVzLlJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFIHx8IGltcGFjdCA9PT0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFO1xufVxuXG4vKipcbiAqIEZvciBhbGwgcHJvcGVydGllcyBpbiAnc291cmNlJyB0aGF0IGhhdmUgYSBcInJlcGxhY2VtZW50XCIgaW1wYWN0LCBwcm9wYWdhdGUgdGhhdCBpbXBhY3QgdG8gXCJkZXN0XCJcbiAqL1xuZnVuY3Rpb24gcHJvcGFnYXRlUHJvcGVydHlSZXBsYWNlbWVudChzb3VyY2U6IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZSwgZGVzdDogdHlwZXMuUmVzb3VyY2VEaWZmZXJlbmNlKSB7XG4gIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgZGlmZl0gb2YgT2JqZWN0LmVudHJpZXMoc291cmNlLnByb3BlcnR5VXBkYXRlcykpIHtcbiAgICBpZiAoZGlmZi5jaGFuZ2VJbXBhY3QgJiYgaXNSZXBsYWNlbWVudChkaWZmLmNoYW5nZUltcGFjdCkpIHtcbiAgICAgIC8vIFVzZSB0aGUgcHJvcGVydHlkaWZmIG9mIHNvdXJjZSBpbiB0YXJnZXQuIFRoZSByZXN1bHQgb2YgdGhpcyBoYXBwZW5zIHRvIGJlIGNsZWFyIGVub3VnaC5cbiAgICAgIGRlc3Quc2V0UHJvcGVydHlDaGFuZ2UocHJvcGVydHlOYW1lLCBkaWZmKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlVGVtcGxhdGVEaWZmKGN1cnJlbnRUZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgbmV3VGVtcGxhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB0eXBlcy5UZW1wbGF0ZURpZmYge1xuICBjb25zdCBkaWZmZXJlbmNlczogdHlwZXMuSVRlbXBsYXRlRGlmZiA9IHt9O1xuICBjb25zdCB1bmtub3duOiB7IFtrZXk6IHN0cmluZ106IHR5cGVzLkRpZmZlcmVuY2U8YW55PiB9ID0ge307XG4gIGZvciAoY29uc3Qga2V5IG9mIHVuaW9uT2YoT2JqZWN0LmtleXMoY3VycmVudFRlbXBsYXRlKSwgT2JqZWN0LmtleXMobmV3VGVtcGxhdGUpKS5zb3J0KCkpIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IGN1cnJlbnRUZW1wbGF0ZVtrZXldO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gbmV3VGVtcGxhdGVba2V5XTtcbiAgICBpZiAoZGVlcEVxdWFsKG9sZFZhbHVlLCBuZXdWYWx1ZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBoYW5kbGVyOiBEaWZmSGFuZGxlciA9IERJRkZfSEFORExFUlNba2V5XVxuICAgICAgICAgICAgICAgICAgfHwgKChfZGlmZiwgb2xkViwgbmV3VikgPT4gdW5rbm93bltrZXldID0gaW1wbC5kaWZmVW5rbm93bihvbGRWLCBuZXdWKSk7XG4gICAgaGFuZGxlcihkaWZmZXJlbmNlcywgb2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgfVxuICBpZiAoT2JqZWN0LmtleXModW5rbm93bikubGVuZ3RoID4gMCkge1xuICAgIGRpZmZlcmVuY2VzLnVua25vd24gPSBuZXcgdHlwZXMuRGlmZmVyZW5jZUNvbGxlY3Rpb24odW5rbm93bik7XG4gIH1cblxuICByZXR1cm4gbmV3IHR5cGVzLlRlbXBsYXRlRGlmZihkaWZmZXJlbmNlcyk7XG59XG5cbi8qKlxuICogUmVwbGFjZSBhbGwgcmVmZXJlbmNlcyB0byB0aGUgZ2l2ZW4gbG9naWNhbElEIG9uIHRoZSBnaXZlbiB0ZW1wbGF0ZSwgaW4tcGxhY2VcbiAqXG4gKiBSZXR1cm5zIHRydWUgaWYgYW55IHJlZmVyZW5jZXMgd2VyZSByZXBsYWNlZC5cbiAqL1xuZnVuY3Rpb24gcHJvcGFnYXRlUmVwbGFjZWRSZWZlcmVuY2VzKHRlbXBsYXRlOiBvYmplY3QsIGxvZ2ljYWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGxldCByZXQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiByZWN1cnNlKG9iajogYW55KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgb2JqLmZvckVhY2gocmVjdXJzZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xuICAgICAgaWYgKCFyZXBsYWNlUmVmZXJlbmNlKG9iaikpIHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhvYmopLmZvckVhY2gocmVjdXJzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVwbGFjZVJlZmVyZW5jZShvYmo6IGFueSkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBrZXlzWzBdO1xuXG4gICAgaWYgKGtleSA9PT0gJ1JlZicpIHtcbiAgICAgIGlmIChvYmouUmVmID09PSBsb2dpY2FsSWQpIHtcbiAgICAgICAgb2JqLlJlZiA9IGxvZ2ljYWxJZCArICcgKHJlcGxhY2VkKSc7XG4gICAgICAgIHJldCA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0ZuOjonKSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqW2tleV0pICYmIG9ialtrZXldLmxlbmd0aCA+IDAgJiYgb2JqW2tleV1bMF0gPT09IGxvZ2ljYWxJZCkge1xuICAgICAgICBvYmpba2V5XVswXSA9IGxvZ2ljYWxJZCArICcocmVwbGFjZWQpJztcbiAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJlY3Vyc2UodGVtcGxhdGUpO1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBkZWVwQ29weSh4OiBhbnkpOiBhbnkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lm1hcChkZWVwQ29weSk7XG4gIH1cblxuICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnICYmIHggIT09IG51bGwpIHtcbiAgICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHgpKSB7XG4gICAgICByZXRba2V5XSA9IGRlZXBDb3B5KHhba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXR1cm4geDtcbn1cblxuZnVuY3Rpb24gbWFrZUFsbFJlc291cmNlQ2hhbmdlc0ltcG9ydHMoZGlmZjogdHlwZXMuVGVtcGxhdGVEaWZmKSB7XG4gIGRpZmYucmVzb3VyY2VzLmZvckVhY2hEaWZmZXJlbmNlKChfbG9naWNhbElkOiBzdHJpbmcsIGNoYW5nZTogdHlwZXMuUmVzb3VyY2VEaWZmZXJlbmNlKSA9PiB7XG4gICAgY2hhbmdlLmlzSW1wb3J0ID0gdHJ1ZTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZSh0ZW1wbGF0ZTogYW55KSB7XG4gIGlmICh0eXBlb2YgdGVtcGxhdGUgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgKE9iamVjdC5rZXlzKHRlbXBsYXRlID8/IHt9KSkpIHtcbiAgICAgIGlmIChrZXkgPT09ICdGbjo6R2V0QXR0JyAmJiB0eXBlb2YgdGVtcGxhdGVba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGVtcGxhdGVba2V5XSA9IHRlbXBsYXRlW2tleV0uc3BsaXQoJy4nKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0RlcGVuZHNPbicpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0ZW1wbGF0ZVtrZXldID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRlbXBsYXRlW2tleV0gPSBbdGVtcGxhdGVba2V5XV07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0ZW1wbGF0ZVtrZXldKSkge1xuICAgICAgICAgIHRlbXBsYXRlW2tleV0gPSB0ZW1wbGF0ZVtrZXldLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGVtcGxhdGVba2V5XSkpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mICh0ZW1wbGF0ZVtrZXldKSkge1xuICAgICAgICAgIG5vcm1hbGl6ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9ybWFsaXplKHRlbXBsYXRlW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diffAttribute = diffAttribute;\nexports.diffCondition = diffCondition;\nexports.diffMapping = diffMapping;\nexports.diffMetadata = diffMetadata;\nexports.diffOutput = diffOutput;\nexports.diffParameter = diffParameter;\nexports.diffResource = diffResource;\nexports.diffUnknown = diffUnknown;\nconst types = require(\"./types\");\nconst util_1 = require(\"./util\");\nfunction diffAttribute(oldValue, newValue) {\n return new types.Difference(_asString(oldValue), _asString(newValue));\n}\nfunction diffCondition(oldValue, newValue) {\n return new types.ConditionDifference(oldValue, newValue);\n}\nfunction diffMapping(oldValue, newValue) {\n return new types.MappingDifference(oldValue, newValue);\n}\nfunction diffMetadata(oldValue, newValue) {\n return new types.MetadataDifference(oldValue, newValue);\n}\nfunction diffOutput(oldValue, newValue) {\n return new types.OutputDifference(oldValue, newValue);\n}\nfunction diffParameter(oldValue, newValue) {\n return new types.ParameterDifference(oldValue, newValue);\n}\nfunction diffResource(oldValue, newValue, logicalId) {\n // Fn::ForEach entries are arrays, not standard {Type, Properties} resource objects.\n // Synthesize a virtual resource type so isDifferent works correctly.\n if (logicalId && logicalId.startsWith('Fn::ForEach::')) {\n const forEachType = 'Fn::ForEach';\n return new types.ResourceDifference(oldValue, newValue, {\n resourceType: { oldType: oldValue ? forEachType : undefined, newType: newValue ? forEachType : undefined },\n propertyDiffs: {},\n otherDiffs: !(0, util_1.deepEqual)(oldValue, newValue) ? { Value: new types.Difference(oldValue, newValue) } : {},\n });\n }\n const resourceType = {\n oldType: oldValue && oldValue.Type,\n newType: newValue && newValue.Type,\n };\n let propertyDiffs = {};\n let otherDiffs = {};\n if (resourceType.oldType !== undefined && resourceType.oldType === resourceType.newType) {\n // Only makes sense to inspect deeper if the types stayed the same\n const impl = (0, util_1.loadResourceModel)(resourceType.oldType);\n propertyDiffs = (0, util_1.diffKeyedEntities)(oldValue.Properties, newValue.Properties, (oldVal, newVal, key) => _diffProperty(oldVal, newVal, key, impl));\n otherDiffs = (0, util_1.diffKeyedEntities)(oldValue, newValue, _diffOther);\n delete otherDiffs.Properties;\n }\n return new types.ResourceDifference(oldValue, newValue, {\n resourceType, propertyDiffs, otherDiffs,\n });\n function _diffProperty(oldV, newV, key, resourceSpec) {\n let changeImpact = types.ResourceImpact.NO_CHANGE;\n const spec = resourceSpec?.properties?.[key];\n if (spec && !(0, util_1.deepEqual)(oldV, newV)) {\n switch (spec.causesReplacement) {\n case 'yes':\n changeImpact = types.ResourceImpact.WILL_REPLACE;\n break;\n case 'maybe':\n changeImpact = types.ResourceImpact.MAY_REPLACE;\n break;\n default:\n // In those cases, whatever is the current value is what we should keep\n changeImpact = types.ResourceImpact.WILL_UPDATE;\n }\n }\n return new types.PropertyDifference(oldV, newV, { changeImpact });\n }\n function _diffOther(oldV, newV) {\n return new types.Difference(oldV, newV);\n }\n}\nfunction diffUnknown(oldValue, newValue) {\n return new types.Difference(oldValue, newValue);\n}\n/**\n * Coerces a given value to +string | undefined+.\n *\n * @param value - the value to be coerced.\n *\n * @returns +undefined+ if +value+ is +null+ or +undefined+,\n * +value+ if it is a +string+,\n * a compact JSON representation of +value+ otherwise.\n */\nfunction _asString(value) {\n if (value == null) {\n return undefined;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNDQUVDO0FBRUQsc0NBRUM7QUFFRCxrQ0FFQztBQUVELG9DQUVDO0FBRUQsZ0NBRUM7QUFFRCxzQ0FFQztBQUVELG9DQTBEQztBQUVELGtDQUVDO0FBekZELGlDQUFpQztBQUNqQyxpQ0FBeUU7QUFFekUsU0FBZ0IsYUFBYSxDQUFDLFFBQWEsRUFBRSxRQUFhO0lBQ3hELE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFTLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLFFBQXlCLEVBQUUsUUFBeUI7SUFDaEYsT0FBTyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxRQUF1QixFQUFFLFFBQXVCO0lBQzFFLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsUUFBd0IsRUFBRSxRQUF3QjtJQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLFFBQXNCLEVBQUUsUUFBc0I7SUFDdkUsT0FBTyxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxRQUF5QixFQUFFLFFBQXlCO0lBQ2hGLE9BQU8sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FB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QUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLFFBQWEsRUFBRSxRQUFhO0lBQ3RELE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxLQUFVO0lBQzNCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzb3VyY2UgfSBmcm9tICdAYXdzLWNkay9zZXJ2aWNlLXNwZWMtdHlwZXMnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBkZWVwRXF1YWwsIGRpZmZLZXllZEVudGl0aWVzLCBsb2FkUmVzb3VyY2VNb2RlbCB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmQXR0cmlidXRlKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpOiB0eXBlcy5EaWZmZXJlbmNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IHR5cGVzLkRpZmZlcmVuY2U8c3RyaW5nPihfYXNTdHJpbmcob2xkVmFsdWUpLCBfYXNTdHJpbmcobmV3VmFsdWUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDb25kaXRpb24ob2xkVmFsdWU6IHR5cGVzLkNvbmRpdGlvbiwgbmV3VmFsdWU6IHR5cGVzLkNvbmRpdGlvbik6IHR5cGVzLkNvbmRpdGlvbkRpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IHR5cGVzLkNvbmRpdGlvbkRpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZNYXBwaW5nKG9sZFZhbHVlOiB0eXBlcy5NYXBwaW5nLCBuZXdWYWx1ZTogdHlwZXMuTWFwcGluZyk6IHR5cGVzLk1hcHBpbmdEaWZmZXJlbmNlIHtcbiAgcmV0dXJuIG5ldyB0eXBlcy5NYXBwaW5nRGlmZmVyZW5jZShvbGRWYWx1ZSwgbmV3VmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlmZk1ldGFkYXRhKG9sZFZhbHVlOiB0eXBlcy5NZXRhZGF0YSwgbmV3VmFsdWU6IHR5cGVzLk1ldGFkYXRhKTogdHlwZXMuTWV0YWRhdGFEaWZmZXJlbmNlIHtcbiAgcmV0dXJuIG5ldyB0eXBlcy5NZXRhZGF0YURpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZPdXRwdXQob2xkVmFsdWU6IHR5cGVzLk91dHB1dCwgbmV3VmFsdWU6IHR5cGVzLk91dHB1dCk6IHR5cGVzLk91dHB1dERpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IHR5cGVzLk91dHB1dERpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZQYXJhbWV0ZXIob2xkVmFsdWU6IHR5cGVzLlBhcmFtZXRlciwgbmV3VmFsdWU6IHR5cGVzLlBhcmFtZXRlcik6IHR5cGVzLlBhcmFtZXRlckRpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IHR5cGVzLlBhcmFtZXRlckRpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZSZXNvdXJjZShvbGRWYWx1ZT86IHR5cGVzLlJlc291cmNlLCBuZXdWYWx1ZT86IHR5cGVzLlJlc291cmNlLCBsb2dpY2FsSWQ/OiBzdHJpbmcpOiB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2Uge1xuICAvLyBGbjo6Rm9yRWFjaCBlbnRyaWVzIGFyZSBhcnJheXMsIG5vdCBzdGFuZGFyZCB7VHlwZSwgUHJvcGVydGllc30gcmVzb3VyY2Ugb2JqZWN0cy5cbiAgLy8gU3ludGhlc2l6ZSBhIHZpcnR1YWwgcmVzb3VyY2UgdHlwZSBzbyBpc0RpZmZlcmVudCB3b3JrcyBjb3JyZWN0bHkuXG4gIGlmIChsb2dpY2FsSWQgJiYgbG9naWNhbElkLnN0YXJ0c1dpdGgoJ0ZuOjpGb3JFYWNoOjonKSkge1xuICAgIGNvbnN0IGZvckVhY2hUeXBlID0gJ0ZuOjpGb3JFYWNoJztcbiAgICByZXR1cm4gbmV3IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZShvbGRWYWx1ZSwgbmV3VmFsdWUsIHtcbiAgICAgIHJlc291cmNlVHlwZTogeyBvbGRUeXBlOiBvbGRWYWx1ZSA/IGZvckVhY2hUeXBlIDogdW5kZWZpbmVkLCBuZXdUeXBlOiBuZXdWYWx1ZSA/IGZvckVhY2hUeXBlIDogdW5kZWZpbmVkIH0sXG4gICAgICBwcm9wZXJ0eURpZmZzOiB7fSxcbiAgICAgIG90aGVyRGlmZnM6ICFkZWVwRXF1YWwob2xkVmFsdWUsIG5ld1ZhbHVlKSA/IHsgVmFsdWU6IG5ldyB0eXBlcy5EaWZmZXJlbmNlKG9sZFZhbHVlLCBuZXdWYWx1ZSkgfSA6IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VUeXBlID0ge1xuICAgIG9sZFR5cGU6IG9sZFZhbHVlICYmIG9sZFZhbHVlLlR5cGUsXG4gICAgbmV3VHlwZTogbmV3VmFsdWUgJiYgbmV3VmFsdWUuVHlwZSxcbiAgfTtcbiAgbGV0IHByb3BlcnR5RGlmZnM6IHsgW2tleTogc3RyaW5nXTogdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfSA9IHt9O1xuICBsZXQgb3RoZXJEaWZmczogeyBba2V5OiBzdHJpbmddOiB0eXBlcy5EaWZmZXJlbmNlPGFueT4gfSA9IHt9O1xuXG4gIGlmIChyZXNvdXJjZVR5cGUub2xkVHlwZSAhPT0gdW5kZWZpbmVkICYmIHJlc291cmNlVHlwZS5vbGRUeXBlID09PSByZXNvdXJjZVR5cGUubmV3VHlwZSkge1xuICAgIC8vIE9ubHkgbWFrZXMgc2Vuc2UgdG8gaW5zcGVjdCBkZWVwZXIgaWYgdGhlIHR5cGVzIHN0YXllZCB0aGUgc2FtZVxuICAgIGNvbnN0IGltcGwgPSBsb2FkUmVzb3VyY2VNb2RlbChyZXNvdXJjZVR5cGUub2xkVHlwZSk7XG4gICAgcHJvcGVydHlEaWZmcyA9IGRpZmZLZXllZEVudGl0aWVzKG9sZFZhbHVlIS5Qcm9wZXJ0aWVzLFxuICAgICAgbmV3VmFsdWUhLlByb3BlcnRpZXMsXG4gICAgICAob2xkVmFsLCBuZXdWYWwsIGtleSkgPT4gX2RpZmZQcm9wZXJ0eShvbGRWYWwsIG5ld1ZhbCwga2V5LCBpbXBsKSk7XG5cbiAgICBvdGhlckRpZmZzID0gZGlmZktleWVkRW50aXRpZXMob2xkVmFsdWUsIG5ld1ZhbHVlLCBfZGlmZk90aGVyKTtcbiAgICBkZWxldGUgb3RoZXJEaWZmcy5Qcm9wZXJ0aWVzO1xuICB9XG5cbiAgcmV0dXJuIG5ldyB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlLCB7XG4gICAgcmVzb3VyY2VUeXBlLCBwcm9wZXJ0eURpZmZzLCBvdGhlckRpZmZzLFxuICB9KTtcblxuICBmdW5jdGlvbiBfZGlmZlByb3BlcnR5KG9sZFY6IGFueSwgbmV3VjogYW55LCBrZXk6IHN0cmluZywgcmVzb3VyY2VTcGVjPzogUmVzb3VyY2UpIHtcbiAgICBsZXQgY2hhbmdlSW1wYWN0ID0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuTk9fQ0hBTkdFO1xuXG4gICAgY29uc3Qgc3BlYyA9IHJlc291cmNlU3BlYz8ucHJvcGVydGllcz8uW2tleV07XG4gICAgaWYgKHNwZWMgJiYgIWRlZXBFcXVhbChvbGRWLCBuZXdWKSkge1xuICAgICAgc3dpdGNoIChzcGVjLmNhdXNlc1JlcGxhY2VtZW50KSB7XG4gICAgICAgIGNhc2UgJ3llcyc6XG4gICAgICAgICAgY2hhbmdlSW1wYWN0ID0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtYXliZSc6XG4gICAgICAgICAgY2hhbmdlSW1wYWN0ID0gdHlwZXMuUmVzb3VyY2VJbXBhY3QuTUFZX1JFUExBQ0U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHdoYXRldmVyIGlzIHRoZSBjdXJyZW50IHZhbHVlIGlzIHdoYXQgd2Ugc2hvdWxkIGtlZXBcbiAgICAgICAgICBjaGFuZ2VJbXBhY3QgPSB0eXBlcy5SZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IHR5cGVzLlByb3BlcnR5RGlmZmVyZW5jZShvbGRWLCBuZXdWLCB7IGNoYW5nZUltcGFjdCB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9kaWZmT3RoZXIob2xkVjogYW55LCBuZXdWOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IHR5cGVzLkRpZmZlcmVuY2Uob2xkViwgbmV3Vik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZVbmtub3duKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpOiB0eXBlcy5EaWZmZXJlbmNlPGFueT4ge1xuICByZXR1cm4gbmV3IHR5cGVzLkRpZmZlcmVuY2Uob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbn1cblxuLyoqXG4gKiBDb2VyY2VzIGEgZ2l2ZW4gdmFsdWUgdG8gK3N0cmluZyB8IHVuZGVmaW5lZCsuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gdGhlIHZhbHVlIHRvIGJlIGNvZXJjZWQuXG4gKlxuICogQHJldHVybnMgK3VuZGVmaW5lZCsgaWYgK3ZhbHVlKyBpcyArbnVsbCsgb3IgK3VuZGVmaW5lZCssXG4gKiAgICAgICt2YWx1ZSsgaWYgaXQgaXMgYSArc3RyaW5nKyxcbiAqICAgICAgYSBjb21wYWN0IEpTT04gcmVwcmVzZW50YXRpb24gb2YgK3ZhbHVlKyBvdGhlcndpc2UuXG4gKi9cbmZ1bmN0aW9uIF9hc1N0cmluZyh2YWx1ZTogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIHN0cmluZztcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mkParsed = mkParsed;\nexports.mkUnparseable = mkUnparseable;\nfunction mkParsed(value) {\n return { type: 'parsed', value };\n}\nfunction mkUnparseable(value) {\n return {\n type: 'unparseable',\n repr: typeof value === 'string' ? value : JSON.stringify(value),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF5YmUtcGFyc2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWF5YmUtcGFyc2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsNEJBRUM7QUFFRCxzQ0FLQztBQVRELFNBQWdCLFFBQVEsQ0FBSSxLQUFRO0lBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ25DLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUNoRSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSB2YWx1ZSB0aGF0IG1heSBvciBtYXkgbm90IGJlIHBhcnNlYWJsZVxuICovXG5leHBvcnQgdHlwZSBNYXliZVBhcnNlZDxBPiA9IFBhcnNlZDxBPiB8IFVucGFyc2VhYmxlQ2ZuO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZDxBPiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdwYXJzZWQnO1xuICByZWFkb25seSB2YWx1ZTogQTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnBhcnNlYWJsZUNmbiB7XG4gIHJlYWRvbmx5IHR5cGU6ICd1bnBhcnNlYWJsZSc7XG4gIHJlYWRvbmx5IHJlcHI6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1rUGFyc2VkPEE+KHZhbHVlOiBBKTogUGFyc2VkPEE+IHtcbiAgcmV0dXJuIHsgdHlwZTogJ3BhcnNlZCcsIHZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBta1VucGFyc2VhYmxlKHZhbHVlOiBhbnkpOiBVbnBhcnNlYWJsZUNmbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3VucGFyc2VhYmxlJyxcbiAgICByZXByOiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSksXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplateAndChangeSetDiffMerger = void 0;\nconst types = require(\"../diff/types\");\n/**\n * The purpose of this class is to include differences from the ChangeSet to differences in the TemplateDiff.\n */\nclass TemplateAndChangeSetDiffMerger {\n static determineChangeSetReplacementMode(propertyChange) {\n if (propertyChange.Target?.RequiresRecreation === undefined) {\n // We can't determine if the resource will be replaced or not. That's what conditionally means.\n return 'Conditionally';\n }\n if (propertyChange.Target.RequiresRecreation === 'Always') {\n switch (propertyChange.Evaluation) {\n case 'Static':\n return 'Always';\n case 'Dynamic':\n // If Evaluation is 'Dynamic', then this may cause replacement, or it may not.\n // see 'Replacement': https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ResourceChange.html\n return 'Conditionally';\n }\n }\n return propertyChange.Target.RequiresRecreation;\n }\n constructor(props) {\n this.changeSet = props.changeSet;\n this.changeSetResources = props.changeSetResources ?? this.convertDescribeChangeSetOutputToChangeSetResources(this.changeSet);\n }\n /**\n * Read resources from the changeSet, extracting information into ChangeSetResources.\n */\n convertDescribeChangeSetOutputToChangeSetResources(changeSet) {\n const changeSetResources = {};\n for (const resourceChange of changeSet.Changes ?? []) {\n if (resourceChange.ResourceChange?.LogicalResourceId === undefined) {\n continue; // Being defensive, here.\n }\n const propertyReplacementModes = {};\n for (const propertyChange of resourceChange.ResourceChange.Details ?? []) { // Details is only included if resourceChange.Action === 'Modify'\n if (propertyChange.Target?.Attribute === 'Properties' && propertyChange.Target.Name) {\n propertyReplacementModes[propertyChange.Target.Name] = {\n replacementMode: TemplateAndChangeSetDiffMerger.determineChangeSetReplacementMode(propertyChange),\n };\n }\n }\n changeSetResources[resourceChange.ResourceChange.LogicalResourceId] = {\n resourceWasReplaced: resourceChange.ResourceChange.Replacement === 'True',\n resourceType: resourceChange.ResourceChange.ResourceType ?? TemplateAndChangeSetDiffMerger.UNKNOWN_RESOURCE_TYPE, // DescribeChangeSet doesn't promise to have the ResourceType...\n propertyReplacementModes: propertyReplacementModes,\n };\n }\n return changeSetResources;\n }\n /**\n * This is writing over the \"ChangeImpact\" that was computed from the template difference, and instead using the ChangeImpact that is included from the ChangeSet.\n * Using the ChangeSet ChangeImpact is more accurate. The ChangeImpact tells us what the consequence is of changing the field. If changing the field causes resource\n * replacement (e.g., changing the name of an IAM role requires deleting and replacing the role), then ChangeImpact is \"Always\".\n */\n overrideDiffResourceChangeImpactWithChangeSetChangeImpact(logicalId, change) {\n // resourceType getter throws an error if resourceTypeChanged\n if ((change.resourceTypeChanged === true) || change.resourceType?.includes('AWS::Serverless')) {\n // CFN applies the SAM transform before creating the changeset, so the changeset contains no information about SAM resources\n return;\n }\n change.forEachDifference((type, name, value) => {\n if (type === 'Property') {\n if (!this.changeSetResources[logicalId]) {\n value.changeImpact = types.ResourceImpact.NO_CHANGE;\n value.isDifferent = false;\n return;\n }\n const changingPropertyCausesResourceReplacement = (this.changeSetResources[logicalId].propertyReplacementModes ?? {})[name]?.replacementMode;\n switch (changingPropertyCausesResourceReplacement) {\n case 'Always':\n value.changeImpact = types.ResourceImpact.WILL_REPLACE;\n break;\n case 'Never':\n value.changeImpact = types.ResourceImpact.WILL_UPDATE;\n break;\n case 'Conditionally':\n value.changeImpact = types.ResourceImpact.MAY_REPLACE;\n break;\n case undefined:\n value.changeImpact = types.ResourceImpact.NO_CHANGE;\n value.isDifferent = false;\n break;\n // otherwise, defer to the changeImpact from the template diff\n }\n }\n else if (type === 'Other') {\n switch (name) {\n case 'Metadata':\n // we want to ignore metadata changes in the diff, so compare newValue against newValue.\n change.setOtherChange('Metadata', new types.Difference(value.newValue, value.newValue));\n break;\n }\n }\n });\n }\n addImportInformationFromChangeset(resourceDiffs) {\n const imports = this.findResourceImports();\n resourceDiffs.forEachDifference((logicalId, change) => {\n if (imports.includes(logicalId)) {\n change.isImport = true;\n }\n });\n }\n findResourceImports() {\n const importedResourceLogicalIds = [];\n for (const resourceChange of this.changeSet?.Changes ?? []) {\n if (resourceChange.ResourceChange?.Action === 'Import') {\n importedResourceLogicalIds.push(resourceChange.ResourceChange.LogicalResourceId);\n }\n }\n return importedResourceLogicalIds;\n }\n}\nexports.TemplateAndChangeSetDiffMerger = TemplateAndChangeSetDiffMerger;\n// If we somehow cannot find the resourceType, then we'll mark it as UNKNOWN, so that can be seen in the diff.\nTemplateAndChangeSetDiffMerger.UNKNOWN_RESOURCE_TYPE = 'UNKNOWN_RESOURCE_TYPE';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtYW5kLWNoYW5nZXNldC1kaWZmLW1lcmdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlbXBsYXRlLWFuZC1jaGFuZ2VzZXQtZGlmZi1tZXJnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsdUNBQXVDO0FBc0J2Qzs7R0FFRztBQUNILE1BQWEsOEJBQThCO0lBQ2xDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxjQUE2QztRQUMzRixJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUQsK0ZBQStGO1lBQy9GLE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUQsUUFBUSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xDLEtBQUssUUFBUTtvQkFDWCxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsS0FBSyxTQUFTO29CQUNaLDhFQUE4RTtvQkFDOUUsK0dBQStHO29CQUMvRyxPQUFPLGVBQWUsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxrQkFBNEMsQ0FBQztJQUM1RSxDQUFDO0lBUUQsWUFBWSxLQUEwQztRQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0RBQWtELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hJLENBQUM7SUFFRDs7T0FFRztJQUNLLGtEQUFrRCxDQUFDLFNBQWtDO1FBQzNGLE1BQU0sa0JBQWtCLEdBQTZCLEVBQUUsQ0FBQztRQUN4RCxLQUFLLE1BQU0sY0FBYyxJQUFJLFNBQVMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENB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QUFFLENBQUM7b0JBQ2IsS0FBSyxVQUFVO3dCQUNiLHdGQUF3Rjt3QkFDeEYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFTLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQ2hHLE1BQU07Z0JBQ1YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxpQ0FBaUMsQ0FBQyxhQUFtRjtRQUMxSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFpQixFQUFFLE1BQWdDLEVBQUUsRUFBRTtZQUN0RixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixNQUFNLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUN0QyxLQUFLLE1BQU0sY0FBYyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzNELElBQUksY0FBYyxDQUFDLGNBQWMsRUFBRSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZELDBCQUEwQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7O0FBOUhILHdFQStIQztBQTFHQyw4R0FBOEc7QUFDL0Ysb0RBQXFCLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgU0RLIGlzIG9ubHkgdXNlZCB0byByZWZlcmVuY2UgYERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0YCwgc28gdGhlIFNESyBpcyBhZGRlZCBhcyBhIGRldkRlcGVuZGVuY3kuXG4vLyBUaGUgU0RLIHNob3VsZCBub3QgbWFrZSBuZXR3b3JrIGNhbGxzIGhlcmVcbmltcG9ydCB0eXBlIHsgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgYXMgRGVzY3JpYmVDaGFuZ2VTZXQsIFJlc291cmNlQ2hhbmdlRGV0YWlsIGFzIFJDRCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi9kaWZmL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgPSBEZXNjcmliZUNoYW5nZVNldDtcbnR5cGUgQ2hhbmdlU2V0UmVzb3VyY2VDaGFuZ2VEZXRhaWwgPSBSQ0Q7XG5cbmludGVyZmFjZSBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXJPcHRpb25zIHtcbiAgLypcbiAgICogT25seSBzcGVjaWZpYWJsZSBmb3IgdGVzdGluZy4gT3RoZXJ3aXNlLCB0aGlzIGlzIHRoZSBkYXRhc3RydWN0dXJlIHRoYXQgdGhlIGNoYW5nZVNldCBpcyBjb252ZXJ0ZWQgaW50byBzb1xuICAgKiB0aGF0IHdlIG9ubHkgcGF5IGF0dGVudGlvbiB0byB0aGUgc3Vic2V0IG9mIGNoYW5nZVNldCBwcm9wZXJ0aWVzIHRoYXQgYXJlIHJlbGV2YW50IGZvciBjb21wdXRpbmcgdGhlIGRpZmYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGNoYW5nZVNldCBpcyBjb252ZXJ0ZWQgaW50byB0aGlzIGRhdGFzdHJ1Y3R1cmUuXG4gICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldFJlc291cmNlcz86IHR5cGVzLkNoYW5nZVNldFJlc291cmNlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXJQcm9wcyBleHRlbmRzIFRlbXBsYXRlQW5kQ2hhbmdlU2V0RGlmZk1lcmdlck9wdGlvbnMge1xuICAvKlxuICAgKiBUaGUgY2hhbmdlc2V0IHRoYXQgd2lsbCBiZSByZWFkIGFuZCBtZXJnZWQgaW50byB0aGUgdGVtcGxhdGUgZGlmZi5cbiAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0OiBEZXNjcmliZUNoYW5nZVNldE91dHB1dDtcbn1cblxuLyoqXG4gKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIGluY2x1ZGUgZGlmZmVyZW5jZXMgZnJvbSB0aGUgQ2hhbmdlU2V0IHRvIGRpZmZlcmVuY2VzIGluIHRoZSBUZW1wbGF0ZURpZmYuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIge1xuICBwdWJsaWMgc3RhdGljIGRldGVybWluZUNoYW5nZVNldFJlcGxhY2VtZW50TW9kZShwcm9wZXJ0eUNoYW5nZTogQ2hhbmdlU2V0UmVzb3VyY2VDaGFuZ2VEZXRhaWwpOiB0eXBlcy5SZXBsYWNlbWVudE1vZGVzIHtcbiAgICBpZiAocHJvcGVydHlDaGFuZ2UuVGFyZ2V0Py5SZXF1aXJlc1JlY3JlYXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gV2UgY2FuJ3QgZGV0ZXJtaW5lIGlmIHRoZSByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkIG9yIG5vdC4gVGhhdCdzIHdoYXQgY29uZGl0aW9uYWxseSBtZWFucy5cbiAgICAgIHJldHVybiAnQ29uZGl0aW9uYWxseSc7XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnR5Q2hhbmdlLlRhcmdldC5SZXF1aXJlc1JlY3JlYXRpb24gPT09ICdBbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHByb3BlcnR5Q2hhbmdlLkV2YWx1YXRpb24pIHtcbiAgICAgICAgY2FzZSAnU3RhdGljJzpcbiAgICAgICAgICByZXR1cm4gJ0Fsd2F5cyc7XG4gICAgICAgIGNhc2UgJ0R5bmFtaWMnOlxuICAgICAgICAgIC8vIElmIEV2YWx1YXRpb24gaXMgJ0R5bmFtaWMnLCB0aGVuIHRoaXMgbWF5IGNhdXNlIHJlcGxhY2VtZW50LCBvciBpdCBtYXkgbm90LlxuICAgICAgICAgIC8vIHNlZSAnUmVwbGFjZW1lbnQnOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmVzb3VyY2VDaGFuZ2UuaHRtbFxuICAgICAgICAgIHJldHVybiAnQ29uZGl0aW9uYWxseSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5Q2hhbmdlLlRhcmdldC5SZXF1aXJlc1JlY3JlYXRpb24gYXMgdHlwZXMuUmVwbGFjZW1lbnRNb2RlcztcbiAgfVxuXG4gIC8vIElmIHdlIHNvbWVob3cgY2Fubm90IGZpbmQgdGhlIHJlc291cmNlVHlwZSwgdGhlbiB3ZSdsbCBtYXJrIGl0IGFzIFVOS05PV04sIHNvIHRoYXQgY2FuIGJlIHNlZW4gaW4gdGhlIGRpZmYuXG4gIHByaXZhdGUgc3RhdGljIFVOS05PV05fUkVTT1VSQ0VfVFlQRSA9ICdVTktOT1dOX1JFU09VUkNFX1RZUEUnO1xuXG4gIHB1YmxpYyBjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY2hhbmdlU2V0UmVzb3VyY2VzOiB0eXBlcy5DaGFuZ2VTZXRSZXNvdXJjZXM7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFRlbXBsYXRlQW5kQ2hhbmdlU2V0RGlmZk1lcmdlclByb3BzKSB7XG4gICAgdGhpcy5jaGFuZ2VTZXQgPSBwcm9wcy5jaGFuZ2VTZXQ7XG4gICAgdGhpcy5jaGFuZ2VTZXRSZXNvdXJjZXMgPSBwcm9wcy5jaGFuZ2VTZXRSZXNvdXJjZXMgPz8gdGhpcy5jb252ZXJ0RGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXRUb0NoYW5nZVNldFJlc291cmNlcyh0aGlzLmNoYW5nZVNldCk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZCByZXNvdXJjZXMgZnJvbSB0aGUgY2hhbmdlU2V0LCBleHRyYWN0aW5nIGluZm9ybWF0aW9uIGludG8gQ2hhbmdlU2V0UmVzb3VyY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0RGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXRUb0NoYW5nZVNldFJlc291cmNlcyhjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0KTogdHlwZXMuQ2hhbmdlU2V0UmVzb3VyY2VzIHtcbiAgICBjb25zdCBjaGFuZ2VTZXRSZXNvdXJjZXM6IHR5cGVzLkNoYW5nZVNldFJlc291cmNlcyA9IHt9O1xuICAgIGZvciAoY29uc3QgcmVzb3VyY2VDaGFuZ2Ugb2YgY2hhbmdlU2V0LkNoYW5nZXMgPz8gW10pIHtcbiAgICAgIGlmIChyZXNvdXJjZUNoYW5nZS5SZXNvdXJjZUNoYW5nZT8uTG9naWNhbFJlc291cmNlSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250aW51ZTsgLy8gQmVpbmcgZGVmZW5zaXZlLCBoZXJlLlxuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXM6IHR5cGVzLlByb3BlcnR5UmVwbGFjZW1lbnRNb2RlTWFwID0ge307XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5Q2hhbmdlIG9mIHJlc291cmNlQ2hhbmdlLlJlc291cmNlQ2hhbmdlLkRldGFpbHMgPz8gW10pIHsgLy8gRGV0YWlscyBpcyBvbmx5IGluY2x1ZGVkIGlmIHJlc291cmNlQ2hhbmdlLkFjdGlvbiA9PT0gJ01vZGlmeSdcbiAgICAgICAgaWYgKHByb3BlcnR5Q2hhbmdlLlRhcmdldD8uQXR0cmlidXRlID09PSAnUHJvcGVydGllcycgJiYgcHJvcGVydHlDaGFuZ2UuVGFyZ2V0Lk5hbWUpIHtcbiAgICAgICAgICBwcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXNbcHJvcGVydHlDaGFuZ2UuVGFyZ2V0Lk5hbWVdID0ge1xuICAgICAgICAgICAgcmVwbGFjZW1lbnRNb2RlOiBUZW1wbGF0ZUFuZENoYW5nZVNldERpZmZNZXJnZXIuZGV0ZXJtaW5lQ2hhbmdlU2V0UmVwbGFjZW1lbnRNb2RlKHByb3BlcnR5Q2hhbmdlKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNoYW5nZVNldFJlc291cmNlc1tyZXNvdXJjZUNoYW5nZS5SZXNvdXJjZUNoYW5nZS5Mb2dpY2FsUmVzb3VyY2VJZF0gPSB7XG4gICAgICAgIHJlc291cmNlV2FzUmVwbGFjZWQ6IHJlc291cmNlQ2hhbmdlLlJlc291cmNlQ2hhbmdlLlJlcGxhY2VtZW50ID09PSAnVHJ1ZScsXG4gICAgICAgIHJlc291cmNlVHlwZTogcmVzb3VyY2VDaGFuZ2UuUmVzb3VyY2VDaGFuZ2UuUmVzb3VyY2VUeXBlID8/IFRlbXBsYXRlQW5kQ2hhbmdlU2V0RGlmZk1lcmdlci5VTktOT1dOX1JFU09VUkNFX1RZUEUsIC8vIERlc2NyaWJlQ2hhbmdlU2V0IGRvZXNuJ3QgcHJvbWlzZSB0byBoYXZlIHRoZSBSZXNvdXJjZVR5cGUuLi5cbiAgICAgICAgcHJvcGVydHlSZXBsYWNlbWVudE1vZGVzOiBwcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjaGFuZ2VTZXRSZXNvdXJjZXM7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyB3cml0aW5nIG92ZXIgdGhlIFwiQ2hhbmdlSW1wYWN0XCIgdGhhdCB3YXMgY29tcHV0ZWQgZnJvbSB0aGUgdGVtcGxhdGUgZGlmZmVyZW5jZSwgYW5kIGluc3RlYWQgdXNpbmcgdGhlIENoYW5nZUltcGFjdCB0aGF0IGlzIGluY2x1ZGVkIGZyb20gdGhlIENoYW5nZVNldC5cbiAgICogVXNpbmcgdGhlIENoYW5nZVNldCBDaGFuZ2VJbXBhY3QgaXMgbW9yZSBhY2N1cmF0ZS4gVGhlIENoYW5nZUltcGFjdCB0ZWxscyB1cyB3aGF0IHRoZSBjb25zZXF1ZW5jZSBpcyBvZiBjaGFuZ2luZyB0aGUgZmllbGQuIElmIGNoYW5naW5nIHRoZSBmaWVsZCBjYXVzZXMgcmVzb3VyY2VcbiAgICogcmVwbGFjZW1lbnQgKGUuZy4sIGNoYW5naW5nIHRoZSBuYW1lIG9mIGFuIElBTSByb2xlIHJlcXVpcmVzIGRlbGV0aW5nIGFuZCByZXBsYWNpbmcgdGhlIHJvbGUpLCB0aGVuIENoYW5nZUltcGFjdCBpcyBcIkFsd2F5c1wiLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlRGlmZlJlc291cmNlQ2hhbmdlSW1wYWN0V2l0aENoYW5nZVNldENoYW5nZUltcGFjdChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2UpIHtcbiAgICAvLyByZXNvdXJjZVR5cGUgZ2V0dGVyIHRocm93cyBhbiBlcnJvciBpZiByZXNvdXJjZVR5cGVDaGFuZ2VkXG4gICAgaWYgKChjaGFuZ2UucmVzb3VyY2VUeXBlQ2hhbmdlZCA9PT0gdHJ1ZSkgfHwgY2hhbmdlLnJlc291cmNlVHlwZT8uaW5jbHVkZXMoJ0FXUzo6U2VydmVybGVzcycpKSB7XG4gICAgICAvLyBDRk4gYXBwbGllcyB0aGUgU0FNIHRyYW5zZm9ybSBiZWZvcmUgY3JlYXRpbmcgdGhlIGNoYW5nZXNldCwgc28gdGhlIGNoYW5nZXNldCBjb250YWlucyBubyBpbmZvcm1hdGlvbiBhYm91dCBTQU0gcmVzb3VyY2VzXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNoYW5nZS5mb3JFYWNoRGlmZmVyZW5jZSgodHlwZTogJ1Byb3BlcnR5JyB8ICdPdGhlcicsIG5hbWU6IHN0cmluZywgdmFsdWU6IHR5cGVzLkRpZmZlcmVuY2U8YW55PiB8IHR5cGVzLlByb3BlcnR5RGlmZmVyZW5jZTxhbnk+KSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gJ1Byb3BlcnR5Jykge1xuICAgICAgICBpZiAoIXRoaXMuY2hhbmdlU2V0UmVzb3VyY2VzW2xvZ2ljYWxJZF0pIHtcbiAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTtcbiAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmlzRGlmZmVyZW50ID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhbmdpbmdQcm9wZXJ0eUNhdXNlc1Jlc291cmNlUmVwbGFjZW1lbnQgPSAodGhpcy5jaGFuZ2VTZXRSZXNvdXJjZXNbbG9naWNhbElkXS5wcm9wZXJ0eVJlcGxhY2VtZW50TW9kZXMgPz8ge30pW25hbWVdPy5yZXBsYWNlbWVudE1vZGU7XG4gICAgICAgIHN3aXRjaCAoY2hhbmdpbmdQcm9wZXJ0eUNhdXNlc1Jlc291cmNlUmVwbGFjZW1lbnQpIHtcbiAgICAgICAgICBjYXNlICdBbHdheXMnOlxuICAgICAgICAgICAgKHZhbHVlIGFzIHR5cGVzLlByb3BlcnR5RGlmZmVyZW5jZTxhbnk+KS5jaGFuZ2VJbXBhY3QgPSB0eXBlcy5SZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdOZXZlcic6XG4gICAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0LldJTExfVVBEQVRFO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnQ29uZGl0aW9uYWxseSc6XG4gICAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAodmFsdWUgYXMgdHlwZXMuUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pLmNoYW5nZUltcGFjdCA9IHR5cGVzLlJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTtcbiAgICAgICAgICAgICh2YWx1ZSBhcyB0eXBlcy5Qcm9wZXJ0eURpZmZlcmVuY2U8YW55PikuaXNEaWZmZXJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIC8vIG90aGVyd2lzZSwgZGVmZXIgdG8gdGhlIGNoYW5nZUltcGFjdCBmcm9tIHRoZSB0ZW1wbGF0ZSBkaWZmXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ090aGVyJykge1xuICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICBjYXNlICdNZXRhZGF0YSc6XG4gICAgICAgICAgICAvLyB3ZSB3YW50IHRvIGlnbm9yZSBtZXRhZGF0YSBjaGFuZ2VzIGluIHRoZSBkaWZmLCBzbyBjb21wYXJlIG5ld1ZhbHVlIGFnYWluc3QgbmV3VmFsdWUuXG4gICAgICAgICAgICBjaGFuZ2Uuc2V0T3RoZXJDaGFuZ2UoJ01ldGFkYXRhJywgbmV3IHR5cGVzLkRpZmZlcmVuY2U8c3RyaW5nPih2YWx1ZS5uZXdWYWx1ZSwgdmFsdWUubmV3VmFsdWUpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkSW1wb3J0SW5mb3JtYXRpb25Gcm9tQ2hhbmdlc2V0KHJlc291cmNlRGlmZnM6IHR5cGVzLkRpZmZlcmVuY2VDb2xsZWN0aW9uPHR5cGVzLlJlc291cmNlLCB0eXBlcy5SZXNvdXJjZURpZmZlcmVuY2U+KSB7XG4gICAgY29uc3QgaW1wb3J0cyA9IHRoaXMuZmluZFJlc291cmNlSW1wb3J0cygpO1xuICAgIHJlc291cmNlRGlmZnMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IHR5cGVzLlJlc291cmNlRGlmZmVyZW5jZSkgPT4ge1xuICAgICAgaWYgKGltcG9ydHMuaW5jbHVkZXMobG9naWNhbElkKSkge1xuICAgICAgICBjaGFuZ2UuaXNJbXBvcnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpbmRSZXNvdXJjZUltcG9ydHMoKTogKHN0cmluZyB8IHVuZGVmaW5lZClbXSB7XG4gICAgY29uc3QgaW1wb3J0ZWRSZXNvdXJjZUxvZ2ljYWxJZHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHJlc291cmNlQ2hhbmdlIG9mIHRoaXMuY2hhbmdlU2V0Py5DaGFuZ2VzID8/IFtdKSB7XG4gICAgICBpZiAocmVzb3VyY2VDaGFuZ2UuUmVzb3VyY2VDaGFuZ2U/LkFjdGlvbiA9PT0gJ0ltcG9ydCcpIHtcbiAgICAgICAgaW1wb3J0ZWRSZXNvdXJjZUxvZ2ljYWxJZHMucHVzaChyZXNvdXJjZUNoYW5nZS5SZXNvdXJjZUNoYW5nZS5Mb2dpY2FsUmVzb3VyY2VJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGltcG9ydGVkUmVzb3VyY2VMb2dpY2FsSWRzO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceDifference = exports.ResourceImpact = exports.ParameterDifference = exports.OutputDifference = exports.MetadataDifference = exports.MappingDifference = exports.ConditionDifference = exports.DifferenceCollection = exports.PropertyDifference = exports.Difference = exports.TemplateDiff = void 0;\nexports.isPropertyDifference = isPropertyDifference;\nconst assert_1 = require(\"assert\");\nconst service_spec_types_1 = require(\"@aws-cdk/service-spec-types\");\nconst util_1 = require(\"./util\");\nconst iam_changes_1 = require(\"../iam/iam-changes\");\nconst security_group_changes_1 = require(\"../network/security-group-changes\");\n/** Semantic differences between two CloudFormation templates. */\nclass TemplateDiff {\n constructor(args) {\n if (args.awsTemplateFormatVersion !== undefined) {\n this.awsTemplateFormatVersion = args.awsTemplateFormatVersion;\n }\n if (args.description !== undefined) {\n this.description = args.description;\n }\n if (args.transform !== undefined) {\n this.transform = args.transform;\n }\n this.conditions = args.conditions || new DifferenceCollection({});\n this.mappings = args.mappings || new DifferenceCollection({});\n this.metadata = args.metadata || new DifferenceCollection({});\n this.outputs = args.outputs || new DifferenceCollection({});\n this.parameters = args.parameters || new DifferenceCollection({});\n this.resources = args.resources || new DifferenceCollection({});\n this.unknown = args.unknown || new DifferenceCollection({});\n this.iamChanges = new iam_changes_1.IamChanges({\n propertyChanges: this.scrutinizablePropertyChanges(iam_changes_1.IamChanges.IamPropertyScrutinies),\n resourceChanges: this.scrutinizableResourceChanges(iam_changes_1.IamChanges.IamResourceScrutinies),\n });\n this.securityGroupChanges = new security_group_changes_1.SecurityGroupChanges({\n egressRulePropertyChanges: this.scrutinizablePropertyChanges([service_spec_types_1.PropertyScrutinyType.EgressRules]),\n ingressRulePropertyChanges: this.scrutinizablePropertyChanges([service_spec_types_1.PropertyScrutinyType.IngressRules]),\n egressRuleResourceChanges: this.scrutinizableResourceChanges([service_spec_types_1.ResourceScrutinyType.EgressRuleResource]),\n ingressRuleResourceChanges: this.scrutinizableResourceChanges([service_spec_types_1.ResourceScrutinyType.IngressRuleResource]),\n });\n }\n get differenceCount() {\n let count = 0;\n if (this.awsTemplateFormatVersion !== undefined) {\n count += 1;\n }\n if (this.description !== undefined) {\n count += 1;\n }\n if (this.transform !== undefined) {\n count += 1;\n }\n count += this.conditions.differenceCount;\n count += this.mappings.differenceCount;\n count += this.metadata.differenceCount;\n count += this.outputs.differenceCount;\n count += this.parameters.differenceCount;\n count += this.resources.differenceCount;\n count += this.unknown.differenceCount;\n return count;\n }\n get isEmpty() {\n return this.differenceCount === 0;\n }\n /**\n * Return true if any of the permissions objects involve a broadening of permissions\n */\n get permissionsBroadened() {\n return this.iamChanges.permissionsBroadened || this.securityGroupChanges.rulesAdded;\n }\n /**\n * Return true if any of the permissions objects have changed\n */\n get permissionsAnyChanges() {\n return this.iamChanges.hasChanges || this.securityGroupChanges.hasChanges;\n }\n /**\n * Return all property changes of a given scrutiny type\n *\n * We don't just look at property updates; we also look at resource additions and deletions (in which\n * case there is no further detail on property values), and resource type changes.\n */\n scrutinizablePropertyChanges(scrutinyTypes) {\n const ret = new Array();\n for (const [resourceLogicalId, resourceChange] of Object.entries(this.resources.changes)) {\n if (resourceChange.resourceTypeChanged) {\n // we ignore resource type changes here, and handle them in scrutinizableResourceChanges()\n continue;\n }\n if (!resourceChange.resourceType) {\n // We use resourceChange.resourceType to loadResourceModel so that we can inspect the\n // properties of a resource even after the resource is removed from the template.\n continue;\n }\n const newTypeProps = (0, util_1.loadResourceModel)(resourceChange.resourceType)?.properties || {};\n for (const [propertyName, prop] of Object.entries(newTypeProps)) {\n const propScrutinyType = prop.scrutinizable || service_spec_types_1.PropertyScrutinyType.None;\n if (scrutinyTypes.includes(propScrutinyType)) {\n ret.push({\n resourceLogicalId,\n propertyName,\n resourceType: resourceChange.resourceType,\n scrutinyType: propScrutinyType,\n oldValue: resourceChange.oldProperties?.[propertyName],\n newValue: resourceChange.newProperties?.[propertyName],\n });\n }\n }\n }\n return ret;\n }\n /**\n * Return all resource changes of a given scrutiny type\n *\n * We don't just look at resource updates; we also look at resource additions and deletions (in which\n * case there is no further detail on property values), and resource type changes.\n */\n scrutinizableResourceChanges(scrutinyTypes) {\n const ret = new Array();\n for (const [resourceLogicalId, resourceChange] of Object.entries(this.resources.changes)) {\n if (!resourceChange) {\n continue;\n }\n const commonProps = {\n oldProperties: resourceChange.oldProperties,\n newProperties: resourceChange.newProperties,\n resourceLogicalId,\n };\n // changes to the Type of resources can happen when migrating from CFN templates that use Transforms\n if (resourceChange.resourceTypeChanged) {\n // Treat as DELETE+ADD\n if (resourceChange.oldResourceType) {\n const oldResourceModel = (0, util_1.loadResourceModel)(resourceChange.oldResourceType);\n if (oldResourceModel && this.resourceIsScrutinizable(oldResourceModel, scrutinyTypes)) {\n ret.push({\n ...commonProps,\n newProperties: undefined,\n resourceType: resourceChange.oldResourceType,\n scrutinyType: oldResourceModel.scrutinizable,\n });\n }\n }\n if (resourceChange.newResourceType) {\n const newResourceModel = (0, util_1.loadResourceModel)(resourceChange.newResourceType);\n if (newResourceModel && this.resourceIsScrutinizable(newResourceModel, scrutinyTypes)) {\n ret.push({\n ...commonProps,\n oldProperties: undefined,\n resourceType: resourceChange.newResourceType,\n scrutinyType: newResourceModel.scrutinizable,\n });\n }\n }\n }\n else {\n if (!resourceChange.resourceType) {\n continue;\n }\n const resourceModel = (0, util_1.loadResourceModel)(resourceChange.resourceType);\n if (resourceModel && this.resourceIsScrutinizable(resourceModel, scrutinyTypes)) {\n ret.push({\n ...commonProps,\n resourceType: resourceChange.resourceType,\n scrutinyType: resourceModel.scrutinizable,\n });\n }\n }\n }\n return ret;\n }\n resourceIsScrutinizable(res, scrutinyTypes) {\n return scrutinyTypes.includes(res.scrutinizable || service_spec_types_1.ResourceScrutinyType.None);\n }\n}\nexports.TemplateDiff = TemplateDiff;\n/**\n * Models an entity that changed between two versions of a CloudFormation template.\n */\nclass Difference {\n /**\n * @param oldValue - the old value, cannot be equal (to the sense of +deepEqual+) to +newValue+.\n * @param newValue - the new value, cannot be equal (to the sense of +deepEqual+) to +oldValue+.\n */\n constructor(oldValue, newValue) {\n this.oldValue = oldValue;\n this.newValue = newValue;\n if (oldValue === undefined && newValue === undefined) {\n throw new assert_1.AssertionError({ message: 'oldValue and newValue are both undefined!' });\n }\n this.isDifferent = !(0, util_1.deepEqual)(oldValue, newValue);\n }\n /** @returns +true+ if the element is new to the template. */\n get isAddition() {\n return this.oldValue === undefined;\n }\n /** @returns +true+ if the element was removed from the template. */\n get isRemoval() {\n return this.newValue === undefined;\n }\n /** @returns +true+ if the element was already in the template and is updated. */\n get isUpdate() {\n return this.oldValue !== undefined\n && this.newValue !== undefined;\n }\n}\nexports.Difference = Difference;\nclass PropertyDifference extends Difference {\n constructor(oldValue, newValue, args) {\n super(oldValue, newValue);\n this.changeImpact = args.changeImpact;\n }\n}\nexports.PropertyDifference = PropertyDifference;\nclass DifferenceCollection {\n constructor(diffs) {\n this.diffs = diffs;\n }\n get changes() {\n return onlyChanges(this.diffs);\n }\n get differenceCount() {\n return Object.values(this.changes).length;\n }\n get(logicalId) {\n const ret = this.diffs[logicalId];\n if (!ret) {\n throw new Error(`No object with logical ID '${logicalId}'`);\n }\n return ret;\n }\n remove(logicalId) {\n delete this.diffs[logicalId];\n }\n get logicalIds() {\n return Object.keys(this.changes);\n }\n /**\n * Returns a new TemplateDiff which only contains changes for which `predicate`\n * returns `true`.\n */\n filter(predicate) {\n const newChanges = {};\n for (const id of Object.keys(this.changes)) {\n const diff = this.changes[id];\n if (predicate(diff)) {\n newChanges[id] = diff;\n }\n }\n return new DifferenceCollection(newChanges);\n }\n /**\n * Invokes `cb` for all changes in this collection.\n *\n * Changes will be sorted as follows:\n * - Removed\n * - Added\n * - Updated\n * - Others\n *\n */\n forEachDifference(cb) {\n const removed = new Array();\n const added = new Array();\n const updated = new Array();\n const others = new Array();\n for (const logicalId of this.logicalIds) {\n const change = this.changes[logicalId];\n if (change.isAddition) {\n added.push({ logicalId, change });\n }\n else if (change.isRemoval) {\n removed.push({ logicalId, change });\n }\n else if (change.isUpdate) {\n updated.push({ logicalId, change });\n }\n else if (change.isDifferent) {\n others.push({ logicalId, change });\n }\n }\n removed.forEach(v => cb(v.logicalId, v.change));\n added.forEach(v => cb(v.logicalId, v.change));\n updated.forEach(v => cb(v.logicalId, v.change));\n others.forEach(v => cb(v.logicalId, v.change));\n }\n}\nexports.DifferenceCollection = DifferenceCollection;\nclass ConditionDifference extends Difference {\n}\nexports.ConditionDifference = ConditionDifference;\nclass MappingDifference extends Difference {\n}\nexports.MappingDifference = MappingDifference;\nclass MetadataDifference extends Difference {\n}\nexports.MetadataDifference = MetadataDifference;\nclass OutputDifference extends Difference {\n}\nexports.OutputDifference = OutputDifference;\nclass ParameterDifference extends Difference {\n}\nexports.ParameterDifference = ParameterDifference;\nvar ResourceImpact;\n(function (ResourceImpact) {\n /** The existing physical resource will be updated */\n ResourceImpact[\"WILL_UPDATE\"] = \"WILL_UPDATE\";\n /** A new physical resource will be created */\n ResourceImpact[\"WILL_CREATE\"] = \"WILL_CREATE\";\n /** The existing physical resource will be replaced */\n ResourceImpact[\"WILL_REPLACE\"] = \"WILL_REPLACE\";\n /** The existing physical resource may be replaced */\n ResourceImpact[\"MAY_REPLACE\"] = \"MAY_REPLACE\";\n /** The existing physical resource will be destroyed */\n ResourceImpact[\"WILL_DESTROY\"] = \"WILL_DESTROY\";\n /** The existing physical resource will be removed from CloudFormation supervision */\n ResourceImpact[\"WILL_ORPHAN\"] = \"WILL_ORPHAN\";\n /** The existing physical resource will be added to CloudFormation supervision */\n ResourceImpact[\"WILL_IMPORT\"] = \"WILL_IMPORT\";\n /** There is no change in this resource */\n ResourceImpact[\"NO_CHANGE\"] = \"NO_CHANGE\";\n})(ResourceImpact || (exports.ResourceImpact = ResourceImpact = {}));\n/**\n * This function can be used as a reducer to obtain the resource-level impact of a list\n * of property-level impacts.\n * @param one - the current worst impact so far.\n * @param two - the new impact being considered (can be undefined, as we may not always be\n * able to determine some properties impact).\n */\nfunction worstImpact(one, two) {\n if (!two) {\n return one;\n }\n const badness = {\n [ResourceImpact.NO_CHANGE]: 0,\n [ResourceImpact.WILL_IMPORT]: 0,\n [ResourceImpact.WILL_UPDATE]: 1,\n [ResourceImpact.WILL_CREATE]: 2,\n [ResourceImpact.WILL_ORPHAN]: 3,\n [ResourceImpact.MAY_REPLACE]: 4,\n [ResourceImpact.WILL_REPLACE]: 5,\n [ResourceImpact.WILL_DESTROY]: 6,\n };\n return badness[one] > badness[two] ? one : two;\n}\n/**\n * Change to a single resource between two CloudFormation templates\n *\n * This class can be mutated after construction.\n */\nclass ResourceDifference {\n constructor(oldValue, newValue, args) {\n this.oldValue = oldValue;\n this.newValue = newValue;\n this.resourceTypes = args.resourceType;\n this.propertyDiffs = args.propertyDiffs;\n this.otherDiffs = args.otherDiffs;\n this.isAddition = oldValue === undefined;\n this.isRemoval = newValue === undefined;\n this.isImport = undefined;\n }\n get oldProperties() {\n return this.oldValue && this.oldValue.Properties;\n }\n get newProperties() {\n return this.newValue && this.newValue.Properties;\n }\n /**\n * Whether this resource was modified at all\n */\n get isDifferent() {\n return this.differenceCount > 0 || this.oldResourceType !== this.newResourceType;\n }\n /**\n * Whether the resource was updated in-place\n */\n get isUpdate() {\n return this.isDifferent && !this.isAddition && !this.isRemoval;\n }\n get oldResourceType() {\n return this.resourceTypes.oldType;\n }\n get newResourceType() {\n return this.resourceTypes.newType;\n }\n /**\n * All actual property updates\n */\n get propertyUpdates() {\n return onlyChanges(this.propertyDiffs);\n }\n /**\n * All actual \"other\" updates\n */\n get otherChanges() {\n return onlyChanges(this.otherDiffs);\n }\n /**\n * Return whether the resource type was changed in this diff\n *\n * This is not a valid operation in CloudFormation but to be defensive we're going\n * to be aware of it anyway.\n */\n get resourceTypeChanged() {\n return (this.resourceTypes.oldType !== undefined\n && this.resourceTypes.newType !== undefined\n && this.resourceTypes.oldType !== this.resourceTypes.newType);\n }\n /**\n * Return the resource type if it was unchanged\n *\n * If the resource type was changed, it's an error to call this.\n */\n get resourceType() {\n if (this.resourceTypeChanged) {\n throw new Error('Cannot get .resourceType, because the type was changed');\n }\n return this.resourceTypes.oldType || this.resourceTypes.newType;\n }\n /**\n * Replace a PropertyChange in this object\n *\n * This affects the property diff as it is summarized to users, but it DOES\n * NOT affect either the \"oldValue\" or \"newValue\" values; those still contain\n * the actual template values as provided by the user (they might still be\n * used for downstream processing).\n */\n setPropertyChange(propertyName, change) {\n this.propertyDiffs[propertyName] = change;\n }\n /**\n * Replace a OtherChange in this object\n *\n * This affects the property diff as it is summarized to users, but it DOES\n * NOT affect either the \"oldValue\" or \"newValue\" values; those still contain\n * the actual template values as provided by the user (they might still be\n * used for downstream processing).\n */\n setOtherChange(otherName, change) {\n this.otherDiffs[otherName] = change;\n }\n get changeImpact() {\n if (this.isImport) {\n return ResourceImpact.WILL_IMPORT;\n }\n // Check the Type first\n if (this.resourceTypes.oldType !== this.resourceTypes.newType) {\n if (this.resourceTypes.oldType === undefined) {\n return ResourceImpact.WILL_CREATE;\n }\n if (this.resourceTypes.newType === undefined) {\n return this.oldValue.DeletionPolicy === 'Retain'\n ? ResourceImpact.WILL_ORPHAN\n : ResourceImpact.WILL_DESTROY;\n }\n return ResourceImpact.WILL_REPLACE;\n }\n // Base impact (before we mix in the worst of the property impacts);\n // WILL_UPDATE if we have \"other\" changes, NO_CHANGE if there are no \"other\" changes.\n const baseImpact = Object.keys(this.otherChanges).length > 0 ? ResourceImpact.WILL_UPDATE : ResourceImpact.NO_CHANGE;\n return Object.values(this.propertyDiffs)\n .map(elt => elt.changeImpact)\n .reduce(worstImpact, baseImpact);\n }\n /**\n * Count of actual differences (not of elements)\n */\n get differenceCount() {\n return Object.values(this.propertyUpdates).length\n + Object.values(this.otherChanges).length;\n }\n /**\n * Invoke a callback for each actual difference\n */\n forEachDifference(cb) {\n for (const key of Object.keys(this.propertyUpdates).sort()) {\n cb('Property', key, this.propertyUpdates[key]);\n }\n for (const key of Object.keys(this.otherChanges).sort()) {\n cb('Other', key, this.otherDiffs[key]);\n }\n }\n}\nexports.ResourceDifference = ResourceDifference;\nfunction isPropertyDifference(diff) {\n return diff.changeImpact !== undefined;\n}\n/**\n * Filter a map of IDifferences down to only retain the actual changes\n */\nfunction onlyChanges(xs) {\n const ret = {};\n for (const [key, diff] of Object.entries(xs)) {\n if (diff.isDifferent) {\n ret[key] = diff;\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3dUJBLG9EQUVDO0FBMXVCRCxtQ0FBd0M7QUFFeEMsb0VBQXlGO0FBQ3pGLGlDQUFzRDtBQUN0RCxvREFBZ0Q7QUFDaEQsOEVBQXlFO0FBZ0N6RSxpRUFBaUU7QUFDakUsTUFBYSxZQUFZO0lBdUJ2QixZQUFZLElBQW1CO1FBQzdCLElBQUksSUFBSSxDQUFDLHdCQUF3QixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLG9C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Q0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXJ0aW9uRXJyb3IgfSBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSBhcyBSZXNvdXJjZU1vZGVsIH0gZnJvbSAnQGF3cy1jZGsvc2VydmljZS1zcGVjLXR5cGVzJztcbmltcG9ydCB7IFByb3BlcnR5U2NydXRpbnlUeXBlLCBSZXNvdXJjZVNjcnV0aW55VHlwZSB9IGZyb20gJ0Bhd3MtY2RrL3NlcnZpY2Utc3BlYy10eXBlcyc7XG5pbXBvcnQgeyBkZWVwRXF1YWwsIGxvYWRSZXNvdXJjZU1vZGVsIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IElhbUNoYW5nZXMgfSBmcm9tICcuLi9pYW0vaWFtLWNoYW5nZXMnO1xuaW1wb3J0IHsgU2VjdXJpdHlHcm91cENoYW5nZXMgfSBmcm9tICcuLi9uZXR3b3JrL3NlY3VyaXR5LWdyb3VwLWNoYW5nZXMnO1xuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eU1hcCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbmV4cG9ydCB0eXBlIENoYW5nZVNldFJlc291cmNlcyA9IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogQ2hhbmdlU2V0UmVzb3VyY2UgfTtcblxuLyoqXG4gKiBAcGFyYW0gYmVmb3JlQ29udGV4dCAtIGlzIHRoZSBCZWZvcmVDb250ZXh0IGZpZWxkIGZyb20gdGhlIENoYW5nZVNldC5SZXNvdXJjZUNoYW5nZS5CZWZvcmVDb250ZXh0LiBUaGlzIGlzIHRoZSBwYXJ0IG9mIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICogdGhhdCBkZWZpbmVzIHdoYXQgdGhlIHJlc291cmNlIGlzIGJlZm9yZSB0aGUgY2hhbmdlIGlzIGFwcGxpZWQ7IHRoYXQgaXMsIEJlZm9yZUNvbnRleHQgaXMgQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZS5SZXNvdXJjZXNbTG9naWNhbElkXSBiZWZvcmUgdGhlIENoYW5nZVNldCBpcyBleGVjdXRlZC5cbiAqXG4gKiBAcGFyYW0gYWZ0ZXJDb250ZXh0IC0gc2FtZSBhcyBiZWZvcmVDb250ZXh0IGJ1dCBmb3IgYWZ0ZXIgdGhlIGNoYW5nZSBpcyBtYWRlOyB0aGF0IGlzLCBBZnRlckNvbnRleHQgaXMgQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZS5SZXNvdXJjZXNbTG9naWNhbElkXSBhZnRlciB0aGUgQ2hhbmdlU2V0IGlzIGV4ZWN1dGVkLlxuICpcbiAqICAqIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiB3aGF0IGEgYmVmb3JlQ29udGV4dC9hZnRlckNvbnRleHQgbG9va3MgbGlrZTpcbiAqICAne1wiUHJvcGVydGllc1wiOntcIlZhbHVlXCI6XCJzZGZsa2phXCIsXCJUeXBlXCI6XCJTdHJpbmdcIixcIk5hbWVcIjpcIm15U3NtUGFyYW1ldGVyRnJvbVN0YWNrXCJ9LFwiTWV0YWRhdGFcIjp7XCJhd3M6Y2RrOnBhdGhcIjpcImNkay9teVNzbVBhcmFtZXRlci9SZXNvdXJjZVwifX0nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0UmVzb3VyY2Uge1xuICByZXNvdXJjZVdhc1JlcGxhY2VkOiBib29sZWFuO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJvcGVydHlSZXBsYWNlbWVudE1vZGVzOiBQcm9wZXJ0eVJlcGxhY2VtZW50TW9kZU1hcCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgUHJvcGVydHlSZXBsYWNlbWVudE1vZGVNYXAgPSB7XG4gIFtwcm9wZXJ0eU5hbWU6IHN0cmluZ106IHtcbiAgICByZXBsYWNlbWVudE1vZGU6IFJlcGxhY2VtZW50TW9kZXMgfCB1bmRlZmluZWQ7XG4gIH07XG59O1xuXG4vKipcbiAqICdBbHdheXMnIG1lYW5zIHRoYXQgY2hhbmdpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgd2lsbCBhbHdheXMgY2F1c2UgYSByZXNvdXJjZSByZXBsYWNlbWVudC4gTmV2ZXIgbWVhbnMgbmV2ZXIuIENvbmRpdGlvbmFsbHkgbWVhbnMgbWF5YmUuXG4gKi9cbmV4cG9ydCB0eXBlIFJlcGxhY2VtZW50TW9kZXMgPSAnQWx3YXlzJyB8ICdOZXZlcicgfCAnQ29uZGl0aW9uYWxseSc7XG5cbi8qKiBTZW1hbnRpYyBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZXMuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVEaWZmIGltcGxlbWVudHMgSVRlbXBsYXRlRGlmZiB7XG4gIHB1YmxpYyBhd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb24/OiBEaWZmZXJlbmNlPHN0cmluZz47XG4gIHB1YmxpYyBkZXNjcmlwdGlvbj86IERpZmZlcmVuY2U8c3RyaW5nPjtcbiAgcHVibGljIHRyYW5zZm9ybT86IERpZmZlcmVuY2U8c3RyaW5nPjtcbiAgcHVibGljIGNvbmRpdGlvbnM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPENvbmRpdGlvbiwgQ29uZGl0aW9uRGlmZmVyZW5jZT47XG4gIHB1YmxpYyBtYXBwaW5nczogRGlmZmVyZW5jZUNvbGxlY3Rpb248TWFwcGluZywgTWFwcGluZ0RpZmZlcmVuY2U+O1xuICBwdWJsaWMgbWV0YWRhdGE6IERpZmZlcmVuY2VDb2xsZWN0aW9uPE1ldGFkYXRhLCBNZXRhZGF0YURpZmZlcmVuY2U+O1xuICBwdWJsaWMgb3V0cHV0czogRGlmZmVyZW5jZUNvbGxlY3Rpb248T3V0cHV0LCBPdXRwdXREaWZmZXJlbmNlPjtcbiAgcHVibGljIHBhcmFtZXRlcnM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPFBhcmFtZXRlciwgUGFyYW1ldGVyRGlmZmVyZW5jZT47XG4gIHB1YmxpYyByZXNvdXJjZXM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPFJlc291cmNlLCBSZXNvdXJjZURpZmZlcmVuY2U+O1xuICAvKiogVGhlIGRpZmZlcmVuY2VzIGluIHVua25vd24vdW5leHBlY3RlZCBwYXJ0cyBvZiB0aGUgdGVtcGxhdGUgKi9cbiAgcHVibGljIHVua25vd246IERpZmZlcmVuY2VDb2xsZWN0aW9uPGFueSwgRGlmZmVyZW5jZTxhbnk+PjtcblxuICAvKipcbiAgICogQ2hhbmdlcyB0byBJQU0gcG9saWNpZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpYW1DaGFuZ2VzOiBJYW1DaGFuZ2VzO1xuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRvIFNlY3VyaXR5IEdyb3VwIGluZ3Jlc3MgYW5kIGVncmVzcyBydWxlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBDaGFuZ2VzOiBTZWN1cml0eUdyb3VwQ2hhbmdlcztcblxuICBjb25zdHJ1Y3RvcihhcmdzOiBJVGVtcGxhdGVEaWZmKSB7XG4gICAgaWYgKGFyZ3MuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uID0gYXJncy5hd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb247XG4gICAgfVxuICAgIGlmIChhcmdzLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBhcmdzLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBpZiAoYXJncy50cmFuc2Zvcm0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2Zvcm0gPSBhcmdzLnRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmRpdGlvbnMgPSBhcmdzLmNvbmRpdGlvbnMgfHwgbmV3IERpZmZlcmVuY2VDb2xsZWN0aW9uKHt9KTtcbiAgICB0aGlzLm1hcHBpbmdzID0gYXJncy5tYXBwaW5ncyB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuICAgIHRoaXMubWV0YWRhdGEgPSBhcmdzLm1ldGFkYXRhIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5vdXRwdXRzID0gYXJncy5vdXRwdXRzIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gYXJncy5wYXJhbWV0ZXJzIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSBhcmdzLnJlc291cmNlcyB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuICAgIHRoaXMudW5rbm93biA9IGFyZ3MudW5rbm93biB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuXG4gICAgdGhpcy5pYW1DaGFuZ2VzID0gbmV3IElhbUNoYW5nZXMoe1xuICAgICAgcHJvcGVydHlDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVQcm9wZXJ0eUNoYW5nZXMoSWFtQ2hhbmdlcy5JYW1Qcm9wZXJ0eVNjcnV0aW5pZXMpLFxuICAgICAgcmVzb3VyY2VDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVSZXNvdXJjZUNoYW5nZXMoSWFtQ2hhbmdlcy5JYW1SZXNvdXJjZVNjcnV0aW5pZXMpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWN1cml0eUdyb3VwQ2hhbmdlcyA9IG5ldyBTZWN1cml0eUdyb3VwQ2hhbmdlcyh7XG4gICAgICBlZ3Jlc3NSdWxlUHJvcGVydHlDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVQcm9wZXJ0eUNoYW5nZXMoW1Byb3BlcnR5U2NydXRpbnlUeXBlLkVncmVzc1J1bGVzXSksXG4gICAgICBpbmdyZXNzUnVsZVByb3BlcnR5Q2hhbmdlczogdGhpcy5zY3J1dGluaXphYmxlUHJvcGVydHlDaGFuZ2VzKFtQcm9wZXJ0eVNjcnV0aW55VHlwZS5JbmdyZXNzUnVsZXNdKSxcbiAgICAgIGVncmVzc1J1bGVSZXNvdXJjZUNoYW5nZXM6IHRoaXMuc2NydXRpbml6YWJsZVJlc291cmNlQ2hhbmdlcyhbUmVzb3VyY2VTY3J1dGlueVR5cGUuRWdyZXNzUnVsZVJlc291cmNlXSksXG4gICAgICBpbmdyZXNzUnVsZVJlc291cmNlQ2hhbmdlczogdGhpcy5zY3J1dGluaXphYmxlUmVzb3VyY2VDaGFuZ2VzKFtSZXNvdXJjZVNjcnV0aW55VHlwZS5JbmdyZXNzUnVsZVJlc291cmNlXSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZlcmVuY2VDb3VudCgpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgaWYgKHRoaXMuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvdW50ICs9IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvdW50ICs9IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLnRyYW5zZm9ybSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb3VudCArPSAxO1xuICAgIH1cblxuICAgIGNvdW50ICs9IHRoaXMuY29uZGl0aW9ucy5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5tYXBwaW5ncy5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5tZXRhZGF0YS5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5vdXRwdXRzLmRpZmZlcmVuY2VDb3VudDtcbiAgICBjb3VudCArPSB0aGlzLnBhcmFtZXRlcnMuZGlmZmVyZW5jZUNvdW50O1xuICAgIGNvdW50ICs9IHRoaXMucmVzb3VyY2VzLmRpZmZlcmVuY2VDb3VudDtcbiAgICBjb3VudCArPSB0aGlzLnVua25vd24uZGlmZmVyZW5jZUNvdW50O1xuXG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpZmZlcmVuY2VDb3VudCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbnkgb2YgdGhlIHBlcm1pc3Npb25zIG9iamVjdHMgaW52b2x2ZSBhIGJyb2FkZW5pbmcgb2YgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBnZXQgcGVybWlzc2lvbnNCcm9hZGVuZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWFtQ2hhbmdlcy5wZXJtaXNzaW9uc0Jyb2FkZW5lZCB8fCB0aGlzLnNlY3VyaXR5R3JvdXBDaGFuZ2VzLnJ1bGVzQWRkZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgYW55IG9mIHRoZSBwZXJtaXNzaW9ucyBvYmplY3RzIGhhdmUgY2hhbmdlZFxuICAgKi9cbiAgcHVibGljIGdldCBwZXJtaXNzaW9uc0FueUNoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWFtQ2hhbmdlcy5oYXNDaGFuZ2VzIHx8IHRoaXMuc2VjdXJpdHlHcm91cENoYW5nZXMuaGFzQ2hhbmdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHByb3BlcnR5IGNoYW5nZXMgb2YgYSBnaXZlbiBzY3J1dGlueSB0eXBlXG4gICAqXG4gICAqIFdlIGRvbid0IGp1c3QgbG9vayBhdCBwcm9wZXJ0eSB1cGRhdGVzOyB3ZSBhbHNvIGxvb2sgYXQgcmVzb3VyY2UgYWRkaXRpb25zIGFuZCBkZWxldGlvbnMgKGluIHdoaWNoXG4gICAqIGNhc2UgdGhlcmUgaXMgbm8gZnVydGhlciBkZXRhaWwgb24gcHJvcGVydHkgdmFsdWVzKSwgYW5kIHJlc291cmNlIHR5cGUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgc2NydXRpbml6YWJsZVByb3BlcnR5Q2hhbmdlcyhzY3J1dGlueVR5cGVzOiBQcm9wZXJ0eVNjcnV0aW55VHlwZVtdKTogUHJvcGVydHlDaGFuZ2VbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFByb3BlcnR5Q2hhbmdlPigpO1xuXG4gICAgZm9yIChjb25zdCBbcmVzb3VyY2VMb2dpY2FsSWQsIHJlc291cmNlQ2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnJlc291cmNlcy5jaGFuZ2VzKSkge1xuICAgICAgaWYgKHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gd2UgaWdub3JlIHJlc291cmNlIHR5cGUgY2hhbmdlcyBoZXJlLCBhbmQgaGFuZGxlIHRoZW0gaW4gc2NydXRpbml6YWJsZVJlc291cmNlQ2hhbmdlcygpXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZSkge1xuICAgICAgICAvLyBXZSB1c2UgcmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VUeXBlIHRvIGxvYWRSZXNvdXJjZU1vZGVsIHNvIHRoYXQgd2UgY2FuIGluc3BlY3QgdGhlXG4gICAgICAgIC8vIHByb3BlcnRpZXMgb2YgYSByZXNvdXJjZSBldmVuIGFmdGVyIHRoZSByZXNvdXJjZSBpcyByZW1vdmVkIGZyb20gdGhlIHRlbXBsYXRlLlxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3VHlwZVByb3BzID0gbG9hZFJlc291cmNlTW9kZWwocmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VUeXBlKT8ucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgcHJvcF0gb2YgT2JqZWN0LmVudHJpZXMobmV3VHlwZVByb3BzKSkge1xuICAgICAgICBjb25zdCBwcm9wU2NydXRpbnlUeXBlID0gcHJvcC5zY3J1dGluaXphYmxlIHx8IFByb3BlcnR5U2NydXRpbnlUeXBlLk5vbmU7XG4gICAgICAgIGlmIChzY3J1dGlueVR5cGVzLmluY2x1ZGVzKHByb3BTY3J1dGlueVR5cGUpKSB7XG4gICAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgICAgcmVzb3VyY2VMb2dpY2FsSWQsXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZSxcbiAgICAgICAgICAgIHNjcnV0aW55VHlwZTogcHJvcFNjcnV0aW55VHlwZSxcbiAgICAgICAgICAgIG9sZFZhbHVlOiByZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzPy5bcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICAgIG5ld1ZhbHVlOiByZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzPy5bcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCByZXNvdXJjZSBjaGFuZ2VzIG9mIGEgZ2l2ZW4gc2NydXRpbnkgdHlwZVxuICAgKlxuICAgKiBXZSBkb24ndCBqdXN0IGxvb2sgYXQgcmVzb3VyY2UgdXBkYXRlczsgd2UgYWxzbyBsb29rIGF0IHJlc291cmNlIGFkZGl0aW9ucyBhbmQgZGVsZXRpb25zIChpbiB3aGljaFxuICAgKiBjYXNlIHRoZXJlIGlzIG5vIGZ1cnRoZXIgZGV0YWlsIG9uIHByb3BlcnR5IHZhbHVlcyksIGFuZCByZXNvdXJjZSB0eXBlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIHNjcnV0aW5pemFibGVSZXNvdXJjZUNoYW5nZXMoc2NydXRpbnlUeXBlczogUmVzb3VyY2VTY3J1dGlueVR5cGVbXSk6IFJlc291cmNlQ2hhbmdlW10ge1xuICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxSZXNvdXJjZUNoYW5nZT4oKTtcblxuICAgIGZvciAoY29uc3QgW3Jlc291cmNlTG9naWNhbElkLCByZXNvdXJjZUNoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5yZXNvdXJjZXMuY2hhbmdlcykpIHtcbiAgICAgIGlmICghcmVzb3VyY2VDaGFuZ2UpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbW1vblByb3BzID0ge1xuICAgICAgICBvbGRQcm9wZXJ0aWVzOiByZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzLFxuICAgICAgICBuZXdQcm9wZXJ0aWVzOiByZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzLFxuICAgICAgICByZXNvdXJjZUxvZ2ljYWxJZCxcbiAgICAgIH07XG5cbiAgICAgIC8vIGNoYW5nZXMgdG8gdGhlIFR5cGUgb2YgcmVzb3VyY2VzIGNhbiBoYXBwZW4gd2hlbiBtaWdyYXRpbmcgZnJvbSBDRk4gdGVtcGxhdGVzIHRoYXQgdXNlIFRyYW5zZm9ybXNcbiAgICAgIGlmIChyZXNvdXJjZUNoYW5nZS5yZXNvdXJjZVR5cGVDaGFuZ2VkKSB7XG4gICAgICAgIC8vIFRyZWF0IGFzIERFTEVURStBRERcbiAgICAgICAgaWYgKHJlc291cmNlQ2hhbmdlLm9sZFJlc291cmNlVHlwZSkge1xuICAgICAgICAgIGNvbnN0IG9sZFJlc291cmNlTW9kZWwgPSBsb2FkUmVzb3VyY2VNb2RlbChyZXNvdXJjZUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUpO1xuICAgICAgICAgIGlmIChvbGRSZXNvdXJjZU1vZGVsICYmIHRoaXMucmVzb3VyY2VJc1NjcnV0aW5pemFibGUob2xkUmVzb3VyY2VNb2RlbCwgc2NydXRpbnlUeXBlcykpIHtcbiAgICAgICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICAgICAgLi4uY29tbW9uUHJvcHMsXG4gICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiByZXNvdXJjZUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUhLFxuICAgICAgICAgICAgICBzY3J1dGlueVR5cGU6IG9sZFJlc291cmNlTW9kZWwuc2NydXRpbml6YWJsZSEsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzb3VyY2VDaGFuZ2UubmV3UmVzb3VyY2VUeXBlKSB7XG4gICAgICAgICAgY29uc3QgbmV3UmVzb3VyY2VNb2RlbCA9IGxvYWRSZXNvdXJjZU1vZGVsKHJlc291cmNlQ2hhbmdlLm5ld1Jlc291cmNlVHlwZSk7XG4gICAgICAgICAgaWYgKG5ld1Jlc291cmNlTW9kZWwgJiYgdGhpcy5yZXNvdXJjZUlzU2NydXRpbml6YWJsZShuZXdSZXNvdXJjZU1vZGVsLCBzY3J1dGlueVR5cGVzKSkge1xuICAgICAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgICAgICAuLi5jb21tb25Qcm9wcyxcbiAgICAgICAgICAgICAgb2xkUHJvcGVydGllczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlQ2hhbmdlLm5ld1Jlc291cmNlVHlwZSEsXG4gICAgICAgICAgICAgIHNjcnV0aW55VHlwZTogbmV3UmVzb3VyY2VNb2RlbC5zY3J1dGluaXphYmxlISxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFyZXNvdXJjZUNoYW5nZS5yZXNvdXJjZVR5cGUpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc291cmNlTW9kZWwgPSBsb2FkUmVzb3VyY2VNb2RlbChyZXNvdXJjZUNoYW5nZS5yZXNvdXJjZVR5cGUpO1xuICAgICAgICBpZiAocmVzb3VyY2VNb2RlbCAmJiB0aGlzLnJlc291cmNlSXNTY3J1dGluaXphYmxlKHJlc291cmNlTW9kZWwsIHNjcnV0aW55VHlwZXMpKSB7XG4gICAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgICAgLi4uY29tbW9uUHJvcHMsXG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZSxcbiAgICAgICAgICAgIHNjcnV0aW55VHlwZTogcmVzb3VyY2VNb2RlbC5zY3J1dGluaXphYmxlISxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIHJlc291cmNlSXNTY3J1dGluaXphYmxlKHJlczogUmVzb3VyY2VNb2RlbCwgc2NydXRpbnlUeXBlczogQXJyYXk8UmVzb3VyY2VTY3J1dGlueVR5cGU+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNjcnV0aW55VHlwZXMuaW5jbHVkZXMocmVzLnNjcnV0aW5pemFibGUgfHwgUmVzb3VyY2VTY3J1dGlueVR5cGUuTm9uZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNoYW5nZSBpbiBwcm9wZXJ0eSB2YWx1ZXNcbiAqXG4gKiBOb3QgbmVjZXNzYXJpbHkgYW4gdXBkYXRlLCBpdCBjb3VsZCBiZSB0aGF0IHRoZXJlIHVzZWQgdG8gYmUgbm8gdmFsdWUgdGhlcmVcbiAqIGJlY2F1c2UgdGhlcmUgd2FzIG5vIHJlc291cmNlLCBhbmQgbm93IHRoZXJlIGlzIChvciB2aWNlIHZlcnNhKS5cbiAqXG4gKiBUaGVyZWZvcmUsIHdlIGp1c3QgY29udGFpbiBwbGFpbiB2YWx1ZXMgYW5kIG5vdCBhIFByb3BlcnR5RGlmZmVyZW5jZTxhbnk+LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5Q2hhbmdlIHtcbiAgLyoqXG4gICAqIExvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlIHdoZXJlIHRoaXMgcHJvcGVydHkgY2hhbmdlIHdhcyBmb3VuZFxuICAgKi9cbiAgcmVzb3VyY2VMb2dpY2FsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgcmVzb3VyY2VcbiAgICovXG4gIHJlc291cmNlVHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTY3J1dGlueSB0eXBlIGZvciB0aGlzIHByb3BlcnR5IGNoYW5nZVxuICAgKi9cbiAgc2NydXRpbnlUeXBlOiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcHJvcGVydHkgdGhhdCBpcyBjaGFuZ2luZ1xuICAgKi9cbiAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvbGQgcHJvcGVydHkgdmFsdWVcbiAgICovXG4gIG9sZFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbmV3IHByb3BlcnR5IHZhbHVlXG4gICAqL1xuICBuZXdWYWx1ZT86IGFueTtcbn1cblxuLyoqXG4gKiBBIHJlc291cmNlIGNoYW5nZVxuICpcbiAqIEVpdGhlciBhIGNyZWF0aW9uLCBkZWxldGlvbiBvciB1cGRhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDaGFuZ2Uge1xuICAvKipcbiAgICogTG9naWNhbCBJRCBvZiB0aGUgcmVzb3VyY2Ugd2hlcmUgdGhpcyBwcm9wZXJ0eSBjaGFuZ2Ugd2FzIGZvdW5kXG4gICAqL1xuICByZXNvdXJjZUxvZ2ljYWxJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTY3J1dGlueSB0eXBlIGZvciB0aGlzIHJlc291cmNlIGNoYW5nZVxuICAgKi9cbiAgc2NydXRpbnlUeXBlOiBSZXNvdXJjZVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlc291cmNlXG4gICAqL1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9sZCBwcm9wZXJ0aWVzIHZhbHVlIChtaWdodCBiZSB1bmRlZmluZWQgaW4gY2FzZSBvZiBjcmVhdGlvbilcbiAgICovXG4gIG9sZFByb3BlcnRpZXM/OiBQcm9wZXJ0eU1hcDtcblxuICAvKipcbiAgICogVGhlIG5ldyBwcm9wZXJ0aWVzIHZhbHVlIChtaWdodCBiZSB1bmRlZmluZWQgaW4gY2FzZSBvZiBkZWxldGlvbilcbiAgICovXG4gIG5ld1Byb3BlcnRpZXM/OiBQcm9wZXJ0eU1hcDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGlmZmVyZW5jZTxWYWx1ZVR5cGU+IHtcbiAgcmVhZG9ubHkgb2xkVmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgaXNEaWZmZXJlbnQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlzQWRkaXRpb246IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlzUmVtb3ZhbDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaXNVcGRhdGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogTW9kZWxzIGFuIGVudGl0eSB0aGF0IGNoYW5nZWQgYmV0d2VlbiB0d28gdmVyc2lvbnMgb2YgYSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERpZmZlcmVuY2U8VmFsdWVUeXBlPiBpbXBsZW1lbnRzIElEaWZmZXJlbmNlPFZhbHVlVHlwZT4ge1xuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGFjdHVhbCBkaWZmZXJlbnQgb3IgdGhlIHZhbHVlcyBhcmUgYWN0dWFsbHkgdGhlIHNhbWVcbiAgICpcbiAgICogaXNEaWZmZXJlbnQgPT4gKGlzVXBkYXRlIHwgaXNSZW1vdmVkIHwgaXNVcGRhdGUpXG4gICAqL1xuICBwdWJsaWMgaXNEaWZmZXJlbnQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvbGRWYWx1ZSAtIHRoZSBvbGQgdmFsdWUsIGNhbm5vdCBiZSBlcXVhbCAodG8gdGhlIHNlbnNlIG9mICtkZWVwRXF1YWwrKSB0byArbmV3VmFsdWUrLlxuICAgKiBAcGFyYW0gbmV3VmFsdWUgLSB0aGUgbmV3IHZhbHVlLCBjYW5ub3QgYmUgZXF1YWwgKHRvIHRoZSBzZW5zZSBvZiArZGVlcEVxdWFsKykgdG8gK29sZFZhbHVlKy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBvbGRWYWx1ZTogVmFsdWVUeXBlIHwgdW5kZWZpbmVkLCBwdWJsaWMgcmVhZG9ubHkgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcih7IG1lc3NhZ2U6ICdvbGRWYWx1ZSBhbmQgbmV3VmFsdWUgYXJlIGJvdGggdW5kZWZpbmVkIScgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNEaWZmZXJlbnQgPSAhZGVlcEVxdWFsKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gIH1cblxuICAvKiogQHJldHVybnMgK3RydWUrIGlmIHRoZSBlbGVtZW50IGlzIG5ldyB0byB0aGUgdGVtcGxhdGUuICovXG4gIHB1YmxpYyBnZXQgaXNBZGRpdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vbGRWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIEByZXR1cm5zICt0cnVlKyBpZiB0aGUgZWxlbWVudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSB0ZW1wbGF0ZS4gKi9cbiAgcHVibGljIGdldCBpc1JlbW92YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmV3VmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyArdHJ1ZSsgaWYgdGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgaW4gdGhlIHRlbXBsYXRlIGFuZCBpcyB1cGRhdGVkLiAqL1xuICBwdWJsaWMgZ2V0IGlzVXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9sZFZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICYmIHRoaXMubmV3VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlEaWZmZXJlbmNlPFZhbHVlVHlwZT4gZXh0ZW5kcyBEaWZmZXJlbmNlPFZhbHVlVHlwZT4ge1xuICBwdWJsaWMgY2hhbmdlSW1wYWN0PzogUmVzb3VyY2VJbXBhY3Q7XG5cbiAgY29uc3RydWN0b3Iob2xkVmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCwgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCwgYXJnczogeyBjaGFuZ2VJbXBhY3Q/OiBSZXNvdXJjZUltcGFjdCB9KSB7XG4gICAgc3VwZXIob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZUltcGFjdCA9IGFyZ3MuY2hhbmdlSW1wYWN0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUIGV4dGVuZHMgSURpZmZlcmVuY2U8Vj4+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWZmczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBUIH0pIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhbmdlcygpOiB7IFtsb2dpY2FsSWQ6IHN0cmluZ106IFQgfSB7XG4gICAgcmV0dXJuIG9ubHlDaGFuZ2VzKHRoaXMuZGlmZnMpO1xuICB9XG5cbiAgcHVibGljIGdldCBkaWZmZXJlbmNlQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmNoYW5nZXMpLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQobG9naWNhbElkOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCByZXQgPSB0aGlzLmRpZmZzW2xvZ2ljYWxJZF07XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gb2JqZWN0IHdpdGggbG9naWNhbCBJRCAnJHtsb2dpY2FsSWR9J2ApO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShsb2dpY2FsSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLmRpZmZzW2xvZ2ljYWxJZF07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvZ2ljYWxJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoYW5nZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgVGVtcGxhdGVEaWZmIHdoaWNoIG9ubHkgY29udGFpbnMgY2hhbmdlcyBmb3Igd2hpY2ggYHByZWRpY2F0ZWBcbiAgICogcmV0dXJucyBgdHJ1ZWAuXG4gICAqL1xuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKGRpZmY6IFQgfCB1bmRlZmluZWQpID0+IGJvb2xlYW4pOiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUPiB7XG4gICAgY29uc3QgbmV3Q2hhbmdlczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBUIH0gPSB7IH07XG4gICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyh0aGlzLmNoYW5nZXMpKSB7XG4gICAgICBjb25zdCBkaWZmID0gdGhpcy5jaGFuZ2VzW2lkXTtcblxuICAgICAgaWYgKHByZWRpY2F0ZShkaWZmKSkge1xuICAgICAgICBuZXdDaGFuZ2VzW2lkXSA9IGRpZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUPihuZXdDaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VzIGBjYmAgZm9yIGFsbCBjaGFuZ2VzIGluIHRoaXMgY29sbGVjdGlvbi5cbiAgICpcbiAgICogQ2hhbmdlcyB3aWxsIGJlIHNvcnRlZCBhcyBmb2xsb3dzOlxuICAgKiAgLSBSZW1vdmVkXG4gICAqICAtIEFkZGVkXG4gICAqICAtIFVwZGF0ZWRcbiAgICogIC0gT3RoZXJzXG4gICAqXG4gICAqL1xuICBwdWJsaWMgZm9yRWFjaERpZmZlcmVuY2UoY2I6IChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiBUKSA9PiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCByZW1vdmVkID0gbmV3IEFycmF5PHsgbG9naWNhbElkOiBzdHJpbmc7IGNoYW5nZTogVCB9PigpO1xuICAgIGNvbnN0IGFkZGVkID0gbmV3IEFycmF5PHsgbG9naWNhbElkOiBzdHJpbmc7IGNoYW5nZTogVCB9PigpO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgQXJyYXk8eyBsb2dpY2FsSWQ6IHN0cmluZzsgY2hhbmdlOiBUIH0+KCk7XG4gICAgY29uc3Qgb3RoZXJzID0gbmV3IEFycmF5PHsgbG9naWNhbElkOiBzdHJpbmc7IGNoYW5nZTogVCB9PigpO1xuXG4gICAgZm9yIChjb25zdCBsb2dpY2FsSWQgb2YgdGhpcy5sb2dpY2FsSWRzKSB7XG4gICAgICBjb25zdCBjaGFuZ2U6IFQgPSB0aGlzLmNoYW5nZXNbbG9naWNhbElkXSE7XG4gICAgICBpZiAoY2hhbmdlLmlzQWRkaXRpb24pIHtcbiAgICAgICAgYWRkZWQucHVzaCh7IGxvZ2ljYWxJZCwgY2hhbmdlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNSZW1vdmFsKSB7XG4gICAgICAgIHJlbW92ZWQucHVzaCh7IGxvZ2ljYWxJZCwgY2hhbmdlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNVcGRhdGUpIHtcbiAgICAgICAgdXBkYXRlZC5wdXNoKHsgbG9naWNhbElkLCBjaGFuZ2UgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNoYW5nZS5pc0RpZmZlcmVudCkge1xuICAgICAgICBvdGhlcnMucHVzaCh7IGxvZ2ljYWxJZCwgY2hhbmdlIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZWQuZm9yRWFjaCh2ID0+IGNiKHYubG9naWNhbElkLCB2LmNoYW5nZSkpO1xuICAgIGFkZGVkLmZvckVhY2godiA9PiBjYih2LmxvZ2ljYWxJZCwgdi5jaGFuZ2UpKTtcbiAgICB1cGRhdGVkLmZvckVhY2godiA9PiBjYih2LmxvZ2ljYWxJZCwgdi5jaGFuZ2UpKTtcbiAgICBvdGhlcnMuZm9yRWFjaCh2ID0+IGNiKHYubG9naWNhbElkLCB2LmNoYW5nZSkpO1xuICB9XG59XG5cbi8qKlxuICogQXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBjb25zdHJ1Y3RvciBvZiArVGVtcGxhdGVEaWZmKywgZXh0cmFjdGVkIGFzIGFuIGludGVyZmFjZSBmb3IgdGhlIHNha2VcbiAqIG9mIChyZWxhdGl2ZSkgY29uY2lzZW5lc3Mgb2YgdGhlIGNvbnN0cnVjdG9yJ3Mgc2lnbmF0dXJlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUZW1wbGF0ZURpZmYge1xuICBhd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb24/OiBJRGlmZmVyZW5jZTxzdHJpbmc+O1xuICBkZXNjcmlwdGlvbj86IElEaWZmZXJlbmNlPHN0cmluZz47XG4gIHRyYW5zZm9ybT86IElEaWZmZXJlbmNlPHN0cmluZz47XG5cbiAgY29uZGl0aW9ucz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPENvbmRpdGlvbiwgQ29uZGl0aW9uRGlmZmVyZW5jZT47XG4gIG1hcHBpbmdzPzogRGlmZmVyZW5jZUNvbGxlY3Rpb248TWFwcGluZywgTWFwcGluZ0RpZmZlcmVuY2U+O1xuICBtZXRhZGF0YT86IERpZmZlcmVuY2VDb2xsZWN0aW9uPE1ldGFkYXRhLCBNZXRhZGF0YURpZmZlcmVuY2U+O1xuICBvdXRwdXRzPzogRGlmZmVyZW5jZUNvbGxlY3Rpb248T3V0cHV0LCBPdXRwdXREaWZmZXJlbmNlPjtcbiAgcGFyYW1ldGVycz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPFBhcmFtZXRlciwgUGFyYW1ldGVyRGlmZmVyZW5jZT47XG4gIHJlc291cmNlcz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPFJlc291cmNlLCBSZXNvdXJjZURpZmZlcmVuY2U+O1xuXG4gIHVua25vd24/OiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxhbnksIElEaWZmZXJlbmNlPGFueT4+O1xufVxuXG5leHBvcnQgdHlwZSBDb25kaXRpb24gPSBhbnk7XG5leHBvcnQgY2xhc3MgQ29uZGl0aW9uRGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8Q29uZGl0aW9uPiB7XG4gIC8vIFRPRE86IGRlZmluZSBzcGVjaWZpYyBkaWZmZXJlbmNlIGF0dHJpYnV0ZXNcbn1cblxuZXhwb3J0IHR5cGUgTWFwcGluZyA9IGFueTtcbmV4cG9ydCBjbGFzcyBNYXBwaW5nRGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8TWFwcGluZz4ge1xuICAvLyBUT0RPOiBkZWZpbmUgc3BlY2lmaWMgZGlmZmVyZW5jZSBhdHRyaWJ1dGVzXG59XG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhID0gYW55O1xuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8TWV0YWRhdGE+IHtcbiAgLy8gVE9ETzogZGVmaW5lIHNwZWNpZmljIGRpZmZlcmVuY2UgYXR0cmlidXRlc1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXQgPSBhbnk7XG5leHBvcnQgY2xhc3MgT3V0cHV0RGlmZmVyZW5jZSBleHRlbmRzIERpZmZlcmVuY2U8T3V0cHV0PiB7XG4gIC8vIFRPRE86IGRlZmluZSBzcGVjaWZpYyBkaWZmZXJlbmNlIGF0dHJpYnV0ZXNcbn1cblxuZXhwb3J0IHR5cGUgUGFyYW1ldGVyID0gYW55O1xuZXhwb3J0IGNsYXNzIFBhcmFtZXRlckRpZmZlcmVuY2UgZXh0ZW5kcyBEaWZmZXJlbmNlPFBhcmFtZXRlcj4ge1xuICAvLyBUT0RPOiBkZWZpbmUgc3BlY2lmaWMgZGlmZmVyZW5jZSBhdHRyaWJ1dGVzXG59XG5cbmV4cG9ydCBlbnVtIFJlc291cmNlSW1wYWN0IHtcbiAgLyoqIFRoZSBleGlzdGluZyBwaHlzaWNhbCByZXNvdXJjZSB3aWxsIGJlIHVwZGF0ZWQgKi9cbiAgV0lMTF9VUERBVEUgPSAnV0lMTF9VUERBVEUnLFxuICAvKiogQSBuZXcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSBjcmVhdGVkICovXG4gIFdJTExfQ1JFQVRFID0gJ1dJTExfQ1JFQVRFJyxcbiAgLyoqIFRoZSBleGlzdGluZyBwaHlzaWNhbCByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkICovXG4gIFdJTExfUkVQTEFDRSA9ICdXSUxMX1JFUExBQ0UnLFxuICAvKiogVGhlIGV4aXN0aW5nIHBoeXNpY2FsIHJlc291cmNlIG1heSBiZSByZXBsYWNlZCAqL1xuICBNQVlfUkVQTEFDRSA9ICdNQVlfUkVQTEFDRScsXG4gIC8qKiBUaGUgZXhpc3RpbmcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSBkZXN0cm95ZWQgKi9cbiAgV0lMTF9ERVNUUk9ZID0gJ1dJTExfREVTVFJPWScsXG4gIC8qKiBUaGUgZXhpc3RpbmcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSByZW1vdmVkIGZyb20gQ2xvdWRGb3JtYXRpb24gc3VwZXJ2aXNpb24gKi9cbiAgV0lMTF9PUlBIQU4gPSAnV0lMTF9PUlBIQU4nLFxuICAvKiogVGhlIGV4aXN0aW5nIHBoeXNpY2FsIHJlc291cmNlIHdpbGwgYmUgYWRkZWQgdG8gQ2xvdWRGb3JtYXRpb24gc3VwZXJ2aXNpb24gKi9cbiAgV0lMTF9JTVBPUlQgPSAnV0lMTF9JTVBPUlQnLFxuICAvKiogVGhlcmUgaXMgbm8gY2hhbmdlIGluIHRoaXMgcmVzb3VyY2UgKi9cbiAgTk9fQ0hBTkdFID0gJ05PX0NIQU5HRScsXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBhcyBhIHJlZHVjZXIgdG8gb2J0YWluIHRoZSByZXNvdXJjZS1sZXZlbCBpbXBhY3Qgb2YgYSBsaXN0XG4gKiBvZiBwcm9wZXJ0eS1sZXZlbCBpbXBhY3RzLlxuICogQHBhcmFtIG9uZSAtIHRoZSBjdXJyZW50IHdvcnN0IGltcGFjdCBzbyBmYXIuXG4gKiBAcGFyYW0gdHdvIC0gdGhlIG5ldyBpbXBhY3QgYmVpbmcgY29uc2lkZXJlZCAoY2FuIGJlIHVuZGVmaW5lZCwgYXMgd2UgbWF5IG5vdCBhbHdheXMgYmVcbiAqICAgICAgYWJsZSB0byBkZXRlcm1pbmUgc29tZSBwcm9wZXJ0aWVzIGltcGFjdCkuXG4gKi9cbmZ1bmN0aW9uIHdvcnN0SW1wYWN0KG9uZTogUmVzb3VyY2VJbXBhY3QsIHR3bz86IFJlc291cmNlSW1wYWN0KTogUmVzb3VyY2VJbXBhY3Qge1xuICBpZiAoIXR3bykge1xuICAgIHJldHVybiBvbmU7XG4gIH1cbiAgY29uc3QgYmFkbmVzcyA9IHtcbiAgICBbUmVzb3VyY2VJbXBhY3QuTk9fQ0hBTkdFXTogMCxcbiAgICBbUmVzb3VyY2VJbXBhY3QuV0lMTF9JTVBPUlRdOiAwLFxuICAgIFtSZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURV06IDEsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfQ1JFQVRFXTogMixcbiAgICBbUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU5dOiAzLFxuICAgIFtSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRV06IDQsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfUkVQTEFDRV06IDUsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfREVTVFJPWV06IDYsXG4gIH07XG4gIHJldHVybiBiYWRuZXNzW29uZV0gPiBiYWRuZXNzW3R3b10gPyBvbmUgOiB0d287XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2Uge1xuICBUeXBlOiBzdHJpbmc7XG4gIFByb3BlcnRpZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcblxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW92ZSB7XG4gIHJlYWRvbmx5IGRpcmVjdGlvbjogJ2Zyb20nIHwgJ3RvJztcbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc291cmNlTG9naWNhbElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRvIGEgc2luZ2xlIHJlc291cmNlIGJldHdlZW4gdHdvIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlc1xuICpcbiAqIFRoaXMgY2xhc3MgY2FuIGJlIG11dGF0ZWQgYWZ0ZXIgY29uc3RydWN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VEaWZmZXJlbmNlIGltcGxlbWVudHMgSURpZmZlcmVuY2U8UmVzb3VyY2U+IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSB3YXMgYWRkZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc0FkZGl0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcmVzb3VyY2Ugd2FzIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc1JlbW92YWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSB3YXMgaW1wb3J0ZWRcbiAgICovXG4gIHB1YmxpYyBpc0ltcG9ydD86IGJvb2xlYW47XG5cbiAgcHVibGljIG1vdmU/OiBNb3ZlO1xuXG4gIC8qKiBQcm9wZXJ0eS1sZXZlbCBjaGFuZ2VzIG9uIHRoZSByZXNvdXJjZSAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BlcnR5RGlmZnM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfTtcblxuICAvKiogQ2hhbmdlcyB0byBub24tcHJvcGVydHkgbGV2ZWwgYXR0cmlidXRlcyBvZiB0aGUgcmVzb3VyY2UgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBvdGhlckRpZmZzOiB7IFtrZXk6IHN0cmluZ106IERpZmZlcmVuY2U8YW55PiB9O1xuXG4gIC8qKiBUaGUgcmVzb3VyY2UgdHlwZSAob3Igb2xkIGFuZCBuZXcgdHlwZSBpZiBpdCBoYXMgY2hhbmdlZCkgKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZVR5cGVzOiB7IHJlYWRvbmx5IG9sZFR5cGU/OiBzdHJpbmc7IHJlYWRvbmx5IG5ld1R5cGU/OiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgb2xkVmFsdWU6IFJlc291cmNlIHwgdW5kZWZpbmVkLFxuICAgIHB1YmxpYyByZWFkb25seSBuZXdWYWx1ZTogUmVzb3VyY2UgfCB1bmRlZmluZWQsXG4gICAgYXJnczoge1xuICAgICAgcmVzb3VyY2VUeXBlOiB7IG9sZFR5cGU/OiBzdHJpbmc7IG5ld1R5cGU/OiBzdHJpbmcgfTtcbiAgICAgIHByb3BlcnR5RGlmZnM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfTtcbiAgICAgIG90aGVyRGlmZnM6IHsgW2tleTogc3RyaW5nXTogRGlmZmVyZW5jZTxhbnk+IH07XG4gICAgfSxcbiAgKSB7XG4gICAgdGhpcy5yZXNvdXJjZVR5cGVzID0gYXJncy5yZXNvdXJjZVR5cGU7XG4gICAgdGhpcy5wcm9wZXJ0eURpZmZzID0gYXJncy5wcm9wZXJ0eURpZmZzO1xuICAgIHRoaXMub3RoZXJEaWZmcyA9IGFyZ3Mub3RoZXJEaWZmcztcblxuICAgIHRoaXMuaXNBZGRpdGlvbiA9IG9sZFZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pc1JlbW92YWwgPSBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNJbXBvcnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9sZFByb3BlcnRpZXMoKTogUHJvcGVydHlNYXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9sZFZhbHVlICYmIHRoaXMub2xkVmFsdWUuUHJvcGVydGllcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmV3UHJvcGVydGllcygpOiBQcm9wZXJ0eU1hcCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubmV3VmFsdWUgJiYgdGhpcy5uZXdWYWx1ZS5Qcm9wZXJ0aWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSB3YXMgbW9kaWZpZWQgYXQgYWxsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzRGlmZmVyZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpZmZlcmVuY2VDb3VudCA+IDAgfHwgdGhpcy5vbGRSZXNvdXJjZVR5cGUgIT09IHRoaXMubmV3UmVzb3VyY2VUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlc291cmNlIHdhcyB1cGRhdGVkIGluLXBsYWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzVXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGlmZmVyZW50ICYmICF0aGlzLmlzQWRkaXRpb24gJiYgIXRoaXMuaXNSZW1vdmFsO1xuICB9XG5cbiAgcHVibGljIGdldCBvbGRSZXNvdXJjZVR5cGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZVR5cGVzLm9sZFR5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5ld1Jlc291cmNlVHlwZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgYWN0dWFsIHByb3BlcnR5IHVwZGF0ZXNcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvcGVydHlVcGRhdGVzKCk6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4gfSB7XG4gICAgcmV0dXJuIG9ubHlDaGFuZ2VzKHRoaXMucHJvcGVydHlEaWZmcyk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGFjdHVhbCBcIm90aGVyXCIgdXBkYXRlc1xuICAgKi9cbiAgcHVibGljIGdldCBvdGhlckNoYW5nZXMoKTogeyBba2V5OiBzdHJpbmddOiBEaWZmZXJlbmNlPGFueT4gfSB7XG4gICAgcmV0dXJuIG9ubHlDaGFuZ2VzKHRoaXMub3RoZXJEaWZmcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIHJlc291cmNlIHR5cGUgd2FzIGNoYW5nZWQgaW4gdGhpcyBkaWZmXG4gICAqXG4gICAqIFRoaXMgaXMgbm90IGEgdmFsaWQgb3BlcmF0aW9uIGluIENsb3VkRm9ybWF0aW9uIGJ1dCB0byBiZSBkZWZlbnNpdmUgd2UncmUgZ29pbmdcbiAgICogdG8gYmUgYXdhcmUgb2YgaXQgYW55d2F5LlxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZVR5cGVDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZXNvdXJjZVR5cGVzLm9sZFR5cGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAmJiB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICYmIHRoaXMucmVzb3VyY2VUeXBlcy5vbGRUeXBlICE9PSB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSByZXNvdXJjZSB0eXBlIGlmIGl0IHdhcyB1bmNoYW5nZWRcbiAgICpcbiAgICogSWYgdGhlIHJlc291cmNlIHR5cGUgd2FzIGNoYW5nZWQsIGl0J3MgYW4gZXJyb3IgdG8gY2FsbCB0aGlzLlxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGVDaGFuZ2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBnZXQgLnJlc291cmNlVHlwZSwgYmVjYXVzZSB0aGUgdHlwZSB3YXMgY2hhbmdlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZVR5cGVzLm9sZFR5cGUgfHwgdGhpcy5yZXNvdXJjZVR5cGVzLm5ld1R5cGU7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBhIFByb3BlcnR5Q2hhbmdlIGluIHRoaXMgb2JqZWN0XG4gICAqXG4gICAqIFRoaXMgYWZmZWN0cyB0aGUgcHJvcGVydHkgZGlmZiBhcyBpdCBpcyBzdW1tYXJpemVkIHRvIHVzZXJzLCBidXQgaXQgRE9FU1xuICAgKiBOT1QgYWZmZWN0IGVpdGhlciB0aGUgXCJvbGRWYWx1ZVwiIG9yIFwibmV3VmFsdWVcIiB2YWx1ZXM7IHRob3NlIHN0aWxsIGNvbnRhaW5cbiAgICogdGhlIGFjdHVhbCB0ZW1wbGF0ZSB2YWx1ZXMgYXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgKHRoZXkgbWlnaHQgc3RpbGwgYmVcbiAgICogdXNlZCBmb3IgZG93bnN0cmVhbSBwcm9jZXNzaW5nKS5cbiAgICovXG4gIHB1YmxpYyBzZXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eU5hbWU6IHN0cmluZywgY2hhbmdlOiBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pikge1xuICAgIHRoaXMucHJvcGVydHlEaWZmc1twcm9wZXJ0eU5hbWVdID0gY2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgYSBPdGhlckNoYW5nZSBpbiB0aGlzIG9iamVjdFxuICAgKlxuICAgKiBUaGlzIGFmZmVjdHMgdGhlIHByb3BlcnR5IGRpZmYgYXMgaXQgaXMgc3VtbWFyaXplZCB0byB1c2VycywgYnV0IGl0IERPRVNcbiAgICogTk9UIGFmZmVjdCBlaXRoZXIgdGhlIFwib2xkVmFsdWVcIiBvciBcIm5ld1ZhbHVlXCIgdmFsdWVzOyB0aG9zZSBzdGlsbCBjb250YWluXG4gICAqIHRoZSBhY3R1YWwgdGVtcGxhdGUgdmFsdWVzIGFzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyICh0aGV5IG1pZ2h0IHN0aWxsIGJlXG4gICAqIHVzZWQgZm9yIGRvd25zdHJlYW0gcHJvY2Vzc2luZykuXG4gICAqL1xuICBwdWJsaWMgc2V0T3RoZXJDaGFuZ2Uob3RoZXJOYW1lOiBzdHJpbmcsIGNoYW5nZTogUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pIHtcbiAgICB0aGlzLm90aGVyRGlmZnNbb3RoZXJOYW1lXSA9IGNoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhbmdlSW1wYWN0KCk6IFJlc291cmNlSW1wYWN0IHtcbiAgICBpZiAodGhpcy5pc0ltcG9ydCkge1xuICAgICAgcmV0dXJuIFJlc291cmNlSW1wYWN0LldJTExfSU1QT1JUO1xuICAgIH1cbiAgICAvLyBDaGVjayB0aGUgVHlwZSBmaXJzdFxuICAgIGlmICh0aGlzLnJlc291cmNlVHlwZXMub2xkVHlwZSAhPT0gdGhpcy5yZXNvdXJjZVR5cGVzLm5ld1R5cGUpIHtcbiAgICAgIGlmICh0aGlzLnJlc291cmNlVHlwZXMub2xkVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBSZXNvdXJjZUltcGFjdC5XSUxMX0NSRUFURTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9sZFZhbHVlIS5EZWxldGlvblBvbGljeSA9PT0gJ1JldGFpbidcbiAgICAgICAgICA/IFJlc291cmNlSW1wYWN0LldJTExfT1JQSEFOXG4gICAgICAgICAgOiBSZXNvdXJjZUltcGFjdC5XSUxMX0RFU1RST1k7XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFO1xuICAgIH1cblxuICAgIC8vIEJhc2UgaW1wYWN0IChiZWZvcmUgd2UgbWl4IGluIHRoZSB3b3JzdCBvZiB0aGUgcHJvcGVydHkgaW1wYWN0cyk7XG4gICAgLy8gV0lMTF9VUERBVEUgaWYgd2UgaGF2ZSBcIm90aGVyXCIgY2hhbmdlcywgTk9fQ0hBTkdFIGlmIHRoZXJlIGFyZSBubyBcIm90aGVyXCIgY2hhbmdlcy5cbiAgICBjb25zdCBiYXNlSW1wYWN0ID0gT2JqZWN0LmtleXModGhpcy5vdGhlckNoYW5nZXMpLmxlbmd0aCA+IDAgPyBSZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURSA6IFJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTtcblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMucHJvcGVydHlEaWZmcylcbiAgICAgIC5tYXAoZWx0ID0+IGVsdC5jaGFuZ2VJbXBhY3QpXG4gICAgICAucmVkdWNlKHdvcnN0SW1wYWN0LCBiYXNlSW1wYWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3VudCBvZiBhY3R1YWwgZGlmZmVyZW5jZXMgKG5vdCBvZiBlbGVtZW50cylcbiAgICovXG4gIHB1YmxpYyBnZXQgZGlmZmVyZW5jZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5wcm9wZXJ0eVVwZGF0ZXMpLmxlbmd0aFxuICAgICAgKyBPYmplY3QudmFsdWVzKHRoaXMub3RoZXJDaGFuZ2VzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogSW52b2tlIGEgY2FsbGJhY2sgZm9yIGVhY2ggYWN0dWFsIGRpZmZlcmVuY2VcbiAgICovXG4gIHB1YmxpYyBmb3JFYWNoRGlmZmVyZW5jZShjYjogKHR5cGU6ICdQcm9wZXJ0eScgfCAnT3RoZXInLCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBEaWZmZXJlbmNlPGFueT4gfCBQcm9wZXJ0eURpZmZlcmVuY2U8YW55PikgPT4gYW55KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5wcm9wZXJ0eVVwZGF0ZXMpLnNvcnQoKSkge1xuICAgICAgY2IoJ1Byb3BlcnR5Jywga2V5LCB0aGlzLnByb3BlcnR5VXBkYXRlc1trZXldKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5vdGhlckNoYW5nZXMpLnNvcnQoKSkge1xuICAgICAgY2IoJ090aGVyJywga2V5LCB0aGlzLm90aGVyRGlmZnNba2V5XSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5RGlmZmVyZW5jZTxUPihkaWZmOiBEaWZmZXJlbmNlPFQ+KTogZGlmZiBpcyBQcm9wZXJ0eURpZmZlcmVuY2U8VD4ge1xuICByZXR1cm4gKGRpZmYgYXMgUHJvcGVydHlEaWZmZXJlbmNlPFQ+KS5jaGFuZ2VJbXBhY3QgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgYSBtYXAgb2YgSURpZmZlcmVuY2VzIGRvd24gdG8gb25seSByZXRhaW4gdGhlIGFjdHVhbCBjaGFuZ2VzXG4gKi9cbmZ1bmN0aW9uIG9ubHlDaGFuZ2VzPFYsIFQgZXh0ZW5kcyBJRGlmZmVyZW5jZTxWPj4oeHM6IHsgW2tleTogc3RyaW5nXTogVCB9KTogeyBba2V5OiBzdHJpbmddOiBUIH0ge1xuICBjb25zdCByZXQ6IHsgW2tleTogc3RyaW5nXTogVCB9ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgZGlmZl0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgaWYgKGRpZmYuaXNEaWZmZXJlbnQpIHtcbiAgICAgIHJldFtrZXldID0gZGlmZjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deepEqual = deepEqual;\nexports.diffKeyedEntities = diffKeyedEntities;\nexports.unionOf = unionOf;\nexports.mangleLikeCloudFormation = mangleLikeCloudFormation;\nexports.loadResourceModel = loadResourceModel;\nconst aws_service_spec_1 = require(\"@aws-cdk/aws-service-spec\");\n/**\n * Compares two objects for equality, deeply. The function handles arguments that are\n * +null+, +undefined+, arrays and objects. For objects, the function will not take the\n * object prototype into account for the purpose of the comparison, only the values of\n * properties reported by +Object.keys+.\n *\n * If both operands can be parsed to equivalent numbers, will return true.\n * This makes diff consistent with CloudFormation, where a numeric 10 and a literal \"10\"\n * are considered equivalent.\n *\n * @param lvalue - the left operand of the equality comparison.\n * @param rvalue - the right operand of the equality comparison.\n *\n * @returns +true+ if both +lvalue+ and +rvalue+ are equivalent to each other.\n */\nfunction deepEqual(lvalue, rvalue) {\n if (lvalue === rvalue) {\n return true;\n }\n // CloudFormation allows passing strings into boolean-typed fields\n if (((typeof lvalue === 'string' && typeof rvalue === 'boolean') ||\n (typeof lvalue === 'boolean' && typeof rvalue === 'string')) &&\n lvalue.toString() === rvalue.toString()) {\n return true;\n }\n // allows a numeric 10 and a literal \"10\" to be equivalent;\n // this is consistent with CloudFormation.\n if ((typeof lvalue === 'string' || typeof rvalue === 'string') &&\n safeParseFloat(lvalue) === safeParseFloat(rvalue)) {\n return true;\n }\n if (typeof lvalue !== typeof rvalue) {\n return false;\n }\n if (Array.isArray(lvalue) !== Array.isArray(rvalue)) {\n return false;\n }\n if (Array.isArray(lvalue) /* && Array.isArray(rvalue) */) {\n if (lvalue.length !== rvalue.length) {\n return false;\n }\n for (let i = 0; i < lvalue.length; i++) {\n if (!deepEqual(lvalue[i], rvalue[i])) {\n return false;\n }\n }\n return true;\n }\n if (typeof lvalue === 'object' /* && typeof rvalue === 'object' */) {\n if (lvalue === null || rvalue === null) {\n // If both were null, they'd have been ===\n return false;\n }\n const keys = Object.keys(lvalue);\n if (keys.length !== Object.keys(rvalue).length) {\n return false;\n }\n for (const key of keys) {\n if (!rvalue.hasOwnProperty(key)) {\n return false;\n }\n if (key === 'DependsOn') {\n if (!dependsOnEqual(lvalue[key], rvalue[key])) {\n return false;\n }\n // check differences other than `DependsOn`\n continue;\n }\n if (!deepEqual(lvalue[key], rvalue[key])) {\n return false;\n }\n }\n return true;\n }\n // Neither object, nor array: I deduce this is primitive type\n // Primitive type and not ===, so I deduce not deepEqual\n return false;\n}\n/**\n * Compares two arguments to DependsOn for equality.\n *\n * @param lvalue - the left operand of the equality comparison.\n * @param rvalue - the right operand of the equality comparison.\n *\n * @returns +true+ if both +lvalue+ and +rvalue+ are equivalent to each other.\n */\nfunction dependsOnEqual(lvalue, rvalue) {\n // allows ['Value'] and 'Value' to be equal\n if (Array.isArray(lvalue) !== Array.isArray(rvalue)) {\n const array = Array.isArray(lvalue) ? lvalue : rvalue;\n const nonArray = Array.isArray(lvalue) ? rvalue : lvalue;\n if (array.length === 1 && deepEqual(array[0], nonArray)) {\n return true;\n }\n return false;\n }\n // allows arrays passed to DependsOn to be equivalent irrespective of element order\n if (Array.isArray(lvalue) && Array.isArray(rvalue)) {\n if (lvalue.length !== rvalue.length) {\n return false;\n }\n for (let i = 0; i < lvalue.length; i++) {\n for (let j = 0; j < lvalue.length; j++) {\n if ((!deepEqual(lvalue[i], rvalue[j])) && (j === lvalue.length - 1)) {\n return false;\n }\n break;\n }\n }\n return true;\n }\n return false;\n}\n/**\n * Produce the differences between two maps, as a map, using a specified diff function.\n *\n * @param oldValue - the old map.\n * @param newValue - the new map.\n * @param elementDiff - the diff function.\n *\n * @returns a map representing the differences between +oldValue+ and +newValue+.\n */\nfunction diffKeyedEntities(oldValue, newValue, elementDiff) {\n const result = {};\n for (const logicalId of unionOf(Object.keys(oldValue || {}), Object.keys(newValue || {}))) {\n const oldElement = oldValue && oldValue[logicalId];\n const newElement = newValue && newValue[logicalId];\n if (oldElement === undefined && newElement === undefined) {\n // Shouldn't happen in reality, but may happen in tests. Skip.\n continue;\n }\n result[logicalId] = elementDiff(oldElement, newElement, logicalId);\n }\n return result;\n}\n/**\n * Computes the union of two sets of strings.\n *\n * @param lv - the left set of strings.\n * @param rv - the right set of strings.\n *\n * @returns a new array containing all elemebts from +lv+ and +rv+, with no duplicates.\n */\nfunction unionOf(lv, rv) {\n const result = new Set(lv);\n for (const v of rv) {\n result.add(v);\n }\n return new Array(...result);\n}\n/**\n * GetStackTemplate flattens any codepoint greater than \"\\u7f\" to \"?\". This is\n * true even for codepoints in the supplemental planes which are represented\n * in JS as surrogate pairs, all the way up to \"\\u{10ffff}\".\n *\n * This function implements the same mangling in order to provide diagnostic\n * information in `cdk diff`.\n */\nfunction mangleLikeCloudFormation(payload) {\n return payload.replace(/[\\u{80}-\\u{10ffff}]/gu, '?');\n}\n/**\n * A parseFloat implementation that does the right thing for\n * strings like '0.0.0'\n * (for which JavaScript's parseFloat() returns 0).\n * We return NaN for all of these strings that do not represent numbers,\n * and so comparing them fails,\n * and doesn't short-circuit the diff logic.\n */\nfunction safeParseFloat(str) {\n return Number(str);\n}\n/**\n * Lazily load the service spec database and cache the loaded db\n */\nlet DATABASE;\nfunction database() {\n if (!DATABASE) {\n DATABASE = (0, aws_service_spec_1.loadAwsServiceSpecSync)();\n }\n return DATABASE;\n}\n/**\n * Load a Resource model from the Service Spec Database\n *\n * The database is loaded lazily and cached across multiple calls to `loadResourceModel`.\n */\nfunction loadResourceModel(type) {\n return database().lookup('resource', 'cloudFormationType', 'equals', type)[0];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsOEJBOERDO0FBa0RELDhDQWlCQztBQVVELDBCQU1DO0FBVUQsNERBRUM7QUE4QkQsOENBRUM7QUEvTUQsZ0VBQW1FO0FBR25FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE1BQVcsRUFBRSxNQUFXO0lBQ2hELElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELGtFQUFrRTtJQUNsRSxJQUFJLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQzVELENBQUMsT0FBTyxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCwyREFBMkQ7SUFDM0QsMENBQTBDO0lBQzFDLElBQUksQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO1FBQzFELGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sTUFBTSxLQUFLLE9BQU8sTUFBTSxFQUFFLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLEtBQUssQ0FBQztJ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QUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9hZEF3c1NlcnZpY2VTcGVjU3luYyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zZXJ2aWNlLXNwZWMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSwgU3BlY0RhdGFiYXNlIH0gZnJvbSAnQGF3cy1jZGsvc2VydmljZS1zcGVjLXR5cGVzJztcblxuLyoqXG4gKiBDb21wYXJlcyB0d28gb2JqZWN0cyBmb3IgZXF1YWxpdHksIGRlZXBseS4gVGhlIGZ1bmN0aW9uIGhhbmRsZXMgYXJndW1lbnRzIHRoYXQgYXJlXG4gKiArbnVsbCssICt1bmRlZmluZWQrLCBhcnJheXMgYW5kIG9iamVjdHMuIEZvciBvYmplY3RzLCB0aGUgZnVuY3Rpb24gd2lsbCBub3QgdGFrZSB0aGVcbiAqIG9iamVjdCBwcm90b3R5cGUgaW50byBhY2NvdW50IGZvciB0aGUgcHVycG9zZSBvZiB0aGUgY29tcGFyaXNvbiwgb25seSB0aGUgdmFsdWVzIG9mXG4gKiBwcm9wZXJ0aWVzIHJlcG9ydGVkIGJ5ICtPYmplY3Qua2V5cysuXG4gKlxuICogSWYgYm90aCBvcGVyYW5kcyBjYW4gYmUgcGFyc2VkIHRvIGVxdWl2YWxlbnQgbnVtYmVycywgd2lsbCByZXR1cm4gdHJ1ZS5cbiAqIFRoaXMgbWFrZXMgZGlmZiBjb25zaXN0ZW50IHdpdGggQ2xvdWRGb3JtYXRpb24sIHdoZXJlIGEgbnVtZXJpYyAxMCBhbmQgYSBsaXRlcmFsIFwiMTBcIlxuICogYXJlIGNvbnNpZGVyZWQgZXF1aXZhbGVudC5cbiAqXG4gKiBAcGFyYW0gbHZhbHVlIC0gdGhlIGxlZnQgb3BlcmFuZCBvZiB0aGUgZXF1YWxpdHkgY29tcGFyaXNvbi5cbiAqIEBwYXJhbSBydmFsdWUgLSB0aGUgcmlnaHQgb3BlcmFuZCBvZiB0aGUgZXF1YWxpdHkgY29tcGFyaXNvbi5cbiAqXG4gKiBAcmV0dXJucyArdHJ1ZSsgaWYgYm90aCArbHZhbHVlKyBhbmQgK3J2YWx1ZSsgYXJlIGVxdWl2YWxlbnQgdG8gZWFjaCBvdGhlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBFcXVhbChsdmFsdWU6IGFueSwgcnZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKGx2YWx1ZSA9PT0gcnZhbHVlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gQ2xvdWRGb3JtYXRpb24gYWxsb3dzIHBhc3Npbmcgc3RyaW5ncyBpbnRvIGJvb2xlYW4tdHlwZWQgZmllbGRzXG4gIGlmICgoKHR5cGVvZiBsdmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBydmFsdWUgPT09ICdib29sZWFuJykgfHxcbiAgICAgICh0eXBlb2YgbHZhbHVlID09PSAnYm9vbGVhbicgJiYgdHlwZW9mIHJ2YWx1ZSA9PT0gJ3N0cmluZycpKSAmJlxuICAgICAgbHZhbHVlLnRvU3RyaW5nKCkgPT09IHJ2YWx1ZS50b1N0cmluZygpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gYWxsb3dzIGEgbnVtZXJpYyAxMCBhbmQgYSBsaXRlcmFsIFwiMTBcIiB0byBiZSBlcXVpdmFsZW50O1xuICAvLyB0aGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBDbG91ZEZvcm1hdGlvbi5cbiAgaWYgKCh0eXBlb2YgbHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcnZhbHVlID09PSAnc3RyaW5nJykgJiZcbiAgICAgIHNhZmVQYXJzZUZsb2F0KGx2YWx1ZSkgPT09IHNhZmVQYXJzZUZsb2F0KHJ2YWx1ZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIGx2YWx1ZSAhPT0gdHlwZW9mIHJ2YWx1ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShsdmFsdWUpICE9PSBBcnJheS5pc0FycmF5KHJ2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkobHZhbHVlKSAvKiAmJiBBcnJheS5pc0FycmF5KHJ2YWx1ZSkgKi8pIHtcbiAgICBpZiAobHZhbHVlLmxlbmd0aCAhPT0gcnZhbHVlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMCA7IGkgPCBsdmFsdWUubGVuZ3RoIDsgaSsrKSB7XG4gICAgICBpZiAoIWRlZXBFcXVhbChsdmFsdWVbaV0sIHJ2YWx1ZVtpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIGx2YWx1ZSA9PT0gJ29iamVjdCcgLyogJiYgdHlwZW9mIHJ2YWx1ZSA9PT0gJ29iamVjdCcgKi8pIHtcbiAgICBpZiAobHZhbHVlID09PSBudWxsIHx8IHJ2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgLy8gSWYgYm90aCB3ZXJlIG51bGwsIHRoZXknZCBoYXZlIGJlZW4gPT09XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhsdmFsdWUpO1xuICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMocnZhbHVlKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKCFydmFsdWUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAnRGVwZW5kc09uJykge1xuICAgICAgICBpZiAoIWRlcGVuZHNPbkVxdWFsKGx2YWx1ZVtrZXldLCBydmFsdWVba2V5XSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2hlY2sgZGlmZmVyZW5jZXMgb3RoZXIgdGhhbiBgRGVwZW5kc09uYFxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghZGVlcEVxdWFsKGx2YWx1ZVtrZXldLCBydmFsdWVba2V5XSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBOZWl0aGVyIG9iamVjdCwgbm9yIGFycmF5OiBJIGRlZHVjZSB0aGlzIGlzIHByaW1pdGl2ZSB0eXBlXG4gIC8vIFByaW1pdGl2ZSB0eXBlIGFuZCBub3QgPT09LCBzbyBJIGRlZHVjZSBub3QgZGVlcEVxdWFsXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0d28gYXJndW1lbnRzIHRvIERlcGVuZHNPbiBmb3IgZXF1YWxpdHkuXG4gKlxuICogQHBhcmFtIGx2YWx1ZSAtIHRoZSBsZWZ0IG9wZXJhbmQgb2YgdGhlIGVxdWFsaXR5IGNvbXBhcmlzb24uXG4gKiBAcGFyYW0gcnZhbHVlIC0gdGhlIHJpZ2h0IG9wZXJhbmQgb2YgdGhlIGVxdWFsaXR5IGNvbXBhcmlzb24uXG4gKlxuICogQHJldHVybnMgK3RydWUrIGlmIGJvdGggK2x2YWx1ZSsgYW5kICtydmFsdWUrIGFyZSBlcXVpdmFsZW50IHRvIGVhY2ggb3RoZXIuXG4gKi9cbmZ1bmN0aW9uIGRlcGVuZHNPbkVxdWFsKGx2YWx1ZTogYW55LCBydmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyBhbGxvd3MgWydWYWx1ZSddIGFuZCAnVmFsdWUnIHRvIGJlIGVxdWFsXG4gIGlmIChBcnJheS5pc0FycmF5KGx2YWx1ZSkgIT09IEFycmF5LmlzQXJyYXkocnZhbHVlKSkge1xuICAgIGNvbnN0IGFycmF5ID0gQXJyYXkuaXNBcnJheShsdmFsdWUpID8gbHZhbHVlIDogcnZhbHVlO1xuICAgIGNvbnN0IG5vbkFycmF5ID0gQXJyYXkuaXNBcnJheShsdmFsdWUpID8gcnZhbHVlIDogbHZhbHVlO1xuXG4gICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMSAmJiBkZWVwRXF1YWwoYXJyYXlbMF0sIG5vbkFycmF5KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIGFsbG93cyBhcnJheXMgcGFzc2VkIHRvIERlcGVuZHNPbiB0byBiZSBlcXVpdmFsZW50IGlycmVzcGVjdGl2ZSBvZiBlbGVtZW50IG9yZGVyXG4gIGlmIChBcnJheS5pc0FycmF5KGx2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShydmFsdWUpKSB7XG4gICAgaWYgKGx2YWx1ZS5sZW5ndGggIT09IHJ2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDAgOyBpIDwgbHZhbHVlLmxlbmd0aCA7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IDAgOyBqIDwgbHZhbHVlLmxlbmd0aCA7IGorKykge1xuICAgICAgICBpZiAoKCFkZWVwRXF1YWwobHZhbHVlW2ldLCBydmFsdWVbal0pKSAmJiAoaiA9PT0gbHZhbHVlLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBQcm9kdWNlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byBtYXBzLCBhcyBhIG1hcCwgdXNpbmcgYSBzcGVjaWZpZWQgZGlmZiBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gb2xkVmFsdWUgIC0gdGhlIG9sZCBtYXAuXG4gKiBAcGFyYW0gbmV3VmFsdWUgIC0gdGhlIG5ldyBtYXAuXG4gKiBAcGFyYW0gZWxlbWVudERpZmYgLSB0aGUgZGlmZiBmdW5jdGlvbi5cbiAqXG4gKiBAcmV0dXJucyBhIG1hcCByZXByZXNlbnRpbmcgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gK29sZFZhbHVlKyBhbmQgK25ld1ZhbHVlKy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZLZXllZEVudGl0aWVzPFQ+KFxuICBvbGRWYWx1ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCxcbiAgbmV3VmFsdWU6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQsXG4gIGVsZW1lbnREaWZmOiAob2xkRWxlbWVudDogYW55LCBuZXdFbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSA9PiBUKTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgY29uc3QgcmVzdWx0OiB7IFtuYW1lOiBzdHJpbmddOiBUIH0gPSB7fTtcbiAgZm9yIChjb25zdCBsb2dpY2FsSWQgb2YgdW5pb25PZihPYmplY3Qua2V5cyhvbGRWYWx1ZSB8fCB7fSksIE9iamVjdC5rZXlzKG5ld1ZhbHVlIHx8IHt9KSkpIHtcbiAgICBjb25zdCBvbGRFbGVtZW50ID0gb2xkVmFsdWUgJiYgb2xkVmFsdWVbbG9naWNhbElkXTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gbmV3VmFsdWUgJiYgbmV3VmFsdWVbbG9naWNhbElkXTtcblxuICAgIGlmIChvbGRFbGVtZW50ID09PSB1bmRlZmluZWQgJiYgbmV3RWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTaG91bGRuJ3QgaGFwcGVuIGluIHJlYWxpdHksIGJ1dCBtYXkgaGFwcGVuIGluIHRlc3RzLiBTa2lwLlxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgcmVzdWx0W2xvZ2ljYWxJZF0gPSBlbGVtZW50RGlmZihvbGRFbGVtZW50LCBuZXdFbGVtZW50LCBsb2dpY2FsSWQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIHR3byBzZXRzIG9mIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIGx2IC0gdGhlIGxlZnQgc2V0IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gcnYgLSB0aGUgcmlnaHQgc2V0IG9mIHN0cmluZ3MuXG4gKlxuICogQHJldHVybnMgYSBuZXcgYXJyYXkgY29udGFpbmluZyBhbGwgZWxlbWVidHMgZnJvbSArbHYrIGFuZCArcnYrLCB3aXRoIG5vIGR1cGxpY2F0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmlvbk9mKGx2OiBzdHJpbmdbXSB8IFNldDxzdHJpbmc+LCBydjogc3RyaW5nW10gfCBTZXQ8c3RyaW5nPik6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IFNldChsdik7XG4gIGZvciAoY29uc3QgdiBvZiBydikge1xuICAgIHJlc3VsdC5hZGQodik7XG4gIH1cbiAgcmV0dXJuIG5ldyBBcnJheSguLi5yZXN1bHQpO1xufVxuXG4vKipcbiAqIEdldFN0YWNrVGVtcGxhdGUgZmxhdHRlbnMgYW55IGNvZGVwb2ludCBncmVhdGVyIHRoYW4gXCJcXHU3ZlwiIHRvIFwiP1wiLiBUaGlzIGlzXG4gKiB0cnVlIGV2ZW4gZm9yIGNvZGVwb2ludHMgaW4gdGhlIHN1cHBsZW1lbnRhbCBwbGFuZXMgd2hpY2ggYXJlIHJlcHJlc2VudGVkXG4gKiBpbiBKUyBhcyBzdXJyb2dhdGUgcGFpcnMsIGFsbCB0aGUgd2F5IHVwIHRvIFwiXFx1ezEwZmZmZn1cIi5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIHNhbWUgbWFuZ2xpbmcgaW4gb3JkZXIgdG8gcHJvdmlkZSBkaWFnbm9zdGljXG4gKiBpbmZvcm1hdGlvbiBpbiBgY2RrIGRpZmZgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFuZ2xlTGlrZUNsb3VkRm9ybWF0aW9uKHBheWxvYWQ6IHN0cmluZykge1xuICByZXR1cm4gcGF5bG9hZC5yZXBsYWNlKC9bXFx1ezgwfS1cXHV7MTBmZmZmfV0vZ3UsICc/Jyk7XG59XG5cbi8qKlxuICogQSBwYXJzZUZsb2F0IGltcGxlbWVudGF0aW9uIHRoYXQgZG9lcyB0aGUgcmlnaHQgdGhpbmcgZm9yXG4gKiBzdHJpbmdzIGxpa2UgJzAuMC4wJ1xuICogKGZvciB3aGljaCBKYXZhU2NyaXB0J3MgcGFyc2VGbG9hdCgpIHJldHVybnMgMCkuXG4gKiBXZSByZXR1cm4gTmFOIGZvciBhbGwgb2YgdGhlc2Ugc3RyaW5ncyB0aGF0IGRvIG5vdCByZXByZXNlbnQgbnVtYmVycyxcbiAqIGFuZCBzbyBjb21wYXJpbmcgdGhlbSBmYWlscyxcbiAqIGFuZCBkb2Vzbid0IHNob3J0LWNpcmN1aXQgdGhlIGRpZmYgbG9naWMuXG4gKi9cbmZ1bmN0aW9uIHNhZmVQYXJzZUZsb2F0KHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIE51bWJlcihzdHIpO1xufVxuXG4vKipcbiAqIExhemlseSBsb2FkIHRoZSBzZXJ2aWNlIHNwZWMgZGF0YWJhc2UgYW5kIGNhY2hlIHRoZSBsb2FkZWQgZGJcbiAqL1xubGV0IERBVEFCQVNFOiBTcGVjRGF0YWJhc2UgfCB1bmRlZmluZWQ7XG5mdW5jdGlvbiBkYXRhYmFzZSgpOiBTcGVjRGF0YWJhc2Uge1xuICBpZiAoIURBVEFCQVNFKSB7XG4gICAgREFUQUJBU0UgPSBsb2FkQXdzU2VydmljZVNwZWNTeW5jKCk7XG4gIH1cbiAgcmV0dXJuIERBVEFCQVNFO1xufVxuXG4vKipcbiAqIExvYWQgYSBSZXNvdXJjZSBtb2RlbCBmcm9tIHRoZSBTZXJ2aWNlIFNwZWMgRGF0YWJhc2VcbiAqXG4gKiBUaGUgZGF0YWJhc2UgaXMgbG9hZGVkIGxhemlseSBhbmQgY2FjaGVkIGFjcm9zcyBtdWx0aXBsZSBjYWxscyB0byBgbG9hZFJlc291cmNlTW9kZWxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlc291cmNlTW9kZWwodHlwZTogc3RyaW5nKTogUmVzb3VyY2UgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YWJhc2UoKS5sb29rdXAoJ3Jlc291cmNlJywgJ2Nsb3VkRm9ybWF0aW9uVHlwZScsICdlcXVhbHMnLCB0eXBlKVswXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffableCollection = void 0;\n/**\n * Calculate differences of immutable elements\n */\nclass DiffableCollection {\n constructor() {\n this.additions = [];\n this.removals = [];\n this.oldElements = [];\n this.newElements = [];\n }\n addOld(...elements) {\n this.oldElements.push(...elements);\n }\n addNew(...elements) {\n this.newElements.push(...elements);\n }\n calculateDiff() {\n this.additions.push(...difference(this.newElements, this.oldElements));\n this.removals.push(...difference(this.oldElements, this.newElements));\n }\n get hasChanges() {\n return this.additions.length + this.removals.length > 0;\n }\n get hasAdditions() {\n return this.additions.length > 0;\n }\n get hasRemovals() {\n return this.removals.length > 0;\n }\n}\nexports.DiffableCollection = DiffableCollection;\n/**\n * Whether a collection contains some element (by value)\n */\nfunction contains(element, xs) {\n return xs.some(x => x.equal(element));\n}\n/**\n * Return collection except for elements\n */\nfunction difference(collection, elements) {\n return collection.filter(x => !contains(x, elements));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBQS9CO1FBQ2tCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUVsQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQTBCekMsQ0FBQztJQXhCUSxNQUFNLENBQUMsR0FBRyxRQUFhO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLFFBQWE7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBL0JELGdEQStCQztBQVNEOztHQUVHO0FBQ0gsU0FBUyxRQUFRLENBQWtCLE9BQVUsRUFBRSxFQUFPO0lBQ3BELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFVBQVUsQ0FBa0IsVUFBZSxFQUFFLFFBQWE7SUFDakUsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FsY3VsYXRlIGRpZmZlcmVuY2VzIG9mIGltbXV0YWJsZSBlbGVtZW50c1xuICovXG5leHBvcnQgY2xhc3MgRGlmZmFibGVDb2xsZWN0aW9uPFQgZXh0ZW5kcyBFcTxUPj4ge1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkaXRpb25zOiBUW10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IHJlbW92YWxzOiBUW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9sZEVsZW1lbnRzOiBUW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZXdFbGVtZW50czogVFtdID0gW107XG5cbiAgcHVibGljIGFkZE9sZCguLi5lbGVtZW50czogVFtdKSB7XG4gICAgdGhpcy5vbGRFbGVtZW50cy5wdXNoKC4uLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGROZXcoLi4uZWxlbWVudHM6IFRbXSkge1xuICAgIHRoaXMubmV3RWxlbWVudHMucHVzaCguLi5lbGVtZW50cyk7XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlRGlmZigpIHtcbiAgICB0aGlzLmFkZGl0aW9ucy5wdXNoKC4uLmRpZmZlcmVuY2UodGhpcy5uZXdFbGVtZW50cywgdGhpcy5vbGRFbGVtZW50cykpO1xuICAgIHRoaXMucmVtb3ZhbHMucHVzaCguLi5kaWZmZXJlbmNlKHRoaXMub2xkRWxlbWVudHMsIHRoaXMubmV3RWxlbWVudHMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbnMubGVuZ3RoICsgdGhpcy5yZW1vdmFscy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNBZGRpdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkaXRpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1JlbW92YWxzKCkge1xuICAgIHJldHVybiB0aGlzLnJlbW92YWxzLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGluZ3MgdGhhdCBjYW4gYmUgY29tcGFyZWQgdG8gdGhlbXNlbHZlcyAoYnkgdmFsdWUpXG4gKi9cbmludGVyZmFjZSBFcTxUPiB7XG4gIGVxdWFsKG90aGVyOiBUKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGEgY29sbGVjdGlvbiBjb250YWlucyBzb21lIGVsZW1lbnQgKGJ5IHZhbHVlKVxuICovXG5mdW5jdGlvbiBjb250YWluczxUIGV4dGVuZHMgRXE8VD4+KGVsZW1lbnQ6IFQsIHhzOiBUW10pOiBib29sZWFuIHtcbiAgcmV0dXJuIHhzLnNvbWUoeCA9PiB4LmVxdWFsKGVsZW1lbnQpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gY29sbGVjdGlvbiBleGNlcHQgZm9yIGVsZW1lbnRzXG4gKi9cbmZ1bmN0aW9uIGRpZmZlcmVuY2U8VCBleHRlbmRzIEVxPFQ+Pihjb2xsZWN0aW9uOiBUW10sIGVsZW1lbnRzOiBUW10pOiBUW10ge1xuICByZXR1cm4gY29sbGVjdGlvbi5maWx0ZXIoeCA9PiAhY29udGFpbnMoeCwgZWxlbWVudHMpKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ForEachDiffFormatter = void 0;\nexports.isForEachKey = isForEachKey;\nconst chalk = require(\"chalk\");\nconst util_1 = require(\"./diff/util\");\nconst ADDITION = chalk.green('[+]');\nconst UPDATE = chalk.yellow('[~]');\nconst REMOVAL = chalk.red('[-]');\n/**\n * Formatter for Fn::ForEach diff output.\n *\n * Fn::ForEach is a CloudFormation intrinsic that expands a template fragment\n * over a collection at deploy time. Its value is an array:\n * [collection, { \"LogicalId${Var}\": { Type, Properties } }]\n */\nclass ForEachDiffFormatter {\n /**\n * Format a ForEach resource difference\n */\n formatForEach(key, oldValue, newValue) {\n const lines = [];\n const changeType = this.getChangeType(oldValue, newValue);\n const value = newValue ?? oldValue;\n if (!Array.isArray(value) || value.length < 2) {\n lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (unrecognized ForEach structure)`);\n return lines;\n }\n const loopName = key.replace('Fn::ForEach::', '');\n const [collection, templateObj] = value;\n const entries = Object.entries(templateObj);\n if (entries.length === 0) {\n lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (empty ForEach template)`);\n return lines;\n }\n const [[templateKey, templateValue]] = entries;\n const count = Array.isArray(collection)\n ? `${collection.length} resources`\n : 'dynamic count';\n lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (expands to ${count} at deploy time)`);\n lines.push(` Loop variable: ${chalk.blue(loopName)}`);\n lines.push(` Collection: ${this.formatCollection(collection)}`);\n lines.push(` └── ${templateKey} ${chalk.cyan(templateValue?.Type ?? 'Unknown')}`);\n if (changeType === 'update' && oldValue && newValue) {\n const oldProps = oldValue[1]?.[Object.keys(oldValue[1])[0]]?.Properties ?? {};\n const newProps = newValue[1]?.[Object.keys(newValue[1])[0]]?.Properties ?? {};\n const propDiff = this.diffProperties(oldProps, newProps);\n lines.push(...propDiff.map(l => ` ${l}`));\n }\n else {\n for (const [propKey, propValue] of Object.entries(templateValue?.Properties ?? {})) {\n lines.push(` ${propKey}: ${this.formatValue(propValue)}`);\n }\n }\n return lines;\n }\n changeSymbol(type) {\n switch (type) {\n case 'add': return ADDITION;\n case 'remove': return REMOVAL;\n case 'update': return UPDATE;\n }\n }\n formatCollection(collection) {\n if (Array.isArray(collection)) {\n if (collection.length <= 5)\n return JSON.stringify(collection);\n return `[${collection.slice(0, 3).join(', ')}, ... +${collection.length - 3} more]`;\n }\n return JSON.stringify(collection);\n }\n getChangeType(oldVal, newVal) {\n if (!oldVal)\n return 'add';\n if (!newVal)\n return 'remove';\n return 'update';\n }\n formatValue(value) {\n if (typeof value === 'string')\n return value;\n return JSON.stringify(value);\n }\n diffProperties(oldProps, newProps) {\n const lines = [];\n const allKeys = new Set([...Object.keys(oldProps), ...Object.keys(newProps)]);\n for (const key of allKeys) {\n const oldVal = oldProps[key];\n const newVal = newProps[key];\n if (oldVal === undefined) {\n lines.push(`${ADDITION} ${key}: ${this.formatValue(newVal)}`);\n }\n else if (newVal === undefined) {\n lines.push(`${REMOVAL} ${key}: ${this.formatValue(oldVal)}`);\n }\n else if (!(0, util_1.deepEqual)(oldVal, newVal)) {\n lines.push(`${UPDATE} ${key}: ${this.formatValue(oldVal)} → ${this.formatValue(newVal)}`);\n }\n }\n return lines;\n }\n}\nexports.ForEachDiffFormatter = ForEachDiffFormatter;\n/**\n * Check if a logical ID represents a ForEach construct\n */\nfunction isForEachKey(logicalId) {\n return logicalId.startsWith('Fn::ForEach::');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZvcmVhY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmb3JtYXQtZm9yZWFjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SEEsb0NBRUM7QUF6SEQsK0JBQStCO0FBQy9CLHNDQUF3QztBQUV4QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVqQzs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFvQjtJQUMvQjs7T0FFRztJQUNJLGFBQWEsQ0FDbEIsR0FBVyxFQUNYLFFBQXlCLEVBQ3pCLFFBQXlCO1FBRXpCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRW5DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUNuRyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QyxN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QUMsQ0FBQztZQUU3QixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztpQkFBTSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBQSxnQkFBUyxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFwR0Qsb0RBb0dDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsU0FBaUI7SUFDNUMsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tICcuL2RpZmYvdXRpbCc7XG5cbmNvbnN0IEFERElUSU9OID0gY2hhbGsuZ3JlZW4oJ1srXScpO1xuY29uc3QgVVBEQVRFID0gY2hhbGsueWVsbG93KCdbfl0nKTtcbmNvbnN0IFJFTU9WQUwgPSBjaGFsay5yZWQoJ1stXScpO1xuXG4vKipcbiAqIEZvcm1hdHRlciBmb3IgRm46OkZvckVhY2ggZGlmZiBvdXRwdXQuXG4gKlxuICogRm46OkZvckVhY2ggaXMgYSBDbG91ZEZvcm1hdGlvbiBpbnRyaW5zaWMgdGhhdCBleHBhbmRzIGEgdGVtcGxhdGUgZnJhZ21lbnRcbiAqIG92ZXIgYSBjb2xsZWN0aW9uIGF0IGRlcGxveSB0aW1lLiBJdHMgdmFsdWUgaXMgYW4gYXJyYXk6XG4gKiAgIFtjb2xsZWN0aW9uLCB7IFwiTG9naWNhbElkJHtWYXJ9XCI6IHsgVHlwZSwgUHJvcGVydGllcyB9IH1dXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3JFYWNoRGlmZkZvcm1hdHRlciB7XG4gIC8qKlxuICAgKiBGb3JtYXQgYSBGb3JFYWNoIHJlc291cmNlIGRpZmZlcmVuY2VcbiAgICovXG4gIHB1YmxpYyBmb3JtYXRGb3JFYWNoKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9sZFZhbHVlOiBhbnkgfCB1bmRlZmluZWQsXG4gICAgbmV3VmFsdWU6IGFueSB8IHVuZGVmaW5lZCxcbiAgKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGNoYW5nZVR5cGUgPSB0aGlzLmdldENoYW5nZVR5cGUob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZSA9IG5ld1ZhbHVlID8/IG9sZFZhbHVlO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5sZW5ndGggPCAyKSB7XG4gICAgICBsaW5lcy5wdXNoKGAke3RoaXMuY2hhbmdlU3ltYm9sKGNoYW5nZVR5cGUpfSAke2NoYWxrLmN5YW4oa2V5KX0gKHVucmVjb2duaXplZCBGb3JFYWNoIHN0cnVjdHVyZSlgKTtcbiAgICAgIHJldHVybiBsaW5lcztcbiAgICB9XG5cbiAgICBjb25zdCBsb29wTmFtZSA9IGtleS5yZXBsYWNlKCdGbjo6Rm9yRWFjaDo6JywgJycpO1xuICAgIGNvbnN0IFtjb2xsZWN0aW9uLCB0ZW1wbGF0ZU9ial0gPSB2YWx1ZTtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModGVtcGxhdGVPYmogYXMgUmVjb3JkPHN0cmluZywgYW55Pik7XG5cbiAgICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGxpbmVzLnB1c2goYCR7dGhpcy5jaGFuZ2VTeW1ib2woY2hhbmdlVHlwZSl9ICR7Y2hhbGsuY3lhbihrZXkpfSAoZW1wdHkgRm9yRWFjaCB0ZW1wbGF0ZSlgKTtcbiAgICAgIHJldHVybiBsaW5lcztcbiAgICB9XG5cbiAgICBjb25zdCBbW3RlbXBsYXRlS2V5LCB0ZW1wbGF0ZVZhbHVlXV0gPSBlbnRyaWVzO1xuXG4gICAgY29uc3QgY291bnQgPSBBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pXG4gICAgICA/IGAke2NvbGxlY3Rpb24ubGVuZ3RofSByZXNvdXJjZXNgXG4gICAgICA6ICdkeW5hbWljIGNvdW50JztcblxuICAgIGxpbmVzLnB1c2goXG4gICAgICBgJHt0aGlzLmNoYW5nZVN5bWJvbChjaGFuZ2VUeXBlKX0gJHtjaGFsay5jeWFuKGtleSl9IChleHBhbmRzIHRvICR7Y291bnR9IGF0IGRlcGxveSB0aW1lKWAsXG4gICAgKTtcbiAgICBsaW5lcy5wdXNoKGAgICAgTG9vcCB2YXJpYWJsZTogJHtjaGFsay5ibHVlKGxvb3BOYW1lKX1gKTtcbiAgICBsaW5lcy5wdXNoKGAgICAgQ29sbGVjdGlvbjogJHt0aGlzLmZvcm1hdENvbGxlY3Rpb24oY29sbGVjdGlvbil9YCk7XG4gICAgbGluZXMucHVzaChgICAgIOKUlOKUgOKUgCAke3RlbXBsYXRlS2V5fSAke2NoYWxrLmN5YW4odGVtcGxhdGVWYWx1ZT8uVHlwZSA/PyAnVW5rbm93bicpfWApO1xuXG4gICAgaWYgKGNoYW5nZVR5cGUgPT09ICd1cGRhdGUnICYmIG9sZFZhbHVlICYmIG5ld1ZhbHVlKSB7XG4gICAgICBjb25zdCBvbGRQcm9wcyA9IG9sZFZhbHVlWzFdPy5bT2JqZWN0LmtleXMob2xkVmFsdWVbMV0pWzBdXT8uUHJvcGVydGllcyA/PyB7fTtcbiAgICAgIGNvbnN0IG5ld1Byb3BzID0gbmV3VmFsdWVbMV0/LltPYmplY3Qua2V5cyhuZXdWYWx1ZVsxXSlbMF1dPy5Qcm9wZXJ0aWVzID8/IHt9O1xuICAgICAgY29uc3QgcHJvcERpZmYgPSB0aGlzLmRpZmZQcm9wZXJ0aWVzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgICBsaW5lcy5wdXNoKC4uLnByb3BEaWZmLm1hcChsID0+IGAgICAgICAgICR7bH1gKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgW3Byb3BLZXksIHByb3BWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGVtcGxhdGVWYWx1ZT8uUHJvcGVydGllcyA/PyB7fSkpIHtcbiAgICAgICAgbGluZXMucHVzaChgICAgICAgICAke3Byb3BLZXl9OiAke3RoaXMuZm9ybWF0VmFsdWUocHJvcFZhbHVlKX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVN5bWJvbCh0eXBlOiAnYWRkJyB8ICdyZW1vdmUnIHwgJ3VwZGF0ZScpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnYWRkJzogcmV0dXJuIEFERElUSU9OO1xuICAgICAgY2FzZSAncmVtb3ZlJzogcmV0dXJuIFJFTU9WQUw7XG4gICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gVVBEQVRFO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q29sbGVjdGlvbihjb2xsZWN0aW9uOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbi5sZW5ndGggPD0gNSkgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGNvbGxlY3Rpb24pO1xuICAgICAgcmV0dXJuIGBbJHtjb2xsZWN0aW9uLnNsaWNlKDAsIDMpLmpvaW4oJywgJyl9LCAuLi4gKyR7Y29sbGVjdGlvbi5sZW5ndGggLSAzfSBtb3JlXWA7XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjb2xsZWN0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hhbmdlVHlwZShvbGRWYWw6IGFueSwgbmV3VmFsOiBhbnkpOiAnYWRkJyB8ICdyZW1vdmUnIHwgJ3VwZGF0ZScge1xuICAgIGlmICghb2xkVmFsKSByZXR1cm4gJ2FkZCc7XG4gICAgaWYgKCFuZXdWYWwpIHJldHVybiAncmVtb3ZlJztcbiAgICByZXR1cm4gJ3VwZGF0ZSc7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlmZlByb3BlcnRpZXMob2xkUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4sIG5ld1Byb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGFsbEtleXMgPSBuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhvbGRQcm9wcyksIC4uLk9iamVjdC5rZXlzKG5ld1Byb3BzKV0pO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgYWxsS2V5cykge1xuICAgICAgY29uc3Qgb2xkVmFsID0gb2xkUHJvcHNba2V5XTtcbiAgICAgIGNvbnN0IG5ld1ZhbCA9IG5ld1Byb3BzW2tleV07XG5cbiAgICAgIGlmIChvbGRWYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke0FERElUSU9OfSAke2tleX06ICR7dGhpcy5mb3JtYXRWYWx1ZShuZXdWYWwpfWApO1xuICAgICAgfSBlbHNlIGlmIChuZXdWYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke1JFTU9WQUx9ICR7a2V5fTogJHt0aGlzLmZvcm1hdFZhbHVlKG9sZFZhbCl9YCk7XG4gICAgICB9IGVsc2UgaWYgKCFkZWVwRXF1YWwob2xkVmFsLCBuZXdWYWwpKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7VVBEQVRFfSAke2tleX06ICR7dGhpcy5mb3JtYXRWYWx1ZShvbGRWYWwpfSDihpIgJHt0aGlzLmZvcm1hdFZhbHVlKG5ld1ZhbCl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmVzO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBsb2dpY2FsIElEIHJlcHJlc2VudHMgYSBGb3JFYWNoIGNvbnN0cnVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGb3JFYWNoS2V5KGxvZ2ljYWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBsb2dpY2FsSWQuc3RhcnRzV2l0aCgnRm46OkZvckVhY2g6OicpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatTable = formatTable;\nconst chalk = require(\"chalk\");\nconst string_width_1 = require(\"string-width\");\nconst table = require(\"table\");\n/**\n * Render a two-dimensional array to a visually attractive table\n *\n * First row is considered the table header.\n */\nfunction formatTable(cells, columns, noHorizontalLines) {\n return table.table(cells, {\n border: TABLE_BORDER_CHARACTERS,\n columns: buildColumnConfig(columns !== undefined ? calculateColumnWidths(cells, columns) : undefined),\n drawHorizontalLine: (line) => {\n // Numbering like this: [line 0] [header = row[0]] [line 1] [row 1] [line 2] [content 2] [line 3]\n if (noHorizontalLines) {\n return line < 2 || line === cells.length;\n }\n return (line < 2 || line === cells.length) || lineBetween(cells[line - 1], cells[line]);\n },\n }).trimRight();\n}\n/**\n * Whether we should draw a line between two rows\n *\n * Draw horizontal line if 2nd column values are different.\n */\nfunction lineBetween(rowA, rowB) {\n return rowA[1] !== rowB[1];\n}\nfunction buildColumnConfig(widths) {\n if (widths === undefined) {\n return undefined;\n }\n const ret = {};\n widths.forEach((width, i) => {\n if (width === undefined) {\n return;\n }\n ret[i] = { width };\n });\n return ret;\n}\n/**\n * Calculate column widths given a terminal width\n *\n * We do this by calculating a fair share for every column. Extra width smaller\n * than the fair share is evenly distributed over all columns that exceed their\n * fair share.\n */\nfunction calculateColumnWidths(rows, terminalWidth) {\n // The terminal is sometimes reported to be 0. Also if the terminal is VERY narrow,\n // just assume a reasonable minimum size.\n terminalWidth = Math.max(terminalWidth, 40);\n // use 'string-width' to not count ANSI chars as actual character width\n const columns = rows[0].map((_, i) => Math.max(...rows.map(row => (0, string_width_1.default)(String(row[i])))));\n // If we have no terminal width, do nothing\n const contentWidth = terminalWidth - 2 - columns.length * 3;\n // If we don't exceed the terminal width, do nothing\n if (sum(columns) <= contentWidth) {\n return columns;\n }\n const fairShare = Math.min(contentWidth / columns.length);\n const smallColumns = columns.filter(w => w < fairShare);\n let distributableWidth = contentWidth - sum(smallColumns);\n const fairDistributable = Math.floor(distributableWidth / (columns.length - smallColumns.length));\n const ret = new Array();\n for (const requestedWidth of columns) {\n if (requestedWidth < fairShare) {\n // Small column gets what they want\n ret.push(requestedWidth);\n }\n else {\n // Last column gets all remaining, otherwise get fair redist share\n const width = distributableWidth < 2 * fairDistributable ? distributableWidth : fairDistributable;\n ret.push(width);\n distributableWidth -= width;\n }\n }\n return ret;\n}\nfunction sum(xs) {\n let total = 0;\n for (const x of xs) {\n total += x;\n }\n return total;\n}\n// What color the table is going to be\nconst tableColor = chalk.gray;\n// Unicode table characters with a color\nconst TABLE_BORDER_CHARACTERS = {\n topBody: tableColor('─'),\n topJoin: tableColor('┬'),\n topLeft: tableColor('┌'),\n topRight: tableColor('┐'),\n bottomBody: tableColor('─'),\n bottomJoin: tableColor('┴'),\n bottomLeft: tableColor('└'),\n bottomRight: tableColor('┘'),\n bodyLeft: tableColor('│'),\n bodyRight: tableColor('│'),\n bodyJoin: tableColor('│'),\n joinBody: tableColor('─'),\n joinLeft: tableColor('├'),\n joinRight: tableColor('┤'),\n joinJoin: tableColor('┼'),\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esa0NBWUM7QUFyQkQsK0JBQStCO0FBQy9CLCtDQUF1QztBQUN2QywrQkFBK0I7QUFFL0I7Ozs7R0FJRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFpQixFQUFFLE9BQTJCLEVBQUUsaUJBQTJCO0lBQ3JHLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDeEIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDckcsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQixpR0FBaUc7WUFDakcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDM0MsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQztLQUNGLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLElBQWMsRUFBRSxJQUFjO0lBQ2pELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxNQUE0QjtJ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QUFzQztBQUN0QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBRTlCLHdDQUF3QztBQUN4QyxNQUFNLHVCQUF1QixHQUFHO0lBQzlCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzVCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgc3RyaW5nV2lkdGggZnJvbSAnc3RyaW5nLXdpZHRoJztcbmltcG9ydCAqIGFzIHRhYmxlIGZyb20gJ3RhYmxlJztcblxuLyoqXG4gKiBSZW5kZXIgYSB0d28tZGltZW5zaW9uYWwgYXJyYXkgdG8gYSB2aXN1YWxseSBhdHRyYWN0aXZlIHRhYmxlXG4gKlxuICogRmlyc3Qgcm93IGlzIGNvbnNpZGVyZWQgdGhlIHRhYmxlIGhlYWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRhYmxlKGNlbGxzOiBzdHJpbmdbXVtdLCBjb2x1bW5zOiBudW1iZXIgfCB1bmRlZmluZWQsIG5vSG9yaXpvbnRhbExpbmVzPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiB0YWJsZS50YWJsZShjZWxscywge1xuICAgIGJvcmRlcjogVEFCTEVfQk9SREVSX0NIQVJBQ1RFUlMsXG4gICAgY29sdW1uczogYnVpbGRDb2x1bW5Db25maWcoY29sdW1ucyAhPT0gdW5kZWZpbmVkID8gY2FsY3VsYXRlQ29sdW1uV2lkdGhzKGNlbGxzLCBjb2x1bW5zKSA6IHVuZGVmaW5lZCksXG4gICAgZHJhd0hvcml6b250YWxMaW5lOiAobGluZSkgPT4ge1xuICAgICAgLy8gTnVtYmVyaW5nIGxpa2UgdGhpczogW2xpbmUgMF0gW2hlYWRlciA9IHJvd1swXV0gW2xpbmUgMV0gW3JvdyAxXSBbbGluZSAyXSBbY29udGVudCAyXSBbbGluZSAzXVxuICAgICAgaWYgKG5vSG9yaXpvbnRhbExpbmVzKSB7XG4gICAgICAgIHJldHVybiBsaW5lIDwgMiB8fCBsaW5lID09PSBjZWxscy5sZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gKGxpbmUgPCAyIHx8IGxpbmUgPT09IGNlbGxzLmxlbmd0aCkgfHwgbGluZUJldHdlZW4oY2VsbHNbbGluZSAtIDFdLCBjZWxsc1tsaW5lXSk7XG4gICAgfSxcbiAgfSkudHJpbVJpZ2h0KCk7XG59XG5cbi8qKlxuICogV2hldGhlciB3ZSBzaG91bGQgZHJhdyBhIGxpbmUgYmV0d2VlbiB0d28gcm93c1xuICpcbiAqIERyYXcgaG9yaXpvbnRhbCBsaW5lIGlmIDJuZCBjb2x1bW4gdmFsdWVzIGFyZSBkaWZmZXJlbnQuXG4gKi9cbmZ1bmN0aW9uIGxpbmVCZXR3ZWVuKHJvd0E6IHN0cmluZ1tdLCByb3dCOiBzdHJpbmdbXSkge1xuICByZXR1cm4gcm93QVsxXSAhPT0gcm93QlsxXTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb2x1bW5Db25maWcod2lkdGhzOiBudW1iZXJbXSB8IHVuZGVmaW5lZCk6IHsgW2luZGV4OiBudW1iZXJdOiB0YWJsZS5Db2x1bW5Vc2VyQ29uZmlnIH0gfCB1bmRlZmluZWQge1xuICBpZiAod2lkdGhzID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmV0OiB7IFtpbmRleDogbnVtYmVyXTogdGFibGUuQ29sdW1uVXNlckNvbmZpZyB9ID0ge307XG4gIHdpZHRocy5mb3JFYWNoKCh3aWR0aCwgaSkgPT4ge1xuICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldFtpXSA9IHsgd2lkdGggfTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgY29sdW1uIHdpZHRocyBnaXZlbiBhIHRlcm1pbmFsIHdpZHRoXG4gKlxuICogV2UgZG8gdGhpcyBieSBjYWxjdWxhdGluZyBhIGZhaXIgc2hhcmUgZm9yIGV2ZXJ5IGNvbHVtbi4gRXh0cmEgd2lkdGggc21hbGxlclxuICogdGhhbiB0aGUgZmFpciBzaGFyZSBpcyBldmVubHkgZGlzdHJpYnV0ZWQgb3ZlciBhbGwgY29sdW1ucyB0aGF0IGV4Y2VlZCB0aGVpclxuICogZmFpciBzaGFyZS5cbiAqL1xuZnVuY3Rpb24gY2FsY3VsYXRlQ29sdW1uV2lkdGhzKHJvd3M6IHN0cmluZ1tdW10sIHRlcm1pbmFsV2lkdGg6IG51bWJlcik6IG51bWJlcltdIHtcbiAgLy8gVGhlIHRlcm1pbmFsIGlzIHNvbWV0aW1lcyByZXBvcnRlZCB0byBiZSAwLiBBbHNvIGlmIHRoZSB0ZXJtaW5hbCBpcyBWRVJZIG5hcnJvdyxcbiAgLy8ganVzdCBhc3N1bWUgYSByZWFzb25hYmxlIG1pbmltdW0gc2l6ZS5cbiAgdGVybWluYWxXaWR0aCA9IE1hdGgubWF4KHRlcm1pbmFsV2lkdGgsIDQwKTtcblxuICAvLyB1c2UgJ3N0cmluZy13aWR0aCcgdG8gbm90IGNvdW50IEFOU0kgY2hhcnMgYXMgYWN0dWFsIGNoYXJhY3RlciB3aWR0aFxuICBjb25zdCBjb2x1bW5zID0gcm93c1swXS5tYXAoKF8sIGkpID0+IE1hdGgubWF4KC4uLnJvd3MubWFwKHJvdyA9PiBzdHJpbmdXaWR0aChTdHJpbmcocm93W2ldKSkpKSk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBubyB0ZXJtaW5hbCB3aWR0aCwgZG8gbm90aGluZ1xuICBjb25zdCBjb250ZW50V2lkdGggPSB0ZXJtaW5hbFdpZHRoIC0gMiAtIGNvbHVtbnMubGVuZ3RoICogMztcblxuICAvLyBJZiB3ZSBkb24ndCBleGNlZWQgdGhlIHRlcm1pbmFsIHdpZHRoLCBkbyBub3RoaW5nXG4gIGlmIChzdW0oY29sdW1ucykgPD0gY29udGVudFdpZHRoKSB7XG4gICAgcmV0dXJuIGNvbHVtbnM7XG4gIH1cblxuICBjb25zdCBmYWlyU2hhcmUgPSBNYXRoLm1pbihjb250ZW50V2lkdGggLyBjb2x1bW5zLmxlbmd0aCk7XG4gIGNvbnN0IHNtYWxsQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKHcgPT4gdyA8IGZhaXJTaGFyZSk7XG5cbiAgbGV0IGRpc3RyaWJ1dGFibGVXaWR0aCA9IGNvbnRlbnRXaWR0aCAtIHN1bShzbWFsbENvbHVtbnMpO1xuICBjb25zdCBmYWlyRGlzdHJpYnV0YWJsZSA9IE1hdGguZmxvb3IoZGlzdHJpYnV0YWJsZVdpZHRoIC8gKGNvbHVtbnMubGVuZ3RoIC0gc21hbGxDb2x1bW5zLmxlbmd0aCkpO1xuXG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG4gIGZvciAoY29uc3QgcmVxdWVzdGVkV2lkdGggb2YgY29sdW1ucykge1xuICAgIGlmIChyZXF1ZXN0ZWRXaWR0aCA8IGZhaXJTaGFyZSkge1xuICAgICAgLy8gU21hbGwgY29sdW1uIGdldHMgd2hhdCB0aGV5IHdhbnRcbiAgICAgIHJldC5wdXNoKHJlcXVlc3RlZFdpZHRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTGFzdCBjb2x1bW4gZ2V0cyBhbGwgcmVtYWluaW5nLCBvdGhlcndpc2UgZ2V0IGZhaXIgcmVkaXN0IHNoYXJlXG4gICAgICBjb25zdCB3aWR0aCA9IGRpc3RyaWJ1dGFibGVXaWR0aCA8IDIgKiBmYWlyRGlzdHJpYnV0YWJsZSA/IGRpc3RyaWJ1dGFibGVXaWR0aCA6IGZhaXJEaXN0cmlidXRhYmxlO1xuICAgICAgcmV0LnB1c2god2lkdGgpO1xuICAgICAgZGlzdHJpYnV0YWJsZVdpZHRoIC09IHdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHN1bSh4czogbnVtYmVyW10pOiBudW1iZXIge1xuICBsZXQgdG90YWwgPSAwO1xuICBmb3IgKGNvbnN0IHggb2YgeHMpIHtcbiAgICB0b3RhbCArPSB4O1xuICB9XG4gIHJldHVybiB0b3RhbDtcbn1cblxuLy8gV2hhdCBjb2xvciB0aGUgdGFibGUgaXMgZ29pbmcgdG8gYmVcbmNvbnN0IHRhYmxlQ29sb3IgPSBjaGFsay5ncmF5O1xuXG4vLyBVbmljb2RlIHRhYmxlIGNoYXJhY3RlcnMgd2l0aCBhIGNvbG9yXG5jb25zdCBUQUJMRV9CT1JERVJfQ0hBUkFDVEVSUyA9IHtcbiAgdG9wQm9keTogdGFibGVDb2xvcign4pSAJyksXG4gIHRvcEpvaW46IHRhYmxlQ29sb3IoJ+KUrCcpLFxuICB0b3BMZWZ0OiB0YWJsZUNvbG9yKCfilIwnKSxcbiAgdG9wUmlnaHQ6IHRhYmxlQ29sb3IoJ+KUkCcpLFxuICBib3R0b21Cb2R5OiB0YWJsZUNvbG9yKCfilIAnKSxcbiAgYm90dG9tSm9pbjogdGFibGVDb2xvcign4pS0JyksXG4gIGJvdHRvbUxlZnQ6IHRhYmxlQ29sb3IoJ+KUlCcpLFxuICBib3R0b21SaWdodDogdGFibGVDb2xvcign4pSYJyksXG4gIGJvZHlMZWZ0OiB0YWJsZUNvbG9yKCfilIInKSxcbiAgYm9keVJpZ2h0OiB0YWJsZUNvbG9yKCfilIInKSxcbiAgYm9keUpvaW46IHRhYmxlQ29sb3IoJ+KUgicpLFxuICBqb2luQm9keTogdGFibGVDb2xvcign4pSAJyksXG4gIGpvaW5MZWZ0OiB0YWJsZUNvbG9yKCfilJwnKSxcbiAgam9pblJpZ2h0OiB0YWJsZUNvbG9yKCfilKQnKSxcbiAgam9pbkpvaW46IHRhYmxlQ29sb3IoJ+KUvCcpLFxufTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Formatter = void 0;\nexports.formatDifferences = formatDifferences;\nexports.formatSecurityChanges = formatSecurityChanges;\nconst util_1 = require(\"util\");\nconst chalk = require(\"chalk\");\nconst util_2 = require(\"./diff/util\");\nconst diff_template_1 = require(\"./diff-template\");\nconst format_foreach_1 = require(\"./format-foreach\");\nconst format_table_1 = require(\"./format-table\");\n// from cx-api\nconst PATH_METADATA_KEY = 'aws:cdk:path';\n/* eslint-disable @typescript-eslint/no-require-imports */\nconst { structuredPatch } = require('diff');\n/**\n * Renders template differences to the process' console.\n *\n * @param stream - The IO stream where to output the rendered diff.\n * @param templateDiff - TemplateDiff to be rendered to the console.\n * @param logicalToPathMap - A map from logical ID to construct path. Useful in\n * case there is no aws:cdk:path metadata in the template.\n * @param context - the number of context lines to use in arbitrary JSON diff (defaults to 3).\n */\nfunction formatDifferences(stream, templateDiff, logicalToPathMap = {}, context = 3) {\n const formatter = new Formatter(stream, logicalToPathMap, templateDiff, context);\n if (templateDiff.awsTemplateFormatVersion || templateDiff.transform || templateDiff.description) {\n formatter.printSectionHeader('Template');\n formatter.formatDifference('AWSTemplateFormatVersion', 'AWSTemplateFormatVersion', templateDiff.awsTemplateFormatVersion);\n formatter.formatDifference('Transform', 'Transform', templateDiff.transform);\n formatter.formatDifference('Description', 'Description', templateDiff.description);\n formatter.printSectionFooter();\n }\n formatSecurityChangesWithBanner(formatter, templateDiff);\n formatter.formatSection('Parameters', 'Parameter', templateDiff.parameters);\n formatter.formatSection('Metadata', 'Metadata', templateDiff.metadata);\n formatter.formatSection('Mappings', 'Mapping', templateDiff.mappings);\n formatter.formatSection('Conditions', 'Condition', templateDiff.conditions);\n formatter.formatSection('Resources', 'Resource', templateDiff.resources, formatter.formatResourceDifference.bind(formatter));\n formatter.formatSection('Outputs', 'Output', templateDiff.outputs);\n formatter.formatSection('Other Changes', 'Unknown', templateDiff.unknown);\n}\n/**\n * Renders a diff of security changes to the given stream\n */\nfunction formatSecurityChanges(stream, templateDiff, logicalToPathMap = {}, context) {\n const formatter = new Formatter(stream, logicalToPathMap, templateDiff, context);\n formatSecurityChangesWithBanner(formatter, templateDiff);\n}\nfunction formatSecurityChangesWithBanner(formatter, templateDiff) {\n if (!templateDiff.iamChanges.hasChanges && !templateDiff.securityGroupChanges.hasChanges) {\n return;\n }\n formatter.formatIamChanges(templateDiff.iamChanges);\n formatter.formatSecurityGroupChanges(templateDiff.securityGroupChanges);\n formatter.warning('(NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299)');\n formatter.printSectionFooter();\n}\nconst ADDITION = chalk.green('[+]');\nconst CONTEXT = chalk.grey('[ ]');\nconst UPDATE = chalk.yellow('[~]');\nconst REMOVAL = chalk.red('[-]');\nconst IMPORT = chalk.blue('[←]');\nclass Formatter {\n constructor(stream, logicalToPathMap, diff, context = 3) {\n this.stream = stream;\n this.logicalToPathMap = logicalToPathMap;\n this.context = context;\n // Read additional construct paths from the diff if it is supplied\n if (diff) {\n this.readConstructPathsFrom(diff);\n }\n }\n print(fmt, ...args) {\n this.stream.write(chalk.reset((0, util_1.format)(fmt, ...args)) + '\\n');\n }\n warning(fmt, ...args) {\n this.stream.write(chalk.yellow((0, util_1.format)(fmt, ...args)) + '\\n');\n }\n formatSection(title, entryType, collection, formatter = this.formatDifference.bind(this)) {\n if (collection.differenceCount === 0) {\n return;\n }\n this.printSectionHeader(title);\n collection.forEachDifference((id, diff) => formatter(entryType, id, diff));\n this.printSectionFooter();\n }\n printSectionHeader(title) {\n this.print(chalk.underline(chalk.bold(title)));\n }\n printSectionFooter() {\n this.print('');\n }\n /**\n * Print a simple difference for a given named entity.\n *\n * @param logicalId - the name of the entity that is different.\n * @param diff - the difference to be rendered.\n */\n formatDifference(type, logicalId, diff) {\n if (!diff || !diff.isDifferent) {\n return;\n }\n let value;\n const oldValue = this.formatValue(diff.oldValue, chalk.red);\n const newValue = this.formatValue(diff.newValue, chalk.green);\n if (diff.isAddition) {\n value = newValue;\n }\n else if (diff.isUpdate) {\n value = `${oldValue} to ${newValue}`;\n }\n else if (diff.isRemoval) {\n value = oldValue;\n }\n this.print(`${this.formatPrefix(diff)} ${chalk.cyan(type)} ${this.formatLogicalId(logicalId)}: ${value}`);\n }\n /**\n * Print a resource difference for a given logical ID.\n *\n * @param logicalId - the logical ID of the resource that changed.\n * @param diff - the change to be rendered.\n */\n formatResourceDifference(_type, logicalId, diff) {\n if (!diff.isDifferent) {\n return;\n }\n // Handle Fn::ForEach resources specially\n if ((0, format_foreach_1.isForEachKey)(logicalId)) {\n const forEachFormatter = new format_foreach_1.ForEachDiffFormatter();\n const lines = forEachFormatter.formatForEach(logicalId, diff.oldValue, diff.newValue);\n for (const line of lines) {\n this.print(line);\n }\n return;\n }\n const resourceType = diff.isRemoval ? diff.oldResourceType : diff.newResourceType;\n const message = [\n this.formatResourcePrefix(diff),\n this.formatValue(resourceType, chalk.cyan),\n this.formatLogicalId(logicalId),\n this.formatImpact(diff.changeImpact),\n this.formatMove(diff.move),\n ].filter(Boolean).join(' ');\n this.print(message);\n if (diff.isUpdate) {\n const differenceCount = diff.differenceCount;\n let processedCount = 0;\n diff.forEachDifference((_, name, values) => {\n processedCount += 1;\n this.formatTreeDiff(name, values, processedCount === differenceCount);\n });\n }\n }\n formatResourcePrefix(diff) {\n if (diff.isImport) {\n return IMPORT;\n }\n return this.formatPrefix(diff);\n }\n formatPrefix(diff) {\n if (diff.isAddition) {\n return ADDITION;\n }\n if (diff.isUpdate) {\n return UPDATE;\n }\n if (diff.isRemoval) {\n return REMOVAL;\n }\n return chalk.reset('[?]');\n }\n /**\n * @param value - the value to be formatted.\n * @param color - the color to be used.\n *\n * @returns the formatted string, with color applied.\n */\n formatValue(value, color) {\n if (value == null) {\n return undefined;\n }\n if (typeof value === 'string') {\n return color(value);\n }\n return color(JSON.stringify(value));\n }\n /**\n * @param impact - the impact to be formatted\n * @returns a user-friendly, colored string representing the impact.\n */\n formatImpact(impact) {\n switch (impact) {\n case diff_template_1.ResourceImpact.MAY_REPLACE:\n return chalk.italic(chalk.yellow('may be replaced'));\n case diff_template_1.ResourceImpact.WILL_REPLACE:\n return chalk.italic(chalk.bold(chalk.red('replace')));\n case diff_template_1.ResourceImpact.WILL_DESTROY:\n return chalk.italic(chalk.bold(chalk.red('destroy')));\n case diff_template_1.ResourceImpact.WILL_ORPHAN:\n return chalk.italic(chalk.yellow('orphan'));\n case diff_template_1.ResourceImpact.WILL_IMPORT:\n return chalk.italic(chalk.blue('import'));\n case diff_template_1.ResourceImpact.WILL_UPDATE:\n case diff_template_1.ResourceImpact.WILL_CREATE:\n case diff_template_1.ResourceImpact.NO_CHANGE:\n return ''; // no extra info is gained here\n }\n }\n formatMove(move) {\n return !move ? '' : chalk.yellow('(OR', chalk.italic(chalk.bold('move')), `${move.direction} ${move.stackName}.${move.resourceLogicalId} via refactoring)`);\n }\n /**\n * Renders a tree of differences under a particular name.\n * @param name - the name of the root of the tree.\n * @param diff - the difference on the tree.\n * @param last - whether this is the last node of a parent tree.\n */\n formatTreeDiff(name, diff, last) {\n let additionalInfo = '';\n if ((0, diff_template_1.isPropertyDifference)(diff)) {\n if (diff.changeImpact === diff_template_1.ResourceImpact.MAY_REPLACE) {\n additionalInfo = ' (may cause replacement)';\n }\n else if (diff.changeImpact === diff_template_1.ResourceImpact.WILL_REPLACE) {\n additionalInfo = ' (requires replacement)';\n }\n }\n this.print(' %s─ %s %s%s', last ? '└' : '├', this.changeTag(diff.oldValue, diff.newValue), name, additionalInfo);\n return this.formatObjectDiff(diff.oldValue, diff.newValue, ` ${last ? ' ' : '│'}`);\n }\n /**\n * Renders the difference between two objects, looking for the differences as deep as possible,\n * and rendering a tree graph of the path until the difference is found.\n *\n * @param oldObject - the old object.\n * @param newObject - the new object.\n * @param linePrefix - a prefix (indent-like) to be used on every line.\n */\n formatObjectDiff(oldObject, newObject, linePrefix) {\n if ((typeof oldObject !== typeof newObject) || Array.isArray(oldObject) || typeof oldObject === 'string' || typeof oldObject === 'number') {\n if (oldObject !== undefined && newObject !== undefined) {\n if (typeof oldObject === 'object' || typeof newObject === 'object') {\n const oldStr = JSON.stringify(oldObject, null, 2);\n const newStr = JSON.stringify(newObject, null, 2);\n const diff = _diffStrings(oldStr, newStr, this.context);\n for (let i = 0; i < diff.length; i++) {\n this.print('%s %s %s', linePrefix, i === 0 ? '└─' : ' ', diff[i]);\n }\n }\n else {\n this.print('%s ├─ %s %s', linePrefix, REMOVAL, this.formatValue(oldObject, chalk.red));\n this.print('%s └─ %s %s', linePrefix, ADDITION, this.formatValue(newObject, chalk.green));\n }\n }\n else if (oldObject !== undefined /* && newObject === undefined */) {\n this.print('%s └─ %s', linePrefix, this.formatValue(oldObject, chalk.red));\n }\n else /* if (oldObject === undefined && newObject !== undefined) */ {\n this.print('%s └─ %s', linePrefix, this.formatValue(newObject, chalk.green));\n }\n return;\n }\n const keySet = new Set(Object.keys(oldObject));\n Object.keys(newObject).forEach(k => keySet.add(k));\n const keys = new Array(...keySet).filter(k => !(0, util_2.deepEqual)(oldObject[k], newObject[k])).sort();\n const lastKey = keys[keys.length - 1];\n for (const key of keys) {\n const oldValue = oldObject[key];\n const newValue = newObject[key];\n const treePrefix = key === lastKey ? '└' : '├';\n if (oldValue !== undefined && newValue !== undefined) {\n this.print('%s %s─ %s %s:', linePrefix, treePrefix, this.changeTag(oldValue, newValue), chalk.blue(`.${key}`));\n this.formatObjectDiff(oldValue, newValue, `${linePrefix} ${key === lastKey ? ' ' : '│'}`);\n }\n else if (oldValue !== undefined /* && newValue === undefined */) {\n this.print('%s %s─ %s Removed: %s', linePrefix, treePrefix, REMOVAL, chalk.blue(`.${key}`));\n }\n else /* if (oldValue === undefined && newValue !== undefined */ {\n this.print('%s %s─ %s Added: %s', linePrefix, treePrefix, ADDITION, chalk.blue(`.${key}`));\n }\n }\n }\n /**\n * @param oldValue - the old value of a difference.\n * @param newValue - the new value of a difference.\n *\n * @returns a tag to be rendered in the diff, reflecting whether the difference\n * was an ADDITION, UPDATE or REMOVAL.\n */\n changeTag(oldValue, newValue) {\n if (oldValue !== undefined && newValue !== undefined) {\n return UPDATE;\n }\n else if (oldValue !== undefined /* && newValue === undefined*/) {\n return REMOVAL;\n }\n else /* if (oldValue === undefined && newValue !== undefined) */ {\n return ADDITION;\n }\n }\n /**\n * Find 'aws:cdk:path' metadata in the diff and add it to the logicalToPathMap\n *\n * There are multiple sources of logicalID -> path mappings: synth metadata\n * and resource metadata, and we combine all sources into a single map.\n */\n readConstructPathsFrom(templateDiff) {\n for (const [logicalId, resourceDiff] of Object.entries(templateDiff.resources)) {\n if (!resourceDiff) {\n continue;\n }\n const oldPathMetadata = resourceDiff.oldValue?.Metadata?.[PATH_METADATA_KEY];\n if (oldPathMetadata && !(logicalId in this.logicalToPathMap)) {\n this.logicalToPathMap[logicalId] = oldPathMetadata;\n }\n const newPathMetadata = resourceDiff.newValue?.Metadata?.[PATH_METADATA_KEY];\n if (newPathMetadata && !(logicalId in this.logicalToPathMap)) {\n this.logicalToPathMap[logicalId] = newPathMetadata;\n }\n }\n }\n formatLogicalId(logicalId) {\n // if we have a path in the map, return it\n const normalized = this.normalizedLogicalIdPath(logicalId);\n if (normalized) {\n return `${normalized} ${chalk.gray(logicalId)}`;\n }\n return logicalId;\n }\n normalizedLogicalIdPath(logicalId) {\n // if we have a path in the map, return it\n const path = this.logicalToPathMap[logicalId];\n return path ? normalizePath(path) : undefined;\n /**\n * Path is supposed to start with \"/stack-name\". If this is the case (i.e. path has more than\n * two components, we remove the first part. Otherwise, we just use the full path.\n */\n function normalizePath(p) {\n if (p.startsWith('/')) {\n p = p.slice(1);\n }\n let parts = p.split('/');\n if (parts.length > 1) {\n parts = parts.slice(1);\n // remove the last component if it's \"Resource\" or \"Default\" (if we have more than a single component)\n if (parts.length > 1) {\n const last = parts[parts.length - 1];\n if (last === 'Resource' || last === 'Default') {\n parts = parts.slice(0, parts.length - 1);\n }\n }\n p = parts.join('/');\n }\n return p;\n }\n }\n formatIamChanges(changes) {\n if (!changes.hasChanges) {\n return;\n }\n if (changes.statements.hasChanges) {\n this.printSectionHeader('IAM Statement Changes');\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeStatements()), this.stream.columns));\n }\n if (changes.managedPolicies.hasChanges) {\n this.printSectionHeader('IAM Policy Changes');\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeManagedPolicies()), this.stream.columns));\n }\n if (changes.ssoPermissionSets.hasChanges || changes.ssoInstanceACAConfigs.hasChanges || changes.ssoAssignments.hasChanges) {\n this.printSectionHeader('IAM Identity Center Changes');\n if (changes.ssoPermissionSets.hasChanges) {\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeSsoPermissionSets()), this.stream.columns));\n }\n if (changes.ssoInstanceACAConfigs.hasChanges) {\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeSsoInstanceACAConfigs()), this.stream.columns));\n }\n if (changes.ssoAssignments.hasChanges) {\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarizeSsoAssignments()), this.stream.columns));\n }\n }\n }\n formatSecurityGroupChanges(changes) {\n if (!changes.hasChanges) {\n return;\n }\n this.printSectionHeader('Security Group Changes');\n this.print((0, format_table_1.formatTable)(this.deepSubstituteBracedLogicalIds(changes.summarize()), this.stream.columns));\n }\n deepSubstituteBracedLogicalIds(rows) {\n return rows.map(row => row.map(this.substituteBracedLogicalIds.bind(this)));\n }\n /**\n * Substitute all strings like ${LogId.xxx} with the path instead of the logical ID\n */\n substituteBracedLogicalIds(source) {\n return source.replace(/\\$\\{([^.}]+)(.[^}]+)?\\}/ig, (_match, logId, suffix) => {\n return '${' + (this.normalizedLogicalIdPath(logId) || logId) + (suffix || '') + '}';\n });\n }\n}\nexports.Formatter = Formatter;\n/**\n * Creates a unified diff of two strings.\n *\n * @param oldStr - the \"old\" version of the string.\n * @param newStr - the \"new\" version of the string.\n * @param context - the number of context lines to use in arbitrary JSON diff.\n *\n * @returns an array of diff lines.\n */\nfunction _diffStrings(oldStr, newStr, context) {\n const patch = structuredPatch(null, null, oldStr, newStr, null, null, { context });\n const result = new Array();\n for (const hunk of patch.hunks) {\n result.push(chalk.magenta(`@@ -${hunk.oldStart},${hunk.oldLines} +${hunk.newStart},${hunk.newLines} @@`));\n const baseIndent = _findIndent(hunk.lines);\n for (const line of hunk.lines) {\n // Don't care about termination newline.\n if (line === '\\\\ No newline at end of file') {\n continue;\n }\n const marker = line.charAt(0);\n const text = line.slice(1 + baseIndent);\n switch (marker) {\n case ' ':\n result.push(`${CONTEXT} ${text}`);\n break;\n case '+':\n result.push(chalk.bold(`${ADDITION} ${chalk.green(text)}`));\n break;\n case '-':\n result.push(chalk.bold(`${REMOVAL} ${chalk.red(text)}`));\n break;\n default:\n throw new Error(`Unexpected diff marker: ${marker} (full line: ${line})`);\n }\n }\n }\n return result;\n function _findIndent(lines) {\n let indent = Number.MAX_SAFE_INTEGER;\n for (const line of lines) {\n for (let i = 1; i < line.length; i++) {\n if (line.charAt(i) !== ' ') {\n indent = indent > i - 1 ? i - 1 : indent;\n break;\n }\n }\n }\n return indent;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQStCQSw4Q0F3QkM7QUFLRCxzREFTQztBQXJFRCwrQkFBOEI7QUFDOUIsK0JBQStCO0FBRS9CLHNDQUF3QztBQUV4QyxtREFBdUU7QUFDdkUscURBQXNFO0FBQ3RFLGlEQUE2QztBQUk3QyxjQUFjO0FBQ2QsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFFekMsMERBQTBEO0FBQzFELE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFPNUM7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsTUFBb0IsRUFDcEIsWUFBMEIsRUFDMUIsbUJBQW9ELEVBQUUsRUFDdEQsVUFBa0IsQ0FBQztJQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWpGLElBQUksWUFBWSxDQUFDLHdCQUF3QixJQUFJLFlBQVksQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsWUFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDMUgsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRixTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0JBQStCLENBQUMsU0FB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SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IERpZmZlcmVuY2VDb2xsZWN0aW9uLCBNb3ZlLCBUZW1wbGF0ZURpZmYgfSBmcm9tICcuL2RpZmYvdHlwZXMnO1xuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi9kaWZmL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBEaWZmZXJlbmNlLCBSZXNvdXJjZURpZmZlcmVuY2UgfSBmcm9tICcuL2RpZmYtdGVtcGxhdGUnO1xuaW1wb3J0IHsgaXNQcm9wZXJ0eURpZmZlcmVuY2UsIFJlc291cmNlSW1wYWN0IH0gZnJvbSAnLi9kaWZmLXRlbXBsYXRlJztcbmltcG9ydCB7IEZvckVhY2hEaWZmRm9ybWF0dGVyLCBpc0ZvckVhY2hLZXkgfSBmcm9tICcuL2Zvcm1hdC1mb3JlYWNoJztcbmltcG9ydCB7IGZvcm1hdFRhYmxlIH0gZnJvbSAnLi9mb3JtYXQtdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBJYW1DaGFuZ2VzIH0gZnJvbSAnLi9pYW0vaWFtLWNoYW5nZXMnO1xuaW1wb3J0IHR5cGUgeyBTZWN1cml0eUdyb3VwQ2hhbmdlcyB9IGZyb20gJy4vbmV0d29yay9zZWN1cml0eS1ncm91cC1jaGFuZ2VzJztcblxuLy8gZnJvbSBjeC1hcGlcbmNvbnN0IFBBVEhfTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6cGF0aCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IHsgc3RydWN0dXJlZFBhdGNoIH0gPSByZXF1aXJlKCdkaWZmJyk7XG4vKiBlc2xpbnQtZW5hYmxlICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0U3RyZWFtIGV4dGVuZHMgTm9kZUpTLldyaXRhYmxlU3RyZWFtIHtcbiAgY29sdW1ucz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRlbXBsYXRlIGRpZmZlcmVuY2VzIHRvIHRoZSBwcm9jZXNzJyBjb25zb2xlLlxuICpcbiAqIEBwYXJhbSBzdHJlYW0gICAgICAgICAgIC0gVGhlIElPIHN0cmVhbSB3aGVyZSB0byBvdXRwdXQgdGhlIHJlbmRlcmVkIGRpZmYuXG4gKiBAcGFyYW0gdGVtcGxhdGVEaWZmICAgICAtIFRlbXBsYXRlRGlmZiB0byBiZSByZW5kZXJlZCB0byB0aGUgY29uc29sZS5cbiAqIEBwYXJhbSBsb2dpY2FsVG9QYXRoTWFwIC0gQSBtYXAgZnJvbSBsb2dpY2FsIElEIHRvIGNvbnN0cnVjdCBwYXRoLiBVc2VmdWwgaW5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdGhlcmUgaXMgbm8gYXdzOmNkazpwYXRoIG1ldGFkYXRhIGluIHRoZSB0ZW1wbGF0ZS5cbiAqIEBwYXJhbSBjb250ZXh0ICAgICAgICAgIC0gdGhlIG51bWJlciBvZiBjb250ZXh0IGxpbmVzIHRvIHVzZSBpbiBhcmJpdHJhcnkgSlNPTiBkaWZmIChkZWZhdWx0cyB0byAzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERpZmZlcmVuY2VzKFxuICBzdHJlYW06IEZvcm1hdFN0cmVhbSxcbiAgdGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYsXG4gIGxvZ2ljYWxUb1BhdGhNYXA6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSxcbiAgY29udGV4dDogbnVtYmVyID0gMykge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwgbG9naWNhbFRvUGF0aE1hcCwgdGVtcGxhdGVEaWZmLCBjb250ZXh0KTtcblxuICBpZiAodGVtcGxhdGVEaWZmLmF3c1RlbXBsYXRlRm9ybWF0VmVyc2lvbiB8fCB0ZW1wbGF0ZURpZmYudHJhbnNmb3JtIHx8IHRlbXBsYXRlRGlmZi5kZXNjcmlwdGlvbikge1xuICAgIGZvcm1hdHRlci5wcmludFNlY3Rpb25IZWFkZXIoJ1RlbXBsYXRlJyk7XG4gICAgZm9ybWF0dGVyLmZvcm1hdERpZmZlcmVuY2UoJ0FXU1RlbXBsYXRlRm9ybWF0VmVyc2lvbicsICdBV1NUZW1wbGF0ZUZvcm1hdFZlcnNpb24nLCB0ZW1wbGF0ZURpZmYuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uKTtcbiAgICBmb3JtYXR0ZXIuZm9ybWF0RGlmZmVyZW5jZSgnVHJhbnNmb3JtJywgJ1RyYW5zZm9ybScsIHRlbXBsYXRlRGlmZi50cmFuc2Zvcm0pO1xuICAgIGZvcm1hdHRlci5mb3JtYXREaWZmZXJlbmNlKCdEZXNjcmlwdGlvbicsICdEZXNjcmlwdGlvbicsIHRlbXBsYXRlRGlmZi5kZXNjcmlwdGlvbik7XG4gICAgZm9ybWF0dGVyLnByaW50U2VjdGlvbkZvb3RlcigpO1xuICB9XG5cbiAgZm9ybWF0U2VjdXJpdHlDaGFuZ2VzV2l0aEJhbm5lcihmb3JtYXR0ZXIsIHRlbXBsYXRlRGlmZik7XG5cbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ1BhcmFtZXRlcnMnLCAnUGFyYW1ldGVyJywgdGVtcGxhdGVEaWZmLnBhcmFtZXRlcnMpO1xuICBmb3JtYXR0ZXIuZm9ybWF0U2VjdGlvbignTWV0YWRhdGEnLCAnTWV0YWRhdGEnLCB0ZW1wbGF0ZURpZmYubWV0YWRhdGEpO1xuICBmb3JtYXR0ZXIuZm9ybWF0U2VjdGlvbignTWFwcGluZ3MnLCAnTWFwcGluZycsIHRlbXBsYXRlRGlmZi5tYXBwaW5ncyk7XG4gIGZvcm1hdHRlci5mb3JtYXRTZWN0aW9uKCdDb25kaXRpb25zJywgJ0NvbmRpdGlvbicsIHRlbXBsYXRlRGlmZi5jb25kaXRpb25zKTtcbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ1Jlc291cmNlcycsICdSZXNvdXJjZScsIHRlbXBsYXRlRGlmZi5yZXNvdXJjZXMsIGZvcm1hdHRlci5mb3JtYXRSZXNvdXJjZURpZmZlcmVuY2UuYmluZChmb3JtYXR0ZXIpKTtcbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ091dHB1dHMnLCAnT3V0cHV0JywgdGVtcGxhdGVEaWZmLm91dHB1dHMpO1xuICBmb3JtYXR0ZXIuZm9ybWF0U2VjdGlvbignT3RoZXIgQ2hhbmdlcycsICdVbmtub3duJywgdGVtcGxhdGVEaWZmLnVua25vd24pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBkaWZmIG9mIHNlY3VyaXR5IGNoYW5nZXMgdG8gdGhlIGdpdmVuIHN0cmVhbVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2VjdXJpdHlDaGFuZ2VzKFxuICBzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSxcbiAgdGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYsXG4gIGxvZ2ljYWxUb1BhdGhNYXA6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSxcbiAgY29udGV4dD86IG51bWJlcixcbikge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwgbG9naWNhbFRvUGF0aE1hcCwgdGVtcGxhdGVEaWZmLCBjb250ZXh0KTtcblxuICBmb3JtYXRTZWN1cml0eUNoYW5nZXNXaXRoQmFubmVyKGZvcm1hdHRlciwgdGVtcGxhdGVEaWZmKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0U2VjdXJpdHlDaGFuZ2VzV2l0aEJhbm5lcihmb3JtYXR0ZXI6IEZvcm1hdHRlciwgdGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYpIHtcbiAgaWYgKCF0ZW1wbGF0ZURpZmYuaWFtQ2hhbmdlcy5oYXNDaGFuZ2VzICYmICF0ZW1wbGF0ZURpZmYuc2VjdXJpdHlHcm91cENoYW5nZXMuaGFzQ2hhbmdlcykge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3JtYXR0ZXIuZm9ybWF0SWFtQ2hhbmdlcyh0ZW1wbGF0ZURpZmYuaWFtQ2hhbmdlcyk7XG4gIGZvcm1hdHRlci5mb3JtYXRTZWN1cml0eUdyb3VwQ2hhbmdlcyh0ZW1wbGF0ZURpZmYuc2VjdXJpdHlHcm91cENoYW5nZXMpO1xuXG4gIGZvcm1hdHRlci53YXJuaW5nKCcoTk9URTogVGhlcmUgbWF5IGJlIHNlY3VyaXR5LXJlbGF0ZWQgY2hhbmdlcyBub3QgaW4gdGhpcyBsaXN0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMjk5KScpO1xuICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG59XG5cbmNvbnN0IEFERElUSU9OID0gY2hhbGsuZ3JlZW4oJ1srXScpO1xuY29uc3QgQ09OVEVYVCA9IGNoYWxrLmdyZXkoJ1sgXScpO1xuY29uc3QgVVBEQVRFID0gY2hhbGsueWVsbG93KCdbfl0nKTtcbmNvbnN0IFJFTU9WQUwgPSBjaGFsay5yZWQoJ1stXScpO1xuY29uc3QgSU1QT1JUID0gY2hhbGsuYmx1ZSgnW+KGkF0nKTtcblxuZXhwb3J0IGNsYXNzIEZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBGb3JtYXRTdHJlYW0sXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dpY2FsVG9QYXRoTWFwOiB7IFtsb2dpY2FsSWQ6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIGRpZmY/OiBUZW1wbGF0ZURpZmYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBudW1iZXIgPSAzKSB7XG4gICAgLy8gUmVhZCBhZGRpdGlvbmFsIGNvbnN0cnVjdCBwYXRocyBmcm9tIHRoZSBkaWZmIGlmIGl0IGlzIHN1cHBsaWVkXG4gICAgaWYgKGRpZmYpIHtcbiAgICAgIHRoaXMucmVhZENvbnN0cnVjdFBhdGhzRnJvbShkaWZmKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJpbnQoZm10OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY2hhbGsucmVzZXQoZm9ybWF0KGZtdCwgLi4uYXJncykpICsgJ1xcbicpO1xuICB9XG5cbiAgcHVibGljIHdhcm5pbmcoZm10OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY2hhbGsueWVsbG93KGZvcm1hdChmbXQsIC4uLmFyZ3MpKSArICdcXG4nKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXRTZWN0aW9uPFYsIFQgZXh0ZW5kcyBEaWZmZXJlbmNlPFY+PihcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGVudHJ5VHlwZTogc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IERpZmZlcmVuY2VDb2xsZWN0aW9uPFYsIFQ+LFxuICAgIGZvcm1hdHRlcjogKHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZywgZGlmZjogVCkgPT4gdm9pZCA9IHRoaXMuZm9ybWF0RGlmZmVyZW5jZS5iaW5kKHRoaXMpKSB7XG4gICAgaWYgKGNvbGxlY3Rpb24uZGlmZmVyZW5jZUNvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIodGl0bGUpO1xuICAgIGNvbGxlY3Rpb24uZm9yRWFjaERpZmZlcmVuY2UoKGlkLCBkaWZmKSA9PiBmb3JtYXR0ZXIoZW50cnlUeXBlLCBpZCwgZGlmZikpO1xuICAgIHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnRTZWN0aW9uSGVhZGVyKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByaW50KGNoYWxrLnVuZGVybGluZShjaGFsay5ib2xkKHRpdGxlKSkpO1xuICB9XG5cbiAgcHVibGljIHByaW50U2VjdGlvbkZvb3RlcigpIHtcbiAgICB0aGlzLnByaW50KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludCBhIHNpbXBsZSBkaWZmZXJlbmNlIGZvciBhIGdpdmVuIG5hbWVkIGVudGl0eS5cbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCAtIHRoZSBuYW1lIG9mIHRoZSBlbnRpdHkgdGhhdCBpcyBkaWZmZXJlbnQuXG4gICAqIEBwYXJhbSBkaWZmIC0gdGhlIGRpZmZlcmVuY2UgdG8gYmUgcmVuZGVyZWQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0RGlmZmVyZW5jZSh0eXBlOiBzdHJpbmcsIGxvZ2ljYWxJZDogc3RyaW5nLCBkaWZmOiBEaWZmZXJlbmNlPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIWRpZmYgfHwgIWRpZmYuaXNEaWZmZXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoZGlmZi5vbGRWYWx1ZSwgY2hhbGsucmVkKTtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoZGlmZi5uZXdWYWx1ZSwgY2hhbGsuZ3JlZW4pO1xuICAgIGlmIChkaWZmLmlzQWRkaXRpb24pIHtcbiAgICAgIHZhbHVlID0gbmV3VmFsdWU7XG4gICAgfSBlbHNlIGlmIChkaWZmLmlzVXBkYXRlKSB7XG4gICAgICB2YWx1ZSA9IGAke29sZFZhbHVlfSB0byAke25ld1ZhbHVlfWA7XG4gICAgfSBlbHNlIGlmIChkaWZmLmlzUmVtb3ZhbCkge1xuICAgICAgdmFsdWUgPSBvbGRWYWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnByaW50KGAke3RoaXMuZm9ybWF0UHJlZml4KGRpZmYpfSAke2NoYWxrLmN5YW4odHlwZSl9ICR7dGhpcy5mb3JtYXRMb2dpY2FsSWQobG9naWNhbElkKX06ICR7dmFsdWV9YCk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnQgYSByZXNvdXJjZSBkaWZmZXJlbmNlIGZvciBhIGdpdmVuIGxvZ2ljYWwgSUQuXG4gICAqXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgLSB0aGUgbG9naWNhbCBJRCBvZiB0aGUgcmVzb3VyY2UgdGhhdCBjaGFuZ2VkLlxuICAgKiBAcGFyYW0gZGlmZiAgICAgIC0gdGhlIGNoYW5nZSB0byBiZSByZW5kZXJlZC5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRSZXNvdXJjZURpZmZlcmVuY2UoX3R5cGU6IHN0cmluZywgbG9naWNhbElkOiBzdHJpbmcsIGRpZmY6IFJlc291cmNlRGlmZmVyZW5jZSkge1xuICAgIGlmICghZGlmZi5pc0RpZmZlcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBGbjo6Rm9yRWFjaCByZXNvdXJjZXMgc3BlY2lhbGx5XG4gICAgaWYgKGlzRm9yRWFjaEtleShsb2dpY2FsSWQpKSB7XG4gICAgICBjb25zdCBmb3JFYWNoRm9ybWF0dGVyID0gbmV3IEZvckVhY2hEaWZmRm9ybWF0dGVyKCk7XG4gICAgICBjb25zdCBsaW5lcyA9IGZvckVhY2hGb3JtYXR0ZXIuZm9ybWF0Rm9yRWFjaChsb2dpY2FsSWQsIGRpZmYub2xkVmFsdWUsIGRpZmYubmV3VmFsdWUpO1xuICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgIHRoaXMucHJpbnQobGluZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gZGlmZi5pc1JlbW92YWwgPyBkaWZmLm9sZFJlc291cmNlVHlwZSA6IGRpZmYubmV3UmVzb3VyY2VUeXBlO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IFtcbiAgICAgIHRoaXMuZm9ybWF0UmVzb3VyY2VQcmVmaXgoZGlmZiksXG4gICAgICB0aGlzLmZvcm1hdFZhbHVlKHJlc291cmNlVHlwZSwgY2hhbGsuY3lhbiksXG4gICAgICB0aGlzLmZvcm1hdExvZ2ljYWxJZChsb2dpY2FsSWQpLFxuICAgICAgdGhpcy5mb3JtYXRJbXBhY3QoZGlmZi5jaGFuZ2VJbXBhY3QpLFxuICAgICAgdGhpcy5mb3JtYXRNb3ZlKGRpZmYubW92ZSksXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuXG4gICAgdGhpcy5wcmludChtZXNzYWdlKTtcblxuICAgIGlmIChkaWZmLmlzVXBkYXRlKSB7XG4gICAgICBjb25zdCBkaWZmZXJlbmNlQ291bnQgPSBkaWZmLmRpZmZlcmVuY2VDb3VudDtcbiAgICAgIGxldCBwcm9jZXNzZWRDb3VudCA9IDA7XG4gICAgICBkaWZmLmZvckVhY2hEaWZmZXJlbmNlKChfLCBuYW1lLCB2YWx1ZXMpID0+IHtcbiAgICAgICAgcHJvY2Vzc2VkQ291bnQgKz0gMTtcbiAgICAgICAgdGhpcy5mb3JtYXRUcmVlRGlmZihuYW1lLCB2YWx1ZXMsIHByb2Nlc3NlZENvdW50ID09PSBkaWZmZXJlbmNlQ291bnQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdFJlc291cmNlUHJlZml4KGRpZmY6IFJlc291cmNlRGlmZmVyZW5jZSkge1xuICAgIGlmIChkaWZmLmlzSW1wb3J0KSB7XG4gICAgICByZXR1cm4gSU1QT1JUO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvcm1hdFByZWZpeChkaWZmKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXRQcmVmaXg8VD4oZGlmZjogRGlmZmVyZW5jZTxUPikge1xuICAgIGlmIChkaWZmLmlzQWRkaXRpb24pIHtcbiAgICAgIHJldHVybiBBRERJVElPTjtcbiAgICB9XG4gICAgaWYgKGRpZmYuaXNVcGRhdGUpIHtcbiAgICAgIHJldHVybiBVUERBVEU7XG4gICAgfVxuICAgIGlmIChkaWZmLmlzUmVtb3ZhbCkge1xuICAgICAgcmV0dXJuIFJFTU9WQUw7XG4gICAgfVxuICAgIHJldHVybiBjaGFsay5yZXNldCgnWz9dJyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHZhbHVlIC0gdGhlIHZhbHVlIHRvIGJlIGZvcm1hdHRlZC5cbiAgICogQHBhcmFtIGNvbG9yIC0gdGhlIGNvbG9yIHRvIGJlIHVzZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLCB3aXRoIGNvbG9yIGFwcGxpZWQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0VmFsdWUodmFsdWU6IGFueSwgY29sb3I6IChzdHI6IHN0cmluZykgPT4gc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY29sb3IodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gY29sb3IoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gaW1wYWN0IC0gdGhlIGltcGFjdCB0byBiZSBmb3JtYXR0ZWRcbiAgICogQHJldHVybnMgYSB1c2VyLWZyaWVuZGx5LCBjb2xvcmVkIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGltcGFjdC5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRJbXBhY3QoaW1wYWN0OiBSZXNvdXJjZUltcGFjdCkge1xuICAgIHN3aXRjaCAoaW1wYWN0KSB7XG4gICAgICBjYXNlIFJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFOlxuICAgICAgICByZXR1cm4gY2hhbGsuaXRhbGljKGNoYWxrLnllbGxvdygnbWF5IGJlIHJlcGxhY2VkJykpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0U6XG4gICAgICAgIHJldHVybiBjaGFsay5pdGFsaWMoY2hhbGsuYm9sZChjaGFsay5yZWQoJ3JlcGxhY2UnKSkpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX0RFU1RST1k6XG4gICAgICAgIHJldHVybiBjaGFsay5pdGFsaWMoY2hhbGsuYm9sZChjaGFsay5yZWQoJ2Rlc3Ryb3knKSkpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX09SUEhBTjpcbiAgICAgICAgcmV0dXJuIGNoYWxrLml0YWxpYyhjaGFsay55ZWxsb3coJ29ycGhhbicpKTtcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9JTVBPUlQ6XG4gICAgICAgIHJldHVybiBjaGFsay5pdGFsaWMoY2hhbGsuYmx1ZSgnaW1wb3J0JykpO1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURTpcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9DUkVBVEU6XG4gICAgICBjYXNlIFJlc291cmNlSW1wYWN0Lk5PX0NIQU5HRTpcbiAgICAgICAgcmV0dXJuICcnOyAvLyBubyBleHRyYSBpbmZvIGlzIGdhaW5lZCBoZXJlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRNb3ZlKG1vdmU/OiBNb3ZlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gIW1vdmUgPyAnJyA6IGNoYWxrLnllbGxvdygnKE9SJywgY2hhbGsuaXRhbGljKGNoYWxrLmJvbGQoJ21vdmUnKSksIGAke21vdmUuZGlyZWN0aW9ufSAke21vdmUuc3RhY2tOYW1lfS4ke21vdmUucmVzb3VyY2VMb2dpY2FsSWR9IHZpYSByZWZhY3RvcmluZylgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgdHJlZSBvZiBkaWZmZXJlbmNlcyB1bmRlciBhIHBhcnRpY3VsYXIgbmFtZS5cbiAgICogQHBhcmFtIG5hbWUgICAgLSB0aGUgbmFtZSBvZiB0aGUgcm9vdCBvZiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIGRpZmYgICAgLSB0aGUgZGlmZmVyZW5jZSBvbiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIGxhc3QgICAgLSB3aGV0aGVyIHRoaXMgaXMgdGhlIGxhc3Qgbm9kZSBvZiBhIHBhcmVudCB0cmVlLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdFRyZWVEaWZmKG5hbWU6IHN0cmluZywgZGlmZjogRGlmZmVyZW5jZTxhbnk+LCBsYXN0OiBib29sZWFuKSB7XG4gICAgbGV0IGFkZGl0aW9uYWxJbmZvID0gJyc7XG4gICAgaWYgKGlzUHJvcGVydHlEaWZmZXJlbmNlKGRpZmYpKSB7XG4gICAgICBpZiAoZGlmZi5jaGFuZ2VJbXBhY3QgPT09IFJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFKSB7XG4gICAgICAgIGFkZGl0aW9uYWxJbmZvID0gJyAobWF5IGNhdXNlIHJlcGxhY2VtZW50KSc7XG4gICAgICB9IGVsc2UgaWYgKGRpZmYuY2hhbmdlSW1wYWN0ID09PSBSZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0UpIHtcbiAgICAgICAgYWRkaXRpb25hbEluZm8gPSAnIChyZXF1aXJlcyByZXBsYWNlbWVudCknO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnByaW50KCcgJXPilIAgJXMgJXMlcycsIGxhc3QgPyAn4pSUJyA6ICfilJwnLCB0aGlzLmNoYW5nZVRhZyhkaWZmLm9sZFZhbHVlLCBkaWZmLm5ld1ZhbHVlKSwgbmFtZSwgYWRkaXRpb25hbEluZm8pO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdE9iamVjdERpZmYoZGlmZi5vbGRWYWx1ZSwgZGlmZi5uZXdWYWx1ZSwgYCAke2xhc3QgPyAnICcgOiAn4pSCJ31gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIG9iamVjdHMsIGxvb2tpbmcgZm9yIHRoZSBkaWZmZXJlbmNlcyBhcyBkZWVwIGFzIHBvc3NpYmxlLFxuICAgKiBhbmQgcmVuZGVyaW5nIGEgdHJlZSBncmFwaCBvZiB0aGUgcGF0aCB1bnRpbCB0aGUgZGlmZmVyZW5jZSBpcyBmb3VuZC5cbiAgICpcbiAgICogQHBhcmFtIG9sZE9iamVjdCAgLSB0aGUgb2xkIG9iamVjdC5cbiAgICogQHBhcmFtIG5ld09iamVjdCAgLSB0aGUgbmV3IG9iamVjdC5cbiAgICogQHBhcmFtIGxpbmVQcmVmaXggLSBhIHByZWZpeCAoaW5kZW50LWxpa2UpIHRvIGJlIHVzZWQgb24gZXZlcnkgbGluZS5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRPYmplY3REaWZmKG9sZE9iamVjdDogYW55LCBuZXdPYmplY3Q6IGFueSwgbGluZVByZWZpeDogc3RyaW5nKSB7XG4gICAgaWYgKCh0eXBlb2Ygb2xkT2JqZWN0ICE9PSB0eXBlb2YgbmV3T2JqZWN0KSB8fCBBcnJheS5pc0FycmF5KG9sZE9iamVjdCkgfHwgdHlwZW9mIG9sZE9iamVjdCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9sZE9iamVjdCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmIChvbGRPYmplY3QgIT09IHVuZGVmaW5lZCAmJiBuZXdPYmplY3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIG9sZE9iamVjdCA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ld09iamVjdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBvbGRTdHIgPSBKU09OLnN0cmluZ2lmeShvbGRPYmplY3QsIG51bGwsIDIpO1xuICAgICAgICAgIGNvbnN0IG5ld1N0ciA9IEpTT04uc3RyaW5naWZ5KG5ld09iamVjdCwgbnVsbCwgMik7XG4gICAgICAgICAgY29uc3QgZGlmZiA9IF9kaWZmU3RyaW5ncyhvbGRTdHIsIG5ld1N0ciwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMucHJpbnQoJyVzICAgJXMgJXMnLCBsaW5lUHJlZml4LCBpID09PSAwID8gJ+KUlOKUgCcgOiAnICAnLCBkaWZmW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJzilIAgJXMgJXMnLCBsaW5lUHJlZml4LCBSRU1PVkFMLCB0aGlzLmZvcm1hdFZhbHVlKG9sZE9iamVjdCwgY2hhbGsucmVkKSk7XG4gICAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJTilIAgJXMgJXMnLCBsaW5lUHJlZml4LCBBRERJVElPTiwgdGhpcy5mb3JtYXRWYWx1ZShuZXdPYmplY3QsIGNoYWxrLmdyZWVuKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAob2xkT2JqZWN0ICE9PSB1bmRlZmluZWQgLyogJiYgbmV3T2JqZWN0ID09PSB1bmRlZmluZWQgKi8pIHtcbiAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJTilIAgJXMnLCBsaW5lUHJlZml4LCB0aGlzLmZvcm1hdFZhbHVlKG9sZE9iamVjdCwgY2hhbGsucmVkKSk7XG4gICAgICB9IGVsc2UgLyogaWYgKG9sZE9iamVjdCA9PT0gdW5kZWZpbmVkICYmIG5ld09iamVjdCAhPT0gdW5kZWZpbmVkKSAqLyB7XG4gICAgICAgIHRoaXMucHJpbnQoJyVzICAg4pSU4pSAICVzJywgbGluZVByZWZpeCwgdGhpcy5mb3JtYXRWYWx1ZShuZXdPYmplY3QsIGNoYWxrLmdyZWVuKSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGtleVNldCA9IG5ldyBTZXQoT2JqZWN0LmtleXMob2xkT2JqZWN0KSk7XG4gICAgT2JqZWN0LmtleXMobmV3T2JqZWN0KS5mb3JFYWNoKGsgPT4ga2V5U2V0LmFkZChrKSk7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBBcnJheSguLi5rZXlTZXQpLmZpbHRlcihrID0+ICFkZWVwRXF1YWwob2xkT2JqZWN0W2tdLCBuZXdPYmplY3Rba10pKS5zb3J0KCk7XG4gICAgY29uc3QgbGFzdEtleSA9IGtleXNba2V5cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IG9sZE9iamVjdFtrZXldO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBuZXdPYmplY3Rba2V5XTtcbiAgICAgIGNvbnN0IHRyZWVQcmVmaXggPSBrZXkgPT09IGxhc3RLZXkgPyAn4pSUJyA6ICfilJwnO1xuICAgICAgaWYgKG9sZFZhbHVlICE9PSB1bmRlZmluZWQgJiYgbmV3VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnByaW50KCclcyAgICVz4pSAICVzICVzOicsIGxpbmVQcmVmaXgsIHRyZWVQcmVmaXgsIHRoaXMuY2hhbmdlVGFnKG9sZFZhbHVlLCBuZXdWYWx1ZSksIGNoYWxrLmJsdWUoYC4ke2tleX1gKSk7XG4gICAgICAgIHRoaXMuZm9ybWF0T2JqZWN0RGlmZihvbGRWYWx1ZSwgbmV3VmFsdWUsIGAke2xpbmVQcmVmaXh9ICAgJHtrZXkgPT09IGxhc3RLZXkgPyAnICcgOiAn4pSCJ31gKTtcbiAgICAgIH0gZWxzZSBpZiAob2xkVmFsdWUgIT09IHVuZGVmaW5lZCAvKiAmJiBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkICovKSB7XG4gICAgICAgIHRoaXMucHJpbnQoJyVzICAgJXPilIAgJXMgUmVtb3ZlZDogJXMnLCBsaW5lUHJlZml4LCB0cmVlUHJlZml4LCBSRU1PVkFMLCBjaGFsay5ibHVlKGAuJHtrZXl9YCkpO1xuICAgICAgfSBlbHNlIC8qIGlmIChvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlICE9PSB1bmRlZmluZWQgKi8ge1xuICAgICAgICB0aGlzLnByaW50KCclcyAgICVz4pSAICVzIEFkZGVkOiAlcycsIGxpbmVQcmVmaXgsIHRyZWVQcmVmaXgsIEFERElUSU9OLCBjaGFsay5ibHVlKGAuJHtrZXl9YCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gb2xkVmFsdWUgLSB0aGUgb2xkIHZhbHVlIG9mIGEgZGlmZmVyZW5jZS5cbiAgICogQHBhcmFtIG5ld1ZhbHVlIC0gdGhlIG5ldyB2YWx1ZSBvZiBhIGRpZmZlcmVuY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgdGFnIHRvIGJlIHJlbmRlcmVkIGluIHRoZSBkaWZmLCByZWZsZWN0aW5nIHdoZXRoZXIgdGhlIGRpZmZlcmVuY2VcbiAgICogICAgICB3YXMgYW4gQURESVRJT04sIFVQREFURSBvciBSRU1PVkFMLlxuICAgKi9cbiAgcHVibGljIGNoYW5nZVRhZyhvbGRWYWx1ZTogYW55IHwgdW5kZWZpbmVkLCBuZXdWYWx1ZTogYW55IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAob2xkVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gVVBEQVRFO1xuICAgIH0gZWxzZSBpZiAob2xkVmFsdWUgIT09IHVuZGVmaW5lZCAvKiAmJiBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKi8pIHtcbiAgICAgIHJldHVybiBSRU1PVkFMO1xuICAgIH0gZWxzZSAvKiBpZiAob2xkVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkKSAqLyB7XG4gICAgICByZXR1cm4gQURESVRJT047XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgJ2F3czpjZGs6cGF0aCcgbWV0YWRhdGEgaW4gdGhlIGRpZmYgYW5kIGFkZCBpdCB0byB0aGUgbG9naWNhbFRvUGF0aE1hcFxuICAgKlxuICAgKiBUaGVyZSBhcmUgbXVsdGlwbGUgc291cmNlcyBvZiBsb2dpY2FsSUQgLT4gcGF0aCBtYXBwaW5nczogc3ludGggbWV0YWRhdGFcbiAgICogYW5kIHJlc291cmNlIG1ldGFkYXRhLCBhbmQgd2UgY29tYmluZSBhbGwgc291cmNlcyBpbnRvIGEgc2luZ2xlIG1hcC5cbiAgICovXG4gIHB1YmxpYyByZWFkQ29uc3RydWN0UGF0aHNGcm9tKHRlbXBsYXRlRGlmZjogVGVtcGxhdGVEaWZmKSB7XG4gICAgZm9yIChjb25zdCBbbG9naWNhbElkLCByZXNvdXJjZURpZmZdIG9mIE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlRGlmZi5yZXNvdXJjZXMpKSB7XG4gICAgICBpZiAoIXJlc291cmNlRGlmZikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkUGF0aE1ldGFkYXRhID0gcmVzb3VyY2VEaWZmLm9sZFZhbHVlPy5NZXRhZGF0YT8uW1BBVEhfTUVUQURBVEFfS0VZXTtcbiAgICAgIGlmIChvbGRQYXRoTWV0YWRhdGEgJiYgIShsb2dpY2FsSWQgaW4gdGhpcy5sb2dpY2FsVG9QYXRoTWFwKSkge1xuICAgICAgICB0aGlzLmxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXSA9IG9sZFBhdGhNZXRhZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3UGF0aE1ldGFkYXRhID0gcmVzb3VyY2VEaWZmLm5ld1ZhbHVlPy5NZXRhZGF0YT8uW1BBVEhfTUVUQURBVEFfS0VZXTtcbiAgICAgIGlmIChuZXdQYXRoTWV0YWRhdGEgJiYgIShsb2dpY2FsSWQgaW4gdGhpcy5sb2dpY2FsVG9QYXRoTWFwKSkge1xuICAgICAgICB0aGlzLmxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXSA9IG5ld1BhdGhNZXRhZGF0YTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0TG9naWNhbElkKGxvZ2ljYWxJZDogc3RyaW5nKSB7XG4gICAgLy8gaWYgd2UgaGF2ZSBhIHBhdGggaW4gdGhlIG1hcCwgcmV0dXJuIGl0XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRoaXMubm9ybWFsaXplZExvZ2ljYWxJZFBhdGgobG9naWNhbElkKTtcblxuICAgIGlmIChub3JtYWxpemVkKSB7XG4gICAgICByZXR1cm4gYCR7bm9ybWFsaXplZH0gJHtjaGFsay5ncmF5KGxvZ2ljYWxJZCl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9naWNhbElkO1xuICB9XG5cbiAgcHVibGljIG5vcm1hbGl6ZWRMb2dpY2FsSWRQYXRoKGxvZ2ljYWxJZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGEgcGF0aCBpbiB0aGUgbWFwLCByZXR1cm4gaXRcbiAgICBjb25zdCBwYXRoID0gdGhpcy5sb2dpY2FsVG9QYXRoTWFwW2xvZ2ljYWxJZF07XG4gICAgcmV0dXJuIHBhdGggPyBub3JtYWxpemVQYXRoKHBhdGgpIDogdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogUGF0aCBpcyBzdXBwb3NlZCB0byBzdGFydCB3aXRoIFwiL3N0YWNrLW5hbWVcIi4gSWYgdGhpcyBpcyB0aGUgY2FzZSAoaS5lLiBwYXRoIGhhcyBtb3JlIHRoYW5cbiAgICAgKiB0d28gY29tcG9uZW50cywgd2UgcmVtb3ZlIHRoZSBmaXJzdCBwYXJ0LiBPdGhlcndpc2UsIHdlIGp1c3QgdXNlIHRoZSBmdWxsIHBhdGguXG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplUGF0aChwOiBzdHJpbmcpIHtcbiAgICAgIGlmIChwLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICBwID0gcC5zbGljZSgxKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHBhcnRzID0gcC5zcGxpdCgnLycpO1xuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcGFydHMgPSBwYXJ0cy5zbGljZSgxKTtcblxuICAgICAgICAvLyByZW1vdmUgdGhlIGxhc3QgY29tcG9uZW50IGlmIGl0J3MgXCJSZXNvdXJjZVwiIG9yIFwiRGVmYXVsdFwiIChpZiB3ZSBoYXZlIG1vcmUgdGhhbiBhIHNpbmdsZSBjb21wb25lbnQpXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgY29uc3QgbGFzdCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgIGlmIChsYXN0ID09PSAnUmVzb3VyY2UnIHx8IGxhc3QgPT09ICdEZWZhdWx0Jykge1xuICAgICAgICAgICAgcGFydHMgPSBwYXJ0cy5zbGljZSgwLCBwYXJ0cy5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwID0gcGFydHMuam9pbignLycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdElhbUNoYW5nZXMoY2hhbmdlczogSWFtQ2hhbmdlcykge1xuICAgIGlmICghY2hhbmdlcy5oYXNDaGFuZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuc3RhdGVtZW50cy5oYXNDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignSUFNIFN0YXRlbWVudCBDaGFuZ2VzJyk7XG4gICAgICB0aGlzLnByaW50KGZvcm1hdFRhYmxlKHRoaXMuZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKGNoYW5nZXMuc3VtbWFyaXplU3RhdGVtZW50cygpKSwgdGhpcy5zdHJlYW0uY29sdW1ucykpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLm1hbmFnZWRQb2xpY2llcy5oYXNDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignSUFNIFBvbGljeSBDaGFuZ2VzJyk7XG4gICAgICB0aGlzLnByaW50KGZvcm1hdFRhYmxlKHRoaXMuZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKGNoYW5nZXMuc3VtbWFyaXplTWFuYWdlZFBvbGljaWVzKCkpLCB0aGlzLnN0cmVhbS5jb2x1bW5zKSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuc3NvUGVybWlzc2lvblNldHMuaGFzQ2hhbmdlcyB8fCBjaGFuZ2VzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNDaGFuZ2VzIHx8IGNoYW5nZXMuc3NvQXNzaWdubWVudHMuaGFzQ2hhbmdlcykge1xuICAgICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIoJ0lBTSBJZGVudGl0eSBDZW50ZXIgQ2hhbmdlcycpO1xuICAgICAgaWYgKGNoYW5nZXMuc3NvUGVybWlzc2lvblNldHMuaGFzQ2hhbmdlcykge1xuICAgICAgICB0aGlzLnByaW50KGZvcm1hdFRhYmxlKHRoaXMuZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKGNoYW5nZXMuc3VtbWFyaXplU3NvUGVybWlzc2lvblNldHMoKSksIHRoaXMuc3RyZWFtLmNvbHVtbnMpKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMucHJpbnQoZm9ybWF0VGFibGUodGhpcy5kZWVwU3Vic3RpdHV0ZUJyYWNlZExvZ2ljYWxJZHMoY2hhbmdlcy5zdW1tYXJpemVTc29JbnN0YW5jZUFDQUNvbmZpZ3MoKSksIHRoaXMuc3RyZWFtLmNvbHVtbnMpKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VzLnNzb0Fzc2lnbm1lbnRzLmhhc0NoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5wcmludChmb3JtYXRUYWJsZSh0aGlzLmRlZXBTdWJzdGl0dXRlQnJhY2VkTG9naWNhbElkcyhjaGFuZ2VzLnN1bW1hcml6ZVNzb0Fzc2lnbm1lbnRzKCkpLCB0aGlzLnN0cmVhbS5jb2x1bW5zKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdFNlY3VyaXR5R3JvdXBDaGFuZ2VzKGNoYW5nZXM6IFNlY3VyaXR5R3JvdXBDaGFuZ2VzKSB7XG4gICAgaWYgKCFjaGFuZ2VzLmhhc0NoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignU2VjdXJpdHkgR3JvdXAgQ2hhbmdlcycpO1xuICAgIHRoaXMucHJpbnQoZm9ybWF0VGFibGUodGhpcy5kZWVwU3Vic3RpdHV0ZUJyYWNlZExvZ2ljYWxJZHMoY2hhbmdlcy5zdW1tYXJpemUoKSksIHRoaXMuc3RyZWFtLmNvbHVtbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWVwU3Vic3RpdHV0ZUJyYWNlZExvZ2ljYWxJZHMocm93czogc3RyaW5nW11bXSk6IHN0cmluZ1tdW10ge1xuICAgIHJldHVybiByb3dzLm1hcChyb3cgPT4gcm93Lm1hcCh0aGlzLnN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzLmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzdGl0dXRlIGFsbCBzdHJpbmdzIGxpa2UgJHtMb2dJZC54eHh9IHdpdGggdGhlIHBhdGggaW5zdGVhZCBvZiB0aGUgbG9naWNhbCBJRFxuICAgKi9cbiAgcHVibGljIHN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc291cmNlLnJlcGxhY2UoL1xcJFxceyhbXi59XSspKC5bXn1dKyk/XFx9L2lnLCAoX21hdGNoLCBsb2dJZCwgc3VmZml4KSA9PiB7XG4gICAgICByZXR1cm4gJyR7JyArICh0aGlzLm5vcm1hbGl6ZWRMb2dpY2FsSWRQYXRoKGxvZ0lkKSB8fCBsb2dJZCkgKyAoc3VmZml4IHx8ICcnKSArICd9JztcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcGF0Y2ggYXMgcmV0dXJuZWQgYnkgYGBkaWZmLnN0cnVjdHVyZWRQYXRjaGBgLlxuICovXG5pbnRlcmZhY2UgUGF0Y2gge1xuICAvKipcbiAgICogSHVua3MgaW4gdGhlIHBhdGNoLlxuICAgKi9cbiAgaHVua3M6IFJlYWRvbmx5QXJyYXk8UGF0Y2hIdW5rPjtcbn1cblxuLyoqXG4gKiBBIGh1bmsgaW4gYSBwYXRjaCBwcm9kdWNlZCBieSBgYGRpZmYuc3RydWN0dXJlZFBhdGNoYGAuXG4gKi9cbmludGVyZmFjZSBQYXRjaEh1bmsge1xuICBvbGRTdGFydDogbnVtYmVyO1xuICBvbGRMaW5lczogbnVtYmVyO1xuICBuZXdTdGFydDogbnVtYmVyO1xuICBuZXdMaW5lczogbnVtYmVyO1xuICBsaW5lczogc3RyaW5nW107XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHVuaWZpZWQgZGlmZiBvZiB0d28gc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0gb2xkU3RyICAtIHRoZSBcIm9sZFwiIHZlcnNpb24gb2YgdGhlIHN0cmluZy5cbiAqIEBwYXJhbSBuZXdTdHIgIC0gdGhlIFwibmV3XCIgdmVyc2lvbiBvZiB0aGUgc3RyaW5nLlxuICogQHBhcmFtIGNvbnRleHQgLSB0aGUgbnVtYmVyIG9mIGNvbnRleHQgbGluZXMgdG8gdXNlIGluIGFyYml0cmFyeSBKU09OIGRpZmYuXG4gKlxuICogQHJldHVybnMgYW4gYXJyYXkgb2YgZGlmZiBsaW5lcy5cbiAqL1xuZnVuY3Rpb24gX2RpZmZTdHJpbmdzKG9sZFN0cjogc3RyaW5nLCBuZXdTdHI6IHN0cmluZywgY29udGV4dDogbnVtYmVyKTogc3RyaW5nW10ge1xuICBjb25zdCBwYXRjaDogUGF0Y2ggPSBzdHJ1Y3R1cmVkUGF0Y2gobnVsbCwgbnVsbCwgb2xkU3RyLCBuZXdTdHIsIG51bGwsIG51bGwsIHsgY29udGV4dCB9KTtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBodW5rIG9mIHBhdGNoLmh1bmtzKSB7XG4gICAgcmVzdWx0LnB1c2goY2hhbGsubWFnZW50YShgQEAgLSR7aHVuay5vbGRTdGFydH0sJHtodW5rLm9sZExpbmVzfSArJHtodW5rLm5ld1N0YXJ0fSwke2h1bmsubmV3TGluZXN9IEBAYCkpO1xuICAgIGNvbnN0IGJhc2VJbmRlbnQgPSBfZmluZEluZGVudChodW5rLmxpbmVzKTtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgaHVuay5saW5lcykge1xuICAgICAgLy8gRG9uJ3QgY2FyZSBhYm91dCB0ZXJtaW5hdGlvbiBuZXdsaW5lLlxuICAgICAgaWYgKGxpbmUgPT09ICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbWFya2VyID0gbGluZS5jaGFyQXQoMCk7XG4gICAgICBjb25zdCB0ZXh0ID0gbGluZS5zbGljZSgxICsgYmFzZUluZGVudCk7XG4gICAgICBzd2l0Y2ggKG1hcmtlcikge1xuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICByZXN1bHQucHVzaChgJHtDT05URVhUfSAke3RleHR9YCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgIHJlc3VsdC5wdXNoKGNoYWxrLmJvbGQoYCR7QURESVRJT059ICR7Y2hhbGsuZ3JlZW4odGV4dCl9YCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICByZXN1bHQucHVzaChjaGFsay5ib2xkKGAke1JFTU9WQUx9ICR7Y2hhbGsucmVkKHRleHQpfWApKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGlmZiBtYXJrZXI6ICR7bWFya2VyfSAoZnVsbCBsaW5lOiAke2xpbmV9KWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xuXG4gIGZ1bmN0aW9uIF9maW5kSW5kZW50KGxpbmVzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgbGV0IGluZGVudCA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChsaW5lLmNoYXJBdChpKSAhPT0gJyAnKSB7XG4gICAgICAgICAgaW5kZW50ID0gaW5kZW50ID4gaSAtIDEgPyBpIC0gMSA6IGluZGVudDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5kZW50O1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IamChanges = void 0;\nconst service_spec_types_1 = require(\"@aws-cdk/service-spec-types\");\nconst chalk = require(\"chalk\");\nconst iam_identity_center_1 = require(\"./iam-identity-center\");\nconst managed_policy_1 = require(\"./managed-policy\");\nconst statement_1 = require(\"./statement\");\nconst diffable_1 = require(\"../diffable\");\nconst render_intrinsics_1 = require(\"../render-intrinsics\");\nconst util_1 = require(\"../util\");\n/**\n * Changes to IAM statements and IAM identity center\n */\nclass IamChanges {\n constructor(props) {\n // each entry in a DiffableCollection is used to generate a single row of the security changes table that is presented for cdk diff and cdk deploy.\n this.statements = new diffable_1.DiffableCollection();\n this.managedPolicies = new diffable_1.DiffableCollection();\n this.ssoPermissionSets = new diffable_1.DiffableCollection();\n this.ssoAssignments = new diffable_1.DiffableCollection();\n this.ssoInstanceACAConfigs = new diffable_1.DiffableCollection();\n for (const propertyChange of props.propertyChanges) {\n this.readPropertyChange(propertyChange);\n }\n for (const resourceChange of props.resourceChanges) {\n this.readResourceChange(resourceChange);\n }\n this.statements.calculateDiff();\n this.managedPolicies.calculateDiff();\n this.ssoPermissionSets.calculateDiff();\n this.ssoAssignments.calculateDiff();\n this.ssoInstanceACAConfigs.calculateDiff();\n }\n get hasChanges() {\n return (this.statements.hasChanges\n || this.managedPolicies.hasChanges\n || this.ssoPermissionSets.hasChanges\n || this.ssoAssignments.hasChanges\n || this.ssoInstanceACAConfigs.hasChanges);\n }\n /**\n * Return whether the changes include broadened permissions\n *\n * Permissions are broadened if positive statements are added or\n * negative statements are removed, or if managed policies are added.\n */\n get permissionsBroadened() {\n return this.statements.additions.some(s => !s.isNegativeStatement)\n || this.statements.removals.some(s => s.isNegativeStatement)\n || this.managedPolicies.hasAdditions\n || this.ssoPermissionSets.hasAdditions\n || this.ssoAssignments.hasAdditions\n || this.ssoInstanceACAConfigs.hasAdditions;\n }\n /**\n * Return a summary table of changes\n */\n summarizeStatements() {\n const ret = [];\n const header = ['', 'Resource', 'Effect', 'Action', 'Principal', 'Condition'];\n // First generate all lines, then sort on Resource so that similar resources are together\n for (const statement of this.statements.additions) {\n const renderedStatement = statement.render();\n ret.push([\n '+',\n renderedStatement.resource,\n renderedStatement.effect,\n renderedStatement.action,\n renderedStatement.principal,\n renderedStatement.condition,\n ].map(s => chalk.green(s)));\n }\n for (const statement of this.statements.removals) {\n const renderedStatement = statement.render();\n ret.push([\n '-',\n renderedStatement.resource,\n renderedStatement.effect,\n renderedStatement.action,\n renderedStatement.principal,\n renderedStatement.condition,\n ].map(s => chalk.red(s)));\n }\n // Sort by 2nd column\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeManagedPolicies() {\n const ret = [];\n const header = ['', 'Resource', 'Managed Policy ARN'];\n for (const att of this.managedPolicies.additions) {\n ret.push([\n '+',\n att.identityArn,\n att.managedPolicyArn,\n ].map(s => chalk.green(s)));\n }\n for (const att of this.managedPolicies.removals) {\n ret.push([\n '-',\n att.identityArn,\n att.managedPolicyArn,\n ].map(s => chalk.red(s)));\n }\n // Sort by 2nd column\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeSsoAssignments() {\n const ret = [];\n const header = ['', 'Resource', 'InstanceArn', 'PermissionSetArn', 'PrincipalId', 'PrincipalType', 'TargetId', 'TargetType'];\n for (const att of this.ssoAssignments.additions) {\n ret.push([\n '+',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.permissionSetArn || '',\n att.principalId || '',\n att.principalType || '',\n att.targetId || '',\n att.targetType || '',\n ].map(s => chalk.green(s)));\n }\n for (const att of this.ssoAssignments.removals) {\n ret.push([\n '-',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.permissionSetArn || '',\n att.principalId || '',\n att.principalType || '',\n att.targetId || '',\n att.targetType || '',\n ].map(s => chalk.red(s)));\n }\n // Sort by resource name to ensure a unique value is used for sorting\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeSsoInstanceACAConfigs() {\n const ret = [];\n const header = ['', 'Resource', 'InstanceArn', 'AccessControlAttributes'];\n function formatAccessControlAttribute(aca) {\n return `Key: ${aca?.Key}, Values: [${aca?.Value?.Source.join(', ')}]`;\n }\n for (const att of this.ssoInstanceACAConfigs.additions) {\n ret.push([\n '+',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.accessControlAttributes?.map(formatAccessControlAttribute).join('\\n') || '',\n ].map(s => chalk.green(s)));\n }\n for (const att of this.ssoInstanceACAConfigs.removals) {\n ret.push([\n '-',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.accessControlAttributes?.map(formatAccessControlAttribute).join('\\n') || '',\n ].map(s => chalk.red(s)));\n }\n // Sort by resource name to ensure a unique value is used for sorting\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n summarizeSsoPermissionSets() {\n const ret = [];\n const header = ['', 'Resource', 'InstanceArn', 'PermissionSet name', 'PermissionsBoundary', 'CustomerManagedPolicyReferences'];\n function formatManagedPolicyRef(s) {\n return `Name: ${s?.Name || ''}, Path: ${s?.Path || ''}`;\n }\n function formatSsoPermissionsBoundary(ssoPb) {\n // ManagedPolicyArn OR CustomerManagedPolicyReference can be specified -- but not both.\n if (ssoPb?.ManagedPolicyArn !== undefined) {\n return `ManagedPolicyArn: ${ssoPb?.ManagedPolicyArn || ''}`;\n }\n else if (ssoPb?.CustomerManagedPolicyReference !== undefined) {\n return `CustomerManagedPolicyReference: {\\n ${formatManagedPolicyRef(ssoPb?.CustomerManagedPolicyReference)}\\n}`;\n }\n else {\n return '';\n }\n }\n for (const att of this.ssoPermissionSets.additions) {\n ret.push([\n '+',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.name || '',\n formatSsoPermissionsBoundary(att.ssoPermissionsBoundary),\n att.ssoCustomerManagedPolicyReferences?.map(formatManagedPolicyRef).join('\\n') || '',\n ].map(s => chalk.green(s)));\n }\n for (const att of this.ssoPermissionSets.removals) {\n ret.push([\n '-',\n att.cfnLogicalId || '',\n att.ssoInstanceArn || '',\n att.name || '',\n formatSsoPermissionsBoundary(att.ssoPermissionsBoundary),\n att.ssoCustomerManagedPolicyReferences?.map(formatManagedPolicyRef).join('\\n') || '',\n ].map(s => chalk.red(s)));\n }\n // Sort by resource name to ensure a unique value is used for sorting\n ret.sort((0, util_1.makeComparator)((row) => [row[1]]));\n ret.splice(0, 0, header);\n return ret;\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return (0, util_1.deepRemoveUndefined)({\n statementAdditions: (0, util_1.dropIfEmpty)(this.statements.additions.map(s => s._toJson())),\n statementRemovals: (0, util_1.dropIfEmpty)(this.statements.removals.map(s => s._toJson())),\n managedPolicyAdditions: (0, util_1.dropIfEmpty)(this.managedPolicies.additions.map(s => s._toJson())),\n managedPolicyRemovals: (0, util_1.dropIfEmpty)(this.managedPolicies.removals.map(s => s._toJson())),\n });\n }\n readPropertyChange(propertyChange) {\n switch (propertyChange.scrutinyType) {\n case service_spec_types_1.PropertyScrutinyType.InlineIdentityPolicies:\n // AWS::IAM::{ Role | User | Group }.Policies\n this.statements.addOld(...this.readIdentityPolicies(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.statements.addNew(...this.readIdentityPolicies(propertyChange.newValue, propertyChange.resourceLogicalId));\n break;\n case service_spec_types_1.PropertyScrutinyType.InlineResourcePolicy:\n // Any PolicyDocument on a resource (including AssumeRolePolicyDocument)\n // Special-case AWS::SSO::PermissionSet as a pseudo-principal in the IAM statement changes output.\n if (propertyChange.resourceType === 'AWS::SSO::PermissionSet') {\n this.statements.addOld(...this.readPermissionSetInlinePolicy(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.statements.addNew(...this.readPermissionSetInlinePolicy(propertyChange.newValue, propertyChange.resourceLogicalId));\n }\n else {\n // Existing behaviour for all other resources\n this.statements.addOld(...this.readResourceStatements(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.statements.addNew(...this.readResourceStatements(propertyChange.newValue, propertyChange.resourceLogicalId));\n }\n break;\n case service_spec_types_1.PropertyScrutinyType.ManagedPolicies:\n // Just a list of managed policies\n this.managedPolicies.addOld(...this.readManagedPolicies(propertyChange.oldValue, propertyChange.resourceLogicalId));\n this.managedPolicies.addNew(...this.readManagedPolicies(propertyChange.newValue, propertyChange.resourceLogicalId));\n break;\n }\n }\n readResourceChange(resourceChange) {\n switch (resourceChange.scrutinyType) {\n case service_spec_types_1.ResourceScrutinyType.IdentityPolicyResource:\n // AWS::IAM::Policy\n this.statements.addOld(...this.readIdentityPolicyResource(resourceChange.oldProperties));\n this.statements.addNew(...this.readIdentityPolicyResource(resourceChange.newProperties));\n break;\n case service_spec_types_1.ResourceScrutinyType.ResourcePolicyResource:\n // AWS::*::{Bucket,Queue,Topic}Policy\n this.statements.addOld(...this.readResourcePolicyResource(resourceChange.oldProperties));\n this.statements.addNew(...this.readResourcePolicyResource(resourceChange.newProperties));\n break;\n case service_spec_types_1.ResourceScrutinyType.LambdaPermission:\n this.statements.addOld(...this.readLambdaStatements(resourceChange.oldProperties));\n this.statements.addNew(...this.readLambdaStatements(resourceChange.newProperties));\n break;\n case service_spec_types_1.ResourceScrutinyType.SsoPermissionSet:\n this.ssoPermissionSets.addOld(...this.readSsoPermissionSet(resourceChange.oldProperties, resourceChange.resourceLogicalId));\n this.ssoPermissionSets.addNew(...this.readSsoPermissionSet(resourceChange.newProperties, resourceChange.resourceLogicalId));\n break;\n case service_spec_types_1.ResourceScrutinyType.SsoAssignmentResource:\n this.ssoAssignments.addOld(...this.readSsoAssignments(resourceChange.oldProperties, resourceChange.resourceLogicalId));\n this.ssoAssignments.addNew(...this.readSsoAssignments(resourceChange.newProperties, resourceChange.resourceLogicalId));\n break;\n case service_spec_types_1.ResourceScrutinyType.SsoInstanceACAConfigResource:\n this.ssoInstanceACAConfigs.addOld(...this.readSsoInstanceACAConfigs(resourceChange.oldProperties, resourceChange.resourceLogicalId));\n this.ssoInstanceACAConfigs.addNew(...this.readSsoInstanceACAConfigs(resourceChange.newProperties, resourceChange.resourceLogicalId));\n break;\n }\n }\n /**\n * Parse a list of policies on an identity\n */\n readIdentityPolicies(policies, logicalId) {\n if (policies === undefined || !Array.isArray(policies)) {\n return [];\n }\n const appliesToPrincipal = 'AWS:${' + logicalId + '}';\n return (0, util_1.flatMap)(policies, (policy) => {\n // check if the Policy itself is not an intrinsic, like an Fn::If\n const unparsedStatement = policy.PolicyDocument?.Statement\n ? policy.PolicyDocument.Statement\n : policy;\n return defaultPrincipal(appliesToPrincipal, (0, statement_1.parseStatements)((0, render_intrinsics_1.renderIntrinsics)(unparsedStatement)));\n });\n }\n /**\n * Parse an IAM::Policy resource\n */\n readIdentityPolicyResource(properties) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n const principals = (properties.Groups || []).concat(properties.Users || []).concat(properties.Roles || []);\n return (0, util_1.flatMap)(principals, (principal) => {\n const ref = 'AWS:' + principal;\n return defaultPrincipal(ref, (0, statement_1.parseStatements)(properties.PolicyDocument.Statement));\n });\n }\n readSsoInstanceACAConfigs(properties, logicalId) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n return [new iam_identity_center_1.SsoInstanceACAConfig({\n cfnLogicalId: '${' + logicalId + '}',\n ssoInstanceArn: properties.InstanceArn,\n accessControlAttributes: properties.AccessControlAttributes,\n })];\n }\n readSsoAssignments(properties, logicalId) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n return [new iam_identity_center_1.SsoAssignment({\n cfnLogicalId: '${' + logicalId + '}',\n ssoInstanceArn: properties.InstanceArn,\n permissionSetArn: properties.PermissionSetArn,\n principalId: properties.PrincipalId,\n principalType: properties.PrincipalType,\n targetId: properties.TargetId,\n targetType: properties.TargetType,\n })];\n }\n readSsoPermissionSet(properties, logicalId) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n return [new iam_identity_center_1.SsoPermissionSet({\n cfnLogicalId: '${' + logicalId + '}',\n name: properties.Name,\n ssoInstanceArn: properties.InstanceArn,\n ssoCustomerManagedPolicyReferences: properties.CustomerManagedPolicyReferences,\n ssoPermissionsBoundary: properties.PermissionsBoundary,\n })];\n }\n readPermissionSetInlinePolicy(policy, logicalId) {\n if (policy === undefined) {\n return [];\n }\n // For PermissionSet inline policies:\n // - Resource: still defaulted to the PermissionSet ARN when wildcarded\n // - Principal: a pseudo-principal that identifies the PermissionSet\n const appliesToResource = '${' + logicalId + '.Arn}';\n const appliesToPrincipal = 'AWS:${' + logicalId + '}';\n const statements = (0, statement_1.parseStatements)((0, render_intrinsics_1.renderIntrinsics)(policy.Statement));\n // Keeping the existing behaviour for Resource…\n defaultResource(appliesToResource, statements);\n // …and additionally injecting a pseudo-principal for readability\n defaultPrincipal(appliesToPrincipal, statements);\n return statements;\n }\n readResourceStatements(policy, logicalId) {\n if (policy === undefined) {\n return [];\n }\n const appliesToResource = '${' + logicalId + '.Arn}';\n return defaultResource(appliesToResource, (0, statement_1.parseStatements)((0, render_intrinsics_1.renderIntrinsics)(policy.Statement)));\n }\n /**\n * Parse an AWS::*::{Bucket,Topic,Queue}policy\n */\n readResourcePolicyResource(properties) {\n if (properties === undefined) {\n return [];\n }\n properties = (0, render_intrinsics_1.renderIntrinsics)(properties);\n const policyKeys = Object.keys(properties).filter(key => key.indexOf('Policy') > -1);\n // Find the key that identifies the resource(s) this policy applies to\n const resourceKeys = Object.keys(properties).filter(key => !policyKeys.includes(key) && !key.endsWith('Name'));\n let resources = resourceKeys.length === 1 ? properties[resourceKeys[0]] : ['???'];\n // For some resources, this is a singleton string, for some it's an array\n if (!Array.isArray(resources)) {\n resources = [resources];\n }\n return (0, util_1.flatMap)(resources, (resource) => {\n return defaultResource(resource, (0, statement_1.parseStatements)(properties[policyKeys[0]].Statement));\n });\n }\n readManagedPolicies(policyArns, logicalId) {\n if (!policyArns) {\n return [];\n }\n const rep = '${' + logicalId + '}';\n return managed_policy_1.ManagedPolicyAttachment.parseManagedPolicies(rep, (0, render_intrinsics_1.renderIntrinsics)(policyArns));\n }\n readLambdaStatements(properties) {\n if (!properties) {\n return [];\n }\n return [(0, statement_1.parseLambdaPermission)((0, render_intrinsics_1.renderIntrinsics)(properties))];\n }\n}\nexports.IamChanges = IamChanges;\nIamChanges.IamPropertyScrutinies = [\n service_spec_types_1.PropertyScrutinyType.InlineIdentityPolicies,\n service_spec_types_1.PropertyScrutinyType.InlineResourcePolicy,\n service_spec_types_1.PropertyScrutinyType.ManagedPolicies,\n];\nIamChanges.IamResourceScrutinies = [\n service_spec_types_1.ResourceScrutinyType.ResourcePolicyResource,\n service_spec_types_1.ResourceScrutinyType.IdentityPolicyResource,\n service_spec_types_1.ResourceScrutinyType.LambdaPermission,\n service_spec_types_1.ResourceScrutinyType.SsoAssignmentResource,\n service_spec_types_1.ResourceScrutinyType.SsoInstanceACAConfigResource,\n service_spec_types_1.ResourceScrutinyType.SsoPermissionSet,\n];\n/**\n * Set an undefined or wildcarded principal on these statements\n */\nfunction defaultPrincipal(principal, statements) {\n statements.forEach(s => s.principals.replaceEmpty(principal));\n statements.forEach(s => s.principals.replaceStar(principal));\n return statements;\n}\n/**\n * Set an undefined or wildcarded resource on these statements\n */\nfunction defaultResource(resource, statements) {\n statements.forEach(s => s.resources.replaceEmpty(resource));\n statements.forEach(s => s.resources.replaceStar(resource));\n return statements;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWNoYW5nZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvRUFBeUY7QUFDekYsK0JBQStCO0FBRS9CLCtEQUE4RjtBQUU5RixxREFBMkQ7QUFFM0QsMkNBQXFFO0FBR3JFLDBDQUFpRDtBQUNqRCw0REFBd0Q7QUFDeEQsa0NBQW9GO0FBT3BGOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBdUJyQixZQUFZLEtBQXNCO1FBUGxDLG1KQUFtSjtRQUNuSSxlQUFVLEdBQUcsSUFBSSw2QkFBa0IsRUFBYSxDQUFDO1FBQ2pELG9CQUFlLEdBQUcsSUFBSSw2QkFBa0IsRUFBMkIsQ0FBQztRQUNwRSxzQkFBaUIsR0FBRyxJQUFJLDZCQUFrQixFQUFvQixDQUFDO1FBQy9ELG1CQUFjLEdBQUcsSUFBSSw2QkFBa0IsRUFBaUIsQ0FBQztRQUN6RCwwQkFBcUIsR0FBRyxJQUFJLDZCQUFrQixFQUF3QixDQUFDO1FBR3JGLEtBQUssTUFBTSxjQUFjLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsS0FBSyxNQUFNLGNBQWMsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFF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Z0JBQWdCO0lBQ3JDLHlDQUFvQixDQUFDLHFCQUFxQjtJQUMxQyx5Q0FBb0IsQ0FBQyw0QkFBNEI7SUFDakQseUNBQW9CLENBQUMsZ0JBQWdCO0NBQ3RDLEFBUGtDLENBT2pDO0FBNGNKOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxTQUFpQixFQUFFLFVBQXVCO0lBQ2xFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLFFBQWdCLEVBQUUsVUFBdUI7SUFDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDM0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5U2NydXRpbnlUeXBlLCBSZXNvdXJjZVNjcnV0aW55VHlwZSB9IGZyb20gJ0Bhd3MtY2RrL3NlcnZpY2Utc3BlYy10eXBlcyc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IElTc29JbnN0YW5jZUFDQUNvbmZpZywgSVNzb1Blcm1pc3Npb25TZXQgfSBmcm9tICcuL2lhbS1pZGVudGl0eS1jZW50ZXInO1xuaW1wb3J0IHsgU3NvQXNzaWdubWVudCwgU3NvSW5zdGFuY2VBQ0FDb25maWcsIFNzb1Blcm1pc3Npb25TZXQgfSBmcm9tICcuL2lhbS1pZGVudGl0eS1jZW50ZXInO1xuaW1wb3J0IHR5cGUgeyBNYW5hZ2VkUG9saWN5SnNvbiB9IGZyb20gJy4vbWFuYWdlZC1wb2xpY3knO1xuaW1wb3J0IHsgTWFuYWdlZFBvbGljeUF0dGFjaG1lbnQgfSBmcm9tICcuL21hbmFnZWQtcG9saWN5JztcbmltcG9ydCB0eXBlIHsgU3RhdGVtZW50LCBTdGF0ZW1lbnRKc29uIH0gZnJvbSAnLi9zdGF0ZW1lbnQnO1xuaW1wb3J0IHsgcGFyc2VMYW1iZGFQZXJtaXNzaW9uLCBwYXJzZVN0YXRlbWVudHMgfSBmcm9tICcuL3N0YXRlbWVudCc7XG5pbXBvcnQgdHlwZSB7IE1heWJlUGFyc2VkIH0gZnJvbSAnLi4vZGlmZi9tYXliZS1wYXJzZWQnO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUNoYW5nZSwgUHJvcGVydHlNYXAsIFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBEaWZmYWJsZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9kaWZmYWJsZSc7XG5pbXBvcnQgeyByZW5kZXJJbnRyaW5zaWNzIH0gZnJvbSAnLi4vcmVuZGVyLWludHJpbnNpY3MnO1xuaW1wb3J0IHsgZGVlcFJlbW92ZVVuZGVmaW5lZCwgZHJvcElmRW1wdHksIGZsYXRNYXAsIG1ha2VDb21wYXJhdG9yIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWFtQ2hhbmdlc1Byb3BzIHtcbiAgcHJvcGVydHlDaGFuZ2VzOiBQcm9wZXJ0eUNoYW5nZVtdO1xuICByZXNvdXJjZUNoYW5nZXM6IFJlc291cmNlQ2hhbmdlW107XG59XG5cbi8qKlxuICogQ2hhbmdlcyB0byBJQU0gc3RhdGVtZW50cyBhbmQgSUFNIGlkZW50aXR5IGNlbnRlclxuICovXG5leHBvcnQgY2xhc3MgSWFtQ2hhbmdlcyB7XG4gIHB1YmxpYyBzdGF0aWMgSWFtUHJvcGVydHlTY3J1dGluaWVzID0gW1xuICAgIFByb3BlcnR5U2NydXRpbnlUeXBlLklubGluZUlkZW50aXR5UG9saWNpZXMsXG4gICAgUHJvcGVydHlTY3J1dGlueVR5cGUuSW5saW5lUmVzb3VyY2VQb2xpY3ksXG4gICAgUHJvcGVydHlTY3J1dGlueVR5cGUuTWFuYWdlZFBvbGljaWVzLFxuICBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgSWFtUmVzb3VyY2VTY3J1dGluaWVzID0gW1xuICAgIFJlc291cmNlU2NydXRpbnlUeXBlLlJlc291cmNlUG9saWN5UmVzb3VyY2UsXG4gICAgUmVzb3VyY2VTY3J1dGlueVR5cGUuSWRlbnRpdHlQb2xpY3lSZXNvdXJjZSxcbiAgICBSZXNvdXJjZVNjcnV0aW55VHlwZS5MYW1iZGFQZXJtaXNzaW9uLFxuICAgIFJlc291cmNlU2NydXRpbnlUeXBlLlNzb0Fzc2lnbm1lbnRSZXNvdXJjZSxcbiAgICBSZXNvdXJjZVNjcnV0aW55VHlwZS5Tc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlLFxuICAgIFJlc291cmNlU2NydXRpbnlUeXBlLlNzb1Blcm1pc3Npb25TZXQsXG4gIF07XG5cbiAgLy8gZWFjaCBlbnRyeSBpbiBhIERpZmZhYmxlQ29sbGVjdGlvbiBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgc2luZ2xlIHJvdyBvZiB0aGUgc2VjdXJpdHkgY2hhbmdlcyB0YWJsZSB0aGF0IGlzIHByZXNlbnRlZCBmb3IgY2RrIGRpZmYgYW5kIGNkayBkZXBsb3kuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZW1lbnRzID0gbmV3IERpZmZhYmxlQ29sbGVjdGlvbjxTdGF0ZW1lbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBtYW5hZ2VkUG9saWNpZXMgPSBuZXcgRGlmZmFibGVDb2xsZWN0aW9uPE1hbmFnZWRQb2xpY3lBdHRhY2htZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc3NvUGVybWlzc2lvblNldHMgPSBuZXcgRGlmZmFibGVDb2xsZWN0aW9uPFNzb1Blcm1pc3Npb25TZXQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzc29Bc3NpZ25tZW50cyA9IG5ldyBEaWZmYWJsZUNvbGxlY3Rpb248U3NvQXNzaWdubWVudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNzb0luc3RhbmNlQUNBQ29uZmlncyA9IG5ldyBEaWZmYWJsZUNvbGxlY3Rpb248U3NvSW5zdGFuY2VBQ0FDb25maWc+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IElhbUNoYW5nZXNQcm9wcykge1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlDaGFuZ2Ugb2YgcHJvcHMucHJvcGVydHlDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnJlYWRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eUNoYW5nZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVzb3VyY2VDaGFuZ2Ugb2YgcHJvcHMucmVzb3VyY2VDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnJlYWRSZXNvdXJjZUNoYW5nZShyZXNvdXJjZUNoYW5nZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZW1lbnRzLmNhbGN1bGF0ZURpZmYoKTtcbiAgICB0aGlzLm1hbmFnZWRQb2xpY2llcy5jYWxjdWxhdGVEaWZmKCk7XG4gICAgdGhpcy5zc29QZXJtaXNzaW9uU2V0cy5jYWxjdWxhdGVEaWZmKCk7XG4gICAgdGhpcy5zc29Bc3NpZ25tZW50cy5jYWxjdWxhdGVEaWZmKCk7XG4gICAgdGhpcy5zc29JbnN0YW5jZUFDQUNvbmZpZ3MuY2FsY3VsYXRlRGlmZigpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNDaGFuZ2VzKCkge1xuICAgIHJldHVybiAodGhpcy5zdGF0ZW1lbnRzLmhhc0NoYW5nZXNcbiAgICAgIHx8IHRoaXMubWFuYWdlZFBvbGljaWVzLmhhc0NoYW5nZXNcbiAgICAgIHx8IHRoaXMuc3NvUGVybWlzc2lvblNldHMuaGFzQ2hhbmdlc1xuICAgICAgfHwgdGhpcy5zc29Bc3NpZ25tZW50cy5oYXNDaGFuZ2VzXG4gICAgICB8fCB0aGlzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNDaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgY2hhbmdlcyBpbmNsdWRlIGJyb2FkZW5lZCBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBQZXJtaXNzaW9ucyBhcmUgYnJvYWRlbmVkIGlmIHBvc2l0aXZlIHN0YXRlbWVudHMgYXJlIGFkZGVkIG9yXG4gICAqIG5lZ2F0aXZlIHN0YXRlbWVudHMgYXJlIHJlbW92ZWQsIG9yIGlmIG1hbmFnZWQgcG9saWNpZXMgYXJlIGFkZGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBwZXJtaXNzaW9uc0Jyb2FkZW5lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnRzLmFkZGl0aW9ucy5zb21lKHMgPT4gIXMuaXNOZWdhdGl2ZVN0YXRlbWVudClcbiAgICAgICAgfHwgdGhpcy5zdGF0ZW1lbnRzLnJlbW92YWxzLnNvbWUocyA9PiBzLmlzTmVnYXRpdmVTdGF0ZW1lbnQpXG4gICAgICAgIHx8IHRoaXMubWFuYWdlZFBvbGljaWVzLmhhc0FkZGl0aW9uc1xuICAgICAgICB8fCB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLmhhc0FkZGl0aW9uc1xuICAgICAgICB8fCB0aGlzLnNzb0Fzc2lnbm1lbnRzLmhhc0FkZGl0aW9uc1xuICAgICAgICB8fCB0aGlzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5oYXNBZGRpdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgc3VtbWFyeSB0YWJsZSBvZiBjaGFuZ2VzXG4gICAqL1xuICBwdWJsaWMgc3VtbWFyaXplU3RhdGVtZW50cygpOiBzdHJpbmdbXVtdIHtcbiAgICBjb25zdCByZXQ6IHN0cmluZ1tdW10gPSBbXTtcblxuICAgIGNvbnN0IGhlYWRlciA9IFsnJywgJ1Jlc291cmNlJywgJ0VmZmVjdCcsICdBY3Rpb24nLCAnUHJpbmNpcGFsJywgJ0NvbmRpdGlvbiddO1xuXG4gICAgLy8gRmlyc3QgZ2VuZXJhdGUgYWxsIGxpbmVzLCB0aGVuIHNvcnQgb24gUmVzb3VyY2Ugc28gdGhhdCBzaW1pbGFyIHJlc291cmNlcyBhcmUgdG9nZXRoZXJcbiAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiB0aGlzLnN0YXRlbWVudHMuYWRkaXRpb25zKSB7XG4gICAgICBjb25zdCByZW5kZXJlZFN0YXRlbWVudCA9IHN0YXRlbWVudC5yZW5kZXIoKTtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJysnLFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5yZXNvdXJjZSxcbiAgICAgICAgcmVuZGVyZWRTdGF0ZW1lbnQuZWZmZWN0LFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5hY3Rpb24sXG4gICAgICAgIHJlbmRlcmVkU3RhdGVtZW50LnByaW5jaXBhbCxcbiAgICAgICAgcmVuZGVyZWRTdGF0ZW1lbnQuY29uZGl0aW9uLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiB0aGlzLnN0YXRlbWVudHMucmVtb3ZhbHMpIHtcbiAgICAgIGNvbnN0IHJlbmRlcmVkU3RhdGVtZW50ID0gc3RhdGVtZW50LnJlbmRlcigpO1xuICAgICAgcmV0LnB1c2goW1xuICAgICAgICAnLScsXG4gICAgICAgIHJlbmRlcmVkU3RhdGVtZW50LnJlc291cmNlLFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5lZmZlY3QsXG4gICAgICAgIHJlbmRlcmVkU3RhdGVtZW50LmFjdGlvbixcbiAgICAgICAgcmVuZGVyZWRTdGF0ZW1lbnQucHJpbmNpcGFsLFxuICAgICAgICByZW5kZXJlZFN0YXRlbWVudC5jb25kaXRpb24sXG4gICAgICBdLm1hcChzID0+IGNoYWxrLnJlZChzKSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgYnkgMm5kIGNvbHVtblxuICAgIHJldC5zb3J0KG1ha2VDb21wYXJhdG9yKChyb3c6IHN0cmluZ1tdKSA9PiBbcm93WzFdXSkpO1xuXG4gICAgcmV0LnNwbGljZSgwLCAwLCBoZWFkZXIpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBzdW1tYXJpemVNYW5hZ2VkUG9saWNpZXMoKTogc3RyaW5nW11bXSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXVtdID0gW107XG4gICAgY29uc3QgaGVhZGVyID0gWycnLCAnUmVzb3VyY2UnLCAnTWFuYWdlZCBQb2xpY3kgQVJOJ107XG5cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGRpdGlvbnMpIHtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJysnLFxuICAgICAgICBhdHQuaWRlbnRpdHlBcm4sXG4gICAgICAgIGF0dC5tYW5hZ2VkUG9saWN5QXJuLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLm1hbmFnZWRQb2xpY2llcy5yZW1vdmFscykge1xuICAgICAgcmV0LnB1c2goW1xuICAgICAgICAnLScsXG4gICAgICAgIGF0dC5pZGVudGl0eUFybixcbiAgICAgICAgYXR0Lm1hbmFnZWRQb2xpY3lBcm4sXG4gICAgICBdLm1hcChzID0+IGNoYWxrLnJlZChzKSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgYnkgMm5kIGNvbHVtblxuICAgIHJldC5zb3J0KG1ha2VDb21wYXJhdG9yKChyb3c6IHN0cmluZ1tdKSA9PiBbcm93WzFdXSkpO1xuXG4gICAgcmV0LnNwbGljZSgwLCAwLCBoZWFkZXIpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBzdW1tYXJpemVTc29Bc3NpZ25tZW50cygpOiBzdHJpbmdbXVtdIHtcbiAgICBjb25zdCByZXQ6IHN0cmluZ1tdW10gPSBbXTtcbiAgICBjb25zdCBoZWFkZXIgPSBbJycsICdSZXNvdXJjZScsICdJbnN0YW5jZUFybicsICdQZXJtaXNzaW9uU2V0QXJuJywgJ1ByaW5jaXBhbElkJywgJ1ByaW5jaXBhbFR5cGUnLCAnVGFyZ2V0SWQnLCAnVGFyZ2V0VHlwZSddO1xuXG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5zc29Bc3NpZ25tZW50cy5hZGRpdGlvbnMpIHtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJysnLFxuICAgICAgICBhdHQuY2ZuTG9naWNhbElkIHx8ICcnLFxuICAgICAgICBhdHQuc3NvSW5zdGFuY2VBcm4gfHwgJycsXG4gICAgICAgIGF0dC5wZXJtaXNzaW9uU2V0QXJuIHx8ICcnLFxuICAgICAgICBhdHQucHJpbmNpcGFsSWQgfHwgJycsXG4gICAgICAgIGF0dC5wcmluY2lwYWxUeXBlIHx8ICcnLFxuICAgICAgICBhdHQudGFyZ2V0SWQgfHwgJycsXG4gICAgICAgIGF0dC50YXJnZXRUeXBlIHx8ICcnLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLnNzb0Fzc2lnbm1lbnRzLnJlbW92YWxzKSB7XG4gICAgICByZXQucHVzaChbXG4gICAgICAgICctJyxcbiAgICAgICAgYXR0LmNmbkxvZ2ljYWxJZCB8fCAnJyxcbiAgICAgICAgYXR0LnNzb0luc3RhbmNlQXJuIHx8ICcnLFxuICAgICAgICBhdHQucGVybWlzc2lvblNldEFybiB8fCAnJyxcbiAgICAgICAgYXR0LnByaW5jaXBhbElkIHx8ICcnLFxuICAgICAgICBhdHQucHJpbmNpcGFsVHlwZSB8fCAnJyxcbiAgICAgICAgYXR0LnRhcmdldElkIHx8ICcnLFxuICAgICAgICBhdHQudGFyZ2V0VHlwZSB8fCAnJyxcbiAgICAgIF0ubWFwKHMgPT4gY2hhbGsucmVkKHMpKSk7XG4gICAgfVxuXG4gICAgLy8gU29ydCBieSByZXNvdXJjZSBuYW1lIHRvIGVuc3VyZSBhIHVuaXF1ZSB2YWx1ZSBpcyB1c2VkIGZvciBzb3J0aW5nXG4gICAgcmV0LnNvcnQobWFrZUNvbXBhcmF0b3IoKHJvdzogc3RyaW5nW10pID0+IFtyb3dbMV1dKSk7XG4gICAgcmV0LnNwbGljZSgwLCAwLCBoZWFkZXIpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBzdW1tYXJpemVTc29JbnN0YW5jZUFDQUNvbmZpZ3MoKTogc3RyaW5nW11bXSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXVtdID0gW107XG4gICAgY29uc3QgaGVhZGVyID0gWycnLCAnUmVzb3VyY2UnLCAnSW5zdGFuY2VBcm4nLCAnQWNjZXNzQ29udHJvbEF0dHJpYnV0ZXMnXTtcblxuICAgIGZ1bmN0aW9uIGZvcm1hdEFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGUoYWNhOiBJU3NvSW5zdGFuY2VBQ0FDb25maWcuQWNjZXNzQ29udHJvbEF0dHJpYnV0ZSk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gYEtleTogJHthY2E/LktleX0sIFZhbHVlczogWyR7YWNhPy5WYWx1ZT8uU291cmNlLmpvaW4oJywgJyl9XWA7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5zc29JbnN0YW5jZUFDQUNvbmZpZ3MuYWRkaXRpb25zKSB7XG4gICAgICByZXQucHVzaChbXG4gICAgICAgICcrJyxcbiAgICAgICAgYXR0LmNmbkxvZ2ljYWxJZCB8fCAnJyxcbiAgICAgICAgYXR0LnNzb0luc3RhbmNlQXJuIHx8ICcnLFxuICAgICAgICBhdHQuYWNjZXNzQ29udHJvbEF0dHJpYnV0ZXM/Lm1hcChmb3JtYXRBY2Nlc3NDb250cm9sQXR0cmlidXRlKS5qb2luKCdcXG4nKSB8fCAnJyxcbiAgICAgIF0ubWFwKHMgPT4gY2hhbGsuZ3JlZW4ocykpKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5zc29JbnN0YW5jZUFDQUNvbmZpZ3MucmVtb3ZhbHMpIHtcbiAgICAgIHJldC5wdXNoKFtcbiAgICAgICAgJy0nLFxuICAgICAgICBhdHQuY2ZuTG9naWNhbElkIHx8ICcnLFxuICAgICAgICBhdHQuc3NvSW5zdGFuY2VBcm4gfHwgJycsXG4gICAgICAgIGF0dC5hY2Nlc3NDb250cm9sQXR0cmlidXRlcz8ubWFwKGZvcm1hdEFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGUpLmpvaW4oJ1xcbicpIHx8ICcnLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5yZWQocykpKTtcbiAgICB9XG5cbiAgICAvLyBTb3J0IGJ5IHJlc291cmNlIG5hbWUgdG8gZW5zdXJlIGEgdW5pcXVlIHZhbHVlIGlzIHVzZWQgZm9yIHNvcnRpbmdcbiAgICByZXQuc29ydChtYWtlQ29tcGFyYXRvcigocm93OiBzdHJpbmdbXSkgPT4gW3Jvd1sxXV0pKTtcbiAgICByZXQuc3BsaWNlKDAsIDAsIGhlYWRlcik7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIHN1bW1hcml6ZVNzb1Blcm1pc3Npb25TZXRzKCk6IHN0cmluZ1tdW10ge1xuICAgIGNvbnN0IHJldDogc3RyaW5nW11bXSA9IFtdO1xuICAgIGNvbnN0IGhlYWRlciA9IFsnJywgJ1Jlc291cmNlJywgJ0luc3RhbmNlQXJuJywgJ1Blcm1pc3Npb25TZXQgbmFtZScsICdQZXJtaXNzaW9uc0JvdW5kYXJ5JywgJ0N1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZXMnXTtcblxuICAgIGZ1bmN0aW9uIGZvcm1hdE1hbmFnZWRQb2xpY3lSZWYoczogSVNzb1Blcm1pc3Npb25TZXQuQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgTmFtZTogJHtzPy5OYW1lIHx8ICcnfSwgUGF0aDogJHtzPy5QYXRoIHx8ICcnfWA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZm9ybWF0U3NvUGVybWlzc2lvbnNCb3VuZGFyeShzc29QYjogSVNzb1Blcm1pc3Npb25TZXQuUGVybWlzc2lvbnNCb3VuZGFyeSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAvLyBNYW5hZ2VkUG9saWN5QXJuIE9SIEN1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZSBjYW4gYmUgc3BlY2lmaWVkIC0tIGJ1dCBub3QgYm90aC5cbiAgICAgIGlmIChzc29QYj8uTWFuYWdlZFBvbGljeUFybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBgTWFuYWdlZFBvbGljeUFybjogJHtzc29QYj8uTWFuYWdlZFBvbGljeUFybiB8fCAnJ31gO1xuICAgICAgfSBlbHNlIGlmIChzc29QYj8uQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGBDdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2U6IHtcXG4gICR7Zm9ybWF0TWFuYWdlZFBvbGljeVJlZihzc29QYj8uQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlKX1cXG59YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLmFkZGl0aW9ucykge1xuICAgICAgcmV0LnB1c2goW1xuICAgICAgICAnKycsXG4gICAgICAgIGF0dC5jZm5Mb2dpY2FsSWQgfHwgJycsXG4gICAgICAgIGF0dC5zc29JbnN0YW5jZUFybiB8fCAnJyxcbiAgICAgICAgYXR0Lm5hbWUgfHwgJycsXG4gICAgICAgIGZvcm1hdFNzb1Blcm1pc3Npb25zQm91bmRhcnkoYXR0LnNzb1Blcm1pc3Npb25zQm91bmRhcnkpLFxuICAgICAgICBhdHQuc3NvQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlcz8ubWFwKGZvcm1hdE1hbmFnZWRQb2xpY3lSZWYpLmpvaW4oJ1xcbicpIHx8ICcnLFxuICAgICAgXS5tYXAocyA9PiBjaGFsay5ncmVlbihzKSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLnJlbW92YWxzKSB7XG4gICAgICByZXQucHVzaChbXG4gICAgICAgICctJyxcbiAgICAgICAgYXR0LmNmbkxvZ2ljYWxJZCB8fCAnJyxcbiAgICAgICAgYXR0LnNzb0luc3RhbmNlQXJuIHx8ICcnLFxuICAgICAgICBhdHQubmFtZSB8fCAnJyxcbiAgICAgICAgZm9ybWF0U3NvUGVybWlzc2lvbnNCb3VuZGFyeShhdHQuc3NvUGVybWlzc2lvbnNCb3VuZGFyeSksXG4gICAgICAgIGF0dC5zc29DdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2VzPy5tYXAoZm9ybWF0TWFuYWdlZFBvbGljeVJlZikuam9pbignXFxuJykgfHwgJycsXG4gICAgICBdLm1hcChzID0+IGNoYWxrLnJlZChzKSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgYnkgcmVzb3VyY2UgbmFtZSB0byBlbnN1cmUgYSB1bmlxdWUgdmFsdWUgaXMgdXNlZCBmb3Igc29ydGluZ1xuICAgIHJldC5zb3J0KG1ha2VDb21wYXJhdG9yKChyb3c6IHN0cmluZ1tdKSA9PiBbcm93WzFdXSkpO1xuICAgIHJldC5zcGxpY2UoMCwgMCwgaGVhZGVyKTtcblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBJYW1DaGFuZ2VzSnNvbiB7XG4gICAgcmV0dXJuIGRlZXBSZW1vdmVVbmRlZmluZWQoe1xuICAgICAgc3RhdGVtZW50QWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLnN0YXRlbWVudHMuYWRkaXRpb25zLm1hcChzID0+IHMuX3RvSnNvbigpKSksXG4gICAgICBzdGF0ZW1lbnRSZW1vdmFsczogZHJvcElmRW1wdHkodGhpcy5zdGF0ZW1lbnRzLnJlbW92YWxzLm1hcChzID0+IHMuX3RvSnNvbigpKSksXG4gICAgICBtYW5hZ2VkUG9saWN5QWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGRpdGlvbnMubWFwKHMgPT4gcy5fdG9Kc29uKCkpKSxcbiAgICAgIG1hbmFnZWRQb2xpY3lSZW1vdmFsczogZHJvcElmRW1wdHkodGhpcy5tYW5hZ2VkUG9saWNpZXMucmVtb3ZhbHMubWFwKHMgPT4gcy5fdG9Kc29uKCkpKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5Q2hhbmdlOiBQcm9wZXJ0eUNoYW5nZSkge1xuICAgIHN3aXRjaCAocHJvcGVydHlDaGFuZ2Uuc2NydXRpbnlUeXBlKSB7XG4gICAgICBjYXNlIFByb3BlcnR5U2NydXRpbnlUeXBlLklubGluZUlkZW50aXR5UG9saWNpZXM6XG4gICAgICAgIC8vIEFXUzo6SUFNOjp7IFJvbGUgfCBVc2VyIHwgR3JvdXAgfS5Qb2xpY2llc1xuICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkT2xkKC4uLnRoaXMucmVhZElkZW50aXR5UG9saWNpZXMocHJvcGVydHlDaGFuZ2Uub2xkVmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGROZXcoLi4udGhpcy5yZWFkSWRlbnRpdHlQb2xpY2llcyhwcm9wZXJ0eUNoYW5nZS5uZXdWYWx1ZSwgcHJvcGVydHlDaGFuZ2UucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByb3BlcnR5U2NydXRpbnlUeXBlLklubGluZVJlc291cmNlUG9saWN5OlxuICAgICAgICAvLyBBbnkgUG9saWN5RG9jdW1lbnQgb24gYSByZXNvdXJjZSAoaW5jbHVkaW5nIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudClcbiAgICAgICAgLy8gU3BlY2lhbC1jYXNlIEFXUzo6U1NPOjpQZXJtaXNzaW9uU2V0IGFzIGEgcHNldWRvLXByaW5jaXBhbCBpbiB0aGUgSUFNIHN0YXRlbWVudCBjaGFuZ2VzIG91dHB1dC5cbiAgICAgICAgaWYgKHByb3BlcnR5Q2hhbmdlLnJlc291cmNlVHlwZSA9PT0gJ0FXUzo6U1NPOjpQZXJtaXNzaW9uU2V0Jykge1xuICAgICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGRPbGQoLi4udGhpcy5yZWFkUGVybWlzc2lvblNldElubGluZVBvbGljeShwcm9wZXJ0eUNoYW5nZS5vbGRWYWx1ZSwgcHJvcGVydHlDaGFuZ2UucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkTmV3KC4uLnRoaXMucmVhZFBlcm1pc3Npb25TZXRJbmxpbmVQb2xpY3kocHJvcGVydHlDaGFuZ2UubmV3VmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXhpc3RpbmcgYmVoYXZpb3VyIGZvciBhbGwgb3RoZXIgcmVzb3VyY2VzXG4gICAgICAgICAgdGhpcy5zdGF0ZW1lbnRzLmFkZE9sZCguLi50aGlzLnJlYWRSZXNvdXJjZVN0YXRlbWVudHMocHJvcGVydHlDaGFuZ2Uub2xkVmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgICAgdGhpcy5zdGF0ZW1lbnRzLmFkZE5ldyguLi50aGlzLnJlYWRSZXNvdXJjZVN0YXRlbWVudHMocHJvcGVydHlDaGFuZ2UubmV3VmFsdWUsIHByb3BlcnR5Q2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByb3BlcnR5U2NydXRpbnlUeXBlLk1hbmFnZWRQb2xpY2llczpcbiAgICAgICAgLy8gSnVzdCBhIGxpc3Qgb2YgbWFuYWdlZCBwb2xpY2llc1xuICAgICAgICB0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGRPbGQoLi4udGhpcy5yZWFkTWFuYWdlZFBvbGljaWVzKHByb3BlcnR5Q2hhbmdlLm9sZFZhbHVlLCBwcm9wZXJ0eUNoYW5nZS5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgICAgICB0aGlzLm1hbmFnZWRQb2xpY2llcy5hZGROZXcoLi4udGhpcy5yZWFkTWFuYWdlZFBvbGljaWVzKHByb3BlcnR5Q2hhbmdlLm5ld1ZhbHVlLCBwcm9wZXJ0eUNoYW5nZS5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRSZXNvdXJjZUNoYW5nZShyZXNvdXJjZUNoYW5nZTogUmVzb3VyY2VDaGFuZ2UpIHtcbiAgICBzd2l0Y2ggKHJlc291cmNlQ2hhbmdlLnNjcnV0aW55VHlwZSkge1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5JZGVudGl0eVBvbGljeVJlc291cmNlOlxuICAgICAgICAvLyBBV1M6OklBTTo6UG9saWN5XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGRPbGQoLi4udGhpcy5yZWFkSWRlbnRpdHlQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzKSk7XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGROZXcoLi4udGhpcy5yZWFkSWRlbnRpdHlQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5SZXNvdXJjZVBvbGljeVJlc291cmNlOlxuICAgICAgICAvLyBBV1M6Oio6OntCdWNrZXQsUXVldWUsVG9waWN9UG9saWN5XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGRPbGQoLi4udGhpcy5yZWFkUmVzb3VyY2VQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzKSk7XG4gICAgICAgIHRoaXMuc3RhdGVtZW50cy5hZGROZXcoLi4udGhpcy5yZWFkUmVzb3VyY2VQb2xpY3lSZXNvdXJjZShyZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5MYW1iZGFQZXJtaXNzaW9uOlxuICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkT2xkKC4uLnRoaXMucmVhZExhbWJkYVN0YXRlbWVudHMocmVzb3VyY2VDaGFuZ2Uub2xkUHJvcGVydGllcykpO1xuICAgICAgICB0aGlzLnN0YXRlbWVudHMuYWRkTmV3KC4uLnRoaXMucmVhZExhbWJkYVN0YXRlbWVudHMocmVzb3VyY2VDaGFuZ2UubmV3UHJvcGVydGllcykpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUmVzb3VyY2VTY3J1dGlueVR5cGUuU3NvUGVybWlzc2lvblNldDpcbiAgICAgICAgdGhpcy5zc29QZXJtaXNzaW9uU2V0cy5hZGRPbGQoLi4udGhpcy5yZWFkU3NvUGVybWlzc2lvblNldChyZXNvdXJjZUNoYW5nZS5vbGRQcm9wZXJ0aWVzLCByZXNvdXJjZUNoYW5nZS5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgICAgICB0aGlzLnNzb1Blcm1pc3Npb25TZXRzLmFkZE5ldyguLi50aGlzLnJlYWRTc29QZXJtaXNzaW9uU2V0KHJlc291cmNlQ2hhbmdlLm5ld1Byb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5Tc29Bc3NpZ25tZW50UmVzb3VyY2U6XG4gICAgICAgIHRoaXMuc3NvQXNzaWdubWVudHMuYWRkT2xkKC4uLnRoaXMucmVhZFNzb0Fzc2lnbm1lbnRzKHJlc291cmNlQ2hhbmdlLm9sZFByb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIHRoaXMuc3NvQXNzaWdubWVudHMuYWRkTmV3KC4uLnRoaXMucmVhZFNzb0Fzc2lnbm1lbnRzKHJlc291cmNlQ2hhbmdlLm5ld1Byb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXNvdXJjZVNjcnV0aW55VHlwZS5Tc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlOlxuICAgICAgICB0aGlzLnNzb0luc3RhbmNlQUNBQ29uZmlncy5hZGRPbGQoLi4udGhpcy5yZWFkU3NvSW5zdGFuY2VBQ0FDb25maWdzKHJlc291cmNlQ2hhbmdlLm9sZFByb3BlcnRpZXMsIHJlc291cmNlQ2hhbmdlLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICAgIHRoaXMuc3NvSW5zdGFuY2VBQ0FDb25maWdzLmFkZE5ldyguLi50aGlzLnJlYWRTc29JbnN0YW5jZUFDQUNvbmZpZ3MocmVzb3VyY2VDaGFuZ2UubmV3UHJvcGVydGllcywgcmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGEgbGlzdCBvZiBwb2xpY2llcyBvbiBhbiBpZGVudGl0eVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkSWRlbnRpdHlQb2xpY2llcyhwb2xpY2llczogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAocG9saWNpZXMgPT09IHVuZGVmaW5lZCB8fCAhQXJyYXkuaXNBcnJheShwb2xpY2llcykpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHBsaWVzVG9QcmluY2lwYWwgPSAnQVdTOiR7JyArIGxvZ2ljYWxJZCArICd9JztcblxuICAgIHJldHVybiBmbGF0TWFwKHBvbGljaWVzLCAocG9saWN5OiBhbnkpID0+IHtcbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBQb2xpY3kgaXRzZWxmIGlzIG5vdCBhbiBpbnRyaW5zaWMsIGxpa2UgYW4gRm46OklmXG4gICAgICBjb25zdCB1bnBhcnNlZFN0YXRlbWVudCA9IHBvbGljeS5Qb2xpY3lEb2N1bWVudD8uU3RhdGVtZW50XG4gICAgICAgID8gcG9saWN5LlBvbGljeURvY3VtZW50LlN0YXRlbWVudFxuICAgICAgICA6IHBvbGljeTtcbiAgICAgIHJldHVybiBkZWZhdWx0UHJpbmNpcGFsKGFwcGxpZXNUb1ByaW5jaXBhbCwgcGFyc2VTdGF0ZW1lbnRzKHJlbmRlckludHJpbnNpY3ModW5wYXJzZWRTdGF0ZW1lbnQpKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYW4gSUFNOjpQb2xpY3kgcmVzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgcmVhZElkZW50aXR5UG9saWN5UmVzb3VyY2UocHJvcGVydGllczogYW55KTogU3RhdGVtZW50W10ge1xuICAgIGlmIChwcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzID0gcmVuZGVySW50cmluc2ljcyhwcm9wZXJ0aWVzKTtcblxuICAgIGNvbnN0IHByaW5jaXBhbHMgPSAocHJvcGVydGllcy5Hcm91cHMgfHwgW10pLmNvbmNhdChwcm9wZXJ0aWVzLlVzZXJzIHx8IFtdKS5jb25jYXQocHJvcGVydGllcy5Sb2xlcyB8fCBbXSk7XG4gICAgcmV0dXJuIGZsYXRNYXAocHJpbmNpcGFscywgKHByaW5jaXBhbDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCByZWYgPSAnQVdTOicgKyBwcmluY2lwYWw7XG4gICAgICByZXR1cm4gZGVmYXVsdFByaW5jaXBhbChyZWYsIHBhcnNlU3RhdGVtZW50cyhwcm9wZXJ0aWVzLlBvbGljeURvY3VtZW50LlN0YXRlbWVudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkU3NvSW5zdGFuY2VBQ0FDb25maWdzKHByb3BlcnRpZXM6IGFueSwgbG9naWNhbElkOiBzdHJpbmcpOiBTc29JbnN0YW5jZUFDQUNvbmZpZ1tdIHtcbiAgICBpZiAocHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcHJvcGVydGllcyA9IHJlbmRlckludHJpbnNpY3MocHJvcGVydGllcyk7XG5cbiAgICByZXR1cm4gW25ldyBTc29JbnN0YW5jZUFDQUNvbmZpZyh7XG4gICAgICBjZm5Mb2dpY2FsSWQ6ICckeycgKyBsb2dpY2FsSWQgKyAnfScsXG4gICAgICBzc29JbnN0YW5jZUFybjogcHJvcGVydGllcy5JbnN0YW5jZUFybixcbiAgICAgIGFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVzOiBwcm9wZXJ0aWVzLkFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVzLFxuICAgIH0pXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFNzb0Fzc2lnbm1lbnRzKHByb3BlcnRpZXM6IGFueSwgbG9naWNhbElkOiBzdHJpbmcpOiBTc29Bc3NpZ25tZW50W10ge1xuICAgIGlmIChwcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzID0gcmVuZGVySW50cmluc2ljcyhwcm9wZXJ0aWVzKTtcblxuICAgIHJldHVybiBbbmV3IFNzb0Fzc2lnbm1lbnQoe1xuICAgICAgY2ZuTG9naWNhbElkOiAnJHsnICsgbG9naWNhbElkICsgJ30nLFxuICAgICAgc3NvSW5zdGFuY2VBcm46IHByb3BlcnRpZXMuSW5zdGFuY2VBcm4sXG4gICAgICBwZXJtaXNzaW9uU2V0QXJuOiBwcm9wZXJ0aWVzLlBlcm1pc3Npb25TZXRBcm4sXG4gICAgICBwcmluY2lwYWxJZDogcHJvcGVydGllcy5QcmluY2lwYWxJZCxcbiAgICAgIHByaW5jaXBhbFR5cGU6IHByb3BlcnRpZXMuUHJpbmNpcGFsVHlwZSxcbiAgICAgIHRhcmdldElkOiBwcm9wZXJ0aWVzLlRhcmdldElkLFxuICAgICAgdGFyZ2V0VHlwZTogcHJvcGVydGllcy5UYXJnZXRUeXBlLFxuICAgIH0pXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFNzb1Blcm1pc3Npb25TZXQocHJvcGVydGllczogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFNzb1Blcm1pc3Npb25TZXRbXSB7XG4gICAgaWYgKHByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHByb3BlcnRpZXMgPSByZW5kZXJJbnRyaW5zaWNzKHByb3BlcnRpZXMpO1xuXG4gICAgcmV0dXJuIFtuZXcgU3NvUGVybWlzc2lvblNldCh7XG4gICAgICBjZm5Mb2dpY2FsSWQ6ICckeycgKyBsb2dpY2FsSWQgKyAnfScsXG4gICAgICBuYW1lOiBwcm9wZXJ0aWVzLk5hbWUsXG4gICAgICBzc29JbnN0YW5jZUFybjogcHJvcGVydGllcy5JbnN0YW5jZUFybixcbiAgICAgIHNzb0N1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZXM6IHByb3BlcnRpZXMuQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlcyxcbiAgICAgIHNzb1Blcm1pc3Npb25zQm91bmRhcnk6IHByb3BlcnRpZXMuUGVybWlzc2lvbnNCb3VuZGFyeSxcbiAgICB9KV07XG4gIH1cblxuICBwcml2YXRlIHJlYWRQZXJtaXNzaW9uU2V0SW5saW5lUG9saWN5KHBvbGljeTogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAocG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvLyBGb3IgUGVybWlzc2lvblNldCBpbmxpbmUgcG9saWNpZXM6XG4gICAgLy8gLSBSZXNvdXJjZTogc3RpbGwgZGVmYXVsdGVkIHRvIHRoZSBQZXJtaXNzaW9uU2V0IEFSTiB3aGVuIHdpbGRjYXJkZWRcbiAgICAvLyAtIFByaW5jaXBhbDogYSBwc2V1ZG8tcHJpbmNpcGFsIHRoYXQgaWRlbnRpZmllcyB0aGUgUGVybWlzc2lvblNldFxuICAgIGNvbnN0IGFwcGxpZXNUb1Jlc291cmNlID0gJyR7JyArIGxvZ2ljYWxJZCArICcuQXJufSc7XG4gICAgY29uc3QgYXBwbGllc1RvUHJpbmNpcGFsID0gJ0FXUzokeycgKyBsb2dpY2FsSWQgKyAnfSc7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRzID0gcGFyc2VTdGF0ZW1lbnRzKHJlbmRlckludHJpbnNpY3MocG9saWN5LlN0YXRlbWVudCkpO1xuXG4gICAgLy8gS2VlcGluZyB0aGUgZXhpc3RpbmcgYmVoYXZpb3VyIGZvciBSZXNvdXJjZeKAplxuICAgIGRlZmF1bHRSZXNvdXJjZShhcHBsaWVzVG9SZXNvdXJjZSwgc3RhdGVtZW50cyk7XG4gICAgLy8g4oCmYW5kIGFkZGl0aW9uYWxseSBpbmplY3RpbmcgYSBwc2V1ZG8tcHJpbmNpcGFsIGZvciByZWFkYWJpbGl0eVxuICAgIGRlZmF1bHRQcmluY2lwYWwoYXBwbGllc1RvUHJpbmNpcGFsLCBzdGF0ZW1lbnRzKTtcblxuICAgIHJldHVybiBzdGF0ZW1lbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkUmVzb3VyY2VTdGF0ZW1lbnRzKHBvbGljeTogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAocG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHBsaWVzVG9SZXNvdXJjZSA9ICckeycgKyBsb2dpY2FsSWQgKyAnLkFybn0nO1xuICAgIHJldHVybiBkZWZhdWx0UmVzb3VyY2UoYXBwbGllc1RvUmVzb3VyY2UsIHBhcnNlU3RhdGVtZW50cyhyZW5kZXJJbnRyaW5zaWNzKHBvbGljeS5TdGF0ZW1lbnQpKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYW4gQVdTOjoqOjp7QnVja2V0LFRvcGljLFF1ZXVlfXBvbGljeVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkUmVzb3VyY2VQb2xpY3lSZXNvdXJjZShwcm9wZXJ0aWVzOiBhbnkpOiBTdGF0ZW1lbnRbXSB7XG4gICAgaWYgKHByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHByb3BlcnRpZXMgPSByZW5kZXJJbnRyaW5zaWNzKHByb3BlcnRpZXMpO1xuXG4gICAgY29uc3QgcG9saWN5S2V5cyA9IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmZpbHRlcihrZXkgPT4ga2V5LmluZGV4T2YoJ1BvbGljeScpID4gLTEpO1xuXG4gICAgLy8gRmluZCB0aGUga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgcmVzb3VyY2UocykgdGhpcyBwb2xpY3kgYXBwbGllcyB0b1xuICAgIGNvbnN0IHJlc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmZpbHRlcihrZXkgPT4gIXBvbGljeUtleXMuaW5jbHVkZXMoa2V5KSAmJiAha2V5LmVuZHNXaXRoKCdOYW1lJykpO1xuICAgIGxldCByZXNvdXJjZXMgPSByZXNvdXJjZUtleXMubGVuZ3RoID09PSAxID8gcHJvcGVydGllc1tyZXNvdXJjZUtleXNbMF1dIDogWyc/Pz8nXTtcblxuICAgIC8vIEZvciBzb21lIHJlc291cmNlcywgdGhpcyBpcyBhIHNpbmdsZXRvbiBzdHJpbmcsIGZvciBzb21lIGl0J3MgYW4gYXJyYXlcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzb3VyY2VzKSkge1xuICAgICAgcmVzb3VyY2VzID0gW3Jlc291cmNlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGZsYXRNYXAocmVzb3VyY2VzLCAocmVzb3VyY2U6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGRlZmF1bHRSZXNvdXJjZShyZXNvdXJjZSwgcGFyc2VTdGF0ZW1lbnRzKHByb3BlcnRpZXNbcG9saWN5S2V5c1swXV0uU3RhdGVtZW50KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRNYW5hZ2VkUG9saWNpZXMocG9saWN5QXJuczogYW55LCBsb2dpY2FsSWQ6IHN0cmluZyk6IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50W10ge1xuICAgIGlmICghcG9saWN5QXJucykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcCA9ICckeycgKyBsb2dpY2FsSWQgKyAnfSc7XG4gICAgcmV0dXJuIE1hbmFnZWRQb2xpY3lBdHRhY2htZW50LnBhcnNlTWFuYWdlZFBvbGljaWVzKHJlcCwgcmVuZGVySW50cmluc2ljcyhwb2xpY3lBcm5zKSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRMYW1iZGFTdGF0ZW1lbnRzKHByb3BlcnRpZXM/OiBQcm9wZXJ0eU1hcCk6IFN0YXRlbWVudFtdIHtcbiAgICBpZiAoIXByb3BlcnRpZXMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3BhcnNlTGFtYmRhUGVybWlzc2lvbihyZW5kZXJJbnRyaW5zaWNzKHByb3BlcnRpZXMpKV07XG4gIH1cbn1cblxuLyoqXG4gKiBTZXQgYW4gdW5kZWZpbmVkIG9yIHdpbGRjYXJkZWQgcHJpbmNpcGFsIG9uIHRoZXNlIHN0YXRlbWVudHNcbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFByaW5jaXBhbChwcmluY2lwYWw6IHN0cmluZywgc3RhdGVtZW50czogU3RhdGVtZW50W10pIHtcbiAgc3RhdGVtZW50cy5mb3JFYWNoKHMgPT4gcy5wcmluY2lwYWxzLnJlcGxhY2VFbXB0eShwcmluY2lwYWwpKTtcbiAgc3RhdGVtZW50cy5mb3JFYWNoKHMgPT4gcy5wcmluY2lwYWxzLnJlcGxhY2VTdGFyKHByaW5jaXBhbCkpO1xuICByZXR1cm4gc3RhdGVtZW50cztcbn1cblxuLyoqXG4gKiBTZXQgYW4gdW5kZWZpbmVkIG9yIHdpbGRjYXJkZWQgcmVzb3VyY2Ugb24gdGhlc2Ugc3RhdGVtZW50c1xuICovXG5mdW5jdGlvbiBkZWZhdWx0UmVzb3VyY2UocmVzb3VyY2U6IHN0cmluZywgc3RhdGVtZW50czogU3RhdGVtZW50W10pIHtcbiAgc3RhdGVtZW50cy5mb3JFYWNoKHMgPT4gcy5yZXNvdXJjZXMucmVwbGFjZUVtcHR5KHJlc291cmNlKSk7XG4gIHN0YXRlbWVudHMuZm9yRWFjaChzID0+IHMucmVzb3VyY2VzLnJlcGxhY2VTdGFyKHJlc291cmNlKSk7XG4gIHJldHVybiBzdGF0ZW1lbnRzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElhbUNoYW5nZXNKc29uIHtcbiAgc3RhdGVtZW50QWRkaXRpb25zPzogQXJyYXk8TWF5YmVQYXJzZWQ8U3RhdGVtZW50SnNvbj4+O1xuICBzdGF0ZW1lbnRSZW1vdmFscz86IEFycmF5PE1heWJlUGFyc2VkPFN0YXRlbWVudEpzb24+PjtcbiAgbWFuYWdlZFBvbGljeUFkZGl0aW9ucz86IEFycmF5PE1heWJlUGFyc2VkPE1hbmFnZWRQb2xpY3lKc29uPj47XG4gIG1hbmFnZWRQb2xpY3lSZW1vdmFscz86IEFycmF5PE1heWJlUGFyc2VkPE1hbmFnZWRQb2xpY3lKc29uPj47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SsoInstanceACAConfig = exports.SsoAssignment = exports.SsoPermissionSet = void 0;\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst deepEqual = require('fast-deep-equal');\nclass SsoPermissionSet {\n constructor(props) {\n this.cfnLogicalId = props.cfnLogicalId;\n this.name = props.name;\n this.ssoInstanceArn = props.ssoInstanceArn;\n this.ssoPermissionsBoundary = props.ssoPermissionsBoundary;\n this.ssoCustomerManagedPolicyReferences = props.ssoCustomerManagedPolicyReferences;\n }\n equal(other) {\n return deepEqual(this, other);\n }\n}\nexports.SsoPermissionSet = SsoPermissionSet;\nclass SsoAssignment {\n constructor(props) {\n this.cfnLogicalId = props.cfnLogicalId;\n this.ssoInstanceArn = props.ssoInstanceArn;\n this.permissionSetArn = props.permissionSetArn;\n this.principalId = props.principalId;\n this.principalType = props.principalType;\n this.targetId = props.targetId;\n this.targetType = props.targetType;\n }\n equal(other) {\n return deepEqual(this, other);\n }\n}\nexports.SsoAssignment = SsoAssignment;\nclass SsoInstanceACAConfig {\n constructor(props) {\n this.cfnLogicalId = props.cfnLogicalId;\n this.ssoInstanceArn = props.ssoInstanceArn;\n this.accessControlAttributes = props.accessControlAttributes;\n }\n equal(other) {\n return deepEqual(this, other);\n }\n}\nexports.SsoInstanceACAConfig = SsoInstanceACAConfig;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWlkZW50aXR5LWNlbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlhbS1pZGVudGl0eS1jZW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQXdCN0MsTUFBYSxnQkFBZ0I7SUFPM0IsWUFBWSxLQUE4QjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxLQUFLLENBQUMsa0NBQWtDLENBQUM7SUFDckYsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUF1QjtRQUNsQyxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBbEJELDRDQWtCQztBQWNELE1BQWEsYUFBYTtJQVN4QixZQUFZLEtBQTJCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFvQjtRQUMvQixPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBdEJELHNDQXNCQztBQXNCRCxNQUFhLG9CQUFvQjtJQUsvQixZQUFZLEtBQWtDO1FBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUMvRCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQTJCO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFkRCxvREFjQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBkZWVwRXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKTtcblxuLyoqXG4gKiBUaGlzIG5hbWVzcGFjZSBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIEwxIENmblBlcm1pc3Npb25TZXQsIG90aGVyIHRoYW5cbiAqIGNhcGl0YWxpemF0aW9uLCBzaW5jZSB0aGUgdmFsdWVzIGNvbWUgZnJvbSBmcm9tIGEgcGFyc2VkIENGTiB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBJU3NvUGVybWlzc2lvblNldCB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgUHJvcHMge1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBzc29JbnN0YW5jZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IHNzb1Blcm1pc3Npb25zQm91bmRhcnk6IElTc29QZXJtaXNzaW9uU2V0LlBlcm1pc3Npb25zQm91bmRhcnkgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgc3NvQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlczogSVNzb1Blcm1pc3Npb25TZXQuQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlW10gfCB1bmRlZmluZWQ7XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uc0JvdW5kYXJ5IHtcbiAgICByZWFkb25seSBDdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2U/OiBDdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2U7XG4gICAgcmVhZG9ubHkgTWFuYWdlZFBvbGljeUFybj86IHN0cmluZztcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZSB7XG4gICAgcmVhZG9ubHkgTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3NvUGVybWlzc2lvblNldCBpbXBsZW1lbnRzIElTc29QZXJtaXNzaW9uU2V0LlByb3BzIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IGNmbkxvZ2ljYWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgc3NvSW5zdGFuY2VBcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHNzb1Blcm1pc3Npb25zQm91bmRhcnk6IElTc29QZXJtaXNzaW9uU2V0LlBlcm1pc3Npb25zQm91bmRhcnkgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBzc29DdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2VzOiBJU3NvUGVybWlzc2lvblNldC5DdXN0b21lck1hbmFnZWRQb2xpY3lSZWZlcmVuY2VbXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogSVNzb1Blcm1pc3Npb25TZXQuUHJvcHMpIHtcbiAgICB0aGlzLmNmbkxvZ2ljYWxJZCA9IHByb3BzLmNmbkxvZ2ljYWxJZDtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMuc3NvSW5zdGFuY2VBcm4gPSBwcm9wcy5zc29JbnN0YW5jZUFybjtcbiAgICB0aGlzLnNzb1Blcm1pc3Npb25zQm91bmRhcnkgPSBwcm9wcy5zc29QZXJtaXNzaW9uc0JvdW5kYXJ5O1xuICAgIHRoaXMuc3NvQ3VzdG9tZXJNYW5hZ2VkUG9saWN5UmVmZXJlbmNlcyA9IHByb3BzLnNzb0N1c3RvbWVyTWFuYWdlZFBvbGljeVJlZmVyZW5jZXM7XG4gIH1cblxuICBwdWJsaWMgZXF1YWwob3RoZXI6IFNzb1Blcm1pc3Npb25TZXQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGVlcEVxdWFsKHRoaXMsIG90aGVyKTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIElTc29Bc3NpZ25tZW50IHtcbiAgZXhwb3J0IGludGVyZmFjZSBQcm9wcyB7XG4gICAgcmVhZG9ubHkgc3NvSW5zdGFuY2VBcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBwZXJtaXNzaW9uU2V0QXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgcHJpbmNpcGFsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBwcmluY2lwYWxUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgdGFyZ2V0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSB0YXJnZXRUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNzb0Fzc2lnbm1lbnQgaW1wbGVtZW50cyBJU3NvQXNzaWdubWVudC5Qcm9wcyB7XG4gIHB1YmxpYyByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHNzb0luc3RhbmNlQXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBwZXJtaXNzaW9uU2V0QXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBwcmluY2lwYWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbmNpcGFsVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogSVNzb0Fzc2lnbm1lbnQuUHJvcHMpIHtcbiAgICB0aGlzLmNmbkxvZ2ljYWxJZCA9IHByb3BzLmNmbkxvZ2ljYWxJZDtcbiAgICB0aGlzLnNzb0luc3RhbmNlQXJuID0gcHJvcHMuc3NvSW5zdGFuY2VBcm47XG4gICAgdGhpcy5wZXJtaXNzaW9uU2V0QXJuID0gcHJvcHMucGVybWlzc2lvblNldEFybjtcbiAgICB0aGlzLnByaW5jaXBhbElkID0gcHJvcHMucHJpbmNpcGFsSWQ7XG4gICAgdGhpcy5wcmluY2lwYWxUeXBlID0gcHJvcHMucHJpbmNpcGFsVHlwZTtcbiAgICB0aGlzLnRhcmdldElkID0gcHJvcHMudGFyZ2V0SWQ7XG4gICAgdGhpcy50YXJnZXRUeXBlID0gcHJvcHMudGFyZ2V0VHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBlcXVhbChvdGhlcjogU3NvQXNzaWdubWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkZWVwRXF1YWwodGhpcywgb3RoZXIpO1xuICB9XG59XG5cbi8qKlxuICogQVdTOjpTU086Okluc3RhbmNlQWNjZXNzQ29udHJvbEF0dHJpYnV0ZUNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3NvSW5zdGFuY2VBQ0FDb25maWdQcm9wcyB7XG4gIHNzb0luc3RhbmNlQXJuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgSVNzb0luc3RhbmNlQUNBQ29uZmlnIHtcbiAgZXhwb3J0IHR5cGUgQWNjZXNzQ29udHJvbEF0dHJpYnV0ZSA9IHtcbiAgICBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBWYWx1ZTogeyBTb3VyY2U6IHN0cmluZ1tdIH0gfCB1bmRlZmluZWQ7XG4gIH0gfCB1bmRlZmluZWQ7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQcm9wcyB7XG4gICAgcmVhZG9ubHkgc3NvSW5zdGFuY2VBcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBjZm5Mb2dpY2FsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBhY2Nlc3NDb250cm9sQXR0cmlidXRlcz86IEFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3NvSW5zdGFuY2VBQ0FDb25maWcgaW1wbGVtZW50cyBJU3NvSW5zdGFuY2VBQ0FDb25maWcuUHJvcHMge1xuICBwdWJsaWMgcmVhZG9ubHkgY2ZuTG9naWNhbElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBzc29JbnN0YW5jZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXNzQ29udHJvbEF0dHJpYnV0ZXM/OiBJU3NvSW5zdGFuY2VBQ0FDb25maWcuQWNjZXNzQ29udHJvbEF0dHJpYnV0ZVtdIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBJU3NvSW5zdGFuY2VBQ0FDb25maWcuUHJvcHMpIHtcbiAgICB0aGlzLmNmbkxvZ2ljYWxJZCA9IHByb3BzLmNmbkxvZ2ljYWxJZDtcbiAgICB0aGlzLnNzb0luc3RhbmNlQXJuID0gcHJvcHMuc3NvSW5zdGFuY2VBcm47XG4gICAgdGhpcy5hY2Nlc3NDb250cm9sQXR0cmlidXRlcyA9IHByb3BzLmFjY2Vzc0NvbnRyb2xBdHRyaWJ1dGVzO1xuICB9XG5cbiAgcHVibGljIGVxdWFsKG90aGVyOiBTc29JbnN0YW5jZUFDQUNvbmZpZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkZWVwRXF1YWwodGhpcywgb3RoZXIpO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ManagedPolicyAttachment = void 0;\nconst maybe_parsed_1 = require(\"../diff/maybe-parsed\");\nclass ManagedPolicyAttachment {\n static parseManagedPolicies(identityArn, arns) {\n return typeof arns === 'string'\n ? [new ManagedPolicyAttachment(identityArn, arns)]\n : arns.map((arn) => new ManagedPolicyAttachment(identityArn, arn));\n }\n constructor(identityArn, managedPolicyArn) {\n this.identityArn = identityArn;\n this.managedPolicyArn = managedPolicyArn;\n }\n equal(other) {\n return this.identityArn === other.identityArn\n && this.managedPolicyArn === other.managedPolicyArn;\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return (0, maybe_parsed_1.mkParsed)({\n identityArn: this.identityArn,\n managedPolicyArn: this.managedPolicyArn,\n });\n }\n}\nexports.ManagedPolicyAttachment = ManagedPolicyAttachment;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1wb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5hZ2VkLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBZ0Q7QUFFaEQsTUFBYSx1QkFBdUI7SUFDM0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsSUFBdUI7UUFDN0UsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRO1lBQzdCLENBQUMsQ0FBQyxDQUFDLElBQUksdUJBQXVCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxZQUE0QixXQUFtQixFQUFrQixnQkFBd0I7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBa0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0lBQ3pGLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBOEI7UUFDekMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxXQUFXO2VBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksT0FBTztRQUNaLE9BQU8sSUFBQSx1QkFBUSxFQUFDO1lBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0JELDBEQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVQYXJzZWQgfSBmcm9tICcuLi9kaWZmL21heWJlLXBhcnNlZCc7XG5pbXBvcnQgeyBta1BhcnNlZCB9IGZyb20gJy4uL2RpZmYvbWF5YmUtcGFyc2VkJztcblxuZXhwb3J0IGNsYXNzIE1hbmFnZWRQb2xpY3lBdHRhY2htZW50IHtcbiAgcHVibGljIHN0YXRpYyBwYXJzZU1hbmFnZWRQb2xpY2llcyhpZGVudGl0eUFybjogc3RyaW5nLCBhcm5zOiBzdHJpbmcgfCBzdHJpbmdbXSk6IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50W10ge1xuICAgIHJldHVybiB0eXBlb2YgYXJucyA9PT0gJ3N0cmluZydcbiAgICAgID8gW25ldyBNYW5hZ2VkUG9saWN5QXR0YWNobWVudChpZGVudGl0eUFybiwgYXJucyldXG4gICAgICA6IGFybnMubWFwKChhcm46IHN0cmluZykgPT4gbmV3IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50KGlkZW50aXR5QXJuLCBhcm4pKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBpZGVudGl0eUFybjogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgbWFuYWdlZFBvbGljeUFybjogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgZXF1YWwob3RoZXI6IE1hbmFnZWRQb2xpY3lBdHRhY2htZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlBcm4gPT09IG90aGVyLmlkZW50aXR5QXJuXG4gICAgICAgICYmIHRoaXMubWFuYWdlZFBvbGljeUFybiA9PT0gb3RoZXIubWFuYWdlZFBvbGljeUFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtYWNoaW5lLXJlYWRhYmxlIHZlcnNpb24gb2YgdGhlIGNoYW5nZXMuXG4gICAqIFRoaXMgaXMgb25seSB1c2VkIGluIHRlc3RzLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdG9Kc29uKCk6IE1heWJlUGFyc2VkPE1hbmFnZWRQb2xpY3lKc29uPiB7XG4gICAgcmV0dXJuIG1rUGFyc2VkKHtcbiAgICAgIGlkZW50aXR5QXJuOiB0aGlzLmlkZW50aXR5QXJuLFxuICAgICAgbWFuYWdlZFBvbGljeUFybjogdGhpcy5tYW5hZ2VkUG9saWN5QXJuLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlZFBvbGljeUpzb24ge1xuICBpZGVudGl0eUFybjogc3RyaW5nO1xuICBtYW5hZ2VkUG9saWN5QXJuOiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Effect = exports.Targets = exports.Statement = void 0;\nexports.parseStatements = parseStatements;\nexports.parseLambdaPermission = parseLambdaPermission;\nexports.renderCondition = renderCondition;\nconst maybe_parsed_1 = require(\"../diff/maybe-parsed\");\nconst util_1 = require(\"../util\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst deepEqual = require('fast-deep-equal');\nclass Statement {\n constructor(statement) {\n if (typeof statement === 'string') {\n this.sid = undefined;\n this.effect = Effect.Unknown;\n this.resources = new Targets({}, '', '');\n this.actions = new Targets({}, '', '');\n this.principals = new Targets({}, '', '');\n this.condition = undefined;\n this.serializedIntrinsic = statement;\n }\n else {\n this.sid = expectString(statement.Sid);\n this.effect = expectEffect(statement.Effect);\n this.resources = new Targets(statement, 'Resource', 'NotResource');\n this.actions = new Targets(statement, 'Action', 'NotAction');\n this.principals = new Targets(statement, 'Principal', 'NotPrincipal');\n this.condition = statement.Condition;\n this.serializedIntrinsic = undefined;\n }\n }\n /**\n * Whether this statement is equal to the other statement\n */\n equal(other) {\n return (this.sid === other.sid\n && this.effect === other.effect\n && this.serializedIntrinsic === other.serializedIntrinsic\n && this.resources.equal(other.resources)\n && this.actions.equal(other.actions)\n && this.principals.equal(other.principals)\n && deepEqual(this.condition, other.condition));\n }\n render() {\n return this.serializedIntrinsic\n ? {\n resource: this.serializedIntrinsic,\n effect: '',\n action: '',\n principal: this.principals.render(), // these will be replaced by the call to replaceEmpty() from IamChanges\n condition: '',\n }\n : {\n resource: this.resources.render(),\n effect: this.effect,\n action: this.actions.render(),\n principal: this.principals.render(),\n condition: renderCondition(this.condition),\n };\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return this.serializedIntrinsic\n ? (0, maybe_parsed_1.mkUnparseable)(this.serializedIntrinsic)\n : (0, maybe_parsed_1.mkParsed)((0, util_1.deepRemoveUndefined)({\n sid: this.sid,\n effect: this.effect,\n resources: this.resources._toJson(),\n principals: this.principals._toJson(),\n actions: this.actions._toJson(),\n condition: this.condition,\n }));\n }\n /**\n * Whether this is a negative statement\n *\n * A statement is negative if any of its targets are negative, inverted\n * if the Effect is Deny.\n */\n get isNegativeStatement() {\n const notTarget = this.actions.not || this.principals.not || this.resources.not;\n return this.effect === Effect.Allow ? notTarget : !notTarget;\n }\n}\nexports.Statement = Statement;\n/**\n * Parse a list of statements from undefined, a Statement, or a list of statements\n */\nfunction parseStatements(x) {\n if (x === undefined) {\n x = [];\n }\n if (!Array.isArray(x)) {\n x = [x];\n }\n return x.map((s) => new Statement(s));\n}\n/**\n * Parse a Statement from a Lambda::Permission object\n *\n * This is actually what Lambda adds to the policy document if you call AddPermission.\n */\nfunction parseLambdaPermission(x) {\n // Construct a statement from\n const statement = {\n Effect: 'Allow',\n Action: x.Action,\n Resource: x.FunctionName,\n };\n if (x.Principal !== undefined) {\n if (x.Principal === '*') {\n // *\n statement.Principal = '*';\n }\n else if (/^\\d{12}$/.test(x.Principal)) {\n // Account number\n // eslint-disable-next-line @cdklabs/no-literal-partition\n statement.Principal = { AWS: `arn:aws:iam::${x.Principal}:root` };\n }\n else {\n // Assume it's a service principal\n // We might get this wrong vs. the previous one for tokens. Nothing to be done\n // about that. It's only for human readable consumption after all.\n statement.Principal = { Service: x.Principal };\n }\n }\n if (x.SourceArn !== undefined) {\n if (statement.Condition === undefined) {\n statement.Condition = {};\n }\n statement.Condition.ArnLike = { 'AWS:SourceArn': x.SourceArn };\n }\n if (x.SourceAccount !== undefined) {\n if (statement.Condition === undefined) {\n statement.Condition = {};\n }\n statement.Condition.StringEquals = { 'AWS:SourceAccount': x.SourceAccount };\n }\n if (x.EventSourceToken !== undefined) {\n if (statement.Condition === undefined) {\n statement.Condition = {};\n }\n statement.Condition.StringEquals = { 'lambda:EventSourceToken': x.EventSourceToken };\n }\n return new Statement(statement);\n}\n/**\n * Targets for a field\n */\nclass Targets {\n constructor(statement, positiveKey, negativeKey) {\n if (negativeKey in statement) {\n this.values = forceListOfStrings(statement[negativeKey]);\n this.not = true;\n }\n else {\n this.values = forceListOfStrings(statement[positiveKey]);\n this.not = false;\n }\n this.values.sort();\n }\n get empty() {\n return this.values.length === 0;\n }\n /**\n * Whether this set of targets is equal to the other set of targets\n */\n equal(other) {\n return this.not === other.not && deepEqual(this.values.sort(), other.values.sort());\n }\n /**\n * If the current value set is empty, put this in it\n */\n replaceEmpty(replacement) {\n if (this.empty) {\n this.values.push(replacement);\n }\n }\n /**\n * If the actions contains a '*', replace with this string.\n */\n replaceStar(replacement) {\n for (let i = 0; i < this.values.length; i++) {\n if (this.values[i] === '*') {\n this.values[i] = replacement;\n }\n }\n this.values.sort();\n }\n /**\n * Render into a summary table cell\n */\n render() {\n return this.not\n ? this.values.map(s => `NOT ${s}`).join('\\n')\n : this.values.join('\\n');\n }\n /**\n * Return a machine-readable version of the changes.\n * This is only used in tests.\n *\n * @internal\n */\n _toJson() {\n return { not: this.not, values: this.values };\n }\n}\nexports.Targets = Targets;\nvar Effect;\n(function (Effect) {\n Effect[\"Unknown\"] = \"Unknown\";\n Effect[\"Allow\"] = \"Allow\";\n Effect[\"Deny\"] = \"Deny\";\n})(Effect || (exports.Effect = Effect = {}));\nfunction expectString(x) {\n return typeof x === 'string' ? x : undefined;\n}\nfunction expectEffect(x) {\n if (x === Effect.Allow || x === Effect.Deny) {\n return x;\n }\n return Effect.Unknown;\n}\nfunction forceListOfStrings(x) {\n if (typeof x === 'string') {\n return [x];\n }\n if (typeof x === 'undefined' || x === null) {\n return [];\n }\n if (Array.isArray(x)) {\n return x.map(e => forceListOfStrings(e).join(','));\n }\n if (typeof x === 'object' && x !== null) {\n const ret = [];\n for (const [key, value] of Object.entries(x)) {\n ret.push(...forceListOfStrings(value).map(s => `${key}:${s}`));\n }\n return ret;\n }\n return [`${x}`];\n}\n/**\n * Render the Condition column\n */\nfunction renderCondition(condition) {\n if (!condition || Object.keys(condition).length === 0) {\n return '';\n }\n const jsonRepresentation = JSON.stringify(condition, undefined, 2);\n // The JSON representation looks like this:\n //\n // {\n // \"ArnLike\": {\n // \"AWS:SourceArn\": \"${MyTopic86869434}\"\n // }\n // }\n //\n // We can make it more compact without losing information by getting rid of the outermost braces\n // and the indentation.\n const lines = jsonRepresentation.split('\\n');\n return lines.slice(1, lines.length - 1).map(s => s.slice(2)).join('\\n');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhdGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9KQSwwQ0FRQztBQU9ELHNEQTJDQztBQTRIRCwwQ0FrQkM7QUEzVkQsdURBQStEO0FBQy9ELGtDQUE4QztBQUU5Qyx5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdDLE1BQWEsU0FBUztJQWlDcEIsWUFBWSxTQUE4QjtRQUN4QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVB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RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRSwyQ0FBMkM7SUFDM0MsRUFBRTtJQUNGLEtBQUs7SUFDTCxrQkFBa0I7SUFDbEIsNkNBQTZDO0lBQzdDLE9BQU87SUFDUCxLQUFLO0lBQ0wsRUFBRTtJQUNGLGdHQUFnRztJQUNoRyx1QkFBdUI7SUFDdkIsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1heWJlUGFyc2VkIH0gZnJvbSAnLi4vZGlmZi9tYXliZS1wYXJzZWQnO1xuaW1wb3J0IHsgbWtQYXJzZWQsIG1rVW5wYXJzZWFibGUgfSBmcm9tICcuLi9kaWZmL21heWJlLXBhcnNlZCc7XG5pbXBvcnQgeyBkZWVwUmVtb3ZlVW5kZWZpbmVkIH0gZnJvbSAnLi4vdXRpbCc7XG5cbi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBkZWVwRXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKTtcblxuZXhwb3J0IGNsYXNzIFN0YXRlbWVudCB7XG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgSURcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU3RhdGVtZW50IGVmZmVjdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVmZmVjdDogRWZmZWN0O1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IFRhcmdldHM7XG5cbiAgLyoqXG4gICAqIFByaW5jaXBhbHNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmluY2lwYWxzOiBUYXJnZXRzO1xuXG4gIC8qKlxuICAgKiBBY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uczogVGFyZ2V0cztcblxuICAvKipcbiAgICogT2JqZWN0IHdpdGggY29uZGl0aW9uc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmRpdGlvbj86IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcmlhbGl6ZWRJbnRyaW5zaWM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAgfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuc2lkID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lZmZlY3QgPSBFZmZlY3QuVW5rbm93bjtcbiAgICAgIHRoaXMucmVzb3VyY2VzID0gbmV3IFRhcmdldHMoe30sICcnLCAnJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyh7fSwgJycsICcnKTtcbiAgICAgIHRoaXMucHJpbmNpcGFscyA9IG5ldyBUYXJnZXRzKHt9LCAnJywgJycpO1xuICAgICAgdGhpcy5jb25kaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSBzdGF0ZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2lkID0gZXhwZWN0U3RyaW5nKHN0YXRlbWVudC5TaWQpO1xuICAgICAgdGhpcy5lZmZlY3QgPSBleHBlY3RFZmZlY3Qoc3RhdGVtZW50LkVmZmVjdCk7XG4gICAgICB0aGlzLnJlc291cmNlcyA9IG5ldyBUYXJnZXRzKHN0YXRlbWVudCwgJ1Jlc291cmNlJywgJ05vdFJlc291cmNlJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdBY3Rpb24nLCAnTm90QWN0aW9uJyk7XG4gICAgICB0aGlzLnByaW5jaXBhbHMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdQcmluY2lwYWwnLCAnTm90UHJpbmNpcGFsJyk7XG4gICAgICB0aGlzLmNvbmRpdGlvbiA9IHN0YXRlbWVudC5Db25kaXRpb247XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdGF0ZW1lbnQgaXMgZXF1YWwgdG8gdGhlIG90aGVyIHN0YXRlbWVudFxuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBTdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuc2lkID09PSBvdGhlci5zaWRcbiAgICAgICYmIHRoaXMuZWZmZWN0ID09PSBvdGhlci5lZmZlY3RcbiAgICAgICYmIHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyA9PT0gb3RoZXIuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgJiYgdGhpcy5yZXNvdXJjZXMuZXF1YWwob3RoZXIucmVzb3VyY2VzKVxuICAgICAgJiYgdGhpcy5hY3Rpb25zLmVxdWFsKG90aGVyLmFjdGlvbnMpXG4gICAgICAmJiB0aGlzLnByaW5jaXBhbHMuZXF1YWwob3RoZXIucHJpbmNpcGFscylcbiAgICAgICYmIGRlZXBFcXVhbCh0aGlzLmNvbmRpdGlvbiwgb3RoZXIuY29uZGl0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFJlbmRlcmVkU3RhdGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVkSW50cmluc2ljXG4gICAgICA/IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyxcbiAgICAgICAgZWZmZWN0OiAnJyxcbiAgICAgICAgYWN0aW9uOiAnJyxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksIC8vIHRoZXNlIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGNhbGwgdG8gcmVwbGFjZUVtcHR5KCkgZnJvbSBJYW1DaGFuZ2VzXG4gICAgICAgIGNvbmRpdGlvbjogJycsXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMucmVzb3VyY2VzLnJlbmRlcigpLFxuICAgICAgICBlZmZlY3Q6IHRoaXMuZWZmZWN0LFxuICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9ucy5yZW5kZXIoKSxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksXG4gICAgICAgIGNvbmRpdGlvbjogcmVuZGVyQ29uZGl0aW9uKHRoaXMuY29uZGl0aW9uKSxcbiAgICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBNYXliZVBhcnNlZDxTdGF0ZW1lbnRKc29uPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgPyBta1VucGFyc2VhYmxlKHRoaXMuc2VyaWFsaXplZEludHJpbnNpYylcbiAgICAgIDogbWtQYXJzZWQoZGVlcFJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICAgIHNpZDogdGhpcy5zaWQsXG4gICAgICAgIGVmZmVjdDogdGhpcy5lZmZlY3QsXG4gICAgICAgIHJlc291cmNlczogdGhpcy5yZXNvdXJjZXMuX3RvSnNvbigpLFxuICAgICAgICBwcmluY2lwYWxzOiB0aGlzLnByaW5jaXBhbHMuX3RvSnNvbigpLFxuICAgICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMuX3RvSnNvbigpLFxuICAgICAgICBjb25kaXRpb246IHRoaXMuY29uZGl0aW9uLFxuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIG5lZ2F0aXZlIHN0YXRlbWVudFxuICAgKlxuICAgKiBBIHN0YXRlbWVudCBpcyBuZWdhdGl2ZSBpZiBhbnkgb2YgaXRzIHRhcmdldHMgYXJlIG5lZ2F0aXZlLCBpbnZlcnRlZFxuICAgKiBpZiB0aGUgRWZmZWN0IGlzIERlbnkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzTmVnYXRpdmVTdGF0ZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm90VGFyZ2V0ID0gdGhpcy5hY3Rpb25zLm5vdCB8fCB0aGlzLnByaW5jaXBhbHMubm90IHx8IHRoaXMucmVzb3VyY2VzLm5vdDtcbiAgICByZXR1cm4gdGhpcy5lZmZlY3QgPT09IEVmZmVjdC5BbGxvdyA/IG5vdFRhcmdldCA6ICFub3RUYXJnZXQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJlZFN0YXRlbWVudCB7XG4gIHJlYWRvbmx5IHJlc291cmNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVmZmVjdDogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcHJpbmNpcGFsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbmRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlbWVudEpzb24ge1xuICBzaWQ/OiBzdHJpbmc7XG4gIGVmZmVjdDogc3RyaW5nO1xuICByZXNvdXJjZXM6IFRhcmdldHNKc29uO1xuICBhY3Rpb25zOiBUYXJnZXRzSnNvbjtcbiAgcHJpbmNpcGFsczogVGFyZ2V0c0pzb247XG4gIGNvbmRpdGlvbj86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRzSnNvbiB7XG4gIG5vdDogYm9vbGVhbjtcbiAgdmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIGxpc3Qgb2Ygc3RhdGVtZW50cyBmcm9tIHVuZGVmaW5lZCwgYSBTdGF0ZW1lbnQsIG9yIGEgbGlzdCBvZiBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YXRlbWVudHMoeDogYW55KTogU3RhdGVtZW50W10ge1xuICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgeCA9IFtdO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHggPSBbeF07XG4gIH1cbiAgcmV0dXJuIHgubWFwKChzOiBhbnkpID0+IG5ldyBTdGF0ZW1lbnQocykpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgU3RhdGVtZW50IGZyb20gYSBMYW1iZGE6OlBlcm1pc3Npb24gb2JqZWN0XG4gKlxuICogVGhpcyBpcyBhY3R1YWxseSB3aGF0IExhbWJkYSBhZGRzIHRvIHRoZSBwb2xpY3kgZG9jdW1lbnQgaWYgeW91IGNhbGwgQWRkUGVybWlzc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGFtYmRhUGVybWlzc2lvbih4OiBhbnkpOiBTdGF0ZW1lbnQge1xuICAvLyBDb25zdHJ1Y3QgYSBzdGF0ZW1lbnQgZnJvbVxuICBjb25zdCBzdGF0ZW1lbnQ6IGFueSA9IHtcbiAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgQWN0aW9uOiB4LkFjdGlvbixcbiAgICBSZXNvdXJjZTogeC5GdW5jdGlvbk5hbWUsXG4gIH07XG5cbiAgaWYgKHguUHJpbmNpcGFsICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoeC5QcmluY2lwYWwgPT09ICcqJykge1xuICAgICAgLy8gKlxuICAgICAgc3RhdGVtZW50LlByaW5jaXBhbCA9ICcqJztcbiAgICB9IGVsc2UgaWYgKC9eXFxkezEyfSQvLnRlc3QoeC5QcmluY2lwYWwpKSB7XG4gICAgICAvLyBBY2NvdW50IG51bWJlclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL25vLWxpdGVyYWwtcGFydGl0aW9uXG4gICAgICBzdGF0ZW1lbnQuUHJpbmNpcGFsID0geyBBV1M6IGBhcm46YXdzOmlhbTo6JHt4LlByaW5jaXBhbH06cm9vdGAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGl0J3MgYSBzZXJ2aWNlIHByaW5jaXBhbFxuICAgICAgLy8gV2UgbWlnaHQgZ2V0IHRoaXMgd3JvbmcgdnMuIHRoZSBwcmV2aW91cyBvbmUgZm9yIHRva2Vucy4gTm90aGluZyB0byBiZSBkb25lXG4gICAgICAvLyBhYm91dCB0aGF0LiBJdCdzIG9ubHkgZm9yIGh1bWFuIHJlYWRhYmxlIGNvbnN1bXB0aW9uIGFmdGVyIGFsbC5cbiAgICAgIHN0YXRlbWVudC5QcmluY2lwYWwgPSB7IFNlcnZpY2U6IHguUHJpbmNpcGFsIH07XG4gICAgfVxuICB9XG4gIGlmICh4LlNvdXJjZUFybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHN0YXRlbWVudC5Db25kaXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RhdGVtZW50LkNvbmRpdGlvbiA9IHt9O1xuICAgIH1cbiAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uLkFybkxpa2UgPSB7ICdBV1M6U291cmNlQXJuJzogeC5Tb3VyY2VBcm4gfTtcbiAgfVxuICBpZiAoeC5Tb3VyY2VBY2NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnQVdTOlNvdXJjZUFjY291bnQnOiB4LlNvdXJjZUFjY291bnQgfTtcbiAgfVxuICBpZiAoeC5FdmVudFNvdXJjZVRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnbGFtYmRhOkV2ZW50U291cmNlVG9rZW4nOiB4LkV2ZW50U291cmNlVG9rZW4gfTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU3RhdGVtZW50KHN0YXRlbWVudCk7XG59XG5cbi8qKlxuICogVGFyZ2V0cyBmb3IgYSBmaWVsZFxuICovXG5leHBvcnQgY2xhc3MgVGFyZ2V0cyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIG9mIHRoZSB0YXJnZXRzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBtYXRjaGVyc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAsIHBvc2l0aXZlS2V5OiBzdHJpbmcsIG5lZ2F0aXZlS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAobmVnYXRpdmVLZXkgaW4gc3RhdGVtZW50KSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IGZvcmNlTGlzdE9mU3RyaW5ncyhzdGF0ZW1lbnRbbmVnYXRpdmVLZXldKTtcbiAgICAgIHRoaXMubm90ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZXMgPSBmb3JjZUxpc3RPZlN0cmluZ3Moc3RhdGVtZW50W3Bvc2l0aXZlS2V5XSk7XG4gICAgICB0aGlzLm5vdCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHNldCBvZiB0YXJnZXRzIGlzIGVxdWFsIHRvIHRoZSBvdGhlciBzZXQgb2YgdGFyZ2V0c1xuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBUYXJnZXRzKSB7XG4gICAgcmV0dXJuIHRoaXMubm90ID09PSBvdGhlci5ub3QgJiYgZGVlcEVxdWFsKHRoaXMudmFsdWVzLnNvcnQoKSwgb3RoZXIudmFsdWVzLnNvcnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGN1cnJlbnQgdmFsdWUgc2V0IGlzIGVtcHR5LCBwdXQgdGhpcyBpbiBpdFxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VFbXB0eShyZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2gocmVwbGFjZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgYWN0aW9ucyBjb250YWlucyBhICcqJywgcmVwbGFjZSB3aXRoIHRoaXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VTdGFyKHJlcGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZXNbaV0gPT09ICcqJykge1xuICAgICAgICB0aGlzLnZhbHVlc1tpXSA9IHJlcGxhY2VtZW50O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGludG8gYSBzdW1tYXJ5IHRhYmxlIGNlbGxcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ub3RcbiAgICAgID8gdGhpcy52YWx1ZXMubWFwKHMgPT4gYE5PVCAke3N9YCkuam9pbignXFxuJylcbiAgICAgIDogdGhpcy52YWx1ZXMuam9pbignXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBUYXJnZXRzSnNvbiB7XG4gICAgcmV0dXJuIHsgbm90OiB0aGlzLm5vdCwgdmFsdWVzOiB0aGlzLnZhbHVlcyB9O1xuICB9XG59XG5cbnR5cGUgVW5rbm93bk1hcCA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuXG5leHBvcnQgZW51bSBFZmZlY3Qge1xuICBVbmtub3duID0gJ1Vua25vd24nLFxuICBBbGxvdyA9ICdBbGxvdycsXG4gIERlbnkgPSAnRGVueScsXG59XG5cbmZ1bmN0aW9uIGV4cGVjdFN0cmluZyh4OiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnc3RyaW5nJyA/IHggOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdEVmZmVjdCh4OiB1bmtub3duKTogRWZmZWN0IHtcbiAgaWYgKHggPT09IEVmZmVjdC5BbGxvdyB8fCB4ID09PSBFZmZlY3QuRGVueSkge1xuICAgIHJldHVybiB4IGFzIEVmZmVjdDtcbiAgfVxuICByZXR1cm4gRWZmZWN0LlVua25vd247XG59XG5cbmZ1bmN0aW9uIGZvcmNlTGlzdE9mU3RyaW5ncyh4OiB1bmtub3duKTogc3RyaW5nW10ge1xuICBpZiAodHlwZW9mIHggPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFt4XTtcbiAgfVxuICBpZiAodHlwZW9mIHggPT09ICd1bmRlZmluZWQnIHx8IHggPT09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lm1hcChlID0+IGZvcmNlTGlzdE9mU3RyaW5ncyhlKS5qb2luKCcsJykpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHgpKSB7XG4gICAgICByZXQucHVzaCguLi5mb3JjZUxpc3RPZlN0cmluZ3ModmFsdWUpLm1hcChzID0+IGAke2tleX06JHtzfWApKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHJldHVybiBbYCR7eH1gXTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIENvbmRpdGlvbiBjb2x1bW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNvbmRpdGlvbihjb25kaXRpb246IGFueSk6IHN0cmluZyB7XG4gIGlmICghY29uZGl0aW9uIHx8IE9iamVjdC5rZXlzKGNvbmRpdGlvbikubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGNvbnN0IGpzb25SZXByZXNlbnRhdGlvbiA9IEpTT04uc3RyaW5naWZ5KGNvbmRpdGlvbiwgdW5kZWZpbmVkLCAyKTtcblxuICAvLyBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBsb29rcyBsaWtlIHRoaXM6XG4gIC8vXG4gIC8vICB7XG4gIC8vICAgIFwiQXJuTGlrZVwiOiB7XG4gIC8vICAgICAgXCJBV1M6U291cmNlQXJuXCI6IFwiJHtNeVRvcGljODY4Njk0MzR9XCJcbiAgLy8gICAgfVxuICAvLyAgfVxuICAvL1xuICAvLyBXZSBjYW4gbWFrZSBpdCBtb3JlIGNvbXBhY3Qgd2l0aG91dCBsb3NpbmcgaW5mb3JtYXRpb24gYnkgZ2V0dGluZyByaWQgb2YgdGhlIG91dGVybW9zdCBicmFjZXNcbiAgLy8gYW5kIHRoZSBpbmRlbnRhdGlvbi5cbiAgY29uc3QgbGluZXMgPSBqc29uUmVwcmVzZW50YXRpb24uc3BsaXQoJ1xcbicpO1xuICByZXR1cm4gbGluZXMuc2xpY2UoMSwgbGluZXMubGVuZ3RoIC0gMSkubWFwKHMgPT4gcy5zbGljZSgyKSkuam9pbignXFxuJyk7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mangleLikeCloudFormation = exports.deepEqual = void 0;\n__exportStar(require(\"./diff-template\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./format-foreach\"), exports);\n__exportStar(require(\"./format-table\"), exports);\n__exportStar(require(\"./mappings\"), exports);\nvar util_1 = require(\"./diff/util\");\nObject.defineProperty(exports, \"deepEqual\", { enumerable: true, get: function () { return util_1.deepEqual; } });\nObject.defineProperty(exports, \"mangleLikeCloudFormation\", { enumerable: true, get: function () { return util_1.mangleLikeCloudFormation; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQywyQ0FBeUI7QUFDekIsbURBQWlDO0FBQ2pDLGlEQUErQjtBQUMvQiw2Q0FBMkI7QUFDM0Isb0NBQWtFO0FBQXpELGlHQUFBLFNBQVMsT0FBQTtBQUFFLGdIQUFBLHdCQUF3QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWZmLXRlbXBsYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0LWZvcmVhY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtYXQtdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBwaW5ncyc7XG5leHBvcnQgeyBkZWVwRXF1YWwsIG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbiB9IGZyb20gJy4vZGlmZi91dGlsJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatEnvironmentSectionHeader = formatEnvironmentSectionHeader;\nexports.formatTypedMappings = formatTypedMappings;\nexports.formatAmbiguousMappings = formatAmbiguousMappings;\nconst chalk = require(\"chalk\");\nconst format_1 = require(\"./format\");\nconst format_table_1 = require(\"./format-table\");\nfunction formatEnvironmentSectionHeader(stream, env) {\n const formatter = new format_1.Formatter(stream, {});\n formatter.printSectionHeader(`${env}\\n`);\n}\nfunction formatTypedMappings(stream, mappings) {\n if (mappings.length > 0) {\n const header = [['Resource Type', 'Old Construct Path', 'New Construct Path']];\n const rows = mappings.map((m) => [m.type, m.sourcePath, m.destinationPath]);\n const formatter = new format_1.Formatter(stream, {});\n formatter.print('The following resources were moved or renamed:');\n formatter.print(chalk.green((0, format_table_1.formatTable)(header.concat(rows), undefined)));\n formatter.print(' ');\n }\n}\nfunction formatAmbiguousMappings(stream, pairs) {\n const tables = pairs.map(renderTable);\n const formatter = new format_1.Formatter(stream, {});\n formatter.print('Detected ambiguities:');\n formatter.print(tables.join('\\n\\n'));\n formatter.print(' ');\n formatter.print(chalk.yellow('Please provide an override file to resolve these ambiguous mappings.'));\n formatter.print(' ');\n function renderTable([removed, added]) {\n return (0, format_table_1.formatTable)([['', 'Resource'], renderRemoval(removed), renderAddition(added)], undefined);\n }\n function renderRemoval(locations) {\n return [chalk.red('-'), chalk.red(renderLocations(locations))];\n }\n function renderAddition(locations) {\n return [chalk.green('+'), chalk.green(renderLocations(locations))];\n }\n function renderLocations(locs) {\n return locs.join('\\n');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBwaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLHdFQUdDO0FBRUQsa0RBVUM7QUFFRCwwREE0QkM7QUF2REQsK0JBQStCO0FBQy9CLHFDQUFxQztBQUNyQyxpREFBNkM7QUFRN0MsU0FBZ0IsOEJBQThCLENBQUMsTUFBNkIsRUFBRSxHQUFXO0lBQ3ZGLE1BQU0sU0FBUyxHQUFHLElBQUksa0JBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsTUFBNkIsRUFBRSxRQUF3QjtJQUN6RixJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1QyxTQUFTLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUEsMEJBQVcsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQ3JDLE1BQTZCLEVBQzdCLEtBQTZCO0lBRTdCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU1QyxTQUFTLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsc0VBQXNFLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFckIsU0FBUyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUF1QjtRQUN6RCxPQUFPLElBQUEsMEJBQVcsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsU0FBbUI7UUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxTQUFTLGNBQWMsQ0FBQyxTQUFtQjtRQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFNBQVMsZUFBZSxDQUFDLElBQWM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgRm9ybWF0dGVyIH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgZm9ybWF0VGFibGUgfSBmcm9tICcuL2Zvcm1hdC10YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRNYXBwaW5nIHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2VQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RW52aXJvbm1lbnRTZWN0aW9uSGVhZGVyKHN0cmVhbTogTm9kZUpTLldyaXRhYmxlU3RyZWFtLCBlbnY6IHN0cmluZykge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwge30pO1xuICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uSGVhZGVyKGAke2Vudn1cXG5gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFR5cGVkTWFwcGluZ3Moc3RyZWFtOiBOb2RlSlMuV3JpdGFibGVTdHJlYW0sIG1hcHBpbmdzOiBUeXBlZE1hcHBpbmdbXSkge1xuICBpZiAobWFwcGluZ3MubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGhlYWRlciA9IFtbJ1Jlc291cmNlIFR5cGUnLCAnT2xkIENvbnN0cnVjdCBQYXRoJywgJ05ldyBDb25zdHJ1Y3QgUGF0aCddXTtcbiAgICBjb25zdCByb3dzID0gbWFwcGluZ3MubWFwKChtKSA9PiBbbS50eXBlLCBtLnNvdXJjZVBhdGgsIG0uZGVzdGluYXRpb25QYXRoXSk7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEZvcm1hdHRlcihzdHJlYW0sIHt9KTtcblxuICAgIGZvcm1hdHRlci5wcmludCgnVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2VyZSBtb3ZlZCBvciByZW5hbWVkOicpO1xuICAgIGZvcm1hdHRlci5wcmludChjaGFsay5ncmVlbihmb3JtYXRUYWJsZShoZWFkZXIuY29uY2F0KHJvd3MpLCB1bmRlZmluZWQpKSk7XG4gICAgZm9ybWF0dGVyLnByaW50KCcgJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFtYmlndW91c01hcHBpbmdzKFxuICBzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSxcbiAgcGFpcnM6IFtzdHJpbmdbXSwgc3RyaW5nW11dW10sXG4pIHtcbiAgY29uc3QgdGFibGVzID0gcGFpcnMubWFwKHJlbmRlclRhYmxlKTtcbiAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEZvcm1hdHRlcihzdHJlYW0sIHt9KTtcblxuICBmb3JtYXR0ZXIucHJpbnQoJ0RldGVjdGVkIGFtYmlndWl0aWVzOicpO1xuICBmb3JtYXR0ZXIucHJpbnQodGFibGVzLmpvaW4oJ1xcblxcbicpKTtcbiAgZm9ybWF0dGVyLnByaW50KCcgJyk7XG4gIGZvcm1hdHRlci5wcmludChjaGFsay55ZWxsb3coJ1BsZWFzZSBwcm92aWRlIGFuIG92ZXJyaWRlIGZpbGUgdG8gcmVzb2x2ZSB0aGVzZSBhbWJpZ3VvdXMgbWFwcGluZ3MuJykpO1xuICBmb3JtYXR0ZXIucHJpbnQoJyAnKTtcblxuICBmdW5jdGlvbiByZW5kZXJUYWJsZShbcmVtb3ZlZCwgYWRkZWRdOiBbc3RyaW5nW10sIHN0cmluZ1tdXSkge1xuICAgIHJldHVybiBmb3JtYXRUYWJsZShbWycnLCAnUmVzb3VyY2UnXSwgcmVuZGVyUmVtb3ZhbChyZW1vdmVkKSwgcmVuZGVyQWRkaXRpb24oYWRkZWQpXSwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlclJlbW92YWwobG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsucmVkKCctJyksIGNoYWxrLnJlZChyZW5kZXJMb2NhdGlvbnMobG9jYXRpb25zKSldO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVuZGVyQWRkaXRpb24obG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsuZ3JlZW4oJysnKSwgY2hhbGsuZ3JlZW4ocmVuZGVyTG9jYXRpb25zKGxvY2F0aW9ucykpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlckxvY2F0aW9ucyhsb2NzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBsb2NzLmpvaW4oJ1xcbicpO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecurityGroupChanges = void 0;\nconst chalk = require(\"chalk\");\nconst security_group_rule_1 = require(\"./security-group-rule\");\nconst diffable_1 = require(\"../diffable\");\nconst render_intrinsics_1 = require(\"../render-intrinsics\");\nconst util_1 = require(\"../util\");\n/**\n * Changes to IAM statements\n */\nclass SecurityGroupChanges {\n constructor(props) {\n this.ingress = new diffable_1.DiffableCollection();\n this.egress = new diffable_1.DiffableCollection();\n // Group rules\n for (const ingressProp of props.ingressRulePropertyChanges) {\n this.ingress.addOld(...this.readInlineRules(ingressProp.oldValue, ingressProp.resourceLogicalId));\n this.ingress.addNew(...this.readInlineRules(ingressProp.newValue, ingressProp.resourceLogicalId));\n }\n for (const egressProp of props.egressRulePropertyChanges) {\n this.egress.addOld(...this.readInlineRules(egressProp.oldValue, egressProp.resourceLogicalId));\n this.egress.addNew(...this.readInlineRules(egressProp.newValue, egressProp.resourceLogicalId));\n }\n // Rule resources\n for (const ingressRes of props.ingressRuleResourceChanges) {\n this.ingress.addOld(...this.readRuleResource(ingressRes.oldProperties));\n this.ingress.addNew(...this.readRuleResource(ingressRes.newProperties));\n }\n for (const egressRes of props.egressRuleResourceChanges) {\n this.egress.addOld(...this.readRuleResource(egressRes.oldProperties));\n this.egress.addNew(...this.readRuleResource(egressRes.newProperties));\n }\n this.ingress.calculateDiff();\n this.egress.calculateDiff();\n }\n get hasChanges() {\n return this.ingress.hasChanges || this.egress.hasChanges;\n }\n /**\n * Return a summary table of changes\n */\n summarize() {\n const ret = [];\n const header = ['', 'Group', 'Dir', 'Protocol', 'Peer'];\n const inWord = 'In';\n const outWord = 'Out';\n // Render a single rule to the table (curried function so we can map it across rules easily--thank you JavaScript!)\n const renderRule = (plusMin, inOut) => (rule) => [\n plusMin,\n rule.groupId,\n inOut,\n rule.describeProtocol(),\n rule.describePeer(),\n ].map(s => plusMin === '+' ? chalk.green(s) : chalk.red(s));\n // First generate all lines, sort later\n ret.push(...this.ingress.additions.map(renderRule('+', inWord)));\n ret.push(...this.egress.additions.map(renderRule('+', outWord)));\n ret.push(...this.ingress.removals.map(renderRule('-', inWord)));\n ret.push(...this.egress.removals.map(renderRule('-', outWord)));\n // Sort by group name then ingress/egress (ingress first)\n ret.sort((0, util_1.makeComparator)((row) => [row[1], row[2].indexOf(inWord) > -1 ? 0 : 1]));\n ret.splice(0, 0, header);\n return ret;\n }\n toJson() {\n return (0, util_1.deepRemoveUndefined)({\n ingressRuleAdditions: (0, util_1.dropIfEmpty)(this.ingress.additions.map(s => s.toJson())),\n ingressRuleRemovals: (0, util_1.dropIfEmpty)(this.ingress.removals.map(s => s.toJson())),\n egressRuleAdditions: (0, util_1.dropIfEmpty)(this.egress.additions.map(s => s.toJson())),\n egressRuleRemovals: (0, util_1.dropIfEmpty)(this.egress.removals.map(s => s.toJson())),\n });\n }\n get rulesAdded() {\n return this.ingress.hasAdditions\n || this.egress.hasAdditions;\n }\n readInlineRules(rules, logicalId) {\n if (!rules || !Array.isArray(rules)) {\n return [];\n }\n // UnCloudFormation so the parser works in an easier domain\n const ref = '${' + logicalId + '.GroupId}';\n return rules.flatMap((r) => {\n const rendered = (0, render_intrinsics_1.renderIntrinsics)(r);\n // SecurityGroupRule is not robust against unparsed objects\n return typeof rendered === 'object' ? [new security_group_rule_1.SecurityGroupRule(rendered, ref)] : [];\n });\n }\n readRuleResource(resource) {\n if (!resource) {\n return [];\n }\n // UnCloudFormation so the parser works in an easier domain\n return [new security_group_rule_1.SecurityGroupRule((0, render_intrinsics_1.renderIntrinsics)(resource))];\n }\n}\nexports.SecurityGroupChanges = SecurityGroupChanges;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWdyb3VwLWNoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBRS9CLCtEQUEwRDtBQUUxRCwwQ0FBaUQ7QUFDakQsNERBQXdEO0FBQ3hELGtDQUEyRTtBQVMzRTs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBSS9CLFlBQVksS0FBZ0M7UUFINUIsWUFBTyxHQUFHLElBQUksNkJBQWtCLEVBQXFCLENBQUM7UUFDdEQsV0FBTSxHQUFHLElBQUksNkJBQWtCLEVBQXFCLENBQUM7UUFHbkUsY0FBYztRQUNkLEtBQUssTUFBTSxXQUFXLElBQUksS0FBSyxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUNsRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFDRCxLQUFLLE1BQU0sVUFBVSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUNq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QztJQUVPLGVBQWUsQ0FBQyxLQUFVLEVBQUUsU0FBaUI7UUFDbkQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCwyREFBMkQ7UUFFM0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBQSxvQ0FBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUNyQywyREFBMkQ7WUFDM0QsT0FBTyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWE7UUFDcEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsMkRBQTJEO1FBRTNELE9BQU8sQ0FBQyxJQUFJLHVDQUFpQixDQUFDLElBQUEsb0NBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQXpHRCxvREF5R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IFJ1bGVKc29uIH0gZnJvbSAnLi9zZWN1cml0eS1ncm91cC1ydWxlJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBSdWxlIH0gZnJvbSAnLi9zZWN1cml0eS1ncm91cC1ydWxlJztcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlDaGFuZ2UsIFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBEaWZmYWJsZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9kaWZmYWJsZSc7XG5pbXBvcnQgeyByZW5kZXJJbnRyaW5zaWNzIH0gZnJvbSAnLi4vcmVuZGVyLWludHJpbnNpY3MnO1xuaW1wb3J0IHsgZGVlcFJlbW92ZVVuZGVmaW5lZCwgZHJvcElmRW1wdHksIG1ha2VDb21wYXJhdG9yIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENoYW5nZXNQcm9wcyB7XG4gIGluZ3Jlc3NSdWxlUHJvcGVydHlDaGFuZ2VzOiBQcm9wZXJ0eUNoYW5nZVtdO1xuICBpbmdyZXNzUnVsZVJlc291cmNlQ2hhbmdlczogUmVzb3VyY2VDaGFuZ2VbXTtcbiAgZWdyZXNzUnVsZVJlc291cmNlQ2hhbmdlczogUmVzb3VyY2VDaGFuZ2VbXTtcbiAgZWdyZXNzUnVsZVByb3BlcnR5Q2hhbmdlczogUHJvcGVydHlDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBDaGFuZ2VzIHRvIElBTSBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWN1cml0eUdyb3VwQ2hhbmdlcyB7XG4gIHB1YmxpYyByZWFkb25seSBpbmdyZXNzID0gbmV3IERpZmZhYmxlQ29sbGVjdGlvbjxTZWN1cml0eUdyb3VwUnVsZT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGVncmVzcyA9IG5ldyBEaWZmYWJsZUNvbGxlY3Rpb248U2VjdXJpdHlHcm91cFJ1bGU+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFNlY3VyaXR5R3JvdXBDaGFuZ2VzUHJvcHMpIHtcbiAgICAvLyBHcm91cCBydWxlc1xuICAgIGZvciAoY29uc3QgaW5ncmVzc1Byb3Agb2YgcHJvcHMuaW5ncmVzc1J1bGVQcm9wZXJ0eUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuaW5ncmVzcy5hZGRPbGQoLi4udGhpcy5yZWFkSW5saW5lUnVsZXMoaW5ncmVzc1Byb3Aub2xkVmFsdWUsIGluZ3Jlc3NQcm9wLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgICB0aGlzLmluZ3Jlc3MuYWRkTmV3KC4uLnRoaXMucmVhZElubGluZVJ1bGVzKGluZ3Jlc3NQcm9wLm5ld1ZhbHVlLCBpbmdyZXNzUHJvcC5yZXNvdXJjZUxvZ2ljYWxJZCkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGVncmVzc1Byb3Agb2YgcHJvcHMuZWdyZXNzUnVsZVByb3BlcnR5Q2hhbmdlcykge1xuICAgICAgdGhpcy5lZ3Jlc3MuYWRkT2xkKC4uLnRoaXMucmVhZElubGluZVJ1bGVzKGVncmVzc1Byb3Aub2xkVmFsdWUsIGVncmVzc1Byb3AucmVzb3VyY2VMb2dpY2FsSWQpKTtcbiAgICAgIHRoaXMuZWdyZXNzLmFkZE5ldyguLi50aGlzLnJlYWRJbmxpbmVSdWxlcyhlZ3Jlc3NQcm9wLm5ld1ZhbHVlLCBlZ3Jlc3NQcm9wLnJlc291cmNlTG9naWNhbElkKSk7XG4gICAgfVxuXG4gICAgLy8gUnVsZSByZXNvdXJjZXNcbiAgICBmb3IgKGNvbnN0IGluZ3Jlc3NSZXMgb2YgcHJvcHMuaW5ncmVzc1J1bGVSZXNvdXJjZUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuaW5ncmVzcy5hZGRPbGQoLi4udGhpcy5yZWFkUnVsZVJlc291cmNlKGluZ3Jlc3NSZXMub2xkUHJvcGVydGllcykpO1xuICAgICAgdGhpcy5pbmdyZXNzLmFkZE5ldyguLi50aGlzLnJlYWRSdWxlUmVzb3VyY2UoaW5ncmVzc1Jlcy5uZXdQcm9wZXJ0aWVzKSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZWdyZXNzUmVzIG9mIHByb3BzLmVncmVzc1J1bGVSZXNvdXJjZUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuZWdyZXNzLmFkZE9sZCguLi50aGlzLnJlYWRSdWxlUmVzb3VyY2UoZWdyZXNzUmVzLm9sZFByb3BlcnRpZXMpKTtcbiAgICAgIHRoaXMuZWdyZXNzLmFkZE5ldyguLi50aGlzLnJlYWRSdWxlUmVzb3VyY2UoZWdyZXNzUmVzLm5ld1Byb3BlcnRpZXMpKTtcbiAgICB9XG5cbiAgICB0aGlzLmluZ3Jlc3MuY2FsY3VsYXRlRGlmZigpO1xuICAgIHRoaXMuZWdyZXNzLmNhbGN1bGF0ZURpZmYoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5pbmdyZXNzLmhhc0NoYW5nZXMgfHwgdGhpcy5lZ3Jlc3MuaGFzQ2hhbmdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzdW1tYXJ5IHRhYmxlIG9mIGNoYW5nZXNcbiAgICovXG4gIHB1YmxpYyBzdW1tYXJpemUoKTogc3RyaW5nW11bXSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXVtdID0gW107XG5cbiAgICBjb25zdCBoZWFkZXIgPSBbJycsICdHcm91cCcsICdEaXInLCAnUHJvdG9jb2wnLCAnUGVlciddO1xuXG4gICAgY29uc3QgaW5Xb3JkID0gJ0luJztcbiAgICBjb25zdCBvdXRXb3JkID0gJ091dCc7XG5cbiAgICAvLyBSZW5kZXIgYSBzaW5nbGUgcnVsZSB0byB0aGUgdGFibGUgKGN1cnJpZWQgZnVuY3Rpb24gc28gd2UgY2FuIG1hcCBpdCBhY3Jvc3MgcnVsZXMgZWFzaWx5LS10aGFuayB5b3UgSmF2YVNjcmlwdCEpXG4gICAgY29uc3QgcmVuZGVyUnVsZSA9IChwbHVzTWluOiBzdHJpbmcsIGluT3V0OiBzdHJpbmcpID0+IChydWxlOiBTZWN1cml0eUdyb3VwUnVsZSkgPT4gW1xuICAgICAgcGx1c01pbixcbiAgICAgIHJ1bGUuZ3JvdXBJZCxcbiAgICAgIGluT3V0LFxuICAgICAgcnVsZS5kZXNjcmliZVByb3RvY29sKCksXG4gICAgICBydWxlLmRlc2NyaWJlUGVlcigpLFxuICAgIF0ubWFwKHMgPT4gcGx1c01pbiA9PT0gJysnID8gY2hhbGsuZ3JlZW4ocykgOiBjaGFsay5yZWQocykpO1xuXG4gICAgLy8gRmlyc3QgZ2VuZXJhdGUgYWxsIGxpbmVzLCBzb3J0IGxhdGVyXG4gICAgcmV0LnB1c2goLi4udGhpcy5pbmdyZXNzLmFkZGl0aW9ucy5tYXAocmVuZGVyUnVsZSgnKycsIGluV29yZCkpKTtcbiAgICByZXQucHVzaCguLi50aGlzLmVncmVzcy5hZGRpdGlvbnMubWFwKHJlbmRlclJ1bGUoJysnLCBvdXRXb3JkKSkpO1xuICAgIHJldC5wdXNoKC4uLnRoaXMuaW5ncmVzcy5yZW1vdmFscy5tYXAocmVuZGVyUnVsZSgnLScsIGluV29yZCkpKTtcbiAgICByZXQucHVzaCguLi50aGlzLmVncmVzcy5yZW1vdmFscy5tYXAocmVuZGVyUnVsZSgnLScsIG91dFdvcmQpKSk7XG5cbiAgICAvLyBTb3J0IGJ5IGdyb3VwIG5hbWUgdGhlbiBpbmdyZXNzL2VncmVzcyAoaW5ncmVzcyBmaXJzdClcbiAgICByZXQuc29ydChtYWtlQ29tcGFyYXRvcigocm93OiBzdHJpbmdbXSkgPT4gW3Jvd1sxXSwgcm93WzJdLmluZGV4T2YoaW5Xb3JkKSA+IC0xID8gMCA6IDFdKSk7XG5cbiAgICByZXQuc3BsaWNlKDAsIDAsIGhlYWRlcik7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIHRvSnNvbigpOiBTZWN1cml0eUdyb3VwQ2hhbmdlc0pzb24ge1xuICAgIHJldHVybiBkZWVwUmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIGluZ3Jlc3NSdWxlQWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLmluZ3Jlc3MuYWRkaXRpb25zLm1hcChzID0+IHMudG9Kc29uKCkpKSxcbiAgICAgIGluZ3Jlc3NSdWxlUmVtb3ZhbHM6IGRyb3BJZkVtcHR5KHRoaXMuaW5ncmVzcy5yZW1vdmFscy5tYXAocyA9PiBzLnRvSnNvbigpKSksXG4gICAgICBlZ3Jlc3NSdWxlQWRkaXRpb25zOiBkcm9wSWZFbXB0eSh0aGlzLmVncmVzcy5hZGRpdGlvbnMubWFwKHMgPT4gcy50b0pzb24oKSkpLFxuICAgICAgZWdyZXNzUnVsZVJlbW92YWxzOiBkcm9wSWZFbXB0eSh0aGlzLmVncmVzcy5yZW1vdmFscy5tYXAocyA9PiBzLnRvSnNvbigpKSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJ1bGVzQWRkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5ncmVzcy5oYXNBZGRpdGlvbnNcbiAgICAgICAgfHwgdGhpcy5lZ3Jlc3MuaGFzQWRkaXRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkSW5saW5lUnVsZXMocnVsZXM6IGFueSwgbG9naWNhbElkOiBzdHJpbmcpOiBTZWN1cml0eUdyb3VwUnVsZVtdIHtcbiAgICBpZiAoIXJ1bGVzIHx8ICFBcnJheS5pc0FycmF5KHJ1bGVzKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8vIFVuQ2xvdWRGb3JtYXRpb24gc28gdGhlIHBhcnNlciB3b3JrcyBpbiBhbiBlYXNpZXIgZG9tYWluXG5cbiAgICBjb25zdCByZWYgPSAnJHsnICsgbG9naWNhbElkICsgJy5Hcm91cElkfSc7XG4gICAgcmV0dXJuIHJ1bGVzLmZsYXRNYXAoKHI6IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVuZGVyZWQgPSByZW5kZXJJbnRyaW5zaWNzKHIpO1xuICAgICAgLy8gU2VjdXJpdHlHcm91cFJ1bGUgaXMgbm90IHJvYnVzdCBhZ2FpbnN0IHVucGFyc2VkIG9iamVjdHNcbiAgICAgIHJldHVybiB0eXBlb2YgcmVuZGVyZWQgPT09ICdvYmplY3QnID8gW25ldyBTZWN1cml0eUdyb3VwUnVsZShyZW5kZXJlZCwgcmVmKV0gOiBbXTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFJ1bGVSZXNvdXJjZShyZXNvdXJjZTogYW55KTogU2VjdXJpdHlHcm91cFJ1bGVbXSB7XG4gICAgaWYgKCFyZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8vIFVuQ2xvdWRGb3JtYXRpb24gc28gdGhlIHBhcnNlciB3b3JrcyBpbiBhbiBlYXNpZXIgZG9tYWluXG5cbiAgICByZXR1cm4gW25ldyBTZWN1cml0eUdyb3VwUnVsZShyZW5kZXJJbnRyaW5zaWNzKHJlc291cmNlKSldO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENoYW5nZXNKc29uIHtcbiAgaW5ncmVzc1J1bGVBZGRpdGlvbnM/OiBSdWxlSnNvbltdO1xuICBpbmdyZXNzUnVsZVJlbW92YWxzPzogUnVsZUpzb25bXTtcbiAgZWdyZXNzUnVsZUFkZGl0aW9ucz86IFJ1bGVKc29uW107XG4gIGVncmVzc1J1bGVSZW1vdmFscz86IFJ1bGVKc29uW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecurityGroupRule = void 0;\n/**\n * A single security group rule, either egress or ingress\n */\nclass SecurityGroupRule {\n constructor(ruleObject, groupRef) {\n this.ipProtocol = ruleObject.IpProtocol?.toString() || '*unknown*';\n this.fromPort = ruleObject.FromPort;\n this.toPort = ruleObject.ToPort;\n this.groupId = ruleObject.GroupId || groupRef || '*unknown*'; // In case of an inline rule\n this.peer =\n findFirst(ruleObject, ['CidrIp', 'CidrIpv6'], (ip) => ({ kind: 'cidr-ip', ip }))\n ||\n findFirst(ruleObject, ['DestinationSecurityGroupId', 'SourceSecurityGroupId'], (securityGroupId) => ({ kind: 'security-group', securityGroupId }))\n ||\n findFirst(ruleObject, ['DestinationPrefixListId', 'SourcePrefixListId'], (prefixListId) => ({ kind: 'prefix-list', prefixListId }));\n }\n equal(other) {\n return this.ipProtocol === other.ipProtocol\n && this.fromPort === other.fromPort\n && this.toPort === other.toPort\n && peerEqual(this.peer, other.peer);\n }\n describeProtocol() {\n if (this.ipProtocol === '-1') {\n return 'Everything';\n }\n const ipProtocol = this.ipProtocol.toUpperCase();\n if (this.fromPort === -1) {\n return `All ${ipProtocol}`;\n }\n if (this.fromPort === this.toPort) {\n return `${ipProtocol} ${this.fromPort}`;\n }\n return `${ipProtocol} ${this.fromPort}-${this.toPort}`;\n }\n describePeer() {\n if (this.peer) {\n switch (this.peer.kind) {\n case 'cidr-ip':\n if (this.peer.ip === '0.0.0.0/0') {\n return 'Everyone (IPv4)';\n }\n if (this.peer.ip === '::/0') {\n return 'Everyone (IPv6)';\n }\n return `${this.peer.ip}`;\n case 'prefix-list': return `${this.peer.prefixListId}`;\n case 'security-group': return `${this.peer.securityGroupId}`;\n }\n }\n return '?';\n }\n toJson() {\n return {\n groupId: this.groupId,\n ipProtocol: this.ipProtocol,\n fromPort: this.fromPort,\n toPort: this.toPort,\n peer: this.peer,\n };\n }\n}\nexports.SecurityGroupRule = SecurityGroupRule;\nfunction peerEqual(a, b) {\n if ((a === undefined) !== (b === undefined)) {\n return false;\n }\n if (a === undefined) {\n return true;\n }\n if (a.kind !== b.kind) {\n return false;\n }\n switch (a.kind) {\n case 'cidr-ip': return a.ip === b.ip;\n case 'security-group': return a.securityGroupId === b.securityGroupId;\n case 'prefix-list': return a.prefixListId === b.prefixListId;\n }\n}\nfunction findFirst(obj, keys, fn) {\n for (const key of keys) {\n try {\n if (key in obj) {\n return fn(obj[key]);\n }\n }\n catch (e) {\n debugger;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWdyb3VwLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQTBCNUIsWUFBWSxVQUFlLEVBQUUsUUFBaUI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sSUFBSSxRQUFRLElBQUksV0FBVyxDQUFDLENBQUMsNEJBQTRCO1FBRTFGLElBQUksQ0FBQyxJQUFJO1lBQ0wsU0FBUyxDQUFDLFVBQVUsRUFDbEIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQ3RCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWlCLENBQUEsQ0FBQzs7b0JBRWxELFNBQVMsQ0FBQyxVQUFVLEVBQ2xCLENBQUMsNEJBQTRCLEVBQUUsdUJBQXVCLENBQUMsRUFDdkQsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUF3QixDQUFBLENBQUM7O29CQUUxRixTQUFTLENBQUMsVUFBVSxFQUNsQixDQUFDLHlCQUF5QixFQUFFLG9CQUFvQixDQUFDLEVBQ2pELENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQXFCLENBQUEsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBd0I7UUFDbkMs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LENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEtBQU0sQ0FBYyxDQUFDLGVBQWUsQ0FBQztRQUNwRixLQUFLLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksS0FBTSxDQUFjLENBQUMsWUFBWSxDQUFDO0lBQzdFLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUksR0FBUSxFQUFFLElBQWMsRUFBRSxFQUFvQjtJQUNsRSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQztZQUNILElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNmLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLFFBQVEsQ0FBQztRQUNYLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzaW5nbGUgc2VjdXJpdHkgZ3JvdXAgcnVsZSwgZWl0aGVyIGVncmVzcyBvciBpbmdyZXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWN1cml0eUdyb3VwUnVsZSB7XG4gIC8qKlxuICAgKiBHcm91cCBJRCBvZiB0aGUgZ3JvdXAgdGhpcyBydWxlIGFwcGxpZXMgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQIHByb3RvY29sIHRoaXMgcnVsZSBhcHBsaWVzIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBQcm90b2NvbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBwb3J0IHJhbmdlIHRoaXMgcnVsZSBhcHBsaWVzIHRvLCBvciBJQ01QIHR5cGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmcm9tUG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogRW5kIG9mIHBvcnQgcmFuZ2UgdGhpcyBydWxlIGFwcGxpZXMgdG8sIG9yIElDTVAgY29kZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRvUG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogUGVlciBvZiB0aGlzIHJ1bGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwZWVyPzogUnVsZVBlZXI7XG5cbiAgY29uc3RydWN0b3IocnVsZU9iamVjdDogYW55LCBncm91cFJlZj86IHN0cmluZykge1xuICAgIHRoaXMuaXBQcm90b2NvbCA9IHJ1bGVPYmplY3QuSXBQcm90b2NvbD8udG9TdHJpbmcoKSB8fCAnKnVua25vd24qJztcbiAgICB0aGlzLmZyb21Qb3J0ID0gcnVsZU9iamVjdC5Gcm9tUG9ydDtcbiAgICB0aGlzLnRvUG9ydCA9IHJ1bGVPYmplY3QuVG9Qb3J0O1xuICAgIHRoaXMuZ3JvdXBJZCA9IHJ1bGVPYmplY3QuR3JvdXBJZCB8fCBncm91cFJlZiB8fCAnKnVua25vd24qJzsgLy8gSW4gY2FzZSBvZiBhbiBpbmxpbmUgcnVsZVxuXG4gICAgdGhpcy5wZWVyID1cbiAgICAgICAgZmluZEZpcnN0KHJ1bGVPYmplY3QsXG4gICAgICAgICAgWydDaWRySXAnLCAnQ2lkcklwdjYnXSxcbiAgICAgICAgICAoaXApID0+ICh7IGtpbmQ6ICdjaWRyLWlwJywgaXAgfSBhcyBDaWRySXBQZWVyKSlcbiAgICAgICAgfHxcbiAgICAgICAgZmluZEZpcnN0KHJ1bGVPYmplY3QsXG4gICAgICAgICAgWydEZXN0aW5hdGlvblNlY3VyaXR5R3JvdXBJZCcsICdTb3VyY2VTZWN1cml0eUdyb3VwSWQnXSxcbiAgICAgICAgICAoc2VjdXJpdHlHcm91cElkKSA9PiAoeyBraW5kOiAnc2VjdXJpdHktZ3JvdXAnLCBzZWN1cml0eUdyb3VwSWQgfSBhcyBTZWN1cml0eUdyb3VwUGVlcikpXG4gICAgICAgIHx8XG4gICAgICAgIGZpbmRGaXJzdChydWxlT2JqZWN0LFxuICAgICAgICAgIFsnRGVzdGluYXRpb25QcmVmaXhMaXN0SWQnLCAnU291cmNlUHJlZml4TGlzdElkJ10sXG4gICAgICAgICAgKHByZWZpeExpc3RJZCkgPT4gKHsga2luZDogJ3ByZWZpeC1saXN0JywgcHJlZml4TGlzdElkIH0gYXMgUHJlZml4TGlzdFBlZXIpKTtcbiAgfVxuXG4gIHB1YmxpYyBlcXVhbChvdGhlcjogU2VjdXJpdHlHcm91cFJ1bGUpIHtcbiAgICByZXR1cm4gdGhpcy5pcFByb3RvY29sID09PSBvdGhlci5pcFByb3RvY29sXG4gICAgICAgICYmIHRoaXMuZnJvbVBvcnQgPT09IG90aGVyLmZyb21Qb3J0XG4gICAgICAgICYmIHRoaXMudG9Qb3J0ID09PSBvdGhlci50b1BvcnRcbiAgICAgICAgJiYgcGVlckVxdWFsKHRoaXMucGVlciwgb3RoZXIucGVlcik7XG4gIH1cblxuICBwdWJsaWMgZGVzY3JpYmVQcm90b2NvbCgpIHtcbiAgICBpZiAodGhpcy5pcFByb3RvY29sID09PSAnLTEnKSB7XG4gICAgICByZXR1cm4gJ0V2ZXJ5dGhpbmcnO1xuICAgIH1cblxuICAgIGNvbnN0IGlwUHJvdG9jb2wgPSB0aGlzLmlwUHJvdG9jb2wudG9VcHBlckNhc2UoKTtcblxuICAgIGlmICh0aGlzLmZyb21Qb3J0ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGBBbGwgJHtpcFByb3RvY29sfWA7XG4gICAgfVxuICAgIGlmICh0aGlzLmZyb21Qb3J0ID09PSB0aGlzLnRvUG9ydCkge1xuICAgICAgcmV0dXJuIGAke2lwUHJvdG9jb2x9ICR7dGhpcy5mcm9tUG9ydH1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7aXBQcm90b2NvbH0gJHt0aGlzLmZyb21Qb3J0fS0ke3RoaXMudG9Qb3J0fWA7XG4gIH1cblxuICBwdWJsaWMgZGVzY3JpYmVQZWVyKCkge1xuICAgIGlmICh0aGlzLnBlZXIpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5wZWVyLmtpbmQpIHtcbiAgICAgICAgY2FzZSAnY2lkci1pcCc6XG4gICAgICAgICAgaWYgKHRoaXMucGVlci5pcCA9PT0gJzAuMC4wLjAvMCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnRXZlcnlvbmUgKElQdjQpJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMucGVlci5pcCA9PT0gJzo6LzAnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0V2ZXJ5b25lIChJUHY2KSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBgJHt0aGlzLnBlZXIuaXB9YDtcbiAgICAgICAgY2FzZSAncHJlZml4LWxpc3QnOiByZXR1cm4gYCR7dGhpcy5wZWVyLnByZWZpeExpc3RJZH1gO1xuICAgICAgICBjYXNlICdzZWN1cml0eS1ncm91cCc6IHJldHVybiBgJHt0aGlzLnBlZXIuc2VjdXJpdHlHcm91cElkfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICc/JztcbiAgfVxuXG4gIHB1YmxpYyB0b0pzb24oKTogUnVsZUpzb24ge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cElkOiB0aGlzLmdyb3VwSWQsXG4gICAgICBpcFByb3RvY29sOiB0aGlzLmlwUHJvdG9jb2wsXG4gICAgICBmcm9tUG9ydDogdGhpcy5mcm9tUG9ydCxcbiAgICAgIHRvUG9ydDogdGhpcy50b1BvcnQsXG4gICAgICBwZWVyOiB0aGlzLnBlZXIsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpZHJJcFBlZXIge1xuICBraW5kOiAnY2lkci1pcCc7XG4gIGlwOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cFBlZXIge1xuICBraW5kOiAnc2VjdXJpdHktZ3JvdXAnO1xuICBzZWN1cml0eUdyb3VwSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVmaXhMaXN0UGVlciB7XG4gIGtpbmQ6ICdwcmVmaXgtbGlzdCc7XG4gIHByZWZpeExpc3RJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSdWxlUGVlciA9IENpZHJJcFBlZXIgfCBTZWN1cml0eUdyb3VwUGVlciB8IFByZWZpeExpc3RQZWVyO1xuXG5mdW5jdGlvbiBwZWVyRXF1YWwoYT86IFJ1bGVQZWVyLCBiPzogUnVsZVBlZXIpIHtcbiAgaWYgKChhID09PSB1bmRlZmluZWQpICE9PSAoYiA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoYS5raW5kICE9PSBiIS5raW5kKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN3aXRjaCAoYS5raW5kKSB7XG4gICAgY2FzZSAnY2lkci1pcCc6IHJldHVybiBhLmlwID09PSAoYiBhcyB0eXBlb2YgYSkuaXA7XG4gICAgY2FzZSAnc2VjdXJpdHktZ3JvdXAnOiByZXR1cm4gYS5zZWN1cml0eUdyb3VwSWQgPT09IChiIGFzIHR5cGVvZiBhKS5zZWN1cml0eUdyb3VwSWQ7XG4gICAgY2FzZSAncHJlZml4LWxpc3QnOiByZXR1cm4gYS5wcmVmaXhMaXN0SWQgPT09IChiIGFzIHR5cGVvZiBhKS5wcmVmaXhMaXN0SWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEZpcnN0PFQ+KG9iajogYW55LCBrZXlzOiBzdHJpbmdbXSwgZm46ICh4OiBzdHJpbmcpID0+IFQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIHRyeSB7XG4gICAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICByZXR1cm4gZm4ob2JqW2tleV0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGRlYnVnZ2VyO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVKc29uIHtcbiAgZ3JvdXBJZDogc3RyaW5nO1xuICBpcFByb3RvY29sOiBzdHJpbmc7XG4gIGZyb21Qb3J0PzogbnVtYmVyO1xuICB0b1BvcnQ/OiBudW1iZXI7XG4gIHBlZXI/OiBSdWxlUGVlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renderIntrinsics = renderIntrinsics;\n/**\n * Turn CloudFormation intrinsics into strings\n *\n * ------\n *\n * This stringification is not intended to be mechanically reversible! It's intended\n * to be understood by humans!\n *\n * ------\n *\n * Turns Fn::GetAtt and Fn::Ref objects into the same strings that can be\n * parsed by Fn::Sub, but without the surrounding intrinsics.\n *\n * Evaluates Fn::Join directly if the second argument is a literal list of strings.\n *\n * Removes list and object values evaluating to { Ref: 'AWS::NoValue' }.\n *\n * For other intrinsics we choose a string representation that CloudFormation\n * cannot actually parse, but is comprehensible to humans.\n */\nfunction renderIntrinsics(x) {\n if (Array.isArray(x)) {\n return x.filter(el => !isNoValue(el)).map(renderIntrinsics);\n }\n if (isNoValue(x)) {\n return undefined;\n }\n const intrinsic = getIntrinsic(x);\n if (intrinsic) {\n if (intrinsic.fn === 'Ref') {\n return '${' + intrinsic.args + '}';\n }\n if (intrinsic.fn === 'Fn::GetAtt') {\n return '${' + intrinsic.args[0] + '.' + intrinsic.args[1] + '}';\n }\n if (intrinsic.fn === 'Fn::Join') {\n return unCloudFormationFnJoin(intrinsic.args[0], intrinsic.args[1]);\n }\n return stringifyIntrinsic(intrinsic.fn, intrinsic.args);\n }\n if (typeof x === 'object' && x !== null) {\n const ret = {};\n for (const [key, value] of Object.entries(x)) {\n if (!isNoValue(value)) {\n ret[key] = renderIntrinsics(value);\n }\n }\n return ret;\n }\n return x;\n}\nfunction unCloudFormationFnJoin(separator, args) {\n if (Array.isArray(args)) {\n return args.filter(el => !isNoValue(el)).map(renderIntrinsics).join(separator);\n }\n return stringifyIntrinsic('Fn::Join', [separator, args]);\n}\nfunction stringifyIntrinsic(fn, args) {\n return JSON.stringify({ [fn]: renderIntrinsics(args) });\n}\nfunction getIntrinsic(x) {\n if (x === undefined || x === null || Array.isArray(x)) {\n return undefined;\n }\n if (typeof x !== 'object') {\n return undefined;\n }\n const keys = Object.keys(x);\n return keys.length === 1 && (keys[0] === 'Ref' || keys[0].startsWith('Fn::')) ? { fn: keys[0], args: x[keys[0]] } : undefined;\n}\nfunction isNoValue(x) {\n const int = getIntrinsic(x);\n return int && int.fn === 'Ref' && int.args === 'AWS::NoValue';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWludHJpbnNpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZW5kZXItaW50cmluc2ljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9CQSw0Q0FpQ0M7QUFyREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxDQUFNO0lBQ3JDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbEUsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoQyxPQUFPLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsSUFBUztJQUMxRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsSUFBUztJQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsQ0FBTTtJQUMxQixJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEksQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLENBQU07SUFDdkIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR1cm4gQ2xvdWRGb3JtYXRpb24gaW50cmluc2ljcyBpbnRvIHN0cmluZ3NcbiAqXG4gKiAtLS0tLS1cbiAqXG4gKiBUaGlzIHN0cmluZ2lmaWNhdGlvbiBpcyBub3QgaW50ZW5kZWQgdG8gYmUgbWVjaGFuaWNhbGx5IHJldmVyc2libGUhIEl0J3MgaW50ZW5kZWRcbiAqIHRvIGJlIHVuZGVyc3Rvb2QgYnkgaHVtYW5zIVxuICpcbiAqIC0tLS0tLVxuICpcbiAqIFR1cm5zIEZuOjpHZXRBdHQgYW5kIEZuOjpSZWYgb2JqZWN0cyBpbnRvIHRoZSBzYW1lIHN0cmluZ3MgdGhhdCBjYW4gYmVcbiAqIHBhcnNlZCBieSBGbjo6U3ViLCBidXQgd2l0aG91dCB0aGUgc3Vycm91bmRpbmcgaW50cmluc2ljcy5cbiAqXG4gKiBFdmFsdWF0ZXMgRm46OkpvaW4gZGlyZWN0bHkgaWYgdGhlIHNlY29uZCBhcmd1bWVudCBpcyBhIGxpdGVyYWwgbGlzdCBvZiBzdHJpbmdzLlxuICpcbiAqIFJlbW92ZXMgbGlzdCBhbmQgb2JqZWN0IHZhbHVlcyBldmFsdWF0aW5nIHRvIHsgUmVmOiAnQVdTOjpOb1ZhbHVlJyB9LlxuICpcbiAqIEZvciBvdGhlciBpbnRyaW5zaWNzIHdlIGNob29zZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiB0aGF0IENsb3VkRm9ybWF0aW9uXG4gKiBjYW5ub3QgYWN0dWFsbHkgcGFyc2UsIGJ1dCBpcyBjb21wcmVoZW5zaWJsZSB0byBodW1hbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJbnRyaW5zaWNzKHg6IGFueSk6IGFueSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHguZmlsdGVyKGVsID0+ICFpc05vVmFsdWUoZWwpKS5tYXAocmVuZGVySW50cmluc2ljcyk7XG4gIH1cblxuICBpZiAoaXNOb1ZhbHVlKHgpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGludHJpbnNpYyA9IGdldEludHJpbnNpYyh4KTtcbiAgaWYgKGludHJpbnNpYykge1xuICAgIGlmIChpbnRyaW5zaWMuZm4gPT09ICdSZWYnKSB7XG4gICAgICByZXR1cm4gJyR7JyArIGludHJpbnNpYy5hcmdzICsgJ30nO1xuICAgIH1cbiAgICBpZiAoaW50cmluc2ljLmZuID09PSAnRm46OkdldEF0dCcpIHtcbiAgICAgIHJldHVybiAnJHsnICsgaW50cmluc2ljLmFyZ3NbMF0gKyAnLicgKyBpbnRyaW5zaWMuYXJnc1sxXSArICd9JztcbiAgICB9XG4gICAgaWYgKGludHJpbnNpYy5mbiA9PT0gJ0ZuOjpKb2luJykge1xuICAgICAgcmV0dXJuIHVuQ2xvdWRGb3JtYXRpb25GbkpvaW4oaW50cmluc2ljLmFyZ3NbMF0sIGludHJpbnNpYy5hcmdzWzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmluZ2lmeUludHJpbnNpYyhpbnRyaW5zaWMuZm4sIGludHJpbnNpYy5hcmdzKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgeCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJldDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoeCkpIHtcbiAgICAgIGlmICghaXNOb1ZhbHVlKHZhbHVlKSkge1xuICAgICAgICByZXRba2V5XSA9IHJlbmRlckludHJpbnNpY3ModmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG4gIHJldHVybiB4O1xufVxuXG5mdW5jdGlvbiB1bkNsb3VkRm9ybWF0aW9uRm5Kb2luKHNlcGFyYXRvcjogc3RyaW5nLCBhcmdzOiBhbnkpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJncykpIHtcbiAgICByZXR1cm4gYXJncy5maWx0ZXIoZWwgPT4gIWlzTm9WYWx1ZShlbCkpLm1hcChyZW5kZXJJbnRyaW5zaWNzKS5qb2luKHNlcGFyYXRvcik7XG4gIH1cbiAgcmV0dXJuIHN0cmluZ2lmeUludHJpbnNpYygnRm46OkpvaW4nLCBbc2VwYXJhdG9yLCBhcmdzXSk7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUludHJpbnNpYyhmbjogc3RyaW5nLCBhcmdzOiBhbnkpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgW2ZuXTogcmVuZGVySW50cmluc2ljcyhhcmdzKSB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0SW50cmluc2ljKHg6IGFueSk6IEludHJpbnNpYyB8IHVuZGVmaW5lZCB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCB8fCBBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAodHlwZW9mIHggIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoeCk7XG4gIHJldHVybiBrZXlzLmxlbmd0aCA9PT0gMSAmJiAoa2V5c1swXSA9PT0gJ1JlZicgfHwga2V5c1swXS5zdGFydHNXaXRoKCdGbjo6JykpID8geyBmbjoga2V5c1swXSwgYXJnczogeFtrZXlzWzBdXSB9IDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpc05vVmFsdWUoeDogYW55KSB7XG4gIGNvbnN0IGludCA9IGdldEludHJpbnNpYyh4KTtcbiAgcmV0dXJuIGludCAmJiBpbnQuZm4gPT09ICdSZWYnICYmIGludC5hcmdzID09PSAnQVdTOjpOb1ZhbHVlJztcbn1cblxuaW50ZXJmYWNlIEludHJpbnNpYyB7XG4gIGZuOiBzdHJpbmc7XG4gIGFyZ3M6IGFueTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeComparator = makeComparator;\nexports.dropIfEmpty = dropIfEmpty;\nexports.deepRemoveUndefined = deepRemoveUndefined;\nexports.flatMap = flatMap;\n/**\n * Turn a (multi-key) extraction function into a comparator for use in Array.sort()\n */\nfunction makeComparator(keyFn) {\n return (a, b) => {\n const keyA = keyFn(a);\n const keyB = keyFn(b);\n const len = Math.min(keyA.length, keyB.length);\n for (let i = 0; i < len; i++) {\n const c = compare(keyA[i], keyB[i]);\n if (c !== 0) {\n return c;\n }\n }\n // Arrays are the same up to the min length -- shorter array sorts first\n return keyA.length - keyB.length;\n };\n}\nfunction compare(a, b) {\n if (a < b) {\n return -1;\n }\n if (b < a) {\n return 1;\n }\n return 0;\n}\nfunction dropIfEmpty(xs) {\n return xs.length > 0 ? xs : undefined;\n}\nfunction deepRemoveUndefined(x) {\n if (typeof x === undefined || x === null) {\n return x;\n }\n if (Array.isArray(x)) {\n return x.map(deepRemoveUndefined);\n }\n if (typeof x === 'object') {\n for (const [key, value] of Object.entries(x)) {\n x[key] = deepRemoveUndefined(value);\n if (x[key] === undefined) {\n delete x[key];\n }\n }\n return x;\n }\n return x;\n}\nfunction flatMap(xs, f) {\n const ret = new Array();\n for (const x of xs) {\n ret.push(...f(x));\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSx3Q0FnQkM7QUFZRCxrQ0FFQztBQUVELGtEQWlCQztBQUVELDBCQU1DO0FBNUREOztHQUVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFPLEtBQW9CO0lBQ3ZELE9BQU8sQ0FBQyxDQUFJLEVBQUUsQ0FBSSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztRQUNILENBQUM7UUFFRCx3RUFBd0U7UUFDeEUsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFJLENBQUksRUFBRSxDQUFJO0lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBSSxFQUFPO0lBQ3BDLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxDQUFNO0lBQ3hDLElBQUksT0FBTyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFnQixPQUFPLENBQU8sRUFBTyxFQUFFLENBQWdCO0lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHVybiBhIChtdWx0aS1rZXkpIGV4dHJhY3Rpb24gZnVuY3Rpb24gaW50byBhIGNvbXBhcmF0b3IgZm9yIHVzZSBpbiBBcnJheS5zb3J0KClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDb21wYXJhdG9yPFQsIFU+KGtleUZuOiAoeDogVCkgPT4gVVtdKSB7XG4gIHJldHVybiAoYTogVCwgYjogVCkgPT4ge1xuICAgIGNvbnN0IGtleUEgPSBrZXlGbihhKTtcbiAgICBjb25zdCBrZXlCID0ga2V5Rm4oYik7XG4gICAgY29uc3QgbGVuID0gTWF0aC5taW4oa2V5QS5sZW5ndGgsIGtleUIubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGMgPSBjb21wYXJlKGtleUFbaV0sIGtleUJbaV0pO1xuICAgICAgaWYgKGMgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQXJyYXlzIGFyZSB0aGUgc2FtZSB1cCB0byB0aGUgbWluIGxlbmd0aCAtLSBzaG9ydGVyIGFycmF5IHNvcnRzIGZpcnN0XG4gICAgcmV0dXJuIGtleUEubGVuZ3RoIC0ga2V5Qi5sZW5ndGg7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmU8VD4oYTogVCwgYjogVCkge1xuICBpZiAoYSA8IGIpIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgaWYgKGIgPCBhKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkcm9wSWZFbXB0eTxUPih4czogVFtdKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHhzLmxlbmd0aCA+IDAgPyB4cyA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBSZW1vdmVVbmRlZmluZWQoeDogYW55KTogYW55IHtcbiAgaWYgKHR5cGVvZiB4ID09PSB1bmRlZmluZWQgfHwgeCA9PT0gbnVsbCkge1xuICAgIHJldHVybiB4O1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHgubWFwKGRlZXBSZW1vdmVVbmRlZmluZWQpO1xuICB9XG4gIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh4KSkge1xuICAgICAgeFtrZXldID0gZGVlcFJlbW92ZVVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgICBpZiAoeFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGVsZXRlIHhba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHg7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0TWFwPFQsIFU+KHhzOiBUW10sIGY6ICh4OiBUKSA9PiBVW10pOiBVW10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goLi4uZih4KSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==","function _aws_cdk_cx_api_VpcSubnetGroupType(p) {\n}\nfunction _aws_cdk_cx_api_VpcSubnet(p) {\n}\nfunction _aws_cdk_cx_api_VpcSubnetGroup(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (p.subnets != null)\n for (const o of p.subnets)\n if (!visitedObjects.has(o))\n _aws_cdk_cx_api_VpcSubnet(o);\n if (!visitedObjects.has(p.type))\n _aws_cdk_cx_api_VpcSubnetGroupType(p.type);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_VpcContextResponse(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (p.subnetGroups != null)\n for (const o of p.subnetGroups)\n if (!visitedObjects.has(o))\n _aws_cdk_cx_api_VpcSubnetGroup(o);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_LoadBalancerIpAddressType(p) {\n}\nfunction _aws_cdk_cx_api_LoadBalancerContextResponse(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (!visitedObjects.has(p.ipAddressType))\n _aws_cdk_cx_api_LoadBalancerIpAddressType(p.ipAddressType);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_LoadBalancerListenerContextResponse(p) {\n}\nfunction _aws_cdk_cx_api_EndpointServiceAvailabilityZonesContextQuery(p) {\n}\nfunction _aws_cdk_cx_api_SecurityGroupContextResponse(p) {\n}\nfunction _aws_cdk_cx_api_KeyContextResponse(p) {\n}\nfunction _aws_cdk_cx_api_AwsCloudFormationStackProperties(p) {\n}\nfunction _aws_cdk_cx_api_CloudArtifact(p) {\n}\nfunction _aws_cdk_cx_api_AssetManifestArtifact(p) {\n}\nfunction _aws_cdk_cx_api_CloudFormationStackArtifact(p) {\n}\nfunction _aws_cdk_cx_api_TreeCloudArtifact(p) {\n}\nfunction _aws_cdk_cx_api_NestedCloudAssemblyArtifact(p) {\n}\nfunction _aws_cdk_cx_api_CloudAssembly(p) {\n}\nfunction _aws_cdk_cx_api_CloudAssemblyBuilderProps(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (!visitedObjects.has(p.parentBuilder))\n _aws_cdk_cx_api_CloudAssemblyBuilder(p.parentBuilder);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_CloudAssemblyBuilder(p) {\n}\nfunction _aws_cdk_cx_api_RuntimeInfo(p) {\n}\nfunction _aws_cdk_cx_api_MetadataEntry(p) {\n}\nfunction _aws_cdk_cx_api_MissingContext(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (\"key\" in p)\n print(\"@aws-cdk/cx-api.MissingContext#key\", \"moved to package 'cloud-assembly-schema'\");\n if (\"props\" in p)\n print(\"@aws-cdk/cx-api.MissingContext#props\", \"moved to package 'cloud-assembly-schema'\");\n if (\"provider\" in p)\n print(\"@aws-cdk/cx-api.MissingContext#provider\", \"moved to package 'cloud-assembly-schema'\");\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_AssemblyBuildOptions(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (\"runtimeInfo\" in p)\n print(\"@aws-cdk/cx-api.AssemblyBuildOptions#runtimeInfo\", \"All template modifications that should result from this should\\nhave already been inserted into the template.\");\n if (!visitedObjects.has(p.runtimeInfo))\n _aws_cdk_cx_api_RuntimeInfo(p.runtimeInfo);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_Environment(p) {\n}\nfunction _aws_cdk_cx_api_EnvironmentUtils(p) {\n}\nfunction _aws_cdk_cx_api_SynthesisMessageLevel(p) {\n}\nfunction _aws_cdk_cx_api_MetadataEntryResult(p) {\n}\nfunction _aws_cdk_cx_api_SynthesisMessage(p) {\n if (p == null)\n return;\n visitedObjects.add(p);\n try {\n if (!visitedObjects.has(p.level))\n _aws_cdk_cx_api_SynthesisMessageLevel(p.level);\n }\n finally {\n visitedObjects.delete(p);\n }\n}\nfunction _aws_cdk_cx_api_EnvironmentPlaceholders(p) {\n}\nfunction _aws_cdk_cx_api_EnvironmentPlaceholderValues(p) {\n}\nfunction _aws_cdk_cx_api_IEnvironmentPlaceholderProvider(p) {\n}\nfunction print(name, deprecationMessage) {\n const deprecated = process.env.JSII_DEPRECATED;\n const deprecationMode = [\"warn\", \"fail\", \"quiet\"].includes(deprecated) ? deprecated : \"warn\";\n const message = `${name} is deprecated.\\n ${deprecationMessage.trim()}\\n This API will be removed in the next major release.`;\n switch (deprecationMode) {\n case \"fail\":\n throw new DeprecationError(message);\n case \"warn\":\n console.warn(\"[WARNING]\", message);\n break;\n }\n}\nfunction getPropertyDescriptor(obj, prop) {\n const descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n if (descriptor) {\n return descriptor;\n }\n const proto = Object.getPrototypeOf(obj);\n const prototypeDescriptor = proto && getPropertyDescriptor(proto, prop);\n if (prototypeDescriptor) {\n return prototypeDescriptor;\n }\n return {};\n}\nconst visitedObjects = new Set();\nclass DeprecationError extends Error {\n constructor(...args) {\n super(...args);\n Object.defineProperty(this, \"name\", {\n configurable: false,\n enumerable: true,\n value: \"DeprecationError\",\n writable: false,\n });\n }\n}\nmodule.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_cx_api_VpcSubnetGroupType, _aws_cdk_cx_api_VpcSubnet, _aws_cdk_cx_api_VpcSubnetGroup, _aws_cdk_cx_api_VpcContextResponse, _aws_cdk_cx_api_LoadBalancerIpAddressType, _aws_cdk_cx_api_LoadBalancerContextResponse, _aws_cdk_cx_api_LoadBalancerListenerContextResponse, _aws_cdk_cx_api_EndpointServiceAvailabilityZonesContextQuery, _aws_cdk_cx_api_SecurityGroupContextResponse, _aws_cdk_cx_api_KeyContextResponse, _aws_cdk_cx_api_AwsCloudFormationStackProperties, _aws_cdk_cx_api_CloudArtifact, _aws_cdk_cx_api_AssetManifestArtifact, _aws_cdk_cx_api_CloudFormationStackArtifact, _aws_cdk_cx_api_TreeCloudArtifact, _aws_cdk_cx_api_NestedCloudAssemblyArtifact, _aws_cdk_cx_api_CloudAssembly, _aws_cdk_cx_api_CloudAssemblyBuilderProps, _aws_cdk_cx_api_CloudAssemblyBuilder, _aws_cdk_cx_api_RuntimeInfo, _aws_cdk_cx_api_MetadataEntry, _aws_cdk_cx_api_MissingContext, _aws_cdk_cx_api_AssemblyBuildOptions, _aws_cdk_cx_api_Environment, _aws_cdk_cx_api_EnvironmentUtils, _aws_cdk_cx_api_SynthesisMessageLevel, _aws_cdk_cx_api_MetadataEntryResult, _aws_cdk_cx_api_SynthesisMessage, _aws_cdk_cx_api_EnvironmentPlaceholders, _aws_cdk_cx_api_EnvironmentPlaceholderValues, _aws_cdk_cx_api_IEnvironmentPlaceholderProvider };\n","\"use strict\";\n// --------------------------------------------------------------------------------\n// This file declares context keys that are used by the CLI to control the\n// behavior of CDK apps. Contrary to feature flags (which are defined under\n// `features.ts`) these options are not bound to be removed in the next major\n// version.\n// --------------------------------------------------------------------------------\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BUNDLING_STACKS = exports.DISABLE_LOGICAL_ID_METADATA = exports.DISABLE_METADATA_STACK_TRACE = exports.DISABLE_ASSET_STAGING_CONTEXT = exports.ANALYTICS_REPORTING_ENABLED_CONTEXT = exports.PATH_METADATA_ENABLE_CONTEXT = void 0;\n/**\n * Enables the embedding of the \"aws:cdk:path\" in CloudFormation template metadata.\n */\nexports.PATH_METADATA_ENABLE_CONTEXT = 'aws:cdk:enable-path-metadata';\n/**\n * Enable the collection and reporting of version information.\n */\nexports.ANALYTICS_REPORTING_ENABLED_CONTEXT = 'aws:cdk:version-reporting';\n/**\n * Disable asset staging (for use with SAM CLI).\n *\n * Disabling asset staging means that copyable assets will not be copied to the\n * output directory and will be referenced with absolute paths.\n *\n * Not copied to the output directory: this is so users can iterate on the\n * Lambda source and run SAM CLI without having to re-run CDK (note: we\n * cannot achieve this for bundled assets, if assets are bundled they\n * will have to re-run CDK CLI to re-bundle updated versions).\n *\n * Absolute path: SAM CLI expects `cwd`-relative paths in a resource's\n * `aws:asset:path` metadata. In order to be predictable, we will always output\n * absolute paths.\n */\nexports.DISABLE_ASSET_STAGING_CONTEXT = 'aws:cdk:disable-asset-staging';\n/**\n * If this context key is set, the CDK will stage assets under the specified\n * directory. Otherwise, assets will not be staged.\n * Omits stack traces from construct metadata entries.\n */\nexports.DISABLE_METADATA_STACK_TRACE = 'aws:cdk:disable-stack-trace';\n/**\n * If this context key is set, the CDK will not store logical ID\n * metadata in the manifest.\n */\nexports.DISABLE_LOGICAL_ID_METADATA = 'aws:cdk:disable-logicalId-metadata';\n/**\n * Run bundling for stacks specified in this context key\n */\nexports.BUNDLING_STACKS = 'aws:cdk:bundling-stacks';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtRkFBbUY7QUFDbkYsMEVBQTBFO0FBQzFFLDJFQUEyRTtBQUMzRSw2RUFBNkU7QUFDN0UsV0FBVztBQUNYLG1GQUFtRjs7O0FBRW5GOztHQUVHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBRyw4QkFBOEIsQ0FBQztBQUUzRTs7R0FFRztBQUNVLFFBQUEsbUNBQW1DLEdBQUcsMkJBQTJCLENBQUM7QUFFL0U7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLCtCQUErQixDQUFDO0FBRTdFOzs7O0dBSUc7QUFDVSxRQUFBLDRCQUE0QixHQUFHLDZCQUE2QixDQUFDO0FBRTFFOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsb0NBQW9DLENBQUM7QUFFaEY7O0dBRUc7QUFDVSxRQUFBLGVBQWUsR0FBRyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgZGVjbGFyZXMgY29udGV4dCBrZXlzIHRoYXQgYXJlIHVzZWQgYnkgdGhlIENMSSB0byBjb250cm9sIHRoZVxuLy8gYmVoYXZpb3Igb2YgQ0RLIGFwcHMuIENvbnRyYXJ5IHRvIGZlYXR1cmUgZmxhZ3MgKHdoaWNoIGFyZSBkZWZpbmVkIHVuZGVyXG4vLyBgZmVhdHVyZXMudHNgKSB0aGVzZSBvcHRpb25zIGFyZSBub3QgYm91bmQgdG8gYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvclxuLy8gdmVyc2lvbi5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICovXG5leHBvcnQgY29uc3QgUEFUSF9NRVRBREFUQV9FTkFCTEVfQ09OVEVYVCA9ICdhd3M6Y2RrOmVuYWJsZS1wYXRoLW1ldGFkYXRhJztcblxuLyoqXG4gKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZyBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgQU5BTFlUSUNTX1JFUE9SVElOR19FTkFCTEVEX0NPTlRFWFQgPSAnYXdzOmNkazp2ZXJzaW9uLXJlcG9ydGluZyc7XG5cbi8qKlxuICogRGlzYWJsZSBhc3NldCBzdGFnaW5nIChmb3IgdXNlIHdpdGggU0FNIENMSSkuXG4gKlxuICogRGlzYWJsaW5nIGFzc2V0IHN0YWdpbmcgbWVhbnMgdGhhdCBjb3B5YWJsZSBhc3NldHMgd2lsbCBub3QgYmUgY29waWVkIHRvIHRoZVxuICogb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgcGF0aHMuXG4gKlxuICogTm90IGNvcGllZCB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeTogdGhpcyBpcyBzbyB1c2VycyBjYW4gaXRlcmF0ZSBvbiB0aGVcbiAqIExhbWJkYSBzb3VyY2UgYW5kIHJ1biBTQU0gQ0xJIHdpdGhvdXQgaGF2aW5nIHRvIHJlLXJ1biBDREsgKG5vdGU6IHdlXG4gKiBjYW5ub3QgYWNoaWV2ZSB0aGlzIGZvciBidW5kbGVkIGFzc2V0cywgaWYgYXNzZXRzIGFyZSBidW5kbGVkIHRoZXlcbiAqIHdpbGwgaGF2ZSB0byByZS1ydW4gQ0RLIENMSSB0byByZS1idW5kbGUgdXBkYXRlZCB2ZXJzaW9ucykuXG4gKlxuICogQWJzb2x1dGUgcGF0aDogU0FNIENMSSBleHBlY3RzIGBjd2RgLXJlbGF0aXZlIHBhdGhzIGluIGEgcmVzb3VyY2Unc1xuICogYGF3czphc3NldDpwYXRoYCBtZXRhZGF0YS4gSW4gb3JkZXIgdG8gYmUgcHJlZGljdGFibGUsIHdlIHdpbGwgYWx3YXlzIG91dHB1dFxuICogYWJzb2x1dGUgcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBESVNBQkxFX0FTU0VUX1NUQUdJTkdfQ09OVEVYVCA9ICdhd3M6Y2RrOmRpc2FibGUtYXNzZXQtc3RhZ2luZyc7XG5cbi8qKlxuICogSWYgdGhpcyBjb250ZXh0IGtleSBpcyBzZXQsIHRoZSBDREsgd2lsbCBzdGFnZSBhc3NldHMgdW5kZXIgdGhlIHNwZWNpZmllZFxuICogZGlyZWN0b3J5LiBPdGhlcndpc2UsIGFzc2V0cyB3aWxsIG5vdCBiZSBzdGFnZWQuXG4gKiBPbWl0cyBzdGFjayB0cmFjZXMgZnJvbSBjb25zdHJ1Y3QgbWV0YWRhdGEgZW50cmllcy5cbiAqL1xuZXhwb3J0IGNvbnN0IERJU0FCTEVfTUVUQURBVEFfU1RBQ0tfVFJBQ0UgPSAnYXdzOmNkazpkaXNhYmxlLXN0YWNrLXRyYWNlJztcblxuLyoqXG4gKiBJZiB0aGlzIGNvbnRleHQga2V5IGlzIHNldCwgdGhlIENESyB3aWxsIG5vdCBzdG9yZSBsb2dpY2FsIElEXG4gKiBtZXRhZGF0YSBpbiB0aGUgbWFuaWZlc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBESVNBQkxFX0xPR0lDQUxfSURfTUVUQURBVEEgPSAnYXdzOmNkazpkaXNhYmxlLWxvZ2ljYWxJZC1tZXRhZGF0YSc7XG5cbi8qKlxuICogUnVuIGJ1bmRsaW5nIGZvciBzdGFja3Mgc3BlY2lmaWVkIGluIHRoaXMgY29udGV4dCBrZXlcbiAqL1xuZXhwb3J0IGNvbnN0IEJVTkRMSU5HX1NUQUNLUyA9ICdhd3M6Y2RrOmJ1bmRsaW5nLXN0YWNrcyc7XG4iXX0=","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst ASSET_MANIFEST_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.AssetManifestArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass AssetManifestArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `AssetManifestArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `AssetManifestArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isAssetManifestArtifact(art) {\n return art && typeof art === 'object' && art[ASSET_MANIFEST_ARTIFACT_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, AssetManifestArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid AssetManifestArtifact. Missing \"file\" property');\n }\n this.file = path.resolve(this.assembly.directory, properties.file);\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n }\n /**\n * The Asset Manifest contents\n */\n get contents() {\n if (this._contents !== undefined) {\n return this._contents;\n }\n const contents = this._contents = JSON.parse(fs.readFileSync(this.file, 'utf-8'));\n return contents;\n }\n}\nexports.AssetManifestArtifact = AssetManifestArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nAssetManifestArtifact[_a] = { fqn: \"@aws-cdk/cx-api.AssetManifestArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'AssetManifestArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(AssetManifestArtifact.prototype, ASSET_MANIFEST_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC1tYW5pZmVzdC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLHNEQUFrRDtBQUVsRCw0Q0FBc0Q7QUFFdEQsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFeEY7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLDhCQUFhO0lBQ3REOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFhLEdBQVE7UUFDeEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzNFO0lBcUJELFlBQVksUUFBdUIsRUFBRSxJQUFZLEVBQUUsUUFBbUM7UUFDcEYsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7Ozs7OzsrQ0ExQ3ZCLHFCQUFxQjs7OztRQTRDOUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQXFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksMEJBQWtCLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUN6RixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsVUFBVSxDQUFDLDZCQUE2QixDQUFDO1FBQzlFLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxVQUFVLENBQUMsaUNBQWlDLENBQUM7S0FDdkY7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxRQUFRLENBQUM7S0FDakI7O0FBL0RILHNEQWdFQzs7O0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSwyQkFBMkIsRUFBRTtJQUNsRixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4uL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuLi9wcml2YXRlL2Vycm9yJztcblxuY29uc3QgQVNTRVRfTUFOSUZFU1RfQVJUSUZBQ1RfU1lNID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCcpO1xuXG4vKipcbiAqIEFzc2V0IG1hbmlmZXN0IGlzIGEgZGVzY3JpcHRpb24gb2YgYSBzZXQgb2YgYXNzZXRzIHdoaWNoIG5lZWQgdG8gYmUgYnVpbHQgYW5kIHB1Ymxpc2hlZFxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRNYW5pZmVzdEFydGlmYWN0IGV4dGVuZHMgQ2xvdWRBcnRpZmFjdCB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYGFydGAgaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgYGluc3RhbmNlb2ZgIHRvIHByb3Blcmx5IGRldGVjdCBgQXNzZXRNYW5pZmVzdEFydGlmYWN0YFxuICAgKiBpbnN0YW5jZXMsIGV2ZW4gd2hlbiB0aGUgY29uc3RydWN0IGxpYnJhcnkgaXMgc3ltbGlua2VkLlxuICAgKlxuICAgKiBFeHBsYW5hdGlvbjogaW4gSmF2YVNjcmlwdCwgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5IG9uXG4gICAqIGRpc2sgYXJlIHNlZW4gYXMgaW5kZXBlbmRlbnQsIGNvbXBsZXRlbHkgZGlmZmVyZW50IGxpYnJhcmllcy4gQXMgYVxuICAgKiBjb25zZXF1ZW5jZSwgdGhlIGNsYXNzIGBBc3NldE1hbmlmZXN0QXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh0aGlzOiB2b2lkLCBhcnQ6IGFueSk6IGFydCBpcyBBc3NldE1hbmlmZXN0QXJ0aWZhY3Qge1xuICAgIHJldHVybiBhcnQgJiYgdHlwZW9mIGFydCA9PT0gJ29iamVjdCcgJiYgYXJ0W0FTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTV07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgYXNzZXQgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogTmFtZSBvZiBTU00gcGFyYW1ldGVyIHdpdGggYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEaXNjb3ZlciBTU00gcGFyYW1ldGVyIGJ5IHJlYWRpbmcgc3RhY2tcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29udGVudHM/OiBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0O1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bc3NldE1hbmlmZXN0UHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMuZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBBc3NldE1hbmlmZXN0QXJ0aWZhY3QuIE1pc3NpbmcgXCJmaWxlXCIgcHJvcGVydHknKTtcbiAgICB9XG4gICAgdGhpcy5maWxlID0gcGF0aC5yZXNvbHZlKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCBwcm9wZXJ0aWVzLmZpbGUpO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFzc2V0IE1hbmlmZXN0IGNvbnRlbnRzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRlbnRzKCk6IGN4c2NoZW1hLkFzc2V0TWFuaWZlc3Qge1xuICAgIGlmICh0aGlzLl9jb250ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29udGVudHM7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudHMgPSB0aGlzLl9jb250ZW50cyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHRoaXMuZmlsZSwgJ3V0Zi04JykpO1xuICAgIHJldHVybiBjb250ZW50cztcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnQXNzZXRNYW5pZmVzdEFydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEFzc2V0TWFuaWZlc3RBcnRpZmFjdC5wcm90b3R5cGUsIEFTU0VUX01BTklGRVNUX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationStackArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst path = require(\"path\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst environment_1 = require(\"../environment\");\nconst error_1 = require(\"../private/error\");\nconst CLOUDFORMATION_STACK_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.CloudFormationStackArtifact');\nclass CloudFormationStackArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `CloudFormationStackArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `CloudFormationStackArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isCloudFormationStackArtifact(art) {\n return art && typeof art === 'object' && art[CLOUDFORMATION_STACK_ARTIFACT_SYM];\n }\n constructor(assembly, artifactId, artifact) {\n super(assembly, artifactId, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, CloudFormationStackArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n if (!properties.templateFile) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing \"templateFile\" property in cloud assembly manifest');\n }\n if (!artifact.environment) {\n throw new error_1.CloudAssemblyError('Invalid CloudFormation stack artifact. Missing environment');\n }\n this.environment = environment_1.EnvironmentUtils.parse(artifact.environment);\n this.templateFile = properties.templateFile;\n this.parameters = properties.parameters ?? {};\n // We get the tags from 'properties' if available (cloud assembly format >= 6.0.0), otherwise\n // from the stack metadata\n this.tags = properties.tags ?? this.tagsFromMetadata();\n this.notificationArns = properties.notificationArns;\n this.assumeRoleArn = properties.assumeRoleArn;\n this.assumeRoleExternalId = properties.assumeRoleExternalId;\n this.assumeRoleAdditionalOptions = properties.assumeRoleAdditionalOptions;\n this.cloudFormationExecutionRoleArn = properties.cloudFormationExecutionRoleArn;\n this.stackTemplateAssetObjectUrl = properties.stackTemplateAssetObjectUrl;\n this.requiresBootstrapStackVersion = properties.requiresBootstrapStackVersion;\n this.bootstrapStackVersionSsmParameter = properties.bootstrapStackVersionSsmParameter;\n this.terminationProtection = properties.terminationProtection;\n this.validateOnSynth = properties.validateOnSynth;\n this.lookupRole = properties.lookupRole;\n this.stackName = properties.stackName || artifactId;\n this.assets = this.findMetadataByType(cxschema.ArtifactMetadataEntryType.ASSET).map(e => e.data);\n this.displayName = this.stackName === artifactId\n ? this.hierarchicalId\n : `${this.hierarchicalId} (${this.stackName})`;\n this.name = this.stackName; // backwards compat\n this.originalName = this.stackName;\n }\n /**\n * Full path to the template file\n */\n get templateFullPath() {\n return path.join(this.assembly.directory, this.templateFile);\n }\n /**\n * The CloudFormation template for this stack.\n */\n get template() {\n if (this._template === undefined) {\n this._template = JSON.parse(fs.readFileSync(this.templateFullPath, 'utf-8'));\n }\n return this._template;\n }\n tagsFromMetadata() {\n const ret = {};\n for (const metadataEntry of this.findMetadataByType(cxschema.ArtifactMetadataEntryType.STACK_TAGS)) {\n for (const tag of (metadataEntry.data ?? [])) {\n ret[tag.key] = tag.value;\n }\n }\n return ret;\n }\n}\nexports.CloudFormationStackArtifact = CloudFormationStackArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nCloudFormationStackArtifact[_a] = { fqn: \"@aws-cdk/cx-api.CloudFormationStackArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'CloudFormationStackArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(CloudFormationStackArtifact.prototype, CLOUDFORMATION_STACK_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24tYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDJEQUEyRDtBQUMzRCxzREFBa0Q7QUFFbEQsZ0RBQStEO0FBQy9ELDRDQUFzRDtBQUN0RCxNQUFNLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUVwRyxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0tBQ2pGO0lBbUlELFlBQVksUUFBdUIsRUFBRSxVQUFrQixFQUFFLFFBQW1DO1FBQzFGLEtBQUssQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDOzs7Ozs7K0NBeEo3QiwyQkFBMkI7Ozs7UUEwSnBDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUE4QyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLDBCQUFrQixDQUFDLG1HQUFtRyxDQUFDLENBQUM7UUFDcEksQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLDREQUE0RCxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJ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QUMzQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ1o7O0FBeE5ILGtFQXlOQzs7O0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRTtJQUM5RixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4uL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB0eXBlIHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEVudmlyb25tZW50LCBFbnZpcm9ubWVudFV0aWxzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vcHJpdmF0ZS9lcnJvcic7XG5jb25zdCBDTE9VREZPUk1BVElPTl9TVEFDS19BUlRJRkFDVF9TWU0gPSBTeW1ib2wuZm9yKCdAYXdzLWNkay9jeC1hcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0Jyk7XG5cbmV4cG9ydCBjbGFzcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgZXh0ZW5kcyBDbG91ZEFydGlmYWN0IHtcbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgYXJ0YCBpcyBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgaW5zdGVhZCBvZiBgaW5zdGFuY2VvZmAgdG8gcHJvcGVybHkgZGV0ZWN0IGBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgXG4gICAqIGluc3RhbmNlcywgZXZlbiB3aGVuIHRoZSBjb25zdHJ1Y3QgbGlicmFyeSBpcyBzeW1saW5rZWQuXG4gICAqXG4gICAqIEV4cGxhbmF0aW9uOiBpbiBKYXZhU2NyaXB0LCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgIGxpYnJhcnkgb25cbiAgICogZGlzayBhcmUgc2VlbiBhcyBpbmRlcGVuZGVudCwgY29tcGxldGVseSBkaWZmZXJlbnQgbGlicmFyaWVzLiBBcyBhXG4gICAqIGNvbnNlcXVlbmNlLCB0aGUgY2xhc3MgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgaW4gZWFjaCBjb3B5IG9mIHRoZSBgY3gtYXBpYCBsaWJyYXJ5XG4gICAqIGlzIHNlZW4gYXMgYSBkaWZmZXJlbnQgY2xhc3MsIGFuZCBhbiBpbnN0YW5jZSBvZiBvbmUgY2xhc3Mgd2lsbCBub3QgdGVzdCBhc1xuICAgKiBgaW5zdGFuY2VvZmAgdGhlIG90aGVyIGNsYXNzLiBgbnBtIGluc3RhbGxgIHdpbGwgbm90IGNyZWF0ZSBpbnN0YWxsYXRpb25zXG4gICAqIGxpa2UgdGhpcywgYnV0IHVzZXJzIG1heSBtYW51YWxseSBzeW1saW5rIGNvbnN0cnVjdCBsaWJyYXJpZXMgdG9nZXRoZXIgb3JcbiAgICogdXNlIGEgbW9ub3JlcG8gdG9vbDogaW4gdGhvc2UgY2FzZXMsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWBcbiAgICogbGlicmFyeSBjYW4gYmUgYWNjaWRlbnRhbGx5IGluc3RhbGxlZCwgYW5kIGBpbnN0YW5jZW9mYCB3aWxsIGJlaGF2ZVxuICAgKiB1bnByZWRpY3RhYmx5LiBJdCBpcyBzYWZlc3QgdG8gYXZvaWQgdXNpbmcgYGluc3RhbmNlb2ZgLCBhbmQgdXNpbmdcbiAgICogdGhpcyB0eXBlLXRlc3RpbmcgbWV0aG9kIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGFydDogYW55KTogYXJ0IGlzIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB7XG4gICAgcmV0dXJuIGFydCAmJiB0eXBlb2YgYXJ0ID09PSAnb2JqZWN0JyAmJiBhcnRbQ0xPVURGT1JNQVRJT05fU1RBQ0tfQVJUSUZBQ1RfU1lNXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZUZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIG5hbWUgYXMgZGVmaW5lZCBpbiB0aGUgQ0RLIGFwcC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvcmlnaW5hbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW55IGFzc2V0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldHM6IGN4c2NoZW1hLkFzc2V0TWV0YWRhdGFFbnRyeVtdO1xuXG4gIC8qKlxuICAgKiBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2xvdWRGb3JtYXRpb24gdGFncyB0byBwYXNzIHRvIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWdzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNOUyBUb3BpY3MgdGhhdCB3aWxsIHJlY2VpdmUgc3RhY2sgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIG5hbWUgb2YgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoaXMgc3RhY2suIFNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdXNlclxuICAgKiBpbnRlcmZhY2VzLiBJZiB0aGUgc3RhY2tOYW1lIGhhcyBub3QgYmVlbiBzZXQgZXhwbGljaXRseSwgb3IgaGFzIGJlZW4gc2V0XG4gICAqIHRvIGFydGlmYWN0SWQsIGl0IHdpbGwgcmV0dXJuIHRoZSBoaWVyYXJjaGljYWxJZCBvZiB0aGUgc3RhY2suIE90aGVyd2lzZSxcbiAgICogaXQgd2lsbCByZXR1cm4gc29tZXRoaW5nIGxpa2UgXCI8aGllcmFyY2hpY2FsSWQ+ICg8c3RhY2tOYW1lPilcIlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoaXMgc3RhY2suXG4gICAqIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gYHN0YWNrTmFtZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBpbnRvIHdoaWNoIHRvIGRlcGxveSB0aGlzIGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcblxuICAvKipcbiAgICogVGhlIHJvbGUgdGhhdCBuZWVkcyB0byBiZSBhc3N1bWVkIHRvIGRlcGxveSB0aGUgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0ZXJuYWwgSUQgdG8gdXNlIHdoZW4gYXNzdW1pbmcgcm9sZSBmb3IgY2xvdWRmb3JtYXRpb24gZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleHRlcm5hbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgb3B0aW9ucyB0byBwYXNzIHRvIFNUUyB3aGVuIGFzc3VtaW5nIHRoZSByb2xlIGZvciBjbG91ZGZvcm1hdGlvbiBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogLSBgUm9sZUFybmAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUFybmAgcHJvcGVydHkgaW5zdGVhZC5cbiAgICogLSBgRXh0ZXJuYWxJZGAgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgdGhlIGRlZGljYXRlZCBgYXNzdW1lUm9sZUV4dGVybmFsSWRgIGluc3RlYWQuXG4gICAqIC0gYFRyYW5zaXRpdmVUYWdLZXlzYCBkZWZhdWx0cyB0byB1c2UgYWxsIGtleXMgKGlmIGFueSkgc3BlY2lmaWVkIGluIGBUYWdzYC4gRS5nLCBhbGwgdGFncyBhcmUgdHJhbnNpdGl2ZSBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgaXMgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIHBhc3NlZCAoY3VycmVudGx5IGFzc3VtZWQgcm9sZS9jcmVkZW50aWFscyBhcmUgdXNlZClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRvIHVzZSB0byBsb29rIHVwIHZhbHVlcyBmcm9tIHRoZSB0YXJnZXQgQVdTIGFjY291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByb2xlIGlzIGFzc3VtZWQgKGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIHVzZWQpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9va3VwUm9sZT86IGN4c2NoZW1hLkJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBzdGFjayB0ZW1wbGF0ZSBoYXMgYWxyZWFkeSBiZWVuIGluY2x1ZGVkIGluIHRoZSBhc3NldCBtYW5pZmVzdCwgaXRzIGFzc2V0IFVSTFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCB1cGxvYWRlZCB5ZXQsIHVwbG9hZCBqdXN0IGJlZm9yZSBkZXBsb3lpbmdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkIHRvIGRlcGxveSB0aGlzIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYm9vdHN0cmFwIHN0YWNrIHJlcXVpcmVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgU1NNIHBhcmFtZXRlciB3aXRoIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGlzY292ZXIgU1NNIHBhcmFtZXRlciBieSByZWFkaW5nIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RhY2sgc2hvdWxkIGJlIHZhbGlkYXRlZCBieSB0aGUgQ0xJIGFmdGVyIHN5bnRoZXNpc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdGVPblN5bnRoPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF90ZW1wbGF0ZTogYW55IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBhcnRpZmFjdElkOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIGFydGlmYWN0SWQsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5Bd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcztcbiAgICBpZiAoIXByb3BlcnRpZXMudGVtcGxhdGVGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbnZhbGlkIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0LiBNaXNzaW5nIFwidGVtcGxhdGVGaWxlXCIgcHJvcGVydHkgaW4gY2xvdWQgYXNzZW1ibHkgbWFuaWZlc3QnKTtcbiAgICB9XG4gICAgaWYgKCFhcnRpZmFjdC5lbnZpcm9ubWVudCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW52YWxpZCBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdC4gTWlzc2luZyBlbnZpcm9ubWVudCcpO1xuICAgIH1cbiAgICB0aGlzLmVudmlyb25tZW50ID0gRW52aXJvbm1lbnRVdGlscy5wYXJzZShhcnRpZmFjdC5lbnZpcm9ubWVudCk7XG4gICAgdGhpcy50ZW1wbGF0ZUZpbGUgPSBwcm9wZXJ0aWVzLnRlbXBsYXRlRmlsZTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwcm9wZXJ0aWVzLnBhcmFtZXRlcnMgPz8ge307XG5cbiAgICAvLyBXZSBnZXQgdGhlIHRhZ3MgZnJvbSAncHJvcGVydGllcycgaWYgYXZhaWxhYmxlIChjbG91ZCBhc3NlbWJseSBmb3JtYXQgPj0gNi4wLjApLCBvdGhlcndpc2VcbiAgICAvLyBmcm9tIHRoZSBzdGFjayBtZXRhZGF0YVxuICAgIHRoaXMudGFncyA9IHByb3BlcnRpZXMudGFncyA/PyB0aGlzLnRhZ3NGcm9tTWV0YWRhdGEoKTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkFybnMgPSBwcm9wZXJ0aWVzLm5vdGlmaWNhdGlvbkFybnM7XG4gICAgdGhpcy5hc3N1bWVSb2xlQXJuID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQXJuO1xuICAgIHRoaXMuYXNzdW1lUm9sZUV4dGVybmFsSWQgPSBwcm9wZXJ0aWVzLmFzc3VtZVJvbGVFeHRlcm5hbElkO1xuICAgIHRoaXMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zID0gcHJvcGVydGllcy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnM7XG4gICAgdGhpcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4gPSBwcm9wZXJ0aWVzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybjtcbiAgICB0aGlzLnN0YWNrVGVtcGxhdGVBc3NldE9iamVjdFVybCA9IHByb3BlcnRpZXMuc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsO1xuICAgIHRoaXMucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24gPSBwcm9wZXJ0aWVzLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uO1xuICAgIHRoaXMuYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyID0gcHJvcGVydGllcy5ib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI7XG4gICAgdGhpcy50ZXJtaW5hdGlvblByb3RlY3Rpb24gPSBwcm9wZXJ0aWVzLnRlcm1pbmF0aW9uUHJvdGVjdGlvbjtcbiAgICB0aGlzLnZhbGlkYXRlT25TeW50aCA9IHByb3BlcnRpZXMudmFsaWRhdGVPblN5bnRoO1xuICAgIHRoaXMubG9va3VwUm9sZSA9IHByb3BlcnRpZXMubG9va3VwUm9sZTtcblxuICAgIHRoaXMuc3RhY2tOYW1lID0gcHJvcGVydGllcy5zdGFja05hbWUgfHwgYXJ0aWZhY3RJZDtcbiAgICB0aGlzLmFzc2V0cyA9IHRoaXMuZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuQVNTRVQpLm1hcChlID0+IGUuZGF0YSBhcyBjeHNjaGVtYS5Bc3NldE1ldGFkYXRhRW50cnkpO1xuXG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHRoaXMuc3RhY2tOYW1lID09PSBhcnRpZmFjdElkXG4gICAgICA/IHRoaXMuaGllcmFyY2hpY2FsSWRcbiAgICAgIDogYCR7dGhpcy5oaWVyYXJjaGljYWxJZH0gKCR7dGhpcy5zdGFja05hbWV9KWA7XG5cbiAgICB0aGlzLm5hbWUgPSB0aGlzLnN0YWNrTmFtZTsgLy8gYmFja3dhcmRzIGNvbXBhdFxuICAgIHRoaXMub3JpZ2luYWxOYW1lID0gdGhpcy5zdGFja05hbWU7XG4gIH1cblxuICAvKipcbiAgICogRnVsbCBwYXRoIHRvIHRoZSB0ZW1wbGF0ZSBmaWxlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRlbXBsYXRlRnVsbFBhdGgoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGhpcy50ZW1wbGF0ZUZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBmb3IgdGhpcyBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogYW55IHtcbiAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdGVtcGxhdGUgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLnRlbXBsYXRlRnVsbFBhdGgsICd1dGYtOCcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSB0YWdzRnJvbU1ldGFkYXRhKCkge1xuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgbWV0YWRhdGFFbnRyeSBvZiB0aGlzLmZpbmRNZXRhZGF0YUJ5VHlwZShjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLlNUQUNLX1RBR1MpKSB7XG4gICAgICBmb3IgKGNvbnN0IHRhZyBvZiAobWV0YWRhdGFFbnRyeS5kYXRhID8/IFtdKSBhcyBjeHNjaGVtYS5TdGFja1RhZ3NNZXRhZGF0YUVudHJ5KSB7XG4gICAgICAgIHJldFt0YWcua2V5XSA9IHRhZy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0J1xuICpcbiAqIFdoeSBub3QgcHV0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yPyBCZWNhdXNlIHRoaXMgaXMgYSBjbGFzcyBwcm9wZXJ0eSxcbiAqIG5vdCBhbiBpbnN0YW5jZSBwcm9wZXJ0eS4gSXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5wcm90b3R5cGUsIENMT1VERk9STUFUSU9OX1NUQUNLX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst nested_cloud_assembly_artifact_1 = require(\"./nested-cloud-assembly-artifact\");\nconst cloud_assembly_1 = require(\"../cloud-assembly\");\nconst cacheSym = Symbol();\n/**\n * The nested Assembly\n *\n * Declared in a different file to break circular dep between CloudAssembly and NestedCloudAssemblyArtifact\n */\nObject.defineProperty(nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact.prototype, 'nestedAssembly', {\n get() {\n if (!this[cacheSym]) {\n this[cacheSym] = new cloud_assembly_1.CloudAssembly(this.fullPath);\n }\n return this[cacheSym];\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5lc3RlZC1jbG91ZC1hc3NlbWJseS1hcnRpZmFjdC1hdWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxRkFBK0U7QUFDL0Usc0RBQWtEO0FBRWxELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBRTFCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDREQUEyQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtJQUM3RSxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2QjtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCB9IGZyb20gJy4vbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi9jbG91ZC1hc3NlbWJseSc7XG5cbmNvbnN0IGNhY2hlU3ltID0gU3ltYm9sKCk7XG5cbi8qKlxuICogVGhlIG5lc3RlZCBBc3NlbWJseVxuICpcbiAqIERlY2xhcmVkIGluIGEgZGlmZmVyZW50IGZpbGUgdG8gYnJlYWsgY2lyY3VsYXIgZGVwIGJldHdlZW4gQ2xvdWRBc3NlbWJseSBhbmQgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0XG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QucHJvdG90eXBlLCAnbmVzdGVkQXNzZW1ibHknLCB7XG4gIGdldCgpIHtcbiAgICBpZiAoIXRoaXNbY2FjaGVTeW1dKSB7XG4gICAgICB0aGlzW2NhY2hlU3ltXSA9IG5ldyBDbG91ZEFzc2VtYmx5KHRoaXMuZnVsbFBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpc1tjYWNoZVN5bV07XG4gIH0sXG59KTtcbiJdfQ==","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NestedCloudAssemblyArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst path = require(\"path\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst NESTED_CLOUD_ASSEMBLY_SYM = Symbol.for('@aws-cdk/cx-api.NestedCloudAssemblyArtifact');\n/**\n * Asset manifest is a description of a set of assets which need to be built and published\n */\nclass NestedCloudAssemblyArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `NestedCloudAssemblyArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `NestedCloudAssemblyArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isNestedCloudAssemblyArtifact(art) {\n return art && typeof art === 'object' && art[NESTED_CLOUD_ASSEMBLY_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, NestedCloudAssemblyArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n this.directoryName = properties.directoryName;\n this.displayName = properties.displayName ?? name;\n }\n /**\n * Full path to the nested assembly directory\n */\n get fullPath() {\n return path.join(this.assembly.directory, this.directoryName);\n }\n}\nexports.NestedCloudAssemblyArtifact = NestedCloudAssemblyArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nNestedCloudAssemblyArtifact[_a] = { fqn: \"@aws-cdk/cx-api.NestedCloudAssemblyArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'NestedCloudAssemblyArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(NestedCloudAssemblyArtifact.prototype, NESTED_CLOUD_ASSEMBLY_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDZCQUE2QjtBQUU3QixzREFBa0Q7QUFHbEQsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFNUY7O0dBRUc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLDhCQUFhO0lBQzVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVE7UUFDbEQsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQ3pFO0lBWUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzs7Ozs7OytDQWpDdkIsMkJBQTJCOzs7O1FBbUNwQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBMkMsQ0FBQztRQUM5RixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztLQUNuRDtJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDL0Q7O0FBN0NILGtFQThDQzs7O0FBV0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSx5QkFBeUIsRUFBRTtJQUN0RixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQ2xvdWRBcnRpZmFjdCB9IGZyb20gJy4uL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB0eXBlIHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcblxuY29uc3QgTkVTVEVEX0NMT1VEX0FTU0VNQkxZX1NZTSA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2N4LWFwaS5OZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QnKTtcblxuLyoqXG4gKiBBc3NldCBtYW5pZmVzdCBpcyBhIGRlc2NyaXB0aW9uIG9mIGEgc2V0IG9mIGFzc2V0cyB3aGljaCBuZWVkIHRvIGJlIGJ1aWx0IGFuZCBwdWJsaXNoZWRcbiAqL1xuZXhwb3J0IGNsYXNzIE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCBleHRlbmRzIENsb3VkQXJ0aWZhY3Qge1xuICAvKipcbiAgICogQ2hlY2tzIGlmIGBhcnRgIGlzIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuXG4gICAqXG4gICAqIFVzZSB0aGlzIG1ldGhvZCBpbnN0ZWFkIG9mIGBpbnN0YW5jZW9mYCB0byBwcm9wZXJseSBkZXRlY3QgYE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdGBcbiAgICogaW5zdGFuY2VzLCBldmVuIHdoZW4gdGhlIGNvbnN0cnVjdCBsaWJyYXJ5IGlzIHN5bWxpbmtlZC5cbiAgICpcbiAgICogRXhwbGFuYXRpb246IGluIEphdmFTY3JpcHQsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeSBvblxuICAgKiBkaXNrIGFyZSBzZWVuIGFzIGluZGVwZW5kZW50LCBjb21wbGV0ZWx5IGRpZmZlcmVudCBsaWJyYXJpZXMuIEFzIGFcbiAgICogY29uc2VxdWVuY2UsIHRoZSBjbGFzcyBgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0YCBpbiBlYWNoIGNvcHkgb2YgdGhlIGBjeC1hcGlgIGxpYnJhcnlcbiAgICogaXMgc2VlbiBhcyBhIGRpZmZlcmVudCBjbGFzcywgYW5kIGFuIGluc3RhbmNlIG9mIG9uZSBjbGFzcyB3aWxsIG5vdCB0ZXN0IGFzXG4gICAqIGBpbnN0YW5jZW9mYCB0aGUgb3RoZXIgY2xhc3MuIGBucG0gaW5zdGFsbGAgd2lsbCBub3QgY3JlYXRlIGluc3RhbGxhdGlvbnNcbiAgICogbGlrZSB0aGlzLCBidXQgdXNlcnMgbWF5IG1hbnVhbGx5IHN5bWxpbmsgY29uc3RydWN0IGxpYnJhcmllcyB0b2dldGhlciBvclxuICAgKiB1c2UgYSBtb25vcmVwbyB0b29sOiBpbiB0aG9zZSBjYXNlcywgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBgY3gtYXBpYFxuICAgKiBsaWJyYXJ5IGNhbiBiZSBhY2NpZGVudGFsbHkgaW5zdGFsbGVkLCBhbmQgYGluc3RhbmNlb2ZgIHdpbGwgYmVoYXZlXG4gICAqIHVucHJlZGljdGFibHkuIEl0IGlzIHNhZmVzdCB0byBhdm9pZCB1c2luZyBgaW5zdGFuY2VvZmAsIGFuZCB1c2luZ1xuICAgKiB0aGlzIHR5cGUtdGVzdGluZyBtZXRob2QgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0OiBhbnkpOiBhcnQgaXMgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgICByZXR1cm4gYXJ0ICYmIHR5cGVvZiBhcnQgPT09ICdvYmplY3QnICYmIGFydFtORVNURURfQ0xPVURfQVNTRU1CTFlfU1lNXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIGFzc2V0IG1hbmlmZXN0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IG5hbWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5OZXN0ZWRDbG91ZEFzc2VtYmx5UHJvcGVydGllcztcbiAgICB0aGlzLmRpcmVjdG9yeU5hbWUgPSBwcm9wZXJ0aWVzLmRpcmVjdG9yeU5hbWU7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IHByb3BlcnRpZXMuZGlzcGxheU5hbWUgPz8gbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdWxsIHBhdGggdG8gdGhlIG5lc3RlZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBnZXQgZnVsbFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuYXNzZW1ibHkuZGlyZWN0b3J5LCB0aGlzLmRpcmVjdG9yeU5hbWUpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgLyoqXG4gICAqIFRoZSBuZXN0ZWQgQXNzZW1ibHlcbiAgICovXG4gIHJlYWRvbmx5IG5lc3RlZEFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5O1xuXG4gIC8vIERlY2xhcmVkIGluIGEgZGlmZmVyZW50IGZpbGVcbn1cblxuLyoqXG4gKiBNYXJrIGFsbCBpbnN0YW5jZXMgb2YgJ05lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdCdcbiAqXG4gKiBXaHkgbm90IHB1dCB0aGlzIGluIHRoZSBjb25zdHJ1Y3Rvcj8gQmVjYXVzZSB0aGlzIGlzIGEgY2xhc3MgcHJvcGVydHksXG4gKiBub3QgYW4gaW5zdGFuY2UgcHJvcGVydHkuIEl0IGFwcGxpZXMgdG8gYWxsIGluc3RhbmNlcyBvZiB0aGUgY2xhc3MuXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QucHJvdG90eXBlLCBORVNURURfQ0xPVURfQVNTRU1CTFlfU1lNLCB7XG4gIHZhbHVlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgd3JpdGFibGU6IGZhbHNlLFxufSk7XG4iXX0=","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TreeCloudArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst cloud_artifact_1 = require(\"../cloud-artifact\");\nconst error_1 = require(\"../private/error\");\nconst TREE_CLOUD_ARTIFACT_SYM = Symbol.for('@aws-cdk/cx-api.TreeCloudArtifact');\nclass TreeCloudArtifact extends cloud_artifact_1.CloudArtifact {\n /**\n * Checks if `art` is an instance of this class.\n *\n * Use this method instead of `instanceof` to properly detect `TreeCloudArtifact`\n * instances, even when the construct library is symlinked.\n *\n * Explanation: in JavaScript, multiple copies of the `cx-api` library on\n * disk are seen as independent, completely different libraries. As a\n * consequence, the class `TreeCloudArtifact` in each copy of the `cx-api` library\n * is seen as a different class, and an instance of one class will not test as\n * `instanceof` the other class. `npm install` will not create installations\n * like this, but users may manually symlink construct libraries together or\n * use a monorepo tool: in those cases, multiple copies of the `cx-api`\n * library can be accidentally installed, and `instanceof` will behave\n * unpredictably. It is safest to avoid using `instanceof`, and using\n * this type-testing method instead.\n */\n static isTreeCloudArtifact(art) {\n return art && typeof art === 'object' && art[TREE_CLOUD_ARTIFACT_SYM];\n }\n constructor(assembly, name, artifact) {\n super(assembly, name, artifact);\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, TreeCloudArtifact);\n }\n throw error;\n }\n const properties = (this.manifest.properties || {});\n if (!properties.file) {\n throw new error_1.CloudAssemblyError('Invalid TreeCloudArtifact. Missing \"file\" property');\n }\n this.file = properties.file;\n }\n}\nexports.TreeCloudArtifact = TreeCloudArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nTreeCloudArtifact[_a] = { fqn: \"@aws-cdk/cx-api.TreeCloudArtifact\", version: \"2.212.0\" };\n/**\n * Mark all instances of 'TreeCloudArtifact'\n *\n * Why not put this in the constructor? Because this is a class property,\n * not an instance property. It applies to all instances of the class.\n */\nObject.defineProperty(TreeCloudArtifact.prototype, TREE_CLOUD_ARTIFACT_SYM, {\n value: true,\n enumerable: false,\n writable: false,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jbG91ZC1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUtY2xvdWQtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esc0RBQWtEO0FBRWxELDRDQUFzRDtBQUV0RCxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUVoRixNQUFhLGlCQUFrQixTQUFRLDhCQUFhO0lBQ2xEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVE7UUFDeEMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBQ3ZFO0lBSUQsWUFBWSxRQUF1QixFQUFFLElBQVksRUFBRSxRQUFtQztRQUNwRixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzs7Ozs7OytDQXpCdkIsaUJBQWlCOzs7O1FBMkIxQixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBb0MsQ0FBQztRQUN2RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7S0FDN0I7O0FBaENILDhDQWlDQzs7O0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRTtJQUMxRSxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEFydGlmYWN0IH0gZnJvbSAnLi4vY2xvdWQtYXJ0aWZhY3QnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uL3ByaXZhdGUvZXJyb3InO1xuXG5jb25zdCBUUkVFX0NMT1VEX0FSVElGQUNUX1NZTSA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2N4LWFwaS5UcmVlQ2xvdWRBcnRpZmFjdCcpO1xuXG5leHBvcnQgY2xhc3MgVHJlZUNsb3VkQXJ0aWZhY3QgZXh0ZW5kcyBDbG91ZEFydGlmYWN0IHtcbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgYXJ0YCBpcyBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgaW5zdGVhZCBvZiBgaW5zdGFuY2VvZmAgdG8gcHJvcGVybHkgZGV0ZWN0IGBUcmVlQ2xvdWRBcnRpZmFjdGBcbiAgICogaW5zdGFuY2VzLCBldmVuIHdoZW4gdGhlIGNvbnN0cnVjdCBsaWJyYXJ5IGlzIHN5bWxpbmtlZC5cbiAgICpcbiAgICogRXhwbGFuYXRpb246IGluIEphdmFTY3JpcHQsIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeSBvblxuICAgKiBkaXNrIGFyZSBzZWVuIGFzIGluZGVwZW5kZW50LCBjb21wbGV0ZWx5IGRpZmZlcmVudCBsaWJyYXJpZXMuIEFzIGFcbiAgICogY29uc2VxdWVuY2UsIHRoZSBjbGFzcyBgVHJlZUNsb3VkQXJ0aWZhY3RgIGluIGVhY2ggY29weSBvZiB0aGUgYGN4LWFwaWAgbGlicmFyeVxuICAgKiBpcyBzZWVuIGFzIGEgZGlmZmVyZW50IGNsYXNzLCBhbmQgYW4gaW5zdGFuY2Ugb2Ygb25lIGNsYXNzIHdpbGwgbm90IHRlc3QgYXNcbiAgICogYGluc3RhbmNlb2ZgIHRoZSBvdGhlciBjbGFzcy4gYG5wbSBpbnN0YWxsYCB3aWxsIG5vdCBjcmVhdGUgaW5zdGFsbGF0aW9uc1xuICAgKiBsaWtlIHRoaXMsIGJ1dCB1c2VycyBtYXkgbWFudWFsbHkgc3ltbGluayBjb25zdHJ1Y3QgbGlicmFyaWVzIHRvZ2V0aGVyIG9yXG4gICAqIHVzZSBhIG1vbm9yZXBvIHRvb2w6IGluIHRob3NlIGNhc2VzLCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGBjeC1hcGlgXG4gICAqIGxpYnJhcnkgY2FuIGJlIGFjY2lkZW50YWxseSBpbnN0YWxsZWQsIGFuZCBgaW5zdGFuY2VvZmAgd2lsbCBiZWhhdmVcbiAgICogdW5wcmVkaWN0YWJseS4gSXQgaXMgc2FmZXN0IHRvIGF2b2lkIHVzaW5nIGBpbnN0YW5jZW9mYCwgYW5kIHVzaW5nXG4gICAqIHRoaXMgdHlwZS10ZXN0aW5nIG1ldGhvZCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc1RyZWVDbG91ZEFydGlmYWN0KGFydDogYW55KTogYXJ0IGlzIFRyZWVDbG91ZEFydGlmYWN0IHtcbiAgICByZXR1cm4gYXJ0ICYmIHR5cGVvZiBhcnQgPT09ICdvYmplY3QnICYmIGFydFtUUkVFX0NMT1VEX0FSVElGQUNUX1NZTV07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZmlsZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBuYW1lOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXNzZW1ibHksIG5hbWUsIGFydGlmYWN0KTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSAodGhpcy5tYW5pZmVzdC5wcm9wZXJ0aWVzIHx8IHt9KSBhcyBjeHNjaGVtYS5UcmVlQXJ0aWZhY3RQcm9wZXJ0aWVzO1xuICAgIGlmICghcHJvcGVydGllcy5maWxlKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdJbnZhbGlkIFRyZWVDbG91ZEFydGlmYWN0LiBNaXNzaW5nIFwiZmlsZVwiIHByb3BlcnR5Jyk7XG4gICAgfVxuICAgIHRoaXMuZmlsZSA9IHByb3BlcnRpZXMuZmlsZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hcmsgYWxsIGluc3RhbmNlcyBvZiAnVHJlZUNsb3VkQXJ0aWZhY3QnXG4gKlxuICogV2h5IG5vdCBwdXQgdGhpcyBpbiB0aGUgY29uc3RydWN0b3I/IEJlY2F1c2UgdGhpcyBpcyBhIGNsYXNzIHByb3BlcnR5LFxuICogbm90IGFuIGluc3RhbmNlIHByb3BlcnR5LiBJdCBhcHBsaWVzIHRvIGFsbCBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVHJlZUNsb3VkQXJ0aWZhY3QucHJvdG90eXBlLCBUUkVFX0NMT1VEX0FSVElGQUNUX1NZTSwge1xuICB2YWx1ZTogdHJ1ZSxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIHdyaXRhYmxlOiBmYWxzZSxcbn0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASSET_PREFIX_SEPARATOR = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = exports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = exports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = exports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = exports.ASSET_RESOURCE_METADATA_PATH_KEY = exports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = void 0;\n/**\n * If this is set in the context, the aws:asset:xxx metadata entries will not be\n * added to the template. This is used, for example, when we run integrationt\n * tests.\n */\nexports.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT = 'aws:cdk:enable-asset-metadata';\n/**\n * Metadata added to the CloudFormation template entries that map local assets\n * to resources.\n */\nexports.ASSET_RESOURCE_METADATA_PATH_KEY = 'aws:asset:path';\nexports.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY = 'aws:asset:dockerfile-path';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY = 'aws:asset:docker-build-args';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SECRETS_KEY = 'aws:asset:docker-build-secrets';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_SSH_KEY = 'aws:asset:docker-build-ssh';\nexports.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY = 'aws:asset:docker-build-target';\nexports.ASSET_RESOURCE_METADATA_PROPERTY_KEY = 'aws:asset:property';\nexports.ASSET_RESOURCE_METADATA_IS_BUNDLED_KEY = 'aws:asset:is-bundled';\nexports.ASSET_RESOURCE_METADATA_DOCKER_OUTPUTS_KEY = 'aws:asset:docker-outputs';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_FROM_KEY = 'aws:asset:docker-cache-from';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_TO_KEY = 'aws:asset:docker-cache-to';\nexports.ASSET_RESOURCE_METADATA_DOCKER_CACHE_DISABLED_KEY = 'aws:asset:docker-cache-disabled';\n/**\n * Separator string that separates the prefix separator from the object key separator.\n *\n * Asset keys will look like:\n *\n * /assets/MyConstruct12345678/||abcdef12345.zip\n *\n * This allows us to encode both the prefix and the full location in a single\n * CloudFormation Template Parameter.\n */\nexports.ASSET_PREFIX_SEPARATOR = '||';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDVSxRQUFBLHVDQUF1QyxHQUFHLCtCQUErQixDQUFDO0FBRXZGOzs7R0FHRztBQUNVLFFBQUEsZ0NBQWdDLEdBQUcsZ0JBQWdCLENBQUM7QUFDcEQsUUFBQSwyQ0FBMkMsR0FBRywyQkFBMkIsQ0FBQztBQUMxRSxRQUFBLDZDQUE2QyxHQUFHLDZCQUE2QixDQUFDO0FBQzlFLFFBQUEsZ0RBQWdELEdBQUcsZ0NBQWdDLENBQUM7QUFDcEYsUUFBQSw0Q0FBNEMsR0FBRyw0QkFBNEIsQ0FBQztBQUM1RSxRQUFBLCtDQUErQyxHQUFHLCtCQUErQixDQUFDO0FBQ2xGLFFBQUEsb0NBQW9DLEdBQUcsb0JBQW9CLENBQUM7QUFDNUQsUUFBQSxzQ0FBc0MsR0FBRyxzQkFBc0IsQ0FBQztBQUNoRSxRQUFBLDBDQUEwQyxHQUFHLDBCQUEwQixDQUFDO0FBQ3hFLFFBQUEsNkNBQTZDLEdBQUcsNkJBQTZCLENBQUM7QUFDOUUsUUFBQSwyQ0FBMkMsR0FBRywyQkFBMkIsQ0FBQztBQUMxRSxRQUFBLGlEQUFpRCxHQUFHLGlDQUFpQyxDQUFDO0FBRW5HOzs7Ozs7Ozs7R0FTRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJZiB0aGlzIGlzIHNldCBpbiB0aGUgY29udGV4dCwgdGhlIGF3czphc3NldDp4eHggbWV0YWRhdGEgZW50cmllcyB3aWxsIG5vdCBiZVxuICogYWRkZWQgdG8gdGhlIHRlbXBsYXRlLiBUaGlzIGlzIHVzZWQsIGZvciBleGFtcGxlLCB3aGVuIHdlIHJ1biBpbnRlZ3JhdGlvbnRcbiAqIHRlc3RzLlxuICovXG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRU5BQkxFRF9DT05URVhUID0gJ2F3czpjZGs6ZW5hYmxlLWFzc2V0LW1ldGFkYXRhJztcblxuLyoqXG4gKiBNZXRhZGF0YSBhZGRlZCB0byB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZW50cmllcyB0aGF0IG1hcCBsb2NhbCBhc3NldHNcbiAqIHRvIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX1BBVEhfS0VZID0gJ2F3czphc3NldDpwYXRoJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJGSUxFX1BBVEhfS0VZID0gJ2F3czphc3NldDpkb2NrZXJmaWxlLXBhdGgnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9BUkdTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLWFyZ3MnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9TRUNSRVRTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLXNlY3JldHMnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9CVUlMRF9TU0hfS0VZID0gJ2F3czphc3NldDpkb2NrZXItYnVpbGQtc3NoJztcbmV4cG9ydCBjb25zdCBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9ET0NLRVJfQlVJTERfVEFSR0VUX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWJ1aWxkLXRhcmdldCc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfUFJPUEVSVFlfS0VZID0gJ2F3czphc3NldDpwcm9wZXJ0eSc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfSVNfQlVORExFRF9LRVkgPSAnYXdzOmFzc2V0OmlzLWJ1bmRsZWQnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9PVVRQVVRTX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLW91dHB1dHMnO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9DQUNIRV9GUk9NX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWNhY2hlLWZyb20nO1xuZXhwb3J0IGNvbnN0IEFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0RPQ0tFUl9DQUNIRV9UT19LRVkgPSAnYXdzOmFzc2V0OmRvY2tlci1jYWNoZS10byc7XG5leHBvcnQgY29uc3QgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRE9DS0VSX0NBQ0hFX0RJU0FCTEVEX0tFWSA9ICdhd3M6YXNzZXQ6ZG9ja2VyLWNhY2hlLWRpc2FibGVkJztcblxuLyoqXG4gKiBTZXBhcmF0b3Igc3RyaW5nIHRoYXQgc2VwYXJhdGVzIHRoZSBwcmVmaXggc2VwYXJhdG9yIGZyb20gdGhlIG9iamVjdCBrZXkgc2VwYXJhdG9yLlxuICpcbiAqIEFzc2V0IGtleXMgd2lsbCBsb29rIGxpa2U6XG4gKlxuICogICAgL2Fzc2V0cy9NeUNvbnN0cnVjdDEyMzQ1Njc4L3x8YWJjZGVmMTIzNDUuemlwXG4gKlxuICogVGhpcyBhbGxvd3MgdXMgdG8gZW5jb2RlIGJvdGggdGhlIHByZWZpeCBhbmQgdGhlIGZ1bGwgbG9jYXRpb24gaW4gYSBzaW5nbGVcbiAqIENsb3VkRm9ybWF0aW9uIFRlbXBsYXRlIFBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IEFTU0VUX1BSRUZJWF9TRVBBUkFUT1IgPSAnfHwnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst asset_manifest_artifact_1 = require(\"./artifacts/asset-manifest-artifact\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\n/**\n * Add the 'fromManifest' factory function\n *\n * It is defined in a separate file to avoid circular dependencies between 'cloud-artifact.ts'\n * and all of its subclass files.\n */\ncloud_artifact_1.CloudArtifact.fromManifest = function fromManifest(assembly, id, artifact) {\n switch (artifact.type) {\n case cxschema.ArtifactType.AWS_CLOUDFORMATION_STACK:\n return new cloudformation_artifact_1.CloudFormationStackArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.CDK_TREE:\n return new tree_cloud_artifact_1.TreeCloudArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.ASSET_MANIFEST:\n return new asset_manifest_artifact_1.AssetManifestArtifact(assembly, id, artifact);\n case cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY:\n return new nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact(assembly, id, artifact);\n default:\n return undefined;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QtYXVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtYXJ0aWZhY3QtYXVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUZBQTRFO0FBQzVFLGlGQUFrRjtBQUNsRiwrRkFBeUY7QUFDekYseUVBQW9FO0FBQ3BFLHFEQUFpRDtBQUVqRCwyREFBMkQ7QUFFM0Q7Ozs7O0dBS0c7QUFDSCw4QkFBYSxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FDaEQsUUFBdUIsRUFDdkIsRUFBVSxFQUNWLFFBQW1DO0lBRW5DLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFlBQVksQ0FBQyx3QkFBd0I7WUFDakQsT0FBTyxJQUFJLHFEQUEyQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDakMsT0FBTyxJQUFJLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWM7WUFDdkMsT0FBTyxJQUFJLCtDQUFxQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsS0FBSyxRQUFRLENBQUMsWUFBWSxDQUFDLHFCQUFxQjtZQUM5QyxPQUFPLElBQUksNERBQTJCLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRTtZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NldE1hbmlmZXN0QXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9hc3NldC1tYW5pZmVzdC1hcnRpZmFjdCc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9jbG91ZGZvcm1hdGlvbi1hcnRpZmFjdCc7XG5pbXBvcnQgeyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9uZXN0ZWQtY2xvdWQtYXNzZW1ibHktYXJ0aWZhY3QnO1xuaW1wb3J0IHsgVHJlZUNsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy90cmVlLWNsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5cbi8qKlxuICogQWRkIHRoZSAnZnJvbU1hbmlmZXN0JyBmYWN0b3J5IGZ1bmN0aW9uXG4gKlxuICogSXQgaXMgZGVmaW5lZCBpbiBhIHNlcGFyYXRlIGZpbGUgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGJldHdlZW4gJ2Nsb3VkLWFydGlmYWN0LnRzJ1xuICogYW5kIGFsbCBvZiBpdHMgc3ViY2xhc3MgZmlsZXMuXG4gKi9cbkNsb3VkQXJ0aWZhY3QuZnJvbU1hbmlmZXN0ID0gZnVuY3Rpb24gZnJvbU1hbmlmZXN0KFxuICBhc3NlbWJseTogQ2xvdWRBc3NlbWJseSxcbiAgaWQ6IHN0cmluZyxcbiAgYXJ0aWZhY3Q6IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QsXG4pOiBDbG91ZEFydGlmYWN0IHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChhcnRpZmFjdC50eXBlKSB7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQVdTX0NMT1VERk9STUFUSU9OX1NUQUNLOlxuICAgICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuQ0RLX1RSRUU6XG4gICAgICByZXR1cm4gbmV3IFRyZWVDbG91ZEFydGlmYWN0KGFzc2VtYmx5LCBpZCwgYXJ0aWZhY3QpO1xuICAgIGNhc2UgY3hzY2hlbWEuQXJ0aWZhY3RUeXBlLkFTU0VUX01BTklGRVNUOlxuICAgICAgcmV0dXJuIG5ldyBBc3NldE1hbmlmZXN0QXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdFR5cGUuTkVTVEVEX0NMT1VEX0FTU0VNQkxZOlxuICAgICAgcmV0dXJuIG5ldyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXNzZW1ibHksIGlkLCBhcnRpZmFjdCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXX0=","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudArtifact = void 0;\nconst jsiiDeprecationWarnings = require(\"../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst metadata_1 = require(\"./metadata\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst error_1 = require(\"./private/error\");\n/**\n * Represents an artifact within a cloud assembly.\n */\nclass CloudArtifact {\n /**\n * Returns a subclass of `CloudArtifact` based on the artifact type defined in the artifact manifest.\n *\n * @param assembly The cloud assembly from which to load the artifact\n * @param id The artifact ID\n * @param artifact The artifact manifest\n * @returns the `CloudArtifact` that matches the artifact type or `undefined` if it's an artifact type that is unrecognized by this module.\n */\n static fromManifest(assembly, id, artifact) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.fromManifest);\n }\n throw error;\n }\n // Implementation is defined in a separate file to break cyclic dependencies\n void (assembly), void (id), void (artifact);\n throw new error_1.CloudAssemblyError('Implementation not overridden yet');\n }\n constructor(assembly, id, manifest) {\n this.assembly = assembly;\n this.id = id;\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssembly(assembly);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, CloudArtifact);\n }\n throw error;\n }\n this.manifest = manifest;\n this.messages = this.renderMessages();\n this._dependencyIDs = manifest.dependencies || [];\n }\n /**\n * Returns all the artifacts that this artifact depends on.\n */\n get dependencies() {\n if (this._deps) {\n return this._deps;\n }\n this._deps = this._dependencyIDs.map(id => {\n const dep = this.assembly.tryGetArtifact(id);\n if (!dep) {\n throw new error_1.CloudAssemblyError(`Artifact ${this.id} depends on non-existing artifact ${id}`);\n }\n return dep;\n });\n return this._deps;\n }\n /**\n * @returns all the metadata entries of a specific type in this artifact.\n */\n findMetadataByType(type) {\n const result = new Array();\n for (const path of Object.keys(this.manifest.metadata || {})) {\n for (const entry of (this.manifest.metadata || {})[path]) {\n if (entry.type === type) {\n result.push({ path, ...entry });\n }\n }\n }\n return result;\n }\n renderMessages() {\n const messages = new Array();\n for (const [id, metadata] of Object.entries(this.manifest.metadata || {})) {\n for (const entry of metadata) {\n let level;\n switch (entry.type) {\n case cxschema.ArtifactMetadataEntryType.WARN:\n level = metadata_1.SynthesisMessageLevel.WARNING;\n break;\n case cxschema.ArtifactMetadataEntryType.ERROR:\n level = metadata_1.SynthesisMessageLevel.ERROR;\n break;\n case cxschema.ArtifactMetadataEntryType.INFO:\n level = metadata_1.SynthesisMessageLevel.INFO;\n break;\n default:\n continue;\n }\n messages.push({ level, entry, id });\n }\n }\n return messages;\n }\n /**\n * An identifier that shows where this artifact is located in the tree\n * of nested assemblies, based on their manifests. Defaults to the normal\n * id. Should only be used in user interfaces.\n */\n get hierarchicalId() {\n return this.manifest.displayName ?? this.id;\n }\n}\nexports.CloudArtifact = CloudArtifact;\n_a = JSII_RTTI_SYMBOL_1;\nCloudArtifact[_a] = { fqn: \"@aws-cdk/cx-api.CloudArtifact\", version: \"2.212.0\" };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx5Q0FBMEY7QUFDMUYsMkRBQTJEO0FBQzNELDJDQUFxRDtBQThCckQ7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBdUIsRUFBRSxFQUFVLEVBQUUsUUFBbUM7Ozs7Ozs7Ozs7UUFDakcsNEVBQTRFO1FBQzVFLEtBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0tBQ25FO0lBdUJELFlBQXNDLFFBQXVCLEVBQWtCLEVBQVUsRUFBRSxRQUFtQztRQUF4RixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBQWtCLE9BQUUsR0FBRixFQUFFLENBQVE7Ozs7OzsrQ0FwQzlFLGFBQWE7Ozs7UUFxQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7S0FDbkQ7SUFFRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN4QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxJQUFJLDBCQUFrQixDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUscUNBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0YsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDbkI7SUFFRDs7T0FFRztJQUNJLGtCQUFrQixDQUFDLElBQVk7UUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7UUFDaEQsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDN0QsS0FBSyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxFQUFvQixDQUFDO1FBRS9DLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0UsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxLQUE0QixDQUFDO2dCQUNqQyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbkIsS0FBSyxRQUFRLENBQUMseUJBQXlCLENBQUMsSUFBSTt3QkFDMUMsS0FBSyxHQUFHLGdDQUFxQixDQUFDLE9BQU8sQ0FBQzt3QkFDdEMsTUFBTTtvQkFDUixLQUFLLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLO3dCQUMzQyxLQUFLLEdBQUcsZ0NBQXFCLENBQUMsS0FBSyxDQUFDO3dCQUNwQyxNQUFNO29CQUNSLEtBQUssUUFBUSxDQUFDLHlCQUF5QixDQUFDLElBQUk7d0JBQzFDLEtBQUssR0FBRyxnQ0FBcUIsQ0FBQyxJQUFJLENBQUM7d0JBQ25DLE1BQU07b0JBQ1I7d0JBQ0UsU0FBUztnQkFDYixDQUFDO2dCQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUVEOzs7O09BSUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO0tBQzdDOztBQTVHSCxzQ0E2R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkQXNzZW1ibHkgfSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IE1ldGFkYXRhRW50cnlSZXN1bHQsIFN5bnRoZXNpc01lc3NhZ2UsIFN5bnRoZXNpc01lc3NhZ2VMZXZlbCB9IGZyb20gJy4vbWV0YWRhdGEnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4vcHJpdmF0ZS9lcnJvcic7XG5cbi8qKlxuICogQXJ0aWZhY3QgcHJvcGVydGllcyBmb3IgQ2xvdWRGb3JtYXRpb24gc3RhY2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nsb3VkRm9ybWF0aW9uU3RhY2tQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIEEgZmlsZSByZWxhdGl2ZSB0byB0aGUgYXNzZW1ibHkgcm9vdCB3aGljaCBjb250YWlucyB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZm9yIHRoaXMgc3RhY2suXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZUZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWVzIGZvciBDbG91ZEZvcm1hdGlvbiBzdGFjayBwYXJhbWV0ZXJzIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB3aGVuIHRoZSBzdGFjayBpcyBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRvIHVzZSBmb3IgdGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrLlxuICAgKiBAZGVmYXVsdCAtIG5hbWUgZGVyaXZlZCBmcm9tIGFydGlmYWN0IElEXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gZm9yIHRoaXMgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXJ0aWZhY3Qgd2l0aGluIGEgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEFydGlmYWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdWJjbGFzcyBvZiBgQ2xvdWRBcnRpZmFjdGAgYmFzZWQgb24gdGhlIGFydGlmYWN0IHR5cGUgZGVmaW5lZCBpbiB0aGUgYXJ0aWZhY3QgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBwYXJhbSBhc3NlbWJseSBUaGUgY2xvdWQgYXNzZW1ibHkgZnJvbSB3aGljaCB0byBsb2FkIHRoZSBhcnRpZmFjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGFydGlmYWN0IElEXG4gICAqIEBwYXJhbSBhcnRpZmFjdCBUaGUgYXJ0aWZhY3QgbWFuaWZlc3RcbiAgICogQHJldHVybnMgdGhlIGBDbG91ZEFydGlmYWN0YCB0aGF0IG1hdGNoZXMgdGhlIGFydGlmYWN0IHR5cGUgb3IgYHVuZGVmaW5lZGAgaWYgaXQncyBhbiBhcnRpZmFjdCB0eXBlIHRoYXQgaXMgdW5yZWNvZ25pemVkIGJ5IHRoaXMgbW9kdWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTWFuaWZlc3QoYXNzZW1ibHk6IENsb3VkQXNzZW1ibHksIGlkOiBzdHJpbmcsIGFydGlmYWN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgLy8gSW1wbGVtZW50YXRpb24gaXMgZGVmaW5lZCBpbiBhIHNlcGFyYXRlIGZpbGUgdG8gYnJlYWsgY3ljbGljIGRlcGVuZGVuY2llc1xuICAgIHZvaWQoYXNzZW1ibHkpLCB2b2lkKGlkKSwgdm9pZChhcnRpZmFjdCk7XG4gICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcignSW1wbGVtZW50YXRpb24gbm90IG92ZXJyaWRkZW4geWV0Jyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0J3MgbWFuaWZlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYW5pZmVzdDogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdDtcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBtZXNzYWdlcyBleHRyYWN0ZWQgZnJvbSB0aGUgYXJ0aWZhY3QncyBtZXRhZGF0YS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXNzYWdlczogU3ludGhlc2lzTWVzc2FnZVtdO1xuXG4gIC8qKlxuICAgKiBJRHMgb2YgYWxsIGRlcGVuZGVuY2llcy4gVXNlZCB3aGVuIHRvcG9sb2dpY2FsbHkgc29ydGluZyB0aGUgYXJ0aWZhY3RzIHdpdGhpbiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IF9kZXBlbmRlbmN5SURzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2FjaGUgb2YgcmVzb2x2ZWQgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGVwcz86IENsb3VkQXJ0aWZhY3RbXTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZywgbWFuaWZlc3Q6IGN4c2NoZW1hLkFydGlmYWN0TWFuaWZlc3QpIHtcbiAgICB0aGlzLm1hbmlmZXN0ID0gbWFuaWZlc3Q7XG4gICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMucmVuZGVyTWVzc2FnZXMoKTtcbiAgICB0aGlzLl9kZXBlbmRlbmN5SURzID0gbWFuaWZlc3QuZGVwZW5kZW5jaWVzIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBhcnRpZmFjdHMgdGhhdCB0aGlzIGFydGlmYWN0IGRlcGVuZHMgb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRlcGVuZGVuY2llcygpOiBDbG91ZEFydGlmYWN0W10ge1xuICAgIGlmICh0aGlzLl9kZXBzKSB7IHJldHVybiB0aGlzLl9kZXBzOyB9XG5cbiAgICB0aGlzLl9kZXBzID0gdGhpcy5fZGVwZW5kZW5jeUlEcy5tYXAoaWQgPT4ge1xuICAgICAgY29uc3QgZGVwID0gdGhpcy5hc3NlbWJseS50cnlHZXRBcnRpZmFjdChpZCk7XG4gICAgICBpZiAoIWRlcCkge1xuICAgICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBBcnRpZmFjdCAke3RoaXMuaWR9IGRlcGVuZHMgb24gbm9uLWV4aXN0aW5nIGFydGlmYWN0ICR7aWR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVwO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2RlcHM7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHRoZSBtZXRhZGF0YSBlbnRyaWVzIG9mIGEgc3BlY2lmaWMgdHlwZSBpbiB0aGlzIGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIGZpbmRNZXRhZGF0YUJ5VHlwZSh0eXBlOiBzdHJpbmcpOiBNZXRhZGF0YUVudHJ5UmVzdWx0W10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxNZXRhZGF0YUVudHJ5UmVzdWx0PigpO1xuICAgIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyh0aGlzLm1hbmlmZXN0Lm1ldGFkYXRhIHx8IHt9KSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiAodGhpcy5tYW5pZmVzdC5tZXRhZGF0YSB8fCB7fSlbcGF0aF0pIHtcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IHR5cGUpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh7IHBhdGgsIC4uLmVudHJ5IH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlck1lc3NhZ2VzKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gbmV3IEFycmF5PFN5bnRoZXNpc01lc3NhZ2U+KCk7XG5cbiAgICBmb3IgKGNvbnN0IFtpZCwgbWV0YWRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3QubWV0YWRhdGEgfHwgeyB9KSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBtZXRhZGF0YSkge1xuICAgICAgICBsZXQgbGV2ZWw6IFN5bnRoZXNpc01lc3NhZ2VMZXZlbDtcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLldBUk46XG4gICAgICAgICAgICBsZXZlbCA9IFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5XQVJOSU5HO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBjeHNjaGVtYS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLkVSUk9SOlxuICAgICAgICAgICAgbGV2ZWwgPSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwuRVJST1I7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuSU5GTzpcbiAgICAgICAgICAgIGxldmVsID0gU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk87XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbGV2ZWwsIGVudHJ5LCBpZCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gIH1cblxuICAvKipcbiAgICogQW4gaWRlbnRpZmllciB0aGF0IHNob3dzIHdoZXJlIHRoaXMgYXJ0aWZhY3QgaXMgbG9jYXRlZCBpbiB0aGUgdHJlZVxuICAgKiBvZiBuZXN0ZWQgYXNzZW1ibGllcywgYmFzZWQgb24gdGhlaXIgbWFuaWZlc3RzLiBEZWZhdWx0cyB0byB0aGUgbm9ybWFsXG4gICAqIGlkLiBTaG91bGQgb25seSBiZSB1c2VkIGluIHVzZXIgaW50ZXJmYWNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGllcmFyY2hpY2FsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYW5pZmVzdC5kaXNwbGF5TmFtZSA/PyB0aGlzLmlkO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyBuilder = exports.CloudAssembly = void 0;\nconst jsiiDeprecationWarnings = require(\"../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst cloudformation_artifact_1 = require(\"./artifacts/cloudformation-artifact\");\nconst nested_cloud_assembly_artifact_1 = require(\"./artifacts/nested-cloud-assembly-artifact\");\nconst tree_cloud_artifact_1 = require(\"./artifacts/tree-cloud-artifact\");\nconst cloud_artifact_1 = require(\"./cloud-artifact\");\nconst toposort_1 = require(\"./toposort\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst error_1 = require(\"./private/error\");\nconst CLOUD_ASSEMBLY_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssembly');\n/**\n * The name of the root manifest file of the assembly.\n */\nconst MANIFEST_FILE = 'manifest.json';\n/**\n * Represents a deployable cloud application.\n */\nclass CloudAssembly {\n /**\n * Return whether the given object is a CloudAssembly.\n *\n * We do attribute detection since we can't reliably use 'instanceof'.\n */\n static isCloudAssembly(x) {\n return x !== null && typeof (x) === 'object' && CLOUD_ASSEMBLY_SYMBOL in x;\n }\n /**\n * Reads a cloud assembly from the specified directory.\n * @param directory The root directory of the assembly.\n */\n constructor(directory, loadOptions) {\n this.directory = directory;\n this.manifest = cxschema.Manifest.loadAssemblyManifest(path.join(directory, MANIFEST_FILE), loadOptions);\n this.version = this.manifest.version;\n this.artifacts = this.renderArtifacts(loadOptions?.topoSort ?? true);\n this.runtime = this.manifest.runtime || { libraries: {} };\n Object.defineProperty(this, CLOUD_ASSEMBLY_SYMBOL, { value: true });\n // force validation of deps by accessing 'depends' on all artifacts\n this.validateDeps();\n }\n /**\n * Attempts to find an artifact with a specific identity.\n * @returns A `CloudArtifact` object or `undefined` if the artifact does not exist in this assembly.\n * @param id The artifact ID\n */\n tryGetArtifact(id) {\n return this.artifacts.find(a => a.id === id);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * Will only search the current assembly.\n *\n * @param stackName the name of the CloudFormation stack.\n * @throws if there is no stack artifact by that name\n * @throws if there is more than one stack with the same stack name. You can\n * use `getStackArtifact(stack.artifactId)` instead.\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackByName(stackName) {\n const artifacts = this.artifacts.filter(a => a instanceof cloudformation_artifact_1.CloudFormationStackArtifact && a.stackName === stackName);\n if (!artifacts || artifacts.length === 0) {\n throw new error_1.CloudAssemblyError(`Unable to find stack with stack name \"${stackName}\"`);\n }\n if (artifacts.length > 1) {\n // eslint-disable-next-line max-len\n throw new error_1.CloudAssemblyError(`There are multiple stacks with the stack name \"${stackName}\" (${artifacts.map(a => a.id).join(',')}). Use \"getStackArtifact(id)\" instead`);\n }\n return artifacts[0];\n }\n /**\n * Returns a CloudFormation stack artifact by name from this assembly.\n * @deprecated renamed to `getStackByName` (or `getStackArtifact(id)`)\n */\n getStack(stackName) {\n try {\n jsiiDeprecationWarnings.print(\"@aws-cdk/cx-api.CloudAssembly#getStack\", \"renamed to `getStackByName` (or `getStackArtifact(id)`)\");\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.getStack);\n }\n throw error;\n }\n return this.getStackByName(stackName);\n }\n /**\n * Returns a CloudFormation stack artifact from this assembly.\n *\n * @param artifactId the artifact id of the stack (can be obtained through `stack.artifactId`).\n * @throws if there is no stack artifact with that id\n * @returns a `CloudFormationStackArtifact` object.\n */\n getStackArtifact(artifactId) {\n const artifact = this.tryGetArtifactRecursively(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof cloudformation_artifact_1.CloudFormationStackArtifact)) {\n throw new error_1.CloudAssemblyError(`Artifact ${artifactId} is not a CloudFormation stack`);\n }\n return artifact;\n }\n tryGetArtifactRecursively(artifactId) {\n return this.stacksRecursively.find(a => a.id === artifactId);\n }\n /**\n * Returns all the stacks, including the ones in nested assemblies\n */\n get stacksRecursively() {\n function search(stackArtifacts, assemblies) {\n if (assemblies.length === 0) {\n return stackArtifacts;\n }\n const [head, ...tail] = assemblies;\n const nestedAssemblies = head.nestedAssemblies.map(asm => asm.nestedAssembly);\n return search(stackArtifacts.concat(head.stacks), tail.concat(nestedAssemblies));\n }\n return search([], [this]);\n }\n /**\n * Returns a nested assembly artifact.\n *\n * @param artifactId The artifact ID of the nested assembly\n */\n getNestedAssemblyArtifact(artifactId) {\n const artifact = this.tryGetArtifact(artifactId);\n if (!artifact) {\n throw new error_1.CloudAssemblyError(`Unable to find artifact with id \"${artifactId}\"`);\n }\n if (!(artifact instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact)) {\n throw new error_1.CloudAssemblyError(`Found artifact '${artifactId}' but it's not a nested cloud assembly`);\n }\n return artifact;\n }\n /**\n * Returns a nested assembly.\n *\n * @param artifactId The artifact ID of the nested assembly\n */\n getNestedAssembly(artifactId) {\n return this.getNestedAssemblyArtifact(artifactId).nestedAssembly;\n }\n /**\n * Returns the tree metadata artifact from this assembly.\n * @throws if there is no metadata artifact by that name\n * @returns a `TreeCloudArtifact` object if there is one defined in the manifest, `undefined` otherwise.\n */\n tree() {\n const trees = this.artifacts.filter(a => a.manifest.type === cxschema.ArtifactType.CDK_TREE);\n if (trees.length === 0) {\n return undefined;\n }\n else if (trees.length > 1) {\n throw new error_1.CloudAssemblyError(`Multiple artifacts of type ${cxschema.ArtifactType.CDK_TREE} found in manifest`);\n }\n const tree = trees[0];\n if (!(tree instanceof tree_cloud_artifact_1.TreeCloudArtifact)) {\n throw new error_1.CloudAssemblyError('\"Tree\" artifact is not of expected type');\n }\n return tree;\n }\n /**\n * @returns all the CloudFormation stack artifacts that are included in this assembly.\n */\n get stacks() {\n return this.artifacts.filter(isCloudFormationStackArtifact);\n function isCloudFormationStackArtifact(x) {\n return x instanceof cloudformation_artifact_1.CloudFormationStackArtifact;\n }\n }\n /**\n * The nested assembly artifacts in this assembly\n */\n get nestedAssemblies() {\n return this.artifacts.filter(isNestedCloudAssemblyArtifact);\n function isNestedCloudAssemblyArtifact(x) {\n return x instanceof nested_cloud_assembly_artifact_1.NestedCloudAssemblyArtifact;\n }\n }\n validateDeps() {\n for (const artifact of this.artifacts) {\n ignore(artifact.dependencies);\n }\n }\n renderArtifacts(topoSort) {\n const result = new Array();\n for (const [name, artifact] of Object.entries(this.manifest.artifacts || {})) {\n const cloudartifact = cloud_artifact_1.CloudArtifact.fromManifest(this, name, artifact);\n if (cloudartifact) {\n result.push(cloudartifact);\n }\n }\n return topoSort ? (0, toposort_1.topologicalSort)(result, x => x.id, x => x._dependencyIDs) : result;\n }\n}\nexports.CloudAssembly = CloudAssembly;\n_a = JSII_RTTI_SYMBOL_1;\nCloudAssembly[_a] = { fqn: \"@aws-cdk/cx-api.CloudAssembly\", version: \"2.212.0\" };\n/**\n * Can be used to build a cloud assembly.\n */\nclass CloudAssemblyBuilder {\n /**\n * Initializes a cloud assembly builder.\n * @param outdir The output directory, uses temporary directory if undefined\n */\n constructor(outdir, props = {}) {\n this.artifacts = {};\n this.missing = new Array();\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_CloudAssemblyBuilderProps(props);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, CloudAssemblyBuilder);\n }\n throw error;\n }\n this.outdir = determineOutputDirectory(outdir);\n this.assetOutdir = props.assetOutdir ?? this.outdir;\n this.parentBuilder = props.parentBuilder;\n // we leverage the fact that outdir is long-lived to avoid staging assets into it\n // that were already staged (copying can be expensive). this is achieved by the fact\n // that assets use a source hash as their name. other artifacts, and the manifest itself,\n // will overwrite existing files as needed.\n ensureDirSync(this.outdir);\n }\n /**\n * Adds an artifact into the cloud assembly.\n * @param id The ID of the artifact.\n * @param manifest The artifact manifest\n */\n addArtifact(id, manifest) {\n this.artifacts[id] = filterUndefined(manifest);\n }\n /**\n * Reports that some context is missing in order for this cloud assembly to be fully synthesized.\n * @param missing Missing context information.\n */\n addMissing(missing) {\n if (this.missing.every(m => m.key !== missing.key)) {\n this.missing.push(missing);\n }\n // Also report in parent\n this.parentBuilder?.addMissing(missing);\n }\n /**\n * Finalizes the cloud assembly into the output directory returns a\n * `CloudAssembly` object that can be used to inspect the assembly.\n */\n buildAssembly(options = {}) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_AssemblyBuildOptions(options);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.buildAssembly);\n }\n throw error;\n }\n // explicitly initializing this type will help us detect\n // breaking changes. (For example adding a required property will break compilation).\n let manifest = {\n version: cxschema.Manifest.version(),\n artifacts: this.artifacts,\n runtime: options.runtimeInfo,\n missing: this.missing.length > 0 ? this.missing : undefined,\n };\n // now we can filter\n manifest = filterUndefined(manifest);\n const manifestFilePath = path.join(this.outdir, MANIFEST_FILE);\n cxschema.Manifest.saveAssemblyManifest(manifest, manifestFilePath);\n // \"backwards compatibility\": in order for the old CLI to tell the user they\n // need a new version, we'll emit the legacy manifest with only \"version\".\n // this will result in an error \"CDK Toolkit >= CLOUD_ASSEMBLY_VERSION is required in order to interact with this program.\"\n fs.writeFileSync(path.join(this.outdir, 'cdk.out'), JSON.stringify({ version: manifest.version }));\n return new CloudAssembly(this.outdir);\n }\n /**\n * Creates a nested cloud assembly\n */\n createNestedAssembly(artifactId, displayName) {\n const directoryName = artifactId;\n const innerAsmDir = path.join(this.outdir, directoryName);\n this.addArtifact(artifactId, {\n type: cxschema.ArtifactType.NESTED_CLOUD_ASSEMBLY,\n properties: {\n directoryName,\n displayName,\n },\n });\n return new CloudAssemblyBuilder(innerAsmDir, {\n // Reuse the same asset output directory as the current Casm builder\n assetOutdir: this.assetOutdir,\n parentBuilder: this,\n });\n }\n /**\n * Delete the cloud assembly directory\n */\n delete() {\n fs.rmSync(this.outdir, { recursive: true, force: true });\n }\n}\nexports.CloudAssemblyBuilder = CloudAssemblyBuilder;\n_b = JSII_RTTI_SYMBOL_1;\nCloudAssemblyBuilder[_b] = { fqn: \"@aws-cdk/cx-api.CloudAssemblyBuilder\", version: \"2.212.0\" };\n/**\n * Returns a copy of `obj` without undefined values in maps or arrays.\n */\nfunction filterUndefined(obj) {\n if (Array.isArray(obj)) {\n return obj.filter(x => x !== undefined).map(x => filterUndefined(x));\n }\n if (typeof (obj) === 'object') {\n const ret = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined) {\n continue;\n }\n ret[key] = filterUndefined(value);\n }\n return ret;\n }\n return obj;\n}\nfunction ignore(_x) {\n return;\n}\n/**\n * Turn the given optional output directory into a fixed output directory\n */\nfunction determineOutputDirectory(outdir) {\n return outdir ?? fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out'));\n}\nfunction ensureDirSync(dir) {\n if (fs.existsSync(dir)) {\n if (!fs.statSync(dir).isDirectory()) {\n throw new error_1.CloudAssemblyError(`${dir} must be a directory`);\n }\n }\n else {\n fs.mkdirSync(dir, { recursive: true });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUs3QixpRkFBa0Y7QUFDbEYsK0ZBQXlGO0FBQ3pGLHlFQUFvRTtBQUNwRSxxREFBaUQ7QUFDakQseUNBQTZDO0FBQzdDLDJEQUEyRDtBQUMzRCwyQ0FBcUQ7QUFFckQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFMUU7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBTTtRQUNsQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxxQkFBcUIsSUFBSSxDQUFDLENBQUM7S0FDM0U7SUEyQkQ7OztPQUdHO0lBQ0gsWUFBWSxTQUFpQixFQUFFLFdBQTBDO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUks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LENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsU0FBUztZQUNYLENBQUM7WUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxFQUFPO0lBQ3JCLE9BQU87QUFDVCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLE1BQWU7SUFDL0MsT0FBTyxNQUFNLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsR0FBVztJQUNoQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbi8vIFRoaXMgaXMgZGVsaWJlcmF0ZWx5IGltcG9ydGluZyB0aGUgaW50ZXJmYWNlIGZyb20gdGhlIGV4dGVybmFsIHBhY2thZ2UuXG4vLyBXZSB3YW50IHRoaXMsIHNvIHRoYXQganNpaSBsYW5ndWFnZSBwYWNrYWdlcyBjYW4gZGVwZW5kIG9uIEBhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYVxuLy8gaW5zdGVhZCBvZiBiZWluZyBmb3JjZWQgdG8gdGFrZSBhIGRlcGVuZGVuY3kgb24gdGhlIG11Y2ggbGFyZ2VyIGF3cy1jZGstbGliLlxuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9jbG91ZGZvcm1hdGlvbi1hcnRpZmFjdCc7XG5pbXBvcnQgeyBOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy9uZXN0ZWQtY2xvdWQtYXNzZW1ibHktYXJ0aWZhY3QnO1xuaW1wb3J0IHsgVHJlZUNsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2FydGlmYWN0cy90cmVlLWNsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IENsb3VkQXJ0aWZhY3QgfSBmcm9tICcuL2Nsb3VkLWFydGlmYWN0JztcbmltcG9ydCB7IHRvcG9sb2dpY2FsU29ydCB9IGZyb20gJy4vdG9wb3NvcnQnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4vcHJpdmF0ZS9lcnJvcic7XG5cbmNvbnN0IENMT1VEX0FTU0VNQkxZX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2N4LWFwaS5DbG91ZEFzc2VtYmx5Jyk7XG5cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHJvb3QgbWFuaWZlc3QgZmlsZSBvZiB0aGUgYXNzZW1ibHkuXG4gKi9cbmNvbnN0IE1BTklGRVNUX0ZJTEUgPSAnbWFuaWZlc3QuanNvbic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRlcGxveWFibGUgY2xvdWQgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEFzc2VtYmx5IGltcGxlbWVudHMgSUNsb3VkQXNzZW1ibHkge1xuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhIENsb3VkQXNzZW1ibHkuXG4gICAqXG4gICAqIFdlIGRvIGF0dHJpYnV0ZSBkZXRlY3Rpb24gc2luY2Ugd2UgY2FuJ3QgcmVsaWFibHkgdXNlICdpbnN0YW5jZW9mJy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNDbG91ZEFzc2VtYmx5KHg6IGFueSk6IHggaXMgQ2xvdWRBc3NlbWJseSB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mKHgpID09PSAnb2JqZWN0JyAmJiBDTE9VRF9BU1NFTUJMWV9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NoZW1hIHZlcnNpb24gb2YgdGhlIGFzc2VtYmx5IG1hbmlmZXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogQWxsIGFydGlmYWN0cyBpbmNsdWRlZCBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFydGlmYWN0czogQ2xvdWRBcnRpZmFjdFtdO1xuXG4gIC8qKlxuICAgKiBSdW50aW1lIGluZm9ybWF0aW9uIHN1Y2ggYXMgbW9kdWxlIHZlcnNpb25zIHVzZWQgdG8gc3ludGhlc2l6ZSB0aGlzIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJ1bnRpbWU6IGN4c2NoZW1hLlJ1bnRpbWVJbmZvO1xuXG4gIC8qKlxuICAgKiBUaGUgcmF3IGFzc2VtYmx5IG1hbmlmZXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0OiBjeHNjaGVtYS5Bc3NlbWJseU1hbmlmZXN0O1xuXG4gIC8qKlxuICAgKiBSZWFkcyBhIGNsb3VkIGFzc2VtYmx5IGZyb20gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgVGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBhc3NlbWJseS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRpcmVjdG9yeTogc3RyaW5nLCBsb2FkT3B0aW9ucz86IGN4c2NoZW1hLkxvYWRNYW5pZmVzdE9wdGlvbnMpIHtcbiAgICB0aGlzLmRpcmVjdG9yeSA9IGRpcmVjdG9yeTtcblxuICAgIHRoaXMubWFuaWZlc3QgPSBjeHNjaGVtYS5NYW5pZmVzdC5sb2FkQXNzZW1ibHlNYW5pZmVzdChwYXRoLmpvaW4oZGlyZWN0b3J5LCBNQU5JRkVTVF9GSUxFKSwgbG9hZE9wdGlvbnMpO1xuICAgIHRoaXMudmVyc2lvbiA9IHRoaXMubWFuaWZlc3QudmVyc2lvbjtcbiAgICB0aGlzLmFydGlmYWN0cyA9IHRoaXMucmVuZGVyQXJ0aWZhY3RzKGxvYWRPcHRpb25zPy50b3BvU29ydCA/PyB0cnVlKTtcbiAgICB0aGlzLnJ1bnRpbWUgPSB0aGlzLm1hbmlmZXN0LnJ1bnRpbWUgfHwgeyBsaWJyYXJpZXM6IHsgfSB9O1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIENMT1VEX0FTU0VNQkxZX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIC8vIGZvcmNlIHZhbGlkYXRpb24gb2YgZGVwcyBieSBhY2Nlc3NpbmcgJ2RlcGVuZHMnIG9uIGFsbCBhcnRpZmFjdHNcbiAgICB0aGlzLnZhbGlkYXRlRGVwcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGZpbmQgYW4gYXJ0aWZhY3Qgd2l0aCBhIHNwZWNpZmljIGlkZW50aXR5LlxuICAgKiBAcmV0dXJucyBBIGBDbG91ZEFydGlmYWN0YCBvYmplY3Qgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGFydGlmYWN0IGRvZXMgbm90IGV4aXN0IGluIHRoaXMgYXNzZW1ibHkuXG4gICAqIEBwYXJhbSBpZCBUaGUgYXJ0aWZhY3QgSURcbiAgICovXG4gIHB1YmxpYyB0cnlHZXRBcnRpZmFjdChpZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0IGZyb20gdGhpcyBhc3NlbWJseS5cbiAgICpcbiAgICogV2lsbCBvbmx5IHNlYXJjaCB0aGUgY3VycmVudCBhc3NlbWJseS5cbiAgICpcbiAgICogQHBhcmFtIHN0YWNrTmFtZSB0aGUgbmFtZSBvZiB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gc3RhY2sgYXJ0aWZhY3QgYnkgdGhhdCBuYW1lXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBzdGFjayB3aXRoIHRoZSBzYW1lIHN0YWNrIG5hbWUuIFlvdSBjYW5cbiAgICogdXNlIGBnZXRTdGFja0FydGlmYWN0KHN0YWNrLmFydGlmYWN0SWQpYCBpbnN0ZWFkLlxuICAgKiBAcmV0dXJucyBhIGBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RgIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBnZXRTdGFja0J5TmFtZShzdGFja05hbWU6IHN0cmluZyk6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB7XG4gICAgY29uc3QgYXJ0aWZhY3RzID0gdGhpcy5hcnRpZmFjdHMuZmlsdGVyKGEgPT4gYSBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCAmJiBhLnN0YWNrTmFtZSA9PT0gc3RhY2tOYW1lKTtcbiAgICBpZiAoIWFydGlmYWN0cyB8fCBhcnRpZmFjdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBVbmFibGUgdG8gZmluZCBzdGFjayB3aXRoIHN0YWNrIG5hbWUgXCIke3N0YWNrTmFtZX1cImApO1xuICAgIH1cblxuICAgIGlmIChhcnRpZmFjdHMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFRoZXJlIGFyZSBtdWx0aXBsZSBzdGFja3Mgd2l0aCB0aGUgc3RhY2sgbmFtZSBcIiR7c3RhY2tOYW1lfVwiICgke2FydGlmYWN0cy5tYXAoYSA9PiBhLmlkKS5qb2luKCcsJyl9KS4gVXNlIFwiZ2V0U3RhY2tBcnRpZmFjdChpZClcIiBpbnN0ZWFkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFydGlmYWN0c1swXSBhcyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrIGFydGlmYWN0IGJ5IG5hbWUgZnJvbSB0aGlzIGFzc2VtYmx5LlxuICAgKiBAZGVwcmVjYXRlZCByZW5hbWVkIHRvIGBnZXRTdGFja0J5TmFtZWAgKG9yIGBnZXRTdGFja0FydGlmYWN0KGlkKWApXG4gICAqL1xuICBwdWJsaWMgZ2V0U3RhY2soc3RhY2tOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdGFja0J5TmFtZShzdGFja05hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdCBmcm9tIHRoaXMgYXNzZW1ibHkuXG4gICAqXG4gICAqIEBwYXJhbSBhcnRpZmFjdElkIHRoZSBhcnRpZmFjdCBpZCBvZiB0aGUgc3RhY2sgKGNhbiBiZSBvYnRhaW5lZCB0aHJvdWdoIGBzdGFjay5hcnRpZmFjdElkYCkuXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gc3RhY2sgYXJ0aWZhY3Qgd2l0aCB0aGF0IGlkXG4gICAqIEByZXR1cm5zIGEgYENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdGAgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldFN0YWNrQXJ0aWZhY3QoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdCA9IHRoaXMudHJ5R2V0QXJ0aWZhY3RSZWN1cnNpdmVseShhcnRpZmFjdElkKTtcblxuICAgIGlmICghYXJ0aWZhY3QpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYFVuYWJsZSB0byBmaW5kIGFydGlmYWN0IHdpdGggaWQgXCIke2FydGlmYWN0SWR9XCJgKTtcbiAgICB9XG5cbiAgICBpZiAoIShhcnRpZmFjdCBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYEFydGlmYWN0ICR7YXJ0aWZhY3RJZH0gaXMgbm90IGEgQ2xvdWRGb3JtYXRpb24gc3RhY2tgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJ0aWZhY3Q7XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEFydGlmYWN0UmVjdXJzaXZlbHkoYXJ0aWZhY3RJZDogc3RyaW5nKTogQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tzUmVjdXJzaXZlbHkuZmluZChhID0+IGEuaWQgPT09IGFydGlmYWN0SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBzdGFja3MsIGluY2x1ZGluZyB0aGUgb25lcyBpbiBuZXN0ZWQgYXNzZW1ibGllc1xuICAgKi9cbiAgcHVibGljIGdldCBzdGFja3NSZWN1cnNpdmVseSgpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgZnVuY3Rpb24gc2VhcmNoKHN0YWNrQXJ0aWZhY3RzOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSwgYXNzZW1ibGllczogQ2xvdWRBc3NlbWJseVtdKTogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10ge1xuICAgICAgaWYgKGFzc2VtYmxpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdGFja0FydGlmYWN0cztcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2hlYWQsIC4uLnRhaWxdID0gYXNzZW1ibGllcztcbiAgICAgIGNvbnN0IG5lc3RlZEFzc2VtYmxpZXMgPSBoZWFkLm5lc3RlZEFzc2VtYmxpZXMubWFwKGFzbSA9PiBhc20ubmVzdGVkQXNzZW1ibHkpO1xuICAgICAgcmV0dXJuIHNlYXJjaChzdGFja0FydGlmYWN0cy5jb25jYXQoaGVhZC5zdGFja3MpLCB0YWlsLmNvbmNhdChuZXN0ZWRBc3NlbWJsaWVzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlYXJjaChbXSwgW3RoaXNdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmVzdGVkIGFzc2VtYmx5IGFydGlmYWN0LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCBUaGUgYXJ0aWZhY3QgSUQgb2YgdGhlIG5lc3RlZCBhc3NlbWJseVxuICAgKi9cbiAgcHVibGljIGdldE5lc3RlZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3RJZDogc3RyaW5nKTogTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdCA9IHRoaXMudHJ5R2V0QXJ0aWZhY3QoYXJ0aWZhY3RJZCk7XG4gICAgaWYgKCFhcnRpZmFjdCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgVW5hYmxlIHRvIGZpbmQgYXJ0aWZhY3Qgd2l0aCBpZCBcIiR7YXJ0aWZhY3RJZH1cImApO1xuICAgIH1cblxuICAgIGlmICghKGFydGlmYWN0IGluc3RhbmNlb2YgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0KSkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgRm91bmQgYXJ0aWZhY3QgJyR7YXJ0aWZhY3RJZH0nIGJ1dCBpdCdzIG5vdCBhIG5lc3RlZCBjbG91ZCBhc3NlbWJseWApO1xuICAgIH1cblxuICAgIHJldHVybiBhcnRpZmFjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmVzdGVkIGFzc2VtYmx5LlxuICAgKlxuICAgKiBAcGFyYW0gYXJ0aWZhY3RJZCBUaGUgYXJ0aWZhY3QgSUQgb2YgdGhlIG5lc3RlZCBhc3NlbWJseVxuICAgKi9cbiAgcHVibGljIGdldE5lc3RlZEFzc2VtYmx5KGFydGlmYWN0SWQ6IHN0cmluZyk6IENsb3VkQXNzZW1ibHkge1xuICAgIHJldHVybiB0aGlzLmdldE5lc3RlZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3RJZCkubmVzdGVkQXNzZW1ibHk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdHJlZSBtZXRhZGF0YSBhcnRpZmFjdCBmcm9tIHRoaXMgYXNzZW1ibHkuXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gbWV0YWRhdGEgYXJ0aWZhY3QgYnkgdGhhdCBuYW1lXG4gICAqIEByZXR1cm5zIGEgYFRyZWVDbG91ZEFydGlmYWN0YCBvYmplY3QgaWYgdGhlcmUgaXMgb25lIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0LCBgdW5kZWZpbmVkYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgdHJlZSgpOiBUcmVlQ2xvdWRBcnRpZmFjdCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdHJlZXMgPSB0aGlzLmFydGlmYWN0cy5maWx0ZXIoYSA9PiBhLm1hbmlmZXN0LnR5cGUgPT09IGN4c2NoZW1hLkFydGlmYWN0VHlwZS5DREtfVFJFRSk7XG4gICAgaWYgKHRyZWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKHRyZWVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYE11bHRpcGxlIGFydGlmYWN0cyBvZiB0eXBlICR7Y3hzY2hlbWEuQXJ0aWZhY3RUeXBlLkNES19UUkVFfSBmb3VuZCBpbiBtYW5pZmVzdGApO1xuICAgIH1cbiAgICBjb25zdCB0cmVlID0gdHJlZXNbMF07XG5cbiAgICBpZiAoISh0cmVlIGluc3RhbmNlb2YgVHJlZUNsb3VkQXJ0aWZhY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKCdcIlRyZWVcIiBhcnRpZmFjdCBpcyBub3Qgb2YgZXhwZWN0ZWQgdHlwZScpO1xuICAgIH1cblxuICAgIHJldHVybiB0cmVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGFsbCB0aGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3RzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoaXMgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN0YWNrcygpOiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmZpbHRlcihpc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk7XG5cbiAgICBmdW5jdGlvbiBpc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4OiBhbnkpOiB4IGlzIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB7XG4gICAgICByZXR1cm4geCBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5lc3RlZCBhc3NlbWJseSBhcnRpZmFjdHMgaW4gdGhpcyBhc3NlbWJseVxuICAgKi9cbiAgcHVibGljIGdldCBuZXN0ZWRBc3NlbWJsaWVzKCk6IE5lc3RlZENsb3VkQXNzZW1ibHlBcnRpZmFjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5hcnRpZmFjdHMuZmlsdGVyKGlzTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0KTtcblxuICAgIGZ1bmN0aW9uIGlzTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0KHg6IGFueSk6IHggaXMgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0IHtcbiAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVEZXBzKCkge1xuICAgIGZvciAoY29uc3QgYXJ0aWZhY3Qgb2YgdGhpcy5hcnRpZmFjdHMpIHtcbiAgICAgIGlnbm9yZShhcnRpZmFjdC5kZXBlbmRlbmNpZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXJ0aWZhY3RzKHRvcG9Tb3J0OiBib29sZWFuKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PENsb3VkQXJ0aWZhY3Q+KCk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgYXJ0aWZhY3RdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3QuYXJ0aWZhY3RzIHx8IHsgfSkpIHtcbiAgICAgIGNvbnN0IGNsb3VkYXJ0aWZhY3QgPSBDbG91ZEFydGlmYWN0LmZyb21NYW5pZmVzdCh0aGlzLCBuYW1lLCBhcnRpZmFjdCk7XG4gICAgICBpZiAoY2xvdWRhcnRpZmFjdCkge1xuICAgICAgICByZXN1bHQucHVzaChjbG91ZGFydGlmYWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG9wb1NvcnQgPyB0b3BvbG9naWNhbFNvcnQocmVzdWx0LCB4ID0+IHguaWQsIHggPT4geC5fZGVwZW5kZW5jeUlEcykgOiByZXN1bHQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgQ2xvdWRBc3NlbWJseUJ1aWxkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZEFzc2VtYmx5QnVpbGRlclByb3BzIHtcbiAgLyoqXG4gICAqIFVzZSB0aGUgZ2l2ZW4gYXNzZXQgb3V0cHV0IGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNhbWUgYXMgdGhlIG1hbmlmZXN0IG91dGRpclxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRPdXRkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgYnVpbGRlciBpcyBmb3IgYSBuZXN0ZWQgYXNzZW1ibHksIHRoZSBwYXJlbnQgYXNzZW1ibHkgYnVpbGRlclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgaXMgYSByb290IGFzc2VtYmx5XG4gICAqL1xuICByZWFkb25seSBwYXJlbnRCdWlsZGVyPzogQ2xvdWRBc3NlbWJseUJ1aWxkZXI7XG59XG5cbi8qKlxuICogQ2FuIGJlIHVzZWQgdG8gYnVpbGQgYSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQXNzZW1ibHlCdWlsZGVyIHtcbiAgLyoqXG4gICAqIFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcmVzdWx0aW5nIGNsb3VkIGFzc2VtYmx5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIGFzc2V0cyBvZiB0aGlzIENsb3VkIEFzc2VtYmx5IHNob3VsZCBiZSBzdG9yZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldE91dGRpcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXJ0aWZhY3RzOiB7IFtpZDogc3RyaW5nXTogY3hzY2hlbWEuQXJ0aWZhY3RNYW5pZmVzdCB9ID0geyB9O1xuICBwcml2YXRlIHJlYWRvbmx5IG1pc3NpbmcgPSBuZXcgQXJyYXk8Y3hzY2hlbWEuTWlzc2luZ0NvbnRleHQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50QnVpbGRlcj86IENsb3VkQXNzZW1ibHlCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhIGNsb3VkIGFzc2VtYmx5IGJ1aWxkZXIuXG4gICAqIEBwYXJhbSBvdXRkaXIgVGhlIG91dHB1dCBkaXJlY3RvcnksIHVzZXMgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpZiB1bmRlZmluZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG91dGRpcj86IHN0cmluZywgcHJvcHM6IENsb3VkQXNzZW1ibHlCdWlsZGVyUHJvcHMgPSB7fSkge1xuICAgIHRoaXMub3V0ZGlyID0gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcik7XG4gICAgdGhpcy5hc3NldE91dGRpciA9IHByb3BzLmFzc2V0T3V0ZGlyID8/IHRoaXMub3V0ZGlyO1xuICAgIHRoaXMucGFyZW50QnVpbGRlciA9IHByb3BzLnBhcmVudEJ1aWxkZXI7XG5cbiAgICAvLyB3ZSBsZXZlcmFnZSB0aGUgZmFjdCB0aGF0IG91dGRpciBpcyBsb25nLWxpdmVkIHRvIGF2b2lkIHN0YWdpbmcgYXNzZXRzIGludG8gaXRcbiAgICAvLyB0aGF0IHdlcmUgYWxyZWFkeSBzdGFnZWQgKGNvcHlpbmcgY2FuIGJlIGV4cGVuc2l2ZSkuIHRoaXMgaXMgYWNoaWV2ZWQgYnkgdGhlIGZhY3RcbiAgICAvLyB0aGF0IGFzc2V0cyB1c2UgYSBzb3VyY2UgaGFzaCBhcyB0aGVpciBuYW1lLiBvdGhlciBhcnRpZmFjdHMsIGFuZCB0aGUgbWFuaWZlc3QgaXRzZWxmLFxuICAgIC8vIHdpbGwgb3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzIGFzIG5lZWRlZC5cbiAgICBlbnN1cmVEaXJTeW5jKHRoaXMub3V0ZGlyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFydGlmYWN0IGludG8gdGhlIGNsb3VkIGFzc2VtYmx5LlxuICAgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBhcnRpZmFjdC5cbiAgICogQHBhcmFtIG1hbmlmZXN0IFRoZSBhcnRpZmFjdCBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFkZEFydGlmYWN0KGlkOiBzdHJpbmcsIG1hbmlmZXN0OiBjeHNjaGVtYS5BcnRpZmFjdE1hbmlmZXN0KSB7XG4gICAgdGhpcy5hcnRpZmFjdHNbaWRdID0gZmlsdGVyVW5kZWZpbmVkKG1hbmlmZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnRzIHRoYXQgc29tZSBjb250ZXh0IGlzIG1pc3NpbmcgaW4gb3JkZXIgZm9yIHRoaXMgY2xvdWQgYXNzZW1ibHkgdG8gYmUgZnVsbHkgc3ludGhlc2l6ZWQuXG4gICAqIEBwYXJhbSBtaXNzaW5nIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRNaXNzaW5nKG1pc3Npbmc6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMubWlzc2luZy5ldmVyeShtID0+IG0ua2V5ICE9PSBtaXNzaW5nLmtleSkpIHtcbiAgICAgIHRoaXMubWlzc2luZy5wdXNoKG1pc3NpbmcpO1xuICAgIH1cbiAgICAvLyBBbHNvIHJlcG9ydCBpbiBwYXJlbnRcbiAgICB0aGlzLnBhcmVudEJ1aWxkZXI/LmFkZE1pc3NpbmcobWlzc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogRmluYWxpemVzIHRoZSBjbG91ZCBhc3NlbWJseSBpbnRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHJldHVybnMgYVxuICAgKiBgQ2xvdWRBc3NlbWJseWAgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5zcGVjdCB0aGUgYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgYnVpbGRBc3NlbWJseShvcHRpb25zOiBBc3NlbWJseUJ1aWxkT3B0aW9ucyA9IHsgfSk6IENsb3VkQXNzZW1ibHkge1xuICAgIC8vIGV4cGxpY2l0bHkgaW5pdGlhbGl6aW5nIHRoaXMgdHlwZSB3aWxsIGhlbHAgdXMgZGV0ZWN0XG4gICAgLy8gYnJlYWtpbmcgY2hhbmdlcy4gKEZvciBleGFtcGxlIGFkZGluZyBhIHJlcXVpcmVkIHByb3BlcnR5IHdpbGwgYnJlYWsgY29tcGlsYXRpb24pLlxuICAgIGxldCBtYW5pZmVzdDogY3hzY2hlbWEuQXNzZW1ibHlNYW5pZmVzdCA9IHtcbiAgICAgIHZlcnNpb246IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKSxcbiAgICAgIGFydGlmYWN0czogdGhpcy5hcnRpZmFjdHMsXG4gICAgICBydW50aW1lOiBvcHRpb25zLnJ1bnRpbWVJbmZvLFxuICAgICAgbWlzc2luZzogdGhpcy5taXNzaW5nLmxlbmd0aCA+IDAgPyB0aGlzLm1pc3NpbmcgOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIC8vIG5vdyB3ZSBjYW4gZmlsdGVyXG4gICAgbWFuaWZlc3QgPSBmaWx0ZXJVbmRlZmluZWQobWFuaWZlc3QpO1xuXG4gICAgY29uc3QgbWFuaWZlc3RGaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dGRpciwgTUFOSUZFU1RfRklMRSk7XG4gICAgY3hzY2hlbWEuTWFuaWZlc3Quc2F2ZUFzc2VtYmx5TWFuaWZlc3QobWFuaWZlc3QsIG1hbmlmZXN0RmlsZVBhdGgpO1xuXG4gICAgLy8gXCJiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVwiOiBpbiBvcmRlciBmb3IgdGhlIG9sZCBDTEkgdG8gdGVsbCB0aGUgdXNlciB0aGV5XG4gICAgLy8gbmVlZCBhIG5ldyB2ZXJzaW9uLCB3ZSdsbCBlbWl0IHRoZSBsZWdhY3kgbWFuaWZlc3Qgd2l0aCBvbmx5IFwidmVyc2lvblwiLlxuICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgXCJDREsgVG9vbGtpdCA+PSBDTE9VRF9BU1NFTUJMWV9WRVJTSU9OIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGludGVyYWN0IHdpdGggdGhpcyBwcm9ncmFtLlwiXG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGhpcy5vdXRkaXIsICdjZGsub3V0JyksIEpTT04uc3RyaW5naWZ5KHsgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbiB9KSk7XG5cbiAgICByZXR1cm4gbmV3IENsb3VkQXNzZW1ibHkodGhpcy5vdXRkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXN0ZWQgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVOZXN0ZWRBc3NlbWJseShhcnRpZmFjdElkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlOYW1lID0gYXJ0aWZhY3RJZDtcbiAgICBjb25zdCBpbm5lckFzbURpciA9IHBhdGguam9pbih0aGlzLm91dGRpciwgZGlyZWN0b3J5TmFtZSk7XG5cbiAgICB0aGlzLmFkZEFydGlmYWN0KGFydGlmYWN0SWQsIHtcbiAgICAgIHR5cGU6IGN4c2NoZW1hLkFydGlmYWN0VHlwZS5ORVNURURfQ0xPVURfQVNTRU1CTFksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGRpcmVjdG9yeU5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgfSBhcyBjeHNjaGVtYS5OZXN0ZWRDbG91ZEFzc2VtYmx5UHJvcGVydGllcyxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgQ2xvdWRBc3NlbWJseUJ1aWxkZXIoaW5uZXJBc21EaXIsIHtcbiAgICAgIC8vIFJldXNlIHRoZSBzYW1lIGFzc2V0IG91dHB1dCBkaXJlY3RvcnkgYXMgdGhlIGN1cnJlbnQgQ2FzbSBidWlsZGVyXG4gICAgICBhc3NldE91dGRpcjogdGhpcy5hc3NldE91dGRpcixcbiAgICAgIHBhcmVudEJ1aWxkZXI6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBkZWxldGUoKSB7XG4gICAgZnMucm1TeW5jKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Igd2hlbiBgUnVudGltZUluZm9gXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5zeW50aFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVJbmZvIGV4dGVuZHMgY3hzY2hlbWEuUnVudGltZUluZm8ge1xuXG59XG5cbi8qKlxuICogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIHdoZW4gYE1ldGFkYXRhRW50cnlgXG4gKiB3YXMgZGVmaW5lZCBoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0cyB1c2VkIGFzIGFuIGlucHV0IGluIHRoZSBzdGFibGVcbiAqIEBhd3MtY2RrL2NvcmUgbGlicmFyeS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBtb3ZlZCB0byBwYWNrYWdlICdjbG91ZC1hc3NlbWJseS1zY2hlbWEnXG4gKiBAc2VlIGNvcmUuQ29uc3RydWN0Tm9kZS5tZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhRW50cnkgZXh0ZW5kcyBjeHNjaGVtYS5NZXRhZGF0YUVudHJ5IHtcblxufVxuXG4vKipcbiAqIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciB3aGVuIGBNaXNzaW5nQ29udGV4dGBcbiAqIHdhcyBkZWZpbmVkIGhlcmUuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaXRzIHVzZWQgYXMgYW4gaW5wdXQgaW4gdGhlIHN0YWJsZVxuICogQGF3cy1jZGsvY29yZSBsaWJyYXJ5LlxuICpcbiAqIEBkZXByZWNhdGVkIG1vdmVkIHRvIHBhY2thZ2UgJ2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSdcbiAqIEBzZWUgY29yZS5TdGFjay5yZXBvcnRNaXNzaW5nQ29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBwcm92aWRlci1zcGVjaWZpYyBvcHRpb25zLlxuICAgKlxuICAgKiAoVGhpcyBpcyB0aGUgb2xkIHVudHlwZWQgZGVmaW5pdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICogU2VlIGN4c2NoZW1hIGZvciBhIHR5cGUgZGVmaW5pdGlvbi4pXG4gICAqL1xuICByZWFkb25seSBwcm9wczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseUJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHRoZSBzcGVjaWZpZWQgcnVudGltZSBpbmZvcm1hdGlvbiAobW9kdWxlIHZlcnNpb25zKSBpbiBtYW5pZmVzdC5cbiAgICogQGRlZmF1bHQgLSBpZiB0aGlzIG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkLCBydW50aW1lIGluZm8gd2lsbCBub3QgYmUgaW5jbHVkZWRcbiAgICogQGRlcHJlY2F0ZWQgQWxsIHRlbXBsYXRlIG1vZGlmaWNhdGlvbnMgdGhhdCBzaG91bGQgcmVzdWx0IGZyb20gdGhpcyBzaG91bGRcbiAgICogaGF2ZSBhbHJlYWR5IGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBydW50aW1lSW5mbz86IFJ1bnRpbWVJbmZvO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBjb3B5IG9mIGBvYmpgIHdpdGhvdXQgdW5kZWZpbmVkIHZhbHVlcyBpbiBtYXBzIG9yIGFycmF5cy5cbiAqL1xuZnVuY3Rpb24gZmlsdGVyVW5kZWZpbmVkKG9iajogYW55KTogYW55IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmouZmlsdGVyKHggPT4geCAhPT0gdW5kZWZpbmVkKS5tYXAoeCA9PiBmaWx0ZXJVbmRlZmluZWQoeCkpO1xuICB9XG5cbiAgaWYgKHR5cGVvZihvYmopID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJldDogYW55ID0geyB9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcmV0W2tleV0gPSBmaWx0ZXJVbmRlZmluZWQodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gaWdub3JlKF94OiBhbnkpIHtcbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIFR1cm4gdGhlIGdpdmVuIG9wdGlvbmFsIG91dHB1dCBkaXJlY3RvcnkgaW50byBhIGZpeGVkIG91dHB1dCBkaXJlY3RvcnlcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lT3V0cHV0RGlyZWN0b3J5KG91dGRpcj86IHN0cmluZykge1xuICByZXR1cm4gb3V0ZGlyID8/IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihmcy5yZWFscGF0aFN5bmMob3MudG1wZGlyKCkpLCAnY2RrLm91dCcpKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlRGlyU3luYyhkaXI6IHN0cmluZykge1xuICBpZiAoZnMuZXhpc3RzU3luYyhkaXIpKSB7XG4gICAgaWYgKCFmcy5zdGF0U3luYyhkaXIpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHRocm93IG5ldyBDbG91ZEFzc2VtYmx5RXJyb3IoYCR7ZGlyfSBtdXN0IGJlIGEgZGlyZWN0b3J5YCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZzLm1rZGlyU3luYyhkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybnMganVzdCBhbiBBTUkgSURcbiAqL1xuZXhwb3J0IHR5cGUgQW1pQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = void 0;\n/**\n * This context key is used to determine the value of `stack.availabilityZones`\n * when a stack is not associated with a specific account/region (env-agnostic).\n *\n * If this key is passed in the context, the values will be used. Otherwise, a\n * system-fallback which uses `Fn::GetAZs` will be used.\n */\nexports.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY = 'aws:cdk:availability-zones:fallback';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWxhYmlsaXR5LXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXZhaWxhYmlsaXR5LXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7R0FNRztBQUNVLFFBQUEsc0NBQXNDLEdBQUcscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgY29udGV4dCBrZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIGBzdGFjay5hdmFpbGFiaWxpdHlab25lc2BcbiAqIHdoZW4gYSBzdGFjayBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYWNjb3VudC9yZWdpb24gKGVudi1hZ25vc3RpYykuXG4gKlxuICogSWYgdGhpcyBrZXkgaXMgcGFzc2VkIGluIHRoZSBjb250ZXh0LCB0aGUgdmFsdWVzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCBhXG4gKiBzeXN0ZW0tZmFsbGJhY2sgd2hpY2ggdXNlcyBgRm46OkdldEFac2Agd2lsbCBiZSB1c2VkLlxuICovXG5leHBvcnQgY29uc3QgQVZBSUxBQklMSVRZX1pPTkVfRkFMTEJBQ0tfQ09OVEVYVF9LRVkgPSAnYXdzOmNkazphdmFpbGFiaWxpdHktem9uZXM6ZmFsbGJhY2snO1xuXG4vKipcbiAqIFJlc3BvbnNlIG9mIHRoZSBBWiBwcm92aWRlciBsb29rcyBsaWtlIHRoaXNcbiAqL1xuZXhwb3J0IHR5cGUgQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UmVzcG9uc2UgPSBzdHJpbmdbXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = void 0;\nexports.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER = 'endpoint-service-availability-zones';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLDJDQUEyQyxHQUFHLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuXG4vKipcbiAqIFF1ZXJ5IHRvIGhvc3RlZCB6b25lIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSB7XG4gIC8qKlxuICAgKiBRdWVyeSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBRdWVyeSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgc2VydmljZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBvZiB0aGUgQVogcHJvdmlkZXIgbG9va3MgbGlrZSB0aGlzXG4gKi9cbmV4cG9ydCB0eXBlIEVuZHBvaW50U2VydmljZUF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFJlc3BvbnNlID0gc3RyaW5nW107XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIGtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRSZXNwb25zZSB7XG5cbiAgLyoqXG4gICAqIElkIG9mIHRoZSBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerIpAddressType = void 0;\n/**\n * Load balancer ip address type.\n */\nvar LoadBalancerIpAddressType;\n(function (LoadBalancerIpAddressType) {\n /**\n * IPV4 ip address\n */\n LoadBalancerIpAddressType[\"IPV4\"] = \"ipv4\";\n /**\n * Dual stack address\n */\n LoadBalancerIpAddressType[\"DUAL_STACK\"] = \"dualstack\";\n /**\n * IPv6 only public addresses, with private IPv4 and IPv6 addresses\n */\n LoadBalancerIpAddressType[\"DUAL_STACK_WITHOUT_PUBLIC_IPV4\"] = \"dualstack-without-public-ipv4\";\n})(LoadBalancerIpAddressType || (exports.LoadBalancerIpAddressType = LoadBalancerIpAddressType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvYWQtYmFsYW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLHlCQWVYO0FBZkQsV0FBWSx5QkFBeUI7SUFDbkM7O09BRUc7SUFDSCwwQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxREFBd0IsQ0FBQTtJQUV4Qjs7T0FFRztJQUNILDZGQUFnRSxDQUFBO0FBQ2xFLENBQUMsRUFmVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWVwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTG9hZCBiYWxhbmNlciBpcCBhZGRyZXNzIHR5cGUuXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlcklwQWRkcmVzc1R5cGUge1xuICAvKipcbiAgICogSVBWNCBpcCBhZGRyZXNzXG4gICAqL1xuICBJUFY0ID0gJ2lwdjQnLFxuXG4gIC8qKlxuICAgKiBEdWFsIHN0YWNrIGFkZHJlc3NcbiAgICovXG4gIERVQUxfU1RBQ0sgPSAnZHVhbHN0YWNrJyxcblxuICAvKipcbiAgICogSVB2NiBvbmx5IHB1YmxpYyBhZGRyZXNzZXMsIHdpdGggcHJpdmF0ZSBJUHY0IGFuZCBJUHY2IGFkZHJlc3Nlc1xuICAgKi9cbiAgRFVBTF9TVEFDS19XSVRIT1VUX1BVQkxJQ19JUFY0ID0gJ2R1YWxzdGFjay13aXRob3V0LXB1YmxpYy1pcHY0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhvc3RlZCB6b25lIElEIG9mIHRoZSBsb2FkIGJhbGFuY2VyJ3MgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3MgRE5TIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckRuc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiBJUCBhZGRyZXNzXG4gICAqL1xuICByZWFkb25seSBpcEFkZHJlc3NUeXBlOiBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyJ3Mgc2VjdXJpdHkgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTG9hZCBiYWxhbmNlcidzIFZQQ1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgZGlzY292ZXJlZCBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxpc3RlbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdGhlIGxpc3RlbmVyIGlzIGxpc3RlbmluZyBvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyUG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXBzIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIFNlY3VyaXR5R3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENvbnRleHRSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAncyBpZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzZWN1cml0eSBncm91cCBhbGxvd3MgYWxsIG91dGJvdW5kIHRyYWZmaWMuIFRoaXMgd2lsbCBiZSB0cnVlXG4gICAqIHdoZW4gdGhlIHNlY3VyaXR5IGdyb3VwIGhhcyBhbGwtcHJvdG9jb2wgZWdyZXNzIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBib3RoXG4gICAqIGAwLjAuMC4wLzBgIGFuZCBgOjovMGAuXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kOiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VpcSubnetGroupType = void 0;\n/**\n * The type of subnet group.\n * Same as SubnetType in the aws-cdk-lib/aws-ec2 package,\n * but we can't use that because of cyclical dependencies.\n */\nvar VpcSubnetGroupType;\n(function (VpcSubnetGroupType) {\n /** Public subnet group type. */\n VpcSubnetGroupType[\"PUBLIC\"] = \"Public\";\n /** Private subnet group type. */\n VpcSubnetGroupType[\"PRIVATE\"] = \"Private\";\n /** Isolated subnet group type. */\n VpcSubnetGroupType[\"ISOLATED\"] = \"Isolated\";\n})(VpcSubnetGroupType || (exports.VpcSubnetGroupType = VpcSubnetGroupType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxJQUFZLGtCQVNYO0FBVEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0NBQWdDO0lBQ2hDLHVDQUFpQixDQUFBO0lBRWpCLGlDQUFpQztJQUNqQyx5Q0FBbUIsQ0FBQTtJQUVuQixrQ0FBa0M7SUFDbEMsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVRXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgdHlwZSBvZiBzdWJuZXQgZ3JvdXAuXG4gKiBTYW1lIGFzIFN1Ym5ldFR5cGUgaW4gdGhlIGF3cy1jZGstbGliL2F3cy1lYzIgcGFja2FnZSxcbiAqIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBiZWNhdXNlIG9mIGN5Y2xpY2FsIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGVudW0gVnBjU3VibmV0R3JvdXBUeXBlIHtcbiAgLyoqIFB1YmxpYyBzdWJuZXQgZ3JvdXAgdHlwZS4gKi9cbiAgUFVCTElDID0gJ1B1YmxpYycsXG5cbiAgLyoqIFByaXZhdGUgc3VibmV0IGdyb3VwIHR5cGUuICovXG4gIFBSSVZBVEUgPSAnUHJpdmF0ZScsXG5cbiAgLyoqIElzb2xhdGVkIHN1Ym5ldCBncm91cCB0eXBlLiAqL1xuICBJU09MQVRFRCA9ICdJc29sYXRlZCcsXG59XG5cbi8qKlxuICogQSBzdWJuZXQgcmVwcmVzZW50YXRpb24gdGhhdCB0aGUgVlBDIHByb3ZpZGVyIHVzZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0IHtcbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIG9mIHRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGlzIHN1Ym5ldCBpcyBpblxuICAgKiAoZm9yIGV4YW1wbGUsICd1cy13ZXN0LTJhJykuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSByb3V0ZSB0YWJsZSBmb3IgdGhpcyBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHJvdXRlVGFibGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDSURSIHJhbmdlIG9mIHRoZSBzdWJuZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDSURSIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNpZHI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBncm91cCBvZiBzdWJuZXRzIHJldHVybmVkIGJ5IHRoZSBWUEMgcHJvdmlkZXIuXG4gKiBUaGUgaW5jbHVkZWQgc3VibmV0cyBkbyBOT1QgaGF2ZSB0byBiZSBzeW1tZXRyaWMhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0R3JvdXAge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN1Ym5ldCBncm91cCxcbiAgICogZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0IHRoZSB0YWdzIG9mIG9mIHRoZSBzdWJuZXRzXG4gICAqIHRoYXQgYmVsb25nIHRvIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgdHlwZSBvZiB0aGUgc3VibmV0IGdyb3VwLiAqL1xuICByZWFkb25seSB0eXBlOiBWcGNTdWJuZXRHcm91cFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBncm91cC5cbiAgICogVGhlcmUgaXMgbm8gY29uZGl0aW9uIHRoYXQgdGhlIHN1Ym5ldHMgaGF2ZSB0byBiZSBzeW1tZXRyaWNcbiAgICogaW4gdGhlIGdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0czogVnBjU3VibmV0W107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhIGRpc2NvdmVyZWQgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFJlc3BvbnNlIHtcblxuICAvKipcbiAgICogVlBDIGlkXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgY2lkclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENJRFIgaW5mb3JtYXRpb24gbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBWnNcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwdWJsaWMgc3VibmV0c1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMocHVibGljR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzLlxuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwcml2YXRlIHN1Ym5ldHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwc1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKHByaXZhdGVHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBpc29sYXRlZCBzdWJuZXRzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhpc29sYXRlZEdyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IGlzb2xhdGVkU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHMuXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIFZQTiBnYXRld2F5IElEXG4gICAqL1xuICByZWFkb25seSB2cG5HYXRld2F5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgZ3JvdXBzIGRpc2NvdmVyZWQgZm9yIHRoZSBnaXZlbiBWUEMuXG4gICAqIFVubGlrZSB0aGUgYWJvdmUgcHJvcGVydGllcywgdGhpcyB3aWxsIGluY2x1ZGUgYXN5bW1ldHJpYyBzdWJuZXRzLFxuICAgKiBpZiB0aGUgVlBDIGhhcyBhbnkuXG4gICAqIFRoaXMgcHJvcGVydHkgd2lsbCBvbmx5IGJlIHBvcHVsYXRlZCBpZiBgVnBjQ29udGV4dFF1ZXJ5LnJldHVybkFzeW1tZXRyaWNTdWJuZXRzYFxuICAgKiBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN1Ym5ldCBncm91cHMgd2lsbCBiZSByZXR1cm5lZCB1bmxlc3MgYFZwY0NvbnRleHRRdWVyeS5yZXR1cm5Bc3ltbWV0cmljU3VibmV0c2AgaXMgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBzPzogVnBjU3VibmV0R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBpbiB3aGljaCB0aGUgVlBDIGlzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlZ2lvbiBvZiB0aGUgcGFyZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgQVdTIGFjY291bnQgdGhhdCBvd25zIHRoZSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBhY2NvdW50IGlkIG9mIHRoZSBwYXJlbnQgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG93bmVyQWNjb3VudElkPzogc3RyaW5nO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSMPARAM_NO_INVALIDATE = exports.PROVIDER_ERROR_KEY = exports.TOOLKIT_VERSION_ENV = exports.CLI_VERSION_ENV = exports.CLI_ASM_VERSION_ENV = exports.DEFAULT_REGION_ENV = exports.DEFAULT_ACCOUNT_ENV = exports.CONTEXT_OVERFLOW_LOCATION_ENV = exports.CONTEXT_ENV = exports.OUTDIR_ENV = void 0;\n// output directory into which to emit synthesis outputs. CDK doesn't allow outdir\n// to be specified both through the CDK_OUTDIR environment variable and the through\n// aws:cdk:outdir context.\nexports.OUTDIR_ENV = 'CDK_OUTDIR';\nexports.CONTEXT_ENV = 'CDK_CONTEXT_JSON';\n/**\n * The name of the temporary file where the context is stored.\n */\nexports.CONTEXT_OVERFLOW_LOCATION_ENV = 'CONTEXT_OVERFLOW_LOCATION_ENV';\n/**\n * Environment variable set by the CDK CLI with the default AWS account ID.\n */\nexports.DEFAULT_ACCOUNT_ENV = 'CDK_DEFAULT_ACCOUNT';\n/**\n * Environment variable set by the CDK CLI with the default AWS region.\n */\nexports.DEFAULT_REGION_ENV = 'CDK_DEFAULT_REGION';\n/**\n * Version of Cloud Assembly expected by CDK Toolkit.\n *\n * Despite it's name, this value applies to all version of the CDK Toolkit, not just the CLI.\n *\n * CLI started emitting this at 1.10.1\n */\nexports.CLI_ASM_VERSION_ENV = 'CDK_CLI_ASM_VERSION';\n/**\n * Version of the CLI currently running.\n *\n * CLI started emitting this at 1.10.1\n * Will not be present if the CDK app is run by any Toolkit variation other than the CLI.\n */\nexports.CLI_VERSION_ENV = 'CDK_CLI_VERSION';\n/**\n * Package & version of the CDK Toolkit running the app.\n *\n * In the format \"@x.y.z\", e.g \"aws-cdk@2.1006.0\" or \"@aws-cdk/toolkit-lib@1.0.0\"\n */\nexports.TOOLKIT_VERSION_ENV = 'CDK_TOOLKIT_VERSION';\n/**\n * If a context value is an object with this key, it indicates an error\n */\nexports.PROVIDER_ERROR_KEY = '$providerError';\n/**\n * This SSM parameter does not invalidate the template\n *\n * If this string occurs in the description of an SSM parameter, the CLI\n * will not assume that the stack must always be redeployed.\n */\nexports.SSMPARAM_NO_INVALIDATE = '[cdk:skip]';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3hhcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjeGFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRkFBa0Y7QUFDbEYsbUZBQW1GO0FBQ25GLDBCQUEwQjtBQUNiLFFBQUEsVUFBVSxHQUFHLFlBQVksQ0FBQztBQUMxQixRQUFBLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztBQUU5Qzs7R0FFRztBQUNVLFFBQUEsNkJBQTZCLEdBQUcsK0JBQStCLENBQUM7QUFFN0U7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBRXpEOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztBQUV2RDs7Ozs7O0dBTUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBRXpEOzs7OztHQUtHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7QUFFekQ7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDO0FBRW5EOzs7OztHQUtHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBvdXRwdXQgZGlyZWN0b3J5IGludG8gd2hpY2ggdG8gZW1pdCBzeW50aGVzaXMgb3V0cHV0cy4gQ0RLIGRvZXNuJ3QgYWxsb3cgb3V0ZGlyXG4vLyB0byBiZSBzcGVjaWZpZWQgYm90aCB0aHJvdWdoIHRoZSBDREtfT1VURElSIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZCB0aGUgdGhyb3VnaFxuLy8gYXdzOmNkazpvdXRkaXIgY29udGV4dC5cbmV4cG9ydCBjb25zdCBPVVRESVJfRU5WID0gJ0NES19PVVRESVInO1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfRU5WID0gJ0NES19DT05URVhUX0pTT04nO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSB0ZW1wb3JhcnkgZmlsZSB3aGVyZSB0aGUgY29udGV4dCBpcyBzdG9yZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBDT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOViA9ICdDT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOVic7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUgc2V0IGJ5IHRoZSBDREsgQ0xJIHdpdGggdGhlIGRlZmF1bHQgQVdTIGFjY291bnQgSUQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FDQ09VTlRfRU5WID0gJ0NES19ERUZBVUxUX0FDQ09VTlQnO1xuXG4vKipcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlIHNldCBieSB0aGUgQ0RLIENMSSB3aXRoIHRoZSBkZWZhdWx0IEFXUyByZWdpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFR0lPTl9FTlYgPSAnQ0RLX0RFRkFVTFRfUkVHSU9OJztcblxuLyoqXG4gKiBWZXJzaW9uIG9mIENsb3VkIEFzc2VtYmx5IGV4cGVjdGVkIGJ5IENESyBUb29sa2l0LlxuICpcbiAqIERlc3BpdGUgaXQncyBuYW1lLCB0aGlzIHZhbHVlIGFwcGxpZXMgdG8gYWxsIHZlcnNpb24gb2YgdGhlIENESyBUb29sa2l0LCBub3QganVzdCB0aGUgQ0xJLlxuICpcbiAqIENMSSBzdGFydGVkIGVtaXR0aW5nIHRoaXMgYXQgMS4xMC4xXG4gKi9cbmV4cG9ydCBjb25zdCBDTElfQVNNX1ZFUlNJT05fRU5WID0gJ0NES19DTElfQVNNX1ZFUlNJT04nO1xuXG4vKipcbiAqIFZlcnNpb24gb2YgdGhlIENMSSBjdXJyZW50bHkgcnVubmluZy5cbiAqXG4gKiBDTEkgc3RhcnRlZCBlbWl0dGluZyB0aGlzIGF0IDEuMTAuMVxuICogV2lsbCBub3QgYmUgcHJlc2VudCBpZiB0aGUgQ0RLIGFwcCBpcyBydW4gYnkgYW55IFRvb2xraXQgdmFyaWF0aW9uIG90aGVyIHRoYW4gdGhlIENMSS5cbiAqL1xuZXhwb3J0IGNvbnN0IENMSV9WRVJTSU9OX0VOViA9ICdDREtfQ0xJX1ZFUlNJT04nO1xuXG4vKipcbiAqIFBhY2thZ2UgJiB2ZXJzaW9uIG9mIHRoZSBDREsgVG9vbGtpdCBydW5uaW5nIHRoZSBhcHAuXG4gKlxuICogSW4gdGhlIGZvcm1hdCBcIjxwYWNrYWdlPkB4LnkuelwiLCBlLmcgIFwiYXdzLWNka0AyLjEwMDYuMFwiIG9yIFwiQGF3cy1jZGsvdG9vbGtpdC1saWJAMS4wLjBcIlxuICovXG5leHBvcnQgY29uc3QgVE9PTEtJVF9WRVJTSU9OX0VOViA9ICdDREtfVE9PTEtJVF9WRVJTSU9OJztcblxuLyoqXG4gKiBJZiBhIGNvbnRleHQgdmFsdWUgaXMgYW4gb2JqZWN0IHdpdGggdGhpcyBrZXksIGl0IGluZGljYXRlcyBhbiBlcnJvclxuICovXG5leHBvcnQgY29uc3QgUFJPVklERVJfRVJST1JfS0VZID0gJyRwcm92aWRlckVycm9yJztcblxuLyoqXG4gKiBUaGlzIFNTTSBwYXJhbWV0ZXIgZG9lcyBub3QgaW52YWxpZGF0ZSB0aGUgdGVtcGxhdGVcbiAqXG4gKiBJZiB0aGlzIHN0cmluZyBvY2N1cnMgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIGFuIFNTTSBwYXJhbWV0ZXIsIHRoZSBDTElcbiAqIHdpbGwgbm90IGFzc3VtZSB0aGF0IHRoZSBzdGFjayBtdXN0IGFsd2F5cyBiZSByZWRlcGxveWVkLlxuICovXG5leHBvcnQgY29uc3QgU1NNUEFSQU1fTk9fSU5WQUxJREFURSA9ICdbY2RrOnNraXBdJztcbiJdfQ==","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentUtils = exports.UNKNOWN_REGION = exports.UNKNOWN_ACCOUNT = void 0;\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\nconst error_1 = require(\"./private/error\");\n/**\n * Parser for the artifact environment field.\n *\n * Account validation is relaxed to allow account aliasing in the future.\n */\nconst AWS_ENV_REGEX = /aws\\:\\/\\/([a-z0-9A-Z\\-\\@\\.\\_]+)\\/([a-z\\-0-9]+)/;\nexports.UNKNOWN_ACCOUNT = 'unknown-account';\nexports.UNKNOWN_REGION = 'unknown-region';\nclass EnvironmentUtils {\n static parse(environment) {\n const env = AWS_ENV_REGEX.exec(environment);\n if (!env) {\n throw new error_1.CloudAssemblyError(`Unable to parse environment specification \"${environment}\". ` +\n 'Expected format: aws://account/region');\n }\n const [, account, region] = env;\n if (!account || !region) {\n throw new error_1.CloudAssemblyError(`Invalid environment specification: ${environment}`);\n }\n return { account, region, name: environment };\n }\n /**\n * Build an environment object from an account and region\n */\n static make(account, region) {\n return { account, region, name: this.format(account, region) };\n }\n /**\n * Format an environment string from an account and region\n */\n static format(account, region) {\n return `aws://${account}/${region}`;\n }\n}\nexports.EnvironmentUtils = EnvironmentUtils;\n_a = JSII_RTTI_SYMBOL_1;\nEnvironmentUtils[_a] = { fqn: \"@aws-cdk/cx-api.EnvironmentUtils\", version: \"2.212.0\" };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUFxRDtBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsZ0RBQWdELENBQUM7QUFnQjFELFFBQUEsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBQ3BDLFFBQUEsY0FBYyxHQUFHLGdCQUFnQixDQUFDO0FBRS9DLE1BQWEsZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBbUI7UUFDckMsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksMEJBQWtCLENBQzFCLDhDQUE4QyxXQUFXLEtBQUs7Z0JBQzlELHVDQUF1QyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSwwQkFBa0IsQ0FBQyxzQ0FBc0MsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO0tBQy9DO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0tBQ2hFO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQ2xELE9BQU8sU0FBUyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7S0FDckM7O0FBN0JILDRDQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsb3VkQXNzZW1ibHlFcnJvciB9IGZyb20gJy4vcHJpdmF0ZS9lcnJvcic7XG5cbi8qKlxuICogUGFyc2VyIGZvciB0aGUgYXJ0aWZhY3QgZW52aXJvbm1lbnQgZmllbGQuXG4gKlxuICogQWNjb3VudCB2YWxpZGF0aW9uIGlzIHJlbGF4ZWQgdG8gYWxsb3cgYWNjb3VudCBhbGlhc2luZyBpbiB0aGUgZnV0dXJlLlxuICovXG5jb25zdCBBV1NfRU5WX1JFR0VYID0gL2F3c1xcOlxcL1xcLyhbYS16MC05QS1aXFwtXFxAXFwuXFxfXSspXFwvKFthLXpcXC0wLTldKykvO1xuXG4vKipcbiAqIE1vZGVscyBhbiBBV1MgZXhlY3V0aW9uIGVudmlyb25tZW50LCBmb3IgdXNlIHdpdGhpbiB0aGUgQ0RLIHRvb2xraXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuICAvKiogVGhlIGFyYml0cmFyeSBuYW1lIG9mIHRoaXMgZW52aXJvbm1lbnQgKHVzZXItc2V0LCBvciBhdCBsZWFzdCB1c2VyLW1lYW5pbmdmdWwpICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKiogVGhlIEFXUyBhY2NvdW50IHRoaXMgZW52aXJvbm1lbnQgZGVwbG95cyBpbnRvICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAvKiogVGhlIEFXUyByZWdpb24gbmFtZSB3aGVyZSB0aGlzIGVudmlyb25tZW50IGRlcGxveXMgaW50byAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFVOS05PV05fQUNDT1VOVCA9ICd1bmtub3duLWFjY291bnQnO1xuZXhwb3J0IGNvbnN0IFVOS05PV05fUkVHSU9OID0gJ3Vua25vd24tcmVnaW9uJztcblxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50VXRpbHMge1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKGVudmlyb25tZW50OiBzdHJpbmcpOiBFbnZpcm9ubWVudCB7XG4gICAgY29uc3QgZW52ID0gQVdTX0VOVl9SRUdFWC5leGVjKGVudmlyb25tZW50KTtcbiAgICBpZiAoIWVudikge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihcbiAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBlbnZpcm9ubWVudCBzcGVjaWZpY2F0aW9uIFwiJHtlbnZpcm9ubWVudH1cIi4gYCArXG4gICAgICAgICdFeHBlY3RlZCBmb3JtYXQ6IGF3czovL2FjY291bnQvcmVnaW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgWywgYWNjb3VudCwgcmVnaW9uXSA9IGVudjtcbiAgICBpZiAoIWFjY291bnQgfHwgIXJlZ2lvbikge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgSW52YWxpZCBlbnZpcm9ubWVudCBzcGVjaWZpY2F0aW9uOiAke2Vudmlyb25tZW50fWApO1xuICAgIH1cblxuICAgIHJldHVybiB7IGFjY291bnQsIHJlZ2lvbiwgbmFtZTogZW52aXJvbm1lbnQgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiBlbnZpcm9ubWVudCBvYmplY3QgZnJvbSBhbiBhY2NvdW50IGFuZCByZWdpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFrZShhY2NvdW50OiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nKTogRW52aXJvbm1lbnQge1xuICAgIHJldHVybiB7IGFjY291bnQsIHJlZ2lvbiwgbmFtZTogdGhpcy5mb3JtYXQoYWNjb3VudCwgcmVnaW9uKSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBhbiBlbnZpcm9ubWVudCBzdHJpbmcgZnJvbSBhbiBhY2NvdW50IGFuZCByZWdpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0KGFjY291bnQ6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgYXdzOi8vJHthY2NvdW50fS8ke3JlZ2lvbn1gO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY = exports.AUTOSCALING_GENERATE_LAUNCH_TEMPLATE = exports.EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID = exports.EFS_DENY_ANONYMOUS_ACCESS = exports.KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL = exports.KMS_ALIAS_NAME_REF = exports.INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION = exports.APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID = exports.EC2_RESTRICT_DEFAULT_SECURITY_GROUP = exports.ENABLE_EMR_SERVICE_POLICY_V2 = exports.REDSHIFT_COLUMN_ID = exports.SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY = exports.EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA = exports.APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID = exports.CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP = exports.DATABASE_PROXY_UNIQUE_RESOURCE_NAME = exports.AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT = exports.ROUTE53_PATTERNS_USE_CERTIFICATE = exports.S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY = exports.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER = exports.EVENTS_TARGET_QUEUE_SAME_ACCOUNT = exports.ENABLE_PARTITION_LITERALS = exports.APIGATEWAY_DISABLE_CLOUDWATCH_ROLE = exports.SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY = exports.S3_CREATE_DEFAULT_LOGGING_POLICY = exports.CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME = exports.VALIDATE_SNAPSHOT_REMOVAL_POLICY = exports.IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME = exports.IAM_MINIMIZE_POLICIES = exports.ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME = exports.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME = exports.ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER = exports.TARGET_PARTITIONS = exports.CHECK_SECRET_USAGE = exports.CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021 = exports.LAMBDA_RECOGNIZE_LAYER_VERSION = exports.LAMBDA_RECOGNIZE_VERSION_PROPS = exports.EFS_DEFAULT_ENCRYPTION_AT_REST = exports.APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID = exports.RDS_LOWERCASE_DB_IDENTIFIER = exports.ECS_REMOVE_DEFAULT_DESIRED_COUNT = exports.S3_GRANT_WRITE_WITHOUT_ACL = exports.KMS_DEFAULT_KEY_POLICIES = exports.SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME = exports.DOCKER_IGNORE_SUPPORT = exports.STACK_RELATIVE_EXPORTS_CONTEXT = exports.NEW_STYLE_STACK_SYNTHESIS_CONTEXT = exports.ENABLE_DIFF_NO_FAIL = exports.ENABLE_DIFF_NO_FAIL_CONTEXT = exports.ENABLE_STACK_NAME_DUPLICATES_CONTEXT = void 0;\nexports.CURRENT_MV = exports.FLAGS = exports.USE_CDK_MANAGED_LAMBDA_LOGGROUP = exports.S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT = exports.USE_RESOURCEID_FOR_VPCV2_MIGRATION = exports.EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESSONLYINTERNETGATEWAY = exports.S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS = exports.PIPELINE_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE = exports.LOG_USER_POOL_CLIENT_SECRET_VALUE = exports.DYNAMODB_TABLE_RETAIN_TABLE_REPLICA = exports.ASPECT_PRIORITIES_MUTATING = exports.EVENTBUS_POLICY_SID_REQUIRED = exports.PIPELINE_REDUCE_STAGE_ROLE_TRUST_SCOPE = exports.SET_UNIQUE_REPLICATION_ROLE_NAME = exports.LAMBDA_CREATE_NEW_POLICIES_WITH_ADDTOROLEPOLICY = exports.ENABLE_ADDITIONAL_METADATA_COLLECTION = exports.IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS = exports.ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT = exports.Disable_ECS_IMDS_Blocking = exports.Enable_IMDS_Blocking_Deprecated_Feature = exports.USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE = exports.SIGNER_PROFILE_NAME_PASSED_TO_CFN = exports.ASPECT_STABILIZATION = exports.BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT = exports.STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2 = exports.STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY = exports.LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES = exports.CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS = exports.USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY = exports.APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION = exports.EC2_SUM_TIMEOUT_ENABLED = exports.DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA = exports.REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS = exports.EXPLICIT_STACK_TAGS = exports.USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK = exports.S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET = exports.LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT = exports.ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM = exports.EBS_DEFAULT_GP3 = exports.EKS_NODEGROUP_NAME = exports.PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE = exports.KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE = exports.CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2 = exports.CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE = exports.LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION = exports.CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME = exports.APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION = exports.AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS = exports.RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS = exports.LAMBDA_NODEJS_USE_LATEST_RUNTIME = void 0;\nexports.NEW_PROJECT_DEFAULT_CONTEXT = exports.FUTURE_FLAGS = exports.FUTURE_FLAGS_EXPIRED = exports.CURRENT_VERSION_FLAG_DEFAULTS = exports.CURRENTLY_RECOMMENDED_FLAGS = exports.CURRENT_VERSION_EXPIRED_FLAGS = void 0;\nexports.futureFlagDefault = futureFlagDefault;\nconst flag_modeling_1 = require(\"./private/flag-modeling\");\n////////////////////////////////////////////////////////////////////////\n//\n// This file defines context keys that enable certain features that are\n// implemented behind a flag in order to preserve backwards compatibility for\n// existing apps. When a new app is initialized through `cdk init`, the CLI will\n// automatically add enable these features by adding them to the generated\n// `cdk.json` file.\n//\n////////////////////////////////////////////////////////////////////////\n//\n// !!! IMPORTANT !!!\n//\n// When you introduce a new flag, set its 'introducedIn.v2' value to the literal string\n// 'V2·NEXT', without the dot.\n//\n// DO NOT USE A VARIABLE. DO NOT DEFINE A CONSTANT. The actual value will be string-replaced at\n// version bump time.\n//\n////////////////////////////////////////////////////////////////////////\n//\n// There are three types of flags: ApiDefault, BugFix, and VisibleContext flags.\n//\n// - ApiDefault flags: change the behavior or defaults of the construct library.\n// It is still possible to achieve the old behavior via the official API\n// but changes are necessary (e.g. passing a boolean flag).\n//\n// Implications for future Major Version:\n// - The recommended value will become the default value.\n// - Flags of this type will be removed (code changes will become mandatory).\n//\n// - BugFix flags: the old infra we used to generate is no longer recommended.\n// The old behavior cannot be achieved anymore using the official API (only\n// by making sure the feature flag is unset). Mostly used for infra-impacting\n// bugfixes or enhanced security defaults.\n//\n// Implications for future Major Version:\n// - The recommended value will become the default value.\n// - Flag will never be removed (no other way to achieve legacy behavior).\n//\n// - VisibleContext flags: not really a feature flag, but configurable context which is\n// advertised by putting the context in the `cdk.json` file of new projects.\n//\n// See https://github.com/aws/aws-cdk-rfcs/blob/master/text/0055-feature-flags.md\n// --------------------------------------------------------------------------------\nexports.ENABLE_STACK_NAME_DUPLICATES_CONTEXT = '@aws-cdk/core:enableStackNameDuplicates';\nexports.ENABLE_DIFF_NO_FAIL_CONTEXT = 'aws-cdk:enableDiffNoFail';\n/** @deprecated use `ENABLE_DIFF_NO_FAIL_CONTEXT` */\nexports.ENABLE_DIFF_NO_FAIL = exports.ENABLE_DIFF_NO_FAIL_CONTEXT;\nexports.NEW_STYLE_STACK_SYNTHESIS_CONTEXT = '@aws-cdk/core:newStyleStackSynthesis';\nexports.STACK_RELATIVE_EXPORTS_CONTEXT = '@aws-cdk/core:stackRelativeExports';\nexports.DOCKER_IGNORE_SUPPORT = '@aws-cdk/aws-ecr-assets:dockerIgnoreSupport';\nexports.SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME = '@aws-cdk/aws-secretsmanager:parseOwnedSecretName';\nexports.KMS_DEFAULT_KEY_POLICIES = '@aws-cdk/aws-kms:defaultKeyPolicies';\nexports.S3_GRANT_WRITE_WITHOUT_ACL = '@aws-cdk/aws-s3:grantWriteWithoutAcl';\nexports.ECS_REMOVE_DEFAULT_DESIRED_COUNT = '@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount';\nexports.RDS_LOWERCASE_DB_IDENTIFIER = '@aws-cdk/aws-rds:lowercaseDbIdentifier';\nexports.APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID = '@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId';\nexports.EFS_DEFAULT_ENCRYPTION_AT_REST = '@aws-cdk/aws-efs:defaultEncryptionAtRest';\nexports.LAMBDA_RECOGNIZE_VERSION_PROPS = '@aws-cdk/aws-lambda:recognizeVersionProps';\nexports.LAMBDA_RECOGNIZE_LAYER_VERSION = '@aws-cdk/aws-lambda:recognizeLayerVersion';\nexports.CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021 = '@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021';\nexports.CHECK_SECRET_USAGE = '@aws-cdk/core:checkSecretUsage';\nexports.TARGET_PARTITIONS = '@aws-cdk/core:target-partitions';\nexports.ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER = '@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver';\nexports.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME = '@aws-cdk/aws-ec2:uniqueImdsv2TemplateName';\nexports.ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME = '@aws-cdk/aws-ecs:arnFormatIncludesClusterName';\nexports.IAM_MINIMIZE_POLICIES = '@aws-cdk/aws-iam:minimizePolicies';\nexports.IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME = '@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName';\nexports.VALIDATE_SNAPSHOT_REMOVAL_POLICY = '@aws-cdk/core:validateSnapshotRemovalPolicy';\nexports.CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME = '@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName';\nexports.S3_CREATE_DEFAULT_LOGGING_POLICY = '@aws-cdk/aws-s3:createDefaultLoggingPolicy';\nexports.SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY = '@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption';\nexports.APIGATEWAY_DISABLE_CLOUDWATCH_ROLE = '@aws-cdk/aws-apigateway:disableCloudWatchRole';\nexports.ENABLE_PARTITION_LITERALS = '@aws-cdk/core:enablePartitionLiterals';\nexports.EVENTS_TARGET_QUEUE_SAME_ACCOUNT = '@aws-cdk/aws-events:eventsTargetQueueSameAccount';\nexports.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER = '@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker';\nexports.S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY = '@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy';\nexports.ROUTE53_PATTERNS_USE_CERTIFICATE = '@aws-cdk/aws-route53-patters:useCertificate';\nexports.AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT = '@aws-cdk/customresources:installLatestAwsSdkDefault';\nexports.DATABASE_PROXY_UNIQUE_RESOURCE_NAME = '@aws-cdk/aws-rds:databaseProxyUniqueResourceName';\nexports.CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP = '@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup';\nexports.APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID = '@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId';\nexports.EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA = '@aws-cdk/aws-ec2:launchTemplateDefaultUserData';\nexports.SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY = '@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments';\nexports.REDSHIFT_COLUMN_ID = '@aws-cdk/aws-redshift:columnId';\nexports.ENABLE_EMR_SERVICE_POLICY_V2 = '@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2';\nexports.EC2_RESTRICT_DEFAULT_SECURITY_GROUP = '@aws-cdk/aws-ec2:restrictDefaultSecurityGroup';\nexports.APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID = '@aws-cdk/aws-apigateway:requestValidatorUniqueId';\nexports.INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION = '@aws-cdk/core:includePrefixInUniqueNameGeneration';\nexports.KMS_ALIAS_NAME_REF = '@aws-cdk/aws-kms:aliasNameRef';\nexports.KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL = '@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal';\nexports.EFS_DENY_ANONYMOUS_ACCESS = '@aws-cdk/aws-efs:denyAnonymousAccess';\nexports.EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID = '@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId';\nexports.AUTOSCALING_GENERATE_LAUNCH_TEMPLATE = '@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig';\nexports.ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY = '@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby';\nexports.LAMBDA_NODEJS_USE_LATEST_RUNTIME = '@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion';\nexports.RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS = '@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials';\nexports.AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS = '@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters';\nexports.APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION = '@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier';\nexports.CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME = '@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource';\nexports.LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION = '@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction';\nexports.CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE = '@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse';\nexports.CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2 = '@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2';\nexports.KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE = '@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope';\nexports.PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE = '@aws-cdk/pipelines:reduceAssetRoleTrustScope';\nexports.EKS_NODEGROUP_NAME = '@aws-cdk/aws-eks:nodegroupNameAttribute';\nexports.EBS_DEFAULT_GP3 = '@aws-cdk/aws-ec2:ebsDefaultGp3Volume';\nexports.ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM = '@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm';\nexports.LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT = '@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault';\nexports.S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET = '@aws-cdk/aws-s3:keepNotificationInImportedBucket';\nexports.USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK = '@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask';\nexports.EXPLICIT_STACK_TAGS = '@aws-cdk/core:explicitStackTags';\nexports.REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS = '@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions';\nexports.DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA = '@aws-cdk/aws-dynamodb:resourcePolicyPerReplica';\nexports.EC2_SUM_TIMEOUT_ENABLED = '@aws-cdk/aws-ec2:ec2SumTImeoutEnabled';\nexports.APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION = '@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission';\nexports.USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY = '@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId';\nexports.CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS = '@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics';\nexports.LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES = '@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages';\nexports.STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY = '@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy';\nexports.STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2 = '@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2';\nexports.BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT = '@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault';\nexports.ASPECT_STABILIZATION = '@aws-cdk/core:aspectStabilization';\nexports.SIGNER_PROFILE_NAME_PASSED_TO_CFN = '@aws-cdk/aws-signer:signingProfileNamePassedToCfn';\nexports.USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE = '@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource';\nexports.Enable_IMDS_Blocking_Deprecated_Feature = '@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature';\nexports.Disable_ECS_IMDS_Blocking = '@aws-cdk/aws-ecs:disableEcsImdsBlocking';\nexports.ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT = '@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault';\nexports.IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS = '@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections';\nexports.ENABLE_ADDITIONAL_METADATA_COLLECTION = '@aws-cdk/core:enableAdditionalMetadataCollection';\nexports.LAMBDA_CREATE_NEW_POLICIES_WITH_ADDTOROLEPOLICY = '@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy';\nexports.SET_UNIQUE_REPLICATION_ROLE_NAME = '@aws-cdk/aws-s3:setUniqueReplicationRoleName';\nexports.PIPELINE_REDUCE_STAGE_ROLE_TRUST_SCOPE = '@aws-cdk/pipelines:reduceStageRoleTrustScope';\nexports.EVENTBUS_POLICY_SID_REQUIRED = '@aws-cdk/aws-events:requireEventBusPolicySid';\nexports.ASPECT_PRIORITIES_MUTATING = '@aws-cdk/core:aspectPrioritiesMutating';\nexports.DYNAMODB_TABLE_RETAIN_TABLE_REPLICA = '@aws-cdk/aws-dynamodb:retainTableReplica';\nexports.LOG_USER_POOL_CLIENT_SECRET_VALUE = '@aws-cdk/cognito:logUserPoolClientSecretValue';\nexports.PIPELINE_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE = '@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope';\nexports.S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS = '@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions';\nexports.EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESSONLYINTERNETGATEWAY = '@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway';\nexports.USE_RESOURCEID_FOR_VPCV2_MIGRATION = '@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration';\nexports.S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT = '@aws-cdk/aws-s3:publicAccessBlockedByDefault';\nexports.USE_CDK_MANAGED_LAMBDA_LOGGROUP = '@aws-cdk/aws-lambda:useCdkManagedLogGroup';\nexports.FLAGS = {\n //////////////////////////////////////////////////////////////////////\n [exports.SIGNER_PROFILE_NAME_PASSED_TO_CFN]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Pass signingProfileName to CfnSigningProfile',\n detailsMd: `\n When enabled, the \\`signingProfileName\\` property is passed to the L1 \\`CfnSigningProfile\\` construct,\n which ensures that the AWS Signer profile is created with the specified name.\n \n When disabled, the \\`signingProfileName\\` is not passed to CloudFormation, maintaining backward\n compatibility with existing deployments where CloudFormation auto-generated profile names.\n \n This feature flag is needed because enabling it can cause existing signing profiles to be\n replaced during deployment if a \\`signingProfileName\\` was specified but not previously used\n in the CloudFormation template.`,\n introducedIn: { v2: '2.212.0' },\n recommendedValue: true,\n unconfiguredBehavesLike: { v2: false },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_STACK_NAME_DUPLICATES_CONTEXT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Allow multiple stacks with the same name',\n detailsMd: `\n If this is set, multiple stacks can use the same stack name (e.g. deployed to\n different environments). This means that the name of the synthesized template\n file will be based on the construct path and not on the defined \\`stackName\\`\n of the stack.`,\n recommendedValue: true,\n introducedIn: { v1: '1.16.0' },\n unconfiguredBehavesLike: { v2: true },\n compatibilityWithOldBehaviorMd: 'Pass stack identifiers to the CLI instead of stack names.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_DIFF_NO_FAIL_CONTEXT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Make `cdk diff` not fail when there are differences',\n detailsMd: `\n Determines what status code \\`cdk diff\\` should return when the specified stack\n differs from the deployed stack or the local CloudFormation template:\n\n * \\`aws-cdk:enableDiffNoFail=true\\` => status code == 0\n * \\`aws-cdk:enableDiffNoFail=false\\` => status code == 1\n\n You can override this behavior with the --fail flag:\n\n * \\`--fail\\` => status code == 1\n * \\`--no-fail\\` => status code == 0`,\n introducedIn: { v1: '1.19.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Specify `--fail` to the CLI.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.NEW_STYLE_STACK_SYNTHESIS_CONTEXT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Switch to new stack synthesis method which enables CI/CD',\n detailsMd: `\n If this flag is specified, all \\`Stack\\`s will use the \\`DefaultStackSynthesizer\\` by\n default. If it is not set, they will use the \\`LegacyStackSynthesizer\\`.`,\n introducedIn: { v1: '1.39.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.STACK_RELATIVE_EXPORTS_CONTEXT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Name exports based on the construct paths relative to the stack, rather than the global construct path',\n detailsMd: `\n Combined with the stack name this relative construct path is good enough to\n ensure uniqueness, and makes the export names robust against refactoring\n the location of the stack in the construct tree (specifically, moving the Stack\n into a Stage).`,\n introducedIn: { v1: '1.58.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.DOCKER_IGNORE_SUPPORT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'DockerImageAsset properly supports `.dockerignore` files by default',\n detailsMd: `\n If this flag is not set, the default behavior for \\`DockerImageAsset\\` is to use\n glob semantics for \\`.dockerignore\\` files. If this flag is set, the default behavior\n is standard Docker ignore semantics.\n\n This is a feature flag as the old behavior was technically incorrect but\n users may have come to depend on it.`,\n introducedIn: { v1: '1.73.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Update your `.dockerignore` file to match standard Docker ignore rules, if necessary.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Fix the referencing of SecretsManager names from ARNs',\n detailsMd: `\n Secret.secretName for an \"owned\" secret will attempt to parse the secretName from the ARN,\n rather than the default full resource name, which includes the SecretsManager suffix.\n\n If this flag is not set, Secret.secretName will include the SecretsManager suffix, which cannot be directly\n used by SecretsManager.DescribeSecret, and must be parsed by the user first (e.g., Fn:Join, Fn:Select, Fn:Split).`,\n introducedIn: { v1: '1.77.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Use `parseArn(secret.secretName).resourceName` to emulate the incorrect old parsing.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_DEFAULT_KEY_POLICIES]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Tighten default KMS key policies',\n detailsMd: `\n KMS Keys start with a default key policy that grants the account access to administer the key,\n mirroring the behavior of the KMS SDK/CLI/Console experience. Users may override the default key\n policy by specifying their own.\n\n If this flag is not set, the default key policy depends on the setting of the \\`trustAccountIdentities\\`\n flag. If false (the default, for backwards-compatibility reasons), the default key policy somewhat\n resembles the default admin key policy, but with the addition of 'GenerateDataKey' permissions. If\n true, the policy matches what happens when this feature flag is set.\n\n Additionally, if this flag is not set and the user supplies a custom key policy, this will be appended\n to the key's default policy (rather than replacing it).`,\n introducedIn: { v1: '1.78.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `trustAccountIdentities: false` to `Key` construct to restore the old behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_GRANT_WRITE_WITHOUT_ACL]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Remove `PutObjectAcl` from Bucket.grantWrite',\n detailsMd: `\n Change the old 's3:PutObject*' permission to 's3:PutObject' on Bucket,\n as the former includes 's3:PutObjectAcl',\n which could be used to grant read/write object access to IAM principals in other accounts.\n Use a feature flag to make sure existing customers who might be relying\n on the overly-broad permissions are not broken.`,\n introducedIn: { v1: '1.85.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Call `bucket.grantPutAcl()` in addition to `bucket.grantWrite()` to grant ACL permissions.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_REMOVE_DEFAULT_DESIRED_COUNT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Do not specify a default DesiredCount for ECS services',\n detailsMd: `\n ApplicationLoadBalancedServiceBase, ApplicationMultipleTargetGroupServiceBase,\n NetworkLoadBalancedServiceBase, NetworkMultipleTargetGroupServiceBase, and\n QueueProcessingServiceBase currently determine a default value for the desired count of\n a CfnService if a desiredCount is not provided. The result of this is that on every\n deployment, the service count is reset to the fixed value, even if it was autoscaled.\n\n If this flag is not set, the default behaviour for CfnService.desiredCount is to set a\n desiredCount of 1, if one is not provided. If true, a default will not be defined for\n CfnService.desiredCount and as such desiredCount will be undefined, if one is not provided.`,\n introducedIn: { v1: '1.92.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'You can pass `desiredCount: 1` explicitly, but you should never need this.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.RDS_LOWERCASE_DB_IDENTIFIER]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Force lowercasing of RDS Cluster names in CDK',\n detailsMd: `\n Cluster names must be lowercase, and the service will lowercase the name when the cluster\n is created. However, CDK did not use to know about this, and would use the user-provided name\n referencing the cluster, which would fail if it happened to be mixed-case.\n\n With this flag, lowercase the name in CDK so we can reference it properly.\n\n Must be behind a permanent flag because changing a name from mixed case to lowercase between deployments\n would lead CloudFormation to think the name was changed and would trigger a cluster replacement\n (losing data!).`,\n introducedIn: { v1: '1.97.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Allow adding/removing multiple UsagePlanKeys independently',\n detailsMd: `\n The UsagePlanKey resource connects an ApiKey with a UsagePlan. API Gateway does not allow more than one UsagePlanKey\n for any given UsagePlan and ApiKey combination. For this reason, CloudFormation cannot replace this resource without\n either the UsagePlan or ApiKey changing.\n\n The feature addition to support multiple UsagePlanKey resources - 142bd0e2 - recognized this and attempted to keep\n existing UsagePlanKey logical ids unchanged.\n However, this intentionally caused the logical id of the UsagePlanKey to be sensitive to order. That is, when\n the 'first' UsagePlanKey resource is removed, the logical id of the 'second' assumes what was originally the 'first',\n which again is disallowed.\n\n In effect, there is no way to get out of this mess in a backwards compatible way, while supporting existing stacks.\n This flag changes the logical id layout of UsagePlanKey to not be sensitive to order.`,\n introducedIn: { v1: '1.98.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EFS_DEFAULT_ENCRYPTION_AT_REST]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enable this feature flag to have elastic file systems encrypted at rest by default.',\n detailsMd: `\n Encryption can also be configured explicitly using the \\`encrypted\\` property.\n `,\n introducedIn: { v1: '1.98.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass the `encrypted: false` property to the `FileSystem` construct to disable encryption.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_RECOGNIZE_VERSION_PROPS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.',\n detailsMd: `\n The previous calculation incorrectly considered properties of the \\`AWS::Lambda::Function\\` resource that did\n not constitute creating a new Version.\n\n See 'currentVersion' section in the aws-lambda module's README for more details.`,\n introducedIn: { v1: '1.106.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_RECOGNIZE_LAYER_VERSION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.',\n detailsMd: `\n This flag correct incorporates Lambda Layer properties into the Lambda Function Version.\n\n See 'currentVersion' section in the aws-lambda module's README for more details.`,\n introducedIn: { v1: '1.159.0', v2: '2.27.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.',\n detailsMd: `\n The security policy can also be configured explicitly using the \\`minimumProtocolVersion\\` property.`,\n introducedIn: { v1: '1.117.0', v2: '2.0.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CHECK_SECRET_USAGE]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'Enable this flag to make it impossible to accidentally use SecretValues in unsafe locations',\n detailsMd: `\n With this flag enabled, \\`SecretValue\\` instances can only be passed to\n constructs that accept \\`SecretValue\\`s; otherwise, \\`unsafeUnwrap()\\` must be\n called to use it as a regular string.`,\n introducedIn: { v1: '1.153.0', v2: '2.21.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.TARGET_PARTITIONS]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'What regions to include in lookup tables of environment agnostic stacks',\n detailsMd: `\n Has no effect on stacks that have a defined region, but will limit the amount\n of unnecessary regions included in stacks without a known region.\n\n The type of this value should be a list of strings.`,\n introducedIn: { v1: '1.137.0', v2: '2.4.0' },\n recommendedValue: ['aws', 'aws-cn'],\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'ECS extensions will automatically add an `awslogs` driver if no logging is specified',\n detailsMd: `\n Enable this feature flag to configure default logging behavior for the ECS Service Extensions. This will enable the\n \\`awslogs\\` log driver for the application container of the service to send the container logs to CloudWatch Logs.\n\n This is a feature flag as the new behavior provides a better default experience for the users.`,\n introducedIn: { v1: '1.140.0', v2: '2.8.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Specify a log driver explicitly.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to have Launch Templates generated by the `InstanceRequireImdsv2Aspect` use unique names.',\n detailsMd: `\n Previously, the generated Launch Template names were only unique within a stack because they were based only on the\n \\`Instance\\` construct ID. If another stack that has an \\`Instance\\` with the same construct ID is deployed in the same\n account and region, the deployments would always fail as the generated Launch Template names were the same.\n\n The new implementation addresses this issue by generating the Launch Template name with the \\`Names.uniqueId\\` method.`,\n introducedIn: { v1: '1.140.0', v2: '2.8.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'ARN format used by ECS. In the new ARN format, the cluster name is part of the resource ID.',\n detailsMd: `\n If this flag is not set, the old ARN format (without cluster name) for ECS is used.\n If this flag is set, the new ARN format (with cluster name) for ECS is used.\n\n This is a feature flag as the old format is still valid for existing ECS clusters.\n\n See https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids\n `,\n introducedIn: { v2: '2.35.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.IAM_MINIMIZE_POLICIES]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'Minimize IAM policies by combining Statements',\n detailsMd: `\n Minimize IAM policies by combining Principals, Actions and Resources of two\n Statements in the policies, as long as it doesn't change the meaning of the\n policy.`,\n introducedIn: { v1: '1.150.0', v2: '2.18.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.VALIDATE_SNAPSHOT_REMOVAL_POLICY]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Error on snapshot removal policies on resources that do not support it.',\n detailsMd: `\n Makes sure we do not allow snapshot removal policy on resources that do not support it.\n If supplied on an unsupported resource, CloudFormation ignores the policy altogether.\n This flag will reduce confusion and unexpected loss of data when erroneously supplying\n the snapshot removal policy.`,\n introducedIn: { v2: '2.28.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'The old behavior was incorrect. Update your source to not specify SNAPSHOT policies on resources that do not support it.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Generate key aliases that include the stack name',\n detailsMd: `\n Enable this feature flag to have CodePipeline generate a unique cross account key alias name using the stack name.\n\n Previously, when creating multiple pipelines with similar naming conventions and when crossAccountKeys is true,\n the KMS key alias name created for these pipelines may be the same due to how the uniqueId is generated.\n\n This new implementation creates a stack safe resource name for the alias using the stack name instead of the stack ID.\n `,\n introducedIn: { v2: '2.29.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_CREATE_DEFAULT_LOGGING_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature flag to create an S3 bucket policy by default in cases where an AWS service would automatically create the Policy if one does not exist.',\n detailsMd: `\n For example, in order to send VPC flow logs to an S3 bucket, there is a specific Bucket Policy\n that needs to be attached to the bucket. If you create the bucket without a policy and then add the\n bucket as the flow log destination, the service will automatically create the bucket policy with the\n necessary permissions. If you were to then try and add your own bucket policy CloudFormation will throw\n and error indicating that a bucket policy already exists.\n\n In cases where we know what the required policy is we can go ahead and create the policy so we can\n remain in control of it.\n\n @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3\n `,\n introducedIn: { v2: '2.31.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Restrict KMS key policy for encrypted Queues a bit more',\n detailsMd: `\n Enable this feature flag to restrict the decryption of a SQS queue, which is subscribed to a SNS topic, to\n only the topic which it is subscribed to and not the whole SNS service of an account.\n\n Previously the decryption was only restricted to the SNS service principal. To make the SQS subscription more\n secure, it is a good practice to restrict the decryption further and only allow the connected SNS topic to decryption\n the subscribed queue.`,\n introducedIn: { v2: '2.32.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_DISABLE_CLOUDWATCH_ROLE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Make default CloudWatch Role behavior safe for multiple API Gateways in one environment',\n detailsMd: `\n Enable this feature flag to change the default behavior for aws-apigateway.RestApi and aws-apigateway.SpecRestApi\n to _not_ create a CloudWatch role and Account. There is only a single ApiGateway account per AWS\n environment which means that each time you create a RestApi in your account the ApiGateway account\n is overwritten. If at some point the newest RestApi is deleted, the ApiGateway Account and CloudWatch\n role will also be deleted, breaking any existing ApiGateways that were depending on them.\n\n When this flag is enabled you should either create the ApiGateway account and CloudWatch role\n separately _or_ only enable the cloudWatchRole on a single RestApi.\n `,\n introducedIn: { v2: '2.38.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_PARTITION_LITERALS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Make ARNs concrete if AWS partition is known',\n // eslint-disable-next-line @cdklabs/no-literal-partition\n detailsMd: `\n Enable this feature flag to get partition names as string literals in Stacks with known regions defined in\n their environment, such as \"aws\" or \"aws-cn\". Previously the CloudFormation intrinsic function\n \"Ref: AWS::Partition\" was used. For example:\n\n \\`\\`\\`yaml\n Principal:\n AWS:\n Fn::Join:\n - \"\"\n - - \"arn:\"\n - Ref: AWS::Partition\n - :iam::123456789876:root\n \\`\\`\\`\n\n becomes:\n\n \\`\\`\\`yaml\n Principal:\n AWS: \"arn:aws:iam::123456789876:root\"\n \\`\\`\\`\n\n The intrinsic function will still be used in Stacks where no region is defined or the region's partition\n is unknown.\n `,\n introducedIn: { v2: '2.38.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EVENTS_TARGET_QUEUE_SAME_ACCOUNT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Event Rules may only push to encrypted SQS queues in the same account',\n detailsMd: `\n This flag applies to SQS Queues that are used as the target of event Rules. When enabled, only principals\n from the same account as the Rule can send messages. If a queue is unencrypted, this restriction will\n always apply, regardless of the value of this flag.\n `,\n introducedIn: { v2: '2.51.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Avoid setting the \"ECS\" deployment controller when adding a circuit breaker',\n detailsMd: `\n Enable this feature flag to avoid setting the \"ECS\" deployment controller when adding a circuit breaker to an\n ECS Service, as this will trigger a full replacement which fails to deploy when using set service names.\n This does not change any behaviour as the default deployment controller when it is not defined is ECS.\n\n This is a feature flag as the new behavior provides a better default experience for the users.\n `,\n introducedIn: { v2: '2.51.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in.',\n detailsMd: `\n Without this, importing the same role in multiple places could lead to the permissions given for one version of the imported role\n to overwrite permissions given to the role at a different place where it was imported. This was due to all imported instances\n of a role using the same default policy name.\n\n This new implementation creates default policy names based on the constructs node path in their stack.\n `,\n introducedIn: { v2: '2.60.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Use S3 Bucket Policy instead of ACLs for Server Access Logging',\n detailsMd: `\n Enable this feature flag to use S3 Bucket Policy for granting permission fo Server Access Logging\n rather than using the canned \\`LogDeliveryWrite\\` ACL. ACLs do not work when Object Ownership is\n enabled on the bucket.\n\n This flag uses a Bucket Policy statement to allow Server Access Log delivery, following best\n practices for S3.\n\n @see https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html\n `,\n introducedIn: { v2: '2.60.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ROUTE53_PATTERNS_USE_CERTIFICATE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Use the official `Certificate` resource instead of `DnsValidatedCertificate`',\n detailsMd: `\n Enable this feature flag to use the official CloudFormation supported \\`Certificate\\` resource instead\n of the deprecated \\`DnsValidatedCertificate\\` construct. If this flag is enabled and you are creating\n the stack in a region other than us-east-1 then you must also set \\`crossRegionReferences=true\\` on the\n stack.\n `,\n introducedIn: { v2: '2.61.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Define a `DnsValidatedCertificate` explicitly and pass in the `certificate` property',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Whether to install the latest SDK by default in AwsCustomResource',\n detailsMd: `\n This was originally introduced and enabled by default to not be limited by the SDK version\n that's installed on AWS Lambda. However, it creates issues for Lambdas bound to VPCs that\n do not have internet access, or in environments where 'npmjs.com' is not available.\n\n The recommended setting is to disable the default installation behavior, and pass the\n flag on a resource-by-resource basis to enable it if necessary.\n `,\n compatibilityWithOldBehaviorMd: 'Set installLatestAwsSdk: true on all resources that need it.',\n introducedIn: { v2: '2.60.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.DATABASE_PROXY_UNIQUE_RESOURCE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Use unique resource name for Database Proxy',\n detailsMd: `\n If this flag is not set, the default behavior for \\`DatabaseProxy\\` is\n to use \\`id\\` of the constructor for \\`dbProxyName\\` when it's not specified in the argument.\n In this case, users can't deploy \\`DatabaseProxy\\`s that have the same \\`id\\` in the same region.\n\n If this flag is set, the default behavior is to use unique resource names for each \\`DatabaseProxy\\`.\n\n This is a feature flag as the old behavior was technically incorrect, but users may have come to depend on it.\n `,\n introducedIn: { v2: '2.65.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Remove CloudWatch alarms from deployment group',\n detailsMd: `\n Enable this flag to be able to remove all CloudWatch alarms from a deployment group by removing\n the alarms from the construct. If this flag is not set, removing all alarms from the construct\n will still leave the alarms configured for the deployment group.\n `,\n introducedIn: { v2: '2.65.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Include authorizer configuration in the calculation of the API deployment logical ID.',\n detailsMd: `\n The logical ID of the AWS::ApiGateway::Deployment resource is calculated by hashing\n the API configuration, including methods, and resources, etc. Enable this feature flag\n to also include the configuration of any authorizer attached to the API in the\n calculation, so any changes made to an authorizer will create a new deployment.\n `,\n introducedIn: { v2: '2.66.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Define user data for a launch template by default when a machine image is provided.',\n detailsMd: `\n The ec2.LaunchTemplate construct did not define user data when a machine image is\n provided despite the document. If this is set, a user data is automatically defined\n according to the OS of the machine image.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.67.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'SecretTargetAttachments uses the ResourcePolicy of the attached Secret.',\n detailsMd: `\n Enable this feature flag to make SecretTargetAttachments use the ResourcePolicy of the attached Secret.\n SecretTargetAttachments are created to connect a Secret to a target resource.\n In CDK code, they behave like regular Secret and can be used as a stand-in in most situations.\n Previously, adding to the ResourcePolicy of a SecretTargetAttachment did attempt to create a separate ResourcePolicy for the same Secret.\n However Secrets can only have a single ResourcePolicy, causing the CloudFormation deployment to fail.\n\n When enabling this feature flag for an existing Stack, ResourcePolicies created via a SecretTargetAttachment will need replacement.\n This won't be possible without intervention due to limitation outlined above.\n First remove all permissions granted to the Secret and deploy without the ResourcePolicies.\n Then you can re-add the permissions and deploy again.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.67.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.REDSHIFT_COLUMN_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Whether to use an ID to track Redshift column changes',\n detailsMd: `\n Redshift columns are identified by their \\`name\\`. If a column is renamed, the old column\n will be dropped and a new column will be created. This can cause data loss.\n\n This flag enables the use of an \\`id\\` attribute for Redshift columns. If this flag is enabled, the\n internal CDK architecture will track changes of Redshift columns through their \\`id\\`, rather\n than their \\`name\\`. This will prevent data loss when columns are renamed.\n\n **NOTE** - Enabling this flag comes at a **risk**. When enabled, update the \\`id\\`s of all columns,\n **however** do not change the \\`names\\`s of the columns. If the \\`name\\`s of the columns are changed during\n initial deployment, the columns will be dropped and recreated, causing data loss. After the initial deployment\n of the \\`id\\`s, the \\`name\\`s of the columns can be changed without data loss.\n `,\n introducedIn: { v2: '2.68.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_EMR_SERVICE_POLICY_V2]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable AmazonEMRServicePolicy_v2 managed policies',\n detailsMd: `\n If this flag is not set, the default behavior for \\`EmrCreateCluster\\` is\n to use \\`AmazonElasticMapReduceRole\\` managed policies.\n\n If this flag is set, the default behavior is to use the new \\`AmazonEMRServicePolicy_v2\\`\n managed policies.\n\n This is a feature flag as the old behavior will be deprecated, but some resources may require manual\n intervention since they might not have the appropriate tags propagated automatically.\n `,\n introducedIn: { v2: '2.72.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_RESTRICT_DEFAULT_SECURITY_GROUP]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Restrict access to the VPC default security group',\n detailsMd: `\n Enable this feature flag to remove the default ingress/egress rules from the\n VPC default security group.\n\n When a VPC is created, a default security group is created as well and this cannot\n be deleted. The default security group is created with ingress/egress rules that allow\n _all_ traffic. [AWS Security best practices recommend](https://docs.aws.amazon.com/securityhub/latest/userguide/ec2-controls.html#ec2-2)\n removing these ingress/egress rules in order to restrict access to the default security group.\n `,\n introducedIn: { v2: '2.78.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: `\n To allow all ingress/egress traffic to the VPC default security group you\n can set the \\`restrictDefaultSecurityGroup: false\\`.\n `,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Generate a unique id for each RequestValidator added to a method',\n detailsMd: `\n This flag allows multiple RequestValidators to be added to a RestApi when\n providing the \\`RequestValidatorOptions\\` in the \\`addMethod()\\` method.\n\n If the flag is not set then only a single RequestValidator can be added in this way.\n Any additional RequestValidators have to be created directly with \\`new RequestValidator\\`.\n `,\n introducedIn: { v2: '2.78.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_ALIAS_NAME_REF]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'KMS Alias name and keyArn will have implicit reference to KMS Key',\n detailsMd: `\n This flag allows an implicit dependency to be created between KMS Alias and KMS Key\n when referencing key.aliasName or key.keyArn.\n\n If the flag is not set then a raw string is passed as the Alias name and no\n implicit dependencies will be set.\n `,\n introducedIn: { v2: '2.83.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition',\n detailsMd: `\n This flag enables the grant methods (grant, grantDecrypt, grantEncrypt, etc.) on Aliases imported\n by name to grant permissions based on the 'kms:ResourceAliases' condition rather than no-op grants.\n When disabled, grant calls on imported aliases will be dropped (no-op) to maintain compatibility.\n `,\n introducedIn: { v2: '2.202.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Remove calls to the grant* methods on the aliases referenced by name',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.AUTOSCALING_GENERATE_LAUNCH_TEMPLATE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Generate a launch template when creating an AutoScalingGroup',\n detailsMd: `\n Enable this flag to allow AutoScalingGroups to generate a launch template when being created.\n Launch configurations have been deprecated and cannot be created in AWS Accounts created after\n December 31, 2023. Existing 'AutoScalingGroup' properties used for creating a launch configuration\n will now create an equivalent 'launchTemplate'. Alternatively, users can provide an explicit\n 'launchTemplate' or 'mixedInstancesPolicy'. When this flag is enabled a 'launchTemplate' will\n attempt to set user data according to the OS of the machine image if explicit user data is not\n provided.\n `,\n introducedIn: { v2: '2.88.0' },\n compatibilityWithOldBehaviorMd: `\n If backwards compatibility needs to be maintained due to an existing autoscaling group\n using a launch config, set this flag to false.\n `,\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Include the stack prefix in the stack name generation process',\n detailsMd: `\n This flag prevents the prefix of a stack from making the stack's name longer than the 128 character limit.\n\n If the flag is set, the prefix is included in the stack name generation process.\n If the flag is not set, then the prefix of the stack is prepended to the generated stack name.\n\n **NOTE** - Enabling this flag comes at a **risk**. If you have already deployed stacks, changing the status of this\n feature flag can lead to a change in stacks' name. Changing a stack name mean recreating the whole stack, which\n is not viable in some productive setups.\n `,\n introducedIn: { v2: '2.84.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EFS_DENY_ANONYMOUS_ACCESS]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'EFS denies anonymous clients accesses',\n detailsMd: `\n This flag adds the file system policy that denies anonymous clients\n access to \\`efs.FileSystem\\`.\n\n If this flag is not set, \\`efs.FileSystem\\` will allow all anonymous clients\n that can access over the network.`,\n introducedIn: { v2: '2.93.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'You can pass `allowAnonymousAccess: true` so allow anonymous clients access.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables support for Multi-AZ with Standby deployment for opensearch domains',\n detailsMd: `\n If this is set, an opensearch domain will automatically be created with\n multi-az with standby enabled.\n `,\n introducedIn: { v2: '2.88.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `capacity.multiAzWithStandbyEnabled: false` to `Domain` construct to restore the old behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_NODEJS_USE_LATEST_RUNTIME]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables aws-lambda-nodejs.Function to use the latest available NodeJs runtime as the default',\n detailsMd: `\n If this is set, and a \\`runtime\\` prop is not passed to, Lambda NodeJs\n functions will us the latest version of the runtime provided by the Lambda\n service. Do not use this if you your lambda function is reliant on dependencies\n shipped as part of the runtime environment.\n `,\n introducedIn: { v2: '2.93.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `runtime: lambda.Runtime.NODEJS_16_X` to `Function` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, mount targets will have a stable logicalId that is linked to the associated subnet.',\n detailsMd: `\n When this feature flag is enabled, each mount target will have a stable\n logicalId that is linked to the associated subnet. If the flag is set to\n false then the logicalIds of the mount targets can change if the number of\n subnets changes.\n\n Set this flag to false for existing mount targets.\n `,\n introducedIn: { v2: '2.93.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, a scope of InstanceParameterGroup for AuroraClusterInstance with each parameters will change.',\n detailsMd: `\n When this feature flag is enabled, a scope of \\`InstanceParameterGroup\\` for\n \\`AuroraClusterInstance\\` with each parameters will change to AuroraClusterInstance\n from AuroraCluster.\n\n If the flag is set to false then it can only make one \\`AuroraClusterInstance\\`\n with each \\`InstanceParameterGroup\\` in the AuroraCluster.\n `,\n introducedIn: { v2: '2.97.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, will always use the arn for identifiers for CfnSourceApiAssociation in the GraphqlApi construct rather than id.',\n detailsMd: `\n When this feature flag is enabled, we use the IGraphqlApi ARN rather than ID when creating or updating CfnSourceApiAssociation in\n the GraphqlApi construct. Using the ARN allows the association to support an association with a source api or merged api in another account.\n Note that for existing source api associations created with this flag disabled, enabling the flag will lead to a resource replacement.\n `,\n introducedIn: { v2: '2.97.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, creating an RDS database cluster from a snapshot will only render credentials for snapshot credentials.',\n detailsMd: `\n The \\`credentials\\` property on the \\`DatabaseClusterFromSnapshotProps\\`\n interface was deprecated with the new \\`snapshotCredentials\\` property being\n recommended. Before deprecating \\`credentials\\`, a secret would be generated\n while rendering credentials if the \\`credentials\\` property was undefined or\n if a secret wasn't provided via the \\`credentials\\` property. This behavior\n is replicated with the new \\`snapshotCredentials\\` property, but the original\n \\`credentials\\` secret can still be created resulting in an extra database\n secret.\n\n Set this flag to prevent rendering deprecated \\`credentials\\` and creating an\n extra database secret when only using \\`snapshotCredentials\\` to create an RDS\n database cluster from a snapshot.\n `,\n introducedIn: { v2: '2.98.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the CodeCommit source action is using the default branch name \\'main\\'.',\n detailsMd: `\n When setting up a CodeCommit source action for the source stage of a pipeline, please note that the\n default branch is \\'master\\'.\n However, with the activation of this feature flag, the default branch is updated to \\'main\\'.\n `,\n introducedIn: { v2: '2.103.1' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the logical ID of a Lambda permission for a Lambda action includes an alarm ID.',\n detailsMd: `\n When this feature flag is enabled, a logical ID of \\`LambdaPermission\\` for a\n \\`LambdaAction\\` will include an alarm ID. Therefore multiple alarms for the same Lambda\n can be created with \\`LambdaAction\\`.\n\n If the flag is set to false then it can only make one alarm for the Lambda with\n \\`LambdaAction\\`.\n `,\n introducedIn: { v2: '2.124.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables Pipeline to set the default value for crossAccountKeys to false.',\n detailsMd: `\n When this feature flag is enabled, and the \\`crossAccountKeys\\` property is not provided in a \\`Pipeline\\`\n construct, the construct automatically defaults the value of this property to false.\n `,\n introducedIn: { v2: '2.127.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `crossAccountKeys: true` to `Pipeline` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Enables Pipeline to set the default pipeline type to V2.',\n detailsMd: `\n When this feature flag is enabled, and the \\`pipelineType\\` property is not provided in a \\`Pipeline\\`\n construct, the construct automatically defaults the value of this property to \\`PipelineType.V2\\`.\n `,\n introducedIn: { v2: '2.133.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `pipelineType: PipelineType.V1` to `Pipeline` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, IAM Policy created from KMS key grant will reduce the resource scope to this key only.',\n detailsMd: `\n When this feature flag is enabled and calling KMS key grant method, the created IAM policy will reduce the resource scope from\n '*' to this specific granting KMS key.\n `,\n introducedIn: { v2: '2.134.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Remove the root account principal from PipelineAssetsFileRole trust policy',\n detailsMd: `\n When this feature flag is enabled, the root account principal will not be added to the trust policy of asset role.\n When this feature flag is disabled, it will keep the root account principal in the trust policy.\n `,\n introducedIn: { v2: '2.141.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to add the root account principal back',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EKS_NODEGROUP_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix.',\n detailsMd: `\n When this feature flag is enabled, the nodegroupName attribute will be exactly the name of the nodegroup without\n any prefix.\n `,\n introducedIn: { v2: '2.139.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EBS_DEFAULT_GP3]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, the default volume type of the EBS volume will be GP3',\n detailsMd: `\n When this featuer flag is enabled, the default volume type of the EBS volume will be \\`EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3\\`.\n `,\n introducedIn: { v2: '2.140.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Pass `volumeType: EbsDeviceVolumeType.GENERAL_PURPOSE_SSD` to `Volume` construct to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, remove default deployment alarm settings',\n detailsMd: `\n When this featuer flag is enabled, remove the default deployment alarm settings when creating a AWS ECS service.\n `,\n introducedIn: { v2: '2.143.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Set AWS::ECS::Service \\'DeploymentAlarms\\' manually to restore the previous behavior.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the custom resource used for `AwsCustomResource` will configure the `logApiResponseData` property as true by default',\n detailsMd: `\n This results in 'logApiResponseData' being passed as true to the custom resource provider. This will cause the custom resource handler to receive an 'Update' event. If you don't\n have an SDK call configured for the 'Update' event and you're dependent on specific SDK call response data, you will see this error from CFN:\n\n CustomResource attribute error: Vendor response doesn't contain attribute in object. See https://github.com/aws/aws-cdk/issues/29949) for more details.\n\n Unlike most feature flags, we don't recommend setting this feature flag to true. However, if you're using the 'AwsCustomResource' construct with 'logApiResponseData' as true in\n the event object, then setting this feature flag will keep this behavior. Otherwise, setting this feature flag to false will trigger an 'Update' event by removing the 'logApiResponseData'\n property from the event object.\n `,\n introducedIn: { v2: '2.145.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, Adding notifications to a bucket in the current stack will not remove notification from imported stack.',\n detailsMd: `\n Currently, adding notifications to a bucket where it was created by ourselves will override notification added where it is imported.\n\n When this feature flag is enabled, adding notifications to a bucket in the current stack will only update notification defined in this stack.\n Other notifications that are not managed by this stack will be kept.\n `,\n introducedIn: { v2: '2.155.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.',\n detailsMd: `\n Currently, 'inputPath' and 'outputPath' from the TaskStateBase Props is being used under BedrockInvokeModelProps to define S3URI under 'input' and 'output' fields\n of State Machine Task definition.\n\n When this feature flag is enabled, specify newly introduced props 's3InputUri' and\n 's3OutputUri' to populate S3 uri under input and output fields in state machine task definition for Bedrock invoke model.\n\n `,\n introducedIn: { v2: '2.156.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to use input and output path fields for s3 URI',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EXPLICIT_STACK_TAGS]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, stack tags need to be assigned explicitly on a Stack.',\n detailsMd: `\n Without this feature flag enabled, if tags are added to a Stack using\n \\`Tags.of(scope).add(...)\\`, they will be added to both the stack and all resources\n in the stack template.\n\n That leads to the tags being applied twice: once in the template, and once\n again automatically by CloudFormation, which will apply all stack tags to\n all resources in the stack. This leads to loss of control, as the\n \\`excludeResourceTypes\\` option of the Tags API will not have any effect.\n\n With this flag enabled, tags added to a stack using \\`Tags.of(...)\\` are ignored,\n and Stack tags must be configured explicitly on the Stack object.\n `,\n introducedIn: { v2: '2.205.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Configure stack-level tags using `new Stack(..., { tags: { ... } })`.',\n },\n [exports.Enable_IMDS_Blocking_Deprecated_Feature]: {\n type: flag_modeling_1.FlagType.Temporary,\n summary: 'When set to true along with canContainersAccessInstanceRole=false in ECS cluster, new updated ' +\n 'commands will be added to UserData to block container accessing IMDS. ' +\n '**Applicable to Linux only. IMPORTANT: See [details.](#aws-cdkaws-ecsenableImdsBlockingDeprecatedFeature)**',\n detailsMd: `\n In an ECS Cluster with \\`MachineImageType.AMAZON_LINUX_2\\`, the canContainersAccessInstanceRole=false option attempts to add commands to block containers from\n accessing IMDS. Set this flag to true in order to use new and updated commands. Please note that this\n feature alone with this feature flag will be deprecated by **end of 2025** as CDK cannot\n guarantee the correct execution of the feature in all platforms. See [Github discussion](https://github.com/aws/aws-cdk/discussions/32609) for more information.\n It is recommended to follow ECS documentation to block IMDS for your specific platform and cluster configuration.\n `,\n introducedIn: { v2: '2.175.0' },\n recommendedValue: false,\n compatibilityWithOldBehaviorMd: 'Set this flag to false in order to continue using old and outdated commands. ' +\n 'However, it is **not** recommended.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.Disable_ECS_IMDS_Blocking]: {\n type: flag_modeling_1.FlagType.Temporary,\n summary: 'When set to true, CDK synth will throw exception if canContainersAccessInstanceRole is false.' +\n ' **IMPORTANT: See [details.](#aws-cdkaws-ecsdisableEcsImdsBlocking)**',\n detailsMd: `\n In an ECS Cluster with \\`MachineImageType.AMAZON_LINUX_2\\`, the canContainersAccessInstanceRole=false option attempts to add commands to block containers from\n accessing IMDS. CDK cannot guarantee the correct execution of the feature in all platforms. Setting this feature flag\n to true will ensure CDK does not attempt to implement IMDS blocking. By **end of 2025**, CDK will remove the\n IMDS blocking feature. See [Github discussion](https://github.com/aws/aws-cdk/discussions/32609) for more information.\n\n It is recommended to follow ECS documentation to block IMDS for your specific platform and cluster configuration.\n `,\n introducedIn: { v2: '2.175.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'It is strongly recommended to set this flag to true. However, if necessary, set ' +\n 'this flag to false to continue using the old implementation.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, we will only grant the necessary permissions when users specify cloudwatch log group through logConfiguration',\n detailsMd: `\n Currently, we automatically add a number of cloudwatch permissions to the task role when no cloudwatch log group is\n specified as logConfiguration and it will grant 'Resources': ['*'] to the task role.\n\n When this feature flag is enabled, we will only grant the necessary permissions when users specify cloudwatch log group.\n `,\n introducedIn: { v2: '2.159.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to continue grant permissions to log group when no log group is specified',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled will allow you to specify a resource policy per replica, and not copy the source table policy to all replicas',\n detailsMd: `\n If this flag is not set, the default behavior for \\`TableV2\\` is to use a different \\`resourcePolicy\\` for each replica.\n\n If this flag is set to false, the behavior is that each replica shares the same \\`resourcePolicy\\` as the source table.\n This will prevent you from creating a new table which has an additional replica and a resource policy.\n\n This is a feature flag as the old behavior was technically incorrect but users may have come to depend on it.`,\n introducedIn: { v2: '2.164.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_SUM_TIMEOUT_ENABLED]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, initOptions.timeout and resourceSignalTimeout values will be summed together.',\n detailsMd: `\n Currently is both initOptions.timeout and resourceSignalTimeout are both specified in the options for creating an EC2 Instance,\n only the value from 'resourceSignalTimeout' will be used.\n\n When this feature flag is enabled, if both initOptions.timeout and resourceSignalTimeout are specified, the values will to be summed together.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.160.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, a Lambda authorizer Permission created when using GraphqlApi will be properly scoped with a SourceArn.',\n detailsMd: `\n Currently, when using a Lambda authorizer with an AppSync GraphQL API, the AWS CDK automatically generates the necessary AWS::Lambda::Permission\n to allow the AppSync API to invoke the Lambda authorizer. This permission is overly permissive because it lacks a SourceArn, meaning\n it allows invocations from any source.\n\n When this feature flag is enabled, the AWS::Lambda::Permission will be properly scoped with the SourceArn corresponding to the\n specific AppSync GraphQL API.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.161.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the value of property `instanceResourceId` in construct `DatabaseInstanceReadReplica` will be set to the correct value which is `DbiResourceId` instead of currently `DbInstanceArn`',\n detailsMd: `\n Currently, the value of the property 'instanceResourceId' in construct 'DatabaseInstanceReadReplica' is not correct, and set to 'DbInstanceArn' which is not correct when it is used to create the IAM Policy in the grantConnect method.\n\n When this feature flag is enabled, the value of that property will be as expected set to 'DbiResourceId' attribute, and that will fix the grantConnect method.\n `,\n introducedIn: { v2: '2.161.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to use `DbInstanceArn` as value for property `instanceResourceId`',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, CFN templates added with `cfn-include` will error if the template contains Resource Update or Create policies with CFN Intrinsics that include non-primitive values.',\n detailsMd: `\n Without enabling this feature flag, \\`cfn-include\\` will silently drop resource update or create policies that contain CFN Intrinsics if they include non-primitive values.\n\n Enabling this feature flag will make \\`cfn-include\\` throw on these templates, unless you specify the logical ID of the resource in the 'unhydratedResources' property.\n `,\n recommendedValue: true,\n introducedIn: { v2: '2.161.0' },\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, both `@aws-sdk` and `@smithy` packages will be excluded from the Lambda Node.js 18.x runtime to prevent version mismatches in bundled applications.',\n detailsMd: `\n Currently, when bundling Lambda functions with the non-latest runtime that supports AWS SDK JavaScript (v3), only the '@aws-sdk/*' packages are excluded by default.\n However, this can cause version mismatches between the '@aws-sdk/*' and '@smithy/*' packages, as they are tightly coupled dependencies in AWS SDK v3.\n\n When this feature flag is enabled, both '@aws-sdk/*' and '@smithy/*' packages will be excluded during the bundling process. This ensures that no mismatches\n occur between these tightly coupled dependencies when using the AWS SDK v3 in Lambda functions.\n `,\n introducedIn: { v2: '2.161.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the resource of IAM Run Ecs policy generated by SFN EcsRunTask will reference the definition, instead of constructing ARN.',\n detailsMd: `\n Currently, in the IAM Run Ecs policy generated by SFN EcsRunTask(), CDK will construct the ARN with wildcard attached at the end.\n The revision number at the end will be replaced with a wildcard which it shouldn't.\n\n When this feature flag is enabled, if the task definition is created in the stack, the 'Resource' section will 'Ref' the taskDefinition.\n `,\n introducedIn: { v2: '2.163.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, the BastionHost construct will use the latest Amazon Linux 2023 AMI, instead of Amazon Linux 2.',\n detailsMd: `\n Currently, if the machineImage property of the BastionHost construct defaults to using the latest Amazon Linux 2\n AMI. Amazon Linux 2 hits end-of-life in June 2025, so using Amazon Linux 2023 by default is a more future-proof\n and secure option.\n\n When this feature flag is enabled, if you do not pass the machineImage property to the BastionHost construct,\n the latest Amazon Linux 2023 version will be used instead of Amazon Linux 2.\n `,\n introducedIn: { v2: '2.172.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag or explicitly pass an Amazon Linux 2 machine image to the BastionHost construct.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ASPECT_STABILIZATION]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'When enabled, a stabilization loop will be run when invoking Aspects during synthesis.',\n detailsMd: `\n Currently, when Aspects are invoked in one single pass of the construct tree.\n This means that the Aspects that create other Aspects are not run and Aspects that create new nodes of the tree sometimes do not inherit their parent Aspects.\n\n When this feature flag is enabled, a stabilization loop is run to recurse the construct tree multiple times when invoking Aspects.\n `,\n unconfiguredBehavesLike: { v2: true },\n introducedIn: { v2: '2.172.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, use a new method for DNS Name of user pool domain target without creating a custom resource.',\n detailsMd: `\n When this feature flag is enabled, a new method will be used to get the DNS Name of the user pool domain target. The old method\n creates a custom resource internally, but the new method doesn't need a custom resource.\n\n If the flag is set to false then a custom resource will be created when using \\`UserPoolDomainTarget\\`.\n `,\n introducedIn: { v2: '2.174.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the default security group ingress rules will allow IPv6 ingress from anywhere',\n detailsMd: `\n For internet facing ALBs with 'dualstack-without-public-ipv4' IP address type, the default security group rules\n will allow IPv6 ingress from anywhere (::/0). Previously, the default security group rules would only allow IPv4 ingress.\n\n Using a feature flag to make sure existing customers who might be relying\n on the overly restrictive permissions are not broken.`,\n introducedIn: { v2: '2.176.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to only allow IPv4 ingress in the default security group rules.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the default behaviour of OIDC provider will reject unauthorized connections',\n detailsMd: `\n When this feature flag is enabled, the default behaviour of OIDC Provider's custom resource handler will\n default to reject unauthorized connections when downloading CA Certificates.\n\n When this feature flag is disabled, the behaviour will be the same as current and will allow downloading\n thumbprints from unsecure connections.`,\n introducedIn: { v2: '2.177.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to allow unsecure OIDC connection.',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ENABLE_ADDITIONAL_METADATA_COLLECTION]: {\n type: flag_modeling_1.FlagType.VisibleContext,\n summary: 'When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues.',\n detailsMd: `\n When this feature flag is enabled, CDK expands the scope of usage data collection to include the following:\n * L2 construct property keys - Collect which property keys you use from the L2 constructs in your app. This includes property keys nested in dictionary objects.\n * L2 construct property values of BOOL and ENUM types - Collect property key values of only BOOL and ENUM types. All other types, such as string values or construct references will be redacted.\n * L2 construct method usage - Collection method name, parameter keys and parameter values of BOOL and ENUM type.\n `,\n introducedIn: { v2: '2.178.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LAMBDA_CREATE_NEW_POLICIES_WITH_ADDTOROLEPOLICY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: '[Deprecated] When enabled, Lambda will create new inline policies with AddToRolePolicy instead of adding to the Default Policy Statement',\n detailsMd: `\n [Deprecated default feature] When this feature flag is enabled, Lambda will create new inline policies with AddToRolePolicy.\n The purpose of this is to prevent lambda from creating a dependency on the Default Policy Statement.\n This solves an issue where a circular dependency could occur if adding lambda to something like a Cognito Trigger, then adding the User Pool to the lambda execution role permissions.\n However in the current implementation, we have removed a dependency of the lambda function on the policy. In addition to this, a Role will be attached to the Policy instead of an inline policy being attached to the role.\n This will create a data race condition in the CloudFormation template because the creation of the Lambda function no longer waits for the policy to be created. Having said that, we are not deprecating the feature (we are defaulting the feature flag to false for new stacks) since this feature can still be used to get around the circular dependency issue (issue-7016) particularly in cases where the lambda resource creation doesnt need to depend on the policy resource creation.\n We recommend to unset the feature flag if already set which will restore the original behavior.\n `,\n introducedIn: { v2: '2.180.0' },\n recommendedValue: false,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.SET_UNIQUE_REPLICATION_ROLE_NAME]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, CDK will automatically generate a unique role name that is used for s3 object replication.',\n detailsMd: `\n When performing cross-account S3 replication, we need to explicitly specify a role name for the replication execution role.\n When this feature flag is enabled, a unique role name is specified only when performing cross-account replication.\n When disabled, 'CDKReplicationRole' is always specified.\n `,\n introducedIn: { v2: '2.182.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.PIPELINE_REDUCE_STAGE_ROLE_TRUST_SCOPE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'Remove the root account principal from Stage addActions trust policy',\n detailsMd: `\n When this feature flag is enabled, the root account principal will not be added to the trust policy of stage role.\n When this feature flag is disabled, it will keep the root account principal in the trust policy.\n\n For cross-account cases, when this feature flag is enabled the trust policy will be scoped to the role only.\n If you are providing a custom role, you will need to ensure 'roleName' is specified or set to PhysicalName.GENERATE_IF_NEEDED.\n `,\n introducedIn: { v2: '2.184.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to add the root account principal back',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EVENTBUS_POLICY_SID_REQUIRED]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, grantPutEventsTo() will use resource policies with Statement IDs for service principals.',\n detailsMd: `\n Currently, when granting permissions to service principals using grantPutEventsTo(), the operation silently fails\n because service principals require resource policies with Statement IDs.\n\n When this flag is enabled:\n - Resource policies will be created with Statement IDs for service principals\n - The operation will succeed as expected\n\n When this flag is disabled:\n - A warning will be emitted\n - The grant operation will be dropped\n - No permissions will be added\n\n This fixes the issue where permissions were silently not being added for service principals.\n `,\n introducedIn: { v2: '2.186.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.ASPECT_PRIORITIES_MUTATING]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When set to true, Aspects added by the construct library on your behalf will be given a priority of MUTATING.',\n detailsMd: `\n Custom Aspects you add have a priority of DEFAULT (500) if you don't\n assign a more specific priority, which is higher than MUTATING (200). This\n is relevant if a custom Aspect you add and an Aspect added by CDK try to\n configure the same value.\n\n If this flag is set to false (old behavior), Aspects added by CDK are also\n added with a priority of DEFAULT; because their priorities are equal, the\n Aspects that is closest to the target construct executes last (either\n yours or the Aspect added by the CDK).\n\n If this flag is set to true (recommended behavior), Aspects added by CDK are added\n with a priority of MUTATING, and custom Aspects you add with DEFAULT\n priority will always execute last and \"win\" the write. If you need Aspects\n added by CDK to run after yours, your Aspect needs to have a priority of\n MUTATING or lower.\n\n This setting only applies to Aspects that were already being added for you\n before version 2.172.0. Aspects introduced since that version will always\n be added with a priority of MUTATING, independent of this feature flag.\n `,\n introducedIn: { v2: '2.189.1' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: `\n To add mutating Aspects controlling construct values that can be overridden\n by Aspects added by CDK, give them MUTATING priority:\n\n \\`\\`\\`\n Aspects.of(stack).add(new MyCustomAspect(), {\n priority: AspectPriority.MUTATING,\n });\n \\`\\`\\`\n `,\n },\n [exports.DYNAMODB_TABLE_RETAIN_TABLE_REPLICA]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, table replica will be default to the removal policy of source table unless specified otherwise.',\n detailsMd: `\n Currently, table replica will always be deleted when stack deletes regardless of source table's deletion policy.\n When enabled, table replica will be default to the removal policy of source table unless specified otherwise.\n `,\n introducedIn: { v2: '2.187.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.LOG_USER_POOL_CLIENT_SECRET_VALUE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When disabled, the value of the user pool client secret will not be logged in the custom resource lambda function logs.',\n detailsMd: `\n When this feature flag is enabled, the SDK API call response to desribe user pool client values will be logged in the custom\n resource lambda function logs.\n\n When this feature flag is disabled, the SDK API call response to describe user pool client values will not be logged in the custom\n resource lambda function logs.\n `,\n introducedIn: { v2: '2.187.0' },\n unconfiguredBehavesLike: { v2: false },\n recommendedValue: false,\n compatibilityWithOldBehaviorMd: 'Enable the feature flag to keep the old behavior and log the client secret values',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.PIPELINE_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, scopes down the trust policy for the cross-account action role',\n detailsMd: `\n When this feature flag is enabled, the trust policy of the cross-account action role will be scoped to the pipeline role.\n If you are providing a custom role, you will need to ensure 'roleName' is specified or set to PhysicalName.GENERATE_IF_NEEDED.\n When this feature flag is disabled, it will keep the root account principal in the trust policy.\n `,\n introducedIn: { v2: '2.189.0' },\n unconfiguredBehavesLike: { v2: true },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to add the root account principal back',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, the resultWriterV2 property of DistributedMap will be used insted of resultWriter',\n detailsMd: `\n When this feature flag is enabled, the resultWriterV2 property is used instead of resultWriter in DistributedMap class.\n resultWriterV2 uses ResultWriterV2 class in StepFunctions ASL and can have either Bucket/Prefix or WriterConfig or both.\n `,\n introducedIn: { v2: '2.188.0' },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag and set resultWriter in DistributedMap',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'Add an S3 trust policy to a KMS key resource policy for SNS subscriptions.',\n detailsMd: `\n When this feature flag is enabled, a S3 trust policy will be added to the KMS key resource policy for encrypted SNS subscriptions.\n `,\n introducedIn: { v2: '2.195.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESSONLYINTERNETGATEWAY]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC.',\n detailsMd: `\n When this feature flag is enabled, EgressOnlyGateway resource will not be created when you create a vpc with only public subnets.\n `,\n introducedIn: { v2: '2.196.0' },\n recommendedValue: true,\n },\n /// ///////////////////////////////////////////////////////////////////\n [exports.USE_RESOURCEID_FOR_VPCV2_MIGRATION]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, use resource IDs for VPC V2 migration',\n detailsMd: `\n When this feature flag is enabled, the VPC V2 migration will use resource IDs instead of getAtt references\n for migrating resources from VPC V1 to VPC V2. This helps ensure a smoother migration path between\n the two versions.\n `,\n introducedIn: { v2: '2.196.0' },\n recommendedValue: false,\n unconfiguredBehavesLike: { v2: false },\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to use getAtt references for VPC V2 migration',\n },\n //////////////////////////////////////////////////////////////////////\n [exports.S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT]: {\n type: flag_modeling_1.FlagType.BugFix,\n summary: 'When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined.',\n detailsMd: `\n When BlockPublicAccess is not set at all, s3's default behavior will be to set all options to true in aws console.\n The previous behavior in cdk before this feature was; if only some of the BlockPublicAccessOptions were set (not all 4), then the ones undefined would default to false.\n This is counter intuitive to the console behavior where the options would start in true state and a user would uncheck the boxes as needed.\n The new behavior from this feature will allow a user, for example, to set 1 of the 4 BlockPublicAccessOpsions to false, and on deployment the other 3 will remain true.\n `,\n introducedIn: { v2: '2.196.0' },\n recommendedValue: true,\n },\n //////////////////////////////////////////////////////////////////////\n [exports.USE_CDK_MANAGED_LAMBDA_LOGGROUP]: {\n type: flag_modeling_1.FlagType.ApiDefault,\n summary: 'When enabled, CDK creates and manages loggroup for the lambda function',\n detailsMd: `\n When this feature flag is enabled, CDK will create a loggroup for lambda function with default properties\n which supports CDK features Tag propagation, Property Injectors, Aspects\n if the cdk app doesnt pass a 'logRetention' or 'logGroup' explicitly.\n LogGroups created via 'logRetention' do not support Tag propagation, Property Injectors, Aspects.\n LogGroups created via 'logGroup' created in CDK support Tag propagation, Property Injectors, Aspects.\n\n When this feature flag is disabled, a loggroup is created by Lambda service on first invocation\n of the function (existing behavior).\n LogGroups created in this way do not support Tag propagation, Property Injectors, Aspects.\n\n DO NOT ENABLE: If you have and existing app defining a lambda function and\n have not supplied a logGroup or logRetention prop and your lambda function has\n executed at least once, the logGroup has been already created with the same name\n so your deployment will start failing.\n Refer aws-lambda/README.md for more details on Customizing Log Group creation.\n `,\n introducedIn: { v2: '2.200.0' },\n unconfiguredBehavesLike: { v2: false },\n recommendedValue: true,\n compatibilityWithOldBehaviorMd: 'Disable the feature flag to let lambda service create logGroup or specify logGroup or logRetention',\n },\n};\nexports.CURRENT_MV = 'v2';\n/**\n * The list of future flags that are now expired. This is going to be used to identify\n * and block usages of old feature flags in the new major version of CDK.\n */\nexports.CURRENT_VERSION_EXPIRED_FLAGS = Object.entries(exports.FLAGS)\n .filter(([_, flag]) => flag.introducedIn[exports.CURRENT_MV] === undefined)\n .map(([name, _]) => name).sort();\n/**\n * Flag values that should apply for new projects\n *\n * This contains flags that satisfy both criteria of:\n *\n * - They are configurable for the current major version line.\n * - The recommended value is different from the unconfigured value (i.e.,\n * configuring a flag is useful)\n */\nexports.CURRENTLY_RECOMMENDED_FLAGS = Object.fromEntries(Object.entries(exports.FLAGS)\n .filter(([_, flag]) => flag.introducedIn[exports.CURRENT_MV] !== undefined)\n .filter(([_, flag]) => flag.recommendedValue !== flag.unconfiguredBehavesLike?.[exports.CURRENT_MV])\n .map(([name, flag]) => [name, flag.recommendedValue]));\n/**\n * The default values of each of these flags in the current major version.\n *\n * This is the effective value of the flag, unless it's overridden via\n * context.\n *\n * Adding new flags here is only allowed during the pre-release period of a new\n * major version!\n */\nexports.CURRENT_VERSION_FLAG_DEFAULTS = Object.fromEntries(Object.entries(exports.FLAGS)\n .filter(([_, flag]) => flag.unconfiguredBehavesLike?.[exports.CURRENT_MV] !== undefined)\n .map(([name, flag]) => [name, flag.unconfiguredBehavesLike?.[exports.CURRENT_MV]]));\nfunction futureFlagDefault(flag) {\n const value = exports.CURRENT_VERSION_FLAG_DEFAULTS[flag] ?? false;\n if (typeof value !== 'boolean') {\n // This should never happen, if this error is thrown it's a bug\n // eslint-disable-next-line @cdklabs/no-throw-default-error\n throw new Error(`futureFlagDefault: default type of flag '${flag}' should be boolean, got '${typeof value}'`);\n }\n return value;\n}\n// Nobody should have been using any of this, but you never know\n/** @deprecated use CURRENT_VERSION_EXPIRED_FLAGS instead */\nexports.FUTURE_FLAGS_EXPIRED = exports.CURRENT_VERSION_EXPIRED_FLAGS;\n/** @deprecated do not use at all! */\nexports.FUTURE_FLAGS = Object.fromEntries(Object.entries(exports.CURRENTLY_RECOMMENDED_FLAGS)\n .filter(([_, v]) => typeof v === 'boolean'));\n/** @deprecated do not use at all! */\nexports.NEW_PROJECT_DEFAULT_CONTEXT = Object.fromEntries(Object.entries(exports.CURRENTLY_RECOMMENDED_FLAGS)\n .filter(([_, v]) => typeof v !== 'boolean'));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQStzREEsOENBUUM7QUF2dERELDJEQUE2RDtBQUU3RCx3RUFBd0U7QUFDeEUsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSw2RUFBNkU7QUFDN0UsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSxtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLHdFQUF3RTtBQUN4RSxFQUFFO0FBQ0YscUJBQXFCO0FBQ3JCLEVBQUU7QUFDRix3RkFBd0Y7QUFDeEYsOEJBQThCO0FBQzlCLEVBQUU7QUFDRixnR0FBZ0c7QUFDaEcsc0JBQXNCO0FBQ3RCLEVBQUU7QUFDRix3RUFBd0U7QUFDeEUsRUFBRTtBQUNGLGdGQUFnRjtBQUNoRixFQUFFO0FBQ0YsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsRUFBRTtBQUNGLDJDQUEyQztBQUMzQywyREFBMkQ7QUFDM0QsK0VBQStFO0FBQy9FLEVBQUU7QUFDRiw4RUFBOEU7QUFDOUUsNkVBQTZFO0FBQzdFLCtFQUErRTtBQUMvRSw0Q0FBNEM7QUFDNUMsRUFBRTtBQUNGLDJDQUEyQztBQUMzQywyREFBMkQ7QUFDM0QsNEVBQTRFO0FBQzVFLEVBQUU7QUFDRix1RkFBdUY7QUFDdkYsOEVBQThFO0FBQzlFLEVBQUU7QUFDRixpRkFBaUY7QUFDakYsbUZBQW1GO0FBRXRFLFFBQUEsb0NBQW9DLEdBQUcseUNBQXlDLENBQUM7QUFDakYsUUFBQSwyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQztBQUN0RSxvREFBb0Q7QUFDdkMsUUFBQSxtQkFBbUIsR0FBRyxtQ0FBMkIsQ0FBQztBQUNsRCxRQUFBLGlDQUFpQyxHQUFHLHNDQUFzQyxDQUFDO0FBQzNFLFFBQUEsOEJBQThCLEdBQUcsb0NBQW9DLENBQUM7QUFDdEUsUUFBQSxxQkFBcUIsR0FBRyw2Q0FBNkMsQ0FBQztBQUN0RSxRQUFBLHVD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SUFDM0QsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMvQiwrREFBK0Q7UUFDL0QsMkRBQTJEO1FBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLElBQUksNkJBQTZCLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsZ0VBQWdFO0FBRWhFLDREQUE0RDtBQUMvQyxRQUFBLG9CQUFvQixHQUFHLHFDQUE2QixDQUFDO0FBRWxFLHFDQUFxQztBQUN4QixRQUFBLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUNBQTJCLENBQUM7S0FDdkYsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFL0MscUNBQXFDO0FBQ3hCLFFBQUEsMkJBQTJCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG1DQUEyQixDQUFDO0tBQ3RHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ0luZm8sIEZsYWdUeXBlIH0gZnJvbSAnLi9wcml2YXRlL2ZsYWctbW9kZWxpbmcnO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBUaGlzIGZpbGUgZGVmaW5lcyBjb250ZXh0IGtleXMgdGhhdCBlbmFibGUgY2VydGFpbiBmZWF0dXJlcyB0aGF0IGFyZVxuLy8gaW1wbGVtZW50ZWQgYmVoaW5kIGEgZmxhZyBpbiBvcmRlciB0byBwcmVzZXJ2ZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Jcbi8vIGV4aXN0aW5nIGFwcHMuIFdoZW4gYSBuZXcgYXBwIGlzIGluaXRpYWxpemVkIHRocm91Z2ggYGNkayBpbml0YCwgdGhlIENMSSB3aWxsXG4vLyBhdXRvbWF0aWNhbGx5IGFkZCBlbmFibGUgdGhlc2UgZmVhdHVyZXMgYnkgYWRkaW5nIHRoZW0gdG8gdGhlIGdlbmVyYXRlZFxuLy8gYGNkay5qc29uYCBmaWxlLlxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy9cbi8vICAhISEgSU1QT1JUQU5UICEhIVxuLy9cbi8vICBXaGVuIHlvdSBpbnRyb2R1Y2UgYSBuZXcgZmxhZywgc2V0IGl0cyAnaW50cm9kdWNlZEluLnYyJyB2YWx1ZSB0byB0aGUgbGl0ZXJhbCBzdHJpbmdcbi8vICdWMsK3TkVYVCcsIHdpdGhvdXQgdGhlIGRvdC5cbi8vXG4vLyAgRE8gTk9UIFVTRSBBIFZBUklBQkxFLiBETyBOT1QgREVGSU5FIEEgQ09OU1RBTlQuIFRoZSBhY3R1YWwgdmFsdWUgd2lsbCBiZSBzdHJpbmctcmVwbGFjZWQgYXRcbi8vICB2ZXJzaW9uIGJ1bXAgdGltZS5cbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBUaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgZmxhZ3M6IEFwaURlZmF1bHQsIEJ1Z0ZpeCwgYW5kIFZpc2libGVDb250ZXh0IGZsYWdzLlxuLy9cbi8vIC0gQXBpRGVmYXVsdCBmbGFnczogY2hhbmdlIHRoZSBiZWhhdmlvciBvciBkZWZhdWx0cyBvZiB0aGUgY29uc3RydWN0IGxpYnJhcnkuXG4vLyAgIEl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIGFjaGlldmUgdGhlIG9sZCBiZWhhdmlvciB2aWEgdGhlIG9mZmljaWFsIEFQSVxuLy8gICBidXQgY2hhbmdlcyBhcmUgbmVjZXNzYXJ5IChlLmcuIHBhc3NpbmcgYSBib29sZWFuIGZsYWcpLlxuLy9cbi8vICAgSW1wbGljYXRpb25zIGZvciBmdXR1cmUgTWFqb3IgVmVyc2lvbjpcbi8vICAgLSBUaGUgcmVjb21tZW5kZWQgdmFsdWUgd2lsbCBiZWNvbWUgdGhlIGRlZmF1bHQgdmFsdWUuXG4vLyAgIC0gRmxhZ3Mgb2YgdGhpcyB0eXBlIHdpbGwgYmUgcmVtb3ZlZCAoY29kZSBjaGFuZ2VzIHdpbGwgYmVjb21lIG1hbmRhdG9yeSkuXG4vL1xuLy8gLSBCdWdGaXggZmxhZ3M6IHRoZSBvbGQgaW5mcmEgd2UgdXNlZCB0byBnZW5lcmF0ZSBpcyBubyBsb25nZXIgcmVjb21tZW5kZWQuXG4vLyAgIFRoZSBvbGQgYmVoYXZpb3IgY2Fubm90IGJlIGFjaGlldmVkIGFueW1vcmUgdXNpbmcgdGhlIG9mZmljaWFsIEFQSSAob25seVxuLy8gICBieSBtYWtpbmcgc3VyZSB0aGUgZmVhdHVyZSBmbGFnIGlzIHVuc2V0KS4gTW9zdGx5IHVzZWQgZm9yIGluZnJhLWltcGFjdGluZ1xuLy8gICBidWdmaXhlcyBvciBlbmhhbmNlZCBzZWN1cml0eSBkZWZhdWx0cy5cbi8vXG4vLyAgIEltcGxpY2F0aW9ucyBmb3IgZnV0dXJlIE1ham9yIFZlcnNpb246XG4vLyAgIC0gVGhlIHJlY29tbWVuZGVkIHZhbHVlIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IHZhbHVlLlxuLy8gICAtIEZsYWcgd2lsbCBuZXZlciBiZSByZW1vdmVkIChubyBvdGhlciB3YXkgdG8gYWNoaWV2ZSBsZWdhY3kgYmVoYXZpb3IpLlxuLy9cbi8vIC0gVmlzaWJsZUNvbnRleHQgZmxhZ3M6IG5vdCByZWFsbHkgYSBmZWF0dXJlIGZsYWcsIGJ1dCBjb25maWd1cmFibGUgY29udGV4dCB3aGljaCBpc1xuLy8gICBhZHZlcnRpc2VkIGJ5IHB1dHRpbmcgdGhlIGNvbnRleHQgaW4gdGhlIGBjZGsuanNvbmAgZmlsZSBvZiBuZXcgcHJvamVjdHMuXG4vL1xuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay1yZmNzL2Jsb2IvbWFzdGVyL3RleHQvMDA1NS1mZWF0dXJlLWZsYWdzLm1kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgRU5BQkxFX1NUQUNLX05BTUVfRFVQTElDQVRFU19DT05URVhUID0gJ0Bhd3MtY2RrL2NvcmU6ZW5hYmxlU3RhY2tOYW1lRHVwbGljYXRlcyc7XG5leHBvcnQgY29uc3QgRU5BQkxFX0RJRkZfTk9fRkFJTF9DT05URVhUID0gJ2F3cy1jZGs6ZW5hYmxlRGlmZk5vRmFpbCc7XG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBFTkFCTEVfRElGRl9OT19GQUlMX0NPTlRFWFRgICovXG5leHBvcnQgY29uc3QgRU5BQkxFX0RJRkZfTk9fRkFJTCA9IEVOQUJMRV9ESUZGX05PX0ZBSUxfQ09OVEVYVDtcbmV4cG9ydCBjb25zdCBORVdfU1RZTEVfU1RBQ0tfU1lOVEhFU0lTX0NPTlRFWFQgPSAnQGF3cy1jZGsvY29yZTpuZXdTdHlsZVN0YWNrU3ludGhlc2lzJztcbmV4cG9ydCBjb25zdCBTVEFDS19SRUxBVElWRV9FWFBPUlRTX0NPTlRFWFQgPSAnQGF3cy1jZGsvY29yZTpzdGFja1JlbGF0aXZlRXhwb3J0cyc7XG5leHBvcnQgY29uc3QgRE9DS0VSX0lHTk9SRV9TVVBQT1JUID0gJ0Bhd3MtY2RrL2F3cy1lY3ItYXNzZXRzOmRvY2tlcklnbm9yZVN1cHBvcnQnO1xuZXhwb3J0IGNvbnN0IFNFQ1JFVFNfTUFOQUdFUl9QQVJTRV9PV05FRF9TRUNSRVRfTkFNRSA9ICdAYXdzLWNkay9hd3Mtc2VjcmV0c21hbmFnZXI6cGFyc2VPd25lZFNlY3JldE5hbWUnO1xuZXhwb3J0IGNvbnN0IEtNU19ERUZBVUxUX0tFWV9QT0xJQ0lFUyA9ICdAYXdzLWNkay9hd3Mta21zOmRlZmF1bHRLZXlQb2xpY2llcyc7XG5leHBvcnQgY29uc3QgUzNfR1JBTlRfV1JJVEVfV0lUSE9VVF9BQ0wgPSAnQGF3cy1jZGsvYXdzLXMzOmdyYW50V3JpdGVXaXRob3V0QWNsJztcbmV4cG9ydCBjb25zdCBFQ1NfUkVNT1ZFX0RFRkFVTFRfREVTSVJFRF9DT1VOVCA9ICdAYXdzLWNkay9hd3MtZWNzLXBhdHRlcm5zOnJlbW92ZURlZmF1bHREZXNpcmVkQ291bnQnO1xuZXhwb3J0IGNvbnN0IFJEU19MT1dFUkNBU0VfREJfSURFTlRJRklFUiA9ICdAYXdzLWNkay9hd3MtcmRzOmxvd2VyY2FzZURiSWRlbnRpZmllcic7XG5leHBvcnQgY29uc3QgQVBJR0FURVdBWV9VU0FHRVBMQU5LRVlfT1JERVJJTlNFTlNJVElWRV9JRCA9ICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheTp1c2FnZVBsYW5LZXlPcmRlckluc2Vuc2l0aXZlSWQnO1xuZXhwb3J0IGNvbnN0IEVGU19ERUZBVUxUX0VOQ1JZUFRJT05fQVRfUkVTVCA9ICdAYXdzLWNkay9hd3MtZWZzOmRlZmF1bHRFbmNyeXB0aW9uQXRSZXN0JztcbmV4cG9ydCBjb25zdCBMQU1CREFfUkVDT0dOSVpFX1ZFUlNJT05fUFJPUFMgPSAnQGF3cy1jZGsvYXdzLWxhbWJkYTpyZWNvZ25pemVWZXJzaW9uUHJvcHMnO1xuZXhwb3J0IGNvbnN0IExBTUJEQV9SRUNPR05JWkVfTEFZRVJfVkVSU0lPTiA9ICdAYXdzLWNkay9hd3MtbGFtYmRhOnJlY29nbml6ZUxheWVyVmVyc2lvbic7XG5leHBvcnQgY29uc3QgQ0xPVURGUk9OVF9ERUZBVUxUX1NFQ1VSSVRZX1BPTElDWV9UTFNfVjFfMl8yMDIxID0gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250OmRlZmF1bHRTZWN1cml0eVBvbGljeVRMU3YxLjJfMjAyMSc7XG5leHBvcnQgY29uc3QgQ0hFQ0tfU0VDUkVUX1VTQUdFID0gJ0Bhd3MtY2RrL2NvcmU6Y2hlY2tTZWNyZXRVc2FnZSc7XG5leHBvcnQgY29uc3QgVEFSR0VUX1BBUlRJVElPTlMgPSAnQGF3cy1jZGsvY29yZTp0YXJnZXQtcGFydGl0aW9ucyc7XG5leHBvcnQgY29uc3QgRUNTX1NFUlZJQ0VfRVhURU5TSU9OU19FTkFCTEVfREVGQVVMVF9MT0dfRFJJVkVSID0gJ0Bhd3MtY2RrLWNvbnRhaW5lcnMvZWNzLXNlcnZpY2UtZXh0ZW5zaW9uczplbmFibGVEZWZhdWx0TG9nRHJpdmVyJztcbmV4cG9ydCBjb25zdCBFQzJfVU5JUVVFX0lNRFNWMl9MQVVOQ0hfVEVNUExBVEVfTkFNRSA9ICdAYXdzLWNkay9hd3MtZWMyOnVuaXF1ZUltZHN2MlRlbXBsYXRlTmFtZSc7XG5leHBvcnQgY29uc3QgRUNTX0FSTl9GT1JNQVRfSU5DTFVERVNfQ0xVU1RFUl9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1lY3M6YXJuRm9ybWF0SW5jbHVkZXNDbHVzdGVyTmFtZSc7XG5leHBvcnQgY29uc3QgSUFNX01JTklNSVpFX1BPTElDSUVTID0gJ0Bhd3MtY2RrL2F3cy1pYW06bWluaW1pemVQb2xpY2llcyc7XG5leHBvcnQgY29uc3QgSUFNX0lNUE9SVEVEX1JPTEVfU1RBQ0tfU0FGRV9ERUZBVUxUX1BPTElDWV9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1pYW06aW1wb3J0ZWRSb2xlU3RhY2tTYWZlRGVmYXVsdFBvbGljeU5hbWUnO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRFX1NOQVBTSE9UX1JFTU9WQUxfUE9MSUNZID0gJ0Bhd3MtY2RrL2NvcmU6dmFsaWRhdGVTbmFwc2hvdFJlbW92YWxQb2xpY3knO1xuZXhwb3J0IGNvbnN0IENPREVQSVBFTElORV9DUk9TU19BQ0NPVU5UX0tFWV9BTElBU19TVEFDS19TQUZFX1JFU09VUkNFX05BTUUgPSAnQGF3cy1jZGsvYXdzLWNvZGVwaXBlbGluZTpjcm9zc0FjY291bnRLZXlBbGlhc1N0YWNrU2FmZVJlc291cmNlTmFtZSc7XG5leHBvcnQgY29uc3QgUzNfQ1JFQVRFX0RFRkFVTFRfTE9HR0lOR19QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXMzOmNyZWF0ZURlZmF1bHRMb2dnaW5nUG9saWN5JztcbmV4cG9ydCBjb25zdCBTTlNfU1VCU0NSSVBUSU9OU19TUVNfREVDUllQVElPTl9QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXNucy1zdWJzY3JpcHRpb25zOnJlc3RyaWN0U3FzRGVzY3J5cHRpb24nO1xuZXhwb3J0IGNvbnN0IEFQSUdBVEVXQVlfRElTQUJMRV9DTE9VRFdBVENIX1JPTEUgPSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6ZGlzYWJsZUNsb3VkV2F0Y2hSb2xlJztcbmV4cG9ydCBjb25zdCBFTkFCTEVfUEFSVElUSU9OX0xJVEVSQUxTID0gJ0Bhd3MtY2RrL2NvcmU6ZW5hYmxlUGFydGl0aW9uTGl0ZXJhbHMnO1xuZXhwb3J0IGNvbnN0IEVWRU5UU19UQVJHRVRfUVVFVUVfU0FNRV9BQ0NPVU5UID0gJ0Bhd3MtY2RrL2F3cy1ldmVudHM6ZXZlbnRzVGFyZ2V0UXVldWVTYW1lQWNjb3VudCc7XG5leHBvcnQgY29uc3QgRUNTX0RJU0FCTEVfRVhQTElDSVRfREVQTE9ZTUVOVF9DT05UUk9MTEVSX0ZPUl9DSVJDVUlUX0JSRUFLRVIgPSAnQGF3cy1jZGsvYXdzLWVjczpkaXNhYmxlRXhwbGljaXREZXBsb3ltZW50Q29udHJvbGxlckZvckNpcmN1aXRCcmVha2VyJztcbmV4cG9ydCBjb25zdCBTM19TRVJWRVJfQUNDRVNTX0xPR1NfVVNFX0JVQ0tFVF9QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXMzOnNlcnZlckFjY2Vzc0xvZ3NVc2VCdWNrZXRQb2xpY3knO1xuZXhwb3J0IGNvbnN0IFJPVVRFNTNfUEFUVEVSTlNfVVNFX0NFUlRJRklDQVRFID0gJ0Bhd3MtY2RrL2F3cy1yb3V0ZTUzLXBhdHRlcnM6dXNlQ2VydGlmaWNhdGUnO1xuZXhwb3J0IGNvbnN0IEFXU19DVVNUT01fUkVTT1VSQ0VfTEFURVNUX1NES19ERUZBVUxUID0gJ0Bhd3MtY2RrL2N1c3RvbXJlc291cmNlczppbnN0YWxsTGF0ZXN0QXdzU2RrRGVmYXVsdCc7XG5leHBvcnQgY29uc3QgREFUQUJBU0VfUFJPWFlfVU5JUVVFX1JFU09VUkNFX05BTUUgPSAnQGF3cy1jZGsvYXdzLXJkczpkYXRhYmFzZVByb3h5VW5pcXVlUmVzb3VyY2VOYW1lJztcbmV4cG9ydCBjb25zdCBDT0RFREVQTE9ZX1JFTU9WRV9BTEFSTVNfRlJPTV9ERVBMT1lNRU5UX0dST1VQID0gJ0Bhd3MtY2RrL2F3cy1jb2RlZGVwbG95OnJlbW92ZUFsYXJtc0Zyb21EZXBsb3ltZW50R3JvdXAnO1xuZXhwb3J0IGNvbnN0IEFQSUdBVEVXQVlfQVVUSE9SSVpFUl9DSEFOR0VfREVQTE9ZTUVOVF9MT0dJQ0FMX0lEID0gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5OmF1dGhvcml6ZXJDaGFuZ2VEZXBsb3ltZW50TG9naWNhbElkJztcbmV4cG9ydCBjb25zdCBFQzJfTEFVTkNIX1RFTVBMQVRFX0RFRkFVTFRfVVNFUl9EQVRBID0gJ0Bhd3MtY2RrL2F3cy1lYzI6bGF1bmNoVGVtcGxhdGVEZWZhdWx0VXNlckRhdGEnO1xuZXhwb3J0IGNvbnN0IFNFQ1JFVFNfTUFOQUdFUl9UQVJHRVRfQVRUQUNITUVOVF9SRVNPVVJDRV9QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXNlY3JldHNtYW5hZ2VyOnVzZUF0dGFjaGVkU2VjcmV0UmVzb3VyY2VQb2xpY3lGb3JTZWNyZXRUYXJnZXRBdHRhY2htZW50cyc7XG5leHBvcnQgY29uc3QgUkVEU0hJRlRfQ09MVU1OX0lEID0gJ0Bhd3MtY2RrL2F3cy1yZWRzaGlmdDpjb2x1bW5JZCc7XG5leHBvcnQgY29uc3QgRU5BQkxFX0VNUl9TRVJWSUNFX1BPTElDWV9WMiA9ICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrczplbmFibGVFbXJTZXJ2aWNlUG9saWN5VjInO1xuZXhwb3J0IGNvbnN0IEVDMl9SRVNUUklDVF9ERUZBVUxUX1NFQ1VSSVRZX0dST1VQID0gJ0Bhd3MtY2RrL2F3cy1lYzI6cmVzdHJpY3REZWZhdWx0U2VjdXJpdHlHcm91cCc7XG5leHBvcnQgY29uc3QgQVBJR0FURVdBWV9SRVFVRVNUX1ZBTElEQVRPUl9VTklRVUVfSUQgPSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6cmVxdWVzdFZhbGlkYXRvclVuaXF1ZUlkJztcbmV4cG9ydCBjb25zdCBJTkNMVURFX1BSRUZJWF9JTl9VTklRVUVfTkFNRV9HRU5FUkFUSU9OID0gJ0Bhd3MtY2RrL2NvcmU6aW5jbHVkZVByZWZpeEluVW5pcXVlTmFtZUdlbmVyYXRpb24nO1xuZXhwb3J0IGNvbnN0IEtNU19BTElBU19OQU1FX1JFRiA9ICdAYXdzLWNkay9hd3Mta21zOmFsaWFzTmFtZVJlZic7XG5leHBvcnQgY29uc3QgS01TX0FQUExZX0lNUE9SVEVEX0FMSUFTX1BFUk1JU1NJT05TX1RPX1BSSU5DSVBBTCA9ICdAYXdzLWNkay9hd3Mta21zOmFwcGx5SW1wb3J0ZWRBbGlhc1Blcm1pc3Npb25zVG9QcmluY2lwYWwnO1xuZXhwb3J0IGNvbnN0IEVGU19ERU5ZX0FOT05ZTU9VU19BQ0NFU1MgPSAnQGF3cy1jZGsvYXdzLWVmczpkZW55QW5vbnltb3VzQWNjZXNzJztcbmV4cG9ydCBjb25zdCBFRlNfTU9VTlRUQVJHRVRfT1JERVJJTlNFTlNJVElWRV9MT0dJQ0FMX0lEID0gJ0Bhd3MtY2RrL2F3cy1lZnM6bW91bnRUYXJnZXRPcmRlckluc2Vuc2l0aXZlTG9naWNhbElkJztcbmV4cG9ydCBjb25zdCBBVVRPU0NBTElOR19HRU5FUkFURV9MQVVOQ0hfVEVNUExBVEUgPSAnQGF3cy1jZGsvYXdzLWF1dG9zY2FsaW5nOmdlbmVyYXRlTGF1bmNoVGVtcGxhdGVJbnN0ZWFkT2ZMYXVuY2hDb25maWcnO1xuZXhwb3J0IGNvbnN0IEVOQUJMRV9PUEVOU0VBUkNIX01VTFRJQVpfV0lUSF9TVEFOREJZID0gJ0Bhd3MtY2RrL2F3cy1vcGVuc2VhcmNoc2VydmljZTplbmFibGVPcGVuc2VhcmNoTXVsdGlBeldpdGhTdGFuZGJ5JztcbmV4cG9ydCBjb25zdCBMQU1CREFfTk9ERUpTX1VTRV9MQVRFU1RfUlVOVElNRSA9ICdAYXdzLWNkay9hd3MtbGFtYmRhLW5vZGVqczp1c2VMYXRlc3RSdW50aW1lVmVyc2lvbic7XG5leHBvcnQgY29uc3QgUkRTX1BSRVZFTlRfUkVOREVSSU5HX0RFUFJFQ0FURURfQ1JFREVOVElBTFMgPSAnQGF3cy1jZGsvYXdzLXJkczpwcmV2ZW50UmVuZGVyaW5nRGVwcmVjYXRlZENyZWRlbnRpYWxzJztcbmV4cG9ydCBjb25zdCBBVVJPUkFfQ0xVU1RFUl9DSEFOR0VfU0NPUEVfT0ZfSU5TVEFOQ0VfUEFSQU1FVEVSX0dST1VQX1dJVEhfRUFDSF9QQVJBTUVURVJTID0gJ0Bhd3MtY2RrL2F3cy1yZHM6YXVyb3JhQ2x1c3RlckNoYW5nZVNjb3BlT2ZJbnN0YW5jZVBhcmFtZXRlckdyb3VwV2l0aEVhY2hQYXJhbWV0ZXJzJztcbmV4cG9ydCBjb25zdCBBUFBTWU5DX0VOQUJMRV9VU0VfQVJOX0lERU5USUZJRVJfU09VUkNFX0FQSV9BU1NPQ0lBVElPTiA9ICdAYXdzLWNkay9hd3MtYXBwc3luYzp1c2VBcm5Gb3JTb3VyY2VBcGlBc3NvY2lhdGlvbklkZW50aWZpZXInO1xuZXhwb3J0IGNvbnN0IENPREVDT01NSVRfU09VUkNFX0FDVElPTl9ERUZBVUxUX0JSQU5DSF9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9uczp1c2VOZXdEZWZhdWx0QnJhbmNoRm9yQ29kZUNvbW1pdFNvdXJjZSc7XG5leHBvcnQgY29uc3QgTEFNQkRBX1BFUk1JU1NJT05fTE9HSUNBTF9JRF9GT1JfTEFNQkRBX0FDVElPTiA9ICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaC1hY3Rpb25zOmNoYW5nZUxhbWJkYVBlcm1pc3Npb25Mb2dpY2FsSWRGb3JMYW1iZGFBY3Rpb24nO1xuZXhwb3J0IGNvbnN0IENPREVQSVBFTElORV9DUk9TU19BQ0NPVU5UX0tFWVNfREVGQVVMVF9WQUxVRV9UT19GQUxTRSA9ICdAYXdzLWNkay9hd3MtY29kZXBpcGVsaW5lOmNyb3NzQWNjb3VudEtleXNEZWZhdWx0VmFsdWVUb0ZhbHNlJztcbmV4cG9ydCBjb25zdCBDT0RFUElQRUxJTkVfREVGQVVMVF9QSVBFTElORV9UWVBFX1RPX1YyID0gJ0Bhd3MtY2RrL2F3cy1jb2RlcGlwZWxpbmU6ZGVmYXVsdFBpcGVsaW5lVHlwZVRvVjInO1xuZXhwb3J0IGNvbnN0IEtNU19SRURVQ0VfQ1JPU1NfQUNDT1VOVF9SRUdJT05fUE9MSUNZX1NDT1BFID0gJ0Bhd3MtY2RrL2F3cy1rbXM6cmVkdWNlQ3Jvc3NBY2NvdW50UmVnaW9uUG9saWN5U2NvcGUnO1xuZXhwb3J0IGNvbnN0IFBJUEVMSU5FX1JFRFVDRV9BU1NFVF9ST0xFX1RSVVNUX1NDT1BFID0gJ0Bhd3MtY2RrL3BpcGVsaW5lczpyZWR1Y2VBc3NldFJvbGVUcnVzdFNjb3BlJztcbmV4cG9ydCBjb25zdCBFS1NfTk9ERUdST1VQX05BTUUgPSAnQGF3cy1jZGsvYXdzLWVrczpub2RlZ3JvdXBOYW1lQXR0cmlidXRlJztcbmV4cG9ydCBjb25zdCBFQlNfREVGQVVMVF9HUDMgPSAnQGF3cy1jZGsvYXdzLWVjMjplYnNEZWZhdWx0R3AzVm9sdW1lJztcbmV4cG9ydCBjb25zdCBFQ1NfUkVNT1ZFX0RFRkFVTFRfREVQTE9ZTUVOVF9BTEFSTSA9ICdAYXdzLWNkay9hd3MtZWNzOnJlbW92ZURlZmF1bHREZXBsb3ltZW50QWxhcm0nO1xuZXhwb3J0IGNvbnN0IExPR19BUElfUkVTUE9OU0VfREFUQV9QUk9QRVJUWV9UUlVFX0RFRkFVTFQgPSAnQGF3cy1jZGsvY3VzdG9tLXJlc291cmNlczpsb2dBcGlSZXNwb25zZURhdGFQcm9wZXJ0eVRydWVEZWZhdWx0JztcbmV4cG9ydCBjb25zdCBTM19LRUVQX05PVElGSUNBVElPTl9JTl9JTVBPUlRFRF9CVUNLRVQgPSAnQGF3cy1jZGsvYXdzLXMzOmtlZXBOb3RpZmljYXRpb25JbkltcG9ydGVkQnVja2V0JztcbmV4cG9ydCBjb25zdCBVU0VfTkVXX1MzVVJJX1BBUkFNRVRFUlNfRk9SX0JFRFJPQ0tfSU5WT0tFX01PREVMX1RBU0sgPSAnQGF3cy1jZGsvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3M6dXNlTmV3UzNVcmlQYXJhbWV0ZXJzRm9yQmVkcm9ja0ludm9rZU1vZGVsVGFzayc7XG5leHBvcnQgY29uc3QgRVhQTElDSVRfU1RBQ0tfVEFHUyA9ICdAYXdzLWNkay9jb3JlOmV4cGxpY2l0U3RhY2tUYWdzJztcbmV4cG9ydCBjb25zdCBSRURVQ0VfRUMyX0ZBUkdBVEVfQ0xPVURXQVRDSF9QRVJNSVNTSU9OUyA9ICdAYXdzLWNkay9hd3MtZWNzOnJlZHVjZUVjMkZhcmdhdGVDbG91ZFdhdGNoUGVybWlzc2lvbnMnO1xuZXhwb3J0IGNvbnN0IERZTkFNT0RCX1RBQkxFVjJfUkVTT1VSQ0VfUE9MSUNZX1BFUl9SRVBMSUNBID0gJ0Bhd3MtY2RrL2F3cy1keW5hbW9kYjpyZXNvdXJjZVBvbGljeVBlclJlcGxpY2EnO1xuZXhwb3J0IGNvbnN0IEVDMl9TVU1fVElNRU9VVF9FTkFCTEVEID0gJ0Bhd3MtY2RrL2F3cy1lYzI6ZWMyU3VtVEltZW91dEVuYWJsZWQnO1xuZXhwb3J0IGNvbnN0IEFQUFNZTkNfR1JBUEhRTEFQSV9TQ09QRV9MQU1CREFfRlVOQ1RJT05fUEVSTUlTU0lPTiA9ICdAYXdzLWNkay9hd3MtYXBwc3luYzphcHBTeW5jR3JhcGhRTEFQSVNjb3BlTGFtYmRhUGVybWlzc2lvbic7XG5leHBvcnQgY29uc3QgVVNFX0NPUlJFQ1RfVkFMVUVfRk9SX0lOU1RBTkNFX1JFU09VUkNFX0lEX1BST1BFUlRZID0gJ0Bhd3MtY2RrL2F3cy1yZHM6c2V0Q29ycmVjdFZhbHVlRm9yRGF0YWJhc2VJbnN0YW5jZVJlYWRSZXBsaWNhSW5zdGFuY2VSZXNvdXJjZUlkJztcbmV4cG9ydCBjb25zdCBDRk5fSU5DTFVERV9SRUpFQ1RfQ09NUExFWF9SRVNPVVJDRV9VUERBVEVfQ1JFQVRFX1BPTElDWV9JTlRSSU5TSUNTID0gJ0Bhd3MtY2RrL2NvcmU6Y2ZuSW5jbHVkZVJlamVjdENvbXBsZXhSZXNvdXJjZVVwZGF0ZUNyZWF0ZVBvbGljeUludHJpbnNpY3MnO1xuZXhwb3J0IGNvbnN0IExBTUJEQV9OT0RFSlNfU0RLX1YzX0VYQ0xVREVfU01JVEhZX1BBQ0tBR0VTID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtbm9kZWpzOnNka1YzRXhjbHVkZVNtaXRoeVBhY2thZ2VzJztcbmV4cG9ydCBjb25zdCBTVEVQRlVOQ1RJT05TX1RBU0tTX0ZJWF9SVU5fRUNTX1RBU0tfUE9MSUNZID0gJ0Bhd3MtY2RrL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzOmZpeFJ1bkVjc1Rhc2tQb2xpY3knO1xuZXhwb3J0IGNvbnN0IFNURVBGVU5DVElPTlNfVVNFX0RJU1RSSUJVVEVEX01BUF9SRVNVTFRfV1JJVEVSX1YyID0gJ0Bhd3MtY2RrL2F3cy1zdGVwZnVuY3Rpb25zOnVzZURpc3RyaWJ1dGVkTWFwUmVzdWx0V3JpdGVyVjInO1xuZXhwb3J0IGNvbnN0IEJBU1RJT05fSE9TVF9VU0VfQU1BWk9OX0xJTlVYXzIwMjNfQllfREVGQVVMVCA9ICdAYXdzLWNkay9hd3MtZWMyOmJhc3Rpb25Ib3N0VXNlQW1hem9uTGludXgyMDIzQnlEZWZhdWx0JztcbmV4cG9ydCBjb25zdCBBU1BFQ1RfU1RBQklMSVpBVElPTiA9ICdAYXdzLWNkay9jb3JlOmFzcGVjdFN0YWJpbGl6YXRpb24nO1xuZXhwb3J0IGNvbnN0IFNJR05FUl9QUk9GSUxFX05BTUVfUEFTU0VEX1RPX0NGTiA9ICdAYXdzLWNkay9hd3Mtc2lnbmVyOnNpZ25pbmdQcm9maWxlTmFtZVBhc3NlZFRvQ2ZuJztcbmV4cG9ydCBjb25zdCBVU0VSX1BPT0xfRE9NQUlOX05BTUVfTUVUSE9EX1dJVEhPVVRfQ1VTVE9NX1JFU09VUkNFID0gJ0Bhd3MtY2RrL2F3cy1yb3V0ZTUzLXRhcmdldHM6dXNlclBvb2xEb21haW5OYW1lTWV0aG9kV2l0aG91dEN1c3RvbVJlc291cmNlJztcbmV4cG9ydCBjb25zdCBFbmFibGVfSU1EU19CbG9ja2luZ19EZXByZWNhdGVkX0ZlYXR1cmUgPSAnQGF3cy1jZGsvYXdzLWVjczplbmFibGVJbWRzQmxvY2tpbmdEZXByZWNhdGVkRmVhdHVyZSc7XG5leHBvcnQgY29uc3QgRGlzYWJsZV9FQ1NfSU1EU19CbG9ja2luZyA9ICdAYXdzLWNkay9hd3MtZWNzOmRpc2FibGVFY3NJbWRzQmxvY2tpbmcnO1xuZXhwb3J0IGNvbnN0IEFMQl9EVUFMU1RBQ0tfV0lUSE9VVF9QVUJMSUNfSVBWNF9TRUNVUklUWV9HUk9VUF9SVUxFU19ERUZBVUxUID0gJ0Bhd3MtY2RrL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ1YyOmFsYkR1YWxzdGFja1dpdGhvdXRQdWJsaWNJcHY0U2VjdXJpdHlHcm91cFJ1bGVzRGVmYXVsdCc7XG5leHBvcnQgY29uc3QgSUFNX09JRENfUkVKRUNUX1VOQVVUSE9SSVpFRF9DT05ORUNUSU9OUyA9ICdAYXdzLWNkay9hd3MtaWFtOm9pZGNSZWplY3RVbmF1dGhvcml6ZWRDb25uZWN0aW9ucyc7XG5leHBvcnQgY29uc3QgRU5BQkxFX0FERElUSU9OQUxfTUVUQURBVEFfQ09MTEVDVElPTiA9ICdAYXdzLWNkay9jb3JlOmVuYWJsZUFkZGl0aW9uYWxNZXRhZGF0YUNvbGxlY3Rpb24nO1xuZXhwb3J0IGNvbnN0IExBTUJEQV9DUkVBVEVfTkVXX1BPTElDSUVTX1dJVEhfQUREVE9ST0xFUE9MSUNZID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6Y3JlYXRlTmV3UG9saWNpZXNXaXRoQWRkVG9Sb2xlUG9saWN5JztcbmV4cG9ydCBjb25zdCBTRVRfVU5JUVVFX1JFUExJQ0FUSU9OX1JPTEVfTkFNRSA9ICdAYXdzLWNkay9hd3MtczM6c2V0VW5pcXVlUmVwbGljYXRpb25Sb2xlTmFtZSc7XG5leHBvcnQgY29uc3QgUElQRUxJTkVfUkVEVUNFX1NUQUdFX1JPTEVfVFJVU1RfU0NPUEUgPSAnQGF3cy1jZGsvcGlwZWxpbmVzOnJlZHVjZVN0YWdlUm9sZVRydXN0U2NvcGUnO1xuZXhwb3J0IGNvbnN0IEVWRU5UQlVTX1BPTElDWV9TSURfUkVRVUlSRUQgPSAnQGF3cy1jZGsvYXdzLWV2ZW50czpyZXF1aXJlRXZlbnRCdXNQb2xpY3lTaWQnO1xuZXhwb3J0IGNvbnN0IEFTUEVDVF9QUklPUklUSUVTX01VVEFUSU5HID0gJ0Bhd3MtY2RrL2NvcmU6YXNwZWN0UHJpb3JpdGllc011dGF0aW5nJztcbmV4cG9ydCBjb25zdCBEWU5BTU9EQl9UQUJMRV9SRVRBSU5fVEFCTEVfUkVQTElDQSA9ICdAYXdzLWNkay9hd3MtZHluYW1vZGI6cmV0YWluVGFibGVSZXBsaWNhJztcbmV4cG9ydCBjb25zdCBMT0dfVVNFUl9QT09MX0NMSUVOVF9TRUNSRVRfVkFMVUUgPSAnQGF3cy1jZGsvY29nbml0bzpsb2dVc2VyUG9vbENsaWVudFNlY3JldFZhbHVlJztcbmV4cG9ydCBjb25zdCBQSVBFTElORV9SRURVQ0VfQ1JPU1NfQUNDT1VOVF9BQ1RJT05fUk9MRV9UUlVTVF9TQ09QRSA9ICdAYXdzLWNkay9waXBlbGluZXM6cmVkdWNlQ3Jvc3NBY2NvdW50QWN0aW9uUm9sZVRydXN0U2NvcGUnO1xuZXhwb3J0IGNvbnN0IFMzX1RSVVNUX0tFWV9QT0xJQ1lfRk9SX1NOU19TVUJTQ1JJUFRJT05TID0gJ0Bhd3MtY2RrL3MzLW5vdGlmaWNhdGlvbnM6YWRkUzNUcnVzdEtleVBvbGljeUZvclNuc1N1YnNjcmlwdGlvbnMnO1xuZXhwb3J0IGNvbnN0IEVDMl9SRVFVSVJFX1BSSVZBVEVfU1VCTkVUU19GT1JfRUdSRVNTT05MWUlOVEVSTkVUR0FURVdBWSA9ICdAYXdzLWNkay9hd3MtZWMyOnJlcXVpcmVQcml2YXRlU3VibmV0c0ZvckVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXknO1xuZXhwb3J0IGNvbnN0IFVTRV9SRVNPVVJDRUlEX0ZPUl9WUENWMl9NSUdSQVRJT04gPSAnQGF3cy1jZGsvYXdzLWVjMi1hbHBoYTp1c2VSZXNvdXJjZUlkRm9yVnBjVjJNaWdyYXRpb24nO1xuZXhwb3J0IGNvbnN0IFMzX1BVQkxJQ19BQ0NFU1NfQkxPQ0tFRF9CWV9ERUZBVUxUID0gJ0Bhd3MtY2RrL2F3cy1zMzpwdWJsaWNBY2Nlc3NCbG9ja2VkQnlEZWZhdWx0JztcbmV4cG9ydCBjb25zdCBVU0VfQ0RLX01BTkFHRURfTEFNQkRBX0xPR0dST1VQID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6dXNlQ2RrTWFuYWdlZExvZ0dyb3VwJztcblxuZXhwb3J0IGNvbnN0IEZMQUdTOiBSZWNvcmQ8c3RyaW5nLCBGbGFnSW5mbz4gPSB7XG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1NJR05FUl9QUk9GSUxFX05BTUVfUEFTU0VEX1RPX0NGTl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1Bhc3Mgc2lnbmluZ1Byb2ZpbGVOYW1lIHRvIENmblNpZ25pbmdQcm9maWxlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gZW5hYmxlZCwgdGhlIFxcYHNpZ25pbmdQcm9maWxlTmFtZVxcYCBwcm9wZXJ0eSBpcyBwYXNzZWQgdG8gdGhlIEwxIFxcYENmblNpZ25pbmdQcm9maWxlXFxgIGNvbnN0cnVjdCxcbiAgICAgIHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgQVdTIFNpZ25lciBwcm9maWxlIGlzIGNyZWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuXG4gICAgICBcbiAgICAgIFdoZW4gZGlzYWJsZWQsIHRoZSBcXGBzaWduaW5nUHJvZmlsZU5hbWVcXGAgaXMgbm90IHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbiwgbWFpbnRhaW5pbmcgYmFja3dhcmRcbiAgICAgIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBkZXBsb3ltZW50cyB3aGVyZSBDbG91ZEZvcm1hdGlvbiBhdXRvLWdlbmVyYXRlZCBwcm9maWxlIG5hbWVzLlxuICAgICAgXG4gICAgICBUaGlzIGZlYXR1cmUgZmxhZyBpcyBuZWVkZWQgYmVjYXVzZSBlbmFibGluZyBpdCBjYW4gY2F1c2UgZXhpc3Rpbmcgc2lnbmluZyBwcm9maWxlcyB0byBiZVxuICAgICAgcmVwbGFjZWQgZHVyaW5nIGRlcGxveW1lbnQgaWYgYSBcXGBzaWduaW5nUHJvZmlsZU5hbWVcXGAgd2FzIHNwZWNpZmllZCBidXQgbm90IHByZXZpb3VzbHkgdXNlZFxuICAgICAgaW4gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4yMTIuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiBmYWxzZSB9LFxuICB9LFxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFTkFCTEVfU1RBQ0tfTkFNRV9EVVBMSUNBVEVTX0NPTlRFWFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnQWxsb3cgbXVsdGlwbGUgc3RhY2tzIHdpdGggdGhlIHNhbWUgbmFtZScsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBJZiB0aGlzIGlzIHNldCwgbXVsdGlwbGUgc3RhY2tzIGNhbiB1c2UgdGhlIHNhbWUgc3RhY2sgbmFtZSAoZS5nLiBkZXBsb3llZCB0b1xuICAgICAgZGlmZmVyZW50IGVudmlyb25tZW50cykuIFRoaXMgbWVhbnMgdGhhdCB0aGUgbmFtZSBvZiB0aGUgc3ludGhlc2l6ZWQgdGVtcGxhdGVcbiAgICAgIGZpbGUgd2lsbCBiZSBiYXNlZCBvbiB0aGUgY29uc3RydWN0IHBhdGggYW5kIG5vdCBvbiB0aGUgZGVmaW5lZCBcXGBzdGFja05hbWVcXGBcbiAgICAgIG9mIHRoZSBzdGFjay5gLFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xNi4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnUGFzcyBzdGFjayBpZGVudGlmaWVycyB0byB0aGUgQ0xJIGluc3RlYWQgb2Ygc3RhY2sgbmFtZXMuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFTkFCTEVfRElGRl9OT19GQUlMX0NPTlRFWFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnTWFrZSBgY2RrIGRpZmZgIG5vdCBmYWlsIHdoZW4gdGhlcmUgYXJlIGRpZmZlcmVuY2VzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIERldGVybWluZXMgd2hhdCBzdGF0dXMgY29kZSBcXGBjZGsgZGlmZlxcYCBzaG91bGQgcmV0dXJuIHdoZW4gdGhlIHNwZWNpZmllZCBzdGFja1xuICAgICAgZGlmZmVycyBmcm9tIHRoZSBkZXBsb3llZCBzdGFjayBvciB0aGUgbG9jYWwgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGU6XG5cbiAgICAgICogXFxgYXdzLWNkazplbmFibGVEaWZmTm9GYWlsPXRydWVcXGAgPT4gc3RhdHVzIGNvZGUgPT0gMFxuICAgICAgKiBcXGBhd3MtY2RrOmVuYWJsZURpZmZOb0ZhaWw9ZmFsc2VcXGAgPT4gc3RhdHVzIGNvZGUgPT0gMVxuXG4gICAgICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYmVoYXZpb3Igd2l0aCB0aGUgLS1mYWlsIGZsYWc6XG5cbiAgICAgICogXFxgLS1mYWlsXFxgID0+IHN0YXR1cyBjb2RlID09IDFcbiAgICAgICogXFxgLS1uby1mYWlsXFxgID0+IHN0YXR1cyBjb2RlID09IDBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MTogJzEuMTkuMCcgfSxcbiAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZTogeyB2MjogdHJ1ZSB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnU3BlY2lmeSBgLS1mYWlsYCB0byB0aGUgQ0xJLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTkVXX1NUWUxFX1NUQUNLX1NZTlRIRVNJU19DT05URVhUXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnU3dpdGNoIHRvIG5ldyBzdGFjayBzeW50aGVzaXMgbWV0aG9kIHdoaWNoIGVuYWJsZXMgQ0kvQ0QnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBmbGFnIGlzIHNwZWNpZmllZCwgYWxsIFxcYFN0YWNrXFxgcyB3aWxsIHVzZSB0aGUgXFxgRGVmYXVsdFN0YWNrU3ludGhlc2l6ZXJcXGAgYnlcbiAgICAgIGRlZmF1bHQuIElmIGl0IGlzIG5vdCBzZXQsIHRoZXkgd2lsbCB1c2UgdGhlIFxcYExlZ2FjeVN0YWNrU3ludGhlc2l6ZXJcXGAuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjM5LjAnLCB2MjogJzIuMC4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTVEFDS19SRUxBVElWRV9FWFBPUlRTX0NPTlRFWFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdOYW1lIGV4cG9ydHMgYmFzZWQgb24gdGhlIGNvbnN0cnVjdCBwYXRocyByZWxhdGl2ZSB0byB0aGUgc3RhY2ssIHJhdGhlciB0aGFuIHRoZSBnbG9iYWwgY29uc3RydWN0IHBhdGgnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ29tYmluZWQgd2l0aCB0aGUgc3RhY2sgbmFtZSB0aGlzIHJlbGF0aXZlIGNvbnN0cnVjdCBwYXRoIGlzIGdvb2QgZW5vdWdoIHRvXG4gICAgICBlbnN1cmUgdW5pcXVlbmVzcywgYW5kIG1ha2VzIHRoZSBleHBvcnQgbmFtZXMgcm9idXN0IGFnYWluc3QgcmVmYWN0b3JpbmdcbiAgICAgIHRoZSBsb2NhdGlvbiBvZiB0aGUgc3RhY2sgaW4gdGhlIGNvbnN0cnVjdCB0cmVlIChzcGVjaWZpY2FsbHksIG1vdmluZyB0aGUgU3RhY2tcbiAgICAgIGludG8gYSBTdGFnZSkuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjU4LjAnLCB2MjogJzIuMC4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtET0NLRVJfSUdOT1JFX1NVUFBPUlRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRG9ja2VySW1hZ2VBc3NldCBwcm9wZXJseSBzdXBwb3J0cyBgLmRvY2tlcmlnbm9yZWAgZmlsZXMgYnkgZGVmYXVsdCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIFxcYERvY2tlckltYWdlQXNzZXRcXGAgaXMgdG8gdXNlXG4gICAgICBnbG9iIHNlbWFudGljcyBmb3IgXFxgLmRvY2tlcmlnbm9yZVxcYCBmaWxlcy4gSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgIGlzIHN0YW5kYXJkIERvY2tlciBpZ25vcmUgc2VtYW50aWNzLlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBvbGQgYmVoYXZpb3Igd2FzIHRlY2huaWNhbGx5IGluY29ycmVjdCBidXRcbiAgICAgIHVzZXJzIG1heSBoYXZlIGNvbWUgdG8gZGVwZW5kIG9uIGl0LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS43My4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdVcGRhdGUgeW91ciBgLmRvY2tlcmlnbm9yZWAgZmlsZSB0byBtYXRjaCBzdGFuZGFyZCBEb2NrZXIgaWdub3JlIHJ1bGVzLCBpZiBuZWNlc3NhcnkuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTRUNSRVRTX01BTkFHRVJfUEFSU0VfT1dORURfU0VDUkVUX05BTUVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRml4IHRoZSByZWZlcmVuY2luZyBvZiBTZWNyZXRzTWFuYWdlciBuYW1lcyBmcm9tIEFSTnMnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgU2VjcmV0LnNlY3JldE5hbWUgZm9yIGFuIFwib3duZWRcIiBzZWNyZXQgd2lsbCBhdHRlbXB0IHRvIHBhcnNlIHRoZSBzZWNyZXROYW1lIGZyb20gdGhlIEFSTixcbiAgICAgIHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0IGZ1bGwgcmVzb3VyY2UgbmFtZSwgd2hpY2ggaW5jbHVkZXMgdGhlIFNlY3JldHNNYW5hZ2VyIHN1ZmZpeC5cblxuICAgICAgSWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIFNlY3JldC5zZWNyZXROYW1lIHdpbGwgaW5jbHVkZSB0aGUgU2VjcmV0c01hbmFnZXIgc3VmZml4LCB3aGljaCBjYW5ub3QgYmUgZGlyZWN0bHlcbiAgICAgIHVzZWQgYnkgU2VjcmV0c01hbmFnZXIuRGVzY3JpYmVTZWNyZXQsIGFuZCBtdXN0IGJlIHBhcnNlZCBieSB0aGUgdXNlciBmaXJzdCAoZS5nLiwgRm46Sm9pbiwgRm46U2VsZWN0LCBGbjpTcGxpdCkuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjc3LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1VzZSBgcGFyc2VBcm4oc2VjcmV0LnNlY3JldE5hbWUpLnJlc291cmNlTmFtZWAgdG8gZW11bGF0ZSB0aGUgaW5jb3JyZWN0IG9sZCBwYXJzaW5nLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbS01TX0RFRkFVTFRfS0VZX1BPTElDSUVTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1RpZ2h0ZW4gZGVmYXVsdCBLTVMga2V5IHBvbGljaWVzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEtNUyBLZXlzIHN0YXJ0IHdpdGggYSBkZWZhdWx0IGtleSBwb2xpY3kgdGhhdCBncmFudHMgdGhlIGFjY291bnQgYWNjZXNzIHRvIGFkbWluaXN0ZXIgdGhlIGtleSxcbiAgICAgIG1pcnJvcmluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIEtNUyBTREsvQ0xJL0NvbnNvbGUgZXhwZXJpZW5jZS4gVXNlcnMgbWF5IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGtleVxuICAgICAgcG9saWN5IGJ5IHNwZWNpZnlpbmcgdGhlaXIgb3duLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQga2V5IHBvbGljeSBkZXBlbmRzIG9uIHRoZSBzZXR0aW5nIG9mIHRoZSBcXGB0cnVzdEFjY291bnRJZGVudGl0aWVzXFxgXG4gICAgICBmbGFnLiBJZiBmYWxzZSAodGhlIGRlZmF1bHQsIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zKSwgdGhlIGRlZmF1bHQga2V5IHBvbGljeSBzb21ld2hhdFxuICAgICAgcmVzZW1ibGVzIHRoZSBkZWZhdWx0IGFkbWluIGtleSBwb2xpY3ksIGJ1dCB3aXRoIHRoZSBhZGRpdGlvbiBvZiAnR2VuZXJhdGVEYXRhS2V5JyBwZXJtaXNzaW9ucy4gSWZcbiAgICAgIHRydWUsIHRoZSBwb2xpY3kgbWF0Y2hlcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBzZXQuXG5cbiAgICAgIEFkZGl0aW9uYWxseSwgaWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQgYW5kIHRoZSB1c2VyIHN1cHBsaWVzIGEgY3VzdG9tIGtleSBwb2xpY3ksIHRoaXMgd2lsbCBiZSBhcHBlbmRlZFxuICAgICAgdG8gdGhlIGtleSdzIGRlZmF1bHQgcG9saWN5IChyYXRoZXIgdGhhbiByZXBsYWNpbmcgaXQpLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS43OC4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdQYXNzIGB0cnVzdEFjY291bnRJZGVudGl0aWVzOiBmYWxzZWAgdG8gYEtleWAgY29uc3RydWN0IHRvIHJlc3RvcmUgdGhlIG9sZCBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1MzX0dSQU5UX1dSSVRFX1dJVEhPVVRfQUNMXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1JlbW92ZSBgUHV0T2JqZWN0QWNsYCBmcm9tIEJ1Y2tldC5ncmFudFdyaXRlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIENoYW5nZSB0aGUgb2xkICdzMzpQdXRPYmplY3QqJyBwZXJtaXNzaW9uIHRvICdzMzpQdXRPYmplY3QnIG9uIEJ1Y2tldCxcbiAgICAgIGFzIHRoZSBmb3JtZXIgaW5jbHVkZXMgJ3MzOlB1dE9iamVjdEFjbCcsXG4gICAgICB3aGljaCBjb3VsZCBiZSB1c2VkIHRvIGdyYW50IHJlYWQvd3JpdGUgb2JqZWN0IGFjY2VzcyB0byBJQU0gcHJpbmNpcGFscyBpbiBvdGhlciBhY2NvdW50cy5cbiAgICAgIFVzZSBhIGZlYXR1cmUgZmxhZyB0byBtYWtlIHN1cmUgZXhpc3RpbmcgY3VzdG9tZXJzIHdobyBtaWdodCBiZSByZWx5aW5nXG4gICAgICBvbiB0aGUgb3Zlcmx5LWJyb2FkIHBlcm1pc3Npb25zIGFyZSBub3QgYnJva2VuLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS44NS4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdDYWxsIGBidWNrZXQuZ3JhbnRQdXRBY2woKWAgaW4gYWRkaXRpb24gdG8gYGJ1Y2tldC5ncmFudFdyaXRlKClgIHRvIGdyYW50IEFDTCBwZXJtaXNzaW9ucy4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VDU19SRU1PVkVfREVGQVVMVF9ERVNJUkVEX0NPVU5UXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ0RvIG5vdCBzcGVjaWZ5IGEgZGVmYXVsdCBEZXNpcmVkQ291bnQgZm9yIEVDUyBzZXJ2aWNlcycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFNlcnZpY2VCYXNlLCBBcHBsaWNhdGlvbk11bHRpcGxlVGFyZ2V0R3JvdXBTZXJ2aWNlQmFzZSxcbiAgICAgIE5ldHdvcmtMb2FkQmFsYW5jZWRTZXJ2aWNlQmFzZSwgTmV0d29ya011bHRpcGxlVGFyZ2V0R3JvdXBTZXJ2aWNlQmFzZSwgYW5kXG4gICAgICBRdWV1ZVByb2Nlc3NpbmdTZXJ2aWNlQmFzZSBjdXJyZW50bHkgZGV0ZXJtaW5lIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGRlc2lyZWQgY291bnQgb2ZcbiAgICAgIGEgQ2ZuU2VydmljZSBpZiBhIGRlc2lyZWRDb3VudCBpcyBub3QgcHJvdmlkZWQuIFRoZSByZXN1bHQgb2YgdGhpcyBpcyB0aGF0IG9uIGV2ZXJ5XG4gICAgICBkZXBsb3ltZW50LCB0aGUgc2VydmljZSBjb3VudCBpcyByZXNldCB0byB0aGUgZml4ZWQgdmFsdWUsIGV2ZW4gaWYgaXQgd2FzIGF1dG9zY2FsZWQuXG5cbiAgICAgIElmIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgZm9yIENmblNlcnZpY2UuZGVzaXJlZENvdW50IGlzIHRvIHNldCBhXG4gICAgICBkZXNpcmVkQ291bnQgb2YgMSwgaWYgb25lIGlzIG5vdCBwcm92aWRlZC4gSWYgdHJ1ZSwgYSBkZWZhdWx0IHdpbGwgbm90IGJlIGRlZmluZWQgZm9yXG4gICAgICBDZm5TZXJ2aWNlLmRlc2lyZWRDb3VudCBhbmQgYXMgc3VjaCBkZXNpcmVkQ291bnQgd2lsbCBiZSB1bmRlZmluZWQsIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjkyLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1lvdSBjYW4gcGFzcyBgZGVzaXJlZENvdW50OiAxYCBleHBsaWNpdGx5LCBidXQgeW91IHNob3VsZCBuZXZlciBuZWVkIHRoaXMuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtSRFNfTE9XRVJDQVNFX0RCX0lERU5USUZJRVJdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdGb3JjZSBsb3dlcmNhc2luZyBvZiBSRFMgQ2x1c3RlciBuYW1lcyBpbiBDREsnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ2x1c3RlciBuYW1lcyBtdXN0IGJlIGxvd2VyY2FzZSwgYW5kIHRoZSBzZXJ2aWNlIHdpbGwgbG93ZXJjYXNlIHRoZSBuYW1lIHdoZW4gdGhlIGNsdXN0ZXJcbiAgICAgIGlzIGNyZWF0ZWQuIEhvd2V2ZXIsIENESyBkaWQgbm90IHVzZSB0byBrbm93IGFib3V0IHRoaXMsIGFuZCB3b3VsZCB1c2UgdGhlIHVzZXItcHJvdmlkZWQgbmFtZVxuICAgICAgcmVmZXJlbmNpbmcgdGhlIGNsdXN0ZXIsIHdoaWNoIHdvdWxkIGZhaWwgaWYgaXQgaGFwcGVuZWQgdG8gYmUgbWl4ZWQtY2FzZS5cblxuICAgICAgV2l0aCB0aGlzIGZsYWcsIGxvd2VyY2FzZSB0aGUgbmFtZSBpbiBDREsgc28gd2UgY2FuIHJlZmVyZW5jZSBpdCBwcm9wZXJseS5cblxuICAgICAgTXVzdCBiZSBiZWhpbmQgYSBwZXJtYW5lbnQgZmxhZyBiZWNhdXNlIGNoYW5naW5nIGEgbmFtZSBmcm9tIG1peGVkIGNhc2UgdG8gbG93ZXJjYXNlIGJldHdlZW4gZGVwbG95bWVudHNcbiAgICAgIHdvdWxkIGxlYWQgQ2xvdWRGb3JtYXRpb24gdG8gdGhpbmsgdGhlIG5hbWUgd2FzIGNoYW5nZWQgYW5kIHdvdWxkIHRyaWdnZXIgYSBjbHVzdGVyIHJlcGxhY2VtZW50XG4gICAgICAobG9zaW5nIGRhdGEhKS5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MTogJzEuOTcuMCcsIHYyOiAnMi4wLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQSUdBVEVXQVlfVVNBR0VQTEFOS0VZX09SREVSSU5TRU5TSVRJVkVfSURdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdBbGxvdyBhZGRpbmcvcmVtb3ZpbmcgbXVsdGlwbGUgVXNhZ2VQbGFuS2V5cyBpbmRlcGVuZGVudGx5JyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBVc2FnZVBsYW5LZXkgcmVzb3VyY2UgY29ubmVjdHMgYW4gQXBpS2V5IHdpdGggYSBVc2FnZVBsYW4uIEFQSSBHYXRld2F5IGRvZXMgbm90IGFsbG93IG1vcmUgdGhhbiBvbmUgVXNhZ2VQbGFuS2V5XG4gICAgICBmb3IgYW55IGdpdmVuIFVzYWdlUGxhbiBhbmQgQXBpS2V5IGNvbWJpbmF0aW9uLiBGb3IgdGhpcyByZWFzb24sIENsb3VkRm9ybWF0aW9uIGNhbm5vdCByZXBsYWNlIHRoaXMgcmVzb3VyY2Ugd2l0aG91dFxuICAgICAgZWl0aGVyIHRoZSBVc2FnZVBsYW4gb3IgQXBpS2V5IGNoYW5naW5nLlxuXG4gICAgICBUaGUgZmVhdHVyZSBhZGRpdGlvbiB0byBzdXBwb3J0IG11bHRpcGxlIFVzYWdlUGxhbktleSByZXNvdXJjZXMgLSAxNDJiZDBlMiAtIHJlY29nbml6ZWQgdGhpcyBhbmQgYXR0ZW1wdGVkIHRvIGtlZXBcbiAgICAgIGV4aXN0aW5nIFVzYWdlUGxhbktleSBsb2dpY2FsIGlkcyB1bmNoYW5nZWQuXG4gICAgICBIb3dldmVyLCB0aGlzIGludGVudGlvbmFsbHkgY2F1c2VkIHRoZSBsb2dpY2FsIGlkIG9mIHRoZSBVc2FnZVBsYW5LZXkgdG8gYmUgc2Vuc2l0aXZlIHRvIG9yZGVyLiBUaGF0IGlzLCB3aGVuXG4gICAgICB0aGUgJ2ZpcnN0JyBVc2FnZVBsYW5LZXkgcmVzb3VyY2UgaXMgcmVtb3ZlZCwgdGhlIGxvZ2ljYWwgaWQgb2YgdGhlICdzZWNvbmQnIGFzc3VtZXMgd2hhdCB3YXMgb3JpZ2luYWxseSB0aGUgJ2ZpcnN0JyxcbiAgICAgIHdoaWNoIGFnYWluIGlzIGRpc2FsbG93ZWQuXG5cbiAgICAgIEluIGVmZmVjdCwgdGhlcmUgaXMgbm8gd2F5IHRvIGdldCBvdXQgb2YgdGhpcyBtZXNzIGluIGEgYmFja3dhcmRzIGNvbXBhdGlibGUgd2F5LCB3aGlsZSBzdXBwb3J0aW5nIGV4aXN0aW5nIHN0YWNrcy5cbiAgICAgIFRoaXMgZmxhZyBjaGFuZ2VzIHRoZSBsb2dpY2FsIGlkIGxheW91dCBvZiBVc2FnZVBsYW5LZXkgdG8gbm90IGJlIHNlbnNpdGl2ZSB0byBvcmRlci5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MTogJzEuOTguMCcsIHYyOiAnMi4wLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VGU19ERUZBVUxUX0VOQ1JZUFRJT05fQVRfUkVTVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gaGF2ZSBlbGFzdGljIGZpbGUgc3lzdGVtcyBlbmNyeXB0ZWQgYXQgcmVzdCBieSBkZWZhdWx0LicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmNyeXB0aW9uIGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgZXhwbGljaXRseSB1c2luZyB0aGUgXFxgZW5jcnlwdGVkXFxgIHByb3BlcnR5LlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjk4LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgdGhlIGBlbmNyeXB0ZWQ6IGZhbHNlYCBwcm9wZXJ0eSB0byB0aGUgYEZpbGVTeXN0ZW1gIGNvbnN0cnVjdCB0byBkaXNhYmxlIGVuY3J5cHRpb24uJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtMQU1CREFfUkVDT0dOSVpFX1ZFUlNJT05fUFJPUFNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gb3B0IGluIHRvIHRoZSB1cGRhdGVkIGxvZ2ljYWwgaWQgY2FsY3VsYXRpb24gZm9yIExhbWJkYSBWZXJzaW9uIGNyZWF0ZWQgdXNpbmcgdGhlICBgZm4uY3VycmVudFZlcnNpb25gLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGUgcHJldmlvdXMgY2FsY3VsYXRpb24gaW5jb3JyZWN0bHkgY29uc2lkZXJlZCBwcm9wZXJ0aWVzIG9mIHRoZSBcXGBBV1M6OkxhbWJkYTo6RnVuY3Rpb25cXGAgcmVzb3VyY2UgdGhhdCBkaWRcbiAgICAgIG5vdCBjb25zdGl0dXRlIGNyZWF0aW5nIGEgbmV3IFZlcnNpb24uXG5cbiAgICAgIFNlZSAnY3VycmVudFZlcnNpb24nIHNlY3Rpb24gaW4gdGhlIGF3cy1sYW1iZGEgbW9kdWxlJ3MgUkVBRE1FIGZvciBtb3JlIGRldGFpbHMuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjEwNi4wJywgdjI6ICcyLjAuMCcgfSxcbiAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZTogeyB2MjogdHJ1ZSB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTEFNQkRBX1JFQ09HTklaRV9MQVlFUl9WRVJTSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIG9wdCBpbiB0byB0aGUgdXBkYXRlZCBsb2dpY2FsIGlkIGNhbGN1bGF0aW9uIGZvciBMYW1iZGEgVmVyc2lvbiBjcmVhdGVkIHVzaW5nIHRoZSBgZm4uY3VycmVudFZlcnNpb25gLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGlzIGZsYWcgY29ycmVjdCBpbmNvcnBvcmF0ZXMgTGFtYmRhIExheWVyIHByb3BlcnRpZXMgaW50byB0aGUgTGFtYmRhIEZ1bmN0aW9uIFZlcnNpb24uXG5cbiAgICAgIFNlZSAnY3VycmVudFZlcnNpb24nIHNlY3Rpb24gaW4gdGhlIGF3cy1sYW1iZGEgbW9kdWxlJ3MgUkVBRE1FIGZvciBtb3JlIGRldGFpbHMuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjE1OS4wJywgdjI6ICcyLjI3LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDTE9VREZST05UX0RFRkFVTFRfU0VDVVJJVFlfUE9MSUNZX1RMU19WMV8yXzIwMjFdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gaGF2ZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbnMgdXNlIHRoZSBzZWN1cml0eSBwb2xpY3kgVExTdjEuMl8yMDIxIGJ5IGRlZmF1bHQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBzZWN1cml0eSBwb2xpY3kgY2FuIGFsc28gYmUgY29uZmlndXJlZCBleHBsaWNpdGx5IHVzaW5nIHRoZSBcXGBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uXFxgIHByb3BlcnR5LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xMTcuMCcsIHYyOiAnMi4wLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NIRUNLX1NFQ1JFVF9VU0FHRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5WaXNpYmxlQ29udGV4dCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlIHRoaXMgZmxhZyB0byBtYWtlIGl0IGltcG9zc2libGUgdG8gYWNjaWRlbnRhbGx5IHVzZSBTZWNyZXRWYWx1ZXMgaW4gdW5zYWZlIGxvY2F0aW9ucycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaXRoIHRoaXMgZmxhZyBlbmFibGVkLCBcXGBTZWNyZXRWYWx1ZVxcYCBpbnN0YW5jZXMgY2FuIG9ubHkgYmUgcGFzc2VkIHRvXG4gICAgICBjb25zdHJ1Y3RzIHRoYXQgYWNjZXB0IFxcYFNlY3JldFZhbHVlXFxgczsgb3RoZXJ3aXNlLCBcXGB1bnNhZmVVbndyYXAoKVxcYCBtdXN0IGJlXG4gICAgICBjYWxsZWQgdG8gdXNlIGl0IGFzIGEgcmVndWxhciBzdHJpbmcuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjE1My4wJywgdjI6ICcyLjIxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtUQVJHRVRfUEFSVElUSU9OU106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5WaXNpYmxlQ29udGV4dCxcbiAgICBzdW1tYXJ5OiAnV2hhdCByZWdpb25zIHRvIGluY2x1ZGUgaW4gbG9va3VwIHRhYmxlcyBvZiBlbnZpcm9ubWVudCBhZ25vc3RpYyBzdGFja3MnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSGFzIG5vIGVmZmVjdCBvbiBzdGFja3MgdGhhdCBoYXZlIGEgZGVmaW5lZCByZWdpb24sIGJ1dCB3aWxsIGxpbWl0IHRoZSBhbW91bnRcbiAgICAgIG9mIHVubmVjZXNzYXJ5IHJlZ2lvbnMgaW5jbHVkZWQgaW4gc3RhY2tzIHdpdGhvdXQgYSBrbm93biByZWdpb24uXG5cbiAgICAgIFRoZSB0eXBlIG9mIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBzdHJpbmdzLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xMzcuMCcsIHYyOiAnMi40LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogWydhd3MnLCAnYXdzLWNuJ10sXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUNTX1NFUlZJQ0VfRVhURU5TSU9OU19FTkFCTEVfREVGQVVMVF9MT0dfRFJJVkVSXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ0VDUyBleHRlbnNpb25zIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYW4gYGF3c2xvZ3NgIGRyaXZlciBpZiBubyBsb2dnaW5nIGlzIHNwZWNpZmllZCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gY29uZmlndXJlIGRlZmF1bHQgbG9nZ2luZyBiZWhhdmlvciBmb3IgdGhlIEVDUyBTZXJ2aWNlIEV4dGVuc2lvbnMuIFRoaXMgd2lsbCBlbmFibGUgdGhlXG4gICAgICBcXGBhd3Nsb2dzXFxgIGxvZyBkcml2ZXIgZm9yIHRoZSBhcHBsaWNhdGlvbiBjb250YWluZXIgb2YgdGhlIHNlcnZpY2UgdG8gc2VuZCB0aGUgY29udGFpbmVyIGxvZ3MgdG8gQ2xvdWRXYXRjaCBMb2dzLlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBuZXcgYmVoYXZpb3IgcHJvdmlkZXMgYSBiZXR0ZXIgZGVmYXVsdCBleHBlcmllbmNlIGZvciB0aGUgdXNlcnMuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjE6ICcxLjE0MC4wJywgdjI6ICcyLjguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1NwZWNpZnkgYSBsb2cgZHJpdmVyIGV4cGxpY2l0bHkuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQzJfVU5JUVVFX0lNRFNWMl9MQVVOQ0hfVEVNUExBVEVfTkFNRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBoYXZlIExhdW5jaCBUZW1wbGF0ZXMgZ2VuZXJhdGVkIGJ5IHRoZSBgSW5zdGFuY2VSZXF1aXJlSW1kc3YyQXNwZWN0YCB1c2UgdW5pcXVlIG5hbWVzLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBQcmV2aW91c2x5LCB0aGUgZ2VuZXJhdGVkIExhdW5jaCBUZW1wbGF0ZSBuYW1lcyB3ZXJlIG9ubHkgdW5pcXVlIHdpdGhpbiBhIHN0YWNrIGJlY2F1c2UgdGhleSB3ZXJlIGJhc2VkIG9ubHkgb24gdGhlXG4gICAgICBcXGBJbnN0YW5jZVxcYCBjb25zdHJ1Y3QgSUQuIElmIGFub3RoZXIgc3RhY2sgdGhhdCBoYXMgYW4gXFxgSW5zdGFuY2VcXGAgd2l0aCB0aGUgc2FtZSBjb25zdHJ1Y3QgSUQgaXMgZGVwbG95ZWQgaW4gdGhlIHNhbWVcbiAgICAgIGFjY291bnQgYW5kIHJlZ2lvbiwgdGhlIGRlcGxveW1lbnRzIHdvdWxkIGFsd2F5cyBmYWlsIGFzIHRoZSBnZW5lcmF0ZWQgTGF1bmNoIFRlbXBsYXRlIG5hbWVzIHdlcmUgdGhlIHNhbWUuXG5cbiAgICAgIFRoZSBuZXcgaW1wbGVtZW50YXRpb24gYWRkcmVzc2VzIHRoaXMgaXNzdWUgYnkgZ2VuZXJhdGluZyB0aGUgTGF1bmNoIFRlbXBsYXRlIG5hbWUgd2l0aCB0aGUgXFxgTmFtZXMudW5pcXVlSWRcXGAgbWV0aG9kLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xNDAuMCcsIHYyOiAnMi44LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQ1NfQVJOX0ZPUk1BVF9JTkNMVURFU19DTFVTVEVSX05BTUVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdBUk4gZm9ybWF0IHVzZWQgYnkgRUNTLiBJbiB0aGUgbmV3IEFSTiBmb3JtYXQsIHRoZSBjbHVzdGVyIG5hbWUgaXMgcGFydCBvZiB0aGUgcmVzb3VyY2UgSUQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIElmIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCB0aGUgb2xkIEFSTiBmb3JtYXQgKHdpdGhvdXQgY2x1c3RlciBuYW1lKSBmb3IgRUNTIGlzIHVzZWQuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0LCB0aGUgbmV3IEFSTiBmb3JtYXQgKHdpdGggY2x1c3RlciBuYW1lKSBmb3IgRUNTIGlzIHVzZWQuXG5cbiAgICAgIFRoaXMgaXMgYSBmZWF0dXJlIGZsYWcgYXMgdGhlIG9sZCBmb3JtYXQgaXMgc3RpbGwgdmFsaWQgZm9yIGV4aXN0aW5nIEVDUyBjbHVzdGVycy5cblxuICAgICAgU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2Vjcy1hY2NvdW50LXNldHRpbmdzLmh0bWwjZWNzLXJlc291cmNlLWlkc1xuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjM1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtJQU1fTUlOSU1JWkVfUE9MSUNJRVNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuVmlzaWJsZUNvbnRleHQsXG4gICAgc3VtbWFyeTogJ01pbmltaXplIElBTSBwb2xpY2llcyBieSBjb21iaW5pbmcgU3RhdGVtZW50cycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBNaW5pbWl6ZSBJQU0gcG9saWNpZXMgYnkgY29tYmluaW5nIFByaW5jaXBhbHMsIEFjdGlvbnMgYW5kIFJlc291cmNlcyBvZiB0d29cbiAgICAgIFN0YXRlbWVudHMgaW4gdGhlIHBvbGljaWVzLCBhcyBsb25nIGFzIGl0IGRvZXNuJ3QgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHRoZVxuICAgICAgcG9saWN5LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYxOiAnMS4xNTAuMCcsIHYyOiAnMi4xOC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVkFMSURBVEVfU05BUFNIT1RfUkVNT1ZBTF9QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRXJyb3Igb24gc25hcHNob3QgcmVtb3ZhbCBwb2xpY2llcyBvbiByZXNvdXJjZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBpdC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgTWFrZXMgc3VyZSB3ZSBkbyBub3QgYWxsb3cgc25hcHNob3QgcmVtb3ZhbCBwb2xpY3kgb24gcmVzb3VyY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQuXG4gICAgICBJZiBzdXBwbGllZCBvbiBhbiB1bnN1cHBvcnRlZCByZXNvdXJjZSwgQ2xvdWRGb3JtYXRpb24gaWdub3JlcyB0aGUgcG9saWN5IGFsdG9nZXRoZXIuXG4gICAgICBUaGlzIGZsYWcgd2lsbCByZWR1Y2UgY29uZnVzaW9uIGFuZCB1bmV4cGVjdGVkIGxvc3Mgb2YgZGF0YSB3aGVuIGVycm9uZW91c2x5IHN1cHBseWluZ1xuICAgICAgdGhlIHNuYXBzaG90IHJlbW92YWwgcG9saWN5LmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4yOC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnVGhlIG9sZCBiZWhhdmlvciB3YXMgaW5jb3JyZWN0LiBVcGRhdGUgeW91ciBzb3VyY2UgdG8gbm90IHNwZWNpZnkgU05BUFNIT1QgcG9saWNpZXMgb24gcmVzb3VyY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQuJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDT0RFUElQRUxJTkVfQ1JPU1NfQUNDT1VOVF9LRVlfQUxJQVNfU1RBQ0tfU0FGRV9SRVNPVVJDRV9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnR2VuZXJhdGUga2V5IGFsaWFzZXMgdGhhdCBpbmNsdWRlIHRoZSBzdGFjayBuYW1lJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBoYXZlIENvZGVQaXBlbGluZSBnZW5lcmF0ZSBhIHVuaXF1ZSBjcm9zcyBhY2NvdW50IGtleSBhbGlhcyBuYW1lIHVzaW5nIHRoZSBzdGFjayBuYW1lLlxuXG4gICAgICBQcmV2aW91c2x5LCB3aGVuIGNyZWF0aW5nIG11bHRpcGxlIHBpcGVsaW5lcyB3aXRoIHNpbWlsYXIgbmFtaW5nIGNvbnZlbnRpb25zIGFuZCB3aGVuIGNyb3NzQWNjb3VudEtleXMgaXMgdHJ1ZSxcbiAgICAgIHRoZSBLTVMga2V5IGFsaWFzIG5hbWUgY3JlYXRlZCBmb3IgdGhlc2UgcGlwZWxpbmVzIG1heSBiZSB0aGUgc2FtZSBkdWUgdG8gaG93IHRoZSB1bmlxdWVJZCBpcyBnZW5lcmF0ZWQuXG5cbiAgICAgIFRoaXMgbmV3IGltcGxlbWVudGF0aW9uIGNyZWF0ZXMgYSBzdGFjayBzYWZlIHJlc291cmNlIG5hbWUgZm9yIHRoZSBhbGlhcyB1c2luZyB0aGUgc3RhY2sgbmFtZSBpbnN0ZWFkIG9mIHRoZSBzdGFjayBJRC5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4yOS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUzNfQ1JFQVRFX0RFRkFVTFRfTE9HR0lOR19QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gY3JlYXRlIGFuIFMzIGJ1Y2tldCBwb2xpY3kgYnkgZGVmYXVsdCBpbiBjYXNlcyB3aGVyZSBhbiBBV1Mgc2VydmljZSB3b3VsZCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aGUgUG9saWN5IGlmIG9uZSBkb2VzIG5vdCBleGlzdC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRm9yIGV4YW1wbGUsIGluIG9yZGVyIHRvIHNlbmQgVlBDIGZsb3cgbG9ncyB0byBhbiBTMyBidWNrZXQsIHRoZXJlIGlzIGEgc3BlY2lmaWMgQnVja2V0IFBvbGljeVxuICAgICAgdGhhdCBuZWVkcyB0byBiZSBhdHRhY2hlZCB0byB0aGUgYnVja2V0LiBJZiB5b3UgY3JlYXRlIHRoZSBidWNrZXQgd2l0aG91dCBhIHBvbGljeSBhbmQgdGhlbiBhZGQgdGhlXG4gICAgICBidWNrZXQgYXMgdGhlIGZsb3cgbG9nIGRlc3RpbmF0aW9uLCB0aGUgc2VydmljZSB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBidWNrZXQgcG9saWN5IHdpdGggdGhlXG4gICAgICBuZWNlc3NhcnkgcGVybWlzc2lvbnMuIElmIHlvdSB3ZXJlIHRvIHRoZW4gdHJ5IGFuZCBhZGQgeW91ciBvd24gYnVja2V0IHBvbGljeSBDbG91ZEZvcm1hdGlvbiB3aWxsIHRocm93XG4gICAgICBhbmQgZXJyb3IgaW5kaWNhdGluZyB0aGF0IGEgYnVja2V0IHBvbGljeSBhbHJlYWR5IGV4aXN0cy5cblxuICAgICAgSW4gY2FzZXMgd2hlcmUgd2Uga25vdyB3aGF0IHRoZSByZXF1aXJlZCBwb2xpY3kgaXMgd2UgY2FuIGdvIGFoZWFkIGFuZCBjcmVhdGUgdGhlIHBvbGljeSBzbyB3ZSBjYW5cbiAgICAgIHJlbWFpbiBpbiBjb250cm9sIG9mIGl0LlxuXG4gICAgICBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9sb2dzL0FXUy1sb2dzLWFuZC1yZXNvdXJjZS1wb2xpY3kuaHRtbCNBV1MtbG9ncy1pbmZyYXN0cnVjdHVyZS1TM1xuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjMxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTTlNfU1VCU0NSSVBUSU9OU19TUVNfREVDUllQVElPTl9QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdSZXN0cmljdCBLTVMga2V5IHBvbGljeSBmb3IgZW5jcnlwdGVkIFF1ZXVlcyBhIGJpdCBtb3JlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byByZXN0cmljdCB0aGUgZGVjcnlwdGlvbiBvZiBhIFNRUyBxdWV1ZSwgd2hpY2ggaXMgc3Vic2NyaWJlZCB0byBhIFNOUyB0b3BpYywgdG9cbiAgICAgIG9ubHkgdGhlIHRvcGljIHdoaWNoIGl0IGlzIHN1YnNjcmliZWQgdG8gYW5kIG5vdCB0aGUgd2hvbGUgU05TIHNlcnZpY2Ugb2YgYW4gYWNjb3VudC5cblxuICAgICAgUHJldmlvdXNseSB0aGUgZGVjcnlwdGlvbiB3YXMgb25seSByZXN0cmljdGVkIHRvIHRoZSBTTlMgc2VydmljZSBwcmluY2lwYWwuIFRvIG1ha2UgdGhlIFNRUyBzdWJzY3JpcHRpb24gbW9yZVxuICAgICAgc2VjdXJlLCBpdCBpcyBhIGdvb2QgcHJhY3RpY2UgdG8gcmVzdHJpY3QgdGhlIGRlY3J5cHRpb24gZnVydGhlciBhbmQgb25seSBhbGxvdyB0aGUgY29ubmVjdGVkIFNOUyB0b3BpYyB0byBkZWNyeXB0aW9uXG4gICAgICB0aGUgc3Vic2NyaWJlZCBxdWV1ZS5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMzIuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQSUdBVEVXQVlfRElTQUJMRV9DTE9VRFdBVENIX1JPTEVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdNYWtlIGRlZmF1bHQgQ2xvdWRXYXRjaCBSb2xlIGJlaGF2aW9yIHNhZmUgZm9yIG11bHRpcGxlIEFQSSBHYXRld2F5cyBpbiBvbmUgZW52aXJvbm1lbnQnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgYXdzLWFwaWdhdGV3YXkuUmVzdEFwaSBhbmQgYXdzLWFwaWdhdGV3YXkuU3BlY1Jlc3RBcGlcbiAgICAgIHRvIF9ub3RfIGNyZWF0ZSBhIENsb3VkV2F0Y2ggcm9sZSBhbmQgQWNjb3VudC4gVGhlcmUgaXMgb25seSBhIHNpbmdsZSBBcGlHYXRld2F5IGFjY291bnQgcGVyIEFXU1xuICAgICAgZW52aXJvbm1lbnQgd2hpY2ggbWVhbnMgdGhhdCBlYWNoIHRpbWUgeW91IGNyZWF0ZSBhIFJlc3RBcGkgaW4geW91ciBhY2NvdW50IHRoZSBBcGlHYXRld2F5IGFjY291bnRcbiAgICAgIGlzIG92ZXJ3cml0dGVuLiBJZiBhdCBzb21lIHBvaW50IHRoZSBuZXdlc3QgUmVzdEFwaSBpcyBkZWxldGVkLCB0aGUgQXBpR2F0ZXdheSBBY2NvdW50IGFuZCBDbG91ZFdhdGNoXG4gICAgICByb2xlIHdpbGwgYWxzbyBiZSBkZWxldGVkLCBicmVha2luZyBhbnkgZXhpc3RpbmcgQXBpR2F0ZXdheXMgdGhhdCB3ZXJlIGRlcGVuZGluZyBvbiB0aGVtLlxuXG4gICAgICBXaGVuIHRoaXMgZmxhZyBpcyBlbmFibGVkIHlvdSBzaG91bGQgZWl0aGVyIGNyZWF0ZSB0aGUgQXBpR2F0ZXdheSBhY2NvdW50IGFuZCBDbG91ZFdhdGNoIHJvbGVcbiAgICAgIHNlcGFyYXRlbHkgX29yXyBvbmx5IGVuYWJsZSB0aGUgY2xvdWRXYXRjaFJvbGUgb24gYSBzaW5nbGUgUmVzdEFwaS5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4zOC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX1BBUlRJVElPTl9MSVRFUkFMU106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ01ha2UgQVJOcyBjb25jcmV0ZSBpZiBBV1MgcGFydGl0aW9uIGlzIGtub3duJyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvbm8tbGl0ZXJhbC1wYXJ0aXRpb25cbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBnZXQgcGFydGl0aW9uIG5hbWVzIGFzIHN0cmluZyBsaXRlcmFscyBpbiBTdGFja3Mgd2l0aCBrbm93biByZWdpb25zIGRlZmluZWQgaW5cbiAgICAgIHRoZWlyIGVudmlyb25tZW50LCBzdWNoIGFzIFwiYXdzXCIgb3IgXCJhd3MtY25cIi4gIFByZXZpb3VzbHkgdGhlIENsb3VkRm9ybWF0aW9uIGludHJpbnNpYyBmdW5jdGlvblxuICAgICAgXCJSZWY6IEFXUzo6UGFydGl0aW9uXCIgd2FzIHVzZWQuICBGb3IgZXhhbXBsZTpcblxuICAgICAgXFxgXFxgXFxgeWFtbFxuICAgICAgUHJpbmNpcGFsOlxuICAgICAgICBBV1M6XG4gICAgICAgICAgRm46OkpvaW46XG4gICAgICAgICAgICAtIFwiXCJcbiAgICAgICAgICAgIC0gLSBcImFybjpcIlxuICAgICAgICAgICAgICAtIFJlZjogQVdTOjpQYXJ0aXRpb25cbiAgICAgICAgICAgICAgLSA6aWFtOjoxMjM0NTY3ODk4NzY6cm9vdFxuICAgICAgXFxgXFxgXFxgXG5cbiAgICAgIGJlY29tZXM6XG5cbiAgICAgIFxcYFxcYFxcYHlhbWxcbiAgICAgIFByaW5jaXBhbDpcbiAgICAgICAgQVdTOiBcImFybjphd3M6aWFtOjoxMjM0NTY3ODk4NzY6cm9vdFwiXG4gICAgICBcXGBcXGBcXGBcblxuICAgICAgVGhlIGludHJpbnNpYyBmdW5jdGlvbiB3aWxsIHN0aWxsIGJlIHVzZWQgaW4gU3RhY2tzIHdoZXJlIG5vIHJlZ2lvbiBpcyBkZWZpbmVkIG9yIHRoZSByZWdpb24ncyBwYXJ0aXRpb25cbiAgICAgIGlzIHVua25vd24uXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMzguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VWRU5UU19UQVJHRVRfUVVFVUVfU0FNRV9BQ0NPVU5UXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnRXZlbnQgUnVsZXMgbWF5IG9ubHkgcHVzaCB0byBlbmNyeXB0ZWQgU1FTIHF1ZXVlcyBpbiB0aGUgc2FtZSBhY2NvdW50JyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoaXMgZmxhZyBhcHBsaWVzIHRvIFNRUyBRdWV1ZXMgdGhhdCBhcmUgdXNlZCBhcyB0aGUgdGFyZ2V0IG9mIGV2ZW50IFJ1bGVzLiBXaGVuIGVuYWJsZWQsIG9ubHkgcHJpbmNpcGFsc1xuICAgICAgZnJvbSB0aGUgc2FtZSBhY2NvdW50IGFzIHRoZSBSdWxlIGNhbiBzZW5kIG1lc3NhZ2VzLiBJZiBhIHF1ZXVlIGlzIHVuZW5jcnlwdGVkLCB0aGlzIHJlc3RyaWN0aW9uIHdpbGxcbiAgICAgIGFsd2F5cyBhcHBseSwgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBmbGFnLlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjUxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQ1NfRElTQUJMRV9FWFBMSUNJVF9ERVBMT1lNRU5UX0NPTlRST0xMRVJfRk9SX0NJUkNVSVRfQlJFQUtFUl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0F2b2lkIHNldHRpbmcgdGhlIFwiRUNTXCIgZGVwbG95bWVudCBjb250cm9sbGVyIHdoZW4gYWRkaW5nIGEgY2lyY3VpdCBicmVha2VyJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byBhdm9pZCBzZXR0aW5nIHRoZSBcIkVDU1wiIGRlcGxveW1lbnQgY29udHJvbGxlciB3aGVuIGFkZGluZyBhIGNpcmN1aXQgYnJlYWtlciB0byBhblxuICAgICAgRUNTIFNlcnZpY2UsIGFzIHRoaXMgd2lsbCB0cmlnZ2VyIGEgZnVsbCByZXBsYWNlbWVudCB3aGljaCBmYWlscyB0byBkZXBsb3kgd2hlbiB1c2luZyBzZXQgc2VydmljZSBuYW1lcy5cbiAgICAgIFRoaXMgZG9lcyBub3QgY2hhbmdlIGFueSBiZWhhdmlvdXIgYXMgdGhlIGRlZmF1bHQgZGVwbG95bWVudCBjb250cm9sbGVyIHdoZW4gaXQgaXMgbm90IGRlZmluZWQgaXMgRUNTLlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBuZXcgYmVoYXZpb3IgcHJvdmlkZXMgYSBiZXR0ZXIgZGVmYXVsdCBleHBlcmllbmNlIGZvciB0aGUgdXNlcnMuXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNTEuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0lBTV9JTVBPUlRFRF9ST0xFX1NUQUNLX1NBRkVfREVGQVVMVF9QT0xJQ1lfTkFNRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSB0aGlzIGZlYXR1cmUgdG8gYnkgZGVmYXVsdCBjcmVhdGUgZGVmYXVsdCBwb2xpY3kgbmFtZXMgZm9yIGltcG9ydGVkIHJvbGVzIHRoYXQgZGVwZW5kIG9uIHRoZSBzdGFjayB0aGUgcm9sZSBpcyBpbi4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2l0aG91dCB0aGlzLCBpbXBvcnRpbmcgdGhlIHNhbWUgcm9sZSBpbiBtdWx0aXBsZSBwbGFjZXMgY291bGQgbGVhZCB0byB0aGUgcGVybWlzc2lvbnMgZ2l2ZW4gZm9yIG9uZSB2ZXJzaW9uIG9mIHRoZSBpbXBvcnRlZCByb2xlXG4gICAgICB0byBvdmVyd3JpdGUgcGVybWlzc2lvbnMgZ2l2ZW4gdG8gdGhlIHJvbGUgYXQgYSBkaWZmZXJlbnQgcGxhY2Ugd2hlcmUgaXQgd2FzIGltcG9ydGVkLiBUaGlzIHdhcyBkdWUgdG8gYWxsIGltcG9ydGVkIGluc3RhbmNlc1xuICAgICAgb2YgYSByb2xlIHVzaW5nIHRoZSBzYW1lIGRlZmF1bHQgcG9saWN5IG5hbWUuXG5cbiAgICAgIFRoaXMgbmV3IGltcGxlbWVudGF0aW9uIGNyZWF0ZXMgZGVmYXVsdCBwb2xpY3kgbmFtZXMgYmFzZWQgb24gdGhlIGNvbnN0cnVjdHMgbm9kZSBwYXRoIGluIHRoZWlyIHN0YWNrLlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjYwLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTM19TRVJWRVJfQUNDRVNTX0xPR1NfVVNFX0JVQ0tFVF9QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdVc2UgUzMgQnVja2V0IFBvbGljeSBpbnN0ZWFkIG9mIEFDTHMgZm9yIFNlcnZlciBBY2Nlc3MgTG9nZ2luZycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmZWF0dXJlIGZsYWcgdG8gdXNlIFMzIEJ1Y2tldCBQb2xpY3kgZm9yIGdyYW50aW5nIHBlcm1pc3Npb24gZm8gU2VydmVyIEFjY2VzcyBMb2dnaW5nXG4gICAgICByYXRoZXIgdGhhbiB1c2luZyB0aGUgY2FubmVkIFxcYExvZ0RlbGl2ZXJ5V3JpdGVcXGAgQUNMLiBBQ0xzIGRvIG5vdCB3b3JrIHdoZW4gT2JqZWN0IE93bmVyc2hpcCBpc1xuICAgICAgZW5hYmxlZCBvbiB0aGUgYnVja2V0LlxuXG4gICAgICBUaGlzIGZsYWcgdXNlcyBhIEJ1Y2tldCBQb2xpY3kgc3RhdGVtZW50IHRvIGFsbG93IFNlcnZlciBBY2Nlc3MgTG9nIGRlbGl2ZXJ5LCBmb2xsb3dpbmcgYmVzdFxuICAgICAgcHJhY3RpY2VzIGZvciBTMy5cblxuICAgICAgQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9lbmFibGUtc2VydmVyLWFjY2Vzcy1sb2dnaW5nLmh0bWxcbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjAuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JPVVRFNTNfUEFUVEVSTlNfVVNFX0NFUlRJRklDQVRFXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1VzZSB0aGUgb2ZmaWNpYWwgYENlcnRpZmljYXRlYCByZXNvdXJjZSBpbnN0ZWFkIG9mIGBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZWAnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIHVzZSB0aGUgb2ZmaWNpYWwgQ2xvdWRGb3JtYXRpb24gc3VwcG9ydGVkIFxcYENlcnRpZmljYXRlXFxgIHJlc291cmNlIGluc3RlYWRcbiAgICAgIG9mIHRoZSBkZXByZWNhdGVkIFxcYERuc1ZhbGlkYXRlZENlcnRpZmljYXRlXFxgIGNvbnN0cnVjdC4gSWYgdGhpcyBmbGFnIGlzIGVuYWJsZWQgYW5kIHlvdSBhcmUgY3JlYXRpbmdcbiAgICAgIHRoZSBzdGFjayBpbiBhIHJlZ2lvbiBvdGhlciB0aGFuIHVzLWVhc3QtMSB0aGVuIHlvdSBtdXN0IGFsc28gc2V0IFxcYGNyb3NzUmVnaW9uUmVmZXJlbmNlcz10cnVlXFxgIG9uIHRoZVxuICAgICAgc3RhY2suXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjEuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0RlZmluZSBhIGBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZWAgZXhwbGljaXRseSBhbmQgcGFzcyBpbiB0aGUgYGNlcnRpZmljYXRlYCBwcm9wZXJ0eScsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbQVdTX0NVU1RPTV9SRVNPVVJDRV9MQVRFU1RfU0RLX0RFRkFVTFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hldGhlciB0byBpbnN0YWxsIHRoZSBsYXRlc3QgU0RLIGJ5IGRlZmF1bHQgaW4gQXdzQ3VzdG9tUmVzb3VyY2UnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgVGhpcyB3YXMgb3JpZ2luYWxseSBpbnRyb2R1Y2VkIGFuZCBlbmFibGVkIGJ5IGRlZmF1bHQgdG8gbm90IGJlIGxpbWl0ZWQgYnkgdGhlIFNESyB2ZXJzaW9uXG4gICAgICB0aGF0J3MgaW5zdGFsbGVkIG9uIEFXUyBMYW1iZGEuIEhvd2V2ZXIsIGl0IGNyZWF0ZXMgaXNzdWVzIGZvciBMYW1iZGFzIGJvdW5kIHRvIFZQQ3MgdGhhdFxuICAgICAgZG8gbm90IGhhdmUgaW50ZXJuZXQgYWNjZXNzLCBvciBpbiBlbnZpcm9ubWVudHMgd2hlcmUgJ25wbWpzLmNvbScgaXMgbm90IGF2YWlsYWJsZS5cblxuICAgICAgVGhlIHJlY29tbWVuZGVkIHNldHRpbmcgaXMgdG8gZGlzYWJsZSB0aGUgZGVmYXVsdCBpbnN0YWxsYXRpb24gYmVoYXZpb3IsIGFuZCBwYXNzIHRoZVxuICAgICAgZmxhZyBvbiBhIHJlc291cmNlLWJ5LXJlc291cmNlIGJhc2lzIHRvIGVuYWJsZSBpdCBpZiBuZWNlc3NhcnkuXG4gICAgYCxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdTZXQgaW5zdGFsbExhdGVzdEF3c1NkazogdHJ1ZSBvbiBhbGwgcmVzb3VyY2VzIHRoYXQgbmVlZCBpdC4nLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjAuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtEQVRBQkFTRV9QUk9YWV9VTklRVUVfUkVTT1VSQ0VfTkFNRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1VzZSB1bmlxdWUgcmVzb3VyY2UgbmFtZSBmb3IgRGF0YWJhc2UgUHJveHknLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBcXGBEYXRhYmFzZVByb3h5XFxgIGlzXG4gICAgICB0byB1c2UgXFxgaWRcXGAgb2YgdGhlIGNvbnN0cnVjdG9yIGZvciBcXGBkYlByb3h5TmFtZVxcYCB3aGVuIGl0J3Mgbm90IHNwZWNpZmllZCBpbiB0aGUgYXJndW1lbnQuXG4gICAgICBJbiB0aGlzIGNhc2UsIHVzZXJzIGNhbid0IGRlcGxveSBcXGBEYXRhYmFzZVByb3h5XFxgcyB0aGF0IGhhdmUgdGhlIHNhbWUgXFxgaWRcXGAgaW4gdGhlIHNhbWUgcmVnaW9uLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0LCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byB1c2UgdW5pcXVlIHJlc291cmNlIG5hbWVzIGZvciBlYWNoIFxcYERhdGFiYXNlUHJveHlcXGAuXG5cbiAgICAgIFRoaXMgaXMgYSBmZWF0dXJlIGZsYWcgYXMgdGhlIG9sZCBiZWhhdmlvciB3YXMgdGVjaG5pY2FsbHkgaW5jb3JyZWN0LCBidXQgdXNlcnMgbWF5IGhhdmUgY29tZSB0byBkZXBlbmQgb24gaXQuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjY1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDT0RFREVQTE9ZX1JFTU9WRV9BTEFSTVNfRlJPTV9ERVBMT1lNRU5UX0dST1VQXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnUmVtb3ZlIENsb3VkV2F0Y2ggYWxhcm1zIGZyb20gZGVwbG95bWVudCBncm91cCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmbGFnIHRvIGJlIGFibGUgdG8gcmVtb3ZlIGFsbCBDbG91ZFdhdGNoIGFsYXJtcyBmcm9tIGEgZGVwbG95bWVudCBncm91cCBieSByZW1vdmluZ1xuICAgICAgdGhlIGFsYXJtcyBmcm9tIHRoZSBjb25zdHJ1Y3QuIElmIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCByZW1vdmluZyBhbGwgYWxhcm1zIGZyb20gdGhlIGNvbnN0cnVjdFxuICAgICAgd2lsbCBzdGlsbCBsZWF2ZSB0aGUgYWxhcm1zIGNvbmZpZ3VyZWQgZm9yIHRoZSBkZXBsb3ltZW50IGdyb3VwLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi42NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbQVBJR0FURVdBWV9BVVRIT1JJWkVSX0NIQU5HRV9ERVBMT1lNRU5UX0xPR0lDQUxfSURdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdJbmNsdWRlIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbiBpbiB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIEFQSSBkZXBsb3ltZW50IGxvZ2ljYWwgSUQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBsb2dpY2FsIElEIG9mIHRoZSBBV1M6OkFwaUdhdGV3YXk6OkRlcGxveW1lbnQgcmVzb3VyY2UgaXMgY2FsY3VsYXRlZCBieSBoYXNoaW5nXG4gICAgICB0aGUgQVBJIGNvbmZpZ3VyYXRpb24sIGluY2x1ZGluZyBtZXRob2RzLCBhbmQgcmVzb3VyY2VzLCBldGMuIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZ1xuICAgICAgdG8gYWxzbyBpbmNsdWRlIHRoZSBjb25maWd1cmF0aW9uIG9mIGFueSBhdXRob3JpemVyIGF0dGFjaGVkIHRvIHRoZSBBUEkgaW4gdGhlXG4gICAgICBjYWxjdWxhdGlvbiwgc28gYW55IGNoYW5nZXMgbWFkZSB0byBhbiBhdXRob3JpemVyIHdpbGwgY3JlYXRlIGEgbmV3IGRlcGxveW1lbnQuXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VDMl9MQVVOQ0hfVEVNUExBVEVfREVGQVVMVF9VU0VSX0RBVEFdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdEZWZpbmUgdXNlciBkYXRhIGZvciBhIGxhdW5jaCB0ZW1wbGF0ZSBieSBkZWZhdWx0IHdoZW4gYSBtYWNoaW5lIGltYWdlIGlzIHByb3ZpZGVkLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGUgZWMyLkxhdW5jaFRlbXBsYXRlIGNvbnN0cnVjdCBkaWQgbm90IGRlZmluZSB1c2VyIGRhdGEgd2hlbiBhIG1hY2hpbmUgaW1hZ2UgaXNcbiAgICAgIHByb3ZpZGVkIGRlc3BpdGUgdGhlIGRvY3VtZW50LiBJZiB0aGlzIGlzIHNldCwgYSB1c2VyIGRhdGEgaXMgYXV0b21hdGljYWxseSBkZWZpbmVkXG4gICAgICBhY2NvcmRpbmcgdG8gdGhlIE9TIG9mIHRoZSBtYWNoaW5lIGltYWdlLlxuICAgICAgYCxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuNjcuMCcgfSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTRUNSRVRTX01BTkFHRVJfVEFSR0VUX0FUVEFDSE1FTlRfUkVTT1VSQ0VfUE9MSUNZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnU2VjcmV0VGFyZ2V0QXR0YWNobWVudHMgdXNlcyB0aGUgUmVzb3VyY2VQb2xpY3kgb2YgdGhlIGF0dGFjaGVkIFNlY3JldC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgRW5hYmxlIHRoaXMgZmVhdHVyZSBmbGFnIHRvIG1ha2UgU2VjcmV0VGFyZ2V0QXR0YWNobWVudHMgdXNlIHRoZSBSZXNvdXJjZVBvbGljeSBvZiB0aGUgYXR0YWNoZWQgU2VjcmV0LlxuICAgICAgU2VjcmV0VGFyZ2V0QXR0YWNobWVudHMgYXJlIGNyZWF0ZWQgdG8gY29ubmVjdCBhIFNlY3JldCB0byBhIHRhcmdldCByZXNvdXJjZS5cbiAgICAgIEluIENESyBjb2RlLCB0aGV5IGJlaGF2ZSBsaWtlIHJlZ3VsYXIgU2VjcmV0IGFuZCBjYW4gYmUgdXNlZCBhcyBhIHN0YW5kLWluIGluIG1vc3Qgc2l0dWF0aW9ucy5cbiAgICAgIFByZXZpb3VzbHksIGFkZGluZyB0byB0aGUgUmVzb3VyY2VQb2xpY3kgb2YgYSBTZWNyZXRUYXJnZXRBdHRhY2htZW50IGRpZCBhdHRlbXB0IHRvIGNyZWF0ZSBhIHNlcGFyYXRlIFJlc291cmNlUG9saWN5IGZvciB0aGUgc2FtZSBTZWNyZXQuXG4gICAgICBIb3dldmVyIFNlY3JldHMgY2FuIG9ubHkgaGF2ZSBhIHNpbmdsZSBSZXNvdXJjZVBvbGljeSwgY2F1c2luZyB0aGUgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCB0byBmYWlsLlxuXG4gICAgICBXaGVuIGVuYWJsaW5nIHRoaXMgZmVhdHVyZSBmbGFnIGZvciBhbiBleGlzdGluZyBTdGFjaywgUmVzb3VyY2VQb2xpY2llcyBjcmVhdGVkIHZpYSBhIFNlY3JldFRhcmdldEF0dGFjaG1lbnQgd2lsbCBuZWVkIHJlcGxhY2VtZW50LlxuICAgICAgVGhpcyB3b24ndCBiZSBwb3NzaWJsZSB3aXRob3V0IGludGVydmVudGlvbiBkdWUgdG8gbGltaXRhdGlvbiBvdXRsaW5lZCBhYm92ZS5cbiAgICAgIEZpcnN0IHJlbW92ZSBhbGwgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byB0aGUgU2VjcmV0IGFuZCBkZXBsb3kgd2l0aG91dCB0aGUgUmVzb3VyY2VQb2xpY2llcy5cbiAgICAgIFRoZW4geW91IGNhbiByZS1hZGQgdGhlIHBlcm1pc3Npb25zIGFuZCBkZXBsb3kgYWdhaW4uXG4gICAgICBgLFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi42Ny4wJyB9LFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JFRFNISUZUX0NPTFVNTl9JRF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZXRoZXIgdG8gdXNlIGFuIElEIHRvIHRyYWNrIFJlZHNoaWZ0IGNvbHVtbiBjaGFuZ2VzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFJlZHNoaWZ0IGNvbHVtbnMgYXJlIGlkZW50aWZpZWQgYnkgdGhlaXIgXFxgbmFtZVxcYC4gSWYgYSBjb2x1bW4gaXMgcmVuYW1lZCwgdGhlIG9sZCBjb2x1bW5cbiAgICAgIHdpbGwgYmUgZHJvcHBlZCBhbmQgYSBuZXcgY29sdW1uIHdpbGwgYmUgY3JlYXRlZC4gVGhpcyBjYW4gY2F1c2UgZGF0YSBsb3NzLlxuXG4gICAgICBUaGlzIGZsYWcgZW5hYmxlcyB0aGUgdXNlIG9mIGFuIFxcYGlkXFxgIGF0dHJpYnV0ZSBmb3IgUmVkc2hpZnQgY29sdW1ucy4gSWYgdGhpcyBmbGFnIGlzIGVuYWJsZWQsIHRoZVxuICAgICAgaW50ZXJuYWwgQ0RLIGFyY2hpdGVjdHVyZSB3aWxsIHRyYWNrIGNoYW5nZXMgb2YgUmVkc2hpZnQgY29sdW1ucyB0aHJvdWdoIHRoZWlyIFxcYGlkXFxgLCByYXRoZXJcbiAgICAgIHRoYW4gdGhlaXIgXFxgbmFtZVxcYC4gVGhpcyB3aWxsIHByZXZlbnQgZGF0YSBsb3NzIHdoZW4gY29sdW1ucyBhcmUgcmVuYW1lZC5cblxuICAgICAgKipOT1RFKiogLSBFbmFibGluZyB0aGlzIGZsYWcgY29tZXMgYXQgYSAqKnJpc2sqKi4gV2hlbiBlbmFibGVkLCB1cGRhdGUgdGhlIFxcYGlkXFxgcyBvZiBhbGwgY29sdW1ucyxcbiAgICAgICoqaG93ZXZlcioqIGRvIG5vdCBjaGFuZ2UgdGhlIFxcYG5hbWVzXFxgcyBvZiB0aGUgY29sdW1ucy4gSWYgdGhlIFxcYG5hbWVcXGBzIG9mIHRoZSBjb2x1bW5zIGFyZSBjaGFuZ2VkIGR1cmluZ1xuICAgICAgaW5pdGlhbCBkZXBsb3ltZW50LCB0aGUgY29sdW1ucyB3aWxsIGJlIGRyb3BwZWQgYW5kIHJlY3JlYXRlZCwgY2F1c2luZyBkYXRhIGxvc3MuIEFmdGVyIHRoZSBpbml0aWFsIGRlcGxveW1lbnRcbiAgICAgIG9mIHRoZSBcXGBpZFxcYHMsIHRoZSBcXGBuYW1lXFxgcyBvZiB0aGUgY29sdW1ucyBjYW4gYmUgY2hhbmdlZCB3aXRob3V0IGRhdGEgbG9zcy5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi42OC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX0VNUl9TRVJWSUNFX1BPTElDWV9WMl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSBBbWF6b25FTVJTZXJ2aWNlUG9saWN5X3YyIG1hbmFnZWQgcG9saWNpZXMnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBmbGFnIGlzIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBcXGBFbXJDcmVhdGVDbHVzdGVyXFxgIGlzXG4gICAgICB0byB1c2UgXFxgQW1hem9uRWxhc3RpY01hcFJlZHVjZVJvbGVcXGAgbWFuYWdlZCBwb2xpY2llcy5cblxuICAgICAgSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gdXNlIHRoZSBuZXcgXFxgQW1hem9uRU1SU2VydmljZVBvbGljeV92MlxcYFxuICAgICAgbWFuYWdlZCBwb2xpY2llcy5cblxuICAgICAgVGhpcyBpcyBhIGZlYXR1cmUgZmxhZyBhcyB0aGUgb2xkIGJlaGF2aW9yIHdpbGwgYmUgZGVwcmVjYXRlZCwgYnV0IHNvbWUgcmVzb3VyY2VzIG1heSByZXF1aXJlIG1hbnVhbFxuICAgICAgaW50ZXJ2ZW50aW9uIHNpbmNlIHRoZXkgbWlnaHQgbm90IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHRhZ3MgcHJvcGFnYXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjcyLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFQzJfUkVTVFJJQ1RfREVGQVVMVF9TRUNVUklUWV9HUk9VUF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdSZXN0cmljdCBhY2Nlc3MgdG8gdGhlIFZQQyBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEVuYWJsZSB0aGlzIGZlYXR1cmUgZmxhZyB0byByZW1vdmUgdGhlIGRlZmF1bHQgaW5ncmVzcy9lZ3Jlc3MgcnVsZXMgZnJvbSB0aGVcbiAgICAgIFZQQyBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwLlxuXG4gICAgICBXaGVuIGEgVlBDIGlzIGNyZWF0ZWQsIGEgZGVmYXVsdCBzZWN1cml0eSBncm91cCBpcyBjcmVhdGVkIGFzIHdlbGwgYW5kIHRoaXMgY2Fubm90XG4gICAgICBiZSBkZWxldGVkLiBUaGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBpcyBjcmVhdGVkIHdpdGggaW5ncmVzcy9lZ3Jlc3MgcnVsZXMgdGhhdCBhbGxvd1xuICAgICAgX2FsbF8gdHJhZmZpYy4gW0FXUyBTZWN1cml0eSBiZXN0IHByYWN0aWNlcyByZWNvbW1lbmRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2VjMi1jb250cm9scy5odG1sI2VjMi0yKVxuICAgICAgcmVtb3ZpbmcgdGhlc2UgaW5ncmVzcy9lZ3Jlc3MgcnVsZXMgaW4gb3JkZXIgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi43OC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiBgXG4gICAgICBUbyBhbGxvdyBhbGwgaW5ncmVzcy9lZ3Jlc3MgdHJhZmZpYyB0byB0aGUgVlBDIGRlZmF1bHQgc2VjdXJpdHkgZ3JvdXAgeW91XG4gICAgICBjYW4gc2V0IHRoZSBcXGByZXN0cmljdERlZmF1bHRTZWN1cml0eUdyb3VwOiBmYWxzZVxcYC5cbiAgICBgLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQSUdBVEVXQVlfUkVRVUVTVF9WQUxJREFUT1JfVU5JUVVFX0lEXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnR2VuZXJhdGUgYSB1bmlxdWUgaWQgZm9yIGVhY2ggUmVxdWVzdFZhbGlkYXRvciBhZGRlZCB0byBhIG1ldGhvZCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGlzIGZsYWcgYWxsb3dzIG11bHRpcGxlIFJlcXVlc3RWYWxpZGF0b3JzIHRvIGJlIGFkZGVkIHRvIGEgUmVzdEFwaSB3aGVuXG4gICAgICBwcm92aWRpbmcgdGhlIFxcYFJlcXVlc3RWYWxpZGF0b3JPcHRpb25zXFxgIGluIHRoZSBcXGBhZGRNZXRob2QoKVxcYCBtZXRob2QuXG5cbiAgICAgIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQgdGhlbiBvbmx5IGEgc2luZ2xlIFJlcXVlc3RWYWxpZGF0b3IgY2FuIGJlIGFkZGVkIGluIHRoaXMgd2F5LlxuICAgICAgQW55IGFkZGl0aW9uYWwgUmVxdWVzdFZhbGlkYXRvcnMgaGF2ZSB0byBiZSBjcmVhdGVkIGRpcmVjdGx5IHdpdGggXFxgbmV3IFJlcXVlc3RWYWxpZGF0b3JcXGAuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjc4LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtLTVNfQUxJQVNfTkFNRV9SRUZdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdLTVMgQWxpYXMgbmFtZSBhbmQga2V5QXJuIHdpbGwgaGF2ZSBpbXBsaWNpdCByZWZlcmVuY2UgdG8gS01TIEtleScsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBUaGlzIGZsYWcgYWxsb3dzIGFuIGltcGxpY2l0IGRlcGVuZGVuY3kgdG8gYmUgY3JlYXRlZCBiZXR3ZWVuIEtNUyBBbGlhcyBhbmQgS01TIEtleVxuICAgICAgd2hlbiByZWZlcmVuY2luZyBrZXkuYWxpYXNOYW1lIG9yIGtleS5rZXlBcm4uXG5cbiAgICAgIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQgdGhlbiBhIHJhdyBzdHJpbmcgaXMgcGFzc2VkIGFzIHRoZSBBbGlhcyBuYW1lIGFuZCBub1xuICAgICAgaW1wbGljaXQgZGVwZW5kZW5jaWVzIHdpbGwgYmUgc2V0LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi44My4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbS01TX0FQUExZX0lNUE9SVEVEX0FMSUFTX1BFUk1JU1NJT05TX1RPX1BSSU5DSVBBTF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0VuYWJsZSBncmFudCBtZXRob2RzIG9uIEFsaWFzZXMgaW1wb3J0ZWQgYnkgbmFtZSB0byB1c2Uga21zOlJlc291cmNlQWxpYXNlcyBjb25kaXRpb24nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgVGhpcyBmbGFnIGVuYWJsZXMgdGhlIGdyYW50IG1ldGhvZHMgKGdyYW50LCBncmFudERlY3J5cHQsIGdyYW50RW5jcnlwdCwgZXRjLikgb24gQWxpYXNlcyBpbXBvcnRlZFxuICAgICAgYnkgbmFtZSB0byBncmFudCBwZXJtaXNzaW9ucyBiYXNlZCBvbiB0aGUgJ2ttczpSZXNvdXJjZUFsaWFzZXMnIGNvbmRpdGlvbiByYXRoZXIgdGhhbiBuby1vcCBncmFudHMuXG4gICAgICBXaGVuIGRpc2FibGVkLCBncmFudCBjYWxscyBvbiBpbXBvcnRlZCBhbGlhc2VzIHdpbGwgYmUgZHJvcHBlZCAobm8tb3ApIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjIwMi4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnUmVtb3ZlIGNhbGxzIHRvIHRoZSBncmFudCogbWV0aG9kcyBvbiB0aGUgYWxpYXNlcyByZWZlcmVuY2VkIGJ5IG5hbWUnLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FVVE9TQ0FMSU5HX0dFTkVSQVRFX0xBVU5DSF9URU1QTEFURV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ0dlbmVyYXRlIGEgbGF1bmNoIHRlbXBsYXRlIHdoZW4gY3JlYXRpbmcgYW4gQXV0b1NjYWxpbmdHcm91cCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBFbmFibGUgdGhpcyBmbGFnIHRvIGFsbG93IEF1dG9TY2FsaW5nR3JvdXBzIHRvIGdlbmVyYXRlIGEgbGF1bmNoIHRlbXBsYXRlIHdoZW4gYmVpbmcgY3JlYXRlZC5cbiAgICAgIExhdW5jaCBjb25maWd1cmF0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgY2Fubm90IGJlIGNyZWF0ZWQgaW4gQVdTIEFjY291bnRzIGNyZWF0ZWQgYWZ0ZXJcbiAgICAgIERlY2VtYmVyIDMxLCAyMDIzLiBFeGlzdGluZyAnQXV0b1NjYWxpbmdHcm91cCcgcHJvcGVydGllcyB1c2VkIGZvciBjcmVhdGluZyBhIGxhdW5jaCBjb25maWd1cmF0aW9uXG4gICAgICB3aWxsIG5vdyBjcmVhdGUgYW4gZXF1aXZhbGVudCAnbGF1bmNoVGVtcGxhdGUnLiBBbHRlcm5hdGl2ZWx5LCB1c2VycyBjYW4gcHJvdmlkZSBhbiBleHBsaWNpdFxuICAgICAgJ2xhdW5jaFRlbXBsYXRlJyBvciAnbWl4ZWRJbnN0YW5jZXNQb2xpY3knLiBXaGVuIHRoaXMgZmxhZyBpcyBlbmFibGVkIGEgJ2xhdW5jaFRlbXBsYXRlJyB3aWxsXG4gICAgICBhdHRlbXB0IHRvIHNldCB1c2VyIGRhdGEgYWNjb3JkaW5nIHRvIHRoZSBPUyBvZiB0aGUgbWFjaGluZSBpbWFnZSBpZiBleHBsaWNpdCB1c2VyIGRhdGEgaXMgbm90XG4gICAgICBwcm92aWRlZC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuODguMCcgfSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6IGBcbiAgICAgIElmIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIG1haW50YWluZWQgZHVlIHRvIGFuIGV4aXN0aW5nIGF1dG9zY2FsaW5nIGdyb3VwXG4gICAgICB1c2luZyBhIGxhdW5jaCBjb25maWcsIHNldCB0aGlzIGZsYWcgdG8gZmFsc2UuXG4gICAgYCxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0lOQ0xVREVfUFJFRklYX0lOX1VOSVFVRV9OQU1FX0dFTkVSQVRJT05dOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdJbmNsdWRlIHRoZSBzdGFjayBwcmVmaXggaW4gdGhlIHN0YWNrIG5hbWUgZ2VuZXJhdGlvbiBwcm9jZXNzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoaXMgZmxhZyBwcmV2ZW50cyB0aGUgcHJlZml4IG9mIGEgc3RhY2sgZnJvbSBtYWtpbmcgdGhlIHN0YWNrJ3MgbmFtZSBsb25nZXIgdGhhbiB0aGUgMTI4IGNoYXJhY3RlciBsaW1pdC5cblxuICAgICAgSWYgdGhlIGZsYWcgaXMgc2V0LCB0aGUgcHJlZml4IGlzIGluY2x1ZGVkIGluIHRoZSBzdGFjayBuYW1lIGdlbmVyYXRpb24gcHJvY2Vzcy5cbiAgICAgIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQsIHRoZW4gdGhlIHByZWZpeCBvZiB0aGUgc3RhY2sgaXMgcHJlcGVuZGVkIHRvIHRoZSBnZW5lcmF0ZWQgc3RhY2sgbmFtZS5cblxuICAgICAgKipOT1RFKiogLSBFbmFibGluZyB0aGlzIGZsYWcgY29tZXMgYXQgYSAqKnJpc2sqKi4gSWYgeW91IGhhdmUgYWxyZWFkeSBkZXBsb3llZCBzdGFja3MsIGNoYW5naW5nIHRoZSBzdGF0dXMgb2YgdGhpc1xuICAgICAgZmVhdHVyZSBmbGFnIGNhbiBsZWFkIHRvIGEgY2hhbmdlIGluIHN0YWNrcycgbmFtZS4gQ2hhbmdpbmcgYSBzdGFjayBuYW1lIG1lYW4gcmVjcmVhdGluZyB0aGUgd2hvbGUgc3RhY2ssIHdoaWNoXG4gICAgICBpcyBub3QgdmlhYmxlIGluIHNvbWUgcHJvZHVjdGl2ZSBzZXR1cHMuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjg0LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtFRlNfREVOWV9BTk9OWU1PVVNfQUNDRVNTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ0VGUyBkZW5pZXMgYW5vbnltb3VzIGNsaWVudHMgYWNjZXNzZXMnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgVGhpcyBmbGFnIGFkZHMgdGhlIGZpbGUgc3lzdGVtIHBvbGljeSB0aGF0IGRlbmllcyBhbm9ueW1vdXMgY2xpZW50c1xuICAgICAgYWNjZXNzIHRvIFxcYGVmcy5GaWxlU3lzdGVtXFxgLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgXFxgZWZzLkZpbGVTeXN0ZW1cXGAgd2lsbCBhbGxvdyBhbGwgYW5vbnltb3VzIGNsaWVudHNcbiAgICAgIHRoYXQgY2FuIGFjY2VzcyBvdmVyIHRoZSBuZXR3b3JrLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi45My4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnWW91IGNhbiBwYXNzIGBhbGxvd0Fub255bW91c0FjY2VzczogdHJ1ZWAgc28gYWxsb3cgYW5vbnltb3VzIGNsaWVudHMgYWNjZXNzLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX09QRU5TRUFSQ0hfTVVMVElBWl9XSVRIX1NUQU5EQlldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBzdXBwb3J0IGZvciBNdWx0aS1BWiB3aXRoIFN0YW5kYnkgZGVwbG95bWVudCBmb3Igb3BlbnNlYXJjaCBkb21haW5zJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIElmIHRoaXMgaXMgc2V0LCBhbiBvcGVuc2VhcmNoIGRvbWFpbiB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY3JlYXRlZCB3aXRoXG4gICAgICBtdWx0aS1heiB3aXRoIHN0YW5kYnkgZW5hYmxlZC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuODguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgYGNhcGFjaXR5Lm11bHRpQXpXaXRoU3RhbmRieUVuYWJsZWQ6IGZhbHNlYCB0byBgRG9tYWluYCBjb25zdHJ1Y3QgdG8gcmVzdG9yZSB0aGUgb2xkIGJlaGF2aW9yLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTEFNQkRBX05PREVKU19VU0VfTEFURVNUX1JVTlRJTUVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBhd3MtbGFtYmRhLW5vZGVqcy5GdW5jdGlvbiB0byB1c2UgdGhlIGxhdGVzdCBhdmFpbGFibGUgTm9kZUpzIHJ1bnRpbWUgYXMgdGhlIGRlZmF1bHQnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgSWYgdGhpcyBpcyBzZXQsIGFuZCBhIFxcYHJ1bnRpbWVcXGAgcHJvcCBpcyBub3QgcGFzc2VkIHRvLCBMYW1iZGEgTm9kZUpzXG4gICAgICBmdW5jdGlvbnMgd2lsbCB1cyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUgcHJvdmlkZWQgYnkgdGhlIExhbWJkYVxuICAgICAgc2VydmljZS4gRG8gbm90IHVzZSB0aGlzIGlmIHlvdSB5b3VyIGxhbWJkYSBmdW5jdGlvbiBpcyByZWxpYW50IG9uIGRlcGVuZGVuY2llc1xuICAgICAgc2hpcHBlZCBhcyBwYXJ0IG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi45My4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnUGFzcyBgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1hgIHRvIGBGdW5jdGlvbmAgY29uc3RydWN0IHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzIGJlaGF2aW9yLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUZTX01PVU5UVEFSR0VUX09SREVSSU5TRU5TSVRJVkVfTE9HSUNBTF9JRF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgbW91bnQgdGFyZ2V0cyB3aWxsIGhhdmUgYSBzdGFibGUgbG9naWNhbElkIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBhc3NvY2lhdGVkIHN1Ym5ldC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBlYWNoIG1vdW50IHRhcmdldCB3aWxsIGhhdmUgYSBzdGFibGVcbiAgICAgIGxvZ2ljYWxJZCB0aGF0IGlzIGxpbmtlZCB0byB0aGUgYXNzb2NpYXRlZCBzdWJuZXQuIElmIHRoZSBmbGFnIGlzIHNldCB0b1xuICAgICAgZmFsc2UgdGhlbiB0aGUgbG9naWNhbElkcyBvZiB0aGUgbW91bnQgdGFyZ2V0cyBjYW4gY2hhbmdlIGlmIHRoZSBudW1iZXIgb2ZcbiAgICAgIHN1Ym5ldHMgY2hhbmdlcy5cblxuICAgICAgU2V0IHRoaXMgZmxhZyB0byBmYWxzZSBmb3IgZXhpc3RpbmcgbW91bnQgdGFyZ2V0cy5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTMuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FVUk9SQV9DTFVTVEVSX0NIQU5HRV9TQ09QRV9PRl9JTlNUQU5DRV9QQVJBTUVURVJfR1JPVVBfV0lUSF9FQUNIX1BBUkFNRVRFUlNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGEgc2NvcGUgb2YgSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCBmb3IgQXVyb3JhQ2x1c3Rlckluc3RhbmNlIHdpdGggZWFjaCBwYXJhbWV0ZXJzIHdpbGwgY2hhbmdlLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGEgc2NvcGUgb2YgXFxgSW5zdGFuY2VQYXJhbWV0ZXJHcm91cFxcYCBmb3JcbiAgICAgIFxcYEF1cm9yYUNsdXN0ZXJJbnN0YW5jZVxcYCB3aXRoIGVhY2ggcGFyYW1ldGVycyB3aWxsIGNoYW5nZSB0byBBdXJvcmFDbHVzdGVySW5zdGFuY2VcbiAgICAgIGZyb20gQXVyb3JhQ2x1c3Rlci5cblxuICAgICAgSWYgdGhlIGZsYWcgaXMgc2V0IHRvIGZhbHNlIHRoZW4gaXQgY2FuIG9ubHkgbWFrZSBvbmUgXFxgQXVyb3JhQ2x1c3Rlckluc3RhbmNlXFxgXG4gICAgICB3aXRoIGVhY2ggXFxgSW5zdGFuY2VQYXJhbWV0ZXJHcm91cFxcYCBpbiB0aGUgQXVyb3JhQ2x1c3Rlci5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTcuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FQUFNZTkNfRU5BQkxFX1VTRV9BUk5fSURFTlRJRklFUl9TT1VSQ0VfQVBJX0FTU09DSUFUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB3aWxsIGFsd2F5cyB1c2UgdGhlIGFybiBmb3IgaWRlbnRpZmllcnMgZm9yIENmblNvdXJjZUFwaUFzc29jaWF0aW9uIGluIHRoZSBHcmFwaHFsQXBpIGNvbnN0cnVjdCByYXRoZXIgdGhhbiBpZC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB3ZSB1c2UgdGhlIElHcmFwaHFsQXBpIEFSTiByYXRoZXIgdGhhbiBJRCB3aGVuIGNyZWF0aW5nIG9yIHVwZGF0aW5nIENmblNvdXJjZUFwaUFzc29jaWF0aW9uIGluXG4gICAgICB0aGUgR3JhcGhxbEFwaSBjb25zdHJ1Y3QuIFVzaW5nIHRoZSBBUk4gYWxsb3dzIHRoZSBhc3NvY2lhdGlvbiB0byBzdXBwb3J0IGFuIGFzc29jaWF0aW9uIHdpdGggYSBzb3VyY2UgYXBpIG9yIG1lcmdlZCBhcGkgaW4gYW5vdGhlciBhY2NvdW50LlxuICAgICAgTm90ZSB0aGF0IGZvciBleGlzdGluZyBzb3VyY2UgYXBpIGFzc29jaWF0aW9ucyBjcmVhdGVkIHdpdGggdGhpcyBmbGFnIGRpc2FibGVkLCBlbmFibGluZyB0aGUgZmxhZyB3aWxsIGxlYWQgdG8gYSByZXNvdXJjZSByZXBsYWNlbWVudC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTcuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JEU19QUkVWRU5UX1JFTkRFUklOR19ERVBSRUNBVEVEX0NSRURFTlRJQUxTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBjcmVhdGluZyBhbiBSRFMgZGF0YWJhc2UgY2x1c3RlciBmcm9tIGEgc25hcHNob3Qgd2lsbCBvbmx5IHJlbmRlciBjcmVkZW50aWFscyBmb3Igc25hcHNob3QgY3JlZGVudGlhbHMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoZSBcXGBjcmVkZW50aWFsc1xcYCBwcm9wZXJ0eSBvbiB0aGUgXFxgRGF0YWJhc2VDbHVzdGVyRnJvbVNuYXBzaG90UHJvcHNcXGBcbiAgICAgIGludGVyZmFjZSB3YXMgZGVwcmVjYXRlZCB3aXRoIHRoZSBuZXcgXFxgc25hcHNob3RDcmVkZW50aWFsc1xcYCBwcm9wZXJ0eSBiZWluZ1xuICAgICAgcmVjb21tZW5kZWQuIEJlZm9yZSBkZXByZWNhdGluZyBcXGBjcmVkZW50aWFsc1xcYCwgYSBzZWNyZXQgd291bGQgYmUgZ2VuZXJhdGVkXG4gICAgICB3aGlsZSByZW5kZXJpbmcgY3JlZGVudGlhbHMgaWYgdGhlIFxcYGNyZWRlbnRpYWxzXFxgIHByb3BlcnR5IHdhcyB1bmRlZmluZWQgb3JcbiAgICAgIGlmIGEgc2VjcmV0IHdhc24ndCBwcm92aWRlZCB2aWEgdGhlIFxcYGNyZWRlbnRpYWxzXFxgIHByb3BlcnR5LiBUaGlzIGJlaGF2aW9yXG4gICAgICBpcyByZXBsaWNhdGVkIHdpdGggdGhlIG5ldyBcXGBzbmFwc2hvdENyZWRlbnRpYWxzXFxgIHByb3BlcnR5LCBidXQgdGhlIG9yaWdpbmFsXG4gICAgICBcXGBjcmVkZW50aWFsc1xcYCBzZWNyZXQgY2FuIHN0aWxsIGJlIGNyZWF0ZWQgcmVzdWx0aW5nIGluIGFuIGV4dHJhIGRhdGFiYXNlXG4gICAgICBzZWNyZXQuXG5cbiAgICAgIFNldCB0aGlzIGZsYWcgdG8gcHJldmVudCByZW5kZXJpbmcgZGVwcmVjYXRlZCBcXGBjcmVkZW50aWFsc1xcYCBhbmQgY3JlYXRpbmcgYW5cbiAgICAgIGV4dHJhIGRhdGFiYXNlIHNlY3JldCB3aGVuIG9ubHkgdXNpbmcgXFxgc25hcHNob3RDcmVkZW50aWFsc1xcYCB0byBjcmVhdGUgYW4gUkRTXG4gICAgICBkYXRhYmFzZSBjbHVzdGVyIGZyb20gYSBzbmFwc2hvdC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuOTguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NPREVDT01NSVRfU09VUkNFX0FDVElPTl9ERUZBVUxUX0JSQU5DSF9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgQ29kZUNvbW1pdCBzb3VyY2UgYWN0aW9uIGlzIHVzaW5nIHRoZSBkZWZhdWx0IGJyYW5jaCBuYW1lIFxcJ21haW5cXCcuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gc2V0dGluZyB1cCBhIENvZGVDb21taXQgc291cmNlIGFjdGlvbiBmb3IgdGhlIHNvdXJjZSBzdGFnZSBvZiBhIHBpcGVsaW5lLCBwbGVhc2Ugbm90ZSB0aGF0IHRoZVxuICAgICAgZGVmYXVsdCBicmFuY2ggaXMgXFwnbWFzdGVyXFwnLlxuICAgICAgSG93ZXZlciwgd2l0aCB0aGUgYWN0aXZhdGlvbiBvZiB0aGlzIGZlYXR1cmUgZmxhZywgdGhlIGRlZmF1bHQgYnJhbmNoIGlzIHVwZGF0ZWQgdG8gXFwnbWFpblxcJy5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTAzLjEnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtMQU1CREFfUEVSTUlTU0lPTl9MT0dJQ0FMX0lEX0ZPUl9MQU1CREFfQUNUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgbG9naWNhbCBJRCBvZiBhIExhbWJkYSBwZXJtaXNzaW9uIGZvciBhIExhbWJkYSBhY3Rpb24gaW5jbHVkZXMgYW4gYWxhcm0gSUQuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYSBsb2dpY2FsIElEIG9mIFxcYExhbWJkYVBlcm1pc3Npb25cXGAgZm9yIGFcbiAgICAgIFxcYExhbWJkYUFjdGlvblxcYCB3aWxsIGluY2x1ZGUgYW4gYWxhcm0gSUQuIFRoZXJlZm9yZSBtdWx0aXBsZSBhbGFybXMgZm9yIHRoZSBzYW1lIExhbWJkYVxuICAgICAgY2FuIGJlIGNyZWF0ZWQgd2l0aCBcXGBMYW1iZGFBY3Rpb25cXGAuXG5cbiAgICAgIElmIHRoZSBmbGFnIGlzIHNldCB0byBmYWxzZSB0aGVuIGl0IGNhbiBvbmx5IG1ha2Ugb25lIGFsYXJtIGZvciB0aGUgTGFtYmRhIHdpdGhcbiAgICAgIFxcYExhbWJkYUFjdGlvblxcYC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTI0LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtDT0RFUElQRUxJTkVfQ1JPU1NfQUNDT1VOVF9LRVlTX0RFRkFVTFRfVkFMVUVfVE9fRkFMU0VdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBQaXBlbGluZSB0byBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGNyb3NzQWNjb3VudEtleXMgdG8gZmFsc2UuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYW5kIHRoZSBcXGBjcm9zc0FjY291bnRLZXlzXFxgIHByb3BlcnR5IGlzIG5vdCBwcm92aWRlZCBpbiBhIFxcYFBpcGVsaW5lXFxgXG4gICAgICBjb25zdHJ1Y3QsIHRoZSBjb25zdHJ1Y3QgYXV0b21hdGljYWxseSBkZWZhdWx0cyB0aGUgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSB0byBmYWxzZS5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTI3LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdQYXNzIGBjcm9zc0FjY291bnRLZXlzOiB0cnVlYCB0byBgUGlwZWxpbmVgIGNvbnN0cnVjdCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NPREVQSVBFTElORV9ERUZBVUxUX1BJUEVMSU5FX1RZUEVfVE9fVjJdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnRW5hYmxlcyBQaXBlbGluZSB0byBzZXQgdGhlIGRlZmF1bHQgcGlwZWxpbmUgdHlwZSB0byBWMi4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBhbmQgdGhlIFxcYHBpcGVsaW5lVHlwZVxcYCBwcm9wZXJ0eSBpcyBub3QgcHJvdmlkZWQgaW4gYSBcXGBQaXBlbGluZVxcYFxuICAgICAgY29uc3RydWN0LCB0aGUgY29uc3RydWN0IGF1dG9tYXRpY2FsbHkgZGVmYXVsdHMgdGhlIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgdG8gXFxgUGlwZWxpbmVUeXBlLlYyXFxgLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xMzMuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgYHBpcGVsaW5lVHlwZTogUGlwZWxpbmVUeXBlLlYxYCB0byBgUGlwZWxpbmVgIGNvbnN0cnVjdCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0tNU19SRURVQ0VfQ1JPU1NfQUNDT1VOVF9SRUdJT05fUE9MSUNZX1NDT1BFXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBJQU0gUG9saWN5IGNyZWF0ZWQgZnJvbSBLTVMga2V5IGdyYW50IHdpbGwgcmVkdWNlIHRoZSByZXNvdXJjZSBzY29wZSB0byB0aGlzIGtleSBvbmx5LicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQgYW5kIGNhbGxpbmcgS01TIGtleSBncmFudCBtZXRob2QsIHRoZSBjcmVhdGVkIElBTSBwb2xpY3kgd2lsbCByZWR1Y2UgdGhlIHJlc291cmNlIHNjb3BlIGZyb21cbiAgICAgICcqJyB0byB0aGlzIHNwZWNpZmljIGdyYW50aW5nIEtNUyBrZXkuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjEzNC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUElQRUxJTkVfUkVEVUNFX0FTU0VUX1JPTEVfVFJVU1RfU0NPUEVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnUmVtb3ZlIHRoZSByb290IGFjY291bnQgcHJpbmNpcGFsIGZyb20gUGlwZWxpbmVBc3NldHNGaWxlUm9sZSB0cnVzdCBwb2xpY3knLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgcm9vdCBhY2NvdW50IHByaW5jaXBhbCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgdHJ1c3QgcG9saWN5IG9mIGFzc2V0IHJvbGUuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCBpdCB3aWxsIGtlZXAgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgaW4gdGhlIHRydXN0IHBvbGljeS5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTQxLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBhZGQgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgYmFjaycsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUtTX05PREVHUk9VUF9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBub2RlZ3JvdXBOYW1lIGF0dHJpYnV0ZSBvZiB0aGUgcHJvdmlzaW9uZWQgRUtTIE5vZGVHcm91cCB3aWxsIG5vdCBoYXZlIHRoZSBjbHVzdGVyIG5hbWUgcHJlZml4LicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHRoZSBub2RlZ3JvdXBOYW1lIGF0dHJpYnV0ZSB3aWxsIGJlIGV4YWN0bHkgdGhlIG5hbWUgb2YgdGhlIG5vZGVncm91cCB3aXRob3V0XG4gICAgICBhbnkgcHJlZml4LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xMzkuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0VCU19ERUZBVUxUX0dQM106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBkZWZhdWx0IHZvbHVtZSB0eXBlIG9mIHRoZSBFQlMgdm9sdW1lIHdpbGwgYmUgR1AzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dWVyIGZsYWcgaXMgZW5hYmxlZCwgdGhlIGRlZmF1bHQgdm9sdW1lIHR5cGUgb2YgdGhlIEVCUyB2b2x1bWUgd2lsbCBiZSBcXGBFYnNEZXZpY2VWb2x1bWVUeXBlLkdFTkVSQUxfUFVSUE9TRV9TU0RfR1AzXFxgLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNDAuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1Bhc3MgYHZvbHVtZVR5cGU6IEVic0RldmljZVZvbHVtZVR5cGUuR0VORVJBTF9QVVJQT1NFX1NTRGAgdG8gYFZvbHVtZWAgY29uc3RydWN0IHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzIGJlaGF2aW9yLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUNTX1JFTU9WRV9ERUZBVUxUX0RFUExPWU1FTlRfQUxBUk1dOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCByZW1vdmUgZGVmYXVsdCBkZXBsb3ltZW50IGFsYXJtIHNldHRpbmdzJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dWVyIGZsYWcgaXMgZW5hYmxlZCwgcmVtb3ZlIHRoZSBkZWZhdWx0IGRlcGxveW1lbnQgYWxhcm0gc2V0dGluZ3Mgd2hlbiBjcmVhdGluZyBhIEFXUyBFQ1Mgc2VydmljZS5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTQzLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdTZXQgQVdTOjpFQ1M6OlNlcnZpY2UgXFwnRGVwbG95bWVudEFsYXJtc1xcJyBtYW51YWxseSB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBiZWhhdmlvci4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0xPR19BUElfUkVTUE9OU0VfREFUQV9QUk9QRVJUWV9UUlVFX0RFRkFVTFRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBjdXN0b20gcmVzb3VyY2UgdXNlZCBmb3IgYEF3c0N1c3RvbVJlc291cmNlYCB3aWxsIGNvbmZpZ3VyZSB0aGUgYGxvZ0FwaVJlc3BvbnNlRGF0YWAgcHJvcGVydHkgYXMgdHJ1ZSBieSBkZWZhdWx0JyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFRoaXMgcmVzdWx0cyBpbiAnbG9nQXBpUmVzcG9uc2VEYXRhJyBiZWluZyBwYXNzZWQgYXMgdHJ1ZSB0byB0aGUgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVyLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGN1c3RvbSByZXNvdXJjZSBoYW5kbGVyIHRvIHJlY2VpdmUgYW4gJ1VwZGF0ZScgZXZlbnQuIElmIHlvdSBkb24ndFxuICAgICAgaGF2ZSBhbiBTREsgY2FsbCBjb25maWd1cmVkIGZvciB0aGUgJ1VwZGF0ZScgZXZlbnQgYW5kIHlvdSdyZSBkZXBlbmRlbnQgb24gc3BlY2lmaWMgU0RLIGNhbGwgcmVzcG9uc2UgZGF0YSwgeW91IHdpbGwgc2VlIHRoaXMgZXJyb3IgZnJvbSBDRk46XG5cbiAgICAgIEN1c3RvbVJlc291cmNlIGF0dHJpYnV0ZSBlcnJvcjogVmVuZG9yIHJlc3BvbnNlIGRvZXNuJ3QgY29udGFpbiA8YXR0cmlidXRlLW5hbWU+IGF0dHJpYnV0ZSBpbiBvYmplY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzI5OTQ5KSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gICAgICBVbmxpa2UgbW9zdCBmZWF0dXJlIGZsYWdzLCB3ZSBkb24ndCByZWNvbW1lbmQgc2V0dGluZyB0aGlzIGZlYXR1cmUgZmxhZyB0byB0cnVlLiBIb3dldmVyLCBpZiB5b3UncmUgdXNpbmcgdGhlICdBd3NDdXN0b21SZXNvdXJjZScgY29uc3RydWN0IHdpdGggJ2xvZ0FwaVJlc3BvbnNlRGF0YScgYXMgdHJ1ZSBpblxuICAgICAgdGhlIGV2ZW50IG9iamVjdCwgdGhlbiBzZXR0aW5nIHRoaXMgZmVhdHVyZSBmbGFnIHdpbGwga2VlcCB0aGlzIGJlaGF2aW9yLiBPdGhlcndpc2UsIHNldHRpbmcgdGhpcyBmZWF0dXJlIGZsYWcgdG8gZmFsc2Ugd2lsbCB0cmlnZ2VyIGFuICdVcGRhdGUnIGV2ZW50IGJ5IHJlbW92aW5nIHRoZSAnbG9nQXBpUmVzcG9uc2VEYXRhJ1xuICAgICAgcHJvcGVydHkgZnJvbSB0aGUgZXZlbnQgb2JqZWN0LlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNDUuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTM19LRUVQX05PVElGSUNBVElPTl9JTl9JTVBPUlRFRF9CVUNLRVRdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIEFkZGluZyBub3RpZmljYXRpb25zIHRvIGEgYnVja2V0IGluIHRoZSBjdXJyZW50IHN0YWNrIHdpbGwgbm90IHJlbW92ZSBub3RpZmljYXRpb24gZnJvbSBpbXBvcnRlZCBzdGFjay4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ3VycmVudGx5LCBhZGRpbmcgbm90aWZpY2F0aW9ucyB0byBhIGJ1Y2tldCB3aGVyZSBpdCB3YXMgY3JlYXRlZCBieSBvdXJzZWx2ZXMgd2lsbCBvdmVycmlkZSBub3RpZmljYXRpb24gYWRkZWQgd2hlcmUgaXQgaXMgaW1wb3J0ZWQuXG5cbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYWRkaW5nIG5vdGlmaWNhdGlvbnMgdG8gYSBidWNrZXQgaW4gdGhlIGN1cnJlbnQgc3RhY2sgd2lsbCBvbmx5IHVwZGF0ZSBub3RpZmljYXRpb24gZGVmaW5lZCBpbiB0aGlzIHN0YWNrLlxuICAgICAgT3RoZXIgbm90aWZpY2F0aW9ucyB0aGF0IGFyZSBub3QgbWFuYWdlZCBieSB0aGlzIHN0YWNrIHdpbGwgYmUga2VwdC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTU1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogZmFsc2UsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFX05FV19TM1VSSV9QQVJBTUVURVJTX0ZPUl9CRURST0NLX0lOVk9LRV9NT0RFTF9UQVNLXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB1c2UgbmV3IHByb3BzIGZvciBTMyBVUkkgZmllbGQgaW4gdGFzayBkZWZpbml0aW9uIG9mIHN0YXRlIG1hY2hpbmUgZm9yIGJlZHJvY2sgaW52b2tlIG1vZGVsLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgQ3VycmVudGx5LCAnaW5wdXRQYXRoJyBhbmQgJ291dHB1dFBhdGgnIGZyb20gdGhlIFRhc2tTdGF0ZUJhc2UgUHJvcHMgaXMgYmVpbmcgdXNlZCB1bmRlciBCZWRyb2NrSW52b2tlTW9kZWxQcm9wcyB0byBkZWZpbmUgUzNVUkkgdW5kZXIgJ2lucHV0JyBhbmQgJ291dHB1dCcgZmllbGRzXG4gICAgb2YgU3RhdGUgTWFjaGluZSBUYXNrIGRlZmluaXRpb24uXG5cbiAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHNwZWNpZnkgbmV3bHkgaW50cm9kdWNlZCBwcm9wcyAnczNJbnB1dFVyaScgYW5kXG4gICAgJ3MzT3V0cHV0VXJpJyB0byBwb3B1bGF0ZSBTMyB1cmkgdW5kZXIgaW5wdXQgYW5kIG91dHB1dCBmaWVsZHMgaW4gc3RhdGUgbWFjaGluZSB0YXNrIGRlZmluaXRpb24gZm9yIEJlZHJvY2sgaW52b2tlIG1vZGVsLlxuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE1Ni4wJyB9LFxuICAgIHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB7IHYyOiB0cnVlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdXNlIGlucHV0IGFuZCBvdXRwdXQgcGF0aCBmaWVsZHMgZm9yIHMzIFVSSScsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRVhQTElDSVRfU1RBQ0tfVEFHU106IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHN0YWNrIHRhZ3MgbmVlZCB0byBiZSBhc3NpZ25lZCBleHBsaWNpdGx5IG9uIGEgU3RhY2suJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBXaXRob3V0IHRoaXMgZmVhdHVyZSBmbGFnIGVuYWJsZWQsIGlmIHRhZ3MgYXJlIGFkZGVkIHRvIGEgU3RhY2sgdXNpbmdcbiAgICBcXGBUYWdzLm9mKHNjb3BlKS5hZGQoLi4uKVxcYCwgdGhleSB3aWxsIGJlIGFkZGVkIHRvIGJvdGggdGhlIHN0YWNrIGFuZCBhbGwgcmVzb3VyY2VzXG4gICAgaW4gdGhlIHN0YWNrIHRlbXBsYXRlLlxuXG4gICAgVGhhdCBsZWFkcyB0byB0aGUgdGFncyBiZWluZyBhcHBsaWVkIHR3aWNlOiBvbmNlIGluIHRoZSB0ZW1wbGF0ZSwgYW5kIG9uY2VcbiAgICBhZ2FpbiBhdXRvbWF0aWNhbGx5IGJ5IENsb3VkRm9ybWF0aW9uLCB3aGljaCB3aWxsIGFwcGx5IGFsbCBzdGFjayB0YWdzIHRvXG4gICAgYWxsIHJlc291cmNlcyBpbiB0aGUgc3RhY2suIFRoaXMgbGVhZHMgdG8gbG9zcyBvZiBjb250cm9sLCBhcyB0aGVcbiAgICBcXGBleGNsdWRlUmVzb3VyY2VUeXBlc1xcYCBvcHRpb24gb2YgdGhlIFRhZ3MgQVBJIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdC5cblxuICAgIFdpdGggdGhpcyBmbGFnIGVuYWJsZWQsIHRhZ3MgYWRkZWQgdG8gYSBzdGFjayB1c2luZyBcXGBUYWdzLm9mKC4uLilcXGAgYXJlIGlnbm9yZWQsXG4gICAgYW5kIFN0YWNrIHRhZ3MgbXVzdCBiZSBjb25maWd1cmVkIGV4cGxpY2l0bHkgb24gdGhlIFN0YWNrIG9iamVjdC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMjA1LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdDb25maWd1cmUgc3RhY2stbGV2ZWwgdGFncyB1c2luZyBgbmV3IFN0YWNrKC4uLiwgeyB0YWdzOiB7IC4uLiB9IH0pYC4nLFxuICB9LFxuICBbRW5hYmxlX0lNRFNfQmxvY2tpbmdfRGVwcmVjYXRlZF9GZWF0dXJlXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLlRlbXBvcmFyeSxcbiAgICBzdW1tYXJ5OiAnV2hlbiBzZXQgdG8gdHJ1ZSBhbG9uZyB3aXRoIGNhbkNvbnRhaW5lcnNBY2Nlc3NJbnN0YW5jZVJvbGU9ZmFsc2UgaW4gRUNTIGNsdXN0ZXIsIG5ldyB1cGRhdGVkICcgK1xuICAgICAgJ2NvbW1hbmRzIHdpbGwgYmUgYWRkZWQgdG8gVXNlckRhdGEgdG8gYmxvY2sgY29udGFpbmVyIGFjY2Vzc2luZyBJTURTLiAnICtcbiAgICAgICcqKkFwcGxpY2FibGUgdG8gTGludXggb25seS4gSU1QT1JUQU5UOiBTZWUgW2RldGFpbHMuXSgjYXdzLWNka2F3cy1lY3NlbmFibGVJbWRzQmxvY2tpbmdEZXByZWNhdGVkRmVhdHVyZSkqKicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgSW4gYW4gRUNTIENsdXN0ZXIgd2l0aCBcXGBNYWNoaW5lSW1hZ2VUeXBlLkFNQVpPTl9MSU5VWF8yXFxgLCB0aGUgY2FuQ29udGFpbmVyc0FjY2Vzc0luc3RhbmNlUm9sZT1mYWxzZSBvcHRpb24gYXR0ZW1wdHMgdG8gYWRkIGNvbW1hbmRzIHRvIGJsb2NrIGNvbnRhaW5lcnMgZnJvbVxuICAgIGFjY2Vzc2luZyBJTURTLiBTZXQgdGhpcyBmbGFnIHRvIHRydWUgaW4gb3JkZXIgdG8gdXNlIG5ldyBhbmQgdXBkYXRlZCBjb21tYW5kcy4gUGxlYXNlIG5vdGUgdGhhdCB0aGlzXG4gICAgZmVhdHVyZSBhbG9uZSB3aXRoIHRoaXMgZmVhdHVyZSBmbGFnIHdpbGwgYmUgZGVwcmVjYXRlZCBieSA8aW5zPioqZW5kIG9mIDIwMjUqKjwvaW5zPiBhcyBDREsgY2Fubm90XG4gICAgZ3VhcmFudGVlIHRoZSBjb3JyZWN0IGV4ZWN1dGlvbiBvZiB0aGUgZmVhdHVyZSBpbiBhbGwgcGxhdGZvcm1zLiBTZWUgW0dpdGh1YiBkaXNjdXNzaW9uXShodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvZGlzY3Vzc2lvbnMvMzI2MDkpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgIEl0IGlzIHJlY29tbWVuZGVkIHRvIGZvbGxvdyBFQ1MgZG9jdW1lbnRhdGlvbiB0byBibG9jayBJTURTIGZvciB5b3VyIHNwZWNpZmljIHBsYXRmb3JtIGFuZCBjbHVzdGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE3NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IGZhbHNlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ1NldCB0aGlzIGZsYWcgdG8gZmFsc2UgaW4gb3JkZXIgdG8gY29udGludWUgdXNpbmcgb2xkIGFuZCBvdXRkYXRlZCBjb21tYW5kcy4gJyArXG4gICAgICAnSG93ZXZlciwgaXQgaXMgKipub3QqKiByZWNvbW1lbmRlZC4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0Rpc2FibGVfRUNTX0lNRFNfQmxvY2tpbmddOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuVGVtcG9yYXJ5LFxuICAgIHN1bW1hcnk6ICdXaGVuIHNldCB0byB0cnVlLCBDREsgc3ludGggd2lsbCB0aHJvdyBleGNlcHRpb24gaWYgY2FuQ29udGFpbmVyc0FjY2Vzc0luc3RhbmNlUm9sZSBpcyBmYWxzZS4nICtcbiAgICAgICcgKipJTVBPUlRBTlQ6IFNlZSBbZGV0YWlscy5dKCNhd3MtY2RrYXdzLWVjc2Rpc2FibGVFY3NJbWRzQmxvY2tpbmcpKionLFxuICAgIGRldGFpbHNNZDogYFxuICAgIEluIGFuIEVDUyBDbHVzdGVyIHdpdGggXFxgTWFjaGluZUltYWdlVHlwZS5BTUFaT05fTElOVVhfMlxcYCwgdGhlIGNhbkNvbnRhaW5lcnNBY2Nlc3NJbnN0YW5jZVJvbGU9ZmFsc2Ugb3B0aW9uIGF0dGVtcHRzIHRvIGFkZCBjb21tYW5kcyB0byBibG9jayBjb250YWluZXJzIGZyb21cbiAgICBhY2Nlc3NpbmcgSU1EUy4gQ0RLIGNhbm5vdCBndWFyYW50ZWUgdGhlIGNvcnJlY3QgZXhlY3V0aW9uIG9mIHRoZSBmZWF0dXJlIGluIGFsbCBwbGF0Zm9ybXMuIFNldHRpbmcgdGhpcyBmZWF0dXJlIGZsYWdcbiAgICB0byB0cnVlIHdpbGwgZW5zdXJlIENESyBkb2VzIG5vdCBhdHRlbXB0IHRvIGltcGxlbWVudCBJTURTIGJsb2NraW5nLiBCeSA8aW5zPioqZW5kIG9mIDIwMjUqKjwvaW5zPiwgQ0RLIHdpbGwgcmVtb3ZlIHRoZVxuICAgIElNRFMgYmxvY2tpbmcgZmVhdHVyZS4gU2VlIFtHaXRodWIgZGlzY3Vzc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Rpc2N1c3Npb25zLzMyNjA5KSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuICAgIEl0IGlzIHJlY29tbWVuZGVkIHRvIGZvbGxvdyBFQ1MgZG9jdW1lbnRhdGlvbiB0byBibG9jayBJTURTIGZvciB5b3VyIHNwZWNpZmljIHBsYXRmb3JtIGFuZCBjbHVzdGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE3NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gc2V0IHRoaXMgZmxhZyB0byB0cnVlLiBIb3dldmVyLCBpZiBuZWNlc3NhcnksIHNldCAnICtcbiAgICAgICd0aGlzIGZsYWcgdG8gZmFsc2UgdG8gY29udGludWUgdXNpbmcgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbi4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1JFRFVDRV9FQzJfRkFSR0FURV9DTE9VRFdBVENIX1BFUk1JU1NJT05TXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB3ZSB3aWxsIG9ubHkgZ3JhbnQgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyB3aGVuIHVzZXJzIHNwZWNpZnkgY2xvdWR3YXRjaCBsb2cgZ3JvdXAgdGhyb3VnaCBsb2dDb25maWd1cmF0aW9uJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBDdXJyZW50bHksIHdlIGF1dG9tYXRpY2FsbHkgYWRkIGEgbnVtYmVyIG9mIGNsb3Vkd2F0Y2ggcGVybWlzc2lvbnMgdG8gdGhlIHRhc2sgcm9sZSB3aGVuIG5vIGNsb3Vkd2F0Y2ggbG9nIGdyb3VwIGlzXG4gICAgc3BlY2lmaWVkIGFzIGxvZ0NvbmZpZ3VyYXRpb24gYW5kIGl0IHdpbGwgZ3JhbnQgJ1Jlc291cmNlcyc6IFsnKiddIHRvIHRoZSB0YXNrIHJvbGUuXG5cbiAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHdlIHdpbGwgb25seSBncmFudCB0aGUgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHdoZW4gdXNlcnMgc3BlY2lmeSBjbG91ZHdhdGNoIGxvZyBncm91cC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTU5LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gY29udGludWUgZ3JhbnQgcGVybWlzc2lvbnMgdG8gbG9nIGdyb3VwIHdoZW4gbm8gbG9nIGdyb3VwIGlzIHNwZWNpZmllZCcsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRFlOQU1PREJfVEFCTEVWMl9SRVNPVVJDRV9QT0xJQ1lfUEVSX1JFUExJQ0FdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQgd2lsbCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBhIHJlc291cmNlIHBvbGljeSBwZXIgcmVwbGljYSwgYW5kIG5vdCBjb3B5IHRoZSBzb3VyY2UgdGFibGUgcG9saWN5IHRvIGFsbCByZXBsaWNhcycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIFxcYFRhYmxlVjJcXGAgaXMgdG8gdXNlIGEgZGlmZmVyZW50IFxcYHJlc291cmNlUG9saWN5XFxgIGZvciBlYWNoIHJlcGxpY2EuXG5cbiAgICAgIElmIHRoaXMgZmxhZyBpcyBzZXQgdG8gZmFsc2UsIHRoZSBiZWhhdmlvciBpcyB0aGF0IGVhY2ggcmVwbGljYSBzaGFyZXMgdGhlIHNhbWUgXFxgcmVzb3VyY2VQb2xpY3lcXGAgYXMgdGhlIHNvdXJjZSB0YWJsZS5cbiAgICAgIFRoaXMgd2lsbCBwcmV2ZW50IHlvdSBmcm9tIGNyZWF0aW5nIGEgbmV3IHRhYmxlIHdoaWNoIGhhcyBhbiBhZGRpdGlvbmFsIHJlcGxpY2EgYW5kIGEgcmVzb3VyY2UgcG9saWN5LlxuXG4gICAgICBUaGlzIGlzIGEgZmVhdHVyZSBmbGFnIGFzIHRoZSBvbGQgYmVoYXZpb3Igd2FzIHRlY2huaWNhbGx5IGluY29ycmVjdCBidXQgdXNlcnMgbWF5IGhhdmUgY29tZSB0byBkZXBlbmQgb24gaXQuYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE2NC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUMyX1NVTV9USU1FT1VUX0VOQUJMRURdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGluaXRPcHRpb25zLnRpbWVvdXQgYW5kIHJlc291cmNlU2lnbmFsVGltZW91dCB2YWx1ZXMgd2lsbCBiZSBzdW1tZWQgdG9nZXRoZXIuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEN1cnJlbnRseSBpcyBib3RoIGluaXRPcHRpb25zLnRpbWVvdXQgYW5kIHJlc291cmNlU2lnbmFsVGltZW91dCBhcmUgYm90aCBzcGVjaWZpZWQgaW4gdGhlIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGFuIEVDMiBJbnN0YW5jZSxcbiAgICAgIG9ubHkgdGhlIHZhbHVlIGZyb20gJ3Jlc291cmNlU2lnbmFsVGltZW91dCcgd2lsbCBiZSB1c2VkLlxuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGlmIGJvdGggaW5pdE9wdGlvbnMudGltZW91dCBhbmQgcmVzb3VyY2VTaWduYWxUaW1lb3V0IGFyZSBzcGVjaWZpZWQsIHRoZSB2YWx1ZXMgd2lsbCB0byBiZSBzdW1tZWQgdG9nZXRoZXIuXG4gICAgICBgLFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNjAuMCcgfSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtBUFBTWU5DX0dSQVBIUUxBUElfU0NPUEVfTEFNQkRBX0ZVTkNUSU9OX1BFUk1JU1NJT05dOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGEgTGFtYmRhIGF1dGhvcml6ZXIgUGVybWlzc2lvbiBjcmVhdGVkIHdoZW4gdXNpbmcgR3JhcGhxbEFwaSB3aWxsIGJlIHByb3Blcmx5IHNjb3BlZCB3aXRoIGEgU291cmNlQXJuLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICAgIEN1cnJlbnRseSwgd2hlbiB1c2luZyBhIExhbWJkYSBhdXRob3JpemVyIHdpdGggYW4gQXBwU3luYyBHcmFwaFFMIEFQSSwgdGhlIEFXUyBDREsgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgdGhlIG5lY2Vzc2FyeSBBV1M6OkxhbWJkYTo6UGVybWlzc2lvblxuICAgICAgICB0byBhbGxvdyB0aGUgQXBwU3luYyBBUEkgdG8gaW52b2tlIHRoZSBMYW1iZGEgYXV0aG9yaXplci4gVGhpcyBwZXJtaXNzaW9uIGlzIG92ZXJseSBwZXJtaXNzaXZlIGJlY2F1c2UgaXQgbGFja3MgYSBTb3VyY2VBcm4sIG1lYW5pbmdcbiAgICAgICAgaXQgYWxsb3dzIGludm9jYXRpb25zIGZyb20gYW55IHNvdXJjZS5cblxuICAgICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHRoZSBBV1M6OkxhbWJkYTo6UGVybWlzc2lvbiB3aWxsIGJlIHByb3Blcmx5IHNjb3BlZCB3aXRoIHRoZSBTb3VyY2VBcm4gY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgICAgc3BlY2lmaWMgQXBwU3luYyBHcmFwaFFMIEFQSS5cbiAgICAgICAgYCxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTYxLjAnIH0sXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFX0NPUlJFQ1RfVkFMVUVfRk9SX0lOU1RBTkNFX1JFU09VUkNFX0lEX1BST1BFUlRZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgdmFsdWUgb2YgcHJvcGVydHkgYGluc3RhbmNlUmVzb3VyY2VJZGAgaW4gY29uc3RydWN0IGBEYXRhYmFzZUluc3RhbmNlUmVhZFJlcGxpY2FgIHdpbGwgYmUgc2V0IHRvIHRoZSBjb3JyZWN0IHZhbHVlIHdoaWNoIGlzIGBEYmlSZXNvdXJjZUlkYCBpbnN0ZWFkIG9mIGN1cnJlbnRseSBgRGJJbnN0YW5jZUFybmAnLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ3VycmVudGx5LCB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5ICdpbnN0YW5jZVJlc291cmNlSWQnIGluIGNvbnN0cnVjdCAnRGF0YWJhc2VJbnN0YW5jZVJlYWRSZXBsaWNhJyBpcyBub3QgY29ycmVjdCwgYW5kIHNldCB0byAnRGJJbnN0YW5jZUFybicgd2hpY2ggaXMgbm90IGNvcnJlY3Qgd2hlbiBpdCBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgSUFNIFBvbGljeSBpbiB0aGUgZ3JhbnRDb25uZWN0IG1ldGhvZC5cblxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgdmFsdWUgb2YgdGhhdCBwcm9wZXJ0eSB3aWxsIGJlIGFzIGV4cGVjdGVkIHNldCB0byAnRGJpUmVzb3VyY2VJZCcgYXR0cmlidXRlLCBhbmQgdGhhdCB3aWxsIGZpeCB0aGUgZ3JhbnRDb25uZWN0IG1ldGhvZC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTYxLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdXNlIGBEYkluc3RhbmNlQXJuYCBhcyB2YWx1ZSBmb3IgcHJvcGVydHkgYGluc3RhbmNlUmVzb3VyY2VJZGAnLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0NGTl9JTkNMVURFX1JFSkVDVF9DT01QTEVYX1JFU09VUkNFX1VQREFURV9DUkVBVEVfUE9MSUNZX0lOVFJJTlNJQ1NdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIENGTiB0ZW1wbGF0ZXMgYWRkZWQgd2l0aCBgY2ZuLWluY2x1ZGVgIHdpbGwgZXJyb3IgaWYgdGhlIHRlbXBsYXRlIGNvbnRhaW5zIFJlc291cmNlIFVwZGF0ZSBvciBDcmVhdGUgcG9saWNpZXMgd2l0aCBDRk4gSW50cmluc2ljcyB0aGF0IGluY2x1ZGUgbm9uLXByaW1pdGl2ZSB2YWx1ZXMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBXaXRob3V0IGVuYWJsaW5nIHRoaXMgZmVhdHVyZSBmbGFnLCBcXGBjZm4taW5jbHVkZVxcYCB3aWxsIHNpbGVudGx5IGRyb3AgcmVzb3VyY2UgdXBkYXRlIG9yIGNyZWF0ZSBwb2xpY2llcyB0aGF0IGNvbnRhaW4gQ0ZOIEludHJpbnNpY3MgaWYgdGhleSBpbmNsdWRlIG5vbi1wcmltaXRpdmUgdmFsdWVzLlxuXG4gICAgRW5hYmxpbmcgdGhpcyBmZWF0dXJlIGZsYWcgd2lsbCBtYWtlIFxcYGNmbi1pbmNsdWRlXFxgIHRocm93IG9uIHRoZXNlIHRlbXBsYXRlcywgdW5sZXNzIHlvdSBzcGVjaWZ5IHRoZSBsb2dpY2FsIElEIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgJ3VuaHlkcmF0ZWRSZXNvdXJjZXMnIHByb3BlcnR5LlxuICAgIGAsXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE2MS4wJyB9LFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0xBTUJEQV9OT0RFSlNfU0RLX1YzX0VYQ0xVREVfU01JVEhZX1BBQ0tBR0VTXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBib3RoIGBAYXdzLXNka2AgYW5kIGBAc21pdGh5YCBwYWNrYWdlcyB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIExhbWJkYSBOb2RlLmpzIDE4LnggcnVudGltZSB0byBwcmV2ZW50IHZlcnNpb24gbWlzbWF0Y2hlcyBpbiBidW5kbGVkIGFwcGxpY2F0aW9ucy4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgQ3VycmVudGx5LCB3aGVuIGJ1bmRsaW5nIExhbWJkYSBmdW5jdGlvbnMgd2l0aCB0aGUgbm9uLWxhdGVzdCBydW50aW1lIHRoYXQgc3VwcG9ydHMgQVdTIFNESyBKYXZhU2NyaXB0ICh2MyksIG9ubHkgdGhlICdAYXdzLXNkay8qJyBwYWNrYWdlcyBhcmUgZXhjbHVkZWQgYnkgZGVmYXVsdC5cbiAgICAgIEhvd2V2ZXIsIHRoaXMgY2FuIGNhdXNlIHZlcnNpb24gbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSAnQGF3cy1zZGsvKicgYW5kICdAc21pdGh5LyonIHBhY2thZ2VzLCBhcyB0aGV5IGFyZSB0aWdodGx5IGNvdXBsZWQgZGVwZW5kZW5jaWVzIGluIEFXUyBTREsgdjMuXG5cbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYm90aCAnQGF3cy1zZGsvKicgYW5kICdAc21pdGh5LyonIHBhY2thZ2VzIHdpbGwgYmUgZXhjbHVkZWQgZHVyaW5nIHRoZSBidW5kbGluZyBwcm9jZXNzLiBUaGlzIGVuc3VyZXMgdGhhdCBubyBtaXNtYXRjaGVzXG4gICAgICBvY2N1ciBiZXR3ZWVuIHRoZXNlIHRpZ2h0bHkgY291cGxlZCBkZXBlbmRlbmNpZXMgd2hlbiB1c2luZyB0aGUgQVdTIFNESyB2MyBpbiBMYW1iZGEgZnVuY3Rpb25zLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNjEuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1NURVBGVU5DVElPTlNfVEFTS1NfRklYX1JVTl9FQ1NfVEFTS19QT0xJQ1ldOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSByZXNvdXJjZSBvZiBJQU0gUnVuIEVjcyBwb2xpY3kgZ2VuZXJhdGVkIGJ5IFNGTiBFY3NSdW5UYXNrIHdpbGwgcmVmZXJlbmNlIHRoZSBkZWZpbml0aW9uLCBpbnN0ZWFkIG9mIGNvbnN0cnVjdGluZyBBUk4uJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEN1cnJlbnRseSwgaW4gdGhlIElBTSBSdW4gRWNzIHBvbGljeSBnZW5lcmF0ZWQgYnkgU0ZOIEVjc1J1blRhc2soKSwgQ0RLIHdpbGwgY29uc3RydWN0IHRoZSBBUk4gd2l0aCB3aWxkY2FyZCBhdHRhY2hlZCBhdCB0aGUgZW5kLlxuICAgICAgVGhlIHJldmlzaW9uIG51bWJlciBhdCB0aGUgZW5kIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBhIHdpbGRjYXJkIHdoaWNoIGl0IHNob3VsZG4ndC5cblxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBpZiB0aGUgdGFzayBkZWZpbml0aW9uIGlzIGNyZWF0ZWQgaW4gdGhlIHN0YWNrLCB0aGUgJ1Jlc291cmNlJyBzZWN0aW9uIHdpbGwgJ1JlZicgdGhlIHRhc2tEZWZpbml0aW9uLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNjMuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0JBU1RJT05fSE9TVF9VU0VfQU1BWk9OX0xJTlVYXzIwMjNfQllfREVGQVVMVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBCYXN0aW9uSG9zdCBjb25zdHJ1Y3Qgd2lsbCB1c2UgdGhlIGxhdGVzdCBBbWF6b24gTGludXggMjAyMyBBTUksIGluc3RlYWQgb2YgQW1hem9uIExpbnV4IDIuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEN1cnJlbnRseSwgaWYgdGhlIG1hY2hpbmVJbWFnZSBwcm9wZXJ0eSBvZiB0aGUgQmFzdGlvbkhvc3QgY29uc3RydWN0IGRlZmF1bHRzIHRvIHVzaW5nIHRoZSBsYXRlc3QgQW1hem9uIExpbnV4IDJcbiAgICAgIEFNSS4gQW1hem9uIExpbnV4IDIgaGl0cyBlbmQtb2YtbGlmZSBpbiBKdW5lIDIwMjUsIHNvIHVzaW5nIEFtYXpvbiBMaW51eCAyMDIzIGJ5IGRlZmF1bHQgaXMgYSBtb3JlIGZ1dHVyZS1wcm9vZlxuICAgICAgYW5kIHNlY3VyZSBvcHRpb24uXG5cbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgaWYgeW91IGRvIG5vdCBwYXNzIHRoZSBtYWNoaW5lSW1hZ2UgcHJvcGVydHkgdG8gdGhlIEJhc3Rpb25Ib3N0IGNvbnN0cnVjdCxcbiAgICAgIHRoZSBsYXRlc3QgQW1hem9uIExpbnV4IDIwMjMgdmVyc2lvbiB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiBBbWF6b24gTGludXggMi5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTcyLjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgb3IgZXhwbGljaXRseSBwYXNzIGFuIEFtYXpvbiBMaW51eCAyIG1hY2hpbmUgaW1hZ2UgdG8gdGhlIEJhc3Rpb25Ib3N0IGNvbnN0cnVjdC4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0FTUEVDVF9TVEFCSUxJWkFUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLlZpc2libGVDb250ZXh0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIGEgc3RhYmlsaXphdGlvbiBsb29wIHdpbGwgYmUgcnVuIHdoZW4gaW52b2tpbmcgQXNwZWN0cyBkdXJpbmcgc3ludGhlc2lzLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXJyZW50bHksIHdoZW4gQXNwZWN0cyBhcmUgaW52b2tlZCBpbiBvbmUgc2luZ2xlIHBhc3Mgb2YgdGhlIGNvbnN0cnVjdCB0cmVlLlxuICAgICAgVGhpcyBtZWFucyB0aGF0IHRoZSBBc3BlY3RzIHRoYXQgY3JlYXRlIG90aGVyIEFzcGVjdHMgYXJlIG5vdCBydW4gYW5kIEFzcGVjdHMgdGhhdCBjcmVhdGUgbmV3IG5vZGVzIG9mIHRoZSB0cmVlIHNvbWV0aW1lcyBkbyBub3QgaW5oZXJpdCB0aGVpciBwYXJlbnQgQXNwZWN0cy5cblxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBhIHN0YWJpbGl6YXRpb24gbG9vcCBpcyBydW4gdG8gcmVjdXJzZSB0aGUgY29uc3RydWN0IHRyZWUgbXVsdGlwbGUgdGltZXMgd2hlbiBpbnZva2luZyBBc3BlY3RzLlxuICAgIGAsXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE3Mi4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFUl9QT09MX0RPTUFJTl9OQU1FX01FVEhPRF9XSVRIT1VUX0NVU1RPTV9SRVNPVVJDRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgdXNlIGEgbmV3IG1ldGhvZCBmb3IgRE5TIE5hbWUgb2YgdXNlciBwb29sIGRvbWFpbiB0YXJnZXQgd2l0aG91dCBjcmVhdGluZyBhIGN1c3RvbSByZXNvdXJjZS4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgYSBuZXcgbWV0aG9kIHdpbGwgYmUgdXNlZCB0byBnZXQgdGhlIEROUyBOYW1lIG9mIHRoZSB1c2VyIHBvb2wgZG9tYWluIHRhcmdldC4gVGhlIG9sZCBtZXRob2RcbiAgICBjcmVhdGVzIGEgY3VzdG9tIHJlc291cmNlIGludGVybmFsbHksIGJ1dCB0aGUgbmV3IG1ldGhvZCBkb2Vzbid0IG5lZWQgYSBjdXN0b20gcmVzb3VyY2UuXG5cbiAgICBJZiB0aGUgZmxhZyBpcyBzZXQgdG8gZmFsc2UgdGhlbiBhIGN1c3RvbSByZXNvdXJjZSB3aWxsIGJlIGNyZWF0ZWQgd2hlbiB1c2luZyBcXGBVc2VyUG9vbERvbWFpblRhcmdldFxcYC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTc0LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtBTEJfRFVBTFNUQUNLX1dJVEhPVVRfUFVCTElDX0lQVjRfU0VDVVJJVFlfR1JPVVBfUlVMRVNfREVGQVVMVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgdGhlIGRlZmF1bHQgc2VjdXJpdHkgZ3JvdXAgaW5ncmVzcyBydWxlcyB3aWxsIGFsbG93IElQdjYgaW5ncmVzcyBmcm9tIGFueXdoZXJlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIEZvciBpbnRlcm5ldCBmYWNpbmcgQUxCcyB3aXRoICdkdWFsc3RhY2std2l0aG91dC1wdWJsaWMtaXB2NCcgSVAgYWRkcmVzcyB0eXBlLCB0aGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBydWxlc1xuICAgICAgd2lsbCBhbGxvdyBJUHY2IGluZ3Jlc3MgZnJvbSBhbnl3aGVyZSAoOjovMCkuIFByZXZpb3VzbHksIHRoZSBkZWZhdWx0IHNlY3VyaXR5IGdyb3VwIHJ1bGVzIHdvdWxkIG9ubHkgYWxsb3cgSVB2NCBpbmdyZXNzLlxuXG4gICAgICBVc2luZyBhIGZlYXR1cmUgZmxhZyB0byBtYWtlIHN1cmUgZXhpc3RpbmcgY3VzdG9tZXJzIHdobyBtaWdodCBiZSByZWx5aW5nXG4gICAgICBvbiB0aGUgb3Zlcmx5IHJlc3RyaWN0aXZlIHBlcm1pc3Npb25zIGFyZSBub3QgYnJva2VuLmAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNzYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBvbmx5IGFsbG93IElQdjQgaW5ncmVzcyBpbiB0aGUgZGVmYXVsdCBzZWN1cml0eSBncm91cCBydWxlcy4nLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0lBTV9PSURDX1JFSkVDVF9VTkFVVEhPUklaRURfQ09OTkVDVElPTlNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiBPSURDIHByb3ZpZGVyIHdpbGwgcmVqZWN0IHVuYXV0aG9yaXplZCBjb25uZWN0aW9ucycsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiBPSURDIFByb3ZpZGVyJ3MgY3VzdG9tIHJlc291cmNlIGhhbmRsZXIgd2lsbFxuICAgICAgZGVmYXVsdCB0byByZWplY3QgdW5hdXRob3JpemVkIGNvbm5lY3Rpb25zIHdoZW4gZG93bmxvYWRpbmcgQ0EgQ2VydGlmaWNhdGVzLlxuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgdGhlIHNhbWUgYXMgY3VycmVudCBhbmQgd2lsbCBhbGxvdyBkb3dubG9hZGluZ1xuICAgICAgdGh1bWJwcmludHMgZnJvbSB1bnNlY3VyZSBjb25uZWN0aW9ucy5gLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTc3LjAnIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gYWxsb3cgdW5zZWN1cmUgT0lEQyBjb25uZWN0aW9uLicsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRU5BQkxFX0FERElUSU9OQUxfTUVUQURBVEFfQ09MTEVDVElPTl06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5WaXNpYmxlQ29udGV4dCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBDREsgd2lsbCBleHBhbmQgdGhlIHNjb3BlIG9mIHVzYWdlIGRhdGEgY29sbGVjdGVkIHRvIGJldHRlciBpbmZvcm0gQ0RLIGRldmVsb3BtZW50IGFuZCBpbXByb3ZlIGNvbW11bmljYXRpb24gZm9yIHNlY3VyaXR5IGNvbmNlcm5zIGFuZCBlbWVyZ2luZyBpc3N1ZXMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIENESyBleHBhbmRzIHRoZSBzY29wZSBvZiB1c2FnZSBkYXRhIGNvbGxlY3Rpb24gdG8gaW5jbHVkZSB0aGUgZm9sbG93aW5nOlxuICAgICAgKiBMMiBjb25zdHJ1Y3QgcHJvcGVydHkga2V5cyAtIENvbGxlY3Qgd2hpY2ggcHJvcGVydHkga2V5cyB5b3UgdXNlIGZyb20gdGhlIEwyIGNvbnN0cnVjdHMgaW4geW91ciBhcHAuIFRoaXMgaW5jbHVkZXMgcHJvcGVydHkga2V5cyBuZXN0ZWQgaW4gZGljdGlvbmFyeSBvYmplY3RzLlxuICAgICAgKiBMMiBjb25zdHJ1Y3QgcHJvcGVydHkgdmFsdWVzIG9mIEJPT0wgYW5kIEVOVU0gdHlwZXMgLSBDb2xsZWN0IHByb3BlcnR5IGtleSB2YWx1ZXMgb2Ygb25seSBCT09MIGFuZCBFTlVNIHR5cGVzLiBBbGwgb3RoZXIgdHlwZXMsIHN1Y2ggYXMgc3RyaW5nIHZhbHVlcyBvciBjb25zdHJ1Y3QgcmVmZXJlbmNlcyB3aWxsIGJlIHJlZGFjdGVkLlxuICAgICAgKiBMMiBjb25zdHJ1Y3QgbWV0aG9kIHVzYWdlIC0gQ29sbGVjdGlvbiBtZXRob2QgbmFtZSwgcGFyYW1ldGVyIGtleXMgYW5kIHBhcmFtZXRlciB2YWx1ZXMgb2YgQk9PTCBhbmQgRU5VTSB0eXBlLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xNzguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW0xBTUJEQV9DUkVBVEVfTkVXX1BPTElDSUVTX1dJVEhfQUREVE9ST0xFUE9MSUNZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnW0RlcHJlY2F0ZWRdIFdoZW4gZW5hYmxlZCwgTGFtYmRhIHdpbGwgY3JlYXRlIG5ldyBpbmxpbmUgcG9saWNpZXMgd2l0aCBBZGRUb1JvbGVQb2xpY3kgaW5zdGVhZCBvZiBhZGRpbmcgdG8gdGhlIERlZmF1bHQgUG9saWN5IFN0YXRlbWVudCcsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBbRGVwcmVjYXRlZCBkZWZhdWx0IGZlYXR1cmVdIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgTGFtYmRhIHdpbGwgY3JlYXRlIG5ldyBpbmxpbmUgcG9saWNpZXMgd2l0aCBBZGRUb1JvbGVQb2xpY3kuXG4gICAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIHByZXZlbnQgbGFtYmRhIGZyb20gY3JlYXRpbmcgYSBkZXBlbmRlbmN5IG9uIHRoZSBEZWZhdWx0IFBvbGljeSBTdGF0ZW1lbnQuXG4gICAgICBUaGlzIHNvbHZlcyBhbiBpc3N1ZSB3aGVyZSBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgY291bGQgb2NjdXIgaWYgYWRkaW5nIGxhbWJkYSB0byBzb21ldGhpbmcgbGlrZSBhIENvZ25pdG8gVHJpZ2dlciwgdGhlbiBhZGRpbmcgdGhlIFVzZXIgUG9vbCB0byB0aGUgbGFtYmRhIGV4ZWN1dGlvbiByb2xlIHBlcm1pc3Npb25zLlxuICAgICAgSG93ZXZlciBpbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgd2UgaGF2ZSByZW1vdmVkIGEgZGVwZW5kZW5jeSBvZiB0aGUgbGFtYmRhIGZ1bmN0aW9uIG9uIHRoZSBwb2xpY3kuIEluIGFkZGl0aW9uIHRvIHRoaXMsIGEgUm9sZSB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBQb2xpY3kgaW5zdGVhZCBvZiBhbiBpbmxpbmUgcG9saWN5IGJlaW5nIGF0dGFjaGVkIHRvIHRoZSByb2xlLlxuICAgICAgVGhpcyB3aWxsIGNyZWF0ZSBhIGRhdGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGJlY2F1c2UgdGhlIGNyZWF0aW9uIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gbm8gbG9uZ2VyIHdhaXRzIGZvciB0aGUgcG9saWN5IHRvIGJlIGNyZWF0ZWQuIEhhdmluZyBzYWlkIHRoYXQsIHdlIGFyZSBub3QgZGVwcmVjYXRpbmcgdGhlIGZlYXR1cmUgKHdlIGFyZSBkZWZhdWx0aW5nIHRoZSBmZWF0dXJlIGZsYWcgdG8gZmFsc2UgZm9yIG5ldyBzdGFja3MpIHNpbmNlIHRoaXMgZmVhdHVyZSBjYW4gc3RpbGwgYmUgdXNlZCB0byBnZXQgYXJvdW5kIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IGlzc3VlIChpc3N1ZS03MDE2KSBwYXJ0aWN1bGFybHkgaW4gY2FzZXMgd2hlcmUgdGhlIGxhbWJkYSByZXNvdXJjZSBjcmVhdGlvbiBkb2VzbnQgbmVlZCB0byBkZXBlbmQgb24gdGhlIHBvbGljeSByZXNvdXJjZSBjcmVhdGlvbi5cbiAgICAgIFdlIHJlY29tbWVuZCB0byB1bnNldCB0aGUgZmVhdHVyZSBmbGFnIGlmIGFscmVhZHkgc2V0IHdoaWNoIHdpbGwgcmVzdG9yZSB0aGUgb3JpZ2luYWwgYmVoYXZpb3IuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4MC4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IGZhbHNlLFxuICB9LFxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgW1NFVF9VTklRVUVfUkVQTElDQVRJT05fUk9MRV9OQU1FXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCBDREsgd2lsbCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgdW5pcXVlIHJvbGUgbmFtZSB0aGF0IGlzIHVzZWQgZm9yIHMzIG9iamVjdCByZXBsaWNhdGlvbi4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiBwZXJmb3JtaW5nIGNyb3NzLWFjY291bnQgUzMgcmVwbGljYXRpb24sIHdlIG5lZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5IGEgcm9sZSBuYW1lIGZvciB0aGUgcmVwbGljYXRpb24gZXhlY3V0aW9uIHJvbGUuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGEgdW5pcXVlIHJvbGUgbmFtZSBpcyBzcGVjaWZpZWQgb25seSB3aGVuIHBlcmZvcm1pbmcgY3Jvc3MtYWNjb3VudCByZXBsaWNhdGlvbi5cbiAgICAgIFdoZW4gZGlzYWJsZWQsICdDREtSZXBsaWNhdGlvblJvbGUnIGlzIGFsd2F5cyBzcGVjaWZpZWQuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4Mi4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUElQRUxJTkVfUkVEVUNFX1NUQUdFX1JPTEVfVFJVU1RfU0NPUEVdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnUmVtb3ZlIHRoZSByb290IGFjY291bnQgcHJpbmNpcGFsIGZyb20gU3RhZ2UgYWRkQWN0aW9ucyB0cnVzdCBwb2xpY3knLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgcm9vdCBhY2NvdW50IHByaW5jaXBhbCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgdHJ1c3QgcG9saWN5IG9mIHN0YWdlIHJvbGUuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCBpdCB3aWxsIGtlZXAgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgaW4gdGhlIHRydXN0IHBvbGljeS5cblxuICAgICAgRm9yIGNyb3NzLWFjY291bnQgY2FzZXMsIHdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCB0aGUgdHJ1c3QgcG9saWN5IHdpbGwgYmUgc2NvcGVkIHRvIHRoZSByb2xlIG9ubHkuXG4gICAgICBJZiB5b3UgYXJlIHByb3ZpZGluZyBhIGN1c3RvbSByb2xlLCB5b3Ugd2lsbCBuZWVkIHRvIGVuc3VyZSAncm9sZU5hbWUnIGlzIHNwZWNpZmllZCBvciBzZXQgdG8gUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRC5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTg0LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBhZGQgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgYmFjaycsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRVZFTlRCVVNfUE9MSUNZX1NJRF9SRVFVSVJFRF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgZ3JhbnRQdXRFdmVudHNUbygpIHdpbGwgdXNlIHJlc291cmNlIHBvbGljaWVzIHdpdGggU3RhdGVtZW50IElEcyBmb3Igc2VydmljZSBwcmluY2lwYWxzLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXJyZW50bHksIHdoZW4gZ3JhbnRpbmcgcGVybWlzc2lvbnMgdG8gc2VydmljZSBwcmluY2lwYWxzIHVzaW5nIGdyYW50UHV0RXZlbnRzVG8oKSwgdGhlIG9wZXJhdGlvbiBzaWxlbnRseSBmYWlsc1xuICAgICAgYmVjYXVzZSBzZXJ2aWNlIHByaW5jaXBhbHMgcmVxdWlyZSByZXNvdXJjZSBwb2xpY2llcyB3aXRoIFN0YXRlbWVudCBJRHMuXG5cbiAgICAgIFdoZW4gdGhpcyBmbGFnIGlzIGVuYWJsZWQ6XG4gICAgICAtIFJlc291cmNlIHBvbGljaWVzIHdpbGwgYmUgY3JlYXRlZCB3aXRoIFN0YXRlbWVudCBJRHMgZm9yIHNlcnZpY2UgcHJpbmNpcGFsc1xuICAgICAgLSBUaGUgb3BlcmF0aW9uIHdpbGwgc3VjY2VlZCBhcyBleHBlY3RlZFxuXG4gICAgICBXaGVuIHRoaXMgZmxhZyBpcyBkaXNhYmxlZDpcbiAgICAgIC0gQSB3YXJuaW5nIHdpbGwgYmUgZW1pdHRlZFxuICAgICAgLSBUaGUgZ3JhbnQgb3BlcmF0aW9uIHdpbGwgYmUgZHJvcHBlZFxuICAgICAgLSBObyBwZXJtaXNzaW9ucyB3aWxsIGJlIGFkZGVkXG5cbiAgICAgIFRoaXMgZml4ZXMgdGhlIGlzc3VlIHdoZXJlIHBlcm1pc3Npb25zIHdlcmUgc2lsZW50bHkgbm90IGJlaW5nIGFkZGVkIGZvciBzZXJ2aWNlIHByaW5jaXBhbHMuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4Ni4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbQVNQRUNUX1BSSU9SSVRJRVNfTVVUQVRJTkddOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBzZXQgdG8gdHJ1ZSwgQXNwZWN0cyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGxpYnJhcnkgb24geW91ciBiZWhhbGYgd2lsbCBiZSBnaXZlbiBhIHByaW9yaXR5IG9mIE1VVEFUSU5HLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXN0b20gQXNwZWN0cyB5b3UgYWRkIGhhdmUgYSBwcmlvcml0eSBvZiBERUZBVUxUICg1MDApIGlmIHlvdSBkb24ndFxuICAgICAgYXNzaWduIGEgbW9yZSBzcGVjaWZpYyBwcmlvcml0eSwgd2hpY2ggaXMgaGlnaGVyIHRoYW4gTVVUQVRJTkcgKDIwMCkuIFRoaXNcbiAgICAgIGlzIHJlbGV2YW50IGlmIGEgY3VzdG9tIEFzcGVjdCB5b3UgYWRkIGFuZCBhbiBBc3BlY3QgYWRkZWQgYnkgQ0RLIHRyeSB0b1xuICAgICAgY29uZmlndXJlIHRoZSBzYW1lIHZhbHVlLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIGZhbHNlIChvbGQgYmVoYXZpb3IpLCBBc3BlY3RzIGFkZGVkIGJ5IENESyBhcmUgYWxzb1xuICAgICAgYWRkZWQgd2l0aCBhIHByaW9yaXR5IG9mIERFRkFVTFQ7IGJlY2F1c2UgdGhlaXIgcHJpb3JpdGllcyBhcmUgZXF1YWwsIHRoZVxuICAgICAgQXNwZWN0cyB0aGF0IGlzIGNsb3Nlc3QgdG8gdGhlIHRhcmdldCBjb25zdHJ1Y3QgZXhlY3V0ZXMgbGFzdCAoZWl0aGVyXG4gICAgICB5b3VycyBvciB0aGUgQXNwZWN0IGFkZGVkIGJ5IHRoZSBDREspLlxuXG4gICAgICBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIHRydWUgKHJlY29tbWVuZGVkIGJlaGF2aW9yKSwgQXNwZWN0cyBhZGRlZCBieSBDREsgYXJlIGFkZGVkXG4gICAgICB3aXRoIGEgcHJpb3JpdHkgb2YgTVVUQVRJTkcsIGFuZCBjdXN0b20gQXNwZWN0cyB5b3UgYWRkIHdpdGggREVGQVVMVFxuICAgICAgcHJpb3JpdHkgd2lsbCBhbHdheXMgZXhlY3V0ZSBsYXN0IGFuZCBcIndpblwiIHRoZSB3cml0ZS4gSWYgeW91IG5lZWQgQXNwZWN0c1xuICAgICAgYWRkZWQgYnkgQ0RLIHRvIHJ1biBhZnRlciB5b3VycywgeW91ciBBc3BlY3QgbmVlZHMgdG8gaGF2ZSBhIHByaW9yaXR5IG9mXG4gICAgICBNVVRBVElORyBvciBsb3dlci5cblxuICAgICAgVGhpcyBzZXR0aW5nIG9ubHkgYXBwbGllcyB0byBBc3BlY3RzIHRoYXQgd2VyZSBhbHJlYWR5IGJlaW5nIGFkZGVkIGZvciB5b3VcbiAgICAgIGJlZm9yZSB2ZXJzaW9uIDIuMTcyLjAuIEFzcGVjdHMgaW50cm9kdWNlZCBzaW5jZSB0aGF0IHZlcnNpb24gd2lsbCBhbHdheXNcbiAgICAgIGJlIGFkZGVkIHdpdGggYSBwcmlvcml0eSBvZiBNVVRBVElORywgaW5kZXBlbmRlbnQgb2YgdGhpcyBmZWF0dXJlIGZsYWcuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4OS4xJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiBgXG4gICAgICBUbyBhZGQgbXV0YXRpbmcgQXNwZWN0cyBjb250cm9sbGluZyBjb25zdHJ1Y3QgdmFsdWVzIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW5cbiAgICAgIGJ5IEFzcGVjdHMgYWRkZWQgYnkgQ0RLLCBnaXZlIHRoZW0gTVVUQVRJTkcgcHJpb3JpdHk6XG5cbiAgICAgIFxcYFxcYFxcYFxuICAgICAgQXNwZWN0cy5vZihzdGFjaykuYWRkKG5ldyBNeUN1c3RvbUFzcGVjdCgpLCB7XG4gICAgICAgIHByaW9yaXR5OiBBc3BlY3RQcmlvcml0eS5NVVRBVElORyxcbiAgICAgIH0pO1xuICAgICAgXFxgXFxgXFxgXG4gICAgYCxcbiAgfSxcbiAgW0RZTkFNT0RCX1RBQkxFX1JFVEFJTl9UQUJMRV9SRVBMSUNBXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0YWJsZSByZXBsaWNhIHdpbGwgYmUgZGVmYXVsdCB0byB0aGUgcmVtb3ZhbCBwb2xpY3kgb2Ygc291cmNlIHRhYmxlIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBDdXJyZW50bHksIHRhYmxlIHJlcGxpY2Egd2lsbCBhbHdheXMgYmUgZGVsZXRlZCB3aGVuIHN0YWNrIGRlbGV0ZXMgcmVnYXJkbGVzcyBvZiBzb3VyY2UgdGFibGUncyBkZWxldGlvbiBwb2xpY3kuXG4gICAgICBXaGVuIGVuYWJsZWQsIHRhYmxlIHJlcGxpY2Egd2lsbCBiZSBkZWZhdWx0IHRvIHRoZSByZW1vdmFsIHBvbGljeSBvZiBzb3VyY2UgdGFibGUgdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE4Ny4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbTE9HX1VTRVJfUE9PTF9DTElFTlRfU0VDUkVUX1ZBTFVFXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1doZW4gZGlzYWJsZWQsIHRoZSB2YWx1ZSBvZiB0aGUgdXNlciBwb29sIGNsaWVudCBzZWNyZXQgd2lsbCBub3QgYmUgbG9nZ2VkIGluIHRoZSBjdXN0b20gcmVzb3VyY2UgbGFtYmRhIGZ1bmN0aW9uIGxvZ3MuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgdGhlIFNESyBBUEkgY2FsbCByZXNwb25zZSB0byBkZXNyaWJlIHVzZXIgcG9vbCBjbGllbnQgdmFsdWVzIHdpbGwgYmUgbG9nZ2VkIGluIHRoZSBjdXN0b21cbiAgICAgIHJlc291cmNlIGxhbWJkYSBmdW5jdGlvbiBsb2dzLlxuXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGRpc2FibGVkLCB0aGUgU0RLIEFQSSBjYWxsIHJlc3BvbnNlIHRvIGRlc2NyaWJlIHVzZXIgcG9vbCBjbGllbnQgdmFsdWVzIHdpbGwgbm90IGJlIGxvZ2dlZCBpbiB0aGUgY3VzdG9tXG4gICAgICByZXNvdXJjZSBsYW1iZGEgZnVuY3Rpb24gbG9ncy5cbiAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTg3LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IGZhbHNlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogZmFsc2UsXG4gICAgY29tcGF0aWJpbGl0eVdpdGhPbGRCZWhhdmlvck1kOiAnRW5hYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8ga2VlcCB0aGUgb2xkIGJlaGF2aW9yIGFuZCBsb2cgdGhlIGNsaWVudCBzZWNyZXQgdmFsdWVzJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtQSVBFTElORV9SRURVQ0VfQ1JPU1NfQUNDT1VOVF9BQ1RJT05fUk9MRV9UUlVTVF9TQ09QRV06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIHNjb3BlcyBkb3duIHRoZSB0cnVzdCBwb2xpY3kgZm9yIHRoZSBjcm9zcy1hY2NvdW50IGFjdGlvbiByb2xlJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgdHJ1c3QgcG9saWN5IG9mIHRoZSBjcm9zcy1hY2NvdW50IGFjdGlvbiByb2xlIHdpbGwgYmUgc2NvcGVkIHRvIHRoZSBwaXBlbGluZSByb2xlLlxuICAgICAgICBJZiB5b3UgYXJlIHByb3ZpZGluZyBhIGN1c3RvbSByb2xlLCB5b3Ugd2lsbCBuZWVkIHRvIGVuc3VyZSAncm9sZU5hbWUnIGlzIHNwZWNpZmllZCBvciBzZXQgdG8gUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRC5cbiAgICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBkaXNhYmxlZCwgaXQgd2lsbCBrZWVwIHRoZSByb290IGFjY291bnQgcHJpbmNpcGFsIGluIHRoZSB0cnVzdCBwb2xpY3kuXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMTg5LjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IHRydWUgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyB0byBhZGQgdGhlIHJvb3QgYWNjb3VudCBwcmluY2lwYWwgYmFjaycsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbU1RFUEZVTkNUSU9OU19VU0VfRElTVFJJQlVURURfTUFQX1JFU1VMVF9XUklURVJfVjJdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQXBpRGVmYXVsdCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgcmVzdWx0V3JpdGVyVjIgcHJvcGVydHkgb2YgRGlzdHJpYnV0ZWRNYXAgd2lsbCBiZSB1c2VkIGluc3RlZCBvZiByZXN1bHRXcml0ZXInLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCB0aGUgcmVzdWx0V3JpdGVyVjIgcHJvcGVydHkgaXMgdXNlZCBpbnN0ZWFkIG9mIHJlc3VsdFdyaXRlciBpbiBEaXN0cmlidXRlZE1hcCBjbGFzcy5cbiAgICAgIHJlc3VsdFdyaXRlclYyIHVzZXMgUmVzdWx0V3JpdGVyVjIgY2xhc3MgaW4gU3RlcEZ1bmN0aW9ucyBBU0wgYW5kIGNhbiBoYXZlIGVpdGhlciBCdWNrZXQvUHJlZml4IG9yIFdyaXRlckNvbmZpZyBvciBib3RoLlxuICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xODguMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICAgIGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogJ0Rpc2FibGUgdGhlIGZlYXR1cmUgZmxhZyBhbmQgc2V0IHJlc3VsdFdyaXRlciBpbiBEaXN0cmlidXRlZE1hcCcsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbUzNfVFJVU1RfS0VZX1BPTElDWV9GT1JfU05TX1NVQlNDUklQVElPTlNdOiB7XG4gICAgdHlwZTogRmxhZ1R5cGUuQnVnRml4LFxuICAgIHN1bW1hcnk6ICdBZGQgYW4gUzMgdHJ1c3QgcG9saWN5IHRvIGEgS01TIGtleSByZXNvdXJjZSBwb2xpY3kgZm9yIFNOUyBzdWJzY3JpcHRpb25zLicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICBXaGVuIHRoaXMgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIGEgUzMgdHJ1c3QgcG9saWN5IHdpbGwgYmUgYWRkZWQgdG8gdGhlIEtNUyBrZXkgcmVzb3VyY2UgcG9saWN5IGZvciBlbmNyeXB0ZWQgU05TIHN1YnNjcmlwdGlvbnMuXG4gICAgICAgICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE5NS4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbRUMyX1JFUVVJUkVfUFJJVkFURV9TVUJORVRTX0ZPUl9FR1JFU1NPTkxZSU5URVJORVRHQVRFV0FZXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkJ1Z0ZpeCxcbiAgICBzdW1tYXJ5OiAnV2hlbiBlbmFibGVkLCB0aGUgRWdyZXNzT25seUdhdGV3YXkgcmVzb3VyY2UgaXMgb25seSBjcmVhdGVkIGlmIHByaXZhdGUgc3VibmV0cyBhcmUgZGVmaW5lZCBpbiB0aGUgZHVhbC1zdGFjayBWUEMuJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgRWdyZXNzT25seUdhdGV3YXkgcmVzb3VyY2Ugd2lsbCBub3QgYmUgY3JlYXRlZCB3aGVuIHlvdSBjcmVhdGUgYSB2cGMgd2l0aCBvbmx5IHB1YmxpYyBzdWJuZXRzLlxuICAgICAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xOTYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiB0cnVlLFxuICB9LFxuXG4gIC8vLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtVU0VfUkVTT1VSQ0VJRF9GT1JfVlBDVjJfTUlHUkFUSU9OXToge1xuICAgIHR5cGU6IEZsYWdUeXBlLkFwaURlZmF1bHQsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgdXNlIHJlc291cmNlIElEcyBmb3IgVlBDIFYyIG1pZ3JhdGlvbicsXG4gICAgZGV0YWlsc01kOiBgXG4gICAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZCwgdGhlIFZQQyBWMiBtaWdyYXRpb24gd2lsbCB1c2UgcmVzb3VyY2UgSURzIGluc3RlYWQgb2YgZ2V0QXR0IHJlZmVyZW5jZXNcbiAgICAgICAgZm9yIG1pZ3JhdGluZyByZXNvdXJjZXMgZnJvbSBWUEMgVjEgdG8gVlBDIFYyLiBUaGlzIGhlbHBzIGVuc3VyZSBhIHNtb290aGVyIG1pZ3JhdGlvbiBwYXRoIGJldHdlZW5cbiAgICAgICAgdGhlIHR3byB2ZXJzaW9ucy5cbiAgICAgIGAsXG4gICAgaW50cm9kdWNlZEluOiB7IHYyOiAnMi4xOTYuMCcgfSxcbiAgICByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZSxcbiAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZTogeyB2MjogZmFsc2UgfSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdXNlIGdldEF0dCByZWZlcmVuY2VzIGZvciBWUEMgVjIgbWlncmF0aW9uJyxcbiAgfSxcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFtTM19QVUJMSUNfQUNDRVNTX0JMT0NLRURfQllfREVGQVVMVF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5CdWdGaXgsXG4gICAgc3VtbWFyeTogJ1doZW4gZW5hYmxlZCwgc2V0dGluZyBhbnkgY29tYmluYXRpb24gb2Ygb3B0aW9ucyBmb3IgQmxvY2tQdWJsaWNBY2Nlc3Mgd2lsbCBhdXRvbWF0aWNhbGx5IHNldCB0cnVlIGZvciBhbnkgb3B0aW9ucyBub3QgZGVmaW5lZC4nLFxuICAgIGRldGFpbHNNZDogYFxuICAgICAgV2hlbiBCbG9ja1B1YmxpY0FjY2VzcyBpcyBub3Qgc2V0IGF0IGFsbCwgczMncyBkZWZhdWx0IGJlaGF2aW9yIHdpbGwgYmUgdG8gc2V0IGFsbCBvcHRpb25zIHRvIHRydWUgaW4gYXdzIGNvbnNvbGUuXG4gICAgICBUaGUgcHJldmlvdXMgYmVoYXZpb3IgaW4gY2RrIGJlZm9yZSB0aGlzIGZlYXR1cmUgd2FzOyBpZiBvbmx5IHNvbWUgb2YgdGhlIEJsb2NrUHVibGljQWNjZXNzT3B0aW9ucyB3ZXJlIHNldCAobm90IGFsbCA0KSwgdGhlbiB0aGUgb25lcyB1bmRlZmluZWQgd291bGQgZGVmYXVsdCB0byBmYWxzZS5cbiAgICAgIFRoaXMgaXMgY291bnRlciBpbnR1aXRpdmUgdG8gdGhlIGNvbnNvbGUgYmVoYXZpb3Igd2hlcmUgdGhlIG9wdGlvbnMgd291bGQgc3RhcnQgaW4gdHJ1ZSBzdGF0ZSBhbmQgYSB1c2VyIHdvdWxkIHVuY2hlY2sgdGhlIGJveGVzIGFzIG5lZWRlZC5cbiAgICAgIFRoZSBuZXcgYmVoYXZpb3IgZnJvbSB0aGlzIGZlYXR1cmUgd2lsbCBhbGxvdyBhIHVzZXIsIGZvciBleGFtcGxlLCB0byBzZXQgMSBvZiB0aGUgNCBCbG9ja1B1YmxpY0FjY2Vzc09wc2lvbnMgdG8gZmFsc2UsIGFuZCBvbiBkZXBsb3ltZW50IHRoZSBvdGhlciAzIHdpbGwgcmVtYWluIHRydWUuXG4gICAgYCxcbiAgICBpbnRyb2R1Y2VkSW46IHsgdjI6ICcyLjE5Ni4wJyB9LFxuICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gIH0sXG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBbVVNFX0NES19NQU5BR0VEX0xBTUJEQV9MT0dHUk9VUF06IHtcbiAgICB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0LFxuICAgIHN1bW1hcnk6ICdXaGVuIGVuYWJsZWQsIENESyBjcmVhdGVzIGFuZCBtYW5hZ2VzIGxvZ2dyb3VwIGZvciB0aGUgbGFtYmRhIGZ1bmN0aW9uJyxcbiAgICBkZXRhaWxzTWQ6IGBcbiAgICAgICAgV2hlbiB0aGlzIGZlYXR1cmUgZmxhZyBpcyBlbmFibGVkLCBDREsgd2lsbCBjcmVhdGUgYSBsb2dncm91cCBmb3IgbGFtYmRhIGZ1bmN0aW9uIHdpdGggZGVmYXVsdCBwcm9wZXJ0aWVzXG4gICAgICAgIHdoaWNoIHN1cHBvcnRzIENESyBmZWF0dXJlcyBUYWcgcHJvcGFnYXRpb24sIFByb3BlcnR5IEluamVjdG9ycywgQXNwZWN0c1xuICAgICAgICBpZiB0aGUgY2RrIGFwcCBkb2VzbnQgcGFzcyBhICdsb2dSZXRlbnRpb24nIG9yICdsb2dHcm91cCcgZXhwbGljaXRseS5cbiAgICAgICAgTG9nR3JvdXBzIGNyZWF0ZWQgdmlhICdsb2dSZXRlbnRpb24nIGRvIG5vdCBzdXBwb3J0IFRhZyBwcm9wYWdhdGlvbiwgUHJvcGVydHkgSW5qZWN0b3JzLCBBc3BlY3RzLlxuICAgICAgICBMb2dHcm91cHMgY3JlYXRlZCB2aWEgJ2xvZ0dyb3VwJyBjcmVhdGVkIGluIENESyBzdXBwb3J0IFRhZyBwcm9wYWdhdGlvbiwgUHJvcGVydHkgSW5qZWN0b3JzLCBBc3BlY3RzLlxuXG4gICAgICAgIFdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZGlzYWJsZWQsIGEgbG9nZ3JvdXAgaXMgY3JlYXRlZCBieSBMYW1iZGEgc2VydmljZSBvbiBmaXJzdCBpbnZvY2F0aW9uXG4gICAgICAgIG9mIHRoZSBmdW5jdGlvbiAoZXhpc3RpbmcgYmVoYXZpb3IpLlxuICAgICAgICBMb2dHcm91cHMgY3JlYXRlZCBpbiB0aGlzIHdheSBkbyBub3Qgc3VwcG9ydCBUYWcgcHJvcGFnYXRpb24sIFByb3BlcnR5IEluamVjdG9ycywgQXNwZWN0cy5cblxuICAgICAgICBETyBOT1QgRU5BQkxFOiBJZiB5b3UgaGF2ZSBhbmQgZXhpc3RpbmcgYXBwIGRlZmluaW5nIGEgbGFtYmRhIGZ1bmN0aW9uIGFuZFxuICAgICAgICBoYXZlIG5vdCBzdXBwbGllZCBhIGxvZ0dyb3VwIG9yIGxvZ1JldGVudGlvbiBwcm9wIGFuZCB5b3VyIGxhbWJkYSBmdW5jdGlvbiBoYXNcbiAgICAgICAgZXhlY3V0ZWQgYXQgbGVhc3Qgb25jZSwgdGhlIGxvZ0dyb3VwIGhhcyBiZWVuIGFscmVhZHkgY3JlYXRlZCB3aXRoIHRoZSBzYW1lIG5hbWVcbiAgICAgICAgc28geW91ciBkZXBsb3ltZW50IHdpbGwgc3RhcnQgZmFpbGluZy5cbiAgICAgICAgUmVmZXIgYXdzLWxhbWJkYS9SRUFETUUubWQgZm9yIG1vcmUgZGV0YWlscyBvbiBDdXN0b21pemluZyBMb2cgR3JvdXAgY3JlYXRpb24uXG4gICAgICBgLFxuICAgIGludHJvZHVjZWRJbjogeyB2MjogJzIuMjAwLjAnIH0sXG4gICAgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U6IHsgdjI6IGZhbHNlIH0sXG4gICAgcmVjb21tZW5kZWRWYWx1ZTogdHJ1ZSxcbiAgICBjb21wYXRpYmlsaXR5V2l0aE9sZEJlaGF2aW9yTWQ6ICdEaXNhYmxlIHRoZSBmZWF0dXJlIGZsYWcgdG8gbGV0IGxhbWJkYSBzZXJ2aWNlIGNyZWF0ZSBsb2dHcm91cCBvciBzcGVjaWZ5IGxvZ0dyb3VwIG9yIGxvZ1JldGVudGlvbicsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgQ1VSUkVOVF9NViA9ICd2Mic7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgZnV0dXJlIGZsYWdzIHRoYXQgYXJlIG5vdyBleHBpcmVkLiBUaGlzIGlzIGdvaW5nIHRvIGJlIHVzZWQgdG8gaWRlbnRpZnlcbiAqIGFuZCBibG9jayB1c2FnZXMgb2Ygb2xkIGZlYXR1cmUgZmxhZ3MgaW4gdGhlIG5ldyBtYWpvciB2ZXJzaW9uIG9mIENESy5cbiAqL1xuZXhwb3J0IGNvbnN0IENVUlJFTlRfVkVSU0lPTl9FWFBJUkVEX0ZMQUdTOiBzdHJpbmdbXSA9IE9iamVjdC5lbnRyaWVzKEZMQUdTKVxuICAuZmlsdGVyKChbXywgZmxhZ10pID0+IGZsYWcuaW50cm9kdWNlZEluW0NVUlJFTlRfTVZdID09PSB1bmRlZmluZWQpXG4gIC5tYXAoKFtuYW1lLCBfXSkgPT4gbmFtZSkuc29ydCgpO1xuXG4vKipcbiAqIEZsYWcgdmFsdWVzIHRoYXQgc2hvdWxkIGFwcGx5IGZvciBuZXcgcHJvamVjdHNcbiAqXG4gKiBUaGlzIGNvbnRhaW5zIGZsYWdzIHRoYXQgc2F0aXNmeSBib3RoIGNyaXRlcmlhIG9mOlxuICpcbiAqIC0gVGhleSBhcmUgY29uZmlndXJhYmxlIGZvciB0aGUgY3VycmVudCBtYWpvciB2ZXJzaW9uIGxpbmUuXG4gKiAtIFRoZSByZWNvbW1lbmRlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgdW5jb25maWd1cmVkIHZhbHVlIChpLmUuLFxuICogICBjb25maWd1cmluZyBhIGZsYWcgaXMgdXNlZnVsKVxuICovXG5leHBvcnQgY29uc3QgQ1VSUkVOVExZX1JFQ09NTUVOREVEX0ZMQUdTID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBPYmplY3QuZW50cmllcyhGTEFHUylcbiAgICAuZmlsdGVyKChbXywgZmxhZ10pID0+IGZsYWcuaW50cm9kdWNlZEluW0NVUlJFTlRfTVZdICE9PSB1bmRlZmluZWQpXG4gICAgLmZpbHRlcigoW18sIGZsYWddKSA9PiBmbGFnLnJlY29tbWVuZGVkVmFsdWUgIT09IGZsYWcudW5jb25maWd1cmVkQmVoYXZlc0xpa2U/LltDVVJSRU5UX01WXSlcbiAgICAubWFwKChbbmFtZSwgZmxhZ10pID0+IFtuYW1lLCBmbGFnLnJlY29tbWVuZGVkVmFsdWVdKSxcbik7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgdmFsdWVzIG9mIGVhY2ggb2YgdGhlc2UgZmxhZ3MgaW4gdGhlIGN1cnJlbnQgbWFqb3IgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIGlzIHRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhlIGZsYWcsIHVubGVzcyBpdCdzIG92ZXJyaWRkZW4gdmlhXG4gKiBjb250ZXh0LlxuICpcbiAqIEFkZGluZyBuZXcgZmxhZ3MgaGVyZSBpcyBvbmx5IGFsbG93ZWQgZHVyaW5nIHRoZSBwcmUtcmVsZWFzZSBwZXJpb2Qgb2YgYSBuZXdcbiAqIG1ham9yIHZlcnNpb24hXG4gKi9cbmV4cG9ydCBjb25zdCBDVVJSRU5UX1ZFUlNJT05fRkxBR19ERUZBVUxUUyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhGTEFHUylcbiAgLmZpbHRlcigoW18sIGZsYWddKSA9PiBmbGFnLnVuY29uZmlndXJlZEJlaGF2ZXNMaWtlPy5bQ1VSUkVOVF9NVl0gIT09IHVuZGVmaW5lZClcbiAgLm1hcCgoW25hbWUsIGZsYWddKSA9PiBbbmFtZSwgZmxhZy51bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZT8uW0NVUlJFTlRfTVZdXSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gZnV0dXJlRmxhZ0RlZmF1bHQoZmxhZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHZhbHVlID0gQ1VSUkVOVF9WRVJTSU9OX0ZMQUdfREVGQVVMVFNbZmxhZ10gPz8gZmFsc2U7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgaWYgdGhpcyBlcnJvciBpcyB0aHJvd24gaXQncyBhIGJ1Z1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9uby10aHJvdy1kZWZhdWx0LWVycm9yXG4gICAgdGhyb3cgbmV3IEVycm9yKGBmdXR1cmVGbGFnRGVmYXVsdDogZGVmYXVsdCB0eXBlIG9mIGZsYWcgJyR7ZmxhZ30nIHNob3VsZCBiZSBib29sZWFuLCBnb3QgJyR7dHlwZW9mIHZhbHVlfSdgKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8vIE5vYm9keSBzaG91bGQgaGF2ZSBiZWVuIHVzaW5nIGFueSBvZiB0aGlzLCBidXQgeW91IG5ldmVyIGtub3dcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBDVVJSRU5UX1ZFUlNJT05fRVhQSVJFRF9GTEFHUyBpbnN0ZWFkICovXG5leHBvcnQgY29uc3QgRlVUVVJFX0ZMQUdTX0VYUElSRUQgPSBDVVJSRU5UX1ZFUlNJT05fRVhQSVJFRF9GTEFHUztcblxuLyoqIEBkZXByZWNhdGVkIGRvIG5vdCB1c2UgYXQgYWxsISAqL1xuZXhwb3J0IGNvbnN0IEZVVFVSRV9GTEFHUyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhDVVJSRU5UTFlfUkVDT01NRU5ERURfRkxBR1MpXG4gIC5maWx0ZXIoKFtfLCB2XSkgPT4gdHlwZW9mIHYgPT09ICdib29sZWFuJykpO1xuXG4vKiogQGRlcHJlY2F0ZWQgZG8gbm90IHVzZSBhdCBhbGwhICovXG5leHBvcnQgY29uc3QgTkVXX1BST0pFQ1RfREVGQVVMVF9DT05URVhUID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKENVUlJFTlRMWV9SRUNPTU1FTkRFRF9GTEFHUylcbiAgLmZpbHRlcigoW18sIHZdKSA9PiB0eXBlb2YgdiAhPT0gJ2Jvb2xlYW4nKSk7XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./cxapi\"), exports);\n__exportStar(require(\"./context/vpc\"), exports);\n__exportStar(require(\"./context/ami\"), exports);\n__exportStar(require(\"./context/load-balancer\"), exports);\n__exportStar(require(\"./context/availability-zones\"), exports);\n__exportStar(require(\"./context/endpoint-service-availability-zones\"), exports);\n__exportStar(require(\"./context/security-group\"), exports);\n__exportStar(require(\"./context/key\"), exports);\n__exportStar(require(\"./cloud-artifact\"), exports);\nrequire(\"./cloud-artifact-aug\");\n__exportStar(require(\"./artifacts/asset-manifest-artifact\"), exports);\n__exportStar(require(\"./artifacts/cloudformation-artifact\"), exports);\n__exportStar(require(\"./artifacts/tree-cloud-artifact\"), exports);\n__exportStar(require(\"./artifacts/nested-cloud-assembly-artifact\"), exports);\nrequire(\"./artifacts/nested-cloud-assembly-artifact-aug\");\n__exportStar(require(\"./cloud-assembly\"), exports);\n__exportStar(require(\"./assets\"), exports);\n__exportStar(require(\"./environment\"), exports);\n__exportStar(require(\"./metadata\"), exports);\n__exportStar(require(\"./features\"), exports);\n__exportStar(require(\"./placeholders\"), exports);\n__exportStar(require(\"./app\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLGdEQUE4QjtBQUM5QixnREFBOEI7QUFDOUIsMERBQXdDO0FBQ3hDLCtEQUE2QztBQUM3QyxnRkFBOEQ7QUFDOUQsMkRBQXlDO0FBQ3pDLGdEQUE4QjtBQUM5QixtREFBaUM7QUFDakMsZ0NBQThCO0FBQzlCLHNFQUFvRDtBQUNwRCxzRUFBb0Q7QUFDcEQsa0VBQWdEO0FBQ2hELDZFQUEyRDtBQUMzRCwwREFBd0Q7QUFDeEQsbURBQWlDO0FBQ2pDLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIsNkNBQTJCO0FBQzNCLDZDQUEyQjtBQUMzQixpREFBK0I7QUFDL0Isd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jeGFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQvdnBjJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9hbWknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2xvYWQtYmFsYW5jZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2F2YWlsYWJpbGl0eS16b25lcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQvZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L3NlY3VyaXR5LWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgJy4vY2xvdWQtYXJ0aWZhY3QtYXVnJztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Fzc2V0LW1hbmlmZXN0LWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Nsb3VkZm9ybWF0aW9uLWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL3RyZWUtY2xvdWQtYXJ0aWZhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRhZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGxhY2Vob2xkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SynthesisMessageLevel = exports.PATH_METADATA_KEY = void 0;\n/**\n * The key used when CDK path is embedded in **CloudFormation template** metadata (not cdk metadata).\n */\nexports.PATH_METADATA_KEY = 'aws:cdk:path';\nvar SynthesisMessageLevel;\n(function (SynthesisMessageLevel) {\n SynthesisMessageLevel[\"INFO\"] = \"info\";\n SynthesisMessageLevel[\"WARNING\"] = \"warning\";\n SynthesisMessageLevel[\"ERROR\"] = \"error\";\n})(SynthesisMessageLevel || (exports.SynthesisMessageLevel = SynthesisMessageLevel = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBRWhELElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsNENBQW1CLENBQUE7SUFDbkIsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFJaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFRoZSBrZXkgdXNlZCB3aGVuIENESyBwYXRoIGlzIGVtYmVkZGVkIGluICoqQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUqKiBtZXRhZGF0YSAobm90IGNkayBtZXRhZGF0YSkuXG4gKi9cbmV4cG9ydCBjb25zdCBQQVRIX01FVEFEQVRBX0tFWSA9ICdhd3M6Y2RrOnBhdGgnO1xuXG5leHBvcnQgZW51bSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwge1xuICBJTkZPID0gJ2luZm8nLFxuICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxuICBFUlJPUiA9ICdlcnJvcicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFFbnRyeVJlc3VsdCBleHRlbmRzIGN4c2NoZW1hLk1ldGFkYXRhRW50cnkge1xuICAvKipcbiAgICogVGhlIHBhdGggaW4gd2hpY2ggdGhpcyBlbnRyeSB3YXMgZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdHMgaW4gdGhlIHN0YWNrJ3MgQ29uc3RydWN0IHRyZWVcbiAqL1xuZXhwb3J0IHR5cGUgU3RhY2tNZXRhZGF0YSA9IHsgW3BhdGg6IHN0cmluZ106IGN4c2NoZW1hLk1ldGFkYXRhRW50cnlbXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXNpc01lc3NhZ2Uge1xuICByZWFkb25seSBsZXZlbDogU3ludGhlc2lzTWVzc2FnZUxldmVsO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBlbnRyeTogY3hzY2hlbWEuTWV0YWRhdGFFbnRyeTtcbn1cbiJdfQ==","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentPlaceholders = void 0;\nconst jsiiDeprecationWarnings = require(\"../.warnings.jsii.js\");\nconst JSII_RTTI_SYMBOL_1 = Symbol.for(\"jsii.rtti\");\n/**\n * Placeholders which can be used manifests\n *\n * These can occur both in the Asset Manifest as well as the general\n * Cloud Assembly manifest.\n */\nclass EnvironmentPlaceholders {\n /**\n * Replace the environment placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\n static replace(object, values) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_EnvironmentPlaceholderValues(values);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.replace);\n }\n throw error;\n }\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, values.region);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, values.accountId);\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, values.partition);\n return value;\n });\n }\n /**\n * Like 'replace', but asynchronous\n */\n static async replaceAsync(object, provider) {\n try {\n jsiiDeprecationWarnings._aws_cdk_cx_api_IEnvironmentPlaceholderProvider(provider);\n }\n catch (error) {\n if (process.env.JSII_DEBUG !== \"1\" && error.name === \"DeprecationError\") {\n Error.captureStackTrace(error, this.replaceAsync);\n }\n throw error;\n }\n let needRegion = false;\n let needAccountId = false;\n let needPartition = false;\n this.recurse(object, value => {\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_REGION) > 1) {\n needRegion = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_ACCOUNT) > 1) {\n needAccountId = true;\n }\n if (value.indexOf(EnvironmentPlaceholders.CURRENT_PARTITION) > 1) {\n needPartition = true;\n }\n return value;\n });\n const region = needRegion ? await provider.region() : undefined;\n const accountId = needAccountId ? await provider.accountId() : undefined;\n const partition = needPartition ? await provider.partition() : undefined;\n return this.recurse(object, value => {\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, region ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, accountId ?? 'WONTHAPPEN');\n value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, partition ?? 'WONTHAPPEN');\n return value;\n });\n }\n static recurse(value, cb) {\n if (typeof value === 'string') {\n return cb(value);\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(x => this.recurse(x, cb));\n }\n const ret = {};\n for (const [key, inner] of Object.entries(value)) {\n ret[key] = this.recurse(inner, cb);\n }\n return ret;\n }\n}\nexports.EnvironmentPlaceholders = EnvironmentPlaceholders;\n_a = JSII_RTTI_SYMBOL_1;\nEnvironmentPlaceholders[_a] = { fqn: \"@aws-cdk/cx-api.EnvironmentPlaceholders\", version: \"2.212.0\" };\n/**\n * Insert this into the destination fields to be replaced with the current region\n */\nEnvironmentPlaceholders.CURRENT_REGION = '${AWS::Region}';\n/**\n * Insert this into the destination fields to be replaced with the current account\n */\nEnvironmentPlaceholders.CURRENT_ACCOUNT = '${AWS::AccountId}';\n/**\n * Insert this into the destination fields to be replaced with the current partition\n */\nEnvironmentPlaceholders.CURRENT_PARTITION = '${AWS::Partition}';\n/**\n * A \"replace-all\" function that doesn't require us escaping a literal string to a regex\n */\nfunction replaceAll(s, search, replace) {\n return s.split(search).join(replace);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsTUFBYSx1QkFBdUI7SUFnQmxDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsTUFBb0M7Ozs7Ozs7Ozs7UUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNsQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pGLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckYsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBVyxFQUFFLFFBQXlDOzs7Ozs7Ozs7O1FBQ3JGLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQUMsQ0FBQztZQUNyRixJQUFJLEtB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cnMgd2hpY2ggY2FuIGJlIHVzZWQgbWFuaWZlc3RzXG4gKlxuICogVGhlc2UgY2FuIG9jY3VyIGJvdGggaW4gdGhlIEFzc2V0IE1hbmlmZXN0IGFzIHdlbGwgYXMgdGhlIGdlbmVyYWxcbiAqIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0LlxuICovXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMge1xuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENVUlJFTlRfUkVHSU9OID0gJyR7QVdTOjpSZWdpb259JztcblxuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgYWNjb3VudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDVVJSRU5UX0FDQ09VTlQgPSAnJHtBV1M6OkFjY291bnRJZH0nO1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgdGhpcyBpbnRvIHRoZSBkZXN0aW5hdGlvbiBmaWVsZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgY3VycmVudCBwYXJ0aXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1VSUkVOVF9QQVJUSVRJT04gPSAnJHtBV1M6OlBhcnRpdGlvbn0nO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnMgaW4gYWxsIHN0cmluZ3MgZm91bmQgaW4gYSBjb21wbGV4IG9iamVjdC5cbiAgICpcbiAgICogRHVwbGljYXRlZCBiZXR3ZWVuIGNkay1hc3NldHMgYW5kIGF3cy1jZGsgQ0xJIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIGdvb2Qgc2luZ2xlIHBsYWNlIHRvIHB1dCBpdFxuICAgKiAodGhleSdyZSBub21pbmFsbHkgaW5kZXBlbmRlbnQgdG9vbHMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZXBsYWNlKG9iamVjdDogYW55LCB2YWx1ZXM6IEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlY3Vyc2Uob2JqZWN0LCB2YWx1ZSA9PiB7XG4gICAgICB2YWx1ZSA9IHJlcGxhY2VBbGwodmFsdWUsIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfUkVHSU9OLCB2YWx1ZXMucmVnaW9uKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9BQ0NPVU5ULCB2YWx1ZXMuYWNjb3VudElkKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04sIHZhbHVlcy5wYXJ0aXRpb24pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2UgJ3JlcGxhY2UnLCBidXQgYXN5bmNocm9ub3VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlcGxhY2VBc3luYyhvYmplY3Q6IGFueSwgcHJvdmlkZXI6IElFbnZpcm9ubWVudFBsYWNlaG9sZGVyUHJvdmlkZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBuZWVkUmVnaW9uID0gZmFsc2U7XG4gICAgbGV0IG5lZWRBY2NvdW50SWQgPSBmYWxzZTtcbiAgICBsZXQgbmVlZFBhcnRpdGlvbiA9IGZhbHNlO1xuXG4gICAgdGhpcy5yZWN1cnNlKG9iamVjdCwgdmFsdWUgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04pID4gMSkgeyBuZWVkUmVnaW9uID0gdHJ1ZTsgfVxuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9BQ0NPVU5UKSA+IDEpIHsgbmVlZEFjY291bnRJZCA9IHRydWU7IH1cbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfUEFSVElUSU9OKSA+IDEpIHsgbmVlZFBhcnRpdGlvbiA9IHRydWU7IH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZ2lvbiA9IG5lZWRSZWdpb24gPyBhd2FpdCBwcm92aWRlci5yZWdpb24oKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBuZWVkQWNjb3VudElkID8gYXdhaXQgcHJvdmlkZXIuYWNjb3VudElkKCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFydGl0aW9uID0gbmVlZFBhcnRpdGlvbiA/IGF3YWl0IHByb3ZpZGVyLnBhcnRpdGlvbigpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMucmVjdXJzZShvYmplY3QsIHZhbHVlID0+IHtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04sIHJlZ2lvbiA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX0FDQ09VTlQsIGFjY291bnRJZCA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX1BBUlRJVElPTiwgcGFydGl0aW9uID8/ICdXT05USEFQUEVOJyk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWN1cnNlKHZhbHVlOiBhbnksIGNiOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7IHJldHVybiBjYih2YWx1ZSk7IH1cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkgeyByZXR1cm4gdmFsdWU7IH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHsgcmV0dXJuIHZhbHVlLm1hcCh4ID0+IHRoaXMucmVjdXJzZSh4LCBjYikpOyB9XG5cbiAgICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGlubmVyXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIHJldFtrZXldID0gdGhpcy5yZWN1cnNlKGlubmVyLCBjYik7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlcyBmb3IgdGhlIGVudmlyb25tZW50IHBsYWNlaG9sZGVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcnRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXJvbm1lbnRQbGFjZWhvbGRlclByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmVnaW9uXG4gICAqL1xuICByZWdpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIGFjY291bnRJZCgpOiBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcGFydGl0aW9uXG4gICAqL1xuICBwYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEEgXCJyZXBsYWNlLWFsbFwiIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzIGVzY2FwaW5nIGEgbGl0ZXJhbCBzdHJpbmcgdG8gYSByZWdleFxuICovXG5mdW5jdGlvbiByZXBsYWNlQWxsKHM6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZykge1xuICByZXR1cm4gcy5zcGxpdChzZWFyY2gpLmpvaW4ocmVwbGFjZSk7XG59XG4iXX0=","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _CloudAssemblyError_time;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblyError = void 0;\nconst ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssemblyError');\n/**\n * A CloudAssemblyError is thrown for issues with the synthesized CloudAssembly.\n *\n * These are typically exceptions that are unexpected for end-users,\n * and should only occur during abnormal operation, e.g. when the synthesis\n * didn't fully complete.\n *\n * @internal\n */\nclass CloudAssemblyError extends Error {\n /**\n * The time the error was thrown.\n */\n get time() {\n return __classPrivateFieldGet(this, _CloudAssemblyError_time, \"f\");\n }\n get type() {\n return 'assembly';\n }\n constructor(msg) {\n super(msg);\n _CloudAssemblyError_time.set(this, void 0);\n Object.setPrototypeOf(this, CloudAssemblyError.prototype);\n Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });\n this.name = new.target.name;\n __classPrivateFieldSet(this, _CloudAssemblyError_time, new Date().toISOString(), \"f\");\n }\n}\nexports.CloudAssemblyError = CloudAssemblyError;\n_CloudAssemblyError_time = new WeakMap();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUUvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUczQzs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sdUJBQUEsSUFBSSxnQ0FBTSxDQUFDO0tBQ25CO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxVQUFVLENBQUM7S0FDbkI7SUFFRCxZQUFZLEdBQVc7UUFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBZGIsMkNBQWM7UUFnQlosTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzVCLHVCQUFBLElBQUksNEJBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsTUFBQSxDQUFDO0tBQ3ZDO0NBQ0Y7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQVNTRU1CTFlfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkQXNzZW1ibHlFcnJvcicpO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseUVycm9yIGlzIHRocm93biBmb3IgaXNzdWVzIHdpdGggdGhlIHN5bnRoZXNpemVkIENsb3VkQXNzZW1ibHkuXG4gKlxuICogVGhlc2UgYXJlIHR5cGljYWxseSBleGNlcHRpb25zIHRoYXQgYXJlIHVuZXhwZWN0ZWQgZm9yIGVuZC11c2VycyxcbiAqIGFuZCBzaG91bGQgb25seSBvY2N1ciBkdXJpbmcgYWJub3JtYWwgb3BlcmF0aW9uLCBlLmcuIHdoZW4gdGhlIHN5bnRoZXNpc1xuICogZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRBc3NlbWJseUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAjdGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZXJyb3Igd2FzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGltZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiN0aW1lO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCk6ICdhc3NlbWJseScge1xuICAgIHJldHVybiAnYXNzZW1ibHknO1xuICB9XG5cbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtc2cpO1xuXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIENsb3VkQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLm5hbWUgPSBuZXcudGFyZ2V0Lm5hbWU7XG4gICAgdGhpcy4jdGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAGIC_V2NEXT = exports.FlagType = void 0;\nexports.compareVersions = compareVersions;\nvar FlagType;\n(function (FlagType) {\n /**\n * Change the default behavior of the API\n *\n * The old behavior is still valid, and possible to achieve with source\n * code changes, but we recommend the new behavior instead.\n *\n * Also valid for changes that don't affect CloudFormation, but the CXAPI\n * contract.\n */\n FlagType[FlagType[\"ApiDefault\"] = 0] = \"ApiDefault\";\n /**\n * Address a bug in a way that requires contract breaking or has availability implications for existing infrastructure\n *\n * The old behavior is not recommended, and shouldn't have been possible in the first place.\n * We only have this flag because we can't roll out the fix to everyone\n * automatically for fear of breakage.\n */\n FlagType[FlagType[\"BugFix\"] = 1] = \"BugFix\";\n /**\n * Advertise the presence of this context option in `cdk.json`\n */\n FlagType[FlagType[\"VisibleContext\"] = 2] = \"VisibleContext\";\n /**\n * Use this type for flags that are to be removed on a set date\n */\n FlagType[FlagType[\"Temporary\"] = 3] = \"Temporary\";\n})(FlagType || (exports.FlagType = FlagType = {}));\n/**\n * The magic value that will be substituted at version bump time with the actual\n * new V2 version.\n *\n * Do not import this constant in the `features.ts` file, or the substitution\n * process won't work.\n */\nexports.MAGIC_V2NEXT = 'V2NEXT';\n/**\n * Compare two versions, returning -1, 0, or 1.\n */\nfunction compareVersions(a, b) {\n if (a === b) {\n return 0;\n }\n if (a === undefined) {\n return -1;\n }\n if (b === undefined) {\n return 1;\n }\n const as = a.split('.').map(x => parseInt(x, 10));\n const bs = b.split('.').map(x => parseInt(x, 10));\n if (a === exports.MAGIC_V2NEXT) {\n return bs[0] <= 2 ? 1 : -1;\n }\n if (b === exports.MAGIC_V2NEXT) {\n return as[0] <= 2 ? -1 : 1;\n }\n for (let i = 0; i < Math.min(as.length, bs.length); i++) {\n if (as[i] < bs[i]) {\n return -1;\n }\n if (as[i] > bs[i]) {\n return 1;\n }\n }\n return as.length - bs.length;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy1tb2RlbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZsYWctbW9kZWxpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUZBLDBDQWdCQztBQXpHRCxJQUFZLFFBOEJYO0FBOUJELFdBQVksUUFBUTtJQUNsQjs7Ozs7Ozs7T0FRRztJQUNILG1EQUFVLENBQUE7SUFFVjs7Ozs7O09BTUc7SUFDSCwyQ0FBTSxDQUFBO0lBRU47O09BRUc7SUFDSCwyREFBYyxDQUFBO0lBRWQ7O09BRUc7SUFDSCxpREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQTlCVyxRQUFRLHdCQUFSLFFBQVEsUUE4Qm5CO0FBK0NEOzs7Ozs7R0FNRztBQUNVLFFBQUEsWUFBWSxHQUFHLFFBQVEsQ0FBQztBQUVyQzs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxDQUFxQixFQUFFLENBQXFCO0lBQzFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQzFCLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLENBQUMsQ0FBQztJQUFDLENBQUM7SUFFbEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbEQsSUFBSSxDQUFDLEtBQUssb0JBQVksRUFBRSxDQUFDO1FBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsS0FBSyxvQkFBWSxFQUFFLENBQUM7UUFBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEQsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZsYWdUeXBlIHtcbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgQVBJXG4gICAqXG4gICAqIFRoZSBvbGQgYmVoYXZpb3IgaXMgc3RpbGwgdmFsaWQsIGFuZCBwb3NzaWJsZSB0byBhY2hpZXZlIHdpdGggc291cmNlXG4gICAqIGNvZGUgY2hhbmdlcywgYnV0IHdlIHJlY29tbWVuZCB0aGUgbmV3IGJlaGF2aW9yIGluc3RlYWQuXG4gICAqXG4gICAqIEFsc28gdmFsaWQgZm9yIGNoYW5nZXMgdGhhdCBkb24ndCBhZmZlY3QgQ2xvdWRGb3JtYXRpb24sIGJ1dCB0aGUgQ1hBUElcbiAgICogY29udHJhY3QuXG4gICAqL1xuICBBcGlEZWZhdWx0LFxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGEgYnVnIGluIGEgd2F5IHRoYXQgcmVxdWlyZXMgY29udHJhY3QgYnJlYWtpbmcgb3IgaGFzIGF2YWlsYWJpbGl0eSBpbXBsaWNhdGlvbnMgZm9yIGV4aXN0aW5nIGluZnJhc3RydWN0dXJlXG4gICAqXG4gICAqIFRoZSBvbGQgYmVoYXZpb3IgaXMgbm90IHJlY29tbWVuZGVkLCBhbmQgc2hvdWxkbid0IGhhdmUgYmVlbiBwb3NzaWJsZSBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAqIFdlIG9ubHkgaGF2ZSB0aGlzIGZsYWcgYmVjYXVzZSB3ZSBjYW4ndCByb2xsIG91dCB0aGUgZml4IHRvIGV2ZXJ5b25lXG4gICAqIGF1dG9tYXRpY2FsbHkgZm9yIGZlYXIgb2YgYnJlYWthZ2UuXG4gICAqL1xuICBCdWdGaXgsXG5cbiAgLyoqXG4gICAqIEFkdmVydGlzZSB0aGUgcHJlc2VuY2Ugb2YgdGhpcyBjb250ZXh0IG9wdGlvbiBpbiBgY2RrLmpzb25gXG4gICAqL1xuICBWaXNpYmxlQ29udGV4dCxcblxuICAvKipcbiAgICogVXNlIHRoaXMgdHlwZSBmb3IgZmxhZ3MgdGhhdCBhcmUgdG8gYmUgcmVtb3ZlZCBvbiBhIHNldCBkYXRlXG4gICAqL1xuICBUZW1wb3JhcnksXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxhZ0luZm9CYXNlIHtcbiAgLyoqIFNpbmdsZS1saW5lIGRlc2NyaXB0aW9uIGZvciB0aGUgZmxhZyAqL1xuICByZWFkb25seSBzdW1tYXJ5OiBzdHJpbmc7XG4gIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhlIGZsYWcgKE1hcmtkb3duKSAqL1xuICByZWFkb25seSBkZXRhaWxzTWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFZlcnNpb24gbnVtYmVyIHRoZSBmbGFnIHdhcyBpbnRyb2R1Y2VkIGluIGVhY2ggdmVyc2lvbiBsaW5lLlxuICAgKlxuICAgKiBgdW5kZWZpbmVkYCBtZWFucyBmbGFnIGlzIG5vdCBjb25maWd1cmFibGUgaW4gdGhhdCBsaW5lOyBidXQgaWZcbiAgICogYHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlYCBpcyBzZXQgZm9yIHRoYXQgbGluZSwgd2Ugd2lsbCBkb2N1bWVudCB0aGUgZGVmYXVsdFxuICAgKiBiZWhhdmlvciAoZXZlbiB0aG91Z2ggaXQncyBub3QgY29uZmlndXJhYmxlKS5cbiAgICovXG4gIHJlYWRvbmx5IGludHJvZHVjZWRJbjogeyB2MT86IHN0cmluZzsgdjI/OiBzdHJpbmcgfTtcbiAgLyoqIFdoYXQgeW91IHdvdWxkIGxpa2UgbmV3IHVzZXJzIHRvIHNldCB0aGlzIGZsYWcgdG8gKGRlZmF1bHQgaW4gbmV3IHByb2plY3RzKSAqL1xuICByZWFkb25seSByZWNvbW1lbmRlZFZhbHVlOiBhbnk7XG4gIC8qKlxuICAgKiBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIENMSSBsaWJyYXJ5IHdpbGwgYmVoYXZlIGFzIGlmIHRoZSBmbGFnIHdhcyBzZXQgdG8gPHRoaXM+LlxuICAgKlxuICAgKiBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgd2Ugd2lsbCBhc3N1bWUgeW91IG1lYW50IGBmYWxzZWAsIGFuZCB0aGUgYHJlY29tbWVuZGVkVmFsdWVgIGlzIGB0cnVlYC5cbiAgICpcbiAgICogVGhpcyB2YWx1ZSBpcyBtb3N0IHVzZWZ1bCBmb3IgZmxhZ3MgdGhhdCBhbGxvdyBvcHRpbmcgb3V0IG9mIHVuZGVzaXJhYmxlIGJlaGF2aW9yLiBUbyBhdm9pZCBoYXZpbmdcbiAgICogdG8gd29yZCBvdXIgZmxhZyBuYW1lIGxpa2UgYHNraXBVbmRlc2lyYWJsZUJlaGF2aW9yYCBhbmQgcGVvcGxlIGhhdmluZyB0byBkbyBib29sZWFuIGd5bW5hc3RpY3MgaW5cbiAgICogdGhlaXIgaGVhZCwgd2Ugd2lsbCBuYW1lIHRoZSBmbGFnIGBkb1VuZGVzaXJhYmxlQmVoYXZpb3JgLCBzZXRcbiAgICogYHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlOiB0cnVlYCwgYW5kIGByZWNvbW1lbmRlZFZhbHVlOiBmYWxzZWAuXG4gICAqXG4gICAqIEFnYWluOiB0aGUgdmFsdWUgeW91IHB1dCBoZXJlIHNob3VsZCBkZXNjcmliZSB3aGF0ZXZlciB2YWx1ZSBnZXRzIHVzIHRoZVxuICAgKiBsZWdhY3kgYmVoYXZpb3IsIGZyb20gYmVmb3JlIHRoaXMgZmxhZyB3YXMgaW50cm9kdWNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHVuY29uZmlndXJlZEJlaGF2ZXNMaWtlPzogeyB2MT86IGFueTsgdjI/OiBhbnkgfTtcbn1cblxuLyoqIEZsYWcgaW5mb3JtYXRpb24sIGFkZGluZyByZXF1aXJlZCBmaWVsZHMgaWYgcHJlc2VudCAqL1xuZXhwb3J0IHR5cGUgRmxhZ0luZm8gPSBGbGFnSW5mb0Jhc2UgJiAoXG4gIHwgeyByZWFkb25seSB0eXBlOiBGbGFnVHlwZS5BcGlEZWZhdWx0O1xuXG4gICAgLyoqIERlc2NyaWJlIGhvdyB0byB1c2UgdGhlIEFQSSB0byBhY2hpZXZlIHByZS1mbGFnIGJlaGF2aW9yLCBpZiB0aGUgZmxhZyBpcyBzZXQgKE1hcmtkb3duKSAqL1xuICAgIHJlYWRvbmx5IGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZDogc3RyaW5nOyB9XG4gIHwgeyByZWFkb25seSB0eXBlOiBGbGFnVHlwZS5CdWdGaXg7XG4gICAgLyoqIERlc2NyaWJlIGhvdyB0byBkZWFsIHdpdGggdGhlIGNoYW5nZSBpZiB0aGUgZmxhZyBpcyBzZXQgKE1hcmtkb3duKSAqL1xuICAgIHJlYWRvbmx5IGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZD86IHN0cmluZzsgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogRmxhZ1R5cGUuVmlzaWJsZUNvbnRleHQgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogRmxhZ1R5cGUuVGVtcG9yYXJ5O1xuICAgIHJlYWRvbmx5IGNvbXBhdGliaWxpdHlXaXRoT2xkQmVoYXZpb3JNZD86IHN0cmluZzsgfVxuKTtcblxuLyoqXG4gKiBUaGUgbWFnaWMgdmFsdWUgdGhhdCB3aWxsIGJlIHN1YnN0aXR1dGVkIGF0IHZlcnNpb24gYnVtcCB0aW1lIHdpdGggdGhlIGFjdHVhbFxuICogbmV3IFYyIHZlcnNpb24uXG4gKlxuICogRG8gbm90IGltcG9ydCB0aGlzIGNvbnN0YW50IGluIHRoZSBgZmVhdHVyZXMudHNgIGZpbGUsIG9yIHRoZSBzdWJzdGl0dXRpb25cbiAqIHByb2Nlc3Mgd29uJ3Qgd29yay5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BR0lDX1YyTkVYVCA9ICdWMk5FWFQnO1xuXG4vKipcbiAqIENvbXBhcmUgdHdvIHZlcnNpb25zLCByZXR1cm5pbmcgLTEsIDAsIG9yIDEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlVmVyc2lvbnMoYTogc3RyaW5nIHwgdW5kZWZpbmVkLCBiOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICBpZiAoYSA9PT0gYikgeyByZXR1cm4gMDsgfVxuICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiAtMTsgfVxuICBpZiAoYiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiAxOyB9XG5cbiAgY29uc3QgYXMgPSBhLnNwbGl0KCcuJykubWFwKHggPT4gcGFyc2VJbnQoeCwgMTApKTtcbiAgY29uc3QgYnMgPSBiLnNwbGl0KCcuJykubWFwKHggPT4gcGFyc2VJbnQoeCwgMTApKTtcblxuICBpZiAoYSA9PT0gTUFHSUNfVjJORVhUKSB7IHJldHVybiBic1swXSA8PSAyID8gMSA6IC0xOyB9XG4gIGlmIChiID09PSBNQUdJQ19WMk5FWFQpIHsgcmV0dXJuIGFzWzBdIDw9IDIgPyAtMSA6IDE7IH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKGFzLmxlbmd0aCwgYnMubGVuZ3RoKTsgaSsrKSB7XG4gICAgaWYgKGFzW2ldIDwgYnNbaV0pIHsgcmV0dXJuIC0xOyB9XG4gICAgaWYgKGFzW2ldID4gYnNbaV0pIHsgcmV0dXJuIDE7IH1cbiAgfVxuICByZXR1cm4gYXMubGVuZ3RoIC0gYnMubGVuZ3RoO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.topologicalSort = topologicalSort;\nconst error_1 = require(\"./private/error\");\n/**\n * Return a topological sort of all elements of xs, according to the given dependency functions\n *\n * Dependencies outside the referenced set are ignored.\n *\n * Not a stable sort, but in order to keep the order as stable as possible, we'll sort by key\n * among elements of equal precedence.\n */\nfunction topologicalSort(xs, keyFn, depFn) {\n const remaining = new Map();\n for (const element of xs) {\n const key = keyFn(element);\n remaining.set(key, { key, element, dependencies: depFn(element) });\n }\n const ret = new Array();\n while (remaining.size > 0) {\n // All elements with no more deps in the set can be ordered\n const selectable = Array.from(remaining.values()).filter(e => e.dependencies.every(d => !remaining.has(d)));\n selectable.sort((a, b) => a.key < b.key ? -1 : b.key < a.key ? 1 : 0);\n for (const selected of selectable) {\n ret.push(selected.element);\n remaining.delete(selected.key);\n }\n // If we didn't make any progress, we got stuck\n if (selectable.length === 0) {\n throw new error_1.CloudAssemblyError(`Could not determine ordering between: ${Array.from(remaining.keys()).join(', ')}`);\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wb3NvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b3Bvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLDBDQTBCQztBQXZDRCwyQ0FBcUQ7QUFLckQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBSSxFQUFlLEVBQUUsS0FBaUIsRUFBRSxLQUFpQjtJQUN0RixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUNwRCxLQUFLLE1BQU0sT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsT0FBTyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLDJEQUEyRDtRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELCtDQUErQztRQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLHlDQUF5QyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL3ByaXZhdGUvZXJyb3InO1xuXG5leHBvcnQgdHlwZSBLZXlGdW5jPFQ+ID0gKHg6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIERlcEZ1bmM8VD4gPSAoeDogVCkgPT4gc3RyaW5nW107XG5cbi8qKlxuICogUmV0dXJuIGEgdG9wb2xvZ2ljYWwgc29ydCBvZiBhbGwgZWxlbWVudHMgb2YgeHMsIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZGVwZW5kZW5jeSBmdW5jdGlvbnNcbiAqXG4gKiBEZXBlbmRlbmNpZXMgb3V0c2lkZSB0aGUgcmVmZXJlbmNlZCBzZXQgYXJlIGlnbm9yZWQuXG4gKlxuICogTm90IGEgc3RhYmxlIHNvcnQsIGJ1dCBpbiBvcmRlciB0byBrZWVwIHRoZSBvcmRlciBhcyBzdGFibGUgYXMgcG9zc2libGUsIHdlJ2xsIHNvcnQgYnkga2V5XG4gKiBhbW9uZyBlbGVtZW50cyBvZiBlcXVhbCBwcmVjZWRlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9wb2xvZ2ljYWxTb3J0PFQ+KHhzOiBJdGVyYWJsZTxUPiwga2V5Rm46IEtleUZ1bmM8VD4sIGRlcEZuOiBEZXBGdW5jPFQ+KTogVFtdIHtcbiAgY29uc3QgcmVtYWluaW5nID0gbmV3IE1hcDxzdHJpbmcsIFRvcG9FbGVtZW50PFQ+PigpO1xuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgeHMpIHtcbiAgICBjb25zdCBrZXkgPSBrZXlGbihlbGVtZW50KTtcbiAgICByZW1haW5pbmcuc2V0KGtleSwgeyBrZXksIGVsZW1lbnQsIGRlcGVuZGVuY2llczogZGVwRm4oZWxlbWVudCkgfSk7XG4gIH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VD4oKTtcbiAgd2hpbGUgKHJlbWFpbmluZy5zaXplID4gMCkge1xuICAgIC8vIEFsbCBlbGVtZW50cyB3aXRoIG5vIG1vcmUgZGVwcyBpbiB0aGUgc2V0IGNhbiBiZSBvcmRlcmVkXG4gICAgY29uc3Qgc2VsZWN0YWJsZSA9IEFycmF5LmZyb20ocmVtYWluaW5nLnZhbHVlcygpKS5maWx0ZXIoZSA9PiBlLmRlcGVuZGVuY2llcy5ldmVyeShkID0+ICFyZW1haW5pbmcuaGFzKGQpKSk7XG5cbiAgICBzZWxlY3RhYmxlLnNvcnQoKGEsIGIpID0+IGEua2V5IDwgYi5rZXkgPyAtMSA6IGIua2V5IDwgYS5rZXkgPyAxIDogMCk7XG5cbiAgICBmb3IgKGNvbnN0IHNlbGVjdGVkIG9mIHNlbGVjdGFibGUpIHtcbiAgICAgIHJldC5wdXNoKHNlbGVjdGVkLmVsZW1lbnQpO1xuICAgICAgcmVtYWluaW5nLmRlbGV0ZShzZWxlY3RlZC5rZXkpO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGRpZG4ndCBtYWtlIGFueSBwcm9ncmVzcywgd2UgZ290IHN0dWNrXG4gICAgaWYgKHNlbGVjdGFibGUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBDb3VsZCBub3QgZGV0ZXJtaW5lIG9yZGVyaW5nIGJldHdlZW46ICR7QXJyYXkuZnJvbShyZW1haW5pbmcua2V5cygpKS5qb2luKCcsICcpfWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmludGVyZmFjZSBUb3BvRWxlbWVudDxUPiB7XG4gIGtleTogc3RyaW5nO1xuICBkZXBlbmRlbmNpZXM6IHN0cmluZ1tdO1xuICBlbGVtZW50OiBUO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types/database\"), exports);\n__exportStar(require(\"./types/resource\"), exports);\n__exportStar(require(\"./types/augmentations\"), exports);\n__exportStar(require(\"./types/event\"), exports);\n__exportStar(require(\"./types/metrics\"), exports);\n__exportStar(require(\"./types/diff\"), exports);\n__exportStar(require(\"./types/common\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyxtREFBaUM7QUFDakMsd0RBQXNDO0FBQ3RDLGdEQUE4QjtBQUM5QixrREFBZ0M7QUFDaEMsK0NBQTZCO0FBQzdCLGlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMvZGF0YWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9yZXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2F1Z21lbnRhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL21ldHJpY3MnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvY29tbW9uJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVnbWVudGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9hdWdtZW50YXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBdWdtZW50YXRpb25zIGZvciBhIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGVcbiAqXG4gKiBBdWdtZW50YXRpb25zIGFyZSBhIGRlcHJlY2F0ZWQgbWVjaGFuaXNtIGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgbWV0cmljc1xuICogZnVuY3Rpb25zIGZvciBjZXJ0YWluIHJlc291cmNlcywgdXRpbGl6aW5nIFR5cGVTY3JpcHQgbWl4aW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQXVnbWVudGF0aW9uIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIE1ldHJpYyBhdWdtZW50YXRpb25zIGZvciB0aGlzIHJlc291cmNlIHR5cGVcbiAgICovXG4gIG1ldHJpY3M/OiBSZXNvdXJjZU1ldHJpY0F1Z21lbnRhdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGNsYXNzIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGtlYmFiIGNhc2VkIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWUgKyAnLWJhc2UnXG4gICAqL1xuICBiYXNlQ2xhc3NGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgbmFtZSArICdCYXNlJ1xuICAgKi9cbiAgYmFzZUNsYXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBpbnRlcmZhY2UgdG8gYmUgXCJhdWdtZW50ZWRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzYW1lIGFzIGBgY2xhc3NGaWxlYGAuXG4gICAqL1xuICBpbnRlcmZhY2VGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHRvIGJlIFwiYXVnbWVudGVkXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdJJyArIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWVcbiAgICovXG4gIGludGVyZmFjZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSXNBdWdtZW50ZWRSZXNvdXJjZSA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgUmVzb3VyY2VBdWdtZW50YXRpb24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljQXVnbWVudGF0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG9mIG1ldHJpY3MgZm9yIHRoaXMgc2VydmljZVxuICAgKi9cbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSByZXNvdXJjZSBjbGFzcyB0aGF0IHByb3ZpZGUgdmFsdWVzIGZvciB0aGUgZGltZW5zaW9uc1xuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYHsgUXVldWVOYW1lOiAncXVldWVOYW1lJyB9YCBzYXlzIHRoYXQgdGhlIG1ldHJpYyBoYXMgYSBgUXVldWVOYW1lYFxuICAgKiBkaW1lbnNpb24sIGZvciB3aGljaCB0aGUgdmFsdWUgY2FuIGJlIG9idGFpbmVkIGJ5IHJlYWRpbmcgYHRoaXMucXVldWVOYW1lYC5cbiAgICovXG4gIGRpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWNzIGZvciB0aGlzIHJlc291cmNlXG4gICAqL1xuICBtZXRyaWNzOiBSZXNvdXJjZU1ldHJpY1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTWV0cmljIHtcbiAgLyoqXG4gICAqIFVwcGVyY2FzZS1maXJzdCBtZXRyaWMgbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudGF0aW9uIGxpbmVcbiAgICovXG4gIGRvY3VtZW50YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGV2ZW4gY291bnQgKDEgZ2V0cyBlbWl0dGVkIGV2ZXJ5IHRpbWUgc29tZXRoaW5nIG9jY3VycylcbiAgICpcbiAgICogQGRlZmF1bHQgTWV0cmljVHlwZS5BdHRyaWJcbiAgICovXG4gIHR5cGU/OiBNZXRyaWNUeXBlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRyaWNUeXBlID1cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgbWVhc3VyaW5nIGEgYXR0cmlidXRlIG9mIHRoZSBldmVudC5cbiAgICpcbiAgICogVHlwaWNhbCBleGFtcGxlcyBvZiB0aGlzIHdvdWxkIGJlIGR1cmF0aW9uLCBvciByZXF1ZXN0IHNpemUsIG9yIHNpbWlsYXIuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGFnZ3JlZ2F0ZSBmb3IgdGhpcyB0eXBlIG9mIGV2ZW50IGlzIFwiQXZnXCIuXG4gICAqL1xuICB8ICdhdHRyaWInXG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0cmljIGlzIGVtaXR0ZWQgZm9yIGV2ZW50cywgYW5kIHRoZSB2YWx1ZSBpcyBhbHdheXMgYDFgLlxuICAgKlxuICAgKiBPbmx5IFwiU3VtXCIgaXMgYSBtZWFuaW5nZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljOyBhbGwgb3RoZXJcbiAgICogYWdncmVnYXRpb25zIHdpbGwgb25seSBldmVyIHByb2R1Y2UgdGhlIHZhbHVlIGAxYC5cbiAgICovXG4gIHwgJ2NvdW50J1xuXG4gIC8qKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBlbWl0dGVkIHBlcmlvZGljYWxseSwgcmVwcmVzZW50aW5nIGEgc3lzdGVtIHByb3BlcnR5LlxuICAgKlxuICAgKiBUaGUgbWV0cmljIG1lYXN1cmVzIHNvbWUgZ2xvYmFsIGV2ZXItY2hhbmdpbmcgcHJvcGVydHksIGFuZCBkb2VzIG5vdFxuICAgKiBtZWFzdXJlIGV2ZW50cy4gVGhlIG1vc3QgdXNlZnVsIGFnZ3JlZ2F0ZSBvZiB0aGlzIHR5cGUgb2YgbWV0cmljIGlzIFwiTWF4XCIuXG4gICAqL1xuICB8ICdnYXVnZSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5LCBSZWZlcmVuY2UgfSBmcm9tICdAY2RrbGFicy90c2tiJztcblxuZXhwb3J0IHR5cGUgR2VuZXJpY1Byb3BlcnR5VHlwZTxUIGV4dGVuZHMgRW50aXR5PiA9XG4gIHwgUHJpbWl0aXZlVHlwZVxuICB8IEdlbmVyaWNEZWZpbml0aW9uUmVmZXJlbmNlPFQ+XG4gIHwgQnVpbHRpblRhZ1R5cGVcbiAgfCBBcnJheVR5cGU8R2VuZXJpY1Byb3BlcnR5VHlwZTxUPj5cbiAgfCBNYXBUeXBlPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+XG4gIHwgVHlwZVVuaW9uPEdlbmVyaWNQcm9wZXJ0eVR5cGU8VD4+O1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVUeXBlID1cbiAgfCBTdHJpbmdUeXBlXG4gIHwgTnVtYmVyVHlwZVxuICB8IEludGVnZXJUeXBlXG4gIHwgQm9vbGVhblR5cGVcbiAgfCBKc29uVHlwZVxuICB8IERhdGVUaW1lVHlwZVxuICB8IE51bGxUeXBlXG4gIHwgQnVpbHRpblRhZ1R5cGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdzdHJpbmcnO1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogc3RyaW5nW107XG59XG4vKipcbiAqIFRoZSBcImxlZ2FjeVwiIHRhZyB0eXBlICh1c2VkIGluIHRoZSBvbGQgcmVzb3VyY2Ugc3BlYylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsdGluVGFnVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICd0YWcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlclR5cGUge1xuICByZWFkb25seSB0eXBlOiAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdpbnRlZ2VyJztcbiAgcmVhZG9ubHkgYWxsb3dlZFZhbHVlcz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2Jvb2xlYW4nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25UeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2pzb24nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lVHlwZSB7XG4gIHJlYWRvbmx5IHR5cGU6ICdkYXRlLXRpbWUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bGxUeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogJ251bGwnO1xufVxuXG4vKipcbiAqXG4gKiBUIGlzIHRoZSBlbnRpdHkgdHlwZSBmb3IgY29tcG91bmQgb2JqZWN0cy5cbiAqXG4gKiBGb3IgZXhhbXBsZTogVHlwZURlZmluaXRpb24sIEV2ZW50VHlwZURlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY0RlZmluaXRpb25SZWZlcmVuY2U8VCBleHRlbmRzIEVudGl0eT4ge1xuICByZWFkb25seSB0eXBlOiAncmVmJztcbiAgcmVhZG9ubHkgcmVmZXJlbmNlOiBSZWZlcmVuY2U8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2FycmF5JztcbiAgcmVhZG9ubHkgZWxlbWVudDogRTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ21hcCc7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVVuaW9uPEU+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ3VuaW9uJztcbiAgcmVhZG9ubHkgdHlwZXM6IEVbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichSpecDatabase = void 0;\nexports.emptyDatabase = emptyDatabase;\nexports.loadDatabase = loadDatabase;\nconst fs_1 = require(\"fs\");\nconst zlib_1 = require(\"zlib\");\nconst tskb_1 = require(\"@cdklabs/tskb\");\nfunction emptyDatabase() {\n return new tskb_1.Database({\n resource: (0, tskb_1.entityCollection)().index({\n cloudFormationType: (0, tskb_1.fieldIndex)('cloudFormationType', tskb_1.stringCmp),\n }),\n region: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n service: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n cloudFormationNamespace: (0, tskb_1.fieldIndex)('cloudFormationNamespace', tskb_1.stringCmp),\n }),\n eventTypeDefinition: (0, tskb_1.entityCollection)(),\n typeDefinition: (0, tskb_1.entityCollection)(),\n augmentations: (0, tskb_1.entityCollection)(),\n metric: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n namespace: (0, tskb_1.fieldIndex)('namespace', tskb_1.stringCmp),\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n dimensionSet: (0, tskb_1.entityCollection)().index({\n dedupKey: (0, tskb_1.fieldIndex)('dedupKey', tskb_1.stringCmp),\n }),\n event: (0, tskb_1.entityCollection)().index({\n name: (0, tskb_1.fieldIndex)('name', tskb_1.stringCmp),\n }),\n }, (r) => ({\n hasResource: r.relationship('service', 'resource'),\n regionHasResource: r.relationship('region', 'resource'),\n regionHasService: r.relationship('region', 'service'),\n usesType: r.relationship('resource', 'typeDefinition'),\n isAugmented: r.relationship('resource', 'augmentations'),\n usesDimensionSet: r.relationship('metric', 'dimensionSet'),\n resourceHasMetric: r.relationship('resource', 'metric'),\n serviceHasMetric: r.relationship('service', 'metric'),\n resourceHasDimensionSet: r.relationship('resource', 'dimensionSet'),\n serviceHasDimensionSet: r.relationship('service', 'dimensionSet'),\n resourceHasEvent: r.relationship('resource', 'event'),\n serviceHasEvent: r.relationship('service', 'event'),\n eventUsesType: r.relationship('event', 'eventTypeDefinition'),\n }));\n}\nasync function loadDatabase(pathToDb) {\n const db = emptyDatabase();\n const contents = await fs_1.promises.readFile(pathToDb);\n const json = pathToDb.endsWith('.gz') ? (0, zlib_1.gunzipSync)(contents).toString('utf-8') : contents.toString('utf-8');\n db.load(JSON.parse(json));\n return db;\n}\n/**\n * Helpers for working with a SpecDatabase\n */\nclass RichSpecDatabase {\n constructor(db) {\n this.db = db;\n }\n /**\n * Find all resources of a given type\n */\n resourceByType(cfnType, operation = 'resourceByType') {\n const res = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType);\n if (res.length === 0) {\n throw new Error(`${operation}: no such resource: ${cfnType}`);\n }\n return res[0];\n }\n /**\n * All type definitions used by a certain resource\n */\n resourceTypeDefs(cfnType) {\n const resource = this.db.lookup('resource', 'cloudFormationType', 'equals', cfnType).only();\n return this.db.follow('usesType', resource).map((x) => x.entity);\n }\n /**\n * Find a type definition from a given property type\n */\n tryFindDef(type) {\n return type.type === 'ref' ? this.db.get('typeDefinition', type.reference.$ref) : undefined;\n }\n}\nexports.RichSpecDatabase = RichSpecDatabase;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLHNDQTRDQztBQUVELG9DQU1DO0FBOUVELDJCQUFvQztBQUNwQywrQkFBa0M7QUFDbEMsd0NBQWtGO0FBd0JsRixTQUFnQixhQUFhO0lBQzNCLE9BQU8sSUFBSSxlQUFRLENBQ2pCO1FBQ0UsUUFBUSxFQUFFLElBQUEsdUJBQWdCLEdBQVksQ0FBQyxLQUFLLENBQUM7WUFDM0Msa0JBQWtCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLG9CQUFvQixFQUFFLGdCQUFTLENBQUM7U0FDaEUsQ0FBQztRQUNGLE1BQU0sRUFBRSxJQUFBLHVCQUFnQixHQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7U0FDcEMsQ0FBQztRQUNGLE9BQU8sRUFBRSxJQUFBLHVCQUFnQixHQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3pDLElBQUksRUFBRSxJQUFBLGlCQUFVLEVBQUMsTUFBTSxFQUFFLGdCQUFTLENBQUM7WUFDbkMsdUJBQXVCLEVBQUUsSUFBQSxpQkFBVSxFQUFDLHlCQUF5QixFQUFFLGdCQUFTLENBQUM7U0FDMUUsQ0FBQztRQUNGLG1CQUFtQixFQUFFLElBQUEsdUJBQWdCLEdBQXVCO1FBQzVELGNBQWMsRUFBRSxJQUFBLHVCQUFnQixHQUFrQjtRQUNsRCxhQUFhLEVBQUUsSUFBQSx1QkFBZ0IsR0FBd0I7UUFDdkQsTUFBTSxFQUFFLElBQUEsdUJBQWdCLEdBQVUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUEsaUJBQVUsRUFBQyxNQUFNLEVBQUUsZ0JBQVMsQ0FBQztZQUNuQyxTQUFTLEVBQUUsSUFBQSxpQkFBVSxFQUFDLFdBQVcsRUFBRSxnQkFBUyxDQUFDO1lBQzdDLFFBQVEsRUFBRSxJQUFBLGlC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LHVCQUF1QixPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLElBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM5RixDQUFDO0NBQ0Y7QUE1QkQsNENBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBndW56aXBTeW5jIH0gZnJvbSAnemxpYic7XG5pbXBvcnQgeyBEYXRhYmFzZSwgZW50aXR5Q29sbGVjdGlvbiwgZmllbGRJbmRleCwgc3RyaW5nQ21wIH0gZnJvbSAnQGNka2xhYnMvdHNrYic7XG5pbXBvcnQgeyBJc0F1Z21lbnRlZFJlc291cmNlLCBSZXNvdXJjZUF1Z21lbnRhdGlvbiB9IGZyb20gJy4vYXVnbWVudGF0aW9ucyc7XG5pbXBvcnQgeyBSZXNvdXJjZUhhc0V2ZW50LCBFdmVudCwgRXZlbnRVc2VzVHlwZSwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgc2VydmljZUhhc0V2ZW50IH0gZnJvbSAnLi9ldmVudCc7XG5pbXBvcnQge1xuICBEaW1lbnNpb25TZXQsXG4gIE1ldHJpYyxcbiAgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQsXG4gIFNlcnZpY2VIYXNEaW1lbnNpb25TZXQsXG4gIFVzZXNEaW1lbnNpb25TZXQsXG4gIFJlc291cmNlSGFzTWV0cmljLFxuICBTZXJ2aWNlSGFzTWV0cmljLFxufSBmcm9tICcuL21ldHJpY3MnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFNlcnZpY2UsXG4gIFR5cGVEZWZpbml0aW9uLFxuICBQcm9wZXJ0eVR5cGUsXG4gIFJlZ2lvbixcbiAgSGFzUmVzb3VyY2UsXG4gIFJlZ2lvbkhhc1Jlc291cmNlLFxuICBSZWdpb25IYXNTZXJ2aWNlLFxuICBVc2VzVHlwZSxcbn0gZnJvbSAnLi9yZXNvdXJjZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eURhdGFiYXNlKCkge1xuICByZXR1cm4gbmV3IERhdGFiYXNlKFxuICAgIHtcbiAgICAgIHJlc291cmNlOiBlbnRpdHlDb2xsZWN0aW9uPFJlc291cmNlPigpLmluZGV4KHtcbiAgICAgICAgY2xvdWRGb3JtYXRpb25UeXBlOiBmaWVsZEluZGV4KCdjbG91ZEZvcm1hdGlvblR5cGUnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICByZWdpb246IGVudGl0eUNvbGxlY3Rpb248UmVnaW9uPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIHNlcnZpY2U6IGVudGl0eUNvbGxlY3Rpb248U2VydmljZT4oKS5pbmRleCh7XG4gICAgICAgIG5hbWU6IGZpZWxkSW5kZXgoJ25hbWUnLCBzdHJpbmdDbXApLFxuICAgICAgICBjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZTogZmllbGRJbmRleCgnY2xvdWRGb3JtYXRpb25OYW1lc3BhY2UnLCBzdHJpbmdDbXApLFxuICAgICAgfSksXG4gICAgICBldmVudFR5cGVEZWZpbml0aW9uOiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50VHlwZURlZmluaXRpb24+KCksXG4gICAgICB0eXBlRGVmaW5pdGlvbjogZW50aXR5Q29sbGVjdGlvbjxUeXBlRGVmaW5pdGlvbj4oKSxcbiAgICAgIGF1Z21lbnRhdGlvbnM6IGVudGl0eUNvbGxlY3Rpb248UmVzb3VyY2VBdWdtZW50YXRpb24+KCksXG4gICAgICBtZXRyaWM6IGVudGl0eUNvbGxlY3Rpb248TWV0cmljPigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICAgIG5hbWVzcGFjZTogZmllbGRJbmRleCgnbmFtZXNwYWNlJywgc3RyaW5nQ21wKSxcbiAgICAgICAgZGVkdXBLZXk6IGZpZWxkSW5kZXgoJ2RlZHVwS2V5Jywgc3RyaW5nQ21wKSxcbiAgICAgIH0pLFxuICAgICAgZGltZW5zaW9uU2V0OiBlbnRpdHlDb2xsZWN0aW9uPERpbWVuc2lvblNldD4oKS5pbmRleCh7XG4gICAgICAgIGRlZHVwS2V5OiBmaWVsZEluZGV4KCdkZWR1cEtleScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICAgIGV2ZW50OiBlbnRpdHlDb2xsZWN0aW9uPEV2ZW50PigpLmluZGV4KHtcbiAgICAgICAgbmFtZTogZmllbGRJbmRleCgnbmFtZScsIHN0cmluZ0NtcCksXG4gICAgICB9KSxcbiAgICB9LFxuICAgIChyKSA9PiAoe1xuICAgICAgaGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPEhhc1Jlc291cmNlPignc2VydmljZScsICdyZXNvdXJjZScpLFxuICAgICAgcmVnaW9uSGFzUmVzb3VyY2U6IHIucmVsYXRpb25zaGlwPFJlZ2lvbkhhc1Jlc291cmNlPigncmVnaW9uJywgJ3Jlc291cmNlJyksXG4gICAgICByZWdpb25IYXNTZXJ2aWNlOiByLnJlbGF0aW9uc2hpcDxSZWdpb25IYXNTZXJ2aWNlPigncmVnaW9uJywgJ3NlcnZpY2UnKSxcbiAgICAgIHVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxVc2VzVHlwZT4oJ3Jlc291cmNlJywgJ3R5cGVEZWZpbml0aW9uJyksXG4gICAgICBpc0F1Z21lbnRlZDogci5yZWxhdGlvbnNoaXA8SXNBdWdtZW50ZWRSZXNvdXJjZT4oJ3Jlc291cmNlJywgJ2F1Z21lbnRhdGlvbnMnKSxcbiAgICAgIHVzZXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFVzZXNEaW1lbnNpb25TZXQ+KCdtZXRyaWMnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICByZXNvdXJjZUhhc01ldHJpYzogci5yZWxhdGlvbnNoaXA8UmVzb3VyY2VIYXNNZXRyaWM+KCdyZXNvdXJjZScsICdtZXRyaWMnKSxcbiAgICAgIHNlcnZpY2VIYXNNZXRyaWM6IHIucmVsYXRpb25zaGlwPFNlcnZpY2VIYXNNZXRyaWM+KCdzZXJ2aWNlJywgJ21ldHJpYycpLFxuICAgICAgcmVzb3VyY2VIYXNEaW1lbnNpb25TZXQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRGltZW5zaW9uU2V0PigncmVzb3VyY2UnLCAnZGltZW5zaW9uU2V0JyksXG4gICAgICBzZXJ2aWNlSGFzRGltZW5zaW9uU2V0OiByLnJlbGF0aW9uc2hpcDxTZXJ2aWNlSGFzRGltZW5zaW9uU2V0Pignc2VydmljZScsICdkaW1lbnNpb25TZXQnKSxcbiAgICAgIHJlc291cmNlSGFzRXZlbnQ6IHIucmVsYXRpb25zaGlwPFJlc291cmNlSGFzRXZlbnQ+KCdyZXNvdXJjZScsICdldmVudCcpLFxuICAgICAgc2VydmljZUhhc0V2ZW50OiByLnJlbGF0aW9uc2hpcDxzZXJ2aWNlSGFzRXZlbnQ+KCdzZXJ2aWNlJywgJ2V2ZW50JyksXG4gICAgICBldmVudFVzZXNUeXBlOiByLnJlbGF0aW9uc2hpcDxFdmVudFVzZXNUeXBlPignZXZlbnQnLCAnZXZlbnRUeXBlRGVmaW5pdGlvbicpLFxuICAgIH0pLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZERhdGFiYXNlKHBhdGhUb0RiOiBzdHJpbmcpIHtcbiAgY29uc3QgZGIgPSBlbXB0eURhdGFiYXNlKCk7XG4gIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aFRvRGIpO1xuICBjb25zdCBqc29uID0gcGF0aFRvRGIuZW5kc1dpdGgoJy5neicpID8gZ3VuemlwU3luYyhjb250ZW50cykudG9TdHJpbmcoJ3V0Zi04JykgOiBjb250ZW50cy50b1N0cmluZygndXRmLTgnKTtcbiAgZGIubG9hZChKU09OLnBhcnNlKGpzb24pKTtcbiAgcmV0dXJuIGRiO1xufVxuXG5leHBvcnQgdHlwZSBTcGVjRGF0YWJhc2UgPSBSZXR1cm5UeXBlPHR5cGVvZiBlbXB0eURhdGFiYXNlPjtcblxuLyoqXG4gKiBIZWxwZXJzIGZvciB3b3JraW5nIHdpdGggYSBTcGVjRGF0YWJhc2VcbiAqL1xuZXhwb3J0IGNsYXNzIFJpY2hTcGVjRGF0YWJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRiOiBTcGVjRGF0YWJhc2UpIHt9XG5cbiAgLyoqXG4gICAqIEZpbmQgYWxsIHJlc291cmNlcyBvZiBhIGdpdmVuIHR5cGVcbiAgICovXG4gIHB1YmxpYyByZXNvdXJjZUJ5VHlwZShjZm5UeXBlOiBzdHJpbmcsIG9wZXJhdGlvbiA9ICdyZXNvdXJjZUJ5VHlwZScpOiBSZXNvdXJjZSB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5kYi5sb29rdXAoJ3Jlc291cmNlJywgJ2Nsb3VkRm9ybWF0aW9uVHlwZScsICdlcXVhbHMnLCBjZm5UeXBlKTtcbiAgICBpZiAocmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29wZXJhdGlvbn06IG5vIHN1Y2ggcmVzb3VyY2U6ICR7Y2ZuVHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgdHlwZSBkZWZpbml0aW9ucyB1c2VkIGJ5IGEgY2VydGFpbiByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlc291cmNlVHlwZURlZnMoY2ZuVHlwZTogc3RyaW5nKTogcmVhZG9ubHkgVHlwZURlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLmRiLmxvb2t1cCgncmVzb3VyY2UnLCAnY2xvdWRGb3JtYXRpb25UeXBlJywgJ2VxdWFscycsIGNmblR5cGUpLm9ubHkoKTtcbiAgICByZXR1cm4gdGhpcy5kYi5mb2xsb3coJ3VzZXNUeXBlJywgcmVzb3VyY2UpLm1hcCgoeCkgPT4geC5lbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSB0eXBlIGRlZmluaXRpb24gZnJvbSBhIGdpdmVuIHByb3BlcnR5IHR5cGVcbiAgICovXG4gIHB1YmxpYyB0cnlGaW5kRGVmKHR5cGU6IFByb3BlcnR5VHlwZSk6IFR5cGVEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdHlwZS50eXBlID09PSAncmVmJyA/IHRoaXMuZGIuZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHR5cGUucmVmZXJlbmNlLiRyZWYpIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudCwgRXZlbnRUeXBlRGVmaW5pdGlvbiwgRXZlbnRQcm9wZXJ0eSB9IGZyb20gJy4vZXZlbnQnO1xuaW1wb3J0IHsgRGltZW5zaW9uLCBEaW1lbnNpb25TZXQsIE1ldHJpYyB9IGZyb20gJy4vbWV0cmljcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIFByb3BlcnR5LCBSZXNvdXJjZSwgU2VydmljZSwgVHlwZURlZmluaXRpb24gfSBmcm9tICcuL3Jlc291cmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGVjRGF0YWJhc2VEaWZmIHtcbiAgc2VydmljZXM6IE1hcERpZmY8U2VydmljZSwgVXBkYXRlZFNlcnZpY2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3REaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogRVtdO1xuICByZWFkb25seSByZW1vdmVkPzogRVtdO1xuICByZWFkb25seSB1cGRhdGVkPzogRURbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBEaWZmPEUsIEVEPiB7XG4gIHJlYWRvbmx5IGFkZGVkPzogUmVjb3JkPHN0cmluZywgRT47XG4gIHJlYWRvbmx5IHJlbW92ZWQ/OiBSZWNvcmQ8c3RyaW5nLCBFPjtcbiAgcmVhZG9ubHkgdXBkYXRlZD86IFJlY29yZDxzdHJpbmcsIEVEPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkU2VydmljZSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPFNlcnZpY2VbJ25hbWUnXT47XG4gIHJlYWRvbmx5IHNob3J0TmFtZT86IFNjYWxhckRpZmY8U2VydmljZVsnc2hvcnROYW1lJ10+O1xuICByZWFkb25seSBjYXBpdGFsaXplZD86IFNjYWxhckRpZmY8U2VydmljZVsnY2FwaXRhbGl6ZWQnXT47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uTmFtZXNwYWNlPzogU2NhbGFyRGlmZjxTZXJ2aWNlWydjbG91ZEZvcm1hdGlvbk5hbWVzcGFjZSddPjtcbiAgcmVhZG9ubHkgcmVzb3VyY2VEaWZmPzogTWFwRGlmZjxSZXNvdXJjZSwgVXBkYXRlZFJlc291cmNlPjtcbiAgcmVhZG9ubHkgbWV0cmljcz86IE1hcERpZmY8TWV0cmljLCBDaGFuZ2VkTWV0cmljPjtcbiAgcmVhZG9ubHkgZXZlbnREaWZmPzogTWFwRGlmZjxFdmVudCwgVXBkYXRlZEV2ZW50Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkTWV0cmljIHtcbiAgcmVhZG9ubHkgc3RhdGlzdGljPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGltZW5zaW9uU2V0cz86IE1hcERpZmY8RGltZW5zaW9uU2V0LCBDaGFuZ2VkRGltZW5zaW9uU2V0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkRGltZW5zaW9uU2V0IHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgZGltZW5zaW9ucz86IFNjYWxhckRpZmY8RGltZW5zaW9uW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uVHlwZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25UcmFuc2Zvcm0/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IGRvY3VtZW50YXRpb24/OiBTY2FsYXJEaWZmPHN0cmluZz47XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBNYXBEaWZmPFByb3BlcnR5LCBVcGRhdGVkUHJvcGVydHk+O1xuICByZWFkb25seSBhdHRyaWJ1dGVzPzogTWFwRGlmZjxBdHRyaWJ1dGUsIFVwZGF0ZWRBdHRyaWJ1dGU+O1xuICByZWFkb25seSBhcm5UZW1wbGF0ZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgaXNTdGF0ZWZ1bD86IFNjYWxhckRpZmY8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IHRhZ0luZm9ybWF0aW9uPzogU2NhbGFyRGlmZjxSZXNvdXJjZVsndGFnSW5mb3JtYXRpb24nXT47XG4gIHJlYWRvbmx5IHNjcnV0aW5pemFibGU/OiBTY2FsYXJEaWZmPFJlc291cmNlWydzY3J1dGluaXphYmxlJ10+O1xuICByZWFkb25seSB2ZW5kZWRMb2dzPzogU2NhbGFyRGlmZjxSZXNvdXJjZVsndmVuZGVkTG9ncyddPjtcbiAgcmVhZG9ubHkgdHlwZURlZmluaXRpb25EaWZmPzogTWFwRGlmZjxUeXBlRGVmaW5pdGlvbiwgVXBkYXRlZFR5cGVEZWZpbml0aW9uPjtcbiAgcmVhZG9ubHkgcHJpbWFyeUlkZW50aWZpZXI/OiBTY2FsYXJEaWZmPHN0cmluZ1tdPjtcbiAgcmVhZG9ubHkgY2ZuUmVmSWRlbnRpZmllcj86IFNjYWxhckRpZmY8c3RyaW5nW10+O1xuICByZWFkb25seSBtZXRyaWNzPzogTWFwRGlmZjxNZXRyaWMsIENoYW5nZWRNZXRyaWM+O1xuICByZWFkb25seSBldmVudHM/OiBNYXBEaWZmPEV2ZW50LCBVcGRhdGVkRXZlbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRQcm9wZXJ0eSB7XG4gIHJlYWRvbmx5IG9sZDogUHJvcGVydHk7XG4gIHJlYWRvbmx5IG5ldzogUHJvcGVydHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZEF0dHJpYnV0ZSB7XG4gIHJlYWRvbmx5IG9sZDogQXR0cmlidXRlO1xuICByZWFkb25seSBuZXc6IEF0dHJpYnV0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkVHlwZURlZmluaXRpb24ge1xuICByZWFkb25seSBuYW1lPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkb2N1bWVudGF0aW9uPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogTWFwRGlmZjxQcm9wZXJ0eSwgVXBkYXRlZFByb3BlcnR5PjtcbiAgcmVhZG9ubHkgbXVzdFJlbmRlckZvckJ3Q29tcGF0PzogU2NhbGFyRGlmZjxib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVkRXZlbnQge1xuICByZWFkb25seSBuYW1lPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgc291cmNlPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSBkZXRhaWxUeXBlPzogU2NhbGFyRGlmZjxzdHJpbmc+O1xuICByZWFkb25seSByZXNvdXJjZXNGaWVsZD86IFNjYWxhckRpZmY8RXZlbnRbJ3Jlc291cmNlc0ZpZWxkJ10+O1xuICByZWFkb25seSByb290UHJvcGVydHk/OiBTY2FsYXJEaWZmPEV2ZW50Wydyb290UHJvcGVydHknXT47XG4gIHJlYWRvbmx5IHR5cGVEZWZpbml0aW9uRGlmZj86IE1hcERpZmY8RXZlbnRUeXBlRGVmaW5pdGlvbiwgVXBkYXRlZEV2ZW50VHlwZURlZmluaXRpb24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRFdmVudFR5cGVEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgbmFtZT86IFNjYWxhckRpZmY8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IE1hcERpZmY8RXZlbnRQcm9wZXJ0eSwgVXBkYXRlZEV2ZW50UHJvcGVydHk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZWRFdmVudFByb3BlcnR5IHtcbiAgcmVhZG9ubHkgb2xkOiBFdmVudFByb3BlcnR5O1xuICByZWFkb25seSBuZXc6IEV2ZW50UHJvcGVydHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhbGFyRGlmZjxBPiB7XG4gIHJlYWRvbmx5IG9sZD86IEE7XG4gIHJlYWRvbmx5IG5ldz86IEE7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgUmVmZXJlbmNlLCBSZWxhdGlvbnNoaXAgfSBmcm9tICdAY2RrbGFicy90c2tiJztcbmltcG9ydCB7IEdlbmVyaWNQcm9wZXJ0eVR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgU2VydmljZSB9IGZyb20gJy4vcmVzb3VyY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIEV2ZW50QnJpZGdlIHNjaGVtYVxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNAT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRXZlbnRCcmlkZ2Ugc2NoZW1hIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSB2YWx1ZSBmb3IgdGhpcyBldmVudFxuICAgKlxuICAgKiBAZXhhbXBsZSBhd3MuczNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRldGFpbFR5cGUgdmFsdWUgZm9yIHRoaXMgZXZlbnRcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0IENyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbFR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEVhY2ggaXRlbSBpcyBhIGBSZXNvdXJjZUZpZWxkYCBkZXNjcmliaW5nIHdoaWNoIHByb3BlcnR5IChmaWVsZE5hbWUpXG4gICAqIGluIHRoZSBldmVudCBwYXlsb2FkIGNvbnRhaW5zIGEgcmVzb3VyY2UgaWRlbnRpZmllciBhbmQgdGhlIGFzc29jaWF0ZWRcbiAgICogdHlwZWQgZGVmaW5pdGlvbiBmb3IgdGhhdCByZXNvdXJjZSAodGhlIGB0eXBlYCByZWZlcmVuY2UpLlxuICAgKlxuICAgKiBAZXhhbXBsZSBPYmplY3QgQ3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzRmllbGQ6IEFycmF5PFJlc291cmNlRmllbGQ+O1xuICAvKipcbiAgICogcm9vdFByb3BlcnR5IGhhcyB0aGUgcmVmZXJlbmNlIGZvciB0aGUgcm9vdCBwcm9wZXJ0eSBmb3IgdGhpcyBldmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdFByb3BlcnR5OiBSZWZlcmVuY2U8RXZlbnRUeXBlRGVmaW5pdGlvbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VGaWVsZCB7XG4gIHR5cGU6IFJlZmVyZW5jZTxFdmVudFR5cGVEZWZpbml0aW9uPjtcbiAgZmllbGROYW1lPzogc3RyaW5nO1xuICByZXNvdXJjZTogUmVmZXJlbmNlPFJlc291cmNlPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNFdmVudCA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBzZXJ2aWNlSGFzRXZlbnQgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgRXZlbnQ+O1xuXG5leHBvcnQgdHlwZSBFdmVudFByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBFdmVudFByb3BlcnR5PjtcbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqL1xuICB0eXBlOiBHZW5lcmljUHJvcGVydHlUeXBlPEV2ZW50VHlwZURlZmluaXRpb24+O1xuICAvKipcbiAgICogSXMgdGhpcyBwcm9wZXJ0eSByZXF1aXJlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHR5cGVcbiAgICpcbiAgICogQGV4YW1wbGUgT2JqZWN0Q3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBFdmVudFByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50VXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8RXZlbnQsIEV2ZW50VHlwZURlZmluaXRpb24+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFNlcnZpY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuLyoqXG4gKiBBIE1ldHJpYyBEaW1lbnNpb24gKG5vdCBhbiBlbnRpdHkpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGRpbWVuc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQSBwb3RlbnRpYWwgdmFsdWUgZm9yIHRoaXMgZGltZW5zaW9uXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNldCBvZiBNZXRyaWMgRGltZW5zaW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uU2V0IGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIEEgdW5pcXVlIHZhbHVlIHVzZWQgdG8gZGVkdXBsaWNhdGUgdGhlIGVudGl0eVxuICAgKi9cbiAgZGVkdXBLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoaXMgZGltZW5zaW9uIHNldFxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRpbWVuc2lvbnMgaW4gdGhpcyBzZXRcbiAgICovXG4gIGRpbWVuc2lvbnM6IERpbWVuc2lvbltdO1xufVxuZXhwb3J0IHR5cGUgUmVzb3VyY2VIYXNEaW1lbnNpb25TZXQgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIERpbWVuc2lvblNldD47XG5leHBvcnQgdHlwZSBTZXJ2aWNlSGFzRGltZW5zaW9uU2V0ID0gUmVsYXRpb25zaGlwPFNlcnZpY2UsIERpbWVuc2lvblNldD47XG5cbi8qKlxuICogQSBDbG91ZFdhdGNoIE1ldHJpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpYyBleHRlbmRzIEVudGl0eSB7XG4gIC8qKlxuICAgKiBNZXRyaWMgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIG1ldHJpY1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCAoc3VnZ2VzdGVkKSBzdGF0aXN0aWMgZm9yIHRoaXMgbWV0cmljXG4gICAqL1xuICByZWFkb25seSBzdGF0aXN0aWM6IHN0cmluZztcbiAgLyoqXG4gICAqIEEgdW5pcXVlIHZhbHVlIHVzZWQgdG8gZGVkdXBsaWNhdGUgdGhlIGVudGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgZGVkdXBLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIG9mIHRoZSBtZXRyaWNcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgVXNlc0RpbWVuc2lvblNldCA9IFJlbGF0aW9uc2hpcDxNZXRyaWMsIERpbWVuc2lvblNldD47XG5leHBvcnQgdHlwZSBSZXNvdXJjZUhhc01ldHJpYyA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgTWV0cmljPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VIYXNNZXRyaWMgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgTWV0cmljPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RichPropertyType = exports.PropertyScrutinyType = exports.ResourceScrutinyType = exports.Deprecation = exports.RichAttribute = exports.RichProperty = exports.RichTypedField = void 0;\nexports.isCollectionType = isCollectionType;\nconst sorting_1 = require(\"../util/sorting\");\nclass RichTypedField {\n constructor(field) {\n this.field = field;\n if (field === undefined) {\n throw new Error('Field is undefined');\n }\n }\n types() {\n return [...(this.field.previousTypes ?? []), this.field.type];\n }\n /**\n * Update the type of this property with a new type\n *\n * Only if it's not in the set of types already.\n *\n * Returns true if the type was updated.\n */\n updateType(type) {\n const richType = new RichPropertyType(type);\n // Only add this type if we don't already have it. We are only doing comparisons where 'integer' and 'number'\n // are treated the same, for all other types we need strict equality. We used to use 'assignableTo' as a\n // condition, but these types will be rendered in both co- and contravariant positions, and so we really can't\n // do much better than full equality.\n if (this.types().some((t) => richType.equals(t))) {\n // Nothing to do, type is already in there.\n // But if the new type has allowedValues, merge them into the current type.\n if ((type.type === 'string' || type.type === 'integer') && type.allowedValues) {\n if (this.field.type.type === type.type) {\n this.field.type.allowedValues = type.allowedValues;\n }\n }\n return false;\n }\n // Special case: if the new type is `string` and the old type is `date-time`, we assume this is\n // the same type but we dropped some formatting information. No need to make this a separate type.\n if (type.type === 'string' && this.types().some((t) => t.type === 'date-time')) {\n return false;\n }\n // Special case: if the new type is `string` and the old type is `json`, we assume this is a correction\n // of a bug; the old type was incorrectly typed as Json, and we're now correcting this. Since this was a\n // bug, we don't need to keep the old type: it was never accurate.\n //\n // We could be more broad, and only maintain type history if we go from\n // `json` -> `named type`, or `named type` -> `named type`. For now I'm\n // wary of destroying too much information; we'll just do the fix specifically\n // for `json` -> `string`.\n if (type.type === 'string' && this.field.type.type === 'json') {\n this.field.type = type;\n return true;\n }\n if (!this.field.previousTypes) {\n this.field.previousTypes = [];\n }\n this.field.previousTypes.push(this.field.type);\n this.field.type = type;\n return true;\n }\n}\nexports.RichTypedField = RichTypedField;\nclass RichProperty extends RichTypedField {\n constructor(property) {\n super(property);\n }\n}\nexports.RichProperty = RichProperty;\nclass RichAttribute extends RichTypedField {\n constructor(attr) {\n super(attr);\n }\n}\nexports.RichAttribute = RichAttribute;\nvar Deprecation;\n(function (Deprecation) {\n /**\n * Not deprecated\n */\n Deprecation[\"NONE\"] = \"NONE\";\n /**\n * Warn about use\n */\n Deprecation[\"WARN\"] = \"WARN\";\n /**\n * Do not emit the value at all\n *\n * (Handle properties that were incorrectly added to the spec)\n */\n Deprecation[\"IGNORE\"] = \"IGNORE\";\n})(Deprecation || (exports.Deprecation = Deprecation = {}));\nfunction isCollectionType(x) {\n return x.type === 'array' || x.type === 'map';\n}\n/**\n * Mark a resource as a resource that needs additional scrutiy when added, removed or changed\n *\n * Used to mark resources that represent security policies.\n */\nvar ResourceScrutinyType;\n(function (ResourceScrutinyType) {\n /**\n * No additional scrutiny\n */\n ResourceScrutinyType[\"None\"] = \"None\";\n /**\n * An externally attached policy document to a resource\n *\n * (Common for SQS, SNS, S3, ...)\n */\n ResourceScrutinyType[\"ResourcePolicyResource\"] = \"ResourcePolicyResource\";\n /**\n * This is an IAM policy on an identity resource\n *\n * (Basically saying: this is AWS::IAM::Policy)\n */\n ResourceScrutinyType[\"IdentityPolicyResource\"] = \"IdentityPolicyResource\";\n /**\n * This is a Lambda Permission policy\n */\n ResourceScrutinyType[\"LambdaPermission\"] = \"LambdaPermission\";\n /**\n * An ingress rule object\n */\n ResourceScrutinyType[\"IngressRuleResource\"] = \"IngressRuleResource\";\n /**\n * A set of egress rules\n */\n ResourceScrutinyType[\"EgressRuleResource\"] = \"EgressRuleResource\";\n /**\n * AWS::SSO::Assignment\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoAssignmentResource\"] = \"SsoAssignmentResource\";\n /**\n * AWS::SSO::InstanceAccessControlAttributeConfiguration\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoInstanceACAConfigResource\"] = \"SsoInstanceACAConfigResource\";\n /**\n * AWS::SSO::PermissionSet\n *\n * IAM Identity Center (formerly known as SSO)\n */\n ResourceScrutinyType[\"SsoPermissionSet\"] = \"SsoPermissionSet\";\n})(ResourceScrutinyType || (exports.ResourceScrutinyType = ResourceScrutinyType = {}));\n/**\n * Mark a property as a property that needs additional scrutiny when it changes\n *\n * Used to mark sensitive properties that have security-related implications.\n */\nvar PropertyScrutinyType;\n(function (PropertyScrutinyType) {\n /**\n * No additional scrutiny\n */\n PropertyScrutinyType[\"None\"] = \"None\";\n /**\n * This is an IAM policy directly on a resource\n */\n PropertyScrutinyType[\"InlineResourcePolicy\"] = \"InlineResourcePolicy\";\n /**\n * Either an AssumeRolePolicyDocument or a dictionary of policy documents\n */\n PropertyScrutinyType[\"InlineIdentityPolicies\"] = \"InlineIdentityPolicies\";\n /**\n * A list of managed policies (on an identity resource)\n */\n PropertyScrutinyType[\"ManagedPolicies\"] = \"ManagedPolicies\";\n /**\n * A set of ingress rules (on a security group)\n */\n PropertyScrutinyType[\"IngressRules\"] = \"IngressRules\";\n /**\n * A set of egress rules (on a security group)\n */\n PropertyScrutinyType[\"EgressRules\"] = \"EgressRules\";\n})(PropertyScrutinyType || (exports.PropertyScrutinyType = PropertyScrutinyType = {}));\nclass RichPropertyType {\n constructor(type) {\n this.type = type;\n }\n equals(rhs) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return rhs.type === this.type.type;\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).equals(rhs.element);\n case 'ref':\n return rhs.type === 'ref' && this.type.reference.$ref === rhs.reference.$ref;\n case 'union':\n const lhsKey = this.sortKey();\n const rhsKey = new RichPropertyType(rhs).sortKey();\n return lhsKey.length === rhsKey.length && lhsKey.every((l, i) => l === rhsKey[i]);\n }\n }\n /**\n * Whether the current type is JavaScript-equal to the RHS type\n *\n * Same as normal equality, but consider `integer` and `number` the same types.\n */\n javascriptEquals(rhs) {\n switch (this.type.type) {\n case 'number':\n case 'integer':\n // Widening\n return rhs.type === 'integer' || rhs.type === 'number';\n case 'array':\n case 'map':\n return rhs.type === this.type.type && new RichPropertyType(this.type.element).javascriptEquals(rhs.element);\n case 'union':\n if (rhs.type !== 'union') {\n return false;\n }\n // Every type in this union needs to be equal one type in RHS\n return this.type.types.every((t1) => rhs.types.some((t2) => new RichPropertyType(t1).javascriptEquals(t2)));\n default:\n // For anything else, need strict equality\n return this.equals(rhs);\n }\n }\n /**\n * Whether the current type is assignable to the RHS type.\n *\n * This is means every type member of the LHS must be present in the RHS type\n */\n assignableTo(rhs) {\n const extractMembers = (type) => (type.type == 'union' ? type.types : [type]);\n const asRichType = (type) => new RichPropertyType(type);\n const rhsMembers = extractMembers(rhs);\n for (const lhsMember of extractMembers(this.type).map(asRichType)) {\n if (!rhsMembers.some((type) => lhsMember.equals(type))) {\n return false;\n }\n }\n return true;\n }\n /**\n * Return a version of this type, but with all type unions in a regularized order\n */\n normalize(db) {\n switch (this.type.type) {\n case 'array':\n case 'map':\n return new RichPropertyType({\n type: this.type.type,\n element: new RichPropertyType(this.type.element).normalize(db).type,\n });\n case 'union':\n const types = this.type.types\n .map((t) => new RichPropertyType(t).normalize(db))\n .map((t) => [t, t.sortKey(db)]);\n types.sort((0, sorting_1.sortKeyComparator)(([_, sortKey]) => sortKey));\n return new RichPropertyType({\n type: 'union',\n types: types.map(([t, _]) => t.type),\n });\n default:\n return this;\n }\n }\n stringify(db, withId = true) {\n switch (this.type.type) {\n case 'string':\n return this.type.allowedValues ? `string<${this.type.allowedValues.join('|')}>` : 'string';\n case 'integer':\n return this.type.allowedValues ? `integer<${this.type.allowedValues.join('|')}>` : 'integer';\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'tag':\n return this.type.type;\n case 'array':\n return `Array<${new RichPropertyType(this.type.element).stringify(db, withId)}>`;\n case 'map':\n return `Map`;\n case 'ref':\n const type = db.get('typeDefinition', this.type.reference);\n return withId ? `${type.name}(${this.type.reference.$ref})` : type.name;\n case 'union':\n return this.type.types.map((t) => new RichPropertyType(t).stringify(db, withId)).join(' | ');\n }\n }\n /**\n * Return a sortable key based on this type\n *\n * If a database is given, type definitions will be sorted based on type name,\n * otherwise on identifier\n */\n sortKey(db) {\n switch (this.type.type) {\n case 'integer':\n case 'boolean':\n case 'date-time':\n case 'json':\n case 'null':\n case 'number':\n case 'string':\n case 'tag':\n return ['0', this.type.type];\n case 'array':\n case 'map':\n return ['1', this.type.type, ...new RichPropertyType(this.type.element).sortKey(db)];\n case 'ref':\n return ['2', this.type.type, db?.get('typeDefinition', this.type.reference)?.name ?? this.type.reference.$ref];\n case 'union':\n const typeKeys = this.type.types.map((t) => new RichPropertyType(t).sortKey(db));\n typeKeys.sort((0, sorting_1.sortKeyComparator)((x) => x));\n return ['3', this.type.type, ...typeKeys.flatMap((x) => x)];\n }\n }\n}\nexports.RichPropertyType = RichPropertyType;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK1NBLDRDQUVDO0FBOVNELDZDQUFvRDtBQWtNcEQsTUFBYSxjQUFjO0lBQ3pCLFlBQTZCLEtBQStDO1FBQS9DLFVBQUssR0FBTCxLQUFLLENBQTBDO1FBQzFFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxJQUFrQjtRQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVDLDZHQUE2RztRQUM3Ryx3R0FBd0c7UUFDeEcsOEdBQThHO1FBQzlHLHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pELDJDQUEyQztZQUMzQywyRUFBMkU7WUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JB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QWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSwyQkFBaUIsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXhKRCw0Q0F3SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0BjZGtsYWJzL3Rza2InO1xuaW1wb3J0IHsgQXJyYXlUeXBlLCBNYXBUeXBlLCBHZW5lcmljUHJvcGVydHlUeXBlLCBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFNwZWNEYXRhYmFzZSB9IGZyb20gJy4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgc29ydEtleUNvbXBhcmF0b3IgfSBmcm9tICcuLi91dGlsL3NvcnRpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpdGlvbiBleHRlbmRzIEVudGl0eSB7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBIYXNSZWdpb24gPSBSZWxhdGlvbnNoaXA8UGFydGl0aW9uLCBSZWdpb24sIHsgaXNQcmltYXJ5PzogYm9vbGVhbiB9PjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIGV4dGVuZHMgRW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHNlcnZpY2UgaW5jbHVkaW5nIHRoZSBncm91cCBwcmVmaXgsIGxvd2VyY2FzZWQgYW5kIGh5cGhlbmF0ZWQuXG4gICAqXG4gICAqIEUuZy4gYEFXUzo6RHluYW1vREJgIC0+IGBhd3MtZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGF3cy1keW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogT25seSB0aGUgc2VydmljZSBwYXJ0IG9mIHRoZSBuYW1lLCBsb3dlcmNhc2VkLlxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgZHluYW1vZGJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBzaG9ydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzaG9ydG5hbWUgb2YgdGhlIHNlcnZpY2UgaW4gY2FwaXRhbGl6ZWQgZm9ybVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYCAtPiBgRHluYW1vREJgXG4gICAqXG4gICAqIEBleGFtcGxlIGR5bmFtb2RiXG4gICAqL1xuICByZWFkb25seSBjYXBpdGFsaXplZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbXBsZXRlIGNsb3VkZm9ybWF0aW9uIHN0eWxlIG5hbWVzcGFjZSBvZiB0aGUgc2VydmljZVxuICAgKlxuICAgKiBFLmcuIGBBV1M6OkR5bmFtb0RCYFxuICAgKlxuICAgKiBAZXhhbXBsZSBkeW5hbW9kYlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25OYW1lc3BhY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50YXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlIGV4dGVuZHMgRW50aXR5IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHNldCwgdGhpcyBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm0gaXMgcmVxdWlyZWQgYnkgdGhlIHJlc291cmNlXG4gICAqL1xuICBjbG91ZEZvcm1hdGlvblRyYW5zZm9ybT86IHN0cmluZztcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW1hcnkgaWRlbnRpZmllciwgb3IgaWRlbnRpZmllcnMsIGluIENsb3VkIENvbnRyb2wgQVBJXG4gICAqXG4gICAqIFVuaXF1ZWx5IGlkZW50aWZpZXMgYSByZXNvdXJjZSBpbiBhbiBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHJlYWQgZnJvbSB0aGUgc2NoZW1hLCB3aGljaCBhbHdheXMgcGVydGFpbnMgdG8gdGhlIENDQVBJIGlkZW50aWZpZXIuXG4gICAqIFR5cGljYWxseSB0aGUgc2FtZSBhcyB0aGUgQ2xvdWRGb3JtYXRpb24gaWRlbnRpZmllciwgYnV0IG5vdCBuZWNlc3NhcmlseS5cbiAgICovXG4gIHByaW1hcnlJZGVudGlmaWVyPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcmltYXJ5IGlkZW50aWZpZXIsIG9yIGlkZW50aWZpZXJzLCBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBXaGF0ZXZlciBnZXRzIHJldHVybmVkIHdoZW4geW91IGNhbGwgYHsgUmVmIH1gIGEgcmVzb3VyY2UuIFR5cGljYWxseSB0aGVcbiAgICogdmFsdWUgdGhhdCBvdGhlciByZXNvdXJjZXMgaW4gdGhlIHNhbWUgc2VydmljZSBleHBlY3QgdG8gc2VlIGFzIHRoZSB3YXkgdG9cbiAgICogcmVmZXJlbmNlIHRoaXMgcmVzb3VyY2UgKG5hbWUgb3IgQVJOIG9yIElkKS5cbiAgICpcbiAgICogSWYgbWlzc2luZywgdGhlIGBjZm5SZWZJZGVudGlmaWVyYCBpcyB0aGUgc2FtZSBhcyB0aGUgKENDLUFQSSkgYHByaW1hcnlJZGVudGlmaWVyYC5cbiAgICovXG4gIGNmblJlZklkZW50aWZpZXI/OiBzdHJpbmdbXTtcblxuICByZWFkb25seSBwcm9wZXJ0aWVzOiBSZXNvdXJjZVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIEF0dHJpYnV0ZT47XG4gIHJlYWRvbmx5IHZhbGlkYXRpb25zPzogdW5rbm93bjtcbiAgYXJuVGVtcGxhdGU/OiBzdHJpbmc7XG4gIGlzU3RhdGVmdWw/OiBib29sZWFuO1xuICB2ZW5kZWRMb2dzPzogVmVuZGVkTG9nc1tdO1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFnZ2FiaWxpdHkgb2YgdGhpcyByZXNvdXJjZVxuICAgKlxuICAgKiBVbmRlZmluZWQgaWYgdGhlIHJlc291cmNlIGlzIG5vdCB0YWdnYWJsZS5cbiAgICovXG4gIHRhZ0luZm9ybWF0aW9uPzogVGFnSW5mb3JtYXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2hhbmdlcyB0byB0aGlzIHJlc291cmNlIG5lZWQgdG8gYmUgc2NydXRpbml6ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgUmVzb3VyY2VTY3J1dGlueVR5cGUuTk9ORVxuICAgKi9cbiAgc2NydXRpbml6YWJsZT86IFJlc291cmNlU2NydXRpbnlUeXBlO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhdGhzIHRvIHByb3BlcnRpZXMgdGhhdCBhbHNvIGNhdXNlIHJlcGxhY2VtZW50LlxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGluZGljYXRlIHRoYXQgY2VydGFpbiBwcm9wZXJ0eSBwYXRocyBpbnRvIHRoaXMgcmVzb3VyY2VcbiAgICogd2lsbCBjYXVzZSByZXBsYWNlbWVudDsgb25seSByZXBsYWNlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWRcbiAgICogYnkgdGFnZ2luZyB0aGUgcHJvcGVydHkgaW4gYSB0eXBlIGRlZmluaXRpb24gd2lsbCBiZSBpbmNsdWRlZCBoZXJlXG4gICAqIChmb3IgZXhhbXBsZSwgYmVjYXVzZSB0aGUgdGFnZ2VkIHByb3BlcnR5IHdvdWxkIGJlIGluIGEgcHJlZGVmaW5lZFxuICAgKiB0eXBlIGxpa2UgYHRhZ2ApLlxuICAgKlxuICAgKiBBbGwgcHJvcGVydGllcyBpbiB0aGlzIGxpc3Qgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYGNhdXNlc1JlcGxhY2VtZW50OiAneWVzJ2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIGFkZGl0aW9uYWxSZXBsYWNlbWVudFByb3BlcnRpZXM/OiBzdHJpbmdbXVtdO1xufVxuXG5leHBvcnQgdHlwZSBSZXNvdXJjZVByb3BlcnRpZXMgPSBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURlZmluaXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFJlc291cmNlUHJvcGVydGllcztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgcmVuZGVyIHRoaXMgdHlwZSBldmVuIGlmIGl0IGlzIHVudXNlZC5cbiAgICovXG4gIG11c3RSZW5kZXJGb3JCd0NvbXBhdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHkge1xuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2YgdGhlIHByb3BlcnR5XG4gICAqL1xuICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJcyB0aGlzIHByb3BlcnR5IHJlcXVpcmVkXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHR5cGUgb2YgdGhpcyBwcm9wZXJ0eVxuICAgKi9cbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuXG4gIC8qKlxuICAgKiBBbiBvcmRlcmVkIGxpc3Qgb2YgcHJldmlvdXMgdHlwZXMgb2YgdGhpcyBwcm9wZXJ0eSBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICpcbiAgICogRG9lcyBub3QgaW5jbHVkZSB0aGUgY3VycmVudCB0eXBlLCB1c2UgYHR5cGVgIGZvciB0aGlzLlxuICAgKi9cbiAgcHJldmlvdXNUeXBlcz86IFByb3BlcnR5VHlwZVtdO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRhdGlvbiB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5XG4gICAqXG4gICAqIFRoaXMgdmFsdWUgaXMgbm90IGRpcmVjdGx5IGZ1bmN0aW9uYWw7IGl0IGRlc2NyaWJlcyBob3cgdGhlIHVuZGVybHlpbmcgcmVzb3VyY2VcbiAgICogd2lsbCBiZWhhdmUgaWYgdGhlIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCB1bmtub3duXG4gICAqL1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIGRlcHJlY2F0ZWQ/OiBEZXByZWNhdGlvbjtcblxuICAvKipcbiAgICogV2hldGhlciBjaGFuZ2VzIHRvIHRoaXMgcHJvcGVydHkgbmVlZHMgdG8gYmUgc2NydXRpbml6ZWQgc3BlY2lhbGx5XG4gICAqXG4gICAqIEBkZWZhdWx0IFByb3BlcnR5U2NydXRpbnlUeXBlLk5PTkVcbiAgICovXG4gIHNjcnV0aW5pemFibGU/OiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29udGFpbmluZyByZXNvdXJjZSB3aWxsIGJlIHJlcGxhY2VkIGlmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAnbm8nXG4gICAqL1xuICBjYXVzZXNSZXBsYWNlbWVudD86ICd5ZXMnIHwgJ25vJyB8ICdtYXliZSc7XG5cbiAgLyoqXG4gICAqIFJlbGF0aW9uc2hpcCByZWZlcmVuY2VzIHRvIG90aGVyIENsb3VkRm9ybWF0aW9uIHJlc291cmNlc1xuICAgKi9cbiAgcmVsYXRpb25zaGlwUmVmcz86IFJlbGF0aW9uc2hpcFJlZltdO1xufVxuXG5leHBvcnQgY2xhc3MgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBQaWNrPFByb3BlcnR5LCAndHlwZScgfCAncHJldmlvdXNUeXBlcyc+KSB7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmllbGQgaXMgdW5kZWZpbmVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHR5cGVzKCk6IFByb3BlcnR5VHlwZVtdIHtcbiAgICByZXR1cm4gWy4uLih0aGlzLmZpZWxkLnByZXZpb3VzVHlwZXMgPz8gW10pLCB0aGlzLmZpZWxkLnR5cGVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgdHlwZSBvZiB0aGlzIHByb3BlcnR5IHdpdGggYSBuZXcgdHlwZVxuICAgKlxuICAgKiBPbmx5IGlmIGl0J3Mgbm90IGluIHRoZSBzZXQgb2YgdHlwZXMgYWxyZWFkeS5cbiAgICpcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB0eXBlIHdhcyB1cGRhdGVkLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVR5cGUodHlwZTogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmljaFR5cGUgPSBuZXcgUmljaFByb3BlcnR5VHlwZSh0eXBlKTtcblxuICAgIC8vIE9ubHkgYWRkIHRoaXMgdHlwZSBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgaXQuIFdlIGFyZSBvbmx5IGRvaW5nIGNvbXBhcmlzb25zIHdoZXJlICdpbnRlZ2VyJyBhbmQgJ251bWJlcidcbiAgICAvLyBhcmUgdHJlYXRlZCB0aGUgc2FtZSwgZm9yIGFsbCBvdGhlciB0eXBlcyB3ZSBuZWVkIHN0cmljdCBlcXVhbGl0eS4gV2UgdXNlZCB0byB1c2UgJ2Fzc2lnbmFibGVUbycgYXMgYVxuICAgIC8vIGNvbmRpdGlvbiwgYnV0IHRoZXNlIHR5cGVzIHdpbGwgYmUgcmVuZGVyZWQgaW4gYm90aCBjby0gYW5kIGNvbnRyYXZhcmlhbnQgcG9zaXRpb25zLCBhbmQgc28gd2UgcmVhbGx5IGNhbid0XG4gICAgLy8gZG8gbXVjaCBiZXR0ZXIgdGhhbiBmdWxsIGVxdWFsaXR5LlxuICAgIGlmICh0aGlzLnR5cGVzKCkuc29tZSgodCkgPT4gcmljaFR5cGUuZXF1YWxzKHQpKSkge1xuICAgICAgLy8gTm90aGluZyB0byBkbywgdHlwZSBpcyBhbHJlYWR5IGluIHRoZXJlLlxuICAgICAgLy8gQnV0IGlmIHRoZSBuZXcgdHlwZSBoYXMgYWxsb3dlZFZhbHVlcywgbWVyZ2UgdGhlbSBpbnRvIHRoZSBjdXJyZW50IHR5cGUuXG4gICAgICBpZiAoKHR5cGUudHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZS50eXBlID09PSAnaW50ZWdlcicpICYmIHR5cGUuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICBpZiAodGhpcy5maWVsZC50eXBlLnR5cGUgPT09IHR5cGUudHlwZSkge1xuICAgICAgICAgICh0aGlzLmZpZWxkLnR5cGUgYXMgYW55KS5hbGxvd2VkVmFsdWVzID0gdHlwZS5hbGxvd2VkVmFsdWVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBjYXNlOiBpZiB0aGUgbmV3IHR5cGUgaXMgYHN0cmluZ2AgYW5kIHRoZSBvbGQgdHlwZSBpcyBgZGF0ZS10aW1lYCwgd2UgYXNzdW1lIHRoaXMgaXNcbiAgICAvLyB0aGUgc2FtZSB0eXBlIGJ1dCB3ZSBkcm9wcGVkIHNvbWUgZm9ybWF0dGluZyBpbmZvcm1hdGlvbi4gTm8gbmVlZCB0byBtYWtlIHRoaXMgYSBzZXBhcmF0ZSB0eXBlLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMudHlwZXMoKS5zb21lKCh0KSA9PiB0LnR5cGUgPT09ICdkYXRlLXRpbWUnKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgY2FzZTogaWYgdGhlIG5ldyB0eXBlIGlzIGBzdHJpbmdgIGFuZCB0aGUgb2xkIHR5cGUgaXMgYGpzb25gLCB3ZSBhc3N1bWUgdGhpcyBpcyBhIGNvcnJlY3Rpb25cbiAgICAvLyBvZiBhIGJ1ZzsgdGhlIG9sZCB0eXBlIHdhcyBpbmNvcnJlY3RseSB0eXBlZCBhcyBKc29uLCBhbmQgd2UncmUgbm93IGNvcnJlY3RpbmcgdGhpcy4gU2luY2UgdGhpcyB3YXMgYVxuICAgIC8vIGJ1Zywgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIHRoZSBvbGQgdHlwZTogaXQgd2FzIG5ldmVyIGFjY3VyYXRlLlxuICAgIC8vXG4gICAgLy8gV2UgY291bGQgYmUgbW9yZSBicm9hZCwgYW5kIG9ubHkgbWFpbnRhaW4gdHlwZSBoaXN0b3J5IGlmIHdlIGdvIGZyb21cbiAgICAvLyBganNvbmAgLT4gYG5hbWVkIHR5cGVgLCBvciBgbmFtZWQgdHlwZWAgLT4gYG5hbWVkIHR5cGVgLiAgRm9yIG5vdyBJJ21cbiAgICAvLyB3YXJ5IG9mIGRlc3Ryb3lpbmcgdG9vIG11Y2ggaW5mb3JtYXRpb247IHdlJ2xsIGp1c3QgZG8gdGhlIGZpeCBzcGVjaWZpY2FsbHlcbiAgICAvLyBmb3IgYGpzb25gIC0+IGBzdHJpbmdgLlxuICAgIGlmICh0eXBlLnR5cGUgPT09ICdzdHJpbmcnICYmIHRoaXMuZmllbGQudHlwZS50eXBlID09PSAnanNvbicpIHtcbiAgICAgIHRoaXMuZmllbGQudHlwZSA9IHR5cGU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZmllbGQucHJldmlvdXNUeXBlcykge1xuICAgICAgdGhpcy5maWVsZC5wcmV2aW91c1R5cGVzID0gW107XG4gICAgfVxuICAgIHRoaXMuZmllbGQucHJldmlvdXNUeXBlcy5wdXNoKHRoaXMuZmllbGQudHlwZSk7XG4gICAgdGhpcy5maWVsZC50eXBlID0gdHlwZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmljaFByb3BlcnR5IGV4dGVuZHMgUmljaFR5cGVkRmllbGQge1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogUHJvcGVydHkpIHtcbiAgICBzdXBlcihwcm9wZXJ0eSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJpY2hBdHRyaWJ1dGUgZXh0ZW5kcyBSaWNoVHlwZWRGaWVsZCB7XG4gIGNvbnN0cnVjdG9yKGF0dHI6IEF0dHJpYnV0ZSkge1xuICAgIHN1cGVyKGF0dHIpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbiAgdHlwZTogUHJvcGVydHlUeXBlO1xuICAvKipcbiAgICogQW4gb3JkZXJlZCBsaXN0IG9mIHByZXZpb3VzIHR5cGVzIG9mIHRoaXMgcHJvcGVydHkgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAqXG4gICAqIERvZXMgbm90IGluY2x1ZGUgdGhlIGN1cnJlbnQgdHlwZSwgdXNlIGB0eXBlYCBmb3IgdGhpcy5cbiAgICovXG4gIHByZXZpb3VzVHlwZXM/OiBQcm9wZXJ0eVR5cGVbXTtcbn1cblxuZXhwb3J0IGVudW0gRGVwcmVjYXRpb24ge1xuICAvKipcbiAgICogTm90IGRlcHJlY2F0ZWRcbiAgICovXG4gIE5PTkUgPSAnTk9ORScsXG5cbiAgLyoqXG4gICAqIFdhcm4gYWJvdXQgdXNlXG4gICAqL1xuICBXQVJOID0gJ1dBUk4nLFxuXG4gIC8qKlxuICAgKiBEbyBub3QgZW1pdCB0aGUgdmFsdWUgYXQgYWxsXG4gICAqXG4gICAqIChIYW5kbGUgcHJvcGVydGllcyB0aGF0IHdlcmUgaW5jb3JyZWN0bHkgYWRkZWQgdG8gdGhlIHNwZWMpXG4gICAqL1xuICBJR05PUkUgPSAnSUdOT1JFJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29sbGVjdGlvblR5cGUoeDogUHJvcGVydHlUeXBlKTogeCBpcyBBcnJheVR5cGU8YW55PiB8IE1hcFR5cGU8YW55PiB7XG4gIHJldHVybiB4LnR5cGUgPT09ICdhcnJheScgfHwgeC50eXBlID09PSAnbWFwJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdJbmZvcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0aGF0IGhvbGRzIHRoZSB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdQcm9wZXJ0eU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBpbnN0cnVjdCBjZGsuVGFnTWFuYWdlciBob3cgdG8gaGFuZGxlIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhbnQ6IFRhZ1ZhcmlhbnQ7XG59XG5cbmV4cG9ydCB0eXBlIFRhZ1ZhcmlhbnQgPSAnc3RhbmRhcmQnIHwgJ2FzZycgfCAnbWFwJztcblxuZXhwb3J0IHR5cGUgSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8U2VydmljZSwgUmVzb3VyY2U+O1xuZXhwb3J0IHR5cGUgUmVnaW9uSGFzUmVzb3VyY2UgPSBSZWxhdGlvbnNoaXA8UmVnaW9uLCBSZXNvdXJjZT47XG5leHBvcnQgdHlwZSBSZWdpb25IYXNTZXJ2aWNlID0gUmVsYXRpb25zaGlwPFJlZ2lvbiwgU2VydmljZT47XG5leHBvcnQgdHlwZSBSZXNvdXJjZURvYyA9IFJlbGF0aW9uc2hpcDxSZXNvdXJjZSwgRG9jdW1lbnRhdGlvbj47XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFNlcnZpY2U+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VJblJlZ2lvbiA9IFJlbGF0aW9uc2hpcDxSZWdpb24sIFJlc291cmNlPjtcblxuZXhwb3J0IHR5cGUgVXNlc1R5cGUgPSBSZWxhdGlvbnNoaXA8UmVzb3VyY2UsIFR5cGVEZWZpbml0aW9uPjtcblxuLyoqXG4gKiBNYXJrIGEgcmVzb3VyY2UgYXMgYSByZXNvdXJjZSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpeSB3aGVuIGFkZGVkLCByZW1vdmVkIG9yIGNoYW5nZWRcbiAqXG4gKiBVc2VkIHRvIG1hcmsgcmVzb3VyY2VzIHRoYXQgcmVwcmVzZW50IHNlY3VyaXR5IHBvbGljaWVzLlxuICovXG5leHBvcnQgZW51bSBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIC8qKlxuICAgKiBObyBhZGRpdGlvbmFsIHNjcnV0aW55XG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbGx5IGF0dGFjaGVkIHBvbGljeSBkb2N1bWVudCB0byBhIHJlc291cmNlXG4gICAqXG4gICAqIChDb21tb24gZm9yIFNRUywgU05TLCBTMywgLi4uKVxuICAgKi9cbiAgUmVzb3VyY2VQb2xpY3lSZXNvdXJjZSA9ICdSZXNvdXJjZVBvbGljeVJlc291cmNlJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IG9uIGFuIGlkZW50aXR5IHJlc291cmNlXG4gICAqXG4gICAqIChCYXNpY2FsbHkgc2F5aW5nOiB0aGlzIGlzIEFXUzo6SUFNOjpQb2xpY3kpXG4gICAqL1xuICBJZGVudGl0eVBvbGljeVJlc291cmNlID0gJ0lkZW50aXR5UG9saWN5UmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgTGFtYmRhIFBlcm1pc3Npb24gcG9saWN5XG4gICAqL1xuICBMYW1iZGFQZXJtaXNzaW9uID0gJ0xhbWJkYVBlcm1pc3Npb24nLFxuXG4gIC8qKlxuICAgKiBBbiBpbmdyZXNzIHJ1bGUgb2JqZWN0XG4gICAqL1xuICBJbmdyZXNzUnVsZVJlc291cmNlID0gJ0luZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlZ3Jlc3MgcnVsZXNcbiAgICovXG4gIEVncmVzc1J1bGVSZXNvdXJjZSA9ICdFZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBV1M6OlNTTzo6QXNzaWdubWVudFxuICAgKlxuICAgKiBJQU0gSWRlbnRpdHkgQ2VudGVyIChmb3JtZXJseSBrbm93biBhcyBTU08pXG4gICAqL1xuICBTc29Bc3NpZ25tZW50UmVzb3VyY2UgPSAnU3NvQXNzaWdubWVudFJlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086Okluc3RhbmNlQWNjZXNzQ29udHJvbEF0dHJpYnV0ZUNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvSW5zdGFuY2VBQ0FDb25maWdSZXNvdXJjZSA9ICdTc29JbnN0YW5jZUFDQUNvbmZpZ1Jlc291cmNlJyxcblxuICAvKipcbiAgICogQVdTOjpTU086OlBlcm1pc3Npb25TZXRcbiAgICpcbiAgICogSUFNIElkZW50aXR5IENlbnRlciAoZm9ybWVybHkga25vd24gYXMgU1NPKVxuICAgKi9cbiAgU3NvUGVybWlzc2lvblNldCA9ICdTc29QZXJtaXNzaW9uU2V0Jyxcbn1cblxuLyoqXG4gKiBNYXJrIGEgcHJvcGVydHkgYXMgYSBwcm9wZXJ0eSB0aGF0IG5lZWRzIGFkZGl0aW9uYWwgc2NydXRpbnkgd2hlbiBpdCBjaGFuZ2VzXG4gKlxuICogVXNlZCB0byBtYXJrIHNlbnNpdGl2ZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGltcGxpY2F0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gUHJvcGVydHlTY3J1dGlueVR5cGUge1xuICAvKipcbiAgICogTm8gYWRkaXRpb25hbCBzY3J1dGlueVxuICAgKi9cbiAgTm9uZSA9ICdOb25lJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IGRpcmVjdGx5IG9uIGEgcmVzb3VyY2VcbiAgICovXG4gIElubGluZVJlc291cmNlUG9saWN5ID0gJ0lubGluZVJlc291cmNlUG9saWN5JyxcblxuICAvKipcbiAgICogRWl0aGVyIGFuIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudCBvciBhIGRpY3Rpb25hcnkgb2YgcG9saWN5IGRvY3VtZW50c1xuICAgKi9cbiAgSW5saW5lSWRlbnRpdHlQb2xpY2llcyA9ICdJbmxpbmVJZGVudGl0eVBvbGljaWVzJyxcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG1hbmFnZWQgcG9saWNpZXMgKG9uIGFuIGlkZW50aXR5IHJlc291cmNlKVxuICAgKi9cbiAgTWFuYWdlZFBvbGljaWVzID0gJ01hbmFnZWRQb2xpY2llcycsXG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGluZ3Jlc3MgcnVsZXMgKG9uIGEgc2VjdXJpdHkgZ3JvdXApXG4gICAqL1xuICBJbmdyZXNzUnVsZXMgPSAnSW5ncmVzc1J1bGVzJyxcblxuICAvKipcbiAgICogQSBzZXQgb2YgZWdyZXNzIHJ1bGVzIChvbiBhIHNlY3VyaXR5IGdyb3VwKVxuICAgKi9cbiAgRWdyZXNzUnVsZXMgPSAnRWdyZXNzUnVsZXMnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSByZWxhdGlvbnNoaXAgcmVmZXJlbmNlIHRvIGFub3RoZXIgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbnNoaXBSZWYge1xuICAvKipcbiAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgdGhpcyBwcm9wZXJ0eSByZWZlcmVuY2VzXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IG5hbWUgd2l0aGluIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIChlLmcuLCBcIklkXCIpXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGVsaXZlcnkgZGVzdGluYXRpb24gdGhhdCBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBzZW5kIGxvZ3MgdG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxpdmVyeURlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHNlcnZpY2UgdGhhdCBpcyBpbmdlc3RpbmcgdGhlIGxvZ3MsIGNhbiBiZSBTMyB8IEZIIHwgQ1dMIHwgWFJBWVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25UeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBmb3JtYXQgb2YgbG9ncyBzZW50IHRvIHRoaXMgZGVsaXZlcnkgZGVzdGluYXRpb24sIGNhbiBiZSBqc29uIHwgcGFycXVldCB8IHczYyB8IHBsYWluIHwgcmF3IHwgdW5kZWZpbmVkXG4gICAqIFdoYXQgZm9ybWF0cyBhcmUgYXZhbGlibGUgdmFyeSBiYXNlZCBvbiBkZXN0aW5hdGlvblR5cGVcbiAgICogUzMgZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBqc29uLCBwbGFpbiwgdzNjLCBvciBwYXJxdWV0XG4gICAqIENsb3Vkd2F0Y2ggZGVzdGluYXRpb24gdHlwZXMgY2FuIGFjY2VwdCBwbGFpbiBvciBqc29uXG4gICAqIEZpcmVob3NlIGRlc3RpbmF0aW9uIHR5cGVzIGNhbiBhY2NlcHQganNvbiwgcmF3LCBvciBwYXJxdWV0XG4gICAqIFhSYXkgZGVzdGluYXRpb24gdHlwZXMgZG8gbm90IHVzZSBvdXRwdXQgZm9ybWF0c1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0Rm9ybWF0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0eXBlIG9mIGxvZyB0aGF0IGEgQ2xvdWRmb3JtYXRpb24gUmVzb3VyY2UgY2FuIHByb2R1Y2UgYW5kIHdoYXQgZGVzdGluYXRpb25zIGNhbiBjb25zdW1lIHRoZW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZW5kZWRMb2dzIHtcbiAgLyoqXG4gICAqIFdoYXQgdmVyc2lvbiBvZiBwZXJtaXNzaW9ucyB0aGUgZGVzdGluYXRpb24gc3VwcG9ydHMgVjEgfCBWMlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnNWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUeXBlIG9mIGxvZyBhIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIGNhbiBwcm9kdWNlXG4gICAqL1xuICByZWFkb25seSBsb2dUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHRoZSBkZXN0aW5hdGlvbnMgdGhlIGNhbiBjb25zdW1lIHRob3NlIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uczogRGVsaXZlcnlEZXN0aW5hdGlvbltdO1xuICAvKipcbiAgICogUmVjb3JkIGZpZWxkcyB0aGF0IGFyZSBtYW5kYXRvcnkgdG8gYmUgZGVsaXZlcmVkXG4gICAqL1xuICBtYW5kYXRvcnlGaWVsZHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFJlY29yZCBmaWVsZHMgdGhhdCBjYW4gYmUgb3B0aW9uYWxseSBkZWxpdmVyZWRcbiAgICovXG4gIG9wdGlvbmFsRmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBSaWNoUHJvcGVydHlUeXBlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0eXBlOiBQcm9wZXJ0eVR5cGUpIHt9XG5cbiAgcHVibGljIGVxdWFscyhyaHM6IFByb3BlcnR5VHlwZSk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgY2FzZSAnanNvbic6XG4gICAgICBjYXNlICdudWxsJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHJocy50eXBlID09PSB0aGlzLnR5cGUudHlwZTtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmVxdWFscyhyaHMuZWxlbWVudCk7XG4gICAgICBjYXNlICdyZWYnOlxuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdyZWYnICYmIHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZiA9PT0gcmhzLnJlZmVyZW5jZS4kcmVmO1xuICAgICAgY2FzZSAndW5pb24nOlxuICAgICAgICBjb25zdCBsaHNLZXkgPSB0aGlzLnNvcnRLZXkoKTtcbiAgICAgICAgY29uc3QgcmhzS2V5ID0gbmV3IFJpY2hQcm9wZXJ0eVR5cGUocmhzKS5zb3J0S2V5KCk7XG4gICAgICAgIHJldHVybiBsaHNLZXkubGVuZ3RoID09PSByaHNLZXkubGVuZ3RoICYmIGxoc0tleS5ldmVyeSgobCwgaSkgPT4gbCA9PT0gcmhzS2V5W2ldKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY3VycmVudCB0eXBlIGlzIEphdmFTY3JpcHQtZXF1YWwgdG8gdGhlIFJIUyB0eXBlXG4gICAqXG4gICAqIFNhbWUgYXMgbm9ybWFsIGVxdWFsaXR5LCBidXQgY29uc2lkZXIgYGludGVnZXJgIGFuZCBgbnVtYmVyYCB0aGUgc2FtZSB0eXBlcy5cbiAgICovXG4gIHB1YmxpYyBqYXZhc2NyaXB0RXF1YWxzKHJoczogUHJvcGVydHlUeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAvLyBXaWRlbmluZ1xuICAgICAgICByZXR1cm4gcmhzLnR5cGUgPT09ICdpbnRlZ2VyJyB8fCByaHMudHlwZSA9PT0gJ251bWJlcic7XG5cbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiByaHMudHlwZSA9PT0gdGhpcy50eXBlLnR5cGUgJiYgbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLmphdmFzY3JpcHRFcXVhbHMocmhzLmVsZW1lbnQpO1xuXG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGlmIChyaHMudHlwZSAhPT0gJ3VuaW9uJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFdmVyeSB0eXBlIGluIHRoaXMgdW5pb24gbmVlZHMgdG8gYmUgZXF1YWwgb25lIHR5cGUgaW4gUkhTXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMuZXZlcnkoKHQxKSA9PiByaHMudHlwZXMuc29tZSgodDIpID0+IG5ldyBSaWNoUHJvcGVydHlUeXBlKHQxKS5qYXZhc2NyaXB0RXF1YWxzKHQyKSkpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBGb3IgYW55dGhpbmcgZWxzZSwgbmVlZCBzdHJpY3QgZXF1YWxpdHlcbiAgICAgICAgcmV0dXJuIHRoaXMuZXF1YWxzKHJocyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgdHlwZSBpcyBhc3NpZ25hYmxlIHRvIHRoZSBSSFMgdHlwZS5cbiAgICpcbiAgICogVGhpcyBpcyBtZWFucyBldmVyeSB0eXBlIG1lbWJlciBvZiB0aGUgTEhTIG11c3QgYmUgcHJlc2VudCBpbiB0aGUgUkhTIHR5cGVcbiAgICovXG4gIHB1YmxpYyBhc3NpZ25hYmxlVG8ocmhzOiBQcm9wZXJ0eVR5cGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHRyYWN0TWVtYmVycyA9ICh0eXBlOiBQcm9wZXJ0eVR5cGUpOiBQcm9wZXJ0eVR5cGVbXSA9PiAodHlwZS50eXBlID09ICd1bmlvbicgPyB0eXBlLnR5cGVzIDogW3R5cGVdKTtcbiAgICBjb25zdCBhc1JpY2hUeXBlID0gKHR5cGU6IFByb3BlcnR5VHlwZSk6IFJpY2hQcm9wZXJ0eVR5cGUgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodHlwZSk7XG5cbiAgICBjb25zdCByaHNNZW1iZXJzID0gZXh0cmFjdE1lbWJlcnMocmhzKTtcbiAgICBmb3IgKGNvbnN0IGxoc01lbWJlciBvZiBleHRyYWN0TWVtYmVycyh0aGlzLnR5cGUpLm1hcChhc1JpY2hUeXBlKSkge1xuICAgICAgaWYgKCFyaHNNZW1iZXJzLnNvbWUoKHR5cGUpID0+IGxoc01lbWJlci5lcXVhbHModHlwZSkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB2ZXJzaW9uIG9mIHRoaXMgdHlwZSwgYnV0IHdpdGggYWxsIHR5cGUgdW5pb25zIGluIGEgcmVndWxhcml6ZWQgb3JkZXJcbiAgICovXG4gIHB1YmxpYyBub3JtYWxpemUoZGI6IFNwZWNEYXRhYmFzZSk6IFJpY2hQcm9wZXJ0eVR5cGUge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBuZXcgUmljaFByb3BlcnR5VHlwZSh7XG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLnR5cGUsXG4gICAgICAgICAgZWxlbWVudDogbmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLm5vcm1hbGl6ZShkYikudHlwZSxcbiAgICAgICAgfSk7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVzID0gdGhpcy50eXBlLnR5cGVzXG4gICAgICAgICAgLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkubm9ybWFsaXplKGRiKSlcbiAgICAgICAgICAubWFwKCh0KSA9PiBbdCwgdC5zb3J0S2V5KGRiKV0gYXMgY29uc3QpO1xuICAgICAgICB0eXBlcy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKChbXywgc29ydEtleV0pID0+IHNvcnRLZXkpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSaWNoUHJvcGVydHlUeXBlKHtcbiAgICAgICAgICB0eXBlOiAndW5pb24nLFxuICAgICAgICAgIHR5cGVzOiB0eXBlcy5tYXAoKFt0LCBfXSkgPT4gdC50eXBlKSxcbiAgICAgICAgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RyaW5naWZ5KGRiOiBTcGVjRGF0YWJhc2UsIHdpdGhJZCA9IHRydWUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcyA/IGBzdHJpbmc8JHt0aGlzLnR5cGUuYWxsb3dlZFZhbHVlcy5qb2luKCd8Jyl9PmAgOiAnc3RyaW5nJztcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmFsbG93ZWRWYWx1ZXMgPyBgaW50ZWdlcjwke3RoaXMudHlwZS5hbGxvd2VkVmFsdWVzLmpvaW4oJ3wnKX0+YCA6ICdpbnRlZ2VyJztcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAndGFnJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS50eXBlO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICByZXR1cm4gYEFycmF5PCR7bmV3IFJpY2hQcm9wZXJ0eVR5cGUodGhpcy50eXBlLmVsZW1lbnQpLnN0cmluZ2lmeShkYiwgd2l0aElkKX0+YDtcbiAgICAgIGNhc2UgJ21hcCc6XG4gICAgICAgIHJldHVybiBgTWFwPHN0cmluZywgJHtuZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc3RyaW5naWZ5KGRiLCB3aXRoSWQpfT5gO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgY29uc3QgdHlwZSA9IGRiLmdldCgndHlwZURlZmluaXRpb24nLCB0aGlzLnR5cGUucmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuIHdpdGhJZCA/IGAke3R5cGUubmFtZX0oJHt0aGlzLnR5cGUucmVmZXJlbmNlLiRyZWZ9KWAgOiB0eXBlLm5hbWU7XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUudHlwZXMubWFwKCh0KSA9PiBuZXcgUmljaFByb3BlcnR5VHlwZSh0KS5zdHJpbmdpZnkoZGIsIHdpdGhJZCkpLmpvaW4oJyB8ICcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzb3J0YWJsZSBrZXkgYmFzZWQgb24gdGhpcyB0eXBlXG4gICAqXG4gICAqIElmIGEgZGF0YWJhc2UgaXMgZ2l2ZW4sIHR5cGUgZGVmaW5pdGlvbnMgd2lsbCBiZSBzb3J0ZWQgYmFzZWQgb24gdHlwZSBuYW1lLFxuICAgKiBvdGhlcndpc2Ugb24gaWRlbnRpZmllclxuICAgKi9cbiAgcHVibGljIHNvcnRLZXkoZGI/OiBTcGVjRGF0YWJhc2UpOiBzdHJpbmdbXSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICd0YWcnOlxuICAgICAgICByZXR1cm4gWycwJywgdGhpcy50eXBlLnR5cGVdO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnbWFwJzpcbiAgICAgICAgcmV0dXJuIFsnMScsIHRoaXMudHlwZS50eXBlLCAuLi5uZXcgUmljaFByb3BlcnR5VHlwZSh0aGlzLnR5cGUuZWxlbWVudCkuc29ydEtleShkYildO1xuICAgICAgY2FzZSAncmVmJzpcbiAgICAgICAgcmV0dXJuIFsnMicsIHRoaXMudHlwZS50eXBlLCBkYj8uZ2V0KCd0eXBlRGVmaW5pdGlvbicsIHRoaXMudHlwZS5yZWZlcmVuY2UpPy5uYW1lID8/IHRoaXMudHlwZS5yZWZlcmVuY2UuJHJlZl07XG4gICAgICBjYXNlICd1bmlvbic6XG4gICAgICAgIGNvbnN0IHR5cGVLZXlzID0gdGhpcy50eXBlLnR5cGVzLm1hcCgodCkgPT4gbmV3IFJpY2hQcm9wZXJ0eVR5cGUodCkuc29ydEtleShkYikpO1xuICAgICAgICB0eXBlS2V5cy5zb3J0KHNvcnRLZXlDb21wYXJhdG9yKCh4KSA9PiB4KSk7XG4gICAgICAgIHJldHVybiBbJzMnLCB0aGlzLnR5cGUudHlwZSwgLi4udHlwZUtleXMuZmxhdE1hcCgoeCkgPT4geCldO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVR5cGUgPSBHZW5lcmljUHJvcGVydHlUeXBlPFR5cGVEZWZpbml0aW9uPjtcbmV4cG9ydCB0eXBlIERlZmluaXRpb25SZWZlcmVuY2UgPSBHZW5lcmljRGVmaW5pdGlvblJlZmVyZW5jZTxUeXBlRGVmaW5pdGlvbj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortKeyComparator = sortKeyComparator;\n/**\n * Make a sorting comparator that will sort by a given sort key\n */\nfunction sortKeyComparator(keyFn) {\n return (a, b) => {\n const ak = keyFn(a);\n const bk = keyFn(b);\n for (let i = 0; i < ak.length && i < bk.length; i++) {\n const av = ak[i];\n const bv = bk[i];\n let diff = 0;\n if (typeof av === 'number' && typeof bv === 'number') {\n diff = av - bv;\n }\n else if (typeof av === 'string' && typeof bv === 'string') {\n diff = av.localeCompare(bv);\n }\n if (diff !== 0) {\n return diff;\n }\n }\n return bk.length - ak.length;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3NvcnRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4Q0F1QkM7QUExQkQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBSSxLQUF1QztJQUMxRSxPQUFPLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBVSxFQUFFO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNiLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDO2lCQUFNLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1ha2UgYSBzb3J0aW5nIGNvbXBhcmF0b3IgdGhhdCB3aWxsIHNvcnQgYnkgYSBnaXZlbiBzb3J0IGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydEtleUNvbXBhcmF0b3I8QT4oa2V5Rm46ICh4OiBBKSA9PiBBcnJheTxzdHJpbmcgfCBudW1iZXI+KSB7XG4gIHJldHVybiAoYTogQSwgYjogQSk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgYWsgPSBrZXlGbihhKTtcbiAgICBjb25zdCBiayA9IGtleUZuKGIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhay5sZW5ndGggJiYgaSA8IGJrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhdiA9IGFrW2ldO1xuICAgICAgY29uc3QgYnYgPSBia1tpXTtcblxuICAgICAgbGV0IGRpZmYgPSAwO1xuICAgICAgaWYgKHR5cGVvZiBhdiA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGJ2ID09PSAnbnVtYmVyJykge1xuICAgICAgICBkaWZmID0gYXYgLSBidjtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGF2ID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgYnYgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRpZmYgPSBhdi5sb2NhbGVDb21wYXJlKGJ2KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpZmYgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGRpZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJrLmxlbmd0aCAtIGFrLmxlbmd0aDtcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BootstrapTemplate = exports.BootstrapSource = exports.BootstrapStackParameters = exports.BootstrapEnvironments = void 0;\nconst path = require(\"path\");\nconst private_1 = require(\"./private\");\nconst private_2 = require(\"../../api/cloud-assembly/private\");\nconst private_3 = require(\"../../api/io/private\");\nconst private_4 = require(\"../../toolkit/private\");\nconst util_1 = require(\"../../util\");\n/**\n * Create manage bootstrap environments\n */\nclass BootstrapEnvironments {\n envProvider;\n /**\n * Create from a list of environment descriptors\n * List of strings like `['aws://012345678912/us-east-1', 'aws://234567890123/eu-west-1']`\n */\n static fromList(environments) {\n return new BootstrapEnvironments((0, private_1.environmentsFromDescriptors)(environments));\n }\n /**\n * Create from a cloud assembly source\n */\n static fromCloudAssemblySource(cx) {\n return new BootstrapEnvironments(async (ioHost) => {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_3.asIoHelper)(ioHost, 'bootstrap');\n const assembly = __addDisposableResource(env_1, await (0, private_4.assemblyFromSource)(ioHelper, cx), true);\n const stackCollection = await assembly.selectStacksV2(private_2.ALL_STACKS);\n return stackCollection.stackArtifacts.map(stack => stack.environment);\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n });\n }\n constructor(envProvider) {\n this.envProvider = envProvider;\n }\n /**\n * Compute the bootstrap enviornments\n *\n * @internal\n */\n async getEnvironments(ioHost) {\n if (Array.isArray(this.envProvider)) {\n return this.envProvider;\n }\n return this.envProvider(ioHost);\n }\n}\nexports.BootstrapEnvironments = BootstrapEnvironments;\n/**\n * Parameters of the bootstrapping template with flexible configuration options\n */\nclass BootstrapStackParameters {\n /**\n * Use only existing parameters on the stack.\n */\n static onlyExisting() {\n return new BootstrapStackParameters({}, true);\n }\n /**\n * Use exactly these parameters and remove any other existing parameters from the stack.\n */\n static exactly(params) {\n return new BootstrapStackParameters(params, false);\n }\n /**\n * Define additional parameters for the stack, while keeping existing parameters for unspecified values.\n */\n static withExisting(params) {\n return new BootstrapStackParameters(params, true);\n }\n /**\n * The parameters as a Map for easy access and manipulation\n */\n parameters;\n keepExistingParameters;\n constructor(params, usePreviousParameters = true) {\n this.keepExistingParameters = usePreviousParameters;\n this.parameters = params;\n }\n}\nexports.BootstrapStackParameters = BootstrapStackParameters;\n/**\n * Source configuration for bootstrap operations\n */\nclass BootstrapSource {\n /**\n * Use the default bootstrap template\n */\n static default() {\n return { source: 'default' };\n }\n /**\n * Use a custom bootstrap template\n */\n static customTemplate(templateFile) {\n return {\n source: 'custom',\n templateFile,\n };\n }\n}\nexports.BootstrapSource = BootstrapSource;\n/**\n * Represents a bootstrap template that can be serialized to YAML or JSON\n */\nclass BootstrapTemplate {\n template;\n /**\n * Load a bootstrap template from a source\n *\n * @param source - The bootstrap template source configuration\n * @returns A BootstrapTemplate instance\n */\n static async fromSource(source = { source: 'default' }) {\n let template;\n switch (source.source) {\n case 'custom':\n template = await (0, util_1.loadStructuredFile)(source.templateFile);\n break;\n case 'default':\n template = await (0, util_1.loadStructuredFile)(path.join((0, util_1.bundledPackageRootDir)(__dirname), 'lib', 'api', 'bootstrap', 'bootstrap-template.yaml'));\n break;\n }\n return new BootstrapTemplate(template);\n }\n constructor(template) {\n this.template = template;\n }\n /**\n * Serialize the template as YAML\n *\n * @returns The template as a YAML string\n */\n asYAML() {\n return (0, util_1.serializeStructure)(this.template, false);\n }\n /**\n * Serialize the template as JSON\n *\n * @returns The template as a JSON string\n */\n asJSON() {\n return (0, util_1.serializeStructure)(this.template, true);\n }\n}\nexports.BootstrapTemplate = BootstrapTemplate;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBRTdCLHVDQUF3RDtBQUV4RCw4REFBOEQ7QUFFOUQsa0RBQWtEO0FBRWxELG1EQUEyRDtBQUMzRCxxQ0FBMkY7QUFFM0Y7O0dBRUc7QUFDSCxNQUFhLHFCQUFxQjtJQXFCSztJQXBCckM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFzQjtRQUNwQyxPQUFPLElBQUkscUJBQXFCLENBQUMsSUFBQSxxQ0FBMkIsRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUF3QjtRQUNyRCxPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQWUsRUFBRSxFQUFFOzs7Z0JBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUEsb0JBQVUsRUFBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ2pELE1BQVksUUFBUSxrQ0FBRyxNQUFNLElBQUEsNEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFBLENBQUM7Z0JBQzlELE1BQU0sZUFBZSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBVSxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7O1NBQ3ZFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxXQUFzRjtRQUF0RixnQkFBVyxHQUFYLFdBQVcsQ0FBMkU7SUFFM0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQWU7UUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQXBDRCxzREFvQ0M7QUFxSkQ7O0dBRUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNuQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUEyQjtRQUMvQyxPQUFPLElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBMkI7UUFDcEQsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxVQUFVLENBQXVCO0lBQ2pDLHNCQUFzQixDQUFVO0lBRWhELFlBQW9CLE1BQTRCLEVBQUUscUJBQXFCLEdBQUcsSUFBSTtRQUM1RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBaENELDREQWdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBb0I7UUFDeEMsT0FBTztZQUNMLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFlBQVk7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBakJELDBDQWlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFzQlM7SUFyQnJDOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBcUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ2hGLElBQUksUUFBYSxDQUFDO1FBRWxCLFFBQVEsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLEtBQUssUUFBUTtnQkFDWCxRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekQsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSw0QkFBcUIsRUFBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZJLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFxQyxRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUExQ0QsOENBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IGVudmlyb25tZW50c0Zyb21EZXNjcmlwdG9ycyB9IGZyb20gJy4vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEFMTF9TVEFDS1MgfSBmcm9tICcuLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElJb0hvc3QgfSBmcm9tICcuLi8uLi9hcGkvaW8nO1xuaW1wb3J0IHsgYXNJb0hlbHBlciB9IGZyb20gJy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tU291cmNlIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IGJ1bmRsZWRQYWNrYWdlUm9vdERpciwgbG9hZFN0cnVjdHVyZWRGaWxlLCBzZXJpYWxpemVTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBDcmVhdGUgbWFuYWdlIGJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgZnJvbSBhIGxpc3Qgb2YgZW52aXJvbm1lbnQgZGVzY3JpcHRvcnNcbiAgICogTGlzdCBvZiBzdHJpbmdzIGxpa2UgYFsnYXdzOi8vMDEyMzQ1Njc4OTEyL3VzLWVhc3QtMScsICdhd3M6Ly8yMzQ1Njc4OTAxMjMvZXUtd2VzdC0xJ11gXG4gICAqL1xuICBzdGF0aWMgZnJvbUxpc3QoZW52aXJvbm1lbnRzOiBzdHJpbmdbXSk6IEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBFbnZpcm9ubWVudHMoZW52aXJvbm1lbnRzRnJvbURlc2NyaXB0b3JzKGVudmlyb25tZW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBzdGF0aWMgZnJvbUNsb3VkQXNzZW1ibHlTb3VyY2UoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlKTogQm9vdHN0cmFwRW52aXJvbm1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcEVudmlyb25tZW50cyhhc3luYyAoaW9Ib3N0OiBJSW9Ib3N0KSA9PiB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIoaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZShpb0hlbHBlciwgY3gpO1xuICAgICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoQUxMX1NUQUNLUyk7XG4gICAgICByZXR1cm4gc3RhY2tDb2xsZWN0aW9uLnN0YWNrQXJ0aWZhY3RzLm1hcChzdGFjayA9PiBzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW52UHJvdmlkZXI6IGN4YXBpLkVudmlyb25tZW50W10gfCAoKGlvSG9zdDogSUlvSG9zdCkgPT4gUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPikpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdGhlIGJvb3RzdHJhcCBlbnZpb3JubWVudHNcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBnZXRFbnZpcm9ubWVudHMoaW9Ib3N0OiBJSW9Ib3N0KTogUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5lbnZQcm92aWRlcikpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudlByb3ZpZGVyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnZQcm92aWRlcihpb0hvc3QpO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIHdoZW4gZGVwbG95aW5nIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwRW52aXJvbm1lbnRQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgc291cmNlIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBvbmx5IGNyZWF0ZSBpdCBhbmQgbGVhdmUgaXQgaW4gcmV2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIGZvciBjZGt0b29sa2l0IHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tcHJvdGVjdC1zdGFja3MuaHRtbFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIGRlcGxveW1lbnQgaWYgYSBib290c3RyYXAgc3RhY2sgYWxyZWFkeSBleGlzdHNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVyIHZhbHVlcyBmb3IgdGhlIGJvb3RzdHJhcHBpbmcgdGVtcGxhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRvIGJlIGdpdmVuIHRvIHRoZSBDREsgQm9vdHN0cmFwIGJ1Y2tldFxuICAgKiBCeSBkZWZhdWx0LCBhIG5hbWUgaXMgZ2VuZXJhdGVkIGJ5IENsb3VkRm9ybWF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgYW4gZXhpc3RpbmcgS01TIGtleSB0byBiZSB1c2VkIGZvciBlbmNyeXB0aW5nIGl0ZW1zIGluIHRoZSBidWNrZXRcbiAgICogQnkgZGVmYXVsdCwgdGhlIGRlZmF1bHQgS01TIGtleSBpcyB1c2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSBrbXNLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gY3JlYXRlIGEgbmV3IGN1c3RvbWVyIG1hc3RlciBrZXkgKENNSylcbiAgICpcbiAgICogT25seSBhcHBsaWVzIHRvIG1vZGVybiBib290c3RyYXBwaW5nXG4gICAqIExlZ2FjeSBib290c3RyYXBwaW5nIHdpbGwgbmV2ZXIgY3JlYXRlIGEgQ01LLCBvbmx5IHVzZSB0aGUgZGVmYXVsdCBTMyBrZXlcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUN1c3RvbWVyTWFzdGVyS2V5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgYXJlIHRydXN0ZWQgdG8gZGVwbG95IGludG8gdGhlIGVudmlyb25tZW50IGJlaW5nIGJvb3RzdHJhcHBlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdHJ1c3RlZEFjY291bnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IGFyZSB0cnVzdGVkIHRvIGxvb2sgdXAgdmFsdWVzIGluIHRoZSBlbnZpcm9ubWVudCBiZWluZyBib290c3RyYXBwZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBzaG91bGQgbm90IGJlIHRydXN0ZWQgYnkgdGhlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudFxuICAgKiBJZiB0aGVzZSBhY2NvdW50cyBhcmUgYWxyZWFkeSB0cnVzdGVkLCB0aGV5IHdpbGwgYmUgcmVtb3ZlZCBvbiBib290c3RyYXBwaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB1bnRydXN0ZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOcyBvZiB0aGUgSUFNIG1hbmFnZWQgcG9saWNpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIHJvbGUgcGVyZm9ybWluZyBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50c1xuICAgKiBJbiBtb3N0IGNhc2VzLCB0aGlzIHdpbGwgYmUgdGhlIEFkbWluaXN0cmF0b3JBY2Nlc3MgcG9saWN5XG4gICAqIEF0IGxlYXN0IG9uZSBwb2xpY3kgaXMgcmVxdWlyZWQgaWYgYHRydXN0ZWRBY2NvdW50c2Agd2VyZSBwYXNzZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllciB0byBkaXN0aW5ndWlzaCBtdWx0aXBsZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRzXG4gICAqIFRoZSBkZWZhdWx0IHF1YWxpZmllciBpcyBhbiBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBzdHJpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgJ2huYjY1OWZkcydcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIFMzIFN0YWdpbmcgQnVja2V0IFB1YmxpYyBBY2Nlc3MgQmxvY2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgY3VzdG9tZXIncyBjdXN0b20gcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ25vLW9wJztcbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50Qm9vdHN0cmFwUmVzdWx0W107XG4gIGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBvZiB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZSB3aXRoIGZsZXhpYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IEJvb3RzdHJhcFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RhY2ssIHdoaWxlIGtlZXBpbmcgZXhpc3RpbmcgcGFyYW1ldGVycyBmb3IgdW5zcGVjaWZpZWQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoRXhpc3RpbmcocGFyYW1zOiBCb290c3RyYXBQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBhcyBhIE1hcCBmb3IgZWFzeSBhY2Nlc3MgYW5kIG1hbmlwdWxhdGlvblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBCb290c3RyYXBQYXJhbWV0ZXJzO1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtcz86IEJvb3RzdHJhcFBhcmFtZXRlcnMsIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1zO1xuICB9XG59XG5cbi8qKlxuICogU291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGJvb3RzdHJhcCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTb3VyY2Uge1xuICAvKipcbiAgICogVXNlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGRlZmF1bHQoKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7IHNvdXJjZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgY3VzdG9tIGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGN1c3RvbVRlbXBsYXRlKHRlbXBsYXRlRmlsZTogc3RyaW5nKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICdjdXN0b20nLFxuICAgICAgdGVtcGxhdGVGaWxlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYm9vdHN0cmFwIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHNlcmlhbGl6ZWQgdG8gWUFNTCBvciBKU09OXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBUZW1wbGF0ZSB7XG4gIC8qKlxuICAgKiBMb2FkIGEgYm9vdHN0cmFwIHRlbXBsYXRlIGZyb20gYSBzb3VyY2VcbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZSAtIFRoZSBib290c3RyYXAgdGVtcGxhdGUgc291cmNlIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQSBCb290c3RyYXBUZW1wbGF0ZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGZyb21Tb3VyY2Uoc291cmNlOiBCb290c3RyYXBPcHRpb25zWydzb3VyY2UnXSA9IHsgc291cmNlOiAnZGVmYXVsdCcgfSk6IFByb21pc2U8Qm9vdHN0cmFwVGVtcGxhdGU+IHtcbiAgICBsZXQgdGVtcGxhdGU6IGFueTtcblxuICAgIHN3aXRjaCAoc291cmNlLnNvdXJjZSkge1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgdGVtcGxhdGUgPSBhd2FpdCBsb2FkU3RydWN0dXJlZEZpbGUoc291cmNlLnRlbXBsYXRlRmlsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgIHRlbXBsYXRlID0gYXdhaXQgbG9hZFN0cnVjdHVyZWRGaWxlKHBhdGguam9pbihidW5kbGVkUGFja2FnZVJvb3REaXIoX19kaXJuYW1lKSwgJ2xpYicsICdhcGknLCAnYm9vdHN0cmFwJywgJ2Jvb3RzdHJhcC10ZW1wbGF0ZS55YW1sJykpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFRlbXBsYXRlKHRlbXBsYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZTogYW55KSB7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0ZW1wbGF0ZSBhcyBZQU1MXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0ZW1wbGF0ZSBhcyBhIFlBTUwgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgYXNZQU1MKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZSh0aGlzLnRlbXBsYXRlLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0ZW1wbGF0ZSBhcyBKU09OXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0ZW1wbGF0ZSBhcyBhIEpTT04gc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgYXNKU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZSh0aGlzLnRlbXBsYXRlLCB0cnVlKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.environmentsFromDescriptors = environmentsFromDescriptors;\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\n/**\n * Given a set of \"/\" strings, construct environments for them\n */\nfunction environmentsFromDescriptors(envSpecs) {\n const ret = new Array();\n for (const spec of envSpecs) {\n const parts = spec.replace(/^aws:\\/\\//, '').split('/');\n if (parts.length !== 2) {\n throw new toolkit_error_1.ToolkitError('InvalidEnvironmentFormat', `Expected environment name in format 'aws:///', got: ${spec}`);\n }\n ret.push({\n name: spec,\n account: parts[0],\n region: parts[1],\n });\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxrRUFpQkM7QUF0QkQsa0VBQThEO0FBRTlEOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsUUFBa0I7SUFDNUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQXFCLENBQUM7SUFFM0MsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDBCQUEwQixFQUFFLHdFQUF3RSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JJLENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ1AsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqQixNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBHaXZlbiBhIHNldCBvZiBcIjxhY2NvdW50Pi88cmVnaW9uPlwiIHN0cmluZ3MsIGNvbnN0cnVjdCBlbnZpcm9ubWVudHMgZm9yIHRoZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudmlyb25tZW50c0Zyb21EZXNjcmlwdG9ycyhlbnZTcGVjczogc3RyaW5nW10pOiBjeGFwaS5FbnZpcm9ubWVudFtdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PGN4YXBpLkVudmlyb25tZW50PigpO1xuXG4gIGZvciAoY29uc3Qgc3BlYyBvZiBlbnZTcGVjcykge1xuICAgIGNvbnN0IHBhcnRzID0gc3BlYy5yZXBsYWNlKC9eYXdzOlxcL1xcLy8sICcnKS5zcGxpdCgnLycpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRFbnZpcm9ubWVudEZvcm1hdCcsIGBFeHBlY3RlZCBlbnZpcm9ubWVudCBuYW1lIGluIGZvcm1hdCAnYXdzOi8vPGFjY291bnQ+LzxyZWdpb24+JywgZ290OiAke3NwZWN9YCk7XG4gICAgfVxuXG4gICAgcmV0LnB1c2goe1xuICAgICAgbmFtZTogc3BlYyxcbiAgICAgIGFjY291bnQ6IHBhcnRzWzBdLFxuICAgICAgcmVnaW9uOiBwYXJ0c1sxXSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackParameters = exports.AssetBuildTime = void 0;\n/**\n * When to build assets\n */\nvar AssetBuildTime;\n(function (AssetBuildTime) {\n /**\n * Build all assets before deploying the first stack\n *\n * This is intended for expensive Docker image builds; so that if the Docker image build\n * fails, no stacks are unnecessarily deployed (with the attendant wait time).\n */\n AssetBuildTime[\"ALL_BEFORE_DEPLOY\"] = \"all-before-deploy\";\n /**\n * Build assets just-in-time, before publishing\n */\n AssetBuildTime[\"JUST_IN_TIME\"] = \"just-in-time\";\n})(AssetBuildTime || (exports.AssetBuildTime = AssetBuildTime = {}));\nclass StackParameters {\n /**\n * Use only existing parameters on the stack.\n */\n static onlyExisting() {\n return new StackParameters({}, true);\n }\n /**\n * Use exactly these parameters and remove any other existing parameters from the stack.\n */\n static exactly(params) {\n return new StackParameters(params, false);\n }\n /**\n * Define additional parameters for the stack, while keeping existing parameters for unspecified values.\n */\n static withExisting(params) {\n return new StackParameters(params, true);\n }\n parameters;\n keepExistingParameters;\n constructor(params, usePreviousParameters = true) {\n this.keepExistingParameters = usePreviousParameters;\n this.parameters = new Map(Object.entries(params));\n }\n}\nexports.StackParameters = StackParameters;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1RUE7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxNQUFhLGVBQWU7SUFDMUI7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQThDO1FBQ2xFLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBOEM7UUFDdkUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVlLFVBQVUsQ0FBa0M7SUFDNUMsc0JBQXNCLENBQVU7SUFFaEQsWUFBb0IsTUFBOEMsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1FBQzlGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE3QkQsMENBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQgfCBIb3Rzd2FwRGVwbG95bWVudDtcblxuLyoqXG4gKiBVc2Ugc3RhY2sgQVBJcyB0byB0aGUgZGVwbG95IHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3REZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZGlyZWN0Jztcbn1cblxuLyoqXG4gKiBVc2UgY2hhbmdlLXNldCBBUElzIHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnY2hhbmdlLXNldCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgY2hhbmdlc2V0IG9yIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY2hhbmdlIHNldCBpbXBvcnRzIHJlc291cmNlcyB0aGF0IGFscmVhZHkgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkcmlmdC1hd2FyZSBjaGFuZ2Ugc2V0IHRoYXQgYnJpbmdzIGFjdHVhbCByZXNvdXJjZSBzdGF0ZXMgaW4gbGluZSB3aXRoIHRlbXBsYXRlIGRlZmluaXRpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV2ZXJ0RHJpZnQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBlcmZvcm0gYSAnaG90c3dhcCcgZGVwbG95bWVudCB0byBkZXBsb3kgYSBzdGFjayBjaGFuZ2VzXG4gKlxuICogQSAnaG90c3dhcCcgZGVwbG95bWVudCB3aWxsIGF0dGVtcHQgdG8gc2hvcnQtY2lyY3VpdCBDbG91ZEZvcm1hdGlvblxuICogYW5kIHVwZGF0ZSB0aGUgYWZmZWN0ZWQgcmVzb3VyY2VzIGxpa2UgTGFtYmRhIGZ1bmN0aW9ucyBkaXJlY3RseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwRGVwbG95bWVudCB7XG4gIHJlYWRvbmx5IG1ldGhvZDogJ2hvdHN3YXAnO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgb3ZlcnJpZGVzIGZvciBob3Rzd2FwIGRlcGxveW1lbnRzLlxuICAgKiBDdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgYnkgRUNTLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG92ZXJyaWRlc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IEhvdHN3YXBQcm9wZXJ0aWVzO1xuXG4gIC8qKlxuICAgKiBGYWxsIGJhY2sgdG8gYSBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50IHdoZW4gYSBub24taG90c3dhcHBhYmxlIGNoYW5nZSBpcyBkZXRlY3RlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERvIG5vdCBmYWxsIGJhY2sgdG8gYSBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSBmYWxsYmFjaz86IERpcmVjdERlcGxveW1lbnQgfCBDaGFuZ2VTZXREZXBsb3ltZW50O1xufVxuXG4vKipcbiAqIFdoZW4gdG8gYnVpbGQgYXNzZXRzXG4gKi9cbmV4cG9ydCBlbnVtIEFzc2V0QnVpbGRUaW1lIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGFsbCBhc3NldHMgYmVmb3JlIGRlcGxveWluZyB0aGUgZmlyc3Qgc3RhY2tcbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbmRlZCBmb3IgZXhwZW5zaXZlIERvY2tlciBpbWFnZSBidWlsZHM7IHNvIHRoYXQgaWYgdGhlIERvY2tlciBpbWFnZSBidWlsZFxuICAgKiBmYWlscywgbm8gc3RhY2tzIGFyZSB1bm5lY2Vzc2FyaWx5IGRlcGxveWVkICh3aXRoIHRoZSBhdHRlbmRhbnQgd2FpdCB0aW1lKS5cbiAgICovXG4gIEFMTF9CRUZPUkVfREVQTE9ZID0gJ2FsbC1iZWZvcmUtZGVwbG95JyxcblxuICAvKipcbiAgICogQnVpbGQgYXNzZXRzIGp1c3QtaW4tdGltZSwgYmVmb3JlIHB1Ymxpc2hpbmdcbiAgICovXG4gIEpVU1RfSU5fVElNRSA9ICdqdXN0LWluLXRpbWUnLFxufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHN0YWNrLCB3aGlsZSBrZWVwaW5nIGV4aXN0aW5nIHBhcmFtZXRlcnMgZm9yIHVuc3BlY2lmaWVkIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aEV4aXN0aW5nKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIHB1YmxpYyByZWFkb25seSBrZWVwRXhpc3RpbmdQYXJhbWV0ZXJzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgdXNlUHJldmlvdXNQYXJhbWV0ZXJzID0gdHJ1ZSkge1xuICAgIHRoaXMua2VlcEV4aXN0aW5nUGFyYW1ldGVycyA9IHVzZVByZXZpb3VzUGFyYW1ldGVycztcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKHBhcmFtcykpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gZGVwbG95XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogUm9sZSB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3kgZXZlbiBpZiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBvbmUgd2UgYXJlIGFib3V0IHRvIGRlcGxveS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlcGxveW1lbnQgbWV0aG9kXG4gICAqXG4gICAqIEBkZWZhdWx0IENoYW5nZVNldERlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xuXG4gIC8qKlxuICAgKiBSb2xsYmFjayBmYWlsZWQgZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sbGJhY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IG9ycGhhbiByZXNvdXJjZXMgdGhhdCBmYWlsZWQgZHVyaW5nIHJvbGxiYWNrXG4gICAqXG4gICAqIEhhcyBubyBlZmZlY3QgaWYgYHJvbGxiYWNrYCBpcyBgZmFsc2VgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgb3JwaGFuRmFpbGVkUmVzb3VyY2VzRHVyaW5nUm9sbGJhY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3JjZSBhc3NldCBwdWJsaXNoaW5nIGV2ZW4gaWYgdGhlIGFzc2V0cyBoYXZlIG5vdCBjaGFuZ2VkXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZUFzc2V0UHVibGlzaGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldXNlIHRoZSBhc3NldHMgd2l0aCB0aGUgZ2l2ZW4gYXNzZXQgSURzXG4gICAqL1xuICByZWFkb25seSByZXVzZUFzc2V0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXMgZGVwbG95bWVudHMgKGRlcGVuZGVuY3kgcGVybWl0dGluZykgdG8gZXhlY3V0ZS5cbiAgICogVGhlIGRlZmF1bHQgaXMgJzEnLCB3aGljaCBleGVjdXRlcyBhbGwgZGVwbG95bWVudHMgc2VyaWFsbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNlbmQgbG9ncyBmcm9tIGFsbCBDbG91ZFdhdGNoIGxvZyBncm91cHMgaW4gdGhlIHRlbXBsYXRlXG4gICAqIHRvIHRoZSBJb0hvc3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFSTnMgb2YgU05TIHRvcGljcyB0aGF0IENsb3VkRm9ybWF0aW9uIHdpbGwgbm90aWZ5IHdpdGggc3RhY2sgcmVsYXRlZCBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGFncyB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFN0YWNrIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHVzZWQgYXQgZGVwbG95IHRpbWVcbiAgICogQGRlZmF1bHQgU3RhY2tQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIGZpbGUgd2hlcmUgc3RhY2sgb3V0cHV0cyB3aWxsIGJlIHdyaXR0ZW4gYWZ0ZXIgYSBzdWNjZXNzZnVsIGRlcGxveSBhcyBKU09OXG4gICAqIEBkZWZhdWx0IC0gT3V0cHV0cyBhcmUgbm90IHdyaXR0ZW4gdG8gYW55IGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHNGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZC9wdWJsaXNoIGFzc2V0cyBmb3IgYSBzaW5nbGUgc3RhY2sgaW4gcGFyYWxsZWxcbiAgICpcbiAgICogSW5kZXBlbmRlbnQgb2Ygd2hldGhlciBzdGFja3MgYXJlIGJlaW5nIGRvbmUgaW4gcGFyYWxsZWwgb3Igbm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0UGFyYWxsZWxpc20/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBhc3NldCBidWlsZHMgdG8gcnVuIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBvbmx5IGhhcyBhbiBlZmZlY3QgaWYgYGFzc2V0UGFyYWxsZWxpc21gIGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0QnVpbGRDb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIEVDUyBob3Rzd2Fwc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjc0hvdHN3YXBQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBsb3dlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgbXVzdCByZW1haW5cbiAgICogaW4gdGhlIFJVTk5JTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB1cHBlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgYXJlIGFsbG93ZWRcbiAgICogaW4gdGhlIFJVTk5JTkcgb3IgUEVORElORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgdG8gcmVhY2ggc3RhYmxlIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBFQ1Mgc3BlY2lmaWMgaG90c3dhcCBwcm9wZXJ0eSBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGVjcz86IEVjc0hvdHN3YXBQcm9wZXJ0aWVzO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2xvZ3MtbW9uaXRvci9sb2dzLW1vbml0b3InO1xuXG4vKipcbiAqIERlcGxveSBvcHRpb25zIG5lZWRlZCBieSB0aGUgd2F0Y2ggY29tbWFuZC5cbiAqXG4gKiBUaGVzZSBvcHRpb25zIGFyZSBub3QgcHVibGljIGZhY2luZy5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlRGVwbG95T3B0aW9ucyBleHRlbmRzIERlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGV4dHJhIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyIHdoZW4gcGVyZm9ybWluZyBBV1MgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdGhpbmcgZXh0cmEgaXMgYXBwZW5kZWQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyXG4gICAqL1xuICByZWFkb25seSBleHRyYVVzZXJBZ2VudD86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gdGhlIGxvZyBtb25pdG9yIHZpYVxuICAgKiBjbG91ZFdhdGNoTG9nTW9uaXRvci5zZXRMb2dHcm91cHMoKTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3QgbW9uaXRvcmluZyBDbG91ZFdhdGNoIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dNb25pdG9yPzogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_DEPLOY_CHANGE_SET_NAME = void 0;\nexports.isChangeSetDeployment = isChangeSetDeployment;\nexports.isExecutingChangeSetDeployment = isExecutingChangeSetDeployment;\nexports.isNonExecutingChangeSetDeployment = isNonExecutingChangeSetDeployment;\nexports.toExecuteChangeSetDeployment = toExecuteChangeSetDeployment;\nexports.DEFAULT_DEPLOY_CHANGE_SET_NAME = 'cdk-deploy-change-set';\n/**\n * Returns true if the deployment method is a change-set deployment.\n */\nfunction isChangeSetDeployment(method) {\n return method?.method === 'change-set';\n}\n/**\n * Returns true if the deployment method is a change-set deployment that will execute.\n */\nfunction isExecutingChangeSetDeployment(method) {\n return isChangeSetDeployment(method) && (method.execute ?? true);\n}\n/**\n * Returns true if the deployment method is a change-set deployment that will not execute.\n */\nfunction isNonExecutingChangeSetDeployment(method) {\n return isChangeSetDeployment(method) && (method.execute === false);\n}\n/**\n * Create an ExecuteChangeSetDeployment from a ChangeSetDeployment.\n */\nfunction toExecuteChangeSetDeployment(method) {\n return {\n method: 'execute-change-set',\n changeSetName: method.changeSetName ?? exports.DEFAULT_DEPLOY_CHANGE_SET_NAME,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC1tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ltZW50LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEwQkEsc0RBRUM7QUFLRCx3RUFFQztBQUtELDhFQUVDO0FBS0Qsb0VBS0M7QUFsRFksUUFBQSw4QkFBOEIsR0FBRyx1QkFBdUIsQ0FBQztBQXFCdEU7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxNQUF5QjtJQUM3RCxPQUFPLE1BQU0sRUFBRSxNQUFNLEtBQUssWUFBWSxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDhCQUE4QixDQUFDLE1BQXlCO0lBQ3RFLE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGlDQUFpQyxDQUFDLE1BQXlCO0lBQ3pFLE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDRCQUE0QixDQUFDLE1BQTJCO0lBQ3RFLE9BQU87UUFDTCxNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYSxJQUFJLHNDQUE4QjtLQUN0RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGVwbG95bWVudCwgRGVwbG95bWVudE1ldGhvZCB9IGZyb20gJy4uJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREVQTE9ZX0NIQU5HRV9TRVRfTkFNRSA9ICdjZGstZGVwbG95LWNoYW5nZS1zZXQnO1xuXG4vKipcbiAqIEV4ZWN1dGUgYSBwcmV2aW91c2x5IGNyZWF0ZWQgY2hhbmdlIHNldC5cbiAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgZGVwbG95bWVudCBtZXRob2QgdXNlZCBieSB0aGUgdHdvLXBoYXNlIGRlcGxveSBmbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZXhlY3V0ZS1jaGFuZ2Utc2V0JztcbiAgcmVhZG9ubHkgY2hhbmdlU2V0TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY2hhbmdlIHNldCBkZXBsb3ltZW50IHRoYXQgd2lsbCBleGVjdXRlLlxuICovXG5leHBvcnQgdHlwZSBFeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50ID0gQ2hhbmdlU2V0RGVwbG95bWVudCAmIHsgZXhlY3V0ZTogdHJ1ZSB9O1xuXG4vKipcbiAqIEEgY2hhbmdlIHNldCBkZXBsb3ltZW50IHRoYXQgd2lsbCBub3QgZXhlY3V0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgTm9uRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudCA9IENoYW5nZVNldERlcGxveW1lbnQgJiB7IGV4ZWN1dGU6IGZhbHNlIH07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBkZXBsb3ltZW50IG1ldGhvZCBpcyBhIGNoYW5nZS1zZXQgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2hhbmdlU2V0RGVwbG95bWVudChtZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kKTogbWV0aG9kIGlzIENoYW5nZVNldERlcGxveW1lbnQge1xuICByZXR1cm4gbWV0aG9kPy5tZXRob2QgPT09ICdjaGFuZ2Utc2V0Jztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRlcGxveW1lbnQgbWV0aG9kIGlzIGEgY2hhbmdlLXNldCBkZXBsb3ltZW50IHRoYXQgd2lsbCBleGVjdXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50KG1ldGhvZD86IERlcGxveW1lbnRNZXRob2QpOiBtZXRob2QgaXMgRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudCB7XG4gIHJldHVybiBpc0NoYW5nZVNldERlcGxveW1lbnQobWV0aG9kKSAmJiAobWV0aG9kLmV4ZWN1dGUgPz8gdHJ1ZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBkZXBsb3ltZW50IG1ldGhvZCBpcyBhIGNoYW5nZS1zZXQgZGVwbG95bWVudCB0aGF0IHdpbGwgbm90IGV4ZWN1dGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05vbkV4ZWN1dGluZ0NoYW5nZVNldERlcGxveW1lbnQobWV0aG9kPzogRGVwbG95bWVudE1ldGhvZCk6IG1ldGhvZCBpcyBOb25FeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmV0dXJuIGlzQ2hhbmdlU2V0RGVwbG95bWVudChtZXRob2QpICYmIChtZXRob2QuZXhlY3V0ZSA9PT0gZmFsc2UpO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudCBmcm9tIGEgQ2hhbmdlU2V0RGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRXhlY3V0ZUNoYW5nZVNldERlcGxveW1lbnQobWV0aG9kOiBDaGFuZ2VTZXREZXBsb3ltZW50KTogRXhlY3V0ZUNoYW5nZVNldERlcGxveW1lbnQge1xuICByZXR1cm4ge1xuICAgIG1ldGhvZDogJ2V4ZWN1dGUtY2hhbmdlLXNldCcsXG4gICAgY2hhbmdlU2V0TmFtZTogbWV0aG9kLmNoYW5nZVNldE5hbWUgPz8gREVGQVVMVF9ERVBMT1lfQ0hBTkdFX1NFVF9OQU1FLFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildParameterMap = buildParameterMap;\nexports.removePublishedAssetsFromWorkGraph = removePublishedAssetsFromWorkGraph;\nfunction buildParameterMap(parameters) {\n const parameterMap = {};\n parameterMap['*'] = {};\n const entries = parameters?.entries() ?? [];\n for (const [key, value] of entries) {\n const [stack, parameter] = key.split(':', 2);\n if (!parameter) {\n parameterMap['*'][stack] = value;\n }\n else {\n if (!parameterMap[stack]) {\n parameterMap[stack] = {};\n }\n parameterMap[stack][parameter] = value;\n }\n }\n return parameterMap;\n}\n/**\n * Remove the asset publishing and building from the work graph for assets that are already in place\n */\nasync function removePublishedAssetsFromWorkGraph(graph, deployments, options) {\n await graph.removeUnnecessaryAssets(assetNode => deployments.isSingleAssetPublished(assetNode.assetManifest, assetNode.asset, {\n stack: assetNode.parentStack,\n roleArn: options.roleArn,\n stackName: assetNode.parentStack.stackName,\n }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw4Q0FvQkM7QUFLRCxnRkFNQztBQS9CRCxTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0NBQWtDLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3pILE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50cyB9IGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cyc7XG5pbXBvcnQgdHlwZSB7IFdvcmtHcmFwaCB9IGZyb20gJy4uLy4uLy4uL2FwaS93b3JrLWdyYXBoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGFyYW1ldGVyTWFwKHBhcmFtZXRlcnM/OiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KTogeyBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfSB7XG4gIGNvbnN0IHBhcmFtZXRlck1hcDoge1xuICAgIFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgfSA9IHt9O1xuICBwYXJhbWV0ZXJNYXBbJyonXSA9IHt9O1xuXG4gIGNvbnN0IGVudHJpZXMgPSBwYXJhbWV0ZXJzPy5lbnRyaWVzKCkgPz8gW107XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBbc3RhY2ssIHBhcmFtZXRlcl0gPSBrZXkuc3BsaXQoJzonLCAyKSBhcyBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdO1xuICAgIGlmICghcGFyYW1ldGVyKSB7XG4gICAgICBwYXJhbWV0ZXJNYXBbJyonXVtzdGFja10gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFwYXJhbWV0ZXJNYXBbc3RhY2tdKSB7XG4gICAgICAgIHBhcmFtZXRlck1hcFtzdGFja10gPSB7fTtcbiAgICAgIH1cbiAgICAgIHBhcmFtZXRlck1hcFtzdGFja11bcGFyYW1ldGVyXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJhbWV0ZXJNYXA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBhc3NldCBwdWJsaXNoaW5nIGFuZCBidWlsZGluZyBmcm9tIHRoZSB3b3JrIGdyYXBoIGZvciBhc3NldHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBwbGFjZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVtb3ZlUHVibGlzaGVkQXNzZXRzRnJvbVdvcmtHcmFwaChncmFwaDogV29ya0dyYXBoLCBkZXBsb3ltZW50czogRGVwbG95bWVudHMsIG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgYXdhaXQgZ3JhcGgucmVtb3ZlVW5uZWNlc3NhcnlBc3NldHMoYXNzZXROb2RlID0+IGRlcGxveW1lbnRzLmlzU2luZ2xlQXNzZXRQdWJsaXNoZWQoYXNzZXROb2RlLmFzc2V0TWFuaWZlc3QsIGFzc2V0Tm9kZS5hc3NldCwge1xuICAgIHN0YWNrOiBhc3NldE5vZGUucGFyZW50U3RhY2ssXG4gICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIHN0YWNrTmFtZTogYXNzZXROb2RlLnBhcmVudFN0YWNrLnN0YWNrTmFtZSxcbiAgfSkpO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./deploy-options\"), exports);\n__exportStar(require(\"./deployment-method\"), exports);\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLHNEQUFvQztBQUNwQyw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RlcGxveS1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwbG95bWVudC1tZXRob2QnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJuIG9mIHRoZSBJQU0gcm9sZSB0byB1c2UgZm9yIHRoZSBzdGFjayBkZXN0cm95IG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGRlc3Ryb3lzIChkZXBlbmRlbmN5IHBlcm1pdHRpbmcpIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogbnVtYmVyO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffMethod = void 0;\nclass DiffMethod {\n method;\n options;\n /**\n * Use a changeset to compute the diff.\n *\n * This will create, analyze, and subsequently delete a changeset against the CloudFormation stack.\n */\n static ChangeSet(options = {}) {\n return new class extends DiffMethod {\n options;\n constructor(opts) {\n super('change-set', opts);\n this.options = opts;\n }\n }(options);\n }\n static TemplateOnly(options = {}) {\n return new class extends DiffMethod {\n options;\n constructor(opts) {\n super('template-only', opts);\n this.options = opts;\n }\n }(options);\n }\n /**\n * Use a local template file to compute the diff.\n */\n static LocalFile(path) {\n return new class extends DiffMethod {\n options;\n constructor(opts) {\n super('local-file', opts);\n this.options = opts;\n }\n }({ path });\n }\n constructor(method, options) {\n this.method = method;\n this.options = options;\n }\n}\nexports.DiffMethod = DiffMethod;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0EsTUFBYSxVQUFVO0lBd0NIO0lBQ0E7SUF4Q2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBbUI7WUFDbkQsWUFBbUIsSUFBMEI7Z0JBQzNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNrQixNQUFxRCxFQUNyRCxPQUFnRjtRQURoRixXQUFNLEdBQU4sTUFBTSxDQUErQztRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUF5RTtJQUVsRyxDQUFDO0NBQ0Y7QUE1Q0QsZ0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBkaWZmIGFnYWluc3QgdGhlIHRlbXBsYXRlIGFmdGVyIHRoZSBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm1zIGluc2lkZSBpdCBoYXZlIGJlZW4gZXhlY3V0ZWRcbiAgICogKGFzIG9wcG9zZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLCB0aGUgZGVmYXVsdCwgd2hpY2ggY29udGFpbnMgdGhlIHVucHJvY2Vzc2VkIFRyYW5zZm9ybXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGlmZk9wdGlvbnMgZXh0ZW5kcyBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmYWxsaW5nIGJhY2sgdG8gdGVtcGxhdGUtYmFzZWQgZGlmZiBpbiBjYXNlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaXMgbm90IHBvc3NpYmxlIG9yIHJlc3VsdHMgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIGZvciBzdGFja3MgY29udGFpbmluZyBuZXN0ZWQgc3RhY2tzIG9yIHdoZW4gY2hhbmdlIHNldCBwZXJtaXNzaW9ucyBhcmVuJ3QgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja1RvVGVtcGxhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBkaWZmIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsRmlsZURpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGxvY2FsIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmTWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBhIGNoYW5nZXNldCB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlLCBhbmFseXplLCBhbmQgc3Vic2VxdWVudGx5IGRlbGV0ZSBhIGNoYW5nZXNldCBhZ2FpbnN0IHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ2hhbmdlU2V0KG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zID0ge30pOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2hhbmdlU2V0RGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2NoYW5nZS1zZXQnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBUZW1wbGF0ZU9ubHkob3B0aW9uczogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucykge1xuICAgICAgICBzdXBlcigndGVtcGxhdGUtb25seScsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgfVxuICAgIH0ob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgbG9jYWwgdGVtcGxhdGUgZmlsZSB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBMb2NhbEZpbGUocGF0aDogc3RyaW5nKTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IHsgcGF0aDogc3RyaW5nIH07XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogTG9jYWxGaWxlRGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2xvY2FsLWZpbGUnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KHsgcGF0aCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogJ2NoYW5nZS1zZXQnIHwgJ3RlbXBsYXRlLW9ubHknIHwgJ2xvY2FsLWZpbGUnLFxuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBDaGFuZ2VTZXREaWZmT3B0aW9ucyB8IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnMgfCBMb2NhbEZpbGVEaWZmT3B0aW9ucyxcbiAgKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZGlmZiBtZXRob2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gY3JlYXRlIGEgc3RhY2sgZGlmZi5cbiAgICpcbiAgICogVXNlIGNoYW5nZXNldCBkaWZmIGZvciB0aGUgaGlnaGVzdCBmaWRlbGl0eSwgaW5jbHVkaW5nIGFuYWx5emUgcmVzb3VyY2UgcmVwbGFjZW1lbnRzLlxuICAgKiBJbiB0aGlzIG1ldGhvZCwgZGlmZiB3aWxsIHVzZSB0aGUgZGVwbG95IHJvbGUgaW5zdGVhZCBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIFVzZSB0ZW1wbGF0ZS1vbmx5IGRpZmYgZm9yIGEgZmFzdGVyLCBsZXNzIGFjY3VyYXRlIGRpZmYgdGhhdCBkb2Vzbid0IHJlcXVpcmVcbiAgICogcGVybWlzc2lvbnMgdG8gY3JlYXRlIGEgY2hhbmdlLXNldC5cbiAgICpcbiAgICogVXNlIGxvY2FsLXRlbXBsYXRlIGRpZmYgZm9yIGEgZmFzdCwgbG9jYWwtb25seSBkaWZmIHRoYXQgZG9lc24ndCByZXF1aXJlXG4gICAqIGFueSBwZXJtaXNzaW9ucyBvciBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IERpZmZNZXRob2QuQ2hhbmdlU2V0XG4gICAqL1xuICByZWFkb25seSBtZXRob2Q/OiBEaWZmTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdHJpY3QgZGlmZiBtb2RlXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIG5vdCBmaWx0ZXIgb3V0IEFXUzo6Q0RLOjpNZXRhZGF0YSByZXNvdXJjZXMsIG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIG9yIHRoZSBDaGVja0Jvb3RzdHJhcFZlcnNpb25SdWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgbGluZXMgb2YgY29udGV4dCB0byBzaG93IGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHJlc291cmNlIG1vdmVzIGluIHRoZSBkaWZmLiBUaGVzZSBhcmUgdGhlIHNhbWUgbW92ZXMgdGhhdCBhcmUgZGV0ZWN0ZWRcbiAgICogYnkgdGhlIGByZWZhY3RvcmAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVNb3Zlcz86IGJvb2xlYW47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareDiff = prepareDiff;\nexports.appendObject = appendObject;\nconst fs = require(\"fs-extra\");\nconst uuid = require(\"uuid\");\nconst __1 = require(\"..\");\nconst cfnApi = require(\"../../../api/deployments/cfn-api\");\nconst resource_import_1 = require(\"../../../api/resource-import\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../../util\");\nconst mapping_helpers_1 = require(\"../../refactor/private/mapping-helpers\");\nfunction prepareDiff(ioHelper, stacks, deployments, sdkProvider, options) {\n switch (options.method?.method ?? __1.DiffMethod.ChangeSet().method) {\n case 'local-file':\n return localFileDiff(stacks, options);\n case 'template-only':\n return cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, false);\n case 'change-set':\n return cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, true);\n default:\n throw new toolkit_error_1.ToolkitError('UnknownDiffMethod', (0, util_1.formatErrorMessage)(`Unknown diff method ${options.method}`));\n }\n}\nasync function localFileDiff(stacks, options) {\n const methodOptions = (options.method?.options ?? {});\n // Compare single stack against fixed template\n if (stacks.stackCount !== 1) {\n throw new toolkit_error_1.ToolkitError('SingleStackRequired', 'Can only select one stack when comparing to fixed template. Use --exclusively to avoid selecting multiple stacks.');\n }\n if (!(await fs.pathExists(methodOptions.path))) {\n throw new toolkit_error_1.ToolkitError('TemplateFileNotFound', `There is no file at ${methodOptions.path}`);\n }\n const file = fs.readFileSync(methodOptions.path).toString();\n const template = (0, util_1.deserializeStructure)(file);\n return [{\n oldTemplate: template,\n newTemplate: stacks.firstStack,\n }];\n}\nasync function cfnDiff(ioHelper, stacks, deployments, options, sdkProvider, includeChangeSet) {\n const templateInfos = [];\n const methodOptions = (options.method?.options ?? {});\n const allMappings = options.includeMoves\n ? await (0, mapping_helpers_1.mappingsByEnvironment)(stacks.stackArtifacts, sdkProvider, true)\n : [];\n // Compare N stacks against deployed templates\n for (const stack of stacks.stackArtifacts) {\n const templateWithNestedStacks = await deployments.readCurrentTemplateWithNestedStacks(stack, methodOptions.compareAgainstProcessedTemplate);\n const currentTemplate = templateWithNestedStacks.deployedRootTemplate;\n const nestedStacks = templateWithNestedStacks.nestedStacks;\n const migrator = new resource_import_1.ResourceMigrator({ deployments, ioHelper });\n const resourcesToImport = await migrator.tryGetResources(await deployments.resolveEnvironment(stack));\n if (resourcesToImport) {\n (0, resource_import_1.removeNonImportResources)(stack);\n }\n const changeSet = includeChangeSet ? await changeSetDiff(ioHelper, deployments, stack, sdkProvider, resourcesToImport, methodOptions.parameters, methodOptions.fallbackToTemplate, methodOptions.importExistingResources) : undefined;\n // If the changeset includes nested stacks, describe each nested changeset\n // and attach it to the corresponding entry in nestedStacks.\n if (changeSet) {\n await attachNestedChangeSetData(deployments, stack, changeSet, nestedStacks);\n }\n const mappings = allMappings.find(m => m.environment.region === stack.environment.region && m.environment.account === stack.environment.account)?.mappings ?? {};\n templateInfos.push({\n oldTemplate: currentTemplate,\n newTemplate: stack,\n isImport: !!resourcesToImport,\n nestedStacks,\n changeSet,\n mappings,\n });\n }\n return templateInfos;\n}\nasync function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resourcesToImport, parameters = {}, fallBackToTemplate = true, importExistingResources = false) {\n return cfnApi.createDiffChangeSet(ioHelper, {\n stack,\n uuid: uuid.v4(),\n deployments,\n willExecute: false,\n sdkProvider,\n parameters: parameters,\n resourcesToImport,\n failOnError: !fallBackToTemplate,\n importExistingResources,\n });\n}\n/**\n * Walk the root changeset's Changes looking for nested stack resources\n * that have their own ChangeSetId. Describe each nested changeset and\n * attach it to the matching entry in the nestedStacks map.\n */\nasync function attachNestedChangeSetData(deployments, stack, rootChangeSet, nestedStacks) {\n const env = await deployments.envs.accessStackForReadOnlyStackOperations(stack);\n const cfn = env.sdk.cloudFormation();\n for (const change of rootChangeSet.Changes ?? []) {\n const rc = change.ResourceChange;\n if (rc?.ResourceType !== 'AWS::CloudFormation::Stack' || !rc.ChangeSetId || !rc.LogicalResourceId) {\n continue;\n }\n const nested = nestedStacks[rc.LogicalResourceId];\n if (!nested) {\n continue;\n }\n const nestedChangeSet = await cfn.describeChangeSet({\n ChangeSetName: rc.ChangeSetId,\n StackName: rc.PhysicalResourceId ?? rc.LogicalResourceId,\n });\n // Replace the entry with one that includes the changeset\n nestedStacks[rc.LogicalResourceId] = {\n ...nested,\n changeSet: nestedChangeSet,\n };\n // Recurse into deeper nesting levels\n if (nestedChangeSet && Object.keys(nested.nestedStackTemplates).length > 0) {\n await attachNestedChangeSetData(deployments, stack, nestedChangeSet, nested.nestedStackTemplates);\n }\n }\n}\n/**\n * Appends all properties from obj2 to obj1.\n * obj2 values take priority in the case of collisions.\n *\n * @param obj1 - The object to modify\n * @param obj2 - The object to consume\n *\n * @returns obj1 with all properties from obj2\n */\nfunction appendObject(obj1, obj2) {\n // Directly modify obj1 by adding all properties from obj2\n for (const key in obj2) {\n obj1[key] = obj2[key];\n }\n // Return the modified obj1\n return obj1;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsa0NBaUJDO0FBcUtELG9DQVdDO0FBbE5ELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFFN0IsMEJBQWdDO0FBS2hDLDJEQUEyRDtBQUkzRCxrRUFBMEY7QUFDMUYsa0VBQThEO0FBQzlELHdDQUF5RTtBQUN6RSw0RUFBK0U7QUFFL0UsU0FBZ0IsV0FBVyxDQUN6QixRQUFrQixFQUNsQixNQUF1QixFQUN2QixXQUF3QixFQUN4QixXQUF3QixFQUN4QixPQUFvQjtJQUVwQixRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLGNBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxLQUFLLFlBQVk7WUFDZixPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0UsS0FBSyxZQUFZO1lBQ2YsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RTtZQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUEseUJBQWtCLEVBQUMsdUJBQXVCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQXVCLEVBQUUsT0FBb0I7SUFDeEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQXlCLENBQUM7SUFFOUUsOENBQThD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Q3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0ICogYXMgY2ZuQXBpIGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cy9jZm4tYXBpJztcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVJbmZvIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2RpZmYnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVzb3VyY2UtaW1wb3J0JztcbmltcG9ydCB7IHJlbW92ZU5vbkltcG9ydFJlc291cmNlcywgUmVzb3VyY2VNaWdyYXRvciB9IGZyb20gJy4uLy4uLy4uL2FwaS9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGRlc2VyaWFsaXplU3RydWN0dXJlLCBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlsJztcbmltcG9ydCB7IG1hcHBpbmdzQnlFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3JlZmFjdG9yL3ByaXZhdGUvbWFwcGluZy1oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVEaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIHN3aXRjaCAob3B0aW9ucy5tZXRob2Q/Lm1ldGhvZCA/PyBEaWZmTWV0aG9kLkNoYW5nZVNldCgpLm1ldGhvZCkge1xuICAgIGNhc2UgJ2xvY2FsLWZpbGUnOlxuICAgICAgcmV0dXJuIGxvY2FsRmlsZURpZmYoc3RhY2tzLCBvcHRpb25zKTtcbiAgICBjYXNlICd0ZW1wbGF0ZS1vbmx5JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgZmFsc2UpO1xuICAgIGNhc2UgJ2NoYW5nZS1zZXQnOlxuICAgICAgcmV0dXJuIGNmbkRpZmYoaW9IZWxwZXIsIHN0YWNrcywgZGVwbG95bWVudHMsIG9wdGlvbnMsIHNka1Byb3ZpZGVyLCB0cnVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5rbm93bkRpZmZNZXRob2QnLCBmb3JtYXRFcnJvck1lc3NhZ2UoYFVua25vd24gZGlmZiBtZXRob2QgJHtvcHRpb25zLm1ldGhvZH1gKSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9jYWxGaWxlRGlmZihzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgb3B0aW9uczogRGlmZk9wdGlvbnMpOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSAob3B0aW9ucy5tZXRob2Q/Lm9wdGlvbnMgPz8ge30pIGFzIExvY2FsRmlsZURpZmZPcHRpb25zO1xuXG4gIC8vIENvbXBhcmUgc2luZ2xlIHN0YWNrIGFnYWluc3QgZml4ZWQgdGVtcGxhdGVcbiAgaWYgKHN0YWNrcy5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdTaW5nbGVTdGFja1JlcXVpcmVkJyxcbiAgICAgICdDYW4gb25seSBzZWxlY3Qgb25lIHN0YWNrIHdoZW4gY29tcGFyaW5nIHRvIGZpeGVkIHRlbXBsYXRlLiBVc2UgLS1leGNsdXNpdmVseSB0byBhdm9pZCBzZWxlY3RpbmcgbXVsdGlwbGUgc3RhY2tzLicsXG4gICAgKTtcbiAgfVxuXG4gIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMobWV0aG9kT3B0aW9ucy5wYXRoKSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUZW1wbGF0ZUZpbGVOb3RGb3VuZCcsIGBUaGVyZSBpcyBubyBmaWxlIGF0ICR7bWV0aG9kT3B0aW9ucy5wYXRofWApO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGZzLnJlYWRGaWxlU3luYyhtZXRob2RPcHRpb25zLnBhdGgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gZGVzZXJpYWxpemVTdHJ1Y3R1cmUoZmlsZSk7XG5cbiAgcmV0dXJuIFt7XG4gICAgb2xkVGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBzdGFja3MuZmlyc3RTdGFjayxcbiAgfV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNmbkRpZmYoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW5jbHVkZUNoYW5nZVNldDogYm9vbGVhbixcbik6IFByb21pc2U8VGVtcGxhdGVJbmZvW10+IHtcbiAgY29uc3QgdGVtcGxhdGVJbmZvcyA9IFtdO1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBDaGFuZ2VTZXREaWZmT3B0aW9ucztcblxuICBjb25zdCBhbGxNYXBwaW5ncyA9IG9wdGlvbnMuaW5jbHVkZU1vdmVzXG4gICAgPyBhd2FpdCBtYXBwaW5nc0J5RW52aXJvbm1lbnQoc3RhY2tzLnN0YWNrQXJ0aWZhY3RzLCBzZGtQcm92aWRlciwgdHJ1ZSlcbiAgICA6IFtdO1xuXG4gIC8vIENvbXBhcmUgTiBzdGFja3MgYWdhaW5zdCBkZXBsb3llZCB0ZW1wbGF0ZXNcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3Muc3RhY2tBcnRpZmFjdHMpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MgPSBhd2FpdCBkZXBsb3ltZW50cy5yZWFkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhcbiAgICAgIHN0YWNrLFxuICAgICAgbWV0aG9kT3B0aW9ucy5jb21wYXJlQWdhaW5zdFByb2Nlc3NlZFRlbXBsYXRlLFxuICAgICk7XG4gICAgY29uc3QgY3VycmVudFRlbXBsYXRlID0gdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLmRlcGxveWVkUm9vdFRlbXBsYXRlO1xuICAgIGNvbnN0IG5lc3RlZFN0YWNrcyA9IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcy5uZXN0ZWRTdGFja3M7XG5cbiAgICBjb25zdCBtaWdyYXRvciA9IG5ldyBSZXNvdXJjZU1pZ3JhdG9yKHsgZGVwbG95bWVudHMsIGlvSGVscGVyIH0pO1xuICAgIGNvbnN0IHJlc291cmNlc1RvSW1wb3J0ID0gYXdhaXQgbWlncmF0b3IudHJ5R2V0UmVzb3VyY2VzKGF3YWl0IGRlcGxveW1lbnRzLnJlc29sdmVFbnZpcm9ubWVudChzdGFjaykpO1xuICAgIGlmIChyZXNvdXJjZXNUb0ltcG9ydCkge1xuICAgICAgcmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKHN0YWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFuZ2VTZXQgPSBpbmNsdWRlQ2hhbmdlU2V0ID8gYXdhaXQgY2hhbmdlU2V0RGlmZihcbiAgICAgIGlvSGVscGVyLFxuICAgICAgZGVwbG95bWVudHMsXG4gICAgICBzdGFjayxcbiAgICAgIHNka1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICBtZXRob2RPcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICBtZXRob2RPcHRpb25zLmZhbGxiYWNrVG9UZW1wbGF0ZSxcbiAgICAgIG1ldGhvZE9wdGlvbnMuaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXMsXG4gICAgKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIElmIHRoZSBjaGFuZ2VzZXQgaW5jbHVkZXMgbmVzdGVkIHN0YWNrcywgZGVzY3JpYmUgZWFjaCBuZXN0ZWQgY2hhbmdlc2V0XG4gICAgLy8gYW5kIGF0dGFjaCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBlbnRyeSBpbiBuZXN0ZWRTdGFja3MuXG4gICAgaWYgKGNoYW5nZVNldCkge1xuICAgICAgYXdhaXQgYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShkZXBsb3ltZW50cywgc3RhY2ssIGNoYW5nZVNldCwgbmVzdGVkU3RhY2tzKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBwaW5ncyA9IGFsbE1hcHBpbmdzLmZpbmQobSA9PlxuICAgICAgbS5lbnZpcm9ubWVudC5yZWdpb24gPT09IHN0YWNrLmVudmlyb25tZW50LnJlZ2lvbiAmJiBtLmVudmlyb25tZW50LmFjY291bnQgPT09IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgKT8ubWFwcGluZ3MgPz8ge307XG5cbiAgICB0ZW1wbGF0ZUluZm9zLnB1c2goe1xuICAgICAgb2xkVGVtcGxhdGU6IGN1cnJlbnRUZW1wbGF0ZSxcbiAgICAgIG5ld1RlbXBsYXRlOiBzdGFjayxcbiAgICAgIGlzSW1wb3J0OiAhIXJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbmVzdGVkU3RhY2tzLFxuICAgICAgY2hhbmdlU2V0LFxuICAgICAgbWFwcGluZ3MsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVtcGxhdGVJbmZvcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hhbmdlU2V0RGlmZihcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgcmVzb3VyY2VzVG9JbXBvcnQ/OiBSZXNvdXJjZXNUb0ltcG9ydCxcbiAgcGFyYW1ldGVyczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gPSB7fSxcbiAgZmFsbEJhY2tUb1RlbXBsYXRlOiBib29sZWFuID0gdHJ1ZSxcbiAgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM6IGJvb2xlYW4gPSBmYWxzZSxcbik6IFByb21pc2U8YW55IHwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiBjZm5BcGkuY3JlYXRlRGlmZkNoYW5nZVNldChpb0hlbHBlciwge1xuICAgIHN0YWNrLFxuICAgIHV1aWQ6IHV1aWQudjQoKSxcbiAgICBkZXBsb3ltZW50cyxcbiAgICB3aWxsRXhlY3V0ZTogZmFsc2UsXG4gICAgc2RrUHJvdmlkZXIsXG4gICAgcGFyYW1ldGVyczogcGFyYW1ldGVycyxcbiAgICByZXNvdXJjZXNUb0ltcG9ydCxcbiAgICBmYWlsT25FcnJvcjogIWZhbGxCYWNrVG9UZW1wbGF0ZSxcbiAgICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgfSk7XG59XG5cbi8qKlxuICogV2FsayB0aGUgcm9vdCBjaGFuZ2VzZXQncyBDaGFuZ2VzIGxvb2tpbmcgZm9yIG5lc3RlZCBzdGFjayByZXNvdXJjZXNcbiAqIHRoYXQgaGF2ZSB0aGVpciBvd24gQ2hhbmdlU2V0SWQuIERlc2NyaWJlIGVhY2ggbmVzdGVkIGNoYW5nZXNldCBhbmRcbiAqIGF0dGFjaCBpdCB0byB0aGUgbWF0Y2hpbmcgZW50cnkgaW4gdGhlIG5lc3RlZFN0YWNrcyBtYXAuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGF0dGFjaE5lc3RlZENoYW5nZVNldERhdGEoXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcm9vdENoYW5nZVNldDogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0LFxuICBuZXN0ZWRTdGFja3M6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBlbnYgPSBhd2FpdCBkZXBsb3ltZW50cy5lbnZzLmFjY2Vzc1N0YWNrRm9yUmVhZE9ubHlTdGFja09wZXJhdGlvbnMoc3RhY2spO1xuICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG5cbiAgZm9yIChjb25zdCBjaGFuZ2Ugb2Ygcm9vdENoYW5nZVNldC5DaGFuZ2VzID8/IFtdKSB7XG4gICAgY29uc3QgcmMgPSBjaGFuZ2UuUmVzb3VyY2VDaGFuZ2U7XG4gICAgaWYgKHJjPy5SZXNvdXJjZVR5cGUgIT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgfHwgIXJjLkNoYW5nZVNldElkIHx8ICFyYy5Mb2dpY2FsUmVzb3VyY2VJZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbmVzdGVkID0gbmVzdGVkU3RhY2tzW3JjLkxvZ2ljYWxSZXNvdXJjZUlkXTtcbiAgICBpZiAoIW5lc3RlZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbmVzdGVkQ2hhbmdlU2V0ID0gYXdhaXQgY2ZuLmRlc2NyaWJlQ2hhbmdlU2V0KHtcbiAgICAgIENoYW5nZVNldE5hbWU6IHJjLkNoYW5nZVNldElkLFxuICAgICAgU3RhY2tOYW1lOiByYy5QaHlzaWNhbFJlc291cmNlSWQgPz8gcmMuTG9naWNhbFJlc291cmNlSWQsXG4gICAgfSk7XG5cbiAgICAvLyBSZXBsYWNlIHRoZSBlbnRyeSB3aXRoIG9uZSB0aGF0IGluY2x1ZGVzIHRoZSBjaGFuZ2VzZXRcbiAgICAobmVzdGVkU3RhY2tzIGFzIGFueSlbcmMuTG9naWNhbFJlc291cmNlSWRdID0ge1xuICAgICAgLi4ubmVzdGVkLFxuICAgICAgY2hhbmdlU2V0OiBuZXN0ZWRDaGFuZ2VTZXQsXG4gICAgfTtcblxuICAgIC8vIFJlY3Vyc2UgaW50byBkZWVwZXIgbmVzdGluZyBsZXZlbHNcbiAgICBpZiAobmVzdGVkQ2hhbmdlU2V0ICYmIE9iamVjdC5rZXlzKG5lc3RlZC5uZXN0ZWRTdGFja1RlbXBsYXRlcykubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShkZXBsb3ltZW50cywgc3RhY2ssIG5lc3RlZENoYW5nZVNldCwgbmVzdGVkLm5lc3RlZFN0YWNrVGVtcGxhdGVzKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBlbmRzIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMiB0byBvYmoxLlxuICogb2JqMiB2YWx1ZXMgdGFrZSBwcmlvcml0eSBpbiB0aGUgY2FzZSBvZiBjb2xsaXNpb25zLlxuICpcbiAqIEBwYXJhbSBvYmoxIC0gVGhlIG9iamVjdCB0byBtb2RpZnlcbiAqIEBwYXJhbSBvYmoyIC0gVGhlIG9iamVjdCB0byBjb25zdW1lXG4gKlxuICogQHJldHVybnMgb2JqMSB3aXRoIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kT2JqZWN0PFQ+KFxuICBvYmoxOiB7IFtuYW1lOiBzdHJpbmddOiBUIH0sXG4gIG9iajI6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbik6IHsgW25hbWU6IHN0cmluZ106IFQgfSB7XG4gIC8vIERpcmVjdGx5IG1vZGlmeSBvYmoxIGJ5IGFkZGluZyBhbGwgcHJvcGVydGllcyBmcm9tIG9iajJcbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqMikge1xuICAgIG9iajFba2V5XSA9IG9iajJba2V5XTtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqMVxuICByZXR1cm4gb2JqMTtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEcmlmdE9wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHN0YWNrcyB0byBjaGVjayBmb3IgZHJpZnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xufVxuXG4vKipcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZHJpZnQgYXMgZm9ybWF0dGVkIGRyaWZ0IG91dHB1dFxuICpcbiAqIEEgbWlzc2luZyB0eXBlIGltcGxpZXMgbm8gZHJpZnQgb2YgdGhpcyB0eXBlLlxuICogSWYgbm8gZHJpZnQgd2FzIGRldGVjdGVkIGF0IGFsbCwgYWxsIHdpbGwgYmUgbWlzc2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZWREcmlmdCB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBoYXZlIG5vdCBjaGFuZ2VkXG4gICAqL1xuICByZWFkb25seSB1bmNoYW5nZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB0aGF0IHdlcmUgbm90IGNoZWNrZWQgZm9yIGRyaWZ0IG9yIGhhdmUgYW4gVU5LTk9XTiBkcmlmdCBzdGF0dXNcbiAgICovXG4gIHJlYWRvbmx5IHVuY2hlY2tlZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHdpdGggZHJpZnRcbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCAoZHJpZnQpXG4gICAqL1xuICByZWFkb25seSBkZWxldGVkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbWJpbmVkIGRyaWZ0IGZvciBzZWxlY3RlZCBzdGFja3Mgb2YgdGhlIGFwcFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyaWZ0UmVzdWx0IHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiByZXNvdXJjZXMgd2l0aCBkcmlmdC4gSWYgdW5kZWZpbmVkLCB0aGVuIGFuIGVycm9yIG9jY3VycmVkXG4gICAqIGFuZCByZXNvdXJjZXMgd2VyZSBub3QgcHJvcGVybHkgY2hlY2tlZCBmb3IgZHJpZnQuXG4gICAqL1xuICByZWFkb25seSBudW1SZXNvdXJjZXNXaXRoRHJpZnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogSG93IG1hbnkgcmVzb3VyY2VzIHdlcmUgbm90IGNoZWNrZWQgZm9yIGRyaWZ0LiBJZiB1bmRlZmluZWQsIHRoZW4gYW5cbiAgICogZXJyb3Igb2NjdXJyZWQgYW5kIHJlc291cmNlcyB3ZXJlIG5vdCBwcm9wZXJseSBjaGVja2VkIGZvciBkcmlmdC5cbiAgICovXG4gIHJlYWRvbmx5IG51bVJlc291cmNlc1VuY2hlY2tlZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgZHJpZnRcbiAgICovXG4gIHJlYWRvbmx5IGZvcm1hdHRlZERyaWZ0OiBGb3JtYXR0ZWREcmlmdDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./bootstrap\"), exports);\n__exportStar(require(\"./deploy\"), exports);\n__exportStar(require(\"./destroy\"), exports);\n__exportStar(require(\"./diff\"), exports);\n__exportStar(require(\"./drift\"), exports);\n__exportStar(require(\"./list\"), exports);\n__exportStar(require(\"./publish-assets\"), exports);\n__exportStar(require(\"./refactor\"), exports);\n__exportStar(require(\"./rollback\"), exports);\n__exportStar(require(\"./synth\"), exports);\n__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIseUNBQXVCO0FBQ3ZCLDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIsbURBQWlDO0FBQ2pDLDZDQUEyQjtBQUMzQiw2Q0FBMkI7QUFDM0IsMENBQXdCO0FBQ3hCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwbG95JztcbmV4cG9ydCAqIGZyb20gJy4vZGVzdHJveSc7XG5leHBvcnQgKiBmcm9tICcuL2RpZmYnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmlmdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9wdWJsaXNoLWFzc2V0cyc7XG5leHBvcnQgKiBmcm9tICcuL3JlZmFjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcm9sbGJhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zeW50aCc7XG5leHBvcnQgKiBmcm9tICcuL3dhdGNoJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogU3RhY2tTZWxlY3Rvcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFzc2V0c09wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHN0YWNrcyB0byBwdWJsaXNoIGFzc2V0cyBmb3JcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBBbHdheXMgcHVibGlzaCBhc3NldHMsIGV2ZW4gaWYgdGhleSBhcmUgYWxyZWFkeSBwdWJsaXNoZWRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGFzc2V0IG9wZXJhdGlvbnMgKGJ1aWxkaW5nIGFuZCBwdWJsaXNoaW5nKVxuICAgKlxuICAgKiBAZGVmYXVsdCA0XG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW5jeT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoQXNzZXRzUmVzdWx0IHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXRzIHRoYXQgd2VyZSBwdWJsaXNoZWRcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hlZEFzc2V0czogSU1hbmlmZXN0RW50cnlbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWZhY3Rvck9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBvbmx5IHNob3cgdGhlIHByb3Bvc2VkIHJlZmFjdG9yLCB3aXRob3V0IGFwcGx5aW5nIGl0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG92ZXJyaWRlcyB0byBiZSBhcHBsaWVkIHRvIHJlc29sdmUgcG9zc2libGUgYW1iaWd1aXRpZXMgaW4gdGhlXG4gICAqIGNvbXB1dGVkIGxpc3Qgb2YgbWFwcGluZ3MuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBNYXBwaW5nR3JvdXBbXTtcblxuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gY29tcGFyZSB3aXRoIHRoZSBkZXBsb3llZCBzdGFja3MgaW4gdGhlXG4gICAqIHRhcmdldCBlbnZpcm9ubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBuYW1lcyBvZiBhZGRpdGlvbmFsIGRlcGxveWVkIHN0YWNrcyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgY29tcGFyaXNvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxTdGFja05hbWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZG8gdGhlIHJlZmFjdG9yIHdpdGhvdXQgcHJvbXB0aW5nIHRoZSB1c2VyIGZvciBjb25maXJtYXRpb24uXG4gICAqL1xuICBmb3JjZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gYXNzdW1lIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHJlZmFjdG9yLlxuICAgKi9cbiAgcm9sZUFybj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwaW5nR3JvdXAge1xuICAvKipcbiAgICogVGhlIGFjY291bnQgSUQgb2YgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSBtYXBwaW5nIGlzIHZhbGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGUgbWFwcGluZyBpcyB2YWxpZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgcmVzb3VyY2UgbWFwcGluZ3MsIHdoZXJlIGVhY2gga2V5IGlzIHRoZSBzb3VyY2UgbG9jYXRpb25cbiAgICogYW5kIHRoZSB2YWx1ZSBpcyB0aGUgZGVzdGluYXRpb24gbG9jYXRpb24uIExvY2F0aW9ucyBtdXN0IGJlIGluIHRoZSBmb3JtYXRcbiAgICogYFN0YWNrTmFtZS5Mb2dpY2FsSWRgLiBUaGUgc291cmNlIG11c3QgcmVmZXIgdG8gYSBsb2NhdGlvbiB3aGVyZSB0aGVyZSBpc1xuICAgKiBhIHJlc291cmNlIGN1cnJlbnRseSBkZXBsb3llZCwgd2hpbGUgdGhlIGRlc3RpbmF0aW9uIG11c3QgcmVmZXIgdG8gYVxuICAgKiBsb2NhdGlvbiB0aGF0IGlzIG5vdCBhbHJlYWR5IG9jY3VwaWVkIGJ5IGFueSByZXNvdXJjZS5cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczoge1xuICAgIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseMappingGroups = parseMappingGroups;\nexports.mappingsByEnvironment = mappingsByEnvironment;\nconst refactoring_1 = require(\"../../../api/refactoring\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nfunction parseMappingGroups(s) {\n const mappingGroups = doParse();\n // Validate that there are no duplicate destinations.\n // By construction, there are no duplicate sources, already.\n for (let group of mappingGroups) {\n const destinations = new Set();\n for (const destination of Object.values(group.resources)) {\n if (destinations.has(destination)) {\n throw new toolkit_error_1.ToolkitError('DuplicateDestinationResource', `Duplicate destination resource '${destination}' in environment ${group.account}/${group.region}`);\n }\n destinations.add(destination);\n }\n }\n return mappingGroups;\n function doParse() {\n const content = JSON.parse(s);\n if (content.environments || !Array.isArray(content.environments)) {\n return content.environments;\n }\n else {\n throw new toolkit_error_1.ToolkitError('MissingEnvironmentsArray', \"Expected an 'environments' array\");\n }\n }\n}\nasync function mappingsByEnvironment(stackArtifacts, sdkProvider, ignoreModifications) {\n const groups = await (0, refactoring_1.groupStacks)(sdkProvider, stackArtifacts, []);\n return groups.map((group) => {\n const context = new refactoring_1.RefactoringContext({\n ...group,\n ignoreModifications,\n });\n return {\n environment: context.environment,\n mappings: Object.fromEntries(context.mappings.map((m) => [m.source.toLocationString(), m.destination.toLocationString()])),\n };\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwcGluZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsZ0RBNkJDO0FBT0Qsc0RBa0JDO0FBekRELDBEQUEyRTtBQUMzRSxrRUFBOEQ7QUFFOUQsU0FBZ0Isa0JBQWtCLENBQUMsQ0FBUztJQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUVoQyxxREFBcUQ7SUFDckQsNERBQTREO0lBQzVELEtBQUssSUFBSSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7UUFDaEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUV2QyxLQUFLLE1BQU0sV0FBVyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sSUFBSSw0QkFBWSxDQUNwQiw4QkFBOEIsRUFDOUIsbUNBQW1DLFdBQVcsb0JBQW9CLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUNsRyxDQUFDO1lBQ0osQ0FBQztZQUNELFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztJQUVyQixTQUFTLE9BQU87UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakUsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLDRCQUFZLENBQUMsMEJBQTBCLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFPTSxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLGNBQW1ELEVBQ25ELFdBQXdCLEVBQ3hCLG1CQUE2QjtJQUU3QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEseUJBQVcsRUFBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksZ0NBQWtCLENBQUM7WUFDckMsR0FBRyxLQUFLO1lBQ1IsbUJBQW1CO1NBQ3BCLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUM3RjtTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IE1hcHBpbmdHcm91cCB9IGZyb20gJy4uJztcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWF1dGgvc2RrLXByb3ZpZGVyJztcbmltcG9ydCB7IGdyb3VwU3RhY2tzLCBSZWZhY3RvcmluZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVmYWN0b3JpbmcnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWFwcGluZ0dyb3VwcyhzOiBzdHJpbmcpIHtcbiAgY29uc3QgbWFwcGluZ0dyb3VwcyA9IGRvUGFyc2UoKTtcblxuICAvLyBWYWxpZGF0ZSB0aGF0IHRoZXJlIGFyZSBubyBkdXBsaWNhdGUgZGVzdGluYXRpb25zLlxuICAvLyBCeSBjb25zdHJ1Y3Rpb24sIHRoZXJlIGFyZSBubyBkdXBsaWNhdGUgc291cmNlcywgYWxyZWFkeS5cbiAgZm9yIChsZXQgZ3JvdXAgb2YgbWFwcGluZ0dyb3Vwcykge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBkZXN0aW5hdGlvbiBvZiBPYmplY3QudmFsdWVzKGdyb3VwLnJlc291cmNlcykpIHtcbiAgICAgIGlmIChkZXN0aW5hdGlvbnMuaGFzKGRlc3RpbmF0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdEdXBsaWNhdGVEZXN0aW5hdGlvblJlc291cmNlJyxcbiAgICAgICAgICBgRHVwbGljYXRlIGRlc3RpbmF0aW9uIHJlc291cmNlICcke2Rlc3RpbmF0aW9ufScgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZGVzdGluYXRpb25zLmFkZChkZXN0aW5hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdHcm91cHM7XG5cbiAgZnVuY3Rpb24gZG9QYXJzZSgpOiBNYXBwaW5nR3JvdXBbXSB7XG4gICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2Uocyk7XG4gICAgaWYgKGNvbnRlbnQuZW52aXJvbm1lbnRzIHx8ICFBcnJheS5pc0FycmF5KGNvbnRlbnQuZW52aXJvbm1lbnRzKSkge1xuICAgICAgcmV0dXJuIGNvbnRlbnQuZW52aXJvbm1lbnRzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdNaXNzaW5nRW52aXJvbm1lbnRzQXJyYXknLCBcIkV4cGVjdGVkIGFuICdlbnZpcm9ubWVudHMnIGFycmF5XCIpO1xuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgRW52aXJvbm1lbnRTcGVjaWZpY01hcHBpbmdzIHtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xuICByZWFkb25seSBtYXBwaW5nczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hcHBpbmdzQnlFbnZpcm9ubWVudChcbiAgc3RhY2tBcnRpZmFjdHM6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlnbm9yZU1vZGlmaWNhdGlvbnM/OiBib29sZWFuLFxuKTogUHJvbWlzZTxFbnZpcm9ubWVudFNwZWNpZmljTWFwcGluZ3NbXT4ge1xuICBjb25zdCBncm91cHMgPSBhd2FpdCBncm91cFN0YWNrcyhzZGtQcm92aWRlciwgc3RhY2tBcnRpZmFjdHMsIFtdKTtcbiAgcmV0dXJuIGdyb3Vwcy5tYXAoKGdyb3VwKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IG5ldyBSZWZhY3RvcmluZ0NvbnRleHQoe1xuICAgICAgLi4uZ3JvdXAsXG4gICAgICBpZ25vcmVNb2RpZmljYXRpb25zLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBlbnZpcm9ubWVudDogY29udGV4dC5lbnZpcm9ubWVudCxcbiAgICAgIG1hcHBpbmdzOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIGNvbnRleHQubWFwcGluZ3MubWFwKChtKSA9PiBbbS5zb3VyY2UudG9Mb2NhdGlvblN0cmluZygpLCBtLmRlc3RpbmF0aW9uLnRvTG9jYXRpb25TdHJpbmcoKV0pLFxuICAgICAgKSxcbiAgICB9O1xuICB9KTtcbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBSb2xsYmFja09wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gcm9sbGJhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBSb2xlIHRvIHBhc3MgdG8gQ2xvdWRGb3JtYXRpb24gZm9yIGRlcGxveW1lbnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHN0YWNrIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgZmFpbGVkIHRoZSByb2xsYmFjayBvciBub3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkZhaWxlZFJlc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvZ2ljYWwgSURzIG9mIHJlc291cmNlcyB0byBvcnBoYW5cbiAgICpcbiAgICogVGhlc2UgcmVzb3VyY2VzIHdpbGwgYmUgc2tpcHBlZCBmcm9tIHRoZSByb2xsIGJhY2suXG4gICAqIFNwZWNpZnkgdGhpcyBwcm9wZXJ0eSB0byBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgY2FuJ3QgYmUgc3VjY2Vzc2Z1bGx5IHJvbGxlZCBiYWNrLlxuICAgKiBXZSByZWNvbW1lbmQgdGhhdCB5b3UgdHJvdWJsZXNob290IHJlc291cmNlcyBiZWZvcmUgc2tpcHBpbmcgdGhlbS5cbiAgICogQWZ0ZXIgdGhlIHJvbGxiYWNrIGlzIGNvbXBsZXRlLCB0aGUgc3RhdGUgb2YgdGhlIHNraXBwZWQgcmVzb3VyY2VzIHdpbGwgYmUgaW5jb25zaXN0ZW50IHdpdGhcbiAgICogdGhlIHN0YXRlIG9mIHRoZSByZXNvdXJjZXMgaW4gdGhlIHN0YWNrLiBCZWZvcmUgcGVyZm9ybWluZyBhbm90aGVyIHN0YWNrIHVwZGF0ZSxcbiAgICogeW91IG11c3QgdXBkYXRlIHRoZSBzdGFjayBvciByZXNvdXJjZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIGVhY2ggb3RoZXIuIElmIHlvdSBkb24ndFxuICAgKiBzdWJzZXF1ZW50IHN0YWNrIHVwZGF0ZXMgbWlnaHQgZmFpbCwgYW5kIHRoZSBzdGFjayB3aWxsIGJlY29tZSB1bnJlY292ZXJhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHJlc291cmNlcyBhcmUgb3JwaGFuZWRcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkxvZ2ljYWxJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB2YWxpZGF0ZSB0aGUgdmVyc2lvbiBvZiB0aGUgYm9vdHN0cmFwIHN0YWNrIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlQm9vdHN0cmFwU3RhY2tWZXJzaW9uPzogYm9vbGVhbjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBTeW50aE9wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHRoZSBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIEFmdGVyIHN5bnRoZXNpcywgdmFsaWRhdGUgc3RhY2tzIHdpdGggdGhlIFwidmFsaWRhdGVPblN5bnRoXCIgYXR0cmlidXRlIHNldCAoY2FuIGFsc28gYmUgY29udHJvbGxlZCB3aXRoIENES19WQUxJREFUSU9OKVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZVN0YWNrcz86IGJvb2xlYW47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50TWV0aG9kLCBCYXNlRGVwbG95T3B0aW9ucyB9IGZyb20gJy4uL2RlcGxveSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hPcHRpb25zIGV4dGVuZHMgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogV2F0Y2ggdGhlIGZpbGVzIGluIHRoaXMgbGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBmaWxlcyBpbiB0aGUgd2F0Y2hEaXJcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWdub3JlIHdhdGNoaW5nIHRoZSBmaWxlcyBpbiB0aGlzIGxpc3RcbiAgICpcbiAgICogSGlkZGVuIGZpbGVzICh0aG9zZSB3aG9zZSBuYW1lcyBiZWdpbiB3aXRoIGEgZG90IGAuYCkgYXJlIGFsd2F5cyBleGNsdWRlZCxcbiAgICogaXJyZXNwZWN0aXZlbHkgb2YgdGhpcyBvcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwYXR0ZXJucyBleGNsdWRpbmcgbGlrZWx5IGlycmVsZXZhbnQgZmlsZXMgZm9yIGFsbCBDREsgc3VwcG9ydGVkIHByb2dyYW1taW5nIGxhbmd1YWdlcywgdGhpcyBsaXN0IHdpbGwgY2hhbmdlIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3RvcnkgdXNlZCBmb3Igd2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlcGxveW1lbnQgbWV0aG9kXG4gICAqXG4gICAqIEBkZWZhdWx0IEhvdHN3YXBEZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kPzogRGVwbG95bWVudE1ldGhvZDtcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGEgYGNkay53YXRjaCgpYCBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdhdGNoZXIgZXh0ZW5kcyBBc3luY0Rpc3Bvc2FibGUge1xuICAvKipcbiAgICogU3RvcCB0aGUgd2F0Y2hlciBhbmQgd2FpdCBmb3IgdGhlIGN1cnJlbnQgd2F0Y2ggaXRlcmF0aW9uIHRvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBBbiBhbGlhcyBmb3IgYFtTeW1ib2wuYXN5bmNEaXNwb3NlXWAsIGFzIGEgbW9yZSByZWFkYWJsZSBhbHRlcm5hdGl2ZSBmb3JcbiAgICogZW52aXJvbm1lbnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgRGlzcG9zYWJsZSBBUElzIHlldC5cbiAgICovXG4gIGRpc3Bvc2UoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogV2FpdCBmb3IgdGhlIHdhdGNoZXIgdG8gc3RvcC5cbiAgICpcbiAgICogVGhlIHdhdGNoZXIgd2lsbCBvbmx5IHN0b3AgaWYgYGRpc3Bvc2UoKWAgb3IgYFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpYCBhcmUgY2FsbGVkLlxuICAgKlxuICAgKiBJZiBuZWl0aGVyIG9mIHRob3NlIGlzIGNhbGxlZCwgYXdhaXRpbmcgdGhpcyBwcm9taXNlIHdpbGwgd2FpdCBmb3JldmVyLlxuICAgKi9cbiAgd2FpdEZvckVuZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WATCH_EXCLUDE_DEFAULTS = void 0;\n/**\n * A list of generic files that normally don't need to be watched.\n * This list is agnostic to the used programming language and should only match files\n * that are unlikely to be valid files in any of the supported languages.\n */\nexports.WATCH_EXCLUDE_DEFAULTS = [\n // CDK\n 'README.md',\n 'cdk*.json',\n // JS\n 'package*.json',\n 'yarn.lock',\n 'pnpm-lock.yaml',\n 'bun.lockb',\n 'bun.lock',\n 'deno.lock',\n // TS\n 'tsconfig*.json',\n '**/*.d.ts',\n 'test',\n // Python\n 'requirements*.txt',\n 'source.bat',\n '**/__init__.py',\n '**/__pycache__',\n 'tests',\n // C# & F#\n '**/*.sln',\n '**/*.csproj',\n '**/*.fsproj',\n // Go\n 'go.mod',\n 'go.sum',\n '**/*test.go',\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNVLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsTUFBTTtJQUNOLFdBQVc7SUFDWCxXQUFXO0lBQ1gsS0FBSztJQUNMLGVBQWU7SUFDZixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsV0FBVztJQUNYLEtBQUs7SUFDTCxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLE1BQU07SUFDTixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxVQUFVO0lBQ1YsVUFBVTtJQUNWLGFBQWE7SUFDYixhQUFhO0lBQ2IsS0FBSztJQUNMLFFBQVE7SUFDUixRQUFRO0lBQ1IsYUFBYTtDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgbGlzdCBvZiBnZW5lcmljIGZpbGVzIHRoYXQgbm9ybWFsbHkgZG9uJ3QgbmVlZCB0byBiZSB3YXRjaGVkLlxuICogVGhpcyBsaXN0IGlzIGFnbm9zdGljIHRvIHRoZSB1c2VkIHByb2dyYW1taW5nIGxhbmd1YWdlIGFuZCBzaG91bGQgb25seSBtYXRjaCBmaWxlc1xuICogdGhhdCBhcmUgdW5saWtlbHkgdG8gYmUgdmFsaWQgZmlsZXMgaW4gYW55IG9mIHRoZSBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLlxuICovXG5leHBvcnQgY29uc3QgV0FUQ0hfRVhDTFVERV9ERUZBVUxUUyA9IFtcbiAgLy8gQ0RLXG4gICdSRUFETUUubWQnLFxuICAnY2RrKi5qc29uJyxcbiAgLy8gSlNcbiAgJ3BhY2thZ2UqLmpzb24nLFxuICAneWFybi5sb2NrJyxcbiAgJ3BucG0tbG9jay55YW1sJyxcbiAgJ2J1bi5sb2NrYicsXG4gICdidW4ubG9jaycsXG4gICdkZW5vLmxvY2snLFxuICAvLyBUU1xuICAndHNjb25maWcqLmpzb24nLFxuICAnKiovKi5kLnRzJyxcbiAgJ3Rlc3QnLFxuICAvLyBQeXRob25cbiAgJ3JlcXVpcmVtZW50cyoudHh0JyxcbiAgJ3NvdXJjZS5iYXQnLFxuICAnKiovX19pbml0X18ucHknLFxuICAnKiovX19weWNhY2hlX18nLFxuICAndGVzdHMnLFxuICAvLyBDIyAmIEYjXG4gICcqKi8qLnNsbicsXG4gICcqKi8qLmNzcHJvaicsXG4gICcqKi8qLmZzcHJvaicsXG4gIC8vIEdvXG4gICdnby5tb2QnLFxuICAnZ28uc3VtJyxcbiAgJyoqLyp0ZXN0LmdvJyxcbl07XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccountAccessKeyCache = void 0;\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst util_1 = require(\"../../util\");\n/**\n * Disk cache which maps access key IDs to account IDs.\n * Usage:\n * cache.get(accessKey) => accountId | undefined\n * cache.put(accessKey, accountId)\n */\nclass AccountAccessKeyCache {\n /**\n * Max number of entries in the cache, after which the cache will be reset.\n */\n static MAX_ENTRIES = 1000;\n /**\n * The default path used for the accounts access key cache\n */\n static get DEFAULT_PATH() {\n // needs to be a getter because cdkCacheDir can be set via env variable and might change\n return path.join((0, util_1.cdkCacheDir)(), 'accounts_partitions.json');\n }\n cacheFile;\n debug;\n /**\n * @param filePath - Path to the cache file\n */\n constructor(filePath = AccountAccessKeyCache.DEFAULT_PATH, debugFn) {\n this.cacheFile = filePath;\n this.debug = debugFn;\n }\n /**\n * Tries to fetch the account ID from cache. If it's not in the cache, invokes\n * the resolver function which should retrieve the account ID and return it.\n * Then, it will be stored into disk cache returned.\n *\n * Example:\n *\n * const accountId = cache.fetch(accessKey, async () => {\n * return await fetchAccountIdFromSomewhere(accessKey);\n * });\n */\n async fetch(accessKeyId, resolver) {\n // try to get account ID based on this access key ID from disk.\n const cached = await this.get(accessKeyId);\n if (cached) {\n await this.debug(`Retrieved account ID ${cached.accountId} from disk cache`);\n return cached;\n }\n // if it's not in the cache, resolve and put in cache.\n const account = await resolver();\n if (account) {\n await this.put(accessKeyId, account);\n }\n return account;\n }\n /** Get the account ID from an access key or undefined if not in cache */\n async get(accessKeyId) {\n const map = await this.loadMap();\n return map[accessKeyId];\n }\n /** Put a mapping between access key and account ID */\n async put(accessKeyId, account) {\n let map = await this.loadMap();\n // nuke cache if it's too big.\n if (Object.keys(map).length >= AccountAccessKeyCache.MAX_ENTRIES) {\n map = {};\n }\n map[accessKeyId] = account;\n await this.saveMap(map);\n }\n async loadMap() {\n try {\n return await fs.readJson(this.cacheFile);\n }\n catch (e) {\n // File doesn't exist or is not readable. This is a cache,\n // pretend we successfully loaded an empty map.\n if (e.code === 'ENOENT' || e.code === 'EACCES') {\n return {};\n }\n // File is not JSON, could be corrupted because of concurrent writes.\n // Again, an empty cache is fine.\n if (e instanceof SyntaxError) {\n return {};\n }\n throw e;\n }\n }\n async saveMap(map) {\n try {\n await fs.ensureFile(this.cacheFile);\n await fs.writeJson(this.cacheFile, map, { spaces: 2 });\n }\n catch (e) {\n // File doesn't exist or file/dir isn't writable. This is a cache,\n // if we can't write it then too bad.\n if (e.code === 'ENOENT' || e.code === 'EACCES' || e.code === 'EROFS') {\n return;\n }\n throw e;\n }\n }\n}\nexports.AccountAccessKeyCache = AccountAccessKeyCache;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFjY291bnQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixxQ0FBeUM7QUFFekM7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFxQjtJQUNoQzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRTFDOztPQUVHO0lBQ0ksTUFBTSxLQUFLLFlBQVk7UUFDNUIsd0ZBQXdGO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGtCQUFXLEdBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFZ0IsU0FBUyxDQUFTO0lBRWxCLEtBQUssQ0FBaUM7SUFFdkQ7O09BRUc7SUFDSCxZQUFZLFdBQW1CLHFCQUFxQixDQUFDLFlBQVksRUFBRSxPQUF1QztRQUN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQW9CLFdBQW1CLEVBQUUsUUFBMEI7UUFDbkYsK0RBQStEO1FBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixNQUFNLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELHlFQUF5RTtJQUNsRSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQW1CO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFtQixFQUFFLE9BQWdCO1FBQ3BELElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRS9CLDhCQUE4QjtRQUM5QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDWCxDQUFDO1FBRUQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUMzQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQiwwREFBMEQ7WUFDMUQsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QscUVBQXFFO1lBQ3JFLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsWUFBWSxXQUFXLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBdUM7UUFDM0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixrRUFBa0U7WUFDbEUscUNBQXFDO1lBQ3JDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDckUsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDOztBQXZHSCxzREF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBY2NvdW50IH0gZnJvbSAnLi9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHsgY2RrQ2FjaGVEaXIgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBEaXNrIGNhY2hlIHdoaWNoIG1hcHMgYWNjZXNzIGtleSBJRHMgdG8gYWNjb3VudCBJRHMuXG4gKiBVc2FnZTpcbiAqICAgY2FjaGUuZ2V0KGFjY2Vzc0tleSkgPT4gYWNjb3VudElkIHwgdW5kZWZpbmVkXG4gKiAgIGNhY2hlLnB1dChhY2Nlc3NLZXksIGFjY291bnRJZClcbiAqL1xuZXhwb3J0IGNsYXNzIEFjY291bnRBY2Nlc3NLZXlDYWNoZSB7XG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGNhY2hlLCBhZnRlciB3aGljaCB0aGUgY2FjaGUgd2lsbCBiZSByZXNldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFYX0VOVFJJRVMgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBwYXRoIHVzZWQgZm9yIHRoZSBhY2NvdW50cyBhY2Nlc3Mga2V5IGNhY2hlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBERUZBVUxUX1BBVEgoKTogc3RyaW5nIHtcbiAgICAvLyBuZWVkcyB0byBiZSBhIGdldHRlciBiZWNhdXNlIGNka0NhY2hlRGlyIGNhbiBiZSBzZXQgdmlhIGVudiB2YXJpYWJsZSBhbmQgbWlnaHQgY2hhbmdlXG4gICAgcmV0dXJuIHBhdGguam9pbihjZGtDYWNoZURpcigpLCAnYWNjb3VudHNfcGFydGl0aW9ucy5qc29uJyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRmlsZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWc6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gUGF0aCB0byB0aGUgY2FjaGUgZmlsZVxuICAgKi9cbiAgY29uc3RydWN0b3IoZmlsZVBhdGg6IHN0cmluZyA9IEFjY291bnRBY2Nlc3NLZXlDYWNoZS5ERUZBVUxUX1BBVEgsIGRlYnVnRm46IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgIHRoaXMuY2FjaGVGaWxlID0gZmlsZVBhdGg7XG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnRm47XG4gIH1cblxuICAvKipcbiAgICogVHJpZXMgdG8gZmV0Y2ggdGhlIGFjY291bnQgSUQgZnJvbSBjYWNoZS4gSWYgaXQncyBub3QgaW4gdGhlIGNhY2hlLCBpbnZva2VzXG4gICAqIHRoZSByZXNvbHZlciBmdW5jdGlvbiB3aGljaCBzaG91bGQgcmV0cmlldmUgdGhlIGFjY291bnQgSUQgYW5kIHJldHVybiBpdC5cbiAgICogVGhlbiwgaXQgd2lsbCBiZSBzdG9yZWQgaW50byBkaXNrIGNhY2hlIHJldHVybmVkLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiAgICBjb25zdCBhY2NvdW50SWQgPSBjYWNoZS5mZXRjaChhY2Nlc3NLZXksIGFzeW5jICgpID0+IHtcbiAgICogICAgICByZXR1cm4gYXdhaXQgZmV0Y2hBY2NvdW50SWRGcm9tU29tZXdoZXJlKGFjY2Vzc0tleSk7XG4gICAqICAgIH0pO1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGZldGNoPEEgZXh0ZW5kcyBBY2NvdW50PihhY2Nlc3NLZXlJZDogc3RyaW5nLCByZXNvbHZlcjogKCkgPT4gUHJvbWlzZTxBPikge1xuICAgIC8vIHRyeSB0byBnZXQgYWNjb3VudCBJRCBiYXNlZCBvbiB0aGlzIGFjY2VzcyBrZXkgSUQgZnJvbSBkaXNrLlxuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0KGFjY2Vzc0tleUlkKTtcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlYnVnKGBSZXRyaWV2ZWQgYWNjb3VudCBJRCAke2NhY2hlZC5hY2NvdW50SWR9IGZyb20gZGlzayBjYWNoZWApO1xuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG5cbiAgICAvLyBpZiBpdCdzIG5vdCBpbiB0aGUgY2FjaGUsIHJlc29sdmUgYW5kIHB1dCBpbiBjYWNoZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgcmVzb2x2ZXIoKTtcbiAgICBpZiAoYWNjb3VudCkge1xuICAgICAgYXdhaXQgdGhpcy5wdXQoYWNjZXNzS2V5SWQsIGFjY291bnQpO1xuICAgIH1cblxuICAgIHJldHVybiBhY2NvdW50O1xuICB9XG5cbiAgLyoqIEdldCB0aGUgYWNjb3VudCBJRCBmcm9tIGFuIGFjY2VzcyBrZXkgb3IgdW5kZWZpbmVkIGlmIG5vdCBpbiBjYWNoZSAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0KGFjY2Vzc0tleUlkOiBzdHJpbmcpOiBQcm9taXNlPEFjY291bnQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLmxvYWRNYXAoKTtcbiAgICByZXR1cm4gbWFwW2FjY2Vzc0tleUlkXTtcbiAgfVxuXG4gIC8qKiBQdXQgYSBtYXBwaW5nIGJldHdlZW4gYWNjZXNzIGtleSBhbmQgYWNjb3VudCBJRCAqL1xuICBwdWJsaWMgYXN5bmMgcHV0KGFjY2Vzc0tleUlkOiBzdHJpbmcsIGFjY291bnQ6IEFjY291bnQpIHtcbiAgICBsZXQgbWFwID0gYXdhaXQgdGhpcy5sb2FkTWFwKCk7XG5cbiAgICAvLyBudWtlIGNhY2hlIGlmIGl0J3MgdG9vIGJpZy5cbiAgICBpZiAoT2JqZWN0LmtleXMobWFwKS5sZW5ndGggPj0gQWNjb3VudEFjY2Vzc0tleUNhY2hlLk1BWF9FTlRSSUVTKSB7XG4gICAgICBtYXAgPSB7fTtcbiAgICB9XG5cbiAgICBtYXBbYWNjZXNzS2V5SWRdID0gYWNjb3VudDtcbiAgICBhd2FpdCB0aGlzLnNhdmVNYXAobWFwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1hcCgpOiBQcm9taXNlPHsgW2FjY2Vzc0tleUlkOiBzdHJpbmddOiBBY2NvdW50IH0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRKc29uKHRoaXMuY2FjaGVGaWxlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBpcyBub3QgcmVhZGFibGUuIFRoaXMgaXMgYSBjYWNoZSxcbiAgICAgIC8vIHByZXRlbmQgd2Ugc3VjY2Vzc2Z1bGx5IGxvYWRlZCBhbiBlbXB0eSBtYXAuXG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJyB8fCBlLmNvZGUgPT09ICdFQUNDRVMnKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIC8vIEZpbGUgaXMgbm90IEpTT04sIGNvdWxkIGJlIGNvcnJ1cHRlZCBiZWNhdXNlIG9mIGNvbmN1cnJlbnQgd3JpdGVzLlxuICAgICAgLy8gQWdhaW4sIGFuIGVtcHR5IGNhY2hlIGlzIGZpbmUuXG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlTWFwKG1hcDogeyBbYWNjZXNzS2V5SWQ6IHN0cmluZ106IEFjY291bnQgfSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5lbnN1cmVGaWxlKHRoaXMuY2FjaGVGaWxlKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSnNvbih0aGlzLmNhY2hlRmlsZSwgbWFwLCB7IHNwYWNlczogMiB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBmaWxlL2RpciBpc24ndCB3cml0YWJsZS4gVGhpcyBpcyBhIGNhY2hlLFxuICAgICAgLy8gaWYgd2UgY2FuJ3Qgd3JpdGUgaXQgdGhlbiB0b28gYmFkLlxuICAgICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcgfHwgZS5jb2RlID09PSAnRUFDQ0VTJyB8fCBlLmNvZGUgPT09ICdFUk9GUycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCliCompatible = void 0;\nexports.sdkRequestHandler = sdkRequestHandler;\nconst node_util_1 = require(\"node:util\");\nconst credential_providers_1 = require(\"@aws-sdk/credential-providers\");\nconst ec2_metadata_service_1 = require(\"@aws-sdk/ec2-metadata-service\");\nconst shared_ini_file_loader_1 = require(\"@smithy/shared-ini-file-loader\");\nconst ec2_detection_1 = require(\"./ec2-detection\");\nconst provider_caching_1 = require(\"./provider-caching\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst private_1 = require(\"../io/private\");\nconst DEFAULT_CONNECTION_TIMEOUT = 10000;\nconst DEFAULT_TIMEOUT = 300000;\n/**\n * Behaviors to match AWS CLI\n *\n * See these links:\n *\n * https://docs.aws.amazon.com/cli/latest/topic/config-vars.html\n * https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html\n */\nclass AwsCliCompatible {\n ioHelper;\n requestHandler;\n logger;\n constructor(ioHelper, requestHandler, logger) {\n this.ioHelper = ioHelper;\n this.requestHandler = requestHandler;\n this.logger = logger;\n }\n async baseConfig(profile) {\n const credentialProvider = await this.credentialChainBuilder({\n profile,\n logger: this.logger,\n });\n const defaultRegion = await this.region(profile);\n return { credentialProvider, defaultRegion };\n }\n /**\n * Build an AWS CLI-compatible credential chain provider\n *\n * The credential chain returned by this function is always caching.\n */\n async credentialChainBuilder(options = {}) {\n const clientConfig = {\n requestHandler: this.requestHandler,\n customUserAgent: 'aws-cdk',\n logger: options.logger,\n };\n // Super hacky solution to https://github.com/aws/aws-cdk/issues/32510, proposed by the SDK team.\n //\n // Summary of the problem: we were reading the region from the config file and passing it to\n // the credential providers. However, in the case of SSO, this makes the credential provider\n // use that region to do the SSO flow, which is incorrect. The region that should be used for\n // that is the one set in the sso_session section of the config file.\n //\n // The idea here: the \"clientConfig\" is for configuring the inner auth client directly,\n // and has the highest priority, whereas \"parentClientConfig\" is the upper data client\n // and has lower priority than the sso_region but still higher priority than STS global region.\n const parentClientConfig = {\n region: await this.region(options.profile),\n };\n /**\n * The previous implementation matched AWS CLI behavior:\n *\n * If a profile is explicitly set using `--profile`,\n * we use that to the exclusion of everything else.\n *\n * Note: this does not apply to AWS_PROFILE,\n * environment credentials still take precedence over AWS_PROFILE\n */\n if (options.profile) {\n return (0, provider_caching_1.makeCachingProvider)((0, credential_providers_1.fromIni)({\n profile: options.profile,\n ignoreCache: true,\n mfaCodeProvider: this.tokenCodeFn.bind(this),\n clientConfig,\n parentClientConfig,\n logger: options.logger,\n }));\n }\n const envProfile = process.env.AWS_PROFILE || process.env.AWS_DEFAULT_PROFILE;\n /**\n * Env AWS - EnvironmentCredentials with string AWS\n * Env Amazon - EnvironmentCredentials with string AMAZON\n * Profile Credentials - PatchedSharedIniFileCredentials with implicit profile, credentials file, http options, and token fn\n * SSO with implicit profile only\n * SharedIniFileCredentials with implicit profile and preferStaticCredentials true (profile with source_profile)\n * Shared Credential file that points to Environment Credentials with AWS prefix\n * Shared Credential file that points to EC2 Metadata\n * Shared Credential file that points to ECS Credentials\n * SSO Credentials - SsoCredentials with implicit profile and http options\n * ProcessCredentials with implicit profile\n * ECS Credentials - ECSCredentials with no input OR Web Identity - TokenFileWebIdentityCredentials with no input OR EC2 Metadata - EC2MetadataCredentials with no input\n *\n * These translate to:\n * fromEnv()\n * fromSSO()/fromIni()\n * fromProcess()\n * fromContainerMetadata()\n * fromTokenFile()\n * fromInstanceMetadata()\n *\n * The NodeProviderChain is already cached.\n */\n // Skip the IMDS credential provider if we're not on EC2, to avoid a\n // 1-2 second timeout on non-EC2 machines.\n if (process.env.AWS_EC2_METADATA_DISABLED === undefined && !(0, ec2_detection_1.isEc2Instance)()) {\n process.env.AWS_EC2_METADATA_DISABLED = 'true';\n }\n // This chain respects the AWS_EC2_METADATA_DISABLED envvar, which can otherwise\n // not be easily disabled using a property.\n const nodeProviderChain = (0, credential_providers_1.fromNodeProviderChain)({\n profile: envProfile,\n clientConfig,\n parentClientConfig,\n logger: options.logger,\n mfaCodeProvider: this.tokenCodeFn.bind(this),\n ignoreCache: true,\n });\n return shouldPrioritizeEnv()\n ? (0, credential_providers_1.createCredentialChain)((0, credential_providers_1.fromEnv)(), nodeProviderChain).expireAfter(60 * 60_000)\n : nodeProviderChain;\n }\n /**\n * Attempts to get the region from a number of sources and falls back to us-east-1 if no region can be found,\n * as is done in the AWS CLI.\n *\n * The order of priority is the following:\n *\n * 1. Environment variables specifying region, with both an AWS prefix and AMAZON prefix\n * to maintain backwards compatibility, and without `DEFAULT` in the name because\n * Lambda and CodeBuild set the $AWS_REGION variable.\n * 2. Regions listed in the Shared Ini Files - First checking for the profile provided\n * and then checking for the default profile.\n * 3. IMDS instance identity region from the Metadata Service.\n * 4. us-east-1\n */\n async region(maybeProfile) {\n const defaultRegion = 'us-east-1';\n const profile = maybeProfile || process.env.AWS_PROFILE || process.env.AWS_DEFAULT_PROFILE || 'default';\n const region = process.env.AWS_REGION ||\n process.env.AMAZON_REGION ||\n process.env.AWS_DEFAULT_REGION ||\n process.env.AMAZON_DEFAULT_REGION ||\n (await this.getRegionFromIni(profile)) ||\n (await this.regionFromMetadataService());\n if (!region) {\n const usedProfile = !profile ? '' : ` (profile: \"${profile}\")`;\n await this.ioHelper.defaults.debug(`Unable to determine AWS region from environment or AWS configuration${usedProfile}, defaulting to '${defaultRegion}'`);\n return defaultRegion;\n }\n return region;\n }\n /**\n * The MetadataService class will attempt to fetch the instance identity document from\n * IMDSv2 first, and then will attempt v1 as a fallback.\n *\n * If this fails, we will use us-east-1 as the region so no error should be thrown.\n * @returns The region for the instance identity\n */\n async regionFromMetadataService() {\n if (!(0, ec2_detection_1.isEc2Instance)()) {\n return undefined;\n }\n await this.ioHelper.defaults.debug('Looking up AWS region in the EC2 Instance Metadata Service (IMDS).');\n try {\n const metadataService = new ec2_metadata_service_1.MetadataService({\n httpOptions: {\n timeout: 1000,\n },\n });\n await metadataService.fetchMetadataToken();\n const document = await metadataService.request('/latest/dynamic/instance-identity/document', {});\n return JSON.parse(document).region;\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Unable to retrieve AWS region from IMDS: ${e}`);\n }\n }\n /**\n * Looks up the region of the provided profile. If no region is present,\n * it will attempt to lookup the default region.\n * @param profile - The profile to use to lookup the region\n * @returns The region for the profile or default profile, if present. Otherwise returns undefined.\n */\n async getRegionFromIni(profile) {\n const sharedFiles = await (0, shared_ini_file_loader_1.loadSharedConfigFiles)({ ignoreCache: true });\n // Priority:\n //\n // credentials come before config because aws-cli v1 behaves like that.\n //\n // 1. profile-region-in-credentials\n // 2. profile-region-in-config\n // 3. default-region-in-credentials\n // 4. default-region-in-config\n return this.getRegionFromIniFile(profile, sharedFiles.credentialsFile)\n ?? this.getRegionFromIniFile(profile, sharedFiles.configFile)\n ?? this.getRegionFromIniFile('default', sharedFiles.credentialsFile)\n ?? this.getRegionFromIniFile('default', sharedFiles.configFile);\n }\n getRegionFromIniFile(profile, data) {\n return data?.[profile]?.region;\n }\n /**\n * Ask user for MFA token for given MFA device\n *\n * Result is send to callback function for SDK to authorize the request\n */\n async tokenCodeFn(deviceArn) {\n const debugFn = (msg, ...args) => this.ioHelper.defaults.debug((0, node_util_1.format)(msg, ...args));\n await debugFn('Require MFA token from MFA device with ARN', deviceArn);\n try {\n const token = await this.ioHelper.requestResponse(private_1.IO.CDK_SDK_I1100.req(`MFA token for ${deviceArn}`, {\n deviceArn,\n }, ''));\n await debugFn('Successfully got MFA token from user');\n return token;\n }\n catch (err) {\n await debugFn('Failed to get MFA token', err);\n const e = new toolkit_error_1.AuthenticationError('MfaTokenError', `Error fetching MFA token: ${err.message ?? err}`);\n e.name = 'SharedIniFileCredentialsProviderFailure';\n throw e;\n }\n }\n}\nexports.AwsCliCompatible = AwsCliCompatible;\n/**\n * We used to support both AWS and AMAZON prefixes for these environment variables.\n *\n * Adding this for backward compatibility.\n */\nfunction shouldPrioritizeEnv() {\n const id = process.env.AWS_ACCESS_KEY_ID || process.env.AMAZON_ACCESS_KEY_ID;\n const key = process.env.AWS_SECRET_ACCESS_KEY || process.env.AMAZON_SECRET_ACCESS_KEY;\n if (!!id && !!key) {\n process.env.AWS_ACCESS_KEY_ID = id;\n process.env.AWS_SECRET_ACCESS_KEY = key;\n const sessionToken = process.env.AWS_SESSION_TOKEN ?? process.env.AMAZON_SESSION_TOKEN;\n if (sessionToken) {\n process.env.AWS_SESSION_TOKEN = sessionToken;\n }\n return true;\n }\n return false;\n}\nfunction sdkRequestHandler(agent) {\n return {\n connectionTimeout: DEFAULT_CONNECTION_TIMEOUT,\n requestTimeout: DEFAULT_TIMEOUT,\n httpsAgent: agent,\n httpAgent: agent,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2xpLWNvbXBhdGlibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3NjbGktY29tcGF0aWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2UkEsOENBT0M7QUFuU0QseUNBQW1DO0FBRW5DLHdFQUErRztBQUMvRyx3RUFBZ0U7QUFDaEUsMkVBQXVFO0FBRXZFLG1EQUFnRDtBQUNoRCx5REFBeUQ7QUFFekQsK0RBQWtFO0FBQ2xFLDJDQUFrRDtBQUVsRCxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUN6QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7QUFFL0I7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1YsUUFBUSxDQUFXO0lBQ25CLGNBQWMsQ0FBeUI7SUFDdkMsTUFBTSxDQUFjO0lBRXJDLFlBQW1CLFFBQWtCLEVBQUUsY0FBc0MsRUFBRSxNQUFtQjtRQUNoRyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFnQjtRQUN0QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQzNELE9BQU87WUFDUCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxzQkFBc0IsQ0FDakMsVUFBa0MsRUFBRTtRQUVwQyxNQUFNLFlBQVksR0FBRztZQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFD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Y0FBYyxFQUFFLGVBQWU7UUFDL0IsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLEtBQUs7S0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnbm9kZTpodHRwcyc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNyZWRlbnRpYWxDaGFpbiwgZnJvbUVudiwgZnJvbUluaSwgZnJvbU5vZGVQcm92aWRlckNoYWluIH0gZnJvbSAnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlcnMnO1xuaW1wb3J0IHsgTWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnQGF3cy1zZGsvZWMyLW1ldGFkYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgbG9hZFNoYXJlZENvbmZpZ0ZpbGVzIH0gZnJvbSAnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEhhbmRsZXJTZXR0aW5ncyB9IGZyb20gJy4vYmFzZS1jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBpc0VjMkluc3RhbmNlIH0gZnJvbSAnLi9lYzItZGV0ZWN0aW9uJztcbmltcG9ydCB7IG1ha2VDYWNoaW5nUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVyLWNhY2hpbmcnO1xuaW1wb3J0IHR5cGUgeyBJU2RrTG9nZ2VyIH0gZnJvbSAnLi9zZGstbG9nZ2VyJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuY29uc3QgREVGQVVMVF9DT05ORUNUSU9OX1RJTUVPVVQgPSAxMDAwMDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVCA9IDMwMDAwMDtcblxuLyoqXG4gKiBCZWhhdmlvcnMgdG8gbWF0Y2ggQVdTIENMSVxuICpcbiAqIFNlZSB0aGVzZSBsaW5rczpcbiAqXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC90b3BpYy9jb25maWctdmFycy5odG1sXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1lbnZ2YXJzLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0NsaUNvbXBhdGlibGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0SGFuZGxlcjogUmVxdWVzdEhhbmRsZXJTZXR0aW5ncztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIsIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzLCBsb2dnZXI/OiBJU2RrTG9nZ2VyKSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMucmVxdWVzdEhhbmRsZXIgPSByZXF1ZXN0SGFuZGxlcjtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBiYXNlQ29uZmlnKHByb2ZpbGU/OiBzdHJpbmcpOiBQcm9taXNlPHsgY3JlZGVudGlhbFByb3ZpZGVyOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7IGRlZmF1bHRSZWdpb246IHN0cmluZyB9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbFByb3ZpZGVyID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsQ2hhaW5CdWlsZGVyKHtcbiAgICAgIHByb2ZpbGUsXG4gICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlZmF1bHRSZWdpb24gPSBhd2FpdCB0aGlzLnJlZ2lvbihwcm9maWxlKTtcbiAgICByZXR1cm4geyBjcmVkZW50aWFsUHJvdmlkZXIsIGRlZmF1bHRSZWdpb24gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiBBV1MgQ0xJLWNvbXBhdGlibGUgY3JlZGVudGlhbCBjaGFpbiBwcm92aWRlclxuICAgKlxuICAgKiBUaGUgY3JlZGVudGlhbCBjaGFpbiByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGlzIGFsd2F5cyBjYWNoaW5nLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWRlbnRpYWxDaGFpbkJ1aWxkZXIoXG4gICAgb3B0aW9uczogQ3JlZGVudGlhbENoYWluT3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcj4ge1xuICAgIGNvbnN0IGNsaWVudENvbmZpZyA9IHtcbiAgICAgIHJlcXVlc3RIYW5kbGVyOiB0aGlzLnJlcXVlc3RIYW5kbGVyLFxuICAgICAgY3VzdG9tVXNlckFnZW50OiAnYXdzLWNkaycsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgIH07XG5cbiAgICAvLyBTdXBlciBoYWNreSBzb2x1dGlvbiB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzMyNTEwLCBwcm9wb3NlZCBieSB0aGUgU0RLIHRlYW0uXG4gICAgLy9cbiAgICAvLyBTdW1tYXJ5IG9mIHRoZSBwcm9ibGVtOiB3ZSB3ZXJlIHJlYWRpbmcgdGhlIHJlZ2lvbiBmcm9tIHRoZSBjb25maWcgZmlsZSBhbmQgcGFzc2luZyBpdCB0b1xuICAgIC8vIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVycy4gSG93ZXZlciwgaW4gdGhlIGNhc2Ugb2YgU1NPLCB0aGlzIG1ha2VzIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVyXG4gICAgLy8gdXNlIHRoYXQgcmVnaW9uIHRvIGRvIHRoZSBTU08gZmxvdywgd2hpY2ggaXMgaW5jb3JyZWN0LiBUaGUgcmVnaW9uIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yXG4gICAgLy8gdGhhdCBpcyB0aGUgb25lIHNldCBpbiB0aGUgc3NvX3Nlc3Npb24gc2VjdGlvbiBvZiB0aGUgY29uZmlnIGZpbGUuXG4gICAgLy9cbiAgICAvLyBUaGUgaWRlYSBoZXJlOiB0aGUgXCJjbGllbnRDb25maWdcIiBpcyBmb3IgY29uZmlndXJpbmcgdGhlIGlubmVyIGF1dGggY2xpZW50IGRpcmVjdGx5LFxuICAgIC8vIGFuZCBoYXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHksIHdoZXJlYXMgXCJwYXJlbnRDbGllbnRDb25maWdcIiBpcyB0aGUgdXBwZXIgZGF0YSBjbGllbnRcbiAgICAvLyBhbmQgaGFzIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHNzb19yZWdpb24gYnV0IHN0aWxsIGhpZ2hlciBwcmlvcml0eSB0aGFuIFNUUyBnbG9iYWwgcmVnaW9uLlxuICAgIGNvbnN0IHBhcmVudENsaWVudENvbmZpZyA9IHtcbiAgICAgIHJlZ2lvbjogYXdhaXQgdGhpcy5yZWdpb24ob3B0aW9ucy5wcm9maWxlKSxcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBtYXRjaGVkIEFXUyBDTEkgYmVoYXZpb3I6XG4gICAgICpcbiAgICAgKiBJZiBhIHByb2ZpbGUgaXMgZXhwbGljaXRseSBzZXQgdXNpbmcgYC0tcHJvZmlsZWAsXG4gICAgICogd2UgdXNlIHRoYXQgdG8gdGhlIGV4Y2x1c2lvbiBvZiBldmVyeXRoaW5nIGVsc2UuXG4gICAgICpcbiAgICAgKiBOb3RlOiB0aGlzIGRvZXMgbm90IGFwcGx5IHRvIEFXU19QUk9GSUxFLFxuICAgICAqIGVudmlyb25tZW50IGNyZWRlbnRpYWxzIHN0aWxsIHRha2UgcHJlY2VkZW5jZSBvdmVyIEFXU19QUk9GSUxFXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucHJvZmlsZSkge1xuICAgICAgcmV0dXJuIG1ha2VDYWNoaW5nUHJvdmlkZXIoZnJvbUluaSh7XG4gICAgICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgICAgICAgaWdub3JlQ2FjaGU6IHRydWUsXG4gICAgICAgIG1mYUNvZGVQcm92aWRlcjogdGhpcy50b2tlbkNvZGVGbi5iaW5kKHRoaXMpLFxuICAgICAgICBjbGllbnRDb25maWcsXG4gICAgICAgIHBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnZQcm9maWxlID0gcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRTtcblxuICAgIC8qKlxuICAgICAqIEVudiBBV1MgLSBFbnZpcm9ubWVudENyZWRlbnRpYWxzIHdpdGggc3RyaW5nIEFXU1xuICAgICAqIEVudiBBbWF6b24gLSBFbnZpcm9ubWVudENyZWRlbnRpYWxzIHdpdGggc3RyaW5nIEFNQVpPTlxuICAgICAqIFByb2ZpbGUgQ3JlZGVudGlhbHMgLSBQYXRjaGVkU2hhcmVkSW5pRmlsZUNyZWRlbnRpYWxzIHdpdGggaW1wbGljaXQgcHJvZmlsZSwgY3JlZGVudGlhbHMgZmlsZSwgaHR0cCBvcHRpb25zLCBhbmQgdG9rZW4gZm5cbiAgICAgKiAgICBTU08gd2l0aCBpbXBsaWNpdCBwcm9maWxlIG9ubHlcbiAgICAgKiAgICBTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlIGFuZCBwcmVmZXJTdGF0aWNDcmVkZW50aWFscyB0cnVlIChwcm9maWxlIHdpdGggc291cmNlX3Byb2ZpbGUpXG4gICAgICogICAgU2hhcmVkIENyZWRlbnRpYWwgZmlsZSB0aGF0IHBvaW50cyB0byBFbnZpcm9ubWVudCBDcmVkZW50aWFscyB3aXRoIEFXUyBwcmVmaXhcbiAgICAgKiAgICBTaGFyZWQgQ3JlZGVudGlhbCBmaWxlIHRoYXQgcG9pbnRzIHRvIEVDMiBNZXRhZGF0YVxuICAgICAqICAgIFNoYXJlZCBDcmVkZW50aWFsIGZpbGUgdGhhdCBwb2ludHMgdG8gRUNTIENyZWRlbnRpYWxzXG4gICAgICogU1NPIENyZWRlbnRpYWxzIC0gU3NvQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlIGFuZCBodHRwIG9wdGlvbnNcbiAgICAgKiBQcm9jZXNzQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlXG4gICAgICogRUNTIENyZWRlbnRpYWxzIC0gRUNTQ3JlZGVudGlhbHMgd2l0aCBubyBpbnB1dCBPUiBXZWIgSWRlbnRpdHkgLSBUb2tlbkZpbGVXZWJJZGVudGl0eUNyZWRlbnRpYWxzIHdpdGggbm8gaW5wdXQgT1IgRUMyIE1ldGFkYXRhIC0gRUMyTWV0YWRhdGFDcmVkZW50aWFscyB3aXRoIG5vIGlucHV0XG4gICAgICpcbiAgICAgKiBUaGVzZSB0cmFuc2xhdGUgdG86XG4gICAgICogZnJvbUVudigpXG4gICAgICogZnJvbVNTTygpL2Zyb21JbmkoKVxuICAgICAqIGZyb21Qcm9jZXNzKClcbiAgICAgKiBmcm9tQ29udGFpbmVyTWV0YWRhdGEoKVxuICAgICAqIGZyb21Ub2tlbkZpbGUoKVxuICAgICAqIGZyb21JbnN0YW5jZU1ldGFkYXRhKClcbiAgICAgKlxuICAgICAqIFRoZSBOb2RlUHJvdmlkZXJDaGFpbiBpcyBhbHJlYWR5IGNhY2hlZC5cbiAgICAgKi9cblxuICAgIC8vIFNraXAgdGhlIElNRFMgY3JlZGVudGlhbCBwcm92aWRlciBpZiB3ZSdyZSBub3Qgb24gRUMyLCB0byBhdm9pZCBhXG4gICAgLy8gMS0yIHNlY29uZCB0aW1lb3V0IG9uIG5vbi1FQzIgbWFjaGluZXMuXG4gICAgaWYgKHByb2Nlc3MuZW52LkFXU19FQzJfTUVUQURBVEFfRElTQUJMRUQgPT09IHVuZGVmaW5lZCAmJiAhaXNFYzJJbnN0YW5jZSgpKSB7XG4gICAgICBwcm9jZXNzLmVudi5BV1NfRUMyX01FVEFEQVRBX0RJU0FCTEVEID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIFRoaXMgY2hhaW4gcmVzcGVjdHMgdGhlIEFXU19FQzJfTUVUQURBVEFfRElTQUJMRUQgZW52dmFyLCB3aGljaCBjYW4gb3RoZXJ3aXNlXG4gICAgLy8gbm90IGJlIGVhc2lseSBkaXNhYmxlZCB1c2luZyBhIHByb3BlcnR5LlxuICAgIGNvbnN0IG5vZGVQcm92aWRlckNoYWluID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IGVudlByb2ZpbGUsXG4gICAgICBjbGllbnRDb25maWcsXG4gICAgICBwYXJlbnRDbGllbnRDb25maWcsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzaG91bGRQcmlvcml0aXplRW52KClcbiAgICAgID8gY3JlYXRlQ3JlZGVudGlhbENoYWluKGZyb21FbnYoKSwgbm9kZVByb3ZpZGVyQ2hhaW4pLmV4cGlyZUFmdGVyKDYwICogNjBfMDAwKVxuICAgICAgOiBub2RlUHJvdmlkZXJDaGFpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBnZXQgdGhlIHJlZ2lvbiBmcm9tIGEgbnVtYmVyIG9mIHNvdXJjZXMgYW5kIGZhbGxzIGJhY2sgdG8gdXMtZWFzdC0xIGlmIG5vIHJlZ2lvbiBjYW4gYmUgZm91bmQsXG4gICAqIGFzIGlzIGRvbmUgaW4gdGhlIEFXUyBDTEkuXG4gICAqXG4gICAqIFRoZSBvcmRlciBvZiBwcmlvcml0eSBpcyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAxLiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgc3BlY2lmeWluZyByZWdpb24sIHdpdGggYm90aCBhbiBBV1MgcHJlZml4IGFuZCBBTUFaT04gcHJlZml4XG4gICAqICAgIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBhbmQgd2l0aG91dCBgREVGQVVMVGAgaW4gdGhlIG5hbWUgYmVjYXVzZVxuICAgKiAgICBMYW1iZGEgYW5kIENvZGVCdWlsZCBzZXQgdGhlICRBV1NfUkVHSU9OIHZhcmlhYmxlLlxuICAgKiAyLiBSZWdpb25zIGxpc3RlZCBpbiB0aGUgU2hhcmVkIEluaSBGaWxlcyAtIEZpcnN0IGNoZWNraW5nIGZvciB0aGUgcHJvZmlsZSBwcm92aWRlZFxuICAgKiAgICBhbmQgdGhlbiBjaGVja2luZyBmb3IgdGhlIGRlZmF1bHQgcHJvZmlsZS5cbiAgICogMy4gSU1EUyBpbnN0YW5jZSBpZGVudGl0eSByZWdpb24gZnJvbSB0aGUgTWV0YWRhdGEgU2VydmljZS5cbiAgICogNC4gdXMtZWFzdC0xXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaW9uKG1heWJlUHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBtYXliZVByb2ZpbGUgfHwgcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRSB8fCAnZGVmYXVsdCc7XG5cbiAgICBjb25zdCByZWdpb24gPVxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQU1BWk9OX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OIHx8XG4gICAgICBwcm9jZXNzLmVudi5BTUFaT05fREVGQVVMVF9SRUdJT04gfHxcbiAgICAgIChhd2FpdCB0aGlzLmdldFJlZ2lvbkZyb21JbmkocHJvZmlsZSkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy5yZWdpb25Gcm9tTWV0YWRhdGFTZXJ2aWNlKCkpO1xuXG4gICAgaWYgKCFyZWdpb24pIHtcbiAgICAgIGNvbnN0IHVzZWRQcm9maWxlID0gIXByb2ZpbGUgPyAnJyA6IGAgKHByb2ZpbGU6IFwiJHtwcm9maWxlfVwiKWA7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKFxuICAgICAgICBgVW5hYmxlIHRvIGRldGVybWluZSBBV1MgcmVnaW9uIGZyb20gZW52aXJvbm1lbnQgb3IgQVdTIGNvbmZpZ3VyYXRpb24ke3VzZWRQcm9maWxlfSwgZGVmYXVsdGluZyB0byAnJHtkZWZhdWx0UmVnaW9ufSdgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkZWZhdWx0UmVnaW9uO1xuICAgIH1cblxuICAgIHJldHVybiByZWdpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIE1ldGFkYXRhU2VydmljZSBjbGFzcyB3aWxsIGF0dGVtcHQgdG8gZmV0Y2ggdGhlIGluc3RhbmNlIGlkZW50aXR5IGRvY3VtZW50IGZyb21cbiAgICogSU1EU3YyIGZpcnN0LCBhbmQgdGhlbiB3aWxsIGF0dGVtcHQgdjEgYXMgYSBmYWxsYmFjay5cbiAgICpcbiAgICogSWYgdGhpcyBmYWlscywgd2Ugd2lsbCB1c2UgdXMtZWFzdC0xIGFzIHRoZSByZWdpb24gc28gbm8gZXJyb3Igc2hvdWxkIGJlIHRocm93bi5cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIGluc3RhbmNlIGlkZW50aXR5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZ2lvbkZyb21NZXRhZGF0YVNlcnZpY2UoKSB7XG4gICAgaWYgKCFpc0VjMkluc3RhbmNlKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZygnTG9va2luZyB1cCBBV1MgcmVnaW9uIGluIHRoZSBFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZSAoSU1EUykuJyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhU2VydmljZSA9IG5ldyBNZXRhZGF0YVNlcnZpY2Uoe1xuICAgICAgICBodHRwT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IDEwMDAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWV0YWRhdGFTZXJ2aWNlLmZldGNoTWV0YWRhdGFUb2tlbigpO1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBhd2FpdCBtZXRhZGF0YVNlcnZpY2UucmVxdWVzdCgnL2xhdGVzdC9keW5hbWljL2luc3RhbmNlLWlkZW50aXR5L2RvY3VtZW50Jywge30pO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZG9jdW1lbnQpLnJlZ2lvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBVbmFibGUgdG8gcmV0cmlldmUgQVdTIHJlZ2lvbiBmcm9tIElNRFM6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgdXAgdGhlIHJlZ2lvbiBvZiB0aGUgcHJvdmlkZWQgcHJvZmlsZS4gSWYgbm8gcmVnaW9uIGlzIHByZXNlbnQsXG4gICAqIGl0IHdpbGwgYXR0ZW1wdCB0byBsb29rdXAgdGhlIGRlZmF1bHQgcmVnaW9uLlxuICAgKiBAcGFyYW0gcHJvZmlsZSAtIFRoZSBwcm9maWxlIHRvIHVzZSB0byBsb29rdXAgdGhlIHJlZ2lvblxuICAgKiBAcmV0dXJucyBUaGUgcmVnaW9uIGZvciB0aGUgcHJvZmlsZSBvciBkZWZhdWx0IHByb2ZpbGUsIGlmIHByZXNlbnQuIE90aGVyd2lzZSByZXR1cm5zIHVuZGVmaW5lZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVnaW9uRnJvbUluaShwcm9maWxlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHNoYXJlZEZpbGVzID0gYXdhaXQgbG9hZFNoYXJlZENvbmZpZ0ZpbGVzKHsgaWdub3JlQ2FjaGU6IHRydWUgfSk7XG5cbiAgICAvLyBQcmlvcml0eTpcbiAgICAvL1xuICAgIC8vIGNyZWRlbnRpYWxzIGNvbWUgYmVmb3JlIGNvbmZpZyBiZWNhdXNlIGF3cy1jbGkgdjEgYmVoYXZlcyBsaWtlIHRoYXQuXG4gICAgLy9cbiAgICAvLyAxLiBwcm9maWxlLXJlZ2lvbi1pbi1jcmVkZW50aWFsc1xuICAgIC8vIDIuIHByb2ZpbGUtcmVnaW9uLWluLWNvbmZpZ1xuICAgIC8vIDMuIGRlZmF1bHQtcmVnaW9uLWluLWNyZWRlbnRpYWxzXG4gICAgLy8gNC4gZGVmYXVsdC1yZWdpb24taW4tY29uZmlnXG5cbiAgICByZXR1cm4gdGhpcy5nZXRSZWdpb25Gcm9tSW5pRmlsZShwcm9maWxlLCBzaGFyZWRGaWxlcy5jcmVkZW50aWFsc0ZpbGUpXG4gICAgPz8gdGhpcy5nZXRSZWdpb25Gcm9tSW5pRmlsZShwcm9maWxlLCBzaGFyZWRGaWxlcy5jb25maWdGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUoJ2RlZmF1bHQnLCBzaGFyZWRGaWxlcy5jcmVkZW50aWFsc0ZpbGUpXG4gICAgPz8gdGhpcy5nZXRSZWdpb25Gcm9tSW5pRmlsZSgnZGVmYXVsdCcsIHNoYXJlZEZpbGVzLmNvbmZpZ0ZpbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWdpb25Gcm9tSW5pRmlsZShwcm9maWxlOiBzdHJpbmcsIGRhdGE/OiBhbnkpIHtcbiAgICByZXR1cm4gZGF0YT8uW3Byb2ZpbGVdPy5yZWdpb247XG4gIH1cblxuICAvKipcbiAgICogQXNrIHVzZXIgZm9yIE1GQSB0b2tlbiBmb3IgZ2l2ZW4gTUZBIGRldmljZVxuICAgKlxuICAgKiBSZXN1bHQgaXMgc2VuZCB0byBjYWxsYmFjayBmdW5jdGlvbiBmb3IgU0RLIHRvIGF1dGhvcml6ZSB0aGUgcmVxdWVzdFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0b2tlbkNvZGVGbihkZXZpY2VBcm46IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVidWdGbiA9IChtc2c6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KG1zZywgLi4uYXJncykpO1xuICAgIGF3YWl0IGRlYnVnRm4oJ1JlcXVpcmUgTUZBIHRva2VuIGZyb20gTUZBIGRldmljZSB3aXRoIEFSTicsIGRldmljZUFybik7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VuOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmlvSGVscGVyLnJlcXVlc3RSZXNwb25zZShJTy5DREtfU0RLX0kxMTAwLnJlcShgTUZBIHRva2VuIGZvciAke2RldmljZUFybn1gLCB7XG4gICAgICAgIGRldmljZUFybixcbiAgICAgIH0sICcnKSk7XG5cbiAgICAgIGF3YWl0IGRlYnVnRm4oJ1N1Y2Nlc3NmdWxseSBnb3QgTUZBIHRva2VuIGZyb20gdXNlcicpO1xuICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBhd2FpdCBkZWJ1Z0ZuKCdGYWlsZWQgdG8gZ2V0IE1GQSB0b2tlbicsIGVycik7XG4gICAgICBjb25zdCBlID0gbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ01mYVRva2VuRXJyb3InLCBgRXJyb3IgZmV0Y2hpbmcgTUZBIHRva2VuOiAke2Vyci5tZXNzYWdlID8/IGVycn1gKTtcbiAgICAgIGUubmFtZSA9ICdTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHNQcm92aWRlckZhaWx1cmUnO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBXZSB1c2VkIHRvIHN1cHBvcnQgYm90aCBBV1MgYW5kIEFNQVpPTiBwcmVmaXhlcyBmb3IgdGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEFkZGluZyB0aGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICovXG5mdW5jdGlvbiBzaG91bGRQcmlvcml0aXplRW52KCkge1xuICBjb25zdCBpZCA9IHByb2Nlc3MuZW52LkFXU19BQ0NFU1NfS0VZX0lEIHx8IHByb2Nlc3MuZW52LkFNQVpPTl9BQ0NFU1NfS0VZX0lEO1xuICBjb25zdCBrZXkgPSBwcm9jZXNzLmVudi5BV1NfU0VDUkVUX0FDQ0VTU19LRVkgfHwgcHJvY2Vzcy5lbnYuQU1BWk9OX1NFQ1JFVF9BQ0NFU1NfS0VZO1xuXG4gIGlmICghIWlkICYmICEha2V5KSB7XG4gICAgcHJvY2Vzcy5lbnYuQVdTX0FDQ0VTU19LRVlfSUQgPSBpZDtcbiAgICBwcm9jZXNzLmVudi5BV1NfU0VDUkVUX0FDQ0VTU19LRVkgPSBrZXk7XG5cbiAgICBjb25zdCBzZXNzaW9uVG9rZW4gPSBwcm9jZXNzLmVudi5BV1NfU0VTU0lPTl9UT0tFTiA/PyBwcm9jZXNzLmVudi5BTUFaT05fU0VTU0lPTl9UT0tFTjtcbiAgICBpZiAoc2Vzc2lvblRva2VuKSB7XG4gICAgICBwcm9jZXNzLmVudi5BV1NfU0VTU0lPTl9UT0tFTiA9IHNlc3Npb25Ub2tlbjtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVkZW50aWFsQ2hhaW5PcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbG9nZ2VyPzogSVNka0xvZ2dlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNka1JlcXVlc3RIYW5kbGVyKGFnZW50PzogQWdlbnQpOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzIHtcbiAgcmV0dXJuIHtcbiAgICBjb25uZWN0aW9uVGltZW91dDogREVGQVVMVF9DT05ORUNUSU9OX1RJTUVPVVQsXG4gICAgcmVxdWVzdFRpbWVvdXQ6IERFRkFVTFRfVElNRU9VVCxcbiAgICBodHRwc0FnZW50OiBhZ2VudCxcbiAgICBodHRwQWdlbnQ6IGFnZW50LFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseCredentials = void 0;\nconst awscli_compatible_1 = require(\"./awscli-compatible\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst sdk_logger_1 = require(\"./sdk-logger\");\nconst private_1 = require(\"../io/private\");\nclass BaseCredentials {\n /**\n * Use no base credentials\n *\n * There will be no current account and no current region during synthesis. To\n * successfully deploy with this set of base credentials:\n *\n * - The CDK app must provide concrete accounts and regions during synthesis\n * - Credential plugins must be installed to provide credentials for those\n * accounts.\n */\n static none() {\n return new class {\n async sdkBaseConfig() {\n return {\n credentialProvider: () => {\n throw new toolkit_error_1.AuthenticationError('NoBaseCredentials', 'No credentials available due to BaseCredentials.none()');\n },\n };\n }\n toString() {\n return 'BaseCredentials.none()';\n }\n };\n }\n /**\n * Obtain base credentials and base region the same way the AWS CLI would\n *\n * Credentials and region will be read from the environment first, falling back\n * to INI files or other sources if available.\n *\n * The profile name is configurable.\n */\n static awsCliCompatible(options = {}) {\n return new class {\n async sdkBaseConfig(ioHost, clientConfig) {\n const ioHelper = private_1.IoHelper.fromActionAwareIoHost(ioHost);\n const awsCli = new awscli_compatible_1.AwsCliCompatible(ioHelper, clientConfig.requestHandler ?? {}, new sdk_logger_1.IoHostSdkLogger(ioHelper));\n const ret = await awsCli.baseConfig(options.profile);\n return options.defaultRegion\n ? { ...ret, defaultRegion: options.defaultRegion }\n : ret;\n }\n toString() {\n return `BaseCredentials.awsCliCompatible(${JSON.stringify(options)})`;\n }\n };\n }\n /**\n * Use a custom SDK identity provider for the base credentials\n *\n * If your provider uses STS calls to obtain base credentials, you must make\n * sure to also configure the necessary HTTP options (like proxy and user\n * agent) and the region on the STS client directly; the toolkit code cannot\n * do this for you.\n */\n static custom(options) {\n return new class {\n sdkBaseConfig() {\n return Promise.resolve({\n credentialProvider: options.provider,\n defaultRegion: options.region,\n });\n }\n toString() {\n return `BaseCredentials.custom(${JSON.stringify({\n ...options,\n provider: '...',\n })})`;\n }\n };\n }\n}\nexports.BaseCredentials = BaseCredentials;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jcmVkZW50aWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UtY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkRBQXVEO0FBQ3ZELCtEQUFrRTtBQUVsRSw2Q0FBK0M7QUFDL0MsMkNBQXlDO0FBa0R6QyxNQUFhLGVBQWU7SUFDMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLElBQUk7UUFDaEIsT0FBTyxJQUFJO1lBQ0YsS0FBSyxDQUFDLGFBQWE7Z0JBQ3hCLE9BQU87b0JBQ0wsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO3dCQUN2QixNQUFNLElBQUksbUNBQW1CLENBQUMsbUJBQW1CLEVBQUUsd0RBQXdELENBQUMsQ0FBQztvQkFDL0csQ0FBQztpQkFDRixDQUFDO1lBQ0osQ0FBQztZQUVNLFFBQVE7Z0JBQ2IsT0FBTyx3QkFBd0IsQ0FBQztZQUNsQyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQW1DLEVBQUU7UUFDbEUsT0FBTyxJQUFJO1lBQ0YsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUEwQixFQUFFLFlBQWlDO2dCQUN0RixNQUFNLFFBQVEsR0FBRyxrQkFBUSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLG9DQUFnQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFBRSxJQUFJLDRCQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFFaEgsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckQsT0FBTyxPQUFPLENBQUMsYUFBYTtvQkFDMUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUU7b0JBQ2xELENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDVixDQUFDO1lBRU0sUUFBUTtnQkFDYixPQUFPLG9DQUFvQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDeEUsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBb0M7UUFDdkQsT0FBTyxJQUFJO1lBQ0YsYUFBYTtnQkFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO29CQUNyQixrQkFBa0IsRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDcEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2lCQUM5QixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRU0sUUFBUTtnQkFDYixPQUFPLDBCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDO29CQUM5QyxHQUFHLE9BQU87b0JBQ1YsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCLENBQUMsR0FBRyxDQUFDO1lBQ1IsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE5RUQsMENBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBodHRwIGZyb20gJ25vZGU6aHR0cCc7XG5pbXBvcnQgdHlwZSAqIGFzIGh0dHBzIGZyb20gJ25vZGU6aHR0cHMnO1xuaW1wb3J0IHR5cGUgeyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB7IEF3c0NsaUNvbXBhdGlibGUgfSBmcm9tICcuL2F3c2NsaS1jb21wYXRpYmxlJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uQXdhcmVJb0hvc3QgfSBmcm9tICcuLi9pbyc7XG5pbXBvcnQgeyBJb0hvc3RTZGtMb2dnZXIgfSBmcm9tICcuL3Nkay1sb2dnZXInO1xuaW1wb3J0IHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuLyoqXG4gKiBTZXR0aW5ncyBmb3IgdGhlIHJlcXVlc3QgaGFuZGxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEhhbmRsZXJTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIDAsIHdoaWNoIGRpc2FibGVzIHRoZSB0aW1lb3V0LlxuICAgKi9cbiAgY29ubmVjdGlvblRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhIHJlcXVlc3QgY2FuIHRha2UgYmVmb3JlIGF1dG9tYXRpY2FsbHkgYmVpbmcgdGVybWluYXRlZC5cbiAgICogRGVmYXVsdHMgdG8gMCwgd2hpY2ggZGlzYWJsZXMgdGhlIHRpbWVvdXQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEFuIGh0dHAuQWdlbnQgdG8gYmUgdXNlZFxuICAgKi9cbiAgaHR0cEFnZW50PzogaHR0cC5BZ2VudDtcbiAgLyoqXG4gICAqIEFuIGh0dHBzLkFnZW50IHRvIGJlIHVzZWRcbiAgICovXG4gIGh0dHBzQWdlbnQ/OiBodHRwcy5BZ2VudDtcbn1cblxuLyoqXG4gKiBBbiBTREsgY29uZmlnIHRoYXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtCYXNlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFsIHByb3ZpZGVyIHRvIHVzZSBmb3IgU0RLIGNhbGxzLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCByZWdpb24gdG8gdXNlIGZvciBTREsgY2FsbHMuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0UmVnaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNka0Jhc2VDbGllbnRDb25maWcge1xuICByZXF1ZXN0SGFuZGxlcj86IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJhc2VDcmVkZW50aWFsc1Byb3ZpZGVyIHtcbiAgc2RrQmFzZUNvbmZpZyhpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCwgY2xpZW50Q29uZmlnOiBTZGtCYXNlQ2xpZW50Q29uZmlnKTogUHJvbWlzZTxTZGtCYXNlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VDcmVkZW50aWFscyB7XG4gIC8qKlxuICAgKiBVc2Ugbm8gYmFzZSBjcmVkZW50aWFsc1xuICAgKlxuICAgKiBUaGVyZSB3aWxsIGJlIG5vIGN1cnJlbnQgYWNjb3VudCBhbmQgbm8gY3VycmVudCByZWdpb24gZHVyaW5nIHN5bnRoZXNpcy4gVG9cbiAgICogc3VjY2Vzc2Z1bGx5IGRlcGxveSB3aXRoIHRoaXMgc2V0IG9mIGJhc2UgY3JlZGVudGlhbHM6XG4gICAqXG4gICAqIC0gVGhlIENESyBhcHAgbXVzdCBwcm92aWRlIGNvbmNyZXRlIGFjY291bnRzIGFuZCByZWdpb25zIGR1cmluZyBzeW50aGVzaXNcbiAgICogLSBDcmVkZW50aWFsIHBsdWdpbnMgbXVzdCBiZSBpbnN0YWxsZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyBmb3IgdGhvc2VcbiAgICogICBhY2NvdW50cy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbm9uZSgpOiBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgICAgcHVibGljIGFzeW5jIHNka0Jhc2VDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY3JlZGVudGlhbFByb3ZpZGVyOiAoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcignTm9CYXNlQ3JlZGVudGlhbHMnLCAnTm8gY3JlZGVudGlhbHMgYXZhaWxhYmxlIGR1ZSB0byBCYXNlQ3JlZGVudGlhbHMubm9uZSgpJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gJ0Jhc2VDcmVkZW50aWFscy5ub25lKCknO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogT2J0YWluIGJhc2UgY3JlZGVudGlhbHMgYW5kIGJhc2UgcmVnaW9uIHRoZSBzYW1lIHdheSB0aGUgQVdTIENMSSB3b3VsZFxuICAgKlxuICAgKiBDcmVkZW50aWFscyBhbmQgcmVnaW9uIHdpbGwgYmUgcmVhZCBmcm9tIHRoZSBlbnZpcm9ubWVudCBmaXJzdCwgZmFsbGluZyBiYWNrXG4gICAqIHRvIElOSSBmaWxlcyBvciBvdGhlciBzb3VyY2VzIGlmIGF2YWlsYWJsZS5cbiAgICpcbiAgICogVGhlIHByb2ZpbGUgbmFtZSBpcyBjb25maWd1cmFibGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGF3c0NsaUNvbXBhdGlibGUob3B0aW9uczogQXdzQ2xpQ29tcGF0aWJsZU9wdGlvbnMgPSB7fSk6IElCYXNlQ3JlZGVudGlhbHNQcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBpbXBsZW1lbnRzIElCYXNlQ3JlZGVudGlhbHNQcm92aWRlciB7XG4gICAgICBwdWJsaWMgYXN5bmMgc2RrQmFzZUNvbmZpZyhpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCwgY2xpZW50Q29uZmlnOiBTZGtCYXNlQ2xpZW50Q29uZmlnKSB7XG4gICAgICAgIGNvbnN0IGlvSGVscGVyID0gSW9IZWxwZXIuZnJvbUFjdGlvbkF3YXJlSW9Ib3N0KGlvSG9zdCk7XG4gICAgICAgIGNvbnN0IGF3c0NsaSA9IG5ldyBBd3NDbGlDb21wYXRpYmxlKGlvSGVscGVyLCBjbGllbnRDb25maWcucmVxdWVzdEhhbmRsZXIgPz8ge30sIG5ldyBJb0hvc3RTZGtMb2dnZXIoaW9IZWxwZXIpKTtcblxuICAgICAgICBjb25zdCByZXQgPSBhd2FpdCBhd3NDbGkuYmFzZUNvbmZpZyhvcHRpb25zLnByb2ZpbGUpO1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5kZWZhdWx0UmVnaW9uXG4gICAgICAgICAgPyB7IC4uLnJldCwgZGVmYXVsdFJlZ2lvbjogb3B0aW9ucy5kZWZhdWx0UmVnaW9uIH1cbiAgICAgICAgICA6IHJldDtcbiAgICAgIH1cblxuICAgICAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gYEJhc2VDcmVkZW50aWFscy5hd3NDbGlDb21wYXRpYmxlKCR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9KWA7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYSBjdXN0b20gU0RLIGlkZW50aXR5IHByb3ZpZGVyIGZvciB0aGUgYmFzZSBjcmVkZW50aWFsc1xuICAgKlxuICAgKiBJZiB5b3VyIHByb3ZpZGVyIHVzZXMgU1RTIGNhbGxzIHRvIG9idGFpbiBiYXNlIGNyZWRlbnRpYWxzLCB5b3UgbXVzdCBtYWtlXG4gICAqIHN1cmUgdG8gYWxzbyBjb25maWd1cmUgdGhlIG5lY2Vzc2FyeSBIVFRQIG9wdGlvbnMgKGxpa2UgcHJveHkgYW5kIHVzZXJcbiAgICogYWdlbnQpIGFuZCB0aGUgcmVnaW9uIG9uIHRoZSBTVFMgY2xpZW50IGRpcmVjdGx5OyB0aGUgdG9vbGtpdCBjb2RlIGNhbm5vdFxuICAgKiBkbyB0aGlzIGZvciB5b3UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShvcHRpb25zOiBDdXN0b21CYXNlQ3JlZGVudGlhbHNPcHRpb24pOiBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIge1xuICAgICAgcHVibGljIHNka0Jhc2VDb25maWcoKTogUHJvbWlzZTxTZGtCYXNlQ29uZmlnPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlcjogb3B0aW9ucy5wcm92aWRlcixcbiAgICAgICAgICBkZWZhdWx0UmVnaW9uOiBvcHRpb25zLnJlZ2lvbixcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIGBCYXNlQ3JlZGVudGlhbHMuY3VzdG9tKCR7SlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgcHJvdmlkZXI6ICcuLi4nLFxuICAgICAgICB9KX0pYDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2xpQ29tcGF0aWJsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHByb2ZpbGUgdG8gcmVhZCBmcm9tIGB+Ly5hd3MvY3JlZGVudGlhbHNgLlxuICAgKlxuICAgKiBJZiBub3Qgc3VwcGxpZWQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19QUk9GSUxFIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2UgZW52aXJvbm1lbnQgdmFyaWFibGUgaWYgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIGEgZGlmZmVyZW50IGRlZmF1bHQgcmVnaW9uIHRoYW4gdGhlIG9uZSBpbiB0aGUgcHJvZmlsZVxuICAgKlxuICAgKiBJZiBub3Qgc3VwcGxpZWQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19SRUdJT04gd2lsbCBiZSB1c2VkLCBvclxuICAgKiB3aGF0ZXZlciByZWdpb24gaXMgc2V0IGluIHRoZSBpbmRpY2F0ZWQgcHJvZmlsZSBpbiBgfi8uYXdzL2NvbmZpZ2AuXG4gICAqIElmIG5vIHJlZ2lvbiBpcyBzZXQgaW4gdGhlIHByb2ZpbGUgdGhlIHJlZ2lvbiBpbiBgW2RlZmF1bHRdYCB3aWxsXG4gICAqIGJlIHVzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHJlZ2lvbiBmcm9tIGB+Ly5hd3MvY29uZmlnYC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRSZWdpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQmFzZUNyZWRlbnRpYWxzT3B0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyBwcm92aWRlciB0byB1c2UgdG8gb2J0YWluIGJhc2UgY3JlZGVudGlhbHNcbiAgICpcbiAgICogSWYgeW91ciBwcm92aWRlciB1c2VzIFNUUyBjYWxscyB0byBvYnRhaW4gYmFzZSBjcmVkZW50aWFscywgeW91IG11c3QgbWFrZVxuICAgKiBzdXJlIHRvIGFsc28gY29uZmlndXJlIHRoZSBuZWNlc3NhcnkgSFRUUCBvcHRpb25zIChsaWtlIHByb3h5IGFuZCB1c2VyXG4gICAqIGFnZW50KSBvbiB0aGUgU1RTIGNsaWVudCBkaXJlY3RseTsgdGhlIHRvb2xraXQgY29kZSBjYW5ub3QgZG8gdGhpcyBmb3IgeW91LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcjtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgcmVnaW9uIHRvIHN5bnRoZXNpemUgZm9yXG4gICAqXG4gICAqIENESyBhcHBsaWNhdGlvbnMgY2FuIG92ZXJyaWRlIHRoaXMgcmVnaW9uLiBOT1RFOiB0aGlzIHJlZ2lvbiB3aWxsICpub3QqXG4gICAqIGFmZmVjdCBhbnkgU1RTIGNhbGxzIG1hZGUgYnkgdGhlIGdpdmVuIHByb3ZpZGVyLCBpZiBhbnkuIFlvdSBuZWVkIHRvIGNvbmZpZ3VyZVxuICAgKiB5b3VyIGNyZWRlbnRpYWwgcHJvdmlkZXIgc2VwYXJhdGVseS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3VzLWVhc3QtMSdcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cached = cached;\nexports.cachedAsync = cachedAsync;\n/**\n * Cache the result of a function on an object\n *\n * We could have used @decorators to make this nicer but we don't use them anywhere yet,\n * so let's keep it simple and readable.\n */\nfunction cached(obj, sym, fn) {\n if (!(sym in obj)) {\n obj[sym] = fn();\n }\n return obj[sym];\n}\n/**\n * Like 'cached', but async\n */\nasync function cachedAsync(obj, sym, fn) {\n if (!(sym in obj)) {\n obj[sym] = await fn();\n }\n return obj[sym];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2FjaGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsd0JBS0M7QUFLRCxrQ0FLQztBQXJCRDs7Ozs7R0FLRztBQUNILFNBQWdCLE1BQU0sQ0FBc0IsR0FBTSxFQUFFLEdBQVcsRUFBRSxFQUFXO0lBQzFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLEdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBUSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLFdBQVcsQ0FBc0IsR0FBTSxFQUFFLEdBQVcsRUFBRSxFQUFvQjtJQUM5RixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixHQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBUSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FjaGUgdGhlIHJlc3VsdCBvZiBhIGZ1bmN0aW9uIG9uIGFuIG9iamVjdFxuICpcbiAqIFdlIGNvdWxkIGhhdmUgdXNlZCBAZGVjb3JhdG9ycyB0byBtYWtlIHRoaXMgbmljZXIgYnV0IHdlIGRvbid0IHVzZSB0aGVtIGFueXdoZXJlIHlldCxcbiAqIHNvIGxldCdzIGtlZXAgaXQgc2ltcGxlIGFuZCByZWFkYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlZDxBIGV4dGVuZHMgb2JqZWN0LCBCPihvYmo6IEEsIHN5bTogc3ltYm9sLCBmbjogKCkgPT4gQik6IEIge1xuICBpZiAoIShzeW0gaW4gb2JqKSkge1xuICAgIChvYmogYXMgYW55KVtzeW1dID0gZm4oKTtcbiAgfVxuICByZXR1cm4gKG9iaiBhcyBhbnkpW3N5bV07XG59XG5cbi8qKlxuICogTGlrZSAnY2FjaGVkJywgYnV0IGFzeW5jXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjYWNoZWRBc3luYzxBIGV4dGVuZHMgb2JqZWN0LCBCPihvYmo6IEEsIHN5bTogc3ltYm9sLCBmbjogKCkgPT4gUHJvbWlzZTxCPik6IFByb21pc2U8Qj4ge1xuICBpZiAoIShzeW0gaW4gb2JqKSkge1xuICAgIChvYmogYXMgYW55KVtzeW1dID0gYXdhaXQgZm4oKTtcbiAgfVxuICByZXR1cm4gKG9iaiBhcyBhbnkpW3N5bV07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CredentialPlugins = void 0;\nconst util_1 = require(\"util\");\nconst provider_caching_1 = require(\"./provider-caching\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_2 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\n/**\n * Cache for credential providers.\n *\n * Given an account and an operating mode (read or write) will return an\n * appropriate credential provider for credentials for the given account. The\n * credential provider will be cached so that multiple AWS clients for the same\n * environment will not make multiple network calls to obtain credentials.\n *\n * Will use default credentials if they are for the right account; otherwise,\n * all loaded credential provider plugins will be tried to obtain credentials\n * for the given account.\n */\nclass CredentialPlugins {\n host;\n ioHelper;\n cache = {};\n constructor(host, ioHelper) {\n this.host = host;\n this.ioHelper = ioHelper;\n }\n async fetchCredentialsFor(awsAccountId, mode) {\n const key = `${awsAccountId}-${mode}`;\n if (!(key in this.cache)) {\n this.cache[key] = await this.lookupCredentials(awsAccountId, mode);\n }\n return this.cache[key];\n }\n get availablePluginNames() {\n return this.host.credentialProviderSources.map((s) => s.name);\n }\n async lookupCredentials(awsAccountId, mode) {\n const triedSources = [];\n // Otherwise, inspect the various credential sources we have\n for (const source of this.host.credentialProviderSources) {\n let available;\n try {\n available = await source.isAvailable();\n }\n catch (e) {\n // This shouldn't happen, but let's guard against it anyway\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_W0100.msg(`Uncaught exception in ${source.name}: ${(0, util_2.formatErrorMessage)(e)}`));\n available = false;\n }\n if (!available) {\n await this.ioHelper.defaults.debug(`Credentials source ${source.name} is not available, ignoring it.`);\n continue;\n }\n triedSources.push(source);\n let canProvide;\n try {\n canProvide = await source.canProvideCredentials(awsAccountId);\n }\n catch (e) {\n // This shouldn't happen, but let's guard against it anyway\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_W0100.msg(`Uncaught exception in ${source.name}: ${(0, util_2.formatErrorMessage)(e)}`));\n canProvide = false;\n }\n if (!canProvide) {\n continue;\n }\n await this.ioHelper.defaults.debug(`Using ${source.name} credentials for account ${awsAccountId}`);\n return {\n credentials: await v3ProviderFromPlugin(() => source.getProvider(awsAccountId, mode, {\n supportsV3Providers: true,\n })),\n pluginName: source.name,\n };\n }\n return undefined;\n }\n}\nexports.CredentialPlugins = CredentialPlugins;\n/**\n * Take a function that calls the plugin, and turn it into an SDKv3-compatible credential provider.\n *\n * What we will do is the following:\n *\n * - Query the plugin and see what kind of result it gives us.\n * - If the result is self-refreshing or doesn't need refreshing, we turn it into an SDKv3 provider\n * and return it directly.\n * * If the underlying return value is a provider, we will make it a caching provider\n * (because we can't know if it will cache by itself or not).\n * * If the underlying return value is a static credential, caching isn't relevant.\n * * If the underlying return value is V2 credentials, those have caching built-in.\n * - If the result is a static credential that expires, we will wrap it in an SDKv3 provider\n * that will query the plugin again when the credential expires.\n */\nasync function v3ProviderFromPlugin(producer) {\n const initial = await producer();\n if (isV3Provider(initial)) {\n // Already a provider, make caching\n return (0, provider_caching_1.makeCachingProvider)(initial);\n }\n else if (isV3Credentials(initial) && initial.expiration === undefined) {\n // Static credentials that don't need refreshing nor caching\n return () => Promise.resolve(initial);\n }\n else if (isV3Credentials(initial) && initial.expiration !== undefined) {\n // Static credentials that do need refreshing and caching\n return refreshFromPluginProvider(initial, producer);\n }\n else if (isV2Credentials(initial)) {\n // V2 credentials that refresh and cache themselves\n return v3ProviderFromV2Credentials(initial);\n }\n else {\n throw new toolkit_error_1.AuthenticationError('InvalidPluginCredentials', `Plugin returned a value that doesn't resemble AWS credentials: ${(0, util_1.inspect)(initial)}`);\n }\n}\n/**\n * Converts a V2 credential into a V3-compatible provider\n */\nfunction v3ProviderFromV2Credentials(x) {\n return async () => {\n // Get will fetch or refresh as necessary\n await x.getPromise();\n return {\n accessKeyId: x.accessKeyId,\n secretAccessKey: x.secretAccessKey,\n sessionToken: x.sessionToken,\n expiration: x.expireTime ?? undefined,\n };\n };\n}\nfunction refreshFromPluginProvider(current, producer) {\n return async () => {\n if ((0, provider_caching_1.credentialsAboutToExpire)(current)) {\n const newCreds = await producer();\n if (!isV3Credentials(newCreds)) {\n throw new toolkit_error_1.AuthenticationError('PluginCredentialTypeMismatch', `Plugin initially returned static V3 credentials but now returned something else: ${(0, util_1.inspect)(newCreds)}`);\n }\n current = newCreds;\n }\n return current;\n };\n}\nfunction isV3Provider(x) {\n return typeof x === 'function';\n}\nfunction isV2Credentials(x) {\n return !!(x && typeof x === 'object' && x.getPromise);\n}\nfunction isV3Credentials(x) {\n return !!(x && typeof x === 'object' && x.accessKeyId && !isV2Credentials(x));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3JlZGVudGlhbC1wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQix5REFBbUY7QUFDbkYsK0RBQWtFO0FBQ2xFLHFDQUFnRDtBQUNoRCwyQ0FBa0Q7QUFJbEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFhLGlCQUFpQjtJQUdDO0lBQW1DO0lBRi9DLEtBQUssR0FBZ0UsRUFBRSxDQUFDO0lBRXpGLFlBQTZCLElBQWdCLEVBQW1CLFFBQWtCO1FBQXJELFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUNsRixDQUFDO0lBRU0sS0FBSyxDQUFDLG1CQUFtQixDQUFDLFlBQW9CLEVBQUUsSUFBVTtRQUMvRCxNQUFNLEdBQUcsR0FBRyxHQUFHLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsWUFBb0IsRUFBRSxJQUFVO1FBQzlELE1BQU0sWUFBWSxHQUErQixFQUFFLENBQUM7UUFDcEQsNERBQTREO1FBQzVELEtBQUss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QjtJQUMzQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsQ0FBdUI7SUFDOUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFLLENBQWdDLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLENBQXVCO0lBQzlDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluc3BlY3QgfSBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgQ3JlZGVudGlhbFByb3ZpZGVyU291cmNlLCBGb3JSZWFkaW5nLCBGb3JXcml0aW5nLCBQbHVnaW5Qcm92aWRlclJlc3VsdCwgU0RLdjJDb21wYXRpYmxlQ3JlZGVudGlhbHMsIFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciwgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbHMgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB7IGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSwgbWFrZUNhY2hpbmdQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXItY2FjaGluZyc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luSG9zdCB9IGZyb20gJy4uL3BsdWdpbic7XG5pbXBvcnQgdHlwZSB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4vbW9kZSc7XG5cbi8qKlxuICogQ2FjaGUgZm9yIGNyZWRlbnRpYWwgcHJvdmlkZXJzLlxuICpcbiAqIEdpdmVuIGFuIGFjY291bnQgYW5kIGFuIG9wZXJhdGluZyBtb2RlIChyZWFkIG9yIHdyaXRlKSB3aWxsIHJldHVybiBhblxuICogYXBwcm9wcmlhdGUgY3JlZGVudGlhbCBwcm92aWRlciBmb3IgY3JlZGVudGlhbHMgZm9yIHRoZSBnaXZlbiBhY2NvdW50LiBUaGVcbiAqIGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBiZSBjYWNoZWQgc28gdGhhdCBtdWx0aXBsZSBBV1MgY2xpZW50cyBmb3IgdGhlIHNhbWVcbiAqIGVudmlyb25tZW50IHdpbGwgbm90IG1ha2UgbXVsdGlwbGUgbmV0d29yayBjYWxscyB0byBvYnRhaW4gY3JlZGVudGlhbHMuXG4gKlxuICogV2lsbCB1c2UgZGVmYXVsdCBjcmVkZW50aWFscyBpZiB0aGV5IGFyZSBmb3IgdGhlIHJpZ2h0IGFjY291bnQ7IG90aGVyd2lzZSxcbiAqIGFsbCBsb2FkZWQgY3JlZGVudGlhbCBwcm92aWRlciBwbHVnaW5zIHdpbGwgYmUgdHJpZWQgdG8gb2J0YWluIGNyZWRlbnRpYWxzXG4gKiBmb3IgdGhlIGdpdmVuIGFjY291bnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDcmVkZW50aWFsUGx1Z2lucyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGU6IHsgW2tleTogc3RyaW5nXTogUGx1Z2luQ3JlZGVudGlhbHNGZXRjaFJlc3VsdCB8IHVuZGVmaW5lZCB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBob3N0OiBQbHVnaW5Ib3N0LCBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcikge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoQ3JlZGVudGlhbHNGb3IoYXdzQWNjb3VudElkOiBzdHJpbmcsIG1vZGU6IE1vZGUpOiBQcm9taXNlPFBsdWdpbkNyZWRlbnRpYWxzRmV0Y2hSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBrZXkgPSBgJHthd3NBY2NvdW50SWR9LSR7bW9kZX1gO1xuICAgIGlmICghKGtleSBpbiB0aGlzLmNhY2hlKSkge1xuICAgICAgdGhpcy5jYWNoZVtrZXldID0gYXdhaXQgdGhpcy5sb29rdXBDcmVkZW50aWFscyhhd3NBY2NvdW50SWQsIG1vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYWNoZVtrZXldO1xuICB9XG5cbiAgcHVibGljIGdldCBhdmFpbGFibGVQbHVnaW5OYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdC5jcmVkZW50aWFsUHJvdmlkZXJTb3VyY2VzLm1hcCgocykgPT4gcy5uYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9va3VwQ3JlZGVudGlhbHMoYXdzQWNjb3VudElkOiBzdHJpbmcsIG1vZGU6IE1vZGUpOiBQcm9taXNlPFBsdWdpbkNyZWRlbnRpYWxzRmV0Y2hSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB0cmllZFNvdXJjZXM6IENyZWRlbnRpYWxQcm92aWRlclNvdXJjZVtdID0gW107XG4gICAgLy8gT3RoZXJ3aXNlLCBpbnNwZWN0IHRoZSB2YXJpb3VzIGNyZWRlbnRpYWwgc291cmNlcyB3ZSBoYXZlXG4gICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgdGhpcy5ob3N0LmNyZWRlbnRpYWxQcm92aWRlclNvdXJjZXMpIHtcbiAgICAgIGxldCBhdmFpbGFibGU6IGJvb2xlYW47XG4gICAgICB0cnkge1xuICAgICAgICBhdmFpbGFibGUgPSBhd2FpdCBzb3VyY2UuaXNBdmFpbGFibGUoKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4sIGJ1dCBsZXQncyBndWFyZCBhZ2FpbnN0IGl0IGFueXdheVxuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9XMDEwMC5tc2coYFVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiAke3NvdXJjZS5uYW1lfTogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCkpO1xuICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFhdmFpbGFibGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgQ3JlZGVudGlhbHMgc291cmNlICR7c291cmNlLm5hbWV9IGlzIG5vdCBhdmFpbGFibGUsIGlnbm9yaW5nIGl0LmApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRyaWVkU291cmNlcy5wdXNoKHNvdXJjZSk7XG4gICAgICBsZXQgY2FuUHJvdmlkZTogYm9vbGVhbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNhblByb3ZpZGUgPSBhd2FpdCBzb3VyY2UuY2FuUHJvdmlkZUNyZWRlbnRpYWxzKGF3c0FjY291bnRJZCk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBidXQgbGV0J3MgZ3VhcmQgYWdhaW5zdCBpdCBhbnl3YXlcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfVzAxMDAubXNnKGBVbmNhdWdodCBleGNlcHRpb24gaW4gJHtzb3VyY2UubmFtZX06ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWApKTtcbiAgICAgICAgY2FuUHJvdmlkZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCFjYW5Qcm92aWRlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgVXNpbmcgJHtzb3VyY2UubmFtZX0gY3JlZGVudGlhbHMgZm9yIGFjY291bnQgJHthd3NBY2NvdW50SWR9YCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNyZWRlbnRpYWxzOiBhd2FpdCB2M1Byb3ZpZGVyRnJvbVBsdWdpbigoKSA9PiBzb3VyY2UuZ2V0UHJvdmlkZXIoYXdzQWNjb3VudElkLCBtb2RlIGFzIEZvclJlYWRpbmcgfCBGb3JXcml0aW5nLCB7XG4gICAgICAgICAgc3VwcG9ydHNWM1Byb3ZpZGVyczogdHJ1ZSxcbiAgICAgICAgfSkpLFxuICAgICAgICBwbHVnaW5OYW1lOiBzb3VyY2UubmFtZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXN1bHQgZnJvbSB0cnlpbmcgdG8gZmV0Y2ggY3JlZGVudGlhbHMgZnJvbSB0aGUgUGx1Z2luIGhvc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5DcmVkZW50aWFsc0ZldGNoUmVzdWx0IHtcbiAgLyoqXG4gICAqIFNESy12MyBjb21wYXRpYmxlIGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxzOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgcGx1Z2luIHRoYXQgc3VjY2Vzc2Z1bGx5IHByb3ZpZGVkIGNyZWRlbnRpYWxzXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGFrZSBhIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlIHBsdWdpbiwgYW5kIHR1cm4gaXQgaW50byBhbiBTREt2My1jb21wYXRpYmxlIGNyZWRlbnRpYWwgcHJvdmlkZXIuXG4gKlxuICogV2hhdCB3ZSB3aWxsIGRvIGlzIHRoZSBmb2xsb3dpbmc6XG4gKlxuICogLSBRdWVyeSB0aGUgcGx1Z2luIGFuZCBzZWUgd2hhdCBraW5kIG9mIHJlc3VsdCBpdCBnaXZlcyB1cy5cbiAqIC0gSWYgdGhlIHJlc3VsdCBpcyBzZWxmLXJlZnJlc2hpbmcgb3IgZG9lc24ndCBuZWVkIHJlZnJlc2hpbmcsIHdlIHR1cm4gaXQgaW50byBhbiBTREt2MyBwcm92aWRlclxuICogICBhbmQgcmV0dXJuIGl0IGRpcmVjdGx5LlxuICogICAqIElmIHRoZSB1bmRlcmx5aW5nIHJldHVybiB2YWx1ZSBpcyBhIHByb3ZpZGVyLCB3ZSB3aWxsIG1ha2UgaXQgYSBjYWNoaW5nIHByb3ZpZGVyXG4gKiAgICAgKGJlY2F1c2Ugd2UgY2FuJ3Qga25vdyBpZiBpdCB3aWxsIGNhY2hlIGJ5IGl0c2VsZiBvciBub3QpLlxuICogICAqIElmIHRoZSB1bmRlcmx5aW5nIHJldHVybiB2YWx1ZSBpcyBhIHN0YXRpYyBjcmVkZW50aWFsLCBjYWNoaW5nIGlzbid0IHJlbGV2YW50LlxuICogICAqIElmIHRoZSB1bmRlcmx5aW5nIHJldHVybiB2YWx1ZSBpcyBWMiBjcmVkZW50aWFscywgdGhvc2UgaGF2ZSBjYWNoaW5nIGJ1aWx0LWluLlxuICogLSBJZiB0aGUgcmVzdWx0IGlzIGEgc3RhdGljIGNyZWRlbnRpYWwgdGhhdCBleHBpcmVzLCB3ZSB3aWxsIHdyYXAgaXQgaW4gYW4gU0RLdjMgcHJvdmlkZXJcbiAqICAgdGhhdCB3aWxsIHF1ZXJ5IHRoZSBwbHVnaW4gYWdhaW4gd2hlbiB0aGUgY3JlZGVudGlhbCBleHBpcmVzLlxuICovXG5hc3luYyBmdW5jdGlvbiB2M1Byb3ZpZGVyRnJvbVBsdWdpbihwcm9kdWNlcjogKCkgPT4gUHJvbWlzZTxQbHVnaW5Qcm92aWRlclJlc3VsdD4pOiBQcm9taXNlPFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcj4ge1xuICBjb25zdCBpbml0aWFsID0gYXdhaXQgcHJvZHVjZXIoKTtcblxuICBpZiAoaXNWM1Byb3ZpZGVyKGluaXRpYWwpKSB7XG4gICAgLy8gQWxyZWFkeSBhIHByb3ZpZGVyLCBtYWtlIGNhY2hpbmdcbiAgICByZXR1cm4gbWFrZUNhY2hpbmdQcm92aWRlcihpbml0aWFsKTtcbiAgfSBlbHNlIGlmIChpc1YzQ3JlZGVudGlhbHMoaW5pdGlhbCkgJiYgaW5pdGlhbC5leHBpcmF0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBTdGF0aWMgY3JlZGVudGlhbHMgdGhhdCBkb24ndCBuZWVkIHJlZnJlc2hpbmcgbm9yIGNhY2hpbmdcbiAgICByZXR1cm4gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGluaXRpYWwpO1xuICB9IGVsc2UgaWYgKGlzVjNDcmVkZW50aWFscyhpbml0aWFsKSAmJiBpbml0aWFsLmV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIFN0YXRpYyBjcmVkZW50aWFscyB0aGF0IGRvIG5lZWQgcmVmcmVzaGluZyBhbmQgY2FjaGluZ1xuICAgIHJldHVybiByZWZyZXNoRnJvbVBsdWdpblByb3ZpZGVyKGluaXRpYWwsIHByb2R1Y2VyKTtcbiAgfSBlbHNlIGlmIChpc1YyQ3JlZGVudGlhbHMoaW5pdGlhbCkpIHtcbiAgICAvLyBWMiBjcmVkZW50aWFscyB0aGF0IHJlZnJlc2ggYW5kIGNhY2hlIHRoZW1zZWx2ZXNcbiAgICByZXR1cm4gdjNQcm92aWRlckZyb21WMkNyZWRlbnRpYWxzKGluaXRpYWwpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKCdJbnZhbGlkUGx1Z2luQ3JlZGVudGlhbHMnLCBgUGx1Z2luIHJldHVybmVkIGEgdmFsdWUgdGhhdCBkb2Vzbid0IHJlc2VtYmxlIEFXUyBjcmVkZW50aWFsczogJHtpbnNwZWN0KGluaXRpYWwpfWApO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBWMiBjcmVkZW50aWFsIGludG8gYSBWMy1jb21wYXRpYmxlIHByb3ZpZGVyXG4gKi9cbmZ1bmN0aW9uIHYzUHJvdmlkZXJGcm9tVjJDcmVkZW50aWFscyh4OiBTREt2MkNvbXBhdGlibGVDcmVkZW50aWFscyk6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciB7XG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgLy8gR2V0IHdpbGwgZmV0Y2ggb3IgcmVmcmVzaCBhcyBuZWNlc3NhcnlcbiAgICBhd2FpdCB4LmdldFByb21pc2UoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY2Nlc3NLZXlJZDogeC5hY2Nlc3NLZXlJZCxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogeC5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IHguc2Vzc2lvblRva2VuLFxuICAgICAgZXhwaXJhdGlvbjogeC5leHBpcmVUaW1lID8/IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiByZWZyZXNoRnJvbVBsdWdpblByb3ZpZGVyKFxuICBjdXJyZW50OiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFscyxcbiAgcHJvZHVjZXI6ICgpID0+IFByb21pc2U8UGx1Z2luUHJvdmlkZXJSZXN1bHQ+LFxuKTogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICBpZiAoY3JlZGVudGlhbHNBYm91dFRvRXhwaXJlKGN1cnJlbnQpKSB7XG4gICAgICBjb25zdCBuZXdDcmVkcyA9IGF3YWl0IHByb2R1Y2VyKCk7XG4gICAgICBpZiAoIWlzVjNDcmVkZW50aWFscyhuZXdDcmVkcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ1BsdWdpbkNyZWRlbnRpYWxUeXBlTWlzbWF0Y2gnLCBgUGx1Z2luIGluaXRpYWxseSByZXR1cm5lZCBzdGF0aWMgVjMgY3JlZGVudGlhbHMgYnV0IG5vdyByZXR1cm5lZCBzb21ldGhpbmcgZWxzZTogJHtpbnNwZWN0KG5ld0NyZWRzKX1gKTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBuZXdDcmVkcztcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVjNQcm92aWRlcih4OiBQbHVnaW5Qcm92aWRlclJlc3VsdCk6IHggaXMgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBpc1YyQ3JlZGVudGlhbHMoeDogUGx1Z2luUHJvdmlkZXJSZXN1bHQpOiB4IGlzIFNES3YyQ29tcGF0aWJsZUNyZWRlbnRpYWxzIHtcbiAgcmV0dXJuICEhKHggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmICh4IGFzIFNES3YyQ29tcGF0aWJsZUNyZWRlbnRpYWxzKS5nZXRQcm9taXNlKTtcbn1cblxuZnVuY3Rpb24gaXNWM0NyZWRlbnRpYWxzKHg6IFBsdWdpblByb3ZpZGVyUmVzdWx0KTogeCBpcyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFscyB7XG4gIHJldHVybiAhISh4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmFjY2Vzc0tleUlkICYmICFpc1YyQ3JlZGVudGlhbHMoeCkpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEc2Instance = isEc2Instance;\nconst node_child_process_1 = require(\"node:child_process\");\nconst node_fs_1 = require(\"node:fs\");\nconst node_os_1 = require(\"node:os\");\n/**\n * Detect whether we are running on an EC2 instance by inspecting local system\n * metadata. This avoids the 1-2 second IMDS timeout on non-EC2 machines.\n *\n * Detection methods per platform (per AWS docs\n * https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/identify_ec2_instances.html):\n * - Linux: check DMI board_asset_tag for an EC2 instance ID, or hypervisor UUID for \"ec2\" prefix\n * - Windows: check DMI board_asset_tag via registry\n * - macOS and other platforms: assumed not EC2\n *\n * The result is cached for the lifetime of the process.\n */\nlet cachedIsEc2;\nfunction isEc2Instance() {\n if (cachedIsEc2 !== undefined) {\n return cachedIsEc2;\n }\n cachedIsEc2 = detectEc2();\n return cachedIsEc2;\n}\nfunction detectEc2() {\n const os = (0, node_os_1.platform)();\n try {\n if (os === 'linux') {\n return detectEc2Linux();\n }\n if (os === 'win32') {\n return detectEc2Windows();\n }\n // macOS and other platforms: not EC2\n // (EC2 Mac instances run on dedicated Mac minis with a Linux-based Nitro\n // hypervisor, but the guest OS sees itself as darwin. In practice these are\n // extremely rare for CDK CLI usage. If needed, this can be extended.)\n return false;\n }\n catch {\n // If detection fails, assume EC2. This makes us slightly slower but nothing\n // will unexpectedly break.\n return true;\n }\n}\nfunction detectEc2Linux() {\n // Nitro instances expose the instance ID as the board asset tag\n const boardAssetTag = '/sys/devices/virtual/dmi/id/board_asset_tag';\n if ((0, node_fs_1.existsSync)(boardAssetTag)) {\n const tag = (0, node_fs_1.readFileSync)(boardAssetTag, 'utf-8').trim();\n if (tag.startsWith('i-')) {\n return true;\n }\n }\n // Xen (PV) instances expose a UUID starting with \"ec2\" via the hypervisor\n const hypervisorUuid = '/sys/hypervisor/uuid';\n if ((0, node_fs_1.existsSync)(hypervisorUuid)) {\n const uuid = (0, node_fs_1.readFileSync)(hypervisorUuid, 'utf-8').trim().toLowerCase();\n if (uuid.startsWith('ec2')) {\n return true;\n }\n }\n return false;\n}\nfunction detectEc2Windows() {\n // On Windows EC2 instances the board asset tag is an instance ID, readable\n // from the registry without elevated privileges.\n const tag = (0, node_child_process_1.execSync)('reg query \"HKLM\\\\SYSTEM\\\\HardwareConfig\\\\Current\" /v BaseBoardAssetTag 2>nul', { encoding: 'utf-8', timeout: 500 }).trim();\n // Output contains \"BaseBoardAssetTag REG_SZ i-0abc...\"\n if (/i-[0-9a-f]+/i.test(tag)) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMyLWRldGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjMi1kZXRlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsc0NBTUM7QUF2QkQsMkRBQThDO0FBQzlDLHFDQUFtRDtBQUNuRCxxQ0FBbUM7QUFFbkM7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxJQUFJLFdBQWdDLENBQUM7QUFDckMsU0FBZ0IsYUFBYTtJQUMzQixJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM5QixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBQ0QsV0FBVyxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQzFCLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLFNBQVM7SUFDaEIsTUFBTSxFQUFFLEdBQUcsSUFBQSxrQkFBUSxHQUFFLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsSUFBSSxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFDRCxxQ0FBcUM7UUFDckMseUVBQXlFO1FBQ3pFLDRFQUE0RTtRQUM1RSxzRUFBc0U7UUFDdEUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsNEVBQTRFO1FBQzVFLDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjO0lBQ3JCLGdFQUFnRTtJQUNoRSxNQUFNLGFBQWEsR0FBRyw2Q0FBNkMsQ0FBQztJQUNwRSxJQUFJLElBQUEsb0JBQVUsRUFBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUEsc0JBQVksRUFBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEQsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQztJQUM5QyxJQUFJLElBQUEsb0JBQVUsRUFBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUEsc0JBQVksRUFBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLDJFQUEyRTtJQUMzRSxpREFBaUQ7SUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBQSw2QkFBUSxFQUNsQiw4RUFBOEUsRUFDOUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDcEMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNULDZEQUE2RDtJQUM3RCxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IHBsYXRmb3JtIH0gZnJvbSAnbm9kZTpvcyc7XG5cbi8qKlxuICogRGV0ZWN0IHdoZXRoZXIgd2UgYXJlIHJ1bm5pbmcgb24gYW4gRUMyIGluc3RhbmNlIGJ5IGluc3BlY3RpbmcgbG9jYWwgc3lzdGVtXG4gKiBtZXRhZGF0YS4gVGhpcyBhdm9pZHMgdGhlIDEtMiBzZWNvbmQgSU1EUyB0aW1lb3V0IG9uIG5vbi1FQzIgbWFjaGluZXMuXG4gKlxuICogRGV0ZWN0aW9uIG1ldGhvZHMgcGVyIHBsYXRmb3JtIChwZXIgQVdTIGRvY3NcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9pZGVudGlmeV9lYzJfaW5zdGFuY2VzLmh0bWwpOlxuICogLSBMaW51eDogY2hlY2sgRE1JIGJvYXJkX2Fzc2V0X3RhZyBmb3IgYW4gRUMyIGluc3RhbmNlIElELCBvciBoeXBlcnZpc29yIFVVSUQgZm9yIFwiZWMyXCIgcHJlZml4XG4gKiAtIFdpbmRvd3M6IGNoZWNrIERNSSBib2FyZF9hc3NldF90YWcgdmlhIHJlZ2lzdHJ5XG4gKiAtIG1hY09TIGFuZCBvdGhlciBwbGF0Zm9ybXM6IGFzc3VtZWQgbm90IEVDMlxuICpcbiAqIFRoZSByZXN1bHQgaXMgY2FjaGVkIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIHByb2Nlc3MuXG4gKi9cbmxldCBjYWNoZWRJc0VjMjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBpc0VjMkluc3RhbmNlKCk6IGJvb2xlYW4ge1xuICBpZiAoY2FjaGVkSXNFYzIgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjYWNoZWRJc0VjMjtcbiAgfVxuICBjYWNoZWRJc0VjMiA9IGRldGVjdEVjMigpO1xuICByZXR1cm4gY2FjaGVkSXNFYzI7XG59XG5cbmZ1bmN0aW9uIGRldGVjdEVjMigpOiBib29sZWFuIHtcbiAgY29uc3Qgb3MgPSBwbGF0Zm9ybSgpO1xuICB0cnkge1xuICAgIGlmIChvcyA9PT0gJ2xpbnV4Jykge1xuICAgICAgcmV0dXJuIGRldGVjdEVjMkxpbnV4KCk7XG4gICAgfVxuICAgIGlmIChvcyA9PT0gJ3dpbjMyJykge1xuICAgICAgcmV0dXJuIGRldGVjdEVjMldpbmRvd3MoKTtcbiAgICB9XG4gICAgLy8gbWFjT1MgYW5kIG90aGVyIHBsYXRmb3Jtczogbm90IEVDMlxuICAgIC8vIChFQzIgTWFjIGluc3RhbmNlcyBydW4gb24gZGVkaWNhdGVkIE1hYyBtaW5pcyB3aXRoIGEgTGludXgtYmFzZWQgTml0cm9cbiAgICAvLyBoeXBlcnZpc29yLCBidXQgdGhlIGd1ZXN0IE9TIHNlZXMgaXRzZWxmIGFzIGRhcndpbi4gSW4gcHJhY3RpY2UgdGhlc2UgYXJlXG4gICAgLy8gZXh0cmVtZWx5IHJhcmUgZm9yIENESyBDTEkgdXNhZ2UuIElmIG5lZWRlZCwgdGhpcyBjYW4gYmUgZXh0ZW5kZWQuKVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gSWYgZGV0ZWN0aW9uIGZhaWxzLCBhc3N1bWUgRUMyLiBUaGlzIG1ha2VzIHVzIHNsaWdodGx5IHNsb3dlciBidXQgbm90aGluZ1xuICAgIC8vIHdpbGwgdW5leHBlY3RlZGx5IGJyZWFrLlxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRldGVjdEVjMkxpbnV4KCk6IGJvb2xlYW4ge1xuICAvLyBOaXRybyBpbnN0YW5jZXMgZXhwb3NlIHRoZSBpbnN0YW5jZSBJRCBhcyB0aGUgYm9hcmQgYXNzZXQgdGFnXG4gIGNvbnN0IGJvYXJkQXNzZXRUYWcgPSAnL3N5cy9kZXZpY2VzL3ZpcnR1YWwvZG1pL2lkL2JvYXJkX2Fzc2V0X3RhZyc7XG4gIGlmIChleGlzdHNTeW5jKGJvYXJkQXNzZXRUYWcpKSB7XG4gICAgY29uc3QgdGFnID0gcmVhZEZpbGVTeW5jKGJvYXJkQXNzZXRUYWcsICd1dGYtOCcpLnRyaW0oKTtcbiAgICBpZiAodGFnLnN0YXJ0c1dpdGgoJ2ktJykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFhlbiAoUFYpIGluc3RhbmNlcyBleHBvc2UgYSBVVUlEIHN0YXJ0aW5nIHdpdGggXCJlYzJcIiB2aWEgdGhlIGh5cGVydmlzb3JcbiAgY29uc3QgaHlwZXJ2aXNvclV1aWQgPSAnL3N5cy9oeXBlcnZpc29yL3V1aWQnO1xuICBpZiAoZXhpc3RzU3luYyhoeXBlcnZpc29yVXVpZCkpIHtcbiAgICBjb25zdCB1dWlkID0gcmVhZEZpbGVTeW5jKGh5cGVydmlzb3JVdWlkLCAndXRmLTgnKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAodXVpZC5zdGFydHNXaXRoKCdlYzInKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBkZXRlY3RFYzJXaW5kb3dzKCk6IGJvb2xlYW4ge1xuICAvLyBPbiBXaW5kb3dzIEVDMiBpbnN0YW5jZXMgdGhlIGJvYXJkIGFzc2V0IHRhZyBpcyBhbiBpbnN0YW5jZSBJRCwgcmVhZGFibGVcbiAgLy8gZnJvbSB0aGUgcmVnaXN0cnkgd2l0aG91dCBlbGV2YXRlZCBwcml2aWxlZ2VzLlxuICBjb25zdCB0YWcgPSBleGVjU3luYyhcbiAgICAncmVnIHF1ZXJ5IFwiSEtMTVxcXFxTWVNURU1cXFxcSGFyZHdhcmVDb25maWdcXFxcQ3VycmVudFwiIC92IEJhc2VCb2FyZEFzc2V0VGFnIDI+bnVsJyxcbiAgICB7IGVuY29kaW5nOiAndXRmLTgnLCB0aW1lb3V0OiA1MDAgfSxcbiAgKS50cmltKCk7XG4gIC8vIE91dHB1dCBjb250YWlucyBcIkJhc2VCb2FyZEFzc2V0VGFnICAgIFJFR19TWiAgICBpLTBhYmMuLi5cIlxuICBpZiAoL2ktWzAtOWEtZl0rL2kudGVzdCh0YWcpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./base-credentials\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLHFEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWNyZWRlbnRpYWxzJztcbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultCliUserAgent = exports.credentialsAboutToExpire = exports.CredentialPlugins = exports.setSdkTracing = exports.AwsCliCompatible = exports.cached = exports.AccountAccessKeyCache = void 0;\n__exportStar(require(\"../sdk\"), exports);\n__exportStar(require(\"../sdk-provider\"), exports);\n__exportStar(require(\"../sdk-logger\"), exports);\n// temporary testing exports\nvar account_cache_1 = require(\"../account-cache\");\nObject.defineProperty(exports, \"AccountAccessKeyCache\", { enumerable: true, get: function () { return account_cache_1.AccountAccessKeyCache; } });\nvar cached_1 = require(\"../cached\");\nObject.defineProperty(exports, \"cached\", { enumerable: true, get: function () { return cached_1.cached; } });\nvar awscli_compatible_1 = require(\"../awscli-compatible\");\nObject.defineProperty(exports, \"AwsCliCompatible\", { enumerable: true, get: function () { return awscli_compatible_1.AwsCliCompatible; } });\nvar tracing_1 = require(\"../tracing\");\nObject.defineProperty(exports, \"setSdkTracing\", { enumerable: true, get: function () { return tracing_1.setSdkTracing; } });\nvar credential_plugins_1 = require(\"../credential-plugins\");\nObject.defineProperty(exports, \"CredentialPlugins\", { enumerable: true, get: function () { return credential_plugins_1.CredentialPlugins; } });\nvar provider_caching_1 = require(\"../provider-caching\");\nObject.defineProperty(exports, \"credentialsAboutToExpire\", { enumerable: true, get: function () { return provider_caching_1.credentialsAboutToExpire; } });\nvar user_agent_1 = require(\"../user-agent\");\nObject.defineProperty(exports, \"defaultCliUserAgent\", { enumerable: true, get: function () { return user_agent_1.defaultCliUserAgent; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2QixrREFBZ0M7QUFDaEMsZ0RBQThCO0FBRTlCLDRCQUE0QjtBQUM1QixrREFBeUQ7QUFBaEQsc0hBQUEscUJBQXFCLE9BQUE7QUFDOUIsb0NBQW1DO0FBQTFCLGdHQUFBLE1BQU0sT0FBQTtBQUNmLDBEQUF3RDtBQUEvQyxxSEFBQSxnQkFBZ0IsT0FBQTtBQUN6QixzQ0FBMkM7QUFBbEMsd0dBQUEsYUFBYSxPQUFBO0FBQ3RCLDREQUEwRDtBQUFqRCx1SEFBQSxpQkFBaUIsT0FBQTtBQUMxQix3REFBK0Q7QUFBdEQsNEhBQUEsd0JBQXdCLE9BQUE7QUFDakMsNENBQW9EO0FBQTNDLGlIQUFBLG1CQUFtQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vc2RrJztcbmV4cG9ydCAqIGZyb20gJy4uL3Nkay1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuLi9zZGstbG9nZ2VyJztcblxuLy8gdGVtcG9yYXJ5IHRlc3RpbmcgZXhwb3J0c1xuZXhwb3J0IHsgQWNjb3VudEFjY2Vzc0tleUNhY2hlIH0gZnJvbSAnLi4vYWNjb3VudC1jYWNoZSc7XG5leHBvcnQgeyBjYWNoZWQgfSBmcm9tICcuLi9jYWNoZWQnO1xuZXhwb3J0IHsgQXdzQ2xpQ29tcGF0aWJsZSB9IGZyb20gJy4uL2F3c2NsaS1jb21wYXRpYmxlJztcbmV4cG9ydCB7IHNldFNka1RyYWNpbmcgfSBmcm9tICcuLi90cmFjaW5nJztcbmV4cG9ydCB7IENyZWRlbnRpYWxQbHVnaW5zIH0gZnJvbSAnLi4vY3JlZGVudGlhbC1wbHVnaW5zJztcbmV4cG9ydCB7IGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSB9IGZyb20gJy4uL3Byb3ZpZGVyLWNhY2hpbmcnO1xuZXhwb3J0IHsgZGVmYXVsdENsaVVzZXJBZ2VudCB9IGZyb20gJy4uL3VzZXItYWdlbnQnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCachingProvider = makeCachingProvider;\nexports.credentialsAboutToExpire = credentialsAboutToExpire;\nconst property_provider_1 = require(\"@smithy/property-provider\");\n/**\n * Wrap a credential provider in a cache\n *\n * Some credential providers in the SDKv3 are cached (the default Node\n * chain, specifically) but most others are not.\n *\n * Since we want to avoid duplicate calls to `AssumeRole`, or duplicate\n * MFA prompts or what have you, we are going to liberally wrap providers\n * in caches which will return the cached value until it expires.\n */\nfunction makeCachingProvider(provider) {\n return (0, property_provider_1.memoize)(provider, credentialsAboutToExpire, (token) => !!token.expiration);\n}\nfunction credentialsAboutToExpire(token) {\n const expiryMarginSecs = 5;\n // token.expiration is sometimes null\n return !!token.expiration && token.expiration.getTime() - Date.now() < expiryMarginSecs * 1000;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItY2FjaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGVyLWNhY2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxrREFNQztBQUVELDREQUlDO0FBeEJELGlFQUFvRDtBQUVwRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxRQUEyQztJQUM3RSxPQUFPLElBQUEsMkJBQU8sRUFDWixRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxLQUFpQztJQUN4RSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUMzQixxQ0FBcUM7SUFDckMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDakcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyLCBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFscyB9IGZyb20gJ0Bhd3MtY2RrL2NsaS1wbHVnaW4tY29udHJhY3QnO1xuaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInO1xuXG4vKipcbiAqIFdyYXAgYSBjcmVkZW50aWFsIHByb3ZpZGVyIGluIGEgY2FjaGVcbiAqXG4gKiBTb21lIGNyZWRlbnRpYWwgcHJvdmlkZXJzIGluIHRoZSBTREt2MyBhcmUgY2FjaGVkICh0aGUgZGVmYXVsdCBOb2RlXG4gKiBjaGFpbiwgc3BlY2lmaWNhbGx5KSBidXQgbW9zdCBvdGhlcnMgYXJlIG5vdC5cbiAqXG4gKiBTaW5jZSB3ZSB3YW50IHRvIGF2b2lkIGR1cGxpY2F0ZSBjYWxscyB0byBgQXNzdW1lUm9sZWAsIG9yIGR1cGxpY2F0ZVxuICogTUZBIHByb21wdHMgb3Igd2hhdCBoYXZlIHlvdSwgd2UgYXJlIGdvaW5nIHRvIGxpYmVyYWxseSB3cmFwIHByb3ZpZGVyc1xuICogaW4gY2FjaGVzIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjYWNoZWQgdmFsdWUgdW50aWwgaXQgZXhwaXJlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDYWNoaW5nUHJvdmlkZXIocHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcik6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciB7XG4gIHJldHVybiBtZW1vaXplKFxuICAgIHByb3ZpZGVyLFxuICAgIGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSxcbiAgICAodG9rZW4pID0+ICEhdG9rZW4uZXhwaXJhdGlvbixcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWRlbnRpYWxzQWJvdXRUb0V4cGlyZSh0b2tlbjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbHMpIHtcbiAgY29uc3QgZXhwaXJ5TWFyZ2luU2VjcyA9IDU7XG4gIC8vIHRva2VuLmV4cGlyYXRpb24gaXMgc29tZXRpbWVzIG51bGxcbiAgcmV0dXJuICEhdG9rZW4uZXhwaXJhdGlvbiAmJiB0b2tlbi5leHBpcmF0aW9uLmdldFRpbWUoKSAtIERhdGUubm93KCkgPCBleHBpcnlNYXJnaW5TZWNzICogMTAwMDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IoHostSdkLogger = void 0;\nexports.formatSdkLoggerContent = formatSdkLoggerContent;\nconst util_1 = require(\"util\");\nconst util_2 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nclass IoHostSdkLogger {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n notify(level, ...content) {\n void this.ioHelper.notify(private_1.IO.CDK_SDK_I0100.msg((0, util_1.format)('[SDK %s] %s', level, formatSdkLoggerContent(content)), {\n sdkLevel: level,\n content,\n }));\n }\n trace(..._content) {\n // This is too much detail for our logs\n // this.notify('trace', ...content);\n }\n debug(..._content) {\n // This is too much detail for our logs\n // this.notify('debug', ...content);\n }\n /**\n * Info is called mostly (exclusively?) for successful API calls\n *\n * Payload:\n *\n * (Note the input contains entire CFN templates, for example)\n *\n * ```\n * {\n * clientName: 'S3Client',\n * commandName: 'GetBucketLocationCommand',\n * input: {\n * Bucket: '.....',\n * ExpectedBucketOwner: undefined\n * },\n * output: { LocationConstraint: 'eu-central-1' },\n * metadata: {\n * httpStatusCode: 200,\n * requestId: '....',\n * extendedRequestId: '...',\n * cfId: undefined,\n * attempts: 1,\n * totalRetryDelay: 0\n * }\n * }\n * ```\n */\n info(...content) {\n this.notify('info', ...content);\n }\n warn(...content) {\n this.notify('warn', ...content);\n }\n /**\n * Error is called mostly (exclusively?) for failing API calls\n *\n * Payload (input would be the entire API call arguments).\n *\n * ```\n * {\n * clientName: 'STSClient',\n * commandName: 'GetCallerIdentityCommand',\n * input: {},\n * error: AggregateError [ECONNREFUSED]:\n * at internalConnectMultiple (node:net:1121:18)\n * at afterConnectMultiple (node:net:1688:7) {\n * code: 'ECONNREFUSED',\n * '$metadata': { attempts: 3, totalRetryDelay: 600 },\n * [errors]: [ [Error], [Error] ]\n * },\n * metadata: { attempts: 3, totalRetryDelay: 600 }\n * }\n * ```\n */\n error(...content) {\n this.notify('error', ...content);\n }\n}\nexports.IoHostSdkLogger = IoHostSdkLogger;\n/**\n * This can be anything.\n *\n * For debug, it seems to be mostly strings.\n * For info, it seems to be objects.\n *\n * Stringify and join without separator.\n */\nfunction formatSdkLoggerContent(content) {\n if (content.length === 1) {\n const apiFmt = formatApiCall(content[0]);\n if (apiFmt) {\n return apiFmt;\n }\n }\n return content.map((x) => typeof x === 'string' ? x : (0, util_1.inspect)(x)).join('');\n}\nfunction formatApiCall(content) {\n if (!isSdkApiCallSuccess(content) && !isSdkApiCallError(content)) {\n return undefined;\n }\n const service = content.clientName.replace(/Client$/, '');\n const api = content.commandName.replace(/Command$/, '');\n const parts = [];\n if ((content.metadata?.attempts ?? 0) > 1) {\n parts.push(`[${content.metadata?.attempts} attempts, ${content.metadata?.totalRetryDelay}ms retry]`);\n }\n parts.push(`${service}.${api}(${JSON.stringify(content.input, util_2.replacerBufferWithInfo)})`);\n if (isSdkApiCallSuccess(content)) {\n parts.push('-> OK');\n }\n else {\n parts.push(`-> ${content.error}`);\n }\n return parts.join(' ');\n}\nfunction isSdkApiCallSuccess(x) {\n return x && typeof x === 'object' && x.commandName && x.output;\n}\nfunction isSdkApiCallError(x) {\n return x && typeof x === 'object' && x.commandName && x.error;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNkay1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEdBLHdEQVFDO0FBbEhELCtCQUF1QztBQUN2QyxxQ0FBb0Q7QUFFcEQsMkNBQW1DO0FBVW5DLE1BQWEsZUFBZTtJQUNULFFBQVEsQ0FBVztJQUVwQyxZQUFtQixRQUFrQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQWdDLEVBQUUsR0FBRyxPQUFjO1FBQ2hFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBQSxhQUFNLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQzVHLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTztTQUNSLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLFFBQWU7UUFDN0IsdUNBQXVDO1FBQ3ZDLG9DQUFvQztJQUN0QyxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsUUFBZTtRQUM3Qix1Q0FBdUM7UUFDdkMsb0NBQW9DO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDSSxJQUFJLENBQUMsR0FBRyxPQUFjO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFHLE9BQWM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsT0FBYztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQW5GRCwwQ0FtRkM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBYztJQUNuRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsY0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxPQUFZO0lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakUsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFeEQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLGNBQWMsT0FBTyxDQUFDLFFBQVEsRUFBRSxlQUFlLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsNkJBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUYsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEIsQ0FBQztTQUFNLENBQUM7UUFDTixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBbUJELFNBQVMsbUJBQW1CLENBQUMsQ0FBTTtJQUNqQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLENBQU07SUFDL0IsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5zcGVjdCwgZm9ybWF0IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgeyByZXBsYWNlckJ1ZmZlcldpdGhJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZGtMb2dnZXIge1xuICB0cmFjZT86ICguLi5jb250ZW50OiBhbnlbXSkgPT4gdm9pZDtcbiAgZGVidWc6ICguLi5jb250ZW50OiBhbnlbXSkgPT4gdm9pZDtcbiAgaW5mbzogKC4uLmNvbnRlbnQ6IGFueVtdKSA9PiB2b2lkO1xuICB3YXJuOiAoLi4uY29udGVudDogYW55W10pID0+IHZvaWQ7XG4gIGVycm9yOiAoLi4uY29udGVudDogYW55W10pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBJb0hvc3RTZGtMb2dnZXIgaW1wbGVtZW50cyBJU2RrTG9nZ2VyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5KGxldmVsOiAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCAuLi5jb250ZW50OiBhbnlbXSkge1xuICAgIHZvaWQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1NES19JMDEwMC5tc2coZm9ybWF0KCdbU0RLICVzXSAlcycsIGxldmVsLCBmb3JtYXRTZGtMb2dnZXJDb250ZW50KGNvbnRlbnQpKSwge1xuICAgICAgc2RrTGV2ZWw6IGxldmVsLFxuICAgICAgY29udGVudCxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2UoLi4uX2NvbnRlbnQ6IGFueVtdKSB7XG4gICAgLy8gVGhpcyBpcyB0b28gbXVjaCBkZXRhaWwgZm9yIG91ciBsb2dzXG4gICAgLy8gdGhpcy5ub3RpZnkoJ3RyYWNlJywgLi4uY29udGVudCk7XG4gIH1cblxuICBwdWJsaWMgZGVidWcoLi4uX2NvbnRlbnQ6IGFueVtdKSB7XG4gICAgLy8gVGhpcyBpcyB0b28gbXVjaCBkZXRhaWwgZm9yIG91ciBsb2dzXG4gICAgLy8gdGhpcy5ub3RpZnkoJ2RlYnVnJywgLi4uY29udGVudCk7XG4gIH1cblxuICAvKipcbiAgICogSW5mbyBpcyBjYWxsZWQgbW9zdGx5IChleGNsdXNpdmVseT8pIGZvciBzdWNjZXNzZnVsIEFQSSBjYWxsc1xuICAgKlxuICAgKiBQYXlsb2FkOlxuICAgKlxuICAgKiAoTm90ZSB0aGUgaW5wdXQgY29udGFpbnMgZW50aXJlIENGTiB0ZW1wbGF0ZXMsIGZvciBleGFtcGxlKVxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiAgIGNsaWVudE5hbWU6ICdTM0NsaWVudCcsXG4gICAqICAgY29tbWFuZE5hbWU6ICdHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmQnLFxuICAgKiAgIGlucHV0OiB7XG4gICAqICAgICBCdWNrZXQ6ICcuLi4uLicsXG4gICAqICAgICBFeHBlY3RlZEJ1Y2tldE93bmVyOiB1bmRlZmluZWRcbiAgICogICB9LFxuICAgKiAgIG91dHB1dDogeyBMb2NhdGlvbkNvbnN0cmFpbnQ6ICdldS1jZW50cmFsLTEnIH0sXG4gICAqICAgbWV0YWRhdGE6IHtcbiAgICogICAgIGh0dHBTdGF0dXNDb2RlOiAyMDAsXG4gICAqICAgICByZXF1ZXN0SWQ6ICcuLi4uJyxcbiAgICogICAgIGV4dGVuZGVkUmVxdWVzdElkOiAnLi4uJyxcbiAgICogICAgIGNmSWQ6IHVuZGVmaW5lZCxcbiAgICogICAgIGF0dGVtcHRzOiAxLFxuICAgKiAgICAgdG90YWxSZXRyeURlbGF5OiAwXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGluZm8oLi4uY29udGVudDogYW55W10pIHtcbiAgICB0aGlzLm5vdGlmeSgnaW5mbycsIC4uLmNvbnRlbnQpO1xuICB9XG5cbiAgcHVibGljIHdhcm4oLi4uY29udGVudDogYW55W10pIHtcbiAgICB0aGlzLm5vdGlmeSgnd2FybicsIC4uLmNvbnRlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVycm9yIGlzIGNhbGxlZCBtb3N0bHkgKGV4Y2x1c2l2ZWx5PykgZm9yIGZhaWxpbmcgQVBJIGNhbGxzXG4gICAqXG4gICAqIFBheWxvYWQgKGlucHV0IHdvdWxkIGJlIHRoZSBlbnRpcmUgQVBJIGNhbGwgYXJndW1lbnRzKS5cbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICBjbGllbnROYW1lOiAnU1RTQ2xpZW50JyxcbiAgICogICBjb21tYW5kTmFtZTogJ0dldENhbGxlcklkZW50aXR5Q29tbWFuZCcsXG4gICAqICAgaW5wdXQ6IHt9LFxuICAgKiAgIGVycm9yOiBBZ2dyZWdhdGVFcnJvciBbRUNPTk5SRUZVU0VEXTpcbiAgICogICAgICAgYXQgaW50ZXJuYWxDb25uZWN0TXVsdGlwbGUgKG5vZGU6bmV0OjExMjE6MTgpXG4gICAqICAgICAgIGF0IGFmdGVyQ29ubmVjdE11bHRpcGxlIChub2RlOm5ldDoxNjg4OjcpIHtcbiAgICogICAgIGNvZGU6ICdFQ09OTlJFRlVTRUQnLFxuICAgKiAgICAgJyRtZXRhZGF0YSc6IHsgYXR0ZW1wdHM6IDMsIHRvdGFsUmV0cnlEZWxheTogNjAwIH0sXG4gICAqICAgICBbZXJyb3JzXTogWyBbRXJyb3JdLCBbRXJyb3JdIF1cbiAgICogICB9LFxuICAgKiAgIG1ldGFkYXRhOiB7IGF0dGVtcHRzOiAzLCB0b3RhbFJldHJ5RGVsYXk6IDYwMCB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgZXJyb3IoLi4uY29udGVudDogYW55W10pIHtcbiAgICB0aGlzLm5vdGlmeSgnZXJyb3InLCAuLi5jb250ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgY2FuIGJlIGFueXRoaW5nLlxuICpcbiAqIEZvciBkZWJ1ZywgaXQgc2VlbXMgdG8gYmUgbW9zdGx5IHN0cmluZ3MuXG4gKiBGb3IgaW5mbywgaXQgc2VlbXMgdG8gYmUgb2JqZWN0cy5cbiAqXG4gKiBTdHJpbmdpZnkgYW5kIGpvaW4gd2l0aG91dCBzZXBhcmF0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTZGtMb2dnZXJDb250ZW50KGNvbnRlbnQ6IGFueVtdKSB7XG4gIGlmIChjb250ZW50Lmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGFwaUZtdCA9IGZvcm1hdEFwaUNhbGwoY29udGVudFswXSk7XG4gICAgaWYgKGFwaUZtdCkge1xuICAgICAgcmV0dXJuIGFwaUZtdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvbnRlbnQubWFwKCh4KSA9PiB0eXBlb2YgeCA9PT0gJ3N0cmluZycgPyB4IDogaW5zcGVjdCh4KSkuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEFwaUNhbGwoY29udGVudDogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFpc1Nka0FwaUNhbGxTdWNjZXNzKGNvbnRlbnQpICYmICFpc1Nka0FwaUNhbGxFcnJvcihjb250ZW50KSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzZXJ2aWNlID0gY29udGVudC5jbGllbnROYW1lLnJlcGxhY2UoL0NsaWVudCQvLCAnJyk7XG4gIGNvbnN0IGFwaSA9IGNvbnRlbnQuY29tbWFuZE5hbWUucmVwbGFjZSgvQ29tbWFuZCQvLCAnJyk7XG5cbiAgY29uc3QgcGFydHMgPSBbXTtcbiAgaWYgKChjb250ZW50Lm1ldGFkYXRhPy5hdHRlbXB0cyA/PyAwKSA+IDEpIHtcbiAgICBwYXJ0cy5wdXNoKGBbJHtjb250ZW50Lm1ldGFkYXRhPy5hdHRlbXB0c30gYXR0ZW1wdHMsICR7Y29udGVudC5tZXRhZGF0YT8udG90YWxSZXRyeURlbGF5fW1zIHJldHJ5XWApO1xuICB9XG5cbiAgcGFydHMucHVzaChgJHtzZXJ2aWNlfS4ke2FwaX0oJHtKU09OLnN0cmluZ2lmeShjb250ZW50LmlucHV0LCByZXBsYWNlckJ1ZmZlcldpdGhJbmZvKX0pYCk7XG5cbiAgaWYgKGlzU2RrQXBpQ2FsbFN1Y2Nlc3MoY29udGVudCkpIHtcbiAgICBwYXJ0cy5wdXNoKCctPiBPSycpO1xuICB9IGVsc2Uge1xuICAgIHBhcnRzLnB1c2goYC0+ICR7Y29udGVudC5lcnJvcn1gKTtcbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKCcgJyk7XG59XG5cbmludGVyZmFjZSBTZGtBcGlDYWxsQmFzZSB7XG4gIGNsaWVudE5hbWU6IHN0cmluZztcbiAgY29tbWFuZE5hbWU6IHN0cmluZztcbiAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBtZXRhZGF0YT86IHtcbiAgICBodHRwU3RhdHVzQ29kZT86IG51bWJlcjtcbiAgICByZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgZXh0ZW5kZWRSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgY2ZJZD86IHN0cmluZztcbiAgICBhdHRlbXB0cz86IG51bWJlcjtcbiAgICB0b3RhbFJldHJ5RGVsYXk/OiBudW1iZXI7XG4gIH07XG59XG5cbnR5cGUgU2RrQXBpQ2FsbFN1Y2Nlc3MgPSBTZGtBcGlDYWxsQmFzZSAmIHsgb3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9O1xudHlwZSBTZGtBcGlDYWxsRXJyb3IgPSBTZGtBcGlDYWxsQmFzZSAmIHsgZXJyb3I6IEVycm9yIH07XG5cbmZ1bmN0aW9uIGlzU2RrQXBpQ2FsbFN1Y2Nlc3MoeDogYW55KTogeCBpcyBTZGtBcGlDYWxsU3VjY2VzcyB7XG4gIHJldHVybiB4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmNvbW1hbmROYW1lICYmIHgub3V0cHV0O1xufVxuXG5mdW5jdGlvbiBpc1Nka0FwaUNhbGxFcnJvcih4OiBhbnkpOiB4IGlzIFNka0FwaUNhbGxFcnJvciB7XG4gIHJldHVybiB4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmNvbW1hbmROYW1lICYmIHguZXJyb3I7XG59XG4iXX0=","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SdkProvider_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SdkProvider = void 0;\nexports.initContextProviderSdk = initContextProviderSdk;\nconst os = require(\"os\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst credential_providers_1 = require(\"@aws-sdk/credential-providers\");\nconst awscli_compatible_1 = require(\"./awscli-compatible\");\nconst cached_1 = require(\"./cached\");\nconst credential_plugins_1 = require(\"./credential-plugins\");\nconst provider_caching_1 = require(\"./provider-caching\");\nconst sdk_1 = require(\"./sdk\");\nconst tracing_1 = require(\"./tracing\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\nconst CACHED_ACCOUNT = Symbol('cached_account');\n/**\n * Creates instances of the AWS SDK appropriate for a given account/region.\n *\n * Behavior is as follows:\n *\n * - First, a set of \"base\" credentials are established\n * - If a target environment is given and the default (\"current\") SDK credentials are for\n * that account, return those; otherwise\n * - If a target environment is given, scan all credential provider plugins\n * for credentials, and return those if found; otherwise\n * - Return default (\"current\") SDK credentials, noting that they might be wrong.\n *\n * - Second, a role may optionally need to be assumed. Use the base credentials\n * established in the previous process to assume that role.\n * - If assuming the role fails and the base credentials are for the correct\n * account, return those. This is a fallback for people who are trying to interact\n * with a Default Synthesized stack and already have right credentials setup.\n *\n * Typical cases we see in the wild:\n * - Credential plugin setup that, although not recommended, works for them\n * - Seeded terminal with `ReadOnly` credentials in order to do `cdk diff`--the `ReadOnly`\n * role doesn't have `sts:AssumeRole` and will fail for no real good reason.\n */\nlet SdkProvider = SdkProvider_1 = class SdkProvider {\n /**\n * Create a new SdkProvider which gets its defaults in a way that behaves like the AWS CLI does\n *\n * The AWS SDK for JS behaves slightly differently from the AWS CLI in a number of ways; see the\n * class `AwsCliCompatible` for the details.\n *\n * @param options - Options for the default SDK provider\n * @param profile - Profile to read from ~/.aws\n * @returns a configured SdkProvider\n */\n static async withAwsCliCompatibleDefaults(options, profile) {\n (0, tracing_1.callTrace)(SdkProvider_1.withAwsCliCompatibleDefaults.name, SdkProvider_1.constructor.name, options.logger);\n const config = await new awscli_compatible_1.AwsCliCompatible(options.ioHelper, options.requestHandler ?? {}, options.logger).baseConfig(profile);\n return new SdkProvider_1(config.credentialProvider, config.defaultRegion, options);\n }\n defaultRegion;\n defaultCredentialProvider;\n plugins;\n requestHandler;\n ioHelper;\n logger;\n constructor(defaultCredentialProvider, defaultRegion, options) {\n this.defaultCredentialProvider = defaultCredentialProvider;\n this.defaultRegion = defaultRegion ?? 'us-east-1';\n this.requestHandler = options.requestHandler ?? {};\n this.ioHelper = options.ioHelper;\n this.logger = options.logger;\n this.plugins = new credential_plugins_1.CredentialPlugins(options.pluginHost ?? new plugin_1.PluginHost(), this.ioHelper);\n }\n /**\n * Return an SDK which can do operations in the given environment\n *\n * The `environment` parameter is resolved first (see `resolveEnvironment()`).\n */\n async forEnvironment(environment, mode, options) {\n const env = await this.resolveEnvironment(environment);\n const baseCreds = await this.obtainBaseCredentials(env.account, mode);\n // At this point, we need at least SOME credentials\n if (baseCreds.source === 'none') {\n throw new toolkit_error_1.AuthenticationError('NoCredentials', fmtObtainCredentialsError(env.account, baseCreds));\n }\n // Simple case is if we don't need to \"assumeRole\" here. If so, we must now have credentials for the right\n // account.\n if (options?.assumeRoleArn === undefined) {\n if (baseCreds.source === 'incorrectDefault') {\n throw new toolkit_error_1.AuthenticationError('IncorrectDefaultCredentials', fmtObtainCredentialsError(env.account, baseCreds));\n }\n // Our current credentials must be valid and not expired. Confirm that before we get into doing\n // actual CloudFormation calls, which might take a long time to hang.\n const sdk = this._makeSdk(baseCreds.credentials, env.region);\n await sdk.validateCredentials();\n return { sdk, didAssumeRole: false };\n }\n try {\n // We will proceed to AssumeRole using whatever we've been given.\n const sdk = await this.withAssumedRole(baseCreds, options.assumeRoleArn, options.assumeRoleExternalId, options.assumeRoleAdditionalOptions, env.region);\n return { sdk, didAssumeRole: true };\n }\n catch (err) {\n if (err.name === 'ExpiredToken') {\n throw toolkit_error_1.AuthenticationError.withCause('AssumeRoleExpiredToken', 'Assuming role failed: ExpiredToken', err);\n }\n // AssumeRole failed. Proceed and warn *if and only if* the baseCredentials were already for the right account\n // or returned from a plugin. This is to cover some current setups for people using plugins or preferring to\n // feed the CLI credentials which are sufficient by themselves. Prefer to assume the correct role if we can,\n // but if we can't then let's just try with available credentials anyway.\n if (baseCreds.source === 'correctDefault' || baseCreds.source === 'plugin') {\n await this.ioHelper.defaults.debug(err.message);\n await this.ioHelper.defaults.warn(`${fmtObtainedCredentials(baseCreds)} could not be used to assume '${options.assumeRoleArn}', but are for the right account. Proceeding anyway.`);\n return {\n sdk: this._makeSdk(baseCreds.credentials, env.region),\n didAssumeRole: false,\n };\n }\n throw err;\n }\n }\n /**\n * Return the partition that base credentials are for\n *\n * Returns `undefined` if there are no base credentials.\n */\n async baseCredentialsPartition(environment, mode) {\n const env = await this.resolveEnvironment(environment);\n const baseCreds = await this.obtainBaseCredentials(env.account, mode);\n if (baseCreds.source === 'none') {\n return undefined;\n }\n return (await this._makeSdk(baseCreds.credentials, env.region).currentAccount()).partition;\n }\n /**\n * Resolve the environment for a stack\n *\n * Replaces the magic values `UNKNOWN_REGION` and `UNKNOWN_ACCOUNT`\n * with the defaults for the current SDK configuration (`~/.aws/config` or\n * otherwise).\n *\n * It is an error if `UNKNOWN_ACCOUNT` is used but the user hasn't configured\n * any SDK credentials.\n */\n async resolveEnvironment(env) {\n const region = env.region !== cloud_assembly_api_1.UNKNOWN_REGION ? env.region : this.defaultRegion;\n const account = env.account !== cloud_assembly_api_1.UNKNOWN_ACCOUNT ? env.account : (await this.defaultAccount())?.accountId;\n if (!account) {\n throw new toolkit_error_1.AuthenticationError('UnresolvedAccount', 'Unable to resolve AWS account to use. It must be either configured when you define your CDK Stack, or through the environment');\n }\n return {\n region,\n account,\n name: cloud_assembly_api_1.EnvironmentUtils.format(account, region),\n };\n }\n /**\n * The account we'd auth into if we used default credentials.\n *\n * Default credentials are the set of ambiently configured credentials using\n * one of the environment variables, or ~/.aws/credentials, or the *one*\n * profile that was passed into the CLI.\n *\n * Might return undefined if there are no default/ambient credentials\n * available (in which case the user should better hope they have\n * credential plugins configured).\n *\n * Uses a cache to avoid STS calls if we don't need 'em.\n */\n async defaultAccount() {\n return (0, cached_1.cached)(this, CACHED_ACCOUNT, async () => {\n try {\n return await this._makeSdk(this.defaultCredentialProvider, this.defaultRegion).currentAccount();\n }\n catch (e) {\n // Treat 'ExpiredToken' specially. This is a common situation that people may find themselves in, and\n // they are complaining about if we fail 'cdk synth' on them. We loudly complain in order to show that\n // the current situation is probably undesirable, but we don't fail.\n if (e.name === 'ExpiredToken') {\n await this.ioHelper.defaults.warn('There are expired AWS credentials in your environment. The CDK app will synth without current account information.');\n return undefined;\n }\n await this.ioHelper.defaults.debug(`Unable to determine the default AWS account (${e.name}): ${(0, util_1.formatErrorMessage)(e)}`);\n return undefined;\n }\n });\n }\n /**\n * Get credentials for the given account ID in the given mode\n *\n * 1. Use the default credentials if the destination account matches the\n * current credentials' account.\n * 2. Otherwise try all credential plugins.\n * 3. Fail if neither of these yield any credentials.\n * 4. Return a failure if any of them returned credentials\n */\n async obtainBaseCredentials(accountId, mode) {\n // First try 'current' credentials\n const defaultAccountId = (await this.defaultAccount())?.accountId;\n if (defaultAccountId === accountId) {\n return {\n source: 'correctDefault',\n credentials: await this.defaultCredentialProvider,\n };\n }\n // Then try the plugins\n const pluginCreds = await this.plugins.fetchCredentialsFor(accountId, mode);\n if (pluginCreds) {\n return { source: 'plugin', ...pluginCreds };\n }\n // Fall back to default credentials with a note that they're not the right ones yet\n if (defaultAccountId !== undefined) {\n return {\n source: 'incorrectDefault',\n accountId: defaultAccountId,\n credentials: await this.defaultCredentialProvider,\n unusedPlugins: this.plugins.availablePluginNames,\n };\n }\n // Apparently we didn't find any at all\n return {\n source: 'none',\n unusedPlugins: this.plugins.availablePluginNames,\n };\n }\n /**\n * Return an SDK which uses assumed role credentials\n *\n * The base credentials used to retrieve the assumed role credentials will be the\n * same credentials returned by obtainCredentials if an environment and mode is passed,\n * otherwise it will be the current credentials.\n */\n async withAssumedRole(mainCredentials, roleArn, externalId, additionalOptions, region) {\n await this.ioHelper.defaults.debug(`Assuming role '${roleArn}'.`);\n region = region ?? this.defaultRegion;\n const sourceDescription = fmtObtainedCredentials(mainCredentials);\n try {\n const credentials = await (0, provider_caching_1.makeCachingProvider)((0, credential_providers_1.fromTemporaryCredentials)({\n masterCredentials: mainCredentials.credentials,\n params: {\n RoleArn: roleArn,\n ExternalId: externalId,\n RoleSessionName: `aws-cdk-${safeUsername()}`,\n ...additionalOptions,\n TransitiveTagKeys: additionalOptions?.Tags ? additionalOptions.Tags.map((t) => t.Key) : undefined,\n },\n clientConfig: {\n region,\n requestHandler: this.requestHandler,\n customUserAgent: 'aws-cdk',\n logger: this.logger,\n },\n logger: this.logger,\n }));\n // Call the provider at least once here, to catch an error if it occurs\n await credentials();\n return this._makeSdk(credentials, region);\n }\n catch (err) {\n if (err.name === 'ExpiredToken') {\n throw err;\n }\n await this.ioHelper.defaults.debug(`Assuming role failed: ${err.message}`);\n throw new toolkit_error_1.AuthenticationError('AssumeRoleFailed', [\n 'Could not assume role in target account',\n ...(sourceDescription ? [`using ${sourceDescription}`] : []),\n err.message,\n \". Please make sure that this role exists in the account. If it doesn't exist, (re)-bootstrap the environment \" +\n \"with the right '--trust', using the latest version of the CDK CLI.\",\n ].join(' '));\n }\n }\n /**\n * Factory function that creates a new SDK instance\n *\n * This is a function here, instead of all the places where this is used creating a `new SDK`\n * instance, so that it is trivial to mock from tests.\n *\n * Use like this:\n *\n * ```ts\n * const mockSdk = jest.spyOn(SdkProvider.prototype, '_makeSdk').mockReturnValue(new MockSdk());\n * // ...\n * mockSdk.mockRestore();\n * ```\n *\n * @internal\n */\n _makeSdk(credProvider, region) {\n return new sdk_1.SDK(credProvider, region, this.requestHandler, this.ioHelper, this.logger);\n }\n};\nexports.SdkProvider = SdkProvider;\nexports.SdkProvider = SdkProvider = SdkProvider_1 = __decorate([\n tracing_1.traceMemberMethods\n], SdkProvider);\n/**\n * Return the username with characters invalid for a RoleSessionName removed\n *\n * @see https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters\n */\nfunction safeUsername() {\n try {\n return os.userInfo().username.replace(/[^\\w+=,.@-]/g, '@');\n }\n catch {\n return 'noname';\n }\n}\n/**\n * Isolating the code that translates calculation errors into human error messages\n *\n * We cover the following cases:\n *\n * - No credentials are available at all\n * - Default credentials are for the wrong account\n */\nfunction fmtObtainCredentialsError(targetAccountId, obtainResult) {\n const msg = [`Need to perform AWS calls for account ${targetAccountId}`];\n switch (obtainResult.source) {\n case 'incorrectDefault':\n msg.push(`but the current credentials are for ${obtainResult.accountId}`);\n break;\n case 'none':\n msg.push('but no credentials have been configured');\n }\n if (obtainResult.unusedPlugins.length > 0) {\n msg.push(`and none of these plugins found any: ${obtainResult.unusedPlugins.join(', ')}`);\n }\n return msg.join(', ');\n}\n/**\n * Format a message indicating where we got base credentials for the assume role\n *\n * We cover the following cases:\n *\n * - Default credentials for the right account\n * - Default credentials for the wrong account\n * - Credentials returned from a plugin\n */\nfunction fmtObtainedCredentials(obtainResult) {\n switch (obtainResult.source) {\n case 'correctDefault':\n return 'current credentials';\n case 'plugin':\n return `credentials returned by plugin '${obtainResult.pluginName}'`;\n case 'incorrectDefault':\n const msg = [];\n msg.push(`current credentials (which are for account ${obtainResult.accountId}`);\n if (obtainResult.unusedPlugins.length > 0) {\n msg.push(`, and none of the following plugins provided credentials: ${obtainResult.unusedPlugins.join(', ')}`);\n }\n msg.push(')');\n return msg.join('');\n }\n}\n/**\n * Instantiate an SDK for context providers. This function ensures that all\n * lookup assume role options are used when context providers perform lookups.\n */\nasync function initContextProviderSdk(aws, options) {\n const account = options.account;\n const region = options.region;\n const creds = {\n assumeRoleArn: options.lookupRoleArn,\n assumeRoleExternalId: options.lookupRoleExternalId,\n assumeRoleAdditionalOptions: options.assumeRoleAdditionalOptions,\n };\n return (await aws.forEnvironment(cloud_assembly_api_1.EnvironmentUtils.make(account, region), plugin_1.Mode.ForReading, creds)).sdk;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2RrLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUF1aEJBLHdEQVdDO0FBbGlCRCx5QkFBeUI7QUFHekIsb0VBQWdHO0FBR2hHLHdFQUF5RTtBQUN6RSwyREFBdUQ7QUFFdkQscUNBQWtDO0FBQ2xDLDZEQUF5RDtBQUN6RCx5REFBeUQ7QUFDekQsK0JBQTRCO0FBQzVCLHVDQUEwRDtBQUMxRCwrREFBa0U7QUFDbEUscUNBQWdEO0FBRWhELHNDQUE2QztBQThCN0MsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUE2QmhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUksSUFBTSxXQUFXLG1CQUFqQixNQUFNLFdBQVc7SUFDdEI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUEyQixFQUFFLE9BQWdCO1FBQzVGLElBQUEsbUJBQVMsRUFBQyxhQUFXLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLGFBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksb0NBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlILE9BQU8sSUFBSSxhQUFXLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVlLGFBQWEsQ0FBUztJQUNyQix5QkFBeUIsQ0FBb0M7SUFDN0QsT0FBTyxDQUFDO0lBQ1IsY0FBYyxDQUF5QjtJQUN2QyxRQUFRLENB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O1lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVkLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxHQUFnQixFQUFFLE9BQWlDO0lBQzlGLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUU5QixNQUFNLEtBQUssR0FBdUI7UUFDaEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQ3BDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7UUFDbEQsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLDJCQUEyQjtLQUNqRSxDQUFDO0lBRUYsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQyxxQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLGFBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDeEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB0eXBlIHsgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnQGF3cy1jZGsvY2xpLXBsdWdpbi1jb250cmFjdCc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50VXRpbHMsIFVOS05PV05fQUNDT1VOVCwgVU5LTk9XTl9SRUdJT04gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBBc3N1bWVSb2xlQ29tbWFuZElucHV0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXN0cyc7XG5pbXBvcnQgeyBmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMgfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBBd3NDbGlDb21wYXRpYmxlIH0gZnJvbSAnLi9hd3NjbGktY29tcGF0aWJsZSc7XG5pbXBvcnQgdHlwZSB7IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3MgfSBmcm9tICcuL2Jhc2UtY3JlZGVudGlhbHMnO1xuaW1wb3J0IHsgY2FjaGVkIH0gZnJvbSAnLi9jYWNoZWQnO1xuaW1wb3J0IHsgQ3JlZGVudGlhbFBsdWdpbnMgfSBmcm9tICcuL2NyZWRlbnRpYWwtcGx1Z2lucyc7XG5pbXBvcnQgeyBtYWtlQ2FjaGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlci1jYWNoaW5nJztcbmltcG9ydCB7IFNESyB9IGZyb20gJy4vc2RrJztcbmltcG9ydCB7IGNhbGxUcmFjZSwgdHJhY2VNZW1iZXJNZXRob2RzIH0gZnJvbSAnLi90cmFjaW5nJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBQbHVnaW5Ib3N0LCBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luJztcbmltcG9ydCB0eXBlIHsgSVNka0xvZ2dlciB9IGZyb20gJy4vc2RrLWxvZ2dlcic7XG5cbmV4cG9ydCB0eXBlIEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IFBhcnRpYWw8T21pdDxBc3N1bWVSb2xlQ29tbWFuZElucHV0LCAnRXh0ZXJuYWxJZCcgfCAnUm9sZUFybic+PjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZGVmYXVsdCBTREsgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtQcm92aWRlck9wdGlvbnMge1xuICAvKipcbiAgICogQW4gSU8gaGVscGVyIGZvciBlbWl0dGluZyBtZXNzYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVxdWVzdCBoYW5kbGVyIHNldHRpbmdzXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0SGFuZGxlcj86IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIEEgcGx1Z2luIGhvc3RcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbkhvc3Q/OiBQbHVnaW5Ib3N0O1xuXG4gIC8qKlxuICAgKiBBbiBTREsgbG9nZ2VyXG4gICAqL1xuICByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xufVxuXG5jb25zdCBDQUNIRURfQUNDT1VOVCA9IFN5bWJvbCgnY2FjaGVkX2FjY291bnQnKTtcblxuLyoqXG4gKiBTREsgY29uZmlndXJhdGlvbiBmb3IgYSBnaXZlbiBlbnZpcm9ubWVudFxuICogJ2ZvckVudmlyb25tZW50JyB3aWxsIGF0dGVtcHQgdG8gYXNzdW1lIGEgcm9sZSBhbmQgaWYgaXRcbiAqIGlzIG5vdCBzdWNjZXNzZnVsLCB0aGVuIGl0IHdpbGwgZWl0aGVyOlxuICogICAxLiBDaGVjayB0byBzZWUgaWYgdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgKGxvY2FsIGNyZWRlbnRpYWxzIHRoZSBDTEkgd2FzIGV4ZWN1dGVkIHdpdGgpXG4gKiAgICAgIGFyZSBmb3IgdGhlIGdpdmVuIGVudmlyb25tZW50LiBJZiB0aGV5IGFyZSB0aGVuIHJldHVybiB0aG9zZS5cbiAqICAgMi4gSWYgdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgYXJlIG5vdCBmb3IgdGhlIGdpdmVuIGVudmlyb25tZW50IHRoZW5cbiAqICAgICAgdGhyb3cgYW4gZXJyb3JcbiAqXG4gKiAnZGlkQXNzdW1lUm9sZScgYWxsb3dzIGNhbGxlcnMgdG8gd2hldGhlciB0aGV5IGFyZSByZWNlaXZpbmcgdGhlIGFzc3VtZSByb2xlXG4gKiBjcmVkZW50aWFscyBvciB0aGUgZGVmYXVsdCBjcmVkZW50aWFscy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtGb3JFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgU0RLIGZvciB0aGUgZ2l2ZW4gZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHNkazogU0RLO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgYXNzdW1lIHJvbGUgd2FzIHN1Y2Nlc3NmdWwuXG4gICAqIElmIHRoZSBhc3N1bWUgcm9sZSB3YXMgbm90IHN1Y2Nlc3NmdWwgKGZhbHNlKVxuICAgKiB0aGVuIHRoYXQgbWVhbnMgdGhhdCB0aGUgJ3NkaycgcmV0dXJuZWQgY29udGFpbnNcbiAgICogdGhlIGRlZmF1bHQgY3JlZGVudGlhbHMgKG5vdCB0aGUgYXNzdW1lIHJvbGUgY3JlZGVudGlhbHMpXG4gICAqL1xuICByZWFkb25seSBkaWRBc3N1bWVSb2xlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgaW5zdGFuY2VzIG9mIHRoZSBBV1MgU0RLIGFwcHJvcHJpYXRlIGZvciBhIGdpdmVuIGFjY291bnQvcmVnaW9uLlxuICpcbiAqIEJlaGF2aW9yIGlzIGFzIGZvbGxvd3M6XG4gKlxuICogLSBGaXJzdCwgYSBzZXQgb2YgXCJiYXNlXCIgY3JlZGVudGlhbHMgYXJlIGVzdGFibGlzaGVkXG4gKiAgIC0gSWYgYSB0YXJnZXQgZW52aXJvbm1lbnQgaXMgZ2l2ZW4gYW5kIHRoZSBkZWZhdWx0IChcImN1cnJlbnRcIikgU0RLIGNyZWRlbnRpYWxzIGFyZSBmb3JcbiAqICAgICB0aGF0IGFjY291bnQsIHJldHVybiB0aG9zZTsgb3RoZXJ3aXNlXG4gKiAgIC0gSWYgYSB0YXJnZXQgZW52aXJvbm1lbnQgaXMgZ2l2ZW4sIHNjYW4gYWxsIGNyZWRlbnRpYWwgcHJvdmlkZXIgcGx1Z2luc1xuICogICAgIGZvciBjcmVkZW50aWFscywgYW5kIHJldHVybiB0aG9zZSBpZiBmb3VuZDsgb3RoZXJ3aXNlXG4gKiAgIC0gUmV0dXJuIGRlZmF1bHQgKFwiY3VycmVudFwiKSBTREsgY3JlZGVudGlhbHMsIG5vdGluZyB0aGF0IHRoZXkgbWlnaHQgYmUgd3JvbmcuXG4gKlxuICogLSBTZWNvbmQsIGEgcm9sZSBtYXkgb3B0aW9uYWxseSBuZWVkIHRvIGJlIGFzc3VtZWQuIFVzZSB0aGUgYmFzZSBjcmVkZW50aWFsc1xuICogICBlc3RhYmxpc2hlZCBpbiB0aGUgcHJldmlvdXMgcHJvY2VzcyB0byBhc3N1bWUgdGhhdCByb2xlLlxuICogICAtIElmIGFzc3VtaW5nIHRoZSByb2xlIGZhaWxzIGFuZCB0aGUgYmFzZSBjcmVkZW50aWFscyBhcmUgZm9yIHRoZSBjb3JyZWN0XG4gKiAgICAgYWNjb3VudCwgcmV0dXJuIHRob3NlLiBUaGlzIGlzIGEgZmFsbGJhY2sgZm9yIHBlb3BsZSB3aG8gYXJlIHRyeWluZyB0byBpbnRlcmFjdFxuICogICAgIHdpdGggYSBEZWZhdWx0IFN5bnRoZXNpemVkIHN0YWNrIGFuZCBhbHJlYWR5IGhhdmUgcmlnaHQgY3JlZGVudGlhbHMgc2V0dXAuXG4gKlxuICogICAgIFR5cGljYWwgY2FzZXMgd2Ugc2VlIGluIHRoZSB3aWxkOlxuICogICAgIC0gQ3JlZGVudGlhbCBwbHVnaW4gc2V0dXAgdGhhdCwgYWx0aG91Z2ggbm90IHJlY29tbWVuZGVkLCB3b3JrcyBmb3IgdGhlbVxuICogICAgIC0gU2VlZGVkIHRlcm1pbmFsIHdpdGggYFJlYWRPbmx5YCBjcmVkZW50aWFscyBpbiBvcmRlciB0byBkbyBgY2RrIGRpZmZgLS10aGUgYFJlYWRPbmx5YFxuICogICAgICAgcm9sZSBkb2Vzbid0IGhhdmUgYHN0czpBc3N1bWVSb2xlYCBhbmQgd2lsbCBmYWlsIGZvciBubyByZWFsIGdvb2QgcmVhc29uLlxuICovXG5AdHJhY2VNZW1iZXJNZXRob2RzXG5leHBvcnQgY2xhc3MgU2RrUHJvdmlkZXIge1xuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IFNka1Byb3ZpZGVyIHdoaWNoIGdldHMgaXRzIGRlZmF1bHRzIGluIGEgd2F5IHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBBV1MgQ0xJIGRvZXNcbiAgICpcbiAgICogVGhlIEFXUyBTREsgZm9yIEpTIGJlaGF2ZXMgc2xpZ2h0bHkgZGlmZmVyZW50bHkgZnJvbSB0aGUgQVdTIENMSSBpbiBhIG51bWJlciBvZiB3YXlzOyBzZWUgdGhlXG4gICAqIGNsYXNzIGBBd3NDbGlDb21wYXRpYmxlYCBmb3IgdGhlIGRldGFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgdGhlIGRlZmF1bHQgU0RLIHByb3ZpZGVyXG4gICAqIEBwYXJhbSBwcm9maWxlIC0gUHJvZmlsZSB0byByZWFkIGZyb20gfi8uYXdzXG4gICAqIEByZXR1cm5zIGEgY29uZmlndXJlZCBTZGtQcm92aWRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyB3aXRoQXdzQ2xpQ29tcGF0aWJsZURlZmF1bHRzKG9wdGlvbnM6IFNka1Byb3ZpZGVyT3B0aW9ucywgcHJvZmlsZT86IHN0cmluZykge1xuICAgIGNhbGxUcmFjZShTZGtQcm92aWRlci53aXRoQXdzQ2xpQ29tcGF0aWJsZURlZmF1bHRzLm5hbWUsIFNka1Byb3ZpZGVyLmNvbnN0cnVjdG9yLm5hbWUsIG9wdGlvbnMubG9nZ2VyKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBuZXcgQXdzQ2xpQ29tcGF0aWJsZShvcHRpb25zLmlvSGVscGVyLCBvcHRpb25zLnJlcXVlc3RIYW5kbGVyID8/IHt9LCBvcHRpb25zLmxvZ2dlcikuYmFzZUNvbmZpZyhwcm9maWxlKTtcbiAgICByZXR1cm4gbmV3IFNka1Byb3ZpZGVyKGNvbmZpZy5jcmVkZW50aWFsUHJvdmlkZXIsIGNvbmZpZy5kZWZhdWx0UmVnaW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0UmVnaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENyZWRlbnRpYWxQcm92aWRlcjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3M7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcj86IElTZGtMb2dnZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGRlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcixcbiAgICBkZWZhdWx0UmVnaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogU2RrUHJvdmlkZXJPcHRpb25zLFxuICApIHtcbiAgICB0aGlzLmRlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSBkZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyO1xuICAgIHRoaXMuZGVmYXVsdFJlZ2lvbiA9IGRlZmF1bHRSZWdpb24gPz8gJ3VzLWVhc3QtMSc7XG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlciA9IG9wdGlvbnMucmVxdWVzdEhhbmRsZXIgPz8ge307XG4gICAgdGhpcy5pb0hlbHBlciA9IG9wdGlvbnMuaW9IZWxwZXI7XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICB0aGlzLnBsdWdpbnMgPSBuZXcgQ3JlZGVudGlhbFBsdWdpbnMob3B0aW9ucy5wbHVnaW5Ib3N0ID8/IG5ldyBQbHVnaW5Ib3N0KCksIHRoaXMuaW9IZWxwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBTREsgd2hpY2ggY2FuIGRvIG9wZXJhdGlvbnMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqXG4gICAqIFRoZSBgZW52aXJvbm1lbnRgIHBhcmFtZXRlciBpcyByZXNvbHZlZCBmaXJzdCAoc2VlIGByZXNvbHZlRW52aXJvbm1lbnQoKWApLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZvckVudmlyb25tZW50KFxuICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBtb2RlOiBNb2RlLFxuICAgIG9wdGlvbnM/OiBDcmVkZW50aWFsc09wdGlvbnMsXG4gICk6IFByb21pc2U8U2RrRm9yRW52aXJvbm1lbnQ+IHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLnJlc29sdmVFbnZpcm9ubWVudChlbnZpcm9ubWVudCk7XG5cbiAgICBjb25zdCBiYXNlQ3JlZHMgPSBhd2FpdCB0aGlzLm9idGFpbkJhc2VDcmVkZW50aWFscyhlbnYuYWNjb3VudCwgbW9kZSk7XG5cbiAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBuZWVkIGF0IGxlYXN0IFNPTUUgY3JlZGVudGlhbHNcbiAgICBpZiAoYmFzZUNyZWRzLnNvdXJjZSA9PT0gJ25vbmUnKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcignTm9DcmVkZW50aWFscycsIGZtdE9idGFpbkNyZWRlbnRpYWxzRXJyb3IoZW52LmFjY291bnQsIGJhc2VDcmVkcykpO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZSBjYXNlIGlzIGlmIHdlIGRvbid0IG5lZWQgdG8gXCJhc3N1bWVSb2xlXCIgaGVyZS4gSWYgc28sIHdlIG11c3Qgbm93IGhhdmUgY3JlZGVudGlhbHMgZm9yIHRoZSByaWdodFxuICAgIC8vIGFjY291bnQuXG4gICAgaWYgKG9wdGlvbnM/LmFzc3VtZVJvbGVBcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGJhc2VDcmVkcy5zb3VyY2UgPT09ICdpbmNvcnJlY3REZWZhdWx0Jykge1xuICAgICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcignSW5jb3JyZWN0RGVmYXVsdENyZWRlbnRpYWxzJywgZm10T2J0YWluQ3JlZGVudGlhbHNFcnJvcihlbnYuYWNjb3VudCwgYmFzZUNyZWRzKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE91ciBjdXJyZW50IGNyZWRlbnRpYWxzIG11c3QgYmUgdmFsaWQgYW5kIG5vdCBleHBpcmVkLiBDb25maXJtIHRoYXQgYmVmb3JlIHdlIGdldCBpbnRvIGRvaW5nXG4gICAgICAvLyBhY3R1YWwgQ2xvdWRGb3JtYXRpb24gY2FsbHMsIHdoaWNoIG1pZ2h0IHRha2UgYSBsb25nIHRpbWUgdG8gaGFuZy5cbiAgICAgIGNvbnN0IHNkayA9IHRoaXMuX21ha2VTZGsoYmFzZUNyZWRzLmNyZWRlbnRpYWxzLCBlbnYucmVnaW9uKTtcbiAgICAgIGF3YWl0IHNkay52YWxpZGF0ZUNyZWRlbnRpYWxzKCk7XG4gICAgICByZXR1cm4geyBzZGssIGRpZEFzc3VtZVJvbGU6IGZhbHNlIH07XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdlIHdpbGwgcHJvY2VlZCB0byBBc3N1bWVSb2xlIHVzaW5nIHdoYXRldmVyIHdlJ3ZlIGJlZW4gZ2l2ZW4uXG4gICAgICBjb25zdCBzZGsgPSBhd2FpdCB0aGlzLndpdGhBc3N1bWVkUm9sZShcbiAgICAgICAgYmFzZUNyZWRzLFxuICAgICAgICBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICAgIG9wdGlvbnMuYXNzdW1lUm9sZUV4dGVybmFsSWQsXG4gICAgICAgIG9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgICAgICBlbnYucmVnaW9uLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHsgc2RrLCBkaWRBc3N1bWVSb2xlOiB0cnVlIH07XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIubmFtZSA9PT0gJ0V4cGlyZWRUb2tlbicpIHtcbiAgICAgICAgdGhyb3cgQXV0aGVudGljYXRpb25FcnJvci53aXRoQ2F1c2UoJ0Fzc3VtZVJvbGVFeHBpcmVkVG9rZW4nLCAnQXNzdW1pbmcgcm9sZSBmYWlsZWQ6IEV4cGlyZWRUb2tlbicsIGVycik7XG4gICAgICB9XG5cbiAgICAgIC8vIEFzc3VtZVJvbGUgZmFpbGVkLiBQcm9jZWVkIGFuZCB3YXJuICppZiBhbmQgb25seSBpZiogdGhlIGJhc2VDcmVkZW50aWFscyB3ZXJlIGFscmVhZHkgZm9yIHRoZSByaWdodCBhY2NvdW50XG4gICAgICAvLyBvciByZXR1cm5lZCBmcm9tIGEgcGx1Z2luLiBUaGlzIGlzIHRvIGNvdmVyIHNvbWUgY3VycmVudCBzZXR1cHMgZm9yIHBlb3BsZSB1c2luZyBwbHVnaW5zIG9yIHByZWZlcnJpbmcgdG9cbiAgICAgIC8vIGZlZWQgdGhlIENMSSBjcmVkZW50aWFscyB3aGljaCBhcmUgc3VmZmljaWVudCBieSB0aGVtc2VsdmVzLiBQcmVmZXIgdG8gYXNzdW1lIHRoZSBjb3JyZWN0IHJvbGUgaWYgd2UgY2FuLFxuICAgICAgLy8gYnV0IGlmIHdlIGNhbid0IHRoZW4gbGV0J3MganVzdCB0cnkgd2l0aCBhdmFpbGFibGUgY3JlZGVudGlhbHMgYW55d2F5LlxuICAgICAgaWYgKGJhc2VDcmVkcy5zb3VyY2UgPT09ICdjb3JyZWN0RGVmYXVsdCcgfHwgYmFzZUNyZWRzLnNvdXJjZSA9PT0gJ3BsdWdpbicpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhlcnIubWVzc2FnZSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIGAke2ZtdE9idGFpbmVkQ3JlZGVudGlhbHMoYmFzZUNyZWRzKX0gY291bGQgbm90IGJlIHVzZWQgdG8gYXNzdW1lICcke29wdGlvbnMuYXNzdW1lUm9sZUFybn0nLCBidXQgYXJlIGZvciB0aGUgcmlnaHQgYWNjb3VudC4gUHJvY2VlZGluZyBhbnl3YXkuYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZGs6IHRoaXMuX21ha2VTZGsoYmFzZUNyZWRzLmNyZWRlbnRpYWxzLCBlbnYucmVnaW9uKSxcbiAgICAgICAgICBkaWRBc3N1bWVSb2xlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcnRpdGlvbiB0aGF0IGJhc2UgY3JlZGVudGlhbHMgYXJlIGZvclxuICAgKlxuICAgKiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZXJlIGFyZSBubyBiYXNlIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJhc2VDcmVkZW50aWFsc1BhcnRpdGlvbihlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsIG1vZGU6IE1vZGUpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMucmVzb2x2ZUVudmlyb25tZW50KGVudmlyb25tZW50KTtcbiAgICBjb25zdCBiYXNlQ3JlZHMgPSBhd2FpdCB0aGlzLm9idGFpbkJhc2VDcmVkZW50aWFscyhlbnYuYWNjb3VudCwgbW9kZSk7XG4gICAgaWYgKGJhc2VDcmVkcy5zb3VyY2UgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLl9tYWtlU2RrKGJhc2VDcmVkcy5jcmVkZW50aWFscywgZW52LnJlZ2lvbikuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIGVudmlyb25tZW50IGZvciBhIHN0YWNrXG4gICAqXG4gICAqIFJlcGxhY2VzIHRoZSBtYWdpYyB2YWx1ZXMgYFVOS05PV05fUkVHSU9OYCBhbmQgYFVOS05PV05fQUNDT1VOVGBcbiAgICogd2l0aCB0aGUgZGVmYXVsdHMgZm9yIHRoZSBjdXJyZW50IFNESyBjb25maWd1cmF0aW9uIChgfi8uYXdzL2NvbmZpZ2Agb3JcbiAgICogb3RoZXJ3aXNlKS5cbiAgICpcbiAgICogSXQgaXMgYW4gZXJyb3IgaWYgYFVOS05PV05fQUNDT1VOVGAgaXMgdXNlZCBidXQgdGhlIHVzZXIgaGFzbid0IGNvbmZpZ3VyZWRcbiAgICogYW55IFNESyBjcmVkZW50aWFscy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlRW52aXJvbm1lbnQoZW52OiBFbnZpcm9ubWVudCk6IFByb21pc2U8RW52aXJvbm1lbnQ+IHtcbiAgICBjb25zdCByZWdpb24gPSBlbnYucmVnaW9uICE9PSBVTktOT1dOX1JFR0lPTiA/IGVudi5yZWdpb24gOiB0aGlzLmRlZmF1bHRSZWdpb247XG4gICAgY29uc3QgYWNjb3VudCA9IGVudi5hY2NvdW50ICE9PSBVTktOT1dOX0FDQ09VTlQgPyBlbnYuYWNjb3VudCA6IChhd2FpdCB0aGlzLmRlZmF1bHRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG5cbiAgICBpZiAoIWFjY291bnQpIHtcbiAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgICAgICAnVW5yZXNvbHZlZEFjY291bnQnLFxuICAgICAgICAnVW5hYmxlIHRvIHJlc29sdmUgQVdTIGFjY291bnQgdG8gdXNlLiBJdCBtdXN0IGJlIGVpdGhlciBjb25maWd1cmVkIHdoZW4geW91IGRlZmluZSB5b3VyIENESyBTdGFjaywgb3IgdGhyb3VnaCB0aGUgZW52aXJvbm1lbnQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVnaW9uLFxuICAgICAgYWNjb3VudCxcbiAgICAgIG5hbWU6IEVudmlyb25tZW50VXRpbHMuZm9ybWF0KGFjY291bnQsIHJlZ2lvbiksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCB3ZSdkIGF1dGggaW50byBpZiB3ZSB1c2VkIGRlZmF1bHQgY3JlZGVudGlhbHMuXG4gICAqXG4gICAqIERlZmF1bHQgY3JlZGVudGlhbHMgYXJlIHRoZSBzZXQgb2YgYW1iaWVudGx5IGNvbmZpZ3VyZWQgY3JlZGVudGlhbHMgdXNpbmdcbiAgICogb25lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIG9yIH4vLmF3cy9jcmVkZW50aWFscywgb3IgdGhlICpvbmUqXG4gICAqIHByb2ZpbGUgdGhhdCB3YXMgcGFzc2VkIGludG8gdGhlIENMSS5cbiAgICpcbiAgICogTWlnaHQgcmV0dXJuIHVuZGVmaW5lZCBpZiB0aGVyZSBhcmUgbm8gZGVmYXVsdC9hbWJpZW50IGNyZWRlbnRpYWxzXG4gICAqIGF2YWlsYWJsZSAoaW4gd2hpY2ggY2FzZSB0aGUgdXNlciBzaG91bGQgYmV0dGVyIGhvcGUgdGhleSBoYXZlXG4gICAqIGNyZWRlbnRpYWwgcGx1Z2lucyBjb25maWd1cmVkKS5cbiAgICpcbiAgICogVXNlcyBhIGNhY2hlIHRvIGF2b2lkIFNUUyBjYWxscyBpZiB3ZSBkb24ndCBuZWVkICdlbS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWZhdWx0QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gY2FjaGVkKHRoaXMsIENBQ0hFRF9BQ0NPVU5ULCBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fbWFrZVNkayh0aGlzLmRlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIsIHRoaXMuZGVmYXVsdFJlZ2lvbikuY3VycmVudEFjY291bnQoKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBUcmVhdCAnRXhwaXJlZFRva2VuJyBzcGVjaWFsbHkuIFRoaXMgaXMgYSBjb21tb24gc2l0dWF0aW9uIHRoYXQgcGVvcGxlIG1heSBmaW5kIHRoZW1zZWx2ZXMgaW4sIGFuZFxuICAgICAgICAvLyB0aGV5IGFyZSBjb21wbGFpbmluZyBhYm91dCBpZiB3ZSBmYWlsICdjZGsgc3ludGgnIG9uIHRoZW0uIFdlIGxvdWRseSBjb21wbGFpbiBpbiBvcmRlciB0byBzaG93IHRoYXRcbiAgICAgICAgLy8gdGhlIGN1cnJlbnQgc2l0dWF0aW9uIGlzIHByb2JhYmx5IHVuZGVzaXJhYmxlLCBidXQgd2UgZG9uJ3QgZmFpbC5cbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ0V4cGlyZWRUb2tlbicpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgICAnVGhlcmUgYXJlIGV4cGlyZWQgQVdTIGNyZWRlbnRpYWxzIGluIHlvdXIgZW52aXJvbm1lbnQuIFRoZSBDREsgYXBwIHdpbGwgc3ludGggd2l0aG91dCBjdXJyZW50IGFjY291bnQgaW5mb3JtYXRpb24uJyxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBVbmFibGUgdG8gZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IEFXUyBhY2NvdW50ICgke2UubmFtZX0pOiAke2Zvcm1hdEVycm9yTWVzc2FnZShlKX1gKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3JlZGVudGlhbHMgZm9yIHRoZSBnaXZlbiBhY2NvdW50IElEIGluIHRoZSBnaXZlbiBtb2RlXG4gICAqXG4gICAqIDEuIFVzZSB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBpZiB0aGUgZGVzdGluYXRpb24gYWNjb3VudCBtYXRjaGVzIHRoZVxuICAgKiAgICBjdXJyZW50IGNyZWRlbnRpYWxzJyBhY2NvdW50LlxuICAgKiAyLiBPdGhlcndpc2UgdHJ5IGFsbCBjcmVkZW50aWFsIHBsdWdpbnMuXG4gICAqIDMuIEZhaWwgaWYgbmVpdGhlciBvZiB0aGVzZSB5aWVsZCBhbnkgY3JlZGVudGlhbHMuXG4gICAqIDQuIFJldHVybiBhIGZhaWx1cmUgaWYgYW55IG9mIHRoZW0gcmV0dXJuZWQgY3JlZGVudGlhbHNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgb2J0YWluQmFzZUNyZWRlbnRpYWxzKGFjY291bnRJZDogc3RyaW5nLCBtb2RlOiBNb2RlKTogUHJvbWlzZTxPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQ+IHtcbiAgICAvLyBGaXJzdCB0cnkgJ2N1cnJlbnQnIGNyZWRlbnRpYWxzXG4gICAgY29uc3QgZGVmYXVsdEFjY291bnRJZCA9IChhd2FpdCB0aGlzLmRlZmF1bHRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG4gICAgaWYgKGRlZmF1bHRBY2NvdW50SWQgPT09IGFjY291bnRJZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc291cmNlOiAnY29ycmVjdERlZmF1bHQnLFxuICAgICAgICBjcmVkZW50aWFsczogYXdhaXQgdGhpcy5kZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUaGVuIHRyeSB0aGUgcGx1Z2luc1xuICAgIGNvbnN0IHBsdWdpbkNyZWRzID0gYXdhaXQgdGhpcy5wbHVnaW5zLmZldGNoQ3JlZGVudGlhbHNGb3IoYWNjb3VudElkLCBtb2RlKTtcbiAgICBpZiAocGx1Z2luQ3JlZHMpIHtcbiAgICAgIHJldHVybiB7IHNvdXJjZTogJ3BsdWdpbicsIC4uLnBsdWdpbkNyZWRzIH07XG4gICAgfVxuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGRlZmF1bHQgY3JlZGVudGlhbHMgd2l0aCBhIG5vdGUgdGhhdCB0aGV5J3JlIG5vdCB0aGUgcmlnaHQgb25lcyB5ZXRcbiAgICBpZiAoZGVmYXVsdEFjY291bnRJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzb3VyY2U6ICdpbmNvcnJlY3REZWZhdWx0JyxcbiAgICAgICAgYWNjb3VudElkOiBkZWZhdWx0QWNjb3VudElkLFxuICAgICAgICBjcmVkZW50aWFsczogYXdhaXQgdGhpcy5kZWZhdWx0Q3JlZGVudGlhbFByb3ZpZGVyLFxuICAgICAgICB1bnVzZWRQbHVnaW5zOiB0aGlzLnBsdWdpbnMuYXZhaWxhYmxlUGx1Z2luTmFtZXMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEFwcGFyZW50bHkgd2UgZGlkbid0IGZpbmQgYW55IGF0IGFsbFxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICdub25lJyxcbiAgICAgIHVudXNlZFBsdWdpbnM6IHRoaXMucGx1Z2lucy5hdmFpbGFibGVQbHVnaW5OYW1lcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBTREsgd2hpY2ggdXNlcyBhc3N1bWVkIHJvbGUgY3JlZGVudGlhbHNcbiAgICpcbiAgICogVGhlIGJhc2UgY3JlZGVudGlhbHMgdXNlZCB0byByZXRyaWV2ZSB0aGUgYXNzdW1lZCByb2xlIGNyZWRlbnRpYWxzIHdpbGwgYmUgdGhlXG4gICAqIHNhbWUgY3JlZGVudGlhbHMgcmV0dXJuZWQgYnkgb2J0YWluQ3JlZGVudGlhbHMgaWYgYW4gZW52aXJvbm1lbnQgYW5kIG1vZGUgaXMgcGFzc2VkLFxuICAgKiBvdGhlcndpc2UgaXQgd2lsbCBiZSB0aGUgY3VycmVudCBjcmVkZW50aWFscy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgd2l0aEFzc3VtZWRSb2xlKFxuICAgIG1haW5DcmVkZW50aWFsczogRXhjbHVkZTxPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQsIHsgc291cmNlOiAnbm9uZScgfT4sXG4gICAgcm9sZUFybjogc3RyaW5nLFxuICAgIGV4dGVybmFsSWQ/OiBzdHJpbmcsXG4gICAgYWRkaXRpb25hbE9wdGlvbnM/OiBBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgcmVnaW9uPzogc3RyaW5nLFxuICApOiBQcm9taXNlPFNESz4ge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYEFzc3VtaW5nIHJvbGUgJyR7cm9sZUFybn0nLmApO1xuXG4gICAgcmVnaW9uID0gcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbjtcblxuICAgIGNvbnN0IHNvdXJjZURlc2NyaXB0aW9uID0gZm10T2J0YWluZWRDcmVkZW50aWFscyhtYWluQ3JlZGVudGlhbHMpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgbWFrZUNhY2hpbmdQcm92aWRlcihmcm9tVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgICBtYXN0ZXJDcmVkZW50aWFsczogbWFpbkNyZWRlbnRpYWxzLmNyZWRlbnRpYWxzLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBSb2xlQXJuOiByb2xlQXJuLFxuICAgICAgICAgIEV4dGVybmFsSWQ6IGV4dGVybmFsSWQsXG4gICAgICAgICAgUm9sZVNlc3Npb25OYW1lOiBgYXdzLWNkay0ke3NhZmVVc2VybmFtZSgpfWAsXG4gICAgICAgICAgLi4uYWRkaXRpb25hbE9wdGlvbnMsXG4gICAgICAgICAgVHJhbnNpdGl2ZVRhZ0tleXM6IGFkZGl0aW9uYWxPcHRpb25zPy5UYWdzID8gYWRkaXRpb25hbE9wdGlvbnMuVGFncy5tYXAoKHQpID0+IHQuS2V5ISkgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICAgIGNsaWVudENvbmZpZzoge1xuICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICByZXF1ZXN0SGFuZGxlcjogdGhpcy5yZXF1ZXN0SGFuZGxlcixcbiAgICAgICAgICBjdXN0b21Vc2VyQWdlbnQ6ICdhd3MtY2RrJyxcbiAgICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgICB9LFxuICAgICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgICAgfSkpO1xuXG4gICAgICAvLyBDYWxsIHRoZSBwcm92aWRlciBhdCBsZWFzdCBvbmNlIGhlcmUsIHRvIGNhdGNoIGFuIGVycm9yIGlmIGl0IG9jY3Vyc1xuICAgICAgYXdhaXQgY3JlZGVudGlhbHMoKTtcblxuICAgICAgcmV0dXJuIHRoaXMuX21ha2VTZGsoY3JlZGVudGlhbHMsIHJlZ2lvbik7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGlmIChlcnIubmFtZSA9PT0gJ0V4cGlyZWRUb2tlbicpIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBBc3N1bWluZyByb2xlIGZhaWxlZDogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgICAgICAnQXNzdW1lUm9sZUZhaWxlZCcsXG4gICAgICAgIFtcbiAgICAgICAgICAnQ291bGQgbm90IGFzc3VtZSByb2xlIGluIHRhcmdldCBhY2NvdW50JyxcbiAgICAgICAgICAuLi4oc291cmNlRGVzY3JpcHRpb24gPyBbYHVzaW5nICR7c291cmNlRGVzY3JpcHRpb259YF0gOiBbXSksXG4gICAgICAgICAgZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgXCIuIFBsZWFzZSBtYWtlIHN1cmUgdGhhdCB0aGlzIHJvbGUgZXhpc3RzIGluIHRoZSBhY2NvdW50LiBJZiBpdCBkb2Vzbid0IGV4aXN0LCAocmUpLWJvb3RzdHJhcCB0aGUgZW52aXJvbm1lbnQgXCIgK1xuICAgICAgICAgICAgXCJ3aXRoIHRoZSByaWdodCAnLS10cnVzdCcsIHVzaW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgQ0RLIENMSS5cIixcbiAgICAgICAgXS5qb2luKCcgJyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIG5ldyBTREsgaW5zdGFuY2VcbiAgICpcbiAgICogVGhpcyBpcyBhIGZ1bmN0aW9uIGhlcmUsIGluc3RlYWQgb2YgYWxsIHRoZSBwbGFjZXMgd2hlcmUgdGhpcyBpcyB1c2VkIGNyZWF0aW5nIGEgYG5ldyBTREtgXG4gICAqIGluc3RhbmNlLCBzbyB0aGF0IGl0IGlzIHRyaXZpYWwgdG8gbW9jayBmcm9tIHRlc3RzLlxuICAgKlxuICAgKiBVc2UgbGlrZSB0aGlzOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBtb2NrU2RrID0gamVzdC5zcHlPbihTZGtQcm92aWRlci5wcm90b3R5cGUsICdfbWFrZVNkaycpLm1vY2tSZXR1cm5WYWx1ZShuZXcgTW9ja1NkaygpKTtcbiAgICogLy8gLi4uXG4gICAqIG1vY2tTZGsubW9ja1Jlc3RvcmUoKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9tYWtlU2RrKFxuICAgIGNyZWRQcm92aWRlcjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gbmV3IFNESyhjcmVkUHJvdmlkZXIsIHJlZ2lvbiwgdGhpcy5yZXF1ZXN0SGFuZGxlciwgdGhpcy5pb0hlbHBlciwgdGhpcy5sb2dnZXIpO1xuICB9XG59XG5cbi8qKlxuICogQW4gQVdTIGFjY291bnRcbiAqXG4gKiBBbiBBV1MgYWNjb3VudCBhbHdheXMgZXhpc3RzIGluIG9ubHkgb25lIHBhcnRpdGlvbi4gVXN1YWxseSB3ZSBkb24ndCBjYXJlIGFib3V0XG4gKiB0aGUgcGFydGl0aW9uLCBidXQgd2hlbiB3ZSBuZWVkIHRvIGZvcm0gQVJOcyB3ZSBkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gKCdhd3MnIG9yICdhd3MtY24nIG9yIG90aGVyd2lzZSlcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgdXNlcm5hbWUgd2l0aCBjaGFyYWN0ZXJzIGludmFsaWQgZm9yIGEgUm9sZVNlc3Npb25OYW1lIHJlbW92ZWRcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9TVFMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQXNzdW1lUm9sZS5odG1sI0FQSV9Bc3N1bWVSb2xlX1JlcXVlc3RQYXJhbWV0ZXJzXG4gKi9cbmZ1bmN0aW9uIHNhZmVVc2VybmFtZSgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gb3MudXNlckluZm8oKS51c2VybmFtZS5yZXBsYWNlKC9bXlxcdys9LC5ALV0vZywgJ0AnKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICdub25hbWUnO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igb2J0YWluaW5nIGNyZWRlbnRpYWxzIGZvciBhbiBlbnZpcm9ubWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWRlbnRpYWxzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSByb2xlIHRoYXQgbmVlZHMgdG8gYmUgYXNzdW1lZCwgaWYgYW55XG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHRlcm5hbCBJRCByZXF1aXJlZCB0byBhc3N1bWUgdGhlIGdpdmVuIHJvbGUuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlRXh0ZXJuYWxJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2Vzc2lvbiB0YWdzIHJlcXVpcmVkIHRvIGFzc3VtZSB0aGUgZ2l2ZW4gcm9sZS5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IEFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Ygb2J0YWluaW5nIGJhc2UgY3JlZGVudGlhbHNcbiAqL1xudHlwZSBPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQgPVxuICB8IHsgc291cmNlOiAnY29ycmVjdERlZmF1bHQnOyBjcmVkZW50aWFsczogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIH1cbiAgfCB7IHNvdXJjZTogJ3BsdWdpbic7IHBsdWdpbk5hbWU6IHN0cmluZzsgY3JlZGVudGlhbHM6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciB9XG4gIHwge1xuICAgIHNvdXJjZTogJ2luY29ycmVjdERlZmF1bHQnO1xuICAgIGNyZWRlbnRpYWxzOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG4gICAgYWNjb3VudElkOiBzdHJpbmc7XG4gICAgdW51c2VkUGx1Z2luczogc3RyaW5nW107XG4gIH1cbiAgfCB7IHNvdXJjZTogJ25vbmUnOyB1bnVzZWRQbHVnaW5zOiBzdHJpbmdbXSB9O1xuXG4vKipcbiAqIElzb2xhdGluZyB0aGUgY29kZSB0aGF0IHRyYW5zbGF0ZXMgY2FsY3VsYXRpb24gZXJyb3JzIGludG8gaHVtYW4gZXJyb3IgbWVzc2FnZXNcbiAqXG4gKiBXZSBjb3ZlciB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICpcbiAqIC0gTm8gY3JlZGVudGlhbHMgYXJlIGF2YWlsYWJsZSBhdCBhbGxcbiAqIC0gRGVmYXVsdCBjcmVkZW50aWFscyBhcmUgZm9yIHRoZSB3cm9uZyBhY2NvdW50XG4gKi9cbmZ1bmN0aW9uIGZtdE9idGFpbkNyZWRlbnRpYWxzRXJyb3IoXG4gIHRhcmdldEFjY291bnRJZDogc3RyaW5nLFxuICBvYnRhaW5SZXN1bHQ6IE9idGFpbkJhc2VDcmVkZW50aWFsc1Jlc3VsdCAmIHtcbiAgICBzb3VyY2U6ICdub25lJyB8ICdpbmNvcnJlY3REZWZhdWx0JztcbiAgfSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1zZyA9IFtgTmVlZCB0byBwZXJmb3JtIEFXUyBjYWxscyBmb3IgYWNjb3VudCAke3RhcmdldEFjY291bnRJZH1gXTtcbiAgc3dpdGNoIChvYnRhaW5SZXN1bHQuc291cmNlKSB7XG4gICAgY2FzZSAnaW5jb3JyZWN0RGVmYXVsdCc6XG4gICAgICBtc2cucHVzaChgYnV0IHRoZSBjdXJyZW50IGNyZWRlbnRpYWxzIGFyZSBmb3IgJHtvYnRhaW5SZXN1bHQuYWNjb3VudElkfWApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm9uZSc6XG4gICAgICBtc2cucHVzaCgnYnV0IG5vIGNyZWRlbnRpYWxzIGhhdmUgYmVlbiBjb25maWd1cmVkJyk7XG4gIH1cbiAgaWYgKG9idGFpblJlc3VsdC51bnVzZWRQbHVnaW5zLmxlbmd0aCA+IDApIHtcbiAgICBtc2cucHVzaChgYW5kIG5vbmUgb2YgdGhlc2UgcGx1Z2lucyBmb3VuZCBhbnk6ICR7b2J0YWluUmVzdWx0LnVudXNlZFBsdWdpbnMuam9pbignLCAnKX1gKTtcbiAgfVxuICByZXR1cm4gbXNnLmpvaW4oJywgJyk7XG59XG5cbi8qKlxuICogRm9ybWF0IGEgbWVzc2FnZSBpbmRpY2F0aW5nIHdoZXJlIHdlIGdvdCBiYXNlIGNyZWRlbnRpYWxzIGZvciB0aGUgYXNzdW1lIHJvbGVcbiAqXG4gKiBXZSBjb3ZlciB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICpcbiAqIC0gRGVmYXVsdCBjcmVkZW50aWFscyBmb3IgdGhlIHJpZ2h0IGFjY291bnRcbiAqIC0gRGVmYXVsdCBjcmVkZW50aWFscyBmb3IgdGhlIHdyb25nIGFjY291bnRcbiAqIC0gQ3JlZGVudGlhbHMgcmV0dXJuZWQgZnJvbSBhIHBsdWdpblxuICovXG5mdW5jdGlvbiBmbXRPYnRhaW5lZENyZWRlbnRpYWxzKG9idGFpblJlc3VsdDogRXhjbHVkZTxPYnRhaW5CYXNlQ3JlZGVudGlhbHNSZXN1bHQsIHsgc291cmNlOiAnbm9uZScgfT4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKG9idGFpblJlc3VsdC5zb3VyY2UpIHtcbiAgICBjYXNlICdjb3JyZWN0RGVmYXVsdCc6XG4gICAgICByZXR1cm4gJ2N1cnJlbnQgY3JlZGVudGlhbHMnO1xuICAgIGNhc2UgJ3BsdWdpbic6XG4gICAgICByZXR1cm4gYGNyZWRlbnRpYWxzIHJldHVybmVkIGJ5IHBsdWdpbiAnJHtvYnRhaW5SZXN1bHQucGx1Z2luTmFtZX0nYDtcbiAgICBjYXNlICdpbmNvcnJlY3REZWZhdWx0JzpcbiAgICAgIGNvbnN0IG1zZyA9IFtdO1xuICAgICAgbXNnLnB1c2goYGN1cnJlbnQgY3JlZGVudGlhbHMgKHdoaWNoIGFyZSBmb3IgYWNjb3VudCAke29idGFpblJlc3VsdC5hY2NvdW50SWR9YCk7XG5cbiAgICAgIGlmIChvYnRhaW5SZXN1bHQudW51c2VkUGx1Z2lucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG1zZy5wdXNoKGAsIGFuZCBub25lIG9mIHRoZSBmb2xsb3dpbmcgcGx1Z2lucyBwcm92aWRlZCBjcmVkZW50aWFsczogJHtvYnRhaW5SZXN1bHQudW51c2VkUGx1Z2lucy5qb2luKCcsICcpfWApO1xuICAgICAgfVxuICAgICAgbXNnLnB1c2goJyknKTtcblxuICAgICAgcmV0dXJuIG1zZy5qb2luKCcnKTtcbiAgfVxufVxuXG4vKipcbiAqIEluc3RhbnRpYXRlIGFuIFNESyBmb3IgY29udGV4dCBwcm92aWRlcnMuIFRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IGFsbFxuICogbG9va3VwIGFzc3VtZSByb2xlIG9wdGlvbnMgYXJlIHVzZWQgd2hlbiBjb250ZXh0IHByb3ZpZGVycyBwZXJmb3JtIGxvb2t1cHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0Q29udGV4dFByb3ZpZGVyU2RrKGF3czogU2RrUHJvdmlkZXIsIG9wdGlvbnM6IENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyk6IFByb21pc2U8U0RLPiB7XG4gIGNvbnN0IGFjY291bnQgPSBvcHRpb25zLmFjY291bnQ7XG4gIGNvbnN0IHJlZ2lvbiA9IG9wdGlvbnMucmVnaW9uO1xuXG4gIGNvbnN0IGNyZWRzOiBDcmVkZW50aWFsc09wdGlvbnMgPSB7XG4gICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5sb29rdXBSb2xlQXJuLFxuICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmxvb2t1cFJvbGVFeHRlcm5hbElkLFxuICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gIH07XG5cbiAgcmV0dXJuIChhd2FpdCBhd3MuZm9yRW52aXJvbm1lbnQoRW52aXJvbm1lbnRVdGlscy5tYWtlKGFjY291bnQsIHJlZ2lvbiksIE1vZGUuRm9yUmVhZGluZywgY3JlZHMpKS5zZGs7XG59XG4iXX0=","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDK = void 0;\nconst client_appsync_1 = require(\"@aws-sdk/client-appsync\");\nconst client_bedrock_agentcore_control_1 = require(\"@aws-sdk/client-bedrock-agentcore-control\");\nconst client_cloudcontrol_1 = require(\"@aws-sdk/client-cloudcontrol\");\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\nconst client_cloudwatch_logs_1 = require(\"@aws-sdk/client-cloudwatch-logs\");\nconst client_codebuild_1 = require(\"@aws-sdk/client-codebuild\");\nconst client_ec2_1 = require(\"@aws-sdk/client-ec2\");\nconst client_ecr_1 = require(\"@aws-sdk/client-ecr\");\nconst client_ecs_1 = require(\"@aws-sdk/client-ecs\");\nconst client_elastic_load_balancing_v2_1 = require(\"@aws-sdk/client-elastic-load-balancing-v2\");\nconst client_iam_1 = require(\"@aws-sdk/client-iam\");\nconst client_kms_1 = require(\"@aws-sdk/client-kms\");\nconst client_lambda_1 = require(\"@aws-sdk/client-lambda\");\nconst client_route_53_1 = require(\"@aws-sdk/client-route-53\");\nconst client_s3_1 = require(\"@aws-sdk/client-s3\");\nconst client_secrets_manager_1 = require(\"@aws-sdk/client-secrets-manager\");\nconst client_sfn_1 = require(\"@aws-sdk/client-sfn\");\nconst client_ssm_1 = require(\"@aws-sdk/client-ssm\");\nconst client_sts_1 = require(\"@aws-sdk/client-sts\");\nconst lib_storage_1 = require(\"@aws-sdk/lib-storage\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst account_cache_1 = require(\"./account-cache\");\nconst cached_1 = require(\"./cached\");\nconst tracing_1 = require(\"./tracing\");\nconst user_agent_1 = require(\"./user-agent\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\n/**\n * Base functionality of SDK without credential fetching\n */\nlet SDK = class SDK {\n credProvider;\n currentRegion;\n config;\n accountCache;\n /**\n * STS is used to check credential validity, don't do too many retries.\n */\n stsRetryStrategy = new util_retry_1.ConfiguredRetryStrategy(3, (attempt) => 100 * (2 ** attempt));\n /**\n * Whether we have proof that the credentials have not expired\n *\n * We need to do some manual plumbing around this because the JS SDKv2 treats `ExpiredToken`\n * as retriable and we have hefty retries on CFN calls making the CLI hang for a good 15 minutes\n * if the credentials have expired.\n */\n _credentialsValidated = false;\n /**\n * A function to create debug messages\n */\n debug;\n constructor(credProvider, region, requestHandler, ioHelper, logger) {\n this.credProvider = credProvider;\n const debugFn = async (msg) => ioHelper.defaults.debug(msg);\n this.accountCache = new account_cache_1.AccountAccessKeyCache(account_cache_1.AccountAccessKeyCache.DEFAULT_PATH, debugFn);\n this.debug = debugFn;\n this.config = {\n region,\n credentials: credProvider,\n requestHandler,\n retryStrategy: new util_retry_1.ConfiguredRetryStrategy(7, (attempt) => 300 * (2 ** attempt)),\n customUserAgent: (0, user_agent_1.defaultCliUserAgent)(),\n logger: logger ? makeSdkLoggerSafeByBindingThis(logger) : undefined,\n };\n this.currentRegion = region;\n }\n appendCustomUserAgent(userAgentData) {\n if (!userAgentData) {\n return;\n }\n const currentCustomUserAgent = this.config.customUserAgent;\n this.config.customUserAgent = currentCustomUserAgent ? `${currentCustomUserAgent} ${userAgentData}` : userAgentData;\n }\n removeCustomUserAgent(userAgentData) {\n this.config.customUserAgent = this.config.customUserAgent?.replace(userAgentData, '');\n }\n appsync() {\n const client = new client_appsync_1.AppSyncClient(this.config);\n return {\n getSchemaCreationStatus: (input) => client.send(new client_appsync_1.GetSchemaCreationStatusCommand(input)),\n startSchemaCreation: (input) => client.send(new client_appsync_1.StartSchemaCreationCommand(input)),\n updateApiKey: (input) => client.send(new client_appsync_1.UpdateApiKeyCommand(input)),\n updateFunction: (input) => client.send(new client_appsync_1.UpdateFunctionCommand(input)),\n updateResolver: (input) => client.send(new client_appsync_1.UpdateResolverCommand(input)),\n // Pagination Functions\n listFunctions: async (input) => {\n const functions = Array();\n const paginator = (0, client_appsync_1.paginateListFunctions)({ client }, input);\n for await (const page of paginator) {\n functions.push(...(page.functions || []));\n }\n return functions;\n },\n };\n }\n bedrockAgentCoreControl() {\n const client = new client_bedrock_agentcore_control_1.BedrockAgentCoreControlClient(this.config);\n return {\n getAgentRuntime: (input) => client.send(new client_bedrock_agentcore_control_1.GetAgentRuntimeCommand(input)),\n updateAgentRuntime: (input) => client.send(new client_bedrock_agentcore_control_1.UpdateAgentRuntimeCommand(input)),\n };\n }\n cloudControl() {\n const client = new client_cloudcontrol_1.CloudControlClient(this.config);\n return {\n listResources: (input) => client.send(new client_cloudcontrol_1.ListResourcesCommand(input)),\n getResource: (input) => client.send(new client_cloudcontrol_1.GetResourceCommand(input)),\n updateResource: (input) => client.send(new client_cloudcontrol_1.UpdateResourceCommand(input)),\n };\n }\n cloudFormation() {\n const client = new client_cloudformation_1.CloudFormationClient({\n ...this.config,\n retryStrategy: new util_retry_1.ConfiguredRetryStrategy(11, (attempt) => 1000 * (2 ** attempt)),\n });\n return {\n continueUpdateRollback: async (input) => client.send(new client_cloudformation_1.ContinueUpdateRollbackCommand(input)),\n createChangeSet: (input) => client.send(new client_cloudformation_1.CreateChangeSetCommand(input)),\n createGeneratedTemplate: (input) => client.send(new client_cloudformation_1.CreateGeneratedTemplateCommand(input)),\n createStack: (input) => client.send(new client_cloudformation_1.CreateStackCommand(input)),\n deleteChangeSet: (input) => client.send(new client_cloudformation_1.DeleteChangeSetCommand(input)),\n deleteGeneratedTemplate: (input) => client.send(new client_cloudformation_1.DeleteGeneratedTemplateCommand(input)),\n deleteStack: (input) => client.send(new client_cloudformation_1.DeleteStackCommand(input)),\n detectStackDrift: (input) => client.send(new client_cloudformation_1.DetectStackDriftCommand(input)),\n detectStackResourceDrift: (input) => client.send(new client_cloudformation_1.DetectStackResourceDriftCommand(input)),\n describeEvents: (input) => client.send(new client_cloudformation_1.DescribeEventsCommand(input)),\n describeChangeSet: (input) => client.send(new client_cloudformation_1.DescribeChangeSetCommand(input)),\n describeGeneratedTemplate: (input) => client.send(new client_cloudformation_1.DescribeGeneratedTemplateCommand(input)),\n describeResourceScan: (input) => client.send(new client_cloudformation_1.DescribeResourceScanCommand(input)),\n describeStackDriftDetectionStatus: (input) => client.send(new client_cloudformation_1.DescribeStackDriftDetectionStatusCommand(input)),\n describeStackResourceDrifts: (input) => client.send(new client_cloudformation_1.DescribeStackResourceDriftsCommand(input)),\n describeStacks: (input) => client.send(new client_cloudformation_1.DescribeStacksCommand(input)),\n describeStackResources: (input) => client.send(new client_cloudformation_1.DescribeStackResourcesCommand(input)),\n describeType: (input) => client.send(new client_cloudformation_1.DescribeTypeCommand(input)),\n executeChangeSet: (input) => client.send(new client_cloudformation_1.ExecuteChangeSetCommand(input)),\n getGeneratedTemplate: (input) => client.send(new client_cloudformation_1.GetGeneratedTemplateCommand(input)),\n getTemplate: (input) => client.send(new client_cloudformation_1.GetTemplateCommand(input)),\n getTemplateSummary: (input) => client.send(new client_cloudformation_1.GetTemplateSummaryCommand(input)),\n listExports: (input) => client.send(new client_cloudformation_1.ListExportsCommand(input)),\n listResourceScanRelatedResources: (input) => client.send(new client_cloudformation_1.ListResourceScanRelatedResourcesCommand(input)),\n listResourceScanResources: (input) => client.send(new client_cloudformation_1.ListResourceScanResourcesCommand(input)),\n listResourceScans: (input) => client.send(new client_cloudformation_1.ListResourceScansCommand(input)),\n listStacks: (input) => client.send(new client_cloudformation_1.ListStacksCommand(input)),\n rollbackStack: (input) => client.send(new client_cloudformation_1.RollbackStackCommand(input)),\n startResourceScan: (input) => client.send(new client_cloudformation_1.StartResourceScanCommand(input)),\n updateStack: (input) => client.send(new client_cloudformation_1.UpdateStackCommand(input)),\n updateTerminationProtection: (input) => client.send(new client_cloudformation_1.UpdateTerminationProtectionCommand(input)),\n describeStackEvents: (input) => {\n return client.send(new client_cloudformation_1.DescribeStackEventsCommand(input));\n },\n listStackResources: async (input) => {\n const stackResources = Array();\n const paginator = (0, client_cloudformation_1.paginateListStackResources)({ client }, input);\n for await (const page of paginator) {\n stackResources.push(...(page?.StackResourceSummaries || []));\n }\n return stackResources;\n },\n paginatedListStacks: async (input) => {\n const stackResources = Array();\n const paginator = (0, client_cloudformation_1.paginateListStacks)({ client }, input);\n for await (const page of paginator) {\n stackResources.push(...(page?.StackSummaries || []));\n }\n return stackResources;\n },\n paginatedDescribeEvents: async (input) => {\n const stackResources = Array();\n const paginator = (0, client_cloudformation_1.paginateDescribeEvents)({ client }, input);\n for await (const page of paginator) {\n stackResources.push(...(page.OperationEvents || []));\n }\n return stackResources;\n },\n createStackRefactor: (input) => {\n return client.send(new client_cloudformation_1.CreateStackRefactorCommand(input));\n },\n executeStackRefactor: (input) => {\n return client.send(new client_cloudformation_1.ExecuteStackRefactorCommand(input));\n },\n waitUntilStackRefactorCreateComplete: (input) => {\n return (0, client_cloudformation_1.waitUntilStackRefactorCreateComplete)({\n client,\n maxWaitTime: 600,\n minDelay: 6,\n maxDelay: 6,\n }, input);\n },\n waitUntilStackRefactorExecuteComplete: (input) => {\n return (0, client_cloudformation_1.waitUntilStackRefactorExecuteComplete)({\n client,\n maxWaitTime: 600,\n minDelay: 6,\n maxDelay: 6,\n }, input);\n },\n getHookResult: (input) => client.send(new client_cloudformation_1.GetHookResultCommand(input)),\n };\n }\n cloudWatchLogs() {\n const client = new client_cloudwatch_logs_1.CloudWatchLogsClient(this.config);\n return {\n describeLogGroups: (input) => client.send(new client_cloudwatch_logs_1.DescribeLogGroupsCommand(input)),\n filterLogEvents: (input) => client.send(new client_cloudwatch_logs_1.FilterLogEventsCommand(input)),\n };\n }\n codeBuild() {\n const client = new client_codebuild_1.CodeBuildClient(this.config);\n return {\n updateProject: (input) => client.send(new client_codebuild_1.UpdateProjectCommand(input)),\n };\n }\n ec2() {\n const client = new client_ec2_1.EC2Client(this.config);\n return {\n describeAvailabilityZones: (input) => client.send(new client_ec2_1.DescribeAvailabilityZonesCommand(input)),\n describeImages: (input) => client.send(new client_ec2_1.DescribeImagesCommand(input)),\n describeInstances: (input) => client.send(new client_ec2_1.DescribeInstancesCommand(input)),\n describeRouteTables: (input) => client.send(new client_ec2_1.DescribeRouteTablesCommand(input)),\n describeSecurityGroups: (input) => client.send(new client_ec2_1.DescribeSecurityGroupsCommand(input)),\n describeSubnets: (input) => client.send(new client_ec2_1.DescribeSubnetsCommand(input)),\n describeVpcEndpointServices: (input) => client.send(new client_ec2_1.DescribeVpcEndpointServicesCommand(input)),\n describeVpcs: (input) => client.send(new client_ec2_1.DescribeVpcsCommand(input)),\n describeVpnGateways: (input) => client.send(new client_ec2_1.DescribeVpnGatewaysCommand(input)),\n };\n }\n ecr() {\n const client = new client_ecr_1.ECRClient(this.config);\n return {\n batchDeleteImage: (input) => client.send(new client_ecr_1.BatchDeleteImageCommand(input)),\n batchGetImage: (input) => client.send(new client_ecr_1.BatchGetImageCommand(input)),\n createRepository: (input) => client.send(new client_ecr_1.CreateRepositoryCommand(input)),\n describeImages: (input) => client.send(new client_ecr_1.DescribeImagesCommand(input)),\n describeRepositories: (input) => client.send(new client_ecr_1.DescribeRepositoriesCommand(input)),\n getAuthorizationToken: (input) => client.send(new client_ecr_1.GetAuthorizationTokenCommand(input)),\n listImages: (input) => client.send(new client_ecr_1.ListImagesCommand(input)),\n putImage: (input) => client.send(new client_ecr_1.PutImageCommand(input)),\n putImageScanningConfiguration: (input) => client.send(new client_ecr_1.PutImageScanningConfigurationCommand(input)),\n };\n }\n ecs() {\n const client = new client_ecs_1.ECSClient(this.config);\n return {\n listClusters: (input) => client.send(new client_ecs_1.ListClustersCommand(input)),\n registerTaskDefinition: (input) => client.send(new client_ecs_1.RegisterTaskDefinitionCommand(input)),\n updateService: (input) => client.send(new client_ecs_1.UpdateServiceCommand(input)),\n // Waiters\n waitUntilServicesStable: (input, timeoutSeconds) => {\n return (0, client_ecs_1.waitUntilServicesStable)({\n client,\n maxWaitTime: timeoutSeconds ?? 600,\n minDelay: 6,\n maxDelay: 6,\n }, input);\n },\n };\n }\n elbv2() {\n const client = new client_elastic_load_balancing_v2_1.ElasticLoadBalancingV2Client(this.config);\n return {\n describeListeners: (input) => client.send(new client_elastic_load_balancing_v2_1.DescribeListenersCommand(input)),\n describeLoadBalancers: (input) => client.send(new client_elastic_load_balancing_v2_1.DescribeLoadBalancersCommand(input)),\n describeTags: (input) => client.send(new client_elastic_load_balancing_v2_1.DescribeTagsCommand(input)),\n // Pagination Functions\n paginateDescribeListeners: async (input) => {\n const listeners = Array();\n const paginator = (0, client_elastic_load_balancing_v2_1.paginateDescribeListeners)({ client }, input);\n for await (const page of paginator) {\n listeners.push(...(page?.Listeners || []));\n }\n return listeners;\n },\n paginateDescribeLoadBalancers: async (input) => {\n const loadBalancers = Array();\n const paginator = (0, client_elastic_load_balancing_v2_1.paginateDescribeLoadBalancers)({ client }, input);\n for await (const page of paginator) {\n loadBalancers.push(...(page?.LoadBalancers || []));\n }\n return loadBalancers;\n },\n };\n }\n iam() {\n const client = new client_iam_1.IAMClient(this.config);\n return {\n createPolicy: (input) => client.send(new client_iam_1.CreatePolicyCommand(input)),\n getPolicy: (input) => client.send(new client_iam_1.GetPolicyCommand(input)),\n getRole: (input) => client.send(new client_iam_1.GetRoleCommand(input)),\n };\n }\n kms() {\n const client = new client_kms_1.KMSClient(this.config);\n return {\n describeKey: (input) => client.send(new client_kms_1.DescribeKeyCommand(input)),\n listAliases: (input) => client.send(new client_kms_1.ListAliasesCommand(input)),\n };\n }\n lambda() {\n const client = new client_lambda_1.LambdaClient(this.config);\n return {\n invokeCommand: (input) => client.send(new client_lambda_1.InvokeCommand(input)),\n publishVersion: (input) => client.send(new client_lambda_1.PublishVersionCommand(input)),\n updateAlias: (input) => client.send(new client_lambda_1.UpdateAliasCommand(input)),\n updateFunctionCode: (input) => client.send(new client_lambda_1.UpdateFunctionCodeCommand(input)),\n updateFunctionConfiguration: (input) => client.send(new client_lambda_1.UpdateFunctionConfigurationCommand(input)),\n // Waiters\n waitUntilFunctionUpdated: (minDelaySeconds, maxDelaySeconds, input) => {\n return (0, client_lambda_1.waitUntilFunctionUpdatedV2)({\n client,\n maxDelay: maxDelaySeconds,\n minDelay: minDelaySeconds,\n maxWaitTime: maxDelaySeconds * 60,\n }, input);\n },\n };\n }\n route53() {\n const client = new client_route_53_1.Route53Client(this.config);\n return {\n getHostedZone: (input) => client.send(new client_route_53_1.GetHostedZoneCommand(input)),\n listHostedZones: (input) => client.send(new client_route_53_1.ListHostedZonesCommand(input)),\n listHostedZonesByName: (input) => client.send(new client_route_53_1.ListHostedZonesByNameCommand(input)),\n };\n }\n s3() {\n const client = new client_s3_1.S3Client(this.config);\n return {\n deleteObjects: (input) => client.send(new client_s3_1.DeleteObjectsCommand({\n ...input,\n ChecksumAlgorithm: 'SHA256',\n })),\n deleteObjectTagging: (input) => client.send(new client_s3_1.DeleteObjectTaggingCommand(input)),\n getBucketEncryption: (input) => client.send(new client_s3_1.GetBucketEncryptionCommand(input)),\n getBucketLocation: (input) => client.send(new client_s3_1.GetBucketLocationCommand(input)),\n getObject: (input) => client.send(new client_s3_1.GetObjectCommand(input)),\n getObjectTagging: (input) => client.send(new client_s3_1.GetObjectTaggingCommand(input)),\n listObjectsV2: (input) => client.send(new client_s3_1.ListObjectsV2Command(input)),\n putObjectTagging: (input) => client.send(new client_s3_1.PutObjectTaggingCommand({\n ...input,\n ChecksumAlgorithm: 'SHA256',\n })),\n upload: (input) => {\n try {\n const upload = new lib_storage_1.Upload({\n client,\n params: { ...input, ChecksumAlgorithm: 'SHA256' },\n });\n return upload.done();\n }\n catch (e) {\n throw new toolkit_error_1.AuthenticationError('S3UploadFailed', `Upload failed: ${(0, util_1.formatErrorMessage)(e)}`);\n }\n },\n };\n }\n secretsManager() {\n const client = new client_secrets_manager_1.SecretsManagerClient(this.config);\n return {\n getSecretValue: (input) => client.send(new client_secrets_manager_1.GetSecretValueCommand(input)),\n };\n }\n ssm() {\n const client = new client_ssm_1.SSMClient(this.config);\n return {\n getParameter: (input) => client.send(new client_ssm_1.GetParameterCommand(input)),\n };\n }\n stepFunctions() {\n const client = new client_sfn_1.SFNClient(this.config);\n return {\n updateStateMachine: (input) => client.send(new client_sfn_1.UpdateStateMachineCommand(input)),\n };\n }\n /**\n * The AWS SDK v3 requires a client config and a command in order to get an endpoint for\n * any given service.\n */\n async getUrlSuffix(region) {\n const cfn = new client_cloudformation_1.CloudFormationClient({ region });\n const endpoint = await (0, middleware_endpoint_1.getEndpointFromInstructions)({}, client_cloudformation_1.DescribeStackResourcesCommand, { ...cfn.config });\n return endpoint.url.hostname.split(`${region}.`).pop();\n }\n async currentAccount() {\n return (0, cached_1.cachedAsync)(this, CURRENT_ACCOUNT_KEY, async () => {\n const creds = await this.credProvider();\n return this.accountCache.fetch(creds.accessKeyId, async () => {\n // if we don't have one, resolve from STS and store in cache.\n await this.debug('Looking up default account ID from STS');\n const client = new client_sts_1.STSClient({\n ...this.config,\n retryStrategy: this.stsRetryStrategy,\n });\n const command = new client_sts_1.GetCallerIdentityCommand({});\n const result = await client.send(command);\n const accountId = result.Account;\n const partition = result.Arn.split(':')[1];\n if (!accountId) {\n throw new toolkit_error_1.AuthenticationError('NoAccountId', \"STS didn't return an account ID\");\n }\n await this.debug(`Default account ID: ${accountId}`);\n // Save another STS call later if this one already succeeded\n this._credentialsValidated = true;\n return { accountId, partition };\n });\n });\n }\n /**\n * Make sure the the current credentials are not expired\n */\n async validateCredentials() {\n if (this._credentialsValidated) {\n return;\n }\n const client = new client_sts_1.STSClient({ ...this.config, retryStrategy: this.stsRetryStrategy });\n await client.send(new client_sts_1.GetCallerIdentityCommand({}));\n this._credentialsValidated = true;\n }\n};\nexports.SDK = SDK;\nexports.SDK = SDK = __decorate([\n tracing_1.traceMemberMethods\n], SDK);\nconst CURRENT_ACCOUNT_KEY = Symbol('current_account_key');\n/**\n * Make the SDK logger safe against raw function invocations\n *\n * The SDK expects the logger to be an object with a number of functions, but it\n * doesn't necessarily keep 'this' bound all the time; sometimes it will copy\n * functions off of the object and call them from a variable.\n *\n * By how JavaScript works, this drops the 'this' reference. Make sure 'this' is\n * bound at all times.\n *\n * @see https://github.com/aws/aws-sdk-js-v3/issues/7297\n */\nfunction makeSdkLoggerSafeByBindingThis(logger) {\n return {\n debug: logger.debug.bind(logger),\n info: logger.info.bind(logger),\n warn: logger.warn.bind(logger),\n error: logger.error.bind(logger),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWVBLDREQVFpQztBQU9qQyxnR0FJbUQ7QUFTbkQsc0VBTXNDO0FBNkV0QywwRUEyQ3dDO0FBUXhDLDRFQUl5QztBQUN6QyxnRUFLbUM7QUFDbkMsb0RBNkI2QjtBQXFCN0Isb0RBVzZCO0FBVTdCLG9EQU02QjtBQVc3QixnR0FPbUQ7QUFDbkQsb0RBVzZCO0FBQzdCLG9EQVE2QjtBQUM3QiwwREFrQmdDO0FBQ2hDLDhEQVdrQztBQXFCbEMsa0RBVTRCO0FBQzVCLDRFQUt5QztBQUt6QyxvREFHNkI7QUFDN0Isb0RBSzZCO0FBQzdCLG9EQUEwRTtBQUMxRSxzREFBOEM7QUFDOUMscUVBQTBFO0FBQzFFLG1EQUE2RDtBQUU3RCxtREFBd0Q7QUFFeEQscUNBQXVDO0FBR3ZDLHVDQUErQztBQUMvQyw2Q0FBbUQ7QUFDbkQsK0RBQWtFO0FBQ2xFLHFDQUFnRDtBQThOaEQ7O0dBRUc7QUFFSSxJQUFNLEdBQUcsR0FBVCxNQUFNLEdBQUc7SUEyQks7SUExQkgsYUFBYSxDQUFTO0lBRXRCLE1BQU0sQ0FBdUI7SUFFNUIsWUFBWSxDQUFDO0lBRTlCOztPQUVHO0lBQ2MsZ0JBQWdCLEdBQUcsSUFBSSxvQ0FBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXRHOzs7Ozs7T0FNRztJQUNLLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUV0Qzs7T0FFRztJQUNjLEtBQUssQ0FBaUM7SUFFdkQsWUFDbUIsWUFBK0MsRUFDaEUsTUFBYyxFQUNkLGNBQXNDLEVBQ3RDLFFBQWtCLEVBQ2xCLE1BQW1CO1FBSkYsaUJBQVksR0FBWixZQUFZLENBQW1DO1FBTWhFLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsRUFBRSxD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QU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFFMUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLDhCQUE4QixDQUFDLE1BQWtCO0lBQ3hELE9BQU87UUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHtcbiAgRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuICBHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RnVuY3Rpb25zQ29tbWFuZElucHV0LFxuICBTdGFydFNjaGVtYUNyZWF0aW9uQ29tbWFuZElucHV0LFxuICBTdGFydFNjaGVtYUNyZWF0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQXBpS2V5Q29tbWFuZElucHV0LFxuICBVcGRhdGVBcGlLZXlDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVSZXNvbHZlckNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlUmVzb2x2ZXJDb21tYW5kT3V0cHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtYXBwc3luYyc7XG5pbXBvcnQge1xuICBBcHBTeW5jQ2xpZW50LFxuICBHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmQsXG4gIHBhZ2luYXRlTGlzdEZ1bmN0aW9ucyxcbiAgU3RhcnRTY2hlbWFDcmVhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUFwaUtleUNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgVXBkYXRlUmVzb2x2ZXJDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtYXBwc3luYyc7XG5pbXBvcnQgdHlwZSB7XG4gIEdldEFnZW50UnVudGltZUNvbW1hbmRJbnB1dCxcbiAgR2V0QWdlbnRSdW50aW1lQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZElucHV0LFxuICBVcGRhdGVBZ2VudFJ1bnRpbWVDb21tYW5kT3V0cHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbCc7XG5pbXBvcnQge1xuICBCZWRyb2NrQWdlbnRDb3JlQ29udHJvbENsaWVudCxcbiAgR2V0QWdlbnRSdW50aW1lQ29tbWFuZCxcbiAgVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWJlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wnO1xuaW1wb3J0IHR5cGUge1xuICBHZXRSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgR2V0UmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBMaXN0UmVzb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZVJlc291cmNlQ29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkY29udHJvbCc7XG5pbXBvcnQge1xuICBVcGRhdGVSZXNvdXJjZUNvbW1hbmQsXG5cbiAgQ2xvdWRDb250cm9sQ2xpZW50LFxuICBHZXRSZXNvdXJjZUNvbW1hbmQsXG4gIExpc3RSZXNvdXJjZXNDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRjb250cm9sJztcbmltcG9ydCB0eXBlIHtcbiAgQ29udGludWVVcGRhdGVSb2xsYmFja0NvbW1hbmRJbnB1dCxcbiAgQ29udGludWVVcGRhdGVSb2xsYmFja0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhY2tFdmVudHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YWNrc0NvbW1hbmRJbnB1dCxcbiAgTGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQsXG4gIFJvbGxiYWNrU3RhY2tDb21tYW5kSW5wdXQsXG4gIFJvbGxiYWNrU3RhY2tDb21tYW5kT3V0cHV0LFxuICBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgQ3JlYXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0LFxuICBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlU3RhY2tDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdGFja1JlZmFjdG9yQ29tbWFuZElucHV0LFxuICBEZWxldGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZElucHV0LFxuICBEZWxldGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBEZWxldGVTdGFja0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZElucHV0LFxuICBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrRXZlbnRzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrc0NvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVTdGFja3NDb21tYW5kT3V0cHV0LFxuICBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0LFxuICBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dCxcbiAgR2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gIEdldEdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dCxcbiAgR2V0VGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gIEdldFRlbXBsYXRlQ29tbWFuZE91dHB1dCxcbiAgR2V0VGVtcGxhdGVTdW1tYXJ5Q29tbWFuZElucHV0LFxuICBHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kT3V0cHV0LFxuICBMaXN0RXhwb3J0c0NvbW1hbmRJbnB1dCxcbiAgTGlzdEV4cG9ydHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRJbnB1dCxcbiAgTGlzdFJlc291cmNlU2NhblJlbGF0ZWRSZXNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBMaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFJlc291cmNlU2NhbnNDb21tYW5kSW5wdXQsXG4gIExpc3RSZXNvdXJjZVNjYW5zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YWNrUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICBTdGFydFJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCxcbiAgU3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCxcbiAgVXBkYXRlU3RhY2tDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb25Db21tYW5kSW5wdXQsXG4gIFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YWNrU3VtbWFyeSxcbiAgRGVzY3JpYmVTdGFja0RyaWZ0RGV0ZWN0aW9uU3RhdHVzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kT3V0cHV0LFxuICBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZElucHV0LFxuICBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZE91dHB1dCxcbiAgRGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZElucHV0LFxuICBEZXRlY3RTdGFja1Jlc291cmNlRHJpZnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kSW5wdXQsXG4gIEV4ZWN1dGVTdGFja1JlZmFjdG9yQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQsXG4gIENyZWF0ZVN0YWNrUmVmYWN0b3JDb21tYW5kT3V0cHV0LFxuICBFeGVjdXRlU3RhY2tSZWZhY3RvckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlVHlwZUNvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVUeXBlQ29tbWFuZE91dHB1dCxcbiAgR2V0SG9va1Jlc3VsdENvbW1hbmRJbnB1dCxcbiAgR2V0SG9va1Jlc3VsdENvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQge1xuICBwYWdpbmF0ZURlc2NyaWJlRXZlbnRzLFxuXG4gIHBhZ2luYXRlTGlzdFN0YWNrcyxcbiAgQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kLFxuICBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kLFxuICBDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmQsXG4gIENyZWF0ZVN0YWNrQ29tbWFuZCxcbiAgQ3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmQsXG4gIERlbGV0ZUNoYW5nZVNldENvbW1hbmQsXG4gIERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZCxcbiAgRGVsZXRlU3RhY2tDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZCxcbiAgRGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmQsXG4gIERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kLFxuICBEZXNjcmliZVN0YWNrc0NvbW1hbmQsXG4gIEV4ZWN1dGVDaGFuZ2VTZXRDb21tYW5kLFxuICBFeGVjdXRlU3RhY2tSZWZhY3RvckNvbW1hbmQsXG4gIEdldEdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZCxcbiAgR2V0VGVtcGxhdGVDb21tYW5kLFxuICBHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kLFxuICBMaXN0RXhwb3J0c0NvbW1hbmQsXG4gIExpc3RSZXNvdXJjZVNjYW5SZWxhdGVkUmVzb3VyY2VzQ29tbWFuZCxcbiAgTGlzdFJlc291cmNlU2NhblJlc291cmNlc0NvbW1hbmQsXG4gIExpc3RSZXNvdXJjZVNjYW5zQ29tbWFuZCxcbiAgTGlzdFN0YWNrc0NvbW1hbmQsXG4gIHBhZ2luYXRlTGlzdFN0YWNrUmVzb3VyY2VzLFxuICBSb2xsYmFja1N0YWNrQ29tbWFuZCxcbiAgU3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kLFxuICBVcGRhdGVTdGFja0NvbW1hbmQsXG4gIFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmQsXG4gIERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmQsXG4gIERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmQsXG4gIERldGVjdFN0YWNrRHJpZnRDb21tYW5kLFxuICBEZXRlY3RTdGFja1Jlc291cmNlRHJpZnRDb21tYW5kLFxuICB3YWl0VW50aWxTdGFja1JlZmFjdG9yQ3JlYXRlQ29tcGxldGUsXG4gIHdhaXRVbnRpbFN0YWNrUmVmYWN0b3JFeGVjdXRlQ29tcGxldGUsXG4gIERlc2NyaWJlVHlwZUNvbW1hbmQsXG4gIEdldEhvb2tSZXN1bHRDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25FdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbi9kaXN0LXR5cGVzL21vZGVscy9tb2RlbHNfMCc7XG5pbXBvcnQgdHlwZSB7XG4gIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9ncyc7XG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc0NsaWVudCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzJztcbmltcG9ydCB7XG4gIENvZGVCdWlsZENsaWVudCxcbiAgVXBkYXRlUHJvamVjdENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUHJvamVjdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQcm9qZWN0Q29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZGVidWlsZCc7XG5pbXBvcnQge1xuICBEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQXZhaWxhYmlsaXR5Wm9uZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUltYWdlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluc3RhbmNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUm91dGVUYWJsZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN1Ym5ldHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3VibmV0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN1Ym5ldHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVnBjc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZwY3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVnBuR2F0ZXdheXNDb21tYW5kT3V0cHV0LFxuICBFQzJDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lYzInO1xuaW1wb3J0IHR5cGUge1xuICBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZElucHV0LFxuICBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZE91dHB1dCxcbiAgTGlzdEltYWdlc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEltYWdlc0NvbW1hbmRPdXRwdXQsXG4gIFB1dEltYWdlQ29tbWFuZElucHV0LFxuICBQdXRJbWFnZUNvbW1hbmRPdXRwdXQsXG4gIEJhdGNoR2V0SW1hZ2VDb21tYW5kSW5wdXQsXG4gIEJhdGNoR2V0SW1hZ2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZElucHV0LFxuICBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQgYXMgRUNSRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZE91dHB1dCBhcyBFQ1JEZXNjcmliZUltYWdlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRPdXRwdXQsXG4gIEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRJbnB1dCxcbiAgR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dCxcbiAgUHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFB1dEltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjcic7XG5pbXBvcnQge1xuICBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZCxcbiAgQ3JlYXRlUmVwb3NpdG9yeUNvbW1hbmQsXG4gIERlc2NyaWJlSW1hZ2VzQ29tbWFuZCBhcyBFQ1JEZXNjcmliZUltYWdlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZCxcbiAgRUNSQ2xpZW50LFxuICBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kLFxuICBMaXN0SW1hZ2VzQ29tbWFuZCxcbiAgUHV0SW1hZ2VDb21tYW5kLFxuICBQdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEJhdGNoR2V0SW1hZ2VDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWNyJztcbmltcG9ydCB0eXBlIHtcbiAgRGVzY3JpYmVTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgUmVnaXN0ZXJUYXNrRGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgTGlzdENsdXN0ZXJzQ29tbWFuZElucHV0LFxuICBMaXN0Q2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICBSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2VydmljZUNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlU2VydmljZUNvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3MnO1xuaW1wb3J0IHtcbiAgRUNTQ2xpZW50LFxuICBMaXN0Q2x1c3RlcnNDb21tYW5kLFxuICBSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZCxcbiAgVXBkYXRlU2VydmljZUNvbW1hbmQsXG4gIHdhaXRVbnRpbFNlcnZpY2VzU3RhYmxlLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWNzJztcbmltcG9ydCB0eXBlIHtcbiAgTGlzdGVuZXIsXG4gIExvYWRCYWxhbmNlcixcbiAgRGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZUxvYWRCYWxhbmNlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVRhZ3NDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlVGFnc0NvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lbGFzdGljLWxvYWQtYmFsYW5jaW5nLXYyJztcbmltcG9ydCB7XG4gIERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVUYWdzQ29tbWFuZCxcbiAgRWxhc3RpY0xvYWRCYWxhbmNpbmdWMkNsaWVudCxcbiAgcGFnaW5hdGVEZXNjcmliZUxpc3RlbmVycyxcbiAgcGFnaW5hdGVEZXNjcmliZUxvYWRCYWxhbmNlcnMsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lbGFzdGljLWxvYWQtYmFsYW5jaW5nLXYyJztcbmltcG9ydCB7XG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVDb21tYW5kLFxuICB0eXBlIEdldFJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZUNvbW1hbmRPdXRwdXQsXG4gIElBTUNsaWVudCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWlhbSc7XG5pbXBvcnQge1xuICBEZXNjcmliZUtleUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0LFxuICBLTVNDbGllbnQsXG4gIExpc3RBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnO1xuaW1wb3J0IHtcbiAgSW52b2tlQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW52b2tlQ29tbWFuZE91dHB1dCxcbiAgTGFtYmRhQ2xpZW50LFxuICBQdWJsaXNoVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgUHVibGlzaFZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHVibGlzaFZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWRWMixcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWxhbWJkYSc7XG5pbXBvcnQge1xuICBHZXRIb3N0ZWRab25lQ29tbWFuZCxcbiAgdHlwZSBHZXRIb3N0ZWRab25lQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEhvc3RlZFpvbmVDb21tYW5kT3V0cHV0LFxuICBMaXN0SG9zdGVkWm9uZXNCeU5hbWVDb21tYW5kLFxuICB0eXBlIExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SG9zdGVkWm9uZXNCeU5hbWVDb21tYW5kT3V0cHV0LFxuICBMaXN0SG9zdGVkWm9uZXNDb21tYW5kLFxuICB0eXBlIExpc3RIb3N0ZWRab25lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SG9zdGVkWm9uZXNDb21tYW5kT3V0cHV0LFxuICBSb3V0ZTUzQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtcm91dGUtNTMnO1xuaW1wb3J0IHR5cGUge1xuICBEZWxldGVPYmplY3RzQ29tbWFuZElucHV0LFxuICBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQsXG4gIEdldE9iamVjdFRhZ2dpbmdDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdFRhZ2dpbmdDb21tYW5kT3V0cHV0LFxuICBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0LFxuICBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dCxcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0T2JqZWN0Q29tbWFuZElucHV0LFxuICBHZXRPYmplY3RDb21tYW5kT3V0cHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHtcbiAgRGVsZXRlT2JqZWN0c0NvbW1hbmQsXG4gIERlbGV0ZU9iamVjdFRhZ2dpbmdDb21tYW5kLFxuICBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kLFxuICBHZXRPYmplY3RDb21tYW5kLFxuICBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNWMkNvbW1hbmQsXG4gIFB1dE9iamVjdFRhZ2dpbmdDb21tYW5kLFxuICBTM0NsaWVudCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcbmltcG9ydCB7XG4gIEdldFNlY3JldFZhbHVlQ29tbWFuZCxcbiAgdHlwZSBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRPdXRwdXQsXG4gIFNlY3JldHNNYW5hZ2VyQ2xpZW50LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyJztcbmltcG9ydCB0eXBlIHtcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtc2ZuJztcbmltcG9ydCB7XG4gIFNGTkNsaWVudCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNmbic7XG5pbXBvcnQge1xuICBHZXRQYXJhbWV0ZXJDb21tYW5kLFxuICB0eXBlIEdldFBhcmFtZXRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQYXJhbWV0ZXJDb21tYW5kT3V0cHV0LFxuICBTU01DbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zc20nO1xuaW1wb3J0IHsgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kLCBTVFNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3RzJztcbmltcG9ydCB7IFVwbG9hZCB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1zdG9yYWdlJztcbmltcG9ydCB7IGdldEVuZHBvaW50RnJvbUluc3RydWN0aW9ucyB9IGZyb20gJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCc7XG5pbXBvcnQgeyBDb25maWd1cmVkUmV0cnlTdHJhdGVneSB9IGZyb20gJ0BzbWl0aHkvdXRpbC1yZXRyeSc7XG5pbXBvcnQgdHlwZSB7IFdhaXRlclJlc3VsdCB9IGZyb20gJ0BzbWl0aHkvdXRpbC13YWl0ZXInO1xuaW1wb3J0IHsgQWNjb3VudEFjY2Vzc0tleUNhY2hlIH0gZnJvbSAnLi9hY2NvdW50LWNhY2hlJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEhhbmRsZXJTZXR0aW5ncyB9IGZyb20gJy4vYmFzZS1jcmVkZW50aWFscyc7XG5pbXBvcnQgeyBjYWNoZWRBc3luYyB9IGZyb20gJy4vY2FjaGVkJztcbmltcG9ydCB0eXBlIHsgSVNka0xvZ2dlciB9IGZyb20gJy4vc2RrLWxvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IEFjY291bnQgfSBmcm9tICcuL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgeyB0cmFjZU1lbWJlck1ldGhvZHMgfSBmcm9tICcuL3RyYWNpbmcnO1xuaW1wb3J0IHsgZGVmYXVsdENsaVVzZXJBZ2VudCB9IGZyb20gJy4vdXNlci1hZ2VudCc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFMzQ2xpZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJZiBBUElzIGFyZSB1c2VkIHRoYXQgcmVxdWlyZSBNRDUgY2hlY2tzdW1zLlxuICAgKlxuICAgKiBTb21lIFMzIEFQSXMgaW4gU0RLdjIgaGF2ZSBhIGJ1ZyB0aGF0IGFsd2F5cyByZXF1aXJlcyB0aGVtIHRvIHVzZSBhIE1ENSBjaGVja3N1bS5cbiAgICogVGhlc2UgQVBJcyBhcmUgbm90IGdvaW5nIHRvIGJlIHN1cHBvcnRlZCBpbiBhIEZJUFMgZW52aXJvbm1lbnQuXG4gICAqL1xuICBuZWVkc01kNUNoZWNrc3Vtcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBTREsgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2RrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGRlc2NyaXB0aXZlIHN0cmluZ3MgdGhhdCBpbmRpY2F0ZSB3aGVyZSB0aGUgXCJBc3N1bWVSb2xlXCIgY3JlZGVudGlhbHMgYXJlIGNvbWluZyBmcm9tXG4gICAqXG4gICAqIFdpbGwgYmUgcHJpbnRlZCBpbiBhbiBlcnJvciBtZXNzYWdlIHRvIGhlbHAgdXNlcnMgZGlhZ25vc2UgYXV0aCBwcm9ibGVtcy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVDcmVkZW50aWFsc1NvdXJjZURlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vLyBUT0RPOiBzdGlsbCBzb21lIGNsZWFudXAgaGVyZS4gTWFrZSB0aGUgcGFnaW5hdGlvbiBmdW5jdGlvbnMgZG8gYWxsIHRoZSB3b3JrIGhlcmUgaW5zdGVhZCBvZiBpbiBpbmRpdmlkdWFsIHBhY2thZ2VzLlxuLy8gQWxzbyBhZGQgYXN5bmMvYXdhaXQuIERvZXMgdGhhdCBhY3R1YWxseSBtYXR0ZXIgaW4gdGhpcyBjb250ZXh0PyBGaW5kIG91dCBhbmQgdXBkYXRlIGFjY29yZGluZ2x5LlxuXG4vLyBBbHNvIGFkZCBub3RlcyB0byB0aGUgUFIgYWJvdXQgd2h5IHlvdSBpbXBvcnRlZCBldmVyeXRoaW5nIGluZGl2aWR1YWxseSBhbmQgdXNlZCAndHlwZScgc28gcmV2aWV3ZXJzIGRvbid0IGhhdmUgdG8gYXNrLlxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25PcHRpb25zIHtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGNyZWRlbnRpYWxzOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzO1xuICByZXRyeVN0cmF0ZWd5OiBDb25maWd1cmVkUmV0cnlTdHJhdGVneTtcbiAgY3VzdG9tVXNlckFnZW50OiBzdHJpbmc7XG4gIGxvZ2dlcj86IElTZGtMb2dnZXI7XG4gIHMzRGlzYWJsZUJvZHlTaWduaW5nPzogYm9vbGVhbjtcbiAgY29tcHV0ZUNoZWNrc3Vtcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcFN5bmNDbGllbnQge1xuICBnZXRTY2hlbWFDcmVhdGlvblN0YXR1cyhpbnB1dDogR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZE91dHB1dD47XG4gIHN0YXJ0U2NoZW1hQ3JlYXRpb24oaW5wdXQ6IFN0YXJ0U2NoZW1hQ3JlYXRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YXJ0U2NoZW1hQ3JlYXRpb25Db21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlQXBpS2V5KGlucHV0OiBVcGRhdGVBcGlLZXlDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFwaUtleUNvbW1hbmRPdXRwdXQ+O1xuICB1cGRhdGVGdW5jdGlvbihpbnB1dDogVXBkYXRlRnVuY3Rpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dD47XG4gIHVwZGF0ZVJlc29sdmVyKGlucHV0OiBVcGRhdGVSZXNvbHZlckNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlUmVzb2x2ZXJDb21tYW5kT3V0cHV0PjtcbiAgLy8gUGFnaW5hdGlvbiBmdW5jdGlvbnNcbiAgbGlzdEZ1bmN0aW9ucyhpbnB1dDogTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RnVuY3Rpb25Db25maWd1cmF0aW9uW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCZWRyb2NrQWdlbnRDb3JlQ29udHJvbENsaWVudCB7XG4gIGdldEFnZW50UnVudGltZShpbnB1dDogR2V0QWdlbnRSdW50aW1lQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRBZ2VudFJ1bnRpbWVDb21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlQWdlbnRSdW50aW1lKGlucHV0OiBVcGRhdGVBZ2VudFJ1bnRpbWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFnZW50UnVudGltZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZENvbnRyb2xDbGllbnQge1xuICBsaXN0UmVzb3VyY2VzKGlucHV0OiBMaXN0UmVzb3VyY2VzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0UmVzb3VyY2VzQ29tbWFuZE91dHB1dD47XG4gIGdldFJlc291cmNlKGlucHV0OiBHZXRSZXNvdXJjZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0UmVzb3VyY2VDb21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlUmVzb3VyY2UoaW5wdXQ6IFVwZGF0ZVJlc291cmNlQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEZvcm1hdGlvbkNsaWVudCB7XG4gIGNvbnRpbnVlVXBkYXRlUm9sbGJhY2soaW5wdXQ6IENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kSW5wdXQpOiBQcm9taXNlPENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kT3V0cHV0PjtcbiAgY3JlYXRlQ2hhbmdlU2V0KGlucHV0OiBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPENyZWF0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+O1xuICBjcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZShpbnB1dDogQ3JlYXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQpOiBQcm9taXNlPENyZWF0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD47XG4gIGNyZWF0ZVN0YWNrKGlucHV0OiBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlU3RhY2tDb21tYW5kT3V0cHV0PjtcbiAgZGVsZXRlQ2hhbmdlU2V0KGlucHV0OiBEZWxldGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+O1xuICBkZWxldGVHZW5lcmF0ZWRUZW1wbGF0ZShpbnB1dDogRGVsZXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD47XG4gIGRlbGV0ZVN0YWNrKGlucHV0OiBEZWxldGVTdGFja0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlU3RhY2tDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVFdmVudHMoaW5wdXQ6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZUNoYW5nZVNldChpbnB1dDogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGUoXG4gICAgaW5wdXQ6IERlc2NyaWJlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gICk6IFByb21pc2U8RGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVJlc291cmNlU2NhbihpbnB1dDogRGVzY3JpYmVSZXNvdXJjZVNjYW5Db21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1cyhpbnB1dDogRGVzY3JpYmVTdGFja0RyaWZ0RGV0ZWN0aW9uU3RhdHVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVTdGFja3MoaW5wdXQ6IERlc2NyaWJlU3RhY2tzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrc0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHMoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlU3RhY2tSZXNvdXJjZXMoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kT3V0cHV0PjtcbiAgZGV0ZWN0U3RhY2tEcmlmdChpbnB1dDogRGV0ZWN0U3RhY2tEcmlmdENvbW1hbmRJbnB1dCk6IFByb21pc2U8RGV0ZWN0U3RhY2tEcmlmdENvbW1hbmRPdXRwdXQ+O1xuICBkZXRlY3RTdGFja1Jlc291cmNlRHJpZnQoaW5wdXQ6IERldGVjdFN0YWNrUmVzb3VyY2VEcmlmdENvbW1hbmRJbnB1dCk6IFByb21pc2U8RGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlVHlwZShpbnB1dDogRGVzY3JpYmVUeXBlQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVR5cGVDb21tYW5kT3V0cHV0PjtcbiAgZXhlY3V0ZUNoYW5nZVNldChpbnB1dDogRXhlY3V0ZUNoYW5nZVNldENvbW1hbmRJbnB1dCk6IFByb21pc2U8RXhlY3V0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+O1xuICBnZXRHZW5lcmF0ZWRUZW1wbGF0ZShpbnB1dDogR2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD47XG4gIGdldFRlbXBsYXRlKGlucHV0OiBHZXRUZW1wbGF0ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0VGVtcGxhdGVDb21tYW5kT3V0cHV0PjtcbiAgZ2V0VGVtcGxhdGVTdW1tYXJ5KGlucHV0OiBHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFRlbXBsYXRlU3VtbWFyeUNvbW1hbmRPdXRwdXQ+O1xuICBsaXN0RXhwb3J0cyhpbnB1dDogTGlzdEV4cG9ydHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RFeHBvcnRzQ29tbWFuZE91dHB1dD47XG4gIGxpc3RSZXNvdXJjZVNjYW5SZWxhdGVkUmVzb3VyY2VzKFxuICAgIGlucHV0OiBMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRPdXRwdXQ+O1xuICBsaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzKFxuICAgIGlucHV0OiBMaXN0UmVzb3VyY2VTY2FuUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICApOiBQcm9taXNlPExpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXNDb21tYW5kT3V0cHV0PjtcbiAgbGlzdFJlc291cmNlU2NhbnMoaW5wdXQ/OiBMaXN0UmVzb3VyY2VTY2Fuc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdFJlc291cmNlU2NhbnNDb21tYW5kT3V0cHV0PjtcbiAgbGlzdFN0YWNrcyhpbnB1dDogTGlzdFN0YWNrc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQ+O1xuICByb2xsYmFja1N0YWNrKGlucHV0OiBSb2xsYmFja1N0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxSb2xsYmFja1N0YWNrQ29tbWFuZE91dHB1dD47XG4gIHN0YXJ0UmVzb3VyY2VTY2FuKGlucHV0OiBTdGFydFJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlU3RhY2soaW5wdXQ6IFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVTdGFja0NvbW1hbmRPdXRwdXQ+O1xuICB1cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb24oXG4gICAgaW5wdXQ6IFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxVcGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb25Db21tYW5kT3V0cHV0PjtcbiAgLy8gUGFnaW5hdGlvbiBmdW5jdGlvbnNcbiAgZGVzY3JpYmVTdGFja0V2ZW50cyhpbnB1dDogRGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRPdXRwdXQ+O1xuICBsaXN0U3RhY2tSZXNvdXJjZXMoaW5wdXQ6IExpc3RTdGFja1Jlc291cmNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhY2tSZXNvdXJjZVN1bW1hcnlbXT47XG4gIHBhZ2luYXRlZExpc3RTdGFja3MoaW5wdXQ6IExpc3RTdGFja3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YWNrU3VtbWFyeVtdPjtcbiAgcGFnaW5hdGVkRGVzY3JpYmVFdmVudHMoaW5wdXQ6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxPcGVyYXRpb25FdmVudFtdPjtcbiAgY3JlYXRlU3RhY2tSZWZhY3RvcihpbnB1dDogQ3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmRPdXRwdXQ+O1xuICBleGVjdXRlU3RhY2tSZWZhY3RvcihpbnB1dDogRXhlY3V0ZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQpOiBQcm9taXNlPEV4ZWN1dGVTdGFja1JlZmFjdG9yQ29tbWFuZE91dHB1dD47XG4gIHdhaXRVbnRpbFN0YWNrUmVmYWN0b3JDcmVhdGVDb21wbGV0ZShpbnB1dDogRGVzY3JpYmVTdGFja1JlZmFjdG9yQ29tbWFuZElucHV0KTogUHJvbWlzZTxXYWl0ZXJSZXN1bHQ+O1xuICB3YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlKGlucHV0OiBEZXNjcmliZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQpOiBQcm9taXNlPFdhaXRlclJlc3VsdD47XG4gIGdldEhvb2tSZXN1bHQoaW5wdXQ6IEdldEhvb2tSZXN1bHRDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEhvb2tSZXN1bHRDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2xvdWRXYXRjaExvZ3NDbGllbnQge1xuICBkZXNjcmliZUxvZ0dyb3VwcyhpbnB1dDogRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dD47XG4gIGZpbHRlckxvZ0V2ZW50cyhpbnB1dDogRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxGaWx0ZXJMb2dFdmVudHNDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29kZUJ1aWxkQ2xpZW50IHtcbiAgdXBkYXRlUHJvamVjdChpbnB1dDogVXBkYXRlUHJvamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlUHJvamVjdENvbW1hbmRPdXRwdXQ+O1xufVxuZXhwb3J0IGludGVyZmFjZSBJRUMyQ2xpZW50IHtcbiAgZGVzY3JpYmVBdmFpbGFiaWxpdHlab25lcyhcbiAgICBpbnB1dDogRGVzY3JpYmVBdmFpbGFiaWxpdHlab25lc0NvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVJbnN0YW5jZXMoaW5wdXQ6IERlc2NyaWJlSW5zdGFuY2VzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUluc3RhbmNlc0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVJvdXRlVGFibGVzKGlucHV0OiBEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVJvdXRlVGFibGVzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlU2VjdXJpdHlHcm91cHMoaW5wdXQ6IERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVTdWJuZXRzKGlucHV0OiBEZXNjcmliZVN1Ym5ldHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3VibmV0c0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXMoXG4gICAgaW5wdXQ6IERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxEZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVWcGNzKGlucHV0OiBEZXNjcmliZVZwY3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVnBjc0NvbW1hbmRPdXRwdXQ+O1xuICBkZXNjcmliZVZwbkdhdGV3YXlzKGlucHV0OiBEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVZwbkdhdGV3YXlzQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVDUkNsaWVudCB7XG4gIGJhdGNoRGVsZXRlSW1hZ2UoaW5wdXQ6IEJhdGNoRGVsZXRlSW1hZ2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPEJhdGNoRGVsZXRlSW1hZ2VDb21tYW5kT3V0cHV0PjtcbiAgYmF0Y2hHZXRJbWFnZShpbnB1dDogQmF0Y2hHZXRJbWFnZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8QmF0Y2hHZXRJbWFnZUNvbW1hbmRPdXRwdXQ+O1xuICBjcmVhdGVSZXBvc2l0b3J5KGlucHV0OiBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlSW1hZ2VzKGlucHV0OiBFQ1JEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RUNSRGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVSZXBvc2l0b3JpZXMoaW5wdXQ6IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVJlcG9zaXRvcmllc0NvbW1hbmRPdXRwdXQ+O1xuICBnZXRBdXRob3JpemF0aW9uVG9rZW4oaW5wdXQ6IEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD47XG4gIGxpc3RJbWFnZXMoaW5wdXQ6IExpc3RJbWFnZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RJbWFnZXNDb21tYW5kT3V0cHV0PjtcbiAgcHV0SW1hZ2UoaW5wdXQ6IFB1dEltYWdlQ29tbWFuZElucHV0KTogUHJvbWlzZTxQdXRJbWFnZUNvbW1hbmRPdXRwdXQ+O1xuICBwdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbihcbiAgICBpbnB1dDogUHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICk6IFByb21pc2U8UHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRUNTQ2xpZW50IHtcbiAgbGlzdENsdXN0ZXJzKGlucHV0OiBMaXN0Q2x1c3RlcnNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RDbHVzdGVyc0NvbW1hbmRPdXRwdXQ+O1xuICByZWdpc3RlclRhc2tEZWZpbml0aW9uKGlucHV0OiBSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxSZWdpc3RlclRhc2tEZWZpbml0aW9uQ29tbWFuZE91dHB1dD47XG4gIHVwZGF0ZVNlcnZpY2UoaW5wdXQ6IFVwZGF0ZVNlcnZpY2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZVNlcnZpY2VDb21tYW5kT3V0cHV0PjtcbiAgLy8gV2FpdGVyc1xuICB3YWl0VW50aWxTZXJ2aWNlc1N0YWJsZShpbnB1dDogRGVzY3JpYmVTZXJ2aWNlc0NvbW1hbmRJbnB1dCwgdGltZW91dFNlY29uZHM/OiBudW1iZXIpOiBQcm9taXNlPFdhaXRlclJlc3VsdD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVsYXN0aWNMb2FkQmFsYW5jaW5nVjJDbGllbnQge1xuICBkZXNjcmliZUxpc3RlbmVycyhpbnB1dDogRGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZE91dHB1dD47XG4gIGRlc2NyaWJlTG9hZEJhbGFuY2VycyhpbnB1dDogRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUxvYWRCYWxhbmNlcnNDb21tYW5kT3V0cHV0PjtcbiAgZGVzY3JpYmVUYWdzKGlucHV0OiBEZXNjcmliZVRhZ3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVGFnc0NvbW1hbmRPdXRwdXQ+O1xuICAvLyBQYWdpbmF0aW9uXG4gIHBhZ2luYXRlRGVzY3JpYmVMaXN0ZW5lcnMoaW5wdXQ6IERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0ZW5lcltdPjtcbiAgcGFnaW5hdGVEZXNjcmliZUxvYWRCYWxhbmNlcnMoaW5wdXQ6IERlc2NyaWJlTG9hZEJhbGFuY2Vyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TG9hZEJhbGFuY2VyW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJQU1DbGllbnQge1xuICBjcmVhdGVQb2xpY3koaW5wdXQ6IENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dD47XG4gIGdldFBvbGljeShpbnB1dDogR2V0UG9saWN5Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRQb2xpY3lDb21tYW5kT3V0cHV0PjtcbiAgZ2V0Um9sZShpbnB1dDogR2V0Um9sZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0Um9sZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElLTVNDbGllbnQge1xuICBkZXNjcmliZUtleShpbnB1dDogRGVzY3JpYmVLZXlDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlS2V5Q29tbWFuZE91dHB1dD47XG4gIGxpc3RBbGlhc2VzKGlucHV0OiBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFtYmRhQ2xpZW50IHtcbiAgaW52b2tlQ29tbWFuZChpbnB1dDogSW52b2tlQ29tbWFuZElucHV0KTogUHJvbWlzZTxJbnZva2VDb21tYW5kT3V0cHV0PjtcbiAgcHVibGlzaFZlcnNpb24oaW5wdXQ6IFB1Ymxpc2hWZXJzaW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxQdWJsaXNoVmVyc2lvbkNvbW1hbmRPdXRwdXQ+O1xuICB1cGRhdGVBbGlhcyhpbnB1dDogVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dD47XG4gIHVwZGF0ZUZ1bmN0aW9uQ29kZShpbnB1dDogVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kT3V0cHV0PjtcbiAgdXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uKFxuICAgIGlucHV0OiBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICk6IFByb21pc2U8VXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dD47XG4gIC8vIFdhaXRlcnNcbiAgd2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkKG1pbkRlbGF5U2Vjb25kczogbnVtYmVyLCBtYXhEZWxheVNlY29uZHM6IG51bWJlciwgaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8V2FpdGVyUmVzdWx0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUm91dGU1M0NsaWVudCB7XG4gIGdldEhvc3RlZFpvbmUoaW5wdXQ6IEdldEhvc3RlZFpvbmVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEhvc3RlZFpvbmVDb21tYW5kT3V0cHV0PjtcbiAgbGlzdEhvc3RlZFpvbmVzKGlucHV0OiBMaXN0SG9zdGVkWm9uZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RIb3N0ZWRab25lc0NvbW1hbmRPdXRwdXQ+O1xuICBsaXN0SG9zdGVkWm9uZXNCeU5hbWUoaW5wdXQ6IExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEhvc3RlZFpvbmVzQnlOYW1lQ29tbWFuZE91dHB1dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVMzQ2xpZW50IHtcbiAgZGVsZXRlT2JqZWN0cyhpbnB1dDogRGVsZXRlT2JqZWN0c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlT2JqZWN0c0NvbW1hbmRPdXRwdXQ+O1xuICBkZWxldGVPYmplY3RUYWdnaW5nKGlucHV0OiBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dD47XG4gIGdldEJ1Y2tldEVuY3J5cHRpb24oaW5wdXQ6IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0PjtcbiAgZ2V0QnVja2V0TG9jYXRpb24oaW5wdXQ6IEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRPdXRwdXQ+O1xuICBnZXRPYmplY3QoaW5wdXQ6IEdldE9iamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0T2JqZWN0Q29tbWFuZE91dHB1dD47XG4gIGdldE9iamVjdFRhZ2dpbmcoaW5wdXQ6IEdldE9iamVjdFRhZ2dpbmdDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldE9iamVjdFRhZ2dpbmdDb21tYW5kT3V0cHV0PjtcbiAgbGlzdE9iamVjdHNWMihpbnB1dDogTGlzdE9iamVjdHNWMkNvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdE9iamVjdHNWMkNvbW1hbmRPdXRwdXQ+O1xuICBwdXRPYmplY3RUYWdnaW5nKGlucHV0OiBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0KTogUHJvbWlzZTxQdXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dD47XG4gIHVwbG9hZChpbnB1dDogUHV0T2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWNyZXRzTWFuYWdlckNsaWVudCB7XG4gIGdldFNlY3JldFZhbHVlKGlucHV0OiBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU1NNQ2xpZW50IHtcbiAgZ2V0UGFyYW1ldGVyKGlucHV0OiBHZXRQYXJhbWV0ZXJDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFBhcmFtZXRlckNvbW1hbmRPdXRwdXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGVwRnVuY3Rpb25zQ2xpZW50IHtcbiAgdXBkYXRlU3RhdGVNYWNoaW5lKGlucHV0OiBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQ+O1xufVxuXG4vKipcbiAqIEJhc2UgZnVuY3Rpb25hbGl0eSBvZiBTREsgd2l0aG91dCBjcmVkZW50aWFsIGZldGNoaW5nXG4gKi9cbkB0cmFjZU1lbWJlck1ldGhvZHNcbmV4cG9ydCBjbGFzcyBTREsge1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFJlZ2lvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IENvbmZpZ3VyYXRpb25PcHRpb25zO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWNjb3VudENhY2hlO1xuXG4gIC8qKlxuICAgKiBTVFMgaXMgdXNlZCB0byBjaGVjayBjcmVkZW50aWFsIHZhbGlkaXR5LCBkb24ndCBkbyB0b28gbWFueSByZXRyaWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdHNSZXRyeVN0cmF0ZWd5ID0gbmV3IENvbmZpZ3VyZWRSZXRyeVN0cmF0ZWd5KDMsIChhdHRlbXB0KSA9PiAxMDAgKiAoMiAqKiBhdHRlbXB0KSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgd2UgaGF2ZSBwcm9vZiB0aGF0IHRoZSBjcmVkZW50aWFscyBoYXZlIG5vdCBleHBpcmVkXG4gICAqXG4gICAqIFdlIG5lZWQgdG8gZG8gc29tZSBtYW51YWwgcGx1bWJpbmcgYXJvdW5kIHRoaXMgYmVjYXVzZSB0aGUgSlMgU0RLdjIgdHJlYXRzIGBFeHBpcmVkVG9rZW5gXG4gICAqIGFzIHJldHJpYWJsZSBhbmQgd2UgaGF2ZSBoZWZ0eSByZXRyaWVzIG9uIENGTiBjYWxscyBtYWtpbmcgdGhlIENMSSBoYW5nIGZvciBhIGdvb2QgMTUgbWludXRlc1xuICAgKiBpZiB0aGUgY3JlZGVudGlhbHMgaGF2ZSBleHBpcmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlZGVudGlhbHNWYWxpZGF0ZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byBjcmVhdGUgZGVidWcgbWVzc2FnZXNcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWc6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZWRQcm92aWRlcjogU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzLFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBsb2dnZXI/OiBJU2RrTG9nZ2VyLFxuICApIHtcbiAgICBjb25zdCBkZWJ1Z0ZuID0gYXN5bmMgKG1zZzogc3RyaW5nKSA9PiBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhtc2cpO1xuICAgIHRoaXMuYWNjb3VudENhY2hlID0gbmV3IEFjY291bnRBY2Nlc3NLZXlDYWNoZShBY2NvdW50QWNjZXNzS2V5Q2FjaGUuREVGQVVMVF9QQVRILCBkZWJ1Z0ZuKTtcbiAgICB0aGlzLmRlYnVnID0gZGVidWdGbjtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIHJlZ2lvbixcbiAgICAgIGNyZWRlbnRpYWxzOiBjcmVkUHJvdmlkZXIsXG4gICAgICByZXF1ZXN0SGFuZGxlcixcbiAgICAgIHJldHJ5U3RyYXRlZ3k6IG5ldyBDb25maWd1cmVkUmV0cnlTdHJhdGVneSg3LCAoYXR0ZW1wdCkgPT4gMzAwICogKDIgKiogYXR0ZW1wdCkpLFxuICAgICAgY3VzdG9tVXNlckFnZW50OiBkZWZhdWx0Q2xpVXNlckFnZW50KCksXG4gICAgICBsb2dnZXI6IGxvZ2dlciA/IG1ha2VTZGtMb2dnZXJTYWZlQnlCaW5kaW5nVGhpcyhsb2dnZXIpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgdGhpcy5jdXJyZW50UmVnaW9uID0gcmVnaW9uO1xuICB9XG5cbiAgcHVibGljIGFwcGVuZEN1c3RvbVVzZXJBZ2VudCh1c2VyQWdlbnREYXRhPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1c2VyQWdlbnREYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudEN1c3RvbVVzZXJBZ2VudCA9IHRoaXMuY29uZmlnLmN1c3RvbVVzZXJBZ2VudDtcbiAgICB0aGlzLmNvbmZpZy5jdXN0b21Vc2VyQWdlbnQgPSBjdXJyZW50Q3VzdG9tVXNlckFnZW50ID8gYCR7Y3VycmVudEN1c3RvbVVzZXJBZ2VudH0gJHt1c2VyQWdlbnREYXRhfWAgOiB1c2VyQWdlbnREYXRhO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUN1c3RvbVVzZXJBZ2VudCh1c2VyQWdlbnREYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZy5jdXN0b21Vc2VyQWdlbnQgPSB0aGlzLmNvbmZpZy5jdXN0b21Vc2VyQWdlbnQ/LnJlcGxhY2UodXNlckFnZW50RGF0YSwgJycpO1xuICB9XG5cbiAgcHVibGljIGFwcHN5bmMoKTogSUFwcFN5bmNDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcHBTeW5jQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U2NoZW1hQ3JlYXRpb25TdGF0dXM6IChcbiAgICAgICAgaW5wdXQ6IEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBHZXRTY2hlbWFDcmVhdGlvblN0YXR1c0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHN0YXJ0U2NoZW1hQ3JlYXRpb246IChpbnB1dDogU3RhcnRTY2hlbWFDcmVhdGlvbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhcnRTY2hlbWFDcmVhdGlvbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBTdGFydFNjaGVtYUNyZWF0aW9uQ29tbWFuZChpbnB1dCkpLFxuICAgICAgdXBkYXRlQXBpS2V5OiAoaW5wdXQ6IFVwZGF0ZUFwaUtleUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlQXBpS2V5Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZUFwaUtleUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZUZ1bmN0aW9uOiAoaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVGdW5jdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZVJlc29sdmVyOiAoaW5wdXQ6IFVwZGF0ZVJlc29sdmVyQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVSZXNvbHZlckNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVSZXNvbHZlckNvbW1hbmQoaW5wdXQpKSxcblxuICAgICAgLy8gUGFnaW5hdGlvbiBGdW5jdGlvbnNcbiAgICAgIGxpc3RGdW5jdGlvbnM6IGFzeW5jIChpbnB1dDogTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RnVuY3Rpb25Db25maWd1cmF0aW9uW10+ID0+IHtcbiAgICAgICAgY29uc3QgZnVuY3Rpb25zID0gQXJyYXk8RnVuY3Rpb25Db25maWd1cmF0aW9uPigpO1xuICAgICAgICBjb25zdCBwYWdpbmF0b3IgPSBwYWdpbmF0ZUxpc3RGdW5jdGlvbnMoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgZnVuY3Rpb25zLnB1c2goLi4uKHBhZ2UuZnVuY3Rpb25zIHx8IFtdKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucztcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBiZWRyb2NrQWdlbnRDb3JlQ29udHJvbCgpOiBJQmVkcm9ja0FnZW50Q29yZUNvbnRyb2xDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBCZWRyb2NrQWdlbnRDb3JlQ29udHJvbENsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldEFnZW50UnVudGltZTogKGlucHV0OiBHZXRBZ2VudFJ1bnRpbWVDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEFnZW50UnVudGltZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRBZ2VudFJ1bnRpbWVDb21tYW5kKGlucHV0KSksXG4gICAgICB1cGRhdGVBZ2VudFJ1bnRpbWU6IChpbnB1dDogVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVBZ2VudFJ1bnRpbWVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgVXBkYXRlQWdlbnRSdW50aW1lQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2xvdWRDb250cm9sKCk6IElDbG91ZENvbnRyb2xDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbG91ZENvbnRyb2xDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBsaXN0UmVzb3VyY2VzOiAoaW5wdXQ6IExpc3RSZXNvdXJjZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RSZXNvdXJjZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdFJlc291cmNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldFJlc291cmNlOiAoaW5wdXQ6IEdldFJlc291cmNlQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRSZXNvdXJjZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZVJlc291cmNlOiAoaW5wdXQ6IFVwZGF0ZVJlc291cmNlQ29tbWFuZElucHV0KTogUHJvbWlzZTxVcGRhdGVSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVSZXNvdXJjZUNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGNsb3VkRm9ybWF0aW9uKCk6IElDbG91ZEZvcm1hdGlvbkNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsb3VkRm9ybWF0aW9uQ2xpZW50KHtcbiAgICAgIC4uLnRoaXMuY29uZmlnLFxuICAgICAgcmV0cnlTdHJhdGVneTogbmV3IENvbmZpZ3VyZWRSZXRyeVN0cmF0ZWd5KDExLCAoYXR0ZW1wdDogbnVtYmVyKSA9PiAxMDAwICogKDIgKiogYXR0ZW1wdCkpLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBjb250aW51ZVVwZGF0ZVJvbGxiYWNrOiBhc3luYyAoXG4gICAgICAgIGlucHV0OiBDb250aW51ZVVwZGF0ZVJvbGxiYWNrQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxDb250aW51ZVVwZGF0ZVJvbGxiYWNrQ29tbWFuZE91dHB1dD4gPT4gY2xpZW50LnNlbmQobmV3IENvbnRpbnVlVXBkYXRlUm9sbGJhY2tDb21tYW5kKGlucHV0KSksXG4gICAgICBjcmVhdGVDaGFuZ2VTZXQ6IChpbnB1dDogQ3JlYXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgQ3JlYXRlQ2hhbmdlU2V0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgY3JlYXRlR2VuZXJhdGVkVGVtcGxhdGU6IChcbiAgICAgICAgaW5wdXQ6IENyZWF0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBDcmVhdGVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGNyZWF0ZVN0YWNrOiAoaW5wdXQ6IENyZWF0ZVN0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVTdGFja0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBDcmVhdGVTdGFja0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlbGV0ZUNoYW5nZVNldDogKGlucHV0OiBEZWxldGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZWxldGVDaGFuZ2VTZXRDb21tYW5kKGlucHV0KSksXG4gICAgICBkZWxldGVHZW5lcmF0ZWRUZW1wbGF0ZTogKFxuICAgICAgICBpbnB1dDogRGVsZXRlR2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZE91dHB1dD4gPT4gY2xpZW50LnNlbmQobmV3IERlbGV0ZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVsZXRlU3RhY2s6IChpbnB1dDogRGVsZXRlU3RhY2tDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZVN0YWNrQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlbGV0ZVN0YWNrQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGV0ZWN0U3RhY2tEcmlmdDogKGlucHV0OiBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZElucHV0KTogUHJvbWlzZTxEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERldGVjdFN0YWNrRHJpZnRDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXRlY3RTdGFja1Jlc291cmNlRHJpZnQ6IChpbnB1dDogRGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZElucHV0KTogUHJvbWlzZTxEZXRlY3RTdGFja1Jlc291cmNlRHJpZnRDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGV0ZWN0U3RhY2tSZXNvdXJjZURyaWZ0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVFdmVudHM6IChpbnB1dDogRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlRXZlbnRzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVDaGFuZ2VTZXQ6IChpbnB1dDogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZTogKFxuICAgICAgICBpbnB1dDogRGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8RGVzY3JpYmVHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUdlbmVyYXRlZFRlbXBsYXRlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVSZXNvdXJjZVNjYW46IChpbnB1dDogRGVzY3JpYmVSZXNvdXJjZVNjYW5Db21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVzb3VyY2VTY2FuQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVTdGFja0RyaWZ0RGV0ZWN0aW9uU3RhdHVzOiAoaW5wdXQ6IERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmRJbnB1dCk6XG4gICAgICBQcm9taXNlPERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHM6IChpbnB1dDogRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVTdGFja3M6IChpbnB1dDogRGVzY3JpYmVTdGFja3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3RhY2tzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVTdGFja1Jlc291cmNlczogKGlucHV0OiBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVR5cGU6IChpbnB1dDogRGVzY3JpYmVUeXBlQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZVR5cGVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVUeXBlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZXhlY3V0ZUNoYW5nZVNldDogKGlucHV0OiBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0KTogUHJvbWlzZTxFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEV4ZWN1dGVDaGFuZ2VTZXRDb21tYW5kKGlucHV0KSksXG4gICAgICBnZXRHZW5lcmF0ZWRUZW1wbGF0ZTogKGlucHV0OiBHZXRHZW5lcmF0ZWRUZW1wbGF0ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0R2VuZXJhdGVkVGVtcGxhdGVDb21tYW5kKGlucHV0KSksXG4gICAgICBnZXRUZW1wbGF0ZTogKGlucHV0OiBHZXRUZW1wbGF0ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0VGVtcGxhdGVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0VGVtcGxhdGVDb21tYW5kKGlucHV0KSksXG4gICAgICBnZXRUZW1wbGF0ZVN1bW1hcnk6IChpbnB1dDogR2V0VGVtcGxhdGVTdW1tYXJ5Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRUZW1wbGF0ZVN1bW1hcnlDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0VGVtcGxhdGVTdW1tYXJ5Q29tbWFuZChpbnB1dCkpLFxuICAgICAgbGlzdEV4cG9ydHM6IChpbnB1dDogTGlzdEV4cG9ydHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RFeHBvcnRzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IExpc3RFeHBvcnRzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgbGlzdFJlc291cmNlU2NhblJlbGF0ZWRSZXNvdXJjZXM6IChcbiAgICAgICAgaW5wdXQ6IExpc3RSZXNvdXJjZVNjYW5SZWxhdGVkUmVzb3VyY2VzQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0UmVzb3VyY2VTY2FuUmVsYXRlZFJlc291cmNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXM6IChcbiAgICAgICAgaW5wdXQ6IExpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPExpc3RSZXNvdXJjZVNjYW5SZXNvdXJjZXNDb21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgTGlzdFJlc291cmNlU2NhblJlc291cmNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RSZXNvdXJjZVNjYW5zOiAoaW5wdXQ6IExpc3RSZXNvdXJjZVNjYW5zQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0UmVzb3VyY2VTY2Fuc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0UmVzb3VyY2VTY2Fuc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RTdGFja3M6IChpbnB1dDogTGlzdFN0YWNrc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdFN0YWNrc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0U3RhY2tzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcm9sbGJhY2tTdGFjazogKGlucHV0OiBSb2xsYmFja1N0YWNrQ29tbWFuZElucHV0KTogUHJvbWlzZTxSb2xsYmFja1N0YWNrQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFJvbGxiYWNrU3RhY2tDb21tYW5kKGlucHV0KSksXG4gICAgICBzdGFydFJlc291cmNlU2NhbjogKGlucHV0OiBTdGFydFJlc291cmNlU2NhbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8U3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgU3RhcnRSZXNvdXJjZVNjYW5Db21tYW5kKGlucHV0KSksXG4gICAgICB1cGRhdGVTdGFjazogKGlucHV0OiBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlU3RhY2tDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgVXBkYXRlU3RhY2tDb21tYW5kKGlucHV0KSksXG4gICAgICB1cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb246IChcbiAgICAgICAgaW5wdXQ6IFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8VXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlU3RhY2tFdmVudHM6IChpbnB1dDogRGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVTdGFja0V2ZW50c0NvbW1hbmRPdXRwdXQ+ID0+IHtcbiAgICAgICAgcmV0dXJuIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN0YWNrRXZlbnRzQ29tbWFuZChpbnB1dCkpO1xuICAgICAgfSxcbiAgICAgIGxpc3RTdGFja1Jlc291cmNlczogYXN5bmMgKGlucHV0OiBMaXN0U3RhY2tSZXNvdXJjZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YWNrUmVzb3VyY2VTdW1tYXJ5W10+ID0+IHtcbiAgICAgICAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBBcnJheTxTdGFja1Jlc291cmNlU3VtbWFyeT4oKTtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yID0gcGFnaW5hdGVMaXN0U3RhY2tSZXNvdXJjZXMoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgc3RhY2tSZXNvdXJjZXMucHVzaCguLi4ocGFnZT8uU3RhY2tSZXNvdXJjZVN1bW1hcmllcyB8fCBbXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGFja1Jlc291cmNlcztcbiAgICAgIH0sXG4gICAgICBwYWdpbmF0ZWRMaXN0U3RhY2tzOiBhc3luYyAoaW5wdXQ6IExpc3RTdGFja3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPFN0YWNrU3VtbWFyeVtdPiA9PiB7XG4gICAgICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gQXJyYXk8U3RhY2tTdW1tYXJ5PigpO1xuICAgICAgICBjb25zdCBwYWdpbmF0b3IgPSBwYWdpbmF0ZUxpc3RTdGFja3MoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgc3RhY2tSZXNvdXJjZXMucHVzaCguLi4ocGFnZT8uU3RhY2tTdW1tYXJpZXMgfHwgW10pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RhY2tSZXNvdXJjZXM7XG4gICAgICB9LFxuICAgICAgcGFnaW5hdGVkRGVzY3JpYmVFdmVudHM6IGFzeW5jIChpbnB1dDogRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPE9wZXJhdGlvbkV2ZW50W10+ID0+IHtcbiAgICAgICAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBBcnJheTxPcGVyYXRpb25FdmVudD4oKTtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yID0gcGFnaW5hdGVEZXNjcmliZUV2ZW50cyh7IGNsaWVudCB9LCBpbnB1dCk7XG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgcGFnZSBvZiBwYWdpbmF0b3IpIHtcbiAgICAgICAgICBzdGFja1Jlc291cmNlcy5wdXNoKC4uLihwYWdlLk9wZXJhdGlvbkV2ZW50cyB8fCBbXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGFja1Jlc291cmNlcztcbiAgICAgIH0sXG4gICAgICBjcmVhdGVTdGFja1JlZmFjdG9yOiAoaW5wdXQ6IENyZWF0ZVN0YWNrUmVmYWN0b3JDb21tYW5kSW5wdXQpOiBQcm9taXNlPENyZWF0ZVN0YWNrUmVmYWN0b3JDb21tYW5kT3V0cHV0PiA9PiB7XG4gICAgICAgIHJldHVybiBjbGllbnQuc2VuZChuZXcgQ3JlYXRlU3RhY2tSZWZhY3RvckNvbW1hbmQoaW5wdXQpKTtcbiAgICAgIH0sXG4gICAgICBleGVjdXRlU3RhY2tSZWZhY3RvcjogKGlucHV0OiBFeGVjdXRlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8RXhlY3V0ZVN0YWNrUmVmYWN0b3JDb21tYW5kT3V0cHV0PiA9PiB7XG4gICAgICAgIHJldHVybiBjbGllbnQuc2VuZChuZXcgRXhlY3V0ZVN0YWNrUmVmYWN0b3JDb21tYW5kKGlucHV0KSk7XG4gICAgICB9LFxuICAgICAgd2FpdFVudGlsU3RhY2tSZWZhY3RvckNyZWF0ZUNvbXBsZXRlOiAoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8V2FpdGVyUmVzdWx0PiA9PiB7XG4gICAgICAgIHJldHVybiB3YWl0VW50aWxTdGFja1JlZmFjdG9yQ3JlYXRlQ29tcGxldGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgbWF4V2FpdFRpbWU6IDYwMCxcbiAgICAgICAgICAgIG1pbkRlbGF5OiA2LFxuICAgICAgICAgICAgbWF4RGVsYXk6IDYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB3YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlOiAoaW5wdXQ6IERlc2NyaWJlU3RhY2tSZWZhY3RvckNvbW1hbmRJbnB1dCk6IFByb21pc2U8V2FpdGVyUmVzdWx0PiA9PiB7XG4gICAgICAgIHJldHVybiB3YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICAgIG1heFdhaXRUaW1lOiA2MDAsXG4gICAgICAgICAgICBtaW5EZWxheTogNixcbiAgICAgICAgICAgIG1heERlbGF5OiA2LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgZ2V0SG9va1Jlc3VsdDogKGlucHV0OiBHZXRIb29rUmVzdWx0Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRIb29rUmVzdWx0Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEhvb2tSZXN1bHRDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjbG91ZFdhdGNoTG9ncygpOiBJQ2xvdWRXYXRjaExvZ3NDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbG91ZFdhdGNoTG9nc0NsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc2NyaWJlTG9nR3JvdXBzOiAoaW5wdXQ6IERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGZpbHRlckxvZ0V2ZW50czogKGlucHV0OiBGaWx0ZXJMb2dFdmVudHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBGaWx0ZXJMb2dFdmVudHNDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjb2RlQnVpbGQoKTogSUNvZGVCdWlsZENsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENvZGVCdWlsZENsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZVByb2plY3Q6IChpbnB1dDogVXBkYXRlUHJvamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlUHJvamVjdENvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVQcm9qZWN0Q29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZWMyKCk6IElFQzJDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBFQzJDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzOiAoXG4gICAgICAgIGlucHV0OiBEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzQ29tbWFuZE91dHB1dD4gPT4gY2xpZW50LnNlbmQobmV3IERlc2NyaWJlQXZhaWxhYmlsaXR5Wm9uZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZUltYWdlczogKGlucHV0OiBEZXNjcmliZUltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbWFnZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbWFnZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZUluc3RhbmNlczogKGlucHV0OiBEZXNjcmliZUluc3RhbmNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVJbnN0YW5jZXNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVJvdXRlVGFibGVzOiAoaW5wdXQ6IERlc2NyaWJlUm91dGVUYWJsZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUm91dGVUYWJsZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVSb3V0ZVRhYmxlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlU2VjdXJpdHlHcm91cHM6IChcbiAgICAgICAgaW5wdXQ6IERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPERlc2NyaWJlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVTZWN1cml0eUdyb3Vwc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlU3VibmV0czogKGlucHV0OiBEZXNjcmliZVN1Ym5ldHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlU3VibmV0c0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN1Ym5ldHNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVZwY0VuZHBvaW50U2VydmljZXM6IChcbiAgICAgICAgaW5wdXQ6IERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8RGVzY3JpYmVWcGNFbmRwb2ludFNlcnZpY2VzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGRlc2NyaWJlVnBjczogKGlucHV0OiBEZXNjcmliZVZwY3NDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVnBjc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVZwY3NDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZVZwbkdhdGV3YXlzOiAoaW5wdXQ6IERlc2NyaWJlVnBuR2F0ZXdheXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlVnBuR2F0ZXdheXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVWcG5HYXRld2F5c0NvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGVjcigpOiBJRUNSQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgRUNSQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgYmF0Y2hEZWxldGVJbWFnZTogKGlucHV0OiBCYXRjaERlbGV0ZUltYWdlQ29tbWFuZElucHV0KTogUHJvbWlzZTxCYXRjaERlbGV0ZUltYWdlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEJhdGNoRGVsZXRlSW1hZ2VDb21tYW5kKGlucHV0KSksXG4gICAgICBiYXRjaEdldEltYWdlOiAoaW5wdXQ6IEJhdGNoR2V0SW1hZ2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPEJhdGNoR2V0SW1hZ2VDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgQmF0Y2hHZXRJbWFnZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGNyZWF0ZVJlcG9zaXRvcnk6IChpbnB1dDogQ3JlYXRlUmVwb3NpdG9yeUNvbW1hbmRJbnB1dCk6IFByb21pc2U8Q3JlYXRlUmVwb3NpdG9yeUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVJbWFnZXM6IChpbnB1dDogRUNSRGVzY3JpYmVJbWFnZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPEVDUkRlc2NyaWJlSW1hZ2VzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEVDUkRlc2NyaWJlSW1hZ2VzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVSZXBvc2l0b3JpZXM6IChpbnB1dDogRGVzY3JpYmVSZXBvc2l0b3JpZXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlUmVwb3NpdG9yaWVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QXV0aG9yaXphdGlvblRva2VuOiAoaW5wdXQ6IEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEF1dGhvcml6YXRpb25Ub2tlbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGxpc3RJbWFnZXM6IChpbnB1dDogTGlzdEltYWdlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEltYWdlc0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBMaXN0SW1hZ2VzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcHV0SW1hZ2U6IChpbnB1dDogUHV0SW1hZ2VDb21tYW5kSW5wdXQpOiBQcm9taXNlPFB1dEltYWdlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFB1dEltYWdlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcHV0SW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb246IChcbiAgICAgICAgaW5wdXQ6IFB1dEltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxQdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBQdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGVjcygpOiBJRUNTQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgRUNTQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgbGlzdENsdXN0ZXJzOiAoaW5wdXQ6IExpc3RDbHVzdGVyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdENsdXN0ZXJzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IExpc3RDbHVzdGVyc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHJlZ2lzdGVyVGFza0RlZmluaXRpb246IChcbiAgICAgICAgaW5wdXQ6IFJlZ2lzdGVyVGFza0RlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgICApOiBQcm9taXNlPFJlZ2lzdGVyVGFza0RlZmluaXRpb25Db21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgUmVnaXN0ZXJUYXNrRGVmaW5pdGlvbkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZVNlcnZpY2U6IChpbnB1dDogVXBkYXRlU2VydmljZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlU2VydmljZUNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBVcGRhdGVTZXJ2aWNlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgLy8gV2FpdGVyc1xuICAgICAgd2FpdFVudGlsU2VydmljZXNTdGFibGU6IChpbnB1dDogRGVzY3JpYmVTZXJ2aWNlc0NvbW1hbmRJbnB1dCwgdGltZW91dFNlY29uZHM/OiBudW1iZXIpOiBQcm9taXNlPFdhaXRlclJlc3VsdD4gPT4ge1xuICAgICAgICByZXR1cm4gd2FpdFVudGlsU2VydmljZXNTdGFibGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgbWF4V2FpdFRpbWU6IHRpbWVvdXRTZWNvbmRzID8/IDYwMCxcbiAgICAgICAgICAgIG1pbkRlbGF5OiA2LFxuICAgICAgICAgICAgbWF4RGVsYXk6IDYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBlbGJ2MigpOiBJRWxhc3RpY0xvYWRCYWxhbmNpbmdWMkNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEVsYXN0aWNMb2FkQmFsYW5jaW5nVjJDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUxpc3RlbmVyczogKGlucHV0OiBEZXNjcmliZUxpc3RlbmVyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVMaXN0ZW5lcnNDb21tYW5kKGlucHV0KSksXG4gICAgICBkZXNjcmliZUxvYWRCYWxhbmNlcnM6IChpbnB1dDogRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZXNjcmliZUxvYWRCYWxhbmNlcnNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVMb2FkQmFsYW5jZXJzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZGVzY3JpYmVUYWdzOiAoaW5wdXQ6IERlc2NyaWJlVGFnc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVUYWdzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlVGFnc0NvbW1hbmQoaW5wdXQpKSxcbiAgICAgIC8vIFBhZ2luYXRpb24gRnVuY3Rpb25zXG4gICAgICBwYWdpbmF0ZURlc2NyaWJlTGlzdGVuZXJzOiBhc3luYyAoaW5wdXQ6IERlc2NyaWJlTGlzdGVuZXJzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0ZW5lcltdPiA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IEFycmF5PExpc3RlbmVyPigpO1xuICAgICAgICBjb25zdCBwYWdpbmF0b3IgPSBwYWdpbmF0ZURlc2NyaWJlTGlzdGVuZXJzKHsgY2xpZW50IH0sIGlucHV0KTtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBwYWdlIG9mIHBhZ2luYXRvcikge1xuICAgICAgICAgIGxpc3RlbmVycy5wdXNoKC4uLihwYWdlPy5MaXN0ZW5lcnMgfHwgW10pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlzdGVuZXJzO1xuICAgICAgfSxcbiAgICAgIHBhZ2luYXRlRGVzY3JpYmVMb2FkQmFsYW5jZXJzOiBhc3luYyAoaW5wdXQ6IERlc2NyaWJlTG9hZEJhbGFuY2Vyc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TG9hZEJhbGFuY2VyW10+ID0+IHtcbiAgICAgICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IEFycmF5PExvYWRCYWxhbmNlcj4oKTtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yID0gcGFnaW5hdGVEZXNjcmliZUxvYWRCYWxhbmNlcnMoeyBjbGllbnQgfSwgaW5wdXQpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgcGFnaW5hdG9yKSB7XG4gICAgICAgICAgbG9hZEJhbGFuY2Vycy5wdXNoKC4uLihwYWdlPy5Mb2FkQmFsYW5jZXJzIHx8IFtdKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvYWRCYWxhbmNlcnM7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaWFtKCk6IElJQU1DbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBJQU1DbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBjcmVhdGVQb2xpY3k6IChpbnB1dDogQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0KTogUHJvbWlzZTxDcmVhdGVQb2xpY3lDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgQ3JlYXRlUG9saWN5Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0UG9saWN5OiAoaW5wdXQ6IEdldFBvbGljeUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0UG9saWN5Q29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldFBvbGljeUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIGdldFJvbGU6IChpbnB1dDogR2V0Um9sZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0Um9sZUNvbW1hbmRPdXRwdXQ+ID0+IGNsaWVudC5zZW5kKG5ldyBHZXRSb2xlQ29tbWFuZChpbnB1dCkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMga21zKCk6IElLTVNDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBLTVNDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmliZUtleTogKGlucHV0OiBEZXNjcmliZUtleUNvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgRGVzY3JpYmVLZXlDb21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0QWxpYXNlczogKGlucHV0OiBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdEFsaWFzZXNDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBsYW1iZGEoKTogSUxhbWJkYUNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IExhbWJkYUNsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGludm9rZUNvbW1hbmQ6IChpbnB1dDogSW52b2tlQ29tbWFuZElucHV0KTogUHJvbWlzZTxJbnZva2VDb21tYW5kT3V0cHV0PiA9PiBjbGllbnQuc2VuZChuZXcgSW52b2tlQ29tbWFuZChpbnB1dCkpLFxuICAgICAgcHVibGlzaFZlcnNpb246IChpbnB1dDogUHVibGlzaFZlcnNpb25Db21tYW5kSW5wdXQpOiBQcm9taXNlPFB1Ymxpc2hWZXJzaW9uQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFB1Ymxpc2hWZXJzaW9uQ29tbWFuZChpbnB1dCkpLFxuICAgICAgdXBkYXRlQWxpYXM6IChpbnB1dDogVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZUFsaWFzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgdXBkYXRlRnVuY3Rpb25Db2RlOiAoaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbjogKFxuICAgICAgICBpbnB1dDogVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgICAgKTogUHJvbWlzZTxVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZChpbnB1dCkpLFxuICAgICAgLy8gV2FpdGVyc1xuICAgICAgd2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkOiAoXG4gICAgICAgIG1pbkRlbGF5U2Vjb25kczogbnVtYmVyLFxuICAgICAgICBtYXhEZWxheVNlY29uZHM6IG51bWJlcixcbiAgICAgICAgaW5wdXQ6IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICAgICk6IFByb21pc2U8V2FpdGVyUmVzdWx0PiA9PiB7XG4gICAgICAgIHJldHVybiB3YWl0VW50aWxGdW5jdGlvblVwZGF0ZWRWMihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICBtYXhEZWxheTogbWF4RGVsYXlTZWNvbmRzLFxuICAgICAgICAgICAgbWluRGVsYXk6IG1pbkRlbGF5U2Vjb25kcyxcbiAgICAgICAgICAgIG1heFdhaXRUaW1lOiBtYXhEZWxheVNlY29uZHMgKiA2MCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlucHV0LFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJvdXRlNTMoKTogSVJvdXRlNTNDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBSb3V0ZTUzQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0SG9zdGVkWm9uZTogKGlucHV0OiBHZXRIb3N0ZWRab25lQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRIb3N0ZWRab25lQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEhvc3RlZFpvbmVDb21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0SG9zdGVkWm9uZXM6IChpbnB1dDogTGlzdEhvc3RlZFpvbmVzQ29tbWFuZElucHV0KTogUHJvbWlzZTxMaXN0SG9zdGVkWm9uZXNDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdEhvc3RlZFpvbmVzQ29tbWFuZChpbnB1dCkpLFxuICAgICAgbGlzdEhvc3RlZFpvbmVzQnlOYW1lOiAoaW5wdXQ6IExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8TGlzdEhvc3RlZFpvbmVzQnlOYW1lQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IExpc3RIb3N0ZWRab25lc0J5TmFtZUNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHMzKCk6IElTM0NsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFMzQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGVsZXRlT2JqZWN0czogKGlucHV0OiBEZWxldGVPYmplY3RzQ29tbWFuZElucHV0KTogUHJvbWlzZTxEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IERlbGV0ZU9iamVjdHNDb21tYW5kKHtcbiAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICBDaGVja3N1bUFsZ29yaXRobTogJ1NIQTI1NicsXG4gICAgICAgIH0pKSxcbiAgICAgIGRlbGV0ZU9iamVjdFRhZ2dpbmc6IChpbnB1dDogRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0QnVja2V0RW5jcnlwdGlvbjogKGlucHV0OiBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBnZXRCdWNrZXRMb2NhdGlvbjogKGlucHV0OiBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0QnVja2V0TG9jYXRpb25Db21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kKGlucHV0KSksXG4gICAgICBnZXRPYmplY3Q6IChpbnB1dDogR2V0T2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRPYmplY3RDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0T2JqZWN0Q29tbWFuZChpbnB1dCkpLFxuICAgICAgZ2V0T2JqZWN0VGFnZ2luZzogKGlucHV0OiBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IEdldE9iamVjdFRhZ2dpbmdDb21tYW5kKGlucHV0KSksXG4gICAgICBsaXN0T2JqZWN0c1YyOiAoaW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQpOiBQcm9taXNlPExpc3RPYmplY3RzVjJDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgTGlzdE9iamVjdHNWMkNvbW1hbmQoaW5wdXQpKSxcbiAgICAgIHB1dE9iamVjdFRhZ2dpbmc6IChpbnB1dDogUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCk6IFByb21pc2U8UHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZCh7XG4gICAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgICAgQ2hlY2tzdW1BbGdvcml0aG06ICdTSEEyNTYnLFxuICAgICAgICB9KSksXG4gICAgICB1cGxvYWQ6IChpbnB1dDogUHV0T2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRPdXRwdXQ+ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB1cGxvYWQgPSBuZXcgVXBsb2FkKHtcbiAgICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICAgIHBhcmFtczogeyAuLi5pbnB1dCwgQ2hlY2tzdW1BbGdvcml0aG06ICdTSEEyNTYnIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gdXBsb2FkLmRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ1MzVXBsb2FkRmFpbGVkJywgYFVwbG9hZCBmYWlsZWQ6ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc2VjcmV0c01hbmFnZXIoKTogSVNlY3JldHNNYW5hZ2VyQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQodGhpcy5jb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICBnZXRTZWNyZXRWYWx1ZTogKGlucHV0OiBHZXRTZWNyZXRWYWx1ZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0U2VjcmV0VmFsdWVDb21tYW5kT3V0cHV0PiA9PlxuICAgICAgICBjbGllbnQuc2VuZChuZXcgR2V0U2VjcmV0VmFsdWVDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzc20oKTogSVNTTUNsaWVudCB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFNTTUNsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFBhcmFtZXRlcjogKGlucHV0OiBHZXRQYXJhbWV0ZXJDb21tYW5kSW5wdXQpOiBQcm9taXNlPEdldFBhcmFtZXRlckNvbW1hbmRPdXRwdXQ+ID0+XG4gICAgICAgIGNsaWVudC5zZW5kKG5ldyBHZXRQYXJhbWV0ZXJDb21tYW5kKGlucHV0KSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwRnVuY3Rpb25zKCk6IElTdGVwRnVuY3Rpb25zQ2xpZW50IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU0ZOQ2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICByZXR1cm4ge1xuICAgICAgdXBkYXRlU3RhdGVNYWNoaW5lOiAoaW5wdXQ6IFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dD4gPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQoaW5wdXQpKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgU0RLIHYzIHJlcXVpcmVzIGEgY2xpZW50IGNvbmZpZyBhbmQgYSBjb21tYW5kIGluIG9yZGVyIHRvIGdldCBhbiBlbmRwb2ludCBmb3JcbiAgICogYW55IGdpdmVuIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VXJsU3VmZml4KHJlZ2lvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjZm4gPSBuZXcgQ2xvdWRGb3JtYXRpb25DbGllbnQoeyByZWdpb24gfSk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBhd2FpdCBnZXRFbmRwb2ludEZyb21JbnN0cnVjdGlvbnMoe30sIERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kLCB7IC4uLmNmbi5jb25maWcgfSk7XG4gICAgcmV0dXJuIGVuZHBvaW50LnVybC5ob3N0bmFtZS5zcGxpdChgJHtyZWdpb259LmApLnBvcCgpITtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICByZXR1cm4gY2FjaGVkQXN5bmModGhpcywgQ1VSUkVOVF9BQ0NPVU5UX0tFWSwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCB0aGlzLmNyZWRQcm92aWRlcigpO1xuICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudENhY2hlLmZldGNoKGNyZWRzLmFjY2Vzc0tleUlkLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIGlmIHdlIGRvbid0IGhhdmUgb25lLCByZXNvbHZlIGZyb20gU1RTIGFuZCBzdG9yZSBpbiBjYWNoZS5cbiAgICAgICAgYXdhaXQgdGhpcy5kZWJ1ZygnTG9va2luZyB1cCBkZWZhdWx0IGFjY291bnQgSUQgZnJvbSBTVFMnKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gbmV3IFNUU0NsaWVudCh7XG4gICAgICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgICAgICAgcmV0cnlTdHJhdGVneTogdGhpcy5zdHNSZXRyeVN0cmF0ZWd5LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQoe30pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZChjb21tYW5kKTtcbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gcmVzdWx0LkFjY291bnQ7XG4gICAgICAgIGNvbnN0IHBhcnRpdGlvbiA9IHJlc3VsdC5Bcm4hLnNwbGl0KCc6JylbMV07XG4gICAgICAgIGlmICghYWNjb3VudElkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJ05vQWNjb3VudElkJywgXCJTVFMgZGlkbid0IHJldHVybiBhbiBhY2NvdW50IElEXCIpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZGVidWcoYERlZmF1bHQgYWNjb3VudCBJRDogJHthY2NvdW50SWR9YCk7XG5cbiAgICAgICAgLy8gU2F2ZSBhbm90aGVyIFNUUyBjYWxsIGxhdGVyIGlmIHRoaXMgb25lIGFscmVhZHkgc3VjY2VlZGVkXG4gICAgICAgIHRoaXMuX2NyZWRlbnRpYWxzVmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHsgYWNjb3VudElkLCBwYXJ0aXRpb24gfTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2Ugc3VyZSB0aGUgdGhlIGN1cnJlbnQgY3JlZGVudGlhbHMgYXJlIG5vdCBleHBpcmVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVDcmVkZW50aWFscygpIHtcbiAgICBpZiAodGhpcy5fY3JlZGVudGlhbHNWYWxpZGF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGllbnQgPSBuZXcgU1RTQ2xpZW50KHsgLi4udGhpcy5jb25maWcsIHJldHJ5U3RyYXRlZ3k6IHRoaXMuc3RzUmV0cnlTdHJhdGVneSB9KTtcbiAgICBhd2FpdCBjbGllbnQuc2VuZChuZXcgR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kKHt9KSk7XG4gICAgdGhpcy5fY3JlZGVudGlhbHNWYWxpZGF0ZWQgPSB0cnVlO1xuICB9XG59XG5cbmNvbnN0IENVUlJFTlRfQUNDT1VOVF9LRVkgPSBTeW1ib2woJ2N1cnJlbnRfYWNjb3VudF9rZXknKTtcblxuLyoqXG4gKiBNYWtlIHRoZSBTREsgbG9nZ2VyIHNhZmUgYWdhaW5zdCByYXcgZnVuY3Rpb24gaW52b2NhdGlvbnNcbiAqXG4gKiBUaGUgU0RLIGV4cGVjdHMgdGhlIGxvZ2dlciB0byBiZSBhbiBvYmplY3Qgd2l0aCBhIG51bWJlciBvZiBmdW5jdGlvbnMsIGJ1dCBpdFxuICogZG9lc24ndCBuZWNlc3NhcmlseSBrZWVwICd0aGlzJyBib3VuZCBhbGwgdGhlIHRpbWU7IHNvbWV0aW1lcyBpdCB3aWxsIGNvcHlcbiAqIGZ1bmN0aW9ucyBvZmYgb2YgdGhlIG9iamVjdCBhbmQgY2FsbCB0aGVtIGZyb20gYSB2YXJpYWJsZS5cbiAqXG4gKiBCeSBob3cgSmF2YVNjcmlwdCB3b3JrcywgdGhpcyBkcm9wcyB0aGUgJ3RoaXMnIHJlZmVyZW5jZS4gTWFrZSBzdXJlICd0aGlzJyBpc1xuICogYm91bmQgYXQgYWxsIHRpbWVzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzL2lzc3Vlcy83Mjk3XG4gKi9cbmZ1bmN0aW9uIG1ha2VTZGtMb2dnZXJTYWZlQnlCaW5kaW5nVGhpcyhsb2dnZXI6IElTZGtMb2dnZXIpOiBJU2RrTG9nZ2VyIHtcbiAgcmV0dXJuIHtcbiAgICBkZWJ1ZzogbG9nZ2VyLmRlYnVnLmJpbmQobG9nZ2VyKSxcbiAgICBpbmZvOiBsb2dnZXIuaW5mby5iaW5kKGxvZ2dlciksXG4gICAgd2FybjogbG9nZ2VyLndhcm4uYmluZChsb2dnZXIpLFxuICAgIGVycm9yOiBsb2dnZXIuZXJyb3IuYmluZChsb2dnZXIpLFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setSdkTracing = setSdkTracing;\nexports.callTrace = callTrace;\nexports.traceMemberMethods = traceMemberMethods;\nlet ENABLED = false;\nlet INDENT = 0;\nfunction setSdkTracing(enabled) {\n ENABLED = enabled;\n}\n/**\n * Method decorator to trace a single static or member method, any time it's called\n */\nfunction callTrace(fn, className, logger) {\n if (!ENABLED || !logger) {\n return;\n }\n logger.info(`[trace] ${' '.repeat(INDENT)}${className || '(anonymous)'}#${fn}()`);\n}\n/**\n * Method decorator to trace a single member method any time it's called\n */\nfunction traceCall(receiver, _propertyKey, descriptor, parentClassName) {\n const fn = descriptor.value;\n const className = typeof receiver === 'function' ? receiver.name : parentClassName;\n descriptor.value = function (...args) {\n const logger = this.logger;\n if (!ENABLED || typeof logger?.info !== 'function') {\n return fn.apply(this, args);\n }\n logger.info.apply(logger, [`[trace] ${' '.repeat(INDENT)}${className || this.constructor.name || '(anonymous)'}#${fn.name}()`]);\n INDENT += 2;\n const ret = fn.apply(this, args);\n if (ret instanceof Promise) {\n return ret.finally(() => {\n INDENT -= 2;\n });\n }\n else {\n INDENT -= 2;\n return ret;\n }\n };\n return descriptor;\n}\n/**\n * Class decorator, enable tracing for all member methods on this class\n * @deprecated this doesn't work well with localized logging instances, don't use\n */\nfunction traceMemberMethods(constructor) {\n // Instance members\n for (const [name, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(constructor.prototype))) {\n if (typeof descriptor.value !== 'function') {\n continue;\n }\n const newDescriptor = traceCall(constructor.prototype, name, descriptor, constructor.name) ?? descriptor;\n Object.defineProperty(constructor.prototype, name, newDescriptor);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyYWNpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxzQ0FFQztBQUtELDhCQU1DO0FBbUNELGdEQVNDO0FBNURELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztBQUNwQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZixTQUFnQixhQUFhLENBQUMsT0FBZ0I7SUFDNUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUNwQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixTQUFTLENBQUMsRUFBVSxFQUFFLFNBQWtCLEVBQUUsTUFBbUI7SUFDM0UsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxJQUFJLGFBQWEsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsU0FBUyxDQUFDLFFBQWdCLEVBQUUsWUFBb0IsRUFBRSxVQUE4QixFQUFFLGVBQXdCO0lBQ2pILE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDNUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFFbkYsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztRQUN6QyxNQUFNLE1BQU0sR0FBSSxJQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxNQUFNLEVBQUUsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ25ELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksYUFBYSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEksTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVaLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksR0FBRyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLENBQUMsQ0FBQztZQUNaLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUMsQ0FBQztJQUNGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxXQUFxQjtJQUN0RCxtQkFBbUI7SUFDbkIsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekcsSUFBSSxPQUFPLFVBQVUsQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDM0MsU0FBUztRQUNYLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUM7UUFDekcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVNka0xvZ2dlciB9IGZyb20gJy4vc2RrLWxvZ2dlcic7XG5cbmxldCBFTkFCTEVEID0gZmFsc2U7XG5sZXQgSU5ERU5UID0gMDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNka1RyYWNpbmcoZW5hYmxlZDogYm9vbGVhbikge1xuICBFTkFCTEVEID0gZW5hYmxlZDtcbn1cblxuLyoqXG4gKiBNZXRob2QgZGVjb3JhdG9yIHRvIHRyYWNlIGEgc2luZ2xlIHN0YXRpYyBvciBtZW1iZXIgbWV0aG9kLCBhbnkgdGltZSBpdCdzIGNhbGxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsbFRyYWNlKGZuOiBzdHJpbmcsIGNsYXNzTmFtZT86IHN0cmluZywgbG9nZ2VyPzogSVNka0xvZ2dlcikge1xuICBpZiAoIUVOQUJMRUQgfHwgIWxvZ2dlcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGBbdHJhY2VdICR7JyAnLnJlcGVhdChJTkRFTlQpfSR7Y2xhc3NOYW1lIHx8ICcoYW5vbnltb3VzKSd9IyR7Zm59KClgKTtcbn1cblxuLyoqXG4gKiBNZXRob2QgZGVjb3JhdG9yIHRvIHRyYWNlIGEgc2luZ2xlIG1lbWJlciBtZXRob2QgYW55IHRpbWUgaXQncyBjYWxsZWRcbiAqL1xuZnVuY3Rpb24gdHJhY2VDYWxsKHJlY2VpdmVyOiBvYmplY3QsIF9wcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IsIHBhcmVudENsYXNzTmFtZT86IHN0cmluZykge1xuICBjb25zdCBmbiA9IGRlc2NyaXB0b3IudmFsdWU7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHR5cGVvZiByZWNlaXZlciA9PT0gJ2Z1bmN0aW9uJyA/IHJlY2VpdmVyLm5hbWUgOiBwYXJlbnRDbGFzc05hbWU7XG5cbiAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGxvZ2dlciA9ICh0aGlzIGFzIGFueSkubG9nZ2VyO1xuICAgIGlmICghRU5BQkxFRCB8fCB0eXBlb2YgbG9nZ2VyPy5pbmZvICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgfVxuXG4gICAgbG9nZ2VyLmluZm8uYXBwbHkobG9nZ2VyLCBbYFt0cmFjZV0gJHsnICcucmVwZWF0KElOREVOVCl9JHtjbGFzc05hbWUgfHwgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIHx8ICcoYW5vbnltb3VzKSd9IyR7Zm4ubmFtZX0oKWBdKTtcbiAgICBJTkRFTlQgKz0gMjtcblxuICAgIGNvbnN0IHJldCA9IGZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIGlmIChyZXQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICByZXR1cm4gcmV0LmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBJTkRFTlQgLT0gMjtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBJTkRFTlQgLT0gMjtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9O1xuICByZXR1cm4gZGVzY3JpcHRvcjtcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWNvcmF0b3IsIGVuYWJsZSB0cmFjaW5nIGZvciBhbGwgbWVtYmVyIG1ldGhvZHMgb24gdGhpcyBjbGFzc1xuICogQGRlcHJlY2F0ZWQgdGhpcyBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIGxvY2FsaXplZCBsb2dnaW5nIGluc3RhbmNlcywgZG9uJ3QgdXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZU1lbWJlck1ldGhvZHMoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gIC8vIEluc3RhbmNlIG1lbWJlcnNcbiAgZm9yIChjb25zdCBbbmFtZSwgZGVzY3JpcHRvcl0gb2YgT2JqZWN0LmVudHJpZXMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoY29uc3RydWN0b3IucHJvdG90eXBlKSkpIHtcbiAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBuZXdEZXNjcmlwdG9yID0gdHJhY2VDYWxsKGNvbnN0cnVjdG9yLnByb3RvdHlwZSwgbmFtZSwgZGVzY3JpcHRvciwgY29uc3RydWN0b3IubmFtZSkgPz8gZGVzY3JpcHRvcjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uc3RydWN0b3IucHJvdG90eXBlLCBuYW1lLCBuZXdEZXNjcmlwdG9yKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBodHRwcyBmcm9tICdub2RlOmh0dHBzJztcbmltcG9ydCB0eXBlIHsgSUJhc2VDcmVkZW50aWFsc1Byb3ZpZGVyIH0gZnJvbSAnLi9iYXNlLWNyZWRlbnRpYWxzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZGVmYXVsdCBTREsgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtDb25maWcge1xuICAvKipcbiAgICogVGhlIGJhc2UgY3JlZGVudGlhbHMgYW5kIHJlZ2lvbiB1c2VkIHRvIHNlZWQgdGhlIFRvb2xraXQgd2l0aFxuICAgKlxuICAgKiBAZGVmYXVsdCBCYXNlQ3JlZGVudGlhbHMuYXdzQ2xpQ29tcGF0aWJsZSgpXG4gICAqL1xuICByZWFkb25seSBiYXNlQ3JlZGVudGlhbHM/OiBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIEhUVFAgb3B0aW9ucyBmb3IgU0RLXG4gICAqL1xuICByZWFkb25seSBodHRwT3B0aW9ucz86IFNka0h0dHBPcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGluZGl2aWR1YWwgU0RLc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNka0h0dHBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhZ2VudCByZXNwb25zaWJsZSBmb3IgbWFraW5nIHRoZSBuZXR3b3JrIHJlcXVlc3RzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBzbyBzZXQgdXAgYSBwcm94eSBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIHNoYXJlZCBnbG9iYWwgbm9kZSBhZ2VudFxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnQ/OiBodHRwcy5BZ2VudDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultCliUserAgent = defaultCliUserAgent;\nconst path = require(\"path\");\nconst util_1 = require(\"./util\");\nconst util_2 = require(\"../../util\");\n/**\n * Find the package.json from the main toolkit.\n *\n * If we can't read it for some reason, try to do something reasonable anyway.\n * Fall back to argv[1], or a standard string if that is undefined for some reason.\n */\nfunction defaultCliUserAgent() {\n const root = (0, util_2.bundledPackageRootDir)(__dirname, false);\n const pkg = JSON.parse((root ? (0, util_1.readIfPossible)(path.join(root, 'package.json')) : undefined) ?? '{}');\n const name = pkg.name ?? path.basename(process.argv[1] ?? 'cdk-cli');\n const version = pkg.version ?? '';\n return `${name}/${version}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxrREFNQztBQWZELDZCQUE2QjtBQUM3QixpQ0FBd0M7QUFDeEMscUNBQW1EO0FBQ25EOzs7OztHQUtHO0FBQ0gsU0FBZ0IsbUJBQW1CO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUEsNEJBQXFCLEVBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEscUJBQWMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNyRyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUNyRSxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQztJQUMzQyxPQUFPLEdBQUcsSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcmVhZElmUG9zc2libGUgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgYnVuZGxlZFBhY2thZ2VSb290RGlyIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG4vKipcbiAqIEZpbmQgdGhlIHBhY2thZ2UuanNvbiBmcm9tIHRoZSBtYWluIHRvb2xraXQuXG4gKlxuICogSWYgd2UgY2FuJ3QgcmVhZCBpdCBmb3Igc29tZSByZWFzb24sIHRyeSB0byBkbyBzb21ldGhpbmcgcmVhc29uYWJsZSBhbnl3YXkuXG4gKiBGYWxsIGJhY2sgdG8gYXJndlsxXSwgb3IgYSBzdGFuZGFyZCBzdHJpbmcgaWYgdGhhdCBpcyB1bmRlZmluZWQgZm9yIHNvbWUgcmVhc29uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdENsaVVzZXJBZ2VudCgpIHtcbiAgY29uc3Qgcm9vdCA9IGJ1bmRsZWRQYWNrYWdlUm9vdERpcihfX2Rpcm5hbWUsIGZhbHNlKTtcbiAgY29uc3QgcGtnID0gSlNPTi5wYXJzZSgocm9vdCA/IHJlYWRJZlBvc3NpYmxlKHBhdGguam9pbihyb290LCAncGFja2FnZS5qc29uJykpIDogdW5kZWZpbmVkKSA/PyAne30nKTtcbiAgY29uc3QgbmFtZSA9IHBrZy5uYW1lID8/IHBhdGguYmFzZW5hbWUocHJvY2Vzcy5hcmd2WzFdID8/ICdjZGstY2xpJyk7XG4gIGNvbnN0IHZlcnNpb24gPSBwa2cudmVyc2lvbiA/PyAnPHVua25vd24+JztcbiAgcmV0dXJuIGAke25hbWV9LyR7dmVyc2lvbn1gO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readIfPossible = readIfPossible;\nconst fs = require(\"fs-extra\");\n/**\n * Read a file if it exists, or return undefined\n *\n * Not async because it is used in the constructor\n */\nfunction readIfPossible(filename) {\n try {\n if (!fs.pathExistsSync(filename)) {\n return undefined;\n }\n return fs.readFileSync(filename, { encoding: 'utf-8' });\n }\n catch (e) {\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSx3Q0FTQztBQWhCRCwrQkFBK0I7QUFFL0I7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxRQUFnQjtJQUM3QyxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qKlxuICogUmVhZCBhIGZpbGUgaWYgaXQgZXhpc3RzLCBvciByZXR1cm4gdW5kZWZpbmVkXG4gKlxuICogTm90IGFzeW5jIGJlY2F1c2UgaXQgaXMgdXNlZCBpbiB0aGUgY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJZlBvc3NpYmxlKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGlmICghZnMucGF0aEV4aXN0c1N5bmMoZmlsZW5hbWUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bootstrapper = void 0;\nconst path = require(\"path\");\nconst deploy_bootstrap_1 = require(\"./deploy-bootstrap\");\nconst legacy_template_1 = require(\"./legacy-template\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\nclass Bootstrapper {\n source;\n ioHelper;\n constructor(source = { source: 'default' }, ioHelper) {\n this.source = source;\n this.ioHelper = ioHelper;\n }\n bootstrapEnvironment(environment, sdkProvider, options = {}) {\n switch (this.source.source) {\n case 'legacy':\n return this.legacyBootstrap(environment, sdkProvider, options);\n case 'default':\n return this.modernBootstrap(environment, sdkProvider, options);\n case 'custom':\n return this.customBootstrap(environment, sdkProvider, options);\n }\n }\n async showTemplate(json) {\n const template = await this.loadTemplate();\n process.stdout.write(`${(0, util_1.serializeStructure)(template, json)}\\n`);\n }\n /**\n * Deploy legacy bootstrap stack\n *\n */\n async legacyBootstrap(environment, sdkProvider, options = {}) {\n const params = options.parameters ?? {};\n if (params.trustedAccounts?.length) {\n throw new toolkit_error_1.ToolkitError('TrustRequiresModernBootstrap', '--trust can only be passed for the modern bootstrap experience.');\n }\n if (params.cloudFormationExecutionPolicies?.length) {\n throw new toolkit_error_1.ToolkitError('ExecutionPoliciesRequiresModernBootstrap', '--cloudformation-execution-policies can only be passed for the modern bootstrap experience.');\n }\n if (params.createCustomerMasterKey !== undefined) {\n throw new toolkit_error_1.ToolkitError('CustomerKeyRequiresModernBootstrap', '--bootstrap-customer-key can only be passed for the modern bootstrap experience.');\n }\n if (params.qualifier) {\n throw new toolkit_error_1.ToolkitError('QualifierRequiresModernBootstrap', '--qualifier can only be passed for the modern bootstrap experience.');\n }\n const toolkitStackName = options.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n const current = await deploy_bootstrap_1.BootstrapStack.lookup(sdkProvider, environment, toolkitStackName, this.ioHelper);\n return current.update(await this.loadTemplate(params), {}, {\n ...options,\n terminationProtection: options.terminationProtection ?? current.terminationProtection,\n });\n }\n /**\n * Deploy CI/CD-ready bootstrap stack from template\n *\n */\n async modernBootstrap(environment, sdkProvider, options = {}) {\n const params = options.parameters ?? {};\n const bootstrapTemplate = await this.loadTemplate();\n const toolkitStackName = options.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n const current = await deploy_bootstrap_1.BootstrapStack.lookup(sdkProvider, environment, toolkitStackName, this.ioHelper);\n const partition = await current.partition();\n if (params.createCustomerMasterKey !== undefined && params.kmsKeyId) {\n throw new toolkit_error_1.ToolkitError('ConflictingKmsKeyOptions', \"You cannot pass '--bootstrap-kms-key-id' and '--bootstrap-customer-key' together. Specify one or the other\");\n }\n // If people re-bootstrap, existing parameter values are reused so that people don't accidentally change the configuration\n // on their bootstrap stack (this happens automatically in deployStack). However, to do proper validation on the\n // combined arguments (such that if --trust has been given, --cloudformation-execution-policies is necessary as well)\n // we need to take this parameter reuse into account.\n //\n // Ideally we'd do this inside the template, but the `Rules` section of CFN\n // templates doesn't seem to be able to express the conditions that we need\n // (can't use Fn::Join or reference Conditions) so we do it here instead.\n const allTrusted = new Set([\n ...params.trustedAccounts ?? [],\n ...params.trustedAccountsForLookup ?? [],\n ]);\n const invalid = intersection(allTrusted, new Set(params.untrustedAccounts));\n if (invalid.size > 0) {\n throw new toolkit_error_1.ToolkitError('AccountBothTrustedAndUntrusted', `Accounts cannot be both trusted and untrusted. Found: ${[...invalid].join(',')}`);\n }\n const removeUntrusted = (accounts) => accounts.filter(acc => !params.untrustedAccounts?.map(String).includes(String(acc)));\n const trustedAccounts = removeUntrusted(params.trustedAccounts ?? splitCfnArray(current.parameters.TrustedAccounts));\n await this.ioHelper.defaults.info(`Trusted accounts for deployment: ${trustedAccounts.length > 0 ? trustedAccounts.join(', ') : '(none)'}`);\n const trustedAccountsForLookup = removeUntrusted(params.trustedAccountsForLookup ?? splitCfnArray(current.parameters.TrustedAccountsForLookup));\n await this.ioHelper.defaults.info(`Trusted accounts for lookup: ${trustedAccountsForLookup.length > 0 ? trustedAccountsForLookup.join(', ') : '(none)'}`);\n const cloudFormationExecutionPolicies = params.cloudFormationExecutionPolicies ?? splitCfnArray(current.parameters.CloudFormationExecutionPolicies);\n if (trustedAccounts.length === 0 && cloudFormationExecutionPolicies.length === 0) {\n // For self-trust it's okay to default to AdministratorAccess, and it improves the usability of bootstrapping a lot.\n //\n // We don't actually make the implicitly policy a physical parameter. The template will infer it instead,\n // we simply do the UI advertising that behavior here.\n //\n // If we DID make it an explicit parameter, we wouldn't be able to tell the difference between whether\n // we inferred it or whether the user told us, and the sequence:\n //\n // $ cdk bootstrap\n // $ cdk bootstrap --trust 1234\n //\n // Would leave AdministratorAccess policies with a trust relationship, without the user explicitly\n // approving the trust policy.\n const implicitPolicy = `arn:${partition}:iam::aws:policy/AdministratorAccess`;\n await this.ioHelper.defaults.warn(`Using default execution policy of '${implicitPolicy}'. Pass '--cloudformation-execution-policies' to customize.`);\n }\n else if (cloudFormationExecutionPolicies.length === 0) {\n throw new toolkit_error_1.ToolkitError('MissingExecutionPoliciesForTrust', `Please pass \\'--cloudformation-execution-policies\\' when using \\'--trust\\' to specify deployment permissions. Try a managed policy of the form \\'arn:${partition}:iam::aws:policy/\\'.`);\n }\n else {\n // Remind people what the current settings are\n await this.ioHelper.defaults.info(`Execution policies: ${cloudFormationExecutionPolicies.join(', ')}`);\n }\n // * If an ARN is given, that ARN. Otherwise:\n // * '-' if customerKey = false\n // * '' if customerKey = true\n // * if customerKey is also not given\n // * undefined if we already had a value in place (reusing what we had)\n // * '-' if this is the first time we're deploying this stack (or upgrading from old to new bootstrap)\n const currentKmsKeyId = current.parameters.FileAssetsBucketKmsKeyId;\n const kmsKeyId = params.kmsKeyId ??\n (params.createCustomerMasterKey === true\n ? CREATE_NEW_KEY\n : params.createCustomerMasterKey === false || currentKmsKeyId === undefined\n ? USE_AWS_MANAGED_KEY\n : undefined);\n /* A permissions boundary can be provided via:\n * - the flag indicating the example one should be used\n * - the name indicating the custom permissions boundary to be used\n * Re-bootstrapping will NOT be blocked by either tightening or relaxing the permissions' boundary.\n */\n // InputPermissionsBoundary is an `any` type and if it is not defined it\n // appears as an empty string ''. We need to force it to evaluate an empty string\n // as undefined\n const currentPermissionsBoundary = current.parameters.InputPermissionsBoundary || undefined;\n const inputPolicyName = params.examplePermissionsBoundary\n ? CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY\n : params.customPermissionsBoundary;\n let policyName;\n if (inputPolicyName) {\n // If the example policy is not already in place, it must be created.\n const sdk = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForWriting)).sdk;\n policyName = await this.getPolicyName(environment, sdk, inputPolicyName, partition, params);\n }\n if (currentPermissionsBoundary !== policyName) {\n if (!currentPermissionsBoundary) {\n await this.ioHelper.defaults.warn(`Adding new permissions boundary ${policyName}`);\n }\n else if (!policyName) {\n await this.ioHelper.defaults.warn(`Removing existing permissions boundary ${currentPermissionsBoundary}`);\n }\n else {\n await this.ioHelper.defaults.warn(`Changing permissions boundary from ${currentPermissionsBoundary} to ${policyName}`);\n }\n }\n const bootstrapTemplateParameters = {\n FileAssetsBucketName: params.bucketName,\n FileAssetsBucketKmsKeyId: kmsKeyId,\n // Empty array becomes empty string\n TrustedAccounts: trustedAccounts.join(','),\n TrustedAccountsForLookup: trustedAccountsForLookup.join(','),\n CloudFormationExecutionPolicies: cloudFormationExecutionPolicies.join(','),\n Qualifier: params.qualifier,\n PublicAccessBlockConfiguration: params.publicAccessBlockConfiguration || params.publicAccessBlockConfiguration === undefined\n ? 'true'\n : 'false',\n InputPermissionsBoundary: policyName,\n };\n const templateParameters = await this.templateParameters();\n // Conditionally set these parameters: only set these parameters if they are accepted by the template.\n // If we pass them unconditionally, older customized templates that don't know about these\n // parameters yet will fail to deploy.\n if (params.denyExternalId !== undefined) {\n if (!templateParameters.includes('DenyExternalId')) {\n throw new toolkit_error_1.ToolkitError('DenyExternalIdNotSupported', 'The selected bootstrap template does not accept the DenyExternalId parameter');\n }\n bootstrapTemplateParameters.DenyExternalId = `${params.denyExternalId}`;\n }\n return current.update(bootstrapTemplate, bootstrapTemplateParameters, {\n ...options,\n terminationProtection: options.terminationProtection ?? current.terminationProtection,\n });\n }\n async getPolicyName(environment, sdk, permissionsBoundary, partition, params) {\n if (permissionsBoundary !== CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY) {\n this.validatePolicyName(permissionsBoundary);\n return Promise.resolve(permissionsBoundary);\n }\n // if no Qualifier is supplied, resort to the default one\n const arn = await this.getExamplePermissionsBoundary(params.qualifier ?? 'hnb659fds', partition, environment.account, sdk);\n const policyName = arn.split('/').pop();\n if (!policyName) {\n throw new toolkit_error_1.ToolkitError('PermissionBoundaryRetrievalFailed', 'Could not retrieve the example permission boundary!');\n }\n return Promise.resolve(policyName);\n }\n async getExamplePermissionsBoundary(qualifier, partition, account, sdk) {\n const iam = sdk.iam();\n let policyName = `cdk-${qualifier}-permissions-boundary`;\n const arn = `arn:${partition}:iam::${account}:policy/${policyName}`;\n try {\n let getPolicyResp = await iam.getPolicy({ PolicyArn: arn });\n if (getPolicyResp.Policy) {\n return arn;\n }\n }\n catch (e) {\n // https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html#API_GetPolicy_Errors\n if (e.name === 'NoSuchEntity') {\n // noop, proceed with creating the policy\n }\n else {\n throw e;\n }\n }\n const policyDoc = {\n Version: '2012-10-17',\n Statement: [\n {\n Action: ['*'],\n Resource: '*',\n Effect: 'Allow',\n Sid: 'ExplicitAllowAll',\n },\n {\n Condition: {\n StringEquals: {\n 'iam:PermissionsBoundary': `arn:${partition}:iam::${account}:policy/cdk-${qualifier}-permissions-boundary`,\n },\n },\n Action: [\n 'iam:CreateUser',\n 'iam:CreateRole',\n 'iam:PutRolePermissionsBoundary',\n 'iam:PutUserPermissionsBoundary',\n ],\n Resource: '*',\n Effect: 'Allow',\n Sid: 'DenyAccessIfRequiredPermBoundaryIsNotBeingApplied',\n },\n {\n Action: [\n 'iam:CreatePolicyVersion',\n 'iam:DeletePolicy',\n 'iam:DeletePolicyVersion',\n 'iam:SetDefaultPolicyVersion',\n ],\n Resource: `arn:${partition}:iam::${account}:policy/cdk-${qualifier}-permissions-boundary`,\n Effect: 'Deny',\n Sid: 'DenyPermBoundaryIAMPolicyAlteration',\n },\n {\n Action: ['iam:DeleteUserPermissionsBoundary', 'iam:DeleteRolePermissionsBoundary'],\n Resource: '*',\n Effect: 'Deny',\n Sid: 'DenyRemovalOfPermBoundaryFromAnyUserOrRole',\n },\n ],\n };\n const request = {\n PolicyName: policyName,\n PolicyDocument: JSON.stringify(policyDoc),\n };\n const createPolicyResponse = await iam.createPolicy(request);\n if (createPolicyResponse.Policy?.Arn) {\n return createPolicyResponse.Policy.Arn;\n }\n else {\n throw new toolkit_error_1.ToolkitError('PermissionBoundaryCreateFailed', `Could not retrieve the example permission boundary ${arn}!`);\n }\n }\n validatePolicyName(permissionsBoundary) {\n // https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html\n // Added support for policy names with a path\n // See https://github.com/aws/aws-cdk/issues/26320\n const regexp = /[\\w+\\/=,.@-]+/;\n const matches = regexp.exec(permissionsBoundary);\n if (!(matches && matches.length === 1 && matches[0] === permissionsBoundary)) {\n throw new toolkit_error_1.ToolkitError('InvalidPermissionBoundaryName', `The permissions boundary name ${permissionsBoundary} does not match the IAM conventions.`);\n }\n }\n async customBootstrap(environment, sdkProvider, options = {}) {\n // Look at the template, decide whether it's most likely a legacy or modern bootstrap\n // template, and use the right bootstrapper for that.\n const version = (0, deploy_bootstrap_1.bootstrapVersionFromTemplate)(await this.loadTemplate());\n if (version === 0) {\n return this.legacyBootstrap(environment, sdkProvider, options);\n }\n else {\n return this.modernBootstrap(environment, sdkProvider, options);\n }\n }\n /**\n * Return the set of parameter names accepted by the current bootstrapping template\n */\n async templateParameters(legacyParams = {}) {\n const template = await this.loadTemplate(legacyParams);\n return Object.keys(template.Parameters ?? {});\n }\n async loadTemplate(legacyParams = {}) {\n switch (this.source.source) {\n case 'custom':\n return (0, util_1.loadStructuredFile)(this.source.templateFile);\n case 'default':\n return (0, util_1.loadStructuredFile)(path.join((0, util_1.bundledPackageRootDir)(__dirname), 'lib', 'api', 'bootstrap', 'bootstrap-template.yaml'));\n case 'legacy':\n return (0, legacy_template_1.legacyBootstrapTemplate)(legacyParams);\n }\n }\n}\nexports.Bootstrapper = Bootstrapper;\n/**\n * Magic parameter value that will cause the bootstrap-template.yml to NOT create a CMK but use the default key\n */\nconst USE_AWS_MANAGED_KEY = 'AWS_MANAGED_KEY';\n/**\n * Magic parameter value that will cause the bootstrap-template.yml to create a CMK\n */\nconst CREATE_NEW_KEY = '';\n/**\n * Parameter value indicating the use of the default, CDK provided permissions boundary for bootstrap-template.yml\n */\nconst CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY = 'CDK_BOOTSTRAP_PERMISSIONS_BOUNDARY';\n/**\n * Split an array-like CloudFormation parameter on ,\n *\n * An empty string is the empty array (instead of `['']`).\n */\nfunction splitCfnArray(xs) {\n if (xs === '' || xs === undefined) {\n return [];\n }\n return xs.split(',');\n}\nfunction intersection(xs, ys) {\n return new Set(Array.from(xs).filter(x => ys.has(x)));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUc3Qix5REFBa0Y7QUFDbEYsdURBQTREO0FBQzVELCtEQUEyRDtBQUMzRCxxQ0FBMkY7QUFJM0Ysc0NBQWlDO0FBQ2pDLGtEQUE2RDtBQUk3RCxNQUFhLFlBQVk7SUFJSjtJQUhGLFFBQVEsQ0FBVztJQUVwQyxZQUNtQixTQUEwQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFDaEUsUUFBa0I7UUFERCxXQUFNLEdBQU4sTUFBTSxDQUF5QztRQUdoRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU0sb0JBQW9CLENBQ3pCLFdBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLFVBQXVDLEVBQUU7UUFFekMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRSxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDakUsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFhO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBQSx5QkFBa0IsRUFBQyxRQUFRLEVBQUUsSUFB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SyxRQUFRO2dCQUNYLE9BQU8sSUFBQSx5Q0FBdUIsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbFlELG9DQWtZQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztBQUU5Qzs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQjs7R0FFRztBQUNILE1BQU0sa0NBQWtDLEdBQUcsb0NBQW9DLENBQUM7QUFFaEY7Ozs7R0FJRztBQUNILFNBQVMsYUFBYSxDQUFDLEVBQXNCO0lBQzNDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBSSxFQUFVLEVBQUUsRUFBVTtJQUM3QyxPQUFPLElBQUksR0FBRyxDQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcEVudmlyb25tZW50T3B0aW9ucywgQm9vdHN0cmFwcGluZ1BhcmFtZXRlcnMgfSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5pbXBvcnQgeyBCb290c3RyYXBTdGFjaywgYm9vdHN0cmFwVmVyc2lvbkZyb21UZW1wbGF0ZSB9IGZyb20gJy4vZGVwbG95LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBsZWdhY3lCb290c3RyYXBUZW1wbGF0ZSB9IGZyb20gJy4vbGVnYWN5LXRlbXBsYXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBidW5kbGVkUGFja2FnZVJvb3REaXIsIGxvYWRTdHJ1Y3R1cmVkRmlsZSwgc2VyaWFsaXplU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESywgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5pbXBvcnQgeyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbmV4cG9ydCB0eXBlIEJvb3RzdHJhcFNvdXJjZSA9IHsgc291cmNlOiAnbGVnYWN5JyB9IHwgeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwcGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IEJvb3RzdHJhcFNvdXJjZSA9IHsgc291cmNlOiAnZGVmYXVsdCcgfSxcbiAgICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICkge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHB1YmxpYyBib290c3RyYXBFbnZpcm9ubWVudChcbiAgICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsXG4gICAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICAgIG9wdGlvbnM6IEJvb3RzdHJhcEVudmlyb25tZW50T3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIHN3aXRjaCAodGhpcy5zb3VyY2Uuc291cmNlKSB7XG4gICAgICBjYXNlICdsZWdhY3knOlxuICAgICAgICByZXR1cm4gdGhpcy5sZWdhY3lCb290c3RyYXAoZW52aXJvbm1lbnQsIHNka1Byb3ZpZGVyLCBvcHRpb25zKTtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICByZXR1cm4gdGhpcy5tb2Rlcm5Cb290c3RyYXAoZW52aXJvbm1lbnQsIHNka1Byb3ZpZGVyLCBvcHRpb25zKTtcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUJvb3RzdHJhcChlbnZpcm9ubWVudCwgc2RrUHJvdmlkZXIsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaG93VGVtcGxhdGUoanNvbjogYm9vbGVhbikge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgdGhpcy5sb2FkVGVtcGxhdGUoKTtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHtzZXJpYWxpemVTdHJ1Y3R1cmUodGVtcGxhdGUsIGpzb24pfVxcbmApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBsZWdhY3kgYm9vdHN0cmFwIHN0YWNrXG4gICAqXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxlZ2FjeUJvb3RzdHJhcChcbiAgICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsXG4gICAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICAgIG9wdGlvbnM6IEJvb3RzdHJhcEVudmlyb25tZW50T3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG9wdGlvbnMucGFyYW1ldGVycyA/PyB7fTtcblxuICAgIGlmIChwYXJhbXMudHJ1c3RlZEFjY291bnRzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RydXN0UmVxdWlyZXNNb2Rlcm5Cb290c3RyYXAnLCAnLS10cnVzdCBjYW4gb25seSBiZSBwYXNzZWQgZm9yIHRoZSBtb2Rlcm4gYm9vdHN0cmFwIGV4cGVyaWVuY2UuJyk7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdFeGVjdXRpb25Qb2xpY2llc1JlcXVpcmVzTW9kZXJuQm9vdHN0cmFwJywgJy0tY2xvdWRmb3JtYXRpb24tZXhlY3V0aW9uLXBvbGljaWVzIGNhbiBvbmx5IGJlIHBhc3NlZCBmb3IgdGhlIG1vZGVybiBib290c3RyYXAgZXhwZXJpZW5jZS4nKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5jcmVhdGVDdXN0b21lck1hc3RlcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDdXN0b21lcktleVJlcXVpcmVzTW9kZXJuQm9vdHN0cmFwJywgJy0tYm9vdHN0cmFwLWN1c3RvbWVyLWtleSBjYW4gb25seSBiZSBwYXNzZWQgZm9yIHRoZSBtb2Rlcm4gYm9vdHN0cmFwIGV4cGVyaWVuY2UuJyk7XG4gICAgfVxuICAgIGlmIChwYXJhbXMucXVhbGlmaWVyKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdRdWFsaWZpZXJSZXF1aXJlc01vZGVybkJvb3RzdHJhcCcsICctLXF1YWxpZmllciBjYW4gb25seSBiZSBwYXNzZWQgZm9yIHRoZSBtb2Rlcm4gYm9vdHN0cmFwIGV4cGVyaWVuY2UuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9vbGtpdFN0YWNrTmFtZSA9IG9wdGlvbnMudG9vbGtpdFN0YWNrTmFtZSA/PyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRTtcbiAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgQm9vdHN0cmFwU3RhY2subG9va3VwKHNka1Byb3ZpZGVyLCBlbnZpcm9ubWVudCwgdG9vbGtpdFN0YWNrTmFtZSwgdGhpcy5pb0hlbHBlcik7XG4gICAgcmV0dXJuIGN1cnJlbnQudXBkYXRlKFxuICAgICAgYXdhaXQgdGhpcy5sb2FkVGVtcGxhdGUocGFyYW1zKSxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IG9wdGlvbnMudGVybWluYXRpb25Qcm90ZWN0aW9uID8/IGN1cnJlbnQudGVybWluYXRpb25Qcm90ZWN0aW9uLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBDSS9DRC1yZWFkeSBib290c3RyYXAgc3RhY2sgZnJvbSB0ZW1wbGF0ZVxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBtb2Rlcm5Cb290c3RyYXAoXG4gICAgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LFxuICAgIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgICBvcHRpb25zOiBCb290c3RyYXBFbnZpcm9ubWVudE9wdGlvbnMgPSB7fSxcbiAgKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBvcHRpb25zLnBhcmFtZXRlcnMgPz8ge307XG5cbiAgICBjb25zdCBib290c3RyYXBUZW1wbGF0ZSA9IGF3YWl0IHRoaXMubG9hZFRlbXBsYXRlKCk7XG5cbiAgICBjb25zdCB0b29sa2l0U3RhY2tOYW1lID0gb3B0aW9ucy50b29sa2l0U3RhY2tOYW1lID8/IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCBCb290c3RyYXBTdGFjay5sb29rdXAoc2RrUHJvdmlkZXIsIGVudmlyb25tZW50LCB0b29sa2l0U3RhY2tOYW1lLCB0aGlzLmlvSGVscGVyKTtcbiAgICBjb25zdCBwYXJ0aXRpb24gPSBhd2FpdCBjdXJyZW50LnBhcnRpdGlvbigpO1xuXG4gICAgaWYgKHBhcmFtcy5jcmVhdGVDdXN0b21lck1hc3RlcktleSAhPT0gdW5kZWZpbmVkICYmIHBhcmFtcy5rbXNLZXlJZCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgJ0NvbmZsaWN0aW5nS21zS2V5T3B0aW9ucycsXG4gICAgICAgIFwiWW91IGNhbm5vdCBwYXNzICctLWJvb3RzdHJhcC1rbXMta2V5LWlkJyBhbmQgJy0tYm9vdHN0cmFwLWN1c3RvbWVyLWtleScgdG9nZXRoZXIuIFNwZWNpZnkgb25lIG9yIHRoZSBvdGhlclwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBJZiBwZW9wbGUgcmUtYm9vdHN0cmFwLCBleGlzdGluZyBwYXJhbWV0ZXIgdmFsdWVzIGFyZSByZXVzZWQgc28gdGhhdCBwZW9wbGUgZG9uJ3QgYWNjaWRlbnRhbGx5IGNoYW5nZSB0aGUgY29uZmlndXJhdGlvblxuICAgIC8vIG9uIHRoZWlyIGJvb3RzdHJhcCBzdGFjayAodGhpcyBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgaW4gZGVwbG95U3RhY2spLiBIb3dldmVyLCB0byBkbyBwcm9wZXIgdmFsaWRhdGlvbiBvbiB0aGVcbiAgICAvLyBjb21iaW5lZCBhcmd1bWVudHMgKHN1Y2ggdGhhdCBpZiAtLXRydXN0IGhhcyBiZWVuIGdpdmVuLCAtLWNsb3VkZm9ybWF0aW9uLWV4ZWN1dGlvbi1wb2xpY2llcyBpcyBuZWNlc3NhcnkgYXMgd2VsbClcbiAgICAvLyB3ZSBuZWVkIHRvIHRha2UgdGhpcyBwYXJhbWV0ZXIgcmV1c2UgaW50byBhY2NvdW50LlxuICAgIC8vXG4gICAgLy8gSWRlYWxseSB3ZSdkIGRvIHRoaXMgaW5zaWRlIHRoZSB0ZW1wbGF0ZSwgYnV0IHRoZSBgUnVsZXNgIHNlY3Rpb24gb2YgQ0ZOXG4gICAgLy8gdGVtcGxhdGVzIGRvZXNuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIGV4cHJlc3MgdGhlIGNvbmRpdGlvbnMgdGhhdCB3ZSBuZWVkXG4gICAgLy8gKGNhbid0IHVzZSBGbjo6Sm9pbiBvciByZWZlcmVuY2UgQ29uZGl0aW9ucykgc28gd2UgZG8gaXQgaGVyZSBpbnN0ZWFkLlxuICAgIGNvbnN0IGFsbFRydXN0ZWQgPSBuZXcgU2V0KFtcbiAgICAgIC4uLnBhcmFtcy50cnVzdGVkQWNjb3VudHMgPz8gW10sXG4gICAgICAuLi5wYXJhbXMudHJ1c3RlZEFjY291bnRzRm9yTG9va3VwID8/IFtdLFxuICAgIF0pO1xuICAgIGNvbnN0IGludmFsaWQgPSBpbnRlcnNlY3Rpb24oYWxsVHJ1c3RlZCwgbmV3IFNldChwYXJhbXMudW50cnVzdGVkQWNjb3VudHMpKTtcbiAgICBpZiAoaW52YWxpZC5zaXplID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQWNjb3VudEJvdGhUcnVzdGVkQW5kVW50cnVzdGVkJywgYEFjY291bnRzIGNhbm5vdCBiZSBib3RoIHRydXN0ZWQgYW5kIHVudHJ1c3RlZC4gRm91bmQ6ICR7Wy4uLmludmFsaWRdLmpvaW4oJywnKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZW1vdmVVbnRydXN0ZWQgPSAoYWNjb3VudHM6IHN0cmluZ1tdKSA9PlxuICAgICAgYWNjb3VudHMuZmlsdGVyKGFjYyA9PiAhcGFyYW1zLnVudHJ1c3RlZEFjY291bnRzPy5tYXAoU3RyaW5nKS5pbmNsdWRlcyhTdHJpbmcoYWNjKSkpO1xuXG4gICAgY29uc3QgdHJ1c3RlZEFjY291bnRzID0gcmVtb3ZlVW50cnVzdGVkKHBhcmFtcy50cnVzdGVkQWNjb3VudHMgPz8gc3BsaXRDZm5BcnJheShjdXJyZW50LnBhcmFtZXRlcnMuVHJ1c3RlZEFjY291bnRzKSk7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5pbmZvKFxuICAgICAgYFRydXN0ZWQgYWNjb3VudHMgZm9yIGRlcGxveW1lbnQ6ICR7dHJ1c3RlZEFjY291bnRzLmxlbmd0aCA+IDAgPyB0cnVzdGVkQWNjb3VudHMuam9pbignLCAnKSA6ICcobm9uZSknfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cCA9IHJlbW92ZVVudHJ1c3RlZChcbiAgICAgIHBhcmFtcy50cnVzdGVkQWNjb3VudHNGb3JMb29rdXAgPz8gc3BsaXRDZm5BcnJheShjdXJyZW50LnBhcmFtZXRlcnMuVHJ1c3RlZEFjY291bnRzRm9yTG9va3VwKSxcbiAgICApO1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhcbiAgICAgIGBUcnVzdGVkIGFjY291bnRzIGZvciBsb29rdXA6ICR7dHJ1c3RlZEFjY291bnRzRm9yTG9va3VwLmxlbmd0aCA+IDAgPyB0cnVzdGVkQWNjb3VudHNGb3JMb29rdXAuam9pbignLCAnKSA6ICcobm9uZSknfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXMgPVxuICAgICAgcGFyYW1zLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXMgPz8gc3BsaXRDZm5BcnJheShjdXJyZW50LnBhcmFtZXRlcnMuQ2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcyk7XG4gICAgaWYgKHRydXN0ZWRBY2NvdW50cy5sZW5ndGggPT09IDAgJiYgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIEZvciBzZWxmLXRydXN0IGl0J3Mgb2theSB0byBkZWZhdWx0IHRvIEFkbWluaXN0cmF0b3JBY2Nlc3MsIGFuZCBpdCBpbXByb3ZlcyB0aGUgdXNhYmlsaXR5IG9mIGJvb3RzdHJhcHBpbmcgYSBsb3QuXG4gICAgICAvL1xuICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgbWFrZSB0aGUgaW1wbGljaXRseSBwb2xpY3kgYSBwaHlzaWNhbCBwYXJhbWV0ZXIuIFRoZSB0ZW1wbGF0ZSB3aWxsIGluZmVyIGl0IGluc3RlYWQsXG4gICAgICAvLyB3ZSBzaW1wbHkgZG8gdGhlIFVJIGFkdmVydGlzaW5nIHRoYXQgYmVoYXZpb3IgaGVyZS5cbiAgICAgIC8vXG4gICAgICAvLyBJZiB3ZSBESUQgbWFrZSBpdCBhbiBleHBsaWNpdCBwYXJhbWV0ZXIsIHdlIHdvdWxkbid0IGJlIGFibGUgdG8gdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHdoZXRoZXJcbiAgICAgIC8vIHdlIGluZmVycmVkIGl0IG9yIHdoZXRoZXIgdGhlIHVzZXIgdG9sZCB1cywgYW5kIHRoZSBzZXF1ZW5jZTpcbiAgICAgIC8vXG4gICAgICAvLyAkIGNkayBib290c3RyYXBcbiAgICAgIC8vICQgY2RrIGJvb3RzdHJhcCAtLXRydXN0IDEyMzRcbiAgICAgIC8vXG4gICAgICAvLyBXb3VsZCBsZWF2ZSBBZG1pbmlzdHJhdG9yQWNjZXNzIHBvbGljaWVzIHdpdGggYSB0cnVzdCByZWxhdGlvbnNoaXAsIHdpdGhvdXQgdGhlIHVzZXIgZXhwbGljaXRseVxuICAgICAgLy8gYXBwcm92aW5nIHRoZSB0cnVzdCBwb2xpY3kuXG4gICAgICBjb25zdCBpbXBsaWNpdFBvbGljeSA9IGBhcm46JHtwYXJ0aXRpb259OmlhbTo6YXdzOnBvbGljeS9BZG1pbmlzdHJhdG9yQWNjZXNzYDtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgYFVzaW5nIGRlZmF1bHQgZXhlY3V0aW9uIHBvbGljeSBvZiAnJHtpbXBsaWNpdFBvbGljeX0nLiBQYXNzICctLWNsb3VkZm9ybWF0aW9uLWV4ZWN1dGlvbi1wb2xpY2llcycgdG8gY3VzdG9taXplLmAsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdNaXNzaW5nRXhlY3V0aW9uUG9saWNpZXNGb3JUcnVzdCcsXG4gICAgICAgIGBQbGVhc2UgcGFzcyBcXCctLWNsb3VkZm9ybWF0aW9uLWV4ZWN1dGlvbi1wb2xpY2llc1xcJyB3aGVuIHVzaW5nIFxcJy0tdHJ1c3RcXCcgdG8gc3BlY2lmeSBkZXBsb3ltZW50IHBlcm1pc3Npb25zLiBUcnkgYSBtYW5hZ2VkIHBvbGljeSBvZiB0aGUgZm9ybSBcXCdhcm46JHtwYXJ0aXRpb259OmlhbTo6YXdzOnBvbGljeS88UG9saWN5TmFtZT5cXCcuYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbWluZCBwZW9wbGUgd2hhdCB0aGUgY3VycmVudCBzZXR0aW5ncyBhcmVcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgRXhlY3V0aW9uIHBvbGljaWVzOiAke2Nsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXMuam9pbignLCAnKX1gKTtcbiAgICB9XG5cbiAgICAvLyAqIElmIGFuIEFSTiBpcyBnaXZlbiwgdGhhdCBBUk4uIE90aGVyd2lzZTpcbiAgICAvLyAgICogJy0nIGlmIGN1c3RvbWVyS2V5ID0gZmFsc2VcbiAgICAvLyAgICogJycgaWYgY3VzdG9tZXJLZXkgPSB0cnVlXG4gICAgLy8gICAqIGlmIGN1c3RvbWVyS2V5IGlzIGFsc28gbm90IGdpdmVuXG4gICAgLy8gICAgICogdW5kZWZpbmVkIGlmIHdlIGFscmVhZHkgaGFkIGEgdmFsdWUgaW4gcGxhY2UgKHJldXNpbmcgd2hhdCB3ZSBoYWQpXG4gICAgLy8gICAgICogJy0nIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UncmUgZGVwbG95aW5nIHRoaXMgc3RhY2sgKG9yIHVwZ3JhZGluZyBmcm9tIG9sZCB0byBuZXcgYm9vdHN0cmFwKVxuICAgIGNvbnN0IGN1cnJlbnRLbXNLZXlJZCA9IGN1cnJlbnQucGFyYW1ldGVycy5GaWxlQXNzZXRzQnVja2V0S21zS2V5SWQ7XG4gICAgY29uc3Qga21zS2V5SWQgPVxuICAgICAgcGFyYW1zLmttc0tleUlkID8/XG4gICAgICAocGFyYW1zLmNyZWF0ZUN1c3RvbWVyTWFzdGVyS2V5ID09PSB0cnVlXG4gICAgICAgID8gQ1JFQVRFX05FV19LRVlcbiAgICAgICAgOiBwYXJhbXMuY3JlYXRlQ3VzdG9tZXJNYXN0ZXJLZXkgPT09IGZhbHNlIHx8IGN1cnJlbnRLbXNLZXlJZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBVU0VfQVdTX01BTkFHRURfS0VZXG4gICAgICAgICAgOiB1bmRlZmluZWQpO1xuXG4gICAgLyogQSBwZXJtaXNzaW9ucyBib3VuZGFyeSBjYW4gYmUgcHJvdmlkZWQgdmlhOlxuICAgICAqICAgIC0gdGhlIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhhbXBsZSBvbmUgc2hvdWxkIGJlIHVzZWRcbiAgICAgKiAgICAtIHRoZSBuYW1lIGluZGljYXRpbmcgdGhlIGN1c3RvbSBwZXJtaXNzaW9ucyBib3VuZGFyeSB0byBiZSB1c2VkXG4gICAgICogUmUtYm9vdHN0cmFwcGluZyB3aWxsIE5PVCBiZSBibG9ja2VkIGJ5IGVpdGhlciB0aWdodGVuaW5nIG9yIHJlbGF4aW5nIHRoZSBwZXJtaXNzaW9ucycgYm91bmRhcnkuXG4gICAgICovXG5cbiAgICAvLyBJbnB1dFBlcm1pc3Npb25zQm91bmRhcnkgaXMgYW4gYGFueWAgdHlwZSBhbmQgaWYgaXQgaXMgbm90IGRlZmluZWQgaXRcbiAgICAvLyBhcHBlYXJzIGFzIGFuIGVtcHR5IHN0cmluZyAnJy4gV2UgbmVlZCB0byBmb3JjZSBpdCB0byBldmFsdWF0ZSBhbiBlbXB0eSBzdHJpbmdcbiAgICAvLyBhcyB1bmRlZmluZWRcbiAgICBjb25zdCBjdXJyZW50UGVybWlzc2lvbnNCb3VuZGFyeTogc3RyaW5nIHwgdW5kZWZpbmVkID0gY3VycmVudC5wYXJhbWV0ZXJzLklucHV0UGVybWlzc2lvbnNCb3VuZGFyeSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgaW5wdXRQb2xpY3lOYW1lID0gcGFyYW1zLmV4YW1wbGVQZXJtaXNzaW9uc0JvdW5kYXJ5XG4gICAgICA/IENES19CT09UU1RSQVBfUEVSTUlTU0lPTlNfQk9VTkRBUllcbiAgICAgIDogcGFyYW1zLmN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk7XG4gICAgbGV0IHBvbGljeU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAoaW5wdXRQb2xpY3lOYW1lKSB7XG4gICAgICAvLyBJZiB0aGUgZXhhbXBsZSBwb2xpY3kgaXMgbm90IGFscmVhZHkgaW4gcGxhY2UsIGl0IG11c3QgYmUgY3JlYXRlZC5cbiAgICAgIGNvbnN0IHNkayA9IChhd2FpdCBzZGtQcm92aWRlci5mb3JFbnZpcm9ubWVudChlbnZpcm9ubWVudCwgTW9kZS5Gb3JXcml0aW5nKSkuc2RrO1xuICAgICAgcG9saWN5TmFtZSA9IGF3YWl0IHRoaXMuZ2V0UG9saWN5TmFtZShlbnZpcm9ubWVudCwgc2RrLCBpbnB1dFBvbGljeU5hbWUsIHBhcnRpdGlvbiwgcGFyYW1zKTtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRQZXJtaXNzaW9uc0JvdW5kYXJ5ICE9PSBwb2xpY3lOYW1lKSB7XG4gICAgICBpZiAoIWN1cnJlbnRQZXJtaXNzaW9uc0JvdW5kYXJ5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBgQWRkaW5nIG5ldyBwZXJtaXNzaW9ucyBib3VuZGFyeSAke3BvbGljeU5hbWV9YCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoIXBvbGljeU5hbWUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIGBSZW1vdmluZyBleGlzdGluZyBwZXJtaXNzaW9ucyBib3VuZGFyeSAke2N1cnJlbnRQZXJtaXNzaW9uc0JvdW5kYXJ5fWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgYENoYW5naW5nIHBlcm1pc3Npb25zIGJvdW5kYXJ5IGZyb20gJHtjdXJyZW50UGVybWlzc2lvbnNCb3VuZGFyeX0gdG8gJHtwb2xpY3lOYW1lfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYm9vdHN0cmFwVGVtcGxhdGVQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+ID0ge1xuICAgICAgRmlsZUFzc2V0c0J1Y2tldE5hbWU6IHBhcmFtcy5idWNrZXROYW1lLFxuICAgICAgRmlsZUFzc2V0c0J1Y2tldEttc0tleUlkOiBrbXNLZXlJZCxcbiAgICAgIC8vIEVtcHR5IGFycmF5IGJlY29tZXMgZW1wdHkgc3RyaW5nXG4gICAgICBUcnVzdGVkQWNjb3VudHM6IHRydXN0ZWRBY2NvdW50cy5qb2luKCcsJyksXG4gICAgICBUcnVzdGVkQWNjb3VudHNGb3JMb29rdXA6IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cC5qb2luKCcsJyksXG4gICAgICBDbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblBvbGljaWVzOiBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblBvbGljaWVzLmpvaW4oJywnKSxcbiAgICAgIFF1YWxpZmllcjogcGFyYW1zLnF1YWxpZmllcixcbiAgICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjpcbiAgICAgICAgcGFyYW1zLnB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbiB8fCBwYXJhbXMucHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/ICd0cnVlJ1xuICAgICAgICAgIDogJ2ZhbHNlJyxcbiAgICAgIElucHV0UGVybWlzc2lvbnNCb3VuZGFyeTogcG9saWN5TmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdGVtcGxhdGVQYXJhbWV0ZXJzID0gYXdhaXQgdGhpcy50ZW1wbGF0ZVBhcmFtZXRlcnMoKTtcblxuICAgIC8vIENvbmRpdGlvbmFsbHkgc2V0IHRoZXNlIHBhcmFtZXRlcnM6IG9ubHkgc2V0IHRoZXNlIHBhcmFtZXRlcnMgaWYgdGhleSBhcmUgYWNjZXB0ZWQgYnkgdGhlIHRlbXBsYXRlLlxuICAgIC8vIElmIHdlIHBhc3MgdGhlbSB1bmNvbmRpdGlvbmFsbHksIG9sZGVyIGN1c3RvbWl6ZWQgdGVtcGxhdGVzIHRoYXQgZG9uJ3Qga25vdyBhYm91dCB0aGVzZVxuICAgIC8vIHBhcmFtZXRlcnMgeWV0IHdpbGwgZmFpbCB0byBkZXBsb3kuXG4gICAgaWYgKHBhcmFtcy5kZW55RXh0ZXJuYWxJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIXRlbXBsYXRlUGFyYW1ldGVycy5pbmNsdWRlcygnRGVueUV4dGVybmFsSWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEZW55RXh0ZXJuYWxJZE5vdFN1cHBvcnRlZCcsICdUaGUgc2VsZWN0ZWQgYm9vdHN0cmFwIHRlbXBsYXRlIGRvZXMgbm90IGFjY2VwdCB0aGUgRGVueUV4dGVybmFsSWQgcGFyYW1ldGVyJyk7XG4gICAgICB9XG4gICAgICBib290c3RyYXBUZW1wbGF0ZVBhcmFtZXRlcnMuRGVueUV4dGVybmFsSWQgPSBgJHtwYXJhbXMuZGVueUV4dGVybmFsSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudC51cGRhdGUoYm9vdHN0cmFwVGVtcGxhdGUsIGJvb3RzdHJhcFRlbXBsYXRlUGFyYW1ldGVycywge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHRlcm1pbmF0aW9uUHJvdGVjdGlvbjogb3B0aW9ucy50ZXJtaW5hdGlvblByb3RlY3Rpb24gPz8gY3VycmVudC50ZXJtaW5hdGlvblByb3RlY3Rpb24sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFBvbGljeU5hbWUoXG4gICAgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LFxuICAgIHNkazogU0RLLFxuICAgIHBlcm1pc3Npb25zQm91bmRhcnk6IHN0cmluZyxcbiAgICBwYXJ0aXRpb246IHN0cmluZyxcbiAgICBwYXJhbXM6IEJvb3RzdHJhcHBpbmdQYXJhbWV0ZXJzLFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmIChwZXJtaXNzaW9uc0JvdW5kYXJ5ICE9PSBDREtfQk9PVFNUUkFQX1BFUk1JU1NJT05TX0JPVU5EQVJZKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlUG9saWN5TmFtZShwZXJtaXNzaW9uc0JvdW5kYXJ5KTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocGVybWlzc2lvbnNCb3VuZGFyeSk7XG4gICAgfVxuICAgIC8vIGlmIG5vIFF1YWxpZmllciBpcyBzdXBwbGllZCwgcmVzb3J0IHRvIHRoZSBkZWZhdWx0IG9uZVxuICAgIGNvbnN0IGFybiA9IGF3YWl0IHRoaXMuZ2V0RXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnkoXG4gICAgICBwYXJhbXMucXVhbGlmaWVyID8/ICdobmI2NTlmZHMnLFxuICAgICAgcGFydGl0aW9uLFxuICAgICAgZW52aXJvbm1lbnQuYWNjb3VudCxcbiAgICAgIHNkayxcbiAgICApO1xuICAgIGNvbnN0IHBvbGljeU5hbWUgPSBhcm4uc3BsaXQoJy8nKS5wb3AoKTtcbiAgICBpZiAoIXBvbGljeU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Blcm1pc3Npb25Cb3VuZGFyeVJldHJpZXZhbEZhaWxlZCcsICdDb3VsZCBub3QgcmV0cmlldmUgdGhlIGV4YW1wbGUgcGVybWlzc2lvbiBib3VuZGFyeSEnKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwb2xpY3lOYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnkoXG4gICAgcXVhbGlmaWVyOiBzdHJpbmcsXG4gICAgcGFydGl0aW9uOiBzdHJpbmcsXG4gICAgYWNjb3VudDogc3RyaW5nLFxuICAgIHNkazogU0RLLFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGlhbSA9IHNkay5pYW0oKTtcblxuICAgIGxldCBwb2xpY3lOYW1lID0gYGNkay0ke3F1YWxpZmllcn0tcGVybWlzc2lvbnMtYm91bmRhcnlgO1xuICAgIGNvbnN0IGFybiA9IGBhcm46JHtwYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpwb2xpY3kvJHtwb2xpY3lOYW1lfWA7XG5cbiAgICB0cnkge1xuICAgICAgbGV0IGdldFBvbGljeVJlc3AgPSBhd2FpdCBpYW0uZ2V0UG9saWN5KHsgUG9saWN5QXJuOiBhcm4gfSk7XG4gICAgICBpZiAoZ2V0UG9saWN5UmVzcC5Qb2xpY3kpIHtcbiAgICAgICAgcmV0dXJuIGFybjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0UG9saWN5Lmh0bWwjQVBJX0dldFBvbGljeV9FcnJvcnNcbiAgICAgIGlmIChlLm5hbWUgPT09ICdOb1N1Y2hFbnRpdHknKSB7XG4gICAgICAgIC8vIG5vb3AsIHByb2NlZWQgd2l0aCBjcmVhdGluZyB0aGUgcG9saWN5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvbGljeURvYyA9IHtcbiAgICAgIFZlcnNpb246ICcyMDEyLTEwLTE3JyxcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBbJyonXSxcbiAgICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBTaWQ6ICdFeHBsaWNpdEFsbG93QWxsJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIENvbmRpdGlvbjoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdpYW06UGVybWlzc2lvbnNCb3VuZGFyeSc6IGBhcm46JHtwYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpwb2xpY3kvY2RrLSR7cXVhbGlmaWVyfS1wZXJtaXNzaW9ucy1ib3VuZGFyeWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAnaWFtOkNyZWF0ZVVzZXInLFxuICAgICAgICAgICAgJ2lhbTpDcmVhdGVSb2xlJyxcbiAgICAgICAgICAgICdpYW06UHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnknLFxuICAgICAgICAgICAgJ2lhbTpQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBTaWQ6ICdEZW55QWNjZXNzSWZSZXF1aXJlZFBlcm1Cb3VuZGFyeUlzTm90QmVpbmdBcHBsaWVkJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogW1xuICAgICAgICAgICAgJ2lhbTpDcmVhdGVQb2xpY3lWZXJzaW9uJyxcbiAgICAgICAgICAgICdpYW06RGVsZXRlUG9saWN5JyxcbiAgICAgICAgICAgICdpYW06RGVsZXRlUG9saWN5VmVyc2lvbicsXG4gICAgICAgICAgICAnaWFtOlNldERlZmF1bHRQb2xpY3lWZXJzaW9uJyxcbiAgICAgICAgICBdLFxuICAgICAgICAgIFJlc291cmNlOiBgYXJuOiR7cGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cG9saWN5L2Nkay0ke3F1YWxpZmllcn0tcGVybWlzc2lvbnMtYm91bmRhcnlgLFxuICAgICAgICAgIEVmZmVjdDogJ0RlbnknLFxuICAgICAgICAgIFNpZDogJ0RlbnlQZXJtQm91bmRhcnlJQU1Qb2xpY3lBbHRlcmF0aW9uJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogWydpYW06RGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnknLCAnaWFtOkRlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5J10sXG4gICAgICAgICAgUmVzb3VyY2U6ICcqJyxcbiAgICAgICAgICBFZmZlY3Q6ICdEZW55JyxcbiAgICAgICAgICBTaWQ6ICdEZW55UmVtb3ZhbE9mUGVybUJvdW5kYXJ5RnJvbUFueVVzZXJPclJvbGUnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBQb2xpY3lOYW1lOiBwb2xpY3lOYW1lLFxuICAgICAgUG9saWN5RG9jdW1lbnQ6IEpTT04uc3RyaW5naWZ5KHBvbGljeURvYyksXG4gICAgfTtcbiAgICBjb25zdCBjcmVhdGVQb2xpY3lSZXNwb25zZSA9IGF3YWl0IGlhbS5jcmVhdGVQb2xpY3kocmVxdWVzdCk7XG4gICAgaWYgKGNyZWF0ZVBvbGljeVJlc3BvbnNlLlBvbGljeT8uQXJuKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUG9saWN5UmVzcG9uc2UuUG9saWN5LkFybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignUGVybWlzc2lvbkJvdW5kYXJ5Q3JlYXRlRmFpbGVkJywgYENvdWxkIG5vdCByZXRyaWV2ZSB0aGUgZXhhbXBsZSBwZXJtaXNzaW9uIGJvdW5kYXJ5ICR7YXJufSFgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUG9saWN5TmFtZShwZXJtaXNzaW9uc0JvdW5kYXJ5OiBzdHJpbmcpIHtcbiAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVBvbGljeS5odG1sXG4gICAgLy8gQWRkZWQgc3VwcG9ydCBmb3IgcG9saWN5IG5hbWVzIHdpdGggYSBwYXRoXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMjYzMjBcbiAgICBjb25zdCByZWdleHA6IFJlZ0V4cCA9IC9bXFx3K1xcLz0sLkAtXSsvO1xuICAgIGNvbnN0IG1hdGNoZXMgPSByZWdleHAuZXhlYyhwZXJtaXNzaW9uc0JvdW5kYXJ5KTtcbiAgICBpZiAoIShtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID09PSAxICYmIG1hdGNoZXNbMF0gPT09IHBlcm1pc3Npb25zQm91bmRhcnkpKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbnZhbGlkUGVybWlzc2lvbkJvdW5kYXJ5TmFtZScsIGBUaGUgcGVybWlzc2lvbnMgYm91bmRhcnkgbmFtZSAke3Blcm1pc3Npb25zQm91bmRhcnl9IGRvZXMgbm90IG1hdGNoIHRoZSBJQU0gY29udmVudGlvbnMuYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjdXN0b21Cb290c3RyYXAoXG4gICAgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LFxuICAgIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgICBvcHRpb25zOiBCb290c3RyYXBFbnZpcm9ubWVudE9wdGlvbnMgPSB7fSxcbiAgKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICAvLyBMb29rIGF0IHRoZSB0ZW1wbGF0ZSwgZGVjaWRlIHdoZXRoZXIgaXQncyBtb3N0IGxpa2VseSBhIGxlZ2FjeSBvciBtb2Rlcm4gYm9vdHN0cmFwXG4gICAgLy8gdGVtcGxhdGUsIGFuZCB1c2UgdGhlIHJpZ2h0IGJvb3RzdHJhcHBlciBmb3IgdGhhdC5cbiAgICBjb25zdCB2ZXJzaW9uID0gYm9vdHN0cmFwVmVyc2lvbkZyb21UZW1wbGF0ZShhd2FpdCB0aGlzLmxvYWRUZW1wbGF0ZSgpKTtcbiAgICBpZiAodmVyc2lvbiA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMubGVnYWN5Qm9vdHN0cmFwKGVudmlyb25tZW50LCBzZGtQcm92aWRlciwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVybkJvb3RzdHJhcChlbnZpcm9ubWVudCwgc2RrUHJvdmlkZXIsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNldCBvZiBwYXJhbWV0ZXIgbmFtZXMgYWNjZXB0ZWQgYnkgdGhlIGN1cnJlbnQgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB0ZW1wbGF0ZVBhcmFtZXRlcnMobGVnYWN5UGFyYW1zOiBCb290c3RyYXBwaW5nUGFyYW1ldGVycyA9IHt9KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgdGhpcy5sb2FkVGVtcGxhdGUobGVnYWN5UGFyYW1zKTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyh0ZW1wbGF0ZS5QYXJhbWV0ZXJzID8/IHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFRlbXBsYXRlKGxlZ2FjeVBhcmFtczogQm9vdHN0cmFwcGluZ1BhcmFtZXRlcnMgPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgc3dpdGNoICh0aGlzLnNvdXJjZS5zb3VyY2UpIHtcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgIHJldHVybiBsb2FkU3RydWN0dXJlZEZpbGUodGhpcy5zb3VyY2UudGVtcGxhdGVGaWxlKTtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICByZXR1cm4gbG9hZFN0cnVjdHVyZWRGaWxlKHBhdGguam9pbihidW5kbGVkUGFja2FnZVJvb3REaXIoX19kaXJuYW1lKSwgJ2xpYicsICdhcGknLCAnYm9vdHN0cmFwJywgJ2Jvb3RzdHJhcC10ZW1wbGF0ZS55YW1sJykpO1xuICAgICAgY2FzZSAnbGVnYWN5JzpcbiAgICAgICAgcmV0dXJuIGxlZ2FjeUJvb3RzdHJhcFRlbXBsYXRlKGxlZ2FjeVBhcmFtcyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTWFnaWMgcGFyYW1ldGVyIHZhbHVlIHRoYXQgd2lsbCBjYXVzZSB0aGUgYm9vdHN0cmFwLXRlbXBsYXRlLnltbCB0byBOT1QgY3JlYXRlIGEgQ01LIGJ1dCB1c2UgdGhlIGRlZmF1bHQga2V5XG4gKi9cbmNvbnN0IFVTRV9BV1NfTUFOQUdFRF9LRVkgPSAnQVdTX01BTkFHRURfS0VZJztcblxuLyoqXG4gKiBNYWdpYyBwYXJhbWV0ZXIgdmFsdWUgdGhhdCB3aWxsIGNhdXNlIHRoZSBib290c3RyYXAtdGVtcGxhdGUueW1sIHRvIGNyZWF0ZSBhIENNS1xuICovXG5jb25zdCBDUkVBVEVfTkVXX0tFWSA9ICcnO1xuLyoqXG4gKiBQYXJhbWV0ZXIgdmFsdWUgaW5kaWNhdGluZyB0aGUgdXNlIG9mIHRoZSBkZWZhdWx0LCBDREsgcHJvdmlkZWQgcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcC10ZW1wbGF0ZS55bWxcbiAqL1xuY29uc3QgQ0RLX0JPT1RTVFJBUF9QRVJNSVNTSU9OU19CT1VOREFSWSA9ICdDREtfQk9PVFNUUkFQX1BFUk1JU1NJT05TX0JPVU5EQVJZJztcblxuLyoqXG4gKiBTcGxpdCBhbiBhcnJheS1saWtlIENsb3VkRm9ybWF0aW9uIHBhcmFtZXRlciBvbiAsXG4gKlxuICogQW4gZW1wdHkgc3RyaW5nIGlzIHRoZSBlbXB0eSBhcnJheSAoaW5zdGVhZCBvZiBgWycnXWApLlxuICovXG5mdW5jdGlvbiBzcGxpdENmbkFycmF5KHhzOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gIGlmICh4cyA9PT0gJycgfHwgeHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4geHMuc3BsaXQoJywnKTtcbn1cblxuZnVuY3Rpb24gaW50ZXJzZWN0aW9uPEE+KHhzOiBTZXQ8QT4sIHlzOiBTZXQ8QT4pOiBTZXQ8QT4ge1xuICByZXR1cm4gbmV3IFNldDxBPihBcnJheS5mcm9tKHhzKS5maWx0ZXIoeCA9PiB5cy5oYXMoeCkpKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_BOOTSTRAP_VARIANT = exports.BOOTSTRAP_VARIANT_PARAMETER = exports.BOOTSTRAP_VERSION_RESOURCE = exports.BOOTSTRAP_VERSION_OUTPUT = exports.BUCKET_DOMAIN_NAME_OUTPUT = exports.REPOSITORY_NAME_OUTPUT = exports.BUCKET_NAME_OUTPUT = void 0;\nexports.BUCKET_NAME_OUTPUT = 'BucketName';\nexports.REPOSITORY_NAME_OUTPUT = 'ImageRepositoryName';\nexports.BUCKET_DOMAIN_NAME_OUTPUT = 'BucketDomainName';\nexports.BOOTSTRAP_VERSION_OUTPUT = 'BootstrapVersion';\nexports.BOOTSTRAP_VERSION_RESOURCE = 'CdkBootstrapVersion';\nexports.BOOTSTRAP_VARIANT_PARAMETER = 'BootstrapVariant';\n/**\n * The assumed vendor of a template in case it is not set\n */\nexports.DEFAULT_BOOTSTRAP_VARIANT = 'AWS CDK: Default Resources';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlhLFFBQUEsa0JBQWtCLEdBQUcsWUFBWSxDQUFDO0FBQ2xDLFFBQUEsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7QUFDL0MsUUFBQSx5QkFBeUIsR0FBRyxrQkFBa0IsQ0FBQztBQUMvQyxRQUFBLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0FBQzlDLFFBQUEsMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDbkQsUUFBQSwyQkFBMkIsR0FBRyxrQkFBa0IsQ0FBQztBQUU5RDs7R0FFRztBQUNVLFFBQUEseUJBQXlCLEdBQUcsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJvb3RzdHJhcFNvdXJjZSB9IGZyb20gJy4vYm9vdHN0cmFwLWVudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vdGFncyc7XG5cbmV4cG9ydCBjb25zdCBCVUNLRVRfTkFNRV9PVVRQVVQgPSAnQnVja2V0TmFtZSc7XG5leHBvcnQgY29uc3QgUkVQT1NJVE9SWV9OQU1FX09VVFBVVCA9ICdJbWFnZVJlcG9zaXRvcnlOYW1lJztcbmV4cG9ydCBjb25zdCBCVUNLRVRfRE9NQUlOX05BTUVfT1VUUFVUID0gJ0J1Y2tldERvbWFpbk5hbWUnO1xuZXhwb3J0IGNvbnN0IEJPT1RTVFJBUF9WRVJTSU9OX09VVFBVVCA9ICdCb290c3RyYXBWZXJzaW9uJztcbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfVkVSU0lPTl9SRVNPVVJDRSA9ICdDZGtCb290c3RyYXBWZXJzaW9uJztcbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfVkFSSUFOVF9QQVJBTUVURVIgPSAnQm9vdHN0cmFwVmFyaWFudCc7XG5cbi8qKlxuICogVGhlIGFzc3VtZWQgdmVuZG9yIG9mIGEgdGVtcGxhdGUgaW4gY2FzZSBpdCBpcyBub3Qgc2V0XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JPT1RTVFJBUF9WQVJJQU5UID0gJ0FXUyBDREs6IERlZmF1bHQgUmVzb3VyY2VzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYm9vdHN0cmFwRW52aXJvbm1lbnQgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwRW52aXJvbm1lbnRPcHRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcm9sZUFybj86IFN0cmluZ1dpdGhvdXRQbGFjZWhvbGRlcnM7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBCb290c3RyYXBwaW5nUGFyYW1ldGVycztcbiAgcmVhZG9ubHkgZm9yY2VEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgYm9vdHN0cmFwIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTW9kZXJuIHYyLXN0eWxlIGJvb3RzdHJhcHBpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZT86IEJvb3RzdHJhcFNvdXJjZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBleGVjdXRlIHRoZSBjaGFuZ2VzZXQgb3Igb25seSBjcmVhdGUgaXQgYW5kIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRhZ3MgZm9yIGNka3Rvb2xraXQgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb24uXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvdXNpbmctY2ZuLXByb3RlY3Qtc3RhY2tzLmh0bWxcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVybWluYXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIHByZXZpb3VzIHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBJZiBub3Qgc2V0LCBhbGwgcGFyYW1ldGVycyBtdXN0IGJlIHNwZWNpZmllZCBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgdXNlUHJldmlvdXNQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcHBpbmdQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRvIGJlIGdpdmVuIHRvIHRoZSBDREsgQm9vdHN0cmFwIGJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5hbWUgaXMgZ2VuZXJhdGVkIGJ5IENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgYW4gZXhpc3RpbmcgS01TIGtleSB0byBiZSB1c2VkIGZvciBlbmNyeXB0aW5nIGl0ZW1zIGluIHRoZSBidWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBkZWZhdWx0IEtNUyBrZXkgb3IgY3JlYXRlIGEgY3VzdG9tIG9uZVxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGNyZWF0ZSBhIG5ldyBjdXN0b21lciBtYXN0ZXIga2V5IChDTUspXG4gICAqXG4gICAqIE9ubHkgYXBwbGllcyB0byBtb2Rlcm4gYm9vdHN0cmFwcGluZy4gTGVnYWN5IGJvb3RzdHJhcHBpbmcgd2lsbCBuZXZlciBjcmVhdGVcbiAgICogYSBDTUssIG9ubHkgdXNlIHRoZSBkZWZhdWx0IFMzIGtleS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUN1c3RvbWVyTWFzdGVyS2V5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgYXJlIHRydXN0ZWQgdG8gZGVwbG95IGludG8gdGhlIGVudmlyb25tZW50IGJlaW5nIGJvb3RzdHJhcHBlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHRoZSBib290c3RyYXBwZWQgYWNjb3VudCBjYW4gZGVwbG95IGludG8gdGhpcyBlbnZpcm9ubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdHJ1c3RlZEFjY291bnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IGFyZSB0cnVzdGVkIHRvIGxvb2sgdXAgdmFsdWVzIGluIHRoZSBlbnZpcm9ubWVudCBiZWluZyBib290c3RyYXBwZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gT25seSB0aGUgYm9vdHN0cmFwcGVkIGFjY291bnQgY2FuIGxvb2sgdXAgdmFsdWVzIGluIHRoaXMgZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBzaG91bGQgbm90IGJlIHRydXN0ZWQgYnkgdGhlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudC5cbiAgICogSWYgdGhlc2UgYWNjb3VudHMgYXJlIGFscmVhZHkgdHJ1c3RlZCwgdGhleSB3aWxsIGJlIHJlbW92ZWQgb24gYm9vdHN0cmFwcGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhY2NvdW50IHdpbGwgYmUgdW50cnVzdGVkXG4gICAqL1xuICByZWFkb25seSB1bnRydXN0ZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOcyBvZiB0aGUgSUFNIG1hbmFnZWQgcG9saWNpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIHJvbGUgcGVyZm9ybWluZyBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50cy5cbiAgICogSW4gbW9zdCBjYXNlcywgdGhpcyB3aWxsIGJlIHRoZSBBZG1pbmlzdHJhdG9yQWNjZXNzIHBvbGljeS5cbiAgICogQXQgbGVhc3Qgb25lIHBvbGljeSBpcyByZXF1aXJlZCBpZiBgdHJ1c3RlZEFjY291bnRzYCB3ZXJlIHBhc3NlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgcm9sZSB3aWxsIGhhdmUgbm8gcG9saWNpZXMgYXR0YWNoZWRcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllciB0byBkaXN0aW5ndWlzaCBtdWx0aXBsZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBxdWFsaWZpZXJcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIFMzIFN0YWdpbmcgQnVja2V0IFB1YmxpYyBBY2Nlc3MgQmxvY2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgY3VzdG9tZXIncyBjdXN0b20gcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVueSBBc3N1bWVSb2xlIGNhbGxzIHdpdGggYW4gRXh0ZXJuYWxJZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRlbXBsYXRlIGRlZmF1bHQgKHRydWUpXG4gICAqL1xuICByZWFkb25seSBkZW55RXh0ZXJuYWxJZD86IGJvb2xlYW47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BootstrapStack = void 0;\nexports.bootstrapVersionFromTemplate = bootstrapVersionFromTemplate;\nexports.bootstrapVariantFromTemplate = bootstrapVariantFromTemplate;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\nconst fs = require(\"fs-extra\");\nconst bootstrap_props_1 = require(\"./bootstrap-props\");\nconst deployments_1 = require(\"../deployments\");\nconst deploy_stack_1 = require(\"../deployments/deploy-stack\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\n/**\n * A class to hold state around stack bootstrapping\n *\n * This class exists so we can break bootstrapping into 2 phases:\n *\n * ```ts\n * const current = BootstrapStack.lookup(...);\n * // ...\n * current.update(newTemplate, ...);\n * ```\n *\n * And do something in between the two phases (such as look at the\n * current bootstrap stack and doing something intelligent).\n */\nclass BootstrapStack {\n sdkProvider;\n sdk;\n resolvedEnvironment;\n toolkitStackName;\n currentToolkitInfo;\n ioHelper;\n static async lookup(sdkProvider, environment, toolkitStackName, ioHelper) {\n toolkitStackName = toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n const resolvedEnvironment = await sdkProvider.resolveEnvironment(environment);\n const sdk = (await sdkProvider.forEnvironment(resolvedEnvironment, plugin_1.Mode.ForWriting)).sdk;\n const currentToolkitInfo = await toolkit_info_1.ToolkitInfo.lookup(resolvedEnvironment, sdk, ioHelper, toolkitStackName);\n return new BootstrapStack(sdkProvider, sdk, resolvedEnvironment, toolkitStackName, currentToolkitInfo, ioHelper);\n }\n constructor(sdkProvider, sdk, resolvedEnvironment, toolkitStackName, currentToolkitInfo, ioHelper) {\n this.sdkProvider = sdkProvider;\n this.sdk = sdk;\n this.resolvedEnvironment = resolvedEnvironment;\n this.toolkitStackName = toolkitStackName;\n this.currentToolkitInfo = currentToolkitInfo;\n this.ioHelper = ioHelper;\n }\n get parameters() {\n return this.currentToolkitInfo.found ? this.currentToolkitInfo.bootstrapStack.parameters : {};\n }\n get terminationProtection() {\n return this.currentToolkitInfo.found ? this.currentToolkitInfo.bootstrapStack.terminationProtection : undefined;\n }\n async partition() {\n return (await this.sdk.currentAccount()).partition;\n }\n /**\n * Perform the actual deployment of a bootstrap stack, given a template and some parameters\n */\n async update(template, parameters, options) {\n if (this.currentToolkitInfo.found && !options.forceDeployment) {\n // Safety checks\n const abortResponse = {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: {},\n stackArn: this.currentToolkitInfo.bootstrapStack.stackId,\n };\n // Validate that the bootstrap stack we're trying to replace is from the same variant as the one we're trying to deploy\n const currentVariant = this.currentToolkitInfo.variant;\n const newVariant = bootstrapVariantFromTemplate(template);\n if (currentVariant !== newVariant) {\n await this.ioHelper.defaults.warn(`Bootstrap stack already exists, containing '${currentVariant}'. Not overwriting it with a template containing '${newVariant}' (use --force if you intend to overwrite)`);\n return abortResponse;\n }\n // Validate that we're not downgrading the bootstrap stack\n const newVersion = bootstrapVersionFromTemplate(template);\n const currentVersion = this.currentToolkitInfo.version;\n if (newVersion < currentVersion) {\n await this.ioHelper.defaults.warn(`Bootstrap stack already at version ${currentVersion}. Not downgrading it to version ${newVersion} (use --force if you intend to downgrade)`);\n if (newVersion === 0) {\n // A downgrade with 0 as target version means we probably have a new-style bootstrap in the account,\n // and an old-style bootstrap as current target, which means the user probably forgot to put this flag in.\n await this.ioHelper.defaults.warn(\"(Did you set the '@aws-cdk/core:newStyleStackSynthesis' feature flag in cdk.json?)\");\n }\n return abortResponse;\n }\n }\n const outdir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdk-bootstrap'));\n try {\n const builder = new cloud_assembly_api_1.CloudAssemblyBuilder(outdir);\n const templateFile = `${this.toolkitStackName}.template.json`;\n await fs.writeJson(path.join(builder.outdir, templateFile), template, {\n spaces: 2,\n });\n builder.addArtifact(this.toolkitStackName, {\n type: cloud_assembly_schema_1.ArtifactType.AWS_CLOUDFORMATION_STACK,\n environment: cloud_assembly_api_1.EnvironmentUtils.format(this.resolvedEnvironment.account, this.resolvedEnvironment.region),\n properties: {\n templateFile,\n terminationProtection: options.terminationProtection ?? false,\n },\n });\n const assembly = builder.buildAssembly();\n const ret = await (0, deploy_stack_1.deployStack)({\n stack: assembly.getStackByName(this.toolkitStackName),\n resolvedEnvironment: this.resolvedEnvironment,\n sdk: this.sdk,\n sdkProvider: this.sdkProvider,\n forceDeployment: options.forceDeployment,\n roleArn: options.roleArn,\n tags: options.tags,\n deploymentMethod: { method: 'change-set', execute: options.execute },\n parameters,\n usePreviousParameters: options.usePreviousParameters ?? true,\n // Obviously we can't need a bootstrap stack to deploy a bootstrap stack\n envResources: new environment_1.NoBootstrapStackEnvironmentResources(this.resolvedEnvironment, this.sdk, this.ioHelper),\n }, this.ioHelper);\n (0, deployments_1.assertIsSuccessfulDeployStackResult)(ret);\n return ret;\n }\n finally {\n await fs.rm(outdir, { recursive: true, force: true });\n }\n }\n}\nexports.BootstrapStack = BootstrapStack;\nfunction bootstrapVersionFromTemplate(template) {\n const versionSources = [\n template.Outputs?.[bootstrap_props_1.BOOTSTRAP_VERSION_OUTPUT]?.Value,\n template.Resources?.[bootstrap_props_1.BOOTSTRAP_VERSION_RESOURCE]?.Properties?.Value,\n ];\n for (const vs of versionSources) {\n if (typeof vs === 'number') {\n return vs;\n }\n if (typeof vs === 'string' && !isNaN(parseInt(vs, 10))) {\n return parseInt(vs, 10);\n }\n }\n return 0;\n}\nfunction bootstrapVariantFromTemplate(template) {\n return template.Parameters?.[bootstrap_props_1.BOOTSTRAP_VARIANT_PARAMETER]?.Default ?? bootstrap_props_1.DEFAULT_BOOTSTRAP_VARIANT;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlcGxveS1ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEpBLG9FQWVDO0FBRUQsb0VBRUM7QUFqTEQseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3QixvRUFBcUY7QUFDckYsMEVBQThEO0FBQzlELCtCQUErQjtBQUUvQix1REFLMkI7QUFHM0IsZ0RBQXFFO0FBQ3JFLDhEQUEwRDtBQUMxRCxnREFBc0U7QUFFdEUsc0NBQWlDO0FBQ2pDLGtEQUEwRTtBQUUxRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxjQUFjO0lBYU47SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBakJaLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQXdCLEVBQUUsV0FBd0IsRUFBRSxnQkFBd0IsRUFBRSxRQUFrQjtRQUN6SCxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSx5Q0FBMEIsQ0FBQztRQUVsRSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sV0FBVyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLGFBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUV6RixNQUFNLGtCQUFrQixHQUFHLE1BQU0sMEJBQVcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTFHLE9BQU8sSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsWUFDbUIsV0FBd0IsRUFDeEIsR0FBUSxFQUNSLG1CQUFnQyxFQUNoQyxnQkFBd0IsRUFD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LFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyw2Q0FBMkIsQ0FBQyxFQUFFLE9BQU8sSUFBSSwyQ0FBeUIsQ0FBQztBQUNsRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnQgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUJ1aWxkZXIsIEVudmlyb25tZW50VXRpbHMgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgQXJ0aWZhY3RUeXBlIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi9ib290c3RyYXAtcHJvcHMnO1xuaW1wb3J0IHtcbiAgQk9PVFNUUkFQX1ZBUklBTlRfUEFSQU1FVEVSLFxuICBCT09UU1RSQVBfVkVSU0lPTl9PVVRQVVQsXG4gIEJPT1RTVFJBUF9WRVJTSU9OX1JFU09VUkNFLFxuICBERUZBVUxUX0JPT1RTVFJBUF9WQVJJQU5ULFxufSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5pbXBvcnQgdHlwZSB7IFNESywgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgYXNzZXJ0SXNTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi9kZXBsb3ltZW50cyc7XG5pbXBvcnQgeyBkZXBsb3lTdGFjayB9IGZyb20gJy4uL2RlcGxveW1lbnRzL2RlcGxveS1zdGFjayc7XG5pbXBvcnQgeyBOb0Jvb3RzdHJhcFN0YWNrRW52aXJvbm1lbnRSZXNvdXJjZXMgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luJztcbmltcG9ydCB7IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FLCBUb29sa2l0SW5mbyB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbi8qKlxuICogQSBjbGFzcyB0byBob2xkIHN0YXRlIGFyb3VuZCBzdGFjayBib290c3RyYXBwaW5nXG4gKlxuICogVGhpcyBjbGFzcyBleGlzdHMgc28gd2UgY2FuIGJyZWFrIGJvb3RzdHJhcHBpbmcgaW50byAyIHBoYXNlczpcbiAqXG4gKiBgYGB0c1xuICogY29uc3QgY3VycmVudCA9IEJvb3RzdHJhcFN0YWNrLmxvb2t1cCguLi4pO1xuICogLy8gLi4uXG4gKiBjdXJyZW50LnVwZGF0ZShuZXdUZW1wbGF0ZSwgLi4uKTtcbiAqIGBgYFxuICpcbiAqIEFuZCBkbyBzb21ldGhpbmcgaW4gYmV0d2VlbiB0aGUgdHdvIHBoYXNlcyAoc3VjaCBhcyBsb29rIGF0IHRoZVxuICogY3VycmVudCBib290c3RyYXAgc3RhY2sgYW5kIGRvaW5nIHNvbWV0aGluZyBpbnRlbGxpZ2VudCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTdGFjayB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbG9va3VwKHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlciwgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LCB0b29sa2l0U3RhY2tOYW1lOiBzdHJpbmcsIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRvb2xraXRTdGFja05hbWUgPSB0b29sa2l0U3RhY2tOYW1lID8/IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FO1xuXG4gICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudCA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChlbnZpcm9ubWVudCk7XG4gICAgY29uc3Qgc2RrID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KHJlc29sdmVkRW52aXJvbm1lbnQsIE1vZGUuRm9yV3JpdGluZykpLnNkaztcblxuICAgIGNvbnN0IGN1cnJlbnRUb29sa2l0SW5mbyA9IGF3YWl0IFRvb2xraXRJbmZvLmxvb2t1cChyZXNvbHZlZEVudmlyb25tZW50LCBzZGssIGlvSGVscGVyLCB0b29sa2l0U3RhY2tOYW1lKTtcblxuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwU3RhY2soc2RrUHJvdmlkZXIsIHNkaywgcmVzb2x2ZWRFbnZpcm9ubWVudCwgdG9vbGtpdFN0YWNrTmFtZSwgY3VycmVudFRvb2xraXRJbmZvLCBpb0hlbHBlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZGs6IFNESyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVkRW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcmFtZXRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFRvb2xraXRJbmZvLmZvdW5kID8gdGhpcy5jdXJyZW50VG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVycyA6IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCB0ZXJtaW5hdGlvblByb3RlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFRvb2xraXRJbmZvLmZvdW5kID8gdGhpcy5jdXJyZW50VG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBhcnRpdGlvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gdGhlIGFjdHVhbCBkZXBsb3ltZW50IG9mIGEgYm9vdHN0cmFwIHN0YWNrLCBnaXZlbiBhIHRlbXBsYXRlIGFuZCBzb21lIHBhcmFtZXRlcnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyB1cGRhdGUoXG4gICAgdGVtcGxhdGU6IGFueSxcbiAgICBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+LFxuICAgIG9wdGlvbnM6IE9taXQ8Qm9vdHN0cmFwRW52aXJvbm1lbnRPcHRpb25zLCAncGFyYW1ldGVycyc+LFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRUb29sa2l0SW5mby5mb3VuZCAmJiAhb3B0aW9ucy5mb3JjZURlcGxveW1lbnQpIHtcbiAgICAgIC8vIFNhZmV0eSBjaGVja3NcbiAgICAgIGNvbnN0IGFib3J0UmVzcG9uc2UgPSB7XG4gICAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgICAgbm9PcDogdHJ1ZSxcbiAgICAgICAgb3V0cHV0czoge30sXG4gICAgICAgIHN0YWNrQXJuOiB0aGlzLmN1cnJlbnRUb29sa2l0SW5mby5ib290c3RyYXBTdGFjay5zdGFja0lkLFxuICAgICAgfSBzYXRpc2ZpZXMgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0O1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBib290c3RyYXAgc3RhY2sgd2UncmUgdHJ5aW5nIHRvIHJlcGxhY2UgaXMgZnJvbSB0aGUgc2FtZSB2YXJpYW50IGFzIHRoZSBvbmUgd2UncmUgdHJ5aW5nIHRvIGRlcGxveVxuICAgICAgY29uc3QgY3VycmVudFZhcmlhbnQgPSB0aGlzLmN1cnJlbnRUb29sa2l0SW5mby52YXJpYW50O1xuICAgICAgY29uc3QgbmV3VmFyaWFudCA9IGJvb3RzdHJhcFZhcmlhbnRGcm9tVGVtcGxhdGUodGVtcGxhdGUpO1xuICAgICAgaWYgKGN1cnJlbnRWYXJpYW50ICE9PSBuZXdWYXJpYW50KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBgQm9vdHN0cmFwIHN0YWNrIGFscmVhZHkgZXhpc3RzLCBjb250YWluaW5nICcke2N1cnJlbnRWYXJpYW50fScuIE5vdCBvdmVyd3JpdGluZyBpdCB3aXRoIGEgdGVtcGxhdGUgY29udGFpbmluZyAnJHtuZXdWYXJpYW50fScgKHVzZSAtLWZvcmNlIGlmIHlvdSBpbnRlbmQgdG8gb3ZlcndyaXRlKWAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBhYm9ydFJlc3BvbnNlO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IHdlJ3JlIG5vdCBkb3duZ3JhZGluZyB0aGUgYm9vdHN0cmFwIHN0YWNrXG4gICAgICBjb25zdCBuZXdWZXJzaW9uID0gYm9vdHN0cmFwVmVyc2lvbkZyb21UZW1wbGF0ZSh0ZW1wbGF0ZSk7XG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IHRoaXMuY3VycmVudFRvb2xraXRJbmZvLnZlcnNpb247XG4gICAgICBpZiAobmV3VmVyc2lvbiA8IGN1cnJlbnRWZXJzaW9uKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBgQm9vdHN0cmFwIHN0YWNrIGFscmVhZHkgYXQgdmVyc2lvbiAke2N1cnJlbnRWZXJzaW9ufS4gTm90IGRvd25ncmFkaW5nIGl0IHRvIHZlcnNpb24gJHtuZXdWZXJzaW9ufSAodXNlIC0tZm9yY2UgaWYgeW91IGludGVuZCB0byBkb3duZ3JhZGUpYCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG5ld1ZlcnNpb24gPT09IDApIHtcbiAgICAgICAgICAvLyBBIGRvd25ncmFkZSB3aXRoIDAgYXMgdGFyZ2V0IHZlcnNpb24gbWVhbnMgd2UgcHJvYmFibHkgaGF2ZSBhIG5ldy1zdHlsZSBib290c3RyYXAgaW4gdGhlIGFjY291bnQsXG4gICAgICAgICAgLy8gYW5kIGFuIG9sZC1zdHlsZSBib290c3RyYXAgYXMgY3VycmVudCB0YXJnZXQsIHdoaWNoIG1lYW5zIHRoZSB1c2VyIHByb2JhYmx5IGZvcmdvdCB0byBwdXQgdGhpcyBmbGFnIGluLlxuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICAgIFwiKERpZCB5b3Ugc2V0IHRoZSAnQGF3cy1jZGsvY29yZTpuZXdTdHlsZVN0YWNrU3ludGhlc2lzJyBmZWF0dXJlIGZsYWcgaW4gY2RrLmpzb24/KVwiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFib3J0UmVzcG9uc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstYm9vdHN0cmFwJykpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IENsb3VkQXNzZW1ibHlCdWlsZGVyKG91dGRpcik7XG4gICAgICBjb25zdCB0ZW1wbGF0ZUZpbGUgPSBgJHt0aGlzLnRvb2xraXRTdGFja05hbWV9LnRlbXBsYXRlLmpzb25gO1xuICAgICAgYXdhaXQgZnMud3JpdGVKc29uKHBhdGguam9pbihidWlsZGVyLm91dGRpciwgdGVtcGxhdGVGaWxlKSwgdGVtcGxhdGUsIHtcbiAgICAgICAgc3BhY2VzOiAyLFxuICAgICAgfSk7XG5cbiAgICAgIGJ1aWxkZXIuYWRkQXJ0aWZhY3QodGhpcy50b29sa2l0U3RhY2tOYW1lLCB7XG4gICAgICAgIHR5cGU6IEFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0ssXG4gICAgICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFV0aWxzLmZvcm1hdCh0aGlzLnJlc29sdmVkRW52aXJvbm1lbnQuYWNjb3VudCwgdGhpcy5yZXNvbHZlZEVudmlyb25tZW50LnJlZ2lvbiksXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB0ZW1wbGF0ZUZpbGUsXG4gICAgICAgICAgdGVybWluYXRpb25Qcm90ZWN0aW9uOiBvcHRpb25zLnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhc3NlbWJseSA9IGJ1aWxkZXIuYnVpbGRBc3NlbWJseSgpO1xuXG4gICAgICBjb25zdCByZXQgPSBhd2FpdCBkZXBsb3lTdGFjayh7XG4gICAgICAgIHN0YWNrOiBhc3NlbWJseS5nZXRTdGFja0J5TmFtZSh0aGlzLnRvb2xraXRTdGFja05hbWUpLFxuICAgICAgICByZXNvbHZlZEVudmlyb25tZW50OiB0aGlzLnJlc29sdmVkRW52aXJvbm1lbnQsXG4gICAgICAgIHNkazogdGhpcy5zZGssXG4gICAgICAgIHNka1Byb3ZpZGVyOiB0aGlzLnNka1Byb3ZpZGVyLFxuICAgICAgICBmb3JjZURlcGxveW1lbnQ6IG9wdGlvbnMuZm9yY2VEZXBsb3ltZW50LFxuICAgICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgIHRhZ3M6IG9wdGlvbnMudGFncyxcbiAgICAgICAgZGVwbG95bWVudE1ldGhvZDogeyBtZXRob2Q6ICdjaGFuZ2Utc2V0JywgZXhlY3V0ZTogb3B0aW9ucy5leGVjdXRlIH0sXG4gICAgICAgIHBhcmFtZXRlcnMsXG4gICAgICAgIHVzZVByZXZpb3VzUGFyYW1ldGVyczogb3B0aW9ucy51c2VQcmV2aW91c1BhcmFtZXRlcnMgPz8gdHJ1ZSxcbiAgICAgICAgLy8gT2J2aW91c2x5IHdlIGNhbid0IG5lZWQgYSBib290c3RyYXAgc3RhY2sgdG8gZGVwbG95IGEgYm9vdHN0cmFwIHN0YWNrXG4gICAgICAgIGVudlJlc291cmNlczogbmV3IE5vQm9vdHN0cmFwU3RhY2tFbnZpcm9ubWVudFJlc291cmNlcyh0aGlzLnJlc29sdmVkRW52aXJvbm1lbnQsIHRoaXMuc2RrLCB0aGlzLmlvSGVscGVyKSxcbiAgICAgIH0sIHRoaXMuaW9IZWxwZXIpO1xuXG4gICAgICBhc3NlcnRJc1N1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdChyZXQpO1xuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBmcy5ybShvdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcFZlcnNpb25Gcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSk6IG51bWJlciB7XG4gIGNvbnN0IHZlcnNpb25Tb3VyY2VzID0gW1xuICAgIHRlbXBsYXRlLk91dHB1dHM/LltCT09UU1RSQVBfVkVSU0lPTl9PVVRQVVRdPy5WYWx1ZSxcbiAgICB0ZW1wbGF0ZS5SZXNvdXJjZXM/LltCT09UU1RSQVBfVkVSU0lPTl9SRVNPVVJDRV0/LlByb3BlcnRpZXM/LlZhbHVlLFxuICBdO1xuXG4gIGZvciAoY29uc3QgdnMgb2YgdmVyc2lvblNvdXJjZXMpIHtcbiAgICBpZiAodHlwZW9mIHZzID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHZzO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZzID09PSAnc3RyaW5nJyAmJiAhaXNOYU4ocGFyc2VJbnQodnMsIDEwKSkpIHtcbiAgICAgIHJldHVybiBwYXJzZUludCh2cywgMTApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcFZhcmlhbnRGcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiB0ZW1wbGF0ZS5QYXJhbWV0ZXJzPy5bQk9PVFNUUkFQX1ZBUklBTlRfUEFSQU1FVEVSXT8uRGVmYXVsdCA/PyBERUZBVUxUX0JPT1RTVFJBUF9WQVJJQU5UO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.legacyBootstrapTemplate = void 0;\n__exportStar(require(\"./bootstrap-environment\"), exports);\n__exportStar(require(\"./bootstrap-props\"), exports);\n// testing exports\nvar legacy_template_1 = require(\"./legacy-template\");\nObject.defineProperty(exports, \"legacyBootstrapTemplate\", { enumerable: true, get: function () { return legacy_template_1.legacyBootstrapTemplate; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUF3QztBQUN4QyxvREFBa0M7QUFFbEMsa0JBQWtCO0FBQ2xCLHFEQUE0RDtBQUFuRCwwSEFBQSx1QkFBdUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwLWVudmlyb25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwLXByb3BzJztcblxuLy8gdGVzdGluZyBleHBvcnRzXG5leHBvcnQgeyBsZWdhY3lCb290c3RyYXBUZW1wbGF0ZSB9IGZyb20gJy4vbGVnYWN5LXRlbXBsYXRlJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.legacyBootstrapTemplate = legacyBootstrapTemplate;\nconst bootstrap_props_1 = require(\"./bootstrap-props\");\nfunction legacyBootstrapTemplate(params) {\n return {\n Description: 'The CDK Toolkit Stack. It was created by `cdk bootstrap` and manages resources necessary for managing your Cloud Applications with AWS CDK.',\n Conditions: {\n UsePublicAccessBlockConfiguration: {\n 'Fn::Equals': [\n params.publicAccessBlockConfiguration || params.publicAccessBlockConfiguration === undefined ? 'true' : 'false',\n 'true',\n ],\n },\n },\n Resources: {\n StagingBucket: {\n Type: 'AWS::S3::Bucket',\n Properties: {\n BucketName: params.bucketName,\n AccessControl: 'Private',\n BucketEncryption: {\n ServerSideEncryptionConfiguration: [{\n ServerSideEncryptionByDefault: {\n SSEAlgorithm: 'aws:kms',\n KMSMasterKeyID: params.kmsKeyId,\n },\n }],\n },\n PublicAccessBlockConfiguration: {\n 'Fn::If': [\n 'UsePublicAccessBlockConfiguration',\n {\n BlockPublicAcls: true,\n BlockPublicPolicy: true,\n IgnorePublicAcls: true,\n RestrictPublicBuckets: true,\n },\n { Ref: 'AWS::NoValue' },\n ],\n },\n },\n },\n StagingBucketPolicy: {\n Type: 'AWS::S3::BucketPolicy',\n Properties: {\n Bucket: { Ref: 'StagingBucket' },\n PolicyDocument: {\n Id: 'AccessControl',\n Version: '2012-10-17',\n Statement: [\n {\n Sid: 'AllowSSLRequestsOnly',\n Action: 's3:*',\n Effect: 'Deny',\n Resource: [\n { 'Fn::Sub': '${StagingBucket.Arn}' },\n { 'Fn::Sub': '${StagingBucket.Arn}/*' },\n ],\n Condition: {\n Bool: { 'aws:SecureTransport': 'false' },\n },\n Principal: '*',\n },\n ],\n },\n },\n },\n },\n Outputs: {\n [bootstrap_props_1.BUCKET_NAME_OUTPUT]: {\n Description: 'The name of the S3 bucket owned by the CDK toolkit stack',\n Value: { Ref: 'StagingBucket' },\n },\n [bootstrap_props_1.BUCKET_DOMAIN_NAME_OUTPUT]: {\n Description: 'The domain name of the S3 bucket owned by the CDK toolkit stack',\n Value: { 'Fn::GetAtt': ['StagingBucket', 'RegionalDomainName'] },\n },\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGVnYWN5LXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsMERBNEVDO0FBOUVELHVEQUFrRjtBQUVsRixTQUFnQix1QkFBdUIsQ0FBQyxNQUErQjtJQUNyRSxPQUFPO1FBQ0wsV0FBVyxFQUFFLDZJQUE2STtRQUMxSixVQUFVLEVBQUU7WUFDVixpQ0FBaUMsRUFBRTtnQkFDakMsWUFBWSxFQUFFO29CQUNaLE1BQU0sQ0FBQyw4QkFBOEIsSUFBSSxNQUFNLENBQUMsOEJBQThCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87b0JBQy9HLE1BQU07aUJBQ1A7YUFDRjtTQUNGO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsYUFBYSxFQUFFO2dCQUNiLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7b0JBQzdCLGFBQWEsRUFBRSxTQUFTO29CQUN4QixnQkFBZ0IsRUFBRTt3QkFDaEIsaUNBQWlDLEVBQUUsQ0FBQztnQ0FDbEMsNkJBQTZCLEVBQUU7b0NBQzdCLFlBQVksRUFBRSxTQUFTO29DQUN2QixjQUFjLEVBQUUsTUFBTSxDQUFDLFFBQVE7aUNBQ2hDOzZCQUNGLENBQUM7cUJBQ0g7b0JBQ0QsOEJBQThCLEVBQUU7d0JBQzlCLFFBQVEsRUFBRTs0QkFDUixtQ0FBbUM7NEJBQ25DO2dDQUNFLGVBQWUsRUFBRSxJQUFJO2dDQUNyQixpQkFBaUIsRUFBRSxJQUFJO2dDQUN2QixnQkFBZ0IsRUFBRSxJQUFJO2dDQUN0QixxQkFBcUIsRUFBRSxJQUFJOzZCQUM1Qjs0QkFDRCxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUU7eUJBQ3hCO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxtQkFBbUIsRUFBRTtnQkFDbkIsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUU7b0JBQ2hDLGNBQWMsRUFBRTt3QkFDZCxFQUFFLEVBQUUsZUFBZTt3QkFDbkIsT0FBTyxFQUFFLFlBQVk7d0JBQ3JCLFNBQVMsRUFBRTs0QkFDVDtnQ0FDRSxHQUFHLEVBQUUsc0JBQXNCO2dDQUMzQixNQUFNLEVBQUUsTUFBTTtnQ0FDZCxNQUFNLEVBQUUsTUFBTTtnQ0FDZCxRQUFRLEVBQUU7b0NBQ1IsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUU7b0NBQ3JDLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFO2lDQUN4QztnQ0FDRCxTQUFTLEVBQUU7b0NBQ1QsSUFBSSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFO2lDQUN6QztnQ0FDRCxTQUFTLEVBQUUsR0FBRzs2QkFDZjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxDQUFDLG9DQUFrQixDQUFDLEVBQUU7Z0JBQ3BCLFdBQVcsRUFBRSwwREFBMEQ7Z0JBQ3ZFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUU7YUFDaEM7WUFDRCxDQUFDLDJDQUF5QixDQUFDLEVBQUU7Z0JBQzNCLFdBQVcsRUFBRSxpRUFBaUU7Z0JBQzlFLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2FBQ2pFO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQm9vdHN0cmFwcGluZ1BhcmFtZXRlcnMgfSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5pbXBvcnQgeyBCVUNLRVRfRE9NQUlOX05BTUVfT1VUUFVULCBCVUNLRVRfTkFNRV9PVVRQVVQgfSBmcm9tICcuL2Jvb3RzdHJhcC1wcm9wcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBsZWdhY3lCb290c3RyYXBUZW1wbGF0ZShwYXJhbXM6IEJvb3RzdHJhcHBpbmdQYXJhbWV0ZXJzKTogYW55IHtcbiAgcmV0dXJuIHtcbiAgICBEZXNjcmlwdGlvbjogJ1RoZSBDREsgVG9vbGtpdCBTdGFjay4gSXQgd2FzIGNyZWF0ZWQgYnkgYGNkayBib290c3RyYXBgIGFuZCBtYW5hZ2VzIHJlc291cmNlcyBuZWNlc3NhcnkgZm9yIG1hbmFnaW5nIHlvdXIgQ2xvdWQgQXBwbGljYXRpb25zIHdpdGggQVdTIENESy4nLFxuICAgIENvbmRpdGlvbnM6IHtcbiAgICAgIFVzZVB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAnRm46OkVxdWFscyc6IFtcbiAgICAgICAgICBwYXJhbXMucHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIHx8IHBhcmFtcy5wdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24gPT09IHVuZGVmaW5lZCA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgICAgJ3RydWUnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIFJlc291cmNlczoge1xuICAgICAgU3RhZ2luZ0J1Y2tldDoge1xuICAgICAgICBUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIEJ1Y2tldE5hbWU6IHBhcmFtcy5idWNrZXROYW1lLFxuICAgICAgICAgIEFjY2Vzc0NvbnRyb2w6ICdQcml2YXRlJyxcbiAgICAgICAgICBCdWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFt7XG4gICAgICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiAnYXdzOmttcycsXG4gICAgICAgICAgICAgICAgS01TTWFzdGVyS2V5SUQ6IHBhcmFtcy5rbXNLZXlJZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAnRm46OklmJzogW1xuICAgICAgICAgICAgICAnVXNlUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uJyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEJsb2NrUHVibGljQWNsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgICAgICAgICAgIFJlc3RyaWN0UHVibGljQnVja2V0czogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBSZWY6ICdBV1M6Ok5vVmFsdWUnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgU3RhZ2luZ0J1Y2tldFBvbGljeToge1xuICAgICAgICBUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIEJ1Y2tldDogeyBSZWY6ICdTdGFnaW5nQnVja2V0JyB9LFxuICAgICAgICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICAgICAgICBJZDogJ0FjY2Vzc0NvbnRyb2wnLFxuICAgICAgICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnLFxuICAgICAgICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBTaWQ6ICdBbGxvd1NTTFJlcXVlc3RzT25seScsXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnczM6KicsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnRGVueScsXG4gICAgICAgICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgICAgICAgIHsgJ0ZuOjpTdWInOiAnJHtTdGFnaW5nQnVja2V0LkFybn0nIH0sXG4gICAgICAgICAgICAgICAgICB7ICdGbjo6U3ViJzogJyR7U3RhZ2luZ0J1Y2tldC5Bcm59LyonIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBDb25kaXRpb246IHtcbiAgICAgICAgICAgICAgICAgIEJvb2w6IHsgJ2F3czpTZWN1cmVUcmFuc3BvcnQnOiAnZmFsc2UnIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBQcmluY2lwYWw6ICcqJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBPdXRwdXRzOiB7XG4gICAgICBbQlVDS0VUX05BTUVfT1VUUFVUXToge1xuICAgICAgICBEZXNjcmlwdGlvbjogJ1RoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgb3duZWQgYnkgdGhlIENESyB0b29sa2l0IHN0YWNrJyxcbiAgICAgICAgVmFsdWU6IHsgUmVmOiAnU3RhZ2luZ0J1Y2tldCcgfSxcbiAgICAgIH0sXG4gICAgICBbQlVDS0VUX0RPTUFJTl9OQU1FX09VVFBVVF06IHtcbiAgICAgICAgRGVzY3JpcHRpb246ICdUaGUgZG9tYWluIG5hbWUgb2YgdGhlIFMzIGJ1Y2tldCBvd25lZCBieSB0aGUgQ0RLIHRvb2xraXQgc3RhY2snLFxuICAgICAgICBWYWx1ZTogeyAnRm46OkdldEF0dCc6IFsnU3RhZ2luZ0J1Y2tldCcsICdSZWdpb25hbERvbWFpbk5hbWUnXSB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CachedCloudAssembly = void 0;\nrequire(\"../../private/dispose-polyfill\");\nconst borrowed_assembly_1 = require(\"./private/borrowed-assembly\");\n/**\n * A CloudAssemblySource that is caching its result once produced.\n *\n * Most Toolkit interactions should use a cached source. Not caching is\n * relevant when the source changes frequently and it is to expensive to predict\n * if the source has changed.\n *\n * The `CachedCloudAssembly` is both itself a readable CloudAssembly, as well as\n * a Cloud Assembly Source. The lifetimes of cloud assemblies produced by this\n * source are coupled to the lifetime of the `CachedCloudAssembly`. In other\n * words: the `dispose()` functions of those cloud assemblies don't do anything;\n * only the `dispose()` function of the `CachedCloudAssembly` will be used.\n *\n * NOTE: if we are concerned about borrowed assemblies outliving the parent\n * (i.e. the parent getting disposed while someone is still working with the\n * borrowed copies), we could consider referencing counting here. That seems\n * unnecessarily complicated for now, we will just assume that everyone is\n * being a good citizen an borrowed copies are only used by the toolkit and\n * immediately disposed of.\n *\n * Because `dispose()` is a no-op on the borrowed assembly, you can omit it\n * without changing behavior, but that would turn into a leak if we ever introduced\n * reference counting. Failing to dispose the result if a `produce()` call of a\n * `CachedCloudAssembly` is considered a bug.\n */\nclass CachedCloudAssembly {\n asm;\n constructor(asm) {\n this.asm = asm;\n }\n get cloudAssembly() {\n return this.asm.cloudAssembly;\n }\n async produce() {\n return new borrowed_assembly_1.BorrowedAssembly(this.asm.cloudAssembly);\n }\n _unlock() {\n return this.asm._unlock();\n }\n dispose() {\n return this.asm.dispose();\n }\n [Symbol.asyncDispose]() {\n return this.dispose();\n }\n}\nexports.CachedCloudAssembly = CachedCloudAssembly;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhY2hlZC1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXdDO0FBRXhDLG1FQUErRDtBQUcvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDdEIsR0FBRyxDQUF5QjtJQUVwQyxZQUFtQixHQUEyQjtRQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBMUJELGtEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vLi4vcHJpdmF0ZS9kaXNwb3NlLXBvbHlmaWxsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEJvcnJvd2VkQXNzZW1ibHkgfSBmcm9tICcuL3ByaXZhdGUvYm9ycm93ZWQtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseVNvdXJjZSB0aGF0IGlzIGNhY2hpbmcgaXRzIHJlc3VsdCBvbmNlIHByb2R1Y2VkLlxuICpcbiAqIE1vc3QgVG9vbGtpdCBpbnRlcmFjdGlvbnMgc2hvdWxkIHVzZSBhIGNhY2hlZCBzb3VyY2UuIE5vdCBjYWNoaW5nIGlzXG4gKiByZWxldmFudCB3aGVuIHRoZSBzb3VyY2UgY2hhbmdlcyBmcmVxdWVudGx5IGFuZCBpdCBpcyB0byBleHBlbnNpdmUgdG8gcHJlZGljdFxuICogaWYgdGhlIHNvdXJjZSBoYXMgY2hhbmdlZC5cbiAqXG4gKiBUaGUgYENhY2hlZENsb3VkQXNzZW1ibHlgIGlzIGJvdGggaXRzZWxmIGEgcmVhZGFibGUgQ2xvdWRBc3NlbWJseSwgYXMgd2VsbCBhc1xuICogYSBDbG91ZCBBc3NlbWJseSBTb3VyY2UuIFRoZSBsaWZldGltZXMgb2YgY2xvdWQgYXNzZW1ibGllcyBwcm9kdWNlZCBieSB0aGlzXG4gKiBzb3VyY2UgYXJlIGNvdXBsZWQgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAuIEluIG90aGVyXG4gKiB3b3JkczogdGhlIGBkaXNwb3NlKClgIGZ1bmN0aW9ucyBvZiB0aG9zZSBjbG91ZCBhc3NlbWJsaWVzIGRvbid0IGRvIGFueXRoaW5nO1xuICogb25seSB0aGUgYGRpc3Bvc2UoKWAgZnVuY3Rpb24gb2YgdGhlIGBDYWNoZWRDbG91ZEFzc2VtYmx5YCB3aWxsIGJlIHVzZWQuXG4gKlxuICogTk9URTogaWYgd2UgYXJlIGNvbmNlcm5lZCBhYm91dCBib3Jyb3dlZCBhc3NlbWJsaWVzIG91dGxpdmluZyB0aGUgcGFyZW50XG4gKiAoaS5lLiB0aGUgcGFyZW50IGdldHRpbmcgZGlzcG9zZWQgd2hpbGUgc29tZW9uZSBpcyBzdGlsbCB3b3JraW5nIHdpdGggdGhlXG4gKiBib3Jyb3dlZCBjb3BpZXMpLCB3ZSBjb3VsZCBjb25zaWRlciByZWZlcmVuY2luZyBjb3VudGluZyBoZXJlLiBUaGF0IHNlZW1zXG4gKiB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkIGZvciBub3csIHdlIHdpbGwganVzdCBhc3N1bWUgdGhhdCBldmVyeW9uZSBpc1xuICogYmVpbmcgYSBnb29kIGNpdGl6ZW4gYW4gYm9ycm93ZWQgY29waWVzIGFyZSBvbmx5IHVzZWQgYnkgdGhlIHRvb2xraXQgYW5kXG4gKiBpbW1lZGlhdGVseSBkaXNwb3NlZCBvZi5cbiAqXG4gKiBCZWNhdXNlIGBkaXNwb3NlKClgIGlzIGEgbm8tb3Agb24gdGhlIGJvcnJvd2VkIGFzc2VtYmx5LCB5b3UgY2FuIG9taXQgaXRcbiAqIHdpdGhvdXQgY2hhbmdpbmcgYmVoYXZpb3IsIGJ1dCB0aGF0IHdvdWxkIHR1cm4gaW50byBhIGxlYWsgaWYgd2UgZXZlciBpbnRyb2R1Y2VkXG4gKiByZWZlcmVuY2UgY291bnRpbmcuIEZhaWxpbmcgdG8gZGlzcG9zZSB0aGUgcmVzdWx0IGlmIGEgYHByb2R1Y2UoKWAgY2FsbCBvZiBhXG4gKiBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAgaXMgY29uc2lkZXJlZCBhIGJ1Zy5cbiAqL1xuZXhwb3J0IGNsYXNzIENhY2hlZENsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIHByaXZhdGUgYXNtOiBJUmVhZGFibGVDbG91ZEFzc2VtYmx5O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihhc206IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkpIHtcbiAgICB0aGlzLmFzbSA9IGFzbTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvdWRBc3NlbWJseSgpOiBjeGFwaS5DbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4gdGhpcy5hc20uY2xvdWRBc3NlbWJseTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcm9kdWNlKCk6IFByb21pc2U8SVJlYWRhYmxlQ2xvdWRBc3NlbWJseT4ge1xuICAgIHJldHVybiBuZXcgQm9ycm93ZWRBc3NlbWJseSh0aGlzLmFzbS5jbG91ZEFzc2VtYmx5KTtcbiAgfVxuXG4gIHB1YmxpYyBfdW5sb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmFzbS5fdW5sb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hc20uZGlzcG9zZSgpO1xuICB9XG5cbiAgcHVibGljIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MemoryContext = exports.FileContext = exports.CdkAppMultiContext = void 0;\nexports.persistableContext = persistableContext;\nconst fs_1 = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst context_1 = require(\"../context\");\nconst settings_1 = require(\"../settings\");\n/**\n * A context store as used by a CDK app.\n *\n * Will source context from the following locations:\n *\n * - Any context values passed to the constructor (expected\n * to come from the command line, treated as ephemeral).\n * - The `context` key in `/cdk.json`.\n * - `/cdk.context.json`.\n * - The `context` key in `~/.cdk.json`.\n *\n * Updates will be written to `/cdk.context.json`.\n */\nclass CdkAppMultiContext {\n commandlineContext;\n _context;\n configContextFile;\n projectContextFile;\n userConfigFile;\n constructor(appDirectory, commandlineContext) {\n this.commandlineContext = commandlineContext;\n this.configContextFile = path.join(appDirectory, 'cdk.json');\n this.projectContextFile = path.join(appDirectory, 'cdk.context.json');\n this.userConfigFile = path.join(os.homedir() ?? '/tmp', '.cdk.json');\n }\n async read() {\n const context = await this.asyncInitialize();\n return context.all;\n }\n async update(updates) {\n const context = await this.asyncInitialize();\n for (const [key, value] of Object.entries(updates)) {\n context.set(key, value);\n }\n await context.save(this.projectContextFile);\n }\n /**\n * Initialize the `Context` object\n *\n * This code all exists to reuse code that's already there, to minimize\n * the chances of the new code behaving subtly differently than the\n * old code.\n *\n * It might be most of this is unnecessary now...\n */\n async asyncInitialize() {\n if (this._context) {\n return this._context;\n }\n const contextSources = [\n { bag: new settings_1.Settings(this.commandlineContext, true) },\n {\n fileName: this.configContextFile,\n bag: (await settingsFromFile(this.configContextFile)).subSettings(['context']).makeReadOnly(),\n },\n {\n fileName: this.projectContextFile,\n bag: await settingsFromFile(this.projectContextFile),\n },\n {\n fileName: this.userConfigFile,\n bag: (await settingsFromFile(this.userConfigFile)).subSettings(['context']).makeReadOnly(),\n },\n ];\n this._context = new context_1.Context(...contextSources);\n return this._context;\n }\n}\nexports.CdkAppMultiContext = CdkAppMultiContext;\n/**\n * On-disk context stored in a single file\n */\nclass FileContext {\n fileName;\n _cache;\n constructor(fileName) {\n this.fileName = fileName;\n }\n async read() {\n if (!this._cache) {\n try {\n this._cache = JSON.parse(await fs_1.promises.readFile(this.fileName, 'utf-8'));\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n this._cache = {};\n }\n else {\n throw e;\n }\n }\n }\n if (!this._cache || typeof this._cache !== 'object') {\n throw new toolkit_error_1.ToolkitError('InvalidContextFile', `${this.fileName} must contain an object, got: ${JSON.stringify(this._cache)}`);\n }\n return this._cache;\n }\n async update(updates) {\n this._cache = {\n ...await this.read(),\n ...updates,\n };\n const persistable = persistableContext(this._cache);\n await fs_1.promises.writeFile(this.fileName, JSON.stringify(persistable, undefined, 2), 'utf-8');\n }\n}\nexports.FileContext = FileContext;\n/**\n * An in-memory context store\n */\nclass MemoryContext {\n context = {};\n constructor(initialContext) {\n this.context = { ...initialContext };\n }\n read() {\n return Promise.resolve(this.context);\n }\n update(updates) {\n this.context = {\n ...this.context,\n ...updates,\n };\n return Promise.resolve();\n }\n}\nexports.MemoryContext = MemoryContext;\n/**\n * Filter the given context, leaving only entries that should be persisted\n */\nfunction persistableContext(context) {\n return Object.fromEntries(Object.entries(context)\n .filter(([_, value]) => !isTransientValue(value)));\n}\nfunction isTransientValue(x) {\n return x && typeof x === 'object' && x[settings_1.TRANSIENT_CONTEXT_KEY];\n}\nasync function settingsFromFile(filename) {\n try {\n const data = JSON.parse(await fs_1.promises.readFile(filename, 'utf-8'));\n return new settings_1.Settings(data);\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return new settings_1.Settings();\n }\n throw e;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMktBLGdEQUdDO0FBOUtELDJCQUFvQztBQUNwQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtEQUEyRDtBQUUzRCx3Q0FBcUM7QUFDckMsMENBQThEO0FBMEI5RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLGtCQUFrQjtJQU1zQjtJQUwzQyxRQUFRLENBQVc7SUFDbkIsaUJBQWlCLENBQVM7SUFDMUIsa0JBQWtCLENBQVM7SUFDM0IsY0FBYyxDQUFTO0lBRS9CLFlBQVksWUFBb0IsRUFBbUIsa0JBQTRDO1FBQTVDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMEI7UUFDN0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFnQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENB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QUM7UUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sYUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUksbUJBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRCYWcgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IFNldHRpbmdzLCBUUkFOU0lFTlRfQ09OVEVYVF9LRVkgfSBmcm9tICcuLi9zZXR0aW5ncyc7XG5cbi8qKlxuICogQSBzdG9yYWdlIHBsYWNlIGZvciBjb250ZXh0IHVzZWQgaW4gc3ludGhlc2lzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRTdG9yZSB7XG4gIC8qKlxuICAgKiBSZWFkIHRoZSBjb250ZXh0IGZyb20gdGhlIGNvbnRleHQgc3RvcmUsIHBsdXMgYWxsIHVwZGF0ZXMgd2UgaGF2ZSBtYWRlIHNvIGZhci5cbiAgICovXG4gIHJlYWQoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG5cbiAgLyoqXG4gICAqIENvbW1pdCB0aGUgZ2l2ZW4gdXBkYXRlcyB0byB0aGUgY29udGV4dCBzdG9yZVxuICAgKlxuICAgKiBgdW5kZWZpbmVkYCBpcyB1c2VkIGFzIGEgdmFsdWUgdG8gaW5kaWNhdGUgdGhhdCB0aGUga2V5IG5lZWRzIHRvIGJlIHJlbW92ZWQuXG4gICAqXG4gICAqIElmIGEgY29udGV4dCB2YWx1ZSBpcyBhbiBvYmplY3QgdGhhdCBpcyBhIHN1cGVyc2V0IG9mIGB7IFtUUkFOU0lFTlRfQ09OVEVYVF9LRVldOiB0cnVlIH1gXG4gICAqIGl0ICpzaG91bGQqIGJlIHJldHVybmVkIGJ5IHN1YnNlcXVlbnQgYHJlYWQoKWAgb3BlcmF0aW9ucyBvbiB0aGlzIG9iamVjdCxcbiAgICogYnV0IGl0ICpzaG91bGQgbm90KiBiZSBwZXJzaXN0ZWQgdG8gcGVybWFuZW50IHN0b3JhZ2UuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoZSBgcGVyc2lzdGFibGVDb250ZXh0KClgIGZ1bmN0aW9uIHRvIGZpbHRlciBhIGNvbnRleHQgZGljdGlvbmFyeVxuICAgKiBkb3duIHRvIHJlbW92ZSBhbGwgdmFsdWVzIHRoYXQgc2hvdWxkbid0IGJlIHBlcnNpc3RlZC5cbiAgICovXG4gIHVwZGF0ZSh1cGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQSBjb250ZXh0IHN0b3JlIGFzIHVzZWQgYnkgYSBDREsgYXBwLlxuICpcbiAqIFdpbGwgc291cmNlIGNvbnRleHQgZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcbiAqXG4gKiAtIEFueSBjb250ZXh0IHZhbHVlcyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yIChleHBlY3RlZFxuICogICB0byBjb21lIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgdHJlYXRlZCBhcyBlcGhlbWVyYWwpLlxuICogLSBUaGUgYGNvbnRleHRgIGtleSBpbiBgPGFwcERpcmVjdG9yeT4vY2RrLmpzb25gLlxuICogLSBgPGFwcERpcmVjdG9yeT4vY2RrLmNvbnRleHQuanNvbmAuXG4gKiAtIFRoZSBgY29udGV4dGAga2V5IGluIGB+Ly5jZGsuanNvbmAuXG4gKlxuICogVXBkYXRlcyB3aWxsIGJlIHdyaXR0ZW4gdG8gYDxhcHBEaXJlY3Rvcnk+L2Nkay5jb250ZXh0Lmpzb25gLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrQXBwTXVsdGlDb250ZXh0IGltcGxlbWVudHMgSUNvbnRleHRTdG9yZSB7XG4gIHByaXZhdGUgX2NvbnRleHQ/OiBDb250ZXh0O1xuICBwcml2YXRlIGNvbmZpZ0NvbnRleHRGaWxlOiBzdHJpbmc7XG4gIHByaXZhdGUgcHJvamVjdENvbnRleHRGaWxlOiBzdHJpbmc7XG4gIHByaXZhdGUgdXNlckNvbmZpZ0ZpbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihhcHBEaXJlY3Rvcnk6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kbGluZUNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHRoaXMuY29uZmlnQ29udGV4dEZpbGUgPSBwYXRoLmpvaW4oYXBwRGlyZWN0b3J5LCAnY2RrLmpzb24nKTtcbiAgICB0aGlzLnByb2plY3RDb250ZXh0RmlsZSA9IHBhdGguam9pbihhcHBEaXJlY3RvcnksICdjZGsuY29udGV4dC5qc29uJyk7XG4gICAgdGhpcy51c2VyQ29uZmlnRmlsZSA9IHBhdGguam9pbihvcy5ob21lZGlyKCkgPz8gJy90bXAnLCAnLmNkay5qc29uJyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZCgpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgY29udGV4dCA9IGF3YWl0IHRoaXMuYXN5bmNJbml0aWFsaXplKCk7XG4gICAgcmV0dXJuIGNvbnRleHQuYWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZSh1cGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSBhd2FpdCB0aGlzLmFzeW5jSW5pdGlhbGl6ZSgpO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHVwZGF0ZXMpKSB7XG4gICAgICBjb250ZXh0LnNldChrZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICBhd2FpdCBjb250ZXh0LnNhdmUodGhpcy5wcm9qZWN0Q29udGV4dEZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGBDb250ZXh0YCBvYmplY3RcbiAgICpcbiAgICogVGhpcyBjb2RlIGFsbCBleGlzdHMgdG8gcmV1c2UgY29kZSB0aGF0J3MgYWxyZWFkeSB0aGVyZSwgdG8gbWluaW1pemVcbiAgICogdGhlIGNoYW5jZXMgb2YgdGhlIG5ldyBjb2RlIGJlaGF2aW5nIHN1YnRseSBkaWZmZXJlbnRseSB0aGFuIHRoZVxuICAgKiBvbGQgY29kZS5cbiAgICpcbiAgICogSXQgbWlnaHQgYmUgbW9zdCBvZiB0aGlzIGlzIHVubmVjZXNzYXJ5IG5vdy4uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBhc3luY0luaXRpYWxpemUoKTogUHJvbWlzZTxDb250ZXh0PiB7XG4gICAgaWYgKHRoaXMuX2NvbnRleHQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRTb3VyY2VzOiBDb250ZXh0QmFnW10gPSBbXG4gICAgICB7IGJhZzogbmV3IFNldHRpbmdzKHRoaXMuY29tbWFuZGxpbmVDb250ZXh0LCB0cnVlKSB9LFxuICAgICAge1xuICAgICAgICBmaWxlTmFtZTogdGhpcy5jb25maWdDb250ZXh0RmlsZSxcbiAgICAgICAgYmFnOiAoYXdhaXQgc2V0dGluZ3NGcm9tRmlsZSh0aGlzLmNvbmZpZ0NvbnRleHRGaWxlKSkuc3ViU2V0dGluZ3MoWydjb250ZXh0J10pLm1ha2VSZWFkT25seSgpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmlsZU5hbWU6IHRoaXMucHJvamVjdENvbnRleHRGaWxlLFxuICAgICAgICBiYWc6IGF3YWl0IHNldHRpbmdzRnJvbUZpbGUodGhpcy5wcm9qZWN0Q29udGV4dEZpbGUpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmlsZU5hbWU6IHRoaXMudXNlckNvbmZpZ0ZpbGUsXG4gICAgICAgIGJhZzogKGF3YWl0IHNldHRpbmdzRnJvbUZpbGUodGhpcy51c2VyQ29uZmlnRmlsZSkpLnN1YlNldHRpbmdzKFsnY29udGV4dCddKS5tYWtlUmVhZE9ubHkoKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHRoaXMuX2NvbnRleHQgPSBuZXcgQ29udGV4dCguLi5jb250ZXh0U291cmNlcyk7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gIH1cbn1cblxuLyoqXG4gKiBPbi1kaXNrIGNvbnRleHQgc3RvcmVkIGluIGEgc2luZ2xlIGZpbGVcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVDb250ZXh0IGltcGxlbWVudHMgSUNvbnRleHRTdG9yZSB7XG4gIHByaXZhdGUgX2NhY2hlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZCgpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgaWYgKCF0aGlzLl9jYWNoZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fY2FjaGUgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHRoaXMuZmlsZU5hbWUsICd1dGYtOCcpKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICAgIHRoaXMuX2NhY2hlID0ge307XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMuX2NhY2hlIHx8IHR5cGVvZiB0aGlzLl9jYWNoZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRDb250ZXh0RmlsZScsIGAke3RoaXMuZmlsZU5hbWV9IG11c3QgY29udGFpbiBhbiBvYmplY3QsIGdvdDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLl9jYWNoZSl9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jYWNoZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGUodXBkYXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9jYWNoZSA9IHtcbiAgICAgIC4uLmF3YWl0IHRoaXMucmVhZCgpLFxuICAgICAgLi4udXBkYXRlcyxcbiAgICB9O1xuXG4gICAgY29uc3QgcGVyc2lzdGFibGUgPSBwZXJzaXN0YWJsZUNvbnRleHQodGhpcy5fY2FjaGUpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0aGlzLmZpbGVOYW1lLCBKU09OLnN0cmluZ2lmeShwZXJzaXN0YWJsZSwgdW5kZWZpbmVkLCAyKSwgJ3V0Zi04Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbi1tZW1vcnkgY29udGV4dCBzdG9yZVxuICovXG5leHBvcnQgY2xhc3MgTWVtb3J5Q29udGV4dCBpbXBsZW1lbnRzIElDb250ZXh0U3RvcmUge1xuICBwcml2YXRlIGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgY29uc3RydWN0b3IoaW5pdGlhbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHRoaXMuY29udGV4dCA9IHsgLi4uaW5pdGlhbENvbnRleHQgfTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHVwZGF0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb250ZXh0ID0ge1xuICAgICAgLi4udGhpcy5jb250ZXh0LFxuICAgICAgLi4udXBkYXRlcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG59XG5cbi8qKlxuICogRmlsdGVyIHRoZSBnaXZlbiBjb250ZXh0LCBsZWF2aW5nIG9ubHkgZW50cmllcyB0aGF0IHNob3VsZCBiZSBwZXJzaXN0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlcnNpc3RhYmxlQ29udGV4dChjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhjb250ZXh0KVxuICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+ICFpc1RyYW5zaWVudFZhbHVlKHZhbHVlKSkpO1xufVxuXG5mdW5jdGlvbiBpc1RyYW5zaWVudFZhbHVlKHg6IHVua25vd24pIHtcbiAgcmV0dXJuIHggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmICh4IGFzIGFueSlbVFJBTlNJRU5UX0NPTlRFWFRfS0VZXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0dGluZ3NGcm9tRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxTZXR0aW5ncz4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCAndXRmLTgnKSk7XG4gICAgcmV0dXJuIG5ldyBTZXR0aW5ncyhkYXRhKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgIHJldHVybiBuZXcgU2V0dGluZ3MoKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareDefaultEnvironment = prepareDefaultEnvironment;\nexports.contextFromSettings = contextFromSettings;\nexports.synthParametersFromSettings = synthParametersFromSettings;\nexports.spaceAvailableForContext = spaceAvailableForContext;\nexports.guessExecutable = guessExecutable;\nconst path = require(\"path\");\nconst cxapi = require(\"@aws-cdk/cx-api\");\nconst fs = require(\"fs-extra\");\n/**\n * If we don't have region/account defined in context, we fall back to the default SDK behavior\n * where region is retrieved from ~/.aws/config and account is based on default credentials provider\n * chain and then STS is queried.\n *\n * This is done opportunistically: for example, if we can't access STS for some reason or the region\n * is not configured, the context value will be 'null' and there could failures down the line. In\n * some cases, synthesis does not require region/account information at all, so that might be perfectly\n * fine in certain scenarios.\n *\n * @param context - The context key/value bash.\n */\nasync function prepareDefaultEnvironment(aws, debugFn) {\n const env = {};\n env[cxapi.DEFAULT_REGION_ENV] = aws.defaultRegion;\n await debugFn(`Setting \"${cxapi.DEFAULT_REGION_ENV}\" environment variable to ${env[cxapi.DEFAULT_REGION_ENV]}`);\n const accountId = (await aws.defaultAccount())?.accountId;\n if (accountId) {\n env[cxapi.DEFAULT_ACCOUNT_ENV] = accountId;\n await debugFn(`Setting \"${cxapi.DEFAULT_ACCOUNT_ENV}\" environment variable to ${env[cxapi.DEFAULT_ACCOUNT_ENV]}`);\n }\n return env;\n}\n/**\n * Create context from settings.\n *\n * Mutates the `context` object and returns it.\n */\nfunction contextFromSettings(settings) {\n const context = {};\n const pathMetadata = settings.get(['pathMetadata']) ?? true;\n if (pathMetadata) {\n context[cxapi.PATH_METADATA_ENABLE_CONTEXT] = true;\n }\n const assetMetadata = settings.get(['assetMetadata']) ?? true;\n if (assetMetadata) {\n context[cxapi.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT] = true;\n }\n const versionReporting = settings.get(['versionReporting']) ?? true;\n if (versionReporting) {\n context[cxapi.ANALYTICS_REPORTING_ENABLED_CONTEXT] = true;\n }\n // We need to keep on doing this for framework version from before this flag was deprecated.\n if (!versionReporting) {\n context['aws:cdk:disable-version-reporting'] = true;\n }\n const stagingEnabled = settings.get(['staging']) ?? true;\n if (!stagingEnabled) {\n context[cxapi.DISABLE_ASSET_STAGING_CONTEXT] = true;\n }\n const bundlingStacks = settings.get(['bundlingStacks']) ?? ['**'];\n context[cxapi.BUNDLING_STACKS] = bundlingStacks;\n return context;\n}\n/**\n * Convert settings to context/environment variables\n */\nfunction synthParametersFromSettings(settings) {\n return {\n context: contextFromSettings(settings),\n env: {\n // An environment variable instead of a context variable, so it can also\n // be accessed in framework code where we don't have access to a construct tree.\n ...settings.get(['debug']) ? { CDK_DEBUG: 'true' } : {},\n },\n };\n}\nfunction spaceAvailableForContext(env, limit) {\n const size = (value) => value != null ? Buffer.byteLength(value) : 0;\n const usedSpace = Object.entries(env)\n .map(([k, v]) => k === cxapi.CONTEXT_ENV ? size(k) : size(k) + size(v))\n .reduce((a, b) => a + b, 0);\n return Math.max(0, limit - usedSpace);\n}\n/**\n * Guess the executable from the command-line argument\n *\n * Input is the \"app\" string the user gave us. Output is the command line we are going to execute.\n *\n * - On Windows: it's hard to verify if registry associations have or have not\n * been set up for this file type (i.e., ShellExec'ing the file will work or not),\n * so we'll assume the worst and take control ourselves.\n *\n * - On POSIX: if the file is NOT marked as executable, guess the interpreter. If it is executable,\n * the correct interpreter should be in the file's shebang and we just execute it directly.\n *\n * The behavior of only guessing the interpreter if the command line is a single file name\n * is a bit limited: we can't put a `.js` file with arguments in the command line and have\n * it work properly. Nevertheless, this is the behavior we have had for a long time and nobody\n * has really complained about it, so we'll keep it for now.\n */\nasync function guessExecutable(commandLine, debugFn) {\n // The command line with spaces in it could reference a file on disk. If true,\n // we quote it and return that, optionally by prefixing an interpreter.\n const fullFile = await checkFile(commandLine);\n if (fullFile) {\n return guessInterpreter(fullFile);\n }\n // Otherwise, the first word on the command line could reference a file on\n // disk (quoted or non-quoted). If true, we optionally prefix an interpreter.\n const [first, rest] = splitFirstShellWord(commandLine);\n const firstFile = await checkFile(first);\n if (firstFile) {\n return `${guessInterpreter(firstFile)} ${rest}`.trim();\n }\n // We couldn't parse it, so just use the given command line.\n await debugFn(`Not a file: '${commandLine}'. Using '${commandLine} as command-line`);\n return commandLine;\n}\n/**\n * Guess the right interpreter to use to execute the given file and return a (partial) command line to execute it.\n *\n * This may entail:\n *\n * - Prefixing an interpreter if necessary\n * - Quoting the file name if necessary\n */\nfunction guessInterpreter(file) {\n const isWindows = process.platform === 'win32';\n const handler = EXTENSION_MAP[path.extname(file.fileName)];\n if (handler && (!file.isExecutable || isWindows)) {\n return handler(file.fileName);\n }\n return quoteSpaces(file.fileName);\n}\n/**\n * Mapping of extensions to command-line generators\n */\nconst EXTENSION_MAP = {\n '.js': executeNode,\n};\n/**\n * Execute the given file with the same 'node' process as is running the current process\n */\nfunction executeNode(scriptFile) {\n return `${quoteSpaces(process.execPath)} ${quoteSpaces(scriptFile)}`;\n}\n/**\n * Parse off the first quoted or unquoted shell word.\n */\nfunction splitFirstShellWord(commandLine) {\n commandLine = commandLine.trim();\n if (commandLine[0] === '\"') {\n // Split on the next quote, ignore any escaping\n const endQuote = commandLine.indexOf('\"', 1);\n return endQuote > -1 ? [commandLine.slice(1, endQuote), commandLine.slice(endQuote + 1).trim()] : [commandLine, ''];\n }\n else {\n // Split on the first space\n const space = commandLine.indexOf(' ');\n return space > -1 ? [commandLine.slice(0, space), commandLine.slice(space + 1)] : [commandLine, ''];\n }\n}\n/**\n * Look up a file and see if it exists and is executable\n */\nasync function checkFile(fileName) {\n try {\n const fstat = await fs.stat(fileName);\n return {\n fileName,\n // eslint-disable-next-line no-bitwise\n isExecutable: (fstat.mode & fs.constants.X_OK) !== 0,\n };\n }\n catch {\n return undefined;\n }\n}\n/**\n * Quote a shell part if it contains spaces\n *\n * We're only interested in spaces, nothing else.\n */\nfunction quoteSpaces(part) {\n if (part.includes(' ')) {\n return `\"${part}\"`;\n }\n return part;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFCQSw4REFnQkM7QUFPRCxrREFpQ0M7QUFLRCxrRUFZQztBQUVELDREQVFDO0FBbUJELDBDQW1CQztBQTlJRCw2QkFBNkI7QUFDN0IseUNBQXlDO0FBQ3pDLCtCQUErQjtBQU8vQjs7Ozs7Ozs7Ozs7R0FXRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsR0FBZ0IsRUFDaEIsT0FBdUM7SUFFdkMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO0lBRXBCLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2xELE1BQU0sT0FBTyxDQUFDLFlBQVksS0FBSyxDQUFDLGtCQUFrQiw2QkFBNkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVoSCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDO0lBQzFELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxDQUFDLFlBQVksS0FBSyxDQUFDLG1CQUFtQiw2QkFBNkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG1CQUFtQixDQUNqQyxRQUFrQjtJQUVsQixNQUFNLE9BQU8sR0FBNEIsRUFBRSxDQUFDO0lBRTVDLE1BQU0sWUFBWSxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyRSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN2RSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQVksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDN0UsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDNUQsQ0FBQztJQUNELDRGQUE0RjtJQUM1RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsbUNBQW1DLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsY0FBYyxDQUFDO0lBRWhELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDJCQUEyQixDQUFDLFFBQWtCO0lBSTVELE9BQU87UUFDTCxPQUFPLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1FBQ3RDLEdBQUcsRUFBRTtZQUNILHdFQUF3RTtZQUN4RSxnRkFBZ0Y7WUFDaEYsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDeEQ7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHdCQUF3QixDQUFDLEdBQVEsRUFBRSxLQUFhO0lBQzlELE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFOUUsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7U0FDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSSxLQUFLLFVBQVUsZUFBZSxDQUFDLFdBQW1CLEVBQUUsT0FBdUM7SUFDaEcsOEVBQThFO0lBQzlFLHVFQUF1RTtJQUN2RSxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLDZFQUE2RTtJQUM3RSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sU0FBUyxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELDREQUE0RDtJQUM1RCxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsV0FBVyxhQUFhLFdBQVcsa0JBQWtCLENBQUMsQ0FBQztJQUNyRixPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBYztJQUN0QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQztJQUUvQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sYUFBYSxHQUFxQztJQUN0RCxLQUFLLEVBQUUsV0FBVztDQUNuQixDQUFDO0FBSUY7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxVQUFrQjtJQUNyQyxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztBQUN2RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLFdBQW1CO0lBQzlDLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDM0IsK0NBQStDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7U0FBTSxDQUFDO1FBQ04sMkJBQTJCO1FBQzNCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxTQUFTLENBQUMsUUFBZ0I7SUFDdkMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLE9BQU87WUFDTCxRQUFRO1lBQ1Isc0NBQXNDO1lBQ3RDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFPRDs7OztHQUlHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksSUFBSSxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5ncyB9IGZyb20gJy4uL3NldHRpbmdzJztcblxuZXhwb3J0IHR5cGUgRW52ID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbmV4cG9ydCB0eXBlIENvbnRleHQgPSB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfTtcblxuLyoqXG4gKiBJZiB3ZSBkb24ndCBoYXZlIHJlZ2lvbi9hY2NvdW50IGRlZmluZWQgaW4gY29udGV4dCwgd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IFNESyBiZWhhdmlvclxuICogd2hlcmUgcmVnaW9uIGlzIHJldHJpZXZlZCBmcm9tIH4vLmF3cy9jb25maWcgYW5kIGFjY291bnQgaXMgYmFzZWQgb24gZGVmYXVsdCBjcmVkZW50aWFscyBwcm92aWRlclxuICogY2hhaW4gYW5kIHRoZW4gU1RTIGlzIHF1ZXJpZWQuXG4gKlxuICogVGhpcyBpcyBkb25lIG9wcG9ydHVuaXN0aWNhbGx5OiBmb3IgZXhhbXBsZSwgaWYgd2UgY2FuJ3QgYWNjZXNzIFNUUyBmb3Igc29tZSByZWFzb24gb3IgdGhlIHJlZ2lvblxuICogaXMgbm90IGNvbmZpZ3VyZWQsIHRoZSBjb250ZXh0IHZhbHVlIHdpbGwgYmUgJ251bGwnIGFuZCB0aGVyZSBjb3VsZCBmYWlsdXJlcyBkb3duIHRoZSBsaW5lLiBJblxuICogc29tZSBjYXNlcywgc3ludGhlc2lzIGRvZXMgbm90IHJlcXVpcmUgcmVnaW9uL2FjY291bnQgaW5mb3JtYXRpb24gYXQgYWxsLCBzbyB0aGF0IG1pZ2h0IGJlIHBlcmZlY3RseVxuICogZmluZSBpbiBjZXJ0YWluIHNjZW5hcmlvcy5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IGtleS92YWx1ZSBiYXNoLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZURlZmF1bHRFbnZpcm9ubWVudChcbiAgYXdzOiBTZGtQcm92aWRlcixcbiAgZGVidWdGbjogKG1zZzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+LFxuKTogUHJvbWlzZTxFbnY+IHtcbiAgY29uc3QgZW52OiBFbnYgPSB7fTtcblxuICBlbnZbY3hhcGkuREVGQVVMVF9SRUdJT05fRU5WXSA9IGF3cy5kZWZhdWx0UmVnaW9uO1xuICBhd2FpdCBkZWJ1Z0ZuKGBTZXR0aW5nIFwiJHtjeGFwaS5ERUZBVUxUX1JFR0lPTl9FTlZ9XCIgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gJHtlbnZbY3hhcGkuREVGQVVMVF9SRUdJT05fRU5WXX1gKTtcblxuICBjb25zdCBhY2NvdW50SWQgPSAoYXdhaXQgYXdzLmRlZmF1bHRBY2NvdW50KCkpPy5hY2NvdW50SWQ7XG4gIGlmIChhY2NvdW50SWQpIHtcbiAgICBlbnZbY3hhcGkuREVGQVVMVF9BQ0NPVU5UX0VOVl0gPSBhY2NvdW50SWQ7XG4gICAgYXdhaXQgZGVidWdGbihgU2V0dGluZyBcIiR7Y3hhcGkuREVGQVVMVF9BQ0NPVU5UX0VOVn1cIiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byAke2VudltjeGFwaS5ERUZBVUxUX0FDQ09VTlRfRU5WXX1gKTtcbiAgfVxuXG4gIHJldHVybiBlbnY7XG59XG5cbi8qKlxuICogQ3JlYXRlIGNvbnRleHQgZnJvbSBzZXR0aW5ncy5cbiAqXG4gKiBNdXRhdGVzIHRoZSBgY29udGV4dGAgb2JqZWN0IGFuZCByZXR1cm5zIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udGV4dEZyb21TZXR0aW5ncyhcbiAgc2V0dGluZ3M6IFNldHRpbmdzLFxuKSB7XG4gIGNvbnN0IGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgY29uc3QgcGF0aE1ldGFkYXRhOiBib29sZWFuID0gc2V0dGluZ3MuZ2V0KFsncGF0aE1ldGFkYXRhJ10pID8/IHRydWU7XG4gIGlmIChwYXRoTWV0YWRhdGEpIHtcbiAgICBjb250ZXh0W2N4YXBpLlBBVEhfTUVUQURBVEFfRU5BQkxFX0NPTlRFWFRdID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGFzc2V0TWV0YWRhdGE6IGJvb2xlYW4gPSBzZXR0aW5ncy5nZXQoWydhc3NldE1ldGFkYXRhJ10pID8/IHRydWU7XG4gIGlmIChhc3NldE1ldGFkYXRhKSB7XG4gICAgY29udGV4dFtjeGFwaS5BU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9FTkFCTEVEX0NPTlRFWFRdID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25SZXBvcnRpbmc6IGJvb2xlYW4gPSBzZXR0aW5ncy5nZXQoWyd2ZXJzaW9uUmVwb3J0aW5nJ10pID8/IHRydWU7XG4gIGlmICh2ZXJzaW9uUmVwb3J0aW5nKSB7XG4gICAgY29udGV4dFtjeGFwaS5BTkFMWVRJQ1NfUkVQT1JUSU5HX0VOQUJMRURfQ09OVEVYVF0gPSB0cnVlO1xuICB9XG4gIC8vIFdlIG5lZWQgdG8ga2VlcCBvbiBkb2luZyB0aGlzIGZvciBmcmFtZXdvcmsgdmVyc2lvbiBmcm9tIGJlZm9yZSB0aGlzIGZsYWcgd2FzIGRlcHJlY2F0ZWQuXG4gIGlmICghdmVyc2lvblJlcG9ydGluZykge1xuICAgIGNvbnRleHRbJ2F3czpjZGs6ZGlzYWJsZS12ZXJzaW9uLXJlcG9ydGluZyddID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IHN0YWdpbmdFbmFibGVkID0gc2V0dGluZ3MuZ2V0KFsnc3RhZ2luZyddKSA/PyB0cnVlO1xuICBpZiAoIXN0YWdpbmdFbmFibGVkKSB7XG4gICAgY29udGV4dFtjeGFwaS5ESVNBQkxFX0FTU0VUX1NUQUdJTkdfQ09OVEVYVF0gPSB0cnVlO1xuICB9XG5cbiAgY29uc3QgYnVuZGxpbmdTdGFja3MgPSBzZXR0aW5ncy5nZXQoWydidW5kbGluZ1N0YWNrcyddKSA/PyBbJyoqJ107XG4gIGNvbnRleHRbY3hhcGkuQlVORExJTkdfU1RBQ0tTXSA9IGJ1bmRsaW5nU3RhY2tzO1xuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG4vKipcbiAqIENvbnZlcnQgc2V0dGluZ3MgdG8gY29udGV4dC9lbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN5bnRoUGFyYW1ldGVyc0Zyb21TZXR0aW5ncyhzZXR0aW5nczogU2V0dGluZ3MpOiB7XG4gIGNvbnRleHQ6IENvbnRleHQ7XG4gIGVudjogRW52O1xufSB7XG4gIHJldHVybiB7XG4gICAgY29udGV4dDogY29udGV4dEZyb21TZXR0aW5ncyhzZXR0aW5ncyksXG4gICAgZW52OiB7XG4gICAgICAvLyBBbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgY29udGV4dCB2YXJpYWJsZSwgc28gaXQgY2FuIGFsc29cbiAgICAgIC8vIGJlIGFjY2Vzc2VkIGluIGZyYW1ld29yayBjb2RlIHdoZXJlIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGEgY29uc3RydWN0IHRyZWUuXG4gICAgICAuLi5zZXR0aW5ncy5nZXQoWydkZWJ1ZyddKSA/IHsgQ0RLX0RFQlVHOiAndHJ1ZScgfSA6IHt9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGFjZUF2YWlsYWJsZUZvckNvbnRleHQoZW52OiBFbnYsIGxpbWl0OiBudW1iZXIpIHtcbiAgY29uc3Qgc2l6ZSA9ICh2YWx1ZT86IHN0cmluZykgPT4gdmFsdWUgIT0gbnVsbCA/IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlKSA6IDA7XG5cbiAgY29uc3QgdXNlZFNwYWNlID0gT2JqZWN0LmVudHJpZXMoZW52KVxuICAgIC5tYXAoKFtrLCB2XSkgPT4gayA9PT0gY3hhcGkuQ09OVEVYVF9FTlYgPyBzaXplKGspIDogc2l6ZShrKSArIHNpemUodikpXG4gICAgLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApO1xuXG4gIHJldHVybiBNYXRoLm1heCgwLCBsaW1pdCAtIHVzZWRTcGFjZSk7XG59XG5cbi8qKlxuICogR3Vlc3MgdGhlIGV4ZWN1dGFibGUgZnJvbSB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50XG4gKlxuICogSW5wdXQgaXMgdGhlIFwiYXBwXCIgc3RyaW5nIHRoZSB1c2VyIGdhdmUgdXMuIE91dHB1dCBpcyB0aGUgY29tbWFuZCBsaW5lIHdlIGFyZSBnb2luZyB0byBleGVjdXRlLlxuICpcbiAqIC0gT24gV2luZG93czogaXQncyBoYXJkIHRvIHZlcmlmeSBpZiByZWdpc3RyeSBhc3NvY2lhdGlvbnMgaGF2ZSBvciBoYXZlIG5vdFxuICogICBiZWVuIHNldCB1cCBmb3IgdGhpcyBmaWxlIHR5cGUgKGkuZS4sIFNoZWxsRXhlYydpbmcgdGhlIGZpbGUgd2lsbCB3b3JrIG9yIG5vdCksXG4gKiAgIHNvIHdlJ2xsIGFzc3VtZSB0aGUgd29yc3QgYW5kIHRha2UgY29udHJvbCBvdXJzZWx2ZXMuXG4gKlxuICogLSBPbiBQT1NJWDogaWYgdGhlIGZpbGUgaXMgTk9UIG1hcmtlZCBhcyBleGVjdXRhYmxlLCBndWVzcyB0aGUgaW50ZXJwcmV0ZXIuIElmIGl0IGlzIGV4ZWN1dGFibGUsXG4gKiAgIHRoZSBjb3JyZWN0IGludGVycHJldGVyIHNob3VsZCBiZSBpbiB0aGUgZmlsZSdzIHNoZWJhbmcgYW5kIHdlIGp1c3QgZXhlY3V0ZSBpdCBkaXJlY3RseS5cbiAqXG4gKiBUaGUgYmVoYXZpb3Igb2Ygb25seSBndWVzc2luZyB0aGUgaW50ZXJwcmV0ZXIgaWYgdGhlIGNvbW1hbmQgbGluZSBpcyBhIHNpbmdsZSBmaWxlIG5hbWVcbiAqIGlzIGEgYml0IGxpbWl0ZWQ6IHdlIGNhbid0IHB1dCBhIGAuanNgIGZpbGUgd2l0aCBhcmd1bWVudHMgaW4gdGhlIGNvbW1hbmQgbGluZSBhbmQgaGF2ZVxuICogaXQgd29yayBwcm9wZXJseS4gTmV2ZXJ0aGVsZXNzLCB0aGlzIGlzIHRoZSBiZWhhdmlvciB3ZSBoYXZlIGhhZCBmb3IgYSBsb25nIHRpbWUgYW5kIG5vYm9keVxuICogaGFzIHJlYWxseSBjb21wbGFpbmVkIGFib3V0IGl0LCBzbyB3ZSdsbCBrZWVwIGl0IGZvciBub3cuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBndWVzc0V4ZWN1dGFibGUoY29tbWFuZExpbmU6IHN0cmluZywgZGVidWdGbjogKG1zZzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgLy8gVGhlIGNvbW1hbmQgbGluZSB3aXRoIHNwYWNlcyBpbiBpdCBjb3VsZCByZWZlcmVuY2UgYSBmaWxlIG9uIGRpc2suIElmIHRydWUsXG4gIC8vIHdlIHF1b3RlIGl0IGFuZCByZXR1cm4gdGhhdCwgb3B0aW9uYWxseSBieSBwcmVmaXhpbmcgYW4gaW50ZXJwcmV0ZXIuXG4gIGNvbnN0IGZ1bGxGaWxlID0gYXdhaXQgY2hlY2tGaWxlKGNvbW1hbmRMaW5lKTtcbiAgaWYgKGZ1bGxGaWxlKSB7XG4gICAgcmV0dXJuIGd1ZXNzSW50ZXJwcmV0ZXIoZnVsbEZpbGUpO1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB0aGUgZmlyc3Qgd29yZCBvbiB0aGUgY29tbWFuZCBsaW5lIGNvdWxkIHJlZmVyZW5jZSBhIGZpbGUgb25cbiAgLy8gZGlzayAocXVvdGVkIG9yIG5vbi1xdW90ZWQpLiBJZiB0cnVlLCB3ZSBvcHRpb25hbGx5IHByZWZpeCBhbiBpbnRlcnByZXRlci5cbiAgY29uc3QgW2ZpcnN0LCByZXN0XSA9IHNwbGl0Rmlyc3RTaGVsbFdvcmQoY29tbWFuZExpbmUpO1xuICBjb25zdCBmaXJzdEZpbGUgPSBhd2FpdCBjaGVja0ZpbGUoZmlyc3QpO1xuICBpZiAoZmlyc3RGaWxlKSB7XG4gICAgcmV0dXJuIGAke2d1ZXNzSW50ZXJwcmV0ZXIoZmlyc3RGaWxlKX0gJHtyZXN0fWAudHJpbSgpO1xuICB9XG5cbiAgLy8gV2UgY291bGRuJ3QgcGFyc2UgaXQsIHNvIGp1c3QgdXNlIHRoZSBnaXZlbiBjb21tYW5kIGxpbmUuXG4gIGF3YWl0IGRlYnVnRm4oYE5vdCBhIGZpbGU6ICcke2NvbW1hbmRMaW5lfScuIFVzaW5nICcke2NvbW1hbmRMaW5lfSBhcyBjb21tYW5kLWxpbmVgKTtcbiAgcmV0dXJuIGNvbW1hbmRMaW5lO1xufVxuXG4vKipcbiAqIEd1ZXNzIHRoZSByaWdodCBpbnRlcnByZXRlciB0byB1c2UgdG8gZXhlY3V0ZSB0aGUgZ2l2ZW4gZmlsZSBhbmQgcmV0dXJuIGEgKHBhcnRpYWwpIGNvbW1hbmQgbGluZSB0byBleGVjdXRlIGl0LlxuICpcbiAqIFRoaXMgbWF5IGVudGFpbDpcbiAqXG4gKiAtIFByZWZpeGluZyBhbiBpbnRlcnByZXRlciBpZiBuZWNlc3NhcnlcbiAqIC0gUXVvdGluZyB0aGUgZmlsZSBuYW1lIGlmIG5lY2Vzc2FyeVxuICovXG5mdW5jdGlvbiBndWVzc0ludGVycHJldGVyKGZpbGU6IEZpbGVJbmZvKTogc3RyaW5nIHtcbiAgY29uc3QgaXNXaW5kb3dzID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJztcblxuICBjb25zdCBoYW5kbGVyID0gRVhURU5TSU9OX01BUFtwYXRoLmV4dG5hbWUoZmlsZS5maWxlTmFtZSldO1xuICBpZiAoaGFuZGxlciAmJiAoIWZpbGUuaXNFeGVjdXRhYmxlIHx8IGlzV2luZG93cykpIHtcbiAgICByZXR1cm4gaGFuZGxlcihmaWxlLmZpbGVOYW1lKTtcbiAgfVxuXG4gIHJldHVybiBxdW90ZVNwYWNlcyhmaWxlLmZpbGVOYW1lKTtcbn1cblxuLyoqXG4gKiBNYXBwaW5nIG9mIGV4dGVuc2lvbnMgdG8gY29tbWFuZC1saW5lIGdlbmVyYXRvcnNcbiAqL1xuY29uc3QgRVhURU5TSU9OX01BUDogUmVjb3JkPHN0cmluZywgQ29tbWFuZEdlbmVyYXRvcj4gPSB7XG4gICcuanMnOiBleGVjdXRlTm9kZSxcbn07XG5cbnR5cGUgQ29tbWFuZEdlbmVyYXRvciA9IChmaWxlOiBzdHJpbmcpID0+IHN0cmluZztcblxuLyoqXG4gKiBFeGVjdXRlIHRoZSBnaXZlbiBmaWxlIHdpdGggdGhlIHNhbWUgJ25vZGUnIHByb2Nlc3MgYXMgaXMgcnVubmluZyB0aGUgY3VycmVudCBwcm9jZXNzXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVOb2RlKHNjcmlwdEZpbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtxdW90ZVNwYWNlcyhwcm9jZXNzLmV4ZWNQYXRoKX0gJHtxdW90ZVNwYWNlcyhzY3JpcHRGaWxlKX1gO1xufVxuXG4vKipcbiAqIFBhcnNlIG9mZiB0aGUgZmlyc3QgcXVvdGVkIG9yIHVucXVvdGVkIHNoZWxsIHdvcmQuXG4gKi9cbmZ1bmN0aW9uIHNwbGl0Rmlyc3RTaGVsbFdvcmQoY29tbWFuZExpbmU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10ge1xuICBjb21tYW5kTGluZSA9IGNvbW1hbmRMaW5lLnRyaW0oKTtcbiAgaWYgKGNvbW1hbmRMaW5lWzBdID09PSAnXCInKSB7XG4gICAgLy8gU3BsaXQgb24gdGhlIG5leHQgcXVvdGUsIGlnbm9yZSBhbnkgZXNjYXBpbmdcbiAgICBjb25zdCBlbmRRdW90ZSA9IGNvbW1hbmRMaW5lLmluZGV4T2YoJ1wiJywgMSk7XG4gICAgcmV0dXJuIGVuZFF1b3RlID4gLTEgPyBbY29tbWFuZExpbmUuc2xpY2UoMSwgZW5kUXVvdGUpLCBjb21tYW5kTGluZS5zbGljZShlbmRRdW90ZSArIDEpLnRyaW0oKV0gOiBbY29tbWFuZExpbmUsICcnXTtcbiAgfSBlbHNlIHtcbiAgICAvLyBTcGxpdCBvbiB0aGUgZmlyc3Qgc3BhY2VcbiAgICBjb25zdCBzcGFjZSA9IGNvbW1hbmRMaW5lLmluZGV4T2YoJyAnKTtcbiAgICByZXR1cm4gc3BhY2UgPiAtMSA/IFtjb21tYW5kTGluZS5zbGljZSgwLCBzcGFjZSksIGNvbW1hbmRMaW5lLnNsaWNlKHNwYWNlICsgMSldIDogW2NvbW1hbmRMaW5lLCAnJ107XG4gIH1cbn1cblxuLyoqXG4gKiBMb29rIHVwIGEgZmlsZSBhbmQgc2VlIGlmIGl0IGV4aXN0cyBhbmQgaXMgZXhlY3V0YWJsZVxuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja0ZpbGUoZmlsZU5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZUluZm8gfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBmc3RhdCA9IGF3YWl0IGZzLnN0YXQoZmlsZU5hbWUpO1xuICAgIHJldHVybiB7XG4gICAgICBmaWxlTmFtZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgICBpc0V4ZWN1dGFibGU6IChmc3RhdC5tb2RlICYgZnMuY29uc3RhbnRzLlhfT0spICE9PSAwLFxuICAgIH07XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEZpbGVJbmZvIHtcbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgaXNFeGVjdXRhYmxlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFF1b3RlIGEgc2hlbGwgcGFydCBpZiBpdCBjb250YWlucyBzcGFjZXNcbiAqXG4gKiBXZSdyZSBvbmx5IGludGVyZXN0ZWQgaW4gc3BhY2VzLCBub3RoaW5nIGVsc2UuXG4gKi9cbmZ1bmN0aW9uIHF1b3RlU3BhY2VzKHBhcnQ6IHN0cmluZykge1xuICBpZiAocGFydC5pbmNsdWRlcygnICcpKSB7XG4gICAgcmV0dXJuIGBcIiR7cGFydH1cImA7XG4gIH1cbiAgcmV0dXJuIHBhcnQ7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackSelectionStrategy = exports.ExpandStackSelection = void 0;\nvar stack_selector_1 = require(\"./stack-selector\");\nObject.defineProperty(exports, \"ExpandStackSelection\", { enumerable: true, get: function () { return stack_selector_1.ExpandStackSelection; } });\nObject.defineProperty(exports, \"StackSelectionStrategy\", { enumerable: true, get: function () { return stack_selector_1.StackSelectionStrategy; } });\n__exportStar(require(\"./cached-source\"), exports);\n__exportStar(require(\"./source-builder\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./context-store\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFnRjtBQUF2RSxzSEFBQSxvQkFBb0IsT0FBQTtBQUFFLHdIQUFBLHNCQUFzQixPQUFBO0FBRXJELGtEQUFnQztBQUNoQyxtREFBaUM7QUFDakMsMENBQXdCO0FBQ3hCLGtEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEV4cGFuZFN0YWNrU2VsZWN0aW9uLCBTdGFja1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9zdGFjay1zZWxlY3Rvcic7XG5leHBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuL3N0YWNrLXNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY2FjaGVkLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NvdXJjZS1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LXN0b3JlJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BorrowedAssembly = void 0;\nrequire(\"../../../private/dispose-polyfill\");\n/**\n * An implementation of `IReadableCloudAssembly` that does nothing except hold on to the CloudAssembly object\n *\n * It does not own a lock, and it does not clean the underlying directory.\n */\nclass BorrowedAssembly {\n cloudAssembly;\n constructor(cloudAssembly) {\n this.cloudAssembly = cloudAssembly;\n }\n async _unlock() {\n }\n async dispose() {\n }\n async [Symbol.asyncDispose]() {\n }\n}\nexports.BorrowedAssembly = BorrowedAssembly;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93ZWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJib3Jyb3dlZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFJM0M7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWdCO0lBQ0M7SUFBNUIsWUFBNEIsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO0lBQzlELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztJQUNwQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBWkQsNENBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uLy4uLy4uL3ByaXZhdGUvZGlzcG9zZS1wb2x5ZmlsbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYElSZWFkYWJsZUNsb3VkQXNzZW1ibHlgIHRoYXQgZG9lcyBub3RoaW5nIGV4Y2VwdCBob2xkIG9uIHRvIHRoZSBDbG91ZEFzc2VtYmx5IG9iamVjdFxuICpcbiAqIEl0IGRvZXMgbm90IG93biBhIGxvY2ssIGFuZCBpdCBkb2VzIG5vdCBjbGVhbiB0aGUgdW5kZXJseWluZyBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dlZEFzc2VtYmx5IGltcGxlbWVudHMgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbG91ZEFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5KSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxufVxuXG4iXX0=","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextAwareCloudAssemblySource = void 0;\nconst disposable_box_1 = require(\"./disposable-box\");\nconst contextproviders = require(\"../../../context-providers\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst private_1 = require(\"../../io/private\");\nconst helpers_1 = require(\"./helpers\");\nconst sets_1 = require(\"../../../util/sets\");\n/**\n * A CloudAssemblySource that wraps another CloudAssemblySource and runs a lookup loop on it\n *\n * This means that if the underlying CloudAssemblySource produces a manifest\n * with provider queries in it, the `ContextAwareCloudAssemblySource` will\n * perform the necessary context lookups and invoke the underlying\n * `CloudAssemblySource` again with thew missing context information.\n *\n * This is only useful if the underlying `CloudAssemblySource` can respond to\n * this new context information (it must be a CDK app source); if it is just a\n * static directory, then the contents of the assembly won't change in response\n * to context.\n *\n * The context is passed between `ContextAwareCloudAssemblySource` and the wrapped\n * cloud assembly source via a contex file on disk, so the wrapped assembly source\n * should re-read the context file on every invocation.\n */\nclass ContextAwareCloudAssemblySource {\n source;\n props;\n canLookup;\n context;\n ioHelper;\n constructor(source, props) {\n this.source = source;\n this.props = props;\n this.canLookup = props.lookups ?? true;\n this.context = props.contextStore;\n this.ioHelper = props.services.ioHelper;\n }\n /**\n * Produce a Cloud Assembly, i.e. a set of stacks\n */\n async produce() {\n // We may need to run the cloud assembly source multiple times in order to satisfy all missing context\n // (When the source producer runs, it will tell us about context it wants to use\n // but it missing. We'll then look up the context and run the executable again, and\n // again, until it doesn't complain anymore or we've stopped making progress).\n let previouslyMissingKeys;\n while (true) {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const readableAsm = __addDisposableResource(env_1, new disposable_box_1.AsyncDisposableBox(await this.source.produce()), true);\n const assembly = readableAsm.value.cloudAssembly;\n if (assembly.manifest.missing && assembly.manifest.missing.length > 0) {\n const missingKeysSet = (0, helpers_1.missingContextKeys)(assembly.manifest.missing);\n const missingKeys = Array.from(missingKeysSet);\n if (!this.canLookup) {\n throw new toolkit_error_1.ToolkitError('ContextLookupsDisabled', 'Context lookups have been disabled. '\n + 'Make sure all necessary context is already in \\'cdk.context.json\\' by running \\'cdk synth\\' on a machine with sufficient AWS credentials and committing the result. '\n + `Missing context keys: '${missingKeys.join(', ')}'`);\n }\n let tryLookup = true;\n if (previouslyMissingKeys && (0, sets_1.equalSets)(missingKeysSet, previouslyMissingKeys)) {\n await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0240.msg('Not making progress trying to resolve environmental context. Giving up.', { missingKeys }));\n tryLookup = false;\n }\n previouslyMissingKeys = missingKeysSet;\n if (tryLookup) {\n await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0241.msg('Some context information is missing. Fetching...', { missingKeys }));\n const contextUpdates = await contextproviders.provideContextValues(assembly.manifest.missing, this.props.services.sdkProvider, this.props.services.pluginHost, this.ioHelper);\n await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0042.msg('Writing context updates...', {\n context: contextUpdates,\n }));\n await this.context.update(contextUpdates);\n // Execute again. Unlock the assembly here so that the producer can acquire\n // a read lock on the directory again.\n await readableAsm.value._unlock();\n continue;\n }\n }\n return readableAsm.take();\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n }\n }\n}\nexports.ContextAwareCloudAssemblySource = ContextAwareCloudAssemblySource;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1hd2FyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250ZXh0LWF3YXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXNEO0FBQ3RELCtEQUErRDtBQUUvRCxrRUFBOEQ7QUFFOUQsOENBQXNDO0FBR3RDLHVDQUErQztBQUMvQyw2Q0FBK0M7QUF3Qi9DOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBYSwrQkFBK0I7SUFLYjtJQUErQztJQUpwRSxTQUFTLENBQVU7SUFDbkIsT0FBTyxDQUFnQjtJQUN2QixRQUFRLENBQVc7SUFFM0IsWUFBNkIsTUFBNEIsRUFBbUIsS0FBcUM7UUFBcEYsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFBbUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDL0csSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTztRQUNsQixzR0FBc0c7UUFDdEcsZ0ZBQWdGO1FBQ2hGLG1GQUFtRjtRQUNuRiw4RUFBOEU7UUFDOUUsSUFBSSxxQkFBOEMsQ0FBQztRQUNuRCxPQUFPLElBQUksRUFBRSxDQUFDOzs7Z0JBQ1osTUFBWSxXQUFXLGtDQUFHLElBQUksbUNBQWtCLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQUEsQ0FBQztnQkFFOUUsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ2pELElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN0RSxNQUFNLGNBQWMsR0FBRyxJQUFBLDRCQUFrQixFQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3JFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBRS9DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3BCLE1BQU0sSUFBSSw0QkFBWSxDQUNwQix3QkFBd0IsRUFDeEIsc0NBQXNDOzhCQUNwQyxzS0FBc0s7OEJBQ3RLLDBCQUEwQixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0QsQ0FBQztvQkFFRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLElBQUkscUJBQXFCLElBQUksSUFBQSxnQkFBUyxFQUFDLGNBQWMsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7d0JBQzlFLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyx5RUFBeUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDbEosU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDcEIsQ0FBQztvQkFFRCxxQkFBcUIsR0FBRyxjQUFjLENBQUM7b0JBRXZDLElBQUksU0FBUyxFQUFFLENBQUM7d0JBQ2QsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUMzSCxNQUFNLGNBQWMsR0FBRyxNQUFNLGdCQUFnQixDQUFDLG9CQUFvQixDQUNoRSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQzlCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQzt3QkFFRixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUU7NEJBQ2pGLE9BQU8sRUFBRSxjQUFjO3lCQUN4QixDQUFDLENBQUMsQ0FBQzt3QkFDSixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUUxQywyRUFBMkU7d0JBQzNFLHNDQUFzQzt3QkFDdEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNsQyxTQUFTO29CQUNYLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7U0FDM0I7SUFDSCxDQUFDO0NBQ0Y7QUFwRUQsMEVBb0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNEaXNwb3NhYmxlQm94IH0gZnJvbSAnLi9kaXNwb3NhYmxlLWJveCc7XG5pbXBvcnQgKiBhcyBjb250ZXh0cHJvdmlkZXJzIGZyb20gJy4uLy4uLy4uL2NvbnRleHQtcHJvdmlkZXJzJztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uLy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dFN0b3JlIH0gZnJvbSAnLi4vY29udGV4dC1zdG9yZSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlLCBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbWlzc2luZ0NvbnRleHRLZXlzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGVxdWFsU2V0cyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvc2V0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzIHtcbiAgLyoqXG4gICAqIEFXUyBvYmplY3QgKHVzZWQgYnkgY29udGV4dHByb3ZpZGVyKVxuICAgKiBAZGVwcmVjYXRlZCBjb250ZXh0IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgdG9vbGtpdCBpdHNlbGZcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXM7XG5cbiAgLyoqXG4gICAqIExvY2F0aW9uIHRvIHJlYWQgYW5kIHdyaXRlIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRTdG9yZTogSUNvbnRleHRTdG9yZTtcblxuICAvKipcbiAgICogRW5hYmxlIGNvbnRleHQgbG9va3Vwcy5cbiAgICpcbiAgICogUHJvZHVjaW5nIGEgYGN4YXBpLkNsb3VkQXNzZW1ibHlgIHdpbGwgZmFpbCBpZiB0aGlzIGlzIGRpc2FibGVkIGFuZCBjb250ZXh0IGxvb2t1cHMgbmVlZCB0byBiZSBwZXJmb3JtZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseVNvdXJjZSB0aGF0IHdyYXBzIGFub3RoZXIgQ2xvdWRBc3NlbWJseVNvdXJjZSBhbmQgcnVucyBhIGxvb2t1cCBsb29wIG9uIGl0XG4gKlxuICogVGhpcyBtZWFucyB0aGF0IGlmIHRoZSB1bmRlcmx5aW5nIENsb3VkQXNzZW1ibHlTb3VyY2UgcHJvZHVjZXMgYSBtYW5pZmVzdFxuICogd2l0aCBwcm92aWRlciBxdWVyaWVzIGluIGl0LCB0aGUgYENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2VgIHdpbGxcbiAqIHBlcmZvcm0gdGhlIG5lY2Vzc2FyeSBjb250ZXh0IGxvb2t1cHMgYW5kIGludm9rZSB0aGUgdW5kZXJseWluZ1xuICogYENsb3VkQXNzZW1ibHlTb3VyY2VgIGFnYWluIHdpdGggdGhldyBtaXNzaW5nIGNvbnRleHQgaW5mb3JtYXRpb24uXG4gKlxuICogVGhpcyBpcyBvbmx5IHVzZWZ1bCBpZiB0aGUgdW5kZXJseWluZyBgQ2xvdWRBc3NlbWJseVNvdXJjZWAgY2FuIHJlc3BvbmQgdG9cbiAqIHRoaXMgbmV3IGNvbnRleHQgaW5mb3JtYXRpb24gKGl0IG11c3QgYmUgYSBDREsgYXBwIHNvdXJjZSk7IGlmIGl0IGlzIGp1c3QgYVxuICogc3RhdGljIGRpcmVjdG9yeSwgdGhlbiB0aGUgY29udGVudHMgb2YgdGhlIGFzc2VtYmx5IHdvbid0IGNoYW5nZSBpbiByZXNwb25zZVxuICogdG8gY29udGV4dC5cbiAqXG4gKiBUaGUgY29udGV4dCBpcyBwYXNzZWQgYmV0d2VlbiBgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZWAgYW5kIHRoZSB3cmFwcGVkXG4gKiBjbG91ZCBhc3NlbWJseSBzb3VyY2UgdmlhIGEgY29udGV4IGZpbGUgb24gZGlzaywgc28gdGhlIHdyYXBwZWQgYXNzZW1ibHkgc291cmNlXG4gKiBzaG91bGQgcmUtcmVhZCB0aGUgY29udGV4dCBmaWxlIG9uIGV2ZXJ5IGludm9jYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlIGltcGxlbWVudHMgSUNsb3VkQXNzZW1ibHlTb3VyY2Uge1xuICBwcml2YXRlIGNhbkxvb2t1cDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBjb250ZXh0OiBJQ29udGV4dFN0b3JlO1xuICBwcml2YXRlIGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNvdXJjZTogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcykge1xuICAgIHRoaXMuY2FuTG9va3VwID0gcHJvcHMubG9va3VwcyA/PyB0cnVlO1xuICAgIHRoaXMuY29udGV4dCA9IHByb3BzLmNvbnRleHRTdG9yZTtcbiAgICB0aGlzLmlvSGVscGVyID0gcHJvcHMuc2VydmljZXMuaW9IZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICogUHJvZHVjZSBhIENsb3VkIEFzc2VtYmx5LCBpLmUuIGEgc2V0IG9mIHN0YWNrc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHByb2R1Y2UoKTogUHJvbWlzZTxJUmVhZGFibGVDbG91ZEFzc2VtYmx5PiB7XG4gICAgLy8gV2UgbWF5IG5lZWQgdG8gcnVuIHRoZSBjbG91ZCBhc3NlbWJseSBzb3VyY2UgbXVsdGlwbGUgdGltZXMgaW4gb3JkZXIgdG8gc2F0aXNmeSBhbGwgbWlzc2luZyBjb250ZXh0XG4gICAgLy8gKFdoZW4gdGhlIHNvdXJjZSBwcm9kdWNlciBydW5zLCBpdCB3aWxsIHRlbGwgdXMgYWJvdXQgY29udGV4dCBpdCB3YW50cyB0byB1c2VcbiAgICAvLyBidXQgaXQgbWlzc2luZy4gV2UnbGwgdGhlbiBsb29rIHVwIHRoZSBjb250ZXh0IGFuZCBydW4gdGhlIGV4ZWN1dGFibGUgYWdhaW4sIGFuZFxuICAgIC8vIGFnYWluLCB1bnRpbCBpdCBkb2Vzbid0IGNvbXBsYWluIGFueW1vcmUgb3Igd2UndmUgc3RvcHBlZCBtYWtpbmcgcHJvZ3Jlc3MpLlxuICAgIGxldCBwcmV2aW91c2x5TWlzc2luZ0tleXM6IFNldDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBhd2FpdCB1c2luZyByZWFkYWJsZUFzbSA9IG5ldyBBc3luY0Rpc3Bvc2FibGVCb3goYXdhaXQgdGhpcy5zb3VyY2UucHJvZHVjZSgpKTtcblxuICAgICAgY29uc3QgYXNzZW1ibHkgPSByZWFkYWJsZUFzbS52YWx1ZS5jbG91ZEFzc2VtYmx5O1xuICAgICAgaWYgKGFzc2VtYmx5Lm1hbmlmZXN0Lm1pc3NpbmcgJiYgYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdLZXlzU2V0ID0gbWlzc2luZ0NvbnRleHRLZXlzKGFzc2VtYmx5Lm1hbmlmZXN0Lm1pc3NpbmcpO1xuICAgICAgICBjb25zdCBtaXNzaW5nS2V5cyA9IEFycmF5LmZyb20obWlzc2luZ0tleXNTZXQpO1xuXG4gICAgICAgIGlmICghdGhpcy5jYW5Mb29rdXApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICAgJ0NvbnRleHRMb29rdXBzRGlzYWJsZWQnLFxuICAgICAgICAgICAgJ0NvbnRleHQgbG9va3VwcyBoYXZlIGJlZW4gZGlzYWJsZWQuICdcbiAgICAgICAgICAgICsgJ01ha2Ugc3VyZSBhbGwgbmVjZXNzYXJ5IGNvbnRleHQgaXMgYWxyZWFkeSBpbiBcXCdjZGsuY29udGV4dC5qc29uXFwnIGJ5IHJ1bm5pbmcgXFwnY2RrIHN5bnRoXFwnIG9uIGEgbWFjaGluZSB3aXRoIHN1ZmZpY2llbnQgQVdTIGNyZWRlbnRpYWxzIGFuZCBjb21taXR0aW5nIHRoZSByZXN1bHQuICdcbiAgICAgICAgICAgICsgYE1pc3NpbmcgY29udGV4dCBrZXlzOiAnJHttaXNzaW5nS2V5cy5qb2luKCcsICcpfSdgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0cnlMb29rdXAgPSB0cnVlO1xuICAgICAgICBpZiAocHJldmlvdXNseU1pc3NpbmdLZXlzICYmIGVxdWFsU2V0cyhtaXNzaW5nS2V5c1NldCwgcHJldmlvdXNseU1pc3NpbmdLZXlzKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDI0MC5tc2coJ05vdCBtYWtpbmcgcHJvZ3Jlc3MgdHJ5aW5nIHRvIHJlc29sdmUgZW52aXJvbm1lbnRhbCBjb250ZXh0LiBHaXZpbmcgdXAuJywgeyBtaXNzaW5nS2V5cyB9KSk7XG4gICAgICAgICAgdHJ5TG9va3VwID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c2x5TWlzc2luZ0tleXMgPSBtaXNzaW5nS2V5c1NldDtcblxuICAgICAgICBpZiAodHJ5TG9va3VwKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMjQxLm1zZygnU29tZSBjb250ZXh0IGluZm9ybWF0aW9uIGlzIG1pc3NpbmcuIEZldGNoaW5nLi4uJywgeyBtaXNzaW5nS2V5cyB9KSk7XG4gICAgICAgICAgY29uc3QgY29udGV4dFVwZGF0ZXMgPSBhd2FpdCBjb250ZXh0cHJvdmlkZXJzLnByb3ZpZGVDb250ZXh0VmFsdWVzKFxuICAgICAgICAgICAgYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZyxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc2VydmljZXMuc2RrUHJvdmlkZXIsXG4gICAgICAgICAgICB0aGlzLnByb3BzLnNlcnZpY2VzLnBsdWdpbkhvc3QsXG4gICAgICAgICAgICB0aGlzLmlvSGVscGVyLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAwNDIubXNnKCdXcml0aW5nIGNvbnRleHQgdXBkYXRlcy4uLicsIHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHRVcGRhdGVzLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRleHQudXBkYXRlKGNvbnRleHRVcGRhdGVzKTtcblxuICAgICAgICAgIC8vIEV4ZWN1dGUgYWdhaW4uIFVubG9jayB0aGUgYXNzZW1ibHkgaGVyZSBzbyB0aGF0IHRoZSBwcm9kdWNlciBjYW4gYWNxdWlyZVxuICAgICAgICAgIC8vIGEgcmVhZCBsb2NrIG9uIHRoZSBkaXJlY3RvcnkgYWdhaW4uXG4gICAgICAgICAgYXdhaXQgcmVhZGFibGVBc20udmFsdWUuX3VubG9jaygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWFkYWJsZUFzbS50YWtlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncDisposableBox = void 0;\nrequire(\"../../../private/dispose-polyfill\");\n/**\n * An async disposable whose disposable value can be prevented from being disposed.\n *\n * This is useful if you are temporarily holding onto a disposable value, and are planning\n * to return it from a function, but want to clean it up if something fails in the middle.\n *\n * The purpose of this class is pretty similar to `DisposableStack`, but this\n * class doesn't depend on the runtime providing that class (Node 24+ only), and\n * `DisposableStack`s \"move()\" API is awkward.\n *\n * Example:\n *\n * ```ts\n * async function someFunction() {\n * await using box = new AsyncDisposableBox(someDisposableValue());\n * // ...\n * return box.take();\n * }\n * ```\n */\nclass AsyncDisposableBox {\n value;\n shouldDispose = true;\n constructor(value) {\n this.value = value;\n }\n /**\n * Remove the value from the Box, preventing it from being disposed in the future.\n *\n * Should be the last line of the containing function.\n */\n take() {\n this.shouldDispose = false;\n return this.value;\n }\n [Symbol.asyncDispose]() {\n if (this.shouldDispose) {\n return this.value[Symbol.asyncDispose]();\n }\n return Promise.resolve();\n }\n}\nexports.AsyncDisposableBox = AsyncDisposableBox;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS1ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXNwb3NhYmxlLWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFhLGtCQUFrQjtJQUdEO0lBRnBCLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFFN0IsWUFBNEIsS0FBUTtRQUFSLFVBQUssR0FBTCxLQUFLLENBQUc7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJO1FBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUF0QkQsZ0RBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuXG4vKipcbiAqIEFuIGFzeW5jIGRpc3Bvc2FibGUgd2hvc2UgZGlzcG9zYWJsZSB2YWx1ZSBjYW4gYmUgcHJldmVudGVkIGZyb20gYmVpbmcgZGlzcG9zZWQuXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgaWYgeW91IGFyZSB0ZW1wb3JhcmlseSBob2xkaW5nIG9udG8gYSBkaXNwb3NhYmxlIHZhbHVlLCBhbmQgYXJlIHBsYW5uaW5nXG4gKiB0byByZXR1cm4gaXQgZnJvbSBhIGZ1bmN0aW9uLCBidXQgd2FudCB0byBjbGVhbiBpdCB1cCBpZiBzb21ldGhpbmcgZmFpbHMgaW4gdGhlIG1pZGRsZS5cbiAqXG4gKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHByZXR0eSBzaW1pbGFyIHRvIGBEaXNwb3NhYmxlU3RhY2tgLCBidXQgdGhpc1xuICogY2xhc3MgZG9lc24ndCBkZXBlbmQgb24gdGhlIHJ1bnRpbWUgcHJvdmlkaW5nIHRoYXQgY2xhc3MgKE5vZGUgMjQrIG9ubHkpLCBhbmRcbiAqIGBEaXNwb3NhYmxlU3RhY2tgcyBcIm1vdmUoKVwiIEFQSSBpcyBhd2t3YXJkLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqIGFzeW5jIGZ1bmN0aW9uIHNvbWVGdW5jdGlvbigpIHtcbiAqICAgYXdhaXQgdXNpbmcgYm94ID0gbmV3IEFzeW5jRGlzcG9zYWJsZUJveChzb21lRGlzcG9zYWJsZVZhbHVlKCkpO1xuICogICAvLyAuLi5cbiAqICAgcmV0dXJuIGJveC50YWtlKCk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEFzeW5jRGlzcG9zYWJsZUJveDxUIGV4dGVuZHMgQXN5bmNEaXNwb3NhYmxlPiBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG4gIHByaXZhdGUgc2hvdWxkRGlzcG9zZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHZhbHVlOiBUKSB7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSB2YWx1ZSBmcm9tIHRoZSBCb3gsIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyBkaXNwb3NlZCBpbiB0aGUgZnV0dXJlLlxuICAgKlxuICAgKiBTaG91bGQgYmUgdGhlIGxhc3QgbGluZSBvZiB0aGUgY29udGFpbmluZyBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyB0YWtlKCk6IFQge1xuICAgIHRoaXMuc2hvdWxkRGlzcG9zZSA9IGZhbHNlO1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2VMaWtlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zaG91bGREaXNwb3NlKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.execInChildProcess = execInChildProcess;\nconst child_process = require(\"child_process\");\nconst fs_1 = require(\"fs\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst split = require(\"split2\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\n/**\n * Execute a command line in a child process\n *\n * Based on the errors it throws, this assumes the process it is executing is a CDK app.\n */\nasync function execInChildProcess(commandAndArgs, options = {}) {\n const captureOutput = options.captureOutput ?? true;\n return new Promise((ok, fail) => {\n // We use a slightly lower-level interface to:\n //\n // - Pass arguments in an array instead of a string, to get around a\n // number of quoting issues introduced by the intermediate shell layer\n // (which would be different between Linux and Windows).\n //\n // - We have to capture any output to stdout and stderr sp we can pass it on to the IoHost\n // To ensure messages get to the user fast, we will emit every full line we receive.\n const proc = child_process.spawn(commandAndArgs, {\n stdio: captureOutput ? ['ignore', 'pipe', 'pipe'] : ['ignore', 'inherit', 'inherit'],\n detached: false,\n cwd: options.cwd,\n env: {\n // On Windwows, Python will default to cp1252 when not connected to a terminal, but we\n // expect it to be UTF-8 below (to be able to split on lines).\n PYTHONIOENCODING: 'utf-8',\n ...options.env,\n },\n // We are using 'shell: true' on purprose. Traditionally we have allowed shell features in\n // this string, so we have to continue to do so into the future. On Windows, this is simply\n // necessary to run .bat and .cmd files properly.\n // Code scanning tools will flag this as a risk. The input comes from a trusted source,\n // so it does not represent a security risk.\n shell: true,\n });\n const eventPublisher = options.eventPublisher ?? ((type, line) => {\n switch (type) {\n case 'data_stdout':\n process.stdout.write(line + '\\n');\n return;\n case 'data_stderr':\n process.stderr.write(line + '\\n');\n return;\n case 'open':\n case 'close':\n return;\n }\n });\n const stderr = new Array();\n if (captureOutput) {\n proc.stdout.pipe(split()).on('data', (line) => eventPublisher('data_stdout', line));\n proc.stderr.pipe(split()).on('data', (line) => {\n stderr.push(line);\n return eventPublisher('data_stderr', line);\n });\n }\n proc.on('error', (e) => {\n fail(toolkit_error_1.AssemblyError.withCause(`Failed to execute CDK app: ${commandAndArgs}`, e));\n });\n proc.on('exit', code => {\n if (code === 0) {\n return ok();\n }\n else {\n const stdErrString = stderr.join('\\n');\n let cause;\n if (stderr.length) {\n cause = new Error(stdErrString);\n cause.name = 'ExecutionError';\n }\n let error = toolkit_error_1.AssemblyError.withCause(`${commandAndArgs}: Subprocess exited with error ${code}`, cause);\n // Search for an error code, and throw that if we have it\n if (options.errorCodeFile) {\n const contents = tryReadFile(options.errorCodeFile);\n if (contents) {\n const errorInStdErr = contents.split('\\n')[0];\n if (errorInStdErr) {\n // Attach the synth error code. We don't need to change the message; the underlying error will already have been\n // printed to stderr.\n error.attachSynthesisErrorCode(errorInStdErr);\n }\n }\n }\n return fail(error);\n }\n });\n });\n}\nfunction tryReadFile(name) {\n try {\n return (0, fs_1.readFileSync)(name, 'utf-8');\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return undefined;\n }\n throw e;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV4ZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyQkEsZ0RBMkZDO0FBdEhELCtDQUErQztBQUMvQywyQkFBa0M7QUFDbEMsaUVBQWlFO0FBQ2pFLGdDQUFpQztBQUNqQyxrRUFBK0Q7QUFrQi9EOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsY0FBc0IsRUFBRSxVQUF1QixFQUFFO0lBQ3hGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBRXBELE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDcEMsOENBQThDO1FBQzlDLEVBQUU7UUFDRixvRUFBb0U7UUFDcEUsd0VBQXdFO1FBQ3hFLDBEQUEwRDtRQUMxRCxFQUFFO1FBQ0YsMEZBQTBGO1FBQzFGLHNGQUFzRjtRQUN0RixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUMvQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7WUFDcEYsUUFBUSxFQUFFLEtBQUs7WUFDZixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsR0FBRyxFQUFFO2dCQUNILHNGQUFzRjtnQkFDdEYsOERBQThEO2dCQUM5RCxnQkFBZ0IsRUFBRSxPQUFPO2dCQUN6QixHQUFHLE9BQU8sQ0FBQyxHQUFHO2FBQ2Y7WUFFRCwwRkFBMEY7WUFDMUYsMkZBQTJGO1lBQzNGLGlEQUFpRDtZQUNqRCx1RkFBdUY7WUFDdkYsNENBQTRDO1lBQzVDLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQW1CLE9BQU8sQ0FBQyxjQUFjLElB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L0IsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFBLGlCQUFZLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuaW1wb3J0IHNwbGl0ID0gcmVxdWlyZSgnc3BsaXQyJyk7XG5pbXBvcnQgeyBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxudHlwZSBFdmVudFB1Ymxpc2hlciA9IChldmVudDogJ29wZW4nIHwgJ2RhdGFfc3Rkb3V0JyB8ICdkYXRhX3N0ZGVycicgfCAnY2xvc2UnLCBsaW5lOiBzdHJpbmcpID0+IHZvaWQ7XG5cbmludGVyZmFjZSBFeGVjT3B0aW9ucyB7XG4gIGV2ZW50UHVibGlzaGVyPzogRXZlbnRQdWJsaXNoZXI7XG4gIGVudj86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gIGN3ZD86IHN0cmluZztcbiAgZXJyb3JDb2RlRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBjYXB0dXJlIG91dHB1dCBhbmQgc2VuZCBpdCBpbnRvIHRoZSBldmVudCBwdWJsaXNoZXIsIG9yIHN0ZG91dCBpZiBubyBldmVudCBwdWJsaXNoZXIgaXMgc3VwcGxpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNhcHR1cmVPdXRwdXQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV4ZWN1dGUgYSBjb21tYW5kIGxpbmUgaW4gYSBjaGlsZCBwcm9jZXNzXG4gKlxuICogQmFzZWQgb24gdGhlIGVycm9ycyBpdCB0aHJvd3MsIHRoaXMgYXNzdW1lcyB0aGUgcHJvY2VzcyBpdCBpcyBleGVjdXRpbmcgaXMgYSBDREsgYXBwLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY0luQ2hpbGRQcm9jZXNzKGNvbW1hbmRBbmRBcmdzOiBzdHJpbmcsIG9wdGlvbnM6IEV4ZWNPcHRpb25zID0ge30pIHtcbiAgY29uc3QgY2FwdHVyZU91dHB1dCA9IG9wdGlvbnMuY2FwdHVyZU91dHB1dCA/PyB0cnVlO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigob2ssIGZhaWwpID0+IHtcbiAgICAvLyBXZSB1c2UgYSBzbGlnaHRseSBsb3dlci1sZXZlbCBpbnRlcmZhY2UgdG86XG4gICAgLy9cbiAgICAvLyAtIFBhc3MgYXJndW1lbnRzIGluIGFuIGFycmF5IGluc3RlYWQgb2YgYSBzdHJpbmcsIHRvIGdldCBhcm91bmQgYVxuICAgIC8vICAgbnVtYmVyIG9mIHF1b3RpbmcgaXNzdWVzIGludHJvZHVjZWQgYnkgdGhlIGludGVybWVkaWF0ZSBzaGVsbCBsYXllclxuICAgIC8vICAgKHdoaWNoIHdvdWxkIGJlIGRpZmZlcmVudCBiZXR3ZWVuIExpbnV4IGFuZCBXaW5kb3dzKS5cbiAgICAvL1xuICAgIC8vIC0gV2UgaGF2ZSB0byBjYXB0dXJlIGFueSBvdXRwdXQgdG8gc3Rkb3V0IGFuZCBzdGRlcnIgc3Agd2UgY2FuIHBhc3MgaXQgb24gdG8gdGhlIElvSG9zdFxuICAgIC8vICAgVG8gZW5zdXJlIG1lc3NhZ2VzIGdldCB0byB0aGUgdXNlciBmYXN0LCB3ZSB3aWxsIGVtaXQgZXZlcnkgZnVsbCBsaW5lIHdlIHJlY2VpdmUuXG4gICAgY29uc3QgcHJvYyA9IGNoaWxkX3Byb2Nlc3Muc3Bhd24oY29tbWFuZEFuZEFyZ3MsIHtcbiAgICAgIHN0ZGlvOiBjYXB0dXJlT3V0cHV0ID8gWydpZ25vcmUnLCAncGlwZScsICdwaXBlJ10gOiBbJ2lnbm9yZScsICdpbmhlcml0JywgJ2luaGVyaXQnXSxcbiAgICAgIGRldGFjaGVkOiBmYWxzZSxcbiAgICAgIGN3ZDogb3B0aW9ucy5jd2QsXG4gICAgICBlbnY6IHtcbiAgICAgICAgLy8gT24gV2luZHdvd3MsIFB5dGhvbiB3aWxsIGRlZmF1bHQgdG8gY3AxMjUyIHdoZW4gbm90IGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLCBidXQgd2VcbiAgICAgICAgLy8gZXhwZWN0IGl0IHRvIGJlIFVURi04IGJlbG93ICh0byBiZSBhYmxlIHRvIHNwbGl0IG9uIGxpbmVzKS5cbiAgICAgICAgUFlUSE9OSU9FTkNPRElORzogJ3V0Zi04JyxcbiAgICAgICAgLi4ub3B0aW9ucy5lbnYsXG4gICAgICB9LFxuXG4gICAgICAvLyBXZSBhcmUgdXNpbmcgJ3NoZWxsOiB0cnVlJyBvbiBwdXJwcm9zZS4gVHJhZGl0aW9uYWxseSB3ZSBoYXZlIGFsbG93ZWQgc2hlbGwgZmVhdHVyZXMgaW5cbiAgICAgIC8vIHRoaXMgc3RyaW5nLCBzbyB3ZSBoYXZlIHRvIGNvbnRpbnVlIHRvIGRvIHNvIGludG8gdGhlIGZ1dHVyZS4gT24gV2luZG93cywgdGhpcyBpcyBzaW1wbHlcbiAgICAgIC8vIG5lY2Vzc2FyeSB0byBydW4gLmJhdCBhbmQgLmNtZCBmaWxlcyBwcm9wZXJseS5cbiAgICAgIC8vIENvZGUgc2Nhbm5pbmcgdG9vbHMgd2lsbCBmbGFnIHRoaXMgYXMgYSByaXNrLiBUaGUgaW5wdXQgY29tZXMgZnJvbSBhIHRydXN0ZWQgc291cmNlLFxuICAgICAgLy8gc28gaXQgZG9lcyBub3QgcmVwcmVzZW50IGEgc2VjdXJpdHkgcmlzay5cbiAgICAgIHNoZWxsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZXZlbnRQdWJsaXNoZXI6IEV2ZW50UHVibGlzaGVyID0gb3B0aW9ucy5ldmVudFB1Ymxpc2hlciA/PyAoKHR5cGUsIGxpbmUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUobGluZSArICdcXG4nKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgJ2RhdGFfc3RkZXJyJzpcbiAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShsaW5lICsgJ1xcbicpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnb3Blbic6XG4gICAgICAgIGNhc2UgJ2Nsb3NlJzpcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGRlcnIgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgaWYgKGNhcHR1cmVPdXRwdXQpIHtcbiAgICAgIHByb2Muc3Rkb3V0IS5waXBlKHNwbGl0KCkpLm9uKCdkYXRhJywgKGxpbmUpID0+IGV2ZW50UHVibGlzaGVyKCdkYXRhX3N0ZG91dCcsIGxpbmUpKTtcbiAgICAgIHByb2Muc3RkZXJyIS5waXBlKHNwbGl0KCkpLm9uKCdkYXRhJywgKGxpbmUpID0+IHtcbiAgICAgICAgc3RkZXJyLnB1c2gobGluZSk7XG4gICAgICAgIHJldHVybiBldmVudFB1Ymxpc2hlcignZGF0YV9zdGRlcnInLCBsaW5lKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb2Mub24oJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgIGZhaWwoQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoYEZhaWxlZCB0byBleGVjdXRlIENESyBhcHA6ICR7Y29tbWFuZEFuZEFyZ3N9YCwgZSkpO1xuICAgIH0pO1xuXG4gICAgcHJvYy5vbignZXhpdCcsIGNvZGUgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG9rKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGRFcnJTdHJpbmcgPSBzdGRlcnIuam9pbignXFxuJyk7XG5cbiAgICAgICAgbGV0IGNhdXNlOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHN0ZGVyci5sZW5ndGgpIHtcbiAgICAgICAgICBjYXVzZSA9IG5ldyBFcnJvcihzdGRFcnJTdHJpbmcpO1xuICAgICAgICAgIGNhdXNlLm5hbWUgPSAnRXhlY3V0aW9uRXJyb3InO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVycm9yID0gQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoYCR7Y29tbWFuZEFuZEFyZ3N9OiBTdWJwcm9jZXNzIGV4aXRlZCB3aXRoIGVycm9yICR7Y29kZX1gLCBjYXVzZSk7XG5cbiAgICAgICAgLy8gU2VhcmNoIGZvciBhbiBlcnJvciBjb2RlLCBhbmQgdGhyb3cgdGhhdCBpZiB3ZSBoYXZlIGl0XG4gICAgICAgIGlmIChvcHRpb25zLmVycm9yQ29kZUZpbGUpIHtcbiAgICAgICAgICBjb25zdCBjb250ZW50cyA9IHRyeVJlYWRGaWxlKG9wdGlvbnMuZXJyb3JDb2RlRmlsZSk7XG4gICAgICAgICAgaWYgKGNvbnRlbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvckluU3RkRXJyID0gY29udGVudHMuc3BsaXQoJ1xcbicpWzBdO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JJblN0ZEVycikge1xuICAgICAgICAgICAgICAvLyBBdHRhY2ggdGhlIHN5bnRoIGVycm9yIGNvZGUuIFdlIGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZSBtZXNzYWdlOyB0aGUgdW5kZXJseWluZyBlcnJvciB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuXG4gICAgICAgICAgICAgIC8vIHByaW50ZWQgdG8gc3RkZXJyLlxuICAgICAgICAgICAgICBlcnJvci5hdHRhY2hTeW50aGVzaXNFcnJvckNvZGUoZXJyb3JJblN0ZEVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhaWwoZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdHJ5UmVhZEZpbGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVhZEZpbGVTeW5jKG5hbWUsICd1dGYtOCcpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.temporarilyWriteEnv = temporarilyWriteEnv;\nexports.missingContextKeys = missingContextKeys;\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\n/**\n * Temporarily overwrite the `process.env` with a new `env`\n *\n * We make the environment immutable in case there are accidental\n * concurrent accesses.\n */\nfunction temporarilyWriteEnv(env) {\n const oldEnv = process.env;\n process.env = detectSynthvarConflicts({\n ...process.env,\n ...env,\n });\n return {\n [Symbol.dispose]() {\n process.env = oldEnv;\n },\n };\n}\n/**\n * Return an environment-like object that throws if certain keys are set\n *\n * We only throw on specific environment variables to catch the case of\n * concurrent synths. We can't do all variables because there are some\n * routines somewhere that modify things like `JSII_DEPRECATED` globally.\n */\nfunction detectSynthvarConflicts(obj) {\n return new Proxy(obj, {\n get(target, prop) {\n return target[prop];\n },\n set(target, prop, value) {\n if (['CDK_CONTEXT', 'CDK_OUTDIR'].includes(String(prop))) {\n throw new toolkit_error_1.ToolkitError('EnvImmutableDuringSynth', 'process.env is temporarily immutable. Set \\'clobberEnv: false\\' if you want to run multiple \\'fromAssemblyBuilder\\' synths concurrently');\n }\n target[prop] = value;\n return true;\n },\n });\n}\n/**\n * Return all keys of missing context items\n */\nfunction missingContextKeys(missing) {\n return new Set((missing || []).map((m) => m.key));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxrREFhQztBQTJCRCxnREFFQztBQWxERCxrRUFBOEQ7QUFFOUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxHQUEyQjtJQUM3RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRTNCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLENBQUM7UUFDcEMsR0FBRyxPQUFPLENBQUMsR0FBRztRQUNkLEdBQUcsR0FBRztLQUNQLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHVCQUF1QixDQUFtQixHQUFNO0lBQ3ZELE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ3BCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSTtZQUNkLE9BQVEsTUFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sSUFBSSw0QkFBWSxDQUFDLHlCQUF5QixFQUFFLHlJQUF5SSxDQUFDLENBQUM7WUFDL0wsQ0FBQztZQUNBLE1BQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsT0FBMEI7SUFDM0QsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1pc3NpbmdDb250ZXh0IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8qKlxuICogVGVtcG9yYXJpbHkgb3ZlcndyaXRlIHRoZSBgcHJvY2Vzcy5lbnZgIHdpdGggYSBuZXcgYGVudmBcbiAqXG4gKiBXZSBtYWtlIHRoZSBlbnZpcm9ubWVudCBpbW11dGFibGUgaW4gY2FzZSB0aGVyZSBhcmUgYWNjaWRlbnRhbFxuICogY29uY3VycmVudCBhY2Nlc3Nlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBvcmFyaWx5V3JpdGVFbnYoZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIGNvbnN0IG9sZEVudiA9IHByb2Nlc3MuZW52O1xuXG4gIHByb2Nlc3MuZW52ID0gZGV0ZWN0U3ludGh2YXJDb25mbGljdHMoe1xuICAgIC4uLnByb2Nlc3MuZW52LFxuICAgIC4uLmVudixcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuICAgICAgcHJvY2Vzcy5lbnYgPSBvbGRFbnY7XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYW4gZW52aXJvbm1lbnQtbGlrZSBvYmplY3QgdGhhdCB0aHJvd3MgaWYgY2VydGFpbiBrZXlzIGFyZSBzZXRcbiAqXG4gKiBXZSBvbmx5IHRocm93IG9uIHNwZWNpZmljIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBjYXRjaCB0aGUgY2FzZSBvZlxuICogY29uY3VycmVudCBzeW50aHMuIFdlIGNhbid0IGRvIGFsbCB2YXJpYWJsZXMgYmVjYXVzZSB0aGVyZSBhcmUgc29tZVxuICogcm91dGluZXMgc29tZXdoZXJlIHRoYXQgbW9kaWZ5IHRoaW5ncyBsaWtlIGBKU0lJX0RFUFJFQ0FURURgIGdsb2JhbGx5LlxuICovXG5mdW5jdGlvbiBkZXRlY3RTeW50aHZhckNvbmZsaWN0czxBIGV4dGVuZHMgb2JqZWN0PihvYmo6IEEpIHtcbiAgcmV0dXJuIG5ldyBQcm94eShvYmosIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgICByZXR1cm4gKHRhcmdldCBhcyBhbnkpW3Byb3BdO1xuICAgIH0sXG4gICAgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUpIHtcbiAgICAgIGlmIChbJ0NES19DT05URVhUJywgJ0NES19PVVRESVInXS5pbmNsdWRlcyhTdHJpbmcocHJvcCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0VudkltbXV0YWJsZUR1cmluZ1N5bnRoJywgJ3Byb2Nlc3MuZW52IGlzIHRlbXBvcmFyaWx5IGltbXV0YWJsZS4gU2V0IFxcJ2Nsb2JiZXJFbnY6IGZhbHNlXFwnIGlmIHlvdSB3YW50IHRvIHJ1biBtdWx0aXBsZSBcXCdmcm9tQXNzZW1ibHlCdWlsZGVyXFwnIHN5bnRocyBjb25jdXJyZW50bHknKTtcbiAgICAgIH1cbiAgICAgICh0YXJnZXQgYXMgYW55KVtwcm9wXSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBrZXlzIG9mIG1pc3NpbmcgY29udGV4dCBpdGVtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ0NvbnRleHRLZXlzKG1pc3Npbmc/OiBNaXNzaW5nQ29udGV4dFtdKTogU2V0PHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFNldCgobWlzc2luZyB8fCBbXSkubWFwKChtKSA9PiBtLmtleSkpO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./context-aware-source\"), exports);\n__exportStar(require(\"./stack-assembly\"), exports);\n__exportStar(require(\"./exec\"), exports);\n__exportStar(require(\"./prepare-source\"), exports);\n__exportStar(require(\"./stack-selectors\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQXVDO0FBQ3ZDLG1EQUFpQztBQUNqQyx5Q0FBdUI7QUFDdkIsbURBQWlDO0FBQ2pDLG9EQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFjay1hc3NlbWJseSc7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVwYXJlLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLXNlbGVjdG9ycyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExecutionEnvironment = void 0;\nexports.writeContextToEnv = writeContextToEnv;\nexports.findConstructLibraryVersion = findConstructLibraryVersion;\nexports.frameworkSupportsContextOverflow = frameworkSupportsContextOverflow;\nexports.assemblyFromDirectory = assemblyFromDirectory;\nexports.settingsFromSynthOptions = settingsFromSynthOptions;\nexports.parametersFromSynthOptions = parametersFromSynthOptions;\nrequire(\"../../../private/dispose-polyfill\");\nconst os = require(\"node:os\");\nconst path = require(\"node:path\");\nconst node_util_1 = require(\"node:util\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cxapi = require(\"@aws-cdk/cx-api\");\nconst fs = require(\"fs-extra\");\nconst semver_1 = require(\"semver\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../../util\");\nconst private_1 = require(\"../../io/private\");\nconst rwlock_1 = require(\"../../rwlock\");\nconst settings_1 = require(\"../../settings\");\nconst tree_1 = require(\"../../tree\");\nconst environment_1 = require(\"../environment\");\nclass ExecutionEnvironment {\n /**\n * Create an ExecutionEnvironment\n *\n * An ExecutionEnvironment holds a writer lock on the given directory which will\n * be cleaned up when the object is disposed.\n *\n * A temporary directory will be created if none is supplied, which will be cleaned\n * up when this object is disposed.\n *\n * If `markSuccessful()` is called, the writer lock is converted to a reader lock\n * and temporary directories will not be cleaned up anymore.\n */\n static async create(services, options) {\n let outDirIsTemporary = false;\n let dir = options.outdir;\n if (!dir) {\n outDirIsTemporary = true;\n dir = fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'cdk.out'));\n }\n const lock = await new rwlock_1.RWLock(dir).acquireWrite();\n const opts = {\n outdir: dir,\n resolveDefaultAppEnv: options.resolveDefaultAppEnv,\n };\n return new ExecutionEnvironment(services, opts, {\n lock,\n outDirIsTemporary,\n });\n }\n /**\n * Should the outdir be disposed of.\n */\n get shouldDisposeOutDir() {\n return this.shouldClean;\n }\n /**\n * The directory the cloud assembly will be written to.\n */\n outdir;\n options;\n ioHelper;\n sdkProvider;\n debugFn;\n lock;\n shouldClean;\n constructor(services, options, { lock, outDirIsTemporary }) {\n this.ioHelper = services.ioHelper;\n this.sdkProvider = services.sdkProvider;\n this.debugFn = (msg) => this.ioHelper.defaults.debug(msg);\n this.lock = lock;\n this.shouldClean = outDirIsTemporary;\n this.outdir = options.outdir;\n this.options = options;\n }\n async [Symbol.asyncDispose]() {\n await this.lock?.release();\n if (this.shouldDisposeOutDir) {\n await fs.rm(this.outdir, { recursive: true, force: true });\n }\n }\n /**\n * Mark the execution as successful, which stops the writer lock from being released upon disposal\n */\n async markSuccessful() {\n if (!this.lock) {\n throw new TypeError('Cannot mark successful more than once');\n }\n const readLock = await this.lock.convertToReaderLock();\n this.lock = undefined;\n this.shouldClean = false;\n return { readLock };\n }\n /**\n * Begin an execution in this environment\n *\n * This will acquire a write lock on the given environment. The write lock\n * will be released automatically when the return object is disposed, unless it\n * is converted to a reader lock.\n */\n async beginExecution() {\n const lock = await new rwlock_1.RWLock(this.outdir).acquireWrite();\n let converted = false;\n return {\n async writeToReadLock() {\n converted = true;\n return lock.convertToReaderLock();\n },\n [Symbol.asyncDispose]: async () => {\n // Release if not converted\n if (!converted) {\n await lock.release();\n }\n },\n };\n }\n /**\n * Guess the executable from the command-line argument\n *\n * Only do this if the file is NOT marked as executable. If it is,\n * we'll defer to the shebang inside the file itself.\n *\n * If we're on Windows, we ALWAYS take the handler, since it's hard to\n * verify if registry associations have or have not been set up for this\n * file type, so we'll assume the worst and take control.\n */\n guessExecutable(app) {\n return (0, environment_1.guessExecutable)(app, this.debugFn);\n }\n /**\n * If we don't have region/account defined in context, we fall back to the default SDK behavior\n * where region is retrieved from ~/.aws/config and account is based on default credentials provider\n * chain and then STS is queried.\n *\n * This is done opportunistically: for example, if we can't access STS for some reason or the region\n * is not configured, the context value will be 'null' and there could failures down the line. In\n * some cases, synthesis does not require region/account information at all, so that might be perfectly\n * fine in certain scenarios.\n */\n async defaultEnvVars() {\n const debugFn = (msg) => this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0010.msg(msg));\n const env = this.options.resolveDefaultAppEnv ? await (0, environment_1.prepareDefaultEnvironment)(this.sdkProvider, debugFn) : {};\n env[cxapi.OUTDIR_ENV] = this.outdir;\n await debugFn((0, node_util_1.format)('outdir:', this.outdir));\n // CLI version information\n env[cxapi.CLI_ASM_VERSION_ENV] = cxschema.Manifest.version();\n env[cxapi.CLI_VERSION_ENV] = (0, util_1.versionNumber)();\n await debugFn((0, node_util_1.format)('env:', env));\n return env;\n }\n /**\n * Run code from a different working directory\n */\n async changeDir(block, workingDir) {\n const originalWorkingDir = process.cwd();\n try {\n if (workingDir) {\n process.chdir(workingDir);\n }\n return await block();\n }\n finally {\n if (workingDir) {\n process.chdir(originalWorkingDir);\n }\n }\n }\n}\nexports.ExecutionEnvironment = ExecutionEnvironment;\n/**\n * Serializes the given context to a set if environment variables environment variables\n *\n * Needs to know the size of the rest of the env because that's necessary to do\n * an overflow computation on Windows. This function will mutate the given\n * environment in-place. It should be called as the very last operation on the\n * environment, because afterwards is might be at the maximum size.\n *\n * This *would* have returned an `IAsyncDisposable` but that requires messing\n * with TypeScript type definitions to use it in aws-cdk, so returning an\n * explicit cleanup function is easier.\n *\n * `completeness` indicates whether this `env` block represents the full `env`\n * that will be passed to a subprocess, or whether it will be mixed into\n * `process.env` later.\n */\nfunction writeContextToEnv(env, context, completeness) {\n let contextOverflowLocation = null;\n // On Windows, all envvars together must fit in a 32k block ()\n // On Linux, a single entry may not exceed 131k; but we're treating it as all together because that's safe\n // and it's a single execution path for both platforms.\n const envVariableSizeLimit = os.platform() === 'win32' ? 32760 : 131072;\n const completeEnv = { ...completeness === 'add-process-env-later' ? process.env : {}, ...env };\n const [smallContext, overflow] = (0, util_1.splitBySize)(context, (0, environment_1.spaceAvailableForContext)(completeEnv, envVariableSizeLimit));\n // Store the safe part in the environment variable\n env[cxapi.CONTEXT_ENV] = JSON.stringify(smallContext);\n // If there was any overflow, write it to a temporary file\n if (Object.keys(overflow ?? {}).length > 0) {\n const contextDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk-context'));\n contextOverflowLocation = path.join(contextDir, 'context-overflow.json');\n fs.writeJSONSync(contextOverflowLocation, overflow);\n env[cxapi.CONTEXT_OVERFLOW_LOCATION_ENV] = contextOverflowLocation;\n }\n return async () => {\n if (contextOverflowLocation) {\n await fs.promises.rm(path.dirname(contextOverflowLocation), { recursive: true, force: true });\n }\n };\n}\n/**\n * Checks if a given assembly supports context overflow, warn otherwise.\n *\n * @param assembly - the assembly to check\n */\nasync function checkContextOverflowSupport(tree, ioHelper) {\n // We're dealing with an old version of the framework here. It is unaware of the temporary\n // file, which means that it will ignore the context overflow.\n if (!frameworkSupportsContextOverflow(tree)) {\n await ioHelper.notify(private_1.IO.CDK_ASSEMBLY_W0010.msg('Part of the context could not be sent to the application. Please update the AWS CDK library to the latest version.'));\n }\n}\n/**\n * Find the `aws-cdk-lib` library version by inspecting construct tree debug information\n */\nfunction findConstructLibraryVersion(tree) {\n let ret = undefined;\n (0, tree_1.some)(tree, node => {\n const fqn = node.constructInfo?.fqn;\n const version = node.constructInfo?.version;\n if (fqn?.startsWith('aws-cdk-lib.') || fqn?.startsWith('@aws-cdk/core.')) {\n ret = version;\n return true;\n }\n return false;\n });\n return ret !== '0.0.0' ? ret : undefined;\n}\n/**\n * Checks if the framework supports context overflow\n */\nfunction frameworkSupportsContextOverflow(tree) {\n const version = findConstructLibraryVersion(tree);\n return !version || !(0, semver_1.lte)(version, '2.38.0');\n}\n/**\n * Safely create an assembly from a cloud assembly directory\n */\nasync function assemblyFromDirectory(assemblyDir, ioHelper, loadOptions = {}) {\n try {\n const assembly = new cloud_assembly_api_1.CloudAssembly(assemblyDir, {\n skipVersionCheck: !(loadOptions.checkVersion ?? true),\n skipEnumCheck: !(loadOptions.checkEnums ?? true),\n // We sort as we deploy\n topoSort: false,\n });\n const tree = await (0, tree_1.loadTree)(assembly, ioHelper.defaults.trace.bind(ioHelper.defaults));\n await checkContextOverflowSupport(tree, ioHelper);\n return assembly;\n }\n catch (err) {\n if (err.message.includes(cxschema.VERSION_MISMATCH)) {\n // this means the CLI version is too old.\n // we instruct the user to upgrade.\n const message = 'This AWS CDK Toolkit is not compatible with the AWS CDK library used by your application. Please upgrade to the latest version.';\n await ioHelper.notify(private_1.IO.CDK_ASSEMBLY_E1111.msg(message, { error: err }));\n throw new toolkit_error_1.ToolkitError('AssemblyVersionMismatch', `${message}\\n(${err.message}`);\n }\n throw err;\n }\n}\nfunction settingsFromSynthOptions(synthOpts = {}) {\n return new settings_1.Settings({\n debug: false,\n pathMetadata: true,\n versionReporting: true,\n assetMetadata: true,\n assetStaging: true,\n ...synthOpts,\n }, true);\n}\n/**\n * Turn synthesis options into context/environment variables that will go to the CDK app\n *\n * These are parameters that control the synthesis operation, configurable by the user\n * from the outside of the app.\n */\nfunction parametersFromSynthOptions(synthOptions) {\n return (0, environment_1.synthParametersFromSettings)(settingsFromSynthOptions(synthOptions ?? {}));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVwYXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxT0EsOENBMkJDO0FBa0JELGtFQWNDO0FBS0QsNEVBSUM7QUFLRCxzREF1QkM7QUFFRCw0REFTQztBQVFELGdFQUVDO0FBMVZELDZDQUEyQztBQUMzQyw4QkFBOEI7QUFDOUIsa0NBQWtDO0FBQ2xDLHlDQUFtQztBQUNuQyxvRUFBNEQ7QUFDNUQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywrQkFBK0I7QUFDL0IsbUNBQTZCO0FBRTdCLGtFQUE4RDtBQUM5RCx3Q0FBMkQ7QUFHM0QsOENBQXNDO0FBRXRDLHlDQUFzQztBQUN0Qyw2Q0FBMEM7QUFFMUMscUNBQTRDO0FBRTVDLGdEQUFtSTtBQW1CbkksTUFBYSxvQkFBb0I7SUFDL0I7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUF5QixFQUFFLE9BQW9DO1FBQ3hGLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLEdBQUcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksZUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxELE1BQU0sSUFBSSxHQUFHO1lBQ1gsTUFBTSxFQUFFLEdBQUc7WUFDWCxvQkFBb0IsRUFBRSxPQUFPLENBQUMsb0JBQW9CO1NB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LENBQUMsQ0FBQztRQUVsRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDcEQseUNBQXlDO1lBQ3pDLG1DQUFtQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxpSUFBaUksQ0FBQztZQUNsSixNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsT0FBTyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDRCxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsWUFBNkIsRUFBRTtJQUN0RSxPQUFPLElBQUksbUJBQVEsQ0FBQztRQUNsQixLQUFLLEVBQUUsS0FBSztRQUNaLFlBQVksRUFBRSxJQUFJO1FBQ2xCLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsR0FBRyxTQUFTO0tBQ2IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLFlBQThCO0lBQ3ZFLE9BQU8sSUFBQSx5Q0FBMkIsRUFBQyx3QkFBd0IsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGx0ZSB9IGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvcHJpdmF0ZSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgc3BsaXRCeVNpemUsIHZlcnNpb25OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9pby9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElSZWFkTG9jaywgSVdyaXRlTG9jayB9IGZyb20gJy4uLy4uL3J3bG9jayc7XG5pbXBvcnQgeyBSV0xvY2sgfSBmcm9tICcuLi8uLi9yd2xvY2snO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXR0aW5ncyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdFRyZWVOb2RlIH0gZnJvbSAnLi4vLi4vdHJlZSc7XG5pbXBvcnQgeyBsb2FkVHJlZSwgc29tZSB9IGZyb20gJy4uLy4uL3RyZWUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0LCBFbnYgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBwcmVwYXJlRGVmYXVsdEVudmlyb25tZW50LCBzcGFjZUF2YWlsYWJsZUZvckNvbnRleHQsIGd1ZXNzRXhlY3V0YWJsZSwgc3ludGhQYXJhbWV0ZXJzRnJvbVNldHRpbmdzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBBcHBTeW50aE9wdGlvbnMsIExvYWRBc3NlbWJseU9wdGlvbnMgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0aW9uRW52aXJvbm1lbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdGhlIGNsb3VkIGFzc2VtYmx5IHdpbGwgYmUgd3JpdHRlbiB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGFzIG91dHB1dCBkaXJlY3RvcnksIHRoaXMgd2lsbCBiZSBjbGVhbmVkIHVwIHdoZW4gdGhpcyBvYmplY3QgaXMgZGlzcG9zZWRcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb2x2ZSBhbmQgYWRkIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGFwcCdzIGRlZmF1bHQgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBtYWtlIGEgY2FsbCB0byBTVFMsIHdoaWNoIGlzIG5vdCBhbHdheXMgZGVzaXJhYmxlIGUuZy4gaWYgdGhlIGVudiBpcyBleHBsaWNpdGx5IHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVEZWZhdWx0QXBwRW52OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgRXhlY3V0aW9uRW52aXJvbm1lbnQgaW1wbGVtZW50cyBBc3luY0Rpc3Bvc2FibGUge1xuICAvKipcbiAgICogQ3JlYXRlIGFuIEV4ZWN1dGlvbkVudmlyb25tZW50XG4gICAqXG4gICAqIEFuIEV4ZWN1dGlvbkVudmlyb25tZW50IGhvbGRzIGEgd3JpdGVyIGxvY2sgb24gdGhlIGdpdmVuIGRpcmVjdG9yeSB3aGljaCB3aWxsXG4gICAqIGJlIGNsZWFuZWQgdXAgd2hlbiB0aGUgb2JqZWN0IGlzIGRpc3Bvc2VkLlxuICAgKlxuICAgKiBBIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGlmIG5vbmUgaXMgc3VwcGxpZWQsIHdoaWNoIHdpbGwgYmUgY2xlYW5lZFxuICAgKiB1cCB3aGVuIHRoaXMgb2JqZWN0IGlzIGRpc3Bvc2VkLlxuICAgKlxuICAgKiBJZiBgbWFya1N1Y2Nlc3NmdWwoKWAgaXMgY2FsbGVkLCB0aGUgd3JpdGVyIGxvY2sgaXMgY29udmVydGVkIHRvIGEgcmVhZGVyIGxvY2tcbiAgICogYW5kIHRlbXBvcmFyeSBkaXJlY3RvcmllcyB3aWxsIG5vdCBiZSBjbGVhbmVkIHVwIGFueW1vcmUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNyZWF0ZShzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzLCBvcHRpb25zOiBFeGVjdXRpb25FbnZpcm9ubWVudE9wdGlvbnMpIHtcbiAgICBsZXQgb3V0RGlySXNUZW1wb3JhcnkgPSBmYWxzZTtcbiAgICBsZXQgZGlyID0gb3B0aW9ucy5vdXRkaXI7XG4gICAgaWYgKCFkaXIpIHtcbiAgICAgIG91dERpcklzVGVtcG9yYXJ5ID0gdHJ1ZTtcbiAgICAgIGRpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihmcy5yZWFscGF0aFN5bmMob3MudG1wZGlyKCkpLCAnY2RrLm91dCcpKTtcbiAgICB9XG4gICAgY29uc3QgbG9jayA9IGF3YWl0IG5ldyBSV0xvY2soZGlyKS5hY3F1aXJlV3JpdGUoKTtcblxuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICBvdXRkaXI6IGRpcixcbiAgICAgIHJlc29sdmVEZWZhdWx0QXBwRW52OiBvcHRpb25zLnJlc29sdmVEZWZhdWx0QXBwRW52LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEV4ZWN1dGlvbkVudmlyb25tZW50KHNlcnZpY2VzLCBvcHRzLCB7XG4gICAgICBsb2NrLFxuICAgICAgb3V0RGlySXNUZW1wb3JhcnksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBvdXRkaXIgYmUgZGlzcG9zZWQgb2YuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3VsZERpc3Bvc2VPdXREaXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkQ2xlYW47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0aGUgY2xvdWQgYXNzZW1ibHkgd2lsbCBiZSB3cml0dGVuIHRvLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8RXhlY3V0aW9uRW52aXJvbm1lbnRPcHRpb25zPjtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYnVnRm46IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcHJpdmF0ZSBsb2NrOiBJV3JpdGVMb2NrIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHNob3VsZENsZWFuOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyxcbiAgICBvcHRpb25zOiBSZXF1aXJlZDxFeGVjdXRpb25FbnZpcm9ubWVudE9wdGlvbnM+LFxuICAgIHsgbG9jaywgb3V0RGlySXNUZW1wb3JhcnkgfToge1xuICAgICAgcmVhZG9ubHkgb3V0RGlySXNUZW1wb3Jhcnk6IGJvb2xlYW47XG4gICAgICByZWFkb25seSBsb2NrOiBJV3JpdGVMb2NrO1xuICAgIH0sXG4gICkge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBzZXJ2aWNlcy5pb0hlbHBlcjtcbiAgICB0aGlzLnNka1Byb3ZpZGVyID0gc2VydmljZXMuc2RrUHJvdmlkZXI7XG4gICAgdGhpcy5kZWJ1Z0ZuID0gKG1zZzogc3RyaW5nKSA9PiB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKG1zZyk7XG4gICAgdGhpcy5sb2NrID0gbG9jaztcbiAgICB0aGlzLnNob3VsZENsZWFuID0gb3V0RGlySXNUZW1wb3Jhcnk7XG4gICAgdGhpcy5vdXRkaXIgPSBvcHRpb25zLm91dGRpcjtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpIHtcbiAgICBhd2FpdCB0aGlzLmxvY2s/LnJlbGVhc2UoKTtcblxuICAgIGlmICh0aGlzLnNob3VsZERpc3Bvc2VPdXREaXIpIHtcbiAgICAgIGF3YWl0IGZzLnJtKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGV4ZWN1dGlvbiBhcyBzdWNjZXNzZnVsLCB3aGljaCBzdG9wcyB0aGUgd3JpdGVyIGxvY2sgZnJvbSBiZWluZyByZWxlYXNlZCB1cG9uIGRpc3Bvc2FsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbWFya1N1Y2Nlc3NmdWwoKSB7XG4gICAgaWYgKCF0aGlzLmxvY2spIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBtYXJrIHN1Y2Nlc3NmdWwgbW9yZSB0aGFuIG9uY2UnKTtcbiAgICB9XG4gICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCB0aGlzLmxvY2suY29udmVydFRvUmVhZGVyTG9jaygpO1xuICAgIHRoaXMubG9jayA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNob3VsZENsZWFuID0gZmFsc2U7XG4gICAgcmV0dXJuIHsgcmVhZExvY2sgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWdpbiBhbiBleGVjdXRpb24gaW4gdGhpcyBlbnZpcm9ubWVudFxuICAgKlxuICAgKiBUaGlzIHdpbGwgYWNxdWlyZSBhIHdyaXRlIGxvY2sgb24gdGhlIGdpdmVuIGVudmlyb25tZW50LiBUaGUgd3JpdGUgbG9ja1xuICAgKiB3aWxsIGJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcmV0dXJuIG9iamVjdCBpcyBkaXNwb3NlZCwgdW5sZXNzIGl0XG4gICAqIGlzIGNvbnZlcnRlZCB0byBhIHJlYWRlciBsb2NrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJlZ2luRXhlY3V0aW9uKCk6IFByb21pc2U8eyB3cml0ZVRvUmVhZExvY2soKTogUHJvbWlzZTxJUmVhZExvY2s+IH0gJiBBc3luY0Rpc3Bvc2FibGU+IHtcbiAgICBjb25zdCBsb2NrID0gYXdhaXQgbmV3IFJXTG9jayh0aGlzLm91dGRpcikuYWNxdWlyZVdyaXRlKCk7XG5cbiAgICBsZXQgY29udmVydGVkID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFzeW5jIHdyaXRlVG9SZWFkTG9jaygpIHtcbiAgICAgICAgY29udmVydGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGxvY2suY29udmVydFRvUmVhZGVyTG9jaygpO1xuICAgICAgfSxcbiAgICAgIFtTeW1ib2wuYXN5bmNEaXNwb3NlXTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBSZWxlYXNlIGlmIG5vdCBjb252ZXJ0ZWRcbiAgICAgICAgaWYgKCFjb252ZXJ0ZWQpIHtcbiAgICAgICAgICBhd2FpdCBsb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEd1ZXNzIHRoZSBleGVjdXRhYmxlIGZyb20gdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudFxuICAgKlxuICAgKiBPbmx5IGRvIHRoaXMgaWYgdGhlIGZpbGUgaXMgTk9UIG1hcmtlZCBhcyBleGVjdXRhYmxlLiBJZiBpdCBpcyxcbiAgICogd2UnbGwgZGVmZXIgdG8gdGhlIHNoZWJhbmcgaW5zaWRlIHRoZSBmaWxlIGl0c2VsZi5cbiAgICpcbiAgICogSWYgd2UncmUgb24gV2luZG93cywgd2UgQUxXQVlTIHRha2UgdGhlIGhhbmRsZXIsIHNpbmNlIGl0J3MgaGFyZCB0b1xuICAgKiB2ZXJpZnkgaWYgcmVnaXN0cnkgYXNzb2NpYXRpb25zIGhhdmUgb3IgaGF2ZSBub3QgYmVlbiBzZXQgdXAgZm9yIHRoaXNcbiAgICogZmlsZSB0eXBlLCBzbyB3ZSdsbCBhc3N1bWUgdGhlIHdvcnN0IGFuZCB0YWtlIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgZ3Vlc3NFeGVjdXRhYmxlKGFwcDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gZ3Vlc3NFeGVjdXRhYmxlKGFwcCwgdGhpcy5kZWJ1Z0ZuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB3ZSBkb24ndCBoYXZlIHJlZ2lvbi9hY2NvdW50IGRlZmluZWQgaW4gY29udGV4dCwgd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IFNESyBiZWhhdmlvclxuICAgKiB3aGVyZSByZWdpb24gaXMgcmV0cmlldmVkIGZyb20gfi8uYXdzL2NvbmZpZyBhbmQgYWNjb3VudCBpcyBiYXNlZCBvbiBkZWZhdWx0IGNyZWRlbnRpYWxzIHByb3ZpZGVyXG4gICAqIGNoYWluIGFuZCB0aGVuIFNUUyBpcyBxdWVyaWVkLlxuICAgKlxuICAgKiBUaGlzIGlzIGRvbmUgb3Bwb3J0dW5pc3RpY2FsbHk6IGZvciBleGFtcGxlLCBpZiB3ZSBjYW4ndCBhY2Nlc3MgU1RTIGZvciBzb21lIHJlYXNvbiBvciB0aGUgcmVnaW9uXG4gICAqIGlzIG5vdCBjb25maWd1cmVkLCB0aGUgY29udGV4dCB2YWx1ZSB3aWxsIGJlICdudWxsJyBhbmQgdGhlcmUgY291bGQgZmFpbHVyZXMgZG93biB0aGUgbGluZS4gSW5cbiAgICogc29tZSBjYXNlcywgc3ludGhlc2lzIGRvZXMgbm90IHJlcXVpcmUgcmVnaW9uL2FjY291bnQgaW5mb3JtYXRpb24gYXQgYWxsLCBzbyB0aGF0IG1pZ2h0IGJlIHBlcmZlY3RseVxuICAgKiBmaW5lIGluIGNlcnRhaW4gc2NlbmFyaW9zLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlZmF1bHRFbnZWYXJzKCk6IFByb21pc2U8RW52PiB7XG4gICAgY29uc3QgZGVidWdGbiA9IChtc2c6IHN0cmluZykgPT4gdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMDEwLm1zZyhtc2cpKTtcbiAgICBjb25zdCBlbnYgPSB0aGlzLm9wdGlvbnMucmVzb2x2ZURlZmF1bHRBcHBFbnYgPyBhd2FpdCBwcmVwYXJlRGVmYXVsdEVudmlyb25tZW50KHRoaXMuc2RrUHJvdmlkZXIsIGRlYnVnRm4pIDoge307XG5cbiAgICBlbnZbY3hhcGkuT1VURElSX0VOVl0gPSB0aGlzLm91dGRpcjtcbiAgICBhd2FpdCBkZWJ1Z0ZuKGZvcm1hdCgnb3V0ZGlyOicsIHRoaXMub3V0ZGlyKSk7XG5cbiAgICAvLyBDTEkgdmVyc2lvbiBpbmZvcm1hdGlvblxuICAgIGVudltjeGFwaS5DTElfQVNNX1ZFUlNJT05fRU5WXSA9IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKTtcbiAgICBlbnZbY3hhcGkuQ0xJX1ZFUlNJT05fRU5WXSA9IHZlcnNpb25OdW1iZXIoKTtcblxuICAgIGF3YWl0IGRlYnVnRm4oZm9ybWF0KCdlbnY6JywgZW52KSk7XG4gICAgcmV0dXJuIGVudjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gY29kZSBmcm9tIGEgZGlmZmVyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hhbmdlRGlyPFQ+KGJsb2NrOiAoKSA9PiBQcm9taXNlPFQ+LCB3b3JraW5nRGlyPzogc3RyaW5nKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxXb3JraW5nRGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgICB0cnkge1xuICAgICAgaWYgKHdvcmtpbmdEaXIpIHtcbiAgICAgICAgcHJvY2Vzcy5jaGRpcih3b3JraW5nRGlyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh3b3JraW5nRGlyKSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIob3JpZ2luYWxXb3JraW5nRGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBjb250ZXh0IHRvIGEgc2V0IGlmIGVudmlyb25tZW50IHZhcmlhYmxlcyBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqXG4gKiBOZWVkcyB0byBrbm93IHRoZSBzaXplIG9mIHRoZSByZXN0IG9mIHRoZSBlbnYgYmVjYXVzZSB0aGF0J3MgbmVjZXNzYXJ5IHRvIGRvXG4gKiBhbiBvdmVyZmxvdyBjb21wdXRhdGlvbiBvbiBXaW5kb3dzLiBUaGlzIGZ1bmN0aW9uIHdpbGwgbXV0YXRlIHRoZSBnaXZlblxuICogZW52aXJvbm1lbnQgaW4tcGxhY2UuIEl0IHNob3VsZCBiZSBjYWxsZWQgYXMgdGhlIHZlcnkgbGFzdCBvcGVyYXRpb24gb24gdGhlXG4gKiBlbnZpcm9ubWVudCwgYmVjYXVzZSBhZnRlcndhcmRzIGlzIG1pZ2h0IGJlIGF0IHRoZSBtYXhpbXVtIHNpemUuXG4gKlxuICogVGhpcyAqd291bGQqIGhhdmUgcmV0dXJuZWQgYW4gYElBc3luY0Rpc3Bvc2FibGVgIGJ1dCB0aGF0IHJlcXVpcmVzIG1lc3NpbmdcbiAqIHdpdGggVHlwZVNjcmlwdCB0eXBlIGRlZmluaXRpb25zIHRvIHVzZSBpdCBpbiBhd3MtY2RrLCBzbyByZXR1cm5pbmcgYW5cbiAqIGV4cGxpY2l0IGNsZWFudXAgZnVuY3Rpb24gaXMgZWFzaWVyLlxuICpcbiAqIGBjb21wbGV0ZW5lc3NgIGluZGljYXRlcyB3aGV0aGVyIHRoaXMgYGVudmAgYmxvY2sgcmVwcmVzZW50cyB0aGUgZnVsbCBgZW52YFxuICogdGhhdCB3aWxsIGJlIHBhc3NlZCB0byBhIHN1YnByb2Nlc3MsIG9yIHdoZXRoZXIgaXQgd2lsbCBiZSBtaXhlZCBpbnRvXG4gKiBgcHJvY2Vzcy5lbnZgIGxhdGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVDb250ZXh0VG9FbnYoZW52OiBFbnYsIGNvbnRleHQ6IENvbnRleHQsIGNvbXBsZXRlbmVzczogJ2FkZC1wcm9jZXNzLWVudi1sYXRlcicgfCAnZW52LWlzLWNvbXBsZXRlJykge1xuICBsZXQgY29udGV4dE92ZXJmbG93TG9jYXRpb24gPSBudWxsO1xuXG4gIC8vIE9uIFdpbmRvd3MsIGFsbCBlbnZ2YXJzIHRvZ2V0aGVyIG11c3QgZml0IGluIGEgMzJrIGJsb2NrICg8aHR0cHM6Ly9kZXZibG9ncy5taWNyb3NvZnQuY29tL29sZG5ld3RoaW5nLzIwMTAwMjAzLTAwPilcbiAgLy8gT24gTGludXgsIGEgc2luZ2xlIGVudHJ5IG1heSBub3QgZXhjZWVkIDEzMWs7IGJ1dCB3ZSdyZSB0cmVhdGluZyBpdCBhcyBhbGwgdG9nZXRoZXIgYmVjYXVzZSB0aGF0J3Mgc2FmZVxuICAvLyBhbmQgaXQncyBhIHNpbmdsZSBleGVjdXRpb24gcGF0aCBmb3IgYm90aCBwbGF0Zm9ybXMuXG4gIGNvbnN0IGVudlZhcmlhYmxlU2l6ZUxpbWl0ID0gb3MucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJyA/IDMyNzYwIDogMTMxMDcyO1xuXG4gIGNvbnN0IGNvbXBsZXRlRW52ID0geyAuLi5jb21wbGV0ZW5lc3MgPT09ICdhZGQtcHJvY2Vzcy1lbnYtbGF0ZXInID8gcHJvY2Vzcy5lbnYgOiB7fSwgLi4uZW52IH07XG4gIGNvbnN0IFtzbWFsbENvbnRleHQsIG92ZXJmbG93XSA9IHNwbGl0QnlTaXplKGNvbnRleHQsIHNwYWNlQXZhaWxhYmxlRm9yQ29udGV4dChjb21wbGV0ZUVudiwgZW52VmFyaWFibGVTaXplTGltaXQpKTtcblxuICAvLyBTdG9yZSB0aGUgc2FmZSBwYXJ0IGluIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICBlbnZbY3hhcGkuQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoc21hbGxDb250ZXh0KTtcblxuICAvLyBJZiB0aGVyZSB3YXMgYW55IG92ZXJmbG93LCB3cml0ZSBpdCB0byBhIHRlbXBvcmFyeSBmaWxlXG4gIGlmIChPYmplY3Qua2V5cyhvdmVyZmxvdyA/PyB7fSkubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGNvbnRleHREaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstY29udGV4dCcpKTtcbiAgICBjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiA9IHBhdGguam9pbihjb250ZXh0RGlyLCAnY29udGV4dC1vdmVyZmxvdy5qc29uJyk7XG4gICAgZnMud3JpdGVKU09OU3luYyhjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiwgb3ZlcmZsb3cpO1xuICAgIGVudltjeGFwaS5DT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOVl0gPSBjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbjtcbiAgfVxuXG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgaWYgKGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uKSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy5ybShwYXRoLmRpcm5hbWUoY29udGV4dE92ZXJmbG93TG9jYXRpb24pLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIGFzc2VtYmx5IHN1cHBvcnRzIGNvbnRleHQgb3ZlcmZsb3csIHdhcm4gb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBhc3NlbWJseSAtIHRoZSBhc3NlbWJseSB0byBjaGVja1xuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja0NvbnRleHRPdmVyZmxvd1N1cHBvcnQodHJlZTogQ29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQsIGlvSGVscGVyOiBJb0hlbHBlcik6IFByb21pc2U8dm9pZD4ge1xuICAvLyBXZSdyZSBkZWFsaW5nIHdpdGggYW4gb2xkIHZlcnNpb24gb2YgdGhlIGZyYW1ld29yayBoZXJlLiBJdCBpcyB1bmF3YXJlIG9mIHRoZSB0ZW1wb3JhcnlcbiAgLy8gZmlsZSwgd2hpY2ggbWVhbnMgdGhhdCBpdCB3aWxsIGlnbm9yZSB0aGUgY29udGV4dCBvdmVyZmxvdy5cbiAgaWYgKCFmcmFtZXdvcmtTdXBwb3J0c0NvbnRleHRPdmVyZmxvdyh0cmVlKSkge1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfVzAwMTAubXNnKCdQYXJ0IG9mIHRoZSBjb250ZXh0IGNvdWxkIG5vdCBiZSBzZW50IHRvIHRoZSBhcHBsaWNhdGlvbi4gUGxlYXNlIHVwZGF0ZSB0aGUgQVdTIENESyBsaWJyYXJ5IHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4nKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBGaW5kIHRoZSBgYXdzLWNkay1saWJgIGxpYnJhcnkgdmVyc2lvbiBieSBpbnNwZWN0aW5nIGNvbnN0cnVjdCB0cmVlIGRlYnVnIGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29uc3RydWN0TGlicmFyeVZlcnNpb24odHJlZTogQ29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBsZXQgcmV0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgc29tZSh0cmVlLCBub2RlID0+IHtcbiAgICBjb25zdCBmcW4gPSBub2RlLmNvbnN0cnVjdEluZm8/LmZxbjtcbiAgICBjb25zdCB2ZXJzaW9uID0gbm9kZS5jb25zdHJ1Y3RJbmZvPy52ZXJzaW9uO1xuICAgIGlmIChmcW4/LnN0YXJ0c1dpdGgoJ2F3cy1jZGstbGliLicpIHx8IGZxbj8uc3RhcnRzV2l0aCgnQGF3cy1jZGsvY29yZS4nKSkge1xuICAgICAgcmV0ID0gdmVyc2lvbjtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xuXG4gIHJldHVybiByZXQgIT09ICcwLjAuMCcgPyByZXQgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBmcmFtZXdvcmsgc3VwcG9ydHMgY29udGV4dCBvdmVyZmxvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJhbWV3b3JrU3VwcG9ydHNDb250ZXh0T3ZlcmZsb3codHJlZTogQ29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgY29uc3QgdmVyc2lvbiA9IGZpbmRDb25zdHJ1Y3RMaWJyYXJ5VmVyc2lvbih0cmVlKTtcblxuICByZXR1cm4gIXZlcnNpb24gfHwgIWx0ZSh2ZXJzaW9uLCAnMi4zOC4wJyk7XG59XG5cbi8qKlxuICogU2FmZWx5IGNyZWF0ZSBhbiBhc3NlbWJseSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3NlbWJseUZyb21EaXJlY3RvcnkoYXNzZW1ibHlEaXI6IHN0cmluZywgaW9IZWxwZXI6IElvSGVscGVyLCBsb2FkT3B0aW9uczogTG9hZEFzc2VtYmx5T3B0aW9ucyA9IHt9KSB7XG4gIHRyeSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgQ2xvdWRBc3NlbWJseShhc3NlbWJseURpciwge1xuICAgICAgc2tpcFZlcnNpb25DaGVjazogIShsb2FkT3B0aW9ucy5jaGVja1ZlcnNpb24gPz8gdHJ1ZSksXG4gICAgICBza2lwRW51bUNoZWNrOiAhKGxvYWRPcHRpb25zLmNoZWNrRW51bXMgPz8gdHJ1ZSksXG4gICAgICAvLyBXZSBzb3J0IGFzIHdlIGRlcGxveVxuICAgICAgdG9wb1NvcnQ6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdHJlZSA9IGF3YWl0IGxvYWRUcmVlKGFzc2VtYmx5LCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZS5iaW5kKGlvSGVscGVyLmRlZmF1bHRzKSk7XG4gICAgYXdhaXQgY2hlY2tDb250ZXh0T3ZlcmZsb3dTdXBwb3J0KHRyZWUsIGlvSGVscGVyKTtcblxuICAgIHJldHVybiBhc3NlbWJseTtcbiAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICBpZiAoZXJyLm1lc3NhZ2UuaW5jbHVkZXMoY3hzY2hlbWEuVkVSU0lPTl9NSVNNQVRDSCkpIHtcbiAgICAgIC8vIHRoaXMgbWVhbnMgdGhlIENMSSB2ZXJzaW9uIGlzIHRvbyBvbGQuXG4gICAgICAvLyB3ZSBpbnN0cnVjdCB0aGUgdXNlciB0byB1cGdyYWRlLlxuICAgICAgY29uc3QgbWVzc2FnZSA9ICdUaGlzIEFXUyBDREsgVG9vbGtpdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBBV1MgQ0RLIGxpYnJhcnkgdXNlZCBieSB5b3VyIGFwcGxpY2F0aW9uLiBQbGVhc2UgdXBncmFkZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24uJztcbiAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTExMTEubXNnKG1lc3NhZ2UsIHsgZXJyb3I6IGVyciB9KSk7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdBc3NlbWJseVZlcnNpb25NaXNtYXRjaCcsIGAke21lc3NhZ2V9XFxuKCR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dGluZ3NGcm9tU3ludGhPcHRpb25zKHN5bnRoT3B0czogQXBwU3ludGhPcHRpb25zID0ge30pOiBTZXR0aW5ncyB7XG4gIHJldHVybiBuZXcgU2V0dGluZ3Moe1xuICAgIGRlYnVnOiBmYWxzZSxcbiAgICBwYXRoTWV0YWRhdGE6IHRydWUsXG4gICAgdmVyc2lvblJlcG9ydGluZzogdHJ1ZSxcbiAgICBhc3NldE1ldGFkYXRhOiB0cnVlLFxuICAgIGFzc2V0U3RhZ2luZzogdHJ1ZSxcbiAgICAuLi5zeW50aE9wdHMsXG4gIH0sIHRydWUpO1xufVxuXG4vKipcbiAqIFR1cm4gc3ludGhlc2lzIG9wdGlvbnMgaW50byBjb250ZXh0L2Vudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IHdpbGwgZ28gdG8gdGhlIENESyBhcHBcbiAqXG4gKiBUaGVzZSBhcmUgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgdGhlIHN5bnRoZXNpcyBvcGVyYXRpb24sIGNvbmZpZ3VyYWJsZSBieSB0aGUgdXNlclxuICogZnJvbSB0aGUgb3V0c2lkZSBvZiB0aGUgYXBwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyYW1ldGVyc0Zyb21TeW50aE9wdGlvbnMoc3ludGhPcHRpb25zPzogQXBwU3ludGhPcHRpb25zKSB7XG4gIHJldHVybiBzeW50aFBhcmFtZXRlcnNGcm9tU2V0dGluZ3Moc2V0dGluZ3NGcm9tU3ludGhPcHRpb25zKHN5bnRoT3B0aW9ucyA/PyB7fSkpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReadableCloudAssembly = void 0;\nconst node_fs_1 = require(\"node:fs\");\n/**\n * The canonical implementation of `IReadableCloudAssembly`\n *\n * Holds a read lock that is unlocked on disposal, as well as optionally deletes the\n * cloud assembly directory.\n */\nclass ReadableCloudAssembly {\n cloudAssembly;\n lock;\n options;\n constructor(cloudAssembly, lock, options) {\n this.cloudAssembly = cloudAssembly;\n this.lock = lock;\n this.options = options;\n }\n async _unlock() {\n return this.lock.release();\n }\n async dispose() {\n await this.lock.release();\n if (this.options?.deleteOnDispose) {\n await node_fs_1.promises.rm(this.cloudAssembly.directory, { recursive: true, force: true });\n }\n }\n [Symbol.asyncDispose]() {\n return this.dispose();\n }\n}\nexports.ReadableCloudAssembly = ReadableCloudAssembly;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGFibGUtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWFkYWJsZS1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBeUM7QUFjekM7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFxQjtJQUVkO0lBQ0M7SUFDQTtJQUhuQixZQUNrQixhQUFrQyxFQUNqQyxJQUFlLEVBQ2YsT0FBc0M7UUFGdkMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2pDLFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUErQjtJQUV6RCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sa0JBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDSCxDQUFDO0lBRU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQXRCRCxzREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBJUmVhZExvY2sgfSBmcm9tICcuLi8uLi9yd2xvY2snO1xuaW1wb3J0IHR5cGUgeyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRhYmxlQ2xvdWRBc3NlbWJseU9wdGlvbnMge1xuICAvKipcbiAgICogRGVsZXRlIHRoZSBDbG91ZCBBc3NlbWJseSBkaXJlY3Rvcnkgd2hlbiB0aGUgb2JqZWN0IGlzIGRpc3Bvc2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZWxldGVPbkRpc3Bvc2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBjYW5vbmljYWwgaW1wbGVtZW50YXRpb24gb2YgYElSZWFkYWJsZUNsb3VkQXNzZW1ibHlgXG4gKlxuICogSG9sZHMgYSByZWFkIGxvY2sgdGhhdCBpcyB1bmxvY2tlZCBvbiBkaXNwb3NhbCwgYXMgd2VsbCBhcyBvcHRpb25hbGx5IGRlbGV0ZXMgdGhlXG4gKiBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNsb3VkQXNzZW1ibHk6IGN4YXBpLkNsb3VkQXNzZW1ibHksXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NrOiBJUmVhZExvY2ssXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zPzogUmVhZGFibGVDbG91ZEFzc2VtYmx5T3B0aW9ucyxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NrLnJlbGVhc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9jay5yZWxlYXNlKCk7XG4gICAgaWYgKHRoaXMub3B0aW9ucz8uZGVsZXRlT25EaXNwb3NlKSB7XG4gICAgICBhd2FpdCBmcy5ybSh0aGlzLmNsb3VkQXNzZW1ibHkuZGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackAssembly = void 0;\nrequire(\"../../../private/dispose-polyfill\");\nconst semver_1 = require(\"semver\");\nconst toolkit_error_1 = require(\"../../../toolkit/toolkit-error\");\nconst stack_assembly_1 = require(\"../stack-assembly\");\nconst stack_collection_1 = require(\"../stack-collection\");\nconst stack_selector_1 = require(\"../stack-selector\");\n/**\n * A single Cloud Assembly wrapped to provide additional stack operations.\n */\nclass StackAssembly extends stack_assembly_1.BaseStackAssembly {\n _asm;\n constructor(_asm, ioHelper) {\n super(_asm.cloudAssembly, ioHelper);\n this._asm = _asm;\n }\n get cloudAssembly() {\n return this._asm.cloudAssembly;\n }\n async _unlock() {\n return this._asm._unlock();\n }\n async dispose() {\n return this._asm.dispose();\n }\n async [Symbol.asyncDispose]() {\n return this.dispose();\n }\n /**\n * Improved stack selection interface with a single selector\n * @throws when the assembly does not contain any stacks, unless `selector.failOnEmpty` is `false`\n * @throws when individual selection strategies are not satisfied\n */\n async selectStacksV2(selector) {\n const asm = this.assembly;\n const topLevelStacks = asm.stacks;\n const allStacks = (0, semver_1.major)(asm.version) < 10 ? asm.stacks : asm.stacksRecursively;\n if (allStacks.length === 0 && (selector.failOnEmpty ?? true)) {\n throw new toolkit_error_1.ToolkitError('NoStacksInApp', 'This app contains no stacks');\n }\n const extend = expandToExtendEnum(selector.expand);\n const patterns = StackAssembly.sanitizePatterns(selector.patterns ?? []);\n switch (selector.strategy) {\n case stack_selector_1.StackSelectionStrategy.ALL_STACKS:\n return new stack_collection_1.StackCollection(this, allStacks);\n case stack_selector_1.StackSelectionStrategy.MAIN_ASSEMBLY:\n if (topLevelStacks.length < 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('NoStackInMainAssembly', 'No stack found in the main cloud assembly. Use \"list\" to print manifest');\n }\n return this.extendStacks(topLevelStacks, allStacks, extend);\n case stack_selector_1.StackSelectionStrategy.ONLY_SINGLE:\n if (topLevelStacks.length !== 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('MultipleStacksWithoutSelector', 'Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\\n' +\n `Stacks: ${allStacks.map(x => x.hierarchicalId).join(' · ')}`);\n }\n return new stack_collection_1.StackCollection(this, topLevelStacks);\n default:\n const matched = await this.selectMatchingStacks(allStacks, patterns, extend);\n if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE\n && matched.stackCount !== 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('AmbiguousStackSelection', `Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);\n }\n if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH\n && matched.stackCount < 1) {\n // @todo text should probably be handled in io host\n throw new toolkit_error_1.ToolkitError('NoStacksMatched', `Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);\n }\n return matched;\n }\n }\n /**\n * Select all stacks.\n *\n * This method never throws and can safely be used as a basis for other calculations.\n *\n * @returns a `StackCollection` of all stacks\n */\n selectAllStacks() {\n const allStacks = (0, semver_1.major)(this.assembly.version) < 10 ? this.assembly.stacks : this.assembly.stacksRecursively;\n return new stack_collection_1.StackCollection(this, allStacks);\n }\n /**\n * Select all stacks that have the validateOnSynth flag et.\n *\n * @returns a `StackCollection` of all stacks that needs to be validated\n */\n selectStacksForValidation() {\n const allStacks = this.selectAllStacks();\n return allStacks.filter((art) => art.validateOnSynth ?? false);\n }\n}\nexports.StackAssembly = StackAssembly;\nfunction expandToExtendEnum(extend) {\n switch (extend) {\n case stack_selector_1.ExpandStackSelection.DOWNSTREAM:\n return stack_assembly_1.ExtendedStackSelection.Downstream;\n case stack_selector_1.ExpandStackSelection.UPSTREAM:\n return stack_assembly_1.ExtendedStackSelection.Upstream;\n case stack_selector_1.ExpandStackSelection.NONE:\n return stack_assembly_1.ExtendedStackSelection.None;\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFDM0MsbUNBQStCO0FBQy9CLGtFQUE4RDtBQUU5RCxzREFBMkc7QUFDM0csMERBQXNEO0FBRXRELHNEQUFpRjtBQUdqRjs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLGtDQUFpQjtJQUNyQjtJQUE3QixZQUE2QixJQUE0QixFQUFFLFFBQWtCO1FBQzNFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRFQsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFFekQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBdUI7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUEsY0FBSyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdB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LGlCQUFpQixDQUFDO1FBQzdHLE9BQU8sSUFBSSxrQ0FBZSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUF5QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQXRHRCxzQ0FzR0M7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQTZCO0lBQ3ZELFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLHFDQUFvQixDQUFDLFVBQVU7WUFDbEMsT0FBTyx1Q0FBeUIsQ0FBQyxVQUFVLENBQUM7UUFDOUMsS0FBSyxxQ0FBb0IsQ0FBQyxRQUFRO1lBQ2hDLE9BQU8sdUNBQXlCLENBQUMsUUFBUSxDQUFDO1FBQzVDLEtBQUsscUNBQW9CLENBQUMsSUFBSTtZQUM1QixPQUFPLHVDQUF5QixDQUFDLElBQUksQ0FBQztRQUN4QztZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0IHsgbWFqb3IgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9pby9wcml2YXRlJztcbmltcG9ydCB7IEJhc2VTdGFja0Fzc2VtYmx5LCBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIGFzIENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gfSBmcm9tICcuLi9zdGFjay1hc3NlbWJseSc7XG5pbXBvcnQgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi9zdGFjay1jb2xsZWN0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB7IEV4cGFuZFN0YWNrU2VsZWN0aW9uLCBTdGFja1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vc3RhY2stc2VsZWN0b3InO1xuaW1wb3J0IHR5cGUgeyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEEgc2luZ2xlIENsb3VkIEFzc2VtYmx5IHdyYXBwZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHN0YWNrIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0Fzc2VtYmx5IGV4dGVuZHMgQmFzZVN0YWNrQXNzZW1ibHkgaW1wbGVtZW50cyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfYXNtOiBJUmVhZGFibGVDbG91ZEFzc2VtYmx5LCBpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgICBzdXBlcihfYXNtLmNsb3VkQXNzZW1ibHksIGlvSGVscGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvdWRBc3NlbWJseSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXNtLmNsb3VkQXNzZW1ibHk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5fYXNtLl91bmxvY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCkge1xuICAgIHJldHVybiB0aGlzLl9hc20uZGlzcG9zZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wcm92ZWQgc3RhY2sgc2VsZWN0aW9uIGludGVyZmFjZSB3aXRoIGEgc2luZ2xlIHNlbGVjdG9yXG4gICAqIEB0aHJvd3Mgd2hlbiB0aGUgYXNzZW1ibHkgZG9lcyBub3QgY29udGFpbiBhbnkgc3RhY2tzLCB1bmxlc3MgYHNlbGVjdG9yLmZhaWxPbkVtcHR5YCBpcyBgZmFsc2VgXG4gICAqIEB0aHJvd3Mgd2hlbiBpbmRpdmlkdWFsIHNlbGVjdGlvbiBzdHJhdGVnaWVzIGFyZSBub3Qgc2F0aXNmaWVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0U3RhY2tzVjIoc2VsZWN0b3I6IFN0YWNrU2VsZWN0b3IpOiBQcm9taXNlPFN0YWNrQ29sbGVjdGlvbj4ge1xuICAgIGNvbnN0IGFzbSA9IHRoaXMuYXNzZW1ibHk7XG4gICAgY29uc3QgdG9wTGV2ZWxTdGFja3MgPSBhc20uc3RhY2tzO1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IG1ham9yKGFzbS52ZXJzaW9uKSA8IDEwID8gYXNtLnN0YWNrcyA6IGFzbS5zdGFja3NSZWN1cnNpdmVseTtcblxuICAgIGlmIChhbGxTdGFja3MubGVuZ3RoID09PSAwICYmIChzZWxlY3Rvci5mYWlsT25FbXB0eSA/PyB0cnVlKSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignTm9TdGFja3NJbkFwcCcsICdUaGlzIGFwcCBjb250YWlucyBubyBzdGFja3MnKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbmQgPSBleHBhbmRUb0V4dGVuZEVudW0oc2VsZWN0b3IuZXhwYW5kKTtcbiAgICBjb25zdCBwYXR0ZXJucyA9IFN0YWNrQXNzZW1ibHkuc2FuaXRpemVQYXR0ZXJucyhzZWxlY3Rvci5wYXR0ZXJucyA/PyBbXSk7XG5cbiAgICBzd2l0Y2ggKHNlbGVjdG9yLnN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuQUxMX1NUQUNLUzpcbiAgICAgICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgYWxsU3RhY2tzKTtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5NQUlOX0FTU0VNQkxZOlxuICAgICAgICBpZiAodG9wTGV2ZWxTdGFja3MubGVuZ3RoIDwgMSkge1xuICAgICAgICAgIC8vIEB0b2RvIHRleHQgc2hvdWxkIHByb2JhYmx5IGJlIGhhbmRsZWQgaW4gaW8gaG9zdFxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ05vU3RhY2tJbk1haW5Bc3NlbWJseScsICdObyBzdGFjayBmb3VuZCBpbiB0aGUgbWFpbiBjbG91ZCBhc3NlbWJseS4gVXNlIFwibGlzdFwiIHRvIHByaW50IG1hbmlmZXN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kU3RhY2tzKHRvcExldmVsU3RhY2tzLCBhbGxTdGFja3MsIGV4dGVuZCk7XG4gICAgICBjYXNlIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuT05MWV9TSU5HTEU6XG4gICAgICAgIGlmICh0b3BMZXZlbFN0YWNrcy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdNdWx0aXBsZVN0YWNrc1dpdGhvdXRTZWxlY3RvcicsICdTaW5jZSB0aGlzIGFwcCBpbmNsdWRlcyBtb3JlIHRoYW4gYSBzaW5nbGUgc3RhY2ssIHNwZWNpZnkgd2hpY2ggc3RhY2tzIHRvIHVzZSAod2lsZGNhcmRzIGFyZSBzdXBwb3J0ZWQpIG9yIHNwZWNpZnkgYC0tYWxsYFxcbicgK1xuICAgICAgICAgIGBTdGFja3M6ICR7YWxsU3RhY2tzLm1hcCh4ID0+IHguaGllcmFyY2hpY2FsSWQpLmpvaW4oJyDCtyAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCB0b3BMZXZlbFN0YWNrcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBtYXRjaGVkID0gYXdhaXQgdGhpcy5zZWxlY3RNYXRjaGluZ1N0YWNrcyhhbGxTdGFja3MsIHBhdHRlcm5zLCBleHRlbmQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0b3Iuc3RyYXRlZ3kgPT09IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuUEFUVEVSTl9NVVNUX01BVENIX1NJTkdMRVxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCAhPT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBAdG9kbyB0ZXh0IHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGluIGlvIGhvc3RcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICAgJ0FtYmlndW91c1N0YWNrU2VsZWN0aW9uJyxcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSFxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCA8IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgICdOb1N0YWNrc01hdGNoZWQnLFxuICAgICAgICAgICAgYFN0YWNrIHNlbGVjdGlvbiBpcyBhbWJpZ3VvdXMsIHBsZWFzZSBjaG9vc2UgYSBzcGVjaWZpYyBzdGFjayBmb3IgaW1wb3J0IFske2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcsJyl9XWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYWxsIHN0YWNrcy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgbmV2ZXIgdGhyb3dzIGFuZCBjYW4gc2FmZWx5IGJlIHVzZWQgYXMgYSBiYXNpcyBmb3Igb3RoZXIgY2FsY3VsYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBhIGBTdGFja0NvbGxlY3Rpb25gIG9mIGFsbCBzdGFja3NcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RBbGxTdGFja3MoKSB7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gbWFqb3IodGhpcy5hc3NlbWJseS52ZXJzaW9uKSA8IDEwID8gdGhpcy5hc3NlbWJseS5zdGFja3MgOiB0aGlzLmFzc2VtYmx5LnN0YWNrc1JlY3Vyc2l2ZWx5O1xuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMsIGFsbFN0YWNrcyk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFsbCBzdGFja3MgdGhhdCBoYXZlIHRoZSB2YWxpZGF0ZU9uU3ludGggZmxhZyBldC5cbiAgICpcbiAgICogQHJldHVybnMgYSBgU3RhY2tDb2xsZWN0aW9uYCBvZiBhbGwgc3RhY2tzIHRoYXQgbmVlZHMgdG8gYmUgdmFsaWRhdGVkXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0U3RhY2tzRm9yVmFsaWRhdGlvbigpIHtcbiAgICBjb25zdCBhbGxTdGFja3MgPSB0aGlzLnNlbGVjdEFsbFN0YWNrcygpO1xuICAgIHJldHVybiBhbGxTdGFja3MuZmlsdGVyKChhcnQpID0+IGFydC52YWxpZGF0ZU9uU3ludGggPz8gZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4cGFuZFRvRXh0ZW5kRW51bShleHRlbmQ/OiBFeHBhbmRTdGFja1NlbGVjdGlvbik6IENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKGV4dGVuZCkge1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uRE9XTlNUUkVBTTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLkRvd25zdHJlYW07XG4gICAgY2FzZSBFeHBhbmRTdGFja1NlbGVjdGlvbi5VUFNUUkVBTTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLlVwc3RyZWFtO1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uTk9ORTpcbiAgICAgIHJldHVybiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLk5vbmU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ALL_STACKS = void 0;\nconst stack_selector_1 = require(\"../stack-selector\");\nexports.ALL_STACKS = {\n strategy: stack_selector_1.StackSelectionStrategy.ALL_STACKS,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUEyRDtBQUU5QyxRQUFBLFVBQVUsR0FBa0I7SUFDdkMsUUFBUSxFQUFFLHVDQUFzQixDQUFDLFVBQVU7Q0FDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB7IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5cbmV4cG9ydCBjb25zdCBBTExfU1RBQ0tTOiBTdGFja1NlbGVjdG9yID0ge1xuICBzdHJhdGVneTogU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTLFxufTtcbiJdfQ==","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudAssemblySourceBuilder = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst fs = require(\"fs-extra\");\nconst context_store_1 = require(\"./context-store\");\nconst rwlock_1 = require(\"../rwlock\");\nconst cached_source_1 = require(\"./cached-source\");\nconst context_aware_source_1 = require(\"./private/context-aware-source\");\nconst exec_1 = require(\"./private/exec\");\nconst prepare_source_1 = require(\"./private/prepare-source\");\nconst readable_assembly_1 = require(\"./private/readable-assembly\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_2 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nconst helpers_1 = require(\"./private/helpers\");\nclass CloudAssemblySourceBuilder {\n /**\n * Create a Cloud Assembly from a Cloud Assembly builder function.\n *\n * ## Outdir\n *\n * If no output directory is given, it will synthesize into a temporary system\n * directory. The temporary directory will be cleaned up, unless\n * `disposeOutdir: false`.\n *\n * A write lock will be acquired on the output directory for the duration of\n * the CDK app synthesis (which means that no two apps can synthesize at the\n * same time), and after synthesis a read lock will be acquired on the\n * directory. This means that while the CloudAssembly is being used, no CDK\n * app synthesis can take place into that directory.\n *\n * ## Context\n *\n * If no `contextStore` is given, a `MemoryContext` will be used. This means\n * no provider lookups will be persisted anywhere by default. Use a different\n * type of context store if you want persistence between synth operations.\n *\n * @param builder - the builder function\n * @param props - additional configuration properties\n * @returns the CloudAssembly source\n */\n async fromAssemblyBuilder(builder, props = {}) {\n const services = await this.sourceBuilderServices();\n const contextStore = props.contextStore ?? new context_store_1.MemoryContext();\n const contextAssemblyProps = {\n services,\n contextStore,\n lookups: props.lookups,\n };\n const outdir = props.outdir ? path.resolve(props.outdir) : undefined;\n return new context_aware_source_1.ContextAwareCloudAssemblySource({\n produce: async () => {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const execution = __addDisposableResource(env_1, await prepare_source_1.ExecutionEnvironment.create(services, {\n outdir,\n resolveDefaultAppEnv: props.resolveDefaultEnvironment ?? true,\n }), true);\n const synthParams = (0, prepare_source_1.parametersFromSynthOptions)(props.synthOptions);\n const fullContext = {\n ...await contextStore.read(),\n ...synthParams.context,\n };\n await services.ioHelper.defaults.debug((0, util_1.format)('context:', fullContext));\n const env = (0, util_2.noUndefined)({\n // Versioning, outdir, default account and region\n ...await execution.defaultEnvVars(),\n // Environment variables derived from settings\n ...synthParams.env,\n });\n const cleanupContextTemp = (0, prepare_source_1.writeContextToEnv)(env, fullContext, 'env-is-complete');\n const _cleanupEnv = __addDisposableResource(env_1, (props.clobberEnv ?? true) ? (0, helpers_1.temporarilyWriteEnv)(env) : undefined, false);\n let assembly;\n try {\n assembly = await builder({\n outdir: execution.outdir,\n context: fullContext,\n env,\n });\n }\n catch (error) {\n // re-throw toolkit errors unchanged\n if (toolkit_error_1.ToolkitError.isToolkitError(error)) {\n throw error;\n }\n // otherwise, wrap into an assembly error\n throw toolkit_error_1.AssemblyError.withCause('Assembly builder failed', error);\n }\n finally {\n await cleanupContextTemp();\n }\n // Convert what we got to the definitely correct type we're expecting, a cxapi.CloudAssembly\n const asm = cxapi.CloudAssembly.isCloudAssembly(assembly)\n ? assembly\n : await (0, prepare_source_1.assemblyFromDirectory)(assembly.directory, services.ioHelper, props.loadAssemblyOptions);\n const success = await execution.markSuccessful();\n const deleteOnDispose = props.disposeOutdir ?? execution.shouldDisposeOutDir;\n return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n },\n }, contextAssemblyProps);\n }\n /**\n * Creates a Cloud Assembly from an existing assembly directory.\n *\n * A read lock will be acquired for the directory. This means that while\n * the CloudAssembly is being used, no CDK app synthesis can take place into\n * that directory.\n *\n * @param directory - directory the directory of a already produced Cloud Assembly.\n * @returns the CloudAssembly source\n */\n async fromAssemblyDirectory(directory, props = {}) {\n const services = await this.sourceBuilderServices();\n return {\n async produce() {\n await services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0150.msg('--app points to a cloud assembly, so we bypass synth'));\n const readLock = await new rwlock_1.RWLock(directory).acquireRead();\n try {\n const asm = await (0, prepare_source_1.assemblyFromDirectory)(directory, services.ioHelper, props.loadAssemblyOptions);\n const assembly = new readable_assembly_1.ReadableCloudAssembly(asm, readLock, { deleteOnDispose: false });\n if (assembly.cloudAssembly.manifest.missing && assembly.cloudAssembly.manifest.missing.length > 0) {\n if (props.failOnMissingContext ?? true) {\n const missingKeysSet = (0, helpers_1.missingContextKeys)(assembly.cloudAssembly.manifest.missing);\n const missingKeys = Array.from(missingKeysSet);\n throw toolkit_error_1.AssemblyError.withCause('Assembly contains missing context. ' +\n \"Make sure all necessary context is already in 'cdk.context.json' by running 'cdk synth' on a machine with sufficient AWS credentials and committing the result. \" +\n `Missing context keys: '${missingKeys.join(', ')}'`, 'Error producing assembly');\n }\n }\n return new cached_source_1.CachedCloudAssembly(assembly);\n }\n catch (e) {\n await readLock.release();\n throw e;\n }\n },\n };\n }\n /**\n * Use an AWS CDK app exectuable as source.\n *\n * `app` is a command line that will be executed to produce a Cloud Assembly.\n * The command will be executed in a shell, so it must come from a trusted source.\n *\n * The subprocess will execute in `workingDirectory`, which defaults to\n * the current process' working directory if not given.\n *\n * ## Outdir\n *\n * If an output directory is supplied, relative paths are evaluated with\n * respect to the current process' working directory. If an output directory\n * is not supplied, the default is a `cdk.out` directory underneath\n * `workingDirectory`. The output directory will not be cleaned up unless\n * `disposeOutdir: true`.\n *\n * A write lock will be acquired on the output directory for the duration of\n * the CDK app synthesis (which means that no two apps can synthesize at the\n * same time), and after synthesis a read lock will be acquired on the\n * directory. This means that while the CloudAssembly is being used, no CDK\n * app synthesis can take place into that directory.\n *\n * ## Context\n *\n * If no `contextStore` is given, a `CdkAppMultiContext` will be used, initialized\n * to the app's `workingDirectory`. This means that context will be loaded from\n * all the CDK's default context sources, and updates will be written to\n * `cdk.context.json`.\n *\n * @param props - additional configuration properties\n * @returns the CloudAssembly source\n */\n async fromCdkApp(app, props = {}) {\n const services = await this.sourceBuilderServices();\n const workingDirectory = props.workingDirectory ?? process.cwd();\n const outdir = props.outdir ? path.resolve(props.outdir) : path.resolve(workingDirectory, 'cdk.out');\n const contextStore = props.contextStore ?? new context_store_1.CdkAppMultiContext(workingDirectory);\n const contextAssemblyProps = {\n services,\n contextStore,\n lookups: props.lookups,\n };\n return new context_aware_source_1.ContextAwareCloudAssemblySource({\n produce: async () => {\n const env_2 = { stack: [], error: void 0, hasError: false };\n try {\n try {\n fs.mkdirpSync(outdir);\n }\n catch (e) {\n throw new toolkit_error_1.ToolkitError('OutputDirectoryCreateFailed', `Could not create output directory at '${outdir}' (${e.message}).`);\n }\n const execution = __addDisposableResource(env_2, await prepare_source_1.ExecutionEnvironment.create(services, {\n outdir,\n resolveDefaultAppEnv: props.resolveDefaultEnvironment ?? true,\n }), true);\n const commandLine = await execution.guessExecutable(app);\n const synthParams = (0, prepare_source_1.parametersFromSynthOptions)(props.synthOptions);\n const fullContext = {\n ...await contextStore.read(),\n ...synthParams.context,\n };\n await services.ioHelper.defaults.debug((0, util_1.format)('context:', fullContext));\n const env = (0, util_2.noUndefined)({\n // Need to start with full env of `writeContextToEnv` will not be able to do the size\n // calculation correctly.\n ...process.env,\n // User gave us something\n ...props.env,\n // Versioning, outdir, default account and region\n ...await execution.defaultEnvVars(),\n // Environment variables derived from settings\n ...synthParams.env,\n });\n const cleanupTemp = (0, prepare_source_1.writeContextToEnv)(env, fullContext, 'env-is-complete');\n try {\n await (0, exec_1.execInChildProcess)(commandLine, {\n eventPublisher: async (type, line) => {\n switch (type) {\n case 'data_stdout':\n await services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I1001.msg(line));\n break;\n case 'data_stderr':\n await services.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_E1002.msg(line));\n break;\n }\n },\n env,\n cwd: workingDirectory,\n });\n }\n finally {\n await cleanupTemp();\n }\n const asm = await (0, prepare_source_1.assemblyFromDirectory)(outdir, services.ioHelper, props.loadAssemblyOptions);\n const success = await execution.markSuccessful();\n const deleteOnDispose = props.disposeOutdir ?? execution.shouldDisposeOutDir;\n return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });\n }\n catch (e_2) {\n env_2.error = e_2;\n env_2.hasError = true;\n }\n finally {\n const result_2 = __disposeResources(env_2);\n if (result_2)\n await result_2;\n }\n },\n }, contextAssemblyProps);\n }\n}\nexports.CloudAssemblySourceBuilder = CloudAssemblySourceBuilder;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUE4QjtBQUM5QixxREFBcUQ7QUFFckQsK0JBQStCO0FBQy9CLG1EQUF3RjtBQUN4RixzQ0FBbUM7QUFDbkMsbURBQXNEO0FBRXRELHlFQUFpRjtBQUNqRix5Q0FBb0Q7QUFDcEQsNkRBQXNJO0FBQ3RJLG1FQUFvRTtBQUdwRSwrREFBMEU7QUFDMUUscUNBQXlDO0FBQ3pDLDJDQUFtQztBQUNuQywrQ0FBNEU7QUErUTVFLE1BQXNCLDBCQUEwQjtJQU85Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUM5QixPQUF3QixFQUN4QixRQUFvQyxFQUFFO1FBRXRDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLDZCQUFhLEVBQUUsQ0FBQztRQUMvRCxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxRQUFRO1lBQ1IsWUFBWTtZQUNaLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVyRSxPQUFPLElBQUksc0RBQStCLENBQ3hDO1lBQ0UsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFOzs7b0JBQ2xCLE1BQVksU0FBUyxrQ0FBRyxNQUFNLHFDQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVB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a0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3Q0FDaEUsTUFBTTtvQ0FDUixLQUFLLGFBQWE7d0NBQ2hCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dDQUNoRSxNQUFNO2dDQUNWLENBQUM7NEJBQ0gsQ0FBQzs0QkFDRCxHQUFHOzRCQUNILEdBQUcsRUFBRSxnQkFBZ0I7eUJBQ3RCLENBQUMsQ0FBQztvQkFDTCxDQUFDOzRCQUFTLENBQUM7d0JBQ1QsTUFBTSxXQUFXLEVBQUUsQ0FBQztvQkFDdEIsQ0FBQztvQkFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsc0NBQXFCLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBRTlGLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNqRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDN0UsT0FBTyxJQUFJLHlDQUFxQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7YUFDOUU7U0FDRixFQUNELG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaFFELGdFQWdRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBDZGtBcHBNdWx0aUNvbnRleHQsIE1lbW9yeUNvbnRleHQsIHR5cGUgSUNvbnRleHRTdG9yZSB9IGZyb20gJy4vY29udGV4dC1zdG9yZSc7XG5pbXBvcnQgeyBSV0xvY2sgfSBmcm9tICcuLi9yd2xvY2snO1xuaW1wb3J0IHsgQ2FjaGVkQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vY2FjaGVkLXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vcHJpdmF0ZS9jb250ZXh0LWF3YXJlLXNvdXJjZSc7XG5pbXBvcnQgeyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi9wcml2YXRlL2NvbnRleHQtYXdhcmUtc291cmNlJztcbmltcG9ydCB7IGV4ZWNJbkNoaWxkUHJvY2VzcyB9IGZyb20gJy4vcHJpdmF0ZS9leGVjJztcbmltcG9ydCB7IEV4ZWN1dGlvbkVudmlyb25tZW50LCBhc3NlbWJseUZyb21EaXJlY3RvcnksIHBhcmFtZXRlcnNGcm9tU3ludGhPcHRpb25zLCB3cml0ZUNvbnRleHRUb0VudiB9IGZyb20gJy4vcHJpdmF0ZS9wcmVwYXJlLXNvdXJjZSc7XG5pbXBvcnQgeyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuL3ByaXZhdGUvcmVhZGFibGUtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0U2VydmljZXMgfSBmcm9tICcuLi8uLi90b29sa2l0L3ByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yLCBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IG5vVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgbWlzc2luZ0NvbnRleHRLZXlzLCB0ZW1wb3JhcmlseVdyaXRlRW52IH0gZnJvbSAnLi9wcml2YXRlL2hlbHBlcnMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHRoYXQgd291bGQgbm9ybWFsbHkgYmUgcGFzc2VkIHRvIGEgQ0RLIGFwcCB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICpcbiAgICogVGhpcyBjb250YWlucyB2YXJpYWJsZXMgaW50ZW5kZWQgZm9yIHRoZSB1c2VyIHBvcnRpb24gb2YgYSBDREsgYXBwIChub3RhYmx5XG4gICAqIGBDREtfREVGQVVMVF9BQ0NPVU5UYCBhbmQgYENES19ERUZBVUxUX1JFR0lPTmApLCB3aGljaCB5b3UgY2FuIGZyZWVseSByZWFkLlxuICAgKlxuICAgKiBJdCBhbHNvIGNvbnRhaW5zIHZhcmlhYmxlcyBpbnRlbmRlZCBmb3IgdGhlIENESyBUb29sa2l0IHRvIGNvbW11bmljYXRlIHdpdGhcbiAgICogdGhlIGludGVybmFscyBvZiB0aGUgY29uc3RydWN0IGxpYnJhcnksIGxpa2UgYENES19ERUJVR2AgYW5kXG4gICAqIGBDREtfQ0xJX0FTTV9WRVJTSU9OYC4gUmVhZGluZyB0aGVzZSBsYXR0ZXIgdmFyaWFibGVzIGlzIHBvc3NpYmxlIGJ1dCBub3RcbiAgICogcmVjb21tZW5kZWQsIGFzIHRoZWlyIG1lYW5pbmcgbWF5IGNoYW5nZSB3aXRob3V0IG5vdGljZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgc3ludGhlc2lzIHBhcmFtZXRlcnMgYW5kIHByb2R1Y2VzIGEgQ2xvdWQgQXNzZW1ibHlcbiAqXG4gKiBNb3N0IHR5cGljYWxseSwgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGhlcmUgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhXG4gKiBgY2RrLkFwcGAsIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2YgYGFwcC5zeW50aCgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURpcmVjdG9yeVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZmFpbCBpZiB0aGUgc3ludGhlc2l6ZWQgYXNzZW1ibHkgY29udGFpbnNcbiAgICogbWlzc2luZyBjb250ZXh0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxPbk1pc3NpbmdDb250ZXh0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyBhIENMSSBmcm9tIGFuIEFXUyBDREsgQXBwIGRpcmVjdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRW1pdHMgdGhlIHN5bnRoZXNpemVkIGNsb3VkIGFzc2VtYmx5IGludG8gdGhlIGdpdmVuIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBcImNkay5vdXRcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGNvbnRleHQgbG9va3Vwcy5cbiAgICpcbiAgICogU3ludGhlc2lzIGZhaWxzIGlmIHRoaXMgaXMgZGlzYWJsZWQgYW5kIGNvbnRleHQgbG9va3VwcyBuZWVkIHRvIGJlIHBlcmZvcm1lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3Vwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgY29udGV4dCBzdG9yZSBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICpcbiAgICogVGhlIGNvbnRleHQgc3RvcmUgd2lsbCBiZSB1c2VkIHRvIHNvdXJjZSBpbml0aWFsIGNvbnRleHQgdmFsdWVzLFxuICAgKiBhbmQgdXBkYXRlZCB2YWx1ZXMgd2lsbCBiZSBzdG9yZWQgaGVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBlbmRzIG9uIHRoZSBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRTdG9yZT86IElDb250ZXh0U3RvcmU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdGhhdCBhcmUgcGFzc2VkIHRocm91Z2ggdGhlIGNvbnRleHQgdG8gYSBDREsgYXBwIG9uIHN5bnRoXG4gICAqL1xuICByZWFkb25seSBzeW50aE9wdGlvbnM/OiBBcHBTeW50aE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcblxuICAvKipcbiAgICogRGVsZXRlIHRoZSBgb3V0ZGlyYCB3aGVuIHRoZSBhc3NlbWJseSBpcyBkaXNwb3NlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGB0cnVlYCBpZiBgb3V0ZGlyYCBpcyBub3QgZ2l2ZW4sIGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBkaXNwb3NlT3V0ZGlyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgY3VycmVudCBkZWZhdWx0IGVudmlyb25tZW50IGFuIHByb3ZpZGUgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHRoZSBhcHAuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBtYWtlIGEgKGNhY2hlZCkgY2FsbCB0byBTVFMgdG8gcmVzb2x2ZSB0aGUgY3VycmVudCBhY2NvdW50IHVzaW5nXG4gICAqIGJhc2UgY3JlZGVudGlhbHMuIFRoZSBiZWhhdmlvciBpcyBub3QgYWx3YXlzIGRlc2lyYWJsZSBhbmQgY2FuIGFkZFxuICAgKiB1bm5lY2Vzc2FyeSBkZWxheXMsIGUuZy4gd2hlbiBhbiBhcHAgc3BlY2lmaWVzIGFuIGVudmlyb25tZW50IGV4cGxpY2l0bHlcbiAgICogb3Igd2hlbiBsb2NhbCBhY3Rpb25zIGFyZSBiZSBwZXJmb3JtZWQgd2l0aG91dCBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVEZWZhdWx0RW52aXJvbm1lbnQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgZnJvbUFzc2VtYmx5QnVpbGRlcmAgQXNzZW1ibHkgU291cmNlIGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbUFzc2VtYmx5QnVpbGRlck9wdGlvbnMgZXh0ZW5kcyBBc3NlbWJseVNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIE11dGF0ZSBjdXJyZW50IHByb2Nlc3MnIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBjb21tdW5pY2F0ZSB3aXRoIENESyBhcHBcbiAgICpcbiAgICogVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGUgVG9vbGtpdCB1c2VzIHRvIHBhc3NcbiAgICogaW5mb3JtYXRpb24gdG8gdGhlIENESyBhcHAuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIGN1cnJlbnRcbiAgICogcHJvY2VzcycgZ2xvYmFsIHNoYXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYmVmb3JlIHRoZSBidWlsZGVyIGlzIGludm9rZWQsXG4gICAqIGFuZCB5b3UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBlbHNlLiBIb3dldmVyLCBiZWNhdXNlIHRoaXMgbXV0YXRlc1xuICAgKiBzaGFyZWQgc3RhdGUgaXQgaXMgbm90IHNhZmUgdG8gcnVuIG11bHRpcGxlIGJ1aWxkZXJzIGNvbmN1cnJlbnRseS5cbiAgICpcbiAgICogU2V0IHRoaXMgdG8gYGZhbHNlYCB0byBhdm9pZCBtdXRhdGluZyB0aGUgc2hhcmVkIGVudmlyb25tZW50LiBJbnN0ZWFkLFxuICAgKiB5b3Ugd2lsbCBuZWVkIHRvIHBhc3MgdGhlIGBvdXRkaXJgIGFuZCBgY29udGV4dGAgdG8gdGhlIGBBcHBgIGNvbnN0cnVjdG9yXG4gICAqIGRpcmVjdGx5IGluIHlvdXIgYnVpbGRlciwgYW5kIGluc3BlY3QgdGhlIGBlbnZgIG1hcCBkaXJlY3RseVxuICAgKiBmb3IgaW5mb3JtYXRpb24gbGlrZSB0aGUgYENES19ERUZBVUxUX0FDQ09VTlRgIGFuZCBgQ0RLX0RFRkFVTFRfUkVHSU9OYC5cbiAgICpcbiAgICogYGBgdHNcbiAgICogY29uc3QgY3ggPSBhd2FpdCB0b29sa2l0LmZyb21Bc3NlbWJseUJ1aWxkZXIoYXN5bmMgKHByb3BzKSA9PiB7XG4gICAqICAgLy8gSW1wb3J0YW50OiBwYXNzIG9uIHN5bnRoZXNpcyBwYXJhbWV0ZXJzXG4gICAqICAgY29uc3QgYXBwID0gbmV3IGNvcmUuQXBwKHtcbiAgICogICAgIG91dGRpcjogcHJvcHMub3V0ZGlyLFxuICAgKiAgICAgY29udGV4dDogcHJvcHMuY29udGV4dCxcbiAgICogICB9KTtcbiAgICpcbiAgICogICBuZXcgTXlTdGFjayhhcHAsICdNeVN0YWNrJywge1xuICAgKiAgICAgZW52OiB7XG4gICAqICAgICAgIGFjY291bnQ6IHByb3BzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULFxuICAgKiAgICAgICByZWdpb246IHByb3BzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG4gICAqICAgICB9LFxuICAgKiAgIH0pO1xuICAgKlxuICAgKiAgIC8vIC4uLlxuICAgKiB9LCB7XG4gICAqICAgY2xvYmJlckVudjogZmFsc2UsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xvYmJlckVudj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGBmcm9tQ2RrQXBwYCBBc3NlbWJseSBTb3VyY2UgY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9tQ2RrQXBwT3B0aW9ucyBleHRlbmRzIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYXBwbGljYXRpb24gaW4gdGhpcyB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICAgKlxuICAgKiBUaGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2lsbCBiZSBzZXQgaW4gYWRkaXRpb24gdG8gdGhlIGVudmlyb25tZW50XG4gICAqIHZhcmlhYmxlcyBjdXJyZW50bHkgc2V0IGluIHRoZSBwcm9jZXNzLiBBIHZhbHVlIG9mIGB1bmRlZmluZWRgIHdpbGxcbiAgICogdW5zZXQgYSBwYXJ0aWN1bGFyIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyB0aGF0IGFyZSBwYXNzZWQgdG8gYSBDREsgYXBwIHZpYSB0aGUgY29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFN5bnRoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZWJ1ZyB0aGUgQ0RLIGFwcC5cbiAgICogTG9ncyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGR1cmluZyBzeW50aGVzaXMsIHN1Y2ggYXMgY3JlYXRpb24gc3RhY2sgdHJhY2VzIG9mIHRva2Vucy5cbiAgICogVGhpcyBhbHNvIHNldHMgdGhlIGBDREtfREVCVUdgIGVudiB2YXJpYWJsZSBhbmQgd2lsbCBzbG93IGRvd24gc3ludGhlc2lzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBlbWJlZGRpbmcgb2YgdGhlIFwiYXdzOmNkazpwYXRoXCIgaW4gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBhdGhNZXRhZGF0YT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgY29sbGVjdGlvbiBhbmQgcmVwb3J0aW5nIG9mIHZlcnNpb24gaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25SZXBvcnRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGUgZW5hYmxlZCwgYGF3czphc3NldDp4eHhgIG1ldGFkYXRhIGVudHJpZXMgYXJlIGFkZGVkIHRvIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRGlzYWJsaW5nIHRoaXMgY2FuIGJlIHVzZWZ1bCBpbiBjZXJ0YWluIGNhc2VzIGxpa2UgaW50ZWdyYXRpb24gdGVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYXNzZXQgc3RhZ2luZy5cbiAgICpcbiAgICogRGlzYWJsaW5nIGFzc2V0IHN0YWdpbmcgbWVhbnMgdGhhdCBjb3B5YWJsZSBhc3NldHMgd2lsbCBub3QgYmUgY29waWVkIHRvIHRoZVxuICAgKiBvdXRwdXQgZGlyZWN0b3J5IGFuZCB3aWxsIGJlIHJlZmVyZW5jZWQgd2l0aCBhYnNvbHV0ZSBwYXRocy5cbiAgICpcbiAgICogTm90IGNvcGllZCB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeTogdGhpcyBpcyBzbyB1c2VycyBjYW4gaXRlcmF0ZSBvbiB0aGVcbiAgICogTGFtYmRhIHNvdXJjZSBhbmQgcnVuIFNBTSBDTEkgd2l0aG91dCBoYXZpbmcgdG8gcmUtcnVuIENESyAobm90ZTogd2VcbiAgICogY2Fubm90IGFjaGlldmUgdGhpcyBmb3IgYnVuZGxlZCBhc3NldHMsIGlmIGFzc2V0cyBhcmUgYnVuZGxlZCB0aGV5XG4gICAqIHdpbGwgaGF2ZSB0byByZS1ydW4gQ0RLIENMSSB0byByZS1idW5kbGUgdXBkYXRlZCB2ZXJzaW9ucykuXG4gICAqXG4gICAqIEFic29sdXRlIHBhdGg6IFNBTSBDTEkgZXhwZWN0cyBgY3dkYC1yZWxhdGl2ZSBwYXRocyBpbiBhIHJlc291cmNlJ3NcbiAgICogYGF3czphc3NldDpwYXRoYCBtZXRhZGF0YS4gSW4gb3JkZXIgdG8gYmUgcHJlZGljdGFibGUsIHdlIHdpbGwgYWx3YXlzIG91dHB1dFxuICAgKiBhYnNvbHV0ZSBwYXRocy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRTdGFnaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VsZWN0IHdoaWNoIHN0YWNrcyBzaG91bGQgaGF2ZSBhc3NldCBidW5kbGluZyBlbmFibGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtcIioqXCJdIC0gYWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxpbmdGb3JTdGFja3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBjb25maWd1cmUgbG9hZGluZyBvZiB0aGUgYXNzZW1ibHkgYWZ0ZXIgaXQgaGFzIGJlZW4gc3ludGhlc2l6ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2FkQXNzZW1ibHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIENoZWNrIHRoZSBUb29sa2l0IHN1cHBvcnRzIHRoZSBDbG91ZCBBc3NlbWJseSBTY2hlbWEgdmVyc2lvblxuICAgKlxuICAgKiBXaGVuIGRpc2FibGVkLCBhbGxvd3MgdG8gVG9vbGtpdCB0byByZWFkIGEgbmV3ZXIgY2xvdWQgYXNzZW1ibHkgdGhhbiB0aGUgQ1ggQVBJIGlzIGRlc2lnbmVkXG4gICAqIHRvIHN1cHBvcnQuIFlvdXIgYXBwbGljYXRpb24gbWF5IG5vdCBiZSBhd2FyZSBvZiBhbGwgZmVhdHVyZXMgdGhhdCBpbiB1c2UgaW4gdGhlIENsb3VkIEFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjaGVja1ZlcnNpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBlbnVtcyB0byBvbmx5IGhhdmUga25vd24gdmFsdWVzXG4gICAqXG4gICAqIFdoZW4gZGlzYWJsZWQsIHRoZSBUb29sa2l0IG1heSByZWFkIGVudW0gdmFsdWVzIGl0IGRvZXNuJ3Qga25vdyBhYm91dCB5ZXQuXG4gICAqIFlvdSB3aWxsIGhhdmUgdG8gbWFrZSBzdXJlIHRvIGFsd2F5cyBjaGVjayB0aGUgdmFsdWVzIG9mIGVudW1zIHlvdSBlbmNvdW50ZXIgaW4gdGhlIG1hbmlmZXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjaGVja0VudW1zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHtcbiAgLyoqXG4gICAqIEhlbHBlciB0byBwcm92aWRlIHRoZSBDbG91ZEFzc2VtYmx5U291cmNlQnVpbGRlciB3aXRoIHJlcXVpcmVkIHRvb2xraXQgc2VydmljZXNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc291cmNlQnVpbGRlclNlcnZpY2VzKCk6IFByb21pc2U8VG9vbGtpdFNlcnZpY2VzPjtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhIENsb3VkIEFzc2VtYmx5IGJ1aWxkZXIgZnVuY3Rpb24uXG4gICAqXG4gICAqICMjIE91dGRpclxuICAgKlxuICAgKiBJZiBubyBvdXRwdXQgZGlyZWN0b3J5IGlzIGdpdmVuLCBpdCB3aWxsIHN5bnRoZXNpemUgaW50byBhIHRlbXBvcmFyeSBzeXN0ZW1cbiAgICogZGlyZWN0b3J5LiBUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aWxsIGJlIGNsZWFuZWQgdXAsIHVubGVzc1xuICAgKiBgZGlzcG9zZU91dGRpcjogZmFsc2VgLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZSB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREtcbiAgICogYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiAjIyBDb250ZXh0XG4gICAqXG4gICAqIElmIG5vIGBjb250ZXh0U3RvcmVgIGlzIGdpdmVuLCBhIGBNZW1vcnlDb250ZXh0YCB3aWxsIGJlIHVzZWQuIFRoaXMgbWVhbnNcbiAgICogbm8gcHJvdmlkZXIgbG9va3VwcyB3aWxsIGJlIHBlcnNpc3RlZCBhbnl3aGVyZSBieSBkZWZhdWx0LiBVc2UgYSBkaWZmZXJlbnRcbiAgICogdHlwZSBvZiBjb250ZXh0IHN0b3JlIGlmIHlvdSB3YW50IHBlcnNpc3RlbmNlIGJldHdlZW4gc3ludGggb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGJ1aWxkZXIgLSB0aGUgYnVpbGRlciBmdW5jdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgLSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlCdWlsZGVyKFxuICAgIGJ1aWxkZXI6IEFzc2VtYmx5QnVpbGRlcixcbiAgICBwcm9wczogRnJvbUFzc2VtYmx5QnVpbGRlck9wdGlvbnMgPSB7fSxcbiAgKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICBjb25zdCBjb250ZXh0U3RvcmUgPSBwcm9wcy5jb250ZXh0U3RvcmUgPz8gbmV3IE1lbW9yeUNvbnRleHQoKTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0U3RvcmUsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPyBwYXRoLnJlc29sdmUocHJvcHMub3V0ZGlyKSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHVzaW5nIGV4ZWN1dGlvbiA9IGF3YWl0IEV4ZWN1dGlvbkVudmlyb25tZW50LmNyZWF0ZShzZXJ2aWNlcywge1xuICAgICAgICAgICAgb3V0ZGlyLFxuICAgICAgICAgICAgcmVzb2x2ZURlZmF1bHRBcHBFbnY6IHByb3BzLnJlc29sdmVEZWZhdWx0RW52aXJvbm1lbnQgPz8gdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHN5bnRoUGFyYW1zID0gcGFyYW1ldGVyc0Zyb21TeW50aE9wdGlvbnMocHJvcHMuc3ludGhPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IGZ1bGxDb250ZXh0ID0ge1xuICAgICAgICAgICAgLi4uYXdhaXQgY29udGV4dFN0b3JlLnJlYWQoKSxcbiAgICAgICAgICAgIC4uLnN5bnRoUGFyYW1zLmNvbnRleHQsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnY29udGV4dDonLCBmdWxsQ29udGV4dCkpO1xuXG4gICAgICAgICAgY29uc3QgZW52ID0gbm9VbmRlZmluZWQoe1xuICAgICAgICAgICAgLy8gVmVyc2lvbmluZywgb3V0ZGlyLCBkZWZhdWx0IGFjY291bnQgYW5kIHJlZ2lvblxuICAgICAgICAgICAgLi4uYXdhaXQgZXhlY3V0aW9uLmRlZmF1bHRFbnZWYXJzKCksXG4gICAgICAgICAgICAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZXMgZGVyaXZlZCBmcm9tIHNldHRpbmdzXG4gICAgICAgICAgICAuLi5zeW50aFBhcmFtcy5lbnYsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBjbGVhbnVwQ29udGV4dFRlbXAgPSB3cml0ZUNvbnRleHRUb0VudihlbnYsIGZ1bGxDb250ZXh0LCAnZW52LWlzLWNvbXBsZXRlJyk7XG4gICAgICAgICAgdXNpbmcgX2NsZWFudXBFbnYgPSAocHJvcHMuY2xvYmJlckVudiA/PyB0cnVlKSA/IHRlbXBvcmFyaWx5V3JpdGVFbnYoZW52KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICBsZXQgYXNzZW1ibHk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFzc2VtYmx5ID0gYXdhaXQgYnVpbGRlcih7XG4gICAgICAgICAgICAgIG91dGRpcjogZXhlY3V0aW9uLm91dGRpcixcbiAgICAgICAgICAgICAgY29udGV4dDogZnVsbENvbnRleHQsXG4gICAgICAgICAgICAgIGVudixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAvLyByZS10aHJvdyB0b29sa2l0IGVycm9ycyB1bmNoYW5nZWRcbiAgICAgICAgICAgIGlmIChUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3cmFwIGludG8gYW4gYXNzZW1ibHkgZXJyb3JcbiAgICAgICAgICAgIHRocm93IEFzc2VtYmx5RXJyb3Iud2l0aENhdXNlKCdBc3NlbWJseSBidWlsZGVyIGZhaWxlZCcsIGVycm9yKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgYXdhaXQgY2xlYW51cENvbnRleHRUZW1wKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ29udmVydCB3aGF0IHdlIGdvdCB0byB0aGUgZGVmaW5pdGVseSBjb3JyZWN0IHR5cGUgd2UncmUgZXhwZWN0aW5nLCBhIGN4YXBpLkNsb3VkQXNzZW1ibHlcbiAgICAgICAgICBjb25zdCBhc20gPSBjeGFwaS5DbG91ZEFzc2VtYmx5LmlzQ2xvdWRBc3NlbWJseShhc3NlbWJseSlcbiAgICAgICAgICAgID8gYXNzZW1ibHlcbiAgICAgICAgICAgIDogYXdhaXQgYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGFzc2VtYmx5LmRpcmVjdG9yeSwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuXG4gICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IGV4ZWN1dGlvbi5tYXJrU3VjY2Vzc2Z1bCgpO1xuICAgICAgICAgIGNvbnN0IGRlbGV0ZU9uRGlzcG9zZSA9IHByb3BzLmRpc3Bvc2VPdXRkaXIgPz8gZXhlY3V0aW9uLnNob3VsZERpc3Bvc2VPdXREaXI7XG4gICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCBzdWNjZXNzLnJlYWRMb2NrLCB7IGRlbGV0ZU9uRGlzcG9zZSB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGFuIGV4aXN0aW5nIGFzc2VtYmx5IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQSByZWFkIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBmb3IgdGhlIGRpcmVjdG9yeS4gVGhpcyBtZWFucyB0aGF0IHdoaWxlXG4gICAqIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENESyBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG9cbiAgICogdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBkaXJlY3RvcnkgdGhlIGRpcmVjdG9yeSBvZiBhIGFscmVhZHkgcHJvZHVjZWQgQ2xvdWQgQXNzZW1ibHkuXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21Bc3NlbWJseURpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgcHJvcHM6IEFzc2VtYmx5RGlyZWN0b3J5UHJvcHMgPSB7fSk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhc3luYyBwcm9kdWNlKCkge1xuICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMTUwLm1zZygnLS1hcHAgcG9pbnRzIHRvIGEgY2xvdWQgYXNzZW1ibHksIHNvIHdlIGJ5cGFzcyBzeW50aCcpKTtcbiAgICAgICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCBuZXcgUldMb2NrKGRpcmVjdG9yeSkuYWNxdWlyZVJlYWQoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3RvcnkoZGlyZWN0b3J5LCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG4gICAgICAgICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgUmVhZGFibGVDbG91ZEFzc2VtYmx5KGFzbSwgcmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBmYWxzZSB9KTtcbiAgICAgICAgICBpZiAoYXNzZW1ibHkuY2xvdWRBc3NlbWJseS5tYW5pZmVzdC5taXNzaW5nICYmIGFzc2VtYmx5LmNsb3VkQXNzZW1ibHkubWFuaWZlc3QubWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAocHJvcHMuZmFpbE9uTWlzc2luZ0NvbnRleHQgPz8gdHJ1ZSkge1xuICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nS2V5c1NldCA9IG1pc3NpbmdDb250ZXh0S2V5cyhhc3NlbWJseS5jbG91ZEFzc2VtYmx5Lm1hbmlmZXN0Lm1pc3NpbmcpO1xuICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nS2V5cyA9IEFycmF5LmZyb20obWlzc2luZ0tleXNTZXQpO1xuICAgICAgICAgICAgICB0aHJvdyBBc3NlbWJseUVycm9yLndpdGhDYXVzZShcbiAgICAgICAgICAgICAgICAnQXNzZW1ibHkgY29udGFpbnMgbWlzc2luZyBjb250ZXh0LiAnICtcbiAgICAgICAgICAgICAgICAgIFwiTWFrZSBzdXJlIGFsbCBuZWNlc3NhcnkgY29udGV4dCBpcyBhbHJlYWR5IGluICdjZGsuY29udGV4dC5qc29uJyBieSBydW5uaW5nICdjZGsgc3ludGgnIG9uIGEgbWFjaGluZSB3aXRoIHN1ZmZpY2llbnQgQVdTIGNyZWRlbnRpYWxzIGFuZCBjb21taXR0aW5nIHRoZSByZXN1bHQuIFwiICtcbiAgICAgICAgICAgICAgICAgIGBNaXNzaW5nIGNvbnRleHQga2V5czogJyR7bWlzc2luZ0tleXMuam9pbignLCAnKX0nYCxcbiAgICAgICAgICAgICAgICAnRXJyb3IgcHJvZHVjaW5nIGFzc2VtYmx5JyxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRDbG91ZEFzc2VtYmx5KGFzc2VtYmx5KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGF3YWl0IHJlYWRMb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBhbiBBV1MgQ0RLIGFwcCBleGVjdHVhYmxlIGFzIHNvdXJjZS5cbiAgICpcbiAgICogYGFwcGAgaXMgYSBjb21tYW5kIGxpbmUgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHRvIHByb2R1Y2UgYSBDbG91ZCBBc3NlbWJseS5cbiAgICogVGhlIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZCBpbiBhIHNoZWxsLCBzbyBpdCBtdXN0IGNvbWUgZnJvbSBhIHRydXN0ZWQgc291cmNlLlxuICAgKlxuICAgKiBUaGUgc3VicHJvY2VzcyB3aWxsIGV4ZWN1dGUgaW4gYHdvcmtpbmdEaXJlY3RvcnlgLCB3aGljaCBkZWZhdWx0cyB0b1xuICAgKiB0aGUgY3VycmVudCBwcm9jZXNzJyB3b3JraW5nIGRpcmVjdG9yeSBpZiBub3QgZ2l2ZW4uXG4gICAqXG4gICAqICMjIE91dGRpclxuICAgKlxuICAgKiBJZiBhbiBvdXRwdXQgZGlyZWN0b3J5IGlzIHN1cHBsaWVkLCByZWxhdGl2ZSBwYXRocyBhcmUgZXZhbHVhdGVkIHdpdGhcbiAgICogcmVzcGVjdCB0byB0aGUgY3VycmVudCBwcm9jZXNzJyB3b3JraW5nIGRpcmVjdG9yeS4gSWYgYW4gb3V0cHV0IGRpcmVjdG9yeVxuICAgKiBpcyBub3Qgc3VwcGxpZWQsIHRoZSBkZWZhdWx0IGlzIGEgYGNkay5vdXRgIGRpcmVjdG9yeSB1bmRlcm5lYXRoXG4gICAqIGB3b3JraW5nRGlyZWN0b3J5YC4gVGhlIG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBub3QgYmUgY2xlYW5lZCB1cCB1bmxlc3NcbiAgICogYGRpc3Bvc2VPdXRkaXI6IHRydWVgLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuICBUaGlzIG1lYW5zIHRoYXQgd2hpbGUgdGhlIENsb3VkQXNzZW1ibHkgaXMgYmVpbmcgdXNlZCwgbm8gQ0RLXG4gICAqIGFwcCBzeW50aGVzaXMgY2FuIHRha2UgcGxhY2UgaW50byB0aGF0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogIyMgQ29udGV4dFxuICAgKlxuICAgKiBJZiBubyBgY29udGV4dFN0b3JlYCBpcyBnaXZlbiwgYSBgQ2RrQXBwTXVsdGlDb250ZXh0YCB3aWxsIGJlIHVzZWQsIGluaXRpYWxpemVkXG4gICAqIHRvIHRoZSBhcHAncyBgd29ya2luZ0RpcmVjdG9yeWAuIFRoaXMgbWVhbnMgdGhhdCBjb250ZXh0IHdpbGwgYmUgbG9hZGVkIGZyb21cbiAgICogYWxsIHRoZSBDREsncyBkZWZhdWx0IGNvbnRleHQgc291cmNlcywgYW5kIHVwZGF0ZXMgd2lsbCBiZSB3cml0dGVuIHRvXG4gICAqIGBjZGsuY29udGV4dC5qc29uYC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUNka0FwcChhcHA6IHN0cmluZywgcHJvcHM6IEZyb21DZGtBcHBPcHRpb25zID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IHByb3BzLndvcmtpbmdEaXJlY3RvcnkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPyBwYXRoLnJlc29sdmUocHJvcHMub3V0ZGlyKSA6IHBhdGgucmVzb2x2ZSh3b3JraW5nRGlyZWN0b3J5LCAnY2RrLm91dCcpO1xuXG4gICAgY29uc3QgY29udGV4dFN0b3JlID0gcHJvcHMuY29udGV4dFN0b3JlID8/IG5ldyBDZGtBcHBNdWx0aUNvbnRleHQod29ya2luZ0RpcmVjdG9yeSk7XG5cbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0U3RvcmUsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZnMubWtkaXJwU3luYyhvdXRkaXIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignT3V0cHV0RGlyZWN0b3J5Q3JlYXRlRmFpbGVkJywgYENvdWxkIG5vdCBjcmVhdGUgb3V0cHV0IGRpcmVjdG9yeSBhdCAnJHtvdXRkaXJ9JyAoJHtlLm1lc3NhZ2V9KS5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCB1c2luZyBleGVjdXRpb24gPSBhd2FpdCBFeGVjdXRpb25FbnZpcm9ubWVudC5jcmVhdGUoc2VydmljZXMsIHtcbiAgICAgICAgICAgIG91dGRpcixcbiAgICAgICAgICAgIHJlc29sdmVEZWZhdWx0QXBwRW52OiBwcm9wcy5yZXNvbHZlRGVmYXVsdEVudmlyb25tZW50ID8/IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBjb21tYW5kTGluZSA9IGF3YWl0IGV4ZWN1dGlvbi5ndWVzc0V4ZWN1dGFibGUoYXBwKTtcblxuICAgICAgICAgIGNvbnN0IHN5bnRoUGFyYW1zID0gcGFyYW1ldGVyc0Zyb21TeW50aE9wdGlvbnMocHJvcHMuc3ludGhPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IGZ1bGxDb250ZXh0ID0ge1xuICAgICAgICAgICAgLi4uYXdhaXQgY29udGV4dFN0b3JlLnJlYWQoKSxcbiAgICAgICAgICAgIC4uLnN5bnRoUGFyYW1zLmNvbnRleHQsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnY29udGV4dDonLCBmdWxsQ29udGV4dCkpO1xuXG4gICAgICAgICAgY29uc3QgZW52ID0gbm9VbmRlZmluZWQoe1xuICAgICAgICAgICAgLy8gTmVlZCB0byBzdGFydCB3aXRoIGZ1bGwgZW52IG9mIGB3cml0ZUNvbnRleHRUb0VudmAgd2lsbCBub3QgYmUgYWJsZSB0byBkbyB0aGUgc2l6ZVxuICAgICAgICAgICAgLy8gY2FsY3VsYXRpb24gY29ycmVjdGx5LlxuICAgICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgICAvLyBVc2VyIGdhdmUgdXMgc29tZXRoaW5nXG4gICAgICAgICAgICAuLi5wcm9wcy5lbnYsXG4gICAgICAgICAgICAvLyBWZXJzaW9uaW5nLCBvdXRkaXIsIGRlZmF1bHQgYWNjb3VudCBhbmQgcmVnaW9uXG4gICAgICAgICAgICAuLi5hd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKSxcbiAgICAgICAgICAgIC8vIEVudmlyb25tZW50IHZhcmlhYmxlcyBkZXJpdmVkIGZyb20gc2V0dGluZ3NcbiAgICAgICAgICAgIC4uLnN5bnRoUGFyYW1zLmVudixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBjbGVhbnVwVGVtcCA9IHdyaXRlQ29udGV4dFRvRW52KGVudiwgZnVsbENvbnRleHQsICdlbnYtaXMtY29tcGxldGUnKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZXhlY0luQ2hpbGRQcm9jZXNzKGNvbW1hbmRMaW5lLCB7XG4gICAgICAgICAgICAgIGV2ZW50UHVibGlzaGVyOiBhc3luYyAodHlwZSwgbGluZSkgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRvdXQnOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kxMDAxLm1zZyhsaW5lKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRlcnInOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0UxMDAyLm1zZyhsaW5lKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZW52LFxuICAgICAgICAgICAgICBjd2Q6IHdvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgYXdhaXQgY2xlYW51cFRlbXAoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZXhlY3V0aW9uLm1hcmtTdWNjZXNzZnVsKCk7XG4gICAgICAgICAgY29uc3QgZGVsZXRlT25EaXNwb3NlID0gcHJvcHMuZGlzcG9zZU91dGRpciA/PyBleGVjdXRpb24uc2hvdWxkRGlzcG9zZU91dERpcjtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHN1Y2Nlc3MucmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseStackAssembly = exports.ExtendedStackSelection = void 0;\nconst chalk = require(\"chalk\");\nconst picomatch_1 = require(\"picomatch\");\nconst stack_collection_1 = require(\"./stack-collection\");\nconst util_1 = require(\"../../util\");\n/**\n * When selecting stacks, what other stacks to include because of dependencies\n */\nvar ExtendedStackSelection;\n(function (ExtendedStackSelection) {\n /**\n * Don't select any extra stacks\n */\n ExtendedStackSelection[ExtendedStackSelection[\"None\"] = 0] = \"None\";\n /**\n * Include stacks that this stack depends on\n */\n ExtendedStackSelection[ExtendedStackSelection[\"Upstream\"] = 1] = \"Upstream\";\n /**\n * Include stacks that depend on this stack\n */\n ExtendedStackSelection[ExtendedStackSelection[\"Downstream\"] = 2] = \"Downstream\";\n})(ExtendedStackSelection || (exports.ExtendedStackSelection = ExtendedStackSelection = {}));\n/**\n * A single Cloud Assembly and the operations we do on it to deploy the artifacts inside\n */\nclass BaseStackAssembly {\n assembly;\n /**\n * Sanitize a list of stack match patterns\n */\n static sanitizePatterns(patterns) {\n let sanitized = patterns.filter(s => s != null); // filter null/undefined\n sanitized = [...new Set(sanitized)]; // make them unique\n return sanitized;\n }\n /**\n * The directory this CloudAssembly was read from\n */\n directory;\n /**\n * The IoHelper used for messaging\n */\n ioHelper;\n constructor(assembly, ioHelper) {\n this.assembly = assembly;\n this.directory = assembly.directory;\n this.ioHelper = ioHelper;\n }\n /**\n * Select a single stack by its ID\n */\n stackById(stackId) {\n return new stack_collection_1.StackCollection(this, [this.assembly.getStackArtifact(stackId)]);\n }\n async selectMatchingStacks(stacks, patterns, extend = ExtendedStackSelection.None) {\n const matchingPattern = (pattern) => (stack) => (0, picomatch_1.isMatch)(stack.hierarchicalId, pattern);\n const matchedStacks = (0, util_1.flatten)(patterns.map(pattern => stacks.filter(matchingPattern(pattern))));\n return this.extendStacks(matchedStacks, stacks, extend);\n }\n async extendStacks(matched, all, extend = ExtendedStackSelection.None) {\n const allStacks = new Map();\n for (const stack of all) {\n allStacks.set(stack.hierarchicalId, stack);\n }\n const index = indexByHierarchicalId(matched);\n switch (extend) {\n case ExtendedStackSelection.Downstream:\n await includeDownstreamStacks(this.ioHelper, index, allStacks);\n break;\n case ExtendedStackSelection.Upstream:\n await includeUpstreamStacks(this.ioHelper, index, allStacks);\n break;\n }\n // Filter original array because it is in the right order\n const selectedList = all.filter(s => index.has(s.hierarchicalId));\n return new stack_collection_1.StackCollection(this, selectedList);\n }\n}\nexports.BaseStackAssembly = BaseStackAssembly;\nfunction indexByHierarchicalId(stacks) {\n const result = new Map();\n for (const stack of stacks) {\n result.set(stack.hierarchicalId, stack);\n }\n return result;\n}\n/**\n * Calculate the transitive closure of stack dependents.\n *\n * Modifies `selectedStacks` in-place.\n */\nasync function includeDownstreamStacks(ioHelper, selectedStacks, allStacks) {\n const added = new Array();\n let madeProgress;\n do {\n madeProgress = false;\n for (const [id, stack] of allStacks) {\n // Select this stack if it's not selected yet AND it depends on a stack that's in the selected set\n if (!selectedStacks.has(id) && (stack.dependencies || []).some(dep => selectedStacks.has(dep.id))) {\n selectedStacks.set(id, stack);\n added.push(id);\n madeProgress = true;\n }\n }\n } while (madeProgress);\n if (added.length > 0) {\n await ioHelper.defaults.info(`Including depending stacks: ${chalk.bold(added.join(', '))}`);\n }\n}\n/**\n * Calculate the transitive closure of stack dependencies.\n *\n * Modifies `selectedStacks` in-place.\n */\nasync function includeUpstreamStacks(ioHelper, selectedStacks, allStacks) {\n const added = new Array();\n let madeProgress = true;\n while (madeProgress) {\n madeProgress = false;\n for (const stack of selectedStacks.values()) {\n // Select an additional stack if it's not selected yet and a dependency of a selected stack (and exists, obviously)\n for (const dependencyId of stack.dependencies.map(x => x.manifest.displayName ?? x.id)) {\n if (!selectedStacks.has(dependencyId) && allStacks.has(dependencyId)) {\n added.push(dependencyId);\n selectedStacks.set(dependencyId, allStacks.get(dependencyId));\n madeProgress = true;\n }\n }\n }\n }\n if (added.length > 0) {\n await ioHelper.defaults.info(`Including dependency stacks: ${chalk.bold(added.join(', '))}`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQkFBK0I7QUFDL0IseUNBQWlEO0FBQ2pELHlEQUFxRDtBQUNyRCxxQ0FBcUM7QUFlckM7O0dBRUc7QUFDSCxJQUFZLHNCQWVYO0FBZkQsV0FBWSxzQkFBc0I7SUFDaEM7O09BRUc7SUFDSCxtRUFBSSxDQUFBO0lBRUo7O09BRUc7SUFDSCwyRUFBUSxDQUFBO0lBRVI7O09BRUc7SUFDSCwrRUFBVSxDQUFBO0FBQ1osQ0FBQyxFQWZXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBZWpDO0FBRUQ7O0dBRUc7QUFDSCxNQUFzQixpQkFBaUI7SUFvQlQ7SUFuQjVCOztPQUVHO0lBQ08sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWtCO1FBQ2xELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7UUFDekUsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1FBQ3hELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUVsQzs7T0FFRztJQUNnQixRQUFRLENBQVc7SUFFdEMsWUFBNEIsUUFBNkIsRUFBRSxRQUFrQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLE9BQWU7UUFDOUIsT0FBTyxJQUFJLGtDQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxD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QyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3pCLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFFLENBQUMsQ0FBQztvQkFDL0QsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBpc01hdGNoIGFzIHBpY29tYXRjaCB9IGZyb20gJ3BpY29tYXRjaCc7XG5pbXBvcnQgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuL3N0YWNrLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgZmxhdHRlbiB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUvaW8taGVscGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3RhY2tBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHRoaXMgQ2xvdWRBc3NlbWJseSB3YXMgcmVhZCBmcm9tXG4gICAqL1xuICBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogU2VsZWN0IGEgc2luZ2xlIHN0YWNrIGJ5IGl0cyBJRFxuICAgKi9cbiAgc3RhY2tCeUlkKHN0YWNrSWQ6IHN0cmluZyk6IFN0YWNrQ29sbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBXaGVuIHNlbGVjdGluZyBzdGFja3MsIHdoYXQgb3RoZXIgc3RhY2tzIHRvIGluY2x1ZGUgYmVjYXVzZSBvZiBkZXBlbmRlbmNpZXNcbiAqL1xuZXhwb3J0IGVudW0gRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBEb24ndCBzZWxlY3QgYW55IGV4dHJhIHN0YWNrc1xuICAgKi9cbiAgTm9uZSxcblxuICAvKipcbiAgICogSW5jbHVkZSBzdGFja3MgdGhhdCB0aGlzIHN0YWNrIGRlcGVuZHMgb25cbiAgICovXG4gIFVwc3RyZWFtLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGlzIHN0YWNrXG4gICAqL1xuICBEb3duc3RyZWFtLFxufVxuXG4vKipcbiAqIEEgc2luZ2xlIENsb3VkIEFzc2VtYmx5IGFuZCB0aGUgb3BlcmF0aW9ucyB3ZSBkbyBvbiBpdCB0byBkZXBsb3kgdGhlIGFydGlmYWN0cyBpbnNpZGVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTdGFja0Fzc2VtYmx5IGltcGxlbWVudHMgSVN0YWNrQXNzZW1ibHkge1xuICAvKipcbiAgICogU2FuaXRpemUgYSBsaXN0IG9mIHN0YWNrIG1hdGNoIHBhdHRlcm5zXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIHNhbml0aXplUGF0dGVybnMocGF0dGVybnM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGxldCBzYW5pdGl6ZWQgPSBwYXR0ZXJucy5maWx0ZXIocyA9PiBzICE9IG51bGwpOyAvLyBmaWx0ZXIgbnVsbC91bmRlZmluZWRcbiAgICBzYW5pdGl6ZWQgPSBbLi4ubmV3IFNldChzYW5pdGl6ZWQpXTsgLy8gbWFrZSB0aGVtIHVuaXF1ZVxuICAgIHJldHVybiBzYW5pdGl6ZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0aGlzIENsb3VkQXNzZW1ibHkgd2FzIHJlYWQgZnJvbVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSW9IZWxwZXIgdXNlZCBmb3IgbWVzc2FnaW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogY3hhcGkuQ2xvdWRBc3NlbWJseSwgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgdGhpcy5kaXJlY3RvcnkgPSBhc3NlbWJseS5kaXJlY3Rvcnk7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpbmdsZSBzdGFjayBieSBpdHMgSURcbiAgICovXG4gIHB1YmxpYyBzdGFja0J5SWQoc3RhY2tJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgW3RoaXMuYXNzZW1ibHkuZ2V0U3RhY2tBcnRpZmFjdChzdGFja0lkKV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNlbGVjdE1hdGNoaW5nU3RhY2tzKFxuICAgIHN0YWNrczogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10sXG4gICAgcGF0dGVybnM6IHN0cmluZ1tdLFxuICAgIGV4dGVuZDogRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiA9IEV4dGVuZGVkU3RhY2tTZWxlY3Rpb24uTm9uZSxcbiAgKTogUHJvbWlzZTxTdGFja0NvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBtYXRjaGluZ1BhdHRlcm4gPSAocGF0dGVybjogc3RyaW5nKSA9PiAoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkgPT4gcGljb21hdGNoKHN0YWNrLmhpZXJhcmNoaWNhbElkLCBwYXR0ZXJuKTtcbiAgICBjb25zdCBtYXRjaGVkU3RhY2tzID0gZmxhdHRlbihwYXR0ZXJucy5tYXAocGF0dGVybiA9PiBzdGFja3MuZmlsdGVyKG1hdGNoaW5nUGF0dGVybihwYXR0ZXJuKSkpKTtcblxuICAgIHJldHVybiB0aGlzLmV4dGVuZFN0YWNrcyhtYXRjaGVkU3RhY2tzLCBzdGFja3MsIGV4dGVuZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZXh0ZW5kU3RhY2tzKFxuICAgIG1hdGNoZWQ6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLFxuICAgIGFsbDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10sXG4gICAgZXh0ZW5kOiBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uID0gRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Ob25lLFxuICApIHtcbiAgICBjb25zdCBhbGxTdGFja3MgPSBuZXcgTWFwPHN0cmluZywgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0PigpO1xuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgYWxsKSB7XG4gICAgICBhbGxTdGFja3Muc2V0KHN0YWNrLmhpZXJhcmNoaWNhbElkLCBzdGFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXggPSBpbmRleEJ5SGllcmFyY2hpY2FsSWQobWF0Y2hlZCk7XG5cbiAgICBzd2l0Y2ggKGV4dGVuZCkge1xuICAgICAgY2FzZSBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uLkRvd25zdHJlYW06XG4gICAgICAgIGF3YWl0IGluY2x1ZGVEb3duc3RyZWFtU3RhY2tzKHRoaXMuaW9IZWxwZXIsIGluZGV4LCBhbGxTdGFja3MpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5VcHN0cmVhbTpcbiAgICAgICAgYXdhaXQgaW5jbHVkZVVwc3RyZWFtU3RhY2tzKHRoaXMuaW9IZWxwZXIsIGluZGV4LCBhbGxTdGFja3MpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgb3JpZ2luYWwgYXJyYXkgYmVjYXVzZSBpdCBpcyBpbiB0aGUgcmlnaHQgb3JkZXJcbiAgICBjb25zdCBzZWxlY3RlZExpc3QgPSBhbGwuZmlsdGVyKHMgPT4gaW5kZXguaGFzKHMuaGllcmFyY2hpY2FsSWQpKTtcblxuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMsIHNlbGVjdGVkTGlzdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5kZXhCeUhpZXJhcmNoaWNhbElkKHN0YWNrczogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10pOiBNYXA8c3RyaW5nLCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4oKTtcblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIHJlc3VsdC5zZXQoc3RhY2suaGllcmFyY2hpY2FsSWQsIHN0YWNrKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSB0cmFuc2l0aXZlIGNsb3N1cmUgb2Ygc3RhY2sgZGVwZW5kZW50cy5cbiAqXG4gKiBNb2RpZmllcyBgc2VsZWN0ZWRTdGFja3NgIGluLXBsYWNlLlxuICovXG5hc3luYyBmdW5jdGlvbiBpbmNsdWRlRG93bnN0cmVhbVN0YWNrcyhcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzZWxlY3RlZFN0YWNrczogTWFwPHN0cmluZywgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0PixcbiAgYWxsU3RhY2tzOiBNYXA8c3RyaW5nLCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+LFxuKSB7XG4gIGNvbnN0IGFkZGVkID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBsZXQgbWFkZVByb2dyZXNzO1xuICBkbyB7XG4gICAgbWFkZVByb2dyZXNzID0gZmFsc2U7XG5cbiAgICBmb3IgKGNvbnN0IFtpZCwgc3RhY2tdIG9mIGFsbFN0YWNrcykge1xuICAgICAgLy8gU2VsZWN0IHRoaXMgc3RhY2sgaWYgaXQncyBub3Qgc2VsZWN0ZWQgeWV0IEFORCBpdCBkZXBlbmRzIG9uIGEgc3RhY2sgdGhhdCdzIGluIHRoZSBzZWxlY3RlZCBzZXRcbiAgICAgIGlmICghc2VsZWN0ZWRTdGFja3MuaGFzKGlkKSAmJiAoc3RhY2suZGVwZW5kZW5jaWVzIHx8IFtdKS5zb21lKGRlcCA9PiBzZWxlY3RlZFN0YWNrcy5oYXMoZGVwLmlkKSkpIHtcbiAgICAgICAgc2VsZWN0ZWRTdGFja3Muc2V0KGlkLCBzdGFjayk7XG4gICAgICAgIGFkZGVkLnB1c2goaWQpO1xuICAgICAgICBtYWRlUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAobWFkZVByb2dyZXNzKTtcblxuICBpZiAoYWRkZWQubGVuZ3RoID4gMCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oYEluY2x1ZGluZyBkZXBlbmRpbmcgc3RhY2tzOiAke2NoYWxrLmJvbGQoYWRkZWQuam9pbignLCAnKSl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGhlIHRyYW5zaXRpdmUgY2xvc3VyZSBvZiBzdGFjayBkZXBlbmRlbmNpZXMuXG4gKlxuICogTW9kaWZpZXMgYHNlbGVjdGVkU3RhY2tzYCBpbi1wbGFjZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5jbHVkZVVwc3RyZWFtU3RhY2tzKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHNlbGVjdGVkU3RhY2tzOiBNYXA8c3RyaW5nLCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+LFxuICBhbGxTdGFja3M6IE1hcDxzdHJpbmcsIGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4sXG4pIHtcbiAgY29uc3QgYWRkZWQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBsZXQgbWFkZVByb2dyZXNzID0gdHJ1ZTtcbiAgd2hpbGUgKG1hZGVQcm9ncmVzcykge1xuICAgIG1hZGVQcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBzdGFjayBvZiBzZWxlY3RlZFN0YWNrcy52YWx1ZXMoKSkge1xuICAgICAgLy8gU2VsZWN0IGFuIGFkZGl0aW9uYWwgc3RhY2sgaWYgaXQncyBub3Qgc2VsZWN0ZWQgeWV0IGFuZCBhIGRlcGVuZGVuY3kgb2YgYSBzZWxlY3RlZCBzdGFjayAoYW5kIGV4aXN0cywgb2J2aW91c2x5KVxuICAgICAgZm9yIChjb25zdCBkZXBlbmRlbmN5SWQgb2Ygc3RhY2suZGVwZW5kZW5jaWVzLm1hcCh4ID0+IHgubWFuaWZlc3QuZGlzcGxheU5hbWUgPz8geC5pZCkpIHtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFN0YWNrcy5oYXMoZGVwZW5kZW5jeUlkKSAmJiBhbGxTdGFja3MuaGFzKGRlcGVuZGVuY3lJZCkpIHtcbiAgICAgICAgICBhZGRlZC5wdXNoKGRlcGVuZGVuY3lJZCk7XG4gICAgICAgICAgc2VsZWN0ZWRTdGFja3Muc2V0KGRlcGVuZGVuY3lJZCwgYWxsU3RhY2tzLmdldChkZXBlbmRlbmN5SWQpISk7XG4gICAgICAgICAgbWFkZVByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChhZGRlZC5sZW5ndGggPiAwKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgSW5jbHVkaW5nIGRlcGVuZGVuY3kgc3RhY2tzOiAke2NoYWxrLmJvbGQoYWRkZWQuam9pbignLCAnKSl9YCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackCollection = void 0;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\n/**\n * A collection of stacks and related artifacts\n *\n * In practice, not all artifacts in the CloudAssembly are created equal;\n * stacks can be selected independently, but other artifacts such as asset\n * bundles cannot.\n */\nclass StackCollection {\n assembly;\n stackArtifacts;\n constructor(assembly, stackArtifacts) {\n this.assembly = assembly;\n this.stackArtifacts = stackArtifacts;\n }\n get stackCount() {\n return this.stackArtifacts.length;\n }\n get firstStack() {\n if (this.stackCount < 1) {\n throw new toolkit_error_1.ToolkitError('EmptyStackCollection', 'StackCollection contains no stack artifacts (trying to access the first one)');\n }\n return this.stackArtifacts[0];\n }\n get stackIds() {\n return this.stackArtifacts.map(s => s.id);\n }\n get hierarchicalIds() {\n return this.stackArtifacts.map(s => s.hierarchicalId);\n }\n withDependencies() {\n const allData = [];\n for (const stack of this.stackArtifacts) {\n const data = {\n id: stack.displayName ?? stack.id,\n name: stack.stackName,\n environment: stack.environment,\n // Might be huge so load it lazily\n get metadata() {\n return stack.metadata;\n },\n dependencies: [],\n };\n for (const dependencyId of stack.dependencies.map(x => x.id)) {\n if (dependencyId.includes('.assets')) {\n continue;\n }\n const depStack = this.assembly.stackById(dependencyId);\n if (depStack.firstStack.dependencies.filter((dep) => !(dep.id).includes('.assets')).length > 0) {\n for (const stackDetail of depStack.withDependencies()) {\n data.dependencies.push({\n id: stackDetail.id,\n dependencies: stackDetail.dependencies,\n });\n }\n }\n else {\n data.dependencies.push({\n id: depStack.firstStack.displayName ?? depStack.firstStack.id,\n dependencies: [],\n });\n }\n }\n allData.push(data);\n }\n return allData;\n }\n reversed() {\n const arts = [...this.stackArtifacts];\n arts.reverse();\n return new StackCollection(this.assembly, arts);\n }\n filter(predicate) {\n return new StackCollection(this.assembly, this.stackArtifacts.filter(predicate));\n }\n concat(...others) {\n return new StackCollection(this.assembly, this.stackArtifacts.concat(...others.map(o => o.stackArtifacts)));\n }\n /**\n * Extracts 'aws:cdk:warning|info|error' metadata entries from the stack synthesis\n */\n async validateMetadata(failAt = 'error', logger = async () => {\n }) {\n let warnings = false;\n let errors = false;\n for (const stack of this.stackArtifacts) {\n for (const message of stack.messages) {\n switch (message.level) {\n case cloud_assembly_api_1.SynthesisMessageLevel.WARNING:\n warnings = true;\n await logger('warn', message);\n break;\n case cloud_assembly_api_1.SynthesisMessageLevel.ERROR:\n errors = true;\n await logger('error', message);\n break;\n case cloud_assembly_api_1.SynthesisMessageLevel.INFO:\n await logger('info', message);\n break;\n }\n }\n }\n if (errors && failAt != 'none') {\n const error = toolkit_error_1.AssemblyError.withStacks('Found errors', this.stackArtifacts);\n error.attachSynthesisErrorCode('AnnotationErrors');\n throw error;\n }\n if (warnings && failAt === 'warn') {\n const error = toolkit_error_1.AssemblyError.withStacks('Found warnings (--strict mode)', this.stackArtifacts);\n error.attachSynthesisErrorCode('StrictAnnotationWarnings');\n throw error;\n }\n }\n}\nexports.StackCollection = StackCollection;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0VBQW9FO0FBR3BFLCtEQUEwRTtBQUUxRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWU7SUFDRTtJQUEwQztJQUF0RSxZQUE0QixRQUF3QixFQUFrQixjQUFtRDtRQUE3RixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFrQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUM7SUFDekgsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHNCQUFzQixFQUFFLDhFQUE4RSxDQUFDLENBQUM7UUFDakksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBaUI7Z0JBQ3pCLEVBQUUsRUFBRSxLQUFLLENBQUMs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RSxDQUFDO2dCQUNyQyxRQUFRLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDdEIsS0FBSywwQ0FBcUIsQ0FBQyxPQUFPO3dCQUNoQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3dCQUNoQixNQUFNLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQzlCLE1BQU07b0JBQ1IsS0FBSywwQ0FBcUIsQ0FBQyxLQUFLO3dCQUM5QixNQUFNLEdBQUcsSUFBSSxDQUFDO3dCQUNkLE1BQU0sTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDL0IsTUFBTTtvQkFDUixLQUFLLDBDQUFxQixDQUFDLElBQUk7d0JBQzdCLE1BQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDOUIsTUFBTTtnQkFDVixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE1BQU0sSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7WUFDL0IsTUFBTSxLQUFLLEdBQUcsNkJBQWEsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1RSxLQUFLLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNuRCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLFFBQVEsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDbEMsTUFBTSxLQUFLLEdBQUcsNkJBQWEsQ0FBQyxVQUFVLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlGLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQzNELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFIRCwwQ0EwSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBTeW50aGVzaXNNZXNzYWdlTGV2ZWwgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBJU3RhY2tBc3NlbWJseSB9IGZyb20gJy4vc3RhY2stYXNzZW1ibHknO1xuaW1wb3J0IHsgdHlwZSBTdGFja0RldGFpbHMgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9zdGFjay1kZXRhaWxzJztcbmltcG9ydCB7IEFzc2VtYmx5RXJyb3IsIFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIHN0YWNrcyBhbmQgcmVsYXRlZCBhcnRpZmFjdHNcbiAqXG4gKiBJbiBwcmFjdGljZSwgbm90IGFsbCBhcnRpZmFjdHMgaW4gdGhlIENsb3VkQXNzZW1ibHkgYXJlIGNyZWF0ZWQgZXF1YWw7XG4gKiBzdGFja3MgY2FuIGJlIHNlbGVjdGVkIGluZGVwZW5kZW50bHksIGJ1dCBvdGhlciBhcnRpZmFjdHMgc3VjaCBhcyBhc3NldFxuICogYnVuZGxlcyBjYW5ub3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0NvbGxlY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IElTdGFja0Fzc2VtYmx5LCBwdWJsaWMgcmVhZG9ubHkgc3RhY2tBcnRpZmFjdHM6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBmaXJzdFN0YWNrKCkge1xuICAgIGlmICh0aGlzLnN0YWNrQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdFbXB0eVN0YWNrQ29sbGVjdGlvbicsICdTdGFja0NvbGxlY3Rpb24gY29udGFpbnMgbm8gc3RhY2sgYXJ0aWZhY3RzICh0cnlpbmcgdG8gYWNjZXNzIHRoZSBmaXJzdCBvbmUpJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YWNrQXJ0aWZhY3RzWzBdO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFja0lkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubWFwKHMgPT4gcy5pZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhpZXJhcmNoaWNhbElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubWFwKHMgPT4gcy5oaWVyYXJjaGljYWxJZCk7XG4gIH1cblxuICBwdWJsaWMgd2l0aERlcGVuZGVuY2llcygpOiBTdGFja0RldGFpbHNbXSB7XG4gICAgY29uc3QgYWxsRGF0YTogU3RhY2tEZXRhaWxzW10gPSBbXTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgdGhpcy5zdGFja0FydGlmYWN0cykge1xuICAgICAgY29uc3QgZGF0YTogU3RhY2tEZXRhaWxzID0ge1xuICAgICAgICBpZDogc3RhY2suZGlzcGxheU5hbWUgPz8gc3RhY2suaWQsXG4gICAgICAgIG5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWNrLmVudmlyb25tZW50LFxuXG4gICAgICAgIC8vIE1pZ2h0IGJlIGh1Z2Ugc28gbG9hZCBpdCBsYXppbHlcbiAgICAgICAgZ2V0IG1ldGFkYXRhKCkge1xuICAgICAgICAgIHJldHVybiBzdGFjay5tZXRhZGF0YTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBbXSxcbiAgICAgIH07XG5cbiAgICAgIGZvciAoY29uc3QgZGVwZW5kZW5jeUlkIG9mIHN0YWNrLmRlcGVuZGVuY2llcy5tYXAoeCA9PiB4LmlkKSkge1xuICAgICAgICBpZiAoZGVwZW5kZW5jeUlkLmluY2x1ZGVzKCcuYXNzZXRzJykpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlcFN0YWNrID0gdGhpcy5hc3NlbWJseS5zdGFja0J5SWQoZGVwZW5kZW5jeUlkKTtcblxuICAgICAgICBpZiAoZGVwU3RhY2suZmlyc3RTdGFjay5kZXBlbmRlbmNpZXMuZmlsdGVyKChkZXApID0+ICEoZGVwLmlkKS5pbmNsdWRlcygnLmFzc2V0cycpKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBzdGFja0RldGFpbCBvZiBkZXBTdGFjay53aXRoRGVwZW5kZW5jaWVzKCkpIHtcbiAgICAgICAgICAgIGRhdGEuZGVwZW5kZW5jaWVzLnB1c2goe1xuICAgICAgICAgICAgICBpZDogc3RhY2tEZXRhaWwuaWQsXG4gICAgICAgICAgICAgIGRlcGVuZGVuY2llczogc3RhY2tEZXRhaWwuZGVwZW5kZW5jaWVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGEuZGVwZW5kZW5jaWVzLnB1c2goe1xuICAgICAgICAgICAgaWQ6IGRlcFN0YWNrLmZpcnN0U3RhY2suZGlzcGxheU5hbWUgPz8gZGVwU3RhY2suZmlyc3RTdGFjay5pZCxcbiAgICAgICAgICAgIGRlcGVuZGVuY2llczogW10sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWxsRGF0YS5wdXNoKGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxEYXRhO1xuICB9XG5cbiAgcHVibGljIHJldmVyc2VkKCkge1xuICAgIGNvbnN0IGFydHMgPSBbLi4udGhpcy5zdGFja0FydGlmYWN0c107XG4gICAgYXJ0cy5yZXZlcnNlKCk7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcy5hc3NlbWJseSwgYXJ0cyk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKGFydDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSA9PiBib29sZWFuKTogU3RhY2tDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLmFzc2VtYmx5LCB0aGlzLnN0YWNrQXJ0aWZhY3RzLmZpbHRlcihwcmVkaWNhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25jYXQoLi4ub3RoZXJzOiBTdGFja0NvbGxlY3Rpb25bXSk6IFN0YWNrQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcy5hc3NlbWJseSwgdGhpcy5zdGFja0FydGlmYWN0cy5jb25jYXQoLi4ub3RoZXJzLm1hcChvID0+IG8uc3RhY2tBcnRpZmFjdHMpKSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgJ2F3czpjZGs6d2FybmluZ3xpbmZvfGVycm9yJyBtZXRhZGF0YSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrIHN5bnRoZXNpc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlTWV0YWRhdGEoXG4gICAgZmFpbEF0OiAnd2FybicgfCAnZXJyb3InIHwgJ25vbmUnID0gJ2Vycm9yJyxcbiAgICBsb2dnZXI6IChsZXZlbDogJ2luZm8nIHwgJ2Vycm9yJyB8ICd3YXJuJywgbXNnOiBjeGFwaS5TeW50aGVzaXNNZXNzYWdlKSA9PiBQcm9taXNlPHZvaWQ+ID0gYXN5bmMgKCkgPT4ge1xuICAgIH0sXG4gICkge1xuICAgIGxldCB3YXJuaW5ncyA9IGZhbHNlO1xuICAgIGxldCBlcnJvcnMgPSBmYWxzZTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgdGhpcy5zdGFja0FydGlmYWN0cykge1xuICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIHN0YWNrLm1lc3NhZ2VzKSB7XG4gICAgICAgIHN3aXRjaCAobWVzc2FnZS5sZXZlbCkge1xuICAgICAgICAgIGNhc2UgU3ludGhlc2lzTWVzc2FnZUxldmVsLldBUk5JTkc6XG4gICAgICAgICAgICB3YXJuaW5ncyA9IHRydWU7XG4gICAgICAgICAgICBhd2FpdCBsb2dnZXIoJ3dhcm4nLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU3ludGhlc2lzTWVzc2FnZUxldmVsLkVSUk9SOlxuICAgICAgICAgICAgZXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgIGF3YWl0IGxvZ2dlcignZXJyb3InLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU3ludGhlc2lzTWVzc2FnZUxldmVsLklORk86XG4gICAgICAgICAgICBhd2FpdCBsb2dnZXIoJ2luZm8nLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycyAmJiBmYWlsQXQgIT0gJ25vbmUnKSB7XG4gICAgICBjb25zdCBlcnJvciA9IEFzc2VtYmx5RXJyb3Iud2l0aFN0YWNrcygnRm91bmQgZXJyb3JzJywgdGhpcy5zdGFja0FydGlmYWN0cyk7XG4gICAgICBlcnJvci5hdHRhY2hTeW50aGVzaXNFcnJvckNvZGUoJ0Fubm90YXRpb25FcnJvcnMnKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmICh3YXJuaW5ncyAmJiBmYWlsQXQgPT09ICd3YXJuJykge1xuICAgICAgY29uc3QgZXJyb3IgPSBBc3NlbWJseUVycm9yLndpdGhTdGFja3MoJ0ZvdW5kIHdhcm5pbmdzICgtLXN0cmljdCBtb2RlKScsIHRoaXMuc3RhY2tBcnRpZmFjdHMpO1xuICAgICAgZXJyb3IuYXR0YWNoU3ludGhlc2lzRXJyb3JDb2RlKCdTdHJpY3RBbm5vdGF0aW9uV2FybmluZ3MnKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpandStackSelection = exports.StackSelectionStrategy = void 0;\n/**\n * Which stacks should be selected from a cloud assembly\n */\nvar StackSelectionStrategy;\n(function (StackSelectionStrategy) {\n /**\n * Returns all stacks in the app regardless of patterns,\n * including stacks inside nested assemblies.\n */\n StackSelectionStrategy[\"ALL_STACKS\"] = \"all-stacks\";\n /**\n * Returns all stacks in the main (top level) assembly only.\n */\n StackSelectionStrategy[\"MAIN_ASSEMBLY\"] = \"main-assembly\";\n /**\n * If the assembly includes a single stack, returns it.\n * Otherwise throws an exception.\n */\n StackSelectionStrategy[\"ONLY_SINGLE\"] = \"only-single\";\n /**\n * Return stacks matched by patterns.\n * If no stacks are found, execution is halted successfully.\n * Most likely you don't want to use this but `StackSelectionStrategy.MUST_MATCH_PATTERN`\n */\n StackSelectionStrategy[\"PATTERN_MATCH\"] = \"pattern-match\";\n /**\n * Return stacks matched by patterns.\n * Throws an exception if the patterns don't match at least one stack in the assembly.\n */\n StackSelectionStrategy[\"PATTERN_MUST_MATCH\"] = \"pattern-must-match\";\n /**\n * Returns if exactly one stack is matched by the pattern(s).\n * Throws an exception if no stack, or more than exactly one stack are matched.\n */\n StackSelectionStrategy[\"PATTERN_MUST_MATCH_SINGLE\"] = \"pattern-must-match-single\";\n})(StackSelectionStrategy || (exports.StackSelectionStrategy = StackSelectionStrategy = {}));\n/**\n * When selecting stacks, what other stacks to include because of dependencies\n */\nvar ExpandStackSelection;\n(function (ExpandStackSelection) {\n /**\n * Don't select any extra stacks\n */\n ExpandStackSelection[\"NONE\"] = \"none\";\n /**\n * Include stacks that this stack depends on\n */\n ExpandStackSelection[\"UPSTREAM\"] = \"upstream\";\n /**\n * Include stacks that depend on this stack\n */\n ExpandStackSelection[\"DOWNSTREAM\"] = \"downstream\";\n /**\n * @TODO\n * Include both directions.\n * I.e. stacks that this stack depends on, and stacks that depend on this stack.\n */\n // FULL = 'full',\n})(ExpandStackSelection || (exports.ExpandStackSelection = ExpandStackSelection = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksc0JBb0NYO0FBcENELFdBQVksc0JBQXNCO0lBQ2hDOzs7T0FHRztJQUNILG1EQUF5QixDQUFBO0lBRXpCOztPQUVHO0lBQ0gseURBQStCLENBQUE7SUFFL0I7OztPQUdHO0lBQ0gscURBQTJCLENBQUE7SUFFM0I7Ozs7T0FJRztJQUNILHlEQUErQixDQUFBO0lBRS9COzs7T0FHRztJQUNILG1FQUF5QyxDQUFBO0lBRXpDOzs7T0FHRztJQUNILGlGQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFwQ1csc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFvQ2pDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLG9CQXNCWDtBQXRCRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILHFDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDZDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsaURBQXlCLENBQUE7SUFFekI7Ozs7T0FJRztJQUNILGlCQUFpQjtBQUNuQixDQUFDLEVBdEJXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBc0IvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2hpY2ggc3RhY2tzIHNob3VsZCBiZSBzZWxlY3RlZCBmcm9tIGEgY2xvdWQgYXNzZW1ibHlcbiAqL1xuZXhwb3J0IGVudW0gU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBzdGFja3MgaW4gdGhlIGFwcCByZWdhcmRsZXNzIG9mIHBhdHRlcm5zLFxuICAgKiBpbmNsdWRpbmcgc3RhY2tzIGluc2lkZSBuZXN0ZWQgYXNzZW1ibGllcy5cbiAgICovXG4gIEFMTF9TVEFDS1MgPSAnYWxsLXN0YWNrcycsXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN0YWNrcyBpbiB0aGUgbWFpbiAodG9wIGxldmVsKSBhc3NlbWJseSBvbmx5LlxuICAgKi9cbiAgTUFJTl9BU1NFTUJMWSA9ICdtYWluLWFzc2VtYmx5JyxcblxuICAvKipcbiAgICogSWYgdGhlIGFzc2VtYmx5IGluY2x1ZGVzIGEgc2luZ2xlIHN0YWNrLCByZXR1cm5zIGl0LlxuICAgKiBPdGhlcndpc2UgdGhyb3dzIGFuIGV4Y2VwdGlvbi5cbiAgICovXG4gIE9OTFlfU0lOR0xFID0gJ29ubHktc2luZ2xlJyxcblxuICAvKipcbiAgICogUmV0dXJuIHN0YWNrcyBtYXRjaGVkIGJ5IHBhdHRlcm5zLlxuICAgKiBJZiBubyBzdGFja3MgYXJlIGZvdW5kLCBleGVjdXRpb24gaXMgaGFsdGVkIHN1Y2Nlc3NmdWxseS5cbiAgICogTW9zdCBsaWtlbHkgeW91IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgYnV0IGBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1VU1RfTUFUQ0hfUEFUVEVSTmBcbiAgICovXG4gIFBBVFRFUk5fTUFUQ0ggPSAncGF0dGVybi1tYXRjaCcsXG5cbiAgLyoqXG4gICAqIFJldHVybiBzdGFja3MgbWF0Y2hlZCBieSBwYXR0ZXJucy5cbiAgICogVGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybnMgZG9uJ3QgbWF0Y2ggYXQgbGVhc3Qgb25lIHN0YWNrIGluIHRoZSBhc3NlbWJseS5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSCA9ICdwYXR0ZXJuLW11c3QtbWF0Y2gnLFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIGV4YWN0bHkgb25lIHN0YWNrIGlzIG1hdGNoZWQgYnkgdGhlIHBhdHRlcm4ocykuXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgbm8gc3RhY2ssIG9yIG1vcmUgdGhhbiBleGFjdGx5IG9uZSBzdGFjayBhcmUgbWF0Y2hlZC5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEUgPSAncGF0dGVybi1tdXN0LW1hdGNoLXNpbmdsZScsXG59XG5cbi8qKlxuICogV2hlbiBzZWxlY3Rpbmcgc3RhY2tzLCB3aGF0IG90aGVyIHN0YWNrcyB0byBpbmNsdWRlIGJlY2F1c2Ugb2YgZGVwZW5kZW5jaWVzXG4gKi9cbmV4cG9ydCBlbnVtIEV4cGFuZFN0YWNrU2VsZWN0aW9uIHtcbiAgLyoqXG4gICAqIERvbid0IHNlbGVjdCBhbnkgZXh0cmEgc3RhY2tzXG4gICAqL1xuICBOT05FID0gJ25vbmUnLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IHRoaXMgc3RhY2sgZGVwZW5kcyBvblxuICAgKi9cbiAgVVBTVFJFQU0gPSAndXBzdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGlzIHN0YWNrXG4gICAqL1xuICBET1dOU1RSRUFNID0gJ2Rvd25zdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBAVE9ET1xuICAgKiBJbmNsdWRlIGJvdGggZGlyZWN0aW9ucy5cbiAgICogSS5lLiBzdGFja3MgdGhhdCB0aGlzIHN0YWNrIGRlcGVuZHMgb24sIGFuZCBzdGFja3MgdGhhdCBkZXBlbmQgb24gdGhpcyBzdGFjay5cbiAgICovXG4gIC8vIEZVTEwgPSAnZnVsbCcsXG59XG5cbi8qKlxuICogQSBzcGVjaWZpY2F0aW9uIG9mIHdoaWNoIHN0YWNrcyBzaG91bGQgYmUgc2VsZWN0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlbGVjdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBiZWhhdmlvciBpZiBpZiBubyBzZWxlY3RvcnMgYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgc3RyYXRlZ3k6IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXR0ZXJucyB0byBtYXRjaCB0aGUgc3RhY2sgaGllcmFyY2hpY2FsIGlkc1xuICAgKiBPbmx5IHVzZWQgd2l0aCBgUEFUVEVSTl8qYCBzZWxlY3Rpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIHBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4cGFuZCB0aGUgc2VsZWN0aW9uIHRvIHVwc3RyZWFtL2Rvd25zdHJlYW0gc3RhY2tzLlxuICAgKiBAZGVmYXVsdCBFeHBhbmRTdGFja1NlbGVjdGlvbi5Ob25lIG9ubHkgc2VsZWN0IHRoZSBzcGVjaWZpZWQvbWF0Y2hlZCBzdGFja3NcbiAgICovXG4gIGV4cGFuZD86IEV4cGFuZFN0YWNrU2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIGFzc2VtYmx5IGNvbnRhaW5zIG5vIHN0YWNrcy5cbiAgICogU2V0IHRvIGBmYWxzZWAsIHRvIGhhbHQgZXhlY3V0aW9uIGZvciBlbXB0eSBhc3NlbWJsaWVzIHdpdGhvdXQgZXJyb3IuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBhY3Rpb25zIGNhbiBzdGlsbCB0aHJvdyBpZiBhIHN0YWNrIHNlbGVjdGlvbiByZXN1bHQgaXMgZW1wdHksXG4gICAqIGJ1dCB0aGUgYXNzZW1ibHkgY29udGFpbnMgc3RhY2tzIGluIHByaW5jaXBsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZmFpbE9uRW1wdHk/OiBib29sZWFuO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEFzc2VtYmx5U291cmNlIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBDbG91ZEFzc2VtYmx5IGZyb20gdGhlIGN1cnJlbnQgc291cmNlXG4gICAqL1xuICBwcm9kdWNlKCk6IFByb21pc2U8SVJlYWRhYmxlQ2xvdWRBc3NlbWJseT47XG59XG5cbi8qKlxuICogQSB2ZXJzaW9uIG9mIHRoZSBDbG91ZEFzc2VtYmx5IHRoYXQgaXMgc2FmZSB0byByZWFkIGZyb21cbiAqXG4gKiBJbiBwcmFjdGljZSwgdGhpcyBtZWFucyBpdCBob2xkcyBhIGxvY2sgd2hpY2ggcHJldmVudHMgb3RoZXJcbiAqIHByb2R1Y2VycyBmcm9tIG92ZXJ3cml0aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgYmFja2luZyBjbG91ZFxuICogYXNzZW1ibHkgZGlyZWN0b3J5LlxuICpcbiAqIFRoZSByZWNlaXZlciBvZiBhbiBgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseWAgbXVzdCBhbHdheXMgZGlzcG9zZSBvZiB0aGVcbiAqIG9iamVjdCFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIENsb3VkIEFzc2VtYmx5XG4gICAqL1xuICByZWFkb25seSBjbG91ZEFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5O1xuXG4gIC8qKlxuICAgKiBSZWxlYXNlIHRoZSBsb2NrIG9uIHRoZSBDbG91ZCBBc3NlbWJseSBkaXJlY3Rvcnkgb25seS5cbiAgICpcbiAgICogQ29uc3VtZXIgY29kZSBzaG91bGQgbmV2ZXIgY2FsbCB0aGlzLiBUaGlzIG1ldGhvZCBvbmx5IGV4aXN0cyBmb3IgdGhlXG4gICAqIGJlbmVmaXQgb2YgYENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2VgLCBzbyB0aGF0IGl0IGNhbiB1bmxvY2sgYVxuICAgKiBwcm9kdWNlZCBidXQgaW5jb21wbGV0ZSBDbG91ZCBBc3NlbWJseSBkaXJlY3Rvcnkgd2l0aCB0aGUgZ29hbCBvZlxuICAgKiBzeW50aGVzaXppbmcgaW50byBpdCBhZ2Fpbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfdW5sb2NrKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIERpc3Bvc2Ugb2YgdGhlIENsb3VkIEFzc2VtYmx5XG4gICAqXG4gICAqIFRoaXMgZG9lcyAyIHRoaW5nczpcbiAgICpcbiAgICogLSBSZWxlYXNlIHRoZSBsb2NrIG9uIHRoZSBDbG91ZCBBc3NlbWJseSBkaXJlY3RvcnlcbiAgICogLSBEZWxldGUgdGhlIGJhY2tpbmcgZGlyZWN0b3J5LCBpZiBpdCBpcyBhIHRlbXBvcmFyeSBkaXJlY3RvcnkuXG4gICAqL1xuICBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEFzeW5jIGRpc3Bvc2UgY2xlYW51cCBmdW5jdGlvblxuICAgKlxuICAgKiBBbiBhbGlhcyBmb3IgYGRpc3Bvc2VgIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBgYXdhaXQgdXNpbmdgLlxuICAgKi9cbiAgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2U8dm9pZD47XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS = exports.EvaluateCloudFormationTemplate = exports.CfnEvaluationException = exports.LazyLookupExport = exports.LookupExportError = exports.LazyListStackResources = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst resource_metadata_1 = require(\"../resource-metadata\");\nclass LazyListStackResources {\n sdk;\n stackName;\n stackResources;\n constructor(sdk, stackName) {\n this.sdk = sdk;\n this.stackName = stackName;\n }\n async listStackResources() {\n if (this.stackResources === undefined) {\n this.stackResources = this.sdk.cloudFormation().listStackResources({\n StackName: this.stackName,\n });\n }\n return this.stackResources;\n }\n}\nexports.LazyListStackResources = LazyListStackResources;\nclass LookupExportError extends Error {\n}\nexports.LookupExportError = LookupExportError;\nclass LazyLookupExport {\n sdk;\n cachedExports = {};\n constructor(sdk) {\n this.sdk = sdk;\n }\n async lookupExport(name) {\n if (this.cachedExports[name]) {\n return this.cachedExports[name];\n }\n for await (const cfnExport of this.listExports()) {\n if (!cfnExport.Name) {\n continue; // ignore any result that omits a name\n }\n this.cachedExports[cfnExport.Name] = cfnExport;\n if (cfnExport.Name === name) {\n return cfnExport;\n }\n }\n return undefined; // export not found\n }\n // TODO: Paginate\n async *listExports() {\n let nextToken = undefined;\n while (true) {\n const response = await this.sdk.cloudFormation().listExports({ NextToken: nextToken });\n for (const cfnExport of response.Exports ?? []) {\n yield cfnExport;\n }\n if (!response.NextToken) {\n return;\n }\n nextToken = response.NextToken;\n }\n }\n}\nexports.LazyLookupExport = LazyLookupExport;\nclass CfnEvaluationException extends Error {\n}\nexports.CfnEvaluationException = CfnEvaluationException;\nclass EvaluateCloudFormationTemplate {\n stackArtifact;\n stackName;\n template;\n context;\n account;\n region;\n partition;\n sdk;\n nestedStacks;\n stackResources;\n lookupExport;\n cachedUrlSuffix;\n _cloudControl;\n constructor(props) {\n this.stackArtifact = props.stackArtifact;\n this.stackName = props.stackName ?? props.stackArtifact.stackName;\n this.template = props.template ?? props.stackArtifact.template;\n this.context = {\n 'AWS::AccountId': props.account,\n 'AWS::Region': props.region,\n 'AWS::Partition': props.partition,\n ...props.parameters,\n };\n this.account = props.account;\n this.region = props.region;\n this.partition = props.partition;\n this.sdk = props.sdk;\n // We need names of nested stack so we can evaluate cross stack references\n this.nestedStacks = props.nestedStacks ?? {};\n // The current resources of the Stack.\n // We need them to figure out the physical name of a resource in case it wasn't specified by the user.\n // We fetch it lazily, to save a service call, in case all hotswapped resources have their physical names set.\n this.stackResources = new LazyListStackResources(this.sdk, this.stackName);\n // CloudFormation Exports lookup to be able to resolve Fn::ImportValue intrinsics in template\n this.lookupExport = new LazyLookupExport(this.sdk);\n }\n get cloudControl() {\n if (!this._cloudControl) {\n this._cloudControl = this.sdk.cloudControl();\n }\n return this._cloudControl;\n }\n // clones current EvaluateCloudFormationTemplate object, but updates the stack name\n async createNestedEvaluateCloudFormationTemplate(stackName, nestedTemplate, nestedStackParameters) {\n const evaluatedParams = await this.evaluateCfnExpression(nestedStackParameters);\n return new EvaluateCloudFormationTemplate({\n stackArtifact: this.stackArtifact,\n stackName,\n template: nestedTemplate,\n parameters: evaluatedParams,\n account: this.account,\n region: this.region,\n partition: this.partition,\n sdk: this.sdk,\n nestedStacks: this.nestedStacks,\n });\n }\n async establishResourcePhysicalName(logicalId, physicalNameInCfnTemplate) {\n if (physicalNameInCfnTemplate != null) {\n try {\n return await this.evaluateCfnExpression(physicalNameInCfnTemplate);\n }\n catch (e) {\n // If we can't evaluate the resource's name CloudFormation expression,\n // just look it up in the currently deployed Stack\n if (!(e instanceof CfnEvaluationException)) {\n throw e;\n }\n }\n }\n return this.findPhysicalNameFor(logicalId);\n }\n async findPhysicalNameFor(logicalId) {\n const stackResources = await this.stackResources.listStackResources();\n return stackResources.find((sr) => sr.LogicalResourceId === logicalId)?.PhysicalResourceId;\n }\n async findLogicalIdForPhysicalName(physicalName) {\n const stackResources = await this.stackResources.listStackResources();\n return stackResources.find((sr) => sr.PhysicalResourceId === physicalName)?.LogicalResourceId;\n }\n findReferencesTo(logicalId) {\n const ret = new Array();\n for (const [resourceLogicalId, resourceDef] of Object.entries(this.template?.Resources ?? {})) {\n if (logicalId !== resourceLogicalId && this.references(logicalId, resourceDef)) {\n ret.push({\n ...resourceDef,\n LogicalId: resourceLogicalId,\n });\n }\n }\n return ret;\n }\n async evaluateCfnExpression(cfnExpression) {\n const self = this;\n /**\n * Evaluates CloudFormation intrinsic functions\n *\n * Note that supported intrinsic functions are documented in README.md -- please update\n * list of supported functions when adding new evaluations\n *\n * See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html\n */\n class CfnIntrinsics {\n evaluateIntrinsic(intrinsic) {\n const intrinsicFunc = this[intrinsic.name];\n if (!intrinsicFunc) {\n throw new CfnEvaluationException(`CloudFormation function ${intrinsic.name} is not supported`);\n }\n const argsAsArray = Array.isArray(intrinsic.args) ? intrinsic.args : [intrinsic.args];\n return intrinsicFunc.apply(this, argsAsArray);\n }\n async 'Fn::Join'(separator, args) {\n const evaluatedArgs = await self.evaluateCfnExpression(args);\n return evaluatedArgs.join(separator);\n }\n async 'Fn::Split'(separator, args) {\n const evaluatedArgs = await self.evaluateCfnExpression(args);\n return evaluatedArgs.split(separator);\n }\n async 'Fn::Select'(index, args) {\n const evaluatedArgs = await self.evaluateCfnExpression(args);\n return evaluatedArgs[index];\n }\n async Ref(logicalId) {\n const refTarget = await self.findRefTarget(logicalId);\n if (refTarget) {\n return refTarget;\n }\n else {\n throw new CfnEvaluationException(`Parameter or resource '${logicalId}' could not be found for evaluation`);\n }\n }\n async 'Fn::GetAtt'(logicalId, attributeName) {\n // ToDo handle the 'logicalId.attributeName' form of Fn::GetAtt\n const attrValue = await self.findGetAttTarget(logicalId, attributeName);\n if (attrValue) {\n return attrValue;\n }\n else {\n throw new CfnEvaluationException(`Attribute '${attributeName}' of resource '${logicalId}' could not be found for evaluation`);\n }\n }\n async 'Fn::Sub'(template, explicitPlaceholders) {\n const placeholders = explicitPlaceholders ? await self.evaluateCfnExpression(explicitPlaceholders) : {};\n return asyncGlobalReplace(template, /\\${([^}]*)}/g, (key) => {\n if (key in placeholders) {\n return placeholders[key];\n }\n else {\n const splitKey = key.split('.');\n return splitKey.length === 1 ? this.Ref(key) : this['Fn::GetAtt'](splitKey[0], splitKey.slice(1).join('.'));\n }\n });\n }\n async 'Fn::ImportValue'(name) {\n const exported = await self.lookupExport.lookupExport(name);\n if (!exported) {\n throw new CfnEvaluationException(`Export '${name}' could not be found for evaluation`);\n }\n if (!exported.Value) {\n throw new CfnEvaluationException(`Export '${name}' exists without a value`);\n }\n return exported.Value;\n }\n }\n if (cfnExpression == null) {\n return cfnExpression;\n }\n if (Array.isArray(cfnExpression)) {\n // Small arrays in practice\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(cfnExpression.map((expr) => this.evaluateCfnExpression(expr)));\n }\n if (typeof cfnExpression === 'object') {\n const intrinsic = this.parseIntrinsic(cfnExpression);\n if (intrinsic) {\n return new CfnIntrinsics().evaluateIntrinsic(intrinsic);\n }\n else {\n const ret = {};\n for (const [key, val] of Object.entries(cfnExpression)) {\n ret[key] = await this.evaluateCfnExpression(val);\n }\n return ret;\n }\n }\n return cfnExpression;\n }\n /**\n * Best-effort attempt to construct the Cloud Control API primary identifier for a resource.\n *\n * Cloud Control compound identifiers are pipe-delimited, ordered by the `primaryIdentifier`\n * array in the resource type schema (e.g. `DatabaseName|TableName` for `AWS::Glue::Table`).\n *\n * CloudFormation's `PhysicalResourceId` (the `physicalId` parameter here) is the `Ref` return\n * value for the resource, which is resource-type-specific and may not correspond to the Cloud\n * Control Primary Identifier.\n *\n * For properties present in the template, we resolve them directly. For properties NOT in the\n * template (e.g. service-generated read-only values), we fall back to `physicalId`. This is\n * only correct when:\n *\n * - Exactly one property in the identifier is missing from the template, AND\n * - That property happens to be the one that `Ref` returns for this resource type.\n *\n * If multiple properties are missing, `physicalId` is reused for all of them.\n */\n async evaluateCloudControlIdentifier(logicalId, resourceType, physicalId) {\n if (resourceType in exports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS) {\n const primaryProps = exports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS[resourceType];\n const parts = [];\n for (const propName of primaryProps) {\n const templateVal = this.getResourceProperty(logicalId, propName);\n if (templateVal) {\n parts.push(await this.evaluateCfnExpression(templateVal));\n }\n else {\n // Not in template — assume this is the Ref return value. See doc comment for caveats.\n parts.push(physicalId);\n }\n }\n return parts.join('|');\n }\n return physicalId;\n }\n getResourceProperty(logicalId, propertyName) {\n return this.template.Resources?.[logicalId]?.Properties?.[propertyName];\n }\n metadataFor(logicalId) {\n return (0, resource_metadata_1.resourceMetadata)(this.stackArtifact, logicalId);\n }\n references(logicalId, templateElement) {\n if (typeof templateElement === 'string') {\n return logicalId === templateElement;\n }\n if (templateElement == null) {\n return false;\n }\n if (Array.isArray(templateElement)) {\n return templateElement.some((el) => this.references(logicalId, el));\n }\n if (typeof templateElement === 'object') {\n return Object.values(templateElement).some((el) => this.references(logicalId, el));\n }\n return false;\n }\n parseIntrinsic(x) {\n const keys = Object.keys(x);\n if (keys.length === 1 && (keys[0].startsWith('Fn::') || keys[0] === 'Ref')) {\n return {\n name: keys[0],\n args: x[keys[0]],\n };\n }\n return undefined;\n }\n async findRefTarget(logicalId) {\n // first, check to see if the Ref is a Parameter who's value we have\n if (logicalId === 'AWS::URLSuffix') {\n if (!this.cachedUrlSuffix) {\n this.cachedUrlSuffix = await this.sdk.getUrlSuffix(this.region);\n }\n return this.cachedUrlSuffix;\n }\n // Try finding the ref in the passed in parameters\n const parameterTarget = this.context[logicalId];\n if (parameterTarget) {\n return parameterTarget;\n }\n // If not in the passed in parameters, see if there is a default value in the template parameter that was not passed in\n const defaultParameterValue = this.template.Parameters?.[logicalId]?.Default;\n if (defaultParameterValue) {\n return defaultParameterValue;\n }\n // if it's not a Parameter, we need to search in the current Stack resources\n return this.findGetAttTarget(logicalId);\n }\n async findGetAttTarget(logicalId, attribute) {\n // Handle case where the attribute is referencing a stack output (used in nested stacks to share parameters)\n // See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-cloudformation.html#w2ab1c17c23c19b5\n if (logicalId === 'Outputs' && attribute) {\n return this.evaluateCfnExpression(this.template.Outputs[attribute]?.Value);\n }\n const stackResources = await this.stackResources.listStackResources();\n const foundResource = stackResources.find((sr) => sr.LogicalResourceId === logicalId);\n if (!foundResource) {\n return undefined;\n }\n if (foundResource.ResourceType == 'AWS::CloudFormation::Stack' && attribute?.startsWith('Outputs.')) {\n const dependantStack = this.findNestedStack(logicalId, this.nestedStacks);\n if (!dependantStack || !dependantStack.physicalName) {\n // this is a newly created nested stack and cannot be hotswapped\n return undefined;\n }\n const evaluateCfnTemplate = await this.createNestedEvaluateCloudFormationTemplate(dependantStack.physicalName, dependantStack.generatedTemplate, dependantStack.generatedTemplate.Parameters);\n // Split Outputs. into 'Outputs' and '' and recursively call evaluate\n return evaluateCfnTemplate.evaluateCfnExpression({\n 'Fn::GetAtt': attribute.split(/\\.(.*)/s),\n });\n }\n // now, we need to format the appropriate identifier depending on the resource type,\n // and the requested attribute name\n return this.formatResourceAttribute(foundResource, attribute);\n }\n findNestedStack(logicalId, nestedStacks) {\n for (const nestedStackLogicalId of Object.keys(nestedStacks)) {\n if (nestedStackLogicalId === logicalId) {\n return nestedStacks[nestedStackLogicalId];\n }\n const checkInNestedChildStacks = this.findNestedStack(logicalId, nestedStacks[nestedStackLogicalId].nestedStackTemplates);\n if (checkInNestedChildStacks)\n return checkInNestedChildStacks;\n }\n return undefined;\n }\n async formatResourceAttribute(resource, attribute) {\n const physicalId = resource.PhysicalResourceId;\n // no attribute means Ref expression, for which we use the physical ID directly\n if (!attribute) {\n return physicalId;\n }\n const resourceTypeFormats = RESOURCE_TYPE_ATTRIBUTES_FORMATS[resource.ResourceType];\n if (resourceTypeFormats) {\n const attributeFormatFunc = resourceTypeFormats[attribute];\n if (attributeFormatFunc) {\n const service = this.getServiceOfResource(resource);\n const resourceTypeArnPart = this.getResourceTypeArnPartOfResource(resource);\n return attributeFormatFunc({\n partition: this.partition,\n service,\n region: this.region,\n account: this.account,\n resourceType: resourceTypeArnPart,\n resourceName: physicalId,\n });\n }\n }\n try {\n const identifier = await this.evaluateCloudControlIdentifier(resource.LogicalResourceId, resource.ResourceType, physicalId);\n const response = await this.cloudControl.getResource({\n TypeName: resource.ResourceType,\n Identifier: identifier,\n });\n const props = JSON.parse(response.ResourceDescription?.Properties ?? '{}');\n if (attribute in props) {\n return props[attribute];\n }\n }\n catch (error) {\n // Cloud Control lookup failed — fall through to the error below\n throw new CfnEvaluationException(`Could not find '${attribute}' attribute of the '${resource.ResourceType}' resource because` +\n `an error occured while attempting to retrieve the information: '${error.name}:${error.message}'`);\n }\n throw new CfnEvaluationException(`We don't support the '${attribute}' attribute of the '${resource.ResourceType}' resource. This is a CDK limitation. ` +\n 'Please report it at https://github.com/aws/aws-cdk/issues/new/choose');\n }\n getServiceOfResource(resource) {\n return resource.ResourceType.split('::')[1].toLowerCase();\n }\n getResourceTypeArnPartOfResource(resource) {\n const resourceType = resource.ResourceType;\n const specialCaseResourceType = RESOURCE_TYPE_SPECIAL_NAMES[resourceType]?.resourceType;\n return specialCaseResourceType\n ? specialCaseResourceType\n : // this is the default case\n resourceType.split('::')[2].toLowerCase();\n }\n}\nexports.EvaluateCloudFormationTemplate = EvaluateCloudFormationTemplate;\n/**\n * Resources where the CloudFormation physical resource ID ({ Ref }) disagrees\n * with the Cloud Control API primary identifier.\n *\n * Maps resource type to the CC primary identifier property names.\n * For resources NOT in this map, the physical resource ID can be used\n * directly as the CC primary identifier.\n */\nexports.RESOURCE_TYPE_PRIMARY_IDENTIFIERS = {\n 'AWS::ApiGateway::Authorizer': ['RestApiId', 'AuthorizerId'],\n 'AWS::ApiGateway::Deployment': ['DeploymentId', 'RestApiId'],\n 'AWS::ApiGateway::Model': ['RestApiId', 'Name'],\n 'AWS::ApiGateway::RequestValidator': ['RestApiId', 'RequestValidatorId'],\n 'AWS::ApiGateway::DocumentationPart': ['DocumentationPartId', 'RestApiId'],\n 'AWS::ApiGateway::Resource': ['RestApiId', 'ResourceId'],\n 'AWS::ApiGateway::Stage': ['RestApiId', 'StageName'],\n 'AWS::ApiGatewayV2::ApiMapping': ['ApiMappingId', 'DomainName'],\n 'AWS::ApiGatewayV2::Authorizer': ['AuthorizerId', 'ApiId'],\n 'AWS::ApiGatewayV2::Deployment': ['ApiId', 'DeploymentId'],\n 'AWS::ApiGatewayV2::Integration': ['ApiId', 'IntegrationId'],\n 'AWS::ApiGatewayV2::IntegrationResponse': ['ApiId', 'IntegrationId', 'IntegrationResponseId'],\n 'AWS::ApiGatewayV2::Model': ['ApiId', 'ModelId'],\n 'AWS::ApiGatewayV2::Route': ['ApiId', 'RouteId'],\n 'AWS::ApiGatewayV2::RouteResponse': ['ApiId', 'RouteId', 'RouteResponseId'],\n 'AWS::ApiGatewayV2::Stage': ['Id'],\n 'AWS::AppConfig::ConfigurationProfile': ['ApplicationId', 'ConfigurationProfileId'],\n 'AWS::AppConfig::Environment': ['ApplicationId', 'EnvironmentId'],\n 'AWS::AppConfig::HostedConfigurationVersion': ['ApplicationId', 'ConfigurationProfileId', 'VersionNumber'],\n 'AWS::AppMesh::GatewayRoute': ['Id'],\n 'AWS::AppMesh::Mesh': ['Id'],\n 'AWS::AppMesh::Route': ['Id'],\n 'AWS::AppMesh::VirtualGateway': ['Id'],\n 'AWS::AppMesh::VirtualNode': ['Id'],\n 'AWS::AppMesh::VirtualRouter': ['Id'],\n 'AWS::AppMesh::VirtualService': ['Id'],\n 'AWS::AppSync::ApiKey': ['ApiKeyId'],\n 'AWS::AppSync::GraphQLApi': ['ApiId'],\n 'AWS::Batch::JobDefinition': ['JobDefinitionName'],\n 'AWS::CloudWatch::InsightRule': ['Id'],\n 'AWS::CodeBuild::Project': ['Id'],\n 'AWS::CodeBuild::ReportGroup': ['Id'],\n 'AWS::CodeDeploy::DeploymentGroup': ['ApplicationName', 'DeploymentGroupName'],\n 'AWS::CodePipeline::Webhook': ['Id'],\n 'AWS::Cognito::UserPoolClient': ['UserPoolId', 'ClientId'],\n 'AWS::Cognito::UserPoolDomain': ['UserPoolId', 'Domain'],\n 'AWS::Cognito::UserPoolGroup': ['UserPoolId', 'GroupName'],\n 'AWS::Cognito::UserPoolIdentityProvider': ['UserPoolId', 'ProviderName'],\n 'AWS::Cognito::UserPoolResourceServer': ['UserPoolId', 'Identifier'],\n 'AWS::Cognito::UserPoolUser': ['UserPoolId', 'Username'],\n 'AWS::DAX::Cluster': ['Id'],\n 'AWS::DAX::ParameterGroup': ['Id'],\n 'AWS::DAX::SubnetGroup': ['Id'],\n 'AWS::DMS::EventSubscription': ['Id'],\n 'AWS::EC2::EIP': ['PublicIp', 'AllocationId'],\n 'AWS::ECS::Service': ['ServiceArn', 'Cluster'],\n 'AWS::ElastiCache::CacheCluster': ['Id'],\n 'AWS::ElasticLoadBalancing::LoadBalancer': ['Id'],\n 'AWS::ElastiCache::User': ['UserId'],\n 'AWS::Elasticsearch::Domain': ['Id'],\n 'AWS::Events::Rule': ['Arn'],\n 'AWS::EventSchemas::RegistryPolicy': ['Id'],\n 'AWS::Glue::DevEndpoint': ['Id'],\n 'AWS::Glue::Workflow': ['Id'],\n 'AWS::IoT::Policy': ['Id'],\n 'AWS::Logs::LogStream': ['LogGroupName', 'LogStreamName'],\n 'AWS::Logs::SubscriptionFilter': ['FilterName', 'LogGroupName'],\n 'AWS::MediaConvert::JobTemplate': ['Id'],\n 'AWS::MediaConvert::Preset': ['Id'],\n 'AWS::MediaConvert::Queue': ['Id'],\n 'AWS::Route53::RecordSet': ['Id'],\n 'AWS::SageMaker::Device': ['Device/DeviceName'],\n 'AWS::SecretsManager::ResourcePolicy': ['Id'],\n 'AWS::SecretsManager::SecretTargetAttachment': ['Id'],\n 'AWS::SES::ReceiptRuleSet': ['Id'],\n 'AWS::SSM::MaintenanceWindowTarget': ['WindowId', 'WindowTargetId'],\n 'AWS::SSM::MaintenanceWindowTask': ['WindowId', 'WindowTaskId'],\n};\n/**\n * Usually, we deduce the names of the service and the resource type used to format the ARN from the CloudFormation resource type.\n * For a CFN type like AWS::Service::ResourceType, the second segment becomes the service name, and the third the resource type\n * (after converting both of them to lowercase).\n * However, some resource types break this simple convention, and we need to special-case them.\n * This map is for storing those cases.\n */\nconst RESOURCE_TYPE_SPECIAL_NAMES = {\n 'AWS::Events::EventBus': {\n resourceType: 'event-bus',\n },\n};\nconst RESOURCE_TYPE_ATTRIBUTES_FORMATS = {\n 'AWS::IAM::Role': { Arn: iamArnFmt },\n 'AWS::IAM::User': { Arn: iamArnFmt },\n 'AWS::IAM::Group': { Arn: iamArnFmt },\n 'AWS::S3::Bucket': { Arn: s3ArnFmt },\n 'AWS::Lambda::Function': { Arn: stdColonResourceArnFmt },\n 'AWS::Events::EventBus': {\n Arn: stdSlashResourceArnFmt,\n // the name attribute of the EventBus is the same as the Ref\n Name: (parts) => parts.resourceName,\n },\n 'AWS::DynamoDB::Table': { Arn: stdSlashResourceArnFmt },\n 'AWS::AppSync::GraphQLApi': { ApiId: appsyncGraphQlApiApiIdFmt },\n 'AWS::AppSync::FunctionConfiguration': {\n FunctionId: appsyncGraphQlFunctionIDFmt,\n },\n 'AWS::AppSync::DataSource': { Name: appsyncGraphQlDataSourceNameFmt },\n 'AWS::KMS::Key': { Arn: stdSlashResourceArnFmt },\n};\nfunction iamArnFmt(parts) {\n // we skip region for IAM resources\n return `arn:${parts.partition}:${parts.service}::${parts.account}:${parts.resourceType}/${parts.resourceName}`;\n}\nfunction s3ArnFmt(parts) {\n // we skip account, region and resourceType for S3 resources\n return `arn:${parts.partition}:${parts.service}:::${parts.resourceName}`;\n}\nfunction stdColonResourceArnFmt(parts) {\n // this is a standard format for ARNs like: arn:aws:service:region:account:resourceType:resourceName\n return `arn:${parts.partition}:${parts.service}:${parts.region}:${parts.account}:${parts.resourceType}:${parts.resourceName}`;\n}\nfunction stdSlashResourceArnFmt(parts) {\n // this is a standard format for ARNs like: arn:aws:service:region:account:resourceType/resourceName\n return `arn:${parts.partition}:${parts.service}:${parts.region}:${parts.account}:${parts.resourceType}/${parts.resourceName}`;\n}\nfunction appsyncGraphQlApiApiIdFmt(parts) {\n // arn:aws:appsync:us-east-1:111111111111:apis/\n return parts.resourceName.split('/')[1];\n}\nfunction appsyncGraphQlFunctionIDFmt(parts) {\n // arn:aws:appsync:us-east-1:111111111111:apis//functions/\n return parts.resourceName.split('/')[3];\n}\nfunction appsyncGraphQlDataSourceNameFmt(parts) {\n // arn:aws:appsync:us-east-1:111111111111:apis//datasources/\n return parts.resourceName.split('/')[3];\n}\nasync function asyncGlobalReplace(str, regex, cb) {\n if (!regex.global) {\n throw new toolkit_error_1.ToolkitError('RegexMissingGlobalFlag', 'Regex must be created with /g flag');\n }\n const ret = new Array();\n let start = 0;\n while (true) {\n const match = regex.exec(str);\n if (!match) {\n break;\n }\n ret.push(str.substring(start, match.index));\n ret.push(await cb(match[1]));\n start = regex.lastIndex;\n }\n ret.push(str.slice(start));\n return ret.join('');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdGUtY2xvdWRmb3JtYXRpb24tdGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSwrREFBMkQ7QUFHM0QsNERBQXdEO0FBTXhELE1BQWEsc0JBQXNCO0lBSWQ7SUFDQTtJQUpYLGNBQWMsQ0FBOEM7SUFFcEUsWUFDbUIsR0FBUSxFQUNSLFNBQWlCO1FBRGpCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDUixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRXBDLENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzthQUMxQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQWpCRCx3REFpQkM7QUFNRCxNQUFhLGlCQUFrQixTQUFRLEtBQUs7Q0FDM0M7QUFERCw4Q0FDQztBQUVELE1BQWEsZ0JBQWdCO0lBR0U7SUFGckIsYUFBYSxHQUErQixFQUFFLENBQUM7SUFFdkQsWUFBNkIsR0FBUTtRQUFSLFFBQUcsR0FBSCxHQUFHLENBQUs7SUFDckMsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBWTtRQUM3QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BCLFNBQVMsQ0FBQyxzQ0FBc0M7WUFDbEQsQ0FBQztZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztZQUUvQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxtQkFBbUI7SUFDdkMsQ0FBQztJQUVELGlCQUFpQjtJQUNULEtBQUssQ0FBQyxDQUFDLFdBQVc7UUFDeEIsSUFBSSxTQUFTLEdBQXVCLFNBQVMsQ0FBQztRQUM5QyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxRQUFRLEdBQTZCLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNqSCxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQy9DLE1BQU0sU0FBUyxDQUFDO1lBQ2xCLENBQUM7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN4QixPQUFPO1lBQ1QsQ0FBQztZQUNELFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF4Q0QsNENBd0NDO0FBRUQsTUFBYSxzQkFBdUIsU0FBUSxLQUFLO0NBQ2hEO0FBREQsd0RBQ0M7QUFzQkQsTUFBYSw4QkFBOEI7SUFDekIsYUFBYSxDQUE4QjtJQUMxQyxTQUFTLENBQVM7SUFDbEIsUUFBUSxDQUFXO0lBQ25CLE9BQU8sQ0FBdUI7SUFDOUIsT0FBTyxDQUFTO0lBQ2hCLE1BQU0sQ0FBUztJQUNmLFNBQVMsQ0FBUztJQUNsQixHQUFHLENBQU07SUFDVCxZQUFZLENBRTNCO0lBQ2UsY0FBYyxDQUFxQjtJQUNuQyxZQUFZLENBQWU7SUFFcEMsZUFBZSxDQUFxQjtJQUNwQyxhQUFhLENBQWtDO0lBRXZELFlBQVksS0FBMEM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQy9CLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTTtZQUMzQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsU0FBUztZQUNqQyxHQUFHLEtBQUssQ0FBQyxVQUFVO1NBQ3BCLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFckIsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFFN0Msc0NBQXNDO1FBQ3RDLHNHQUFzRztRQUN0Ryw4R0FBOEc7UUFDOUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTNFLDZGQUE2RjtRQUM3RixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsbUZBQW1GO0lBQzVFLEtBQUssQ0FBQywwQ0FBMEMsQ0FDckQsU0FBaUIsRUFDakIsY0FBd0IsRUFDeEIscUJBQXVEO1FBRXZELE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDaEYsT0FBTyxJQUFJLDhCQUE4QixDQUFDO1lBQ3hDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxTQUFTO1lBQ1QsUUFBUSxFQUFFLGNBQWM7WUFDeEIsVUFBVSxFQUFFLGVBQWU7WUFDM0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsNkJBQTZCLENBQ3hDLFNBQWlCLEVBQ2pCLHlCQUE4QjtRQUU5QixJQUFJLHlCQUF5QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQztnQkFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDckUsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsc0VBQXNFO2dCQUN0RSxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxDQUFDO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUI7UUFDaEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDdEUsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEtBQUssU0FBUyxDQUFDLEVBQUUsa0JBQWtCLENBQUM7SUFDN0YsQ0FBQztJQUVNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxZQUFvQjtRQUM1RCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN0RSxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsS0FBSyxZQUFZLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUNoRyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsU0FBaUI7UUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7UUFDNUMsS0FBSyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzlGLElBQUksU0FBUyxLQUFLLGlCQUFpQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9FLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ1AsR0FBSSxXQUFtQjtvQkFDdkIsU0FBUyxFQUFFLGlCQUFpQjtpQkFDN0IsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTSxLQUFLLENBQUMscUJBQXFCLENBQUMsYUFBa0I7UUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCOzs7Ozs7O1dBT0c7UUFDSCxNQUFNLGFBQWE7WUFDVixpQkFBaUIsQ0FBQyxTQUFvQjtnQkFDM0MsTUFBTSxhQUFhLEdBQUksSUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNuQixNQUFNLElBQUksc0JBQXNCLENBQUMsMkJBQTJCLFNBQVMsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLENBQUM7Z0JBQ2pHLENBQUM7Z0JBRUQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUV0RixPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELENBQUM7WUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQWlCLEVBQUUsSUFBVztnQkFDN0MsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFpQixFQUFFLElBQVM7Z0JBQzVDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3RCxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYSxFQUFFLElBQVc7Z0JBQzNDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3RCxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFpQjtnQkFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNkLE9BQU8sU0FBUyxDQUFDO2dCQUNuQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxJQUFJLHNCQUFzQixDQUFDLDBCQUEwQixTQUFTLHFDQUFxQyxDQUFDLENBQUM7Z0JBQzdHLENBQUM7WUFDSCxDQUFDO1lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFpQixFQUFFLGFBQXFCO2dCQUN6RCwrREFBK0Q7Z0JBQy9ELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDZCxPQUFPLFNBQVMsQ0FBQztnQkFDbkIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIsY0FBYyxhQUFhLGtCQUFrQixTQUFTLHFDQUFxQyxDQUM1RixDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFnQixFQUFFLG9CQUFxRDtnQkFDckYsTUFBTSxZQUFZLEdBQUcsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFFeEcsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQzFELElBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUN4QixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0IsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2hDLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDOUcsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBWTtnQkFDbEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNkLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLElBQUkscUNBQXFDLENBQUMsQ0FBQztnQkFDekYsQ0FBQztnQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNwQixNQUFNLElBQUksc0JBQXNCLENBQUMsV0FBVyxJQUFJLDBCQUEwQixDQUFDLENBQUM7Z0JBQzlFLENBQUM7Z0JBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3hCLENBQUM7U0FDRjtRQUVELElBQUksYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNqQywyQkFBMkI7WUFDM0Isd0VBQXdFO1lBQ3hFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFFRCxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxPQUFPLElBQUksYUFBYSxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztnQkFDRCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSSxLQUFLLENBQUMsOEJBQThCLENBQUMsU0FBaUIsRUFBRSxZQUFvQixFQUFFLFVBQWtCO1FBQ3JHLElBQUksWUFBWSxJQUFJLHlDQUFpQyxFQUFFLENBQUM7WUFDdEQsTUFBTSxZQUFZLEdBQUcseUNBQWlDLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckUsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO1lBRTNCLEtBQUssTUFBTSxRQUFRLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2hCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLHNGQUFzRjtvQkFDdEYsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxTQUFpQixFQUFFLFlBQW9CO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLE9BQU8sSUFBQSxvQ0FBZ0IsRUFBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxVQUFVLENBQUMsU0FBaUIsRUFBRSxlQUFvQjtRQUN4RCxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sU0FBUyxLQUFLLGVBQWUsQ0FBQztRQUN2QyxDQUFDO1FBRUQsSUFBSSxlQUFlLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGNBQWMsQ0FBQyxDQUFNO1FBQzNCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0UsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDYixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQWlCO1FBQzNDLG9FQUFvRTtRQUNwRSxJQUFJLFNBQVMsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM5QixDQUFDO1FBRUQsa0RBQWtEO1FBQ2xELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixPQUFPLGVBQWUsQ0FBQztRQUN6QixDQUFDO1FBRUQsdUhBQXVIO1FBQ3ZILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDN0UsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQzFCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsQ0FBQztRQUVELDRFQUE0RTtRQUM1RSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsU0FBa0I7UUFDbEUsNEdBQTRHO1FBQzVHLG1IQUFtSDtRQUNuSCxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQUksYUFBYSxDQUFDLFlBQVksSUFBSSw0QkFBNEIsSUFBSSxTQUFTLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDcEcsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BELGdFQUFnRTtnQkFDaEUsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsMENBQTBDLENBQy9FLGNBQWMsQ0FBQyxZQUFZLEVBQzNCLGNBQWMsQ0FBQyxpQkFBaUIsRUFDaEMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFVBQVcsQ0FDN0MsQ0FBQztZQUVGLHVGQUF1RjtZQUN2RixPQUFPLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDO2dCQUMvQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7YUFDekMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELG9GQUFvRjtRQUNwRixtQ0FBbUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxlQUFlLENBQ3JCLFNBQWlCLEVBQ2pCLFlBRUM7UUFFRCxLQUFLLE1BQU0sb0JBQW9CLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzdELElBQUksb0JBQW9CLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sWUFBWSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUNELE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FDbkQsU0FBUyxFQUNULFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLG9CQUFvQixDQUN4RCxDQUFDO1lBQ0YsSUFBSSx3QkFBd0I7Z0JBQUUsT0FBTyx3QkFBd0IsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUE4QixFQUFFLFNBQTZCO1FBQ2pHLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUUvQywrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVELE1BQU0sbUJBQW1CLEdBQUcsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLFlBQWEsQ0FBQyxDQUFDO1FBQ3JGLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNELElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUUsT0FBTyxtQkFBbUIsQ0FBQztvQkFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUN6QixPQUFPO29CQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNyQixZQUFZLEVBQUUsbUJBQW1CO29CQUNqQyxZQUFZLEVBQUUsVUFBVztpQkFDMUIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLENBQUMsaUJBQWtCLEVBQUUsUUFBUSxDQUFDLFlBQWEsRUFBRSxVQUFXLENBQUMsQ0FBQztZQUUvSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO2dCQUNuRCxRQUFRLEVBQUUsUUFBUSxDQUFDLFlBQWE7Z0JBQ2hDLFVBQVUsRUFBRSxVQUFVO2FBQ3ZCLENBQUMsQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMzRSxJQUFJLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLGdFQUFnRTtZQUNoRSxNQUFNLElBQUksc0JBQXNCLENBQUMsbUJBQW1CLFNBQVMsdUJBQXVCLFFBQVEsQ0FBQyxZQUFZLG9CQUFvQjtnQkFDM0gsbUVBQW1FLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUVELE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIseUJBQXlCLFNBQVMsdUJBQXVCLFFBQVEsQ0FBQyxZQUFZLHdDQUF3QztZQUNwSCxzRUFBc0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUE4QjtRQUN6RCxPQUFPLFFBQVEsQ0FBQyxZQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTyxnQ0FBZ0MsQ0FBQyxRQUE4QjtRQUNyRSxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBYSxDQUFDO1FBQzVDLE1BQU0sdUJBQXVCLEdBQUcsMkJBQTJCLENBQUMsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFDO1FBQ3hGLE9BQU8sdUJBQXVCO1lBQzVCLENBQUMsQ0FBQyx1QkFBdUI7WUFDekIsQ0FBQyxDQUFDLDJCQUEyQjtnQkFDN0IsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUF2YkQsd0VBdWJDO0FBV0Q7Ozs7Ozs7R0FPRztBQUNVLFFBQUEsaUNBQWlDLEdBQWlDO0lBQzdFLDZCQUE2QixFQUFFLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQztJQUM1RCw2QkFBNkIsRUFBRSxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7SUFDNUQsd0JBQXdCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQy9DLG1DQUFtQyxFQUFFLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDO0lBQ3hFLG9DQUFvQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDO0lBQzFFLDJCQUEyQixFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQztJQUN4RCx3QkFBd0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDcEQsK0JBQStCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDO0lBQy9ELCtCQUErQixFQUFFLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQztJQUMxRCwrQkFBK0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUM7SUFDMUQsZ0NBQWdDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDO0lBQzVELHdDQUF3QyxFQUFFLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQztJQUM3RiwwQkFBMEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7SUFDaEQsMEJBQTBCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO0lBQ2hELGtDQUFrQyxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztJQUMzRSwwQkFBMEIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNsQyxzQ0FBc0MsRUFBRSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQztJQUNuRiw2QkFBNkIsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUM7SUFDakUsNENBQTRDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxDQUFDO0lBQzFHLDRCQUE0QixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3BDLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzVCLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzdCLDhCQUE4QixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3RDLDJCQUEyQixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ25DLDZCQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3JDLDhCQUE4QixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3RDLHNCQUFzQixFQUFFLENBQUMsVUFBVSxDQUFDO0lBQ3BDLDBCQUEwQixFQUFFLENBQUMsT0FBTyxDQUFDO0lBQ3JDLDJCQUEyQixFQUFFLENBQUMsbUJBQW1CLENBQUM7SUFDbEQsOEJBQThCLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDdEMseUJBQXlCLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDakMsNkJBQTZCLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckMsa0NBQWtDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztJQUM5RSw0QkFBNEIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNwQyw4QkFBOEIsRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7SUFDMUQsOEJBQThCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBQ3hELDZCQUE2QixFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztJQUMxRCx3Q0FBd0MsRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUM7SUFDeEUsc0NBQXNDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQ3BFLDRCQUE0QixFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQztJQUN4RCxtQkFBbUIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMzQiwwQkFBMEIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNsQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMvQiw2QkFBNkIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNyQyxlQUFlLEVBQUUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDO0lBQzdDLG1CQUFtQixFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztJQUM5QyxnQ0FBZ0MsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN4Qyx5Q0FBeUMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNqRCx3QkFBd0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUNwQyw0QkFBNEIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNwQyxtQkFBbUIsRUFBRSxDQUFDLEtBQUssQ0FBQztJQUM1QixtQ0FBbUMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMzQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNoQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUM3QixrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMxQixzQkFBc0IsRUFBRSxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUM7SUFDekQsK0JBQStCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDO0lBQy9ELGdDQUFnQyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3hDLDJCQUEyQixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ25DLDBCQUEwQixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2xDLHlCQUF5QixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2pDLHdCQUF3QixFQUFFLENBQUMsbUJBQW1CLENBQUM7SUFDL0MscUNBQXFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDN0MsNkNBQTZDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckQsMEJBQTBCLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDbEMsbUNBQW1DLEVBQUUsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkUsaUNBQWlDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDO0NBQ2hFLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLDJCQUEyQixHQUU3QjtJQUNGLHVCQUF1QixFQUFFO1FBQ3ZCLFlBQVksRUFBRSxXQUFXO0tBQzFCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sZ0NBQWdDLEdBRWxDO0lBQ0YsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFO0lBQ3BDLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRTtJQUNwQyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUU7SUFDckMsaUJBQWlCLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO0lBQ3BDLHVCQUF1QixFQUFFLEVBQUUsR0FBRyxFQUFFLHNCQUFzQixFQUFFO0lBQ3hELHVCQUF1QixFQUFFO1FBQ3ZCLEdBQUcsRUFBRSxzQkFBc0I7UUFDM0IsNERBQTREO1FBQzVELElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVk7S0FDcEM7SUFDRCxzQkFBc0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxzQkFBc0IsRUFBRTtJQUN2RCwwQkFBMEIsRUFBRSxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRTtJQUNoRSxxQ0FBcUMsRUFBRTtRQUNyQyxVQUFVLEVBQUUsMkJBQTJCO0tBQ3hDO0lBQ0QsMEJBQTBCLEVBQUUsRUFBRSxJQUFJLEVBQUUsK0JBQStCLEVBQUU7SUFDckUsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLHNCQUFzQixFQUFFO0NBQ2pELENBQUM7QUFFRixTQUFTLFNBQVMsQ0FBQyxLQUFlO0lBQ2hDLG1DQUFtQztJQUNuQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7QUFDakgsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEtBQWU7SUFDL0IsNERBQTREO0lBQzVELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLE1BQU0sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQzNFLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEtBQWU7SUFDN0Msb0dBQW9HO0lBQ3BHLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQ2hJLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEtBQWU7SUFDN0Msb0dBQW9HO0lBQ3BHLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQ2hJLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLEtBQWU7SUFDaEQsc0RBQXNEO0lBQ3RELE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsS0FBZTtJQUNsRCw2RUFBNkU7SUFDN0UsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxLQUFlO0lBQ3RELHlFQUF5RTtJQUN6RSxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFPRCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFrQztJQUM5RixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHdCQUF3QixFQUFFLG9DQUFvQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFDaEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNaLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNSLENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFM0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEV4cG9ydCwgTGlzdEV4cG9ydHNDb21tYW5kT3V0cHV0LCBTdGFja1Jlc291cmNlU3VtbWFyeSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi9uZXN0ZWQtc3RhY2staGVscGVycyc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlIH0gZnJvbSAnLi9zdGFjay1oZWxwZXJzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IElDbG91ZENvbnRyb2xDbGllbnQsIFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZU1ldGFkYXRhIH0gZnJvbSAnLi4vcmVzb3VyY2UtbWV0YWRhdGEnO1xuaW1wb3J0IHsgcmVzb3VyY2VNZXRhZGF0YSB9IGZyb20gJy4uL3Jlc291cmNlLW1ldGFkYXRhJztcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0U3RhY2tSZXNvdXJjZXMge1xuICBsaXN0U3RhY2tSZXNvdXJjZXMoKTogUHJvbWlzZTxTdGFja1Jlc291cmNlU3VtbWFyeVtdPjtcbn1cblxuZXhwb3J0IGNsYXNzIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgaW1wbGVtZW50cyBMaXN0U3RhY2tSZXNvdXJjZXMge1xuICBwcml2YXRlIHN0YWNrUmVzb3VyY2VzOiBQcm9taXNlPFN0YWNrUmVzb3VyY2VTdW1tYXJ5W10+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2RrOiBTREssXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGFja05hbWU6IHN0cmluZyxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdFN0YWNrUmVzb3VyY2VzKCk6IFByb21pc2U8U3RhY2tSZXNvdXJjZVN1bW1hcnlbXT4ge1xuICAgIGlmICh0aGlzLnN0YWNrUmVzb3VyY2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3RhY2tSZXNvdXJjZXMgPSB0aGlzLnNkay5jbG91ZEZvcm1hdGlvbigpLmxpc3RTdGFja1Jlc291cmNlcyh7XG4gICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tSZXNvdXJjZXM7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29rdXBFeHBvcnQge1xuICBsb29rdXBFeHBvcnQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxFeHBvcnQgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgY2xhc3MgTG9va3VwRXhwb3J0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5cbmV4cG9ydCBjbGFzcyBMYXp5TG9va3VwRXhwb3J0IGltcGxlbWVudHMgTG9va3VwRXhwb3J0IHtcbiAgcHJpdmF0ZSBjYWNoZWRFeHBvcnRzOiB7IFtuYW1lOiBzdHJpbmddOiBFeHBvcnQgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2RrOiBTREspIHtcbiAgfVxuXG4gIGFzeW5jIGxvb2t1cEV4cG9ydChuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEV4cG9ydCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICh0aGlzLmNhY2hlZEV4cG9ydHNbbmFtZV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlZEV4cG9ydHNbbmFtZV07XG4gICAgfVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBjZm5FeHBvcnQgb2YgdGhpcy5saXN0RXhwb3J0cygpKSB7XG4gICAgICBpZiAoIWNmbkV4cG9ydC5OYW1lKSB7XG4gICAgICAgIGNvbnRpbnVlOyAvLyBpZ25vcmUgYW55IHJlc3VsdCB0aGF0IG9taXRzIGEgbmFtZVxuICAgICAgfVxuICAgICAgdGhpcy5jYWNoZWRFeHBvcnRzW2NmbkV4cG9ydC5OYW1lXSA9IGNmbkV4cG9ydDtcblxuICAgICAgaWYgKGNmbkV4cG9ydC5OYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiBjZm5FeHBvcnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZXhwb3J0IG5vdCBmb3VuZFxuICB9XG5cbiAgLy8gVE9ETzogUGFnaW5hdGVcbiAgcHJpdmF0ZSBhc3luYyAqbGlzdEV4cG9ydHMoKSB7XG4gICAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCByZXNwb25zZTogTGlzdEV4cG9ydHNDb21tYW5kT3V0cHV0ID0gYXdhaXQgdGhpcy5zZGsuY2xvdWRGb3JtYXRpb24oKS5saXN0RXhwb3J0cyh7IE5leHRUb2tlbjogbmV4dFRva2VuIH0pO1xuICAgICAgZm9yIChjb25zdCBjZm5FeHBvcnQgb2YgcmVzcG9uc2UuRXhwb3J0cyA/PyBbXSkge1xuICAgICAgICB5aWVsZCBjZm5FeHBvcnQ7XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2UuTmV4dFRva2VuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG5leHRUb2tlbiA9IHJlc3BvbnNlLk5leHRUb2tlbjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENmbkV2YWx1YXRpb25FeGNlcHRpb24gZXh0ZW5kcyBFcnJvciB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgTG9naWNhbElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IFR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgUHJvcGVydGllczogeyBbcDogc3RyaW5nXTogYW55IH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlUHJvcHMge1xuICByZWFkb25seSBzdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIHJlYWRvbmx5IHN0YWNrTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBUZW1wbGF0ZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogeyBbcGFyYW1ldGVyTmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBzZGs6IFNESztcbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tzPzoge1xuICAgIFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXM7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUge1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tBcnRpZmFjdDogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2RrOiBTREs7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmVzdGVkU3RhY2tzOiB7XG4gICAgW25lc3RlZFN0YWNrTG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcztcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja1Jlc291cmNlczogTGlzdFN0YWNrUmVzb3VyY2VzO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvb2t1cEV4cG9ydDogTG9va3VwRXhwb3J0O1xuXG4gIHByaXZhdGUgY2FjaGVkVXJsU3VmZml4OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2Nsb3VkQ29udHJvbDogSUNsb3VkQ29udHJvbENsaWVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlUHJvcHMpIHtcbiAgICB0aGlzLnN0YWNrQXJ0aWZhY3QgPSBwcm9wcy5zdGFja0FydGlmYWN0O1xuICAgIHRoaXMuc3RhY2tOYW1lID0gcHJvcHMuc3RhY2tOYW1lID8/IHByb3BzLnN0YWNrQXJ0aWZhY3Quc3RhY2tOYW1lO1xuICAgIHRoaXMudGVtcGxhdGUgPSBwcm9wcy50ZW1wbGF0ZSA/PyBwcm9wcy5zdGFja0FydGlmYWN0LnRlbXBsYXRlO1xuICAgIHRoaXMuY29udGV4dCA9IHtcbiAgICAgICdBV1M6OkFjY291bnRJZCc6IHByb3BzLmFjY291bnQsXG4gICAgICAnQVdTOjpSZWdpb24nOiBwcm9wcy5yZWdpb24sXG4gICAgICAnQVdTOjpQYXJ0aXRpb24nOiBwcm9wcy5wYXJ0aXRpb24sXG4gICAgICAuLi5wcm9wcy5wYXJhbWV0ZXJzLFxuICAgIH07XG4gICAgdGhpcy5hY2NvdW50ID0gcHJvcHMuYWNjb3VudDtcbiAgICB0aGlzLnJlZ2lvbiA9IHByb3BzLnJlZ2lvbjtcbiAgICB0aGlzLnBhcnRpdGlvbiA9IHByb3BzLnBhcnRpdGlvbjtcbiAgICB0aGlzLnNkayA9IHByb3BzLnNkaztcblxuICAgIC8vIFdlIG5lZWQgbmFtZXMgb2YgbmVzdGVkIHN0YWNrIHNvIHdlIGNhbiBldmFsdWF0ZSBjcm9zcyBzdGFjayByZWZlcmVuY2VzXG4gICAgdGhpcy5uZXN0ZWRTdGFja3MgPSBwcm9wcy5uZXN0ZWRTdGFja3MgPz8ge307XG5cbiAgICAvLyBUaGUgY3VycmVudCByZXNvdXJjZXMgb2YgdGhlIFN0YWNrLlxuICAgIC8vIFdlIG5lZWQgdGhlbSB0byBmaWd1cmUgb3V0IHRoZSBwaHlzaWNhbCBuYW1lIG9mIGEgcmVzb3VyY2UgaW4gY2FzZSBpdCB3YXNuJ3Qgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLlxuICAgIC8vIFdlIGZldGNoIGl0IGxhemlseSwgdG8gc2F2ZSBhIHNlcnZpY2UgY2FsbCwgaW4gY2FzZSBhbGwgaG90c3dhcHBlZCByZXNvdXJjZXMgaGF2ZSB0aGVpciBwaHlzaWNhbCBuYW1lcyBzZXQuXG4gICAgdGhpcy5zdGFja1Jlc291cmNlcyA9IG5ldyBMYXp5TGlzdFN0YWNrUmVzb3VyY2VzKHRoaXMuc2RrLCB0aGlzLnN0YWNrTmFtZSk7XG5cbiAgICAvLyBDbG91ZEZvcm1hdGlvbiBFeHBvcnRzIGxvb2t1cCB0byBiZSBhYmxlIHRvIHJlc29sdmUgRm46OkltcG9ydFZhbHVlIGludHJpbnNpY3MgaW4gdGVtcGxhdGVcbiAgICB0aGlzLmxvb2t1cEV4cG9ydCA9IG5ldyBMYXp5TG9va3VwRXhwb3J0KHRoaXMuc2RrKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNsb3VkQ29udHJvbCgpOiBJQ2xvdWRDb250cm9sQ2xpZW50IHtcbiAgICBpZiAoIXRoaXMuX2Nsb3VkQ29udHJvbCkge1xuICAgICAgdGhpcy5fY2xvdWRDb250cm9sID0gdGhpcy5zZGsuY2xvdWRDb250cm9sKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jbG91ZENvbnRyb2w7XG4gIH1cblxuICAvLyBjbG9uZXMgY3VycmVudCBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgb2JqZWN0LCBidXQgdXBkYXRlcyB0aGUgc3RhY2sgbmFtZVxuICBwdWJsaWMgYXN5bmMgY3JlYXRlTmVzdGVkRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIG5lc3RlZFRlbXBsYXRlOiBUZW1wbGF0ZSxcbiAgICBuZXN0ZWRTdGFja1BhcmFtZXRlcnM6IHsgW3BhcmFtZXRlck5hbWU6IHN0cmluZ106IGFueSB9LFxuICApIHtcbiAgICBjb25zdCBldmFsdWF0ZWRQYXJhbXMgPSBhd2FpdCB0aGlzLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihuZXN0ZWRTdGFja1BhcmFtZXRlcnMpO1xuICAgIHJldHVybiBuZXcgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKHtcbiAgICAgIHN0YWNrQXJ0aWZhY3Q6IHRoaXMuc3RhY2tBcnRpZmFjdCxcbiAgICAgIHN0YWNrTmFtZSxcbiAgICAgIHRlbXBsYXRlOiBuZXN0ZWRUZW1wbGF0ZSxcbiAgICAgIHBhcmFtZXRlcnM6IGV2YWx1YXRlZFBhcmFtcyxcbiAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICBwYXJ0aXRpb246IHRoaXMucGFydGl0aW9uLFxuICAgICAgc2RrOiB0aGlzLnNkayxcbiAgICAgIG5lc3RlZFN0YWNrczogdGhpcy5uZXN0ZWRTdGFja3MsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZXN0YWJsaXNoUmVzb3VyY2VQaHlzaWNhbE5hbWUoXG4gICAgbG9naWNhbElkOiBzdHJpbmcsXG4gICAgcGh5c2ljYWxOYW1lSW5DZm5UZW1wbGF0ZTogYW55LFxuICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmIChwaHlzaWNhbE5hbWVJbkNmblRlbXBsYXRlICE9IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihwaHlzaWNhbE5hbWVJbkNmblRlbXBsYXRlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gSWYgd2UgY2FuJ3QgZXZhbHVhdGUgdGhlIHJlc291cmNlJ3MgbmFtZSBDbG91ZEZvcm1hdGlvbiBleHByZXNzaW9uLFxuICAgICAgICAvLyBqdXN0IGxvb2sgaXQgdXAgaW4gdGhlIGN1cnJlbnRseSBkZXBsb3llZCBTdGFja1xuICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbikpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbmRQaHlzaWNhbE5hbWVGb3IobG9naWNhbElkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmaW5kUGh5c2ljYWxOYW1lRm9yKGxvZ2ljYWxJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzdGFja1Jlc291cmNlcyA9IGF3YWl0IHRoaXMuc3RhY2tSZXNvdXJjZXMubGlzdFN0YWNrUmVzb3VyY2VzKCk7XG4gICAgcmV0dXJuIHN0YWNrUmVzb3VyY2VzLmZpbmQoKHNyKSA9PiBzci5Mb2dpY2FsUmVzb3VyY2VJZCA9PT0gbG9naWNhbElkKT8uUGh5c2ljYWxSZXNvdXJjZUlkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpbmRMb2dpY2FsSWRGb3JQaHlzaWNhbE5hbWUocGh5c2ljYWxOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5zdGFja1Jlc291cmNlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICByZXR1cm4gc3RhY2tSZXNvdXJjZXMuZmluZCgoc3IpID0+IHNyLlBoeXNpY2FsUmVzb3VyY2VJZCA9PT0gcGh5c2ljYWxOYW1lKT8uTG9naWNhbFJlc291cmNlSWQ7XG4gIH1cblxuICBwdWJsaWMgZmluZFJlZmVyZW5jZXNUbyhsb2dpY2FsSWQ6IHN0cmluZyk6IEFycmF5PFJlc291cmNlRGVmaW5pdGlvbj4ge1xuICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxSZXNvdXJjZURlZmluaXRpb24+KCk7XG4gICAgZm9yIChjb25zdCBbcmVzb3VyY2VMb2dpY2FsSWQsIHJlc291cmNlRGVmXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnRlbXBsYXRlPy5SZXNvdXJjZXMgPz8ge30pKSB7XG4gICAgICBpZiAobG9naWNhbElkICE9PSByZXNvdXJjZUxvZ2ljYWxJZCAmJiB0aGlzLnJlZmVyZW5jZXMobG9naWNhbElkLCByZXNvdXJjZURlZikpIHtcbiAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgIC4uLihyZXNvdXJjZURlZiBhcyBhbnkpLFxuICAgICAgICAgIExvZ2ljYWxJZDogcmVzb3VyY2VMb2dpY2FsSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihjZm5FeHByZXNzaW9uOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIC8qKlxuICAgICAqIEV2YWx1YXRlcyBDbG91ZEZvcm1hdGlvbiBpbnRyaW5zaWMgZnVuY3Rpb25zXG4gICAgICpcbiAgICAgKiBOb3RlIHRoYXQgc3VwcG9ydGVkIGludHJpbnNpYyBmdW5jdGlvbnMgYXJlIGRvY3VtZW50ZWQgaW4gUkVBRE1FLm1kIC0tIHBsZWFzZSB1cGRhdGVcbiAgICAgKiBsaXN0IG9mIHN1cHBvcnRlZCBmdW5jdGlvbnMgd2hlbiBhZGRpbmcgbmV3IGV2YWx1YXRpb25zXG4gICAgICpcbiAgICAgKiBTZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2ludHJpbnNpYy1mdW5jdGlvbi1yZWZlcmVuY2UuaHRtbFxuICAgICAqL1xuICAgIGNsYXNzIENmbkludHJpbnNpY3Mge1xuICAgICAgcHVibGljIGV2YWx1YXRlSW50cmluc2ljKGludHJpbnNpYzogSW50cmluc2ljKTogYW55IHtcbiAgICAgICAgY29uc3QgaW50cmluc2ljRnVuYyA9ICh0aGlzIGFzIGFueSlbaW50cmluc2ljLm5hbWVdO1xuICAgICAgICBpZiAoIWludHJpbnNpY0Z1bmMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbihgQ2xvdWRGb3JtYXRpb24gZnVuY3Rpb24gJHtpbnRyaW5zaWMubmFtZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJnc0FzQXJyYXkgPSBBcnJheS5pc0FycmF5KGludHJpbnNpYy5hcmdzKSA/IGludHJpbnNpYy5hcmdzIDogW2ludHJpbnNpYy5hcmdzXTtcblxuICAgICAgICByZXR1cm4gaW50cmluc2ljRnVuYy5hcHBseSh0aGlzLCBhcmdzQXNBcnJheSk7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jICdGbjo6Sm9pbicoc2VwYXJhdG9yOiBzdHJpbmcsIGFyZ3M6IGFueVtdKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgZXZhbHVhdGVkQXJncyA9IGF3YWl0IHNlbGYuZXZhbHVhdGVDZm5FeHByZXNzaW9uKGFyZ3MpO1xuICAgICAgICByZXR1cm4gZXZhbHVhdGVkQXJncy5qb2luKHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jICdGbjo6U3BsaXQnKHNlcGFyYXRvcjogc3RyaW5nLCBhcmdzOiBhbnkpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRBcmdzID0gYXdhaXQgc2VsZi5ldmFsdWF0ZUNmbkV4cHJlc3Npb24oYXJncyk7XG4gICAgICAgIHJldHVybiBldmFsdWF0ZWRBcmdzLnNwbGl0KHNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jICdGbjo6U2VsZWN0JyhpbmRleDogbnVtYmVyLCBhcmdzOiBhbnlbXSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRlZEFyZ3MgPSBhd2FpdCBzZWxmLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihhcmdzKTtcbiAgICAgICAgcmV0dXJuIGV2YWx1YXRlZEFyZ3NbaW5kZXhdO1xuICAgICAgfVxuXG4gICAgICBhc3luYyBSZWYobG9naWNhbElkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCByZWZUYXJnZXQgPSBhd2FpdCBzZWxmLmZpbmRSZWZUYXJnZXQobG9naWNhbElkKTtcbiAgICAgICAgaWYgKHJlZlRhcmdldCkge1xuICAgICAgICAgIHJldHVybiByZWZUYXJnZXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oYFBhcmFtZXRlciBvciByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBjb3VsZCBub3QgYmUgZm91bmQgZm9yIGV2YWx1YXRpb25gKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhc3luYyAnRm46OkdldEF0dCcobG9naWNhbElkOiBzdHJpbmcsIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIC8vIFRvRG8gaGFuZGxlIHRoZSAnbG9naWNhbElkLmF0dHJpYnV0ZU5hbWUnIGZvcm0gb2YgRm46OkdldEF0dFxuICAgICAgICBjb25zdCBhdHRyVmFsdWUgPSBhd2FpdCBzZWxmLmZpbmRHZXRBdHRUYXJnZXQobG9naWNhbElkLCBhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgaWYgKGF0dHJWYWx1ZSkge1xuICAgICAgICAgIHJldHVybiBhdHRyVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oXG4gICAgICAgICAgICBgQXR0cmlidXRlICcke2F0dHJpYnV0ZU5hbWV9JyBvZiByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBjb3VsZCBub3QgYmUgZm91bmQgZm9yIGV2YWx1YXRpb25gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXN5bmMgJ0ZuOjpTdWInKHRlbXBsYXRlOiBzdHJpbmcsIGV4cGxpY2l0UGxhY2Vob2xkZXJzPzogeyBbdmFyaWFibGU6IHN0cmluZ106IHN0cmluZyB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzID0gZXhwbGljaXRQbGFjZWhvbGRlcnMgPyBhd2FpdCBzZWxmLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihleHBsaWNpdFBsYWNlaG9sZGVycykgOiB7fTtcblxuICAgICAgICByZXR1cm4gYXN5bmNHbG9iYWxSZXBsYWNlKHRlbXBsYXRlLCAvXFwkeyhbXn1dKil9L2csIChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoa2V5IGluIHBsYWNlaG9sZGVycykge1xuICAgICAgICAgICAgcmV0dXJuIHBsYWNlaG9sZGVyc1trZXldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdEtleSA9IGtleS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgcmV0dXJuIHNwbGl0S2V5Lmxlbmd0aCA9PT0gMSA/IHRoaXMuUmVmKGtleSkgOiB0aGlzWydGbjo6R2V0QXR0J10oc3BsaXRLZXlbMF0sIHNwbGl0S2V5LnNsaWNlKDEpLmpvaW4oJy4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgYXN5bmMgJ0ZuOjpJbXBvcnRWYWx1ZScobmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgZXhwb3J0ZWQgPSBhd2FpdCBzZWxmLmxvb2t1cEV4cG9ydC5sb29rdXBFeHBvcnQobmFtZSk7XG4gICAgICAgIGlmICghZXhwb3J0ZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbihgRXhwb3J0ICcke25hbWV9JyBjb3VsZCBub3QgYmUgZm91bmQgZm9yIGV2YWx1YXRpb25gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWV4cG9ydGVkLlZhbHVlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oYEV4cG9ydCAnJHtuYW1lfScgZXhpc3RzIHdpdGhvdXQgYSB2YWx1ZWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBvcnRlZC5WYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2ZuRXhwcmVzc2lvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY2ZuRXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShjZm5FeHByZXNzaW9uKSkge1xuICAgICAgLy8gU21hbGwgYXJyYXlzIGluIHByYWN0aWNlXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChjZm5FeHByZXNzaW9uLm1hcCgoZXhwcikgPT4gdGhpcy5ldmFsdWF0ZUNmbkV4cHJlc3Npb24oZXhwcikpKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNmbkV4cHJlc3Npb24gPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBpbnRyaW5zaWMgPSB0aGlzLnBhcnNlSW50cmluc2ljKGNmbkV4cHJlc3Npb24pO1xuICAgICAgaWYgKGludHJpbnNpYykge1xuICAgICAgICByZXR1cm4gbmV3IENmbkludHJpbnNpY3MoKS5ldmFsdWF0ZUludHJpbnNpYyhpbnRyaW5zaWMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmV0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhjZm5FeHByZXNzaW9uKSkge1xuICAgICAgICAgIHJldFtrZXldID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odmFsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjZm5FeHByZXNzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlc3QtZWZmb3J0IGF0dGVtcHQgdG8gY29uc3RydWN0IHRoZSBDbG91ZCBDb250cm9sIEFQSSBwcmltYXJ5IGlkZW50aWZpZXIgZm9yIGEgcmVzb3VyY2UuXG4gICAqXG4gICAqIENsb3VkIENvbnRyb2wgY29tcG91bmQgaWRlbnRpZmllcnMgYXJlIHBpcGUtZGVsaW1pdGVkLCBvcmRlcmVkIGJ5IHRoZSBgcHJpbWFyeUlkZW50aWZpZXJgXG4gICAqIGFycmF5IGluIHRoZSByZXNvdXJjZSB0eXBlIHNjaGVtYSAoZS5nLiBgRGF0YWJhc2VOYW1lfFRhYmxlTmFtZWAgZm9yIGBBV1M6OkdsdWU6OlRhYmxlYCkuXG4gICAqXG4gICAqIENsb3VkRm9ybWF0aW9uJ3MgYFBoeXNpY2FsUmVzb3VyY2VJZGAgKHRoZSBgcGh5c2ljYWxJZGAgcGFyYW1ldGVyIGhlcmUpIGlzIHRoZSBgUmVmYCByZXR1cm5cbiAgICogdmFsdWUgZm9yIHRoZSByZXNvdXJjZSwgd2hpY2ggaXMgcmVzb3VyY2UtdHlwZS1zcGVjaWZpYyBhbmQgbWF5IG5vdCBjb3JyZXNwb25kIHRvIHRoZSBDbG91ZFxuICAgKiBDb250cm9sIFByaW1hcnkgSWRlbnRpZmllci5cbiAgICpcbiAgICogRm9yIHByb3BlcnRpZXMgcHJlc2VudCBpbiB0aGUgdGVtcGxhdGUsIHdlIHJlc29sdmUgdGhlbSBkaXJlY3RseS4gRm9yIHByb3BlcnRpZXMgTk9UIGluIHRoZVxuICAgKiB0ZW1wbGF0ZSAoZS5nLiBzZXJ2aWNlLWdlbmVyYXRlZCByZWFkLW9ubHkgdmFsdWVzKSwgd2UgZmFsbCBiYWNrIHRvIGBwaHlzaWNhbElkYC4gVGhpcyBpc1xuICAgKiBvbmx5IGNvcnJlY3Qgd2hlbjpcbiAgICpcbiAgICogLSBFeGFjdGx5IG9uZSBwcm9wZXJ0eSBpbiB0aGUgaWRlbnRpZmllciBpcyBtaXNzaW5nIGZyb20gdGhlIHRlbXBsYXRlLCBBTkRcbiAgICogLSBUaGF0IHByb3BlcnR5IGhhcHBlbnMgdG8gYmUgdGhlIG9uZSB0aGF0IGBSZWZgIHJldHVybnMgZm9yIHRoaXMgcmVzb3VyY2UgdHlwZS5cbiAgICpcbiAgICogSWYgbXVsdGlwbGUgcHJvcGVydGllcyBhcmUgbWlzc2luZywgYHBoeXNpY2FsSWRgIGlzIHJldXNlZCBmb3IgYWxsIG9mIHRoZW0uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXZhbHVhdGVDbG91ZENvbnRyb2xJZGVudGlmaWVyKGxvZ2ljYWxJZDogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZywgcGh5c2ljYWxJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAocmVzb3VyY2VUeXBlIGluIFJFU09VUkNFX1RZUEVfUFJJTUFSWV9JREVOVElGSUVSUykge1xuICAgICAgY29uc3QgcHJpbWFyeVByb3BzID0gUkVTT1VSQ0VfVFlQRV9QUklNQVJZX0lERU5USUZJRVJTW3Jlc291cmNlVHlwZV07XG4gICAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBwcmltYXJ5UHJvcHMpIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVWYWwgPSB0aGlzLmdldFJlc291cmNlUHJvcGVydHkobG9naWNhbElkLCBwcm9wTmFtZSk7XG4gICAgICAgIGlmICh0ZW1wbGF0ZVZhbCkge1xuICAgICAgICAgIHBhcnRzLnB1c2goYXdhaXQgdGhpcy5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odGVtcGxhdGVWYWwpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBOb3QgaW4gdGVtcGxhdGUg4oCUIGFzc3VtZSB0aGlzIGlzIHRoZSBSZWYgcmV0dXJuIHZhbHVlLiBTZWUgZG9jIGNvbW1lbnQgZm9yIGNhdmVhdHMuXG4gICAgICAgICAgcGFydHMucHVzaChwaHlzaWNhbElkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJ3wnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBoeXNpY2FsSWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVzb3VyY2VQcm9wZXJ0eShsb2dpY2FsSWQ6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlLlJlc291cmNlcz8uW2xvZ2ljYWxJZF0/LlByb3BlcnRpZXM/Lltwcm9wZXJ0eU5hbWVdO1xuICB9XG5cbiAgcHVibGljIG1ldGFkYXRhRm9yKGxvZ2ljYWxJZDogc3RyaW5nKTogUmVzb3VyY2VNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHJlc291cmNlTWV0YWRhdGEodGhpcy5zdGFja0FydGlmYWN0LCBsb2dpY2FsSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZlcmVuY2VzKGxvZ2ljYWxJZDogc3RyaW5nLCB0ZW1wbGF0ZUVsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdGVtcGxhdGVFbGVtZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGxvZ2ljYWxJZCA9PT0gdGVtcGxhdGVFbGVtZW50O1xuICAgIH1cblxuICAgIGlmICh0ZW1wbGF0ZUVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRlbXBsYXRlRWxlbWVudCkpIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZUVsZW1lbnQuc29tZSgoZWwpID0+IHRoaXMucmVmZXJlbmNlcyhsb2dpY2FsSWQsIGVsKSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0ZW1wbGF0ZUVsZW1lbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0ZW1wbGF0ZUVsZW1lbnQpLnNvbWUoKGVsKSA9PiB0aGlzLnJlZmVyZW5jZXMobG9naWNhbElkLCBlbCkpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VJbnRyaW5zaWMoeDogYW55KTogSW50cmluc2ljIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoeCk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAxICYmIChrZXlzWzBdLnN0YXJ0c1dpdGgoJ0ZuOjonKSB8fCBrZXlzWzBdID09PSAnUmVmJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGtleXNbMF0sXG4gICAgICAgIGFyZ3M6IHhba2V5c1swXV0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kUmVmVGFyZ2V0KGxvZ2ljYWxJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAvLyBmaXJzdCwgY2hlY2sgdG8gc2VlIGlmIHRoZSBSZWYgaXMgYSBQYXJhbWV0ZXIgd2hvJ3MgdmFsdWUgd2UgaGF2ZVxuICAgIGlmIChsb2dpY2FsSWQgPT09ICdBV1M6OlVSTFN1ZmZpeCcpIHtcbiAgICAgIGlmICghdGhpcy5jYWNoZWRVcmxTdWZmaXgpIHtcbiAgICAgICAgdGhpcy5jYWNoZWRVcmxTdWZmaXggPSBhd2FpdCB0aGlzLnNkay5nZXRVcmxTdWZmaXgodGhpcy5yZWdpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWRVcmxTdWZmaXg7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGZpbmRpbmcgdGhlIHJlZiBpbiB0aGUgcGFzc2VkIGluIHBhcmFtZXRlcnNcbiAgICBjb25zdCBwYXJhbWV0ZXJUYXJnZXQgPSB0aGlzLmNvbnRleHRbbG9naWNhbElkXTtcbiAgICBpZiAocGFyYW1ldGVyVGFyZ2V0KSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyVGFyZ2V0O1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBpbiB0aGUgcGFzc2VkIGluIHBhcmFtZXRlcnMsIHNlZSBpZiB0aGVyZSBpcyBhIGRlZmF1bHQgdmFsdWUgaW4gdGhlIHRlbXBsYXRlIHBhcmFtZXRlciB0aGF0IHdhcyBub3QgcGFzc2VkIGluXG4gICAgY29uc3QgZGVmYXVsdFBhcmFtZXRlclZhbHVlID0gdGhpcy50ZW1wbGF0ZS5QYXJhbWV0ZXJzPy5bbG9naWNhbElkXT8uRGVmYXVsdDtcbiAgICBpZiAoZGVmYXVsdFBhcmFtZXRlclZhbHVlKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFBhcmFtZXRlclZhbHVlO1xuICAgIH1cblxuICAgIC8vIGlmIGl0J3Mgbm90IGEgUGFyYW1ldGVyLCB3ZSBuZWVkIHRvIHNlYXJjaCBpbiB0aGUgY3VycmVudCBTdGFjayByZXNvdXJjZXNcbiAgICByZXR1cm4gdGhpcy5maW5kR2V0QXR0VGFyZ2V0KGxvZ2ljYWxJZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZpbmRHZXRBdHRUYXJnZXQobG9naWNhbElkOiBzdHJpbmcsIGF0dHJpYnV0ZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgLy8gSGFuZGxlIGNhc2Ugd2hlcmUgdGhlIGF0dHJpYnV0ZSBpcyByZWZlcmVuY2luZyBhIHN0YWNrIG91dHB1dCAodXNlZCBpbiBuZXN0ZWQgc3RhY2tzIHRvIHNoYXJlIHBhcmFtZXRlcnMpXG4gICAgLy8gU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3F1aWNrcmVmLWNsb3VkZm9ybWF0aW9uLmh0bWwjdzJhYjFjMTdjMjNjMTliNVxuICAgIGlmIChsb2dpY2FsSWQgPT09ICdPdXRwdXRzJyAmJiBhdHRyaWJ1dGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih0aGlzLnRlbXBsYXRlLk91dHB1dHNbYXR0cmlidXRlXT8uVmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5zdGFja1Jlc291cmNlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICBjb25zdCBmb3VuZFJlc291cmNlID0gc3RhY2tSZXNvdXJjZXMuZmluZCgoc3IpID0+IHNyLkxvZ2ljYWxSZXNvdXJjZUlkID09PSBsb2dpY2FsSWQpO1xuICAgIGlmICghZm91bmRSZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoZm91bmRSZXNvdXJjZS5SZXNvdXJjZVR5cGUgPT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyAmJiBhdHRyaWJ1dGU/LnN0YXJ0c1dpdGgoJ091dHB1dHMuJykpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGFudFN0YWNrID0gdGhpcy5maW5kTmVzdGVkU3RhY2sobG9naWNhbElkLCB0aGlzLm5lc3RlZFN0YWNrcyk7XG4gICAgICBpZiAoIWRlcGVuZGFudFN0YWNrIHx8ICFkZXBlbmRhbnRTdGFjay5waHlzaWNhbE5hbWUpIHtcbiAgICAgICAgLy8gdGhpcyBpcyBhIG5ld2x5IGNyZWF0ZWQgbmVzdGVkIHN0YWNrIGFuZCBjYW5ub3QgYmUgaG90c3dhcHBlZFxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZXZhbHVhdGVDZm5UZW1wbGF0ZSA9IGF3YWl0IHRoaXMuY3JlYXRlTmVzdGVkRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKFxuICAgICAgICBkZXBlbmRhbnRTdGFjay5waHlzaWNhbE5hbWUsXG4gICAgICAgIGRlcGVuZGFudFN0YWNrLmdlbmVyYXRlZFRlbXBsYXRlLFxuICAgICAgICBkZXBlbmRhbnRTdGFjay5nZW5lcmF0ZWRUZW1wbGF0ZS5QYXJhbWV0ZXJzISxcbiAgICAgICk7XG5cbiAgICAgIC8vIFNwbGl0IE91dHB1dHMuPHJlZk5hbWU+IGludG8gJ091dHB1dHMnIGFuZCAnPHJlZk5hbWU+JyBhbmQgcmVjdXJzaXZlbHkgY2FsbCBldmFsdWF0ZVxuICAgICAgcmV0dXJuIGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHtcbiAgICAgICAgJ0ZuOjpHZXRBdHQnOiBhdHRyaWJ1dGUuc3BsaXQoL1xcLiguKikvcyksXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gbm93LCB3ZSBuZWVkIHRvIGZvcm1hdCB0aGUgYXBwcm9wcmlhdGUgaWRlbnRpZmllciBkZXBlbmRpbmcgb24gdGhlIHJlc291cmNlIHR5cGUsXG4gICAgLy8gYW5kIHRoZSByZXF1ZXN0ZWQgYXR0cmlidXRlIG5hbWVcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRSZXNvdXJjZUF0dHJpYnV0ZShmb3VuZFJlc291cmNlLCBhdHRyaWJ1dGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTmVzdGVkU3RhY2soXG4gICAgbG9naWNhbElkOiBzdHJpbmcsXG4gICAgbmVzdGVkU3RhY2tzOiB7XG4gICAgICBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzO1xuICAgIH0sXG4gICk6IE5lc3RlZFN0YWNrVGVtcGxhdGVzIHwgdW5kZWZpbmVkIHtcbiAgICBmb3IgKGNvbnN0IG5lc3RlZFN0YWNrTG9naWNhbElkIG9mIE9iamVjdC5rZXlzKG5lc3RlZFN0YWNrcykpIHtcbiAgICAgIGlmIChuZXN0ZWRTdGFja0xvZ2ljYWxJZCA9PT0gbG9naWNhbElkKSB7XG4gICAgICAgIHJldHVybiBuZXN0ZWRTdGFja3NbbmVzdGVkU3RhY2tMb2dpY2FsSWRdO1xuICAgICAgfVxuICAgICAgY29uc3QgY2hlY2tJbk5lc3RlZENoaWxkU3RhY2tzID0gdGhpcy5maW5kTmVzdGVkU3RhY2soXG4gICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgbmVzdGVkU3RhY2tzW25lc3RlZFN0YWNrTG9naWNhbElkXS5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICAgICk7XG4gICAgICBpZiAoY2hlY2tJbk5lc3RlZENoaWxkU3RhY2tzKSByZXR1cm4gY2hlY2tJbk5lc3RlZENoaWxkU3RhY2tzO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmb3JtYXRSZXNvdXJjZUF0dHJpYnV0ZShyZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnksIGF0dHJpYnV0ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwaHlzaWNhbElkID0gcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkO1xuXG4gICAgLy8gbm8gYXR0cmlidXRlIG1lYW5zIFJlZiBleHByZXNzaW9uLCBmb3Igd2hpY2ggd2UgdXNlIHRoZSBwaHlzaWNhbCBJRCBkaXJlY3RseVxuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gcGh5c2ljYWxJZDtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZVR5cGVGb3JtYXRzID0gUkVTT1VSQ0VfVFlQRV9BVFRSSUJVVEVTX0ZPUk1BVFNbcmVzb3VyY2UuUmVzb3VyY2VUeXBlIV07XG4gICAgaWYgKHJlc291cmNlVHlwZUZvcm1hdHMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZUZvcm1hdEZ1bmMgPSByZXNvdXJjZVR5cGVGb3JtYXRzW2F0dHJpYnV0ZV07XG4gICAgICBpZiAoYXR0cmlidXRlRm9ybWF0RnVuYykge1xuICAgICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5nZXRTZXJ2aWNlT2ZSZXNvdXJjZShyZXNvdXJjZSk7XG4gICAgICAgIGNvbnN0IHJlc291cmNlVHlwZUFyblBhcnQgPSB0aGlzLmdldFJlc291cmNlVHlwZUFyblBhcnRPZlJlc291cmNlKHJlc291cmNlKTtcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZUZvcm1hdEZ1bmMoe1xuICAgICAgICAgIHBhcnRpdGlvbjogdGhpcy5wYXJ0aXRpb24sXG4gICAgICAgICAgc2VydmljZSxcbiAgICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlVHlwZUFyblBhcnQsXG4gICAgICAgICAgcmVzb3VyY2VOYW1lOiBwaHlzaWNhbElkISxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBhd2FpdCB0aGlzLmV2YWx1YXRlQ2xvdWRDb250cm9sSWRlbnRpZmllcihyZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZCEsIHJlc291cmNlLlJlc291cmNlVHlwZSEsIHBoeXNpY2FsSWQhKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsb3VkQ29udHJvbC5nZXRSZXNvdXJjZSh7XG4gICAgICAgIFR5cGVOYW1lOiByZXNvdXJjZS5SZXNvdXJjZVR5cGUhLFxuICAgICAgICBJZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBwcm9wcyA9IEpTT04ucGFyc2UocmVzcG9uc2UuUmVzb3VyY2VEZXNjcmlwdGlvbj8uUHJvcGVydGllcyA/PyAne30nKTtcbiAgICAgIGlmIChhdHRyaWJ1dGUgaW4gcHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzW2F0dHJpYnV0ZV07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgLy8gQ2xvdWQgQ29udHJvbCBsb29rdXAgZmFpbGVkIOKAlCBmYWxsIHRocm91Z2ggdG8gdGhlIGVycm9yIGJlbG93XG4gICAgICB0aHJvdyBuZXcgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbihgQ291bGQgbm90IGZpbmQgJyR7YXR0cmlidXRlfScgYXR0cmlidXRlIG9mIHRoZSAnJHtyZXNvdXJjZS5SZXNvdXJjZVR5cGV9JyByZXNvdXJjZSBiZWNhdXNlYCArXG4gICAgICAgIGBhbiBlcnJvciBvY2N1cmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gcmV0cmlldmUgdGhlIGluZm9ybWF0aW9uOiAnJHtlcnJvci5uYW1lfToke2Vycm9yLm1lc3NhZ2V9J2ApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBDZm5FdmFsdWF0aW9uRXhjZXB0aW9uKFxuICAgICAgYFdlIGRvbid0IHN1cHBvcnQgdGhlICcke2F0dHJpYnV0ZX0nIGF0dHJpYnV0ZSBvZiB0aGUgJyR7cmVzb3VyY2UuUmVzb3VyY2VUeXBlfScgcmVzb3VyY2UuIFRoaXMgaXMgYSBDREsgbGltaXRhdGlvbi4gYCArXG4gICAgICAgICdQbGVhc2UgcmVwb3J0IGl0IGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvbmV3L2Nob29zZScsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VydmljZU9mUmVzb3VyY2UocmVzb3VyY2U6IFN0YWNrUmVzb3VyY2VTdW1tYXJ5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb3VyY2UuUmVzb3VyY2VUeXBlIS5zcGxpdCgnOjonKVsxXS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXNvdXJjZVR5cGVBcm5QYXJ0T2ZSZXNvdXJjZShyZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IHJlc291cmNlLlJlc291cmNlVHlwZSE7XG4gICAgY29uc3Qgc3BlY2lhbENhc2VSZXNvdXJjZVR5cGUgPSBSRVNPVVJDRV9UWVBFX1NQRUNJQUxfTkFNRVNbcmVzb3VyY2VUeXBlXT8ucmVzb3VyY2VUeXBlO1xuICAgIHJldHVybiBzcGVjaWFsQ2FzZVJlc291cmNlVHlwZVxuICAgICAgPyBzcGVjaWFsQ2FzZVJlc291cmNlVHlwZVxuICAgICAgOiAvLyB0aGlzIGlzIHRoZSBkZWZhdWx0IGNhc2VcbiAgICAgIHJlc291cmNlVHlwZS5zcGxpdCgnOjonKVsyXS50b0xvd2VyQ2FzZSgpO1xuICB9XG59XG5cbmludGVyZmFjZSBBcm5QYXJ0cyB7XG4gIHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSByZXNvdXJjZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvdXJjZXMgd2hlcmUgdGhlIENsb3VkRm9ybWF0aW9uIHBoeXNpY2FsIHJlc291cmNlIElEICh7IFJlZiB9KSBkaXNhZ3JlZXNcbiAqIHdpdGggdGhlIENsb3VkIENvbnRyb2wgQVBJIHByaW1hcnkgaWRlbnRpZmllci5cbiAqXG4gKiBNYXBzIHJlc291cmNlIHR5cGUgdG8gdGhlIENDIHByaW1hcnkgaWRlbnRpZmllciBwcm9wZXJ0eSBuYW1lcy5cbiAqIEZvciByZXNvdXJjZXMgTk9UIGluIHRoaXMgbWFwLCB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgSUQgY2FuIGJlIHVzZWRcbiAqIGRpcmVjdGx5IGFzIHRoZSBDQyBwcmltYXJ5IGlkZW50aWZpZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9UWVBFX1BSSU1BUllfSURFTlRJRklFUlM6IHsgW3R5cGU6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7XG4gICdBV1M6OkFwaUdhdGV3YXk6OkF1dGhvcml6ZXInOiBbJ1Jlc3RBcGlJZCcsICdBdXRob3JpemVySWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6RGVwbG95bWVudCc6IFsnRGVwbG95bWVudElkJywgJ1Jlc3RBcGlJZCddLFxuICAnQVdTOjpBcGlHYXRld2F5OjpNb2RlbCc6IFsnUmVzdEFwaUlkJywgJ05hbWUnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6UmVxdWVzdFZhbGlkYXRvcic6IFsnUmVzdEFwaUlkJywgJ1JlcXVlc3RWYWxpZGF0b3JJZCddLFxuICAnQVdTOjpBcGlHYXRld2F5OjpEb2N1bWVudGF0aW9uUGFydCc6IFsnRG9jdW1lbnRhdGlvblBhcnRJZCcsICdSZXN0QXBpSWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6UmVzb3VyY2UnOiBbJ1Jlc3RBcGlJZCcsICdSZXNvdXJjZUlkJ10sXG4gICdBV1M6OkFwaUdhdGV3YXk6OlN0YWdlJzogWydSZXN0QXBpSWQnLCAnU3RhZ2VOYW1lJ10sXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZyc6IFsnQXBpTWFwcGluZ0lkJywgJ0RvbWFpbk5hbWUnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpBdXRob3JpemVyJzogWydBdXRob3JpemVySWQnLCAnQXBpSWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpEZXBsb3ltZW50JzogWydBcGlJZCcsICdEZXBsb3ltZW50SWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbic6IFsnQXBpSWQnLCAnSW50ZWdyYXRpb25JZCddLFxuICAnQVdTOjpBcGlHYXRld2F5VjI6OkludGVncmF0aW9uUmVzcG9uc2UnOiBbJ0FwaUlkJywgJ0ludGVncmF0aW9uSWQnLCAnSW50ZWdyYXRpb25SZXNwb25zZUlkJ10sXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6TW9kZWwnOiBbJ0FwaUlkJywgJ01vZGVsSWQnXSxcbiAgJ0FXUzo6QXBpR2F0ZXdheVYyOjpSb3V0ZSc6IFsnQXBpSWQnLCAnUm91dGVJZCddLFxuICAnQVdTOjpBcGlHYXRld2F5VjI6OlJvdXRlUmVzcG9uc2UnOiBbJ0FwaUlkJywgJ1JvdXRlSWQnLCAnUm91dGVSZXNwb25zZUlkJ10sXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnOiBbJ0lkJ10sXG4gICdBV1M6OkFwcENvbmZpZzo6Q29uZmlndXJhdGlvblByb2ZpbGUnOiBbJ0FwcGxpY2F0aW9uSWQnLCAnQ29uZmlndXJhdGlvblByb2ZpbGVJZCddLFxuICAnQVdTOjpBcHBDb25maWc6OkVudmlyb25tZW50JzogWydBcHBsaWNhdGlvbklkJywgJ0Vudmlyb25tZW50SWQnXSxcbiAgJ0FXUzo6QXBwQ29uZmlnOjpIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbic6IFsnQXBwbGljYXRpb25JZCcsICdDb25maWd1cmF0aW9uUHJvZmlsZUlkJywgJ1ZlcnNpb25OdW1iZXInXSxcbiAgJ0FXUzo6QXBwTWVzaDo6R2F0ZXdheVJvdXRlJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpNZXNoJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpSb3V0ZSc6IFsnSWQnXSxcbiAgJ0FXUzo6QXBwTWVzaDo6VmlydHVhbEdhdGV3YXknOiBbJ0lkJ10sXG4gICdBV1M6OkFwcE1lc2g6OlZpcnR1YWxOb2RlJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpWaXJ0dWFsUm91dGVyJzogWydJZCddLFxuICAnQVdTOjpBcHBNZXNoOjpWaXJ0dWFsU2VydmljZSc6IFsnSWQnXSxcbiAgJ0FXUzo6QXBwU3luYzo6QXBpS2V5JzogWydBcGlLZXlJZCddLFxuICAnQVdTOjpBcHBTeW5jOjpHcmFwaFFMQXBpJzogWydBcGlJZCddLFxuICAnQVdTOjpCYXRjaDo6Sm9iRGVmaW5pdGlvbic6IFsnSm9iRGVmaW5pdGlvbk5hbWUnXSxcbiAgJ0FXUzo6Q2xvdWRXYXRjaDo6SW5zaWdodFJ1bGUnOiBbJ0lkJ10sXG4gICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCc6IFsnSWQnXSxcbiAgJ0FXUzo6Q29kZUJ1aWxkOjpSZXBvcnRHcm91cCc6IFsnSWQnXSxcbiAgJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJzogWydBcHBsaWNhdGlvbk5hbWUnLCAnRGVwbG95bWVudEdyb3VwTmFtZSddLFxuICAnQVdTOjpDb2RlUGlwZWxpbmU6OldlYmhvb2snOiBbJ0lkJ10sXG4gICdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50JzogWydVc2VyUG9vbElkJywgJ0NsaWVudElkJ10sXG4gICdBV1M6OkNvZ25pdG86OlVzZXJQb29sRG9tYWluJzogWydVc2VyUG9vbElkJywgJ0RvbWFpbiddLFxuICAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbEdyb3VwJzogWydVc2VyUG9vbElkJywgJ0dyb3VwTmFtZSddLFxuICAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbElkZW50aXR5UHJvdmlkZXInOiBbJ1VzZXJQb29sSWQnLCAnUHJvdmlkZXJOYW1lJ10sXG4gICdBV1M6OkNvZ25pdG86OlVzZXJQb29sUmVzb3VyY2VTZXJ2ZXInOiBbJ1VzZXJQb29sSWQnLCAnSWRlbnRpZmllciddLFxuICAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbFVzZXInOiBbJ1VzZXJQb29sSWQnLCAnVXNlcm5hbWUnXSxcbiAgJ0FXUzo6REFYOjpDbHVzdGVyJzogWydJZCddLFxuICAnQVdTOjpEQVg6OlBhcmFtZXRlckdyb3VwJzogWydJZCddLFxuICAnQVdTOjpEQVg6OlN1Ym5ldEdyb3VwJzogWydJZCddLFxuICAnQVdTOjpETVM6OkV2ZW50U3Vic2NyaXB0aW9uJzogWydJZCddLFxuICAnQVdTOjpFQzI6OkVJUCc6IFsnUHVibGljSXAnLCAnQWxsb2NhdGlvbklkJ10sXG4gICdBV1M6OkVDUzo6U2VydmljZSc6IFsnU2VydmljZUFybicsICdDbHVzdGVyJ10sXG4gICdBV1M6OkVsYXN0aUNhY2hlOjpDYWNoZUNsdXN0ZXInOiBbJ0lkJ10sXG4gICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nOjpMb2FkQmFsYW5jZXInOiBbJ0lkJ10sXG4gICdBV1M6OkVsYXN0aUNhY2hlOjpVc2VyJzogWydVc2VySWQnXSxcbiAgJ0FXUzo6RWxhc3RpY3NlYXJjaDo6RG9tYWluJzogWydJZCddLFxuICAnQVdTOjpFdmVudHM6OlJ1bGUnOiBbJ0FybiddLFxuICAnQVdTOjpFdmVudFNjaGVtYXM6OlJlZ2lzdHJ5UG9saWN5JzogWydJZCddLFxuICAnQVdTOjpHbHVlOjpEZXZFbmRwb2ludCc6IFsnSWQnXSxcbiAgJ0FXUzo6R2x1ZTo6V29ya2Zsb3cnOiBbJ0lkJ10sXG4gICdBV1M6OklvVDo6UG9saWN5JzogWydJZCddLFxuICAnQVdTOjpMb2dzOjpMb2dTdHJlYW0nOiBbJ0xvZ0dyb3VwTmFtZScsICdMb2dTdHJlYW1OYW1lJ10sXG4gICdBV1M6OkxvZ3M6OlN1YnNjcmlwdGlvbkZpbHRlcic6IFsnRmlsdGVyTmFtZScsICdMb2dHcm91cE5hbWUnXSxcbiAgJ0FXUzo6TWVkaWFDb252ZXJ0OjpKb2JUZW1wbGF0ZSc6IFsnSWQnXSxcbiAgJ0FXUzo6TWVkaWFDb252ZXJ0OjpQcmVzZXQnOiBbJ0lkJ10sXG4gICdBV1M6Ok1lZGlhQ29udmVydDo6UXVldWUnOiBbJ0lkJ10sXG4gICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCc6IFsnSWQnXSxcbiAgJ0FXUzo6U2FnZU1ha2VyOjpEZXZpY2UnOiBbJ0RldmljZS9EZXZpY2VOYW1lJ10sXG4gICdBV1M6OlNlY3JldHNNYW5hZ2VyOjpSZXNvdXJjZVBvbGljeSc6IFsnSWQnXSxcbiAgJ0FXUzo6U2VjcmV0c01hbmFnZXI6OlNlY3JldFRhcmdldEF0dGFjaG1lbnQnOiBbJ0lkJ10sXG4gICdBV1M6OlNFUzo6UmVjZWlwdFJ1bGVTZXQnOiBbJ0lkJ10sXG4gICdBV1M6OlNTTTo6TWFpbnRlbmFuY2VXaW5kb3dUYXJnZXQnOiBbJ1dpbmRvd0lkJywgJ1dpbmRvd1RhcmdldElkJ10sXG4gICdBV1M6OlNTTTo6TWFpbnRlbmFuY2VXaW5kb3dUYXNrJzogWydXaW5kb3dJZCcsICdXaW5kb3dUYXNrSWQnXSxcbn07XG5cbi8qKlxuICogVXN1YWxseSwgd2UgZGVkdWNlIHRoZSBuYW1lcyBvZiB0aGUgc2VydmljZSBhbmQgdGhlIHJlc291cmNlIHR5cGUgdXNlZCB0byBmb3JtYXQgdGhlIEFSTiBmcm9tIHRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlLlxuICogRm9yIGEgQ0ZOIHR5cGUgbGlrZSBBV1M6OlNlcnZpY2U6OlJlc291cmNlVHlwZSwgdGhlIHNlY29uZCBzZWdtZW50IGJlY29tZXMgdGhlIHNlcnZpY2UgbmFtZSwgYW5kIHRoZSB0aGlyZCB0aGUgcmVzb3VyY2UgdHlwZVxuICogKGFmdGVyIGNvbnZlcnRpbmcgYm90aCBvZiB0aGVtIHRvIGxvd2VyY2FzZSkuXG4gKiBIb3dldmVyLCBzb21lIHJlc291cmNlIHR5cGVzIGJyZWFrIHRoaXMgc2ltcGxlIGNvbnZlbnRpb24sIGFuZCB3ZSBuZWVkIHRvIHNwZWNpYWwtY2FzZSB0aGVtLlxuICogVGhpcyBtYXAgaXMgZm9yIHN0b3JpbmcgdGhvc2UgY2FzZXMuXG4gKi9cbmNvbnN0IFJFU09VUkNFX1RZUEVfU1BFQ0lBTF9OQU1FUzoge1xuICBbdHlwZTogc3RyaW5nXTogeyByZXNvdXJjZVR5cGU6IHN0cmluZyB9O1xufSA9IHtcbiAgJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cyc6IHtcbiAgICByZXNvdXJjZVR5cGU6ICdldmVudC1idXMnLFxuICB9LFxufTtcblxuY29uc3QgUkVTT1VSQ0VfVFlQRV9BVFRSSUJVVEVTX0ZPUk1BVFM6IHtcbiAgW3R5cGU6IHN0cmluZ106IHsgW2F0dHJpYnV0ZTogc3RyaW5nXTogKHBhcnRzOiBBcm5QYXJ0cykgPT4gc3RyaW5nIH07XG59ID0ge1xuICAnQVdTOjpJQU06OlJvbGUnOiB7IEFybjogaWFtQXJuRm10IH0sXG4gICdBV1M6OklBTTo6VXNlcic6IHsgQXJuOiBpYW1Bcm5GbXQgfSxcbiAgJ0FXUzo6SUFNOjpHcm91cCc6IHsgQXJuOiBpYW1Bcm5GbXQgfSxcbiAgJ0FXUzo6UzM6OkJ1Y2tldCc6IHsgQXJuOiBzM0FybkZtdCB9LFxuICAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJzogeyBBcm46IHN0ZENvbG9uUmVzb3VyY2VBcm5GbXQgfSxcbiAgJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cyc6IHtcbiAgICBBcm46IHN0ZFNsYXNoUmVzb3VyY2VBcm5GbXQsXG4gICAgLy8gdGhlIG5hbWUgYXR0cmlidXRlIG9mIHRoZSBFdmVudEJ1cyBpcyB0aGUgc2FtZSBhcyB0aGUgUmVmXG4gICAgTmFtZTogKHBhcnRzKSA9PiBwYXJ0cy5yZXNvdXJjZU5hbWUsXG4gIH0sXG4gICdBV1M6OkR5bmFtb0RCOjpUYWJsZSc6IHsgQXJuOiBzdGRTbGFzaFJlc291cmNlQXJuRm10IH0sXG4gICdBV1M6OkFwcFN5bmM6OkdyYXBoUUxBcGknOiB7IEFwaUlkOiBhcHBzeW5jR3JhcGhRbEFwaUFwaUlkRm10IH0sXG4gICdBV1M6OkFwcFN5bmM6OkZ1bmN0aW9uQ29uZmlndXJhdGlvbic6IHtcbiAgICBGdW5jdGlvbklkOiBhcHBzeW5jR3JhcGhRbEZ1bmN0aW9uSURGbXQsXG4gIH0sXG4gICdBV1M6OkFwcFN5bmM6OkRhdGFTb3VyY2UnOiB7IE5hbWU6IGFwcHN5bmNHcmFwaFFsRGF0YVNvdXJjZU5hbWVGbXQgfSxcbiAgJ0FXUzo6S01TOjpLZXknOiB7IEFybjogc3RkU2xhc2hSZXNvdXJjZUFybkZtdCB9LFxufTtcblxuZnVuY3Rpb24gaWFtQXJuRm10KHBhcnRzOiBBcm5QYXJ0cyk6IHN0cmluZyB7XG4gIC8vIHdlIHNraXAgcmVnaW9uIGZvciBJQU0gcmVzb3VyY2VzXG4gIHJldHVybiBgYXJuOiR7cGFydHMucGFydGl0aW9ufToke3BhcnRzLnNlcnZpY2V9Ojoke3BhcnRzLmFjY291bnR9OiR7cGFydHMucmVzb3VyY2VUeXBlfS8ke3BhcnRzLnJlc291cmNlTmFtZX1gO1xufVxuXG5mdW5jdGlvbiBzM0FybkZtdChwYXJ0czogQXJuUGFydHMpOiBzdHJpbmcge1xuICAvLyB3ZSBza2lwIGFjY291bnQsIHJlZ2lvbiBhbmQgcmVzb3VyY2VUeXBlIGZvciBTMyByZXNvdXJjZXNcbiAgcmV0dXJuIGBhcm46JHtwYXJ0cy5wYXJ0aXRpb259OiR7cGFydHMuc2VydmljZX06Ojoke3BhcnRzLnJlc291cmNlTmFtZX1gO1xufVxuXG5mdW5jdGlvbiBzdGRDb2xvblJlc291cmNlQXJuRm10KHBhcnRzOiBBcm5QYXJ0cyk6IHN0cmluZyB7XG4gIC8vIHRoaXMgaXMgYSBzdGFuZGFyZCBmb3JtYXQgZm9yIEFSTnMgbGlrZTogYXJuOmF3czpzZXJ2aWNlOnJlZ2lvbjphY2NvdW50OnJlc291cmNlVHlwZTpyZXNvdXJjZU5hbWVcbiAgcmV0dXJuIGBhcm46JHtwYXJ0cy5wYXJ0aXRpb259OiR7cGFydHMuc2VydmljZX06JHtwYXJ0cy5yZWdpb259OiR7cGFydHMuYWNjb3VudH06JHtwYXJ0cy5yZXNvdXJjZVR5cGV9OiR7cGFydHMucmVzb3VyY2VOYW1lfWA7XG59XG5cbmZ1bmN0aW9uIHN0ZFNsYXNoUmVzb3VyY2VBcm5GbXQocGFydHM6IEFyblBhcnRzKTogc3RyaW5nIHtcbiAgLy8gdGhpcyBpcyBhIHN0YW5kYXJkIGZvcm1hdCBmb3IgQVJOcyBsaWtlOiBhcm46YXdzOnNlcnZpY2U6cmVnaW9uOmFjY291bnQ6cmVzb3VyY2VUeXBlL3Jlc291cmNlTmFtZVxuICByZXR1cm4gYGFybjoke3BhcnRzLnBhcnRpdGlvbn06JHtwYXJ0cy5zZXJ2aWNlfToke3BhcnRzLnJlZ2lvbn06JHtwYXJ0cy5hY2NvdW50fToke3BhcnRzLnJlc291cmNlVHlwZX0vJHtwYXJ0cy5yZXNvdXJjZU5hbWV9YDtcbn1cblxuZnVuY3Rpb24gYXBwc3luY0dyYXBoUWxBcGlBcGlJZEZtdChwYXJ0czogQXJuUGFydHMpOiBzdHJpbmcge1xuICAvLyBhcm46YXdzOmFwcHN5bmM6dXMtZWFzdC0xOjExMTExMTExMTExMTphcGlzLzxhcGlJZD5cbiAgcmV0dXJuIHBhcnRzLnJlc291cmNlTmFtZS5zcGxpdCgnLycpWzFdO1xufVxuXG5mdW5jdGlvbiBhcHBzeW5jR3JhcGhRbEZ1bmN0aW9uSURGbXQocGFydHM6IEFyblBhcnRzKTogc3RyaW5nIHtcbiAgLy8gYXJuOmF3czphcHBzeW5jOnVzLWVhc3QtMToxMTExMTExMTExMTE6YXBpcy88YXBpSWQ+L2Z1bmN0aW9ucy88ZnVuY3Rpb25JZD5cbiAgcmV0dXJuIHBhcnRzLnJlc291cmNlTmFtZS5zcGxpdCgnLycpWzNdO1xufVxuXG5mdW5jdGlvbiBhcHBzeW5jR3JhcGhRbERhdGFTb3VyY2VOYW1lRm10KHBhcnRzOiBBcm5QYXJ0cyk6IHN0cmluZyB7XG4gIC8vIGFybjphd3M6YXBwc3luYzp1cy1lYXN0LTE6MTExMTExMTExMTExOmFwaXMvPGFwaUlkPi9kYXRhc291cmNlcy88bmFtZT5cbiAgcmV0dXJuIHBhcnRzLnJlc291cmNlTmFtZS5zcGxpdCgnLycpWzNdO1xufVxuXG5pbnRlcmZhY2UgSW50cmluc2ljIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBhcmdzOiBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFzeW5jR2xvYmFsUmVwbGFjZShzdHI6IHN0cmluZywgcmVnZXg6IFJlZ0V4cCwgY2I6ICh4OiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmICghcmVnZXguZ2xvYmFsKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignUmVnZXhNaXNzaW5nR2xvYmFsRmxhZycsICdSZWdleCBtdXN0IGJlIGNyZWF0ZWQgd2l0aCAvZyBmbGFnJyk7XG4gIH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBsZXQgc3RhcnQgPSAwO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhzdHIpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldC5wdXNoKHN0ci5zdWJzdHJpbmcoc3RhcnQsIG1hdGNoLmluZGV4KSk7XG4gICAgcmV0LnB1c2goYXdhaXQgY2IobWF0Y2hbMV0pKTtcblxuICAgIHN0YXJ0ID0gcmVnZXgubGFzdEluZGV4O1xuICB9XG4gIHJldC5wdXNoKHN0ci5zbGljZShzdGFydCkpO1xuXG4gIHJldHVybiByZXQuam9pbignJyk7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./evaluate-cloudformation-template\"), exports);\n__exportStar(require(\"./template-body-parameter\"), exports);\n__exportStar(require(\"./nested-stack-helpers\"), exports);\n__exportStar(require(\"./stack-helpers\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUVBQW1EO0FBQ25ELDREQUEwQztBQUMxQyx5REFBdUM7QUFDdkMsa0RBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlLWJvZHktcGFyYW1ldGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbmVzdGVkLXN0YWNrLWhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFjay1oZWxwZXJzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadCurrentTemplateWithNestedStacks = loadCurrentTemplateWithNestedStacks;\nexports.loadCurrentTemplate = loadCurrentTemplate;\nexports.templateContainsNestedStacks = templateContainsNestedStacks;\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst evaluate_cloudformation_template_1 = require(\"./evaluate-cloudformation-template\");\nconst stack_helpers_1 = require(\"./stack-helpers\");\nconst util_1 = require(\"../../util\");\n/**\n * Reads the currently deployed template and all of its nested stack templates from CloudFormation.\n */\nasync function loadCurrentTemplateWithNestedStacks(rootStackArtifact, sdk, retrieveProcessedTemplate = false) {\n const deployedRootTemplate = await loadCurrentTemplate(rootStackArtifact, sdk, retrieveProcessedTemplate);\n const nestedStacks = await loadNestedStacks(rootStackArtifact, sdk, {\n generatedTemplate: rootStackArtifact.template,\n deployedTemplate: deployedRootTemplate,\n deployedStackName: rootStackArtifact.stackName,\n });\n return {\n deployedRootTemplate,\n nestedStacks,\n };\n}\n/**\n * Returns the currently deployed template from CloudFormation that corresponds to `stackArtifact`.\n */\nasync function loadCurrentTemplate(stackArtifact, sdk, retrieveProcessedTemplate = false) {\n return loadCurrentStackTemplate(stackArtifact.stackName, sdk, retrieveProcessedTemplate);\n}\nasync function loadCurrentStackTemplate(stackName, sdk, retrieveProcessedTemplate = false) {\n const cfn = sdk.cloudFormation();\n const stack = await stack_helpers_1.CloudFormationStack.lookup(cfn, stackName, retrieveProcessedTemplate);\n return stack.template();\n}\nasync function loadNestedStacks(rootStackArtifact, sdk, parentTemplates) {\n const listStackResources = parentTemplates.deployedStackName\n ? new evaluate_cloudformation_template_1.LazyListStackResources(sdk, parentTemplates.deployedStackName)\n : undefined;\n const nestedStacks = {};\n for (const [nestedStackLogicalId, generatedNestedStackResource] of Object.entries(parentTemplates.generatedTemplate.Resources ?? {})) {\n if (!isCdkManagedNestedStack(generatedNestedStackResource)) {\n continue;\n }\n const assetPath = generatedNestedStackResource.Metadata['aws:asset:path'];\n const nestedStackTemplates = await getNestedStackTemplates(rootStackArtifact, assetPath, nestedStackLogicalId, listStackResources, sdk);\n nestedStacks[nestedStackLogicalId] = {\n deployedTemplate: nestedStackTemplates.deployedTemplate,\n generatedTemplate: nestedStackTemplates.generatedTemplate,\n physicalName: nestedStackTemplates.deployedStackName,\n nestedStackTemplates: await loadNestedStacks(rootStackArtifact, sdk, nestedStackTemplates),\n };\n }\n return nestedStacks;\n}\nasync function getNestedStackTemplates(rootStackArtifact, nestedTemplateAssetPath, nestedStackLogicalId, listStackResources, sdk) {\n const nestedTemplatePath = path.join(rootStackArtifact.assembly.directory, nestedTemplateAssetPath);\n // CFN generates the nested stack name in the form `ParentStackName-NestedStackLogicalID-SomeHashWeCan'tCompute,\n // the arn is of the form: arn:aws:cloudformation:region:123456789012:stack/NestedStackName/AnotherHashWeDon'tNeed\n // so we get the ARN and manually extract the name.\n const nestedStackArn = await getNestedStackArn(nestedStackLogicalId, listStackResources);\n const deployedStackName = nestedStackArn?.slice(nestedStackArn.indexOf('/') + 1, nestedStackArn.lastIndexOf('/'));\n return {\n generatedTemplate: JSON.parse(fs.readFileSync(nestedTemplatePath, 'utf-8')),\n deployedTemplate: deployedStackName ? await loadCurrentStackTemplate(deployedStackName, sdk) : {},\n deployedStackName,\n };\n}\nasync function getNestedStackArn(nestedStackLogicalId, listStackResources) {\n try {\n const stackResources = await listStackResources?.listStackResources();\n return stackResources?.find((sr) => sr.LogicalResourceId === nestedStackLogicalId)?.PhysicalResourceId;\n }\n catch (e) {\n if ((0, util_1.formatErrorMessage)(e).startsWith('Stack with id ') && (0, util_1.formatErrorMessage)(e).endsWith(' does not exist')) {\n return;\n }\n throw e;\n }\n}\nfunction isCdkManagedNestedStack(stackResource) {\n return (stackResource.Type === 'AWS::CloudFormation::Stack' &&\n stackResource.Metadata &&\n stackResource.Metadata['aws:asset:path']);\n}\n/**\n * Returns true if the given template contains any `AWS::CloudFormation::Stack` resources.\n */\nfunction templateContainsNestedStacks(template) {\n return Object.values(template?.Resources ?? {}).some((resource) => resource.Type === 'AWS::CloudFormation::Stack');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLXN0YWNrLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJuZXN0ZWQtc3RhY2staGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSxrRkFnQkM7QUFLRCxrREFNQztBQWdHRCxvRUFJQztBQWxKRCw2QkFBNkI7QUFHN0IsK0JBQStCO0FBQy9CLHlGQUFxRztBQUNyRyxtREFBcUU7QUFDckUscUNBQWdEO0FBVWhEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLG1DQUFtQyxDQUN2RCxpQkFBOEMsRUFDOUMsR0FBUSxFQUNSLDRCQUFxQyxLQUFLO0lBRTFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUMxRyxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtRQUNsRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO1FBQzdDLGdCQUFnQixFQUFFLG9CQUFvQjtRQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTO0tBQy9DLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxvQkFBb0I7UUFDcEIsWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLGFBQTBDLEVBQzFDLEdBQVEsRUFDUiw0QkFBcUMsS0FBSztJQUUxQyxPQUFPLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELEtBQUssVUFBVSx3QkFBd0IsQ0FDckMsU0FBaUIsRUFDakIsR0FBUSxFQUNSLDRCQUFxQyxLQUFLO0lBRTFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1DQUFtQixD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SUFDekcsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsSUFBSSxJQUFBLHlCQUFrQixFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM1RyxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sQ0FBQyxDQUFDO0lBQ1YsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLGFBQWtCO0lBQ2pELE9BQU8sQ0FDTCxhQUFhLENBQUMsSUFBSSxLQUFLLDRCQUE0QjtRQUNuRCxhQUFhLENBQUMsUUFBUTtRQUN0QixhQUFhLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQ3pDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw0QkFBNEIsQ0FBQyxRQUFhO0lBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbEQsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssNEJBQTRCLENBQ2xFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IExhenlMaXN0U3RhY2tSZXNvdXJjZXMsIHR5cGUgTGlzdFN0YWNrUmVzb3VyY2VzIH0gZnJvbSAnLi9ldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvblN0YWNrLCB0eXBlIFRlbXBsYXRlIH0gZnJvbSAnLi9zdGFjay1oZWxwZXJzJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBSb290VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzIHtcbiAgcmVhZG9ubHkgZGVwbG95ZWRSb290VGVtcGxhdGU6IFRlbXBsYXRlO1xuICByZWFkb25seSBuZXN0ZWRTdGFja3M6IHtcbiAgICBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzO1xuICB9O1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjdXJyZW50bHkgZGVwbG95ZWQgdGVtcGxhdGUgYW5kIGFsbCBvZiBpdHMgbmVzdGVkIHN0YWNrIHRlbXBsYXRlcyBmcm9tIENsb3VkRm9ybWF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MoXG4gIHJvb3RTdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNkazogU0RLLFxuICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4pOiBQcm9taXNlPFJvb3RUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3M+IHtcbiAgY29uc3QgZGVwbG95ZWRSb290VGVtcGxhdGUgPSBhd2FpdCBsb2FkQ3VycmVudFRlbXBsYXRlKHJvb3RTdGFja0FydGlmYWN0LCBzZGssIHJldHJpZXZlUHJvY2Vzc2VkVGVtcGxhdGUpO1xuICBjb25zdCBuZXN0ZWRTdGFja3MgPSBhd2FpdCBsb2FkTmVzdGVkU3RhY2tzKHJvb3RTdGFja0FydGlmYWN0LCBzZGssIHtcbiAgICBnZW5lcmF0ZWRUZW1wbGF0ZTogcm9vdFN0YWNrQXJ0aWZhY3QudGVtcGxhdGUsXG4gICAgZGVwbG95ZWRUZW1wbGF0ZTogZGVwbG95ZWRSb290VGVtcGxhdGUsXG4gICAgZGVwbG95ZWRTdGFja05hbWU6IHJvb3RTdGFja0FydGlmYWN0LnN0YWNrTmFtZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkZXBsb3llZFJvb3RUZW1wbGF0ZSxcbiAgICBuZXN0ZWRTdGFja3MsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudGx5IGRlcGxveWVkIHRlbXBsYXRlIGZyb20gQ2xvdWRGb3JtYXRpb24gdGhhdCBjb3JyZXNwb25kcyB0byBgc3RhY2tBcnRpZmFjdGAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQ3VycmVudFRlbXBsYXRlKFxuICBzdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNkazogU0RLLFxuICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4pOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gIHJldHVybiBsb2FkQ3VycmVudFN0YWNrVGVtcGxhdGUoc3RhY2tBcnRpZmFjdC5zdGFja05hbWUsIHNkaywgcmV0cmlldmVQcm9jZXNzZWRUZW1wbGF0ZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRDdXJyZW50U3RhY2tUZW1wbGF0ZShcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gIHNkazogU0RLLFxuICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4pOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gIGNvbnN0IGNmbiA9IHNkay5jbG91ZEZvcm1hdGlvbigpO1xuICBjb25zdCBzdGFjayA9IGF3YWl0IENsb3VkRm9ybWF0aW9uU3RhY2subG9va3VwKGNmbiwgc3RhY2tOYW1lLCByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlKTtcbiAgcmV0dXJuIHN0YWNrLnRlbXBsYXRlKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWROZXN0ZWRTdGFja3MoXG4gIHJvb3RTdGFja0FydGlmYWN0OiBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHNkazogU0RLLFxuICBwYXJlbnRUZW1wbGF0ZXM6IFN0YWNrVGVtcGxhdGVzLFxuKTogUHJvbWlzZTx7IFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfT4ge1xuICBjb25zdCBsaXN0U3RhY2tSZXNvdXJjZXMgPSBwYXJlbnRUZW1wbGF0ZXMuZGVwbG95ZWRTdGFja05hbWVcbiAgICA/IG5ldyBMYXp5TGlzdFN0YWNrUmVzb3VyY2VzKHNkaywgcGFyZW50VGVtcGxhdGVzLmRlcGxveWVkU3RhY2tOYW1lKVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBuZXN0ZWRTdGFja3M6IHsgW25lc3RlZFN0YWNrTG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9ID0ge307XG4gIGZvciAoY29uc3QgW25lc3RlZFN0YWNrTG9naWNhbElkLCBnZW5lcmF0ZWROZXN0ZWRTdGFja1Jlc291cmNlXSBvZiBPYmplY3QuZW50cmllcyhcbiAgICBwYXJlbnRUZW1wbGF0ZXMuZ2VuZXJhdGVkVGVtcGxhdGUuUmVzb3VyY2VzID8/IHt9LFxuICApKSB7XG4gICAgaWYgKCFpc0Nka01hbmFnZWROZXN0ZWRTdGFjayhnZW5lcmF0ZWROZXN0ZWRTdGFja1Jlc291cmNlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRQYXRoID0gZ2VuZXJhdGVkTmVzdGVkU3RhY2tSZXNvdXJjZS5NZXRhZGF0YVsnYXdzOmFzc2V0OnBhdGgnXTtcbiAgICBjb25zdCBuZXN0ZWRTdGFja1RlbXBsYXRlcyA9IGF3YWl0IGdldE5lc3RlZFN0YWNrVGVtcGxhdGVzKFxuICAgICAgcm9vdFN0YWNrQXJ0aWZhY3QsXG4gICAgICBhc3NldFBhdGgsXG4gICAgICBuZXN0ZWRTdGFja0xvZ2ljYWxJZCxcbiAgICAgIGxpc3RTdGFja1Jlc291cmNlcyxcbiAgICAgIHNkayxcbiAgICApO1xuXG4gICAgbmVzdGVkU3RhY2tzW25lc3RlZFN0YWNrTG9naWNhbElkXSA9IHtcbiAgICAgIGRlcGxveWVkVGVtcGxhdGU6IG5lc3RlZFN0YWNrVGVtcGxhdGVzLmRlcGxveWVkVGVtcGxhdGUsXG4gICAgICBnZW5lcmF0ZWRUZW1wbGF0ZTogbmVzdGVkU3RhY2tUZW1wbGF0ZXMuZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICAgICBwaHlzaWNhbE5hbWU6IG5lc3RlZFN0YWNrVGVtcGxhdGVzLmRlcGxveWVkU3RhY2tOYW1lLFxuICAgICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IGF3YWl0IGxvYWROZXN0ZWRTdGFja3Mocm9vdFN0YWNrQXJ0aWZhY3QsIHNkaywgbmVzdGVkU3RhY2tUZW1wbGF0ZXMpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbmVzdGVkU3RhY2tzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXROZXN0ZWRTdGFja1RlbXBsYXRlcyhcbiAgcm9vdFN0YWNrQXJ0aWZhY3Q6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgbmVzdGVkVGVtcGxhdGVBc3NldFBhdGg6IHN0cmluZyxcbiAgbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZyxcbiAgbGlzdFN0YWNrUmVzb3VyY2VzOiBMaXN0U3RhY2tSZXNvdXJjZXMgfCB1bmRlZmluZWQsXG4gIHNkazogU0RLLFxuKTogUHJvbWlzZTxTdGFja1RlbXBsYXRlcz4ge1xuICBjb25zdCBuZXN0ZWRUZW1wbGF0ZVBhdGggPSBwYXRoLmpvaW4ocm9vdFN0YWNrQXJ0aWZhY3QuYXNzZW1ibHkuZGlyZWN0b3J5LCBuZXN0ZWRUZW1wbGF0ZUFzc2V0UGF0aCk7XG5cbiAgLy8gQ0ZOIGdlbmVyYXRlcyB0aGUgbmVzdGVkIHN0YWNrIG5hbWUgaW4gdGhlIGZvcm0gYFBhcmVudFN0YWNrTmFtZS1OZXN0ZWRTdGFja0xvZ2ljYWxJRC1Tb21lSGFzaFdlQ2FuJ3RDb21wdXRlLFxuICAvLyB0aGUgYXJuIGlzIG9mIHRoZSBmb3JtOiBhcm46YXdzOmNsb3VkZm9ybWF0aW9uOnJlZ2lvbjoxMjM0NTY3ODkwMTI6c3RhY2svTmVzdGVkU3RhY2tOYW1lL0Fub3RoZXJIYXNoV2VEb24ndE5lZWRcbiAgLy8gc28gd2UgZ2V0IHRoZSBBUk4gYW5kIG1hbnVhbGx5IGV4dHJhY3QgdGhlIG5hbWUuXG4gIGNvbnN0IG5lc3RlZFN0YWNrQXJuID0gYXdhaXQgZ2V0TmVzdGVkU3RhY2tBcm4obmVzdGVkU3RhY2tMb2dpY2FsSWQsIGxpc3RTdGFja1Jlc291cmNlcyk7XG4gIGNvbnN0IGRlcGxveWVkU3RhY2tOYW1lID0gbmVzdGVkU3RhY2tBcm4/LnNsaWNlKG5lc3RlZFN0YWNrQXJuLmluZGV4T2YoJy8nKSArIDEsIG5lc3RlZFN0YWNrQXJuLmxhc3RJbmRleE9mKCcvJykpO1xuXG4gIHJldHVybiB7XG4gICAgZ2VuZXJhdGVkVGVtcGxhdGU6IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKG5lc3RlZFRlbXBsYXRlUGF0aCwgJ3V0Zi04JykpLFxuICAgIGRlcGxveWVkVGVtcGxhdGU6IGRlcGxveWVkU3RhY2tOYW1lID8gYXdhaXQgbG9hZEN1cnJlbnRTdGFja1RlbXBsYXRlKGRlcGxveWVkU3RhY2tOYW1lLCBzZGspIDoge30sXG4gICAgZGVwbG95ZWRTdGFja05hbWUsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5lc3RlZFN0YWNrQXJuKFxuICBuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nLFxuICBsaXN0U3RhY2tSZXNvdXJjZXM/OiBMaXN0U3RhY2tSZXNvdXJjZXMsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgbGlzdFN0YWNrUmVzb3VyY2VzPy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgICByZXR1cm4gc3RhY2tSZXNvdXJjZXM/LmZpbmQoKHNyKSA9PiBzci5Mb2dpY2FsUmVzb3VyY2VJZCA9PT0gbmVzdGVkU3RhY2tMb2dpY2FsSWQpPy5QaHlzaWNhbFJlc291cmNlSWQ7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChmb3JtYXRFcnJvck1lc3NhZ2UoZSkuc3RhcnRzV2l0aCgnU3RhY2sgd2l0aCBpZCAnKSAmJiBmb3JtYXRFcnJvck1lc3NhZ2UoZSkuZW5kc1dpdGgoJyBkb2VzIG5vdCBleGlzdCcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDZGtNYW5hZ2VkTmVzdGVkU3RhY2soc3RhY2tSZXNvdXJjZTogYW55KTogc3RhY2tSZXNvdXJjZSBpcyBOZXN0ZWRTdGFja1Jlc291cmNlIHtcbiAgcmV0dXJuIChcbiAgICBzdGFja1Jlc291cmNlLlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgJiZcbiAgICBzdGFja1Jlc291cmNlLk1ldGFkYXRhICYmXG4gICAgc3RhY2tSZXNvdXJjZS5NZXRhZGF0YVsnYXdzOmFzc2V0OnBhdGgnXVxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGVtcGxhdGUgY29udGFpbnMgYW55IGBBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFja2AgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGVDb250YWluc05lc3RlZFN0YWNrcyh0ZW1wbGF0ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKHRlbXBsYXRlPy5SZXNvdXJjZXMgPz8ge30pLnNvbWUoXG4gICAgKHJlc291cmNlOiBhbnkpID0+IHJlc291cmNlLlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmVzdGVkU3RhY2tUZW1wbGF0ZXMge1xuICByZWFkb25seSBwaHlzaWNhbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgZGVwbG95ZWRUZW1wbGF0ZTogVGVtcGxhdGU7XG4gIHJlYWRvbmx5IGdlbmVyYXRlZFRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IHtcbiAgICBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzO1xuICB9O1xuICAvKipcbiAgICogVGhlIGNoYW5nZXNldCBmb3IgdGhpcyBuZXN0ZWQgc3RhY2ssIGlmIGF2YWlsYWJsZS5cbiAgICogUG9wdWxhdGVkIHdoZW4gdGhlIHJvb3QgY2hhbmdlc2V0IHdhcyBjcmVhdGVkIHdpdGggYEluY2x1ZGVOZXN0ZWRTdGFja3NgLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0O1xufVxuXG5pbnRlcmZhY2UgU3RhY2tUZW1wbGF0ZXMge1xuICByZWFkb25seSBnZW5lcmF0ZWRUZW1wbGF0ZTogYW55O1xuICByZWFkb25seSBkZXBsb3llZFRlbXBsYXRlOiBhbnk7XG4gIHJlYWRvbmx5IGRlcGxveWVkU3RhY2tOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmludGVyZmFjZSBOZXN0ZWRTdGFja1Jlc291cmNlIHtcbiAgcmVhZG9ubHkgTWV0YWRhdGE6IHsgJ2F3czphc3NldDpwYXRoJzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IFByb3BlcnRpZXM6IGFueTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationStack = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst stack_events_1 = require(\"../stack-events\");\n/**\n * Represents an (existing) Stack in CloudFormation\n *\n * Bundle and cache some information that we need during deployment (so we don't have to make\n * repeated calls to CloudFormation).\n */\nclass CloudFormationStack {\n cfn;\n stackName;\n stack;\n retrieveProcessedTemplate;\n static async lookup(cfn, stackName, retrieveProcessedTemplate = false) {\n try {\n const response = await cfn.describeStacks({ StackName: stackName });\n return new CloudFormationStack(cfn, stackName, response.Stacks && response.Stacks[0], retrieveProcessedTemplate);\n }\n catch (e) {\n if (e.name === 'ValidationError' && (0, util_1.formatErrorMessage)(e) === `Stack with id ${stackName} does not exist`) {\n return new CloudFormationStack(cfn, stackName, undefined);\n }\n throw e;\n }\n }\n /**\n * Return a copy of the given stack that does not exist\n *\n * It's a little silly that it needs arguments to do that, but there we go.\n */\n static doesNotExist(cfn, stackName) {\n return new CloudFormationStack(cfn, stackName);\n }\n /**\n * From static information (for testing)\n */\n static fromStaticInformation(cfn, stackName, stack) {\n return new CloudFormationStack(cfn, stackName, stack);\n }\n _template;\n constructor(cfn, stackName, stack, retrieveProcessedTemplate = false) {\n this.cfn = cfn;\n this.stackName = stackName;\n this.stack = stack;\n this.retrieveProcessedTemplate = retrieveProcessedTemplate;\n }\n /**\n * Retrieve the stack's deployed template\n *\n * Cached, so will only be retrieved once. Will return an empty\n * structure if the stack does not exist.\n */\n async template() {\n if (!this.exists) {\n return {};\n }\n if (this._template === undefined) {\n const response = await this.cfn.getTemplate({\n StackName: this.stackName,\n TemplateStage: this.retrieveProcessedTemplate ? 'Processed' : 'Original',\n });\n this._template = (response.TemplateBody && (0, util_1.deserializeStructure)(response.TemplateBody)) || {};\n }\n return this._template;\n }\n /**\n * Whether the stack exists\n */\n get exists() {\n return this.stack !== undefined;\n }\n /**\n * The stack's ID (which is the same as its ARN)\n *\n * Throws if the stack doesn't exist.\n */\n get stackId() {\n this.assertExists();\n return this.stack.StackId;\n }\n /**\n * The stack's current outputs\n *\n * Empty object if the stack doesn't exist\n */\n get outputs() {\n if (!this.exists) {\n return {};\n }\n const result = {};\n (this.stack.Outputs || []).forEach((output) => {\n result[output.OutputKey] = output.OutputValue;\n });\n return result;\n }\n /**\n * The stack's status\n *\n * Special status NOT_FOUND if the stack does not exist.\n */\n get stackStatus() {\n if (!this.exists) {\n return new stack_events_1.StackStatus('NOT_FOUND', 'Stack not found during lookup');\n }\n return stack_events_1.StackStatus.fromStackDescription(this.stack);\n }\n /**\n * The stack's current tags\n *\n * Empty list if the stack does not exist\n */\n get tags() {\n return this.stack?.Tags || [];\n }\n /**\n * SNS Topic ARNs that will receive stack events.\n *\n * Empty list if the stack does not exist\n */\n get notificationArns() {\n return this.stack?.NotificationARNs ?? [];\n }\n /**\n * Return the names of all current parameters to the stack\n *\n * Empty list if the stack does not exist.\n */\n get parameterNames() {\n return Object.keys(this.parameters);\n }\n /**\n * Return the names and values of all current parameters to the stack\n *\n * Empty object if the stack does not exist.\n */\n get parameters() {\n if (!this.exists) {\n return {};\n }\n const ret = {};\n for (const param of this.stack.Parameters ?? []) {\n ret[param.ParameterKey] = param.ResolvedValue ?? param.ParameterValue;\n }\n return ret;\n }\n /**\n * Return the termination protection of the stack\n */\n get terminationProtection() {\n return this.stack?.EnableTerminationProtection;\n }\n assertExists() {\n if (!this.exists) {\n throw new toolkit_error_1.ToolkitError('StackNotFound', `No stack named '${this.stackName}'`);\n }\n }\n}\nexports.CloudFormationStack = CloudFormationStack;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2staGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0RBQTJEO0FBQzNELHFDQUFzRTtBQUV0RSxrREFBOEM7QUFjOUM7Ozs7O0dBS0c7QUFDSCxNQUFhLG1CQUFtQjtJQW9DWDtJQUNEO0lBQ0M7SUFDQTtJQXRDWixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDeEIsR0FBMEIsRUFDMUIsU0FBaUIsRUFDakIsNEJBQXFDLEtBQUs7UUFFMUMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDbkgsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGlCQUFpQixJQUFJLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLFNBQVMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDMUcsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUEwQixFQUFFLFNBQWlCO1FBQ3RFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixD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QUNILElBQVcsVUFBVTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7UUFDdkMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNqRCxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLGNBQWUsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUM7SUFDakQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksNEJBQVksQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFwS0Qsa0RBb0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFjaywgVGFnIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UsIGRlc2VyaWFsaXplU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEZvcm1hdGlvbkNsaWVudCB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgU3RhY2tTdGF0dXMgfSBmcm9tICcuLi9zdGFjay1ldmVudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlIHtcbiAgUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUGFyYW1ldGVyPjtcbiAgW3NlY3Rpb246IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVBhcmFtZXRlciB7XG4gIFR5cGU6IHN0cmluZztcbiAgRGVmYXVsdD86IGFueTtcbiAgRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIChleGlzdGluZykgU3RhY2sgaW4gQ2xvdWRGb3JtYXRpb25cbiAqXG4gKiBCdW5kbGUgYW5kIGNhY2hlIHNvbWUgaW5mb3JtYXRpb24gdGhhdCB3ZSBuZWVkIGR1cmluZyBkZXBsb3ltZW50IChzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2VcbiAqIHJlcGVhdGVkIGNhbGxzIHRvIENsb3VkRm9ybWF0aW9uKS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkRm9ybWF0aW9uU3RhY2sge1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGxvb2t1cChcbiAgICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgICBzdGFja05hbWU6IHN0cmluZyxcbiAgICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICk6IFByb21pc2U8Q2xvdWRGb3JtYXRpb25TdGFjaz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNmbi5kZXNjcmliZVN0YWNrcyh7IFN0YWNrTmFtZTogc3RhY2tOYW1lIH0pO1xuICAgICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvblN0YWNrKGNmbiwgc3RhY2tOYW1lLCByZXNwb25zZS5TdGFja3MgJiYgcmVzcG9uc2UuU3RhY2tzWzBdLCByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgPT09ICdWYWxpZGF0aW9uRXJyb3InICYmIGZvcm1hdEVycm9yTWVzc2FnZShlKSA9PT0gYFN0YWNrIHdpdGggaWQgJHtzdGFja05hbWV9IGRvZXMgbm90IGV4aXN0YCkge1xuICAgICAgICByZXR1cm4gbmV3IENsb3VkRm9ybWF0aW9uU3RhY2soY2ZuLCBzdGFja05hbWUsIHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBjb3B5IG9mIHRoZSBnaXZlbiBzdGFjayB0aGF0IGRvZXMgbm90IGV4aXN0XG4gICAqXG4gICAqIEl0J3MgYSBsaXR0bGUgc2lsbHkgdGhhdCBpdCBuZWVkcyBhcmd1bWVudHMgdG8gZG8gdGhhdCwgYnV0IHRoZXJlIHdlIGdvLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkb2VzTm90RXhpc3QoY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsIHN0YWNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBDbG91ZEZvcm1hdGlvblN0YWNrKGNmbiwgc3RhY2tOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGcm9tIHN0YXRpYyBpbmZvcm1hdGlvbiAoZm9yIHRlc3RpbmcpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGF0aWNJbmZvcm1hdGlvbihjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCwgc3RhY2tOYW1lOiBzdHJpbmcsIHN0YWNrOiBTdGFjaykge1xuICAgIHJldHVybiBuZXcgQ2xvdWRGb3JtYXRpb25TdGFjayhjZm4sIHN0YWNrTmFtZSwgc3RhY2spO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGVtcGxhdGU6IGFueTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGFjaz86IFN0YWNrLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmV0cmlldmVQcm9jZXNzZWRUZW1wbGF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgc3RhY2sncyBkZXBsb3llZCB0ZW1wbGF0ZVxuICAgKlxuICAgKiBDYWNoZWQsIHNvIHdpbGwgb25seSBiZSByZXRyaWV2ZWQgb25jZS4gV2lsbCByZXR1cm4gYW4gZW1wdHlcbiAgICogc3RydWN0dXJlIGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB0ZW1wbGF0ZSgpOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gICAgaWYgKCF0aGlzLmV4aXN0cykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2ZuLmdldFRlbXBsYXRlKHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgICAgVGVtcGxhdGVTdGFnZTogdGhpcy5yZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlID8gJ1Byb2Nlc3NlZCcgOiAnT3JpZ2luYWwnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl90ZW1wbGF0ZSA9IChyZXNwb25zZS5UZW1wbGF0ZUJvZHkgJiYgZGVzZXJpYWxpemVTdHJ1Y3R1cmUocmVzcG9uc2UuVGVtcGxhdGVCb2R5KSkgfHwge307XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzdGFjayBleGlzdHNcbiAgICovXG4gIHB1YmxpYyBnZXQgZXhpc3RzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YWNrICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0YWNrJ3MgSUQgKHdoaWNoIGlzIHRoZSBzYW1lIGFzIGl0cyBBUk4pXG4gICAqXG4gICAqIFRocm93cyBpZiB0aGUgc3RhY2sgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhY2tJZCgpIHtcbiAgICB0aGlzLmFzc2VydEV4aXN0cygpO1xuICAgIHJldHVybiB0aGlzLnN0YWNrIS5TdGFja0lkITtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sncyBjdXJyZW50IG91dHB1dHNcbiAgICpcbiAgICogRW1wdHkgb2JqZWN0IGlmIHRoZSBzdGFjayBkb2Vzbid0IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLmV4aXN0cykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgKHRoaXMuc3RhY2shLk91dHB1dHMgfHwgW10pLmZvckVhY2goKG91dHB1dCkgPT4ge1xuICAgICAgcmVzdWx0W291dHB1dC5PdXRwdXRLZXkhXSA9IG91dHB1dC5PdXRwdXRWYWx1ZSE7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sncyBzdGF0dXNcbiAgICpcbiAgICogU3BlY2lhbCBzdGF0dXMgTk9UX0ZPVU5EIGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhY2tTdGF0dXMoKTogU3RhY2tTdGF0dXMge1xuICAgIGlmICghdGhpcy5leGlzdHMpIHtcbiAgICAgIHJldHVybiBuZXcgU3RhY2tTdGF0dXMoJ05PVF9GT1VORCcsICdTdGFjayBub3QgZm91bmQgZHVyaW5nIGxvb2t1cCcpO1xuICAgIH1cbiAgICByZXR1cm4gU3RhY2tTdGF0dXMuZnJvbVN0YWNrRGVzY3JpcHRpb24odGhpcy5zdGFjayEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjaydzIGN1cnJlbnQgdGFnc1xuICAgKlxuICAgKiBFbXB0eSBsaXN0IGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgcHVibGljIGdldCB0YWdzKCk6IFRhZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjaz8uVGFncyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTTlMgVG9waWMgQVJOcyB0aGF0IHdpbGwgcmVjZWl2ZSBzdGFjayBldmVudHMuXG4gICAqXG4gICAqIEVtcHR5IGxpc3QgaWYgdGhlIHN0YWNrIGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IG5vdGlmaWNhdGlvbkFybnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnN0YWNrPy5Ob3RpZmljYXRpb25BUk5zID8/IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbmFtZXMgb2YgYWxsIGN1cnJlbnQgcGFyYW1ldGVycyB0byB0aGUgc3RhY2tcbiAgICpcbiAgICogRW1wdHkgbGlzdCBpZiB0aGUgc3RhY2sgZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhcmFtZXRlck5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG5hbWVzIGFuZCB2YWx1ZXMgb2YgYWxsIGN1cnJlbnQgcGFyYW1ldGVycyB0byB0aGUgc3RhY2tcbiAgICpcbiAgICogRW1wdHkgb2JqZWN0IGlmIHRoZSBzdGFjayBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGFyYW1ldGVycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuZXhpc3RzKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgcGFyYW0gb2YgdGhpcy5zdGFjayEuUGFyYW1ldGVycyA/PyBbXSkge1xuICAgICAgcmV0W3BhcmFtLlBhcmFtZXRlcktleSFdID0gcGFyYW0uUmVzb2x2ZWRWYWx1ZSA/PyBwYXJhbS5QYXJhbWV0ZXJWYWx1ZSE7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIG9mIHRoZSBzdGFja1xuICAgKi9cbiAgcHVibGljIGdldCB0ZXJtaW5hdGlvblByb3RlY3Rpb24oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2s/LkVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgYXNzZXJ0RXhpc3RzKCkge1xuICAgIGlmICghdGhpcy5leGlzdHMpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrTm90Rm91bmQnLCBgTm8gc3RhY2sgbmFtZWQgJyR7dGhpcy5zdGFja05hbWV9J2ApO1xuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeBodyParameter = makeBodyParameter;\nexports.restUrlFromManifest = restUrlFromManifest;\nconst fs = require(\"node:fs/promises\");\nconst path = require(\"node:path\");\nconst util = require(\"node:util\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst client_s3_1 = require(\"@aws-sdk/client-s3\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst chalk = require(\"chalk\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst LARGE_TEMPLATE_SIZE_KB = 50;\n/**\n * Prepares the body parameter for +CreateChangeSet+.\n *\n * If the template is small enough to be inlined into the API call, just return\n * it immediately.\n *\n * Otherwise, add it to the asset manifest to get uploaded to the staging\n * bucket and return its coordinates. If there is no staging bucket, an error\n * is thrown.\n *\n * @param stack - the synthesized stack that provides the CloudFormation template\n * @param toolkitInfo - information about the toolkit stack\n */\nasync function makeBodyParameter(ioHelper, stack, resolvedEnvironment, assetManifest, resources, overrideTemplate) {\n // If the template has already been uploaded to S3, just use it from there.\n if (stack.stackTemplateAssetObjectUrl && !overrideTemplate) {\n return {\n TemplateURL: await restUrlFromManifest(stack.stackTemplateAssetObjectUrl, resolvedEnvironment),\n };\n }\n // Otherwise, pass via API call (if small) or upload here (if large)\n const templateJson = (0, util_1.toYAML)(overrideTemplate ?? stack.template);\n if (templateJson.length <= LARGE_TEMPLATE_SIZE_KB * 1024) {\n return { TemplateBody: templateJson };\n }\n const toolkitInfo = await resources.lookupToolkit();\n if (!toolkitInfo.found) {\n await ioHelper.defaults.error(util.format(`The template for stack \"${stack.displayName}\" is ${Math.round(templateJson.length / 1024)}KiB. ` +\n `Templates larger than ${LARGE_TEMPLATE_SIZE_KB}KiB must be uploaded to S3.\\n` +\n 'Run the following command in order to setup an S3 bucket in this environment, and then re-deploy:\\n\\n', chalk.blue(`\\t$ cdk bootstrap ${resolvedEnvironment.name}\\n`)));\n throw new toolkit_error_1.ToolkitError('TemplateTooLargeToDeploy', 'Template too large to deploy (\"cdk bootstrap\" is required)');\n }\n const templateHash = (0, util_1.contentHash)(templateJson);\n const key = `cdk/${stack.id}/${templateHash}.yml`;\n let templateFile = stack.templateFile;\n if (overrideTemplate) {\n // Add a variant of this template\n templateFile = `${stack.templateFile}-${templateHash}.yaml`;\n const templateFilePath = path.join(stack.assembly.directory, templateFile);\n await fs.writeFile(templateFilePath, templateJson, { encoding: 'utf-8' });\n }\n assetManifest.addFileAsset(templateHash, {\n path: templateFile,\n }, {\n bucketName: toolkitInfo.bucketName,\n objectKey: key,\n });\n const templateURL = `${toolkitInfo.bucketUrl}/${key}`;\n await ioHelper.defaults.debug(`Storing template in S3 at: ${templateURL}`);\n return { TemplateURL: templateURL };\n}\n/**\n * Format an S3 URL in the manifest for use with CloudFormation\n *\n * Replaces environment placeholders (which this field may contain),\n * and reformats s3://.../... urls into S3 REST URLs (which CloudFormation\n * expects).\n *\n * We need to return the official region- and partition-specific URL for AWS S3\n * here, so we use the SDK's information about endpoints. At the same time, the\n * SDK allows overriding this URL by setting an environment variable\n * (specifically $AWS_ENDPOINT_URL_S3) but we want to *not* honor that, because\n * there's a 99.9% chance this URL will not be routable from AWS CloudFormation.\n *\n * To allow for the off chance that someone is running this tool against a\n * custom build of CloudFormation that does need a specific S3 endpoint passed\n * to it, we'll introduce a new environment variable that we'll respect instead:\n *\n * AWS_ENDPOINT_URL_S3_FOR_CLOUDFORMATION\n */\nasync function restUrlFromManifest(url, environment) {\n const doNotUseMarker = '**DONOTUSE**';\n const region = environment.region;\n // This URL may contain placeholders, so still substitute those.\n url = cloud_assembly_api_1.EnvironmentPlaceholders.replace(url, {\n accountId: environment.account,\n region,\n partition: doNotUseMarker,\n });\n // Yes, this is extremely crude, but we don't actually need this so I'm not inclined to spend\n // a lot of effort trying to thread the right value to this location.\n if (url.indexOf(doNotUseMarker) > -1) {\n throw new toolkit_error_1.ToolkitError('PartitionPlaceholderNotSupported', \"Cannot use '${AWS::Partition}' in the 'stackTemplateAssetObjectUrl' field\");\n }\n const s3Url = url.match(/s3:\\/\\/([^/]+)\\/(.*)$/);\n if (!s3Url) {\n return url;\n }\n // We need to pass an 'https://s3.REGION.amazonaws.com[.cn]/bucket/object' URL to CloudFormation, but we\n // got an 's3://bucket/object' URL instead. Construct the rest API URL here.\n const bucketName = s3Url[1];\n const objectKey = s3Url[2];\n const originalOverrideS3Endpoint = process.env.AWS_ENDPOINT_URL_S3;\n setEnv('AWS_ENDPOINT_URL_S3', process.env.AWS_ENDPOINT_URL_S3_FOR_CLOUDFORMATION);\n try {\n // SDK v3 no longer allows for getting endpoints from only region.\n // A command and client config must now be provided.\n const s3 = new client_s3_1.S3Client({ region });\n const endpoint = await (0, middleware_endpoint_1.getEndpointFromInstructions)({}, client_s3_1.HeadObjectCommand, {\n ...s3.config,\n });\n return `${endpoint.url.origin}/${bucketName}/${objectKey}`;\n }\n finally {\n setEnv('AWS_ENDPOINT_URL_S3', originalOverrideS3Endpoint);\n }\n}\nfunction setEnv(name, value) {\n if (value) {\n process.env[name] = value;\n }\n else {\n delete process.env[name];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtYm9keS1wYXJhbWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZW1wbGF0ZS1ib2R5LXBhcmFtZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw4Q0E2REM7QUFxQkQsa0RBd0NDO0FBM0pELHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFDbEMsa0NBQWtDO0FBQ2xDLG9FQUEwSDtBQUMxSCxrREFBaUU7QUFDakUscUVBQTBFO0FBQzFFLCtCQUErQjtBQUMvQiwrREFBMkQ7QUFDM0QscUNBQWlEO0FBVWpELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRWxDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsUUFBa0IsRUFDbEIsS0FBa0MsRUFDbEMsbUJBQWdDLEVBQ2hDLGFBQW1DLEVBQ25DLFNBQStCLEVBQy9CLGdCQUFzQjtJQUV0QiwyRUFBMkU7SUFDM0UsSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNELE9BQU87WUFDTCxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsbUJBQW1CLENBQUM7U0FDL0YsQ0FBQztJQUNKLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsTUFBTSxZQUFZLEdBQUcsSUFBQSxhQUFNLEVBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWhFLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxzQkFBc0IsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxDQUFDLFFB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QkFBcUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDbEYsSUFBSSxDQUFDO1FBQ0gsa0VBQWtFO1FBQ2xFLG9EQUFvRDtRQUNwRCxNQUFNLEVBQUUsR0FBRyxJQUFJLG9CQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxpREFBMkIsRUFBQyxFQUFFLEVBQUUsNkJBQWlCLEVBQUU7WUFDeEUsR0FBRyxFQUFFLENBQUMsTUFBTTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLElBQVksRUFBRSxLQUF5QjtJQUNyRCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHR5cGUgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCB0eXBlIEVudmlyb25tZW50LCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBIZWFkT2JqZWN0Q29tbWFuZCwgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgZ2V0RW5kcG9pbnRGcm9tSW5zdHJ1Y3Rpb25zIH0gZnJvbSAnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50JztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBjb250ZW50SGFzaCwgdG9ZQU1MIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVCb2R5UGFyYW1ldGVyID0ge1xuICBUZW1wbGF0ZUJvZHk/OiBzdHJpbmc7XG4gIFRlbXBsYXRlVVJMPzogc3RyaW5nO1xufTtcblxuY29uc3QgTEFSR0VfVEVNUExBVEVfU0laRV9LQiA9IDUwO1xuXG4vKipcbiAqIFByZXBhcmVzIHRoZSBib2R5IHBhcmFtZXRlciBmb3IgK0NyZWF0ZUNoYW5nZVNldCsuXG4gKlxuICogSWYgdGhlIHRlbXBsYXRlIGlzIHNtYWxsIGVub3VnaCB0byBiZSBpbmxpbmVkIGludG8gdGhlIEFQSSBjYWxsLCBqdXN0IHJldHVyblxuICogaXQgaW1tZWRpYXRlbHkuXG4gKlxuICogT3RoZXJ3aXNlLCBhZGQgaXQgdG8gdGhlIGFzc2V0IG1hbmlmZXN0IHRvIGdldCB1cGxvYWRlZCB0byB0aGUgc3RhZ2luZ1xuICogYnVja2V0IGFuZCByZXR1cm4gaXRzIGNvb3JkaW5hdGVzLiBJZiB0aGVyZSBpcyBubyBzdGFnaW5nIGJ1Y2tldCwgYW4gZXJyb3JcbiAqIGlzIHRocm93bi5cbiAqXG4gKiBAcGFyYW0gc3RhY2sgICAgIC0gdGhlIHN5bnRoZXNpemVkIHN0YWNrIHRoYXQgcHJvdmlkZXMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gKiBAcGFyYW0gdG9vbGtpdEluZm8gLSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdG9vbGtpdCBzdGFja1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZUJvZHlQYXJhbWV0ZXIoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2s6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gIGFzc2V0TWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RCdWlsZGVyLFxuICByZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzLFxuICBvdmVycmlkZVRlbXBsYXRlPzogYW55LFxuKTogUHJvbWlzZTxUZW1wbGF0ZUJvZHlQYXJhbWV0ZXI+IHtcbiAgLy8gSWYgdGhlIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gdXBsb2FkZWQgdG8gUzMsIGp1c3QgdXNlIGl0IGZyb20gdGhlcmUuXG4gIGlmIChzdGFjay5zdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmwgJiYgIW92ZXJyaWRlVGVtcGxhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVGVtcGxhdGVVUkw6IGF3YWl0IHJlc3RVcmxGcm9tTWFuaWZlc3Qoc3RhY2suc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsLCByZXNvbHZlZEVudmlyb25tZW50KSxcbiAgICB9O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBwYXNzIHZpYSBBUEkgY2FsbCAoaWYgc21hbGwpIG9yIHVwbG9hZCBoZXJlIChpZiBsYXJnZSlcbiAgY29uc3QgdGVtcGxhdGVKc29uID0gdG9ZQU1MKG92ZXJyaWRlVGVtcGxhdGUgPz8gc3RhY2sudGVtcGxhdGUpO1xuXG4gIGlmICh0ZW1wbGF0ZUpzb24ubGVuZ3RoIDw9IExBUkdFX1RFTVBMQVRFX1NJWkVfS0IgKiAxMDI0KSB7XG4gICAgcmV0dXJuIHsgVGVtcGxhdGVCb2R5OiB0ZW1wbGF0ZUpzb24gfTtcbiAgfVxuXG4gIGNvbnN0IHRvb2xraXRJbmZvID0gYXdhaXQgcmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKTtcbiAgaWYgKCF0b29sa2l0SW5mby5mb3VuZCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgIGBUaGUgdGVtcGxhdGUgZm9yIHN0YWNrIFwiJHtzdGFjay5kaXNwbGF5TmFtZX1cIiBpcyAke01hdGgucm91bmQodGVtcGxhdGVKc29uLmxlbmd0aCAvIDEwMjQpfUtpQi4gYCArXG4gICAgICAgIGBUZW1wbGF0ZXMgbGFyZ2VyIHRoYW4gJHtMQVJHRV9URU1QTEFURV9TSVpFX0tCfUtpQiBtdXN0IGJlIHVwbG9hZGVkIHRvIFMzLlxcbmAgK1xuICAgICAgICAnUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiBvcmRlciB0byBzZXR1cCBhbiBTMyBidWNrZXQgaW4gdGhpcyBlbnZpcm9ubWVudCwgYW5kIHRoZW4gcmUtZGVwbG95OlxcblxcbicsXG4gICAgICAgIGNoYWxrLmJsdWUoYFxcdCQgY2RrIGJvb3RzdHJhcCAke3Jlc29sdmVkRW52aXJvbm1lbnQubmFtZX1cXG5gKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RlbXBsYXRlVG9vTGFyZ2VUb0RlcGxveScsICdUZW1wbGF0ZSB0b28gbGFyZ2UgdG8gZGVwbG95IChcImNkayBib290c3RyYXBcIiBpcyByZXF1aXJlZCknKTtcbiAgfVxuXG4gIGNvbnN0IHRlbXBsYXRlSGFzaCA9IGNvbnRlbnRIYXNoKHRlbXBsYXRlSnNvbik7XG4gIGNvbnN0IGtleSA9IGBjZGsvJHtzdGFjay5pZH0vJHt0ZW1wbGF0ZUhhc2h9LnltbGA7XG5cbiAgbGV0IHRlbXBsYXRlRmlsZSA9IHN0YWNrLnRlbXBsYXRlRmlsZTtcbiAgaWYgKG92ZXJyaWRlVGVtcGxhdGUpIHtcbiAgICAvLyBBZGQgYSB2YXJpYW50IG9mIHRoaXMgdGVtcGxhdGVcbiAgICB0ZW1wbGF0ZUZpbGUgPSBgJHtzdGFjay50ZW1wbGF0ZUZpbGV9LSR7dGVtcGxhdGVIYXNofS55YW1sYDtcbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVQYXRoID0gcGF0aC5qb2luKHN0YWNrLmFzc2VtYmx5LmRpcmVjdG9yeSwgdGVtcGxhdGVGaWxlKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUodGVtcGxhdGVGaWxlUGF0aCwgdGVtcGxhdGVKc29uLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICB9XG5cbiAgYXNzZXRNYW5pZmVzdC5hZGRGaWxlQXNzZXQoXG4gICAgdGVtcGxhdGVIYXNoLFxuICAgIHtcbiAgICAgIHBhdGg6IHRlbXBsYXRlRmlsZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHRvb2xraXRJbmZvLmJ1Y2tldE5hbWUsXG4gICAgICBvYmplY3RLZXk6IGtleSxcbiAgICB9LFxuICApO1xuXG4gIGNvbnN0IHRlbXBsYXRlVVJMID0gYCR7dG9vbGtpdEluZm8uYnVja2V0VXJsfS8ke2tleX1gO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgU3RvcmluZyB0ZW1wbGF0ZSBpbiBTMyBhdDogJHt0ZW1wbGF0ZVVSTH1gKTtcbiAgcmV0dXJuIHsgVGVtcGxhdGVVUkw6IHRlbXBsYXRlVVJMIH07XG59XG5cbi8qKlxuICogRm9ybWF0IGFuIFMzIFVSTCBpbiB0aGUgbWFuaWZlc3QgZm9yIHVzZSB3aXRoIENsb3VkRm9ybWF0aW9uXG4gKlxuICogUmVwbGFjZXMgZW52aXJvbm1lbnQgcGxhY2Vob2xkZXJzICh3aGljaCB0aGlzIGZpZWxkIG1heSBjb250YWluKSxcbiAqIGFuZCByZWZvcm1hdHMgczM6Ly8uLi4vLi4uIHVybHMgaW50byBTMyBSRVNUIFVSTHMgKHdoaWNoIENsb3VkRm9ybWF0aW9uXG4gKiBleHBlY3RzKS5cbiAqXG4gKiBXZSBuZWVkIHRvIHJldHVybiB0aGUgb2ZmaWNpYWwgcmVnaW9uLSBhbmQgcGFydGl0aW9uLXNwZWNpZmljIFVSTCBmb3IgQVdTIFMzXG4gKiBoZXJlLCBzbyB3ZSB1c2UgdGhlIFNESydzIGluZm9ybWF0aW9uIGFib3V0IGVuZHBvaW50cy4gQXQgdGhlIHNhbWUgdGltZSwgdGhlXG4gKiBTREsgYWxsb3dzIG92ZXJyaWRpbmcgdGhpcyBVUkwgYnkgc2V0dGluZyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICogKHNwZWNpZmljYWxseSAkQVdTX0VORFBPSU5UX1VSTF9TMykgYnV0IHdlIHdhbnQgdG8gKm5vdCogaG9ub3IgdGhhdCwgYmVjYXVzZVxuICogdGhlcmUncyBhIDk5LjklIGNoYW5jZSB0aGlzIFVSTCB3aWxsIG5vdCBiZSByb3V0YWJsZSBmcm9tIEFXUyBDbG91ZEZvcm1hdGlvbi5cbiAqXG4gKiBUbyBhbGxvdyBmb3IgdGhlIG9mZiBjaGFuY2UgdGhhdCBzb21lb25lIGlzIHJ1bm5pbmcgdGhpcyB0b29sIGFnYWluc3QgYVxuICogY3VzdG9tIGJ1aWxkIG9mIENsb3VkRm9ybWF0aW9uIHRoYXQgZG9lcyBuZWVkIGEgc3BlY2lmaWMgUzMgZW5kcG9pbnQgcGFzc2VkXG4gKiB0byBpdCwgd2UnbGwgaW50cm9kdWNlIGEgbmV3IGVudmlyb25tZW50IHZhcmlhYmxlIHRoYXQgd2UnbGwgcmVzcGVjdCBpbnN0ZWFkOlxuICpcbiAqICBBV1NfRU5EUE9JTlRfVVJMX1MzX0ZPUl9DTE9VREZPUk1BVElPTlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzdFVybEZyb21NYW5pZmVzdCh1cmw6IHN0cmluZywgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZG9Ob3RVc2VNYXJrZXIgPSAnKipET05PVFVTRSoqJztcbiAgY29uc3QgcmVnaW9uID0gZW52aXJvbm1lbnQucmVnaW9uO1xuICAvLyBUaGlzIFVSTCBtYXkgY29udGFpbiBwbGFjZWhvbGRlcnMsIHNvIHN0aWxsIHN1YnN0aXR1dGUgdGhvc2UuXG4gIHVybCA9IEVudmlyb25tZW50UGxhY2Vob2xkZXJzLnJlcGxhY2UodXJsLCB7XG4gICAgYWNjb3VudElkOiBlbnZpcm9ubWVudC5hY2NvdW50LFxuICAgIHJlZ2lvbixcbiAgICBwYXJ0aXRpb246IGRvTm90VXNlTWFya2VyLFxuICB9KTtcblxuICAvLyBZZXMsIHRoaXMgaXMgZXh0cmVtZWx5IGNydWRlLCBidXQgd2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0aGlzIHNvIEknbSBub3QgaW5jbGluZWQgdG8gc3BlbmRcbiAgLy8gYSBsb3Qgb2YgZWZmb3J0IHRyeWluZyB0byB0aHJlYWQgdGhlIHJpZ2h0IHZhbHVlIHRvIHRoaXMgbG9jYXRpb24uXG4gIGlmICh1cmwuaW5kZXhPZihkb05vdFVzZU1hcmtlcikgPiAtMSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1BhcnRpdGlvblBsYWNlaG9sZGVyTm90U3VwcG9ydGVkJywgXCJDYW5ub3QgdXNlICcke0FXUzo6UGFydGl0aW9ufScgaW4gdGhlICdzdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmwnIGZpZWxkXCIpO1xuICB9XG5cbiAgY29uc3QgczNVcmwgPSB1cmwubWF0Y2goL3MzOlxcL1xcLyhbXi9dKylcXC8oLiopJC8pO1xuICBpZiAoIXMzVXJsKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gcGFzcyBhbiAnaHR0cHM6Ly9zMy5SRUdJT04uYW1hem9uYXdzLmNvbVsuY25dL2J1Y2tldC9vYmplY3QnIFVSTCB0byBDbG91ZEZvcm1hdGlvbiwgYnV0IHdlXG4gIC8vIGdvdCBhbiAnczM6Ly9idWNrZXQvb2JqZWN0JyBVUkwgaW5zdGVhZC4gQ29uc3RydWN0IHRoZSByZXN0IEFQSSBVUkwgaGVyZS5cbiAgY29uc3QgYnVja2V0TmFtZSA9IHMzVXJsWzFdO1xuICBjb25zdCBvYmplY3RLZXkgPSBzM1VybFsyXTtcblxuICBjb25zdCBvcmlnaW5hbE92ZXJyaWRlUzNFbmRwb2ludCA9IHByb2Nlc3MuZW52LkFXU19FTkRQT0lOVF9VUkxfUzM7XG4gIHNldEVudignQVdTX0VORFBPSU5UX1VSTF9TMycsIHByb2Nlc3MuZW52LkFXU19FTkRQT0lOVF9VUkxfUzNfRk9SX0NMT1VERk9STUFUSU9OKTtcbiAgdHJ5IHtcbiAgICAvLyBTREsgdjMgbm8gbG9uZ2VyIGFsbG93cyBmb3IgZ2V0dGluZyBlbmRwb2ludHMgZnJvbSBvbmx5IHJlZ2lvbi5cbiAgICAvLyBBIGNvbW1hbmQgYW5kIGNsaWVudCBjb25maWcgbXVzdCBub3cgYmUgcHJvdmlkZWQuXG4gICAgY29uc3QgczMgPSBuZXcgUzNDbGllbnQoeyByZWdpb24gfSk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBhd2FpdCBnZXRFbmRwb2ludEZyb21JbnN0cnVjdGlvbnMoe30sIEhlYWRPYmplY3RDb21tYW5kLCB7XG4gICAgICAuLi5zMy5jb25maWcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYCR7ZW5kcG9pbnQudXJsLm9yaWdpbn0vJHtidWNrZXROYW1lfS8ke29iamVjdEtleX1gO1xuICB9IGZpbmFsbHkge1xuICAgIHNldEVudignQVdTX0VORFBPSU5UX1VSTF9TMycsIG9yaWdpbmFsT3ZlcnJpZGVTM0VuZHBvaW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRFbnYobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIHByb2Nlc3MuZW52W25hbWVdID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHByb2Nlc3MuZW52W25hbWVdO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = exports.PROJECT_CONTEXT = exports.TRANSIENT_CONTEXT_KEY = void 0;\nconst settings_1 = require(\"./settings\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nvar settings_2 = require(\"./settings\");\nObject.defineProperty(exports, \"TRANSIENT_CONTEXT_KEY\", { enumerable: true, get: function () { return settings_2.TRANSIENT_CONTEXT_KEY; } });\nexports.PROJECT_CONTEXT = 'cdk.context.json';\n/**\n * Class that supports overlaying property bags\n *\n * Reads come from the first property bag that can has the given key,\n * writes go to the first property bag that is not readonly. A write\n * will remove the value from all property bags after the first\n * writable one.\n */\nclass Context {\n bags;\n fileNames;\n constructor(...bags) {\n this.bags = bags.length > 0 ? bags.map((b) => b.bag) : [new settings_1.Settings()];\n this.fileNames =\n bags.length > 0 ? bags.map((b) => b.fileName) : ['default'];\n }\n get keys() {\n return Object.keys(this.all);\n }\n has(key) {\n return this.keys.indexOf(key) > -1;\n }\n get all() {\n let ret = new settings_1.Settings();\n // In reverse order so keys to the left overwrite keys to the right of them\n for (const bag of [...this.bags].reverse()) {\n ret = ret.merge(bag);\n }\n return ret.all;\n }\n get(key) {\n for (const bag of this.bags) {\n const v = bag.get([key]);\n if (v !== undefined) {\n return v;\n }\n }\n return undefined;\n }\n set(key, value) {\n for (const bag of this.bags) {\n if (bag.readOnly) {\n continue;\n }\n // All bags past the first one have the value erased\n bag.set([key], value);\n value = undefined;\n }\n }\n unset(key) {\n this.set(key, undefined);\n }\n clear() {\n for (const key of this.keys) {\n this.unset(key);\n }\n }\n /**\n * Save a specific context file\n */\n async save(fileName) {\n const index = this.fileNames.indexOf(fileName);\n // File not found, don't do anything in this scenario\n if (index === -1) {\n return this;\n }\n const bag = this.bags[index];\n if (bag.readOnly) {\n throw new toolkit_error_1.ToolkitError('ContextReadOnly', `Context file ${fileName} is read only!`);\n }\n await bag.save(fileName);\n return this;\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXNDO0FBQ3RDLDREQUF3RDtBQUV4RCx1Q0FBbUQ7QUFBMUMsaUhBQUEscUJBQXFCLE9BQUE7QUFDakIsUUFBQSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFlbEQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsT0FBTztJQUNELElBQUksQ0FBYTtJQUNqQixTQUFTLENBQXlCO0lBRW5ELFlBQVksR0FBRyxJQUFrQjtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsU0FBUztZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsR0FBRztRQUNaLElBQUksR0FBRyxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO1FBRXpCLDJFQUEyRTtRQUMzRSxLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVztRQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDaEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pCLFNBQVM7WUFDWCxDQUFDO1lBRUQsb0RBQW9EO1lBQ3BELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QixLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQVc7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLEtBQUs7UUFDVixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLHFEQUFxRDtRQUNyRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLDRCQUFZLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLFFBQVEsZ0JBQWdCLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBaEZELDBCQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNldHRpbmdzIH0gZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG5leHBvcnQgeyBUUkFOU0lFTlRfQ09OVEVYVF9LRVkgfSBmcm9tICcuL3NldHRpbmdzJztcbmV4cG9ydCBjb25zdCBQUk9KRUNUX0NPTlRFWFQgPSAnY2RrLmNvbnRleHQuanNvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dEJhZyB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBuYW1lIG9mIHRoZSBjb250ZXh0LiBXaWxsIGJlIHVzZWQgdG8gcG90ZW50aWFsbHlcbiAgICogc2F2ZSBuZXcgY29udGV4dCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBmaWxlLlxuICAgKi9cbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IHZhbHVlcy5cbiAgICovXG4gIGJhZzogU2V0dGluZ3M7XG59XG5cbi8qKlxuICogQ2xhc3MgdGhhdCBzdXBwb3J0cyBvdmVybGF5aW5nIHByb3BlcnR5IGJhZ3NcbiAqXG4gKiBSZWFkcyBjb21lIGZyb20gdGhlIGZpcnN0IHByb3BlcnR5IGJhZyB0aGF0IGNhbiBoYXMgdGhlIGdpdmVuIGtleSxcbiAqIHdyaXRlcyBnbyB0byB0aGUgZmlyc3QgcHJvcGVydHkgYmFnIHRoYXQgaXMgbm90IHJlYWRvbmx5LiBBIHdyaXRlXG4gKiB3aWxsIHJlbW92ZSB0aGUgdmFsdWUgZnJvbSBhbGwgcHJvcGVydHkgYmFncyBhZnRlciB0aGUgZmlyc3RcbiAqIHdyaXRhYmxlIG9uZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJhZ3M6IFNldHRpbmdzW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZU5hbWVzOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmJhZ3M6IENvbnRleHRCYWdbXSkge1xuICAgIHRoaXMuYmFncyA9IGJhZ3MubGVuZ3RoID4gMCA/IGJhZ3MubWFwKChiKSA9PiBiLmJhZykgOiBbbmV3IFNldHRpbmdzKCldO1xuICAgIHRoaXMuZmlsZU5hbWVzID1cbiAgICAgIGJhZ3MubGVuZ3RoID4gMCA/IGJhZ3MubWFwKChiKSA9PiBiLmZpbGVOYW1lKSA6IFsnZGVmYXVsdCddO1xuICB9XG5cbiAgcHVibGljIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5hbGwpO1xuICB9XG5cbiAgcHVibGljIGhhcyhrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmtleXMuaW5kZXhPZihrZXkpID4gLTE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFsbCgpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBsZXQgcmV0ID0gbmV3IFNldHRpbmdzKCk7XG5cbiAgICAvLyBJbiByZXZlcnNlIG9yZGVyIHNvIGtleXMgdG8gdGhlIGxlZnQgb3ZlcndyaXRlIGtleXMgdG8gdGhlIHJpZ2h0IG9mIHRoZW1cbiAgICBmb3IgKGNvbnN0IGJhZyBvZiBbLi4udGhpcy5iYWdzXS5yZXZlcnNlKCkpIHtcbiAgICAgIHJldCA9IHJldC5tZXJnZShiYWcpO1xuICAgIH1cblxuICAgIHJldHVybiByZXQuYWxsO1xuICB9XG5cbiAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgZm9yIChjb25zdCBiYWcgb2YgdGhpcy5iYWdzKSB7XG4gICAgICBjb25zdCB2ID0gYmFnLmdldChba2V5XSk7XG4gICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGZvciAoY29uc3QgYmFnIG9mIHRoaXMuYmFncykge1xuICAgICAgaWYgKGJhZy5yZWFkT25seSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQWxsIGJhZ3MgcGFzdCB0aGUgZmlyc3Qgb25lIGhhdmUgdGhlIHZhbHVlIGVyYXNlZFxuICAgICAgYmFnLnNldChba2V5XSwgdmFsdWUpO1xuICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVuc2V0KGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXQoa2V5LCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cykge1xuICAgICAgdGhpcy51bnNldChrZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIGEgc3BlY2lmaWMgY29udGV4dCBmaWxlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZShmaWxlTmFtZTogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbGVOYW1lcy5pbmRleE9mKGZpbGVOYW1lKTtcblxuICAgIC8vIEZpbGUgbm90IGZvdW5kLCBkb24ndCBkbyBhbnl0aGluZyBpbiB0aGlzIHNjZW5hcmlvXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29uc3QgYmFnID0gdGhpcy5iYWdzW2luZGV4XTtcbiAgICBpZiAoYmFnLnJlYWRPbmx5KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDb250ZXh0UmVhZE9ubHknLCBgQ29udGV4dCBmaWxlICR7ZmlsZU5hbWV9IGlzIHJlYWQgb25seSFgKTtcbiAgICB9XG5cbiAgICBhd2FpdCBiYWcuc2F2ZShmaWxlTmFtZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestBuilder = void 0;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nclass AssetManifestBuilder {\n manifest = {\n version: cxschema.Manifest.version(),\n files: {},\n dockerImages: {},\n };\n addFileAsset(id, source, destination) {\n this.manifest.files[id] = {\n source,\n destinations: {\n current: destination,\n },\n };\n }\n addDockerImageAsset(id, source, destination) {\n this.manifest.dockerImages[id] = {\n source,\n destinations: {\n current: destination,\n },\n };\n }\n toManifest(directory) {\n return new cdk_assets_lib_1.AssetManifest(directory, this.manifest);\n }\n}\nexports.AssetManifestBuilder = AssetManifestBuilder;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LW1hbmlmZXN0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQXdEO0FBQ3hELDJEQUEyRDtBQUUzRCxNQUFhLG9CQUFvQjtJQUNkLFFBQVEsR0FBMkI7UUFDbEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ3BDLEtBQUssRUFBRSxFQUFFO1FBQ1QsWUFBWSxFQUFFLEVBQUU7S0FDakIsQ0FBQztJQUVLLFlBQVksQ0FBQyxFQUFVLEVBQUUsTUFBMkIsRUFBRSxXQUFxQztRQUNoRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQU0sQ0FBQyxFQUFFLENBQUMsR0FBRztZQUN6QixNQUFNO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxFQUFVLEVBQUUsTUFBa0MsRUFBRSxXQUE0QztRQUNySCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQWEsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUNoQyxNQUFNO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsU0FBaUI7UUFDakMsT0FBTyxJQUFJLDhCQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUE1QkQsb0RBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXRNYW5pZmVzdCB9IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBBc3NldE1hbmlmZXN0QnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWFuaWZlc3Q6IGN4c2NoZW1hLkFzc2V0TWFuaWZlc3QgPSB7XG4gICAgdmVyc2lvbjogY3hzY2hlbWEuTWFuaWZlc3QudmVyc2lvbigpLFxuICAgIGZpbGVzOiB7fSxcbiAgICBkb2NrZXJJbWFnZXM6IHt9LFxuICB9O1xuXG4gIHB1YmxpYyBhZGRGaWxlQXNzZXQoaWQ6IHN0cmluZywgc291cmNlOiBjeHNjaGVtYS5GaWxlU291cmNlLCBkZXN0aW5hdGlvbjogY3hzY2hlbWEuRmlsZURlc3RpbmF0aW9uKSB7XG4gICAgdGhpcy5tYW5pZmVzdC5maWxlcyFbaWRdID0ge1xuICAgICAgc291cmNlLFxuICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgIGN1cnJlbnQ6IGRlc3RpbmF0aW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFkZERvY2tlckltYWdlQXNzZXQoaWQ6IHN0cmluZywgc291cmNlOiBjeHNjaGVtYS5Eb2NrZXJJbWFnZVNvdXJjZSwgZGVzdGluYXRpb246IGN4c2NoZW1hLkRvY2tlckltYWdlRGVzdGluYXRpb24pIHtcbiAgICB0aGlzLm1hbmlmZXN0LmRvY2tlckltYWdlcyFbaWRdID0ge1xuICAgICAgc291cmNlLFxuICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgIGN1cnJlbnQ6IGRlc3RpbmF0aW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWFuaWZlc3QoZGlyZWN0b3J5OiBzdHJpbmcpOiBBc3NldE1hbmlmZXN0IHtcbiAgICByZXR1cm4gbmV3IEFzc2V0TWFuaWZlc3QoZGlyZWN0b3J5LCB0aGlzLm1hbmlmZXN0KTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasePublishProgressListener = exports.PublishingAws = void 0;\nexports.publishAssets = publishAssets;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst private_1 = require(\"../io/private\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Use cdk-assets to publish all assets in the given manifest.\n *\n * @deprecated used in legacy deployments only, should be migrated at some point\n */\nasync function publishAssets(manifest, sdk, targetEnv, options, ioHelper) {\n // This shouldn't really happen (it's a programming error), but we don't have\n // the types here to guide us. Do an runtime validation to be super super sure.\n if (targetEnv.account === undefined ||\n targetEnv.account === cloud_assembly_api_1.UNKNOWN_ACCOUNT ||\n targetEnv.region === undefined ||\n targetEnv.account === cloud_assembly_api_1.UNKNOWN_REGION) {\n throw new toolkit_error_1.ToolkitError('UnresolvedEnvironment', `Asset publishing requires resolved account and region, got ${JSON.stringify(targetEnv)}`);\n }\n const publisher = new cdk_assets_lib_1.AssetPublishing(manifest, {\n aws: new PublishingAws(sdk, targetEnv),\n progressListener: new PublishingProgressListener(ioHelper),\n throwOnError: false,\n publishInParallel: options.parallel ?? true,\n buildAssets: true,\n publishAssets: true,\n });\n await publisher.publish({ allowCrossAccount: options.allowCrossAccount });\n if (publisher.hasFailures) {\n throw new toolkit_error_1.ToolkitError('AssetPublishFailed', 'Failed to publish one or more assets. See the error messages above for more information.');\n }\n}\nclass PublishingAws {\n aws;\n targetEnv;\n sdkCache = new Map();\n constructor(\n /**\n * The base SDK to work with\n */\n aws, \n /**\n * Environment where the stack we're deploying is going\n */\n targetEnv) {\n this.aws = aws;\n this.targetEnv = targetEnv;\n }\n async discoverPartition() {\n return (await this.aws.baseCredentialsPartition(this.targetEnv, plugin_1.Mode.ForWriting)) ?? 'aws';\n }\n async discoverDefaultRegion() {\n return this.targetEnv.region;\n }\n async discoverCurrentAccount() {\n const account = await this.aws.defaultAccount();\n return (account ?? {\n accountId: '',\n partition: 'aws',\n });\n }\n async discoverTargetAccount(options) {\n return (await this.sdk(options)).currentAccount();\n }\n async s3Client(options) {\n return (await this.sdk(options)).s3();\n }\n async ecrClient(options) {\n return (await this.sdk(options)).ecr();\n }\n async secretsManagerClient(options) {\n return (await this.sdk(options)).secretsManager();\n }\n /**\n * Get an SDK appropriate for the given client options\n */\n async sdk(options) {\n const env = {\n ...this.targetEnv,\n region: options.region ?? this.targetEnv.region, // Default: same region as the stack\n };\n const cacheKeyMap = {\n env, // region, name, account\n assumeRuleArn: options.assumeRoleArn,\n assumeRoleExternalId: options.assumeRoleExternalId,\n };\n if (options.assumeRoleAdditionalOptions) {\n cacheKeyMap.assumeRoleAdditionalOptions = options.assumeRoleAdditionalOptions;\n }\n const cacheKey = JSON.stringify(cacheKeyMap);\n const maybeSdk = this.sdkCache.get(cacheKey);\n if (maybeSdk) {\n return maybeSdk;\n }\n const sdk = (await this.aws.forEnvironment(env, plugin_1.Mode.ForWriting, {\n assumeRoleArn: options.assumeRoleArn,\n assumeRoleExternalId: options.assumeRoleExternalId,\n assumeRoleAdditionalOptions: options.assumeRoleAdditionalOptions,\n })).sdk;\n this.sdkCache.set(cacheKey, sdk);\n return sdk;\n }\n}\nexports.PublishingAws = PublishingAws;\nconst EVENT_TO_MSG_MAKER = {\n // tracked events\n start: private_1.IO.CDK_ASSETS_I5270,\n success: private_1.IO.CDK_ASSETS_I5275,\n fail: private_1.IO.CDK_ASSETS_E5279,\n // debug events\n build: private_1.IO.CDK_ASSETS_I5271,\n cached: private_1.IO.CDK_ASSETS_I5271,\n check: private_1.IO.CDK_ASSETS_I5271,\n debug: private_1.IO.CDK_ASSETS_I5271,\n found: private_1.IO.CDK_ASSETS_I5271,\n upload: private_1.IO.CDK_ASSETS_I5271,\n shell_open: private_1.IO.CDK_ASSETS_I5271,\n // dropped events\n shell_stderr: false,\n shell_stdout: false,\n shell_close: false,\n};\nclass BasePublishProgressListener {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n onPublishEvent(type, event) {\n const io = EVENT_TO_MSG_MAKER[type];\n if (io) {\n const message = this.getMessage(type, event);\n void this.ioHelper.notify(io.msg(message, {\n type,\n message,\n progressPercentage: event.percentComplete,\n asset: event.currentAsset,\n }));\n }\n }\n}\nexports.BasePublishProgressListener = BasePublishProgressListener;\nclass PublishingProgressListener extends BasePublishProgressListener {\n getMessage(type, event) {\n return `[${event.percentComplete}%] ${type}: ${event.message}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LXB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMENBLHNDQThCQztBQTVERCw0REFFaUM7QUFDakMsb0VBQWdHO0FBRWhHLCtEQUEyRDtBQUczRCwyQ0FBbUM7QUFDbkMsc0NBQWlDO0FBZ0JqQzs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FDakMsUUFBdUIsRUFDdkIsR0FBZ0IsRUFDaEIsU0FBc0IsRUFDdEIsT0FBNkIsRUFDN0IsUUFBa0I7SUFFbEIsNkVBQTZFO0lBQzdFLCtFQUErRTtJQUMvRSxJQUNFLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUztRQUMvQixTQUFTLENBQUMsT0FBTyxLQUFLLG9DQUFlO1FBQ3JDLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUztRQUM5QixTQUFTLENBQUMsT0FBTyxLQUFLLG1DQUFjLEVBQ3BDLENBQUM7UUFDRCxNQUFNLElBQUksNEJBQVksQ0FBQyx1QkFBdUIsRUFBRSw4REFBOEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0ksQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUksZ0NBQWUsQ0FBQyxRQUFRLEVBQUU7UUFDOUMsR0FBRyxFQUFFLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDdEMsZ0JBQWdCLEVBQUUsSUFBSSwwQkFBMEIsQ0FBQyxRQUFRLENBQUM7UUFDMUQsWUFBWSxFQUFFLEtBQUs7UUFDbkIsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJO1FBQzNDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGFBQWEsRUFBRSxJQUFJO0tBQ3BCLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENB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QUFDO1FBQ3BDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3QyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUN4QyxJQUFJO2dCQUNKLE9BQU87Z0JBQ1Asa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGVBQWU7Z0JBQ3pDLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWTthQUMxQixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFyQkQsa0VBcUJDO0FBRUQsTUFBTSwwQkFBMkIsU0FBUSwyQkFBMkI7SUFDeEQsVUFBVSxDQUFDLElBQWUsRUFBRSxLQUF1QjtRQUMzRCxPQUFPLElBQUksS0FBSyxDQUFDLGVBQWUsTUFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ2xpZW50T3B0aW9ucyxcbiAgRXZlbnRUeXBlLFxuICBBY2NvdW50LFxuICBBc3NldE1hbmlmZXN0LFxuICBJQXdzLFxuICBJRUNSQ2xpZW50LFxuICBJUHVibGlzaFByb2dyZXNzLFxuICBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXIsXG4gIElTM0NsaWVudCxcbiAgSVNlY3JldHNNYW5hZ2VyQ2xpZW50LFxufSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQge1xuICBBc3NldFB1Ymxpc2hpbmcsXG59IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCB7IHR5cGUgRW52aXJvbm1lbnQsIFVOS05PV05fQUNDT1VOVCwgVU5LTk9XTl9SRUdJT04gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBQdWJsaXNoQXNzZXRFdmVudCB9IGZyb20gJy4uLy4uL3BheWxvYWRzL2RlcGxveSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvTWVzc2FnZU1ha2VyLCBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuXG5pbnRlcmZhY2UgUHVibGlzaEFzc2V0c09wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBidWlsZC9wdWJsaXNoIGFzc2V0cyBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIFRvIHJlbWFpbiBiYWNrd2FyZCBjb21wYXRpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNkay1hc3NldHMgaXMgYWxsb3dlZCB0byBkbyBjcm9zcyBhY2NvdW50IHB1Ymxpc2hpbmcuXG4gICAqL1xuICByZWFkb25seSBhbGxvd0Nyb3NzQWNjb3VudDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVc2UgY2RrLWFzc2V0cyB0byBwdWJsaXNoIGFsbCBhc3NldHMgaW4gdGhlIGdpdmVuIG1hbmlmZXN0LlxuICpcbiAqIEBkZXByZWNhdGVkIHVzZWQgaW4gbGVnYWN5IGRlcGxveW1lbnRzIG9ubHksIHNob3VsZCBiZSBtaWdyYXRlZCBhdCBzb21lIHBvaW50XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoQXNzZXRzKFxuICBtYW5pZmVzdDogQXNzZXRNYW5pZmVzdCxcbiAgc2RrOiBTZGtQcm92aWRlcixcbiAgdGFyZ2V0RW52OiBFbnZpcm9ubWVudCxcbiAgb3B0aW9uczogUHVibGlzaEFzc2V0c09wdGlvbnMsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbikge1xuICAvLyBUaGlzIHNob3VsZG4ndCByZWFsbHkgaGFwcGVuIChpdCdzIGEgcHJvZ3JhbW1pbmcgZXJyb3IpLCBidXQgd2UgZG9uJ3QgaGF2ZVxuICAvLyB0aGUgdHlwZXMgaGVyZSB0byBndWlkZSB1cy4gRG8gYW4gcnVudGltZSB2YWxpZGF0aW9uIHRvIGJlIHN1cGVyIHN1cGVyIHN1cmUuXG4gIGlmIChcbiAgICB0YXJnZXRFbnYuYWNjb3VudCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdGFyZ2V0RW52LmFjY291bnQgPT09IFVOS05PV05fQUNDT1VOVCB8fFxuICAgIHRhcmdldEVudi5yZWdpb24gPT09IHVuZGVmaW5lZCB8fFxuICAgIHRhcmdldEVudi5hY2NvdW50ID09PSBVTktOT1dOX1JFR0lPTlxuICApIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdVbnJlc29sdmVkRW52aXJvbm1lbnQnLCBgQXNzZXQgcHVibGlzaGluZyByZXF1aXJlcyByZXNvbHZlZCBhY2NvdW50IGFuZCByZWdpb24sIGdvdCAke0pTT04uc3RyaW5naWZ5KHRhcmdldEVudil9YCk7XG4gIH1cblxuICBjb25zdCBwdWJsaXNoZXIgPSBuZXcgQXNzZXRQdWJsaXNoaW5nKG1hbmlmZXN0LCB7XG4gICAgYXdzOiBuZXcgUHVibGlzaGluZ0F3cyhzZGssIHRhcmdldEVudiksXG4gICAgcHJvZ3Jlc3NMaXN0ZW5lcjogbmV3IFB1Ymxpc2hpbmdQcm9ncmVzc0xpc3RlbmVyKGlvSGVscGVyKSxcbiAgICB0aHJvd09uRXJyb3I6IGZhbHNlLFxuICAgIHB1Ymxpc2hJblBhcmFsbGVsOiBvcHRpb25zLnBhcmFsbGVsID8/IHRydWUsXG4gICAgYnVpbGRBc3NldHM6IHRydWUsXG4gICAgcHVibGlzaEFzc2V0czogdHJ1ZSxcbiAgfSk7XG4gIGF3YWl0IHB1Ymxpc2hlci5wdWJsaXNoKHsgYWxsb3dDcm9zc0FjY291bnQ6IG9wdGlvbnMuYWxsb3dDcm9zc0FjY291bnQgfSk7XG4gIGlmIChwdWJsaXNoZXIuaGFzRmFpbHVyZXMpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdBc3NldFB1Ymxpc2hGYWlsZWQnLCAnRmFpbGVkIHRvIHB1Ymxpc2ggb25lIG9yIG1vcmUgYXNzZXRzLiBTZWUgdGhlIGVycm9yIG1lc3NhZ2VzIGFib3ZlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaXNoaW5nQXdzIGltcGxlbWVudHMgSUF3cyB7XG4gIHByaXZhdGUgc2RrQ2FjaGU6IE1hcDxTdHJpbmcsIFNESz4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgU0RLIHRvIHdvcmsgd2l0aFxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlcixcblxuICAgIC8qKlxuICAgICAqIEVudmlyb25tZW50IHdoZXJlIHRoZSBzdGFjayB3ZSdyZSBkZXBsb3lpbmcgaXMgZ29pbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldEVudjogRW52aXJvbm1lbnQsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyUGFydGl0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmF3cy5iYXNlQ3JlZGVudGlhbHNQYXJ0aXRpb24odGhpcy50YXJnZXRFbnYsIE1vZGUuRm9yV3JpdGluZykpID8/ICdhd3MnO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyRGVmYXVsdFJlZ2lvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnRhcmdldEVudi5yZWdpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY292ZXJDdXJyZW50QWNjb3VudCgpOiBQcm9taXNlPEFjY291bnQ+IHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgdGhpcy5hd3MuZGVmYXVsdEFjY291bnQoKTtcbiAgICByZXR1cm4gKFxuICAgICAgYWNjb3VudCA/PyB7XG4gICAgICAgIGFjY291bnRJZDogJzx1bmtub3duIGFjY291bnQ+JyxcbiAgICAgICAgcGFydGl0aW9uOiAnYXdzJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyVGFyZ2V0QWNjb3VudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuY3VycmVudEFjY291bnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzM0NsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJUzNDbGllbnQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc2RrKG9wdGlvbnMpKS5zMygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVjckNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxJRUNSQ2xpZW50PiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuZWNyKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VjcmV0c01hbmFnZXJDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVNlY3JldHNNYW5hZ2VyQ2xpZW50PiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuc2VjcmV0c01hbmFnZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIGFwcHJvcHJpYXRlIGZvciB0aGUgZ2l2ZW4gY2xpZW50IG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc2RrKG9wdGlvbnM6IENsaWVudE9wdGlvbnMpOiBQcm9taXNlPFNESz4ge1xuICAgIGNvbnN0IGVudiA9IHtcbiAgICAgIC4uLnRoaXMudGFyZ2V0RW52LFxuICAgICAgcmVnaW9uOiBvcHRpb25zLnJlZ2lvbiA/PyB0aGlzLnRhcmdldEVudi5yZWdpb24sIC8vIERlZmF1bHQ6IHNhbWUgcmVnaW9uIGFzIHRoZSBzdGFja1xuICAgIH07XG5cbiAgICBjb25zdCBjYWNoZUtleU1hcDogYW55ID0ge1xuICAgICAgZW52LCAvLyByZWdpb24sIG5hbWUsIGFjY291bnRcbiAgICAgIGFzc3VtZVJ1bGVBcm46IG9wdGlvbnMuYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMpIHtcbiAgICAgIGNhY2hlS2V5TWFwLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IG9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gSlNPTi5zdHJpbmdpZnkoY2FjaGVLZXlNYXApO1xuXG4gICAgY29uc3QgbWF5YmVTZGsgPSB0aGlzLnNka0NhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKG1heWJlU2RrKSB7XG4gICAgICByZXR1cm4gbWF5YmVTZGs7XG4gICAgfVxuXG4gICAgY29uc3Qgc2RrID0gKFxuICAgICAgYXdhaXQgdGhpcy5hd3MuZm9yRW52aXJvbm1lbnQoXG4gICAgICAgIGVudixcbiAgICAgICAgTW9kZS5Gb3JXcml0aW5nLFxuICAgICAgICB7XG4gICAgICAgICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5hc3N1bWVSb2xlQXJuLFxuICAgICAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgKS5zZGs7XG4gICAgdGhpcy5zZGtDYWNoZS5zZXQoY2FjaGVLZXksIHNkayk7XG5cbiAgICByZXR1cm4gc2RrO1xuICB9XG59XG5cbmNvbnN0IEVWRU5UX1RPX01TR19NQUtFUjogUmVjb3JkPEV2ZW50VHlwZSwgSW9NZXNzYWdlTWFrZXI8UHVibGlzaEFzc2V0RXZlbnQ+IHwgZmFsc2U+ID0ge1xuICAvLyB0cmFja2VkIGV2ZW50c1xuICBzdGFydDogSU8uQ0RLX0FTU0VUU19JNTI3MCxcbiAgc3VjY2VzczogSU8uQ0RLX0FTU0VUU19JNTI3NSxcbiAgZmFpbDogSU8uQ0RLX0FTU0VUU19FNTI3OSxcblxuICAvLyBkZWJ1ZyBldmVudHNcbiAgYnVpbGQ6IElPLkNES19BU1NFVFNfSTUyNzEsXG4gIGNhY2hlZDogSU8uQ0RLX0FTU0VUU19JNTI3MSxcbiAgY2hlY2s6IElPLkNES19BU1NFVFNfSTUyNzEsXG4gIGRlYnVnOiBJTy5DREtfQVNTRVRTX0k1MjcxLFxuICBmb3VuZDogSU8uQ0RLX0FTU0VUU19JNTI3MSxcbiAgdXBsb2FkOiBJTy5DREtfQVNTRVRTX0k1MjcxLFxuICBzaGVsbF9vcGVuOiBJTy5DREtfQVNTRVRTX0k1MjcxLFxuXG4gIC8vIGRyb3BwZWQgZXZlbnRzXG4gIHNoZWxsX3N0ZGVycjogZmFsc2UsXG4gIHNoZWxsX3N0ZG91dDogZmFsc2UsXG4gIHNoZWxsX2Nsb3NlOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUHVibGlzaFByb2dyZXNzTGlzdGVuZXIgaW1wbGVtZW50cyBJUHVibGlzaFByb2dyZXNzTGlzdGVuZXIge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRNZXNzYWdlKHR5cGU6IEV2ZW50VHlwZSwgZXZlbnQ6IElQdWJsaXNoUHJvZ3Jlc3MpOiBzdHJpbmc7XG5cbiAgcHVibGljIG9uUHVibGlzaEV2ZW50KHR5cGU6IEV2ZW50VHlwZSwgZXZlbnQ6IElQdWJsaXNoUHJvZ3Jlc3MpOiB2b2lkIHtcbiAgICBjb25zdCBpbyA9IEVWRU5UX1RPX01TR19NQUtFUlt0eXBlXTtcbiAgICBpZiAoaW8pIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmdldE1lc3NhZ2UodHlwZSwgZXZlbnQpO1xuICAgICAgdm9pZCB0aGlzLmlvSGVscGVyLm5vdGlmeShpby5tc2cobWVzc2FnZSwge1xuICAgICAgICB0eXBlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBwcm9ncmVzc1BlcmNlbnRhZ2U6IGV2ZW50LnBlcmNlbnRDb21wbGV0ZSxcbiAgICAgICAgYXNzZXQ6IGV2ZW50LmN1cnJlbnRBc3NldCxcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgUHVibGlzaGluZ1Byb2dyZXNzTGlzdGVuZXIgZXh0ZW5kcyBCYXNlUHVibGlzaFByb2dyZXNzTGlzdGVuZXIge1xuICBwcm90ZWN0ZWQgZ2V0TWVzc2FnZSh0eXBlOiBFdmVudFR5cGUsIGV2ZW50OiBJUHVibGlzaFByb2dyZXNzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFske2V2ZW50LnBlcmNlbnRDb21wbGV0ZX0lXSAke3R5cGV9OiAke2V2ZW50Lm1lc3NhZ2V9YDtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addMetadataAssetsToManifest = addMetadataAssetsToManifest;\nconst path = require(\"path\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst chalk = require(\"chalk\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\n/**\n * Take the metadata assets from the given stack and add them to the given asset manifest\n *\n * Returns the CloudFormation parameters that need to be sent to the template to\n * pass Asset coordinates.\n */\nasync function addMetadataAssetsToManifest(ioHelper, stack, assetManifest, envResources, reuse) {\n reuse = reuse || [];\n const assets = stack.assets;\n if (assets.length === 0) {\n return {};\n }\n const toolkitInfo = await envResources.lookupToolkit();\n if (!toolkitInfo.found) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ToolkitError('BootstrapStackRequired', `This stack uses assets, so the toolkit stack must be deployed to the environment (Run \"${chalk.blue('cdk bootstrap ' + stack.environment.name)}\")`);\n }\n const params = {};\n for (const asset of assets) {\n // FIXME: Should have excluded by construct path here instead of by unique ID, preferably using\n // picomatch so we can support globs. Maybe take up during artifact refactoring.\n const reuseAsset = reuse.indexOf(asset.id) > -1;\n if (reuseAsset) {\n await ioHelper.defaults.debug(`Reusing asset ${asset.id}: ${JSON.stringify(asset)}`);\n continue;\n }\n await ioHelper.defaults.debug(`Preparing asset ${asset.id}: ${JSON.stringify(asset)}`);\n if (!stack.assembly) {\n throw new toolkit_error_1.ToolkitError('AssemblyRequired', 'Unexpected: stack assembly is required in order to find assets in assembly directory');\n }\n Object.assign(params, await prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo));\n }\n return params;\n}\n// eslint-disable-next-line @stylistic/max-len\nasync function prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo) {\n switch (asset.packaging) {\n case 'zip':\n case 'file':\n return prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, asset.packaging === 'zip' ? cxschema.FileAssetPackaging.ZIP_DIRECTORY : cxschema.FileAssetPackaging.FILE);\n case 'container-image':\n return prepareDockerImageAsset(asset, assetManifest, envResources);\n default:\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ToolkitError('UnsupportedPackaging', `Unsupported packaging type: ${asset.packaging}. You might need to upgrade your aws-cdk toolkit to support this asset type.`);\n }\n}\nasync function prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, packaging) {\n const extension = packaging === cxschema.FileAssetPackaging.ZIP_DIRECTORY ? '.zip' : path.extname(asset.path);\n const baseName = `${asset.sourceHash}${extension}`;\n // Simplify key: assets/abcdef/abcdef.zip is kinda silly and unnecessary, so if they're the same just pick one component.\n const s3Prefix = asset.id === asset.sourceHash ? 'assets/' : `assets/${asset.id}/`;\n const key = `${s3Prefix}${baseName}`;\n const s3url = `s3://${toolkitInfo.bucketName}/${key}`;\n await ioHelper.defaults.debug(`Storing asset ${asset.path} at ${s3url}`);\n assetManifest.addFileAsset(asset.sourceHash, {\n path: asset.path,\n packaging,\n }, {\n bucketName: toolkitInfo.bucketName,\n objectKey: key,\n });\n return {\n [asset.s3BucketParameter]: toolkitInfo.bucketName,\n [asset.s3KeyParameter]: `${s3Prefix}${cxapi.ASSET_PREFIX_SEPARATOR}${baseName}`,\n [asset.artifactHashParameter]: asset.sourceHash,\n };\n}\nasync function prepareDockerImageAsset(asset, assetManifest, envResources) {\n // Pre-1.21.0, repositoryName can be specified by the user or can be left out, in which case we make\n // a per-asset repository which will get adopted and cleaned up along with the stack.\n // Post-1.21.0, repositoryName will always be specified and it will be a shared repository between\n // all assets, and asset will have imageTag specified as well. Validate the combination.\n if (!asset.imageNameParameter && (!asset.repositoryName || !asset.imageTag)) {\n throw new toolkit_error_1.ToolkitError('InvalidDockerAssetConfig', 'Invalid Docker image asset configuration: \"repositoryName\" and \"imageTag\" are required when \"imageNameParameter\" is left out');\n }\n const repositoryName = asset.repositoryName ?? 'cdk/' + asset.id.replace(/[:/]/g, '-').toLowerCase();\n // Make sure the repository exists, since the 'cdk-assets' tool will not create it for us.\n const { repositoryUri } = await envResources.prepareEcrRepository(repositoryName);\n const imageTag = asset.imageTag ?? asset.sourceHash;\n assetManifest.addDockerImageAsset(asset.sourceHash, {\n directory: asset.path,\n dockerBuildArgs: asset.buildArgs,\n dockerBuildSecrets: asset.buildSecrets,\n dockerBuildSsh: asset.buildSsh,\n dockerBuildTarget: asset.target,\n dockerFile: asset.file,\n networkMode: asset.networkMode,\n platform: asset.platform,\n dockerOutputs: asset.outputs,\n }, {\n repositoryName,\n imageTag,\n });\n if (!asset.imageNameParameter) {\n return {};\n }\n return { [asset.imageNameParameter]: `${repositoryUri}:${imageTag}` };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLGtFQXlDQztBQXpERCw2QkFBNkI7QUFDN0IscURBQXFEO0FBQ3JELDJEQUEyRDtBQUMzRCwrQkFBK0I7QUFFL0IsK0RBQTJEO0FBSzNEOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxRQUFrQixFQUNsQixLQUF3QyxFQUN4QyxhQUFtQyxFQUNuQyxZQUFrQyxFQUNsQyxLQUFnQjtJQUVoQixLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNwQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRTVCLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLDhDQUE4QztRQUM5QyxNQUFNLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsRUFBRSwwRkFBMEYsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsV0FBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6TSxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztJQUUxQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLCtGQUErRjtRQUMvRixnRkFBZ0Y7UUFDaEYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxL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WTtRQUN0QyxjQUFjLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDOUIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU07UUFDL0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ3RCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPO0tBQzdCLEVBQUU7UUFDRCxjQUFjO1FBQ2QsUUFBUTtLQUNULENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxHQUFHLGFBQWEsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi9hc3NldC1tYW5pZmVzdC1idWlsZGVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0SW5mbyB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbi8qKlxuICogVGFrZSB0aGUgbWV0YWRhdGEgYXNzZXRzIGZyb20gdGhlIGdpdmVuIHN0YWNrIGFuZCBhZGQgdGhlbSB0byB0aGUgZ2l2ZW4gYXNzZXQgbWFuaWZlc3RcbiAqXG4gKiBSZXR1cm5zIHRoZSBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXJzIHRoYXQgbmVlZCB0byBiZSBzZW50IHRvIHRoZSB0ZW1wbGF0ZSB0b1xuICogcGFzcyBBc3NldCBjb29yZGluYXRlcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZE1ldGFkYXRhQXNzZXRzVG9NYW5pZmVzdChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0QnVpbGRlcixcbiAgZW52UmVzb3VyY2VzOiBFbnZpcm9ubWVudFJlc291cmNlcyxcbiAgcmV1c2U/OiBzdHJpbmdbXSxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICByZXVzZSA9IHJldXNlIHx8IFtdO1xuICBjb25zdCBhc3NldHMgPSBzdGFjay5hc3NldHM7XG5cbiAgaWYgKGFzc2V0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCB0b29sa2l0SW5mbyA9IGF3YWl0IGVudlJlc291cmNlcy5sb29rdXBUb29sa2l0KCk7XG4gIGlmICghdG9vbGtpdEluZm8uZm91bmQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwU3RhY2tSZXF1aXJlZCcsIGBUaGlzIHN0YWNrIHVzZXMgYXNzZXRzLCBzbyB0aGUgdG9vbGtpdCBzdGFjayBtdXN0IGJlIGRlcGxveWVkIHRvIHRoZSBlbnZpcm9ubWVudCAoUnVuIFwiJHtjaGFsay5ibHVlKCdjZGsgYm9vdHN0cmFwICcgKyBzdGFjay5lbnZpcm9ubWVudCEubmFtZSl9XCIpYCk7XG4gIH1cblxuICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IGFzc2V0IG9mIGFzc2V0cykge1xuICAgIC8vIEZJWE1FOiBTaG91bGQgaGF2ZSBleGNsdWRlZCBieSBjb25zdHJ1Y3QgcGF0aCBoZXJlIGluc3RlYWQgb2YgYnkgdW5pcXVlIElELCBwcmVmZXJhYmx5IHVzaW5nXG4gICAgLy8gcGljb21hdGNoIHNvIHdlIGNhbiBzdXBwb3J0IGdsb2JzLiBNYXliZSB0YWtlIHVwIGR1cmluZyBhcnRpZmFjdCByZWZhY3RvcmluZy5cbiAgICBjb25zdCByZXVzZUFzc2V0ID0gcmV1c2UuaW5kZXhPZihhc3NldC5pZCkgPiAtMTtcblxuICAgIGlmIChyZXVzZUFzc2V0KSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmV1c2luZyBhc3NldCAke2Fzc2V0LmlkfTogJHtKU09OLnN0cmluZ2lmeShhc3NldCl9YCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUHJlcGFyaW5nIGFzc2V0ICR7YXNzZXQuaWR9OiAke0pTT04uc3RyaW5naWZ5KGFzc2V0KX1gKTtcbiAgICBpZiAoIXN0YWNrLmFzc2VtYmx5KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdBc3NlbWJseVJlcXVpcmVkJywgJ1VuZXhwZWN0ZWQ6IHN0YWNrIGFzc2VtYmx5IGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGZpbmQgYXNzZXRzIGluIGFzc2VtYmx5IGRpcmVjdG9yeScpO1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBhd2FpdCBwcmVwYXJlQXNzZXQoaW9IZWxwZXIsIGFzc2V0LCBhc3NldE1hbmlmZXN0LCBlbnZSZXNvdXJjZXMsIHRvb2xraXRJbmZvKSk7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG5hc3luYyBmdW5jdGlvbiBwcmVwYXJlQXNzZXQoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgYXNzZXQ6IGN4c2NoZW1hLkFzc2V0TWV0YWRhdGFFbnRyeSxcbiAgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIGVudlJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXMsXG4gIHRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICBzd2l0Y2ggKGFzc2V0LnBhY2thZ2luZykge1xuICAgIGNhc2UgJ3ppcCc6XG4gICAgY2FzZSAnZmlsZSc6XG4gICAgICByZXR1cm4gcHJlcGFyZUZpbGVBc3NldChcbiAgICAgICAgaW9IZWxwZXIsXG4gICAgICAgIGFzc2V0LFxuICAgICAgICBhc3NldE1hbmlmZXN0LFxuICAgICAgICB0b29sa2l0SW5mbyxcbiAgICAgICAgYXNzZXQucGFja2FnaW5nID09PSAnemlwJyA/IGN4c2NoZW1hLkZpbGVBc3NldFBhY2thZ2luZy5aSVBfRElSRUNUT1JZIDogY3hzY2hlbWEuRmlsZUFzc2V0UGFja2FnaW5nLkZJTEUpO1xuICAgIGNhc2UgJ2NvbnRhaW5lci1pbWFnZSc6XG4gICAgICByZXR1cm4gcHJlcGFyZURvY2tlckltYWdlQXNzZXQoYXNzZXQsIGFzc2V0TWFuaWZlc3QsIGVudlJlc291cmNlcyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Vuc3VwcG9ydGVkUGFja2FnaW5nJywgYFVuc3VwcG9ydGVkIHBhY2thZ2luZyB0eXBlOiAkeyhhc3NldCBhcyBhbnkpLnBhY2thZ2luZ30uIFlvdSBtaWdodCBuZWVkIHRvIHVwZ3JhZGUgeW91ciBhd3MtY2RrIHRvb2xraXQgdG8gc3VwcG9ydCB0aGlzIGFzc2V0IHR5cGUuYCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUZpbGVBc3NldChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBhc3NldDogY3hzY2hlbWEuRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSxcbiAgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIHRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbiAgcGFja2FnaW5nOiBjeHNjaGVtYS5GaWxlQXNzZXRQYWNrYWdpbmcsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gcGFja2FnaW5nID09PSBjeHNjaGVtYS5GaWxlQXNzZXRQYWNrYWdpbmcuWklQX0RJUkVDVE9SWSA/ICcuemlwJyA6IHBhdGguZXh0bmFtZShhc3NldC5wYXRoKTtcbiAgY29uc3QgYmFzZU5hbWUgPSBgJHthc3NldC5zb3VyY2VIYXNofSR7ZXh0ZW5zaW9ufWA7XG4gIC8vIFNpbXBsaWZ5IGtleTogYXNzZXRzL2FiY2RlZi9hYmNkZWYuemlwIGlzIGtpbmRhIHNpbGx5IGFuZCB1bm5lY2Vzc2FyeSwgc28gaWYgdGhleSdyZSB0aGUgc2FtZSBqdXN0IHBpY2sgb25lIGNvbXBvbmVudC5cbiAgY29uc3QgczNQcmVmaXggPSBhc3NldC5pZCA9PT0gYXNzZXQuc291cmNlSGFzaCA/ICdhc3NldHMvJyA6IGBhc3NldHMvJHthc3NldC5pZH0vYDtcbiAgY29uc3Qga2V5ID0gYCR7czNQcmVmaXh9JHtiYXNlTmFtZX1gO1xuICBjb25zdCBzM3VybCA9IGBzMzovLyR7dG9vbGtpdEluZm8uYnVja2V0TmFtZX0vJHtrZXl9YDtcblxuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgU3RvcmluZyBhc3NldCAke2Fzc2V0LnBhdGh9IGF0ICR7czN1cmx9YCk7XG5cbiAgYXNzZXRNYW5pZmVzdC5hZGRGaWxlQXNzZXQoYXNzZXQuc291cmNlSGFzaCwge1xuICAgIHBhdGg6IGFzc2V0LnBhdGgsXG4gICAgcGFja2FnaW5nLFxuICB9LCB7XG4gICAgYnVja2V0TmFtZTogdG9vbGtpdEluZm8uYnVja2V0TmFtZSxcbiAgICBvYmplY3RLZXk6IGtleSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBbYXNzZXQuczNCdWNrZXRQYXJhbWV0ZXJdOiB0b29sa2l0SW5mby5idWNrZXROYW1lLFxuICAgIFthc3NldC5zM0tleVBhcmFtZXRlcl06IGAke3MzUHJlZml4fSR7Y3hhcGkuQVNTRVRfUFJFRklYX1NFUEFSQVRPUn0ke2Jhc2VOYW1lfWAsXG4gICAgW2Fzc2V0LmFydGlmYWN0SGFzaFBhcmFtZXRlcl06IGFzc2V0LnNvdXJjZUhhc2gsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByZXBhcmVEb2NrZXJJbWFnZUFzc2V0KFxuICBhc3NldDogY3hzY2hlbWEuQ29udGFpbmVySW1hZ2VBc3NldE1ldGFkYXRhRW50cnksXG4gIGFzc2V0TWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RCdWlsZGVyLFxuICBlbnZSZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIC8vIFByZS0xLjIxLjAsIHJlcG9zaXRvcnlOYW1lIGNhbiBiZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIgb3IgY2FuIGJlIGxlZnQgb3V0LCBpbiB3aGljaCBjYXNlIHdlIG1ha2VcbiAgLy8gYSBwZXItYXNzZXQgcmVwb3NpdG9yeSB3aGljaCB3aWxsIGdldCBhZG9wdGVkIGFuZCBjbGVhbmVkIHVwIGFsb25nIHdpdGggdGhlIHN0YWNrLlxuICAvLyBQb3N0LTEuMjEuMCwgcmVwb3NpdG9yeU5hbWUgd2lsbCBhbHdheXMgYmUgc3BlY2lmaWVkIGFuZCBpdCB3aWxsIGJlIGEgc2hhcmVkIHJlcG9zaXRvcnkgYmV0d2VlblxuICAvLyBhbGwgYXNzZXRzLCBhbmQgYXNzZXQgd2lsbCBoYXZlIGltYWdlVGFnIHNwZWNpZmllZCBhcyB3ZWxsLiBWYWxpZGF0ZSB0aGUgY29tYmluYXRpb24uXG4gIGlmICghYXNzZXQuaW1hZ2VOYW1lUGFyYW1ldGVyICYmICghYXNzZXQucmVwb3NpdG9yeU5hbWUgfHwgIWFzc2V0LmltYWdlVGFnKSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWREb2NrZXJBc3NldENvbmZpZycsICdJbnZhbGlkIERvY2tlciBpbWFnZSBhc3NldCBjb25maWd1cmF0aW9uOiBcInJlcG9zaXRvcnlOYW1lXCIgYW5kIFwiaW1hZ2VUYWdcIiBhcmUgcmVxdWlyZWQgd2hlbiBcImltYWdlTmFtZVBhcmFtZXRlclwiIGlzIGxlZnQgb3V0Jyk7XG4gIH1cblxuICBjb25zdCByZXBvc2l0b3J5TmFtZSA9IGFzc2V0LnJlcG9zaXRvcnlOYW1lID8/ICdjZGsvJyArIGFzc2V0LmlkLnJlcGxhY2UoL1s6L10vZywgJy0nKS50b0xvd2VyQ2FzZSgpO1xuXG4gIC8vIE1ha2Ugc3VyZSB0aGUgcmVwb3NpdG9yeSBleGlzdHMsIHNpbmNlIHRoZSAnY2RrLWFzc2V0cycgdG9vbCB3aWxsIG5vdCBjcmVhdGUgaXQgZm9yIHVzLlxuICBjb25zdCB7IHJlcG9zaXRvcnlVcmkgfSA9IGF3YWl0IGVudlJlc291cmNlcy5wcmVwYXJlRWNyUmVwb3NpdG9yeShyZXBvc2l0b3J5TmFtZSk7XG4gIGNvbnN0IGltYWdlVGFnID0gYXNzZXQuaW1hZ2VUYWcgPz8gYXNzZXQuc291cmNlSGFzaDtcblxuICBhc3NldE1hbmlmZXN0LmFkZERvY2tlckltYWdlQXNzZXQoYXNzZXQuc291cmNlSGFzaCwge1xuICAgIGRpcmVjdG9yeTogYXNzZXQucGF0aCxcbiAgICBkb2NrZXJCdWlsZEFyZ3M6IGFzc2V0LmJ1aWxkQXJncyxcbiAgICBkb2NrZXJCdWlsZFNlY3JldHM6IGFzc2V0LmJ1aWxkU2VjcmV0cyxcbiAgICBkb2NrZXJCdWlsZFNzaDogYXNzZXQuYnVpbGRTc2gsXG4gICAgZG9ja2VyQnVpbGRUYXJnZXQ6IGFzc2V0LnRhcmdldCxcbiAgICBkb2NrZXJGaWxlOiBhc3NldC5maWxlLFxuICAgIG5ldHdvcmtNb2RlOiBhc3NldC5uZXR3b3JrTW9kZSxcbiAgICBwbGF0Zm9ybTogYXNzZXQucGxhdGZvcm0sXG4gICAgZG9ja2VyT3V0cHV0czogYXNzZXQub3V0cHV0cyxcbiAgfSwge1xuICAgIHJlcG9zaXRvcnlOYW1lLFxuICAgIGltYWdlVGFnLFxuICB9KTtcblxuICBpZiAoIWFzc2V0LmltYWdlTmFtZVBhcmFtZXRlcikge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICByZXR1cm4geyBbYXNzZXQuaW1hZ2VOYW1lUGFyYW1ldGVyXTogYCR7cmVwb3NpdG9yeVVyaX06JHtpbWFnZVRhZ31gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParameterValues = exports.TemplateParameters = void 0;\nexports.waitForChangeSet = waitForChangeSet;\nexports.createDiffChangeSet = createDiffChangeSet;\nexports.uploadStackTemplateAssets = uploadStackTemplateAssets;\nexports.createChangeSet = createChangeSet;\nexports.changeSetHasNoChanges = changeSetHasNoChanges;\nexports.waitForStackDelete = waitForStackDelete;\nexports.waitForStackDeploy = waitForStackDeploy;\nexports.stabilizeStack = stabilizeStack;\nconst util_1 = require(\"util\");\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\nconst asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst cloudformation_1 = require(\"../cloudformation\");\n/**\n * Describe a changeset in CloudFormation, regardless of its current state.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the Stack the ChangeSet belongs to\n * @param changeSetName - the name of the ChangeSet\n * @param fetchAll - if true, fetches all pages of the change set description.\n *\n * @returns CloudFormation information about the ChangeSet\n */\nasync function describeChangeSet(cfn, stackName, changeSetName, { fetchAll }) {\n const response = await cfn.describeChangeSet({\n StackName: stackName,\n ChangeSetName: changeSetName,\n });\n // If fetchAll is true, traverse all pages from the change set description.\n while (fetchAll && response.NextToken != null) {\n const nextPage = await cfn.describeChangeSet({\n StackName: stackName,\n ChangeSetName: response.ChangeSetId ?? changeSetName,\n NextToken: response.NextToken,\n });\n // Consolidate the changes\n if (nextPage.Changes != null) {\n response.Changes = response.Changes != null ? response.Changes.concat(nextPage.Changes) : nextPage.Changes;\n }\n // Forward the new NextToken\n response.NextToken = nextPage.NextToken;\n }\n return response;\n}\n/**\n * Waits for a function to return non-+undefined+ before returning.\n *\n * @param valueProvider - a function that will return a value that is not +undefined+ once the wait should be over\n * @param timeout - the time to wait between two calls to +valueProvider+\n *\n * @returns the value that was returned by +valueProvider+\n */\nasync function waitFor(valueProvider, timeout = 5000) {\n while (true) {\n const result = await valueProvider();\n if (result === null) {\n return undefined;\n }\n else if (result !== undefined) {\n return result;\n }\n await new Promise((cb) => setTimeout(cb, timeout));\n }\n}\n/**\n * Waits for a ChangeSet to be available for triggering a StackUpdate.\n *\n * Will return a changeset that is either ready to be executed or has no changes.\n * Will throw in other cases.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the Stack that the ChangeSet belongs to\n * @param changeSetName - the name of the ChangeSet\n * @param fetchAll - if true, fetches all pages of the ChangeSet before returning.\n *\n * @returns the CloudFormation description of the ChangeSet\n */\nasync function waitForChangeSet(cfn, ioHelper, stackName, changeSetName, { fetchAll, validationReporter }) {\n await ioHelper.defaults.debug((0, util_1.format)('Waiting for changeset %s on stack %s to finish creating...', changeSetName, stackName));\n const ret = await waitFor(async () => {\n const description = await describeChangeSet(cfn, stackName, changeSetName, {\n fetchAll,\n });\n // The following doesn't use a switch because tsc will not allow fall-through, UNLESS it is allows\n // EVERYWHERE that uses this library directly or indirectly, which is undesirable.\n if (description.Status === 'CREATE_PENDING' || description.Status === 'CREATE_IN_PROGRESS') {\n await ioHelper.defaults.debug((0, util_1.format)('Changeset %s on stack %s is still creating', changeSetName, stackName));\n return undefined;\n }\n if (description.Status === client_cloudformation_1.ChangeSetStatus.CREATE_COMPLETE || changeSetHasNoChanges(description)) {\n return description;\n }\n const isEarlyValidationError = description.Status === client_cloudformation_1.ChangeSetStatus.FAILED &&\n description.StatusReason?.includes('AWS::EarlyValidation');\n if (isEarlyValidationError) {\n const details = await validationReporter?.fetchDetails(changeSetName, stackName);\n if (details) {\n throw new toolkit_error_1.DeploymentError(details, 'EarlyValidationFailure');\n }\n }\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.DeploymentError(`Failed to create ChangeSet ${changeSetName} on ${stackName}: ${description.Status || 'NO_STATUS'}, ${description.StatusReason || 'no reason provided'}`, 'ChangeSetCreationFailed');\n });\n if (!ret) {\n throw new toolkit_error_1.DeploymentError('Change set took too long to be created; aborting', 'ChangeSetTimeout');\n }\n return ret;\n}\n/**\n * Create a changeset for a diff operation\n */\nasync function createDiffChangeSet(ioHelper, options) {\n return uploadBodyParameterAndCreateChangeSet(ioHelper, {\n ...options,\n includeNestedStacks: (0, cloudformation_1.templateContainsNestedStacks)(options.stack.template),\n });\n}\n/**\n * Returns all file entries from an AssetManifestArtifact that look like templates.\n *\n * This is used in the `uploadBodyParameterAndCreateChangeSet` function to find\n * all template asset files to build and publish.\n *\n * Returns a tuple of [AssetManifest, FileManifestEntry[]]\n */\nfunction templatesFromAssetManifestArtifact(artifact) {\n const assets = [];\n const fileName = artifact.file;\n const assetManifest = cdk_assets_lib_1.AssetManifest.fromFile(fileName);\n assetManifest.entries.forEach((entry) => {\n if (entry.type === 'file') {\n const source = entry.source;\n if (source.path && source.path.endsWith('.template.json')) {\n assets.push(entry);\n }\n }\n });\n return [assetManifest, assets];\n}\nasync function uploadBodyParameterAndCreateChangeSet(ioHelper, options) {\n try {\n await uploadStackTemplateAssets(options.stack, options.deployments);\n const env = await options.deployments.envs.accessStackForMutableStackOperations(options.stack);\n const bodyParameter = await (0, cloudformation_1.makeBodyParameter)(ioHelper, options.stack, env.resolvedEnvironment, new asset_manifest_builder_1.AssetManifestBuilder(), env.resources);\n const cfn = env.sdk.cloudFormation();\n const stack = await cloudformation_1.CloudFormationStack.lookup(cfn, options.stack.stackName, false);\n // A stack in REVIEW_IN_PROGRESS was created by a previous CREATE changeset\n // that was never executed. Treat it as non-existent for changeset purposes.\n const exists = stack.exists && stack.stackStatus.name !== 'REVIEW_IN_PROGRESS';\n const executionRoleArn = await env.replacePlaceholders(options.stack.cloudFormationExecutionRoleArn);\n await ioHelper.defaults.info('Hold on while we create a read-only change set to get a diff with accurate replacement information (use --method=template to use a less accurate but faster template-only diff)\\n');\n return await createChangeSet(ioHelper, {\n cfn,\n changeSetName: 'cdk-diff-change-set',\n stack: options.stack,\n exists,\n uuid: options.uuid,\n willExecute: options.willExecute,\n bodyParameter,\n parameters: options.parameters,\n resourcesToImport: options.resourcesToImport,\n importExistingResources: options.importExistingResources,\n includeNestedStacks: options.includeNestedStacks,\n role: executionRoleArn,\n });\n }\n catch (e) {\n // This function is currently only used by diff so these messages are diff-specific\n if (options.failOnError) {\n throw toolkit_error_1.ToolkitError.withCause('ChangeSetCreationFailed', 'Could not create a change set, and \\'--method=change-set\\' was specified. Please check your permissions or use \\'--method=auto\\' to allow falling back to a template diff.', e);\n }\n await ioHelper.defaults.debug(String(e));\n await ioHelper.defaults.info('Could not create a change set, will base the diff on template differences (run again with -v to see the reason)\\n');\n return undefined;\n }\n}\n/**\n * Uploads the assets that look like templates for this CloudFormation stack\n *\n * This is necessary for any CloudFormation call that needs the template, it may need\n * to be uploaded to an S3 bucket first. We have to follow the instructions in the\n * asset manifest, because technically that is the only place that knows about\n * bucket and assumed roles and such.\n */\nasync function uploadStackTemplateAssets(stack, deployments) {\n for (const artifact of stack.dependencies) {\n // Skip artifact if it is not an Asset Manifest Artifact\n if (!cxapi.AssetManifestArtifact.isAssetManifestArtifact(artifact)) {\n continue;\n }\n const [assetManifest, file_entries] = templatesFromAssetManifestArtifact(artifact);\n for (const entry of file_entries) {\n await deployments.buildSingleAsset(artifact, assetManifest, entry, {\n stack,\n });\n await deployments.publishSingleAsset(assetManifest, entry, {\n stack,\n });\n }\n }\n}\nasync function createChangeSet(ioHelper, options) {\n if (options.exists) {\n await cleanupOldChangeset(options.cfn, ioHelper, options.changeSetName, options.stack.stackName);\n }\n await ioHelper.defaults.debug(`Attempting to create ChangeSet with name ${options.changeSetName} for stack ${options.stack.stackName}`);\n const templateParams = TemplateParameters.fromTemplate(options.stack.template);\n const stackParams = templateParams.supplyAll(options.parameters);\n const changeSet = await options.cfn.createChangeSet({\n StackName: options.stack.stackName,\n ChangeSetName: options.changeSetName,\n ChangeSetType: options.resourcesToImport ? 'IMPORT' : options.exists ? 'UPDATE' : 'CREATE',\n Description: `CDK Changeset for diff ${options.uuid}`,\n ClientToken: `diff${options.uuid}`,\n TemplateURL: options.bodyParameter.TemplateURL,\n TemplateBody: options.bodyParameter.TemplateBody,\n Parameters: stackParams.apiParameters,\n ResourcesToImport: options.resourcesToImport,\n ImportExistingResources: options.importExistingResources,\n IncludeNestedStacks: options.includeNestedStacks || undefined,\n RoleARN: options.role,\n Tags: toCfnTags(options.stack.tags),\n Capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM', 'CAPABILITY_AUTO_EXPAND'],\n });\n await ioHelper.defaults.debug((0, util_1.format)('Initiated creation of changeset: %s; waiting for it to finish creating...', changeSet.Id));\n // Fetching all pages if we'll execute, so we can have the correct change count when monitoring.\n const createdChangeSet = await waitForChangeSet(options.cfn, ioHelper, options.stack.stackName, options.changeSetName, {\n fetchAll: options.willExecute,\n });\n await cleanupOldChangeset(options.cfn, ioHelper, options.changeSetName, options.stack.stackName);\n return createdChangeSet;\n}\nfunction toCfnTags(tags) {\n return Object.entries(tags).map(([k, v]) => ({\n Key: k,\n Value: v,\n }));\n}\nasync function cleanupOldChangeset(cfn, ioHelper, changeSetName, stackName) {\n // Delete any existing change sets generated by CDK since change set names must be unique.\n // The delete request is successful as long as the stack exists (even if the change set does not exist).\n await ioHelper.defaults.debug(`Removing existing change set with name ${changeSetName} if it exists`);\n await cfn.deleteChangeSet({\n StackName: stackName,\n ChangeSetName: changeSetName,\n });\n}\n/**\n * Return true if the given change set has no changes\n *\n * This must be determined from the status, not the 'Changes' array on the\n * object; the latter can be empty because no resources were changed, but if\n * there are changes to Outputs, the change set can still be executed.\n */\nfunction changeSetHasNoChanges(description) {\n const noChangeErrorPrefixes = [\n // Error message for a regular template\n \"The submitted information didn't contain changes.\",\n // Error message when a Transform is involved (see #10650)\n 'No updates are to be performed.',\n ];\n return (description.Status === 'FAILED' && noChangeErrorPrefixes.some((p) => (description.StatusReason ?? '').startsWith(p)));\n}\n/**\n * Waits for a CloudFormation stack to stabilize in a complete/available state\n * after a delete operation is issued.\n *\n * Fails if the stack is in a FAILED state. Will not fail if the stack was\n * already deleted.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the stack to wait for after a delete\n *\n * @returns the CloudFormation description of the stabilized stack after the delete attempt\n */\nasync function waitForStackDelete(cfn, ioHelper, stackName) {\n const stack = await stabilizeStack(cfn, ioHelper, stackName);\n if (!stack) {\n return undefined;\n }\n const status = stack.stackStatus;\n if (status.isFailure) {\n throw new toolkit_error_1.ToolkitError('StackDeleteFailed', `The stack named ${stackName} is in a failed state. You may need to delete it from the AWS console : ${status}`);\n }\n else if (status.isDeleted) {\n return undefined;\n }\n return stack;\n}\n/**\n * Waits for a CloudFormation stack to stabilize in a complete/available state\n * after an update/create operation is issued.\n *\n * Fails if the stack is in a FAILED state, ROLLBACK state, or DELETED state.\n *\n * @param cfn - a CloudFormation client\n * @param stackName - the name of the stack to wait for after an update\n *\n * @returns the CloudFormation description of the stabilized stack after the update attempt\n */\nasync function waitForStackDeploy(cfn, ioHelper, stackName) {\n const stack = await stabilizeStack(cfn, ioHelper, stackName);\n if (!stack) {\n return undefined;\n }\n const status = stack.stackStatus;\n if (status.isCreationFailure) {\n throw new toolkit_error_1.ToolkitError('StackCreationFailed', `The stack named ${stackName} failed creation, it may need to be manually deleted from the AWS console: ${status}`);\n }\n else if (!status.isDeploySuccess) {\n throw new toolkit_error_1.DeploymentError(`The stack named ${stackName} failed to deploy: ${status}`, 'StackDeployFailed');\n }\n return stack;\n}\n/**\n * Wait for a stack to become stable (no longer _IN_PROGRESS), returning it\n */\nasync function stabilizeStack(cfn, ioHelper, stackName) {\n await ioHelper.defaults.debug((0, util_1.format)('Waiting for stack %s to finish creating or updating...', stackName));\n return waitFor(async () => {\n const stack = await cloudformation_1.CloudFormationStack.lookup(cfn, stackName);\n if (!stack.exists) {\n await ioHelper.defaults.debug((0, util_1.format)('Stack %s does not exist', stackName));\n return null;\n }\n const status = stack.stackStatus;\n if (status.isInProgress) {\n await ioHelper.defaults.debug((0, util_1.format)('Stack %s has an ongoing operation in progress and is not stable (%s)', stackName, status));\n return undefined;\n }\n else if (status.isReviewInProgress) {\n // This may happen if a stack creation operation is interrupted before the ChangeSet execution starts. Recovering\n // from this would requiring manual intervention (deleting or executing the pending ChangeSet), and failing to do\n // so will result in an endless wait here (the ChangeSet wont delete or execute itself). Instead of blocking\n // \"forever\" we proceed as if the stack was existing and stable. If there is a concurrent operation that just\n // hasn't finished proceeding just yet, either this operation or the concurrent one may fail due to the other one\n // having made progress. Which is fine. I guess.\n await ioHelper.defaults.debug((0, util_1.format)('Stack %s is in REVIEW_IN_PROGRESS state. Considering this is a stable status (%s)', stackName, status));\n }\n return stack;\n });\n}\n/**\n * The set of (formal) parameters that have been declared in a template\n */\nclass TemplateParameters {\n params;\n static fromTemplate(template) {\n return new TemplateParameters(template.Parameters || {});\n }\n constructor(params) {\n this.params = params;\n }\n /**\n * Calculate stack parameters to pass from the given desired parameter values\n *\n * Will throw if parameters without a Default value or a Previous value are not\n * supplied.\n */\n supplyAll(updates) {\n return new ParameterValues(this.params, updates);\n }\n /**\n * From the template, the given desired values and the current values, calculate the changes to the stack parameters\n *\n * Will take into account parameters already set on the template (will emit\n * 'UsePreviousValue: true' for those unless the value is changed), and will\n * throw if parameters without a Default value or a Previous value are not\n * supplied.\n */\n updateExisting(updates, previousValues) {\n return new ParameterValues(this.params, updates, previousValues);\n }\n}\nexports.TemplateParameters = TemplateParameters;\n/**\n * The set of parameters we're going to pass to a Stack\n */\nclass ParameterValues {\n formalParams;\n values = {};\n apiParameters = [];\n constructor(formalParams, updates, previousValues = {}) {\n this.formalParams = formalParams;\n const missingRequired = new Array();\n for (const [key, formalParam] of Object.entries(this.formalParams)) {\n // Check updates first, then use the previous value (if available), then use\n // the default (if available).\n //\n // If we don't find a parameter value using any of these methods, then that's an error.\n const updatedValue = updates[key];\n if (updatedValue !== undefined) {\n this.values[key] = updatedValue;\n this.apiParameters.push({\n ParameterKey: key,\n ParameterValue: updates[key],\n });\n continue;\n }\n if (key in previousValues) {\n this.values[key] = previousValues[key];\n this.apiParameters.push({ ParameterKey: key, UsePreviousValue: true });\n continue;\n }\n if (formalParam.Default !== undefined) {\n this.values[key] = formalParam.Default;\n continue;\n }\n // Oh no\n missingRequired.push(key);\n }\n if (missingRequired.length > 0) {\n throw new toolkit_error_1.ToolkitError('MissingParameters', `The following CloudFormation Parameters are missing a value: ${missingRequired.join(', ')}`);\n }\n // Just append all supplied overrides that aren't really expected (this\n // will fail CFN but maybe people made typos that they want to be notified\n // of)\n const unknownParam = ([key, _]) => this.formalParams[key] === undefined;\n const hasValue = ([_, value]) => !!value;\n for (const [key, value] of Object.entries(updates).filter(unknownParam).filter(hasValue)) {\n this.values[key] = value;\n this.apiParameters.push({ ParameterKey: key, ParameterValue: value });\n }\n }\n /**\n * Whether this set of parameter updates will change the actual stack values\n */\n hasChanges(currentValues) {\n // If any of the parameters are SSM parameters, deploying must always happen\n // because we can't predict what the values will be. We will allow some\n // parameters to opt out of this check by having a magic string in their description.\n if (Object.values(this.formalParams).some((p) => p.Type.startsWith('AWS::SSM::Parameter::') && !p.Description?.includes(cloud_assembly_api_1.SSMPARAM_NO_INVALIDATE))) {\n return 'ssm';\n }\n // Otherwise we're dirty if:\n // - any of the existing values are removed, or changed\n if (Object.entries(currentValues).some(([key, value]) => !(key in this.values) || value !== this.values[key])) {\n return true;\n }\n // - any of the values we're setting are new\n if (Object.keys(this.values).some((key) => !(key in currentValues))) {\n return true;\n }\n return false;\n }\n}\nexports.ParameterValues = ParameterValues;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNmbi1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0dBLDRDQThDQztBQXVDRCxrREFRQztBQTJGRCw4REFpQkM7QUFFRCwwQ0FzQ0M7QUErQkQsc0RBV0M7QUFjRCxnREFvQkM7QUFhRCxnREFzQkM7QUFLRCx3Q0E0QkM7QUF6ZUQsK0JBQThCO0FBRTlCLDREQUF3RDtBQUN4RCxxREFBcUQ7QUFDckQsb0VBQXFFO0FBT3JFLDBFQUV3QztBQUN4QyxxRUFBZ0U7QUFFaEUsK0RBQTRFO0FBRzVFLHNEQUF5RztBQVF6Rzs7Ozs7Ozs7O0dBU0c7QUFDSCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLEdBQTBCLEVBQzFCLFNBQWlCLEVBQ2pCLGFBQXFCLEVBQ3JCLEVBQUUsUUFBUSxFQUF5QjtJQUVuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztRQUMzQyxTQUFTLEVBQUUsU0FBUztRQUNwQixhQUFhLEVBQUUsYUFBYTtLQUM3QixDQUFDLENBQUM7SUFFSCwyRUFBMkU7SUFDM0UsT0FBTyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztZQUMzQyxTQUFTLEVBQUUsU0FBUztZQUNwQixhQUFhLEVBQUUsUUFBUSxDQUFDLFdBQVcsSUFBSSxhQUFhO1lBQ3BELFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztTQUM5QixDQUFDLENBQUM7UUFFSCwwQkFBMEI7UUFDMUIsSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFP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RyxJQUFJLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQXBGRCwwQ0FvRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgRmlsZU1hbmlmZXN0RW50cnkgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgeyBBc3NldE1hbmlmZXN0IH0gZnJvbSAnQGF3cy1jZGsvY2RrLWFzc2V0cy1saWInO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFNTTVBBUkFNX05PX0lOVkFMSURBVEUgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUge1xuICBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIFBhcmFtZXRlcixcbiAgUmVzb3VyY2VUb0ltcG9ydCxcbiAgVGFnLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlU2V0U3RhdHVzLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgQXNzZXRNYW5pZmVzdEJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0LW1hbmlmZXN0LWJ1aWxkZXInO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50cyB9IGZyb20gJy4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgRGVwbG95bWVudEVycm9yLCBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRGb3JtYXRpb25DbGllbnQsIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlLCBUZW1wbGF0ZUJvZHlQYXJhbWV0ZXIsIFRlbXBsYXRlUGFyYW1ldGVyIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFjaywgbWFrZUJvZHlQYXJhbWV0ZXIsIHRlbXBsYXRlQ29udGFpbnNOZXN0ZWRTdGFja3MgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlc1RvSW1wb3J0IH0gZnJvbSAnLi4vcmVzb3VyY2UtaW1wb3J0JztcblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uUmVwb3J0ZXIge1xuICBmZXRjaERldGFpbHMoY2hhbmdlU2V0TmFtZTogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZSBhIGNoYW5nZXNldCBpbiBDbG91ZEZvcm1hdGlvbiwgcmVnYXJkbGVzcyBvZiBpdHMgY3VycmVudCBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0gY2ZuICAgICAgICAgICAtIGEgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gKiBAcGFyYW0gc3RhY2tOYW1lICAgICAtIHRoZSBuYW1lIG9mIHRoZSBTdGFjayB0aGUgQ2hhbmdlU2V0IGJlbG9uZ3MgdG9cbiAqIEBwYXJhbSBjaGFuZ2VTZXROYW1lIC0gdGhlIG5hbWUgb2YgdGhlIENoYW5nZVNldFxuICogQHBhcmFtIGZldGNoQWxsICAgICAgLSBpZiB0cnVlLCBmZXRjaGVzIGFsbCBwYWdlcyBvZiB0aGUgY2hhbmdlIHNldCBkZXNjcmlwdGlvbi5cbiAqXG4gKiBAcmV0dXJucyAgICAgICBDbG91ZEZvcm1hdGlvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ2hhbmdlU2V0XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRlc2NyaWJlQ2hhbmdlU2V0KFxuICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gIGNoYW5nZVNldE5hbWU6IHN0cmluZyxcbiAgeyBmZXRjaEFsbCB9OiB7IGZldGNoQWxsOiBib29sZWFuIH0sXG4pOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNmbi5kZXNjcmliZUNoYW5nZVNldCh7XG4gICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgfSk7XG5cbiAgLy8gSWYgZmV0Y2hBbGwgaXMgdHJ1ZSwgdHJhdmVyc2UgYWxsIHBhZ2VzIGZyb20gdGhlIGNoYW5nZSBzZXQgZGVzY3JpcHRpb24uXG4gIHdoaWxlIChmZXRjaEFsbCAmJiByZXNwb25zZS5OZXh0VG9rZW4gIT0gbnVsbCkge1xuICAgIGNvbnN0IG5leHRQYWdlID0gYXdhaXQgY2ZuLmRlc2NyaWJlQ2hhbmdlU2V0KHtcbiAgICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgICAgQ2hhbmdlU2V0TmFtZTogcmVzcG9uc2UuQ2hhbmdlU2V0SWQgPz8gY2hhbmdlU2V0TmFtZSxcbiAgICAgIE5leHRUb2tlbjogcmVzcG9uc2UuTmV4dFRva2VuLFxuICAgIH0pO1xuXG4gICAgLy8gQ29uc29saWRhdGUgdGhlIGNoYW5nZXNcbiAgICBpZiAobmV4dFBhZ2UuQ2hhbmdlcyAhPSBudWxsKSB7XG4gICAgICByZXNwb25zZS5DaGFuZ2VzID0gcmVzcG9uc2UuQ2hhbmdlcyAhPSBudWxsID8gcmVzcG9uc2UuQ2hhbmdlcy5jb25jYXQobmV4dFBhZ2UuQ2hhbmdlcykgOiBuZXh0UGFnZS5DaGFuZ2VzO1xuICAgIH1cblxuICAgIC8vIEZvcndhcmQgdGhlIG5ldyBOZXh0VG9rZW5cbiAgICByZXNwb25zZS5OZXh0VG9rZW4gPSBuZXh0UGFnZS5OZXh0VG9rZW47XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbi8qKlxuICogV2FpdHMgZm9yIGEgZnVuY3Rpb24gdG8gcmV0dXJuIG5vbi0rdW5kZWZpbmVkKyBiZWZvcmUgcmV0dXJuaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVByb3ZpZGVyIC0gYSBmdW5jdGlvbiB0aGF0IHdpbGwgcmV0dXJuIGEgdmFsdWUgdGhhdCBpcyBub3QgK3VuZGVmaW5lZCsgb25jZSB0aGUgd2FpdCBzaG91bGQgYmUgb3ZlclxuICogQHBhcmFtIHRpbWVvdXQgICAgIC0gdGhlIHRpbWUgdG8gd2FpdCBiZXR3ZWVuIHR3byBjYWxscyB0byArdmFsdWVQcm92aWRlcitcbiAqXG4gKiBAcmV0dXJucyAgICAgICB0aGUgdmFsdWUgdGhhdCB3YXMgcmV0dXJuZWQgYnkgK3ZhbHVlUHJvdmlkZXIrXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3I8VD4oXG4gIHZhbHVlUHJvdmlkZXI6ICgpID0+IFByb21pc2U8VCB8IG51bGwgfCB1bmRlZmluZWQ+LFxuICB0aW1lb3V0OiBudW1iZXIgPSA1MDAwLFxuKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPiB7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsdWVQcm92aWRlcigpO1xuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgYXdhaXQgbmV3IFByb21pc2UoKGNiKSA9PiBzZXRUaW1lb3V0KGNiLCB0aW1lb3V0KSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXYWl0cyBmb3IgYSBDaGFuZ2VTZXQgdG8gYmUgYXZhaWxhYmxlIGZvciB0cmlnZ2VyaW5nIGEgU3RhY2tVcGRhdGUuXG4gKlxuICogV2lsbCByZXR1cm4gYSBjaGFuZ2VzZXQgdGhhdCBpcyBlaXRoZXIgcmVhZHkgdG8gYmUgZXhlY3V0ZWQgb3IgaGFzIG5vIGNoYW5nZXMuXG4gKiBXaWxsIHRocm93IGluIG90aGVyIGNhc2VzLlxuICpcbiAqIEBwYXJhbSBjZm4gICAgICAgICAgIC0gYSBDbG91ZEZvcm1hdGlvbiBjbGllbnRcbiAqIEBwYXJhbSBzdGFja05hbWUgICAgIC0gdGhlIG5hbWUgb2YgdGhlIFN0YWNrIHRoYXQgdGhlIENoYW5nZVNldCBiZWxvbmdzIHRvXG4gKiBAcGFyYW0gY2hhbmdlU2V0TmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBDaGFuZ2VTZXRcbiAqIEBwYXJhbSBmZXRjaEFsbCAgICAgIC0gaWYgdHJ1ZSwgZmV0Y2hlcyBhbGwgcGFnZXMgb2YgdGhlIENoYW5nZVNldCBiZWZvcmUgcmV0dXJuaW5nLlxuICpcbiAqIEByZXR1cm5zICAgICAgIHRoZSBDbG91ZEZvcm1hdGlvbiBkZXNjcmlwdGlvbiBvZiB0aGUgQ2hhbmdlU2V0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ2hhbmdlU2V0KFxuICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja05hbWU6IHN0cmluZyxcbiAgY2hhbmdlU2V0TmFtZTogc3RyaW5nLFxuICB7IGZldGNoQWxsLCB2YWxpZGF0aW9uUmVwb3J0ZXIgfTogeyBmZXRjaEFsbDogYm9vbGVhbjsgdmFsaWRhdGlvblJlcG9ydGVyPzogVmFsaWRhdGlvblJlcG9ydGVyIH0sXG4pOiBQcm9taXNlPERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dD4ge1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ1dhaXRpbmcgZm9yIGNoYW5nZXNldCAlcyBvbiBzdGFjayAlcyB0byBmaW5pc2ggY3JlYXRpbmcuLi4nLCBjaGFuZ2VTZXROYW1lLCBzdGFja05hbWUpKTtcbiAgY29uc3QgcmV0ID0gYXdhaXQgd2FpdEZvcihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBkZXNjcmliZUNoYW5nZVNldChjZm4sIHN0YWNrTmFtZSwgY2hhbmdlU2V0TmFtZSwge1xuICAgICAgZmV0Y2hBbGwsXG4gICAgfSk7XG4gICAgLy8gVGhlIGZvbGxvd2luZyBkb2Vzbid0IHVzZSBhIHN3aXRjaCBiZWNhdXNlIHRzYyB3aWxsIG5vdCBhbGxvdyBmYWxsLXRocm91Z2gsIFVOTEVTUyBpdCBpcyBhbGxvd3NcbiAgICAvLyBFVkVSWVdIRVJFIHRoYXQgdXNlcyB0aGlzIGxpYnJhcnkgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwgd2hpY2ggaXMgdW5kZXNpcmFibGUuXG4gICAgaWYgKGRlc2NyaXB0aW9uLlN0YXR1cyA9PT0gJ0NSRUFURV9QRU5ESU5HJyB8fCBkZXNjcmlwdGlvbi5TdGF0dXMgPT09ICdDUkVBVEVfSU5fUFJPR1JFU1MnKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ0NoYW5nZXNldCAlcyBvbiBzdGFjayAlcyBpcyBzdGlsbCBjcmVhdGluZycsIGNoYW5nZVNldE5hbWUsIHN0YWNrTmFtZSkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoZGVzY3JpcHRpb24uU3RhdHVzID09PSBDaGFuZ2VTZXRTdGF0dXMuQ1JFQVRFX0NPTVBMRVRFIHx8IGNoYW5nZVNldEhhc05vQ2hhbmdlcyhkZXNjcmlwdGlvbikpIHtcbiAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBpc0Vhcmx5VmFsaWRhdGlvbkVycm9yID0gZGVzY3JpcHRpb24uU3RhdHVzID09PSBDaGFuZ2VTZXRTdGF0dXMuRkFJTEVEICYmXG4gICAgICBkZXNjcmlwdGlvbi5TdGF0dXNSZWFzb24/LmluY2x1ZGVzKCdBV1M6OkVhcmx5VmFsaWRhdGlvbicpO1xuXG4gICAgaWYgKGlzRWFybHlWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGNvbnN0IGRldGFpbHMgPSBhd2FpdCB2YWxpZGF0aW9uUmVwb3J0ZXI/LmZldGNoRGV0YWlscyhjaGFuZ2VTZXROYW1lLCBzdGFja05hbWUpO1xuICAgICAgaWYgKGRldGFpbHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IERlcGxveW1lbnRFcnJvcihkZXRhaWxzLCAnRWFybHlWYWxpZGF0aW9uRmFpbHVyZScpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgdGhyb3cgbmV3IERlcGxveW1lbnRFcnJvcihcbiAgICAgIGBGYWlsZWQgdG8gY3JlYXRlIENoYW5nZVNldCAke2NoYW5nZVNldE5hbWV9IG9uICR7c3RhY2tOYW1lfTogJHtkZXNjcmlwdGlvbi5TdGF0dXMgfHwgJ05PX1NUQVRVUyd9LCAke1xuICAgICAgICBkZXNjcmlwdGlvbi5TdGF0dXNSZWFzb24gfHwgJ25vIHJlYXNvbiBwcm92aWRlZCdcbiAgICAgIH1gLFxuICAgICAgJ0NoYW5nZVNldENyZWF0aW9uRmFpbGVkJyxcbiAgICApO1xuICB9KTtcblxuICBpZiAoIXJldCkge1xuICAgIHRocm93IG5ldyBEZXBsb3ltZW50RXJyb3IoJ0NoYW5nZSBzZXQgdG9vayB0b28gbG9uZyB0byBiZSBjcmVhdGVkOyBhYm9ydGluZycsICdDaGFuZ2VTZXRUaW1lb3V0Jyk7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgdHlwZSBQcmVwYXJlQ2hhbmdlU2V0T3B0aW9ucyA9IHtcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzO1xuICB1dWlkOiBzdHJpbmc7XG4gIHdpbGxFeGVjdXRlOiBib29sZWFuO1xuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG4gIHBhcmFtZXRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9O1xuICByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0O1xuICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcz86IGJvb2xlYW47XG4gIGluY2x1ZGVOZXN0ZWRTdGFja3M/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmYXVsdCBiZWhhdmlvciBpcyB0byBsb2cgQVdTIENsb3VkRm9ybWF0aW9uIGVycm9ycyBhbmQgbW92ZSBvbi4gU2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSB0byBpbnN0ZWFkXG4gICAqIGZhaWwgb24gZXJyb3JzIHJlY2VpdmVkIGJ5IEFXUyBDbG91ZEZvcm1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGZhaWxPbkVycm9yPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUNoYW5nZVNldE9wdGlvbnMgPSB7XG4gIGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50O1xuICBjaGFuZ2VTZXROYW1lOiBzdHJpbmc7XG4gIHdpbGxFeGVjdXRlOiBib29sZWFuO1xuICBleGlzdHM6IGJvb2xlYW47XG4gIHV1aWQ6IHN0cmluZztcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgYm9keVBhcmFtZXRlcjogVGVtcGxhdGVCb2R5UGFyYW1ldGVyO1xuICBwYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgcmVzb3VyY2VzVG9JbXBvcnQ/OiBSZXNvdXJjZVRvSW1wb3J0W107XG4gIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzPzogYm9vbGVhbjtcbiAgaW5jbHVkZU5lc3RlZFN0YWNrcz86IGJvb2xlYW47XG4gIHJvbGU/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIENyZWF0ZSBhIGNoYW5nZXNldCBmb3IgYSBkaWZmIG9wZXJhdGlvblxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGlmZkNoYW5nZVNldChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBvcHRpb25zOiBQcmVwYXJlQ2hhbmdlU2V0T3B0aW9ucyxcbik6IFByb21pc2U8RGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IHwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiB1cGxvYWRCb2R5UGFyYW1ldGVyQW5kQ3JlYXRlQ2hhbmdlU2V0KGlvSGVscGVyLCB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBpbmNsdWRlTmVzdGVkU3RhY2tzOiB0ZW1wbGF0ZUNvbnRhaW5zTmVzdGVkU3RhY2tzKG9wdGlvbnMuc3RhY2sudGVtcGxhdGUpLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBmaWxlIGVudHJpZXMgZnJvbSBhbiBBc3NldE1hbmlmZXN0QXJ0aWZhY3QgdGhhdCBsb29rIGxpa2UgdGVtcGxhdGVzLlxuICpcbiAqIFRoaXMgaXMgdXNlZCBpbiB0aGUgYHVwbG9hZEJvZHlQYXJhbWV0ZXJBbmRDcmVhdGVDaGFuZ2VTZXRgIGZ1bmN0aW9uIHRvIGZpbmRcbiAqIGFsbCB0ZW1wbGF0ZSBhc3NldCBmaWxlcyB0byBidWlsZCBhbmQgcHVibGlzaC5cbiAqXG4gKiBSZXR1cm5zIGEgdHVwbGUgb2YgW0Fzc2V0TWFuaWZlc3QsIEZpbGVNYW5pZmVzdEVudHJ5W11dXG4gKi9cbmZ1bmN0aW9uIHRlbXBsYXRlc0Zyb21Bc3NldE1hbmlmZXN0QXJ0aWZhY3QoXG4gIGFydGlmYWN0OiBjeGFwaS5Bc3NldE1hbmlmZXN0QXJ0aWZhY3QsXG4pOiBbQXNzZXRNYW5pZmVzdCwgRmlsZU1hbmlmZXN0RW50cnlbXV0ge1xuICBjb25zdCBhc3NldHM6IEZpbGVNYW5pZmVzdEVudHJ5W10gPSBbXTtcbiAgY29uc3QgZmlsZU5hbWUgPSBhcnRpZmFjdC5maWxlO1xuICBjb25zdCBhc3NldE1hbmlmZXN0ID0gQXNzZXRNYW5pZmVzdC5mcm9tRmlsZShmaWxlTmFtZSk7XG5cbiAgYXNzZXRNYW5pZmVzdC5lbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgaWYgKGVudHJ5LnR5cGUgPT09ICdmaWxlJykge1xuICAgICAgY29uc3Qgc291cmNlID0gKGVudHJ5IGFzIEZpbGVNYW5pZmVzdEVudHJ5KS5zb3VyY2U7XG4gICAgICBpZiAoc291cmNlLnBhdGggJiYgc291cmNlLnBhdGguZW5kc1dpdGgoJy50ZW1wbGF0ZS5qc29uJykpIHtcbiAgICAgICAgYXNzZXRzLnB1c2goZW50cnkgYXMgRmlsZU1hbmlmZXN0RW50cnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBbYXNzZXRNYW5pZmVzdCwgYXNzZXRzXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBsb2FkQm9keVBhcmFtZXRlckFuZENyZWF0ZUNoYW5nZVNldChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBvcHRpb25zOiBQcmVwYXJlQ2hhbmdlU2V0T3B0aW9ucyxcbik6IFByb21pc2U8RGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgdXBsb2FkU3RhY2tUZW1wbGF0ZUFzc2V0cyhvcHRpb25zLnN0YWNrLCBvcHRpb25zLmRlcGxveW1lbnRzKTtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCBvcHRpb25zLmRlcGxveW1lbnRzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKG9wdGlvbnMuc3RhY2spO1xuXG4gICAgY29uc3QgYm9keVBhcmFtZXRlciA9IGF3YWl0IG1ha2VCb2R5UGFyYW1ldGVyKFxuICAgICAgaW9IZWxwZXIsXG4gICAgICBvcHRpb25zLnN0YWNrLFxuICAgICAgZW52LnJlc29sdmVkRW52aXJvbm1lbnQsXG4gICAgICBuZXcgQXNzZXRNYW5pZmVzdEJ1aWxkZXIoKSxcbiAgICAgIGVudi5yZXNvdXJjZXMsXG4gICAgKTtcbiAgICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLCBmYWxzZSk7XG4gICAgLy8gQSBzdGFjayBpbiBSRVZJRVdfSU5fUFJPR1JFU1Mgd2FzIGNyZWF0ZWQgYnkgYSBwcmV2aW91cyBDUkVBVEUgY2hhbmdlc2V0XG4gICAgLy8gdGhhdCB3YXMgbmV2ZXIgZXhlY3V0ZWQuIFRyZWF0IGl0IGFzIG5vbi1leGlzdGVudCBmb3IgY2hhbmdlc2V0IHB1cnBvc2VzLlxuICAgIGNvbnN0IGV4aXN0cyA9IHN0YWNrLmV4aXN0cyAmJiBzdGFjay5zdGFja1N0YXR1cy5uYW1lICE9PSAnUkVWSUVXX0lOX1BST0dSRVNTJztcblxuICAgIGNvbnN0IGV4ZWN1dGlvblJvbGVBcm4gPSBhd2FpdCBlbnYucmVwbGFjZVBsYWNlaG9sZGVycyhvcHRpb25zLnN0YWNrLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybik7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhcbiAgICAgICdIb2xkIG9uIHdoaWxlIHdlIGNyZWF0ZSBhIHJlYWQtb25seSBjaGFuZ2Ugc2V0IHRvIGdldCBhIGRpZmYgd2l0aCBhY2N1cmF0ZSByZXBsYWNlbWVudCBpbmZvcm1hdGlvbiAodXNlIC0tbWV0aG9kPXRlbXBsYXRlIHRvIHVzZSBhIGxlc3MgYWNjdXJhdGUgYnV0IGZhc3RlciB0ZW1wbGF0ZS1vbmx5IGRpZmYpXFxuJyxcbiAgICApO1xuXG4gICAgcmV0dXJuIGF3YWl0IGNyZWF0ZUNoYW5nZVNldChpb0hlbHBlciwge1xuICAgICAgY2ZuLFxuICAgICAgY2hhbmdlU2V0TmFtZTogJ2Nkay1kaWZmLWNoYW5nZS1zZXQnLFxuICAgICAgc3RhY2s6IG9wdGlvbnMuc3RhY2ssXG4gICAgICBleGlzdHMsXG4gICAgICB1dWlkOiBvcHRpb25zLnV1aWQsXG4gICAgICB3aWxsRXhlY3V0ZTogb3B0aW9ucy53aWxsRXhlY3V0ZSxcbiAgICAgIGJvZHlQYXJhbWV0ZXIsXG4gICAgICBwYXJhbWV0ZXJzOiBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICByZXNvdXJjZXNUb0ltcG9ydDogb3B0aW9ucy5yZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzOiBvcHRpb25zLmltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgICAgaW5jbHVkZU5lc3RlZFN0YWNrczogb3B0aW9ucy5pbmNsdWRlTmVzdGVkU3RhY2tzLFxuICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZUFybixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IGRpZmYgc28gdGhlc2UgbWVzc2FnZXMgYXJlIGRpZmYtc3BlY2lmaWNcbiAgICBpZiAob3B0aW9ucy5mYWlsT25FcnJvcikge1xuICAgICAgdGhyb3cgVG9vbGtpdEVycm9yLndpdGhDYXVzZSgnQ2hhbmdlU2V0Q3JlYXRpb25GYWlsZWQnLCAnQ291bGQgbm90IGNyZWF0ZSBhIGNoYW5nZSBzZXQsIGFuZCBcXCctLW1ldGhvZD1jaGFuZ2Utc2V0XFwnIHdhcyBzcGVjaWZpZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zIG9yIHVzZSBcXCctLW1ldGhvZD1hdXRvXFwnIHRvIGFsbG93IGZhbGxpbmcgYmFjayB0byBhIHRlbXBsYXRlIGRpZmYuJywgZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoU3RyaW5nKGUpKTtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKFxuICAgICAgJ0NvdWxkIG5vdCBjcmVhdGUgYSBjaGFuZ2Ugc2V0LCB3aWxsIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMgKHJ1biBhZ2FpbiB3aXRoIC12IHRvIHNlZSB0aGUgcmVhc29uKVxcbicsXG4gICAgKTtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBVcGxvYWRzIHRoZSBhc3NldHMgdGhhdCBsb29rIGxpa2UgdGVtcGxhdGVzIGZvciB0aGlzIENsb3VkRm9ybWF0aW9uIHN0YWNrXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGFueSBDbG91ZEZvcm1hdGlvbiBjYWxsIHRoYXQgbmVlZHMgdGhlIHRlbXBsYXRlLCBpdCBtYXkgbmVlZFxuICogdG8gYmUgdXBsb2FkZWQgdG8gYW4gUzMgYnVja2V0IGZpcnN0LiBXZSBoYXZlIHRvIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZVxuICogYXNzZXQgbWFuaWZlc3QsIGJlY2F1c2UgdGVjaG5pY2FsbHkgdGhhdCBpcyB0aGUgb25seSBwbGFjZSB0aGF0IGtub3dzIGFib3V0XG4gKiBidWNrZXQgYW5kIGFzc3VtZWQgcm9sZXMgYW5kIHN1Y2guXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGxvYWRTdGFja1RlbXBsYXRlQXNzZXRzKHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cykge1xuICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIHN0YWNrLmRlcGVuZGVuY2llcykge1xuICAgIC8vIFNraXAgYXJ0aWZhY3QgaWYgaXQgaXMgbm90IGFuIEFzc2V0IE1hbmlmZXN0IEFydGlmYWN0XG4gICAgaWYgKCFjeGFwaS5Bc3NldE1hbmlmZXN0QXJ0aWZhY3QuaXNBc3NldE1hbmlmZXN0QXJ0aWZhY3QoYXJ0aWZhY3QpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBbYXNzZXRNYW5pZmVzdCwgZmlsZV9lbnRyaWVzXSA9IHRlbXBsYXRlc0Zyb21Bc3NldE1hbmlmZXN0QXJ0aWZhY3QoYXJ0aWZhY3QpO1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZmlsZV9lbnRyaWVzKSB7XG4gICAgICBhd2FpdCBkZXBsb3ltZW50cy5idWlsZFNpbmdsZUFzc2V0KGFydGlmYWN0LCBhc3NldE1hbmlmZXN0LCBlbnRyeSwge1xuICAgICAgICBzdGFjayxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgZGVwbG95bWVudHMucHVibGlzaFNpbmdsZUFzc2V0KGFzc2V0TWFuaWZlc3QsIGVudHJ5LCB7XG4gICAgICAgIHN0YWNrLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVDaGFuZ2VTZXQoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgb3B0aW9uczogQ3JlYXRlQ2hhbmdlU2V0T3B0aW9ucyxcbik6IFByb21pc2U8RGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0PiB7XG4gIGlmIChvcHRpb25zLmV4aXN0cykge1xuICAgIGF3YWl0IGNsZWFudXBPbGRDaGFuZ2VzZXQob3B0aW9ucy5jZm4sIGlvSGVscGVyLCBvcHRpb25zLmNoYW5nZVNldE5hbWUsIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lKTtcbiAgfVxuXG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBBdHRlbXB0aW5nIHRvIGNyZWF0ZSBDaGFuZ2VTZXQgd2l0aCBuYW1lICR7b3B0aW9ucy5jaGFuZ2VTZXROYW1lfSBmb3Igc3RhY2sgJHtvcHRpb25zLnN0YWNrLnN0YWNrTmFtZX1gKTtcblxuICBjb25zdCB0ZW1wbGF0ZVBhcmFtcyA9IFRlbXBsYXRlUGFyYW1ldGVycy5mcm9tVGVtcGxhdGUob3B0aW9ucy5zdGFjay50ZW1wbGF0ZSk7XG4gIGNvbnN0IHN0YWNrUGFyYW1zID0gdGVtcGxhdGVQYXJhbXMuc3VwcGx5QWxsKG9wdGlvbnMucGFyYW1ldGVycyk7XG5cbiAgY29uc3QgY2hhbmdlU2V0ID0gYXdhaXQgb3B0aW9ucy5jZm4uY3JlYXRlQ2hhbmdlU2V0KHtcbiAgICBTdGFja05hbWU6IG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgIENoYW5nZVNldE5hbWU6IG9wdGlvbnMuY2hhbmdlU2V0TmFtZSxcbiAgICBDaGFuZ2VTZXRUeXBlOiBvcHRpb25zLnJlc291cmNlc1RvSW1wb3J0ID8gJ0lNUE9SVCcgOiBvcHRpb25zLmV4aXN0cyA/ICdVUERBVEUnIDogJ0NSRUFURScsXG4gICAgRGVzY3JpcHRpb246IGBDREsgQ2hhbmdlc2V0IGZvciBkaWZmICR7b3B0aW9ucy51dWlkfWAsXG4gICAgQ2xpZW50VG9rZW46IGBkaWZmJHtvcHRpb25zLnV1aWR9YCxcbiAgICBUZW1wbGF0ZVVSTDogb3B0aW9ucy5ib2R5UGFyYW1ldGVyLlRlbXBsYXRlVVJMLFxuICAgIFRlbXBsYXRlQm9keTogb3B0aW9ucy5ib2R5UGFyYW1ldGVyLlRlbXBsYXRlQm9keSxcbiAgICBQYXJhbWV0ZXJzOiBzdGFja1BhcmFtcy5hcGlQYXJhbWV0ZXJzLFxuICAgIFJlc291cmNlc1RvSW1wb3J0OiBvcHRpb25zLnJlc291cmNlc1RvSW1wb3J0LFxuICAgIEltcG9ydEV4aXN0aW5nUmVzb3VyY2VzOiBvcHRpb25zLmltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgIEluY2x1ZGVOZXN0ZWRTdGFja3M6IG9wdGlvbnMuaW5jbHVkZU5lc3RlZFN0YWNrcyB8fCB1bmRlZmluZWQsXG4gICAgUm9sZUFSTjogb3B0aW9ucy5yb2xlLFxuICAgIFRhZ3M6IHRvQ2ZuVGFncyhvcHRpb25zLnN0YWNrLnRhZ3MpLFxuICAgIENhcGFiaWxpdGllczogWydDQVBBQklMSVRZX0lBTScsICdDQVBBQklMSVRZX05BTUVEX0lBTScsICdDQVBBQklMSVRZX0FVVE9fRVhQQU5EJ10sXG4gIH0pO1xuXG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnSW5pdGlhdGVkIGNyZWF0aW9uIG9mIGNoYW5nZXNldDogJXM7IHdhaXRpbmcgZm9yIGl0IHRvIGZpbmlzaCBjcmVhdGluZy4uLicsIGNoYW5nZVNldC5JZCkpO1xuICAvLyBGZXRjaGluZyBhbGwgcGFnZXMgaWYgd2UnbGwgZXhlY3V0ZSwgc28gd2UgY2FuIGhhdmUgdGhlIGNvcnJlY3QgY2hhbmdlIGNvdW50IHdoZW4gbW9uaXRvcmluZy5cbiAgY29uc3QgY3JlYXRlZENoYW5nZVNldCA9IGF3YWl0IHdhaXRGb3JDaGFuZ2VTZXQob3B0aW9ucy5jZm4sIGlvSGVscGVyLCBvcHRpb25zLnN0YWNrLnN0YWNrTmFtZSwgb3B0aW9ucy5jaGFuZ2VTZXROYW1lLCB7XG4gICAgZmV0Y2hBbGw6IG9wdGlvbnMud2lsbEV4ZWN1dGUsXG4gIH0pO1xuICBhd2FpdCBjbGVhbnVwT2xkQ2hhbmdlc2V0KG9wdGlvbnMuY2ZuLCBpb0hlbHBlciwgb3B0aW9ucy5jaGFuZ2VTZXROYW1lLCBvcHRpb25zLnN0YWNrLnN0YWNrTmFtZSk7XG5cbiAgcmV0dXJuIGNyZWF0ZWRDaGFuZ2VTZXQ7XG59XG5cbmZ1bmN0aW9uIHRvQ2ZuVGFncyh0YWdzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0pOiBUYWdbXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyh0YWdzKS5tYXAoKFtrLCB2XSkgPT4gKHtcbiAgICBLZXk6IGssXG4gICAgVmFsdWU6IHYsXG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xlYW51cE9sZENoYW5nZXNldChcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgY2hhbmdlU2V0TmFtZTogc3RyaW5nLFxuICBzdGFja05hbWU6IHN0cmluZyxcbikge1xuICAvLyBEZWxldGUgYW55IGV4aXN0aW5nIGNoYW5nZSBzZXRzIGdlbmVyYXRlZCBieSBDREsgc2luY2UgY2hhbmdlIHNldCBuYW1lcyBtdXN0IGJlIHVuaXF1ZS5cbiAgLy8gVGhlIGRlbGV0ZSByZXF1ZXN0IGlzIHN1Y2Nlc3NmdWwgYXMgbG9uZyBhcyB0aGUgc3RhY2sgZXhpc3RzIChldmVuIGlmIHRoZSBjaGFuZ2Ugc2V0IGRvZXMgbm90IGV4aXN0KS5cbiAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYFJlbW92aW5nIGV4aXN0aW5nIGNoYW5nZSBzZXQgd2l0aCBuYW1lICR7Y2hhbmdlU2V0TmFtZX0gaWYgaXQgZXhpc3RzYCk7XG4gIGF3YWl0IGNmbi5kZWxldGVDaGFuZ2VTZXQoe1xuICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgIENoYW5nZVNldE5hbWU6IGNoYW5nZVNldE5hbWUsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBjaGFuZ2Ugc2V0IGhhcyBubyBjaGFuZ2VzXG4gKlxuICogVGhpcyBtdXN0IGJlIGRldGVybWluZWQgZnJvbSB0aGUgc3RhdHVzLCBub3QgdGhlICdDaGFuZ2VzJyBhcnJheSBvbiB0aGVcbiAqIG9iamVjdDsgdGhlIGxhdHRlciBjYW4gYmUgZW1wdHkgYmVjYXVzZSBubyByZXNvdXJjZXMgd2VyZSBjaGFuZ2VkLCBidXQgaWZcbiAqIHRoZXJlIGFyZSBjaGFuZ2VzIHRvIE91dHB1dHMsIHRoZSBjaGFuZ2Ugc2V0IGNhbiBzdGlsbCBiZSBleGVjdXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZVNldEhhc05vQ2hhbmdlcyhkZXNjcmlwdGlvbjogRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0KSB7XG4gIGNvbnN0IG5vQ2hhbmdlRXJyb3JQcmVmaXhlcyA9IFtcbiAgICAvLyBFcnJvciBtZXNzYWdlIGZvciBhIHJlZ3VsYXIgdGVtcGxhdGVcbiAgICBcIlRoZSBzdWJtaXR0ZWQgaW5mb3JtYXRpb24gZGlkbid0IGNvbnRhaW4gY2hhbmdlcy5cIixcbiAgICAvLyBFcnJvciBtZXNzYWdlIHdoZW4gYSBUcmFuc2Zvcm0gaXMgaW52b2x2ZWQgKHNlZSAjMTA2NTApXG4gICAgJ05vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZC4nLFxuICBdO1xuXG4gIHJldHVybiAoXG4gICAgZGVzY3JpcHRpb24uU3RhdHVzID09PSAnRkFJTEVEJyAmJiBub0NoYW5nZUVycm9yUHJlZml4ZXMuc29tZSgocCkgPT4gKGRlc2NyaXB0aW9uLlN0YXR1c1JlYXNvbiA/PyAnJykuc3RhcnRzV2l0aChwKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBXYWl0cyBmb3IgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayB0byBzdGFiaWxpemUgaW4gYSBjb21wbGV0ZS9hdmFpbGFibGUgc3RhdGVcbiAqIGFmdGVyIGEgZGVsZXRlIG9wZXJhdGlvbiBpcyBpc3N1ZWQuXG4gKlxuICogRmFpbHMgaWYgdGhlIHN0YWNrIGlzIGluIGEgRkFJTEVEIHN0YXRlLiBXaWxsIG5vdCBmYWlsIGlmIHRoZSBzdGFjayB3YXNcbiAqIGFscmVhZHkgZGVsZXRlZC5cbiAqXG4gKiBAcGFyYW0gY2ZuICAgICAgICAtIGEgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gKiBAcGFyYW0gc3RhY2tOYW1lICAgICAgLSB0aGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gd2FpdCBmb3IgYWZ0ZXIgYSBkZWxldGVcbiAqXG4gKiBAcmV0dXJucyAgICAgdGhlIENsb3VkRm9ybWF0aW9uIGRlc2NyaXB0aW9uIG9mIHRoZSBzdGFiaWxpemVkIHN0YWNrIGFmdGVyIHRoZSBkZWxldGUgYXR0ZW1wdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvclN0YWNrRGVsZXRlKFxuICBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja05hbWU6IHN0cmluZyxcbik6IFByb21pc2U8Q2xvdWRGb3JtYXRpb25TdGFjayB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBzdGFjayA9IGF3YWl0IHN0YWJpbGl6ZVN0YWNrKGNmbiwgaW9IZWxwZXIsIHN0YWNrTmFtZSk7XG4gIGlmICghc3RhY2spIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgc3RhdHVzID0gc3RhY2suc3RhY2tTdGF0dXM7XG4gIGlmIChzdGF0dXMuaXNGYWlsdXJlKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdTdGFja0RlbGV0ZUZhaWxlZCcsXG4gICAgICBgVGhlIHN0YWNrIG5hbWVkICR7c3RhY2tOYW1lfSBpcyBpbiBhIGZhaWxlZCBzdGF0ZS4gWW91IG1heSBuZWVkIHRvIGRlbGV0ZSBpdCBmcm9tIHRoZSBBV1MgY29uc29sZSA6ICR7c3RhdHVzfWAsXG4gICAgKTtcbiAgfSBlbHNlIGlmIChzdGF0dXMuaXNEZWxldGVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gc3RhY2s7XG59XG5cbi8qKlxuICogV2FpdHMgZm9yIGEgQ2xvdWRGb3JtYXRpb24gc3RhY2sgdG8gc3RhYmlsaXplIGluIGEgY29tcGxldGUvYXZhaWxhYmxlIHN0YXRlXG4gKiBhZnRlciBhbiB1cGRhdGUvY3JlYXRlIG9wZXJhdGlvbiBpcyBpc3N1ZWQuXG4gKlxuICogRmFpbHMgaWYgdGhlIHN0YWNrIGlzIGluIGEgRkFJTEVEIHN0YXRlLCBST0xMQkFDSyBzdGF0ZSwgb3IgREVMRVRFRCBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0gY2ZuICAgICAgICAtIGEgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gKiBAcGFyYW0gc3RhY2tOYW1lICAgICAgLSB0aGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gd2FpdCBmb3IgYWZ0ZXIgYW4gdXBkYXRlXG4gKlxuICogQHJldHVybnMgICAgIHRoZSBDbG91ZEZvcm1hdGlvbiBkZXNjcmlwdGlvbiBvZiB0aGUgc3RhYmlsaXplZCBzdGFjayBhZnRlciB0aGUgdXBkYXRlIGF0dGVtcHRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JTdGFja0RlcGxveShcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPENsb3VkRm9ybWF0aW9uU3RhY2sgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgc3RhY2sgPSBhd2FpdCBzdGFiaWxpemVTdGFjayhjZm4sIGlvSGVscGVyLCBzdGFja05hbWUpO1xuICBpZiAoIXN0YWNrKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHN0YXR1cyA9IHN0YWNrLnN0YWNrU3RhdHVzO1xuXG4gIGlmIChzdGF0dXMuaXNDcmVhdGlvbkZhaWx1cmUpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgJ1N0YWNrQ3JlYXRpb25GYWlsZWQnLFxuICAgICAgYFRoZSBzdGFjayBuYW1lZCAke3N0YWNrTmFtZX0gZmFpbGVkIGNyZWF0aW9uLCBpdCBtYXkgbmVlZCB0byBiZSBtYW51YWxseSBkZWxldGVkIGZyb20gdGhlIEFXUyBjb25zb2xlOiAke3N0YXR1c31gLFxuICAgICk7XG4gIH0gZWxzZSBpZiAoIXN0YXR1cy5pc0RlcGxveVN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKGBUaGUgc3RhY2sgbmFtZWQgJHtzdGFja05hbWV9IGZhaWxlZCB0byBkZXBsb3k6ICR7c3RhdHVzfWAsICdTdGFja0RlcGxveUZhaWxlZCcpO1xuICB9XG5cbiAgcmV0dXJuIHN0YWNrO1xufVxuXG4vKipcbiAqIFdhaXQgZm9yIGEgc3RhY2sgdG8gYmVjb21lIHN0YWJsZSAobm8gbG9uZ2VyIF9JTl9QUk9HUkVTUyksIHJldHVybmluZyBpdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhYmlsaXplU3RhY2soXG4gIGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrTmFtZTogc3RyaW5nLFxuKSB7XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnV2FpdGluZyBmb3Igc3RhY2sgJXMgdG8gZmluaXNoIGNyZWF0aW5nIG9yIHVwZGF0aW5nLi4uJywgc3RhY2tOYW1lKSk7XG4gIHJldHVybiB3YWl0Rm9yKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBzdGFjayA9IGF3YWl0IENsb3VkRm9ybWF0aW9uU3RhY2subG9va3VwKGNmbiwgc3RhY2tOYW1lKTtcbiAgICBpZiAoIXN0YWNrLmV4aXN0cykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KCdTdGFjayAlcyBkb2VzIG5vdCBleGlzdCcsIHN0YWNrTmFtZSkpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHN0YXR1cyA9IHN0YWNrLnN0YWNrU3RhdHVzO1xuICAgIGlmIChzdGF0dXMuaXNJblByb2dyZXNzKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ1N0YWNrICVzIGhhcyBhbiBvbmdvaW5nIG9wZXJhdGlvbiBpbiBwcm9ncmVzcyBhbmQgaXMgbm90IHN0YWJsZSAoJXMpJywgc3RhY2tOYW1lLCBzdGF0dXMpKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmIChzdGF0dXMuaXNSZXZpZXdJblByb2dyZXNzKSB7XG4gICAgICAvLyBUaGlzIG1heSBoYXBwZW4gaWYgYSBzdGFjayBjcmVhdGlvbiBvcGVyYXRpb24gaXMgaW50ZXJydXB0ZWQgYmVmb3JlIHRoZSBDaGFuZ2VTZXQgZXhlY3V0aW9uIHN0YXJ0cy4gUmVjb3ZlcmluZ1xuICAgICAgLy8gZnJvbSB0aGlzIHdvdWxkIHJlcXVpcmluZyBtYW51YWwgaW50ZXJ2ZW50aW9uIChkZWxldGluZyBvciBleGVjdXRpbmcgdGhlIHBlbmRpbmcgQ2hhbmdlU2V0KSwgYW5kIGZhaWxpbmcgdG8gZG9cbiAgICAgIC8vIHNvIHdpbGwgcmVzdWx0IGluIGFuIGVuZGxlc3Mgd2FpdCBoZXJlICh0aGUgQ2hhbmdlU2V0IHdvbnQgZGVsZXRlIG9yIGV4ZWN1dGUgaXRzZWxmKS4gSW5zdGVhZCBvZiBibG9ja2luZ1xuICAgICAgLy8gXCJmb3JldmVyXCIgd2UgcHJvY2VlZCBhcyBpZiB0aGUgc3RhY2sgd2FzIGV4aXN0aW5nIGFuZCBzdGFibGUuIElmIHRoZXJlIGlzIGEgY29uY3VycmVudCBvcGVyYXRpb24gdGhhdCBqdXN0XG4gICAgICAvLyBoYXNuJ3QgZmluaXNoZWQgcHJvY2VlZGluZyBqdXN0IHlldCwgZWl0aGVyIHRoaXMgb3BlcmF0aW9uIG9yIHRoZSBjb25jdXJyZW50IG9uZSBtYXkgZmFpbCBkdWUgdG8gdGhlIG90aGVyIG9uZVxuICAgICAgLy8gaGF2aW5nIG1hZGUgcHJvZ3Jlc3MuIFdoaWNoIGlzIGZpbmUuIEkgZ3Vlc3MuXG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ1N0YWNrICVzIGlzIGluIFJFVklFV19JTl9QUk9HUkVTUyBzdGF0ZS4gQ29uc2lkZXJpbmcgdGhpcyBpcyBhIHN0YWJsZSBzdGF0dXMgKCVzKScsIHN0YWNrTmFtZSwgc3RhdHVzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9KTtcbn1cblxuLyoqXG4gKiBUaGUgc2V0IG9mIChmb3JtYWwpIHBhcmFtZXRlcnMgdGhhdCBoYXZlIGJlZW4gZGVjbGFyZWQgaW4gYSB0ZW1wbGF0ZVxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVQYXJhbWV0ZXJzIHtcbiAgcHVibGljIHN0YXRpYyBmcm9tVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZVBhcmFtZXRlcnModGVtcGxhdGUuUGFyYW1ldGVycyB8fCB7fSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhcmFtczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVQYXJhbWV0ZXI+KSB7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHN0YWNrIHBhcmFtZXRlcnMgdG8gcGFzcyBmcm9tIHRoZSBnaXZlbiBkZXNpcmVkIHBhcmFtZXRlciB2YWx1ZXNcbiAgICpcbiAgICogV2lsbCB0aHJvdyBpZiBwYXJhbWV0ZXJzIHdpdGhvdXQgYSBEZWZhdWx0IHZhbHVlIG9yIGEgUHJldmlvdXMgdmFsdWUgYXJlIG5vdFxuICAgKiBzdXBwbGllZC5cbiAgICovXG4gIHB1YmxpYyBzdXBwbHlBbGwodXBkYXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPik6IFBhcmFtZXRlclZhbHVlcyB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJWYWx1ZXModGhpcy5wYXJhbXMsIHVwZGF0ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZyb20gdGhlIHRlbXBsYXRlLCB0aGUgZ2l2ZW4gZGVzaXJlZCB2YWx1ZXMgYW5kIHRoZSBjdXJyZW50IHZhbHVlcywgY2FsY3VsYXRlIHRoZSBjaGFuZ2VzIHRvIHRoZSBzdGFjayBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIFdpbGwgdGFrZSBpbnRvIGFjY291bnQgcGFyYW1ldGVycyBhbHJlYWR5IHNldCBvbiB0aGUgdGVtcGxhdGUgKHdpbGwgZW1pdFxuICAgKiAnVXNlUHJldmlvdXNWYWx1ZTogdHJ1ZScgZm9yIHRob3NlIHVubGVzcyB0aGUgdmFsdWUgaXMgY2hhbmdlZCksIGFuZCB3aWxsXG4gICAqIHRocm93IGlmIHBhcmFtZXRlcnMgd2l0aG91dCBhIERlZmF1bHQgdmFsdWUgb3IgYSBQcmV2aW91cyB2YWx1ZSBhcmUgbm90XG4gICAqIHN1cHBsaWVkLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUV4aXN0aW5nKFxuICAgIHVwZGF0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4sXG4gICAgcHJldmlvdXNWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICk6IFBhcmFtZXRlclZhbHVlcyB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJWYWx1ZXModGhpcy5wYXJhbXMsIHVwZGF0ZXMsIHByZXZpb3VzVmFsdWVzKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBzZXQgb2YgcGFyYW1ldGVycyB3ZSdyZSBnb2luZyB0byBwYXNzIHRvIGEgU3RhY2tcbiAqL1xuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclZhbHVlcyB7XG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgcHVibGljIHJlYWRvbmx5IGFwaVBhcmFtZXRlcnM6IFBhcmFtZXRlcltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYWxQYXJhbXM6IFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUGFyYW1ldGVyPixcbiAgICB1cGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+LFxuICAgIHByZXZpb3VzVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge30sXG4gICkge1xuICAgIGNvbnN0IG1pc3NpbmdSZXF1aXJlZCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIGZvcm1hbFBhcmFtXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1hbFBhcmFtcykpIHtcbiAgICAgIC8vIENoZWNrIHVwZGF0ZXMgZmlyc3QsIHRoZW4gdXNlIHRoZSBwcmV2aW91cyB2YWx1ZSAoaWYgYXZhaWxhYmxlKSwgdGhlbiB1c2VcbiAgICAgIC8vIHRoZSBkZWZhdWx0IChpZiBhdmFpbGFibGUpLlxuICAgICAgLy9cbiAgICAgIC8vIElmIHdlIGRvbid0IGZpbmQgYSBwYXJhbWV0ZXIgdmFsdWUgdXNpbmcgYW55IG9mIHRoZXNlIG1ldGhvZHMsIHRoZW4gdGhhdCdzIGFuIGVycm9yLlxuICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdXBkYXRlc1trZXldO1xuICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsdWVzW2tleV0gPSB1cGRhdGVkVmFsdWU7XG4gICAgICAgIHRoaXMuYXBpUGFyYW1ldGVycy5wdXNoKHtcbiAgICAgICAgICBQYXJhbWV0ZXJLZXk6IGtleSxcbiAgICAgICAgICBQYXJhbWV0ZXJWYWx1ZTogdXBkYXRlc1trZXldLFxuICAgICAgICB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkgaW4gcHJldmlvdXNWYWx1ZXMpIHtcbiAgICAgICAgdGhpcy52YWx1ZXNba2V5XSA9IHByZXZpb3VzVmFsdWVzW2tleV07XG4gICAgICAgIHRoaXMuYXBpUGFyYW1ldGVycy5wdXNoKHsgUGFyYW1ldGVyS2V5OiBrZXksIFVzZVByZXZpb3VzVmFsdWU6IHRydWUgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybWFsUGFyYW0uRGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsdWVzW2tleV0gPSBmb3JtYWxQYXJhbS5EZWZhdWx0O1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gT2ggbm9cbiAgICAgIG1pc3NpbmdSZXF1aXJlZC5wdXNoKGtleSk7XG4gICAgfVxuXG4gICAgaWYgKG1pc3NpbmdSZXF1aXJlZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdNaXNzaW5nUGFyYW1ldGVycycsIGBUaGUgZm9sbG93aW5nIENsb3VkRm9ybWF0aW9uIFBhcmFtZXRlcnMgYXJlIG1pc3NpbmcgYSB2YWx1ZTogJHttaXNzaW5nUmVxdWlyZWQuam9pbignLCAnKX1gKTtcbiAgICB9XG5cbiAgICAvLyBKdXN0IGFwcGVuZCBhbGwgc3VwcGxpZWQgb3ZlcnJpZGVzIHRoYXQgYXJlbid0IHJlYWxseSBleHBlY3RlZCAodGhpc1xuICAgIC8vIHdpbGwgZmFpbCBDRk4gYnV0IG1heWJlIHBlb3BsZSBtYWRlIHR5cG9zIHRoYXQgdGhleSB3YW50IHRvIGJlIG5vdGlmaWVkXG4gICAgLy8gb2YpXG4gICAgY29uc3QgdW5rbm93blBhcmFtID0gKFtrZXksIF9dOiBbc3RyaW5nLCBhbnldKSA9PiB0aGlzLmZvcm1hbFBhcmFtc1trZXldID09PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgaGFzVmFsdWUgPSAoW18sIHZhbHVlXTogW3N0cmluZywgYW55XSkgPT4gISF2YWx1ZTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh1cGRhdGVzKS5maWx0ZXIodW5rbm93blBhcmFtKS5maWx0ZXIoaGFzVmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbHVlc1trZXldID0gdmFsdWUhO1xuICAgICAgdGhpcy5hcGlQYXJhbWV0ZXJzLnB1c2goeyBQYXJhbWV0ZXJLZXk6IGtleSwgUGFyYW1ldGVyVmFsdWU6IHZhbHVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc2V0IG9mIHBhcmFtZXRlciB1cGRhdGVzIHdpbGwgY2hhbmdlIHRoZSBhY3R1YWwgc3RhY2sgdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgaGFzQ2hhbmdlcyhjdXJyZW50VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUGFyYW1ldGVyQ2hhbmdlcyB7XG4gICAgLy8gSWYgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIGFyZSBTU00gcGFyYW1ldGVycywgZGVwbG95aW5nIG11c3QgYWx3YXlzIGhhcHBlblxuICAgIC8vIGJlY2F1c2Ugd2UgY2FuJ3QgcHJlZGljdCB3aGF0IHRoZSB2YWx1ZXMgd2lsbCBiZS4gV2Ugd2lsbCBhbGxvdyBzb21lXG4gICAgLy8gcGFyYW1ldGVycyB0byBvcHQgb3V0IG9mIHRoaXMgY2hlY2sgYnkgaGF2aW5nIGEgbWFnaWMgc3RyaW5nIGluIHRoZWlyIGRlc2NyaXB0aW9uLlxuICAgIGlmIChcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtYWxQYXJhbXMpLnNvbWUoXG4gICAgICAgIChwKSA9PiBwLlR5cGUuc3RhcnRzV2l0aCgnQVdTOjpTU006OlBhcmFtZXRlcjo6JykgJiYgIXAuRGVzY3JpcHRpb24/LmluY2x1ZGVzKFNTTVBBUkFNX05PX0lOVkFMSURBVEUpLFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuICdzc20nO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSB3ZSdyZSBkaXJ0eSBpZjpcbiAgICAvLyAtIGFueSBvZiB0aGUgZXhpc3RpbmcgdmFsdWVzIGFyZSByZW1vdmVkLCBvciBjaGFuZ2VkXG4gICAgaWYgKE9iamVjdC5lbnRyaWVzKGN1cnJlbnRWYWx1ZXMpLnNvbWUoKFtrZXksIHZhbHVlXSkgPT4gIShrZXkgaW4gdGhpcy52YWx1ZXMpIHx8IHZhbHVlICE9PSB0aGlzLnZhbHVlc1trZXldKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gLSBhbnkgb2YgdGhlIHZhbHVlcyB3ZSdyZSBzZXR0aW5nIGFyZSBuZXdcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy52YWx1ZXMpLnNvbWUoKGtleSkgPT4gIShrZXkgaW4gY3VycmVudFZhbHVlcykpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgUGFyYW1ldGVyQ2hhbmdlcyA9IGJvb2xlYW4gfCAnc3NtJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.determineAllowCrossAccountAssetPublishing = determineAllowCrossAccountAssetPublishing;\nexports.getBootstrapStackInfo = getBootstrapStackInfo;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nasync function determineAllowCrossAccountAssetPublishing(sdk, ioHelper, customStackName) {\n try {\n const stackName = customStackName || 'CDKToolkit';\n const stackInfo = await getBootstrapStackInfo(sdk, stackName);\n if (!stackInfo.hasStagingBucket) {\n // indicates an intentional cross account setup\n return true;\n }\n if (stackInfo.bootstrapVersion >= 21) {\n // bootstrap stack version 21 contains a fix that will prevent cross\n // account publishing on the IAM level\n // https://github.com/aws/aws-cdk/pull/30823\n return true;\n }\n // If there is a staging bucket AND the bootstrap version is old, then we want to protect\n // against accidental cross-account publishing.\n return false;\n }\n catch (e) {\n // You would think we would need to fail closed here, but the reality is\n // that we get here if we couldn't find the bootstrap stack: that is\n // completely valid, and many large organizations may have their own method\n // of creating bootstrap resources. If they do, there's nothing for us to validate,\n // but we can't use that as a reason to disallow cross-account publishing. We'll just\n // have to trust they did their due diligence. So we fail open.\n await ioHelper.defaults.debug(`Error determining cross account asset publishing: ${e}`);\n await ioHelper.defaults.debug('Defaulting to allowing cross account asset publishing');\n return true;\n }\n}\nasync function getBootstrapStackInfo(sdk, stackName) {\n try {\n const cfn = sdk.cloudFormation();\n const stackResponse = await cfn.describeStacks({ StackName: stackName });\n if (!stackResponse.Stacks || stackResponse.Stacks.length === 0) {\n throw new toolkit_error_1.ToolkitError('ToolkitStackNotFound', `Toolkit stack ${stackName} not found`);\n }\n const stack = stackResponse.Stacks[0];\n const versionOutput = stack.Outputs?.find(output => output.OutputKey === 'BootstrapVersion');\n if (!versionOutput?.OutputValue) {\n throw new toolkit_error_1.ToolkitError('BootstrapVersionNotFound', `Unable to find BootstrapVersion output in the toolkit stack ${stackName}`);\n }\n const bootstrapVersion = parseInt(versionOutput.OutputValue);\n if (isNaN(bootstrapVersion)) {\n throw new toolkit_error_1.ToolkitError('InvalidBootstrapVersion', `Invalid BootstrapVersion value: ${versionOutput.OutputValue}`);\n }\n // try to get bucketname from the logical resource id. If there is no\n // bucketname, or the value doesn't look like an S3 bucket name, we assume\n // the bucket doesn't exist (this is for the case where a template customizer did\n // not dare to remove the Output, but put a dummy value there like '' or '-' or '***').\n //\n // We would have preferred to look at the stack resources here, but\n // unfortunately the deploy role doesn't have permissions call DescribeStackResources.\n const bucketName = stack.Outputs?.find(output => output.OutputKey === 'BucketName')?.OutputValue;\n // Must begin and end with letter or number.\n const hasStagingBucket = !!(bucketName && bucketName.match(/^[a-z0-9]/) && bucketName.match(/[a-z0-9]$/));\n return {\n hasStagingBucket,\n bootstrapVersion,\n };\n }\n catch (e) {\n throw new toolkit_error_1.ToolkitError('ToolkitStackInfoError', `Error retrieving toolkit stack info: ${e}`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsOEZBbUNDO0FBT0Qsc0RBdUNDO0FBckZELCtEQUEyRDtBQUlwRCxLQUFLLFVBQVUseUNBQXlDLENBQzdELEdBQVEsRUFDUixRQUFrQixFQUNsQixlQUF3QjtJQUV4QixJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxlQUFlLElBQUksWUFBWSxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHLE1BQU0scUJBQXFCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNoQywrQ0FBK0M7WUFDL0MsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLENBQUM7WUFDckMsb0VBQW9FO1lBQ3BFLHNDQUFzQztZQUN0Qyw0Q0FBNEM7WUFDNUMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQseUZBQXlGO1FBQ3pGLCtDQUErQztRQUMvQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsd0VBQXdFO1FBQ3hFLG9FQUFvRTtRQUNwRSwyRUFBMkU7UUFDM0UsbUZBQW1GO1FBQ25GLHFGQUFxRjtRQUNyRiwrREFBK0Q7UUFDL0QsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQU9NLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsU0FBaUI7SUFDckUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9ELE1BQU0sSUFBSSw0QkFBWSxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixTQUFTLFlBQVksQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdGLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLDRCQUFZLENBQUMsMEJBQTBCLEVBQUUsK0RBQStELFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakksQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDRCQUFZLENBQUMseUJBQXlCLEVBQUUsbUNBQW1DLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILENBQUM7UUFFRCxxRUFBcUU7UUFDckUsMEVBQTBFO1FBQzFFLGlGQUFpRjtRQUNqRix1RkFBdUY7UUFDdkYsRUFBRTtRQUNGLG1FQUFtRTtRQUNuRSxzRkFBc0Y7UUFDdEYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLFlBQVksQ0FBQyxFQUFFLFdBQVcsQ0FBQztRQUNqRyw0Q0FBNEM7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFMUcsT0FBTztZQUNMLGdCQUFnQjtZQUNoQixnQkFBZ0I7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLDRCQUFZLENBQUMsdUJBQXVCLEVBQUUsd0NBQXdDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRldGVybWluZUFsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nKFxuICBzZGs6IFNESyxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBjdXN0b21TdGFja05hbWU/OiBzdHJpbmcsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBjdXN0b21TdGFja05hbWUgfHwgJ0NES1Rvb2xraXQnO1xuICAgIGNvbnN0IHN0YWNrSW5mbyA9IGF3YWl0IGdldEJvb3RzdHJhcFN0YWNrSW5mbyhzZGssIHN0YWNrTmFtZSk7XG5cbiAgICBpZiAoIXN0YWNrSW5mby5oYXNTdGFnaW5nQnVja2V0KSB7XG4gICAgICAvLyBpbmRpY2F0ZXMgYW4gaW50ZW50aW9uYWwgY3Jvc3MgYWNjb3VudCBzZXR1cFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YWNrSW5mby5ib290c3RyYXBWZXJzaW9uID49IDIxKSB7XG4gICAgICAvLyBib290c3RyYXAgc3RhY2sgdmVyc2lvbiAyMSBjb250YWlucyBhIGZpeCB0aGF0IHdpbGwgcHJldmVudCBjcm9zc1xuICAgICAgLy8gYWNjb3VudCBwdWJsaXNoaW5nIG9uIHRoZSBJQU0gbGV2ZWxcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzMwODIzXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhIHN0YWdpbmcgYnVja2V0IEFORCB0aGUgYm9vdHN0cmFwIHZlcnNpb24gaXMgb2xkLCB0aGVuIHdlIHdhbnQgdG8gcHJvdGVjdFxuICAgIC8vIGFnYWluc3QgYWNjaWRlbnRhbCBjcm9zcy1hY2NvdW50IHB1Ymxpc2hpbmcuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gWW91IHdvdWxkIHRoaW5rIHdlIHdvdWxkIG5lZWQgdG8gZmFpbCBjbG9zZWQgaGVyZSwgYnV0IHRoZSByZWFsaXR5IGlzXG4gICAgLy8gdGhhdCB3ZSBnZXQgaGVyZSBpZiB3ZSBjb3VsZG4ndCBmaW5kIHRoZSBib290c3RyYXAgc3RhY2s6IHRoYXQgaXNcbiAgICAvLyBjb21wbGV0ZWx5IHZhbGlkLCBhbmQgbWFueSBsYXJnZSBvcmdhbml6YXRpb25zIG1heSBoYXZlIHRoZWlyIG93biBtZXRob2RcbiAgICAvLyBvZiBjcmVhdGluZyBib290c3RyYXAgcmVzb3VyY2VzLiBJZiB0aGV5IGRvLCB0aGVyZSdzIG5vdGhpbmcgZm9yIHVzIHRvIHZhbGlkYXRlLFxuICAgIC8vIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBhcyBhIHJlYXNvbiB0byBkaXNhbGxvdyBjcm9zcy1hY2NvdW50IHB1Ymxpc2hpbmcuIFdlJ2xsIGp1c3RcbiAgICAvLyBoYXZlIHRvIHRydXN0IHRoZXkgZGlkIHRoZWlyIGR1ZSBkaWxpZ2VuY2UuIFNvIHdlIGZhaWwgb3Blbi5cbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgRXJyb3IgZGV0ZXJtaW5pbmcgY3Jvc3MgYWNjb3VudCBhc3NldCBwdWJsaXNoaW5nOiAke2V9YCk7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoJ0RlZmF1bHRpbmcgdG8gYWxsb3dpbmcgY3Jvc3MgYWNjb3VudCBhc3NldCBwdWJsaXNoaW5nJyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEJvb3RzdHJhcFN0YWNrSW5mbyB7XG4gIGhhc1N0YWdpbmdCdWNrZXQ6IGJvb2xlYW47XG4gIGJvb3RzdHJhcFZlcnNpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJvb3RzdHJhcFN0YWNrSW5mbyhzZGs6IFNESywgc3RhY2tOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJvb3RzdHJhcFN0YWNrSW5mbz4ge1xuICB0cnkge1xuICAgIGNvbnN0IGNmbiA9IHNkay5jbG91ZEZvcm1hdGlvbigpO1xuICAgIGNvbnN0IHN0YWNrUmVzcG9uc2UgPSBhd2FpdCBjZm4uZGVzY3JpYmVTdGFja3MoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KTtcblxuICAgIGlmICghc3RhY2tSZXNwb25zZS5TdGFja3MgfHwgc3RhY2tSZXNwb25zZS5TdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUb29sa2l0U3RhY2tOb3RGb3VuZCcsIGBUb29sa2l0IHN0YWNrICR7c3RhY2tOYW1lfSBub3QgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFjayA9IHN0YWNrUmVzcG9uc2UuU3RhY2tzWzBdO1xuICAgIGNvbnN0IHZlcnNpb25PdXRwdXQgPSBzdGFjay5PdXRwdXRzPy5maW5kKG91dHB1dCA9PiBvdXRwdXQuT3V0cHV0S2V5ID09PSAnQm9vdHN0cmFwVmVyc2lvbicpO1xuXG4gICAgaWYgKCF2ZXJzaW9uT3V0cHV0Py5PdXRwdXRWYWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwVmVyc2lvbk5vdEZvdW5kJywgYFVuYWJsZSB0byBmaW5kIEJvb3RzdHJhcFZlcnNpb24gb3V0cHV0IGluIHRoZSB0b29sa2l0IHN0YWNrICR7c3RhY2tOYW1lfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGJvb3RzdHJhcFZlcnNpb24gPSBwYXJzZUludCh2ZXJzaW9uT3V0cHV0Lk91dHB1dFZhbHVlKTtcbiAgICBpZiAoaXNOYU4oYm9vdHN0cmFwVmVyc2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRCb290c3RyYXBWZXJzaW9uJywgYEludmFsaWQgQm9vdHN0cmFwVmVyc2lvbiB2YWx1ZTogJHt2ZXJzaW9uT3V0cHV0Lk91dHB1dFZhbHVlfWApO1xuICAgIH1cblxuICAgIC8vIHRyeSB0byBnZXQgYnVja2V0bmFtZSBmcm9tIHRoZSBsb2dpY2FsIHJlc291cmNlIGlkLiBJZiB0aGVyZSBpcyBub1xuICAgIC8vIGJ1Y2tldG5hbWUsIG9yIHRoZSB2YWx1ZSBkb2Vzbid0IGxvb2sgbGlrZSBhbiBTMyBidWNrZXQgbmFtZSwgd2UgYXNzdW1lXG4gICAgLy8gdGhlIGJ1Y2tldCBkb2Vzbid0IGV4aXN0ICh0aGlzIGlzIGZvciB0aGUgY2FzZSB3aGVyZSBhIHRlbXBsYXRlIGN1c3RvbWl6ZXIgZGlkXG4gICAgLy8gbm90IGRhcmUgdG8gcmVtb3ZlIHRoZSBPdXRwdXQsIGJ1dCBwdXQgYSBkdW1teSB2YWx1ZSB0aGVyZSBsaWtlICcnIG9yICctJyBvciAnKioqJykuXG4gICAgLy9cbiAgICAvLyBXZSB3b3VsZCBoYXZlIHByZWZlcnJlZCB0byBsb29rIGF0IHRoZSBzdGFjayByZXNvdXJjZXMgaGVyZSwgYnV0XG4gICAgLy8gdW5mb3J0dW5hdGVseSB0aGUgZGVwbG95IHJvbGUgZG9lc24ndCBoYXZlIHBlcm1pc3Npb25zIGNhbGwgRGVzY3JpYmVTdGFja1Jlc291cmNlcy5cbiAgICBjb25zdCBidWNrZXROYW1lID0gc3RhY2suT3V0cHV0cz8uZmluZChvdXRwdXQgPT4gb3V0cHV0Lk91dHB1dEtleSA9PT0gJ0J1Y2tldE5hbWUnKT8uT3V0cHV0VmFsdWU7XG4gICAgLy8gTXVzdCBiZWdpbiBhbmQgZW5kIHdpdGggbGV0dGVyIG9yIG51bWJlci5cbiAgICBjb25zdCBoYXNTdGFnaW5nQnVja2V0ID0gISEoYnVja2V0TmFtZSAmJiBidWNrZXROYW1lLm1hdGNoKC9eW2EtejAtOV0vKSAmJiBidWNrZXROYW1lLm1hdGNoKC9bYS16MC05XSQvKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaGFzU3RhZ2luZ0J1Y2tldCxcbiAgICAgIGJvb3RzdHJhcFZlcnNpb24sXG4gICAgfTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Rvb2xraXRTdGFja0luZm9FcnJvcicsIGBFcnJvciByZXRyaWV2aW5nIHRvb2xraXQgc3RhY2sgaW5mbzogJHtlfWApO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deployStack = deployStack;\nexports.destroyStack = destroyStack;\nconst util_1 = require(\"util\");\nconst chalk = require(\"chalk\");\nconst uuid = require(\"uuid\");\nconst asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nconst asset_publishing_1 = require(\"./asset-publishing\");\nconst assets_1 = require(\"./assets\");\nconst cfn_api_1 = require(\"./cfn-api\");\nconst checks_1 = require(\"./checks\");\nconst deployment_method_1 = require(\"../../actions/deploy/private/deployment-method\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_2 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst environment_1 = require(\"../environment\");\nconst common_1 = require(\"../hotswap/common\");\nconst hotswap_deployments_1 = require(\"../hotswap/hotswap-deployments\");\nconst stack_events_1 = require(\"../stack-events\");\nconst early_validation_1 = require(\"./early-validation\");\nasync function deployStack(options, ioHelper) {\n const stackArtifact = options.stack;\n const stackEnv = options.resolvedEnvironment;\n let deploymentMethod = options.deploymentMethod ?? { method: 'change-set' };\n options.sdk.appendCustomUserAgent(options.extraUserAgent);\n const cfn = options.sdk.cloudFormation();\n const deployName = options.deployName || stackArtifact.stackName;\n let cloudFormationStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n if (cloudFormationStack.stackStatus.isCreationFailure) {\n await ioHelper.defaults.debug(`Found existing stack ${deployName} that had previously failed creation. Deleting it before attempting to re-create it.`);\n await cfn.deleteStack({ StackName: deployName });\n const deletedStack = await (0, cfn_api_1.waitForStackDelete)(cfn, ioHelper, deployName);\n if (deletedStack && deletedStack.stackStatus.name !== 'DELETE_COMPLETE') {\n throw new toolkit_error_1.DeploymentError(`Failed deleting stack ${deployName} that had previously failed creation (current state: ${deletedStack.stackStatus})`, 'FailedStackCleanupFailed');\n }\n // Update variable to mark that the stack does not exist anymore, but avoid\n // doing an actual lookup in CloudFormation (which would be silly to do if\n // we just deleted it).\n cloudFormationStack = cloudformation_1.CloudFormationStack.doesNotExist(cfn, deployName);\n }\n // Detect \"legacy\" assets (which remain in the metadata) and publish them via\n // an ad-hoc asset manifest, while passing their locations via template\n // parameters.\n const legacyAssets = new asset_manifest_builder_1.AssetManifestBuilder();\n const assetParams = await (0, assets_1.addMetadataAssetsToManifest)(ioHelper, stackArtifact, legacyAssets, options.envResources, options.reuseAssets);\n const finalParameterValues = { ...options.parameters, ...assetParams };\n const templateParams = cfn_api_1.TemplateParameters.fromTemplate(stackArtifact.template);\n const stackParams = options.usePreviousParameters\n ? templateParams.updateExisting(finalParameterValues, cloudFormationStack.parameters)\n : templateParams.supplyAll(finalParameterValues);\n if (await canSkipDeploy(options, cloudFormationStack, stackParams.hasChanges(cloudFormationStack.parameters), ioHelper)) {\n await ioHelper.defaults.debug(`${deployName}: skipping deployment (use --force to override)`);\n // if we can skip deployment and we are performing a hotswap, let the user know\n // that no hotswap deployment happened\n if (deploymentMethod?.method === 'hotswap') {\n await ioHelper.defaults.info((0, util_1.format)(`\\n ${common_1.ICON} %s\\n`, chalk.bold('hotswap deployment skipped - no changes were detected (use --force to override)')));\n }\n return {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: cloudFormationStack.outputs,\n stackArn: cloudFormationStack.stackId,\n };\n }\n else {\n await ioHelper.defaults.debug(`${deployName}: deploying...`);\n }\n const bodyParameter = await (0, cloudformation_1.makeBodyParameter)(ioHelper, stackArtifact, options.resolvedEnvironment, legacyAssets, options.envResources, options.overrideTemplate);\n let bootstrapStackName;\n try {\n bootstrapStackName = (await options.envResources.lookupToolkit()).stackName;\n }\n catch (e) {\n await ioHelper.defaults.debug(`Could not determine the bootstrap stack name: ${e}`);\n }\n await (0, asset_publishing_1.publishAssets)(legacyAssets.toManifest(stackArtifact.assembly.directory), options.sdkProvider, stackEnv, {\n parallel: options.assetParallelism,\n allowCrossAccount: await (0, checks_1.determineAllowCrossAccountAssetPublishing)(options.sdk, ioHelper, bootstrapStackName),\n }, ioHelper);\n // attempt to short-circuit the deployment if possible\n if (deploymentMethod?.method === 'hotswap') {\n try {\n const hotswapModeNew = deploymentMethod?.fallback ? 'fall-back' : 'hotswap-only';\n const hotswapPropertyOverrides = deploymentMethod.properties\n ? (0, common_1.createHotswapPropertyOverrides)(deploymentMethod.properties)\n : new common_1.HotswapPropertyOverrides();\n const hotswapDeploymentResult = await (0, hotswap_deployments_1.tryHotswapDeployment)(options.sdkProvider, ioHelper, stackParams.values, cloudFormationStack, stackArtifact, hotswapModeNew, hotswapPropertyOverrides);\n if (hotswapDeploymentResult) {\n return hotswapDeploymentResult;\n }\n await ioHelper.defaults.info((0, util_1.format)('Could not perform a hotswap deployment, as the stack %s contains non-Asset changes', stackArtifact.displayName));\n }\n catch (e) {\n if (!(e instanceof cloudformation_1.CfnEvaluationException)) {\n throw e;\n }\n await ioHelper.defaults.info((0, util_1.format)('Could not perform a hotswap deployment, because the CloudFormation template could not be resolved: %s', (0, util_2.formatErrorMessage)(e)));\n }\n if (deploymentMethod.fallback) {\n await ioHelper.defaults.info('Falling back to doing a full deployment');\n options.sdk.appendCustomUserAgent('cdk-hotswap/fallback');\n deploymentMethod = deploymentMethod.fallback;\n }\n else {\n return {\n type: 'did-deploy-stack',\n noOp: true,\n stackArn: cloudFormationStack.stackId,\n outputs: cloudFormationStack.outputs,\n };\n }\n }\n // could not short-circuit the deployment, perform a full CFN deploy instead\n const fullDeployment = new FullCloudFormationDeployment(deploymentMethod, options, cloudFormationStack, stackArtifact, stackParams, bodyParameter, ioHelper);\n return fullDeployment.performDeployment();\n}\n/**\n * This class shares state and functionality between the different full deployment modes\n */\nclass FullCloudFormationDeployment {\n deploymentMethod;\n options;\n cloudFormationStack;\n stackArtifact;\n stackParams;\n bodyParameter;\n ioHelper;\n cfn;\n stackName;\n update;\n verb;\n uuid;\n constructor(deploymentMethod, options, cloudFormationStack, stackArtifact, stackParams, bodyParameter, ioHelper) {\n this.deploymentMethod = deploymentMethod;\n this.options = options;\n this.cloudFormationStack = cloudFormationStack;\n this.stackArtifact = stackArtifact;\n this.stackParams = stackParams;\n this.bodyParameter = bodyParameter;\n this.ioHelper = ioHelper;\n this.cfn = options.sdk.cloudFormation();\n this.stackName = options.deployName ?? stackArtifact.stackName;\n this.update = cloudFormationStack.exists && cloudFormationStack.stackStatus.name !== 'REVIEW_IN_PROGRESS';\n this.verb = this.update ? 'update' : 'create';\n this.uuid = uuid.v4();\n }\n async performDeployment() {\n const deploymentMethod = this.deploymentMethod ?? { method: 'change-set' };\n if (deploymentMethod.method === 'direct' && this.options.resourcesToImport) {\n throw new toolkit_error_1.ToolkitError('ImportRequiresChangeSet', 'Importing resources requires a changeset deployment');\n }\n switch (deploymentMethod.method) {\n case 'change-set':\n return this.changeSetDeployment(deploymentMethod);\n case 'execute-change-set':\n return this.executeExistingChangeSet(deploymentMethod);\n case 'direct':\n return this.directDeployment();\n }\n }\n async changeSetDeployment(deploymentMethod) {\n const changeSetName = deploymentMethod.changeSetName ?? deployment_method_1.DEFAULT_DEPLOY_CHANGE_SET_NAME;\n const execute = deploymentMethod.execute ?? true;\n const importExistingResources = deploymentMethod.importExistingResources ?? false;\n const revertDrift = deploymentMethod.revertDrift ?? false;\n const changeSetDescription = await this.createChangeSet(changeSetName, execute, importExistingResources, revertDrift);\n await this.updateTerminationProtection();\n if ((0, cfn_api_1.changeSetHasNoChanges)(changeSetDescription)) {\n await this.ioHelper.defaults.debug((0, util_1.format)('No changes are to be performed on %s.', this.stackName));\n if (execute) {\n await this.ioHelper.defaults.debug((0, util_1.format)('Deleting empty change set %s', changeSetDescription.ChangeSetId));\n await this.cfn.deleteChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSetName,\n });\n }\n if (this.options.forceDeployment) {\n await this.ioHelper.defaults.warn([\n 'You used the --force flag, but CloudFormation reported that the deployment would not make any changes.',\n 'According to CloudFormation, all resources are already up-to-date with the state in your CDK app.',\n '',\n 'You cannot use the --force flag to get rid of changes you made in the console. Try using',\n 'CloudFormation drift detection instead: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html',\n ].join('\\n'));\n }\n return {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: this.cloudFormationStack.outputs,\n stackArn: changeSetDescription.StackId,\n };\n }\n if (!execute) {\n await this.ioHelper.defaults.info((0, util_1.format)('Changeset %s created and waiting in review for manual execution (--no-execute)', changeSetDescription.ChangeSetId));\n return {\n type: 'did-deploy-stack',\n noOp: false,\n outputs: this.cloudFormationStack.outputs,\n stackArn: changeSetDescription.StackId,\n changeSet: changeSetDescription,\n };\n }\n // If there are replacements in the changeset, check the rollback flag and stack status\n return this.checkAndExecuteChangeSet(changeSetDescription);\n }\n async executeExistingChangeSet(deploymentMethod) {\n await this.updateTerminationProtection();\n // The change set was already created and validated during the prepare phase,\n // just describe it to get the info needed for execution.\n const changeSetDescription = await this.cfn.describeChangeSet({\n StackName: this.stackName,\n ChangeSetName: deploymentMethod.changeSetName,\n });\n return this.checkAndExecuteChangeSet(changeSetDescription);\n }\n /**\n * Check rollback/replacement constraints and execute the change set if all checks pass.\n */\n async checkAndExecuteChangeSet(changeSetDescription) {\n if (changeSetDescription.Status !== 'CREATE_COMPLETE') {\n const status = changeSetDescription.Status ?? 'UNKNOWN';\n const reason = changeSetDescription.StatusReason ? `: ${changeSetDescription.StatusReason}` : '';\n throw new toolkit_error_1.ToolkitError('ChangeSetNotReady', `Change set '${changeSetDescription.ChangeSetName}' on stack '${this.stackName}' is not ready for execution (status: ${status}${reason})`);\n }\n const replacement = hasReplacement(changeSetDescription);\n const isPausedFailState = this.cloudFormationStack.stackStatus.isRollbackable;\n const rollback = this.options.rollback ?? true;\n if (isPausedFailState && replacement) {\n return { type: 'failpaused-need-rollback-first', reason: 'replacement', status: this.cloudFormationStack.stackStatus.name };\n }\n if (isPausedFailState && rollback) {\n return { type: 'failpaused-need-rollback-first', reason: 'not-norollback', status: this.cloudFormationStack.stackStatus.name };\n }\n if (!rollback && replacement) {\n return { type: 'replacement-requires-rollback' };\n }\n return this.executeChangeSet(changeSetDescription);\n }\n async createChangeSet(changeSetName, willExecute, importExistingResources, revertDrift) {\n await this.cleanupOldChangeset(changeSetName);\n await this.ioHelper.defaults.debug(`Attempting to create ChangeSet with name ${changeSetName} to ${this.verb} stack ${this.stackName}`);\n await this.ioHelper.defaults.info((0, util_1.format)('%s: creating CloudFormation changeset...', chalk.bold(this.stackName)));\n const changeSet = await this.cfn.createChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSetName,\n ChangeSetType: this.options.resourcesToImport ? 'IMPORT' : this.update ? 'UPDATE' : 'CREATE',\n ResourcesToImport: this.options.resourcesToImport,\n Description: `CDK Changeset for execution ${this.uuid}`,\n ClientToken: `create${this.uuid}`,\n ImportExistingResources: importExistingResources,\n DeploymentMode: revertDrift ? 'REVERT_DRIFT' : undefined,\n ...this.commonPrepareOptions(),\n });\n await this.ioHelper.defaults.debug((0, util_1.format)('Initiated creation of changeset: %s; waiting for it to finish creating...', changeSet.Id));\n // Fetching all pages if we'll execute, so we can have the correct change count when monitoring.\n const environmentResourcesRegistry = new environment_1.EnvironmentResourcesRegistry();\n const envResources = environmentResourcesRegistry.for(this.options.resolvedEnvironment, this.options.sdk, this.ioHelper);\n const validationReporter = new early_validation_1.EarlyValidationReporter(this.options.sdk, envResources);\n try {\n return await (0, cfn_api_1.waitForChangeSet)(this.cfn, this.ioHelper, this.stackName, changeSetName, {\n fetchAll: willExecute,\n validationReporter,\n });\n }\n catch (e) {\n if (importExistingResources && toolkit_error_1.ToolkitError.isDeploymentError(e) && e.deploymentErrorCode === 'ChangeSetCreationFailed') {\n throw new toolkit_error_1.DeploymentError(this.enhanceImportErrorMessage(e.message), 'ChangeSetCreationFailed');\n }\n throw e;\n }\n }\n /**\n * Enhance an import-related changeset error message by mapping CFN logical IDs to CDK construct paths.\n */\n enhanceImportErrorMessage(message) {\n // Only enhance the specific CFN error about importing existing resources\n if (!message.includes('CloudFormation is attempting to import some resources because they already exist in your account')) {\n return message;\n }\n const marker = 'The affected resources are ';\n const markerIndex = message.indexOf(marker);\n if (markerIndex === -1) {\n return message;\n }\n // Only extract logical IDs from the \"The affected resources are ...\" suffix\n const resourceList = message.substring(markerIndex + marker.length);\n const logicalIdPattern = /\\b([A-Za-z][A-Za-z0-9]+)\\s+\\(\\{/g;\n const resources = this.stackArtifact.template?.Resources ?? {};\n const affected = [];\n for (const match of resourceList.matchAll(logicalIdPattern)) {\n const logicalId = match[1];\n const path = resources[logicalId]?.Metadata?.['aws:cdk:path'];\n affected.push(path ? ` - ${path} (${logicalId})` : ` - ${logicalId}`);\n }\n return [\n `Import of existing resources failed for stack '${this.stackName}' because the following resources need a DeletionPolicy of 'Retain' or 'RetainExceptOnCreate':`,\n ...affected,\n '',\n \"Set the removal policy to 'RemovalPolicy.RETAIN' or 'RemovalPolicy.RETAIN_ON_UPDATE_OR_DELETE' on these resources.\",\n 'See https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resources-removal',\n ].join('\\n');\n }\n async executeChangeSet(changeSet) {\n await this.ioHelper.defaults.debug((0, util_1.format)('Initiating execution of changeset %s on stack %s', changeSet.ChangeSetId, this.stackName));\n await this.cfn.executeChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSet.ChangeSetName,\n ClientRequestToken: `exec${this.uuid}`,\n ...this.commonExecuteOptions(),\n });\n await this.ioHelper.defaults.debug((0, util_1.format)('Execution of changeset %s on stack %s has started; waiting for the update to complete...', changeSet.ChangeSetId, this.stackName));\n // +1 for the extra event emitted from updates.\n const changeSetLength = (changeSet.Changes ?? []).length + (this.update ? 1 : 0);\n return this.monitorDeployment(changeSet.CreationTime, changeSetLength);\n }\n async cleanupOldChangeset(changeSetName) {\n if (this.cloudFormationStack.exists) {\n // Delete any existing change sets generated by CDK since change set names must be unique.\n // The delete request is successful as long as the stack exists (even if the change set does not exist).\n await this.ioHelper.defaults.debug(`Removing existing change set with name ${changeSetName} if it exists`);\n await this.cfn.deleteChangeSet({\n StackName: this.stackName,\n ChangeSetName: changeSetName,\n });\n }\n }\n async updateTerminationProtection() {\n // Update termination protection only if it has changed.\n const terminationProtection = this.stackArtifact.terminationProtection ?? false;\n if (!!this.cloudFormationStack.terminationProtection !== terminationProtection) {\n await this.ioHelper.defaults.debug((0, util_1.format)('Updating termination protection from %s to %s for stack %s', this.cloudFormationStack.terminationProtection, terminationProtection, this.stackName));\n await this.cfn.updateTerminationProtection({\n StackName: this.stackName,\n EnableTerminationProtection: terminationProtection,\n });\n await this.ioHelper.defaults.debug((0, util_1.format)('Termination protection updated to %s for stack %s', terminationProtection, this.stackName));\n }\n }\n async directDeployment() {\n await this.ioHelper.defaults.info((0, util_1.format)('%s: %s stack...', chalk.bold(this.stackName), this.update ? 'updating' : 'creating'));\n const startTime = new Date();\n if (this.update) {\n await this.updateTerminationProtection();\n try {\n await this.cfn.updateStack({\n StackName: this.stackName,\n ClientRequestToken: `update${this.uuid}`,\n ...this.commonPrepareOptions(),\n ...this.commonExecuteOptions(),\n });\n }\n catch (err) {\n if (err.message === 'No updates are to be performed.') {\n await this.ioHelper.defaults.debug((0, util_1.format)('No updates are to be performed for stack %s', this.stackName));\n return {\n type: 'did-deploy-stack',\n noOp: true,\n outputs: this.cloudFormationStack.outputs,\n stackArn: this.cloudFormationStack.stackId,\n };\n }\n throw err;\n }\n return this.monitorDeployment(startTime, undefined);\n }\n else {\n // Take advantage of the fact that we can set termination protection during create\n const terminationProtection = this.stackArtifact.terminationProtection ?? false;\n await this.cfn.createStack({\n StackName: this.stackName,\n ClientRequestToken: `create${this.uuid}`,\n ...(terminationProtection ? { EnableTerminationProtection: true } : undefined),\n ...this.commonPrepareOptions(),\n ...this.commonExecuteOptions(),\n });\n return this.monitorDeployment(startTime, undefined);\n }\n }\n async monitorDeployment(startTime, expectedChanges) {\n const monitor = new stack_events_1.StackActivityMonitor({\n cfn: this.cfn,\n stack: this.stackArtifact,\n stackName: this.stackName,\n resourcesTotal: expectedChanges,\n ioHelper: this.ioHelper,\n changeSetCreationTime: startTime,\n envResources: this.options.envResources,\n });\n await monitor.start();\n let finalState = this.cloudFormationStack;\n try {\n const successStack = await (0, cfn_api_1.waitForStackDeploy)(this.cfn, this.ioHelper, this.stackName);\n // This shouldn't really happen, but catch it anyway. You never know.\n if (!successStack) {\n throw new toolkit_error_1.DeploymentError('Stack deploy failed (the stack disappeared while we were deploying it)', toolkit_error_1.DeploymentErrorCodes.STACK_DISAPPEARED_ERROR_CODE);\n }\n finalState = successStack;\n }\n catch (e) {\n throw new toolkit_error_1.DeploymentError(suffixWithErrors((0, util_2.formatErrorMessage)(e), monitor.allErrorMessages), monitor.rootCauseErrorCode ?? 'StackDeployFailed');\n }\n finally {\n await monitor.stop();\n }\n await this.ioHelper.defaults.debug((0, util_1.format)('Stack %s has completed updating', this.stackName));\n return {\n type: 'did-deploy-stack',\n noOp: false,\n outputs: finalState.outputs,\n stackArn: finalState.stackId,\n };\n }\n /**\n * Return the options that are shared between CreateStack, UpdateStack and CreateChangeSet\n */\n commonPrepareOptions() {\n return {\n Capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM', 'CAPABILITY_AUTO_EXPAND'],\n NotificationARNs: this.options.notificationArns,\n Parameters: this.stackParams.apiParameters,\n RoleARN: this.options.roleArn,\n TemplateBody: this.bodyParameter.TemplateBody,\n TemplateURL: this.bodyParameter.TemplateURL,\n Tags: this.options.tags,\n };\n }\n /**\n * Return the options that are shared between UpdateStack and CreateChangeSet\n *\n * Be careful not to add in keys for options that aren't used, as the features may not have been\n * deployed everywhere yet.\n */\n commonExecuteOptions() {\n const shouldDisableRollback = this.options.rollback === false;\n return {\n StackName: this.stackName,\n ...(shouldDisableRollback ? { DisableRollback: true } : undefined),\n };\n }\n}\nasync function destroyStack(options, ioHelper) {\n const deployName = options.deployName || options.stack.stackName;\n const cfn = options.sdk.cloudFormation();\n const currentStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n if (!currentStack.exists) {\n return {};\n }\n const monitor = new stack_events_1.StackActivityMonitor({\n cfn,\n stack: options.stack,\n stackName: deployName,\n ioHelper: ioHelper,\n });\n await monitor.start();\n try {\n await cfn.deleteStack({ StackName: deployName, RoleARN: options.roleArn });\n const destroyedStack = await (0, cfn_api_1.waitForStackDelete)(cfn, ioHelper, deployName);\n if (destroyedStack && destroyedStack.stackStatus.name !== 'DELETE_COMPLETE') {\n throw new toolkit_error_1.DeploymentError(`Failed to destroy ${deployName}: ${destroyedStack.stackStatus}`, 'StackDestroyFailed');\n }\n return { stackArn: currentStack.stackId };\n }\n catch (e) {\n throw new toolkit_error_1.DeploymentError(suffixWithErrors((0, util_2.formatErrorMessage)(e), monitor.allErrorMessages), monitor.rootCauseErrorCode ?? 'StackDestroyFailed');\n }\n finally {\n if (monitor) {\n await monitor.stop();\n }\n }\n}\n/**\n * Checks whether we can skip deployment\n *\n * We do this in a complicated way by preprocessing (instead of just\n * looking at the changeset), because if there are nested stacks involved\n * the changeset will always show the nested stacks as needing to be\n * updated, and the deployment will take a long time to in effect not\n * do anything.\n */\nasync function canSkipDeploy(deployStackOptions, cloudFormationStack, parameterChanges, ioHelper) {\n const deployName = deployStackOptions.deployName || deployStackOptions.stack.stackName;\n await ioHelper.defaults.debug(`${deployName}: checking if we can skip deploy`);\n // Forced deploy\n if (deployStackOptions.forceDeployment) {\n await ioHelper.defaults.debug(`${deployName}: forced deployment`);\n return false;\n }\n // Creating changeset only (default true), never skip\n if (deployStackOptions.deploymentMethod?.method === 'change-set' &&\n deployStackOptions.deploymentMethod.execute === false) {\n await ioHelper.defaults.debug(`${deployName}: --no-execute, always creating change set`);\n return false;\n }\n // Executing an existing change set, never skip\n if (deployStackOptions.deploymentMethod?.method === 'execute-change-set') {\n await ioHelper.defaults.debug(`${deployName}: executing existing change set, never skip`);\n return false;\n }\n // Drift-aware\n if (deployStackOptions.deploymentMethod?.method === 'change-set' &&\n deployStackOptions.deploymentMethod.revertDrift) {\n await ioHelper.defaults.debug(`${deployName}: --revert-drift, always creating change set`);\n return false;\n }\n // No existing stack\n if (!cloudFormationStack.exists) {\n await ioHelper.defaults.debug(`${deployName}: no existing stack`);\n return false;\n }\n // Template has changed (assets taken into account here)\n if (JSON.stringify(deployStackOptions.stack.template) !== JSON.stringify(await cloudFormationStack.template())) {\n await ioHelper.defaults.debug(`${deployName}: template has changed`);\n return false;\n }\n // Tags have changed\n if (!compareTags(cloudFormationStack.tags, deployStackOptions.tags ?? [])) {\n await ioHelper.defaults.debug(`${deployName}: tags have changed`);\n return false;\n }\n // Notification arns have changed\n if (!arrayEquals(cloudFormationStack.notificationArns, deployStackOptions.notificationArns ?? [])) {\n await ioHelper.defaults.debug(`${deployName}: notification arns have changed`);\n return false;\n }\n // Termination protection has been updated\n if (!!deployStackOptions.stack.terminationProtection !== !!cloudFormationStack.terminationProtection) {\n await ioHelper.defaults.debug(`${deployName}: termination protection has been updated`);\n return false;\n }\n // Parameters have changed\n if (parameterChanges) {\n if (parameterChanges === 'ssm') {\n await ioHelper.defaults.debug(`${deployName}: some parameters come from SSM so we have to assume they may have changed`);\n }\n else {\n await ioHelper.defaults.debug(`${deployName}: parameters have changed`);\n }\n return false;\n }\n // Existing stack is in a failed state\n if (cloudFormationStack.stackStatus.isFailure) {\n await ioHelper.defaults.debug(`${deployName}: stack is in a failure state`);\n return false;\n }\n // We can skip deploy\n return true;\n}\n/**\n * Compares two list of tags, returns true if identical.\n */\nfunction compareTags(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (const aTag of a) {\n const bTag = b.find((tag) => tag.Key === aTag.Key);\n if (!bTag || bTag.Value !== aTag.Value) {\n return false;\n }\n }\n return true;\n}\nfunction suffixWithErrors(msg, errors) {\n return errors && errors.length > 0 ? `${msg}: ${errors.join(', ')}` : msg;\n}\nfunction arrayEquals(a, b) {\n return a.every((item) => b.includes(item)) && b.every((item) => a.includes(item));\n}\nfunction hasReplacement(cs) {\n return (cs.Changes ?? []).some(c => {\n const a = c.ResourceChange?.PolicyAction;\n return a === 'ReplaceAndDelete' || a === 'ReplaceAndRetain' || a === 'ReplaceAndSnapshot';\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ01BLGtDQXFKQztBQTJaRCxvQ0ErQkM7QUEvd0JELCtCQUE4QjtBQVU5QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLHFFQUFnRTtBQUNoRSx5REFBbUQ7QUFDbkQscUNBQXVEO0FBS3ZELHVDQU1tQjtBQUNuQixxQ0FBcUU7QUFHckUsc0ZBQWdHO0FBQ2hHLCtEQUFrRztBQUNsRyxxQ0FBZ0Q7QUFHaEQsc0RBQW1HO0FBRW5HLGdEQUE4RDtBQUM5RCw4Q0FBbUc7QUFDbkcsd0VBQXNFO0FBR3RFLGtEQUF1RDtBQUN2RCx5REFBNkQ7QUFzSnRELEtBQUssVUFBVSxXQUFXLENBQUMsT0FBMkIsRUFBRSxRQUFrQjtJQUMvRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUU3QyxJQUFJLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUNqRSxJQUFJLG1CQUFtQixHQUFHLE1BQU0sb0NBQW1CLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUU1RSxJQUFJLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RELE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFL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Q0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNqQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQztRQUN6QyxPQUFPLENBQUMsS0FBSyxrQkFBa0IsSUFBSSxDQUFDLEtBQUssa0JBQWtCLElBQUksQ0FBQyxLQUFLLG9CQUFvQixDQUFDO0lBQzVGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUge1xuICBDcmVhdGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQsXG4gIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIEV4ZWN1dGVDaGFuZ2VTZXRDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBUYWcsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgQXNzZXRNYW5pZmVzdEJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0LW1hbmlmZXN0LWJ1aWxkZXInO1xuaW1wb3J0IHsgcHVibGlzaEFzc2V0cyB9IGZyb20gJy4vYXNzZXQtcHVibGlzaGluZyc7XG5pbXBvcnQgeyBhZGRNZXRhZGF0YUFzc2V0c1RvTWFuaWZlc3QgfSBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBhcmFtZXRlclZhbHVlcyxcbiAgUGFyYW1ldGVyQ2hhbmdlcyxcbn0gZnJvbSAnLi9jZm4tYXBpJztcbmltcG9ydCB7XG4gIGNoYW5nZVNldEhhc05vQ2hhbmdlcyxcbiAgVGVtcGxhdGVQYXJhbWV0ZXJzLFxuICB3YWl0Rm9yQ2hhbmdlU2V0LFxuICB3YWl0Rm9yU3RhY2tEZXBsb3ksXG4gIHdhaXRGb3JTdGFja0RlbGV0ZSxcbn0gZnJvbSAnLi9jZm4tYXBpJztcbmltcG9ydCB7IGRldGVybWluZUFsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nIH0gZnJvbSAnLi9jaGVja3MnO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3lTdGFja1Jlc3VsdCwgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi9kZXBsb3ltZW50LXJlc3VsdCc7XG5pbXBvcnQgdHlwZSB7IENoYW5nZVNldERlcGxveW1lbnQsIERlcGxveW1lbnRNZXRob2QsIERpcmVjdERlcGxveW1lbnQgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2RlcGxveSc7XG5pbXBvcnQgeyBERUZBVUxUX0RFUExPWV9DSEFOR0VfU0VUX05BTUUgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2RlcGxveS9wcml2YXRlL2RlcGxveW1lbnQtbWV0aG9kJztcbmltcG9ydCB7IERlcGxveW1lbnRFcnJvciwgRGVwbG95bWVudEVycm9yQ29kZXMsIFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLLCBTZGtQcm92aWRlciwgSUNsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlQm9keVBhcmFtZXRlciB9IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IG1ha2VCb2R5UGFyYW1ldGVyLCBDZm5FdmFsdWF0aW9uRXhjZXB0aW9uLCBDbG91ZEZvcm1hdGlvblN0YWNrIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcywgU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsIElDT04sIGNyZWF0ZUhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyB9IGZyb20gJy4uL2hvdHN3YXAvY29tbW9uJztcbmltcG9ydCB7IHRyeUhvdHN3YXBEZXBsb3ltZW50IH0gZnJvbSAnLi4vaG90c3dhcC9ob3Rzd2FwLWRlcGxveW1lbnRzJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuLi9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgU3RhY2tBY3Rpdml0eU1vbml0b3IgfSBmcm9tICcuLi9zdGFjay1ldmVudHMnO1xuaW1wb3J0IHsgRWFybHlWYWxpZGF0aW9uUmVwb3J0ZXIgfSBmcm9tICcuL2Vhcmx5LXZhbGlkYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudCB9IGZyb20gJy4uLy4uL2FjdGlvbnMvZGVwbG95L3ByaXZhdGUvZGVwbG95bWVudC1tZXRob2QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVN0YWNrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gYmUgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB0byBkZXBsb3kgdGhpcyBzdGFjayBpblxuICAgKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgb24gdGhlIHN0YWNrIGFydGlmYWN0IG1heSBiZSB1bnJlc29sdmVkLCB0aGlzIG9uZVxuICAgKiBtdXN0IGJlIHJlc29sdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb2x2ZWRFbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdG8gdXNlIGZvciBkZXBsb3lpbmcgdGhlIHN0YWNrXG4gICAqXG4gICAqIFNob3VsZCBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCB0aGUgY29ycmVjdCByb2xlIHdpdGggd2hpY2hcbiAgICogc3RhY2sgb3BlcmF0aW9ucyBzaG91bGQgYmUgcGVyZm9ybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2RrOiBTREs7XG5cbiAgLyoqXG4gICAqIFNESyBwcm92aWRlciAoc2VlZGVkIHdpdGggZGVmYXVsdCBjcmVkZW50aWFscylcbiAgICpcbiAgICogV2lsbCBiZSB1c2VkIHRvOlxuICAgKlxuICAgKiAtIFB1Ymxpc2ggYXNzZXRzLCBlaXRoZXIgbGVnYWN5IGFzc2V0cyBvciBsYXJnZSBDRk4gdGVtcGxhdGVzXG4gICAqICAgdGhhdCBhcmVuJ3QgdGhlbXNlbHZlcyBhc3NldHMgZnJvbSBhIG1hbmlmZXN0LiAoTmVlZHMgYW4gU0RLXG4gICAqICAgUHJvdmlkZXIgYmVjYXVzZSB0aGUgZmlsZSBwdWJsaXNoaW5nIHJvbGUgaXMgZGVjbGFyZWQgYXMgcGFydFxuICAgKiAgIG9mIHRoZSBhc3NldCkuXG4gICAqIC0gSG90c3dhcFxuICAgKi9cbiAgcmVhZG9ubHkgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYm9vdHN0cmFwIHN0YWNrIGZvdW5kIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGVudlJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXM7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiB0byBleGVjdXRlIHRoZSBjaGFuZ2Ugc2V0XG4gICAqXG4gICAqIFRvIG9idGFpbiBhIGBTdHJpbmdXaXRob3V0UGxhY2Vob2xkZXJzYCwgcnVuIGEgcmVndWxhclxuICAgKiBzdHJpbmcgdGhvdWdoIGBUYXJnZXRFbnZpcm9ubWVudC5yZXBsYWNlUGxhY2Vob2xkZXJzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBleGVjdXRpb24gcm9sZTsgQ2xvdWRGb3JtYXRpb24gZWl0aGVyIHVzZXMgdGhlIHJvbGUgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aFxuICAgKiB0aGUgc3RhY2ssIG9yIG90aGVyd2lzZSB1c2VzIGN1cnJlbnQgQVdTIGNyZWRlbnRpYWxzXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycztcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9uIEFSTnMgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiB0byBub3RpZnkgd2hlbiB0aGUgY2hhbmdlIHNldCBoYXMgY29tcGxldGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIHRvIGRlcGxveSB0aGUgc3RhY2sgdW5kZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOYW1lIGZyb20gYXNzZW1ibHlcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXQgSURzIHdoaWNoIHNob3VsZG4ndCBiZSBidWlsdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJ1aWxkIGFsbCBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiB0byBhZGQgdG8gc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoYXQgZGVwbG95bWVudCBtZXRob2QgdG8gdXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ2hhbmdlIHNldCB3aXRoIGRlZmF1bHRzXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kPzogRGVwbG95bWVudE1ldGhvZCB8IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY29sbGVjdGlvbiBvZiBleHRyYSBwYXJhbWV0ZXJzXG4gICAqIChpbiBhZGRpdGlvbiB0byB0aG9zZSB1c2VkIGZvciBhc3NldHMpXG4gICAqIHRvIHBhc3MgdG8gdGhlIGRlcGxveWVkIHRlbXBsYXRlLlxuICAgKiBOb3RlIHRoYXQgcGFyYW1ldGVycyB3aXRoIGB1bmRlZmluZWRgIG9yIGVtcHR5IHZhbHVlcyB3aWxsIGJlIGlnbm9yZWQsXG4gICAqIGFuZCBub3QgcGFzc2VkIHRvIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFVzZSBwcmV2aW91cyB2YWx1ZXMgZm9yIHVuc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAgICpcbiAgICogSWYgbm90IHNldCwgYWxsIHBhcmFtZXRlcnMgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGV2ZXJ5IGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB1c2VQcmV2aW91c1BhcmFtZXRlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXBsb3kgZXZlbiBpZiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBvbmUgd2UgYXJlIGFib3V0IHRvIGRlcGxveS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIGZhaWxlZCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBleHRyYSBzdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlciB3aGVuIHBlcmZvcm1pbmcgQVdTIFNESyBjYWxscy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3RoaW5nIGV4dHJhIGlzIGFwcGVuZGVkIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlclxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFVc2VyQWdlbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCwgY2hhbmdlIHNldCBvZiB0eXBlIElNUE9SVCB3aWxsIGJlIGNyZWF0ZWQsIGFuZCByZXNvdXJjZXNUb0ltcG9ydFxuICAgKiBwYXNzZWQgdG8gaXQuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0O1xuXG4gIC8qKlxuICAgKiBJZiBwcmVzZW50LCB1c2UgdGhpcyBnaXZlbiB0ZW1wbGF0ZSBpbnN0ZWFkIG9mIHRoZSBzdG9yZWQgb25lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBzdG9yZWQgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlVGVtcGxhdGU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYnVpbGQvcHVibGlzaCBhc3NldHMgaW4gcGFyYWxsZWxcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSBUbyByZW1haW4gYmFja3dhcmQgY29tcGF0aWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0UGFyYWxsZWxpc20/OiBib29sZWFuO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVwbG95U3RhY2sob3B0aW9uczogRGVwbG95U3RhY2tPcHRpb25zLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBQcm9taXNlPERlcGxveVN0YWNrUmVzdWx0PiB7XG4gIGNvbnN0IHN0YWNrQXJ0aWZhY3QgPSBvcHRpb25zLnN0YWNrO1xuICBjb25zdCBzdGFja0VudiA9IG9wdGlvbnMucmVzb2x2ZWRFbnZpcm9ubWVudDtcblxuICBsZXQgZGVwbG95bWVudE1ldGhvZCA9IG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZCA/PyB7IG1ldGhvZDogJ2NoYW5nZS1zZXQnIH07XG4gIG9wdGlvbnMuc2RrLmFwcGVuZEN1c3RvbVVzZXJBZ2VudChvcHRpb25zLmV4dHJhVXNlckFnZW50KTtcbiAgY29uc3QgY2ZuID0gb3B0aW9ucy5zZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgY29uc3QgZGVwbG95TmFtZSA9IG9wdGlvbnMuZGVwbG95TmFtZSB8fCBzdGFja0FydGlmYWN0LnN0YWNrTmFtZTtcbiAgbGV0IGNsb3VkRm9ybWF0aW9uU3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIGRlcGxveU5hbWUpO1xuXG4gIGlmIChjbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrU3RhdHVzLmlzQ3JlYXRpb25GYWlsdXJlKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoXG4gICAgICBgRm91bmQgZXhpc3Rpbmcgc3RhY2sgJHtkZXBsb3lOYW1lfSB0aGF0IGhhZCBwcmV2aW91c2x5IGZhaWxlZCBjcmVhdGlvbi4gRGVsZXRpbmcgaXQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcmUtY3JlYXRlIGl0LmAsXG4gICAgKTtcbiAgICBhd2FpdCBjZm4uZGVsZXRlU3RhY2soeyBTdGFja05hbWU6IGRlcGxveU5hbWUgfSk7XG4gICAgY29uc3QgZGVsZXRlZFN0YWNrID0gYXdhaXQgd2FpdEZvclN0YWNrRGVsZXRlKGNmbiwgaW9IZWxwZXIsIGRlcGxveU5hbWUpO1xuICAgIGlmIChkZWxldGVkU3RhY2sgJiYgZGVsZXRlZFN0YWNrLnN0YWNrU3RhdHVzLm5hbWUgIT09ICdERUxFVEVfQ09NUExFVEUnKSB7XG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKFxuICAgICAgICBgRmFpbGVkIGRlbGV0aW5nIHN0YWNrICR7ZGVwbG95TmFtZX0gdGhhdCBoYWQgcHJldmlvdXNseSBmYWlsZWQgY3JlYXRpb24gKGN1cnJlbnQgc3RhdGU6ICR7ZGVsZXRlZFN0YWNrLnN0YWNrU3RhdHVzfSlgLFxuICAgICAgICAnRmFpbGVkU3RhY2tDbGVhbnVwRmFpbGVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIFVwZGF0ZSB2YXJpYWJsZSB0byBtYXJrIHRoYXQgdGhlIHN0YWNrIGRvZXMgbm90IGV4aXN0IGFueW1vcmUsIGJ1dCBhdm9pZFxuICAgIC8vIGRvaW5nIGFuIGFjdHVhbCBsb29rdXAgaW4gQ2xvdWRGb3JtYXRpb24gKHdoaWNoIHdvdWxkIGJlIHNpbGx5IHRvIGRvIGlmXG4gICAgLy8gd2UganVzdCBkZWxldGVkIGl0KS5cbiAgICBjbG91ZEZvcm1hdGlvblN0YWNrID0gQ2xvdWRGb3JtYXRpb25TdGFjay5kb2VzTm90RXhpc3QoY2ZuLCBkZXBsb3lOYW1lKTtcbiAgfVxuXG4gIC8vIERldGVjdCBcImxlZ2FjeVwiIGFzc2V0cyAod2hpY2ggcmVtYWluIGluIHRoZSBtZXRhZGF0YSkgYW5kIHB1Ymxpc2ggdGhlbSB2aWFcbiAgLy8gYW4gYWQtaG9jIGFzc2V0IG1hbmlmZXN0LCB3aGlsZSBwYXNzaW5nIHRoZWlyIGxvY2F0aW9ucyB2aWEgdGVtcGxhdGVcbiAgLy8gcGFyYW1ldGVycy5cbiAgY29uc3QgbGVnYWN5QXNzZXRzID0gbmV3IEFzc2V0TWFuaWZlc3RCdWlsZGVyKCk7XG4gIGNvbnN0IGFzc2V0UGFyYW1zID0gYXdhaXQgYWRkTWV0YWRhdGFBc3NldHNUb01hbmlmZXN0KFxuICAgIGlvSGVscGVyLFxuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgbGVnYWN5QXNzZXRzLFxuICAgIG9wdGlvbnMuZW52UmVzb3VyY2VzLFxuICAgIG9wdGlvbnMucmV1c2VBc3NldHMsXG4gICk7XG5cbiAgY29uc3QgZmluYWxQYXJhbWV0ZXJWYWx1ZXMgPSB7IC4uLm9wdGlvbnMucGFyYW1ldGVycywgLi4uYXNzZXRQYXJhbXMgfTtcblxuICBjb25zdCB0ZW1wbGF0ZVBhcmFtcyA9IFRlbXBsYXRlUGFyYW1ldGVycy5mcm9tVGVtcGxhdGUoc3RhY2tBcnRpZmFjdC50ZW1wbGF0ZSk7XG4gIGNvbnN0IHN0YWNrUGFyYW1zID0gb3B0aW9ucy51c2VQcmV2aW91c1BhcmFtZXRlcnNcbiAgICA/IHRlbXBsYXRlUGFyYW1zLnVwZGF0ZUV4aXN0aW5nKGZpbmFsUGFyYW1ldGVyVmFsdWVzLCBjbG91ZEZvcm1hdGlvblN0YWNrLnBhcmFtZXRlcnMpXG4gICAgOiB0ZW1wbGF0ZVBhcmFtcy5zdXBwbHlBbGwoZmluYWxQYXJhbWV0ZXJWYWx1ZXMpO1xuXG4gIGlmIChhd2FpdCBjYW5Ta2lwRGVwbG95KG9wdGlvbnMsIGNsb3VkRm9ybWF0aW9uU3RhY2ssIHN0YWNrUGFyYW1zLmhhc0NoYW5nZXMoY2xvdWRGb3JtYXRpb25TdGFjay5wYXJhbWV0ZXJzKSwgaW9IZWxwZXIpKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IHNraXBwaW5nIGRlcGxveW1lbnQgKHVzZSAtLWZvcmNlIHRvIG92ZXJyaWRlKWApO1xuICAgIC8vIGlmIHdlIGNhbiBza2lwIGRlcGxveW1lbnQgYW5kIHdlIGFyZSBwZXJmb3JtaW5nIGEgaG90c3dhcCwgbGV0IHRoZSB1c2VyIGtub3dcbiAgICAvLyB0aGF0IG5vIGhvdHN3YXAgZGVwbG95bWVudCBoYXBwZW5lZFxuICAgIGlmIChkZXBsb3ltZW50TWV0aG9kPy5tZXRob2QgPT09ICdob3Rzd2FwJykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhcbiAgICAgICAgZm9ybWF0KFxuICAgICAgICAgIGBcXG4gJHtJQ09OfSAlc1xcbmAsXG4gICAgICAgICAgY2hhbGsuYm9sZCgnaG90c3dhcCBkZXBsb3ltZW50IHNraXBwZWQgLSBubyBjaGFuZ2VzIHdlcmUgZGV0ZWN0ZWQgKHVzZSAtLWZvcmNlIHRvIG92ZXJyaWRlKScpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgIG5vT3A6IHRydWUsXG4gICAgICBvdXRwdXRzOiBjbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgICBzdGFja0FybjogY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja0lkLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IGRlcGxveWluZy4uLmApO1xuICB9XG5cbiAgY29uc3QgYm9keVBhcmFtZXRlciA9IGF3YWl0IG1ha2VCb2R5UGFyYW1ldGVyKFxuICAgIGlvSGVscGVyLFxuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgb3B0aW9ucy5yZXNvbHZlZEVudmlyb25tZW50LFxuICAgIGxlZ2FjeUFzc2V0cyxcbiAgICBvcHRpb25zLmVudlJlc291cmNlcyxcbiAgICBvcHRpb25zLm92ZXJyaWRlVGVtcGxhdGUsXG4gICk7XG4gIGxldCBib290c3RyYXBTdGFja05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICBib290c3RyYXBTdGFja05hbWUgPSAoYXdhaXQgb3B0aW9ucy5lbnZSZXNvdXJjZXMubG9va3VwVG9vbGtpdCgpKS5zdGFja05hbWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgQ291bGQgbm90IGRldGVybWluZSB0aGUgYm9vdHN0cmFwIHN0YWNrIG5hbWU6ICR7ZX1gKTtcbiAgfVxuICBhd2FpdCBwdWJsaXNoQXNzZXRzKGxlZ2FjeUFzc2V0cy50b01hbmlmZXN0KHN0YWNrQXJ0aWZhY3QuYXNzZW1ibHkuZGlyZWN0b3J5KSwgb3B0aW9ucy5zZGtQcm92aWRlciwgc3RhY2tFbnYsIHtcbiAgICBwYXJhbGxlbDogb3B0aW9ucy5hc3NldFBhcmFsbGVsaXNtLFxuICAgIGFsbG93Q3Jvc3NBY2NvdW50OiBhd2FpdCBkZXRlcm1pbmVBbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZyhvcHRpb25zLnNkaywgaW9IZWxwZXIsIGJvb3RzdHJhcFN0YWNrTmFtZSksXG4gIH0sIGlvSGVscGVyKTtcblxuICAvLyBhdHRlbXB0IHRvIHNob3J0LWNpcmN1aXQgdGhlIGRlcGxveW1lbnQgaWYgcG9zc2libGVcbiAgaWYgKGRlcGxveW1lbnRNZXRob2Q/Lm1ldGhvZCA9PT0gJ2hvdHN3YXAnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhvdHN3YXBNb2RlTmV3ID0gZGVwbG95bWVudE1ldGhvZD8uZmFsbGJhY2sgPyAnZmFsbC1iYWNrJyA6ICdob3Rzd2FwLW9ubHknO1xuICAgICAgY29uc3QgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzID0gZGVwbG95bWVudE1ldGhvZC5wcm9wZXJ0aWVzXG4gICAgICAgID8gY3JlYXRlSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKGRlcGxveW1lbnRNZXRob2QucHJvcGVydGllcylcbiAgICAgICAgOiBuZXcgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKCk7XG5cbiAgICAgIGNvbnN0IGhvdHN3YXBEZXBsb3ltZW50UmVzdWx0ID0gYXdhaXQgdHJ5SG90c3dhcERlcGxveW1lbnQoXG4gICAgICAgIG9wdGlvbnMuc2RrUHJvdmlkZXIsXG4gICAgICAgIGlvSGVscGVyLFxuICAgICAgICBzdGFja1BhcmFtcy52YWx1ZXMsXG4gICAgICAgIGNsb3VkRm9ybWF0aW9uU3RhY2ssXG4gICAgICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgICAgIGhvdHN3YXBNb2RlTmV3LFxuICAgICAgICBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICAgICApO1xuXG4gICAgICBpZiAoaG90c3dhcERlcGxveW1lbnRSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGhvdHN3YXBEZXBsb3ltZW50UmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGZvcm1hdChcbiAgICAgICAgJ0NvdWxkIG5vdCBwZXJmb3JtIGEgaG90c3dhcCBkZXBsb3ltZW50LCBhcyB0aGUgc3RhY2sgJXMgY29udGFpbnMgbm9uLUFzc2V0IGNoYW5nZXMnLFxuICAgICAgICBzdGFja0FydGlmYWN0LmRpc3BsYXlOYW1lLFxuICAgICAgKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIENmbkV2YWx1YXRpb25FeGNlcHRpb24pKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGZvcm1hdChcbiAgICAgICAgJ0NvdWxkIG5vdCBwZXJmb3JtIGEgaG90c3dhcCBkZXBsb3ltZW50LCBiZWNhdXNlIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6ICVzJyxcbiAgICAgICAgZm9ybWF0RXJyb3JNZXNzYWdlKGUpLFxuICAgICAgKSk7XG4gICAgfVxuXG4gICAgaWYgKGRlcGxveW1lbnRNZXRob2QuZmFsbGJhY2spIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ0ZhbGxpbmcgYmFjayB0byBkb2luZyBhIGZ1bGwgZGVwbG95bWVudCcpO1xuICAgICAgb3B0aW9ucy5zZGsuYXBwZW5kQ3VzdG9tVXNlckFnZW50KCdjZGstaG90c3dhcC9mYWxsYmFjaycpO1xuICAgICAgZGVwbG95bWVudE1ldGhvZCA9IGRlcGxveW1lbnRNZXRob2QuZmFsbGJhY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgICAgbm9PcDogdHJ1ZSxcbiAgICAgICAgc3RhY2tBcm46IGNsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tJZCxcbiAgICAgICAgb3V0cHV0czogY2xvdWRGb3JtYXRpb25TdGFjay5vdXRwdXRzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBjb3VsZCBub3Qgc2hvcnQtY2lyY3VpdCB0aGUgZGVwbG95bWVudCwgcGVyZm9ybSBhIGZ1bGwgQ0ZOIGRlcGxveSBpbnN0ZWFkXG4gIGNvbnN0IGZ1bGxEZXBsb3ltZW50ID0gbmV3IEZ1bGxDbG91ZEZvcm1hdGlvbkRlcGxveW1lbnQoXG4gICAgZGVwbG95bWVudE1ldGhvZCxcbiAgICBvcHRpb25zLFxuICAgIGNsb3VkRm9ybWF0aW9uU3RhY2ssXG4gICAgc3RhY2tBcnRpZmFjdCxcbiAgICBzdGFja1BhcmFtcyxcbiAgICBib2R5UGFyYW1ldGVyLFxuICAgIGlvSGVscGVyLFxuICApO1xuICByZXR1cm4gZnVsbERlcGxveW1lbnQucGVyZm9ybURlcGxveW1lbnQoKTtcbn1cblxudHlwZSBDb21tb25QcmVwYXJlT3B0aW9ucyA9IGtleW9mIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0ICZcbmtleW9mIFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0ICZcbmtleW9mIENyZWF0ZUNoYW5nZVNldENvbW1hbmRJbnB1dDtcbnR5cGUgQ29tbW9uRXhlY3V0ZU9wdGlvbnMgPSBrZXlvZiBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCAmXG5rZXlvZiBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCAmXG5rZXlvZiBFeGVjdXRlQ2hhbmdlU2V0Q29tbWFuZElucHV0O1xuXG4vKipcbiAqIFRoaXMgY2xhc3Mgc2hhcmVzIHN0YXRlIGFuZCBmdW5jdGlvbmFsaXR5IGJldHdlZW4gdGhlIGRpZmZlcmVudCBmdWxsIGRlcGxveW1lbnQgbW9kZXNcbiAqL1xuY2xhc3MgRnVsbENsb3VkRm9ybWF0aW9uRGVwbG95bWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcmI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB1dWlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kOiBEaXJlY3REZXBsb3ltZW50IHwgQ2hhbmdlU2V0RGVwbG95bWVudCB8IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogRGVwbG95U3RhY2tPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25TdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjayxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrQXJ0aWZhY3Q6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrUGFyYW1zOiBQYXJhbWV0ZXJWYWx1ZXMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBib2R5UGFyYW1ldGVyOiBUZW1wbGF0ZUJvZHlQYXJhbWV0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICkge1xuICAgIHRoaXMuY2ZuID0gb3B0aW9ucy5zZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgICB0aGlzLnN0YWNrTmFtZSA9IG9wdGlvbnMuZGVwbG95TmFtZSA/PyBzdGFja0FydGlmYWN0LnN0YWNrTmFtZTtcblxuICAgIHRoaXMudXBkYXRlID0gY2xvdWRGb3JtYXRpb25TdGFjay5leGlzdHMgJiYgY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5uYW1lICE9PSAnUkVWSUVXX0lOX1BST0dSRVNTJztcbiAgICB0aGlzLnZlcmIgPSB0aGlzLnVwZGF0ZSA/ICd1cGRhdGUnIDogJ2NyZWF0ZSc7XG4gICAgdGhpcy51dWlkID0gdXVpZC52NCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHBlcmZvcm1EZXBsb3ltZW50KCk6IFByb21pc2U8RGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBkZXBsb3ltZW50TWV0aG9kID0gdGhpcy5kZXBsb3ltZW50TWV0aG9kID8/IHsgbWV0aG9kOiAnY2hhbmdlLXNldCcgfTtcblxuICAgIGlmIChkZXBsb3ltZW50TWV0aG9kLm1ldGhvZCA9PT0gJ2RpcmVjdCcgJiYgdGhpcy5vcHRpb25zLnJlc291cmNlc1RvSW1wb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbXBvcnRSZXF1aXJlc0NoYW5nZVNldCcsICdJbXBvcnRpbmcgcmVzb3VyY2VzIHJlcXVpcmVzIGEgY2hhbmdlc2V0IGRlcGxveW1lbnQnKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGRlcGxveW1lbnRNZXRob2QubWV0aG9kKSB7XG4gICAgICBjYXNlICdjaGFuZ2Utc2V0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlU2V0RGVwbG95bWVudChkZXBsb3ltZW50TWV0aG9kKTtcblxuICAgICAgY2FzZSAnZXhlY3V0ZS1jaGFuZ2Utc2V0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZUV4aXN0aW5nQ2hhbmdlU2V0KGRlcGxveW1lbnRNZXRob2QpO1xuXG4gICAgICBjYXNlICdkaXJlY3QnOlxuICAgICAgICByZXR1cm4gdGhpcy5kaXJlY3REZXBsb3ltZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGFuZ2VTZXREZXBsb3ltZW50KGRlcGxveW1lbnRNZXRob2Q6IENoYW5nZVNldERlcGxveW1lbnQpOiBQcm9taXNlPERlcGxveVN0YWNrUmVzdWx0PiB7XG4gICAgY29uc3QgY2hhbmdlU2V0TmFtZSA9IGRlcGxveW1lbnRNZXRob2QuY2hhbmdlU2V0TmFtZSA/PyBERUZBVUxUX0RFUExPWV9DSEFOR0VfU0VUX05BTUU7XG4gICAgY29uc3QgZXhlY3V0ZSA9IGRlcGxveW1lbnRNZXRob2QuZXhlY3V0ZSA/PyB0cnVlO1xuICAgIGNvbnN0IGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzID0gZGVwbG95bWVudE1ldGhvZC5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyA/PyBmYWxzZTtcbiAgICBjb25zdCByZXZlcnREcmlmdCA9IGRlcGxveW1lbnRNZXRob2QucmV2ZXJ0RHJpZnQgPz8gZmFsc2U7XG4gICAgY29uc3QgY2hhbmdlU2V0RGVzY3JpcHRpb24gPSBhd2FpdCB0aGlzLmNyZWF0ZUNoYW5nZVNldChjaGFuZ2VTZXROYW1lLCBleGVjdXRlLCBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcywgcmV2ZXJ0RHJpZnQpO1xuICAgIGF3YWl0IHRoaXMudXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uKCk7XG5cbiAgICBpZiAoY2hhbmdlU2V0SGFzTm9DaGFuZ2VzKGNoYW5nZVNldERlc2NyaXB0aW9uKSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ05vIGNoYW5nZXMgYXJlIHRvIGJlIHBlcmZvcm1lZCBvbiAlcy4nLCB0aGlzLnN0YWNrTmFtZSkpO1xuICAgICAgaWYgKGV4ZWN1dGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ0RlbGV0aW5nIGVtcHR5IGNoYW5nZSBzZXQgJXMnLCBjaGFuZ2VTZXREZXNjcmlwdGlvbi5DaGFuZ2VTZXRJZCkpO1xuICAgICAgICBhd2FpdCB0aGlzLmNmbi5kZWxldGVDaGFuZ2VTZXQoe1xuICAgICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICAgICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VEZXBsb3ltZW50KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihcbiAgICAgICAgICBbXG4gICAgICAgICAgICAnWW91IHVzZWQgdGhlIC0tZm9yY2UgZmxhZywgYnV0IENsb3VkRm9ybWF0aW9uIHJlcG9ydGVkIHRoYXQgdGhlIGRlcGxveW1lbnQgd291bGQgbm90IG1ha2UgYW55IGNoYW5nZXMuJyxcbiAgICAgICAgICAgICdBY2NvcmRpbmcgdG8gQ2xvdWRGb3JtYXRpb24sIGFsbCByZXNvdXJjZXMgYXJlIGFscmVhZHkgdXAtdG8tZGF0ZSB3aXRoIHRoZSBzdGF0ZSBpbiB5b3VyIENESyBhcHAuJyxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJ1lvdSBjYW5ub3QgdXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gZ2V0IHJpZCBvZiBjaGFuZ2VzIHlvdSBtYWRlIGluIHRoZSBjb25zb2xlLiBUcnkgdXNpbmcnLFxuICAgICAgICAgICAgJ0Nsb3VkRm9ybWF0aW9uIGRyaWZ0IGRldGVjdGlvbiBpbnN0ZWFkOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tc3RhY2stZHJpZnQuaHRtbCcsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RpZC1kZXBsb3ktc3RhY2snLFxuICAgICAgICBub09wOiB0cnVlLFxuICAgICAgICBvdXRwdXRzOiB0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2sub3V0cHV0cyxcbiAgICAgICAgc3RhY2tBcm46IGNoYW5nZVNldERlc2NyaXB0aW9uLlN0YWNrSWQhLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoIWV4ZWN1dGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXQoXG4gICAgICAgICdDaGFuZ2VzZXQgJXMgY3JlYXRlZCBhbmQgd2FpdGluZyBpbiByZXZpZXcgZm9yIG1hbnVhbCBleGVjdXRpb24gKC0tbm8tZXhlY3V0ZSknLFxuICAgICAgICBjaGFuZ2VTZXREZXNjcmlwdGlvbi5DaGFuZ2VTZXRJZCxcbiAgICAgICkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RpZC1kZXBsb3ktc3RhY2snLFxuICAgICAgICBub09wOiBmYWxzZSxcbiAgICAgICAgb3V0cHV0czogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgICAgIHN0YWNrQXJuOiBjaGFuZ2VTZXREZXNjcmlwdGlvbi5TdGFja0lkISxcbiAgICAgICAgY2hhbmdlU2V0OiBjaGFuZ2VTZXREZXNjcmlwdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHJlcGxhY2VtZW50cyBpbiB0aGUgY2hhbmdlc2V0LCBjaGVjayB0aGUgcm9sbGJhY2sgZmxhZyBhbmQgc3RhY2sgc3RhdHVzXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tBbmRFeGVjdXRlQ2hhbmdlU2V0KGNoYW5nZVNldERlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUV4aXN0aW5nQ2hhbmdlU2V0KGRlcGxveW1lbnRNZXRob2Q6IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50KTogUHJvbWlzZTxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uKCk7XG5cbiAgICAvLyBUaGUgY2hhbmdlIHNldCB3YXMgYWxyZWFkeSBjcmVhdGVkIGFuZCB2YWxpZGF0ZWQgZHVyaW5nIHRoZSBwcmVwYXJlIHBoYXNlLFxuICAgIC8vIGp1c3QgZGVzY3JpYmUgaXQgdG8gZ2V0IHRoZSBpbmZvIG5lZWRlZCBmb3IgZXhlY3V0aW9uLlxuICAgIGNvbnN0IGNoYW5nZVNldERlc2NyaXB0aW9uID0gYXdhaXQgdGhpcy5jZm4uZGVzY3JpYmVDaGFuZ2VTZXQoe1xuICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIENoYW5nZVNldE5hbWU6IGRlcGxveW1lbnRNZXRob2QuY2hhbmdlU2V0TmFtZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmNoZWNrQW5kRXhlY3V0ZUNoYW5nZVNldChjaGFuZ2VTZXREZXNjcmlwdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgcm9sbGJhY2svcmVwbGFjZW1lbnQgY29uc3RyYWludHMgYW5kIGV4ZWN1dGUgdGhlIGNoYW5nZSBzZXQgaWYgYWxsIGNoZWNrcyBwYXNzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjaGVja0FuZEV4ZWN1dGVDaGFuZ2VTZXQoY2hhbmdlU2V0RGVzY3JpcHRpb246IERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dCk6IFByb21pc2U8RGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBpZiAoY2hhbmdlU2V0RGVzY3JpcHRpb24uU3RhdHVzICE9PSAnQ1JFQVRFX0NPTVBMRVRFJykge1xuICAgICAgY29uc3Qgc3RhdHVzID0gY2hhbmdlU2V0RGVzY3JpcHRpb24uU3RhdHVzID8/ICdVTktOT1dOJztcbiAgICAgIGNvbnN0IHJlYXNvbiA9IGNoYW5nZVNldERlc2NyaXB0aW9uLlN0YXR1c1JlYXNvbiA/IGA6ICR7Y2hhbmdlU2V0RGVzY3JpcHRpb24uU3RhdHVzUmVhc29ufWAgOiAnJztcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdDaGFuZ2VTZXROb3RSZWFkeScsXG4gICAgICAgIGBDaGFuZ2Ugc2V0ICcke2NoYW5nZVNldERlc2NyaXB0aW9uLkNoYW5nZVNldE5hbWV9JyBvbiBzdGFjayAnJHt0aGlzLnN0YWNrTmFtZX0nIGlzIG5vdCByZWFkeSBmb3IgZXhlY3V0aW9uIChzdGF0dXM6ICR7c3RhdHVzfSR7cmVhc29ufSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXBsYWNlbWVudCA9IGhhc1JlcGxhY2VtZW50KGNoYW5nZVNldERlc2NyaXB0aW9uKTtcbiAgICBjb25zdCBpc1BhdXNlZEZhaWxTdGF0ZSA9IHRoaXMuY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5pc1JvbGxiYWNrYWJsZTtcbiAgICBjb25zdCByb2xsYmFjayA9IHRoaXMub3B0aW9ucy5yb2xsYmFjayA/PyB0cnVlO1xuICAgIGlmIChpc1BhdXNlZEZhaWxTdGF0ZSAmJiByZXBsYWNlbWVudCkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogJ2ZhaWxwYXVzZWQtbmVlZC1yb2xsYmFjay1maXJzdCcsIHJlYXNvbjogJ3JlcGxhY2VtZW50Jywgc3RhdHVzOiB0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tTdGF0dXMubmFtZSB9O1xuICAgIH1cbiAgICBpZiAoaXNQYXVzZWRGYWlsU3RhdGUgJiYgcm9sbGJhY2spIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdmYWlscGF1c2VkLW5lZWQtcm9sbGJhY2stZmlyc3QnLCByZWFzb246ICdub3Qtbm9yb2xsYmFjaycsIHN0YXR1czogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrU3RhdHVzLm5hbWUgfTtcbiAgICB9XG4gICAgaWYgKCFyb2xsYmFjayAmJiByZXBsYWNlbWVudCkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogJ3JlcGxhY2VtZW50LXJlcXVpcmVzLXJvbGxiYWNrJyB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVDaGFuZ2VTZXQoY2hhbmdlU2V0RGVzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDaGFuZ2VTZXQoY2hhbmdlU2V0TmFtZTogc3RyaW5nLCB3aWxsRXhlY3V0ZTogYm9vbGVhbiwgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM6IGJvb2xlYW4sIHJldmVydERyaWZ0OiBib29sZWFuKSB7XG4gICAgYXdhaXQgdGhpcy5jbGVhbnVwT2xkQ2hhbmdlc2V0KGNoYW5nZVNldE5hbWUpO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgQXR0ZW1wdGluZyB0byBjcmVhdGUgQ2hhbmdlU2V0IHdpdGggbmFtZSAke2NoYW5nZVNldE5hbWV9IHRvICR7dGhpcy52ZXJifSBzdGFjayAke3RoaXMuc3RhY2tOYW1lfWApO1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXQoJyVzOiBjcmVhdGluZyBDbG91ZEZvcm1hdGlvbiBjaGFuZ2VzZXQuLi4nLCBjaGFsay5ib2xkKHRoaXMuc3RhY2tOYW1lKSkpO1xuICAgIGNvbnN0IGNoYW5nZVNldCA9IGF3YWl0IHRoaXMuY2ZuLmNyZWF0ZUNoYW5nZVNldCh7XG4gICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgICAgIENoYW5nZVNldFR5cGU6IHRoaXMub3B0aW9ucy5yZXNvdXJjZXNUb0ltcG9ydCA/ICdJTVBPUlQnIDogdGhpcy51cGRhdGUgPyAnVVBEQVRFJyA6ICdDUkVBVEUnLFxuICAgICAgUmVzb3VyY2VzVG9JbXBvcnQ6IHRoaXMub3B0aW9ucy5yZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIERlc2NyaXB0aW9uOiBgQ0RLIENoYW5nZXNldCBmb3IgZXhlY3V0aW9uICR7dGhpcy51dWlkfWAsXG4gICAgICBDbGllbnRUb2tlbjogYGNyZWF0ZSR7dGhpcy51dWlkfWAsXG4gICAgICBJbXBvcnRFeGlzdGluZ1Jlc291cmNlczogaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXMsXG4gICAgICBEZXBsb3ltZW50TW9kZTogcmV2ZXJ0RHJpZnQgPyAnUkVWRVJUX0RSSUZUJyA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLnRoaXMuY29tbW9uUHJlcGFyZU9wdGlvbnMoKSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KCdJbml0aWF0ZWQgY3JlYXRpb24gb2YgY2hhbmdlc2V0OiAlczsgd2FpdGluZyBmb3IgaXQgdG8gZmluaXNoIGNyZWF0aW5nLi4uJywgY2hhbmdlU2V0LklkKSk7XG4gICAgLy8gRmV0Y2hpbmcgYWxsIHBhZ2VzIGlmIHdlJ2xsIGV4ZWN1dGUsIHNvIHdlIGNhbiBoYXZlIHRoZSBjb3JyZWN0IGNoYW5nZSBjb3VudCB3aGVuIG1vbml0b3JpbmcuXG4gICAgY29uc3QgZW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSA9IG5ldyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5KCk7XG4gICAgY29uc3QgZW52UmVzb3VyY2VzID0gZW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeS5mb3IodGhpcy5vcHRpb25zLnJlc29sdmVkRW52aXJvbm1lbnQsIHRoaXMub3B0aW9ucy5zZGssIHRoaXMuaW9IZWxwZXIpO1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXBvcnRlciA9IG5ldyBFYXJseVZhbGlkYXRpb25SZXBvcnRlcih0aGlzLm9wdGlvbnMuc2RrLCBlbnZSZXNvdXJjZXMpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgd2FpdEZvckNoYW5nZVNldCh0aGlzLmNmbiwgdGhpcy5pb0hlbHBlciwgdGhpcy5zdGFja05hbWUsIGNoYW5nZVNldE5hbWUsIHtcbiAgICAgICAgZmV0Y2hBbGw6IHdpbGxFeGVjdXRlLFxuICAgICAgICB2YWxpZGF0aW9uUmVwb3J0ZXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChpbXBvcnRFeGlzdGluZ1Jlc291cmNlcyAmJiBUb29sa2l0RXJyb3IuaXNEZXBsb3ltZW50RXJyb3IoZSkgJiYgZS5kZXBsb3ltZW50RXJyb3JDb2RlID09PSAnQ2hhbmdlU2V0Q3JlYXRpb25GYWlsZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBEZXBsb3ltZW50RXJyb3IodGhpcy5lbmhhbmNlSW1wb3J0RXJyb3JNZXNzYWdlKGUubWVzc2FnZSksICdDaGFuZ2VTZXRDcmVhdGlvbkZhaWxlZCcpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW5oYW5jZSBhbiBpbXBvcnQtcmVsYXRlZCBjaGFuZ2VzZXQgZXJyb3IgbWVzc2FnZSBieSBtYXBwaW5nIENGTiBsb2dpY2FsIElEcyB0byBDREsgY29uc3RydWN0IHBhdGhzLlxuICAgKi9cbiAgcHJpdmF0ZSBlbmhhbmNlSW1wb3J0RXJyb3JNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gT25seSBlbmhhbmNlIHRoZSBzcGVjaWZpYyBDRk4gZXJyb3IgYWJvdXQgaW1wb3J0aW5nIGV4aXN0aW5nIHJlc291cmNlc1xuICAgIGlmICghbWVzc2FnZS5pbmNsdWRlcygnQ2xvdWRGb3JtYXRpb24gaXMgYXR0ZW1wdGluZyB0byBpbXBvcnQgc29tZSByZXNvdXJjZXMgYmVjYXVzZSB0aGV5IGFscmVhZHkgZXhpc3QgaW4geW91ciBhY2NvdW50JykpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcmtlciA9ICdUaGUgYWZmZWN0ZWQgcmVzb3VyY2VzIGFyZSAnO1xuICAgIGNvbnN0IG1hcmtlckluZGV4ID0gbWVzc2FnZS5pbmRleE9mKG1hcmtlcik7XG4gICAgaWYgKG1hcmtlckluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLy8gT25seSBleHRyYWN0IGxvZ2ljYWwgSURzIGZyb20gdGhlIFwiVGhlIGFmZmVjdGVkIHJlc291cmNlcyBhcmUgLi4uXCIgc3VmZml4XG4gICAgY29uc3QgcmVzb3VyY2VMaXN0ID0gbWVzc2FnZS5zdWJzdHJpbmcobWFya2VySW5kZXggKyBtYXJrZXIubGVuZ3RoKTtcbiAgICBjb25zdCBsb2dpY2FsSWRQYXR0ZXJuID0gL1xcYihbQS1aYS16XVtBLVphLXowLTldKylcXHMrXFwoXFx7L2c7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gdGhpcy5zdGFja0FydGlmYWN0LnRlbXBsYXRlPy5SZXNvdXJjZXMgPz8ge307XG5cbiAgICBjb25zdCBhZmZlY3RlZDogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIHJlc291cmNlTGlzdC5tYXRjaEFsbChsb2dpY2FsSWRQYXR0ZXJuKSkge1xuICAgICAgY29uc3QgbG9naWNhbElkID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCBwYXRoID0gcmVzb3VyY2VzW2xvZ2ljYWxJZF0/Lk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddO1xuICAgICAgYWZmZWN0ZWQucHVzaChwYXRoID8gYCAgLSAke3BhdGh9ICgke2xvZ2ljYWxJZH0pYCA6IGAgIC0gJHtsb2dpY2FsSWR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIGBJbXBvcnQgb2YgZXhpc3RpbmcgcmVzb3VyY2VzIGZhaWxlZCBmb3Igc3RhY2sgJyR7dGhpcy5zdGFja05hbWV9JyBiZWNhdXNlIHRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzIG5lZWQgYSBEZWxldGlvblBvbGljeSBvZiAnUmV0YWluJyBvciAnUmV0YWluRXhjZXB0T25DcmVhdGUnOmAsXG4gICAgICAuLi5hZmZlY3RlZCxcbiAgICAgICcnLFxuICAgICAgXCJTZXQgdGhlIHJlbW92YWwgcG9saWN5IHRvICdSZW1vdmFsUG9saWN5LlJFVEFJTicgb3IgJ1JlbW92YWxQb2xpY3kuUkVUQUlOX09OX1VQREFURV9PUl9ERUxFVEUnIG9uIHRoZXNlIHJlc291cmNlcy5cIixcbiAgICAgICdTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay92Mi9ndWlkZS9yZXNvdXJjZXMuaHRtbCNyZXNvdXJjZXMtcmVtb3ZhbCcsXG4gICAgXS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUNoYW5nZVNldChjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0Q29tbWFuZE91dHB1dCk6IFByb21pc2U8U3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0PiB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ0luaXRpYXRpbmcgZXhlY3V0aW9uIG9mIGNoYW5nZXNldCAlcyBvbiBzdGFjayAlcycsIGNoYW5nZVNldC5DaGFuZ2VTZXRJZCwgdGhpcy5zdGFja05hbWUpKTtcblxuICAgIGF3YWl0IHRoaXMuY2ZuLmV4ZWN1dGVDaGFuZ2VTZXQoe1xuICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIENoYW5nZVNldE5hbWU6IGNoYW5nZVNldC5DaGFuZ2VTZXROYW1lISxcbiAgICAgIENsaWVudFJlcXVlc3RUb2tlbjogYGV4ZWMke3RoaXMudXVpZH1gLFxuICAgICAgLi4udGhpcy5jb21tb25FeGVjdXRlT3B0aW9ucygpLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhcbiAgICAgIGZvcm1hdChcbiAgICAgICAgJ0V4ZWN1dGlvbiBvZiBjaGFuZ2VzZXQgJXMgb24gc3RhY2sgJXMgaGFzIHN0YXJ0ZWQ7IHdhaXRpbmcgZm9yIHRoZSB1cGRhdGUgdG8gY29tcGxldGUuLi4nLFxuICAgICAgICBjaGFuZ2VTZXQuQ2hhbmdlU2V0SWQsXG4gICAgICAgIHRoaXMuc3RhY2tOYW1lLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgLy8gKzEgZm9yIHRoZSBleHRyYSBldmVudCBlbWl0dGVkIGZyb20gdXBkYXRlcy5cbiAgICBjb25zdCBjaGFuZ2VTZXRMZW5ndGg6IG51bWJlciA9IChjaGFuZ2VTZXQuQ2hhbmdlcyA/PyBbXSkubGVuZ3RoICsgKHRoaXMudXBkYXRlID8gMSA6IDApO1xuICAgIHJldHVybiB0aGlzLm1vbml0b3JEZXBsb3ltZW50KGNoYW5nZVNldC5DcmVhdGlvblRpbWUhLCBjaGFuZ2VTZXRMZW5ndGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhbnVwT2xkQ2hhbmdlc2V0KGNoYW5nZVNldE5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2suZXhpc3RzKSB7XG4gICAgICAvLyBEZWxldGUgYW55IGV4aXN0aW5nIGNoYW5nZSBzZXRzIGdlbmVyYXRlZCBieSBDREsgc2luY2UgY2hhbmdlIHNldCBuYW1lcyBtdXN0IGJlIHVuaXF1ZS5cbiAgICAgIC8vIFRoZSBkZWxldGUgcmVxdWVzdCBpcyBzdWNjZXNzZnVsIGFzIGxvbmcgYXMgdGhlIHN0YWNrIGV4aXN0cyAoZXZlbiBpZiB0aGUgY2hhbmdlIHNldCBkb2VzIG5vdCBleGlzdCkuXG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBSZW1vdmluZyBleGlzdGluZyBjaGFuZ2Ugc2V0IHdpdGggbmFtZSAke2NoYW5nZVNldE5hbWV9IGlmIGl0IGV4aXN0c2ApO1xuICAgICAgYXdhaXQgdGhpcy5jZm4uZGVsZXRlQ2hhbmdlU2V0KHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgICAgQ2hhbmdlU2V0TmFtZTogY2hhbmdlU2V0TmFtZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uKCkge1xuICAgIC8vIFVwZGF0ZSB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIG9ubHkgaWYgaXQgaGFzIGNoYW5nZWQuXG4gICAgY29uc3QgdGVybWluYXRpb25Qcm90ZWN0aW9uID0gdGhpcy5zdGFja0FydGlmYWN0LnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZTtcbiAgICBpZiAoISF0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uICE9PSB0ZXJtaW5hdGlvblByb3RlY3Rpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoXG4gICAgICAgIGZvcm1hdCAoXG4gICAgICAgICAgJ1VwZGF0aW5nIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gZnJvbSAlcyB0byAlcyBmb3Igc3RhY2sgJXMnLFxuICAgICAgICAgIHRoaXMuY2xvdWRGb3JtYXRpb25TdGFjay50ZXJtaW5hdGlvblByb3RlY3Rpb24sXG4gICAgICAgICAgdGVybWluYXRpb25Qcm90ZWN0aW9uLFxuICAgICAgICAgIHRoaXMuc3RhY2tOYW1lLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2ZuLnVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvbih7XG4gICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICAgIEVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvbjogdGVybWluYXRpb25Qcm90ZWN0aW9uLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdCgnVGVybWluYXRpb24gcHJvdGVjdGlvbiB1cGRhdGVkIHRvICVzIGZvciBzdGFjayAlcycsIHRlcm1pbmF0aW9uUHJvdGVjdGlvbiwgdGhpcy5zdGFja05hbWUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRpcmVjdERlcGxveW1lbnQoKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmluZm8oZm9ybWF0KCclczogJXMgc3RhY2suLi4nLCBjaGFsay5ib2xkKHRoaXMuc3RhY2tOYW1lKSwgdGhpcy51cGRhdGUgPyAndXBkYXRpbmcnIDogJ2NyZWF0aW5nJykpO1xuXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoKTtcblxuICAgIGlmICh0aGlzLnVwZGF0ZSkge1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb24oKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jZm4udXBkYXRlU3RhY2soe1xuICAgICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICAgICAgQ2xpZW50UmVxdWVzdFRva2VuOiBgdXBkYXRlJHt0aGlzLnV1aWR9YCxcbiAgICAgICAgICAuLi50aGlzLmNvbW1vblByZXBhcmVPcHRpb25zKCksXG4gICAgICAgICAgLi4udGhpcy5jb21tb25FeGVjdXRlT3B0aW9ucygpLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgIGlmIChlcnIubWVzc2FnZSA9PT0gJ05vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZC4nKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1Zyhmb3JtYXQoJ05vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZCBmb3Igc3RhY2sgJXMnLCB0aGlzLnN0YWNrTmFtZSkpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnZGlkLWRlcGxveS1zdGFjaycsXG4gICAgICAgICAgICBub09wOiB0cnVlLFxuICAgICAgICAgICAgb3V0cHV0czogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgICAgICAgICBzdGFja0FybjogdGhpcy5jbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLm1vbml0b3JEZXBsb3ltZW50KHN0YXJ0VGltZSwgdW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCB3ZSBjYW4gc2V0IHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gZHVyaW5nIGNyZWF0ZVxuICAgICAgY29uc3QgdGVybWluYXRpb25Qcm90ZWN0aW9uID0gdGhpcy5zdGFja0FydGlmYWN0LnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZTtcblxuICAgICAgYXdhaXQgdGhpcy5jZm4uY3JlYXRlU3RhY2soe1xuICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgICBDbGllbnRSZXF1ZXN0VG9rZW46IGBjcmVhdGUke3RoaXMudXVpZH1gLFxuICAgICAgICAuLi4odGVybWluYXRpb25Qcm90ZWN0aW9uID8geyBFbmFibGVUZXJtaW5hdGlvblByb3RlY3Rpb246IHRydWUgfSA6IHVuZGVmaW5lZCksXG4gICAgICAgIC4uLnRoaXMuY29tbW9uUHJlcGFyZU9wdGlvbnMoKSxcbiAgICAgICAgLi4udGhpcy5jb21tb25FeGVjdXRlT3B0aW9ucygpLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0aGlzLm1vbml0b3JEZXBsb3ltZW50KHN0YXJ0VGltZSwgdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1vbml0b3JEZXBsb3ltZW50KHN0YXJ0VGltZTogRGF0ZSwgZXhwZWN0ZWRDaGFuZ2VzOiBudW1iZXIgfCB1bmRlZmluZWQpOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4ge1xuICAgIGNvbnN0IG1vbml0b3IgPSBuZXcgU3RhY2tBY3Rpdml0eU1vbml0b3Ioe1xuICAgICAgY2ZuOiB0aGlzLmNmbixcbiAgICAgIHN0YWNrOiB0aGlzLnN0YWNrQXJ0aWZhY3QsXG4gICAgICBzdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgcmVzb3VyY2VzVG90YWw6IGV4cGVjdGVkQ2hhbmdlcyxcbiAgICAgIGlvSGVscGVyOiB0aGlzLmlvSGVscGVyLFxuICAgICAgY2hhbmdlU2V0Q3JlYXRpb25UaW1lOiBzdGFydFRpbWUsXG4gICAgICBlbnZSZXNvdXJjZXM6IHRoaXMub3B0aW9ucy5lbnZSZXNvdXJjZXMsXG4gICAgfSk7XG4gICAgYXdhaXQgbW9uaXRvci5zdGFydCgpO1xuXG4gICAgbGV0IGZpbmFsU3RhdGUgPSB0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2s7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3NTdGFjayA9IGF3YWl0IHdhaXRGb3JTdGFja0RlcGxveSh0aGlzLmNmbiwgdGhpcy5pb0hlbHBlciwgdGhpcy5zdGFja05hbWUpO1xuXG4gICAgICAvLyBUaGlzIHNob3VsZG4ndCByZWFsbHkgaGFwcGVuLCBidXQgY2F0Y2ggaXQgYW55d2F5LiBZb3UgbmV2ZXIga25vdy5cbiAgICAgIGlmICghc3VjY2Vzc1N0YWNrKSB7XG4gICAgICAgIHRocm93IG5ldyBEZXBsb3ltZW50RXJyb3IoJ1N0YWNrIGRlcGxveSBmYWlsZWQgKHRoZSBzdGFjayBkaXNhcHBlYXJlZCB3aGlsZSB3ZSB3ZXJlIGRlcGxveWluZyBpdCknLCBEZXBsb3ltZW50RXJyb3JDb2Rlcy5TVEFDS19ESVNBUFBFQVJFRF9FUlJPUl9DT0RFKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsU3RhdGUgPSBzdWNjZXNzU3RhY2s7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKHN1ZmZpeFdpdGhFcnJvcnMoZm9ybWF0RXJyb3JNZXNzYWdlKGUpLCBtb25pdG9yLmFsbEVycm9yTWVzc2FnZXMpLCBtb25pdG9yLnJvb3RDYXVzZUVycm9yQ29kZSA/PyAnU3RhY2tEZXBsb3lGYWlsZWQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgbW9uaXRvci5zdG9wKCk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0KCdTdGFjayAlcyBoYXMgY29tcGxldGVkIHVwZGF0aW5nJywgdGhpcy5zdGFja05hbWUpKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2RpZC1kZXBsb3ktc3RhY2snLFxuICAgICAgbm9PcDogZmFsc2UsXG4gICAgICBvdXRwdXRzOiBmaW5hbFN0YXRlLm91dHB1dHMsXG4gICAgICBzdGFja0FybjogZmluYWxTdGF0ZS5zdGFja0lkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBvcHRpb25zIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIENyZWF0ZVN0YWNrLCBVcGRhdGVTdGFjayBhbmQgQ3JlYXRlQ2hhbmdlU2V0XG4gICAqL1xuICBwcml2YXRlIGNvbW1vblByZXBhcmVPcHRpb25zKCk6IFBhcnRpYWw8UGljazxVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCwgQ29tbW9uUHJlcGFyZU9wdGlvbnM+PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIENhcGFiaWxpdGllczogWydDQVBBQklMSVRZX0lBTScsICdDQVBBQklMSVRZX05BTUVEX0lBTScsICdDQVBBQklMSVRZX0FVVE9fRVhQQU5EJ10sXG4gICAgICBOb3RpZmljYXRpb25BUk5zOiB0aGlzLm9wdGlvbnMubm90aWZpY2F0aW9uQXJucyxcbiAgICAgIFBhcmFtZXRlcnM6IHRoaXMuc3RhY2tQYXJhbXMuYXBpUGFyYW1ldGVycyxcbiAgICAgIFJvbGVBUk46IHRoaXMub3B0aW9ucy5yb2xlQXJuLFxuICAgICAgVGVtcGxhdGVCb2R5OiB0aGlzLmJvZHlQYXJhbWV0ZXIuVGVtcGxhdGVCb2R5LFxuICAgICAgVGVtcGxhdGVVUkw6IHRoaXMuYm9keVBhcmFtZXRlci5UZW1wbGF0ZVVSTCxcbiAgICAgIFRhZ3M6IHRoaXMub3B0aW9ucy50YWdzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBvcHRpb25zIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIFVwZGF0ZVN0YWNrIGFuZCBDcmVhdGVDaGFuZ2VTZXRcbiAgICpcbiAgICogQmUgY2FyZWZ1bCBub3QgdG8gYWRkIGluIGtleXMgZm9yIG9wdGlvbnMgdGhhdCBhcmVuJ3QgdXNlZCwgYXMgdGhlIGZlYXR1cmVzIG1heSBub3QgaGF2ZSBiZWVuXG4gICAqIGRlcGxveWVkIGV2ZXJ5d2hlcmUgeWV0LlxuICAgKi9cbiAgcHJpdmF0ZSBjb21tb25FeGVjdXRlT3B0aW9ucygpOiBQYXJ0aWFsPFBpY2s8VXBkYXRlU3RhY2tDb21tYW5kSW5wdXQsIENvbW1vbkV4ZWN1dGVPcHRpb25zPj4ge1xuICAgIGNvbnN0IHNob3VsZERpc2FibGVSb2xsYmFjayA9IHRoaXMub3B0aW9ucy5yb2xsYmFjayA9PT0gZmFsc2U7XG5cbiAgICByZXR1cm4ge1xuICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIC4uLihzaG91bGREaXNhYmxlUm9sbGJhY2sgPyB7IERpc2FibGVSb2xsYmFjazogdHJ1ZSB9IDogdW5kZWZpbmVkKSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzdHJveVN0YWNrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gYmUgZGVzdHJveWVkXG4gICAqL1xuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuXG4gIHNkazogU0RLO1xuICByb2xlQXJuPzogc3RyaW5nO1xuICBkZXBsb3lOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lTdGFja1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzdGFjayB0aGF0IHdhcyBkZXN0cm95ZWQsIGlmIGFueS5cbiAgICpcbiAgICogSWYgdGhlIHN0YWNrIGRpZG4ndCBleGlzdCB0byBiZWdpbiB3aXRoLCB0aGUgb3BlcmF0aW9uIHdpbGwgc3VjY2VlZFxuICAgKiBidXQgdGhpcyB2YWx1ZSB3aWxsIGJlIHVuZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrQXJuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVzdHJveVN0YWNrKG9wdGlvbnM6IERlc3Ryb3lTdGFja09wdGlvbnMsIGlvSGVscGVyOiBJb0hlbHBlcik6IFByb21pc2U8RGVzdHJveVN0YWNrUmVzdWx0PiB7XG4gIGNvbnN0IGRlcGxveU5hbWUgPSBvcHRpb25zLmRlcGxveU5hbWUgfHwgb3B0aW9ucy5zdGFjay5zdGFja05hbWU7XG4gIGNvbnN0IGNmbiA9IG9wdGlvbnMuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG5cbiAgY29uc3QgY3VycmVudFN0YWNrID0gYXdhaXQgQ2xvdWRGb3JtYXRpb25TdGFjay5sb29rdXAoY2ZuLCBkZXBsb3lOYW1lKTtcbiAgaWYgKCFjdXJyZW50U3RhY2suZXhpc3RzKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0IG1vbml0b3IgPSBuZXcgU3RhY2tBY3Rpdml0eU1vbml0b3Ioe1xuICAgIGNmbixcbiAgICBzdGFjazogb3B0aW9ucy5zdGFjayxcbiAgICBzdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgaW9IZWxwZXI6IGlvSGVscGVyLFxuICB9KTtcbiAgYXdhaXQgbW9uaXRvci5zdGFydCgpO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgY2ZuLmRlbGV0ZVN0YWNrKHsgU3RhY2tOYW1lOiBkZXBsb3lOYW1lLCBSb2xlQVJOOiBvcHRpb25zLnJvbGVBcm4gfSk7XG4gICAgY29uc3QgZGVzdHJveWVkU3RhY2sgPSBhd2FpdCB3YWl0Rm9yU3RhY2tEZWxldGUoY2ZuLCBpb0hlbHBlciwgZGVwbG95TmFtZSk7XG4gICAgaWYgKGRlc3Ryb3llZFN0YWNrICYmIGRlc3Ryb3llZFN0YWNrLnN0YWNrU3RhdHVzLm5hbWUgIT09ICdERUxFVEVfQ09NUExFVEUnKSB7XG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKGBGYWlsZWQgdG8gZGVzdHJveSAke2RlcGxveU5hbWV9OiAke2Rlc3Ryb3llZFN0YWNrLnN0YWNrU3RhdHVzfWAsICdTdGFja0Rlc3Ryb3lGYWlsZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGFja0FybjogY3VycmVudFN0YWNrLnN0YWNrSWQgfTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgdGhyb3cgbmV3IERlcGxveW1lbnRFcnJvcihzdWZmaXhXaXRoRXJyb3JzKGZvcm1hdEVycm9yTWVzc2FnZShlKSwgbW9uaXRvci5hbGxFcnJvck1lc3NhZ2VzKSwgbW9uaXRvci5yb290Q2F1c2VFcnJvckNvZGUgPz8gJ1N0YWNrRGVzdHJveUZhaWxlZCcpO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChtb25pdG9yKSB7XG4gICAgICBhd2FpdCBtb25pdG9yLnN0b3AoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB3ZSBjYW4gc2tpcCBkZXBsb3ltZW50XG4gKlxuICogV2UgZG8gdGhpcyBpbiBhIGNvbXBsaWNhdGVkIHdheSBieSBwcmVwcm9jZXNzaW5nIChpbnN0ZWFkIG9mIGp1c3RcbiAqIGxvb2tpbmcgYXQgdGhlIGNoYW5nZXNldCksIGJlY2F1c2UgaWYgdGhlcmUgYXJlIG5lc3RlZCBzdGFja3MgaW52b2x2ZWRcbiAqIHRoZSBjaGFuZ2VzZXQgd2lsbCBhbHdheXMgc2hvdyB0aGUgbmVzdGVkIHN0YWNrcyBhcyBuZWVkaW5nIHRvIGJlXG4gKiB1cGRhdGVkLCBhbmQgdGhlIGRlcGxveW1lbnQgd2lsbCB0YWtlIGEgbG9uZyB0aW1lIHRvIGluIGVmZmVjdCBub3RcbiAqIGRvIGFueXRoaW5nLlxuICovXG5hc3luYyBmdW5jdGlvbiBjYW5Ta2lwRGVwbG95KFxuICBkZXBsb3lTdGFja09wdGlvbnM6IERlcGxveVN0YWNrT3B0aW9ucyxcbiAgY2xvdWRGb3JtYXRpb25TdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjayxcbiAgcGFyYW1ldGVyQ2hhbmdlczogUGFyYW1ldGVyQ2hhbmdlcyxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGRlcGxveU5hbWUgPSBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95TmFtZSB8fCBkZXBsb3lTdGFja09wdGlvbnMuc3RhY2suc3RhY2tOYW1lO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogY2hlY2tpbmcgaWYgd2UgY2FuIHNraXAgZGVwbG95YCk7XG5cbiAgLy8gRm9yY2VkIGRlcGxveVxuICBpZiAoZGVwbG95U3RhY2tPcHRpb25zLmZvcmNlRGVwbG95bWVudCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBmb3JjZWQgZGVwbG95bWVudGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENyZWF0aW5nIGNoYW5nZXNldCBvbmx5IChkZWZhdWx0IHRydWUpLCBuZXZlciBza2lwXG4gIGlmIChcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZD8ubWV0aG9kID09PSAnY2hhbmdlLXNldCcgJiZcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZC5leGVjdXRlID09PSBmYWxzZVxuICApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogLS1uby1leGVjdXRlLCBhbHdheXMgY3JlYXRpbmcgY2hhbmdlIHNldGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEV4ZWN1dGluZyBhbiBleGlzdGluZyBjaGFuZ2Ugc2V0LCBuZXZlciBza2lwXG4gIGlmIChkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZD8ubWV0aG9kID09PSAnZXhlY3V0ZS1jaGFuZ2Utc2V0Jykge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBleGVjdXRpbmcgZXhpc3RpbmcgY2hhbmdlIHNldCwgbmV2ZXIgc2tpcGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIERyaWZ0LWF3YXJlXG4gIGlmIChcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZD8ubWV0aG9kID09PSAnY2hhbmdlLXNldCcgJiZcbiAgICBkZXBsb3lTdGFja09wdGlvbnMuZGVwbG95bWVudE1ldGhvZC5yZXZlcnREcmlmdFxuICApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogLS1yZXZlcnQtZHJpZnQsIGFsd2F5cyBjcmVhdGluZyBjaGFuZ2Ugc2V0YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gTm8gZXhpc3Rpbmcgc3RhY2tcbiAgaWYgKCFjbG91ZEZvcm1hdGlvblN0YWNrLmV4aXN0cykge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBubyBleGlzdGluZyBzdGFja2ApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFRlbXBsYXRlIGhhcyBjaGFuZ2VkIChhc3NldHMgdGFrZW4gaW50byBhY2NvdW50IGhlcmUpXG4gIGlmIChKU09OLnN0cmluZ2lmeShkZXBsb3lTdGFja09wdGlvbnMuc3RhY2sudGVtcGxhdGUpICE9PSBKU09OLnN0cmluZ2lmeShhd2FpdCBjbG91ZEZvcm1hdGlvblN0YWNrLnRlbXBsYXRlKCkpKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IHRlbXBsYXRlIGhhcyBjaGFuZ2VkYCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gVGFncyBoYXZlIGNoYW5nZWRcbiAgaWYgKCFjb21wYXJlVGFncyhjbG91ZEZvcm1hdGlvblN0YWNrLnRhZ3MsIGRlcGxveVN0YWNrT3B0aW9ucy50YWdzID8/IFtdKSkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiB0YWdzIGhhdmUgY2hhbmdlZGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIE5vdGlmaWNhdGlvbiBhcm5zIGhhdmUgY2hhbmdlZFxuICBpZiAoIWFycmF5RXF1YWxzKGNsb3VkRm9ybWF0aW9uU3RhY2subm90aWZpY2F0aW9uQXJucywgZGVwbG95U3RhY2tPcHRpb25zLm5vdGlmaWNhdGlvbkFybnMgPz8gW10pKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IG5vdGlmaWNhdGlvbiBhcm5zIGhhdmUgY2hhbmdlZGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaGFzIGJlZW4gdXBkYXRlZFxuICBpZiAoISFkZXBsb3lTdGFja09wdGlvbnMuc3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uICE9PSAhIWNsb3VkRm9ybWF0aW9uU3RhY2sudGVybWluYXRpb25Qcm90ZWN0aW9uKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7ZGVwbG95TmFtZX06IHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaGFzIGJlZW4gdXBkYXRlZGApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFBhcmFtZXRlcnMgaGF2ZSBjaGFuZ2VkXG4gIGlmIChwYXJhbWV0ZXJDaGFuZ2VzKSB7XG4gICAgaWYgKHBhcmFtZXRlckNoYW5nZXMgPT09ICdzc20nKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogc29tZSBwYXJhbWV0ZXJzIGNvbWUgZnJvbSBTU00gc28gd2UgaGF2ZSB0byBhc3N1bWUgdGhleSBtYXkgaGF2ZSBjaGFuZ2VkYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke2RlcGxveU5hbWV9OiBwYXJhbWV0ZXJzIGhhdmUgY2hhbmdlZGApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBFeGlzdGluZyBzdGFjayBpcyBpbiBhIGZhaWxlZCBzdGF0ZVxuICBpZiAoY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5pc0ZhaWx1cmUpIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtkZXBsb3lOYW1lfTogc3RhY2sgaXMgaW4gYSBmYWlsdXJlIHN0YXRlYCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gV2UgY2FuIHNraXAgZGVwbG95XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENvbXBhcmVzIHR3byBsaXN0IG9mIHRhZ3MsIHJldHVybnMgdHJ1ZSBpZiBpZGVudGljYWwuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVUYWdzKGE6IFRhZ1tdLCBiOiBUYWdbXSk6IGJvb2xlYW4ge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChjb25zdCBhVGFnIG9mIGEpIHtcbiAgICBjb25zdCBiVGFnID0gYi5maW5kKCh0YWcpID0+IHRhZy5LZXkgPT09IGFUYWcuS2V5KTtcblxuICAgIGlmICghYlRhZyB8fCBiVGFnLlZhbHVlICE9PSBhVGFnLlZhbHVlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHN1ZmZpeFdpdGhFcnJvcnMobXNnOiBzdHJpbmcsIGVycm9ycz86IHN0cmluZ1tdKSB7XG4gIHJldHVybiBlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCA+IDAgPyBgJHttc2d9OiAke2Vycm9ycy5qb2luKCcsICcpfWAgOiBtc2c7XG59XG5cbmZ1bmN0aW9uIGFycmF5RXF1YWxzKGE6IGFueVtdLCBiOiBhbnlbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5ldmVyeSgoaXRlbSkgPT4gYi5pbmNsdWRlcyhpdGVtKSkgJiYgYi5ldmVyeSgoaXRlbSkgPT4gYS5pbmNsdWRlcyhpdGVtKSk7XG59XG5cbmZ1bmN0aW9uIGhhc1JlcGxhY2VtZW50KGNzOiBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQpIHtcbiAgcmV0dXJuIChjcy5DaGFuZ2VzID8/IFtdKS5zb21lKGMgPT4ge1xuICAgIGNvbnN0IGEgPSBjLlJlc291cmNlQ2hhbmdlPy5Qb2xpY3lBY3Rpb247XG4gICAgcmV0dXJuIGEgPT09ICdSZXBsYWNlQW5kRGVsZXRlJyB8fCBhID09PSAnUmVwbGFjZUFuZFJldGFpbicgfHwgYSA9PT0gJ1JlcGxhY2VBbmRTbmFwc2hvdCc7XG4gIH0pO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertIsSuccessfulDeployStackResult = assertIsSuccessfulDeployStackResult;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nfunction assertIsSuccessfulDeployStackResult(x) {\n if (x.type !== 'did-deploy-stack') {\n throw new toolkit_error_1.ToolkitError('UnexpectedDeployResult', `Unexpected deployStack result. This should not happen: ${JSON.stringify(x)}. If you are seeing this error, please report it at https://github.com/aws/aws-cdk/issues/new/choose.`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC1yZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ltZW50LXJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1DQSxrRkFJQztBQXRDRCwrREFBMkQ7QUFrQzNELFNBQWdCLG1DQUFtQyxDQUFDLENBQW9CO0lBQ3RFLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHdCQUF3QixFQUFFLDBEQUEwRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx1R0FBdUcsQ0FBQyxDQUFDO0lBQ3ZPLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IHR5cGUgRGVwbG95U3RhY2tSZXN1bHQgPVxuICB8IFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdFxuICB8IE5lZWRSb2xsYmFja0ZpcnN0RGVwbG95U3RhY2tSZXN1bHRcbiAgfCBSZXBsYWNlbWVudFJlcXVpcmVzUm9sbGJhY2tTdGFja1Jlc3VsdFxuICA7XG5cbi8qKiBTdWNjZXNzZnVsbHkgZGVwbG95ZWQgYSBzdGFjayAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQge1xuICByZWFkb25seSB0eXBlOiAnZGlkLWRlcGxveS1zdGFjayc7XG4gIHJlYWRvbmx5IG5vT3A6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG91dHB1dHM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBzdGFja0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIHNldCB0aGF0IHdhcyBjcmVhdGVkIGR1cmluZyBkZXBsb3ltZW50LCBpZiBhbnkuXG4gICAqIFBvcHVsYXRlZCB3aGVuIHVzaW5nIGBjaGFuZ2Utc2V0YCBkZXBsb3ltZW50IG1ldGhvZCB3aXRoIGBleGVjdXRlOiBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VTZXQ/OiBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQ7XG59XG5cbi8qKiBUaGUgc3RhY2sgaXMgY3VycmVudGx5IGluIGEgZmFpbHBhdXNlZCBzdGF0ZSwgYW5kIG5lZWRzIHRvIGJlIHJvbGxlZCBiYWNrIGJlZm9yZSB0aGUgZGVwbG95bWVudCAqL1xuZXhwb3J0IGludGVyZmFjZSBOZWVkUm9sbGJhY2tGaXJzdERlcGxveVN0YWNrUmVzdWx0IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2ZhaWxwYXVzZWQtbmVlZC1yb2xsYmFjay1maXJzdCc7XG4gIHJlYWRvbmx5IHJlYXNvbjogJ25vdC1ub3JvbGxiYWNrJyB8ICdyZXBsYWNlbWVudCc7XG4gIHJlYWRvbmx5IHN0YXR1czogc3RyaW5nO1xufVxuXG4vKiogVGhlIHVwY29taW5nIGNoYW5nZSBoYXMgYSByZXBsYWNlbWVudCwgd2hpY2ggcmVxdWlyZXMgZGVwbG95aW5nIHdpdGggLS1yb2xsYmFjayAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlbWVudFJlcXVpcmVzUm9sbGJhY2tTdGFja1Jlc3VsdCB7XG4gIHJlYWRvbmx5IHR5cGU6ICdyZXBsYWNlbWVudC1yZXF1aXJlcy1yb2xsYmFjayc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJc1N1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCh4OiBEZXBsb3lTdGFja1Jlc3VsdCk6IGFzc2VydHMgeCBpcyBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQge1xuICBpZiAoeC50eXBlICE9PSAnZGlkLWRlcGxveS1zdGFjaycpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdVbmV4cGVjdGVkRGVwbG95UmVzdWx0JywgYFVuZXhwZWN0ZWQgZGVwbG95U3RhY2sgcmVzdWx0LiBUaGlzIHNob3VsZCBub3QgaGFwcGVuOiAke0pTT04uc3RyaW5naWZ5KHgpfS4gSWYgeW91IGFyZSBzZWVpbmcgdGhpcyBlcnJvciwgcGxlYXNlIHJlcG9ydCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzL25ldy9jaG9vc2UuYCk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deployments = void 0;\nconst crypto_1 = require(\"crypto\");\nconst cdk_assets = require(\"@aws-cdk/cdk-assets-lib\");\nconst chalk = require(\"chalk\");\nconst asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nconst asset_publishing_1 = require(\"./asset-publishing\");\nconst cfn_api_1 = require(\"./cfn-api\");\nconst checks_1 = require(\"./checks\");\nconst deploy_stack_1 = require(\"./deploy-stack\");\nconst deployment_method_1 = require(\"../../actions/deploy/private/deployment-method\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst environment_1 = require(\"../environment\");\nconst stack_events_1 = require(\"../stack-events\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\nconst BOOTSTRAP_STACK_VERSION_FOR_ROLLBACK = 23;\n/**\n * Scope for a single set of deployments from a set of Cloud Assembly Artifacts\n *\n * Manages lookup of SDKs, Bootstrap stacks, etc.\n */\nclass Deployments {\n props;\n envs;\n /**\n * SDK provider for asset publishing (do not use for anything else).\n *\n * This SDK provider is only allowed to be used for that purpose, nothing else.\n *\n * It's not a different object, but the field name should imply that this\n * object should not be used directly, except to pass to asset handling routines.\n */\n assetSdkProvider;\n /**\n * SDK provider for passing to deployStack\n *\n * This SDK provider is only allowed to be used for that purpose, nothing else.\n *\n * It's not a different object, but the field name should imply that this\n * object should not be used directly, except to pass to `deployStack`.\n */\n deployStackSdkProvider;\n publisherCache = new Map();\n _allowCrossAccountAssetPublishing;\n ioHelper;\n constructor(props) {\n this.props = props;\n this.assetSdkProvider = props.sdkProvider;\n this.deployStackSdkProvider = props.sdkProvider;\n this.ioHelper = props.ioHelper;\n this.envs = new environment_1.EnvironmentAccess(props.sdkProvider, props.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME, this.ioHelper);\n }\n /**\n * Resolves the environment for a stack.\n */\n async resolveEnvironment(stack) {\n return this.envs.resolveStackEnvironment(stack);\n }\n async readCurrentTemplateWithNestedStacks(rootStackArtifact, retrieveProcessedTemplate = false) {\n const env = await this.envs.accessStackForLookupBestEffort(rootStackArtifact);\n return (0, cloudformation_1.loadCurrentTemplateWithNestedStacks)(rootStackArtifact, env.sdk, retrieveProcessedTemplate);\n }\n async readCurrentTemplate(stackArtifact) {\n await this.ioHelper.defaults.debug(`Reading existing template for stack ${stackArtifact.displayName}.`);\n const env = await this.envs.accessStackForLookupBestEffort(stackArtifact);\n return (0, cloudformation_1.loadCurrentTemplate)(stackArtifact, env.sdk);\n }\n async resourceIdentifierSummaries(stackArtifact) {\n await this.ioHelper.defaults.debug(`Retrieving template summary for stack ${stackArtifact.displayName}.`);\n // Currently, needs to use `deploy-role` since it may need to read templates in the staging\n // bucket which have been encrypted with a KMS key (and lookup-role may not read encrypted things)\n const env = await this.envs.accessStackForReadOnlyStackOperations(stackArtifact);\n const cfn = env.sdk.cloudFormation();\n await (0, cfn_api_1.uploadStackTemplateAssets)(stackArtifact, this);\n // Upload the template, if necessary, before passing it to CFN\n const builder = new asset_manifest_builder_1.AssetManifestBuilder();\n const cfnParam = await (0, cloudformation_1.makeBodyParameter)(this.ioHelper, stackArtifact, env.resolvedEnvironment, builder, env.resources);\n // If the `makeBodyParameter` before this added assets, make sure to publish them before\n // calling the API.\n const addedAssets = builder.toManifest(stackArtifact.assembly.directory);\n for (const entry of addedAssets.entries) {\n await this.buildSingleAsset('no-version-validation', addedAssets, entry, {\n stack: stackArtifact,\n });\n await this.publishSingleAsset(addedAssets, entry, {\n stack: stackArtifact,\n });\n }\n const response = await cfn.getTemplateSummary(cfnParam);\n if (!response.ResourceIdentifierSummaries) {\n await this.ioHelper.defaults.debug('GetTemplateSummary API call did not return \"ResourceIdentifierSummaries\"');\n }\n return response.ResourceIdentifierSummaries ?? [];\n }\n async deployStack(options) {\n const env = await this.envs.accessStackForMutableStackOperations(options.stack);\n // Do a verification of the bootstrap stack version\n await this.validateBootstrapStackVersion(options.stack.stackName, options.stack.requiresBootstrapStackVersion, options.stack.bootstrapStackVersionSsmParameter, env.resources);\n const executionRoleArn = await env.replacePlaceholders(options.roleArn ?? options.stack.cloudFormationExecutionRoleArn);\n return (0, deploy_stack_1.deployStack)({\n stack: options.stack,\n resolvedEnvironment: env.resolvedEnvironment,\n deployName: options.deployName,\n notificationArns: options.notificationArns,\n sdk: env.sdk,\n sdkProvider: this.deployStackSdkProvider,\n roleArn: executionRoleArn,\n reuseAssets: options.reuseAssets,\n envResources: env.resources,\n tags: options.tags,\n deploymentMethod: options.deploymentMethod,\n forceDeployment: options.forceDeployment,\n parameters: options.parameters,\n usePreviousParameters: options.usePreviousParameters,\n rollback: options.rollback,\n extraUserAgent: options.extraUserAgent,\n resourcesToImport: options.resourcesToImport,\n overrideTemplate: options.overrideTemplate,\n assetParallelism: options.assetParallelism,\n }, this.ioHelper);\n }\n /**\n * Create a change set for a stack without executing it.\n *\n * Returns the result if the change set was successfully created, or undefined\n * if the prepare returned a non-success result (e.g. rollback needed).\n */\n async prepareStack(options) {\n const result = await this.deployStack({\n ...options,\n deploymentMethod: { ...options.deploymentMethod, execute: false },\n });\n // With execute: false, the only possible result type is did-deploy-stack\n // (either noOp for empty change sets, or with a changeSet description).\n // Rollback/replacement checks are only reached when executing.\n if (result.type !== 'did-deploy-stack') {\n return undefined;\n }\n // Clean up empty change sets if requested (i.e. when the caller forced\n // execute: false internally, not when the user explicitly asked for --no-execute).\n if (result.noOp && options.cleanupOnNoOp) {\n const changeSetName = options.deploymentMethod.changeSetName ?? deployment_method_1.DEFAULT_DEPLOY_CHANGE_SET_NAME;\n await this.cleanupChangeSet(options.stack, changeSetName);\n }\n return result;\n }\n /**\n * Clean up a change set that was created by prepareStack but never executed.\n * If the stack was created in REVIEW_IN_PROGRESS state (new stack), delete the stack too.\n */\n async cleanupChangeSet(stack, changeSetName) {\n const env = await this.envs.accessStackForMutableStackOperations(stack);\n const cfn = env.sdk.cloudFormation();\n const deployName = stack.stackName;\n const cloudFormationStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n if (!cloudFormationStack.exists) {\n return;\n }\n await cfn.deleteChangeSet({ StackName: deployName, ChangeSetName: changeSetName });\n // If the stack was newly created for this change set, it will be in REVIEW_IN_PROGRESS.\n // Delete it and wait for the deletion to complete so we don't leave an empty stack behind.\n if (cloudFormationStack.stackStatus.name === 'REVIEW_IN_PROGRESS') {\n await cfn.deleteStack({ StackName: deployName });\n await (0, cfn_api_1.waitForStackDelete)(cfn, this.ioHelper, deployName);\n }\n }\n async rollbackStack(options) {\n let resourcesToSkip = options.orphanLogicalIds ?? [];\n if (options.orphanFailedResources && resourcesToSkip.length > 0) {\n throw new toolkit_error_1.ToolkitError('ConflictingRollbackOptions', 'Cannot combine --force with --orphan');\n }\n const env = await this.envs.accessStackForMutableStackOperations(options.stack);\n if (options.validateBootstrapStackVersion ?? true) {\n // Do a verification of the bootstrap stack version\n await this.validateBootstrapStackVersion(options.stack.stackName, BOOTSTRAP_STACK_VERSION_FOR_ROLLBACK, options.stack.bootstrapStackVersionSsmParameter, env.resources);\n }\n const cfn = env.sdk.cloudFormation();\n const deployName = options.stack.stackName;\n // We loop in case of `--force` and the stack ends up in `CONTINUE_UPDATE_ROLLBACK`.\n let maxLoops = 10;\n while (maxLoops--) {\n const cloudFormationStack = await cloudformation_1.CloudFormationStack.lookup(cfn, deployName);\n const stackArn = cloudFormationStack.stackId;\n const executionRoleArn = await env.replacePlaceholders(options.roleArn ?? options.stack.cloudFormationExecutionRoleArn);\n switch (cloudFormationStack.stackStatus.rollbackChoice) {\n case stack_events_1.RollbackChoice.NONE:\n await this.ioHelper.defaults.warn(`Stack ${deployName} does not need a rollback: ${cloudFormationStack.stackStatus}`);\n return { stackArn: cloudFormationStack.stackId, notInRollbackableState: true };\n case stack_events_1.RollbackChoice.START_ROLLBACK:\n await this.ioHelper.defaults.debug(`Initiating rollback of stack ${deployName}`);\n await cfn.rollbackStack({\n StackName: deployName,\n RoleARN: executionRoleArn,\n ClientRequestToken: (0, crypto_1.randomUUID)(),\n // Enabling this is just the better overall default, the only reason it isn't the upstream default is backwards compatibility\n RetainExceptOnCreate: true,\n });\n break;\n case stack_events_1.RollbackChoice.CONTINUE_UPDATE_ROLLBACK:\n if (options.orphanFailedResources) {\n // Find the failed resources from the deployment and automatically skip them\n // (Using deployment log because we definitely have `DescribeStackEvents` permissions, and we might not have\n // `DescribeStackResources` permissions).\n const poller = new stack_events_1.StackEventPoller(cfn, {\n stackName: deployName,\n stackStatuses: ['ROLLBACK_IN_PROGRESS', 'UPDATE_ROLLBACK_IN_PROGRESS'],\n });\n await poller.poll();\n resourcesToSkip = poller.resourceErrors\n .filter((r) => !r.isStackEvent && r.parentStackLogicalIds.length === 0)\n .map((r) => r.event.LogicalResourceId ?? '');\n }\n const skipDescription = resourcesToSkip.length > 0 ? ` (orphaning: ${resourcesToSkip.join(', ')})` : '';\n await this.ioHelper.defaults.warn(`Continuing rollback of stack ${deployName}${skipDescription}`);\n await cfn.continueUpdateRollback({\n StackName: deployName,\n ClientRequestToken: (0, crypto_1.randomUUID)(),\n RoleARN: executionRoleArn,\n ResourcesToSkip: resourcesToSkip,\n });\n break;\n case stack_events_1.RollbackChoice.ROLLBACK_FAILED:\n await this.ioHelper.defaults.warn(`Stack ${deployName} failed creation and rollback. This state cannot be rolled back. You can recreate this stack by running 'cdk deploy'.`);\n return { stackArn, notInRollbackableState: true };\n default:\n throw new toolkit_error_1.ToolkitError('UnexpectedRollbackChoice', `Unexpected rollback choice: ${cloudFormationStack.stackStatus.rollbackChoice}`);\n }\n const monitor = new stack_events_1.StackActivityMonitor({\n cfn,\n stack: options.stack,\n stackName: deployName,\n ioHelper: this.ioHelper,\n });\n await monitor.start();\n let stackErrorMessage = undefined;\n let finalStackState = cloudFormationStack;\n try {\n const successStack = await (0, cfn_api_1.stabilizeStack)(cfn, this.ioHelper, deployName);\n // This shouldn't really happen, but catch it anyway. You never know.\n if (!successStack) {\n throw new toolkit_error_1.ToolkitError('StackDisappeared', 'Stack deploy failed (the stack disappeared while we were rolling it back)');\n }\n finalStackState = successStack;\n const errors = monitor.allErrorMessages.join(', ');\n if (errors) {\n stackErrorMessage = errors;\n }\n }\n catch (e) {\n stackErrorMessage = suffixWithErrors((0, util_1.formatErrorMessage)(e), monitor.allErrorMessages);\n }\n finally {\n await monitor.stop();\n }\n if (finalStackState.stackStatus.isRollbackSuccess || !stackErrorMessage) {\n return { stackArn, success: true };\n }\n // Either we need to ignore some resources to continue the rollback, or something went wrong\n if (finalStackState.stackStatus.rollbackChoice === stack_events_1.RollbackChoice.CONTINUE_UPDATE_ROLLBACK && options.orphanFailedResources) {\n // Do another loop-de-loop\n continue;\n }\n throw new toolkit_error_1.DeploymentError(`${stackErrorMessage} (fix problem and retry, or orphan these resources using --orphan or --force)`, monitor.rootCauseErrorCode ?? 'RollbackFailed');\n }\n throw new toolkit_error_1.ToolkitError('RollbackStalled', \"Rollback did not finish after a large number of iterations; stopping because it looks like we're not making progress anymore. You can retry if rollback was progressing as expected.\");\n }\n async destroyStack(options) {\n const env = await this.envs.accessStackForMutableStackOperations(options.stack);\n const executionRoleArn = await env.replacePlaceholders(options.roleArn ?? options.stack.cloudFormationExecutionRoleArn);\n return (0, deploy_stack_1.destroyStack)({\n sdk: env.sdk,\n roleArn: executionRoleArn,\n stack: options.stack,\n deployName: options.deployName,\n }, this.ioHelper);\n }\n async stackExists(options) {\n let env;\n if (options.tryLookupRole) {\n env = await this.envs.accessStackForLookupBestEffort(options.stack);\n }\n else {\n env = await this.envs.accessStackForReadOnlyStackOperations(options.stack);\n }\n const stack = await cloudformation_1.CloudFormationStack.lookup(env.sdk.cloudFormation(), options.deployName ?? options.stack.stackName);\n return stack.exists;\n }\n /**\n * Build a single asset from an asset manifest\n *\n * If an assert manifest artifact is given, the bootstrap stack version\n * will be validated according to the constraints in that manifest artifact.\n * If that is not necessary, `'no-version-validation'` can be passed.\n */\n // eslint-disable-next-line @stylistic/max-len\n async buildSingleAsset(assetArtifact, assetManifest, asset, options) {\n if (assetArtifact !== 'no-version-validation') {\n const env = await this.envs.accessStackForReadOnlyStackOperations(options.stack);\n await this.validateBootstrapStackVersion(options.stack.stackName, assetArtifact.requiresBootstrapStackVersion, assetArtifact.bootstrapStackVersionSsmParameter, env.resources);\n }\n const resolvedEnvironment = await this.envs.resolveStackEnvironment(options.stack);\n const publisher = this.cachedPublisher(assetManifest, resolvedEnvironment, options.stackName);\n await publisher.buildEntry(asset);\n if (publisher.hasFailures) {\n throw new toolkit_error_1.ToolkitError('AssetBuildFailed', `Failed to build asset ${asset.displayName(false)}`);\n }\n }\n /**\n * Publish a single asset from an asset manifest\n */\n async publishSingleAsset(assetManifest, asset, options) {\n const stackEnv = await this.envs.resolveStackEnvironment(options.stack);\n // No need to validate anymore, we already did that during build\n const publisher = this.cachedPublisher(assetManifest, stackEnv, options.stackName);\n await publisher.publishEntry(asset, {\n allowCrossAccount: await this.allowCrossAccountAssetPublishingForEnv(options.stack),\n force: options.forcePublish,\n });\n if (publisher.hasFailures) {\n throw toolkit_error_1.ToolkitError.withCause('AssetPublishFailed', `Failed to publish asset ${asset.displayName(true)}`, new AggregateError(publisher.failures.map(f => f.error)));\n }\n }\n async allowCrossAccountAssetPublishingForEnv(stack) {\n if (this._allowCrossAccountAssetPublishing === undefined) {\n const env = await this.envs.accessStackForReadOnlyStackOperations(stack);\n this._allowCrossAccountAssetPublishing = await (0, checks_1.determineAllowCrossAccountAssetPublishing)(env.sdk, this.ioHelper, this.props.toolkitStackName);\n }\n return this._allowCrossAccountAssetPublishing;\n }\n /**\n * Return whether a single asset has been published already\n */\n async isSingleAssetPublished(assetManifest, asset, options) {\n const stackEnv = await this.envs.resolveStackEnvironment(options.stack);\n const publisher = this.cachedPublisher(assetManifest, stackEnv, options.stackName);\n return publisher.isEntryPublished(asset);\n }\n /**\n * Validate that the bootstrap stack has the right version for this stack\n *\n * Call into envResources.validateVersion, but prepend the stack name in case of failure.\n */\n async validateBootstrapStackVersion(stackName, requiresBootstrapStackVersion, bootstrapStackVersionSsmParameter, envResources) {\n try {\n await envResources.validateVersion(requiresBootstrapStackVersion, bootstrapStackVersionSsmParameter);\n }\n catch (e) {\n throw new toolkit_error_1.ToolkitError('BootstrapVersionValidation', `${stackName}: ${(0, util_1.formatErrorMessage)(e)}`);\n }\n }\n cachedPublisher(assetManifest, env, stackName) {\n const existing = this.publisherCache.get(assetManifest);\n if (existing) {\n return existing;\n }\n const prefix = stackName ? `${chalk.bold(stackName)}: ` : '';\n const publisher = new cdk_assets.AssetPublishing(assetManifest, {\n // The AssetPublishing class takes care of role assuming etc, so it's okay to\n // give it a direct `SdkProvider`.\n aws: new asset_publishing_1.PublishingAws(this.assetSdkProvider, env),\n progressListener: new ParallelSafeAssetProgress(prefix, this.ioHelper),\n });\n this.publisherCache.set(assetManifest, publisher);\n return publisher;\n }\n}\nexports.Deployments = Deployments;\n/**\n * Asset progress that doesn't do anything with percentages (currently)\n */\nclass ParallelSafeAssetProgress extends asset_publishing_1.BasePublishProgressListener {\n prefix;\n constructor(prefix, ioHelper) {\n super(ioHelper);\n this.prefix = prefix;\n }\n getMessage(type, event) {\n return `${this.prefix}${type}: ${event.message}`;\n }\n}\nfunction suffixWithErrors(msg, errors) {\n return errors && errors.length > 0 ? `${msg}: ${errors.join(', ')}` : msg;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ltZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsc0RBQXNEO0FBRXRELCtCQUErQjtBQUMvQixxRUFBZ0U7QUFDaEUseURBRzRCO0FBQzVCLHVDQUltQjtBQUNuQixxQ0FBcUU7QUFFckUsaURBQTJEO0FBRzNELHNGQUFnRztBQUVoRywrREFBNEU7QUFDNUUscUNBQWdEO0FBTWhELHNEQUsyQjtBQUMzQixnREFBOEU7QUFHOUUsa0RBQXlGO0FBRXpGLGtEQUE2RDtBQUU3RCxNQUFNLG9DQUFvQyxHQUFHLEVBQUUsQ0FBQztBQXNPaEQ7Ozs7R0FJRztBQUNILE1BQWEsV0FBVztJQTZCTztJQTVCYixJQUFJLENBQW9CO0lBRXhDOzs7Ozs7O09BT0c7SUFDYyxnQkFBZ0IsQ0FBYztJQUUvQzs7Ozs7OztPQU9HO0lBQ2Msc0JBQXNCLENBQWM7SUFFcEMsY0FBYyxHQUFHLElBQUksR0FBRyxFQUF3RCxDQUFDO0lBRTFGLGlDQUFpQyxDQUFzQjtJQUU5QyxRQUFRLENBQVc7SUFFcEMsWUFBNkIsS0FBdUI7UUFBdkIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSwrQkFBaUIsQ0FDL0IsS0FBSyxDQUFDLFdBQVcsRUFDakIsS0FBSyxDQUFDLGdCQUFnQixJQUFJLHlDQUEwQixFQUNwRCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBd0M7UUFDdEUs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LHlCQUEwQixTQUFRLDhDQUEyQjtJQUNoRCxNQUFNLENBQVM7SUFFaEMsWUFBWSxNQUFjLEVBQUUsUUFBa0I7UUFDNUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxVQUFVLENBQUMsSUFBMEIsRUFBRSxLQUFrQztRQUNqRixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQUVELFNBQVMsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLE1BQWlCO0lBQ3RELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBjZGtfYXNzZXRzIGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi9hc3NldC1tYW5pZmVzdC1idWlsZGVyJztcbmltcG9ydCB7XG4gIEJhc2VQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lcixcbiAgUHVibGlzaGluZ0F3cyxcbn0gZnJvbSAnLi9hc3NldC1wdWJsaXNoaW5nJztcbmltcG9ydCB7XG4gIHN0YWJpbGl6ZVN0YWNrLFxuICB1cGxvYWRTdGFja1RlbXBsYXRlQXNzZXRzLFxuICB3YWl0Rm9yU3RhY2tEZWxldGUsXG59IGZyb20gJy4vY2ZuLWFwaSc7XG5pbXBvcnQgeyBkZXRlcm1pbmVBbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZyB9IGZyb20gJy4vY2hlY2tzJztcblxuaW1wb3J0IHsgZGVwbG95U3RhY2ssIGRlc3Ryb3lTdGFjayB9IGZyb20gJy4vZGVwbG95LXN0YWNrJztcbmltcG9ydCB0eXBlIHsgRGVwbG95U3RhY2tSZXN1bHQsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4vZGVwbG95bWVudC1yZXN1bHQnO1xuaW1wb3J0IHR5cGUgeyBDaGFuZ2VTZXREZXBsb3ltZW50LCBEZXBsb3ltZW50TWV0aG9kIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kZXBsb3knO1xuaW1wb3J0IHsgREVGQVVMVF9ERVBMT1lfQ0hBTkdFX1NFVF9OQU1FIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kZXBsb3kvcHJpdmF0ZS9kZXBsb3ltZW50LW1ldGhvZCc7XG5pbXBvcnQgdHlwZSB7IEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kZXBsb3kvcHJpdmF0ZS9kZXBsb3ltZW50LW1ldGhvZCc7XG5pbXBvcnQgeyBEZXBsb3ltZW50RXJyb3IsIFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHtcbiAgVGVtcGxhdGUsXG4gIFJvb3RUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MsXG59IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uU3RhY2ssXG4gIGxvYWRDdXJyZW50VGVtcGxhdGUsXG4gIGxvYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLFxuICBtYWtlQm9keVBhcmFtZXRlcixcbn0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudFJlc291cmNlcywgRW52aXJvbm1lbnRBY2Nlc3MgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlSWRlbnRpZmllclN1bW1hcmllcywgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuLi9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgU3RhY2tBY3Rpdml0eU1vbml0b3IsIFN0YWNrRXZlbnRQb2xsZXIsIFJvbGxiYWNrQ2hvaWNlIH0gZnJvbSAnLi4vc3RhY2stZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vdGFncyc7XG5pbXBvcnQgeyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbmNvbnN0IEJPT1RTVFJBUF9TVEFDS19WRVJTSU9OX0ZPUl9ST0xMQkFDSyA9IDIzO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVN0YWNrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdGFjayB0byBkZXBsb3lcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGlvbiByb2xlIGZvciB0aGUgZGVwbG95bWVudCAocGFzcyB0aHJvdWdoIHRvIENsb3VkRm9ybWF0aW9uKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEN1cnJlbnQgcm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVG9waWMgQVJOcyB0byBzZW5kIGEgbWVzc2FnZSB3aGVuIGRlcGxveW1lbnQgZmluaXNoZXMgKHBhc3MgdGhyb3VnaCB0byBDbG91ZEZvcm1hdGlvbilcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBub3RpZmljYXRpb25zXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIG5hbWUgdW5kZXIgd2hpY2ggc3RhY2sgd2lsbCBiZSBkZXBsb3llZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZSBhcnRpZmFjdCBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBkZXBsb3lOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSB0b29sa2l0IHN0YWNrLCBpZiBub3QgdGhlIGRlZmF1bHQgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAnQ0RLVG9vbGtpdCdcbiAgICovXG4gIHJlYWRvbmx5IHRvb2xraXRTdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXQgSURzIHdoaWNoIHNob3VsZCBOT1QgYmUgYnVpbHQgb3IgdXBsb2FkZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBCdWlsZCBhbGwgYXNzZXRzXG4gICAqL1xuICByZWFkb25seSByZXVzZUFzc2V0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0YWdzIChwYXNzIHRocm91Z2ggdG8gQ2xvdWRGb3JtYXRpb24pXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB0aGUgZGVwbG95bWVudCBtZXRob2QgKGRpcmVjdCBvciB1c2luZyBhIGNoYW5nZSBzZXQpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ2hhbmdlIHNldCB3aXRoIGRlZmF1bHQgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudE1ldGhvZD86IERlcGxveW1lbnRNZXRob2QgfCBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudDtcblxuICAvKipcbiAgICogRm9yY2UgZGVwbG95bWVudCwgZXZlbiBpZiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBvbmUgd2UgYXJlIGFib3V0IHRvIGRlcGxveS5cbiAgICogQGRlZmF1bHQgZmFsc2UgZGVwbG95bWVudCB3aWxsIGJlIHNraXBwZWQgaWYgdGhlIHRlbXBsYXRlIGlzIGlkZW50aWNhbFxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXh0cmEgcGFyYW1ldGVycyBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFVzZSBwcmV2aW91cyB2YWx1ZXMgZm9yIHVuc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAgICpcbiAgICogSWYgbm90IHNldCwgYWxsIHBhcmFtZXRlcnMgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGV2ZXJ5IGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHVzZVByZXZpb3VzUGFyYW1ldGVycz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIGZhaWxlZCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBleHRyYSBzdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlciB3aGVuIHBlcmZvcm1pbmcgQVdTIFNESyBjYWxscy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3RoaW5nIGV4dHJhIGlzIGFwcGVuZGVkIHRvIHRoZSBVc2VyLUFnZW50IGhlYWRlclxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFVc2VyQWdlbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZXhpc3RpbmcgcmVzb3VyY2VzIHRvIGJlIElNUE9SVEVEIGludG8gdGhlIHN0YWNrLCBpbnN0ZWFkIG9mIGJlaW5nIENSRUFURURcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlc1RvSW1wb3J0PzogUmVzb3VyY2VzVG9JbXBvcnQ7XG5cbiAgLyoqXG4gICAqIElmIHByZXNlbnQsIHVzZSB0aGlzIGdpdmVuIHRlbXBsYXRlIGluc3RlYWQgb2YgdGhlIHN0b3JlZCBvbmVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2UgdGhlIHN0b3JlZCB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVUZW1wbGF0ZT86IGFueTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBidWlsZC9wdWJsaXNoIGFzc2V0cyBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIFRvIHJlbWFpbiBiYWNrd2FyZCBjb21wYXRpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRQYXJhbGxlbGlzbT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcGFyZVN0YWNrT3B0aW9ucyBleHRlbmRzIE9taXQ8RGVwbG95U3RhY2tPcHRpb25zLCAnZGVwbG95bWVudE1ldGhvZCc+IHtcbiAgLyoqXG4gICAqIFRoZSBjaGFuZ2Utc2V0IGRlcGxveW1lbnQgbWV0aG9kIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q6IENoYW5nZVNldERlcGxveW1lbnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2xlYW4gdXAgdGhlIGNoYW5nZSBzZXQgaWYgaXQgaGFzIG5vIGNoYW5nZXMuXG4gICAqXG4gICAqIFNldCB0byB0cnVlIHdoZW4gdGhlIGNhbGxlciBmb3JjZWQgZXhlY3V0ZTogZmFsc2UgaW50ZXJuYWxseVxuICAgKiAodHdvLXBoYXNlIGRlcGxveSkuIFNldCB0byBmYWxzZSB3aGVuIHRoZSB1c2VyIGV4cGxpY2l0bHlcbiAgICogYXNrZWQgZm9yIC0tbm8tZXhlY3V0ZSAocHJlcGFyZS1jaGFuZ2Utc2V0KS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNsZWFudXBPbk5vT3A/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGxiYWNrU3RhY2tPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0YWNrIHRvIHJvbGwgYmFja1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogRXhlY3V0aW9uIHJvbGUgZm9yIHRoZSBkZXBsb3ltZW50IChwYXNzIHRocm91Z2ggdG8gQ2xvdWRGb3JtYXRpb24pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VycmVudCByb2xlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSB0b29sa2l0IHN0YWNrLCBpZiBub3QgdGhlIGRlZmF1bHQgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAnQ0RLVG9vbGtpdCdcbiAgICovXG4gIHJlYWRvbmx5IHRvb2xraXRTdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBvcnBoYW4gYWxsIGZhaWxlZCByZXNvdXJjZXMgZHVyaW5nIHRoZSByb2xsYmFja1xuICAgKlxuICAgKiBUaGlzIHdpbGwgZm9yY2UgYSByb2xsYmFjayB0aGF0IG90aGVyd2lzZSB3b3VsZCBoYXZlIGZhaWxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkZhaWxlZFJlc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9ycGhhbiB0aGUgcmVzb3VyY2VzIHdpdGggdGhlIGdpdmVuIGxvZ2ljYWwgSURzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb3JwaGFuaW5nXG4gICAqL1xuICByZWFkb25seSBvcnBoYW5Mb2dpY2FsSWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIHZlcnNpb24gb2YgdGhlIGJvb3RzdHJhcCBzdGFjayBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZUJvb3RzdHJhcFN0YWNrVmVyc2lvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFJvbGxiYWNrU3RhY2tSZXN1bHQgPSB7IHJlYWRvbmx5IHN0YWNrQXJuOiBzdHJpbmcgfSAmIChcbiAgfCB7IHJlYWRvbmx5IG5vdEluUm9sbGJhY2thYmxlU3RhdGU6IHRydWUgfVxuICB8IHsgcmVhZG9ubHkgc3VjY2VzczogdHJ1ZTsgbm90SW5Sb2xsYmFja2FibGVTdGF0ZT86IHVuZGVmaW5lZCB9XG4pO1xuXG5pbnRlcmZhY2UgQXNzZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0YWNrIHdpdGggYXNzZXRzIHRvIGJ1aWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogRXhlY3V0aW9uIHJvbGUgZm9yIHRoZSBidWlsZGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXJyZW50IHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTdGFja0Fzc2V0c09wdGlvbnMgZXh0ZW5kcyBBc3NldE9wdGlvbnMge1xuICAvKipcbiAgICogU3RhY2sgbmFtZSB0aGlzIGFzc2V0IGlzIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUHVibGlzaFN0YWNrQXNzZXRzT3B0aW9ucyBleHRlbmRzIEFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdGFjayBuYW1lIHRoaXMgYXNzZXQgaXMgZm9yXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsd2F5cyBwdWJsaXNoLCBldmVuIGlmIGl0IGFscmVhZHkgZXhpc3RzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZVB1Ymxpc2g/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lTdGFja09wdGlvbnMge1xuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBkZXBsb3lOYW1lPzogc3RyaW5nO1xuICByb2xlQXJuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRXhpc3RzT3B0aW9ucyB7XG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIGRlcGxveU5hbWU/OiBzdHJpbmc7XG4gIHRyeUxvb2t1cFJvbGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRzUHJvcHMge1xuICByZWFkb25seSBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG4gIHJlYWRvbmx5IHRvb2xraXRTdGFja05hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbn1cblxuLyoqXG4gKiBTY29wZSBmb3IgYSBzaW5nbGUgc2V0IG9mIGRlcGxveW1lbnRzIGZyb20gYSBzZXQgb2YgQ2xvdWQgQXNzZW1ibHkgQXJ0aWZhY3RzXG4gKlxuICogTWFuYWdlcyBsb29rdXAgb2YgU0RLcywgQm9vdHN0cmFwIHN0YWNrcywgZXRjLlxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudHMge1xuICBwdWJsaWMgcmVhZG9ubHkgZW52czogRW52aXJvbm1lbnRBY2Nlc3M7XG5cbiAgLyoqXG4gICAqIFNESyBwcm92aWRlciBmb3IgYXNzZXQgcHVibGlzaGluZyAoZG8gbm90IHVzZSBmb3IgYW55dGhpbmcgZWxzZSkuXG4gICAqXG4gICAqIFRoaXMgU0RLIHByb3ZpZGVyIGlzIG9ubHkgYWxsb3dlZCB0byBiZSB1c2VkIGZvciB0aGF0IHB1cnBvc2UsIG5vdGhpbmcgZWxzZS5cbiAgICpcbiAgICogSXQncyBub3QgYSBkaWZmZXJlbnQgb2JqZWN0LCBidXQgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGltcGx5IHRoYXQgdGhpc1xuICAgKiBvYmplY3Qgc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5LCBleGNlcHQgdG8gcGFzcyB0byBhc3NldCBoYW5kbGluZyByb3V0aW5lcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZXRTZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIFNESyBwcm92aWRlciBmb3IgcGFzc2luZyB0byBkZXBsb3lTdGFja1xuICAgKlxuICAgKiBUaGlzIFNESyBwcm92aWRlciBpcyBvbmx5IGFsbG93ZWQgdG8gYmUgdXNlZCBmb3IgdGhhdCBwdXJwb3NlLCBub3RoaW5nIGVsc2UuXG4gICAqXG4gICAqIEl0J3Mgbm90IGEgZGlmZmVyZW50IG9iamVjdCwgYnV0IHRoZSBmaWVsZCBuYW1lIHNob3VsZCBpbXBseSB0aGF0IHRoaXNcbiAgICogb2JqZWN0IHNob3VsZCBub3QgYmUgdXNlZCBkaXJlY3RseSwgZXhjZXB0IHRvIHBhc3MgdG8gYGRlcGxveVN0YWNrYC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95U3RhY2tTZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwdWJsaXNoZXJDYWNoZSA9IG5ldyBNYXA8Y2RrX2Fzc2V0cy5Bc3NldE1hbmlmZXN0LCBjZGtfYXNzZXRzLkFzc2V0UHVibGlzaGluZz4oKTtcblxuICBwcml2YXRlIF9hbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBEZXBsb3ltZW50c1Byb3BzKSB7XG4gICAgdGhpcy5hc3NldFNka1Byb3ZpZGVyID0gcHJvcHMuc2RrUHJvdmlkZXI7XG4gICAgdGhpcy5kZXBsb3lTdGFja1Nka1Byb3ZpZGVyID0gcHJvcHMuc2RrUHJvdmlkZXI7XG4gICAgdGhpcy5pb0hlbHBlciA9IHByb3BzLmlvSGVscGVyO1xuICAgIHRoaXMuZW52cyA9IG5ldyBFbnZpcm9ubWVudEFjY2VzcyhcbiAgICAgIHByb3BzLnNka1Byb3ZpZGVyLFxuICAgICAgcHJvcHMudG9vbGtpdFN0YWNrTmFtZSA/PyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSxcbiAgICAgIHRoaXMuaW9IZWxwZXIsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgZW52aXJvbm1lbnQgZm9yIGEgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZUVudmlyb25tZW50KHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpOiBQcm9taXNlPGN4YXBpLkVudmlyb25tZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZW52cy5yZXNvbHZlU3RhY2tFbnZpcm9ubWVudChzdGFjayk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MoXG4gICAgcm9vdFN0YWNrQXJ0aWZhY3Q6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgICByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICk6IFByb21pc2U8Um9vdFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcz4ge1xuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0Zvckxvb2t1cEJlc3RFZmZvcnQocm9vdFN0YWNrQXJ0aWZhY3QpO1xuICAgIHJldHVybiBsb2FkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhyb290U3RhY2tBcnRpZmFjdCwgZW52LnNkaywgcmV0cmlldmVQcm9jZXNzZWRUZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVhZEN1cnJlbnRUZW1wbGF0ZShzdGFja0FydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpOiBQcm9taXNlPFRlbXBsYXRlPiB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmVhZGluZyBleGlzdGluZyB0ZW1wbGF0ZSBmb3Igc3RhY2sgJHtzdGFja0FydGlmYWN0LmRpc3BsYXlOYW1lfS5gKTtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JMb29rdXBCZXN0RWZmb3J0KHN0YWNrQXJ0aWZhY3QpO1xuICAgIHJldHVybiBsb2FkQ3VycmVudFRlbXBsYXRlKHN0YWNrQXJ0aWZhY3QsIGVudi5zZGspO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlc291cmNlSWRlbnRpZmllclN1bW1hcmllcyhcbiAgICBzdGFja0FydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gICk6IFByb21pc2U8UmVzb3VyY2VJZGVudGlmaWVyU3VtbWFyaWVzPiB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmV0cmlldmluZyB0ZW1wbGF0ZSBzdW1tYXJ5IGZvciBzdGFjayAke3N0YWNrQXJ0aWZhY3QuZGlzcGxheU5hbWV9LmApO1xuICAgIC8vIEN1cnJlbnRseSwgbmVlZHMgdG8gdXNlIGBkZXBsb3ktcm9sZWAgc2luY2UgaXQgbWF5IG5lZWQgdG8gcmVhZCB0ZW1wbGF0ZXMgaW4gdGhlIHN0YWdpbmdcbiAgICAvLyBidWNrZXQgd2hpY2ggaGF2ZSBiZWVuIGVuY3J5cHRlZCB3aXRoIGEgS01TIGtleSAoYW5kIGxvb2t1cC1yb2xlIG1heSBub3QgcmVhZCBlbmNyeXB0ZWQgdGhpbmdzKVxuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0ZvclJlYWRPbmx5U3RhY2tPcGVyYXRpb25zKHN0YWNrQXJ0aWZhY3QpO1xuICAgIGNvbnN0IGNmbiA9IGVudi5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICAgIGF3YWl0IHVwbG9hZFN0YWNrVGVtcGxhdGVBc3NldHMoc3RhY2tBcnRpZmFjdCwgdGhpcyk7XG5cbiAgICAvLyBVcGxvYWQgdGhlIHRlbXBsYXRlLCBpZiBuZWNlc3NhcnksIGJlZm9yZSBwYXNzaW5nIGl0IHRvIENGTlxuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQXNzZXRNYW5pZmVzdEJ1aWxkZXIoKTtcbiAgICBjb25zdCBjZm5QYXJhbSA9IGF3YWl0IG1ha2VCb2R5UGFyYW1ldGVyKFxuICAgICAgdGhpcy5pb0hlbHBlcixcbiAgICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgICBlbnYucmVzb2x2ZWRFbnZpcm9ubWVudCxcbiAgICAgIGJ1aWxkZXIsXG4gICAgICBlbnYucmVzb3VyY2VzLFxuICAgICk7XG5cbiAgICAvLyBJZiB0aGUgYG1ha2VCb2R5UGFyYW1ldGVyYCBiZWZvcmUgdGhpcyBhZGRlZCBhc3NldHMsIG1ha2Ugc3VyZSB0byBwdWJsaXNoIHRoZW0gYmVmb3JlXG4gICAgLy8gY2FsbGluZyB0aGUgQVBJLlxuICAgIGNvbnN0IGFkZGVkQXNzZXRzID0gYnVpbGRlci50b01hbmlmZXN0KHN0YWNrQXJ0aWZhY3QuYXNzZW1ibHkuZGlyZWN0b3J5KTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGFkZGVkQXNzZXRzLmVudHJpZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuYnVpbGRTaW5nbGVBc3NldCgnbm8tdmVyc2lvbi12YWxpZGF0aW9uJywgYWRkZWRBc3NldHMsIGVudHJ5LCB7XG4gICAgICAgIHN0YWNrOiBzdGFja0FydGlmYWN0LFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLnB1Ymxpc2hTaW5nbGVBc3NldChhZGRlZEFzc2V0cywgZW50cnksIHtcbiAgICAgICAgc3RhY2s6IHN0YWNrQXJ0aWZhY3QsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNmbi5nZXRUZW1wbGF0ZVN1bW1hcnkoY2ZuUGFyYW0pO1xuICAgIGlmICghcmVzcG9uc2UuUmVzb3VyY2VJZGVudGlmaWVyU3VtbWFyaWVzKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKCdHZXRUZW1wbGF0ZVN1bW1hcnkgQVBJIGNhbGwgZGlkIG5vdCByZXR1cm4gXCJSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXNcIicpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2UuUmVzb3VyY2VJZGVudGlmaWVyU3VtbWFyaWVzID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlcGxveVN0YWNrKG9wdGlvbnM6IERlcGxveVN0YWNrT3B0aW9ucyk6IFByb21pc2U8RGVwbG95U3RhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKG9wdGlvbnMuc3RhY2spO1xuXG4gICAgLy8gRG8gYSB2ZXJpZmljYXRpb24gb2YgdGhlIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAgYXdhaXQgdGhpcy52YWxpZGF0ZUJvb3RzdHJhcFN0YWNrVmVyc2lvbihcbiAgICAgIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgb3B0aW9ucy5zdGFjay5yZXF1aXJlc0Jvb3RzdHJhcFN0YWNrVmVyc2lvbixcbiAgICAgIG9wdGlvbnMuc3RhY2suYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyLFxuICAgICAgZW52LnJlc291cmNlcyk7XG5cbiAgICBjb25zdCBleGVjdXRpb25Sb2xlQXJuID0gYXdhaXQgZW52LnJlcGxhY2VQbGFjZWhvbGRlcnMob3B0aW9ucy5yb2xlQXJuID8/IG9wdGlvbnMuc3RhY2suY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlQXJuKTtcblxuICAgIHJldHVybiBkZXBsb3lTdGFjayh7XG4gICAgICBzdGFjazogb3B0aW9ucy5zdGFjayxcbiAgICAgIHJlc29sdmVkRW52aXJvbm1lbnQ6IGVudi5yZXNvbHZlZEVudmlyb25tZW50LFxuICAgICAgZGVwbG95TmFtZTogb3B0aW9ucy5kZXBsb3lOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uQXJuczogb3B0aW9ucy5ub3RpZmljYXRpb25Bcm5zLFxuICAgICAgc2RrOiBlbnYuc2RrLFxuICAgICAgc2RrUHJvdmlkZXI6IHRoaXMuZGVwbG95U3RhY2tTZGtQcm92aWRlcixcbiAgICAgIHJvbGVBcm46IGV4ZWN1dGlvblJvbGVBcm4sXG4gICAgICByZXVzZUFzc2V0czogb3B0aW9ucy5yZXVzZUFzc2V0cyxcbiAgICAgIGVudlJlc291cmNlczogZW52LnJlc291cmNlcyxcbiAgICAgIHRhZ3M6IG9wdGlvbnMudGFncyxcbiAgICAgIGRlcGxveW1lbnRNZXRob2Q6IG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZCxcbiAgICAgIGZvcmNlRGVwbG95bWVudDogb3B0aW9ucy5mb3JjZURlcGxveW1lbnQsXG4gICAgICBwYXJhbWV0ZXJzOiBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICB1c2VQcmV2aW91c1BhcmFtZXRlcnM6IG9wdGlvbnMudXNlUHJldmlvdXNQYXJhbWV0ZXJzLFxuICAgICAgcm9sbGJhY2s6IG9wdGlvbnMucm9sbGJhY2ssXG4gICAgICBleHRyYVVzZXJBZ2VudDogb3B0aW9ucy5leHRyYVVzZXJBZ2VudCxcbiAgICAgIHJlc291cmNlc1RvSW1wb3J0OiBvcHRpb25zLnJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgb3ZlcnJpZGVUZW1wbGF0ZTogb3B0aW9ucy5vdmVycmlkZVRlbXBsYXRlLFxuICAgICAgYXNzZXRQYXJhbGxlbGlzbTogb3B0aW9ucy5hc3NldFBhcmFsbGVsaXNtLFxuICAgIH0sIHRoaXMuaW9IZWxwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNoYW5nZSBzZXQgZm9yIGEgc3RhY2sgd2l0aG91dCBleGVjdXRpbmcgaXQuXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHJlc3VsdCBpZiB0aGUgY2hhbmdlIHNldCB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQsIG9yIHVuZGVmaW5lZFxuICAgKiBpZiB0aGUgcHJlcGFyZSByZXR1cm5lZCBhIG5vbi1zdWNjZXNzIHJlc3VsdCAoZS5nLiByb2xsYmFjayBuZWVkZWQpLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHByZXBhcmVTdGFjayhcbiAgICBvcHRpb25zOiBQcmVwYXJlU3RhY2tPcHRpb25zLFxuICApOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGVwbG95U3RhY2soe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGRlcGxveW1lbnRNZXRob2Q6IHsgLi4ub3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLCBleGVjdXRlOiBmYWxzZSB9LFxuICAgIH0pO1xuXG4gICAgLy8gV2l0aCBleGVjdXRlOiBmYWxzZSwgdGhlIG9ubHkgcG9zc2libGUgcmVzdWx0IHR5cGUgaXMgZGlkLWRlcGxveS1zdGFja1xuICAgIC8vIChlaXRoZXIgbm9PcCBmb3IgZW1wdHkgY2hhbmdlIHNldHMsIG9yIHdpdGggYSBjaGFuZ2VTZXQgZGVzY3JpcHRpb24pLlxuICAgIC8vIFJvbGxiYWNrL3JlcGxhY2VtZW50IGNoZWNrcyBhcmUgb25seSByZWFjaGVkIHdoZW4gZXhlY3V0aW5nLlxuICAgIGlmIChyZXN1bHQudHlwZSAhPT0gJ2RpZC1kZXBsb3ktc3RhY2snKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIENsZWFuIHVwIGVtcHR5IGNoYW5nZSBzZXRzIGlmIHJlcXVlc3RlZCAoaS5lLiB3aGVuIHRoZSBjYWxsZXIgZm9yY2VkXG4gICAgLy8gZXhlY3V0ZTogZmFsc2UgaW50ZXJuYWxseSwgbm90IHdoZW4gdGhlIHVzZXIgZXhwbGljaXRseSBhc2tlZCBmb3IgLS1uby1leGVjdXRlKS5cbiAgICBpZiAocmVzdWx0Lm5vT3AgJiYgb3B0aW9ucy5jbGVhbnVwT25Ob09wKSB7XG4gICAgICBjb25zdCBjaGFuZ2VTZXROYW1lID0gb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLmNoYW5nZVNldE5hbWUgPz8gREVGQVVMVF9ERVBMT1lfQ0hBTkdFX1NFVF9OQU1FO1xuICAgICAgYXdhaXQgdGhpcy5jbGVhbnVwQ2hhbmdlU2V0KG9wdGlvbnMuc3RhY2ssIGNoYW5nZVNldE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gdXAgYSBjaGFuZ2Ugc2V0IHRoYXQgd2FzIGNyZWF0ZWQgYnkgcHJlcGFyZVN0YWNrIGJ1dCBuZXZlciBleGVjdXRlZC5cbiAgICogSWYgdGhlIHN0YWNrIHdhcyBjcmVhdGVkIGluIFJFVklFV19JTl9QUk9HUkVTUyBzdGF0ZSAobmV3IHN0YWNrKSwgZGVsZXRlIHRoZSBzdGFjayB0b28uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xlYW51cENoYW5nZVNldChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBjaGFuZ2VTZXROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKHN0YWNrKTtcbiAgICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG4gICAgY29uc3QgZGVwbG95TmFtZSA9IHN0YWNrLnN0YWNrTmFtZTtcblxuICAgIGNvbnN0IGNsb3VkRm9ybWF0aW9uU3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIGRlcGxveU5hbWUpO1xuICAgIGlmICghY2xvdWRGb3JtYXRpb25TdGFjay5leGlzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBjZm4uZGVsZXRlQ2hhbmdlU2V0KHsgU3RhY2tOYW1lOiBkZXBsb3lOYW1lLCBDaGFuZ2VTZXROYW1lOiBjaGFuZ2VTZXROYW1lIH0pO1xuXG4gICAgLy8gSWYgdGhlIHN0YWNrIHdhcyBuZXdseSBjcmVhdGVkIGZvciB0aGlzIGNoYW5nZSBzZXQsIGl0IHdpbGwgYmUgaW4gUkVWSUVXX0lOX1BST0dSRVNTLlxuICAgIC8vIERlbGV0ZSBpdCBhbmQgd2FpdCBmb3IgdGhlIGRlbGV0aW9uIHRvIGNvbXBsZXRlIHNvIHdlIGRvbid0IGxlYXZlIGFuIGVtcHR5IHN0YWNrIGJlaGluZC5cbiAgICBpZiAoY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1cy5uYW1lID09PSAnUkVWSUVXX0lOX1BST0dSRVNTJykge1xuICAgICAgYXdhaXQgY2ZuLmRlbGV0ZVN0YWNrKHsgU3RhY2tOYW1lOiBkZXBsb3lOYW1lIH0pO1xuICAgICAgYXdhaXQgd2FpdEZvclN0YWNrRGVsZXRlKGNmbiwgdGhpcy5pb0hlbHBlciwgZGVwbG95TmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJvbGxiYWNrU3RhY2sob3B0aW9uczogUm9sbGJhY2tTdGFja09wdGlvbnMpOiBQcm9taXNlPFJvbGxiYWNrU3RhY2tSZXN1bHQ+IHtcbiAgICBsZXQgcmVzb3VyY2VzVG9Ta2lwOiBzdHJpbmdbXSA9IG9wdGlvbnMub3JwaGFuTG9naWNhbElkcyA/PyBbXTtcbiAgICBpZiAob3B0aW9ucy5vcnBoYW5GYWlsZWRSZXNvdXJjZXMgJiYgcmVzb3VyY2VzVG9Ta2lwLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0NvbmZsaWN0aW5nUm9sbGJhY2tPcHRpb25zJywgJ0Nhbm5vdCBjb21iaW5lIC0tZm9yY2Ugd2l0aCAtLW9ycGhhbicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0Zvck11dGFibGVTdGFja09wZXJhdGlvbnMob3B0aW9ucy5zdGFjayk7XG5cbiAgICBpZiAob3B0aW9ucy52YWxpZGF0ZUJvb3RzdHJhcFN0YWNrVmVyc2lvbiA/PyB0cnVlKSB7XG4gICAgICAvLyBEbyBhIHZlcmlmaWNhdGlvbiBvZiB0aGUgYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24oXG4gICAgICAgIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBCT09UU1RSQVBfU1RBQ0tfVkVSU0lPTl9GT1JfUk9MTEJBQ0ssXG4gICAgICAgIG9wdGlvbnMuc3RhY2suYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyLFxuICAgICAgICBlbnYucmVzb3VyY2VzKTtcbiAgICB9XG5cbiAgICBjb25zdCBjZm4gPSBlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCk7XG4gICAgY29uc3QgZGVwbG95TmFtZSA9IG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lO1xuXG4gICAgLy8gV2UgbG9vcCBpbiBjYXNlIG9mIGAtLWZvcmNlYCBhbmQgdGhlIHN0YWNrIGVuZHMgdXAgaW4gYENPTlRJTlVFX1VQREFURV9ST0xMQkFDS2AuXG4gICAgbGV0IG1heExvb3BzID0gMTA7XG4gICAgd2hpbGUgKG1heExvb3BzLS0pIHtcbiAgICAgIGNvbnN0IGNsb3VkRm9ybWF0aW9uU3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sIGRlcGxveU5hbWUpO1xuICAgICAgY29uc3Qgc3RhY2tBcm4gPSBjbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrSWQ7XG5cbiAgICAgIGNvbnN0IGV4ZWN1dGlvblJvbGVBcm4gPSBhd2FpdCBlbnYucmVwbGFjZVBsYWNlaG9sZGVycyhvcHRpb25zLnJvbGVBcm4gPz8gb3B0aW9ucy5zdGFjay5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4pO1xuXG4gICAgICBzd2l0Y2ggKGNsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tTdGF0dXMucm9sbGJhY2tDaG9pY2UpIHtcbiAgICAgICAgY2FzZSBSb2xsYmFja0Nob2ljZS5OT05FOlxuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihgU3RhY2sgJHtkZXBsb3lOYW1lfSBkb2VzIG5vdCBuZWVkIGEgcm9sbGJhY2s6ICR7Y2xvdWRGb3JtYXRpb25TdGFjay5zdGFja1N0YXR1c31gKTtcbiAgICAgICAgICByZXR1cm4geyBzdGFja0FybjogY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja0lkLCBub3RJblJvbGxiYWNrYWJsZVN0YXRlOiB0cnVlIH07XG5cbiAgICAgICAgY2FzZSBSb2xsYmFja0Nob2ljZS5TVEFSVF9ST0xMQkFDSzpcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBJbml0aWF0aW5nIHJvbGxiYWNrIG9mIHN0YWNrICR7ZGVwbG95TmFtZX1gKTtcbiAgICAgICAgICBhd2FpdCBjZm4ucm9sbGJhY2tTdGFjayh7XG4gICAgICAgICAgICBTdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgICAgICAgICBSb2xlQVJOOiBleGVjdXRpb25Sb2xlQXJuLFxuICAgICAgICAgICAgQ2xpZW50UmVxdWVzdFRva2VuOiByYW5kb21VVUlEKCksXG4gICAgICAgICAgICAvLyBFbmFibGluZyB0aGlzIGlzIGp1c3QgdGhlIGJldHRlciBvdmVyYWxsIGRlZmF1bHQsIHRoZSBvbmx5IHJlYXNvbiBpdCBpc24ndCB0aGUgdXBzdHJlYW0gZGVmYXVsdCBpcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgUmV0YWluRXhjZXB0T25DcmVhdGU6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBSb2xsYmFja0Nob2ljZS5DT05USU5VRV9VUERBVEVfUk9MTEJBQ0s6XG4gICAgICAgICAgaWYgKG9wdGlvbnMub3JwaGFuRmFpbGVkUmVzb3VyY2VzKSB7XG4gICAgICAgICAgICAvLyBGaW5kIHRoZSBmYWlsZWQgcmVzb3VyY2VzIGZyb20gdGhlIGRlcGxveW1lbnQgYW5kIGF1dG9tYXRpY2FsbHkgc2tpcCB0aGVtXG4gICAgICAgICAgICAvLyAoVXNpbmcgZGVwbG95bWVudCBsb2cgYmVjYXVzZSB3ZSBkZWZpbml0ZWx5IGhhdmUgYERlc2NyaWJlU3RhY2tFdmVudHNgIHBlcm1pc3Npb25zLCBhbmQgd2UgbWlnaHQgbm90IGhhdmVcbiAgICAgICAgICAgIC8vIGBEZXNjcmliZVN0YWNrUmVzb3VyY2VzYCBwZXJtaXNzaW9ucykuXG4gICAgICAgICAgICBjb25zdCBwb2xsZXIgPSBuZXcgU3RhY2tFdmVudFBvbGxlcihjZm4sIHtcbiAgICAgICAgICAgICAgc3RhY2tOYW1lOiBkZXBsb3lOYW1lLFxuICAgICAgICAgICAgICBzdGFja1N0YXR1c2VzOiBbJ1JPTExCQUNLX0lOX1BST0dSRVNTJywgJ1VQREFURV9ST0xMQkFDS19JTl9QUk9HUkVTUyddLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhd2FpdCBwb2xsZXIucG9sbCgpO1xuICAgICAgICAgICAgcmVzb3VyY2VzVG9Ta2lwID0gcG9sbGVyLnJlc291cmNlRXJyb3JzXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHIpID0+ICFyLmlzU3RhY2tFdmVudCAmJiByLnBhcmVudFN0YWNrTG9naWNhbElkcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICAgIC5tYXAoKHIpID0+IHIuZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHNraXBEZXNjcmlwdGlvbiA9IHJlc291cmNlc1RvU2tpcC5sZW5ndGggPiAwID8gYCAob3JwaGFuaW5nOiAke3Jlc291cmNlc1RvU2tpcC5qb2luKCcsICcpfSlgIDogJyc7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKGBDb250aW51aW5nIHJvbGxiYWNrIG9mIHN0YWNrICR7ZGVwbG95TmFtZX0ke3NraXBEZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgICBhd2FpdCBjZm4uY29udGludWVVcGRhdGVSb2xsYmFjayh7XG4gICAgICAgICAgICBTdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgICAgICAgICBDbGllbnRSZXF1ZXN0VG9rZW46IHJhbmRvbVVVSUQoKSxcbiAgICAgICAgICAgIFJvbGVBUk46IGV4ZWN1dGlvblJvbGVBcm4sXG4gICAgICAgICAgICBSZXNvdXJjZXNUb1NraXA6IHJlc291cmNlc1RvU2tpcCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFJvbGxiYWNrQ2hvaWNlLlJPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgICBgU3RhY2sgJHtkZXBsb3lOYW1lfSBmYWlsZWQgY3JlYXRpb24gYW5kIHJvbGxiYWNrLiBUaGlzIHN0YXRlIGNhbm5vdCBiZSByb2xsZWQgYmFjay4gWW91IGNhbiByZWNyZWF0ZSB0aGlzIHN0YWNrIGJ5IHJ1bm5pbmcgJ2NkayBkZXBsb3knLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4geyBzdGFja0Fybiwgbm90SW5Sb2xsYmFja2FibGVTdGF0ZTogdHJ1ZSB9O1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5leHBlY3RlZFJvbGxiYWNrQ2hvaWNlJywgYFVuZXhwZWN0ZWQgcm9sbGJhY2sgY2hvaWNlOiAke2Nsb3VkRm9ybWF0aW9uU3RhY2suc3RhY2tTdGF0dXMucm9sbGJhY2tDaG9pY2V9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1vbml0b3IgPSBuZXcgU3RhY2tBY3Rpdml0eU1vbml0b3Ioe1xuICAgICAgICBjZm4sXG4gICAgICAgIHN0YWNrOiBvcHRpb25zLnN0YWNrLFxuICAgICAgICBzdGFja05hbWU6IGRlcGxveU5hbWUsXG4gICAgICAgIGlvSGVscGVyOiB0aGlzLmlvSGVscGVyLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBtb25pdG9yLnN0YXJ0KCk7XG5cbiAgICAgIGxldCBzdGFja0Vycm9yTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IGZpbmFsU3RhY2tTdGF0ZSA9IGNsb3VkRm9ybWF0aW9uU3RhY2s7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzdWNjZXNzU3RhY2sgPSBhd2FpdCBzdGFiaWxpemVTdGFjayhjZm4sIHRoaXMuaW9IZWxwZXIsIGRlcGxveU5hbWUpO1xuXG4gICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IHJlYWxseSBoYXBwZW4sIGJ1dCBjYXRjaCBpdCBhbnl3YXkuIFlvdSBuZXZlciBrbm93LlxuICAgICAgICBpZiAoIXN1Y2Nlc3NTdGFjaykge1xuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrRGlzYXBwZWFyZWQnLCAnU3RhY2sgZGVwbG95IGZhaWxlZCAodGhlIHN0YWNrIGRpc2FwcGVhcmVkIHdoaWxlIHdlIHdlcmUgcm9sbGluZyBpdCBiYWNrKScpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsU3RhY2tTdGF0ZSA9IHN1Y2Nlc3NTdGFjaztcblxuICAgICAgICBjb25zdCBlcnJvcnMgPSBtb25pdG9yLmFsbEVycm9yTWVzc2FnZXMuam9pbignLCAnKTtcbiAgICAgICAgaWYgKGVycm9ycykge1xuICAgICAgICAgIHN0YWNrRXJyb3JNZXNzYWdlID0gZXJyb3JzO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgc3RhY2tFcnJvck1lc3NhZ2UgPSBzdWZmaXhXaXRoRXJyb3JzKGZvcm1hdEVycm9yTWVzc2FnZShlKSwgbW9uaXRvci5hbGxFcnJvck1lc3NhZ2VzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGF3YWl0IG1vbml0b3Iuc3RvcCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmluYWxTdGFja1N0YXRlLnN0YWNrU3RhdHVzLmlzUm9sbGJhY2tTdWNjZXNzIHx8ICFzdGFja0Vycm9yTWVzc2FnZSkge1xuICAgICAgICByZXR1cm4geyBzdGFja0Fybiwgc3VjY2VzczogdHJ1ZSB9O1xuICAgICAgfVxuXG4gICAgICAvLyBFaXRoZXIgd2UgbmVlZCB0byBpZ25vcmUgc29tZSByZXNvdXJjZXMgdG8gY29udGludWUgdGhlIHJvbGxiYWNrLCBvciBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgaWYgKGZpbmFsU3RhY2tTdGF0ZS5zdGFja1N0YXR1cy5yb2xsYmFja0Nob2ljZSA9PT0gUm9sbGJhY2tDaG9pY2UuQ09OVElOVUVfVVBEQVRFX1JPTExCQUNLICYmIG9wdGlvbnMub3JwaGFuRmFpbGVkUmVzb3VyY2VzKSB7XG4gICAgICAgIC8vIERvIGFub3RoZXIgbG9vcC1kZS1sb29wXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRGVwbG95bWVudEVycm9yKFxuICAgICAgICBgJHtzdGFja0Vycm9yTWVzc2FnZX0gKGZpeCBwcm9ibGVtIGFuZCByZXRyeSwgb3Igb3JwaGFuIHRoZXNlIHJlc291cmNlcyB1c2luZyAtLW9ycGhhbiBvciAtLWZvcmNlKWAsXG4gICAgICAgIG1vbml0b3Iucm9vdENhdXNlRXJyb3JDb2RlID8/ICdSb2xsYmFja0ZhaWxlZCcsXG4gICAgICApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgJ1JvbGxiYWNrU3RhbGxlZCcsXG4gICAgICBcIlJvbGxiYWNrIGRpZCBub3QgZmluaXNoIGFmdGVyIGEgbGFyZ2UgbnVtYmVyIG9mIGl0ZXJhdGlvbnM7IHN0b3BwaW5nIGJlY2F1c2UgaXQgbG9va3MgbGlrZSB3ZSdyZSBub3QgbWFraW5nIHByb2dyZXNzIGFueW1vcmUuIFlvdSBjYW4gcmV0cnkgaWYgcm9sbGJhY2sgd2FzIHByb2dyZXNzaW5nIGFzIGV4cGVjdGVkLlwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVzdHJveVN0YWNrKG9wdGlvbnM6IERlc3Ryb3lTdGFja09wdGlvbnMpIHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JNdXRhYmxlU3RhY2tPcGVyYXRpb25zKG9wdGlvbnMuc3RhY2spO1xuICAgIGNvbnN0IGV4ZWN1dGlvblJvbGVBcm4gPSBhd2FpdCBlbnYucmVwbGFjZVBsYWNlaG9sZGVycyhvcHRpb25zLnJvbGVBcm4gPz8gb3B0aW9ucy5zdGFjay5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4pO1xuXG4gICAgcmV0dXJuIGRlc3Ryb3lTdGFjayh7XG4gICAgICBzZGs6IGVudi5zZGssXG4gICAgICByb2xlQXJuOiBleGVjdXRpb25Sb2xlQXJuLFxuICAgICAgc3RhY2s6IG9wdGlvbnMuc3RhY2ssXG4gICAgICBkZXBsb3lOYW1lOiBvcHRpb25zLmRlcGxveU5hbWUsXG4gICAgfSwgdGhpcy5pb0hlbHBlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3RhY2tFeGlzdHMob3B0aW9uczogU3RhY2tFeGlzdHNPcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbGV0IGVudjtcbiAgICBpZiAob3B0aW9ucy50cnlMb29rdXBSb2xlKSB7XG4gICAgICBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JMb29rdXBCZXN0RWZmb3J0KG9wdGlvbnMuc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JSZWFkT25seVN0YWNrT3BlcmF0aW9ucyhvcHRpb25zLnN0YWNrKTtcbiAgICB9XG4gICAgY29uc3Qgc3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChlbnYuc2RrLmNsb3VkRm9ybWF0aW9uKCksIG9wdGlvbnMuZGVwbG95TmFtZSA/PyBvcHRpb25zLnN0YWNrLnN0YWNrTmFtZSk7XG4gICAgcmV0dXJuIHN0YWNrLmV4aXN0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHNpbmdsZSBhc3NldCBmcm9tIGFuIGFzc2V0IG1hbmlmZXN0XG4gICAqXG4gICAqIElmIGFuIGFzc2VydCBtYW5pZmVzdCBhcnRpZmFjdCBpcyBnaXZlbiwgdGhlIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAqIHdpbGwgYmUgdmFsaWRhdGVkIGFjY29yZGluZyB0byB0aGUgY29uc3RyYWludHMgaW4gdGhhdCBtYW5pZmVzdCBhcnRpZmFjdC5cbiAgICogSWYgdGhhdCBpcyBub3QgbmVjZXNzYXJ5LCBgJ25vLXZlcnNpb24tdmFsaWRhdGlvbidgIGNhbiBiZSBwYXNzZWQuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gIHB1YmxpYyBhc3luYyBidWlsZFNpbmdsZUFzc2V0KFxuICAgIGFzc2V0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCB8ICduby12ZXJzaW9uLXZhbGlkYXRpb24nLFxuICAgIGFzc2V0TWFuaWZlc3Q6IGNka19hc3NldHMuQXNzZXRNYW5pZmVzdCxcbiAgICBhc3NldDogY2RrX2Fzc2V0cy5JTWFuaWZlc3RFbnRyeSxcbiAgICBvcHRpb25zOiBCdWlsZFN0YWNrQXNzZXRzT3B0aW9ucyxcbiAgKSB7XG4gICAgaWYgKGFzc2V0QXJ0aWZhY3QgIT09ICduby12ZXJzaW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBlbnYgPSBhd2FpdCB0aGlzLmVudnMuYWNjZXNzU3RhY2tGb3JSZWFkT25seVN0YWNrT3BlcmF0aW9ucyhvcHRpb25zLnN0YWNrKTtcbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24oXG4gICAgICAgIG9wdGlvbnMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBhc3NldEFydGlmYWN0LnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uLFxuICAgICAgICBhc3NldEFydGlmYWN0LmJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlcixcbiAgICAgICAgZW52LnJlc291cmNlcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudCA9IGF3YWl0IHRoaXMuZW52cy5yZXNvbHZlU3RhY2tFbnZpcm9ubWVudChvcHRpb25zLnN0YWNrKTtcblxuICAgIGNvbnN0IHB1Ymxpc2hlciA9IHRoaXMuY2FjaGVkUHVibGlzaGVyKGFzc2V0TWFuaWZlc3QsIHJlc29sdmVkRW52aXJvbm1lbnQsIG9wdGlvbnMuc3RhY2tOYW1lKTtcbiAgICBhd2FpdCBwdWJsaXNoZXIuYnVpbGRFbnRyeShhc3NldCk7XG4gICAgaWYgKHB1Ymxpc2hlci5oYXNGYWlsdXJlcykge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQXNzZXRCdWlsZEZhaWxlZCcsIGBGYWlsZWQgdG8gYnVpbGQgYXNzZXQgJHthc3NldC5kaXNwbGF5TmFtZShmYWxzZSl9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBzaW5nbGUgYXNzZXQgZnJvbSBhbiBhc3NldCBtYW5pZmVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2hTaW5nbGVBc3NldChcbiAgICBhc3NldE1hbmlmZXN0OiBjZGtfYXNzZXRzLkFzc2V0TWFuaWZlc3QsXG4gICAgYXNzZXQ6IGNka19hc3NldHMuSU1hbmlmZXN0RW50cnksXG4gICAgb3B0aW9uczogUHVibGlzaFN0YWNrQXNzZXRzT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc3RhY2tFbnYgPSBhd2FpdCB0aGlzLmVudnMucmVzb2x2ZVN0YWNrRW52aXJvbm1lbnQob3B0aW9ucy5zdGFjayk7XG5cbiAgICAvLyBObyBuZWVkIHRvIHZhbGlkYXRlIGFueW1vcmUsIHdlIGFscmVhZHkgZGlkIHRoYXQgZHVyaW5nIGJ1aWxkXG4gICAgY29uc3QgcHVibGlzaGVyID0gdGhpcy5jYWNoZWRQdWJsaXNoZXIoYXNzZXRNYW5pZmVzdCwgc3RhY2tFbnYsIG9wdGlvbnMuc3RhY2tOYW1lKTtcbiAgICBhd2FpdCBwdWJsaXNoZXIucHVibGlzaEVudHJ5KGFzc2V0LCB7XG4gICAgICBhbGxvd0Nyb3NzQWNjb3VudDogYXdhaXQgdGhpcy5hbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZ0ZvckVudihvcHRpb25zLnN0YWNrKSxcbiAgICAgIGZvcmNlOiBvcHRpb25zLmZvcmNlUHVibGlzaCxcbiAgICB9KTtcbiAgICBpZiAocHVibGlzaGVyLmhhc0ZhaWx1cmVzKSB7XG4gICAgICB0aHJvdyBUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdBc3NldFB1Ymxpc2hGYWlsZWQnLCBgRmFpbGVkIHRvIHB1Ymxpc2ggYXNzZXQgJHthc3NldC5kaXNwbGF5TmFtZSh0cnVlKX1gLCBuZXcgQWdncmVnYXRlRXJyb3IocHVibGlzaGVyLmZhaWx1cmVzLm1hcChmID0+IGYuZXJyb3IpKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhbGxvd0Nyb3NzQWNjb3VudEFzc2V0UHVibGlzaGluZ0ZvckVudihzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuX2FsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGVudiA9IGF3YWl0IHRoaXMuZW52cy5hY2Nlc3NTdGFja0ZvclJlYWRPbmx5U3RhY2tPcGVyYXRpb25zKHN0YWNrKTtcbiAgICAgIHRoaXMuX2FsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nID0gYXdhaXQgZGV0ZXJtaW5lQWxsb3dDcm9zc0FjY291bnRBc3NldFB1Ymxpc2hpbmcoZW52LnNkaywgdGhpcy5pb0hlbHBlciwgdGhpcy5wcm9wcy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q3Jvc3NBY2NvdW50QXNzZXRQdWJsaXNoaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIGEgc2luZ2xlIGFzc2V0IGhhcyBiZWVuIHB1Ymxpc2hlZCBhbHJlYWR5XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNTaW5nbGVBc3NldFB1Ymxpc2hlZChcbiAgICBhc3NldE1hbmlmZXN0OiBjZGtfYXNzZXRzLkFzc2V0TWFuaWZlc3QsXG4gICAgYXNzZXQ6IGNka19hc3NldHMuSU1hbmlmZXN0RW50cnksXG4gICAgb3B0aW9uczogUHVibGlzaFN0YWNrQXNzZXRzT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc3RhY2tFbnYgPSBhd2FpdCB0aGlzLmVudnMucmVzb2x2ZVN0YWNrRW52aXJvbm1lbnQob3B0aW9ucy5zdGFjayk7XG4gICAgY29uc3QgcHVibGlzaGVyID0gdGhpcy5jYWNoZWRQdWJsaXNoZXIoYXNzZXRNYW5pZmVzdCwgc3RhY2tFbnYsIG9wdGlvbnMuc3RhY2tOYW1lKTtcbiAgICByZXR1cm4gcHVibGlzaGVyLmlzRW50cnlQdWJsaXNoZWQoYXNzZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoYXQgdGhlIGJvb3RzdHJhcCBzdGFjayBoYXMgdGhlIHJpZ2h0IHZlcnNpb24gZm9yIHRoaXMgc3RhY2tcbiAgICpcbiAgICogQ2FsbCBpbnRvIGVudlJlc291cmNlcy52YWxpZGF0ZVZlcnNpb24sIGJ1dCBwcmVwZW5kIHRoZSBzdGFjayBuYW1lIGluIGNhc2Ugb2YgZmFpbHVyZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24oXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgcmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBib290c3RyYXBTdGFja1ZlcnNpb25Tc21QYXJhbWV0ZXI6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBlbnZSZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzLFxuICApIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZW52UmVzb3VyY2VzLnZhbGlkYXRlVmVyc2lvbihyZXF1aXJlc0Jvb3RzdHJhcFN0YWNrVmVyc2lvbiwgYm9vdHN0cmFwU3RhY2tWZXJzaW9uU3NtUGFyYW1ldGVyKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFZlcnNpb25WYWxpZGF0aW9uJywgYCR7c3RhY2tOYW1lfTogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYWNoZWRQdWJsaXNoZXIoYXNzZXRNYW5pZmVzdDogY2RrX2Fzc2V0cy5Bc3NldE1hbmlmZXN0LCBlbnY6IGN4YXBpLkVudmlyb25tZW50LCBzdGFja05hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMucHVibGlzaGVyQ2FjaGUuZ2V0KGFzc2V0TWFuaWZlc3QpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSBzdGFja05hbWUgPyBgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9OiBgIDogJyc7XG4gICAgY29uc3QgcHVibGlzaGVyID0gbmV3IGNka19hc3NldHMuQXNzZXRQdWJsaXNoaW5nKGFzc2V0TWFuaWZlc3QsIHtcbiAgICAgIC8vIFRoZSBBc3NldFB1Ymxpc2hpbmcgY2xhc3MgdGFrZXMgY2FyZSBvZiByb2xlIGFzc3VtaW5nIGV0Yywgc28gaXQncyBva2F5IHRvXG4gICAgICAvLyBnaXZlIGl0IGEgZGlyZWN0IGBTZGtQcm92aWRlcmAuXG4gICAgICBhd3M6IG5ldyBQdWJsaXNoaW5nQXdzKHRoaXMuYXNzZXRTZGtQcm92aWRlciwgZW52KSxcbiAgICAgIHByb2dyZXNzTGlzdGVuZXI6IG5ldyBQYXJhbGxlbFNhZmVBc3NldFByb2dyZXNzKHByZWZpeCwgdGhpcy5pb0hlbHBlciksXG4gICAgfSk7XG4gICAgdGhpcy5wdWJsaXNoZXJDYWNoZS5zZXQoYXNzZXRNYW5pZmVzdCwgcHVibGlzaGVyKTtcbiAgICByZXR1cm4gcHVibGlzaGVyO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXQgcHJvZ3Jlc3MgdGhhdCBkb2Vzbid0IGRvIGFueXRoaW5nIHdpdGggcGVyY2VudGFnZXMgKGN1cnJlbnRseSlcbiAqL1xuY2xhc3MgUGFyYWxsZWxTYWZlQXNzZXRQcm9ncmVzcyBleHRlbmRzIEJhc2VQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJlZml4OiBzdHJpbmcsIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHN1cGVyKGlvSGVscGVyKTtcbiAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRNZXNzYWdlKHR5cGU6IGNka19hc3NldHMuRXZlbnRUeXBlLCBldmVudDogY2RrX2Fzc2V0cy5JUHVibGlzaFByb2dyZXNzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5wcmVmaXh9JHt0eXBlfTogJHtldmVudC5tZXNzYWdlfWA7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VmZml4V2l0aEVycm9ycyhtc2c6IHN0cmluZywgZXJyb3JzPzogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoID4gMCA/IGAke21zZ306ICR7ZXJyb3JzLmpvaW4oJywgJyl9YCA6IG1zZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EarlyValidationReporter = void 0;\n/**\n * A ValidationReporter that checks for early validation errors right after\n * creating the change set. If any are found, it throws an error listing all validation failures.\n * If the DescribeEvents API call fails (for example, due to insufficient permissions),\n * it logs a warning instead.\n */\nclass EarlyValidationReporter {\n sdk;\n envResources;\n constructor(sdk, envResources) {\n this.sdk = sdk;\n this.envResources = envResources;\n }\n async fetchDetails(changeSetName, stackName) {\n let operationEvents = [];\n try {\n operationEvents = await this.getFailedEvents(stackName, changeSetName);\n }\n catch (error) {\n let currentVersion = undefined;\n try {\n currentVersion = (await this.envResources.lookupToolkit()).version;\n }\n catch (e) {\n }\n return `The template cannot be deployed because of early validation errors, but retrieving more details about those\nerrors failed (${error}). Make sure you have permissions to call the DescribeEvents API, or re-bootstrap\nyour environment by running 'cdk bootstrap' to update the Bootstrap CDK Toolkit stack.\nBootstrap toolkit stack version 30 or later is needed; current version: ${currentVersion ?? 'unknown'}.`;\n }\n let message = `ChangeSet '${changeSetName}' on stack '${stackName}' failed early validation`;\n if (operationEvents.length > 0) {\n const failures = operationEvents\n .map((event) => ` - ${event.ValidationStatusReason} (at ${event.ValidationPath})`)\n .join('\\n');\n message += `:\\n${failures}\\n`;\n }\n return message;\n }\n async getFailedEvents(stackName, changeSetName) {\n return this.sdk.cloudFormation().paginatedDescribeEvents({\n StackName: stackName,\n ChangeSetName: changeSetName,\n Filters: {\n FailedEvents: true,\n },\n });\n }\n}\nexports.EarlyValidationReporter = EarlyValidationReporter;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFybHktdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVhcmx5LXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0E7Ozs7O0dBS0c7QUFDSCxNQUFhLHVCQUF1QjtJQUNMO0lBQTJCO0lBQXhELFlBQTZCLEdBQVEsRUFBbUIsWUFBa0M7UUFBN0QsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFtQixpQkFBWSxHQUFaLFlBQVksQ0FBc0I7SUFDMUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZLENBQUMsYUFBcUIsRUFBRSxTQUFpQjtRQUNoRSxJQUFJLGVBQWUsR0FBcUIsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQztZQUNILGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxjQUFjLEdBQXVCLFNBQVMsQ0FBQztZQUNuRCxJQUFJLENBQUM7Z0JBQ0gsY0FBYyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3JFLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2IsQ0FBQztZQUVELE9BQU87aUJBQ0ksS0FBSzs7MEVBRW9ELGNBQWMsSUFBSSxTQUFTLEdBQUcsQ0FBQztRQUNyRyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsY0FBYyxhQUFhLGVBQWUsU0FBUywyQkFBMkIsQ0FBQztRQUM3RixJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxRQUFRLEdBQUcsZUFBZTtpQkFDN0IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxzQkFBc0IsUUFBUSxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUM7aUJBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVkLE9BQU8sSUFBSSxNQUFNLFFBQVEsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFpQixFQUFFLGFBQXFCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN2RCxTQUFTLEVBQUUsU0FBUztZQUNwQixhQUFhLEVBQUUsYUFBYTtZQUM1QixPQUFPLEVBQUU7Z0JBQ1AsWUFBWSxFQUFFLElBQUk7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF6Q0QsMERBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25FdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25SZXBvcnRlciB9IGZyb20gJy4vY2ZuLWFwaSc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3Nkayc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuXG4vKipcbiAqIEEgVmFsaWRhdGlvblJlcG9ydGVyIHRoYXQgY2hlY2tzIGZvciBlYXJseSB2YWxpZGF0aW9uIGVycm9ycyByaWdodCBhZnRlclxuICogY3JlYXRpbmcgdGhlIGNoYW5nZSBzZXQuIElmIGFueSBhcmUgZm91bmQsIGl0IHRocm93cyBhbiBlcnJvciBsaXN0aW5nIGFsbCB2YWxpZGF0aW9uIGZhaWx1cmVzLlxuICogSWYgdGhlIERlc2NyaWJlRXZlbnRzIEFQSSBjYWxsIGZhaWxzIChmb3IgZXhhbXBsZSwgZHVlIHRvIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucyksXG4gKiBpdCBsb2dzIGEgd2FybmluZyBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgRWFybHlWYWxpZGF0aW9uUmVwb3J0ZXIgaW1wbGVtZW50cyBWYWxpZGF0aW9uUmVwb3J0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNkazogU0RLLCBwcml2YXRlIHJlYWRvbmx5IGVudlJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmZXRjaERldGFpbHMoY2hhbmdlU2V0TmFtZTogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IG9wZXJhdGlvbkV2ZW50czogT3BlcmF0aW9uRXZlbnRbXSA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBvcGVyYXRpb25FdmVudHMgPSBhd2FpdCB0aGlzLmdldEZhaWxlZEV2ZW50cyhzdGFja05hbWUsIGNoYW5nZVNldE5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsZXQgY3VycmVudFZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGN1cnJlbnRWZXJzaW9uID0gKGF3YWl0IHRoaXMuZW52UmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKSkudmVyc2lvbjtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGBUaGUgdGVtcGxhdGUgY2Fubm90IGJlIGRlcGxveWVkIGJlY2F1c2Ugb2YgZWFybHkgdmFsaWRhdGlvbiBlcnJvcnMsIGJ1dCByZXRyaWV2aW5nIG1vcmUgZGV0YWlscyBhYm91dCB0aG9zZVxuZXJyb3JzIGZhaWxlZCAoJHtlcnJvcn0pLiBNYWtlIHN1cmUgeW91IGhhdmUgcGVybWlzc2lvbnMgdG8gY2FsbCB0aGUgRGVzY3JpYmVFdmVudHMgQVBJLCBvciByZS1ib290c3RyYXBcbnlvdXIgZW52aXJvbm1lbnQgYnkgcnVubmluZyAnY2RrIGJvb3RzdHJhcCcgdG8gdXBkYXRlIHRoZSBCb290c3RyYXAgQ0RLIFRvb2xraXQgc3RhY2suXG5Cb290c3RyYXAgdG9vbGtpdCBzdGFjayB2ZXJzaW9uIDMwIG9yIGxhdGVyIGlzIG5lZWRlZDsgY3VycmVudCB2ZXJzaW9uOiAke2N1cnJlbnRWZXJzaW9uID8/ICd1bmtub3duJ30uYDtcbiAgICB9XG5cbiAgICBsZXQgbWVzc2FnZSA9IGBDaGFuZ2VTZXQgJyR7Y2hhbmdlU2V0TmFtZX0nIG9uIHN0YWNrICcke3N0YWNrTmFtZX0nIGZhaWxlZCBlYXJseSB2YWxpZGF0aW9uYDtcbiAgICBpZiAob3BlcmF0aW9uRXZlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZhaWx1cmVzID0gb3BlcmF0aW9uRXZlbnRzXG4gICAgICAgIC5tYXAoKGV2ZW50KSA9PiBgICAtICR7ZXZlbnQuVmFsaWRhdGlvblN0YXR1c1JlYXNvbn0gKGF0ICR7ZXZlbnQuVmFsaWRhdGlvblBhdGh9KWApXG4gICAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgICAgbWVzc2FnZSArPSBgOlxcbiR7ZmFpbHVyZXN9XFxuYDtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEZhaWxlZEV2ZW50cyhzdGFja05hbWU6IHN0cmluZywgY2hhbmdlU2V0TmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2RrLmNsb3VkRm9ybWF0aW9uKCkucGFnaW5hdGVkRGVzY3JpYmVFdmVudHMoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICBDaGFuZ2VTZXROYW1lOiBjaGFuZ2VTZXROYW1lLFxuICAgICAgRmlsdGVyczoge1xuICAgICAgICBGYWlsZWRFdmVudHM6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AssetManifestBuilder = exports.addMetadataAssetsToManifest = void 0;\n__exportStar(require(\"./deployments\"), exports);\n__exportStar(require(\"./deployment-result\"), exports);\n// testing exports\n__exportStar(require(\"./checks\"), exports);\nvar assets_1 = require(\"./assets\");\nObject.defineProperty(exports, \"addMetadataAssetsToManifest\", { enumerable: true, get: function () { return assets_1.addMetadataAssetsToManifest; } });\nvar asset_manifest_builder_1 = require(\"./asset-manifest-builder\");\nObject.defineProperty(exports, \"AssetManifestBuilder\", { enumerable: true, get: function () { return asset_manifest_builder_1.AssetManifestBuilder; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QjtBQUM5QixzREFBb0M7QUFFcEMsa0JBQWtCO0FBQ2xCLDJDQUF5QjtBQUN6QixtQ0FBdUQ7QUFBOUMscUhBQUEsMkJBQTJCLE9BQUE7QUFDcEMsbUVBQWdFO0FBQXZELDhIQUFBLG9CQUFvQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZXBsb3ltZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveW1lbnQtcmVzdWx0JztcblxuLy8gdGVzdGluZyBleHBvcnRzXG5leHBvcnQgKiBmcm9tICcuL2NoZWNrcyc7XG5leHBvcnQgeyBhZGRNZXRhZGF0YUFzc2V0c1RvTWFuaWZlc3QgfSBmcm9tICcuL2Fzc2V0cyc7XG5leHBvcnQgeyBBc3NldE1hbmlmZXN0QnVpbGRlciB9IGZyb20gJy4vYXNzZXQtbWFuaWZlc3QtYnVpbGRlcic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffFormatter = void 0;\nconst node_util_1 = require(\"node:util\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst chalk = require(\"chalk\");\nconst payloads_1 = require(\"../../payloads\");\nconst streams_1 = require(\"../streams\");\n/**\n * Class for formatting the diff output\n */\nclass DiffFormatter {\n templateInfo;\n stackName;\n isImport;\n mappings;\n /**\n * Cache of computed TemplateDiffs, indexed by stack name.\n */\n cache = new Map();\n constructor(props) {\n this.templateInfo = props.templateInfo;\n this.stackName = props.templateInfo.newTemplate.displayName ?? props.templateInfo.newTemplate.stackName;\n this.isImport = props.templateInfo.isImport ?? false;\n this.mappings = props.templateInfo.mappings ?? {};\n }\n get diffs() {\n return Object.fromEntries(this.cache);\n }\n /**\n * Compute the diff for a single stack. Results are cached by stack name.\n *\n * @param stackName - The name to cache the diff under\n * @param oldTemplate - The deployed template\n * @param newTemplate - The new/generated template (read from the artifact)\n * @param changeSet - The CloudFormation changeset for this specific stack, if available\n * @param mappings - Resource move mappings\n */\n computeDiff(stackName, oldTemplate, newTemplate, changeSet, mappings) {\n if (!this.cache.has(stackName)) {\n const templateDiff = (0, cloudformation_diff_1.fullDiff)(oldTemplate, newTemplate, changeSet, this.isImport);\n const setMove = (change, direction, location) => {\n if (location != null) {\n const [sourceStackName, sourceLogicalId] = location.split('.');\n change.move = {\n direction,\n stackName: sourceStackName,\n resourceLogicalId: sourceLogicalId,\n };\n }\n };\n templateDiff.resources.forEachDifference((id, change) => {\n const location = `${stackName}.${id}`;\n if (change.isAddition && Object.values(mappings).includes(location)) {\n setMove(change, 'from', Object.keys(mappings).find(k => mappings[k] === location));\n }\n else if (change.isRemoval && Object.keys(mappings).includes(location)) {\n setMove(change, 'to', mappings[location]);\n }\n });\n this.cache.set(stackName, templateDiff);\n }\n return this.cache.get(stackName);\n }\n /**\n * Format the stack diff, including all nested stacks.\n */\n formatStackDiff(options = {}) {\n return this.formatStackDiffHelper({\n oldTemplate: this.templateInfo.oldTemplate,\n newTemplate: this.templateInfo.newTemplate.template,\n stackName: this.stackName,\n nestedStacks: this.templateInfo.nestedStacks,\n changeSet: this.templateInfo.changeSet,\n mappings: this.mappings,\n logicalIdMap: buildLogicalToPathMap(this.templateInfo.newTemplate),\n }, options);\n }\n formatStackDiffHelper(params, options = {}) {\n const { oldTemplate, newTemplate, stackName, nestedStacks, changeSet, mappings, logicalIdMap } = params;\n const diff = this.computeDiff(stackName, oldTemplate, newTemplate, changeSet, mappings);\n const stream = new streams_1.StringWriteStream();\n let numStacksWithChanges = 0;\n let formattedDiff = '';\n let filteredChangesCount = 0;\n try {\n // must output the stack name if there are differences, even if quiet\n if (stackName && (!options.quiet || !diff.isEmpty)) {\n stream.write((0, node_util_1.format)(`Stack ${chalk.bold(stackName)}\\n`));\n }\n if (!options.quiet && this.isImport) {\n stream.write('Parameters and rules created during migration do not affect resource configuration.\\n');\n }\n // detect and filter out mangled characters from the diff\n let activeDiff = diff;\n if (diff.differenceCount && !options.strict) {\n const mangledNewTemplate = JSON.parse((0, cloudformation_diff_1.mangleLikeCloudFormation)(JSON.stringify(newTemplate)));\n const mangledDiff = (0, cloudformation_diff_1.fullDiff)(oldTemplate, mangledNewTemplate, changeSet);\n filteredChangesCount = Math.max(0, diff.differenceCount - mangledDiff.differenceCount);\n if (filteredChangesCount > 0) {\n activeDiff = mangledDiff;\n }\n }\n // filter out 'AWS::CDK::Metadata' resources from the template\n // filter out 'CheckBootstrapVersion' rules from the template\n if (!options.strict) {\n obscureDiff(activeDiff);\n }\n if (!activeDiff.isEmpty) {\n numStacksWithChanges++;\n (0, cloudformation_diff_1.formatDifferences)(stream, activeDiff, {\n ...logicalIdMapFromTemplate(oldTemplate),\n ...logicalIdMapFromTemplate(newTemplate),\n ...logicalIdMap,\n }, options.contextLines);\n }\n else if (!options.quiet) {\n stream.write(chalk.green('There were no differences\\n'));\n }\n if (filteredChangesCount > 0) {\n stream.write(chalk.yellow(`Omitted ${filteredChangesCount} changes because they are likely mangled non-ASCII characters. Use --strict to print them.\\n`));\n }\n }\n finally {\n formattedDiff = stream.toString();\n stream.end();\n }\n // Recurse into nested stacks\n for (const [logicalId, nestedStack] of Object.entries(nestedStacks ?? {})) {\n const nextDiff = this.formatStackDiffHelper({\n oldTemplate: nestedStack.deployedTemplate,\n newTemplate: nestedStack.generatedTemplate,\n stackName: nestedStack.physicalName ?? logicalId,\n nestedStacks: nestedStack.nestedStackTemplates,\n changeSet: nestedStack.changeSet,\n mappings,\n logicalIdMap: {},\n }, options);\n numStacksWithChanges += nextDiff.numStacksWithChanges;\n formattedDiff += nextDiff.formattedDiff;\n }\n return { numStacksWithChanges, formattedDiff };\n }\n /**\n * Format the security diff, including all nested stacks.\n */\n formatSecurityDiff(options = {}) {\n const { formattedDiff, permissionChangeType, numStacksWithChanges } = this.formatSecurityDiffHelper({\n oldTemplate: this.templateInfo.oldTemplate,\n newTemplate: this.templateInfo.newTemplate.template,\n stackName: this.stackName,\n nestedStacks: this.templateInfo.nestedStacks,\n changeSet: this.templateInfo.changeSet,\n logicalIdMap: buildLogicalToPathMap(this.templateInfo.newTemplate),\n }, options);\n return { formattedDiff, permissionChangeType, numStacksWithChanges };\n }\n formatSecurityDiffHelper(params, options = {}) {\n const { oldTemplate, newTemplate, stackName, nestedStacks, changeSet, logicalIdMap } = params;\n const diff = this.computeDiff(stackName, oldTemplate, newTemplate, changeSet, this.mappings);\n const permissionChangeType = permissionTypeFromDiff(diff);\n const stream = new streams_1.StringWriteStream();\n if (!options.quiet || permissionChangeType !== payloads_1.PermissionChangeType.NONE) {\n stream.write((0, node_util_1.format)(`Stack ${chalk.bold(stackName)}\\n`));\n }\n try {\n (0, cloudformation_diff_1.formatSecurityChanges)(stream, diff, {\n ...logicalIdMapFromTemplate(newTemplate),\n ...logicalIdMap,\n });\n }\n finally {\n stream.end();\n }\n let formattedDiff = stream.toString();\n if (!options.quiet && permissionChangeType === payloads_1.PermissionChangeType.NONE) {\n formattedDiff += chalk.green('There were no security-related changes (limitations: https://github.com/aws/aws-cdk/issues/1299)\\n');\n }\n let numStacksWithChanges = permissionChangeType !== payloads_1.PermissionChangeType.NONE ? 1 : 0;\n let escalatedPermissionType = permissionChangeType;\n // Recurse into nested stacks\n for (const [logicalId, nestedStack] of Object.entries(nestedStacks ?? {})) {\n const nestedResult = this.formatSecurityDiffHelper({\n oldTemplate: nestedStack.deployedTemplate,\n newTemplate: nestedStack.generatedTemplate,\n stackName: nestedStack.physicalName ?? logicalId,\n nestedStacks: nestedStack.nestedStackTemplates,\n changeSet: nestedStack.changeSet,\n }, options);\n formattedDiff += nestedResult.formattedDiff ? '\\n' + nestedResult.formattedDiff : '';\n numStacksWithChanges += nestedResult.numStacksWithChanges;\n // Escalate: if any nested stack broadens permissions, the whole thing broadens\n if (nestedResult.permissionChangeType === payloads_1.PermissionChangeType.BROADENING) {\n escalatedPermissionType = payloads_1.PermissionChangeType.BROADENING;\n }\n else if (nestedResult.permissionChangeType === payloads_1.PermissionChangeType.NON_BROADENING\n && escalatedPermissionType === payloads_1.PermissionChangeType.NONE) {\n escalatedPermissionType = payloads_1.PermissionChangeType.NON_BROADENING;\n }\n }\n return { formattedDiff, permissionChangeType: escalatedPermissionType, numStacksWithChanges };\n }\n}\nexports.DiffFormatter = DiffFormatter;\nfunction permissionTypeFromDiff(diff) {\n if (diff.permissionsBroadened) {\n return payloads_1.PermissionChangeType.BROADENING;\n }\n else if (diff.permissionsAnyChanges) {\n return payloads_1.PermissionChangeType.NON_BROADENING;\n }\n return payloads_1.PermissionChangeType.NONE;\n}\nfunction buildLogicalToPathMap(stack) {\n const map = {};\n for (const md of stack.findMetadataByType(cxschema.ArtifactMetadataEntryType.LOGICAL_ID)) {\n map[md.data] = md.path;\n }\n return map;\n}\nfunction logicalIdMapFromTemplate(template) {\n const ret = {};\n for (const [logicalId, resource] of Object.entries((template.Resources ?? {}))) {\n const path = resource?.Metadata?.['aws:cdk:path'];\n if (path) {\n ret[logicalId] = path;\n }\n }\n return ret;\n}\n/**\n * Remove any template elements that we don't want to show users.\n * This is currently:\n * - AWS::CDK::Metadata resource\n * - CheckBootstrapVersion Rule\n */\nfunction obscureDiff(diff) {\n if (diff.unknown) {\n // see https://github.com/aws/aws-cdk/issues/17942\n diff.unknown = diff.unknown.filter(change => {\n if (!change) {\n return true;\n }\n if (change.newValue?.CheckBootstrapVersion) {\n return false;\n }\n if (change.oldValue?.CheckBootstrapVersion) {\n return false;\n }\n return true;\n });\n }\n if (diff.resources) {\n diff.resources = diff.resources.filter(change => {\n if (!change) {\n return true;\n }\n if (change.newResourceType === 'AWS::CDK::Metadata') {\n return false;\n }\n if (change.oldResourceType === 'AWS::CDK::Metadata') {\n return false;\n }\n return true;\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBbUM7QUFFbkMsMkRBQTJEO0FBQzNELHNFQVFzQztBQUN0QywrQkFBK0I7QUFDL0IsNkNBQXNEO0FBRXRELHdDQUErQztBQTBJL0M7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDUCxZQUFZLENBQWU7SUFDM0IsU0FBUyxDQUFTO0lBQ2xCLFFBQVEsQ0FBVTtJQUNsQixRQUFRLENBQXlCO0lBRWxEOztPQUVHO0lBQ2MsS0FBSyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBRXpELFlBQVksS0FBeUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN4RyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxXQUFXLENBQ2pCLFNBQWlCLEVBQ2pCLFdBQXFCLEVBQ3JCLFdBQXFCLEVBQ3JCLFNBQThDLEVBQzlDLFFBQWdDO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sWUFBWSxHQUFHLElB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QU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxlQUFlLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztnQkFDcEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3BELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHtcbiAgZm9ybWF0RGlmZmVyZW5jZXMsXG4gIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyxcbiAgZnVsbERpZmYsXG4gIG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbixcbiAgdHlwZSBEZXNjcmliZUNoYW5nZVNldE91dHB1dCxcbiAgdHlwZSBSZXNvdXJjZURpZmZlcmVuY2UsXG4gIHR5cGUgVGVtcGxhdGVEaWZmLFxufSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IFBlcm1pc3Npb25DaGFuZ2VUeXBlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHR5cGUgeyBOZXN0ZWRTdGFja1RlbXBsYXRlcywgVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBTdHJpbmdXcml0ZVN0cmVhbSB9IGZyb20gJy4uL3N0cmVhbXMnO1xuXG4vKipcbiAqIE91dHB1dCBvZiBmb3JtYXRTZWN1cml0eURpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFNlY3VyaXR5RGlmZk91dHB1dCB7XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgc2VjdXJpdHkgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwZXJtaXNzaW9uIGNoYW5nZXMgaW4gdGhlIHNlY3VyaXR5IGRpZmYuXG4gICAqIFRoZSBJb0hvc3Qgd2lsbCB1c2UgdGhpcyB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gcHJpbnQuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogUGVybWlzc2lvbkNoYW5nZVR5cGU7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBzdGFja3Mgd2l0aCBzZWN1cml0eSBjaGFuZ2VzXG4gICAqL1xuICByZWFkb25seSBudW1TdGFja3NXaXRoQ2hhbmdlczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE91dHB1dCBvZiBmb3JtYXRTdGFja0RpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFN0YWNrRGlmZk91dHB1dCB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2Ygc3RhY2tzIHdpdGggZGlmZiBjaGFuZ2VzXG4gICAqL1xuICByZWFkb25seSBudW1TdGFja3NXaXRoQ2hhbmdlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgRGlmZiBGb3JtYXR0ZXJcbiAqL1xuaW50ZXJmYWNlIERpZmZGb3JtYXR0ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIHRoZSBUZW1wbGF0ZSB0aGF0IGlzIGJlaW5nIGRpZmZlZC5cbiAgICogSW5jbHVkZXMgdGhlIG9sZC9jdXJyZW50IHN0YXRlIG9mIHRoZSBzdGFjayBhcyB3ZWxsIGFzIHRoZSBuZXcgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZUluZm86IFRlbXBsYXRlSW5mbztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHNwZWNpZmljIHRvIGZvcm1hdHRpbmcgdGhlIHN0YWNrIGRpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFN0YWNrRGlmZk9wdGlvbnMge1xuICAvKipcbiAgICogZG8gbm90IGZpbHRlciBvdXQgQVdTOjpDREs6Ok1ldGFkYXRhIG9yIFJ1bGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdHJpY3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBsaW5lcyBvZiBjb250ZXh0IHRvIHVzZSBpbiBhcmJpdHJhcnkgSlNPTiBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogc2lsZW5jZXMgXFwnVGhlcmUgd2VyZSBubyBkaWZmZXJlbmNlc1xcJyBtZXNzYWdlc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUmV1c2FibGVTdGFja0RpZmZPcHRpb25zIGV4dGVuZHMgRm9ybWF0U3RhY2tEaWZmT3B0aW9ucyB7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBzcGVjaWZpYyB0byBmb3JtYXR0aW5nIHRoZSBzZWN1cml0eSBkaWZmXG4gKi9cbmludGVyZmFjZSBGb3JtYXRTZWN1cml0eURpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIHNpbGVuY2VzIHN0YWNrIG5hbWVzIGFuZCAnbm8gY2hhbmdlcycgbWVzc2FnZXMgZm9yIHN0YWNrcyB3aXRob3V0IHNlY3VyaXR5IGNoYW5nZXNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBvbiBhIHRlbXBsYXRlJ3Mgb2xkL25ldyBzdGF0ZVxuICogdGhhdCBpcyB1c2VkIGZvciBkaWZmLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgb2xkL2V4aXN0aW5nIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBvbGRUZW1wbGF0ZTogVGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuZXcgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IG5ld1RlbXBsYXRlOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIEEgQ2xvdWRGb3JtYXRpb24gQ2hhbmdlU2V0IHRvIGhlbHAgdGhlIGRpZmYgb3BlcmF0aW9uLlxuICAgKiBQcm9iYWJseSBjcmVhdGVkIHZpYSBgY3JlYXRlRGlmZkNoYW5nZVNldGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBhbnkgaW1wb3J0ZWQgcmVzb3VyY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpc0ltcG9ydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFueSBuZXN0ZWQgc3RhY2tzIGluY2x1ZGVkIGluIHRoZSB0ZW1wbGF0ZVxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tzPzoge1xuICAgIFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1hcHBpbmdzIG9mIG9sZCBsb2NhdGlvbnMgdG8gbmV3IGxvY2F0aW9ucy4gSWYgdGhlc2UgYXJlIHByb3ZpZGVkLFxuICAgKiBmb3IgYWxsIHJlc291cmNlcyB0aGF0IHdlcmUgbW92ZWQsIHRoZWlyIGNvcnJlc3BvbmRpbmcgYWRkaXRpb25cbiAgICogYW5kIHJlbW92YWwgbGluZXMgd2lsbCBiZSBhdWdtZW50ZWQgd2l0aCB0aGUgbG9jYXRpb24gdGhleSB3ZXJlXG4gICAqIG1vdmVkIGZvbSBhbmQgdG8sIHJlc3BlY3RpdmVseS5cbiAgICovXG4gIHJlYWRvbmx5IG1hcHBpbmdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBDbGFzcyBmb3IgZm9ybWF0dGluZyB0aGUgZGlmZiBvdXRwdXRcbiAqL1xuZXhwb3J0IGNsYXNzIERpZmZGb3JtYXR0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlSW5mbzogVGVtcGxhdGVJbmZvO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzSW1wb3J0OiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IG1hcHBpbmdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBDYWNoZSBvZiBjb21wdXRlZCBUZW1wbGF0ZURpZmZzLCBpbmRleGVkIGJ5IHN0YWNrIG5hbWUuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFRlbXBsYXRlRGlmZj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogRGlmZkZvcm1hdHRlclByb3BzKSB7XG4gICAgdGhpcy50ZW1wbGF0ZUluZm8gPSBwcm9wcy50ZW1wbGF0ZUluZm87XG4gICAgdGhpcy5zdGFja05hbWUgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUuZGlzcGxheU5hbWUgPz8gcHJvcHMudGVtcGxhdGVJbmZvLm5ld1RlbXBsYXRlLnN0YWNrTmFtZTtcbiAgICB0aGlzLmlzSW1wb3J0ID0gcHJvcHMudGVtcGxhdGVJbmZvLmlzSW1wb3J0ID8/IGZhbHNlO1xuICAgIHRoaXMubWFwcGluZ3MgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubWFwcGluZ3MgPz8ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZzKCkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5jYWNoZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZSB0aGUgZGlmZiBmb3IgYSBzaW5nbGUgc3RhY2suIFJlc3VsdHMgYXJlIGNhY2hlZCBieSBzdGFjayBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhY2tOYW1lIC0gVGhlIG5hbWUgdG8gY2FjaGUgdGhlIGRpZmYgdW5kZXJcbiAgICogQHBhcmFtIG9sZFRlbXBsYXRlIC0gVGhlIGRlcGxveWVkIHRlbXBsYXRlXG4gICAqIEBwYXJhbSBuZXdUZW1wbGF0ZSAtIFRoZSBuZXcvZ2VuZXJhdGVkIHRlbXBsYXRlIChyZWFkIGZyb20gdGhlIGFydGlmYWN0KVxuICAgKiBAcGFyYW0gY2hhbmdlU2V0IC0gVGhlIENsb3VkRm9ybWF0aW9uIGNoYW5nZXNldCBmb3IgdGhpcyBzcGVjaWZpYyBzdGFjaywgaWYgYXZhaWxhYmxlXG4gICAqIEBwYXJhbSBtYXBwaW5ncyAtIFJlc291cmNlIG1vdmUgbWFwcGluZ3NcbiAgICovXG4gIHByaXZhdGUgY29tcHV0ZURpZmYoXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgb2xkVGVtcGxhdGU6IFRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBUZW1wbGF0ZSxcbiAgICBjaGFuZ2VTZXQ6IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0IHwgdW5kZWZpbmVkLFxuICAgIG1hcHBpbmdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICApOiBUZW1wbGF0ZURpZmYge1xuICAgIGlmICghdGhpcy5jYWNoZS5oYXMoc3RhY2tOYW1lKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVEaWZmID0gZnVsbERpZmYob2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQsIHRoaXMuaXNJbXBvcnQpO1xuXG4gICAgICBjb25zdCBzZXRNb3ZlID0gKGNoYW5nZTogUmVzb3VyY2VEaWZmZXJlbmNlLCBkaXJlY3Rpb246ICdmcm9tJyB8ICd0bycsIGxvY2F0aW9uPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChsb2NhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgW3NvdXJjZVN0YWNrTmFtZSwgc291cmNlTG9naWNhbElkXSA9IGxvY2F0aW9uLnNwbGl0KCcuJyk7XG4gICAgICAgICAgY2hhbmdlLm1vdmUgPSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICBzdGFja05hbWU6IHNvdXJjZVN0YWNrTmFtZSxcbiAgICAgICAgICAgIHJlc291cmNlTG9naWNhbElkOiBzb3VyY2VMb2dpY2FsSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdGVtcGxhdGVEaWZmLnJlc291cmNlcy5mb3JFYWNoRGlmZmVyZW5jZSgoaWQsIGNoYW5nZSkgPT4ge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGAke3N0YWNrTmFtZX0uJHtpZH1gO1xuICAgICAgICBpZiAoY2hhbmdlLmlzQWRkaXRpb24gJiYgT2JqZWN0LnZhbHVlcyhtYXBwaW5ncykuaW5jbHVkZXMobG9jYXRpb24pKSB7XG4gICAgICAgICAgc2V0TW92ZShjaGFuZ2UsICdmcm9tJywgT2JqZWN0LmtleXMobWFwcGluZ3MpLmZpbmQoayA9PiBtYXBwaW5nc1trXSA9PT0gbG9jYXRpb24pKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNSZW1vdmFsICYmIE9iamVjdC5rZXlzKG1hcHBpbmdzKS5pbmNsdWRlcyhsb2NhdGlvbikpIHtcbiAgICAgICAgICBzZXRNb3ZlKGNoYW5nZSwgJ3RvJywgbWFwcGluZ3NbbG9jYXRpb25dKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY2FjaGUuc2V0KHN0YWNrTmFtZSwgdGVtcGxhdGVEaWZmKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHN0YWNrTmFtZSkhO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgc3RhY2sgZGlmZiwgaW5jbHVkaW5nIGFsbCBuZXN0ZWQgc3RhY2tzLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdFN0YWNrRGlmZihvcHRpb25zOiBGb3JtYXRTdGFja0RpZmZPcHRpb25zID0ge30pOiBGb3JtYXRTdGFja0RpZmZPdXRwdXQge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFN0YWNrRGlmZkhlbHBlcih7XG4gICAgICBvbGRUZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZUluZm8ub2xkVGVtcGxhdGUsXG4gICAgICBuZXdUZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUudGVtcGxhdGUsXG4gICAgICBzdGFja05hbWU6IHRoaXMuc3RhY2tOYW1lLFxuICAgICAgbmVzdGVkU3RhY2tzOiB0aGlzLnRlbXBsYXRlSW5mby5uZXN0ZWRTdGFja3MsXG4gICAgICBjaGFuZ2VTZXQ6IHRoaXMudGVtcGxhdGVJbmZvLmNoYW5nZVNldCxcbiAgICAgIG1hcHBpbmdzOiB0aGlzLm1hcHBpbmdzLFxuICAgICAgbG9naWNhbElkTWFwOiBidWlsZExvZ2ljYWxUb1BhdGhNYXAodGhpcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUpLFxuICAgIH0sIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRTdGFja0RpZmZIZWxwZXIocGFyYW1zOiB7XG4gICAgb2xkVGVtcGxhdGU6IFRlbXBsYXRlO1xuICAgIG5ld1RlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgICBzdGFja05hbWU6IHN0cmluZztcbiAgICBuZXN0ZWRTdGFja3M6IHsgW25lc3RlZFN0YWNrTG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9IHwgdW5kZWZpbmVkO1xuICAgIGNoYW5nZVNldDogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQgfCB1bmRlZmluZWQ7XG4gICAgbWFwcGluZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgbG9naWNhbElkTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICB9LCBvcHRpb25zOiBSZXVzYWJsZVN0YWNrRGlmZk9wdGlvbnMgPSB7fSk6IEZvcm1hdFN0YWNrRGlmZk91dHB1dCB7XG4gICAgY29uc3QgeyBvbGRUZW1wbGF0ZSwgbmV3VGVtcGxhdGUsIHN0YWNrTmFtZSwgbmVzdGVkU3RhY2tzLCBjaGFuZ2VTZXQsIG1hcHBpbmdzLCBsb2dpY2FsSWRNYXAgfSA9IHBhcmFtcztcblxuICAgIGNvbnN0IGRpZmYgPSB0aGlzLmNvbXB1dGVEaWZmKHN0YWNrTmFtZSwgb2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQsIG1hcHBpbmdzKTtcblxuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuICAgIGxldCBudW1TdGFja3NXaXRoQ2hhbmdlcyA9IDA7XG4gICAgbGV0IGZvcm1hdHRlZERpZmYgPSAnJztcbiAgICBsZXQgZmlsdGVyZWRDaGFuZ2VzQ291bnQgPSAwO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIG11c3Qgb3V0cHV0IHRoZSBzdGFjayBuYW1lIGlmIHRoZXJlIGFyZSBkaWZmZXJlbmNlcywgZXZlbiBpZiBxdWlldFxuICAgICAgaWYgKHN0YWNrTmFtZSAmJiAoIW9wdGlvbnMucXVpZXQgfHwgIWRpZmYuaXNFbXB0eSkpIHtcbiAgICAgICAgc3RyZWFtLndyaXRlKGZvcm1hdChgU3RhY2sgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9XFxuYCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9wdGlvbnMucXVpZXQgJiYgdGhpcy5pc0ltcG9ydCkge1xuICAgICAgICBzdHJlYW0ud3JpdGUoJ1BhcmFtZXRlcnMgYW5kIHJ1bGVzIGNyZWF0ZWQgZHVyaW5nIG1pZ3JhdGlvbiBkbyBub3QgYWZmZWN0IHJlc291cmNlIGNvbmZpZ3VyYXRpb24uXFxuJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRldGVjdCBhbmQgZmlsdGVyIG91dCBtYW5nbGVkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZGlmZlxuICAgICAgbGV0IGFjdGl2ZURpZmYgPSBkaWZmO1xuICAgICAgaWYgKGRpZmYuZGlmZmVyZW5jZUNvdW50ICYmICFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBjb25zdCBtYW5nbGVkTmV3VGVtcGxhdGUgPSBKU09OLnBhcnNlKG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbihKU09OLnN0cmluZ2lmeShuZXdUZW1wbGF0ZSkpKTtcbiAgICAgICAgY29uc3QgbWFuZ2xlZERpZmYgPSBmdWxsRGlmZihvbGRUZW1wbGF0ZSwgbWFuZ2xlZE5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQpO1xuICAgICAgICBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IE1hdGgubWF4KDAsIGRpZmYuZGlmZmVyZW5jZUNvdW50IC0gbWFuZ2xlZERpZmYuZGlmZmVyZW5jZUNvdW50KTtcbiAgICAgICAgaWYgKGZpbHRlcmVkQ2hhbmdlc0NvdW50ID4gMCkge1xuICAgICAgICAgIGFjdGl2ZURpZmYgPSBtYW5nbGVkRGlmZjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBmaWx0ZXIgb3V0ICdBV1M6OkNESzo6TWV0YWRhdGEnIHJlc291cmNlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgLy8gZmlsdGVyIG91dCAnQ2hlY2tCb290c3RyYXBWZXJzaW9uJyBydWxlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKCFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBvYnNjdXJlRGlmZihhY3RpdmVEaWZmKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFhY3RpdmVEaWZmLmlzRW1wdHkpIHtcbiAgICAgICAgbnVtU3RhY2tzV2l0aENoYW5nZXMrKztcblxuICAgICAgICBmb3JtYXREaWZmZXJlbmNlcyhzdHJlYW0sIGFjdGl2ZURpZmYsIHtcbiAgICAgICAgICAuLi5sb2dpY2FsSWRNYXBGcm9tVGVtcGxhdGUob2xkVGVtcGxhdGUpLFxuICAgICAgICAgIC4uLmxvZ2ljYWxJZE1hcEZyb21UZW1wbGF0ZShuZXdUZW1wbGF0ZSksXG4gICAgICAgICAgLi4ubG9naWNhbElkTWFwLFxuICAgICAgICB9LCBvcHRpb25zLmNvbnRleHRMaW5lcyk7XG4gICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLnF1aWV0KSB7XG4gICAgICAgIHN0cmVhbS53cml0ZShjaGFsay5ncmVlbignVGhlcmUgd2VyZSBubyBkaWZmZXJlbmNlc1xcbicpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbHRlcmVkQ2hhbmdlc0NvdW50ID4gMCkge1xuICAgICAgICBzdHJlYW0ud3JpdGUoY2hhbGsueWVsbG93KGBPbWl0dGVkICR7ZmlsdGVyZWRDaGFuZ2VzQ291bnR9IGNoYW5nZXMgYmVjYXVzZSB0aGV5IGFyZSBsaWtlbHkgbWFuZ2xlZCBub24tQVNDSUkgY2hhcmFjdGVycy4gVXNlIC0tc3RyaWN0IHRvIHByaW50IHRoZW0uXFxuYCkpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBmb3JtYXR0ZWREaWZmID0gc3RyZWFtLnRvU3RyaW5nKCk7XG4gICAgICBzdHJlYW0uZW5kKCk7XG4gICAgfVxuXG4gICAgLy8gUmVjdXJzZSBpbnRvIG5lc3RlZCBzdGFja3NcbiAgICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIG5lc3RlZFN0YWNrXSBvZiBPYmplY3QuZW50cmllcyhuZXN0ZWRTdGFja3MgPz8ge30pKSB7XG4gICAgICBjb25zdCBuZXh0RGlmZiA9IHRoaXMuZm9ybWF0U3RhY2tEaWZmSGVscGVyKHtcbiAgICAgICAgb2xkVGVtcGxhdGU6IG5lc3RlZFN0YWNrLmRlcGxveWVkVGVtcGxhdGUsXG4gICAgICAgIG5ld1RlbXBsYXRlOiBuZXN0ZWRTdGFjay5nZW5lcmF0ZWRUZW1wbGF0ZSxcbiAgICAgICAgc3RhY2tOYW1lOiBuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUgPz8gbG9naWNhbElkLFxuICAgICAgICBuZXN0ZWRTdGFja3M6IG5lc3RlZFN0YWNrLm5lc3RlZFN0YWNrVGVtcGxhdGVzLFxuICAgICAgICBjaGFuZ2VTZXQ6IG5lc3RlZFN0YWNrLmNoYW5nZVNldCxcbiAgICAgICAgbWFwcGluZ3MsXG4gICAgICAgIGxvZ2ljYWxJZE1hcDoge30sXG4gICAgICB9LCBvcHRpb25zKTtcbiAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzICs9IG5leHREaWZmLm51bVN0YWNrc1dpdGhDaGFuZ2VzO1xuICAgICAgZm9ybWF0dGVkRGlmZiArPSBuZXh0RGlmZi5mb3JtYXR0ZWREaWZmO1xuICAgIH1cblxuICAgIHJldHVybiB7IG51bVN0YWNrc1dpdGhDaGFuZ2VzLCBmb3JtYXR0ZWREaWZmIH07XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IHRoZSBzZWN1cml0eSBkaWZmLCBpbmNsdWRpbmcgYWxsIG5lc3RlZCBzdGFja3MuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0U2VjdXJpdHlEaWZmKG9wdGlvbnM6IEZvcm1hdFNlY3VyaXR5RGlmZk9wdGlvbnMgPSB7fSk6IEZvcm1hdFNlY3VyaXR5RGlmZk91dHB1dCB7XG4gICAgY29uc3QgeyBmb3JtYXR0ZWREaWZmLCBwZXJtaXNzaW9uQ2hhbmdlVHlwZSwgbnVtU3RhY2tzV2l0aENoYW5nZXMgfSA9IHRoaXMuZm9ybWF0U2VjdXJpdHlEaWZmSGVscGVyKHtcbiAgICAgIG9sZFRlbXBsYXRlOiB0aGlzLnRlbXBsYXRlSW5mby5vbGRUZW1wbGF0ZSxcbiAgICAgIG5ld1RlbXBsYXRlOiB0aGlzLnRlbXBsYXRlSW5mby5uZXdUZW1wbGF0ZS50ZW1wbGF0ZSxcbiAgICAgIHN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICBuZXN0ZWRTdGFja3M6IHRoaXMudGVtcGxhdGVJbmZvLm5lc3RlZFN0YWNrcyxcbiAgICAgIGNoYW5nZVNldDogdGhpcy50ZW1wbGF0ZUluZm8uY2hhbmdlU2V0LFxuICAgICAgbG9naWNhbElkTWFwOiBidWlsZExvZ2ljYWxUb1BhdGhNYXAodGhpcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUpLFxuICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHsgZm9ybWF0dGVkRGlmZiwgcGVybWlzc2lvbkNoYW5nZVR5cGUsIG51bVN0YWNrc1dpdGhDaGFuZ2VzIH07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFNlY3VyaXR5RGlmZkhlbHBlcihwYXJhbXM6IHtcbiAgICBvbGRUZW1wbGF0ZTogVGVtcGxhdGU7XG4gICAgbmV3VGVtcGxhdGU6IFRlbXBsYXRlO1xuICAgIHN0YWNrTmFtZTogc3RyaW5nO1xuICAgIG5lc3RlZFN0YWNrczogeyBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gfCB1bmRlZmluZWQ7XG4gICAgY2hhbmdlU2V0OiBEZXNjcmliZUNoYW5nZVNldE91dHB1dCB8IHVuZGVmaW5lZDtcbiAgICBsb2dpY2FsSWRNYXA/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICB9LCBvcHRpb25zOiBGb3JtYXRTZWN1cml0eURpZmZPcHRpb25zID0ge30pOiBGb3JtYXRTZWN1cml0eURpZmZPdXRwdXQge1xuICAgIGNvbnN0IHsgb2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBzdGFja05hbWUsIG5lc3RlZFN0YWNrcywgY2hhbmdlU2V0LCBsb2dpY2FsSWRNYXAgfSA9IHBhcmFtcztcblxuICAgIGNvbnN0IGRpZmYgPSB0aGlzLmNvbXB1dGVEaWZmKHN0YWNrTmFtZSwgb2xkVGVtcGxhdGUsIG5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQsIHRoaXMubWFwcGluZ3MpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25DaGFuZ2VUeXBlID0gcGVybWlzc2lvblR5cGVGcm9tRGlmZihkaWZmKTtcblxuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuICAgIGlmICghb3B0aW9ucy5xdWlldCB8fCBwZXJtaXNzaW9uQ2hhbmdlVHlwZSAhPT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORSkge1xuICAgICAgc3RyZWFtLndyaXRlKGZvcm1hdChgU3RhY2sgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9XFxuYCkpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBmb3JtYXRTZWN1cml0eUNoYW5nZXMoc3RyZWFtLCBkaWZmLCB7XG4gICAgICAgIC4uLmxvZ2ljYWxJZE1hcEZyb21UZW1wbGF0ZShuZXdUZW1wbGF0ZSksXG4gICAgICAgIC4uLmxvZ2ljYWxJZE1hcCxcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzdHJlYW0uZW5kKCk7XG4gICAgfVxuXG4gICAgbGV0IGZvcm1hdHRlZERpZmYgPSBzdHJlYW0udG9TdHJpbmcoKTtcbiAgICBpZiAoIW9wdGlvbnMucXVpZXQgJiYgcGVybWlzc2lvbkNoYW5nZVR5cGUgPT09IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTkUpIHtcbiAgICAgIGZvcm1hdHRlZERpZmYgKz0gY2hhbGsuZ3JlZW4oJ1RoZXJlIHdlcmUgbm8gc2VjdXJpdHktcmVsYXRlZCBjaGFuZ2VzIChsaW1pdGF0aW9uczogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMjk5KVxcbicpO1xuICAgIH1cbiAgICBsZXQgbnVtU3RhY2tzV2l0aENoYW5nZXMgPSBwZXJtaXNzaW9uQ2hhbmdlVHlwZSAhPT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORSA/IDEgOiAwO1xuICAgIGxldCBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSA9IHBlcm1pc3Npb25DaGFuZ2VUeXBlO1xuXG4gICAgLy8gUmVjdXJzZSBpbnRvIG5lc3RlZCBzdGFja3NcbiAgICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIG5lc3RlZFN0YWNrXSBvZiBPYmplY3QuZW50cmllcyhuZXN0ZWRTdGFja3MgPz8ge30pKSB7XG4gICAgICBjb25zdCBuZXN0ZWRSZXN1bHQgPSB0aGlzLmZvcm1hdFNlY3VyaXR5RGlmZkhlbHBlcih7XG4gICAgICAgIG9sZFRlbXBsYXRlOiBuZXN0ZWRTdGFjay5kZXBsb3llZFRlbXBsYXRlLFxuICAgICAgICBuZXdUZW1wbGF0ZTogbmVzdGVkU3RhY2suZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICAgICAgIHN0YWNrTmFtZTogbmVzdGVkU3RhY2sucGh5c2ljYWxOYW1lID8/IGxvZ2ljYWxJZCxcbiAgICAgICAgbmVzdGVkU3RhY2tzOiBuZXN0ZWRTdGFjay5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICAgICAgY2hhbmdlU2V0OiBuZXN0ZWRTdGFjay5jaGFuZ2VTZXQsXG4gICAgICB9LCBvcHRpb25zKTtcbiAgICAgIGZvcm1hdHRlZERpZmYgKz0gbmVzdGVkUmVzdWx0LmZvcm1hdHRlZERpZmYgPyAnXFxuJyArIG5lc3RlZFJlc3VsdC5mb3JtYXR0ZWREaWZmIDogJyc7XG4gICAgICBudW1TdGFja3NXaXRoQ2hhbmdlcyArPSBuZXN0ZWRSZXN1bHQubnVtU3RhY2tzV2l0aENoYW5nZXM7XG4gICAgICAvLyBFc2NhbGF0ZTogaWYgYW55IG5lc3RlZCBzdGFjayBicm9hZGVucyBwZXJtaXNzaW9ucywgdGhlIHdob2xlIHRoaW5nIGJyb2FkZW5zXG4gICAgICBpZiAobmVzdGVkUmVzdWx0LnBlcm1pc3Npb25DaGFuZ2VUeXBlID09PSBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5CUk9BREVOSU5HKSB7XG4gICAgICAgIGVzY2FsYXRlZFBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvbkNoYW5nZVR5cGUuQlJPQURFTklORztcbiAgICAgIH0gZWxzZSBpZiAobmVzdGVkUmVzdWx0LnBlcm1pc3Npb25DaGFuZ2VUeXBlID09PSBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5OT05fQlJPQURFTklOR1xuICAgICAgICAmJiBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSA9PT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORSkge1xuICAgICAgICBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSA9IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTl9CUk9BREVOSU5HO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGZvcm1hdHRlZERpZmYsIHBlcm1pc3Npb25DaGFuZ2VUeXBlOiBlc2NhbGF0ZWRQZXJtaXNzaW9uVHlwZSwgbnVtU3RhY2tzV2l0aENoYW5nZXMgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwZXJtaXNzaW9uVHlwZUZyb21EaWZmKGRpZmY6IFRlbXBsYXRlRGlmZik6IFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgaWYgKGRpZmYucGVybWlzc2lvbnNCcm9hZGVuZWQpIHtcbiAgICByZXR1cm4gUGVybWlzc2lvbkNoYW5nZVR5cGUuQlJPQURFTklORztcbiAgfSBlbHNlIGlmIChkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcykge1xuICAgIHJldHVybiBQZXJtaXNzaW9uQ2hhbmdlVHlwZS5OT05fQlJPQURFTklORztcbiAgfVxuICByZXR1cm4gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMb2dpY2FsVG9QYXRoTWFwKHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpIHtcbiAgY29uc3QgbWFwOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgZm9yIChjb25zdCBtZCBvZiBzdGFjay5maW5kTWV0YWRhdGFCeVR5cGUoY3hzY2hlbWEuQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5MT0dJQ0FMX0lEKSkge1xuICAgIG1hcFttZC5kYXRhIGFzIHN0cmluZ10gPSBtZC5wYXRoO1xuICB9XG4gIHJldHVybiBtYXA7XG59XG5cbmZ1bmN0aW9uIGxvZ2ljYWxJZE1hcEZyb21UZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGUpIHtcbiAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgZm9yIChjb25zdCBbbG9naWNhbElkLCByZXNvdXJjZV0gb2YgT2JqZWN0LmVudHJpZXMoKHRlbXBsYXRlLlJlc291cmNlcyA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgYW55PikpIHtcbiAgICBjb25zdCBwYXRoID0gcmVzb3VyY2U/Lk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddO1xuICAgIGlmIChwYXRoKSB7XG4gICAgICByZXRbbG9naWNhbElkXSA9IHBhdGg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGFueSB0ZW1wbGF0ZSBlbGVtZW50cyB0aGF0IHdlIGRvbid0IHdhbnQgdG8gc2hvdyB1c2Vycy5cbiAqIFRoaXMgaXMgY3VycmVudGx5OlxuICogLSBBV1M6OkNESzo6TWV0YWRhdGEgcmVzb3VyY2VcbiAqIC0gQ2hlY2tCb290c3RyYXBWZXJzaW9uIFJ1bGVcbiAqL1xuZnVuY3Rpb24gb2JzY3VyZURpZmYoZGlmZjogVGVtcGxhdGVEaWZmKSB7XG4gIGlmIChkaWZmLnVua25vd24pIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNzk0MlxuICAgIGRpZmYudW5rbm93biA9IGRpZmYudW5rbm93bi5maWx0ZXIoY2hhbmdlID0+IHtcbiAgICAgIGlmICghY2hhbmdlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZS5uZXdWYWx1ZT8uQ2hlY2tCb290c3RyYXBWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2Uub2xkVmFsdWU/LkNoZWNrQm9vdHN0cmFwVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChkaWZmLnJlc291cmNlcykge1xuICAgIGRpZmYucmVzb3VyY2VzID0gZGlmZi5yZXNvdXJjZXMuZmlsdGVyKGNoYW5nZSA9PiB7XG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2UubmV3UmVzb3VyY2VUeXBlID09PSAnQVdTOjpDREs6Ok1ldGFkYXRhJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlLm9sZFJlc291cmNlVHlwZSA9PT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./diff-formatter\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWZmLWZvcm1hdHRlcic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DriftFormatter = void 0;\nconst node_util_1 = require(\"node:util\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\nconst chalk = require(\"chalk\");\n/**\n * Class for formatting drift detection output\n */\nclass DriftFormatter {\n stackName;\n stack;\n resourceDriftResults;\n allStackResources;\n constructor(props) {\n this.stack = props.stack;\n this.stackName = props.stack.displayName ?? props.stack.stackName;\n this.resourceDriftResults = props.resourceDrifts;\n this.allStackResources = new Map();\n Object.keys(this.stack.template.Resources || {}).forEach(id => {\n const resource = this.stack.template.Resources[id];\n // always ignore the metadata resource\n if (resource.Type === 'AWS::CDK::Metadata') {\n return;\n }\n this.allStackResources.set(id, resource.Type);\n });\n }\n /**\n * Format the stack drift detection results\n */\n formatStackDrift() {\n const formatterOutput = this.formatStackDriftChanges(this.buildLogicalToPathMap());\n // we are only interested in actual drifts (and ignore the metadata resource)\n const actualDrifts = this.resourceDriftResults.filter(d => (d.StackResourceDriftStatus === 'MODIFIED' || d.StackResourceDriftStatus === 'DELETED')\n && d.ResourceType !== 'AWS::CDK::Metadata');\n // must output the stack name if there are drifts\n const stackHeader = (0, node_util_1.format)(`Stack ${chalk.bold(this.stackName)}\\n`);\n if (actualDrifts.length === 0) {\n const finalResult = chalk.green('No drift detected\\n');\n return {\n numResourcesWithDrift: 0,\n numResourcesUnchecked: this.allStackResources.size - this.resourceDriftResults.length,\n stackHeader,\n unchecked: formatterOutput.unchecked,\n summary: finalResult,\n };\n }\n const finalResult = chalk.yellow(`\\n${actualDrifts.length} resource${actualDrifts.length === 1 ? '' : 's'} ${actualDrifts.length === 1 ? 'has' : 'have'} drifted from their expected configuration\\n`);\n return {\n numResourcesWithDrift: actualDrifts.length,\n numResourcesUnchecked: this.allStackResources.size - this.resourceDriftResults.length,\n stackHeader,\n unchanged: formatterOutput.unchanged,\n unchecked: formatterOutput.unchecked,\n modified: formatterOutput.modified,\n deleted: formatterOutput.deleted,\n summary: finalResult,\n };\n }\n buildLogicalToPathMap() {\n const map = {};\n for (const md of this.stack.findMetadataByType(cxschema.ArtifactMetadataEntryType.LOGICAL_ID)) {\n map[md.data] = md.path;\n }\n return map;\n }\n /**\n * Renders stack drift information\n *\n * @param logicalToPathMap - A map from logical ID to construct path\n */\n formatStackDriftChanges(logicalToPathMap = {}) {\n if (this.resourceDriftResults.length === 0) {\n return {};\n }\n let unchanged;\n let unchecked;\n let modified;\n let deleted;\n const drifts = this.resourceDriftResults;\n // Process unchanged resources\n const unchangedResources = drifts.filter(d => d.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.IN_SYNC);\n if (unchangedResources.length > 0) {\n unchanged = this.printSectionHeader('Resources In Sync');\n for (const drift of unchangedResources) {\n if (!drift.LogicalResourceId || !drift.ResourceType)\n continue;\n unchanged += `${CONTEXT} ${chalk.cyan(drift.ResourceType)} ${this.formatLogicalId(logicalToPathMap, drift.LogicalResourceId)}\\n`;\n }\n unchanged += this.printSectionFooter();\n }\n // Process all unchecked and unknown resources\n const uncheckedResources = Array.from(this.allStackResources.keys()).filter((logicalId) => {\n const drift = drifts.find((d) => d.LogicalResourceId === logicalId);\n return !drift || drift.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.UNKNOWN;\n });\n if (uncheckedResources.length > 0) {\n unchecked = this.printSectionHeader('Unchecked Resources');\n for (const logicalId of uncheckedResources) {\n const resourceType = this.allStackResources.get(logicalId);\n unchecked += `${CONTEXT} ${chalk.cyan(resourceType)} ${this.formatLogicalId(logicalToPathMap, logicalId)}\\n`;\n }\n unchecked += this.printSectionFooter();\n }\n // Process modified resources (exclude AWS::CDK::Metadata)\n const modifiedResources = drifts.filter(d => d.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.MODIFIED\n && d.ResourceType !== 'AWS::CDK::Metadata');\n if (modifiedResources.length > 0) {\n modified = this.printSectionHeader('Modified Resources');\n for (const drift of modifiedResources) {\n if (!drift.LogicalResourceId || !drift.ResourceType)\n continue;\n modified += `${UPDATE} ${chalk.cyan(drift.ResourceType)} ${this.formatLogicalId(logicalToPathMap, drift.LogicalResourceId)}\\n`;\n if (drift.PropertyDifferences) {\n const propDiffs = drift.PropertyDifferences;\n for (let i = 0; i < propDiffs.length; i++) {\n const diff = propDiffs[i];\n if (!diff.PropertyPath)\n continue;\n const difference = new cloudformation_diff_1.Difference(diff.ExpectedValue, diff.ActualValue);\n modified += this.formatTreeDiff(diff.PropertyPath, difference, i === propDiffs.length - 1);\n }\n }\n }\n modified += this.printSectionFooter();\n }\n // Process deleted resources (exclude AWS::CDK::Metadata)\n const deletedResources = drifts.filter(d => d.StackResourceDriftStatus === client_cloudformation_1.StackResourceDriftStatus.DELETED\n && d.ResourceType !== 'AWS::CDK::Metadata');\n if (deletedResources.length > 0) {\n deleted = this.printSectionHeader('Deleted Resources');\n for (const drift of deletedResources) {\n if (!drift.LogicalResourceId || !drift.ResourceType)\n continue;\n deleted += `${REMOVAL} ${chalk.cyan(drift.ResourceType)} ${this.formatLogicalId(logicalToPathMap, drift.LogicalResourceId)}\\n`;\n }\n deleted += this.printSectionFooter();\n }\n return { unchanged, unchecked, modified, deleted };\n }\n formatLogicalId(logicalToPathMap, logicalId) {\n const path = logicalToPathMap[logicalId];\n if (!path)\n return logicalId;\n let normalizedPath = path;\n if (normalizedPath.startsWith('/')) {\n normalizedPath = normalizedPath.slice(1);\n }\n let parts = normalizedPath.split('/');\n if (parts.length > 1) {\n parts = parts.slice(1);\n // remove the last component if it's \"Resource\" or \"Default\" (if we have more than a single component)\n if (parts.length > 1) {\n const last = parts[parts.length - 1];\n if (last === 'Resource' || last === 'Default') {\n parts = parts.slice(0, parts.length - 1);\n }\n }\n normalizedPath = parts.join('/');\n }\n return `${normalizedPath} ${chalk.gray(logicalId)}`;\n }\n printSectionHeader(title) {\n return `${chalk.underline(chalk.bold(title))}\\n`;\n }\n printSectionFooter() {\n return '\\n';\n }\n formatTreeDiff(propertyPath, difference, isLast) {\n let result = (0, node_util_1.format)(' %s─ %s %s\\n', isLast ? '└' : '├', difference.isAddition ? ADDITION :\n difference.isRemoval ? REMOVAL :\n UPDATE, propertyPath);\n if (difference.isUpdate) {\n result += (0, node_util_1.format)(' ├─ %s %s\\n', REMOVAL, chalk.red(difference.oldValue));\n result += (0, node_util_1.format)(' └─ %s %s\\n', ADDITION, chalk.green(difference.newValue));\n }\n return result;\n }\n}\nexports.DriftFormatter = DriftFormatter;\nconst ADDITION = chalk.green('[+]');\nconst CONTEXT = chalk.grey('[ ]');\nconst UPDATE = chalk.yellow('[~]');\nconst REMOVAL = chalk.red('[-]');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZHJpZnQtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFtQztBQUVuQywyREFBMkQ7QUFDM0Qsc0VBQTBEO0FBRTFELDBFQUEwRTtBQUMxRSwrQkFBK0I7QUE4RC9COztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBQ1QsU0FBUyxDQUFTO0lBRWpCLEtBQUssQ0FBb0M7SUFDekMsb0JBQW9CLENBQXVCO0lBQzNDLGlCQUFpQixDQUFzQjtJQUV4RCxZQUFZLEtBQTBCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBRWpELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELHNDQUFzQztZQUN0QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztnQkFDM0MsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09B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QUFDLENBQUM7QUFDcEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IERpZmZlcmVuY2UgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSZXNvdXJjZURyaWZ0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEZvcm1hdHRlZERyaWZ0IH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9kcmlmdCc7XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBEcmlmdCBGb3JtYXR0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcmlmdEZvcm1hdHRlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhcnRpZmFjdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogVGhlIHJlc3VsdHMgb2Ygc3RhY2sgZHJpZnQgZGV0ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZURyaWZ0czogU3RhY2tSZXNvdXJjZURyaWZ0W107XG59XG5cbmludGVyZmFjZSBEcmlmdEZvcm1hdHRlck91dHB1dCB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcmVzb3VyY2VzIHdpdGggZHJpZnQuIElmIHVuZGVmaW5lZCwgdGhlbiBhbiBlcnJvciBvY2N1cnJlZFxuICAgKiBhbmQgcmVzb3VyY2VzIHdlcmUgbm90IHByb3Blcmx5IGNoZWNrZWQgZm9yIGRyaWZ0LlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtUmVzb3VyY2VzV2l0aERyaWZ0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IHJlc291cmNlcyB3ZXJlIG5vdCBjaGVja2VkIGZvciBkcmlmdC4gSWYgdW5kZWZpbmVkLCB0aGVuIGFuXG4gICAqIGVycm9yIG9jY3VycmVkIGFuZCByZXNvdXJjZXMgd2VyZSBub3QgcHJvcGVybHkgY2hlY2tlZCBmb3IgZHJpZnQuXG4gICAqL1xuICByZWFkb25seSBudW1SZXNvdXJjZXNVbmNoZWNrZWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHRoYXQgaGF2ZSBub3QgY2hhbmdlZFxuICAgKi9cbiAgcmVhZG9ubHkgdW5jaGFuZ2VkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCB3ZXJlIG5vdCBjaGVja2VkIGZvciBkcmlmdCBvciBoYXZlIGFuIFVOS05PV04gZHJpZnQgc3RhdHVzXG4gICAqL1xuICByZWFkb25seSB1bmNoZWNrZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB3aXRoIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSBtb2RpZmllZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQgKGRyaWZ0KVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhlYWRlciwgY29udGFpbmluZyB0aGUgc3RhY2sgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tIZWFkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbmFsIHJlc3VsdHMgKHN1bW1hcnkpIG9mIHRoZSBkcmlmdCByZXN1bHRzXG4gICAqL1xuICByZWFkb25seSBzdW1tYXJ5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2xhc3MgZm9yIGZvcm1hdHRpbmcgZHJpZnQgZGV0ZWN0aW9uIG91dHB1dFxuICovXG5leHBvcnQgY2xhc3MgRHJpZnRGb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlRHJpZnRSZXN1bHRzOiBTdGFja1Jlc291cmNlRHJpZnRbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxTdGFja1Jlc291cmNlczogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogRHJpZnRGb3JtYXR0ZXJQcm9wcykge1xuICAgIHRoaXMuc3RhY2sgPSBwcm9wcy5zdGFjaztcbiAgICB0aGlzLnN0YWNrTmFtZSA9IHByb3BzLnN0YWNrLmRpc3BsYXlOYW1lID8/IHByb3BzLnN0YWNrLnN0YWNrTmFtZTtcbiAgICB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzID0gcHJvcHMucmVzb3VyY2VEcmlmdHM7XG5cbiAgICB0aGlzLmFsbFN0YWNrUmVzb3VyY2VzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLnN0YWNrLnRlbXBsYXRlLlJlc291cmNlcyB8fCB7fSkuZm9yRWFjaChpZCA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMuc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzW2lkXTtcbiAgICAgIC8vIGFsd2F5cyBpZ25vcmUgdGhlIG1ldGFkYXRhIHJlc291cmNlXG4gICAgICBpZiAocmVzb3VyY2UuVHlwZSA9PT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hbGxTdGFja1Jlc291cmNlcy5zZXQoaWQsIHJlc291cmNlLlR5cGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgc3RhY2sgZHJpZnQgZGV0ZWN0aW9uIHJlc3VsdHNcbiAgICovXG4gIHB1YmxpYyBmb3JtYXRTdGFja0RyaWZ0KCk6IERyaWZ0Rm9ybWF0dGVyT3V0cHV0IHtcbiAgICBjb25zdCBmb3JtYXR0ZXJPdXRwdXQgPSB0aGlzLmZvcm1hdFN0YWNrRHJpZnRDaGFuZ2VzKHRoaXMuYnVpbGRMb2dpY2FsVG9QYXRoTWFwKCkpO1xuXG4gICAgLy8gd2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBhY3R1YWwgZHJpZnRzIChhbmQgaWdub3JlIHRoZSBtZXRhZGF0YSByZXNvdXJjZSlcbiAgICBjb25zdCBhY3R1YWxEcmlmdHMgPSB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzLmZpbHRlcihkID0+XG4gICAgICAoZC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09ICdNT0RJRklFRCcgfHwgZC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09ICdERUxFVEVEJylcbiAgICAgICYmIGQuUmVzb3VyY2VUeXBlICE9PSAnQVdTOjpDREs6Ok1ldGFkYXRhJyk7XG5cbiAgICAvLyBtdXN0IG91dHB1dCB0aGUgc3RhY2sgbmFtZSBpZiB0aGVyZSBhcmUgZHJpZnRzXG4gICAgY29uc3Qgc3RhY2tIZWFkZXIgPSBmb3JtYXQoYFN0YWNrICR7Y2hhbGsuYm9sZCh0aGlzLnN0YWNrTmFtZSl9XFxuYCk7XG5cbiAgICBpZiAoYWN0dWFsRHJpZnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgZmluYWxSZXN1bHQgPSBjaGFsay5ncmVlbignTm8gZHJpZnQgZGV0ZWN0ZWRcXG4nKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG51bVJlc291cmNlc1dpdGhEcmlmdDogMCxcbiAgICAgICAgbnVtUmVzb3VyY2VzVW5jaGVja2VkOiB0aGlzLmFsbFN0YWNrUmVzb3VyY2VzLnNpemUgLSB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzLmxlbmd0aCxcbiAgICAgICAgc3RhY2tIZWFkZXIsXG4gICAgICAgIHVuY2hlY2tlZDogZm9ybWF0dGVyT3V0cHV0LnVuY2hlY2tlZCxcbiAgICAgICAgc3VtbWFyeTogZmluYWxSZXN1bHQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmFsUmVzdWx0ID0gY2hhbGsueWVsbG93KGBcXG4ke2FjdHVhbERyaWZ0cy5sZW5ndGh9IHJlc291cmNlJHthY3R1YWxEcmlmdHMubGVuZ3RoID09PSAxID8gJycgOiAncyd9ICR7YWN0dWFsRHJpZnRzLmxlbmd0aCA9PT0gMSA/ICdoYXMnIDogJ2hhdmUnfSBkcmlmdGVkIGZyb20gdGhlaXIgZXhwZWN0ZWQgY29uZmlndXJhdGlvblxcbmApO1xuICAgIHJldHVybiB7XG4gICAgICBudW1SZXNvdXJjZXNXaXRoRHJpZnQ6IGFjdHVhbERyaWZ0cy5sZW5ndGgsXG4gICAgICBudW1SZXNvdXJjZXNVbmNoZWNrZWQ6IHRoaXMuYWxsU3RhY2tSZXNvdXJjZXMuc2l6ZSAtIHRoaXMucmVzb3VyY2VEcmlmdFJlc3VsdHMubGVuZ3RoLFxuICAgICAgc3RhY2tIZWFkZXIsXG4gICAgICB1bmNoYW5nZWQ6IGZvcm1hdHRlck91dHB1dC51bmNoYW5nZWQsXG4gICAgICB1bmNoZWNrZWQ6IGZvcm1hdHRlck91dHB1dC51bmNoZWNrZWQsXG4gICAgICBtb2RpZmllZDogZm9ybWF0dGVyT3V0cHV0Lm1vZGlmaWVkLFxuICAgICAgZGVsZXRlZDogZm9ybWF0dGVyT3V0cHV0LmRlbGV0ZWQsXG4gICAgICBzdW1tYXJ5OiBmaW5hbFJlc3VsdCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExvZ2ljYWxUb1BhdGhNYXAoKSB7XG4gICAgY29uc3QgbWFwOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IG1kIG9mIHRoaXMuc3RhY2suZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRCkpIHtcbiAgICAgIG1hcFttZC5kYXRhIGFzIHN0cmluZ10gPSBtZC5wYXRoO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgc3RhY2sgZHJpZnQgaW5mb3JtYXRpb25cbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxUb1BhdGhNYXAgLSBBIG1hcCBmcm9tIGxvZ2ljYWwgSUQgdG8gY29uc3RydWN0IHBhdGhcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0U3RhY2tEcmlmdENoYW5nZXMoXG4gICAgbG9naWNhbFRvUGF0aE1hcDogeyBbbG9naWNhbElkOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9KTogRm9ybWF0dGVkRHJpZnQge1xuICAgIGlmICh0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGxldCB1bmNoYW5nZWQ7XG4gICAgbGV0IHVuY2hlY2tlZDtcbiAgICBsZXQgbW9kaWZpZWQ7XG4gICAgbGV0IGRlbGV0ZWQ7XG5cbiAgICBjb25zdCBkcmlmdHMgPSB0aGlzLnJlc291cmNlRHJpZnRSZXN1bHRzO1xuXG4gICAgLy8gUHJvY2VzcyB1bmNoYW5nZWQgcmVzb3VyY2VzXG4gICAgY29uc3QgdW5jaGFuZ2VkUmVzb3VyY2VzID0gZHJpZnRzLmZpbHRlcihkID0+IGQuU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzID09PSBTdGFja1Jlc291cmNlRHJpZnRTdGF0dXMuSU5fU1lOQyk7XG4gICAgaWYgKHVuY2hhbmdlZFJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICB1bmNoYW5nZWQgPSB0aGlzLnByaW50U2VjdGlvbkhlYWRlcignUmVzb3VyY2VzIEluIFN5bmMnKTtcblxuICAgICAgZm9yIChjb25zdCBkcmlmdCBvZiB1bmNoYW5nZWRSZXNvdXJjZXMpIHtcbiAgICAgICAgaWYgKCFkcmlmdC5Mb2dpY2FsUmVzb3VyY2VJZCB8fCAhZHJpZnQuUmVzb3VyY2VUeXBlKSBjb250aW51ZTtcbiAgICAgICAgdW5jaGFuZ2VkICs9IGAke0NPTlRFWFR9ICR7Y2hhbGsuY3lhbihkcmlmdC5SZXNvdXJjZVR5cGUpfSAke3RoaXMuZm9ybWF0TG9naWNhbElkKGxvZ2ljYWxUb1BhdGhNYXAsIGRyaWZ0LkxvZ2ljYWxSZXNvdXJjZUlkKX1cXG5gO1xuICAgICAgfVxuICAgICAgdW5jaGFuZ2VkICs9IHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBhbGwgdW5jaGVja2VkIGFuZCB1bmtub3duIHJlc291cmNlc1xuICAgIGNvbnN0IHVuY2hlY2tlZFJlc291cmNlcyA9IEFycmF5LmZyb20odGhpcy5hbGxTdGFja1Jlc291cmNlcy5rZXlzKCkpLmZpbHRlcigobG9naWNhbElkKSA9PiB7XG4gICAgICBjb25zdCBkcmlmdCA9IGRyaWZ0cy5maW5kKChkKSA9PiBkLkxvZ2ljYWxSZXNvdXJjZUlkID09PSBsb2dpY2FsSWQpO1xuICAgICAgcmV0dXJuICFkcmlmdCB8fCBkcmlmdC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09IFN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cy5VTktOT1dOO1xuICAgIH0pO1xuICAgIGlmICh1bmNoZWNrZWRSZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgdW5jaGVja2VkID0gdGhpcy5wcmludFNlY3Rpb25IZWFkZXIoJ1VuY2hlY2tlZCBSZXNvdXJjZXMnKTtcbiAgICAgIGZvciAoY29uc3QgbG9naWNhbElkIG9mIHVuY2hlY2tlZFJlc291cmNlcykge1xuICAgICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSB0aGlzLmFsbFN0YWNrUmVzb3VyY2VzLmdldChsb2dpY2FsSWQpO1xuICAgICAgICB1bmNoZWNrZWQgKz0gYCR7Q09OVEVYVH0gJHtjaGFsay5jeWFuKHJlc291cmNlVHlwZSl9ICR7dGhpcy5mb3JtYXRMb2dpY2FsSWQobG9naWNhbFRvUGF0aE1hcCwgbG9naWNhbElkKX1cXG5gO1xuICAgICAgfVxuICAgICAgdW5jaGVja2VkICs9IHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBtb2RpZmllZCByZXNvdXJjZXMgKGV4Y2x1ZGUgQVdTOjpDREs6Ok1ldGFkYXRhKVxuICAgIGNvbnN0IG1vZGlmaWVkUmVzb3VyY2VzID0gZHJpZnRzLmZpbHRlcihkID0+XG4gICAgICBkLlN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyA9PT0gU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzLk1PRElGSUVEXG4gICAgICAmJiBkLlJlc291cmNlVHlwZSAhPT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpO1xuICAgIGlmIChtb2RpZmllZFJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBtb2RpZmllZCA9IHRoaXMucHJpbnRTZWN0aW9uSGVhZGVyKCdNb2RpZmllZCBSZXNvdXJjZXMnKTtcblxuICAgICAgZm9yIChjb25zdCBkcmlmdCBvZiBtb2RpZmllZFJlc291cmNlcykge1xuICAgICAgICBpZiAoIWRyaWZ0LkxvZ2ljYWxSZXNvdXJjZUlkIHx8ICFkcmlmdC5SZXNvdXJjZVR5cGUpIGNvbnRpbnVlO1xuICAgICAgICBtb2RpZmllZCArPSBgJHtVUERBVEV9ICR7Y2hhbGsuY3lhbihkcmlmdC5SZXNvdXJjZVR5cGUpfSAke3RoaXMuZm9ybWF0TG9naWNhbElkKGxvZ2ljYWxUb1BhdGhNYXAsIGRyaWZ0LkxvZ2ljYWxSZXNvdXJjZUlkKX1cXG5gO1xuICAgICAgICBpZiAoZHJpZnQuUHJvcGVydHlEaWZmZXJlbmNlcykge1xuICAgICAgICAgIGNvbnN0IHByb3BEaWZmcyA9IGRyaWZ0LlByb3BlcnR5RGlmZmVyZW5jZXM7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wRGlmZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBwcm9wRGlmZnNbaV07XG4gICAgICAgICAgICBpZiAoIWRpZmYuUHJvcGVydHlQYXRoKSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBuZXcgRGlmZmVyZW5jZShkaWZmLkV4cGVjdGVkVmFsdWUsIGRpZmYuQWN0dWFsVmFsdWUpO1xuICAgICAgICAgICAgbW9kaWZpZWQgKz0gdGhpcy5mb3JtYXRUcmVlRGlmZihkaWZmLlByb3BlcnR5UGF0aCwgZGlmZmVyZW5jZSwgaSA9PT0gcHJvcERpZmZzLmxlbmd0aCAtIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbW9kaWZpZWQgKz0gdGhpcy5wcmludFNlY3Rpb25Gb290ZXIoKTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIGRlbGV0ZWQgcmVzb3VyY2VzIChleGNsdWRlIEFXUzo6Q0RLOjpNZXRhZGF0YSlcbiAgICBjb25zdCBkZWxldGVkUmVzb3VyY2VzID0gZHJpZnRzLmZpbHRlcihkID0+XG4gICAgICBkLlN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyA9PT0gU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzLkRFTEVURURcbiAgICAgICYmIGQuUmVzb3VyY2VUeXBlICE9PSAnQVdTOjpDREs6Ok1ldGFkYXRhJyk7XG4gICAgaWYgKGRlbGV0ZWRSZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgZGVsZXRlZCA9IHRoaXMucHJpbnRTZWN0aW9uSGVhZGVyKCdEZWxldGVkIFJlc291cmNlcycpO1xuICAgICAgZm9yIChjb25zdCBkcmlmdCBvZiBkZWxldGVkUmVzb3VyY2VzKSB7XG4gICAgICAgIGlmICghZHJpZnQuTG9naWNhbFJlc291cmNlSWQgfHwgIWRyaWZ0LlJlc291cmNlVHlwZSkgY29udGludWU7XG4gICAgICAgIGRlbGV0ZWQgKz0gYCR7UkVNT1ZBTH0gJHtjaGFsay5jeWFuKGRyaWZ0LlJlc291cmNlVHlwZSl9ICR7dGhpcy5mb3JtYXRMb2dpY2FsSWQobG9naWNhbFRvUGF0aE1hcCwgZHJpZnQuTG9naWNhbFJlc291cmNlSWQpfVxcbmA7XG4gICAgICB9XG4gICAgICBkZWxldGVkICs9IHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgdW5jaGFuZ2VkLCB1bmNoZWNrZWQsIG1vZGlmaWVkLCBkZWxldGVkIH07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdExvZ2ljYWxJZChsb2dpY2FsVG9QYXRoTWFwOiB7IFtsb2dpY2FsSWQ6IHN0cmluZ106IHN0cmluZyB9LCBsb2dpY2FsSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGF0aCA9IGxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXTtcbiAgICBpZiAoIXBhdGgpIHJldHVybiBsb2dpY2FsSWQ7XG5cbiAgICBsZXQgbm9ybWFsaXplZFBhdGggPSBwYXRoO1xuICAgIGlmIChub3JtYWxpemVkUGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgIG5vcm1hbGl6ZWRQYXRoID0gbm9ybWFsaXplZFBhdGguc2xpY2UoMSk7XG4gICAgfVxuXG4gICAgbGV0IHBhcnRzID0gbm9ybWFsaXplZFBhdGguc3BsaXQoJy8nKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgcGFydHMgPSBwYXJ0cy5zbGljZSgxKTtcblxuICAgICAgLy8gcmVtb3ZlIHRoZSBsYXN0IGNvbXBvbmVudCBpZiBpdCdzIFwiUmVzb3VyY2VcIiBvciBcIkRlZmF1bHRcIiAoaWYgd2UgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgY29tcG9uZW50KVxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbGFzdCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAobGFzdCA9PT0gJ1Jlc291cmNlJyB8fCBsYXN0ID09PSAnRGVmYXVsdCcpIHtcbiAgICAgICAgICBwYXJ0cyA9IHBhcnRzLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5vcm1hbGl6ZWRQYXRoID0gcGFydHMuam9pbignLycpO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtub3JtYWxpemVkUGF0aH0gJHtjaGFsay5ncmF5KGxvZ2ljYWxJZCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgcHJpbnRTZWN0aW9uSGVhZGVyKHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtjaGFsay51bmRlcmxpbmUoY2hhbGsuYm9sZCh0aXRsZSkpfVxcbmA7XG4gIH1cblxuICBwcml2YXRlIHByaW50U2VjdGlvbkZvb3RlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnXFxuJztcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VHJlZURpZmYocHJvcGVydHlQYXRoOiBzdHJpbmcsIGRpZmZlcmVuY2U6IERpZmZlcmVuY2U8c3RyaW5nPiwgaXNMYXN0OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gZm9ybWF0KCcgJXPilIAgJXMgJXNcXG4nLCBpc0xhc3QgPyAn4pSUJyA6ICfilJwnLFxuICAgICAgZGlmZmVyZW5jZS5pc0FkZGl0aW9uID8gQURESVRJT04gOlxuICAgICAgICBkaWZmZXJlbmNlLmlzUmVtb3ZhbCA/IFJFTU9WQUwgOlxuICAgICAgICAgIFVQREFURSxcbiAgICAgIHByb3BlcnR5UGF0aCxcbiAgICApO1xuICAgIGlmIChkaWZmZXJlbmNlLmlzVXBkYXRlKSB7XG4gICAgICByZXN1bHQgKz0gZm9ybWF0KCcgICAgIOKUnOKUgCAlcyAlc1xcbicsIFJFTU9WQUwsIGNoYWxrLnJlZChkaWZmZXJlbmNlLm9sZFZhbHVlKSk7XG4gICAgICByZXN1bHQgKz0gZm9ybWF0KCcgICAgIOKUlOKUgCAlcyAlc1xcbicsIEFERElUSU9OLCBjaGFsay5ncmVlbihkaWZmZXJlbmNlLm5ld1ZhbHVlKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY29uc3QgQURESVRJT04gPSBjaGFsay5ncmVlbignWytdJyk7XG5jb25zdCBDT05URVhUID0gY2hhbGsuZ3JleSgnWyBdJyk7XG5jb25zdCBVUERBVEUgPSBjaGFsay55ZWxsb3coJ1t+XScpO1xuY29uc3QgUkVNT1ZBTCA9IGNoYWxrLnJlZCgnWy1dJyk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.detectStackDrift = detectStackDrift;\nconst node_util_1 = require(\"node:util\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst string_manipulation_1 = require(\"../../util/string-manipulation\");\n/**\n * Detect drift for a CloudFormation stack and wait for the detection to complete\n *\n * @param cfn - a CloudFormation client\n * @param ioHelper - helper for IO operations\n * @param stackName - the name of the stack to check for drift\n * @returns the CloudFormation description of the drift detection results\n */\nasync function detectStackDrift(cfn, ioHelper, stackName) {\n // Start drift detection\n const driftDetection = await cfn.detectStackDrift({\n StackName: stackName,\n });\n await ioHelper.defaults.trace((0, node_util_1.format)('Detecting drift with ID %s for stack %s...', driftDetection.StackDriftDetectionId, stackName));\n // Wait for drift detection to complete\n const driftStatus = await waitForDriftDetection(cfn, ioHelper, driftDetection.StackDriftDetectionId);\n // Handle UNKNOWN stack drift status\n if (driftStatus?.StackDriftStatus === 'UNKNOWN') {\n await ioHelper.defaults.trace('Stack drift status is UNKNOWN. This may occur when CloudFormation is unable to detect drift for at least one resource and all other resources are IN_SYNC.\\n' +\n `Reason: ${(0, string_manipulation_1.formatReason)(driftStatus.DetectionStatusReason)}`);\n }\n // Get the drift results, including resources with UNKNOWN status\n const driftResults = await cfn.describeStackResourceDrifts({\n StackName: stackName,\n });\n // Log warning for any resources with UNKNOWN status\n const unknownResources = driftResults.StackResourceDrifts?.filter(drift => drift.StackResourceDriftStatus === 'UNKNOWN');\n if (unknownResources && unknownResources.length > 0) {\n await ioHelper.defaults.trace('Some resources have UNKNOWN drift status. This may be due to insufficient permissions or throttling:\\n' +\n unknownResources.map(r => ` - ${r.LogicalResourceId}: ${(0, string_manipulation_1.formatReason)(r.DriftStatusReason)}`).join('\\n'));\n }\n return driftResults;\n}\n/**\n * Wait for a drift detection operation to complete\n */\nasync function waitForDriftDetection(cfn, ioHelper, driftDetectionId) {\n const maxWaitForDrift = 300_000; // if takes longer than 5min, fail\n const timeBetweenOutputs = 10_000; // how long to wait before telling user we're still checking\n const timeBetweenApiCalls = 2_000; // wait 2s per API call\n const deadline = Date.now() + maxWaitForDrift;\n let checkIn = Date.now() + timeBetweenOutputs;\n while (true) {\n const response = await cfn.describeStackDriftDetectionStatus({\n StackDriftDetectionId: driftDetectionId,\n });\n if (response.DetectionStatus === 'DETECTION_COMPLETE') {\n return response;\n }\n if (response.DetectionStatus === 'DETECTION_FAILED') {\n throw new toolkit_error_1.ToolkitError('DriftDetectionFailed', `Drift detection failed: ${(0, string_manipulation_1.formatReason)(response.DetectionStatusReason)}`);\n }\n if (Date.now() > deadline) {\n throw new toolkit_error_1.ToolkitError('DriftDetectionTimeout', `Drift detection failed: Timed out after ${maxWaitForDrift / 1000} seconds.`);\n }\n if (Date.now() > checkIn) {\n await ioHelper.defaults.trace('Waiting for drift detection to complete...');\n checkIn = Date.now() + timeBetweenOutputs;\n }\n // Wait a short while between API calls so we don't create a flood\n await new Promise(resolve => setTimeout(resolve, timeBetweenApiCalls));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkcmlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWVBLDRDQTZDQztBQTVERCx5Q0FBbUM7QUFFbkMsK0RBQTJEO0FBQzNELHdFQUE4RDtBQUk5RDs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxHQUEwQixFQUMxQixRQUFrQixFQUNsQixTQUFpQjtJQUVqQix3QkFBd0I7SUFDeEIsTUFBTSxjQUFjLEdBQUcsTUFBTSxHQUFHLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsU0FBUyxFQUFFLFNBQVM7S0FDckIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FDM0IsSUFBQSxrQkFBTSxFQUFDLDRDQUE0QyxFQUFFLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FDdEcsQ0FBQztJQUVGLHVDQUF1QztJQUN2QyxNQUFNLFdBQVcsR0FBRyxNQUFNLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLHFCQUFzQixDQUFDLENBQUM7SUFFdEcsb0NBQW9DO0lBQ3BDLElBQUksV0FBVyxFQUFFLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQzNCLDhKQUE4SjtZQUM5SixXQUFXLElBQUEsa0NBQVksRUFBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxNQUFNLFlBQVksR0FBRyxNQUFNLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztRQUN6RCxTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDLENBQUM7SUFFSCxvREFBb0Q7SUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUMvRCxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsS0FBSyxTQUFTLENBQ3RELENBQUM7SUFFRixJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUMzQix3R0FBd0c7WUFDeEcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3ZCLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixLQUFLLElBQUEsa0NBQVksRUFBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUNuRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxxQkFBcUIsQ0FDbEMsR0FBMEIsRUFDMUIsUUFBa0IsRUFDbEIsZ0JBQXdCO0lBRXhCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGtDQUFrQztJQUNuRSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLDREQUE0RDtJQUMvRixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxDQUFDLHVCQUF1QjtJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsZUFBZSxDQUFDO0lBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztJQUU5QyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsaUNBQWlDLENBQUM7WUFDM0QscUJBQXFCLEVBQUUsZ0JBQWdCO1NBQ3hDLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLGVBQWUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3RELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxlQUFlLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUNwRCxNQUFNLElBQUksNEJBQVksQ0FBQyxzQkFBc0IsRUFBRSwyQkFBMkIsSUFBQSxrQ0FBWSxFQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1SCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLDRCQUFZLENBQUMsdUJBQXVCLEVBQUUsMkNBQTJDLGVBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBQ2hJLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDNUUsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztRQUM1QyxDQUFDO1FBRUQsa0VBQWtFO1FBQ2xFLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgdHlwZSB7IERlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1c0NvbW1hbmRPdXRwdXQsIERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdFJlYXNvbiB9IGZyb20gJy4uLy4uL3V0aWwvc3RyaW5nLW1hbmlwdWxhdGlvbic7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEZvcm1hdGlvbkNsaWVudCB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG4vKipcbiAqIERldGVjdCBkcmlmdCBmb3IgYSBDbG91ZEZvcm1hdGlvbiBzdGFjayBhbmQgd2FpdCBmb3IgdGhlIGRldGVjdGlvbiB0byBjb21wbGV0ZVxuICpcbiAqIEBwYXJhbSBjZm4gLSBhIENsb3VkRm9ybWF0aW9uIGNsaWVudFxuICogQHBhcmFtIGlvSGVscGVyIC0gaGVscGVyIGZvciBJTyBvcGVyYXRpb25zXG4gKiBAcGFyYW0gc3RhY2tOYW1lIC0gdGhlIG5hbWUgb2YgdGhlIHN0YWNrIHRvIGNoZWNrIGZvciBkcmlmdFxuICogQHJldHVybnMgdGhlIENsb3VkRm9ybWF0aW9uIGRlc2NyaXB0aW9uIG9mIHRoZSBkcmlmdCBkZXRlY3Rpb24gcmVzdWx0c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV0ZWN0U3RhY2tEcmlmdChcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPERlc2NyaWJlU3RhY2tSZXNvdXJjZURyaWZ0c0NvbW1hbmRPdXRwdXQ+IHtcbiAgLy8gU3RhcnQgZHJpZnQgZGV0ZWN0aW9uXG4gIGNvbnN0IGRyaWZ0RGV0ZWN0aW9uID0gYXdhaXQgY2ZuLmRldGVjdFN0YWNrRHJpZnQoe1xuICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICB9KTtcblxuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZShcbiAgICBmb3JtYXQoJ0RldGVjdGluZyBkcmlmdCB3aXRoIElEICVzIGZvciBzdGFjayAlcy4uLicsIGRyaWZ0RGV0ZWN0aW9uLlN0YWNrRHJpZnREZXRlY3Rpb25JZCwgc3RhY2tOYW1lKSxcbiAgKTtcblxuICAvLyBXYWl0IGZvciBkcmlmdCBkZXRlY3Rpb24gdG8gY29tcGxldGVcbiAgY29uc3QgZHJpZnRTdGF0dXMgPSBhd2FpdCB3YWl0Rm9yRHJpZnREZXRlY3Rpb24oY2ZuLCBpb0hlbHBlciwgZHJpZnREZXRlY3Rpb24uU3RhY2tEcmlmdERldGVjdGlvbklkISk7XG5cbiAgLy8gSGFuZGxlIFVOS05PV04gc3RhY2sgZHJpZnQgc3RhdHVzXG4gIGlmIChkcmlmdFN0YXR1cz8uU3RhY2tEcmlmdFN0YXR1cyA9PT0gJ1VOS05PV04nKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMudHJhY2UoXG4gICAgICAnU3RhY2sgZHJpZnQgc3RhdHVzIGlzIFVOS05PV04uIFRoaXMgbWF5IG9jY3VyIHdoZW4gQ2xvdWRGb3JtYXRpb24gaXMgdW5hYmxlIHRvIGRldGVjdCBkcmlmdCBmb3IgYXQgbGVhc3Qgb25lIHJlc291cmNlIGFuZCBhbGwgb3RoZXIgcmVzb3VyY2VzIGFyZSBJTl9TWU5DLlxcbicgK1xuICAgICAgYFJlYXNvbjogJHtmb3JtYXRSZWFzb24oZHJpZnRTdGF0dXMuRGV0ZWN0aW9uU3RhdHVzUmVhc29uKX1gLFxuICAgICk7XG4gIH1cblxuICAvLyBHZXQgdGhlIGRyaWZ0IHJlc3VsdHMsIGluY2x1ZGluZyByZXNvdXJjZXMgd2l0aCBVTktOT1dOIHN0YXR1c1xuICBjb25zdCBkcmlmdFJlc3VsdHMgPSBhd2FpdCBjZm4uZGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzKHtcbiAgICBTdGFja05hbWU6IHN0YWNrTmFtZSxcbiAgfSk7XG5cbiAgLy8gTG9nIHdhcm5pbmcgZm9yIGFueSByZXNvdXJjZXMgd2l0aCBVTktOT1dOIHN0YXR1c1xuICBjb25zdCB1bmtub3duUmVzb3VyY2VzID0gZHJpZnRSZXN1bHRzLlN0YWNrUmVzb3VyY2VEcmlmdHM/LmZpbHRlcihcbiAgICBkcmlmdCA9PiBkcmlmdC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMgPT09ICdVTktOT1dOJyxcbiAgKTtcblxuICBpZiAodW5rbm93blJlc291cmNlcyAmJiB1bmtub3duUmVzb3VyY2VzLmxlbmd0aCA+IDApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZShcbiAgICAgICdTb21lIHJlc291cmNlcyBoYXZlIFVOS05PV04gZHJpZnQgc3RhdHVzLiBUaGlzIG1heSBiZSBkdWUgdG8gaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zIG9yIHRocm90dGxpbmc6XFxuJyArXG4gICAgICB1bmtub3duUmVzb3VyY2VzLm1hcChyID0+XG4gICAgICAgIGAgIC0gJHtyLkxvZ2ljYWxSZXNvdXJjZUlkfTogJHtmb3JtYXRSZWFzb24oci5EcmlmdFN0YXR1c1JlYXNvbil9YCxcbiAgICAgICkuam9pbignXFxuJyksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBkcmlmdFJlc3VsdHM7XG59XG5cbi8qKlxuICogV2FpdCBmb3IgYSBkcmlmdCBkZXRlY3Rpb24gb3BlcmF0aW9uIHRvIGNvbXBsZXRlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JEcmlmdERldGVjdGlvbihcbiAgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgZHJpZnREZXRlY3Rpb25JZDogc3RyaW5nLFxuKTogUHJvbWlzZTxEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kT3V0cHV0IHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IG1heFdhaXRGb3JEcmlmdCA9IDMwMF8wMDA7IC8vIGlmIHRha2VzIGxvbmdlciB0aGFuIDVtaW4sIGZhaWxcbiAgY29uc3QgdGltZUJldHdlZW5PdXRwdXRzID0gMTBfMDAwOyAvLyBob3cgbG9uZyB0byB3YWl0IGJlZm9yZSB0ZWxsaW5nIHVzZXIgd2UncmUgc3RpbGwgY2hlY2tpbmdcbiAgY29uc3QgdGltZUJldHdlZW5BcGlDYWxscyA9IDJfMDAwOyAvLyB3YWl0IDJzIHBlciBBUEkgY2FsbFxuICBjb25zdCBkZWFkbGluZSA9IERhdGUubm93KCkgKyBtYXhXYWl0Rm9yRHJpZnQ7XG4gIGxldCBjaGVja0luID0gRGF0ZS5ub3coKSArIHRpbWVCZXR3ZWVuT3V0cHV0cztcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2ZuLmRlc2NyaWJlU3RhY2tEcmlmdERldGVjdGlvblN0YXR1cyh7XG4gICAgICBTdGFja0RyaWZ0RGV0ZWN0aW9uSWQ6IGRyaWZ0RGV0ZWN0aW9uSWQsXG4gICAgfSk7XG5cbiAgICBpZiAocmVzcG9uc2UuRGV0ZWN0aW9uU3RhdHVzID09PSAnREVURUNUSU9OX0NPTVBMRVRFJykge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5EZXRlY3Rpb25TdGF0dXMgPT09ICdERVRFQ1RJT05fRkFJTEVEJykge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignRHJpZnREZXRlY3Rpb25GYWlsZWQnLCBgRHJpZnQgZGV0ZWN0aW9uIGZhaWxlZDogJHtmb3JtYXRSZWFzb24ocmVzcG9uc2UuRGV0ZWN0aW9uU3RhdHVzUmVhc29uKX1gKTtcbiAgICB9XG5cbiAgICBpZiAoRGF0ZS5ub3coKSA+IGRlYWRsaW5lKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEcmlmdERldGVjdGlvblRpbWVvdXQnLCBgRHJpZnQgZGV0ZWN0aW9uIGZhaWxlZDogVGltZWQgb3V0IGFmdGVyICR7bWF4V2FpdEZvckRyaWZ0IC8gMTAwMH0gc2Vjb25kcy5gKTtcbiAgICB9XG5cbiAgICBpZiAoRGF0ZS5ub3coKSA+IGNoZWNrSW4pIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLnRyYWNlKCdXYWl0aW5nIGZvciBkcmlmdCBkZXRlY3Rpb24gdG8gY29tcGxldGUuLi4nKTtcbiAgICAgIGNoZWNrSW4gPSBEYXRlLm5vdygpICsgdGltZUJldHdlZW5PdXRwdXRzO1xuICAgIH1cblxuICAgIC8vIFdhaXQgYSBzaG9ydCB3aGlsZSBiZXR3ZWVuIEFQSSBjYWxscyBzbyB3ZSBkb24ndCBjcmVhdGUgYSBmbG9vZFxuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lQmV0d2VlbkFwaUNhbGxzKSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./drift-formatter\"), exports);\n__exportStar(require(\"./drift\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQWtDO0FBQ2xDLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJpZnQtZm9ybWF0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZHJpZnQnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnvironmentAccess = void 0;\nconst environment_resources_1 = require(\"./environment-resources\");\nconst placeholders_1 = require(\"./placeholders\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Access particular AWS resources, based on information from the CX manifest\n *\n * It is not possible to grab direct access to AWS credentials; 9 times out of 10\n * we have to allow for role assumption, and role assumption can only work if\n * there is a CX Manifest that contains a role ARN.\n *\n * This class exists so new code isn't tempted to go and get SDK credentials directly.\n */\nclass EnvironmentAccess {\n sdkProvider;\n sdkCache = new Map();\n environmentResources;\n ioHelper;\n constructor(sdkProvider, toolkitStackName, ioHelper) {\n this.sdkProvider = sdkProvider;\n this.environmentResources = new environment_resources_1.EnvironmentResourcesRegistry(toolkitStackName);\n this.ioHelper = ioHelper;\n }\n /**\n * Resolves the environment for a stack.\n */\n async resolveStackEnvironment(stack) {\n return this.sdkProvider.resolveEnvironment(stack.environment);\n }\n /**\n * Get an SDK to access the given stack's environment for stack operations\n *\n * Will ask plugins for readonly credentials if available, use the default\n * AWS credentials if not.\n *\n * Will assume the deploy role if configured on the stack. Check the default `deploy-role`\n * policies to see what you can do with this role.\n */\n async accessStackForReadOnlyStackOperations(stack) {\n return this.accessStackForStackOperations(stack, plugin_1.Mode.ForReading);\n }\n /**\n * Get an SDK to access the given stack's environment for stack operations\n *\n * Will ask plugins for mutating credentials if available, use the default AWS\n * credentials if not. The `mode` parameter is only used for querying\n * plugins.\n *\n * Will assume the deploy role if configured on the stack. Check the default `deploy-role`\n * policies to see what you can do with this role.\n */\n async accessStackForMutableStackOperations(stack) {\n return this.accessStackForStackOperations(stack, plugin_1.Mode.ForWriting);\n }\n /**\n * Get an SDK to access the given stack's environment for environmental lookups\n *\n * Will use a plugin if available, use the default AWS credentials if not.\n * The `mode` parameter is only used for querying plugins.\n *\n * Will assume the lookup role if configured on the stack. Check the default `lookup-role`\n * policies to see what you can do with this role. It can generally read everything\n * in the account that does not require KMS access.\n *\n * ---\n *\n * For backwards compatibility reasons, there are some scenarios that are handled here:\n *\n * 1. The lookup role may not exist (it was added in bootstrap stack version 7). If so:\n * a. Return the default credentials if the default credentials are for the stack account\n * (you will notice this as `isFallbackCredentials=true`).\n * b. Throw an error if the default credentials are not for the stack account.\n *\n * 2. The lookup role may not have the correct permissions (for example, ReadOnlyAccess was added in\n * bootstrap stack version 8); the stack will have a minimum version number on it.\n * a. If it does not we throw an error which should be handled in the calling\n * function (and fallback to use a different role, etc)\n *\n * Upon success, caller will have an SDK for the right account, which may or may not have\n * the right permissions.\n */\n async accessStackForLookup(stack) {\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `The stack ${stack.displayName} does not have an environment`);\n }\n const lookupEnv = await this.prepareSdk({\n environment: stack.environment,\n mode: plugin_1.Mode.ForReading,\n assumeRoleArn: stack.lookupRole?.arn,\n assumeRoleExternalId: stack.lookupRole?.assumeRoleExternalId,\n assumeRoleAdditionalOptions: stack.lookupRole?.assumeRoleAdditionalOptions,\n });\n // if we succeed in assuming the lookup role, make sure we have the correct bootstrap stack version\n if (lookupEnv.didAssumeRole && stack.lookupRole?.bootstrapStackVersionSsmParameter && stack.lookupRole.requiresBootstrapStackVersion) {\n const version = await lookupEnv.resources.versionFromSsmParameter(stack.lookupRole.bootstrapStackVersionSsmParameter);\n if (version < stack.lookupRole.requiresBootstrapStackVersion) {\n throw new toolkit_error_1.ToolkitError('InsufficientBootstrapStackVersion', `Bootstrap stack version '${stack.lookupRole.requiresBootstrapStackVersion}' is required, found version '${version}'. To get rid of this error, please upgrade to bootstrap version >= ${stack.lookupRole.requiresBootstrapStackVersion}`);\n }\n }\n if (lookupEnv.isFallbackCredentials) {\n const arn = await lookupEnv.replacePlaceholders(stack.lookupRole?.arn);\n await this.ioHelper.defaults.warn(`Lookup role ${arn} was not assumed. Proceeding with default credentials.`);\n }\n return lookupEnv;\n }\n /**\n * Get an SDK to access the given stack's environment for reading stack attributes\n *\n * Will use a plugin if available, use the default AWS credentials if not.\n * The `mode` parameter is only used for querying plugins.\n *\n * Will try to assume the lookup role if given, will use the regular stack operations\n * access (deploy-role) otherwise. When calling this, you should assume that you will get\n * the least privileged role, so don't try to use it for anything the `deploy-role`\n * wouldn't be able to do. Also you cannot rely on being able to read encrypted anything.\n */\n async accessStackForLookupBestEffort(stack) {\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `The stack ${stack.displayName} does not have an environment`);\n }\n try {\n return await this.accessStackForLookup(stack);\n }\n catch (e) {\n await this.ioHelper.defaults.warn(`${(0, util_1.formatErrorMessage)(e)}`);\n }\n return this.accessStackForStackOperations(stack, plugin_1.Mode.ForReading);\n }\n /**\n * Get an SDK to access the given stack's environment for stack operations\n *\n * Will use a plugin if available, use the default AWS credentials if not.\n * The `mode` parameter is only used for querying plugins.\n *\n * Will assume the deploy role if configured on the stack. Check the default `deploy-role`\n * policies to see what you can do with this role.\n */\n async accessStackForStackOperations(stack, mode) {\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `The stack ${stack.displayName} does not have an environment`);\n }\n return this.prepareSdk({\n environment: stack.environment,\n mode,\n assumeRoleArn: stack.assumeRoleArn,\n assumeRoleExternalId: stack.assumeRoleExternalId,\n assumeRoleAdditionalOptions: stack.assumeRoleAdditionalOptions,\n });\n }\n /**\n * Prepare an SDK for use in the given environment and optionally with a role assumed.\n */\n async prepareSdk(options) {\n const resolvedEnvironment = await this.sdkProvider.resolveEnvironment(options.environment);\n // Substitute any placeholders with information about the current environment\n const { assumeRoleArn } = await (0, placeholders_1.replaceEnvPlaceholders)({\n assumeRoleArn: options.assumeRoleArn,\n }, resolvedEnvironment, this.sdkProvider);\n const stackSdk = await this.cachedSdkForEnvironment(resolvedEnvironment, options.mode, {\n assumeRoleArn,\n assumeRoleExternalId: options.assumeRoleExternalId,\n assumeRoleAdditionalOptions: options.assumeRoleAdditionalOptions,\n });\n return {\n sdk: stackSdk.sdk,\n resolvedEnvironment,\n resources: this.environmentResources.for(resolvedEnvironment, stackSdk.sdk, this.ioHelper),\n // If we asked for a role, did not successfully assume it, and yet got here without an exception: that\n // means we must have fallback credentials.\n isFallbackCredentials: !stackSdk.didAssumeRole && !!assumeRoleArn,\n didAssumeRole: stackSdk.didAssumeRole,\n replacePlaceholders: async (str) => {\n const ret = await (0, placeholders_1.replaceEnvPlaceholders)({ str }, resolvedEnvironment, this.sdkProvider);\n return ret.str;\n },\n };\n }\n async cachedSdkForEnvironment(environment, mode, options) {\n const cacheKeyElements = [\n environment.account,\n environment.region,\n `${mode}`,\n options?.assumeRoleArn ?? '',\n options?.assumeRoleExternalId ?? '',\n ];\n if (options?.assumeRoleAdditionalOptions) {\n cacheKeyElements.push(JSON.stringify(options.assumeRoleAdditionalOptions));\n }\n const cacheKey = cacheKeyElements.join(':');\n const existing = this.sdkCache.get(cacheKey);\n if (existing) {\n return existing;\n }\n const ret = await this.sdkProvider.forEnvironment(environment, mode, options);\n this.sdkCache.set(cacheKey, ret);\n return ret;\n }\n}\nexports.EnvironmentAccess = EnvironmentAccess;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtYWNjZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnQtYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1FQUF1RTtBQUV2RSxpREFBd0Q7QUFDeEQsK0RBQTJEO0FBQzNELHFDQUFnRDtBQUdoRCxzQ0FBaUM7QUFFakM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGlCQUFpQjtJQUtDO0lBSlosUUFBUSxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO0lBQ2hELG9CQUFvQixDQUErQjtJQUNuRCxRQUFRLENBQVc7SUFFcEMsWUFBNkIsV0FBd0IsRUFBRSxnQkFBd0IsRUFBRSxRQUFrQjtRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNuRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxvREFBNEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxLQUF3QztRQUMzRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxLQUF3QztRQUN6RixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsYUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsS0FBd0M7UUFDeEYsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLGFBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMEJHO0lBQ0ksS0FB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dHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSB9IGZyb20gJy4vZW52aXJvbm1lbnQtcmVzb3VyY2VzJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nV2l0aG91dFBsYWNlaG9sZGVycyB9IGZyb20gJy4vcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuL3BsYWNlaG9sZGVycyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESywgQ3JlZGVudGlhbHNPcHRpb25zLCBTZGtGb3JFbnZpcm9ubWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuXG4vKipcbiAqIEFjY2VzcyBwYXJ0aWN1bGFyIEFXUyByZXNvdXJjZXMsIGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIENYIG1hbmlmZXN0XG4gKlxuICogSXQgaXMgbm90IHBvc3NpYmxlIHRvIGdyYWIgZGlyZWN0IGFjY2VzcyB0byBBV1MgY3JlZGVudGlhbHM7IDkgdGltZXMgb3V0IG9mIDEwXG4gKiB3ZSBoYXZlIHRvIGFsbG93IGZvciByb2xlIGFzc3VtcHRpb24sIGFuZCByb2xlIGFzc3VtcHRpb24gY2FuIG9ubHkgd29yayBpZlxuICogdGhlcmUgaXMgYSBDWCBNYW5pZmVzdCB0aGF0IGNvbnRhaW5zIGEgcm9sZSBBUk4uXG4gKlxuICogVGhpcyBjbGFzcyBleGlzdHMgc28gbmV3IGNvZGUgaXNuJ3QgdGVtcHRlZCB0byBnbyBhbmQgZ2V0IFNESyBjcmVkZW50aWFscyBkaXJlY3RseS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50QWNjZXNzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzZGtDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBTZGtGb3JFbnZpcm9ubWVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnZpcm9ubWVudFJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeTtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsIHRvb2xraXRTdGFja05hbWU6IHN0cmluZywgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgdGhpcy5lbnZpcm9ubWVudFJlc291cmNlcyA9IG5ldyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5KHRvb2xraXRTdGFja05hbWUpO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgZW52aXJvbm1lbnQgZm9yIGEgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZVN0YWNrRW52aXJvbm1lbnQoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8Y3hhcGkuRW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZGtQcm92aWRlci5yZXNvbHZlRW52aXJvbm1lbnQoc3RhY2suZW52aXJvbm1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBTREsgdG8gYWNjZXNzIHRoZSBnaXZlbiBzdGFjaydzIGVudmlyb25tZW50IGZvciBzdGFjayBvcGVyYXRpb25zXG4gICAqXG4gICAqIFdpbGwgYXNrIHBsdWdpbnMgZm9yIHJlYWRvbmx5IGNyZWRlbnRpYWxzIGlmIGF2YWlsYWJsZSwgdXNlIHRoZSBkZWZhdWx0XG4gICAqIEFXUyBjcmVkZW50aWFscyBpZiBub3QuXG4gICAqXG4gICAqIFdpbGwgYXNzdW1lIHRoZSBkZXBsb3kgcm9sZSBpZiBjb25maWd1cmVkIG9uIHRoZSBzdGFjay4gQ2hlY2sgdGhlIGRlZmF1bHQgYGRlcGxveS1yb2xlYFxuICAgKiBwb2xpY2llcyB0byBzZWUgd2hhdCB5b3UgY2FuIGRvIHdpdGggdGhpcyByb2xlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjY2Vzc1N0YWNrRm9yUmVhZE9ubHlTdGFja09wZXJhdGlvbnMoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8VGFyZ2V0RW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjaywgTW9kZS5Gb3JSZWFkaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIHRvIGFjY2VzcyB0aGUgZ2l2ZW4gc3RhY2sncyBlbnZpcm9ubWVudCBmb3Igc3RhY2sgb3BlcmF0aW9uc1xuICAgKlxuICAgKiBXaWxsIGFzayBwbHVnaW5zIGZvciBtdXRhdGluZyBjcmVkZW50aWFscyBpZiBhdmFpbGFibGUsIHVzZSB0aGUgZGVmYXVsdCBBV1NcbiAgICogY3JlZGVudGlhbHMgaWYgbm90LiAgVGhlIGBtb2RlYCBwYXJhbWV0ZXIgaXMgb25seSB1c2VkIGZvciBxdWVyeWluZ1xuICAgKiBwbHVnaW5zLlxuICAgKlxuICAgKiBXaWxsIGFzc3VtZSB0aGUgZGVwbG95IHJvbGUgaWYgY29uZmlndXJlZCBvbiB0aGUgc3RhY2suIENoZWNrIHRoZSBkZWZhdWx0IGBkZXBsb3ktcm9sZWBcbiAgICogcG9saWNpZXMgdG8gc2VlIHdoYXQgeW91IGNhbiBkbyB3aXRoIHRoaXMgcm9sZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY2Nlc3NTdGFja0Zvck11dGFibGVTdGFja09wZXJhdGlvbnMoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8VGFyZ2V0RW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjaywgTW9kZS5Gb3JXcml0aW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIHRvIGFjY2VzcyB0aGUgZ2l2ZW4gc3RhY2sncyBlbnZpcm9ubWVudCBmb3IgZW52aXJvbm1lbnRhbCBsb29rdXBzXG4gICAqXG4gICAqIFdpbGwgdXNlIGEgcGx1Z2luIGlmIGF2YWlsYWJsZSwgdXNlIHRoZSBkZWZhdWx0IEFXUyBjcmVkZW50aWFscyBpZiBub3QuXG4gICAqIFRoZSBgbW9kZWAgcGFyYW1ldGVyIGlzIG9ubHkgdXNlZCBmb3IgcXVlcnlpbmcgcGx1Z2lucy5cbiAgICpcbiAgICogV2lsbCBhc3N1bWUgdGhlIGxvb2t1cCByb2xlIGlmIGNvbmZpZ3VyZWQgb24gdGhlIHN0YWNrLiBDaGVjayB0aGUgZGVmYXVsdCBgbG9va3VwLXJvbGVgXG4gICAqIHBvbGljaWVzIHRvIHNlZSB3aGF0IHlvdSBjYW4gZG8gd2l0aCB0aGlzIHJvbGUuIEl0IGNhbiBnZW5lcmFsbHkgcmVhZCBldmVyeXRoaW5nXG4gICAqIGluIHRoZSBhY2NvdW50IHRoYXQgZG9lcyBub3QgcmVxdWlyZSBLTVMgYWNjZXNzLlxuICAgKlxuICAgKiAtLS1cbiAgICpcbiAgICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHRoZXJlIGFyZSBzb21lIHNjZW5hcmlvcyB0aGF0IGFyZSBoYW5kbGVkIGhlcmU6XG4gICAqXG4gICAqICAxLiBUaGUgbG9va3VwIHJvbGUgbWF5IG5vdCBleGlzdCAoaXQgd2FzIGFkZGVkIGluIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIDcpLiBJZiBzbzpcbiAgICogICAgIGEuIFJldHVybiB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBpZiB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBhcmUgZm9yIHRoZSBzdGFjayBhY2NvdW50XG4gICAqICAgICAgICAoeW91IHdpbGwgbm90aWNlIHRoaXMgYXMgYGlzRmFsbGJhY2tDcmVkZW50aWFscz10cnVlYCkuXG4gICAqICAgICBiLiBUaHJvdyBhbiBlcnJvciBpZiB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBhcmUgbm90IGZvciB0aGUgc3RhY2sgYWNjb3VudC5cbiAgICpcbiAgICogIDIuIFRoZSBsb29rdXAgcm9sZSBtYXkgbm90IGhhdmUgdGhlIGNvcnJlY3QgcGVybWlzc2lvbnMgKGZvciBleGFtcGxlLCBSZWFkT25seUFjY2VzcyB3YXMgYWRkZWQgaW5cbiAgICogICAgIGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uIDgpOyB0aGUgc3RhY2sgd2lsbCBoYXZlIGEgbWluaW11bSB2ZXJzaW9uIG51bWJlciBvbiBpdC5cbiAgICogICAgIGEuIElmIGl0IGRvZXMgbm90IHdlIHRocm93IGFuIGVycm9yIHdoaWNoIHNob3VsZCBiZSBoYW5kbGVkIGluIHRoZSBjYWxsaW5nXG4gICAqICAgICAgICBmdW5jdGlvbiAoYW5kIGZhbGxiYWNrIHRvIHVzZSBhIGRpZmZlcmVudCByb2xlLCBldGMpXG4gICAqXG4gICAqIFVwb24gc3VjY2VzcywgY2FsbGVyIHdpbGwgaGF2ZSBhbiBTREsgZm9yIHRoZSByaWdodCBhY2NvdW50LCB3aGljaCBtYXkgb3IgbWF5IG5vdCBoYXZlXG4gICAqIHRoZSByaWdodCBwZXJtaXNzaW9ucy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY2Nlc3NTdGFja0Zvckxvb2t1cChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KTogUHJvbWlzZTxUYXJnZXRFbnZpcm9ubWVudD4ge1xuICAgIGlmICghc3RhY2suZW52aXJvbm1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrRW52aXJvbm1lbnRNaXNzaW5nJywgYFRoZSBzdGFjayAke3N0YWNrLmRpc3BsYXlOYW1lfSBkb2VzIG5vdCBoYXZlIGFuIGVudmlyb25tZW50YCk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9va3VwRW52ID0gYXdhaXQgdGhpcy5wcmVwYXJlU2RrKHtcbiAgICAgIGVudmlyb25tZW50OiBzdGFjay5lbnZpcm9ubWVudCxcbiAgICAgIG1vZGU6IE1vZGUuRm9yUmVhZGluZyxcbiAgICAgIGFzc3VtZVJvbGVBcm46IHN0YWNrLmxvb2t1cFJvbGU/LmFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBzdGFjay5sb29rdXBSb2xlPy5hc3N1bWVSb2xlRXh0ZXJuYWxJZCxcbiAgICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogc3RhY2subG9va3VwUm9sZT8uYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgLy8gaWYgd2Ugc3VjY2VlZCBpbiBhc3N1bWluZyB0aGUgbG9va3VwIHJvbGUsIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBjb3JyZWN0IGJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uXG4gICAgaWYgKGxvb2t1cEVudi5kaWRBc3N1bWVSb2xlICYmIHN0YWNrLmxvb2t1cFJvbGU/LmJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlciAmJiBzdGFjay5sb29rdXBSb2xlLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9uKSB7XG4gICAgICBjb25zdCB2ZXJzaW9uID0gYXdhaXQgbG9va3VwRW52LnJlc291cmNlcy52ZXJzaW9uRnJvbVNzbVBhcmFtZXRlcihzdGFjay5sb29rdXBSb2xlLmJvb3RzdHJhcFN0YWNrVmVyc2lvblNzbVBhcmFtZXRlcik7XG4gICAgICBpZiAodmVyc2lvbiA8IHN0YWNrLmxvb2t1cFJvbGUucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignSW5zdWZmaWNpZW50Qm9vdHN0cmFwU3RhY2tWZXJzaW9uJywgYEJvb3RzdHJhcCBzdGFjayB2ZXJzaW9uICcke3N0YWNrLmxvb2t1cFJvbGUucmVxdWlyZXNCb290c3RyYXBTdGFja1ZlcnNpb259JyBpcyByZXF1aXJlZCwgZm91bmQgdmVyc2lvbiAnJHt2ZXJzaW9ufScuIFRvIGdldCByaWQgb2YgdGhpcyBlcnJvciwgcGxlYXNlIHVwZ3JhZGUgdG8gYm9vdHN0cmFwIHZlcnNpb24gPj0gJHtzdGFjay5sb29rdXBSb2xlLnJlcXVpcmVzQm9vdHN0cmFwU3RhY2tWZXJzaW9ufWApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobG9va3VwRW52LmlzRmFsbGJhY2tDcmVkZW50aWFscykge1xuICAgICAgY29uc3QgYXJuID0gYXdhaXQgbG9va3VwRW52LnJlcGxhY2VQbGFjZWhvbGRlcnMoc3RhY2subG9va3VwUm9sZT8uYXJuKTtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMud2FybihgTG9va3VwIHJvbGUgJHthcm59IHdhcyBub3QgYXNzdW1lZC4gUHJvY2VlZGluZyB3aXRoIGRlZmF1bHQgY3JlZGVudGlhbHMuYCk7XG4gICAgfVxuICAgIHJldHVybiBsb29rdXBFbnY7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIFNESyB0byBhY2Nlc3MgdGhlIGdpdmVuIHN0YWNrJ3MgZW52aXJvbm1lbnQgZm9yIHJlYWRpbmcgc3RhY2sgYXR0cmlidXRlc1xuICAgKlxuICAgKiBXaWxsIHVzZSBhIHBsdWdpbiBpZiBhdmFpbGFibGUsIHVzZSB0aGUgZGVmYXVsdCBBV1MgY3JlZGVudGlhbHMgaWYgbm90LlxuICAgKiBUaGUgYG1vZGVgIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgZm9yIHF1ZXJ5aW5nIHBsdWdpbnMuXG4gICAqXG4gICAqIFdpbGwgdHJ5IHRvIGFzc3VtZSB0aGUgbG9va3VwIHJvbGUgaWYgZ2l2ZW4sIHdpbGwgdXNlIHRoZSByZWd1bGFyIHN0YWNrIG9wZXJhdGlvbnNcbiAgICogYWNjZXNzIChkZXBsb3ktcm9sZSkgb3RoZXJ3aXNlLiBXaGVuIGNhbGxpbmcgdGhpcywgeW91IHNob3VsZCBhc3N1bWUgdGhhdCB5b3Ugd2lsbCBnZXRcbiAgICogdGhlIGxlYXN0IHByaXZpbGVnZWQgcm9sZSwgc28gZG9uJ3QgdHJ5IHRvIHVzZSBpdCBmb3IgYW55dGhpbmcgdGhlIGBkZXBsb3ktcm9sZWBcbiAgICogd291bGRuJ3QgYmUgYWJsZSB0byBkby4gQWxzbyB5b3UgY2Fubm90IHJlbHkgb24gYmVpbmcgYWJsZSB0byByZWFkIGVuY3J5cHRlZCBhbnl0aGluZy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY2Nlc3NTdGFja0Zvckxvb2t1cEJlc3RFZmZvcnQoc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCk6IFByb21pc2U8VGFyZ2V0RW52aXJvbm1lbnQ+IHtcbiAgICBpZiAoIXN0YWNrLmVudmlyb25tZW50KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdTdGFja0Vudmlyb25tZW50TWlzc2luZycsIGBUaGUgc3RhY2sgJHtzdGFjay5kaXNwbGF5TmFtZX0gZG9lcyBub3QgaGF2ZSBhbiBlbnZpcm9ubWVudGApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5hY2Nlc3NTdGFja0Zvckxvb2t1cChzdGFjayk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oYCR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjaywgTW9kZS5Gb3JSZWFkaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gU0RLIHRvIGFjY2VzcyB0aGUgZ2l2ZW4gc3RhY2sncyBlbnZpcm9ubWVudCBmb3Igc3RhY2sgb3BlcmF0aW9uc1xuICAgKlxuICAgKiBXaWxsIHVzZSBhIHBsdWdpbiBpZiBhdmFpbGFibGUsIHVzZSB0aGUgZGVmYXVsdCBBV1MgY3JlZGVudGlhbHMgaWYgbm90LlxuICAgKiBUaGUgYG1vZGVgIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgZm9yIHF1ZXJ5aW5nIHBsdWdpbnMuXG4gICAqXG4gICAqIFdpbGwgYXNzdW1lIHRoZSBkZXBsb3kgcm9sZSBpZiBjb25maWd1cmVkIG9uIHRoZSBzdGFjay4gQ2hlY2sgdGhlIGRlZmF1bHQgYGRlcGxveS1yb2xlYFxuICAgKiBwb2xpY2llcyB0byBzZWUgd2hhdCB5b3UgY2FuIGRvIHdpdGggdGhpcyByb2xlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBhY2Nlc3NTdGFja0ZvclN0YWNrT3BlcmF0aW9ucyhzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBtb2RlOiBNb2RlKTogUHJvbWlzZTxUYXJnZXRFbnZpcm9ubWVudD4ge1xuICAgIGlmICghc3RhY2suZW52aXJvbm1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrRW52aXJvbm1lbnRNaXNzaW5nJywgYFRoZSBzdGFjayAke3N0YWNrLmRpc3BsYXlOYW1lfSBkb2VzIG5vdCBoYXZlIGFuIGVudmlyb25tZW50YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJlcGFyZVNkayh7XG4gICAgICBlbnZpcm9ubWVudDogc3RhY2suZW52aXJvbm1lbnQsXG4gICAgICBtb2RlLFxuICAgICAgYXNzdW1lUm9sZUFybjogc3RhY2suYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBzdGFjay5hc3N1bWVSb2xlRXh0ZXJuYWxJZCxcbiAgICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogc3RhY2suYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYW4gU0RLIGZvciB1c2UgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50IGFuZCBvcHRpb25hbGx5IHdpdGggYSByb2xlIGFzc3VtZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHByZXBhcmVTZGsoXG4gICAgb3B0aW9uczogUHJlcGFyZVNka1JvbGVPcHRpb25zLFxuICApOiBQcm9taXNlPFRhcmdldEVudmlyb25tZW50PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudCA9IGF3YWl0IHRoaXMuc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KG9wdGlvbnMuZW52aXJvbm1lbnQpO1xuXG4gICAgLy8gU3Vic3RpdHV0ZSBhbnkgcGxhY2Vob2xkZXJzIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnRcbiAgICBjb25zdCB7IGFzc3VtZVJvbGVBcm4gfSA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5hc3N1bWVSb2xlQXJuLFxuICAgIH0sIHJlc29sdmVkRW52aXJvbm1lbnQsIHRoaXMuc2RrUHJvdmlkZXIpO1xuXG4gICAgY29uc3Qgc3RhY2tTZGsgPSBhd2FpdCB0aGlzLmNhY2hlZFNka0ZvckVudmlyb25tZW50KHJlc29sdmVkRW52aXJvbm1lbnQsIG9wdGlvbnMubW9kZSwge1xuICAgICAgYXNzdW1lUm9sZUFybixcbiAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zOiBvcHRpb25zLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzZGs6IHN0YWNrU2RrLnNkayxcbiAgICAgIHJlc29sdmVkRW52aXJvbm1lbnQsXG4gICAgICByZXNvdXJjZXM6IHRoaXMuZW52aXJvbm1lbnRSZXNvdXJjZXMuZm9yKHJlc29sdmVkRW52aXJvbm1lbnQsIHN0YWNrU2RrLnNkaywgdGhpcy5pb0hlbHBlciksXG4gICAgICAvLyBJZiB3ZSBhc2tlZCBmb3IgYSByb2xlLCBkaWQgbm90IHN1Y2Nlc3NmdWxseSBhc3N1bWUgaXQsIGFuZCB5ZXQgZ290IGhlcmUgd2l0aG91dCBhbiBleGNlcHRpb246IHRoYXRcbiAgICAgIC8vIG1lYW5zIHdlIG11c3QgaGF2ZSBmYWxsYmFjayBjcmVkZW50aWFscy5cbiAgICAgIGlzRmFsbGJhY2tDcmVkZW50aWFsczogIXN0YWNrU2RrLmRpZEFzc3VtZVJvbGUgJiYgISFhc3N1bWVSb2xlQXJuLFxuICAgICAgZGlkQXNzdW1lUm9sZTogc3RhY2tTZGsuZGlkQXNzdW1lUm9sZSxcbiAgICAgIHJlcGxhY2VQbGFjZWhvbGRlcnM6IGFzeW5jIDxBIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkPihzdHI6IEEpID0+IHtcbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgcmVwbGFjZUVudlBsYWNlaG9sZGVycyh7IHN0ciB9LCByZXNvbHZlZEVudmlyb25tZW50LCB0aGlzLnNka1Byb3ZpZGVyKTtcbiAgICAgICAgcmV0dXJuIHJldC5zdHI7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNhY2hlZFNka0ZvckVudmlyb25tZW50KFxuICAgIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbiAgICBtb2RlOiBNb2RlLFxuICAgIG9wdGlvbnM/OiBDcmVkZW50aWFsc09wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IGNhY2hlS2V5RWxlbWVudHMgPSBbXG4gICAgICBlbnZpcm9ubWVudC5hY2NvdW50LFxuICAgICAgZW52aXJvbm1lbnQucmVnaW9uLFxuICAgICAgYCR7bW9kZX1gLFxuICAgICAgb3B0aW9ucz8uYXNzdW1lUm9sZUFybiA/PyAnJyxcbiAgICAgIG9wdGlvbnM/LmFzc3VtZVJvbGVFeHRlcm5hbElkID8/ICcnLFxuICAgIF07XG5cbiAgICBpZiAob3B0aW9ucz8uYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zKSB7XG4gICAgICBjYWNoZUtleUVsZW1lbnRzLnB1c2goSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZUtleSA9IGNhY2hlS2V5RWxlbWVudHMuam9pbignOicpO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5zZGtDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBjb25zdCByZXQgPSBhd2FpdCB0aGlzLnNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KGVudmlyb25tZW50LCBtb2RlLCBvcHRpb25zKTtcbiAgICB0aGlzLnNka0NhY2hlLnNldChjYWNoZUtleSwgcmV0KTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG59XG5cbi8qKlxuICogU0RLIG9idGFpbmVkIGJ5IGFzc3VtaW5nIHRoZSBkZXBsb3kgcm9sZVxuICogZm9yIGEgZ2l2ZW4gZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBUaGUgU0RLIGZvciB0aGUgZ2l2ZW4gZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHNkazogU0RLO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb2x2ZWQgZW52aXJvbm1lbnQgZm9yIHRoZSBzdGFja1xuICAgKiAobm8gbW9yZSAndW5rbm93bi1hY2NvdW50L3Vua25vd24tcmVnaW9uJylcbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVkRW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgY2xhc3MgZm9yIGVudmlyb25tZW50YWwgcmVzb3VyY2VzIHRvIGhlbHAgdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHdlIGFzc3VtZWQgYSByb2xlIGluIHRoZSBwcm9jZXNzIG9mIGdldHRpbmcgdGhlc2UgY3JlZGVudGlhbHNcbiAgICovXG4gIHJlYWRvbmx5IGRpZEFzc3VtZVJvbGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZXNlIGFyZSBmYWxsYmFjayBjcmVkZW50aWFsc1xuICAgKlxuICAgKiBGYWxsYmFjayBjcmVkZW50aWFscyBtZWFucyB0aGF0IGFzc3VtaW5nIHRoZSBpbnRlbmRlZCByb2xlIGZhaWxlZCwgYnV0IHRoZVxuICAgKiBiYXNlIGNyZWRlbnRpYWxzIGhhcHBlbiB0byBiZSBmb3IgdGhlIHJpZ2h0IGFjY291bnQgc28gd2UganVzdCBwaWNrZWQgdGhvc2VcbiAgICogYW5kIGhvcGUgdGhlIGZ1dHVyZSBTREsgY2FsbHMgc3VjY2VlZC5cbiAgICpcbiAgICogVGhpcyBpcyBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1lY2hhbmlzbSBmcm9tIGFyb3VuZCB0aGUgdGltZSB3ZSBpbnRyb2R1Y2VkXG4gICAqIGRlcGxveW1lbnQgcm9sZXMuXG4gICAqL1xuICByZWFkb25seSBpc0ZhbGxiYWNrQ3JlZGVudGlhbHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgZW52aXJvbm1lbnQgcGxhY2Vob2xkZXJzIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBlbnZpcm9ubWVudFxuICAgKi9cbiAgcmVwbGFjZVBsYWNlaG9sZGVycyh4OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBQcm9taXNlPFN0cmluZ1dpdGhvdXRQbGFjZWhvbGRlcnMgfCB1bmRlZmluZWQ+O1xufVxuXG5pbnRlcmZhY2UgUHJlcGFyZVNka1JvbGVPcHRpb25zIHtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xuICByZWFkb25seSBtb2RlOiBNb2RlO1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuICByZWFkb25seSBhc3N1bWVSb2xlRXh0ZXJuYWxJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoBootstrapStackEnvironmentResources = exports.EnvironmentResources = exports.EnvironmentResourcesRegistry = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst notices_1 = require(\"../notices\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\n/**\n * Registry class for `EnvironmentResources`.\n *\n * The state management of this class is a bit non-standard. We want to cache\n * data related to toolkit stacks and SSM parameters, but we are not in charge\n * of ensuring caching of SDKs. Since `EnvironmentResources` needs an SDK to\n * function, we treat it as an ephemeral class, and store the actual cached data\n * in `EnvironmentResourcesRegistry`.\n */\nclass EnvironmentResourcesRegistry {\n toolkitStackName;\n cache = new Map();\n constructor(toolkitStackName) {\n this.toolkitStackName = toolkitStackName;\n }\n for(resolvedEnvironment, sdk, ioHelper) {\n const key = `${resolvedEnvironment.account}:${resolvedEnvironment.region}`;\n let envCache = this.cache.get(key);\n if (!envCache) {\n envCache = emptyCache();\n this.cache.set(key, envCache);\n }\n return new EnvironmentResources(resolvedEnvironment, sdk, ioHelper, envCache, this.toolkitStackName);\n }\n}\nexports.EnvironmentResourcesRegistry = EnvironmentResourcesRegistry;\n/**\n * Interface with the account and region we're deploying into\n *\n * Manages lookups for bootstrapped resources, falling back to the legacy \"CDK Toolkit\"\n * original bootstrap stack if necessary.\n *\n * The state management of this class is a bit non-standard. We want to cache\n * data related to toolkit stacks and SSM parameters, but we are not in charge\n * of ensuring caching of SDKs. Since `EnvironmentResources` needs an SDK to\n * function, we treat it as an ephemeral class, and store the actual cached data\n * in `EnvironmentResourcesRegistry`.\n */\nclass EnvironmentResources {\n environment;\n sdk;\n ioHelper;\n cache;\n toolkitStackName;\n constructor(environment, sdk, ioHelper, cache, toolkitStackName) {\n this.environment = environment;\n this.sdk = sdk;\n this.ioHelper = ioHelper;\n this.cache = cache;\n this.toolkitStackName = toolkitStackName;\n }\n /**\n * Look up the toolkit for a given environment, using a given SDK\n */\n async lookupToolkit() {\n if (!this.cache.toolkitInfo) {\n this.cache.toolkitInfo = await toolkit_info_1.ToolkitInfo.lookup(this.environment, this.sdk, this.ioHelper, this.toolkitStackName);\n }\n return this.cache.toolkitInfo;\n }\n /**\n * Validate that the bootstrap stack version matches or exceeds the expected version\n *\n * Use the SSM parameter name to read the version number if given, otherwise use the version\n * discovered on the bootstrap stack.\n *\n * Pass in the SSM parameter name so we can cache the lookups an don't need to do the same\n * lookup again and again for every artifact.\n */\n async validateVersion(expectedVersion, ssmParameterName) {\n if (expectedVersion === undefined) {\n // No requirement\n return;\n }\n const defExpectedVersion = expectedVersion;\n if (ssmParameterName !== undefined) {\n try {\n doValidate(await this.versionFromSsmParameter(ssmParameterName), this.environment);\n return;\n }\n catch (e) {\n if (e.name !== 'AccessDeniedException') {\n throw e;\n }\n // This is a fallback! The bootstrap template that goes along with this change introduces\n // a new 'ssm:GetParameter' permission, but when run using the previous bootstrap template we\n // won't have the permissions yet to read the version, so we won't be able to show the\n // message telling the user they need to update! When we see an AccessDeniedException, fall\n // back to the version we read from Stack Outputs; but ONLY if the version we discovered via\n // outputs is legitimately an old version. If it's newer than that, something else must be broken,\n // so let it fail as it would if we didn't have this fallback.\n const bootstrapStack = await this.lookupToolkit();\n if (bootstrapStack.found && bootstrapStack.version < BOOTSTRAP_TEMPLATE_VERSION_INTRODUCING_GETPARAMETER) {\n await this.ioHelper.defaults.warn(`Could not read SSM parameter ${ssmParameterName}: ${(0, util_1.formatErrorMessage)(e)}, falling back to version from ${bootstrapStack}`);\n doValidate(bootstrapStack.version, this.environment);\n return;\n }\n throw new toolkit_error_1.ToolkitError('BootstrapVersionSsmConfirmationFailed', `This CDK deployment requires bootstrap stack version '${expectedVersion}', but during the confirmation via SSM parameter ${ssmParameterName} the following error occurred: ${e}`);\n }\n }\n // No SSM parameter\n const bootstrapStack = await this.lookupToolkit();\n doValidate(bootstrapStack.version, this.environment);\n function doValidate(version, environment) {\n const notices = notices_1.Notices.get();\n if (notices) {\n // if `Notices` hasn't been initialized there is probably a good\n // reason for it. handle gracefully.\n notices.addBootstrappedEnvironment({ bootstrapStackVersion: version, environment });\n }\n if (defExpectedVersion > version) {\n throw new toolkit_error_1.ToolkitError('OutdatedBootstrapStack', `This CDK deployment requires bootstrap stack version '${expectedVersion}', found '${version}'. Please run 'cdk bootstrap'.`);\n }\n }\n }\n /**\n * Read a version from an SSM parameter, cached\n */\n async versionFromSsmParameter(parameterName) {\n const existing = this.cache.ssmParameters.get(parameterName);\n if (existing !== undefined) {\n return existing;\n }\n const ssm = this.sdk.ssm();\n try {\n const result = await ssm.getParameter({\n Name: parameterName,\n // A custom template might use a SecureString for this, so we request the decrypted parameter.\n // The flag is safe to set, since it will be ignored for unencrypted parameters.\n // It is still up to user to ensure that all roles have sufficient permissions,\n // however when using AWS Managed Keys, SSM is granted decryption permissions by default.\n WithDecryption: true,\n });\n const asNumber = parseInt(`${result.Parameter?.Value}`, 10);\n if (isNaN(asNumber)) {\n throw new toolkit_error_1.ToolkitError('SsmParameterNotANumber', `SSM parameter ${parameterName} not a number: ${result.Parameter?.Value}`);\n }\n this.cache.ssmParameters.set(parameterName, asNumber);\n return asNumber;\n }\n catch (e) {\n if (e.name === 'ParameterNotFound') {\n throw new toolkit_error_1.ToolkitError('SsmParameterNotFound', `SSM parameter ${parameterName} not found. Has the environment been bootstrapped? Please run \\'cdk bootstrap\\' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)`);\n }\n throw e;\n }\n }\n async prepareEcrRepository(repositoryName) {\n if (!this.sdk) {\n throw new toolkit_error_1.ToolkitError('SdkNotInitialized', 'ToolkitInfo needs to have been initialized with an sdk to call prepareEcrRepository');\n }\n const ecr = this.sdk.ecr();\n // check if repo already exists\n try {\n await this.ioHelper.defaults.debug(`${repositoryName}: checking if ECR repository already exists`);\n const describeResponse = await ecr.describeRepositories({\n repositoryNames: [repositoryName],\n });\n const existingRepositoryUri = describeResponse.repositories[0]?.repositoryUri;\n if (existingRepositoryUri) {\n return { repositoryUri: existingRepositoryUri };\n }\n }\n catch (e) {\n if (e.name !== 'RepositoryNotFoundException') {\n throw e;\n }\n }\n // create the repo (tag it so it will be easier to garbage collect in the future)\n await this.ioHelper.defaults.debug(`${repositoryName}: creating ECR repository`);\n const assetTag = { Key: 'awscdk:asset', Value: 'true' };\n const response = await ecr.createRepository({\n repositoryName,\n tags: [assetTag],\n });\n const repositoryUri = response.repository?.repositoryUri;\n if (!repositoryUri) {\n throw new toolkit_error_1.ToolkitError('EcrRepositoryCreateFailed', `CreateRepository did not return a repository URI for ${repositoryUri}`);\n }\n // configure image scanning on push (helps in identifying software vulnerabilities, no additional charge)\n await this.ioHelper.defaults.debug(`${repositoryName}: enable image scanning`);\n await ecr.putImageScanningConfiguration({\n repositoryName,\n imageScanningConfiguration: { scanOnPush: true },\n });\n return { repositoryUri };\n }\n}\nexports.EnvironmentResources = EnvironmentResources;\nclass NoBootstrapStackEnvironmentResources extends EnvironmentResources {\n constructor(environment, sdk, ioHelper) {\n super(environment, sdk, ioHelper, emptyCache());\n }\n /**\n * Look up the toolkit for a given environment, using a given SDK\n */\n async lookupToolkit() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackRequired', 'Trying to perform an operation that requires a bootstrap stack; you should not see this error, this is a bug in the CDK CLI.');\n }\n}\nexports.NoBootstrapStackEnvironmentResources = NoBootstrapStackEnvironmentResources;\nfunction emptyCache() {\n return {\n ssmParameters: new Map(),\n toolkitInfo: undefined,\n };\n}\n/**\n * The bootstrap template version that introduced ssm:GetParameter\n */\nconst BOOTSTRAP_TEMPLATE_VERSION_INTRODUCING_GETPARAMETER = 5;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnQtcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtEQUEyRDtBQUMzRCxxQ0FBZ0Q7QUFHaEQsd0NBQXFDO0FBQ3JDLGtEQUFzRTtBQUV0RTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsNEJBQTRCO0lBR1Y7SUFGWixLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7SUFFN0QsWUFBNkIsZ0JBQXlCO1FBQXpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUztJQUN0RCxDQUFDO0lBRU0sR0FBRyxDQUFDLG1CQUFnQyxFQUFFLEdBQVEsRUFBRSxRQUFrQjtRQUN2RSxNQUFNLEdBQUcsR0FBRyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzRSxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxRQUFRLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLElBQUksb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNGO0FBZkQsb0VBZUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQWEsb0JBQW9CO0lBRWI7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUxuQixZQUNrQixXQUF3QixFQUN2QixHQUFRLEVBQ1IsUUFBa0IsRUFDbEIsS0FBdUIsRUFDdkIsZ0JBQXlCO1FBSjFCLGdCQUFXLEdBQVgs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QUFJLEdBQUcsRUFBRTtRQUN4QixXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxtREFBbUQsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBOb3RpY2VzIH0gZnJvbSAnLi4vbm90aWNlcyc7XG5pbXBvcnQgeyB0eXBlIEVjclJlcG9zaXRvcnlJbmZvLCBUb29sa2l0SW5mbyB9IGZyb20gJy4uL3Rvb2xraXQtaW5mbyc7XG5cbi8qKlxuICogUmVnaXN0cnkgY2xhc3MgZm9yIGBFbnZpcm9ubWVudFJlc291cmNlc2AuXG4gKlxuICogVGhlIHN0YXRlIG1hbmFnZW1lbnQgb2YgdGhpcyBjbGFzcyBpcyBhIGJpdCBub24tc3RhbmRhcmQuIFdlIHdhbnQgdG8gY2FjaGVcbiAqIGRhdGEgcmVsYXRlZCB0byB0b29sa2l0IHN0YWNrcyBhbmQgU1NNIHBhcmFtZXRlcnMsIGJ1dCB3ZSBhcmUgbm90IGluIGNoYXJnZVxuICogb2YgZW5zdXJpbmcgY2FjaGluZyBvZiBTREtzLiBTaW5jZSBgRW52aXJvbm1lbnRSZXNvdXJjZXNgIG5lZWRzIGFuIFNESyB0b1xuICogZnVuY3Rpb24sIHdlIHRyZWF0IGl0IGFzIGFuIGVwaGVtZXJhbCBjbGFzcywgYW5kIHN0b3JlIHRoZSBhY3R1YWwgY2FjaGVkIGRhdGFcbiAqIGluIGBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5YC5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEVudmlyb25tZW50Q2FjaGU+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0b29sa2l0U3RhY2tOYW1lPzogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgZm9yKHJlc29sdmVkRW52aXJvbm1lbnQ6IEVudmlyb25tZW50LCBzZGs6IFNESywgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgY29uc3Qga2V5ID0gYCR7cmVzb2x2ZWRFbnZpcm9ubWVudC5hY2NvdW50fToke3Jlc29sdmVkRW52aXJvbm1lbnQucmVnaW9ufWA7XG4gICAgbGV0IGVudkNhY2hlID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICBpZiAoIWVudkNhY2hlKSB7XG4gICAgICBlbnZDYWNoZSA9IGVtcHR5Q2FjaGUoKTtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgZW52Q2FjaGUpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEVudmlyb25tZW50UmVzb3VyY2VzKHJlc29sdmVkRW52aXJvbm1lbnQsIHNkaywgaW9IZWxwZXIsIGVudkNhY2hlLCB0aGlzLnRvb2xraXRTdGFja05hbWUpO1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdpdGggdGhlIGFjY291bnQgYW5kIHJlZ2lvbiB3ZSdyZSBkZXBsb3lpbmcgaW50b1xuICpcbiAqIE1hbmFnZXMgbG9va3VwcyBmb3IgYm9vdHN0cmFwcGVkIHJlc291cmNlcywgZmFsbGluZyBiYWNrIHRvIHRoZSBsZWdhY3kgXCJDREsgVG9vbGtpdFwiXG4gKiBvcmlnaW5hbCBib290c3RyYXAgc3RhY2sgaWYgbmVjZXNzYXJ5LlxuICpcbiAqIFRoZSBzdGF0ZSBtYW5hZ2VtZW50IG9mIHRoaXMgY2xhc3MgaXMgYSBiaXQgbm9uLXN0YW5kYXJkLiBXZSB3YW50IHRvIGNhY2hlXG4gKiBkYXRhIHJlbGF0ZWQgdG8gdG9vbGtpdCBzdGFja3MgYW5kIFNTTSBwYXJhbWV0ZXJzLCBidXQgd2UgYXJlIG5vdCBpbiBjaGFyZ2VcbiAqIG9mIGVuc3VyaW5nIGNhY2hpbmcgb2YgU0RLcy4gU2luY2UgYEVudmlyb25tZW50UmVzb3VyY2VzYCBuZWVkcyBhbiBTREsgdG9cbiAqIGZ1bmN0aW9uLCB3ZSB0cmVhdCBpdCBhcyBhbiBlcGhlbWVyYWwgY2xhc3MsIGFuZCBzdG9yZSB0aGUgYWN0dWFsIGNhY2hlZCBkYXRhXG4gKiBpbiBgRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeWAuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudFJlc291cmNlcyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZGs6IFNESyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlOiBFbnZpcm9ubWVudENhY2hlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZT86IHN0cmluZyxcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogTG9vayB1cCB0aGUgdG9vbGtpdCBmb3IgYSBnaXZlbiBlbnZpcm9ubWVudCwgdXNpbmcgYSBnaXZlbiBTREtcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb29rdXBUb29sa2l0KCkge1xuICAgIGlmICghdGhpcy5jYWNoZS50b29sa2l0SW5mbykge1xuICAgICAgdGhpcy5jYWNoZS50b29sa2l0SW5mbyA9IGF3YWl0IFRvb2xraXRJbmZvLmxvb2t1cCh0aGlzLmVudmlyb25tZW50LCB0aGlzLnNkaywgdGhpcy5pb0hlbHBlciwgdGhpcy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUudG9vbGtpdEluZm87XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhhdCB0aGUgYm9vdHN0cmFwIHN0YWNrIHZlcnNpb24gbWF0Y2hlcyBvciBleGNlZWRzIHRoZSBleHBlY3RlZCB2ZXJzaW9uXG4gICAqXG4gICAqIFVzZSB0aGUgU1NNIHBhcmFtZXRlciBuYW1lIHRvIHJlYWQgdGhlIHZlcnNpb24gbnVtYmVyIGlmIGdpdmVuLCBvdGhlcndpc2UgdXNlIHRoZSB2ZXJzaW9uXG4gICAqIGRpc2NvdmVyZWQgb24gdGhlIGJvb3RzdHJhcCBzdGFjay5cbiAgICpcbiAgICogUGFzcyBpbiB0aGUgU1NNIHBhcmFtZXRlciBuYW1lIHNvIHdlIGNhbiBjYWNoZSB0aGUgbG9va3VwcyBhbiBkb24ndCBuZWVkIHRvIGRvIHRoZSBzYW1lXG4gICAqIGxvb2t1cCBhZ2FpbiBhbmQgYWdhaW4gZm9yIGV2ZXJ5IGFydGlmYWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlVmVyc2lvbihleHBlY3RlZFZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZCwgc3NtUGFyYW1ldGVyTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKGV4cGVjdGVkVmVyc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBObyByZXF1aXJlbWVudFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWZFeHBlY3RlZFZlcnNpb24gPSBleHBlY3RlZFZlcnNpb247XG5cbiAgICBpZiAoc3NtUGFyYW1ldGVyTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBkb1ZhbGlkYXRlKGF3YWl0IHRoaXMudmVyc2lvbkZyb21Tc21QYXJhbWV0ZXIoc3NtUGFyYW1ldGVyTmFtZSksIHRoaXMuZW52aXJvbm1lbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKGUubmFtZSAhPT0gJ0FjY2Vzc0RlbmllZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyBhIGZhbGxiYWNrISBUaGUgYm9vdHN0cmFwIHRlbXBsYXRlIHRoYXQgZ29lcyBhbG9uZyB3aXRoIHRoaXMgY2hhbmdlIGludHJvZHVjZXNcbiAgICAgICAgLy8gYSBuZXcgJ3NzbTpHZXRQYXJhbWV0ZXInIHBlcm1pc3Npb24sIGJ1dCB3aGVuIHJ1biB1c2luZyB0aGUgcHJldmlvdXMgYm9vdHN0cmFwIHRlbXBsYXRlIHdlXG4gICAgICAgIC8vIHdvbid0IGhhdmUgdGhlIHBlcm1pc3Npb25zIHlldCB0byByZWFkIHRoZSB2ZXJzaW9uLCBzbyB3ZSB3b24ndCBiZSBhYmxlIHRvIHNob3cgdGhlXG4gICAgICAgIC8vIG1lc3NhZ2UgdGVsbGluZyB0aGUgdXNlciB0aGV5IG5lZWQgdG8gdXBkYXRlISBXaGVuIHdlIHNlZSBhbiBBY2Nlc3NEZW5pZWRFeGNlcHRpb24sIGZhbGxcbiAgICAgICAgLy8gYmFjayB0byB0aGUgdmVyc2lvbiB3ZSByZWFkIGZyb20gU3RhY2sgT3V0cHV0czsgYnV0IE9OTFkgaWYgdGhlIHZlcnNpb24gd2UgZGlzY292ZXJlZCB2aWFcbiAgICAgICAgLy8gb3V0cHV0cyBpcyBsZWdpdGltYXRlbHkgYW4gb2xkIHZlcnNpb24uIElmIGl0J3MgbmV3ZXIgdGhhbiB0aGF0LCBzb21ldGhpbmcgZWxzZSBtdXN0IGJlIGJyb2tlbixcbiAgICAgICAgLy8gc28gbGV0IGl0IGZhaWwgYXMgaXQgd291bGQgaWYgd2UgZGlkbid0IGhhdmUgdGhpcyBmYWxsYmFjay5cbiAgICAgICAgY29uc3QgYm9vdHN0cmFwU3RhY2sgPSBhd2FpdCB0aGlzLmxvb2t1cFRvb2xraXQoKTtcbiAgICAgICAgaWYgKGJvb3RzdHJhcFN0YWNrLmZvdW5kICYmIGJvb3RzdHJhcFN0YWNrLnZlcnNpb24gPCBCT09UU1RSQVBfVEVNUExBVEVfVkVSU0lPTl9JTlRST0RVQ0lOR19HRVRQQVJBTUVURVIpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oXG4gICAgICAgICAgICBgQ291bGQgbm90IHJlYWQgU1NNIHBhcmFtZXRlciAke3NzbVBhcmFtZXRlck5hbWV9OiAke2Zvcm1hdEVycm9yTWVzc2FnZShlKX0sIGZhbGxpbmcgYmFjayB0byB2ZXJzaW9uIGZyb20gJHtib290c3RyYXBTdGFja31gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgZG9WYWxpZGF0ZShib290c3RyYXBTdGFjay52ZXJzaW9uLCB0aGlzLmVudmlyb25tZW50KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdCb290c3RyYXBWZXJzaW9uU3NtQ29uZmlybWF0aW9uRmFpbGVkJyxcbiAgICAgICAgICBgVGhpcyBDREsgZGVwbG95bWVudCByZXF1aXJlcyBib290c3RyYXAgc3RhY2sgdmVyc2lvbiAnJHtleHBlY3RlZFZlcnNpb259JywgYnV0IGR1cmluZyB0aGUgY29uZmlybWF0aW9uIHZpYSBTU00gcGFyYW1ldGVyICR7c3NtUGFyYW1ldGVyTmFtZX0gdGhlIGZvbGxvd2luZyBlcnJvciBvY2N1cnJlZDogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gU1NNIHBhcmFtZXRlclxuICAgIGNvbnN0IGJvb3RzdHJhcFN0YWNrID0gYXdhaXQgdGhpcy5sb29rdXBUb29sa2l0KCk7XG4gICAgZG9WYWxpZGF0ZShib290c3RyYXBTdGFjay52ZXJzaW9uLCB0aGlzLmVudmlyb25tZW50KTtcblxuICAgIGZ1bmN0aW9uIGRvVmFsaWRhdGUodmVyc2lvbjogbnVtYmVyLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpIHtcbiAgICAgIGNvbnN0IG5vdGljZXMgPSBOb3RpY2VzLmdldCgpO1xuICAgICAgaWYgKG5vdGljZXMpIHtcbiAgICAgICAgLy8gaWYgYE5vdGljZXNgIGhhc24ndCBiZWVuIGluaXRpYWxpemVkIHRoZXJlIGlzIHByb2JhYmx5IGEgZ29vZFxuICAgICAgICAvLyByZWFzb24gZm9yIGl0LiBoYW5kbGUgZ3JhY2VmdWxseS5cbiAgICAgICAgbm90aWNlcy5hZGRCb290c3RyYXBwZWRFbnZpcm9ubWVudCh7IGJvb3RzdHJhcFN0YWNrVmVyc2lvbjogdmVyc2lvbiwgZW52aXJvbm1lbnQgfSk7XG4gICAgICB9XG4gICAgICBpZiAoZGVmRXhwZWN0ZWRWZXJzaW9uID4gdmVyc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdPdXRkYXRlZEJvb3RzdHJhcFN0YWNrJyxcbiAgICAgICAgICBgVGhpcyBDREsgZGVwbG95bWVudCByZXF1aXJlcyBib290c3RyYXAgc3RhY2sgdmVyc2lvbiAnJHtleHBlY3RlZFZlcnNpb259JywgZm91bmQgJyR7dmVyc2lvbn0nLiBQbGVhc2UgcnVuICdjZGsgYm9vdHN0cmFwJy5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIGEgdmVyc2lvbiBmcm9tIGFuIFNTTSBwYXJhbWV0ZXIsIGNhY2hlZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZlcnNpb25Gcm9tU3NtUGFyYW1ldGVyKHBhcmFtZXRlck5hbWU6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmNhY2hlLnNzbVBhcmFtZXRlcnMuZ2V0KHBhcmFtZXRlck5hbWUpO1xuICAgIGlmIChleGlzdGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuXG4gICAgY29uc3Qgc3NtID0gdGhpcy5zZGsuc3NtKCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3NtLmdldFBhcmFtZXRlcih7XG4gICAgICAgIE5hbWU6IHBhcmFtZXRlck5hbWUsXG4gICAgICAgIC8vIEEgY3VzdG9tIHRlbXBsYXRlIG1pZ2h0IHVzZSBhIFNlY3VyZVN0cmluZyBmb3IgdGhpcywgc28gd2UgcmVxdWVzdCB0aGUgZGVjcnlwdGVkIHBhcmFtZXRlci5cbiAgICAgICAgLy8gVGhlIGZsYWcgaXMgc2FmZSB0byBzZXQsIHNpbmNlIGl0IHdpbGwgYmUgaWdub3JlZCBmb3IgdW5lbmNyeXB0ZWQgcGFyYW1ldGVycy5cbiAgICAgICAgLy8gSXQgaXMgc3RpbGwgdXAgdG8gdXNlciB0byBlbnN1cmUgdGhhdCBhbGwgcm9sZXMgaGF2ZSBzdWZmaWNpZW50IHBlcm1pc3Npb25zLFxuICAgICAgICAvLyBob3dldmVyIHdoZW4gdXNpbmcgQVdTIE1hbmFnZWQgS2V5cywgU1NNIGlzIGdyYW50ZWQgZGVjcnlwdGlvbiBwZXJtaXNzaW9ucyBieSBkZWZhdWx0LlxuICAgICAgICBXaXRoRGVjcnlwdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhc051bWJlciA9IHBhcnNlSW50KGAke3Jlc3VsdC5QYXJhbWV0ZXI/LlZhbHVlfWAsIDEwKTtcbiAgICAgIGlmIChpc05hTihhc051bWJlcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU3NtUGFyYW1ldGVyTm90QU51bWJlcicsIGBTU00gcGFyYW1ldGVyICR7cGFyYW1ldGVyTmFtZX0gbm90IGEgbnVtYmVyOiAke3Jlc3VsdC5QYXJhbWV0ZXI/LlZhbHVlfWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNhY2hlLnNzbVBhcmFtZXRlcnMuc2V0KHBhcmFtZXRlck5hbWUsIGFzTnVtYmVyKTtcbiAgICAgIHJldHVybiBhc051bWJlcjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgPT09ICdQYXJhbWV0ZXJOb3RGb3VuZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAnU3NtUGFyYW1ldGVyTm90Rm91bmQnLFxuICAgICAgICAgIGBTU00gcGFyYW1ldGVyICR7cGFyYW1ldGVyTmFtZX0gbm90IGZvdW5kLiBIYXMgdGhlIGVudmlyb25tZW50IGJlZW4gYm9vdHN0cmFwcGVkPyBQbGVhc2UgcnVuIFxcJ2NkayBib290c3RyYXBcXCcgKHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2xhdGVzdC9ndWlkZS9ib290c3RyYXBwaW5nLmh0bWwpYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHByZXBhcmVFY3JSZXBvc2l0b3J5KHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEVjclJlcG9zaXRvcnlJbmZvPiB7XG4gICAgaWYgKCF0aGlzLnNkaykge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2RrTm90SW5pdGlhbGl6ZWQnLCAnVG9vbGtpdEluZm8gbmVlZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGggYW4gc2RrIHRvIGNhbGwgcHJlcGFyZUVjclJlcG9zaXRvcnknKTtcbiAgICB9XG4gICAgY29uc3QgZWNyID0gdGhpcy5zZGsuZWNyKCk7XG5cbiAgICAvLyBjaGVjayBpZiByZXBvIGFscmVhZHkgZXhpc3RzXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYCR7cmVwb3NpdG9yeU5hbWV9OiBjaGVja2luZyBpZiBFQ1IgcmVwb3NpdG9yeSBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgY29uc3QgZGVzY3JpYmVSZXNwb25zZSA9IGF3YWl0IGVjci5kZXNjcmliZVJlcG9zaXRvcmllcyh7XG4gICAgICAgIHJlcG9zaXRvcnlOYW1lczogW3JlcG9zaXRvcnlOYW1lXSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXhpc3RpbmdSZXBvc2l0b3J5VXJpID0gZGVzY3JpYmVSZXNwb25zZS5yZXBvc2l0b3JpZXMhWzBdPy5yZXBvc2l0b3J5VXJpO1xuICAgICAgaWYgKGV4aXN0aW5nUmVwb3NpdG9yeVVyaSkge1xuICAgICAgICByZXR1cm4geyByZXBvc2l0b3J5VXJpOiBleGlzdGluZ1JlcG9zaXRvcnlVcmkgfTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdSZXBvc2l0b3J5Tm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIHRoZSByZXBvICh0YWcgaXQgc28gaXQgd2lsbCBiZSBlYXNpZXIgdG8gZ2FyYmFnZSBjb2xsZWN0IGluIHRoZSBmdXR1cmUpXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtyZXBvc2l0b3J5TmFtZX06IGNyZWF0aW5nIEVDUiByZXBvc2l0b3J5YCk7XG4gICAgY29uc3QgYXNzZXRUYWcgPSB7IEtleTogJ2F3c2Nkazphc3NldCcsIFZhbHVlOiAndHJ1ZScgfTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjci5jcmVhdGVSZXBvc2l0b3J5KHtcbiAgICAgIHJlcG9zaXRvcnlOYW1lLFxuICAgICAgdGFnczogW2Fzc2V0VGFnXSxcbiAgICB9KTtcbiAgICBjb25zdCByZXBvc2l0b3J5VXJpID0gcmVzcG9uc2UucmVwb3NpdG9yeT8ucmVwb3NpdG9yeVVyaTtcbiAgICBpZiAoIXJlcG9zaXRvcnlVcmkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0VjclJlcG9zaXRvcnlDcmVhdGVGYWlsZWQnLCBgQ3JlYXRlUmVwb3NpdG9yeSBkaWQgbm90IHJldHVybiBhIHJlcG9zaXRvcnkgVVJJIGZvciAke3JlcG9zaXRvcnlVcml9YCk7XG4gICAgfVxuXG4gICAgLy8gY29uZmlndXJlIGltYWdlIHNjYW5uaW5nIG9uIHB1c2ggKGhlbHBzIGluIGlkZW50aWZ5aW5nIHNvZnR3YXJlIHZ1bG5lcmFiaWxpdGllcywgbm8gYWRkaXRpb25hbCBjaGFyZ2UpXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgJHtyZXBvc2l0b3J5TmFtZX06IGVuYWJsZSBpbWFnZSBzY2FubmluZ2ApO1xuICAgIGF3YWl0IGVjci5wdXRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbih7XG4gICAgICByZXBvc2l0b3J5TmFtZSxcbiAgICAgIGltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uOiB7IHNjYW5PblB1c2g6IHRydWUgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHJlcG9zaXRvcnlVcmkgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm9Cb290c3RyYXBTdGFja0Vudmlyb25tZW50UmVzb3VyY2VzIGV4dGVuZHMgRW52aXJvbm1lbnRSZXNvdXJjZXMge1xuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsIHNkazogU0RLLCBpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCwgc2RrLCBpb0hlbHBlciwgZW1wdHlDYWNoZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rIHVwIHRoZSB0b29sa2l0IGZvciBhIGdpdmVuIGVudmlyb25tZW50LCB1c2luZyBhIGdpdmVuIFNES1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvb2t1cFRvb2xraXQoKTogUHJvbWlzZTxUb29sa2l0SW5mbz4ge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAnQm9vdHN0cmFwU3RhY2tSZXF1aXJlZCcsXG4gICAgICAnVHJ5aW5nIHRvIHBlcmZvcm0gYW4gb3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMgYSBib290c3RyYXAgc3RhY2s7IHlvdSBzaG91bGQgbm90IHNlZSB0aGlzIGVycm9yLCB0aGlzIGlzIGEgYnVnIGluIHRoZSBDREsgQ0xJLicsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgdGhhdCBpcyBjYWNoZWQgb24gYSBwZXItZW52aXJvbm1lbnQgbGV2ZWxcbiAqXG4gKiBUaGlzIGNhY2hlIG1heSBiZSBzaGFyZWQgYmV0d2VlbiBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBgRW52aXJvbm1lbnRSZXNvdXJjZXNgIGNsYXNzLlxuICovXG5pbnRlcmZhY2UgRW52aXJvbm1lbnRDYWNoZSB7XG4gIHJlYWRvbmx5IHNzbVBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIG51bWJlcj47XG4gIHRvb2xraXRJbmZvPzogVG9vbGtpdEluZm87XG59XG5cbmZ1bmN0aW9uIGVtcHR5Q2FjaGUoKTogRW52aXJvbm1lbnRDYWNoZSB7XG4gIHJldHVybiB7XG4gICAgc3NtUGFyYW1ldGVyczogbmV3IE1hcCgpLFxuICAgIHRvb2xraXRJbmZvOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogVGhlIGJvb3RzdHJhcCB0ZW1wbGF0ZSB2ZXJzaW9uIHRoYXQgaW50cm9kdWNlZCBzc206R2V0UGFyYW1ldGVyXG4gKi9cbmNvbnN0IEJPT1RTVFJBUF9URU1QTEFURV9WRVJTSU9OX0lOVFJPRFVDSU5HX0dFVFBBUkFNRVRFUiA9IDU7XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./environment-access\"), exports);\n__exportStar(require(\"./environment-resources\"), exports);\n__exportStar(require(\"./placeholders\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXFDO0FBQ3JDLDBEQUF3QztBQUN4QyxpREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50LWFjY2Vzcyc7XG5leHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50LXJlc291cmNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsYWNlaG9sZGVycyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceEnvPlaceholders = replaceEnvPlaceholders;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.\n */\nasync function replaceEnvPlaceholders(object, env, sdkProvider) {\n return cloud_assembly_api_1.EnvironmentPlaceholders.replaceAsync(object, {\n accountId: () => Promise.resolve(env.account),\n region: () => Promise.resolve(env.region),\n partition: async () => {\n // There's no good way to get the partition!\n // We should have had it already, except we don't.\n //\n // Best we can do is ask the \"base credentials\" for this environment for their partition. Cross-partition\n // AssumeRole'ing will never work anyway, so this answer won't be wrong (it will just be slow!)\n return (await sdkProvider.baseCredentialsPartition(env, plugin_1.Mode.ForReading)) ?? 'aws';\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsd0RBaUJDO0FBekJELG9FQUF3RjtBQUd4RixzQ0FBaUM7QUFFakM7O0dBRUc7QUFDSSxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLE1BQVMsRUFDVCxHQUFnQixFQUNoQixXQUF3QjtJQUV4QixPQUFPLDRDQUF1QixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7UUFDbEQsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM3QyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3pDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNwQiw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELEVBQUU7WUFDRix5R0FBeUc7WUFDekcsK0ZBQStGO1lBQy9GLE9BQU8sQ0FBQyxNQUFNLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsYUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3JGLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBCcmFuZGVkIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luJztcblxuLyoqXG4gKiBSZXBsYWNlIHRoZSB7QUNDT1VOVH0gYW5kIHtSRUdJT059IHBsYWNlaG9sZGVycyBpbiBhbGwgc3RyaW5ncyBmb3VuZCBpbiBhIGNvbXBsZXggb2JqZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwbGFjZUVudlBsYWNlaG9sZGVyczxBIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPj4oXG4gIG9iamVjdDogQSxcbiAgZW52OiBFbnZpcm9ubWVudCxcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuKTogUHJvbWlzZTx7IFtrIGluIGtleW9mIEFdOiBTdHJpbmdXaXRob3V0UGxhY2Vob2xkZXJzIHwgdW5kZWZpbmVkIH0+IHtcbiAgcmV0dXJuIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLnJlcGxhY2VBc3luYyhvYmplY3QsIHtcbiAgICBhY2NvdW50SWQ6ICgpID0+IFByb21pc2UucmVzb2x2ZShlbnYuYWNjb3VudCksXG4gICAgcmVnaW9uOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoZW52LnJlZ2lvbiksXG4gICAgcGFydGl0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBUaGVyZSdzIG5vIGdvb2Qgd2F5IHRvIGdldCB0aGUgcGFydGl0aW9uIVxuICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgaGFkIGl0IGFscmVhZHksIGV4Y2VwdCB3ZSBkb24ndC5cbiAgICAgIC8vXG4gICAgICAvLyBCZXN0IHdlIGNhbiBkbyBpcyBhc2sgdGhlIFwiYmFzZSBjcmVkZW50aWFsc1wiIGZvciB0aGlzIGVudmlyb25tZW50IGZvciB0aGVpciBwYXJ0aXRpb24uIENyb3NzLXBhcnRpdGlvblxuICAgICAgLy8gQXNzdW1lUm9sZSdpbmcgd2lsbCBuZXZlciB3b3JrIGFueXdheSwgc28gdGhpcyBhbnN3ZXIgd29uJ3QgYmUgd3JvbmcgKGl0IHdpbGwganVzdCBiZSBzbG93ISlcbiAgICAgIHJldHVybiAoYXdhaXQgc2RrUHJvdmlkZXIuYmFzZUNyZWRlbnRpYWxzUGFydGl0aW9uKGVudiwgTW9kZS5Gb3JSZWFkaW5nKSkgPz8gJ2F3cyc7XG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFN0cmluZ1dpdGhvdXRQbGFjZWhvbGRlcnMgPSBCcmFuZGVkPHN0cmluZywgJ05vUGxhY2Vob2xkZXJzJz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableAppSyncChange = isHotswappableAppSyncChange;\nconst common_1 = require(\"./common\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nasync function isHotswappableAppSyncChange(logicalId, change, evaluateCfnTemplate) {\n const isResolver = change.newValue.Type === 'AWS::AppSync::Resolver';\n const isFunction = change.newValue.Type === 'AWS::AppSync::FunctionConfiguration';\n const isGraphQLSchema = change.newValue.Type === 'AWS::AppSync::GraphQLSchema';\n const isAPIKey = change.newValue.Type === 'AWS::AppSync::ApiKey';\n if (!isResolver && !isFunction && !isGraphQLSchema && !isAPIKey) {\n return [];\n }\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, [\n 'RequestMappingTemplate',\n 'RequestMappingTemplateS3Location',\n 'ResponseMappingTemplate',\n 'ResponseMappingTemplateS3Location',\n 'Code',\n 'CodeS3Location',\n 'Definition',\n 'DefinitionS3Location',\n 'Expires',\n ]);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n const namesOfHotswappableChanges = Object.keys(classifiedChanges.hotswappableProps);\n if (namesOfHotswappableChanges.length > 0) {\n let physicalName = undefined;\n const arn = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, isFunction ? change.newValue.Properties?.Name : undefined);\n if (isResolver) {\n const arnParts = arn?.split('/');\n physicalName = arnParts ? `${arnParts[3]}.${arnParts[5]}` : undefined;\n }\n else {\n physicalName = arn;\n }\n // nothing do here\n if (!physicalName) {\n return ret;\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId,\n resourceType: change.newValue.Type,\n physicalName,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'appsync',\n apply: async (sdk) => {\n const sdkProperties = {\n ...change.oldValue.Properties,\n Definition: change.newValue.Properties?.Definition,\n DefinitionS3Location: change.newValue.Properties?.DefinitionS3Location,\n requestMappingTemplate: change.newValue.Properties?.RequestMappingTemplate,\n requestMappingTemplateS3Location: change.newValue.Properties?.RequestMappingTemplateS3Location,\n responseMappingTemplate: change.newValue.Properties?.ResponseMappingTemplate,\n responseMappingTemplateS3Location: change.newValue.Properties?.ResponseMappingTemplateS3Location,\n code: change.newValue.Properties?.Code,\n codeS3Location: change.newValue.Properties?.CodeS3Location,\n expires: change.newValue.Properties?.Expires,\n };\n const evaluatedResourceProperties = await evaluateCfnTemplate.evaluateCfnExpression(sdkProperties);\n const sdkRequestObject = (0, util_1.transformObjectKeys)(evaluatedResourceProperties, util_1.lowerCaseFirstCharacter);\n // resolve s3 location files as SDK doesn't take in s3 location but inline code\n if (sdkRequestObject.requestMappingTemplateS3Location) {\n sdkRequestObject.requestMappingTemplate = await fetchFileFromS3(sdkRequestObject.requestMappingTemplateS3Location, sdk);\n delete sdkRequestObject.requestMappingTemplateS3Location;\n }\n if (sdkRequestObject.responseMappingTemplateS3Location) {\n sdkRequestObject.responseMappingTemplate = await fetchFileFromS3(sdkRequestObject.responseMappingTemplateS3Location, sdk);\n delete sdkRequestObject.responseMappingTemplateS3Location;\n }\n if (sdkRequestObject.definitionS3Location) {\n sdkRequestObject.definition = await fetchFileFromS3(sdkRequestObject.definitionS3Location, sdk);\n delete sdkRequestObject.definitionS3Location;\n }\n if (sdkRequestObject.codeS3Location) {\n sdkRequestObject.code = await fetchFileFromS3(sdkRequestObject.codeS3Location, sdk);\n delete sdkRequestObject.codeS3Location;\n }\n if (isResolver) {\n await sdk.appsync().updateResolver(sdkRequestObject);\n }\n else if (isFunction) {\n // Function version is only applicable when using VTL and mapping templates\n // Runtime only applicable when using code (JS mapping templates)\n if (sdkRequestObject.code) {\n delete sdkRequestObject.functionVersion;\n }\n else {\n delete sdkRequestObject.runtime;\n }\n const functions = await sdk.appsync().listFunctions({ apiId: sdkRequestObject.apiId });\n const { functionId } = functions.find((fn) => fn.name === physicalName) ?? {};\n // Updating multiple functions at the same time or along with graphql schema results in `ConcurrentModificationException`\n await exponentialBackOffRetry(() => sdk.appsync().updateFunction({\n ...sdkRequestObject,\n functionId: functionId,\n }), 6, 1000, 'ConcurrentModificationException');\n }\n else if (isGraphQLSchema) {\n let schemaCreationResponse = await sdk\n .appsync()\n .startSchemaCreation(sdkRequestObject);\n while (schemaCreationResponse.status &&\n ['PROCESSING', 'DELETING'].some((status) => status === schemaCreationResponse.status)) {\n await sleep(1000); // poll every second\n const getSchemaCreationStatusRequest = {\n apiId: sdkRequestObject.apiId,\n };\n schemaCreationResponse = await sdk.appsync().getSchemaCreationStatus(getSchemaCreationStatusRequest);\n }\n if (schemaCreationResponse.status === 'FAILED') {\n throw new toolkit_error_1.ToolkitError('SchemaCreationFailed', schemaCreationResponse.details ?? 'Schema creation has failed.');\n }\n }\n else {\n // isApiKey\n if (!sdkRequestObject.id) {\n // ApiKeyId is optional in CFN but required in SDK. Grab the KeyId from physicalArn if not available as part of CFN template\n const arnParts = physicalName?.split('/');\n if (arnParts && arnParts.length === 4) {\n sdkRequestObject.id = arnParts[3];\n }\n }\n await sdk.appsync().updateApiKey(sdkRequestObject);\n }\n },\n });\n }\n return ret;\n}\nasync function fetchFileFromS3(s3Url, sdk) {\n const s3PathParts = s3Url.split('/');\n const s3Bucket = s3PathParts[2]; // first two are \"s3:\" and \"\" due to s3://\n const s3Key = s3PathParts.splice(3).join('/'); // after removing first three we reconstruct the key\n return (await sdk.s3().getObject({ Bucket: s3Bucket, Key: s3Key })).Body?.transformToString();\n}\nasync function exponentialBackOffRetry(fn, numOfRetries, backOff, errorCodeToRetry) {\n try {\n await fn();\n }\n catch (error) {\n if (error && error.name === errorCodeToRetry && numOfRetries > 0) {\n await sleep(backOff); // time to wait doubles everytime function fails, starts at 1 second\n await exponentialBackOffRetry(fn, numOfRetries - 1, backOff * 2, errorCodeToRetry);\n }\n else {\n throw error;\n }\n }\n}\nasync function sleep(ms) {\n return new Promise((ok) => setTimeout(ok, ms));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwc3luYy1tYXBwaW5nLXRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcHN5bmMtbWFwcGluZy10ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSxrRUE0SkM7QUF2S0QscUNBR2tCO0FBRWxCLCtEQUEyRDtBQUMzRCxxQ0FBMEU7QUFLbkUsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQ7SUFFbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssd0JBQXdCLENBQUM7SUFDckUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUsscUNBQXFDLENBQUM7SUFDbEYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssNkJBQTZCLENBQUM7SUFDL0UsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssc0JBQXNCLENBQUM7SUFDakUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFvQixFQUFFLENBQUM7SUFFaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLHdCQUFlLEVBQUMsTUFBTSxFQUFFO1FBQ2hELHdCQUF3QjtRQUN4QixrQ0FBa0M7UUFDbEMseUJBQXlCO1FBQ3pCLG1DQUFtQztRQUNuQyxNQUFNO1FBQ04sZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIsU0FBUztLQUNWLENBQUMsQ0FBQztJQUNILGlCQUFpQixDQUFDLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVELE1BQU0sMEJBQTBCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFB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Q0gsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsb0VBQW9FO1lBQzFGLE1BQU0sdUJBQXVCLENBQUMsRUFBRSxFQUFFLFlBQVksR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDN0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hcHBzeW5jJztcbmltcG9ydCB7XG4gIHR5cGUgSG90c3dhcENoYW5nZSxcbiAgY2xhc3NpZnlDaGFuZ2VzLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgbG93ZXJDYXNlRmlyc3RDaGFyYWN0ZXIsIHRyYW5zZm9ybU9iamVjdEtleXMgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5cbmltcG9ydCB0eXBlIHsgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgY29uc3QgaXNSZXNvbHZlciA9IGNoYW5nZS5uZXdWYWx1ZS5UeXBlID09PSAnQVdTOjpBcHBTeW5jOjpSZXNvbHZlcic7XG4gIGNvbnN0IGlzRnVuY3Rpb24gPSBjaGFuZ2UubmV3VmFsdWUuVHlwZSA9PT0gJ0FXUzo6QXBwU3luYzo6RnVuY3Rpb25Db25maWd1cmF0aW9uJztcbiAgY29uc3QgaXNHcmFwaFFMU2NoZW1hID0gY2hhbmdlLm5ld1ZhbHVlLlR5cGUgPT09ICdBV1M6OkFwcFN5bmM6OkdyYXBoUUxTY2hlbWEnO1xuICBjb25zdCBpc0FQSUtleSA9IGNoYW5nZS5uZXdWYWx1ZS5UeXBlID09PSAnQVdTOjpBcHBTeW5jOjpBcGlLZXknO1xuICBpZiAoIWlzUmVzb2x2ZXIgJiYgIWlzRnVuY3Rpb24gJiYgIWlzR3JhcGhRTFNjaGVtYSAmJiAhaXNBUElLZXkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXQ6IEhvdHN3YXBDaGFuZ2VbXSA9IFtdO1xuXG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgW1xuICAgICdSZXF1ZXN0TWFwcGluZ1RlbXBsYXRlJyxcbiAgICAnUmVxdWVzdE1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24nLFxuICAgICdSZXNwb25zZU1hcHBpbmdUZW1wbGF0ZScsXG4gICAgJ1Jlc3BvbnNlTWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbicsXG4gICAgJ0NvZGUnLFxuICAgICdDb2RlUzNMb2NhdGlvbicsXG4gICAgJ0RlZmluaXRpb24nLFxuICAgICdEZWZpbml0aW9uUzNMb2NhdGlvbicsXG4gICAgJ0V4cGlyZXMnLFxuICBdKTtcbiAgY2xhc3NpZmllZENoYW5nZXMucmVwb3J0Tm9uSG90c3dhcHBhYmxlUHJvcGVydHlDaGFuZ2VzKHJldCk7XG5cbiAgY29uc3QgbmFtZXNPZkhvdHN3YXBwYWJsZUNoYW5nZXMgPSBPYmplY3Qua2V5cyhjbGFzc2lmaWVkQ2hhbmdlcy5ob3Rzd2FwcGFibGVQcm9wcyk7XG4gIGlmIChuYW1lc09mSG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgbGV0IHBoeXNpY2FsTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFybiA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXN0YWJsaXNoUmVzb3VyY2VQaHlzaWNhbE5hbWUoXG4gICAgICBsb2dpY2FsSWQsXG4gICAgICBpc0Z1bmN0aW9uID8gY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/Lk5hbWUgOiB1bmRlZmluZWQsXG4gICAgKTtcbiAgICBpZiAoaXNSZXNvbHZlcikge1xuICAgICAgY29uc3QgYXJuUGFydHMgPSBhcm4/LnNwbGl0KCcvJyk7XG4gICAgICBwaHlzaWNhbE5hbWUgPSBhcm5QYXJ0cyA/IGAke2FyblBhcnRzWzNdfS4ke2FyblBhcnRzWzVdfWAgOiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBoeXNpY2FsTmFtZSA9IGFybjtcbiAgICB9XG5cbiAgICAvLyBub3RoaW5nIGRvIGhlcmVcbiAgICBpZiAoIXBoeXNpY2FsTmFtZSkge1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICByZXQucHVzaCh7XG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgY2F1c2U6IGNoYW5nZSxcbiAgICAgICAgcmVzb3VyY2VzOiBbe1xuICAgICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgICByZXNvdXJjZVR5cGU6IGNoYW5nZS5uZXdWYWx1ZS5UeXBlLFxuICAgICAgICAgIHBoeXNpY2FsTmFtZSxcbiAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICB9XSxcbiAgICAgIH0sXG4gICAgICBob3Rzd2FwcGFibGU6IHRydWUsXG4gICAgICBzZXJ2aWNlOiAnYXBwc3luYycsXG4gICAgICBhcHBseTogYXN5bmMgKHNkazogU0RLKSA9PiB7XG4gICAgICAgIGNvbnN0IHNka1Byb3BlcnRpZXM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgICAgIC4uLmNoYW5nZS5vbGRWYWx1ZS5Qcm9wZXJ0aWVzLFxuICAgICAgICAgIERlZmluaXRpb246IGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5EZWZpbml0aW9uLFxuICAgICAgICAgIERlZmluaXRpb25TM0xvY2F0aW9uOiBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uRGVmaW5pdGlvblMzTG9jYXRpb24sXG4gICAgICAgICAgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZTogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJlcXVlc3RNYXBwaW5nVGVtcGxhdGUsXG4gICAgICAgICAgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb246IGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5SZXF1ZXN0TWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbixcbiAgICAgICAgICByZXNwb25zZU1hcHBpbmdUZW1wbGF0ZTogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlLFxuICAgICAgICAgIHJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbjogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbixcbiAgICAgICAgICBjb2RlOiBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uQ29kZSxcbiAgICAgICAgICBjb2RlUzNMb2NhdGlvbjogY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LkNvZGVTM0xvY2F0aW9uLFxuICAgICAgICAgIGV4cGlyZXM6IGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5FeHBpcmVzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRSZXNvdXJjZVByb3BlcnRpZXMgPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihzZGtQcm9wZXJ0aWVzKTtcbiAgICAgICAgY29uc3Qgc2RrUmVxdWVzdE9iamVjdCA9IHRyYW5zZm9ybU9iamVjdEtleXMoZXZhbHVhdGVkUmVzb3VyY2VQcm9wZXJ0aWVzLCBsb3dlckNhc2VGaXJzdENoYXJhY3Rlcik7XG5cbiAgICAgICAgLy8gcmVzb2x2ZSBzMyBsb2NhdGlvbiBmaWxlcyBhcyBTREsgZG9lc24ndCB0YWtlIGluIHMzIGxvY2F0aW9uIGJ1dCBpbmxpbmUgY29kZVxuICAgICAgICBpZiAoc2RrUmVxdWVzdE9iamVjdC5yZXF1ZXN0TWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbikge1xuICAgICAgICAgIHNka1JlcXVlc3RPYmplY3QucmVxdWVzdE1hcHBpbmdUZW1wbGF0ZSA9IGF3YWl0IGZldGNoRmlsZUZyb21TMyhcbiAgICAgICAgICAgIHNka1JlcXVlc3RPYmplY3QucmVxdWVzdE1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24sXG4gICAgICAgICAgICBzZGssXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWxldGUgc2RrUmVxdWVzdE9iamVjdC5yZXF1ZXN0TWFwcGluZ1RlbXBsYXRlUzNMb2NhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2RrUmVxdWVzdE9iamVjdC5yZXNwb25zZU1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24pIHtcbiAgICAgICAgICBzZGtSZXF1ZXN0T2JqZWN0LnJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlID0gYXdhaXQgZmV0Y2hGaWxlRnJvbVMzKFxuICAgICAgICAgICAgc2RrUmVxdWVzdE9iamVjdC5yZXNwb25zZU1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb24sXG4gICAgICAgICAgICBzZGssXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWxldGUgc2RrUmVxdWVzdE9iamVjdC5yZXNwb25zZU1hcHBpbmdUZW1wbGF0ZVMzTG9jYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNka1JlcXVlc3RPYmplY3QuZGVmaW5pdGlvblMzTG9jYXRpb24pIHtcbiAgICAgICAgICBzZGtSZXF1ZXN0T2JqZWN0LmRlZmluaXRpb24gPSBhd2FpdCBmZXRjaEZpbGVGcm9tUzMoc2RrUmVxdWVzdE9iamVjdC5kZWZpbml0aW9uUzNMb2NhdGlvbiwgc2RrKTtcbiAgICAgICAgICBkZWxldGUgc2RrUmVxdWVzdE9iamVjdC5kZWZpbml0aW9uUzNMb2NhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2RrUmVxdWVzdE9iamVjdC5jb2RlUzNMb2NhdGlvbikge1xuICAgICAgICAgIHNka1JlcXVlc3RPYmplY3QuY29kZSA9IGF3YWl0IGZldGNoRmlsZUZyb21TMyhzZGtSZXF1ZXN0T2JqZWN0LmNvZGVTM0xvY2F0aW9uLCBzZGspO1xuICAgICAgICAgIGRlbGV0ZSBzZGtSZXF1ZXN0T2JqZWN0LmNvZGVTM0xvY2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzUmVzb2x2ZXIpIHtcbiAgICAgICAgICBhd2FpdCBzZGsuYXBwc3luYygpLnVwZGF0ZVJlc29sdmVyKHNka1JlcXVlc3RPYmplY3QpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRnVuY3Rpb24pIHtcbiAgICAgICAgICAvLyBGdW5jdGlvbiB2ZXJzaW9uIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nIFZUTCBhbmQgbWFwcGluZyB0ZW1wbGF0ZXNcbiAgICAgICAgICAvLyBSdW50aW1lIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nIGNvZGUgKEpTIG1hcHBpbmcgdGVtcGxhdGVzKVxuICAgICAgICAgIGlmIChzZGtSZXF1ZXN0T2JqZWN0LmNvZGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBzZGtSZXF1ZXN0T2JqZWN0LmZ1bmN0aW9uVmVyc2lvbjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHNka1JlcXVlc3RPYmplY3QucnVudGltZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmdW5jdGlvbnMgPSBhd2FpdCBzZGsuYXBwc3luYygpLmxpc3RGdW5jdGlvbnMoeyBhcGlJZDogc2RrUmVxdWVzdE9iamVjdC5hcGlJZCB9KTtcbiAgICAgICAgICBjb25zdCB7IGZ1bmN0aW9uSWQgfSA9IGZ1bmN0aW9ucy5maW5kKChmbikgPT4gZm4ubmFtZSA9PT0gcGh5c2ljYWxOYW1lKSA/PyB7fTtcbiAgICAgICAgICAvLyBVcGRhdGluZyBtdWx0aXBsZSBmdW5jdGlvbnMgYXQgdGhlIHNhbWUgdGltZSBvciBhbG9uZyB3aXRoIGdyYXBocWwgc2NoZW1hIHJlc3VsdHMgaW4gYENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb25gXG4gICAgICAgICAgYXdhaXQgZXhwb25lbnRpYWxCYWNrT2ZmUmV0cnkoXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICBzZGsuYXBwc3luYygpLnVwZGF0ZUZ1bmN0aW9uKHtcbiAgICAgICAgICAgICAgICAuLi5zZGtSZXF1ZXN0T2JqZWN0LFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uSWQ6IGZ1bmN0aW9uSWQsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgNixcbiAgICAgICAgICAgIDEwMDAsXG4gICAgICAgICAgICAnQ29uY3VycmVudE1vZGlmaWNhdGlvbkV4Y2VwdGlvbicsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0dyYXBoUUxTY2hlbWEpIHtcbiAgICAgICAgICBsZXQgc2NoZW1hQ3JlYXRpb25SZXNwb25zZTogR2V0U2NoZW1hQ3JlYXRpb25TdGF0dXNDb21tYW5kT3V0cHV0ID0gYXdhaXQgc2RrXG4gICAgICAgICAgICAuYXBwc3luYygpXG4gICAgICAgICAgICAuc3RhcnRTY2hlbWFDcmVhdGlvbihzZGtSZXF1ZXN0T2JqZWN0KTtcbiAgICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICBzY2hlbWFDcmVhdGlvblJlc3BvbnNlLnN0YXR1cyAmJlxuICAgICAgICAgICAgWydQUk9DRVNTSU5HJywgJ0RFTEVUSU5HJ10uc29tZSgoc3RhdHVzKSA9PiBzdGF0dXMgPT09IHNjaGVtYUNyZWF0aW9uUmVzcG9uc2Uuc3RhdHVzKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgYXdhaXQgc2xlZXAoMTAwMCk7IC8vIHBvbGwgZXZlcnkgc2Vjb25kXG4gICAgICAgICAgICBjb25zdCBnZXRTY2hlbWFDcmVhdGlvblN0YXR1c1JlcXVlc3Q6IEdldFNjaGVtYUNyZWF0aW9uU3RhdHVzQ29tbWFuZElucHV0ID0ge1xuICAgICAgICAgICAgICBhcGlJZDogc2RrUmVxdWVzdE9iamVjdC5hcGlJZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzY2hlbWFDcmVhdGlvblJlc3BvbnNlID0gYXdhaXQgc2RrLmFwcHN5bmMoKS5nZXRTY2hlbWFDcmVhdGlvblN0YXR1cyhnZXRTY2hlbWFDcmVhdGlvblN0YXR1c1JlcXVlc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2NoZW1hQ3JlYXRpb25SZXNwb25zZS5zdGF0dXMgPT09ICdGQUlMRUQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdTY2hlbWFDcmVhdGlvbkZhaWxlZCcsIHNjaGVtYUNyZWF0aW9uUmVzcG9uc2UuZGV0YWlscyA/PyAnU2NoZW1hIGNyZWF0aW9uIGhhcyBmYWlsZWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGlzQXBpS2V5XG4gICAgICAgICAgaWYgKCFzZGtSZXF1ZXN0T2JqZWN0LmlkKSB7XG4gICAgICAgICAgICAvLyBBcGlLZXlJZCBpcyBvcHRpb25hbCBpbiBDRk4gYnV0IHJlcXVpcmVkIGluIFNESy4gR3JhYiB0aGUgS2V5SWQgZnJvbSBwaHlzaWNhbEFybiBpZiBub3QgYXZhaWxhYmxlIGFzIHBhcnQgb2YgQ0ZOIHRlbXBsYXRlXG4gICAgICAgICAgICBjb25zdCBhcm5QYXJ0cyA9IHBoeXNpY2FsTmFtZT8uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChhcm5QYXJ0cyAmJiBhcm5QYXJ0cy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgICAgc2RrUmVxdWVzdE9iamVjdC5pZCA9IGFyblBhcnRzWzNdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhd2FpdCBzZGsuYXBwc3luYygpLnVwZGF0ZUFwaUtleShzZGtSZXF1ZXN0T2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoRmlsZUZyb21TMyhzM1VybDogc3RyaW5nLCBzZGs6IFNESykge1xuICBjb25zdCBzM1BhdGhQYXJ0cyA9IHMzVXJsLnNwbGl0KCcvJyk7XG4gIGNvbnN0IHMzQnVja2V0ID0gczNQYXRoUGFydHNbMl07IC8vIGZpcnN0IHR3byBhcmUgXCJzMzpcIiBhbmQgXCJcIiBkdWUgdG8gczM6Ly9cbiAgY29uc3QgczNLZXkgPSBzM1BhdGhQYXJ0cy5zcGxpY2UoMykuam9pbignLycpOyAvLyBhZnRlciByZW1vdmluZyBmaXJzdCB0aHJlZSB3ZSByZWNvbnN0cnVjdCB0aGUga2V5XG4gIHJldHVybiAoYXdhaXQgc2RrLnMzKCkuZ2V0T2JqZWN0KHsgQnVja2V0OiBzM0J1Y2tldCwgS2V5OiBzM0tleSB9KSkuQm9keT8udHJhbnNmb3JtVG9TdHJpbmcoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhwb25lbnRpYWxCYWNrT2ZmUmV0cnkoZm46ICgpID0+IFByb21pc2U8YW55PiwgbnVtT2ZSZXRyaWVzOiBudW1iZXIsIGJhY2tPZmY6IG51bWJlciwgZXJyb3JDb2RlVG9SZXRyeTogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZm4oKTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmIChlcnJvciAmJiBlcnJvci5uYW1lID09PSBlcnJvckNvZGVUb1JldHJ5ICYmIG51bU9mUmV0cmllcyA+IDApIHtcbiAgICAgIGF3YWl0IHNsZWVwKGJhY2tPZmYpOyAvLyB0aW1lIHRvIHdhaXQgZG91YmxlcyBldmVyeXRpbWUgZnVuY3Rpb24gZmFpbHMsIHN0YXJ0cyBhdCAxIHNlY29uZFxuICAgICAgYXdhaXQgZXhwb25lbnRpYWxCYWNrT2ZmUmV0cnkoZm4sIG51bU9mUmV0cmllcyAtIDEsIGJhY2tPZmYgKiAyLCBlcnJvckNvZGVUb1JldHJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChvaykgPT4gc2V0VGltZW91dChvaywgbXMpKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableCloudControlChange = isHotswappableCloudControlChange;\nconst common_1 = require(\"./common\");\nconst payloads_1 = require(\"../../payloads\");\nconst cloudformation_1 = require(\"../cloudformation\");\nasync function isHotswappableCloudControlChange(logicalId, change, evaluateCfnTemplate, _hotswapPropertyOverrides) {\n const ret = [];\n const changedPropNames = Object.keys(change.propertyUpdates);\n if (changedPropNames.length === 0) {\n return ret;\n }\n const classifiedChanges = (0, common_1.classifyChanges)(change, changedPropNames);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n if (classifiedChanges.namesOfHotswappableProps.length === 0) {\n return ret;\n }\n const resourceType = change.newValue.Type;\n const identifier = await resolveCloudControlIdentifier(logicalId, resourceType, evaluateCfnTemplate);\n if (!identifier) {\n ret.push((0, common_1.nonHotswappableChange)(change, payloads_1.NonHotswappableReason.RESOURCE_UNSUPPORTED, 'Could not determine the physical name or primary identifier of the resource, so Cloud Control API cannot hotswap it.'));\n return ret;\n }\n // Eagerly evaluate property values so that unresolvable references\n // are caught here and the resource is classified as non-hotswappable\n // instead of failing at apply time. This is for resources that depend\n // on resources where an update means replacement.\n const evaluatedProps = {};\n for (const propName of classifiedChanges.namesOfHotswappableProps) {\n try {\n evaluatedProps[propName] = await evaluateCfnTemplate.evaluateCfnExpression(change.propertyUpdates[propName].newValue);\n }\n catch (e) {\n if (e instanceof cloudformation_1.CfnEvaluationException) {\n ret.push((0, common_1.nonHotswappableChange)(change, payloads_1.NonHotswappableReason.RESOURCE_UNSUPPORTED, `Property '${propName}' of resource '${logicalId}' has been replaced and could not be resolved: ${e.message}`));\n return ret;\n }\n throw e;\n }\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId,\n resourceType,\n physicalName: identifier,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'cloudcontrol',\n apply: async (sdk) => {\n const cloudControl = sdk.cloudControl();\n const patchOps = [];\n for (const propName of classifiedChanges.namesOfHotswappableProps) {\n const diff = change.propertyUpdates[propName];\n const newValue = evaluatedProps[propName];\n if (diff.isRemoval) {\n patchOps.push({ op: 'remove', path: `/${propName}` });\n }\n else if (diff.isAddition) {\n patchOps.push({ op: 'add', path: `/${propName}`, value: newValue });\n }\n else {\n patchOps.push({ op: 'replace', path: `/${propName}`, value: newValue });\n }\n }\n // nothing to hotswap\n if (patchOps.length === 0) {\n return;\n }\n await cloudControl.updateResource({\n TypeName: resourceType,\n Identifier: identifier,\n PatchDocument: JSON.stringify(patchOps),\n });\n },\n });\n return ret;\n}\n/**\n * Resolves the Cloud Control API identifier for a resource.\n *\n * CCAPI resources with compound primary identifiers need their identifiers to be\n * built by joining each component with \"|\". CloudFormation's PhysicalResourceId\n * only returns a single value, which doesn't work for compound keys.\n *\n * Falls back to the CloudFormation physical resource ID for when the schema cannot be retrieved.\n */\nasync function resolveCloudControlIdentifier(logicalId, resourceType, evaluateCfnTemplate) {\n const cfnPhysicalId = await evaluateCfnTemplate.findPhysicalNameFor(logicalId);\n if (!cfnPhysicalId) {\n return undefined;\n }\n return evaluateCfnTemplate.evaluateCloudControlIdentifier(logicalId, resourceType, cfnPhysicalId);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtY29udHJvbC1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkLWNvbnRyb2wtcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSw0RUFnR0M7QUF0R0QscUNBQWtFO0FBQ2xFLDZDQUF1RDtBQUd2RCxzREFBZ0c7QUFFekYsS0FBSyxVQUFVLGdDQUFnQyxDQUNwRCxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQsRUFDbkQseUJBQWtDO0lBRWxDLE1BQU0sR0FBRyxHQUFvQixFQUFFLENBQUM7SUFFaEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3RCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxNQUFNLGlCQUFpQixHQUFHLElBQUEsd0JBQWUsRUFBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxpQkFBaUIsQ0FBQyxvQ0FBb0MsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU1RCxJQUFJLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUUxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLDZCQUE2QixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNyRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFxQixFQUM1QixNQUFNLEVBQ04sZ0NBQXFCLENBQUMsb0JBQW9CLEVBQzFDLHNIQUFzSCxDQUN2SCxDQUFDLENBQUM7UUFDSCxPQUFP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QUVEOzs7Ozs7OztHQVFHO0FBQ0gsS0FBSyxVQUFVLDZCQUE2QixDQUMxQyxTQUFpQixFQUNqQixZQUFvQixFQUNwQixtQkFBbUQ7SUFFbkQsTUFBTSxhQUFhLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sbUJBQW1CLENBQUMsOEJBQThCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNwRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBIb3Rzd2FwQ2hhbmdlIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgY2xhc3NpZnlDaGFuZ2VzLCBub25Ib3Rzd2FwcGFibGVDaGFuZ2UgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBOb25Ib3Rzd2FwcGFibGVSZWFzb24gfSBmcm9tICcuLi8uLi9wYXlsb2Fkcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbiwgdHlwZSBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZShcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbiAgX2hvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogdW5rbm93bixcbik6IFByb21pc2U8SG90c3dhcENoYW5nZVtdPiB7XG4gIGNvbnN0IHJldDogSG90c3dhcENoYW5nZVtdID0gW107XG5cbiAgY29uc3QgY2hhbmdlZFByb3BOYW1lcyA9IE9iamVjdC5rZXlzKGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMpO1xuICBpZiAoY2hhbmdlZFByb3BOYW1lcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gcmV0O1xuICB9XG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgY2hhbmdlZFByb3BOYW1lcyk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuXG4gIGlmIChjbGFzc2lmaWVkQ2hhbmdlcy5uYW1lc09mSG90c3dhcHBhYmxlUHJvcHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlVHlwZSA9IGNoYW5nZS5uZXdWYWx1ZS5UeXBlO1xuXG4gIGNvbnN0IGlkZW50aWZpZXIgPSBhd2FpdCByZXNvbHZlQ2xvdWRDb250cm9sSWRlbnRpZmllcihsb2dpY2FsSWQsIHJlc291cmNlVHlwZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG4gIGlmICghaWRlbnRpZmllcikge1xuICAgIHJldC5wdXNoKG5vbkhvdHN3YXBwYWJsZUNoYW5nZShcbiAgICAgIGNoYW5nZSxcbiAgICAgIE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9VTlNVUFBPUlRFRCxcbiAgICAgICdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBwaHlzaWNhbCBuYW1lIG9yIHByaW1hcnkgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UsIHNvIENsb3VkIENvbnRyb2wgQVBJIGNhbm5vdCBob3Rzd2FwIGl0LicsXG4gICAgKSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8vIEVhZ2VybHkgZXZhbHVhdGUgcHJvcGVydHkgdmFsdWVzIHNvIHRoYXQgdW5yZXNvbHZhYmxlIHJlZmVyZW5jZXNcbiAgLy8gYXJlIGNhdWdodCBoZXJlIGFuZCB0aGUgcmVzb3VyY2UgaXMgY2xhc3NpZmllZCBhcyBub24taG90c3dhcHBhYmxlXG4gIC8vIGluc3RlYWQgb2YgZmFpbGluZyBhdCBhcHBseSB0aW1lLiBUaGlzIGlzIGZvciByZXNvdXJjZXMgdGhhdCBkZXBlbmRcbiAgLy8gb24gcmVzb3VyY2VzIHdoZXJlIGFuIHVwZGF0ZSBtZWFucyByZXBsYWNlbWVudC5cbiAgY29uc3QgZXZhbHVhdGVkUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBjbGFzc2lmaWVkQ2hhbmdlcy5uYW1lc09mSG90c3dhcHBhYmxlUHJvcHMpIHtcbiAgICB0cnkge1xuICAgICAgZXZhbHVhdGVkUHJvcHNbcHJvcE5hbWVdID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24oXG4gICAgICAgIGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXNbcHJvcE5hbWVdLm5ld1ZhbHVlLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIENmbkV2YWx1YXRpb25FeGNlcHRpb24pIHtcbiAgICAgICAgcmV0LnB1c2gobm9uSG90c3dhcHBhYmxlQ2hhbmdlKFxuICAgICAgICAgIGNoYW5nZSxcbiAgICAgICAgICBOb25Ib3Rzd2FwcGFibGVSZWFzb24uUkVTT1VSQ0VfVU5TVVBQT1JURUQsXG4gICAgICAgICAgYFByb3BlcnR5ICcke3Byb3BOYW1lfScgb2YgcmVzb3VyY2UgJyR7bG9naWNhbElkfScgaGFzIGJlZW4gcmVwbGFjZWQgYW5kIGNvdWxkIG5vdCBiZSByZXNvbHZlZDogJHtlLm1lc3NhZ2V9YCxcbiAgICAgICAgKSk7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldC5wdXNoKHtcbiAgICBjaGFuZ2U6IHtcbiAgICAgIGNhdXNlOiBjaGFuZ2UsXG4gICAgICByZXNvdXJjZXM6IFt7XG4gICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgcmVzb3VyY2VUeXBlLFxuICAgICAgICBwaHlzaWNhbE5hbWU6IGlkZW50aWZpZXIsXG4gICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICB9XSxcbiAgICB9LFxuICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICBzZXJ2aWNlOiAnY2xvdWRjb250cm9sJyxcbiAgICBhcHBseTogYXN5bmMgKHNkazogU0RLKSA9PiB7XG4gICAgICBjb25zdCBjbG91ZENvbnRyb2wgPSBzZGsuY2xvdWRDb250cm9sKCk7XG5cbiAgICAgIGNvbnN0IHBhdGNoT3BzOiBBcnJheTx7IG9wOiBzdHJpbmc7IHBhdGg6IHN0cmluZzsgdmFsdWU/OiBhbnkgfT4gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgY2xhc3NpZmllZENoYW5nZXMubmFtZXNPZkhvdHN3YXBwYWJsZVByb3BzKSB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBjaGFuZ2UucHJvcGVydHlVcGRhdGVzW3Byb3BOYW1lXTtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBldmFsdWF0ZWRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIGlmIChkaWZmLmlzUmVtb3ZhbCkge1xuICAgICAgICAgIHBhdGNoT3BzLnB1c2goeyBvcDogJ3JlbW92ZScsIHBhdGg6IGAvJHtwcm9wTmFtZX1gIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGRpZmYuaXNBZGRpdGlvbikge1xuICAgICAgICAgIHBhdGNoT3BzLnB1c2goeyBvcDogJ2FkZCcsIHBhdGg6IGAvJHtwcm9wTmFtZX1gLCB2YWx1ZTogbmV3VmFsdWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0Y2hPcHMucHVzaCh7IG9wOiAncmVwbGFjZScsIHBhdGg6IGAvJHtwcm9wTmFtZX1gLCB2YWx1ZTogbmV3VmFsdWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gbm90aGluZyB0byBob3Rzd2FwXG4gICAgICBpZiAocGF0Y2hPcHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgY2xvdWRDb250cm9sLnVwZGF0ZVJlc291cmNlKHtcbiAgICAgICAgVHlwZU5hbWU6IHJlc291cmNlVHlwZSxcbiAgICAgICAgSWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgUGF0Y2hEb2N1bWVudDogSlNPTi5zdHJpbmdpZnkocGF0Y2hPcHMpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgQ2xvdWQgQ29udHJvbCBBUEkgaWRlbnRpZmllciBmb3IgYSByZXNvdXJjZS5cbiAqXG4gKiBDQ0FQSSByZXNvdXJjZXMgd2l0aCBjb21wb3VuZCBwcmltYXJ5IGlkZW50aWZpZXJzIG5lZWQgdGhlaXIgaWRlbnRpZmllcnMgdG8gYmVcbiAqIGJ1aWx0IGJ5IGpvaW5pbmcgZWFjaCBjb21wb25lbnQgd2l0aCBcInxcIi4gQ2xvdWRGb3JtYXRpb24ncyBQaHlzaWNhbFJlc291cmNlSWRcbiAqIG9ubHkgcmV0dXJucyBhIHNpbmdsZSB2YWx1ZSwgd2hpY2ggZG9lc24ndCB3b3JrIGZvciBjb21wb3VuZCBrZXlzLlxuICpcbiAqIEZhbGxzIGJhY2sgdG8gdGhlIENsb3VkRm9ybWF0aW9uIHBoeXNpY2FsIHJlc291cmNlIElEIGZvciB3aGVuIHRoZSBzY2hlbWEgY2Fubm90IGJlIHJldHJpZXZlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNsb3VkQ29udHJvbElkZW50aWZpZXIoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgY2ZuUGh5c2ljYWxJZCA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZmluZFBoeXNpY2FsTmFtZUZvcihsb2dpY2FsSWQpO1xuICBpZiAoIWNmblBoeXNpY2FsSWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDbG91ZENvbnRyb2xJZGVudGlmaWVyKGxvZ2ljYWxJZCwgcmVzb3VyY2VUeXBlLCBjZm5QaHlzaWNhbElkKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableCodeBuildProjectChange = isHotswappableCodeBuildProjectChange;\nconst common_1 = require(\"./common\");\nconst util_1 = require(\"../../util\");\nasync function isHotswappableCodeBuildProjectChange(logicalId, change, evaluateCfnTemplate) {\n if (change.newValue.Type !== 'AWS::CodeBuild::Project') {\n return [];\n }\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['Source', 'Environment', 'SourceVersion']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n if (classifiedChanges.namesOfHotswappableProps.length > 0) {\n const updateProjectInput = {\n name: '',\n };\n const projectName = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, change.newValue.Properties?.Name);\n // nothing to do jere\n if (!projectName) {\n return ret;\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId: logicalId,\n resourceType: change.newValue.Type,\n physicalName: projectName,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'codebuild',\n apply: async (sdk) => {\n updateProjectInput.name = projectName;\n for (const updatedPropName in change.propertyUpdates) {\n const updatedProp = change.propertyUpdates[updatedPropName];\n switch (updatedPropName) {\n case 'Source':\n updateProjectInput.source = (0, util_1.transformObjectKeys)(await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue), convertSourceCloudformationKeyToSdkKey);\n break;\n case 'Environment':\n updateProjectInput.environment = await (0, util_1.transformObjectKeys)(await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue), util_1.lowerCaseFirstCharacter);\n break;\n case 'SourceVersion':\n updateProjectInput.sourceVersion = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue);\n break;\n }\n }\n await sdk.codeBuild().updateProject(updateProjectInput);\n },\n });\n }\n return ret;\n}\nfunction convertSourceCloudformationKeyToSdkKey(key) {\n if (key.toLowerCase() === 'buildspec') {\n return key.toLowerCase();\n }\n return (0, util_1.lowerCaseFirstCharacter)(key);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1idWlsZC1wcm9qZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvZGUtYnVpbGQtcHJvamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxvRkFxRUM7QUE5RUQscUNBR2tCO0FBRWxCLHFDQUEwRTtBQUluRSxLQUFLLFVBQVUsb0NBQW9DLENBQ3hELFNBQWlCLEVBQ2pCLE1BQXNCLEVBQ3RCLG1CQUFtRDtJQUVuRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLHlCQUF5QixFQUFFLENBQUM7UUFDdkQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQW9CLEVBQUUsQ0FBQztJQUVoQyxNQUFNLGlCQUFpQixHQUFHLElBQUEsd0JBQWUsRUFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDOUYsaUJBQWlCLENBQUMsb0NBQW9DLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUQsSUFBSSxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxrQkFBa0IsR0FBOEI7WUFDcEQsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FDekUsU0FBUyxFQUNULE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FDakMsQ0FBQztRQUVGLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNQLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsTUFBTTtnQkFDYixTQUFTLEVBQUUsQ0FBQzt3QkFDVixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTt3QkFDbEMsWUFBWSxFQUFFLFdBQVc7d0JBQ3pCLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO3FCQUNyRCxDQUFDO2FBQ0g7WUFDRCxZQUFZLEVBQUUsSUFBSTtZQUNsQixPQUFPLEVBQUUsV0FBVztZQUNwQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQVEsRUFBRSxFQUFFO2dCQUN4QixrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO2dCQUV0QyxLQUFLLE1BQU0sZUFBZSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDckQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDNUQsUUFBUSxlQUFlLEVBQUUsQ0FBQzt3QkFDeEIsS0FBSyxRQUFROzRCQUNYLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxJQUFBLDBCQUFtQixFQUM3QyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFDckUsc0NBQXNDLENBQ3ZDLENBQUM7NEJBQ0YsTUFBTTt3QkFDUixLQUFLLGFBQWE7NEJBQ2hCLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxNQUFNLElBQUEsMEJBQW1CLEVBQ3hELE1BQU0sbUJBQW1CLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUNyRSw4QkFBdUIsQ0FDeEIsQ0FBQzs0QkFDRixNQUFNO3dCQUNSLEtBQUssZUFBZTs0QkFDbEIsa0JBQWtCLENBQUMsYUFBYSxHQUFHLE1BQU0sbUJBQW1CLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUN6RyxNQUFNO29CQUNWLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMxRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsc0NBQXNDLENBQUMsR0FBVztJQUN6RCxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxJQUFBLDhCQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwZGF0ZVByb2plY3RDb21tYW5kSW5wdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY29kZWJ1aWxkJztcbmltcG9ydCB7XG4gIHR5cGUgSG90c3dhcENoYW5nZSxcbiAgY2xhc3NpZnlDaGFuZ2VzLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgeyBsb3dlckNhc2VGaXJzdENoYXJhY3RlciwgdHJhbnNmb3JtT2JqZWN0S2V5cyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNIb3Rzd2FwcGFibGVDb2RlQnVpbGRQcm9qZWN0Q2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSAnQVdTOjpDb2RlQnVpbGQ6OlByb2plY3QnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcmV0OiBIb3Rzd2FwQ2hhbmdlW10gPSBbXTtcblxuICBjb25zdCBjbGFzc2lmaWVkQ2hhbmdlcyA9IGNsYXNzaWZ5Q2hhbmdlcyhjaGFuZ2UsIFsnU291cmNlJywgJ0Vudmlyb25tZW50JywgJ1NvdXJjZVZlcnNpb24nXSk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuICBpZiAoY2xhc3NpZmllZENoYW5nZXMubmFtZXNPZkhvdHN3YXBwYWJsZVByb3BzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCB1cGRhdGVQcm9qZWN0SW5wdXQ6IFVwZGF0ZVByb2plY3RDb21tYW5kSW5wdXQgPSB7XG4gICAgICBuYW1lOiAnJyxcbiAgICB9O1xuICAgIGNvbnN0IHByb2plY3ROYW1lID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5lc3RhYmxpc2hSZXNvdXJjZVBoeXNpY2FsTmFtZShcbiAgICAgIGxvZ2ljYWxJZCxcbiAgICAgIGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5OYW1lLFxuICAgICk7XG5cbiAgICAvLyBub3RoaW5nIHRvIGRvIGplcmVcbiAgICBpZiAoIXByb2plY3ROYW1lKSB7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIHJldC5wdXNoKHtcbiAgICAgIGNoYW5nZToge1xuICAgICAgICBjYXVzZTogY2hhbmdlLFxuICAgICAgICByZXNvdXJjZXM6IFt7XG4gICAgICAgICAgbG9naWNhbElkOiBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2UubmV3VmFsdWUuVHlwZSxcbiAgICAgICAgICBwaHlzaWNhbE5hbWU6IHByb2plY3ROYW1lLFxuICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgIH1dLFxuICAgICAgfSxcbiAgICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICAgIHNlcnZpY2U6ICdjb2RlYnVpbGQnLFxuICAgICAgYXBwbHk6IGFzeW5jIChzZGs6IFNESykgPT4ge1xuICAgICAgICB1cGRhdGVQcm9qZWN0SW5wdXQubmFtZSA9IHByb2plY3ROYW1lO1xuXG4gICAgICAgIGZvciAoY29uc3QgdXBkYXRlZFByb3BOYW1lIGluIGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMpIHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkUHJvcCA9IGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXNbdXBkYXRlZFByb3BOYW1lXTtcbiAgICAgICAgICBzd2l0Y2ggKHVwZGF0ZWRQcm9wTmFtZSkge1xuICAgICAgICAgICAgY2FzZSAnU291cmNlJzpcbiAgICAgICAgICAgICAgdXBkYXRlUHJvamVjdElucHV0LnNvdXJjZSA9IHRyYW5zZm9ybU9iamVjdEtleXMoXG4gICAgICAgICAgICAgICAgYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWUpLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRTb3VyY2VDbG91ZGZvcm1hdGlvbktleVRvU2RrS2V5LFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Vudmlyb25tZW50JzpcbiAgICAgICAgICAgICAgdXBkYXRlUHJvamVjdElucHV0LmVudmlyb25tZW50ID0gYXdhaXQgdHJhbnNmb3JtT2JqZWN0S2V5cyhcbiAgICAgICAgICAgICAgICBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZSksXG4gICAgICAgICAgICAgICAgbG93ZXJDYXNlRmlyc3RDaGFyYWN0ZXIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU291cmNlVmVyc2lvbic6XG4gICAgICAgICAgICAgIHVwZGF0ZVByb2plY3RJbnB1dC5zb3VyY2VWZXJzaW9uID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWUpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzZGsuY29kZUJ1aWxkKCkudXBkYXRlUHJvamVjdCh1cGRhdGVQcm9qZWN0SW5wdXQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRTb3VyY2VDbG91ZGZvcm1hdGlvbktleVRvU2RrS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnYnVpbGRzcGVjJykge1xuICAgIHJldHVybiBrZXkudG9Mb3dlckNhc2UoKTtcbiAgfVxuICByZXR1cm4gbG93ZXJDYXNlRmlyc3RDaGFyYWN0ZXIoa2V5KTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EcsHotswapProperties = exports.HotswapPropertyOverrides = exports.HotswapMode = exports.ICON = void 0;\nexports.createHotswapPropertyOverrides = createHotswapPropertyOverrides;\nexports.classifyChanges = classifyChanges;\nexports.nonHotswappableChange = nonHotswappableChange;\nexports.nonHotswappableResource = nonHotswappableResource;\nconst hotswap_1 = require(\"../../payloads/hotswap\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nexports.ICON = '✨';\nvar HotswapMode;\n(function (HotswapMode) {\n /**\n * Will fall back to CloudFormation when a non-hotswappable change is detected\n */\n HotswapMode[\"FALL_BACK\"] = \"fall-back\";\n /**\n * Will not fall back to CloudFormation when a non-hotswappable change is detected\n */\n HotswapMode[\"HOTSWAP_ONLY\"] = \"hotswap-only\";\n /**\n * Will not attempt to hotswap anything and instead go straight to CloudFormation\n */\n HotswapMode[\"FULL_DEPLOYMENT\"] = \"full-deployment\";\n})(HotswapMode || (exports.HotswapMode = HotswapMode = {}));\n/**\n * Represents configuration property overrides for hotswap deployments\n */\nclass HotswapPropertyOverrides {\n // Each supported resource type will have its own properties. Currently this is ECS\n ecs;\n constructor(ecs) {\n this.ecs = ecs;\n }\n}\nexports.HotswapPropertyOverrides = HotswapPropertyOverrides;\n/**\n * Represents configuration properties for ECS hotswap deployments\n */\nclass EcsHotswapProperties {\n // The lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount\n minimumHealthyPercent;\n // The upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount\n maximumHealthyPercent;\n // The number of seconds to wait for a single service to reach stable state.\n stabilizationTimeoutSeconds;\n constructor(minimumHealthyPercent, maximumHealthyPercent, stabilizationTimeoutSeconds) {\n if (minimumHealthyPercent !== undefined && minimumHealthyPercent < 0) {\n throw new toolkit_error_1.ToolkitError('InvalidEcsMinHealthyPercent', 'hotswap-ecs-minimum-healthy-percent can\\'t be a negative number');\n }\n if (maximumHealthyPercent !== undefined && maximumHealthyPercent < 0) {\n throw new toolkit_error_1.ToolkitError('InvalidEcsMaxHealthyPercent', 'hotswap-ecs-maximum-healthy-percent can\\'t be a negative number');\n }\n if (stabilizationTimeoutSeconds !== undefined && stabilizationTimeoutSeconds < 0) {\n throw new toolkit_error_1.ToolkitError('InvalidEcsStabilizationTimeout', 'hotswap-ecs-stabilization-timeout-seconds can\\'t be a negative number');\n }\n // In order to preserve the current behaviour, when minimumHealthyPercent is not defined, it will be set to the currently default value of 0\n if (minimumHealthyPercent == undefined) {\n this.minimumHealthyPercent = 0;\n }\n else {\n this.minimumHealthyPercent = minimumHealthyPercent;\n }\n this.maximumHealthyPercent = maximumHealthyPercent;\n this.stabilizationTimeoutSeconds = stabilizationTimeoutSeconds;\n }\n /**\n * Check if any hotswap properties are defined\n * @returns true if all properties are undefined, false otherwise\n */\n isEmpty() {\n return this.minimumHealthyPercent === 0 && this.maximumHealthyPercent === undefined;\n }\n}\nexports.EcsHotswapProperties = EcsHotswapProperties;\n/**\n * Create the HotswapPropertyOverrides class out of the Interface exposed to users\n */\nfunction createHotswapPropertyOverrides(props) {\n return new HotswapPropertyOverrides(new EcsHotswapProperties(props.ecs?.minimumHealthyPercent, props.ecs?.maximumHealthyPercent, props.ecs?.stabilizationTimeoutSeconds));\n}\nclass ClassifiedChanges {\n change;\n hotswappableProps;\n nonHotswappableProps;\n constructor(change, hotswappableProps, nonHotswappableProps) {\n this.change = change;\n this.hotswappableProps = hotswappableProps;\n this.nonHotswappableProps = nonHotswappableProps;\n }\n reportNonHotswappablePropertyChanges(ret) {\n const nonHotswappablePropNames = Object.keys(this.nonHotswappableProps);\n if (nonHotswappablePropNames.length > 0) {\n const tagOnlyChange = nonHotswappablePropNames.length === 1 && nonHotswappablePropNames[0] === 'Tags';\n const reason = tagOnlyChange ? hotswap_1.NonHotswappableReason.TAGS : hotswap_1.NonHotswappableReason.PROPERTIES;\n const description = tagOnlyChange ? 'Tags are not hotswappable' : `resource properties '${nonHotswappablePropNames}' are not hotswappable on this resource type`;\n ret.push(nonHotswappableChange(this.change, reason, description, this.nonHotswappableProps));\n }\n }\n get namesOfHotswappableProps() {\n return Object.keys(this.hotswappableProps);\n }\n}\nfunction classifyChanges(xs, hotswappablePropNames) {\n const hotswappableProps = {};\n const nonHotswappableProps = {};\n for (const [name, propDiff] of Object.entries(xs.propertyUpdates)) {\n if (hotswappablePropNames.includes(name)) {\n hotswappableProps[name] = propDiff;\n }\n else {\n nonHotswappableProps[name] = propDiff;\n }\n }\n return new ClassifiedChanges(xs, hotswappableProps, nonHotswappableProps);\n}\nfunction nonHotswappableChange(change, reason, description, nonHotswappableProps, hotswapOnlyVisible = true) {\n return {\n hotswappable: false,\n hotswapOnlyVisible,\n change: {\n reason,\n description,\n subject: {\n type: 'Resource',\n logicalId: change.logicalId,\n resourceType: change.newValue.Type,\n rejectedProperties: Object.keys(nonHotswappableProps ?? change.propertyUpdates),\n metadata: change.metadata,\n },\n },\n };\n}\nfunction nonHotswappableResource(change) {\n return {\n hotswappable: false,\n change: {\n reason: hotswap_1.NonHotswappableReason.RESOURCE_UNSUPPORTED,\n description: 'This resource type is not supported for hotswap deployments',\n subject: {\n type: 'Resource',\n logicalId: change.logicalId,\n resourceType: change.newValue.Type,\n rejectedProperties: Object.keys(change.propertyUpdates),\n metadata: change.metadata,\n },\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRIQSx3RUFNQztBQWlDRCwwQ0FhQztBQUVELHNEQXNCQztBQUVELDBEQWVDO0FBdE5ELG9EQUErRDtBQUMvRCwrREFBMkQ7QUFHOUMsUUFBQSxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBNkN4QixJQUFZLFdBZVg7QUFmRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDRDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsa0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQWZXLFdBQVcsMkJBQVgsV0FBVyxRQWV0QjtBQUVEOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkMsbUZBQW1GO0lBQzFFLEdBQUcsQ0FBeUI7SUFFckMsWUFBb0IsR0FBMkI7UUFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBUEQsNERBT0M7QUFFRDs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBQy9CLHVKQUF1SjtJQUM5SSxxQkFBcUIsQ0FBVTtJQUN4QyxrS0FBa0s7SUFDekoscUJBQXFCLENBQVU7SUFDeEMsNEVBQTRFO0lBQ25FLDJCQUEyQixDQUFVO0lBRTlDLFlBQW9CLHFCQUE4QixFQUFFLHFCQUE4QixFQUFFLDJCQUFvQztRQUN0SCxJQUFJLHFCQUFxQixLQUFLLFNBQVMsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLEVBQUcsQ0FBQztZQUN0RSxNQUFNLElBQUksNEJBQVksQ0FBQyw2QkFBNkIsRUFBRSxpRUFBaUUsQ0FBQyxDQUFDO1FBQzNILENBQUM7UUFDRCxJQUFJLHFCQUFxQixLQUFLLFNBQVMsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLEVBQUcsQ0FBQztZQUN0RSxNQUFNLElBQUksNEJBQVksQ0FBQyw2QkFBNkIsRUFBRSxpRUFBaUUsQ0FBQyxDQUFDO1FBQzNILENBQUM7UUFDRCxJQUFJLDJCQUEyQixLQUFLLFNBQVMsSUFBSSwyQkFBMkIsR0FBRyxDQUFDLEVBQUcsQ0FBQztZQUNsRixNQUFNLElBQUksNEJBQVksQ0FBQyxnQ0FBZ0MsRUFBRSx1RUFBdUUsQ0FBQyxDQUFDO1FBQ3BJLENBQUM7UUFDRCw0SUFBNEk7UUFDNUksSUFBSSxxQkFBcUIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ3JELENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMscUJBQXFCLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxTQUFTLENBQUM7SUFDdEYsQ0FBQztDQUNGO0FBbkNELG9EQW1DQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsOEJBQThCLENBQUMsS0FBd0I7SUFDckUsT0FBTyxJQUFJLHdCQUF3QixDQUFDLElBQUksb0JBQW9CLENBQzFELEtBQUssQ0FBQyxHQUFHLEVBQUUscUJBQXFCLEVBQ2hDLEtBQUssQ0FBQyxHQUFHLEVBQUUscUJBQXFCLEVBQ2hDLEtBQUssQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQ3ZDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFJRCxNQUFNLGlCQUFpQjtJQUVIO0lBQ0E7SUFDQTtJQUhsQixZQUNrQixNQUFzQixFQUN0QixpQkFBNEIsRUFDNUIsb0JBQStCO1FBRi9CLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBVztRQUM1Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVc7SUFFakQsQ0FBQztJQUVNLG9DQUFvQyxDQUFDLEdBQW9CO1FBQzlELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxJQUFJLHdCQUF3QixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLGFBQWEsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQztZQUN0RyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLCtCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsK0JBQXFCLENBQUMsVUFBVSxDQUFDO1lBQzdGLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLHdCQUF3Qix3QkFBd0IsOENBQThDLENBQUM7WUFFakssR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FDNUIsSUFBSSxDQUFDLE1BQU0sRUFDWCxNQUFNLEVBQ04sV0FBVyxFQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLEVBQWtCLEVBQUUscUJBQStCO0lBQ2pGLE1BQU0saUJBQWlCLEdBQWMsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sb0JBQW9CLEdBQWMsRUFBRSxDQUFDO0lBRTNDLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ2xFLElBQUkscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FDbkMsTUFBc0IsRUFDdEIsTUFBNkIsRUFDN0IsV0FBbUIsRUFDbkIsb0JBQWdDLEVBQ2hDLHFCQUE4QixJQUFJO0lBRWxDLE9BQU87UUFDTCxZQUFZLEVBQUUsS0FBSztRQUNuQixrQkFBa0I7UUFDbEIsTUFBTSxFQUFFO1lBQ04sTUFBTTtZQUNOLFdBQVc7WUFDWCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztnQkFDM0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDbEMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUMvRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDMUI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsTUFBc0I7SUFDNUQsT0FBTztRQUNMLFlBQVksRUFBRSxLQUFLO1FBQ25CLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSwrQkFBcUIsQ0FBQyxvQkFBb0I7WUFDbEQsV0FBVyxFQUFFLDZEQUE2RDtZQUMxRSxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztnQkFDM0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDbEMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUN2RCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDMUI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eURpZmZlcmVuY2UgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgSG90c3dhcFByb3BlcnRpZXMsIEVjc0hvdHN3YXBQcm9wZXJ0aWVzIGFzIElFY3NIb3Rzd2FwUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBIb3Rzd2FwcGFibGVDaGFuZ2UsIE5vbkhvdHN3YXBwYWJsZUNoYW5nZSwgUmVzb3VyY2VDaGFuZ2UgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9ob3Rzd2FwJztcbmltcG9ydCB7IE5vbkhvdHN3YXBwYWJsZVJlYXNvbiB9IGZyb20gJy4uLy4uL3BheWxvYWRzL2hvdHN3YXAnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgU0RLIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5cbmV4cG9ydCBjb25zdCBJQ09OID0gJ+KcqCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3dhcE9wZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBNYXJrcyB0aGUgb3BlcmF0aW9uIGFzIGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaG90c3dhcHBhYmxlOiB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSBiZWluZyBob3Rzd2FwcGVkLlxuICAgKiBVc2VkIHRvIHNldCBhIGN1c3RvbSBVc2VyLUFnZW50IGZvciBTREsgY2FsbHMuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIG9mIHRoZSBjaGFuZ2UgdGhhdCBpcyBhcHBsaWVkIGFzIHBhcnQgb2YgdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlOiBIb3Rzd2FwcGFibGVDaGFuZ2U7XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGhvdHN3YXAgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBhcHBseTogKHNkazogU0RLKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlamVjdGVkQ2hhbmdlIHtcbiAgLyoqXG4gICAqIE1hcmtzIHRoZSBjaGFuZ2UgYXMgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaG90c3dhcHBhYmxlOiBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBjaGFuZ2UgdGhhdCBnb3QgcmVqZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZTogTm9uSG90c3dhcHBhYmxlQ2hhbmdlO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGlzIGNoYW5nZSB3aGVuIGxpc3Rpbmcgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIGluIEhPVFNXQVBfT05MWSBtb2RlLiBEb2VzIG5vdCBhZmZlY3RcbiAgICogbGlzdGluZyBpbiBGQUxMX0JBQ0sgbW9kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaG90c3dhcE9ubHlWaXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgSG90c3dhcENoYW5nZSA9IEhvdHN3YXBPcGVyYXRpb24gfCBSZWplY3RlZENoYW5nZTtcblxuZXhwb3J0IGVudW0gSG90c3dhcE1vZGUge1xuICAvKipcbiAgICogV2lsbCBmYWxsIGJhY2sgdG8gQ2xvdWRGb3JtYXRpb24gd2hlbiBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIGlzIGRldGVjdGVkXG4gICAqL1xuICBGQUxMX0JBQ0sgPSAnZmFsbC1iYWNrJyxcblxuICAvKipcbiAgICogV2lsbCBub3QgZmFsbCBiYWNrIHRvIENsb3VkRm9ybWF0aW9uIHdoZW4gYSBub24taG90c3dhcHBhYmxlIGNoYW5nZSBpcyBkZXRlY3RlZFxuICAgKi9cbiAgSE9UU1dBUF9PTkxZID0gJ2hvdHN3YXAtb25seScsXG5cbiAgLyoqXG4gICAqIFdpbGwgbm90IGF0dGVtcHQgdG8gaG90c3dhcCBhbnl0aGluZyBhbmQgaW5zdGVhZCBnbyBzdHJhaWdodCB0byBDbG91ZEZvcm1hdGlvblxuICAgKi9cbiAgRlVMTF9ERVBMT1lNRU5UID0gJ2Z1bGwtZGVwbG95bWVudCcsXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50c1xuICovXG5leHBvcnQgY2xhc3MgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzIGltcGxlbWVudHMgSG90c3dhcFByb3BlcnRpZXMge1xuICAvLyBFYWNoIHN1cHBvcnRlZCByZXNvdXJjZSB0eXBlIHdpbGwgaGF2ZSBpdHMgb3duIHByb3BlcnRpZXMuIEN1cnJlbnRseSB0aGlzIGlzIEVDU1xuICByZWFkb25seSBlY3M/OiBJRWNzSG90c3dhcFByb3BlcnRpZXM7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yIChlY3M/OiBJRWNzSG90c3dhcFByb3BlcnRpZXMpIHtcbiAgICB0aGlzLmVjcyA9IGVjcztcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciBFQ1MgaG90c3dhcCBkZXBsb3ltZW50c1xuICovXG5leHBvcnQgY2xhc3MgRWNzSG90c3dhcFByb3BlcnRpZXMgaW1wbGVtZW50cyBJRWNzSG90c3dhcFByb3BlcnRpZXMge1xuICAvLyBUaGUgbG93ZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IG11c3QgcmVtYWluIGluIHRoZSBSVU5OSU5HIHN0YXRlIGR1cmluZyBhIGRlcGxveW1lbnQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgZGVzaXJlZENvdW50XG4gIHJlYWRvbmx5IG1pbmltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcbiAgLy8gVGhlIHVwcGVyIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgeW91ciBzZXJ2aWNlJ3MgdGFza3MgdGhhdCBhcmUgYWxsb3dlZCBpbiB0aGUgUlVOTklORyBvciBQRU5ESU5HIHN0YXRlIGR1cmluZyBhIGRlcGxveW1lbnQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgZGVzaXJlZENvdW50XG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcbiAgLy8gVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgdG8gcmVhY2ggc3RhYmxlIHN0YXRlLlxuICByZWFkb25seSBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHM/OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yIChtaW5pbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXIsIG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlciwgc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzPzogbnVtYmVyKSB7XG4gICAgaWYgKG1pbmltdW1IZWFsdGh5UGVyY2VudCAhPT0gdW5kZWZpbmVkICYmIG1pbmltdW1IZWFsdGh5UGVyY2VudCA8IDAgKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbnZhbGlkRWNzTWluSGVhbHRoeVBlcmNlbnQnLCAnaG90c3dhcC1lY3MtbWluaW11bS1oZWFsdGh5LXBlcmNlbnQgY2FuXFwndCBiZSBhIG5lZ2F0aXZlIG51bWJlcicpO1xuICAgIH1cbiAgICBpZiAobWF4aW11bUhlYWx0aHlQZXJjZW50ICE9PSB1bmRlZmluZWQgJiYgbWF4aW11bUhlYWx0aHlQZXJjZW50IDwgMCApIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRFY3NNYXhIZWFsdGh5UGVyY2VudCcsICdob3Rzd2FwLWVjcy1tYXhpbXVtLWhlYWx0aHktcGVyY2VudCBjYW5cXCd0IGJlIGEgbmVnYXRpdmUgbnVtYmVyJyk7XG4gICAgfVxuICAgIGlmIChzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgIT09IHVuZGVmaW5lZCAmJiBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgPCAwICkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignSW52YWxpZEVjc1N0YWJpbGl6YXRpb25UaW1lb3V0JywgJ2hvdHN3YXAtZWNzLXN0YWJpbGl6YXRpb24tdGltZW91dC1zZWNvbmRzIGNhblxcJ3QgYmUgYSBuZWdhdGl2ZSBudW1iZXInKTtcbiAgICB9XG4gICAgLy8gSW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGN1cnJlbnQgYmVoYXZpb3VyLCB3aGVuIG1pbmltdW1IZWFsdGh5UGVyY2VudCBpcyBub3QgZGVmaW5lZCwgaXQgd2lsbCBiZSBzZXQgdG8gdGhlIGN1cnJlbnRseSBkZWZhdWx0IHZhbHVlIG9mIDBcbiAgICBpZiAobWluaW11bUhlYWx0aHlQZXJjZW50ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5taW5pbXVtSGVhbHRoeVBlcmNlbnQgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1pbmltdW1IZWFsdGh5UGVyY2VudCA9IG1pbmltdW1IZWFsdGh5UGVyY2VudDtcbiAgICB9XG4gICAgdGhpcy5tYXhpbXVtSGVhbHRoeVBlcmNlbnQgPSBtYXhpbXVtSGVhbHRoeVBlcmNlbnQ7XG4gICAgdGhpcy5zdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgPSBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW55IGhvdHN3YXAgcHJvcGVydGllcyBhcmUgZGVmaW5lZFxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGFsbCBwcm9wZXJ0aWVzIGFyZSB1bmRlZmluZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWluaW11bUhlYWx0aHlQZXJjZW50ID09PSAwICYmIHRoaXMubWF4aW11bUhlYWx0aHlQZXJjZW50ID09PSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgdGhlIEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyBjbGFzcyBvdXQgb2YgdGhlIEludGVyZmFjZSBleHBvc2VkIHRvIHVzZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMocHJvcHM6IEhvdHN3YXBQcm9wZXJ0aWVzKTogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzIHtcbiAgcmV0dXJuIG5ldyBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMobmV3IEVjc0hvdHN3YXBQcm9wZXJ0aWVzKFxuICAgIHByb3BzLmVjcz8ubWluaW11bUhlYWx0aHlQZXJjZW50LFxuICAgIHByb3BzLmVjcz8ubWF4aW11bUhlYWx0aHlQZXJjZW50LFxuICAgIHByb3BzLmVjcz8uc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzLFxuICApKTtcbn1cblxudHlwZSBQcm9wRGlmZnMgPSBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pj47XG5cbmNsYXNzIENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuICAgIHB1YmxpYyByZWFkb25seSBob3Rzd2FwcGFibGVQcm9wczogUHJvcERpZmZzLFxuICAgIHB1YmxpYyByZWFkb25seSBub25Ib3Rzd2FwcGFibGVQcm9wczogUHJvcERpZmZzLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyByZXBvcnROb25Ib3Rzd2FwcGFibGVQcm9wZXJ0eUNoYW5nZXMocmV0OiBIb3Rzd2FwQ2hhbmdlW10pOiB2b2lkIHtcbiAgICBjb25zdCBub25Ib3Rzd2FwcGFibGVQcm9wTmFtZXMgPSBPYmplY3Qua2V5cyh0aGlzLm5vbkhvdHN3YXBwYWJsZVByb3BzKTtcbiAgICBpZiAobm9uSG90c3dhcHBhYmxlUHJvcE5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHRhZ09ubHlDaGFuZ2UgPSBub25Ib3Rzd2FwcGFibGVQcm9wTmFtZXMubGVuZ3RoID09PSAxICYmIG5vbkhvdHN3YXBwYWJsZVByb3BOYW1lc1swXSA9PT0gJ1RhZ3MnO1xuICAgICAgY29uc3QgcmVhc29uID0gdGFnT25seUNoYW5nZSA/IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5UQUdTIDogTm9uSG90c3dhcHBhYmxlUmVhc29uLlBST1BFUlRJRVM7XG4gICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRhZ09ubHlDaGFuZ2UgPyAnVGFncyBhcmUgbm90IGhvdHN3YXBwYWJsZScgOiBgcmVzb3VyY2UgcHJvcGVydGllcyAnJHtub25Ib3Rzd2FwcGFibGVQcm9wTmFtZXN9JyBhcmUgbm90IGhvdHN3YXBwYWJsZSBvbiB0aGlzIHJlc291cmNlIHR5cGVgO1xuXG4gICAgICByZXQucHVzaChub25Ib3Rzd2FwcGFibGVDaGFuZ2UoXG4gICAgICAgIHRoaXMuY2hhbmdlLFxuICAgICAgICByZWFzb24sXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICB0aGlzLm5vbkhvdHN3YXBwYWJsZVByb3BzLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBuYW1lc09mSG90c3dhcHBhYmxlUHJvcHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmhvdHN3YXBwYWJsZVByb3BzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlDaGFuZ2VzKHhzOiBSZXNvdXJjZUNoYW5nZSwgaG90c3dhcHBhYmxlUHJvcE5hbWVzOiBzdHJpbmdbXSk6IENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgY29uc3QgaG90c3dhcHBhYmxlUHJvcHM6IFByb3BEaWZmcyA9IHt9O1xuICBjb25zdCBub25Ib3Rzd2FwcGFibGVQcm9wczogUHJvcERpZmZzID0ge307XG5cbiAgZm9yIChjb25zdCBbbmFtZSwgcHJvcERpZmZdIG9mIE9iamVjdC5lbnRyaWVzKHhzLnByb3BlcnR5VXBkYXRlcykpIHtcbiAgICBpZiAoaG90c3dhcHBhYmxlUHJvcE5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICBob3Rzd2FwcGFibGVQcm9wc1tuYW1lXSA9IHByb3BEaWZmO1xuICAgIH0gZWxzZSB7XG4gICAgICBub25Ib3Rzd2FwcGFibGVQcm9wc1tuYW1lXSA9IHByb3BEaWZmO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgQ2xhc3NpZmllZENoYW5nZXMoeHMsIGhvdHN3YXBwYWJsZVByb3BzLCBub25Ib3Rzd2FwcGFibGVQcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVDaGFuZ2UoXG4gIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICBub25Ib3Rzd2FwcGFibGVQcm9wcz86IFByb3BEaWZmcyxcbiAgaG90c3dhcE9ubHlWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSxcbik6IFJlamVjdGVkQ2hhbmdlIHtcbiAgcmV0dXJuIHtcbiAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgIGhvdHN3YXBPbmx5VmlzaWJsZSxcbiAgICBjaGFuZ2U6IHtcbiAgICAgIHJlYXNvbixcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgc3ViamVjdDoge1xuICAgICAgICB0eXBlOiAnUmVzb3VyY2UnLFxuICAgICAgICBsb2dpY2FsSWQ6IGNoYW5nZS5sb2dpY2FsSWQsXG4gICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgIHJlamVjdGVkUHJvcGVydGllczogT2JqZWN0LmtleXMobm9uSG90c3dhcHBhYmxlUHJvcHMgPz8gY2hhbmdlLnByb3BlcnR5VXBkYXRlcyksXG4gICAgICAgIG1ldGFkYXRhOiBjaGFuZ2UubWV0YWRhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZShjaGFuZ2U6IFJlc291cmNlQ2hhbmdlKTogUmVqZWN0ZWRDaGFuZ2Uge1xuICByZXR1cm4ge1xuICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgY2hhbmdlOiB7XG4gICAgICByZWFzb246IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9VTlNVUFBPUlRFRCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyByZXNvdXJjZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMnLFxuICAgICAgc3ViamVjdDoge1xuICAgICAgICB0eXBlOiAnUmVzb3VyY2UnLFxuICAgICAgICBsb2dpY2FsSWQ6IGNoYW5nZS5sb2dpY2FsSWQsXG4gICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgIHJlamVjdGVkUHJvcGVydGllczogT2JqZWN0LmtleXMoY2hhbmdlLnByb3BlcnR5VXBkYXRlcyksXG4gICAgICAgIG1ldGFkYXRhOiBjaGFuZ2UubWV0YWRhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableEcsServiceChange = isHotswappableEcsServiceChange;\nconst common_1 = require(\"./common\");\nconst hotswap_1 = require(\"../../payloads/hotswap\");\nconst util_1 = require(\"../../util\");\nconst ECS_SERVICE_RESOURCE_TYPE = 'AWS::ECS::Service';\nasync function isHotswappableEcsServiceChange(logicalId, change, evaluateCfnTemplate, hotswapPropertyOverrides) {\n // the only resource change we can evaluate here is an ECS TaskDefinition\n if (change.newValue.Type !== 'AWS::ECS::TaskDefinition') {\n return [];\n }\n const ret = [];\n // We only allow a change in the ContainerDefinitions of the TaskDefinition for now -\n // it contains the image and environment variables, so seems like a safe bet for now.\n // We might revisit this decision in the future though!\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['ContainerDefinitions']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n // find all ECS Services that reference the TaskDefinition that changed\n const resourcesReferencingTaskDef = evaluateCfnTemplate.findReferencesTo(logicalId);\n const ecsServiceResourcesReferencingTaskDef = resourcesReferencingTaskDef.filter((r) => r.Type === ECS_SERVICE_RESOURCE_TYPE);\n const ecsServicesReferencingTaskDef = new Array();\n for (const ecsServiceResource of ecsServiceResourcesReferencingTaskDef) {\n const serviceArn = await evaluateCfnTemplate.findPhysicalNameFor(ecsServiceResource.LogicalId);\n if (serviceArn) {\n ecsServicesReferencingTaskDef.push({\n logicalId: ecsServiceResource.LogicalId,\n serviceArn,\n });\n }\n }\n if (ecsServicesReferencingTaskDef.length === 0) {\n /**\n * ECS Services can have a task definition that doesn't refer to the task definition being updated.\n * We have to log this as a non-hotswappable change to the task definition, but when we do,\n * we wind up hotswapping the task definition and logging it as a non-hotswappable change.\n *\n * This logic prevents us from logging that change as non-hotswappable when we hotswap it.\n */\n ret.push((0, common_1.nonHotswappableChange)(change, hotswap_1.NonHotswappableReason.DEPENDENCY_UNSUPPORTED, 'No ECS services reference the changed task definition', undefined, false));\n }\n if (resourcesReferencingTaskDef.length > ecsServicesReferencingTaskDef.length) {\n // if something besides an ECS Service is referencing the TaskDefinition,\n // hotswap is not possible in FALL_BACK mode\n const nonEcsServiceTaskDefRefs = resourcesReferencingTaskDef.filter((r) => r.Type !== ECS_SERVICE_RESOURCE_TYPE);\n for (const taskRef of nonEcsServiceTaskDefRefs) {\n ret.push((0, common_1.nonHotswappableChange)(change, hotswap_1.NonHotswappableReason.DEPENDENCY_UNSUPPORTED, `A resource '${taskRef.LogicalId}' with Type '${taskRef.Type}' that is not an ECS Service was found referencing the changed TaskDefinition '${logicalId}'`));\n }\n }\n const namesOfHotswappableChanges = Object.keys(classifiedChanges.hotswappableProps);\n if (namesOfHotswappableChanges.length > 0) {\n const taskDefinitionResource = await prepareTaskDefinitionChange(evaluateCfnTemplate, logicalId, change);\n ret.push({\n change: {\n cause: change,\n resources: [\n {\n logicalId,\n resourceType: change.newValue.Type,\n physicalName: await taskDefinitionResource.Family,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n ...ecsServicesReferencingTaskDef.map((ecsService) => ({\n resourceType: ECS_SERVICE_RESOURCE_TYPE,\n physicalName: ecsService.serviceArn.split('/')[2],\n logicalId: ecsService.logicalId,\n metadata: evaluateCfnTemplate.metadataFor(ecsService.logicalId),\n })),\n ],\n },\n hotswappable: true,\n service: 'ecs-service',\n apply: async (sdk) => {\n // Step 1 - update the changed TaskDefinition, creating a new TaskDefinition Revision\n // we need to lowercase the evaluated TaskDef from CloudFormation,\n // as the AWS SDK uses lowercase property names for these\n // The SDK requires more properties here than its worth doing explicit typing for\n // instead, just use all the old values in the diff to fill them in implicitly\n renameCfnPropertiesToSdkProperties(taskDefinitionResource);\n const lowercasedTaskDef = (0, util_1.transformObjectKeys)(taskDefinitionResource, util_1.lowerCaseFirstCharacter, {\n // All the properties that take arbitrary string as keys i.e. { \"string\" : \"string\" }\n // https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html#API_RegisterTaskDefinition_RequestSyntax\n ContainerDefinitions: {\n DockerLabels: true,\n FirelensConfiguration: {\n Options: true,\n },\n LogConfiguration: {\n Options: true,\n },\n },\n Volumes: {\n DockerVolumeConfiguration: {\n DriverOpts: true,\n Labels: true,\n },\n },\n });\n const registerTaskDefResponse = await sdk.ecs().registerTaskDefinition(lowercasedTaskDef);\n const taskDefRevArn = registerTaskDefResponse.taskDefinition?.taskDefinitionArn;\n let ecsHotswapProperties = hotswapPropertyOverrides.ecs;\n let minimumHealthyPercent = ecsHotswapProperties?.minimumHealthyPercent;\n let maximumHealthyPercent = ecsHotswapProperties?.maximumHealthyPercent;\n let stabilizationTimeoutSeconds = ecsHotswapProperties?.stabilizationTimeoutSeconds;\n // Step 2 - update the services using that TaskDefinition to point to the new TaskDefinition Revision\n // Forcing New Deployment and setting Minimum Healthy Percent to 0.\n // As CDK HotSwap is development only, this seems the most efficient way to ensure all tasks are replaced immediately, regardless of original amount\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(ecsServicesReferencingTaskDef.map(async (service) => {\n const cluster = service.serviceArn.split('/')[1];\n const update = await sdk.ecs().updateService({\n service: service.serviceArn,\n taskDefinition: taskDefRevArn,\n cluster,\n forceNewDeployment: true,\n deploymentConfiguration: {\n minimumHealthyPercent: minimumHealthyPercent !== undefined ? minimumHealthyPercent : 0,\n maximumPercent: maximumHealthyPercent !== undefined ? maximumHealthyPercent : undefined,\n },\n });\n await sdk.ecs().waitUntilServicesStable({\n cluster: update.service?.clusterArn,\n services: [service.serviceArn],\n }, stabilizationTimeoutSeconds);\n }));\n },\n });\n }\n return ret;\n}\nfunction renameCfnPropertiesToSdkProperties(object) {\n // CloudFormation uses ProxyConfigurationProperties but SDK expects properties\n if (object.ProxyConfiguration?.ProxyConfigurationProperties !== undefined) {\n object.ProxyConfiguration.properties = object.ProxyConfiguration.ProxyConfigurationProperties;\n delete object.ProxyConfiguration.ProxyConfigurationProperties;\n }\n}\nasync function prepareTaskDefinitionChange(evaluateCfnTemplate, logicalId, change) {\n const taskDefinitionResource = {\n ...change.oldValue.Properties,\n ContainerDefinitions: change.newValue.Properties?.ContainerDefinitions,\n };\n // first, let's get the name of the family\n const familyNameOrArn = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, taskDefinitionResource?.Family);\n if (!familyNameOrArn) {\n // if the Family property has not been provided, and we can't find it in the current Stack,\n // this means hotswapping is not possible\n return;\n }\n // the physical name of the Task Definition in CloudFormation includes its current revision number at the end,\n // remove it if needed\n const familyNameOrArnParts = familyNameOrArn.split(':');\n const family = familyNameOrArnParts.length > 1\n ? // familyNameOrArn is actually an ARN, of the format 'arn:aws:ecs:region:account:task-definition/:'\n // so, take the 6th element, at index 5, and split it on '/'\n familyNameOrArnParts[5].split('/')[1]\n : // otherwise, familyNameOrArn is just the simple name evaluated from the CloudFormation template\n familyNameOrArn;\n // then, let's evaluate the body of the remainder of the TaskDef (without the Family property)\n return {\n ...(await evaluateCfnTemplate.evaluateCfnExpression({\n ...(taskDefinitionResource ?? {}),\n Family: undefined,\n })),\n Family: family,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNzLXNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWNzLXNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsd0VBc0pDO0FBaktELHFDQUdrQjtBQUNsQixvREFBb0Y7QUFDcEYscUNBQTBFO0FBSTFFLE1BQU0seUJBQXlCLEdBQUcsbUJBQW1CLENBQUM7QUFFL0MsS0FBSyxVQUFVLDhCQUE4QixDQUNsRCxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQsRUFDbkQsd0JBQWtEO0lBRWxELHlFQUF5RTtJQUN6RSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLDBCQUEwQixFQUFFLENBQUM7UUFDeEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQW9CLEVBQUUsQ0FBQztJQUVoQyxxRkFBcUY7SUFDckYscUZBQXFGO0lBQ3JGLHVEQUF1RDtJQUN2RCxNQUFNLGlCQUFpQixHQUFHLElBQUEsd0JBQWUsRUFBQyxNQUFNLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDNUUsaUJBQWlCLENBQUMsb0NBQW9DLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFNUQsdUVBQXVFO0lBQ3ZFLE1BQU0sMkJBQTJCLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEYsTUFBTSxxQ0FBcUMsR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQzlFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLHlCQUF5QixDQUM1QyxDQUFDO0lBQ0YsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO0lBQzlELEtBQUssTUFBTSxrQkFBa0IsSUFBSSxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsU0FBUyxD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NkIsQ0FDN0UsU0FBUyxFQUNULHNCQUFzQixFQUFFLE1BQU0sQ0FDL0IsQ0FBQztJQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQiwyRkFBMkY7UUFDM0YseUNBQXlDO1FBQ3pDLE9BQU87SUFDVCxDQUFDO0lBQ0QsOEdBQThHO0lBQzlHLHNCQUFzQjtJQUN0QixNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsTUFBTSxNQUFNLEdBQ1Ysb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDN0IsQ0FBQyxDQUFDLDZIQUE2SDtZQUNqSSw0REFBNEQ7WUFDMUQsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsZ0dBQWdHO1lBQ2xHLGVBQWUsQ0FBQztJQUNwQiw4RkFBOEY7SUFDOUYsT0FBTztRQUNMLEdBQUcsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDO1lBQ2xELEdBQUcsQ0FBQyxzQkFBc0IsSUFBSSxFQUFFLENBQUM7WUFDakMsTUFBTSxFQUFFLFNBQVM7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICBIb3Rzd2FwQ2hhbmdlLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge1xuICBjbGFzc2lmeUNoYW5nZXMsXG4gIG5vbkhvdHN3YXBwYWJsZUNoYW5nZSxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgTm9uSG90c3dhcHBhYmxlUmVhc29uLCB0eXBlIFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgeyBsb3dlckNhc2VGaXJzdENoYXJhY3RlciwgdHJhbnNmb3JtT2JqZWN0S2V5cyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuXG5jb25zdCBFQ1NfU0VSVklDRV9SRVNPVVJDRV9UWVBFID0gJ0FXUzo6RUNTOjpTZXJ2aWNlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzSG90c3dhcHBhYmxlRWNzU2VydmljZUNoYW5nZShcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT4ge1xuICAvLyB0aGUgb25seSByZXNvdXJjZSBjaGFuZ2Ugd2UgY2FuIGV2YWx1YXRlIGhlcmUgaXMgYW4gRUNTIFRhc2tEZWZpbml0aW9uXG4gIGlmIChjaGFuZ2UubmV3VmFsdWUuVHlwZSAhPT0gJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXQ6IEhvdHN3YXBDaGFuZ2VbXSA9IFtdO1xuXG4gIC8vIFdlIG9ubHkgYWxsb3cgYSBjaGFuZ2UgaW4gdGhlIENvbnRhaW5lckRlZmluaXRpb25zIG9mIHRoZSBUYXNrRGVmaW5pdGlvbiBmb3Igbm93IC1cbiAgLy8gaXQgY29udGFpbnMgdGhlIGltYWdlIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHNlZW1zIGxpa2UgYSBzYWZlIGJldCBmb3Igbm93LlxuICAvLyBXZSBtaWdodCByZXZpc2l0IHRoaXMgZGVjaXNpb24gaW4gdGhlIGZ1dHVyZSB0aG91Z2ghXG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgWydDb250YWluZXJEZWZpbml0aW9ucyddKTtcbiAgY2xhc3NpZmllZENoYW5nZXMucmVwb3J0Tm9uSG90c3dhcHBhYmxlUHJvcGVydHlDaGFuZ2VzKHJldCk7XG5cbiAgLy8gZmluZCBhbGwgRUNTIFNlcnZpY2VzIHRoYXQgcmVmZXJlbmNlIHRoZSBUYXNrRGVmaW5pdGlvbiB0aGF0IGNoYW5nZWRcbiAgY29uc3QgcmVzb3VyY2VzUmVmZXJlbmNpbmdUYXNrRGVmID0gZXZhbHVhdGVDZm5UZW1wbGF0ZS5maW5kUmVmZXJlbmNlc1RvKGxvZ2ljYWxJZCk7XG4gIGNvbnN0IGVjc1NlcnZpY2VSZXNvdXJjZXNSZWZlcmVuY2luZ1Rhc2tEZWYgPSByZXNvdXJjZXNSZWZlcmVuY2luZ1Rhc2tEZWYuZmlsdGVyKFxuICAgIChyKSA9PiByLlR5cGUgPT09IEVDU19TRVJWSUNFX1JFU09VUkNFX1RZUEUsXG4gICk7XG4gIGNvbnN0IGVjc1NlcnZpY2VzUmVmZXJlbmNpbmdUYXNrRGVmID0gbmV3IEFycmF5PEVjc1NlcnZpY2U+KCk7XG4gIGZvciAoY29uc3QgZWNzU2VydmljZVJlc291cmNlIG9mIGVjc1NlcnZpY2VSZXNvdXJjZXNSZWZlcmVuY2luZ1Rhc2tEZWYpIHtcbiAgICBjb25zdCBzZXJ2aWNlQXJuID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5maW5kUGh5c2ljYWxOYW1lRm9yKGVjc1NlcnZpY2VSZXNvdXJjZS5Mb2dpY2FsSWQpO1xuICAgIGlmIChzZXJ2aWNlQXJuKSB7XG4gICAgICBlY3NTZXJ2aWNlc1JlZmVyZW5jaW5nVGFza0RlZi5wdXNoKHtcbiAgICAgICAgbG9naWNhbElkOiBlY3NTZXJ2aWNlUmVzb3VyY2UuTG9naWNhbElkLFxuICAgICAgICBzZXJ2aWNlQXJuLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGlmIChlY3NTZXJ2aWNlc1JlZmVyZW5jaW5nVGFza0RlZi5sZW5ndGggPT09IDApIHtcbiAgICAvKipcbiAgICAgKiBFQ1MgU2VydmljZXMgY2FuIGhhdmUgYSB0YXNrIGRlZmluaXRpb24gdGhhdCBkb2Vzbid0IHJlZmVyIHRvIHRoZSB0YXNrIGRlZmluaXRpb24gYmVpbmcgdXBkYXRlZC5cbiAgICAgKiBXZSBoYXZlIHRvIGxvZyB0aGlzIGFzIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgdG8gdGhlIHRhc2sgZGVmaW5pdGlvbiwgYnV0IHdoZW4gd2UgZG8sXG4gICAgICogd2Ugd2luZCB1cCBob3Rzd2FwcGluZyB0aGUgdGFzayBkZWZpbml0aW9uIGFuZCBsb2dnaW5nIGl0IGFzIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGxvZ2ljIHByZXZlbnRzIHVzIGZyb20gbG9nZ2luZyB0aGF0IGNoYW5nZSBhcyBub24taG90c3dhcHBhYmxlIHdoZW4gd2UgaG90c3dhcCBpdC5cbiAgICAgKi9cbiAgICByZXQucHVzaChub25Ib3Rzd2FwcGFibGVDaGFuZ2UoXG4gICAgICBjaGFuZ2UsXG4gICAgICBOb25Ib3Rzd2FwcGFibGVSZWFzb24uREVQRU5ERU5DWV9VTlNVUFBPUlRFRCxcbiAgICAgICdObyBFQ1Mgc2VydmljZXMgcmVmZXJlbmNlIHRoZSBjaGFuZ2VkIHRhc2sgZGVmaW5pdGlvbicsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBmYWxzZSxcbiAgICApKTtcbiAgfVxuICBpZiAocmVzb3VyY2VzUmVmZXJlbmNpbmdUYXNrRGVmLmxlbmd0aCA+IGVjc1NlcnZpY2VzUmVmZXJlbmNpbmdUYXNrRGVmLmxlbmd0aCkge1xuICAgIC8vIGlmIHNvbWV0aGluZyBiZXNpZGVzIGFuIEVDUyBTZXJ2aWNlIGlzIHJlZmVyZW5jaW5nIHRoZSBUYXNrRGVmaW5pdGlvbixcbiAgICAvLyBob3Rzd2FwIGlzIG5vdCBwb3NzaWJsZSBpbiBGQUxMX0JBQ0sgbW9kZVxuICAgIGNvbnN0IG5vbkVjc1NlcnZpY2VUYXNrRGVmUmVmcyA9IHJlc291cmNlc1JlZmVyZW5jaW5nVGFza0RlZi5maWx0ZXIoKHIpID0+IHIuVHlwZSAhPT0gRUNTX1NFUlZJQ0VfUkVTT1VSQ0VfVFlQRSk7XG4gICAgZm9yIChjb25zdCB0YXNrUmVmIG9mIG5vbkVjc1NlcnZpY2VUYXNrRGVmUmVmcykge1xuICAgICAgcmV0LnB1c2gobm9uSG90c3dhcHBhYmxlQ2hhbmdlKFxuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5ERVBFTkRFTkNZX1VOU1VQUE9SVEVELFxuICAgICAgICBgQSByZXNvdXJjZSAnJHt0YXNrUmVmLkxvZ2ljYWxJZH0nIHdpdGggVHlwZSAnJHt0YXNrUmVmLlR5cGV9JyB0aGF0IGlzIG5vdCBhbiBFQ1MgU2VydmljZSB3YXMgZm91bmQgcmVmZXJlbmNpbmcgdGhlIGNoYW5nZWQgVGFza0RlZmluaXRpb24gJyR7bG9naWNhbElkfSdgLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbmFtZXNPZkhvdHN3YXBwYWJsZUNoYW5nZXMgPSBPYmplY3Qua2V5cyhjbGFzc2lmaWVkQ2hhbmdlcy5ob3Rzd2FwcGFibGVQcm9wcyk7XG4gIGlmIChuYW1lc09mSG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgdGFza0RlZmluaXRpb25SZXNvdXJjZSA9IGF3YWl0IHByZXBhcmVUYXNrRGVmaW5pdGlvbkNoYW5nZShldmFsdWF0ZUNmblRlbXBsYXRlLCBsb2dpY2FsSWQsIGNoYW5nZSk7XG4gICAgcmV0LnB1c2goe1xuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIGNhdXNlOiBjaGFuZ2UsXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgICAgICBwaHlzaWNhbE5hbWU6IGF3YWl0IHRhc2tEZWZpbml0aW9uUmVzb3VyY2UuRmFtaWx5LFxuICAgICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLmVjc1NlcnZpY2VzUmVmZXJlbmNpbmdUYXNrRGVmLm1hcCgoZWNzU2VydmljZSkgPT4gKHtcbiAgICAgICAgICAgIHJlc291cmNlVHlwZTogRUNTX1NFUlZJQ0VfUkVTT1VSQ0VfVFlQRSxcbiAgICAgICAgICAgIHBoeXNpY2FsTmFtZTogZWNzU2VydmljZS5zZXJ2aWNlQXJuLnNwbGl0KCcvJylbMl0sXG4gICAgICAgICAgICBsb2dpY2FsSWQ6IGVjc1NlcnZpY2UubG9naWNhbElkLFxuICAgICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IoZWNzU2VydmljZS5sb2dpY2FsSWQpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBob3Rzd2FwcGFibGU6IHRydWUsXG4gICAgICBzZXJ2aWNlOiAnZWNzLXNlcnZpY2UnLFxuICAgICAgYXBwbHk6IGFzeW5jIChzZGs6IFNESykgPT4ge1xuICAgICAgICAvLyBTdGVwIDEgLSB1cGRhdGUgdGhlIGNoYW5nZWQgVGFza0RlZmluaXRpb24sIGNyZWF0aW5nIGEgbmV3IFRhc2tEZWZpbml0aW9uIFJldmlzaW9uXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gbG93ZXJjYXNlIHRoZSBldmFsdWF0ZWQgVGFza0RlZiBmcm9tIENsb3VkRm9ybWF0aW9uLFxuICAgICAgICAvLyBhcyB0aGUgQVdTIFNESyB1c2VzIGxvd2VyY2FzZSBwcm9wZXJ0eSBuYW1lcyBmb3IgdGhlc2VcblxuICAgICAgICAvLyBUaGUgU0RLIHJlcXVpcmVzIG1vcmUgcHJvcGVydGllcyBoZXJlIHRoYW4gaXRzIHdvcnRoIGRvaW5nIGV4cGxpY2l0IHR5cGluZyBmb3JcbiAgICAgICAgLy8gaW5zdGVhZCwganVzdCB1c2UgYWxsIHRoZSBvbGQgdmFsdWVzIGluIHRoZSBkaWZmIHRvIGZpbGwgdGhlbSBpbiBpbXBsaWNpdGx5XG4gICAgICAgIHJlbmFtZUNmblByb3BlcnRpZXNUb1Nka1Byb3BlcnRpZXModGFza0RlZmluaXRpb25SZXNvdXJjZSk7XG4gICAgICAgIGNvbnN0IGxvd2VyY2FzZWRUYXNrRGVmID0gdHJhbnNmb3JtT2JqZWN0S2V5cyh0YXNrRGVmaW5pdGlvblJlc291cmNlLCBsb3dlckNhc2VGaXJzdENoYXJhY3Rlciwge1xuICAgICAgICAgIC8vIEFsbCB0aGUgcHJvcGVydGllcyB0aGF0IHRha2UgYXJiaXRyYXJ5IHN0cmluZyBhcyBrZXlzIGkuZS4geyBcInN0cmluZ1wiIDogXCJzdHJpbmdcIiB9XG4gICAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZWdpc3RlclRhc2tEZWZpbml0aW9uLmh0bWwjQVBJX1JlZ2lzdGVyVGFza0RlZmluaXRpb25fUmVxdWVzdFN5bnRheFxuICAgICAgICAgIENvbnRhaW5lckRlZmluaXRpb25zOiB7XG4gICAgICAgICAgICBEb2NrZXJMYWJlbHM6IHRydWUsXG4gICAgICAgICAgICBGaXJlbGVuc0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgT3B0aW9uczogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBMb2dDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgIE9wdGlvbnM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgVm9sdW1lczoge1xuICAgICAgICAgICAgRG9ja2VyVm9sdW1lQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICBEcml2ZXJPcHRzOiB0cnVlLFxuICAgICAgICAgICAgICBMYWJlbHM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZWdpc3RlclRhc2tEZWZSZXNwb25zZSA9IGF3YWl0IHNkay5lY3MoKS5yZWdpc3RlclRhc2tEZWZpbml0aW9uKGxvd2VyY2FzZWRUYXNrRGVmKTtcbiAgICAgICAgY29uc3QgdGFza0RlZlJldkFybiA9IHJlZ2lzdGVyVGFza0RlZlJlc3BvbnNlLnRhc2tEZWZpbml0aW9uPy50YXNrRGVmaW5pdGlvbkFybjtcblxuICAgICAgICBsZXQgZWNzSG90c3dhcFByb3BlcnRpZXMgPSBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMuZWNzO1xuICAgICAgICBsZXQgbWluaW11bUhlYWx0aHlQZXJjZW50ID0gZWNzSG90c3dhcFByb3BlcnRpZXM/Lm1pbmltdW1IZWFsdGh5UGVyY2VudDtcbiAgICAgICAgbGV0IG1heGltdW1IZWFsdGh5UGVyY2VudCA9IGVjc0hvdHN3YXBQcm9wZXJ0aWVzPy5tYXhpbXVtSGVhbHRoeVBlcmNlbnQ7XG4gICAgICAgIGxldCBzdGFiaWxpemF0aW9uVGltZW91dFNlY29uZHMgPSBlY3NIb3Rzd2FwUHJvcGVydGllcz8uc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzO1xuXG4gICAgICAgIC8vIFN0ZXAgMiAtIHVwZGF0ZSB0aGUgc2VydmljZXMgdXNpbmcgdGhhdCBUYXNrRGVmaW5pdGlvbiB0byBwb2ludCB0byB0aGUgbmV3IFRhc2tEZWZpbml0aW9uIFJldmlzaW9uXG4gICAgICAgIC8vIEZvcmNpbmcgTmV3IERlcGxveW1lbnQgYW5kIHNldHRpbmcgTWluaW11bSBIZWFsdGh5IFBlcmNlbnQgdG8gMC5cbiAgICAgICAgLy8gQXMgQ0RLIEhvdFN3YXAgaXMgZGV2ZWxvcG1lbnQgb25seSwgdGhpcyBzZWVtcyB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IHRvIGVuc3VyZSBhbGwgdGFza3MgYXJlIHJlcGxhY2VkIGltbWVkaWF0ZWx5LCByZWdhcmRsZXNzIG9mIG9yaWdpbmFsIGFtb3VudFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgZWNzU2VydmljZXNSZWZlcmVuY2luZ1Rhc2tEZWYubWFwKGFzeW5jIChzZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbHVzdGVyID0gc2VydmljZS5zZXJ2aWNlQXJuLnNwbGl0KCcvJylbMV07XG4gICAgICAgICAgICBjb25zdCB1cGRhdGUgPSBhd2FpdCBzZGsuZWNzKCkudXBkYXRlU2VydmljZSh7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2Uuc2VydmljZUFybixcbiAgICAgICAgICAgICAgdGFza0RlZmluaXRpb246IHRhc2tEZWZSZXZBcm4sXG4gICAgICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgICAgIGZvcmNlTmV3RGVwbG95bWVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgZGVwbG95bWVudENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICBtaW5pbXVtSGVhbHRoeVBlcmNlbnQ6IG1pbmltdW1IZWFsdGh5UGVyY2VudCAhPT0gdW5kZWZpbmVkID8gbWluaW11bUhlYWx0aHlQZXJjZW50IDogMCxcbiAgICAgICAgICAgICAgICBtYXhpbXVtUGVyY2VudDogbWF4aW11bUhlYWx0aHlQZXJjZW50ICE9PSB1bmRlZmluZWQgPyBtYXhpbXVtSGVhbHRoeVBlcmNlbnQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgc2RrLmVjcygpLndhaXRVbnRpbFNlcnZpY2VzU3RhYmxlKHtcbiAgICAgICAgICAgICAgY2x1c3RlcjogdXBkYXRlLnNlcnZpY2U/LmNsdXN0ZXJBcm4sXG4gICAgICAgICAgICAgIHNlcnZpY2VzOiBbc2VydmljZS5zZXJ2aWNlQXJuXSxcbiAgICAgICAgICAgIH0sIHN0YWJpbGl6YXRpb25UaW1lb3V0U2Vjb25kcyk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuaW50ZXJmYWNlIEVjc1NlcnZpY2Uge1xuICByZWFkb25seSBsb2dpY2FsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2VydmljZUFybjogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiByZW5hbWVDZm5Qcm9wZXJ0aWVzVG9TZGtQcm9wZXJ0aWVzKG9iamVjdDogYW55KTogdm9pZCB7XG4gIC8vIENsb3VkRm9ybWF0aW9uIHVzZXMgUHJveHlDb25maWd1cmF0aW9uUHJvcGVydGllcyBidXQgU0RLIGV4cGVjdHMgcHJvcGVydGllc1xuICBpZiAob2JqZWN0LlByb3h5Q29uZmlndXJhdGlvbj8uUHJveHlDb25maWd1cmF0aW9uUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgb2JqZWN0LlByb3h5Q29uZmlndXJhdGlvbi5wcm9wZXJ0aWVzID0gb2JqZWN0LlByb3h5Q29uZmlndXJhdGlvbi5Qcm94eUNvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzO1xuICAgIGRlbGV0ZSBvYmplY3QuUHJveHlDb25maWd1cmF0aW9uLlByb3h5Q29uZmlndXJhdGlvblByb3BlcnRpZXM7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVRhc2tEZWZpbml0aW9uQ2hhbmdlKFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuKSB7XG4gIGNvbnN0IHRhc2tEZWZpbml0aW9uUmVzb3VyY2U6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge1xuICAgIC4uLmNoYW5nZS5vbGRWYWx1ZS5Qcm9wZXJ0aWVzLFxuICAgIENvbnRhaW5lckRlZmluaXRpb25zOiBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uQ29udGFpbmVyRGVmaW5pdGlvbnMsXG4gIH07XG4gIC8vIGZpcnN0LCBsZXQncyBnZXQgdGhlIG5hbWUgb2YgdGhlIGZhbWlseVxuICBjb25zdCBmYW1pbHlOYW1lT3JBcm4gPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmVzdGFibGlzaFJlc291cmNlUGh5c2ljYWxOYW1lKFxuICAgIGxvZ2ljYWxJZCxcbiAgICB0YXNrRGVmaW5pdGlvblJlc291cmNlPy5GYW1pbHksXG4gICk7XG4gIGlmICghZmFtaWx5TmFtZU9yQXJuKSB7XG4gICAgLy8gaWYgdGhlIEZhbWlseSBwcm9wZXJ0eSBoYXMgbm90IGJlZW4gcHJvdmlkZWQsIGFuZCB3ZSBjYW4ndCBmaW5kIGl0IGluIHRoZSBjdXJyZW50IFN0YWNrLFxuICAgIC8vIHRoaXMgbWVhbnMgaG90c3dhcHBpbmcgaXMgbm90IHBvc3NpYmxlXG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIHRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoZSBUYXNrIERlZmluaXRpb24gaW4gQ2xvdWRGb3JtYXRpb24gaW5jbHVkZXMgaXRzIGN1cnJlbnQgcmV2aXNpb24gbnVtYmVyIGF0IHRoZSBlbmQsXG4gIC8vIHJlbW92ZSBpdCBpZiBuZWVkZWRcbiAgY29uc3QgZmFtaWx5TmFtZU9yQXJuUGFydHMgPSBmYW1pbHlOYW1lT3JBcm4uc3BsaXQoJzonKTtcbiAgY29uc3QgZmFtaWx5ID1cbiAgICBmYW1pbHlOYW1lT3JBcm5QYXJ0cy5sZW5ndGggPiAxXG4gICAgICA/IC8vIGZhbWlseU5hbWVPckFybiBpcyBhY3R1YWxseSBhbiBBUk4sIG9mIHRoZSBmb3JtYXQgJ2Fybjphd3M6ZWNzOnJlZ2lvbjphY2NvdW50OnRhc2stZGVmaW5pdGlvbi88ZmFtaWx5LW5hbWU+OjxyZXZpc2lvbi1ucj4nXG4gICAgLy8gc28sIHRha2UgdGhlIDZ0aCBlbGVtZW50LCBhdCBpbmRleCA1LCBhbmQgc3BsaXQgaXQgb24gJy8nXG4gICAgICBmYW1pbHlOYW1lT3JBcm5QYXJ0c1s1XS5zcGxpdCgnLycpWzFdXG4gICAgICA6IC8vIG90aGVyd2lzZSwgZmFtaWx5TmFtZU9yQXJuIGlzIGp1c3QgdGhlIHNpbXBsZSBuYW1lIGV2YWx1YXRlZCBmcm9tIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgICAgZmFtaWx5TmFtZU9yQXJuO1xuICAvLyB0aGVuLCBsZXQncyBldmFsdWF0ZSB0aGUgYm9keSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSBUYXNrRGVmICh3aXRob3V0IHRoZSBGYW1pbHkgcHJvcGVydHkpXG4gIHJldHVybiB7XG4gICAgLi4uKGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHtcbiAgICAgIC4uLih0YXNrRGVmaW5pdGlvblJlc291cmNlID8/IHt9KSxcbiAgICAgIEZhbWlseTogdW5kZWZpbmVkLFxuICAgIH0pKSxcbiAgICBGYW1pbHk6IGZhbWlseSxcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tryHotswapDeployment = tryHotswapDeployment;\nconst util_1 = require(\"util\");\nconst cfn_diff = require(\"@aws-cdk/cloudformation-diff\");\nconst chalk = require(\"chalk\");\nconst payloads_1 = require(\"../../payloads\");\nconst util_2 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst appsync_mapping_templates_1 = require(\"./appsync-mapping-templates\");\nconst code_build_projects_1 = require(\"./code-build-projects\");\nconst common_1 = require(\"./common\");\nconst ecs_services_1 = require(\"./ecs-services\");\nconst lambda_functions_1 = require(\"./lambda-functions\");\nconst s3_bucket_deployments_1 = require(\"./s3-bucket-deployments\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst private_1 = require(\"../io/private\");\nconst plugin_1 = require(\"../plugin\");\nconst cloud_control_resource_1 = require(\"./cloud-control-resource\");\n// Must use a require() otherwise esbuild complains about calling a namespace\n// eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/consistent-type-imports\nconst pLimit = require('p-limit');\nconst RESOURCE_DETECTORS = {\n // Lambda\n 'AWS::Lambda::Function': lambda_functions_1.isHotswappableLambdaFunctionChange,\n 'AWS::Lambda::Version': lambda_functions_1.isHotswappableLambdaFunctionChange,\n 'AWS::Lambda::Alias': lambda_functions_1.isHotswappableLambdaFunctionChange,\n // AppSync\n 'AWS::AppSync::Resolver': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::AppSync::FunctionConfiguration': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::AppSync::GraphQLSchema': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::AppSync::ApiKey': appsync_mapping_templates_1.isHotswappableAppSyncChange,\n 'AWS::ECS::TaskDefinition': ecs_services_1.isHotswappableEcsServiceChange,\n 'AWS::CodeBuild::Project': code_build_projects_1.isHotswappableCodeBuildProjectChange,\n 'Custom::CDKBucketDeployment': s3_bucket_deployments_1.isHotswappableS3BucketDeploymentChange,\n 'AWS::IAM::Policy': async (logicalId, change, evaluateCfnTemplate) => {\n // If the policy is for a S3BucketDeploymentChange, we can ignore the change\n if (await (0, s3_bucket_deployments_1.skipChangeForS3DeployCustomResourcePolicy)(logicalId, change, evaluateCfnTemplate)) {\n return [];\n }\n return [(0, common_1.nonHotswappableResource)(change)];\n },\n 'AWS::CDK::Metadata': async () => [],\n // Resources that use CCAPIS\n 'AWS::ApiGateway::RestApi': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGateway::Deployment': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGateway::Method': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGatewayV2::Api': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::ApiGatewayV2::Integration': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::Bedrock::Agent': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::Events::Rule': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::DynamoDB::Table': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::DynamoDB::GlobalTable': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::SQS::Queue': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::CloudWatch::Alarm': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::CloudWatch::CompositeAlarm': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::CloudWatch::Dashboard': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::StepFunctions::StateMachine': cloud_control_resource_1.isHotswappableCloudControlChange,\n 'AWS::BedrockAgentCore::Runtime': cloud_control_resource_1.isHotswappableCloudControlChange,\n};\n/**\n * Perform a hotswap deployment, short-circuiting CloudFormation if possible.\n * If it's not possible to short-circuit the deployment\n * (because the CDK Stack contains changes that cannot be deployed without CloudFormation),\n * returns `undefined`.\n */\nasync function tryHotswapDeployment(sdkProvider, ioHelper, assetParams, cloudFormationStack, stackArtifact, hotswapMode, hotswapPropertyOverrides) {\n const hotswapSpan = await ioHelper.span(private_1.SPAN.HOTSWAP).begin({\n stack: stackArtifact,\n mode: hotswapMode,\n });\n const result = await hotswapDeployment(sdkProvider, hotswapSpan, assetParams, stackArtifact, hotswapMode, hotswapPropertyOverrides);\n await hotswapSpan.end(result);\n // This is a hotswap error that was caught during the hotswapDeployment function\n // It is thrown after the hotswap span ends so it can be reported to telemetry\n if (result.error) {\n throw result.error;\n }\n if (result?.hotswapped === true) {\n return {\n type: 'did-deploy-stack',\n noOp: result.hotswappableChanges.length === 0,\n stackArn: cloudFormationStack.stackId,\n outputs: cloudFormationStack.outputs,\n };\n }\n return undefined;\n}\n/**\n * Perform a hotswap deployment, short-circuiting CloudFormation if possible.\n * Returns information about the attempted hotswap deployment\n */\nasync function hotswapDeployment(sdkProvider, ioSpan, assetParams, stack, hotswapMode, hotswapPropertyOverrides) {\n // resolve the environment, so we can substitute things like AWS::Region in CFN expressions\n const resolvedEnv = await sdkProvider.resolveEnvironment(stack.environment);\n // create a new SDK using the CLI credentials, because the default one will not work for new-style synthesis -\n // it assumes the bootstrap deploy Role, which doesn't have permissions to update Lambda functions\n const sdk = (await sdkProvider.forEnvironment(resolvedEnv, plugin_1.Mode.ForWriting)).sdk;\n const currentTemplate = await (0, cloudformation_1.loadCurrentTemplateWithNestedStacks)(stack, sdk);\n const evaluateCfnTemplate = new cloudformation_1.EvaluateCloudFormationTemplate({\n stackArtifact: stack,\n parameters: assetParams,\n account: resolvedEnv.account,\n region: resolvedEnv.region,\n partition: (await sdk.currentAccount()).partition,\n sdk,\n nestedStacks: currentTemplate.nestedStacks,\n });\n const stackChanges = cfn_diff.fullDiff(currentTemplate.deployedRootTemplate, stack.template);\n const { hotswappable, nonHotswappable } = await classifyResourceChanges(stackChanges, evaluateCfnTemplate, sdk, currentTemplate.nestedStacks, hotswapPropertyOverrides);\n await logRejectedChanges(ioSpan, nonHotswappable, hotswapMode);\n const hotswappableChanges = hotswappable.map(o => o.change);\n const nonHotswappableChanges = nonHotswappable.map(n => n.change);\n await ioSpan.notify(private_1.IO.CDK_TOOLKIT_I5401.msg('Hotswap plan created', {\n stack,\n mode: hotswapMode,\n hotswappableChanges,\n nonHotswappableChanges,\n }));\n // preserve classic hotswap behavior\n if (hotswapMode === 'fall-back') {\n if (nonHotswappableChanges.length > 0) {\n return {\n stack,\n mode: hotswapMode,\n hotswapped: false,\n hotswappableChanges,\n nonHotswappableChanges,\n };\n }\n }\n // apply the short-circuitable changes\n let error;\n try {\n await applyAllHotswapOperations(sdk, ioSpan, hotswappable);\n }\n catch (e) {\n error = e;\n }\n return {\n stack,\n mode: hotswapMode,\n hotswapped: !error,\n hotswappableChanges,\n nonHotswappableChanges,\n error,\n };\n}\n/**\n * Classifies all changes to all resources as either hotswappable or not.\n * Metadata changes are excluded from the list of (non)hotswappable resources.\n */\nasync function classifyResourceChanges(stackChanges, evaluateCfnTemplate, sdk, nestedStackNames, hotswapPropertyOverrides) {\n const resourceDifferences = getStackResourceDifferences(stackChanges);\n const promises = [];\n const hotswappableResources = new Array();\n const nonHotswappableResources = new Array();\n const nestedStackTasks = [];\n const limit = pLimit(10);\n for (const logicalId of Object.keys(stackChanges.outputs.changes)) {\n nonHotswappableResources.push({\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.OUTPUT,\n description: 'output was changed',\n subject: {\n type: 'Output',\n logicalId,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n });\n }\n // gather the results of the detector functions\n for (const [logicalId, change] of Object.entries(resourceDifferences)) {\n if (change.newValue?.Type === 'AWS::CloudFormation::Stack' && change.oldValue?.Type === 'AWS::CloudFormation::Stack') {\n nestedStackTasks.push(limit(() => findNestedHotswappableChanges(logicalId, change, nestedStackNames, evaluateCfnTemplate, sdk, hotswapPropertyOverrides)));\n continue;\n }\n const hotswappableChangeCandidate = isCandidateForHotswapping(logicalId, change, evaluateCfnTemplate);\n // we don't need to run this through the detector functions, we can already judge this\n if ('hotswappable' in hotswappableChangeCandidate) {\n if (!hotswappableChangeCandidate.hotswappable) {\n nonHotswappableResources.push(hotswappableChangeCandidate);\n }\n continue;\n }\n const resourceType = hotswappableChangeCandidate.newValue.Type;\n if (resourceType in RESOURCE_DETECTORS) {\n // run detector functions lazily to prevent unhandled promise rejections\n promises.push(() => RESOURCE_DETECTORS[resourceType](logicalId, hotswappableChangeCandidate, evaluateCfnTemplate, hotswapPropertyOverrides));\n }\n else {\n nonHotswappableResources.push((0, common_1.nonHotswappableResource)(hotswappableChangeCandidate));\n }\n }\n // resolve all nested stack and detector results in parallel\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const nestedResults = await Promise.all(nestedStackTasks);\n for (const nested of nestedResults) {\n hotswappableResources.push(...nested.hotswappable);\n nonHotswappableResources.push(...nested.nonHotswappable);\n }\n const changesDetectionResults = [];\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const detectorResults = await Promise.all(promises.map((fn) => limit(fn)));\n for (const hotswapDetectionResults of detectorResults) {\n changesDetectionResults.push(hotswapDetectionResults);\n }\n for (const resourceDetectionResults of changesDetectionResults) {\n for (const propertyResult of resourceDetectionResults) {\n propertyResult.hotswappable\n ? hotswappableResources.push(propertyResult)\n : nonHotswappableResources.push(propertyResult);\n }\n }\n return {\n hotswappable: hotswappableResources,\n nonHotswappable: nonHotswappableResources,\n };\n}\n/**\n * Returns all changes to resources in the given Stack.\n *\n * @param stackChanges - the collection of all changes to a given Stack\n */\nfunction getStackResourceDifferences(stackChanges) {\n // we need to collapse logical ID rename changes into one change,\n // as they are represented in stackChanges as a pair of two changes: one addition and one removal\n const allResourceChanges = stackChanges.resources.changes;\n const allRemovalChanges = filterDict(allResourceChanges, (resChange) => resChange.isRemoval);\n const allNonRemovalChanges = filterDict(allResourceChanges, (resChange) => !resChange.isRemoval);\n for (const [logId, nonRemovalChange] of Object.entries(allNonRemovalChanges)) {\n if (nonRemovalChange.isAddition) {\n const addChange = nonRemovalChange;\n // search for an identical removal change\n const identicalRemovalChange = Object.entries(allRemovalChanges).find(([_, remChange]) => {\n return changesAreForSameResource(remChange, addChange);\n });\n // if we found one, then this means this is a rename change\n if (identicalRemovalChange) {\n const [removedLogId, removedResourceChange] = identicalRemovalChange;\n allNonRemovalChanges[logId] = makeRenameDifference(removedResourceChange, addChange);\n // delete the removal change that forms the rename pair\n delete allRemovalChanges[removedLogId];\n }\n }\n }\n // the final result are all of the remaining removal changes,\n // plus all of the non-removal changes\n // (we saved the rename changes in that object already)\n return {\n ...allRemovalChanges,\n ...allNonRemovalChanges,\n };\n}\n/** Filters an object with string keys based on whether the callback returns 'true' for the given value in the object. */\nfunction filterDict(dict, func) {\n return Object.entries(dict).reduce((acc, [key, t]) => {\n if (func(t)) {\n acc[key] = t;\n }\n return acc;\n }, {});\n}\n/** Finds any hotswappable changes in all nested stacks. */\nasync function findNestedHotswappableChanges(logicalId, change, nestedStackTemplates, evaluateCfnTemplate, sdk, hotswapPropertyOverrides) {\n const nestedStack = nestedStackTemplates[logicalId];\n if (!nestedStack.physicalName) {\n return {\n hotswappable: [],\n nonHotswappable: [\n {\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.NESTED_STACK_CREATION,\n description: 'newly created nested stacks cannot be hotswapped',\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: 'AWS::CloudFormation::Stack',\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n },\n ],\n };\n }\n const evaluateNestedCfnTemplate = await evaluateCfnTemplate.createNestedEvaluateCloudFormationTemplate(nestedStack.physicalName, nestedStack.generatedTemplate, change.newValue?.Properties?.Parameters);\n const nestedDiff = cfn_diff.fullDiff(nestedStackTemplates[logicalId].deployedTemplate, nestedStackTemplates[logicalId].generatedTemplate);\n return classifyResourceChanges(nestedDiff, evaluateNestedCfnTemplate, sdk, nestedStackTemplates[logicalId].nestedStackTemplates, hotswapPropertyOverrides);\n}\n/** Returns 'true' if a pair of changes is for the same resource. */\nfunction changesAreForSameResource(oldChange, newChange) {\n return (oldChange.oldResourceType === newChange.newResourceType &&\n // this isn't great, but I don't want to bring in something like underscore just for this comparison\n JSON.stringify(oldChange.oldProperties) === JSON.stringify(newChange.newProperties));\n}\nfunction makeRenameDifference(remChange, addChange) {\n return new cfn_diff.ResourceDifference(\n // we have to fill in the old value, because otherwise this will be classified as a non-hotswappable change\n remChange.oldValue, addChange.newValue, {\n resourceType: {\n oldType: remChange.oldResourceType,\n newType: addChange.newResourceType,\n },\n propertyDiffs: addChange.propertyDiffs,\n otherDiffs: addChange.otherDiffs,\n });\n}\n/**\n * Returns a `HotswappableChangeCandidate` if the change is hotswappable\n * Returns an empty `HotswappableChange` if the change is to CDK::Metadata\n * Returns a `NonHotswappableChange` if the change is not hotswappable\n */\nfunction isCandidateForHotswapping(logicalId, change, evaluateCfnTemplate) {\n // a resource has been removed OR a resource has been added; we can't short-circuit that change\n if (!change.oldValue) {\n return {\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.RESOURCE_CREATION,\n description: `resource '${logicalId}' was created by this deployment`,\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: change.newValue.Type,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n };\n }\n else if (!change.newValue) {\n return {\n hotswappable: false,\n logicalId,\n change: {\n reason: payloads_1.NonHotswappableReason.RESOURCE_DELETION,\n description: `resource '${logicalId}' was destroyed by this deployment`,\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: change.oldValue.Type,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n };\n }\n // a resource has had its type changed\n if (change.newValue.Type !== change.oldValue.Type) {\n return {\n hotswappable: false,\n change: {\n reason: payloads_1.NonHotswappableReason.RESOURCE_TYPE_CHANGED,\n description: `resource '${logicalId}' had its type changed from '${change.oldValue?.Type}' to '${change.newValue?.Type}'`,\n subject: {\n type: 'Resource',\n logicalId,\n resourceType: change.newValue.Type,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n },\n };\n }\n return {\n logicalId,\n oldValue: change.oldValue,\n newValue: change.newValue,\n propertyUpdates: change.propertyUpdates,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n };\n}\nasync function applyAllHotswapOperations(sdk, ioSpan, hotswappableChanges) {\n if (hotswappableChanges.length === 0) {\n return Promise.resolve([]);\n }\n await ioSpan.defaults.info(`\\n${common_1.ICON} hotswapping resources:`);\n const limit = pLimit(10);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(hotswappableChanges.map(hotswapOperation => limit(() => {\n return applyHotswapOperation(sdk, ioSpan, hotswapOperation);\n })));\n}\nasync function applyHotswapOperation(sdk, ioSpan, hotswapOperation) {\n // note the type of service that was successfully hotswapped in the User-Agent\n const customUserAgent = `cdk-hotswap/success-${hotswapOperation.service}`;\n sdk.appendCustomUserAgent(customUserAgent);\n const resourceText = (r) => r.description ?? `${r.resourceType} '${r.physicalName ?? r.logicalId}'`;\n await ioSpan.notify(private_1.IO.CDK_TOOLKIT_I5402.msg(hotswapOperation.change.resources.map(r => (0, util_1.format)(` ${common_1.ICON} %s`, chalk.bold(resourceText(r)))).join('\\n'), hotswapOperation.change));\n // if the SDK call fails, an error will be thrown by the SDK\n // and will prevent the green 'hotswapped!' text from being displayed\n try {\n await hotswapOperation.apply(sdk);\n }\n catch (e) {\n if (e.name === 'TimeoutError' || e.name === 'AbortError') {\n const result = JSON.parse((0, util_2.formatErrorMessage)(e));\n const error = new toolkit_error_1.ToolkitError('HotswapWaiterFailed', formatWaiterErrorResult(result));\n error.name = e.name;\n throw error;\n }\n throw e;\n }\n await ioSpan.notify(private_1.IO.CDK_TOOLKIT_I5403.msg(hotswapOperation.change.resources.map(r => (0, util_1.format)(` ${common_1.ICON} %s %s`, chalk.bold(resourceText(r)), chalk.green('hotswapped!'))).join('\\n'), hotswapOperation.change));\n sdk.removeCustomUserAgent(customUserAgent);\n}\nfunction formatWaiterErrorResult(result) {\n const main = [\n `Resource is not in the expected state due to waiter status: ${result.state}`,\n result.reason ? `${result.reason}.` : '',\n ].join('. ');\n if (result.observedResponses != null) {\n const observedResponses = Object\n .entries(result.observedResponses)\n .map(([msg, count]) => ` - ${msg} (${count})`)\n .join('\\n');\n return `${main} Observed responses:\\n${observedResponses}`;\n }\n return main;\n}\nasync function logRejectedChanges(ioSpan, rejectedChanges, hotswapMode) {\n if (rejectedChanges.length === 0) {\n return;\n }\n /**\n * EKS Services can have a task definition that doesn't refer to the task definition being updated.\n * We have to log this as a non-hotswappable change to the task definition, but when we do,\n * we wind up hotswapping the task definition and logging it as a non-hotswappable change.\n *\n * This logic prevents us from logging that change as non-hotswappable when we hotswap it.\n */\n if (hotswapMode === 'hotswap-only') {\n rejectedChanges = rejectedChanges.filter((change) => change.hotswapOnlyVisible === true);\n if (rejectedChanges.length === 0) {\n return;\n }\n }\n const messages = ['']; // start with empty line\n if (hotswapMode === 'hotswap-only') {\n messages.push((0, util_1.format)('%s %s', chalk.red('⚠️'), chalk.red('The following non-hotswappable changes were found. To reconcile these using CloudFormation, specify --hotswap-fallback')));\n }\n else {\n messages.push((0, util_1.format)('%s %s', chalk.red('⚠️'), chalk.red('The following non-hotswappable changes were found:')));\n }\n for (const { change } of rejectedChanges) {\n messages.push(' ' + nonHotswappableChangeMessage(change));\n }\n messages.push(''); // newline\n await ioSpan.defaults.info(messages.join('\\n'));\n}\n/**\n * Formats a NonHotswappableChange\n */\nfunction nonHotswappableChangeMessage(change) {\n const subject = change.subject;\n const reason = change.description ?? change.reason;\n switch (subject.type) {\n case 'Output':\n return (0, util_1.format)('output: %s, reason: %s', chalk.bold(subject.logicalId), chalk.red(reason));\n case 'Resource':\n return nonHotswappableResourceMessage(subject, reason);\n }\n}\n/**\n * Formats a non-hotswappable resource subject\n */\nfunction nonHotswappableResourceMessage(subject, reason) {\n if (subject.rejectedProperties?.length) {\n return (0, util_1.format)('resource: %s, type: %s, rejected changes: %s, reason: %s', chalk.bold(subject.logicalId), chalk.bold(subject.resourceType), chalk.bold(subject.rejectedProperties), chalk.red(reason));\n }\n return (0, util_1.format)('resource: %s, type: %s, reason: %s', chalk.bold(subject.logicalId), chalk.bold(subject.resourceType), chalk.red(reason));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90c3dhcC1kZXBsb3ltZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvdHN3YXAtZGVwbG95bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1R0Esb0RBeUNDO0FBaEpELCtCQUE4QjtBQUU5Qix5REFBeUQ7QUFFekQsK0JBQStCO0FBRS9CLDZDQUF1RDtBQUN2RCxxQ0FBZ0Q7QUFHaEQsc0RBQXdHO0FBQ3hHLDJFQUEwRTtBQUMxRSwrREFBNkU7QUFPN0UscUNBR2tCO0FBQ2xCLGlEQUFnRTtBQUNoRSx5REFBd0U7QUFDeEUsbUVBR2lDO0FBQ2pDLCtEQUEyRDtBQUUzRCwyQ0FBeUM7QUFFekMsc0NBQWlDO0FBQ2pDLHFFQUE0RTtBQUU1RSw2RUFBNkU7QUFDN0UsNEdBQTRHO0FBQzVHLE1BQU0sTUFBTSxHQUE2QixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFXNUQsTUFBTSxrQkFBa0IsR0FBdUM7SUFDN0QsU0FBUztJQUNULHVCQUF1QixFQUFFLHFEQUFrQztJQUMzRCxzQkFBc0IsRUFBRSxxREFBa0M7SUFDMUQsb0JBQW9CLEVBQUUscURBQWtDO0lBRXhELFVBQVU7SUFDVix3QkFBd0IsRUFBRSx1REFBMkI7SUFDckQscUNBQXFDLEVBQUUsdURBQTJCO0lBQ2xFLDZCQUE2QixFQUFFLHVEQUEyQjtJQUMxRCxzQkFBc0IsRUFBRSx1REFBMkI7SUFFbkQsMEJBQTBCLEVBQUUsNkNBQThCO0lBQzFELHlCQUF5QixFQUFFLDBEQUFvQztJQUMvRCw2QkFBNkIsRUFBRSw4REFBc0M7SUFDckUsa0JBQWtCLEVBQUUsS0FBSyxFQUN2QixTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQsRUFDekIsRUFBRTtRQUM1Qiw0RUFBNEU7UUFDNUUsSUFBSSxNQUFNLElBQUEsaUVBQXlDLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDNUYsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFD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QVMsOEJBQThCLENBQUMsT0FBd0IsRUFBRSxNQUFjO0lBQzlFLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBQSxhQUFNLEVBQ1gsMERBQTBELEVBQzFELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFDdEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUEsYUFBTSxFQUNYLG9DQUFvQyxFQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQ2hDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQ2xCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjZm5fZGlmZiBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgV2FpdGVyUmVzdWx0IH0gZnJvbSAnQHNtaXRoeS91dGlsLXdhaXRlcic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFmZmVjdGVkUmVzb3VyY2UsIEhvdHN3YXBSZXN1bHQsIFJlc291cmNlU3ViamVjdCwgUmVzb3VyY2VDaGFuZ2UsIE5vbkhvdHN3YXBwYWJsZUNoYW5nZSB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IE5vbkhvdHN3YXBwYWJsZVJlYXNvbiB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2ssIE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgbG9hZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MsIEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSB9IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGlzSG90c3dhcHBhYmxlQXBwU3luY0NoYW5nZSB9IGZyb20gJy4vYXBwc3luYy1tYXBwaW5nLXRlbXBsYXRlcyc7XG5pbXBvcnQgeyBpc0hvdHN3YXBwYWJsZUNvZGVCdWlsZFByb2plY3RDaGFuZ2UgfSBmcm9tICcuL2NvZGUtYnVpbGQtcHJvamVjdHMnO1xuaW1wb3J0IHR5cGUge1xuICBIb3Rzd2FwQ2hhbmdlLFxuICBIb3Rzd2FwT3BlcmF0aW9uLFxuICBSZWplY3RlZENoYW5nZSxcbiAgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge1xuICBJQ09OLFxuICBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZSxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVFY3NTZXJ2aWNlQ2hhbmdlIH0gZnJvbSAnLi9lY3Mtc2VydmljZXMnO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVMYW1iZGFGdW5jdGlvbkNoYW5nZSB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9ucyc7XG5pbXBvcnQge1xuICBza2lwQ2hhbmdlRm9yUzNEZXBsb3lDdXN0b21SZXNvdXJjZVBvbGljeSxcbiAgaXNIb3Rzd2FwcGFibGVTM0J1Y2tldERlcGxveW1lbnRDaGFuZ2UsXG59IGZyb20gJy4vczMtYnVja2V0LWRlcGxveW1lbnRzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uL2RlcGxveW1lbnRzJztcbmltcG9ydCB7IElPLCBTUEFOIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElNZXNzYWdlU3BhbiwgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UgfSBmcm9tICcuL2Nsb3VkLWNvbnRyb2wtcmVzb3VyY2UnO1xuXG4vLyBNdXN0IHVzZSBhIHJlcXVpcmUoKSBvdGhlcndpc2UgZXNidWlsZCBjb21wbGFpbnMgYWJvdXQgY2FsbGluZyBhIG5hbWVzcGFjZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMsQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1pbXBvcnRzXG5jb25zdCBwTGltaXQ6IHR5cGVvZiBpbXBvcnQoJ3AtbGltaXQnKSA9IHJlcXVpcmUoJ3AtbGltaXQnKTtcblxudHlwZSBIb3Rzd2FwRGV0ZWN0b3IgPSAoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKSA9PiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT47XG5cbnR5cGUgSG90c3dhcE1vZGUgPSAnaG90c3dhcC1vbmx5JyB8ICdmYWxsLWJhY2snO1xuXG5jb25zdCBSRVNPVVJDRV9ERVRFQ1RPUlM6IHsgW2tleTogc3RyaW5nXTogSG90c3dhcERldGVjdG9yIH0gPSB7XG4gIC8vIExhbWJkYVxuICAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJzogaXNIb3Rzd2FwcGFibGVMYW1iZGFGdW5jdGlvbkNoYW5nZSxcbiAgJ0FXUzo6TGFtYmRhOjpWZXJzaW9uJzogaXNIb3Rzd2FwcGFibGVMYW1iZGFGdW5jdGlvbkNoYW5nZSxcbiAgJ0FXUzo6TGFtYmRhOjpBbGlhcyc6IGlzSG90c3dhcHBhYmxlTGFtYmRhRnVuY3Rpb25DaGFuZ2UsXG5cbiAgLy8gQXBwU3luY1xuICAnQVdTOjpBcHBTeW5jOjpSZXNvbHZlcic6IGlzSG90c3dhcHBhYmxlQXBwU3luY0NoYW5nZSxcbiAgJ0FXUzo6QXBwU3luYzo6RnVuY3Rpb25Db25maWd1cmF0aW9uJzogaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlLFxuICAnQVdTOjpBcHBTeW5jOjpHcmFwaFFMU2NoZW1hJzogaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlLFxuICAnQVdTOjpBcHBTeW5jOjpBcGlLZXknOiBpc0hvdHN3YXBwYWJsZUFwcFN5bmNDaGFuZ2UsXG5cbiAgJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbic6IGlzSG90c3dhcHBhYmxlRWNzU2VydmljZUNoYW5nZSxcbiAgJ0FXUzo6Q29kZUJ1aWxkOjpQcm9qZWN0JzogaXNIb3Rzd2FwcGFibGVDb2RlQnVpbGRQcm9qZWN0Q2hhbmdlLFxuICAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JzogaXNIb3Rzd2FwcGFibGVTM0J1Y2tldERlcGxveW1lbnRDaGFuZ2UsXG4gICdBV1M6OklBTTo6UG9saWN5JzogYXN5bmMgKFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gICAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICApOiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT4gPT4ge1xuICAgIC8vIElmIHRoZSBwb2xpY3kgaXMgZm9yIGEgUzNCdWNrZXREZXBsb3ltZW50Q2hhbmdlLCB3ZSBjYW4gaWdub3JlIHRoZSBjaGFuZ2VcbiAgICBpZiAoYXdhaXQgc2tpcENoYW5nZUZvclMzRGVwbG95Q3VzdG9tUmVzb3VyY2VQb2xpY3kobG9naWNhbElkLCBjaGFuZ2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtub25Ib3Rzd2FwcGFibGVSZXNvdXJjZShjaGFuZ2UpXTtcbiAgfSxcblxuICAnQVdTOjpDREs6Ok1ldGFkYXRhJzogYXN5bmMgKCkgPT4gW10sXG5cbiAgLy8gUmVzb3VyY2VzIHRoYXQgdXNlIENDQVBJU1xuICAnQVdTOjpBcGlHYXRld2F5OjpSZXN0QXBpJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkFwaUdhdGV3YXk6OkRlcGxveW1lbnQnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6QXBpR2F0ZXdheTo6TWV0aG9kJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkFwaUdhdGV3YXlWMjo6SW50ZWdyYXRpb24nOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6QmVkcm9jazo6QWdlbnQnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6RXZlbnRzOjpSdWxlJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkR5bmFtb0RCOjpUYWJsZSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6U1FTOjpRdWV1ZSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpDbG91ZFdhdGNoOjpBbGFybSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpDbG91ZFdhdGNoOjpDb21wb3NpdGVBbGFybSc6IGlzSG90c3dhcHBhYmxlQ2xvdWRDb250cm9sQ2hhbmdlLFxuICAnQVdTOjpDbG91ZFdhdGNoOjpEYXNoYm9hcmQnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbiAgJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJzogaXNIb3Rzd2FwcGFibGVDbG91ZENvbnRyb2xDaGFuZ2UsXG4gICdBV1M6OkJlZHJvY2tBZ2VudENvcmU6OlJ1bnRpbWUnOiBpc0hvdHN3YXBwYWJsZUNsb3VkQ29udHJvbENoYW5nZSxcbn07XG5cbi8qKlxuICogUGVyZm9ybSBhIGhvdHN3YXAgZGVwbG95bWVudCwgc2hvcnQtY2lyY3VpdGluZyBDbG91ZEZvcm1hdGlvbiBpZiBwb3NzaWJsZS5cbiAqIElmIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHNob3J0LWNpcmN1aXQgdGhlIGRlcGxveW1lbnRcbiAqIChiZWNhdXNlIHRoZSBDREsgU3RhY2sgY29udGFpbnMgY2hhbmdlcyB0aGF0IGNhbm5vdCBiZSBkZXBsb3llZCB3aXRob3V0IENsb3VkRm9ybWF0aW9uKSxcbiAqIHJldHVybnMgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cnlIb3Rzd2FwRGVwbG95bWVudChcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIGFzc2V0UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICBjbG91ZEZvcm1hdGlvblN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrLFxuICBzdGFja0FydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIGhvdHN3YXBNb2RlOiBIb3Rzd2FwTW9kZSxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBob3Rzd2FwU3BhbiA9IGF3YWl0IGlvSGVscGVyLnNwYW4oU1BBTi5IT1RTV0FQKS5iZWdpbih7XG4gICAgc3RhY2s6IHN0YWNrQXJ0aWZhY3QsXG4gICAgbW9kZTogaG90c3dhcE1vZGUsXG4gIH0pO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGhvdHN3YXBEZXBsb3ltZW50KFxuICAgIHNka1Byb3ZpZGVyLFxuICAgIGhvdHN3YXBTcGFuLFxuICAgIGFzc2V0UGFyYW1zLFxuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgaG90c3dhcE1vZGUsXG4gICAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICApO1xuXG4gIGF3YWl0IGhvdHN3YXBTcGFuLmVuZChyZXN1bHQpO1xuXG4gIC8vIFRoaXMgaXMgYSBob3Rzd2FwIGVycm9yIHRoYXQgd2FzIGNhdWdodCBkdXJpbmcgdGhlIGhvdHN3YXBEZXBsb3ltZW50IGZ1bmN0aW9uXG4gIC8vIEl0IGlzIHRocm93biBhZnRlciB0aGUgaG90c3dhcCBzcGFuIGVuZHMgc28gaXQgY2FuIGJlIHJlcG9ydGVkIHRvIHRlbGVtZXRyeVxuICBpZiAocmVzdWx0LmVycm9yKSB7XG4gICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICB9XG5cbiAgaWYgKHJlc3VsdD8uaG90c3dhcHBlZCA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZGlkLWRlcGxveS1zdGFjaycsXG4gICAgICBub09wOiByZXN1bHQuaG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPT09IDAsXG4gICAgICBzdGFja0FybjogY2xvdWRGb3JtYXRpb25TdGFjay5zdGFja0lkLFxuICAgICAgb3V0cHV0czogY2xvdWRGb3JtYXRpb25TdGFjay5vdXRwdXRzLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBlcmZvcm0gYSBob3Rzd2FwIGRlcGxveW1lbnQsIHNob3J0LWNpcmN1aXRpbmcgQ2xvdWRGb3JtYXRpb24gaWYgcG9zc2libGUuXG4gKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdHRlbXB0ZWQgaG90c3dhcCBkZXBsb3ltZW50XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGhvdHN3YXBEZXBsb3ltZW50KFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlvU3BhbjogSU1lc3NhZ2VTcGFuPGFueT4sXG4gIGFzc2V0UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBob3Rzd2FwTW9kZTogSG90c3dhcE1vZGUsXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxPbWl0PEhvdHN3YXBSZXN1bHQsICdkdXJhdGlvbic+PiB7XG4gIC8vIHJlc29sdmUgdGhlIGVudmlyb25tZW50LCBzbyB3ZSBjYW4gc3Vic3RpdHV0ZSB0aGluZ3MgbGlrZSBBV1M6OlJlZ2lvbiBpbiBDRk4gZXhwcmVzc2lvbnNcbiAgY29uc3QgcmVzb2x2ZWRFbnYgPSBhd2FpdCBzZGtQcm92aWRlci5yZXNvbHZlRW52aXJvbm1lbnQoc3RhY2suZW52aXJvbm1lbnQpO1xuICAvLyBjcmVhdGUgYSBuZXcgU0RLIHVzaW5nIHRoZSBDTEkgY3JlZGVudGlhbHMsIGJlY2F1c2UgdGhlIGRlZmF1bHQgb25lIHdpbGwgbm90IHdvcmsgZm9yIG5ldy1zdHlsZSBzeW50aGVzaXMgLVxuICAvLyBpdCBhc3N1bWVzIHRoZSBib290c3RyYXAgZGVwbG95IFJvbGUsIHdoaWNoIGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9ucyB0byB1cGRhdGUgTGFtYmRhIGZ1bmN0aW9uc1xuICBjb25zdCBzZGsgPSAoYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQocmVzb2x2ZWRFbnYsIE1vZGUuRm9yV3JpdGluZykpLnNkaztcblxuICBjb25zdCBjdXJyZW50VGVtcGxhdGUgPSBhd2FpdCBsb2FkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhzdGFjaywgc2RrKTtcblxuICBjb25zdCBldmFsdWF0ZUNmblRlbXBsYXRlID0gbmV3IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSh7XG4gICAgc3RhY2tBcnRpZmFjdDogc3RhY2ssXG4gICAgcGFyYW1ldGVyczogYXNzZXRQYXJhbXMsXG4gICAgYWNjb3VudDogcmVzb2x2ZWRFbnYuYWNjb3VudCxcbiAgICByZWdpb246IHJlc29sdmVkRW52LnJlZ2lvbixcbiAgICBwYXJ0aXRpb246IChhd2FpdCBzZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uLFxuICAgIHNkayxcbiAgICBuZXN0ZWRTdGFja3M6IGN1cnJlbnRUZW1wbGF0ZS5uZXN0ZWRTdGFja3MsXG4gIH0pO1xuXG4gIGNvbnN0IHN0YWNrQ2hhbmdlcyA9IGNmbl9kaWZmLmZ1bGxEaWZmKGN1cnJlbnRUZW1wbGF0ZS5kZXBsb3llZFJvb3RUZW1wbGF0ZSwgc3RhY2sudGVtcGxhdGUpO1xuICBjb25zdCB7IGhvdHN3YXBwYWJsZSwgbm9uSG90c3dhcHBhYmxlIH0gPSBhd2FpdCBjbGFzc2lmeVJlc291cmNlQ2hhbmdlcyhcbiAgICBzdGFja0NoYW5nZXMsXG4gICAgZXZhbHVhdGVDZm5UZW1wbGF0ZSxcbiAgICBzZGssXG4gICAgY3VycmVudFRlbXBsYXRlLm5lc3RlZFN0YWNrcywgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICApO1xuXG4gIGF3YWl0IGxvZ1JlamVjdGVkQ2hhbmdlcyhpb1NwYW4sIG5vbkhvdHN3YXBwYWJsZSwgaG90c3dhcE1vZGUpO1xuXG4gIGNvbnN0IGhvdHN3YXBwYWJsZUNoYW5nZXMgPSBob3Rzd2FwcGFibGUubWFwKG8gPT4gby5jaGFuZ2UpO1xuICBjb25zdCBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzID0gbm9uSG90c3dhcHBhYmxlLm1hcChuID0+IG4uY2hhbmdlKTtcblxuICBhd2FpdCBpb1NwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k1NDAxLm1zZygnSG90c3dhcCBwbGFuIGNyZWF0ZWQnLCB7XG4gICAgc3RhY2ssXG4gICAgbW9kZTogaG90c3dhcE1vZGUsXG4gICAgaG90c3dhcHBhYmxlQ2hhbmdlcyxcbiAgICBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzLFxuICB9KSk7XG5cbiAgLy8gcHJlc2VydmUgY2xhc3NpYyBob3Rzd2FwIGJlaGF2aW9yXG4gIGlmIChob3Rzd2FwTW9kZSA9PT0gJ2ZhbGwtYmFjaycpIHtcbiAgICBpZiAobm9uSG90c3dhcHBhYmxlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFjayxcbiAgICAgICAgbW9kZTogaG90c3dhcE1vZGUsXG4gICAgICAgIGhvdHN3YXBwZWQ6IGZhbHNlLFxuICAgICAgICBob3Rzd2FwcGFibGVDaGFuZ2VzLFxuICAgICAgICBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBhcHBseSB0aGUgc2hvcnQtY2lyY3VpdGFibGUgY2hhbmdlc1xuICBsZXQgZXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGF3YWl0IGFwcGx5QWxsSG90c3dhcE9wZXJhdGlvbnMoc2RrLCBpb1NwYW4sIGhvdHN3YXBwYWJsZSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGVycm9yID0gZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3RhY2ssXG4gICAgbW9kZTogaG90c3dhcE1vZGUsXG4gICAgaG90c3dhcHBlZDogIWVycm9yLFxuICAgIGhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgbm9uSG90c3dhcHBhYmxlQ2hhbmdlcyxcbiAgICBlcnJvcixcbiAgfTtcbn1cblxuaW50ZXJmYWNlIENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgaG90c3dhcHBhYmxlOiBIb3Rzd2FwT3BlcmF0aW9uW107XG4gIG5vbkhvdHN3YXBwYWJsZTogUmVqZWN0ZWRDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBDbGFzc2lmaWVzIGFsbCBjaGFuZ2VzIHRvIGFsbCByZXNvdXJjZXMgYXMgZWl0aGVyIGhvdHN3YXBwYWJsZSBvciBub3QuXG4gKiBNZXRhZGF0YSBjaGFuZ2VzIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBsaXN0IG9mIChub24paG90c3dhcHBhYmxlIHJlc291cmNlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2xhc3NpZnlSZXNvdXJjZUNoYW5nZXMoXG4gIHN0YWNrQ2hhbmdlczogY2ZuX2RpZmYuVGVtcGxhdGVEaWZmLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIHNkazogU0RLLFxuICBuZXN0ZWRTdGFja05hbWVzOiB7IFtuZXN0ZWRTdGFja05hbWU6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0sXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxDbGFzc2lmaWVkQ2hhbmdlcz4ge1xuICBjb25zdCByZXNvdXJjZURpZmZlcmVuY2VzID0gZ2V0U3RhY2tSZXNvdXJjZURpZmZlcmVuY2VzKHN0YWNrQ2hhbmdlcyk7XG5cbiAgY29uc3QgcHJvbWlzZXM6IEFycmF5PCgpID0+IFByb21pc2U8SG90c3dhcENoYW5nZVtdPj4gPSBbXTtcbiAgY29uc3QgaG90c3dhcHBhYmxlUmVzb3VyY2VzID0gbmV3IEFycmF5PEhvdHN3YXBPcGVyYXRpb24+KCk7XG4gIGNvbnN0IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcyA9IG5ldyBBcnJheTxSZWplY3RlZENoYW5nZT4oKTtcbiAgY29uc3QgbmVzdGVkU3RhY2tUYXNrczogQXJyYXk8UHJvbWlzZTxDbGFzc2lmaWVkQ2hhbmdlcz4+ID0gW107XG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcblxuICBmb3IgKGNvbnN0IGxvZ2ljYWxJZCBvZiBPYmplY3Qua2V5cyhzdGFja0NoYW5nZXMub3V0cHV0cy5jaGFuZ2VzKSkge1xuICAgIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHtcbiAgICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb24uT1VUUFVULFxuICAgICAgICBkZXNjcmlwdGlvbjogJ291dHB1dCB3YXMgY2hhbmdlZCcsXG4gICAgICAgIHN1YmplY3Q6IHtcbiAgICAgICAgICB0eXBlOiAnT3V0cHV0JyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy8gZ2F0aGVyIHRoZSByZXN1bHRzIG9mIHRoZSBkZXRlY3RvciBmdW5jdGlvbnNcbiAgZm9yIChjb25zdCBbbG9naWNhbElkLCBjaGFuZ2VdIG9mIE9iamVjdC5lbnRyaWVzKHJlc291cmNlRGlmZmVyZW5jZXMpKSB7XG4gICAgaWYgKGNoYW5nZS5uZXdWYWx1ZT8uVHlwZSA9PT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyAmJiBjaGFuZ2Uub2xkVmFsdWU/LlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycpIHtcbiAgICAgIG5lc3RlZFN0YWNrVGFza3MucHVzaChsaW1pdCgoKSA9PiBmaW5kTmVzdGVkSG90c3dhcHBhYmxlQ2hhbmdlcyhcbiAgICAgICAgbG9naWNhbElkLFxuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIG5lc3RlZFN0YWNrTmFtZXMsXG4gICAgICAgIGV2YWx1YXRlQ2ZuVGVtcGxhdGUsXG4gICAgICAgIHNkayxcbiAgICAgICAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICAgICAgKSkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlID0gaXNDYW5kaWRhdGVGb3JIb3Rzd2FwcGluZyhsb2dpY2FsSWQsIGNoYW5nZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG4gICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBydW4gdGhpcyB0aHJvdWdoIHRoZSBkZXRlY3RvciBmdW5jdGlvbnMsIHdlIGNhbiBhbHJlYWR5IGp1ZGdlIHRoaXNcbiAgICBpZiAoJ2hvdHN3YXBwYWJsZScgaW4gaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlKSB7XG4gICAgICBpZiAoIWhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZS5ob3Rzd2FwcGFibGUpIHtcbiAgICAgICAgbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLnB1c2goaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlKTtcbiAgICAgIH1cblxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VUeXBlOiBzdHJpbmcgPSBob3Rzd2FwcGFibGVDaGFuZ2VDYW5kaWRhdGUubmV3VmFsdWUuVHlwZTtcbiAgICBpZiAocmVzb3VyY2VUeXBlIGluIFJFU09VUkNFX0RFVEVDVE9SUykge1xuICAgICAgLy8gcnVuIGRldGVjdG9yIGZ1bmN0aW9ucyBsYXppbHkgdG8gcHJldmVudCB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zXG4gICAgICBwcm9taXNlcy5wdXNoKCgpID0+XG4gICAgICAgIFJFU09VUkNFX0RFVEVDVE9SU1tyZXNvdXJjZVR5cGVdKGxvZ2ljYWxJZCwgaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlLCBldmFsdWF0ZUNmblRlbXBsYXRlLCBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLnB1c2gobm9uSG90c3dhcHBhYmxlUmVzb3VyY2UoaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVzb2x2ZSBhbGwgbmVzdGVkIHN0YWNrIGFuZCBkZXRlY3RvciByZXN1bHRzIGluIHBhcmFsbGVsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICBjb25zdCBuZXN0ZWRSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwobmVzdGVkU3RhY2tUYXNrcyk7XG4gIGZvciAoY29uc3QgbmVzdGVkIG9mIG5lc3RlZFJlc3VsdHMpIHtcbiAgICBob3Rzd2FwcGFibGVSZXNvdXJjZXMucHVzaCguLi5uZXN0ZWQuaG90c3dhcHBhYmxlKTtcbiAgICBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZXMucHVzaCguLi5uZXN0ZWQubm9uSG90c3dhcHBhYmxlKTtcbiAgfVxuXG4gIGNvbnN0IGNoYW5nZXNEZXRlY3Rpb25SZXN1bHRzOiBBcnJheTxIb3Rzd2FwQ2hhbmdlW10+ID0gW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICBjb25zdCBkZXRlY3RvclJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcy5tYXAoKGZuKSA9PiBsaW1pdChmbikpKTtcbiAgZm9yIChjb25zdCBob3Rzd2FwRGV0ZWN0aW9uUmVzdWx0cyBvZiBkZXRlY3RvclJlc3VsdHMpIHtcbiAgICBjaGFuZ2VzRGV0ZWN0aW9uUmVzdWx0cy5wdXNoKGhvdHN3YXBEZXRlY3Rpb25SZXN1bHRzKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgcmVzb3VyY2VEZXRlY3Rpb25SZXN1bHRzIG9mIGNoYW5nZXNEZXRlY3Rpb25SZXN1bHRzKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eVJlc3VsdCBvZiByZXNvdXJjZURldGVjdGlvblJlc3VsdHMpIHtcbiAgICAgIHByb3BlcnR5UmVzdWx0LmhvdHN3YXBwYWJsZVxuICAgICAgICA/IGhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KVxuICAgICAgICA6IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhvdHN3YXBwYWJsZTogaG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICAgIG5vbkhvdHN3YXBwYWJsZTogbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIGNoYW5nZXMgdG8gcmVzb3VyY2VzIGluIHRoZSBnaXZlbiBTdGFjay5cbiAqXG4gKiBAcGFyYW0gc3RhY2tDaGFuZ2VzIC0gdGhlIGNvbGxlY3Rpb24gb2YgYWxsIGNoYW5nZXMgdG8gYSBnaXZlbiBTdGFja1xuICovXG5mdW5jdGlvbiBnZXRTdGFja1Jlc291cmNlRGlmZmVyZW5jZXMoc3RhY2tDaGFuZ2VzOiBjZm5fZGlmZi5UZW1wbGF0ZURpZmYpOiB7XG4gIFtsb2dpY2FsSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZTtcbn0ge1xuICAvLyB3ZSBuZWVkIHRvIGNvbGxhcHNlIGxvZ2ljYWwgSUQgcmVuYW1lIGNoYW5nZXMgaW50byBvbmUgY2hhbmdlLFxuICAvLyBhcyB0aGV5IGFyZSByZXByZXNlbnRlZCBpbiBzdGFja0NoYW5nZXMgYXMgYSBwYWlyIG9mIHR3byBjaGFuZ2VzOiBvbmUgYWRkaXRpb24gYW5kIG9uZSByZW1vdmFsXG4gIGNvbnN0IGFsbFJlc291cmNlQ2hhbmdlczogeyBbbG9nSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSB9ID0gc3RhY2tDaGFuZ2VzLnJlc291cmNlcy5jaGFuZ2VzO1xuICBjb25zdCBhbGxSZW1vdmFsQ2hhbmdlcyA9IGZpbHRlckRpY3QoYWxsUmVzb3VyY2VDaGFuZ2VzLCAocmVzQ2hhbmdlKSA9PiByZXNDaGFuZ2UuaXNSZW1vdmFsKTtcbiAgY29uc3QgYWxsTm9uUmVtb3ZhbENoYW5nZXMgPSBmaWx0ZXJEaWN0KGFsbFJlc291cmNlQ2hhbmdlcywgKHJlc0NoYW5nZSkgPT4gIXJlc0NoYW5nZS5pc1JlbW92YWwpO1xuICBmb3IgKGNvbnN0IFtsb2dJZCwgbm9uUmVtb3ZhbENoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoYWxsTm9uUmVtb3ZhbENoYW5nZXMpKSB7XG4gICAgaWYgKG5vblJlbW92YWxDaGFuZ2UuaXNBZGRpdGlvbikge1xuICAgICAgY29uc3QgYWRkQ2hhbmdlID0gbm9uUmVtb3ZhbENoYW5nZTtcbiAgICAgIC8vIHNlYXJjaCBmb3IgYW4gaWRlbnRpY2FsIHJlbW92YWwgY2hhbmdlXG4gICAgICBjb25zdCBpZGVudGljYWxSZW1vdmFsQ2hhbmdlID0gT2JqZWN0LmVudHJpZXMoYWxsUmVtb3ZhbENoYW5nZXMpLmZpbmQoKFtfLCByZW1DaGFuZ2VdKSA9PiB7XG4gICAgICAgIHJldHVybiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKHJlbUNoYW5nZSwgYWRkQ2hhbmdlKTtcbiAgICAgIH0pO1xuICAgICAgLy8gaWYgd2UgZm91bmQgb25lLCB0aGVuIHRoaXMgbWVhbnMgdGhpcyBpcyBhIHJlbmFtZSBjaGFuZ2VcbiAgICAgIGlmIChpZGVudGljYWxSZW1vdmFsQ2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IFtyZW1vdmVkTG9nSWQsIHJlbW92ZWRSZXNvdXJjZUNoYW5nZV0gPSBpZGVudGljYWxSZW1vdmFsQ2hhbmdlO1xuICAgICAgICBhbGxOb25SZW1vdmFsQ2hhbmdlc1tsb2dJZF0gPSBtYWtlUmVuYW1lRGlmZmVyZW5jZShyZW1vdmVkUmVzb3VyY2VDaGFuZ2UsIGFkZENoYW5nZSk7XG4gICAgICAgIC8vIGRlbGV0ZSB0aGUgcmVtb3ZhbCBjaGFuZ2UgdGhhdCBmb3JtcyB0aGUgcmVuYW1lIHBhaXJcbiAgICAgICAgZGVsZXRlIGFsbFJlbW92YWxDaGFuZ2VzW3JlbW92ZWRMb2dJZF07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgYXJlIGFsbCBvZiB0aGUgcmVtYWluaW5nIHJlbW92YWwgY2hhbmdlcyxcbiAgLy8gcGx1cyBhbGwgb2YgdGhlIG5vbi1yZW1vdmFsIGNoYW5nZXNcbiAgLy8gKHdlIHNhdmVkIHRoZSByZW5hbWUgY2hhbmdlcyBpbiB0aGF0IG9iamVjdCBhbHJlYWR5KVxuICByZXR1cm4ge1xuICAgIC4uLmFsbFJlbW92YWxDaGFuZ2VzLFxuICAgIC4uLmFsbE5vblJlbW92YWxDaGFuZ2VzLFxuICB9O1xufVxuXG4vKiogRmlsdGVycyBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5cyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBjYWxsYmFjayByZXR1cm5zICd0cnVlJyBmb3IgdGhlIGdpdmVuIHZhbHVlIGluIHRoZSBvYmplY3QuICovXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PFQ+KGRpY3Q6IHsgW2tleTogc3RyaW5nXTogVCB9LCBmdW5jOiAodDogVCkgPT4gYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogVCB9IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRpY3QpLnJlZHVjZShcbiAgICAoYWNjLCBba2V5LCB0XSkgPT4ge1xuICAgICAgaWYgKGZ1bmModCkpIHtcbiAgICAgICAgYWNjW2tleV0gPSB0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogVCB9LFxuICApO1xufVxuXG4vKiogRmluZHMgYW55IGhvdHN3YXBwYWJsZSBjaGFuZ2VzIGluIGFsbCBuZXN0ZWQgc3RhY2tzLiAqL1xuYXN5bmMgZnVuY3Rpb24gZmluZE5lc3RlZEhvdHN3YXBwYWJsZUNoYW5nZXMoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IHsgW25lc3RlZFN0YWNrTmFtZTogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICBzZGs6IFNESyxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPENsYXNzaWZpZWRDaGFuZ2VzPiB7XG4gIGNvbnN0IG5lc3RlZFN0YWNrID0gbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXTtcbiAgaWYgKCFuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBbXSxcbiAgICAgIG5vbkhvdHN3YXBwYWJsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgICAgICBjaGFuZ2U6IHtcbiAgICAgICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLk5FU1RFRF9TVEFDS19DUkVBVElPTixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnbmV3bHkgY3JlYXRlZCBuZXN0ZWQgc3RhY2tzIGNhbm5vdCBiZSBob3Rzd2FwcGVkJyxcbiAgICAgICAgICAgIHN1YmplY3Q6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBldmFsdWF0ZU5lc3RlZENmblRlbXBsYXRlID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5jcmVhdGVOZXN0ZWRFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoXG4gICAgbmVzdGVkU3RhY2sucGh5c2ljYWxOYW1lLFxuICAgIG5lc3RlZFN0YWNrLmdlbmVyYXRlZFRlbXBsYXRlLFxuICAgIGNoYW5nZS5uZXdWYWx1ZT8uUHJvcGVydGllcz8uUGFyYW1ldGVycyxcbiAgKTtcblxuICBjb25zdCBuZXN0ZWREaWZmID0gY2ZuX2RpZmYuZnVsbERpZmYoXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5kZXBsb3llZFRlbXBsYXRlLFxuICAgIG5lc3RlZFN0YWNrVGVtcGxhdGVzW2xvZ2ljYWxJZF0uZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICk7XG5cbiAgcmV0dXJuIGNsYXNzaWZ5UmVzb3VyY2VDaGFuZ2VzKFxuICAgIG5lc3RlZERpZmYsXG4gICAgZXZhbHVhdGVOZXN0ZWRDZm5UZW1wbGF0ZSxcbiAgICBzZGssXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICk7XG59XG5cbi8qKiBSZXR1cm5zICd0cnVlJyBpZiBhIHBhaXIgb2YgY2hhbmdlcyBpcyBmb3IgdGhlIHNhbWUgcmVzb3VyY2UuICovXG5mdW5jdGlvbiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKFxuICBvbGRDaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmV3Q2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBvbGRDaGFuZ2Uub2xkUmVzb3VyY2VUeXBlID09PSBuZXdDaGFuZ2UubmV3UmVzb3VyY2VUeXBlICYmXG4gICAgLy8gdGhpcyBpc24ndCBncmVhdCwgYnV0IEkgZG9uJ3Qgd2FudCB0byBicmluZyBpbiBzb21ldGhpbmcgbGlrZSB1bmRlcnNjb3JlIGp1c3QgZm9yIHRoaXMgY29tcGFyaXNvblxuICAgIEpTT04uc3RyaW5naWZ5KG9sZENoYW5nZS5vbGRQcm9wZXJ0aWVzKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3Q2hhbmdlLm5ld1Byb3BlcnRpZXMpXG4gICk7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZW5hbWVEaWZmZXJlbmNlKFxuICByZW1DaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgYWRkQ2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZShcbiAgICAvLyB3ZSBoYXZlIHRvIGZpbGwgaW4gdGhlIG9sZCB2YWx1ZSwgYmVjYXVzZSBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIGNsYXNzaWZpZWQgYXMgYSBub24taG90c3dhcHBhYmxlIGNoYW5nZVxuICAgIHJlbUNoYW5nZS5vbGRWYWx1ZSxcbiAgICBhZGRDaGFuZ2UubmV3VmFsdWUsXG4gICAge1xuICAgICAgcmVzb3VyY2VUeXBlOiB7XG4gICAgICAgIG9sZFR5cGU6IHJlbUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUsXG4gICAgICAgIG5ld1R5cGU6IGFkZENoYW5nZS5uZXdSZXNvdXJjZVR5cGUsXG4gICAgICB9LFxuICAgICAgcHJvcGVydHlEaWZmczogKGFkZENoYW5nZSBhcyBhbnkpLnByb3BlcnR5RGlmZnMsXG4gICAgICBvdGhlckRpZmZzOiAoYWRkQ2hhbmdlIGFzIGFueSkub3RoZXJEaWZmcyxcbiAgICB9LFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBgSG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlYCBpZiB0aGUgY2hhbmdlIGlzIGhvdHN3YXBwYWJsZVxuICogUmV0dXJucyBhbiBlbXB0eSBgSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIHRvIENESzo6TWV0YWRhdGFcbiAqIFJldHVybnMgYSBgTm9uSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIG5vdCBob3Rzd2FwcGFibGVcbiAqL1xuZnVuY3Rpb24gaXNDYW5kaWRhdGVGb3JIb3Rzd2FwcGluZyhcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogY2ZuX2RpZmYuUmVzb3VyY2VEaWZmZXJlbmNlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBSZWplY3RlZENoYW5nZSB8IFJlc291cmNlQ2hhbmdlIHtcbiAgLy8gYSByZXNvdXJjZSBoYXMgYmVlbiByZW1vdmVkIE9SIGEgcmVzb3VyY2UgaGFzIGJlZW4gYWRkZWQ7IHdlIGNhbid0IHNob3J0LWNpcmN1aXQgdGhhdCBjaGFuZ2VcbiAgaWYgKCFjaGFuZ2Uub2xkVmFsdWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgIGNoYW5nZToge1xuICAgICAgICByZWFzb246IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9DUkVBVElPTixcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyB3YXMgY3JlYXRlZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2UubmV3VmFsdWUhLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBlbHNlIGlmICghY2hhbmdlLm5ld1ZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgICBsb2dpY2FsSWQsXG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb24uUkVTT1VSQ0VfREVMRVRJT04sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgcmVzb3VyY2UgJyR7bG9naWNhbElkfScgd2FzIGRlc3Ryb3llZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2Uub2xkVmFsdWUuVHlwZSxcbiAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gYSByZXNvdXJjZSBoYXMgaGFkIGl0cyB0eXBlIGNoYW5nZWRcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSBjaGFuZ2Uub2xkVmFsdWUuVHlwZSkge1xuICAgIHJldHVybiB7XG4gICAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLlJFU09VUkNFX1RZUEVfQ0hBTkdFRCxcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBoYWQgaXRzIHR5cGUgY2hhbmdlZCBmcm9tICcke2NoYW5nZS5vbGRWYWx1ZT8uVHlwZX0nIHRvICcke2NoYW5nZS5uZXdWYWx1ZT8uVHlwZX0nYCxcbiAgICAgICAgc3ViamVjdDoge1xuICAgICAgICAgIHR5cGU6ICdSZXNvdXJjZScsXG4gICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbG9naWNhbElkLFxuICAgIG9sZFZhbHVlOiBjaGFuZ2Uub2xkVmFsdWUsXG4gICAgbmV3VmFsdWU6IGNoYW5nZS5uZXdWYWx1ZSxcbiAgICBwcm9wZXJ0eVVwZGF0ZXM6IGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMsXG4gICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlBbGxIb3Rzd2FwT3BlcmF0aW9ucyhzZGs6IFNESywgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PiwgaG90c3dhcHBhYmxlQ2hhbmdlczogSG90c3dhcE9wZXJhdGlvbltdKTogUHJvbWlzZTx2b2lkW10+IHtcbiAgaWYgKGhvdHN3YXBwYWJsZUNoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gIH1cblxuICBhd2FpdCBpb1NwYW4uZGVmYXVsdHMuaW5mbyhgXFxuJHtJQ09OfSBob3Rzd2FwcGluZyByZXNvdXJjZXM6YCk7XG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gIHJldHVybiBQcm9taXNlLmFsbChob3Rzd2FwcGFibGVDaGFuZ2VzLm1hcChob3Rzd2FwT3BlcmF0aW9uID0+IGxpbWl0KCgpID0+IHtcbiAgICByZXR1cm4gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkaywgaW9TcGFuLCBob3Rzd2FwT3BlcmF0aW9uKTtcbiAgfSkpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkazogU0RLLCBpb1NwYW46IElNZXNzYWdlU3Bhbjxhbnk+LCBob3Rzd2FwT3BlcmF0aW9uOiBIb3Rzd2FwT3BlcmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIG5vdGUgdGhlIHR5cGUgb2Ygc2VydmljZSB0aGF0IHdhcyBzdWNjZXNzZnVsbHkgaG90c3dhcHBlZCBpbiB0aGUgVXNlci1BZ2VudFxuICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBgY2RrLWhvdHN3YXAvc3VjY2Vzcy0ke2hvdHN3YXBPcGVyYXRpb24uc2VydmljZX1gO1xuICBzZGsuYXBwZW5kQ3VzdG9tVXNlckFnZW50KGN1c3RvbVVzZXJBZ2VudCk7XG4gIGNvbnN0IHJlc291cmNlVGV4dCA9IChyOiBBZmZlY3RlZFJlc291cmNlKSA9PiByLmRlc2NyaXB0aW9uID8/IGAke3IucmVzb3VyY2VUeXBlfSAnJHtyLnBoeXNpY2FsTmFtZSA/PyByLmxvZ2ljYWxJZH0nYDtcblxuICBhd2FpdCBpb1NwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k1NDAyLm1zZyhcbiAgICBob3Rzd2FwT3BlcmF0aW9uLmNoYW5nZS5yZXNvdXJjZXMubWFwKHIgPT4gZm9ybWF0KGAgICAke0lDT059ICVzYCwgY2hhbGsuYm9sZChyZXNvdXJjZVRleHQocikpKSkuam9pbignXFxuJyksXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UsXG4gICkpO1xuXG4gIC8vIGlmIHRoZSBTREsgY2FsbCBmYWlscywgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gYnkgdGhlIFNES1xuICAvLyBhbmQgd2lsbCBwcmV2ZW50IHRoZSBncmVlbiAnaG90c3dhcHBlZCEnIHRleHQgZnJvbSBiZWluZyBkaXNwbGF5ZWRcbiAgdHJ5IHtcbiAgICBhd2FpdCBob3Rzd2FwT3BlcmF0aW9uLmFwcGx5KHNkayk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLm5hbWUgPT09ICdUaW1lb3V0RXJyb3InIHx8IGUubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IFdhaXRlclJlc3VsdCA9IEpTT04ucGFyc2UoZm9ybWF0RXJyb3JNZXNzYWdlKGUpKTtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IFRvb2xraXRFcnJvcignSG90c3dhcFdhaXRlckZhaWxlZCcsIGZvcm1hdFdhaXRlckVycm9yUmVzdWx0KHJlc3VsdCkpO1xuICAgICAgZXJyb3IubmFtZSA9IGUubmFtZTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgYXdhaXQgaW9TcGFuLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTQwMy5tc2coXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UucmVzb3VyY2VzLm1hcChyID0+IGZvcm1hdChgICAgJHtJQ09OfSAlcyAlc2AsIGNoYWxrLmJvbGQocmVzb3VyY2VUZXh0KHIpKSwgY2hhbGsuZ3JlZW4oJ2hvdHN3YXBwZWQhJykpKS5qb2luKCdcXG4nKSxcbiAgICBob3Rzd2FwT3BlcmF0aW9uLmNoYW5nZSxcbiAgKSk7XG5cbiAgc2RrLnJlbW92ZUN1c3RvbVVzZXJBZ2VudChjdXN0b21Vc2VyQWdlbnQpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRXYWl0ZXJFcnJvclJlc3VsdChyZXN1bHQ6IFdhaXRlclJlc3VsdCkge1xuICBjb25zdCBtYWluID0gW1xuICAgIGBSZXNvdXJjZSBpcyBub3QgaW4gdGhlIGV4cGVjdGVkIHN0YXRlIGR1ZSB0byB3YWl0ZXIgc3RhdHVzOiAke3Jlc3VsdC5zdGF0ZX1gLFxuICAgIHJlc3VsdC5yZWFzb24gPyBgJHtyZXN1bHQucmVhc29ufS5gIDogJycsXG4gIF0uam9pbignLiAnKTtcblxuICBpZiAocmVzdWx0Lm9ic2VydmVkUmVzcG9uc2VzICE9IG51bGwpIHtcbiAgICBjb25zdCBvYnNlcnZlZFJlc3BvbnNlcyA9IE9iamVjdFxuICAgICAgLmVudHJpZXMocmVzdWx0Lm9ic2VydmVkUmVzcG9uc2VzKVxuICAgICAgLm1hcCgoW21zZywgY291bnRdKSA9PiBgICAtICR7bXNnfSAoJHtjb3VudH0pYClcbiAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgIHJldHVybiBgJHttYWlufSBPYnNlcnZlZCByZXNwb25zZXM6XFxuJHtvYnNlcnZlZFJlc3BvbnNlc31gO1xuICB9XG5cbiAgcmV0dXJuIG1haW47XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvZ1JlamVjdGVkQ2hhbmdlcyhcbiAgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PixcbiAgcmVqZWN0ZWRDaGFuZ2VzOiBSZWplY3RlZENoYW5nZVtdLFxuICBob3Rzd2FwTW9kZTogSG90c3dhcE1vZGUsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHJlamVjdGVkQ2hhbmdlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLyoqXG4gICAqIEVLUyBTZXJ2aWNlcyBjYW4gaGF2ZSBhIHRhc2sgZGVmaW5pdGlvbiB0aGF0IGRvZXNuJ3QgcmVmZXIgdG8gdGhlIHRhc2sgZGVmaW5pdGlvbiBiZWluZyB1cGRhdGVkLlxuICAgKiBXZSBoYXZlIHRvIGxvZyB0aGlzIGFzIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgdG8gdGhlIHRhc2sgZGVmaW5pdGlvbiwgYnV0IHdoZW4gd2UgZG8sXG4gICAqIHdlIHdpbmQgdXAgaG90c3dhcHBpbmcgdGhlIHRhc2sgZGVmaW5pdGlvbiBhbmQgbG9nZ2luZyBpdCBhcyBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlLlxuICAgKlxuICAgKiBUaGlzIGxvZ2ljIHByZXZlbnRzIHVzIGZyb20gbG9nZ2luZyB0aGF0IGNoYW5nZSBhcyBub24taG90c3dhcHBhYmxlIHdoZW4gd2UgaG90c3dhcCBpdC5cbiAgICovXG4gIGlmIChob3Rzd2FwTW9kZSA9PT0gJ2hvdHN3YXAtb25seScpIHtcbiAgICByZWplY3RlZENoYW5nZXMgPSByZWplY3RlZENoYW5nZXMuZmlsdGVyKChjaGFuZ2UpID0+IGNoYW5nZS5ob3Rzd2FwT25seVZpc2libGUgPT09IHRydWUpO1xuXG4gICAgaWYgKHJlamVjdGVkQ2hhbmdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBjb25zdCBtZXNzYWdlcyA9IFsnJ107IC8vIHN0YXJ0IHdpdGggZW1wdHkgbGluZVxuXG4gIGlmIChob3Rzd2FwTW9kZSA9PT0gJ2hvdHN3YXAtb25seScpIHtcbiAgICBtZXNzYWdlcy5wdXNoKGZvcm1hdCgnJXMgJXMnLCBjaGFsay5yZWQoJ+KaoO+4jycpLCBjaGFsay5yZWQoJ1RoZSBmb2xsb3dpbmcgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIHdlcmUgZm91bmQuIFRvIHJlY29uY2lsZSB0aGVzZSB1c2luZyBDbG91ZEZvcm1hdGlvbiwgc3BlY2lmeSAtLWhvdHN3YXAtZmFsbGJhY2snKSkpO1xuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2VzLnB1c2goZm9ybWF0KCclcyAlcycsIGNoYWxrLnJlZCgn4pqg77iPJyksIGNoYWxrLnJlZCgnVGhlIGZvbGxvd2luZyBub24taG90c3dhcHBhYmxlIGNoYW5nZXMgd2VyZSBmb3VuZDonKSkpO1xuICB9XG5cbiAgZm9yIChjb25zdCB7IGNoYW5nZSB9IG9mIHJlamVjdGVkQ2hhbmdlcykge1xuICAgIG1lc3NhZ2VzLnB1c2goJyAgICAnICsgbm9uSG90c3dhcHBhYmxlQ2hhbmdlTWVzc2FnZShjaGFuZ2UpKTtcbiAgfVxuICBtZXNzYWdlcy5wdXNoKCcnKTsgLy8gbmV3bGluZVxuXG4gIGF3YWl0IGlvU3Bhbi5kZWZhdWx0cy5pbmZvKG1lc3NhZ2VzLmpvaW4oJ1xcbicpKTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgTm9uSG90c3dhcHBhYmxlQ2hhbmdlXG4gKi9cbmZ1bmN0aW9uIG5vbkhvdHN3YXBwYWJsZUNoYW5nZU1lc3NhZ2UoY2hhbmdlOiBOb25Ib3Rzd2FwcGFibGVDaGFuZ2UpOiBzdHJpbmcge1xuICBjb25zdCBzdWJqZWN0ID0gY2hhbmdlLnN1YmplY3Q7XG4gIGNvbnN0IHJlYXNvbiA9IGNoYW5nZS5kZXNjcmlwdGlvbiA/PyBjaGFuZ2UucmVhc29uO1xuXG4gIHN3aXRjaCAoc3ViamVjdC50eXBlKSB7XG4gICAgY2FzZSAnT3V0cHV0JzpcbiAgICAgIHJldHVybiBmb3JtYXQoXG4gICAgICAgICdvdXRwdXQ6ICVzLCByZWFzb246ICVzJyxcbiAgICAgICAgY2hhbGsuYm9sZChzdWJqZWN0LmxvZ2ljYWxJZCksXG4gICAgICAgIGNoYWxrLnJlZChyZWFzb24pLFxuICAgICAgKTtcbiAgICBjYXNlICdSZXNvdXJjZSc6XG4gICAgICByZXR1cm4gbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VNZXNzYWdlKHN1YmplY3QsIHJlYXNvbik7XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgbm9uLWhvdHN3YXBwYWJsZSByZXNvdXJjZSBzdWJqZWN0XG4gKi9cbmZ1bmN0aW9uIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlTWVzc2FnZShzdWJqZWN0OiBSZXNvdXJjZVN1YmplY3QsIHJlYXNvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN1YmplY3QucmVqZWN0ZWRQcm9wZXJ0aWVzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZm9ybWF0KFxuICAgICAgJ3Jlc291cmNlOiAlcywgdHlwZTogJXMsIHJlamVjdGVkIGNoYW5nZXM6ICVzLCByZWFzb246ICVzJyxcbiAgICAgIGNoYWxrLmJvbGQoc3ViamVjdC5sb2dpY2FsSWQpLFxuICAgICAgY2hhbGsuYm9sZChzdWJqZWN0LnJlc291cmNlVHlwZSksXG4gICAgICBjaGFsay5ib2xkKHN1YmplY3QucmVqZWN0ZWRQcm9wZXJ0aWVzKSxcbiAgICAgIGNoYWxrLnJlZChyZWFzb24pLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZm9ybWF0KFxuICAgICdyZXNvdXJjZTogJXMsIHR5cGU6ICVzLCByZWFzb246ICVzJyxcbiAgICBjaGFsay5ib2xkKHN1YmplY3QubG9naWNhbElkKSxcbiAgICBjaGFsay5ib2xkKHN1YmplY3QucmVzb3VyY2VUeXBlKSxcbiAgICBjaGFsay5yZWQocmVhc29uKSxcbiAgKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableLambdaFunctionChange = isHotswappableLambdaFunctionChange;\nconst stream_1 = require(\"stream\");\nconst common_1 = require(\"./common\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst archiver = require('archiver');\nasync function isHotswappableLambdaFunctionChange(logicalId, change, evaluateCfnTemplate) {\n // if the change is for a Lambda Version, we just ignore it\n // we will publish a new version when we get to hotswapping the actual Function this Version points to\n // (Versions can't be changed in CloudFormation anyway, they're immutable)\n if (change.newValue.Type === 'AWS::Lambda::Version') {\n return [];\n }\n // we handle Aliases specially too\n // the actual alias update will happen if we change the function\n if (change.newValue.Type === 'AWS::Lambda::Alias') {\n return classifyAliasChanges(change);\n }\n if (change.newValue.Type !== 'AWS::Lambda::Function') {\n return [];\n }\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['Code', 'Environment', 'Description']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n const functionName = await evaluateCfnTemplate.establishResourcePhysicalName(logicalId, change.newValue.Properties?.FunctionName);\n const namesOfHotswappableChanges = Object.keys(classifiedChanges.hotswappableProps);\n if (functionName && namesOfHotswappableChanges.length > 0) {\n const lambdaCodeChange = await evaluateLambdaFunctionProps(classifiedChanges.hotswappableProps, change.newValue.Properties?.Runtime, evaluateCfnTemplate);\n // nothing to do here\n if (lambdaCodeChange === undefined) {\n return ret;\n }\n const dependencies = await dependantResources(logicalId, functionName, evaluateCfnTemplate);\n ret.push({\n change: {\n cause: change,\n resources: [\n {\n logicalId,\n resourceType: change.newValue.Type,\n physicalName: functionName,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n },\n ...dependencies,\n ],\n },\n hotswappable: true,\n service: 'lambda',\n apply: async (sdk) => {\n const lambda = sdk.lambda();\n const operations = [];\n if (lambdaCodeChange.code !== undefined || lambdaCodeChange.configurations !== undefined) {\n if (lambdaCodeChange.code !== undefined) {\n await lambda.updateFunctionCode({\n FunctionName: functionName,\n S3Bucket: lambdaCodeChange.code.s3Bucket,\n S3Key: lambdaCodeChange.code.s3Key,\n ImageUri: lambdaCodeChange.code.imageUri,\n ZipFile: lambdaCodeChange.code.functionCodeZip,\n S3ObjectVersion: lambdaCodeChange.code.s3ObjectVersion,\n });\n await waitForLambdasPropertiesUpdateToFinish(lambda, functionName);\n }\n if (lambdaCodeChange.configurations !== undefined) {\n const updateRequest = {\n FunctionName: functionName,\n };\n if (lambdaCodeChange.configurations.description !== undefined) {\n updateRequest.Description = lambdaCodeChange.configurations.description;\n }\n if (lambdaCodeChange.configurations.environment !== undefined) {\n updateRequest.Environment = lambdaCodeChange.configurations.environment;\n }\n await lambda.updateFunctionConfiguration(updateRequest);\n await waitForLambdasPropertiesUpdateToFinish(lambda, functionName);\n }\n // only if the code changed is there any point in publishing a new Version\n const versions = dependencies.filter((d) => d.resourceType === 'AWS::Lambda::Version');\n if (versions.length) {\n const publishVersionPromise = lambda.publishVersion({\n FunctionName: functionName,\n });\n const aliases = dependencies.filter((d) => d.resourceType === 'AWS::Lambda::Alias');\n if (aliases.length) {\n // we need to wait for the Version to finish publishing\n const versionUpdate = await publishVersionPromise;\n for (const alias of aliases) {\n operations.push(lambda.updateAlias({\n FunctionName: functionName,\n Name: alias.physicalName,\n FunctionVersion: versionUpdate.Version,\n }));\n }\n }\n else {\n operations.push(publishVersionPromise);\n }\n }\n }\n // run all of our updates in parallel\n // Limited set of updates per function\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(operations);\n },\n });\n }\n return ret;\n}\n/**\n * Determines which changes to this Alias are hotswappable or not\n */\nfunction classifyAliasChanges(change) {\n const ret = [];\n const classifiedChanges = (0, common_1.classifyChanges)(change, ['FunctionVersion']);\n classifiedChanges.reportNonHotswappablePropertyChanges(ret);\n // we only want to report not hotswappable changes to aliases\n // the actual alias update will happen if we change the function\n return ret;\n}\n/**\n * Evaluates the hotswappable properties of an AWS::Lambda::Function and\n * Returns a `LambdaFunctionChange` if the change is hotswappable.\n * Returns `undefined` if the change is not hotswappable.\n */\nasync function evaluateLambdaFunctionProps(hotswappablePropChanges, runtime, evaluateCfnTemplate) {\n /*\n * At first glance, we would want to initialize these using the \"previous\" values (change.oldValue),\n * in case only one of them changed, like the key, and the Bucket stayed the same.\n * However, that actually fails for old-style synthesis, which uses CFN Parameters!\n * Because the names of the Parameters depend on the hash of the Asset,\n * the Parameters used for the \"old\" values no longer exist in `assetParams` at this point,\n * which means we don't have the correct values available to evaluate the CFN expression with.\n * Fortunately, the diff will always include both the s3Bucket and s3Key parts of the Lambda's Code property,\n * even if only one of them was actually changed,\n * which means we don't need the \"old\" values at all, and we can safely initialize these with just `''`.\n */\n let code = undefined;\n let description = undefined;\n let environment = undefined;\n for (const updatedPropName in hotswappablePropChanges) {\n const updatedProp = hotswappablePropChanges[updatedPropName];\n switch (updatedPropName) {\n case 'Code':\n let s3Bucket, s3Key, s3ObjectVersion, imageUri, functionCodeZip;\n for (const newPropName in updatedProp.newValue) {\n switch (newPropName) {\n case 'S3Bucket':\n s3Bucket = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'S3Key':\n s3Key = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'S3ObjectVersion':\n s3ObjectVersion = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'ImageUri':\n imageUri = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n break;\n case 'ZipFile':\n // We must create a zip package containing a file with the inline code\n const functionCode = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue[newPropName]);\n const functionRuntime = await evaluateCfnTemplate.evaluateCfnExpression(runtime);\n if (!functionRuntime) {\n return undefined;\n }\n // file extension must be chosen depending on the runtime\n const codeFileExt = determineCodeFileExtFromRuntime(functionRuntime);\n functionCodeZip = await zipString(`index.${codeFileExt}`, functionCode);\n break;\n }\n }\n code = {\n s3Bucket,\n s3Key,\n s3ObjectVersion,\n imageUri,\n functionCodeZip,\n };\n break;\n case 'Description':\n description = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue);\n break;\n case 'Environment':\n environment = await evaluateCfnTemplate.evaluateCfnExpression(updatedProp.newValue);\n break;\n default:\n // we will never get here, but just in case we do throw an error\n throw new toolkit_error_1.ToolkitError('UnexpectedHotswapProperty', 'while apply()ing, found a property that cannot be hotswapped. Please report this at github.com/aws/aws-cdk/issues/new/choose');\n }\n }\n const configurations = description || environment ? { description, environment } : undefined;\n return code || configurations ? { code, configurations } : undefined;\n}\n/**\n * Compress a string as a file, returning a promise for the zip buffer\n * https://github.com/archiverjs/node-archiver/issues/342\n */\nfunction zipString(fileName, rawString) {\n return new Promise((resolve, reject) => {\n const buffers = [];\n const converter = new stream_1.Writable();\n converter._write = (chunk, _, callback) => {\n buffers.push(chunk);\n process.nextTick(callback);\n };\n converter.on('finish', () => {\n resolve(Buffer.concat(buffers));\n });\n const archive = archiver('zip');\n archive.on('error', (err) => {\n reject(err);\n });\n archive.pipe(converter);\n archive.append(rawString, {\n name: fileName,\n date: new Date('1980-01-01T00:00:00.000Z'), // Add date to make resulting zip file deterministic\n });\n void archive.finalize();\n });\n}\n/**\n * After a Lambda Function is updated, it cannot be updated again until the\n * `State=Active` and the `LastUpdateStatus=Successful`.\n *\n * Depending on the configuration of the Lambda Function this could happen relatively quickly\n * or very slowly. For example, Zip based functions _not_ in a VPC can take ~1 second whereas VPC\n * or Container functions can take ~25 seconds (and 'idle' VPC functions can take minutes).\n */\nasync function waitForLambdasPropertiesUpdateToFinish(lambda, functionName) {\n const minDelaySeconds = 1;\n const maxDelaySeconds = 10;\n await lambda.waitUntilFunctionUpdated(minDelaySeconds, maxDelaySeconds, {\n FunctionName: functionName,\n });\n}\n/**\n * Get file extension from Lambda runtime string.\n * We use this extension to create a deployment package from Lambda inline code.\n */\nfunction determineCodeFileExtFromRuntime(runtime) {\n if (runtime.startsWith('node')) {\n return 'js';\n }\n if (runtime.startsWith('python')) {\n return 'py';\n }\n // Currently inline code only supports Node.js and Python, ignoring other runtimes.\n // https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#aws-properties-lambda-function-code-properties\n throw new cloudformation_1.CfnEvaluationException(`runtime ${runtime} is unsupported, only node.js and python runtimes are currently supported.`);\n}\n/**\n * Finds all Versions that reference an AWS::Lambda::Function with logical ID `logicalId`\n * and Aliases that reference those Versions.\n */\nasync function versionsAndAliases(logicalId, evaluateCfnTemplate) {\n // find all Lambda Versions that reference this Function\n const versionsReferencingFunction = evaluateCfnTemplate\n .findReferencesTo(logicalId)\n .filter((r) => r.Type === 'AWS::Lambda::Version');\n // find all Lambda Aliases that reference the above Versions\n const aliasesReferencingVersions = (0, util_1.flatMap)(versionsReferencingFunction, v => evaluateCfnTemplate.findReferencesTo(v.LogicalId));\n return { versionsReferencingFunction, aliasesReferencingVersions };\n}\nasync function dependantResources(logicalId, functionName, evaluateCfnTemplate) {\n const candidates = await versionsAndAliases(logicalId, evaluateCfnTemplate);\n // Limited set of updates per function\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const aliases = await Promise.all(candidates.aliasesReferencingVersions.map(async (a) => {\n const name = await evaluateCfnTemplate.evaluateCfnExpression(a.Properties?.Name);\n return {\n logicalId: a.LogicalId,\n resourceType: a.Type,\n physicalName: name,\n description: `${a.Type} '${name}' for AWS::Lambda::Function '${functionName}'`,\n metadata: evaluateCfnTemplate.metadataFor(a.LogicalId),\n };\n }));\n const versions = candidates.versionsReferencingFunction.map((v) => ({\n logicalId: v.LogicalId,\n resourceType: v.Type,\n description: `${v.Type} for AWS::Lambda::Function '${functionName}'`,\n metadata: evaluateCfnTemplate.metadataFor(v.LogicalId),\n }));\n return [\n ...versions,\n ...aliases,\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxhbWJkYS1mdW5jdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSxnRkErSEM7QUE5SUQsbUNBQWtDO0FBSWxDLHFDQUEyQztBQUUzQywrREFBMkQ7QUFDM0QscUNBQXFDO0FBRXJDLHNEQUFnRztBQUVoRyx5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUU5QixLQUFLLFVBQVUsa0NBQWtDLENBQ3RELFNBQWlCLEVBQ2pCLE1BQXNCLEVBQ3RCLG1CQUFtRDtJQUVuRCwyREFBMkQ7SUFDM0Qsc0dBQXNHO0lBQ3RHLDBFQUEwRTtJQUMxRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLHNCQUFzQixFQUFFLENBQUM7UUFDcEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLGdFQUFnRTtJQUNoRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7UUFDbEQsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3JELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFvQixFQUFFLENBQUM7SUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLHdCQUFlLEVBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzFGLGlCQUFpQixDQUFDLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVELE1BQU0sWUFBWSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsNkJBQTZCLENBQzFFLFNBQVMs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U0FDdkQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNqRTtRQUNFLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztRQUN0QixZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUk7UUFDcEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksK0JBQStCLFlBQVksR0FBRztRQUNwRSxRQUFRLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7S0FDdkQsQ0FDRixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsR0FBRyxRQUFRO1FBQ1gsR0FBRyxPQUFPO0tBQ1gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5RGlmZmVyZW5jZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtbGFtYmRhJztcbmltcG9ydCB0eXBlIHsgSG90c3dhcENoYW5nZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGNsYXNzaWZ5Q2hhbmdlcyB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB0eXBlIHsgQWZmZWN0ZWRSZXNvdXJjZSwgUmVzb3VyY2VDaGFuZ2UgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9ob3Rzd2FwJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElMYW1iZGFDbGllbnQsIFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgQ2ZuRXZhbHVhdGlvbkV4Y2VwdGlvbiwgdHlwZSBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5cbi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBhcmNoaXZlciA9IHJlcXVpcmUoJ2FyY2hpdmVyJyk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0hvdHN3YXBwYWJsZUxhbWJkYUZ1bmN0aW9uQ2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgLy8gaWYgdGhlIGNoYW5nZSBpcyBmb3IgYSBMYW1iZGEgVmVyc2lvbiwgd2UganVzdCBpZ25vcmUgaXRcbiAgLy8gd2Ugd2lsbCBwdWJsaXNoIGEgbmV3IHZlcnNpb24gd2hlbiB3ZSBnZXQgdG8gaG90c3dhcHBpbmcgdGhlIGFjdHVhbCBGdW5jdGlvbiB0aGlzIFZlcnNpb24gcG9pbnRzIHRvXG4gIC8vIChWZXJzaW9ucyBjYW4ndCBiZSBjaGFuZ2VkIGluIENsb3VkRm9ybWF0aW9uIGFueXdheSwgdGhleSdyZSBpbW11dGFibGUpXG4gIGlmIChjaGFuZ2UubmV3VmFsdWUuVHlwZSA9PT0gJ0FXUzo6TGFtYmRhOjpWZXJzaW9uJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vIHdlIGhhbmRsZSBBbGlhc2VzIHNwZWNpYWxseSB0b29cbiAgLy8gdGhlIGFjdHVhbCBhbGlhcyB1cGRhdGUgd2lsbCBoYXBwZW4gaWYgd2UgY2hhbmdlIHRoZSBmdW5jdGlvblxuICBpZiAoY2hhbmdlLm5ld1ZhbHVlLlR5cGUgPT09ICdBV1M6OkxhbWJkYTo6QWxpYXMnKSB7XG4gICAgcmV0dXJuIGNsYXNzaWZ5QWxpYXNDaGFuZ2VzKGNoYW5nZSk7XG4gIH1cblxuICBpZiAoY2hhbmdlLm5ld1ZhbHVlLlR5cGUgIT09ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcmV0OiBIb3Rzd2FwQ2hhbmdlW10gPSBbXTtcbiAgY29uc3QgY2xhc3NpZmllZENoYW5nZXMgPSBjbGFzc2lmeUNoYW5nZXMoY2hhbmdlLCBbJ0NvZGUnLCAnRW52aXJvbm1lbnQnLCAnRGVzY3JpcHRpb24nXSk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuXG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXN0YWJsaXNoUmVzb3VyY2VQaHlzaWNhbE5hbWUoXG4gICAgbG9naWNhbElkLFxuICAgIGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5GdW5jdGlvbk5hbWUsXG4gICk7XG4gIGNvbnN0IG5hbWVzT2ZIb3Rzd2FwcGFibGVDaGFuZ2VzID0gT2JqZWN0LmtleXMoY2xhc3NpZmllZENoYW5nZXMuaG90c3dhcHBhYmxlUHJvcHMpO1xuICBpZiAoZnVuY3Rpb25OYW1lICYmIG5hbWVzT2ZIb3Rzd2FwcGFibGVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBsYW1iZGFDb2RlQ2hhbmdlID0gYXdhaXQgZXZhbHVhdGVMYW1iZGFGdW5jdGlvblByb3BzKFxuICAgICAgY2xhc3NpZmllZENoYW5nZXMuaG90c3dhcHBhYmxlUHJvcHMsXG4gICAgICBjaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcz8uUnVudGltZSxcbiAgICAgIGV2YWx1YXRlQ2ZuVGVtcGxhdGUsXG4gICAgKTtcblxuICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZVxuICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gYXdhaXQgZGVwZW5kYW50UmVzb3VyY2VzKGxvZ2ljYWxJZCwgZnVuY3Rpb25OYW1lLCBldmFsdWF0ZUNmblRlbXBsYXRlKTtcblxuICAgIHJldC5wdXNoKHtcbiAgICAgIGNoYW5nZToge1xuICAgICAgICBjYXVzZTogY2hhbmdlLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6IGNoYW5nZS5uZXdWYWx1ZS5UeXBlLFxuICAgICAgICAgICAgcGh5c2ljYWxOYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uZGVwZW5kZW5jaWVzLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICAgIHNlcnZpY2U6ICdsYW1iZGEnLFxuICAgICAgYXBwbHk6IGFzeW5jIChzZGs6IFNESykgPT4ge1xuICAgICAgICBjb25zdCBsYW1iZGEgPSBzZGsubGFtYmRhKCk7XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbnM6IFByb21pc2U8YW55PltdID0gW107XG5cbiAgICAgICAgaWYgKGxhbWJkYUNvZGVDaGFuZ2UuY29kZSAhPT0gdW5kZWZpbmVkIHx8IGxhbWJkYUNvZGVDaGFuZ2UuY29uZmlndXJhdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlLmNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgbGFtYmRhLnVwZGF0ZUZ1bmN0aW9uQ29kZSh7XG4gICAgICAgICAgICAgIEZ1bmN0aW9uTmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgICBTM0J1Y2tldDogbGFtYmRhQ29kZUNoYW5nZS5jb2RlLnMzQnVja2V0LFxuICAgICAgICAgICAgICBTM0tleTogbGFtYmRhQ29kZUNoYW5nZS5jb2RlLnMzS2V5LFxuICAgICAgICAgICAgICBJbWFnZVVyaTogbGFtYmRhQ29kZUNoYW5nZS5jb2RlLmltYWdlVXJpLFxuICAgICAgICAgICAgICBaaXBGaWxlOiBsYW1iZGFDb2RlQ2hhbmdlLmNvZGUuZnVuY3Rpb25Db2RlWmlwLFxuICAgICAgICAgICAgICBTM09iamVjdFZlcnNpb246IGxhbWJkYUNvZGVDaGFuZ2UuY29kZS5zM09iamVjdFZlcnNpb24sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgd2FpdEZvckxhbWJkYXNQcm9wZXJ0aWVzVXBkYXRlVG9GaW5pc2gobGFtYmRhLCBmdW5jdGlvbk5hbWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlLmNvbmZpZ3VyYXRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVJlcXVlc3Q6IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCA9IHtcbiAgICAgICAgICAgICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGxhbWJkYUNvZGVDaGFuZ2UuY29uZmlndXJhdGlvbnMuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0LkRlc2NyaXB0aW9uID0gbGFtYmRhQ29kZUNoYW5nZS5jb25maWd1cmF0aW9ucy5kZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsYW1iZGFDb2RlQ2hhbmdlLmNvbmZpZ3VyYXRpb25zLmVudmlyb25tZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdXBkYXRlUmVxdWVzdC5FbnZpcm9ubWVudCA9IGxhbWJkYUNvZGVDaGFuZ2UuY29uZmlndXJhdGlvbnMuZW52aXJvbm1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBsYW1iZGEudXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uKHVwZGF0ZVJlcXVlc3QpO1xuICAgICAgICAgICAgYXdhaXQgd2FpdEZvckxhbWJkYXNQcm9wZXJ0aWVzVXBkYXRlVG9GaW5pc2gobGFtYmRhLCBmdW5jdGlvbk5hbWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG9ubHkgaWYgdGhlIGNvZGUgY2hhbmdlZCBpcyB0aGVyZSBhbnkgcG9pbnQgaW4gcHVibGlzaGluZyBhIG5ldyBWZXJzaW9uXG4gICAgICAgICAgY29uc3QgdmVyc2lvbnMgPSBkZXBlbmRlbmNpZXMuZmlsdGVyKChkKSA9PiBkLnJlc291cmNlVHlwZSA9PT0gJ0FXUzo6TGFtYmRhOjpWZXJzaW9uJyk7XG4gICAgICAgICAgaWYgKHZlcnNpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgcHVibGlzaFZlcnNpb25Qcm9taXNlID0gbGFtYmRhLnB1Ymxpc2hWZXJzaW9uKHtcbiAgICAgICAgICAgICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgYWxpYXNlcyA9IGRlcGVuZGVuY2llcy5maWx0ZXIoKGQpID0+IGQucmVzb3VyY2VUeXBlID09PSAnQVdTOjpMYW1iZGE6OkFsaWFzJyk7XG4gICAgICAgICAgICBpZiAoYWxpYXNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgVmVyc2lvbiB0byBmaW5pc2ggcHVibGlzaGluZ1xuICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9uVXBkYXRlID0gYXdhaXQgcHVibGlzaFZlcnNpb25Qcm9taXNlO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIGFsaWFzZXMpIHtcbiAgICAgICAgICAgICAgICBvcGVyYXRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICBsYW1iZGEudXBkYXRlQWxpYXMoe1xuICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbk5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgTmFtZTogYWxpYXMucGh5c2ljYWxOYW1lLFxuICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblZlcnNpb246IHZlcnNpb25VcGRhdGUuVmVyc2lvbixcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbnMucHVzaChwdWJsaXNoVmVyc2lvblByb21pc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJ1biBhbGwgb2Ygb3VyIHVwZGF0ZXMgaW4gcGFyYWxsZWxcbiAgICAgICAgLy8gTGltaXRlZCBzZXQgb2YgdXBkYXRlcyBwZXIgZnVuY3Rpb25cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKG9wZXJhdGlvbnMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBjaGFuZ2VzIHRvIHRoaXMgQWxpYXMgYXJlIGhvdHN3YXBwYWJsZSBvciBub3RcbiAqL1xuZnVuY3Rpb24gY2xhc3NpZnlBbGlhc0NoYW5nZXMoY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSk6IEhvdHN3YXBDaGFuZ2VbXSB7XG4gIGNvbnN0IHJldDogSG90c3dhcENoYW5nZVtdID0gW107XG4gIGNvbnN0IGNsYXNzaWZpZWRDaGFuZ2VzID0gY2xhc3NpZnlDaGFuZ2VzKGNoYW5nZSwgWydGdW5jdGlvblZlcnNpb24nXSk7XG4gIGNsYXNzaWZpZWRDaGFuZ2VzLnJlcG9ydE5vbkhvdHN3YXBwYWJsZVByb3BlcnR5Q2hhbmdlcyhyZXQpO1xuXG4gIC8vIHdlIG9ubHkgd2FudCB0byByZXBvcnQgbm90IGhvdHN3YXBwYWJsZSBjaGFuZ2VzIHRvIGFsaWFzZXNcbiAgLy8gdGhlIGFjdHVhbCBhbGlhcyB1cGRhdGUgd2lsbCBoYXBwZW4gaWYgd2UgY2hhbmdlIHRoZSBmdW5jdGlvblxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRXZhbHVhdGVzIHRoZSBob3Rzd2FwcGFibGUgcHJvcGVydGllcyBvZiBhbiBBV1M6OkxhbWJkYTo6RnVuY3Rpb24gYW5kXG4gKiBSZXR1cm5zIGEgYExhbWJkYUZ1bmN0aW9uQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIGhvdHN3YXBwYWJsZS5cbiAqIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGNoYW5nZSBpcyBub3QgaG90c3dhcHBhYmxlLlxuICovXG5hc3luYyBmdW5jdGlvbiBldmFsdWF0ZUxhbWJkYUZ1bmN0aW9uUHJvcHMoXG4gIGhvdHN3YXBwYWJsZVByb3BDaGFuZ2VzOiBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pj4sXG4gIHJ1bnRpbWU6IHN0cmluZyxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxMYW1iZGFGdW5jdGlvbkNoYW5nZSB8IHVuZGVmaW5lZD4ge1xuICAvKlxuICAgKiBBdCBmaXJzdCBnbGFuY2UsIHdlIHdvdWxkIHdhbnQgdG8gaW5pdGlhbGl6ZSB0aGVzZSB1c2luZyB0aGUgXCJwcmV2aW91c1wiIHZhbHVlcyAoY2hhbmdlLm9sZFZhbHVlKSxcbiAgICogaW4gY2FzZSBvbmx5IG9uZSBvZiB0aGVtIGNoYW5nZWQsIGxpa2UgdGhlIGtleSwgYW5kIHRoZSBCdWNrZXQgc3RheWVkIHRoZSBzYW1lLlxuICAgKiBIb3dldmVyLCB0aGF0IGFjdHVhbGx5IGZhaWxzIGZvciBvbGQtc3R5bGUgc3ludGhlc2lzLCB3aGljaCB1c2VzIENGTiBQYXJhbWV0ZXJzIVxuICAgKiBCZWNhdXNlIHRoZSBuYW1lcyBvZiB0aGUgUGFyYW1ldGVycyBkZXBlbmQgb24gdGhlIGhhc2ggb2YgdGhlIEFzc2V0LFxuICAgKiB0aGUgUGFyYW1ldGVycyB1c2VkIGZvciB0aGUgXCJvbGRcIiB2YWx1ZXMgbm8gbG9uZ2VyIGV4aXN0IGluIGBhc3NldFBhcmFtc2AgYXQgdGhpcyBwb2ludCxcbiAgICogd2hpY2ggbWVhbnMgd2UgZG9uJ3QgaGF2ZSB0aGUgY29ycmVjdCB2YWx1ZXMgYXZhaWxhYmxlIHRvIGV2YWx1YXRlIHRoZSBDRk4gZXhwcmVzc2lvbiB3aXRoLlxuICAgKiBGb3J0dW5hdGVseSwgdGhlIGRpZmYgd2lsbCBhbHdheXMgaW5jbHVkZSBib3RoIHRoZSBzM0J1Y2tldCBhbmQgczNLZXkgcGFydHMgb2YgdGhlIExhbWJkYSdzIENvZGUgcHJvcGVydHksXG4gICAqIGV2ZW4gaWYgb25seSBvbmUgb2YgdGhlbSB3YXMgYWN0dWFsbHkgY2hhbmdlZCxcbiAgICogd2hpY2ggbWVhbnMgd2UgZG9uJ3QgbmVlZCB0aGUgXCJvbGRcIiB2YWx1ZXMgYXQgYWxsLCBhbmQgd2UgY2FuIHNhZmVseSBpbml0aWFsaXplIHRoZXNlIHdpdGgganVzdCBgJydgLlxuICAgKi9cbiAgbGV0IGNvZGU6IExhbWJkYUZ1bmN0aW9uQ29kZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgbGV0IGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGxldCBlbnZpcm9ubWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IHVwZGF0ZWRQcm9wTmFtZSBpbiBob3Rzd2FwcGFibGVQcm9wQ2hhbmdlcykge1xuICAgIGNvbnN0IHVwZGF0ZWRQcm9wID0gaG90c3dhcHBhYmxlUHJvcENoYW5nZXNbdXBkYXRlZFByb3BOYW1lXTtcblxuICAgIHN3aXRjaCAodXBkYXRlZFByb3BOYW1lKSB7XG4gICAgICBjYXNlICdDb2RlJzpcbiAgICAgICAgbGV0IHMzQnVja2V0LCBzM0tleSwgczNPYmplY3RWZXJzaW9uLCBpbWFnZVVyaSwgZnVuY3Rpb25Db2RlWmlwO1xuXG4gICAgICAgIGZvciAoY29uc3QgbmV3UHJvcE5hbWUgaW4gdXBkYXRlZFByb3AubmV3VmFsdWUpIHtcbiAgICAgICAgICBzd2l0Y2ggKG5ld1Byb3BOYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdTM0J1Y2tldCc6XG4gICAgICAgICAgICAgIHMzQnVja2V0ID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWVbbmV3UHJvcE5hbWVdKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTM0tleSc6XG4gICAgICAgICAgICAgIHMzS2V5ID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWVbbmV3UHJvcE5hbWVdKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTM09iamVjdFZlcnNpb24nOlxuICAgICAgICAgICAgICBzM09iamVjdFZlcnNpb24gPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZVtuZXdQcm9wTmFtZV0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0ltYWdlVXJpJzpcbiAgICAgICAgICAgICAgaW1hZ2VVcmkgPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZVtuZXdQcm9wTmFtZV0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1ppcEZpbGUnOlxuICAgICAgICAgICAgICAvLyBXZSBtdXN0IGNyZWF0ZSBhIHppcCBwYWNrYWdlIGNvbnRhaW5pbmcgYSBmaWxlIHdpdGggdGhlIGlubGluZSBjb2RlXG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uQ29kZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHVwZGF0ZWRQcm9wLm5ld1ZhbHVlW25ld1Byb3BOYW1lXSk7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uUnVudGltZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHJ1bnRpbWUpO1xuICAgICAgICAgICAgICBpZiAoIWZ1bmN0aW9uUnVudGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gZmlsZSBleHRlbnNpb24gbXVzdCBiZSBjaG9zZW4gZGVwZW5kaW5nIG9uIHRoZSBydW50aW1lXG4gICAgICAgICAgICAgIGNvbnN0IGNvZGVGaWxlRXh0ID0gZGV0ZXJtaW5lQ29kZUZpbGVFeHRGcm9tUnVudGltZShmdW5jdGlvblJ1bnRpbWUpO1xuICAgICAgICAgICAgICBmdW5jdGlvbkNvZGVaaXAgPSBhd2FpdCB6aXBTdHJpbmcoYGluZGV4LiR7Y29kZUZpbGVFeHR9YCwgZnVuY3Rpb25Db2RlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvZGUgPSB7XG4gICAgICAgICAgczNCdWNrZXQsXG4gICAgICAgICAgczNLZXksXG4gICAgICAgICAgczNPYmplY3RWZXJzaW9uLFxuICAgICAgICAgIGltYWdlVXJpLFxuICAgICAgICAgIGZ1bmN0aW9uQ29kZVppcCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEZXNjcmlwdGlvbic6XG4gICAgICAgIGRlc2NyaXB0aW9uID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5ldmFsdWF0ZUNmbkV4cHJlc3Npb24odXBkYXRlZFByb3AubmV3VmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Vudmlyb25tZW50JzpcbiAgICAgICAgZW52aXJvbm1lbnQgPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbih1cGRhdGVkUHJvcC5uZXdWYWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gd2Ugd2lsbCBuZXZlciBnZXQgaGVyZSwgYnV0IGp1c3QgaW4gY2FzZSB3ZSBkbyB0aHJvdyBhbiBlcnJvclxuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdVbmV4cGVjdGVkSG90c3dhcFByb3BlcnR5JyxcbiAgICAgICAgICAnd2hpbGUgYXBwbHkoKWluZywgZm91bmQgYSBwcm9wZXJ0eSB0aGF0IGNhbm5vdCBiZSBob3Rzd2FwcGVkLiBQbGVhc2UgcmVwb3J0IHRoaXMgYXQgZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvbmV3L2Nob29zZScsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29uZmlndXJhdGlvbnMgPSBkZXNjcmlwdGlvbiB8fCBlbnZpcm9ubWVudCA/IHsgZGVzY3JpcHRpb24sIGVudmlyb25tZW50IH0gOiB1bmRlZmluZWQ7XG4gIHJldHVybiBjb2RlIHx8IGNvbmZpZ3VyYXRpb25zID8geyBjb2RlLCBjb25maWd1cmF0aW9ucyB9IDogdW5kZWZpbmVkO1xufVxuXG5pbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25Db2RlIHtcbiAgcmVhZG9ubHkgczNCdWNrZXQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHMzS2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBzM09iamVjdFZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlVXJpPzogc3RyaW5nO1xuICByZWFkb25seSBmdW5jdGlvbkNvZGVaaXA/OiBCdWZmZXI7XG59XG5cbmludGVyZmFjZSBMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25zIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uQ2hhbmdlIHtcbiAgcmVhZG9ubHkgY29kZT86IExhbWJkYUZ1bmN0aW9uQ29kZTtcbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbnM/OiBMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25zO1xufVxuXG4vKipcbiAqIENvbXByZXNzIGEgc3RyaW5nIGFzIGEgZmlsZSwgcmV0dXJuaW5nIGEgcHJvbWlzZSBmb3IgdGhlIHppcCBidWZmZXJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hcmNoaXZlcmpzL25vZGUtYXJjaGl2ZXIvaXNzdWVzLzM0MlxuICovXG5mdW5jdGlvbiB6aXBTdHJpbmcoZmlsZU5hbWU6IHN0cmluZywgcmF3U3RyaW5nOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGJ1ZmZlcnM6IEJ1ZmZlcltdID0gW107XG5cbiAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgV3JpdGFibGUoKTtcblxuICAgIGNvbnZlcnRlci5fd3JpdGUgPSAoY2h1bms6IEJ1ZmZlciwgXzogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgYnVmZmVycy5wdXNoKGNodW5rKTtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBjb252ZXJ0ZXIub24oJ2ZpbmlzaCcsICgpID0+IHtcbiAgICAgIHJlc29sdmUoQnVmZmVyLmNvbmNhdChidWZmZXJzKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBhcmNoaXZlID0gYXJjaGl2ZXIoJ3ppcCcpO1xuXG4gICAgYXJjaGl2ZS5vbignZXJyb3InLCAoZXJyOiBhbnkpID0+IHtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH0pO1xuXG4gICAgYXJjaGl2ZS5waXBlKGNvbnZlcnRlcik7XG5cbiAgICBhcmNoaXZlLmFwcGVuZChyYXdTdHJpbmcsIHtcbiAgICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgICAgZGF0ZTogbmV3IERhdGUoJzE5ODAtMDEtMDFUMDA6MDA6MDAuMDAwWicpLCAvLyBBZGQgZGF0ZSB0byBtYWtlIHJlc3VsdGluZyB6aXAgZmlsZSBkZXRlcm1pbmlzdGljXG4gICAgfSk7XG5cbiAgICB2b2lkIGFyY2hpdmUuZmluYWxpemUoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQWZ0ZXIgYSBMYW1iZGEgRnVuY3Rpb24gaXMgdXBkYXRlZCwgaXQgY2Fubm90IGJlIHVwZGF0ZWQgYWdhaW4gdW50aWwgdGhlXG4gKiBgU3RhdGU9QWN0aXZlYCBhbmQgdGhlIGBMYXN0VXBkYXRlU3RhdHVzPVN1Y2Nlc3NmdWxgLlxuICpcbiAqIERlcGVuZGluZyBvbiB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgTGFtYmRhIEZ1bmN0aW9uIHRoaXMgY291bGQgaGFwcGVuIHJlbGF0aXZlbHkgcXVpY2tseVxuICogb3IgdmVyeSBzbG93bHkuIEZvciBleGFtcGxlLCBaaXAgYmFzZWQgZnVuY3Rpb25zIF9ub3RfIGluIGEgVlBDIGNhbiB0YWtlIH4xIHNlY29uZCB3aGVyZWFzIFZQQ1xuICogb3IgQ29udGFpbmVyIGZ1bmN0aW9ucyBjYW4gdGFrZSB+MjUgc2Vjb25kcyAoYW5kICdpZGxlJyBWUEMgZnVuY3Rpb25zIGNhbiB0YWtlIG1pbnV0ZXMpLlxuICovXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yTGFtYmRhc1Byb3BlcnRpZXNVcGRhdGVUb0ZpbmlzaChcbiAgbGFtYmRhOiBJTGFtYmRhQ2xpZW50LFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtaW5EZWxheVNlY29uZHMgPSAxO1xuICBjb25zdCBtYXhEZWxheVNlY29uZHMgPSAxMDtcblxuICBhd2FpdCBsYW1iZGEud2FpdFVudGlsRnVuY3Rpb25VcGRhdGVkKG1pbkRlbGF5U2Vjb25kcywgbWF4RGVsYXlTZWNvbmRzLCB7XG4gICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBmaWxlIGV4dGVuc2lvbiBmcm9tIExhbWJkYSBydW50aW1lIHN0cmluZy5cbiAqIFdlIHVzZSB0aGlzIGV4dGVuc2lvbiB0byBjcmVhdGUgYSBkZXBsb3ltZW50IHBhY2thZ2UgZnJvbSBMYW1iZGEgaW5saW5lIGNvZGUuXG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZUNvZGVGaWxlRXh0RnJvbVJ1bnRpbWUocnVudGltZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHJ1bnRpbWUuc3RhcnRzV2l0aCgnbm9kZScpKSB7XG4gICAgcmV0dXJuICdqcyc7XG4gIH1cbiAgaWYgKHJ1bnRpbWUuc3RhcnRzV2l0aCgncHl0aG9uJykpIHtcbiAgICByZXR1cm4gJ3B5JztcbiAgfVxuICAvLyBDdXJyZW50bHkgaW5saW5lIGNvZGUgb25seSBzdXBwb3J0cyBOb2RlLmpzIGFuZCBQeXRob24sIGlnbm9yaW5nIG90aGVyIHJ1bnRpbWVzLlxuICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1sYW1iZGEtZnVuY3Rpb24tY29kZS5odG1sI2F3cy1wcm9wZXJ0aWVzLWxhbWJkYS1mdW5jdGlvbi1jb2RlLXByb3BlcnRpZXNcbiAgdGhyb3cgbmV3IENmbkV2YWx1YXRpb25FeGNlcHRpb24oXG4gICAgYHJ1bnRpbWUgJHtydW50aW1lfSBpcyB1bnN1cHBvcnRlZCwgb25seSBub2RlLmpzIGFuZCBweXRob24gcnVudGltZXMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuYCxcbiAgKTtcbn1cblxuLyoqXG4gKiBGaW5kcyBhbGwgVmVyc2lvbnMgdGhhdCByZWZlcmVuY2UgYW4gQVdTOjpMYW1iZGE6OkZ1bmN0aW9uIHdpdGggbG9naWNhbCBJRCBgbG9naWNhbElkYFxuICogYW5kIEFsaWFzZXMgdGhhdCByZWZlcmVuY2UgdGhvc2UgVmVyc2lvbnMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZlcnNpb25zQW5kQWxpYXNlcyhsb2dpY2FsSWQ6IHN0cmluZywgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKSB7XG4gIC8vIGZpbmQgYWxsIExhbWJkYSBWZXJzaW9ucyB0aGF0IHJlZmVyZW5jZSB0aGlzIEZ1bmN0aW9uXG4gIGNvbnN0IHZlcnNpb25zUmVmZXJlbmNpbmdGdW5jdGlvbiA9IGV2YWx1YXRlQ2ZuVGVtcGxhdGVcbiAgICAuZmluZFJlZmVyZW5jZXNUbyhsb2dpY2FsSWQpXG4gICAgLmZpbHRlcigocikgPT4gci5UeXBlID09PSAnQVdTOjpMYW1iZGE6OlZlcnNpb24nKTtcbiAgLy8gZmluZCBhbGwgTGFtYmRhIEFsaWFzZXMgdGhhdCByZWZlcmVuY2UgdGhlIGFib3ZlIFZlcnNpb25zXG4gIGNvbnN0IGFsaWFzZXNSZWZlcmVuY2luZ1ZlcnNpb25zID0gZmxhdE1hcCh2ZXJzaW9uc1JlZmVyZW5jaW5nRnVuY3Rpb24sIHYgPT5cbiAgICBldmFsdWF0ZUNmblRlbXBsYXRlLmZpbmRSZWZlcmVuY2VzVG8odi5Mb2dpY2FsSWQpKTtcblxuICByZXR1cm4geyB2ZXJzaW9uc1JlZmVyZW5jaW5nRnVuY3Rpb24sIGFsaWFzZXNSZWZlcmVuY2luZ1ZlcnNpb25zIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRlcGVuZGFudFJlc291cmNlcyhcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBQcm9taXNlPEFycmF5PEFmZmVjdGVkUmVzb3VyY2U+PiB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBhd2FpdCB2ZXJzaW9uc0FuZEFsaWFzZXMobG9naWNhbElkLCBldmFsdWF0ZUNmblRlbXBsYXRlKTtcblxuICAvLyBMaW1pdGVkIHNldCBvZiB1cGRhdGVzIHBlciBmdW5jdGlvblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgY29uc3QgYWxpYXNlcyA9IGF3YWl0IFByb21pc2UuYWxsKGNhbmRpZGF0ZXMuYWxpYXNlc1JlZmVyZW5jaW5nVmVyc2lvbnMubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKGEuUHJvcGVydGllcz8uTmFtZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2ljYWxJZDogYS5Mb2dpY2FsSWQsXG4gICAgICByZXNvdXJjZVR5cGU6IGEuVHlwZSxcbiAgICAgIHBoeXNpY2FsTmFtZTogbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgJHthLlR5cGV9ICcke25hbWV9JyBmb3IgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uICcke2Z1bmN0aW9uTmFtZX0nYCxcbiAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGEuTG9naWNhbElkKSxcbiAgICB9O1xuICB9KSk7XG5cbiAgY29uc3QgdmVyc2lvbnMgPSBjYW5kaWRhdGVzLnZlcnNpb25zUmVmZXJlbmNpbmdGdW5jdGlvbi5tYXAoKHYpID0+IChcbiAgICB7XG4gICAgICBsb2dpY2FsSWQ6IHYuTG9naWNhbElkLFxuICAgICAgcmVzb3VyY2VUeXBlOiB2LlR5cGUsXG4gICAgICBkZXNjcmlwdGlvbjogYCR7di5UeXBlfSBmb3IgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uICcke2Z1bmN0aW9uTmFtZX0nYCxcbiAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKHYuTG9naWNhbElkKSxcbiAgICB9XG4gICkpO1xuXG4gIHJldHVybiBbXG4gICAgLi4udmVyc2lvbnMsXG4gICAgLi4uYWxpYXNlcyxcbiAgXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHotswappableS3BucketDeploymentChange = isHotswappableS3BucketDeploymentChange;\nexports.skipChangeForS3DeployCustomResourcePolicy = skipChangeForS3DeployCustomResourcePolicy;\n/**\n * This means that the value is required to exist by CloudFormation's Custom Resource API (or our S3 Bucket Deployment Lambda's API)\n * but the actual value specified is irrelevant\n */\nconst REQUIRED_BY_CFN = 'required-to-be-present-by-cfn';\nconst CDK_BUCKET_DEPLOYMENT_CFN_TYPE = 'Custom::CDKBucketDeployment';\nasync function isHotswappableS3BucketDeploymentChange(logicalId, change, evaluateCfnTemplate) {\n // In old-style synthesis, the policy used by the lambda to copy assets Ref's the assets directly,\n // meaning that the changes made to the Policy are artifacts that can be safely ignored\n const ret = [];\n if (change.newValue.Type !== CDK_BUCKET_DEPLOYMENT_CFN_TYPE) {\n return [];\n }\n // no classification to be done here; all the properties of this custom resource thing are hotswappable\n const customResourceProperties = await evaluateCfnTemplate.evaluateCfnExpression({\n ...change.newValue.Properties,\n ServiceToken: undefined,\n });\n // note that this gives the ARN of the lambda, not the name. This is fine though, the invoke() sdk call will take either\n const functionName = await evaluateCfnTemplate.evaluateCfnExpression(change.newValue.Properties?.ServiceToken);\n if (!functionName) {\n return ret;\n }\n ret.push({\n change: {\n cause: change,\n resources: [{\n logicalId,\n physicalName: customResourceProperties.DestinationBucketName,\n resourceType: CDK_BUCKET_DEPLOYMENT_CFN_TYPE,\n description: `Contents of AWS::S3::Bucket '${customResourceProperties.DestinationBucketName}'`,\n metadata: evaluateCfnTemplate.metadataFor(logicalId),\n }],\n },\n hotswappable: true,\n service: 'custom-s3-deployment',\n apply: async (sdk) => {\n await sdk.lambda().invokeCommand({\n FunctionName: functionName,\n // Lambda refuses to take a direct JSON object and requires it to be stringify()'d\n Payload: JSON.stringify({\n RequestType: 'Update',\n ResponseURL: REQUIRED_BY_CFN,\n PhysicalResourceId: REQUIRED_BY_CFN,\n StackId: REQUIRED_BY_CFN,\n RequestId: REQUIRED_BY_CFN,\n LogicalResourceId: REQUIRED_BY_CFN,\n ResourceProperties: stringifyObject(customResourceProperties), // JSON.stringify() doesn't turn the actual objects to strings, but the lambda expects strings\n }),\n });\n },\n });\n return ret;\n}\nasync function skipChangeForS3DeployCustomResourcePolicy(iamPolicyLogicalId, change, evaluateCfnTemplate) {\n if (change.newValue.Type !== 'AWS::IAM::Policy') {\n return false;\n }\n const roles = change.newValue.Properties?.Roles;\n // If no roles are referenced, the policy is definitely not used for a S3Deployment\n if (!roles || !roles.length) {\n return false;\n }\n // Check if every role this policy is referenced by is only used for a S3Deployment\n for (const role of roles) {\n const roleArn = await evaluateCfnTemplate.evaluateCfnExpression(role);\n const roleLogicalId = await evaluateCfnTemplate.findLogicalIdForPhysicalName(roleArn);\n // We must assume this role is used for something else, because we can't check it\n if (!roleLogicalId) {\n return false;\n }\n // Find all interesting reference to the role\n const roleRefs = evaluateCfnTemplate\n .findReferencesTo(roleLogicalId)\n // we are not interested in the reference from the original policy - it always exists\n .filter((roleRef) => !(roleRef.Type == 'AWS::IAM::Policy' && roleRef.LogicalId === iamPolicyLogicalId));\n // Check if the role is only used for S3Deployment\n // We know this is the case, if S3Deployment -> Lambda -> Role is satisfied for every reference\n // And we have at least one reference.\n const isRoleOnlyForS3Deployment = roleRefs.length >= 1 &&\n roleRefs.every((roleRef) => {\n if (roleRef.Type === 'AWS::Lambda::Function') {\n const lambdaRefs = evaluateCfnTemplate.findReferencesTo(roleRef.LogicalId);\n // Every reference must be to the custom resource and at least one reference must be present\n return (lambdaRefs.length >= 1 && lambdaRefs.every((lambdaRef) => lambdaRef.Type === 'Custom::CDKBucketDeployment'));\n }\n return false;\n });\n // We have determined this role is used for something else, so we can't skip the change\n if (!isRoleOnlyForS3Deployment) {\n return false;\n }\n }\n // We have checked that any use of this policy is only for S3Deployment and we can safely skip it\n return true;\n}\nfunction stringifyObject(obj) {\n if (obj == null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(stringifyObject);\n }\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n const ret = {};\n for (const [k, v] of Object.entries(obj)) {\n ret[k] = stringifyObject(v);\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWRlcGxveW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiczMtYnVja2V0LWRlcGxveW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsd0ZBd0RDO0FBRUQsOEZBdURDO0FBekhEOzs7R0FHRztBQUNILE1BQU0sZUFBZSxHQUFHLCtCQUErQixDQUFDO0FBRXhELE1BQU0sOEJBQThCLEdBQUcsNkJBQTZCLENBQUM7QUFFOUQsS0FBSyxVQUFVLHNDQUFzQyxDQUMxRCxTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQ7SUFFbkQsa0dBQWtHO0lBQ2xHLHVGQUF1RjtJQUN2RixNQUFNLEdBQUcsR0FBb0IsRUFBRSxDQUFDO0lBRWhDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssOEJBQThCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCx1R0FBdUc7SUFDdkcsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDO1FBQy9FLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVO1FBQzdCLFlBQVksRUFBRSxTQUFTO0tBQ3hCLENBQUMsQ0FBQztJQUVILHdIQUF3SDtJQUN4SCxNQUFNLFlBQVksR0FBRyxNQUFNLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9HLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsQ0FBQztvQkFDVixTQUFTO29CQUNULFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxxQkFBcUI7b0JBQzVELFlBQVksRUFBRSw4QkFBOEI7b0JBQzVD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Q0FBQyxDQUFDO1FBRUwsdUZBQXVGO1FBQ3ZGLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxpR0FBaUc7SUFDakcsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsR0FBUTtJQUMvQixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUF5QixFQUFFLENBQUM7SUFDckMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhvdHN3YXBDaGFuZ2UgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogVGhpcyBtZWFucyB0aGF0IHRoZSB2YWx1ZSBpcyByZXF1aXJlZCB0byBleGlzdCBieSBDbG91ZEZvcm1hdGlvbidzIEN1c3RvbSBSZXNvdXJjZSBBUEkgKG9yIG91ciBTMyBCdWNrZXQgRGVwbG95bWVudCBMYW1iZGEncyBBUEkpXG4gKiBidXQgdGhlIGFjdHVhbCB2YWx1ZSBzcGVjaWZpZWQgaXMgaXJyZWxldmFudFxuICovXG5jb25zdCBSRVFVSVJFRF9CWV9DRk4gPSAncmVxdWlyZWQtdG8tYmUtcHJlc2VudC1ieS1jZm4nO1xuXG5jb25zdCBDREtfQlVDS0VUX0RFUExPWU1FTlRfQ0ZOX1RZUEUgPSAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzSG90c3dhcHBhYmxlUzNCdWNrZXREZXBsb3ltZW50Q2hhbmdlKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+IHtcbiAgLy8gSW4gb2xkLXN0eWxlIHN5bnRoZXNpcywgdGhlIHBvbGljeSB1c2VkIGJ5IHRoZSBsYW1iZGEgdG8gY29weSBhc3NldHMgUmVmJ3MgdGhlIGFzc2V0cyBkaXJlY3RseSxcbiAgLy8gbWVhbmluZyB0aGF0IHRoZSBjaGFuZ2VzIG1hZGUgdG8gdGhlIFBvbGljeSBhcmUgYXJ0aWZhY3RzIHRoYXQgY2FuIGJlIHNhZmVseSBpZ25vcmVkXG4gIGNvbnN0IHJldDogSG90c3dhcENoYW5nZVtdID0gW107XG5cbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSBDREtfQlVDS0VUX0RFUExPWU1FTlRfQ0ZOX1RZUEUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyBubyBjbGFzc2lmaWNhdGlvbiB0byBiZSBkb25lIGhlcmU7IGFsbCB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGN1c3RvbSByZXNvdXJjZSB0aGluZyBhcmUgaG90c3dhcHBhYmxlXG4gIGNvbnN0IGN1c3RvbVJlc291cmNlUHJvcGVydGllcyA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKHtcbiAgICAuLi5jaGFuZ2UubmV3VmFsdWUuUHJvcGVydGllcyxcbiAgICBTZXJ2aWNlVG9rZW46IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgLy8gbm90ZSB0aGF0IHRoaXMgZ2l2ZXMgdGhlIEFSTiBvZiB0aGUgbGFtYmRhLCBub3QgdGhlIG5hbWUuIFRoaXMgaXMgZmluZSB0aG91Z2gsIHRoZSBpbnZva2UoKSBzZGsgY2FsbCB3aWxsIHRha2UgZWl0aGVyXG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGF3YWl0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZXZhbHVhdGVDZm5FeHByZXNzaW9uKGNoYW5nZS5uZXdWYWx1ZS5Qcm9wZXJ0aWVzPy5TZXJ2aWNlVG9rZW4pO1xuICBpZiAoIWZ1bmN0aW9uTmFtZSkge1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXQucHVzaCh7XG4gICAgY2hhbmdlOiB7XG4gICAgICBjYXVzZTogY2hhbmdlLFxuICAgICAgcmVzb3VyY2VzOiBbe1xuICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgIHBoeXNpY2FsTmFtZTogY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzLkRlc3RpbmF0aW9uQnVja2V0TmFtZSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBDREtfQlVDS0VUX0RFUExPWU1FTlRfQ0ZOX1RZUEUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQ29udGVudHMgb2YgQVdTOjpTMzo6QnVja2V0ICcke2N1c3RvbVJlc291cmNlUHJvcGVydGllcy5EZXN0aW5hdGlvbkJ1Y2tldE5hbWV9J2AsXG4gICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICB9XSxcbiAgICB9LFxuICAgIGhvdHN3YXBwYWJsZTogdHJ1ZSxcbiAgICBzZXJ2aWNlOiAnY3VzdG9tLXMzLWRlcGxveW1lbnQnLFxuICAgIGFwcGx5OiBhc3luYyAoc2RrOiBTREspID0+IHtcbiAgICAgIGF3YWl0IHNkay5sYW1iZGEoKS5pbnZva2VDb21tYW5kKHtcbiAgICAgICAgRnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgIC8vIExhbWJkYSByZWZ1c2VzIHRvIHRha2UgYSBkaXJlY3QgSlNPTiBvYmplY3QgYW5kIHJlcXVpcmVzIGl0IHRvIGJlIHN0cmluZ2lmeSgpJ2RcbiAgICAgICAgUGF5bG9hZDogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIFJlcXVlc3RUeXBlOiAnVXBkYXRlJyxcbiAgICAgICAgICBSZXNwb25zZVVSTDogUkVRVUlSRURfQllfQ0ZOLFxuICAgICAgICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogUkVRVUlSRURfQllfQ0ZOLFxuICAgICAgICAgIFN0YWNrSWQ6IFJFUVVJUkVEX0JZX0NGTixcbiAgICAgICAgICBSZXF1ZXN0SWQ6IFJFUVVJUkVEX0JZX0NGTixcbiAgICAgICAgICBMb2dpY2FsUmVzb3VyY2VJZDogUkVRVUlSRURfQllfQ0ZOLFxuICAgICAgICAgIFJlc291cmNlUHJvcGVydGllczogc3RyaW5naWZ5T2JqZWN0KGN1c3RvbVJlc291cmNlUHJvcGVydGllcyksIC8vIEpTT04uc3RyaW5naWZ5KCkgZG9lc24ndCB0dXJuIHRoZSBhY3R1YWwgb2JqZWN0cyB0byBzdHJpbmdzLCBidXQgdGhlIGxhbWJkYSBleHBlY3RzIHN0cmluZ3NcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2tpcENoYW5nZUZvclMzRGVwbG95Q3VzdG9tUmVzb3VyY2VQb2xpY3koXG4gIGlhbVBvbGljeUxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IFJlc291cmNlQ2hhbmdlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSAnQVdTOjpJQU06OlBvbGljeScpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgcm9sZXM6IHN0cmluZ1tdID0gY2hhbmdlLm5ld1ZhbHVlLlByb3BlcnRpZXM/LlJvbGVzO1xuXG4gIC8vIElmIG5vIHJvbGVzIGFyZSByZWZlcmVuY2VkLCB0aGUgcG9saWN5IGlzIGRlZmluaXRlbHkgbm90IHVzZWQgZm9yIGEgUzNEZXBsb3ltZW50XG4gIGlmICghcm9sZXMgfHwgIXJvbGVzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIGV2ZXJ5IHJvbGUgdGhpcyBwb2xpY3kgaXMgcmVmZXJlbmNlZCBieSBpcyBvbmx5IHVzZWQgZm9yIGEgUzNEZXBsb3ltZW50XG4gIGZvciAoY29uc3Qgcm9sZSBvZiByb2xlcykge1xuICAgIGNvbnN0IHJvbGVBcm4gPSBhd2FpdCBldmFsdWF0ZUNmblRlbXBsYXRlLmV2YWx1YXRlQ2ZuRXhwcmVzc2lvbihyb2xlKTtcbiAgICBjb25zdCByb2xlTG9naWNhbElkID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5maW5kTG9naWNhbElkRm9yUGh5c2ljYWxOYW1lKHJvbGVBcm4pO1xuXG4gICAgLy8gV2UgbXVzdCBhc3N1bWUgdGhpcyByb2xlIGlzIHVzZWQgZm9yIHNvbWV0aGluZyBlbHNlLCBiZWNhdXNlIHdlIGNhbid0IGNoZWNrIGl0XG4gICAgaWYgKCFyb2xlTG9naWNhbElkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gRmluZCBhbGwgaW50ZXJlc3RpbmcgcmVmZXJlbmNlIHRvIHRoZSByb2xlXG4gICAgY29uc3Qgcm9sZVJlZnMgPSBldmFsdWF0ZUNmblRlbXBsYXRlXG4gICAgICAuZmluZFJlZmVyZW5jZXNUbyhyb2xlTG9naWNhbElkKVxuICAgICAgLy8gd2UgYXJlIG5vdCBpbnRlcmVzdGVkIGluIHRoZSByZWZlcmVuY2UgZnJvbSB0aGUgb3JpZ2luYWwgcG9saWN5IC0gaXQgYWx3YXlzIGV4aXN0c1xuICAgICAgLmZpbHRlcigocm9sZVJlZikgPT4gIShyb2xlUmVmLlR5cGUgPT0gJ0FXUzo6SUFNOjpQb2xpY3knICYmIHJvbGVSZWYuTG9naWNhbElkID09PSBpYW1Qb2xpY3lMb2dpY2FsSWQpKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSByb2xlIGlzIG9ubHkgdXNlZCBmb3IgUzNEZXBsb3ltZW50XG4gICAgLy8gV2Uga25vdyB0aGlzIGlzIHRoZSBjYXNlLCBpZiBTM0RlcGxveW1lbnQgLT4gTGFtYmRhIC0+IFJvbGUgaXMgc2F0aXNmaWVkIGZvciBldmVyeSByZWZlcmVuY2VcbiAgICAvLyBBbmQgd2UgaGF2ZSBhdCBsZWFzdCBvbmUgcmVmZXJlbmNlLlxuICAgIGNvbnN0IGlzUm9sZU9ubHlGb3JTM0RlcGxveW1lbnQgPVxuICAgICAgcm9sZVJlZnMubGVuZ3RoID49IDEgJiZcbiAgICAgIHJvbGVSZWZzLmV2ZXJ5KChyb2xlUmVmKSA9PiB7XG4gICAgICAgIGlmIChyb2xlUmVmLlR5cGUgPT09ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgbGFtYmRhUmVmcyA9IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZmluZFJlZmVyZW5jZXNUbyhyb2xlUmVmLkxvZ2ljYWxJZCk7XG4gICAgICAgICAgLy8gRXZlcnkgcmVmZXJlbmNlIG11c3QgYmUgdG8gdGhlIGN1c3RvbSByZXNvdXJjZSBhbmQgYXQgbGVhc3Qgb25lIHJlZmVyZW5jZSBtdXN0IGJlIHByZXNlbnRcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbGFtYmRhUmVmcy5sZW5ndGggPj0gMSAmJiBsYW1iZGFSZWZzLmV2ZXJ5KChsYW1iZGFSZWYpID0+IGxhbWJkYVJlZi5UeXBlID09PSAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgLy8gV2UgaGF2ZSBkZXRlcm1pbmVkIHRoaXMgcm9sZSBpcyB1c2VkIGZvciBzb21ldGhpbmcgZWxzZSwgc28gd2UgY2FuJ3Qgc2tpcCB0aGUgY2hhbmdlXG4gICAgaWYgKCFpc1JvbGVPbmx5Rm9yUzNEZXBsb3ltZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgaGF2ZSBjaGVja2VkIHRoYXQgYW55IHVzZSBvZiB0aGlzIHBvbGljeSBpcyBvbmx5IGZvciBTM0RlcGxveW1lbnQgYW5kIHdlIGNhbiBzYWZlbHkgc2tpcCBpdFxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5T2JqZWN0KG9iajogYW55KTogYW55IHtcbiAgaWYgKG9iaiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoc3RyaW5naWZ5T2JqZWN0KTtcbiAgfVxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gb2JqLnRvU3RyaW5nKCk7XG4gIH1cblxuICBjb25zdCByZXQ6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICByZXRba10gPSBzdHJpbmdpZnlPYmplY3Qodik7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./io-host\"), exports);\n__exportStar(require(\"./io-message\"), exports);\n__exportStar(require(\"./toolkit-action\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLCtDQUE2QjtBQUM3QixtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lvLWhvc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pby1tZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGtpdC1hY3Rpb24nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8taG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW9NZXNzYWdlLCBJb1JlcXVlc3QgfSBmcm9tICcuL2lvLW1lc3NhZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJb0hvc3Qge1xuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlLlxuICAgKiBUaGUgY2FsbGVyIHdhaXRzIHVudGlsIHRoZSBub3RpZmljYXRpb24gY29tcGxldGVzLlxuICAgKi9cbiAgbm90aWZ5KG1zZzogSW9NZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlIHRoYXQgcmVxdWlyZXMgYSByZXNwb25zZS5cbiAgICpcbiAgICogSWYgdGhlIGhvc3QgZG9lcyBub3QgcmV0dXJuIGEgcmVzcG9uc2UgdGhlIHN1Z2dlc3RlZFxuICAgKiBkZWZhdWx0IHJlc3BvbnNlIGZyb20gdGhlIGlucHV0IG1lc3NhZ2Ugd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVxdWVzdFJlc3BvbnNlPFQ+KG1zZzogSW9SZXF1ZXN0PHVua25vd24sIFQ+KTogUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uQXdhcmVJb0hvc3Qge1xuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlLlxuICAgKiBUaGUgY2FsbGVyIHdhaXRzIHVudGlsIHRoZSBub3RpZmljYXRpb24gY29tcGxldGVzLlxuICAgKi9cbiAgbm90aWZ5KG1zZzogT21pdDxJb01lc3NhZ2U8dW5rbm93bj4sICdhY3Rpb24nPik6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHRoZSBob3N0IG9mIGEgbWVzc2FnZSB0aGF0IHJlcXVpcmVzIGEgcmVzcG9uc2UuXG4gICAqXG4gICAqIElmIHRoZSBob3N0IGRvZXMgbm90IHJldHVybiBhIHJlc3BvbnNlIHRoZSBzdWdnZXN0ZWRcbiAgICogZGVmYXVsdCByZXNwb25zZSBmcm9tIHRoZSBpbnB1dCBtZXNzYWdlIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlcXVlc3RSZXNwb25zZTxUPihtc2c6IE9taXQ8SW9SZXF1ZXN0PHVua25vd24sIFQ+LCAnYWN0aW9uJz4pOiBQcm9taXNlPFQ+O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVG9vbGtpdEFjdGlvbiB9IGZyb20gJy4vdG9vbGtpdC1hY3Rpb24nO1xuXG4vKipcbiAqIFRoZSByZXBvcnRpbmcgbGV2ZWwgb2YgdGhlIG1lc3NhZ2UuXG4gKiBBbGwgbWVzc2FnZXMgYXJlIGFsd2F5cyByZXBvcnRlZCwgaXQncyB1cCB0byB0aGUgSW9Ib3N0IHRvIGRlY2lkZSB3aGF0IHRvIGxvZy5cbiAqL1xuZXhwb3J0IHR5cGUgSW9NZXNzYWdlTGV2ZWwgPSAnZXJyb3InfCAncmVzdWx0JyB8ICd3YXJuJyB8ICdpbmZvJyB8ICdkZWJ1ZycgfCAndHJhY2UnO1xuXG4vKipcbiAqIEEgdmFsaWQgbWVzc2FnZSBjb2RlLlxuICovXG5leHBvcnQgdHlwZSBJb01lc3NhZ2VDb2RlID0gYENES18ke3N0cmluZ31fJHsnRScgfCAnVycgfCAnSSd9JHtudW1iZXJ9JHtudW1iZXJ9JHtudW1iZXJ9JHtudW1iZXJ9YDtcblxuLyoqXG4gKiBBbiBJTyBtZXNzYWdlIGVtaXR0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW9NZXNzYWdlPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSB0aW1lIHRoZSBtZXNzYWdlIHdhcyBlbWl0dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZTogRGF0ZTtcblxuICAvKipcbiAgICogVGhlIHJlY29tbWVuZGVkIGxvZyBsZXZlbCBvZiB0aGUgbWVzc2FnZS5cbiAgICpcbiAgICogVGhpcyBpcyBhbiBpbmRpY2F0aXZlIGxldmVsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgdG8gZXhwbGljaXRseSBtYXRjaCBtZXNzYWdlcywgaW5zdGVhZCBtYXRjaCB0aGUgYGNvZGVgLlxuICAgKiBUaGUgbGV2ZWwgb2YgYSBtZXNzYWdlIG1heSBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuXG4gICAqL1xuICByZWFkb25seSBsZXZlbDogSW9NZXNzYWdlTGV2ZWw7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdGhhdCB0cmlnZ2VyZWQgdGhlIG1lc3NhZ2UuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IFRvb2xraXRBY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgc2hvcnQgbWVzc2FnZSBjb2RlIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGEgbWVzc2FnZSB0eXBlIHVzaW5nIHRoZSBmb3JtYXQgQ0RLX1tDQVRFR09SWV1fW0UvVy9JXVswMDAwLTk5OTldLlxuICAgKlxuICAgKiBFdmVyeSBjb2RlIHJlbGVhdGVzIHRvIGEgbWVzc2FnZSB3aXRoIGEgc3BlY2lmaWMgcGF5bG9hZC5cbiAgICogTWVzc2FnZXMgd2l0aG91dCBjb2RlIGFyZSBjb25zaWRlcmVkIGdlbmVyaWMgYW5kIGRvIG5vdCBoYXZlIGEgcGF5bG9hZC5cbiAgICpcbiAgICogVGhlIGxldmVsIGluZGljYXRvciBmb2xsb3dzIHRoZXNlIHJ1bGVzOlxuICAgKiAtICdFJyBmb3IgZXJyb3IgbGV2ZWwgbWVzc2FnZXNcbiAgICogLSAnVycgZm9yIHdhcm5pbmcgbGV2ZWwgbWVzc2FnZXNcbiAgICogLSAnSScgZm9yIGluZm8vZGVidWcvdHJhY2UgbGV2ZWwgbWVzc2FnZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS90b29sa2l0LWxpYi9tZXNzYWdlLXJlZ2lzdHJ5L1xuICAgKi9cbiAgcmVhZG9ubHkgY29kZT86IElvTWVzc2FnZUNvZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHRleHQuXG4gICAqXG4gICAqIFRoaXMgaXMgc2FmZSB0byBwcmludCB0byBhbiBlbmQtdXNlci5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgbWVzc2FnZSBzcGFuLCB0aGlzIG1lc3NhZ2UgYmVsb25ncyB0by5cbiAgICpcbiAgICogQSBtZXNzYWdlIHNwYW4sIGdyb3VwcyBtdWx0aXBsZSBtZXNzYWdlcyB0b2dldGhlciB0aGF0IHNlbWFudGljYWxseSByZWxhdGVkIHRvIHRoZSBzYW1lIG9wZXJhdGlvbi5cbiAgICogVGhpcyBpcyBhbiBvdGhlcndpc2UgbWVhbmluZ2xlc3MgaWRlbnRpZmllci5cbiAgICpcbiAgICogQSBtZXNzYWdlIHdpdGhvdXQgYSBgc3BhbklkYCwgZG9lcyBub3QgYmVsb25nIHRvIGEgc3Bhbi5cbiAgICovXG4gIHJlYWRvbmx5IHNwYW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIGF0dGFjaGVkIHRvIHRoZSBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogVDtcbn1cblxuLyoqXG4gKiBBbiBJTyByZXF1ZXN0IGVtaXR0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW9SZXF1ZXN0PFQsIFU+IGV4dGVuZHMgSW9NZXNzYWdlPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHJlc3BvbnNlIHRoYXQgd2lsbCBiZSB1c2VkIGlmIG5vIGRhdGEgaXMgcmV0dXJuZWQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0UmVzcG9uc2U6IFU7XG5cbiAgcmVhZG9ubHkgY29kZTogSW9NZXNzYWdlQ29kZTtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./io-host-wrappers\"), exports);\n__exportStar(require(\"./io-helper\"), exports);\n__exportStar(require(\"./level-priority\"), exports);\n__exportStar(require(\"./span\"), exports);\n__exportStar(require(\"./message-maker\"), exports);\n__exportStar(require(\"./messages\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLDhDQUE0QjtBQUM1QixtREFBaUM7QUFDakMseUNBQXVCO0FBQ3ZCLGtEQUFnQztBQUNoQyw2Q0FBMkI7QUFDM0IsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pby1ob3N0LXdyYXBwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vaW8taGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGV2ZWwtcHJpb3JpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9zcGFuJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IoDefaultMessages = void 0;\nconst util = require(\"util\");\n/**\n * Helper class to emit standard log messages to an IoHost\n *\n * It wraps an `IoHelper`, and adds convenience methods to emit default messages\n * for the various log levels.\n */\nclass IoDefaultMessages {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n async notify(msg) {\n return this.ioHelper.notify({\n ...msg,\n code: undefined,\n });\n }\n async error(input, ...args) {\n return this.emitMessage('error', input, ...args);\n }\n async warn(input, ...args) {\n return this.emitMessage('warn', input, ...args);\n }\n async warning(input, ...args) {\n return this.emitMessage('warn', input, ...args);\n }\n async info(input, ...args) {\n return this.emitMessage('info', input, ...args);\n }\n async debug(input, ...args) {\n return this.emitMessage('debug', input, ...args);\n }\n async trace(input, ...args) {\n return this.emitMessage('trace', input, ...args);\n }\n async result(input, ...args) {\n return this.emitMessage('result', input, ...args);\n }\n /**\n * Makes a default message object from a level and a message\n */\n msg(level, input, ...args) {\n // Format message if args are provided\n const message = args.length > 0 ? util.format(input, ...args) : input;\n return {\n time: new Date(),\n level,\n message,\n data: undefined,\n };\n }\n async emitMessage(level, input, ...args) {\n return this.ioHelper.notify(this.msg(level, input, ...args));\n }\n}\nexports.IoDefaultMessages = IoDefaultMessages;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tZGVmYXVsdC1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWRlZmF1bHQtbWVzc2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBSTdCOzs7OztHQUtHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDWCxRQUFRLENBQVc7SUFFcEMsWUFBWSxRQUFrQjtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUE2QztRQUMvRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzFCLEdBQUcsR0FBRztZQUNOLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDbEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUNsRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQUMsS0FBcUIsRUFBRSxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2pFLHNDQUFzQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRXRFLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDaEIsS0FBSztZQUNMLE9BQU87WUFDUCxJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBcUIsRUFBRSxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUE1REQsOENBNERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uTGVzc01lc3NhZ2UsIElvSGVscGVyIH0gZnJvbSAnLi9pby1oZWxwZXInO1xuaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2VMZXZlbCB9IGZyb20gJy4uL2lvLW1lc3NhZ2UnO1xuXG4vKipcbiAqIEhlbHBlciBjbGFzcyB0byBlbWl0IHN0YW5kYXJkIGxvZyBtZXNzYWdlcyB0byBhbiBJb0hvc3RcbiAqXG4gKiBJdCB3cmFwcyBhbiBgSW9IZWxwZXJgLCBhbmQgYWRkcyBjb252ZW5pZW5jZSBtZXRob2RzIHRvIGVtaXQgZGVmYXVsdCBtZXNzYWdlc1xuICogZm9yIHRoZSB2YXJpb3VzIGxvZyBsZXZlbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBJb0RlZmF1bHRNZXNzYWdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBub3RpZnkobXNnOiBPbWl0PEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+LCAnY29kZSc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIGNvZGU6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBlcnJvcihpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbWl0TWVzc2FnZSgnZXJyb3InLCBpbnB1dCwgLi4uYXJncyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgd2FybihpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbWl0TWVzc2FnZSgnd2FybicsIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB3YXJuaW5nKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKCd3YXJuJywgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluZm8oaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdE1lc3NhZ2UoJ2luZm8nLCBpbnB1dCwgLi4uYXJncyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVidWcoaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdE1lc3NhZ2UoJ2RlYnVnJywgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRyYWNlKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKCd0cmFjZScsIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXN1bHQoaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdE1lc3NhZ2UoJ3Jlc3VsdCcsIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcyBhIGRlZmF1bHQgbWVzc2FnZSBvYmplY3QgZnJvbSBhIGxldmVsIGFuZCBhIG1lc3NhZ2VcbiAgICovXG4gIHB1YmxpYyBtc2cobGV2ZWw6IElvTWVzc2FnZUxldmVsLCBpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBBY3Rpb25MZXNzTWVzc2FnZTx1bmRlZmluZWQ+IHtcbiAgICAvLyBGb3JtYXQgbWVzc2FnZSBpZiBhcmdzIGFyZSBwcm92aWRlZFxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhcmdzLmxlbmd0aCA+IDAgPyB1dGlsLmZvcm1hdChpbnB1dCwgLi4uYXJncykgOiBpbnB1dDtcblxuICAgIHJldHVybiB7XG4gICAgICB0aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgbGV2ZWwsXG4gICAgICBtZXNzYWdlLFxuICAgICAgZGF0YTogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVtaXRNZXNzYWdlKGxldmVsOiBJb01lc3NhZ2VMZXZlbCwgaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KHRoaXMubXNnKGxldmVsLCBpbnB1dCwgLi4uYXJncykpO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IoHelper = void 0;\nexports.asIoHelper = asIoHelper;\nconst io_default_messages_1 = require(\"./io-default-messages\");\nconst span_1 = require(\"./span\");\n/**\n * A class containing helper tools to interact with IoHost\n */\nclass IoHelper {\n static fromIoHost(ioHost, action) {\n return new IoHelper({\n notify: (msg) => ioHost.notify({\n ...msg,\n action: action,\n }),\n requestResponse: (msg) => ioHost.requestResponse({\n ...msg,\n action: action,\n }),\n });\n }\n static fromActionAwareIoHost(ioHost) {\n return new IoHelper(ioHost);\n }\n /**\n * Simplified access to emit default messages.\n */\n defaults;\n ioHost;\n constructor(ioHost) {\n this.ioHost = ioHost;\n this.defaults = new io_default_messages_1.IoDefaultMessages(this);\n }\n /**\n * Forward a message to the IoHost, while injection the current action\n */\n notify(msg) {\n return this.ioHost.notify(msg);\n }\n /**\n * Forward a request to the IoHost, while injection the current action\n */\n requestResponse(msg) {\n return this.ioHost.requestResponse(msg);\n }\n /**\n * Create a new marker from a given registry entry\n */\n span(definition) {\n return new span_1.SpanMaker(this, definition, (ioHost) => IoHelper.fromActionAwareIoHost(ioHost));\n }\n}\nexports.IoHelper = IoHelper;\n/**\n * Wraps an IoHost and creates an IoHelper from it\n */\nfunction asIoHelper(ioHost, action) {\n return IoHelper.fromIoHost(ioHost, action);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW8taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9FQSxnQ0FFQztBQW5FRCwrREFBMEQ7QUFFMUQsaUNBQW1DO0FBS25DOztHQUVHO0FBQ0gsTUFBYSxRQUFRO0lBQ1osTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFlLEVBQUUsTUFBcUI7UUFDN0QsT0FBTyxJQUFJLFFBQVEsQ0FBQztZQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUF1QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxHQUFHLEdBQUc7Z0JBQ04sTUFBTSxFQUFFLE1BQU07YUFDZixDQUFDO1lBQ0YsZUFBZSxFQUFFLENBQUksR0FBMEIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztnQkFDekUsR0FBRyxHQUFHO2dCQUNOLE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBMEI7UUFDNUQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDYSxRQUFRLENBQW9CO0lBRTNCLE1BQU0sQ0FBcUI7SUFFNUMsWUFBb0IsTUFBMEI7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVDQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxHQUErQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBSSxHQUFrQztRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBc0MsVUFBZ0M7UUFDL0UsT0FBTyxJQUFJLGdCQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztDQUNGO0FBbERELDRCQWtEQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE1BQWUsRUFBRSxNQUFxQjtJQUMvRCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElBY3Rpb25Bd2FyZUlvSG9zdCwgSUlvSG9zdCB9IGZyb20gJy4uL2lvLWhvc3QnO1xuaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2UsIElvUmVxdWVzdCB9IGZyb20gJy4uL2lvLW1lc3NhZ2UnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0QWN0aW9uIH0gZnJvbSAnLi4vdG9vbGtpdC1hY3Rpb24nO1xuaW1wb3J0IHsgSW9EZWZhdWx0TWVzc2FnZXMgfSBmcm9tICcuL2lvLWRlZmF1bHQtbWVzc2FnZXMnO1xuaW1wb3J0IHR5cGUgeyBTcGFuRW5kLCBTcGFuRGVmaW5pdGlvbiB9IGZyb20gJy4vc3Bhbic7XG5pbXBvcnQgeyBTcGFuTWFrZXIgfSBmcm9tICcuL3NwYW4nO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25MZXNzTWVzc2FnZTxUPiA9IE9taXQ8SW9NZXNzYWdlPFQ+LCAnYWN0aW9uJz47XG5leHBvcnQgdHlwZSBBY3Rpb25MZXNzUmVxdWVzdDxULCBVPiA9IE9taXQ8SW9SZXF1ZXN0PFQsIFU+LCAnYWN0aW9uJz47XG5cbi8qKlxuICogQSBjbGFzcyBjb250YWluaW5nIGhlbHBlciB0b29scyB0byBpbnRlcmFjdCB3aXRoIElvSG9zdFxuICovXG5leHBvcnQgY2xhc3MgSW9IZWxwZXIgaW1wbGVtZW50cyBJSW9Ib3N0LCBJQWN0aW9uQXdhcmVJb0hvc3Qge1xuICBwdWJsaWMgc3RhdGljIGZyb21Jb0hvc3QoaW9Ib3N0OiBJSW9Ib3N0LCBhY3Rpb246IFRvb2xraXRBY3Rpb24pIHtcbiAgICByZXR1cm4gbmV3IElvSGVscGVyKHtcbiAgICAgIG5vdGlmeTogKG1zZzogSW9NZXNzYWdlPHVua25vd24+KSA9PiBpb0hvc3Qubm90aWZ5KHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIH0pLFxuICAgICAgcmVxdWVzdFJlc3BvbnNlOiA8VD4obXNnOiBJb1JlcXVlc3Q8dW5rbm93biwgVD4pID0+IGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb21BY3Rpb25Bd2FyZUlvSG9zdChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkge1xuICAgIHJldHVybiBuZXcgSW9IZWxwZXIoaW9Ib3N0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaW1wbGlmaWVkIGFjY2VzcyB0byBlbWl0IGRlZmF1bHQgbWVzc2FnZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdHM6IElvRGVmYXVsdE1lc3NhZ2VzO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW9Ib3N0OiBJQWN0aW9uQXdhcmVJb0hvc3Q7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkge1xuICAgIHRoaXMuaW9Ib3N0ID0gaW9Ib3N0O1xuICAgIHRoaXMuZGVmYXVsdHMgPSBuZXcgSW9EZWZhdWx0TWVzc2FnZXModGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogRm9yd2FyZCBhIG1lc3NhZ2UgdG8gdGhlIElvSG9zdCwgd2hpbGUgaW5qZWN0aW9uIHRoZSBjdXJyZW50IGFjdGlvblxuICAgKi9cbiAgcHVibGljIG5vdGlmeShtc2c6IEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9Ib3N0Lm5vdGlmeShtc2cpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcndhcmQgYSByZXF1ZXN0IHRvIHRoZSBJb0hvc3QsIHdoaWxlIGluamVjdGlvbiB0aGUgY3VycmVudCBhY3Rpb25cbiAgICovXG4gIHB1YmxpYyByZXF1ZXN0UmVzcG9uc2U8VD4obXNnOiBBY3Rpb25MZXNzUmVxdWVzdDx1bmtub3duLCBUPik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmlvSG9zdC5yZXF1ZXN0UmVzcG9uc2UobXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgbWFya2VyIGZyb20gYSBnaXZlbiByZWdpc3RyeSBlbnRyeVxuICAgKi9cbiAgcHVibGljIHNwYW48UyBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIFNwYW5FbmQ+KGRlZmluaXRpb246IFNwYW5EZWZpbml0aW9uPFMsIEU+KSB7XG4gICAgcmV0dXJuIG5ldyBTcGFuTWFrZXIodGhpcywgZGVmaW5pdGlvbiwgKGlvSG9zdCkgPT4gSW9IZWxwZXIuZnJvbUFjdGlvbkF3YXJlSW9Ib3N0KGlvSG9zdCkpO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYW4gSW9Ib3N0IGFuZCBjcmVhdGVzIGFuIElvSGVscGVyIGZyb20gaXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzSW9IZWxwZXIoaW9Ib3N0OiBJSW9Ib3N0LCBhY3Rpb246IFRvb2xraXRBY3Rpb24pOiBJb0hlbHBlciB7XG4gIHJldHVybiBJb0hlbHBlci5mcm9tSW9Ib3N0KGlvSG9zdCwgYWN0aW9uKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withoutColor = withoutColor;\nexports.withoutEmojis = withoutEmojis;\nexports.withTrimmedWhitespace = withTrimmedWhitespace;\n/**\n * An IoHost wrapper that strips out ANSI colors and styles from the message before\n * sending the message to the given IoHost\n */\nfunction withoutColor(ioHost) {\n return {\n notify: async (msg) => {\n await ioHost.notify({\n ...msg,\n message: stripColor(msg.message),\n });\n },\n requestResponse: async (msg) => {\n return ioHost.requestResponse({\n ...msg,\n message: stripColor(msg.message),\n });\n },\n };\n}\nfunction stripColor(msg) {\n return msg.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '');\n}\n/**\n * An IoHost wrapper that strips out emojis from the message before\n * sending the message to the given IoHost\n */\nfunction withoutEmojis(ioHost) {\n return {\n notify: async (msg) => {\n await ioHost.notify({\n ...msg,\n message: stripEmojis(msg.message),\n });\n },\n requestResponse: async (msg) => {\n return ioHost.requestResponse({\n ...msg,\n message: stripEmojis(msg.message),\n });\n },\n };\n}\nfunction stripEmojis(msg) {\n // https://www.unicode.org/reports/tr51/#def_emoji_presentation\n return msg.replace(/\\p{Emoji_Presentation}/gu, '');\n}\n/**\n * An IoHost wrapper that trims whitespace at the beginning and end of messages.\n * This is required, since after removing emojis and ANSI colors,\n * we might end up with floating whitespace at either end.\n */\nfunction withTrimmedWhitespace(ioHost) {\n return {\n notify: async (msg) => {\n await ioHost.notify({\n ...msg,\n message: msg.message.trim(),\n });\n },\n requestResponse: async (msg) => {\n return ioHost.requestResponse({\n ...msg,\n message: msg.message.trim(),\n });\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8taG9zdC13cmFwcGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWhvc3Qtd3JhcHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvQ0FlQztBQVVELHNDQWVDO0FBWUQsc0RBZUM7QUF2RUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWU7SUFDMUMsT0FBTztRQUNMLE1BQU0sRUFBRSxLQUFLLEVBQUssR0FBaUIsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDbEIsR0FBRyxHQUFHO2dCQUNOLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUNqQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsZUFBZSxFQUFFLEtBQUssRUFBUSxHQUFvQixFQUFFLEVBQUU7WUFDcEQsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUM1QixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDZFQUE2RSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hHLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQUMsTUFBZTtJQUMzQyxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBSyxHQUFpQixFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNsQixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2FBQ2xDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxlQUFlLEVBQUUsS0FBSyxFQUFRLEdBQW9CLEVBQUUsRUFBRTtZQUNwRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUM7Z0JBQzVCLEdBQUcsR0FBRztnQkFDTixPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBVztJQUM5QiwrREFBK0Q7SUFDL0QsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBZTtJQUNuRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBSyxHQUFpQixFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNsQixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO2FBQzVCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxlQUFlLEVBQUUsS0FBSyxFQUFRLEdBQW9CLEVBQUUsRUFBRTtZQUNwRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUM7Z0JBQzVCLEdBQUcsR0FBRztnQkFDTixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2UsIElvUmVxdWVzdCwgSUlvSG9zdCB9IGZyb20gJy4uLyc7XG5cbi8qKlxuICogQW4gSW9Ib3N0IHdyYXBwZXIgdGhhdCBzdHJpcHMgb3V0IEFOU0kgY29sb3JzIGFuZCBzdHlsZXMgZnJvbSB0aGUgbWVzc2FnZSBiZWZvcmVcbiAqIHNlbmRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIGdpdmVuIElvSG9zdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dENvbG9yKGlvSG9zdDogSUlvSG9zdCk6IElJb0hvc3Qge1xuICByZXR1cm4ge1xuICAgIG5vdGlmeTogYXN5bmMgPFQ+KG1zZzogSW9NZXNzYWdlPFQ+KSA9PiB7XG4gICAgICBhd2FpdCBpb0hvc3Qubm90aWZ5KHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBtZXNzYWdlOiBzdHJpcENvbG9yKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcmVxdWVzdFJlc3BvbnNlOiBhc3luYyA8VCwgVT4obXNnOiBJb1JlcXVlc3Q8VCwgVT4pID0+IHtcbiAgICAgIHJldHVybiBpb0hvc3QucmVxdWVzdFJlc3BvbnNlKHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBtZXNzYWdlOiBzdHJpcENvbG9yKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmlwQ29sb3IobXNnOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbXNnLnJlcGxhY2UoL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZywgJycpO1xufVxuXG4vKipcbiAqIEFuIElvSG9zdCB3cmFwcGVyIHRoYXQgc3RyaXBzIG91dCBlbW9qaXMgZnJvbSB0aGUgbWVzc2FnZSBiZWZvcmVcbiAqIHNlbmRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIGdpdmVuIElvSG9zdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dEVtb2ppcyhpb0hvc3Q6IElJb0hvc3QpOiBJSW9Ib3N0IHtcbiAgcmV0dXJuIHtcbiAgICBub3RpZnk6IGFzeW5jIDxUPihtc2c6IElvTWVzc2FnZTxUPikgPT4ge1xuICAgICAgYXdhaXQgaW9Ib3N0Lm5vdGlmeSh7XG4gICAgICAgIC4uLm1zZyxcbiAgICAgICAgbWVzc2FnZTogc3RyaXBFbW9qaXMobXNnLm1lc3NhZ2UpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICByZXF1ZXN0UmVzcG9uc2U6IGFzeW5jIDxULCBVPihtc2c6IElvUmVxdWVzdDxULCBVPikgPT4ge1xuICAgICAgcmV0dXJuIGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIG1lc3NhZ2U6IHN0cmlwRW1vamlzKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmlwRW1vamlzKG1zZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjUxLyNkZWZfZW1vamlfcHJlc2VudGF0aW9uXG4gIHJldHVybiBtc2cucmVwbGFjZSgvXFxwe0Vtb2ppX1ByZXNlbnRhdGlvbn0vZ3UsICcnKTtcbn1cblxuLyoqXG4gKiBBbiBJb0hvc3Qgd3JhcHBlciB0aGF0IHRyaW1zIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIG1lc3NhZ2VzLlxuICogVGhpcyBpcyByZXF1aXJlZCwgc2luY2UgYWZ0ZXIgcmVtb3ZpbmcgZW1vamlzIGFuZCBBTlNJIGNvbG9ycyxcbiAqIHdlIG1pZ2h0IGVuZCB1cCB3aXRoIGZsb2F0aW5nIHdoaXRlc3BhY2UgYXQgZWl0aGVyIGVuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhUcmltbWVkV2hpdGVzcGFjZShpb0hvc3Q6IElJb0hvc3QpOiBJSW9Ib3N0IHtcbiAgcmV0dXJuIHtcbiAgICBub3RpZnk6IGFzeW5jIDxUPihtc2c6IElvTWVzc2FnZTxUPikgPT4ge1xuICAgICAgYXdhaXQgaW9Ib3N0Lm5vdGlmeSh7XG4gICAgICAgIC4uLm1zZyxcbiAgICAgICAgbWVzc2FnZTogbXNnLm1lc3NhZ2UudHJpbSgpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICByZXF1ZXN0UmVzcG9uc2U6IGFzeW5jIDxULCBVPihtc2c6IElvUmVxdWVzdDxULCBVPikgPT4ge1xuICAgICAgcmV0dXJuIGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIG1lc3NhZ2U6IG1zZy5tZXNzYWdlLnRyaW0oKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMessageRelevantForLevel = isMessageRelevantForLevel;\n/**\n * Keep this list ordered from most to least verbose.\n * Every level \"includes\" all of the levels below it.\n * This is used to compare levels of messages to determine what should be logged.\n */\nconst levels = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'result',\n 'error',\n];\n// compare levels helper\n// helper to convert the array into a map with numbers\nconst orderedLevels = Object.fromEntries(Object.entries(levels).map(a => a.reverse()));\nfunction compareFn(a, b) {\n return orderedLevels[a] - orderedLevels[b];\n}\n/**\n * Determines if a message is relevant for the given log level.\n *\n * @param msg - The message to compare.\n * @param level - The level to compare against.\n * @returns true if the message is relevant for the given level.\n */\nfunction isMessageRelevantForLevel(msg, level) {\n return compareFn(msg.level, level) >= 0;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV2ZWwtcHJpb3JpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsZXZlbC1wcmlvcml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThCQSw4REFFQztBQTlCRDs7OztHQUlHO0FBQ0gsTUFBTSxNQUFNLEdBQUc7SUFDYixPQUFPO0lBQ1AsT0FBTztJQUNQLE1BQU07SUFDTixNQUFNO0lBQ04sUUFBUTtJQUNSLE9BQU87Q0FDQyxDQUFDO0FBRVgsd0JBQXdCO0FBQ3hCLHNEQUFzRDtBQUN0RCxNQUFNLGFBQWEsR0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUgsU0FBUyxTQUFTLENBQUMsQ0FBaUIsRUFBRSxDQUFpQjtJQUNyRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLEdBQThCLEVBQUUsS0FBcUI7SUFDN0YsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW9NZXNzYWdlTGV2ZWwgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIEtlZXAgdGhpcyBsaXN0IG9yZGVyZWQgZnJvbSBtb3N0IHRvIGxlYXN0IHZlcmJvc2UuXG4gKiBFdmVyeSBsZXZlbCBcImluY2x1ZGVzXCIgYWxsIG9mIHRoZSBsZXZlbHMgYmVsb3cgaXQuXG4gKiBUaGlzIGlzIHVzZWQgdG8gY29tcGFyZSBsZXZlbHMgb2YgbWVzc2FnZXMgdG8gZGV0ZXJtaW5lIHdoYXQgc2hvdWxkIGJlIGxvZ2dlZC5cbiAqL1xuY29uc3QgbGV2ZWxzID0gW1xuICAndHJhY2UnLFxuICAnZGVidWcnLFxuICAnaW5mbycsXG4gICd3YXJuJyxcbiAgJ3Jlc3VsdCcsXG4gICdlcnJvcicsXG5dIGFzIGNvbnN0O1xuXG4vLyBjb21wYXJlIGxldmVscyBoZWxwZXJcbi8vIGhlbHBlciB0byBjb252ZXJ0IHRoZSBhcnJheSBpbnRvIGEgbWFwIHdpdGggbnVtYmVyc1xuY29uc3Qgb3JkZXJlZExldmVsczogUmVjb3JkPHR5cGVvZiBsZXZlbHNbbnVtYmVyXSwgbnVtYmVyPiA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhsZXZlbHMpLm1hcChhID0+IGEucmV2ZXJzZSgpKSk7XG5mdW5jdGlvbiBjb21wYXJlRm4oYTogSW9NZXNzYWdlTGV2ZWwsIGI6IElvTWVzc2FnZUxldmVsKTogbnVtYmVyIHtcbiAgcmV0dXJuIG9yZGVyZWRMZXZlbHNbYV0gLSBvcmRlcmVkTGV2ZWxzW2JdO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBtZXNzYWdlIGlzIHJlbGV2YW50IGZvciB0aGUgZ2l2ZW4gbG9nIGxldmVsLlxuICpcbiAqIEBwYXJhbSBtc2cgLSBUaGUgbWVzc2FnZSB0byBjb21wYXJlLlxuICogQHBhcmFtIGxldmVsIC0gVGhlIGxldmVsIHRvIGNvbXBhcmUgYWdhaW5zdC5cbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG1lc3NhZ2UgaXMgcmVsZXZhbnQgZm9yIHRoZSBnaXZlbiBsZXZlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWVzc2FnZVJlbGV2YW50Rm9yTGV2ZWwobXNnOiB7IGxldmVsOiBJb01lc3NhZ2VMZXZlbCB9LCBsZXZlbDogSW9NZXNzYWdlTGV2ZWwpOiBib29sZWFuIHtcbiAgcmV0dXJuIGNvbXBhcmVGbihtc2cubGV2ZWwsIGxldmVsKSA+PSAwO1xufVxuXG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.confirm = exports.result = exports.error = exports.warn = exports.info = exports.debug = exports.trace = void 0;\nexports.question = question;\n/**\n * Produce an IoMessageMaker for the provided level and code info.\n */\nfunction message(level, details) {\n const maker = (text, data) => ({\n time: new Date(),\n level,\n code: details.code,\n message: text,\n data,\n });\n return {\n ...details,\n level,\n msg: maker,\n is: (m) => m.code === details.code,\n };\n}\nconst trace = (details) => message('trace', details);\nexports.trace = trace;\nconst debug = (details) => message('debug', details);\nexports.debug = debug;\nconst info = (details) => message('info', details);\nexports.info = info;\nconst warn = (details) => message('warn', details);\nexports.warn = warn;\nconst error = (details) => message('error', details);\nexports.error = error;\nconst result = (details) => message('result', details);\nexports.result = result;\n/**\n * Produce an IoRequestMaker for the provided level and request info.\n */\nfunction request(level, details) {\n const maker = (text, data) => ({\n time: new Date(),\n level,\n code: details.code,\n message: text,\n data,\n defaultResponse: details.defaultResponse,\n });\n return {\n ...details,\n level,\n req: maker,\n };\n}\n/**\n * A request that is a simple yes/no question, with the expectation that 'yes' is the default.\n */\nconst confirm = (details) => request('info', {\n ...details,\n defaultResponse: true,\n});\nexports.confirm = confirm;\n/**\n * An open ended question with a string answer, typically provided on-demand by a user.\n */\nfunction question(details) {\n const level = 'info';\n const maker = (text, data, defaultResponse) => ({\n time: new Date(),\n level,\n code: details.code,\n message: text,\n data,\n defaultResponse,\n });\n return {\n ...details,\n level,\n req: maker,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1tYWtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lc3NhZ2UtbWFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUpBLDRCQWdCQztBQW5IRDs7R0FFRztBQUNILFNBQVMsT0FBTyxDQUFpQixLQUFxQixFQUFFLE9BQWlCO0lBQ3ZFLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDaEIsS0FBSztRQUNMLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUk7S0FDb0IsQ0FBQSxDQUFDO0lBRTNCLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixLQUFLO1FBQ0wsR0FBRyxFQUFFLEtBQVk7UUFDakIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSTtLQUN0RCxDQUFDO0FBQ0osQ0FBQztBQXlCTSxNQUFNLEtBQUssR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTdGLFFBQUEsS0FBSyxTQUF3RjtBQUNuRyxNQUFNLEtBQUssR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTdGLFFBQUEsS0FBSyxTQUF3RjtBQUNuRyxNQUFNLElBQUksR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTNGLFFBQUEsSUFBSSxRQUF1RjtBQUNqRyxNQUFNLElBQUksR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTNGLFFBQUEsSUFBSSxRQUF1RjtBQUNqRyxNQUFNLEtBQUssR0FBRyxDQUFpQixPQUFrQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTdGLFFBQUEsS0FBSyxTQUF3RjtBQUNuRyxNQUFNLE1BQU0sR0FBRyxDQUFvQyxPQUEyQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUksUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQTNHLFFBQUEsTUFBTSxVQUFxRztBQW9CeEg7O0dBRUc7QUFDSCxTQUFTLE9BQU8sQ0FBcUMsS0FBcUIsRUFBRSxPQUF1QjtJQUNqRyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxJQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1FBQ2hCLEtBQUs7UUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsT0FBTyxFQUFFLElBQUk7UUFDYixJQUFJO1FBQ0osZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO0tBQ2IsQ0FBQSxDQUFDO0lBRTlCLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixLQUFLO1FBQ0wsR0FBRyxFQUFFLEtBQVk7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQW9DLE9BQWdFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBYSxNQUFNLEVBQUU7SUFDMUosR0FBRyxPQUFPO0lBQ1YsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyxDQUFDO0FBSFUsUUFBQSxPQUFPLFdBR2pCO0FBRUg7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUksT0FBaUI7SUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3JCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQU8sRUFBRSxlQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtRQUNoQixLQUFLO1FBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsSUFBSTtRQUNKLGVBQWU7S0FDaUIsQ0FBQSxDQUFDO0lBRW5DLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixLQUFLO1FBQ0wsR0FBRyxFQUFFLEtBQVk7S0FDbEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElvTWVzc2FnZSwgSW9NZXNzYWdlQ29kZSwgSW9NZXNzYWdlTGV2ZWwgfSBmcm9tICcuLi9pby1tZXNzYWdlJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uTGVzc01lc3NhZ2UsIEFjdGlvbkxlc3NSZXF1ZXN0IH0gZnJvbSAnLi9pby1oZWxwZXInO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIGZvciBlYWNoIElPIE1lc3NhZ2UgQ29kZS5cbiAqL1xuaW50ZXJmYWNlIENvZGVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGNvZGUuXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBJb01lc3NhZ2VDb2RlO1xuXG4gIC8qKlxuICAgKiBBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBtZWFuaW5nIG9mIHRoaXMgSU8gTWVzc2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYXlsb2FkIGludGVyZmFjZSwgaWYgYXBwbGljYWJsZS5cbiAgICogU29tZSBJbyBNZXNzYWdlcyBpbmNsdWRlIGEgcGF5bG9hZCwgd2l0aCBhIHNwZWNpZmljIGludGVyZmFjZS4gVGhlIG5hbWUgb2ZcbiAgICogdGhlIGludGVyZmFjZSBpcyBzcGVjaWZpZWQgaGVyZSBzbyB0aGF0IGl0IGNhbiBiZSBsaW5rZWQgd2l0aCB0aGUgbWVzc2FnZVxuICAgKiB3aGVuIGRvY3VtZW50YXRpb24gaXMgZ2VuZXJhdGVkLlxuICAgKlxuICAgKiBUaGUgaW50ZXJmYWNlIF9tdXN0XyBiZSBleHBvc2VkIGRpcmVjdGx5IGZyb20gdG9vbGtpdC1saWIsIHNvIHRoYXQgaXQgd2lsbFxuICAgKiBoYXZlIGEgZG9jdW1lbnRhdGlvbiBwYWdlIGdlbmVyYXRlZCAodGhhdCBjYW4gYmUgbGlua2VkIHRvKS5cbiAgICovXG4gIHJlYWRvbmx5IGludGVyZmFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgZWFjaCBJTyBNZXNzYWdlXG4gKi9cbmludGVyZmFjZSBNZXNzYWdlSW5mbyBleHRlbmRzIENvZGVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGxldmVsXG4gICAqL1xuICByZWFkb25seSBsZXZlbDogSW9NZXNzYWdlTGV2ZWw7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIHRoYXQgY2FuIHByb2R1Y2UgbWVzc2FnZXMgZm9yIGEgc3BlY2lmaWMgY29kZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJb01lc3NhZ2VNYWtlcjxUPiBleHRlbmRzIE1lc3NhZ2VJbmZvIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG1lc3NhZ2UgZm9yIHRoaXMgY29kZSwgd2l0aCBvciB3aXRob3V0IHBheWxvYWQuXG4gICAqL1xuICBtc2c6IFtUXSBleHRlbmRzIFtBYnNlbnREYXRhXSA/IChtZXNzYWdlOiBzdHJpbmcpID0+IEFjdGlvbkxlc3NNZXNzYWdlPEFic2VudERhdGE+IDogKG1lc3NhZ2U6IHN0cmluZywgZGF0YTogVCkgPT4gQWN0aW9uTGVzc01lc3NhZ2U8VD47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYElvTWVzc2FnZWAgaW5zdGFuY2UgbWF0Y2hlcyB0aGUgY3VycmVudCBtZXNzYWdlIGRlZmluaXRpb25cbiAgICovXG4gIGlzKHg6IElvTWVzc2FnZTx1bmtub3duPik6IHggaXMgSW9NZXNzYWdlPFQ+O1xufVxuXG4vKipcbiAqIFByb2R1Y2UgYW4gSW9NZXNzYWdlTWFrZXIgZm9yIHRoZSBwcm92aWRlZCBsZXZlbCBhbmQgY29kZSBpbmZvLlxuICovXG5mdW5jdGlvbiBtZXNzYWdlPFQgPSBBYnNlbnREYXRhPihsZXZlbDogSW9NZXNzYWdlTGV2ZWwsIGRldGFpbHM6IENvZGVJbmZvKTogSW9NZXNzYWdlTWFrZXI8VD4ge1xuICBjb25zdCBtYWtlciA9ICh0ZXh0OiBzdHJpbmcsIGRhdGE6IFQpID0+ICh7XG4gICAgdGltZTogbmV3IERhdGUoKSxcbiAgICBsZXZlbCxcbiAgICBjb2RlOiBkZXRhaWxzLmNvZGUsXG4gICAgbWVzc2FnZTogdGV4dCxcbiAgICBkYXRhLFxuICB9IGFzIEFjdGlvbkxlc3NNZXNzYWdlPFQ+KTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRldGFpbHMsXG4gICAgbGV2ZWwsXG4gICAgbXNnOiBtYWtlciBhcyBhbnksXG4gICAgaXM6IChtKTogbSBpcyBJb01lc3NhZ2U8VD4gPT4gbS5jb2RlID09PSBkZXRhaWxzLmNvZGUsXG4gIH07XG59XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgaXMgaW1wb3NzaWJsZSBmb3IgYSB1c2VyIHRvIHJlcGxpY2F0ZVxuICogVGhpcyBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IHJlc3VsdHMgYWx3YXlzIGhhdmUgYSBwcm9wZXIgdHlwZSBnZW5lcmljIGRlY2xhcmVkLlxuICovXG5kZWNsYXJlIGNvbnN0IHByaXZhdGVLZXk6IHVuaXF1ZSBzeW1ib2w7XG5leHBvcnQgdHlwZSBJbXBvc3NpYmxlVHlwZSA9IHtcbiAgcmVhZG9ubHkgW3ByaXZhdGVLZXldOiB0eXBlb2YgcHJpdmF0ZUtleTtcbn07XG5cbi8vIENyZWF0ZSBgSW9NZXNzYWdlTWFrZXJgcyBmb3IgYSBnaXZlbiBsZXZlbCBhbmQgdHlwZSBjaGVjayB0aGF0IGNhbGxzIHdpdGggcGF5bG9hZCBhcmUgdXNpbmcgdGhlIGNvcnJlY3QgaW50ZXJmYWNlXG50eXBlIENvZGVJbmZvTWF5YmVJbnRlcmZhY2U8VD4gPSBbVF0gZXh0ZW5kcyBbQWJzZW50RGF0YV0gPyBPbWl0PENvZGVJbmZvLCAnaW50ZXJmYWNlJz4gOiBSZXF1aXJlZDxDb2RlSW5mbz47XG5cbi8qKlxuICogVGhlIHR5cGUgd2UgdXNlIHRvIHJlcHJlc2VudCBhbiBhYnNlbnQgZGF0YSBmaWVsZFxuICpcbiAqIFRoaXMgaXMgaGVyZSB0byBtYWtlIGl0IGVhc3kgdG8gY2hhbmdlIGJldHdlZW4gYHVuZGVmaW5lZGAsIGB2b2lkYFxuICogYW5kIGBuZXZlcmAuXG4gKlxuICogTm90IGEgbG90IG9mIGRpZmZlcmVuY2UgYmV0d2VlbiBgdW5kZWZpbmVkYCBhbmQgYHZvaWRgLCBidXQgYHZvaWRgXG4gKiByZWFkcyBiZXR0ZXIuXG4gKi9cbnR5cGUgQWJzZW50RGF0YSA9IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCB0cmFjZSA9IDxUID0gQWJzZW50RGF0YT4oZGV0YWlsczogQ29kZUluZm9NYXliZUludGVyZmFjZTxUPikgPT4gbWVzc2FnZTxUPigndHJhY2UnLCBkZXRhaWxzKTtcbmV4cG9ydCBjb25zdCBkZWJ1ZyA9IDxUID0gQWJzZW50RGF0YT4oZGV0YWlsczogQ29kZUluZm9NYXliZUludGVyZmFjZTxUPikgPT4gbWVzc2FnZTxUPignZGVidWcnLCBkZXRhaWxzKTtcbmV4cG9ydCBjb25zdCBpbmZvID0gPFQgPSBBYnNlbnREYXRhPihkZXRhaWxzOiBDb2RlSW5mb01heWJlSW50ZXJmYWNlPFQ+KSA9PiBtZXNzYWdlPFQ+KCdpbmZvJywgZGV0YWlscyk7XG5leHBvcnQgY29uc3Qgd2FybiA9IDxUID0gQWJzZW50RGF0YT4oZGV0YWlsczogQ29kZUluZm9NYXliZUludGVyZmFjZTxUPikgPT4gbWVzc2FnZTxUPignd2FybicsIGRldGFpbHMpO1xuZXhwb3J0IGNvbnN0IGVycm9yID0gPFQgPSBBYnNlbnREYXRhPihkZXRhaWxzOiBDb2RlSW5mb01heWJlSW50ZXJmYWNlPFQ+KSA9PiBtZXNzYWdlPFQ+KCdlcnJvcicsIGRldGFpbHMpO1xuZXhwb3J0IGNvbnN0IHJlc3VsdCA9IDxUIGV4dGVuZHMgb2JqZWN0ID0gSW1wb3NzaWJsZVR5cGU+KGRldGFpbHM6IFJlcXVpcmVkPENvZGVJbmZvPikgPT4gbWVzc2FnZTxUPigncmVzdWx0JywgZGV0YWlscyk7XG5cbmludGVyZmFjZSBSZXF1ZXN0SW5mbzxVPiBleHRlbmRzIENvZGVJbmZvIHtcbiAgcmVhZG9ubHkgZGVmYXVsdFJlc3BvbnNlOiBVO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSB0aGF0IGNhbiBwcm9kdWNlIHJlcXVlc3RzIGZvciBhIHNwZWNpZmljIGNvZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW9SZXF1ZXN0TWFrZXI8VCwgVT4gZXh0ZW5kcyBNZXNzYWdlSW5mbyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciB0aGlzIGNvZGUsIHdpdGggb3Igd2l0aG91dCBwYXlsb2FkLlxuICAgKi9cbiAgcmVxOiBbVF0gZXh0ZW5kcyBbQWJzZW50RGF0YV1cbiAgICA/IChtZXNzYWdlOiBzdHJpbmcpID0+IEFjdGlvbkxlc3NNZXNzYWdlPEFic2VudERhdGE+XG4gICAgOiBbVV0gZXh0ZW5kcyBbYm9vbGVhbl1cbiAgICAgID8gKG1lc3NhZ2U6IHN0cmluZywgZGF0YTogVCkgPT4gQWN0aW9uTGVzc1JlcXVlc3Q8VCwgVT5cbiAgICAgIDogKG1lc3NhZ2U6IHN0cmluZywgZGF0YTogVCwgZGVmYXVsdFJlc3BvbnNlOiBVKSA9PiBBY3Rpb25MZXNzUmVxdWVzdDxULCBVPjtcbn1cblxuLyoqXG4gKiBQcm9kdWNlIGFuIElvUmVxdWVzdE1ha2VyIGZvciB0aGUgcHJvdmlkZWQgbGV2ZWwgYW5kIHJlcXVlc3QgaW5mby5cbiAqL1xuZnVuY3Rpb24gcmVxdWVzdDxUID0gQWJzZW50RGF0YSwgVSA9IEltcG9zc2libGVUeXBlPihsZXZlbDogSW9NZXNzYWdlTGV2ZWwsIGRldGFpbHM6IFJlcXVlc3RJbmZvPFU+KTogSW9SZXF1ZXN0TWFrZXI8VCwgVT4ge1xuICBjb25zdCBtYWtlciA9ICh0ZXh0OiBzdHJpbmcsIGRhdGE6IFQpID0+ICh7XG4gICAgdGltZTogbmV3IERhdGUoKSxcbiAgICBsZXZlbCxcbiAgICBjb2RlOiBkZXRhaWxzLmNvZGUsXG4gICAgbWVzc2FnZTogdGV4dCxcbiAgICBkYXRhLFxuICAgIGRlZmF1bHRSZXNwb25zZTogZGV0YWlscy5kZWZhdWx0UmVzcG9uc2UsXG4gIH0gYXMgQWN0aW9uTGVzc1JlcXVlc3Q8VCwgVT4pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZGV0YWlscyxcbiAgICBsZXZlbCxcbiAgICByZXE6IG1ha2VyIGFzIGFueSxcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHJlcXVlc3QgdGhhdCBpcyBhIHNpbXBsZSB5ZXMvbm8gcXVlc3Rpb24sIHdpdGggdGhlIGV4cGVjdGF0aW9uIHRoYXQgJ3llcycgaXMgdGhlIGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBjb25zdCBjb25maXJtID0gPFQgZXh0ZW5kcyBvYmplY3QgPSBJbXBvc3NpYmxlVHlwZT4oZGV0YWlsczogUmVxdWlyZWQ8T21pdDxSZXF1ZXN0SW5mbzxib29sZWFuPiwgJ2RlZmF1bHRSZXNwb25zZSc+PikgPT4gcmVxdWVzdDxULCBib29sZWFuPignaW5mbycsIHtcbiAgLi4uZGV0YWlscyxcbiAgZGVmYXVsdFJlc3BvbnNlOiB0cnVlLFxufSk7XG5cbi8qKlxuICogQW4gb3BlbiBlbmRlZCBxdWVzdGlvbiB3aXRoIGEgc3RyaW5nIGFuc3dlciwgdHlwaWNhbGx5IHByb3ZpZGVkIG9uLWRlbWFuZCBieSBhIHVzZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWVzdGlvbjxUPihkZXRhaWxzOiBDb2RlSW5mbyk6IElvUmVxdWVzdE1ha2VyPFQsIHN0cmluZz4ge1xuICBjb25zdCBsZXZlbCA9ICdpbmZvJztcbiAgY29uc3QgbWFrZXIgPSAodGV4dDogc3RyaW5nLCBkYXRhOiBULCBkZWZhdWx0UmVzcG9uc2U6IHN0cmluZykgPT4gKHtcbiAgICB0aW1lOiBuZXcgRGF0ZSgpLFxuICAgIGxldmVsLFxuICAgIGNvZGU6IGRldGFpbHMuY29kZSxcbiAgICBtZXNzYWdlOiB0ZXh0LFxuICAgIGRhdGEsXG4gICAgZGVmYXVsdFJlc3BvbnNlLFxuICB9IGFzIEFjdGlvbkxlc3NSZXF1ZXN0PFQsIHN0cmluZz4pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZGV0YWlscyxcbiAgICBsZXZlbCxcbiAgICByZXE6IG1ha2VyIGFzIGFueSxcbiAgfTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPAN = exports.IO = void 0;\nconst make = require(\"./message-maker\");\n/**\n * We have a rough system by which we assign message codes:\n * - First digit groups messages by action, e.g. synth or deploy\n * - X000-X009 are reserved for timings\n * - X900-X999 are reserved for results\n */\nexports.IO = {\n // warnings & errors\n CDK_TOOLKIT_W0100: make.warn({\n code: 'CDK_TOOLKIT_W0100',\n description: 'Credential plugin warnings',\n }),\n // 1: Synth (1xxx)\n CDK_TOOLKIT_I1000: make.info({\n code: 'CDK_TOOLKIT_I1000',\n description: 'Provides synthesis times.',\n interface: 'Operation',\n }),\n CDK_TOOLKIT_I1001: make.trace({\n code: 'CDK_TOOLKIT_I1001',\n description: 'Cloud Assembly synthesis is starting',\n interface: 'StackSelectionDetails',\n }),\n CDK_TOOLKIT_I1901: make.result({\n code: 'CDK_TOOLKIT_I1901',\n description: 'Provides stack data',\n interface: 'StackAndAssemblyData',\n }),\n CDK_TOOLKIT_I1902: make.result({\n code: 'CDK_TOOLKIT_I1902',\n description: 'Successfully deployed stacks',\n interface: 'AssemblyData',\n }),\n // 2: List (2xxx)\n CDK_TOOLKIT_I2901: make.result({\n code: 'CDK_TOOLKIT_I2901',\n description: 'Provides details on the selected stacks and their dependencies',\n interface: 'StackDetailsPayload',\n }),\n // 3: Import & Migrate\n CDK_TOOLKIT_I3100: make.confirm({\n code: 'CDK_TOOLKIT_I3100',\n description: 'Confirm the import of a specific resource',\n interface: 'ResourceImportRequest',\n }),\n CDK_TOOLKIT_I3110: make.question({\n code: 'CDK_TOOLKIT_I3110',\n description: 'Additional information is needed to identify a resource',\n interface: 'ResourceIdentificationRequest',\n }),\n CDK_TOOLKIT_E3900: make.error({\n code: 'CDK_TOOLKIT_E3900',\n description: 'Resource import failed',\n interface: 'ErrorPayload',\n }),\n // 4: Diff (40xx - 44xx)\n CDK_TOOLKIT_I4000: make.trace({\n code: 'CDK_TOOLKIT_I4000',\n description: 'Diff stacks is starting',\n interface: 'StackSelectionDetails',\n }),\n CDK_TOOLKIT_I4001: make.result({\n code: 'CDK_TOOLKIT_I4001',\n description: 'Output of the diff command',\n interface: 'DiffResult',\n }),\n CDK_TOOLKIT_I4002: make.result({\n code: 'CDK_TOOLKIT_I4002',\n description: 'The diff for a single stack',\n interface: 'StackDiff',\n }),\n // 4: Drift (45xx - 49xx)\n CDK_TOOLKIT_I4500: make.trace({\n code: 'CDK_TOOLKIT_I4500',\n description: 'Drift detection is starting',\n interface: 'StackSelectionDetails',\n }),\n CDK_TOOLKIT_I4509: make.result({\n code: 'CDK_TOOLKIT_I4592',\n description: 'Results of the drift',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I4590: make.result({\n code: 'CDK_TOOLKIT_I4590',\n description: 'Results of a stack drift',\n interface: 'DriftResultPayload',\n }),\n CDK_TOOLKIT_W4591: make.warn({\n code: 'CDK_TOOLKIT_W4591',\n description: 'Missing drift result fort a stack.',\n interface: 'SingleStack',\n }),\n // 5: Deploy & Watch (5xxx)\n CDK_TOOLKIT_I5000: make.info({\n code: 'CDK_TOOLKIT_I5000',\n description: 'Provides deployment times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I5001: make.info({\n code: 'CDK_TOOLKIT_I5001',\n description: 'Provides total time in deploy action, including synth and rollback',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I5002: make.info({\n code: 'CDK_TOOLKIT_I5002',\n description: 'Provides time for resource migration',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_W5021: make.warn({\n code: 'CDK_TOOLKIT_W5021',\n description: 'Empty non-existent stack, deployment is skipped',\n }),\n CDK_TOOLKIT_W5022: make.warn({\n code: 'CDK_TOOLKIT_W5022',\n description: 'Empty existing stack, stack will be destroyed',\n }),\n CDK_TOOLKIT_I5031: make.info({\n code: 'CDK_TOOLKIT_I5031',\n description: 'Informs about any log groups that are traced as part of the deployment',\n }),\n CDK_TOOLKIT_I5032: make.debug({\n code: 'CDK_TOOLKIT_I5032',\n description: 'Start monitoring log groups',\n interface: 'CloudWatchLogMonitorControlEvent',\n }),\n CDK_TOOLKIT_I5033: make.info({\n code: 'CDK_TOOLKIT_I5033',\n description: 'A log event received from Cloud Watch',\n interface: 'CloudWatchLogEvent',\n }),\n CDK_TOOLKIT_I5034: make.debug({\n code: 'CDK_TOOLKIT_I5034',\n description: 'Stop monitoring log groups',\n interface: 'CloudWatchLogMonitorControlEvent',\n }),\n CDK_TOOLKIT_E5035: make.error({\n code: 'CDK_TOOLKIT_E5035',\n description: 'A log monitoring error',\n interface: 'ErrorPayload',\n }),\n CDK_TOOLKIT_I5050: make.confirm({\n code: 'CDK_TOOLKIT_I5050',\n description: 'Confirm rollback during deployment',\n interface: 'ConfirmationRequest',\n }),\n CDK_TOOLKIT_I5060: make.confirm({\n code: 'CDK_TOOLKIT_I5060',\n description: 'Confirm deploy security sensitive changes',\n interface: 'DeployConfirmationRequest',\n }),\n CDK_TOOLKIT_I5100: make.info({\n code: 'CDK_TOOLKIT_I5100',\n description: 'Stack deploy progress',\n interface: 'StackDeployProgress',\n }),\n // Assets (52xx)\n CDK_TOOLKIT_I5210: make.trace({\n code: 'CDK_TOOLKIT_I5210',\n description: 'Started building a specific asset',\n interface: 'BuildAsset',\n }),\n CDK_TOOLKIT_I5211: make.trace({\n code: 'CDK_TOOLKIT_I5211',\n description: 'Building the asset has completed',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I5220: make.trace({\n code: 'CDK_TOOLKIT_I5220',\n description: 'Started publishing a specific asset',\n interface: 'PublishAsset',\n }),\n CDK_TOOLKIT_I5221: make.trace({\n code: 'CDK_TOOLKIT_I5221',\n description: 'Publishing the asset has completed',\n interface: 'Duration',\n }),\n CDK_ASSETS_I5270: make.info({\n code: 'CDK_ASSETS_I5270',\n description: 'Publishing the asset has started',\n interface: 'PublishAssetEvent',\n }),\n CDK_ASSETS_I5271: make.debug({\n code: 'CDK_ASSETS_I5271',\n description: 'Debug messaged emitted during publishing of the asset',\n interface: 'PublishAssetEvent',\n }),\n CDK_ASSETS_I5275: make.info({\n code: 'CDK_ASSETS_I5275',\n description: 'Publishing the asset has completed successfully',\n interface: 'PublishAssetEvent',\n }),\n CDK_ASSETS_E5279: make.error({\n code: 'CDK_ASSETS_E5279',\n description: 'There was an error while publishing the asset',\n interface: 'PublishAssetEvent',\n }),\n // Watch (53xx)\n CDK_TOOLKIT_I5310: make.debug({\n code: 'CDK_TOOLKIT_I5310',\n description: 'The computed settings used for file watching',\n interface: 'WatchSettings',\n }),\n CDK_TOOLKIT_I5311: make.info({\n code: 'CDK_TOOLKIT_I5311',\n description: 'File watching started',\n interface: 'FileWatchEvent',\n }),\n CDK_TOOLKIT_I5312: make.info({\n code: 'CDK_TOOLKIT_I5312',\n description: 'File event detected, starting deployment',\n interface: 'FileWatchEvent',\n }),\n CDK_TOOLKIT_I5313: make.info({\n code: 'CDK_TOOLKIT_I5313',\n description: 'File event detected during active deployment, changes are queued',\n interface: 'FileWatchEvent',\n }),\n CDK_TOOLKIT_I5314: make.info({\n code: 'CDK_TOOLKIT_I5314',\n description: 'Initial watch deployment started',\n }),\n CDK_TOOLKIT_I5315: make.info({\n code: 'CDK_TOOLKIT_I5315',\n description: 'Queued watch deployment started',\n }),\n // Hotswap (54xx)\n CDK_TOOLKIT_I5400: make.trace({\n code: 'CDK_TOOLKIT_I5400',\n description: 'Attempting a hotswap deployment',\n interface: 'HotswapDeploymentAttempt',\n }),\n CDK_TOOLKIT_I5401: make.trace({\n code: 'CDK_TOOLKIT_I5401',\n description: 'Computed details for the hotswap deployment',\n interface: 'HotswapDeploymentDetails',\n }),\n CDK_TOOLKIT_I5402: make.info({\n code: 'CDK_TOOLKIT_I5402',\n description: 'A hotswappable change is processed as part of a hotswap deployment',\n interface: 'HotswappableChange',\n }),\n CDK_TOOLKIT_I5403: make.info({\n code: 'CDK_TOOLKIT_I5403',\n description: 'The hotswappable change has completed processing',\n interface: 'HotswappableChange',\n }),\n CDK_TOOLKIT_I5410: make.info({\n code: 'CDK_TOOLKIT_I5410',\n description: 'Hotswap deployment has ended, a full deployment might still follow if needed',\n interface: 'HotswapResult',\n }),\n // Stack Monitor (55xx)\n CDK_TOOLKIT_I5501: make.info({\n code: 'CDK_TOOLKIT_I5501',\n description: 'Stack Monitoring: Start monitoring of a single stack',\n interface: 'StackMonitoringControlEvent',\n }),\n CDK_TOOLKIT_I5502: make.info({\n code: 'CDK_TOOLKIT_I5502',\n description: 'Stack Monitoring: Activity event for a single stack',\n interface: 'StackActivity',\n }),\n CDK_TOOLKIT_I5503: make.info({\n code: 'CDK_TOOLKIT_I5503',\n description: 'Stack Monitoring: Finished monitoring of a single stack',\n interface: 'StackMonitoringControlEvent',\n }),\n // Success (59xx)\n CDK_TOOLKIT_I5900: make.result({\n code: 'CDK_TOOLKIT_I5900',\n description: 'Deployment results on success',\n interface: 'SuccessfulDeployStackResult',\n }),\n CDK_TOOLKIT_I5901: make.info({\n code: 'CDK_TOOLKIT_I5901',\n description: 'Generic deployment success messages',\n }),\n CDK_TOOLKIT_W5400: make.warn({\n code: 'CDK_TOOLKIT_W5400',\n description: 'Hotswap disclosure message',\n }),\n CDK_TOOLKIT_E5001: make.error({\n code: 'CDK_TOOLKIT_E5001',\n description: 'No stacks found',\n }),\n CDK_TOOLKIT_E5500: make.error({\n code: 'CDK_TOOLKIT_E5500',\n description: 'Stack Monitoring error',\n interface: 'ErrorPayload',\n }),\n // 6: Rollback (6xxx)\n CDK_TOOLKIT_I6000: make.info({\n code: 'CDK_TOOLKIT_I6000',\n description: 'Provides rollback times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I6100: make.info({\n code: 'CDK_TOOLKIT_I6100',\n description: 'Stack rollback progress',\n interface: 'StackRollbackProgress',\n }),\n CDK_TOOLKIT_E6001: make.error({\n code: 'CDK_TOOLKIT_E6001',\n description: 'No stacks found',\n }),\n CDK_TOOLKIT_E6900: make.error({\n code: 'CDK_TOOLKIT_E6900',\n description: 'Rollback failed',\n interface: 'ErrorPayload',\n }),\n // 7: Destroy (7xxx)\n CDK_TOOLKIT_I7000: make.info({\n code: 'CDK_TOOLKIT_I7000',\n description: 'Provides destroy times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I7001: make.trace({\n code: 'CDK_TOOLKIT_I7001',\n description: 'Provides destroy time for a single stack',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I7010: make.confirm({\n code: 'CDK_TOOLKIT_I7010',\n description: 'Confirm destroy stacks',\n interface: 'ConfirmationRequest',\n }),\n CDK_TOOLKIT_I7100: make.info({\n code: 'CDK_TOOLKIT_I7100',\n description: 'Stack destroy progress',\n interface: 'StackDestroyProgress',\n }),\n CDK_TOOLKIT_I7101: make.trace({\n code: 'CDK_TOOLKIT_I7101',\n description: 'Start stack destroying',\n interface: 'StackDestroy',\n }),\n CDK_TOOLKIT_I7900: make.result({\n code: 'CDK_TOOLKIT_I7900',\n description: 'Stack deletion succeeded',\n interface: 'cxapi.CloudFormationStackArtifact',\n }),\n CDK_TOOLKIT_E7010: make.error({\n code: 'CDK_TOOLKIT_E7010',\n description: 'Action was aborted due to negative confirmation of request',\n }),\n CDK_TOOLKIT_E7900: make.error({\n code: 'CDK_TOOLKIT_E7900',\n description: 'Stack deletion failed',\n interface: 'ErrorPayload',\n }),\n // 8. Refactor (8xxx)\n CDK_TOOLKIT_E8900: make.error({\n code: 'CDK_TOOLKIT_E8900',\n description: 'Stack refactor failed',\n interface: 'ErrorPayload',\n }),\n CDK_TOOLKIT_I8900: make.result({\n code: 'CDK_TOOLKIT_I8900',\n description: 'Refactor result',\n interface: 'RefactorResult',\n }),\n CDK_TOOLKIT_I8910: make.confirm({\n code: 'CDK_TOOLKIT_I8910',\n description: 'Confirm refactor',\n interface: 'ConfirmationRequest',\n }),\n CDK_TOOLKIT_W8010: make.warn({\n code: 'CDK_TOOLKIT_W8010',\n description: 'Refactor execution not yet supported',\n }),\n // 9: Bootstrap, gc, flags & publish (9xxx)\n CDK_TOOLKIT_I9000: make.info({\n code: 'CDK_TOOLKIT_I9000',\n description: 'Provides bootstrap times',\n interface: 'Duration',\n }),\n CDK_TOOLKIT_I9100: make.info({\n code: 'CDK_TOOLKIT_I9100',\n description: 'Bootstrap progress',\n interface: 'BootstrapEnvironmentProgress',\n }),\n // gc (92xx)\n CDK_TOOLKIT_I9210: make.question({\n code: 'CDK_TOOLKIT_I9210',\n description: 'Confirm the deletion of a batch of assets',\n interface: 'AssetBatchDeletionRequest',\n }),\n CDK_TOOLKIT_I9900: make.result({\n code: 'CDK_TOOLKIT_I9900',\n description: 'Bootstrap results on success',\n interface: 'cxapi.Environment',\n }),\n CDK_TOOLKIT_E9900: make.error({\n code: 'CDK_TOOLKIT_E9900',\n description: 'Bootstrap failed',\n interface: 'ErrorPayload',\n }),\n // flags (93xx)\n CDK_TOOLKIT_I9300: make.info({\n code: 'CDK_TOOLKIT_I9300',\n description: 'Confirm the feature flag configuration changes',\n interface: 'FeatureFlagChangeRequest',\n }),\n // publish (94xx)\n CDK_TOOLKIT_I9400: make.info({\n code: 'CDK_TOOLKIT_I9400',\n description: 'All assets are already published',\n }),\n CDK_TOOLKIT_I9401: make.info({\n code: 'CDK_TOOLKIT_I9401',\n description: 'Publishing assets',\n interface: 'AssetsPayload',\n }),\n CDK_TOOLKIT_I9402: make.result({\n code: 'CDK_TOOLKIT_I9402',\n description: 'Publish assets results on success',\n interface: 'AssetsPayload',\n }),\n // Notices\n CDK_TOOLKIT_I0100: make.info({\n code: 'CDK_TOOLKIT_I0100',\n description: 'Notices decoration (the header or footer of a list of notices)',\n }),\n CDK_TOOLKIT_W0101: make.warn({\n code: 'CDK_TOOLKIT_W0101',\n description: 'A notice that is marked as a warning',\n }),\n CDK_TOOLKIT_E0101: make.error({\n code: 'CDK_TOOLKIT_E0101',\n description: 'A notice that is marked as an error',\n }),\n CDK_TOOLKIT_I0101: make.info({\n code: 'CDK_TOOLKIT_I0101',\n description: 'A notice that is marked as informational',\n }),\n // Assembly codes\n CDK_ASSEMBLY_I0010: make.debug({\n code: 'CDK_ASSEMBLY_I0010',\n description: 'Generic environment preparation debug messages',\n }),\n CDK_ASSEMBLY_W0010: make.warn({\n code: 'CDK_ASSEMBLY_W0010',\n description: 'Emitted if the found framework version does not support context overflow',\n }),\n CDK_ASSEMBLY_I0042: make.debug({\n code: 'CDK_ASSEMBLY_I0042',\n description: 'Writing context updates',\n interface: 'UpdatedContext',\n }),\n CDK_ASSEMBLY_I0240: make.debug({\n code: 'CDK_ASSEMBLY_I0240',\n description: 'Context lookup was stopped as no further progress was made. ',\n interface: 'MissingContext',\n }),\n CDK_ASSEMBLY_I0241: make.debug({\n code: 'CDK_ASSEMBLY_I0241',\n description: 'Fetching missing context. This is an iterative message that may appear multiple times with different missing keys.',\n interface: 'MissingContext',\n }),\n CDK_ASSEMBLY_I1000: make.debug({\n code: 'CDK_ASSEMBLY_I1000',\n description: 'Cloud assembly output starts',\n }),\n CDK_ASSEMBLY_I1001: make.info({\n code: 'CDK_ASSEMBLY_I1001',\n description: 'Output lines emitted by the cloud assembly to stdout',\n }),\n CDK_ASSEMBLY_E1002: make.error({\n code: 'CDK_ASSEMBLY_E1002',\n description: 'Output lines emitted by the cloud assembly to stderr',\n }),\n CDK_ASSEMBLY_I1003: make.info({\n code: 'CDK_ASSEMBLY_I1003',\n description: 'Cloud assembly output finished',\n }),\n CDK_ASSEMBLY_E1111: make.error({\n code: 'CDK_ASSEMBLY_E1111',\n description: 'Incompatible CDK CLI version. Upgrade needed.',\n interface: 'ErrorPayload',\n }),\n CDK_ASSEMBLY_I0150: make.debug({\n code: 'CDK_ASSEMBLY_I0150',\n description: 'Indicates the use of a pre-synthesized cloud assembly directory',\n }),\n CDK_ASSEMBLY_I0300: make.info({\n code: 'CDK_ASSEMBLY_I0300',\n description: 'An info message emitted by a Context Provider',\n interface: 'ContextProviderMessageSource',\n }),\n CDK_ASSEMBLY_I0301: make.debug({\n code: 'CDK_ASSEMBLY_I0301',\n description: 'A debug message emitted by a Context Provider',\n interface: 'ContextProviderMessageSource',\n }),\n // Assembly Annotations\n CDK_ASSEMBLY_I9999: make.info({\n code: 'CDK_ASSEMBLY_I9999',\n description: 'Annotations emitted by the cloud assembly',\n interface: 'cxapi.SynthesisMessage',\n }),\n CDK_ASSEMBLY_W9999: make.warn({\n code: 'CDK_ASSEMBLY_W9999',\n description: 'Warnings emitted by the cloud assembly',\n interface: 'cxapi.SynthesisMessage',\n }),\n CDK_ASSEMBLY_E9999: make.error({\n code: 'CDK_ASSEMBLY_E9999',\n description: 'Errors emitted by the cloud assembly',\n interface: 'cxapi.SynthesisMessage',\n }),\n // SDK codes\n CDK_SDK_I0100: make.trace({\n code: 'CDK_SDK_I0100',\n description: 'An SDK trace. SDK traces are emitted as traces to the IoHost, but contain the original SDK logging level.',\n interface: 'SdkTrace',\n }),\n CDK_SDK_I1100: make.question({\n code: 'CDK_SDK_I1100',\n description: 'Get an MFA token for an MFA device.',\n interface: 'MfaTokenRequest',\n }),\n};\n//////////////////////////////////////////////////////////////////////////////////////////\n/**\n * Payload type of the end message must extend Duration\n */\nexports.SPAN = {\n SYNTH_ASSEMBLY: {\n name: 'Synthesis',\n start: exports.IO.CDK_TOOLKIT_I1001,\n end: exports.IO.CDK_TOOLKIT_I1000,\n },\n DEPLOY_STACK: {\n name: 'Deployment',\n start: exports.IO.CDK_TOOLKIT_I5100,\n end: exports.IO.CDK_TOOLKIT_I5001,\n },\n ROLLBACK_STACK: {\n name: 'Rollback',\n start: exports.IO.CDK_TOOLKIT_I6100,\n end: exports.IO.CDK_TOOLKIT_I6000,\n },\n DIFF_STACK: {\n name: 'Diff',\n start: exports.IO.CDK_TOOLKIT_I4000,\n end: exports.IO.CDK_TOOLKIT_I4001,\n },\n DRIFT_APP: {\n name: 'Drift',\n start: exports.IO.CDK_TOOLKIT_I4000,\n end: exports.IO.CDK_TOOLKIT_I4509,\n },\n DESTROY_STACK: {\n name: 'Destroy',\n start: exports.IO.CDK_TOOLKIT_I7100,\n end: exports.IO.CDK_TOOLKIT_I7001,\n },\n DESTROY_ACTION: {\n name: 'Destroy',\n start: exports.IO.CDK_TOOLKIT_I7101,\n end: exports.IO.CDK_TOOLKIT_I7000,\n },\n BOOTSTRAP_SINGLE: {\n name: 'Bootstrap',\n start: exports.IO.CDK_TOOLKIT_I9100,\n end: exports.IO.CDK_TOOLKIT_I9000,\n },\n BUILD_ASSET: {\n name: 'Build Asset',\n start: exports.IO.CDK_TOOLKIT_I5210,\n end: exports.IO.CDK_TOOLKIT_I5211,\n },\n PUBLISH_ASSET: {\n name: 'Publish Asset',\n start: exports.IO.CDK_TOOLKIT_I5220,\n end: exports.IO.CDK_TOOLKIT_I5221,\n },\n HOTSWAP: {\n name: 'hotswap-deployment',\n start: exports.IO.CDK_TOOLKIT_I5400,\n end: exports.IO.CDK_TOOLKIT_I5410,\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFnQ3hDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBWTtRQUN0QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFdBQVc7S0FDdkIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXdCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUF1QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBZTtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw4QkFBOEI7UUFDM0MsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFzQjtRQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnRUFBZ0U7UUFDN0UsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFFLElB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QjtLQUMxQjtJQUNELGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixJQUFJLEVBQUUsV0FBVztRQUNqQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxhQUFhO1FBQ25CLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0NBQ2lELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IFNwYW5EZWZpbml0aW9uIH0gZnJvbSAnLi9zcGFuJztcbmltcG9ydCB0eXBlIHsgU3RhY2tEaWZmLCBEaWZmUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHR5cGUgeyBCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvYm9vdHN0cmFwLWVudmlyb25tZW50LXByb2dyZXNzJztcbmltcG9ydCB0eXBlIHsgTWlzc2luZ0NvbnRleHQsIFVwZGF0ZWRDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkQXNzZXQsIERlcGxveUNvbmZpcm1hdGlvblJlcXVlc3QsIFB1Ymxpc2hBc3NldCwgUHVibGlzaEFzc2V0RXZlbnQsIFN0YWNrRGVwbG95UHJvZ3Jlc3MsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RlcGxveSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGVzdHJveSwgU3RhY2tEZXN0cm95UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXN0cm95JztcbmltcG9ydCB0eXBlIHsgRHJpZnRSZXN1bHRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZHJpZnQnO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlRmxhZ0NoYW5nZVJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9mbGFncyc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0QmF0Y2hEZWxldGlvblJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9nYyc7XG5pbXBvcnQgdHlwZSB7IEhvdHN3YXBEZXBsb3ltZW50RGV0YWlscywgSG90c3dhcERlcGxveW1lbnRBdHRlbXB0LCBIb3Rzd2FwcGFibGVDaGFuZ2UsIEhvdHN3YXBSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9ob3Rzd2FwJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VJZGVudGlmaWNhdGlvblJlcXVlc3QsIFJlc291cmNlSW1wb3J0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2ltcG9ydCc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGV0YWlsc1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9saXN0JztcbmltcG9ydCB0eXBlIHsgQ2xvdWRXYXRjaExvZ0V2ZW50LCBDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2xvZ3MtbW9uaXRvcic7XG5pbXBvcnQgdHlwZSB7IEFzc2V0c1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9wdWJsaXNoLWFzc2V0cyc7XG5pbXBvcnQgdHlwZSB7IFJlZmFjdG9yUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcmVmYWN0b3InO1xuaW1wb3J0IHR5cGUgeyBTdGFja1JvbGxiYWNrUHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9yb2xsYmFjayc7XG5pbXBvcnQgdHlwZSB7IE1mYVRva2VuUmVxdWVzdCwgU2RrVHJhY2UgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zZGsnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0FjdGl2aXR5LCBTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zdGFjay1hY3Rpdml0eSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0aW9uRGV0YWlscyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3N5bnRoJztcbmltcG9ydCB0eXBlIHtcbiAgQXNzZW1ibHlEYXRhLFxuICBDb25maXJtYXRpb25SZXF1ZXN0LFxuICBDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlLFxuICBEdXJhdGlvbixcbiAgRXJyb3JQYXlsb2FkLFxuICBPcGVyYXRpb24sXG4gIFNpbmdsZVN0YWNrLFxuICBTdGFja0FuZEFzc2VtYmx5RGF0YSxcbn0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBGaWxlV2F0Y2hFdmVudCwgV2F0Y2hTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3dhdGNoJztcblxuLyoqXG4gKiBXZSBoYXZlIGEgcm91Z2ggc3lzdGVtIGJ5IHdoaWNoIHdlIGFzc2lnbiBtZXNzYWdlIGNvZGVzOlxuICogLSBGaXJzdCBkaWdpdCBncm91cHMgbWVzc2FnZXMgYnkgYWN0aW9uLCBlLmcuIHN5bnRoIG9yIGRlcGxveVxuICogLSBYMDAwLVgwMDkgYXJlIHJlc2VydmVkIGZvciB0aW1pbmdzXG4gKiAtIFg5MDAtWDk5OSBhcmUgcmVzZXJ2ZWQgZm9yIHJlc3VsdHNcbiAqL1xuZXhwb3J0IGNvbnN0IElPID0ge1xuICAvLyB3YXJuaW5ncyAmIGVycm9yc1xuICBDREtfVE9PTEtJVF9XMDEwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3JlZGVudGlhbCBwbHVnaW4gd2FybmluZ3MnLFxuICB9KSxcblxuICAvLyAxOiBTeW50aCAoMXh4eClcbiAgQ0RLX1RPT0xLSVRfSTEwMDA6IG1ha2UuaW5mbzxPcGVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTEwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgc3ludGhlc2lzIHRpbWVzLicsXG4gICAgaW50ZXJmYWNlOiAnT3BlcmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxMDAxOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBBc3NlbWJseSBzeW50aGVzaXMgaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTkwMTogbWFrZS5yZXN1bHQ8U3RhY2tBbmRBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgc3RhY2sgZGF0YScsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tBbmRBc3NlbWJseURhdGEnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDI6IG1ha2UucmVzdWx0PEFzc2VtYmx5RGF0YT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTkwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsbHkgZGVwbG95ZWQgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NlbWJseURhdGEnLFxuICB9KSxcblxuICAvLyAyOiBMaXN0ICgyeHh4KVxuICBDREtfVE9PTEtJVF9JMjkwMTogbWFrZS5yZXN1bHQ8U3RhY2tEZXRhaWxzUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMjkwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXRhaWxzIG9uIHRoZSBzZWxlY3RlZCBzdGFja3MgYW5kIHRoZWlyIGRlcGVuZGVuY2llcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXRhaWxzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDM6IEltcG9ydCAmIE1pZ3JhdGVcbiAgQ0RLX1RPT0xLSVRfSTMxMDA6IG1ha2UuY29uZmlybTxSZXNvdXJjZUltcG9ydFJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTMxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgaW1wb3J0IG9mIGEgc3BlY2lmaWMgcmVzb3VyY2UnLFxuICAgIGludGVyZmFjZTogJ1Jlc291cmNlSW1wb3J0UmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMzExMDogbWFrZS5xdWVzdGlvbjxSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMzExMCcsXG4gICAgZGVzY3JpcHRpb246ICdBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byBpZGVudGlmeSBhIHJlc291cmNlJyxcbiAgICBpbnRlcmZhY2U6ICdSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMzkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTM5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgaW1wb3J0IGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNDogRGlmZiAoNDB4eCAtIDQ0eHgpXG4gIENES19UT09MS0lUX0k0MDAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEaWZmIHN0YWNrcyBpcyBzdGFydGluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tTZWxlY3Rpb25EZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAxOiBtYWtlLnJlc3VsdDxEaWZmUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kJyxcbiAgICBpbnRlcmZhY2U6ICdEaWZmUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAyOiBtYWtlLnJlc3VsdDxTdGFja0RpZmY+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGRpZmYgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RpZmYnLFxuICB9KSxcblxuICAvLyA0OiBEcmlmdCAoNDV4eCAtIDQ5eHgpXG4gIENES19UT09MS0lUX0k0NTAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDUwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEcmlmdCBkZXRlY3Rpb24gaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDUwOTogbWFrZS5yZXN1bHQ8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTInLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiB0aGUgZHJpZnQnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0NTkwOiBtYWtlLnJlc3VsdDxEcmlmdFJlc3VsdFBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiBhIHN0YWNrIGRyaWZ0JyxcbiAgICBpbnRlcmZhY2U6ICdEcmlmdFJlc3VsdFBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzQ1OTE6IG1ha2Uud2FybjxTaW5nbGVTdGFjaz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNDU5MScsXG4gICAgZGVzY3JpcHRpb246ICdNaXNzaW5nIGRyaWZ0IHJlc3VsdCBmb3J0IGEgc3RhY2suJyxcbiAgICBpbnRlcmZhY2U6ICdTaW5nbGVTdGFjaycsXG4gIH0pLFxuXG4gIC8vIDU6IERlcGxveSAmIFdhdGNoICg1eHh4KVxuICBDREtfVE9PTEtJVF9JNTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlcGxveW1lbnQgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDAxOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgdG90YWwgdGltZSBpbiBkZXBsb3kgYWN0aW9uLCBpbmNsdWRpbmcgc3ludGggYW5kIHJvbGxiYWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMjogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRpbWUgZm9yIHJlc291cmNlIG1pZ3JhdGlvbicsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzUwMjE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1MDIxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtcHR5IG5vbi1leGlzdGVudCBzdGFjaywgZGVwbG95bWVudCBpcyBza2lwcGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIyOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMicsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBleGlzdGluZyBzdGFjaywgc3RhY2sgd2lsbCBiZSBkZXN0cm95ZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZm9ybXMgYWJvdXQgYW55IGxvZyBncm91cHMgdGhhdCBhcmUgdHJhY2VkIGFzIHBhcnQgb2YgdGhlIGRlcGxveW1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzI6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzMzogbWFrZS5pbmZvPENsb3VkV2F0Y2hMb2dFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMycsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBldmVudCByZWNlaXZlZCBmcm9tIENsb3VkIFdhdGNoJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzQ6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzQnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RvcCBtb25pdG9yaW5nIGxvZyBncm91cHMnLFxuICAgIGludGVyZmFjZTogJ0Nsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U1MDM1OiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAzNScsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBtb25pdG9yaW5nIGVycm9yJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcm9sbGJhY2sgZHVyaW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNjA6IG1ha2UuY29uZmlybTxEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDYwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gZGVwbG95IHNlY3VyaXR5IHNlbnNpdGl2ZSBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MTAwOiBtYWtlLmluZm88U3RhY2tEZXBsb3lQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZXBsb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVwbG95UHJvZ3Jlc3MnLFxuICB9KSxcblxuICAvLyBBc3NldHMgKDUyeHgpXG4gIENES19UT09MS0lUX0k1MjEwOiBtYWtlLnRyYWNlPEJ1aWxkQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBidWlsZGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdCdWlsZEFzc2V0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MjExOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0J1aWxkaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMDogbWFrZS50cmFjZTxQdWJsaXNoQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBwdWJsaXNoaW5nIGEgc3BlY2lmaWMgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIyMScsXG4gICAgZGVzY3JpcHRpb246ICdQdWJsaXNoaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuXG4gIENES19BU1NFVFNfSTUyNzA6IG1ha2UuaW5mbzxQdWJsaXNoQXNzZXRFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRVRTX0k1MjcwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgdGhlIGFzc2V0IGhhcyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuICBDREtfQVNTRVRTX0k1MjcxOiBtYWtlLmRlYnVnPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfSTUyNzEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVidWcgbWVzc2FnZWQgZW1pdHRlZCBkdXJpbmcgcHVibGlzaGluZyBvZiB0aGUgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldEV2ZW50JyxcbiAgfSksXG4gIENES19BU1NFVFNfSTUyNzU6IG1ha2UuaW5mbzxQdWJsaXNoQXNzZXRFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRVRTX0k1Mjc1JyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgdGhlIGFzc2V0IGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuICBDREtfQVNTRVRTX0U1Mjc5OiBtYWtlLmVycm9yPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfRTUyNzknLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHB1Ymxpc2hpbmcgdGhlIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuXG4gIC8vIFdhdGNoICg1M3h4KVxuICBDREtfVE9PTEtJVF9JNTMxMDogbWFrZS5kZWJ1ZzxXYXRjaFNldHRpbmdzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBjb21wdXRlZCBzZXR0aW5ncyB1c2VkIGZvciBmaWxlIHdhdGNoaW5nJyxcbiAgICBpbnRlcmZhY2U6ICdXYXRjaFNldHRpbmdzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzExOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSB3YXRjaGluZyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMjogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQsIHN0YXJ0aW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzEzOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTMnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSBldmVudCBkZXRlY3RlZCBkdXJpbmcgYWN0aXZlIGRlcGxveW1lbnQsIGNoYW5nZXMgYXJlIHF1ZXVlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTQ6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzE0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0luaXRpYWwgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE1OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNScsXG4gICAgZGVzY3JpcHRpb246ICdRdWV1ZWQgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG5cbiAgLy8gSG90c3dhcCAoNTR4eClcbiAgQ0RLX1RPT0xLSVRfSTU0MDA6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnRBdHRlbXB0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0F0dGVtcHRpbmcgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMTogbWFrZS50cmFjZTxIb3Rzd2FwRGVwbG95bWVudERldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29tcHV0ZWQgZGV0YWlscyBmb3IgdGhlIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcERlcGxveW1lbnREZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAyOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgaG90c3dhcHBhYmxlIGNoYW5nZSBpcyBwcm9jZXNzZWQgYXMgcGFydCBvZiBhIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAzOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBob3Rzd2FwcGFibGUgY2hhbmdlIGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZycsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDEwOiBtYWtlLmluZm88SG90c3dhcFJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQxMCcsXG4gICAgZGVzY3JpcHRpb246ICdIb3Rzd2FwIGRlcGxveW1lbnQgaGFzIGVuZGVkLCBhIGZ1bGwgZGVwbG95bWVudCBtaWdodCBzdGlsbCBmb2xsb3cgaWYgbmVlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwUmVzdWx0JyxcbiAgfSksXG5cbiAgLy8gU3RhY2sgTW9uaXRvciAoNTV4eClcbiAgQ0RLX1RPT0xLSVRfSTU1MDE6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogU3RhcnQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAyOiBtYWtlLmluZm88U3RhY2tBY3Rpdml0eT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTUwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nOiBBY3Rpdml0eSBldmVudCBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQWN0aXZpdHknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU1MDM6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogRmluaXNoZWQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG5cbiAgLy8gU3VjY2VzcyAoNTl4eClcbiAgQ0RLX1RPT0xLSVRfSTU5MDA6IG1ha2UucmVzdWx0PFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEZXBsb3ltZW50IHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1OTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGRlcGxveW1lbnQgc3VjY2VzcyBtZXNzYWdlcycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTQwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzU0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkaXNjbG9zdXJlIG1lc3NhZ2UnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNTAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTUwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTU1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNjogUm9sbGJhY2sgKDZ4eHgpXG4gIENES19UT09MS0lUX0k2MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTYwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgcm9sbGJhY2sgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k2MTAwOiBtYWtlLmluZm88U3RhY2tSb2xsYmFja1Byb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIHJvbGxiYWNrIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1JvbGxiYWNrUHJvZ3Jlc3MnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNjAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNjkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTY5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUm9sbGJhY2sgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA3OiBEZXN0cm95ICg3eHh4KVxuICBDREtfVE9PTEtJVF9JNzAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDAxOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZSBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDEwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlc3Ryb3kgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAwOiBtYWtlLmluZm88U3RhY2tEZXN0cm95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVzdHJveSBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXN0cm95UHJvZ3Jlc3MnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcxMDE6IG1ha2UudHJhY2U8U3RhY2tEZXN0cm95Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IHN0YWNrIGRlc3Ryb3lpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveScsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k3OTAwOiBtYWtlLnJlc3VsdDxjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTc5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVsZXRpb24gc3VjY2VlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNzAxMDogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3MDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FjdGlvbiB3YXMgYWJvcnRlZCBkdWUgdG8gbmVnYXRpdmUgY29uZmlybWF0aW9uIG9mIHJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTc5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gOC4gUmVmYWN0b3IgKDh4eHgpXG4gIENES19UT09MS0lUX0U4OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByZWZhY3RvciBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k4OTAwOiBtYWtlLnJlc3VsdDxSZWZhY3RvclJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciByZXN1bHQnLFxuICAgIGludGVyZmFjZTogJ1JlZmFjdG9yUmVzdWx0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTg5MTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k4OTEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcmVmYWN0b3InLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9XODAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzgwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgZXhlY3V0aW9uIG5vdCB5ZXQgc3VwcG9ydGVkJyxcbiAgfSksXG5cbiAgLy8gOTogQm9vdHN0cmFwLCBnYywgZmxhZ3MgJiBwdWJsaXNoICg5eHh4KVxuICBDREtfVE9PTEtJVF9JOTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGJvb3RzdHJhcCB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTkxMDA6IG1ha2UuaW5mbzxCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcycsXG4gIH0pLFxuXG4gIC8vIGdjICg5Mnh4KVxuICBDREtfVE9PTEtJVF9JOTIxMDogbWFrZS5xdWVzdGlvbjxBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gdGhlIGRlbGV0aW9uIG9mIGEgYmF0Y2ggb2YgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTk5MDA6IG1ha2UucmVzdWx0PHsgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50IH0+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuRW52aXJvbm1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTk5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIGZsYWdzICg5M3h4KVxuICBDREtfVE9PTEtJVF9JOTMwMDogbWFrZS5pbmZvPEZlYXR1cmVGbGFnQ2hhbmdlUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIHRoZSBmZWF0dXJlIGZsYWcgY29uZmlndXJhdGlvbiBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdGZWF0dXJlRmxhZ0NoYW5nZVJlcXVlc3QnLFxuICB9KSxcblxuICAvLyBwdWJsaXNoICg5NHh4KVxuICBDREtfVE9PTEtJVF9JOTQwMDogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQWxsIGFzc2V0cyBhcmUgYWxyZWFkeSBwdWJsaXNoZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTk0MDE6IG1ha2UuaW5mbzxBc3NldHNQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5NDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldHNQYXlsb2FkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k5NDAyOiBtYWtlLnJlc3VsdDxBc3NldHNQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2ggYXNzZXRzIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnQXNzZXRzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIE5vdGljZXNcbiAgQ0RLX1RPT0xLSVRfSTAxMDA6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vdGljZXMgZGVjb3JhdGlvbiAodGhlIGhlYWRlciBvciBmb290ZXIgb2YgYSBsaXN0IG9mIG5vdGljZXMpJyxcbiAgfSksXG4gIENES19UT09MS0lUX1cwMTAxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhIHdhcm5pbmcnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTAxMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhbiBlcnJvcicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMDEwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBub3RpY2UgdGhhdCBpcyBtYXJrZWQgYXMgaW5mb3JtYXRpb25hbCcsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IGNvZGVzXG4gIENES19BU1NFTUJMWV9JMDAxMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGVudmlyb25tZW50IHByZXBhcmF0aW9uIGRlYnVnIG1lc3NhZ2VzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XMDAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1cwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtaXR0ZWQgaWYgdGhlIGZvdW5kIGZyYW1ld29yayB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgY29udGV4dCBvdmVyZmxvdycsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAwNDI6IG1ha2UuZGVidWc8VXBkYXRlZENvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDQyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1dyaXRpbmcgY29udGV4dCB1cGRhdGVzJyxcbiAgICBpbnRlcmZhY2U6ICdVcGRhdGVkQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDA6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbnRleHQgbG9va3VwIHdhcyBzdG9wcGVkIGFzIG5vIGZ1cnRoZXIgcHJvZ3Jlc3Mgd2FzIG1hZGUuICcsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMjQxOiBtYWtlLmRlYnVnPE1pc3NpbmdDb250ZXh0Pih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDI0MScsXG4gICAgZGVzY3JpcHRpb246ICdGZXRjaGluZyBtaXNzaW5nIGNvbnRleHQuIFRoaXMgaXMgYW4gaXRlcmF0aXZlIG1lc3NhZ2UgdGhhdCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1pc3Npbmcga2V5cy4nLFxuICAgIGludGVyZmFjZTogJ01pc3NpbmdDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgc3RhcnRzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRvdXQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMDAyOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRlcnInLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAzOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgYXNzZW1ibHkgb3V0cHV0IGZpbmlzaGVkJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FMTExMTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMTExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luY29tcGF0aWJsZSBDREsgQ0xJIHZlcnNpb24uIFVwZ3JhZGUgbmVlZGVkLicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgQ0RLX0FTU0VNQkxZX0kwMTUwOiBtYWtlLmRlYnVnPG5ldmVyPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDE1MCcsXG4gICAgZGVzY3JpcHRpb246ICdJbmRpY2F0ZXMgdGhlIHVzZSBvZiBhIHByZS1zeW50aGVzaXplZCBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnknLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAzMDA6IG1ha2UuaW5mbzxDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBbiBpbmZvIG1lc3NhZ2UgZW1pdHRlZCBieSBhIENvbnRleHQgUHJvdmlkZXInLFxuICAgIGludGVyZmFjZTogJ0NvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMzAxOiBtYWtlLmRlYnVnPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgZGVidWcgbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IEFubm90YXRpb25zXG4gIENES19BU1NFTUJMWV9JOTk5OTogbWFrZS5pbmZvPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0k5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Fubm90YXRpb25zIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XOTk5OTogbWFrZS53YXJuPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1c5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1dhcm5pbmdzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FOTk5OTogbWFrZS5lcnJvcjxjeGFwaS5TeW50aGVzaXNNZXNzYWdlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9FOTk5OScsXG4gICAgZGVzY3JpcHRpb246ICdFcnJvcnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcblxuICAvLyBTREsgY29kZXNcbiAgQ0RLX1NES19JMDEwMDogbWFrZS50cmFjZTxTZGtUcmFjZT4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIFNESyB0cmFjZS4gU0RLIHRyYWNlcyBhcmUgZW1pdHRlZCBhcyB0cmFjZXMgdG8gdGhlIElvSG9zdCwgYnV0IGNvbnRhaW4gdGhlIG9yaWdpbmFsIFNESyBsb2dnaW5nIGxldmVsLicsXG4gICAgaW50ZXJmYWNlOiAnU2RrVHJhY2UnLFxuICB9KSxcbiAgQ0RLX1NES19JMTEwMDogbWFrZS5xdWVzdGlvbjxNZmFUb2tlblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1NES19JMTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYW4gTUZBIHRva2VuIGZvciBhbiBNRkEgZGV2aWNlLicsXG4gICAgaW50ZXJmYWNlOiAnTWZhVG9rZW5SZXF1ZXN0JyxcbiAgfSksXG59O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBQYXlsb2FkIHR5cGUgb2YgdGhlIGVuZCBtZXNzYWdlIG11c3QgZXh0ZW5kIER1cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBTUEFOID0ge1xuICBTWU5USF9BU1NFTUJMWToge1xuICAgIG5hbWU6ICdTeW50aGVzaXMnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JMTAwMSxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0kxMDAwLFxuICB9LFxuICBERVBMT1lfU1RBQ0s6IHtcbiAgICBuYW1lOiAnRGVwbG95bWVudCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MTAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUwMDEsXG4gIH0sXG4gIFJPTExCQUNLX1NUQUNLOiB7XG4gICAgbmFtZTogJ1JvbGxiYWNrJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTYxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNjAwMCxcbiAgfSxcbiAgRElGRl9TVEFDSzoge1xuICAgIG5hbWU6ICdEaWZmJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTQwMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNDAwMSxcbiAgfSxcbiAgRFJJRlRfQVBQOiB7XG4gICAgbmFtZTogJ0RyaWZ0JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTQwMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNDUwOSxcbiAgfSxcbiAgREVTVFJPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMSxcbiAgfSxcbiAgREVTVFJPWV9BQ1RJT046IHtcbiAgICBuYW1lOiAnRGVzdHJveScsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k3MTAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTcwMDAsXG4gIH0sXG4gIEJPT1RTVFJBUF9TSU5HTEU6IHtcbiAgICBuYW1lOiAnQm9vdHN0cmFwJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTkxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JOTAwMCxcbiAgfSxcbiAgQlVJTERfQVNTRVQ6IHtcbiAgICBuYW1lOiAnQnVpbGQgQXNzZXQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTIxMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1MjExLFxuICB9LFxuICBQVUJMSVNIX0FTU0VUOiB7XG4gICAgbmFtZTogJ1B1Ymxpc2ggQXNzZXQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTIyMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1MjIxLFxuICB9LFxuICBIT1RTV0FQOiB7XG4gICAgbmFtZTogJ2hvdHN3YXAtZGVwbG95bWVudCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1NDAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTU0MTAsXG4gIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBTcGFuRGVmaW5pdGlvbjxhbnksIGFueT4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpanMaker = void 0;\nconst util = require(\"node:util\");\nconst uuid = require(\"uuid\");\nconst util_1 = require(\"../../../util\");\n/**\n * Helper class to make spans around blocks of work\n *\n * Blocks are enclosed by a start and end message.\n * All messages of the span share a unique id.\n * The end message contains the time passed between start and end.\n */\nclass SpanMaker {\n definition;\n ioHelper;\n makeHelper;\n constructor(ioHelper, definition, makeHelper) {\n this.definition = definition;\n this.ioHelper = ioHelper;\n this.makeHelper = makeHelper;\n }\n async begin(a, b) {\n const span = new MessageSpan(this.ioHelper, this.definition, this.makeHelper);\n const startInput = parseArgs(a, b);\n const startMsg = startInput.message ?? `Starting ${this.definition.name} ...`;\n const startPayload = startInput.payload;\n await span.notify(this.definition.start.msg(startMsg, startPayload));\n return span;\n }\n}\nexports.SpanMaker = SpanMaker;\nclass MessageSpan {\n asHelper;\n definition;\n ioHelper;\n spanId;\n startTime;\n timingMsgTemplate;\n counters = {};\n openTimers = new Set();\n constructor(ioHelper, definition, makeHelper) {\n this.definition = definition;\n this.ioHelper = ioHelper;\n this.spanId = uuid.v4();\n this.startTime = new Date().getTime();\n this.timingMsgTemplate = '\\n✨ %s time: %ds\\n';\n this.asHelper = makeHelper(this);\n }\n get defaults() {\n return this.asHelper.defaults;\n }\n async elapsedTime() {\n return this.time();\n }\n async timing(maker, message) {\n const duration = this.time();\n const timingMsg = message ? message : util.format(this.timingMsgTemplate, this.definition.name, duration.asSec);\n await this.notify(maker.msg(timingMsg, {\n duration: duration.asMs,\n }));\n return duration;\n }\n async notify(msg) {\n return this.ioHelper.notify(withSpanId(this.spanId, msg));\n }\n async end(x, y) {\n const duration = this.time();\n for (const t of this.openTimers) {\n t.stop();\n }\n this.openTimers.clear();\n const endInput = parseArgs(x, y);\n const endMsg = endInput.message ?? util.format(this.timingMsgTemplate, this.definition.name, duration.asSec);\n const endPayload = endInput.payload;\n await this.notify(this.definition.end.msg(endMsg, {\n duration: duration.asMs,\n ...(Object.keys(this.counters).length > 0 ? { counters: this.counters } : {}),\n ...endPayload,\n }));\n return duration;\n }\n incCounter(name, delta = 1) {\n this.counters[name] = (this.counters[name] ?? 0) + delta;\n }\n async requestResponse(msg) {\n return this.ioHelper.requestResponse(withSpanId(this.spanId, msg));\n }\n startTimer(name) {\n const start = Date.now();\n const t = {\n stop: () => {\n this.openTimers.delete(t);\n this.incCounter(`${name}_ms`, Math.floor(Date.now() - start) / 1000);\n this.incCounter(`${name}_cnt`, 1);\n },\n };\n this.openTimers.add(t);\n return t;\n }\n time() {\n const elapsedTime = new Date().getTime() - this.startTime;\n return {\n asMs: elapsedTime,\n asSec: (0, util_1.formatTime)(elapsedTime),\n };\n }\n}\nfunction parseArgs(first, second) {\n const firstIsMessage = typeof first === 'string';\n // When the first argument is a string or we have a second argument, then the first arg is the message\n const message = (firstIsMessage || second) ? first : undefined;\n // When the first argument is a string or we have a second argument,\n // then the second arg is the payload, otherwise the first arg is the payload\n const payload = (firstIsMessage || second) ? second : first;\n return {\n message,\n payload,\n };\n}\nfunction withSpanId(span, message) {\n return {\n ...message,\n span,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNwYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQWtDO0FBQ2xDLDZCQUE2QjtBQUk3Qix3Q0FBMkM7QUEySDNDOzs7Ozs7R0FNRztBQUNILE1BQWEsU0FBUztJQUNILFVBQVUsQ0FBdUI7SUFDakMsUUFBUSxDQUFXO0lBQzVCLFVBQVUsQ0FBMkM7SUFFN0QsWUFBbUIsUUFBa0IsRUFBRSxVQUFnQyxFQUFFLFVBQW9EO1FBQzNILElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFRTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQU0sRUFBRSxDQUFLO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxJQUFJLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUM5RSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUExQkQsOEJBMEJDO0FBRUQsTUFBTSxXQUFXO0lBQ0MsUUFBUSxDQUFXO0lBRWxCLFVBQVUsQ0FBdUI7SUFDakMsUUFBUSxD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Q0FBQztRQUMxRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLElBQUEsaUJBQVUsRUFBQyxXQUFXLENBQUM7U0FDL0IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELFNBQVMsU0FBUyxDQUFJLEtBQVUsRUFBRSxNQUFVO0lBQzFDLE1BQU0sY0FBYyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUVqRCxzR0FBc0c7SUFDdEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRS9ELG9FQUFvRTtJQUNwRSw2RUFBNkU7SUFDN0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPO1FBQ1AsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQW1CLElBQVksRUFBRSxPQUFVO0lBQzVELE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25MZXNzTWVzc2FnZSwgQWN0aW9uTGVzc1JlcXVlc3QsIElvSGVscGVyIH0gZnJvbSAnLi9pby1oZWxwZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHsgZm9ybWF0VGltZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uQXdhcmVJb0hvc3QgfSBmcm9tICcuLi9pby1ob3N0JztcbmltcG9ydCB0eXBlIHsgSW9EZWZhdWx0TWVzc2FnZXMgfSBmcm9tICcuL2lvLWRlZmF1bHQtbWVzc2FnZXMnO1xuXG4vKipcbiAqIFRoZXNlIGRhdGEgZmllbGRzIGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGJ5IGVuZGluZyBhIHNwYW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFuRW5kIHtcbiAgcmVhZG9ubHkgZHVyYXRpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgY291bnRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNwZWNpZmljIHNwYW5cbiAqXG4gKiBBIHNwYW4gZGVmaW5pdGlvbiBpcyBhIHBhaXIgb2YgYElvTWVzc2FnZU1ha2VyYHMgdG8gY3JlYXRlIGEgc3RhcnQgYW5kIGVuZCBtZXNzYWdlIG9mIHRoZSBzcGFuIHJlc3BlY3RpdmVseS5cbiAqIEl0IGFsc28gaGFzIGEgZGlzcGxheSBuYW1lLCB0aGF0IGlzIHVzZWQgZm9yIGF1dG8tZ2VuZXJhdGVkIG1lc3NhZ2UgdGV4dCB3aGVuIHRoZXkgYXJlIG5vdCBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFuRGVmaW5pdGlvbjxTIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgU3BhbkVuZD4ge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXJ0OiBtYWtlLklvTWVzc2FnZU1ha2VyPFM+O1xuICByZWFkb25seSBlbmQ6IG1ha2UuSW9NZXNzYWdlTWFrZXI8RT47XG59XG5cbi8qKlxuICogQXJndW1lbnRzIHRvIHRoZSBzcGFuLmVuZCgpIGZ1bmN0aW9uXG4gKlxuICogYFNwYW5FbmRBcmd1bWVudHM8VD5gIGFyZSB0aGUgZmllbGRzIHRoYXQgYSB1c2VyIHN0aWxsIG5lZWRzIHRvIHN1cHBseSwgaXRcbiAqIGZpZWxkcyBpbiB0aGUgdHlwZSBgVGAgdGhhdCBhcmVuJ3QgYWxzbyBpbiBgU3BhbkVuZGAuIGBTcGFuRW5kYCByZXByZXNlbnRzXG4gKiBmaWVsZHMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBhZGRlZCBieSB0aGUgdW5kZXJseWluZyBgZW5kYCBmdW5jdGlvbi5cbiAqXG4gKiBGaWVsZHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBgU3BhbkVuZGAgYXJlIHN0aWxsIHJlbmRlcmVkIGFzIG9wdGlvbmFscywgc28geW91XG4gKiBjYW4gb3ZlcnJpZGUgdGhlbSAoYnV0IHlvdSBkb24ndCBoYXZlIHRvKS5cbiAqXG4gKiAtIERvZXMgdGhlIGZvbGxvd2luZzogZmllbGRzIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIGBUYCBhbmQgYFNwYW5FbmRgIGFyZVxuICogICBtYWRlIG9wdGlvbmFsLCBhbmQgdGhlIHJlc3Qgb2YgdGhlIGtleXMgb2YgYFRgIGFyZSByZXF1aXJlZC5cbiAqXG4gKiAtIElmIGBUYCBpcyBmdWxseSBzdWJzdW1lZCBieSB0aGUgYFNwYW5FbmRgIHR5cGUsIHRoZW4gYW4gb2JqZWN0IHR5cGUgd2l0aFxuICogICBhbGwgZmllbGRzIG9wdGlvbmFsLCBPUiAndm9pZCcgc28geW91IGNhbiBhdm9pZCBwYXNzaW5nIGFuIGFyZ3VtZW50IGF0IGFsbC5cbiAqL1xudHlwZSBTcGFuRW5kQXJndW1lbnRzPFQ+ID0ga2V5b2YgVCBleHRlbmRzIGtleW9mIFNwYW5FbmRcbiAgPyAoUGljazxQYXJ0aWFsPFNwYW5FbmQ+LCBrZXlvZiBUICYga2V5b2YgU3BhbkVuZD4gfCB2b2lkKVxuICA6IE9wdGlvbmFsPFQsIGtleW9mIFQgJiBrZXlvZiBTcGFuRW5kPjtcblxuLyoqXG4gKiBVc2VkIGluIGNvbmRpdGlvbmFsIHR5cGVzIHRvIGNoZWNrIGlmIGEgdHlwZSAoZS5nLiBhZnRlciBvbWl0dGluZyBmaWVsZHMpIGlzIGFuIGVtcHR5IG9iamVjdFxuICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBjb3VudGVyLWludHVpdGl2ZSBuZWl0aGVyIGBvYmplY3RgIG5vciBge31gIHJlcHJlc2VudCB0aGF0LlxuICovXG50eXBlIEVtcHR5T2JqZWN0ID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIGZvcmNlIGEgcGFyYW1ldGVyIHRvIGJlIG5vdCBwcmVzZW50IG9mIHRoZSBjb21wdXRlZCB0eXBlIGlzIGFuIGVtcHR5IG9iamVjdFxuICovXG50eXBlIFZvaWRXaGVuRW1wdHk8VD4gPSBUIGV4dGVuZHMgRW1wdHlPYmplY3QgPyB2b2lkIDogVDtcblxuLyoqXG4gKiBNYWtlIHNvbWUgcHJvcGVydGllcyBvcHRpb25hbFxuICovXG50eXBlIE9wdGlvbmFsPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiBQaWNrPFBhcnRpYWw8VD4sIEs+O1xuXG4vKipcbiAqIEVuZGluZyB0aGUgc3BhbiByZXR1cm5zIHRoZSBvYnNlcnZlZCBkdXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsYXBzZWRUaW1lIHtcbiAgcmVhZG9ubHkgYXNNczogbnVtYmVyO1xuICByZWFkb25seSBhc1NlYzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgbWVzc2FnZSBzcGFuIHRoYXQgY2FuIGJlIGVuZGVkIGFuZCByZWFkIHRpbWVzIGZyb21cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWVzc2FnZVNwYW48RSBleHRlbmRzIFNwYW5FbmQ+IGV4dGVuZHMgSUFjdGlvbkF3YXJlSW9Ib3N0IHtcbiAgLyoqXG4gICAqIEFuIElvSGVscGVyIHdyYXBwZWQgYXJvdW5kIHRoZSBzcGFuLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNIZWxwZXI6IElvSGVscGVyO1xuICAvKipcbiAgICogQW4gSW9EZWZhdWx0TWVzc2FnZXMgd3JhcHBlZCBhcm91bmQgdGhlIHNwYW4uXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0czogSW9EZWZhdWx0TWVzc2FnZXM7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdGltZSBlbGFwc2VkIHNpbmNlIHRoZSBzdGFydFxuICAgKi9cbiAgZWxhcHNlZFRpbWUoKTogUHJvbWlzZTxFbGFwc2VkVGltZT47XG4gIC8qKlxuICAgKiBTZW5kcyBhIHNpbXBsZSwgZ2VuZXJpYyBtZXNzYWdlIHdpdGggdGhlIGN1cnJlbnQgdGltaW5nXG4gICAqIEZvciBtb3JlIGNvbXBsZXggaW50ZXJtZWRpYXRlIG1lc3NhZ2VzLCBnZXQgdGhlIGBlbGFwc2VkVGltZWAgYW5kIHVzZSBgbm90aWZ5YFxuICAgKi9cbiAgdGltaW5nKG1ha2VyOiBtYWtlLklvTWVzc2FnZU1ha2VyPER1cmF0aW9uPiwgbWVzc2FnZT86IHN0cmluZyk6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogRW5kIHRoZSBzcGFuIHdpdGggYSBwYXlsb2FkXG4gICAqL1xuICBlbmQocGF5bG9hZDogU3BhbkVuZEFyZ3VtZW50czxFPik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogRW5kIHRoZSBzcGFuIHdpdGggYSBtZXNzYWdlIGFuZCBwYXlsb2FkXG4gICAqL1xuICBlbmQobWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBTcGFuRW5kQXJndW1lbnRzPEU+KTogUHJvbWlzZTxFbGFwc2VkVGltZT47XG5cbiAgLyoqXG4gICAqIEluY3JlbWVudCBhIGNvdW50ZXJcbiAgICovXG4gIGluY0NvdW50ZXIobmFtZTogc3RyaW5nLCBkZWx0YT86IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG5ldyB0aW1lciBvYmplY3RcbiAgICpcbiAgICogSXQgd2lsbCBiZSBhZGRlZCBpbnRvIHRoZSBzcGFuIGRhdGEgd2hlbiBpdCdzIHN0b3BwZWQuIEFsbCBvcGVuIHRpbWVycyBhcmVcbiAgICogYXV0b21hdGljYWxseSBzdG9wcGVkIHdoZW4gdGhlIHNwYW4gaXMgZW5kZWQuXG4gICAqXG4gICAqIFRpbWVycyBhcmUgdWx0aW1hdGVseSBhZGRlZCB0byB0aGUgYGNvdW50ZXJzYCBhcnJheSB3aXRoIGA8bmFtZT5fbXNgIGFuZFxuICAgKiBgPG5hbWU+X2NudGAga2V5cy5cbiAgICovXG4gIHN0YXJ0VGltZXIobmFtZTogc3RyaW5nKTogSVRpbWVyO1xufVxuXG4vKipcbiAqIEEgdGltZXIgdG8gdGltZSBhbiBvcGVyYXRpb24gaW4gYSBzcGFuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUaW1lciB7XG4gIHN0b3AoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgdG8gbWFrZSBzcGFucyBhcm91bmQgYmxvY2tzIG9mIHdvcmtcbiAqXG4gKiBCbG9ja3MgYXJlIGVuY2xvc2VkIGJ5IGEgc3RhcnQgYW5kIGVuZCBtZXNzYWdlLlxuICogQWxsIG1lc3NhZ2VzIG9mIHRoZSBzcGFuIHNoYXJlIGEgdW5pcXVlIGlkLlxuICogVGhlIGVuZCBtZXNzYWdlIGNvbnRhaW5zIHRoZSB0aW1lIHBhc3NlZCBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTcGFuTWFrZXI8UyBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIFNwYW5FbmQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPjtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgbWFrZUhlbHBlcjogKGlvSG9zdDogSUFjdGlvbkF3YXJlSW9Ib3N0KSA9PiBJb0hlbHBlcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPiwgbWFrZUhlbHBlcjogKGlvSG9zdDogSUFjdGlvbkF3YXJlSW9Ib3N0KSA9PiBJb0hlbHBlcikge1xuICAgIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMubWFrZUhlbHBlciA9IG1ha2VIZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIHRoZSBzcGFuIGFuZCBpbml0aWFsbHkgbm90aWZpZXMgdGhlIElvSG9zdFxuICAgKiBAcmV0dXJucyBhIG1lc3NhZ2Ugc3BhblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJlZ2luKHBheWxvYWQ6IFZvaWRXaGVuRW1wdHk8Uz4pOiBQcm9taXNlPElNZXNzYWdlU3BhbjxFPj47XG4gIHB1YmxpYyBhc3luYyBiZWdpbihtZXNzYWdlOiBzdHJpbmcsIHBheWxvYWQ6IFMpOiBQcm9taXNlPElNZXNzYWdlU3BhbjxFPj47XG4gIHB1YmxpYyBhc3luYyBiZWdpbihhOiBhbnksIGI/OiBTKTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+IHtcbiAgICBjb25zdCBzcGFuID0gbmV3IE1lc3NhZ2VTcGFuKHRoaXMuaW9IZWxwZXIsIHRoaXMuZGVmaW5pdGlvbiwgdGhpcy5tYWtlSGVscGVyKTtcbiAgICBjb25zdCBzdGFydElucHV0ID0gcGFyc2VBcmdzPFM+KGEsIGIpO1xuICAgIGNvbnN0IHN0YXJ0TXNnID0gc3RhcnRJbnB1dC5tZXNzYWdlID8/IGBTdGFydGluZyAke3RoaXMuZGVmaW5pdGlvbi5uYW1lfSAuLi5gO1xuICAgIGNvbnN0IHN0YXJ0UGF5bG9hZCA9IHN0YXJ0SW5wdXQucGF5bG9hZDtcbiAgICBhd2FpdCBzcGFuLm5vdGlmeSh0aGlzLmRlZmluaXRpb24uc3RhcnQubXNnKHN0YXJ0TXNnLCBzdGFydFBheWxvYWQpKTtcblxuICAgIHJldHVybiBzcGFuO1xuICB9XG59XG5cbmNsYXNzIE1lc3NhZ2VTcGFuPFMgZXh0ZW5kcyBvYmplY3QsIEUgZXh0ZW5kcyBTcGFuRW5kPiBpbXBsZW1lbnRzIElNZXNzYWdlU3BhbjxFPiB7XG4gIHB1YmxpYyByZWFkb25seSBhc0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPjtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3BhbklkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhcnRUaW1lOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGltaW5nTXNnVGVtcGxhdGU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb3VudGVyczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IG9wZW5UaW1lcnMgPSBuZXcgU2V0PElUaW1lcj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPiwgbWFrZUhlbHBlcjogKGlvSG9zdDogSUFjdGlvbkF3YXJlSW9Ib3N0KSA9PiBJb0hlbHBlcikge1xuICAgIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMuc3BhbklkID0gdXVpZC52NCgpO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgdGhpcy50aW1pbmdNc2dUZW1wbGF0ZSA9ICdcXG7inKggICVzIHRpbWU6ICVkc1xcbic7XG4gICAgdGhpcy5hc0hlbHBlciA9IG1ha2VIZWxwZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRzKCk6IElvRGVmYXVsdE1lc3NhZ2VzIHtcbiAgICByZXR1cm4gdGhpcy5hc0hlbHBlci5kZWZhdWx0cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBlbGFwc2VkVGltZSgpOiBQcm9taXNlPEVsYXBzZWRUaW1lPiB7XG4gICAgcmV0dXJuIHRoaXMudGltZSgpO1xuICB9XG4gIHB1YmxpYyBhc3luYyB0aW1pbmcobWFrZXI6IG1ha2UuSW9NZXNzYWdlTWFrZXI8RHVyYXRpb24+LCBtZXNzYWdlPzogc3RyaW5nKTogUHJvbWlzZTxFbGFwc2VkVGltZT4ge1xuICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy50aW1lKCk7XG4gICAgY29uc3QgdGltaW5nTXNnID0gbWVzc2FnZSA/IG1lc3NhZ2UgOiB1dGlsLmZvcm1hdCh0aGlzLnRpbWluZ01zZ1RlbXBsYXRlLCB0aGlzLmRlZmluaXRpb24ubmFtZSwgZHVyYXRpb24uYXNTZWMpO1xuICAgIGF3YWl0IHRoaXMubm90aWZ5KG1ha2VyLm1zZyh0aW1pbmdNc2csIHtcbiAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbi5hc01zLFxuICAgIH0pKTtcbiAgICByZXR1cm4gZHVyYXRpb247XG4gIH1cbiAgcHVibGljIGFzeW5jIG5vdGlmeShtc2c6IEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KHdpdGhTcGFuSWQodGhpcy5zcGFuSWQsIG1zZykpO1xuICB9XG4gIHB1YmxpYyBhc3luYyBlbmQoeDogYW55LCB5PzogU3BhbkVuZEFyZ3VtZW50czxFPik6IFByb21pc2U8RWxhcHNlZFRpbWU+IHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMudGltZSgpO1xuXG4gICAgZm9yIChjb25zdCB0IG9mIHRoaXMub3BlblRpbWVycykge1xuICAgICAgdC5zdG9wKCk7XG4gICAgfVxuICAgIHRoaXMub3BlblRpbWVycy5jbGVhcigpO1xuXG4gICAgY29uc3QgZW5kSW5wdXQgPSBwYXJzZUFyZ3M8U3BhbkVuZEFyZ3VtZW50czxFPj4oeCwgeSk7XG4gICAgY29uc3QgZW5kTXNnID0gZW5kSW5wdXQubWVzc2FnZSA/PyB1dGlsLmZvcm1hdCh0aGlzLnRpbWluZ01zZ1RlbXBsYXRlLCB0aGlzLmRlZmluaXRpb24ubmFtZSwgZHVyYXRpb24uYXNTZWMpO1xuICAgIGNvbnN0IGVuZFBheWxvYWQgPSBlbmRJbnB1dC5wYXlsb2FkO1xuXG4gICAgYXdhaXQgdGhpcy5ub3RpZnkodGhpcy5kZWZpbml0aW9uLmVuZC5tc2coXG4gICAgICBlbmRNc2csIHtcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLmFzTXMsXG4gICAgICAgIC4uLihPYmplY3Qua2V5cyh0aGlzLmNvdW50ZXJzKS5sZW5ndGggPiAwID8geyBjb3VudGVyczogdGhpcy5jb3VudGVycyB9IDoge30pLFxuICAgICAgICAuLi5lbmRQYXlsb2FkLFxuICAgICAgfSBhcyBFKSk7XG5cbiAgICByZXR1cm4gZHVyYXRpb247XG4gIH1cblxuICBwdWJsaWMgaW5jQ291bnRlcihuYW1lOiBzdHJpbmcsIGRlbHRhOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgdGhpcy5jb3VudGVyc1tuYW1lXSA9ICh0aGlzLmNvdW50ZXJzW25hbWVdID8/IDApICsgZGVsdGE7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdFJlc3BvbnNlPFQ+KG1zZzogQWN0aW9uTGVzc1JlcXVlc3Q8dW5rbm93biwgVD4pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2Uod2l0aFNwYW5JZCh0aGlzLnNwYW5JZCwgbXNnKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnRUaW1lcihuYW1lOiBzdHJpbmcpOiBJVGltZXIge1xuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IHQ6IElUaW1lciA9IHtcbiAgICAgIHN0b3A6ICgpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuVGltZXJzLmRlbGV0ZSh0KTtcbiAgICAgICAgdGhpcy5pbmNDb3VudGVyKGAke25hbWV9X21zYCwgTWF0aC5mbG9vcihEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCk7XG4gICAgICAgIHRoaXMuaW5jQ291bnRlcihgJHtuYW1lfV9jbnRgLCAxKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm9wZW5UaW1lcnMuYWRkKHQpO1xuICAgIHJldHVybiB0O1xuICB9XG5cbiAgcHJpdmF0ZSB0aW1lKCkge1xuICAgIGNvbnN0IGVsYXBzZWRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLnN0YXJ0VGltZTtcbiAgICByZXR1cm4ge1xuICAgICAgYXNNczogZWxhcHNlZFRpbWUsXG4gICAgICBhc1NlYzogZm9ybWF0VGltZShlbGFwc2VkVGltZSksXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3M8Uz4oZmlyc3Q6IGFueSwgc2Vjb25kPzogUyk6IHsgbWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkOyBwYXlsb2FkOiBTIH0ge1xuICBjb25zdCBmaXJzdElzTWVzc2FnZSA9IHR5cGVvZiBmaXJzdCA9PT0gJ3N0cmluZyc7XG5cbiAgLy8gV2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcgb3Igd2UgaGF2ZSBhIHNlY29uZCBhcmd1bWVudCwgdGhlbiB0aGUgZmlyc3QgYXJnIGlzIHRoZSBtZXNzYWdlXG4gIGNvbnN0IG1lc3NhZ2UgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IGZpcnN0IDogdW5kZWZpbmVkO1xuXG4gIC8vIFdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgc3RyaW5nIG9yIHdlIGhhdmUgYSBzZWNvbmQgYXJndW1lbnQsXG4gIC8vIHRoZW4gdGhlIHNlY29uZCBhcmcgaXMgdGhlIHBheWxvYWQsIG90aGVyd2lzZSB0aGUgZmlyc3QgYXJnIGlzIHRoZSBwYXlsb2FkXG4gIGNvbnN0IHBheWxvYWQgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IHNlY29uZCA6IGZpcnN0O1xuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZSxcbiAgICBwYXlsb2FkLFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRoU3BhbklkPFQgZXh0ZW5kcyBvYmplY3Q+KHNwYW46IHN0cmluZywgbWVzc2FnZTogVCk6IFQgJiB7IHNwYW46IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5tZXNzYWdlLFxuICAgIHNwYW4sXG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWYWxpZCByZXBvcnRpbmcgY2F0ZWdvcmllcyBmb3IgbWVzc2FnZXMuXG4gKi9cbmV4cG9ydCB0eXBlIElvTWVzc2FnZUNvZGVDYXRlZ29yeSA9ICdUT09MS0lUJyB8ICdTREsnIHwgJ0FTU0VUUycgfCAnQVNTRU1CTFknO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sa2l0LWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY3VycmVudCBhY3Rpb24gYmVpbmcgcGVyZm9ybWVkIGJ5IHRoZSBUb29sa2l0LlxuICovXG5leHBvcnQgdHlwZSBUb29sa2l0QWN0aW9uID1cbnwgJ2Fzc2VtYmx5J1xufCAnYm9vdHN0cmFwJ1xufCAnc3ludGgnXG58ICdsaXN0J1xufCAnZGlmZidcbnwgJ2RlcGxveSdcbnwgJ2RyaWZ0J1xufCAncm9sbGJhY2snXG58ICdwdWJsaXNoLWFzc2V0cydcbnwgJ3dhdGNoJ1xufCAnZGVzdHJveSdcbnwgJ2RvY3RvcidcbnwgJ2djJ1xufCAnaW1wb3J0J1xufCAnbWV0YWRhdGEnXG58ICdpbml0J1xufCAnbWlncmF0ZSdcbnwgJ3JlZmFjdG9yJ1xufCAnZmxhZ3MnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findCloudWatchLogGroups = findCloudWatchLogGroups;\nconst util_1 = require(\"../../util\");\nconst cloudformation_1 = require(\"../cloudformation\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\nconst toolkit_info_1 = require(\"../toolkit-info\");\n// resource types that have associated CloudWatch Log Groups that should _not_ be monitored\nconst IGNORE_LOGS_RESOURCE_TYPES = ['AWS::EC2::FlowLog', 'AWS::CloudTrail::Trail', 'AWS::CodeBuild::Project'];\nasync function findCloudWatchLogGroups(sdkProvider, ioHelper, stackArtifact) {\n let sdk;\n const resolvedEnv = await sdkProvider.resolveEnvironment(stackArtifact.environment);\n // try to assume the lookup role and fallback to the default credentials\n try {\n sdk = (await new environment_1.EnvironmentAccess(sdkProvider, toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME, ioHelper).accessStackForLookup(stackArtifact)).sdk;\n }\n catch (e) {\n await ioHelper.defaults.debug(`Failed to access SDK environment: ${(0, util_1.formatErrorMessage)(e)}`);\n sdk = (await sdkProvider.forEnvironment(resolvedEnv, plugin_1.Mode.ForReading)).sdk;\n }\n const listStackResources = new cloudformation_1.LazyListStackResources(sdk, stackArtifact.stackName);\n const evaluateCfnTemplate = new cloudformation_1.EvaluateCloudFormationTemplate({\n stackArtifact,\n parameters: {},\n account: resolvedEnv.account,\n region: resolvedEnv.region,\n partition: (await sdk.currentAccount()).partition,\n sdk,\n });\n const stackResources = await listStackResources.listStackResources();\n const logGroupNames = findAllLogGroupNames(stackResources, evaluateCfnTemplate);\n return {\n env: resolvedEnv,\n sdk,\n logGroupNames,\n };\n}\n/**\n * Determine if a CloudWatch Log Group is associated\n * with an ignored resource\n */\nfunction isReferencedFromIgnoredResource(logGroupResource, evaluateCfnTemplate) {\n const resourcesReferencingLogGroup = evaluateCfnTemplate.findReferencesTo(logGroupResource.LogicalResourceId);\n return resourcesReferencingLogGroup.some((reference) => {\n return IGNORE_LOGS_RESOURCE_TYPES.includes(reference.Type);\n });\n}\nconst cloudWatchLogsResolvers = {\n 'AWS::Logs::LogGroup': (resource, evaluateCfnTemplate) => {\n if (isReferencedFromIgnoredResource(resource, evaluateCfnTemplate)) {\n return undefined;\n }\n return resource.PhysicalResourceId?.toString();\n },\n // Resource types that will create a CloudWatch log group with a specific name if one is not provided.\n // The keys are CFN resource types, and the values are the name of the physical name property of that resource\n // and the service name that is used in the automatically created CloudWatch log group.\n 'AWS::Lambda::Function': (resource, evaluateCfnTemplate) => {\n const loggingConfig = evaluateCfnTemplate.getResourceProperty(resource.LogicalResourceId, 'LoggingConfig');\n if (loggingConfig?.LogGroup) {\n // if LogGroup is a string then use it as the LogGroupName as it is referred by LogGroup.fromLogGroupArn in CDK\n if (typeof loggingConfig.LogGroup === 'string') {\n return loggingConfig.LogGroup;\n }\n // if { Ref: '...' } is used then try to resolve the LogGroupName from the referenced resource in the template\n if (typeof loggingConfig.LogGroup === 'object') {\n if (loggingConfig.LogGroup.Ref) {\n return evaluateCfnTemplate.getResourceProperty(loggingConfig.LogGroup.Ref, 'LogGroupName');\n }\n }\n }\n return `/aws/lambda/${resource.PhysicalResourceId}`;\n },\n};\n/**\n * Find all CloudWatch Log Groups in the deployed template.\n * This will find both explicitly created Log Groups (excluding those associated with ignored resources)\n * and Log Groups created implicitly (i.e. Lambda Functions)\n */\nfunction findAllLogGroupNames(stackResources, evaluateCfnTemplate) {\n const logGroupNames = [];\n for (const resource of stackResources) {\n const logGroupResolver = cloudWatchLogsResolvers[resource.ResourceType];\n if (logGroupResolver) {\n const logGroupName = logGroupResolver(resource, evaluateCfnTemplate);\n if (logGroupName) {\n logGroupNames.push(logGroupName);\n }\n }\n }\n return logGroupNames;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG91ZHdhdGNoLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaW5kLWNsb3Vkd2F0Y2gtbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSwwREFpQ0M7QUFwRUQscUNBQWdEO0FBRWhELHNEQUEyRjtBQUMzRixnREFBbUQ7QUFFbkQsc0NBQWlDO0FBQ2pDLGtEQUE2RDtBQUU3RCwyRkFBMkY7QUFDM0YsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUEwQnZHLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsV0FBd0IsRUFDeEIsUUFBa0IsRUFDbEIsYUFBMEM7SUFFMUMsSUFBSSxHQUFRLENBQUM7SUFDYixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEYsd0VBQXdFO0lBQ3hFLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSwrQkFBaUIsQ0FBQyxXQUFXLEVBQUUseUNBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDakksQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsSUFBQSx5QkFBa0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUYsR0FBRyxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxhQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDN0UsQ0FBQztJQUVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx1Q0FBc0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BG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QWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBFbnZpcm9ubWVudCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrUmVzb3VyY2VTdW1tYXJ5IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudEFjY2VzcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgfSBmcm9tICcuLi90b29sa2l0LWluZm8nO1xuXG4vLyByZXNvdXJjZSB0eXBlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBDbG91ZFdhdGNoIExvZyBHcm91cHMgdGhhdCBzaG91bGQgX25vdF8gYmUgbW9uaXRvcmVkXG5jb25zdCBJR05PUkVfTE9HU19SRVNPVVJDRV9UWVBFUyA9IFsnQVdTOjpFQzI6OkZsb3dMb2cnLCAnQVdTOjpDbG91ZFRyYWlsOjpUcmFpbCcsICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCddO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gbmVlZGVkIHRvIG1vbml0b3IgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gKiBmb3VuZCBpbiBhIGdpdmVuIENsb3VkRm9ybWF0aW9uIFN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm91bmRMb2dHcm91cHNSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHJlc29sdmVkIGVudmlyb25tZW50IChhY2NvdW50L3JlZ2lvbikgdGhhdCB0aGUgbG9nXG4gICAqIGdyb3VwcyBhcmUgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIGV2ZW50cyBmcm9tIHRoZSBDbG91ZFdhdGNoXG4gICAqIExvZyBHcm91cHMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSByZWxldmFudCBDbG91ZFdhdGNoIExvZyBHcm91cHNcbiAgICogaW4gdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRDbG91ZFdhdGNoTG9nR3JvdXBzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tBcnRpZmFjdDogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuKTogUHJvbWlzZTxGb3VuZExvZ0dyb3Vwc1Jlc3VsdD4ge1xuICBsZXQgc2RrOiBTREs7XG4gIGNvbnN0IHJlc29sdmVkRW52ID0gYXdhaXQgc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrQXJ0aWZhY3QuZW52aXJvbm1lbnQpO1xuICAvLyB0cnkgdG8gYXNzdW1lIHRoZSBsb29rdXAgcm9sZSBhbmQgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgY3JlZGVudGlhbHNcbiAgdHJ5IHtcbiAgICBzZGsgPSAoYXdhaXQgbmV3IEVudmlyb25tZW50QWNjZXNzKHNka1Byb3ZpZGVyLCBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSwgaW9IZWxwZXIpLmFjY2Vzc1N0YWNrRm9yTG9va3VwKHN0YWNrQXJ0aWZhY3QpKS5zZGs7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBGYWlsZWQgdG8gYWNjZXNzIFNESyBlbnZpcm9ubWVudDogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCk7XG4gICAgc2RrID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KHJlc29sdmVkRW52LCBNb2RlLkZvclJlYWRpbmcpKS5zZGs7XG4gIH1cblxuICBjb25zdCBsaXN0U3RhY2tSZXNvdXJjZXMgPSBuZXcgTGF6eUxpc3RTdGFja1Jlc291cmNlcyhzZGssIHN0YWNrQXJ0aWZhY3Quc3RhY2tOYW1lKTtcbiAgY29uc3QgZXZhbHVhdGVDZm5UZW1wbGF0ZSA9IG5ldyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoe1xuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgcGFyYW1ldGVyczoge30sXG4gICAgYWNjb3VudDogcmVzb2x2ZWRFbnYuYWNjb3VudCxcbiAgICByZWdpb246IHJlc29sdmVkRW52LnJlZ2lvbixcbiAgICBwYXJ0aXRpb246IChhd2FpdCBzZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uLFxuICAgIHNkayxcbiAgfSk7XG5cbiAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBhd2FpdCBsaXN0U3RhY2tSZXNvdXJjZXMubGlzdFN0YWNrUmVzb3VyY2VzKCk7XG4gIGNvbnN0IGxvZ0dyb3VwTmFtZXMgPSBmaW5kQWxsTG9nR3JvdXBOYW1lcyhzdGFja1Jlc291cmNlcywgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBlbnY6IHJlc29sdmVkRW52LFxuICAgIHNkayxcbiAgICBsb2dHcm91cE5hbWVzLFxuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIENsb3VkV2F0Y2ggTG9nIEdyb3VwIGlzIGFzc29jaWF0ZWRcbiAqIHdpdGggYW4gaWdub3JlZCByZXNvdXJjZVxuICovXG5mdW5jdGlvbiBpc1JlZmVyZW5jZWRGcm9tSWdub3JlZFJlc291cmNlKFxuICBsb2dHcm91cFJlc291cmNlOiBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHJlc291cmNlc1JlZmVyZW5jaW5nTG9nR3JvdXAgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmZpbmRSZWZlcmVuY2VzVG8obG9nR3JvdXBSZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZCEpO1xuICByZXR1cm4gcmVzb3VyY2VzUmVmZXJlbmNpbmdMb2dHcm91cC5zb21lKChyZWZlcmVuY2UpID0+IHtcbiAgICByZXR1cm4gSUdOT1JFX0xPR1NfUkVTT1VSQ0VfVFlQRVMuaW5jbHVkZXMocmVmZXJlbmNlLlR5cGUpO1xuICB9KTtcbn1cblxudHlwZSBDbG91ZFdhdGNoTG9nc1Jlc29sdmVyID0gKFxuICByZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnksXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBjbG91ZFdhdGNoTG9nc1Jlc29sdmVyczogUmVjb3JkPHN0cmluZywgQ2xvdWRXYXRjaExvZ3NSZXNvbHZlcj4gPSB7XG4gICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJzogKHJlc291cmNlLCBldmFsdWF0ZUNmblRlbXBsYXRlKSA9PiB7XG4gICAgaWYgKGlzUmVmZXJlbmNlZEZyb21JZ25vcmVkUmVzb3VyY2UocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkPy50b1N0cmluZygpO1xuICB9LFxuXG4gIC8vIFJlc291cmNlIHR5cGVzIHRoYXQgd2lsbCBjcmVhdGUgYSBDbG91ZFdhdGNoIGxvZyBncm91cCB3aXRoIGEgc3BlY2lmaWMgbmFtZSBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICAvLyBUaGUga2V5cyBhcmUgQ0ZOIHJlc291cmNlIHR5cGVzLCBhbmQgdGhlIHZhbHVlcyBhcmUgdGhlIG5hbWUgb2YgdGhlIHBoeXNpY2FsIG5hbWUgcHJvcGVydHkgb2YgdGhhdCByZXNvdXJjZVxuICAvLyBhbmQgdGhlIHNlcnZpY2UgbmFtZSB0aGF0IGlzIHVzZWQgaW4gdGhlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBDbG91ZFdhdGNoIGxvZyBncm91cC5cbiAgJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbic6IChyZXNvdXJjZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxvZ2dpbmdDb25maWcgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmdldFJlc291cmNlUHJvcGVydHkocmVzb3VyY2UuTG9naWNhbFJlc291cmNlSWQhLCAnTG9nZ2luZ0NvbmZpZycpO1xuICAgIGlmIChsb2dnaW5nQ29uZmlnPy5Mb2dHcm91cCkge1xuICAgICAgLy8gaWYgTG9nR3JvdXAgaXMgYSBzdHJpbmcgdGhlbiB1c2UgaXQgYXMgdGhlIExvZ0dyb3VwTmFtZSBhcyBpdCBpcyByZWZlcnJlZCBieSBMb2dHcm91cC5mcm9tTG9nR3JvdXBBcm4gaW4gQ0RLXG4gICAgICBpZiAodHlwZW9mIGxvZ2dpbmdDb25maWcuTG9nR3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB7IFJlZjogJy4uLicgfSBpcyB1c2VkIHRoZW4gdHJ5IHRvIHJlc29sdmUgdGhlIExvZ0dyb3VwTmFtZSBmcm9tIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKHR5cGVvZiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAobG9nZ2luZ0NvbmZpZy5Mb2dHcm91cC5SZWYpIHtcbiAgICAgICAgICByZXR1cm4gZXZhbHVhdGVDZm5UZW1wbGF0ZS5nZXRSZXNvdXJjZVByb3BlcnR5KGxvZ2dpbmdDb25maWcuTG9nR3JvdXAuUmVmLCAnTG9nR3JvdXBOYW1lJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYC9hd3MvbGFtYmRhLyR7cmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkfWA7XG4gIH0sXG59O1xuXG4vKipcbiAqIEZpbmQgYWxsIENsb3VkV2F0Y2ggTG9nIEdyb3VwcyBpbiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUuXG4gKiBUaGlzIHdpbGwgZmluZCBib3RoIGV4cGxpY2l0bHkgY3JlYXRlZCBMb2cgR3JvdXBzIChleGNsdWRpbmcgdGhvc2UgYXNzb2NpYXRlZCB3aXRoIGlnbm9yZWQgcmVzb3VyY2VzKVxuICogYW5kIExvZyBHcm91cHMgY3JlYXRlZCBpbXBsaWNpdGx5IChpLmUuIExhbWJkYSBGdW5jdGlvbnMpXG4gKi9cbmZ1bmN0aW9uIGZpbmRBbGxMb2dHcm91cE5hbWVzKFxuICBzdGFja1Jlc291cmNlczogU3RhY2tSZXNvdXJjZVN1bW1hcnlbXSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVzb3VyY2Ugb2Ygc3RhY2tSZXNvdXJjZXMpIHtcbiAgICBjb25zdCBsb2dHcm91cFJlc29sdmVyID0gY2xvdWRXYXRjaExvZ3NSZXNvbHZlcnNbcmVzb3VyY2UuUmVzb3VyY2VUeXBlIV07XG4gICAgaWYgKGxvZ0dyb3VwUmVzb2x2ZXIpIHtcbiAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGxvZ0dyb3VwUmVzb2x2ZXIocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpO1xuICAgICAgaWYgKGxvZ0dyb3VwTmFtZSkge1xuICAgICAgICBsb2dHcm91cE5hbWVzLnB1c2gobG9nR3JvdXBOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9nR3JvdXBOYW1lcztcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./logs-monitor\"), exports);\n__exportStar(require(\"./find-cloudwatch-logs\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQStCO0FBQy9CLHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9ncy1tb25pdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1jbG91ZHdhdGNoLWxvZ3MnO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudWatchLogEventMonitor = void 0;\nconst util = require(\"util\");\nconst chalk = require(\"chalk\");\nconst uuid = require(\"uuid\");\nconst util_1 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nclass CloudWatchLogEventMonitor {\n /**\n * Determines which events not to display\n */\n startTime;\n /**\n * Map of environment (account:region) to LogGroupsAccessSettings\n */\n envsLogGroupsAccessSettings = new Map();\n /**\n * After reading events from all CloudWatch log groups\n * how long should we wait to read more events.\n *\n * If there is some error with reading events (i.e. Throttle)\n * then this is also how long we wait until we try again\n */\n pollingInterval = 2_000;\n monitorId;\n ioHelper;\n currentTick;\n constructor(props) {\n this.startTime = props.startTime?.getTime() ?? Date.now();\n this.ioHelper = props.ioHelper;\n }\n /**\n * resume reading/printing events\n */\n async activate() {\n this.monitorId = uuid.v4();\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5032.msg('Start monitoring log groups', {\n monitor: this.monitorId,\n logGroupNames: this.logGroupNames(),\n }));\n // tick schedules the next tick as well\n await this.tick();\n }\n /**\n * deactivates the monitor so no new events are read\n * use case for this is when we are in the middle of performing a deployment\n * and don't want to interweave all the logs together with the CFN\n * deployment logs\n *\n * Also resets the start time to be when the new deployment was triggered\n * and clears the list of tracked log groups\n */\n async deactivate() {\n const oldMonitorId = this.monitorId;\n this.monitorId = undefined;\n this.startTime = Date.now();\n clearTimeout(this.currentTick);\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5034.msg('Stopped monitoring log groups', {\n monitor: oldMonitorId,\n logGroupNames: this.logGroupNames(),\n }));\n this.envsLogGroupsAccessSettings.clear();\n }\n /**\n * Adds CloudWatch log groups to read log events from.\n * Since we could be watching multiple stacks that deploy to\n * multiple environments (account+region), we need to store a list of log groups\n * per env along with the SDK object that has access to read from\n * that environment.\n */\n addLogGroups(env, sdk, logGroupNames) {\n const awsEnv = `${env.account}:${env.region}`;\n const logGroupsStartTimes = logGroupNames.reduce((acc, groupName) => {\n acc[groupName] = this.startTime;\n return acc;\n }, {});\n this.envsLogGroupsAccessSettings.set(awsEnv, {\n sdk,\n logGroupsStartTimes: {\n ...this.envsLogGroupsAccessSettings.get(awsEnv)?.logGroupsStartTimes,\n ...logGroupsStartTimes,\n },\n });\n }\n logGroupNames() {\n return Array.from(this.envsLogGroupsAccessSettings.values()).flatMap((settings) => Object.keys(settings.logGroupsStartTimes));\n }\n scheduleNextTick() {\n if (!this.monitorId) {\n return;\n }\n this.currentTick = setTimeout(() => void this.tick(), this.pollingInterval);\n }\n async tick() {\n // excluding from codecoverage because this\n // doesn't always run (depends on timing)\n /* c8 ignore start */\n if (!this.monitorId) {\n return;\n }\n /* c8 ignore stop */\n try {\n const events = (0, util_1.flatten)(await this.readNewEvents());\n for (const event of events) {\n await this.print(event);\n }\n // We might have been stop()ped while the network call was in progress.\n if (!this.monitorId) {\n return;\n }\n }\n catch (e) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E5035.msg(`Error occurred while monitoring logs: ${String(e)}`, { error: e }));\n }\n this.scheduleNextTick();\n }\n /**\n * Reads all new log events from a set of CloudWatch Log Groups\n * in parallel\n */\n async readNewEvents() {\n const promises = [];\n for (const settings of this.envsLogGroupsAccessSettings.values()) {\n for (const group of Object.keys(settings.logGroupsStartTimes)) {\n promises.push(this.readEventsFromLogGroup(settings, group));\n }\n }\n // Limited set of log groups\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(promises);\n }\n /**\n * Print out a cloudwatch event\n */\n async print(event) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5033.msg(util.format('[%s] %s %s', chalk.blue(event.logGroupName), chalk.yellow(event.timestamp.toLocaleTimeString()), event.message.trim()), event));\n }\n /**\n * Reads all new log events from a CloudWatch Log Group\n * starting at either the time the hotswap was triggered or\n * when the last event was read on the previous tick\n */\n async readEventsFromLogGroup(logGroupsAccessSettings, logGroupName) {\n const events = [];\n // log events from some service are ingested faster than others\n // so we need to track the start/end time for each log group individually\n // to make sure that we process all events from each log group\n const startTime = logGroupsAccessSettings.logGroupsStartTimes[logGroupName] ?? this.startTime;\n let endTime = startTime;\n try {\n const response = await logGroupsAccessSettings.sdk.cloudWatchLogs().filterLogEvents({\n logGroupName: logGroupName,\n limit: 100,\n startTime: startTime,\n });\n const filteredEvents = response.events ?? [];\n for (const event of filteredEvents) {\n if (event.message) {\n events.push({\n message: event.message,\n logGroupName,\n timestamp: event.timestamp ? new Date(event.timestamp) : new Date(),\n });\n if (event.timestamp && endTime < event.timestamp) {\n endTime = event.timestamp;\n }\n }\n }\n // As long as there are _any_ events in the log group `filterLogEvents` will return a nextToken.\n // This is true even if these events are before `startTime`. So if we have 100 events and a nextToken\n // then assume that we have hit the limit and let the user know some messages have been suppressed.\n // We are essentially showing them a sampling (10000 events printed out is not very useful)\n if (filteredEvents.length === 100 && response.nextToken) {\n events.push({\n message: '>>> `watch` shows only the first 100 log messages - the rest have been truncated...',\n logGroupName,\n timestamp: new Date(endTime),\n });\n }\n }\n catch (e) {\n // with Lambda functions the CloudWatch is not created\n // until something is logged, so just keep polling until\n // there is somthing to find\n if (e.name === 'ResourceNotFoundException') {\n return [];\n }\n throw e;\n }\n logGroupsAccessSettings.logGroupsStartTimes[logGroupName] = endTime + 1;\n return events;\n }\n}\nexports.CloudWatchLogEventMonitor = CloudWatchLogEventMonitor;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLHFDQUFxQztBQUVyQywyQ0FBbUM7QUFvQ25DLE1BQWEseUJBQXlCO0lBQ3BDOztPQUVHO0lBQ0ssU0FBUyxDQUFTO0lBRTFCOztPQUVHO0lBQ2MsMkJBQTJCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFFMUY7Ozs7OztPQU1HO0lBQ2MsZUFBZSxHQUFXLEtBQUssQ0FBQztJQUUxQyxTQUFTLENBQVU7SUFFVCxRQUFRLENBQVc7SUFDNUIsV0FBVyxDQUFrQjtJQUVyQyxZQUFZLEtBQXFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRTNCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRTtZQUNqRixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDdkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7U0FDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSix1Q0FBdUM7UUFDdkMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFD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LEVBQUUscUZBQXFGO29CQUM5RixZQUFZO29CQUNaLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQzdCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixzREFBc0Q7WUFDdEQsd0RBQXdEO1lBQ3hELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssMkJBQTJCLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0QsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUN4RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUE5TkQsOERBOE5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCB9IGZyb20gJy4uLy4uL3BheWxvYWRzL2xvZ3MtbW9uaXRvcic7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRyYWNraW5nIGluZm9ybWF0aW9uIG9uIHRoZSBsb2cgZ3JvdXBzIHRoYXQgYXJlXG4gKiBiZWluZyBtb25pdG9yZWRcbiAqL1xuaW50ZXJmYWNlIExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBTREsgZm9yIGEgZ2l2ZW4gZW52aXJvbm1lbnQgKGFjY291bnQvcmVnaW9uKVxuICAgKi9cbiAgcmVhZG9ubHkgc2RrOiBTREs7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGxvZyBncm91cHMgYW5kIGFzc29jaWF0ZWQgc3RhcnRUaW1lIGluIGEgZ2l2ZW4gYWNjb3VudC5cbiAgICpcbiAgICogVGhlIG1vbml0b3Igd2lsbCByZWFkIGV2ZW50cyBmcm9tIHRoZSBsb2cgZ3JvdXAgc3RhcnRpbmcgYXQgdGhlXG4gICAqIGFzc29jaWF0ZWQgc3RhcnRUaW1lXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHNTdGFydFRpbWVzOiB7IFtsb2dHcm91cE5hbWU6IHN0cmluZ106IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSW9Ib3N0IHVzZWQgZm9yIG1lc3NhZ2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBmcm9tIHdoaWNoIHdlIHN0YXJ0IHJlYWRpbmcgbG9nIG1lc3NhZ2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm93XG4gICAqL1xuICByZWFkb25seSBzdGFydFRpbWU/OiBEYXRlO1xufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvciB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoaWNoIGV2ZW50cyBub3QgdG8gZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFRpbWU6IG51bWJlcjtcblxuICAvKipcbiAgICogTWFwIG9mIGVudmlyb25tZW50IChhY2NvdW50OnJlZ2lvbikgdG8gTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzID0gbmV3IE1hcDxzdHJpbmcsIExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzPigpO1xuXG4gIC8qKlxuICAgKiBBZnRlciByZWFkaW5nIGV2ZW50cyBmcm9tIGFsbCBDbG91ZFdhdGNoIGxvZyBncm91cHNcbiAgICogaG93IGxvbmcgc2hvdWxkIHdlIHdhaXQgdG8gcmVhZCBtb3JlIGV2ZW50cy5cbiAgICpcbiAgICogSWYgdGhlcmUgaXMgc29tZSBlcnJvciB3aXRoIHJlYWRpbmcgZXZlbnRzIChpLmUuIFRocm90dGxlKVxuICAgKiB0aGVuIHRoaXMgaXMgYWxzbyBob3cgbG9uZyB3ZSB3YWl0IHVudGlsIHdlIHRyeSBhZ2FpblxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwb2xsaW5nSW50ZXJ2YWw6IG51bWJlciA9IDJfMDAwO1xuXG4gIHB1YmxpYyBtb25pdG9ySWQ/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG4gIHByaXZhdGUgY3VycmVudFRpY2s/OiBOb2RlSlMuVGltZW91dDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvclByb3BzKSB7XG4gICAgdGhpcy5zdGFydFRpbWUgPSBwcm9wcy5zdGFydFRpbWU/LmdldFRpbWUoKSA/PyBEYXRlLm5vdygpO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBwcm9wcy5pb0hlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXN1bWUgcmVhZGluZy9wcmludGluZyBldmVudHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBhY3RpdmF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLm1vbml0b3JJZCA9IHV1aWQudjQoKTtcblxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MDMyLm1zZygnU3RhcnQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJywge1xuICAgICAgbW9uaXRvcjogdGhpcy5tb25pdG9ySWQsXG4gICAgICBsb2dHcm91cE5hbWVzOiB0aGlzLmxvZ0dyb3VwTmFtZXMoKSxcbiAgICB9KSk7XG5cbiAgICAvLyB0aWNrIHNjaGVkdWxlcyB0aGUgbmV4dCB0aWNrIGFzIHdlbGxcbiAgICBhd2FpdCB0aGlzLnRpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWFjdGl2YXRlcyB0aGUgbW9uaXRvciBzbyBubyBuZXcgZXZlbnRzIGFyZSByZWFkXG4gICAqIHVzZSBjYXNlIGZvciB0aGlzIGlzIHdoZW4gd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgcGVyZm9ybWluZyBhIGRlcGxveW1lbnRcbiAgICogYW5kIGRvbid0IHdhbnQgdG8gaW50ZXJ3ZWF2ZSBhbGwgdGhlIGxvZ3MgdG9nZXRoZXIgd2l0aCB0aGUgQ0ZOXG4gICAqIGRlcGxveW1lbnQgbG9nc1xuICAgKlxuICAgKiBBbHNvIHJlc2V0cyB0aGUgc3RhcnQgdGltZSB0byBiZSB3aGVuIHRoZSBuZXcgZGVwbG95bWVudCB3YXMgdHJpZ2dlcmVkXG4gICAqIGFuZCBjbGVhcnMgdGhlIGxpc3Qgb2YgdHJhY2tlZCBsb2cgZ3JvdXBzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVhY3RpdmF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvbGRNb25pdG9ySWQgPSB0aGlzLm1vbml0b3JJZCE7XG4gICAgdGhpcy5tb25pdG9ySWQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmN1cnJlbnRUaWNrKTtcblxuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MDM0Lm1zZygnU3RvcHBlZCBtb25pdG9yaW5nIGxvZyBncm91cHMnLCB7XG4gICAgICBtb25pdG9yOiBvbGRNb25pdG9ySWQsXG4gICAgICBsb2dHcm91cE5hbWVzOiB0aGlzLmxvZ0dyb3VwTmFtZXMoKSxcbiAgICB9KSk7XG5cbiAgICB0aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgQ2xvdWRXYXRjaCBsb2cgZ3JvdXBzIHRvIHJlYWQgbG9nIGV2ZW50cyBmcm9tLlxuICAgKiBTaW5jZSB3ZSBjb3VsZCBiZSB3YXRjaGluZyBtdWx0aXBsZSBzdGFja3MgdGhhdCBkZXBsb3kgdG9cbiAgICogbXVsdGlwbGUgZW52aXJvbm1lbnRzIChhY2NvdW50K3JlZ2lvbiksIHdlIG5lZWQgdG8gc3RvcmUgYSBsaXN0IG9mIGxvZyBncm91cHNcbiAgICogcGVyIGVudiBhbG9uZyB3aXRoIHRoZSBTREsgb2JqZWN0IHRoYXQgaGFzIGFjY2VzcyB0byByZWFkIGZyb21cbiAgICogdGhhdCBlbnZpcm9ubWVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRMb2dHcm91cHMoZW52OiBjeGFwaS5FbnZpcm9ubWVudCwgc2RrOiBTREssIGxvZ0dyb3VwTmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgYXdzRW52ID0gYCR7ZW52LmFjY291bnR9OiR7ZW52LnJlZ2lvbn1gO1xuICAgIGNvbnN0IGxvZ0dyb3Vwc1N0YXJ0VGltZXMgPSBsb2dHcm91cE5hbWVzLnJlZHVjZShcbiAgICAgIChhY2MsIGdyb3VwTmFtZSkgPT4ge1xuICAgICAgICBhY2NbZ3JvdXBOYW1lXSA9IHRoaXMuc3RhcnRUaW1lO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIHsgW2xvZ0dyb3VwTmFtZTogc3RyaW5nXTogbnVtYmVyIH0sXG4gICAgKTtcbiAgICB0aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5zZXQoYXdzRW52LCB7XG4gICAgICBzZGssXG4gICAgICBsb2dHcm91cHNTdGFydFRpbWVzOiB7XG4gICAgICAgIC4uLnRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmdldChhd3NFbnYpPy5sb2dHcm91cHNTdGFydFRpbWVzLFxuICAgICAgICAuLi5sb2dHcm91cHNTdGFydFRpbWVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9nR3JvdXBOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MudmFsdWVzKCkpLmZsYXRNYXAoKHNldHRpbmdzKSA9PiBPYmplY3Qua2V5cyhzZXR0aW5ncy5sb2dHcm91cHNTdGFydFRpbWVzKSk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlTmV4dFRpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFRpY2sgPSBzZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50aWNrKCksIHRoaXMucG9sbGluZ0ludGVydmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBleGNsdWRpbmcgZnJvbSBjb2RlY292ZXJhZ2UgYmVjYXVzZSB0aGlzXG4gICAgLy8gZG9lc24ndCBhbHdheXMgcnVuIChkZXBlbmRzIG9uIHRpbWluZylcbiAgICAvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbiAgICBpZiAoIXRoaXMubW9uaXRvcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8qIGM4IGlnbm9yZSBzdG9wICovXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZXZlbnRzID0gZmxhdHRlbihhd2FpdCB0aGlzLnJlYWROZXdFdmVudHMoKSk7XG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICBhd2FpdCB0aGlzLnByaW50KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBiZWVuIHN0b3AoKXBlZCB3aGlsZSB0aGUgbmV0d29yayBjYWxsIHdhcyBpbiBwcm9ncmVzcy5cbiAgICAgIGlmICghdGhpcy5tb25pdG9ySWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTUwMzUubXNnKGBFcnJvciBvY2N1cnJlZCB3aGlsZSBtb25pdG9yaW5nIGxvZ3M6ICR7U3RyaW5nKGUpfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMuc2NoZWR1bGVOZXh0VGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGFsbCBuZXcgbG9nIGV2ZW50cyBmcm9tIGEgc2V0IG9mIENsb3VkV2F0Y2ggTG9nIEdyb3Vwc1xuICAgKiBpbiBwYXJhbGxlbFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZWFkTmV3RXZlbnRzKCk6IFByb21pc2U8QXJyYXk8QXJyYXk8Q2xvdWRXYXRjaExvZ0V2ZW50Pj4+IHtcbiAgICBjb25zdCBwcm9taXNlczogQXJyYXk8UHJvbWlzZTxBcnJheTxDbG91ZFdhdGNoTG9nRXZlbnQ+Pj4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNldHRpbmdzIG9mIHRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLnZhbHVlcygpKSB7XG4gICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIE9iamVjdC5rZXlzKHNldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXMpKSB7XG4gICAgICAgIHByb21pc2VzLnB1c2godGhpcy5yZWFkRXZlbnRzRnJvbUxvZ0dyb3VwKHNldHRpbmdzLCBncm91cCkpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBMaW1pdGVkIHNldCBvZiBsb2cgZ3JvdXBzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludCBvdXQgYSBjbG91ZHdhdGNoIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHByaW50KGV2ZW50OiBDbG91ZFdhdGNoTG9nRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTAzMy5tc2coXG4gICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgJ1slc10gJXMgJXMnLFxuICAgICAgICBjaGFsay5ibHVlKGV2ZW50LmxvZ0dyb3VwTmFtZSksXG4gICAgICAgIGNoYWxrLnllbGxvdyhldmVudC50aW1lc3RhbXAudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICBldmVudC5tZXNzYWdlLnRyaW0oKSxcbiAgICAgICksXG4gICAgICBldmVudCxcbiAgICApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhbGwgbmV3IGxvZyBldmVudHMgZnJvbSBhIENsb3VkV2F0Y2ggTG9nIEdyb3VwXG4gICAqIHN0YXJ0aW5nIGF0IGVpdGhlciB0aGUgdGltZSB0aGUgaG90c3dhcCB3YXMgdHJpZ2dlcmVkIG9yXG4gICAqIHdoZW4gdGhlIGxhc3QgZXZlbnQgd2FzIHJlYWQgb24gdGhlIHByZXZpb3VzIHRpY2tcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVhZEV2ZW50c0Zyb21Mb2dHcm91cChcbiAgICBsb2dHcm91cHNBY2Nlc3NTZXR0aW5nczogTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MsXG4gICAgbG9nR3JvdXBOYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8QXJyYXk8Q2xvdWRXYXRjaExvZ0V2ZW50Pj4ge1xuICAgIGNvbnN0IGV2ZW50czogQ2xvdWRXYXRjaExvZ0V2ZW50W10gPSBbXTtcblxuICAgIC8vIGxvZyBldmVudHMgZnJvbSBzb21lIHNlcnZpY2UgYXJlIGluZ2VzdGVkIGZhc3RlciB0aGFuIG90aGVyc1xuICAgIC8vIHNvIHdlIG5lZWQgdG8gdHJhY2sgdGhlIHN0YXJ0L2VuZCB0aW1lIGZvciBlYWNoIGxvZyBncm91cCBpbmRpdmlkdWFsbHlcbiAgICAvLyB0byBtYWtlIHN1cmUgdGhhdCB3ZSBwcm9jZXNzIGFsbCBldmVudHMgZnJvbSBlYWNoIGxvZyBncm91cFxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXNbbG9nR3JvdXBOYW1lXSA/PyB0aGlzLnN0YXJ0VGltZTtcbiAgICBsZXQgZW5kVGltZSA9IHN0YXJ0VGltZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBsb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5zZGsuY2xvdWRXYXRjaExvZ3MoKS5maWx0ZXJMb2dFdmVudHMoe1xuICAgICAgICBsb2dHcm91cE5hbWU6IGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgbGltaXQ6IDEwMCxcbiAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkRXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzID8/IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGZpbHRlcmVkRXZlbnRzKSB7XG4gICAgICAgIGlmIChldmVudC5tZXNzYWdlKSB7XG4gICAgICAgICAgZXZlbnRzLnB1c2goe1xuICAgICAgICAgICAgbWVzc2FnZTogZXZlbnQubWVzc2FnZSxcbiAgICAgICAgICAgIGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wID8gbmV3IERhdGUoZXZlbnQudGltZXN0YW1wKSA6IG5ldyBEYXRlKCksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoZXZlbnQudGltZXN0YW1wICYmIGVuZFRpbWUgPCBldmVudC50aW1lc3RhbXApIHtcbiAgICAgICAgICAgIGVuZFRpbWUgPSBldmVudC50aW1lc3RhbXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBBcyBsb25nIGFzIHRoZXJlIGFyZSBfYW55XyBldmVudHMgaW4gdGhlIGxvZyBncm91cCBgZmlsdGVyTG9nRXZlbnRzYCB3aWxsIHJldHVybiBhIG5leHRUb2tlbi5cbiAgICAgIC8vIFRoaXMgaXMgdHJ1ZSBldmVuIGlmIHRoZXNlIGV2ZW50cyBhcmUgYmVmb3JlIGBzdGFydFRpbWVgLiBTbyBpZiB3ZSBoYXZlIDEwMCBldmVudHMgYW5kIGEgbmV4dFRva2VuXG4gICAgICAvLyB0aGVuIGFzc3VtZSB0aGF0IHdlIGhhdmUgaGl0IHRoZSBsaW1pdCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgc29tZSBtZXNzYWdlcyBoYXZlIGJlZW4gc3VwcHJlc3NlZC5cbiAgICAgIC8vIFdlIGFyZSBlc3NlbnRpYWxseSBzaG93aW5nIHRoZW0gYSBzYW1wbGluZyAoMTAwMDAgZXZlbnRzIHByaW50ZWQgb3V0IGlzIG5vdCB2ZXJ5IHVzZWZ1bClcbiAgICAgIGlmIChmaWx0ZXJlZEV2ZW50cy5sZW5ndGggPT09IDEwMCAmJiByZXNwb25zZS5uZXh0VG9rZW4pIHtcbiAgICAgICAgZXZlbnRzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6ICc+Pj4gYHdhdGNoYCBzaG93cyBvbmx5IHRoZSBmaXJzdCAxMDAgbG9nIG1lc3NhZ2VzIC0gdGhlIHJlc3QgaGF2ZSBiZWVuIHRydW5jYXRlZC4uLicsXG4gICAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZW5kVGltZSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgLy8gd2l0aCBMYW1iZGEgZnVuY3Rpb25zIHRoZSBDbG91ZFdhdGNoIGlzIG5vdCBjcmVhdGVkXG4gICAgICAvLyB1bnRpbCBzb21ldGhpbmcgaXMgbG9nZ2VkLCBzbyBqdXN0IGtlZXAgcG9sbGluZyB1bnRpbFxuICAgICAgLy8gdGhlcmUgaXMgc29tdGhpbmcgdG8gZmluZFxuICAgICAgaWYgKGUubmFtZSA9PT0gJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXNbbG9nR3JvdXBOYW1lXSA9IGVuZFRpbWUgKyAxO1xuICAgIHJldHVybiBldmVudHM7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkDetector = void 0;\nconst https = require(\"node:https\");\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst util_1 = require(\"../../util\");\nconst TIME_TO_LIVE_SUCCESS = 60 * 60 * 1000; // 1 hour\nconst CACHE_FILE_PATH = path.join((0, util_1.cdkCacheDir)(), 'connection.json');\n/**\n * Detects internet connectivity by making a lightweight request to the notices endpoint\n */\nclass NetworkDetector {\n /**\n * Check if internet connectivity is available\n */\n static async hasConnectivity(agent) {\n const cachedData = await this.load();\n const expiration = cachedData.expiration ?? 0;\n if (Date.now() > expiration) {\n try {\n const connected = await this.ping(agent);\n const updatedData = {\n expiration: Date.now() + TIME_TO_LIVE_SUCCESS,\n hasConnectivity: connected,\n };\n await this.save(updatedData);\n return connected;\n }\n catch {\n return false;\n }\n }\n else {\n return cachedData.hasConnectivity;\n }\n }\n // We are observing lots of timeouts when running in a massively parallel\n // integration test environment, so wait for a longer timeout there.\n //\n // In production, have a short timeout to not hold up the user experience.\n static TIMEOUT = process.env.TESTING_CDK ? 30_000 : 3_000;\n static URL = 'https://cli.cdk.dev-tools.aws.dev/notices.json';\n static async load() {\n const defaultValue = {\n expiration: 0,\n hasConnectivity: false,\n };\n try {\n return fs.existsSync(CACHE_FILE_PATH)\n ? await fs.readJSON(CACHE_FILE_PATH)\n : defaultValue;\n }\n catch {\n return defaultValue;\n }\n }\n static async save(cached) {\n try {\n await fs.ensureFile(CACHE_FILE_PATH);\n await fs.writeJSON(CACHE_FILE_PATH, cached);\n }\n catch {\n // Silently ignore cache save errors\n }\n }\n static ping(agent) {\n const options = {\n method: 'HEAD',\n agent: agent,\n timeout: this.TIMEOUT,\n };\n return new Promise((resolve) => {\n const req = https.request(NetworkDetector.URL, options, (res) => {\n resolve(res.statusCode !== undefined && res.statusCode < 500);\n });\n req.on('error', () => resolve(false));\n req.on('timeout', () => {\n req.destroy();\n resolve(false);\n });\n req.end();\n });\n }\n}\nexports.NetworkDetector = NetworkDetector;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1kZXRlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5ldHdvcmstZGV0ZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBQW9DO0FBRXBDLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IscUNBQXlDO0FBT3pDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxTQUFTO0FBQ3RELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxrQkFBVyxHQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUVwRTs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQW1CO1FBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sV0FBVyxHQUFHO29CQUNsQixVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLG9CQUFvQjtvQkFDN0MsZUFBZSxFQUFFLFNBQVM7aUJBQzNCLENBQUM7Z0JBQ0YsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLG9FQUFvRTtJQUNwRSxFQUFFO0lBQ0YsMEVBQTBFO0lBQ2xFLE1BQU0sQ0FBVSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25FLE1BQU0sQ0FBVSxHQUFHLEdBQUcsZ0RBQWdELENBQUM7SUFFdkUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLFVBQVUsRUFBRSxDQUFDO1lBQ2IsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQztZQUNILE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUF1QjtnQkFDMUQsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNuQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUEwQjtRQUNsRCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDckMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asb0NBQW9DO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFtQjtRQUNyQyxNQUFNLE9BQU8sR0FBbUI7WUFDOUIsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQ3ZCLGVBQWUsQ0FBQyxHQUFHLEVBQ25CLE9BQU8sRUFDUCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FDRixDQUFDO1lBQ0YsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNyQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBRUgsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9FSCwwQ0FnRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBodHRwcyBmcm9tICdub2RlOmh0dHBzJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdub2RlOmh0dHBzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBjZGtDYWNoZURpciB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG5pbnRlcmZhY2UgQ2FjaGVkQ29ubmVjdGl2aXR5IHtcbiAgZXhwaXJhdGlvbjogbnVtYmVyO1xuICBoYXNDb25uZWN0aXZpdHk6IGJvb2xlYW47XG59XG5cbmNvbnN0IFRJTUVfVE9fTElWRV9TVUNDRVNTID0gNjAgKiA2MCAqIDEwMDA7IC8vIDEgaG91clxuY29uc3QgQ0FDSEVfRklMRV9QQVRIID0gcGF0aC5qb2luKGNka0NhY2hlRGlyKCksICdjb25uZWN0aW9uLmpzb24nKTtcblxuLyoqXG4gKiBEZXRlY3RzIGludGVybmV0IGNvbm5lY3Rpdml0eSBieSBtYWtpbmcgYSBsaWdodHdlaWdodCByZXF1ZXN0IHRvIHRoZSBub3RpY2VzIGVuZHBvaW50XG4gKi9cbmV4cG9ydCBjbGFzcyBOZXR3b3JrRGV0ZWN0b3Ige1xuICAvKipcbiAgICogQ2hlY2sgaWYgaW50ZXJuZXQgY29ubmVjdGl2aXR5IGlzIGF2YWlsYWJsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBoYXNDb25uZWN0aXZpdHkoYWdlbnQ/OiBodHRwcy5BZ2VudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNhY2hlZERhdGEgPSBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICBjb25zdCBleHBpcmF0aW9uID0gY2FjaGVkRGF0YS5leHBpcmF0aW9uID8/IDA7XG5cbiAgICBpZiAoRGF0ZS5ub3coKSA+IGV4cGlyYXRpb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3RlZCA9IGF3YWl0IHRoaXMucGluZyhhZ2VudCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0ge1xuICAgICAgICAgIGV4cGlyYXRpb246IERhdGUubm93KCkgKyBUSU1FX1RPX0xJVkVfU1VDQ0VTUyxcbiAgICAgICAgICBoYXNDb25uZWN0aXZpdHk6IGNvbm5lY3RlZCxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlKHVwZGF0ZWREYXRhKTtcbiAgICAgICAgcmV0dXJuIGNvbm5lY3RlZDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjYWNoZWREYXRhLmhhc0Nvbm5lY3Rpdml0eTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBhcmUgb2JzZXJ2aW5nIGxvdHMgb2YgdGltZW91dHMgd2hlbiBydW5uaW5nIGluIGEgbWFzc2l2ZWx5IHBhcmFsbGVsXG4gIC8vIGludGVncmF0aW9uIHRlc3QgZW52aXJvbm1lbnQsIHNvIHdhaXQgZm9yIGEgbG9uZ2VyIHRpbWVvdXQgdGhlcmUuXG4gIC8vXG4gIC8vIEluIHByb2R1Y3Rpb24sIGhhdmUgYSBzaG9ydCB0aW1lb3V0IHRvIG5vdCBob2xkIHVwIHRoZSB1c2VyIGV4cGVyaWVuY2UuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRJTUVPVVQgPSBwcm9jZXNzLmVudi5URVNUSU5HX0NESyA/IDMwXzAwMCA6IDNfMDAwO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVUkwgPSAnaHR0cHM6Ly9jbGkuY2RrLmRldi10b29scy5hd3MuZGV2L25vdGljZXMuanNvbic7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgbG9hZCgpOiBQcm9taXNlPENhY2hlZENvbm5lY3Rpdml0eT4ge1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAgIGV4cGlyYXRpb246IDAsXG4gICAgICBoYXNDb25uZWN0aXZpdHk6IGZhbHNlLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZzLmV4aXN0c1N5bmMoQ0FDSEVfRklMRV9QQVRIKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKU09OKENBQ0hFX0ZJTEVfUEFUSCkgYXMgQ2FjaGVkQ29ubmVjdGl2aXR5XG4gICAgICAgIDogZGVmYXVsdFZhbHVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyBzYXZlKGNhY2hlZDogQ2FjaGVkQ29ubmVjdGl2aXR5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZzLmVuc3VyZUZpbGUoQ0FDSEVfRklMRV9QQVRIKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSlNPTihDQUNIRV9GSUxFX1BBVEgsIGNhY2hlZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTaWxlbnRseSBpZ25vcmUgY2FjaGUgc2F2ZSBlcnJvcnNcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwaW5nKGFnZW50PzogaHR0cHMuQWdlbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ0hFQUQnLFxuICAgICAgYWdlbnQ6IGFnZW50LFxuICAgICAgdGltZW91dDogdGhpcy5USU1FT1VULFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IGh0dHBzLnJlcXVlc3QoXG4gICAgICAgIE5ldHdvcmtEZXRlY3Rvci5VUkwsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlcy5zdGF0dXNDb2RlICE9PSB1bmRlZmluZWQgJiYgcmVzLnN0YXR1c0NvZGUgPCA1MDApO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIHJlcS5vbignZXJyb3InLCAoKSA9PiByZXNvbHZlKGZhbHNlKSk7XG4gICAgICByZXEub24oJ3RpbWVvdXQnLCAoKSA9PiB7XG4gICAgICAgIHJlcS5kZXN0cm95KCk7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlcS5lbmQoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CachedDataSource = void 0;\nconst fs = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst TIME_TO_LIVE_SUCCESS = 60 * 60 * 1000; // 1 hour\nconst TIME_TO_LIVE_ERROR = 1 * 60 * 1000; // 1 minute\nclass CachedDataSource {\n ioHelper;\n fileName;\n dataSource;\n skipCache;\n constructor(ioHelper, fileName, dataSource, skipCache) {\n this.ioHelper = ioHelper;\n this.fileName = fileName;\n this.dataSource = dataSource;\n this.skipCache = skipCache;\n }\n async fetch() {\n const cachedData = await this.load();\n const data = cachedData.notices;\n const expiration = cachedData.expiration ?? 0;\n if (Date.now() > expiration || this.skipCache) {\n let updatedData = cachedData;\n try {\n updatedData = await this.fetchInner();\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Could not refresh notices: ${e}`);\n updatedData = {\n expiration: Date.now() + TIME_TO_LIVE_ERROR,\n notices: [],\n };\n throw toolkit_error_1.ToolkitError.withCause('NoticesFetchFailed', 'Failed to load CDK notices. Please try again later.', e);\n }\n finally {\n await this.save(updatedData);\n }\n return updatedData.notices;\n }\n else {\n await this.ioHelper.defaults.debug(`Reading cached notices from ${this.fileName}`);\n return data;\n }\n }\n async fetchInner() {\n return {\n expiration: Date.now() + TIME_TO_LIVE_SUCCESS,\n notices: await this.dataSource.fetch(),\n };\n }\n async load() {\n const defaultValue = {\n expiration: 0,\n notices: [],\n };\n try {\n return fs.existsSync(this.fileName)\n ? await fs.readJSON(this.fileName)\n : defaultValue;\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Failed to load notices from cache: ${e}`);\n return defaultValue;\n }\n }\n async save(cached) {\n try {\n await fs.ensureFile(this.fileName);\n await fs.writeJSON(this.fileName, cached);\n }\n catch (e) {\n await this.ioHelper.defaults.debug(`Failed to store notices in the cache: ${e}`);\n }\n }\n}\nexports.CachedDataSource = CachedDataSource;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2FjaGVkLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQiwrREFBMkQ7QUFRM0QsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVM7QUFDdEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7QUFFckQsTUFBYSxnQkFBZ0I7SUFFUjtJQUNBO0lBQ0E7SUFDQTtJQUpuQixZQUNtQixRQUFrQixFQUNsQixRQUFnQixFQUNoQixVQUE0QixFQUM1QixTQUFtQjtRQUhuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBVTtJQUV0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxXQUFXLEdBQWtCLFVBQVUsQ0FBQztZQUU1QyxJQUFJLENBQUM7Z0JBQ0gsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxXQUFXLEdBQUc7b0JBQ1osVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxrQkFBa0I7b0JBQzNDLE9BQU8sRUFBRSxFQUFFO2lCQUNaLENBQUM7Z0JBQ0YsTUFBTSw0QkFBWSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxxREFBcUQsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRyxDQUFDO29CQUFTLENBQUM7Z0JBQ1QsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbkYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLG9CQUFvQjtZQUM3QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtTQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLFVBQVUsRUFBRSxDQUFDO1lBQ2IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBRUYsSUFBSSxDQUFDO1lBQ0gsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBa0I7Z0JBQ25ELENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDbkIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RSxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBcUI7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFuRUQsNENBbUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBOb3RpY2UsIE5vdGljZURhdGFTb3VyY2UgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbmludGVyZmFjZSBDYWNoZWROb3RpY2VzIHtcbiAgZXhwaXJhdGlvbjogbnVtYmVyO1xuICBub3RpY2VzOiBOb3RpY2VbXTtcbn1cblxuY29uc3QgVElNRV9UT19MSVZFX1NVQ0NFU1MgPSA2MCAqIDYwICogMTAwMDsgLy8gMSBob3VyXG5jb25zdCBUSU1FX1RPX0xJVkVfRVJST1IgPSAxICogNjAgKiAxMDAwOyAvLyAxIG1pbnV0ZVxuXG5leHBvcnQgY2xhc3MgQ2FjaGVkRGF0YVNvdXJjZSBpbXBsZW1lbnRzIE5vdGljZURhdGFTb3VyY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhU291cmNlOiBOb3RpY2VEYXRhU291cmNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2tpcENhY2hlPzogYm9vbGVhbixcbiAgKSB7XG4gIH1cblxuICBhc3luYyBmZXRjaCgpOiBQcm9taXNlPE5vdGljZVtdPiB7XG4gICAgY29uc3QgY2FjaGVkRGF0YSA9IGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIGNvbnN0IGRhdGEgPSBjYWNoZWREYXRhLm5vdGljZXM7XG4gICAgY29uc3QgZXhwaXJhdGlvbiA9IGNhY2hlZERhdGEuZXhwaXJhdGlvbiA/PyAwO1xuXG4gICAgaWYgKERhdGUubm93KCkgPiBleHBpcmF0aW9uIHx8IHRoaXMuc2tpcENhY2hlKSB7XG4gICAgICBsZXQgdXBkYXRlZERhdGE6IENhY2hlZE5vdGljZXMgPSBjYWNoZWREYXRhO1xuXG4gICAgICB0cnkge1xuICAgICAgICB1cGRhdGVkRGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2hJbm5lcigpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBDb3VsZCBub3QgcmVmcmVzaCBub3RpY2VzOiAke2V9YCk7XG4gICAgICAgIHVwZGF0ZWREYXRhID0ge1xuICAgICAgICAgIGV4cGlyYXRpb246IERhdGUubm93KCkgKyBUSU1FX1RPX0xJVkVfRVJST1IsXG4gICAgICAgICAgbm90aWNlczogW10sXG4gICAgICAgIH07XG4gICAgICAgIHRocm93IFRvb2xraXRFcnJvci53aXRoQ2F1c2UoJ05vdGljZXNGZXRjaEZhaWxlZCcsICdGYWlsZWQgdG8gbG9hZCBDREsgbm90aWNlcy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLCBlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZSh1cGRhdGVkRGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXBkYXRlZERhdGEubm90aWNlcztcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgUmVhZGluZyBjYWNoZWQgbm90aWNlcyBmcm9tICR7dGhpcy5maWxlTmFtZX1gKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hJbm5lcigpOiBQcm9taXNlPENhY2hlZE5vdGljZXM+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZXhwaXJhdGlvbjogRGF0ZS5ub3coKSArIFRJTUVfVE9fTElWRV9TVUNDRVNTLFxuICAgICAgbm90aWNlczogYXdhaXQgdGhpcy5kYXRhU291cmNlLmZldGNoKCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPENhY2hlZE5vdGljZXM+IHtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSB7XG4gICAgICBleHBpcmF0aW9uOiAwLFxuICAgICAgbm90aWNlczogW10sXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnMuZXhpc3RzU3luYyh0aGlzLmZpbGVOYW1lKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKU09OKHRoaXMuZmlsZU5hbWUpIGFzIENhY2hlZE5vdGljZXNcbiAgICAgICAgOiBkZWZhdWx0VmFsdWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgRmFpbGVkIHRvIGxvYWQgbm90aWNlcyBmcm9tIGNhY2hlOiAke2V9YCk7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZShjYWNoZWQ6IENhY2hlZE5vdGljZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMuZW5zdXJlRmlsZSh0aGlzLmZpbGVOYW1lKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSlNPTih0aGlzLmZpbGVOYW1lLCBjYWNoZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYEZhaWxlZCB0byBzdG9yZSBub3RpY2VzIGluIHRoZSBjYWNoZTogJHtlfWApO1xuICAgIH1cbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FilteredNotice = exports.NoticesFilter = void 0;\nconst semver = require(\"semver\");\nconst guess_language_1 = require(\"../../util/guess-language\");\nconst tree_1 = require(\"../tree\");\n/**\n * Normalizes the given components structure into DNF form\n */\nfunction normalizeComponents(xs) {\n return xs.map(x => Array.isArray(x) ? x : [x]);\n}\n/**\n * Returns the DNF components for a notice.\n * Uses componentsV2 when schemaVersion is '2', otherwise falls back to components.\n */\nfunction dnfComponents(notice) {\n if (notice.schemaVersion === '2' && notice.componentsV2) {\n return normalizeComponents(notice.componentsV2);\n }\n return normalizeComponents(notice.components);\n}\nfunction renderComponent(c) {\n if (c.name.startsWith('language:')) {\n return `${(0, guess_language_1.languageDisplayName)(c.name.slice('language:'.length))} apps`;\n }\n return `${c.name}: ${c.version}`;\n}\nfunction renderConjunction(xs) {\n return xs.map(renderComponent).join(' AND ');\n}\nclass NoticesFilter {\n ioHelper;\n constructor(ioHelper) {\n this.ioHelper = ioHelper;\n }\n async filter(options) {\n const components = [\n ...(await this.constructTreeComponents(options.outDir)),\n ...(await this.otherComponents(options)),\n ];\n return this.findForNamedComponents(options.data, components);\n }\n /**\n * From a set of input options, return the notices components we are searching for\n */\n async otherComponents(options) {\n // Bootstrap environments\n let bootstrappedEnvironments = [];\n for (const env of options.bootstrappedEnvironments) {\n const semverBootstrapVersion = semver.coerce(env.bootstrapStackVersion);\n if (!semverBootstrapVersion) {\n // we don't throw because notices should never crash the cli.\n await this.ioHelper.defaults.warning(`While filtering notices, could not coerce bootstrap version '${env.bootstrapStackVersion}' into semver`);\n continue;\n }\n bootstrappedEnvironments.push({\n name: 'bootstrap',\n version: `${semverBootstrapVersion}`,\n dynamicName: 'ENVIRONMENTS',\n dynamicValue: env.environment.name,\n });\n }\n return [\n // CLI\n {\n name: 'cli',\n version: options.cliVersion,\n },\n // Node version\n {\n name: 'node',\n version: process.version.replace(/^v/, ''), // remove the 'v' prefix.\n dynamicName: 'node',\n },\n // Bootstrap environments\n ...bootstrappedEnvironments,\n // Language\n ...(options.language ? [{\n name: `language:${options.language}`,\n version: '0.0.0',\n dynamicName: 'LANGUAGE',\n dynamicValue: (0, guess_language_1.languageDisplayName)(options.language),\n }] : []),\n ];\n }\n /**\n * Based on a set of component names, find all notices that match one of the given components\n */\n findForNamedComponents(data, actualComponents) {\n return data.flatMap(notice => {\n const ors = this.resolveAliases(dnfComponents(notice));\n // Find the first set of the disjunctions of which all components match against the actual components.\n // Return the actual components we found so that we can inject their dynamic values. A single filter\n // component can match more than one actual component\n for (const ands of ors) {\n const matched = ands.map(affected => actualComponents.filter(actual => this.componentNameMatches(affected, actual) && semver.satisfies(actual.version, affected.version, { includePrerelease: true })));\n // For every clause in the filter we matched one or more components\n if (matched.every(xs => xs.length > 0)) {\n const ret = new FilteredNotice(notice);\n this.addDynamicValues(matched.flatMap(x => x), ret, notice.dynamicValues);\n return [ret];\n }\n }\n return [];\n });\n }\n /**\n * Whether the given \"affected component\" name applies to the given actual component name.\n *\n * The name matches if the name is exactly the same, or the name in the notice\n * is a prefix of the node name when the query ends in '.'.\n */\n componentNameMatches(pattern, actual) {\n return pattern.name.endsWith('.') ? actual.name.startsWith(pattern.name) : pattern.name === actual.name;\n }\n /**\n * Adds dynamic values from the given ActualComponents\n *\n * If there are multiple components with the same dynamic name, they are joined\n * by the separator declared in `specs[name].separator`, defaulting to `','`.\n */\n addDynamicValues(comps, notice, specs) {\n const dynamicValues = {};\n for (const comp of comps) {\n if (comp.dynamicName) {\n dynamicValues[comp.dynamicName] = dynamicValues[comp.dynamicName] ?? [];\n dynamicValues[comp.dynamicName].push(comp.dynamicValue ?? comp.version);\n }\n }\n for (const [key, values] of Object.entries(dynamicValues)) {\n notice.addDynamicValue(key, values.join(specs?.[key]?.separator ?? ','));\n }\n }\n /**\n * Treat 'framework' as an alias for either `aws-cdk-lib.` or `@aws-cdk/core.`.\n *\n * Because it's EITHER `aws-cdk-lib` or `@aws-cdk/core`, we need to add multiple\n * arrays at the top level.\n */\n resolveAliases(ors) {\n return ors.flatMap(ands => {\n const hasFramework = ands.find(c => c.name === 'framework');\n if (!hasFramework) {\n return [ands];\n }\n return [\n ands.map(c => c.name === 'framework' ? { ...c, name: '@aws-cdk/core.' } : c),\n ands.map(c => c.name === 'framework' ? { ...c, name: 'aws-cdk-lib.' } : c),\n ];\n });\n }\n /**\n * Load the construct tree from the given directory and return its components\n */\n async constructTreeComponents(manifestDir) {\n const tree = await (0, tree_1.loadTreeFromDir)(manifestDir, (msg) => this.ioHelper.defaults.trace(msg));\n if (!tree) {\n return [];\n }\n const ret = [];\n recurse(tree);\n return ret;\n function recurse(x) {\n if (x.constructInfo?.fqn && x.constructInfo?.version) {\n ret.push({\n name: x.constructInfo?.fqn,\n version: x.constructInfo?.version,\n });\n }\n for (const child of Object.values(x.children ?? {})) {\n recurse(child);\n }\n }\n }\n}\nexports.NoticesFilter = NoticesFilter;\n/**\n * Notice after passing the filter. A filter can augment a notice with\n * dynamic values as it has access to the dynamic matching data.\n */\nclass FilteredNotice {\n notice;\n dynamicValues = {};\n constructor(notice) {\n this.notice = notice;\n }\n addDynamicValue(key, value) {\n this.dynamicValues[`{resolve:${key}}`] = value;\n }\n format() {\n const componentsValue = dnfComponents(this.notice).map(renderConjunction).join(', ');\n return this.resolveDynamicValues([\n `${this.notice.issueNumber}\\t${this.notice.title}`,\n this.formatOverview(),\n `\\tAffected versions: ${componentsValue}`,\n `\\tMore information at: https://github.com/aws/aws-cdk/issues/${this.notice.issueNumber}`,\n ].join('\\n\\n') + '\\n');\n }\n formatOverview() {\n const wrap = (s) => s.replace(/(?![^\\n]{1,60}$)([^\\n]{1,60})\\s/g, '$1\\n');\n const heading = 'Overview: ';\n const separator = `\\n\\t${' '.repeat(heading.length)}`;\n const content = wrap(this.notice.overview)\n .split('\\n')\n .join(separator);\n return '\\t' + heading + content;\n }\n resolveDynamicValues(input) {\n const pattern = new RegExp(Object.keys(this.dynamicValues).join('|'), 'g');\n return input.replace(pattern, (matched) => this.dynamicValues[matched] ?? matched);\n }\n}\nexports.FilteredNotice = FilteredNotice;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUNqQyw4REFBZ0U7QUFHaEUsa0NBQTBDO0FBRzFDOztHQUVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxFQUFrQztJQUM3RCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNuQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4RCxPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLENBQVk7SUFDbkMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sR0FBRyxJQUFBLG9DQUFtQixFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekUsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxFQUFlO0lBQ3hDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FB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O1FBRW5CLE9BQU8sSUFBSSxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWE7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUM7SUFDckYsQ0FBQztDQUNGO0FBcENELHdDQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgbGFuZ3VhZ2VEaXNwbGF5TmFtZSB9IGZyb20gJy4uLy4uL3V0aWwvZ3Vlc3MtbGFuZ3VhZ2UnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RUcmVlTm9kZSB9IGZyb20gJy4uL3RyZWUnO1xuaW1wb3J0IHsgbG9hZFRyZWVGcm9tRGlyIH0gZnJvbSAnLi4vdHJlZSc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcHBlZEVudmlyb25tZW50LCBDb21wb25lbnQsIER5bmFtaWNWYWx1ZVNwZWMsIE5vdGljZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIGdpdmVuIGNvbXBvbmVudHMgc3RydWN0dXJlIGludG8gRE5GIGZvcm1cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50cyh4czogQXJyYXk8Q29tcG9uZW50IHwgQ29tcG9uZW50W10+KTogQ29tcG9uZW50W11bXSB7XG4gIHJldHVybiB4cy5tYXAoeCA9PiBBcnJheS5pc0FycmF5KHgpID8geCA6IFt4XSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgRE5GIGNvbXBvbmVudHMgZm9yIGEgbm90aWNlLlxuICogVXNlcyBjb21wb25lbnRzVjIgd2hlbiBzY2hlbWFWZXJzaW9uIGlzICcyJywgb3RoZXJ3aXNlIGZhbGxzIGJhY2sgdG8gY29tcG9uZW50cy5cbiAqL1xuZnVuY3Rpb24gZG5mQ29tcG9uZW50cyhub3RpY2U6IE5vdGljZSk6IENvbXBvbmVudFtdW10ge1xuICBpZiAobm90aWNlLnNjaGVtYVZlcnNpb24gPT09ICcyJyAmJiBub3RpY2UuY29tcG9uZW50c1YyKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbXBvbmVudHMobm90aWNlLmNvbXBvbmVudHNWMik7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZUNvbXBvbmVudHMobm90aWNlLmNvbXBvbmVudHMpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJDb21wb25lbnQoYzogQ29tcG9uZW50KTogc3RyaW5nIHtcbiAgaWYgKGMubmFtZS5zdGFydHNXaXRoKCdsYW5ndWFnZTonKSkge1xuICAgIHJldHVybiBgJHtsYW5ndWFnZURpc3BsYXlOYW1lKGMubmFtZS5zbGljZSgnbGFuZ3VhZ2U6Jy5sZW5ndGgpKX0gYXBwc2A7XG4gIH1cbiAgcmV0dXJuIGAke2MubmFtZX06ICR7Yy52ZXJzaW9ufWA7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckNvbmp1bmN0aW9uKHhzOiBDb21wb25lbnRbXSk6IHN0cmluZyB7XG4gIHJldHVybiB4cy5tYXAocmVuZGVyQ29tcG9uZW50KS5qb2luKCcgQU5EICcpO1xufVxuXG5pbnRlcmZhY2UgQWN0dWFsQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBjb21wb25lbnRcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogSWYgbWF0Y2hlZCwgdW5kZXIgd2hhdCBuYW1lIHNob3VsZCBpdCBiZSBhZGRlZCB0byB0aGUgc2V0IG9mIGR5bmFtaWMgdmFsdWVzXG4gICAqXG4gICAqIFRoZXNlIHdpbGwgYmUgdXNlZCB0byBzdWJzdGl0dXRlIHBsYWNlaG9sZGVycyBpbiB0aGUgbWVzc2FnZSBzdHJpbmcsIHdoZXJlXG4gICAqIHBsYWNlaG9sZGVycyBsb29rIGxpa2UgYHtyZXNvbHZlOlhZWn1gLlxuICAgKlxuICAgKiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGNvbXBvbmVudCB3aXRoIHRoZSBzYW1lIGR5bmFtaWMgbmFtZSwgdGhleSBhcmVcbiAgICogam9pbmVkIGJ5ICcsJy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEb24ndCBhZGQgdG8gdGhlIHNldCBvZiBkeW5hbWljIHZhbHVlc1xuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIG1hdGNoZWQsIHdoYXQgd2Ugc2hvdWxkIHB1dCBpbiB0aGUgc2V0IG9mIGR5bmFtaWMgdmFsdWVzIGluc3RlYWQgb2YgdGhlIHZlcnNpb24uXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiBgZHluYW1pY05hbWVgIGlzIHNldDsgYnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgYWN0dWFsIHZlcnNpb25cbiAgICogb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY1ZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGljZXNGaWx0ZXJGaWx0ZXJPcHRpb25zIHtcbiAgcmVhZG9ubHkgZGF0YTogTm90aWNlW107XG4gIHJlYWRvbmx5IGNsaVZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgb3V0RGlyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJvb3RzdHJhcHBlZEVudmlyb25tZW50czogQm9vdHN0cmFwcGVkRW52aXJvbm1lbnRbXTtcblxuICAvKipcbiAgICogVGhlIGRldGVjdGVkIENESyBhcHAgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGFuZ3VhZ2UgY29tcG9uZW50IGlzIGFkZGVkXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE5vdGljZXNGaWx0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlsdGVyKG9wdGlvbnM6IE5vdGljZXNGaWx0ZXJGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxGaWx0ZXJlZE5vdGljZVtdPiB7XG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICAgIC4uLihhd2FpdCB0aGlzLmNvbnN0cnVjdFRyZWVDb21wb25lbnRzKG9wdGlvbnMub3V0RGlyKSksXG4gICAgICAuLi4oYXdhaXQgdGhpcy5vdGhlckNvbXBvbmVudHMob3B0aW9ucykpLFxuICAgIF07XG5cbiAgICByZXR1cm4gdGhpcy5maW5kRm9yTmFtZWRDb21wb25lbnRzKG9wdGlvbnMuZGF0YSwgY29tcG9uZW50cyk7XG4gIH1cblxuICAvKipcbiAgICogRnJvbSBhIHNldCBvZiBpbnB1dCBvcHRpb25zLCByZXR1cm4gdGhlIG5vdGljZXMgY29tcG9uZW50cyB3ZSBhcmUgc2VhcmNoaW5nIGZvclxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBvdGhlckNvbXBvbmVudHMob3B0aW9uczogTm90aWNlc0ZpbHRlckZpbHRlck9wdGlvbnMpOiBQcm9taXNlPEFjdHVhbENvbXBvbmVudFtdPiB7XG4gICAgLy8gQm9vdHN0cmFwIGVudmlyb25tZW50c1xuICAgIGxldCBib290c3RyYXBwZWRFbnZpcm9ubWVudHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGVudiBvZiBvcHRpb25zLmJvb3RzdHJhcHBlZEVudmlyb25tZW50cykge1xuICAgICAgY29uc3Qgc2VtdmVyQm9vdHN0cmFwVmVyc2lvbiA9IHNlbXZlci5jb2VyY2UoZW52LmJvb3RzdHJhcFN0YWNrVmVyc2lvbik7XG4gICAgICBpZiAoIXNlbXZlckJvb3RzdHJhcFZlcnNpb24pIHtcbiAgICAgICAgLy8gd2UgZG9uJ3QgdGhyb3cgYmVjYXVzZSBub3RpY2VzIHNob3VsZCBuZXZlciBjcmFzaCB0aGUgY2xpLlxuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm5pbmcoYFdoaWxlIGZpbHRlcmluZyBub3RpY2VzLCBjb3VsZCBub3QgY29lcmNlIGJvb3RzdHJhcCB2ZXJzaW9uICcke2Vudi5ib290c3RyYXBTdGFja1ZlcnNpb259JyBpbnRvIHNlbXZlcmApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgYm9vdHN0cmFwcGVkRW52aXJvbm1lbnRzLnB1c2goe1xuICAgICAgICBuYW1lOiAnYm9vdHN0cmFwJyxcbiAgICAgICAgdmVyc2lvbjogYCR7c2VtdmVyQm9vdHN0cmFwVmVyc2lvbn1gLFxuICAgICAgICBkeW5hbWljTmFtZTogJ0VOVklST05NRU5UUycsXG4gICAgICAgIGR5bmFtaWNWYWx1ZTogZW52LmVudmlyb25tZW50Lm5hbWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgLy8gQ0xJXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjbGknLFxuICAgICAgICB2ZXJzaW9uOiBvcHRpb25zLmNsaVZlcnNpb24sXG4gICAgICB9LFxuXG4gICAgICAvLyBOb2RlIHZlcnNpb25cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25vZGUnLFxuICAgICAgICB2ZXJzaW9uOiBwcm9jZXNzLnZlcnNpb24ucmVwbGFjZSgvXnYvLCAnJyksIC8vIHJlbW92ZSB0aGUgJ3YnIHByZWZpeC5cbiAgICAgICAgZHluYW1pY05hbWU6ICdub2RlJyxcbiAgICAgIH0sXG5cbiAgICAgIC8vIEJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAgICAgIC4uLmJvb3RzdHJhcHBlZEVudmlyb25tZW50cyxcblxuICAgICAgLy8gTGFuZ3VhZ2VcbiAgICAgIC4uLihvcHRpb25zLmxhbmd1YWdlID8gW3tcbiAgICAgICAgbmFtZTogYGxhbmd1YWdlOiR7b3B0aW9ucy5sYW5ndWFnZX1gLFxuICAgICAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgICBkeW5hbWljTmFtZTogJ0xBTkdVQUdFJyxcbiAgICAgICAgZHluYW1pY1ZhbHVlOiBsYW5ndWFnZURpc3BsYXlOYW1lKG9wdGlvbnMubGFuZ3VhZ2UpLFxuICAgICAgfV0gOiBbXSksXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCYXNlZCBvbiBhIHNldCBvZiBjb21wb25lbnQgbmFtZXMsIGZpbmQgYWxsIG5vdGljZXMgdGhhdCBtYXRjaCBvbmUgb2YgdGhlIGdpdmVuIGNvbXBvbmVudHNcbiAgICovXG4gIHByaXZhdGUgZmluZEZvck5hbWVkQ29tcG9uZW50cyhkYXRhOiBOb3RpY2VbXSwgYWN0dWFsQ29tcG9uZW50czogQWN0dWFsQ29tcG9uZW50W10pOiBGaWx0ZXJlZE5vdGljZVtdIHtcbiAgICByZXR1cm4gZGF0YS5mbGF0TWFwKG5vdGljZSA9PiB7XG4gICAgICBjb25zdCBvcnMgPSB0aGlzLnJlc29sdmVBbGlhc2VzKGRuZkNvbXBvbmVudHMobm90aWNlKSk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHNldCBvZiB0aGUgZGlzanVuY3Rpb25zIG9mIHdoaWNoIGFsbCBjb21wb25lbnRzIG1hdGNoIGFnYWluc3QgdGhlIGFjdHVhbCBjb21wb25lbnRzLlxuICAgICAgLy8gUmV0dXJuIHRoZSBhY3R1YWwgY29tcG9uZW50cyB3ZSBmb3VuZCBzbyB0aGF0IHdlIGNhbiBpbmplY3QgdGhlaXIgZHluYW1pYyB2YWx1ZXMuIEEgc2luZ2xlIGZpbHRlclxuICAgICAgLy8gY29tcG9uZW50IGNhbiBtYXRjaCBtb3JlIHRoYW4gb25lIGFjdHVhbCBjb21wb25lbnRcbiAgICAgIGZvciAoY29uc3QgYW5kcyBvZiBvcnMpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGFuZHMubWFwKGFmZmVjdGVkID0+IGFjdHVhbENvbXBvbmVudHMuZmlsdGVyKGFjdHVhbCA9PlxuICAgICAgICAgIHRoaXMuY29tcG9uZW50TmFtZU1hdGNoZXMoYWZmZWN0ZWQsIGFjdHVhbCkgJiYgc2VtdmVyLnNhdGlzZmllcyhhY3R1YWwudmVyc2lvbiwgYWZmZWN0ZWQudmVyc2lvbiwgeyBpbmNsdWRlUHJlcmVsZWFzZTogdHJ1ZSB9KSkpO1xuXG4gICAgICAgIC8vIEZvciBldmVyeSBjbGF1c2UgaW4gdGhlIGZpbHRlciB3ZSBtYXRjaGVkIG9uZSBvciBtb3JlIGNvbXBvbmVudHNcbiAgICAgICAgaWYgKG1hdGNoZWQuZXZlcnkoeHMgPT4geHMubGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICBjb25zdCByZXQgPSBuZXcgRmlsdGVyZWROb3RpY2Uobm90aWNlKTtcbiAgICAgICAgICB0aGlzLmFkZER5bmFtaWNWYWx1ZXMobWF0Y2hlZC5mbGF0TWFwKHggPT4geCksIHJldCwgbm90aWNlLmR5bmFtaWNWYWx1ZXMpO1xuICAgICAgICAgIHJldHVybiBbcmV0XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW107XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2l2ZW4gXCJhZmZlY3RlZCBjb21wb25lbnRcIiBuYW1lIGFwcGxpZXMgdG8gdGhlIGdpdmVuIGFjdHVhbCBjb21wb25lbnQgbmFtZS5cbiAgICpcbiAgICogVGhlIG5hbWUgbWF0Y2hlcyBpZiB0aGUgbmFtZSBpcyBleGFjdGx5IHRoZSBzYW1lLCBvciB0aGUgbmFtZSBpbiB0aGUgbm90aWNlXG4gICAqIGlzIGEgcHJlZml4IG9mIHRoZSBub2RlIG5hbWUgd2hlbiB0aGUgcXVlcnkgZW5kcyBpbiAnLicuXG4gICAqL1xuICBwcml2YXRlIGNvbXBvbmVudE5hbWVNYXRjaGVzKHBhdHRlcm46IENvbXBvbmVudCwgYWN0dWFsOiBBY3R1YWxDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGF0dGVybi5uYW1lLmVuZHNXaXRoKCcuJykgPyBhY3R1YWwubmFtZS5zdGFydHNXaXRoKHBhdHRlcm4ubmFtZSkgOiBwYXR0ZXJuLm5hbWUgPT09IGFjdHVhbC5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgZHluYW1pYyB2YWx1ZXMgZnJvbSB0aGUgZ2l2ZW4gQWN0dWFsQ29tcG9uZW50c1xuICAgKlxuICAgKiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgY29tcG9uZW50cyB3aXRoIHRoZSBzYW1lIGR5bmFtaWMgbmFtZSwgdGhleSBhcmUgam9pbmVkXG4gICAqIGJ5IHRoZSBzZXBhcmF0b3IgZGVjbGFyZWQgaW4gYHNwZWNzW25hbWVdLnNlcGFyYXRvcmAsIGRlZmF1bHRpbmcgdG8gYCcsJ2AuXG4gICAqL1xuICBwcml2YXRlIGFkZER5bmFtaWNWYWx1ZXMoXG4gICAgY29tcHM6IEFjdHVhbENvbXBvbmVudFtdLFxuICAgIG5vdGljZTogRmlsdGVyZWROb3RpY2UsXG4gICAgc3BlY3M/OiBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljVmFsdWVTcGVjPixcbiAgKSB7XG4gICAgY29uc3QgZHluYW1pY1ZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gICAgZm9yIChjb25zdCBjb21wIG9mIGNvbXBzKSB7XG4gICAgICBpZiAoY29tcC5keW5hbWljTmFtZSkge1xuICAgICAgICBkeW5hbWljVmFsdWVzW2NvbXAuZHluYW1pY05hbWVdID0gZHluYW1pY1ZhbHVlc1tjb21wLmR5bmFtaWNOYW1lXSA/PyBbXTtcbiAgICAgICAgZHluYW1pY1ZhbHVlc1tjb21wLmR5bmFtaWNOYW1lXS5wdXNoKGNvbXAuZHluYW1pY1ZhbHVlID8/IGNvbXAudmVyc2lvbik7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVzXSBvZiBPYmplY3QuZW50cmllcyhkeW5hbWljVmFsdWVzKSkge1xuICAgICAgbm90aWNlLmFkZER5bmFtaWNWYWx1ZShrZXksIHZhbHVlcy5qb2luKHNwZWNzPy5ba2V5XT8uc2VwYXJhdG9yID8/ICcsJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmVhdCAnZnJhbWV3b3JrJyBhcyBhbiBhbGlhcyBmb3IgZWl0aGVyIGBhd3MtY2RrLWxpYi5gIG9yIGBAYXdzLWNkay9jb3JlLmAuXG4gICAqXG4gICAqIEJlY2F1c2UgaXQncyBFSVRIRVIgYGF3cy1jZGstbGliYCBvciBgQGF3cy1jZGsvY29yZWAsIHdlIG5lZWQgdG8gYWRkIG11bHRpcGxlXG4gICAqIGFycmF5cyBhdCB0aGUgdG9wIGxldmVsLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlQWxpYXNlcyhvcnM6IENvbXBvbmVudFtdW10pOiBDb21wb25lbnRbXVtdIHtcbiAgICByZXR1cm4gb3JzLmZsYXRNYXAoYW5kcyA9PiB7XG4gICAgICBjb25zdCBoYXNGcmFtZXdvcmsgPSBhbmRzLmZpbmQoYyA9PiBjLm5hbWUgPT09ICdmcmFtZXdvcmsnKTtcbiAgICAgIGlmICghaGFzRnJhbWV3b3JrKSB7XG4gICAgICAgIHJldHVybiBbYW5kc107XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIGFuZHMubWFwKGMgPT4gYy5uYW1lID09PSAnZnJhbWV3b3JrJyA/IHsgLi4uYywgbmFtZTogJ0Bhd3MtY2RrL2NvcmUuJyB9IDogYyksXG4gICAgICAgIGFuZHMubWFwKGMgPT4gYy5uYW1lID09PSAnZnJhbWV3b3JrJyA/IHsgLi4uYywgbmFtZTogJ2F3cy1jZGstbGliLicgfSA6IGMpLFxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBjb25zdHJ1Y3QgdHJlZSBmcm9tIHRoZSBnaXZlbiBkaXJlY3RvcnkgYW5kIHJldHVybiBpdHMgY29tcG9uZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjb25zdHJ1Y3RUcmVlQ29tcG9uZW50cyhtYW5pZmVzdERpcjogc3RyaW5nKTogUHJvbWlzZTxBY3R1YWxDb21wb25lbnRbXT4ge1xuICAgIGNvbnN0IHRyZWUgPSBhd2FpdCBsb2FkVHJlZUZyb21EaXIobWFuaWZlc3REaXIsIChtc2c6IHN0cmluZykgPT4gdGhpcy5pb0hlbHBlci5kZWZhdWx0cy50cmFjZShtc2cpKTtcbiAgICBpZiAoIXRyZWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXQ6IEFjdHVhbENvbXBvbmVudFtdID0gW107XG4gICAgcmVjdXJzZSh0cmVlKTtcbiAgICByZXR1cm4gcmV0O1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzZSh4OiBDb25zdHJ1Y3RUcmVlTm9kZSkge1xuICAgICAgaWYgKHguY29uc3RydWN0SW5mbz8uZnFuICYmIHguY29uc3RydWN0SW5mbz8udmVyc2lvbikge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgbmFtZTogeC5jb25zdHJ1Y3RJbmZvPy5mcW4sXG4gICAgICAgICAgdmVyc2lvbjogeC5jb25zdHJ1Y3RJbmZvPy52ZXJzaW9uLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBPYmplY3QudmFsdWVzKHguY2hpbGRyZW4gPz8ge30pKSB7XG4gICAgICAgIHJlY3Vyc2UoY2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIE5vdGljZSBhZnRlciBwYXNzaW5nIHRoZSBmaWx0ZXIuIEEgZmlsdGVyIGNhbiBhdWdtZW50IGEgbm90aWNlIHdpdGhcbiAqIGR5bmFtaWMgdmFsdWVzIGFzIGl0IGhhcyBhY2Nlc3MgdG8gdGhlIGR5bmFtaWMgbWF0Y2hpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbHRlcmVkTm90aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkeW5hbWljVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBub3RpY2U6IE5vdGljZSkge1xuICB9XG5cbiAgcHVibGljIGFkZER5bmFtaWNWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZHluYW1pY1ZhbHVlc1tge3Jlc29sdmU6JHtrZXl9fWBdID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tcG9uZW50c1ZhbHVlID0gZG5mQ29tcG9uZW50cyh0aGlzLm5vdGljZSkubWFwKHJlbmRlckNvbmp1bmN0aW9uKS5qb2luKCcsICcpO1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVEeW5hbWljVmFsdWVzKFtcbiAgICAgIGAke3RoaXMubm90aWNlLmlzc3VlTnVtYmVyfVxcdCR7dGhpcy5ub3RpY2UudGl0bGV9YCxcbiAgICAgIHRoaXMuZm9ybWF0T3ZlcnZpZXcoKSxcbiAgICAgIGBcXHRBZmZlY3RlZCB2ZXJzaW9uczogJHtjb21wb25lbnRzVmFsdWV9YCxcbiAgICAgIGBcXHRNb3JlIGluZm9ybWF0aW9uIGF0OiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLyR7dGhpcy5ub3RpY2UuaXNzdWVOdW1iZXJ9YCxcbiAgICBdLmpvaW4oJ1xcblxcbicpICsgJ1xcbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRPdmVydmlldygpIHtcbiAgICBjb25zdCB3cmFwID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC8oPyFbXlxcbl17MSw2MH0kKShbXlxcbl17MSw2MH0pXFxzL2csICckMVxcbicpO1xuXG4gICAgY29uc3QgaGVhZGluZyA9ICdPdmVydmlldzogJztcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBgXFxuXFx0JHsnICcucmVwZWF0KGhlYWRpbmcubGVuZ3RoKX1gO1xuICAgIGNvbnN0IGNvbnRlbnQgPSB3cmFwKHRoaXMubm90aWNlLm92ZXJ2aWV3KVxuICAgICAgLnNwbGl0KCdcXG4nKVxuICAgICAgLmpvaW4oc2VwYXJhdG9yKTtcblxuICAgIHJldHVybiAnXFx0JyArIGhlYWRpbmcgKyBjb250ZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRHluYW1pY1ZhbHVlcyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChPYmplY3Qua2V5cyh0aGlzLmR5bmFtaWNWYWx1ZXMpLmpvaW4oJ3wnKSwgJ2cnKTtcbiAgICByZXR1cm4gaW5wdXQucmVwbGFjZShwYXR0ZXJuLCAobWF0Y2hlZCkgPT4gdGhpcy5keW5hbWljVmFsdWVzW21hdGNoZWRdID8/IG1hdGNoZWQpO1xuICB9XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./notices\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ub3RpY2VzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Notices = void 0;\nconst path = require(\"path\");\nconst util_1 = require(\"../../util\");\nconst cached_data_source_1 = require(\"./cached-data-source\");\nconst filter_1 = require(\"./filter\");\nconst web_data_source_1 = require(\"./web-data-source\");\nconst private_1 = require(\"../io/private\");\nconst CACHE_FILE_PATH = path.join((0, util_1.cdkCacheDir)(), 'notices.json');\n/**\n * Provides access to notices the CLI can display.\n */\nclass Notices {\n /**\n * Create an instance. Note that this replaces the singleton.\n */\n static create(props) {\n this._instance = new Notices(props);\n return this._instance;\n }\n /**\n * Get the singleton instance. May return `undefined` if `create` has not been called.\n */\n static get() {\n return this._instance;\n }\n static _instance;\n context;\n output;\n language;\n acknowledgedIssueNumbers;\n httpOptions;\n ioHelper;\n cliVersion;\n data = new Set();\n // sets don't deduplicate interfaces, so we use a map.\n bootstrappedEnvironments = new Map();\n constructor(props) {\n this.context = props.context;\n this.acknowledgedIssueNumbers = new Set(this.context.get('acknowledged-issue-numbers') ?? []);\n this.output = props.output ?? 'cdk.out';\n this.language = props.language;\n this.httpOptions = props.httpOptions ?? {};\n this.ioHelper = (0, private_1.asIoHelper)(props.ioHost, 'notices' /* forcing a CliAction to a ToolkitAction */);\n this.cliVersion = props.cliVersion;\n }\n /**\n * Add a bootstrap information to filter on. Can have multiple values\n * in case of multi-environment deployments.\n */\n addBootstrappedEnvironment(bootstrapped) {\n const key = [\n bootstrapped.bootstrapStackVersion,\n bootstrapped.environment.account,\n bootstrapped.environment.region,\n bootstrapped.environment.name,\n ].join(':');\n this.bootstrappedEnvironments.set(key, bootstrapped);\n }\n /**\n * Refresh the list of notices this instance is aware of.\n *\n * This method throws an error if the data source fails to fetch notices.\n * When using, consider if execution should halt immdiately or if catching the error and continuing is more appropriate\n *\n * @throws on failure to refresh the data source\n */\n async refresh(options = {}) {\n const innerDataSource = options.dataSource ?? new web_data_source_1.WebsiteNoticeDataSource(this.ioHelper, this.httpOptions);\n const dataSource = new cached_data_source_1.CachedDataSource(this.ioHelper, CACHE_FILE_PATH, innerDataSource, options.force ?? false);\n const notices = await dataSource.fetch();\n this.data = new Set(notices);\n }\n /**\n * Filter the data source for relevant notices\n */\n async filter(options = {}) {\n return new filter_1.NoticesFilter(this.ioHelper).filter({\n data: this.noticesFromData(options.includeAcknowledged ?? false),\n cliVersion: this.cliVersion,\n outDir: this.output,\n bootstrappedEnvironments: Array.from(this.bootstrappedEnvironments.values()),\n language: this.language,\n });\n }\n /**\n * Display the relevant notices (unless context dictates we shouldn't).\n */\n async display(options = {}) {\n const filteredNotices = await this.filter(options);\n if (filteredNotices.length > 0) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0100.msg([\n '',\n 'NOTICES (What\\'s this? https://github.com/aws/aws-cdk/wiki/CLI-Notices)',\n '',\n ].join('\\n')));\n for (const filtered of filteredNotices) {\n const formatted = filtered.format() + '\\n';\n switch (filtered.notice.severity) {\n case 'warning':\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_W0101.msg(formatted));\n break;\n case 'error':\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E0101.msg(formatted));\n break;\n default:\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0101.msg(formatted));\n break;\n }\n }\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0100.msg(`If you don't want to see a notice anymore, use \"cdk acknowledge \". For example, \"cdk acknowledge ${filteredNotices[0].notice.issueNumber}\".`));\n }\n if (options.showTotal ?? false) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I0100.msg(`\\nThere are ${filteredNotices.length} unacknowledged notice(s).`));\n }\n }\n /**\n * List all notices available in the data source.\n *\n * @param includeAcknowlegded - Whether to include acknowledged notices.\n */\n noticesFromData(includeAcknowlegded = false) {\n const data = Array.from(this.data);\n if (includeAcknowlegded) {\n return data;\n }\n return data.filter(n => !this.acknowledgedIssueNumbers.has(n.issueNumber));\n }\n}\nexports.Notices = Notices;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5vdGljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkJBQTZCO0FBQzdCLHFDQUF5QztBQUd6Qyw2REFBd0Q7QUFFeEQscUNBQXlDO0FBRXpDLHVEQUE0RDtBQUU1RCwyQ0FBK0M7QUFFL0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGtCQUFXLEdBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztBQXNGakU7O0dBRUc7QUFDSCxNQUFhLE9BQU87SUFDbEI7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQW1CO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxHQUFHO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxNQUFNLENBQUMsU0FBUyxDQUFzQjtJQUU3QixPQUFPLENBQVU7SUFDakIsTUFBTSxDQUFTO0lBQ2YsUUFBUSxDQUFVO0lBQ2xCLHdCQUF3QixDQUFjO0lBQ3RDLFdBQVcsQ0FBcUI7SUFDaEMsUUFBUSxDQUFXO0lBQ25CLFVBQVUsQ0FBUztJQUU1QixJQUFJLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFdEMsc0RBQXNEO0lBQ3JDLHdCQUF3QixHQUF5QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTVGLFlBQW9CLEtBQW1CO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RixJ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LENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0NBQ0Y7QUF2SUQsMEJBdUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJ2h0dHBzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjZGtDYWNoZURpciB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IElJb0hvc3QgfSBmcm9tICcuLi9pbyc7XG5pbXBvcnQgeyBDYWNoZWREYXRhU291cmNlIH0gZnJvbSAnLi9jYWNoZWQtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJlZE5vdGljZSB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IE5vdGljZXNGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcHBlZEVudmlyb25tZW50LCBOb3RpY2UsIE5vdGljZURhdGFTb3VyY2UgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFdlYnNpdGVOb3RpY2VEYXRhU291cmNlIH0gZnJvbSAnLi93ZWItZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8sIGFzSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuY29uc3QgQ0FDSEVfRklMRV9QQVRIID0gcGF0aC5qb2luKGNka0NhY2hlRGlyKCksICdub3RpY2VzLmpzb24nKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgSFRUUFMgcmVxdWVzdHMgbWFkZSBieSBOb3RpY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWNlc0h0dHBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhZ2VudCByZXNwb25zaWJsZSBmb3IgbWFraW5nIHRoZSBuZXR3b3JrIHJlcXVlc3RzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBzbyBzZXQgdXAgYSBwcm94eSBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIHNoYXJlZCBnbG9iYWwgbm9kZSBhZ2VudFxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnQ/OiBBZ2VudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpY2VzUHJvcHMge1xuICAvKipcbiAgICogQ0RLIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEdsb2JhbCBDTEkgb3B0aW9uIGZvciBvdXRwdXQgZGlyZWN0b3J5IGZvciBzeW50aGVzaXplZCBjbG91ZCBhc3NlbWJseVxuICAgKlxuICAgKiBAZGVmYXVsdCAnY2RrLm91dCdcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRldGVjdGVkIENESyBhcHAgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGFuZ3VhZ2UgZmlsdGVyaW5nXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIEhUVFBTIHJlcXVlc3RzIG1hZGUgYnkgTm90aWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE9wdGlvbnM/OiBOb3RpY2VzSHR0cE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXJlIG1lc3NhZ2VzIGFyZSBnb2luZyB0byBiZSBzZW50XG4gICAqL1xuICByZWFkb25seSBpb0hvc3Q6IElJb0hvc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBDTElcbiAgICovXG4gIHJlYWRvbmx5IGNsaVZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpY2VzRmlsdGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIG5vdGljZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhY2tub3dsZWRnZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlQWNrbm93bGVkZ2VkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpY2VzRGlzcGxheU9wdGlvbnMgZXh0ZW5kcyBOb3RpY2VzRmlsdGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFwcGVuZCB0aGUgdG90YWwgbnVtYmVyIG9mIHVuYWNrbm93bGVkZ2VkIG5vdGljZXMgdG8gdGhlIGRpc3BsYXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzaG93VG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGljZXNSZWZyZXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIGEgY2FjaGUgcmVmcmVzaCByZWdhcmRsZXNzIG9mIGV4cGlyYXRpb24gdGltZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGF0YSBzb3VyY2UgZm9yIGZldGNoIG5vdGljZXMgZnJvbS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBXZWJzaXRlTm90aWNlRGF0YVNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVNvdXJjZT86IE5vdGljZURhdGFTb3VyY2U7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYWNjZXNzIHRvIG5vdGljZXMgdGhlIENMSSBjYW4gZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vdGljZXMge1xuICAvKipcbiAgICogQ3JlYXRlIGFuIGluc3RhbmNlLiBOb3RlIHRoYXQgdGhpcyByZXBsYWNlcyB0aGUgc2luZ2xldG9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUocHJvcHM6IE5vdGljZXNQcm9wcyk6IE5vdGljZXMge1xuICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IE5vdGljZXMocHJvcHMpO1xuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZS4gTWF5IHJldHVybiBgdW5kZWZpbmVkYCBpZiBgY3JlYXRlYCBoYXMgbm90IGJlZW4gY2FsbGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQoKTogTm90aWNlcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBOb3RpY2VzIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogQ29udGV4dDtcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZT86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBhY2tub3dsZWRnZWRJc3N1ZU51bWJlcnM6IFNldDxOdW1iZXI+O1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHBPcHRpb25zOiBOb3RpY2VzSHR0cE9wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaVZlcnNpb246IHN0cmluZztcblxuICBwcml2YXRlIGRhdGE6IFNldDxOb3RpY2U+ID0gbmV3IFNldCgpO1xuXG4gIC8vIHNldHMgZG9uJ3QgZGVkdXBsaWNhdGUgaW50ZXJmYWNlcywgc28gd2UgdXNlIGEgbWFwLlxuICBwcml2YXRlIHJlYWRvbmx5IGJvb3RzdHJhcHBlZEVudmlyb25tZW50czogTWFwPHN0cmluZywgQm9vdHN0cmFwcGVkRW52aXJvbm1lbnQ+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJvcHM6IE5vdGljZXNQcm9wcykge1xuICAgIHRoaXMuY29udGV4dCA9IHByb3BzLmNvbnRleHQ7XG4gICAgdGhpcy5hY2tub3dsZWRnZWRJc3N1ZU51bWJlcnMgPSBuZXcgU2V0KHRoaXMuY29udGV4dC5nZXQoJ2Fja25vd2xlZGdlZC1pc3N1ZS1udW1iZXJzJykgPz8gW10pO1xuICAgIHRoaXMub3V0cHV0ID0gcHJvcHMub3V0cHV0ID8/ICdjZGsub3V0JztcbiAgICB0aGlzLmxhbmd1YWdlID0gcHJvcHMubGFuZ3VhZ2U7XG4gICAgdGhpcy5odHRwT3B0aW9ucyA9IHByb3BzLmh0dHBPcHRpb25zID8/IHt9O1xuICAgIHRoaXMuaW9IZWxwZXIgPSBhc0lvSGVscGVyKHByb3BzLmlvSG9zdCwgJ25vdGljZXMnIGFzIGFueSAvKiBmb3JjaW5nIGEgQ2xpQWN0aW9uIHRvIGEgVG9vbGtpdEFjdGlvbiAqLyk7XG4gICAgdGhpcy5jbGlWZXJzaW9uID0gcHJvcHMuY2xpVmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBib290c3RyYXAgaW5mb3JtYXRpb24gdG8gZmlsdGVyIG9uLiBDYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXNcbiAgICogaW4gY2FzZSBvZiBtdWx0aS1lbnZpcm9ubWVudCBkZXBsb3ltZW50cy5cbiAgICovXG4gIHB1YmxpYyBhZGRCb290c3RyYXBwZWRFbnZpcm9ubWVudChib290c3RyYXBwZWQ6IEJvb3RzdHJhcHBlZEVudmlyb25tZW50KSB7XG4gICAgY29uc3Qga2V5ID0gW1xuICAgICAgYm9vdHN0cmFwcGVkLmJvb3RzdHJhcFN0YWNrVmVyc2lvbixcbiAgICAgIGJvb3RzdHJhcHBlZC5lbnZpcm9ubWVudC5hY2NvdW50LFxuICAgICAgYm9vdHN0cmFwcGVkLmVudmlyb25tZW50LnJlZ2lvbixcbiAgICAgIGJvb3RzdHJhcHBlZC5lbnZpcm9ubWVudC5uYW1lLFxuICAgIF0uam9pbignOicpO1xuICAgIHRoaXMuYm9vdHN0cmFwcGVkRW52aXJvbm1lbnRzLnNldChrZXksIGJvb3RzdHJhcHBlZCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaCB0aGUgbGlzdCBvZiBub3RpY2VzIHRoaXMgaW5zdGFuY2UgaXMgYXdhcmUgb2YuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHRocm93cyBhbiBlcnJvciBpZiB0aGUgZGF0YSBzb3VyY2UgZmFpbHMgdG8gZmV0Y2ggbm90aWNlcy5cbiAgICogV2hlbiB1c2luZywgY29uc2lkZXIgaWYgZXhlY3V0aW9uIHNob3VsZCBoYWx0IGltbWRpYXRlbHkgb3IgaWYgY2F0Y2hpbmcgdGhlIGVycm9yIGFuZCBjb250aW51aW5nIGlzIG1vcmUgYXBwcm9wcmlhdGVcbiAgICpcbiAgICogQHRocm93cyBvbiBmYWlsdXJlIHRvIHJlZnJlc2ggdGhlIGRhdGEgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVmcmVzaChvcHRpb25zOiBOb3RpY2VzUmVmcmVzaE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGlubmVyRGF0YVNvdXJjZSA9IG9wdGlvbnMuZGF0YVNvdXJjZSA/PyBuZXcgV2Vic2l0ZU5vdGljZURhdGFTb3VyY2UodGhpcy5pb0hlbHBlciwgdGhpcy5odHRwT3B0aW9ucyk7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IG5ldyBDYWNoZWREYXRhU291cmNlKHRoaXMuaW9IZWxwZXIsIENBQ0hFX0ZJTEVfUEFUSCwgaW5uZXJEYXRhU291cmNlLCBvcHRpb25zLmZvcmNlID8/IGZhbHNlKTtcbiAgICBjb25zdCBub3RpY2VzID0gYXdhaXQgZGF0YVNvdXJjZS5mZXRjaCgpO1xuICAgIHRoaXMuZGF0YSA9IG5ldyBTZXQobm90aWNlcyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIHRoZSBkYXRhIHNvdXJjZSBmb3IgcmVsZXZhbnQgbm90aWNlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGZpbHRlcihvcHRpb25zOiBOb3RpY2VzRGlzcGxheU9wdGlvbnMgPSB7fSk6IFByb21pc2U8RmlsdGVyZWROb3RpY2VbXT4ge1xuICAgIHJldHVybiBuZXcgTm90aWNlc0ZpbHRlcih0aGlzLmlvSGVscGVyKS5maWx0ZXIoe1xuICAgICAgZGF0YTogdGhpcy5ub3RpY2VzRnJvbURhdGEob3B0aW9ucy5pbmNsdWRlQWNrbm93bGVkZ2VkID8/IGZhbHNlKSxcbiAgICAgIGNsaVZlcnNpb246IHRoaXMuY2xpVmVyc2lvbixcbiAgICAgIG91dERpcjogdGhpcy5vdXRwdXQsXG4gICAgICBib290c3RyYXBwZWRFbnZpcm9ubWVudHM6IEFycmF5LmZyb20odGhpcy5ib290c3RyYXBwZWRFbnZpcm9ubWVudHMudmFsdWVzKCkpLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheSB0aGUgcmVsZXZhbnQgbm90aWNlcyAodW5sZXNzIGNvbnRleHQgZGljdGF0ZXMgd2Ugc2hvdWxkbid0KS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkaXNwbGF5KG9wdGlvbnM6IE5vdGljZXNEaXNwbGF5T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsdGVyZWROb3RpY2VzID0gYXdhaXQgdGhpcy5maWx0ZXIob3B0aW9ucyk7XG5cbiAgICBpZiAoZmlsdGVyZWROb3RpY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kwMTAwLm1zZyhbXG4gICAgICAgICcnLFxuICAgICAgICAnTk9USUNFUyAgICAgICAgIChXaGF0XFwncyB0aGlzPyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvd2lraS9DTEktTm90aWNlcyknLFxuICAgICAgICAnJyxcbiAgICAgIF0uam9pbignXFxuJykpKTtcbiAgICAgIGZvciAoY29uc3QgZmlsdGVyZWQgb2YgZmlsdGVyZWROb3RpY2VzKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZpbHRlcmVkLmZvcm1hdCgpICsgJ1xcbic7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyZWQubm90aWNlLnNldmVyaXR5KSB7XG4gICAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9XMDEwMS5tc2coZm9ybWF0dGVkKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FMDEwMS5tc2coZm9ybWF0dGVkKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTAxMDEubXNnKGZvcm1hdHRlZCkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kwMTAwLm1zZyhcbiAgICAgICAgYElmIHlvdSBkb24ndCB3YW50IHRvIHNlZSBhIG5vdGljZSBhbnltb3JlLCB1c2UgXCJjZGsgYWNrbm93bGVkZ2UgPGlkPlwiLiBGb3IgZXhhbXBsZSwgXCJjZGsgYWNrbm93bGVkZ2UgJHtmaWx0ZXJlZE5vdGljZXNbMF0ubm90aWNlLmlzc3VlTnVtYmVyfVwiLmAsXG4gICAgICApKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5zaG93VG90YWwgPz8gZmFsc2UpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kwMTAwLm1zZyhcbiAgICAgICAgYFxcblRoZXJlIGFyZSAke2ZpbHRlcmVkTm90aWNlcy5sZW5ndGh9IHVuYWNrbm93bGVkZ2VkIG5vdGljZShzKS5gLFxuICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIG5vdGljZXMgYXZhaWxhYmxlIGluIHRoZSBkYXRhIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIGluY2x1ZGVBY2tub3dsZWdkZWQgLSBXaGV0aGVyIHRvIGluY2x1ZGUgYWNrbm93bGVkZ2VkIG5vdGljZXMuXG4gICAqL1xuICBwcml2YXRlIG5vdGljZXNGcm9tRGF0YShpbmNsdWRlQWNrbm93bGVnZGVkID0gZmFsc2UpOiBOb3RpY2VbXSB7XG4gICAgY29uc3QgZGF0YSA9IEFycmF5LmZyb20odGhpcy5kYXRhKTtcblxuICAgIGlmIChpbmNsdWRlQWNrbm93bGVnZGVkKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YS5maWx0ZXIobiA9PiAhdGhpcy5hY2tub3dsZWRnZWRJc3N1ZU51bWJlcnMuaGFzKG4uaXNzdWVOdW1iZXIpKTtcbiAgfVxufVxuXG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsiteNoticeDataSource = exports.WebsiteNoticeDataSourceProps = void 0;\nconst https = require(\"node:https\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst network_detector_1 = require(\"../network-detector/network-detector\");\n/**\n * A data source that fetches notices from the CDK notices data source\n */\nclass WebsiteNoticeDataSourceProps {\n /**\n * The URL to load notices from.\n *\n * Note this must be a valid JSON document in the CDK notices data schema.\n *\n * @see https://github.com/cdklabs/aws-cdk-notices\n *\n * @default - Official CDK notices\n */\n url;\n /**\n * The agent responsible for making the network requests.\n *\n * Use this so set up a proxy connection.\n *\n * @default - Uses the shared global node agent\n */\n agent;\n}\nexports.WebsiteNoticeDataSourceProps = WebsiteNoticeDataSourceProps;\nclass WebsiteNoticeDataSource {\n ioHelper;\n /**\n * The URL notices are loaded from.\n */\n url;\n agent;\n constructor(ioHelper, props = {}) {\n this.ioHelper = ioHelper;\n this.agent = props.agent;\n this.url = props.url ?? 'https://cli.cdk.dev-tools.aws.dev/notices.json';\n }\n async fetch() {\n // Check connectivity before attempting network request\n const hasConnectivity = await network_detector_1.NetworkDetector.hasConnectivity(this.agent);\n if (!hasConnectivity) {\n throw new toolkit_error_1.ToolkitError('NoConnectivity', 'No internet connectivity detected');\n }\n // We are observing lots of timeouts when running in a massively parallel\n // integration test environment, so wait for a longer timeout there.\n //\n // In production, have a short timeout to not hold up the user experience.\n const timeout = process.env.CDK_NOTICES_TIMEOUT !== undefined\n ? parseInt(process.env.CDK_NOTICES_TIMEOUT, 10)\n : process.env.TESTING_CDK\n ? 30_000 : 3_000;\n const options = {\n agent: this.agent,\n };\n const notices = await new Promise((resolve, reject) => {\n let req;\n let timer = setTimeout(() => {\n if (req) {\n req.destroy(new toolkit_error_1.ToolkitError('RequestTimeout', 'Request timed out'));\n }\n }, timeout);\n timer.unref();\n try {\n req = https.get(this.url, options, res => {\n if (res.statusCode === 200) {\n res.setEncoding('utf8');\n let rawData = '';\n res.on('data', (chunk) => {\n rawData += chunk;\n });\n res.on('end', () => {\n try {\n const data = JSON.parse(rawData).notices;\n if (!data) {\n throw new toolkit_error_1.ToolkitError('MissingNoticesKey', \"'notices' key is missing from received data\");\n }\n resolve(data ?? []);\n }\n catch (e) {\n reject(toolkit_error_1.ToolkitError.withCause('NoticesParseError', `Parse error: ${(0, util_1.formatErrorMessage)(e)}`, e));\n }\n });\n res.on('error', e => {\n reject(toolkit_error_1.ToolkitError.withCause('NoticesResponseError', (0, util_1.formatErrorMessage)(e), e));\n });\n }\n else {\n reject(new toolkit_error_1.ToolkitError('HttpStatusError', `${(0, util_1.humanHttpStatusError)(res.statusCode)} (Status code: ${res.statusCode})`));\n }\n });\n req.on('error', e => {\n reject(toolkit_error_1.ToolkitError.withCause('NetworkError', (0, util_1.humanNetworkError)(e), e));\n });\n }\n catch (e) {\n reject(toolkit_error_1.ToolkitError.withCause('NoticesRequestError', (0, util_1.formatErrorMessage)(e), e));\n }\n });\n await this.ioHelper.defaults.debug('Notices refreshed');\n return notices;\n }\n}\nexports.WebsiteNoticeDataSource = WebsiteNoticeDataSource;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2ViLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG9DQUFvQztBQUVwQywrREFBMkQ7QUFDM0QscUNBQXlGO0FBRXpGLDJFQUF1RTtBQUV2RTs7R0FFRztBQUNILE1BQWEsNEJBQTRCO0lBQ3ZDOzs7Ozs7OztPQVFHO0lBQ00sR0FBRyxDQUFnQjtJQUU1Qjs7Ozs7O09BTUc7SUFDTSxLQUFLLENBQWU7Q0FDOUI7QUFwQkQsb0VBb0JDO0FBRUQsTUFBYSx1QkFBdUI7SUFRTDtJQVA3Qjs7T0FFRztJQUNhLEdBQUcsQ0FBTTtJQUVSLEtBQUssQ0FBZTtJQUVyQyxZQUE2QixRQUFrQixFQUFFLFFBQXNDLEVBQUU7UUFBNUQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLGdEQUFnRCxDQUFDO0lBQzNFLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULHVEQUF1RDtRQUN2RCxNQUFNLGVBQWUsR0FBRyxNQUFNLGtDQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLDRCQUFZLENBQUMsZ0JBQWdCLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLG9FQUFvRTtRQUNwRSxFQUFFO1FBQ0YsMEVBQTBFO1FBQzFFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEtBQUssU0FBUztZQUMzRCxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQy9D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QkFDaEIsTUFBTSxDQUFDLDRCQUFZLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQXJGRCwwREFxRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsaWVudFJlcXVlc3QgfSBmcm9tICdub2RlOmh0dHAnO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJ25vZGU6aHR0cHMnO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSAnbm9kZTpodHRwcyc7XG5pbXBvcnQgdHlwZSB7IE5vdGljZSwgTm90aWNlRGF0YVNvdXJjZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSwgaHVtYW5IdHRwU3RhdHVzRXJyb3IsIGh1bWFuTmV0d29ya0Vycm9yIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBOZXR3b3JrRGV0ZWN0b3IgfSBmcm9tICcuLi9uZXR3b3JrLWRldGVjdG9yL25ldHdvcmstZGV0ZWN0b3InO1xuXG4vKipcbiAqIEEgZGF0YSBzb3VyY2UgdGhhdCBmZXRjaGVzIG5vdGljZXMgZnJvbSB0aGUgQ0RLIG5vdGljZXMgZGF0YSBzb3VyY2VcbiAqL1xuZXhwb3J0IGNsYXNzIFdlYnNpdGVOb3RpY2VEYXRhU291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCB0byBsb2FkIG5vdGljZXMgZnJvbS5cbiAgICpcbiAgICogTm90ZSB0aGlzIG11c3QgYmUgYSB2YWxpZCBKU09OIGRvY3VtZW50IGluIHRoZSBDREsgbm90aWNlcyBkYXRhIHNjaGVtYS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9hd3MtY2RrLW5vdGljZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPZmZpY2lhbCBDREsgbm90aWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nIHwgVVJMO1xuXG4gIC8qKlxuICAgKiBUaGUgYWdlbnQgcmVzcG9uc2libGUgZm9yIG1ha2luZyB0aGUgbmV0d29yayByZXF1ZXN0cy5cbiAgICpcbiAgICogVXNlIHRoaXMgc28gc2V0IHVwIGEgcHJveHkgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2VzIHRoZSBzaGFyZWQgZ2xvYmFsIG5vZGUgYWdlbnRcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50PzogaHR0cHMuQWdlbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJzaXRlTm90aWNlRGF0YVNvdXJjZSBpbXBsZW1lbnRzIE5vdGljZURhdGFTb3VyY2Uge1xuICAvKipcbiAgICogVGhlIFVSTCBub3RpY2VzIGFyZSBsb2FkZWQgZnJvbS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cmw6IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFnZW50PzogaHR0cHMuQWdlbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXIsIHByb3BzOiBXZWJzaXRlTm90aWNlRGF0YVNvdXJjZVByb3BzID0ge30pIHtcbiAgICB0aGlzLmFnZW50ID0gcHJvcHMuYWdlbnQ7XG4gICAgdGhpcy51cmwgPSBwcm9wcy51cmwgPz8gJ2h0dHBzOi8vY2xpLmNkay5kZXYtdG9vbHMuYXdzLmRldi9ub3RpY2VzLmpzb24nO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2goKTogUHJvbWlzZTxOb3RpY2VbXT4ge1xuICAgIC8vIENoZWNrIGNvbm5lY3Rpdml0eSBiZWZvcmUgYXR0ZW1wdGluZyBuZXR3b3JrIHJlcXVlc3RcbiAgICBjb25zdCBoYXNDb25uZWN0aXZpdHkgPSBhd2FpdCBOZXR3b3JrRGV0ZWN0b3IuaGFzQ29ubmVjdGl2aXR5KHRoaXMuYWdlbnQpO1xuICAgIGlmICghaGFzQ29ubmVjdGl2aXR5KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdOb0Nvbm5lY3Rpdml0eScsICdObyBpbnRlcm5ldCBjb25uZWN0aXZpdHkgZGV0ZWN0ZWQnKTtcbiAgICB9XG5cbiAgICAvLyBXZSBhcmUgb2JzZXJ2aW5nIGxvdHMgb2YgdGltZW91dHMgd2hlbiBydW5uaW5nIGluIGEgbWFzc2l2ZWx5IHBhcmFsbGVsXG4gICAgLy8gaW50ZWdyYXRpb24gdGVzdCBlbnZpcm9ubWVudCwgc28gd2FpdCBmb3IgYSBsb25nZXIgdGltZW91dCB0aGVyZS5cbiAgICAvL1xuICAgIC8vIEluIHByb2R1Y3Rpb24sIGhhdmUgYSBzaG9ydCB0aW1lb3V0IHRvIG5vdCBob2xkIHVwIHRoZSB1c2VyIGV4cGVyaWVuY2UuXG4gICAgY29uc3QgdGltZW91dCA9IHByb2Nlc3MuZW52LkNES19OT1RJQ0VTX1RJTUVPVVQgIT09IHVuZGVmaW5lZFxuICAgICAgPyBwYXJzZUludChwcm9jZXNzLmVudi5DREtfTk9USUNFU19USU1FT1VULCAxMClcbiAgICAgIDogcHJvY2Vzcy5lbnYuVEVTVElOR19DREtcbiAgICAgICAgPyAzMF8wMDAgOiAzXzAwMDtcblxuICAgIGNvbnN0IG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgYWdlbnQ6IHRoaXMuYWdlbnQsXG4gICAgfTtcblxuICAgIGNvbnN0IG5vdGljZXMgPSBhd2FpdCBuZXcgUHJvbWlzZTxOb3RpY2VbXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbGV0IHJlcTogQ2xpZW50UmVxdWVzdCB8IHVuZGVmaW5lZDtcblxuICAgICAgbGV0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChyZXEpIHtcbiAgICAgICAgICByZXEuZGVzdHJveShuZXcgVG9vbGtpdEVycm9yKCdSZXF1ZXN0VGltZW91dCcsICdSZXF1ZXN0IHRpbWVkIG91dCcpKTtcbiAgICAgICAgfVxuICAgICAgfSwgdGltZW91dCk7XG5cbiAgICAgIHRpbWVyLnVucmVmKCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJlcSA9IGh0dHBzLmdldChcbiAgICAgICAgICB0aGlzLnVybCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgICByZXMuc2V0RW5jb2RpbmcoJ3V0ZjgnKTtcbiAgICAgICAgICAgICAgbGV0IHJhd0RhdGEgPSAnJztcbiAgICAgICAgICAgICAgcmVzLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgcmF3RGF0YSArPSBjaHVuaztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJlcy5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyYXdEYXRhKS5ub3RpY2VzIGFzIE5vdGljZVtdO1xuICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ01pc3NpbmdOb3RpY2VzS2V5JywgXCInbm90aWNlcycga2V5IGlzIG1pc3NpbmcgZnJvbSByZWNlaXZlZCBkYXRhXCIpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhID8/IFtdKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgICAgICAgIHJlamVjdChUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdOb3RpY2VzUGFyc2VFcnJvcicsIGBQYXJzZSBlcnJvcjogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCwgZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJlcy5vbignZXJyb3InLCBlID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QoVG9vbGtpdEVycm9yLndpdGhDYXVzZSgnTm90aWNlc1Jlc3BvbnNlRXJyb3InLCBmb3JtYXRFcnJvck1lc3NhZ2UoZSksIGUpKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QobmV3IFRvb2xraXRFcnJvcignSHR0cFN0YXR1c0Vycm9yJywgYCR7aHVtYW5IdHRwU3RhdHVzRXJyb3IocmVzLnN0YXR1c0NvZGUhKX0gKFN0YXR1cyBjb2RlOiAke3Jlcy5zdGF0dXNDb2RlfSlgKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgcmVxLm9uKCdlcnJvcicsIGUgPT4ge1xuICAgICAgICAgIHJlamVjdChUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdOZXR3b3JrRXJyb3InLCBodW1hbk5ldHdvcmtFcnJvcihlKSwgZSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICByZWplY3QoVG9vbGtpdEVycm9yLndpdGhDYXVzZSgnTm90aWNlc1JlcXVlc3RFcnJvcicsIGZvcm1hdEVycm9yTWVzc2FnZShlKSwgZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZygnTm90aWNlcyByZWZyZXNoZWQnKTtcbiAgICByZXR1cm4gbm90aWNlcztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isContextProviderPlugin = isContextProviderPlugin;\nfunction isContextProviderPlugin(x) {\n return typeof x === 'object' && !!x && !!x.getValue;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wcm92aWRlci1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250ZXh0LXByb3ZpZGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLDBEQUVDO0FBRkQsU0FBZ0IsdUJBQXVCLENBQUMsQ0FBVTtJQUNoRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFTLENBQUMsUUFBUSxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGdldFZhbHVlKGFyZ3M6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQcm9taXNlPGFueT47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRleHRQcm92aWRlclBsdWdpbih4OiB1bmtub3duKTogeCBpcyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICByZXR1cm4gdHlwZW9mIHggPT09ICdvYmplY3QnICYmICEheCAmJiAhISh4IGFzIGFueSkuZ2V0VmFsdWU7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./plugin\"), exports);\n__exportStar(require(\"./mode\"), exports);\n__exportStar(require(\"./context-provider-plugin\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLHlDQUF1QjtBQUN2Qiw0REFBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL21vZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLXBsdWdpbic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mode = void 0;\nvar Mode;\n(function (Mode) {\n Mode[Mode[\"ForReading\"] = 0] = \"ForReading\";\n Mode[Mode[\"ForWriting\"] = 1] = \"ForWriting\";\n})(Mode || (exports.Mode = Mode = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsSUFBWSxJQUdYO0FBSEQsV0FBWSxJQUFJO0lBQ2QsMEJBQWEsQ0FBNEIsZ0JBQUEsQ0FBQTtJQUN6QywwQkFBYSxDQUE0QixnQkFBQSxDQUFBO0FBQzNDLENBQUMsRUFIVyxJQUFJLG9CQUFKLElBQUksUUFHZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRm9yUmVhZGluZyBhcyBQbHVnaW5Gb3JSZWFkaW5nLCBGb3JXcml0aW5nIGFzIFBsdWdpbkZvcldyaXRpbmcgfSBmcm9tICdAYXdzLWNkay9jbGktcGx1Z2luLWNvbnRyYWN0JztcblxuZXhwb3J0IGVudW0gTW9kZSB7XG4gIEZvclJlYWRpbmcgPSAwIHNhdGlzZmllcyBQbHVnaW5Gb3JSZWFkaW5nLFxuICBGb3JXcml0aW5nID0gMSBzYXRpc2ZpZXMgUGx1Z2luRm9yV3JpdGluZyxcbn1cbiJdfQ==",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceMapping = exports.ResourceLocation = void 0;\n/**\n * This class mirrors the `ResourceLocation` interface from CloudFormation,\n * but is richer, since it has a reference to the stack object, rather than\n * merely the stack name.\n */\nclass ResourceLocation {\n stack;\n logicalResourceId;\n constructor(stack, logicalResourceId) {\n this.stack = stack;\n this.logicalResourceId = logicalResourceId;\n }\n toPath() {\n const resource = this.stack.template.Resources?.[this.logicalResourceId];\n const result = resource?.Metadata?.['aws:cdk:path'];\n if (result != null) {\n return result;\n }\n // If the path is not available, we can use stack name and logical ID\n return this.toLocationString();\n }\n toLocationString() {\n return `${this.stack.stackName}.${this.logicalResourceId}`;\n }\n getType() {\n const resource = this.stack.template.Resources?.[this.logicalResourceId ?? ''];\n return resource?.Type ?? 'Unknown';\n }\n equalTo(other) {\n return this.logicalResourceId === other.logicalResourceId && this.stack.stackName === other.stack.stackName;\n }\n get stackName() {\n return this.stack.stackName;\n }\n}\nexports.ResourceLocation = ResourceLocation;\n/**\n * A mapping between a source and a destination location.\n */\nclass ResourceMapping {\n source;\n destination;\n constructor(source, destination) {\n this.source = source;\n this.destination = destination;\n }\n toTypedMapping() {\n return {\n // the type is the same in both source and destination,\n // so we can use either one\n type: this.source.getType(),\n sourcePath: this.source.toPath(),\n destinationPath: this.destination.toPath(),\n };\n }\n toCloudFormation() {\n return {\n Source: {\n StackName: this.source.stack.stackName,\n LogicalResourceId: this.source.logicalResourceId,\n },\n Destination: {\n StackName: this.destination.stack.stackName,\n LogicalResourceId: this.destination.logicalResourceId,\n },\n };\n }\n}\nexports.ResourceMapping = ResourceMapping;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEyQkE7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWdCO0lBQ0M7SUFBNEM7SUFBeEUsWUFBNEIsS0FBMEIsRUFBa0IsaUJBQXlCO1FBQXJFLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQWtCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtJQUNqRyxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVwRCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQscUVBQXFFO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVNLE9BQU87UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxRQUFRLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQXVCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBaENELDRDQWdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQ0U7SUFBMEM7SUFBdEUsWUFBNEIsTUFBd0IsRUFBa0IsV0FBNkI7UUFBdkUsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFBa0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQ25HLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU87WUFDTCx1REFBdUQ7WUFDdkQsMkJBQTJCO1lBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDaEMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU87WUFDTCxNQUFNLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQ3RDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCO2FBQ2pEO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUMzQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQjthQUN0RDtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUExQkQsMENBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBUeXBlZE1hcHBpbmcgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VNYXBwaW5nIGFzIENmblJlc291cmNlTWFwcGluZyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25SZXNvdXJjZSB7XG4gIFR5cGU6IHN0cmluZztcbiAgUHJvcGVydGllcz86IGFueTtcbiAgTWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBEZXBlbmRzT24/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvblRlbXBsYXRlIHtcbiAgUmVzb3VyY2VzPzoge1xuICAgIFtsb2dpY2FsSWQ6IHN0cmluZ106IENsb3VkRm9ybWF0aW9uUmVzb3VyY2U7XG4gIH07XG4gIE91dHB1dHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBSdWxlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIFBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRm9ybWF0aW9uU3RhY2sge1xuICByZWFkb25seSBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0ZW1wbGF0ZTogQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZTtcbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUFybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIG1pcnJvcnMgdGhlIGBSZXNvdXJjZUxvY2F0aW9uYCBpbnRlcmZhY2UgZnJvbSBDbG91ZEZvcm1hdGlvbixcbiAqIGJ1dCBpcyByaWNoZXIsIHNpbmNlIGl0IGhhcyBhIHJlZmVyZW5jZSB0byB0aGUgc3RhY2sgb2JqZWN0LCByYXRoZXIgdGhhblxuICogbWVyZWx5IHRoZSBzdGFjayBuYW1lLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VMb2NhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjaywgcHVibGljIHJlYWRvbmx5IGxvZ2ljYWxSZXNvdXJjZUlkOiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyB0b1BhdGgoKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMuc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzPy5bdGhpcy5sb2dpY2FsUmVzb3VyY2VJZF07XG4gICAgY29uc3QgcmVzdWx0ID0gcmVzb3VyY2U/Lk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddO1xuXG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBwYXRoIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbiB1c2Ugc3RhY2sgbmFtZSBhbmQgbG9naWNhbCBJRFxuICAgIHJldHVybiB0aGlzLnRvTG9jYXRpb25TdHJpbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0xvY2F0aW9uU3RyaW5nKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0uJHt0aGlzLmxvZ2ljYWxSZXNvdXJjZUlkfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5zdGFjay50ZW1wbGF0ZS5SZXNvdXJjZXM/Llt0aGlzLmxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnXTtcbiAgICByZXR1cm4gcmVzb3VyY2U/LlR5cGUgPz8gJ1Vua25vd24nO1xuICB9XG5cbiAgcHVibGljIGVxdWFsVG8ob3RoZXI6IFJlc291cmNlTG9jYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY2FsUmVzb3VyY2VJZCA9PT0gb3RoZXIubG9naWNhbFJlc291cmNlSWQgJiYgdGhpcy5zdGFjay5zdGFja05hbWUgPT09IG90aGVyLnN0YWNrLnN0YWNrTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2suc3RhY2tOYW1lO1xuICB9XG59XG5cbi8qKlxuICogQSBtYXBwaW5nIGJldHdlZW4gYSBzb3VyY2UgYW5kIGEgZGVzdGluYXRpb24gbG9jYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZU1hcHBpbmcge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBSZXNvdXJjZUxvY2F0aW9uLCBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IFJlc291cmNlTG9jYXRpb24pIHtcbiAgfVxuXG4gIHB1YmxpYyB0b1R5cGVkTWFwcGluZygpOiBUeXBlZE1hcHBpbmcge1xuICAgIHJldHVybiB7XG4gICAgICAvLyB0aGUgdHlwZSBpcyB0aGUgc2FtZSBpbiBib3RoIHNvdXJjZSBhbmQgZGVzdGluYXRpb24sXG4gICAgICAvLyBzbyB3ZSBjYW4gdXNlIGVpdGhlciBvbmVcbiAgICAgIHR5cGU6IHRoaXMuc291cmNlLmdldFR5cGUoKSxcbiAgICAgIHNvdXJjZVBhdGg6IHRoaXMuc291cmNlLnRvUGF0aCgpLFxuICAgICAgZGVzdGluYXRpb25QYXRoOiB0aGlzLmRlc3RpbmF0aW9uLnRvUGF0aCgpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9DbG91ZEZvcm1hdGlvbigpOiBDZm5SZXNvdXJjZU1hcHBpbmcge1xuICAgIHJldHVybiB7XG4gICAgICBTb3VyY2U6IHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnNvdXJjZS5zdGFjay5zdGFja05hbWUsXG4gICAgICAgIExvZ2ljYWxSZXNvdXJjZUlkOiB0aGlzLnNvdXJjZS5sb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAgIH0sXG4gICAgICBEZXN0aW5hdGlvbjoge1xuICAgICAgICBTdGFja05hbWU6IHRoaXMuZGVzdGluYXRpb24uc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBMb2dpY2FsUmVzb3VyY2VJZDogdGhpcy5kZXN0aW5hdGlvbi5sb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RefactoringContext = void 0;\nexports.replaceAwsPlaceholders = replaceAwsPlaceholders;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloudformation_1 = require(\"./cloudformation\");\nconst digest_1 = require(\"./digest\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst sets_1 = require(\"../../util/sets\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\n/**\n * Encapsulates the information for refactoring resources in a single environment.\n */\nclass RefactoringContext {\n _mappings = [];\n ambiguousMoves = [];\n localStacks;\n assumeRoleArn;\n environment;\n constructor(props) {\n this.environment = props.environment;\n const moves = resourceMoves(props.deployedStacks, props.localStacks, 'direct', props.ignoreModifications);\n const additionalOverrides = structuralOverrides(props.deployedStacks, props.localStacks);\n const overrides = (props.overrides ?? []).concat(additionalOverrides);\n const [nonAmbiguousMoves, ambiguousMoves] = partitionByAmbiguity(overrides, moves);\n this.ambiguousMoves = ambiguousMoves;\n this.localStacks = props.localStacks;\n this.assumeRoleArn = props.assumeRoleArn;\n this._mappings = resourceMappings(nonAmbiguousMoves);\n }\n get ambiguousPaths() {\n return this.ambiguousMoves.map(([a, b]) => [convert(a), convert(b)]);\n function convert(locations) {\n return locations.map((l) => l.toPath());\n }\n }\n get mappings() {\n return this._mappings;\n }\n async execute(stackDefinitions, sdkProvider, ioHelper) {\n if (this.mappings.length === 0) {\n return;\n }\n const assumeRoleArn = this.assumeRoleArn ?? await this.findRoleToAssume(sdkProvider);\n const sdk = (await sdkProvider.forEnvironment(this.environment, plugin_1.Mode.ForWriting, {\n assumeRoleArn,\n })).sdk;\n await this.checkBootstrapVersion(sdk, ioHelper);\n const cfn = sdk.cloudFormation();\n const mappings = this.mappings;\n const input = {\n ResourceMappings: mappings.map((m) => m.toCloudFormation()),\n StackDefinitions: stackDefinitions,\n };\n const refactor = await cfn.createStackRefactor(input);\n await cfn.waitUntilStackRefactorCreateComplete({\n StackRefactorId: refactor.StackRefactorId,\n });\n await cfn.executeStackRefactor({\n StackRefactorId: refactor.StackRefactorId,\n });\n await cfn.waitUntilStackRefactorExecuteComplete({\n StackRefactorId: refactor.StackRefactorId,\n });\n }\n async checkBootstrapVersion(sdk, ioHelper) {\n const environmentResourcesRegistry = new environment_1.EnvironmentResourcesRegistry();\n const envResources = environmentResourcesRegistry.for(this.environment, sdk, ioHelper);\n let bootstrapVersion = undefined;\n try {\n // Try to get the bootstrap version\n bootstrapVersion = (await envResources.lookupToolkit()).version;\n }\n catch (e) {\n // But if we can't, keep going. Maybe we can still succeed.\n }\n if (bootstrapVersion != null && bootstrapVersion < 28) {\n const environment = `aws://${this.environment.account}/${this.environment.region}`;\n throw new toolkit_error_1.ToolkitError('BootstrapVersionTooLow', `The CDK toolkit stack in environment ${environment} doesn't support refactoring. Please run 'cdk bootstrap ${environment}' to update it.`);\n }\n }\n async findRoleToAssume(sdkProvider) {\n // To execute a refactor, we need the deployment role ARN for the given\n // environment. Most toolkit commands get the information about which roles to\n // assume from the cloud assembly (and ultimately from the CDK framework). Refactor\n // is different because it is not the application/framework that dictates what the\n // toolkit should do, but it is the toolkit itself that has to figure it out.\n //\n // Nevertheless, the cloud assembly is the most reliable source for this kind of\n // information. For the deployment role ARN, in particular, what we do here\n // is look at all the stacks for a given environment in the cloud assembly and\n // extract the deployment role ARN that is common to all of them. If no role is\n // found, we go ahead without assuming a role. If there is more than one role,\n // we consider that an invariant was violated, and throw an error.\n const env = this.environment;\n const roleArns = new Set(this.localStacks\n .filter((s) => s.environment.account === env.account && s.environment.region === env.region)\n .map((s) => s.assumeRoleArn));\n if (roleArns.size === 0) {\n return undefined;\n }\n if (roleArns.size !== 1) {\n // Unlikely to happen. But if it does, we can't proceed\n throw new toolkit_error_1.ToolkitError('MultipleDeploymentRoles', `Multiple stacks in environment aws://${env.account}/${env.region} have different deployment role ARNs. Cannot proceed.`);\n }\n const arn = Array.from(roleArns)[0];\n if (arn != null) {\n const resolvedEnv = await sdkProvider.resolveEnvironment(env);\n const region = resolvedEnv.region;\n return (await replaceAwsPlaceholders({ region, assumeRoleArn: arn }, new cdk_assets_lib_1.DefaultAwsClient())).assumeRoleArn;\n }\n // If we couldn't find a role ARN, we can proceed without assuming a role.\n // Maybe the default credentials have permissions to do what we need.\n return undefined;\n }\n}\nexports.RefactoringContext = RefactoringContext;\n/**\n * Generates an automatic list of overrides that can be deduced from the structure of the opposite resource graph.\n * Suppose we have the following resource graph:\n *\n * A --> B\n * C --> D\n *\n * such that B and D are identical, but A is different from C. Then digest(B) = digest(D). If both resources are moved,\n * we have an ambiguity. But if we reverse the arrows:\n *\n * A <-- B\n * C <-- D\n *\n * then digest(B) ≠ digest(D), because they now have different dependencies. If we compute the mappings from this\n * opposite graph, we can use them as a set of overrides to disambiguate the original moves.\n *\n */\nfunction structuralOverrides(deployedStacks, localStacks) {\n const moves = resourceMoves(deployedStacks, localStacks, 'opposite', true);\n const [nonAmbiguousMoves] = partitionByAmbiguity([], moves);\n return resourceMappings(nonAmbiguousMoves);\n}\nfunction resourceMoves(before, after, direction = 'direct', ignoreModifications = false) {\n const digestsBefore = resourceDigests(before, direction);\n const digestsAfter = resourceDigests(after, direction);\n if (!(ignoreModifications || isomorphic(digestsBefore, digestsAfter))) {\n const message = ['A refactor operation cannot add, remove or update resources. Only resource moves and renames are allowed.'];\n const locationsForDigests = (a, b) => {\n return Array.from((0, sets_1.setDiff)(new Set(Object.keys(a)), new Set(Object.keys(b)))).flatMap(k => a[k]);\n };\n const formatList = (locs, icon) => locs.map(x => ` [${icon}] ${x.toPath()}`).sort().join('\\n');\n const stackNames = (stacks) => stacks.length === 0\n ? 'NONE'\n : stacks\n .map((s) => s.stackName)\n .sort()\n .join(', ');\n const onlyDeployedLocs = locationsForDigests(digestsBefore, digestsAfter);\n const onlyLocalLocs = locationsForDigests(digestsAfter, digestsBefore);\n const onlyDeployedPaths = new Set(onlyDeployedLocs.map(l => l.toPath()));\n const onlyLocalPaths = new Set(onlyLocalLocs.map(l => l.toPath()));\n const differentPaths = new Set(Array.from(onlyDeployedPaths).filter(p => onlyLocalPaths.has(p)));\n const onlyDeployed = formatList(onlyDeployedLocs.filter(l => !differentPaths.has(l.toPath())), '-');\n const onlyLocal = formatList(onlyLocalLocs.filter(l => !differentPaths.has(l.toPath())), '+');\n const different = formatList([...onlyDeployedLocs, ...onlyLocalLocs].filter(l => differentPaths.has(l.toPath())), '~');\n if (onlyDeployed.length > 0) {\n message.push(`The following resources are present only in the AWS environment:\\n${onlyDeployed}`);\n }\n if (onlyLocal.length > 0) {\n message.push(`\\nThe following resources are present only in your CDK application:\\n${onlyLocal}`);\n }\n if (different.length > 0) {\n message.push(`\\nThe following resources are different in your CDK application and the AWS environment:\\n${different}`);\n }\n message.push('');\n message.push('The following stacks were used in the comparison:');\n message.push(` - Deployed: ${stackNames(before)}`);\n message.push(` - Local: ${stackNames(after)}`);\n message.push('');\n message.push('Hint: by default, only deployed stacks that have the same name as a local stack are included.');\n message.push('If you want to include additional deployed stacks for comparison, re-run the command with the option \\'--additional-stack-name=\\' for each stack.');\n throw new toolkit_error_1.ToolkitError('RefactorResourceMismatch', message.join('\\n'));\n }\n return Object.values(removeUnmovedResources(zip(digestsBefore, digestsAfter)));\n}\n/**\n * Whether two sets of resources have the same elements (uniquely identified by the digest), and\n * each element is in the same number of locations. The locations themselves may be different.\n */\nfunction isomorphic(a, b) {\n const sameKeys = (0, sets_1.equalSets)(new Set(Object.keys(a)), new Set(Object.keys(b)));\n return sameKeys && Object.entries(a).every(([digest, locations]) => locations.length === b[digest].length);\n}\nfunction removeUnmovedResources(moves) {\n const result = {};\n for (const [hash, [before, after]] of Object.entries(moves)) {\n const common = before.filter((b) => after.some((a) => a.equalTo(b)));\n result[hash] = [\n before.filter((b) => !common.some((c) => b.equalTo(c))),\n after.filter((a) => !common.some((c) => a.equalTo(c))),\n ];\n }\n return result;\n}\n/**\n * For each hash, identifying a single resource, zip the two lists of locations,\n * producing a resource move\n */\nfunction zip(m1, m2) {\n const result = {};\n for (const [hash, locations] of Object.entries(m1)) {\n if (hash in m2) {\n result[hash] = [locations, m2[hash]];\n }\n else {\n result[hash] = [locations, []];\n }\n }\n for (const [hash, locations] of Object.entries(m2)) {\n if (!(hash in m1)) {\n result[hash] = [[], locations];\n }\n }\n return result;\n}\n/**\n * Computes a list of pairs [digest, location] for each resource in the stack.\n */\nfunction resourceDigests(stacks, direction) {\n // index stacks by name\n const stacksByName = new Map();\n for (const stack of stacks) {\n stacksByName.set(stack.stackName, stack);\n }\n const digests = (0, digest_1.computeResourceDigests)(stacks, direction);\n return groupByKey(Object.entries(digests).map(([loc, digest]) => {\n const [stackName, logicalId] = loc.split('.');\n const location = new cloudformation_1.ResourceLocation(stacksByName.get(stackName), logicalId);\n return [digest, location];\n }));\n function groupByKey(entries) {\n const result = {};\n for (const [key, value] of entries) {\n if (key in result) {\n result[key].push(value);\n }\n else {\n result[key] = [value];\n }\n }\n return result;\n }\n}\nfunction isAmbiguousMove(move) {\n const [pre, post] = move;\n // A move is considered ambiguous if two conditions are met:\n // 1. Both sides have at least one element (otherwise, it's just addition or deletion)\n // 2. At least one side has more than one element\n return pre.length > 0 && post.length > 0 && (pre.length > 1 || post.length > 1);\n}\nfunction resourceMappings(movements) {\n return movements\n .filter(([pre, post]) => pre.length === 1 && post.length === 1 && !pre[0].equalTo(post[0]))\n .map(([pre, post]) => new cloudformation_1.ResourceMapping(pre[0], post[0]));\n}\n/**\n * Partitions a list of moves into non-ambiguous and ambiguous moves.\n * @param overrides - The list of overrides to disambiguate moves\n * @param moves - a pair of lists of moves. First: non-ambiguous, second: ambiguous\n */\nfunction partitionByAmbiguity(overrides, moves) {\n const ambiguous = [];\n const nonAmbiguous = [];\n for (let move of moves) {\n if (!isAmbiguousMove(move)) {\n nonAmbiguous.push(move);\n }\n else {\n for (const override of overrides) {\n const resolvedMove = resolve(override, move);\n if (resolvedMove != null) {\n nonAmbiguous.push(resolvedMove);\n move = remove(override, move);\n }\n }\n // One last chance to be non-ambiguous\n if (!isAmbiguousMove(move)) {\n nonAmbiguous.push(move);\n }\n else {\n ambiguous.push(move);\n }\n }\n }\n function resolve(override, move) {\n const [pre, post] = move;\n const source = pre.find((loc) => loc.equalTo(override.source));\n const destination = post.find((loc) => loc.equalTo(override.destination));\n return (source && destination) ? [[source], [destination]] : undefined;\n }\n function remove(override, move) {\n const [pre, post] = move;\n return [\n pre.filter(loc => !loc.equalTo(override.source)),\n post.filter(loc => !loc.equalTo(override.destination)),\n ];\n }\n return [nonAmbiguous, ambiguous];\n}\n/**\n * Replace the {ACCOUNT} and {REGION} placeholders in all strings found in a complex object.\n *\n * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it\n * (they're nominally independent tools).\n */\nasync function replaceAwsPlaceholders(object, aws) {\n let partition = async () => {\n const p = await aws.discoverPartition();\n partition = () => Promise.resolve(p);\n return p;\n };\n let account = async () => {\n const a = await aws.discoverCurrentAccount();\n account = () => Promise.resolve(a);\n return a;\n };\n return cloud_assembly_api_1.EnvironmentPlaceholders.replaceAsync(object, {\n async region() {\n return object.region ?? aws.discoverDefaultRegion();\n },\n async accountId() {\n return (await account()).accountId;\n },\n async partition() {\n return partition();\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc1pBLHdEQTJCQztBQWpiRCw0REFBc0U7QUFFdEUsb0VBQXNFO0FBR3RFLHFEQUFxRTtBQUVyRSxxQ0FBa0Q7QUFDbEQsK0RBQTJEO0FBQzNELDBDQUFxRDtBQUdyRCxnREFBOEQ7QUFFOUQsc0NBQWlDO0FBa0JqQzs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBQ1osU0FBUyxHQUFzQixFQUFFLENBQUM7SUFDbEMsY0FBYyxHQUFtQixFQUFFLENBQUM7SUFDcEMsV0FBVyxDQUF3QjtJQUNuQyxhQUFhLENBQVU7SUFDeEIsV0FBVyxDQUFjO0lBRXpDLFlBQVksS0FBZ0M7UUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFHLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsU0FBUyxPQUFPLENBQUMsU0FBNkI7WUFDNUMsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQW1DLEVBQUUsV0FBd0IsRUFBRSxRQUFrQjtRQUNwRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRixNQUFNLEdBQUcsR0FBRyxDQUNWLE1BQU0sV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEUsYUFBYTtTQUNkLENBQUMsQ0FDSCxDQUFDLEdBQUcsQ0FBQztRQUVOLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUUvQixNQUFNLEtBQUssR0FBRztZQUNaLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNELGdCQUFnQixFQUFFLGdCQUFnQjtTQUNuQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEQsTUFBTSxHQUFHLENBQUMsb0NBQW9DLENBQUM7WUFDN0MsZUFBZSxFQUFFLFFBQVEsQ0FBQyxlQUFlO1NBQzFDLENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyxDQUFDLG9CQUFvQixDQUFDO1lBQzdCLGVBQWUsRUFBRSxRQUFRLENBQUMsZUFBZTtTQUMxQyxDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQztZQUM5QyxlQUFlLEVBQUUsUUFBUSxDQUFDLGVBQWU7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsUUFBa0I7UUFDOUQsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLDBDQUE0QixFQUFFLENBQUM7UUFDeEUsTUFBTSxZQUFZLEdBQUcsNEJBQTRCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksZ0JBQWdCLEdBQXVCLFNBQVMsQ0FBQztRQUNyRCxJQUFJLENBQUM7WUFDSCxtQ0FBbUM7WUFDbkMsZ0JBQWdCLEdBQUcsQ0FBQyxNQUFNLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNsRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLDJEQUEyRDtRQUM3RCxDQUFDO1FBQ0QsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLElBQUksZ0JBQWdCLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDdEQsTUFBTSxXQUFXLEdBQUcsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25GLE1BQU0sSUFBSSw0QkFBWSxDQUNwQix3QkFBd0IsRUFDeEIsd0NBQXdDLFdBQVcsMkRBQTJELFdBQVcsaUJBQWlCLENBQzNJLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUNyRCx1RUFBdUU7UUFDdkUsOEVBQThFO1FBQzlFLG1GQUFtRjtRQUNuRixrRkFBa0Y7UUFDbEYsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixnRkFBZ0Y7UUFDaEYsMkVBQTJFO1FBQzNFLDhFQUE4RTtRQUM5RSwrRUFBK0U7UUFDL0UsOEVBQThFO1FBQzlFLGtFQUFrRTtRQUVsRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUN0QixJQUFJLENBQUMsV0FBVzthQUNiLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDO2FBQzNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUMvQixDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsdURBQXVEO1lBQ3ZELE1BQU0sSUFBSSw0QkFBWSxDQUNwQix5QkFBeUIsRUFDekIsd0NBQXdDLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE1BQU0sdURBQXVELENBQ3pILENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5RCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxNQUFNLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLGlDQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUM5RyxDQUFDO1FBRUQsMEVBQTBFO1FBQzFFLHFFQUFxRTtRQUNyRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFuSUQsZ0RBbUlDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLGNBQXFDLEVBQUUsV0FBa0M7SUFDcEcsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxPQUFPLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNwQixNQUE2QixFQUM3QixLQUE0QixFQUM1QixZQUE0QixRQUFRLEVBQ3BDLHNCQUErQixLQUFLO0lBQ3BDLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDekQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV2RCxJQUFJLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxNQUFNLE9BQU8sR0FBRyxDQUFDLDJHQUEyRyxDQUFDLENBQUM7UUFFOUgsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQXFDLEVBQUUsQ0FBcUMsRUFBRSxFQUFFO1lBQzNHLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFBLGNBQU8sRUFBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztRQUNuRyxDQUFDLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQXdCLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FDNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9ELE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBNkIsRUFBRSxFQUFFLENBQ25ELE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNqQixDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxNQUFNO2lCQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztpQkFDdkIsSUFBSSxFQUFFO2lCQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxRSxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEcsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZILElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLHFFQUFxRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyx3RUFBd0UsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRyxDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkZBQTZGLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDekgsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxJQUFJLENBQUUsaUJBQWlCLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLElBQUksQ0FBRSxjQUFjLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLCtGQUErRixDQUFDLENBQUM7UUFDOUcsT0FBTyxDQUFDLElBQUksQ0FBQywwSkFBMEosQ0FBQyxDQUFDO1FBRXpLLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFVBQVUsQ0FBQyxDQUFxQyxFQUFFLENBQXFDO0lBQzlGLE1BQU0sUUFBUSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxRQUFRLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0csQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsS0FBbUM7SUFDakUsTUFBTSxNQUFNLEdBQWlDLEVBQUUsQ0FBQztJQUNoRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FB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Q3JDLENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUztZQUNiLE9BQU8sU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0QXdzQ2xpZW50LCB0eXBlIElBd3MgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50UGxhY2Vob2xkZXJzIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgU3RhY2tEZWZpbml0aW9uIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFjayB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgUmVzb3VyY2VMb2NhdGlvbiwgUmVzb3VyY2VNYXBwaW5nIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRGlyZWN0aW9uIH0gZnJvbSAnLi9kaWdlc3QnO1xuaW1wb3J0IHsgY29tcHV0ZVJlc291cmNlRGlnZXN0cyB9IGZyb20gJy4vZGlnZXN0JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBlcXVhbFNldHMsIHNldERpZmYgfSBmcm9tICcuLi8uLi91dGlsL3NldHMnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9zZGsnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNldCBvZiBwb3NzaWJsZSBtb3ZlcyBvZiBhIHJlc291cmNlIGZyb20gb25lIGxvY2F0aW9uXG4gKiB0byBhbm90aGVyLiBJbiB0aGUgaWRlYWwgY2FzZSwgdGhlcmUgaXMgb25seSBvbmUgc291cmNlIGFuZCBvbmx5IG9uZVxuICogZGVzdGluYXRpb24uXG4gKi9cbnR5cGUgUmVzb3VyY2VNb3ZlID0gW1Jlc291cmNlTG9jYXRpb25bXSwgUmVzb3VyY2VMb2NhdGlvbltdXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZWZhY3RvcmluZ0NvbnRleHRPcHRpb25zIHtcbiAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuICBsb2NhbFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdO1xuICBkZXBsb3llZFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdO1xuICBvdmVycmlkZXM/OiBSZXNvdXJjZU1hcHBpbmdbXTtcbiAgYXNzdW1lUm9sZUFybj86IHN0cmluZztcbiAgaWdub3JlTW9kaWZpY2F0aW9ucz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgcmVmYWN0b3JpbmcgcmVzb3VyY2VzIGluIGEgc2luZ2xlIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgY2xhc3MgUmVmYWN0b3JpbmdDb250ZXh0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwcGluZ3M6IFJlc291cmNlTWFwcGluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgYW1iaWd1b3VzTW92ZXM6IFJlc291cmNlTW92ZVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBSZWZhY3RvcmluZ0NvbnRleHRPcHRpb25zKSB7XG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IHByb3BzLmVudmlyb25tZW50O1xuICAgIGNvbnN0IG1vdmVzID0gcmVzb3VyY2VNb3Zlcyhwcm9wcy5kZXBsb3llZFN0YWNrcywgcHJvcHMubG9jYWxTdGFja3MsICdkaXJlY3QnLCBwcm9wcy5pZ25vcmVNb2RpZmljYXRpb25zKTtcbiAgICBjb25zdCBhZGRpdGlvbmFsT3ZlcnJpZGVzID0gc3RydWN0dXJhbE92ZXJyaWRlcyhwcm9wcy5kZXBsb3llZFN0YWNrcywgcHJvcHMubG9jYWxTdGFja3MpO1xuICAgIGNvbnN0IG92ZXJyaWRlcyA9IChwcm9wcy5vdmVycmlkZXMgPz8gW10pLmNvbmNhdChhZGRpdGlvbmFsT3ZlcnJpZGVzKTtcbiAgICBjb25zdCBbbm9uQW1iaWd1b3VzTW92ZXMsIGFtYmlndW91c01vdmVzXSA9IHBhcnRpdGlvbkJ5QW1iaWd1aXR5KG92ZXJyaWRlcywgbW92ZXMpO1xuICAgIHRoaXMuYW1iaWd1b3VzTW92ZXMgPSBhbWJpZ3VvdXNNb3ZlcztcbiAgICB0aGlzLmxvY2FsU3RhY2tzID0gcHJvcHMubG9jYWxTdGFja3M7XG4gICAgdGhpcy5hc3N1bWVSb2xlQXJuID0gcHJvcHMuYXNzdW1lUm9sZUFybjtcblxuICAgIHRoaXMuX21hcHBpbmdzID0gcmVzb3VyY2VNYXBwaW5ncyhub25BbWJpZ3VvdXNNb3Zlcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFtYmlndW91c1BhdGhzKCk6IFtzdHJpbmdbXSwgc3RyaW5nW11dW10ge1xuICAgIHJldHVybiB0aGlzLmFtYmlndW91c01vdmVzLm1hcCgoW2EsIGJdKSA9PiBbY29udmVydChhKSwgY29udmVydChiKV0pO1xuXG4gICAgZnVuY3Rpb24gY29udmVydChsb2NhdGlvbnM6IFJlc291cmNlTG9jYXRpb25bXSk6IHN0cmluZ1tdIHtcbiAgICAgIHJldHVybiBsb2NhdGlvbnMubWFwKChsKSA9PiBsLnRvUGF0aCgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1hcHBpbmdzKCk6IFJlc291cmNlTWFwcGluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fbWFwcGluZ3M7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZShzdGFja0RlZmluaXRpb25zOiBTdGFja0RlZmluaXRpb25bXSwgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5tYXBwaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhc3N1bWVSb2xlQXJuID0gdGhpcy5hc3N1bWVSb2xlQXJuID8/IGF3YWl0IHRoaXMuZmluZFJvbGVUb0Fzc3VtZShzZGtQcm92aWRlcik7XG4gICAgY29uc3Qgc2RrID0gKFxuICAgICAgYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudCwgTW9kZS5Gb3JXcml0aW5nLCB7XG4gICAgICAgIGFzc3VtZVJvbGVBcm4sXG4gICAgICB9KVxuICAgICkuc2RrO1xuXG4gICAgYXdhaXQgdGhpcy5jaGVja0Jvb3RzdHJhcFZlcnNpb24oc2RrLCBpb0hlbHBlcik7XG5cbiAgICBjb25zdCBjZm4gPSBzZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMubWFwcGluZ3M7XG5cbiAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgIFJlc291cmNlTWFwcGluZ3M6IG1hcHBpbmdzLm1hcCgobSkgPT4gbS50b0Nsb3VkRm9ybWF0aW9uKCkpLFxuICAgICAgU3RhY2tEZWZpbml0aW9uczogc3RhY2tEZWZpbml0aW9ucyxcbiAgICB9O1xuICAgIGNvbnN0IHJlZmFjdG9yID0gYXdhaXQgY2ZuLmNyZWF0ZVN0YWNrUmVmYWN0b3IoaW5wdXQpO1xuXG4gICAgYXdhaXQgY2ZuLndhaXRVbnRpbFN0YWNrUmVmYWN0b3JDcmVhdGVDb21wbGV0ZSh7XG4gICAgICBTdGFja1JlZmFjdG9ySWQ6IHJlZmFjdG9yLlN0YWNrUmVmYWN0b3JJZCxcbiAgICB9KTtcblxuICAgIGF3YWl0IGNmbi5leGVjdXRlU3RhY2tSZWZhY3Rvcih7XG4gICAgICBTdGFja1JlZmFjdG9ySWQ6IHJlZmFjdG9yLlN0YWNrUmVmYWN0b3JJZCxcbiAgICB9KTtcblxuICAgIGF3YWl0IGNmbi53YWl0VW50aWxTdGFja1JlZmFjdG9yRXhlY3V0ZUNvbXBsZXRlKHtcbiAgICAgIFN0YWNrUmVmYWN0b3JJZDogcmVmYWN0b3IuU3RhY2tSZWZhY3RvcklkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGVja0Jvb3RzdHJhcFZlcnNpb24oc2RrOiBTREssIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIGNvbnN0IGVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkgPSBuZXcgRW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSgpO1xuICAgIGNvbnN0IGVudlJlc291cmNlcyA9IGVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkuZm9yKHRoaXMuZW52aXJvbm1lbnQsIHNkaywgaW9IZWxwZXIpO1xuICAgIGxldCBib290c3RyYXBWZXJzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRyeSB0byBnZXQgdGhlIGJvb3RzdHJhcCB2ZXJzaW9uXG4gICAgICBib290c3RyYXBWZXJzaW9uID0gKGF3YWl0IGVudlJlc291cmNlcy5sb29rdXBUb29sa2l0KCkpLnZlcnNpb247XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gQnV0IGlmIHdlIGNhbid0LCBrZWVwIGdvaW5nLiBNYXliZSB3ZSBjYW4gc3RpbGwgc3VjY2VlZC5cbiAgICB9XG4gICAgaWYgKGJvb3RzdHJhcFZlcnNpb24gIT0gbnVsbCAmJiBib290c3RyYXBWZXJzaW9uIDwgMjgpIHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gYGF3czovLyR7dGhpcy5lbnZpcm9ubWVudC5hY2NvdW50fS8ke3RoaXMuZW52aXJvbm1lbnQucmVnaW9ufWA7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAnQm9vdHN0cmFwVmVyc2lvblRvb0xvdycsXG4gICAgICAgIGBUaGUgQ0RLIHRvb2xraXQgc3RhY2sgaW4gZW52aXJvbm1lbnQgJHtlbnZpcm9ubWVudH0gZG9lc24ndCBzdXBwb3J0IHJlZmFjdG9yaW5nLiBQbGVhc2UgcnVuICdjZGsgYm9vdHN0cmFwICR7ZW52aXJvbm1lbnR9JyB0byB1cGRhdGUgaXQuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kUm9sZVRvQXNzdW1lKHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcik6IFByb21pc2UgPCBzdHJpbmcgfCB1bmRlZmluZWQgPiB7XG4gICAgLy8gVG8gZXhlY3V0ZSBhIHJlZmFjdG9yLCB3ZSBuZWVkIHRoZSBkZXBsb3ltZW50IHJvbGUgQVJOIGZvciB0aGUgZ2l2ZW5cbiAgICAvLyBlbnZpcm9ubWVudC4gTW9zdCB0b29sa2l0IGNvbW1hbmRzIGdldCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggcm9sZXMgdG9cbiAgICAvLyBhc3N1bWUgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHkgKGFuZCB1bHRpbWF0ZWx5IGZyb20gdGhlIENESyBmcmFtZXdvcmspLiBSZWZhY3RvclxuICAgIC8vIGlzIGRpZmZlcmVudCBiZWNhdXNlIGl0IGlzIG5vdCB0aGUgYXBwbGljYXRpb24vZnJhbWV3b3JrIHRoYXQgZGljdGF0ZXMgd2hhdCB0aGVcbiAgICAvLyB0b29sa2l0IHNob3VsZCBkbywgYnV0IGl0IGlzIHRoZSB0b29sa2l0IGl0c2VsZiB0aGF0IGhhcyB0byBmaWd1cmUgaXQgb3V0LlxuICAgIC8vXG4gICAgLy8gTmV2ZXJ0aGVsZXNzLCB0aGUgY2xvdWQgYXNzZW1ibHkgaXMgdGhlIG1vc3QgcmVsaWFibGUgc291cmNlIGZvciB0aGlzIGtpbmQgb2ZcbiAgICAvLyBpbmZvcm1hdGlvbi4gRm9yIHRoZSBkZXBsb3ltZW50IHJvbGUgQVJOLCBpbiBwYXJ0aWN1bGFyLCB3aGF0IHdlIGRvIGhlcmVcbiAgICAvLyBpcyBsb29rIGF0IGFsbCB0aGUgc3RhY2tzIGZvciBhIGdpdmVuIGVudmlyb25tZW50IGluIHRoZSBjbG91ZCBhc3NlbWJseSBhbmRcbiAgICAvLyBleHRyYWN0IHRoZSBkZXBsb3ltZW50IHJvbGUgQVJOIHRoYXQgaXMgY29tbW9uIHRvIGFsbCBvZiB0aGVtLiBJZiBubyByb2xlIGlzXG4gICAgLy8gZm91bmQsIHdlIGdvIGFoZWFkIHdpdGhvdXQgYXNzdW1pbmcgYSByb2xlLiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHJvbGUsXG4gICAgLy8gd2UgY29uc2lkZXIgdGhhdCBhbiBpbnZhcmlhbnQgd2FzIHZpb2xhdGVkLCBhbmQgdGhyb3cgYW4gZXJyb3IuXG5cbiAgICBjb25zdCBlbnYgPSB0aGlzLmVudmlyb25tZW50O1xuICAgIGNvbnN0IHJvbGVBcm5zID0gbmV3IFNldChcbiAgICAgIHRoaXMubG9jYWxTdGFja3NcbiAgICAgICAgLmZpbHRlcigocykgPT4gcy5lbnZpcm9ubWVudC5hY2NvdW50ID09PSBlbnYuYWNjb3VudCAmJiBzLmVudmlyb25tZW50LnJlZ2lvbiA9PT0gZW52LnJlZ2lvbilcbiAgICAgICAgLm1hcCgocykgPT4gcy5hc3N1bWVSb2xlQXJuKSxcbiAgICApO1xuXG4gICAgaWYgKHJvbGVBcm5zLnNpemUgPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHJvbGVBcm5zLnNpemUgIT09IDEpIHtcbiAgICAgIC8vIFVubGlrZWx5IHRvIGhhcHBlbi4gQnV0IGlmIGl0IGRvZXMsIHdlIGNhbid0IHByb2NlZWRcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdNdWx0aXBsZURlcGxveW1lbnRSb2xlcycsXG4gICAgICAgIGBNdWx0aXBsZSBzdGFja3MgaW4gZW52aXJvbm1lbnQgYXdzOi8vJHtlbnYuYWNjb3VudH0vJHtlbnYucmVnaW9ufSBoYXZlIGRpZmZlcmVudCBkZXBsb3ltZW50IHJvbGUgQVJOcy4gQ2Fubm90IHByb2NlZWQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYXJuID0gQXJyYXkuZnJvbShyb2xlQXJucylbMF07XG4gICAgaWYgKGFybiAhPSBudWxsKSB7XG4gICAgICBjb25zdCByZXNvbHZlZEVudiA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChlbnYpO1xuICAgICAgY29uc3QgcmVnaW9uID0gcmVzb2x2ZWRFbnYucmVnaW9uO1xuICAgICAgcmV0dXJuIChhd2FpdCByZXBsYWNlQXdzUGxhY2Vob2xkZXJzKHsgcmVnaW9uLCBhc3N1bWVSb2xlQXJuOiBhcm4gfSwgbmV3IERlZmF1bHRBd3NDbGllbnQoKSkpLmFzc3VtZVJvbGVBcm47XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgY291bGRuJ3QgZmluZCBhIHJvbGUgQVJOLCB3ZSBjYW4gcHJvY2VlZCB3aXRob3V0IGFzc3VtaW5nIGEgcm9sZS5cbiAgICAvLyBNYXliZSB0aGUgZGVmYXVsdCBjcmVkZW50aWFscyBoYXZlIHBlcm1pc3Npb25zIHRvIGRvIHdoYXQgd2UgbmVlZC5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGFuIGF1dG9tYXRpYyBsaXN0IG9mIG92ZXJyaWRlcyB0aGF0IGNhbiBiZSBkZWR1Y2VkIGZyb20gdGhlIHN0cnVjdHVyZSBvZiB0aGUgb3Bwb3NpdGUgcmVzb3VyY2UgZ3JhcGguXG4gKiBTdXBwb3NlIHdlIGhhdmUgdGhlIGZvbGxvd2luZyByZXNvdXJjZSBncmFwaDpcbiAqXG4gKiAgICAgQSAtLT4gQlxuICogICAgIEMgLS0+IERcbiAqXG4gKiBzdWNoIHRoYXQgQiBhbmQgRCBhcmUgaWRlbnRpY2FsLCBidXQgQSBpcyBkaWZmZXJlbnQgZnJvbSBDLiBUaGVuIGRpZ2VzdChCKSA9IGRpZ2VzdChEKS4gSWYgYm90aCByZXNvdXJjZXMgYXJlIG1vdmVkLFxuICogd2UgaGF2ZSBhbiBhbWJpZ3VpdHkuIEJ1dCBpZiB3ZSByZXZlcnNlIHRoZSBhcnJvd3M6XG4gKlxuICogICAgIEEgPC0tIEJcbiAqICAgICBDIDwtLSBEXG4gKlxuICogdGhlbiBkaWdlc3QoQikg4omgIGRpZ2VzdChEKSwgYmVjYXVzZSB0aGV5IG5vdyBoYXZlIGRpZmZlcmVudCBkZXBlbmRlbmNpZXMuIElmIHdlIGNvbXB1dGUgdGhlIG1hcHBpbmdzIGZyb20gdGhpc1xuICogb3Bwb3NpdGUgZ3JhcGgsIHdlIGNhbiB1c2UgdGhlbSBhcyBhIHNldCBvZiBvdmVycmlkZXMgdG8gZGlzYW1iaWd1YXRlIHRoZSBvcmlnaW5hbCBtb3Zlcy5cbiAqXG4gKi9cbmZ1bmN0aW9uIHN0cnVjdHVyYWxPdmVycmlkZXMoZGVwbG95ZWRTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSwgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSk6IFJlc291cmNlTWFwcGluZ1tdIHtcbiAgY29uc3QgbW92ZXMgPSByZXNvdXJjZU1vdmVzKGRlcGxveWVkU3RhY2tzLCBsb2NhbFN0YWNrcywgJ29wcG9zaXRlJywgdHJ1ZSk7XG4gIGNvbnN0IFtub25BbWJpZ3VvdXNNb3Zlc10gPSBwYXJ0aXRpb25CeUFtYmlndWl0eShbXSwgbW92ZXMpO1xuICByZXR1cm4gcmVzb3VyY2VNYXBwaW5ncyhub25BbWJpZ3VvdXNNb3Zlcyk7XG59XG5cbmZ1bmN0aW9uIHJlc291cmNlTW92ZXMoXG4gIGJlZm9yZTogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBhZnRlcjogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBkaXJlY3Rpb246IEdyYXBoRGlyZWN0aW9uID0gJ2RpcmVjdCcsXG4gIGlnbm9yZU1vZGlmaWNhdGlvbnM6IGJvb2xlYW4gPSBmYWxzZSk6IFJlc291cmNlTW92ZVtdIHtcbiAgY29uc3QgZGlnZXN0c0JlZm9yZSA9IHJlc291cmNlRGlnZXN0cyhiZWZvcmUsIGRpcmVjdGlvbik7XG4gIGNvbnN0IGRpZ2VzdHNBZnRlciA9IHJlc291cmNlRGlnZXN0cyhhZnRlciwgZGlyZWN0aW9uKTtcblxuICBpZiAoIShpZ25vcmVNb2RpZmljYXRpb25zIHx8IGlzb21vcnBoaWMoZGlnZXN0c0JlZm9yZSwgZGlnZXN0c0FmdGVyKSkpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gWydBIHJlZmFjdG9yIG9wZXJhdGlvbiBjYW5ub3QgYWRkLCByZW1vdmUgb3IgdXBkYXRlIHJlc291cmNlcy4gT25seSByZXNvdXJjZSBtb3ZlcyBhbmQgcmVuYW1lcyBhcmUgYWxsb3dlZC4nXTtcblxuICAgIGNvbnN0IGxvY2F0aW9uc0ZvckRpZ2VzdHMgPSAoYTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPiwgYjogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPikgPT4ge1xuICAgICAgcmV0dXJuIEFycmF5LmZyb20oc2V0RGlmZihuZXcgU2V0KE9iamVjdC5rZXlzKGEpKSwgbmV3IFNldChPYmplY3Qua2V5cyhiKSkpKS5mbGF0TWFwKGsgPT4gYVtrXSEpO1xuICAgIH07XG5cbiAgICBjb25zdCBmb3JtYXRMaXN0ID0gKGxvY3M6IFJlc291cmNlTG9jYXRpb25bXSwgaWNvbjogc3RyaW5nKSA9PlxuICAgICAgbG9jcy5tYXAoeCA9PiBgICBbJHtpY29ufV0gJHt4LnRvUGF0aCgpfWApLnNvcnQoKS5qb2luKCdcXG4nKTtcblxuICAgIGNvbnN0IHN0YWNrTmFtZXMgPSAoc3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW10pID0+XG4gICAgICBzdGFja3MubGVuZ3RoID09PSAwXG4gICAgICAgID8gJ05PTkUnXG4gICAgICAgIDogc3RhY2tzXG4gICAgICAgICAgLm1hcCgocykgPT4gcy5zdGFja05hbWUpXG4gICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgIC5qb2luKCcsICcpO1xuXG4gICAgY29uc3Qgb25seURlcGxveWVkTG9jcyA9IGxvY2F0aW9uc0ZvckRpZ2VzdHMoZGlnZXN0c0JlZm9yZSwgZGlnZXN0c0FmdGVyKTtcbiAgICBjb25zdCBvbmx5TG9jYWxMb2NzID0gbG9jYXRpb25zRm9yRGlnZXN0cyhkaWdlc3RzQWZ0ZXIsIGRpZ2VzdHNCZWZvcmUpO1xuXG4gICAgY29uc3Qgb25seURlcGxveWVkUGF0aHMgPSBuZXcgU2V0KG9ubHlEZXBsb3llZExvY3MubWFwKGwgPT4gbC50b1BhdGgoKSkpO1xuICAgIGNvbnN0IG9ubHlMb2NhbFBhdGhzID0gbmV3IFNldChvbmx5TG9jYWxMb2NzLm1hcChsID0+IGwudG9QYXRoKCkpKTtcbiAgICBjb25zdCBkaWZmZXJlbnRQYXRocyA9IG5ldyBTZXQoQXJyYXkuZnJvbShvbmx5RGVwbG95ZWRQYXRocykuZmlsdGVyKHAgPT4gb25seUxvY2FsUGF0aHMuaGFzKHApKSk7XG5cbiAgICBjb25zdCBvbmx5RGVwbG95ZWQgPSBmb3JtYXRMaXN0KG9ubHlEZXBsb3llZExvY3MuZmlsdGVyKGwgPT4gIWRpZmZlcmVudFBhdGhzLmhhcyhsLnRvUGF0aCgpKSksICctJyk7XG4gICAgY29uc3Qgb25seUxvY2FsID0gZm9ybWF0TGlzdChvbmx5TG9jYWxMb2NzLmZpbHRlcihsID0+ICFkaWZmZXJlbnRQYXRocy5oYXMobC50b1BhdGgoKSkpLCAnKycpO1xuICAgIGNvbnN0IGRpZmZlcmVudCA9IGZvcm1hdExpc3QoWy4uLm9ubHlEZXBsb3llZExvY3MsIC4uLm9ubHlMb2NhbExvY3NdLmZpbHRlcihsID0+IGRpZmZlcmVudFBhdGhzLmhhcyhsLnRvUGF0aCgpKSksICd+Jyk7XG5cbiAgICBpZiAob25seURlcGxveWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIG1lc3NhZ2UucHVzaChgVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgYXJlIHByZXNlbnQgb25seSBpbiB0aGUgQVdTIGVudmlyb25tZW50OlxcbiR7b25seURlcGxveWVkfWApO1xuICAgIH1cblxuICAgIGlmIChvbmx5TG9jYWwubGVuZ3RoID4gMCkge1xuICAgICAgbWVzc2FnZS5wdXNoKGBcXG5UaGUgZm9sbG93aW5nIHJlc291cmNlcyBhcmUgcHJlc2VudCBvbmx5IGluIHlvdXIgQ0RLIGFwcGxpY2F0aW9uOlxcbiR7b25seUxvY2FsfWApO1xuICAgIH1cblxuICAgIGlmIChkaWZmZXJlbnQubGVuZ3RoID4gMCkge1xuICAgICAgbWVzc2FnZS5wdXNoKGBcXG5UaGUgZm9sbG93aW5nIHJlc291cmNlcyBhcmUgZGlmZmVyZW50IGluIHlvdXIgQ0RLIGFwcGxpY2F0aW9uIGFuZCB0aGUgQVdTIGVudmlyb25tZW50OlxcbiR7ZGlmZmVyZW50fWApO1xuICAgIH1cblxuICAgIG1lc3NhZ2UucHVzaCgnJyk7XG4gICAgbWVzc2FnZS5wdXNoKCdUaGUgZm9sbG93aW5nIHN0YWNrcyB3ZXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb246Jyk7XG4gICAgbWVzc2FnZS5wdXNoKCBgICAtIERlcGxveWVkOiAke3N0YWNrTmFtZXMoYmVmb3JlKX1gKTtcbiAgICBtZXNzYWdlLnB1c2goIGAgIC0gTG9jYWw6ICR7c3RhY2tOYW1lcyhhZnRlcil9YCk7XG4gICAgbWVzc2FnZS5wdXNoKCcnKTtcbiAgICBtZXNzYWdlLnB1c2goJ0hpbnQ6IGJ5IGRlZmF1bHQsIG9ubHkgZGVwbG95ZWQgc3RhY2tzIHRoYXQgaGF2ZSB0aGUgc2FtZSBuYW1lIGFzIGEgbG9jYWwgc3RhY2sgYXJlIGluY2x1ZGVkLicpO1xuICAgIG1lc3NhZ2UucHVzaCgnSWYgeW91IHdhbnQgdG8gaW5jbHVkZSBhZGRpdGlvbmFsIGRlcGxveWVkIHN0YWNrcyBmb3IgY29tcGFyaXNvbiwgcmUtcnVuIHRoZSBjb21tYW5kIHdpdGggdGhlIG9wdGlvbiBcXCctLWFkZGl0aW9uYWwtc3RhY2stbmFtZT08U1RBQ0s+XFwnIGZvciBlYWNoIHN0YWNrLicpO1xuXG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignUmVmYWN0b3JSZXNvdXJjZU1pc21hdGNoJywgbWVzc2FnZS5qb2luKCdcXG4nKSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZW1vdmVVbm1vdmVkUmVzb3VyY2VzKHppcChkaWdlc3RzQmVmb3JlLCBkaWdlc3RzQWZ0ZXIpKSk7XG59XG5cbi8qKlxuICogV2hldGhlciB0d28gc2V0cyBvZiByZXNvdXJjZXMgaGF2ZSB0aGUgc2FtZSBlbGVtZW50cyAodW5pcXVlbHkgaWRlbnRpZmllZCBieSB0aGUgZGlnZXN0KSwgYW5kXG4gKiBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHNhbWUgbnVtYmVyIG9mIGxvY2F0aW9ucy4gVGhlIGxvY2F0aW9ucyB0aGVtc2VsdmVzIG1heSBiZSBkaWZmZXJlbnQuXG4gKi9cbmZ1bmN0aW9uIGlzb21vcnBoaWMoYTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPiwgYjogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPik6IGJvb2xlYW4ge1xuICBjb25zdCBzYW1lS2V5cyA9IGVxdWFsU2V0cyhuZXcgU2V0KE9iamVjdC5rZXlzKGEpKSwgbmV3IFNldChPYmplY3Qua2V5cyhiKSkpO1xuICByZXR1cm4gc2FtZUtleXMgJiYgT2JqZWN0LmVudHJpZXMoYSkuZXZlcnkoKFtkaWdlc3QsIGxvY2F0aW9uc10pID0+IGxvY2F0aW9ucy5sZW5ndGggPT09IGJbZGlnZXN0XS5sZW5ndGgpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVVbm1vdmVkUmVzb3VyY2VzKG1vdmVzOiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZU1vdmU+KTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNb3ZlPiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNb3ZlPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtoYXNoLCBbYmVmb3JlLCBhZnRlcl1dIG9mIE9iamVjdC5lbnRyaWVzKG1vdmVzKSkge1xuICAgIGNvbnN0IGNvbW1vbiA9IGJlZm9yZS5maWx0ZXIoKGIpID0+IGFmdGVyLnNvbWUoKGEpID0+IGEuZXF1YWxUbyhiKSkpO1xuICAgIHJlc3VsdFtoYXNoXSA9IFtcbiAgICAgIGJlZm9yZS5maWx0ZXIoKGIpID0+ICFjb21tb24uc29tZSgoYykgPT4gYi5lcXVhbFRvKGMpKSksXG4gICAgICBhZnRlci5maWx0ZXIoKGEpID0+ICFjb21tb24uc29tZSgoYykgPT4gYS5lcXVhbFRvKGMpKSksXG4gICAgXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRm9yIGVhY2ggaGFzaCwgaWRlbnRpZnlpbmcgYSBzaW5nbGUgcmVzb3VyY2UsIHppcCB0aGUgdHdvIGxpc3RzIG9mIGxvY2F0aW9ucyxcbiAqIHByb2R1Y2luZyBhIHJlc291cmNlIG1vdmVcbiAqL1xuZnVuY3Rpb24gemlwKFxuICBtMTogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VMb2NhdGlvbltdPixcbiAgbTI6IFJlY29yZDxzdHJpbmcsIFJlc291cmNlTG9jYXRpb25bXT4sXG4pOiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZU1vdmU+IHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZU1vdmU+ID0ge307XG5cbiAgZm9yIChjb25zdCBbaGFzaCwgbG9jYXRpb25zXSBvZiBPYmplY3QuZW50cmllcyhtMSkpIHtcbiAgICBpZiAoaGFzaCBpbiBtMikge1xuICAgICAgcmVzdWx0W2hhc2hdID0gW2xvY2F0aW9ucywgbTJbaGFzaF1dO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbaGFzaF0gPSBbbG9jYXRpb25zLCBbXV07XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBbaGFzaCwgbG9jYXRpb25zXSBvZiBPYmplY3QuZW50cmllcyhtMikpIHtcbiAgICBpZiAoIShoYXNoIGluIG0xKSkge1xuICAgICAgcmVzdWx0W2hhc2hdID0gW1tdLCBsb2NhdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgYSBsaXN0IG9mIHBhaXJzIFtkaWdlc3QsIGxvY2F0aW9uXSBmb3IgZWFjaCByZXNvdXJjZSBpbiB0aGUgc3RhY2suXG4gKi9cbmZ1bmN0aW9uIHJlc291cmNlRGlnZXN0cyhzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSwgZGlyZWN0aW9uOiBHcmFwaERpcmVjdGlvbik6IFJlY29yZDxzdHJpbmcsIFJlc291cmNlTG9jYXRpb25bXT4ge1xuICAvLyBpbmRleCBzdGFja3MgYnkgbmFtZVxuICBjb25zdCBzdGFja3NCeU5hbWUgPSBuZXcgTWFwPHN0cmluZywgQ2xvdWRGb3JtYXRpb25TdGFjaz4oKTtcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3MpIHtcbiAgICBzdGFja3NCeU5hbWUuc2V0KHN0YWNrLnN0YWNrTmFtZSwgc3RhY2spO1xuICB9XG5cbiAgY29uc3QgZGlnZXN0cyA9IGNvbXB1dGVSZXNvdXJjZURpZ2VzdHMoc3RhY2tzLCBkaXJlY3Rpb24pO1xuXG4gIHJldHVybiBncm91cEJ5S2V5KFxuICAgIE9iamVjdC5lbnRyaWVzKGRpZ2VzdHMpLm1hcCgoW2xvYywgZGlnZXN0XSkgPT4ge1xuICAgICAgY29uc3QgW3N0YWNrTmFtZSwgbG9naWNhbElkXSA9IGxvYy5zcGxpdCgnLicpO1xuICAgICAgY29uc3QgbG9jYXRpb246IFJlc291cmNlTG9jYXRpb24gPSBuZXcgUmVzb3VyY2VMb2NhdGlvbihzdGFja3NCeU5hbWUuZ2V0KHN0YWNrTmFtZSkhLCBsb2dpY2FsSWQpO1xuICAgICAgcmV0dXJuIFtkaWdlc3QsIGxvY2F0aW9uXTtcbiAgICB9KSxcbiAgKTtcblxuICBmdW5jdGlvbiBncm91cEJ5S2V5PEE+KGVudHJpZXM6IFtzdHJpbmcsIEFdW10pOiBSZWNvcmQ8c3RyaW5nLCBBW10+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIEFbXT4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICAgIGlmIChrZXkgaW4gcmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBbdmFsdWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNBbWJpZ3VvdXNNb3ZlKG1vdmU6IFJlc291cmNlTW92ZSk6IGJvb2xlYW4ge1xuICBjb25zdCBbcHJlLCBwb3N0XSA9IG1vdmU7XG5cbiAgLy8gQSBtb3ZlIGlzIGNvbnNpZGVyZWQgYW1iaWd1b3VzIGlmIHR3byBjb25kaXRpb25zIGFyZSBtZXQ6XG4gIC8vICAxLiBCb3RoIHNpZGVzIGhhdmUgYXQgbGVhc3Qgb25lIGVsZW1lbnQgKG90aGVyd2lzZSwgaXQncyBqdXN0IGFkZGl0aW9uIG9yIGRlbGV0aW9uKVxuICAvLyAgMi4gQXQgbGVhc3Qgb25lIHNpZGUgaGFzIG1vcmUgdGhhbiBvbmUgZWxlbWVudFxuICByZXR1cm4gcHJlLmxlbmd0aCA+IDAgJiYgcG9zdC5sZW5ndGggPiAwICYmIChwcmUubGVuZ3RoID4gMSB8fCBwb3N0Lmxlbmd0aCA+IDEpO1xufVxuXG5mdW5jdGlvbiByZXNvdXJjZU1hcHBpbmdzKG1vdmVtZW50czogUmVzb3VyY2VNb3ZlW10pOiBSZXNvdXJjZU1hcHBpbmdbXSB7XG4gIHJldHVybiBtb3ZlbWVudHNcbiAgICAuZmlsdGVyKChbcHJlLCBwb3N0XSkgPT4gcHJlLmxlbmd0aCA9PT0gMSAmJiBwb3N0Lmxlbmd0aCA9PT0gMSAmJiAhcHJlWzBdLmVxdWFsVG8ocG9zdFswXSkpXG4gICAgLm1hcCgoW3ByZSwgcG9zdF0pID0+IG5ldyBSZXNvdXJjZU1hcHBpbmcocHJlWzBdLCBwb3N0WzBdKSk7XG59XG5cbi8qKlxuICogUGFydGl0aW9ucyBhIGxpc3Qgb2YgbW92ZXMgaW50byBub24tYW1iaWd1b3VzIGFuZCBhbWJpZ3VvdXMgbW92ZXMuXG4gKiBAcGFyYW0gb3ZlcnJpZGVzIC0gVGhlIGxpc3Qgb2Ygb3ZlcnJpZGVzIHRvIGRpc2FtYmlndWF0ZSBtb3Zlc1xuICogQHBhcmFtIG1vdmVzIC0gYSBwYWlyIG9mIGxpc3RzIG9mIG1vdmVzLiBGaXJzdDogbm9uLWFtYmlndW91cywgc2Vjb25kOiBhbWJpZ3VvdXNcbiAqL1xuZnVuY3Rpb24gcGFydGl0aW9uQnlBbWJpZ3VpdHkob3ZlcnJpZGVzOiBSZXNvdXJjZU1hcHBpbmdbXSwgbW92ZXM6IFJlc291cmNlTW92ZVtdKTogW1Jlc291cmNlTW92ZVtdLCBSZXNvdXJjZU1vdmVbXV0ge1xuICBjb25zdCBhbWJpZ3VvdXM6IFJlc291cmNlTW92ZVtdID0gW107XG4gIGNvbnN0IG5vbkFtYmlndW91czogUmVzb3VyY2VNb3ZlW10gPSBbXTtcblxuICBmb3IgKGxldCBtb3ZlIG9mIG1vdmVzKSB7XG4gICAgaWYgKCFpc0FtYmlndW91c01vdmUobW92ZSkpIHtcbiAgICAgIG5vbkFtYmlndW91cy5wdXNoKG1vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIG92ZXJyaWRlcykge1xuICAgICAgICBjb25zdCByZXNvbHZlZE1vdmUgPSByZXNvbHZlKG92ZXJyaWRlLCBtb3ZlKTtcbiAgICAgICAgaWYgKHJlc29sdmVkTW92ZSAhPSBudWxsKSB7XG4gICAgICAgICAgbm9uQW1iaWd1b3VzLnB1c2gocmVzb2x2ZWRNb3ZlKTtcbiAgICAgICAgICBtb3ZlID0gcmVtb3ZlKG92ZXJyaWRlLCBtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gT25lIGxhc3QgY2hhbmNlIHRvIGJlIG5vbi1hbWJpZ3VvdXNcbiAgICAgIGlmICghaXNBbWJpZ3VvdXNNb3ZlKG1vdmUpKSB7XG4gICAgICAgIG5vbkFtYmlndW91cy5wdXNoKG1vdmUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW1iaWd1b3VzLnB1c2gobW92ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVzb2x2ZShvdmVycmlkZTogUmVzb3VyY2VNYXBwaW5nLCBtb3ZlOiBSZXNvdXJjZU1vdmUpOiBSZXNvdXJjZU1vdmUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IFtwcmUsIHBvc3RdID0gbW92ZTtcbiAgICBjb25zdCBzb3VyY2UgPSBwcmUuZmluZCgobG9jKSA9PiBsb2MuZXF1YWxUbyhvdmVycmlkZS5zb3VyY2UpKTtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHBvc3QuZmluZCgobG9jKSA9PiBsb2MuZXF1YWxUbyhvdmVycmlkZS5kZXN0aW5hdGlvbikpO1xuICAgIHJldHVybiAoc291cmNlICYmIGRlc3RpbmF0aW9uKSA/IFtbc291cmNlXSwgW2Rlc3RpbmF0aW9uXV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmUob3ZlcnJpZGU6IFJlc291cmNlTWFwcGluZywgbW92ZTogUmVzb3VyY2VNb3ZlKTogUmVzb3VyY2VNb3ZlIHtcbiAgICBjb25zdCBbcHJlLCBwb3N0XSA9IG1vdmU7XG4gICAgcmV0dXJuIFtcbiAgICAgIHByZS5maWx0ZXIobG9jID0+ICFsb2MuZXF1YWxUbyhvdmVycmlkZS5zb3VyY2UpKSxcbiAgICAgIHBvc3QuZmlsdGVyKGxvYyA9PiAhbG9jLmVxdWFsVG8ob3ZlcnJpZGUuZGVzdGluYXRpb24pKSxcbiAgICBdO1xuICB9XG5cbiAgcmV0dXJuIFtub25BbWJpZ3VvdXMsIGFtYmlndW91c107XG59XG5cbi8qKlxuICogUmVwbGFjZSB0aGUge0FDQ09VTlR9IGFuZCB7UkVHSU9OfSBwbGFjZWhvbGRlcnMgaW4gYWxsIHN0cmluZ3MgZm91bmQgaW4gYSBjb21wbGV4IG9iamVjdC5cbiAqXG4gKiBEdXBsaWNhdGVkIGJldHdlZW4gY2RrLWFzc2V0cyBhbmQgYXdzLWNkayBDTEkgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgZ29vZCBzaW5nbGUgcGxhY2UgdG8gcHV0IGl0XG4gKiAodGhleSdyZSBub21pbmFsbHkgaW5kZXBlbmRlbnQgdG9vbHMpLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwbGFjZUF3c1BsYWNlaG9sZGVyczxBIGV4dGVuZHMgeyByZWdpb24/OiBzdHJpbmcgfT4oXG4gIG9iamVjdDogQSxcbiAgYXdzOiBJQXdzLFxuKTogUHJvbWlzZTxBPiB7XG4gIGxldCBwYXJ0aXRpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcCA9IGF3YWl0IGF3cy5kaXNjb3ZlclBhcnRpdGlvbigpO1xuICAgIHBhcnRpdGlvbiA9ICgpID0+IFByb21pc2UucmVzb2x2ZShwKTtcbiAgICByZXR1cm4gcDtcbiAgfTtcblxuICBsZXQgYWNjb3VudCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBhID0gYXdhaXQgYXdzLmRpc2NvdmVyQ3VycmVudEFjY291bnQoKTtcbiAgICBhY2NvdW50ID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGEpO1xuICAgIHJldHVybiBhO1xuICB9O1xuXG4gIHJldHVybiBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5yZXBsYWNlQXN5bmMob2JqZWN0LCB7XG4gICAgYXN5bmMgcmVnaW9uKCkge1xuICAgICAgcmV0dXJuIG9iamVjdC5yZWdpb24gPz8gYXdzLmRpc2NvdmVyRGVmYXVsdFJlZ2lvbigpO1xuICAgIH0sXG4gICAgYXN5bmMgYWNjb3VudElkKCkge1xuICAgICAgcmV0dXJuIChhd2FpdCBhY2NvdW50KCkpLmFjY291bnRJZDtcbiAgICB9LFxuICAgIGFzeW5jIHBhcnRpdGlvbigpIHtcbiAgICAgIHJldHVybiBwYXJ0aXRpb24oKTtcbiAgICB9LFxuICB9KTtcbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.computeResourceDigests = computeResourceDigests;\nexports.hashObject = hashObject;\nconst crypto = require(\"node:crypto\");\nconst graph_1 = require(\"./graph\");\n/**\n * Computes the digest for each resource in the template.\n *\n * Conceptually, the digest is computed as:\n *\n * digest(resource) = hash(type + properties + dependencies.map(d))\n *\n * where `hash` is a cryptographic hash function. In other words, the digest of a\n * resource is computed from its type, its own properties (that is, excluding\n * properties that refer to other resources), and the digests of each of its\n * dependencies.\n *\n * The digest of a resource, defined recursively this way, remains stable even if\n * one or more of its dependencies gets renamed. Since the resources in a\n * CloudFormation template form a directed acyclic graph, this function is\n * well-defined.\n */\nfunction computeResourceDigests(stacks, direction = 'direct') {\n const exports = Object.fromEntries(stacks.flatMap((s) => Object.values(s.template.Outputs ?? {})\n .filter((o) => o.Export != null && typeof o.Export.Name === 'string')\n .map((o) => [o.Export.Name, { stackName: s.stackName, value: o.Value }])));\n const resources = Object.fromEntries(stacks.flatMap((s) => {\n return Object.entries(s.template.Resources ?? {})\n .filter(([_, res]) => res.Type !== 'AWS::CDK::Metadata')\n .map(([id, res]) => [`${s.stackName}.${id}`, res]);\n }));\n const graph = direction == 'direct'\n ? graph_1.ResourceGraph.fromStacks(stacks)\n : graph_1.ResourceGraph.fromStacks(stacks).opposite();\n return computeDigestsInTopologicalOrder(graph, resources, exports);\n}\nfunction computeDigestsInTopologicalOrder(graph, resources, exports) {\n const nodes = graph.sortedNodes.filter(n => resources[n] != null);\n const result = {};\n for (const id of nodes) {\n const resource = resources[id];\n const depDigests = Array.from(graph.outNeighbors(id)).map((d) => result[d]);\n const propertiesHash = hashObject(stripReferences(stripConstructPath(resource), exports));\n const toHash = resource.Type + propertiesHash + depDigests.join('');\n result[id] = crypto.createHash('sha256').update(toHash).digest('hex');\n }\n return result;\n}\nfunction hashObject(obj) {\n const hash = crypto.createHash('sha256');\n function addToHash(value) {\n if (value == null) {\n addToHash('null');\n }\n else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n value.forEach(addToHash);\n }\n else {\n Object.keys(value)\n .sort()\n .forEach((key) => {\n hash.update(key);\n addToHash(value[key]);\n });\n }\n }\n else {\n hash.update(typeof value + value.toString());\n }\n }\n addToHash(obj);\n return hash.digest('hex');\n}\n/**\n * Removes sub-properties containing Ref or Fn::GetAtt to avoid hashing\n * references themselves but keeps the property structure.\n */\nfunction stripReferences(value, exports) {\n if (!value || typeof value !== 'object')\n return value;\n if (Array.isArray(value)) {\n return value.map(x => stripReferences(x, exports));\n }\n if ('Ref' in value) {\n return { __cloud_ref__: 'Ref' };\n }\n if ('Fn::GetAtt' in value) {\n return { __cloud_ref__: 'Fn::GetAtt' };\n }\n if ('DependsOn' in value) {\n return { __cloud_ref__: 'DependsOn' };\n }\n if ('Fn::ImportValue' in value) {\n const exp = exports[value['Fn::ImportValue']];\n if (exp != null) {\n const v = exp.value;\n if (v != null && typeof v === 'object') {\n // Treat Fn::ImportValue as if it were a reference with the same stack\n if ('Ref' in v) {\n return { __cloud_ref__: 'Ref' };\n }\n else if ('Fn::GetAtt' in v) {\n return { __cloud_ref__: 'Fn::GetAtt' };\n }\n }\n else {\n // If the export value is a primitive, we can just use it directly\n return v;\n }\n }\n }\n const result = {};\n for (const [k, v] of Object.entries(value)) {\n result[k] = stripReferences(v, exports);\n }\n return result;\n}\nfunction stripConstructPath(resource) {\n if (resource?.Metadata?.['aws:cdk:path'] == null) {\n return resource;\n }\n const copy = JSON.parse(JSON.stringify(resource));\n delete copy.Metadata['aws:cdk:path'];\n return copy;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlnZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeUJBLHdEQXlCQztBQW1CRCxnQ0F3QkM7QUE3RkQsc0NBQXNDO0FBRXRDLG1DQUF3QztBQU14Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLE1BQTZCLEVBQUUsWUFBNEIsUUFBUTtJQUN4RyxNQUFNLE9BQU8sR0FBdUQsTUFBTSxDQUFDLFdBQVcsQ0FDcEYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ3BDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7U0FDcEUsR0FBRyxDQUNGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBZ0QsQ0FDN0csQ0FDSixDQUNGLENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDbkIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQzthQUM5QyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQzth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T0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDbEMsQ0FBQztxQkFBTSxJQUFJLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsQ0FBQztnQkFDekMsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixrRUFBa0U7Z0JBQ2xFLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO0lBQ3ZCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLFFBQWE7SUFDdkMsSUFBSSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDakQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvblJlc291cmNlLCBDbG91ZEZvcm1hdGlvblN0YWNrIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZUdyYXBoIH0gZnJvbSAnLi9ncmFwaCc7XG5cbmV4cG9ydCB0eXBlIEdyYXBoRGlyZWN0aW9uID1cbiAgJ2RpcmVjdCcgLy8gRWRnZSBBIC0+IEIgbWVhbiB0aGF0IEEgZGVwZW5kcyBvbiBCXG4gIHwgJ29wcG9zaXRlJzsgLy8gRWRnZSBBIC0+IEIgbWVhbiB0aGF0IEIgZGVwZW5kcyBvbiBBXG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGRpZ2VzdCBmb3IgZWFjaCByZXNvdXJjZSBpbiB0aGUgdGVtcGxhdGUuXG4gKlxuICogQ29uY2VwdHVhbGx5LCB0aGUgZGlnZXN0IGlzIGNvbXB1dGVkIGFzOlxuICpcbiAqICAgICBkaWdlc3QocmVzb3VyY2UpID0gaGFzaCh0eXBlICsgcHJvcGVydGllcyArIGRlcGVuZGVuY2llcy5tYXAoZCkpXG4gKlxuICogd2hlcmUgYGhhc2hgIGlzIGEgY3J5cHRvZ3JhcGhpYyBoYXNoIGZ1bmN0aW9uLiBJbiBvdGhlciB3b3JkcywgdGhlIGRpZ2VzdCBvZiBhXG4gKiByZXNvdXJjZSBpcyBjb21wdXRlZCBmcm9tIGl0cyB0eXBlLCBpdHMgb3duIHByb3BlcnRpZXMgKHRoYXQgaXMsIGV4Y2x1ZGluZ1xuICogcHJvcGVydGllcyB0aGF0IHJlZmVyIHRvIG90aGVyIHJlc291cmNlcyksIGFuZCB0aGUgZGlnZXN0cyBvZiBlYWNoIG9mIGl0c1xuICogZGVwZW5kZW5jaWVzLlxuICpcbiAqIFRoZSBkaWdlc3Qgb2YgYSByZXNvdXJjZSwgZGVmaW5lZCByZWN1cnNpdmVseSB0aGlzIHdheSwgcmVtYWlucyBzdGFibGUgZXZlbiBpZlxuICogb25lIG9yIG1vcmUgb2YgaXRzIGRlcGVuZGVuY2llcyBnZXRzIHJlbmFtZWQuIFNpbmNlIHRoZSByZXNvdXJjZXMgaW4gYVxuICogQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgZm9ybSBhIGRpcmVjdGVkIGFjeWNsaWMgZ3JhcGgsIHRoaXMgZnVuY3Rpb24gaXNcbiAqIHdlbGwtZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVSZXNvdXJjZURpZ2VzdHMoc3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW10sIGRpcmVjdGlvbjogR3JhcGhEaXJlY3Rpb24gPSAnZGlyZWN0Jyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCBleHBvcnRzOiB7IFtwOiBzdHJpbmddOiB7IHN0YWNrTmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBzdGFja3MuZmxhdE1hcCgocykgPT5cbiAgICAgIE9iamVjdC52YWx1ZXMocy50ZW1wbGF0ZS5PdXRwdXRzID8/IHt9KVxuICAgICAgICAuZmlsdGVyKChvKSA9PiBvLkV4cG9ydCAhPSBudWxsICYmIHR5cGVvZiBvLkV4cG9ydC5OYW1lID09PSAnc3RyaW5nJylcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAobykgPT5cbiAgICAgICAgICAgIFtvLkV4cG9ydC5OYW1lLCB7IHN0YWNrTmFtZTogcy5zdGFja05hbWUsIHZhbHVlOiBvLlZhbHVlIH1dIGFzIFtzdHJpbmcsIHsgc3RhY2tOYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfV0sXG4gICAgICAgICksXG4gICAgKSxcbiAgKTtcblxuICBjb25zdCByZXNvdXJjZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgc3RhY2tzLmZsYXRNYXAoKHMpID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhzLnRlbXBsYXRlLlJlc291cmNlcyA/PyB7fSlcbiAgICAgICAgLmZpbHRlcigoW18sIHJlc10pID0+IHJlcy5UeXBlICE9PSAnQVdTOjpDREs6Ok1ldGFkYXRhJylcbiAgICAgICAgLm1hcCgoW2lkLCByZXNdKSA9PiBbYCR7cy5zdGFja05hbWV9LiR7aWR9YCwgcmVzXSBhcyBbc3RyaW5nLCBDbG91ZEZvcm1hdGlvblJlc291cmNlXSk7XG4gICAgfSksXG4gICk7XG5cbiAgY29uc3QgZ3JhcGggPSBkaXJlY3Rpb24gPT0gJ2RpcmVjdCdcbiAgICA/IFJlc291cmNlR3JhcGguZnJvbVN0YWNrcyhzdGFja3MpXG4gICAgOiBSZXNvdXJjZUdyYXBoLmZyb21TdGFja3Moc3RhY2tzKS5vcHBvc2l0ZSgpO1xuXG4gIHJldHVybiBjb21wdXRlRGlnZXN0c0luVG9wb2xvZ2ljYWxPcmRlcihncmFwaCwgcmVzb3VyY2VzLCBleHBvcnRzKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZURpZ2VzdHNJblRvcG9sb2dpY2FsT3JkZXIoXG4gIGdyYXBoOiBSZXNvdXJjZUdyYXBoLFxuICByZXNvdXJjZXM6IFJlY29yZDxzdHJpbmcsIENsb3VkRm9ybWF0aW9uUmVzb3VyY2U+LFxuICBleHBvcnRzOiBSZWNvcmQ8c3RyaW5nLCB7IHN0YWNrTmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH0+KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IG5vZGVzID0gZ3JhcGguc29ydGVkTm9kZXMuZmlsdGVyKG4gPT4gcmVzb3VyY2VzW25dICE9IG51bGwpO1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgZm9yIChjb25zdCBpZCBvZiBub2Rlcykge1xuICAgIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VzW2lkXTtcbiAgICBjb25zdCBkZXBEaWdlc3RzID0gQXJyYXkuZnJvbShncmFwaC5vdXROZWlnaGJvcnMoaWQpKS5tYXAoKGQpID0+IHJlc3VsdFtkXSk7XG4gICAgY29uc3QgcHJvcGVydGllc0hhc2ggPSBoYXNoT2JqZWN0KHN0cmlwUmVmZXJlbmNlcyhzdHJpcENvbnN0cnVjdFBhdGgocmVzb3VyY2UpLCBleHBvcnRzKSk7XG4gICAgY29uc3QgdG9IYXNoID0gcmVzb3VyY2UuVHlwZSArIHByb3BlcnRpZXNIYXNoICsgZGVwRGlnZXN0cy5qb2luKCcnKTtcbiAgICByZXN1bHRbaWRdID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZSh0b0hhc2gpLmRpZ2VzdCgnaGV4Jyk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzaE9iamVjdChvYmo6IGFueSk6IHN0cmluZyB7XG4gIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG5cbiAgZnVuY3Rpb24gYWRkVG9IYXNoKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgYWRkVG9IYXNoKCdudWxsJyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhZGRUb0hhc2gpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmtleXModmFsdWUpXG4gICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgIC5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGhhc2gudXBkYXRlKGtleSk7XG4gICAgICAgICAgICBhZGRUb0hhc2godmFsdWVba2V5XSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhc2gudXBkYXRlKHR5cGVvZiB2YWx1ZSArIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFRvSGFzaChvYmopO1xuICByZXR1cm4gaGFzaC5kaWdlc3QoJ2hleCcpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgc3ViLXByb3BlcnRpZXMgY29udGFpbmluZyBSZWYgb3IgRm46OkdldEF0dCB0byBhdm9pZCBoYXNoaW5nXG4gKiByZWZlcmVuY2VzIHRoZW1zZWx2ZXMgYnV0IGtlZXBzIHRoZSBwcm9wZXJ0eSBzdHJ1Y3R1cmUuXG4gKi9cbmZ1bmN0aW9uIHN0cmlwUmVmZXJlbmNlcyh2YWx1ZTogYW55LCBleHBvcnRzOiB7IFtwOiBzdHJpbmddOiB7IHN0YWNrTmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfSk6IGFueSB7XG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIHZhbHVlO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHggPT4gc3RyaXBSZWZlcmVuY2VzKHgsIGV4cG9ydHMpKTtcbiAgfVxuICBpZiAoJ1JlZicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4geyBfX2Nsb3VkX3JlZl9fOiAnUmVmJyB9O1xuICB9XG4gIGlmICgnRm46OkdldEF0dCcgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4geyBfX2Nsb3VkX3JlZl9fOiAnRm46OkdldEF0dCcgfTtcbiAgfVxuICBpZiAoJ0RlcGVuZHNPbicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4geyBfX2Nsb3VkX3JlZl9fOiAnRGVwZW5kc09uJyB9O1xuICB9XG4gIGlmICgnRm46OkltcG9ydFZhbHVlJyBpbiB2YWx1ZSkge1xuICAgIGNvbnN0IGV4cCA9IGV4cG9ydHNbdmFsdWVbJ0ZuOjpJbXBvcnRWYWx1ZSddXTtcbiAgICBpZiAoZXhwICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHYgPSBleHAudmFsdWU7XG4gICAgICBpZiAodiAhPSBudWxsICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBUcmVhdCBGbjo6SW1wb3J0VmFsdWUgYXMgaWYgaXQgd2VyZSBhIHJlZmVyZW5jZSB3aXRoIHRoZSBzYW1lIHN0YWNrXG4gICAgICAgIGlmICgnUmVmJyBpbiB2KSB7XG4gICAgICAgICAgcmV0dXJuIHsgX19jbG91ZF9yZWZfXzogJ1JlZicgfTtcbiAgICAgICAgfSBlbHNlIGlmICgnRm46OkdldEF0dCcgaW4gdikge1xuICAgICAgICAgIHJldHVybiB7IF9fY2xvdWRfcmVmX186ICdGbjo6R2V0QXR0JyB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB0aGUgZXhwb3J0IHZhbHVlIGlzIGEgcHJpbWl0aXZlLCB3ZSBjYW4ganVzdCB1c2UgaXQgZGlyZWN0bHlcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgIHJlc3VsdFtrXSA9IHN0cmlwUmVmZXJlbmNlcyh2LCBleHBvcnRzKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBzdHJpcENvbnN0cnVjdFBhdGgocmVzb3VyY2U6IGFueSk6IGFueSB7XG4gIGlmIChyZXNvdXJjZT8uTWV0YWRhdGE/LlsnYXdzOmNkazpwYXRoJ10gPT0gbnVsbCkge1xuICAgIHJldHVybiByZXNvdXJjZTtcbiAgfVxuXG4gIGNvbnN0IGNvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlc291cmNlKSk7XG4gIGRlbGV0ZSBjb3B5Lk1ldGFkYXRhWydhd3M6Y2RrOnBhdGgnXTtcbiAgcmV0dXJuIGNvcHk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceGraph = void 0;\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\n/**\n * An immutable directed graph of resources from multiple CloudFormation stacks.\n */\nclass ResourceGraph {\n static fromStacks(stacks) {\n const exports = Object.fromEntries(stacks.flatMap((s) => Object.values(s.template.Outputs ?? {})\n .filter((o) => o.Export != null && typeof o.Export.Name === 'string')\n .map((o) => [o.Export.Name, { stackName: s.stackName, value: o.Value }])));\n const resources = Object.fromEntries(stacks.flatMap((s) => Object.entries(s.template.Resources ?? {}).map(([id, res]) => [`${s.stackName}.${id}`, res])));\n // 1. Build adjacency lists\n const edges = {};\n const reverseEdges = {};\n for (const id of Object.keys(resources)) {\n edges[id] = new Set();\n reverseEdges[id] = new Set();\n }\n // 2. Detect dependencies by searching for Ref/Fn::GetAtt\n const findDependencies = (stackName, value) => {\n if (!value || typeof value !== 'object')\n return [];\n if (Array.isArray(value)) {\n return value.flatMap((res) => findDependencies(stackName, res));\n }\n if ('Ref' in value) {\n return [`${stackName}.${value.Ref}`];\n }\n if ('Fn::GetAtt' in value) {\n const refTarget = Array.isArray(value['Fn::GetAtt'])\n ? value['Fn::GetAtt'][0]\n : value['Fn::GetAtt'].split('.')[0];\n return [`${stackName}.${refTarget}`];\n }\n if ('Fn::ImportValue' in value) {\n const exp = exports[value['Fn::ImportValue']];\n if (exp != null) {\n const v = exp.value;\n if (v != null && typeof v === 'object') {\n if ('Fn::GetAtt' in v) {\n const id = Array.isArray(v['Fn::GetAtt']) ? v['Fn::GetAtt'][0] : v['Fn::GetAtt'].split('.')[0];\n return [`${exp.stackName}.${id}`];\n }\n if ('Ref' in v) {\n return [`${exp.stackName}.${v.Ref}`];\n }\n }\n return [`${exp.stackName}.${v}`];\n }\n }\n const result = [];\n if ('DependsOn' in value) {\n if (Array.isArray(value.DependsOn)) {\n result.push(...value.DependsOn.map((r) => `${stackName}.${r}`));\n }\n else {\n result.push(`${stackName}.${value.DependsOn}`);\n }\n }\n result.push(...Object.values(value).flatMap((res) => findDependencies(stackName, res)));\n return result;\n };\n for (const [id, res] of Object.entries(resources)) {\n const stackName = id.split('.')[0];\n const deps = findDependencies(stackName, res || {});\n for (const dep of deps) {\n if (dep in resources && dep !== id) {\n edges[id].add(dep);\n reverseEdges[dep].add(id);\n }\n }\n }\n return new ResourceGraph(edges, reverseEdges);\n }\n edges = {};\n reverseEdges = {};\n constructor(edges, reverseEdges) {\n this.edges = edges;\n this.reverseEdges = reverseEdges;\n }\n /**\n * Returns the sorted nodes in topological order.\n */\n get sortedNodes() {\n const result = [];\n const outDegree = Object.keys(this.edges).reduce((acc, k) => {\n acc[k] = this.edges[k].size;\n return acc;\n }, {});\n const queue = Object.keys(outDegree).filter((k) => outDegree[k] === 0);\n while (queue.length > 0) {\n const node = queue.shift();\n result.push(node);\n for (const nxt of this.reverseEdges[node]) {\n outDegree[nxt]--;\n if (outDegree[nxt] === 0) {\n queue.push(nxt);\n }\n }\n }\n return result;\n }\n inNeighbors(node) {\n if (!(node in this.edges)) {\n throw new toolkit_error_1.ToolkitError('RefactorGraphNodeNotFound', `Node ${node} not found in the graph`);\n }\n return Array.from(this.reverseEdges[node] || []);\n }\n outNeighbors(node) {\n if (!(node in this.edges)) {\n throw new toolkit_error_1.ToolkitError('RefactorGraphNodeNotFound', `Node ${node} not found in the graph`);\n }\n return Array.from(this.edges[node] || []);\n }\n /**\n * Returns another graph with the same nodes, but with the edges inverted\n */\n opposite() {\n return new ResourceGraph(this.reverseEdges, this.edges);\n }\n}\nexports.ResourceGraph = ResourceGraph;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJncmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrREFBMkQ7QUFFM0Q7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDakIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFrRDtRQUN6RSxNQUFNLE9BQU8sR0FBdUQsTUFBTSxDQUFDLFdBQVcsQ0FDcEYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7YUFDcEUsR0FBRyxDQUNGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FNekQsQ0FDSixDQUNKLENBQ0YsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDNUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFxQyxDQUNqRixDQUNGLENBQ0YsQ0FBQztRQUVGLDJCQUEyQjtRQUMz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RUFBRSxDQUFDO2dCQUNqQixJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksNEJBQVksQ0FBQywyQkFBMkIsRUFBRSxRQUFRLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksNEJBQVksQ0FBQywyQkFBMkIsRUFBRSxRQUFRLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBakpELHNDQWlKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25SZXNvdXJjZSwgQ2xvdWRGb3JtYXRpb25TdGFjayB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBBbiBpbW11dGFibGUgZGlyZWN0ZWQgZ3JhcGggb2YgcmVzb3VyY2VzIGZyb20gbXVsdGlwbGUgQ2xvdWRGb3JtYXRpb24gc3RhY2tzLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VHcmFwaCB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbVN0YWNrcyhzdGFja3M6IE9taXQ8Q2xvdWRGb3JtYXRpb25TdGFjaywgJ2Vudmlyb25tZW50Jz5bXSk6IFJlc291cmNlR3JhcGgge1xuICAgIGNvbnN0IGV4cG9ydHM6IHsgW3A6IHN0cmluZ106IHsgc3RhY2tOYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfSB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgc3RhY2tzLmZsYXRNYXAoKHMpID0+XG4gICAgICAgIE9iamVjdC52YWx1ZXMocy50ZW1wbGF0ZS5PdXRwdXRzID8/IHt9KVxuICAgICAgICAgIC5maWx0ZXIoKG8pID0+IG8uRXhwb3J0ICE9IG51bGwgJiYgdHlwZW9mIG8uRXhwb3J0Lk5hbWUgPT09ICdzdHJpbmcnKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobykgPT5cbiAgICAgICAgICAgICAgW28uRXhwb3J0Lk5hbWUsIHsgc3RhY2tOYW1lOiBzLnN0YWNrTmFtZSwgdmFsdWU6IG8uVmFsdWUgfV0gYXMgW1xuICAgICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBzdGFja05hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBhbnk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVzb3VyY2VzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgc3RhY2tzLmZsYXRNYXAoKHMpID0+XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHMudGVtcGxhdGUuUmVzb3VyY2VzID8/IHt9KS5tYXAoXG4gICAgICAgICAgKFtpZCwgcmVzXSkgPT4gW2Ake3Muc3RhY2tOYW1lfS4ke2lkfWAsIHJlc10gYXMgW3N0cmluZywgQ2xvdWRGb3JtYXRpb25SZXNvdXJjZV0sXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG5cbiAgICAvLyAxLiBCdWlsZCBhZGphY2VuY3kgbGlzdHNcbiAgICBjb25zdCBlZGdlczogUmVjb3JkPHN0cmluZywgU2V0PHN0cmluZz4+ID0ge307XG4gICAgY29uc3QgcmV2ZXJzZUVkZ2VzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKHJlc291cmNlcykpIHtcbiAgICAgIGVkZ2VzW2lkXSA9IG5ldyBTZXQoKTtcbiAgICAgIHJldmVyc2VFZGdlc1tpZF0gPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgLy8gMi4gRGV0ZWN0IGRlcGVuZGVuY2llcyBieSBzZWFyY2hpbmcgZm9yIFJlZi9Gbjo6R2V0QXR0XG4gICAgY29uc3QgZmluZERlcGVuZGVuY2llcyA9IChzdGFja05hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHN0cmluZ1tdID0+IHtcbiAgICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIFtdO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5mbGF0TWFwKChyZXMpID0+IGZpbmREZXBlbmRlbmNpZXMoc3RhY2tOYW1lLCByZXMpKTtcbiAgICAgIH1cbiAgICAgIGlmICgnUmVmJyBpbiB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gW2Ake3N0YWNrTmFtZX0uJHt2YWx1ZS5SZWZ9YF07XG4gICAgICB9XG4gICAgICBpZiAoJ0ZuOjpHZXRBdHQnIGluIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHJlZlRhcmdldCA9IEFycmF5LmlzQXJyYXkodmFsdWVbJ0ZuOjpHZXRBdHQnXSlcbiAgICAgICAgICA/IHZhbHVlWydGbjo6R2V0QXR0J11bMF1cbiAgICAgICAgICA6IHZhbHVlWydGbjo6R2V0QXR0J10uc3BsaXQoJy4nKVswXTtcbiAgICAgICAgcmV0dXJuIFtgJHtzdGFja05hbWV9LiR7cmVmVGFyZ2V0fWBdO1xuICAgICAgfVxuICAgICAgaWYgKCdGbjo6SW1wb3J0VmFsdWUnIGluIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGV4cCA9IGV4cG9ydHNbdmFsdWVbJ0ZuOjpJbXBvcnRWYWx1ZSddXTtcbiAgICAgICAgaWYgKGV4cCAhPSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdiA9IGV4cC52YWx1ZTtcbiAgICAgICAgICBpZiAodiAhPSBudWxsICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaWYgKCdGbjo6R2V0QXR0JyBpbiB2KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkID0gQXJyYXkuaXNBcnJheSh2WydGbjo6R2V0QXR0J10pID8gdlsnRm46OkdldEF0dCddWzBdIDogdlsnRm46OkdldEF0dCddLnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgICAgIHJldHVybiBbYCR7ZXhwLnN0YWNrTmFtZX0uJHtpZH1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgnUmVmJyBpbiB2KSB7XG4gICAgICAgICAgICAgIHJldHVybiBbYCR7ZXhwLnN0YWNrTmFtZX0uJHt2LlJlZn1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFtgJHtleHAuc3RhY2tOYW1lfS4ke3Z9YF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmICgnRGVwZW5kc09uJyBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZS5EZXBlbmRzT24pKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goLi4udmFsdWUuRGVwZW5kc09uLm1hcCgocjogc3RyaW5nKSA9PiBgJHtzdGFja05hbWV9LiR7cn1gKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goYCR7c3RhY2tOYW1lfS4ke3ZhbHVlLkRlcGVuZHNPbn1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzdWx0LnB1c2goLi4uT2JqZWN0LnZhbHVlcyh2YWx1ZSkuZmxhdE1hcCgocmVzKSA9PiBmaW5kRGVwZW5kZW5jaWVzKHN0YWNrTmFtZSwgcmVzKSkpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBbaWQsIHJlc10gb2YgT2JqZWN0LmVudHJpZXMocmVzb3VyY2VzKSkge1xuICAgICAgY29uc3Qgc3RhY2tOYW1lID0gaWQuc3BsaXQoJy4nKVswXTtcbiAgICAgIGNvbnN0IGRlcHMgPSBmaW5kRGVwZW5kZW5jaWVzKHN0YWNrTmFtZSwgcmVzIHx8IHt9KTtcbiAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgICAgaWYgKGRlcCBpbiByZXNvdXJjZXMgJiYgZGVwICE9PSBpZCkge1xuICAgICAgICAgIGVkZ2VzW2lkXS5hZGQoZGVwKTtcbiAgICAgICAgICByZXZlcnNlRWRnZXNbZGVwXS5hZGQoaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZUdyYXBoKGVkZ2VzLCByZXZlcnNlRWRnZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlZGdlczogUmVjb3JkPHN0cmluZywgU2V0PHN0cmluZz4+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgcmV2ZXJzZUVkZ2VzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4gPSB7fTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGVkZ2VzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4sIHJldmVyc2VFZGdlczogUmVjb3JkPHN0cmluZywgU2V0PHN0cmluZz4+KSB7XG4gICAgdGhpcy5lZGdlcyA9IGVkZ2VzO1xuICAgIHRoaXMucmV2ZXJzZUVkZ2VzID0gcmV2ZXJzZUVkZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNvcnRlZCBub2RlcyBpbiB0b3BvbG9naWNhbCBvcmRlci5cbiAgICovXG4gIGdldCBzb3J0ZWROb2RlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IG91dERlZ3JlZSA9IE9iamVjdC5rZXlzKHRoaXMuZWRnZXMpLnJlZHVjZSgoYWNjLCBrKSA9PiB7XG4gICAgICBhY2Nba10gPSB0aGlzLmVkZ2VzW2tdLnNpemU7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xuXG4gICAgY29uc3QgcXVldWUgPSBPYmplY3Qua2V5cyhvdXREZWdyZWUpLmZpbHRlcigoaykgPT4gb3V0RGVncmVlW2tdID09PSAwKTtcblxuICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBub2RlID0gcXVldWUuc2hpZnQoKSE7XG4gICAgICByZXN1bHQucHVzaChub2RlKTtcbiAgICAgIGZvciAoY29uc3Qgbnh0IG9mIHRoaXMucmV2ZXJzZUVkZ2VzW25vZGVdKSB7XG4gICAgICAgIG91dERlZ3JlZVtueHRdLS07XG4gICAgICAgIGlmIChvdXREZWdyZWVbbnh0XSA9PT0gMCkge1xuICAgICAgICAgIHF1ZXVlLnB1c2gobnh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGluTmVpZ2hib3JzKG5vZGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIShub2RlIGluIHRoaXMuZWRnZXMpKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdSZWZhY3RvckdyYXBoTm9kZU5vdEZvdW5kJywgYE5vZGUgJHtub2RlfSBub3QgZm91bmQgaW4gdGhlIGdyYXBoYCk7XG4gICAgfVxuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucmV2ZXJzZUVkZ2VzW25vZGVdIHx8IFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvdXROZWlnaGJvcnMobm9kZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICghKG5vZGUgaW4gdGhpcy5lZGdlcykpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1JlZmFjdG9yR3JhcGhOb2RlTm90Rm91bmQnLCBgTm9kZSAke25vZGV9IG5vdCBmb3VuZCBpbiB0aGUgZ3JhcGhgKTtcbiAgICB9XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lZGdlc1tub2RlXSB8fCBbXSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbm90aGVyIGdyYXBoIHdpdGggdGhlIHNhbWUgbm9kZXMsIGJ1dCB3aXRoIHRoZSBlZGdlcyBpbnZlcnRlZFxuICAgKi9cbiAgcHVibGljIG9wcG9zaXRlKCk6IFJlc291cmNlR3JhcGgge1xuICAgIHJldHVybiBuZXcgUmVzb3VyY2VHcmFwaCh0aGlzLnJldmVyc2VFZGdlcywgdGhpcy5lZGdlcyk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePrescribedMappings = usePrescribedMappings;\nexports.getDeployedStacksByNames = getDeployedStacksByNames;\nexports.formatEnvironmentSectionHeader = formatEnvironmentSectionHeader;\nexports.formatTypedMappings = formatTypedMappings;\nexports.formatAmbiguousMappings = formatAmbiguousMappings;\nexports.groupStacks = groupStacks;\nconst cloudformation_diff_1 = require(\"@aws-cdk/cloudformation-diff\");\nconst util_1 = require(\"../../util\");\nconst plugin_1 = require(\"../plugin\");\nconst streams_1 = require(\"../streams\");\nconst cloudformation_1 = require(\"./cloudformation\");\nconst digest_1 = require(\"./digest\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst concurrency_1 = require(\"../../util/concurrency\");\n__exportStar(require(\"./context\"), exports);\nasync function usePrescribedMappings(mappingGroups, sdkProvider) {\n const stackGroups = [];\n for (const group of mappingGroups) {\n const summaries = await listStacks(sdkProvider, environmentOf(group));\n const stacks = await getDeployedStacksByNames(sdkProvider, environmentOf(group), summaries.map(s => s.StackName));\n stackGroups.push({\n ...group,\n stacks,\n });\n }\n // Validate that there are no duplicate destinations\n for (let group of stackGroups) {\n const destinations = new Set();\n for (const destination of Object.values(group.resources)) {\n if (destinations.has(destination)) {\n throw new toolkit_error_1.ToolkitError('DuplicateDestinationResource', `Duplicate destination resource '${destination}' in environment ${group.account}/${group.region}`);\n }\n destinations.add(destination);\n }\n }\n const result = [];\n for (const group of stackGroups) {\n for (const [source, destination] of Object.entries(group.resources)) {\n if (!inUse(source, group.stacks)) {\n throw new toolkit_error_1.ToolkitError('SourceResourceNotFound', `Source resource '${source}' does not exist in environment ${group.account}/${group.region}`);\n }\n if (inUse(destination, group.stacks)) {\n throw new toolkit_error_1.ToolkitError('DestinationResourceInUse', `Destination resource '${destination}' already in use in environment ${group.account}/${group.region}`);\n }\n const environment = environmentOf(group);\n const src = makeLocation(source, environment, group.stacks);\n const dst = makeLocation(destination, environment);\n result.push(new cloudformation_1.ResourceMapping(src, dst));\n }\n }\n return result;\n function inUse(location, stacks) {\n const [stackName, logicalId] = location.split('.');\n if (stackName == null || logicalId == null) {\n throw new toolkit_error_1.ToolkitError('InvalidResourceLocation', `Invalid location '${location}'`);\n }\n const stack = stacks.find((s) => s.stackName === stackName);\n return stack != null && stack.template.Resources?.[logicalId] != null;\n }\n function environmentOf(group) {\n return {\n account: group.account,\n region: group.region,\n name: '',\n };\n }\n function makeLocation(loc, environment, stacks = []) {\n const [stackName, logicalId] = loc.split('.');\n const stack = stacks.find((s) => s.stackName === stackName);\n return new cloudformation_1.ResourceLocation({\n stackName,\n environment,\n template: stack?.template ?? {},\n }, logicalId);\n }\n}\nasync function getDeployedStacksByNames(sdkProvider, environment, stackNames) {\n const cfn = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForReading)).sdk.cloudFormation();\n const normalize = async (stackName) => {\n const templateCommandOutput = await cfn.getTemplate({ StackName: stackName });\n const template = (0, util_1.deserializeStructure)(templateCommandOutput.TemplateBody ?? '{}');\n return {\n environment,\n stackName: stackName,\n template,\n };\n };\n const limit = (0, concurrency_1.pLimit)(20);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return Promise.all(stackNames.map(s => limit(() => normalize(s))));\n}\nasync function listStacks(sdkProvider, environment) {\n const cfn = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForReading)).sdk.cloudFormation();\n return cfn.paginatedListStacks({\n StackStatusFilter: [\n 'CREATE_COMPLETE',\n 'UPDATE_COMPLETE',\n 'UPDATE_ROLLBACK_COMPLETE',\n 'IMPORT_COMPLETE',\n 'ROLLBACK_COMPLETE',\n ],\n });\n}\nfunction formatEnvironmentSectionHeader(environment) {\n const env = `aws://${environment.account}/${environment.region}`;\n return formatToStream(stream => (0, cloudformation_diff_1.formatEnvironmentSectionHeader)(stream, env));\n}\nfunction formatTypedMappings(mappings) {\n return formatToStream((stream) => (0, cloudformation_diff_1.formatTypedMappings)(stream, mappings));\n}\nfunction formatAmbiguousMappings(paths) {\n return formatToStream((stream) => (0, cloudformation_diff_1.formatAmbiguousMappings)(stream, paths));\n}\nfunction formatToStream(cb) {\n const stream = new streams_1.StringWriteStream();\n cb(stream);\n return stream.toString();\n}\n/**\n * Returns a list of stack groups, each containing the local stacks and the deployed stacks that match the given patterns.\n */\nasync function groupStacks(sdkProvider, localStacks, additionalStackNames) {\n const environments = new Map();\n for (const stack of localStacks) {\n const environment = await sdkProvider.resolveEnvironment(stack.environment);\n const key = (0, digest_1.hashObject)(environment);\n environments.set(key, environment);\n }\n const localByEnvironment = await (0, util_1.indexBy)(localStacks, async (s) => (0, digest_1.hashObject)(await sdkProvider.resolveEnvironment(s.environment)));\n const groups = [];\n for (let key of localByEnvironment.keys()) {\n const local = localByEnvironment.get(key);\n const hasLocalCounterpart = (stackName) => local.some((l) => l.stackName === stackName);\n const wasExplicitlyProvided = (stackName) => additionalStackNames.includes(stackName);\n const environment = environments.get(key);\n const stackSummaries = await listStacks(sdkProvider, environment);\n const stackNames = stackSummaries\n .map(s => s.StackName)\n .filter(s => hasLocalCounterpart(s) || wasExplicitlyProvided(s));\n const deployedStacks = await getDeployedStacksByNames(sdkProvider, environment, stackNames);\n groups.push({\n environment,\n deployedStacks,\n localStacks: local,\n });\n }\n return groups;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBaUNBLHNEQXlGQztBQUVELDREQXFCQztBQW1CRCx3RUFHQztBQUVELGtEQUVDO0FBRUQsMERBRUM7QUFXRCxrQ0FrQ0M7QUExTkQsc0VBSXNDO0FBRXRDLHFDQUEyRDtBQUUzRCxzQ0FBaUM7QUFDakMsd0NBQStDO0FBRS9DLHFEQUFxRTtBQUNyRSxxQ0FBc0M7QUFFdEMsK0RBQTJEO0FBQzNELHdEQUFnRDtBQUVoRCw0Q0FBMEI7QUFjbkIsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxhQUE2QixFQUM3QixXQUF3QjtJQU14QixNQUFNLFdBQVcsR0FBNkIsRUFBRSxDQUFDO0lBQ2pELEtBQUssTUFBTSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxVQUFVLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLE1BQU0sd0JBQXdCLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbkgsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNmLEdBQUcsS0FBSztZQUNSLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELEtBQUssSUFBSSxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUV2QyxLQUFLLE1BQU0sV0FBVyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBSSxZQUFZLENB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LE1BQU0sY0FBYyxHQUFHLE1BQU0sVUFBVSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRSxNQUFNLFVBQVUsR0FBRyxjQUFjO2FBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFVLENBQUM7YUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLGNBQWMsR0FBRyxNQUFNLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFNUYsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNWLFdBQVc7WUFDWCxjQUFjO1lBQ2QsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFR5cGVkTWFwcGluZyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHtcbiAgZm9ybWF0QW1iaWd1b3VzTWFwcGluZ3MgYXMgZm10QW1iaWd1b3VzTWFwcGluZ3MsXG4gIGZvcm1hdEVudmlyb25tZW50U2VjdGlvbkhlYWRlciBhcyBmbXRFbnZpcm9ubWVudFNlY3Rpb25IZWFkZXIsXG4gIGZvcm1hdFR5cGVkTWFwcGluZ3MgYXMgZm10VHlwZWRNYXBwaW5ncyxcbn0gZnJvbSAnQGF3cy1jZGsvY2xvdWRmb3JtYXRpb24tZGlmZic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU3VtbWFyeSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVN0cnVjdHVyZSwgaW5kZXhCeSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5pbXBvcnQgeyBTdHJpbmdXcml0ZVN0cmVhbSB9IGZyb20gJy4uL3N0cmVhbXMnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvblN0YWNrIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZUxvY2F0aW9uLCBSZXNvdXJjZU1hcHBpbmcgfSBmcm9tICcuL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGhhc2hPYmplY3QgfSBmcm9tICcuL2RpZ2VzdCc7XG5pbXBvcnQgdHlwZSB7IE1hcHBpbmdHcm91cCB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IHBMaW1pdCB9IGZyb20gJy4uLy4uL3V0aWwvY29uY3VycmVuY3knO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQnO1xuXG5pbnRlcmZhY2UgU3RhY2tHcm91cCB7XG4gIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudDtcbiAgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbiAgZGVwbG95ZWRTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbn1cblxuaW50ZXJmYWNlIFN0YWNrR3JvdXAge1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIGxvY2FsU3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW107XG4gIGRlcGxveWVkU3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW107XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1c2VQcmVzY3JpYmVkTWFwcGluZ3MoXG4gIG1hcHBpbmdHcm91cHM6IE1hcHBpbmdHcm91cFtdLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4pOiBQcm9taXNlPFJlc291cmNlTWFwcGluZ1tdPiB7XG4gIGludGVyZmFjZSBNYXBwaW5nR3JvdXBXaXRoU3RhY2tzIGV4dGVuZHMgTWFwcGluZ0dyb3VwIHtcbiAgICBzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXTtcbiAgfVxuXG4gIGNvbnN0IHN0YWNrR3JvdXBzOiBNYXBwaW5nR3JvdXBXaXRoU3RhY2tzW10gPSBbXTtcbiAgZm9yIChjb25zdCBncm91cCBvZiBtYXBwaW5nR3JvdXBzKSB7XG4gICAgY29uc3Qgc3VtbWFyaWVzID0gYXdhaXQgbGlzdFN0YWNrcyhzZGtQcm92aWRlciwgZW52aXJvbm1lbnRPZihncm91cCkpO1xuICAgIGNvbnN0IHN0YWNrcyA9IGF3YWl0IGdldERlcGxveWVkU3RhY2tzQnlOYW1lcyhzZGtQcm92aWRlciwgZW52aXJvbm1lbnRPZihncm91cCksIHN1bW1hcmllcy5tYXAocyA9PiBzLlN0YWNrTmFtZSEpKTtcbiAgICBzdGFja0dyb3Vwcy5wdXNoKHtcbiAgICAgIC4uLmdyb3VwLFxuICAgICAgc3RhY2tzLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgdGhhdCB0aGVyZSBhcmUgbm8gZHVwbGljYXRlIGRlc3RpbmF0aW9uc1xuICBmb3IgKGxldCBncm91cCBvZiBzdGFja0dyb3Vwcykge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBkZXN0aW5hdGlvbiBvZiBPYmplY3QudmFsdWVzKGdyb3VwLnJlc291cmNlcykpIHtcbiAgICAgIGlmIChkZXN0aW5hdGlvbnMuaGFzKGRlc3RpbmF0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFxuICAgICAgICAgICdEdXBsaWNhdGVEZXN0aW5hdGlvblJlc291cmNlJyxcbiAgICAgICAgICBgRHVwbGljYXRlIGRlc3RpbmF0aW9uIHJlc291cmNlICcke2Rlc3RpbmF0aW9ufScgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZGVzdGluYXRpb25zLmFkZChkZXN0aW5hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBSZXNvdXJjZU1hcHBpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGdyb3VwIG9mIHN0YWNrR3JvdXBzKSB7XG4gICAgZm9yIChjb25zdCBbc291cmNlLCBkZXN0aW5hdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXAucmVzb3VyY2VzKSkge1xuICAgICAgaWYgKCFpblVzZShzb3VyY2UsIGdyb3VwLnN0YWNrcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU291cmNlUmVzb3VyY2VOb3RGb3VuZCcsIGBTb3VyY2UgcmVzb3VyY2UgJyR7c291cmNlfScgZG9lcyBub3QgZXhpc3QgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluVXNlKGRlc3RpbmF0aW9uLCBncm91cC5zdGFja3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICAgJ0Rlc3RpbmF0aW9uUmVzb3VyY2VJblVzZScsXG4gICAgICAgICAgYERlc3RpbmF0aW9uIHJlc291cmNlICcke2Rlc3RpbmF0aW9ufScgYWxyZWFkeSBpbiB1c2UgaW4gZW52aXJvbm1lbnQgJHtncm91cC5hY2NvdW50fS8ke2dyb3VwLnJlZ2lvbn1gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnZpcm9ubWVudCA9IGVudmlyb25tZW50T2YoZ3JvdXApO1xuICAgICAgY29uc3Qgc3JjID0gbWFrZUxvY2F0aW9uKHNvdXJjZSwgZW52aXJvbm1lbnQsIGdyb3VwLnN0YWNrcyk7XG4gICAgICBjb25zdCBkc3QgPSBtYWtlTG9jYXRpb24oZGVzdGluYXRpb24sIGVudmlyb25tZW50KTtcbiAgICAgIHJlc3VsdC5wdXNoKG5ldyBSZXNvdXJjZU1hcHBpbmcoc3JjLCBkc3QpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcblxuICBmdW5jdGlvbiBpblVzZShsb2NhdGlvbjogc3RyaW5nLCBzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtzdGFja05hbWUsIGxvZ2ljYWxJZF0gPSBsb2NhdGlvbi5zcGxpdCgnLicpO1xuICAgIGlmIChzdGFja05hbWUgPT0gbnVsbCB8fCBsb2dpY2FsSWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignSW52YWxpZFJlc291cmNlTG9jYXRpb24nLCBgSW52YWxpZCBsb2NhdGlvbiAnJHtsb2NhdGlvbn0nYCk7XG4gICAgfVxuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tzLmZpbmQoKHMpID0+IHMuc3RhY2tOYW1lID09PSBzdGFja05hbWUpO1xuICAgIHJldHVybiBzdGFjayAhPSBudWxsICYmIHN0YWNrLnRlbXBsYXRlLlJlc291cmNlcz8uW2xvZ2ljYWxJZF0gIT0gbnVsbDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVudmlyb25tZW50T2YoZ3JvdXA6IE1hcHBpbmdHcm91cCkge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50OiBncm91cC5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBncm91cC5yZWdpb24sXG4gICAgICBuYW1lOiAnJyxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gbWFrZUxvY2F0aW9uKFxuICAgIGxvYzogc3RyaW5nLFxuICAgIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbiAgICBzdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSA9IFtdLFxuICApOiBSZXNvdXJjZUxvY2F0aW9uIHtcbiAgICBjb25zdCBbc3RhY2tOYW1lLCBsb2dpY2FsSWRdID0gbG9jLnNwbGl0KCcuJyk7XG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja3MuZmluZCgocykgPT4gcy5zdGFja05hbWUgPT09IHN0YWNrTmFtZSk7XG5cbiAgICByZXR1cm4gbmV3IFJlc291cmNlTG9jYXRpb24oXG4gICAgICB7XG4gICAgICAgIHN0YWNrTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIHRlbXBsYXRlOiBzdGFjaz8udGVtcGxhdGUgPz8ge30sXG4gICAgICB9LFxuICAgICAgbG9naWNhbElkLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlcGxveWVkU3RhY2tzQnlOYW1lcyhcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsXG4gIHN0YWNrTmFtZXM6IHN0cmluZ1tdLFxuKTogUHJvbWlzZTxDbG91ZEZvcm1hdGlvblN0YWNrW10+IHtcbiAgY29uc3QgY2ZuID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KGVudmlyb25tZW50LCBNb2RlLkZvclJlYWRpbmcpKS5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICBjb25zdCBub3JtYWxpemUgPSBhc3luYyAoc3RhY2tOYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZUNvbW1hbmRPdXRwdXQgPSBhd2FpdCBjZm4uZ2V0VGVtcGxhdGUoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KTtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGRlc2VyaWFsaXplU3RydWN0dXJlKHRlbXBsYXRlQ29tbWFuZE91dHB1dC5UZW1wbGF0ZUJvZHkgPz8gJ3t9Jyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgc3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICB0ZW1wbGF0ZSxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDIwKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgcmV0dXJuIFByb21pc2UuYWxsKHN0YWNrTmFtZXMubWFwKHMgPT4gbGltaXQoKCkgPT4gbm9ybWFsaXplKHMpKSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsaXN0U3RhY2tzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbik6IFByb21pc2U8U3RhY2tTdW1tYXJ5W10+IHtcbiAgY29uc3QgY2ZuID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KGVudmlyb25tZW50LCBNb2RlLkZvclJlYWRpbmcpKS5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICByZXR1cm4gY2ZuLnBhZ2luYXRlZExpc3RTdGFja3Moe1xuICAgIFN0YWNrU3RhdHVzRmlsdGVyOiBbXG4gICAgICAnQ1JFQVRFX0NPTVBMRVRFJyxcbiAgICAgICdVUERBVEVfQ09NUExFVEUnLFxuICAgICAgJ1VQREFURV9ST0xMQkFDS19DT01QTEVURScsXG4gICAgICAnSU1QT1JUX0NPTVBMRVRFJyxcbiAgICAgICdST0xMQkFDS19DT01QTEVURScsXG4gICAgXSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFbnZpcm9ubWVudFNlY3Rpb25IZWFkZXIoZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50KSB7XG4gIGNvbnN0IGVudiA9IGBhd3M6Ly8ke2Vudmlyb25tZW50LmFjY291bnR9LyR7ZW52aXJvbm1lbnQucmVnaW9ufWA7XG4gIHJldHVybiBmb3JtYXRUb1N0cmVhbShzdHJlYW0gPT4gZm10RW52aXJvbm1lbnRTZWN0aW9uSGVhZGVyKHN0cmVhbSwgZW52KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUeXBlZE1hcHBpbmdzKG1hcHBpbmdzOiBUeXBlZE1hcHBpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBmb3JtYXRUb1N0cmVhbSgoc3RyZWFtKSA9PiBmbXRUeXBlZE1hcHBpbmdzKHN0cmVhbSwgbWFwcGluZ3MpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFtYmlndW91c01hcHBpbmdzKHBhdGhzOiBbc3RyaW5nW10sIHN0cmluZ1tdXVtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdFRvU3RyZWFtKChzdHJlYW0pID0+IGZtdEFtYmlndW91c01hcHBpbmdzKHN0cmVhbSwgcGF0aHMpKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VG9TdHJlYW0oY2I6IChzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkgPT4gdm9pZCk6IHN0cmluZyB7XG4gIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuICBjYihzdHJlYW0pO1xuICByZXR1cm4gc3RyZWFtLnRvU3RyaW5nKCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGxpc3Qgb2Ygc3RhY2sgZ3JvdXBzLCBlYWNoIGNvbnRhaW5pbmcgdGhlIGxvY2FsIHN0YWNrcyBhbmQgdGhlIGRlcGxveWVkIHN0YWNrcyB0aGF0IG1hdGNoIHRoZSBnaXZlbiBwYXR0ZXJucy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdyb3VwU3RhY2tzKHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlciwgbG9jYWxTdGFja3M6IENsb3VkRm9ybWF0aW9uU3RhY2tbXSwgYWRkaXRpb25hbFN0YWNrTmFtZXM6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IGVudmlyb25tZW50czogTWFwPHN0cmluZywgY3hhcGkuRW52aXJvbm1lbnQ+ID0gbmV3IE1hcCgpO1xuXG4gIGZvciAoY29uc3Qgc3RhY2sgb2YgbG9jYWxTdGFja3MpIHtcbiAgICBjb25zdCBlbnZpcm9ubWVudCA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgY29uc3Qga2V5ID0gaGFzaE9iamVjdChlbnZpcm9ubWVudCk7XG4gICAgZW52aXJvbm1lbnRzLnNldChrZXksIGVudmlyb25tZW50KTtcbiAgfVxuXG4gIGNvbnN0IGxvY2FsQnlFbnZpcm9ubWVudCA9IGF3YWl0IGluZGV4QnkobG9jYWxTdGFja3MsXG4gICAgYXN5bmMgKHMpID0+IGhhc2hPYmplY3QoYXdhaXQgc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KHMuZW52aXJvbm1lbnQpKSxcbiAgKTtcblxuICBjb25zdCBncm91cHM6IFN0YWNrR3JvdXBbXSA9IFtdO1xuICBmb3IgKGxldCBrZXkgb2YgbG9jYWxCeUVudmlyb25tZW50LmtleXMoKSkge1xuICAgIGNvbnN0IGxvY2FsID0gbG9jYWxCeUVudmlyb25tZW50LmdldChrZXkpITtcbiAgICBjb25zdCBoYXNMb2NhbENvdW50ZXJwYXJ0ID0gKHN0YWNrTmFtZTogc3RyaW5nKSA9PiBsb2NhbC5zb21lKChsKSA9PiBsLnN0YWNrTmFtZSA9PT0gc3RhY2tOYW1lKTtcbiAgICBjb25zdCB3YXNFeHBsaWNpdGx5UHJvdmlkZWQgPSAoc3RhY2tOYW1lOiBzdHJpbmcpID0+IGFkZGl0aW9uYWxTdGFja05hbWVzLmluY2x1ZGVzKHN0YWNrTmFtZSk7XG5cbiAgICBjb25zdCBlbnZpcm9ubWVudCA9IGVudmlyb25tZW50cy5nZXQoa2V5KSE7XG4gICAgY29uc3Qgc3RhY2tTdW1tYXJpZXMgPSBhd2FpdCBsaXN0U3RhY2tzKHNka1Byb3ZpZGVyLCBlbnZpcm9ubWVudCk7XG4gICAgY29uc3Qgc3RhY2tOYW1lcyA9IHN0YWNrU3VtbWFyaWVzXG4gICAgICAubWFwKHMgPT4gcy5TdGFja05hbWUhKVxuICAgICAgLmZpbHRlcihzID0+IGhhc0xvY2FsQ291bnRlcnBhcnQocykgfHwgd2FzRXhwbGljaXRseVByb3ZpZGVkKHMpKTtcbiAgICBjb25zdCBkZXBsb3llZFN0YWNrcyA9IGF3YWl0IGdldERlcGxveWVkU3RhY2tzQnlOYW1lcyhzZGtQcm92aWRlciwgZW52aXJvbm1lbnQsIHN0YWNrTmFtZXMpO1xuXG4gICAgZ3JvdXBzLnB1c2goe1xuICAgICAgZW52aXJvbm1lbnQsXG4gICAgICBkZXBsb3llZFN0YWNrcyxcbiAgICAgIGxvY2FsU3RhY2tzOiBsb2NhbCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBncm91cHM7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateStackDefinitions = generateStackDefinitions;\nconst util = require(\"node:util\");\nconst chalk = require(\"chalk\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst environment_1 = require(\"../environment\");\nconst plugin_1 = require(\"../plugin\");\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst deepEqual = require('fast-deep-equal');\nconst LARGE_TEMPLATE_SIZE_KB = 50;\nconst LARGE_TEMPLATE_SIZE_BYTES = LARGE_TEMPLATE_SIZE_KB * 1024;\nasync function generateStackDefinitions(mappings, deployedStacks, localStacks, environment, sdkProvider, ioHelper) {\n const deployedStackMap = new Map(deployedStacks.map((s) => [s.stackName, s]));\n // For every local stack that is also deployed, update the local template,\n // overwriting its CDKMetadata resource with the one from the deployed stack\n for (const localStack of localStacks) {\n const deployedStack = deployedStackMap.get(localStack.stackName);\n const localTemplate = localStack.template;\n const deployedTemplate = deployedStack?.template;\n // The CDKMetadata resource is never part of a refactor. So at this point we need\n // to adjust the template we will send to the API to make sure it has the same CDKMetadata\n // as the deployed template. And if the deployed template doesn't have any, we cannot\n // send any either.\n if (deployedTemplate?.Resources?.CDKMetadata != null) {\n localTemplate.Resources = localTemplate.Resources ?? {};\n localTemplate.Resources.CDKMetadata = deployedTemplate.Resources.CDKMetadata;\n }\n else {\n delete localTemplate.Resources?.CDKMetadata;\n }\n }\n const stacksToProcess = localStacks.filter((localStack) => {\n const deployedStack = deployedStackMap.get(localStack.stackName);\n return !deployedStack || !deepEqual(localStack.template, deployedStack.template);\n });\n // Now, for every stack name that appears in the mappings, but is not present in the local stacks,\n // we need to take its (deployed) template and remove all the resources that appear in the sources\n // part of the mappings. For example, if the mappings contains an entry like:\n // - StackB.Foo -> StackA.Bar\n // and StackB does not exist locally, we need to take StackB's template, and remove the resource Foo,\n // and include this modified template for StackB in the stack definitions.\n for (let mapping of mappings) {\n const stackName = mapping.source.stackName;\n if (!localStacks.some(s => s.stackName === stackName)) {\n const deployedStack = deployedStackMap.get(stackName);\n delete deployedStack?.template.Resources?.[mapping.source.logicalResourceId];\n delete deployedStack?.template.Outputs;\n if (deployedStack && !stacksToProcess.some(s => s.stackName === stackName)) {\n stacksToProcess.push(deployedStack);\n }\n }\n }\n // For stacks created by the refactor, CloudFormation does not allow Rules or Parameters\n for (const stack of stacksToProcess) {\n if (!deployedStacks.some(deployed => deployed.stackName === stack.stackName)) {\n if ('Rules' in stack.template) {\n delete stack.template.Rules;\n }\n if ('Parameters' in stack.template) {\n delete stack.template.Parameters;\n }\n }\n }\n // Check if any templates are large enough to require S3 upload\n const hasLargeTemplates = stacksToProcess.some(stack => JSON.stringify(stack.template).length > LARGE_TEMPLATE_SIZE_BYTES);\n // If no large templates, use TemplateBody for all\n if (!hasLargeTemplates) {\n return stacksToProcess.map(stack => ({\n StackName: stack.stackName,\n TemplateBody: JSON.stringify(stack.template),\n }));\n }\n const sdk = (await sdkProvider.forEnvironment(environment, plugin_1.Mode.ForWriting)).sdk;\n const environmentResourcesRegistry = new environment_1.EnvironmentResourcesRegistry();\n const envResources = environmentResourcesRegistry.for(environment, sdk, ioHelper);\n const toolkitInfo = await envResources.lookupToolkit();\n if (!toolkitInfo.found) {\n // Find the first large template to include in the error message\n const largeStack = stacksToProcess.find(stack => JSON.stringify(stack.template).length > LARGE_TEMPLATE_SIZE_BYTES); // Must exist since hasLargeTemplates is true\n const templateSize = Math.round(JSON.stringify(largeStack.template).length / 1024);\n await ioHelper.defaults.error(util.format(`The template for stack \"${largeStack.stackName}\" is ${templateSize}KiB. ` +\n `Templates larger than ${LARGE_TEMPLATE_SIZE_KB}KiB must be uploaded to S3.\\n` +\n 'Run the following command in order to setup an S3 bucket in this environment, and then re-refactor:\\n\\n', chalk.blue(`\\t$ cdk bootstrap ${environment.name}\\n`)));\n throw new toolkit_error_1.ToolkitError('TemplateTooLargeToRefactor', 'Template too large to refactor (\"cdk bootstrap\" is required)');\n }\n const stackDefinitions = [];\n for (const stack of stacksToProcess) {\n const templateJson = JSON.stringify(stack.template);\n // If template is small enough, use TemplateBody\n if (templateJson.length <= LARGE_TEMPLATE_SIZE_BYTES) {\n stackDefinitions.push({\n StackName: stack.stackName,\n TemplateBody: templateJson,\n });\n continue;\n }\n // Template is too large, upload to S3\n // Generate a unique key for this template\n const templateHash = (0, util_1.contentHash)(templateJson);\n const key = `cdk-refactor/${stack.stackName}/${templateHash}.json`;\n const s3 = sdk.s3();\n await s3.upload({\n Bucket: toolkitInfo.bucketName,\n Key: key,\n Body: templateJson,\n ContentType: 'application/json',\n });\n const templateURL = `${toolkitInfo.bucketUrl}/${key}`;\n await ioHelper.defaults.debug(`Storing template for stack ${stack.stackName} in S3 at: ${templateURL}`);\n stackDefinitions.push({\n StackName: stack.stackName,\n TemplateURL: templateURL,\n });\n }\n return stackDefinitions;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSw0REE0SUM7QUE5SkQsa0NBQWtDO0FBR2xDLCtCQUErQjtBQUUvQiwrREFBMkQ7QUFDM0QscUNBQXlDO0FBRXpDLGdEQUE4RDtBQUU5RCxzQ0FBaUM7QUFDakMseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUU3QyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUNsQyxNQUFNLHlCQUF5QixHQUFHLHNCQUFzQixHQUFHLElBQUksQ0FBQztBQUV6RCxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLFFBQTJCLEVBQzNCLGNBQXFDLEVBQ3JDLFdBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLFFBQWtCO0lBRWxCLE1BQU0sZ0JBQWdCLEdBQXFDLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEgsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUM1RSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUMxQyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsRUFBRSxRQUFRLENBQUM7UUFFakQsaUZBQWlGO1FBQ2pGLDBGQUEwRjtRQUMxRixxRkFBcUY7UUFDckYsbUJBQW1CO1FBQ25CLElBQUksZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFdBQVcs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LE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnQgfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RlZmluaXRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvblN0YWNrLCBSZXNvdXJjZU1hcHBpbmcgfSBmcm9tICcuL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBjb250ZW50SGFzaCB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3Nkay1wcm92aWRlcic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG4vLyBuYW1lc3BhY2Ugb2JqZWN0IGltcG9ydHMgd29uJ3Qgd29yayBpbiB0aGUgYnVuZGxlIGZvciBmdW5jdGlvbiBleHBvcnRzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgZGVlcEVxdWFsID0gcmVxdWlyZSgnZmFzdC1kZWVwLWVxdWFsJyk7XG5cbmNvbnN0IExBUkdFX1RFTVBMQVRFX1NJWkVfS0IgPSA1MDtcbmNvbnN0IExBUkdFX1RFTVBMQVRFX1NJWkVfQllURVMgPSBMQVJHRV9URU1QTEFURV9TSVpFX0tCICogMTAyNDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlU3RhY2tEZWZpbml0aW9ucyhcbiAgbWFwcGluZ3M6IFJlc291cmNlTWFwcGluZ1tdLFxuICBkZXBsb3llZFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBsb2NhbFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuKTogUHJvbWlzZTxTdGFja0RlZmluaXRpb25bXT4ge1xuICBjb25zdCBkZXBsb3llZFN0YWNrTWFwOiBNYXA8c3RyaW5nLCBDbG91ZEZvcm1hdGlvblN0YWNrPiA9IG5ldyBNYXAoZGVwbG95ZWRTdGFja3MubWFwKChzKSA9PiBbcy5zdGFja05hbWUsIHNdKSk7XG5cbiAgLy8gRm9yIGV2ZXJ5IGxvY2FsIHN0YWNrIHRoYXQgaXMgYWxzbyBkZXBsb3llZCwgdXBkYXRlIHRoZSBsb2NhbCB0ZW1wbGF0ZSxcbiAgLy8gb3ZlcndyaXRpbmcgaXRzIENES01ldGFkYXRhIHJlc291cmNlIHdpdGggdGhlIG9uZSBmcm9tIHRoZSBkZXBsb3llZCBzdGFja1xuICBmb3IgKGNvbnN0IGxvY2FsU3RhY2sgb2YgbG9jYWxTdGFja3MpIHtcbiAgICBjb25zdCBkZXBsb3llZFN0YWNrID0gZGVwbG95ZWRTdGFja01hcC5nZXQobG9jYWxTdGFjay5zdGFja05hbWUpO1xuICAgIGNvbnN0IGxvY2FsVGVtcGxhdGUgPSBsb2NhbFN0YWNrLnRlbXBsYXRlO1xuICAgIGNvbnN0IGRlcGxveWVkVGVtcGxhdGUgPSBkZXBsb3llZFN0YWNrPy50ZW1wbGF0ZTtcblxuICAgIC8vIFRoZSBDREtNZXRhZGF0YSByZXNvdXJjZSBpcyBuZXZlciBwYXJ0IG9mIGEgcmVmYWN0b3IuIFNvIGF0IHRoaXMgcG9pbnQgd2UgbmVlZFxuICAgIC8vIHRvIGFkanVzdCB0aGUgdGVtcGxhdGUgd2Ugd2lsbCBzZW5kIHRvIHRoZSBBUEkgdG8gbWFrZSBzdXJlIGl0IGhhcyB0aGUgc2FtZSBDREtNZXRhZGF0YVxuICAgIC8vIGFzIHRoZSBkZXBsb3llZCB0ZW1wbGF0ZS4gQW5kIGlmIHRoZSBkZXBsb3llZCB0ZW1wbGF0ZSBkb2Vzbid0IGhhdmUgYW55LCB3ZSBjYW5ub3RcbiAgICAvLyBzZW5kIGFueSBlaXRoZXIuXG4gICAgaWYgKGRlcGxveWVkVGVtcGxhdGU/LlJlc291cmNlcz8uQ0RLTWV0YWRhdGEgIT0gbnVsbCkge1xuICAgICAgbG9jYWxUZW1wbGF0ZS5SZXNvdXJjZXMgPSBsb2NhbFRlbXBsYXRlLlJlc291cmNlcyA/PyB7fTtcbiAgICAgIGxvY2FsVGVtcGxhdGUuUmVzb3VyY2VzLkNES01ldGFkYXRhID0gZGVwbG95ZWRUZW1wbGF0ZS5SZXNvdXJjZXMuQ0RLTWV0YWRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSBsb2NhbFRlbXBsYXRlLlJlc291cmNlcz8uQ0RLTWV0YWRhdGE7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RhY2tzVG9Qcm9jZXNzID0gbG9jYWxTdGFja3MuZmlsdGVyKChsb2NhbFN0YWNrKSA9PiB7XG4gICAgY29uc3QgZGVwbG95ZWRTdGFjayA9IGRlcGxveWVkU3RhY2tNYXAuZ2V0KGxvY2FsU3RhY2suc3RhY2tOYW1lKTtcbiAgICByZXR1cm4gIWRlcGxveWVkU3RhY2sgfHwgIWRlZXBFcXVhbChsb2NhbFN0YWNrLnRlbXBsYXRlLCBkZXBsb3llZFN0YWNrLnRlbXBsYXRlKTtcbiAgfSk7XG5cbiAgLy8gTm93LCBmb3IgZXZlcnkgc3RhY2sgbmFtZSB0aGF0IGFwcGVhcnMgaW4gdGhlIG1hcHBpbmdzLCBidXQgaXMgbm90IHByZXNlbnQgaW4gdGhlIGxvY2FsIHN0YWNrcyxcbiAgLy8gd2UgbmVlZCB0byB0YWtlIGl0cyAoZGVwbG95ZWQpIHRlbXBsYXRlIGFuZCByZW1vdmUgYWxsIHRoZSByZXNvdXJjZXMgdGhhdCBhcHBlYXIgaW4gdGhlIHNvdXJjZXNcbiAgLy8gcGFydCBvZiB0aGUgbWFwcGluZ3MuIEZvciBleGFtcGxlLCBpZiB0aGUgbWFwcGluZ3MgY29udGFpbnMgYW4gZW50cnkgbGlrZTpcbiAgLy8gIC0gU3RhY2tCLkZvbyAtPiBTdGFja0EuQmFyXG4gIC8vIGFuZCBTdGFja0IgZG9lcyBub3QgZXhpc3QgbG9jYWxseSwgd2UgbmVlZCB0byB0YWtlIFN0YWNrQidzIHRlbXBsYXRlLCBhbmQgcmVtb3ZlIHRoZSByZXNvdXJjZSBGb28sXG4gIC8vIGFuZCBpbmNsdWRlIHRoaXMgbW9kaWZpZWQgdGVtcGxhdGUgZm9yIFN0YWNrQiBpbiB0aGUgc3RhY2sgZGVmaW5pdGlvbnMuXG4gIGZvciAobGV0IG1hcHBpbmcgb2YgbWFwcGluZ3MpIHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBtYXBwaW5nLnNvdXJjZS5zdGFja05hbWU7XG4gICAgaWYgKCFsb2NhbFN0YWNrcy5zb21lKHMgPT4gcy5zdGFja05hbWUgPT09IHN0YWNrTmFtZSkpIHtcbiAgICAgIGNvbnN0IGRlcGxveWVkU3RhY2sgPSBkZXBsb3llZFN0YWNrTWFwLmdldChzdGFja05hbWUpO1xuICAgICAgZGVsZXRlIGRlcGxveWVkU3RhY2s/LnRlbXBsYXRlLlJlc291cmNlcz8uW21hcHBpbmcuc291cmNlLmxvZ2ljYWxSZXNvdXJjZUlkXTtcblxuICAgICAgZGVsZXRlIGRlcGxveWVkU3RhY2s/LnRlbXBsYXRlLk91dHB1dHM7XG5cbiAgICAgIGlmIChkZXBsb3llZFN0YWNrICYmICFzdGFja3NUb1Byb2Nlc3Muc29tZShzID0+IHMuc3RhY2tOYW1lID09PSBzdGFja05hbWUpKSB7XG4gICAgICAgIHN0YWNrc1RvUHJvY2Vzcy5wdXNoKGRlcGxveWVkU3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEZvciBzdGFja3MgY3JlYXRlZCBieSB0aGUgcmVmYWN0b3IsIENsb3VkRm9ybWF0aW9uIGRvZXMgbm90IGFsbG93IFJ1bGVzIG9yIFBhcmFtZXRlcnNcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3NUb1Byb2Nlc3MpIHtcbiAgICBpZiAoIWRlcGxveWVkU3RhY2tzLnNvbWUoZGVwbG95ZWQgPT4gZGVwbG95ZWQuc3RhY2tOYW1lID09PSBzdGFjay5zdGFja05hbWUpKSB7XG4gICAgICBpZiAoJ1J1bGVzJyBpbiBzdGFjay50ZW1wbGF0ZSkge1xuICAgICAgICBkZWxldGUgc3RhY2sudGVtcGxhdGUuUnVsZXM7XG4gICAgICB9XG4gICAgICBpZiAoJ1BhcmFtZXRlcnMnIGluIHN0YWNrLnRlbXBsYXRlKSB7XG4gICAgICAgIGRlbGV0ZSBzdGFjay50ZW1wbGF0ZS5QYXJhbWV0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIGFueSB0ZW1wbGF0ZXMgYXJlIGxhcmdlIGVub3VnaCB0byByZXF1aXJlIFMzIHVwbG9hZFxuICBjb25zdCBoYXNMYXJnZVRlbXBsYXRlcyA9IHN0YWNrc1RvUHJvY2Vzcy5zb21lKFxuICAgIHN0YWNrID0+IEpTT04uc3RyaW5naWZ5KHN0YWNrLnRlbXBsYXRlKS5sZW5ndGggPiBMQVJHRV9URU1QTEFURV9TSVpFX0JZVEVTLFxuICApO1xuXG4gIC8vIElmIG5vIGxhcmdlIHRlbXBsYXRlcywgdXNlIFRlbXBsYXRlQm9keSBmb3IgYWxsXG4gIGlmICghaGFzTGFyZ2VUZW1wbGF0ZXMpIHtcbiAgICByZXR1cm4gc3RhY2tzVG9Qcm9jZXNzLm1hcChzdGFjayA9PiAoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFjay5zdGFja05hbWUsXG4gICAgICBUZW1wbGF0ZUJvZHk6IEpTT04uc3RyaW5naWZ5KHN0YWNrLnRlbXBsYXRlKSxcbiAgICB9KSk7XG4gIH1cblxuICBjb25zdCBzZGsgPSAoYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQoZW52aXJvbm1lbnQsIE1vZGUuRm9yV3JpdGluZykpLnNkaztcbiAgY29uc3QgZW52aXJvbm1lbnRSZXNvdXJjZXNSZWdpc3RyeSA9IG5ldyBFbnZpcm9ubWVudFJlc291cmNlc1JlZ2lzdHJ5KCk7XG4gIGNvbnN0IGVudlJlc291cmNlcyA9IGVudmlyb25tZW50UmVzb3VyY2VzUmVnaXN0cnkuZm9yKGVudmlyb25tZW50LCBzZGssIGlvSGVscGVyKTtcbiAgY29uc3QgdG9vbGtpdEluZm8gPSBhd2FpdCBlbnZSZXNvdXJjZXMubG9va3VwVG9vbGtpdCgpO1xuXG4gIGlmICghdG9vbGtpdEluZm8uZm91bmQpIHtcbiAgICAvLyBGaW5kIHRoZSBmaXJzdCBsYXJnZSB0ZW1wbGF0ZSB0byBpbmNsdWRlIGluIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgY29uc3QgbGFyZ2VTdGFjayA9IHN0YWNrc1RvUHJvY2Vzcy5maW5kKFxuICAgICAgc3RhY2sgPT4gSlNPTi5zdHJpbmdpZnkoc3RhY2sudGVtcGxhdGUpLmxlbmd0aCA+IExBUkdFX1RFTVBMQVRFX1NJWkVfQllURVMsXG4gICAgKSE7IC8vIE11c3QgZXhpc3Qgc2luY2UgaGFzTGFyZ2VUZW1wbGF0ZXMgaXMgdHJ1ZVxuXG4gICAgY29uc3QgdGVtcGxhdGVTaXplID0gTWF0aC5yb3VuZChKU09OLnN0cmluZ2lmeShsYXJnZVN0YWNrLnRlbXBsYXRlKS5sZW5ndGggLyAxMDI0KTtcblxuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgIGBUaGUgdGVtcGxhdGUgZm9yIHN0YWNrIFwiJHtsYXJnZVN0YWNrLnN0YWNrTmFtZX1cIiBpcyAke3RlbXBsYXRlU2l6ZX1LaUIuIGAgK1xuICAgICAgICBgVGVtcGxhdGVzIGxhcmdlciB0aGFuICR7TEFSR0VfVEVNUExBVEVfU0laRV9LQn1LaUIgbXVzdCBiZSB1cGxvYWRlZCB0byBTMy5cXG5gICtcbiAgICAgICAgJ1J1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gb3JkZXIgdG8gc2V0dXAgYW4gUzMgYnVja2V0IGluIHRoaXMgZW52aXJvbm1lbnQsIGFuZCB0aGVuIHJlLXJlZmFjdG9yOlxcblxcbicsXG4gICAgICAgIGNoYWxrLmJsdWUoYFxcdCQgY2RrIGJvb3RzdHJhcCAke2Vudmlyb25tZW50Lm5hbWV9XFxuYCksXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUZW1wbGF0ZVRvb0xhcmdlVG9SZWZhY3RvcicsICdUZW1wbGF0ZSB0b28gbGFyZ2UgdG8gcmVmYWN0b3IgKFwiY2RrIGJvb3RzdHJhcFwiIGlzIHJlcXVpcmVkKScpO1xuICB9XG5cbiAgY29uc3Qgc3RhY2tEZWZpbml0aW9uczogU3RhY2tEZWZpbml0aW9uW10gPSBbXTtcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3NUb1Byb2Nlc3MpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZUpzb24gPSBKU09OLnN0cmluZ2lmeShzdGFjay50ZW1wbGF0ZSk7XG5cbiAgICAvLyBJZiB0ZW1wbGF0ZSBpcyBzbWFsbCBlbm91Z2gsIHVzZSBUZW1wbGF0ZUJvZHlcbiAgICBpZiAodGVtcGxhdGVKc29uLmxlbmd0aCA8PSBMQVJHRV9URU1QTEFURV9TSVpFX0JZVEVTKSB7XG4gICAgICBzdGFja0RlZmluaXRpb25zLnB1c2goe1xuICAgICAgICBTdGFja05hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgVGVtcGxhdGVCb2R5OiB0ZW1wbGF0ZUpzb24sXG4gICAgICB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIFRlbXBsYXRlIGlzIHRvbyBsYXJnZSwgdXBsb2FkIHRvIFMzXG4gICAgLy8gR2VuZXJhdGUgYSB1bmlxdWUga2V5IGZvciB0aGlzIHRlbXBsYXRlXG4gICAgY29uc3QgdGVtcGxhdGVIYXNoID0gY29udGVudEhhc2godGVtcGxhdGVKc29uKTtcbiAgICBjb25zdCBrZXkgPSBgY2RrLXJlZmFjdG9yLyR7c3RhY2suc3RhY2tOYW1lfS8ke3RlbXBsYXRlSGFzaH0uanNvbmA7XG5cbiAgICBjb25zdCBzMyA9IHNkay5zMygpO1xuICAgIGF3YWl0IHMzLnVwbG9hZCh7XG4gICAgICBCdWNrZXQ6IHRvb2xraXRJbmZvLmJ1Y2tldE5hbWUsXG4gICAgICBLZXk6IGtleSxcbiAgICAgIEJvZHk6IHRlbXBsYXRlSnNvbixcbiAgICAgIENvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZVVSTCA9IGAke3Rvb2xraXRJbmZvLmJ1Y2tldFVybH0vJHtrZXl9YDtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgU3RvcmluZyB0ZW1wbGF0ZSBmb3Igc3RhY2sgJHtzdGFjay5zdGFja05hbWV9IGluIFMzIGF0OiAke3RlbXBsYXRlVVJMfWApO1xuXG4gICAgc3RhY2tEZWZpbml0aW9ucy5wdXNoKHtcbiAgICAgIFN0YWNrTmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgVGVtcGxhdGVVUkw6IHRlbXBsYXRlVVJMLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0YWNrRGVmaW5pdGlvbnM7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceImporter = void 0;\nexports.removeNonImportResources = removeNonImportResources;\nconst util_1 = require(\"util\");\nconst cfnDiff = require(\"@aws-cdk/cloudformation-diff\");\nconst chalk = require(\"chalk\");\nconst fs = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst deployments_1 = require(\"../deployments\");\nconst private_1 = require(\"../io/private\");\n/**\n * Resource importing utility class\n *\n * - Determines the resources added to a template (compared to the deployed version)\n * - Look up the identification information\n * - Load them from a file, or\n * - Ask the user, based on information supplied to us by CloudFormation's GetTemplateSummary\n * - Translate the input to a structure expected by CloudFormation, update the template to add the\n * importable resources, then run an IMPORT changeset.\n */\nclass ResourceImporter {\n _currentTemplate;\n stack;\n cfn;\n ioHelper;\n constructor(stack, props) {\n this.stack = stack;\n this.cfn = props.deployments;\n this.ioHelper = props.ioHelper;\n }\n /**\n * Ask the user for resources to import\n */\n async askForResourceIdentifiers(available) {\n const ret = { importResources: [], resourceMap: {} };\n const resourceIdentifiers = await this.resourceIdentifiers();\n for (const resource of available) {\n const identifier = await this.askForResourceIdentifier(resourceIdentifiers, resource);\n if (!identifier) {\n continue;\n }\n ret.importResources.push(resource);\n ret.resourceMap[resource.logicalId] = identifier;\n }\n return ret;\n }\n /**\n * Load the resources to import from a file\n */\n async loadResourceIdentifiers(available, filename) {\n const contents = await fs.readJson(filename);\n const ret = { importResources: [], resourceMap: {} };\n for (const resource of available) {\n const descr = this.describeResource(resource.logicalId);\n const idProps = contents[resource.logicalId];\n if (idProps) {\n await this.ioHelper.defaults.info((0, util_1.format)('%s: importing using %s', chalk.blue(descr), chalk.blue(fmtdict(idProps))));\n ret.importResources.push(resource);\n ret.resourceMap[resource.logicalId] = idProps;\n delete contents[resource.logicalId];\n }\n else {\n await this.ioHelper.defaults.info((0, util_1.format)('%s: skipping', chalk.blue(descr)));\n }\n }\n const unknown = Object.keys(contents);\n if (unknown.length > 0) {\n await this.ioHelper.defaults.warn(`Unrecognized resource identifiers in mapping file: ${unknown.join(', ')}`);\n }\n return ret;\n }\n /**\n * Based on the provided resource mapping, prepare CFN structures for import (template,\n * ResourcesToImport structure) and perform the import operation (CloudFormation deployment)\n *\n * @param importMap - Mapping from CDK construct tree path to physical resource import identifiers\n * @param options - Options to pass to CloudFormation deploy operation\n */\n async importResourcesFromMap(importMap, options = {}) {\n const resourcesToImport = await this.makeResourcesToImport(importMap);\n const updatedTemplate = await this.currentTemplateWithAdditions(importMap.importResources);\n await this.importResources(updatedTemplate, resourcesToImport, options);\n }\n /**\n * Based on the app and resources file generated by cdk migrate. Removes all items from the template that\n * cannot be included in an import change-set for new stacks and performs the import operation,\n * creating the new stack.\n *\n * @param resourcesToImport - The mapping created by cdk migrate\n * @param options - Options to pass to CloudFormation deploy operation\n */\n async importResourcesFromMigrate(resourcesToImport, options = {}) {\n const updatedTemplate = this.removeNonImportResources();\n await this.importResources(updatedTemplate, resourcesToImport, options);\n }\n async importResources(overrideTemplate, resourcesToImport, options) {\n try {\n const result = await this.cfn.deployStack({\n stack: this.stack,\n deployName: this.stack.stackName,\n ...options,\n overrideTemplate,\n resourcesToImport,\n });\n (0, deployments_1.assertIsSuccessfulDeployStackResult)(result);\n const message = result.noOp\n ? ' ✅ %s (no changes)'\n : ' ✅ %s';\n await this.ioHelper.defaults.info('\\n' + chalk.green((0, util_1.format)(message, this.stack.displayName)));\n }\n catch (e) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E3900.msg((0, util_1.format)('\\n ❌ %s failed: %s', chalk.bold(this.stack.displayName), e), { error: e }));\n throw e;\n }\n }\n /**\n * Perform a diff between the currently running and the new template, ensure that it is valid\n * for importing and return a list of resources that are being added in the new version\n *\n * @return mapping logicalResourceId -> resourceDifference\n */\n async discoverImportableResources(allowNonAdditions = false) {\n const currentTemplate = await this.currentTemplate();\n const diff = cfnDiff.fullDiff(currentTemplate, this.stack.template);\n // Ignore changes to CDKMetadata\n const resourceChanges = Object.entries(diff.resources.changes)\n .filter(([logicalId, _]) => logicalId !== 'CDKMetadata');\n // Split the changes into additions and non-additions. Imports only make sense\n // for newly-added resources.\n const nonAdditions = resourceChanges.filter(([_, dif]) => !dif.isAddition);\n const additions = resourceChanges.filter(([_, dif]) => dif.isAddition);\n if (nonAdditions.length) {\n const offendingResources = nonAdditions.map(([logId, _]) => this.describeResource(logId));\n if (allowNonAdditions) {\n await this.ioHelper.defaults.warn(`Ignoring updated/deleted resources (--force): ${offendingResources.join(', ')}`);\n }\n else {\n throw new toolkit_error_1.ToolkitError('ImportNonAdditionChanges', 'No resource updates or deletes are allowed on import operation. Make sure to resolve pending changes ' +\n `to existing resources, before attempting an import. Updated/deleted resources: ${offendingResources.join(', ')} (--force to override)`);\n }\n }\n // Resources in the new template, that are not present in the current template, are a potential import candidates\n return {\n additions: additions.map(([logicalId, resourceDiff]) => ({\n logicalId,\n resourceDiff,\n resourceDefinition: addDefaultDeletionPolicy(this.stack.template?.Resources?.[logicalId] ?? {}),\n })),\n hasNonAdditions: nonAdditions.length > 0,\n };\n }\n /**\n * Resolves the environment of a stack.\n */\n async resolveEnvironment() {\n return this.cfn.resolveEnvironment(this.stack);\n }\n /**\n * Get currently deployed template of the given stack (SINGLETON)\n *\n * @returns Currently deployed CloudFormation template\n */\n async currentTemplate() {\n if (!this._currentTemplate) {\n this._currentTemplate = await this.cfn.readCurrentTemplate(this.stack);\n }\n return this._currentTemplate;\n }\n /**\n * Return the current template, with the given resources added to it\n */\n async currentTemplateWithAdditions(additions) {\n const template = await this.currentTemplate();\n if (!template.Resources) {\n template.Resources = {};\n }\n for (const add of additions) {\n template.Resources[add.logicalId] = add.resourceDefinition;\n }\n return template;\n }\n /**\n * Get a list of import identifiers for all resource types used in the given\n * template that do support the import operation (SINGLETON)\n *\n * @returns a mapping from a resource type to a list of property names that together identify the resource for import\n */\n async resourceIdentifiers() {\n const ret = {};\n const resourceIdentifierSummaries = await this.cfn.resourceIdentifierSummaries(this.stack);\n for (const summary of resourceIdentifierSummaries) {\n if ('ResourceType' in summary && summary.ResourceType && 'ResourceIdentifiers' in summary && summary.ResourceIdentifiers) {\n ret[summary.ResourceType] = (summary.ResourceIdentifiers ?? [])?.map(x => x.split(','));\n }\n }\n return ret;\n }\n /**\n * Ask for the importable identifier for the given resource\n *\n * There may be more than one identifier under which a resource can be imported. The `import`\n * operation needs exactly one of them.\n *\n * - If we can get one from the template, we will use one.\n * - Otherwise, we will ask the user for one of them.\n */\n async askForResourceIdentifier(resourceIdentifiers, chg) {\n const resourceName = this.describeResource(chg.logicalId);\n // Skip resources that do not support importing\n const resourceType = chg.resourceDiff.newResourceType;\n if (resourceType === undefined || !(resourceType in resourceIdentifiers)) {\n await this.ioHelper.defaults.warn(`${resourceName}: unsupported resource type ${resourceType}, skipping import.`);\n return undefined;\n }\n const idPropSets = resourceIdentifiers[resourceType];\n // Retain only literal strings: strip potential CFN intrinsics\n const resourceProps = Object.fromEntries(Object.entries(chg.resourceDefinition.Properties ?? {})\n .filter(([_, v]) => typeof v === 'string'));\n // Find property sets that are fully satisfied in the template, ask the user to confirm them\n const satisfiedPropSets = idPropSets.filter(ps => ps.every(p => resourceProps[p]));\n for (const satisfiedPropSet of satisfiedPropSets) {\n const candidateProps = Object.fromEntries(satisfiedPropSet.map(p => [p, resourceProps[p]]));\n const displayCandidateProps = fmtdict(candidateProps);\n const importTheResource = await this.ioHelper.requestResponse(private_1.IO.CDK_TOOLKIT_I3100.req(`${chalk.blue(resourceName)} (${resourceType}): import with ${chalk.yellow(displayCandidateProps)}`, {\n resource: {\n type: resourceType,\n props: candidateProps,\n stringifiedProps: displayCandidateProps,\n },\n }));\n if (importTheResource) {\n return candidateProps;\n }\n }\n // If we got here and the user rejected any available identifiers, then apparently they don't want the resource at all\n if (satisfiedPropSets.length > 0) {\n await this.ioHelper.defaults.info(chalk.grey(`Skipping import of ${resourceName}`));\n return undefined;\n }\n // We cannot auto-import this, ask the user for one of the props\n // The only difference between these cases is what we print: for multiple properties, we print a preamble\n const prefix = `${chalk.blue(resourceName)} (${resourceType})`;\n const promptPattern = `${prefix}: enter %s`;\n if (idPropSets.length > 1) {\n const preamble = `${prefix}: enter one of ${idPropSets.map(x => chalk.blue(x.join('+'))).join(', ')} to import (leave all empty to skip)`;\n await this.ioHelper.defaults.info(preamble);\n }\n // Do the input loop here\n for (const idProps of idPropSets) {\n const input = {};\n for (const idProp of idProps) {\n // If we have a value from the template, use it as default. This will only be a partial\n // identifier if present, otherwise we would have done the import already above.\n const defaultValue = resourceProps[idProp] ?? '';\n const response = await this.ioHelper.requestResponse(private_1.IO.CDK_TOOLKIT_I3110.req((0, util_1.format)(promptPattern, chalk.blue(idProp)), {\n resource: {\n name: resourceName,\n type: resourceType,\n idProp,\n },\n responseDescription: defaultValue ? undefined : 'empty to skip',\n }, defaultValue));\n if (!response) {\n break;\n }\n input[idProp] = response;\n // Also stick this property into 'resourceProps', so that it may be reused by a subsequent question\n // (for a different compound identifier that involves the same property). Just a small UX enhancement.\n resourceProps[idProp] = response;\n }\n // If the user gave inputs for all values, we are complete\n if (Object.keys(input).length === idProps.length) {\n return input;\n }\n }\n await this.ioHelper.defaults.info(chalk.grey(`Skipping import of ${resourceName}`));\n return undefined;\n }\n /**\n * Convert the internal \"resource mapping\" structure to CloudFormation accepted \"ResourcesToImport\" structure\n */\n async makeResourcesToImport(resourceMap) {\n return resourceMap.importResources.map(res => ({\n LogicalResourceId: res.logicalId,\n ResourceType: res.resourceDiff.newResourceType,\n ResourceIdentifier: resourceMap.resourceMap[res.logicalId],\n }));\n }\n /**\n * Convert CloudFormation logical resource ID to CDK construct tree path\n *\n * @param logicalId - CloudFormation logical ID of the resource (the key in the template's Resources section)\n * @returns Forward-slash separated path of the resource in CDK construct tree, e.g. MyStack/MyBucket/Resource\n */\n describeResource(logicalId) {\n return this.stack.template?.Resources?.[logicalId]?.Metadata?.['aws:cdk:path'] ?? logicalId;\n }\n /**\n * Removes CDKMetadata and Outputs in the template so that only resources for importing are left.\n * @returns template with import resources only\n */\n removeNonImportResources() {\n return removeNonImportResources(this.stack);\n }\n}\nexports.ResourceImporter = ResourceImporter;\nfunction fmtdict(xs) {\n return Object.entries(xs).map(([k, v]) => `${k}=${v}`).join(', ');\n}\n/**\n * Add a default `DeletionPolicy` policy.\n * The default value is set to 'Retain', to lower risk of unintentionally\n * deleting stateful resources in the process of importing to CDK.\n */\nfunction addDefaultDeletionPolicy(resource) {\n if (resource.DeletionPolicy) {\n return resource;\n }\n return {\n ...resource,\n DeletionPolicy: 'Retain',\n };\n}\nfunction removeNonImportResources(stack) {\n const template = stack.template;\n delete template.Resources.CDKMetadata;\n delete template.Outputs;\n return template;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2ZkEsNERBS0M7QUFsZ0JELCtCQUE4QjtBQUU5Qix3REFBd0Q7QUFHeEQsK0JBQStCO0FBQy9CLCtCQUErQjtBQUUvQiwrREFBMkQ7QUFFM0QsZ0RBQXFFO0FBQ3JFLDJDQUFrRDtBQW1GbEQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFDbkIsZ0JBQWdCLENBQU07SUFFYixLQUFLLENBQW9DO0lBQ3pDLEdBQUcsQ0FBYztJQUNqQixRQUFRLENBQVc7SUFFcEMsWUFDRSxLQUF3QyxFQUN4QyxLQUE0QjtRQUU1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxTQUErQjtRQUNwRSxNQUFNLEdBQUcsR0FBYyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUU3RCxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsU0FBUztZQUNYLENBQUM7WUFFRCxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FB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QVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2hDLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDdEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3hCLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGNmbkRpZmYgZnJvbSAnQGF3cy1jZGsvY2xvdWRmb3JtYXRpb24tZGlmZic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRGlmZmVyZW5jZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJ5LCBSZXNvdXJjZVRvSW1wb3J0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudE1ldGhvZCB9IGZyb20gJy4uLy4uL2FjdGlvbnMvZGVwbG95JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgYXNzZXJ0SXNTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi9kZXBsb3ltZW50cyc7XG5pbXBvcnQgeyBJTywgdHlwZSBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBUYWcgfSBmcm9tICcuLi90YWdzJztcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VzVG9JbXBvcnQgPSBSZXNvdXJjZVRvSW1wb3J0W107XG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXMgPSBSZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJ5W107XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbXBvcnRlclByb3BzIHtcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzO1xuICBpb0hlbHBlcjogSW9IZWxwZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0RGVwbG95bWVudE9wdGlvbnMge1xuICAvKipcbiAgICogUm9sZSB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBzdGFjayByb2xlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IG1ldGhvZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENoYW5nZSBzZXQgd2l0aCBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0YWdzIChwYXNzIHRocm91Z2ggdG8gQ2xvdWRGb3JtYXRpb24pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBVc2UgcHJldmlvdXMgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIElmIG5vdCBzZXQsIGFsbCBwYXJhbWV0ZXJzIG11c3QgYmUgc3BlY2lmaWVkIGZvciBldmVyeSBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VQcmV2aW91c1BhcmFtZXRlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSb2xsYmFjayBmYWlsZWQgZGVwbG95bWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sbGJhY2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFNldCBvZiBwYXJhbWV0ZXJzIHRoYXQgdW5pcXVlbHkgaWRlbnRpZnkgYSBwaHlzaWNhbCByZXNvdXJjZSBvZiBhIGdpdmVuIHR5cGVcbiAqIGZvciB0aGUgaW1wb3J0IG9wZXJhdGlvbiwgZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAgXCJBV1M6OlMzOjpCdWNrZXRcIjogW1tcIkJ1Y2tldE5hbWVcIl1dLFxuICogICBcIkFXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlXCI6IFtbXCJUYWJsZU5hbWVcIl0sIFtcIlRhYmxlQXJuXCJdLCBbXCJUYWJsZVN0cmVhbUFyblwiXV0sXG4gKiAgIFwiQVdTOjpSb3V0ZTUzOjpLZXlTaWduaW5nS2V5XCI6IFtbXCJIb3N0ZWRab25lSWRcIiwgXCJOYW1lXCJdXSxcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkZW50aWZpZXJzID0geyBbcmVzb3VyY2VUeXBlOiBzdHJpbmddOiBzdHJpbmdbXVtdIH07XG5cbnR5cGUgUmVzb3VyY2VJZGVudGlmaWVyUHJvcGVydGllcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogTWFwcGluZyBvZiBDREsgcmVzb3VyY2VzIChMMSBjb25zdHJ1Y3RzKSB0byBwaHlzaWNhbCByZXNvdXJjZXMgdG8gYmUgaW1wb3J0ZWRcbiAqIGluIHRoZWlyIHBsYWNlLCBleGFtcGxlOlxuICpcbiAqIGBgYFxuICoge1xuICogICBcIk15U3RhY2svTXlTM0J1Y2tldC9SZXNvdXJjZVwiOiB7XG4gKiAgICAgXCJCdWNrZXROYW1lXCI6IFwibXktbWFudWFsbHktY3JlYXRlZC1zMy1idWNrZXRcIlxuICogICB9LFxuICogICBcIk15U3RhY2svTXlWcGMvUmVzb3VyY2VcIjoge1xuICogICAgIFwiVnBjSWRcIjogXCJ2cGMtMTIzNDU2Nzg5XCJcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbnR5cGUgUmVzb3VyY2VNYXAgPSB7IFtsb2dpY2FsUmVzb3VyY2U6IHN0cmluZ106IFJlc291cmNlSWRlbnRpZmllclByb3BlcnRpZXMgfTtcblxuLyoqXG4gKiBSZXNvdXJjZSBpbXBvcnRpbmcgdXRpbGl0eSBjbGFzc1xuICpcbiAqIC0gRGV0ZXJtaW5lcyB0aGUgcmVzb3VyY2VzIGFkZGVkIHRvIGEgdGVtcGxhdGUgKGNvbXBhcmVkIHRvIHRoZSBkZXBsb3llZCB2ZXJzaW9uKVxuICogLSBMb29rIHVwIHRoZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvblxuICogICAtIExvYWQgdGhlbSBmcm9tIGEgZmlsZSwgb3JcbiAqICAgLSBBc2sgdGhlIHVzZXIsIGJhc2VkIG9uIGluZm9ybWF0aW9uIHN1cHBsaWVkIHRvIHVzIGJ5IENsb3VkRm9ybWF0aW9uJ3MgR2V0VGVtcGxhdGVTdW1tYXJ5XG4gKiAtIFRyYW5zbGF0ZSB0aGUgaW5wdXQgdG8gYSBzdHJ1Y3R1cmUgZXhwZWN0ZWQgYnkgQ2xvdWRGb3JtYXRpb24sIHVwZGF0ZSB0aGUgdGVtcGxhdGUgdG8gYWRkIHRoZVxuICogICBpbXBvcnRhYmxlIHJlc291cmNlcywgdGhlbiBydW4gYW4gSU1QT1JUIGNoYW5nZXNldC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlSW1wb3J0ZXIge1xuICBwcml2YXRlIF9jdXJyZW50VGVtcGxhdGU6IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2ZuOiBEZXBsb3ltZW50cztcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgICBwcm9wczogUmVzb3VyY2VJbXBvcnRlclByb3BzLFxuICApIHtcbiAgICB0aGlzLnN0YWNrID0gc3RhY2s7XG4gICAgdGhpcy5jZm4gPSBwcm9wcy5kZXBsb3ltZW50cztcbiAgICB0aGlzLmlvSGVscGVyID0gcHJvcHMuaW9IZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICogQXNrIHRoZSB1c2VyIGZvciByZXNvdXJjZXMgdG8gaW1wb3J0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYXNrRm9yUmVzb3VyY2VJZGVudGlmaWVycyhhdmFpbGFibGU6IEltcG9ydGFibGVSZXNvdXJjZVtdKTogUHJvbWlzZTxJbXBvcnRNYXA+IHtcbiAgICBjb25zdCByZXQ6IEltcG9ydE1hcCA9IHsgaW1wb3J0UmVzb3VyY2VzOiBbXSwgcmVzb3VyY2VNYXA6IHt9IH07XG4gICAgY29uc3QgcmVzb3VyY2VJZGVudGlmaWVycyA9IGF3YWl0IHRoaXMucmVzb3VyY2VJZGVudGlmaWVycygpO1xuXG4gICAgZm9yIChjb25zdCByZXNvdXJjZSBvZiBhdmFpbGFibGUpIHtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBhd2FpdCB0aGlzLmFza0ZvclJlc291cmNlSWRlbnRpZmllcihyZXNvdXJjZUlkZW50aWZpZXJzLCByZXNvdXJjZSk7XG4gICAgICBpZiAoIWlkZW50aWZpZXIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHJldC5pbXBvcnRSZXNvdXJjZXMucHVzaChyZXNvdXJjZSk7XG4gICAgICByZXQucmVzb3VyY2VNYXBbcmVzb3VyY2UubG9naWNhbElkXSA9IGlkZW50aWZpZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSByZXNvdXJjZXMgdG8gaW1wb3J0IGZyb20gYSBmaWxlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZFJlc291cmNlSWRlbnRpZmllcnMoYXZhaWxhYmxlOiBJbXBvcnRhYmxlUmVzb3VyY2VbXSwgZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8SW1wb3J0TWFwPiB7XG4gICAgY29uc3QgY29udGVudHMgPSBhd2FpdCBmcy5yZWFkSnNvbihmaWxlbmFtZSk7XG5cbiAgICBjb25zdCByZXQ6IEltcG9ydE1hcCA9IHsgaW1wb3J0UmVzb3VyY2VzOiBbXSwgcmVzb3VyY2VNYXA6IHt9IH07XG4gICAgZm9yIChjb25zdCByZXNvdXJjZSBvZiBhdmFpbGFibGUpIHtcbiAgICAgIGNvbnN0IGRlc2NyID0gdGhpcy5kZXNjcmliZVJlc291cmNlKHJlc291cmNlLmxvZ2ljYWxJZCk7XG4gICAgICBjb25zdCBpZFByb3BzID0gY29udGVudHNbcmVzb3VyY2UubG9naWNhbElkXTtcbiAgICAgIGlmIChpZFByb3BzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXQoJyVzOiBpbXBvcnRpbmcgdXNpbmcgJXMnLCBjaGFsay5ibHVlKGRlc2NyKSwgY2hhbGsuYmx1ZShmbXRkaWN0KGlkUHJvcHMpKSkpO1xuXG4gICAgICAgIHJldC5pbXBvcnRSZXNvdXJjZXMucHVzaChyZXNvdXJjZSk7XG4gICAgICAgIHJldC5yZXNvdXJjZU1hcFtyZXNvdXJjZS5sb2dpY2FsSWRdID0gaWRQcm9wcztcbiAgICAgICAgZGVsZXRlIGNvbnRlbnRzW3Jlc291cmNlLmxvZ2ljYWxJZF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmluZm8oZm9ybWF0KCclczogc2tpcHBpbmcnLCBjaGFsay5ibHVlKGRlc2NyKSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHVua25vd24gPSBPYmplY3Qua2V5cyhjb250ZW50cyk7XG4gICAgaWYgKHVua25vd24ubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKGBVbnJlY29nbml6ZWQgcmVzb3VyY2UgaWRlbnRpZmllcnMgaW4gbWFwcGluZyBmaWxlOiAke3Vua25vd24uam9pbignLCAnKX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEJhc2VkIG9uIHRoZSBwcm92aWRlZCByZXNvdXJjZSBtYXBwaW5nLCBwcmVwYXJlIENGTiBzdHJ1Y3R1cmVzIGZvciBpbXBvcnQgKHRlbXBsYXRlLFxuICAgKiBSZXNvdXJjZXNUb0ltcG9ydCBzdHJ1Y3R1cmUpIGFuZCBwZXJmb3JtIHRoZSBpbXBvcnQgb3BlcmF0aW9uIChDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50KVxuICAgKlxuICAgKiBAcGFyYW0gaW1wb3J0TWFwIC0gTWFwcGluZyBmcm9tIENESyBjb25zdHJ1Y3QgdHJlZSBwYXRoIHRvIHBoeXNpY2FsIHJlc291cmNlIGltcG9ydCBpZGVudGlmaWVyc1xuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBkZXBsb3kgb3BlcmF0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaW1wb3J0UmVzb3VyY2VzRnJvbU1hcChpbXBvcnRNYXA6IEltcG9ydE1hcCwgb3B0aW9uczogSW1wb3J0RGVwbG95bWVudE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHJlc291cmNlc1RvSW1wb3J0OiBSZXNvdXJjZXNUb0ltcG9ydCA9IGF3YWl0IHRoaXMubWFrZVJlc291cmNlc1RvSW1wb3J0KGltcG9ydE1hcCk7XG4gICAgY29uc3QgdXBkYXRlZFRlbXBsYXRlID0gYXdhaXQgdGhpcy5jdXJyZW50VGVtcGxhdGVXaXRoQWRkaXRpb25zKGltcG9ydE1hcC5pbXBvcnRSZXNvdXJjZXMpO1xuXG4gICAgYXdhaXQgdGhpcy5pbXBvcnRSZXNvdXJjZXModXBkYXRlZFRlbXBsYXRlLCByZXNvdXJjZXNUb0ltcG9ydCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQmFzZWQgb24gdGhlIGFwcCBhbmQgcmVzb3VyY2VzIGZpbGUgZ2VuZXJhdGVkIGJ5IGNkayBtaWdyYXRlLiBSZW1vdmVzIGFsbCBpdGVtcyBmcm9tIHRoZSB0ZW1wbGF0ZSB0aGF0XG4gICAqIGNhbm5vdCBiZSBpbmNsdWRlZCBpbiBhbiBpbXBvcnQgY2hhbmdlLXNldCBmb3IgbmV3IHN0YWNrcyBhbmQgcGVyZm9ybXMgdGhlIGltcG9ydCBvcGVyYXRpb24sXG4gICAqIGNyZWF0aW5nIHRoZSBuZXcgc3RhY2suXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZXNUb0ltcG9ydCAtIFRoZSBtYXBwaW5nIGNyZWF0ZWQgYnkgY2RrIG1pZ3JhdGVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIHRvIHBhc3MgdG8gQ2xvdWRGb3JtYXRpb24gZGVwbG95IG9wZXJhdGlvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGltcG9ydFJlc291cmNlc0Zyb21NaWdyYXRlKHJlc291cmNlc1RvSW1wb3J0OiBSZXNvdXJjZXNUb0ltcG9ydCwgb3B0aW9uczogSW1wb3J0RGVwbG95bWVudE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHVwZGF0ZWRUZW1wbGF0ZSA9IHRoaXMucmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKCk7XG5cbiAgICBhd2FpdCB0aGlzLmltcG9ydFJlc291cmNlcyh1cGRhdGVkVGVtcGxhdGUsIHJlc291cmNlc1RvSW1wb3J0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW1wb3J0UmVzb3VyY2VzKG92ZXJyaWRlVGVtcGxhdGU6IGFueSwgcmVzb3VyY2VzVG9JbXBvcnQ6IFJlc291cmNlc1RvSW1wb3J0LCBvcHRpb25zOiBJbXBvcnREZXBsb3ltZW50T3B0aW9ucykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNmbi5kZXBsb3lTdGFjayh7XG4gICAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgICBkZXBsb3lOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgb3ZlcnJpZGVUZW1wbGF0ZSxcbiAgICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICB9KTtcblxuICAgICAgYXNzZXJ0SXNTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQocmVzdWx0KTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3VsdC5ub09wXG4gICAgICAgID8gJyDinIUgICVzIChubyBjaGFuZ2VzKSdcbiAgICAgICAgOiAnIOKchSAgJXMnO1xuXG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ1xcbicgKyBjaGFsay5ncmVlbihmb3JtYXQobWVzc2FnZSwgdGhpcy5zdGFjay5kaXNwbGF5TmFtZSkpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FMzkwMC5tc2coZm9ybWF0KCdcXG4g4p2MICAlcyBmYWlsZWQ6ICVzJywgY2hhbGsuYm9sZCh0aGlzLnN0YWNrLmRpc3BsYXlOYW1lKSwgZSksIHsgZXJyb3I6IGUgYXMgYW55IH0pKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYSBkaWZmIGJldHdlZW4gdGhlIGN1cnJlbnRseSBydW5uaW5nIGFuZCB0aGUgbmV3IHRlbXBsYXRlLCBlbnN1cmUgdGhhdCBpdCBpcyB2YWxpZFxuICAgKiBmb3IgaW1wb3J0aW5nIGFuZCByZXR1cm4gYSBsaXN0IG9mIHJlc291cmNlcyB0aGF0IGFyZSBiZWluZyBhZGRlZCBpbiB0aGUgbmV3IHZlcnNpb25cbiAgICpcbiAgICogQHJldHVybiBtYXBwaW5nIGxvZ2ljYWxSZXNvdXJjZUlkIC0+IHJlc291cmNlRGlmZmVyZW5jZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVySW1wb3J0YWJsZVJlc291cmNlcyhhbGxvd05vbkFkZGl0aW9ucyA9IGZhbHNlKTogUHJvbWlzZTxEaXNjb3ZlckltcG9ydGFibGVSZXNvdXJjZXNSZXN1bHQ+IHtcbiAgICBjb25zdCBjdXJyZW50VGVtcGxhdGUgPSBhd2FpdCB0aGlzLmN1cnJlbnRUZW1wbGF0ZSgpO1xuXG4gICAgY29uc3QgZGlmZiA9IGNmbkRpZmYuZnVsbERpZmYoY3VycmVudFRlbXBsYXRlLCB0aGlzLnN0YWNrLnRlbXBsYXRlKTtcblxuICAgIC8vIElnbm9yZSBjaGFuZ2VzIHRvIENES01ldGFkYXRhXG4gICAgY29uc3QgcmVzb3VyY2VDaGFuZ2VzID0gT2JqZWN0LmVudHJpZXMoZGlmZi5yZXNvdXJjZXMuY2hhbmdlcylcbiAgICAgIC5maWx0ZXIoKFtsb2dpY2FsSWQsIF9dKSA9PiBsb2dpY2FsSWQgIT09ICdDREtNZXRhZGF0YScpO1xuXG4gICAgLy8gU3BsaXQgdGhlIGNoYW5nZXMgaW50byBhZGRpdGlvbnMgYW5kIG5vbi1hZGRpdGlvbnMuIEltcG9ydHMgb25seSBtYWtlIHNlbnNlXG4gICAgLy8gZm9yIG5ld2x5LWFkZGVkIHJlc291cmNlcy5cbiAgICBjb25zdCBub25BZGRpdGlvbnMgPSByZXNvdXJjZUNoYW5nZXMuZmlsdGVyKChbXywgZGlmXSkgPT4gIWRpZi5pc0FkZGl0aW9uKTtcbiAgICBjb25zdCBhZGRpdGlvbnMgPSByZXNvdXJjZUNoYW5nZXMuZmlsdGVyKChbXywgZGlmXSkgPT4gZGlmLmlzQWRkaXRpb24pO1xuXG4gICAgaWYgKG5vbkFkZGl0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG9mZmVuZGluZ1Jlc291cmNlcyA9IG5vbkFkZGl0aW9ucy5tYXAoKFtsb2dJZCwgX10pID0+IHRoaXMuZGVzY3JpYmVSZXNvdXJjZShsb2dJZCkpO1xuXG4gICAgICBpZiAoYWxsb3dOb25BZGRpdGlvbnMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKGBJZ25vcmluZyB1cGRhdGVkL2RlbGV0ZWQgcmVzb3VyY2VzICgtLWZvcmNlKTogJHtvZmZlbmRpbmdSZXNvdXJjZXMuam9pbignLCAnKX1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ltcG9ydE5vbkFkZGl0aW9uQ2hhbmdlcycsICdObyByZXNvdXJjZSB1cGRhdGVzIG9yIGRlbGV0ZXMgYXJlIGFsbG93ZWQgb24gaW1wb3J0IG9wZXJhdGlvbi4gTWFrZSBzdXJlIHRvIHJlc29sdmUgcGVuZGluZyBjaGFuZ2VzICcgK1xuICAgICAgICAgIGB0byBleGlzdGluZyByZXNvdXJjZXMsIGJlZm9yZSBhdHRlbXB0aW5nIGFuIGltcG9ydC4gVXBkYXRlZC9kZWxldGVkIHJlc291cmNlczogJHtvZmZlbmRpbmdSZXNvdXJjZXMuam9pbignLCAnKX0gKC0tZm9yY2UgdG8gb3ZlcnJpZGUpYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzb3VyY2VzIGluIHRoZSBuZXcgdGVtcGxhdGUsIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIHRoZSBjdXJyZW50IHRlbXBsYXRlLCBhcmUgYSBwb3RlbnRpYWwgaW1wb3J0IGNhbmRpZGF0ZXNcbiAgICByZXR1cm4ge1xuICAgICAgYWRkaXRpb25zOiBhZGRpdGlvbnMubWFwKChbbG9naWNhbElkLCByZXNvdXJjZURpZmZdKSA9PiAoe1xuICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgIHJlc291cmNlRGlmZixcbiAgICAgICAgcmVzb3VyY2VEZWZpbml0aW9uOiBhZGREZWZhdWx0RGVsZXRpb25Qb2xpY3kodGhpcy5zdGFjay50ZW1wbGF0ZT8uUmVzb3VyY2VzPy5bbG9naWNhbElkXSA/PyB7fSksXG4gICAgICB9KSksXG4gICAgICBoYXNOb25BZGRpdGlvbnM6IG5vbkFkZGl0aW9ucy5sZW5ndGggPiAwLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGVudmlyb25tZW50IG9mIGEgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZUVudmlyb25tZW50KCk6IFByb21pc2U8Y3hhcGkuRW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jZm4ucmVzb2x2ZUVudmlyb25tZW50KHRoaXMuc3RhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50bHkgZGVwbG95ZWQgdGVtcGxhdGUgb2YgdGhlIGdpdmVuIHN0YWNrIChTSU5HTEVUT04pXG4gICAqXG4gICAqIEByZXR1cm5zIEN1cnJlbnRseSBkZXBsb3llZCBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjdXJyZW50VGVtcGxhdGUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRUZW1wbGF0ZSkge1xuICAgICAgdGhpcy5fY3VycmVudFRlbXBsYXRlID0gYXdhaXQgdGhpcy5jZm4ucmVhZEN1cnJlbnRUZW1wbGF0ZSh0aGlzLnN0YWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUZW1wbGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgdGVtcGxhdGUsIHdpdGggdGhlIGdpdmVuIHJlc291cmNlcyBhZGRlZCB0byBpdFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjdXJyZW50VGVtcGxhdGVXaXRoQWRkaXRpb25zKGFkZGl0aW9uczogSW1wb3J0YWJsZVJlc291cmNlW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgdGhpcy5jdXJyZW50VGVtcGxhdGUoKTtcbiAgICBpZiAoIXRlbXBsYXRlLlJlc291cmNlcykge1xuICAgICAgdGVtcGxhdGUuUmVzb3VyY2VzID0ge307XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhZGQgb2YgYWRkaXRpb25zKSB7XG4gICAgICB0ZW1wbGF0ZS5SZXNvdXJjZXNbYWRkLmxvZ2ljYWxJZF0gPSBhZGQucmVzb3VyY2VEZWZpbml0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiB0ZW1wbGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGltcG9ydCBpZGVudGlmaWVycyBmb3IgYWxsIHJlc291cmNlIHR5cGVzIHVzZWQgaW4gdGhlIGdpdmVuXG4gICAqIHRlbXBsYXRlIHRoYXQgZG8gc3VwcG9ydCB0aGUgaW1wb3J0IG9wZXJhdGlvbiAoU0lOR0xFVE9OKVxuICAgKlxuICAgKiBAcmV0dXJucyBhIG1hcHBpbmcgZnJvbSBhIHJlc291cmNlIHR5cGUgdG8gYSBsaXN0IG9mIHByb3BlcnR5IG5hbWVzIHRoYXQgdG9nZXRoZXIgaWRlbnRpZnkgdGhlIHJlc291cmNlIGZvciBpbXBvcnRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVzb3VyY2VJZGVudGlmaWVycygpOiBQcm9taXNlPFJlc291cmNlSWRlbnRpZmllcnM+IHtcbiAgICBjb25zdCByZXQ6IFJlc291cmNlSWRlbnRpZmllcnMgPSB7fTtcbiAgICBjb25zdCByZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXMgPSBhd2FpdCB0aGlzLmNmbi5yZXNvdXJjZUlkZW50aWZpZXJTdW1tYXJpZXModGhpcy5zdGFjayk7XG4gICAgZm9yIChjb25zdCBzdW1tYXJ5IG9mIHJlc291cmNlSWRlbnRpZmllclN1bW1hcmllcykge1xuICAgICAgaWYgKCdSZXNvdXJjZVR5cGUnIGluIHN1bW1hcnkgJiYgc3VtbWFyeS5SZXNvdXJjZVR5cGUgJiYgJ1Jlc291cmNlSWRlbnRpZmllcnMnIGluIHN1bW1hcnkgJiYgc3VtbWFyeS5SZXNvdXJjZUlkZW50aWZpZXJzKSB7XG4gICAgICAgIHJldFtzdW1tYXJ5LlJlc291cmNlVHlwZV0gPSAoc3VtbWFyeS5SZXNvdXJjZUlkZW50aWZpZXJzID8/IFtdKT8ubWFwKHggPT4geC5zcGxpdCgnLCcpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc2sgZm9yIHRoZSBpbXBvcnRhYmxlIGlkZW50aWZpZXIgZm9yIHRoZSBnaXZlbiByZXNvdXJjZVxuICAgKlxuICAgKiBUaGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBpZGVudGlmaWVyIHVuZGVyIHdoaWNoIGEgcmVzb3VyY2UgY2FuIGJlIGltcG9ydGVkLiBUaGUgYGltcG9ydGBcbiAgICogb3BlcmF0aW9uIG5lZWRzIGV4YWN0bHkgb25lIG9mIHRoZW0uXG4gICAqXG4gICAqIC0gSWYgd2UgY2FuIGdldCBvbmUgZnJvbSB0aGUgdGVtcGxhdGUsIHdlIHdpbGwgdXNlIG9uZS5cbiAgICogLSBPdGhlcndpc2UsIHdlIHdpbGwgYXNrIHRoZSB1c2VyIGZvciBvbmUgb2YgdGhlbS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYXNrRm9yUmVzb3VyY2VJZGVudGlmaWVyKFxuICAgIHJlc291cmNlSWRlbnRpZmllcnM6IFJlc291cmNlSWRlbnRpZmllcnMsXG4gICAgY2hnOiBJbXBvcnRhYmxlUmVzb3VyY2UsXG4gICk6IFByb21pc2U8UmVzb3VyY2VJZGVudGlmaWVyUHJvcGVydGllcyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IHRoaXMuZGVzY3JpYmVSZXNvdXJjZShjaGcubG9naWNhbElkKTtcblxuICAgIC8vIFNraXAgcmVzb3VyY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaW1wb3J0aW5nXG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gY2hnLnJlc291cmNlRGlmZi5uZXdSZXNvdXJjZVR5cGU7XG4gICAgaWYgKHJlc291cmNlVHlwZSA9PT0gdW5kZWZpbmVkIHx8ICEocmVzb3VyY2VUeXBlIGluIHJlc291cmNlSWRlbnRpZmllcnMpKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLndhcm4oYCR7cmVzb3VyY2VOYW1lfTogdW5zdXBwb3J0ZWQgcmVzb3VyY2UgdHlwZSAke3Jlc291cmNlVHlwZX0sIHNraXBwaW5nIGltcG9ydC5gKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgaWRQcm9wU2V0cyA9IHJlc291cmNlSWRlbnRpZmllcnNbcmVzb3VyY2VUeXBlXTtcblxuICAgIC8vIFJldGFpbiBvbmx5IGxpdGVyYWwgc3RyaW5nczogc3RyaXAgcG90ZW50aWFsIENGTiBpbnRyaW5zaWNzXG4gICAgY29uc3QgcmVzb3VyY2VQcm9wcyA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhjaGcucmVzb3VyY2VEZWZpbml0aW9uLlByb3BlcnRpZXMgPz8ge30pXG4gICAgICAuZmlsdGVyKChbXywgdl0pID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJykpIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICAvLyBGaW5kIHByb3BlcnR5IHNldHMgdGhhdCBhcmUgZnVsbHkgc2F0aXNmaWVkIGluIHRoZSB0ZW1wbGF0ZSwgYXNrIHRoZSB1c2VyIHRvIGNvbmZpcm0gdGhlbVxuICAgIGNvbnN0IHNhdGlzZmllZFByb3BTZXRzID0gaWRQcm9wU2V0cy5maWx0ZXIocHMgPT4gcHMuZXZlcnkocCA9PiByZXNvdXJjZVByb3BzW3BdKSk7XG4gICAgZm9yIChjb25zdCBzYXRpc2ZpZWRQcm9wU2V0IG9mIHNhdGlzZmllZFByb3BTZXRzKSB7XG4gICAgICBjb25zdCBjYW5kaWRhdGVQcm9wcyA9IE9iamVjdC5mcm9tRW50cmllcyhzYXRpc2ZpZWRQcm9wU2V0Lm1hcChwID0+IFtwLCByZXNvdXJjZVByb3BzW3BdXSkpO1xuICAgICAgY29uc3QgZGlzcGxheUNhbmRpZGF0ZVByb3BzID0gZm10ZGljdChjYW5kaWRhdGVQcm9wcyk7XG5cbiAgICAgIGNvbnN0IGltcG9ydFRoZVJlc291cmNlID0gYXdhaXQgdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTMxMDAucmVxKGAke2NoYWxrLmJsdWUocmVzb3VyY2VOYW1lKX0gKCR7cmVzb3VyY2VUeXBlfSk6IGltcG9ydCB3aXRoICR7Y2hhbGsueWVsbG93KGRpc3BsYXlDYW5kaWRhdGVQcm9wcyl9YCwge1xuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIHR5cGU6IHJlc291cmNlVHlwZSxcbiAgICAgICAgICBwcm9wczogY2FuZGlkYXRlUHJvcHMsXG4gICAgICAgICAgc3RyaW5naWZpZWRQcm9wczogZGlzcGxheUNhbmRpZGF0ZVByb3BzLFxuICAgICAgICB9LFxuICAgICAgfSkpO1xuICAgICAgaWYgKGltcG9ydFRoZVJlc291cmNlKSB7XG4gICAgICAgIHJldHVybiBjYW5kaWRhdGVQcm9wcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBnb3QgaGVyZSBhbmQgdGhlIHVzZXIgcmVqZWN0ZWQgYW55IGF2YWlsYWJsZSBpZGVudGlmaWVycywgdGhlbiBhcHBhcmVudGx5IHRoZXkgZG9uJ3Qgd2FudCB0aGUgcmVzb3VyY2UgYXQgYWxsXG4gICAgaWYgKHNhdGlzZmllZFByb3BTZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhjaGFsay5ncmV5KGBTa2lwcGluZyBpbXBvcnQgb2YgJHtyZXNvdXJjZU5hbWV9YCkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBXZSBjYW5ub3QgYXV0by1pbXBvcnQgdGhpcywgYXNrIHRoZSB1c2VyIGZvciBvbmUgb2YgdGhlIHByb3BzXG4gICAgLy8gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIGNhc2VzIGlzIHdoYXQgd2UgcHJpbnQ6IGZvciBtdWx0aXBsZSBwcm9wZXJ0aWVzLCB3ZSBwcmludCBhIHByZWFtYmxlXG4gICAgY29uc3QgcHJlZml4ID0gYCR7Y2hhbGsuYmx1ZShyZXNvdXJjZU5hbWUpfSAoJHtyZXNvdXJjZVR5cGV9KWA7XG4gICAgY29uc3QgcHJvbXB0UGF0dGVybiA9IGAke3ByZWZpeH06IGVudGVyICVzYDtcbiAgICBpZiAoaWRQcm9wU2V0cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBwcmVhbWJsZSA9IGAke3ByZWZpeH06IGVudGVyIG9uZSBvZiAke2lkUHJvcFNldHMubWFwKHggPT4gY2hhbGsuYmx1ZSh4LmpvaW4oJysnKSkpLmpvaW4oJywgJyl9IHRvIGltcG9ydCAobGVhdmUgYWxsIGVtcHR5IHRvIHNraXApYDtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhwcmVhbWJsZSk7XG4gICAgfVxuXG4gICAgLy8gRG8gdGhlIGlucHV0IGxvb3AgaGVyZVxuICAgIGZvciAoY29uc3QgaWRQcm9wcyBvZiBpZFByb3BTZXRzKSB7XG4gICAgICBjb25zdCBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgZm9yIChjb25zdCBpZFByb3Agb2YgaWRQcm9wcykge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdmFsdWUgZnJvbSB0aGUgdGVtcGxhdGUsIHVzZSBpdCBhcyBkZWZhdWx0LiBUaGlzIHdpbGwgb25seSBiZSBhIHBhcnRpYWxcbiAgICAgICAgLy8gaWRlbnRpZmllciBpZiBwcmVzZW50LCBvdGhlcndpc2Ugd2Ugd291bGQgaGF2ZSBkb25lIHRoZSBpbXBvcnQgYWxyZWFkeSBhYm92ZS5cbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gcmVzb3VyY2VQcm9wc1tpZFByb3BdID8/ICcnO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTMxMTAucmVxKFxuICAgICAgICAgIGZvcm1hdChwcm9tcHRQYXR0ZXJuLCBjaGFsay5ibHVlKGlkUHJvcCkpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlc291cmNlOiB7XG4gICAgICAgICAgICAgIG5hbWU6IHJlc291cmNlTmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogcmVzb3VyY2VUeXBlLFxuICAgICAgICAgICAgICBpZFByb3AsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzcG9uc2VEZXNjcmlwdGlvbjogZGVmYXVsdFZhbHVlID8gdW5kZWZpbmVkIDogJ2VtcHR5IHRvIHNraXAnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICApKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFtpZFByb3BdID0gcmVzcG9uc2U7XG4gICAgICAgIC8vIEFsc28gc3RpY2sgdGhpcyBwcm9wZXJ0eSBpbnRvICdyZXNvdXJjZVByb3BzJywgc28gdGhhdCBpdCBtYXkgYmUgcmV1c2VkIGJ5IGEgc3Vic2VxdWVudCBxdWVzdGlvblxuICAgICAgICAvLyAoZm9yIGEgZGlmZmVyZW50IGNvbXBvdW5kIGlkZW50aWZpZXIgdGhhdCBpbnZvbHZlcyB0aGUgc2FtZSBwcm9wZXJ0eSkuIEp1c3QgYSBzbWFsbCBVWCBlbmhhbmNlbWVudC5cbiAgICAgICAgcmVzb3VyY2VQcm9wc1tpZFByb3BdID0gcmVzcG9uc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSB1c2VyIGdhdmUgaW5wdXRzIGZvciBhbGwgdmFsdWVzLCB3ZSBhcmUgY29tcGxldGVcbiAgICAgIGlmIChPYmplY3Qua2V5cyhpbnB1dCkubGVuZ3RoID09PSBpZFByb3BzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5pbmZvKGNoYWxrLmdyZXkoYFNraXBwaW5nIGltcG9ydCBvZiAke3Jlc291cmNlTmFtZX1gKSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoZSBpbnRlcm5hbCBcInJlc291cmNlIG1hcHBpbmdcIiBzdHJ1Y3R1cmUgdG8gQ2xvdWRGb3JtYXRpb24gYWNjZXB0ZWQgXCJSZXNvdXJjZXNUb0ltcG9ydFwiIHN0cnVjdHVyZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBtYWtlUmVzb3VyY2VzVG9JbXBvcnQocmVzb3VyY2VNYXA6IEltcG9ydE1hcCk6IFByb21pc2U8UmVzb3VyY2VzVG9JbXBvcnQ+IHtcbiAgICByZXR1cm4gcmVzb3VyY2VNYXAuaW1wb3J0UmVzb3VyY2VzLm1hcChyZXMgPT4gKHtcbiAgICAgIExvZ2ljYWxSZXNvdXJjZUlkOiByZXMubG9naWNhbElkLFxuICAgICAgUmVzb3VyY2VUeXBlOiByZXMucmVzb3VyY2VEaWZmLm5ld1Jlc291cmNlVHlwZSEsXG4gICAgICBSZXNvdXJjZUlkZW50aWZpZXI6IHJlc291cmNlTWFwLnJlc291cmNlTWFwW3Jlcy5sb2dpY2FsSWRdLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgcmVzb3VyY2UgSUQgdG8gQ0RLIGNvbnN0cnVjdCB0cmVlIHBhdGhcbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCAtIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlICh0aGUga2V5IGluIHRoZSB0ZW1wbGF0ZSdzIFJlc291cmNlcyBzZWN0aW9uKVxuICAgKiBAcmV0dXJucyBGb3J3YXJkLXNsYXNoIHNlcGFyYXRlZCBwYXRoIG9mIHRoZSByZXNvdXJjZSBpbiBDREsgY29uc3RydWN0IHRyZWUsIGUuZy4gTXlTdGFjay9NeUJ1Y2tldC9SZXNvdXJjZVxuICAgKi9cbiAgcHJpdmF0ZSBkZXNjcmliZVJlc291cmNlKGxvZ2ljYWxJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjay50ZW1wbGF0ZT8uUmVzb3VyY2VzPy5bbG9naWNhbElkXT8uTWV0YWRhdGE/LlsnYXdzOmNkazpwYXRoJ10gPz8gbG9naWNhbElkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgQ0RLTWV0YWRhdGEgYW5kIE91dHB1dHMgaW4gdGhlIHRlbXBsYXRlIHNvIHRoYXQgb25seSByZXNvdXJjZXMgZm9yIGltcG9ydGluZyBhcmUgbGVmdC5cbiAgICogQHJldHVybnMgdGVtcGxhdGUgd2l0aCBpbXBvcnQgcmVzb3VyY2VzIG9ubHlcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKCkge1xuICAgIHJldHVybiByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXModGhpcy5zdGFjayk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZSB0aGF0IGlzIGltcG9ydGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRhYmxlUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBsb2dpY2FsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGRlZmluaXRpb24gaW4gdGhlIG5ldyB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VEZWZpbml0aW9uOiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSBkaWZmIGFzIHJlcG9ydGVkIGJ5IGBjbG91ZGZvcm1hdGlvbi1kaWZmYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlRGlmZjogUmVzb3VyY2VEaWZmZXJlbmNlO1xufVxuXG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgdG8gZXhlY3V0ZSBhbiBpbXBvcnQgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0TWFwIHtcbiAgLyoqXG4gICAqIE1hcHBpbmcgbG9naWNhbCBJRHMgdG8gcGh5c2ljYWwgbmFtZXNcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlTWFwOiBSZXNvdXJjZU1hcDtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdGlvbiBvZiByZXNvdXJjZXMgd2UgYXJlIGFjdHVhbGx5IGltcG9ydGluZ1xuICAgKlxuICAgKiBGb3IgZWFjaCBvZiB0aGUgcmVzb3VyY2VzIGluIHRoaXMgbGlzdCwgdGhlcmUgaXMgYSBjb3JyZXNwb25kaW5nIGVudHJ5IGluXG4gICAqIHRoZSBgcmVzb3VyY2VNYXBgIG1hcC5cbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydFJlc291cmNlczogSW1wb3J0YWJsZVJlc291cmNlW107XG59XG5cbmZ1bmN0aW9uIGZtdGRpY3Q8QT4oeHM6IFJlY29yZDxzdHJpbmcsIEE+KSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyh4cykubWFwKChbaywgdl0pID0+IGAke2t9PSR7dn1gKS5qb2luKCcsICcpO1xufVxuXG4vKipcbiAqIEFkZCBhIGRlZmF1bHQgYERlbGV0aW9uUG9saWN5YCBwb2xpY3kuXG4gKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ1JldGFpbicsIHRvIGxvd2VyIHJpc2sgb2YgdW5pbnRlbnRpb25hbGx5XG4gKiBkZWxldGluZyBzdGF0ZWZ1bCByZXNvdXJjZXMgaW4gdGhlIHByb2Nlc3Mgb2YgaW1wb3J0aW5nIHRvIENESy5cbiAqL1xuZnVuY3Rpb24gYWRkRGVmYXVsdERlbGV0aW9uUG9saWN5KHJlc291cmNlOiBhbnkpOiBhbnkge1xuICBpZiAocmVzb3VyY2UuRGVsZXRpb25Qb2xpY3kpIHtcbiAgICByZXR1cm4gcmVzb3VyY2U7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnJlc291cmNlLFxuICAgIERlbGV0aW9uUG9saWN5OiAnUmV0YWluJyxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNjb3ZlckltcG9ydGFibGVSZXNvdXJjZXNSZXN1bHQge1xuICByZWFkb25seSBhZGRpdGlvbnM6IEltcG9ydGFibGVSZXNvdXJjZVtdO1xuICByZWFkb25seSBoYXNOb25BZGRpdGlvbnM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMoc3RhY2s6Y3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gIGNvbnN0IHRlbXBsYXRlID0gc3RhY2sudGVtcGxhdGU7XG4gIGRlbGV0ZSB0ZW1wbGF0ZS5SZXNvdXJjZXMuQ0RLTWV0YWRhdGE7XG4gIGRlbGV0ZSB0ZW1wbGF0ZS5PdXRwdXRzO1xuICByZXR1cm4gdGVtcGxhdGU7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./importer\"), exports);\n__exportStar(require(\"./migrator\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW1wb3J0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9taWdyYXRvcic7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceMigrator = void 0;\nconst chalk = require(\"chalk\");\nconst fs = require(\"fs-extra\");\nconst importer_1 = require(\"./importer\");\nconst util_1 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nclass ResourceMigrator {\n props;\n ioHelper;\n constructor(props) {\n this.props = props;\n this.ioHelper = props.ioHelper;\n }\n /**\n * Checks to see if a migrate.json file exists. If it does and the source is either `filepath` or\n * is in the same environment as the stack deployment, a new stack is created and the resources are\n * migrated to the stack using an IMPORT changeset. The normal deployment will resume after this is complete\n * to add back in any outputs and the CDKMetadata.\n */\n async tryMigrateResources(stacks, options) {\n const stack = stacks.stackArtifacts[0];\n const migrateDeployment = new importer_1.ResourceImporter(stack, {\n deployments: this.props.deployments,\n ioHelper: this.ioHelper,\n });\n const resourcesToImport = await this.tryGetResources(await migrateDeployment.resolveEnvironment());\n if (resourcesToImport) {\n await this.ioHelper.defaults.info(`${chalk.bold(stack.displayName)}: creating stack for resource migration...`);\n await this.ioHelper.defaults.info(`${chalk.bold(stack.displayName)}: importing resources into stack...`);\n await this.performResourceMigration(migrateDeployment, resourcesToImport, options);\n fs.rmSync('migrate.json');\n await this.ioHelper.defaults.info(`${chalk.bold(stack.displayName)}: applying CDKMetadata and Outputs to stack (if applicable)...`);\n }\n }\n /**\n * Creates a new stack with just the resources to be migrated\n */\n async performResourceMigration(migrateDeployment, resourcesToImport, options) {\n const startDeployTime = new Date().getTime();\n let elapsedDeployTime = 0;\n // Initial Deployment\n await migrateDeployment.importResourcesFromMigrate(resourcesToImport, {\n roleArn: options.roleArn,\n deploymentMethod: options.deploymentMethod,\n usePreviousParameters: true,\n rollback: options.rollback,\n });\n elapsedDeployTime = new Date().getTime() - startDeployTime;\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5002.msg(`'\\n✨ Resource migration time: ${(0, util_1.formatTime)(elapsedDeployTime)}s\\n'`, {\n duration: elapsedDeployTime,\n }));\n }\n async tryGetResources(environment) {\n try {\n const migrateFile = fs.readJsonSync('migrate.json', {\n encoding: 'utf-8',\n });\n const sourceEnv = migrateFile.Source.split(':');\n if (sourceEnv[0] === 'localfile' ||\n (sourceEnv[4] === environment.account && sourceEnv[3] === environment.region)) {\n return migrateFile.Resources;\n }\n }\n catch (e) {\n // Nothing to do\n }\n return undefined;\n }\n}\nexports.ResourceMigrator = ResourceMigrator;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtaWdyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQkFBK0I7QUFDL0IsK0JBQStCO0FBRS9CLHlDQUE4QztBQUM5QyxxQ0FBd0M7QUFHeEMsMkNBQWtEO0FBT2xELE1BQWEsZ0JBQWdCO0lBQ1YsS0FBSyxDQUF3QjtJQUM3QixRQUFRLENBQVc7SUFFcEMsWUFBbUIsS0FBNEI7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUF1QixFQUFFLE9BQWdDO1FBQ3hGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLDJCQUFnQixDQUFDLEtBQUssRUFBRTtZQUNwRCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7UUFDSCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUVuRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUNoSCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBRXpHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRW5GLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztRQUN0SSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLHdCQUF3QixDQUNwQyxpQkFBbUMsRUFDbkMsaUJBQW9DLEVBQ3BDLE9BQWdDO1FBRWhDLE1BQU0sZUFBZSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0MsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFMUIscUJBQXFCO1FBQ3JCLE1BQU0saUJBQWlCLENBQUMsMEJBQTBCLENBQUMsaUJBQWlCLEVBQUU7WUFDcEUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDMUMscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsaUJBQWlCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDM0QsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxJQUFBLGlCQUFVLEVBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFO1lBQ3pILFFBQVEsRUFBRSxpQkFBaUI7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUE4QjtRQUN6RCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRTtnQkFDbEQsUUFBUSxFQUFFLE9BQU87YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxTQUFTLEdBQUksV0FBVyxDQUFDLE1BQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVELElBQ0UsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVc7Z0JBQzVCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFDN0UsQ0FBQztnQkFDRCxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQWdCO1FBQ2xCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUE3RUQsNENBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBJbXBvcnREZXBsb3ltZW50T3B0aW9ucywgUmVzb3VyY2VzVG9JbXBvcnQgfSBmcm9tICcuL2ltcG9ydGVyJztcbmltcG9ydCB7IFJlc291cmNlSW1wb3J0ZXIgfSBmcm9tICcuL2ltcG9ydGVyJztcbmltcG9ydCB7IGZvcm1hdFRpbWUgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU3RhY2tDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZU1pZ3JhdG9yUHJvcHMge1xuICBkZXBsb3ltZW50czogRGVwbG95bWVudHM7XG4gIGlvSGVscGVyOiBJb0hlbHBlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFJlc291cmNlTWlncmF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBSZXNvdXJjZU1pZ3JhdG9yUHJvcHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogUmVzb3VyY2VNaWdyYXRvclByb3BzKSB7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBwcm9wcy5pb0hlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdG8gc2VlIGlmIGEgbWlncmF0ZS5qc29uIGZpbGUgZXhpc3RzLiBJZiBpdCBkb2VzIGFuZCB0aGUgc291cmNlIGlzIGVpdGhlciBgZmlsZXBhdGhgIG9yXG4gICAqIGlzIGluIHRoZSBzYW1lIGVudmlyb25tZW50IGFzIHRoZSBzdGFjayBkZXBsb3ltZW50LCBhIG5ldyBzdGFjayBpcyBjcmVhdGVkIGFuZCB0aGUgcmVzb3VyY2VzIGFyZVxuICAgKiBtaWdyYXRlZCB0byB0aGUgc3RhY2sgdXNpbmcgYW4gSU1QT1JUIGNoYW5nZXNldC4gVGhlIG5vcm1hbCBkZXBsb3ltZW50IHdpbGwgcmVzdW1lIGFmdGVyIHRoaXMgaXMgY29tcGxldGVcbiAgICogdG8gYWRkIGJhY2sgaW4gYW55IG91dHB1dHMgYW5kIHRoZSBDREtNZXRhZGF0YS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB0cnlNaWdyYXRlUmVzb3VyY2VzKHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLCBvcHRpb25zOiBJbXBvcnREZXBsb3ltZW50T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tzLnN0YWNrQXJ0aWZhY3RzWzBdO1xuICAgIGNvbnN0IG1pZ3JhdGVEZXBsb3ltZW50ID0gbmV3IFJlc291cmNlSW1wb3J0ZXIoc3RhY2ssIHtcbiAgICAgIGRlcGxveW1lbnRzOiB0aGlzLnByb3BzLmRlcGxveW1lbnRzLFxuICAgICAgaW9IZWxwZXI6IHRoaXMuaW9IZWxwZXIsXG4gICAgfSk7XG4gICAgY29uc3QgcmVzb3VyY2VzVG9JbXBvcnQgPSBhd2FpdCB0aGlzLnRyeUdldFJlc291cmNlcyhhd2FpdCBtaWdyYXRlRGVwbG95bWVudC5yZXNvbHZlRW52aXJvbm1lbnQoKSk7XG5cbiAgICBpZiAocmVzb3VyY2VzVG9JbXBvcnQpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX06IGNyZWF0aW5nIHN0YWNrIGZvciByZXNvdXJjZSBtaWdyYXRpb24uLi5gKTtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX06IGltcG9ydGluZyByZXNvdXJjZXMgaW50byBzdGFjay4uLmApO1xuXG4gICAgICBhd2FpdCB0aGlzLnBlcmZvcm1SZXNvdXJjZU1pZ3JhdGlvbihtaWdyYXRlRGVwbG95bWVudCwgcmVzb3VyY2VzVG9JbXBvcnQsIG9wdGlvbnMpO1xuXG4gICAgICBmcy5ybVN5bmMoJ21pZ3JhdGUuanNvbicpO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5pbmZvKGAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfTogYXBwbHlpbmcgQ0RLTWV0YWRhdGEgYW5kIE91dHB1dHMgdG8gc3RhY2sgKGlmIGFwcGxpY2FibGUpLi4uYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgc3RhY2sgd2l0aCBqdXN0IHRoZSByZXNvdXJjZXMgdG8gYmUgbWlncmF0ZWRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcGVyZm9ybVJlc291cmNlTWlncmF0aW9uKFxuICAgIG1pZ3JhdGVEZXBsb3ltZW50OiBSZXNvdXJjZUltcG9ydGVyLFxuICAgIHJlc291cmNlc1RvSW1wb3J0OiBSZXNvdXJjZXNUb0ltcG9ydCxcbiAgICBvcHRpb25zOiBJbXBvcnREZXBsb3ltZW50T3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc3RhcnREZXBsb3lUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgbGV0IGVsYXBzZWREZXBsb3lUaW1lID0gMDtcblxuICAgIC8vIEluaXRpYWwgRGVwbG95bWVudFxuICAgIGF3YWl0IG1pZ3JhdGVEZXBsb3ltZW50LmltcG9ydFJlc291cmNlc0Zyb21NaWdyYXRlKHJlc291cmNlc1RvSW1wb3J0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICBkZXBsb3ltZW50TWV0aG9kOiBvcHRpb25zLmRlcGxveW1lbnRNZXRob2QsXG4gICAgICB1c2VQcmV2aW91c1BhcmFtZXRlcnM6IHRydWUsXG4gICAgICByb2xsYmFjazogb3B0aW9ucy5yb2xsYmFjayxcbiAgICB9KTtcblxuICAgIGVsYXBzZWREZXBsb3lUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydERlcGxveVRpbWU7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUwMDIubXNnKGAnXFxu4pyoICBSZXNvdXJjZSBtaWdyYXRpb24gdGltZTogJHtmb3JtYXRUaW1lKGVsYXBzZWREZXBsb3lUaW1lKX1zXFxuJ2AsIHtcbiAgICAgIGR1cmF0aW9uOiBlbGFwc2VkRGVwbG95VGltZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdHJ5R2V0UmVzb3VyY2VzKGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCk6IFByb21pc2U8UmVzb3VyY2VzVG9JbXBvcnQgfCB1bmRlZmluZWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWlncmF0ZUZpbGUgPSBmcy5yZWFkSnNvblN5bmMoJ21pZ3JhdGUuanNvbicsIHtcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNvdXJjZUVudiA9IChtaWdyYXRlRmlsZS5Tb3VyY2UgYXMgc3RyaW5nKS5zcGxpdCgnOicpO1xuICAgICAgaWYgKFxuICAgICAgICBzb3VyY2VFbnZbMF0gPT09ICdsb2NhbGZpbGUnIHx8XG4gICAgICAgIChzb3VyY2VFbnZbNF0gPT09IGVudmlyb25tZW50LmFjY291bnQgJiYgc291cmNlRW52WzNdID09PSBlbnZpcm9ubWVudC5yZWdpb24pXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG1pZ3JhdGVGaWxlLlJlc291cmNlcztcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBOb3RoaW5nIHRvIGRvXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./resource-metadata\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1tZXRhZGF0YSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resourceMetadata = resourceMetadata;\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\n/**\n * Attempts to read metadata for resources from a CloudFormation stack artifact\n *\n * @param stack - The CloudFormation stack to read from\n * @param logicalId - The logical ID of the resource to read\n *\n * @returns The resource metadata, or undefined if the resource was not found\n */\nfunction resourceMetadata(stack, logicalId) {\n const metadata = stack.metadata;\n if (!metadata) {\n return undefined;\n }\n for (const path of Object.keys(metadata)) {\n const entry = metadata[path]\n .filter((e) => e.type === cloud_assembly_schema_1.ArtifactMetadataEntryType.LOGICAL_ID)\n .find((e) => e.data === logicalId);\n if (entry) {\n return {\n entry,\n constructPath: simplifyConstructPath(path, stack.stackName),\n };\n }\n }\n return undefined;\n}\nfunction simplifyConstructPath(path, stackName) {\n path = path.replace(/\\/Resource$/, '');\n path = path.replace(/^\\//, ''); // remove \"/\" prefix\n // remove \"/\" prefix\n if (stackName) {\n if (path.startsWith(stackName + '/')) {\n path = path.slice(stackName.length + 1);\n }\n }\n return path;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlCQSw0Q0FrQkM7QUExQ0QsMEVBQStGO0FBZ0IvRjs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBa0MsRUFBRSxTQUFpQjtJQUNwRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxpREFBeUIsQ0FBQyxVQUFVLENBQUM7YUFDOUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixPQUFPO2dCQUNMLEtBQUs7Z0JBQ0wsYUFBYSxFQUFFLHFCQUFxQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDO2FBQzVELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLElBQVksRUFBRSxTQUFpQjtJQUM1RCxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBRXBELGdDQUFnQztJQUNoQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgeyBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLCB0eXBlIE1ldGFkYXRhRW50cnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGVudHJ5IGZvciBhIHJlc291cmNlIHdpdGhpbiBhIENsb3VkRm9ybWF0aW9uIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UncyBtZXRhZGF0YSBhcyBkZWNsYXJlZCBpbiB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5OiBNZXRhZGF0YUVudHJ5O1xuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBwYXRoIG9mIHRoZSByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0UGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIHJlYWQgbWV0YWRhdGEgZm9yIHJlc291cmNlcyBmcm9tIGEgQ2xvdWRGb3JtYXRpb24gc3RhY2sgYXJ0aWZhY3RcbiAqXG4gKiBAcGFyYW0gc3RhY2sgLSBUaGUgQ2xvdWRGb3JtYXRpb24gc3RhY2sgdG8gcmVhZCBmcm9tXG4gKiBAcGFyYW0gbG9naWNhbElkIC0gVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlIHRvIHJlYWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgcmVzb3VyY2UgbWV0YWRhdGEsIG9yIHVuZGVmaW5lZCBpZiB0aGUgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VNZXRhZGF0YShzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBsb2dpY2FsSWQ6IHN0cmluZyk6IFJlc291cmNlTWV0YWRhdGEgfCB1bmRlZmluZWQge1xuICBjb25zdCBtZXRhZGF0YSA9IHN0YWNrLm1ldGFkYXRhO1xuICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZvciAoY29uc3QgcGF0aCBvZiBPYmplY3Qua2V5cyhtZXRhZGF0YSkpIHtcbiAgICBjb25zdCBlbnRyeSA9IG1ldGFkYXRhW3BhdGhdXG4gICAgICAuZmlsdGVyKChlKSA9PiBlLnR5cGUgPT09IEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRClcbiAgICAgIC5maW5kKChlKSA9PiBlLmRhdGEgPT09IGxvZ2ljYWxJZCk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbnRyeSxcbiAgICAgICAgY29uc3RydWN0UGF0aDogc2ltcGxpZnlDb25zdHJ1Y3RQYXRoKHBhdGgsIHN0YWNrLnN0YWNrTmFtZSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBzaW1wbGlmeUNvbnN0cnVjdFBhdGgocGF0aDogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZykge1xuICBwYXRoID0gcGF0aC5yZXBsYWNlKC9cXC9SZXNvdXJjZSQvLCAnJyk7XG4gIHBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC8vLCAnJyk7IC8vIHJlbW92ZSBcIi9cIiBwcmVmaXhcblxuICAvLyByZW1vdmUgXCI8c3RhY2stbmFtZT4vXCIgcHJlZml4XG4gIGlmIChzdGFja05hbWUpIHtcbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKHN0YWNrTmFtZSArICcvJykpIHtcbiAgICAgIHBhdGggPSBwYXRoLnNsaWNlKHN0YWNrTmFtZS5sZW5ndGggKyAxKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhdGg7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RWLock = void 0;\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * A single-writer/multi-reader lock on a directory\n *\n * It uses marker files with PIDs in them as a locking marker; the PIDs will be\n * checked for liveness, so that if the process exits without cleaning up the\n * files the lock is implicitly released.\n *\n * This class is not 100% race safe, but in practice it should be a lot\n * better than the 0 protection we have today.\n */\n/* c8 ignore start */ // code paths are unpredictable\nclass RWLock {\n directory;\n pidString;\n writerFile;\n readCounter = 0;\n constructor(directory) {\n this.directory = directory;\n this.pidString = `${process.pid}`;\n this.writerFile = path.join(this.directory, 'synth.lock');\n }\n /**\n * Acquire a writer lock.\n *\n * No other readers or writers must exist for the given directory.\n */\n async acquireWrite() {\n await this.assertNoOtherWriters();\n const readers = await this._currentReaders();\n if (readers.length > 0) {\n throw new toolkit_error_1.ToolkitError('ConcurrentReadLock', `Other CLIs (PID=${readers}) are currently reading from ${this.directory}. Invoke the CLI in sequence, or use '--output' to synth into different directories.`);\n }\n await writeFileAtomic(this.writerFile, this.pidString);\n let released = false;\n return {\n release: async () => {\n // Releasing needs a flag, otherwise we might delete a file that some other lock has created in the mean time.\n if (!released) {\n await deleteFile(this.writerFile);\n released = true;\n }\n },\n convertToReaderLock: async () => {\n // Acquire the read lock before releasing the write lock. Slightly less\n // chance of racing!\n const ret = await this.doAcquireRead();\n await deleteFile(this.writerFile);\n return ret;\n },\n };\n }\n /**\n * Acquire a read lock\n *\n * Will fail if there are any writers.\n */\n async acquireRead() {\n await this.assertNoOtherWriters();\n return this.doAcquireRead();\n }\n /**\n * Obtains the name fo a (new) `readerFile` to use. This includes a counter so\n * that if multiple threads of the same PID attempt to concurrently acquire\n * the same lock, they're guaranteed to use a different reader file name (only\n * one thread will ever execute JS code at once, guaranteeing the readCounter\n * is incremented \"atomically\" from the point of view of this PID.).\n */\n readerFile() {\n return path.join(this.directory, `read.${this.pidString}.${++this.readCounter}.lock`);\n }\n /**\n * Do the actual acquiring of a read lock.\n */\n async doAcquireRead() {\n const readerFile = this.readerFile();\n await writeFileAtomic(readerFile, this.pidString);\n let released = false;\n return {\n release: async () => {\n // Releasing needs a flag, otherwise we might delete a file that some other lock has created in the mean time.\n if (!released) {\n await deleteFile(readerFile);\n released = true;\n }\n },\n };\n }\n async assertNoOtherWriters() {\n const writer = await this._currentWriter();\n if (writer) {\n throw new toolkit_error_1.ToolkitError('ConcurrentWriteLock', `Another CLI (PID=${writer}) is currently synthing to ${this.directory}. Invoke the CLI in sequence, or use '--output' to synth into different directories.`);\n }\n }\n /**\n * Check the current writer (if any)\n *\n * Publicly accessible for testing purposes. Do not use.\n *\n * @internal\n */\n async _currentWriter() {\n const contents = await readFileIfExists(this.writerFile);\n if (!contents) {\n return undefined;\n }\n const pid = parseInt(contents, 10);\n if (!processExists(pid)) {\n // Do cleanup of a stray file now\n await deleteFile(this.writerFile);\n return undefined;\n }\n return pid;\n }\n /**\n * Check the current readers (if any)\n *\n * Publicly accessible for testing purposes. Do not use.\n *\n * @internal\n */\n async _currentReaders() {\n const re = /^read\\.([^.]+)\\.[^.]+\\.lock$/;\n const ret = new Array();\n let children;\n try {\n children = await fs_1.promises.readdir(this.directory, { encoding: 'utf-8' });\n }\n catch (e) {\n // Can't be locked if the directory doesn't exist\n if (e.code === 'ENOENT') {\n return [];\n }\n throw e;\n }\n for (const fname of children) {\n const m = fname.match(re);\n if (m) {\n const pid = parseInt(m[1], 10);\n if (processExists(pid)) {\n ret.push(pid);\n }\n else {\n // Do cleanup of a stray file now\n await deleteFile(path.join(this.directory, fname));\n }\n }\n }\n return ret;\n }\n}\nexports.RWLock = RWLock;\n/* c8 ignore start */ // code paths are unpredictable\nasync function readFileIfExists(filename) {\n try {\n return await fs_1.promises.readFile(filename, { encoding: 'utf-8' });\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return undefined;\n }\n throw e;\n }\n}\n/* c8 ignore stop */\nlet tmpCounter = 0;\n/* c8 ignore start */ // code paths are unpredictable\nasync function writeFileAtomic(filename, contents) {\n await fs_1.promises.mkdir(path.dirname(filename), { recursive: true });\n const tmpFile = `${filename}.${process.pid}_${++tmpCounter}`;\n await fs_1.promises.writeFile(tmpFile, contents, { encoding: 'utf-8' });\n await fs_1.promises.rename(tmpFile, filename);\n}\n/* c8 ignore stop */\n/* c8 ignore start */ // code paths are unpredictable\nasync function deleteFile(filename) {\n try {\n await fs_1.promises.unlink(filename);\n }\n catch (e) {\n if (e.code === 'ENOENT') {\n return;\n }\n throw e;\n }\n}\n/* c8 ignore stop */\n/* c8 ignore start */ // code paths are unpredictable\nfunction processExists(pid) {\n try {\n process.kill(pid, 0);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/* c8 ignore stop */\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicndsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicndsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0IsNERBQXdEO0FBRXhEOzs7Ozs7Ozs7R0FTRztBQUNILHFCQUFxQixDQUFDLCtCQUErQjtBQUNyRCxNQUFhLE1BQU07SUFLVztJQUpYLFNBQVMsQ0FBUztJQUNsQixVQUFVLENBQVM7SUFDNUIsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUV4QixZQUE0QixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRWxDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksNEJBQVksQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsT0FBTyxnQ0FBZ0MsSUFBSSxDQUFDLFNBQVMsc0ZBQXNGLENBQUMsQ0FBQztRQUMvTSxDQUFDO1FBRUQsTUFBTSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xCLDhHQUE4RztnQkFDOUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFD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QUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFDRCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIEEgc2luZ2xlLXdyaXRlci9tdWx0aS1yZWFkZXIgbG9jayBvbiBhIGRpcmVjdG9yeVxuICpcbiAqIEl0IHVzZXMgbWFya2VyIGZpbGVzIHdpdGggUElEcyBpbiB0aGVtIGFzIGEgbG9ja2luZyBtYXJrZXI7IHRoZSBQSURzIHdpbGwgYmVcbiAqIGNoZWNrZWQgZm9yIGxpdmVuZXNzLCBzbyB0aGF0IGlmIHRoZSBwcm9jZXNzIGV4aXRzIHdpdGhvdXQgY2xlYW5pbmcgdXAgdGhlXG4gKiBmaWxlcyB0aGUgbG9jayBpcyBpbXBsaWNpdGx5IHJlbGVhc2VkLlxuICpcbiAqIFRoaXMgY2xhc3MgaXMgbm90IDEwMCUgcmFjZSBzYWZlLCBidXQgaW4gcHJhY3RpY2UgaXQgc2hvdWxkIGJlIGEgbG90XG4gKiBiZXR0ZXIgdGhhbiB0aGUgMCBwcm90ZWN0aW9uIHdlIGhhdmUgdG9kYXkuXG4gKi9cbi8qIGM4IGlnbm9yZSBzdGFydCAqLyAvLyBjb2RlIHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlXG5leHBvcnQgY2xhc3MgUldMb2NrIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwaWRTdHJpbmc6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJGaWxlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZENvdW50ZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZykge1xuICAgIHRoaXMucGlkU3RyaW5nID0gYCR7cHJvY2Vzcy5waWR9YDtcblxuICAgIHRoaXMud3JpdGVyRmlsZSA9IHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSwgJ3N5bnRoLmxvY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3F1aXJlIGEgd3JpdGVyIGxvY2suXG4gICAqXG4gICAqIE5vIG90aGVyIHJlYWRlcnMgb3Igd3JpdGVycyBtdXN0IGV4aXN0IGZvciB0aGUgZ2l2ZW4gZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjcXVpcmVXcml0ZSgpOiBQcm9taXNlPElXcml0ZUxvY2s+IHtcbiAgICBhd2FpdCB0aGlzLmFzc2VydE5vT3RoZXJXcml0ZXJzKCk7XG5cbiAgICBjb25zdCByZWFkZXJzID0gYXdhaXQgdGhpcy5fY3VycmVudFJlYWRlcnMoKTtcbiAgICBpZiAocmVhZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDb25jdXJyZW50UmVhZExvY2snLCBgT3RoZXIgQ0xJcyAoUElEPSR7cmVhZGVyc30pIGFyZSBjdXJyZW50bHkgcmVhZGluZyBmcm9tICR7dGhpcy5kaXJlY3Rvcnl9LiBJbnZva2UgdGhlIENMSSBpbiBzZXF1ZW5jZSwgb3IgdXNlICctLW91dHB1dCcgdG8gc3ludGggaW50byBkaWZmZXJlbnQgZGlyZWN0b3JpZXMuYCk7XG4gICAgfVxuXG4gICAgYXdhaXQgd3JpdGVGaWxlQXRvbWljKHRoaXMud3JpdGVyRmlsZSwgdGhpcy5waWRTdHJpbmcpO1xuXG4gICAgbGV0IHJlbGVhc2VkID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlbGVhc2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gUmVsZWFzaW5nIG5lZWRzIGEgZmxhZywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGRlbGV0ZSBhIGZpbGUgdGhhdCBzb21lIG90aGVyIGxvY2sgaGFzIGNyZWF0ZWQgaW4gdGhlIG1lYW4gdGltZS5cbiAgICAgICAgaWYgKCFyZWxlYXNlZCkge1xuICAgICAgICAgIGF3YWl0IGRlbGV0ZUZpbGUodGhpcy53cml0ZXJGaWxlKTtcbiAgICAgICAgICByZWxlYXNlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjb252ZXJ0VG9SZWFkZXJMb2NrOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIEFjcXVpcmUgdGhlIHJlYWQgbG9jayBiZWZvcmUgcmVsZWFzaW5nIHRoZSB3cml0ZSBsb2NrLiBTbGlnaHRseSBsZXNzXG4gICAgICAgIC8vIGNoYW5jZSBvZiByYWNpbmchXG4gICAgICAgIGNvbnN0IHJldCA9IGF3YWl0IHRoaXMuZG9BY3F1aXJlUmVhZCgpO1xuICAgICAgICBhd2FpdCBkZWxldGVGaWxlKHRoaXMud3JpdGVyRmlsZSk7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWNxdWlyZSBhIHJlYWQgbG9ja1xuICAgKlxuICAgKiBXaWxsIGZhaWwgaWYgdGhlcmUgYXJlIGFueSB3cml0ZXJzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjcXVpcmVSZWFkKCk6IFByb21pc2U8SVJlYWRMb2NrPiB7XG4gICAgYXdhaXQgdGhpcy5hc3NlcnROb090aGVyV3JpdGVycygpO1xuICAgIHJldHVybiB0aGlzLmRvQWNxdWlyZVJlYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRhaW5zIHRoZSBuYW1lIGZvIGEgKG5ldykgYHJlYWRlckZpbGVgIHRvIHVzZS4gVGhpcyBpbmNsdWRlcyBhIGNvdW50ZXIgc29cbiAgICogdGhhdCBpZiBtdWx0aXBsZSB0aHJlYWRzIG9mIHRoZSBzYW1lIFBJRCBhdHRlbXB0IHRvIGNvbmN1cnJlbnRseSBhY3F1aXJlXG4gICAqIHRoZSBzYW1lIGxvY2ssIHRoZXkncmUgZ3VhcmFudGVlZCB0byB1c2UgYSBkaWZmZXJlbnQgcmVhZGVyIGZpbGUgbmFtZSAob25seVxuICAgKiBvbmUgdGhyZWFkIHdpbGwgZXZlciBleGVjdXRlIEpTIGNvZGUgYXQgb25jZSwgZ3VhcmFudGVlaW5nIHRoZSByZWFkQ291bnRlclxuICAgKiBpcyBpbmNyZW1lbnRlZCBcImF0b21pY2FsbHlcIiBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoaXMgUElELikuXG4gICAqL1xuICBwcml2YXRlIHJlYWRlckZpbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5LCBgcmVhZC4ke3RoaXMucGlkU3RyaW5nfS4keysrdGhpcy5yZWFkQ291bnRlcn0ubG9ja2ApO1xuICB9XG5cbiAgLyoqXG4gICAqIERvIHRoZSBhY3R1YWwgYWNxdWlyaW5nIG9mIGEgcmVhZCBsb2NrLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkb0FjcXVpcmVSZWFkKCk6IFByb21pc2U8SVJlYWRMb2NrPiB7XG4gICAgY29uc3QgcmVhZGVyRmlsZSA9IHRoaXMucmVhZGVyRmlsZSgpO1xuICAgIGF3YWl0IHdyaXRlRmlsZUF0b21pYyhyZWFkZXJGaWxlLCB0aGlzLnBpZFN0cmluZyk7XG5cbiAgICBsZXQgcmVsZWFzZWQgPSBmYWxzZTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVsZWFzZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBSZWxlYXNpbmcgbmVlZHMgYSBmbGFnLCBvdGhlcndpc2Ugd2UgbWlnaHQgZGVsZXRlIGEgZmlsZSB0aGF0IHNvbWUgb3RoZXIgbG9jayBoYXMgY3JlYXRlZCBpbiB0aGUgbWVhbiB0aW1lLlxuICAgICAgICBpZiAoIXJlbGVhc2VkKSB7XG4gICAgICAgICAgYXdhaXQgZGVsZXRlRmlsZShyZWFkZXJGaWxlKTtcbiAgICAgICAgICByZWxlYXNlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYXNzZXJ0Tm9PdGhlcldyaXRlcnMoKSB7XG4gICAgY29uc3Qgd3JpdGVyID0gYXdhaXQgdGhpcy5fY3VycmVudFdyaXRlcigpO1xuICAgIGlmICh3cml0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0NvbmN1cnJlbnRXcml0ZUxvY2snLCBgQW5vdGhlciBDTEkgKFBJRD0ke3dyaXRlcn0pIGlzIGN1cnJlbnRseSBzeW50aGluZyB0byAke3RoaXMuZGlyZWN0b3J5fS4gSW52b2tlIHRoZSBDTEkgaW4gc2VxdWVuY2UsIG9yIHVzZSAnLS1vdXRwdXQnIHRvIHN5bnRoIGludG8gZGlmZmVyZW50IGRpcmVjdG9yaWVzLmApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgY3VycmVudCB3cml0ZXIgKGlmIGFueSlcbiAgICpcbiAgICogUHVibGljbHkgYWNjZXNzaWJsZSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRG8gbm90IHVzZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgX2N1cnJlbnRXcml0ZXIoKTogUHJvbWlzZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBjb250ZW50cyA9IGF3YWl0IHJlYWRGaWxlSWZFeGlzdHModGhpcy53cml0ZXJGaWxlKTtcbiAgICBpZiAoIWNvbnRlbnRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHBpZCA9IHBhcnNlSW50KGNvbnRlbnRzLCAxMCk7XG4gICAgaWYgKCFwcm9jZXNzRXhpc3RzKHBpZCkpIHtcbiAgICAgIC8vIERvIGNsZWFudXAgb2YgYSBzdHJheSBmaWxlIG5vd1xuICAgICAgYXdhaXQgZGVsZXRlRmlsZSh0aGlzLndyaXRlckZpbGUpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoZSBjdXJyZW50IHJlYWRlcnMgKGlmIGFueSlcbiAgICpcbiAgICogUHVibGljbHkgYWNjZXNzaWJsZSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRG8gbm90IHVzZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgX2N1cnJlbnRSZWFkZXJzKCk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgICBjb25zdCByZSA9IC9ecmVhZFxcLihbXi5dKylcXC5bXi5dK1xcLmxvY2skLztcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXG4gICAgbGV0IGNoaWxkcmVuO1xuICAgIHRyeSB7XG4gICAgICBjaGlsZHJlbiA9IGF3YWl0IGZzLnJlYWRkaXIodGhpcy5kaXJlY3RvcnksIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBDYW4ndCBiZSBsb2NrZWQgaWYgdGhlIGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0XG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZm5hbWUgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IG0gPSBmbmFtZS5tYXRjaChyZSk7XG4gICAgICBpZiAobSkge1xuICAgICAgICBjb25zdCBwaWQgPSBwYXJzZUludChtWzFdLCAxMCk7XG4gICAgICAgIGlmIChwcm9jZXNzRXhpc3RzKHBpZCkpIHtcbiAgICAgICAgICByZXQucHVzaChwaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERvIGNsZWFudXAgb2YgYSBzdHJheSBmaWxlIG5vd1xuICAgICAgICAgIGF3YWl0IGRlbGV0ZUZpbGUocGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5LCBmbmFtZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cbi8qIGM4IGlnbm9yZSBzdG9wICovXG5cbi8qKlxuICogQW4gYWNxdWlyZWQgbG9ja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWFkTG9jayB7XG4gIC8qKlxuICAgKiBSZWxlYXNlIHRoZSBsb2NrLiBDYW4gYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLlxuICAgKi9cbiAgcmVsZWFzZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIEFuIGFjcXVpcmVkIHdyaXRlciBsb2NrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdyaXRlTG9jayBleHRlbmRzIElSZWFkTG9jayB7XG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoZSB3cml0ZXIgbG9jayB0byBhIHJlYWRlciBsb2NrXG4gICAqL1xuICBjb252ZXJ0VG9SZWFkZXJMb2NrKCk6IFByb21pc2U8SVJlYWRMb2NrPjtcbn1cblxuLyogYzggaWdub3JlIHN0YXJ0ICovIC8vIGNvZGUgcGF0aHMgYXJlIHVucHJlZGljdGFibGVcbmFzeW5jIGZ1bmN0aW9uIHJlYWRGaWxlSWZFeGlzdHMoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuLyogYzggaWdub3JlIHN0b3AgKi9cblxubGV0IHRtcENvdW50ZXIgPSAwO1xuLyogYzggaWdub3JlIHN0YXJ0ICovIC8vIGNvZGUgcGF0aHMgYXJlIHVucHJlZGljdGFibGVcbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZUF0b21pYyhmaWxlbmFtZTogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGZzLm1rZGlyKHBhdGguZGlybmFtZShmaWxlbmFtZSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCB0bXBGaWxlID0gYCR7ZmlsZW5hbWV9LiR7cHJvY2Vzcy5waWR9XyR7Kyt0bXBDb3VudGVyfWA7XG4gIGF3YWl0IGZzLndyaXRlRmlsZSh0bXBGaWxlLCBjb250ZW50cywgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgYXdhaXQgZnMucmVuYW1lKHRtcEZpbGUsIGZpbGVuYW1lKTtcbn1cbi8qIGM4IGlnbm9yZSBzdG9wICovXG5cbi8qIGM4IGlnbm9yZSBzdGFydCAqLyAvLyBjb2RlIHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlXG5hc3luYyBmdW5jdGlvbiBkZWxldGVGaWxlKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy51bmxpbmsoZmlsZW5hbWUpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi8gLy8gY29kZSBwYXRocyBhcmUgdW5wcmVkaWN0YWJsZVxuZnVuY3Rpb24gcHJvY2Vzc0V4aXN0cyhwaWQ6IG51bWJlcikge1xuICB0cnkge1xuICAgIHByb2Nlc3Mua2lsbChwaWQsIDApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.TRANSIENT_CONTEXT_KEY = void 0;\nconst os = require(\"os\");\nconst fs_path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst util = require(\"../util\");\n/**\n * If a context value is an object with this key set to a truthy value, it won't be saved to cdk.context.json\n */\nexports.TRANSIENT_CONTEXT_KEY = '$dontSaveContext';\n/**\n * A single bag of settings\n */\nclass Settings {\n settings;\n readOnly;\n static mergeAll(...settings) {\n let ret = new Settings();\n for (const setting of settings) {\n ret = ret.merge(setting);\n }\n return ret;\n }\n constructor(settings = {}, readOnly = false) {\n this.settings = settings;\n this.readOnly = readOnly;\n }\n async save(fileName) {\n const expanded = expandHomeDir(fileName);\n await fs.writeJson(expanded, stripTransientValues(this.settings), {\n spaces: 2,\n });\n return this;\n }\n get all() {\n return this.get([]);\n }\n merge(other) {\n return new Settings(util.deepMerge(this.settings, other.settings));\n }\n subSettings(keyPrefix) {\n return new Settings(this.get(keyPrefix) || {}, false);\n }\n makeReadOnly() {\n return new Settings(this.settings, true);\n }\n clear() {\n if (this.readOnly) {\n throw new toolkit_error_1.ToolkitError('SettingsReadOnly', 'Cannot clear(): settings are readonly');\n }\n this.settings = {};\n }\n get empty() {\n return Object.keys(this.settings).length === 0;\n }\n get(path) {\n return util.deepClone(util.deepGet(this.settings, path));\n }\n set(path, value) {\n if (this.readOnly) {\n throw new toolkit_error_1.ToolkitError('SettingsReadOnly', `Can't set ${path}: settings object is readonly`);\n }\n if (path.length === 0) {\n // deepSet can't handle this case\n this.settings = value;\n }\n else {\n util.deepSet(this.settings, path, value);\n }\n return this;\n }\n unset(path) {\n this.set(path, undefined);\n }\n}\nexports.Settings = Settings;\nfunction expandHomeDir(x) {\n if (x.startsWith('~')) {\n return fs_path.join(os.homedir(), x.slice(1));\n }\n return x;\n}\n/**\n * Return all context value that are not transient context values\n */\nfunction stripTransientValues(obj) {\n const ret = {};\n for (const [key, value] of Object.entries(obj)) {\n if (!isTransientValue(value)) {\n ret[key] = value;\n }\n }\n return ret;\n}\n/**\n * Return whether the given value is a transient context value\n *\n * Values that are objects with a magic key set to a truthy value are considered transient.\n */\nfunction isTransientValue(value) {\n return (typeof value === 'object' &&\n value !== null &&\n value[exports.TRANSIENT_CONTEXT_KEY]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsZ0NBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQiw0REFBd0Q7QUFDeEQsZ0NBQWdDO0FBSWhDOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztBQUV4RDs7R0FFRztBQUNILE1BQWEsUUFBUTtJQVVUO0lBQ1E7SUFWWCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBb0I7UUFDNUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUN6QixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQy9CLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUNVLFdBQXdCLEVBQUUsRUFDbEIsV0FBVyxLQUFLO1FBRHhCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFFbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBZ0I7UUFDaEMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hFLE1BQU0sRUFBRSxDQUFDO1NBQ1YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBZTtRQUMxQixPQUFPLElBQUksUUFBUSxDQUFDLElB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OlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgZnNfcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBTZXR0aW5nc01hcCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbi8qKlxuICogSWYgYSBjb250ZXh0IHZhbHVlIGlzIGFuIG9iamVjdCB3aXRoIHRoaXMga2V5IHNldCB0byBhIHRydXRoeSB2YWx1ZSwgaXQgd29uJ3QgYmUgc2F2ZWQgdG8gY2RrLmNvbnRleHQuanNvblxuICovXG5leHBvcnQgY29uc3QgVFJBTlNJRU5UX0NPTlRFWFRfS0VZID0gJyRkb250U2F2ZUNvbnRleHQnO1xuXG4vKipcbiAqIEEgc2luZ2xlIGJhZyBvZiBzZXR0aW5nc1xuICovXG5leHBvcnQgY2xhc3MgU2V0dGluZ3Mge1xuICBwdWJsaWMgc3RhdGljIG1lcmdlQWxsKC4uLnNldHRpbmdzOiBTZXR0aW5nc1tdKTogU2V0dGluZ3Mge1xuICAgIGxldCByZXQgPSBuZXcgU2V0dGluZ3MoKTtcbiAgICBmb3IgKGNvbnN0IHNldHRpbmcgb2Ygc2V0dGluZ3MpIHtcbiAgICAgIHJldCA9IHJldC5tZXJnZShzZXR0aW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzTWFwID0ge30sXG4gICAgcHVibGljIHJlYWRvbmx5IHJlYWRPbmx5ID0gZmFsc2UsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmUoZmlsZU5hbWU6IHN0cmluZyk6IFByb21pc2U8dGhpcz4ge1xuICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kSG9tZURpcihmaWxlTmFtZSk7XG4gICAgYXdhaXQgZnMud3JpdGVKc29uKGV4cGFuZGVkLCBzdHJpcFRyYW5zaWVudFZhbHVlcyh0aGlzLnNldHRpbmdzKSwge1xuICAgICAgc3BhY2VzOiAyLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGwoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoW10pO1xuICB9XG5cbiAgcHVibGljIG1lcmdlKG90aGVyOiBTZXR0aW5ncyk6IFNldHRpbmdzIHtcbiAgICByZXR1cm4gbmV3IFNldHRpbmdzKHV0aWwuZGVlcE1lcmdlKHRoaXMuc2V0dGluZ3MsIG90aGVyLnNldHRpbmdzKSk7XG4gIH1cblxuICBwdWJsaWMgc3ViU2V0dGluZ3Moa2V5UHJlZml4OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBuZXcgU2V0dGluZ3ModGhpcy5nZXQoa2V5UHJlZml4KSB8fCB7fSwgZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG1ha2VSZWFkT25seSgpOiBTZXR0aW5ncyB7XG4gICAgcmV0dXJuIG5ldyBTZXR0aW5ncyh0aGlzLnNldHRpbmdzLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2V0dGluZ3NSZWFkT25seScsICdDYW5ub3QgY2xlYXIoKTogc2V0dGluZ3MgYXJlIHJlYWRvbmx5Jyk7XG4gICAgfVxuICAgIHRoaXMuc2V0dGluZ3MgPSB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc2V0dGluZ3MpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQocGF0aDogc3RyaW5nW10pOiBhbnkge1xuICAgIHJldHVybiB1dGlsLmRlZXBDbG9uZSh1dGlsLmRlZXBHZXQodGhpcy5zZXR0aW5ncywgcGF0aCkpO1xuICB9XG5cbiAgcHVibGljIHNldChwYXRoOiBzdHJpbmdbXSwgdmFsdWU6IGFueSk6IFNldHRpbmdzIHtcbiAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2V0dGluZ3NSZWFkT25seScsIGBDYW4ndCBzZXQgJHtwYXRofTogc2V0dGluZ3Mgb2JqZWN0IGlzIHJlYWRvbmx5YCk7XG4gICAgfVxuICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gZGVlcFNldCBjYW4ndCBoYW5kbGUgdGhpcyBjYXNlXG4gICAgICB0aGlzLnNldHRpbmdzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHV0aWwuZGVlcFNldCh0aGlzLnNldHRpbmdzLCBwYXRoLCB2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHVuc2V0KHBhdGg6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZXQocGF0aCwgdW5kZWZpbmVkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBhbmRIb21lRGlyKHg6IHN0cmluZykge1xuICBpZiAoeC5zdGFydHNXaXRoKCd+JykpIHtcbiAgICByZXR1cm4gZnNfcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgeC5zbGljZSgxKSk7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBjb250ZXh0IHZhbHVlIHRoYXQgYXJlIG5vdCB0cmFuc2llbnQgY29udGV4dCB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gc3RyaXBUcmFuc2llbnRWYWx1ZXMob2JqOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gIGNvbnN0IHJldDogYW55ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICBpZiAoIWlzVHJhbnNpZW50VmFsdWUodmFsdWUpKSB7XG4gICAgICByZXRba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHRyYW5zaWVudCBjb250ZXh0IHZhbHVlXG4gKlxuICogVmFsdWVzIHRoYXQgYXJlIG9iamVjdHMgd2l0aCBhIG1hZ2ljIGtleSBzZXQgdG8gYSB0cnV0aHkgdmFsdWUgYXJlIGNvbnNpZGVyZWQgdHJhbnNpZW50LlxuICovXG5mdW5jdGlvbiBpc1RyYW5zaWVudFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodmFsdWUgYXMgYW55KVtUUkFOU0lFTlRfQ09OVEVYVF9LRVldXG4gICk7XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackProgressMonitor = void 0;\n__exportStar(require(\"./stack-activity-monitor\"), exports);\n__exportStar(require(\"./stack-event-poller\"), exports);\n__exportStar(require(\"./stack-status\"), exports);\nvar stack_progress_monitor_1 = require(\"./stack-progress-monitor\");\nObject.defineProperty(exports, \"StackProgressMonitor\", { enumerable: true, get: function () { return stack_progress_monitor_1.StackProgressMonitor; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF5QztBQUN6Qyx1REFBcUM7QUFDckMsaURBQStCO0FBRS9CLG1FQUFnRTtBQUF2RCw4SEFBQSxvQkFBb0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RhY2stYWN0aXZpdHktbW9uaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLWV2ZW50LXBvbGxlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLXN0YXR1cyc7XG5cbmV4cG9ydCB7IFN0YWNrUHJvZ3Jlc3NNb25pdG9yIH0gZnJvbSAnLi9zdGFjay1wcm9ncmVzcy1tb25pdG9yJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackActivityMonitor = void 0;\nexports.extractErrorCode = extractErrorCode;\nconst util = require(\"util\");\nconst uuid = require(\"uuid\");\nconst stack_event_poller_1 = require(\"./stack-event-poller\");\nconst stack_progress_monitor_1 = require(\"./stack-progress-monitor\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nconst private_1 = require(\"../io/private\");\nconst resource_metadata_1 = require(\"../resource-metadata/resource-metadata\");\n/**\n * Drives the monitoring of a Stack deployment\n *\n * ```\n * ┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐\n * │ Stack │ poll() │ Stack │ process(ev) │ Stack │\n * │ EventPoller │◀───────│ ActivityMonitor │─────────────▶│ ProgressMonitor │\n * └───────────────────────┘ └───────────────────────┘ └───────────────────────┘\n * ```\n */\nclass StackActivityMonitor {\n /**\n * The poller used to read stack events\n */\n poller;\n /**\n * Fetch new activity every 1 second\n * Printers can decide to update a view less frequently if desired\n */\n pollingInterval;\n /**\n * A list of all non-cancellation errors we have seen.\n *\n * By the nature of the order we see events in, will be ordered from oldest to newest.\n */\n _errors = [];\n monitorId;\n progressMonitor;\n /**\n * Current tick timer\n */\n tickTimer;\n /**\n * Set to the activity of reading the current events\n */\n readPromise;\n ioHelper;\n stackName;\n stack;\n cfn;\n envResources;\n constructor({ cfn, ioHelper, stack, stackName, resourcesTotal, changeSetCreationTime, pollingInterval = 2_000, envResources, }) {\n this.ioHelper = ioHelper;\n this.stack = stack;\n this.stackName = stackName;\n this.cfn = cfn;\n this.envResources = envResources;\n this.progressMonitor = new stack_progress_monitor_1.StackProgressMonitor(resourcesTotal);\n this.pollingInterval = pollingInterval;\n this.poller = new stack_event_poller_1.StackEventPoller(cfn, {\n stackName,\n startTime: changeSetCreationTime?.getTime() ?? Date.now(),\n });\n }\n /**\n * Return error messages of all encountered errors (that aren't cancellations)\n */\n get allErrorMessages() {\n return this._errors.map(e => e.ResourceStatusReason ?? '');\n }\n /**\n * Return error codeds of all encountered errors (that aren't cancellations nor stack errors)\n *\n * We don't need to include nested stack errors because our poller will poll the nested stack,\n * and have returned the actual error as well.\n */\n get allErrorCodes() {\n return this._errors\n .filter(util_1.isRegularResourceEvent)\n .map(extractErrorCode);\n }\n /**\n * Take our best guess at the error code of the root cause\n *\n * The first error that occurs is the root cause.\n */\n get rootCauseErrorCode() {\n return this.allErrorCodes[0];\n }\n async start() {\n this.monitorId = uuid.v4();\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5501.msg(`Deploying ${this.stackName}`, {\n deployment: this.monitorId,\n stack: this.stack,\n stackName: this.stackName,\n resourcesTotal: this.progressMonitor.total,\n }));\n this.scheduleNextTick();\n return this;\n }\n async stop() {\n const oldMonitorId = this.monitorId;\n this.monitorId = undefined;\n if (this.tickTimer) {\n clearTimeout(this.tickTimer);\n }\n // Do a final poll for all events. This is to handle the situation where DescribeStackStatus\n // already returned an error, but the monitor hasn't seen all the events yet and we'd end\n // up not printing the failure reason to users.\n await this.finalPollToEnd(oldMonitorId);\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5503.msg(`Completed ${this.stackName}`, {\n deployment: oldMonitorId,\n stack: this.stack,\n stackName: this.stackName,\n resourcesTotal: this.progressMonitor.total,\n }));\n }\n scheduleNextTick() {\n if (!this.monitorId) {\n return;\n }\n this.tickTimer = setTimeout(() => void this.tick(), this.pollingInterval);\n }\n async tick() {\n if (!this.monitorId) {\n return;\n }\n try {\n this.readPromise = this.readNewEvents(this.monitorId);\n await this.readPromise;\n this.readPromise = undefined;\n // We might have been stop()ped while the network call was in progress.\n if (!this.monitorId) {\n return;\n }\n }\n catch (e) {\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E5500.msg(util.format('Error occurred while monitoring stack: %s', e), { error: e }));\n }\n this.scheduleNextTick();\n }\n findMetadataFor(logicalId) {\n const metadata = this.stack.metadata;\n if (!logicalId || !metadata) {\n return undefined;\n }\n return (0, resource_metadata_1.resourceMetadata)(this.stack, logicalId);\n }\n /**\n * Trims leading/trailing whitespace, collapses all internal whitespace\n * (including newlines) to a single space, and truncates to `maxChars`\n * characters, appending `[...truncated]` when the original was longer.\n */\n normalizeMessage(message, maxChars = 400) {\n const normalized = message.trim().replace(/\\s+/g, ' ');\n return normalized.length > maxChars\n ? normalized.substring(0, maxChars) + '[...truncated]'\n : normalized;\n }\n /**\n * Fetches Guard Hook annotation details via GetHookResult API and formats them\n * into a human-readable string. Returns undefined if the fetch fails or there\n * are no failed annotations.\n */\n async fetchGuardHookAnnotations(hookInvocationId) {\n try {\n const result = await this.cfn.getHookResult({ HookResultId: hookInvocationId });\n const annotations = result.Annotations ?? [];\n const failedAnnotations = annotations.filter((a) => a.Status === 'FAILED');\n if (failedAnnotations.length === 0) {\n return undefined;\n }\n const lines = ['NonCompliant Rules:', ''];\n for (const annotation of failedAnnotations) {\n if (annotation.AnnotationName) {\n lines.push(`[${annotation.AnnotationName}]`);\n }\n if (annotation.StatusMessage) {\n lines.push(`• ${this.normalizeMessage(annotation.StatusMessage)}`);\n }\n if (annotation.RemediationMessage) {\n lines.push(`Remediation: ${this.normalizeMessage(annotation.RemediationMessage)}`);\n }\n lines.push('');\n }\n return lines.join('\\n').trimEnd();\n }\n catch (e) {\n const errorMessage = e instanceof Error ? e.message : String(e);\n const isPermissionsError = e.name === 'AccessDeniedException' ||\n (typeof errorMessage === 'string' && errorMessage.toLowerCase().includes('not authorized to perform: cloudformation:gethookresult'));\n if (isPermissionsError && this.envResources) {\n let currentVersion = undefined;\n try {\n currentVersion = (await this.envResources.lookupToolkit()).version;\n }\n catch {\n // ignore errors looking up the bootstrap version\n }\n await this.ioHelper.defaults.warn(util.format(`Failed to fetch result details for Hook invocation ${hookInvocationId}: ${errorMessage}. Make sure you have permissions to call the GetHookResult API, or re-bootstrap your environment by running 'cdk bootstrap' to update the Bootstrap CDK Toolkit stack.\n 'Bootstrap toolkit stack version 31 or later is needed; current version: ${currentVersion ?? 'unknown'}.`));\n }\n else {\n await this.ioHelper.defaults.warn(util.format('Failed to fetch Guard Hook details for invocation %s: %s', hookInvocationId, errorMessage));\n }\n return undefined;\n }\n }\n /**\n * Reads all new events from the stack history\n *\n * The events are returned in chronological order by the underlying poller.\n */\n async readNewEvents(monitorId) {\n const pollEvents = await this.poller.poll();\n for (const resourceEvent of pollEvents) {\n this.progressMonitor.process(resourceEvent.event);\n // If this is a failed Guard Hook event with an invocation ID, fetch annotations\n if (resourceEvent.event.HookInvocationId) {\n const annotations = await this.fetchGuardHookAnnotations(resourceEvent.event.HookInvocationId);\n if (annotations) {\n resourceEvent.event.HookStatusReason = annotations;\n }\n }\n const activity = {\n deployment: monitorId,\n event: resourceEvent.event,\n metadata: this.findMetadataFor(resourceEvent.event.LogicalResourceId),\n progress: this.progressMonitor.progress,\n };\n this.checkForErrors(activity);\n await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5502.msg(this.formatActivity(activity, true), activity));\n }\n }\n /**\n * Perform a final poll to the end and flush out all events to the printer\n *\n * Finish any poll currently in progress, then do a final one until we've\n * reached the last page.\n */\n async finalPollToEnd(monitorId) {\n // If we were doing a poll, finish that first. It was started before\n // the moment we were sure we weren't going to get any new events anymore\n // so we need to do a new one anyway. Need to wait for this one though\n // because our state is single-threaded.\n if (this.readPromise) {\n await this.readPromise;\n }\n await this.readNewEvents(monitorId);\n }\n /**\n * Formats a stack activity into a basic string\n */\n formatActivity(activity, progress) {\n const event = activity.event;\n const metadata = activity.metadata;\n const resourceName = metadata ? metadata.constructPath : event.LogicalResourceId || '';\n const logicalId = resourceName !== event.LogicalResourceId ? `(${event.LogicalResourceId}) ` : '';\n return util.format('%s | %s%s | %s | %s | %s %s%s%s', event.StackName, progress !== false ? `${activity.progress.formatted} | ` : '', new Date(event.Timestamp).toLocaleTimeString(), event.ResourceStatus || '', event.ResourceType, resourceName, logicalId, event.ResourceStatusReason ? event.ResourceStatusReason : '', metadata?.entry.trace ? `\\n\\t${metadata.entry.trace.join('\\n\\t\\\\_ ')}` : '');\n }\n checkForErrors(activity) {\n if ((0, util_1.isErrorEvent)(activity.event)) {\n // Cancelled is not an interesting failure reason, nor is the stack message (stack\n // message will just say something like \"stack failed to update\")\n if (!(0, util_1.isCancellationEvent)(activity.event) && (0, util_1.isRegularResourceEvent)(activity.event)) {\n this._errors.push(activity.event);\n }\n }\n }\n}\nexports.StackActivityMonitor = StackActivityMonitor;\n// Some custom resource types that the CDK standard library creates that we\n// would like to see it if they fail.\nconst OUR_CUSTOM_RESOURCE_TYPES = [\n 'Custom::AWS',\n 'Custom::AWSCDK-EKS-Cluster',\n 'Custom::AWSCDK-EKS-FargateProfile',\n 'Custom::AWSCDK-EKS-HelmChart',\n 'Custom::AWSCDK-EKS-KubernetesObjectValue',\n 'Custom::AWSCDK-EKS-KubernetesPatch',\n 'Custom::AWSCDK-EKS-KubernetesResource',\n 'Custom::AWSCDKCfnJson',\n 'Custom::AWSCDKCfnJsonStringify',\n 'Custom::AWSCDKOpenIdConnectProvider',\n 'Custom::CDKBucketDeployment',\n 'Custom::CloudwatchLogResourcePolicy',\n 'Custom::CrossAccountZoneDelegation',\n 'Custom::CrossRegionExportReader',\n 'Custom::CrossRegionExportWriter',\n 'Custom::CrossRegionStringParameterReader',\n 'Custom::DeleteExistingRecordSet',\n 'Custom::DescribeCognitoUserPoolClient',\n 'Custom::DynamoDBReplica',\n 'Custom::ECRAutoDeleteImages',\n 'Custom::ElasticsearchAccessPolicy',\n 'Custom::LogRetention',\n 'Custom::OpenSearchAccessPolicy',\n 'Custom::S3AutoDeleteObjects',\n 'Custom::S3BucketNotifications',\n 'Custom::SyntheticsAutoDeleteUnderlyingResources',\n 'Custom::Trigger',\n 'Custom::UserPoolCloudFrontDomainName',\n 'Custom::VpcRestrictDefaultSG',\n];\n/**\n * Extract an error code from the given stack event.\n *\n * Always contains the services, and includes the handler error code if available.\n */\nfunction extractErrorCode(event) {\n const isOurCustomResource = OUR_CUSTOM_RESOURCE_TYPES.includes(event.ResourceType ?? '');\n // Get the resource type; if it is non-AWS then we are done.\n const resourceTypeParts = (event.ResourceType ?? '').split('::');\n if (resourceTypeParts[0] !== 'AWS' && !isOurCustomResource) {\n return toolkit_error_1.DeploymentErrorCodes.PRIVATE_RESOURCE_ERROR;\n }\n const resourceType = isOurCustomResource ? resourceTypeParts.join('') : resourceTypeParts.slice(1).join('');\n const reason = event.ResourceStatusReason ?? '';\n const errorRe = /(?:HandlerErrorCode:|Error Code:) ([a-zA-Z0-9:-]+)/;\n const handlerCode = reason.match(errorRe);\n return `${resourceType}:${handlerCode ? handlerCode[1] : toolkit_error_1.DeploymentErrorCodes.UNKNOWN_ERROR}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYWN0aXZpdHktbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWFjdGl2aXR5LW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeWJBLDRDQWlCQztBQTFjRCw2QkFBNkI7QUFHN0IsNkJBQTZCO0FBQzdCLDZEQUF3RDtBQUN4RCxxRUFBZ0U7QUFFaEUsK0RBQW1FO0FBQ25FLHFDQUF1RjtBQUd2RiwyQ0FBa0Q7QUFDbEQsOEVBQTBFO0FBK0QxRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLG9CQUFvQjtJQUMvQjs7T0FFRztJQUNjLE1BQU0sQ0FBbUI7SUFFMUM7OztPQUdHO0lBQ2MsZUFBZSxDQUFTO0lBRXpDOzs7O09BSUc7SUFDYyxPQUFPLEdBQWlCLEVBQUUsQ0FBQztJQUVwQyxTQUFTLENBQVU7SUFFVixlQUFlLENBQXVCO0lBRXZEOztPQUVHO0lBQ0ssU0FBUyxDQUFpQztJQUVsRDs7T0FFRztJQUNLLFdBQVcsQ0FBZ0I7SUFFbEIsUUFBUSxDQUFXO0lBQ25CLFNBQVMsQ0FBUztJQUNsQixLQUFLLENBQThCO0lBQ25DLEdBQUcsQ0FBd0I7SUFDM0IsWUFBWSxDQUF3QjtJQUVyRCxZQUFZLEVBQ1YsR0FBRyxFQUNILFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsZUFBZSxHQUFHLEtBQUssRUFDdkIsWUFBWSxHQUNjO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFFakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLDZDQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxxQ0FBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsU0FBUztZQUNULFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsTUFBTSxDQUFDLDZCQUFzQixDQUFDO2FBQzlCLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDakYsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztTQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFFRCw0RkFBNEY7UUFDNUYseUZBQXlGO1FBQ3pGLCtDQUErQztRQUMvQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFeEMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2pGLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztTQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sS0FBSyxDQUFDLElBQUk7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEQsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1lBRTdCLHVFQUF1RTtZQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNwQixPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLDJDQUEyQyxFQUFFLENBQUMsQ0FBQyxFQUMzRCxFQUFFLEtBQUssRUFBRSxDQUFRLEVBQUUsQ0FDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxlQUFlLENBQUMsU0FBNkI7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUEsb0NBQWdCLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLE9BQWUsRUFBRSxXQUFtQixHQUFHO1FBQzlELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxRQUFRO1lBQ2pDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxnQkFBZ0I7WUFDdEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBd0I7UUFDOUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDaEYsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDN0MsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1lBQzNFLElBQUksaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQWEsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRCxLQUFLLE1BQU0sVUFBVSxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNDLElBQUksVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Z0JBQy9DLENBQUM7Z0JBQ0QsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckUsQ0FBQztnQkFDRCxJQUFJLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRixDQUFDO2dCQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakIsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLFlBQVksR0FBRyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFaEUsTUFBTSxrQkFBa0IsR0FDdEIsQ0FBQyxDQUFDLElBQUksS0FBSyx1QkFBdUI7Z0JBQ2xDLENBQUMsT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMseURBQXlELENBQUMsQ0FBQyxDQUFDO1lBRXZJLElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1QyxJQUFJLGNBQWMsR0FBdUIsU0FBUyxDQUFDO2dCQUNuRCxJQUFJLENBQUM7b0JBQ0gsY0FBYyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNyRSxDQUFDO2dCQUFDLE1BQU0sQ0FBQztvQkFDUCxpREFBaUQ7Z0JBQ25ELENBQUM7Z0JBRUQsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQ1Qsc0RBQXNELGdCQUFnQixLQUFLLFlBQVk7dUZBQ1osY0FBYyxJQUFJLFNBQVMsR0FBRyxDQUMxRyxDQUNGLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsMERBQTBELEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLENBQ3hHLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFpQjtRQUMzQyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFNUMsS0FBSyxNQUFNLGFBQWEsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFbEQsZ0ZBQWdGO1lBQ2hGLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQy9GLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2hCLGFBQWEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO2dCQUNyRCxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFrQjtnQkFDOUIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztnQkFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFDckUsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUTthQUN4QyxDQUFDO1lBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN0RyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFpQjtRQUM1QyxvRUFBb0U7UUFDcEUseUVBQXlFO1FBQ3pFLHNFQUFzRTtRQUN0RSx3Q0FBd0M7UUFDeEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLFFBQXVCLEVBQUUsUUFBaUI7UUFDL0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBRW5DLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUN2RixNQUFNLFNBQVMsR0FBRyxZQUFZLEtBQUssS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFbEcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixpQ0FBaUMsRUFDakMsS0FBSyxDQUFDLFNBQVMsRUFDZixRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDN0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQy9DLEtBQUssQ0FBQyxjQUFjLElBQUksRUFBRSxFQUMxQixLQUFLLENBQUMsWUFBWSxFQUNsQixZQUFZLEVBQ1osU0FBUyxFQUNULEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzVELFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzVFLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQXVCO1FBQzVDLElBQUksSUFBQSxtQkFBWSxFQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLGtGQUFrRjtZQUNsRixpRUFBaUU7WUFDakUsSUFBSSxDQUFDLElBQUEsMEJBQW1CLEVBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUEsNkJBQXNCLEVBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTNURCxvREEyVEM7QUFFRCwyRUFBMkU7QUFDM0UscUNBQXFDO0FBQ3JDLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsYUFBYTtJQUNiLDRCQUE0QjtJQUM1QixtQ0FBbUM7SUFDbkMsOEJBQThCO0lBQzlCLDBDQUEwQztJQUMxQyxvQ0FBb0M7SUFDcEMsdUNBQXVDO0lBQ3ZDLHVCQUF1QjtJQUN2QixnQ0FBZ0M7SUFDaEMscUNBQXFDO0lBQ3JDLDZCQUE2QjtJQUM3QixxQ0FBcUM7SUFDckMsb0NBQW9DO0lBQ3BDLGlDQUFpQztJQUNqQyxpQ0FBaUM7SUFDakMsMENBQTBDO0lBQzFDLGlDQUFpQztJQUNqQyx1Q0FBdUM7SUFDdkMseUJBQXlCO0lBQ3pCLDZCQUE2QjtJQUM3QixtQ0FBbUM7SUFDbkMsc0JBQXNCO0lBQ3RCLGdDQUFnQztJQUNoQyw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLGlEQUFpRDtJQUNqRCxpQkFBaUI7SUFDakIsc0NBQXNDO0lBQ3RDLDhCQUE4QjtDQUMvQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEtBQWlCO0lBQ2hELE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekYsNERBQTREO0lBQzVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0QsT0FBTyxvQ0FBb0IsQ0FBQyxzQkFBc0IsQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUU1RyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO0lBRWhELE1BQU0sT0FBTyxHQUFHLG9EQUFvRCxDQUFDO0lBQ3JFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFMUMsT0FBTyxHQUFHLFlBQVksSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0NBQW9CLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDaEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRXZlbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB7IFN0YWNrRXZlbnRQb2xsZXIgfSBmcm9tICcuL3N0YWNrLWV2ZW50LXBvbGxlcic7XG5pbXBvcnQgeyBTdGFja1Byb2dyZXNzTW9uaXRvciB9IGZyb20gJy4vc3RhY2stcHJvZ3Jlc3MtbW9uaXRvcic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9zdGFjay1hY3Rpdml0eSc7XG5pbXBvcnQgeyBEZXBsb3ltZW50RXJyb3JDb2RlcyB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBpc0NhbmNlbGxhdGlvbkV2ZW50LCBpc0Vycm9yRXZlbnQsIGlzUmVndWxhclJlc291cmNlRXZlbnQgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50UmVzb3VyY2VzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IHJlc291cmNlTWV0YWRhdGEgfSBmcm9tICcuLi9yZXNvdXJjZS1tZXRhZGF0YS9yZXNvdXJjZS1tZXRhZGF0YSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tBY3Rpdml0eU1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gY2xpZW50XG4gICAqL1xuICByZWFkb25seSBjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudDtcblxuICAvKipcbiAgICogVGhlIElvSGVscGVyIHVzZWQgZm9yIG1lc3NhZ2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgYXJ0aWZhY3QgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgU3RhY2sgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVG90YWwgbnVtYmVyIG9mIHJlc291cmNlcyB0byB1cGRhdGVcbiAgICpcbiAgICogVXNlZCB0byBjYWxjdWxhdGUgYSBwcm9ncmVzcyBiYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcHJvZ3Jlc3MgcmVwb3J0aW5nXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXNUb3RhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRpb24gdGltZSBvZiB0aGUgY2hhbmdlIHNldFxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgdXNlZCB0byBmaWx0ZXIgZXZlbnRzLCBvbmx5IHNob3dpbmcgdGhvc2UgZnJvbSBhZnRlciB0aGUgY2hhbmdlXG4gICAqIHNldCBjcmVhdGlvbiB0aW1lLlxuICAgKlxuICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcywgb3RoZXJ3aXNlIHRoZSBmaWx0ZXJpbmcgd2lsbCBiZSBzdWJqZWN0XG4gICAqIHRvIGNsb2NrIGRyaWZ0IGJldHdlZW4gbG9jYWwgYW5kIGNsb3VkIG1hY2hpbmVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIExvY2FsIG1hY2hpbmUncyBjdXJyZW50IHRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldENyZWF0aW9uVGltZT86IERhdGU7XG5cbiAgLyoqXG4gICAqIFRpbWUgdG8gd2FpdCBiZXR3ZWVuIGZldGNoaW5nIG5ldyBhY3Rpdml0aWVzLlxuICAgKlxuICAgKiBNdXN0IHdhaXQgYSByZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gcG9sbHMsIHNpbmNlIHdlIG5lZWQgdG8gY29uc2lkZXIgQ2xvdWRGb3JtYXRpb24gQVBJIGxpbWl0c1xuICAgKlxuICAgKiBAZGVmYXVsdCAyXzAwMFxuICAgKi9cbiAgcmVhZG9ubHkgcG9sbGluZ0ludGVydmFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCByZXNvdXJjZXMsIHVzZWQgdG8gbG9vayB1cCB0aGUgYm9vdHN0cmFwIHRvb2xraXQgdmVyc2lvbiB3aGVuXG4gICAqIGRpYWdub3NpbmcgR3VhcmQgSG9vayBhbm5vdGF0aW9uIGZldGNoIGZhaWx1cmVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJvb3RzdHJhcCB2ZXJzaW9uIGlzIG5vdCByZXBvcnRlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgZW52UmVzb3VyY2VzPzogRW52aXJvbm1lbnRSZXNvdXJjZXM7XG59XG5cbi8qKlxuICogRHJpdmVzIHRoZSBtb25pdG9yaW5nIG9mIGEgU3RhY2sgZGVwbG95bWVudFxuICpcbiAqIGBgYFxuICog4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICAgICAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICog4pSCICAgICAgICAgU3RhY2sgICAgICAgICDilIIgcG9sbCgpIOKUgiAgICAgICAgIFN0YWNrICAgICAgICAg4pSCICBwcm9jZXNzKGV2KSDilIIgICAgICAgICBTdGFjayAgICAgICAgIOKUglxuICog4pSCICAgICAgRXZlbnRQb2xsZXIgICAgICDilILil4DilIDilIDilIDilIDilIDilIDilIDilIIgICAgQWN0aXZpdHlNb25pdG9yICAgIOKUguKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWtuKUgiAgICBQcm9ncmVzc01vbml0b3IgICAg4pSCXG4gKiDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrQWN0aXZpdHlNb25pdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBwb2xsZXIgdXNlZCB0byByZWFkIHN0YWNrIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwb2xsZXI6IFN0YWNrRXZlbnRQb2xsZXI7XG5cbiAgLyoqXG4gICAqIEZldGNoIG5ldyBhY3Rpdml0eSBldmVyeSAxIHNlY29uZFxuICAgKiBQcmludGVycyBjYW4gZGVjaWRlIHRvIHVwZGF0ZSBhIHZpZXcgbGVzcyBmcmVxdWVudGx5IGlmIGRlc2lyZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcG9sbGluZ0ludGVydmFsOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBhbGwgbm9uLWNhbmNlbGxhdGlvbiBlcnJvcnMgd2UgaGF2ZSBzZWVuLlxuICAgKlxuICAgKiBCeSB0aGUgbmF0dXJlIG9mIHRoZSBvcmRlciB3ZSBzZWUgZXZlbnRzIGluLCB3aWxsIGJlIG9yZGVyZWQgZnJvbSBvbGRlc3QgdG8gbmV3ZXN0LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZXJyb3JzOiBTdGFja0V2ZW50W10gPSBbXTtcblxuICBwcml2YXRlIG1vbml0b3JJZD86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2dyZXNzTW9uaXRvcjogU3RhY2tQcm9ncmVzc01vbml0b3I7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgdGljayB0aW1lclxuICAgKi9cbiAgcHJpdmF0ZSB0aWNrVGltZXI/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICAvKipcbiAgICogU2V0IHRvIHRoZSBhY3Rpdml0eSBvZiByZWFkaW5nIHRoZSBjdXJyZW50IGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkUHJvbWlzZT86IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IGVudlJlc291cmNlcz86IEVudmlyb25tZW50UmVzb3VyY2VzO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjZm4sXG4gICAgaW9IZWxwZXIsXG4gICAgc3RhY2ssXG4gICAgc3RhY2tOYW1lLFxuICAgIHJlc291cmNlc1RvdGFsLFxuICAgIGNoYW5nZVNldENyZWF0aW9uVGltZSxcbiAgICBwb2xsaW5nSW50ZXJ2YWwgPSAyXzAwMCxcbiAgICBlbnZSZXNvdXJjZXMsXG4gIH06IFN0YWNrQWN0aXZpdHlNb25pdG9yUHJvcHMpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gICAgdGhpcy5zdGFjayA9IHN0YWNrO1xuICAgIHRoaXMuc3RhY2tOYW1lID0gc3RhY2tOYW1lO1xuICAgIHRoaXMuY2ZuID0gY2ZuO1xuICAgIHRoaXMuZW52UmVzb3VyY2VzID0gZW52UmVzb3VyY2VzO1xuXG4gICAgdGhpcy5wcm9ncmVzc01vbml0b3IgPSBuZXcgU3RhY2tQcm9ncmVzc01vbml0b3IocmVzb3VyY2VzVG90YWwpO1xuICAgIHRoaXMucG9sbGluZ0ludGVydmFsID0gcG9sbGluZ0ludGVydmFsO1xuICAgIHRoaXMucG9sbGVyID0gbmV3IFN0YWNrRXZlbnRQb2xsZXIoY2ZuLCB7XG4gICAgICBzdGFja05hbWUsXG4gICAgICBzdGFydFRpbWU6IGNoYW5nZVNldENyZWF0aW9uVGltZT8uZ2V0VGltZSgpID8/IERhdGUubm93KCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGVycm9yIG1lc3NhZ2VzIG9mIGFsbCBlbmNvdW50ZXJlZCBlcnJvcnMgKHRoYXQgYXJlbid0IGNhbmNlbGxhdGlvbnMpXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbEVycm9yTWVzc2FnZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9lcnJvcnMubWFwKGUgPT4gZS5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/PyAnJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGVycm9yIGNvZGVkcyBvZiBhbGwgZW5jb3VudGVyZWQgZXJyb3JzICh0aGF0IGFyZW4ndCBjYW5jZWxsYXRpb25zIG5vciBzdGFjayBlcnJvcnMpXG4gICAqXG4gICAqIFdlIGRvbid0IG5lZWQgdG8gaW5jbHVkZSBuZXN0ZWQgc3RhY2sgZXJyb3JzIGJlY2F1c2Ugb3VyIHBvbGxlciB3aWxsIHBvbGwgdGhlIG5lc3RlZCBzdGFjayxcbiAgICogYW5kIGhhdmUgcmV0dXJuZWQgdGhlIGFjdHVhbCBlcnJvciBhcyB3ZWxsLlxuICAgKi9cbiAgcHVibGljIGdldCBhbGxFcnJvckNvZGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzXG4gICAgICAuZmlsdGVyKGlzUmVndWxhclJlc291cmNlRXZlbnQpXG4gICAgICAubWFwKGV4dHJhY3RFcnJvckNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2Ugb3VyIGJlc3QgZ3Vlc3MgYXQgdGhlIGVycm9yIGNvZGUgb2YgdGhlIHJvb3QgY2F1c2VcbiAgICpcbiAgICogVGhlIGZpcnN0IGVycm9yIHRoYXQgb2NjdXJzIGlzIHRoZSByb290IGNhdXNlLlxuICAgKi9cbiAgcHVibGljIGdldCByb290Q2F1c2VFcnJvckNvZGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hbGxFcnJvckNvZGVzWzBdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0YXJ0KCkge1xuICAgIHRoaXMubW9uaXRvcklkID0gdXVpZC52NCgpO1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1NTAxLm1zZyhgRGVwbG95aW5nICR7dGhpcy5zdGFja05hbWV9YCwge1xuICAgICAgZGVwbG95bWVudDogdGhpcy5tb25pdG9ySWQsXG4gICAgICBzdGFjazogdGhpcy5zdGFjayxcbiAgICAgIHN0YWNrTmFtZTogdGhpcy5zdGFja05hbWUsXG4gICAgICByZXNvdXJjZXNUb3RhbDogdGhpcy5wcm9ncmVzc01vbml0b3IudG90YWwsXG4gICAgfSkpO1xuICAgIHRoaXMuc2NoZWR1bGVOZXh0VGljaygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0b3AoKSB7XG4gICAgY29uc3Qgb2xkTW9uaXRvcklkID0gdGhpcy5tb25pdG9ySWQhO1xuICAgIHRoaXMubW9uaXRvcklkID0gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLnRpY2tUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGlja1RpbWVyKTtcbiAgICB9XG5cbiAgICAvLyBEbyBhIGZpbmFsIHBvbGwgZm9yIGFsbCBldmVudHMuIFRoaXMgaXMgdG8gaGFuZGxlIHRoZSBzaXR1YXRpb24gd2hlcmUgRGVzY3JpYmVTdGFja1N0YXR1c1xuICAgIC8vIGFscmVhZHkgcmV0dXJuZWQgYW4gZXJyb3IsIGJ1dCB0aGUgbW9uaXRvciBoYXNuJ3Qgc2VlbiBhbGwgdGhlIGV2ZW50cyB5ZXQgYW5kIHdlJ2QgZW5kXG4gICAgLy8gdXAgbm90IHByaW50aW5nIHRoZSBmYWlsdXJlIHJlYXNvbiB0byB1c2Vycy5cbiAgICBhd2FpdCB0aGlzLmZpbmFsUG9sbFRvRW5kKG9sZE1vbml0b3JJZCk7XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTUwMy5tc2coYENvbXBsZXRlZCAke3RoaXMuc3RhY2tOYW1lfWAsIHtcbiAgICAgIGRlcGxveW1lbnQ6IG9sZE1vbml0b3JJZCxcbiAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgc3RhY2tOYW1lOiB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIHJlc291cmNlc1RvdGFsOiB0aGlzLnByb2dyZXNzTW9uaXRvci50b3RhbCxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlTmV4dFRpY2soKSB7XG4gICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudGlja1RpbWVyID0gc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudGljaygpLCB0aGlzLnBvbGxpbmdJbnRlcnZhbCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRpY2soKSB7XG4gICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlYWRQcm9taXNlID0gdGhpcy5yZWFkTmV3RXZlbnRzKHRoaXMubW9uaXRvcklkKTtcbiAgICAgIGF3YWl0IHRoaXMucmVhZFByb21pc2U7XG4gICAgICB0aGlzLnJlYWRQcm9taXNlID0gdW5kZWZpbmVkO1xuXG4gICAgICAvLyBXZSBtaWdodCBoYXZlIGJlZW4gc3RvcCgpcGVkIHdoaWxlIHRoZSBuZXR3b3JrIGNhbGwgd2FzIGluIHByb2dyZXNzLlxuICAgICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTU1MDAubXNnKFxuICAgICAgICB1dGlsLmZvcm1hdCgnRXJyb3Igb2NjdXJyZWQgd2hpbGUgbW9uaXRvcmluZyBzdGFjazogJXMnLCBlKSxcbiAgICAgICAgeyBlcnJvcjogZSBhcyBhbnkgfSxcbiAgICAgICkpO1xuICAgIH1cbiAgICB0aGlzLnNjaGVkdWxlTmV4dFRpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE1ldGFkYXRhRm9yKGxvZ2ljYWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLnN0YWNrLm1ldGFkYXRhO1xuICAgIGlmICghbG9naWNhbElkIHx8ICFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc291cmNlTWV0YWRhdGEodGhpcy5zdGFjaywgbG9naWNhbElkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmltcyBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UsIGNvbGxhcHNlcyBhbGwgaW50ZXJuYWwgd2hpdGVzcGFjZVxuICAgKiAoaW5jbHVkaW5nIG5ld2xpbmVzKSB0byBhIHNpbmdsZSBzcGFjZSwgYW5kIHRydW5jYXRlcyB0byBgbWF4Q2hhcnNgXG4gICAqIGNoYXJhY3RlcnMsIGFwcGVuZGluZyBgWy4uLnRydW5jYXRlZF1gIHdoZW4gdGhlIG9yaWdpbmFsIHdhcyBsb25nZXIuXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCBtYXhDaGFyczogbnVtYmVyID0gNDAwKTogc3RyaW5nIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gbWVzc2FnZS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xuICAgIHJldHVybiBub3JtYWxpemVkLmxlbmd0aCA+IG1heENoYXJzXG4gICAgICA/IG5vcm1hbGl6ZWQuc3Vic3RyaW5nKDAsIG1heENoYXJzKSArICdbLi4udHJ1bmNhdGVkXSdcbiAgICAgIDogbm9ybWFsaXplZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIEd1YXJkIEhvb2sgYW5ub3RhdGlvbiBkZXRhaWxzIHZpYSBHZXRIb29rUmVzdWx0IEFQSSBhbmQgZm9ybWF0cyB0aGVtXG4gICAqIGludG8gYSBodW1hbi1yZWFkYWJsZSBzdHJpbmcuIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBmZXRjaCBmYWlscyBvciB0aGVyZVxuICAgKiBhcmUgbm8gZmFpbGVkIGFubm90YXRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaEd1YXJkSG9va0Fubm90YXRpb25zKGhvb2tJbnZvY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2ZuLmdldEhvb2tSZXN1bHQoeyBIb29rUmVzdWx0SWQ6IGhvb2tJbnZvY2F0aW9uSWQgfSk7XG4gICAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHJlc3VsdC5Bbm5vdGF0aW9ucyA/PyBbXTtcbiAgICAgIGNvbnN0IGZhaWxlZEFubm90YXRpb25zID0gYW5ub3RhdGlvbnMuZmlsdGVyKChhKSA9PiBhLlN0YXR1cyA9PT0gJ0ZBSUxFRCcpO1xuICAgICAgaWYgKGZhaWxlZEFubm90YXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbJ05vbkNvbXBsaWFudCBSdWxlczonLCAnJ107XG4gICAgICBmb3IgKGNvbnN0IGFubm90YXRpb24gb2YgZmFpbGVkQW5ub3RhdGlvbnMpIHtcbiAgICAgICAgaWYgKGFubm90YXRpb24uQW5ub3RhdGlvbk5hbWUpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKGBbJHthbm5vdGF0aW9uLkFubm90YXRpb25OYW1lfV1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYW5ub3RhdGlvbi5TdGF0dXNNZXNzYWdlKSB7XG4gICAgICAgICAgbGluZXMucHVzaChg4oCiICR7dGhpcy5ub3JtYWxpemVNZXNzYWdlKGFubm90YXRpb24uU3RhdHVzTWVzc2FnZSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFubm90YXRpb24uUmVtZWRpYXRpb25NZXNzYWdlKSB7XG4gICAgICAgICAgbGluZXMucHVzaChgUmVtZWRpYXRpb246ICR7dGhpcy5ub3JtYWxpemVNZXNzYWdlKGFubm90YXRpb24uUmVtZWRpYXRpb25NZXNzYWdlKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKS50cmltRW5kKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSk7XG5cbiAgICAgIGNvbnN0IGlzUGVybWlzc2lvbnNFcnJvciA9XG4gICAgICAgIGUubmFtZSA9PT0gJ0FjY2Vzc0RlbmllZEV4Y2VwdGlvbicgfHxcbiAgICAgICAgKHR5cGVvZiBlcnJvck1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIGVycm9yTWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtOiBjbG91ZGZvcm1hdGlvbjpnZXRob29rcmVzdWx0JykpO1xuXG4gICAgICBpZiAoaXNQZXJtaXNzaW9uc0Vycm9yICYmIHRoaXMuZW52UmVzb3VyY2VzKSB7XG4gICAgICAgIGxldCBjdXJyZW50VmVyc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGN1cnJlbnRWZXJzaW9uID0gKGF3YWl0IHRoaXMuZW52UmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKSkudmVyc2lvbjtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gaWdub3JlIGVycm9ycyBsb29raW5nIHVwIHRoZSBib290c3RyYXAgdmVyc2lvblxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCByZXN1bHQgZGV0YWlscyBmb3IgSG9vayBpbnZvY2F0aW9uICR7aG9va0ludm9jYXRpb25JZH06ICR7ZXJyb3JNZXNzYWdlfS4gTWFrZSBzdXJlIHlvdSBoYXZlIHBlcm1pc3Npb25zIHRvIGNhbGwgdGhlIEdldEhvb2tSZXN1bHQgQVBJLCBvciByZS1ib290c3RyYXAgeW91ciBlbnZpcm9ubWVudCBieSBydW5uaW5nICdjZGsgYm9vdHN0cmFwJyB0byB1cGRhdGUgdGhlIEJvb3RzdHJhcCBDREsgVG9vbGtpdCBzdGFjay5cbiAgICAgICAgICAgICdCb290c3RyYXAgdG9vbGtpdCBzdGFjayB2ZXJzaW9uIDMxIG9yIGxhdGVyIGlzIG5lZWRlZDsgY3VycmVudCB2ZXJzaW9uOiAke2N1cnJlbnRWZXJzaW9uID8/ICd1bmtub3duJ30uYCxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy53YXJuKFxuICAgICAgICAgIHV0aWwuZm9ybWF0KCdGYWlsZWQgdG8gZmV0Y2ggR3VhcmQgSG9vayBkZXRhaWxzIGZvciBpbnZvY2F0aW9uICVzOiAlcycsIGhvb2tJbnZvY2F0aW9uSWQsIGVycm9yTWVzc2FnZSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGFsbCBuZXcgZXZlbnRzIGZyb20gdGhlIHN0YWNrIGhpc3RvcnlcbiAgICpcbiAgICogVGhlIGV2ZW50cyBhcmUgcmV0dXJuZWQgaW4gY2hyb25vbG9naWNhbCBvcmRlciBieSB0aGUgdW5kZXJseWluZyBwb2xsZXIuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlYWROZXdFdmVudHMobW9uaXRvcklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwb2xsRXZlbnRzID0gYXdhaXQgdGhpcy5wb2xsZXIucG9sbCgpO1xuXG4gICAgZm9yIChjb25zdCByZXNvdXJjZUV2ZW50IG9mIHBvbGxFdmVudHMpIHtcbiAgICAgIHRoaXMucHJvZ3Jlc3NNb25pdG9yLnByb2Nlc3MocmVzb3VyY2VFdmVudC5ldmVudCk7XG5cbiAgICAgIC8vIElmIHRoaXMgaXMgYSBmYWlsZWQgR3VhcmQgSG9vayBldmVudCB3aXRoIGFuIGludm9jYXRpb24gSUQsIGZldGNoIGFubm90YXRpb25zXG4gICAgICBpZiAocmVzb3VyY2VFdmVudC5ldmVudC5Ib29rSW52b2NhdGlvbklkKSB7XG4gICAgICAgIGNvbnN0IGFubm90YXRpb25zID0gYXdhaXQgdGhpcy5mZXRjaEd1YXJkSG9va0Fubm90YXRpb25zKHJlc291cmNlRXZlbnQuZXZlbnQuSG9va0ludm9jYXRpb25JZCk7XG4gICAgICAgIGlmIChhbm5vdGF0aW9ucykge1xuICAgICAgICAgIHJlc291cmNlRXZlbnQuZXZlbnQuSG9va1N0YXR1c1JlYXNvbiA9IGFubm90YXRpb25zO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5ID0ge1xuICAgICAgICBkZXBsb3ltZW50OiBtb25pdG9ySWQsXG4gICAgICAgIGV2ZW50OiByZXNvdXJjZUV2ZW50LmV2ZW50LFxuICAgICAgICBtZXRhZGF0YTogdGhpcy5maW5kTWV0YWRhdGFGb3IocmVzb3VyY2VFdmVudC5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCksXG4gICAgICAgIHByb2dyZXNzOiB0aGlzLnByb2dyZXNzTW9uaXRvci5wcm9ncmVzcyxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuY2hlY2tGb3JFcnJvcnMoYWN0aXZpdHkpO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU1MDIubXNnKHRoaXMuZm9ybWF0QWN0aXZpdHkoYWN0aXZpdHksIHRydWUpLCBhY3Rpdml0eSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGEgZmluYWwgcG9sbCB0byB0aGUgZW5kIGFuZCBmbHVzaCBvdXQgYWxsIGV2ZW50cyB0byB0aGUgcHJpbnRlclxuICAgKlxuICAgKiBGaW5pc2ggYW55IHBvbGwgY3VycmVudGx5IGluIHByb2dyZXNzLCB0aGVuIGRvIGEgZmluYWwgb25lIHVudGlsIHdlJ3ZlXG4gICAqIHJlYWNoZWQgdGhlIGxhc3QgcGFnZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmluYWxQb2xsVG9FbmQobW9uaXRvcklkOiBzdHJpbmcpIHtcbiAgICAvLyBJZiB3ZSB3ZXJlIGRvaW5nIGEgcG9sbCwgZmluaXNoIHRoYXQgZmlyc3QuIEl0IHdhcyBzdGFydGVkIGJlZm9yZVxuICAgIC8vIHRoZSBtb21lbnQgd2Ugd2VyZSBzdXJlIHdlIHdlcmVuJ3QgZ29pbmcgdG8gZ2V0IGFueSBuZXcgZXZlbnRzIGFueW1vcmVcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIGRvIGEgbmV3IG9uZSBhbnl3YXkuIE5lZWQgdG8gd2FpdCBmb3IgdGhpcyBvbmUgdGhvdWdoXG4gICAgLy8gYmVjYXVzZSBvdXIgc3RhdGUgaXMgc2luZ2xlLXRocmVhZGVkLlxuICAgIGlmICh0aGlzLnJlYWRQcm9taXNlKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlYWRQcm9taXNlO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucmVhZE5ld0V2ZW50cyhtb25pdG9ySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBzdGFjayBhY3Rpdml0eSBpbnRvIGEgYmFzaWMgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGZvcm1hdEFjdGl2aXR5KGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5LCBwcm9ncmVzczogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3QgZXZlbnQgPSBhY3Rpdml0eS5ldmVudDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IGFjdGl2aXR5Lm1ldGFkYXRhO1xuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gbWV0YWRhdGEgPyBtZXRhZGF0YS5jb25zdHJ1Y3RQYXRoIDogZXZlbnQuTG9naWNhbFJlc291cmNlSWQgfHwgJyc7XG4gICAgY29uc3QgbG9naWNhbElkID0gcmVzb3VyY2VOYW1lICE9PSBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/IGAoJHtldmVudC5Mb2dpY2FsUmVzb3VyY2VJZH0pIGAgOiAnJztcblxuICAgIHJldHVybiB1dGlsLmZvcm1hdChcbiAgICAgICclcyB8ICVzJXMgfCAlcyB8ICVzIHwgJXMgJXMlcyVzJyxcbiAgICAgIGV2ZW50LlN0YWNrTmFtZSxcbiAgICAgIHByb2dyZXNzICE9PSBmYWxzZSA/IGAke2FjdGl2aXR5LnByb2dyZXNzLmZvcm1hdHRlZH0gfCBgIDogJycsXG4gICAgICBuZXcgRGF0ZShldmVudC5UaW1lc3RhbXAhKS50b0xvY2FsZVRpbWVTdHJpbmcoKSxcbiAgICAgIGV2ZW50LlJlc291cmNlU3RhdHVzIHx8ICcnLFxuICAgICAgZXZlbnQuUmVzb3VyY2VUeXBlLFxuICAgICAgcmVzb3VyY2VOYW1lLFxuICAgICAgbG9naWNhbElkLFxuICAgICAgZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gPyBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA6ICcnLFxuICAgICAgbWV0YWRhdGE/LmVudHJ5LnRyYWNlID8gYFxcblxcdCR7bWV0YWRhdGEuZW50cnkudHJhY2Uuam9pbignXFxuXFx0XFxcXF8gJyl9YCA6ICcnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yRXJyb3JzKGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5KSB7XG4gICAgaWYgKGlzRXJyb3JFdmVudChhY3Rpdml0eS5ldmVudCkpIHtcbiAgICAgIC8vIENhbmNlbGxlZCBpcyBub3QgYW4gaW50ZXJlc3RpbmcgZmFpbHVyZSByZWFzb24sIG5vciBpcyB0aGUgc3RhY2sgbWVzc2FnZSAoc3RhY2tcbiAgICAgIC8vIG1lc3NhZ2Ugd2lsbCBqdXN0IHNheSBzb21ldGhpbmcgbGlrZSBcInN0YWNrIGZhaWxlZCB0byB1cGRhdGVcIilcbiAgICAgIGlmICghaXNDYW5jZWxsYXRpb25FdmVudChhY3Rpdml0eS5ldmVudCkgJiYgaXNSZWd1bGFyUmVzb3VyY2VFdmVudChhY3Rpdml0eS5ldmVudCkpIHtcbiAgICAgICAgdGhpcy5fZXJyb3JzLnB1c2goYWN0aXZpdHkuZXZlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBTb21lIGN1c3RvbSByZXNvdXJjZSB0eXBlcyB0aGF0IHRoZSBDREsgc3RhbmRhcmQgbGlicmFyeSBjcmVhdGVzIHRoYXQgd2Vcbi8vIHdvdWxkIGxpa2UgdG8gc2VlIGl0IGlmIHRoZXkgZmFpbC5cbmNvbnN0IE9VUl9DVVNUT01fUkVTT1VSQ0VfVFlQRVMgPSBbXG4gICdDdXN0b206OkFXUycsXG4gICdDdXN0b206OkFXU0NESy1FS1MtQ2x1c3RlcicsXG4gICdDdXN0b206OkFXU0NESy1FS1MtRmFyZ2F0ZVByb2ZpbGUnLFxuICAnQ3VzdG9tOjpBV1NDREstRUtTLUhlbG1DaGFydCcsXG4gICdDdXN0b206OkFXU0NESy1FS1MtS3ViZXJuZXRlc09iamVjdFZhbHVlJyxcbiAgJ0N1c3RvbTo6QVdTQ0RLLUVLUy1LdWJlcm5ldGVzUGF0Y2gnLFxuICAnQ3VzdG9tOjpBV1NDREstRUtTLUt1YmVybmV0ZXNSZXNvdXJjZScsXG4gICdDdXN0b206OkFXU0NES0Nmbkpzb24nLFxuICAnQ3VzdG9tOjpBV1NDREtDZm5Kc29uU3RyaW5naWZ5JyxcbiAgJ0N1c3RvbTo6QVdTQ0RLT3BlbklkQ29ubmVjdFByb3ZpZGVyJyxcbiAgJ0N1c3RvbTo6Q0RLQnVja2V0RGVwbG95bWVudCcsXG4gICdDdXN0b206OkNsb3Vkd2F0Y2hMb2dSZXNvdXJjZVBvbGljeScsXG4gICdDdXN0b206OkNyb3NzQWNjb3VudFpvbmVEZWxlZ2F0aW9uJyxcbiAgJ0N1c3RvbTo6Q3Jvc3NSZWdpb25FeHBvcnRSZWFkZXInLFxuICAnQ3VzdG9tOjpDcm9zc1JlZ2lvbkV4cG9ydFdyaXRlcicsXG4gICdDdXN0b206OkNyb3NzUmVnaW9uU3RyaW5nUGFyYW1ldGVyUmVhZGVyJyxcbiAgJ0N1c3RvbTo6RGVsZXRlRXhpc3RpbmdSZWNvcmRTZXQnLFxuICAnQ3VzdG9tOjpEZXNjcmliZUNvZ25pdG9Vc2VyUG9vbENsaWVudCcsXG4gICdDdXN0b206OkR5bmFtb0RCUmVwbGljYScsXG4gICdDdXN0b206OkVDUkF1dG9EZWxldGVJbWFnZXMnLFxuICAnQ3VzdG9tOjpFbGFzdGljc2VhcmNoQWNjZXNzUG9saWN5JyxcbiAgJ0N1c3RvbTo6TG9nUmV0ZW50aW9uJyxcbiAgJ0N1c3RvbTo6T3BlblNlYXJjaEFjY2Vzc1BvbGljeScsXG4gICdDdXN0b206OlMzQXV0b0RlbGV0ZU9iamVjdHMnLFxuICAnQ3VzdG9tOjpTM0J1Y2tldE5vdGlmaWNhdGlvbnMnLFxuICAnQ3VzdG9tOjpTeW50aGV0aWNzQXV0b0RlbGV0ZVVuZGVybHlpbmdSZXNvdXJjZXMnLFxuICAnQ3VzdG9tOjpUcmlnZ2VyJyxcbiAgJ0N1c3RvbTo6VXNlclBvb2xDbG91ZEZyb250RG9tYWluTmFtZScsXG4gICdDdXN0b206OlZwY1Jlc3RyaWN0RGVmYXVsdFNHJyxcbl07XG5cbi8qKlxuICogRXh0cmFjdCBhbiBlcnJvciBjb2RlIGZyb20gdGhlIGdpdmVuIHN0YWNrIGV2ZW50LlxuICpcbiAqIEFsd2F5cyBjb250YWlucyB0aGUgc2VydmljZXMsIGFuZCBpbmNsdWRlcyB0aGUgaGFuZGxlciBlcnJvciBjb2RlIGlmIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RFcnJvckNvZGUoZXZlbnQ6IFN0YWNrRXZlbnQpOiBzdHJpbmcge1xuICBjb25zdCBpc091ckN1c3RvbVJlc291cmNlID0gT1VSX0NVU1RPTV9SRVNPVVJDRV9UWVBFUy5pbmNsdWRlcyhldmVudC5SZXNvdXJjZVR5cGUgPz8gJycpO1xuXG4gIC8vIEdldCB0aGUgcmVzb3VyY2UgdHlwZTsgaWYgaXQgaXMgbm9uLUFXUyB0aGVuIHdlIGFyZSBkb25lLlxuICBjb25zdCByZXNvdXJjZVR5cGVQYXJ0cyA9IChldmVudC5SZXNvdXJjZVR5cGUgPz8gJycpLnNwbGl0KCc6OicpO1xuICBpZiAocmVzb3VyY2VUeXBlUGFydHNbMF0gIT09ICdBV1MnICYmICFpc091ckN1c3RvbVJlc291cmNlKSB7XG4gICAgcmV0dXJuIERlcGxveW1lbnRFcnJvckNvZGVzLlBSSVZBVEVfUkVTT1VSQ0VfRVJST1I7XG4gIH1cblxuICBjb25zdCByZXNvdXJjZVR5cGUgPSBpc091ckN1c3RvbVJlc291cmNlID8gcmVzb3VyY2VUeXBlUGFydHMuam9pbignJykgOiByZXNvdXJjZVR5cGVQYXJ0cy5zbGljZSgxKS5qb2luKCcnKTtcblxuICBjb25zdCByZWFzb24gPSBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/PyAnJztcblxuICBjb25zdCBlcnJvclJlID0gLyg/OkhhbmRsZXJFcnJvckNvZGU6fEVycm9yIENvZGU6KSAoW2EtekEtWjAtOTotXSspLztcbiAgY29uc3QgaGFuZGxlckNvZGUgPSByZWFzb24ubWF0Y2goZXJyb3JSZSk7XG5cbiAgcmV0dXJuIGAke3Jlc291cmNlVHlwZX06JHtoYW5kbGVyQ29kZSA/IGhhbmRsZXJDb2RlWzFdIDogRGVwbG95bWVudEVycm9yQ29kZXMuVU5LTk9XTl9FUlJPUn1gO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackEventPoller = void 0;\nconst util_1 = require(\"../../util\");\nclass StackEventPoller {\n cfn;\n props;\n events = [];\n complete = false;\n eventIds = new Set();\n nestedStackPollers = {};\n constructor(cfn, props) {\n this.cfn = cfn;\n this.props = props;\n }\n /**\n * From all accumulated events, return only the errors\n */\n get resourceErrors() {\n return this.events.filter((e) => e.event.ResourceStatus?.endsWith('_FAILED') && !e.isStackEvent);\n }\n /**\n * Poll for new stack events\n *\n * Will read all events that are available up until the oldest events\n * indicated by the constructor filters, or until it encounters events that it\n * has already read before.\n *\n * Recurses into nested stacks, and returns events old-to-new. Multiple\n * invocations to `poll` will return *newer* events (also in old-to-new order).\n */\n async poll() {\n const events = await this.doPoll();\n // Also poll all nested stacks we're currently tracking\n for (const [logicalId, poller] of Object.entries(this.nestedStackPollers)) {\n events.push(...(await poller.poll()));\n if (poller.complete) {\n delete this.nestedStackPollers[logicalId];\n }\n }\n // Return what we have so far\n events.sort((a, b) => a.event.Timestamp.valueOf() - b.event.Timestamp.valueOf());\n this.events.push(...events);\n return events;\n }\n async doPoll() {\n const events = [];\n try {\n let nextToken;\n let finished = false;\n while (!finished) {\n const page = await this.cfn.describeStackEvents({ StackName: this.props.stackName, NextToken: nextToken });\n for (const event of page?.StackEvents ?? []) {\n // Event from before we were interested in 'em\n if (this.props.startTime !== undefined && event.Timestamp.valueOf() < this.props.startTime) {\n return events;\n }\n // Already seen this one\n if (this.eventIds.has(event.EventId)) {\n return events;\n }\n this.eventIds.add(event.EventId);\n const isParentStackEvent = (0, util_1.isRootStackEvent)(event);\n if (isParentStackEvent && this.props.stackStatuses?.includes(event.ResourceStatus ?? '')) {\n return events;\n }\n // Fresh event\n const resEvent = {\n event: event,\n parentStackLogicalIds: this.props.parentStackLogicalIds ?? [],\n isStackEvent: isParentStackEvent,\n };\n events.push(resEvent);\n if (!isParentStackEvent &&\n event.ResourceType === 'AWS::CloudFormation::Stack' &&\n isStackBeginOperationState(event.ResourceStatus)) {\n // If the event is not for `this` stack and has a physical resource Id, recursively call for events in the nested stack\n this.trackNestedStack(event, [...(this.props.parentStackLogicalIds ?? []), event.LogicalResourceId ?? '']);\n }\n if (isParentStackEvent && isStackTerminalState(event.ResourceStatus)) {\n this.complete = true;\n }\n }\n nextToken = page?.NextToken;\n if (nextToken === undefined) {\n finished = true;\n }\n }\n }\n catch (e) {\n if (!(e.name === 'ValidationError' && (0, util_1.formatErrorMessage)(e) === `Stack [${this.props.stackName}] does not exist`)) {\n throw e;\n }\n }\n return events;\n }\n /**\n * On the CREATE_IN_PROGRESS, UPDATE_IN_PROGRESS, DELETE_IN_PROGRESS event of a nested stack, poll the nested stack updates\n */\n trackNestedStack(event, parentStackLogicalIds) {\n const logicalId = event.LogicalResourceId;\n const physicalResourceId = event.PhysicalResourceId;\n // The CREATE_IN_PROGRESS event for a Nested Stack is emitted twice; first without a PhysicalResourceId\n // and then with. Ignore this event if we don't have that property yet.\n //\n // (At this point, I also don't trust that logicalId is always going to be there so validate that as well)\n if (!logicalId || !physicalResourceId) {\n return;\n }\n if (!this.nestedStackPollers[logicalId]) {\n this.nestedStackPollers[logicalId] = new StackEventPoller(this.cfn, {\n stackName: physicalResourceId,\n parentStackLogicalIds: parentStackLogicalIds,\n startTime: event.Timestamp.valueOf(),\n });\n }\n }\n}\nexports.StackEventPoller = StackEventPoller;\nfunction isStackBeginOperationState(state) {\n return [\n 'CREATE_IN_PROGRESS',\n 'UPDATE_IN_PROGRESS',\n 'DELETE_IN_PROGRESS',\n 'UPDATE_ROLLBACK_IN_PROGRESS',\n 'ROLLBACK_IN_PROGRESS',\n ].includes(state ?? '');\n}\nfunction isStackTerminalState(state) {\n return !(state ?? '').endsWith('_IN_PROGRESS');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stZXZlbnQtcG9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stZXZlbnQtcG9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFDQUFrRTtBQW1EbEUsTUFBYSxnQkFBZ0I7SUFRUjtJQUNBO0lBUkgsTUFBTSxHQUFvQixFQUFFLENBQUM7SUFDdEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVoQixRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUM3QixrQkFBa0IsR0FBcUMsRUFBRSxDQUFDO0lBRTNFLFlBQ21CLEdBQTBCLEVBQzFCLEtBQTRCO1FBRDVCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQXVCO0lBRS9DLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxNQUFNLEdBQW9CLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXBELHVEQUF1RDtRQUN2RCxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUMsa0JB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QTBCLENBQUMsS0FBeUI7SUFDM0QsT0FBTztRQUNMLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLDZCQUE2QjtRQUM3QixzQkFBc0I7S0FDdkIsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLEtBQXlCO0lBQ3JELE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tFdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UsIGlzUm9vdFN0YWNrRXZlbnQgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tFdmVudFBvbGxlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0byBwb2xsXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogSURzIG9mIHBhcmVudCBzdGFja3Mgb2YgdGhpcyByZXNvdXJjZSwgaW4gY2FzZSBvZiByZXNvdXJjZXMgaW4gbmVzdGVkIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50U3RhY2tMb2dpY2FsSWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCBmb3IgdGhlIG9sZGVzdCBldmVudCB3ZSdyZSBpbnRlcmVzdGVkIGluXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVhZCBhbGwgZXZlbnRzXG4gICAqL1xuICByZWFkb25seSBzdGFydFRpbWU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN0b3AgcmVhZGluZyB3aGVuIHdlIHNlZSB0aGUgc3RhY2sgZW50ZXJpbmcgdGhpcyBzdGF0dXNcbiAgICpcbiAgICogU2hvdWxkIGJlIHNvbWV0aGluZyBsaWtlIGBDUkVBVEVfSU5fUFJPR1JFU1NgLCBgVVBEQVRFX0lOX1BST0dSRVNTYCxcbiAgICogYERFTEVURV9JTl9QUk9HUkVTUywgYFJPTExCQUNLX0lOX1BST0dSRVNTYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZWFkIGFsbCBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrU3RhdHVzZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUV2ZW50IHtcbiAgLyoqXG4gICAqIFRoZSBTdGFjayBFdmVudCBhcyByZWNlaXZlZCBmcm9tIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICByZWFkb25seSBldmVudDogU3RhY2tFdmVudDtcblxuICAvKipcbiAgICogSURzIG9mIHBhcmVudCBzdGFja3Mgb2YgdGhlIHJlc291cmNlLCBpbiBjYXNlIG9mIHJlc291cmNlcyBpbiBuZXN0ZWQgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBwYXJlbnRTdGFja0xvZ2ljYWxJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgZXZlbnQgcmVnYXJkcyB0aGUgcm9vdCBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNTdGFja0V2ZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrRXZlbnRQb2xsZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzOiBSZXNvdXJjZUV2ZW50W10gPSBbXTtcbiAgcHVibGljIGNvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBldmVudElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5lc3RlZFN0YWNrUG9sbGVyczogUmVjb3JkPHN0cmluZywgU3RhY2tFdmVudFBvbGxlcj4gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFN0YWNrRXZlbnRQb2xsZXJQcm9wcyxcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogRnJvbSBhbGwgYWNjdW11bGF0ZWQgZXZlbnRzLCByZXR1cm4gb25seSB0aGUgZXJyb3JzXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlRXJyb3JzKCk6IFJlc291cmNlRXZlbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzLmZpbHRlcigoZSkgPT4gZS5ldmVudC5SZXNvdXJjZVN0YXR1cz8uZW5kc1dpdGgoJ19GQUlMRUQnKSAmJiAhZS5pc1N0YWNrRXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvbGwgZm9yIG5ldyBzdGFjayBldmVudHNcbiAgICpcbiAgICogV2lsbCByZWFkIGFsbCBldmVudHMgdGhhdCBhcmUgYXZhaWxhYmxlIHVwIHVudGlsIHRoZSBvbGRlc3QgZXZlbnRzXG4gICAqIGluZGljYXRlZCBieSB0aGUgY29uc3RydWN0b3IgZmlsdGVycywgb3IgdW50aWwgaXQgZW5jb3VudGVycyBldmVudHMgdGhhdCBpdFxuICAgKiBoYXMgYWxyZWFkeSByZWFkIGJlZm9yZS5cbiAgICpcbiAgICogUmVjdXJzZXMgaW50byBuZXN0ZWQgc3RhY2tzLCBhbmQgcmV0dXJucyBldmVudHMgb2xkLXRvLW5ldy4gTXVsdGlwbGVcbiAgICogaW52b2NhdGlvbnMgdG8gYHBvbGxgIHdpbGwgcmV0dXJuICpuZXdlciogZXZlbnRzIChhbHNvIGluIG9sZC10by1uZXcgb3JkZXIpLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHBvbGwoKTogUHJvbWlzZTxSZXNvdXJjZUV2ZW50W10+IHtcbiAgICBjb25zdCBldmVudHM6IFJlc291cmNlRXZlbnRbXSA9IGF3YWl0IHRoaXMuZG9Qb2xsKCk7XG5cbiAgICAvLyBBbHNvIHBvbGwgYWxsIG5lc3RlZCBzdGFja3Mgd2UncmUgY3VycmVudGx5IHRyYWNraW5nXG4gICAgZm9yIChjb25zdCBbbG9naWNhbElkLCBwb2xsZXJdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubmVzdGVkU3RhY2tQb2xsZXJzKSkge1xuICAgICAgZXZlbnRzLnB1c2goLi4uKGF3YWl0IHBvbGxlci5wb2xsKCkpKTtcbiAgICAgIGlmIChwb2xsZXIuY29tcGxldGUpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMubmVzdGVkU3RhY2tQb2xsZXJzW2xvZ2ljYWxJZF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHdoYXQgd2UgaGF2ZSBzbyBmYXJcbiAgICBldmVudHMuc29ydCgoYSwgYikgPT4gYS5ldmVudC5UaW1lc3RhbXAhLnZhbHVlT2YoKSAtIGIuZXZlbnQuVGltZXN0YW1wIS52YWx1ZU9mKCkpO1xuICAgIHRoaXMuZXZlbnRzLnB1c2goLi4uZXZlbnRzKTtcbiAgICByZXR1cm4gZXZlbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkb1BvbGwoKTogUHJvbWlzZTxSZXNvdXJjZUV2ZW50W10+IHtcbiAgICBjb25zdCBldmVudHM6IFJlc291cmNlRXZlbnRbXSA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuICAgICAgd2hpbGUgKCFmaW5pc2hlZCkge1xuICAgICAgICBjb25zdCBwYWdlID0gYXdhaXQgdGhpcy5jZm4uZGVzY3JpYmVTdGFja0V2ZW50cyh7IFN0YWNrTmFtZTogdGhpcy5wcm9wcy5zdGFja05hbWUsIE5leHRUb2tlbjogbmV4dFRva2VuIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIHBhZ2U/LlN0YWNrRXZlbnRzID8/IFtdKSB7XG4gICAgICAgICAgLy8gRXZlbnQgZnJvbSBiZWZvcmUgd2Ugd2VyZSBpbnRlcmVzdGVkIGluICdlbVxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLnN0YXJ0VGltZSAhPT0gdW5kZWZpbmVkICYmIGV2ZW50LlRpbWVzdGFtcCEudmFsdWVPZigpIDwgdGhpcy5wcm9wcy5zdGFydFRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudHM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQWxyZWFkeSBzZWVuIHRoaXMgb25lXG4gICAgICAgICAgaWYgKHRoaXMuZXZlbnRJZHMuaGFzKGV2ZW50LkV2ZW50SWQhKSkge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50cztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ldmVudElkcy5hZGQoZXZlbnQuRXZlbnRJZCEpO1xuXG4gICAgICAgICAgY29uc3QgaXNQYXJlbnRTdGFja0V2ZW50ID0gaXNSb290U3RhY2tFdmVudChldmVudCk7XG4gICAgICAgICAgaWYgKGlzUGFyZW50U3RhY2tFdmVudCAmJiB0aGlzLnByb3BzLnN0YWNrU3RhdHVzZXM/LmluY2x1ZGVzKGV2ZW50LlJlc291cmNlU3RhdHVzID8/ICcnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50cztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGcmVzaCBldmVudFxuICAgICAgICAgIGNvbnN0IHJlc0V2ZW50OiBSZXNvdXJjZUV2ZW50ID0ge1xuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgcGFyZW50U3RhY2tMb2dpY2FsSWRzOiB0aGlzLnByb3BzLnBhcmVudFN0YWNrTG9naWNhbElkcyA/PyBbXSxcbiAgICAgICAgICAgIGlzU3RhY2tFdmVudDogaXNQYXJlbnRTdGFja0V2ZW50LFxuICAgICAgICAgIH07XG4gICAgICAgICAgZXZlbnRzLnB1c2gocmVzRXZlbnQpO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWlzUGFyZW50U3RhY2tFdmVudCAmJlxuICAgICAgICAgICAgICBldmVudC5SZXNvdXJjZVR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgJiZcbiAgICAgICAgICAgICAgaXNTdGFja0JlZ2luT3BlcmF0aW9uU3RhdGUoZXZlbnQuUmVzb3VyY2VTdGF0dXMpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgZXZlbnQgaXMgbm90IGZvciBgdGhpc2Agc3RhY2sgYW5kIGhhcyBhIHBoeXNpY2FsIHJlc291cmNlIElkLCByZWN1cnNpdmVseSBjYWxsIGZvciBldmVudHMgaW4gdGhlIG5lc3RlZCBzdGFja1xuICAgICAgICAgICAgdGhpcy50cmFja05lc3RlZFN0YWNrKGV2ZW50LCBbLi4uKHRoaXMucHJvcHMucGFyZW50U3RhY2tMb2dpY2FsSWRzID8/IFtdKSwgZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJyddKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaXNQYXJlbnRTdGFja0V2ZW50ICYmIGlzU3RhY2tUZXJtaW5hbFN0YXRlKGV2ZW50LlJlc291cmNlU3RhdHVzKSkge1xuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbmV4dFRva2VuID0gcGFnZT8uTmV4dFRva2VuO1xuICAgICAgICBpZiAobmV4dFRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghKGUubmFtZSA9PT0gJ1ZhbGlkYXRpb25FcnJvcicgJiYgZm9ybWF0RXJyb3JNZXNzYWdlKGUpID09PSBgU3RhY2sgWyR7dGhpcy5wcm9wcy5zdGFja05hbWV9XSBkb2VzIG5vdCBleGlzdGApKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiB0aGUgQ1JFQVRFX0lOX1BST0dSRVNTLCBVUERBVEVfSU5fUFJPR1JFU1MsIERFTEVURV9JTl9QUk9HUkVTUyBldmVudCBvZiBhIG5lc3RlZCBzdGFjaywgcG9sbCB0aGUgbmVzdGVkIHN0YWNrIHVwZGF0ZXNcbiAgICovXG4gIHByaXZhdGUgdHJhY2tOZXN0ZWRTdGFjayhldmVudDogU3RhY2tFdmVudCwgcGFyZW50U3RhY2tMb2dpY2FsSWRzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGxvZ2ljYWxJZCA9IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkO1xuICAgIGNvbnN0IHBoeXNpY2FsUmVzb3VyY2VJZCA9IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZDtcblxuICAgIC8vIFRoZSBDUkVBVEVfSU5fUFJPR1JFU1MgZXZlbnQgZm9yIGEgTmVzdGVkIFN0YWNrIGlzIGVtaXR0ZWQgdHdpY2U7IGZpcnN0IHdpdGhvdXQgYSBQaHlzaWNhbFJlc291cmNlSWRcbiAgICAvLyBhbmQgdGhlbiB3aXRoLiBJZ25vcmUgdGhpcyBldmVudCBpZiB3ZSBkb24ndCBoYXZlIHRoYXQgcHJvcGVydHkgeWV0LlxuICAgIC8vXG4gICAgLy8gKEF0IHRoaXMgcG9pbnQsIEkgYWxzbyBkb24ndCB0cnVzdCB0aGF0IGxvZ2ljYWxJZCBpcyBhbHdheXMgZ29pbmcgdG8gYmUgdGhlcmUgc28gdmFsaWRhdGUgdGhhdCBhcyB3ZWxsKVxuICAgIGlmICghbG9naWNhbElkIHx8ICFwaHlzaWNhbFJlc291cmNlSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubmVzdGVkU3RhY2tQb2xsZXJzW2xvZ2ljYWxJZF0pIHtcbiAgICAgIHRoaXMubmVzdGVkU3RhY2tQb2xsZXJzW2xvZ2ljYWxJZF0gPSBuZXcgU3RhY2tFdmVudFBvbGxlcih0aGlzLmNmbiwge1xuICAgICAgICBzdGFja05hbWU6IHBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgICAgICAgcGFyZW50U3RhY2tMb2dpY2FsSWRzOiBwYXJlbnRTdGFja0xvZ2ljYWxJZHMsXG4gICAgICAgIHN0YXJ0VGltZTogZXZlbnQuVGltZXN0YW1wIS52YWx1ZU9mKCksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTdGFja0JlZ2luT3BlcmF0aW9uU3RhdGUoc3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gW1xuICAgICdDUkVBVEVfSU5fUFJPR1JFU1MnLFxuICAgICdVUERBVEVfSU5fUFJPR1JFU1MnLFxuICAgICdERUxFVEVfSU5fUFJPR1JFU1MnLFxuICAgICdVUERBVEVfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLFxuICAgICdST0xMQkFDS19JTl9QUk9HUkVTUycsXG4gIF0uaW5jbHVkZXMoc3RhdGUgPz8gJycpO1xufVxuXG5mdW5jdGlvbiBpc1N0YWNrVGVybWluYWxTdGF0ZShzdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiAhKHN0YXRlID8/ICcnKS5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJyk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StackProgressMonitor = void 0;\nconst util = require(\"util\");\nconst util_1 = require(\"../../util\");\n/**\n * Monitors stack progress.s\n */\nclass StackProgressMonitor {\n /**\n * Previous completion state observed by logical ID\n *\n * We use this to detect that if we see a DELETE_COMPLETE after a\n * CREATE_COMPLETE, it's actually a rollback and we should DECREASE\n * resourcesDone instead of increase it\n */\n resourcesPrevCompleteState = {};\n /**\n * Count of resources that have reported a _COMPLETE status\n */\n resourcesDone = 0;\n /**\n * How many digits we need to represent the total count (for lining up the status reporting)\n */\n resourceDigits = 0;\n /**\n * Number of expected resources in the monitor.\n */\n resourcesTotal;\n constructor(resourcesTotal) {\n // +1 because the stack also emits a \"COMPLETE\" event at the end, and that wasn't\n // counted yet. This makes it line up with the amount of events we expect.\n this.resourcesTotal = resourcesTotal ? resourcesTotal + 1 : undefined;\n // How many digits does this number take to represent?\n this.resourceDigits = this.resourcesTotal ? Math.ceil(Math.log10(this.resourcesTotal)) : 0;\n }\n /**\n * Report the stack progress\n */\n get progress() {\n return {\n total: this.total,\n completed: this.completed,\n formatted: this.formatted,\n };\n }\n /**\n * The total number of progress monitored resources.\n */\n get total() {\n return this.resourcesTotal;\n }\n /**\n * The number of completed resources.\n */\n get completed() {\n return this.resourcesDone;\n }\n /**\n * Report the current progress as a [34/42] string, or just [34] if the total is unknown\n */\n get formatted() {\n if (this.resourcesTotal == null) {\n // Don't have total, show simple count and hope the human knows\n return (0, util_1.padLeft)(3, util.format('%s', this.resourcesDone)); // max 500 resources\n }\n return util.format('%s/%s', (0, util_1.padLeft)(this.resourceDigits, this.resourcesDone.toString()), (0, util_1.padLeft)(this.resourceDigits, this.resourcesTotal.toString()));\n }\n /**\n * Process as stack event and update the progress state.\n */\n process(event) {\n const status = event.ResourceStatus;\n if (!status || !event.LogicalResourceId) {\n return;\n }\n if (status.endsWith('_COMPLETE_CLEANUP_IN_PROGRESS')) {\n this.resourcesDone++;\n }\n if (status.endsWith('_COMPLETE')) {\n const prevState = this.resourcesPrevCompleteState[event.LogicalResourceId];\n if (!prevState) {\n this.resourcesDone++;\n }\n else {\n // If we completed this before and we're completing it AGAIN, means we're rolling back.\n // Protect against silly underflow.\n this.resourcesDone--;\n if (this.resourcesDone < 0) {\n this.resourcesDone = 0;\n }\n }\n this.resourcesPrevCompleteState[event.LogicalResourceId] = status;\n }\n }\n}\nexports.StackProgressMonitor = StackProgressMonitor;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stcHJvZ3Jlc3MtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLXByb2dyZXNzLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRzdCLHFDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBQy9COzs7Ozs7T0FNRztJQUNLLDBCQUEwQixHQUEyQixFQUFFLENBQUM7SUFFaEU7O09BRUc7SUFDSyxhQUFhLEdBQVcsQ0FBQyxDQUFDO0lBRWxDOztPQUVHO0lBQ2MsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUU1Qzs7T0FFRztJQUNjLGNBQWMsQ0FBVTtJQUV6QyxZQUFZLGNBQXVCO1FBQ2pDLGlGQUFpRjtRQUNqRiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV0RSxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLCtEQUErRDtZQUMvRCxPQUFPLElBQUEsY0FBTyxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNoRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixPQUFPLEVBQ1AsSUFBQSxjQUFPLEVBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzNELElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEtBQWlCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTix1RkFBdUY7Z0JBQ3ZGLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZHRCxvREF1R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0V2ZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4uLy4uL3BheWxvYWRzL3Byb2dyZXNzJztcbmltcG9ydCB7IHBhZExlZnQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBNb25pdG9ycyBzdGFjayBwcm9ncmVzcy5zXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja1Byb2dyZXNzTW9uaXRvciB7XG4gIC8qKlxuICAgKiBQcmV2aW91cyBjb21wbGV0aW9uIHN0YXRlIG9ic2VydmVkIGJ5IGxvZ2ljYWwgSURcbiAgICpcbiAgICogV2UgdXNlIHRoaXMgdG8gZGV0ZWN0IHRoYXQgaWYgd2Ugc2VlIGEgREVMRVRFX0NPTVBMRVRFIGFmdGVyIGFcbiAgICogQ1JFQVRFX0NPTVBMRVRFLCBpdCdzIGFjdHVhbGx5IGEgcm9sbGJhY2sgYW5kIHdlIHNob3VsZCBERUNSRUFTRVxuICAgKiByZXNvdXJjZXNEb25lIGluc3RlYWQgb2YgaW5jcmVhc2UgaXRcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvKipcbiAgICogQ291bnQgb2YgcmVzb3VyY2VzIHRoYXQgaGF2ZSByZXBvcnRlZCBhIF9DT01QTEVURSBzdGF0dXNcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzRG9uZTogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogSG93IG1hbnkgZGlnaXRzIHdlIG5lZWQgdG8gcmVwcmVzZW50IHRoZSB0b3RhbCBjb3VudCAoZm9yIGxpbmluZyB1cCB0aGUgc3RhdHVzIHJlcG9ydGluZylcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VEaWdpdHM6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBleHBlY3RlZCByZXNvdXJjZXMgaW4gdGhlIG1vbml0b3IuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlc1RvdGFsPzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlc1RvdGFsPzogbnVtYmVyKSB7XG4gICAgLy8gKzEgYmVjYXVzZSB0aGUgc3RhY2sgYWxzbyBlbWl0cyBhIFwiQ09NUExFVEVcIiBldmVudCBhdCB0aGUgZW5kLCBhbmQgdGhhdCB3YXNuJ3RcbiAgICAvLyBjb3VudGVkIHlldC4gVGhpcyBtYWtlcyBpdCBsaW5lIHVwIHdpdGggdGhlIGFtb3VudCBvZiBldmVudHMgd2UgZXhwZWN0LlxuICAgIHRoaXMucmVzb3VyY2VzVG90YWwgPSByZXNvdXJjZXNUb3RhbCA/IHJlc291cmNlc1RvdGFsICsgMSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIEhvdyBtYW55IGRpZ2l0cyBkb2VzIHRoaXMgbnVtYmVyIHRha2UgdG8gcmVwcmVzZW50P1xuICAgIHRoaXMucmVzb3VyY2VEaWdpdHMgPSB0aGlzLnJlc291cmNlc1RvdGFsID8gTWF0aC5jZWlsKE1hdGgubG9nMTAodGhpcy5yZXNvdXJjZXNUb3RhbCkpIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIHN0YWNrIHByb2dyZXNzXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb2dyZXNzKCk6IFN0YWNrUHJvZ3Jlc3Mge1xuICAgIHJldHVybiB7XG4gICAgICB0b3RhbDogdGhpcy50b3RhbCxcbiAgICAgIGNvbXBsZXRlZDogdGhpcy5jb21wbGV0ZWQsXG4gICAgICBmb3JtYXR0ZWQ6IHRoaXMuZm9ybWF0dGVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBwcm9ncmVzcyBtb25pdG9yZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGdldCB0b3RhbCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29tcGxldGVkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29tcGxldGVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzRG9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgYXMgYSBbMzQvNDJdIHN0cmluZywgb3IganVzdCBbMzRdIGlmIHRoZSB0b3RhbCBpcyB1bmtub3duXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnJlc291cmNlc1RvdGFsID09IG51bGwpIHtcbiAgICAgIC8vIERvbid0IGhhdmUgdG90YWwsIHNob3cgc2ltcGxlIGNvdW50IGFuZCBob3BlIHRoZSBodW1hbiBrbm93c1xuICAgICAgcmV0dXJuIHBhZExlZnQoMywgdXRpbC5mb3JtYXQoJyVzJywgdGhpcy5yZXNvdXJjZXNEb25lKSk7IC8vIG1heCA1MDAgcmVzb3VyY2VzXG4gICAgfVxuXG4gICAgcmV0dXJuIHV0aWwuZm9ybWF0KFxuICAgICAgJyVzLyVzJyxcbiAgICAgIHBhZExlZnQodGhpcy5yZXNvdXJjZURpZ2l0cywgdGhpcy5yZXNvdXJjZXNEb25lLnRvU3RyaW5nKCkpLFxuICAgICAgcGFkTGVmdCh0aGlzLnJlc291cmNlRGlnaXRzLCB0aGlzLnJlc291cmNlc1RvdGFsLnRvU3RyaW5nKCkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhcyBzdGFjayBldmVudCBhbmQgdXBkYXRlIHRoZSBwcm9ncmVzcyBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBwcm9jZXNzKGV2ZW50OiBTdGFja0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gZXZlbnQuUmVzb3VyY2VTdGF0dXM7XG4gICAgaWYgKCFzdGF0dXMgfHwgIWV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFX0NMRUFOVVBfSU5fUFJPR1JFU1MnKSkge1xuICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFJykpIHtcbiAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMucmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGVbZXZlbnQuTG9naWNhbFJlc291cmNlSWRdO1xuICAgICAgaWYgKCFwcmV2U3RhdGUpIHtcbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSBjb21wbGV0ZWQgdGhpcyBiZWZvcmUgYW5kIHdlJ3JlIGNvbXBsZXRpbmcgaXQgQUdBSU4sIG1lYW5zIHdlJ3JlIHJvbGxpbmcgYmFjay5cbiAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHNpbGx5IHVuZGVyZmxvdy5cbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lLS07XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlc0RvbmUgPCAwKSB7XG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZXNvdXJjZXNQcmV2Q29tcGxldGVTdGF0ZVtldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF0gPSBzdGF0dXM7XG4gICAgfVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RollbackChoice = exports.StackStatus = void 0;\nconst client_cloudformation_1 = require(\"@aws-sdk/client-cloudformation\");\n/**\n * A utility class to inspect CloudFormation stack statuses.\n *\n * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html\n */\nclass StackStatus {\n name;\n reason;\n static fromStackDescription(description) {\n return new StackStatus(description.StackStatus, description.StackStatusReason);\n }\n constructor(name, reason) {\n this.name = name;\n this.reason = reason;\n }\n get isCreationFailure() {\n return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.ROLLBACK_FAILED;\n }\n get isDeleted() {\n return this.name.startsWith('DELETE_');\n }\n get isFailure() {\n return this.name.endsWith('FAILED');\n }\n get isInProgress() {\n return this.name.endsWith('_IN_PROGRESS') && !this.isReviewInProgress;\n }\n get isReviewInProgress() {\n return this.name === client_cloudformation_1.StackStatus.REVIEW_IN_PROGRESS;\n }\n get isNotFound() {\n return this.name === 'NOT_FOUND';\n }\n get isDeploySuccess() {\n return (!this.isNotFound &&\n (this.name === client_cloudformation_1.StackStatus.CREATE_COMPLETE ||\n this.name === client_cloudformation_1.StackStatus.UPDATE_COMPLETE ||\n this.name === client_cloudformation_1.StackStatus.IMPORT_COMPLETE));\n }\n get isRollbackSuccess() {\n return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_COMPLETE;\n }\n /**\n * Whether the stack is in a paused state due to `--no-rollback`.\n *\n * The possible actions here are retrying a new `--no-rollback` deployment, or initiating a rollback.\n */\n get rollbackChoice() {\n switch (this.name) {\n case client_cloudformation_1.StackStatus.CREATE_FAILED:\n case client_cloudformation_1.StackStatus.UPDATE_FAILED:\n return RollbackChoice.START_ROLLBACK;\n case client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_FAILED:\n return RollbackChoice.CONTINUE_UPDATE_ROLLBACK;\n case client_cloudformation_1.StackStatus.ROLLBACK_FAILED:\n // Unfortunately there is no option to continue a failed rollback without\n // a stable target state.\n return RollbackChoice.ROLLBACK_FAILED;\n default:\n return RollbackChoice.NONE;\n }\n }\n get isRollbackable() {\n return [RollbackChoice.START_ROLLBACK, RollbackChoice.CONTINUE_UPDATE_ROLLBACK].includes(this.rollbackChoice);\n }\n toString() {\n return this.name + (this.reason ? ` (${this.reason})` : '');\n }\n}\nexports.StackStatus = StackStatus;\n/**\n * Describe the current rollback options for this state\n */\nvar RollbackChoice;\n(function (RollbackChoice) {\n RollbackChoice[RollbackChoice[\"START_ROLLBACK\"] = 0] = \"START_ROLLBACK\";\n RollbackChoice[RollbackChoice[\"CONTINUE_UPDATE_ROLLBACK\"] = 1] = \"CONTINUE_UPDATE_ROLLBACK\";\n /**\n * A sign that stack creation AND its rollback have failed.\n *\n * There is no way to recover from this, other than recreating the stack.\n */\n RollbackChoice[RollbackChoice[\"ROLLBACK_FAILED\"] = 2] = \"ROLLBACK_FAILED\";\n RollbackChoice[RollbackChoice[\"NONE\"] = 3] = \"NONE\";\n})(RollbackChoice || (exports.RollbackChoice = RollbackChoice = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBFQUF5RjtBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBYSxXQUFXO0lBTUo7SUFDQTtJQU5YLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFrQjtRQUNuRCxPQUFPLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFZLEVBQUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFlBQ2tCLElBQVksRUFDWixNQUFlO1FBRGYsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFdBQU0sR0FBTixNQUFNLENBQVM7SUFFakMsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUM7SUFDcEcsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDaEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsZUFBZTtnQkFDekMsSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGVBQWU7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsd0JBQXdCLENBQUM7SUFDN0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGNBQWM7UUFDaEIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxtQ0FBWSxDQUFDLGFBQWEsQ0FBQztZQUNoQyxLQUFLLG1DQUFZLENBQUMsYUFBYTtnQkFDN0IsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLEtBQUssbUNBQVksQ0FBQyxzQkFBc0I7Z0JBQ3RDLE9BQU8sY0FBYyxDQUFDLHdCQUF3QixDQUFDO1lBQ2pELEtBQUssbUNBQVksQ0FBQyxlQUFlO2dCQUMvQix5RUFBeUU7Z0JBQ3pFLHlCQUF5QjtnQkFDekIsT0FBTyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ3hDO2dCQUNFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQTVFRCxrQ0E0RUM7QUFFRDs7R0FFRztBQUNILElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4Qix1RUFBYyxDQUFBO0lBQ2QsMkZBQXdCLENBQUE7SUFDeEI7Ozs7T0FJRztJQUNILHlFQUFlLENBQUE7SUFDZixtREFBSSxDQUFBO0FBQ04sQ0FBQyxFQVZXLGNBQWMsOEJBQWQsY0FBYyxRQVV6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgU3RhY2ssIFN0YWNrU3RhdHVzIGFzIF9TdGFja1N0YXR1cyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIGluc3BlY3QgQ2xvdWRGb3JtYXRpb24gc3RhY2sgc3RhdHVzZXMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tZGVzY3JpYmluZy1zdGFja3MuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgU3RhY2tTdGF0dXMge1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGFja0Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBTdGFjaykge1xuICAgIHJldHVybiBuZXcgU3RhY2tTdGF0dXMoZGVzY3JpcHRpb24uU3RhY2tTdGF0dXMhLCBkZXNjcmlwdGlvbi5TdGFja1N0YXR1c1JlYXNvbik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb24/OiBzdHJpbmcsXG4gICkge1xuICB9XG5cbiAgZ2V0IGlzQ3JlYXRpb25GYWlsdXJlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19DT01QTEVURSB8fCB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19GQUlMRUQ7XG4gIH1cblxuICBnZXQgaXNEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUuc3RhcnRzV2l0aCgnREVMRVRFXycpO1xuICB9XG5cbiAgZ2V0IGlzRmFpbHVyZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLmVuZHNXaXRoKCdGQUlMRUQnKTtcbiAgfVxuXG4gIGdldCBpc0luUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZS5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJykgJiYgIXRoaXMuaXNSZXZpZXdJblByb2dyZXNzO1xuICB9XG5cbiAgZ2V0IGlzUmV2aWV3SW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUkVWSUVXX0lOX1BST0dSRVNTO1xuICB9XG5cbiAgZ2V0IGlzTm90Rm91bmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZSA9PT0gJ05PVF9GT1VORCc7XG4gIH1cblxuICBnZXQgaXNEZXBsb3lTdWNjZXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5pc05vdEZvdW5kICYmXG4gICAgICAodGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuQ1JFQVRFX0NPTVBMRVRFIHx8XG4gICAgICAgIHRoaXMubmFtZSA9PT0gX1N0YWNrU3RhdHVzLlVQREFURV9DT01QTEVURSB8fFxuICAgICAgICB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5JTVBPUlRfQ09NUExFVEUpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc1JvbGxiYWNrU3VjY2VzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUk9MTEJBQ0tfQ09NUExFVEUgfHwgdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0NPTVBMRVRFO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrIGlzIGluIGEgcGF1c2VkIHN0YXRlIGR1ZSB0byBgLS1uby1yb2xsYmFja2AuXG4gICAqXG4gICAqIFRoZSBwb3NzaWJsZSBhY3Rpb25zIGhlcmUgYXJlIHJldHJ5aW5nIGEgbmV3IGAtLW5vLXJvbGxiYWNrYCBkZXBsb3ltZW50LCBvciBpbml0aWF0aW5nIGEgcm9sbGJhY2suXG4gICAqL1xuICBnZXQgcm9sbGJhY2tDaG9pY2UoKTogUm9sbGJhY2tDaG9pY2Uge1xuICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XG4gICAgICBjYXNlIF9TdGFja1N0YXR1cy5DUkVBVEVfRkFJTEVEOlxuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLlNUQVJUX1JPTExCQUNLO1xuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLkNPTlRJTlVFX1VQREFURV9ST0xMQkFDSztcbiAgICAgIGNhc2UgX1N0YWNrU3RhdHVzLlJPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgLy8gVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBubyBvcHRpb24gdG8gY29udGludWUgYSBmYWlsZWQgcm9sbGJhY2sgd2l0aG91dFxuICAgICAgICAvLyBhIHN0YWJsZSB0YXJnZXQgc3RhdGUuXG4gICAgICAgIHJldHVybiBSb2xsYmFja0Nob2ljZS5ST0xMQkFDS19GQUlMRUQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gUm9sbGJhY2tDaG9pY2UuTk9ORTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNSb2xsYmFja2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtSb2xsYmFja0Nob2ljZS5TVEFSVF9ST0xMQkFDSywgUm9sbGJhY2tDaG9pY2UuQ09OVElOVUVfVVBEQVRFX1JPTExCQUNLXS5pbmNsdWRlcyh0aGlzLnJvbGxiYWNrQ2hvaWNlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUgKyAodGhpcy5yZWFzb24gPyBgICgke3RoaXMucmVhc29ufSlgIDogJycpO1xuICB9XG59XG5cbi8qKlxuICogRGVzY3JpYmUgdGhlIGN1cnJlbnQgcm9sbGJhY2sgb3B0aW9ucyBmb3IgdGhpcyBzdGF0ZVxuICovXG5leHBvcnQgZW51bSBSb2xsYmFja0Nob2ljZSB7XG4gIFNUQVJUX1JPTExCQUNLLFxuICBDT05USU5VRV9VUERBVEVfUk9MTEJBQ0ssXG4gIC8qKlxuICAgKiBBIHNpZ24gdGhhdCBzdGFjayBjcmVhdGlvbiBBTkQgaXRzIHJvbGxiYWNrIGhhdmUgZmFpbGVkLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gcmVjb3ZlciBmcm9tIHRoaXMsIG90aGVyIHRoYW4gcmVjcmVhdGluZyB0aGUgc3RhY2suXG4gICAqL1xuICBST0xMQkFDS19GQUlMRUQsXG4gIE5PTkUsXG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringWriteStream = void 0;\nconst node_stream_1 = require(\"node:stream\");\n/*\n * Custom writable stream that collects text into a string buffer.\n * Used on classes that take in and directly write to a stream, but\n * we intend to capture the output rather than print.\n */\nclass StringWriteStream extends node_stream_1.Writable {\n buffer = [];\n /**\n * Terminal width in columns.\n * Used by formatTable() to apply width constraints and prevent table overflow.\n */\n get columns() {\n return process.stdout.columns;\n }\n constructor() {\n super();\n }\n _write(chunk, _encoding, callback) {\n this.buffer.push(chunk.toString());\n callback();\n }\n toString() {\n return this.buffer.join('');\n }\n}\nexports.StringWriteStream = StringWriteStream;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmVhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFRO0lBQ3JDLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFOUI7OztPQUdHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVUsRUFBRSxTQUFpQixFQUFFLFFBQXdDO1FBQzVFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQXZCRCw4Q0F1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJztcblxuLypcbiAqIEN1c3RvbSB3cml0YWJsZSBzdHJlYW0gdGhhdCBjb2xsZWN0cyB0ZXh0IGludG8gYSBzdHJpbmcgYnVmZmVyLlxuICogVXNlZCBvbiBjbGFzc2VzIHRoYXQgdGFrZSBpbiBhbmQgZGlyZWN0bHkgd3JpdGUgdG8gYSBzdHJlYW0sIGJ1dFxuICogd2UgaW50ZW5kIHRvIGNhcHR1cmUgdGhlIG91dHB1dCByYXRoZXIgdGhhbiBwcmludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmluZ1dyaXRlU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICBwcml2YXRlIGJ1ZmZlcjogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGVybWluYWwgd2lkdGggaW4gY29sdW1ucy5cbiAgICogVXNlZCBieSBmb3JtYXRUYWJsZSgpIHRvIGFwcGx5IHdpZHRoIGNvbnN0cmFpbnRzIGFuZCBwcmV2ZW50IHRhYmxlIG92ZXJmbG93LlxuICAgKi9cbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3dyaXRlKGNodW5rOiBhbnksIF9lbmNvZGluZzogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXIucHVzaChjaHVuay50b1N0cmluZygpKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXIuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./tags\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWdzJztcbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./util\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tagsForStack = tagsForStack;\n/**\n * @returns an array with the tags available in the stack metadata.\n */\nfunction tagsForStack(stack) {\n return Object.entries(stack.tags).map(([Key, Value]) => ({ Key, Value }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvQ0FFQztBQUxEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQXdDO0lBQ25FLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFRhZyB9IGZyb20gJy4uL3RhZ3MnO1xuXG4vKipcbiAqIEByZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIHRhZ3MgYXZhaWxhYmxlIGluIHRoZSBzdGFjayBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhZ3NGb3JTdGFjayhzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KTogVGFnW10ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc3RhY2sudGFncykubWFwKChbS2V5LCBWYWx1ZV0pID0+ICh7IEtleSwgVmFsdWUgfSkpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgcmVhZG9ubHkgS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IFZhbHVlOiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToolkitInfo = exports.DEFAULT_TOOLKIT_STACK_NAME = void 0;\nconst util_1 = require(\"util\");\nconst chalk = require(\"chalk\");\nconst bootstrap_props_1 = require(\"./bootstrap/bootstrap-props\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst cfn_api_1 = require(\"./deployments/cfn-api\");\nexports.DEFAULT_TOOLKIT_STACK_NAME = 'CDKToolkit';\n/**\n * Information on the Bootstrap stack of the environment we're deploying to.\n *\n * This class serves to:\n *\n * - Inspect the bootstrap stack, and return various properties of it for successful\n * asset deployment (in case of legacy-synthesized stacks).\n * - Validate the version of the target environment, and nothing else (in case of\n * default-synthesized stacks).\n *\n * An object of this type might represent a bootstrap stack that could not be found.\n * This is not an issue unless any members are used that require the bootstrap stack\n * to have been found, in which case an error is thrown (default-synthesized stacks\n * should never run into this as they don't need information from the bootstrap\n * stack, all information is already encoded into the Cloud Assembly Manifest).\n *\n * Nevertheless, an instance of this class exists to serve as a cache for SSM\n * parameter lookups (otherwise, the \"bootstrap stack version\" parameter would\n * need to be read repeatedly).\n *\n * Called \"ToolkitInfo\" for historical reasons.\n *\n */\nclass ToolkitInfo {\n static determineName(overrideName) {\n return overrideName ?? exports.DEFAULT_TOOLKIT_STACK_NAME;\n }\n static async lookup(environment, sdk, ioHelper, stackName) {\n const cfn = sdk.cloudFormation();\n stackName = ToolkitInfo.determineName(stackName);\n try {\n const stack = await (0, cfn_api_1.stabilizeStack)(cfn, ioHelper, stackName);\n if (!stack) {\n await ioHelper.defaults.debug((0, util_1.format)(\"The environment %s doesn't have the CDK toolkit stack (%s) installed. Use %s to setup your environment for use with the toolkit.\", environment.name, stackName, chalk.blue(`cdk bootstrap \"${environment.name}\"`)));\n return ToolkitInfo.bootstrapStackNotFoundInfo(stackName);\n }\n if (stack.stackStatus.isCreationFailure) {\n // Treat a \"failed to create\" bootstrap stack as an absent one.\n await ioHelper.defaults.debug((0, util_1.format)('The environment %s has a CDK toolkit stack (%s) that failed to create. Use %s to try provisioning it again.', environment.name, stackName, chalk.blue(`cdk bootstrap \"${environment.name}\"`)));\n return ToolkitInfo.bootstrapStackNotFoundInfo(stackName);\n }\n return new ExistingToolkitInfo(stack);\n }\n catch (e) {\n return ToolkitInfo.bootstrapStackLookupError(stackName, e);\n }\n }\n static fromStack(stack) {\n return new ExistingToolkitInfo(stack);\n }\n static bootstrapStackNotFoundInfo(stackName) {\n return new BootstrapStackNotFoundInfo(stackName, \"This deployment requires a bootstrap stack with a known name; pass '--toolkit-stack-name' or switch to using the 'DefaultStackSynthesizer' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)\");\n }\n static bootstrapStackLookupError(stackName, e) {\n return new BootstrapStackNotFoundInfo(stackName, `This deployment requires a bootstrap stack with a known name, but during its lookup the following error occurred: ${e}; pass \\'--toolkit-stack-name\\' or switch to using the \\'DefaultStackSynthesizer\\' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)`);\n }\n constructor() {\n }\n}\nexports.ToolkitInfo = ToolkitInfo;\n/**\n * Returned when a bootstrap stack is found\n */\nclass ExistingToolkitInfo extends ToolkitInfo {\n bootstrapStack;\n found = true;\n constructor(bootstrapStack) {\n super();\n this.bootstrapStack = bootstrapStack;\n }\n get bucketUrl() {\n return `https://${this.requireOutput(bootstrap_props_1.BUCKET_DOMAIN_NAME_OUTPUT)}`;\n }\n get bucketName() {\n return this.requireOutput(bootstrap_props_1.BUCKET_NAME_OUTPUT);\n }\n get repositoryName() {\n return this.requireOutput(bootstrap_props_1.REPOSITORY_NAME_OUTPUT);\n }\n get version() {\n return parseInt(this.bootstrapStack.outputs[bootstrap_props_1.BOOTSTRAP_VERSION_OUTPUT] ?? '0', 10);\n }\n get variant() {\n return this.bootstrapStack.parameters[bootstrap_props_1.BOOTSTRAP_VARIANT_PARAMETER] ?? bootstrap_props_1.DEFAULT_BOOTSTRAP_VARIANT;\n }\n get parameters() {\n return this.bootstrapStack.parameters ?? {};\n }\n get terminationProtection() {\n return this.bootstrapStack.terminationProtection ?? false;\n }\n get stackName() {\n return this.bootstrapStack.stackName;\n }\n /**\n * Prepare an ECR repository for uploading to using Docker\n *\n */\n requireOutput(output) {\n if (!(output in this.bootstrapStack.outputs)) {\n throw new toolkit_error_1.ToolkitError('MissingBootstrapStackOutput', `The CDK toolkit stack (${this.bootstrapStack.stackName}) does not have an output named ${output}. Use 'cdk bootstrap' to correct this.`);\n }\n return this.bootstrapStack.outputs[output];\n }\n}\n/**\n * Returned when a bootstrap stack could not be found\n *\n * This is not an error in principle, UNTIL one of the members is called that requires\n * the bootstrap stack to have been found, in which case the lookup error is still thrown\n * belatedly.\n *\n * The errors below serve as a last stop-gap message--normally calling code should have\n * checked `toolkit.found` and produced an appropriate error message.\n */\nclass BootstrapStackNotFoundInfo extends ToolkitInfo {\n stackName;\n errorMessage;\n found = false;\n constructor(stackName, errorMessage) {\n super();\n this.stackName = stackName;\n this.errorMessage = errorMessage;\n }\n get bootstrapStack() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get bucketUrl() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get bucketName() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get repositoryName() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get version() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n get variant() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n prepareEcrRepository() {\n throw new toolkit_error_1.ToolkitError('BootstrapStackNotFound', this.errorMessage);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidG9vbGtpdC1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUE4QjtBQUU5QiwrQkFBK0I7QUFFL0IsaUVBT3FDO0FBRXJDLDREQUF3RDtBQUN4RCxtREFBdUQ7QUFHMUMsUUFBQSwwQkFBMEIsR0FBRyxZQUFZLENBQUM7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFzQixXQUFXO0lBQ3hCLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBcUI7UUFDL0MsT0FBTyxZQUFZLElBQUksa0NBQTBCLENBQUM7SUFDcEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN4QixXQUE4QixFQUM5QixHQUFRLEVBQ1IsUUFBa0IsRUFDbEIsU0FBNkI7UUFFN0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLFNBQVMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBQSx3QkFBYyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQzNCLElBQUEsYUFBTSxFQUNKLGtJQUFrSSxFQUNsSSxXQUFXLENBQUMsSUFBSSxFQUNoQixTQUFTLEVBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQ2xELENBQ0YsQ0FBQztnQkFDRixPQUFPLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENB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dCB7IGZvcm1hdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHtcbiAgQk9PVFNUUkFQX1ZBUklBTlRfUEFSQU1FVEVSLFxuICBCT09UU1RSQVBfVkVSU0lPTl9PVVRQVVQsXG4gIEJVQ0tFVF9ET01BSU5fTkFNRV9PVVRQVVQsXG4gIEJVQ0tFVF9OQU1FX09VVFBVVCxcbiAgREVGQVVMVF9CT09UU1RSQVBfVkFSSUFOVCxcbiAgUkVQT1NJVE9SWV9OQU1FX09VVFBVVCxcbn0gZnJvbSAnLi9ib290c3RyYXAvYm9vdHN0cmFwLXByb3BzJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFjayB9IGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IHN0YWJpbGl6ZVN0YWNrIH0gZnJvbSAnLi9kZXBsb3ltZW50cy9jZm4tYXBpJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuL2lvL3ByaXZhdGUnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgPSAnQ0RLVG9vbGtpdCc7XG5cbi8qKlxuICogSW5mb3JtYXRpb24gb24gdGhlIEJvb3RzdHJhcCBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgd2UncmUgZGVwbG95aW5nIHRvLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2VydmVzIHRvOlxuICpcbiAqIC0gSW5zcGVjdCB0aGUgYm9vdHN0cmFwIHN0YWNrLCBhbmQgcmV0dXJuIHZhcmlvdXMgcHJvcGVydGllcyBvZiBpdCBmb3Igc3VjY2Vzc2Z1bFxuICogICBhc3NldCBkZXBsb3ltZW50IChpbiBjYXNlIG9mIGxlZ2FjeS1zeW50aGVzaXplZCBzdGFja3MpLlxuICogLSBWYWxpZGF0ZSB0aGUgdmVyc2lvbiBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LCBhbmQgbm90aGluZyBlbHNlIChpbiBjYXNlIG9mXG4gKiAgIGRlZmF1bHQtc3ludGhlc2l6ZWQgc3RhY2tzKS5cbiAqXG4gKiBBbiBvYmplY3Qgb2YgdGhpcyB0eXBlIG1pZ2h0IHJlcHJlc2VudCBhIGJvb3RzdHJhcCBzdGFjayB0aGF0IGNvdWxkIG5vdCBiZSBmb3VuZC5cbiAqIFRoaXMgaXMgbm90IGFuIGlzc3VlIHVubGVzcyBhbnkgbWVtYmVycyBhcmUgdXNlZCB0aGF0IHJlcXVpcmUgdGhlIGJvb3RzdHJhcCBzdGFja1xuICogdG8gaGF2ZSBiZWVuIGZvdW5kLCBpbiB3aGljaCBjYXNlIGFuIGVycm9yIGlzIHRocm93biAoZGVmYXVsdC1zeW50aGVzaXplZCBzdGFja3NcbiAqIHNob3VsZCBuZXZlciBydW4gaW50byB0aGlzIGFzIHRoZXkgZG9uJ3QgbmVlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBib290c3RyYXBcbiAqIHN0YWNrLCBhbGwgaW5mb3JtYXRpb24gaXMgYWxyZWFkeSBlbmNvZGVkIGludG8gdGhlIENsb3VkIEFzc2VtYmx5IE1hbmlmZXN0KS5cbiAqXG4gKiBOZXZlcnRoZWxlc3MsIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgZXhpc3RzIHRvIHNlcnZlIGFzIGEgY2FjaGUgZm9yIFNTTVxuICogcGFyYW1ldGVyIGxvb2t1cHMgKG90aGVyd2lzZSwgdGhlIFwiYm9vdHN0cmFwIHN0YWNrIHZlcnNpb25cIiBwYXJhbWV0ZXIgd291bGRcbiAqIG5lZWQgdG8gYmUgcmVhZCByZXBlYXRlZGx5KS5cbiAqXG4gKiBDYWxsZWQgXCJUb29sa2l0SW5mb1wiIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9vbGtpdEluZm8ge1xuICBwdWJsaWMgc3RhdGljIGRldGVybWluZU5hbWUob3ZlcnJpZGVOYW1lPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG92ZXJyaWRlTmFtZSA/PyBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbG9va3VwKFxuICAgIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCxcbiAgICBzZGs6IFNESyxcbiAgICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICk6IFByb21pc2U8VG9vbGtpdEluZm8+IHtcbiAgICBjb25zdCBjZm4gPSBzZGsuY2xvdWRGb3JtYXRpb24oKTtcbiAgICBzdGFja05hbWUgPSBUb29sa2l0SW5mby5kZXRlcm1pbmVOYW1lKHN0YWNrTmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YWNrID0gYXdhaXQgc3RhYmlsaXplU3RhY2soY2ZuLCBpb0hlbHBlciwgc3RhY2tOYW1lKTtcbiAgICAgIGlmICghc3RhY2spIHtcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoXG4gICAgICAgICAgZm9ybWF0KFxuICAgICAgICAgICAgXCJUaGUgZW52aXJvbm1lbnQgJXMgZG9lc24ndCBoYXZlIHRoZSBDREsgdG9vbGtpdCBzdGFjayAoJXMpIGluc3RhbGxlZC4gVXNlICVzIHRvIHNldHVwIHlvdXIgZW52aXJvbm1lbnQgZm9yIHVzZSB3aXRoIHRoZSB0b29sa2l0LlwiLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQubmFtZSxcbiAgICAgICAgICAgIHN0YWNrTmFtZSxcbiAgICAgICAgICAgIGNoYWxrLmJsdWUoYGNkayBib290c3RyYXAgXCIke2Vudmlyb25tZW50Lm5hbWV9XCJgKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gVG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGFjay5zdGFja1N0YXR1cy5pc0NyZWF0aW9uRmFpbHVyZSkge1xuICAgICAgICAvLyBUcmVhdCBhIFwiZmFpbGVkIHRvIGNyZWF0ZVwiIGJvb3RzdHJhcCBzdGFjayBhcyBhbiBhYnNlbnQgb25lLlxuICAgICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhcbiAgICAgICAgICBmb3JtYXQoXG4gICAgICAgICAgICAnVGhlIGVudmlyb25tZW50ICVzIGhhcyBhIENESyB0b29sa2l0IHN0YWNrICglcykgdGhhdCBmYWlsZWQgdG8gY3JlYXRlLiBVc2UgJXMgdG8gdHJ5IHByb3Zpc2lvbmluZyBpdCBhZ2Fpbi4nLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQubmFtZSxcbiAgICAgICAgICAgIHN0YWNrTmFtZSxcbiAgICAgICAgICAgIGNoYWxrLmJsdWUoYGNkayBib290c3RyYXAgXCIke2Vudmlyb25tZW50Lm5hbWV9XCJgKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gVG9vbGtpdEluZm8uYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBFeGlzdGluZ1Rvb2xraXRJbmZvKHN0YWNrKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiBUb29sa2l0SW5mby5ib290c3RyYXBTdGFja0xvb2t1cEVycm9yKHN0YWNrTmFtZSwgZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RhY2soc3RhY2s6IENsb3VkRm9ybWF0aW9uU3RhY2spOiBUb29sa2l0SW5mbyB7XG4gICAgcmV0dXJuIG5ldyBFeGlzdGluZ1Rvb2xraXRJbmZvKHN0YWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oc3RhY2tOYW1lOiBzdHJpbmcpOiBUb29sa2l0SW5mbyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja05vdEZvdW5kSW5mbyhcbiAgICAgIHN0YWNrTmFtZSxcbiAgICAgIFwiVGhpcyBkZXBsb3ltZW50IHJlcXVpcmVzIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBrbm93biBuYW1lOyBwYXNzICctLXRvb2xraXQtc3RhY2stbmFtZScgb3Igc3dpdGNoIHRvIHVzaW5nIHRoZSAnRGVmYXVsdFN0YWNrU3ludGhlc2l6ZXInIChzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvYm9vdHN0cmFwcGluZy5odG1sKVwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGJvb3RzdHJhcFN0YWNrTG9va3VwRXJyb3Ioc3RhY2tOYW1lOiBzdHJpbmcsIGU6IEVycm9yKTogVG9vbGtpdEluZm8ge1xuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwU3RhY2tOb3RGb3VuZEluZm8oXG4gICAgICBzdGFja05hbWUsXG4gICAgICBgVGhpcyBkZXBsb3ltZW50IHJlcXVpcmVzIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBrbm93biBuYW1lLCBidXQgZHVyaW5nIGl0cyBsb29rdXAgdGhlIGZvbGxvd2luZyBlcnJvciBvY2N1cnJlZDogJHtlfTsgcGFzcyBcXCctLXRvb2xraXQtc3RhY2stbmFtZVxcJyBvciBzd2l0Y2ggdG8gdXNpbmcgdGhlIFxcJ0RlZmF1bHRTdGFja1N5bnRoZXNpemVyXFwnIChzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvYm9vdHN0cmFwcGluZy5odG1sKWAsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmb3VuZDogYm9vbGVhbjtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJ1Y2tldFVybDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZlcnNpb246IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZhcmlhbnQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5lZCB3aGVuIGEgYm9vdHN0cmFwIHN0YWNrIGlzIGZvdW5kXG4gKi9cbmNsYXNzIEV4aXN0aW5nVG9vbGtpdEluZm8gZXh0ZW5kcyBUb29sa2l0SW5mbyB7XG4gIHB1YmxpYyByZWFkb25seSBmb3VuZCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGJvb3RzdHJhcFN0YWNrOiBDbG91ZEZvcm1hdGlvblN0YWNrKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnVja2V0VXJsKCkge1xuICAgIHJldHVybiBgaHR0cHM6Ly8ke3RoaXMucmVxdWlyZU91dHB1dChCVUNLRVRfRE9NQUlOX05BTUVfT1VUUFVUKX1gO1xuICB9XG5cbiAgcHVibGljIGdldCBidWNrZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVPdXRwdXQoQlVDS0VUX05BTUVfT1VUUFVUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVwb3NpdG9yeU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZU91dHB1dChSRVBPU0lUT1JZX05BTUVfT1VUUFVUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmVyc2lvbigpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodGhpcy5ib290c3RyYXBTdGFjay5vdXRwdXRzW0JPT1RTVFJBUF9WRVJTSU9OX09VVFBVVF0gPz8gJzAnLCAxMCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhcmlhbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVyc1tCT09UU1RSQVBfVkFSSUFOVF9QQVJBTUVURVJdID8/IERFRkFVTFRfQk9PVFNUUkFQX1ZBUklBTlQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcmFtZXRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sucGFyYW1ldGVycyA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVybWluYXRpb25Qcm90ZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvb3RzdHJhcFN0YWNrLnRlcm1pbmF0aW9uUHJvdGVjdGlvbiA/PyBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2suc3RhY2tOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYW4gRUNSIHJlcG9zaXRvcnkgZm9yIHVwbG9hZGluZyB0byB1c2luZyBEb2NrZXJcbiAgICpcbiAgICovXG4gIHByaXZhdGUgcmVxdWlyZU91dHB1dChvdXRwdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCEob3V0cHV0IGluIHRoaXMuYm9vdHN0cmFwU3RhY2sub3V0cHV0cykpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICdNaXNzaW5nQm9vdHN0cmFwU3RhY2tPdXRwdXQnLFxuICAgICAgICBgVGhlIENESyB0b29sa2l0IHN0YWNrICgke3RoaXMuYm9vdHN0cmFwU3RhY2suc3RhY2tOYW1lfSkgZG9lcyBub3QgaGF2ZSBhbiBvdXRwdXQgbmFtZWQgJHtvdXRwdXR9LiBVc2UgJ2NkayBib290c3RyYXAnIHRvIGNvcnJlY3QgdGhpcy5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwU3RhY2sub3V0cHV0c1tvdXRwdXRdO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuZWQgd2hlbiBhIGJvb3RzdHJhcCBzdGFjayBjb3VsZCBub3QgYmUgZm91bmRcbiAqXG4gKiBUaGlzIGlzIG5vdCBhbiBlcnJvciBpbiBwcmluY2lwbGUsIFVOVElMIG9uZSBvZiB0aGUgbWVtYmVycyBpcyBjYWxsZWQgdGhhdCByZXF1aXJlc1xuICogdGhlIGJvb3RzdHJhcCBzdGFjayB0byBoYXZlIGJlZW4gZm91bmQsIGluIHdoaWNoIGNhc2UgdGhlIGxvb2t1cCBlcnJvciBpcyBzdGlsbCB0aHJvd25cbiAqIGJlbGF0ZWRseS5cbiAqXG4gKiBUaGUgZXJyb3JzIGJlbG93IHNlcnZlIGFzIGEgbGFzdCBzdG9wLWdhcCBtZXNzYWdlLS1ub3JtYWxseSBjYWxsaW5nIGNvZGUgc2hvdWxkIGhhdmVcbiAqIGNoZWNrZWQgYHRvb2xraXQuZm91bmRgIGFuZCBwcm9kdWNlZCBhbiBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlLlxuICovXG5jbGFzcyBCb290c3RyYXBTdGFja05vdEZvdW5kSW5mbyBleHRlbmRzIFRvb2xraXRJbmZvIHtcbiAgcHVibGljIHJlYWRvbmx5IGZvdW5kID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JNZXNzYWdlOiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJvb3RzdHJhcFN0YWNrKCk6IENsb3VkRm9ybWF0aW9uU3RhY2sge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFN0YWNrTm90Rm91bmQnLCB0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJ1Y2tldFVybCgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFN0YWNrTm90Rm91bmQnLCB0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJ1Y2tldE5hbWUoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdCb290c3RyYXBTdGFja05vdEZvdW5kJywgdGhpcy5lcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXBvc2l0b3J5TmFtZSgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0Jvb3RzdHJhcFN0YWNrTm90Rm91bmQnLCB0aGlzLmVycm9yTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZlcnNpb24oKTogbnVtYmVyIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdCb290c3RyYXBTdGFja05vdEZvdW5kJywgdGhpcy5lcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YXJpYW50KCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwU3RhY2tOb3RGb3VuZCcsIHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRWNyUmVwb3NpdG9yeSgpOiBQcm9taXNlPEVjclJlcG9zaXRvcnlJbmZvPiB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignQm9vdHN0cmFwU3RhY2tOb3RGb3VuZCcsIHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVjclJlcG9zaXRvcnlJbmZvIHtcbiAgcmVwb3NpdG9yeVVyaTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVjckNyZWRlbnRpYWxzIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgZW5kcG9pbnQ6IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.some = some;\nexports.loadTree = loadTree;\nexports.loadTreeFromDir = loadTreeFromDir;\nconst path = require(\"node:path\");\nconst fs = require(\"fs-extra\");\n/**\n * Whether the provided predicate is true for at least one element in the construct (sub-)tree.\n */\nfunction some(node, predicate) {\n return node != null && (predicate(node) || findInChildren());\n function findInChildren() {\n return Object.values(node?.children ?? {}).some(child => some(child, predicate));\n }\n}\nasync function loadTree(assembly, trace) {\n try {\n const outdir = assembly.directory;\n const fileName = assembly.tree()?.file;\n return fileName ? fs.readJSONSync(path.join(outdir, fileName)).tree : undefined;\n }\n catch (e) {\n await trace(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);\n return undefined;\n }\n}\nasync function loadTreeFromDir(outdir, trace) {\n try {\n return fs.readJSONSync(path.join(outdir, 'tree.json')).tree;\n }\n catch (e) {\n await trace(`Failed to get tree.json file: ${e}. Proceeding with empty tree.`);\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4QkEsb0JBTUM7QUFFRCw0QkFTQztBQUVELDBDQU9DO0FBeERELGtDQUFrQztBQUVsQywrQkFBK0I7QUF5Qi9COztHQUVHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFDLElBQW1DLEVBQUUsU0FBNEM7SUFDcEcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFFN0QsU0FBUyxjQUFjO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxRQUFRLENBQUMsUUFBdUIsRUFBRSxLQUFxQztJQUMzRixJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDdkMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sS0FBSyxDQUFDLGlDQUFpQyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDL0UsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUFDLE1BQWMsRUFBRSxLQUFxQztJQUN6RixJQUFJLENBQUM7UUFDSCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEFzc2VtYmx5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuLyoqXG4gKiBTb3VyY2UgaW5mb3JtYXRpb24gb24gYSBjb25zdHJ1Y3QgKGNsYXNzIGZxbiBhbmQgdmVyc2lvbilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RJbmZvIHtcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG5vZGUgaW4gdGhlIGNvbnN0cnVjdCB0cmVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdFRyZWVOb2RlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICByZWFkb25seSBjaGlsZHJlbj86IHsgW2tleTogc3RyaW5nXTogQ29uc3RydWN0VHJlZU5vZGUgfTtcbiAgcmVhZG9ubHkgYXR0cmlidXRlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIG9uIHRoZSBjb25zdHJ1Y3QgY2xhc3MgdGhhdCBsZWQgdG8gdGhpcyBub2RlLCBpZiBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdEluZm8/OiBDb25zdHJ1Y3RJbmZvO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIHByb3ZpZGVkIHByZWRpY2F0ZSBpcyB0cnVlIGZvciBhdCBsZWFzdCBvbmUgZWxlbWVudCBpbiB0aGUgY29uc3RydWN0IChzdWItKXRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb21lKG5vZGU6IENvbnN0cnVjdFRyZWVOb2RlIHwgdW5kZWZpbmVkLCBwcmVkaWNhdGU6IChuOiBDb25zdHJ1Y3RUcmVlTm9kZSkgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xuICByZXR1cm4gbm9kZSAhPSBudWxsICYmIChwcmVkaWNhdGUobm9kZSkgfHwgZmluZEluQ2hpbGRyZW4oKSk7XG5cbiAgZnVuY3Rpb24gZmluZEluQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMobm9kZT8uY2hpbGRyZW4gPz8ge30pLnNvbWUoY2hpbGQgPT4gc29tZShjaGlsZCwgcHJlZGljYXRlKSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRUcmVlKGFzc2VtYmx5OiBDbG91ZEFzc2VtYmx5LCB0cmFjZTogKG1zZzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxDb25zdHJ1Y3RUcmVlTm9kZSB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IG91dGRpciA9IGFzc2VtYmx5LmRpcmVjdG9yeTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGFzc2VtYmx5LnRyZWUoKT8uZmlsZTtcbiAgICByZXR1cm4gZmlsZU5hbWUgPyBmcy5yZWFkSlNPTlN5bmMocGF0aC5qb2luKG91dGRpciwgZmlsZU5hbWUpKS50cmVlIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIChlKSB7XG4gICAgYXdhaXQgdHJhY2UoYEZhaWxlZCB0byBnZXQgdHJlZS5qc29uIGZpbGU6ICR7ZX0uIFByb2NlZWRpbmcgd2l0aCBlbXB0eSB0cmVlLmApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRUcmVlRnJvbURpcihvdXRkaXI6IHN0cmluZywgdHJhY2U6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPik6IFByb21pc2U8Q29uc3RydWN0VHJlZU5vZGUgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZnMucmVhZEpTT05TeW5jKHBhdGguam9pbihvdXRkaXIsICd0cmVlLmpzb24nKSkudHJlZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGF3YWl0IHRyYWNlKGBGYWlsZWQgdG8gZ2V0IHRyZWUuanNvbiBmaWxlOiAke2V9LiBQcm9jZWVkaW5nIHdpdGggZW1wdHkgdHJlZS5gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildDestroyWorkGraph = buildDestroyWorkGraph;\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst work_graph_1 = require(\"./work-graph\");\nconst work_graph_types_1 = require(\"./work-graph-types\");\n/**\n * Build a WorkGraph for destroy with reversed dependencies.\n *\n * In deploy order, if A depends on B, B is deployed first. For destroy,\n * the arrows are reversed: A must be destroyed before B.\n */\nfunction buildDestroyWorkGraph(stacks, ioHelper) {\n const graph = new work_graph_1.WorkGraph({}, ioHelper);\n const selectedIds = new Set(stacks.map((s) => s.id));\n for (const stack of stacks) {\n graph.addNodes({\n type: 'stack',\n id: stack.id,\n dependencies: new Set(),\n stack,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: 0,\n });\n }\n for (const stack of stacks) {\n for (const dep of stack.dependencies) {\n if (cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(dep) && selectedIds.has(dep.id)) {\n graph.addDependency(dep.id, stack.id);\n }\n }\n }\n return graph;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0Esc0RBd0JDO0FBbkNELHFEQUFxRDtBQUNyRCw2Q0FBeUM7QUFDekMseURBQXFEO0FBR3JEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBMkMsRUFBRSxRQUFrQjtJQUNuRyxNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXJELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osWUFBWSxFQUFFLElBQUksR0FBRyxFQUFVO1lBQy9CLEtBQUs7WUFDTCxlQUFlLEVBQUUsa0NBQWUsQ0FBQyxPQUFPO1lBQ3hDLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgV29ya0dyYXBoIH0gZnJvbSAnLi93b3JrLWdyYXBoJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbi8qKlxuICogQnVpbGQgYSBXb3JrR3JhcGggZm9yIGRlc3Ryb3kgd2l0aCByZXZlcnNlZCBkZXBlbmRlbmNpZXMuXG4gKlxuICogSW4gZGVwbG95IG9yZGVyLCBpZiBBIGRlcGVuZHMgb24gQiwgQiBpcyBkZXBsb3llZCBmaXJzdC4gRm9yIGRlc3Ryb3ksXG4gKiB0aGUgYXJyb3dzIGFyZSByZXZlcnNlZDogQSBtdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgQi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVzdHJveVdvcmtHcmFwaChzdGFja3M6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBXb3JrR3JhcGgge1xuICBjb25zdCBncmFwaCA9IG5ldyBXb3JrR3JhcGgoe30sIGlvSGVscGVyKTtcbiAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBuZXcgU2V0KHN0YWNrcy5tYXAoKHMpID0+IHMuaWQpKTtcblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGdyYXBoLmFkZE5vZGVzKHtcbiAgICAgIHR5cGU6ICdzdGFjaycsXG4gICAgICBpZDogc3RhY2suaWQsXG4gICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQ8c3RyaW5nPigpLFxuICAgICAgc3RhY2ssXG4gICAgICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HLFxuICAgICAgcHJpb3JpdHk6IDAsXG4gICAgfSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIHN0YWNrLmRlcGVuZGVuY2llcykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChkZXApICYmIHNlbGVjdGVkSWRzLmhhcyhkZXAuaWQpKSB7XG4gICAgICAgIGdyYXBoLmFkZERlcGVuZGVuY3koZGVwLmlkLCBzdGFjay5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdyYXBoO1xufVxuIl19","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./build-destroy-work-graph\"), exports);\n__exportStar(require(\"./work-graph\"), exports);\n__exportStar(require(\"./work-graph-builder\"), exports);\n__exportStar(require(\"./work-graph-types\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQTJDO0FBQzNDLCtDQUE2QjtBQUM3Qix1REFBcUM7QUFDckMscURBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9idWlsZC1kZXN0cm95LXdvcmstZ3JhcGgnO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrLWdyYXBoJztcbmV4cG9ydCAqIGZyb20gJy4vd29yay1ncmFwaC1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkGraphBuilder = void 0;\nconst cdk_assets_lib_1 = require(\"@aws-cdk/cdk-assets-lib\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst work_graph_1 = require(\"./work-graph\");\nconst work_graph_types_1 = require(\"./work-graph-types\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nclass WorkGraphBuilder {\n prebuildAssets;\n idPrefix;\n /**\n * Default priorities for nodes\n *\n * Assets builds have higher priority than the other two operations, to make good on our promise that\n * '--prebuild-assets' will actually do assets before stacks (if it can). Unfortunately it is the\n * default :(\n *\n * But between stack dependencies and publish dependencies, stack dependencies go first\n */\n static PRIORITIES = {\n 'asset-build': 10,\n 'asset-publish': 0,\n 'stack': 5,\n };\n graph;\n ioHelper;\n constructor(ioHelper, prebuildAssets, idPrefix = '') {\n this.prebuildAssets = prebuildAssets;\n this.idPrefix = idPrefix;\n this.graph = new work_graph_1.WorkGraph({}, ioHelper);\n this.ioHelper = ioHelper;\n }\n addStack(artifact) {\n this.graph.addNodes({\n type: 'stack',\n id: `${this.idPrefix}${artifact.id}`,\n dependencies: new Set(this.stackArtifactIds(onlyStacks(artifact.dependencies))),\n stack: artifact,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: WorkGraphBuilder.PRIORITIES.stack,\n });\n }\n /**\n * Oof, see this parameter list\n */\n // eslint-disable-next-line @stylistic/max-len\n addAsset(parentStack, assetManifestArtifact, assetManifest, asset) {\n // Just the artifact identifier\n const assetId = asset.id.assetId;\n const buildId = `build-${assetId}-${(0, util_1.contentHashAny)([assetId, asset.genericSource]).substring(0, 10)}`;\n const publishId = `publish-${assetId}-${(0, util_1.contentHashAny)([assetId, asset.genericDestination]).substring(0, 10)}`;\n // Build node only gets added once because they are all the same\n if (!this.graph.tryGetNode(buildId)) {\n const node = {\n type: 'asset-build',\n id: buildId,\n note: asset.displayName(false),\n dependencies: new Set([\n ...this.stackArtifactIds(assetManifestArtifact.dependencies),\n // If we disable prebuild, then assets inherit (stack) dependencies from their parent stack\n ...!this.prebuildAssets ? this.stackArtifactIds(onlyStacks(parentStack.dependencies)) : [],\n ]),\n parentStack: parentStack,\n assetManifestArtifact,\n assetManifest,\n asset,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: WorkGraphBuilder.PRIORITIES['asset-build'],\n };\n this.graph.addNodes(node);\n }\n const publishNode = this.graph.tryGetNode(publishId);\n if (!publishNode) {\n this.graph.addNodes({\n type: 'asset-publish',\n id: publishId,\n note: asset.displayName(true),\n dependencies: new Set([\n buildId,\n ]),\n parentStack,\n assetManifestArtifact,\n assetManifest,\n asset,\n deploymentState: work_graph_types_1.DeploymentState.PENDING,\n priority: WorkGraphBuilder.PRIORITIES['asset-publish'],\n });\n }\n for (const inheritedDep of this.stackArtifactIds(onlyStacks(parentStack.dependencies))) {\n // The asset publish step also depends on the stacks that the parent depends on.\n // This is purely cosmetic: if we don't do this, the progress printing of asset publishing\n // is going to interfere with the progress bar of the stack deployment. We could remove this\n // for overall faster deployments if we ever have a better method of progress displaying.\n // Note: this may introduce a cycle if one of the parent's dependencies is another stack that\n // depends on this asset. To workaround this we remove these cycles once all nodes have\n // been added to the graph.\n this.graph.addDependency(publishId, inheritedDep);\n }\n // This will work whether the stack node has been added yet or not\n this.graph.addDependency(`${this.idPrefix}${parentStack.id}`, publishId);\n }\n build(artifacts) {\n const parentStacks = stacksFromAssets(artifacts);\n for (const artifact of artifacts) {\n if (cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(artifact)) {\n this.addStack(artifact);\n }\n else if (cxapi.AssetManifestArtifact.isAssetManifestArtifact(artifact)) {\n const manifest = cdk_assets_lib_1.AssetManifest.fromFile(artifact.file);\n for (const entry of manifest.entries) {\n const parentStack = parentStacks.get(artifact);\n if (parentStack === undefined) {\n throw new toolkit_error_1.ToolkitError('OrphanedAssetManifest', 'Found an asset manifest that is not associated with a stack');\n }\n this.addAsset(parentStack, artifact, manifest, entry);\n }\n }\n else if (cxapi.NestedCloudAssemblyArtifact.isNestedCloudAssemblyArtifact(artifact)) {\n const assembly = new cxapi.CloudAssembly(artifact.fullPath, { topoSort: false });\n const nestedGraph = new WorkGraphBuilder(this.ioHelper, this.prebuildAssets, `${this.idPrefix}${artifact.id}.`).build(assembly.artifacts);\n this.graph.absorb(nestedGraph);\n }\n else {\n // Ignore whatever else\n }\n }\n this.graph.removeUnavailableDependencies();\n // Remove any potentially introduced cycles between asset publishing and the stacks that depend on them.\n this.removeStackPublishCycles();\n return this.graph;\n }\n stackArtifactIds(deps) {\n return deps.flatMap((d) => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(d) ? [this.stackArtifactId(d)] : []);\n }\n stackArtifactId(artifact) {\n if (!cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(artifact)) {\n throw new toolkit_error_1.ToolkitError('InvalidArtifactType', `Can only call this on CloudFormationStackArtifact, got: ${artifact.constructor.name}`);\n }\n return `${this.idPrefix}${artifact.id}`;\n }\n /**\n * We may have accidentally introduced cycles in an attempt to make the messages printed to the\n * console not interfere with each other too much. Remove them again.\n */\n removeStackPublishCycles() {\n const publishSteps = this.graph.nodesOfType('asset-publish');\n for (const publishStep of publishSteps) {\n for (const dep of publishStep.dependencies) {\n if (this.graph.reachable(dep, publishStep.id)) {\n publishStep.dependencies.delete(dep);\n }\n }\n }\n }\n}\nexports.WorkGraphBuilder = WorkGraphBuilder;\nfunction stacksFromAssets(artifacts) {\n const ret = new Map();\n for (const stack of artifacts.filter(x => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(x))) {\n const assetArtifacts = stack.dependencies.filter((x) => cxapi.AssetManifestArtifact.isAssetManifestArtifact(x));\n for (const art of assetArtifacts) {\n ret.set(art, stack);\n }\n }\n return ret;\n}\nfunction onlyStacks(artifacts) {\n return artifacts.filter(x => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(x));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid29yay1ncmFwaC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUE2RTtBQUM3RSxxREFBcUQ7QUFDckQsNkNBQXlDO0FBRXpDLHlEQUFxRDtBQUNyRCwrREFBMkQ7QUFDM0QscUNBQTRDO0FBRzVDLE1BQWEsZ0JBQWdCO0lBb0JSO0lBQ0E7SUFwQm5COzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsR0FBcUM7UUFDM0QsYUFBYSxFQUFFLEVBQUU7UUFDakIsZUFBZSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7S0FDWCxDQUFDO0lBQ2UsS0FBSyxDQUFZO0lBQ2pCLFFBQVEsQ0FBVztJQUVwQyxZQUNFLFFBQWtCLEVBQ0QsY0FBdUIsRUFDdkIsV0FBVyxFQUFFO1FBRGIsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksc0JBQVMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUEyQztRQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNsQixJQUFJLEVBQUUsT0FBTztZQUNiLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMvRSxLQUFLLEVBQUUsUUFBUTtZQUNmLGVBQWUsRUFBRSxrQ0FBZSxDQUFDLE9BQU87WUFDeEMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFVB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Q2xELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25HLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NldE1hbmlmZXN0LCB0eXBlIElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnQGF3cy1jZGsvY2RrLWFzc2V0cy1saWInO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IFdvcmtHcmFwaCB9IGZyb20gJy4vd29yay1ncmFwaCc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0QnVpbGROb2RlLCBXb3JrTm9kZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBEZXBsb3ltZW50U3RhdGUgfSBmcm9tICcuL3dvcmstZ3JhcGgtdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGNvbnRlbnRIYXNoQW55IH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBXb3JrR3JhcGhCdWlsZGVyIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdGllcyBmb3Igbm9kZXNcbiAgICpcbiAgICogQXNzZXRzIGJ1aWxkcyBoYXZlIGhpZ2hlciBwcmlvcml0eSB0aGFuIHRoZSBvdGhlciB0d28gb3BlcmF0aW9ucywgdG8gbWFrZSBnb29kIG9uIG91ciBwcm9taXNlIHRoYXRcbiAgICogJy0tcHJlYnVpbGQtYXNzZXRzJyB3aWxsIGFjdHVhbGx5IGRvIGFzc2V0cyBiZWZvcmUgc3RhY2tzIChpZiBpdCBjYW4pLiBVbmZvcnR1bmF0ZWx5IGl0IGlzIHRoZVxuICAgKiBkZWZhdWx0IDooXG4gICAqXG4gICAqIEJ1dCBiZXR3ZWVuIHN0YWNrIGRlcGVuZGVuY2llcyBhbmQgcHVibGlzaCBkZXBlbmRlbmNpZXMsIHN0YWNrIGRlcGVuZGVuY2llcyBnbyBmaXJzdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBQUklPUklUSUVTOiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHtcbiAgICAnYXNzZXQtYnVpbGQnOiAxMCxcbiAgICAnYXNzZXQtcHVibGlzaCc6IDAsXG4gICAgJ3N0YWNrJzogNSxcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBncmFwaDogV29ya0dyYXBoO1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVidWlsZEFzc2V0czogYm9vbGVhbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkUHJlZml4ID0gJycsXG4gICkge1xuICAgIHRoaXMuZ3JhcGggPSBuZXcgV29ya0dyYXBoKHt9LCBpb0hlbHBlcik7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRTdGFjayhhcnRpZmFjdDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gICAgdGhpcy5ncmFwaC5hZGROb2Rlcyh7XG4gICAgICB0eXBlOiAnc3RhY2snLFxuICAgICAgaWQ6IGAke3RoaXMuaWRQcmVmaXh9JHthcnRpZmFjdC5pZH1gLFxuICAgICAgZGVwZW5kZW5jaWVzOiBuZXcgU2V0KHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKGFydGlmYWN0LmRlcGVuZGVuY2llcykpKSxcbiAgICAgIHN0YWNrOiBhcnRpZmFjdCxcbiAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICBwcmlvcml0eTogV29ya0dyYXBoQnVpbGRlci5QUklPUklUSUVTLnN0YWNrLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9vZiwgc2VlIHRoaXMgcGFyYW1ldGVyIGxpc3RcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgcHJpdmF0ZSBhZGRBc3NldChwYXJlbnRTdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBhc3NldE1hbmlmZXN0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdCwgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdCwgYXNzZXQ6IElNYW5pZmVzdEVudHJ5KSB7XG4gICAgLy8gSnVzdCB0aGUgYXJ0aWZhY3QgaWRlbnRpZmllclxuICAgIGNvbnN0IGFzc2V0SWQgPSBhc3NldC5pZC5hc3NldElkO1xuXG4gICAgY29uc3QgYnVpbGRJZCA9IGBidWlsZC0ke2Fzc2V0SWR9LSR7Y29udGVudEhhc2hBbnkoW2Fzc2V0SWQsIGFzc2V0LmdlbmVyaWNTb3VyY2VdKS5zdWJzdHJpbmcoMCwgMTApfWA7XG4gICAgY29uc3QgcHVibGlzaElkID0gYHB1Ymxpc2gtJHthc3NldElkfS0ke2NvbnRlbnRIYXNoQW55KFthc3NldElkLCBhc3NldC5nZW5lcmljRGVzdGluYXRpb25dKS5zdWJzdHJpbmcoMCwgMTApfWA7XG5cbiAgICAvLyBCdWlsZCBub2RlIG9ubHkgZ2V0cyBhZGRlZCBvbmNlIGJlY2F1c2UgdGhleSBhcmUgYWxsIHRoZSBzYW1lXG4gICAgaWYgKCF0aGlzLmdyYXBoLnRyeUdldE5vZGUoYnVpbGRJZCkpIHtcbiAgICAgIGNvbnN0IG5vZGU6IEFzc2V0QnVpbGROb2RlID0ge1xuICAgICAgICB0eXBlOiAnYXNzZXQtYnVpbGQnLFxuICAgICAgICBpZDogYnVpbGRJZCxcbiAgICAgICAgbm90ZTogYXNzZXQuZGlzcGxheU5hbWUoZmFsc2UpLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQoW1xuICAgICAgICAgIC4uLnRoaXMuc3RhY2tBcnRpZmFjdElkcyhhc3NldE1hbmlmZXN0QXJ0aWZhY3QuZGVwZW5kZW5jaWVzKSxcbiAgICAgICAgICAvLyBJZiB3ZSBkaXNhYmxlIHByZWJ1aWxkLCB0aGVuIGFzc2V0cyBpbmhlcml0IChzdGFjaykgZGVwZW5kZW5jaWVzIGZyb20gdGhlaXIgcGFyZW50IHN0YWNrXG4gICAgICAgICAgLi4uIXRoaXMucHJlYnVpbGRBc3NldHMgPyB0aGlzLnN0YWNrQXJ0aWZhY3RJZHMob25seVN0YWNrcyhwYXJlbnRTdGFjay5kZXBlbmRlbmNpZXMpKSA6IFtdLFxuICAgICAgICBdKSxcbiAgICAgICAgcGFyZW50U3RhY2s6IHBhcmVudFN0YWNrLFxuICAgICAgICBhc3NldE1hbmlmZXN0QXJ0aWZhY3QsXG4gICAgICAgIGFzc2V0TWFuaWZlc3QsXG4gICAgICAgIGFzc2V0LFxuICAgICAgICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HLFxuICAgICAgICBwcmlvcml0eTogV29ya0dyYXBoQnVpbGRlci5QUklPUklUSUVTWydhc3NldC1idWlsZCddLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMobm9kZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHVibGlzaE5vZGUgPSB0aGlzLmdyYXBoLnRyeUdldE5vZGUocHVibGlzaElkKTtcbiAgICBpZiAoIXB1Ymxpc2hOb2RlKSB7XG4gICAgICB0aGlzLmdyYXBoLmFkZE5vZGVzKHtcbiAgICAgICAgdHlwZTogJ2Fzc2V0LXB1Ymxpc2gnLFxuICAgICAgICBpZDogcHVibGlzaElkLFxuICAgICAgICBub3RlOiBhc3NldC5kaXNwbGF5TmFtZSh0cnVlKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBuZXcgU2V0KFtcbiAgICAgICAgICBidWlsZElkLFxuICAgICAgICBdKSxcbiAgICAgICAgcGFyZW50U3RhY2ssXG4gICAgICAgIGFzc2V0TWFuaWZlc3RBcnRpZmFjdCxcbiAgICAgICAgYXNzZXRNYW5pZmVzdCxcbiAgICAgICAgYXNzZXQsXG4gICAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVNbJ2Fzc2V0LXB1Ymxpc2gnXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5oZXJpdGVkRGVwIG9mIHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKHBhcmVudFN0YWNrLmRlcGVuZGVuY2llcykpKSB7XG4gICAgICAvLyBUaGUgYXNzZXQgcHVibGlzaCBzdGVwIGFsc28gZGVwZW5kcyBvbiB0aGUgc3RhY2tzIHRoYXQgdGhlIHBhcmVudCBkZXBlbmRzIG9uLlxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgY29zbWV0aWM6IGlmIHdlIGRvbid0IGRvIHRoaXMsIHRoZSBwcm9ncmVzcyBwcmludGluZyBvZiBhc3NldCBwdWJsaXNoaW5nXG4gICAgICAvLyBpcyBnb2luZyB0byBpbnRlcmZlcmUgd2l0aCB0aGUgcHJvZ3Jlc3MgYmFyIG9mIHRoZSBzdGFjayBkZXBsb3ltZW50LiBXZSBjb3VsZCByZW1vdmUgdGhpc1xuICAgICAgLy8gZm9yIG92ZXJhbGwgZmFzdGVyIGRlcGxveW1lbnRzIGlmIHdlIGV2ZXIgaGF2ZSBhIGJldHRlciBtZXRob2Qgb2YgcHJvZ3Jlc3MgZGlzcGxheWluZy5cbiAgICAgIC8vIE5vdGU6IHRoaXMgbWF5IGludHJvZHVjZSBhIGN5Y2xlIGlmIG9uZSBvZiB0aGUgcGFyZW50J3MgZGVwZW5kZW5jaWVzIGlzIGFub3RoZXIgc3RhY2sgdGhhdFxuICAgICAgLy8gZGVwZW5kcyBvbiB0aGlzIGFzc2V0LiBUbyB3b3JrYXJvdW5kIHRoaXMgd2UgcmVtb3ZlIHRoZXNlIGN5Y2xlcyBvbmNlIGFsbCBub2RlcyBoYXZlXG4gICAgICAvLyBiZWVuIGFkZGVkIHRvIHRoZSBncmFwaC5cbiAgICAgIHRoaXMuZ3JhcGguYWRkRGVwZW5kZW5jeShwdWJsaXNoSWQsIGluaGVyaXRlZERlcCk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyB3aWxsIHdvcmsgd2hldGhlciB0aGUgc3RhY2sgbm9kZSBoYXMgYmVlbiBhZGRlZCB5ZXQgb3Igbm90XG4gICAgdGhpcy5ncmFwaC5hZGREZXBlbmRlbmN5KGAke3RoaXMuaWRQcmVmaXh9JHtwYXJlbnRTdGFjay5pZH1gLCBwdWJsaXNoSWQpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKTogV29ya0dyYXBoIHtcbiAgICBjb25zdCBwYXJlbnRTdGFja3MgPSBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0cyk7XG5cbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIGFydGlmYWN0cykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgdGhpcy5hZGRTdGFjayhhcnRpZmFjdCk7XG4gICAgICB9IGVsc2UgaWYgKGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgY29uc3QgbWFuaWZlc3QgPSBBc3NldE1hbmlmZXN0LmZyb21GaWxlKGFydGlmYWN0LmZpbGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgbWFuaWZlc3QuZW50cmllcykge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFN0YWNrID0gcGFyZW50U3RhY2tzLmdldChhcnRpZmFjdCk7XG4gICAgICAgICAgaWYgKHBhcmVudFN0YWNrID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ09ycGhhbmVkQXNzZXRNYW5pZmVzdCcsICdGb3VuZCBhbiBhc3NldCBtYW5pZmVzdCB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzdGFjaycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmFkZEFzc2V0KHBhcmVudFN0YWNrLCBhcnRpZmFjdCwgbWFuaWZlc3QsIGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjeGFwaS5OZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QuaXNOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3QpKSB7XG4gICAgICAgIGNvbnN0IGFzc2VtYmx5ID0gbmV3IGN4YXBpLkNsb3VkQXNzZW1ibHkoYXJ0aWZhY3QuZnVsbFBhdGgsIHsgdG9wb1NvcnQ6IGZhbHNlIH0pO1xuICAgICAgICBjb25zdCBuZXN0ZWRHcmFwaCA9IG5ldyBXb3JrR3JhcGhCdWlsZGVyKFxuICAgICAgICAgIHRoaXMuaW9IZWxwZXIsXG4gICAgICAgICAgdGhpcy5wcmVidWlsZEFzc2V0cyxcbiAgICAgICAgICBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9LmAsXG4gICAgICAgICkuYnVpbGQoYXNzZW1ibHkuYXJ0aWZhY3RzKTtcbiAgICAgICAgdGhpcy5ncmFwaC5hYnNvcmIobmVzdGVkR3JhcGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWdub3JlIHdoYXRldmVyIGVsc2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoLnJlbW92ZVVuYXZhaWxhYmxlRGVwZW5kZW5jaWVzKCk7XG5cbiAgICAvLyBSZW1vdmUgYW55IHBvdGVudGlhbGx5IGludHJvZHVjZWQgY3ljbGVzIGJldHdlZW4gYXNzZXQgcHVibGlzaGluZyBhbmQgdGhlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGVtLlxuICAgIHRoaXMucmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5ncmFwaDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkcyhkZXBzOiBjeGFwaS5DbG91ZEFydGlmYWN0W10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGRlcHMuZmxhdE1hcCgoZCkgPT4gY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LmlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGQpID8gW3RoaXMuc3RhY2tBcnRpZmFjdElkKGQpXSA6IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkKGFydGlmYWN0OiBjeGFwaS5DbG91ZEFydGlmYWN0KTogc3RyaW5nIHtcbiAgICBpZiAoIWN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRBcnRpZmFjdFR5cGUnLCBgQ2FuIG9ubHkgY2FsbCB0aGlzIG9uIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCwgZ290OiAke2FydGlmYWN0LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBtYXkgaGF2ZSBhY2NpZGVudGFsbHkgaW50cm9kdWNlZCBjeWNsZXMgaW4gYW4gYXR0ZW1wdCB0byBtYWtlIHRoZSBtZXNzYWdlcyBwcmludGVkIHRvIHRoZVxuICAgKiBjb25zb2xlIG5vdCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyIHRvbyBtdWNoLiBSZW1vdmUgdGhlbSBhZ2Fpbi5cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCkge1xuICAgIGNvbnN0IHB1Ymxpc2hTdGVwcyA9IHRoaXMuZ3JhcGgubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcbiAgICBmb3IgKGNvbnN0IHB1Ymxpc2hTdGVwIG9mIHB1Ymxpc2hTdGVwcykge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgcHVibGlzaFN0ZXAuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXBoLnJlYWNoYWJsZShkZXAsIHB1Ymxpc2hTdGVwLmlkKSkge1xuICAgICAgICAgIHB1Ymxpc2hTdGVwLmRlcGVuZGVuY2llcy5kZWxldGUoZGVwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBNYXA8Y3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KCk7XG4gIGZvciAoY29uc3Qgc3RhY2sgb2YgYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSkpIHtcbiAgICBjb25zdCBhc3NldEFydGlmYWN0cyA9IHN0YWNrLmRlcGVuZGVuY2llcy5maWx0ZXIoKHgpID0+IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh4KSk7XG4gICAgZm9yIChjb25zdCBhcnQgb2YgYXNzZXRBcnRpZmFjdHMpIHtcbiAgICAgIHJldC5zZXQoYXJ0LCBzdGFjayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25seVN0YWNrcyhhcnRpZmFjdHM6IGN4YXBpLkNsb3VkQXJ0aWZhY3RbXSkge1xuICByZXR1cm4gYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSk7XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeploymentState = void 0;\nvar DeploymentState;\n(function (DeploymentState) {\n DeploymentState[\"PENDING\"] = \"pending\";\n DeploymentState[\"QUEUED\"] = \"queued\";\n DeploymentState[\"DEPLOYING\"] = \"deploying\";\n DeploymentState[\"COMPLETED\"] = \"completed\";\n DeploymentState[\"FAILED\"] = \"failed\";\n DeploymentState[\"SKIPPED\"] = \"skipped\";\n})(DeploymentState || (exports.DeploymentState = DeploymentState = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndvcmstZ3JhcGgtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsSUFBWSxlQU9YO0FBUEQsV0FBWSxlQUFlO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLG9DQUFpQixDQUFBO0lBQ2pCLDBDQUF1QixDQUFBO0lBQ3ZCLDBDQUF1QixDQUFBO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxlQUFlLCtCQUFmLGVBQWUsUUFPMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3QsIElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnQGF3cy1jZGsvY2RrLWFzc2V0cy1saWInO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5leHBvcnQgZW51bSBEZXBsb3ltZW50U3RhdGUge1xuICBQRU5ESU5HID0gJ3BlbmRpbmcnLFxuICBRVUVVRUQgPSAncXVldWVkJyxcbiAgREVQTE9ZSU5HID0gJ2RlcGxveWluZycsXG4gIENPTVBMRVRFRCA9ICdjb21wbGV0ZWQnLFxuICBGQUlMRUQgPSAnZmFpbGVkJyxcbiAgU0tJUFBFRCA9ICdza2lwcGVkJyxcbn1cblxuZXhwb3J0IHR5cGUgV29ya05vZGUgPSBTdGFja05vZGUgfCBBc3NldEJ1aWxkTm9kZSB8IEFzc2V0UHVibGlzaE5vZGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya05vZGVDb21tb24ge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM6IFNldDxzdHJpbmc+O1xuICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZTtcbiAgLyoqIFNvbWUgcmVhZGFibGUgaW5mb3JtYXRpb24gdG8gYXR0YWNoIHRvIHRoZSBpZCwgd2hpY2ggbWF5IGJlIHVucmVhZGFibGUgKi9cbiAgcmVhZG9ubHkgbm90ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja05vZGUgZXh0ZW5kcyBXb3JrTm9kZUNvbW1vbiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdzdGFjayc7XG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIC8qKiBTb3J0IGJ5IHByaW9yaXR5IHdoZW4gcGlja2luZyB1cCB3b3JrLCBoaWdoZXIgaXMgZWFybGllciAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NldEJ1aWxkTm9kZSBleHRlbmRzIFdvcmtOb2RlQ29tbW9uIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2Fzc2V0LWJ1aWxkJztcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKGFydGlmYWN0KSAqL1xuICByZWFkb25seSBhc3NldE1hbmlmZXN0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKi9cbiAgcmVhZG9ubHkgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdDtcbiAgLyoqIFRoZSBzdGFjayB0aGlzIGFzc2V0IHdhcyBkZWZpbmVkIGluICh1c2VkIGZvciBlbnZpcm9ubWVudCBzZXR0aW5ncykgKi9cbiAgcmVhZG9ubHkgcGFyZW50U3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCB0aGF0IG5lZWRzIHRvIGJlIGJ1aWx0ICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcbiAgLyoqIFNvcnQgYnkgcHJpb3JpdHkgd2hlbiBwaWNraW5nIHVwIHdvcmssIGhpZ2hlciBpcyBlYXJsaWVyICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHVibGlzaE5vZGUgZXh0ZW5kcyBXb3JrTm9kZUNvbW1vbiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdhc3NldC1wdWJsaXNoJztcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKGFydGlmYWN0KSAqL1xuICByZWFkb25seSBhc3NldE1hbmlmZXN0QXJ0aWZhY3Q6IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCBtYW5pZmVzdCB0aGlzIGFzc2V0IHJlc2lkZXMgaW4gKi9cbiAgcmVhZG9ubHkgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdDtcbiAgLyoqIFRoZSBzdGFjayB0aGlzIGFzc2V0IHdhcyBkZWZpbmVkIGluICh1c2VkIGZvciBlbnZpcm9ubWVudCBzZXR0aW5ncykgKi9cbiAgcmVhZG9ubHkgcGFyZW50U3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgLyoqIFRoZSBhc3NldCB0aGF0IG5lZWRzIHRvIGJlIHB1Ymxpc2hlZCAqL1xuICByZWFkb25seSBhc3NldDogSU1hbmlmZXN0RW50cnk7XG4gIC8qKiBTb3J0IGJ5IHByaW9yaXR5IHdoZW4gcGlja2luZyB1cCB3b3JrLCBoaWdoZXIgaXMgZWFybGllciAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkGraph = void 0;\nconst work_graph_types_1 = require(\"./work-graph-types\");\nconst toolkit_error_1 = require(\"../../toolkit/toolkit-error\");\nconst util_1 = require(\"../../util\");\nclass WorkGraph {\n nodes;\n readyPool = [];\n lazyDependencies = new Map();\n ioHelper;\n error;\n constructor(nodes, ioHelper) {\n this.nodes = { ...nodes };\n this.ioHelper = ioHelper;\n }\n addNodes(...nodes) {\n for (const node of nodes) {\n if (this.nodes[node.id]) {\n throw new toolkit_error_1.ToolkitError('DuplicateNodeId', `Duplicate use of node id: ${node.id}`);\n }\n const ld = this.lazyDependencies.get(node.id);\n if (ld) {\n for (const x of ld) {\n node.dependencies.add(x);\n }\n this.lazyDependencies.delete(node.id);\n }\n this.nodes[node.id] = node;\n }\n }\n removeNode(nodeId) {\n const id = typeof nodeId === 'string' ? nodeId : nodeId.id;\n const removedNode = this.nodes[id];\n this.lazyDependencies.delete(id);\n delete this.nodes[id];\n if (removedNode) {\n for (const node of Object.values(this.nodes)) {\n node.dependencies.delete(removedNode.id);\n }\n }\n }\n /**\n * Return all nodes of a given type\n */\n nodesOfType(type) {\n return Object.values(this.nodes).filter(n => n.type === type);\n }\n /**\n * Return all nodes that depend on a given node\n */\n dependees(nodeId) {\n const id = typeof nodeId === 'string' ? nodeId : nodeId.id;\n return Object.values(this.nodes).filter(n => n.dependencies.has(id));\n }\n /**\n * Add a dependency, that may come before or after the nodes involved\n */\n addDependency(fromId, toId) {\n const node = this.nodes[fromId];\n if (node) {\n node.dependencies.add(toId);\n return;\n }\n let lazyDeps = this.lazyDependencies.get(fromId);\n if (!lazyDeps) {\n lazyDeps = [];\n this.lazyDependencies.set(fromId, lazyDeps);\n }\n lazyDeps.push(toId);\n }\n tryGetNode(id) {\n return this.nodes[id];\n }\n node(id) {\n const ret = this.nodes[id];\n if (!ret) {\n throw new toolkit_error_1.ToolkitError('NodeNotFound', `No node with id ${id} among ${Object.keys(this.nodes)}`);\n }\n return ret;\n }\n absorb(graph) {\n this.addNodes(...Object.values(graph.nodes));\n }\n hasFailed() {\n return Object.values(this.nodes).some((n) => n.deploymentState === work_graph_types_1.DeploymentState.FAILED);\n }\n doParallel(concurrency, actions) {\n return this.forAllArtifacts(concurrency, async (x) => {\n switch (x.type) {\n case 'stack':\n await actions.deployStack(x);\n break;\n case 'asset-build':\n await actions.buildAsset(x);\n break;\n case 'asset-publish':\n await actions.publishAsset(x);\n break;\n }\n });\n }\n /**\n * Execute all stack nodes in dependency order with the given concurrency.\n *\n * Unlike `doParallel`, this method only handles stack nodes and takes a\n * simple callback. Intended for destroy where there are no asset nodes.\n */\n processStacks(concurrency, fn) {\n return this.forAllArtifacts(concurrency, async (x) => {\n if (x.type !== 'stack') {\n return;\n }\n await fn(x);\n });\n }\n /**\n * Return the set of unblocked nodes\n */\n async ready() {\n await this.updateReadyPool();\n return this.readyPool;\n }\n forAllArtifacts(n, fn) {\n const graph = this;\n // If 'n' is a number, we limit all concurrency equally (effectively we will be using totalMax)\n // If 'n' is a record, we limit each job independently (effectively we will be using max)\n const max = typeof n === 'number' ?\n {\n 'asset-build': n,\n 'asset-publish': n,\n 'stack': n,\n } : n;\n const totalMax = typeof n === 'number' ? n : sum(Object.values(n));\n return new Promise((ok, fail) => {\n let active = {\n 'asset-build': 0,\n 'asset-publish': 0,\n 'stack': 0,\n };\n function totalActive() {\n return sum(Object.values(active));\n }\n start();\n function start() {\n graph.updateReadyPool().then(() => {\n for (let i = 0; i < graph.readyPool.length;) {\n const node = graph.readyPool[i];\n if (active[node.type] < max[node.type] && totalActive() < totalMax) {\n graph.readyPool.splice(i, 1);\n startOne(node);\n }\n else {\n i += 1;\n }\n }\n if (totalActive() === 0) {\n if (graph.done()) {\n ok();\n }\n // wait for other active deploys to finish before failing\n if (graph.hasFailed()) {\n fail(graph.error);\n }\n }\n }).catch((e) => {\n fail(e);\n });\n }\n function startOne(x) {\n x.deploymentState = work_graph_types_1.DeploymentState.DEPLOYING;\n active[x.type]++;\n void fn(x)\n .finally(() => {\n active[x.type]--;\n })\n .then(() => {\n graph.deployed(x);\n start();\n }).catch((err) => {\n // By recording the failure immediately as the queued task exits, we prevent the next\n // queued task from starting.\n graph.failed(x, err);\n start();\n });\n }\n });\n }\n done() {\n return Object.values(this.nodes).every((n) => work_graph_types_1.DeploymentState.COMPLETED === n.deploymentState);\n }\n deployed(node) {\n node.deploymentState = work_graph_types_1.DeploymentState.COMPLETED;\n }\n failed(node, error) {\n this.error = error;\n node.deploymentState = work_graph_types_1.DeploymentState.FAILED;\n this.skipRest();\n this.readyPool.splice(0);\n }\n toString() {\n return [\n 'digraph D {',\n ...Object.entries(this.nodes).flatMap(([id, node]) => renderNode(id, node)),\n '}',\n ].join('\\n');\n function renderNode(id, node) {\n const ret = [];\n if (node.deploymentState === work_graph_types_1.DeploymentState.COMPLETED) {\n ret.push(` ${gv(id, { style: 'filled', fillcolor: 'yellow', comment: node.note })};`);\n }\n else {\n ret.push(` ${gv(id, { comment: node.note })};`);\n }\n for (const dep of node.dependencies) {\n ret.push(` ${gv(id)} -> ${gv(dep)};`);\n }\n return ret;\n }\n }\n /**\n * Ensure all dependencies actually exist. This protects against scenarios such as the following:\n * StackA depends on StackB, but StackB is not selected to deploy. The dependency is redundant\n * and will be dropped.\n * This assumes the manifest comes uncorrupted so we will not fail if a dependency is not found.\n */\n removeUnavailableDependencies() {\n for (const node of Object.values(this.nodes)) {\n const removeDeps = Array.from(node.dependencies).filter((dep) => this.nodes[dep] === undefined);\n removeDeps.forEach((d) => {\n node.dependencies.delete(d);\n });\n }\n }\n /**\n * Remove all asset publishing steps for assets that are already published, and then build\n * that aren't used anymore.\n *\n * Do this in parallel, because there may be a lot of assets in an application (seen in practice: >100 assets)\n */\n async removeUnnecessaryAssets(isUnnecessary) {\n await this.ioHelper.defaults.debug('Checking for previously published assets');\n const publishes = this.nodesOfType('asset-publish');\n const classifiedNodes = await (0, util_1.parallelPromises)(8, publishes.map((assetNode) => async () => [assetNode, await isUnnecessary(assetNode)]));\n const alreadyPublished = classifiedNodes.filter(([_, unnecessary]) => unnecessary).map(([assetNode, _]) => assetNode);\n for (const assetNode of alreadyPublished) {\n this.removeNode(assetNode);\n }\n await this.ioHelper.defaults.debug(`${publishes.length} total assets, ${publishes.length - alreadyPublished.length} still need to be published`);\n // Now also remove any asset build steps that don't have any dependencies on them anymore\n const unusedBuilds = this.nodesOfType('asset-build').filter(build => this.dependees(build).length === 0);\n for (const unusedBuild of unusedBuilds) {\n this.removeNode(unusedBuild);\n }\n }\n async updateReadyPool() {\n const activeCount = Object.values(this.nodes).filter((x) => x.deploymentState === work_graph_types_1.DeploymentState.DEPLOYING).length;\n const pendingCount = Object.values(this.nodes).filter((x) => x.deploymentState === work_graph_types_1.DeploymentState.PENDING).length;\n const newlyReady = Object.values(this.nodes).filter((x) => x.deploymentState === work_graph_types_1.DeploymentState.PENDING &&\n Array.from(x.dependencies).every((id) => this.node(id).deploymentState === work_graph_types_1.DeploymentState.COMPLETED));\n // Add newly available nodes to the ready pool\n for (const node of newlyReady) {\n node.deploymentState = work_graph_types_1.DeploymentState.QUEUED;\n this.readyPool.push(node);\n }\n // Remove nodes from the ready pool that have already started deploying\n retainOnly(this.readyPool, (node) => node.deploymentState === work_graph_types_1.DeploymentState.QUEUED);\n // Sort by reverse priority\n this.readyPool.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n if (this.readyPool.length === 0 && activeCount === 0 && pendingCount > 0) {\n const cycle = this.findCycle() ?? ['No cycle found!'];\n await this.ioHelper.defaults.trace(`Cycle ${cycle.join(' -> ')} in graph ${this}`);\n throw new toolkit_error_1.ToolkitError('DependencyCycle', `Unable to make progress anymore, dependency cycle between remaining artifacts: ${cycle.join(' -> ')} (run with -vv for full graph)`);\n }\n }\n skipRest() {\n for (const node of Object.values(this.nodes)) {\n if ([work_graph_types_1.DeploymentState.QUEUED, work_graph_types_1.DeploymentState.PENDING].includes(node.deploymentState)) {\n node.deploymentState = work_graph_types_1.DeploymentState.SKIPPED;\n }\n }\n }\n /**\n * Find cycles in a graph\n *\n * Not the fastest, but effective and should be rare\n */\n findCycle() {\n const seen = new Set();\n const self = this;\n for (const nodeId of Object.keys(this.nodes)) {\n const cycle = recurse(nodeId, [nodeId]);\n if (cycle) {\n return cycle;\n }\n }\n return undefined;\n function recurse(nodeId, path) {\n if (seen.has(nodeId)) {\n return undefined;\n }\n try {\n for (const dep of self.nodes[nodeId].dependencies ?? []) {\n const index = path.indexOf(dep);\n if (index > -1) {\n return [...path.slice(index), dep];\n }\n const cycle = recurse(dep, [...path, dep]);\n if (cycle) {\n return cycle;\n }\n }\n return undefined;\n }\n finally {\n seen.add(nodeId);\n }\n }\n }\n /**\n * Whether the `end` node is reachable from the `start` node, following the dependency arrows\n */\n reachable(start, end) {\n const seen = new Set();\n const self = this;\n return recurse(start);\n function recurse(current) {\n if (seen.has(current)) {\n return false;\n }\n seen.add(current);\n if (current === end) {\n return true;\n }\n for (const dep of self.nodes[current].dependencies) {\n if (recurse(dep)) {\n return true;\n }\n }\n return false;\n }\n }\n}\nexports.WorkGraph = WorkGraph;\nfunction sum(xs) {\n let ret = 0;\n for (const x of xs) {\n ret += x;\n }\n return ret;\n}\nfunction retainOnly(xs, pred) {\n xs.splice(0, xs.length, ...xs.filter(pred));\n}\nfunction gv(id, attrs) {\n const attrString = Object.entries(attrs ?? {}).flatMap(([k, v]) => v !== undefined ? [`${k}=\"${v}\"`] : []).join(',');\n return attrString ? `\"${simplifyId(id)}\" [${attrString}]` : `\"${simplifyId(id)}\"`;\n}\nfunction simplifyId(id) {\n return id.replace(/([0-9a-f]{6})[0-9a-f]{6,}/g, '$1');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndvcmstZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQXFEO0FBQ3JELCtEQUEyRDtBQUMzRCxxQ0FBOEM7QUFJOUMsTUFBYSxTQUFTO0lBQ0osS0FBSyxDQUEyQjtJQUMvQixTQUFTLEdBQW9CLEVBQUUsQ0FBQztJQUNoQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQUMvQyxRQUFRLENBQVc7SUFFN0IsS0FBSyxDQUFTO0lBRXJCLFlBQW1CLEtBQStCLEVBQUUsUUFBa0I7UUFDcEUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFHLEtBQWlCO1FBQ2xDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksNEJBQVksQ0FBQyxpQkFBaUIsRUFBRSw2QkFBNkIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEYsQ0FBQztZQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztZ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QUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDbkIsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBSSxFQUFPLEVBQUUsSUFBdUI7SUFDckQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsRUFBVSxFQUFFLEtBQTBDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVySCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7QUFDcEYsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEVBQVU7SUFDNUIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtOb2RlLCBTdGFja05vZGUsIEFzc2V0QnVpbGROb2RlLCBBc3NldFB1Ymxpc2hOb2RlIH0gZnJvbSAnLi93b3JrLWdyYXBoLXR5cGVzJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgcGFyYWxsZWxQcm9taXNlcyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuZXhwb3J0IHR5cGUgQ29uY3VycmVuY3kgPSBudW1iZXIgfCBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPjtcblxuZXhwb3J0IGNsYXNzIFdvcmtHcmFwaCB7XG4gIHB1YmxpYyByZWFkb25seSBub2RlczogUmVjb3JkPHN0cmluZywgV29ya05vZGU+O1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWR5UG9vbDogQXJyYXk8V29ya05vZGU+ID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbGF6eURlcGVuZGVuY2llcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgcHVibGljIGVycm9yPzogRXJyb3I7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG5vZGVzOiBSZWNvcmQ8c3RyaW5nLCBXb3JrTm9kZT4sIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMubm9kZXMgPSB7IC4uLm5vZGVzIH07XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgcHVibGljIGFkZE5vZGVzKC4uLm5vZGVzOiBXb3JrTm9kZVtdKSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBpZiAodGhpcy5ub2Rlc1tub2RlLmlkXSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEdXBsaWNhdGVOb2RlSWQnLCBgRHVwbGljYXRlIHVzZSBvZiBub2RlIGlkOiAke25vZGUuaWR9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxkID0gdGhpcy5sYXp5RGVwZW5kZW5jaWVzLmdldChub2RlLmlkKTtcbiAgICAgIGlmIChsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IHggb2YgbGQpIHtcbiAgICAgICAgICBub2RlLmRlcGVuZGVuY2llcy5hZGQoeCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXp5RGVwZW5kZW5jaWVzLmRlbGV0ZShub2RlLmlkKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5ub2Rlc1tub2RlLmlkXSA9IG5vZGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZU5vZGUobm9kZUlkOiBzdHJpbmcgfCBXb3JrTm9kZSkge1xuICAgIGNvbnN0IGlkID0gdHlwZW9mIG5vZGVJZCA9PT0gJ3N0cmluZycgPyBub2RlSWQgOiBub2RlSWQuaWQ7XG4gICAgY29uc3QgcmVtb3ZlZE5vZGUgPSB0aGlzLm5vZGVzW2lkXTtcblxuICAgIHRoaXMubGF6eURlcGVuZGVuY2llcy5kZWxldGUoaWQpO1xuICAgIGRlbGV0ZSB0aGlzLm5vZGVzW2lkXTtcblxuICAgIGlmIChyZW1vdmVkTm9kZSkge1xuICAgICAgZm9yIChjb25zdCBub2RlIG9mIE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykpIHtcbiAgICAgICAgbm9kZS5kZXBlbmRlbmNpZXMuZGVsZXRlKHJlbW92ZWROb2RlLmlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCBub2RlcyBvZiBhIGdpdmVuIHR5cGVcbiAgICovXG4gIHB1YmxpYyBub2Rlc09mVHlwZTxUIGV4dGVuZHMgV29ya05vZGVbJ3R5cGUnXT4odHlwZTogVCk6IEV4dHJhY3Q8V29ya05vZGUsIHsgdHlwZTogVCB9PltdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIobiA9PiBuLnR5cGUgPT09IHR5cGUpIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIG5vZGVzIHRoYXQgZGVwZW5kIG9uIGEgZ2l2ZW4gbm9kZVxuICAgKi9cbiAgcHVibGljIGRlcGVuZGVlcyhub2RlSWQ6IHN0cmluZyB8IFdvcmtOb2RlKSB7XG4gICAgY29uc3QgaWQgPSB0eXBlb2Ygbm9kZUlkID09PSAnc3RyaW5nJyA/IG5vZGVJZCA6IG5vZGVJZC5pZDtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIobiA9PiBuLmRlcGVuZGVuY2llcy5oYXMoaWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBkZXBlbmRlbmN5LCB0aGF0IG1heSBjb21lIGJlZm9yZSBvciBhZnRlciB0aGUgbm9kZXMgaW52b2x2ZWRcbiAgICovXG4gIHB1YmxpYyBhZGREZXBlbmRlbmN5KGZyb21JZDogc3RyaW5nLCB0b0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2Rlc1tmcm9tSWRdO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmRlcGVuZGVuY2llcy5hZGQodG9JZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBsYXp5RGVwcyA9IHRoaXMubGF6eURlcGVuZGVuY2llcy5nZXQoZnJvbUlkKTtcbiAgICBpZiAoIWxhenlEZXBzKSB7XG4gICAgICBsYXp5RGVwcyA9IFtdO1xuICAgICAgdGhpcy5sYXp5RGVwZW5kZW5jaWVzLnNldChmcm9tSWQsIGxhenlEZXBzKTtcbiAgICB9XG4gICAgbGF6eURlcHMucHVzaCh0b0lkKTtcbiAgfVxuXG4gIHB1YmxpYyB0cnlHZXROb2RlKGlkOiBzdHJpbmcpOiBXb3JrTm9kZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXNbaWRdO1xuICB9XG5cbiAgcHVibGljIG5vZGUoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHJldCA9IHRoaXMubm9kZXNbaWRdO1xuICAgIGlmICghcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdOb2RlTm90Rm91bmQnLCBgTm8gbm9kZSB3aXRoIGlkICR7aWR9IGFtb25nICR7T2JqZWN0LmtleXModGhpcy5ub2Rlcyl9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgYWJzb3JiKGdyYXBoOiBXb3JrR3JhcGgpIHtcbiAgICB0aGlzLmFkZE5vZGVzKC4uLk9iamVjdC52YWx1ZXMoZ3JhcGgubm9kZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRmFpbGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpLnNvbWUoKG4pID0+IG4uZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuRkFJTEVEKTtcbiAgfVxuXG4gIHB1YmxpYyBkb1BhcmFsbGVsKGNvbmN1cnJlbmN5OiBDb25jdXJyZW5jeSwgYWN0aW9uczogV29ya0dyYXBoQWN0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmZvckFsbEFydGlmYWN0cyhjb25jdXJyZW5jeSwgYXN5bmMgKHg6IFdvcmtOb2RlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHgudHlwZSkge1xuICAgICAgICBjYXNlICdzdGFjayc6XG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5kZXBsb3lTdGFjayh4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzZXQtYnVpbGQnOlxuICAgICAgICAgIGF3YWl0IGFjdGlvbnMuYnVpbGRBc3NldCh4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzZXQtcHVibGlzaCc6XG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5wdWJsaXNoQXNzZXQoeCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhbGwgc3RhY2sgbm9kZXMgaW4gZGVwZW5kZW5jeSBvcmRlciB3aXRoIHRoZSBnaXZlbiBjb25jdXJyZW5jeS5cbiAgICpcbiAgICogVW5saWtlIGBkb1BhcmFsbGVsYCwgdGhpcyBtZXRob2Qgb25seSBoYW5kbGVzIHN0YWNrIG5vZGVzIGFuZCB0YWtlcyBhXG4gICAqIHNpbXBsZSBjYWxsYmFjay4gSW50ZW5kZWQgZm9yIGRlc3Ryb3kgd2hlcmUgdGhlcmUgYXJlIG5vIGFzc2V0IG5vZGVzLlxuICAgKi9cbiAgcHVibGljIHByb2Nlc3NTdGFja3MoY29uY3VycmVuY3k6IG51bWJlciwgZm46IChzdGFja05vZGU6IFN0YWNrTm9kZSkgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgIHJldHVybiB0aGlzLmZvckFsbEFydGlmYWN0cyhjb25jdXJyZW5jeSwgYXN5bmMgKHg6IFdvcmtOb2RlKSA9PiB7XG4gICAgICBpZiAoeC50eXBlICE9PSAnc3RhY2snKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGZuKHgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2V0IG9mIHVuYmxvY2tlZCBub2Rlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWR5KCk6IFByb21pc2U8UmVhZG9ubHlBcnJheTxXb3JrTm9kZT4+IHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlYWR5UG9vbCgpO1xuICAgIHJldHVybiB0aGlzLnJlYWR5UG9vbDtcbiAgfVxuXG4gIHByaXZhdGUgZm9yQWxsQXJ0aWZhY3RzKG46IENvbmN1cnJlbmN5LCBmbjogKHg6IFdvcmtOb2RlKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ3JhcGggPSB0aGlzO1xuXG4gICAgLy8gSWYgJ24nIGlzIGEgbnVtYmVyLCB3ZSBsaW1pdCBhbGwgY29uY3VycmVuY3kgZXF1YWxseSAoZWZmZWN0aXZlbHkgd2Ugd2lsbCBiZSB1c2luZyB0b3RhbE1heClcbiAgICAvLyBJZiAnbicgaXMgYSByZWNvcmQsIHdlIGxpbWl0IGVhY2ggam9iIGluZGVwZW5kZW50bHkgKGVmZmVjdGl2ZWx5IHdlIHdpbGwgYmUgdXNpbmcgbWF4KVxuICAgIGNvbnN0IG1heDogUmVjb3JkPFdvcmtOb2RlWyd0eXBlJ10sIG51bWJlcj4gPSB0eXBlb2YgbiA9PT0gJ251bWJlcicgP1xuICAgICAge1xuICAgICAgICAnYXNzZXQtYnVpbGQnOiBuLFxuICAgICAgICAnYXNzZXQtcHVibGlzaCc6IG4sXG4gICAgICAgICdzdGFjayc6IG4sXG4gICAgICB9IDogbjtcbiAgICBjb25zdCB0b3RhbE1heCA9IHR5cGVvZiBuID09PSAnbnVtYmVyJyA/IG4gOiBzdW0oT2JqZWN0LnZhbHVlcyhuKSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBmYWlsKSA9PiB7XG4gICAgICBsZXQgYWN0aXZlOiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHtcbiAgICAgICAgJ2Fzc2V0LWJ1aWxkJzogMCxcbiAgICAgICAgJ2Fzc2V0LXB1Ymxpc2gnOiAwLFxuICAgICAgICAnc3RhY2snOiAwLFxuICAgICAgfTtcbiAgICAgIGZ1bmN0aW9uIHRvdGFsQWN0aXZlKCkge1xuICAgICAgICByZXR1cm4gc3VtKE9iamVjdC52YWx1ZXMoYWN0aXZlKSk7XG4gICAgICB9XG5cbiAgICAgIHN0YXJ0KCk7XG5cbiAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkge1xuICAgICAgICBncmFwaC51cGRhdGVSZWFkeVBvb2woKS50aGVuKCgpID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyYXBoLnJlYWR5UG9vbC5sZW5ndGg7ICkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGdyYXBoLnJlYWR5UG9vbFtpXTtcblxuICAgICAgICAgICAgaWYgKGFjdGl2ZVtub2RlLnR5cGVdIDwgbWF4W25vZGUudHlwZV0gJiYgdG90YWxBY3RpdmUoKSA8IHRvdGFsTWF4KSB7XG4gICAgICAgICAgICAgIGdyYXBoLnJlYWR5UG9vbC5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgIHN0YXJ0T25lKG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0b3RhbEFjdGl2ZSgpID09PSAwKSB7XG4gICAgICAgICAgICBpZiAoZ3JhcGguZG9uZSgpKSB7XG4gICAgICAgICAgICAgIG9rKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB3YWl0IGZvciBvdGhlciBhY3RpdmUgZGVwbG95cyB0byBmaW5pc2ggYmVmb3JlIGZhaWxpbmdcbiAgICAgICAgICAgIGlmIChncmFwaC5oYXNGYWlsZWQoKSkge1xuICAgICAgICAgICAgICBmYWlsKGdyYXBoLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgZmFpbChlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHN0YXJ0T25lKHg6IFdvcmtOb2RlKSB7XG4gICAgICAgIHguZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkRFUExPWUlORztcbiAgICAgICAgYWN0aXZlW3gudHlwZV0rKztcbiAgICAgICAgdm9pZCBmbih4KVxuICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2ZVt4LnR5cGVdLS07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBncmFwaC5kZXBsb3llZCh4KTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgLy8gQnkgcmVjb3JkaW5nIHRoZSBmYWlsdXJlIGltbWVkaWF0ZWx5IGFzIHRoZSBxdWV1ZWQgdGFzayBleGl0cywgd2UgcHJldmVudCB0aGUgbmV4dFxuICAgICAgICAgICAgLy8gcXVldWVkIHRhc2sgZnJvbSBzdGFydGluZy5cbiAgICAgICAgICAgIGdyYXBoLmZhaWxlZCh4LCBlcnIpO1xuICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5ldmVyeSgobikgPT4gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRCA9PT0gbi5kZXBsb3ltZW50U3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXBsb3llZChub2RlOiBXb3JrTm9kZSkge1xuICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRDtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbGVkKG5vZGU6IFdvcmtOb2RlLCBlcnJvcj86IEVycm9yKSB7XG4gICAgdGhpcy5lcnJvciA9IGVycm9yO1xuICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkZBSUxFRDtcbiAgICB0aGlzLnNraXBSZXN0KCk7XG4gICAgdGhpcy5yZWFkeVBvb2wuc3BsaWNlKDApO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbXG4gICAgICAnZGlncmFwaCBEIHsnLFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXModGhpcy5ub2RlcykuZmxhdE1hcCgoW2lkLCBub2RlXSkgPT4gcmVuZGVyTm9kZShpZCwgbm9kZSkpLFxuICAgICAgJ30nLFxuICAgIF0uam9pbignXFxuJyk7XG5cbiAgICBmdW5jdGlvbiByZW5kZXJOb2RlKGlkOiBzdHJpbmcsIG5vZGU6IFdvcmtOb2RlKTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgcmV0ID0gW107XG4gICAgICBpZiAobm9kZS5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5DT01QTEVURUQpIHtcbiAgICAgICAgcmV0LnB1c2goYCAgJHtndihpZCwgeyBzdHlsZTogJ2ZpbGxlZCcsIGZpbGxjb2xvcjogJ3llbGxvdycsIGNvbW1lbnQ6IG5vZGUubm90ZSB9KX07YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXQucHVzaChgICAke2d2KGlkLCB7IGNvbW1lbnQ6IG5vZGUubm90ZSB9KX07YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRlcCBvZiBub2RlLmRlcGVuZGVuY2llcykge1xuICAgICAgICByZXQucHVzaChgICAke2d2KGlkKX0gLT4gJHtndihkZXApfTtgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZSBhbGwgZGVwZW5kZW5jaWVzIGFjdHVhbGx5IGV4aXN0LiBUaGlzIHByb3RlY3RzIGFnYWluc3Qgc2NlbmFyaW9zIHN1Y2ggYXMgdGhlIGZvbGxvd2luZzpcbiAgICogU3RhY2tBIGRlcGVuZHMgb24gU3RhY2tCLCBidXQgU3RhY2tCIGlzIG5vdCBzZWxlY3RlZCB0byBkZXBsb3kuIFRoZSBkZXBlbmRlbmN5IGlzIHJlZHVuZGFudFxuICAgKiBhbmQgd2lsbCBiZSBkcm9wcGVkLlxuICAgKiBUaGlzIGFzc3VtZXMgdGhlIG1hbmlmZXN0IGNvbWVzIHVuY29ycnVwdGVkIHNvIHdlIHdpbGwgbm90IGZhaWwgaWYgYSBkZXBlbmRlbmN5IGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVVbmF2YWlsYWJsZURlcGVuZGVuY2llcygpIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKSkge1xuICAgICAgY29uc3QgcmVtb3ZlRGVwcyA9IEFycmF5LmZyb20obm9kZS5kZXBlbmRlbmNpZXMpLmZpbHRlcigoZGVwKSA9PiB0aGlzLm5vZGVzW2RlcF0gPT09IHVuZGVmaW5lZCk7XG5cbiAgICAgIHJlbW92ZURlcHMuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgICBub2RlLmRlcGVuZGVuY2llcy5kZWxldGUoZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBhc3NldCBwdWJsaXNoaW5nIHN0ZXBzIGZvciBhc3NldHMgdGhhdCBhcmUgYWxyZWFkeSBwdWJsaXNoZWQsIGFuZCB0aGVuIGJ1aWxkXG4gICAqIHRoYXQgYXJlbid0IHVzZWQgYW55bW9yZS5cbiAgICpcbiAgICogRG8gdGhpcyBpbiBwYXJhbGxlbCwgYmVjYXVzZSB0aGVyZSBtYXkgYmUgYSBsb3Qgb2YgYXNzZXRzIGluIGFuIGFwcGxpY2F0aW9uIChzZWVuIGluIHByYWN0aWNlOiA+MTAwIGFzc2V0cylcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZW1vdmVVbm5lY2Vzc2FyeUFzc2V0cyhpc1VubmVjZXNzYXJ5OiAoeDogQXNzZXRQdWJsaXNoTm9kZSkgPT4gUHJvbWlzZTxib29sZWFuPikge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoJ0NoZWNraW5nIGZvciBwcmV2aW91c2x5IHB1Ymxpc2hlZCBhc3NldHMnKTtcblxuICAgIGNvbnN0IHB1Ymxpc2hlcyA9IHRoaXMubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcblxuICAgIGNvbnN0IGNsYXNzaWZpZWROb2RlcyA9IGF3YWl0IHBhcmFsbGVsUHJvbWlzZXMoXG4gICAgICA4LFxuICAgICAgcHVibGlzaGVzLm1hcCgoYXNzZXROb2RlKSA9PiBhc3luYygpID0+IFthc3NldE5vZGUsIGF3YWl0IGlzVW5uZWNlc3NhcnkoYXNzZXROb2RlKV0gYXMgY29uc3QpKTtcblxuICAgIGNvbnN0IGFscmVhZHlQdWJsaXNoZWQgPSBjbGFzc2lmaWVkTm9kZXMuZmlsdGVyKChbXywgdW5uZWNlc3NhcnldKSA9PiB1bm5lY2Vzc2FyeSkubWFwKChbYXNzZXROb2RlLCBfXSkgPT4gYXNzZXROb2RlKTtcbiAgICBmb3IgKGNvbnN0IGFzc2V0Tm9kZSBvZiBhbHJlYWR5UHVibGlzaGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUoYXNzZXROb2RlKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke3B1Ymxpc2hlcy5sZW5ndGh9IHRvdGFsIGFzc2V0cywgJHtwdWJsaXNoZXMubGVuZ3RoIC0gYWxyZWFkeVB1Ymxpc2hlZC5sZW5ndGh9IHN0aWxsIG5lZWQgdG8gYmUgcHVibGlzaGVkYCk7XG5cbiAgICAvLyBOb3cgYWxzbyByZW1vdmUgYW55IGFzc2V0IGJ1aWxkIHN0ZXBzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgZGVwZW5kZW5jaWVzIG9uIHRoZW0gYW55bW9yZVxuICAgIGNvbnN0IHVudXNlZEJ1aWxkcyA9IHRoaXMubm9kZXNPZlR5cGUoJ2Fzc2V0LWJ1aWxkJykuZmlsdGVyKGJ1aWxkID0+IHRoaXMuZGVwZW5kZWVzKGJ1aWxkKS5sZW5ndGggPT09IDApO1xuICAgIGZvciAoY29uc3QgdW51c2VkQnVpbGQgb2YgdW51c2VkQnVpbGRzKSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUodW51c2VkQnVpbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVhZHlQb29sKCkge1xuICAgIGNvbnN0IGFjdGl2ZUNvdW50ID0gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIoKHgpID0+IHguZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuREVQTE9ZSU5HKS5sZW5ndGg7XG4gICAgY29uc3QgcGVuZGluZ0NvdW50ID0gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIoKHgpID0+IHguZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuUEVORElORykubGVuZ3RoO1xuXG4gICAgY29uc3QgbmV3bHlSZWFkeSA9IE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykuZmlsdGVyKCh4KSA9PlxuICAgICAgeC5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HICYmXG4gICAgICBBcnJheS5mcm9tKHguZGVwZW5kZW5jaWVzKS5ldmVyeSgoaWQpID0+IHRoaXMubm9kZShpZCkuZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuQ09NUExFVEVEKSk7XG5cbiAgICAvLyBBZGQgbmV3bHkgYXZhaWxhYmxlIG5vZGVzIHRvIHRoZSByZWFkeSBwb29sXG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5ld2x5UmVhZHkpIHtcbiAgICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLlFVRVVFRDtcbiAgICAgIHRoaXMucmVhZHlQb29sLnB1c2gobm9kZSk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIG5vZGVzIGZyb20gdGhlIHJlYWR5IHBvb2wgdGhhdCBoYXZlIGFscmVhZHkgc3RhcnRlZCBkZXBsb3lpbmdcbiAgICByZXRhaW5Pbmx5KHRoaXMucmVhZHlQb29sLCAobm9kZSkgPT4gbm9kZS5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5RVUVVRUQpO1xuXG4gICAgLy8gU29ydCBieSByZXZlcnNlIHByaW9yaXR5XG4gICAgdGhpcy5yZWFkeVBvb2wuc29ydCgoYSwgYikgPT4gKGIucHJpb3JpdHkgPz8gMCkgLSAoYS5wcmlvcml0eSA/PyAwKSk7XG5cbiAgICBpZiAodGhpcy5yZWFkeVBvb2wubGVuZ3RoID09PSAwICYmIGFjdGl2ZUNvdW50ID09PSAwICYmIHBlbmRpbmdDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IGN5Y2xlID0gdGhpcy5maW5kQ3ljbGUoKSA/PyBbJ05vIGN5Y2xlIGZvdW5kISddO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy50cmFjZShgQ3ljbGUgJHtjeWNsZS5qb2luKCcgLT4gJyl9IGluIGdyYXBoICR7dGhpc31gKTtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0RlcGVuZGVuY3lDeWNsZScsIGBVbmFibGUgdG8gbWFrZSBwcm9ncmVzcyBhbnltb3JlLCBkZXBlbmRlbmN5IGN5Y2xlIGJldHdlZW4gcmVtYWluaW5nIGFydGlmYWN0czogJHtjeWNsZS5qb2luKCcgLT4gJyl9IChydW4gd2l0aCAtdnYgZm9yIGZ1bGwgZ3JhcGgpYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBza2lwUmVzdCgpIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKSkge1xuICAgICAgaWYgKFtEZXBsb3ltZW50U3RhdGUuUVVFVUVELCBEZXBsb3ltZW50U3RhdGUuUEVORElOR10uaW5jbHVkZXMobm9kZS5kZXBsb3ltZW50U3RhdGUpKSB7XG4gICAgICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLlNLSVBQRUQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgY3ljbGVzIGluIGEgZ3JhcGhcbiAgICpcbiAgICogTm90IHRoZSBmYXN0ZXN0LCBidXQgZWZmZWN0aXZlIGFuZCBzaG91bGQgYmUgcmFyZVxuICAgKi9cbiAgcHVibGljIGZpbmRDeWNsZSgpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZvciAoY29uc3Qgbm9kZUlkIG9mIE9iamVjdC5rZXlzKHRoaXMubm9kZXMpKSB7XG4gICAgICBjb25zdCBjeWNsZSA9IHJlY3Vyc2Uobm9kZUlkLCBbbm9kZUlkXSk7XG4gICAgICBpZiAoY3ljbGUpIHtcbiAgICAgICAgcmV0dXJuIGN5Y2xlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzZShub2RlSWQ6IHN0cmluZywgcGF0aDogc3RyaW5nW10pOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoc2Vlbi5oYXMobm9kZUlkKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygc2VsZi5ub2Rlc1tub2RlSWRdLmRlcGVuZGVuY2llcyA/PyBbXSkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGF0aC5pbmRleE9mKGRlcCk7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBbLi4ucGF0aC5zbGljZShpbmRleCksIGRlcF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY3ljbGUgPSByZWN1cnNlKGRlcCwgWy4uLnBhdGgsIGRlcF0pO1xuICAgICAgICAgIGlmIChjeWNsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGN5Y2xlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZWVuLmFkZChub2RlSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBgZW5kYCBub2RlIGlzIHJlYWNoYWJsZSBmcm9tIHRoZSBgc3RhcnRgIG5vZGUsIGZvbGxvd2luZyB0aGUgZGVwZW5kZW5jeSBhcnJvd3NcbiAgICovXG4gIHB1YmxpYyByZWFjaGFibGUoc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIHJlY3Vyc2Uoc3RhcnQpO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzZShjdXJyZW50OiBzdHJpbmcpIHtcbiAgICAgIGlmIChzZWVuLmhhcyhjdXJyZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBzZWVuLmFkZChjdXJyZW50KTtcblxuICAgICAgaWYgKGN1cnJlbnQgPT09IGVuZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgZGVwIG9mIHNlbGYubm9kZXNbY3VycmVudF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGlmIChyZWN1cnNlKGRlcCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtHcmFwaEFjdGlvbnMge1xuICBkZXBsb3lTdGFjazogKHN0YWNrTm9kZTogU3RhY2tOb2RlKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBidWlsZEFzc2V0OiAoYXNzZXROb2RlOiBBc3NldEJ1aWxkTm9kZSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcHVibGlzaEFzc2V0OiAoYXNzZXROb2RlOiBBc3NldFB1Ymxpc2hOb2RlKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5mdW5jdGlvbiBzdW0oeHM6IG51bWJlcltdKSB7XG4gIGxldCByZXQgPSAwO1xuICBmb3IgKGNvbnN0IHggb2YgeHMpIHtcbiAgICByZXQgKz0geDtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiByZXRhaW5Pbmx5PEE+KHhzOiBBW10sIHByZWQ6ICh4OiBBKSA9PiBib29sZWFuKSB7XG4gIHhzLnNwbGljZSgwLCB4cy5sZW5ndGgsIC4uLnhzLmZpbHRlcihwcmVkKSk7XG59XG5cbmZ1bmN0aW9uIGd2KGlkOiBzdHJpbmcsIGF0dHJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPikge1xuICBjb25zdCBhdHRyU3RyaW5nID0gT2JqZWN0LmVudHJpZXMoYXR0cnMgPz8ge30pLmZsYXRNYXAoKFtrLCB2XSkgPT4gdiAhPT0gdW5kZWZpbmVkID8gW2Ake2t9PVwiJHt2fVwiYF0gOiBbXSkuam9pbignLCcpO1xuXG4gIHJldHVybiBhdHRyU3RyaW5nID8gYFwiJHtzaW1wbGlmeUlkKGlkKX1cIiBbJHthdHRyU3RyaW5nfV1gIDogYFwiJHtzaW1wbGlmeUlkKGlkKX1cImA7XG59XG5cbmZ1bmN0aW9uIHNpbXBsaWZ5SWQoaWQ6IHN0cmluZykge1xuICByZXR1cm4gaWQucmVwbGFjZSgvKFswLTlhLWZdezZ9KVswLTlhLWZdezYsfS9nLCAnJDEnKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmiContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Plugin to search AMIs for the current account\n */\nclass AmiContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n // Normally we'd do this only as 'debug', but searching AMIs typically takes dozens\n // of seconds, so be little more verbose about it so users know what is going on.\n await this.io.info(`Searching for AMI in ${account}:${region}`);\n await this.io.debug(`AMI search parameters: ${JSON.stringify(args)}`);\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const response = await ec2.describeImages({\n Owners: args.owners,\n Filters: Object.entries(args.filters).map(([key, values]) => ({\n Name: key,\n Values: values,\n })),\n });\n const images = [...(response.Images || [])].filter((i) => i.ImageId !== undefined);\n if (images.length === 0) {\n throw new toolkit_error_1.ContextProviderError('AmiNotFound', 'No AMI found that matched the search criteria');\n }\n // Return the most recent one\n // Note: Date.parse() is not going to respect the timezone of the string,\n // but since we only care about the relative values that is okay.\n images.sort(descending((i) => Date.parse(i.CreationDate || '1970')));\n await this.io.debug(`Selected image '${images[0].ImageId}' created at '${images[0].CreationDate}'`);\n return images[0].ImageId;\n }\n}\nexports.AmiContextProviderPlugin = AmiContextProviderPlugin;\n/**\n * Make a comparator that sorts in descending order given a sort key extractor\n */\nfunction descending(valueOf) {\n return (a, b) => {\n return valueOf(b) - valueOf(a);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFEQUFtRjtBQUVuRiw0REFBZ0U7QUFFaEU7O0dBRUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNOO0lBQW1DO0lBQWhFLFlBQTZCLEdBQWdCLEVBQW1CLEVBQTRCO1FBQS9ELFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBbUIsT0FBRSxHQUFGLEVBQUUsQ0FBMEI7SUFDNUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBcUI7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTdCLG1GQUFtRjtRQUNuRixpRkFBaUY7UUFDakYsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDaEUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLEVBQUUsR0FBRztnQkFDVCxNQUFNLEVBQUUsTUFBTTthQUNmLENBQUMsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUM7UUFFbkYsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxhQUFhLEVBQUUsK0NBQStDLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLHlFQUF5RTtRQUN6RSxpRUFBaUU7UUFDakUsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8saUJBQWlCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQVEsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFwQ0QsNERBb0NDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFVBQVUsQ0FBSSxPQUF5QjtJQUM5QyxPQUFPLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBRSxFQUFFO1FBQ3BCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBbWlDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgfSBmcm9tICcuJztcbmltcG9ydCB7IHR5cGUgU2RrUHJvdmlkZXIsIGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFBsdWdpbiB0byBzZWFyY2ggQU1JcyBmb3IgdGhlIGN1cnJlbnQgYWNjb3VudFxuICovXG5leHBvcnQgY2xhc3MgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBBbWlDb250ZXh0UXVlcnkpIHtcbiAgICBjb25zdCByZWdpb24gPSBhcmdzLnJlZ2lvbjtcbiAgICBjb25zdCBhY2NvdW50ID0gYXJncy5hY2NvdW50O1xuXG4gICAgLy8gTm9ybWFsbHkgd2UnZCBkbyB0aGlzIG9ubHkgYXMgJ2RlYnVnJywgYnV0IHNlYXJjaGluZyBBTUlzIHR5cGljYWxseSB0YWtlcyBkb3plbnNcbiAgICAvLyBvZiBzZWNvbmRzLCBzbyBiZSBsaXR0bGUgbW9yZSB2ZXJib3NlIGFib3V0IGl0IHNvIHVzZXJzIGtub3cgd2hhdCBpcyBnb2luZyBvbi5cbiAgICBhd2FpdCB0aGlzLmlvLmluZm8oYFNlYXJjaGluZyBmb3IgQU1JIGluICR7YWNjb3VudH06JHtyZWdpb259YCk7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgQU1JIHNlYXJjaCBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfWApO1xuXG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZUltYWdlcyh7XG4gICAgICBPd25lcnM6IGFyZ3Mub3duZXJzLFxuICAgICAgRmlsdGVyczogT2JqZWN0LmVudHJpZXMoYXJncy5maWx0ZXJzKS5tYXAoKFtrZXksIHZhbHVlc10pID0+ICh7XG4gICAgICAgIE5hbWU6IGtleSxcbiAgICAgICAgVmFsdWVzOiB2YWx1ZXMsXG4gICAgICB9KSksXG4gICAgfSk7XG5cbiAgICBjb25zdCBpbWFnZXMgPSBbLi4uKHJlc3BvbnNlLkltYWdlcyB8fCBbXSldLmZpbHRlcigoaSkgPT4gaS5JbWFnZUlkICE9PSB1bmRlZmluZWQpO1xuXG4gICAgaWYgKGltYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignQW1pTm90Rm91bmQnLCAnTm8gQU1JIGZvdW5kIHRoYXQgbWF0Y2hlZCB0aGUgc2VhcmNoIGNyaXRlcmlhJyk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRoZSBtb3N0IHJlY2VudCBvbmVcbiAgICAvLyBOb3RlOiBEYXRlLnBhcnNlKCkgaXMgbm90IGdvaW5nIHRvIHJlc3BlY3QgdGhlIHRpbWV6b25lIG9mIHRoZSBzdHJpbmcsXG4gICAgLy8gYnV0IHNpbmNlIHdlIG9ubHkgY2FyZSBhYm91dCB0aGUgcmVsYXRpdmUgdmFsdWVzIHRoYXQgaXMgb2theS5cbiAgICBpbWFnZXMuc29ydChkZXNjZW5kaW5nKChpKSA9PiBEYXRlLnBhcnNlKGkuQ3JlYXRpb25EYXRlIHx8ICcxOTcwJykpKTtcblxuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYFNlbGVjdGVkIGltYWdlICcke2ltYWdlc1swXS5JbWFnZUlkfScgY3JlYXRlZCBhdCAnJHtpbWFnZXNbMF0uQ3JlYXRpb25EYXRlfSdgKTtcbiAgICByZXR1cm4gaW1hZ2VzWzBdLkltYWdlSWQhO1xuICB9XG59XG5cbi8qKlxuICogTWFrZSBhIGNvbXBhcmF0b3IgdGhhdCBzb3J0cyBpbiBkZXNjZW5kaW5nIG9yZGVyIGdpdmVuIGEgc29ydCBrZXkgZXh0cmFjdG9yXG4gKi9cbmZ1bmN0aW9uIGRlc2NlbmRpbmc8QT4odmFsdWVPZjogKHg6IEEpID0+IG51bWJlcikge1xuICByZXR1cm4gKGE6IEEsIGI6IEEpID0+IHtcbiAgICByZXR1cm4gdmFsdWVPZihiKSAtIHZhbHVlT2YoYSk7XG4gIH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AZContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\n/**\n * Plugin to retrieve the Availability Zones for the current account\n */\nclass AZContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n await this.io.debug(`Reading AZs for ${account}:${region}`);\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const response = await ec2.describeAvailabilityZones({});\n if (!response.AvailabilityZones) {\n return [];\n }\n const azs = response.AvailabilityZones.filter((zone) => zone.State === 'available').map((zone) => zone.ZoneName);\n return azs;\n }\n}\nexports.AZContextProviderPlugin = AZContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWxhYmlsaXR5LXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXZhaWxhYmlsaXR5LXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHFEQUFtRjtBQUduRjs7R0FFRztBQUNILE1BQWEsdUJBQXVCO0lBQ0w7SUFBbUM7SUFBaEUsWUFBNkIsR0FBZ0IsRUFBbUIsRUFBNEI7UUFBL0QsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUEwQjtJQUM1RixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFtQztRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQ3ZHLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDMUMsQ0FBQztRQUNGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBbEJELDBEQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXZhaWxhYmlsaXR5Wm9uZXNDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBBdmFpbGFiaWxpdHlab25lIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgdHlwZSBTZGtQcm92aWRlciwgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbic7XG5cbi8qKlxuICogUGx1Z2luIHRvIHJldHJpZXZlIHRoZSBBdmFpbGFiaWxpdHkgWm9uZXMgZm9yIHRoZSBjdXJyZW50IGFjY291bnRcbiAqL1xuZXhwb3J0IGNsYXNzIEFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSkge1xuICAgIGNvbnN0IHJlZ2lvbiA9IGFyZ3MucmVnaW9uO1xuICAgIGNvbnN0IGFjY291bnQgPSBhcmdzLmFjY291bnQ7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgUmVhZGluZyBBWnMgZm9yICR7YWNjb3VudH06JHtyZWdpb259YCk7XG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzKHt9KTtcbiAgICBpZiAoIXJlc3BvbnNlLkF2YWlsYWJpbGl0eVpvbmVzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGF6cyA9IHJlc3BvbnNlLkF2YWlsYWJpbGl0eVpvbmVzLmZpbHRlcigoem9uZTogQXZhaWxhYmlsaXR5Wm9uZSkgPT4gem9uZS5TdGF0ZSA9PT0gJ2F2YWlsYWJsZScpLm1hcChcbiAgICAgICh6b25lOiBBdmFpbGFiaWxpdHlab25lKSA9PiB6b25lLlpvbmVOYW1lLFxuICAgICk7XG4gICAgcmV0dXJuIGF6cztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CcApiContextProviderPlugin = void 0;\nconst client_cloudcontrol_1 = require(\"@aws-sdk/client-cloudcontrol\");\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst util_1 = require(\"../util\");\nclass CcApiContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n /**\n * This returns a data object with the value from CloudControl API result.\n *\n * See the documentation in the Cloud Assembly Schema for the semantics of\n * each query parameter.\n */\n async getValue(args) {\n // Validate input\n if (args.exactIdentifier && args.propertyMatch) {\n throw new toolkit_error_1.ContextProviderError('ConflictingQueryParams', `Provider protocol error: specify either exactIdentifier or propertyMatch, but not both (got ${JSON.stringify(args)})`);\n }\n if (args.ignoreErrorOnMissingContext && args.dummyValue === undefined) {\n throw new toolkit_error_1.ContextProviderError('MissingDummyValue', `Provider protocol error: if ignoreErrorOnMissingContext is set, a dummyValue must be supplied (got ${JSON.stringify(args)})`);\n }\n if (args.dummyValue !== undefined && (!Array.isArray(args.dummyValue) || !args.dummyValue.every(isObject))) {\n throw new toolkit_error_1.ContextProviderError('InvalidDummyValue', `Provider protocol error: dummyValue must be an array of objects (got ${JSON.stringify(args.dummyValue)})`);\n }\n // Do the lookup\n const cloudControl = (await (0, private_1.initContextProviderSdk)(this.aws, args)).cloudControl();\n try {\n let resources;\n if (args.exactIdentifier) {\n // use getResource to get the exact identifier\n resources = await this.getResource(cloudControl, args.typeName, args.exactIdentifier);\n }\n else if (args.propertyMatch) {\n // use listResource\n resources = await this.listResources(cloudControl, args.typeName, args.propertyMatch, args.expectedMatchCount, args.resourceModel);\n }\n else {\n throw new toolkit_error_1.ContextProviderError('MissingQueryParams', `Provider protocol error: neither exactIdentifier nor propertyMatch is specified in ${JSON.stringify(args)}.`);\n }\n return resources.map((r) => (0, util_1.getResultObj)(r.properties, r.identifier, args.propertiesToReturn));\n }\n catch (err) {\n if (toolkit_error_1.ContextProviderError.isNoResultsFoundError(err) && args.ignoreErrorOnMissingContext) {\n // We've already type-checked dummyValue.\n return args.dummyValue;\n }\n throw err;\n }\n }\n /**\n * Calls getResource from CC API to get the resource.\n * See https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource.html\n *\n * Will always return exactly one resource, or fail.\n */\n async getResource(cc, typeName, exactIdentifier) {\n try {\n const result = await cc.getResource({\n TypeName: typeName,\n Identifier: exactIdentifier,\n });\n if (!result.ResourceDescription) {\n throw new toolkit_error_1.ContextProviderError('EmptyResponse', 'Unexpected CloudControl API behavior: returned empty response');\n }\n return [foundResourceFromCcApi(result.ResourceDescription)];\n }\n catch (err) {\n if (err instanceof client_cloudcontrol_1.ResourceNotFoundException || err.name === 'ResourceNotFoundException') {\n throw new toolkit_error_1.NoResultsFoundError(`No resource of type ${typeName} with identifier: ${exactIdentifier}`);\n }\n if (!toolkit_error_1.ContextProviderError.isContextProviderError(err)) {\n throw toolkit_error_1.ContextProviderError.withCause('CloudControlGetFailed', `Encountered CC API error while getting ${typeName} resource ${exactIdentifier}`, err);\n }\n throw err;\n }\n }\n /**\n * Calls listResources from CC API to get the resources and apply args.propertyMatch to find the resources.\n * See https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/list-resources.html\n *\n * Will return 0 or more resources.\n *\n * Does not currently paginate through more than one result page.\n */\n async listResources(cc, typeName, propertyMatch, expectedMatchCount, resourceModel) {\n try {\n const found = [];\n let nextToken = undefined;\n const resourceModelJSON = resourceModel ? JSON.stringify(resourceModel) : undefined;\n do {\n const result = await cc.listResources({\n TypeName: typeName,\n ResourceModel: resourceModelJSON,\n MaxResults: 100,\n ...nextToken ? { NextToken: nextToken } : {},\n });\n found.push(...(result.ResourceDescriptions ?? [])\n .map(foundResourceFromCcApi)\n .filter((r) => {\n return Object.entries(propertyMatch).every(([propPath, expected]) => {\n const actual = (0, util_1.findJsonValue)(r.properties, propPath);\n return propertyMatchesFilter(actual, expected);\n });\n }));\n nextToken = result.NextToken;\n // This allows us to error out early, before we have consumed all pages.\n if ((expectedMatchCount === 'at-most-one' || expectedMatchCount === 'exactly-one') && found.length > 1) {\n const atLeast = nextToken ? 'at least ' : '';\n throw new toolkit_error_1.ContextProviderError('TooManyMatches', `Found ${atLeast}${found.length} resources matching ${JSON.stringify(propertyMatch)}; expected ${expectedMatchCountText(expectedMatchCount)}. Please narrow the search criteria`);\n }\n } while (nextToken);\n if ((expectedMatchCount === 'at-least-one' || expectedMatchCount === 'exactly-one') && found.length === 0) {\n throw new toolkit_error_1.NoResultsFoundError(`Could not find any resources matching ${JSON.stringify(propertyMatch)}; expected ${expectedMatchCountText(expectedMatchCount)}.`);\n }\n return found;\n }\n catch (err) {\n if (!toolkit_error_1.ContextProviderError.isContextProviderError(err)) {\n throw toolkit_error_1.ContextProviderError.withCause('CloudControlListFailed', `Encountered CC API error while listing ${typeName} resources matching ${JSON.stringify(propertyMatch)}`, err);\n }\n throw err;\n }\n }\n}\nexports.CcApiContextProviderPlugin = CcApiContextProviderPlugin;\n/**\n * Convert a CC API response object into a nicer object (parse the JSON)\n */\nfunction foundResourceFromCcApi(desc) {\n return {\n identifier: desc.Identifier ?? '*MISSING*',\n properties: JSON.parse(desc.Properties ?? '{}'),\n };\n}\n/**\n * Whether the given property value matches the given filter\n *\n * For now we just check for strict equality, but we can implement pattern matching and fuzzy matching here later\n */\nfunction propertyMatchesFilter(actual, expected) {\n return expected === actual;\n}\nfunction isObject(x) {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\nfunction expectedMatchCountText(expectation) {\n switch (expectation) {\n case 'at-least-one':\n return 'at least one';\n case 'at-most-one':\n return 'at most one';\n case 'exactly-one':\n return 'exactly one';\n case 'any':\n return 'any number';\n default:\n return expectation;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2MtYXBpLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2MtYXBpLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHNFQUF5RTtBQUV6RSxxREFBaUU7QUFFakUsNERBQXFGO0FBQ3JGLGtDQUFzRDtBQUV0RCxNQUFhLDBCQUEwQjtJQUNSO0lBQTdCLFlBQTZCLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUF1QjtRQUMzQyxpQkFBaUI7UUFDakIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksb0NBQW9CLENBQUMsd0JBQXdCLEVBQUUsK0ZBQStGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25MLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQywyQkFBMkIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxtQkFBbUIsRUFBRSxzR0FBc0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckwsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNHLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxtQkFBbUIsRUFBRSx3RUFBd0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xLLENBQUM7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QUN2RCxPQUFPO1FBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksV0FBVztRQUMxQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztLQUNoRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLE1BQWUsRUFBRSxRQUFpQjtJQUMvRCxPQUFPLFFBQVEsS0FBSyxNQUFNLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLENBQVU7SUFDMUIsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsV0FBaUU7SUFDL0YsUUFBUSxXQUFXLEVBQUUsQ0FBQztRQUNwQixLQUFLLGNBQWM7WUFDakIsT0FBTyxjQUFjLENBQUM7UUFDeEIsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssYUFBYTtZQUNoQixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLEtBQUs7WUFDUixPQUFPLFlBQVksQ0FBQztRQUN0QjtZQUNFLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDY0FwaUNvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRGVzY3JpcHRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRjb250cm9sJztcbmltcG9ydCB7IFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRjb250cm9sJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkQ29udHJvbENsaWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yLCBOb1Jlc3VsdHNGb3VuZEVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZpbmRKc29uVmFsdWUsIGdldFJlc3VsdE9iaiB9IGZyb20gJy4uL3V0aWwnO1xuXG5leHBvcnQgY2xhc3MgQ2NBcGlDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHJldHVybnMgYSBkYXRhIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSBmcm9tIENsb3VkQ29udHJvbCBBUEkgcmVzdWx0LlxuICAgKlxuICAgKiBTZWUgdGhlIGRvY3VtZW50YXRpb24gaW4gdGhlIENsb3VkIEFzc2VtYmx5IFNjaGVtYSBmb3IgdGhlIHNlbWFudGljcyBvZlxuICAgKiBlYWNoIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBDY0FwaUNvbnRleHRRdWVyeSkge1xuICAgIC8vIFZhbGlkYXRlIGlucHV0XG4gICAgaWYgKGFyZ3MuZXhhY3RJZGVudGlmaWVyICYmIGFyZ3MucHJvcGVydHlNYXRjaCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdDb25mbGljdGluZ1F1ZXJ5UGFyYW1zJywgYFByb3ZpZGVyIHByb3RvY29sIGVycm9yOiBzcGVjaWZ5IGVpdGhlciBleGFjdElkZW50aWZpZXIgb3IgcHJvcGVydHlNYXRjaCwgYnV0IG5vdCBib3RoIChnb3QgJHtKU09OLnN0cmluZ2lmeShhcmdzKX0pYCk7XG4gICAgfVxuICAgIGlmIChhcmdzLmlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dCAmJiBhcmdzLmR1bW15VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNaXNzaW5nRHVtbXlWYWx1ZScsIGBQcm92aWRlciBwcm90b2NvbCBlcnJvcjogaWYgaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0IGlzIHNldCwgYSBkdW1teVZhbHVlIG11c3QgYmUgc3VwcGxpZWQgKGdvdCAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfSlgKTtcbiAgICB9XG4gICAgaWYgKGFyZ3MuZHVtbXlWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICghQXJyYXkuaXNBcnJheShhcmdzLmR1bW15VmFsdWUpIHx8ICFhcmdzLmR1bW15VmFsdWUuZXZlcnkoaXNPYmplY3QpKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdJbnZhbGlkRHVtbXlWYWx1ZScsIGBQcm92aWRlciBwcm90b2NvbCBlcnJvcjogZHVtbXlWYWx1ZSBtdXN0IGJlIGFuIGFycmF5IG9mIG9iamVjdHMgKGdvdCAke0pTT04uc3RyaW5naWZ5KGFyZ3MuZHVtbXlWYWx1ZSl9KWApO1xuICAgIH1cblxuICAgIC8vIERvIHRoZSBsb29rdXBcbiAgICBjb25zdCBjbG91ZENvbnRyb2wgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayh0aGlzLmF3cywgYXJncykpLmNsb3VkQ29udHJvbCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxldCByZXNvdXJjZXM6IEZvdW5kUmVzb3VyY2VbXTtcbiAgICAgIGlmIChhcmdzLmV4YWN0SWRlbnRpZmllcikge1xuICAgICAgICAvLyB1c2UgZ2V0UmVzb3VyY2UgdG8gZ2V0IHRoZSBleGFjdCBpZGVudGlmaWVyXG4gICAgICAgIHJlc291cmNlcyA9IGF3YWl0IHRoaXMuZ2V0UmVzb3VyY2UoY2xvdWRDb250cm9sLCBhcmdzLnR5cGVOYW1lLCBhcmdzLmV4YWN0SWRlbnRpZmllcik7XG4gICAgICB9IGVsc2UgaWYgKGFyZ3MucHJvcGVydHlNYXRjaCkge1xuICAgICAgICAvLyB1c2UgbGlzdFJlc291cmNlXG4gICAgICAgIHJlc291cmNlcyA9IGF3YWl0IHRoaXMubGlzdFJlc291cmNlcyhjbG91ZENvbnRyb2wsIGFyZ3MudHlwZU5hbWUsIGFyZ3MucHJvcGVydHlNYXRjaCwgYXJncy5leHBlY3RlZE1hdGNoQ291bnQsIGFyZ3MucmVzb3VyY2VNb2RlbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ01pc3NpbmdRdWVyeVBhcmFtcycsIGBQcm92aWRlciBwcm90b2NvbCBlcnJvcjogbmVpdGhlciBleGFjdElkZW50aWZpZXIgbm9yIHByb3BlcnR5TWF0Y2ggaXMgc3BlY2lmaWVkIGluICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9LmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb3VyY2VzLm1hcCgocikgPT4gZ2V0UmVzdWx0T2JqKHIucHJvcGVydGllcywgci5pZGVudGlmaWVyLCBhcmdzLnByb3BlcnRpZXNUb1JldHVybikpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKENvbnRleHRQcm92aWRlckVycm9yLmlzTm9SZXN1bHRzRm91bmRFcnJvcihlcnIpICYmIGFyZ3MuaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0KSB7XG4gICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgdHlwZS1jaGVja2VkIGR1bW15VmFsdWUuXG4gICAgICAgIHJldHVybiBhcmdzLmR1bW15VmFsdWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIGdldFJlc291cmNlIGZyb20gQ0MgQVBJIHRvIGdldCB0aGUgcmVzb3VyY2UuXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC9yZWZlcmVuY2UvY2xvdWRjb250cm9sL2dldC1yZXNvdXJjZS5odG1sXG4gICAqXG4gICAqIFdpbGwgYWx3YXlzIHJldHVybiBleGFjdGx5IG9uZSByZXNvdXJjZSwgb3IgZmFpbC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVzb3VyY2UoXG4gICAgY2M6IElDbG91ZENvbnRyb2xDbGllbnQsXG4gICAgdHlwZU5hbWU6IHN0cmluZyxcbiAgICBleGFjdElkZW50aWZpZXI6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxGb3VuZFJlc291cmNlW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2MuZ2V0UmVzb3VyY2Uoe1xuICAgICAgICBUeXBlTmFtZTogdHlwZU5hbWUsXG4gICAgICAgIElkZW50aWZpZXI6IGV4YWN0SWRlbnRpZmllcixcbiAgICAgIH0pO1xuICAgICAgaWYgKCFyZXN1bHQuUmVzb3VyY2VEZXNjcmlwdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0VtcHR5UmVzcG9uc2UnLCAnVW5leHBlY3RlZCBDbG91ZENvbnRyb2wgQVBJIGJlaGF2aW9yOiByZXR1cm5lZCBlbXB0eSByZXNwb25zZScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW2ZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkocmVzdWx0LlJlc291cmNlRGVzY3JpcHRpb24pXTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gfHwgKGVyciBhcyBhbnkpLm5hbWUgPT09ICdSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgTm9SZXN1bHRzRm91bmRFcnJvcihgTm8gcmVzb3VyY2Ugb2YgdHlwZSAke3R5cGVOYW1lfSB3aXRoIGlkZW50aWZpZXI6ICR7ZXhhY3RJZGVudGlmaWVyfWApO1xuICAgICAgfVxuICAgICAgaWYgKCFDb250ZXh0UHJvdmlkZXJFcnJvci5pc0NvbnRleHRQcm92aWRlckVycm9yKGVycikpIHtcbiAgICAgICAgdGhyb3cgQ29udGV4dFByb3ZpZGVyRXJyb3Iud2l0aENhdXNlKCdDbG91ZENvbnRyb2xHZXRGYWlsZWQnLCBgRW5jb3VudGVyZWQgQ0MgQVBJIGVycm9yIHdoaWxlIGdldHRpbmcgJHt0eXBlTmFtZX0gcmVzb3VyY2UgJHtleGFjdElkZW50aWZpZXJ9YCwgZXJyKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgbGlzdFJlc291cmNlcyBmcm9tIENDIEFQSSB0byBnZXQgdGhlIHJlc291cmNlcyBhbmQgYXBwbHkgYXJncy5wcm9wZXJ0eU1hdGNoIHRvIGZpbmQgdGhlIHJlc291cmNlcy5cbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3JlZmVyZW5jZS9jbG91ZGNvbnRyb2wvbGlzdC1yZXNvdXJjZXMuaHRtbFxuICAgKlxuICAgKiBXaWxsIHJldHVybiAwIG9yIG1vcmUgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBEb2VzIG5vdCBjdXJyZW50bHkgcGFnaW5hdGUgdGhyb3VnaCBtb3JlIHRoYW4gb25lIHJlc3VsdCBwYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsaXN0UmVzb3VyY2VzKFxuICAgIGNjOiBJQ2xvdWRDb250cm9sQ2xpZW50LFxuICAgIHR5cGVOYW1lOiBzdHJpbmcsXG4gICAgcHJvcGVydHlNYXRjaDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgZXhwZWN0ZWRNYXRjaENvdW50PzogQ2NBcGlDb250ZXh0UXVlcnlbJ2V4cGVjdGVkTWF0Y2hDb3VudCddLFxuICAgIHJlc291cmNlTW9kZWw/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxGb3VuZFJlc291cmNlW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZm91bmQ6IEZvdW5kUmVzb3VyY2VbXSA9IFtdO1xuICAgICAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcmVzb3VyY2VNb2RlbEpTT046IHN0cmluZyB8IHVuZGVmaW5lZCA9IHJlc291cmNlTW9kZWwgPyBKU09OLnN0cmluZ2lmeShyZXNvdXJjZU1vZGVsKSA6IHVuZGVmaW5lZDtcblxuICAgICAgZG8ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYy5saXN0UmVzb3VyY2VzKHtcbiAgICAgICAgICBUeXBlTmFtZTogdHlwZU5hbWUsXG4gICAgICAgICAgUmVzb3VyY2VNb2RlbDogcmVzb3VyY2VNb2RlbEpTT04sXG4gICAgICAgICAgTWF4UmVzdWx0czogMTAwLFxuICAgICAgICAgIC4uLm5leHRUb2tlbiA/IHsgTmV4dFRva2VuOiBuZXh0VG9rZW4gfSA6IHt9LFxuICAgICAgICB9KTtcblxuICAgICAgICBmb3VuZC5wdXNoKFxuICAgICAgICAgIC4uLihyZXN1bHQuUmVzb3VyY2VEZXNjcmlwdGlvbnMgPz8gW10pXG4gICAgICAgICAgICAubWFwKGZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkpXG4gICAgICAgICAgICAuZmlsdGVyKChyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhwcm9wZXJ0eU1hdGNoKS5ldmVyeSgoW3Byb3BQYXRoLCBleHBlY3RlZF0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWwgPSBmaW5kSnNvblZhbHVlKHIucHJvcGVydGllcywgcHJvcFBhdGgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eU1hdGNoZXNGaWx0ZXIoYWN0dWFsLCBleHBlY3RlZCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgbmV4dFRva2VuID0gcmVzdWx0Lk5leHRUb2tlbjtcblxuICAgICAgICAvLyBUaGlzIGFsbG93cyB1cyB0byBlcnJvciBvdXQgZWFybHksIGJlZm9yZSB3ZSBoYXZlIGNvbnN1bWVkIGFsbCBwYWdlcy5cbiAgICAgICAgaWYgKChleHBlY3RlZE1hdGNoQ291bnQgPT09ICdhdC1tb3N0LW9uZScgfHwgZXhwZWN0ZWRNYXRjaENvdW50ID09PSAnZXhhY3RseS1vbmUnKSAmJiBmb3VuZC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgY29uc3QgYXRMZWFzdCA9IG5leHRUb2tlbiA/ICdhdCBsZWFzdCAnIDogJyc7XG4gICAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdUb29NYW55TWF0Y2hlcycsIGBGb3VuZCAke2F0TGVhc3R9JHtmb3VuZC5sZW5ndGh9IHJlc291cmNlcyBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHByb3BlcnR5TWF0Y2gpfTsgZXhwZWN0ZWQgJHtleHBlY3RlZE1hdGNoQ291bnRUZXh0KGV4cGVjdGVkTWF0Y2hDb3VudCl9LiBQbGVhc2UgbmFycm93IHRoZSBzZWFyY2ggY3JpdGVyaWFgKTtcbiAgICAgICAgfVxuICAgICAgfSB3aGlsZSAobmV4dFRva2VuKTtcblxuICAgICAgaWYgKChleHBlY3RlZE1hdGNoQ291bnQgPT09ICdhdC1sZWFzdC1vbmUnIHx8IGV4cGVjdGVkTWF0Y2hDb3VudCA9PT0gJ2V4YWN0bHktb25lJykgJiYgZm91bmQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBOb1Jlc3VsdHNGb3VuZEVycm9yKGBDb3VsZCBub3QgZmluZCBhbnkgcmVzb3VyY2VzIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkocHJvcGVydHlNYXRjaCl9OyBleHBlY3RlZCAke2V4cGVjdGVkTWF0Y2hDb3VudFRleHQoZXhwZWN0ZWRNYXRjaENvdW50KX0uYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKCFDb250ZXh0UHJvdmlkZXJFcnJvci5pc0NvbnRleHRQcm92aWRlckVycm9yKGVycikpIHtcbiAgICAgICAgdGhyb3cgQ29udGV4dFByb3ZpZGVyRXJyb3Iud2l0aENhdXNlKCdDbG91ZENvbnRyb2xMaXN0RmFpbGVkJywgYEVuY291bnRlcmVkIENDIEFQSSBlcnJvciB3aGlsZSBsaXN0aW5nICR7dHlwZU5hbWV9IHJlc291cmNlcyBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHByb3BlcnR5TWF0Y2gpfWAsIGVycik7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29udmVydCBhIENDIEFQSSByZXNwb25zZSBvYmplY3QgaW50byBhIG5pY2VyIG9iamVjdCAocGFyc2UgdGhlIEpTT04pXG4gKi9cbmZ1bmN0aW9uIGZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkoZGVzYzogUmVzb3VyY2VEZXNjcmlwdGlvbik6IEZvdW5kUmVzb3VyY2Uge1xuICByZXR1cm4ge1xuICAgIGlkZW50aWZpZXI6IGRlc2MuSWRlbnRpZmllciA/PyAnKk1JU1NJTkcqJyxcbiAgICBwcm9wZXJ0aWVzOiBKU09OLnBhcnNlKGRlc2MuUHJvcGVydGllcyA/PyAne30nKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0eSB2YWx1ZSBtYXRjaGVzIHRoZSBnaXZlbiBmaWx0ZXJcbiAqXG4gKiBGb3Igbm93IHdlIGp1c3QgY2hlY2sgZm9yIHN0cmljdCBlcXVhbGl0eSwgYnV0IHdlIGNhbiBpbXBsZW1lbnQgcGF0dGVybiBtYXRjaGluZyBhbmQgZnV6enkgbWF0Y2hpbmcgaGVyZSBsYXRlclxuICovXG5mdW5jdGlvbiBwcm9wZXJ0eU1hdGNoZXNGaWx0ZXIoYWN0dWFsOiB1bmtub3duLCBleHBlY3RlZDogdW5rbm93bikge1xuICByZXR1cm4gZXhwZWN0ZWQgPT09IGFjdHVhbDtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoeDogdW5rbm93bik6IHggaXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0ge1xuICByZXR1cm4gdHlwZW9mIHggPT09ICdvYmplY3QnICYmIHggIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkoeCk7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdGVkTWF0Y2hDb3VudFRleHQoZXhwZWN0YXRpb246IE5vbk51bGxhYmxlPENjQXBpQ29udGV4dFF1ZXJ5WydleHBlY3RlZE1hdGNoQ291bnQnXT4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKGV4cGVjdGF0aW9uKSB7XG4gICAgY2FzZSAnYXQtbGVhc3Qtb25lJzpcbiAgICAgIHJldHVybiAnYXQgbGVhc3Qgb25lJztcbiAgICBjYXNlICdhdC1tb3N0LW9uZSc6XG4gICAgICByZXR1cm4gJ2F0IG1vc3Qgb25lJztcbiAgICBjYXNlICdleGFjdGx5LW9uZSc6XG4gICAgICByZXR1cm4gJ2V4YWN0bHkgb25lJztcbiAgICBjYXNlICdhbnknOlxuICAgICAgcmV0dXJuICdhbnkgbnVtYmVyJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV4cGVjdGF0aW9uO1xuICB9XG59XG5cbi8qKlxuICogQSBwYXJzZWQgdmVyc2lvbiBvZiB0aGUgcmV0dXJuIHZhbHVlIGZyb20gQ0NBUElcbiAqL1xuaW50ZXJmYWNlIEZvdW5kUmVzb3VyY2Uge1xuICByZWFkb25seSBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndpointServiceAZContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\n/**\n * Plugin to retrieve the Availability Zones for an endpoint service\n */\nclass EndpointServiceAZContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n const serviceName = args.serviceName;\n await this.io.debug(`Reading AZs for ${account}:${region}:${serviceName}`);\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const response = await ec2.describeVpcEndpointServices({\n ServiceNames: [serviceName],\n });\n // expect a service in the response\n if (!response.ServiceDetails || response.ServiceDetails.length === 0) {\n await this.io.debug(`Could not retrieve service details for ${account}:${region}:${serviceName}`);\n return [];\n }\n const azs = response.ServiceDetails[0].AvailabilityZones;\n await this.io.debug(`Endpoint service ${account}:${region}:${serviceName} is available in availability zones ${azs}`);\n return azs;\n }\n}\nexports.EndpointServiceAZContextProviderPlugin = EndpointServiceAZContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxREFBbUY7QUFHbkY7O0dBRUc7QUFDSCxNQUFhLHNDQUFzQztJQUNwQjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQWtEO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLE9BQU8sSUFBSSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMzRSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxnQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsMkJBQTJCLENBQUM7WUFDckQsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQzVCLENBQUMsQ0FBQztRQUVILG1DQUFtQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxPQUFPLElBQUksTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDbEcsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixPQUFPLElBQUksTUFBTSxJQUFJLFdBQVcsdUNBQXVDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEgsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUF2QkQsd0ZBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgdHlwZSBTZGtQcm92aWRlciwgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi4vYXBpL3BsdWdpbic7XG5cbi8qKlxuICogUGx1Z2luIHRvIHJldHJpZXZlIHRoZSBBdmFpbGFiaWxpdHkgWm9uZXMgZm9yIGFuIGVuZHBvaW50IHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSkge1xuICAgIGNvbnN0IHJlZ2lvbiA9IGFyZ3MucmVnaW9uO1xuICAgIGNvbnN0IGFjY291bnQgPSBhcmdzLmFjY291bnQ7XG4gICAgY29uc3Qgc2VydmljZU5hbWUgPSBhcmdzLnNlcnZpY2VOYW1lO1xuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYFJlYWRpbmcgQVpzIGZvciAke2FjY291bnR9OiR7cmVnaW9ufToke3NlcnZpY2VOYW1lfWApO1xuICAgIGNvbnN0IGVjMiA9IChhd2FpdCBpbml0Q29udGV4dFByb3ZpZGVyU2RrKHRoaXMuYXdzLCBhcmdzKSkuZWMyKCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlYzIuZGVzY3JpYmVWcGNFbmRwb2ludFNlcnZpY2VzKHtcbiAgICAgIFNlcnZpY2VOYW1lczogW3NlcnZpY2VOYW1lXSxcbiAgICB9KTtcblxuICAgIC8vIGV4cGVjdCBhIHNlcnZpY2UgaW4gdGhlIHJlc3BvbnNlXG4gICAgaWYgKCFyZXNwb25zZS5TZXJ2aWNlRGV0YWlscyB8fCByZXNwb25zZS5TZXJ2aWNlRGV0YWlscy5sZW5ndGggPT09IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYENvdWxkIG5vdCByZXRyaWV2ZSBzZXJ2aWNlIGRldGFpbHMgZm9yICR7YWNjb3VudH06JHtyZWdpb259OiR7c2VydmljZU5hbWV9YCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGF6cyA9IHJlc3BvbnNlLlNlcnZpY2VEZXRhaWxzWzBdLkF2YWlsYWJpbGl0eVpvbmVzO1xuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYEVuZHBvaW50IHNlcnZpY2UgJHthY2NvdW50fToke3JlZ2lvbn06JHtzZXJ2aWNlTmFtZX0gaXMgYXZhaWxhYmxlIGluIGF2YWlsYWJpbGl0eSB6b25lcyAke2F6c31gKTtcbiAgICByZXR1cm4gYXpzO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HostedZoneContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass HostedZoneContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const account = args.account;\n const region = args.region;\n if (!this.isHostedZoneQuery(args)) {\n throw new toolkit_error_1.ContextProviderError('MissingDomainName', `HostedZoneProvider requires domainName property to be set in ${args}`);\n }\n const domainName = args.domainName;\n await this.io.debug(`Reading hosted zone ${account}:${region}:${domainName}`);\n const r53 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).route53();\n const response = await r53.listHostedZonesByName({ DNSName: domainName });\n if (!response.HostedZones) {\n throw new toolkit_error_1.ContextProviderError('HostedZoneNotFound', `Hosted Zone not found in account ${account}, region ${region}: ${domainName}`);\n }\n const candidateZones = await this.filterZones(r53, response.HostedZones, args);\n if (candidateZones.length !== 1) {\n const filteProps = `dns:${domainName}, privateZone:${args.privateZone}, vpcId:${args.vpcId}`;\n throw new toolkit_error_1.ContextProviderError('HostedZoneCountMismatch', `Found zones: ${JSON.stringify(candidateZones)} for ${filteProps}, but wanted exactly 1 zone`);\n }\n return {\n Id: candidateZones[0].Id,\n Name: candidateZones[0].Name,\n };\n }\n async filterZones(r53, zones, props) {\n let candidates = [];\n const domainName = props.domainName.endsWith('.') ? props.domainName : `${props.domainName}.`;\n await this.io.debug(`Found the following zones ${JSON.stringify(zones)}`);\n candidates = zones.filter((zone) => zone.Name === domainName);\n await this.io.debug(`Found the following matched name zones ${JSON.stringify(candidates)}`);\n if (props.privateZone) {\n candidates = candidates.filter((zone) => zone.Config && zone.Config.PrivateZone);\n }\n else {\n candidates = candidates.filter((zone) => !zone.Config || !zone.Config.PrivateZone);\n }\n if (props.vpcId) {\n const vpcZones = [];\n for (const zone of candidates) {\n const data = await r53.getHostedZone({ Id: zone.Id });\n if (!data.VPCs) {\n await this.io.debug(`Expected VPC for private zone but no VPC found ${zone.Id}`);\n continue;\n }\n if (data.VPCs.map((vpc) => vpc.VPCId).includes(props.vpcId)) {\n vpcZones.push(zone);\n }\n }\n return vpcZones;\n }\n return candidates;\n }\n isHostedZoneQuery(props) {\n return props.domainName !== undefined;\n }\n}\nexports.HostedZoneContextProviderPlugin = HostedZoneContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkLXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaG9zdGVkLXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUFpRTtBQUVqRSw0REFBZ0U7QUFFaEUsTUFBYSwrQkFBK0I7SUFDYjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQTRCO1FBQ2hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLG9DQUFvQixDQUFDLG1CQUFtQixFQUFFLGdFQUFnRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlILENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLE9BQU8sSUFBSSxNQUFNLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM5RSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxnQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxvQkFBb0IsRUFB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Q0FBQztvQkFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQW1DO1FBQzNELE9BQVEsS0FBZ0MsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDO0lBQ3BFLENBQUM7Q0FDRjtBQWhFRCwwRUFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhvc3RlZFpvbmVDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBIb3N0ZWRab25lIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXJvdXRlLTUzJztcbmltcG9ydCB0eXBlIHsgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIH0gZnJvbSAnLic7XG5pbXBvcnQgdHlwZSB7IElSb3V0ZTUzQ2xpZW50LCBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZUNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlciwgcHJpdmF0ZSByZWFkb25seSBpbzogSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoYXJnczogSG9zdGVkWm9uZUNvbnRleHRRdWVyeSk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgY29uc3QgYWNjb3VudCA9IGFyZ3MuYWNjb3VudDtcbiAgICBjb25zdCByZWdpb24gPSBhcmdzLnJlZ2lvbjtcbiAgICBpZiAoIXRoaXMuaXNIb3N0ZWRab25lUXVlcnkoYXJncykpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTWlzc2luZ0RvbWFpbk5hbWUnLCBgSG9zdGVkWm9uZVByb3ZpZGVyIHJlcXVpcmVzIGRvbWFpbk5hbWUgcHJvcGVydHkgdG8gYmUgc2V0IGluICR7YXJnc31gKTtcbiAgICB9XG4gICAgY29uc3QgZG9tYWluTmFtZSA9IGFyZ3MuZG9tYWluTmFtZTtcbiAgICBhd2FpdCB0aGlzLmlvLmRlYnVnKGBSZWFkaW5nIGhvc3RlZCB6b25lICR7YWNjb3VudH06JHtyZWdpb259OiR7ZG9tYWluTmFtZX1gKTtcbiAgICBjb25zdCByNTMgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayh0aGlzLmF3cywgYXJncykpLnJvdXRlNTMoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHI1My5saXN0SG9zdGVkWm9uZXNCeU5hbWUoeyBETlNOYW1lOiBkb21haW5OYW1lIH0pO1xuICAgIGlmICghcmVzcG9uc2UuSG9zdGVkWm9uZXMpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignSG9zdGVkWm9uZU5vdEZvdW5kJywgYEhvc3RlZCBab25lIG5vdCBmb3VuZCBpbiBhY2NvdW50ICR7YWNjb3VudH0sIHJlZ2lvbiAke3JlZ2lvbn06ICR7ZG9tYWluTmFtZX1gKTtcbiAgICB9XG4gICAgY29uc3QgY2FuZGlkYXRlWm9uZXMgPSBhd2FpdCB0aGlzLmZpbHRlclpvbmVzKHI1MywgcmVzcG9uc2UuSG9zdGVkWm9uZXMsIGFyZ3MpO1xuICAgIGlmIChjYW5kaWRhdGVab25lcy5sZW5ndGggIT09IDEpIHtcbiAgICAgIGNvbnN0IGZpbHRlUHJvcHMgPSBgZG5zOiR7ZG9tYWluTmFtZX0sIHByaXZhdGVab25lOiR7YXJncy5wcml2YXRlWm9uZX0sIHZwY0lkOiR7YXJncy52cGNJZH1gO1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdIb3N0ZWRab25lQ291bnRNaXNtYXRjaCcsIGBGb3VuZCB6b25lczogJHtKU09OLnN0cmluZ2lmeShjYW5kaWRhdGVab25lcyl9IGZvciAke2ZpbHRlUHJvcHN9LCBidXQgd2FudGVkIGV4YWN0bHkgMSB6b25lYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIElkOiBjYW5kaWRhdGVab25lc1swXS5JZCxcbiAgICAgIE5hbWU6IGNhbmRpZGF0ZVpvbmVzWzBdLk5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyWm9uZXMoXG4gICAgcjUzOiBJUm91dGU1M0NsaWVudCxcbiAgICB6b25lczogSG9zdGVkWm9uZVtdLFxuICAgIHByb3BzOiBIb3N0ZWRab25lQ29udGV4dFF1ZXJ5LFxuICApOiBQcm9taXNlPEhvc3RlZFpvbmVbXT4ge1xuICAgIGxldCBjYW5kaWRhdGVzOiBIb3N0ZWRab25lW10gPSBbXTtcbiAgICBjb25zdCBkb21haW5OYW1lID0gcHJvcHMuZG9tYWluTmFtZS5lbmRzV2l0aCgnLicpID8gcHJvcHMuZG9tYWluTmFtZSA6IGAke3Byb3BzLmRvbWFpbk5hbWV9LmA7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgRm91bmQgdGhlIGZvbGxvd2luZyB6b25lcyAke0pTT04uc3RyaW5naWZ5KHpvbmVzKX1gKTtcbiAgICBjYW5kaWRhdGVzID0gem9uZXMuZmlsdGVyKCh6b25lKSA9PiB6b25lLk5hbWUgPT09IGRvbWFpbk5hbWUpO1xuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYEZvdW5kIHRoZSBmb2xsb3dpbmcgbWF0Y2hlZCBuYW1lIHpvbmVzICR7SlNPTi5zdHJpbmdpZnkoY2FuZGlkYXRlcyl9YCk7XG4gICAgaWYgKHByb3BzLnByaXZhdGVab25lKSB7XG4gICAgICBjYW5kaWRhdGVzID0gY2FuZGlkYXRlcy5maWx0ZXIoKHpvbmUpID0+IHpvbmUuQ29uZmlnICYmIHpvbmUuQ29uZmlnLlByaXZhdGVab25lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FuZGlkYXRlcyA9IGNhbmRpZGF0ZXMuZmlsdGVyKCh6b25lKSA9PiAhem9uZS5Db25maWcgfHwgIXpvbmUuQ29uZmlnLlByaXZhdGVab25lKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLnZwY0lkKSB7XG4gICAgICBjb25zdCB2cGNab25lczogSG9zdGVkWm9uZVtdID0gW107XG4gICAgICBmb3IgKGNvbnN0IHpvbmUgb2YgY2FuZGlkYXRlcykge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcjUzLmdldEhvc3RlZFpvbmUoeyBJZDogem9uZS5JZCB9KTtcbiAgICAgICAgaWYgKCFkYXRhLlZQQ3MpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvLmRlYnVnKGBFeHBlY3RlZCBWUEMgZm9yIHByaXZhdGUgem9uZSBidXQgbm8gVlBDIGZvdW5kICR7em9uZS5JZH1gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5WUENzLm1hcCgodnBjKSA9PiB2cGMuVlBDSWQpLmluY2x1ZGVzKHByb3BzLnZwY0lkKSkge1xuICAgICAgICAgIHZwY1pvbmVzLnB1c2goem9uZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2cGNab25lcztcbiAgICB9XG4gICAgcmV0dXJuIGNhbmRpZGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIGlzSG9zdGVkWm9uZVF1ZXJ5KHByb3BzOiBIb3N0ZWRab25lQ29udGV4dFF1ZXJ5IHwgYW55KTogcHJvcHMgaXMgSG9zdGVkWm9uZUNvbnRleHRRdWVyeSB7XG4gICAgcmV0dXJuIChwcm9wcyBhcyBIb3N0ZWRab25lQ29udGV4dFF1ZXJ5KS5kb21haW5OYW1lICE9PSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.provideContextValues = provideContextValues;\nexports.registerContextProvider = registerContextProvider;\nexports.registerPluginContextProvider = registerPluginContextProvider;\nexports.registerContextProviderFactory = registerContextProviderFactory;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst cxschema = require(\"@aws-cdk/cloud-assembly-schema\");\nconst ami_1 = require(\"./ami\");\nconst availability_zones_1 = require(\"./availability-zones\");\nconst cc_api_provider_1 = require(\"./cc-api-provider\");\nconst endpoint_service_availability_zones_1 = require(\"./endpoint-service-availability-zones\");\nconst hosted_zones_1 = require(\"./hosted-zones\");\nconst keys_1 = require(\"./keys\");\nconst load_balancers_1 = require(\"./load-balancers\");\nconst security_groups_1 = require(\"./security-groups\");\nconst ssm_parameters_1 = require(\"./ssm-parameters\");\nconst vpcs_1 = require(\"./vpcs\");\nconst context_1 = require(\"../api/context\");\nconst environment_1 = require(\"../api/environment\");\nconst private_1 = require(\"../api/io/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nconst util_1 = require(\"../util\");\nconst PLUGIN_PROVIDER_PREFIX = 'plugin';\nclass ContextProviderMessages {\n ioHelper;\n providerName;\n constructor(ioHelper, providerName) {\n this.ioHelper = ioHelper;\n this.providerName = providerName;\n }\n async info(message) {\n return this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0300.msg(message, {\n provider: this.providerName,\n }));\n }\n async debug(message) {\n return this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0301.msg(message, {\n provider: this.providerName,\n }));\n }\n}\n/**\n * Iterate over the list of missing context values and invoke the appropriate providers from the map to retrieve them\n */\nasync function provideContextValues(missingValues, sdk, pluginHost, ioHelper) {\n const updates = {};\n for (const missingContext of missingValues) {\n const key = missingContext.key;\n const providerName = missingContext.provider === cxschema.ContextProvider.PLUGIN\n ? `${PLUGIN_PROVIDER_PREFIX}:${missingContext.props.pluginName}`\n : missingContext.provider;\n let factory;\n if (providerName.startsWith(`${PLUGIN_PROVIDER_PREFIX}:`)) {\n const plugin = pluginHost.contextProviderPlugins[providerName.substring(PLUGIN_PROVIDER_PREFIX.length + 1)];\n if (!plugin) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ContextProviderError('UnrecognizedPlugin', `Unrecognized plugin context provider name: ${missingContext.provider}.`);\n }\n factory = () => plugin;\n }\n else {\n factory = availableContextProviders[providerName];\n if (!factory) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ContextProviderError('UnrecognizedProvider', `Unrecognized context provider name: ${missingContext.provider}. You might need to update the toolkit to match the version of the construct library.`);\n }\n }\n const provider = factory(sdk, new ContextProviderMessages(ioHelper, providerName));\n let value;\n try {\n const environment = missingContext.props.account && missingContext.props.region\n ? cloud_assembly_api_1.EnvironmentUtils.make(missingContext.props.account, missingContext.props.region)\n : undefined;\n const resolvedEnvironment = environment\n ? await sdk.resolveEnvironment(environment)\n : { account: '?', region: '?', name: '?' };\n const arns = await (0, environment_1.replaceEnvPlaceholders)({\n lookupRoleArn: missingContext.props.lookupRoleArn,\n }, resolvedEnvironment, sdk);\n value = await provider.getValue({ ...missingContext.props, lookupRoleArn: arns.lookupRoleArn });\n }\n catch (e) {\n // Set a specially formatted provider value which will be interpreted\n // as a lookup failure in the toolkit.\n value = { [cloud_assembly_api_1.PROVIDER_ERROR_KEY]: (0, util_1.formatErrorMessage)(e), [context_1.TRANSIENT_CONTEXT_KEY]: true };\n }\n updates[key] = value;\n await ioHelper.defaults.debug(`Setting \"${key}\" context to ${JSON.stringify(value)}`);\n }\n return updates;\n}\n/**\n * Register a context provider\n *\n * A context provider cannot reuse the SDKs authentication mechanisms.\n */\nfunction registerContextProvider(name, provider) {\n availableContextProviders[name] = () => provider;\n}\n/**\n * Register a plugin context provider\n *\n * A plugin provider cannot reuse the SDKs authentication mechanisms.\n */\nfunction registerPluginContextProvider(name, provider) {\n registerContextProvider(`${PLUGIN_PROVIDER_PREFIX}:${name}`, provider);\n}\n/**\n * Register a context provider factory\n *\n * A context provider factory takes an SdkProvider and returns the context provider plugin.\n */\nfunction registerContextProviderFactory(name, provider) {\n availableContextProviders[name] = provider;\n}\nconst availableContextProviders = {\n [cxschema.ContextProvider.AVAILABILITY_ZONE_PROVIDER]: (s, io) => new availability_zones_1.AZContextProviderPlugin(s, io),\n [cxschema.ContextProvider.SSM_PARAMETER_PROVIDER]: (s, io) => new ssm_parameters_1.SSMContextProviderPlugin(s, io),\n [cxschema.ContextProvider.HOSTED_ZONE_PROVIDER]: (s, io) => new hosted_zones_1.HostedZoneContextProviderPlugin(s, io),\n [cxschema.ContextProvider.VPC_PROVIDER]: (s, io) => new vpcs_1.VpcNetworkContextProviderPlugin(s, io),\n [cxschema.ContextProvider.AMI_PROVIDER]: (s, io) => new ami_1.AmiContextProviderPlugin(s, io),\n [cxschema.ContextProvider.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER]: (s, io) => new endpoint_service_availability_zones_1.EndpointServiceAZContextProviderPlugin(s, io),\n [cxschema.ContextProvider.SECURITY_GROUP_PROVIDER]: (s) => new security_groups_1.SecurityGroupContextProviderPlugin(s),\n [cxschema.ContextProvider.LOAD_BALANCER_PROVIDER]: (s) => new load_balancers_1.LoadBalancerContextProviderPlugin(s),\n [cxschema.ContextProvider.LOAD_BALANCER_LISTENER_PROVIDER]: (s) => new load_balancers_1.LoadBalancerListenerContextProviderPlugin(s),\n [cxschema.ContextProvider.KEY_PROVIDER]: (s, io) => new keys_1.KeyContextProviderPlugin(s, io),\n [cxschema.ContextProvider.CC_API_PROVIDER]: (s) => new cc_api_provider_1.CcApiContextProviderPlugin(s),\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFFQSxvREEwREM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUF6SkQsb0VBQW1GO0FBQ25GLDJEQUEyRDtBQUMzRCwrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFFekQsNENBQXVEO0FBQ3ZELG9EQUE0RDtBQUM1RCwrQ0FBdUM7QUFHdkMsNERBQWdFO0FBQ2hFLGtDQUE2QztBQUs3QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQW1CeEMsTUFBTSx1QkFBdUI7SUFDVixRQUFRLENBQVc7SUFDbkIsWUFBWSxDQUFTO0lBRXRDLFlBQW1CLFFBQWtCLEVBQUUsWUFBb0I7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUM1QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFD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QyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksNENBQTBCLENBQUMsQ0FBQyxDQUFDO0NBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50VXRpbHMsIFBST1ZJREVSX0VSUk9SX0tFWSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9hbWknO1xuaW1wb3J0IHsgQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2F2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vY2MtYXBpLXByb3ZpZGVyJztcbmltcG9ydCB7IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9lbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9ob3N0ZWQtem9uZXMnO1xuaW1wb3J0IHsgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9rZXlzJztcbmltcG9ydCB7IExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2xvYWQtYmFsYW5jZXJzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NlY3VyaXR5LWdyb3Vwcyc7XG5pbXBvcnQgeyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NzbS1wYXJhbWV0ZXJzJztcbmltcG9ydCB7IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3ZwY3MnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IFRSQU5TSUVOVF9DT05URVhUX0tFWSB9IGZyb20gJy4uL2FwaS9jb250ZXh0JztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9hcGkvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ib3N0LCBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uL3V0aWwnO1xuXG50eXBlIENvbnRleHRQcm92aWRlckZhY3RvcnkgPSAoKHNkazogU2RrUHJvdmlkZXIsIGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpID0+IENvbnRleHRQcm92aWRlclBsdWdpbik7XG50eXBlIFByb3ZpZGVyTWFwID0geyBbbmFtZTogc3RyaW5nXTogQ29udGV4dFByb3ZpZGVyRmFjdG9yeSB9O1xuXG5jb25zdCBQTFVHSU5fUFJPVklERVJfUFJFRklYID0gJ3BsdWdpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIHtcbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGlzIHByZXNlbnRlZCB0byB1c2VycyBpbiBub3JtYWwgbW9kZSBvZiBvcGVyYXRpb24uXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIHNwYXJpbmdseS4gVGhlIENvbnRleHQgUHJvdmlkZXIgZnJhbWV3b3JrIGFscmVhZHkgcHJvdmlkZXMgdXNlZnVsIG91dHB1dCBieSBkZWZhdWx0LlxuICAgKiBUaGlzIGNhbiBiZSB1c2VzIGluIGV4Y2VwdGlvbmFsbHkgc2l0dWF0aW9ucywgZS5nLiBpZiBhIGxvb2t1cCBjYWxsIGlzIGV4cGVjdGVkIHRvIHRha2UgYSBsb25nIHRpbWUuXG4gICAqL1xuICBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGhlbHBzIHVzZXJzIGRlYnVnZ2luZyB0aGUgY29udGV4dCBwcm92aWRlci5cbiAgICpcbiAgICogU2hvdWxkIGJlIHVzZWQgaW4gbW9zdCBjYXNlcyB0byBub3RlIG9uIGN1cnJlbnQgYWN0aW9uLlxuICAgKi9cbiAgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuY2xhc3MgQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgaW1wbGVtZW50cyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlck5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBwcm92aWRlck5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLnByb3ZpZGVyTmFtZSA9IHByb3ZpZGVyTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAzMDAubXNnKG1lc3NhZ2UsIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDMwMS5tc2cobWVzc2FnZSwge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBtaXNzaW5nIGNvbnRleHQgdmFsdWVzIGFuZCBpbnZva2UgdGhlIGFwcHJvcHJpYXRlIHByb3ZpZGVycyBmcm9tIHRoZSBtYXAgdG8gcmV0cmlldmUgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlkZUNvbnRleHRWYWx1ZXMoXG4gIG1pc3NpbmdWYWx1ZXM6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0W10sXG4gIHNkazogU2RrUHJvdmlkZXIsXG4gIHBsdWdpbkhvc3Q6IFBsdWdpbkhvc3QsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgdXBkYXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IG1pc3NpbmdDb250ZXh0IG9mIG1pc3NpbmdWYWx1ZXMpIHtcbiAgICBjb25zdCBrZXkgPSBtaXNzaW5nQ29udGV4dC5rZXk7XG5cbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBtaXNzaW5nQ29udGV4dC5wcm92aWRlciA9PT0gY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlBMVUdJTlxuICAgICAgPyBgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTokeyhtaXNzaW5nQ29udGV4dC5wcm9wcyBhcyBjeHNjaGVtYS5QbHVnaW5Db250ZXh0UXVlcnkpLnBsdWdpbk5hbWV9YFxuICAgICAgOiBtaXNzaW5nQ29udGV4dC5wcm92aWRlcjtcblxuICAgIGxldCBmYWN0b3J5O1xuICAgIGlmIChwcm92aWRlck5hbWUuc3RhcnRzV2l0aChgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTpgKSkge1xuICAgICAgY29uc3QgcGx1Z2luID0gcGx1Z2luSG9zdC5jb250ZXh0UHJvdmlkZXJQbHVnaW5zW3Byb3ZpZGVyTmFtZS5zdWJzdHJpbmcoUExVR0lOX1BST1ZJREVSX1BSRUZJWC5sZW5ndGggKyAxKV07XG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignVW5yZWNvZ25pemVkUGx1Z2luJywgYFVucmVjb2duaXplZCBwbHVnaW4gY29udGV4dCBwcm92aWRlciBuYW1lOiAke21pc3NpbmdDb250ZXh0LnByb3ZpZGVyfS5gKTtcbiAgICAgIH1cbiAgICAgIGZhY3RvcnkgPSAoKSA9PiBwbHVnaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZhY3RvcnkgPSBhdmFpbGFibGVDb250ZXh0UHJvdmlkZXJzW3Byb3ZpZGVyTmFtZV07XG4gICAgICBpZiAoIWZhY3RvcnkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBzdHlsaXN0aWMvbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1VucmVjb2duaXplZFByb3ZpZGVyJywgYFVucmVjb2duaXplZCBjb250ZXh0IHByb3ZpZGVyIG5hbWU6ICR7bWlzc2luZ0NvbnRleHQucHJvdmlkZXJ9LiBZb3UgbWlnaHQgbmVlZCB0byB1cGRhdGUgdGhlIHRvb2xraXQgdG8gbWF0Y2ggdGhlIHZlcnNpb24gb2YgdGhlIGNvbnN0cnVjdCBsaWJyYXJ5LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyID0gZmFjdG9yeShzZGssIG5ldyBDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyhpb0hlbHBlciwgcHJvdmlkZXJOYW1lKSk7XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gbWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCAmJiBtaXNzaW5nQ29udGV4dC5wcm9wcy5yZWdpb25cbiAgICAgICAgPyBFbnZpcm9ubWVudFV0aWxzLm1ha2UobWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCwgbWlzc2luZ0NvbnRleHQucHJvcHMucmVnaW9uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICAgICAgICA/IGF3YWl0IHNkay5yZXNvbHZlRW52aXJvbm1lbnQoZW52aXJvbm1lbnQpXG4gICAgICAgIDogeyBhY2NvdW50OiAnPycsIHJlZ2lvbjogJz8nLCBuYW1lOiAnPycgfTtcblxuICAgICAgY29uc3QgYXJucyA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgICBsb29rdXBSb2xlQXJuOiBtaXNzaW5nQ29udGV4dC5wcm9wcy5sb29rdXBSb2xlQXJuLFxuICAgICAgfSwgcmVzb2x2ZWRFbnZpcm9ubWVudCwgc2RrKTtcblxuICAgICAgdmFsdWUgPSBhd2FpdCBwcm92aWRlci5nZXRWYWx1ZSh7IC4uLm1pc3NpbmdDb250ZXh0LnByb3BzLCBsb29rdXBSb2xlQXJuOiBhcm5zLmxvb2t1cFJvbGVBcm4gfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBTZXQgYSBzcGVjaWFsbHkgZm9ybWF0dGVkIHByb3ZpZGVyIHZhbHVlIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWRcbiAgICAgIC8vIGFzIGEgbG9va3VwIGZhaWx1cmUgaW4gdGhlIHRvb2xraXQuXG4gICAgICB2YWx1ZSA9IHsgW1BST1ZJREVSX0VSUk9SX0tFWV06IGZvcm1hdEVycm9yTWVzc2FnZShlKSwgW1RSQU5TSUVOVF9DT05URVhUX0tFWV06IHRydWUgfTtcbiAgICB9XG4gICAgdXBkYXRlc1trZXldID0gdmFsdWU7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYFNldHRpbmcgXCIke2tleX1cIiBjb250ZXh0IHRvICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZXM7XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGNhbm5vdCByZXVzZSB0aGUgU0RLcyBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogQ29udGV4dFByb3ZpZGVyUGx1Z2luKSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSAoKSA9PiBwcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBwbHVnaW4gcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIoYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06JHtuYW1lfWAsIHByb3ZpZGVyKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXIgZmFjdG9yeVxuICpcbiAqIEEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5IHRha2VzIGFuIFNka1Byb3ZpZGVyIGFuZCByZXR1cm5zIHRoZSBjb250ZXh0IHByb3ZpZGVyIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGV4dFByb3ZpZGVyRmFjdG9yeShuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5KSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSBwcm92aWRlcjtcbn1cblxuY29uc3QgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyczogUHJvdmlkZXJNYXAgPSB7XG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU1NNX1BBUkFNRVRFUl9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuSE9TVEVEX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5WUENfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBWcGNOZXR3b3JrQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5BTUlfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBFbmRwb2ludFNlcnZpY2VBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU0VDVVJJVFlfR1JPVVBfUFJPVklERVJdOiAocykgPT4gbmV3IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkxPQURfQkFMQU5DRVJfTElTVEVORVJfUFJPVklERVJdOiAocykgPT4gbmV3IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLktFWV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEtleUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSXTogKHMpID0+IG5ldyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbn07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass KeyContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const kms = (await (0, private_1.initContextProviderSdk)(this.aws, args)).kms();\n const aliasListEntry = await this.findKey(kms, args);\n return this.readKeyProps(aliasListEntry, args);\n }\n // TODO: use paginator function\n async findKey(kms, args) {\n await this.io.debug(`Listing keys in ${args.account}:${args.region}`);\n let response;\n let nextMarker;\n do {\n response = await kms.listAliases({\n Marker: nextMarker,\n });\n const aliases = response.Aliases || [];\n for (const alias of aliases) {\n if (alias.AliasName == args.aliasName) {\n return alias;\n }\n }\n nextMarker = response.NextMarker;\n } while (nextMarker);\n const suppressError = 'ignoreErrorOnMissingContext' in args && args.ignoreErrorOnMissingContext;\n const hasDummyKeyId = 'dummyValue' in args && typeof args.dummyValue === 'object' && args.dummyValue !== null && 'keyId' in args.dummyValue;\n if (suppressError && hasDummyKeyId) {\n const keyId = args.dummyValue.keyId;\n return { TargetKeyId: keyId };\n }\n throw new toolkit_error_1.ContextProviderError('KeyNotFound', `Could not find any key with alias named ${args.aliasName}`);\n }\n async readKeyProps(alias, args) {\n if (!alias.TargetKeyId) {\n throw new toolkit_error_1.ContextProviderError('KeyMissingTargetId', `Could not find any key with alias named ${args.aliasName}`);\n }\n await this.io.debug(`Key found ${alias.TargetKeyId}`);\n return {\n keyId: alias.TargetKeyId,\n };\n }\n}\nexports.KeyContextProviderPlugin = KeyContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscURBQWlFO0FBRWpFLDREQUFnRTtBQUVoRSxNQUFhLHdCQUF3QjtJQUNOO0lBQW1DO0lBQWhFLFlBQTZCLEdBQWdCLEVBQW1CLEVBQTRCO1FBQS9ELFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBbUIsT0FBRSxHQUFGLEVBQUUsQ0FBMEI7SUFDNUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBcUI7UUFDekMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWpFLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFckQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsK0JBQStCO0lBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBZSxFQUFFLElBQXFCO1FBQzFELE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFdEUsSUFBSSxRQUFrQyxDQUFDO1FBQ3ZDLElBQUksVUFBOEIsQ0FBQztRQUNuQyxHQUFHLENBQUM7WUFDRixRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDO2dCQUMvQixNQUFNLEVBQUUsVUFBVTthQUNuQixDQUFDLENBQUM7WUFFSCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUN2QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN0QyxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztZQUVELFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ25DLENBQUMsUUFBUSxVQUFVLEVBQUU7UUFFckIsTUFBTSxhQUFhLEdBQUcsNkJBQTZCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQywyQkFBc0MsQ0FBQztRQUMzRyxNQUFNLGFBQWEsR0FBRyxZQUFZLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDNUksSUFBSSxhQUFhLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLFVBQWdDLENBQUMsS0FBSyxDQUFDO1lBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxhQUFhLEVBQUUsMkNBQTJDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXFCLEVBQUUsSUFBcUI7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksb0NBQW9CLENBQUMsb0JBQW9CLEVBQUUsMkNBQTJDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFdEQsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVztTQUN6QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckRELDREQXFEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFJlc3BvbnNlIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgS2V5Q29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgQWxpYXNMaXN0RW50cnksIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgfSBmcm9tICcuJztcbmltcG9ydCB0eXBlIHsgSUtNU0NsaWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IGNsYXNzIEtleUNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlciwgcHJpdmF0ZSByZWFkb25seSBpbzogSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoYXJnczogS2V5Q29udGV4dFF1ZXJ5KSB7XG4gICAgY29uc3Qga21zID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5rbXMoKTtcblxuICAgIGNvbnN0IGFsaWFzTGlzdEVudHJ5ID0gYXdhaXQgdGhpcy5maW5kS2V5KGttcywgYXJncyk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWFkS2V5UHJvcHMoYWxpYXNMaXN0RW50cnksIGFyZ3MpO1xuICB9XG5cbiAgLy8gVE9ETzogdXNlIHBhZ2luYXRvciBmdW5jdGlvblxuICBwcml2YXRlIGFzeW5jIGZpbmRLZXkoa21zOiBJS01TQ2xpZW50LCBhcmdzOiBLZXlDb250ZXh0UXVlcnkpOiBQcm9taXNlPEFsaWFzTGlzdEVudHJ5PiB7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgTGlzdGluZyBrZXlzIGluICR7YXJncy5hY2NvdW50fToke2FyZ3MucmVnaW9ufWApO1xuXG4gICAgbGV0IHJlc3BvbnNlOiBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQ7XG4gICAgbGV0IG5leHRNYXJrZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBkbyB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGttcy5saXN0QWxpYXNlcyh7XG4gICAgICAgIE1hcmtlcjogbmV4dE1hcmtlcixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhbGlhc2VzID0gcmVzcG9uc2UuQWxpYXNlcyB8fCBbXTtcbiAgICAgIGZvciAoY29uc3QgYWxpYXMgb2YgYWxpYXNlcykge1xuICAgICAgICBpZiAoYWxpYXMuQWxpYXNOYW1lID09IGFyZ3MuYWxpYXNOYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIGFsaWFzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHRNYXJrZXIgPSByZXNwb25zZS5OZXh0TWFya2VyO1xuICAgIH0gd2hpbGUgKG5leHRNYXJrZXIpO1xuXG4gICAgY29uc3Qgc3VwcHJlc3NFcnJvciA9ICdpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQnIGluIGFyZ3MgJiYgYXJncy5pZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQgYXMgYm9vbGVhbjtcbiAgICBjb25zdCBoYXNEdW1teUtleUlkID0gJ2R1bW15VmFsdWUnIGluIGFyZ3MgJiYgdHlwZW9mIGFyZ3MuZHVtbXlWYWx1ZSA9PT0gJ29iamVjdCcgJiYgYXJncy5kdW1teVZhbHVlICE9PSBudWxsICYmICdrZXlJZCcgaW4gYXJncy5kdW1teVZhbHVlO1xuICAgIGlmIChzdXBwcmVzc0Vycm9yICYmIGhhc0R1bW15S2V5SWQpIHtcbiAgICAgIGNvbnN0IGtleUlkID0gKGFyZ3MuZHVtbXlWYWx1ZSBhcyB7IGtleUlkOiBzdHJpbmcgfSkua2V5SWQ7XG4gICAgICByZXR1cm4geyBUYXJnZXRLZXlJZDoga2V5SWQgfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdLZXlOb3RGb3VuZCcsIGBDb3VsZCBub3QgZmluZCBhbnkga2V5IHdpdGggYWxpYXMgbmFtZWQgJHthcmdzLmFsaWFzTmFtZX1gKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZEtleVByb3BzKGFsaWFzOiBBbGlhc0xpc3RFbnRyeSwgYXJnczogS2V5Q29udGV4dFF1ZXJ5KTogUHJvbWlzZTxLZXlDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAoIWFsaWFzLlRhcmdldEtleUlkKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0tleU1pc3NpbmdUYXJnZXRJZCcsIGBDb3VsZCBub3QgZmluZCBhbnkga2V5IHdpdGggYWxpYXMgbmFtZWQgJHthcmdzLmFsaWFzTmFtZX1gKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmlvLmRlYnVnKGBLZXkgZm91bmQgJHthbGlhcy5UYXJnZXRLZXlJZH1gKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXlJZDogYWxpYXMuVGFyZ2V0S2V5SWQsXG4gICAgfTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoadBalancerListenerContextProviderPlugin = exports.LoadBalancerContextProviderPlugin = void 0;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Provides load balancer context information.\n */\nclass LoadBalancerContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n async getValue(query) {\n if (!query.loadBalancerArn && !query.loadBalancerTags) {\n throw new toolkit_error_1.ContextProviderError('MissingLoadBalancerFilter', 'The load balancer lookup query must specify either `loadBalancerArn` or `loadBalancerTags`');\n }\n const loadBalancer = await (await LoadBalancerProvider.getClient(this.aws, query)).getLoadBalancer();\n const ipAddressType = loadBalancer.IpAddressType === 'ipv4' ? cloud_assembly_api_1.LoadBalancerIpAddressType.IPV4 : cloud_assembly_api_1.LoadBalancerIpAddressType.DUAL_STACK;\n return {\n loadBalancerArn: loadBalancer.LoadBalancerArn,\n loadBalancerCanonicalHostedZoneId: loadBalancer.CanonicalHostedZoneId,\n loadBalancerDnsName: loadBalancer.DNSName,\n vpcId: loadBalancer.VpcId,\n securityGroupIds: loadBalancer.SecurityGroups ?? [],\n ipAddressType: ipAddressType,\n };\n }\n}\nexports.LoadBalancerContextProviderPlugin = LoadBalancerContextProviderPlugin;\n/**\n * Provides load balancer listener context information\n */\nclass LoadBalancerListenerContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n async getValue(query) {\n if (!query.listenerArn && !query.loadBalancerArn && !query.loadBalancerTags) {\n throw new toolkit_error_1.ContextProviderError('MissingListenerFilter', 'The load balancer listener query must specify at least one of: `listenerArn`, `loadBalancerArn` or `loadBalancerTags`');\n }\n return (await LoadBalancerProvider.getClient(this.aws, query)).getListener();\n }\n}\nexports.LoadBalancerListenerContextProviderPlugin = LoadBalancerListenerContextProviderPlugin;\nclass LoadBalancerProvider {\n client;\n filter;\n listener;\n static async getClient(aws, query) {\n const client = (await (0, private_1.initContextProviderSdk)(aws, query)).elbv2();\n try {\n const listener = query.listenerArn\n ? // Assert we're sure there's at least one so it throws if not\n (await client.describeListeners({ ListenerArns: [query.listenerArn] })).Listeners[0]\n : undefined;\n return new LoadBalancerProvider(client, { ...query, loadBalancerArn: listener?.LoadBalancerArn || query.loadBalancerArn }, listener);\n }\n catch (err) {\n throw new toolkit_error_1.ContextProviderError('ListenerNotFound', `No load balancer listeners found matching arn ${query.listenerArn}`);\n }\n }\n constructor(client, filter, listener) {\n this.client = client;\n this.filter = filter;\n this.listener = listener;\n }\n async getLoadBalancer() {\n const loadBalancers = await this.getLoadBalancers();\n if (loadBalancers.length === 0) {\n throw new toolkit_error_1.ContextProviderError('LoadBalancerNotFound', `No load balancers found matching ${JSON.stringify(this.filter)}`);\n }\n if (loadBalancers.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleLoadBalancersFound', `Multiple load balancers found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);\n }\n return loadBalancers[0];\n }\n async getListener() {\n if (this.listener) {\n try {\n const loadBalancer = await this.getLoadBalancer();\n return {\n listenerArn: this.listener.ListenerArn,\n listenerPort: this.listener.Port,\n securityGroupIds: loadBalancer.SecurityGroups || [],\n };\n }\n catch (err) {\n throw new toolkit_error_1.ContextProviderError('LoadBalancerForListenerNotFound', `No associated load balancer found for listener arn ${this.filter.listenerArn}`);\n }\n }\n const loadBalancers = await this.getLoadBalancers();\n if (loadBalancers.length === 0) {\n throw new toolkit_error_1.ContextProviderError('NoLoadBalancersForListener', `No associated load balancers found for load balancer listener query ${JSON.stringify(this.filter)}`);\n }\n const listeners = (await this.getListenersForLoadBalancers(loadBalancers)).filter((listener) => {\n return ((!this.filter.listenerPort || listener.Port === this.filter.listenerPort) &&\n (!this.filter.listenerProtocol || listener.Protocol === this.filter.listenerProtocol));\n });\n if (listeners.length === 0) {\n throw new toolkit_error_1.ContextProviderError('ListenerNotFound', `No load balancer listeners found matching ${JSON.stringify(this.filter)}`);\n }\n if (listeners.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleListenersFound', `Multiple load balancer listeners found matching ${JSON.stringify(this.filter)} - please provide more specific criteria`);\n }\n return {\n listenerArn: listeners[0].ListenerArn,\n listenerPort: listeners[0].Port,\n securityGroupIds: loadBalancers.find((lb) => listeners[0].LoadBalancerArn === lb.LoadBalancerArn)?.SecurityGroups || [],\n };\n }\n async getLoadBalancers() {\n const loadBalancerArns = this.filter.loadBalancerArn ? [this.filter.loadBalancerArn] : undefined;\n const loadBalancers = (await this.client.paginateDescribeLoadBalancers({\n LoadBalancerArns: loadBalancerArns,\n })).filter((lb) => lb.Type === this.filter.loadBalancerType);\n return this.filterByTags(loadBalancers);\n }\n async filterByTags(loadBalancers) {\n if (!this.filter.loadBalancerTags) {\n return loadBalancers;\n }\n return (await this.describeTags(loadBalancers.map((lb) => lb.LoadBalancerArn)))\n .filter((tagDescription) => {\n // For every tag in the filter, there is some tag in the LB that matches it.\n // In other words, the set of tags in the filter is a subset of the set of tags in the LB.\n return this.filter.loadBalancerTags.every((filter) => {\n return tagDescription.Tags?.some((tag) => filter.key === tag.Key && filter.value === tag.Value);\n });\n })\n .flatMap((tag) => loadBalancers.filter((loadBalancer) => tag.ResourceArn === loadBalancer.LoadBalancerArn));\n }\n /**\n * Returns tag descriptions associated with the resources. The API doesn't support\n * pagination, so this function breaks the resource list into chunks and issues\n * the appropriate requests.\n */\n async describeTags(resourceArns) {\n // Max of 20 resource arns per request.\n const chunkSize = 20;\n const tags = Array();\n for (let i = 0; i < resourceArns.length; i += chunkSize) {\n const chunk = resourceArns.slice(i, Math.min(i + chunkSize, resourceArns.length));\n const chunkTags = await this.client.describeTags({\n ResourceArns: chunk,\n });\n tags.push(...(chunkTags.TagDescriptions || []));\n }\n return tags;\n }\n async getListenersForLoadBalancers(loadBalancers) {\n const listeners = [];\n for (const loadBalancer of loadBalancers.map((lb) => lb.LoadBalancerArn)) {\n listeners.push(...(await this.client.paginateDescribeListeners({ LoadBalancerArn: loadBalancer })));\n }\n return listeners;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2FkLWJhbGFuY2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxvRUFFcUM7QUFJckMscURBQWlFO0FBRWpFLDREQUFnRTtBQUVoRTs7R0FFRztBQUNILE1BQWEsaUNBQWlDO0lBQ2Y7SUFBN0IsWUFBNkIsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUErQjtRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RELE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQywyQkFBMkIsRUFBRSw0RkFBNEYsQ0FBQyxDQUFDO1FBQzVKLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXJHLE1BQU0sYUFBYSxHQUNqQixZQUFZLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsOENBQXlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw4Q0FBeUIsQ0FBQyxVQUFVLENBQUM7UUFFaEgsT0FBTztZQUNMLGVBQWUsRUFBRSxZQUFZLENBQUMsZUFBZ0I7WUFDOUMsaUNBQWlDLEVBQUUsWUFBWSxDQUFDLHFCQUFzQjtZQUN0RSxtQkFBbUIsRUFBRSxZQUFZLENBQUMsT0FBUTtZQUMxQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQU07WUFDMUIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFO1lBQ25ELGFBQWEsRUFBRSxhQUFhO1NBQzdCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2QkQsOEVBdUJDO0FBRUQ7O0dBRUc7QUFDSCxNQUFh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LEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbEYsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDL0MsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQUMsNEJBQTRCLENBQUMsYUFBNkI7UUFDdEUsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO1FBQ2pDLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDekUsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIExvYWRCYWxhbmNlckNvbnRleHRSZXNwb25zZSxcbiAgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UmVzcG9uc2UsXG59IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQge1xuICBMb2FkQmFsYW5jZXJJcEFkZHJlc3NUeXBlLFxufSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBMb2FkQmFsYW5jZXJDb250ZXh0UXVlcnksIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgTG9hZEJhbGFuY2VyLCBMaXN0ZW5lciwgVGFnRGVzY3JpcHRpb24gfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZWxhc3RpYy1sb2FkLWJhbGFuY2luZy12Mic7XG5pbXBvcnQgdHlwZSB7IElFbGFzdGljTG9hZEJhbGFuY2luZ1YyQ2xpZW50LCBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IGluaXRDb250ZXh0UHJvdmlkZXJTZGsgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFByb3ZpZGVzIGxvYWQgYmFsYW5jZXIgY29udGV4dCBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlcikge1xuICB9XG5cbiAgYXN5bmMgZ2V0VmFsdWUocXVlcnk6IExvYWRCYWxhbmNlckNvbnRleHRRdWVyeSk6IFByb21pc2U8TG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlPiB7XG4gICAgaWYgKCFxdWVyeS5sb2FkQmFsYW5jZXJBcm4gJiYgIXF1ZXJ5LmxvYWRCYWxhbmNlclRhZ3MpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTWlzc2luZ0xvYWRCYWxhbmNlckZpbHRlcicsICdUaGUgbG9hZCBiYWxhbmNlciBsb29rdXAgcXVlcnkgbXVzdCBzcGVjaWZ5IGVpdGhlciBgbG9hZEJhbGFuY2VyQXJuYCBvciBgbG9hZEJhbGFuY2VyVGFnc2AnKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkQmFsYW5jZXIgPSBhd2FpdCAoYXdhaXQgTG9hZEJhbGFuY2VyUHJvdmlkZXIuZ2V0Q2xpZW50KHRoaXMuYXdzLCBxdWVyeSkpLmdldExvYWRCYWxhbmNlcigpO1xuXG4gICAgY29uc3QgaXBBZGRyZXNzVHlwZSA9XG4gICAgICBsb2FkQmFsYW5jZXIuSXBBZGRyZXNzVHlwZSA9PT0gJ2lwdjQnID8gTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZS5JUFY0IDogTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZS5EVUFMX1NUQUNLO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybjogbG9hZEJhbGFuY2VyLkxvYWRCYWxhbmNlckFybiEsXG4gICAgICBsb2FkQmFsYW5jZXJDYW5vbmljYWxIb3N0ZWRab25lSWQ6IGxvYWRCYWxhbmNlci5DYW5vbmljYWxIb3N0ZWRab25lSWQhLFxuICAgICAgbG9hZEJhbGFuY2VyRG5zTmFtZTogbG9hZEJhbGFuY2VyLkROU05hbWUhLFxuICAgICAgdnBjSWQ6IGxvYWRCYWxhbmNlci5WcGNJZCEsXG4gICAgICBzZWN1cml0eUdyb3VwSWRzOiBsb2FkQmFsYW5jZXIuU2VjdXJpdHlHcm91cHMgPz8gW10sXG4gICAgICBpcEFkZHJlc3NUeXBlOiBpcEFkZHJlc3NUeXBlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIGNvbnRleHQgaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyKSB7XG4gIH1cblxuICBhc3luYyBnZXRWYWx1ZShxdWVyeTogTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkpOiBQcm9taXNlPExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlPiB7XG4gICAgaWYgKCFxdWVyeS5saXN0ZW5lckFybiAmJiAhcXVlcnkubG9hZEJhbGFuY2VyQXJuICYmICFxdWVyeS5sb2FkQmFsYW5jZXJUYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ01pc3NpbmdMaXN0ZW5lckZpbHRlcicsXG4gICAgICAgICdUaGUgbG9hZCBiYWxhbmNlciBsaXN0ZW5lciBxdWVyeSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIG9mOiBgbGlzdGVuZXJBcm5gLCBgbG9hZEJhbGFuY2VyQXJuYCBvciBgbG9hZEJhbGFuY2VyVGFnc2AnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IExvYWRCYWxhbmNlclByb3ZpZGVyLmdldENsaWVudCh0aGlzLmF3cywgcXVlcnkpKS5nZXRMaXN0ZW5lcigpO1xuICB9XG59XG5cbmNsYXNzIExvYWRCYWxhbmNlclByb3ZpZGVyIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBnZXRDbGllbnQoXG4gICAgYXdzOiBTZGtQcm92aWRlcixcbiAgICBxdWVyeTogTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnksXG4gICk6IFByb21pc2U8TG9hZEJhbGFuY2VyUHJvdmlkZXI+IHtcbiAgICBjb25zdCBjbGllbnQgPSAoYXdhaXQgaW5pdENvbnRleHRQcm92aWRlclNkayhhd3MsIHF1ZXJ5KSkuZWxidjIoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsaXN0ZW5lciA9IHF1ZXJ5Lmxpc3RlbmVyQXJuXG4gICAgICAgID8gLy8gQXNzZXJ0IHdlJ3JlIHN1cmUgdGhlcmUncyBhdCBsZWFzdCBvbmUgc28gaXQgdGhyb3dzIGlmIG5vdFxuICAgICAgICAoYXdhaXQgY2xpZW50LmRlc2NyaWJlTGlzdGVuZXJzKHsgTGlzdGVuZXJBcm5zOiBbcXVlcnkubGlzdGVuZXJBcm5dIH0pKS5MaXN0ZW5lcnMhWzBdIVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBuZXcgTG9hZEJhbGFuY2VyUHJvdmlkZXIoXG4gICAgICAgIGNsaWVudCxcbiAgICAgICAgeyAuLi5xdWVyeSwgbG9hZEJhbGFuY2VyQXJuOiBsaXN0ZW5lcj8uTG9hZEJhbGFuY2VyQXJuIHx8IHF1ZXJ5LmxvYWRCYWxhbmNlckFybiB9LFxuICAgICAgICBsaXN0ZW5lcixcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0xpc3RlbmVyTm90Rm91bmQnLCBgTm8gbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgYXJuICR7cXVlcnkubGlzdGVuZXJBcm59YCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IElFbGFzdGljTG9hZEJhbGFuY2luZ1YyQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyOiBMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRRdWVyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyPzogTGlzdGVuZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExvYWRCYWxhbmNlcigpOiBQcm9taXNlPExvYWRCYWxhbmNlcj4ge1xuICAgIGNvbnN0IGxvYWRCYWxhbmNlcnMgPSBhd2FpdCB0aGlzLmdldExvYWRCYWxhbmNlcnMoKTtcblxuICAgIGlmIChsb2FkQmFsYW5jZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdMb2FkQmFsYW5jZXJOb3RGb3VuZCcsIGBObyBsb2FkIGJhbGFuY2VycyBmb3VuZCBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyKX1gKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZEJhbGFuY2Vycy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ011bHRpcGxlTG9hZEJhbGFuY2Vyc0ZvdW5kJyxcbiAgICAgICAgYE11bHRpcGxlIGxvYWQgYmFsYW5jZXJzIGZvdW5kIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXIpfSAtIHBsZWFzZSBwcm92aWRlIG1vcmUgc3BlY2lmaWMgY3JpdGVyaWFgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9hZEJhbGFuY2Vyc1swXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMaXN0ZW5lcigpOiBQcm9taXNlPExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFJlc3BvbnNlPiB7XG4gICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxvYWRCYWxhbmNlciA9IGF3YWl0IHRoaXMuZ2V0TG9hZEJhbGFuY2VyKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGlzdGVuZXJBcm46IHRoaXMubGlzdGVuZXIuTGlzdGVuZXJBcm4hLFxuICAgICAgICAgIGxpc3RlbmVyUG9ydDogdGhpcy5saXN0ZW5lci5Qb3J0ISxcbiAgICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBsb2FkQmFsYW5jZXIuU2VjdXJpdHlHcm91cHMgfHwgW10sXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdMb2FkQmFsYW5jZXJGb3JMaXN0ZW5lck5vdEZvdW5kJywgYE5vIGFzc29jaWF0ZWQgbG9hZCBiYWxhbmNlciBmb3VuZCBmb3IgbGlzdGVuZXIgYXJuICR7dGhpcy5maWx0ZXIubGlzdGVuZXJBcm59YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IGF3YWl0IHRoaXMuZ2V0TG9hZEJhbGFuY2VycygpO1xuICAgIGlmIChsb2FkQmFsYW5jZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdOb0xvYWRCYWxhbmNlcnNGb3JMaXN0ZW5lcicsXG4gICAgICAgIGBObyBhc3NvY2lhdGVkIGxvYWQgYmFsYW5jZXJzIGZvdW5kIGZvciBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHF1ZXJ5ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXIpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlbmVycyA9IChhd2FpdCB0aGlzLmdldExpc3RlbmVyc0ZvckxvYWRCYWxhbmNlcnMobG9hZEJhbGFuY2VycykpLmZpbHRlcigobGlzdGVuZXIpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICghdGhpcy5maWx0ZXIubGlzdGVuZXJQb3J0IHx8IGxpc3RlbmVyLlBvcnQgPT09IHRoaXMuZmlsdGVyLmxpc3RlbmVyUG9ydCkgJiZcbiAgICAgICAgKCF0aGlzLmZpbHRlci5saXN0ZW5lclByb3RvY29sIHx8IGxpc3RlbmVyLlByb3RvY29sID09PSB0aGlzLmZpbHRlci5saXN0ZW5lclByb3RvY29sKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGlmIChsaXN0ZW5lcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ0xpc3RlbmVyTm90Rm91bmQnLCBgTm8gbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcil9YCk7XG4gICAgfVxuXG4gICAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ011bHRpcGxlTGlzdGVuZXJzRm91bmQnLFxuICAgICAgICBgTXVsdGlwbGUgbG9hZCBiYWxhbmNlciBsaXN0ZW5lcnMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcil9IC0gcGxlYXNlIHByb3ZpZGUgbW9yZSBzcGVjaWZpYyBjcml0ZXJpYWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaXN0ZW5lckFybjogbGlzdGVuZXJzWzBdLkxpc3RlbmVyQXJuISxcbiAgICAgIGxpc3RlbmVyUG9ydDogbGlzdGVuZXJzWzBdLlBvcnQhLFxuICAgICAgc2VjdXJpdHlHcm91cElkczpcbiAgICAgICAgbG9hZEJhbGFuY2Vycy5maW5kKChsYikgPT4gbGlzdGVuZXJzWzBdLkxvYWRCYWxhbmNlckFybiA9PT0gbGIuTG9hZEJhbGFuY2VyQXJuKT8uU2VjdXJpdHlHcm91cHMgfHwgW10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TG9hZEJhbGFuY2VycygpIHtcbiAgICBjb25zdCBsb2FkQmFsYW5jZXJBcm5zID0gdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyQXJuID8gW3RoaXMuZmlsdGVyLmxvYWRCYWxhbmNlckFybl0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgbG9hZEJhbGFuY2VycyA9IChcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBhZ2luYXRlRGVzY3JpYmVMb2FkQmFsYW5jZXJzKHtcbiAgICAgICAgTG9hZEJhbGFuY2VyQXJuczogbG9hZEJhbGFuY2VyQXJucyxcbiAgICAgIH0pXG4gICAgKS5maWx0ZXIoKGxiKSA9PiBsYi5UeXBlID09PSB0aGlzLmZpbHRlci5sb2FkQmFsYW5jZXJUeXBlKTtcblxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5VGFncyhsb2FkQmFsYW5jZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyQnlUYWdzKGxvYWRCYWxhbmNlcnM6IExvYWRCYWxhbmNlcltdKTogUHJvbWlzZTxMb2FkQmFsYW5jZXJbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyVGFncykge1xuICAgICAgcmV0dXJuIGxvYWRCYWxhbmNlcnM7XG4gICAgfVxuICAgIHJldHVybiAoYXdhaXQgdGhpcy5kZXNjcmliZVRhZ3MobG9hZEJhbGFuY2Vycy5tYXAoKGxiKSA9PiBsYi5Mb2FkQmFsYW5jZXJBcm4hKSkpXG4gICAgICAuZmlsdGVyKCh0YWdEZXNjcmlwdGlvbikgPT4ge1xuICAgICAgICAvLyBGb3IgZXZlcnkgdGFnIGluIHRoZSBmaWx0ZXIsIHRoZXJlIGlzIHNvbWUgdGFnIGluIHRoZSBMQiB0aGF0IG1hdGNoZXMgaXQuXG4gICAgICAgIC8vIEluIG90aGVyIHdvcmRzLCB0aGUgc2V0IG9mIHRhZ3MgaW4gdGhlIGZpbHRlciBpcyBhIHN1YnNldCBvZiB0aGUgc2V0IG9mIHRhZ3MgaW4gdGhlIExCLlxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIubG9hZEJhbGFuY2VyVGFncyEuZXZlcnkoKGZpbHRlcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0YWdEZXNjcmlwdGlvbi5UYWdzPy5zb21lKCh0YWcpID0+XG4gICAgICAgICAgICBmaWx0ZXIua2V5ID09PSB0YWcuS2V5ICYmIGZpbHRlci52YWx1ZSA9PT0gdGFnLlZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKHRhZykgPT4gbG9hZEJhbGFuY2Vycy5maWx0ZXIoKGxvYWRCYWxhbmNlcikgPT4gdGFnLlJlc291cmNlQXJuID09PSBsb2FkQmFsYW5jZXIuTG9hZEJhbGFuY2VyQXJuKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0YWcgZGVzY3JpcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzb3VyY2VzLiBUaGUgQVBJIGRvZXNuJ3Qgc3VwcG9ydFxuICAgKiBwYWdpbmF0aW9uLCBzbyB0aGlzIGZ1bmN0aW9uIGJyZWFrcyB0aGUgcmVzb3VyY2UgbGlzdCBpbnRvIGNodW5rcyBhbmQgaXNzdWVzXG4gICAqIHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0cy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGVzY3JpYmVUYWdzKHJlc291cmNlQXJuczogc3RyaW5nW10pOiBQcm9taXNlPFRhZ0Rlc2NyaXB0aW9uW10+IHtcbiAgICAvLyBNYXggb2YgMjAgcmVzb3VyY2UgYXJucyBwZXIgcmVxdWVzdC5cbiAgICBjb25zdCBjaHVua1NpemUgPSAyMDtcbiAgICBjb25zdCB0YWdzID0gQXJyYXk8VGFnRGVzY3JpcHRpb24+KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNvdXJjZUFybnMubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xuICAgICAgY29uc3QgY2h1bmsgPSByZXNvdXJjZUFybnMuc2xpY2UoaSwgTWF0aC5taW4oaSArIGNodW5rU2l6ZSwgcmVzb3VyY2VBcm5zLmxlbmd0aCkpO1xuICAgICAgY29uc3QgY2h1bmtUYWdzID0gYXdhaXQgdGhpcy5jbGllbnQuZGVzY3JpYmVUYWdzKHtcbiAgICAgICAgUmVzb3VyY2VBcm5zOiBjaHVuayxcbiAgICAgIH0pO1xuXG4gICAgICB0YWdzLnB1c2goLi4uKGNodW5rVGFncy5UYWdEZXNjcmlwdGlvbnMgfHwgW10pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldExpc3RlbmVyc0ZvckxvYWRCYWxhbmNlcnMobG9hZEJhbGFuY2VyczogTG9hZEJhbGFuY2VyW10pOiBQcm9taXNlPExpc3RlbmVyW10+IHtcbiAgICBjb25zdCBsaXN0ZW5lcnM6IExpc3RlbmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGxvYWRCYWxhbmNlciBvZiBsb2FkQmFsYW5jZXJzLm1hcCgobGIpID0+IGxiLkxvYWRCYWxhbmNlckFybikpIHtcbiAgICAgIGxpc3RlbmVycy5wdXNoKC4uLihhd2FpdCB0aGlzLmNsaWVudC5wYWdpbmF0ZURlc2NyaWJlTGlzdGVuZXJzKHsgTG9hZEJhbGFuY2VyQXJuOiBsb2FkQmFsYW5jZXIgfSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpc3RlbmVycztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SecurityGroupContextProviderPlugin = void 0;\nexports.hasAllTrafficEgress = hasAllTrafficEgress;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass SecurityGroupContextProviderPlugin {\n aws;\n constructor(aws) {\n this.aws = aws;\n }\n async getValue(args) {\n if (args.securityGroupId && args.securityGroupName) {\n throw new toolkit_error_1.ContextProviderError('ConflictingSecurityGroupFilters', \"'securityGroupId' and 'securityGroupName' can not be specified both when looking up a security group\");\n }\n if (!args.securityGroupId && !args.securityGroupName) {\n throw new toolkit_error_1.ContextProviderError('MissingSecurityGroupFilter', \"'securityGroupId' or 'securityGroupName' must be specified to look up a security group\");\n }\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const filters = [];\n if (args.vpcId) {\n filters.push({\n Name: 'vpc-id',\n Values: [args.vpcId],\n });\n }\n if (args.securityGroupName) {\n filters.push({\n Name: 'group-name',\n Values: [args.securityGroupName],\n });\n }\n const response = await ec2.describeSecurityGroups({\n GroupIds: args.securityGroupId ? [args.securityGroupId] : undefined,\n Filters: filters.length > 0 ? filters : undefined,\n });\n const securityGroups = response.SecurityGroups ?? [];\n if (securityGroups.length === 0) {\n throw new toolkit_error_1.ContextProviderError('SecurityGroupNotFound', `No security groups found matching ${JSON.stringify(args)}`);\n }\n if (securityGroups.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleSecurityGroupsFound', `More than one security groups found matching ${JSON.stringify(args)}`);\n }\n const [securityGroup] = securityGroups;\n return {\n securityGroupId: securityGroup.GroupId,\n allowAllOutbound: hasAllTrafficEgress(securityGroup),\n };\n }\n}\nexports.SecurityGroupContextProviderPlugin = SecurityGroupContextProviderPlugin;\n/**\n * @internal\n */\nfunction hasAllTrafficEgress(securityGroup) {\n let hasAllTrafficCidrV4 = false;\n let hasAllTrafficCidrV6 = false;\n for (const ipPermission of securityGroup.IpPermissionsEgress ?? []) {\n const isAllProtocols = ipPermission.IpProtocol === '-1';\n if (isAllProtocols && ipPermission.IpRanges?.some((m) => m.CidrIp === '0.0.0.0/0')) {\n hasAllTrafficCidrV4 = true;\n }\n if (isAllProtocols && ipPermission.Ipv6Ranges?.some((m) => m.CidrIpv6 === '::/0')) {\n hasAllTrafficCidrV6 = true;\n }\n }\n return hasAllTrafficCidrV4 && hasAllTrafficCidrV6;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjdXJpdHktZ3JvdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdFQSxrREFpQkM7QUE5RUQscURBQW1GO0FBRW5GLDREQUFnRTtBQUVoRSxNQUFhLGtDQUFrQztJQUNoQjtJQUE3QixZQUE2QixHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQStCO1FBQzVDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksb0NBQW9CLENBQUMsaUNBQWlDLEVBQzlELHNHQUFzRyxDQUN2RyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckQsTUFBTSxJQUFJLG9DQUFvQixDQUFDLDRCQUE0QixFQUFFLHdGQUF3RixDQUFDLENBQUM7UUFDekosQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFzQixFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVqRSxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLElBQUksRUFBRSxRQUFRO2dCQUNkLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDckIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztZQUNoRCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDbkUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDckQsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyx1QkFBdUIsRUFBRSxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkgsQ0FBQztRQUVELElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksb0NBQW9CLENBQUMsNkJBQTZCLEVBQUUsZ0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hJLENBQUM7UUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBRXZDLE9BQU87WUFDTCxlQUFlLEVBQUUsYUFBYSxDQUFDLE9BQVE7WUFDdkMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1NBQ3JELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwREQsZ0ZBb0RDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxhQUE0QjtJQUM5RCxJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNoQyxJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUVoQyxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztRQUV4RCxJQUFJLGNBQWMsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ25GLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBSSxjQUFjLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsRixtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UmVzcG9uc2UgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBTZWN1cml0eUdyb3VwQ29udGV4dFF1ZXJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgRmlsdGVyLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIGFzeW5jIGdldFZhbHVlKGFyZ3M6IFNlY3VyaXR5R3JvdXBDb250ZXh0UXVlcnkpOiBQcm9taXNlPFNlY3VyaXR5R3JvdXBDb250ZXh0UmVzcG9uc2U+IHtcbiAgICBpZiAoYXJncy5zZWN1cml0eUdyb3VwSWQgJiYgYXJncy5zZWN1cml0eUdyb3VwTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdDb25mbGljdGluZ1NlY3VyaXR5R3JvdXBGaWx0ZXJzJyxcbiAgICAgICAgXCInc2VjdXJpdHlHcm91cElkJyBhbmQgJ3NlY3VyaXR5R3JvdXBOYW1lJyBjYW4gbm90IGJlIHNwZWNpZmllZCBib3RoIHdoZW4gbG9va2luZyB1cCBhIHNlY3VyaXR5IGdyb3VwXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghYXJncy5zZWN1cml0eUdyb3VwSWQgJiYgIWFyZ3Muc2VjdXJpdHlHcm91cE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTWlzc2luZ1NlY3VyaXR5R3JvdXBGaWx0ZXInLCBcIidzZWN1cml0eUdyb3VwSWQnIG9yICdzZWN1cml0eUdyb3VwTmFtZScgbXVzdCBiZSBzcGVjaWZpZWQgdG8gbG9vayB1cCBhIHNlY3VyaXR5IGdyb3VwXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGVjMiA9IChhd2FpdCBpbml0Q29udGV4dFByb3ZpZGVyU2RrKHRoaXMuYXdzLCBhcmdzKSkuZWMyKCk7XG5cbiAgICBjb25zdCBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xuICAgIGlmIChhcmdzLnZwY0lkKSB7XG4gICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICBOYW1lOiAndnBjLWlkJyxcbiAgICAgICAgVmFsdWVzOiBbYXJncy52cGNJZF0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGFyZ3Muc2VjdXJpdHlHcm91cE5hbWUpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgIE5hbWU6ICdncm91cC1uYW1lJyxcbiAgICAgICAgVmFsdWVzOiBbYXJncy5zZWN1cml0eUdyb3VwTmFtZV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZVNlY3VyaXR5R3JvdXBzKHtcbiAgICAgIEdyb3VwSWRzOiBhcmdzLnNlY3VyaXR5R3JvdXBJZCA/IFthcmdzLnNlY3VyaXR5R3JvdXBJZF0gOiB1bmRlZmluZWQsXG4gICAgICBGaWx0ZXJzOiBmaWx0ZXJzLmxlbmd0aCA+IDAgPyBmaWx0ZXJzIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VjdXJpdHlHcm91cHMgPSByZXNwb25zZS5TZWN1cml0eUdyb3VwcyA/PyBbXTtcbiAgICBpZiAoc2VjdXJpdHlHcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1NlY3VyaXR5R3JvdXBOb3RGb3VuZCcsIGBObyBzZWN1cml0eSBncm91cHMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNdWx0aXBsZVNlY3VyaXR5R3JvdXBzRm91bmQnLCBgTW9yZSB0aGFuIG9uZSBzZWN1cml0eSBncm91cHMgZm91bmQgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBbc2VjdXJpdHlHcm91cF0gPSBzZWN1cml0eUdyb3VwcztcblxuICAgIHJldHVybiB7XG4gICAgICBzZWN1cml0eUdyb3VwSWQ6IHNlY3VyaXR5R3JvdXAuR3JvdXBJZCEsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBoYXNBbGxUcmFmZmljRWdyZXNzKHNlY3VyaXR5R3JvdXApLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0FsbFRyYWZmaWNFZ3Jlc3Moc2VjdXJpdHlHcm91cDogU2VjdXJpdHlHcm91cCkge1xuICBsZXQgaGFzQWxsVHJhZmZpY0NpZHJWNCA9IGZhbHNlO1xuICBsZXQgaGFzQWxsVHJhZmZpY0NpZHJWNiA9IGZhbHNlO1xuXG4gIGZvciAoY29uc3QgaXBQZXJtaXNzaW9uIG9mIHNlY3VyaXR5R3JvdXAuSXBQZXJtaXNzaW9uc0VncmVzcyA/PyBbXSkge1xuICAgIGNvbnN0IGlzQWxsUHJvdG9jb2xzID0gaXBQZXJtaXNzaW9uLklwUHJvdG9jb2wgPT09ICctMSc7XG5cbiAgICBpZiAoaXNBbGxQcm90b2NvbHMgJiYgaXBQZXJtaXNzaW9uLklwUmFuZ2VzPy5zb21lKChtKSA9PiBtLkNpZHJJcCA9PT0gJzAuMC4wLjAvMCcpKSB7XG4gICAgICBoYXNBbGxUcmFmZmljQ2lkclY0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNBbGxQcm90b2NvbHMgJiYgaXBQZXJtaXNzaW9uLklwdjZSYW5nZXM/LnNvbWUoKG0pID0+IG0uQ2lkcklwdjYgPT09ICc6Oi8wJykpIHtcbiAgICAgIGhhc0FsbFRyYWZmaWNDaWRyVjYgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBoYXNBbGxUcmFmZmljQ2lkclY0ICYmIGhhc0FsbFRyYWZmaWNDaWRyVjY7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSMContextProviderPlugin = void 0;\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Plugin to read arbitrary SSM parameter names\n */\nclass SSMContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const region = args.region;\n const account = args.account;\n if (!('parameterName' in args)) {\n throw new toolkit_error_1.ContextProviderError('MissingParameterName', 'parameterName must be provided in props for SSMContextProviderPlugin');\n }\n const parameterName = args.parameterName;\n await this.io.debug(`Reading SSM parameter ${account}:${region}:${parameterName}`);\n const response = await this.getSsmParameterValue(args);\n const parameterNotFound = !response.Parameter || response.Parameter.Value === undefined;\n const suppressError = 'ignoreErrorOnMissingContext' in args && args.ignoreErrorOnMissingContext;\n if (parameterNotFound && suppressError && 'dummyValue' in args) {\n return args.dummyValue;\n }\n if (parameterNotFound) {\n throw new toolkit_error_1.ContextProviderError('SsmParameterNotFound', `SSM parameter not available in account ${account}, region ${region}: ${parameterName}`);\n }\n // will not be undefined because we've handled undefined cases above\n return response.Parameter.Value;\n }\n /**\n * Gets the value of an SSM Parameter, while not thrown if the parameter does not exist.\n * @param account - the account in which the SSM Parameter is expected to be.\n * @param region - the region in which the SSM Parameter is expected to be.\n * @param parameterName - the name of the SSM Parameter\n * @param lookupRoleArn - the ARN of the lookup role.\n *\n * @returns the result of the ``GetParameter`` operation.\n *\n * @throws Error if a service error (other than ``ParameterNotFound``) occurs.\n */\n async getSsmParameterValue(args) {\n const ssm = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ssm();\n try {\n return await ssm.getParameter({ Name: args.parameterName });\n }\n catch (e) {\n if (e.name === 'ParameterNotFound') {\n return { $metadata: {} };\n }\n throw e;\n }\n }\n}\nexports.SSMContextProviderPlugin = SSMContextProviderPlugin;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLXBhcmFtZXRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzc20tcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxREFBbUY7QUFFbkYsNERBQWdFO0FBRWhFOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDTjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQThCO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU3QixJQUFJLENBQUMsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksb0NBQW9CLENBQUMsc0JBQXNCLEVBQUUsc0VBQXNFLENBQUMsQ0FBQztRQUNqSSxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLHlCQUF5QixPQUFPLElBQUksTUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFFbkYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxpQkFBaUIsR0FBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO1FBQ2pHLE1BQU0sYUFBYSxHQUFHLDZCQUE2QixJQUFJLElBQUksSUFBSyxJQUFJLENBQUMsMkJBQXVDLENBQUM7UUFDN0csSUFBSSxpQkFBaUIsSUFBSSxhQUFhLElBQUksWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxvQ0FBb0IsQ0FBQyxzQkFBc0IsRUFBRSwwQ0FBMEMsT0FBTyxZQUFZLE1BQU0sS0FBSyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2xKLENBQUM7UUFDRCxvRUFBb0U7UUFDcEUsT0FBTyxRQUFRLENBQUMsU0FBVSxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNLLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUE4QjtRQUMvRCxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBQSxnQ0FBc0IsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpERCw0REFpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNTTVBhcmFtZXRlckNvbnRleHRRdWVyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IEdldFBhcmFtZXRlckNvbW1hbmRPdXRwdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3NtJztcbmltcG9ydCB0eXBlIHsgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyB0eXBlIFNka1Byb3ZpZGVyLCBpbml0Q29udGV4dFByb3ZpZGVyU2RrIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBQbHVnaW4gdG8gcmVhZCBhcmJpdHJhcnkgU1NNIHBhcmFtZXRlciBuYW1lc1xuICovXG5leHBvcnQgY2xhc3MgU1NNQ29udGV4dFByb3ZpZGVyUGx1Z2luIGltcGxlbWVudHMgQ29udGV4dFByb3ZpZGVyUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhd3M6IFNka1Byb3ZpZGVyLCBwcml2YXRlIHJlYWRvbmx5IGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBTU01QYXJhbWV0ZXJDb250ZXh0UXVlcnkpIHtcbiAgICBjb25zdCByZWdpb24gPSBhcmdzLnJlZ2lvbjtcbiAgICBjb25zdCBhY2NvdW50ID0gYXJncy5hY2NvdW50O1xuXG4gICAgaWYgKCEoJ3BhcmFtZXRlck5hbWUnIGluIGFyZ3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ01pc3NpbmdQYXJhbWV0ZXJOYW1lJywgJ3BhcmFtZXRlck5hbWUgbXVzdCBiZSBwcm92aWRlZCBpbiBwcm9wcyBmb3IgU1NNQ29udGV4dFByb3ZpZGVyUGx1Z2luJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSBhcmdzLnBhcmFtZXRlck5hbWU7XG4gICAgYXdhaXQgdGhpcy5pby5kZWJ1ZyhgUmVhZGluZyBTU00gcGFyYW1ldGVyICR7YWNjb3VudH06JHtyZWdpb259OiR7cGFyYW1ldGVyTmFtZX1gKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5nZXRTc21QYXJhbWV0ZXJWYWx1ZShhcmdzKTtcbiAgICBjb25zdCBwYXJhbWV0ZXJOb3RGb3VuZDogYm9vbGVhbiA9ICFyZXNwb25zZS5QYXJhbWV0ZXIgfHwgcmVzcG9uc2UuUGFyYW1ldGVyLlZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc3VwcHJlc3NFcnJvciA9ICdpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQnIGluIGFyZ3MgJiYgKGFyZ3MuaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0IGFzIGJvb2xlYW4pO1xuICAgIGlmIChwYXJhbWV0ZXJOb3RGb3VuZCAmJiBzdXBwcmVzc0Vycm9yICYmICdkdW1teVZhbHVlJyBpbiBhcmdzKSB7XG4gICAgICByZXR1cm4gYXJncy5kdW1teVZhbHVlO1xuICAgIH1cbiAgICBpZiAocGFyYW1ldGVyTm90Rm91bmQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignU3NtUGFyYW1ldGVyTm90Rm91bmQnLCBgU1NNIHBhcmFtZXRlciBub3QgYXZhaWxhYmxlIGluIGFjY291bnQgJHthY2NvdW50fSwgcmVnaW9uICR7cmVnaW9ufTogJHtwYXJhbWV0ZXJOYW1lfWApO1xuICAgIH1cbiAgICAvLyB3aWxsIG5vdCBiZSB1bmRlZmluZWQgYmVjYXVzZSB3ZSd2ZSBoYW5kbGVkIHVuZGVmaW5lZCBjYXNlcyBhYm92ZVxuICAgIHJldHVybiByZXNwb25zZS5QYXJhbWV0ZXIhLlZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIGFuIFNTTSBQYXJhbWV0ZXIsIHdoaWxlIG5vdCB0aHJvd24gaWYgdGhlIHBhcmFtZXRlciBkb2VzIG5vdCBleGlzdC5cbiAgICogQHBhcmFtIGFjY291bnQgICAgICAgLSB0aGUgYWNjb3VudCBpbiB3aGljaCB0aGUgU1NNIFBhcmFtZXRlciBpcyBleHBlY3RlZCB0byBiZS5cbiAgICogQHBhcmFtIHJlZ2lvbiAgICAgICAgLSB0aGUgcmVnaW9uIGluIHdoaWNoIHRoZSBTU00gUGFyYW1ldGVyIGlzIGV4cGVjdGVkIHRvIGJlLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVyTmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBTU00gUGFyYW1ldGVyXG4gICAqIEBwYXJhbSBsb29rdXBSb2xlQXJuIC0gdGhlIEFSTiBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGBgR2V0UGFyYW1ldGVyYGAgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIGEgc2VydmljZSBlcnJvciAob3RoZXIgdGhhbiBgYFBhcmFtZXRlck5vdEZvdW5kYGApIG9jY3Vycy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0U3NtUGFyYW1ldGVyVmFsdWUoYXJnczogU1NNUGFyYW1ldGVyQ29udGV4dFF1ZXJ5KTogUHJvbWlzZTxHZXRQYXJhbWV0ZXJDb21tYW5kT3V0cHV0PiB7XG4gICAgY29uc3Qgc3NtID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5zc20oKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHNzbS5nZXRQYXJhbWV0ZXIoeyBOYW1lOiBhcmdzLnBhcmFtZXRlck5hbWUgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnUGFyYW1ldGVyTm90Rm91bmQnKSB7XG4gICAgICAgIHJldHVybiB7ICRtZXRhZGF0YToge30gfTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VpcNetworkContextProviderPlugin = void 0;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nconst private_1 = require(\"../api/aws-auth/private\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nclass VpcNetworkContextProviderPlugin {\n aws;\n io;\n constructor(aws, io) {\n this.aws = aws;\n this.io = io;\n }\n async getValue(args) {\n const ec2 = (await (0, private_1.initContextProviderSdk)(this.aws, args)).ec2();\n const vpcId = await this.findVpc(ec2, args);\n return this.readVpcProps(ec2, vpcId, args);\n }\n async findVpc(ec2, args) {\n // Build request filter (map { Name -> Value } to list of [{ Name, Values }])\n const filters = Object.entries(args.filter).map(([tag, value]) => ({ Name: tag, Values: [value] }));\n await this.io.debug(`Listing VPCs in ${args.account}:${args.region}`);\n const response = await ec2.describeVpcs({ Filters: filters });\n const vpcs = response.Vpcs || [];\n if (vpcs.length === 0) {\n throw new toolkit_error_1.ContextProviderError('VpcNotFound', `Could not find any VPCs matching ${JSON.stringify(args)}`);\n }\n if (vpcs.length > 1) {\n throw new toolkit_error_1.ContextProviderError('MultipleVpcsFound', `Found ${vpcs.length} VPCs matching ${JSON.stringify(args)}; please narrow the search criteria`);\n }\n return vpcs[0];\n }\n async readVpcProps(ec2, vpc, args) {\n const vpcId = vpc.VpcId;\n await this.io.debug(`Describing VPC ${vpcId}`);\n const filters = { Filters: [{ Name: 'vpc-id', Values: [vpcId] }] };\n const subnetsResponse = await ec2.describeSubnets(filters);\n const listedSubnets = subnetsResponse.Subnets || [];\n const routeTablesResponse = await ec2.describeRouteTables(filters);\n const routeTables = new RouteTables(routeTablesResponse.RouteTables || []);\n // Now comes our job to separate these subnets out into AZs and subnet groups (Public, Private, Isolated)\n // We have the following attributes to go on:\n // - Type tag, we tag subnets with their type. In absence of this tag, we\n // determine the subnet must be Public if either:\n // a) it has the property MapPublicIpOnLaunch\n // b) it has a route to an Internet Gateway\n // If both of the above is false but the subnet has a route to a NAT Gateway\n // and the destination CIDR block is \"0.0.0.0/0\", we assume it to be a Private subnet.\n // Anything else is considered Isolated.\n // - Name tag, we tag subnets with their subnet group name. In absence of this tag,\n // we use the type as the name.\n const azs = Array.from(new Set(listedSubnets.map((s) => s.AvailabilityZone)));\n azs.sort();\n const subnets = listedSubnets.map((subnet) => {\n let type = getTag('aws-cdk:subnet-type', subnet.Tags);\n if (type === undefined && subnet.MapPublicIpOnLaunch) {\n type = SubnetType.Public;\n }\n if (type === undefined && routeTables.hasRouteToIgw(subnet.SubnetId)) {\n type = SubnetType.Public;\n }\n if (type === undefined && routeTables.hasRouteToNatGateway(subnet.SubnetId)) {\n type = SubnetType.Private;\n }\n if (type === undefined && routeTables.hasRouteToTransitGateway(subnet.SubnetId)) {\n type = SubnetType.Private;\n }\n if (type === undefined) {\n type = SubnetType.Isolated;\n }\n if (!isValidSubnetType(type)) {\n // eslint-disable-next-line @stylistic/max-len\n throw new toolkit_error_1.ContextProviderError('InvalidSubnetType', `Subnet ${subnet.SubnetArn} has invalid subnet type ${type} (must be ${SubnetType.Public}, ${SubnetType.Private} or ${SubnetType.Isolated})`);\n }\n if (args.subnetGroupNameTag && !getTag(args.subnetGroupNameTag, subnet.Tags)) {\n throw new toolkit_error_1.ContextProviderError('MissingSubnetGroupTag', `Invalid subnetGroupNameTag: Subnet ${subnet.SubnetArn} does not have an associated tag with Key='${args.subnetGroupNameTag}'`);\n }\n const name = getTag(args.subnetGroupNameTag || 'aws-cdk:subnet-name', subnet.Tags) || type;\n const routeTableId = routeTables.routeTableIdForSubnetId(subnet.SubnetId);\n if (!routeTableId) {\n throw new toolkit_error_1.ContextProviderError('MissingRouteTable', `Subnet ${subnet.SubnetArn} does not have an associated route table (and there is no \"main\" table)`);\n }\n return {\n az: subnet.AvailabilityZone,\n cidr: subnet.CidrBlock,\n type,\n name,\n subnetId: subnet.SubnetId,\n routeTableId,\n };\n });\n let grouped;\n let assymetricSubnetGroups;\n if (args.returnAsymmetricSubnets) {\n grouped = { azs: [], groups: [] };\n assymetricSubnetGroups = groupAsymmetricSubnets(subnets);\n }\n else {\n grouped = groupSubnets(subnets);\n assymetricSubnetGroups = undefined;\n }\n // Find attached+available VPN gateway for this VPC\n const vpnGatewayResponse = (args.returnVpnGateways ?? true)\n ? await ec2.describeVpnGateways({\n Filters: [\n {\n Name: 'attachment.vpc-id',\n Values: [vpcId],\n },\n {\n Name: 'attachment.state',\n Values: ['attached'],\n },\n {\n Name: 'state',\n Values: ['available'],\n },\n ],\n })\n : undefined;\n const vpnGatewayId = vpnGatewayResponse?.VpnGateways?.length === 1 ? vpnGatewayResponse.VpnGateways[0].VpnGatewayId : undefined;\n return {\n vpcId,\n vpcCidrBlock: vpc.CidrBlock,\n ownerAccountId: vpc.OwnerId,\n availabilityZones: grouped.azs,\n isolatedSubnetIds: collapse(flatMap(findGroups(SubnetType.Isolated, grouped), (group) => group.subnets.map((s) => s.subnetId))),\n isolatedSubnetNames: collapse(flatMap(findGroups(SubnetType.Isolated, grouped), (group) => (group.name ? [group.name] : []))),\n isolatedSubnetRouteTableIds: collapse(flatMap(findGroups(SubnetType.Isolated, grouped), (group) => group.subnets.map((s) => s.routeTableId))),\n privateSubnetIds: collapse(flatMap(findGroups(SubnetType.Private, grouped), (group) => group.subnets.map((s) => s.subnetId))),\n privateSubnetNames: collapse(flatMap(findGroups(SubnetType.Private, grouped), (group) => (group.name ? [group.name] : []))),\n privateSubnetRouteTableIds: collapse(flatMap(findGroups(SubnetType.Private, grouped), (group) => group.subnets.map((s) => s.routeTableId))),\n publicSubnetIds: collapse(flatMap(findGroups(SubnetType.Public, grouped), (group) => group.subnets.map((s) => s.subnetId))),\n publicSubnetNames: collapse(flatMap(findGroups(SubnetType.Public, grouped), (group) => (group.name ? [group.name] : []))),\n publicSubnetRouteTableIds: collapse(flatMap(findGroups(SubnetType.Public, grouped), (group) => group.subnets.map((s) => s.routeTableId))),\n vpnGatewayId,\n subnetGroups: assymetricSubnetGroups,\n };\n }\n}\nexports.VpcNetworkContextProviderPlugin = VpcNetworkContextProviderPlugin;\nclass RouteTables {\n tables;\n mainRouteTable;\n constructor(tables) {\n this.tables = tables;\n this.mainRouteTable = this.tables.find((table) => !!table.Associations && table.Associations.some((assoc) => !!assoc.Main));\n }\n routeTableIdForSubnetId(subnetId) {\n const table = this.tableForSubnet(subnetId);\n return (table && table.RouteTableId) || (this.mainRouteTable && this.mainRouteTable.RouteTableId);\n }\n /**\n * Whether the given subnet has a route to a NAT Gateway\n */\n hasRouteToNatGateway(subnetId) {\n const table = this.tableForSubnet(subnetId) || this.mainRouteTable;\n return (!!table &&\n !!table.Routes &&\n table.Routes.some((route) => !!route.NatGatewayId && route.DestinationCidrBlock === '0.0.0.0/0'));\n }\n /**\n * Whether the given subnet has a route to a Transit Gateway\n */\n hasRouteToTransitGateway(subnetId) {\n const table = this.tableForSubnet(subnetId) || this.mainRouteTable;\n return (!!table &&\n !!table.Routes &&\n table.Routes.some((route) => !!route.TransitGatewayId && route.DestinationCidrBlock === '0.0.0.0/0'));\n }\n /**\n * Whether the given subnet has a route to an IGW\n */\n hasRouteToIgw(subnetId) {\n const table = this.tableForSubnet(subnetId) || this.mainRouteTable;\n return (!!table && !!table.Routes && table.Routes.some((route) => !!route.GatewayId && route.GatewayId.startsWith('igw-')));\n }\n tableForSubnet(subnetId) {\n return this.tables.find((table) => !!table.Associations && table.Associations.some((assoc) => assoc.SubnetId === subnetId));\n }\n}\n/**\n * Return the value of a tag from a set of tags\n */\nfunction getTag(name, tags) {\n for (const tag of tags || []) {\n if (tag.Key === name) {\n return tag.Value;\n }\n }\n return undefined;\n}\n/**\n * Group subnets of the same type together, and order by AZ\n */\nfunction groupSubnets(subnets) {\n const grouping = {};\n for (const subnet of subnets) {\n const key = [subnet.type, subnet.name].toString();\n if (!(key in grouping)) {\n grouping[key] = [];\n }\n grouping[key].push(subnet);\n }\n const groups = Object.values(grouping).map((sns) => {\n sns.sort((a, b) => a.az.localeCompare(b.az));\n return {\n type: sns[0].type,\n name: sns[0].name,\n subnets: sns,\n };\n });\n const azs = groups[0].subnets.map((s) => s.az);\n for (const group of groups) {\n const groupAZs = group.subnets.map((s) => s.az);\n if (!arraysEqual(groupAZs, azs)) {\n throw new toolkit_error_1.ContextProviderError('InconsistentSubnetAzs', `Not all subnets in VPC have the same AZs: ${groupAZs} vs ${azs}`);\n }\n }\n return { azs, groups };\n}\nfunction groupAsymmetricSubnets(subnets) {\n const grouping = {};\n for (const subnet of subnets) {\n const key = [subnet.type, subnet.name].toString();\n if (!(key in grouping)) {\n grouping[key] = [];\n }\n grouping[key].push(subnet);\n }\n return Object.values(grouping).map((subnetArray) => {\n subnetArray.sort((subnet1, subnet2) => subnet1.az.localeCompare(subnet2.az));\n return {\n name: subnetArray[0].name,\n type: subnetTypeToVpcSubnetType(subnetArray[0].type),\n subnets: subnetArray.map((subnet) => ({\n subnetId: subnet.subnetId,\n cidr: subnet.cidr,\n availabilityZone: subnet.az,\n routeTableId: subnet.routeTableId,\n })),\n };\n });\n}\nfunction subnetTypeToVpcSubnetType(type) {\n switch (type) {\n case SubnetType.Isolated:\n return cloud_assembly_api_1.VpcSubnetGroupType.ISOLATED;\n case SubnetType.Private:\n return cloud_assembly_api_1.VpcSubnetGroupType.PRIVATE;\n case SubnetType.Public:\n return cloud_assembly_api_1.VpcSubnetGroupType.PUBLIC;\n }\n}\nvar SubnetType;\n(function (SubnetType) {\n SubnetType[\"Public\"] = \"Public\";\n SubnetType[\"Private\"] = \"Private\";\n SubnetType[\"Isolated\"] = \"Isolated\";\n})(SubnetType || (SubnetType = {}));\nfunction isValidSubnetType(val) {\n return val === SubnetType.Public || val === SubnetType.Private || val === SubnetType.Isolated;\n}\nfunction arraysEqual(as, bs) {\n if (as.length !== bs.length) {\n return false;\n }\n for (let i = 0; i < as.length; i++) {\n if (as[i] !== bs[i]) {\n return false;\n }\n }\n return true;\n}\nfunction findGroups(type, groups) {\n return groups.groups.filter((g) => g.type === type);\n}\nfunction flatMap(xs, fn) {\n const ret = new Array();\n for (const x of xs) {\n ret.push(...fn(x));\n }\n return ret;\n}\nfunction collapse(xs) {\n if (xs.length > 0) {\n return xs;\n }\n return undefined;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZwY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQStHO0FBSS9HLHFEQUFpRTtBQUdqRSw0REFBZ0U7QUFFaEUsTUFBYSwrQkFBK0I7SUFDYjtJQUFtQztJQUFoRSxZQUE2QixHQUFnQixFQUFtQixFQUE0QjtRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQTBCO0lBQzVGLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQXFCO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFzQixFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVqRSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQWUsRUFBRSxJQUFxQjtRQUMxRCw2RUFBNkU7UUFDN0UsTUFBTSxPQUFPLEdBQWEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTlHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEUsTUFBTSxRQUFR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QUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUksRUFBTztJQUMxQixJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgVnBjQ29udGV4dFJlc3BvbnNlLCB0eXBlIFZwY1N1Ym5ldEdyb3VwLCBWcGNTdWJuZXRHcm91cFR5cGUgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBWcGNDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXIsIFJvdXRlVGFibGUsIFRhZywgVnBjIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSUVDMkNsaWVudCwgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG5leHBvcnQgY2xhc3MgVnBjTmV0d29ya0NvbnRleHRQcm92aWRlclBsdWdpbiBpbXBsZW1lbnRzIENvbnRleHRQcm92aWRlclBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXdzOiBTZGtQcm92aWRlciwgcHJpdmF0ZSByZWFkb25seSBpbzogSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoYXJnczogVnBjQ29udGV4dFF1ZXJ5KSB7XG4gICAgY29uc3QgZWMyID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5lYzIoKTtcblxuICAgIGNvbnN0IHZwY0lkID0gYXdhaXQgdGhpcy5maW5kVnBjKGVjMiwgYXJncyk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWFkVnBjUHJvcHMoZWMyLCB2cGNJZCwgYXJncyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZpbmRWcGMoZWMyOiBJRUMyQ2xpZW50LCBhcmdzOiBWcGNDb250ZXh0UXVlcnkpOiBQcm9taXNlPFZwYz4ge1xuICAgIC8vIEJ1aWxkIHJlcXVlc3QgZmlsdGVyIChtYXAgeyBOYW1lIC0+IFZhbHVlIH0gdG8gbGlzdCBvZiBbeyBOYW1lLCBWYWx1ZXMgfV0pXG4gICAgY29uc3QgZmlsdGVyczogRmlsdGVyW10gPSBPYmplY3QuZW50cmllcyhhcmdzLmZpbHRlcikubWFwKChbdGFnLCB2YWx1ZV0pID0+ICh7IE5hbWU6IHRhZywgVmFsdWVzOiBbdmFsdWVdIH0pKTtcblxuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYExpc3RpbmcgVlBDcyBpbiAke2FyZ3MuYWNjb3VudH06JHthcmdzLnJlZ2lvbn1gKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVjMi5kZXNjcmliZVZwY3MoeyBGaWx0ZXJzOiBmaWx0ZXJzIH0pO1xuXG4gICAgY29uc3QgdnBjcyA9IHJlc3BvbnNlLlZwY3MgfHwgW107XG4gICAgaWYgKHZwY3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1ZwY05vdEZvdW5kJywgYENvdWxkIG5vdCBmaW5kIGFueSBWUENzIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YCk7XG4gICAgfVxuICAgIGlmICh2cGNzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignTXVsdGlwbGVWcGNzRm91bmQnLCBgRm91bmQgJHt2cGNzLmxlbmd0aH0gVlBDcyBtYXRjaGluZyAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfTsgcGxlYXNlIG5hcnJvdyB0aGUgc2VhcmNoIGNyaXRlcmlhYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZwY3NbMF07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlYWRWcGNQcm9wcyhlYzI6IElFQzJDbGllbnQsIHZwYzogVnBjLCBhcmdzOiBWcGNDb250ZXh0UXVlcnkpOiBQcm9taXNlPFZwY0NvbnRleHRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHZwY0lkID0gdnBjLlZwY0lkITtcblxuICAgIGF3YWl0IHRoaXMuaW8uZGVidWcoYERlc2NyaWJpbmcgVlBDICR7dnBjSWR9YCk7XG5cbiAgICBjb25zdCBmaWx0ZXJzID0geyBGaWx0ZXJzOiBbeyBOYW1lOiAndnBjLWlkJywgVmFsdWVzOiBbdnBjSWRdIH1dIH07XG5cbiAgICBjb25zdCBzdWJuZXRzUmVzcG9uc2UgPSBhd2FpdCBlYzIuZGVzY3JpYmVTdWJuZXRzKGZpbHRlcnMpO1xuICAgIGNvbnN0IGxpc3RlZFN1Ym5ldHMgPSBzdWJuZXRzUmVzcG9uc2UuU3VibmV0cyB8fCBbXTtcblxuICAgIGNvbnN0IHJvdXRlVGFibGVzUmVzcG9uc2UgPSBhd2FpdCBlYzIuZGVzY3JpYmVSb3V0ZVRhYmxlcyhmaWx0ZXJzKTtcbiAgICBjb25zdCByb3V0ZVRhYmxlcyA9IG5ldyBSb3V0ZVRhYmxlcyhyb3V0ZVRhYmxlc1Jlc3BvbnNlLlJvdXRlVGFibGVzIHx8IFtdKTtcblxuICAgIC8vIE5vdyBjb21lcyBvdXIgam9iIHRvIHNlcGFyYXRlIHRoZXNlIHN1Ym5ldHMgb3V0IGludG8gQVpzIGFuZCBzdWJuZXQgZ3JvdXBzIChQdWJsaWMsIFByaXZhdGUsIElzb2xhdGVkKVxuICAgIC8vIFdlIGhhdmUgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHRvIGdvIG9uOlxuICAgIC8vIC0gVHlwZSB0YWcsIHdlIHRhZyBzdWJuZXRzIHdpdGggdGhlaXIgdHlwZS4gSW4gYWJzZW5jZSBvZiB0aGlzIHRhZywgd2VcbiAgICAvLyAgIGRldGVybWluZSB0aGUgc3VibmV0IG11c3QgYmUgUHVibGljIGlmIGVpdGhlcjpcbiAgICAvLyAgIGEpIGl0IGhhcyB0aGUgcHJvcGVydHkgTWFwUHVibGljSXBPbkxhdW5jaFxuICAgIC8vICAgYikgaXQgaGFzIGEgcm91dGUgdG8gYW4gSW50ZXJuZXQgR2F0ZXdheVxuICAgIC8vICAgSWYgYm90aCBvZiB0aGUgYWJvdmUgaXMgZmFsc2UgYnV0IHRoZSBzdWJuZXQgaGFzIGEgcm91dGUgdG8gYSBOQVQgR2F0ZXdheVxuICAgIC8vICAgYW5kIHRoZSBkZXN0aW5hdGlvbiBDSURSIGJsb2NrIGlzIFwiMC4wLjAuMC8wXCIsIHdlIGFzc3VtZSBpdCB0byBiZSBhIFByaXZhdGUgc3VibmV0LlxuICAgIC8vICAgQW55dGhpbmcgZWxzZSBpcyBjb25zaWRlcmVkIElzb2xhdGVkLlxuICAgIC8vIC0gTmFtZSB0YWcsIHdlIHRhZyBzdWJuZXRzIHdpdGggdGhlaXIgc3VibmV0IGdyb3VwIG5hbWUuIEluIGFic2VuY2Ugb2YgdGhpcyB0YWcsXG4gICAgLy8gICB3ZSB1c2UgdGhlIHR5cGUgYXMgdGhlIG5hbWUuXG5cbiAgICBjb25zdCBhenMgPSBBcnJheS5mcm9tKG5ldyBTZXQ8c3RyaW5nPihsaXN0ZWRTdWJuZXRzLm1hcCgocykgPT4gcy5BdmFpbGFiaWxpdHlab25lISkpKTtcbiAgICBhenMuc29ydCgpO1xuXG4gICAgY29uc3Qgc3VibmV0czogU3VibmV0W10gPSBsaXN0ZWRTdWJuZXRzLm1hcCgoc3VibmV0KSA9PiB7XG4gICAgICBsZXQgdHlwZSA9IGdldFRhZygnYXdzLWNkazpzdWJuZXQtdHlwZScsIHN1Ym5ldC5UYWdzKTtcbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgJiYgc3VibmV0Lk1hcFB1YmxpY0lwT25MYXVuY2gpIHtcbiAgICAgICAgdHlwZSA9IFN1Ym5ldFR5cGUuUHVibGljO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCAmJiByb3V0ZVRhYmxlcy5oYXNSb3V0ZVRvSWd3KHN1Ym5ldC5TdWJuZXRJZCkpIHtcbiAgICAgICAgdHlwZSA9IFN1Ym5ldFR5cGUuUHVibGljO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCAmJiByb3V0ZVRhYmxlcy5oYXNSb3V0ZVRvTmF0R2F0ZXdheShzdWJuZXQuU3VibmV0SWQpKSB7XG4gICAgICAgIHR5cGUgPSBTdWJuZXRUeXBlLlByaXZhdGU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkICYmIHJvdXRlVGFibGVzLmhhc1JvdXRlVG9UcmFuc2l0R2F0ZXdheShzdWJuZXQuU3VibmV0SWQpKSB7XG4gICAgICAgIHR5cGUgPSBTdWJuZXRUeXBlLlByaXZhdGU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHR5cGUgPSBTdWJuZXRUeXBlLklzb2xhdGVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzVmFsaWRTdWJuZXRUeXBlKHR5cGUpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdJbnZhbGlkU3VibmV0VHlwZScsXG4gICAgICAgICAgYFN1Ym5ldCAke3N1Ym5ldC5TdWJuZXRBcm59IGhhcyBpbnZhbGlkIHN1Ym5ldCB0eXBlICR7dHlwZX0gKG11c3QgYmUgJHtTdWJuZXRUeXBlLlB1YmxpY30sICR7U3VibmV0VHlwZS5Qcml2YXRlfSBvciAke1N1Ym5ldFR5cGUuSXNvbGF0ZWR9KWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmdzLnN1Ym5ldEdyb3VwTmFtZVRhZyAmJiAhZ2V0VGFnKGFyZ3Muc3VibmV0R3JvdXBOYW1lVGFnLCBzdWJuZXQuVGFncykpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNaXNzaW5nU3VibmV0R3JvdXBUYWcnLFxuICAgICAgICAgIGBJbnZhbGlkIHN1Ym5ldEdyb3VwTmFtZVRhZzogU3VibmV0ICR7c3VibmV0LlN1Ym5ldEFybn0gZG9lcyBub3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHRhZyB3aXRoIEtleT0nJHthcmdzLnN1Ym5ldEdyb3VwTmFtZVRhZ30nYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmFtZSA9IGdldFRhZyhhcmdzLnN1Ym5ldEdyb3VwTmFtZVRhZyB8fCAnYXdzLWNkazpzdWJuZXQtbmFtZScsIHN1Ym5ldC5UYWdzKSB8fCB0eXBlO1xuICAgICAgY29uc3Qgcm91dGVUYWJsZUlkID0gcm91dGVUYWJsZXMucm91dGVUYWJsZUlkRm9yU3VibmV0SWQoc3VibmV0LlN1Ym5ldElkKTtcblxuICAgICAgaWYgKCFyb3V0ZVRhYmxlSWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdNaXNzaW5nUm91dGVUYWJsZScsXG4gICAgICAgICAgYFN1Ym5ldCAke3N1Ym5ldC5TdWJuZXRBcm59IGRvZXMgbm90IGhhdmUgYW4gYXNzb2NpYXRlZCByb3V0ZSB0YWJsZSAoYW5kIHRoZXJlIGlzIG5vIFwibWFpblwiIHRhYmxlKWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF6OiBzdWJuZXQuQXZhaWxhYmlsaXR5Wm9uZSEsXG4gICAgICAgIGNpZHI6IHN1Ym5ldC5DaWRyQmxvY2shLFxuICAgICAgICB0eXBlLFxuICAgICAgICBuYW1lLFxuICAgICAgICBzdWJuZXRJZDogc3VibmV0LlN1Ym5ldElkISxcbiAgICAgICAgcm91dGVUYWJsZUlkLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGxldCBncm91cGVkOiBTdWJuZXRHcm91cHM7XG4gICAgbGV0IGFzc3ltZXRyaWNTdWJuZXRHcm91cHM6IFZwY1N1Ym5ldEdyb3VwW10gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGFyZ3MucmV0dXJuQXN5bW1ldHJpY1N1Ym5ldHMpIHtcbiAgICAgIGdyb3VwZWQgPSB7IGF6czogW10sIGdyb3VwczogW10gfTtcbiAgICAgIGFzc3ltZXRyaWNTdWJuZXRHcm91cHMgPSBncm91cEFzeW1tZXRyaWNTdWJuZXRzKHN1Ym5ldHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cGVkID0gZ3JvdXBTdWJuZXRzKHN1Ym5ldHMpO1xuICAgICAgYXNzeW1ldHJpY1N1Ym5ldEdyb3VwcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBGaW5kIGF0dGFjaGVkK2F2YWlsYWJsZSBWUE4gZ2F0ZXdheSBmb3IgdGhpcyBWUENcbiAgICBjb25zdCB2cG5HYXRld2F5UmVzcG9uc2UgPVxuICAgICAgKGFyZ3MucmV0dXJuVnBuR2F0ZXdheXMgPz8gdHJ1ZSlcbiAgICAgICAgPyBhd2FpdCBlYzIuZGVzY3JpYmVWcG5HYXRld2F5cyh7XG4gICAgICAgICAgRmlsdGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBOYW1lOiAnYXR0YWNobWVudC52cGMtaWQnLFxuICAgICAgICAgICAgICBWYWx1ZXM6IFt2cGNJZF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBOYW1lOiAnYXR0YWNobWVudC5zdGF0ZScsXG4gICAgICAgICAgICAgIFZhbHVlczogWydhdHRhY2hlZCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgTmFtZTogJ3N0YXRlJyxcbiAgICAgICAgICAgICAgVmFsdWVzOiBbJ2F2YWlsYWJsZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB2cG5HYXRld2F5SWQgPVxuICAgICAgdnBuR2F0ZXdheVJlc3BvbnNlPy5WcG5HYXRld2F5cz8ubGVuZ3RoID09PSAxID8gdnBuR2F0ZXdheVJlc3BvbnNlLlZwbkdhdGV3YXlzWzBdLlZwbkdhdGV3YXlJZCA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICB2cGNJZCxcbiAgICAgIHZwY0NpZHJCbG9jazogdnBjLkNpZHJCbG9jayEsXG4gICAgICBvd25lckFjY291bnRJZDogdnBjLk93bmVySWQsXG4gICAgICBhdmFpbGFiaWxpdHlab25lczogZ3JvdXBlZC5henMsXG4gICAgICBpc29sYXRlZFN1Ym5ldElkczogY29sbGFwc2UoXG4gICAgICAgIGZsYXRNYXAoZmluZEdyb3VwcyhTdWJuZXRUeXBlLklzb2xhdGVkLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5zdWJuZXRJZCkpLFxuICAgICAgKSxcbiAgICAgIGlzb2xhdGVkU3VibmV0TmFtZXM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5Jc29sYXRlZCwgZ3JvdXBlZCksIChncm91cCkgPT4gKGdyb3VwLm5hbWUgPyBbZ3JvdXAubmFtZV0gOiBbXSkpLFxuICAgICAgKSxcbiAgICAgIGlzb2xhdGVkU3VibmV0Um91dGVUYWJsZUlkczogY29sbGFwc2UoXG4gICAgICAgIGZsYXRNYXAoZmluZEdyb3VwcyhTdWJuZXRUeXBlLklzb2xhdGVkLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5yb3V0ZVRhYmxlSWQpKSxcbiAgICAgICksXG4gICAgICBwcml2YXRlU3VibmV0SWRzOiBjb2xsYXBzZShcbiAgICAgICAgZmxhdE1hcChmaW5kR3JvdXBzKFN1Ym5ldFR5cGUuUHJpdmF0ZSwgZ3JvdXBlZCksIChncm91cCkgPT4gZ3JvdXAuc3VibmV0cy5tYXAoKHMpID0+IHMuc3VibmV0SWQpKSxcbiAgICAgICksXG4gICAgICBwcml2YXRlU3VibmV0TmFtZXM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5Qcml2YXRlLCBncm91cGVkKSwgKGdyb3VwKSA9PiAoZ3JvdXAubmFtZSA/IFtncm91cC5uYW1lXSA6IFtdKSksXG4gICAgICApLFxuICAgICAgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5Qcml2YXRlLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5yb3V0ZVRhYmxlSWQpKSxcbiAgICAgICksXG4gICAgICBwdWJsaWNTdWJuZXRJZHM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5QdWJsaWMsIGdyb3VwZWQpLCAoZ3JvdXApID0+IGdyb3VwLnN1Ym5ldHMubWFwKChzKSA9PiBzLnN1Ym5ldElkKSksXG4gICAgICApLFxuICAgICAgcHVibGljU3VibmV0TmFtZXM6IGNvbGxhcHNlKFxuICAgICAgICBmbGF0TWFwKGZpbmRHcm91cHMoU3VibmV0VHlwZS5QdWJsaWMsIGdyb3VwZWQpLCAoZ3JvdXApID0+IChncm91cC5uYW1lID8gW2dyb3VwLm5hbWVdIDogW10pKSxcbiAgICAgICksXG4gICAgICBwdWJsaWNTdWJuZXRSb3V0ZVRhYmxlSWRzOiBjb2xsYXBzZShcbiAgICAgICAgZmxhdE1hcChmaW5kR3JvdXBzKFN1Ym5ldFR5cGUuUHVibGljLCBncm91cGVkKSwgKGdyb3VwKSA9PiBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5yb3V0ZVRhYmxlSWQpKSxcbiAgICAgICksXG4gICAgICB2cG5HYXRld2F5SWQsXG4gICAgICBzdWJuZXRHcm91cHM6IGFzc3ltZXRyaWNTdWJuZXRHcm91cHMsXG4gICAgfTtcbiAgfVxufVxuXG5jbGFzcyBSb3V0ZVRhYmxlcyB7XG4gIHB1YmxpYyByZWFkb25seSBtYWluUm91dGVUYWJsZT86IFJvdXRlVGFibGU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0YWJsZXM6IFJvdXRlVGFibGVbXSkge1xuICAgIHRoaXMubWFpblJvdXRlVGFibGUgPSB0aGlzLnRhYmxlcy5maW5kKFxuICAgICAgKHRhYmxlKSA9PiAhIXRhYmxlLkFzc29jaWF0aW9ucyAmJiB0YWJsZS5Bc3NvY2lhdGlvbnMuc29tZSgoYXNzb2MpID0+ICEhYXNzb2MuTWFpbiksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByb3V0ZVRhYmxlSWRGb3JTdWJuZXRJZChzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0YWJsZSA9IHRoaXMudGFibGVGb3JTdWJuZXQoc3VibmV0SWQpO1xuICAgIHJldHVybiAodGFibGUgJiYgdGFibGUuUm91dGVUYWJsZUlkKSB8fCAodGhpcy5tYWluUm91dGVUYWJsZSAmJiB0aGlzLm1haW5Sb3V0ZVRhYmxlLlJvdXRlVGFibGVJZCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2l2ZW4gc3VibmV0IGhhcyBhIHJvdXRlIHRvIGEgTkFUIEdhdGV3YXlcbiAgICovXG4gIHB1YmxpYyBoYXNSb3V0ZVRvTmF0R2F0ZXdheShzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlRm9yU3VibmV0KHN1Ym5ldElkKSB8fCB0aGlzLm1haW5Sb3V0ZVRhYmxlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGFibGUgJiZcbiAgICAgICEhdGFibGUuUm91dGVzICYmXG4gICAgICB0YWJsZS5Sb3V0ZXMuc29tZSgocm91dGUpID0+ICEhcm91dGUuTmF0R2F0ZXdheUlkICYmIHJvdXRlLkRlc3RpbmF0aW9uQ2lkckJsb2NrID09PSAnMC4wLjAuMC8wJylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdpdmVuIHN1Ym5ldCBoYXMgYSByb3V0ZSB0byBhIFRyYW5zaXQgR2F0ZXdheVxuICAgKi9cbiAgcHVibGljIGhhc1JvdXRlVG9UcmFuc2l0R2F0ZXdheShzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlRm9yU3VibmV0KHN1Ym5ldElkKSB8fCB0aGlzLm1haW5Sb3V0ZVRhYmxlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGFibGUgJiZcbiAgICAgICEhdGFibGUuUm91dGVzICYmXG4gICAgICB0YWJsZS5Sb3V0ZXMuc29tZSgocm91dGUpID0+ICEhcm91dGUuVHJhbnNpdEdhdGV3YXlJZCAmJiByb3V0ZS5EZXN0aW5hdGlvbkNpZHJCbG9jayA9PT0gJzAuMC4wLjAvMCcpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBnaXZlbiBzdWJuZXQgaGFzIGEgcm91dGUgdG8gYW4gSUdXXG4gICAqL1xuICBwdWJsaWMgaGFzUm91dGVUb0lndyhzdWJuZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlRm9yU3VibmV0KHN1Ym5ldElkKSB8fCB0aGlzLm1haW5Sb3V0ZVRhYmxlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGFibGUgJiYgISF0YWJsZS5Sb3V0ZXMgJiYgdGFibGUuUm91dGVzLnNvbWUoKHJvdXRlKSA9PiAhIXJvdXRlLkdhdGV3YXlJZCAmJiByb3V0ZS5HYXRld2F5SWQuc3RhcnRzV2l0aCgnaWd3LScpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdGFibGVGb3JTdWJuZXQoc3VibmV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlcy5maW5kKFxuICAgICAgKHRhYmxlKSA9PiAhIXRhYmxlLkFzc29jaWF0aW9ucyAmJiB0YWJsZS5Bc3NvY2lhdGlvbnMuc29tZSgoYXNzb2MpID0+IGFzc29jLlN1Ym5ldElkID09PSBzdWJuZXRJZCksXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgdmFsdWUgb2YgYSB0YWcgZnJvbSBhIHNldCBvZiB0YWdzXG4gKi9cbmZ1bmN0aW9uIGdldFRhZyhuYW1lOiBzdHJpbmcsIHRhZ3M/OiBUYWdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgdGFnIG9mIHRhZ3MgfHwgW10pIHtcbiAgICBpZiAodGFnLktleSA9PT0gbmFtZSkge1xuICAgICAgcmV0dXJuIHRhZy5WYWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHcm91cCBzdWJuZXRzIG9mIHRoZSBzYW1lIHR5cGUgdG9nZXRoZXIsIGFuZCBvcmRlciBieSBBWlxuICovXG5mdW5jdGlvbiBncm91cFN1Ym5ldHMoc3VibmV0czogU3VibmV0W10pOiBTdWJuZXRHcm91cHMge1xuICBjb25zdCBncm91cGluZzogeyBba2V5OiBzdHJpbmddOiBTdWJuZXRbXSB9ID0ge307XG4gIGZvciAoY29uc3Qgc3VibmV0IG9mIHN1Ym5ldHMpIHtcbiAgICBjb25zdCBrZXkgPSBbc3VibmV0LnR5cGUsIHN1Ym5ldC5uYW1lXS50b1N0cmluZygpO1xuICAgIGlmICghKGtleSBpbiBncm91cGluZykpIHtcbiAgICAgIGdyb3VwaW5nW2tleV0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBpbmdba2V5XS5wdXNoKHN1Ym5ldCk7XG4gIH1cblxuICBjb25zdCBncm91cHMgPSBPYmplY3QudmFsdWVzKGdyb3VwaW5nKS5tYXAoKHNucykgPT4ge1xuICAgIHNucy5zb3J0KChhOiBTdWJuZXQsIGI6IFN1Ym5ldCkgPT4gYS5hei5sb2NhbGVDb21wYXJlKGIuYXopKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogc25zWzBdLnR5cGUsXG4gICAgICBuYW1lOiBzbnNbMF0ubmFtZSxcbiAgICAgIHN1Ym5ldHM6IHNucyxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdCBhenMgPSBncm91cHNbMF0uc3VibmV0cy5tYXAoKHMpID0+IHMuYXopO1xuXG4gIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgZ3JvdXBBWnMgPSBncm91cC5zdWJuZXRzLm1hcCgocykgPT4gcy5heik7XG4gICAgaWYgKCFhcnJheXNFcXVhbChncm91cEFacywgYXpzKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKCdJbmNvbnNpc3RlbnRTdWJuZXRBenMnLCBgTm90IGFsbCBzdWJuZXRzIGluIFZQQyBoYXZlIHRoZSBzYW1lIEFaczogJHtncm91cEFac30gdnMgJHthenN9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgYXpzLCBncm91cHMgfTtcbn1cblxuZnVuY3Rpb24gZ3JvdXBBc3ltbWV0cmljU3VibmV0cyhzdWJuZXRzOiBTdWJuZXRbXSk6IFZwY1N1Ym5ldEdyb3VwW10ge1xuICBjb25zdCBncm91cGluZzogeyBba2V5OiBzdHJpbmddOiBTdWJuZXRbXSB9ID0ge307XG4gIGZvciAoY29uc3Qgc3VibmV0IG9mIHN1Ym5ldHMpIHtcbiAgICBjb25zdCBrZXkgPSBbc3VibmV0LnR5cGUsIHN1Ym5ldC5uYW1lXS50b1N0cmluZygpO1xuICAgIGlmICghKGtleSBpbiBncm91cGluZykpIHtcbiAgICAgIGdyb3VwaW5nW2tleV0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBpbmdba2V5XS5wdXNoKHN1Ym5ldCk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhncm91cGluZykubWFwKChzdWJuZXRBcnJheSkgPT4ge1xuICAgIHN1Ym5ldEFycmF5LnNvcnQoKHN1Ym5ldDE6IFN1Ym5ldCwgc3VibmV0MjogU3VibmV0KSA9PiBzdWJuZXQxLmF6LmxvY2FsZUNvbXBhcmUoc3VibmV0Mi5heikpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHN1Ym5ldEFycmF5WzBdLm5hbWUsXG4gICAgICB0eXBlOiBzdWJuZXRUeXBlVG9WcGNTdWJuZXRUeXBlKHN1Ym5ldEFycmF5WzBdLnR5cGUpLFxuICAgICAgc3VibmV0czogc3VibmV0QXJyYXkubWFwKChzdWJuZXQpID0+ICh7XG4gICAgICAgIHN1Ym5ldElkOiBzdWJuZXQuc3VibmV0SWQsXG4gICAgICAgIGNpZHI6IHN1Ym5ldC5jaWRyLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lOiBzdWJuZXQuYXosXG4gICAgICAgIHJvdXRlVGFibGVJZDogc3VibmV0LnJvdXRlVGFibGVJZCxcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc3VibmV0VHlwZVRvVnBjU3VibmV0VHlwZSh0eXBlOiBTdWJuZXRUeXBlKTogVnBjU3VibmV0R3JvdXBUeXBlIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBTdWJuZXRUeXBlLklzb2xhdGVkOlxuICAgICAgcmV0dXJuIFZwY1N1Ym5ldEdyb3VwVHlwZS5JU09MQVRFRDtcbiAgICBjYXNlIFN1Ym5ldFR5cGUuUHJpdmF0ZTpcbiAgICAgIHJldHVybiBWcGNTdWJuZXRHcm91cFR5cGUuUFJJVkFURTtcbiAgICBjYXNlIFN1Ym5ldFR5cGUuUHVibGljOlxuICAgICAgcmV0dXJuIFZwY1N1Ym5ldEdyb3VwVHlwZS5QVUJMSUM7XG4gIH1cbn1cblxuZW51bSBTdWJuZXRUeXBlIHtcbiAgUHVibGljID0gJ1B1YmxpYycsXG4gIFByaXZhdGUgPSAnUHJpdmF0ZScsXG4gIElzb2xhdGVkID0gJ0lzb2xhdGVkJyxcbn1cblxuZnVuY3Rpb24gaXNWYWxpZFN1Ym5ldFR5cGUodmFsOiBzdHJpbmcpOiB2YWwgaXMgU3VibmV0VHlwZSB7XG4gIHJldHVybiB2YWwgPT09IFN1Ym5ldFR5cGUuUHVibGljIHx8IHZhbCA9PT0gU3VibmV0VHlwZS5Qcml2YXRlIHx8IHZhbCA9PT0gU3VibmV0VHlwZS5Jc29sYXRlZDtcbn1cblxuaW50ZXJmYWNlIFN1Ym5ldCB7XG4gIGF6OiBzdHJpbmc7XG4gIGNpZHI6IHN0cmluZztcbiAgdHlwZTogU3VibmV0VHlwZTtcbiAgbmFtZTogc3RyaW5nO1xuICByb3V0ZVRhYmxlSWQ6IHN0cmluZztcbiAgc3VibmV0SWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFN1Ym5ldEdyb3VwIHtcbiAgdHlwZTogU3VibmV0VHlwZTtcbiAgbmFtZTogc3RyaW5nO1xuICBzdWJuZXRzOiBTdWJuZXRbXTtcbn1cblxuaW50ZXJmYWNlIFN1Ym5ldEdyb3VwcyB7XG4gIGF6czogc3RyaW5nW107XG4gIGdyb3VwczogU3VibmV0R3JvdXBbXTtcbn1cblxuZnVuY3Rpb24gYXJyYXlzRXF1YWwoYXM6IHN0cmluZ1tdLCBiczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgaWYgKGFzLmxlbmd0aCAhPT0gYnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhc1tpXSAhPT0gYnNbaV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZmluZEdyb3Vwcyh0eXBlOiBTdWJuZXRUeXBlLCBncm91cHM6IFN1Ym5ldEdyb3Vwcyk6IFN1Ym5ldEdyb3VwW10ge1xuICByZXR1cm4gZ3JvdXBzLmdyb3Vwcy5maWx0ZXIoKGcpID0+IGcudHlwZSA9PT0gdHlwZSk7XG59XG5cbmZ1bmN0aW9uIGZsYXRNYXA8VCwgVT4oeHM6IFRbXSwgZm46ICh4OiBUKSA9PiBVW10pOiBVW10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goLi4uZm4oeCkpO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGNvbGxhcHNlPFQ+KHhzOiBUW10pOiBUW10gfCB1bmRlZmluZWQge1xuICBpZiAoeHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB4cztcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19","\"use strict\";\n/**\n * @module toolkit-lib\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Polyfills first\nrequire(\"./private/dispose-polyfill\");\n// The main show\n__exportStar(require(\"./toolkit\"), exports);\n__exportStar(require(\"./toolkit/toolkit-error\"), exports);\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./payloads\"), exports);\n// Supporting acts\n__exportStar(require(\"./api/aws-auth\"), exports);\n__exportStar(require(\"./api/cloud-assembly\"), exports);\n__exportStar(require(\"./api/io\"), exports);\n__exportStar(require(\"./api/tags\"), exports);\n__exportStar(require(\"./api/plugin\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxrQkFBa0I7QUFDbEIsc0NBQW9DO0FBRXBDLGdCQUFnQjtBQUNoQiw0Q0FBMEI7QUFDMUIsMERBQXdDO0FBQ3hDLDRDQUEwQjtBQUMxQiw2Q0FBMkI7QUFFM0Isa0JBQWtCO0FBQ2xCLGlEQUErQjtBQUMvQix1REFBcUM7QUFDckMsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgdG9vbGtpdC1saWJcbiAqL1xuXG4vLyBQb2x5ZmlsbHMgZmlyc3RcbmltcG9ydCAnLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuXG4vLyBUaGUgbWFpbiBzaG93XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xraXQnO1xuZXhwb3J0ICogZnJvbSAnLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcGF5bG9hZHMnO1xuXG4vLyBTdXBwb3J0aW5nIGFjdHNcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2F3cy1hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2lvJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3RhZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvcGx1Z2luJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWVudmlyb25tZW50LXByb2dyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLWVudmlyb25tZW50LXByb2dyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcyB7XG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIGVudmlyb25tZW50cyBiZWluZyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiB0aGUgZW52aXJvbm1lbnQgY3VycmVudGx5IGJvb3RzdHJhcHBlZFxuICAgKlxuICAgKiBUaGlzIGlzIGNvdW50aW5nIHZhbHVlLCBub3QgYW4gaWRlbnRpZmllci5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB0aGF0J3MgY3VycmVudGx5IGJlaW5nIGJvb3RzdHJhcHBlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWlzc2luZ0NvbnRleHQge1xuICBtaXNzaW5nS2V5czogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZENvbnRleHQge1xuICBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV2ZW50VHlwZSwgSU1hbmlmZXN0RW50cnkgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlRGlmZiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vZGlmZic7XG5pbXBvcnQgdHlwZSB7IENvbmZpcm1hdGlvblJlcXVlc3QgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gcmUtZXhwb3J0IHNvIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBBUElcbmV4cG9ydCB0eXBlIHsgRGVwbG95U3RhY2tSZXN1bHQsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCwgTmVlZFJvbGxiYWNrRmlyc3REZXBsb3lTdGFja1Jlc3VsdCwgUmVwbGFjZW1lbnRSZXF1aXJlc1JvbGxiYWNrU3RhY2tSZXN1bHQgfSBmcm9tICcuLi9hcGkvZGVwbG95bWVudHMvZGVwbG95bWVudC1yZXN1bHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGVwbG95UHJvZ3Jlc3Mge1xuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBzdGFja3MgYmVpbmcgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY291bnQgb2YgdGhlIHN0YWNrIGN1cnJlbnRseSBhdHRlbXB0ZWQgdG8gYmUgZGVwbG95ZWRcbiAgICpcbiAgICogVGhpcyBpcyBjb3VudGluZyB2YWx1ZSwgbm90IGFuIGlkZW50aWZpZXIuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbn1cblxuLyoqXG4gKiBQYXlsb2FkIGZvciBhIHllcy9ubyBjb25maXJtYXRpb24gaW4gZGVwbG95LiBJbmNsdWRlcyBpbmZvcm1hdGlvbiBvblxuICogd2hhdCBraW5kIG9mIGNoYW5nZSBpcyBiZWluZyBtYWRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUNvbmZpcm1hdGlvblJlcXVlc3QgZXh0ZW5kcyBDb25maXJtYXRpb25SZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGNoYW5nZSBiZWluZyBtYWRlIHRvIHRoZSBJQU0gcGVybWlzc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogUGVybWlzc2lvbkNoYW5nZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBkaWZmcyBvZiB0aGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlRGlmZnM6IHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQXNzZXQge1xuICAvKipcbiAgICogVGhlIGFzc2V0IHRoYXQgaXMgYnVpbGRcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoQXNzZXQge1xuICAvKipcbiAgICogVGhlIGFzc2V0IHRoYXQgaXMgcHVibGlzaGVkXG4gICAqL1xuICByZWFkb25seSBhc3NldDogSU1hbmlmZXN0RW50cnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFzc2V0RXZlbnQge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgZXZlbnRcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEV2ZW50VHlwZTtcblxuICAvKipcbiAgICogRXZlbnQgbWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgZmFyIGlzIHRoZSBwdWJsaXNoaW5nIGFsb25nIChhcyBwZXJjZW50YWdlKS5cbiAgICovXG4gIHJlYWRvbmx5IHByb2dyZXNzUGVyY2VudGFnZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBc3NldCBjdXJyZW50bHkgYmVpbmcgcHVibGlzaGVkIChpZiBhbnkpXG4gICAqL1xuICByZWFkb25seSBhc3NldD86IElNYW5pZmVzdEVudHJ5O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0Rlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIHN0YWNrcyB0aGF0IHdpbGwgYmUgZGVzdHJveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGVzdHJveVByb2dyZXNzIHtcbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhY2tzIGJlaW5nIGRlc3Ryb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiB0aGUgc3RhY2sgY3VycmVudGx5IGF0dGVtcHRlZCB0byBiZSBkZXN0cm95ZWRcbiAgICpcbiAgICogVGhpcyBpcyBjb3VudGluZyB2YWx1ZSwgbm90IGFuIGlkZW50aWZpZXIuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXN0cm95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermissionChangeType = void 0;\n/**\n * Different types of permission related changes in a diff\n */\nvar PermissionChangeType;\n(function (PermissionChangeType) {\n /**\n * No permission changes\n */\n PermissionChangeType[\"NONE\"] = \"none\";\n /**\n * Permissions are broadening\n */\n PermissionChangeType[\"BROADENING\"] = \"broadening\";\n /**\n * Permissions are changed but not broadening\n */\n PermissionChangeType[\"NON_BROADENING\"] = \"non-broadening\";\n})(PermissionChangeType || (exports.PermissionChangeType = PermissionChangeType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7O0dBRUc7QUFDSCxJQUFZLG9CQWVYO0FBZkQsV0FBWSxvQkFBb0I7SUFDOUI7O09BRUc7SUFDSCxxQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxpREFBeUIsQ0FBQTtJQUV6Qjs7T0FFRztJQUNILHlEQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFmVyxvQkFBb0Isb0NBQXBCLG9CQUFvQixRQWUvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVRlbXBsYXRlRGlmZiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBEdXJhdGlvbiwgU2luZ2xlU3RhY2sgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBEaWZmZXJlbnQgdHlwZXMgb2YgcGVybWlzc2lvbiByZWxhdGVkIGNoYW5nZXMgaW4gYSBkaWZmXG4gKi9cbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgLyoqXG4gICAqIE5vIHBlcm1pc3Npb24gY2hhbmdlc1xuICAgKi9cbiAgTk9ORSA9ICdub25lJyxcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgYXJlIGJyb2FkZW5pbmdcbiAgICovXG4gIEJST0FERU5JTkcgPSAnYnJvYWRlbmluZycsXG5cbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIGFyZSBjaGFuZ2VkIGJ1dCBub3QgYnJvYWRlbmluZ1xuICAgKi9cbiAgTk9OX0JST0FERU5JTkcgPSAnbm9uLWJyb2FkZW5pbmcnLFxufVxuXG4vKipcbiAqIFRoZSBkaWZmIGZvcm1hdHRlZCBhcyBkaWZmZXJlbnQgdHlwZXMgb2Ygb3V0cHV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0dGVkRGlmZiB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgZGlmZiBmb3JtYXR0ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGRpZmY6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBkaWZmIGZvcm1hdHRlZCBhcyBhIHN0cmluZywgaWYgYW55XG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEaWZmIGluZm9ybWF0aW9uIGZvciBhIHNpbmdsZSBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGlmZiBleHRlbmRzIFNpbmdsZVN0YWNrIHtcbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBzdGFja3MgdGhhdCBoYXZlIGNoYW5nZXNcbiAgICogQ2FuIGJlIGhpZ2hlciB0aGFuIGAxYCBpZiB0aGUgc3RhY2sgaGFzIG5lc3RlZCBzdGFja3MuXG4gICAqL1xuICByZWFkb25seSBudW1TdGFja3NXaXRoQ2hhbmdlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUb3RhbCBudW1iZXIgb2Ygc3RhY2tzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGNoYW5nZXMuXG4gICAqIENhbiBiZSBoaWdoZXIgdGhhbiBgMWAgaWYgdGhlIHN0YWNrIGhhcyBuZXN0ZWQgc3RhY2tzLlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtU3RhY2tzV2l0aFNlY3VyaXR5Q2hhbmdlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdHJ1Y3R1cmFsIGRpZmYgb2YgdGhlIHN0YWNrXG4gICAqIENhbiBpbmNsdWRlIG1vcmUgdGhhbiBhIHNpbmdsZSBkaWZmIGlmIHRoZSBzdGFjayBoYXMgbmVzdGVkIHN0YWNrcy5cbiAgICovXG4gIHJlYWRvbmx5IGRpZmZzOiB7IFtuYW1lOiBzdHJpbmddOiBJVGVtcGxhdGVEaWZmIH07XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXR0ZWQgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogRm9ybWF0dGVkRGlmZjtcblxuICAvKipcbiAgICogRG9lcyB0aGUgZGlmZiBjb250YWluIGNoYW5nZXMgdG8gcGVybWlzc2lvbnMgYW5kIHdoYXQga2luZFxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbkNoYW5nZXM6IFBlcm1pc3Npb25DaGFuZ2VUeXBlO1xufVxuXG4vKipcbiAqIE91dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlJlc3VsdCBleHRlbmRzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBzdGFja3MgdGhhdCBoYXZlIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUb3RhbCBudW1iZXIgb2Ygc3RhY2tzIHRoYXQgaGF2ZSBzZWN1cml0eS1yZWxhdGVkIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG51bVN0YWNrc1dpdGhTZWN1cml0eUNoYW5nZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFN0cnVjdHVyYWwgZGlmZiBvZiBhbGwgc2VsZWN0ZWQgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBkaWZmczogeyBbbmFtZTogc3RyaW5nXTogSVRlbXBsYXRlRGlmZiB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkcmlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBEcmlmdFJlc3VsdCB9IGZyb20gJy4uL2FjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyaWZ0UmVzdWx0UGF5bG9hZCB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBjaGVja2VkIGZvciBkcmlmdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogVGhlIGRyaWZ0IHJlc3VsdCBmb3IgdGhpcyBzdGFjayBzcGVjaWZpY2FsbHlcbiAgICovXG4gIHJlYWRvbmx5IGRyaWZ0OiBEcmlmdFJlc3VsdDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhUmVxdWVzdCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFJlcXVlc3QgdG8gY29uZmlybSBvciBkZW55IHRoZSBkZWxldGlvbiBvZiBhbiBhc3NldHMgYmF0Y2ggbWFya2VkIGZvciBnYXJiYWdlIGNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRCYXRjaERlbGV0aW9uUmVxdWVzdCBleHRlbmRzIERhdGFSZXF1ZXN0IHtcbiAgcmVhZG9ubHkgYmF0Y2g6IHtcbiAgICByZWFkb25seSB0eXBlOiAnaW1hZ2UnIHwgJ29iamVjdCc7XG4gICAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgICByZWFkb25seSByb2xsYmFja0J1ZmZlckRheXM6IG51bWJlcjtcbiAgICByZWFkb25seSBjcmVhdGVkQnVmZmVyRGF5czogbnVtYmVyO1xuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonHotswappableReason = void 0;\nvar NonHotswappableReason;\n(function (NonHotswappableReason) {\n /**\n * Tags are not hotswappable\n */\n NonHotswappableReason[\"TAGS\"] = \"tags\";\n /**\n * Changed resource properties are not hotswappable on this resource type\n */\n NonHotswappableReason[\"PROPERTIES\"] = \"properties\";\n /**\n * A stack output has changed\n */\n NonHotswappableReason[\"OUTPUT\"] = \"output\";\n /**\n * A dependant resource is not hotswappable\n */\n NonHotswappableReason[\"DEPENDENCY_UNSUPPORTED\"] = \"dependency-unsupported\";\n /**\n * The resource type is not hotswappable\n */\n NonHotswappableReason[\"RESOURCE_UNSUPPORTED\"] = \"resource-unsupported\";\n /**\n * The resource is created in the deployment\n */\n NonHotswappableReason[\"RESOURCE_CREATION\"] = \"resource-creation\";\n /**\n * The resource is removed in the deployment\n */\n NonHotswappableReason[\"RESOURCE_DELETION\"] = \"resource-deletion\";\n /**\n * The resource identified by the logical id has its type changed\n */\n NonHotswappableReason[\"RESOURCE_TYPE_CHANGED\"] = \"resource-type-changed\";\n /**\n * The nested stack is created in the deployment\n */\n NonHotswappableReason[\"NESTED_STACK_CREATION\"] = \"nested-stack-creation\";\n})(NonHotswappableReason || (exports.NonHotswappableReason = NonHotswappableReason = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90c3dhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvdHN3YXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUZBLElBQVkscUJBcUNYO0FBckNELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsc0NBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsa0RBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCwwQ0FBaUIsQ0FBQTtJQUNqQjs7T0FFRztJQUNILDBFQUFpRCxDQUFBO0lBQ2pEOztPQUVHO0lBQ0gsc0VBQTZDLENBQUE7SUFDN0M7O09BRUc7SUFDSCxnRUFBdUMsQ0FBQTtJQUN2Qzs7T0FFRztJQUNILGdFQUF1QyxDQUFBO0lBQ3ZDOztPQUVHO0lBQ0gsd0VBQStDLENBQUE7SUFDL0M7O09BRUc7SUFDSCx3RUFBK0MsQ0FBQTtBQUNqRCxDQUFDLEVBckNXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBcUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlEaWZmZXJlbmNlLCBSZXNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBEdXJhdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZU1ldGFkYXRhIH0gZnJvbSAnLi4vYXBpL3Jlc291cmNlLW1ldGFkYXRhL3Jlc291cmNlLW1ldGFkYXRhJztcbmV4cG9ydCB0eXBlIHsgUmVzb3VyY2VNZXRhZGF0YSB9IGZyb20gJy4uL2FwaS9yZXNvdXJjZS1tZXRhZGF0YS9yZXNvdXJjZS1tZXRhZGF0YSc7XG5cbi8qKlxuICogQSByZXNvdXJjZSBhZmZlY3RlZCBieSBhIGNoYW5nZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFmZmVjdGVkUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIGFmZmVjdGVkIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gdHlwZSBvZiB0aGUgcmVzb3VyY2VcbiAgICogVGhpcyBjb3VsZCBiZSBhIGN1c3RvbSB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGFmZmVjdGVkIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB3aGVuIGRlcGxveWVkLlxuICAgKlxuICAgKiBBIHBoeXNpY2FsIG5hbWUgaXMgbm90IGFsd2F5cyBhdmFpbGFibGUsIGUuZy4gbmV3IHJlc291cmNlcyB3aWxsIG5vdCBoYXZlIG9uZSB1bnRpbCBhZnRlciB0aGUgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGh5c2ljYWxOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogUmVzb3VyY2UgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGxvZ2ljYWwgaWQgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IHByZXNlbnQgaWYgdGhlIHJlc291cmNlIGlzIHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgQ2xvdWQgQXNzZW1ibHksXG4gICAqIGkuZS4gcmVzb3VyY2UgZGVsZXRpb25zIHdpbGwgbm90IGhhdmUgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlc291cmNlTWV0YWRhdGE7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNoYW5nZSBpbiBhIHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDaGFuZ2Uge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlIHdoaWNoIGlzIGJlaW5nIGNoYW5nZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWxJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRoZSByZXNvdXJjZSBpcyBiZWluZyB1cGRhdGVkIGZyb21cbiAgICovXG4gIHJlYWRvbmx5IG9sZFZhbHVlOiBSZXNvdXJjZTtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0aGUgcmVzb3VyY2UgaXMgYmVpbmcgdXBkYXRlZCB0b1xuICAgKi9cbiAgcmVhZG9ubHkgbmV3VmFsdWU6IFJlc291cmNlO1xuICAvKipcbiAgICogVGhlIGNoYW5nZXMgbWFkZSB0byB0aGUgcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydHlVcGRhdGVzOiBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0eURpZmZlcmVuY2U8dW5rbm93bj4+O1xuICAvKipcbiAgICogUmVzb3VyY2UgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGxvZ2ljYWwgaWQgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IHByZXNlbnQgaWYgdGhlIHJlc291cmNlIGlzIHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgQ2xvdWQgQXNzZW1ibHksXG4gICAqIGkuZS4gcmVzb3VyY2UgZGVsZXRpb25zIHdpbGwgbm90IGhhdmUgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlc291cmNlTWV0YWRhdGE7XG59XG5cbi8qKlxuICogQSBjaGFuZ2UgdGhhdCBjYW4gYmUgaG90c3dhcHBlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvdHN3YXBwYWJsZUNoYW5nZSB7XG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgY2hhbmdlIHRoYXQgaXMgY2F1c2luZyB0aGUgaG90c3dhcC5cbiAgICovXG4gIHJlYWRvbmx5IGNhdXNlOiBSZXNvdXJjZUNoYW5nZTtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiByZXNvdXJjZXMgdGhhdCBhcmUgYmVpbmcgaG90c3dhcHBlZCBhcyBwYXJ0IG9mIHRoZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczogQWZmZWN0ZWRSZXNvdXJjZVtdO1xufVxuXG5leHBvcnQgZW51bSBOb25Ib3Rzd2FwcGFibGVSZWFzb24ge1xuICAvKipcbiAgICogVGFncyBhcmUgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgVEFHUyA9ICd0YWdzJyxcbiAgLyoqXG4gICAqIENoYW5nZWQgcmVzb3VyY2UgcHJvcGVydGllcyBhcmUgbm90IGhvdHN3YXBwYWJsZSBvbiB0aGlzIHJlc291cmNlIHR5cGVcbiAgICovXG4gIFBST1BFUlRJRVMgPSAncHJvcGVydGllcycsXG4gIC8qKlxuICAgKiBBIHN0YWNrIG91dHB1dCBoYXMgY2hhbmdlZFxuICAgKi9cbiAgT1VUUFVUID0gJ291dHB1dCcsXG4gIC8qKlxuICAgKiBBIGRlcGVuZGFudCByZXNvdXJjZSBpcyBub3QgaG90c3dhcHBhYmxlXG4gICAqL1xuICBERVBFTkRFTkNZX1VOU1VQUE9SVEVEID0gJ2RlcGVuZGVuY3ktdW5zdXBwb3J0ZWQnLFxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHR5cGUgaXMgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgUkVTT1VSQ0VfVU5TVVBQT1JURUQgPSAncmVzb3VyY2UtdW5zdXBwb3J0ZWQnLFxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGlzIGNyZWF0ZWQgaW4gdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIFJFU09VUkNFX0NSRUFUSU9OID0gJ3Jlc291cmNlLWNyZWF0aW9uJyxcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBpcyByZW1vdmVkIGluIHRoZSBkZXBsb3ltZW50XG4gICAqL1xuICBSRVNPVVJDRV9ERUxFVElPTiA9ICdyZXNvdXJjZS1kZWxldGlvbicsXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgaWRlbnRpZmllZCBieSB0aGUgbG9naWNhbCBpZCBoYXMgaXRzIHR5cGUgY2hhbmdlZFxuICAgKi9cbiAgUkVTT1VSQ0VfVFlQRV9DSEFOR0VEID0gJ3Jlc291cmNlLXR5cGUtY2hhbmdlZCcsXG4gIC8qKlxuICAgKiBUaGUgbmVzdGVkIHN0YWNrIGlzIGNyZWF0ZWQgaW4gdGhlIGRlcGxveW1lbnRcbiAgICovXG4gIE5FU1RFRF9TVEFDS19DUkVBVElPTiA9ICduZXN0ZWQtc3RhY2stY3JlYXRpb24nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlamVjdGlvblN1YmplY3Qge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlamVjdGlvbiBzdWJqZWN0LCBlLmcuIFJlc291cmNlIG9yIE91dHB1dFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9naWNhbCBJRCBvZiB0aGUgY2hhbmdlIHRoYXQgaXMgbm90IGhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZXNvdXJjZSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgbG9naWNhbCBpZCBmcm9tIHRoZSBjbG91ZCBhc3NlbWJseVxuICAgKlxuICAgKiBUaGlzIGlzIG9ubHkgcHJlc2VudCBpZiB0aGUgcmVzb3VyY2UgaXMgcHJlc2VudCBpbiB0aGUgY3VycmVudCBDbG91ZCBBc3NlbWJseSxcbiAgICogaS5lLiByZXNvdXJjZSBkZWxldGlvbnMgd2lsbCBub3QgaGF2ZSBtZXRhZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogUmVzb3VyY2VNZXRhZGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVN1YmplY3QgZXh0ZW5kcyBSZWplY3Rpb25TdWJqZWN0IHtcbiAgLyoqXG4gICAqIEEgcmVqZWN0ZWQgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6ICdSZXNvdXJjZSc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgcmVqZWN0ZWQgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgcHJvcGVydGllcyB0aGF0IGFyZSBjYXVzZSBmb3IgdGhlIHJlamVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcmVqZWN0ZWRQcm9wZXJ0aWVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0U3ViamVjdCBleHRlbmRzIFJlamVjdGlvblN1YmplY3Qge1xuICAvKipcbiAgICogQSByZWplY3RlZCBvdXRwdXRcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6ICdPdXRwdXQnO1xufVxuXG4vKipcbiAqIEEgY2hhbmdlIHRoYXQgY2FuIG5vdCBiZSBob3Rzd2FwcGVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9uSG90c3dhcHBhYmxlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBzdWJqZWN0IG9mIHRoZSBjaGFuZ2UgdGhhdCB3YXMgcmVqZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1YmplY3Q6IFJlc291cmNlU3ViamVjdCB8IE91dHB1dFN1YmplY3Q7XG4gIC8qKlxuICAgKiBXaHkgd2FzIHRoaXMgY2hhbmdlIHdhcyBkZWVtZWQgbm9uLWhvdHN3YXBwYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb247XG4gIC8qKlxuICAgKiBUZWxscyB0aGUgdXNlciBleGFjdGx5IHdoeSB0aGlzIGNoYW5nZSB3YXMgZGVlbWVkIG5vbi1ob3Rzd2FwcGFibGUgYW5kIHdoYXQgaXRzIGxvZ2ljYWwgSUQgaXMuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIGBkaXNwbGF5UmVhc29uYCBkZWZhdWx0IHRvIHN0YXRlIHRoYXQgdGhlIHByb3BlcnRpZXMgbGlzdGVkIGluIGByZWplY3RlZENoYW5nZXNgIGFyZSBub3QgaG90c3dhcHBhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQge1xuICAvKipcbiAgICogVGhlIHN0YWNrIHRoYXQncyBjdXJyZW50bHkgYmVpbmcgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RlIHRoZSBob3Rzd2FwIGRlcGxveW1lbnQgd2FzIGluaXRpYXRlZCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZTogJ2hvdHN3YXAtb25seScgfCAnZmFsbC1iYWNrJztcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGhvdHN3YXAgZGVwbG95bWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvdHN3YXBEZXBsb3ltZW50RGV0YWlscyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogVGhlIG1vZGUgdGhlIGhvdHN3YXAgZGVwbG95bWVudCB3YXMgaW5pdGlhdGVkIHdpdGguXG4gICAqL1xuICByZWFkb25seSBtb2RlOiAnaG90c3dhcC1vbmx5JyB8ICdmYWxsLWJhY2snO1xuICAvKipcbiAgICogVGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGRlZW1lZCBob3Rzd2FwcGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGhvdHN3YXBwYWJsZUNoYW5nZXM6IEhvdHN3YXBwYWJsZUNoYW5nZVtdO1xuICAvKipcbiAgICogVGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGRlZW1lZCBub3QgaG90c3dhcHBhYmxlXG4gICAqL1xuICByZWFkb25seSBub25Ib3Rzd2FwcGFibGVDaGFuZ2VzOiBOb25Ib3Rzd2FwcGFibGVDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGFuIGF0dGVtcHRlZCBob3Rzd2FwIGRlcGxveW1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUmVzdWx0IGV4dGVuZHMgRHVyYXRpb24sIEhvdHN3YXBEZXBsb3ltZW50RGV0YWlscyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIGhvdHN3YXBwaW5nIGhhcHBlbmVkIG9yIG5vdC5cbiAgICpcbiAgICogYGZhbHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVwbG95bWVudCBjb3VsZCBub3QgYmUgaG90c3dhcHBlZCBhbmQgZnVsbCBkZXBsb3ltZW50IG1heSBiZSBhdHRlbXB0ZWQgYXMgZmFsbGJhY2suXG4gICAqL1xuICByZWFkb25seSBob3Rzd2FwcGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgaG90c3dhcCBkZXBsb3ltZW50LCBpZiBhbnkuXG4gICAqXG4gICAqIFdoZW4gc2V0LCBgaG90c3dhcHBlZGAgd2lsbCBiZSBgZmFsc2VgLiBUaGUgZXJyb3IgaXMgY2FwdHVyZWQgc28gdGhhdFxuICAgKiB0aGUgaG90c3dhcCBzcGFuIGNhbiBiZSBlbmRlZCB3aXRoIGZ1bGwgY29udGV4dCBiZWZvcmUgcmUtdGhyb3dpbmcuXG4gICAqL1xuICByZWFkb25seSBlcnJvcj86IEVycm9yO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERhdGFSZXF1ZXN0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBwcm9wb3NlZCByZXNvdXJjZSBpbXBvcnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbXBvcnRSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSB0byBiZSBpbXBvcnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2U6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIGltcG9ydGVkIHJlc291cmNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgLyoqXG4gICAgICogQSBmb3JtYXR0YXRlZCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByb3BzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0cmluZ2lmaWVkUHJvcHM6IHN0cmluZztcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHJlc291cmNlIHRoYXQgbmVlZHMgdG8gYmUgaWRlbnRpZmllZCBkdXJpbmcgYW4gaW1wb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0IGV4dGVuZHMgRGF0YVJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIHJlc291cmNlIHRoYXQgbmVlZHMgdG8gYmUgaWRlbnRpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnN0cnVjdCBwYXRoIG9yIGxvZ2ljYWwgaWQgb2YgdGhlIHJlc291cmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiB0aGUgcmVzb3VyY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wZXJ0eSB0aGF0IHdlIHRyeSB0byBpZGVudGlmeSB0aGUgcmVzb3VyY2UgYnkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaWRQcm9wOiBzdHJpbmc7XG4gIH07XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./bootstrap-environment-progress\"), exports);\n__exportStar(require(\"./deploy\"), exports);\n__exportStar(require(\"./destroy\"), exports);\n__exportStar(require(\"./drift\"), exports);\n__exportStar(require(\"./list\"), exports);\n__exportStar(require(\"./sdk\"), exports);\n__exportStar(require(\"./context\"), exports);\n__exportStar(require(\"./rollback\"), exports);\n__exportStar(require(\"./stack-activity\"), exports);\n__exportStar(require(\"./synth\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./progress\"), exports);\n__exportStar(require(\"./publish-assets\"), exports);\n__exportStar(require(\"./refactor\"), exports);\n__exportStar(require(\"./watch\"), exports);\n__exportStar(require(\"./stack-details\"), exports);\n__exportStar(require(\"./diff\"), exports);\n__exportStar(require(\"./logs-monitor\"), exports);\n__exportStar(require(\"./hotswap\"), exports);\n__exportStar(require(\"./gc\"), exports);\n__exportStar(require(\"./import\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUVBQWlEO0FBQ2pELDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2Qix3Q0FBc0I7QUFDdEIsNENBQTBCO0FBQzFCLDZDQUEyQjtBQUMzQixtREFBaUM7QUFDakMsMENBQXdCO0FBQ3hCLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsbURBQWlDO0FBQ2pDLDZDQUEyQjtBQUMzQiwwQ0FBd0I7QUFDeEIsa0RBQWdDO0FBQ2hDLHlDQUF1QjtBQUN2QixpREFBK0I7QUFDL0IsNENBQTBCO0FBQzFCLHVDQUFxQjtBQUNyQiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jvb3RzdHJhcC1lbnZpcm9ubWVudC1wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3knO1xuZXhwb3J0ICogZnJvbSAnLi9kcmlmdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zZGsnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vcm9sbGJhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFjay1hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL3N5bnRoJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL3B1Ymxpc2gtYXNzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVmYWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi93YXRjaCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLWRldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vbG9ncy1tb25pdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vaG90c3dhcCc7XG5leHBvcnQgKiBmcm9tICcuL2djJztcbmV4cG9ydCAqIGZyb20gJy4vaW1wb3J0JztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tEZXRhaWxzIH0gZnJvbSAnLi9zdGFjay1kZXRhaWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0RldGFpbHNQYXlsb2FkIHtcbiAgcmVhZG9ubHkgc3RhY2tzOiBTdGFja0RldGFpbHNbXTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogUGF5bG9hZCB3aGVuIHN0YWNrIG1vbml0b3JpbmcgaXMgc3RhcnRpbmcgb3Igc3RvcHBpbmcgZm9yIGEgZ2l2ZW4gc3RhY2sgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIG1vbml0b3JcbiAgICpcbiAgICogVXNlIHRoaXMgdmFsdWUgdG8gYXR0cmlidXRlIGV2ZW50cyByZWNlaXZlZCBmb3IgY29uY3VycmVudCBsb2cgbW9uaXRvcmluZy5cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3I6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIG1vbml0b3JlZCBsb2cgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQ2xvdWRXYXRjaCBMb2cgRXZlbnQgdGhhdCB3aWxsIGJlXG4gKiBwcmludGVkIHRvIHRoZSB0ZXJtaW5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dFdmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGV2ZW50IG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvZyBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBldmVudCBvY2N1cnJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZXN0YW1wOiBEYXRlO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdGFja1Byb2dyZXNzIHtcbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcHJvZ3Jlc3MgbW9uaXRvcmVkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbXBsZXRlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBjb21wbGV0ZWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgcHJvZ3Jlc3MgYXMgYSBbMzQvNDJdIHN0cmluZywgb3IganVzdCBbMzRdIGlmIHRoZSB0b3RhbCBpcyB1bmtub3duLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkOiBzdHJpbmc7XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwdWJsaXNoLWFzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJ0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBBc3NldHNQYXlsb2FkIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgYXNzZXRzXG4gICAqL1xuICByZWFkb25seSBhc3NldHM6IElNYW5pZmVzdEVudHJ5W107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWZhY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUeXBlZE1hcHBpbmcgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcblxuLyoqXG4gKiBPdXRwdXQgb2YgdGhlIHJlZmFjdG9yIGNvbW1hbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZhY3RvclJlc3VsdCB7XG4gIC8qKlxuICAgKiBNYXBwaW5ncyBhbG9uZyB3aXRoIHRoZSByZXNvdXJjZSB0eXBlXG4gICAqL1xuICByZWFkb25seSB0eXBlZE1hcHBpbmdzPzogVHlwZWRNYXBwaW5nW107XG5cbiAgLyoqXG4gICAqIEFtYmlndW91cyBwYXRoIGNvcnJlc3BvbmRlbmNlcywgaWYgYW55XG4gICAqL1xuICBhbWJpZ3VvdXNQYXRocz86IFtzdHJpbmdbXSwgc3RyaW5nW11dW107XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyb2xsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrUm9sbGJhY2tQcm9ncmVzcyB7XG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHN0YWNrcyBiZWluZyByb2xsZWQgYmFja1xuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiB0aGUgc3RhY2sgY3VycmVudGx5IGF0dGVtcHRlZCB0byBiZSByb2xsZWQgYmFja1xuICAgKlxuICAgKiBUaGlzIGlzIGNvdW50aW5nIHZhbHVlLCBub3QgYW4gaWRlbnRpZmllci5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0aGF0J3MgY3VycmVudGx5IGJlaW5nIHJvbGxlZCBiYWNrXG4gICAqL1xuICByZWFkb25seSBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERhdGFSZXF1ZXN0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQW4gU0RLIGxvZ2dpbmcgdHJhY2UuXG4gKlxuICogT25seSBpbmZvLCB3YXJuIGFuZCBlcnJvciBsZXZlbCBtZXNzYWdlcyBhcmUgZW1pdHRlZC5cbiAqIFNESyB0cmFjZXMgYXJlIGVtaXR0ZWQgYXMgdHJhY2VzIHRvIHRoZSBJb0hvc3QsIGJ1dCBjb250YWluIHRoZSBvcmlnaW5hbCBTREsgbG9nZ2luZyBsZXZlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtUcmFjZSB7XG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgdGhlIFNESyBoYXMgZW1pdHRlZCB0aGUgb3JpZ2luYWwgbWVzc2FnZSB3aXRoXG4gICAqL1xuICByZWFkb25seSBzZGtMZXZlbDogJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJztcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIFNESyB0cmFjZVxuICAgKlxuICAgKiBUaGlzIHdpbGwgaW5jbHVkZSB0aGUgcmVxdWVzdCBhbmQgcmVzcG9uc2UgZGF0YSBmb3IgQVBJIGNhbGxzLCBpbmNsdWRpbmcgcG90ZW50aWFsbHkgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZGstZm9yLWphdmFzY3JpcHQvdjMvZGV2ZWxvcGVyLWd1aWRlL2xvZ2dpbmctc2RrLWNhbGxzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IGFueTtcbn1cblxuLyoqXG4gKiBHZXQgYW4gTUZBIHRva2VuIGZvciBhbiBNRkEgZGV2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1mYVRva2VuUmVxdWVzdCBleHRlbmRzIERhdGFSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIE1GQSBkZXZpY2UgYSB0b2tlbiBpcyByZXF1aXJlZCBmb3IuXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VBcm46IHN0cmluZztcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBTdGFja0V2ZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4vcHJvZ3Jlc3MnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZU1ldGFkYXRhIH0gZnJvbSAnLi4vYXBpL3Jlc291cmNlLW1ldGFkYXRhL3Jlc291cmNlLW1ldGFkYXRhJztcblxuLyoqXG4gKiBQYXlsb2FkIHdoZW4gc3RhY2sgbW9uaXRvcmluZyBpcyBzdGFydGluZyBvciBzdG9wcGluZyBmb3IgYSBnaXZlbiBzdGFjayBkZXBsb3ltZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIHNwZWNpZmljIHN0YWNrIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIFVzZSB0aGlzIHZhbHVlIHRvIGF0dHJpYnV0ZSBzdGFjayBhY3Rpdml0aWVzIHJlY2VpdmVkIGZvciBjb25jdXJyZW50IGRlcGxveW1lbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgYXJ0aWZhY3QgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgU3RhY2sgdGhhdCBpcyBnZXR0aW5nIGRlcGxveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVG90YWwgbnVtYmVyIG9mIHJlc291cmNlcyB0YWtpbmcgcGFydCBpbiB0aGlzIGRlcGxveW1lbnRcbiAgICpcbiAgICogVGhlIG51bWJlciBtaWdodCBub3QgYWx3YXlzIGJlIGtub3duIG9yIGFjY3VyYXRlLlxuICAgKiBPbmx5IHVzZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBhbmQgaGFuZGxlIHRoZSBjYXNlIHdoZW4gaXQncyB1bmF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlc1RvdGFsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQWN0aXZpdHkge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBzcGVjaWZpYyBzdGFjayBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBVc2UgdGhpcyB2YWx1ZSB0byBhdHRyaWJ1dGUgc3RhY2sgYWN0aXZpdGllcyByZWNlaXZlZCBmb3IgY29uY3VycmVudCBkZXBsb3ltZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFN0YWNrIEV2ZW50IGFzIHJlY2VpdmVkIGZyb20gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50OiBTdGFja0V2ZW50O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHJlc291cmNlIG1ldGFkYXRhXG4gICAqXG4gICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCBjbG91ZCBhc3NlbWJseS5cbiAgICogSS5lLiBubyBgbWV0YWRhdGFgIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBmb3IgcmVzb3VyY2UgZGVsZXRpb24gZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBSZXNvdXJjZU1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgcHJvZ3Jlc3NcbiAgICovXG4gIHJlYWRvbmx5IHByb2dyZXNzOiBTdGFja1Byb2dyZXNzO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stZGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWRldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcblxuLyoqXG4gKiBUaGUgZGVwZW5kZW5jaWVzIG9mIGEgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tEZXBlbmRlbmN5IHtcbiAgaWQ6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBTdGFja0RlcGVuZGVuY3lbXTtcbn1cblxuLyoqXG4gKiBEZXRhaWxzIG9mIGEgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tEZXRhaWxzIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIG1ldGFkYXRhPzogeyBbcGF0aDogc3RyaW5nXTogY3hzY2hlbWEuTWV0YWRhdGFFbnRyeVtdIH07XG4gIGRlcGVuZGVuY2llczogU3RhY2tEZXBlbmRlbmN5W107XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzeW50aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3N0YWNrLXNlbGVjdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlbGVjdGlvbkRldGFpbHMge1xuICAvKipcbiAgICogVGhlIHNlbGVjdGVkIHN0YWNrcywgaWYgYW55XG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IFN0YWNrU2VsZWN0b3I7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG4vKipcbiAqIEFzc2VtYmx5IGRhdGEgcmV0dXJuZWQgaW4gdGhlIHBheWxvYWQgb2YgYW4gSU8gTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURhdGEge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGFzc2VtYmx5IGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZW1ibHlEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzdGFja3MgYWN0aW9uZWQgb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrc0NvdW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrSWRzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBTdGFjayBkYXRhIHJldHVybmVkIGluIHRoZSBwYXlsb2FkIG9mIGFuIElPIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tEYXRhIHtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayBuYW1lXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YWNrIElEXG4gICAqL1xuICByZWFkb25seSBoaWVyYXJjaGljYWxJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlOiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0ZW1wbGF0ZSBjb252ZXJ0ZWQgdG8gSlNPTiBmb3JtYXRcbiAgICovXG4gIHJlYWRvbmx5IHN0cmluZ2lmaWVkSnNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGVtcGxhdGUgY29udmVydGVkIHRvIFlBTUwgZm9ybWF0XG4gICAqL1xuICByZWFkb25seSBzdHJpbmdpZmllZFlhbWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdGFjayBkYXRhIHJldHVybmVkIGluIHRoZSBwYXlsb2FkIG9mIGFuIElPIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tBbmRBc3NlbWJseURhdGEgZXh0ZW5kcyBBc3NlbWJseURhdGEge1xuICAvKipcbiAgICogU3RhY2sgRGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IFN0YWNrRGF0YTtcbn1cblxuLyoqXG4gKiBBIHBheWxvYWQgaWRlbnRpZnlpbmcgYSBzaW5nbGUgc3RhY2tzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlU3RhY2sge1xuICAvKipcbiAgICogQSBzaW5nbGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG59XG5cbi8qKlxuICogRHVyYXRpb24gaW5mb3JtYXRpb24gcmV0dXJuZWQgaW4gdGhlIHBheWxvYWQgb2YgYW4gSU8gTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEdXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIGFjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogR2VuZXJpYyBwYXlsb2FkIG9mIGVycm9yIElvTWVzc2FnZXMgdGhhdCBwYXNzIG9uIGFuIGluc3RhbmNlIG9mIGBFcnJvcmBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFcnJvclBheWxvYWQge1xuICAvKipcbiAgICogVGhlIGVycm9yIHRoYXQgb2NjdXJyZWRcbiAgICovXG4gIHJlYWRvbmx5IGVycm9yOiBFcnJvcjtcbn1cblxuLyoqXG4gKiBPcGVyYXRpb24gaW5mb3JtYXRpb24gdGhhdCAqZGVmaW5pdGVseSogdG9vayB0aW1lLCBhbmQgKm1heWJlKiBwcm9kdWNlZCBhbiBlcnJvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbiBleHRlbmRzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHksIGFuIGVycm9yIHRoYXQgb2NjdXJyZWRcbiAgICovXG4gIHJlYWRvbmx5IGVycm9yPzogRXJyb3I7XG59XG5cbi8qKlxuICogR2VuZXJpYyBwYXlsb2FkIG9mIGEgc2ltcGxlIHllcy9ubyBxdWVzdGlvbi5cbiAqXG4gKiBUaGUgZXhwZWN0YXRpb24gaXMgdGhhdCAneWVzJyBtZWFucyBtb3Zpbmcgb24sXG4gKiBhbmQgJ25vJyBtZWFucyBhYm9ydGluZyB0aGUgY3VycmVudCBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybWF0aW9uUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBTb21lIGFkZGl0aW9uYWwgbW90aXZhdGlvbiBmb3IgdGhlIGNvbmZpcm1hdGlvbiB0aGF0IG1heSBiZSB1c2VkIGFzIGNvbnRleHQgZm9yIHRoZSB1c2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgbW90aXZhdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIG9uLWdvaW5nIGNvbmN1cnJlbnQgb3BlcmF0aW9uc1xuICAgKiBJZiBtb3JlIHRoYW4gb25lIG9wZXJhdGlvbnMgaXMgb24tZ29pbmcsIGEgY2xpZW50IG1pZ2h0IGRlY2lkZSB0aGF0IGFza2luZyB0aGUgdXNlclxuICAgKiBmb3IgaW5wdXQgaXMgdG9vIGNvbXBsZXgsIGFzIHRoZSBjb25maXJtYXRpb24gbWlnaHQgbm90IGVhc2lseSBiZSBhdHRyaWJ1dGVkIHRvIGEgc3BlY2lmaWMgcmVxdWVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjb25jdXJyZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVuY3k/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQSBnZW5lcmljIHJlcXVlc3QgZm9yIGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgZXhwZWN0ZWQgcmVzcG9uc2VcbiAgICogUHJvdmlkZXMgYWRkaXRpb25hbCBkZXRhaWxzIG9uIHdoYXQgdGhlIHJlc3BvbnNlIGNhbiBiZS5cbiAgICogVGhpcyBjYW4gYmUgdHJlYXRlZCBhcyBhIGRpcmVjdCBpbnN0cnVjdGlvbiB0byBlbmQtdXNlcnMgd2hlbiBwcm9tcHRpbmcgZm9yIGlucHV0LlxuICAgKi9cbiAgcmVzcG9uc2VEZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb250ZXh0IHByb3ZpZGVyIHNlbmRpbmcgdGhlIG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3YXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY29tcHV0ZWQgZmlsZSB3YXRjaCBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoU2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSBvYnNlcnZlZCBmb3IgZmlsZSBjaGFuZ2VzXG4gICAqL1xuICByZWFkb25seSB3YXRjaERpcjogc3RyaW5nO1xuICAvKipcbiAgICogTGlzdCBvZiBpbmNsdWRlIHBhdHRlcm5zIGZvciB3YXRjaGluZyBmaWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogTGlzdCBvZiBleGNsdWRlcyBwYXR0ZXJucyBmb3Igd2F0Y2hpbmcgZmlsZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlV2F0Y2hFdmVudCB7XG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIHRvIHRoZSBwYXRoXG4gICAqL1xuICByZWFkb25seSBldmVudDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCBoYXMgYW4gb2JzZXJ2ZWQgZXZlbnRcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActivityPrinterBase = void 0;\nconst private_1 = require(\"../../api/io/private\");\nconst util_1 = require(\"../../util\");\nclass ActivityPrinterBase {\n props;\n static TIMESTAMP_WIDTH = 12;\n static STATUS_WIDTH = 20;\n /**\n * Stream to write to\n */\n stream;\n /**\n * The with of the \"resource type\" column.\n */\n resourceTypeColumnWidth = (0, util_1.maxResourceTypeLength)({});\n /**\n * A list of resource IDs which are currently being processed\n */\n resourcesInProgress = {};\n stackProgress;\n rollingBack = false;\n failures = new Array();\n hookFailureMap = new Map();\n constructor(props) {\n this.props = props;\n this.stream = props.stream;\n }\n /**\n * Receive a stack activity message\n */\n notify(msg) {\n switch (true) {\n case private_1.IO.CDK_TOOLKIT_I5501.is(msg):\n this.start(msg.data);\n break;\n case private_1.IO.CDK_TOOLKIT_I5502.is(msg):\n this.activity(msg.data);\n break;\n case private_1.IO.CDK_TOOLKIT_I5503.is(msg):\n this.stop();\n break;\n default:\n // ignore all other messages\n break;\n }\n }\n start({ stack }) {\n this.resourceTypeColumnWidth = (0, util_1.maxResourceTypeLength)(stack.template);\n }\n activity(activity) {\n // process the activity and then call print\n this.addActivity(activity);\n this.print();\n }\n stop() {\n // final print after the stack is done\n this.print();\n }\n addActivity(activity) {\n const status = activity.event.ResourceStatus;\n const hookStatus = activity.event.HookStatus;\n const hookType = activity.event.HookType;\n if (!status || !activity.event.LogicalResourceId) {\n return;\n }\n this.stackProgress = activity.progress;\n if (status === 'ROLLBACK_IN_PROGRESS' || status === 'UPDATE_ROLLBACK_IN_PROGRESS') {\n // Only triggered on the stack once we've started doing a rollback\n this.rollingBack = true;\n }\n if (status.endsWith('_IN_PROGRESS')) {\n this.resourcesInProgress[activity.event.LogicalResourceId] = activity;\n }\n if ((0, util_1.isErrorEvent)(activity.event)) {\n // Cancelled is not an interesting failure reason, and we also don't care about root stack events\n // (but we DO care about nested stack events, historically, so I will leave that behavior now)\n if (!(0, util_1.isCancellationEvent)(activity.event) && !(0, util_1.isRootStackEvent)(activity.event)) {\n this.failures.push(activity);\n }\n }\n if (status.endsWith('_COMPLETE') || status.endsWith('_FAILED')) {\n delete this.resourcesInProgress[activity.event.LogicalResourceId];\n }\n if (hookStatus !== undefined &&\n hookStatus.endsWith('_COMPLETE_FAILED') &&\n activity.event.LogicalResourceId !== undefined &&\n hookType !== undefined) {\n if (this.hookFailureMap.has(activity.event.LogicalResourceId)) {\n this.hookFailureMap.get(activity.event.LogicalResourceId)?.set(hookType, activity.event.HookStatusReason ?? '');\n }\n else {\n this.hookFailureMap.set(activity.event.LogicalResourceId, new Map());\n this.hookFailureMap.get(activity.event.LogicalResourceId)?.set(hookType, activity.event.HookStatusReason ?? '');\n }\n }\n }\n failureReason(activity) {\n const resourceStatusReason = activity.event.ResourceStatusReason ?? '';\n const logicalResourceId = activity.event.LogicalResourceId ?? '';\n const hookFailureReasonMap = this.hookFailureMap.get(logicalResourceId);\n if (hookFailureReasonMap !== undefined) {\n for (const hookType of hookFailureReasonMap.keys()) {\n if (resourceStatusReason.includes(hookType)) {\n return resourceStatusReason + ' : ' + hookFailureReasonMap.get(hookType);\n }\n }\n }\n return resourceStatusReason;\n }\n /**\n * Is the activity a meta activity for the stack itself.\n */\n isActivityForTheStack(activity) {\n return activity.event.PhysicalResourceId === activity.event.StackId;\n }\n}\nexports.ActivityPrinterBase = ActivityPrinterBase;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsa0RBQTBDO0FBRTFDLHFDQUF3RztBQWF4RyxNQUFzQixtQkFBbUI7SUEyQlI7SUExQnJCLE1BQU0sQ0FBVSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBVSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRTVDOztPQUVHO0lBQ2dCLE1BQU0sQ0FBcUI7SUFFOUM7O09BRUc7SUFDTyx1QkFBdUIsR0FBVyxJQUFBLDRCQUFxQixFQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRFOztPQUVHO0lBQ08sbUJBQW1CLEdBQWtDLEVBQUUsQ0FBQztJQUV4RCxhQUFhLENBQWlCO0lBRTlCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFWCxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7SUFFL0MsY0FBYyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO0lBRWxFLFlBQStCLEtBQTJCO1FBQTNCLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBSUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBdUI7UUFDbkMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssWUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBQ1IsS0FBSyxZQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsR0FB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IHR5cGUgeyBDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2UgfSBmcm9tICcuLi8uLi9hcGkvaW8nO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi8uLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyB0eXBlIFN0YWNrQWN0aXZpdHksIHR5cGUgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IGlzQ2FuY2VsbGF0aW9uRXZlbnQsIGlzRXJyb3JFdmVudCwgaXNSb290U3RhY2tFdmVudCwgbWF4UmVzb3VyY2VUeXBlTGVuZ3RoIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFjdGl2aXR5UHJpbnRlciB7XG4gIG5vdGlmeShtc2c6IElvTWVzc2FnZTx1bmtub3duPik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlQcmludGVyUHJvcHMge1xuICAvKipcbiAgICogU3RyZWFtIHRvIHdyaXRlIHRvXG4gICAqL1xuICByZWFkb25seSBzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGl2aXR5UHJpbnRlckJhc2UgaW1wbGVtZW50cyBJQWN0aXZpdHlQcmludGVyIHtcbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBUSU1FU1RBTVBfV0lEVEggPSAxMjtcbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBTVEFUVVNfV0lEVEggPSAyMDtcblxuICAvKipcbiAgICogU3RyZWFtIHRvIHdyaXRlIHRvXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RyZWFtOiBOb2RlSlMuV3JpdGVTdHJlYW07XG5cbiAgLyoqXG4gICAqIFRoZSB3aXRoIG9mIHRoZSBcInJlc291cmNlIHR5cGVcIiBjb2x1bW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb3VyY2VUeXBlQ29sdW1uV2lkdGg6IG51bWJlciA9IG1heFJlc291cmNlVHlwZUxlbmd0aCh7fSk7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiByZXNvdXJjZSBJRHMgd2hpY2ggYXJlIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWRcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZXNJblByb2dyZXNzOiBSZWNvcmQ8c3RyaW5nLCBTdGFja0FjdGl2aXR5PiA9IHt9O1xuXG4gIHByb3RlY3RlZCBzdGFja1Byb2dyZXNzPzogU3RhY2tQcm9ncmVzcztcblxuICBwcm90ZWN0ZWQgcm9sbGluZ0JhY2sgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFpbHVyZXMgPSBuZXcgQXJyYXk8U3RhY2tBY3Rpdml0eT4oKTtcblxuICBwcm90ZWN0ZWQgaG9va0ZhaWx1cmVNYXAgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcHJvcHM6IEFjdGl2aXR5UHJpbnRlclByb3BzKSB7XG4gICAgdGhpcy5zdHJlYW0gPSBwcm9wcy5zdHJlYW07XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJpbnQoKTogdm9pZDtcblxuICAvKipcbiAgICogUmVjZWl2ZSBhIHN0YWNrIGFjdGl2aXR5IG1lc3NhZ2VcbiAgICovXG4gIHB1YmxpYyBub3RpZnkobXNnOiBJb01lc3NhZ2U8dW5rbm93bj4pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgSU8uQ0RLX1RPT0xLSVRfSTU1MDEuaXMobXNnKTpcbiAgICAgICAgdGhpcy5zdGFydChtc2cuZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBJTy5DREtfVE9PTEtJVF9JNTUwMi5pcyhtc2cpOlxuICAgICAgICB0aGlzLmFjdGl2aXR5KG1zZy5kYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIElPLkNES19UT09MS0lUX0k1NTAzLmlzKG1zZyk6XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIGlnbm9yZSBhbGwgb3RoZXIgbWVzc2FnZXNcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXJ0KHsgc3RhY2sgfTogeyBzdGFjazogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0IH0pIHtcbiAgICB0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoID0gbWF4UmVzb3VyY2VUeXBlTGVuZ3RoKHN0YWNrLnRlbXBsYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpdml0eShhY3Rpdml0eTogU3RhY2tBY3Rpdml0eSkge1xuICAgIC8vIHByb2Nlc3MgdGhlIGFjdGl2aXR5IGFuZCB0aGVuIGNhbGwgcHJpbnRcbiAgICB0aGlzLmFkZEFjdGl2aXR5KGFjdGl2aXR5KTtcbiAgICB0aGlzLnByaW50KCk7XG4gIH1cblxuICBwdWJsaWMgc3RvcCgpIHtcbiAgICAvLyBmaW5hbCBwcmludCBhZnRlciB0aGUgc3RhY2sgaXMgZG9uZVxuICAgIHRoaXMucHJpbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRBY3Rpdml0eShhY3Rpdml0eTogU3RhY2tBY3Rpdml0eSkge1xuICAgIGNvbnN0IHN0YXR1cyA9IGFjdGl2aXR5LmV2ZW50LlJlc291cmNlU3RhdHVzO1xuICAgIGNvbnN0IGhvb2tTdGF0dXMgPSBhY3Rpdml0eS5ldmVudC5Ib29rU3RhdHVzO1xuICAgIGNvbnN0IGhvb2tUeXBlID0gYWN0aXZpdHkuZXZlbnQuSG9va1R5cGU7XG4gICAgaWYgKCFzdGF0dXMgfHwgIWFjdGl2aXR5LmV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFja1Byb2dyZXNzID0gYWN0aXZpdHkucHJvZ3Jlc3M7XG5cbiAgICBpZiAoc3RhdHVzID09PSAnUk9MTEJBQ0tfSU5fUFJPR1JFU1MnIHx8IHN0YXR1cyA9PT0gJ1VQREFURV9ST0xMQkFDS19JTl9QUk9HUkVTUycpIHtcbiAgICAgIC8vIE9ubHkgdHJpZ2dlcmVkIG9uIHRoZSBzdGFjayBvbmNlIHdlJ3ZlIHN0YXJ0ZWQgZG9pbmcgYSByb2xsYmFja1xuICAgICAgdGhpcy5yb2xsaW5nQmFjayA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJykpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzc1thY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF0gPSBhY3Rpdml0eTtcbiAgICB9XG5cbiAgICBpZiAoaXNFcnJvckV2ZW50KGFjdGl2aXR5LmV2ZW50KSkge1xuICAgICAgLy8gQ2FuY2VsbGVkIGlzIG5vdCBhbiBpbnRlcmVzdGluZyBmYWlsdXJlIHJlYXNvbiwgYW5kIHdlIGFsc28gZG9uJ3QgY2FyZSBhYm91dCByb290IHN0YWNrIGV2ZW50c1xuICAgICAgLy8gKGJ1dCB3ZSBETyBjYXJlIGFib3V0IG5lc3RlZCBzdGFjayBldmVudHMsIGhpc3RvcmljYWxseSwgc28gSSB3aWxsIGxlYXZlIHRoYXQgYmVoYXZpb3Igbm93KVxuICAgICAgaWYgKCFpc0NhbmNlbGxhdGlvbkV2ZW50KGFjdGl2aXR5LmV2ZW50KSAmJiAhaXNSb290U3RhY2tFdmVudChhY3Rpdml0eS5ldmVudCkpIHtcbiAgICAgICAgdGhpcy5mYWlsdXJlcy5wdXNoKGFjdGl2aXR5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdHVzLmVuZHNXaXRoKCdfQ09NUExFVEUnKSB8fCBzdGF0dXMuZW5kc1dpdGgoJ19GQUlMRUQnKSkge1xuICAgICAgZGVsZXRlIHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzc1thY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF07XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaG9va1N0YXR1cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGhvb2tTdGF0dXMuZW5kc1dpdGgoJ19DT01QTEVURV9GQUlMRUQnKSAmJlxuICAgICAgICBhY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGhvb2tUeXBlICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLmhvb2tGYWlsdXJlTWFwLmhhcyhhY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCkpIHtcbiAgICAgICAgdGhpcy5ob29rRmFpbHVyZU1hcC5nZXQoYWN0aXZpdHkuZXZlbnQuTG9naWNhbFJlc291cmNlSWQpPy5zZXQoaG9va1R5cGUsIGFjdGl2aXR5LmV2ZW50Lkhvb2tTdGF0dXNSZWFzb24gPz8gJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ob29rRmFpbHVyZU1hcC5zZXQoYWN0aXZpdHkuZXZlbnQuTG9naWNhbFJlc291cmNlSWQsIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpO1xuICAgICAgICB0aGlzLmhvb2tGYWlsdXJlTWFwLmdldChhY3Rpdml0eS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCk/LnNldChob29rVHlwZSwgYWN0aXZpdHkuZXZlbnQuSG9va1N0YXR1c1JlYXNvbiA/PyAnJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGZhaWx1cmVSZWFzb24oYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICBjb25zdCByZXNvdXJjZVN0YXR1c1JlYXNvbiA9IGFjdGl2aXR5LmV2ZW50LlJlc291cmNlU3RhdHVzUmVhc29uID8/ICcnO1xuICAgIGNvbnN0IGxvZ2ljYWxSZXNvdXJjZUlkID0gYWN0aXZpdHkuZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPz8gJyc7XG4gICAgY29uc3QgaG9va0ZhaWx1cmVSZWFzb25NYXAgPSB0aGlzLmhvb2tGYWlsdXJlTWFwLmdldChsb2dpY2FsUmVzb3VyY2VJZCk7XG5cbiAgICBpZiAoaG9va0ZhaWx1cmVSZWFzb25NYXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBob29rVHlwZSBvZiBob29rRmFpbHVyZVJlYXNvbk1hcC5rZXlzKCkpIHtcbiAgICAgICAgaWYgKHJlc291cmNlU3RhdHVzUmVhc29uLmluY2x1ZGVzKGhvb2tUeXBlKSkge1xuICAgICAgICAgIHJldHVybiByZXNvdXJjZVN0YXR1c1JlYXNvbiArICcgOiAnICsgaG9va0ZhaWx1cmVSZWFzb25NYXAuZ2V0KGhvb2tUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2VTdGF0dXNSZWFzb247XG4gIH1cblxuICAvKipcbiAgICogSXMgdGhlIGFjdGl2aXR5IGEgbWV0YSBhY3Rpdml0eSBmb3IgdGhlIHN0YWNrIGl0c2VsZi5cbiAgICovXG4gIHByb3RlY3RlZCBpc0FjdGl2aXR5Rm9yVGhlU3RhY2soYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICByZXR1cm4gYWN0aXZpdHkuZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkID09PSBhY3Rpdml0eS5ldmVudC5TdGFja0lkO1xuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CurrentActivityPrinter = void 0;\nconst util = require(\"util\");\nconst chalk = require(\"chalk\");\nconst base_1 = require(\"./base\");\nconst display_1 = require(\"./display\");\nconst util_1 = require(\"../../util\");\n/**\n * Activity Printer which shows the resources currently being updated\n *\n * It will continuously re-update the terminal and show only the resources\n * that are currently being updated, in addition to a progress bar which\n * shows how far along the deployment is.\n *\n * Resources that have failed will always be shown, and will be recapitulated\n * along with their stack trace when the monitoring ends.\n *\n * Resources that failed deployment because they have been cancelled are\n * not included.\n */\nclass CurrentActivityPrinter extends base_1.ActivityPrinterBase {\n /**\n * Continuously write to the same output block.\n */\n block;\n constructor(props) {\n super(props);\n this.block = new display_1.RewritableBlock(this.stream);\n }\n print() {\n const lines = [];\n // Add a progress bar at the top\n const progressWidth = Math.max(Math.min((this.block.width ?? 80) - PROGRESSBAR_EXTRA_SPACE - 1, MAX_PROGRESSBAR_WIDTH), MIN_PROGRESSBAR_WIDTH);\n const prog = this.progressBar(progressWidth);\n if (prog) {\n lines.push(' ' + prog, '');\n }\n // Normally we'd only print \"resources in progress\", but it's also useful\n // to keep an eye on the failures and know about the specific errors asquickly\n // as possible (while the stack is still rolling back), so add those in.\n const toPrint = [...this.failures, ...Object.values(this.resourcesInProgress)];\n toPrint.sort((a, b) => a.event.Timestamp.getTime() - b.event.Timestamp.getTime());\n lines.push(...toPrint.map((res) => {\n const color = colorFromStatusActivity(res.event.ResourceStatus);\n const resourceName = res.metadata?.constructPath ?? res.event.LogicalResourceId ?? '';\n return util.format('%s | %s | %s | %s%s', (0, util_1.padLeft)(CurrentActivityPrinter.TIMESTAMP_WIDTH, new Date(res.event.Timestamp).toLocaleTimeString()), color((0, util_1.padRight)(CurrentActivityPrinter.STATUS_WIDTH, (res.event.ResourceStatus || '').slice(0, CurrentActivityPrinter.STATUS_WIDTH))), (0, util_1.padRight)(this.resourceTypeColumnWidth, res.event.ResourceType || ''), color(chalk.bold(shorten(40, resourceName))), this.failureReasonOnNextLine(res));\n }));\n this.block.displayLines(lines);\n }\n stop() {\n super.stop();\n // Print failures at the end\n const lines = new Array();\n for (const failure of this.failures) {\n // Root stack failures are not interesting\n if (this.isActivityForTheStack(failure)) {\n continue;\n }\n lines.push(util.format(chalk.red('%s | %s | %s | %s%s') + '\\n', (0, util_1.padLeft)(CurrentActivityPrinter.TIMESTAMP_WIDTH, new Date(failure.event.Timestamp).toLocaleTimeString()), (0, util_1.padRight)(CurrentActivityPrinter.STATUS_WIDTH, (failure.event.ResourceStatus || '').slice(0, CurrentActivityPrinter.STATUS_WIDTH)), (0, util_1.padRight)(this.resourceTypeColumnWidth, failure.event.ResourceType || ''), shorten(40, failure.event.LogicalResourceId ?? ''), this.failureReasonOnNextLine(failure)));\n const trace = failure.metadata?.entry?.trace;\n if (trace) {\n lines.push(chalk.red(`\\t${trace.join('\\n\\t\\\\_ ')}\\n`));\n }\n }\n // Display in the same block space, otherwise we're going to have silly empty lines.\n this.block.displayLines(lines);\n this.block.removeEmptyLines();\n }\n progressBar(width) {\n if (!this.stackProgress || !this.stackProgress.total) {\n return '';\n }\n const fraction = Math.min(this.stackProgress.completed / this.stackProgress.total, 1);\n const innerWidth = Math.max(1, width - 2);\n const chars = innerWidth * fraction;\n const remainder = chars - Math.floor(chars);\n const fullChars = FULL_BLOCK.repeat(Math.floor(chars));\n const partialChar = PARTIAL_BLOCK[Math.floor(remainder * PARTIAL_BLOCK.length)];\n const filler = '·'.repeat(innerWidth - Math.floor(chars) - (partialChar ? 1 : 0));\n const color = this.rollingBack ? chalk.yellow : chalk.green;\n return '[' + color(fullChars + partialChar) + filler + `] (${this.stackProgress.completed}/${this.stackProgress.total})`;\n }\n failureReasonOnNextLine(activity) {\n return (0, util_1.isErrorEvent)(activity.event)\n ? `\\n${' '.repeat(CurrentActivityPrinter.TIMESTAMP_WIDTH + CurrentActivityPrinter.STATUS_WIDTH + 6)}${chalk.red(this.failureReason(activity) ?? '')}`\n : '';\n }\n}\nexports.CurrentActivityPrinter = CurrentActivityPrinter;\nconst FULL_BLOCK = '█';\nconst PARTIAL_BLOCK = ['', '▏', '▎', '▍', '▌', '▋', '▊', '▉'];\nconst MAX_PROGRESSBAR_WIDTH = 60;\nconst MIN_PROGRESSBAR_WIDTH = 10;\nconst PROGRESSBAR_EXTRA_SPACE = 2 /* leading spaces */ + 2 /* brackets */ + 4 /* progress number decoration */ + 6; /* 2 progress numbers up to 999 */\nfunction colorFromStatusActivity(status) {\n if (!status) {\n return chalk.reset;\n }\n if (status.endsWith('_FAILED')) {\n return chalk.red;\n }\n if (status.startsWith('CREATE_') || status.startsWith('UPDATE_') || status.startsWith('IMPORT_')) {\n return chalk.green;\n }\n // For stacks, it may also be 'UPDDATE_ROLLBACK_IN_PROGRESS'\n if (status.indexOf('ROLLBACK_') !== -1) {\n return chalk.yellow;\n }\n if (status.startsWith('DELETE_')) {\n return chalk.yellow;\n }\n return chalk.reset;\n}\nfunction shorten(maxWidth, p) {\n if (p.length <= maxWidth) {\n return p;\n }\n const half = Math.floor((maxWidth - 3) / 2);\n return p.slice(0, half) + '...' + p.slice(-half);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImN1cnJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFDN0MsdUNBQTRDO0FBRTVDLHFDQUE2RDtBQUU3RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDBCQUFtQjtJQUM3RDs7T0FFRztJQUNLLEtBQUssQ0FBa0I7SUFFL0IsWUFBWSxLQUEyQjtRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkseUJBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLEtBQUs7UUFDYixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsZ0NBQWdDO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyx1QkFBdUIsR0FBRyxDQUFDLEVBQUUscUJBQXFCLENBQUMsRUFDdkYscUJBQXFCLENBQ3RCLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELHlFQUF5RTtRQUN6RSw4RUFBOEU7UUFDOUUsd0VBQXdFO1FBQ3hFLE1BQU0sT0FBTyxHQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNoRyxPQUFP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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFjdGl2aXR5UHJpbnRlclByb3BzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFjdGl2aXR5UHJpbnRlckJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgUmV3cml0YWJsZUJsb2NrIH0gZnJvbSAnLi9kaXNwbGF5JztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB7IGlzRXJyb3JFdmVudCwgcGFkTGVmdCwgcGFkUmlnaHQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBBY3Rpdml0eSBQcmludGVyIHdoaWNoIHNob3dzIHRoZSByZXNvdXJjZXMgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWRcbiAqXG4gKiBJdCB3aWxsIGNvbnRpbnVvdXNseSByZS11cGRhdGUgdGhlIHRlcm1pbmFsIGFuZCBzaG93IG9ubHkgdGhlIHJlc291cmNlc1xuICogdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIHVwZGF0ZWQsIGluIGFkZGl0aW9uIHRvIGEgcHJvZ3Jlc3MgYmFyIHdoaWNoXG4gKiBzaG93cyBob3cgZmFyIGFsb25nIHRoZSBkZXBsb3ltZW50IGlzLlxuICpcbiAqIFJlc291cmNlcyB0aGF0IGhhdmUgZmFpbGVkIHdpbGwgYWx3YXlzIGJlIHNob3duLCBhbmQgd2lsbCBiZSByZWNhcGl0dWxhdGVkXG4gKiBhbG9uZyB3aXRoIHRoZWlyIHN0YWNrIHRyYWNlIHdoZW4gdGhlIG1vbml0b3JpbmcgZW5kcy5cbiAqXG4gKiBSZXNvdXJjZXMgdGhhdCBmYWlsZWQgZGVwbG95bWVudCBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuIGNhbmNlbGxlZCBhcmVcbiAqIG5vdCBpbmNsdWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1cnJlbnRBY3Rpdml0eVByaW50ZXIgZXh0ZW5kcyBBY3Rpdml0eVByaW50ZXJCYXNlIHtcbiAgLyoqXG4gICAqIENvbnRpbnVvdXNseSB3cml0ZSB0byB0aGUgc2FtZSBvdXRwdXQgYmxvY2suXG4gICAqL1xuICBwcml2YXRlIGJsb2NrOiBSZXdyaXRhYmxlQmxvY2s7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEFjdGl2aXR5UHJpbnRlclByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuYmxvY2sgPSBuZXcgUmV3cml0YWJsZUJsb2NrKHRoaXMuc3RyZWFtKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmludCgpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuXG4gICAgLy8gQWRkIGEgcHJvZ3Jlc3MgYmFyIGF0IHRoZSB0b3BcbiAgICBjb25zdCBwcm9ncmVzc1dpZHRoID0gTWF0aC5tYXgoXG4gICAgICBNYXRoLm1pbigodGhpcy5ibG9jay53aWR0aCA/PyA4MCkgLSBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSAtIDEsIE1BWF9QUk9HUkVTU0JBUl9XSURUSCksXG4gICAgICBNSU5fUFJPR1JFU1NCQVJfV0lEVEgsXG4gICAgKTtcbiAgICBjb25zdCBwcm9nID0gdGhpcy5wcm9ncmVzc0Jhcihwcm9ncmVzc1dpZHRoKTtcbiAgICBpZiAocHJvZykge1xuICAgICAgbGluZXMucHVzaCgnICAnICsgcHJvZywgJycpO1xuICAgIH1cblxuICAgIC8vIE5vcm1hbGx5IHdlJ2Qgb25seSBwcmludCBcInJlc291cmNlcyBpbiBwcm9ncmVzc1wiLCBidXQgaXQncyBhbHNvIHVzZWZ1bFxuICAgIC8vIHRvIGtlZXAgYW4gZXllIG9uIHRoZSBmYWlsdXJlcyBhbmQga25vdyBhYm91dCB0aGUgc3BlY2lmaWMgZXJyb3JzIGFzcXVpY2tseVxuICAgIC8vIGFzIHBvc3NpYmxlICh3aGlsZSB0aGUgc3RhY2sgaXMgc3RpbGwgcm9sbGluZyBiYWNrKSwgc28gYWRkIHRob3NlIGluLlxuICAgIGNvbnN0IHRvUHJpbnQ6IFN0YWNrQWN0aXZpdHlbXSA9IFsuLi50aGlzLmZhaWx1cmVzLCAuLi5PYmplY3QudmFsdWVzKHRoaXMucmVzb3VyY2VzSW5Qcm9ncmVzcyldO1xuICAgIHRvUHJpbnQuc29ydCgoYSwgYikgPT4gYS5ldmVudC5UaW1lc3RhbXAhLmdldFRpbWUoKSAtIGIuZXZlbnQuVGltZXN0YW1wIS5nZXRUaW1lKCkpO1xuXG4gICAgbGluZXMucHVzaChcbiAgICAgIC4uLnRvUHJpbnQubWFwKChyZXMpID0+IHtcbiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShyZXMuZXZlbnQuUmVzb3VyY2VTdGF0dXMpO1xuICAgICAgICBjb25zdCByZXNvdXJjZU5hbWUgPSByZXMubWV0YWRhdGE/LmNvbnN0cnVjdFBhdGggPz8gcmVzLmV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkID8/ICcnO1xuXG4gICAgICAgIHJldHVybiB1dGlsLmZvcm1hdChcbiAgICAgICAgICAnJXMgfCAlcyB8ICVzIHwgJXMlcycsXG4gICAgICAgICAgcGFkTGVmdChDdXJyZW50QWN0aXZpdHlQcmludGVyLlRJTUVTVEFNUF9XSURUSCwgbmV3IERhdGUocmVzLmV2ZW50LlRpbWVzdGFtcCEpLnRvTG9jYWxlVGltZVN0cmluZygpKSxcbiAgICAgICAgICBjb2xvcihwYWRSaWdodChDdXJyZW50QWN0aXZpdHlQcmludGVyLlNUQVRVU19XSURUSCwgKHJlcy5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSksXG4gICAgICAgICAgcGFkUmlnaHQodGhpcy5yZXNvdXJjZVR5cGVDb2x1bW5XaWR0aCwgcmVzLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgY29sb3IoY2hhbGsuYm9sZChzaG9ydGVuKDQwLCByZXNvdXJjZU5hbWUpKSksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShyZXMpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYmxvY2suZGlzcGxheUxpbmVzKGxpbmVzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCkge1xuICAgIHN1cGVyLnN0b3AoKTtcblxuICAgIC8vIFByaW50IGZhaWx1cmVzIGF0IHRoZSBlbmRcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBmYWlsdXJlIG9mIHRoaXMuZmFpbHVyZXMpIHtcbiAgICAgIC8vIFJvb3Qgc3RhY2sgZmFpbHVyZXMgYXJlIG5vdCBpbnRlcmVzdGluZ1xuICAgICAgaWYgKHRoaXMuaXNBY3Rpdml0eUZvclRoZVN0YWNrKGZhaWx1cmUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgICBjaGFsay5yZWQoJyVzIHwgJXMgfCAlcyB8ICVzJXMnKSArICdcXG4nLFxuICAgICAgICAgIHBhZExlZnQoQ3VycmVudEFjdGl2aXR5UHJpbnRlci5USU1FU1RBTVBfV0lEVEgsIG5ldyBEYXRlKGZhaWx1cmUuZXZlbnQuVGltZXN0YW1wISkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICAgIHBhZFJpZ2h0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRILCAoZmFpbHVyZS5ldmVudC5SZXNvdXJjZVN0YXR1cyB8fCAnJykuc2xpY2UoMCwgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEgpKSxcbiAgICAgICAgICBwYWRSaWdodCh0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoLCBmYWlsdXJlLmV2ZW50LlJlc291cmNlVHlwZSB8fCAnJyksXG4gICAgICAgICAgc2hvcnRlbig0MCwgZmFpbHVyZS5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCA/PyAnJyksXG4gICAgICAgICAgdGhpcy5mYWlsdXJlUmVhc29uT25OZXh0TGluZShmYWlsdXJlKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHRyYWNlID0gZmFpbHVyZS5tZXRhZGF0YT8uZW50cnk/LnRyYWNlO1xuICAgICAgaWYgKHRyYWNlKSB7XG4gICAgICAgIGxpbmVzLnB1c2goY2hhbGsucmVkKGBcXHQke3RyYWNlLmpvaW4oJ1xcblxcdFxcXFxfICcpfVxcbmApKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5IGluIHRoZSBzYW1lIGJsb2NrIHNwYWNlLCBvdGhlcndpc2Ugd2UncmUgZ29pbmcgdG8gaGF2ZSBzaWxseSBlbXB0eSBsaW5lcy5cbiAgICB0aGlzLmJsb2NrLmRpc3BsYXlMaW5lcyhsaW5lcyk7XG4gICAgdGhpcy5ibG9jay5yZW1vdmVFbXB0eUxpbmVzKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2dyZXNzQmFyKHdpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuc3RhY2tQcm9ncmVzcyB8fCAhdGhpcy5zdGFja1Byb2dyZXNzLnRvdGFsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGZyYWN0aW9uID0gTWF0aC5taW4odGhpcy5zdGFja1Byb2dyZXNzLmNvbXBsZXRlZCAvIHRoaXMuc3RhY2tQcm9ncmVzcy50b3RhbCwgMSk7XG4gICAgY29uc3QgaW5uZXJXaWR0aCA9IE1hdGgubWF4KDEsIHdpZHRoIC0gMik7XG4gICAgY29uc3QgY2hhcnMgPSBpbm5lcldpZHRoICogZnJhY3Rpb247XG4gICAgY29uc3QgcmVtYWluZGVyID0gY2hhcnMgLSBNYXRoLmZsb29yKGNoYXJzKTtcblxuICAgIGNvbnN0IGZ1bGxDaGFycyA9IEZVTExfQkxPQ0sucmVwZWF0KE1hdGguZmxvb3IoY2hhcnMpKTtcbiAgICBjb25zdCBwYXJ0aWFsQ2hhciA9IFBBUlRJQUxfQkxPQ0tbTWF0aC5mbG9vcihyZW1haW5kZXIgKiBQQVJUSUFMX0JMT0NLLmxlbmd0aCldO1xuICAgIGNvbnN0IGZpbGxlciA9ICfCtycucmVwZWF0KGlubmVyV2lkdGggLSBNYXRoLmZsb29yKGNoYXJzKSAtIChwYXJ0aWFsQ2hhciA/IDEgOiAwKSk7XG5cbiAgICBjb25zdCBjb2xvciA9IHRoaXMucm9sbGluZ0JhY2sgPyBjaGFsay55ZWxsb3cgOiBjaGFsay5ncmVlbjtcblxuICAgIHJldHVybiAnWycgKyBjb2xvcihmdWxsQ2hhcnMgKyBwYXJ0aWFsQ2hhcikgKyBmaWxsZXIgKyBgXSAoJHt0aGlzLnN0YWNrUHJvZ3Jlc3MuY29tcGxldGVkfS8ke3RoaXMuc3RhY2tQcm9ncmVzcy50b3RhbH0pYDtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbHVyZVJlYXNvbk9uTmV4dExpbmUoYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICByZXR1cm4gaXNFcnJvckV2ZW50KGFjdGl2aXR5LmV2ZW50KVxuICAgICAgPyBgXFxuJHsnICcucmVwZWF0KEN1cnJlbnRBY3Rpdml0eVByaW50ZXIuVElNRVNUQU1QX1dJRFRIICsgQ3VycmVudEFjdGl2aXR5UHJpbnRlci5TVEFUVVNfV0lEVEggKyA2KX0ke2NoYWxrLnJlZCh0aGlzLmZhaWx1cmVSZWFzb24oYWN0aXZpdHkpID8/ICcnKX1gXG4gICAgICA6ICcnO1xuICB9XG59XG5cbmNvbnN0IEZVTExfQkxPQ0sgPSAn4paIJztcbmNvbnN0IFBBUlRJQUxfQkxPQ0sgPSBbJycsICfilo8nLCAn4paOJywgJ+KWjScsICfilownLCAn4paLJywgJ+KWiicsICfiloknXTtcbmNvbnN0IE1BWF9QUk9HUkVTU0JBUl9XSURUSCA9IDYwO1xuY29uc3QgTUlOX1BST0dSRVNTQkFSX1dJRFRIID0gMTA7XG5jb25zdCBQUk9HUkVTU0JBUl9FWFRSQV9TUEFDRSA9XG4gICAgMiAvKiBsZWFkaW5nIHNwYWNlcyAqLyArIDIgLyogYnJhY2tldHMgKi8gKyA0IC8qIHByb2dyZXNzIG51bWJlciBkZWNvcmF0aW9uICovICsgNjsgLyogMiBwcm9ncmVzcyBudW1iZXJzIHVwIHRvIDk5OSAqL1xuXG5mdW5jdGlvbiBjb2xvckZyb21TdGF0dXNBY3Rpdml0eShzdGF0dXM/OiBzdHJpbmcpIHtcbiAgaWYgKCFzdGF0dXMpIHtcbiAgICByZXR1cm4gY2hhbGsucmVzZXQ7XG4gIH1cblxuICBpZiAoc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykpIHtcbiAgICByZXR1cm4gY2hhbGsucmVkO1xuICB9XG5cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdDUkVBVEVfJykgfHwgc3RhdHVzLnN0YXJ0c1dpdGgoJ1VQREFURV8nKSB8fCBzdGF0dXMuc3RhcnRzV2l0aCgnSU1QT1JUXycpKSB7XG4gICAgcmV0dXJuIGNoYWxrLmdyZWVuO1xuICB9XG4gIC8vIEZvciBzdGFja3MsIGl0IG1heSBhbHNvIGJlICdVUEREQVRFX1JPTExCQUNLX0lOX1BST0dSRVNTJ1xuICBpZiAoc3RhdHVzLmluZGV4T2YoJ1JPTExCQUNLXycpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gIH1cbiAgaWYgKHN0YXR1cy5zdGFydHNXaXRoKCdERUxFVEVfJykpIHtcbiAgICByZXR1cm4gY2hhbGsueWVsbG93O1xuICB9XG5cbiAgcmV0dXJuIGNoYWxrLnJlc2V0O1xufVxuXG5mdW5jdGlvbiBzaG9ydGVuKG1heFdpZHRoOiBudW1iZXIsIHA6IHN0cmluZykge1xuICBpZiAocC5sZW5ndGggPD0gbWF4V2lkdGgpIHtcbiAgICByZXR1cm4gcDtcbiAgfVxuICBjb25zdCBoYWxmID0gTWF0aC5mbG9vcigobWF4V2lkdGggLSAzKSAvIDIpO1xuICByZXR1cm4gcC5zbGljZSgwLCBoYWxmKSArICcuLi4nICsgcC5zbGljZSgtaGFsZik7XG59XG5cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RewritableBlock = void 0;\n// namespace object imports won't work in the bundle for function exports\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst wrapAnsi = require('wrap-ansi');\n/**\n * A class representing rewritable display lines\n */\nclass RewritableBlock {\n stream;\n lastHeight = 0;\n trailingEmptyLines = 0;\n constructor(stream) {\n this.stream = stream;\n }\n get width() {\n // Might get changed if the user resizes the terminal\n return this.stream.columns;\n }\n get height() {\n // Might get changed if the user resizes the terminal\n return this.stream.rows;\n }\n displayLines(lines) {\n lines = terminalWrap(this.width, expandNewlines(lines));\n lines = lines.slice(0, getMaxBlockHeight(this.height, this.lastHeight, lines));\n this.stream.write(cursorUp(this.lastHeight));\n for (const line of lines) {\n this.stream.write(cll() + line + '\\n');\n }\n this.trailingEmptyLines = Math.max(0, this.lastHeight - lines.length);\n // Clear remainder of unwritten lines\n for (let i = 0; i < this.trailingEmptyLines; i++) {\n this.stream.write(cll() + '\\n');\n }\n // The block can only ever get bigger\n this.lastHeight = Math.max(this.lastHeight, lines.length);\n }\n removeEmptyLines() {\n this.stream.write(cursorUp(this.trailingEmptyLines));\n }\n}\nexports.RewritableBlock = RewritableBlock;\nconst ESC = '\\u001b';\n/*\n * Move cursor up `n` lines. Default is 1\n */\nfunction cursorUp(n) {\n n = typeof n === 'number' ? n : 1;\n return n > 0 ? ESC + '[' + n + 'A' : '';\n}\n/**\n * Clear to end of line\n */\nfunction cll() {\n return ESC + '[K';\n}\nfunction terminalWrap(width, lines) {\n if (width === undefined) {\n return lines;\n }\n return lines.flatMap(line => wrapAnsi(line, width - 1, {\n hard: true,\n trim: true,\n wordWrap: false,\n }).split('\\n'));\n}\n/**\n * Make sure there are no hidden newlines in the gin strings\n */\nfunction expandNewlines(lines) {\n return lines.flatMap(line => line.split('\\n'));\n}\nfunction getMaxBlockHeight(windowHeight, lastHeight, lines) {\n if (windowHeight === undefined) {\n return Math.max(lines.length, lastHeight);\n }\n return lines.length < windowHeight ? lines.length : windowHeight - 1;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3BsYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFJRztJQUhyQixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ2Ysa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBRS9CLFlBQTZCLE1BQTBCO1FBQTFCLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ3ZELENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxxREFBcUQ7UUFDckQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YscURBQXFEO1FBQ3JELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFlO1FBQ2pDLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEUscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQXhDRCwwQ0F3Q0M7QUFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUM7QUFFckI7O0dBRUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxDQUFTO0lBQ3pCLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxHQUFHO0lBQ1YsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUF5QixFQUFFLEtBQWU7SUFDOUQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLElBQUk7UUFDVixRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxjQUFjLENBQUMsS0FBZTtJQUNyQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsWUFBZ0MsRUFBRSxVQUFrQixFQUFFLEtBQWU7SUFDOUYsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCB3cmFwQW5zaSA9IHJlcXVpcmUoJ3dyYXAtYW5zaScpO1xuXG4vKipcbiAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIHJld3JpdGFibGUgZGlzcGxheSBsaW5lc1xuICovXG5leHBvcnQgY2xhc3MgUmV3cml0YWJsZUJsb2NrIHtcbiAgcHJpdmF0ZSBsYXN0SGVpZ2h0ID0gMDtcbiAgcHJpdmF0ZSB0cmFpbGluZ0VtcHR5TGluZXMgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBOb2RlSlMuV3JpdGVTdHJlYW0pIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgd2lkdGgoKSB7XG4gICAgLy8gTWlnaHQgZ2V0IGNoYW5nZWQgaWYgdGhlIHVzZXIgcmVzaXplcyB0aGUgdGVybWluYWxcbiAgICByZXR1cm4gdGhpcy5zdHJlYW0uY29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVpZ2h0KCkge1xuICAgIC8vIE1pZ2h0IGdldCBjaGFuZ2VkIGlmIHRoZSB1c2VyIHJlc2l6ZXMgdGhlIHRlcm1pbmFsXG4gICAgcmV0dXJuIHRoaXMuc3RyZWFtLnJvd3M7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheUxpbmVzKGxpbmVzOiBzdHJpbmdbXSkge1xuICAgIGxpbmVzID0gdGVybWluYWxXcmFwKHRoaXMud2lkdGgsIGV4cGFuZE5ld2xpbmVzKGxpbmVzKSk7XG4gICAgbGluZXMgPSBsaW5lcy5zbGljZSgwLCBnZXRNYXhCbG9ja0hlaWdodCh0aGlzLmhlaWdodCwgdGhpcy5sYXN0SGVpZ2h0LCBsaW5lcykpO1xuXG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY3Vyc29yVXAodGhpcy5sYXN0SGVpZ2h0KSk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICB0aGlzLnN0cmVhbS53cml0ZShjbGwoKSArIGxpbmUgKyAnXFxuJyk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFpbGluZ0VtcHR5TGluZXMgPSBNYXRoLm1heCgwLCB0aGlzLmxhc3RIZWlnaHQgLSBsaW5lcy5sZW5ndGgpO1xuXG4gICAgLy8gQ2xlYXIgcmVtYWluZGVyIG9mIHVud3JpdHRlbiBsaW5lc1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmFpbGluZ0VtcHR5TGluZXM7IGkrKykge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoY2xsKCkgKyAnXFxuJyk7XG4gICAgfVxuXG4gICAgLy8gVGhlIGJsb2NrIGNhbiBvbmx5IGV2ZXIgZ2V0IGJpZ2dlclxuICAgIHRoaXMubGFzdEhlaWdodCA9IE1hdGgubWF4KHRoaXMubGFzdEhlaWdodCwgbGluZXMubGVuZ3RoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVFbXB0eUxpbmVzKCkge1xuICAgIHRoaXMuc3RyZWFtLndyaXRlKGN1cnNvclVwKHRoaXMudHJhaWxpbmdFbXB0eUxpbmVzKSk7XG4gIH1cbn1cblxuY29uc3QgRVNDID0gJ1xcdTAwMWInO1xuXG4vKlxuICogTW92ZSBjdXJzb3IgdXAgYG5gIGxpbmVzLiBEZWZhdWx0IGlzIDFcbiAqL1xuZnVuY3Rpb24gY3Vyc29yVXAobjogbnVtYmVyKSB7XG4gIG4gPSB0eXBlb2YgbiA9PT0gJ251bWJlcicgPyBuIDogMTtcbiAgcmV0dXJuIG4gPiAwID8gRVNDICsgJ1snICsgbiArICdBJyA6ICcnO1xufVxuXG4vKipcbiAqIENsZWFyIHRvIGVuZCBvZiBsaW5lXG4gKi9cbmZ1bmN0aW9uIGNsbCgpIHtcbiAgcmV0dXJuIEVTQyArICdbSyc7XG59XG5cbmZ1bmN0aW9uIHRlcm1pbmFsV3JhcCh3aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkLCBsaW5lczogc3RyaW5nW10pIHtcbiAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICByZXR1cm4gbGluZXMuZmxhdE1hcChsaW5lID0+IHdyYXBBbnNpKGxpbmUsIHdpZHRoIC0gMSwge1xuICAgIGhhcmQ6IHRydWUsXG4gICAgdHJpbTogdHJ1ZSxcbiAgICB3b3JkV3JhcDogZmFsc2UsXG4gIH0pLnNwbGl0KCdcXG4nKSk7XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBoaWRkZW4gbmV3bGluZXMgaW4gdGhlIGdpbiBzdHJpbmdzXG4gKi9cbmZ1bmN0aW9uIGV4cGFuZE5ld2xpbmVzKGxpbmVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGxpbmVzLmZsYXRNYXAobGluZSA9PiBsaW5lLnNwbGl0KCdcXG4nKSk7XG59XG5cbmZ1bmN0aW9uIGdldE1heEJsb2NrSGVpZ2h0KHdpbmRvd0hlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkLCBsYXN0SGVpZ2h0OiBudW1iZXIsIGxpbmVzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gIGlmICh3aW5kb3dIZWlnaHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBNYXRoLm1heChsaW5lcy5sZW5ndGgsIGxhc3RIZWlnaHQpO1xuICB9XG4gIHJldHVybiBsaW5lcy5sZW5ndGggPCB3aW5kb3dIZWlnaHQgPyBsaW5lcy5sZW5ndGggOiB3aW5kb3dIZWlnaHQgLSAxO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HistoryActivityPrinter = void 0;\nconst util = require(\"util\");\nconst chalk = require(\"chalk\");\nconst base_1 = require(\"./base\");\nconst util_1 = require(\"../../util\");\n/**\n * Activity Printer which shows a full log of all CloudFormation events\n *\n * When there hasn't been activity for a while, it will print the resources\n * that are currently in progress, to show what's holding up the deployment.\n */\nclass HistoryActivityPrinter extends base_1.ActivityPrinterBase {\n /**\n * Last time we printed something to the console.\n *\n * Used to measure timeout for progress reporting.\n */\n lastPrintTime = Date.now();\n lastPrinted;\n /**\n * Number of ms of change absence before we tell the user about the resources that are currently in progress.\n */\n inProgressDelay = 30_000;\n printable = new Array();\n constructor(props) {\n super(props);\n }\n activity(activity) {\n this.printable.push(activity);\n super.activity(activity);\n }\n stop() {\n super.stop();\n // Print failures at the end\n if (this.failures.length > 0) {\n this.stream.write('\\nFailed resources:\\n');\n for (const failure of this.failures) {\n // Root stack failures are not interesting\n if (this.isActivityForTheStack(failure)) {\n continue;\n }\n this.printOne(failure, false);\n }\n }\n }\n print() {\n for (const activity of this.printable) {\n this.printOne(activity);\n this.lastPrinted = activity;\n }\n this.printable.splice(0, this.printable.length);\n this.printInProgress(this.lastPrinted?.progress.formatted);\n }\n printOne(activity, progress) {\n const event = activity.event;\n const color = colorFromStatusResult(event.ResourceStatus);\n let reasonColor = chalk.cyan;\n let stackTrace = '';\n const metadata = activity.metadata;\n if (event.ResourceStatus && event.ResourceStatus.indexOf('FAILED') !== -1) {\n if (progress == undefined || progress) {\n event.ResourceStatusReason = event.ResourceStatusReason ? this.failureReason(activity) : '';\n }\n if (metadata) {\n stackTrace = metadata.entry.trace ? `\\n\\t${metadata.entry.trace.join('\\n\\t\\\\_ ')}` : '';\n }\n reasonColor = chalk.red;\n }\n const resourceName = metadata ? metadata.constructPath : event.LogicalResourceId || '';\n const logicalId = resourceName !== event.LogicalResourceId ? `(${event.LogicalResourceId}) ` : '';\n this.stream.write(util.format('%s | %s%s | %s | %s | %s %s%s%s\\n', event.StackName, progress !== false ? `${activity.progress.formatted} | ` : '', new Date(event.Timestamp).toLocaleTimeString(), color((0, util_1.padRight)(HistoryActivityPrinter.STATUS_WIDTH, (event.ResourceStatus || '').slice(0, HistoryActivityPrinter.STATUS_WIDTH))), // pad left and trim\n (0, util_1.padRight)(this.resourceTypeColumnWidth, event.ResourceType || ''), color(chalk.bold(resourceName)), logicalId, reasonColor(chalk.bold(event.ResourceStatusReason ? event.ResourceStatusReason : '')), reasonColor(stackTrace)));\n this.lastPrintTime = Date.now();\n }\n /**\n * If some resources are taking a while to create, notify the user about what's currently in progress\n */\n printInProgress(progress) {\n if (!progress || Date.now() < this.lastPrintTime + this.inProgressDelay) {\n return;\n }\n if (Object.keys(this.resourcesInProgress).length > 0) {\n this.stream.write(util.format('%s Currently in progress: %s\\n', progress, chalk.bold(Object.keys(this.resourcesInProgress).join(', '))));\n }\n // We cheat a bit here. To prevent printInProgress() from repeatedly triggering,\n // we set the timestamp into the future. It will be reset whenever a regular print\n // occurs, after which we can be triggered again.\n this.lastPrintTime = +Infinity;\n }\n}\nexports.HistoryActivityPrinter = HistoryActivityPrinter;\nfunction colorFromStatusResult(status) {\n if (!status) {\n return chalk.reset;\n }\n if (status.indexOf('FAILED') !== -1) {\n return chalk.red;\n }\n if (status.indexOf('ROLLBACK') !== -1) {\n return chalk.yellow;\n }\n if (status.indexOf('COMPLETE') !== -1) {\n return chalk.green;\n }\n return chalk.reset;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixpQ0FBNkM7QUFFN0MscUNBQXNDO0FBRXRDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwwQkFBbUI7SUFDN0Q7Ozs7T0FJRztJQUNLLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFM0IsV0FBVyxDQUFpQjtJQUVwQzs7T0FFRztJQUNjLGVBQWUsR0FBRyxNQUFNLENBQUM7SUFFekIsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFpQixDQUFDO0lBRXhELFlBQVksS0FBMkI7UUFDckMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUF1QjtRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxJQUFJO1FBQ1QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWIsNEJBQTRCO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUMzQyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEMsMENBQTBDO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUN4QyxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7SUFD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LEVBQUUsQ0FBQztRQUNwQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSB7IEFjdGl2aXR5UHJpbnRlclByb3BzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFjdGl2aXR5UHJpbnRlckJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0FjdGl2aXR5IH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHsgcGFkUmlnaHQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBBY3Rpdml0eSBQcmludGVyIHdoaWNoIHNob3dzIGEgZnVsbCBsb2cgb2YgYWxsIENsb3VkRm9ybWF0aW9uIGV2ZW50c1xuICpcbiAqIFdoZW4gdGhlcmUgaGFzbid0IGJlZW4gYWN0aXZpdHkgZm9yIGEgd2hpbGUsIGl0IHdpbGwgcHJpbnQgdGhlIHJlc291cmNlc1xuICogdGhhdCBhcmUgY3VycmVudGx5IGluIHByb2dyZXNzLCB0byBzaG93IHdoYXQncyBob2xkaW5nIHVwIHRoZSBkZXBsb3ltZW50LlxuICovXG5leHBvcnQgY2xhc3MgSGlzdG9yeUFjdGl2aXR5UHJpbnRlciBleHRlbmRzIEFjdGl2aXR5UHJpbnRlckJhc2Uge1xuICAvKipcbiAgICogTGFzdCB0aW1lIHdlIHByaW50ZWQgc29tZXRoaW5nIHRvIHRoZSBjb25zb2xlLlxuICAgKlxuICAgKiBVc2VkIHRvIG1lYXN1cmUgdGltZW91dCBmb3IgcHJvZ3Jlc3MgcmVwb3J0aW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBsYXN0UHJpbnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICBwcml2YXRlIGxhc3RQcmludGVkPzogU3RhY2tBY3Rpdml0eTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1zIG9mIGNoYW5nZSBhYnNlbmNlIGJlZm9yZSB3ZSB0ZWxsIHRoZSB1c2VyIGFib3V0IHRoZSByZXNvdXJjZXMgdGhhdCBhcmUgY3VycmVudGx5IGluIHByb2dyZXNzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBpblByb2dyZXNzRGVsYXkgPSAzMF8wMDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcmludGFibGUgPSBuZXcgQXJyYXk8U3RhY2tBY3Rpdml0eT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQWN0aXZpdHlQcmludGVyUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHkoYWN0aXZpdHk6IFN0YWNrQWN0aXZpdHkpIHtcbiAgICB0aGlzLnByaW50YWJsZS5wdXNoKGFjdGl2aXR5KTtcbiAgICBzdXBlci5hY3Rpdml0eShhY3Rpdml0eSk7XG4gIH1cblxuICBwdWJsaWMgc3RvcCgpIHtcbiAgICBzdXBlci5zdG9wKCk7XG5cbiAgICAvLyBQcmludCBmYWlsdXJlcyBhdCB0aGUgZW5kXG4gICAgaWYgKHRoaXMuZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoJ1xcbkZhaWxlZCByZXNvdXJjZXM6XFxuJyk7XG4gICAgICBmb3IgKGNvbnN0IGZhaWx1cmUgb2YgdGhpcy5mYWlsdXJlcykge1xuICAgICAgICAvLyBSb290IHN0YWNrIGZhaWx1cmVzIGFyZSBub3QgaW50ZXJlc3RpbmdcbiAgICAgICAgaWYgKHRoaXMuaXNBY3Rpdml0eUZvclRoZVN0YWNrKGZhaWx1cmUpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByaW50T25lKGZhaWx1cmUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJpbnQoKSB7XG4gICAgZm9yIChjb25zdCBhY3Rpdml0eSBvZiB0aGlzLnByaW50YWJsZSkge1xuICAgICAgdGhpcy5wcmludE9uZShhY3Rpdml0eSk7XG4gICAgICB0aGlzLmxhc3RQcmludGVkID0gYWN0aXZpdHk7XG4gICAgfVxuICAgIHRoaXMucHJpbnRhYmxlLnNwbGljZSgwLCB0aGlzLnByaW50YWJsZS5sZW5ndGgpO1xuICAgIHRoaXMucHJpbnRJblByb2dyZXNzKHRoaXMubGFzdFByaW50ZWQ/LnByb2dyZXNzLmZvcm1hdHRlZCk7XG4gIH1cblxuICBwcml2YXRlIHByaW50T25lKGFjdGl2aXR5OiBTdGFja0FjdGl2aXR5LCBwcm9ncmVzcz86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBldmVudCA9IGFjdGl2aXR5LmV2ZW50O1xuICAgIGNvbnN0IGNvbG9yID0gY29sb3JGcm9tU3RhdHVzUmVzdWx0KGV2ZW50LlJlc291cmNlU3RhdHVzKTtcbiAgICBsZXQgcmVhc29uQ29sb3IgPSBjaGFsay5jeWFuO1xuXG4gICAgbGV0IHN0YWNrVHJhY2UgPSAnJztcbiAgICBjb25zdCBtZXRhZGF0YSA9IGFjdGl2aXR5Lm1ldGFkYXRhO1xuXG4gICAgaWYgKGV2ZW50LlJlc291cmNlU3RhdHVzICYmIGV2ZW50LlJlc291cmNlU3RhdHVzLmluZGV4T2YoJ0ZBSUxFRCcpICE9PSAtMSkge1xuICAgICAgaWYgKHByb2dyZXNzID09IHVuZGVmaW5lZCB8fCBwcm9ncmVzcykge1xuICAgICAgICBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA9IGV2ZW50LlJlc291cmNlU3RhdHVzUmVhc29uID8gdGhpcy5mYWlsdXJlUmVhc29uKGFjdGl2aXR5KSA6ICcnO1xuICAgICAgfVxuICAgICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICAgIHN0YWNrVHJhY2UgPSBtZXRhZGF0YS5lbnRyeS50cmFjZSA/IGBcXG5cXHQke21ldGFkYXRhLmVudHJ5LnRyYWNlLmpvaW4oJ1xcblxcdFxcXFxfICcpfWAgOiAnJztcbiAgICAgIH1cbiAgICAgIHJlYXNvbkNvbG9yID0gY2hhbGsucmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IG1ldGFkYXRhID8gbWV0YWRhdGEuY29uc3RydWN0UGF0aCA6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkIHx8ICcnO1xuICAgIGNvbnN0IGxvZ2ljYWxJZCA9IHJlc291cmNlTmFtZSAhPT0gZXZlbnQuTG9naWNhbFJlc291cmNlSWQgPyBgKCR7ZXZlbnQuTG9naWNhbFJlc291cmNlSWR9KSBgIDogJyc7XG5cbiAgICB0aGlzLnN0cmVhbS53cml0ZShcbiAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAnJXMgfCAlcyVzIHwgJXMgfCAlcyB8ICVzICVzJXMlc1xcbicsXG4gICAgICAgIGV2ZW50LlN0YWNrTmFtZSxcbiAgICAgICAgcHJvZ3Jlc3MgIT09IGZhbHNlID8gYCR7YWN0aXZpdHkucHJvZ3Jlc3MuZm9ybWF0dGVkfSB8IGAgOiAnJyxcbiAgICAgICAgbmV3IERhdGUoZXZlbnQuVGltZXN0YW1wISkudG9Mb2NhbGVUaW1lU3RyaW5nKCksXG4gICAgICAgIGNvbG9yKHBhZFJpZ2h0KEhpc3RvcnlBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRILCAoZXZlbnQuUmVzb3VyY2VTdGF0dXMgfHwgJycpLnNsaWNlKDAsIEhpc3RvcnlBY3Rpdml0eVByaW50ZXIuU1RBVFVTX1dJRFRIKSkpLCAvLyBwYWQgbGVmdCBhbmQgdHJpbVxuICAgICAgICBwYWRSaWdodCh0aGlzLnJlc291cmNlVHlwZUNvbHVtbldpZHRoLCBldmVudC5SZXNvdXJjZVR5cGUgfHwgJycpLFxuICAgICAgICBjb2xvcihjaGFsay5ib2xkKHJlc291cmNlTmFtZSkpLFxuICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgIHJlYXNvbkNvbG9yKGNoYWxrLmJvbGQoZXZlbnQuUmVzb3VyY2VTdGF0dXNSZWFzb24gPyBldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA6ICcnKSksXG4gICAgICAgIHJlYXNvbkNvbG9yKHN0YWNrVHJhY2UpLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgdGhpcy5sYXN0UHJpbnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBzb21lIHJlc291cmNlcyBhcmUgdGFraW5nIGEgd2hpbGUgdG8gY3JlYXRlLCBub3RpZnkgdGhlIHVzZXIgYWJvdXQgd2hhdCdzIGN1cnJlbnRseSBpbiBwcm9ncmVzc1xuICAgKi9cbiAgcHJpdmF0ZSBwcmludEluUHJvZ3Jlc3MocHJvZ3Jlc3M/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXByb2dyZXNzIHx8IERhdGUubm93KCkgPCB0aGlzLmxhc3RQcmludFRpbWUgKyB0aGlzLmluUHJvZ3Jlc3NEZWxheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnJlc291cmNlc0luUHJvZ3Jlc3MpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc3RyZWFtLndyaXRlKFxuICAgICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgICAnJXMgQ3VycmVudGx5IGluIHByb2dyZXNzOiAlc1xcbicsXG4gICAgICAgICAgcHJvZ3Jlc3MsXG4gICAgICAgICAgY2hhbGsuYm9sZChPYmplY3Qua2V5cyh0aGlzLnJlc291cmNlc0luUHJvZ3Jlc3MpLmpvaW4oJywgJykpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBXZSBjaGVhdCBhIGJpdCBoZXJlLiBUbyBwcmV2ZW50IHByaW50SW5Qcm9ncmVzcygpIGZyb20gcmVwZWF0ZWRseSB0cmlnZ2VyaW5nLFxuICAgIC8vIHdlIHNldCB0aGUgdGltZXN0YW1wIGludG8gdGhlIGZ1dHVyZS4gSXQgd2lsbCBiZSByZXNldCB3aGVuZXZlciBhIHJlZ3VsYXIgcHJpbnRcbiAgICAvLyBvY2N1cnMsIGFmdGVyIHdoaWNoIHdlIGNhbiBiZSB0cmlnZ2VyZWQgYWdhaW4uXG4gICAgdGhpcy5sYXN0UHJpbnRUaW1lID0gK0luZmluaXR5O1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbG9yRnJvbVN0YXR1c1Jlc3VsdChzdGF0dXM/OiBzdHJpbmcpIHtcbiAgaWYgKCFzdGF0dXMpIHtcbiAgICByZXR1cm4gY2hhbGsucmVzZXQ7XG4gIH1cblxuICBpZiAoc3RhdHVzLmluZGV4T2YoJ0ZBSUxFRCcpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay5yZWQ7XG4gIH1cbiAgaWYgKHN0YXR1cy5pbmRleE9mKCdST0xMQkFDSycpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gIH1cbiAgaWYgKHN0YXR1cy5pbmRleE9mKCdDT01QTEVURScpICE9PSAtMSkge1xuICAgIHJldHVybiBjaGFsay5ncmVlbjtcbiAgfVxuXG4gIHJldHVybiBjaGFsay5yZXNldDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./base\"), exports);\n__exportStar(require(\"./history\"), exports);\n__exportStar(require(\"./current\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVudCc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// This file needs to be imported as one of the first files in the library.\n// It polyfills some symbols that the new JavaScript \"Disposable\" API introduces.\n//\n// See \n//\n// In short, the new proposal is a `using`/`await using` statement, which will automatically\n// call methods named `[Symbol.dispose]` and `[Symbol.asyncDispose]` on objects.\n//\n// TypeScript knows about those symbols, and it will downlevel the `using` syntax to\n// plain JavaScript... but it doesn't define the Symbols themselves! They must exist\n// in the environment, or code defining objects using those Symbol names will fail.\n//\n// MDN doesn't even know that Node 22 has them already; for broadest compatibility,\n// we just polyfill them here. Their value doesn't matter, they just need to exist\n// and be unique symbols.\nSymbol.dispose ??= Symbol('Symbol.dispose');\nSymbol.asyncDispose ??= Symbol('Symbol.asyncDispose');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zZS1wb2x5ZmlsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3Bvc2UtcG9seWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyRUFBMkU7QUFDM0UsaUZBQWlGO0FBQ2pGLEVBQUU7QUFDRix1RkFBdUY7QUFDdkYsRUFBRTtBQUNGLDRGQUE0RjtBQUM1RixnRkFBZ0Y7QUFDaEYsRUFBRTtBQUNGLG9GQUFvRjtBQUNwRixvRkFBb0Y7QUFDcEYsbUZBQW1GO0FBQ25GLEVBQUU7QUFDRixtRkFBbUY7QUFDbkYsa0ZBQWtGO0FBQ2xGLHlCQUF5QjtBQUN4QixNQUFjLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3BELE1BQWMsQ0FBQyxZQUFZLEtBQUssTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgbmVlZHMgdG8gYmUgaW1wb3J0ZWQgYXMgb25lIG9mIHRoZSBmaXJzdCBmaWxlcyBpbiB0aGUgbGlicmFyeS5cbi8vIEl0IHBvbHlmaWxscyBzb21lIHN5bWJvbHMgdGhhdCB0aGUgbmV3IEphdmFTY3JpcHQgXCJEaXNwb3NhYmxlXCIgQVBJIGludHJvZHVjZXMuXG4vL1xuLy8gU2VlIDxodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9yZWxlYXNlLW5vdGVzL3R5cGVzY3JpcHQtNS0yLmh0bWw+XG4vL1xuLy8gSW4gc2hvcnQsIHRoZSBuZXcgcHJvcG9zYWwgaXMgYSBgdXNpbmdgL2Bhd2FpdCB1c2luZ2Agc3RhdGVtZW50LCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHlcbi8vIGNhbGwgbWV0aG9kcyBuYW1lZCBgW1N5bWJvbC5kaXNwb3NlXWAgYW5kIGBbU3ltYm9sLmFzeW5jRGlzcG9zZV1gIG9uIG9iamVjdHMuXG4vL1xuLy8gVHlwZVNjcmlwdCBrbm93cyBhYm91dCB0aG9zZSBzeW1ib2xzLCBhbmQgaXQgd2lsbCBkb3dubGV2ZWwgdGhlIGB1c2luZ2Agc3ludGF4IHRvXG4vLyBwbGFpbiBKYXZhU2NyaXB0Li4uIGJ1dCBpdCBkb2Vzbid0IGRlZmluZSB0aGUgU3ltYm9scyB0aGVtc2VsdmVzISBUaGV5IG11c3QgZXhpc3Rcbi8vIGluIHRoZSBlbnZpcm9ubWVudCwgb3IgY29kZSBkZWZpbmluZyBvYmplY3RzIHVzaW5nIHRob3NlIFN5bWJvbCBuYW1lcyB3aWxsIGZhaWwuXG4vL1xuLy8gTUROIGRvZXNuJ3QgZXZlbiBrbm93IHRoYXQgTm9kZSAyMiBoYXMgdGhlbSBhbHJlYWR5OyBmb3IgYnJvYWRlc3QgY29tcGF0aWJpbGl0eSxcbi8vIHdlIGp1c3QgcG9seWZpbGwgdGhlbSBoZXJlLiBUaGVpciB2YWx1ZSBkb2Vzbid0IG1hdHRlciwgdGhleSBqdXN0IG5lZWQgdG8gZXhpc3Rcbi8vIGFuZCBiZSB1bmlxdWUgc3ltYm9scy5cbihTeW1ib2wgYXMgYW55KS5kaXNwb3NlID8/PSBTeW1ib2woJ1N5bWJvbC5kaXNwb3NlJyk7XG4oU3ltYm9sIGFzIGFueSkuYXN5bmNEaXNwb3NlID8/PSBTeW1ib2woJ1N5bWJvbC5hc3luY0Rpc3Bvc2UnKTtcbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./toolkit\"), exports);\n__exportStar(require(\"./non-interactive-io-host\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDREQUEwQztBQUMxQywwQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rvb2xraXQnO1xuZXhwb3J0ICogZnJvbSAnLi9ub24taW50ZXJhY3RpdmUtaW8taG9zdCc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonInteractiveIoHost = void 0;\nconst chalk = require(\"chalk\");\nconst private_1 = require(\"../api/io/private\");\nconst activity_printer_1 = require(\"../private/activity-printer\");\nconst shell_env_1 = require(\"../util/shell-env\");\n/**\n * A simple IO host for a non interactive CLI that writes messages to the console and returns the default answer to all requests.\n */\nclass NonInteractiveIoHost {\n /**\n * Whether the IoHost is running in CI mode.\n *\n * In CI mode, all non-error output goes to stdout instead of stderr.\n */\n isCI;\n /**\n * Whether the host can use interactions and message styling.\n */\n isTTY;\n /**\n * The current threshold.\n *\n * Messages with a lower priority level will be ignored.\n */\n logLevel;\n // Stack Activity Printer\n activityPrinter;\n constructor(props = {}) {\n this.logLevel = props.logLevel ?? 'info';\n this.isTTY = props.isTTY ?? (0, shell_env_1.isTTY)();\n this.isCI = props.isCI ?? (0, shell_env_1.isCI)();\n this.activityPrinter = new activity_printer_1.HistoryActivityPrinter({\n stream: this.selectStreamFromLevel('info'),\n });\n }\n /**\n * Notifies the host of a message.\n * The caller waits until the notification completes.\n */\n async notify(msg) {\n if (isStackActivity(msg)) {\n return this.activityPrinter.notify(msg);\n }\n if (!(0, private_1.isMessageRelevantForLevel)(msg, this.logLevel)) {\n return;\n }\n const output = this.formatMessage(msg);\n const stream = this.selectStream(msg);\n stream?.write(output);\n }\n /**\n * Determines the output stream, based on message and configuration.\n */\n selectStream(msg) {\n return this.selectStreamFromLevel(msg.level);\n }\n /**\n * Determines the output stream, based on message level and configuration.\n */\n selectStreamFromLevel(level) {\n // The stream selection policy for the CLI is the following:\n //\n // (1) Messages of level `result` always go to `stdout`\n // (2) Messages of level `error` always go to `stderr`.\n // (3a) All remaining messages go to `stderr`.\n // (3b) If we are in CI mode, all remaining messages go to `stdout`.\n //\n switch (level) {\n case 'error':\n return process.stderr;\n case 'result':\n return process.stdout;\n default:\n return this.isCI ? process.stdout : process.stderr;\n }\n }\n /**\n * Notifies the host of a message that requires a response.\n *\n * If the host does not return a response the suggested\n * default response from the input message will be used.\n */\n async requestResponse(msg) {\n // in the non-interactive IoHost, no requests are promptable\n await this.notify(msg);\n return msg.defaultResponse;\n }\n /**\n * Formats a message for console output with optional color support\n */\n formatMessage(msg) {\n // apply provided style or a default style if we're in TTY mode\n let message_text = this.isTTY\n ? styleMap[msg.level](msg.message)\n : msg.message;\n // prepend timestamp if IoMessageLevel is DEBUG or TRACE. Postpend a newline.\n return ((msg.level === 'debug' || msg.level === 'trace')\n ? `[${this.formatTime(msg.time)}] ${message_text}`\n : message_text) + '\\n';\n }\n /**\n * Formats date to HH:MM:SS\n */\n formatTime(d) {\n const pad = (n) => n.toString().padStart(2, '0');\n return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\n }\n}\nexports.NonInteractiveIoHost = NonInteractiveIoHost;\nconst styleMap = {\n error: chalk.red,\n warn: chalk.yellow,\n result: chalk.reset,\n info: chalk.reset,\n debug: chalk.gray,\n trace: chalk.gray,\n};\n/**\n * Detect stack activity messages so they can be send to the printer.\n */\nfunction isStackActivity(msg) {\n return msg.code && [\n 'CDK_TOOLKIT_I5501',\n 'CDK_TOOLKIT_I5502',\n 'CDK_TOOLKIT_I5503',\n ].includes(msg.code);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uLWludGVyYWN0aXZlLWlvLWhvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJub24taW50ZXJhY3RpdmUtaW8taG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFFL0IsK0NBQThEO0FBQzlELGtFQUE0RjtBQUM1RixpREFBZ0Q7QUFpQ2hEOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFDL0I7Ozs7T0FJRztJQUNhLElBQUksQ0FBVTtJQUU5Qjs7T0FFRztJQUNhLEtBQUssQ0FBVTtJQUUvQjs7OztPQUlHO0lBQ2EsUUFBUSxDQUFpQjtJQUV6Qyx5QkFBeUI7SUFDUixlQUFlLENBQW1CO0lBRW5ELFlBQW1CLFFBQW1DLEVBQUU7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBQSxpQkFBSyxHQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUEsZ0JBQUksR0FBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSx5Q0FBc0IsQ0FBQztZQUNoRCxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUF1QjtRQUN6QyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFBLG1DQUF5QixFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FB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Q25CLG1CQUFtQjtLQUNwQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgSUlvSG9zdCwgSW9NZXNzYWdlLCBJb01lc3NhZ2VMZXZlbCwgSW9SZXF1ZXN0IH0gZnJvbSAnLi4vYXBpL2lvJztcbmltcG9ydCB7IGlzTWVzc2FnZVJlbGV2YW50Rm9yTGV2ZWwgfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBIaXN0b3J5QWN0aXZpdHlQcmludGVyLCB0eXBlIElBY3Rpdml0eVByaW50ZXIgfSBmcm9tICcuLi9wcml2YXRlL2FjdGl2aXR5LXByaW50ZXInO1xuaW1wb3J0IHsgaXNDSSwgaXNUVFkgfSBmcm9tICcuLi91dGlsL3NoZWxsLWVudic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9uSW50ZXJhY3RpdmVJb0hvc3RQcm9wcyB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSB2ZXJib3NpdHkgb2YgdGhlIG91dHB1dC5cbiAgICpcbiAgICogVGhlIElvSG9zdCB3aWxsIHN0aWxsIHJlY2VpdmUgYWxsIG1lc3NhZ2VzIGFuZCByZXF1ZXN0cyxcbiAgICogYnV0IG9ubHkgdGhlIG1lc3NhZ2VzIGluY2x1ZGVkIGluIHRoaXMgbGV2ZWwgd2lsbCBiZSBwcmludGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnaW5mbydcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogSW9NZXNzYWdlTGV2ZWw7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgYXV0b21hdGljIFRUWSBkZXRlY3Rpb24uXG4gICAqXG4gICAqIFdoZW4gVFRZIGlzIGRpc2FibGVkLCB0aGUgQ0xJIHdpbGwgaGF2ZSBubyBpbnRlcmFjdGlvbnMgb3IgY29sb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGV0ZXJtaW5lZCBmcm9tIHRoZSBjdXJyZW50IHByb2Nlc3NcbiAgICovXG4gIHJlYWRvbmx5IGlzVFRZPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgSW9Ib3N0IGlzIHJ1bm5pbmcgaW4gQ0kgbW9kZS5cbiAgICpcbiAgICogSW4gQ0kgbW9kZSwgYWxsIG5vbi1lcnJvciBvdXRwdXQgZ29lcyB0byBzdGRvdXQgaW5zdGVhZCBvZiBzdGRlcnIuXG4gICAqIFNldCB0byBmYWxzZSBpbiB0aGUgSW9Ib3N0IGNvbnN0cnVjdG9yIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIENMSSBDSSBhcmd1bWVudCBpcyBwYXNzZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXRlcm1pbmVkIGZyb20gdGhlIGVudmlyb25tZW50LCBzcGVjaWZpY2FsbHkgYmFzZWQgb24gYHByb2Nlc3MuZW52LkNJYFxuICAgKi9cbiAgcmVhZG9ubHkgaXNDST86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBzaW1wbGUgSU8gaG9zdCBmb3IgYSBub24gaW50ZXJhY3RpdmUgQ0xJIHRoYXQgd3JpdGVzIG1lc3NhZ2VzIHRvIHRoZSBjb25zb2xlIGFuZCByZXR1cm5zIHRoZSBkZWZhdWx0IGFuc3dlciB0byBhbGwgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb25JbnRlcmFjdGl2ZUlvSG9zdCBpbXBsZW1lbnRzIElJb0hvc3Qge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgSW9Ib3N0IGlzIHJ1bm5pbmcgaW4gQ0kgbW9kZS5cbiAgICpcbiAgICogSW4gQ0kgbW9kZSwgYWxsIG5vbi1lcnJvciBvdXRwdXQgZ29lcyB0byBzdGRvdXQgaW5zdGVhZCBvZiBzdGRlcnIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXNDSTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaG9zdCBjYW4gdXNlIGludGVyYWN0aW9ucyBhbmQgbWVzc2FnZSBzdHlsaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlzVFRZOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB0aHJlc2hvbGQuXG4gICAqXG4gICAqIE1lc3NhZ2VzIHdpdGggYSBsb3dlciBwcmlvcml0eSBsZXZlbCB3aWxsIGJlIGlnbm9yZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nTGV2ZWw6IElvTWVzc2FnZUxldmVsO1xuXG4gIC8vIFN0YWNrIEFjdGl2aXR5IFByaW50ZXJcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVByaW50ZXI6IElBY3Rpdml0eVByaW50ZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBOb25JbnRlcmFjdGl2ZUlvSG9zdFByb3BzID0ge30pIHtcbiAgICB0aGlzLmxvZ0xldmVsID0gcHJvcHMubG9nTGV2ZWwgPz8gJ2luZm8nO1xuICAgIHRoaXMuaXNUVFkgPSBwcm9wcy5pc1RUWSA/PyBpc1RUWSgpO1xuICAgIHRoaXMuaXNDSSA9IHByb3BzLmlzQ0kgPz8gaXNDSSgpO1xuXG4gICAgdGhpcy5hY3Rpdml0eVByaW50ZXIgPSBuZXcgSGlzdG9yeUFjdGl2aXR5UHJpbnRlcih7XG4gICAgICBzdHJlYW06IHRoaXMuc2VsZWN0U3RyZWFtRnJvbUxldmVsKCdpbmZvJyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlLlxuICAgKiBUaGUgY2FsbGVyIHdhaXRzIHVudGlsIHRoZSBub3RpZmljYXRpb24gY29tcGxldGVzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG5vdGlmeShtc2c6IElvTWVzc2FnZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpc1N0YWNrQWN0aXZpdHkobXNnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlQcmludGVyLm5vdGlmeShtc2cpO1xuICAgIH1cblxuICAgIGlmICghaXNNZXNzYWdlUmVsZXZhbnRGb3JMZXZlbChtc2csIHRoaXMubG9nTGV2ZWwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0ID0gdGhpcy5mb3JtYXRNZXNzYWdlKG1zZyk7XG4gICAgY29uc3Qgc3RyZWFtID0gdGhpcy5zZWxlY3RTdHJlYW0obXNnKTtcbiAgICBzdHJlYW0/LndyaXRlKG91dHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgb3V0cHV0IHN0cmVhbSwgYmFzZWQgb24gbWVzc2FnZSBhbmQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgc2VsZWN0U3RyZWFtKG1zZzogSW9NZXNzYWdlPGFueT4pOiBOb2RlSlMuV3JpdGVTdHJlYW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdFN0cmVhbUZyb21MZXZlbChtc2cubGV2ZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG91dHB1dCBzdHJlYW0sIGJhc2VkIG9uIG1lc3NhZ2UgbGV2ZWwgYW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNlbGVjdFN0cmVhbUZyb21MZXZlbChsZXZlbDogSW9NZXNzYWdlTGV2ZWwpOiBOb2RlSlMuV3JpdGVTdHJlYW0ge1xuICAgIC8vIFRoZSBzdHJlYW0gc2VsZWN0aW9uIHBvbGljeSBmb3IgdGhlIENMSSBpcyB0aGUgZm9sbG93aW5nOlxuICAgIC8vXG4gICAgLy8gICAoMSkgTWVzc2FnZXMgb2YgbGV2ZWwgYHJlc3VsdGAgYWx3YXlzIGdvIHRvIGBzdGRvdXRgXG4gICAgLy8gICAoMikgTWVzc2FnZXMgb2YgbGV2ZWwgYGVycm9yYCBhbHdheXMgZ28gdG8gYHN0ZGVycmAuXG4gICAgLy8gICAoM2EpIEFsbCByZW1haW5pbmcgbWVzc2FnZXMgZ28gdG8gYHN0ZGVycmAuXG4gICAgLy8gICAoM2IpIElmIHdlIGFyZSBpbiBDSSBtb2RlLCBhbGwgcmVtYWluaW5nIG1lc3NhZ2VzIGdvIHRvIGBzdGRvdXRgLlxuICAgIC8vXG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gcHJvY2Vzcy5zdGRlcnI7XG4gICAgICBjYXNlICdyZXN1bHQnOlxuICAgICAgICByZXR1cm4gcHJvY2Vzcy5zdGRvdXQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5pc0NJID8gcHJvY2Vzcy5zdGRvdXQgOiBwcm9jZXNzLnN0ZGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIGhvc3Qgb2YgYSBtZXNzYWdlIHRoYXQgcmVxdWlyZXMgYSByZXNwb25zZS5cbiAgICpcbiAgICogSWYgdGhlIGhvc3QgZG9lcyBub3QgcmV0dXJuIGEgcmVzcG9uc2UgdGhlIHN1Z2dlc3RlZFxuICAgKiBkZWZhdWx0IHJlc3BvbnNlIGZyb20gdGhlIGlucHV0IG1lc3NhZ2Ugd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlcXVlc3RSZXNwb25zZTxEYXRhVHlwZSwgUmVzcG9uc2VUeXBlPihtc2c6IElvUmVxdWVzdDxEYXRhVHlwZSwgUmVzcG9uc2VUeXBlPik6IFByb21pc2U8UmVzcG9uc2VUeXBlPiB7XG4gICAgLy8gaW4gdGhlIG5vbi1pbnRlcmFjdGl2ZSBJb0hvc3QsIG5vIHJlcXVlc3RzIGFyZSBwcm9tcHRhYmxlXG4gICAgYXdhaXQgdGhpcy5ub3RpZnkobXNnKTtcbiAgICByZXR1cm4gbXNnLmRlZmF1bHRSZXNwb25zZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgbWVzc2FnZSBmb3IgY29uc29sZSBvdXRwdXQgd2l0aCBvcHRpb25hbCBjb2xvciBzdXBwb3J0XG4gICAqL1xuICBwcml2YXRlIGZvcm1hdE1lc3NhZ2UobXNnOiBJb01lc3NhZ2U8dW5rbm93bj4pOiBzdHJpbmcge1xuICAgIC8vIGFwcGx5IHByb3ZpZGVkIHN0eWxlIG9yIGEgZGVmYXVsdCBzdHlsZSBpZiB3ZSdyZSBpbiBUVFkgbW9kZVxuICAgIGxldCBtZXNzYWdlX3RleHQgPSB0aGlzLmlzVFRZXG4gICAgICA/IHN0eWxlTWFwW21zZy5sZXZlbF0obXNnLm1lc3NhZ2UpXG4gICAgICA6IG1zZy5tZXNzYWdlO1xuXG4gICAgLy8gcHJlcGVuZCB0aW1lc3RhbXAgaWYgSW9NZXNzYWdlTGV2ZWwgaXMgREVCVUcgb3IgVFJBQ0UuIFBvc3RwZW5kIGEgbmV3bGluZS5cbiAgICByZXR1cm4gKChtc2cubGV2ZWwgPT09ICdkZWJ1ZycgfHwgbXNnLmxldmVsID09PSAndHJhY2UnKVxuICAgICAgPyBgWyR7dGhpcy5mb3JtYXRUaW1lKG1zZy50aW1lKX1dICR7bWVzc2FnZV90ZXh0fWBcbiAgICAgIDogbWVzc2FnZV90ZXh0KSArICdcXG4nO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgZGF0ZSB0byBISDpNTTpTU1xuICAgKi9cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKGQ6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhZCA9IChuOiBudW1iZXIpOiBzdHJpbmcgPT4gbi50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgcmV0dXJuIGAke3BhZChkLmdldEhvdXJzKCkpfToke3BhZChkLmdldE1pbnV0ZXMoKSl9OiR7cGFkKGQuZ2V0U2Vjb25kcygpKX1gO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlTWFwOiBSZWNvcmQ8SW9NZXNzYWdlTGV2ZWwsIChzdHI6IHN0cmluZykgPT4gc3RyaW5nPiA9IHtcbiAgZXJyb3I6IGNoYWxrLnJlZCxcbiAgd2FybjogY2hhbGsueWVsbG93LFxuICByZXN1bHQ6IGNoYWxrLnJlc2V0LFxuICBpbmZvOiBjaGFsay5yZXNldCxcbiAgZGVidWc6IGNoYWxrLmdyYXksXG4gIHRyYWNlOiBjaGFsay5ncmF5LFxufTtcblxuLyoqXG4gKiBEZXRlY3Qgc3RhY2sgYWN0aXZpdHkgbWVzc2FnZXMgc28gdGhleSBjYW4gYmUgc2VuZCB0byB0aGUgcHJpbnRlci5cbiAqL1xuZnVuY3Rpb24gaXNTdGFja0FjdGl2aXR5KG1zZzogSW9NZXNzYWdlPHVua25vd24+KSB7XG4gIHJldHVybiBtc2cuY29kZSAmJiBbXG4gICAgJ0NES19UT09MS0lUX0k1NTAxJyxcbiAgICAnQ0RLX1RPT0xLSVRfSTU1MDInLFxuICAgICdDREtfVE9PTEtJVF9JNTUwMycsXG4gIF0uaW5jbHVkZXMobXNnLmNvZGUpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.countAssemblyResults = countAssemblyResults;\nconst cloud_assembly_api_1 = require(\"@aws-cdk/cloud-assembly-api\");\nfunction countAssemblyResults(span, assembly) {\n const stacksRecursively = assembly.stacksRecursively;\n span.incCounter('stacks', stacksRecursively.length);\n span.incCounter('assemblies', asmCount(assembly));\n span.incCounter('errorAnns', sum(stacksRecursively.map(s => s.messages.filter(m => m.level === cloud_assembly_api_1.SynthesisMessageLevel.ERROR).length)));\n span.incCounter('warnings', sum(stacksRecursively.map(s => s.messages.filter(m => m.level === cloud_assembly_api_1.SynthesisMessageLevel.WARNING).length)));\n const annotationErrorCodes = stacksRecursively\n .flatMap(s => Object.values(s.metadata)\n .flatMap(ms => ms.filter(m => m.type === ANNOTATION_ERROR_CODE_TYPE)));\n for (const annotationErrorCode of annotationErrorCodes) {\n span.incCounter(`errorAnn:${annotationErrorCode.data}`);\n }\n function asmCount(x) {\n return 1 + x.nestedAssemblies.reduce((acc, asm) => acc + asmCount(asm.nestedAssembly), 0);\n }\n}\nfunction sum(xs) {\n return xs.reduce((a, b) => a + b, 0);\n}\n/**\n * Well-known and agreed-upon value between aws-cdk-lib and the toolkit\n *\n * Do not change, obviously.\n */\nconst ANNOTATION_ERROR_CODE_TYPE = 'aws:cdk:error-code';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtYXNzZW1ibHktcmVzdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvdW50LWFzc2VtYmx5LXJlc3VsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxvREFpQkM7QUFwQkQsb0VBQW9FO0FBR3BFLFNBQWdCLG9CQUFvQixDQUFDLElBQXVCLEVBQUUsUUFBNkI7SUFDekYsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUM7SUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSywwQ0FBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSywwQ0FBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkksTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUI7U0FDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3BDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNFLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxTQUFTLFFBQVEsQ0FBQyxDQUFzQjtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxFQUFZO0lBQ3ZCLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLDBCQUEwQixHQUFHLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgU3ludGhlc2lzTWVzc2FnZUxldmVsIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgSU1lc3NhZ2VTcGFuIH0gZnJvbSAnLi4vLi4vYXBpL2lvL3ByaXZhdGUvc3Bhbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3VudEFzc2VtYmx5UmVzdWx0cyhzcGFuOiBJTWVzc2FnZVNwYW48YW55PiwgYXNzZW1ibHk6IGN4YXBpLkNsb3VkQXNzZW1ibHkpIHtcbiAgY29uc3Qgc3RhY2tzUmVjdXJzaXZlbHkgPSBhc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseTtcbiAgc3Bhbi5pbmNDb3VudGVyKCdzdGFja3MnLCBzdGFja3NSZWN1cnNpdmVseS5sZW5ndGgpO1xuICBzcGFuLmluY0NvdW50ZXIoJ2Fzc2VtYmxpZXMnLCBhc21Db3VudChhc3NlbWJseSkpO1xuICBzcGFuLmluY0NvdW50ZXIoJ2Vycm9yQW5ucycsIHN1bShzdGFja3NSZWN1cnNpdmVseS5tYXAocyA9PiBzLm1lc3NhZ2VzLmZpbHRlcihtID0+IG0ubGV2ZWwgPT09IFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5FUlJPUikubGVuZ3RoKSkpO1xuICBzcGFuLmluY0NvdW50ZXIoJ3dhcm5pbmdzJywgc3VtKHN0YWNrc1JlY3Vyc2l2ZWx5Lm1hcChzID0+IHMubWVzc2FnZXMuZmlsdGVyKG0gPT4gbS5sZXZlbCA9PT0gU3ludGhlc2lzTWVzc2FnZUxldmVsLldBUk5JTkcpLmxlbmd0aCkpKTtcblxuICBjb25zdCBhbm5vdGF0aW9uRXJyb3JDb2RlcyA9IHN0YWNrc1JlY3Vyc2l2ZWx5XG4gICAgLmZsYXRNYXAocyA9PiBPYmplY3QudmFsdWVzKHMubWV0YWRhdGEpXG4gICAgICAuZmxhdE1hcChtcyA9PiBtcy5maWx0ZXIobSA9PiBtLnR5cGUgPT09IEFOTk9UQVRJT05fRVJST1JfQ09ERV9UWVBFKSkpO1xuICBmb3IgKGNvbnN0IGFubm90YXRpb25FcnJvckNvZGUgb2YgYW5ub3RhdGlvbkVycm9yQ29kZXMpIHtcbiAgICBzcGFuLmluY0NvdW50ZXIoYGVycm9yQW5uOiR7YW5ub3RhdGlvbkVycm9yQ29kZS5kYXRhfWApO1xuICB9XG5cbiAgZnVuY3Rpb24gYXNtQ291bnQoeDogY3hhcGkuQ2xvdWRBc3NlbWJseSk6IG51bWJlciB7XG4gICAgcmV0dXJuIDEgKyB4Lm5lc3RlZEFzc2VtYmxpZXMucmVkdWNlKChhY2MsIGFzbSkgPT4gYWNjICsgYXNtQ291bnQoYXNtLm5lc3RlZEFzc2VtYmx5KSwgMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VtKHhzOiBudW1iZXJbXSkge1xuICByZXR1cm4geHMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCk7XG59XG5cbi8qKlxuICogV2VsbC1rbm93biBhbmQgYWdyZWVkLXVwb24gdmFsdWUgYmV0d2VlbiBhd3MtY2RrLWxpYiBhbmQgdGhlIHRvb2xraXRcbiAqXG4gKiBEbyBub3QgY2hhbmdlLCBvYnZpb3VzbHkuXG4gKi9cbmNvbnN0IEFOTk9UQVRJT05fRVJST1JfQ09ERV9UWVBFID0gJ2F3czpjZGs6ZXJyb3ItY29kZSc7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assemblyFromSource = assemblyFromSource;\nconst cloud_assembly_1 = require(\"../../api/cloud-assembly\");\nconst private_1 = require(\"../../api/cloud-assembly/private\");\n/**\n * Creates a Toolkit internal CloudAssembly from a CloudAssemblySource.\n *\n * The caller assumes ownership of the returned `StackAssembly`, and `dispose()`\n * should be called on this object after use.\n *\n * @param assemblySource - the source for the cloud assembly\n * @param cache - if the assembly should be cached, default: `true`\n * @returns the CloudAssembly object\n */\nasync function assemblyFromSource(ioHelper, assemblySource, cache = true) {\n if (assemblySource instanceof private_1.StackAssembly) {\n return assemblySource;\n }\n if (cache) {\n return new private_1.StackAssembly(new cloud_assembly_1.CachedCloudAssembly(await assemblySource.produce()), ioHelper);\n }\n return new private_1.StackAssembly(await assemblySource.produce(), ioHelper);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBCQSxnREFVQztBQWxDRCw2REFBMEY7QUFDMUYsOERBQWlFO0FBYWpFOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxRQUFrQixFQUFFLGNBQW9DLEVBQUUsUUFBaUIsSUFBSTtJQUN0SCxJQUFJLGNBQWMsWUFBWSx1QkFBYSxFQUFFLENBQUM7UUFDNUMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLElBQUksdUJBQWEsQ0FBQyxJQUFJLG9DQUFtQixDQUFDLE1BQU0sY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELE9BQU8sSUFBSSx1QkFBYSxDQUFDLE1BQU0sY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB0eXBlIHsgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9hcGkvYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBDYWNoZWRDbG91ZEFzc2VtYmx5LCB0eXBlIElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IFN0YWNrQXNzZW1ibHkgfSBmcm9tICcuLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ib3N0IH0gZnJvbSAnLi4vLi4vYXBpL3BsdWdpbic7XG5cbi8qKlxuICogSGVscGVyIHN0cnVjdCB0byBwYXNzIGludGVybmFsIHNlcnZpY2VzIGFyb3VuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sa2l0U2VydmljZXMge1xuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG4gIGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcGx1Z2luSG9zdDogUGx1Z2luSG9zdDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgVG9vbGtpdCBpbnRlcm5hbCBDbG91ZEFzc2VtYmx5IGZyb20gYSBDbG91ZEFzc2VtYmx5U291cmNlLlxuICpcbiAqIFRoZSBjYWxsZXIgYXNzdW1lcyBvd25lcnNoaXAgb2YgdGhlIHJldHVybmVkIGBTdGFja0Fzc2VtYmx5YCwgYW5kIGBkaXNwb3NlKClgXG4gKiBzaG91bGQgYmUgY2FsbGVkIG9uIHRoaXMgb2JqZWN0IGFmdGVyIHVzZS5cbiAqXG4gKiBAcGFyYW0gYXNzZW1ibHlTb3VyY2UgLSB0aGUgc291cmNlIGZvciB0aGUgY2xvdWQgYXNzZW1ibHlcbiAqIEBwYXJhbSBjYWNoZSAtIGlmIHRoZSBhc3NlbWJseSBzaG91bGQgYmUgY2FjaGVkLCBkZWZhdWx0OiBgdHJ1ZWBcbiAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZW1ibHlGcm9tU291cmNlKGlvSGVscGVyOiBJb0hlbHBlciwgYXNzZW1ibHlTb3VyY2U6IElDbG91ZEFzc2VtYmx5U291cmNlLCBjYWNoZTogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPFN0YWNrQXNzZW1ibHk+IHtcbiAgaWYgKGFzc2VtYmx5U291cmNlIGluc3RhbmNlb2YgU3RhY2tBc3NlbWJseSkge1xuICAgIHJldHVybiBhc3NlbWJseVNvdXJjZTtcbiAgfVxuXG4gIGlmIChjYWNoZSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tBc3NlbWJseShuZXcgQ2FjaGVkQ2xvdWRBc3NlbWJseShhd2FpdCBhc3NlbWJseVNvdXJjZS5wcm9kdWNlKCkpLCBpb0hlbHBlcik7XG4gIH1cblxuICByZXR1cm4gbmV3IFN0YWNrQXNzZW1ibHkoYXdhaXQgYXNzZW1ibHlTb3VyY2UucHJvZHVjZSgpLCBpb0hlbHBlcik7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeploymentErrorCodes = exports.NoResultsFoundError = exports.ContextProviderError = exports.DeploymentError = exports.AssemblyError = exports.AuthenticationError = exports.ToolkitError = void 0;\nconst TOOLKIT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ToolkitError');\nconst AUTHENTICATION_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AuthenticationError');\nconst DEPLOYMENT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.DeploymentError');\nconst ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AssemblyError');\nconst CONTEXT_PROVIDER_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ContextProviderError');\nconst NO_RESULTS_FOUND_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.NoResultsFoundError');\n/**\n * Represents a general toolkit error in the AWS CDK Toolkit.\n */\nclass ToolkitError extends Error {\n /**\n * Determines if a given error is an instance of ToolkitError.\n */\n static isToolkitError(x) {\n return x !== null && typeof (x) === 'object' && TOOLKIT_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of AuthenticationError.\n */\n static isAuthenticationError(x) {\n return ToolkitError.isToolkitError(x) && AUTHENTICATION_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of DeploymentError.\n */\n static isDeploymentError(x) {\n return ToolkitError.isToolkitError(x) && DEPLOYMENT_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of AssemblyError.\n */\n static isAssemblyError(x) {\n return ToolkitError.isToolkitError(x) && ASSEMBLY_ERROR_SYMBOL in x;\n }\n /**\n * Determines if a given error is an instance of ContextProviderError.\n */\n static isContextProviderError(x) {\n return ToolkitError.isToolkitError(x) && CONTEXT_PROVIDER_ERROR_SYMBOL in x;\n }\n /**\n * A ToolkitError with an original error as cause\n */\n static withCause(errorCode, message, error) {\n return new ToolkitError(errorCode, message, 'toolkit', error);\n }\n /**\n * The type of the error, defaults to \"toolkit\".\n */\n type;\n /**\n * Denotes the source of the error as the toolkit.\n */\n source;\n /**\n * The specific original cause of the error, if available\n */\n cause;\n constructor(errorCode, message, type = 'toolkit', cause) {\n super(message);\n this.name = errorCode;\n Object.setPrototypeOf(this, ToolkitError.prototype);\n Object.defineProperty(this, TOOLKIT_ERROR_SYMBOL, { value: true });\n this.type = type;\n this.source = 'toolkit';\n this.cause = cause;\n }\n}\nexports.ToolkitError = ToolkitError;\n/**\n * Represents an authentication-specific error in the AWS CDK Toolkit.\n */\nclass AuthenticationError extends ToolkitError {\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n constructor(errorCode, message) {\n super(errorCode, message, 'authentication');\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n Object.defineProperty(this, AUTHENTICATION_ERROR_SYMBOL, { value: true });\n }\n}\nexports.AuthenticationError = AuthenticationError;\n/**\n * Represents an error causes by cloud assembly synthesis\n *\n * This includes errors thrown during app execution, as well as failing annotations.\n */\nclass AssemblyError extends ToolkitError {\n /**\n * An AssemblyError with an original error as cause\n */\n static withCause(message, error) {\n return new AssemblyError(message, undefined, error);\n }\n /**\n * An AssemblyError with a list of stacks as cause\n */\n static withStacks(message, stacks) {\n return new AssemblyError(message, stacks);\n }\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n /**\n * The stacks that caused the error, if available\n *\n * The `messages` property of each `cxapi.CloudFormationStackArtifact` will contain the respective errors.\n * Absence indicates synthesis didn't fully complete.\n */\n stacks;\n _synthErrorCode;\n constructor(message, stacks, cause) {\n super('AssemblyError', message, 'assembly', cause);\n Object.setPrototypeOf(this, AssemblyError.prototype);\n Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });\n this.stacks = stacks;\n }\n /**\n * The synthesis error code\n */\n get synthErrorCode() {\n return this._synthErrorCode;\n }\n attachSynthesisErrorCode(synthesisErrorCode) {\n this._synthErrorCode = synthesisErrorCode;\n }\n}\nexports.AssemblyError = AssemblyError;\n/**\n * Represents a deployment-related error in the AWS CDK Toolkit.\n */\nclass DeploymentError extends ToolkitError {\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n deploymentErrorCode;\n constructor(message, deploymentErrorCode) {\n super('DeploymentError', message, 'deployment');\n Object.setPrototypeOf(this, DeploymentError.prototype);\n Object.defineProperty(this, DEPLOYMENT_ERROR_SYMBOL, { value: true });\n this.deploymentErrorCode = deploymentErrorCode;\n }\n}\nexports.DeploymentError = DeploymentError;\n/**\n * Represents an error originating from a Context Provider\n */\nclass ContextProviderError extends ToolkitError {\n /**\n * Determines if a given error is an instance of NoResultsFoundError.\n */\n static isNoResultsFoundError(x) {\n return ToolkitError.isContextProviderError(x) && NO_RESULTS_FOUND_ERROR_SYMBOL in x;\n }\n /**\n * A ContextProviderError with an original error as cause\n */\n static withCause(errorCode, message, error) {\n return new ContextProviderError(errorCode, message, error);\n }\n /**\n * Denotes the source of the error as user.\n */\n source = 'user';\n constructor(errorCode, message, cause) {\n super(errorCode, message, 'context-provider', cause);\n Object.setPrototypeOf(this, ContextProviderError.prototype);\n Object.defineProperty(this, CONTEXT_PROVIDER_ERROR_SYMBOL, { value: true });\n }\n}\nexports.ContextProviderError = ContextProviderError;\n/**\n * A specific context provider lookup failure indicating no results where found for a context query\n */\nclass NoResultsFoundError extends ContextProviderError {\n constructor(message) {\n super('NoResultsFound', message);\n Object.setPrototypeOf(this, NoResultsFoundError.prototype);\n Object.defineProperty(this, NO_RESULTS_FOUND_ERROR_SYMBOL, { value: true });\n }\n}\nexports.NoResultsFoundError = NoResultsFoundError;\nclass DeploymentErrorCodes {\n static STACK_DISAPPEARED_ERROR_CODE = 'StackDisappeared';\n static UNKNOWN_ERROR = 'UnknownError';\n static PRIVATE_RESOURCE_ERROR = 'PrivateResourceError';\n}\nexports.DeploymentErrorCodes = DeploymentErrorCodes;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDN0UsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDM0YsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7QUFDbkYsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDL0UsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFDOUYsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFFN0Y7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxLQUFLO0lBQ3JDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFNO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLG9CQUFvQixJQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBTTtRQUN4QyxPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFNO1FBQ3BDLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSx1QkFBdUIsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztP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R0FBRyxNQUFNLENBQUM7SUFFaEMsWUFBWSxTQUFpQixFQUFFLE9BQWUsRUFBRSxLQUFlO1FBQzdELEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGO0FBekJELG9EQXlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxvQkFBb0I7SUFDM0QsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQU5ELGtEQU1DO0FBRUQsTUFBc0Isb0JBQW9CO0lBQ2pDLE1BQU0sQ0FBVSw0QkFBNEIsR0FBRyxrQkFBa0IsQ0FBQztJQUNsRSxNQUFNLENBQVUsYUFBYSxHQUFHLGNBQWMsQ0FBQztJQUMvQyxNQUFNLENBQVUsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7O0FBSHpFLG9EQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuXG5jb25zdCBUT09MS0lUX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLlRvb2xraXRFcnJvcicpO1xuY29uc3QgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQXV0aGVudGljYXRpb25FcnJvcicpO1xuY29uc3QgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LWxpYi5EZXBsb3ltZW50RXJyb3InKTtcbmNvbnN0IEFTU0VNQkxZX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLkFzc2VtYmx5RXJyb3InKTtcbmNvbnN0IENPTlRFWFRfUFJPVklERVJfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuQ29udGV4dFByb3ZpZGVyRXJyb3InKTtcbmNvbnN0IE5PX1JFU1VMVFNfRk9VTkRfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuTm9SZXN1bHRzRm91bmRFcnJvcicpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmFsIHRvb2xraXQgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRvb2xraXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBUb29sa2l0RXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVG9vbGtpdEVycm9yKHg6IGFueSk6IHggaXMgVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YoeCkgPT09ICdvYmplY3QnICYmIFRPT0xLSVRfRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIEF1dGhlbnRpY2F0aW9uRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQXV0aGVudGljYXRpb25FcnJvcih4OiBhbnkpOiB4IGlzIEF1dGhlbnRpY2F0aW9uRXJyb3Ige1xuICAgIHJldHVybiBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoeCkgJiYgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIERlcGxveW1lbnRFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNEZXBsb3ltZW50RXJyb3IoeDogYW55KTogeCBpcyBEZXBsb3ltZW50RXJyb3Ige1xuICAgIHJldHVybiBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoeCkgJiYgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQXNzZW1ibHlFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNBc3NlbWJseUVycm9yKHg6IGFueSk6IHggaXMgQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBBU1NFTUJMWV9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQ29udGV4dFByb3ZpZGVyRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ29udGV4dFByb3ZpZGVyRXJyb3IoeDogYW55KTogeCBpcyBDb250ZXh0UHJvdmlkZXJFcnJvciB7XG4gICAgcmV0dXJuIFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcih4KSAmJiBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgVG9vbGtpdEVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKGVycm9yQ29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4gbmV3IFRvb2xraXRFcnJvcihlcnJvckNvZGUsIG1lc3NhZ2UsICd0b29sa2l0JywgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBlcnJvciwgZGVmYXVsdHMgdG8gXCJ0b29sa2l0XCIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZW5vdGVzIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yIGFzIHRoZSB0b29sa2l0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogJ3Rvb2xraXQnIHwgJ3VzZXInO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgb3JpZ2luYWwgY2F1c2Ugb2YgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjYXVzZT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoZXJyb3JDb2RlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ3Rvb2xraXQnLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSBlcnJvckNvZGU7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb2xraXRFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBUT09MS0lUX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuc291cmNlID0gJ3Rvb2xraXQnO1xuICAgIHRoaXMuY2F1c2UgPSBjYXVzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXV0aGVudGljYXRpb24tc3BlY2lmaWMgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoZXJyb3JDb2RlLCBtZXNzYWdlLCAnYXV0aGVudGljYXRpb24nKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aGVudGljYXRpb25FcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBVVRIRU5USUNBVElPTl9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVycm9yIGNhdXNlcyBieSBjbG91ZCBhc3NlbWJseSBzeW50aGVzaXNcbiAqXG4gKiBUaGlzIGluY2x1ZGVzIGVycm9ycyB0aHJvd24gZHVyaW5nIGFwcCBleGVjdXRpb24sIGFzIHdlbGwgYXMgZmFpbGluZyBhbm5vdGF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2VtYmx5RXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogQW4gQXNzZW1ibHlFcnJvciB3aXRoIGFuIG9yaWdpbmFsIGVycm9yIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhDYXVzZShtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBc3NlbWJseUVycm9yKG1lc3NhZ2UsIHVuZGVmaW5lZCwgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIEFzc2VtYmx5RXJyb3Igd2l0aCBhIGxpc3Qgb2Ygc3RhY2tzIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhTdGFja3MobWVzc2FnZTogc3RyaW5nLCBzdGFja3M/OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSk6IEFzc2VtYmx5RXJyb3Ige1xuICAgIHJldHVybiBuZXcgQXNzZW1ibHlFcnJvcihtZXNzYWdlLCBzdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFja3MgdGhhdCBjYXVzZWQgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICpcbiAgICogVGhlIGBtZXNzYWdlc2AgcHJvcGVydHkgb2YgZWFjaCBgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0YCB3aWxsIGNvbnRhaW4gdGhlIHJlc3BlY3RpdmUgZXJyb3JzLlxuICAgKiBBYnNlbmNlIGluZGljYXRlcyBzeW50aGVzaXMgZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdO1xuXG4gIHByaXZhdGUgX3N5bnRoRXJyb3JDb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcignQXNzZW1ibHlFcnJvcicsIG1lc3NhZ2UsICdhc3NlbWJseScsIGNhdXNlKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5zdGFja3MgPSBzdGFja3M7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN5bnRoZXNpcyBlcnJvciBjb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN5bnRoRXJyb3JDb2RlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N5bnRoRXJyb3JDb2RlO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaFN5bnRoZXNpc0Vycm9yQ29kZShzeW50aGVzaXNFcnJvckNvZGU6IHN0cmluZykge1xuICAgIHRoaXMuX3N5bnRoRXJyb3JDb2RlID0gc3ludGhlc2lzRXJyb3JDb2RlO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRlcGxveW1lbnQtcmVsYXRlZCBlcnJvciBpbiB0aGUgQVdTIENESyBUb29sa2l0LlxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudEVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveW1lbnRFcnJvckNvZGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGRlcGxveW1lbnRFcnJvckNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKCdEZXBsb3ltZW50RXJyb3InLCBtZXNzYWdlLCAnZGVwbG95bWVudCcpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBEZXBsb3ltZW50RXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgREVQTE9ZTUVOVF9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5kZXBsb3ltZW50RXJyb3JDb2RlID0gZGVwbG95bWVudEVycm9yQ29kZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3Igb3JpZ2luYXRpbmcgZnJvbSBhIENvbnRleHQgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHRQcm92aWRlckVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBOb1Jlc3VsdHNGb3VuZEVycm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc05vUmVzdWx0c0ZvdW5kRXJyb3IoeDogYW55KTogeCBpcyBOb1Jlc3VsdHNGb3VuZEVycm9yIHtcbiAgICByZXR1cm4gVG9vbGtpdEVycm9yLmlzQ29udGV4dFByb3ZpZGVyRXJyb3IoeCkgJiYgTk9fUkVTVUxUU19GT1VORF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIENvbnRleHRQcm92aWRlckVycm9yIHdpdGggYW4gb3JpZ2luYWwgZXJyb3IgYXMgY2F1c2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aENhdXNlKGVycm9yQ29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogQ29udGV4dFByb3ZpZGVyRXJyb3Ige1xuICAgIHJldHVybiBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoZXJyb3JDb2RlLCBtZXNzYWdlLCBlcnJvcik7XG4gIH1cblxuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihlcnJvckNvZGUsIG1lc3NhZ2UsICdjb250ZXh0LXByb3ZpZGVyJywgY2F1c2UpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb250ZXh0UHJvdmlkZXJFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgc3BlY2lmaWMgY29udGV4dCBwcm92aWRlciBsb29rdXAgZmFpbHVyZSBpbmRpY2F0aW5nIG5vIHJlc3VsdHMgd2hlcmUgZm91bmQgZm9yIGEgY29udGV4dCBxdWVyeVxuICovXG5leHBvcnQgY2xhc3MgTm9SZXN1bHRzRm91bmRFcnJvciBleHRlbmRzIENvbnRleHRQcm92aWRlckVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ05vUmVzdWx0c0ZvdW5kJywgbWVzc2FnZSk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE5vUmVzdWx0c0ZvdW5kRXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgTk9fUkVTVUxUU19GT1VORF9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlcGxveW1lbnRFcnJvckNvZGVzIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVEFDS19ESVNBUFBFQVJFRF9FUlJPUl9DT0RFID0gJ1N0YWNrRGlzYXBwZWFyZWQnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOS05PV05fRVJST1IgPSAnVW5rbm93bkVycm9yJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUklWQVRFX1JFU09VUkNFX0VSUk9SID0gJ1ByaXZhdGVSZXNvdXJjZUVycm9yJztcbn1cblxuIl19","\"use strict\";\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Toolkit = void 0;\nrequire(\"../private/dispose-polyfill\");\nconst path = require(\"node:path\");\nconst cxapi = require(\"@aws-cdk/cloud-assembly-api\");\nconst cloud_assembly_schema_1 = require(\"@aws-cdk/cloud-assembly-schema\");\nconst chalk = require(\"chalk\");\nconst chokidar = require(\"chokidar\");\nconst handler_js_1 = require(\"chokidar/handler.js\");\n/**\n * File events that we care about from chokidar.\n * In chokidar v4, EventName includes additional events like 'error', 'raw', 'ready', 'all'\n * that we need to filter out in the 'all' handler.\n */\nconst FILE_EVENTS = [handler_js_1.EVENTS.ADD, handler_js_1.EVENTS.ADD_DIR, handler_js_1.EVENTS.CHANGE, handler_js_1.EVENTS.UNLINK, handler_js_1.EVENTS.UNLINK_DIR];\n/**\n * Type guard to check if an event is a file event we should process.\n */\nfunction isFileEvent(event) {\n return FILE_EVENTS.includes(event);\n}\nconst fs = require(\"fs-extra\");\nconst non_interactive_io_host_1 = require(\"./non-interactive-io-host\");\nconst private_1 = require(\"./private\");\nconst toolkit_error_1 = require(\"./toolkit-error\");\nconst bootstrap_1 = require(\"../actions/bootstrap\");\nconst deploy_1 = require(\"../actions/deploy\");\nconst private_2 = require(\"../actions/deploy/private\");\nconst private_3 = require(\"../actions/diff/private\");\nconst private_4 = require(\"../actions/watch/private\");\nconst aws_auth_1 = require(\"../api/aws-auth\");\nconst awscli_compatible_1 = require(\"../api/aws-auth/awscli-compatible\");\nconst private_5 = require(\"../api/aws-auth/private\");\nconst bootstrap_2 = require(\"../api/bootstrap\");\nconst cloud_assembly_1 = require(\"../api/cloud-assembly\");\nconst private_6 = require(\"../api/cloud-assembly/private\");\nconst disposable_box_1 = require(\"../api/cloud-assembly/private/disposable-box\");\nconst source_builder_1 = require(\"../api/cloud-assembly/source-builder\");\nconst deployments_1 = require(\"../api/deployments\");\nconst diff_1 = require(\"../api/diff\");\nconst drift_1 = require(\"../api/drift\");\nconst drift_formatter_1 = require(\"../api/drift/drift-formatter\");\nconst private_7 = require(\"../api/io/private\");\nconst logs_monitor_1 = require(\"../api/logs-monitor\");\nconst plugin_1 = require(\"../api/plugin\");\nconst refactoring_1 = require(\"../api/refactoring\");\nconst cloudformation_1 = require(\"../api/refactoring/cloudformation\");\nconst context_1 = require(\"../api/refactoring/context\");\nconst stack_definitions_1 = require(\"../api/refactoring/stack-definitions\");\nconst resource_import_1 = require(\"../api/resource-import\");\nconst private_8 = require(\"../api/tags/private\");\nconst toolkit_info_1 = require(\"../api/toolkit-info\");\nconst work_graph_1 = require(\"../api/work-graph\");\nconst payloads_1 = require(\"../payloads\");\nconst util_1 = require(\"../util\");\nconst concurrency_1 = require(\"../util/concurrency\");\nconst glob_matcher_1 = require(\"../util/glob-matcher\");\nconst promises_1 = require(\"../util/promises\");\nconst count_assembly_results_1 = require(\"./private/count-assembly-results\");\n/**\n * The AWS CDK Programmatic Toolkit\n */\nclass Toolkit extends source_builder_1.CloudAssemblySourceBuilder {\n props;\n /**\n * The toolkit stack name used for bootstrapping resources.\n */\n toolkitStackName;\n /**\n * The IoHost of this Toolkit\n */\n ioHost;\n /**\n * The plugin host for loading and managing plugins\n */\n pluginHost;\n /**\n * Cache of the internal SDK Provider instance\n */\n sdkProviderCache;\n baseCredentials;\n unstableFeatures;\n constructor(props = {}) {\n super();\n this.props = props;\n this.toolkitStackName = props.toolkitStackName ?? toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME;\n this.pluginHost = props.pluginHost ?? new plugin_1.PluginHost();\n let ioHost = props.ioHost ?? new non_interactive_io_host_1.NonInteractiveIoHost();\n if (props.emojis === false) {\n ioHost = (0, private_7.withoutEmojis)(ioHost);\n }\n if (props.color === false) {\n ioHost = (0, private_7.withoutColor)(ioHost);\n }\n // After removing emojis and color, we might end up with floating whitespace at either end of the message\n // This also removes newlines that we currently emit for CLI backwards compatibility.\n this.ioHost = (0, private_7.withTrimmedWhitespace)(ioHost);\n this.baseCredentials = props.sdkConfig?.baseCredentials ?? aws_auth_1.BaseCredentials.awsCliCompatible();\n this.unstableFeatures = props.unstableFeatures ?? [];\n }\n /**\n * Access to the AWS SDK\n * @internal\n */\n async sdkProvider(action) {\n // @todo this needs to be different instance per action\n if (!this.sdkProviderCache) {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const clientConfig = {\n requestHandler: (0, awscli_compatible_1.sdkRequestHandler)(this.props.sdkConfig?.httpOptions?.agent),\n };\n const config = await this.baseCredentials.sdkBaseConfig(ioHelper, clientConfig);\n this.sdkProviderCache = new private_5.SdkProvider(config.credentialProvider, config.defaultRegion, {\n ioHelper,\n logger: new private_5.IoHostSdkLogger(ioHelper),\n pluginHost: this.pluginHost,\n requestHandler: clientConfig.requestHandler,\n });\n }\n return this.sdkProviderCache;\n }\n /**\n * Helper to provide the CloudAssemblySourceBuilder with required toolkit services\n * @internal\n */\n async sourceBuilderServices() {\n return {\n ioHelper: (0, private_7.asIoHelper)(this.ioHost, 'assembly'),\n sdkProvider: await this.sdkProvider('assembly'),\n pluginHost: this.pluginHost,\n };\n }\n /**\n * Bootstrap Action\n */\n async bootstrap(environments, options = {}) {\n const startTime = Date.now();\n const results = [];\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'bootstrap');\n const bootstrapEnvironments = await environments.getEnvironments(this.ioHost);\n const source = options.source ?? bootstrap_1.BootstrapSource.default();\n const parameters = options.parameters;\n const bootstrapper = new bootstrap_2.Bootstrapper(source, ioHelper);\n const sdkProvider = await this.sdkProvider('bootstrap');\n const limit = (0, concurrency_1.pLimit)(20);\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n await Promise.all(bootstrapEnvironments.map((environment, currentIdx) => limit(async () => {\n const bootstrapSpan = await ioHelper.span(private_7.SPAN.BOOTSTRAP_SINGLE)\n .begin(`${chalk.bold(environment.name)}: bootstrapping...`, {\n total: bootstrapEnvironments.length,\n current: currentIdx + 1,\n environment,\n });\n try {\n const bootstrapResult = await bootstrapper.bootstrapEnvironment(environment, sdkProvider, {\n ...options,\n toolkitStackName: this.toolkitStackName,\n source,\n parameters: parameters?.parameters,\n usePreviousParameters: parameters?.keepExistingParameters,\n });\n const message = bootstrapResult.noOp\n ? ` ✅ ${environment.name} (no changes)`\n : ` ✅ ${environment.name}`;\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9900.msg(chalk.green('\\n' + message), { environment }));\n const envTime = await bootstrapSpan.end();\n const result = {\n environment,\n status: bootstrapResult.noOp ? 'no-op' : 'success',\n duration: envTime.asMs,\n };\n results.push(result);\n }\n catch (e) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E9900.msg(`\\n ❌ ${chalk.bold(environment.name)} failed: ${(0, util_1.formatErrorMessage)(e)}`, { error: e }));\n throw e;\n }\n })));\n return {\n environments: results,\n duration: Date.now() - startTime,\n };\n }\n /**\n * Synth Action\n *\n * The caller assumes ownership of the `CachedCloudAssembly` and is responsible for calling `dispose()` on\n * it after use.\n */\n async synth(cx, options = {}) {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'synth');\n const assembly = __addDisposableResource(env_1, new disposable_box_1.AsyncDisposableBox(await synthAndMeasure(ioHelper, cx, stacksOpt(options))), true);\n const stacks = await assembly.value.selectStacksV2(stacksOpt(options));\n const autoValidateStacks = options.validateStacks ? [assembly.value.selectStacksForValidation()] : [];\n await this.validateStacksMetadata(stacks.concat(...autoValidateStacks), ioHelper);\n // if we have a single stack, print it to STDOUT\n const message = `Successfully synthesized to ${chalk.blue(path.resolve(stacks.assembly.directory))}`;\n const assemblyData = {\n assemblyDirectory: stacks.assembly.directory,\n stacksCount: stacks.stackCount,\n stackIds: stacks.hierarchicalIds,\n };\n if (stacks.stackCount === 1) {\n const firstStack = stacks.firstStack;\n const template = firstStack.template;\n const obscuredTemplate = (0, util_1.obscureTemplate)(template);\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I1901.msg(message, {\n ...assemblyData,\n stack: {\n stackName: firstStack.stackName,\n hierarchicalId: firstStack.hierarchicalId,\n template,\n stringifiedJson: (0, util_1.serializeStructure)(obscuredTemplate, true),\n stringifiedYaml: (0, util_1.serializeStructure)(obscuredTemplate, false),\n },\n }));\n }\n else {\n // not outputting template to stdout, let's explain things to the user a little bit...\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I1902.msg(chalk.green(message), assemblyData));\n await ioHelper.defaults.info(`Supply a stack id (${stacks.stackArtifacts.map((s) => chalk.green(s.hierarchicalId)).join(', ')}) to display its template.`);\n }\n return new cloud_assembly_1.CachedCloudAssembly(assembly.take());\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n const result_1 = __disposeResources(env_1);\n if (result_1)\n await result_1;\n }\n }\n /**\n * Diff Action\n */\n async diff(cx, options = {}) {\n const env_2 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'diff');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_2, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stacks = await assembly.selectStacksV2(selectStacks);\n const diffSpan = await ioHelper.span(private_7.SPAN.DIFF_STACK).begin({ stacks: selectStacks });\n const deployments = await this.deploymentsForAction('diff');\n const strict = !!options.strict;\n const contextLines = options.contextLines || 3;\n let diffs = 0;\n let securityDiffs = 0;\n const templateInfos = await (0, private_3.prepareDiff)(diffSpan.asHelper, stacks, deployments, await this.sdkProvider('diff'), options);\n const templateDiffs = {};\n for (const templateInfo of templateInfos) {\n const formatter = new diff_1.DiffFormatter({ templateInfo });\n const stackDiff = formatter.formatStackDiff({ strict, contextLines });\n // Security Diff\n const securityDiff = formatter.formatSecurityDiff();\n const formattedSecurityDiff = securityDiff.permissionChangeType !== payloads_1.PermissionChangeType.NONE ? stackDiff.formattedDiff : undefined;\n // We only warn about BROADENING changes\n if (securityDiff.permissionChangeType == payloads_1.PermissionChangeType.BROADENING) {\n const warningMessage = 'This deployment will make potentially sensitive changes according to your current security approval level.\\nPlease confirm you intend to make the following modifications:\\n';\n await diffSpan.defaults.warn(warningMessage);\n await diffSpan.defaults.info(securityDiff.formattedDiff);\n }\n // Stack Diff\n diffs += stackDiff.numStacksWithChanges;\n securityDiffs += securityDiff.numStacksWithChanges;\n (0, private_3.appendObject)(templateDiffs, formatter.diffs);\n await diffSpan.notify(private_7.IO.CDK_TOOLKIT_I4002.msg(stackDiff.formattedDiff, {\n stack: templateInfo.newTemplate,\n diffs: formatter.diffs,\n numStacksWithChanges: stackDiff.numStacksWithChanges,\n numStacksWithSecurityChanges: securityDiff.numStacksWithChanges,\n permissionChanges: securityDiff.permissionChangeType,\n formattedDiff: {\n diff: stackDiff.formattedDiff,\n security: formattedSecurityDiff,\n },\n }));\n }\n await diffSpan.end(`✨ Number of stacks with differences: ${diffs}`, {\n numStacksWithChanges: diffs,\n numStacksWithSecurityChanges: securityDiffs,\n diffs: templateDiffs,\n });\n return templateDiffs;\n }\n catch (e_2) {\n env_2.error = e_2;\n env_2.hasError = true;\n }\n finally {\n const result_2 = __disposeResources(env_2);\n if (result_2)\n await result_2;\n }\n }\n /**\n * Drift Action\n */\n async drift(cx, options = {}) {\n const env_3 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'drift');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_3, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stacks = await assembly.selectStacksV2(selectStacks);\n const driftSpan = await ioHelper.span(private_7.SPAN.DRIFT_APP).begin({ stacks: selectStacks });\n const allDriftResults = {};\n const unavailableDrifts = [];\n const sdkProvider = await this.sdkProvider('drift');\n for (const stack of stacks.stackArtifacts) {\n const cfn = (await sdkProvider.forEnvironment(stack.environment, plugin_1.Mode.ForReading)).sdk.cloudFormation();\n const driftResults = await (0, drift_1.detectStackDrift)(cfn, driftSpan.asHelper, stack.stackName);\n if (!driftResults.StackResourceDrifts) {\n const stackName = stack.displayName ?? stack.stackName;\n unavailableDrifts.push(stackName);\n await driftSpan.notify(private_7.IO.CDK_TOOLKIT_W4591.msg(`${stackName}: No drift results available`, { stack }));\n continue;\n }\n const formatter = new drift_formatter_1.DriftFormatter({ stack, resourceDrifts: driftResults.StackResourceDrifts });\n const driftOutput = formatter.formatStackDrift();\n const stackDrift = {\n numResourcesWithDrift: driftOutput.numResourcesWithDrift,\n numResourcesUnchecked: driftOutput.numResourcesUnchecked,\n formattedDrift: {\n unchanged: driftOutput.unchanged,\n unchecked: driftOutput.unchecked,\n modified: driftOutput.modified,\n deleted: driftOutput.deleted,\n },\n };\n allDriftResults[formatter.stackName] = stackDrift;\n // header\n await driftSpan.defaults.info(driftOutput.stackHeader);\n // print the different sections at different levels\n if (driftOutput.unchanged) {\n await driftSpan.defaults.debug(driftOutput.unchanged);\n }\n if (driftOutput.unchecked) {\n await driftSpan.defaults.debug(driftOutput.unchecked);\n }\n if (driftOutput.modified) {\n await driftSpan.defaults.info(driftOutput.modified);\n }\n if (driftOutput.deleted) {\n await driftSpan.defaults.info(driftOutput.deleted);\n }\n // main stack result\n await driftSpan.notify(private_7.IO.CDK_TOOLKIT_I4590.msg(driftOutput.summary, {\n stack,\n drift: stackDrift,\n }));\n }\n // print summary\n const totalDrifts = Object.values(allDriftResults).reduce((total, current) => total + (current.numResourcesWithDrift ?? 0), 0);\n const totalUnchecked = Object.values(allDriftResults).reduce((total, current) => total + (current.numResourcesUnchecked ?? 0), 0);\n await driftSpan.end(`\\n✨ Number of resources with drift: ${totalDrifts}${totalUnchecked ? ` (${totalUnchecked} unchecked)` : ''}`);\n if (unavailableDrifts.length) {\n await driftSpan.defaults.warn(`\\n⚠️ Failed to check drift for ${unavailableDrifts.length} stack(s). Check log for more details.`);\n }\n return allDriftResults;\n }\n catch (e_3) {\n env_3.error = e_3;\n env_3.hasError = true;\n }\n finally {\n const result_3 = __disposeResources(env_3);\n if (result_3)\n await result_3;\n }\n }\n /**\n * Publish Assets Action\n *\n * Publishes assets for the selected stacks without deploying\n */\n async publishAssets(cx, options = {}) {\n const env_4 = { stack: [], error: void 0, hasError: false };\n try {\n this.requireUnstableFeature('publish-assets');\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'publish-assets');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_4, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stackCollection = await assembly.selectStacksV2(selectStacks);\n await this.validateStacksMetadata(stackCollection, ioHelper);\n if (stackCollection.stackCount === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E5001.msg('No stacks selected'));\n return {\n publishedAssets: [],\n };\n }\n const deployments = await this.deploymentsForAction('publish-assets');\n const stacks = stackCollection.stackArtifacts;\n const stacksAndTheirAssetManifests = stacks.flatMap((stack) => [\n stack,\n ...stack.dependencies.filter(x => cxapi.AssetManifestArtifact.isAssetManifestArtifact(x)),\n ]);\n const workGraph = new work_graph_1.WorkGraphBuilder(ioHelper, true).build(stacksAndTheirAssetManifests);\n if (!options.force) {\n await (0, private_2.removePublishedAssetsFromWorkGraph)(workGraph, deployments, options);\n }\n const assetNodes = Object.values(workGraph.nodes)\n .filter((n) => n.type === 'asset-publish');\n if (assetNodes.length === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9400.msg(chalk.green('\\n✨ All assets are already published\\n')));\n return {\n publishedAssets: [],\n };\n }\n const assets = assetNodes.map(n => n.asset);\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9401.msg('Publishing assets', { assets }));\n const concurrency = options.concurrency ?? 4;\n const graphConcurrency = {\n 'stack': 1,\n 'asset-build': concurrency,\n 'asset-publish': concurrency,\n };\n await workGraph.doParallel(graphConcurrency, {\n deployStack: async () => {\n // No-op: we're only publishing assets, not deploying\n },\n buildAsset: this.createBuildAssetFunction(ioHelper, deployments, undefined),\n publishAsset: this.createPublishAssetFunction(ioHelper, deployments, undefined, options.force),\n });\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I9402.msg(chalk.green('\\n✨ Assets published successfully\\n'), { assets }));\n return {\n publishedAssets: assets,\n };\n }\n catch (e_4) {\n env_4.error = e_4;\n env_4.hasError = true;\n }\n finally {\n const result_4 = __disposeResources(env_4);\n if (result_4)\n await result_4;\n }\n }\n /**\n * List Action\n *\n * List selected stacks and their dependencies\n */\n async list(cx, options = {}) {\n const env_5 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'list');\n const selectStacks = stacksOpt(options);\n const assembly = __addDisposableResource(env_5, await synthAndMeasure(ioHelper, cx, selectStacks), true);\n const stackCollection = await assembly.selectStacksV2(selectStacks);\n const stacks = stackCollection.withDependencies();\n const message = stacks.map(s => s.id).join('\\n');\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I2901.msg(message, { stacks }));\n return stacks;\n }\n catch (e_5) {\n env_5.error = e_5;\n env_5.hasError = true;\n }\n finally {\n const result_5 = __disposeResources(env_5);\n if (result_5)\n await result_5;\n }\n }\n /**\n * Deploy Action\n *\n * Deploys the selected stacks into an AWS account\n */\n async deploy(cx, options = {}) {\n const env_6 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'deploy');\n const assembly = __addDisposableResource(env_6, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._deploy(assembly, 'deploy', assembly.synthDuration, options);\n }\n catch (e_6) {\n env_6.error = e_6;\n env_6.hasError = true;\n }\n finally {\n const result_6 = __disposeResources(env_6);\n if (result_6)\n await result_6;\n }\n }\n /**\n * Helper to allow deploy being called as part of the watch action.\n */\n async _deploy(assembly, action, synthDuration, options = {}) {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const selectStacks = stacksOpt(options);\n const stackCollection = await assembly.selectStacksV2(selectStacks);\n await this.validateStacksMetadata(stackCollection, ioHelper);\n const ret = {\n stacks: [],\n };\n if (stackCollection.stackCount === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E5001.msg('This app contains no stacks'));\n return ret;\n }\n const deployments = await this.deploymentsForAction('deploy');\n const migrator = new resource_import_1.ResourceMigrator({ deployments, ioHelper });\n await migrator.tryMigrateResources(stackCollection, options);\n const parameterMap = (0, private_2.buildParameterMap)(options.parameters?.parameters);\n if (options.deploymentMethod?.method === 'hotswap') {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_W5400.msg([\n '⚠️ Hotswap deployments deliberately introduce CloudFormation drift to speed up deployments',\n '⚠️ They should only be used for development - never use them for your production Stacks!',\n ].join('\\n')));\n }\n const stacks = stackCollection.stackArtifacts;\n const stackOutputs = {};\n const outputsFile = options.outputsFile;\n const deployStack = async (stackNode) => {\n const stack = stackNode.stack;\n if (stackCollection.stackCount !== 1) {\n await ioHelper.defaults.info(chalk.bold(stack.displayName));\n }\n if (!stack.environment) {\n throw new toolkit_error_1.ToolkitError('StackEnvironmentMissing', `Stack ${stack.displayName} does not define an environment, and AWS credentials could not be obtained from standard locations or no region was configured.`);\n }\n // The generated stack has no resources\n const resourceCount = Object.keys(stack.template.Resources || {}).length;\n if (resourceCount === 0) {\n // stack is empty and doesn't exist => do nothing\n const stackExists = await deployments.stackExists({ stack });\n if (!stackExists) {\n return ioHelper.notify(private_7.IO.CDK_TOOLKIT_W5021.msg(`${chalk.bold(stack.displayName)}: stack has no resources, skipping deployment.`));\n }\n // stack is empty, but exists => delete\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_W5022.msg(`${chalk.bold(stack.displayName)}: stack has no resources, deleting existing stack.`));\n await this._destroy(assembly, 'deploy', {\n stacks: { patterns: [stack.hierarchicalId], strategy: cloud_assembly_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE },\n roleArn: options.roleArn,\n });\n return;\n }\n const currentTemplate = await deployments.readCurrentTemplate(stack);\n // Following are the same semantics we apply with respect to Notification ARNs (dictated by the SDK)\n //\n // - undefined => cdk ignores it, as if it wasn't supported (allows external management).\n // - []: => cdk manages it, and the user wants to wipe it out.\n // - ['arn-1'] => cdk manages it, and the user wants to set it to ['arn-1'].\n const notificationArns = (!!options.notificationArns || !!stack.notificationArns)\n ? (options.notificationArns ?? []).concat(stack.notificationArns ?? [])\n : undefined;\n for (const notificationArn of notificationArns ?? []) {\n if (!(0, util_1.validateSnsTopicArn)(notificationArn)) {\n throw new toolkit_error_1.ToolkitError('InvalidSnsTopicArn', `Notification arn ${notificationArn} is not a valid arn for an SNS topic`);\n }\n }\n // Deploy options that are shared between change set creation and execution\n const sharedDeployOptions = {\n stack,\n deployName: stack.stackName,\n roleArn: options.roleArn,\n toolkitStackName: this.toolkitStackName,\n reuseAssets: options.reuseAssets,\n tags: options.tags?.length ? options.tags : (0, private_8.tagsForStack)(stack),\n forceDeployment: options.forceDeployment,\n parameters: Object.assign({}, parameterMap['*'], parameterMap[stack.stackName]),\n usePreviousParameters: options.parameters?.keepExistingParameters,\n rollback: options.rollback,\n notificationArns,\n extraUserAgent: options.extraUserAgent,\n assetParallelism: options.assetParallelism,\n };\n // When using change-set method, always create the change set upfront.\n // This gives us an accurate diff for approval and avoids creating it twice.\n // For non-executing deployments (prepare-change-set), this is the final result.\n const prepareResult = (0, private_2.isChangeSetDeployment)(options.deploymentMethod)\n ? await deployments.prepareStack({\n ...sharedDeployOptions,\n deploymentMethod: options.deploymentMethod,\n cleanupOnNoOp: (0, private_2.isExecutingChangeSetDeployment)(options.deploymentMethod),\n })\n : undefined;\n const formatter = new diff_1.DiffFormatter({\n templateInfo: {\n oldTemplate: currentTemplate,\n newTemplate: stack,\n changeSet: prepareResult?.changeSet,\n },\n });\n const securityDiff = formatter.formatSecurityDiff();\n const stackDiff = formatter.formatStackDiff();\n // Send a request response with the diff as part of the message,\n // and the template diff as data\n // (IoHost decides whether to print depending on permissionChangeType)\n const hasSecurityChanges = securityDiff.permissionChangeType !== payloads_1.PermissionChangeType.NONE;\n const deployMotivation = hasSecurityChanges\n ? '\"--require-approval\" is enabled and stack includes security-sensitive updates.'\n : '\"--require-approval\" is enabled and stack includes updates.';\n const diffOutput = hasSecurityChanges ? securityDiff.formattedDiff : stackDiff.formattedDiff;\n const deployQuestion = `${diffOutput}\\n\\n${deployMotivation}\\nDo you wish to deploy these changes`;\n const deployConfirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I5060.req(deployQuestion, {\n motivation: deployMotivation,\n concurrency,\n permissionChangeType: securityDiff.permissionChangeType,\n templateDiffs: formatter.diffs,\n }));\n if (!deployConfirmed) {\n if (prepareResult?.changeSet?.ChangeSetName) {\n await deployments.cleanupChangeSet(stack, prepareResult.changeSet.ChangeSetName);\n }\n throw new toolkit_error_1.ToolkitError('DeployAborted', 'Aborted by user');\n }\n const stackIndex = stacks.indexOf(stack) + 1;\n const deploySpan = await ioHelper.span(private_7.SPAN.DEPLOY_STACK)\n .begin(`${chalk.bold(stack.displayName)}: deploying... [${stackIndex}/${stackCollection.stackCount}]`, {\n total: stackCollection.stackCount,\n current: stackIndex,\n stack,\n });\n deploySpan.incCounter('resources', resourceCount);\n let deployDuration;\n try {\n const prepareIsFinal = prepareResult && (prepareResult.noOp || (0, private_2.isNonExecutingChangeSetDeployment)(options.deploymentMethod));\n let deployResult = prepareIsFinal ? prepareResult : undefined;\n let rollback = options.rollback;\n let iteration = 0;\n while (!deployResult) {\n if (++iteration > 2) {\n throw new toolkit_error_1.ToolkitError('DeployLoopUnstable', 'This loop should have stabilized in 2 iterations, but didn\\'t. If you are seeing this error, please report it at https://github.com/aws/aws-cdk/issues/new/choose');\n }\n const r = await deployments.deployStack({\n ...sharedDeployOptions,\n // On the first iteration, execute the prepared change set.\n // On retries (after rollback), create a new change set since the old one is gone.\n deploymentMethod: iteration === 1 && (0, private_2.isExecutingChangeSetDeployment)(options.deploymentMethod)\n ? (0, private_2.toExecuteChangeSetDeployment)(options.deploymentMethod)\n : options.deploymentMethod,\n rollback,\n });\n switch (r.type) {\n case 'did-deploy-stack':\n deployResult = r;\n break;\n case 'failpaused-need-rollback-first': {\n const motivation = r.reason === 'replacement'\n ? `Stack is in a paused fail state (${r.status}) and change includes a replacement which cannot be deployed with \"--no-rollback\"`\n : `Stack is in a paused fail state (${r.status}) and command line arguments do not include \"--no-rollback\"`;\n const question = `${motivation}. Perform a regular deployment`;\n const confirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I5050.req(question, {\n motivation,\n concurrency,\n }));\n if (!confirmed) {\n throw new toolkit_error_1.ToolkitError('RollbackAborted', 'Aborted by user');\n }\n // Perform a rollback\n await this._rollback(assembly, action, {\n stacks: {\n patterns: [stack.hierarchicalId],\n strategy: cloud_assembly_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE,\n },\n orphanFailedResources: options.orphanFailedResourcesDuringRollback,\n });\n // Go around through the 'while' loop again but switch rollback to true.\n rollback = true;\n break;\n }\n case 'replacement-requires-rollback': {\n const motivation = 'Change includes a replacement which cannot be deployed with \"--no-rollback\"';\n const question = `${motivation}. Perform a regular deployment`;\n const confirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I5050.req(question, {\n motivation,\n concurrency,\n }));\n if (!confirmed) {\n throw new toolkit_error_1.ToolkitError('ReplacementRollbackAborted', 'Aborted by user');\n }\n // Go around through the 'while' loop again but switch rollback to true.\n rollback = true;\n break;\n }\n default:\n throw new toolkit_error_1.ToolkitError('UnexpectedDeployResult', `Unexpected result type from deployStack: ${JSON.stringify(r)}. If you are seeing this error, please report it at https://github.com/aws/aws-cdk/issues/new/choose`);\n }\n }\n const message = deployResult.noOp\n ? ` ✅ ${stack.displayName} (no changes)`\n : ` ✅ ${stack.displayName}`;\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5900.msg(chalk.green('\\n' + message), deployResult));\n deployDuration = await deploySpan.timing(private_7.IO.CDK_TOOLKIT_I5000);\n if (Object.keys(deployResult.outputs).length > 0) {\n const buffer = ['Outputs:'];\n stackOutputs[stack.stackName] = deployResult.outputs;\n for (const name of Object.keys(deployResult.outputs).sort()) {\n const value = deployResult.outputs[name];\n buffer.push(`${chalk.cyan(stack.id)}.${chalk.cyan(name)} = ${chalk.underline(chalk.cyan(value))}`);\n }\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5901.msg(buffer.join('\\n')));\n }\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5901.msg(`Stack ARN:\\n${deployResult.stackArn}`));\n ret.stacks.push({\n stackName: stack.stackName,\n environment: {\n account: stack.environment.account,\n region: stack.environment.region,\n },\n stackArn: deployResult.stackArn,\n outputs: deployResult.outputs,\n hierarchicalId: stack.hierarchicalId,\n });\n }\n catch (e) {\n // It has to be exactly this string because an integration test tests for\n // \"bold(stackname) failed: ResourceNotReady: \"\n const code = toolkit_error_1.ToolkitError.isToolkitError(e) ? e.name : 'DeployStackFailed';\n const newMessage = [`❌ ${chalk.bold(stack.stackName)} failed:`, ...(e.name ? [`${e.name}:`] : []), e.message].join(' ');\n throw new toolkit_error_1.ToolkitError(code, newMessage);\n }\n finally {\n if (options.traceLogs) {\n // deploy calls that originate from watch will come with their own cloudWatchLogMonitor\n const cloudWatchLogMonitor = options.cloudWatchLogMonitor ?? new logs_monitor_1.CloudWatchLogEventMonitor({ ioHelper });\n const foundLogGroupsResult = await (0, logs_monitor_1.findCloudWatchLogGroups)(await this.sdkProvider('deploy'), ioHelper, stack);\n cloudWatchLogMonitor.addLogGroups(foundLogGroupsResult.env, foundLogGroupsResult.sdk, foundLogGroupsResult.logGroupNames);\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5031.msg(`The following log groups are added: ${foundLogGroupsResult.logGroupNames}`));\n }\n // If an outputs file has been specified, create the file path and write stack outputs to it once.\n // Outputs are written after all stacks have been deployed. If a stack deployment fails,\n // all of the outputs from successfully deployed stacks before the failure will still be written.\n if (outputsFile) {\n fs.ensureFileSync(outputsFile);\n await fs.writeJson(outputsFile, stackOutputs, {\n spaces: 2,\n encoding: 'utf8',\n });\n }\n }\n const duration = synthDuration.asMs + (deployDuration?.asMs ?? 0);\n await deploySpan.end(`\\n✨ Total time: ${(0, util_1.formatTime)(duration)}s\\n`, { duration });\n };\n const assetBuildTime = options.assetBuildTime ?? deploy_1.AssetBuildTime.ALL_BEFORE_DEPLOY;\n const prebuildAssets = assetBuildTime === deploy_1.AssetBuildTime.ALL_BEFORE_DEPLOY;\n const concurrency = options.concurrency || 1;\n const stacksAndTheirAssetManifests = stacks.flatMap((stack) => [\n stack,\n ...stack.dependencies.filter(x => cxapi.AssetManifestArtifact.isAssetManifestArtifact(x)),\n ]);\n const workGraph = new work_graph_1.WorkGraphBuilder(ioHelper, prebuildAssets).build(stacksAndTheirAssetManifests);\n // Unless we are running with '--force', skip already published assets\n if (!options.forceAssetPublishing) {\n await (0, private_2.removePublishedAssetsFromWorkGraph)(workGraph, deployments, options);\n }\n const graphConcurrency = {\n 'stack': concurrency,\n 'asset-build': (options.assetParallelism ?? true) ? options.assetBuildConcurrency ?? 1 : 1, // This will be CPU-bound/memory bound, mostly matters for Docker builds\n 'asset-publish': (options.assetParallelism ?? true) ? 8 : 1, // This will be I/O-bound, 8 in parallel seems reasonable\n };\n await workGraph.doParallel(graphConcurrency, {\n deployStack,\n buildAsset: this.createBuildAssetFunction(ioHelper, deployments, options.roleArn),\n publishAsset: this.createPublishAssetFunction(ioHelper, deployments, options.roleArn, options.forceAssetPublishing),\n });\n return ret;\n }\n /**\n * Watch Action\n *\n * Continuously observe project files and deploy the selected stacks\n * automatically when changes are detected. Defaults to hotswap deployments.\n *\n * This function returns immediately, starting a watcher in the background.\n */\n async watch(cx, options = {}) {\n const env_7 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'watch');\n const assembly = __addDisposableResource(env_7, await (0, private_1.assemblyFromSource)(ioHelper, cx, false), true);\n const rootDir = options.watchDir ?? process.cwd();\n // For the \"include\" setting, the behavior is:\n // 1. \"watch\" setting without an \"include\" key? We default to observing \"**\".\n // 2. \"watch\" setting with an empty \"include\" key? We default to observing \"**\".\n // 3. Non-empty \"include\" key? Just use the \"include\" key.\n const watchIncludes = options.include ?? [];\n if (watchIncludes.length <= 0) {\n watchIncludes.push('**');\n }\n // For the \"exclude\" setting, the behavior is to add some default excludes in addition to\n // patterns specified by the user sensible default patterns:\n const watchExcludes = options.exclude ?? [...private_4.WATCH_EXCLUDE_DEFAULTS];\n // 1. The CDK output directory, if it is under the rootDir\n const relativeOutDir = path.relative(rootDir, assembly.directory);\n if (Boolean(relativeOutDir && !relativeOutDir.startsWith('..' + path.sep) && !path.isAbsolute(relativeOutDir))) {\n watchExcludes.push(`${relativeOutDir}/**`);\n }\n // 2. Any file whose name starts with a dot.\n watchExcludes.push('.*', '**/.*');\n // 3. Any directory's content whose name starts with a dot.\n watchExcludes.push('**/.*/**');\n // 4. Any node_modules and its content (even if it's not a JS/TS project, you might be using a local aws-cli package)\n watchExcludes.push('**/node_modules/**');\n // Print some debug information on computed settings\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5310.msg([\n `root directory used for 'watch' is: ${rootDir}`,\n `'include' patterns for 'watch': ${JSON.stringify(watchIncludes)}`,\n `'exclude' patterns for 'watch': ${JSON.stringify(watchExcludes)}`,\n ].join('\\n'), {\n watchDir: rootDir,\n includes: watchIncludes,\n excludes: watchExcludes,\n }));\n let latch = 'pre-ready';\n const cloudWatchLogMonitor = options.traceLogs ? new logs_monitor_1.CloudWatchLogEventMonitor({ ioHelper }) : undefined;\n const deployAndWatch = async () => {\n latch = 'deploying';\n await cloudWatchLogMonitor?.deactivate();\n await this.invokeDeployFromWatch(assembly, options, cloudWatchLogMonitor);\n // If latch is still 'deploying' after the 'await', that's fine,\n // but if it's 'queued', that means we need to deploy again\n while (latch === 'queued') {\n // TypeScript doesn't realize latch can change between 'awaits',\n // and thinks the above 'while' condition is always 'false' without the cast\n latch = 'deploying';\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5315.msg(\"Detected file changes during deployment. Invoking 'cdk deploy' again\"));\n await this.invokeDeployFromWatch(assembly, options, cloudWatchLogMonitor);\n }\n latch = 'open';\n await cloudWatchLogMonitor?.activate();\n };\n // Create ignore matcher for chokidar v4 compatibility\n // Chokidar v4 removed glob pattern support, so we use picomatch to filter files\n // We pass rootDir because chokidar v4 passes absolute paths to the ignored callback\n const shouldIgnore = (0, glob_matcher_1.createIgnoreMatcher)({\n include: watchIncludes,\n exclude: watchExcludes,\n rootDir,\n });\n const watcher = chokidar\n .watch('.', {\n ignored: shouldIgnore,\n cwd: rootDir,\n })\n .on('ready', async () => {\n latch = 'open';\n await ioHelper.defaults.debug(\"'watch' received the 'ready' event. From now on, all file changes will trigger a deployment\");\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5314.msg(\"Triggering initial 'cdk deploy'\"));\n await deployAndWatch();\n })\n .on('all', async (event, filePath) => {\n // Filter out non-file events (e.g., 'error', 'raw', 'ready', 'all')\n // These are handled separately or not relevant for watch deployments\n if (!isFileEvent(event)) {\n return;\n }\n const watchEvent = {\n event,\n path: filePath,\n };\n if (latch === 'pre-ready') {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5311.msg(`'watch' is observing ${event === 'addDir' ? 'directory' : 'the file'} '${filePath}' for changes`, watchEvent));\n }\n else if (latch === 'open') {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5312.msg(`Detected change to '${filePath}' (type: ${event}). Triggering 'cdk deploy'`, watchEvent));\n await deployAndWatch();\n }\n else {\n // this means latch is either 'deploying' or 'queued'\n latch = 'queued';\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I5313.msg(`Detected change to '${filePath}' (type: ${event}) while 'cdk deploy' is still running. Will queue for another deployment after this one finishes'`, watchEvent));\n }\n });\n const stoppedPromise = (0, promises_1.promiseWithResolvers)();\n return {\n async dispose() {\n // stop the logs monitor, if it exists\n await cloudWatchLogMonitor?.deactivate();\n // close the watcher itself\n await watcher.close();\n stoppedPromise.resolve();\n return stoppedPromise.promise;\n },\n async waitForEnd() {\n return stoppedPromise.promise;\n },\n async [Symbol.asyncDispose]() {\n return this.dispose();\n },\n };\n }\n catch (e_7) {\n env_7.error = e_7;\n env_7.hasError = true;\n }\n finally {\n const result_7 = __disposeResources(env_7);\n if (result_7)\n await result_7;\n }\n }\n /**\n * Rollback Action\n *\n * Rolls back the selected stacks.\n */\n async rollback(cx, options = {}) {\n const env_8 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'rollback');\n const assembly = __addDisposableResource(env_8, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._rollback(assembly, 'rollback', options);\n }\n catch (e_8) {\n env_8.error = e_8;\n env_8.hasError = true;\n }\n finally {\n const result_8 = __disposeResources(env_8);\n if (result_8)\n await result_8;\n }\n }\n /**\n * Helper to allow rollback being called as part of the deploy or watch action.\n */\n async _rollback(assembly, action, options) {\n const selectStacks = stacksOpt(options);\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const stacks = await assembly.selectStacksV2(selectStacks);\n await this.validateStacksMetadata(stacks, ioHelper);\n const ret = {\n stacks: [],\n };\n if (stacks.stackCount === 0) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E6001.msg('No stacks selected'));\n return ret;\n }\n let anyRollbackable = false;\n for (const [index, stack] of stacks.stackArtifacts.entries()) {\n const rollbackSpan = await ioHelper.span(private_7.SPAN.ROLLBACK_STACK).begin(`Rolling back ${chalk.bold(stack.displayName)}`, {\n total: stacks.stackCount,\n current: index + 1,\n stack,\n });\n const deployments = await this.deploymentsForAction('rollback');\n try {\n const stackResult = await deployments.rollbackStack({\n stack,\n roleArn: options.roleArn,\n toolkitStackName: this.toolkitStackName,\n orphanFailedResources: options.orphanFailedResources,\n validateBootstrapStackVersion: options.validateBootstrapStackVersion,\n orphanLogicalIds: options.orphanLogicalIds,\n });\n if (!stackResult.notInRollbackableState) {\n anyRollbackable = true;\n }\n await rollbackSpan.end();\n ret.stacks.push({\n environment: {\n account: stack.environment.account,\n region: stack.environment.region,\n },\n stackName: stack.stackName,\n stackArn: stackResult.stackArn,\n result: stackResult.notInRollbackableState ? 'already-stable' : 'rolled-back',\n });\n }\n catch (e) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E6900.msg(`\\n ❌ ${chalk.bold(stack.displayName)} failed: ${(0, util_1.formatErrorMessage)(e)}`, { error: e }));\n throw toolkit_error_1.ToolkitError.withCause('RollbackFailed', 'Rollback failed (use --force to orphan failing resources)', e);\n }\n }\n if (!anyRollbackable) {\n throw new toolkit_error_1.ToolkitError('NoRollbackableStacks', 'No stacks were in a state that could be rolled back');\n }\n return ret;\n }\n /**\n * Refactor Action. Moves resources from one location (stack + logical ID) to another.\n */\n async refactor(cx, options = {}) {\n const env_9 = { stack: [], error: void 0, hasError: false };\n try {\n this.requireUnstableFeature('refactor');\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'refactor');\n const assembly = __addDisposableResource(env_9, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._refactor(assembly, ioHelper, cx, options);\n }\n catch (e_9) {\n env_9.error = e_9;\n env_9.hasError = true;\n }\n finally {\n const result_9 = __disposeResources(env_9);\n if (result_9)\n await result_9;\n }\n }\n async _refactor(assembly, ioHelper, cx, options = {}) {\n const sdkProvider = await this.sdkProvider('refactor');\n const selectedStacks = await assembly.selectStacksV2(stacksOpt(options));\n const groups = await (0, refactoring_1.groupStacks)(sdkProvider, selectedStacks.stackArtifacts, options.additionalStackNames ?? []);\n for (let { environment, localStacks, deployedStacks } of groups) {\n await ioHelper.defaults.info((0, refactoring_1.formatEnvironmentSectionHeader)(environment));\n const newStacks = localStacks.filter(s => !deployedStacks.map(t => t.stackName).includes(s.stackName));\n if (newStacks.length > 0) {\n /*\n When the CloudFormation stack refactor operation creates a new stack, and the resources being moved to that\n new stack have references to other resources, CloudFormation needs to do what they call \"collapsing the\n template\". The details don't really matter, except that, in the process, it calls some service APIs, to read\n the resources being moved. The role it uses to call these APIs internally is the role the user called the\n stack refactoring API with, which in our case is the CloudFormation deployment role, from the bootstrap stack,\n by default.\n \n The problem is that this role does not have permissions to read all resource types. In this case,\n CloudFormation will roll back the refactor operation. Since this is an implementation detail of the API, that\n the user cannot know about, and didn't ask for, it will be very surprising. So we've decided to block this use\n case until CloudFormation supports passing a different role to use for these read operations, as is the case\n with deployment.\n */\n let message = `The following stack${newStacks.length === 1 ? ' is' : 's are'} new: ${newStacks.map(s => s.stackName).join(', ')}\\n`;\n message += 'Creation of new stacks is not yet supported by the refactor command. ';\n message += 'Please deploy any new stacks separately before refactoring your stacks.';\n await ioHelper.defaults.error(chalk.red(message));\n continue;\n }\n try {\n const context = new context_1.RefactoringContext({\n environment,\n deployedStacks,\n localStacks,\n assumeRoleArn: options.roleArn,\n overrides: getOverrides(environment, deployedStacks, localStacks),\n });\n const mappings = context.mappings;\n if (mappings.length === 0 && context.ambiguousPaths.length === 0) {\n await ioHelper.defaults.info('Nothing to refactor.');\n continue;\n }\n const typedMappings = mappings\n .map(m => m.toTypedMapping())\n .filter(m => m.type !== 'AWS::CDK::Metadata');\n let refactorMessage = (0, refactoring_1.formatTypedMappings)(typedMappings);\n const refactorResult = { typedMappings };\n const stackDefinitions = await (0, stack_definitions_1.generateStackDefinitions)(mappings, deployedStacks, localStacks, environment, sdkProvider, ioHelper);\n if (context.ambiguousPaths.length > 0) {\n const paths = context.ambiguousPaths;\n refactorMessage += '\\n' + (0, refactoring_1.formatAmbiguousMappings)(paths);\n refactorResult.ambiguousPaths = paths;\n }\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I8900.msg(refactorMessage, refactorResult));\n if (options.dryRun || context.mappings.length === 0 || context.ambiguousPaths.length > 0) {\n // Nothing left to do.\n continue;\n }\n // In interactive mode (TTY) we need confirmation before proceeding\n if (process.stdout.isTTY && !await confirm(options.force ?? false)) {\n await ioHelper.defaults.info(chalk.red(`Refactoring canceled for environment aws://${environment.account}/${environment.region}\\n`));\n continue;\n }\n await ioHelper.defaults.info('Refactoring...');\n await context.execute(stackDefinitions, sdkProvider, ioHelper);\n await ioHelper.defaults.info('✅ Stack refactor complete');\n await ioHelper.defaults.info('Deploying updated stacks to finalize refactor...');\n await this.deploy(cx, {\n stacks: private_6.ALL_STACKS,\n forceDeployment: true,\n });\n }\n catch (e) {\n const message = `❌ Refactor failed: ${formatError(e)}`;\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E8900.msg(message, { error: e }));\n // Also debugging the error, because the API does not always return a user-friendly message\n await ioHelper.defaults.debug(e.message);\n }\n }\n function getOverrides(environment, deployedStacks, localStacks) {\n const mappingGroup = options.overrides\n ?.find(g => g.region === environment.region && g.account === environment.account);\n return mappingGroup == null\n ? []\n : Object.entries(mappingGroup.resources ?? {})\n .map(([source, destination]) => new cloudformation_1.ResourceMapping(getResourceLocation(source, deployedStacks), getResourceLocation(destination, localStacks)));\n }\n function getResourceLocation(location, stacks) {\n for (let stack of stacks) {\n const [stackName, logicalId] = location.split('.');\n if (stackName != null && logicalId != null && stack.stackName === stackName && stack.template.Resources?.[logicalId] != null) {\n return new cloudformation_1.ResourceLocation(stack, logicalId);\n }\n else {\n const resourceEntry = Object\n .entries(stack.template.Resources ?? {})\n .find(([_, r]) => r.Metadata?.['aws:cdk:path'] === location);\n if (resourceEntry != null) {\n return new cloudformation_1.ResourceLocation(stack, resourceEntry[0]);\n }\n }\n }\n throw new toolkit_error_1.ToolkitError('ResourceLocationNotFound', `Cannot find resource in location ${location}`);\n }\n async function confirm(force) {\n // 'force' is set to true is the equivalent of having pre-approval for any refactor\n if (force) {\n return true;\n }\n const question = 'Do you wish to refactor these resources?';\n return ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I8910.req(question, {\n motivation: 'User input is needed',\n }));\n }\n function formatError(error) {\n try {\n const payload = JSON.parse(error.message);\n const messages = [];\n if (payload.reason?.StatusReason) {\n messages.push(`Refactor creation: [${payload.reason?.Status}] ${payload.reason.StatusReason}`);\n }\n if (payload.reason?.ExecutionStatusReason) {\n messages.push(`Refactor execution: [${payload.reason?.Status}] ${payload.reason.ExecutionStatusReason}`);\n }\n return messages.length > 0 ? messages.join('\\n') : `Unknown error (Stack refactor ID: ${payload.reason?.StackRefactorId ?? 'unknown'})`;\n }\n catch (e) {\n return (0, util_1.formatErrorMessage)(error);\n }\n }\n }\n /**\n * Destroy Action\n *\n * Destroys the selected Stacks.\n */\n async destroy(cx, options = {}) {\n const env_10 = { stack: [], error: void 0, hasError: false };\n try {\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'destroy');\n const assembly = __addDisposableResource(env_10, await synthAndMeasure(ioHelper, cx, stacksOpt(options)), true);\n return await this._destroy(assembly, 'destroy', options);\n }\n catch (e_10) {\n env_10.error = e_10;\n env_10.hasError = true;\n }\n finally {\n const result_10 = __disposeResources(env_10);\n if (result_10)\n await result_10;\n }\n }\n /**\n * Helper to allow destroy being called as part of the deploy action.\n */\n async _destroy(assembly, action, options) {\n const selectStacks = stacksOpt(options);\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, action);\n const stacks = await assembly.selectStacksV2(selectStacks);\n const ret = {\n stacks: [],\n };\n const motivation = 'Destroying stacks is an irreversible action';\n const question = `Are you sure you want to delete: ${chalk.red(stacks.hierarchicalIds.join(', '))}`;\n const confirmed = await ioHelper.requestResponse(private_7.IO.CDK_TOOLKIT_I7010.req(question, { motivation }));\n if (!confirmed) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E7010.msg('Aborted by user'));\n return ret;\n }\n const concurrency = options.concurrency || 1;\n let destroyCount = 0;\n const destroySpan = await ioHelper.span(private_7.SPAN.DESTROY_ACTION).begin({\n stacks: stacks.stackArtifacts,\n });\n try {\n const destroyStack = async (stackNode) => {\n const stack = stackNode.stack;\n destroyCount++;\n try {\n const singleDestroySpan = await ioHelper.span(private_7.SPAN.DESTROY_STACK)\n .begin(chalk.green(`${chalk.blue(stack.displayName)}: destroying... [${destroyCount}/${stacks.stackCount}]`), {\n total: stacks.stackCount,\n current: destroyCount,\n stack,\n });\n const deployments = await this.deploymentsForAction(action);\n const result = await deployments.destroyStack({\n stack,\n deployName: stack.stackName,\n roleArn: options.roleArn,\n });\n ret.stacks.push({\n environment: {\n account: stack.environment.account,\n region: stack.environment.region,\n },\n stackName: stack.stackName,\n stackArn: result.stackArn,\n stackExisted: result.stackArn !== undefined,\n });\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_I7900.msg(chalk.green(`\\n ✅ ${chalk.blue(stack.displayName)}: ${action}ed`), stack));\n await singleDestroySpan.end();\n }\n catch (e) {\n await ioHelper.notify(private_7.IO.CDK_TOOLKIT_E7900.msg(`\\n ❌ ${chalk.blue(stack.displayName)}: ${action} failed ${e}`, { error: e }));\n throw e;\n }\n };\n const workGraph = (0, work_graph_1.buildDestroyWorkGraph)(stacks.stackArtifacts, ioHelper);\n await workGraph.processStacks(concurrency, destroyStack);\n return ret;\n }\n finally {\n await destroySpan.end();\n }\n }\n /**\n * Validate the stacks for errors and warnings according to the CLI's current settings\n */\n async validateStacksMetadata(stacks, ioHost) {\n const builder = (level) => {\n switch (level) {\n case 'error':\n return private_7.IO.CDK_ASSEMBLY_E9999;\n case 'warn':\n return private_7.IO.CDK_ASSEMBLY_W9999;\n default:\n return private_7.IO.CDK_ASSEMBLY_I9999;\n }\n };\n await stacks.validateMetadata(this.props.assemblyFailureAt, async (level, msg) => ioHost.notify(builder(level).msg(`[${level} at ${msg.id}] ${msg.entry.data}`, msg)));\n }\n /**\n * Create a deployments class\n */\n async deploymentsForAction(action) {\n return new deployments_1.Deployments({\n sdkProvider: await this.sdkProvider(action),\n toolkitStackName: this.toolkitStackName,\n ioHelper: (0, private_7.asIoHelper)(this.ioHost, action),\n });\n }\n async invokeDeployFromWatch(assembly, options, cloudWatchLogMonitor) {\n // watch defaults to hotswap deployment\n const deploymentMethod = options.deploymentMethod ?? { method: 'hotswap' };\n const deployOptions = {\n ...options,\n cloudWatchLogMonitor,\n deploymentMethod,\n extraUserAgent: `cdk-watch/hotswap-${deploymentMethod.method === 'hotswap' ? 'on' : 'off'}`,\n };\n try {\n await this._deploy(assembly, 'watch', zeroTime(), deployOptions);\n }\n catch {\n // just continue - deploy will show the error\n }\n }\n /**\n * Retrieve feature flag information from the cloud assembly\n */\n async flags(cx) {\n const env_11 = { stack: [], error: void 0, hasError: false };\n try {\n this.requireUnstableFeature('flags');\n const ioHelper = (0, private_7.asIoHelper)(this.ioHost, 'flags');\n const assembly = __addDisposableResource(env_11, await (0, private_1.assemblyFromSource)(ioHelper, cx), true);\n const artifacts = Object.values(assembly.cloudAssembly.manifest.artifacts ?? {});\n const featureFlagReports = artifacts.filter(a => a.type === cloud_assembly_schema_1.ArtifactType.FEATURE_FLAG_REPORT);\n const flags = featureFlagReports.flatMap(report => {\n const properties = report.properties;\n const moduleName = properties.module;\n const flagsWithUnconfiguredBehavesLike = Object.entries(properties.flags)\n .filter(([_, flagInfo]) => flagInfo.unconfiguredBehavesLike != undefined);\n const shouldIncludeUnconfiguredBehavesLike = flagsWithUnconfiguredBehavesLike.length > 0;\n return Object.entries(properties.flags).map(([flagName, flagInfo]) => {\n const baseFlag = {\n module: moduleName,\n name: flagName,\n recommendedValue: flagInfo.recommendedValue,\n userValue: flagInfo.userValue ?? undefined,\n explanation: flagInfo.explanation ?? '',\n };\n if (shouldIncludeUnconfiguredBehavesLike) {\n return {\n ...baseFlag,\n unconfiguredBehavesLike: {\n v2: flagInfo.unconfiguredBehavesLike?.v2 ?? false,\n },\n };\n }\n return baseFlag;\n });\n });\n return flags;\n }\n catch (e_11) {\n env_11.error = e_11;\n env_11.hasError = true;\n }\n finally {\n const result_11 = __disposeResources(env_11);\n if (result_11)\n await result_11;\n }\n }\n requireUnstableFeature(requestedFeature) {\n if (!this.unstableFeatures.includes(requestedFeature)) {\n throw new toolkit_error_1.ToolkitError('UnstableFeatureNotEnabled', `Unstable feature '${requestedFeature}' is not enabled. Please enable it under 'unstableFeatures'`);\n }\n }\n /**\n * Create a buildAsset function for use in WorkGraph\n */\n createBuildAssetFunction(ioHelper, deployments, roleArn) {\n return async (assetNode) => {\n const buildAssetSpan = await ioHelper.span(private_7.SPAN.BUILD_ASSET).begin({\n asset: assetNode.asset,\n });\n await deployments.buildSingleAsset(assetNode.assetManifestArtifact, assetNode.assetManifest, assetNode.asset, {\n stack: assetNode.parentStack,\n roleArn,\n stackName: assetNode.parentStack.stackName,\n });\n await buildAssetSpan.end();\n };\n }\n /**\n * Create a publishAsset function for use in WorkGraph\n */\n createPublishAssetFunction(ioHelper, deployments, roleArn, forcePublish) {\n return async (assetNode) => {\n const publishAssetSpan = await ioHelper.span(private_7.SPAN.PUBLISH_ASSET).begin({\n asset: assetNode.asset,\n });\n await deployments.publishSingleAsset(assetNode.assetManifest, assetNode.asset, {\n stack: assetNode.parentStack,\n roleArn,\n stackName: assetNode.parentStack.stackName,\n forcePublish,\n });\n await publishAssetSpan.end();\n };\n }\n}\nexports.Toolkit = Toolkit;\n/**\n * Centralize the default stack selection logic in a single place\n */\nfunction stacksOpt(o) {\n return o.stacks ?? private_6.ALL_STACKS;\n}\n/**\n * Perform synthesis and emit the time taken to a new span\n */\nasync function synthAndMeasure(ioHelper, cx, selectStacks) {\n const synthSpan = await ioHelper.span(private_7.SPAN.SYNTH_ASSEMBLY).begin({ stacks: selectStacks });\n try {\n const ret = await (0, private_1.assemblyFromSource)(synthSpan.asHelper, cx);\n (0, count_assembly_results_1.countAssemblyResults)(synthSpan, ret.assembly);\n const synthDuration = await synthSpan.end({});\n return Object.assign(ret, { synthDuration });\n }\n catch (error) {\n // End the span even if we had a failure\n await synthSpan.end({ error });\n throw error;\n }\n}\nfunction zeroTime() {\n return { asMs: 0, asSec: 0 };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFxQztBQUNyQyxrQ0FBa0M7QUFDbEMscURBQXFEO0FBRXJELDBFQUE4RDtBQUU5RCwrQkFBK0I7QUFDL0IscUNBQXFDO0FBQ3JDLG9EQUE2RDtBQUU3RDs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxtQkFBTSxDQUFDLEdBQUcsRUFBRSxtQkFBTSxDQUFDLE9BQU8sRUFBRSxtQkFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBTSxDQUFDLFVBQVUsQ0FBVSxDQUFDO0FBRzNHOztHQUVHO0FBQ0gsU0FBUyxXQUFXLENBQUMsS0FBZ0I7SUFDbkMsT0FBUSxXQUFpQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBQ0QsK0JBQStCO0FBQy9CLHVFQUFpRTtBQUVqRSx1Q0FBK0M7QUFDL0MsbURBQStDO0FBUS9DLG9EQUF1RDtBQUN2RCw4Q0FBdUU7QUFDdkUsdURBUW1DO0FBR25DLHFEQUFvRTtBQVFwRSxzREFBa0U7QUFDbEUsOENBS3lCO0FBQ3pCLHlFQUFzRTtBQUN0RSxxREFBdUU7QUFDdkUsZ0RBQWdEO0FBRWhELDBEQUFvRjtBQUVwRiwyREFBMkQ7QUFDM0QsaUZBQWtGO0FBQ2xGLHlFQUFrRjtBQUVsRixvREFBaUQ7QUFDakQsc0NBQTRDO0FBQzVDLHdDQUFnRDtBQUNoRCxrRUFBOEQ7QUFHOUQsK0NBQTZHO0FBQzdHLHNEQUF5RjtBQUN6RiwwQ0FBaUQ7QUFDakQsb0RBSzRCO0FBRTVCLHNFQUFzRjtBQUN0Rix3REFBZ0U7QUFDaEUsNEVBQWdGO0FBQ2hGLDREQUEwRDtBQUMxRCxpREFBbUQ7QUFDbkQsc0RBQWlFO0FBRWpFLGtEQUE0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QUFDO1FBRTlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLHdDQUF3QztRQUN4QyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFFBQVE7SUFDZixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vcHJpdmF0ZS9kaXNwb3NlLXBvbHlmaWxsJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnUmVwb3J0UHJvcGVydGllcyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBBcnRpZmFjdFR5cGUgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZURpZmYgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGNob2tpZGFyIGZyb20gJ2Nob2tpZGFyJztcbmltcG9ydCB7IHR5cGUgRXZlbnROYW1lLCBFVkVOVFMgfSBmcm9tICdjaG9raWRhci9oYW5kbGVyLmpzJztcblxuLyoqXG4gKiBGaWxlIGV2ZW50cyB0aGF0IHdlIGNhcmUgYWJvdXQgZnJvbSBjaG9raWRhci5cbiAqIEluIGNob2tpZGFyIHY0LCBFdmVudE5hbWUgaW5jbHVkZXMgYWRkaXRpb25hbCBldmVudHMgbGlrZSAnZXJyb3InLCAncmF3JywgJ3JlYWR5JywgJ2FsbCdcbiAqIHRoYXQgd2UgbmVlZCB0byBmaWx0ZXIgb3V0IGluIHRoZSAnYWxsJyBoYW5kbGVyLlxuICovXG5jb25zdCBGSUxFX0VWRU5UUyA9IFtFVkVOVFMuQURELCBFVkVOVFMuQUREX0RJUiwgRVZFTlRTLkNIQU5HRSwgRVZFTlRTLlVOTElOSywgRVZFTlRTLlVOTElOS19ESVJdIGFzIGNvbnN0O1xudHlwZSBGaWxlRXZlbnQgPSB0eXBlb2YgRklMRV9FVkVOVFNbbnVtYmVyXTtcblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGFuIGV2ZW50IGlzIGEgZmlsZSBldmVudCB3ZSBzaG91bGQgcHJvY2Vzcy5cbiAqL1xuZnVuY3Rpb24gaXNGaWxlRXZlbnQoZXZlbnQ6IEV2ZW50TmFtZSk6IGV2ZW50IGlzIEZpbGVFdmVudCB7XG4gIHJldHVybiAoRklMRV9FVkVOVFMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKGV2ZW50KTtcbn1cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IE5vbkludGVyYWN0aXZlSW9Ib3N0IH0gZnJvbSAnLi9ub24taW50ZXJhY3RpdmUtaW8taG9zdCc7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4vcHJpdmF0ZSc7XG5pbXBvcnQgeyBhc3NlbWJseUZyb21Tb3VyY2UgfSBmcm9tICcuL3ByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgRGVwbG95UmVzdWx0LCBEZXN0cm95UmVzdWx0LCBGZWF0dXJlRmxhZywgUm9sbGJhY2tSZXN1bHQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB0eXBlIHtcbiAgQm9vdHN0cmFwRW52aXJvbm1lbnRzLFxuICBCb290c3RyYXBPcHRpb25zLFxuICBCb290c3RyYXBSZXN1bHQsXG4gIEVudmlyb25tZW50Qm9vdHN0cmFwUmVzdWx0LFxufSBmcm9tICcuLi9hY3Rpb25zL2Jvb3RzdHJhcCc7XG5pbXBvcnQgeyBCb290c3RyYXBTb3VyY2UgfSBmcm9tICcuLi9hY3Rpb25zL2Jvb3RzdHJhcCc7XG5pbXBvcnQgeyBBc3NldEJ1aWxkVGltZSwgdHlwZSBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9kZXBsb3knO1xuaW1wb3J0IHtcbiAgYnVpbGRQYXJhbWV0ZXJNYXAsXG4gIGlzQ2hhbmdlU2V0RGVwbG95bWVudCxcbiAgaXNFeGVjdXRpbmdDaGFuZ2VTZXREZXBsb3ltZW50LFxuICBpc05vbkV4ZWN1dGluZ0NoYW5nZVNldERlcGxveW1lbnQsXG4gIHR5cGUgUHJpdmF0ZURlcGxveU9wdGlvbnMsXG4gIHJlbW92ZVB1Ymxpc2hlZEFzc2V0c0Zyb21Xb3JrR3JhcGgsXG4gIHRvRXhlY3V0ZUNoYW5nZVNldERlcGxveW1lbnQsXG59IGZyb20gJy4uL2FjdGlvbnMvZGVwbG95L3ByaXZhdGUnO1xuaW1wb3J0IHsgdHlwZSBEZXN0cm95T3B0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvZGVzdHJveSc7XG5pbXBvcnQgdHlwZSB7IERpZmZPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9kaWZmJztcbmltcG9ydCB7IGFwcGVuZE9iamVjdCwgcHJlcGFyZURpZmYgfSBmcm9tICcuLi9hY3Rpb25zL2RpZmYvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IERyaWZ0T3B0aW9ucywgRHJpZnRSZXN1bHQgfSBmcm9tICcuLi9hY3Rpb25zL2RyaWZ0JztcbmltcG9ydCB7IHR5cGUgTGlzdE9wdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zL2xpc3QnO1xuaW1wb3J0IHR5cGUgeyBQdWJsaXNoQXNzZXRzT3B0aW9ucywgUHVibGlzaEFzc2V0c1Jlc3VsdCB9IGZyb20gJy4uL2FjdGlvbnMvcHVibGlzaC1hc3NldHMnO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3Rvck9wdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zL3JlZmFjdG9yJztcbmltcG9ydCB7IHR5cGUgUm9sbGJhY2tPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9yb2xsYmFjayc7XG5pbXBvcnQgeyB0eXBlIFN5bnRoT3B0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvc3ludGgnO1xuaW1wb3J0IHR5cGUgeyBJV2F0Y2hlciwgV2F0Y2hPcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy93YXRjaCc7XG5pbXBvcnQgeyBXQVRDSF9FWENMVURFX0RFRkFVTFRTIH0gZnJvbSAnLi4vYWN0aW9ucy93YXRjaC9wcml2YXRlJztcbmltcG9ydCB7XG4gIEJhc2VDcmVkZW50aWFscyxcbiAgdHlwZSBJQmFzZUNyZWRlbnRpYWxzUHJvdmlkZXIsXG4gIHR5cGUgU2RrQmFzZUNsaWVudENvbmZpZyxcbiAgdHlwZSBTZGtDb25maWcsXG59IGZyb20gJy4uL2FwaS9hd3MtYXV0aCc7XG5pbXBvcnQgeyBzZGtSZXF1ZXN0SGFuZGxlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9hd3NjbGktY29tcGF0aWJsZSc7XG5pbXBvcnQgeyBJb0hvc3RTZGtMb2dnZXIsIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHsgQm9vdHN0cmFwcGVyIH0gZnJvbSAnLi4vYXBpL2Jvb3RzdHJhcCc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlLCBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IENhY2hlZENsb3VkQXNzZW1ibHksIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9hcGkvY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBTdGFja0Fzc2VtYmx5IH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3ByaXZhdGUnO1xuaW1wb3J0IHsgQUxMX1NUQUNLUyB9IGZyb20gJy4uL2FwaS9jbG91ZC1hc3NlbWJseS9wcml2YXRlJztcbmltcG9ydCB7IEFzeW5jRGlzcG9zYWJsZUJveCB9IGZyb20gJy4uL2FwaS9jbG91ZC1hc3NlbWJseS9wcml2YXRlL2Rpc3Bvc2FibGUtYm94JztcbmltcG9ydCB7IENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3NvdXJjZS1idWlsZGVyJztcbmltcG9ydCB0eXBlIHsgU3RhY2tDb2xsZWN0aW9uIH0gZnJvbSAnLi4vYXBpL2Nsb3VkLWFzc2VtYmx5L3N0YWNrLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgRGlmZkZvcm1hdHRlciB9IGZyb20gJy4uL2FwaS9kaWZmJztcbmltcG9ydCB7IGRldGVjdFN0YWNrRHJpZnQgfSBmcm9tICcuLi9hcGkvZHJpZnQnO1xuaW1wb3J0IHsgRHJpZnRGb3JtYXR0ZXIgfSBmcm9tICcuLi9hcGkvZHJpZnQvZHJpZnQtZm9ybWF0dGVyJztcbmltcG9ydCB0eXBlIHsgSUlvSG9zdCwgSW9NZXNzYWdlTGV2ZWwsIFRvb2xraXRBY3Rpb24gfSBmcm9tICcuLi9hcGkvaW8nO1xuaW1wb3J0IHR5cGUgeyBFbGFwc2VkVGltZSwgSW9IZWxwZXIgfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBhc0lvSGVscGVyLCBJTywgU1BBTiwgd2l0aG91dENvbG9yLCB3aXRob3V0RW1vamlzLCB3aXRoVHJpbW1lZFdoaXRlc3BhY2UgfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yLCBmaW5kQ2xvdWRXYXRjaExvZ0dyb3VwcyB9IGZyb20gJy4uL2FwaS9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHsgTW9kZSwgUGx1Z2luSG9zdCB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHtcbiAgZm9ybWF0QW1iaWd1b3VzTWFwcGluZ3MsXG4gIGZvcm1hdEVudmlyb25tZW50U2VjdGlvbkhlYWRlcixcbiAgZm9ybWF0VHlwZWRNYXBwaW5ncyxcbiAgZ3JvdXBTdGFja3MsXG59IGZyb20gJy4uL2FwaS9yZWZhY3RvcmluZyc7XG5pbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2sgfSBmcm9tICcuLi9hcGkvcmVmYWN0b3JpbmcvY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgUmVzb3VyY2VNYXBwaW5nLCBSZXNvdXJjZUxvY2F0aW9uIH0gZnJvbSAnLi4vYXBpL3JlZmFjdG9yaW5nL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IFJlZmFjdG9yaW5nQ29udGV4dCB9IGZyb20gJy4uL2FwaS9yZWZhY3RvcmluZy9jb250ZXh0JztcbmltcG9ydCB7IGdlbmVyYXRlU3RhY2tEZWZpbml0aW9ucyB9IGZyb20gJy4uL2FwaS9yZWZhY3RvcmluZy9zdGFjay1kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBSZXNvdXJjZU1pZ3JhdG9yIH0gZnJvbSAnLi4vYXBpL3Jlc291cmNlLWltcG9ydCc7XG5pbXBvcnQgeyB0YWdzRm9yU3RhY2sgfSBmcm9tICcuLi9hcGkvdGFncy9wcml2YXRlJztcbmltcG9ydCB7IERFRkFVTFRfVE9PTEtJVF9TVEFDS19OQU1FIH0gZnJvbSAnLi4vYXBpL3Rvb2xraXQtaW5mbyc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0QnVpbGROb2RlLCBBc3NldFB1Ymxpc2hOb2RlLCBDb25jdXJyZW5jeSwgU3RhY2tOb2RlIH0gZnJvbSAnLi4vYXBpL3dvcmstZ3JhcGgnO1xuaW1wb3J0IHsgV29ya0dyYXBoQnVpbGRlciwgYnVpbGREZXN0cm95V29ya0dyYXBoIH0gZnJvbSAnLi4vYXBpL3dvcmstZ3JhcGgnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURhdGEsIFJlZmFjdG9yUmVzdWx0LCBTdGFja0RldGFpbHMsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uL3BheWxvYWRzJztcbmltcG9ydCB7IFBlcm1pc3Npb25DaGFuZ2VUeXBlIH0gZnJvbSAnLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlLCBmb3JtYXRUaW1lLCBvYnNjdXJlVGVtcGxhdGUsIHNlcmlhbGl6ZVN0cnVjdHVyZSwgdmFsaWRhdGVTbnNUb3BpY0FybiB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgcExpbWl0IH0gZnJvbSAnLi4vdXRpbC9jb25jdXJyZW5jeSc7XG5pbXBvcnQgeyBjcmVhdGVJZ25vcmVNYXRjaGVyIH0gZnJvbSAnLi4vdXRpbC9nbG9iLW1hdGNoZXInO1xuaW1wb3J0IHsgcHJvbWlzZVdpdGhSZXNvbHZlcnMgfSBmcm9tICcuLi91dGlsL3Byb21pc2VzJztcbmltcG9ydCB7IGNvdW50QXNzZW1ibHlSZXN1bHRzIH0gZnJvbSAnLi9wcml2YXRlL2NvdW50LWFzc2VtYmx5LXJlc3VsdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xraXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJb0hvc3QgaW1wbGVtZW50YXRpb24sIGhhbmRsaW5nIHRoZSBpbmxpbmUgaW50ZXJhY3Rpb25zIGJldHdlZW4gdGhlIFRvb2xraXQgYW5kIGFuIGludGVncmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaW9Ib3N0PzogSUlvSG9zdDtcblxuICAvKipcbiAgICogQWxsb3cgZW1vamlzIGluIG1lc3NhZ2VzIHNlbnQgdG8gdGhlIElvSG9zdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW1vamlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyBBTlNJIGNvbG9ycyBhbmQgZm9ybWF0dGluZyBpbiBJb0hvc3QgbWVzc2FnZXMuXG4gICAqIFNldHRpbmcgdGhpcyB2YWx1ZSB0byBgZmFsc2VgIGVuZm9yY2VzIHRoYXQgbm8gY29sb3Igb3Igc3R5bGUgc2hvd3MgdXBcbiAgICogaW4gbWVzc2FnZXMgc2VudCB0byB0aGUgSW9Ib3N0LlxuICAgKiBTZXR0aW5nIHRoaXMgdmFsdWUgdG8gdHJ1ZSBpcyBhIG5vLW9wOyBpdCBpcyBlcXVpdmFsZW50IHRvIHRoZSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERldGVjdHMgY29sb3IgZnJvbSB0aGUgVFRZIHN0YXR1cyBvZiB0aGUgSW9Ib3N0XG4gICAqL1xuICByZWFkb25seSBjb2xvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFNESy5cbiAgICovXG4gIHJlYWRvbmx5IHNka0NvbmZpZz86IFNka0NvbmZpZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgdG9vbGtpdCBzdGFjayB0byBiZSB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkNES1Rvb2xraXRcIlxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRmFpbCBDbG91ZCBBc3NlbWJsaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZXJyb3JcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZW1ibHlGYWlsdXJlQXQ/OiAnZXJyb3InIHwgJ3dhcm4nIHwgJ25vbmUnO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGhvc3QgdG8gdXNlIGZvciBsb2FkaW5nIGFuZCBxdWVyeWluZyBwbHVnaW5zXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGEgdW5pcXVlIGluc3RhbmNlIG9mIGEgcGx1Z2luIG1hbmFnaW5nIGNsYXNzIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogVXNlIGB0b29sa2l0LnBsdWdpbkhvc3QubG9hZCgpYCB0byBsb2FkIHBsdWdpbnMgaW50byB0aGUgcGx1Z2luIGhvc3QgZnJvbSBkaXNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgZnJlc2ggcGx1Z2luIGhvc3RcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbkhvc3Q/OiBQbHVnaW5Ib3N0O1xuXG4gIC8qKlxuICAgKiBTZXQgb2YgdW5zdGFibGUgZmVhdHVyZXMgdG8gb3B0IGludG8uIElmIHlvdSBhcmUgdXNpbmcgYW4gdW5zdGFibGUgZmVhdHVyZSxcbiAgICogeW91IG11c3QgZXhwbGljaXRseSBhY2tub3dsZWRnZSB0aGF0IHlvdSBhcmUgYXdhcmUgb2YgdGhlIHJpc2tzIG9mIHVzaW5nIGl0LFxuICAgKiBieSBwYXNzaW5nIGl0IGluIHRoaXMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgdW5zdGFibGVGZWF0dXJlcz86IEFycmF5PFVuc3RhYmxlRmVhdHVyZT47XG59XG5cbi8qKlxuICogTmFtZXMgb2YgdG9vbGtpdCBmZWF0dXJlcyB0aGF0IGFyZSBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCwgYW5kIG1heSBjaGFuZ2UgaW5cbiAqIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVuc3RhYmxlRmVhdHVyZSA9ICdyZWZhY3RvcicgfCAnZmxhZ3MnIHwgJ3B1Ymxpc2gtYXNzZXRzJztcblxuLyoqXG4gKiBUaGUgQVdTIENESyBQcm9ncmFtbWF0aWMgVG9vbGtpdFxuICovXG5leHBvcnQgY2xhc3MgVG9vbGtpdCBleHRlbmRzIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHtcbiAgLyoqXG4gICAqIFRoZSB0b29sa2l0IHN0YWNrIG5hbWUgdXNlZCBmb3IgYm9vdHN0cmFwcGluZyByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdG9vbGtpdFN0YWNrTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSW9Ib3N0IG9mIHRoaXMgVG9vbGtpdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlvSG9zdDogSUlvSG9zdDtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBob3N0IGZvciBsb2FkaW5nIGFuZCBtYW5hZ2luZyBwbHVnaW5zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGx1Z2luSG9zdDogUGx1Z2luSG9zdDtcblxuICAvKipcbiAgICogQ2FjaGUgb2YgdGhlIGludGVybmFsIFNESyBQcm92aWRlciBpbnN0YW5jZVxuICAgKi9cbiAgcHJpdmF0ZSBzZGtQcm92aWRlckNhY2hlPzogU2RrUHJvdmlkZXI7XG5cbiAgcHJpdmF0ZSBiYXNlQ3JlZGVudGlhbHM6IElCYXNlQ3JlZGVudGlhbHNQcm92aWRlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVuc3RhYmxlRmVhdHVyZXM6IEFycmF5PFVuc3RhYmxlRmVhdHVyZT47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFRvb2xraXRPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudG9vbGtpdFN0YWNrTmFtZSA9IHByb3BzLnRvb2xraXRTdGFja05hbWUgPz8gREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUU7XG5cbiAgICB0aGlzLnBsdWdpbkhvc3QgPSBwcm9wcy5wbHVnaW5Ib3N0ID8/IG5ldyBQbHVnaW5Ib3N0KCk7XG5cbiAgICBsZXQgaW9Ib3N0ID0gcHJvcHMuaW9Ib3N0ID8/IG5ldyBOb25JbnRlcmFjdGl2ZUlvSG9zdCgpO1xuICAgIGlmIChwcm9wcy5lbW9qaXMgPT09IGZhbHNlKSB7XG4gICAgICBpb0hvc3QgPSB3aXRob3V0RW1vamlzKGlvSG9zdCk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5jb2xvciA9PT0gZmFsc2UpIHtcbiAgICAgIGlvSG9zdCA9IHdpdGhvdXRDb2xvcihpb0hvc3QpO1xuICAgIH1cbiAgICAvLyBBZnRlciByZW1vdmluZyBlbW9qaXMgYW5kIGNvbG9yLCB3ZSBtaWdodCBlbmQgdXAgd2l0aCBmbG9hdGluZyB3aGl0ZXNwYWNlIGF0IGVpdGhlciBlbmQgb2YgdGhlIG1lc3NhZ2VcbiAgICAvLyBUaGlzIGFsc28gcmVtb3ZlcyBuZXdsaW5lcyB0aGF0IHdlIGN1cnJlbnRseSBlbWl0IGZvciBDTEkgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gICAgdGhpcy5pb0hvc3QgPSB3aXRoVHJpbW1lZFdoaXRlc3BhY2UoaW9Ib3N0KTtcblxuICAgIHRoaXMuYmFzZUNyZWRlbnRpYWxzID0gcHJvcHMuc2RrQ29uZmlnPy5iYXNlQ3JlZGVudGlhbHMgPz8gQmFzZUNyZWRlbnRpYWxzLmF3c0NsaUNvbXBhdGlibGUoKTtcbiAgICB0aGlzLnVuc3RhYmxlRmVhdHVyZXMgPSBwcm9wcy51bnN0YWJsZUZlYXR1cmVzID8/IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0byB0aGUgQVdTIFNES1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBzZGtQcm92aWRlcihhY3Rpb246IFRvb2xraXRBY3Rpb24pOiBQcm9taXNlPFNka1Byb3ZpZGVyPiB7XG4gICAgLy8gQHRvZG8gdGhpcyBuZWVkcyB0byBiZSBkaWZmZXJlbnQgaW5zdGFuY2UgcGVyIGFjdGlvblxuICAgIGlmICghdGhpcy5zZGtQcm92aWRlckNhY2hlKSB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsIGFjdGlvbik7XG4gICAgICBjb25zdCBjbGllbnRDb25maWc6IFNka0Jhc2VDbGllbnRDb25maWcgPSB7XG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBzZGtSZXF1ZXN0SGFuZGxlcih0aGlzLnByb3BzLnNka0NvbmZpZz8uaHR0cE9wdGlvbnM/LmFnZW50KSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuYmFzZUNyZWRlbnRpYWxzLnNka0Jhc2VDb25maWcoaW9IZWxwZXIsIGNsaWVudENvbmZpZyk7XG4gICAgICB0aGlzLnNka1Byb3ZpZGVyQ2FjaGUgPSBuZXcgU2RrUHJvdmlkZXIoY29uZmlnLmNyZWRlbnRpYWxQcm92aWRlciwgY29uZmlnLmRlZmF1bHRSZWdpb24sIHtcbiAgICAgICAgaW9IZWxwZXIsXG4gICAgICAgIGxvZ2dlcjogbmV3IElvSG9zdFNka0xvZ2dlcihpb0hlbHBlciksXG4gICAgICAgIHBsdWdpbkhvc3Q6IHRoaXMucGx1Z2luSG9zdCxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IGNsaWVudENvbmZpZy5yZXF1ZXN0SGFuZGxlcixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNka1Byb3ZpZGVyQ2FjaGU7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIHByb3ZpZGUgdGhlIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHdpdGggcmVxdWlyZWQgdG9vbGtpdCBzZXJ2aWNlc1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBzb3VyY2VCdWlsZGVyU2VydmljZXMoKTogUHJvbWlzZTxUb29sa2l0U2VydmljZXM+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW9IZWxwZXI6IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdhc3NlbWJseScpLFxuICAgICAgc2RrUHJvdmlkZXI6IGF3YWl0IHRoaXMuc2RrUHJvdmlkZXIoJ2Fzc2VtYmx5JyksXG4gICAgICBwbHVnaW5Ib3N0OiB0aGlzLnBsdWdpbkhvc3QsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCb290c3RyYXAgQWN0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYm9vdHN0cmFwKGVudmlyb25tZW50czogQm9vdHN0cmFwRW52aXJvbm1lbnRzLCBvcHRpb25zOiBCb290c3RyYXBPcHRpb25zID0ge30pOiBQcm9taXNlPEJvb3RzdHJhcFJlc3VsdD4ge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgY29uc3QgcmVzdWx0czogRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHRbXSA9IFtdO1xuXG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgY29uc3QgYm9vdHN0cmFwRW52aXJvbm1lbnRzID0gYXdhaXQgZW52aXJvbm1lbnRzLmdldEVudmlyb25tZW50cyh0aGlzLmlvSG9zdCk7XG4gICAgY29uc3Qgc291cmNlID0gb3B0aW9ucy5zb3VyY2UgPz8gQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gb3B0aW9ucy5wYXJhbWV0ZXJzO1xuICAgIGNvbnN0IGJvb3RzdHJhcHBlciA9IG5ldyBCb290c3RyYXBwZXIoc291cmNlLCBpb0hlbHBlcik7XG4gICAgY29uc3Qgc2RrUHJvdmlkZXIgPSBhd2FpdCB0aGlzLnNka1Byb3ZpZGVyKCdib290c3RyYXAnKTtcbiAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCgyMCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICBhd2FpdCBQcm9taXNlLmFsbChib290c3RyYXBFbnZpcm9ubWVudHMubWFwKChlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQsIGN1cnJlbnRJZHgpID0+IGxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJvb3RzdHJhcFNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uQk9PVFNUUkFQX1NJTkdMRSlcbiAgICAgICAgLmJlZ2luKGAke2NoYWxrLmJvbGQoZW52aXJvbm1lbnQubmFtZSl9OiBib290c3RyYXBwaW5nLi4uYCwge1xuICAgICAgICAgIHRvdGFsOiBib290c3RyYXBFbnZpcm9ubWVudHMubGVuZ3RoLFxuICAgICAgICAgIGN1cnJlbnQ6IGN1cnJlbnRJZHggKyAxLFxuICAgICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYm9vdHN0cmFwUmVzdWx0ID0gYXdhaXQgYm9vdHN0cmFwcGVyLmJvb3RzdHJhcEVudmlyb25tZW50KFxuICAgICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICAgIHNka1Byb3ZpZGVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICB0b29sa2l0U3RhY2tOYW1lOiB0aGlzLnRvb2xraXRTdGFja05hbWUsXG4gICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzPy5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgdXNlUHJldmlvdXNQYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzPy5rZWVwRXhpc3RpbmdQYXJhbWV0ZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGJvb3RzdHJhcFJlc3VsdC5ub09wXG4gICAgICAgICAgPyBgIOKchSAgJHtlbnZpcm9ubWVudC5uYW1lfSAobm8gY2hhbmdlcylgXG4gICAgICAgICAgOiBgIOKchSAgJHtlbnZpcm9ubWVudC5uYW1lfWA7XG5cbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k5OTAwLm1zZyhjaGFsay5ncmVlbignXFxuJyArIG1lc3NhZ2UpLCB7IGVudmlyb25tZW50IH0pKTtcbiAgICAgICAgY29uc3QgZW52VGltZSA9IGF3YWl0IGJvb3RzdHJhcFNwYW4uZW5kKCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHQgPSB7XG4gICAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgICAgc3RhdHVzOiBib290c3RyYXBSZXN1bHQubm9PcCA/ICduby1vcCcgOiAnc3VjY2VzcycsXG4gICAgICAgICAgZHVyYXRpb246IGVudlRpbWUuYXNNcyxcbiAgICAgICAgfTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0U5OTAwLm1zZyhgXFxuIOKdjCAgJHtjaGFsay5ib2xkKGVudmlyb25tZW50Lm5hbWUpfSBmYWlsZWQ6ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZW52aXJvbm1lbnRzOiByZXN1bHRzLFxuICAgICAgZHVyYXRpb246IERhdGUubm93KCkgLSBzdGFydFRpbWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aCBBY3Rpb25cbiAgICpcbiAgICogVGhlIGNhbGxlciBhc3N1bWVzIG93bmVyc2hpcCBvZiB0aGUgYENhY2hlZENsb3VkQXNzZW1ibHlgIGFuZCBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBgZGlzcG9zZSgpYCBvblxuICAgKiBpdCBhZnRlciB1c2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3ludGgoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBTeW50aE9wdGlvbnMgPSB7fSk6IFByb21pc2U8Q2FjaGVkQ2xvdWRBc3NlbWJseT4ge1xuICAgIGNvbnN0IGlvSGVscGVyID0gYXNJb0hlbHBlcih0aGlzLmlvSG9zdCwgJ3N5bnRoJyk7XG5cbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IG5ldyBBc3luY0Rpc3Bvc2FibGVCb3goYXdhaXQgc3ludGhBbmRNZWFzdXJlKGlvSGVscGVyLCBjeCwgc3RhY2tzT3B0KG9wdGlvbnMpKSk7XG4gICAgY29uc3Qgc3RhY2tzID0gYXdhaXQgYXNzZW1ibHkudmFsdWUuc2VsZWN0U3RhY2tzVjIoc3RhY2tzT3B0KG9wdGlvbnMpKTtcbiAgICBjb25zdCBhdXRvVmFsaWRhdGVTdGFja3MgPSBvcHRpb25zLnZhbGlkYXRlU3RhY2tzID8gW2Fzc2VtYmx5LnZhbHVlLnNlbGVjdFN0YWNrc0ZvclZhbGlkYXRpb24oKV0gOiBbXTtcbiAgICBhd2FpdCB0aGlzLnZhbGlkYXRlU3RhY2tzTWV0YWRhdGEoc3RhY2tzLmNvbmNhdCguLi5hdXRvVmFsaWRhdGVTdGFja3MpLCBpb0hlbHBlcik7XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGEgc2luZ2xlIHN0YWNrLCBwcmludCBpdCB0byBTVERPVVRcbiAgICBjb25zdCBtZXNzYWdlID0gYFN1Y2Nlc3NmdWxseSBzeW50aGVzaXplZCB0byAke2NoYWxrLmJsdWUocGF0aC5yZXNvbHZlKHN0YWNrcy5hc3NlbWJseS5kaXJlY3RvcnkpKX1gO1xuICAgIGNvbnN0IGFzc2VtYmx5RGF0YTogQXNzZW1ibHlEYXRhID0ge1xuICAgICAgYXNzZW1ibHlEaXJlY3Rvcnk6IHN0YWNrcy5hc3NlbWJseS5kaXJlY3RvcnksXG4gICAgICBzdGFja3NDb3VudDogc3RhY2tzLnN0YWNrQ291bnQsXG4gICAgICBzdGFja0lkczogc3RhY2tzLmhpZXJhcmNoaWNhbElkcyxcbiAgICB9O1xuXG4gICAgaWYgKHN0YWNrcy5zdGFja0NvdW50ID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdFN0YWNrID0gc3RhY2tzLmZpcnN0U3RhY2shO1xuICAgICAgY29uc3QgdGVtcGxhdGUgPSBmaXJzdFN0YWNrLnRlbXBsYXRlO1xuICAgICAgY29uc3Qgb2JzY3VyZWRUZW1wbGF0ZSA9IG9ic2N1cmVUZW1wbGF0ZSh0ZW1wbGF0ZSk7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTE5MDEubXNnKG1lc3NhZ2UsIHtcbiAgICAgICAgLi4uYXNzZW1ibHlEYXRhLFxuICAgICAgICBzdGFjazoge1xuICAgICAgICAgIHN0YWNrTmFtZTogZmlyc3RTdGFjay5zdGFja05hbWUsXG4gICAgICAgICAgaGllcmFyY2hpY2FsSWQ6IGZpcnN0U3RhY2suaGllcmFyY2hpY2FsSWQsXG4gICAgICAgICAgdGVtcGxhdGUsXG4gICAgICAgICAgc3RyaW5naWZpZWRKc29uOiBzZXJpYWxpemVTdHJ1Y3R1cmUob2JzY3VyZWRUZW1wbGF0ZSwgdHJ1ZSksXG4gICAgICAgICAgc3RyaW5naWZpZWRZYW1sOiBzZXJpYWxpemVTdHJ1Y3R1cmUob2JzY3VyZWRUZW1wbGF0ZSwgZmFsc2UpLFxuICAgICAgICB9LFxuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBub3Qgb3V0cHV0dGluZyB0ZW1wbGF0ZSB0byBzdGRvdXQsIGxldCdzIGV4cGxhaW4gdGhpbmdzIHRvIHRoZSB1c2VyIGEgbGl0dGxlIGJpdC4uLlxuICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0kxOTAyLm1zZyhjaGFsay5ncmVlbihtZXNzYWdlKSwgYXNzZW1ibHlEYXRhKSk7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGBTdXBwbHkgYSBzdGFjayBpZCAoJHtzdGFja3Muc3RhY2tBcnRpZmFjdHMubWFwKChzKSA9PiBjaGFsay5ncmVlbihzLmhpZXJhcmNoaWNhbElkKSkuam9pbignLCAnKX0pIHRvIGRpc3BsYXkgaXRzIHRlbXBsYXRlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ2FjaGVkQ2xvdWRBc3NlbWJseShhc3NlbWJseS50YWtlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpZmYgQWN0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGlmZihjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIG9wdGlvbnM6IERpZmZPcHRpb25zID0ge30pOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9PiB7XG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAnZGlmZicpO1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IHN5bnRoQW5kTWVhc3VyZShpb0hlbHBlciwgY3gsIHNlbGVjdFN0YWNrcyk7XG5cbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuICAgIGNvbnN0IGRpZmZTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRJRkZfU1RBQ0spLmJlZ2luKHsgc3RhY2tzOiBzZWxlY3RTdGFja3MgfSk7XG4gICAgY29uc3QgZGVwbG95bWVudHMgPSBhd2FpdCB0aGlzLmRlcGxveW1lbnRzRm9yQWN0aW9uKCdkaWZmJyk7XG5cbiAgICBjb25zdCBzdHJpY3QgPSAhIW9wdGlvbnMuc3RyaWN0O1xuICAgIGNvbnN0IGNvbnRleHRMaW5lcyA9IG9wdGlvbnMuY29udGV4dExpbmVzIHx8IDM7XG5cbiAgICBsZXQgZGlmZnMgPSAwO1xuICAgIGxldCBzZWN1cml0eURpZmZzID0gMDtcblxuICAgIGNvbnN0IHRlbXBsYXRlSW5mb3MgPSBhd2FpdCBwcmVwYXJlRGlmZihkaWZmU3Bhbi5hc0hlbHBlciwgc3RhY2tzLCBkZXBsb3ltZW50cywgYXdhaXQgdGhpcy5zZGtQcm92aWRlcignZGlmZicpLCBvcHRpb25zKTtcbiAgICBjb25zdCB0ZW1wbGF0ZURpZmZzOiB7IFtuYW1lOiBzdHJpbmddOiBUZW1wbGF0ZURpZmYgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGVJbmZvIG9mIHRlbXBsYXRlSW5mb3MpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBEaWZmRm9ybWF0dGVyKHsgdGVtcGxhdGVJbmZvIH0pO1xuICAgICAgY29uc3Qgc3RhY2tEaWZmID0gZm9ybWF0dGVyLmZvcm1hdFN0YWNrRGlmZih7IHN0cmljdCwgY29udGV4dExpbmVzIH0pO1xuXG4gICAgICAvLyBTZWN1cml0eSBEaWZmXG4gICAgICBjb25zdCBzZWN1cml0eURpZmYgPSBmb3JtYXR0ZXIuZm9ybWF0U2VjdXJpdHlEaWZmKCk7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRTZWN1cml0eURpZmYgPSBzZWN1cml0eURpZmYucGVybWlzc2lvbkNoYW5nZVR5cGUgIT09IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTkUgPyBzdGFja0RpZmYuZm9ybWF0dGVkRGlmZiA6IHVuZGVmaW5lZDtcbiAgICAgIC8vIFdlIG9ubHkgd2FybiBhYm91dCBCUk9BREVOSU5HIGNoYW5nZXNcbiAgICAgIGlmIChzZWN1cml0eURpZmYucGVybWlzc2lvbkNoYW5nZVR5cGUgPT0gUGVybWlzc2lvbkNoYW5nZVR5cGUuQlJPQURFTklORykge1xuICAgICAgICBjb25zdCB3YXJuaW5nTWVzc2FnZSA9ICdUaGlzIGRlcGxveW1lbnQgd2lsbCBtYWtlIHBvdGVudGlhbGx5IHNlbnNpdGl2ZSBjaGFuZ2VzIGFjY29yZGluZyB0byB5b3VyIGN1cnJlbnQgc2VjdXJpdHkgYXBwcm92YWwgbGV2ZWwuXFxuUGxlYXNlIGNvbmZpcm0geW91IGludGVuZCB0byBtYWtlIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcXG4nO1xuICAgICAgICBhd2FpdCBkaWZmU3Bhbi5kZWZhdWx0cy53YXJuKHdhcm5pbmdNZXNzYWdlKTtcbiAgICAgICAgYXdhaXQgZGlmZlNwYW4uZGVmYXVsdHMuaW5mbyhzZWN1cml0eURpZmYuZm9ybWF0dGVkRGlmZik7XG4gICAgICB9XG5cbiAgICAgIC8vIFN0YWNrIERpZmZcbiAgICAgIGRpZmZzICs9IHN0YWNrRGlmZi5udW1TdGFja3NXaXRoQ2hhbmdlcztcbiAgICAgIHNlY3VyaXR5RGlmZnMgKz0gc2VjdXJpdHlEaWZmLm51bVN0YWNrc1dpdGhDaGFuZ2VzO1xuICAgICAgYXBwZW5kT2JqZWN0KHRlbXBsYXRlRGlmZnMsIGZvcm1hdHRlci5kaWZmcyk7XG4gICAgICBhd2FpdCBkaWZmU3Bhbi5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTQwMDIubXNnKHN0YWNrRGlmZi5mb3JtYXR0ZWREaWZmLCB7XG4gICAgICAgIHN0YWNrOiB0ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUsXG4gICAgICAgIGRpZmZzOiBmb3JtYXR0ZXIuZGlmZnMsXG4gICAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBzdGFja0RpZmYubnVtU3RhY2tzV2l0aENoYW5nZXMsXG4gICAgICAgIG51bVN0YWNrc1dpdGhTZWN1cml0eUNoYW5nZXM6IHNlY3VyaXR5RGlmZi5udW1TdGFja3NXaXRoQ2hhbmdlcyxcbiAgICAgICAgcGVybWlzc2lvbkNoYW5nZXM6IHNlY3VyaXR5RGlmZi5wZXJtaXNzaW9uQ2hhbmdlVHlwZSxcbiAgICAgICAgZm9ybWF0dGVkRGlmZjoge1xuICAgICAgICAgIGRpZmY6IHN0YWNrRGlmZi5mb3JtYXR0ZWREaWZmLFxuICAgICAgICAgIHNlY3VyaXR5OiBmb3JtYXR0ZWRTZWN1cml0eURpZmYsXG4gICAgICAgIH0sXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgZGlmZlNwYW4uZW5kKGDinKggTnVtYmVyIG9mIHN0YWNrcyB3aXRoIGRpZmZlcmVuY2VzOiAke2RpZmZzfWAsIHtcbiAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBkaWZmcyxcbiAgICAgIG51bVN0YWNrc1dpdGhTZWN1cml0eUNoYW5nZXM6IHNlY3VyaXR5RGlmZnMsXG4gICAgICBkaWZmczogdGVtcGxhdGVEaWZmcyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZW1wbGF0ZURpZmZzO1xuICB9XG5cbiAgLyoqXG4gICAqIERyaWZ0IEFjdGlvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRyaWZ0KGN4OiBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgb3B0aW9uczogRHJpZnRPcHRpb25zID0ge30pOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IERyaWZ0UmVzdWx0IH0+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdkcmlmdCcpO1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IHN5bnRoQW5kTWVhc3VyZShpb0hlbHBlciwgY3gsIHNlbGVjdFN0YWNrcyk7XG5cbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuXG4gICAgY29uc3QgZHJpZnRTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRSSUZUX0FQUCkuYmVnaW4oeyBzdGFja3M6IHNlbGVjdFN0YWNrcyB9KTtcbiAgICBjb25zdCBhbGxEcmlmdFJlc3VsdHM6IHsgW25hbWU6IHN0cmluZ106IERyaWZ0UmVzdWx0IH0gPSB7fTtcbiAgICBjb25zdCB1bmF2YWlsYWJsZURyaWZ0cyA9IFtdO1xuICAgIGNvbnN0IHNka1Byb3ZpZGVyID0gYXdhaXQgdGhpcy5zZGtQcm92aWRlcignZHJpZnQnKTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2Ygc3RhY2tzLnN0YWNrQXJ0aWZhY3RzKSB7XG4gICAgICBjb25zdCBjZm4gPSAoYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQoc3RhY2suZW52aXJvbm1lbnQsIE1vZGUuRm9yUmVhZGluZykpLnNkay5jbG91ZEZvcm1hdGlvbigpO1xuICAgICAgY29uc3QgZHJpZnRSZXN1bHRzID0gYXdhaXQgZGV0ZWN0U3RhY2tEcmlmdChjZm4sIGRyaWZ0U3Bhbi5hc0hlbHBlciwgc3RhY2suc3RhY2tOYW1lKTtcblxuICAgICAgaWYgKCFkcmlmdFJlc3VsdHMuU3RhY2tSZXNvdXJjZURyaWZ0cykge1xuICAgICAgICBjb25zdCBzdGFja05hbWUgPSBzdGFjay5kaXNwbGF5TmFtZSA/PyBzdGFjay5zdGFja05hbWU7XG4gICAgICAgIHVuYXZhaWxhYmxlRHJpZnRzLnB1c2goc3RhY2tOYW1lKTtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLm5vdGlmeShJTy5DREtfVE9PTEtJVF9XNDU5MS5tc2coYCR7c3RhY2tOYW1lfTogTm8gZHJpZnQgcmVzdWx0cyBhdmFpbGFibGVgLCB7IHN0YWNrIH0pKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBEcmlmdEZvcm1hdHRlcih7IHN0YWNrLCByZXNvdXJjZURyaWZ0czogZHJpZnRSZXN1bHRzLlN0YWNrUmVzb3VyY2VEcmlmdHMgfSk7XG4gICAgICBjb25zdCBkcmlmdE91dHB1dCA9IGZvcm1hdHRlci5mb3JtYXRTdGFja0RyaWZ0KCk7XG4gICAgICBjb25zdCBzdGFja0RyaWZ0ID0ge1xuICAgICAgICBudW1SZXNvdXJjZXNXaXRoRHJpZnQ6IGRyaWZ0T3V0cHV0Lm51bVJlc291cmNlc1dpdGhEcmlmdCxcbiAgICAgICAgbnVtUmVzb3VyY2VzVW5jaGVja2VkOiBkcmlmdE91dHB1dC5udW1SZXNvdXJjZXNVbmNoZWNrZWQsXG4gICAgICAgIGZvcm1hdHRlZERyaWZ0OiB7XG4gICAgICAgICAgdW5jaGFuZ2VkOiBkcmlmdE91dHB1dC51bmNoYW5nZWQsXG4gICAgICAgICAgdW5jaGVja2VkOiBkcmlmdE91dHB1dC51bmNoZWNrZWQsXG4gICAgICAgICAgbW9kaWZpZWQ6IGRyaWZ0T3V0cHV0Lm1vZGlmaWVkLFxuICAgICAgICAgIGRlbGV0ZWQ6IGRyaWZ0T3V0cHV0LmRlbGV0ZWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgYWxsRHJpZnRSZXN1bHRzW2Zvcm1hdHRlci5zdGFja05hbWVdID0gc3RhY2tEcmlmdDtcblxuICAgICAgLy8gaGVhZGVyXG4gICAgICBhd2FpdCBkcmlmdFNwYW4uZGVmYXVsdHMuaW5mbyhkcmlmdE91dHB1dC5zdGFja0hlYWRlcik7XG5cbiAgICAgIC8vIHByaW50IHRoZSBkaWZmZXJlbnQgc2VjdGlvbnMgYXQgZGlmZmVyZW50IGxldmVsc1xuICAgICAgaWYgKGRyaWZ0T3V0cHV0LnVuY2hhbmdlZCkge1xuICAgICAgICBhd2FpdCBkcmlmdFNwYW4uZGVmYXVsdHMuZGVidWcoZHJpZnRPdXRwdXQudW5jaGFuZ2VkKTtcbiAgICAgIH1cbiAgICAgIGlmIChkcmlmdE91dHB1dC51bmNoZWNrZWQpIHtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLmRlZmF1bHRzLmRlYnVnKGRyaWZ0T3V0cHV0LnVuY2hlY2tlZCk7XG4gICAgICB9XG4gICAgICBpZiAoZHJpZnRPdXRwdXQubW9kaWZpZWQpIHtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLmRlZmF1bHRzLmluZm8oZHJpZnRPdXRwdXQubW9kaWZpZWQpO1xuICAgICAgfVxuICAgICAgaWYgKGRyaWZ0T3V0cHV0LmRlbGV0ZWQpIHtcbiAgICAgICAgYXdhaXQgZHJpZnRTcGFuLmRlZmF1bHRzLmluZm8oZHJpZnRPdXRwdXQuZGVsZXRlZCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG1haW4gc3RhY2sgcmVzdWx0XG4gICAgICBhd2FpdCBkcmlmdFNwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k0NTkwLm1zZyhkcmlmdE91dHB1dC5zdW1tYXJ5LCB7XG4gICAgICAgIHN0YWNrLFxuICAgICAgICBkcmlmdDogc3RhY2tEcmlmdCxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvLyBwcmludCBzdW1tYXJ5XG4gICAgY29uc3QgdG90YWxEcmlmdHMgPSBPYmplY3QudmFsdWVzKGFsbERyaWZ0UmVzdWx0cykucmVkdWNlKCh0b3RhbCwgY3VycmVudCkgPT4gdG90YWwgKyAoY3VycmVudC5udW1SZXNvdXJjZXNXaXRoRHJpZnQgPz8gMCksIDApO1xuICAgIGNvbnN0IHRvdGFsVW5jaGVja2VkID0gT2JqZWN0LnZhbHVlcyhhbGxEcmlmdFJlc3VsdHMpLnJlZHVjZSgodG90YWwsIGN1cnJlbnQpID0+IHRvdGFsICsgKGN1cnJlbnQubnVtUmVzb3VyY2VzVW5jaGVja2VkID8/IDApLCAwKTtcbiAgICBhd2FpdCBkcmlmdFNwYW4uZW5kKGBcXG7inKggIE51bWJlciBvZiByZXNvdXJjZXMgd2l0aCBkcmlmdDogJHt0b3RhbERyaWZ0c30ke3RvdGFsVW5jaGVja2VkID8gYCAoJHt0b3RhbFVuY2hlY2tlZH0gdW5jaGVja2VkKWAgOiAnJ31gKTtcbiAgICBpZiAodW5hdmFpbGFibGVEcmlmdHMubGVuZ3RoKSB7XG4gICAgICBhd2FpdCBkcmlmdFNwYW4uZGVmYXVsdHMud2FybihgXFxu4pqg77iPICBGYWlsZWQgdG8gY2hlY2sgZHJpZnQgZm9yICR7dW5hdmFpbGFibGVEcmlmdHMubGVuZ3RofSBzdGFjayhzKS4gQ2hlY2sgbG9nIGZvciBtb3JlIGRldGFpbHMuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFsbERyaWZ0UmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoIEFzc2V0cyBBY3Rpb25cbiAgICpcbiAgICogUHVibGlzaGVzIGFzc2V0cyBmb3IgdGhlIHNlbGVjdGVkIHN0YWNrcyB3aXRob3V0IGRlcGxveWluZ1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHB1Ymxpc2hBc3NldHMoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBQdWJsaXNoQXNzZXRzT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxQdWJsaXNoQXNzZXRzUmVzdWx0PiB7XG4gICAgdGhpcy5yZXF1aXJlVW5zdGFibGVGZWF0dXJlKCdwdWJsaXNoLWFzc2V0cycpO1xuXG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAncHVibGlzaC1hc3NldHMnKTtcbiAgICBjb25zdCBzZWxlY3RTdGFja3MgPSBzdGFja3NPcHQob3B0aW9ucyk7XG4gICAgYXdhaXQgdXNpbmcgYXNzZW1ibHkgPSBhd2FpdCBzeW50aEFuZE1lYXN1cmUoaW9IZWxwZXIsIGN4LCBzZWxlY3RTdGFja3MpO1xuXG4gICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoc2VsZWN0U3RhY2tzKTtcbiAgICBhd2FpdCB0aGlzLnZhbGlkYXRlU3RhY2tzTWV0YWRhdGEoc3RhY2tDb2xsZWN0aW9uLCBpb0hlbHBlcik7XG5cbiAgICBpZiAoc3RhY2tDb2xsZWN0aW9uLnN0YWNrQ291bnQgPT09IDApIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FNTAwMS5tc2coJ05vIHN0YWNrcyBzZWxlY3RlZCcpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHB1Ymxpc2hlZEFzc2V0czogW10sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRlcGxveW1lbnRzID0gYXdhaXQgdGhpcy5kZXBsb3ltZW50c0ZvckFjdGlvbigncHVibGlzaC1hc3NldHMnKTtcblxuICAgIGNvbnN0IHN0YWNrcyA9IHN0YWNrQ29sbGVjdGlvbi5zdGFja0FydGlmYWN0cztcbiAgICBjb25zdCBzdGFja3NBbmRUaGVpckFzc2V0TWFuaWZlc3RzID0gc3RhY2tzLmZsYXRNYXAoKHN0YWNrKSA9PiBbXG4gICAgICBzdGFjayxcbiAgICAgIC4uLnN0YWNrLmRlcGVuZGVuY2llcy5maWx0ZXIoeCA9PiBjeGFwaS5Bc3NldE1hbmlmZXN0QXJ0aWZhY3QuaXNBc3NldE1hbmlmZXN0QXJ0aWZhY3QoeCkpLFxuICAgIF0pO1xuXG4gICAgY29uc3Qgd29ya0dyYXBoID0gbmV3IFdvcmtHcmFwaEJ1aWxkZXIoXG4gICAgICBpb0hlbHBlcixcbiAgICAgIHRydWUsIC8vIHByZWJ1aWxkIGFsbCBhc3NldHNcbiAgICApLmJ1aWxkKHN0YWNrc0FuZFRoZWlyQXNzZXRNYW5pZmVzdHMpO1xuXG4gICAgaWYgKCFvcHRpb25zLmZvcmNlKSB7XG4gICAgICBhd2FpdCByZW1vdmVQdWJsaXNoZWRBc3NldHNGcm9tV29ya0dyYXBoKHdvcmtHcmFwaCwgZGVwbG95bWVudHMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvbnN0IGFzc2V0Tm9kZXMgPSBPYmplY3QudmFsdWVzKHdvcmtHcmFwaC5ub2RlcylcbiAgICAgIC5maWx0ZXIoKG4pOiBuIGlzIEFzc2V0UHVibGlzaE5vZGUgPT4gbi50eXBlID09PSAnYXNzZXQtcHVibGlzaCcpO1xuXG4gICAgaWYgKGFzc2V0Tm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTk0MDAubXNnKGNoYWxrLmdyZWVuKCdcXG7inKggIEFsbCBhc3NldHMgYXJlIGFscmVhZHkgcHVibGlzaGVkXFxuJykpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHB1Ymxpc2hlZEFzc2V0czogW10sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGFzc2V0cyA9IGFzc2V0Tm9kZXMubWFwKG4gPT4gbi5hc3NldCk7XG4gICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k5NDAxLm1zZygnUHVibGlzaGluZyBhc3NldHMnLCB7IGFzc2V0cyB9KSk7XG5cbiAgICBjb25zdCBjb25jdXJyZW5jeSA9IG9wdGlvbnMuY29uY3VycmVuY3kgPz8gNDtcbiAgICBjb25zdCBncmFwaENvbmN1cnJlbmN5OiBDb25jdXJyZW5jeSA9IHtcbiAgICAgICdzdGFjayc6IDEsXG4gICAgICAnYXNzZXQtYnVpbGQnOiBjb25jdXJyZW5jeSxcbiAgICAgICdhc3NldC1wdWJsaXNoJzogY29uY3VycmVuY3ksXG4gICAgfTtcblxuICAgIGF3YWl0IHdvcmtHcmFwaC5kb1BhcmFsbGVsKGdyYXBoQ29uY3VycmVuY3ksIHtcbiAgICAgIGRlcGxveVN0YWNrOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIE5vLW9wOiB3ZSdyZSBvbmx5IHB1Ymxpc2hpbmcgYXNzZXRzLCBub3QgZGVwbG95aW5nXG4gICAgICB9LFxuICAgICAgYnVpbGRBc3NldDogdGhpcy5jcmVhdGVCdWlsZEFzc2V0RnVuY3Rpb24oaW9IZWxwZXIsIGRlcGxveW1lbnRzLCB1bmRlZmluZWQpLFxuICAgICAgcHVibGlzaEFzc2V0OiB0aGlzLmNyZWF0ZVB1Ymxpc2hBc3NldEZ1bmN0aW9uKGlvSGVscGVyLCBkZXBsb3ltZW50cywgdW5kZWZpbmVkLCBvcHRpb25zLmZvcmNlKSxcbiAgICB9KTtcblxuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JOTQwMi5tc2coY2hhbGsuZ3JlZW4oJ1xcbuKcqCAgQXNzZXRzIHB1Ymxpc2hlZCBzdWNjZXNzZnVsbHlcXG4nKSwgeyBhc3NldHMgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHB1Ymxpc2hlZEFzc2V0czogYXNzZXRzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBBY3Rpb25cbiAgICpcbiAgICogTGlzdCBzZWxlY3RlZCBzdGFja3MgYW5kIHRoZWlyIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3QoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBMaXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxTdGFja0RldGFpbHNbXT4ge1xuICAgIGNvbnN0IGlvSGVscGVyID0gYXNJb0hlbHBlcih0aGlzLmlvSG9zdCwgJ2xpc3QnKTtcbiAgICBjb25zdCBzZWxlY3RTdGFja3MgPSBzdGFja3NPcHQob3B0aW9ucyk7XG4gICAgYXdhaXQgdXNpbmcgYXNzZW1ibHkgPSBhd2FpdCBzeW50aEFuZE1lYXN1cmUoaW9IZWxwZXIsIGN4LCBzZWxlY3RTdGFja3MpO1xuXG4gICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoc2VsZWN0U3RhY2tzKTtcbiAgICBjb25zdCBzdGFja3MgPSBzdGFja0NvbGxlY3Rpb24ud2l0aERlcGVuZGVuY2llcygpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBzdGFja3MubWFwKHMgPT4gcy5pZCkuam9pbignXFxuJyk7XG5cbiAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTI5MDEubXNnKG1lc3NhZ2UsIHsgc3RhY2tzIH0pKTtcbiAgICByZXR1cm4gc3RhY2tzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSBBY3Rpb25cbiAgICpcbiAgICogRGVwbG95cyB0aGUgc2VsZWN0ZWQgc3RhY2tzIGludG8gYW4gQVdTIGFjY291bnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXBsb3koY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBEZXBsb3lPcHRpb25zID0ge30pOiBQcm9taXNlPERlcGxveVJlc3VsdD4ge1xuICAgIGNvbnN0IGlvSGVscGVyID0gYXNJb0hlbHBlcih0aGlzLmlvSG9zdCwgJ2RlcGxveScpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgc3ludGhBbmRNZWFzdXJlKGlvSGVscGVyLCBjeCwgc3RhY2tzT3B0KG9wdGlvbnMpKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9kZXBsb3koYXNzZW1ibHksICdkZXBsb3knLCBhc3NlbWJseS5zeW50aER1cmF0aW9uLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gYWxsb3cgZGVwbG95IGJlaW5nIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSB3YXRjaCBhY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9kZXBsb3koYXNzZW1ibHk6IFN0YWNrQXNzZW1ibHksIGFjdGlvbjogJ2RlcGxveScgfCAnd2F0Y2gnLCBzeW50aER1cmF0aW9uOiBFbGFwc2VkVGltZSwgb3B0aW9uczogUHJpdmF0ZURlcGxveU9wdGlvbnMgPSB7fSk6IFByb21pc2U8RGVwbG95UmVzdWx0PiB7XG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCBhY3Rpb24pO1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBjb25zdCBzdGFja0NvbGxlY3Rpb24gPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuICAgIGF3YWl0IHRoaXMudmFsaWRhdGVTdGFja3NNZXRhZGF0YShzdGFja0NvbGxlY3Rpb24sIGlvSGVscGVyKTtcblxuICAgIGNvbnN0IHJldDogRGVwbG95UmVzdWx0ID0ge1xuICAgICAgc3RhY2tzOiBbXSxcbiAgICB9O1xuXG4gICAgaWYgKHN0YWNrQ29sbGVjdGlvbi5zdGFja0NvdW50ID09PSAwKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTUwMDEubXNnKCdUaGlzIGFwcCBjb250YWlucyBubyBzdGFja3MnKSk7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIGNvbnN0IGRlcGxveW1lbnRzID0gYXdhaXQgdGhpcy5kZXBsb3ltZW50c0ZvckFjdGlvbignZGVwbG95Jyk7XG4gICAgY29uc3QgbWlncmF0b3IgPSBuZXcgUmVzb3VyY2VNaWdyYXRvcih7IGRlcGxveW1lbnRzLCBpb0hlbHBlciB9KTtcblxuICAgIGF3YWl0IG1pZ3JhdG9yLnRyeU1pZ3JhdGVSZXNvdXJjZXMoc3RhY2tDb2xsZWN0aW9uLCBvcHRpb25zKTtcblxuICAgIGNvbnN0IHBhcmFtZXRlck1hcCA9IGJ1aWxkUGFyYW1ldGVyTWFwKG9wdGlvbnMucGFyYW1ldGVycz8ucGFyYW1ldGVycyk7XG5cbiAgICBpZiAob3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kPy5tZXRob2QgPT09ICdob3Rzd2FwJykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX1c1NDAwLm1zZyhbXG4gICAgICAgICfimqDvuI8gSG90c3dhcCBkZXBsb3ltZW50cyBkZWxpYmVyYXRlbHkgaW50cm9kdWNlIENsb3VkRm9ybWF0aW9uIGRyaWZ0IHRvIHNwZWVkIHVwIGRlcGxveW1lbnRzJyxcbiAgICAgICAgJ+KaoO+4jyBUaGV5IHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGRldmVsb3BtZW50IC0gbmV2ZXIgdXNlIHRoZW0gZm9yIHlvdXIgcHJvZHVjdGlvbiBTdGFja3MhJyxcbiAgICAgIF0uam9pbignXFxuJykpKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFja3MgPSBzdGFja0NvbGxlY3Rpb24uc3RhY2tBcnRpZmFjdHM7XG4gICAgY29uc3Qgc3RhY2tPdXRwdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgY29uc3Qgb3V0cHV0c0ZpbGUgPSBvcHRpb25zLm91dHB1dHNGaWxlO1xuXG4gICAgY29uc3QgZGVwbG95U3RhY2sgPSBhc3luYyAoc3RhY2tOb2RlOiBTdGFja05vZGUpID0+IHtcbiAgICAgIGNvbnN0IHN0YWNrID0gc3RhY2tOb2RlLnN0YWNrO1xuICAgICAgaWYgKHN0YWNrQ29sbGVjdGlvbi5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oY2hhbGsuYm9sZChzdGFjay5kaXNwbGF5TmFtZSkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXN0YWNrLmVudmlyb25tZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICAgJ1N0YWNrRW52aXJvbm1lbnRNaXNzaW5nJyxcbiAgICAgICAgICBgU3RhY2sgJHtzdGFjay5kaXNwbGF5TmFtZX0gZG9lcyBub3QgZGVmaW5lIGFuIGVudmlyb25tZW50LCBhbmQgQVdTIGNyZWRlbnRpYWxzIGNvdWxkIG5vdCBiZSBvYnRhaW5lZCBmcm9tIHN0YW5kYXJkIGxvY2F0aW9ucyBvciBubyByZWdpb24gd2FzIGNvbmZpZ3VyZWQuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIGdlbmVyYXRlZCBzdGFjayBoYXMgbm8gcmVzb3VyY2VzXG4gICAgICBjb25zdCByZXNvdXJjZUNvdW50ID0gT2JqZWN0LmtleXMoc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzIHx8IHt9KS5sZW5ndGg7XG4gICAgICBpZiAocmVzb3VyY2VDb3VudCA9PT0gMCkge1xuICAgICAgICAvLyBzdGFjayBpcyBlbXB0eSBhbmQgZG9lc24ndCBleGlzdCA9PiBkbyBub3RoaW5nXG4gICAgICAgIGNvbnN0IHN0YWNrRXhpc3RzID0gYXdhaXQgZGVwbG95bWVudHMuc3RhY2tFeGlzdHMoeyBzdGFjayB9KTtcbiAgICAgICAgaWYgKCFzdGFja0V4aXN0cykge1xuICAgICAgICAgIHJldHVybiBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfVzUwMjEubXNnKGAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfTogc3RhY2sgaGFzIG5vIHJlc291cmNlcywgc2tpcHBpbmcgZGVwbG95bWVudC5gKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdGFjayBpcyBlbXB0eSwgYnV0IGV4aXN0cyA9PiBkZWxldGVcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX1c1MDIyLm1zZyhgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX06IHN0YWNrIGhhcyBubyByZXNvdXJjZXMsIGRlbGV0aW5nIGV4aXN0aW5nIHN0YWNrLmApKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fZGVzdHJveShhc3NlbWJseSwgJ2RlcGxveScsIHtcbiAgICAgICAgICBzdGFja3M6IHsgcGF0dGVybnM6IFtzdGFjay5oaWVyYXJjaGljYWxJZF0sIHN0cmF0ZWd5OiBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEUgfSxcbiAgICAgICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VycmVudFRlbXBsYXRlID0gYXdhaXQgZGVwbG95bWVudHMucmVhZEN1cnJlbnRUZW1wbGF0ZShzdGFjayk7XG5cbiAgICAgIC8vIEZvbGxvd2luZyBhcmUgdGhlIHNhbWUgc2VtYW50aWNzIHdlIGFwcGx5IHdpdGggcmVzcGVjdCB0byBOb3RpZmljYXRpb24gQVJOcyAoZGljdGF0ZWQgYnkgdGhlIFNESylcbiAgICAgIC8vXG4gICAgICAvLyAgLSB1bmRlZmluZWQgID0+ICBjZGsgaWdub3JlcyBpdCwgYXMgaWYgaXQgd2Fzbid0IHN1cHBvcnRlZCAoYWxsb3dzIGV4dGVybmFsIG1hbmFnZW1lbnQpLlxuICAgICAgLy8gIC0gW106ICAgICAgICA9PiAgY2RrIG1hbmFnZXMgaXQsIGFuZCB0aGUgdXNlciB3YW50cyB0byB3aXBlIGl0IG91dC5cbiAgICAgIC8vICAtIFsnYXJuLTEnXSAgPT4gIGNkayBtYW5hZ2VzIGl0LCBhbmQgdGhlIHVzZXIgd2FudHMgdG8gc2V0IGl0IHRvIFsnYXJuLTEnXS5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbkFybnMgPSAoISFvcHRpb25zLm5vdGlmaWNhdGlvbkFybnMgfHwgISFzdGFjay5ub3RpZmljYXRpb25Bcm5zKVxuICAgICAgICA/IChvcHRpb25zLm5vdGlmaWNhdGlvbkFybnMgPz8gW10pLmNvbmNhdChzdGFjay5ub3RpZmljYXRpb25Bcm5zID8/IFtdKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgZm9yIChjb25zdCBub3RpZmljYXRpb25Bcm4gb2Ygbm90aWZpY2F0aW9uQXJucyA/PyBbXSkge1xuICAgICAgICBpZiAoIXZhbGlkYXRlU25zVG9waWNBcm4obm90aWZpY2F0aW9uQXJuKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRTbnNUb3BpY0FybicsIGBOb3RpZmljYXRpb24gYXJuICR7bm90aWZpY2F0aW9uQXJufSBpcyBub3QgYSB2YWxpZCBhcm4gZm9yIGFuIFNOUyB0b3BpY2ApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIERlcGxveSBvcHRpb25zIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIGNoYW5nZSBzZXQgY3JlYXRpb24gYW5kIGV4ZWN1dGlvblxuICAgICAgY29uc3Qgc2hhcmVkRGVwbG95T3B0aW9ucyA9IHtcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIGRlcGxveU5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICB0b29sa2l0U3RhY2tOYW1lOiB0aGlzLnRvb2xraXRTdGFja05hbWUsXG4gICAgICAgIHJldXNlQXNzZXRzOiBvcHRpb25zLnJldXNlQXNzZXRzLFxuICAgICAgICB0YWdzOiBvcHRpb25zLnRhZ3M/Lmxlbmd0aCA/IG9wdGlvbnMudGFncyA6IHRhZ3NGb3JTdGFjayhzdGFjayksXG4gICAgICAgIGZvcmNlRGVwbG95bWVudDogb3B0aW9ucy5mb3JjZURlcGxveW1lbnQsXG4gICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIHBhcmFtZXRlck1hcFsnKiddLCBwYXJhbWV0ZXJNYXBbc3RhY2suc3RhY2tOYW1lXSksXG4gICAgICAgIHVzZVByZXZpb3VzUGFyYW1ldGVyczogb3B0aW9ucy5wYXJhbWV0ZXJzPy5rZWVwRXhpc3RpbmdQYXJhbWV0ZXJzLFxuICAgICAgICByb2xsYmFjazogb3B0aW9ucy5yb2xsYmFjayxcbiAgICAgICAgbm90aWZpY2F0aW9uQXJucyxcbiAgICAgICAgZXh0cmFVc2VyQWdlbnQ6IG9wdGlvbnMuZXh0cmFVc2VyQWdlbnQsXG4gICAgICAgIGFzc2V0UGFyYWxsZWxpc206IG9wdGlvbnMuYXNzZXRQYXJhbGxlbGlzbSxcbiAgICAgIH07XG5cbiAgICAgIC8vIFdoZW4gdXNpbmcgY2hhbmdlLXNldCBtZXRob2QsIGFsd2F5cyBjcmVhdGUgdGhlIGNoYW5nZSBzZXQgdXBmcm9udC5cbiAgICAgIC8vIFRoaXMgZ2l2ZXMgdXMgYW4gYWNjdXJhdGUgZGlmZiBmb3IgYXBwcm92YWwgYW5kIGF2b2lkcyBjcmVhdGluZyBpdCB0d2ljZS5cbiAgICAgIC8vIEZvciBub24tZXhlY3V0aW5nIGRlcGxveW1lbnRzIChwcmVwYXJlLWNoYW5nZS1zZXQpLCB0aGlzIGlzIHRoZSBmaW5hbCByZXN1bHQuXG4gICAgICBjb25zdCBwcmVwYXJlUmVzdWx0ID0gaXNDaGFuZ2VTZXREZXBsb3ltZW50KG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZClcbiAgICAgICAgPyBhd2FpdCBkZXBsb3ltZW50cy5wcmVwYXJlU3RhY2soe1xuICAgICAgICAgIC4uLnNoYXJlZERlcGxveU9wdGlvbnMsXG4gICAgICAgICAgZGVwbG95bWVudE1ldGhvZDogb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLFxuICAgICAgICAgIGNsZWFudXBPbk5vT3A6IGlzRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudChvcHRpb25zLmRlcGxveW1lbnRNZXRob2QpLFxuICAgICAgICB9KVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IERpZmZGb3JtYXR0ZXIoe1xuICAgICAgICB0ZW1wbGF0ZUluZm86IHtcbiAgICAgICAgICBvbGRUZW1wbGF0ZTogY3VycmVudFRlbXBsYXRlLFxuICAgICAgICAgIG5ld1RlbXBsYXRlOiBzdGFjayxcbiAgICAgICAgICBjaGFuZ2VTZXQ6IHByZXBhcmVSZXN1bHQ/LmNoYW5nZVNldCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzZWN1cml0eURpZmYgPSBmb3JtYXR0ZXIuZm9ybWF0U2VjdXJpdHlEaWZmKCk7XG4gICAgICBjb25zdCBzdGFja0RpZmYgPSBmb3JtYXR0ZXIuZm9ybWF0U3RhY2tEaWZmKCk7XG5cbiAgICAgIC8vIFNlbmQgYSByZXF1ZXN0IHJlc3BvbnNlIHdpdGggdGhlIGRpZmYgYXMgcGFydCBvZiB0aGUgbWVzc2FnZSxcbiAgICAgIC8vIGFuZCB0aGUgdGVtcGxhdGUgZGlmZiBhcyBkYXRhXG4gICAgICAvLyAoSW9Ib3N0IGRlY2lkZXMgd2hldGhlciB0byBwcmludCBkZXBlbmRpbmcgb24gcGVybWlzc2lvbkNoYW5nZVR5cGUpXG4gICAgICBjb25zdCBoYXNTZWN1cml0eUNoYW5nZXMgPSBzZWN1cml0eURpZmYucGVybWlzc2lvbkNoYW5nZVR5cGUgIT09IFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTkU7XG4gICAgICBjb25zdCBkZXBsb3lNb3RpdmF0aW9uID0gaGFzU2VjdXJpdHlDaGFuZ2VzXG4gICAgICAgID8gJ1wiLS1yZXF1aXJlLWFwcHJvdmFsXCIgaXMgZW5hYmxlZCBhbmQgc3RhY2sgaW5jbHVkZXMgc2VjdXJpdHktc2Vuc2l0aXZlIHVwZGF0ZXMuJ1xuICAgICAgICA6ICdcIi0tcmVxdWlyZS1hcHByb3ZhbFwiIGlzIGVuYWJsZWQgYW5kIHN0YWNrIGluY2x1ZGVzIHVwZGF0ZXMuJztcbiAgICAgIGNvbnN0IGRpZmZPdXRwdXQgPSBoYXNTZWN1cml0eUNoYW5nZXMgPyBzZWN1cml0eURpZmYuZm9ybWF0dGVkRGlmZiA6IHN0YWNrRGlmZi5mb3JtYXR0ZWREaWZmO1xuICAgICAgY29uc3QgZGVwbG95UXVlc3Rpb24gPSBgJHtkaWZmT3V0cHV0fVxcblxcbiR7ZGVwbG95TW90aXZhdGlvbn1cXG5EbyB5b3Ugd2lzaCB0byBkZXBsb3kgdGhlc2UgY2hhbmdlc2A7XG4gICAgICBjb25zdCBkZXBsb3lDb25maXJtZWQgPSBhd2FpdCBpb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTUwNjAucmVxKGRlcGxveVF1ZXN0aW9uLCB7XG4gICAgICAgIG1vdGl2YXRpb246IGRlcGxveU1vdGl2YXRpb24sXG4gICAgICAgIGNvbmN1cnJlbmN5LFxuICAgICAgICBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogc2VjdXJpdHlEaWZmLnBlcm1pc3Npb25DaGFuZ2VUeXBlLFxuICAgICAgICB0ZW1wbGF0ZURpZmZzOiBmb3JtYXR0ZXIuZGlmZnMsXG4gICAgICB9KSk7XG4gICAgICBpZiAoIWRlcGxveUNvbmZpcm1lZCkge1xuICAgICAgICBpZiAocHJlcGFyZVJlc3VsdD8uY2hhbmdlU2V0Py5DaGFuZ2VTZXROYW1lKSB7XG4gICAgICAgICAgYXdhaXQgZGVwbG95bWVudHMuY2xlYW51cENoYW5nZVNldChzdGFjaywgcHJlcGFyZVJlc3VsdC5jaGFuZ2VTZXQuQ2hhbmdlU2V0TmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignRGVwbG95QWJvcnRlZCcsICdBYm9ydGVkIGJ5IHVzZXInKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhY2tJbmRleCA9IHN0YWNrcy5pbmRleE9mKHN0YWNrKSArIDE7XG4gICAgICBjb25zdCBkZXBsb3lTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRFUExPWV9TVEFDSylcbiAgICAgICAgLmJlZ2luKGAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfTogZGVwbG95aW5nLi4uIFske3N0YWNrSW5kZXh9LyR7c3RhY2tDb2xsZWN0aW9uLnN0YWNrQ291bnR9XWAsIHtcbiAgICAgICAgICB0b3RhbDogc3RhY2tDb2xsZWN0aW9uLnN0YWNrQ291bnQsXG4gICAgICAgICAgY3VycmVudDogc3RhY2tJbmRleCxcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgfSk7XG4gICAgICBkZXBsb3lTcGFuLmluY0NvdW50ZXIoJ3Jlc291cmNlcycsIHJlc291cmNlQ291bnQpO1xuXG4gICAgICBsZXQgZGVwbG95RHVyYXRpb247XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwcmVwYXJlSXNGaW5hbCA9IHByZXBhcmVSZXN1bHQgJiYgKHByZXBhcmVSZXN1bHQubm9PcCB8fCBpc05vbkV4ZWN1dGluZ0NoYW5nZVNldERlcGxveW1lbnQob3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kKSk7XG4gICAgICAgIGxldCBkZXBsb3lSZXN1bHQ6IFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB8IHVuZGVmaW5lZCA9IHByZXBhcmVJc0ZpbmFsID8gcHJlcGFyZVJlc3VsdCA6IHVuZGVmaW5lZDtcblxuICAgICAgICBsZXQgcm9sbGJhY2sgPSBvcHRpb25zLnJvbGxiYWNrO1xuICAgICAgICBsZXQgaXRlcmF0aW9uID0gMDtcbiAgICAgICAgd2hpbGUgKCFkZXBsb3lSZXN1bHQpIHtcbiAgICAgICAgICBpZiAoKytpdGVyYXRpb24gPiAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdEZXBsb3lMb29wVW5zdGFibGUnLCAnVGhpcyBsb29wIHNob3VsZCBoYXZlIHN0YWJpbGl6ZWQgaW4gMiBpdGVyYXRpb25zLCBidXQgZGlkblxcJ3QuIElmIHlvdSBhcmUgc2VlaW5nIHRoaXMgZXJyb3IsIHBsZWFzZSByZXBvcnQgaXQgYXQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy9uZXcvY2hvb3NlJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgciA9IGF3YWl0IGRlcGxveW1lbnRzLmRlcGxveVN0YWNrKHtcbiAgICAgICAgICAgIC4uLnNoYXJlZERlcGxveU9wdGlvbnMsXG4gICAgICAgICAgICAvLyBPbiB0aGUgZmlyc3QgaXRlcmF0aW9uLCBleGVjdXRlIHRoZSBwcmVwYXJlZCBjaGFuZ2Ugc2V0LlxuICAgICAgICAgICAgLy8gT24gcmV0cmllcyAoYWZ0ZXIgcm9sbGJhY2spLCBjcmVhdGUgYSBuZXcgY2hhbmdlIHNldCBzaW5jZSB0aGUgb2xkIG9uZSBpcyBnb25lLlxuICAgICAgICAgICAgZGVwbG95bWVudE1ldGhvZDogaXRlcmF0aW9uID09PSAxICYmIGlzRXhlY3V0aW5nQ2hhbmdlU2V0RGVwbG95bWVudChvcHRpb25zLmRlcGxveW1lbnRNZXRob2QpXG4gICAgICAgICAgICAgID8gdG9FeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudChvcHRpb25zLmRlcGxveW1lbnRNZXRob2QpXG4gICAgICAgICAgICAgIDogb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLFxuICAgICAgICAgICAgcm9sbGJhY2ssXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBzd2l0Y2ggKHIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGlkLWRlcGxveS1zdGFjayc6XG4gICAgICAgICAgICAgIGRlcGxveVJlc3VsdCA9IHI7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdmYWlscGF1c2VkLW5lZWQtcm9sbGJhY2stZmlyc3QnOiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1vdGl2YXRpb24gPSByLnJlYXNvbiA9PT0gJ3JlcGxhY2VtZW50J1xuICAgICAgICAgICAgICAgID8gYFN0YWNrIGlzIGluIGEgcGF1c2VkIGZhaWwgc3RhdGUgKCR7ci5zdGF0dXN9KSBhbmQgY2hhbmdlIGluY2x1ZGVzIGEgcmVwbGFjZW1lbnQgd2hpY2ggY2Fubm90IGJlIGRlcGxveWVkIHdpdGggXCItLW5vLXJvbGxiYWNrXCJgXG4gICAgICAgICAgICAgICAgOiBgU3RhY2sgaXMgaW4gYSBwYXVzZWQgZmFpbCBzdGF0ZSAoJHtyLnN0YXR1c30pIGFuZCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGRvIG5vdCBpbmNsdWRlIFwiLS1uby1yb2xsYmFja1wiYDtcbiAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBgJHttb3RpdmF0aW9ufS4gUGVyZm9ybSBhIHJlZ3VsYXIgZGVwbG95bWVudGA7XG5cbiAgICAgICAgICAgICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgaW9IZWxwZXIucmVxdWVzdFJlc3BvbnNlKElPLkNES19UT09MS0lUX0k1MDUwLnJlcShxdWVzdGlvbiwge1xuICAgICAgICAgICAgICAgIG1vdGl2YXRpb24sXG4gICAgICAgICAgICAgICAgY29uY3VycmVuY3ksXG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgaWYgKCFjb25maXJtZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdSb2xsYmFja0Fib3J0ZWQnLCAnQWJvcnRlZCBieSB1c2VyJyk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBQZXJmb3JtIGEgcm9sbGJhY2tcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcm9sbGJhY2soYXNzZW1ibHksIGFjdGlvbiwge1xuICAgICAgICAgICAgICAgIHN0YWNrczoge1xuICAgICAgICAgICAgICAgICAgcGF0dGVybnM6IFtzdGFjay5oaWVyYXJjaGljYWxJZF0sXG4gICAgICAgICAgICAgICAgICBzdHJhdGVneTogU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5QQVRURVJOX01VU1RfTUFUQ0hfU0lOR0xFLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3JwaGFuRmFpbGVkUmVzb3VyY2VzOiBvcHRpb25zLm9ycGhhbkZhaWxlZFJlc291cmNlc0R1cmluZ1JvbGxiYWNrLFxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAvLyBHbyBhcm91bmQgdGhyb3VnaCB0aGUgJ3doaWxlJyBsb29wIGFnYWluIGJ1dCBzd2l0Y2ggcm9sbGJhY2sgdG8gdHJ1ZS5cbiAgICAgICAgICAgICAgcm9sbGJhY2sgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAncmVwbGFjZW1lbnQtcmVxdWlyZXMtcm9sbGJhY2snOiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1vdGl2YXRpb24gPSAnQ2hhbmdlIGluY2x1ZGVzIGEgcmVwbGFjZW1lbnQgd2hpY2ggY2Fubm90IGJlIGRlcGxveWVkIHdpdGggXCItLW5vLXJvbGxiYWNrXCInO1xuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbiA9IGAke21vdGl2YXRpb259LiBQZXJmb3JtIGEgcmVndWxhciBkZXBsb3ltZW50YDtcblxuICAgICAgICAgICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCBpb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTUwNTAucmVxKHF1ZXN0aW9uLCB7XG4gICAgICAgICAgICAgICAgbW90aXZhdGlvbixcbiAgICAgICAgICAgICAgICBjb25jdXJyZW5jeSxcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICBpZiAoIWNvbmZpcm1lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1JlcGxhY2VtZW50Um9sbGJhY2tBYm9ydGVkJywgJ0Fib3J0ZWQgYnkgdXNlcicpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gR28gYXJvdW5kIHRocm91Z2ggdGhlICd3aGlsZScgbG9vcCBhZ2FpbiBidXQgc3dpdGNoIHJvbGxiYWNrIHRvIHRydWUuXG4gICAgICAgICAgICAgIHJvbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1VuZXhwZWN0ZWREZXBsb3lSZXN1bHQnLCBgVW5leHBlY3RlZCByZXN1bHQgdHlwZSBmcm9tIGRlcGxveVN0YWNrOiAke0pTT04uc3RyaW5naWZ5KHIpfS4gSWYgeW91IGFyZSBzZWVpbmcgdGhpcyBlcnJvciwgcGxlYXNlIHJlcG9ydCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzL25ldy9jaG9vc2VgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gZGVwbG95UmVzdWx0Lm5vT3BcbiAgICAgICAgICA/IGAg4pyFICAke3N0YWNrLmRpc3BsYXlOYW1lfSAobm8gY2hhbmdlcylgXG4gICAgICAgICAgOiBgIOKchSAgJHtzdGFjay5kaXNwbGF5TmFtZX1gO1xuXG4gICAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTkwMC5tc2coY2hhbGsuZ3JlZW4oJ1xcbicgKyBtZXNzYWdlKSwgZGVwbG95UmVzdWx0KSk7XG4gICAgICAgIGRlcGxveUR1cmF0aW9uID0gYXdhaXQgZGVwbG95U3Bhbi50aW1pbmcoSU8uQ0RLX1RPT0xLSVRfSTUwMDApO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhkZXBsb3lSZXN1bHQub3V0cHV0cykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IFsnT3V0cHV0czonXTtcbiAgICAgICAgICBzdGFja091dHB1dHNbc3RhY2suc3RhY2tOYW1lXSA9IGRlcGxveVJlc3VsdC5vdXRwdXRzO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGRlcGxveVJlc3VsdC5vdXRwdXRzKS5zb3J0KCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGVwbG95UmVzdWx0Lm91dHB1dHNbbmFtZV07XG4gICAgICAgICAgICBidWZmZXIucHVzaChgJHtjaGFsay5jeWFuKHN0YWNrLmlkKX0uJHtjaGFsay5jeWFuKG5hbWUpfSA9ICR7Y2hhbGsudW5kZXJsaW5lKGNoYWxrLmN5YW4odmFsdWUpKX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1OTAxLm1zZyhidWZmZXIuam9pbignXFxuJykpKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU5MDEubXNnKGBTdGFjayBBUk46XFxuJHtkZXBsb3lSZXN1bHQuc3RhY2tBcm59YCkpO1xuXG4gICAgICAgIHJldC5zdGFja3MucHVzaCh7XG4gICAgICAgICAgc3RhY2tOYW1lOiBzdGFjay5zdGFja05hbWUsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICAgIGFjY291bnQ6IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgICAgICAgICByZWdpb246IHN0YWNrLmVudmlyb25tZW50LnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YWNrQXJuOiBkZXBsb3lSZXN1bHQuc3RhY2tBcm4sXG4gICAgICAgICAgb3V0cHV0czogZGVwbG95UmVzdWx0Lm91dHB1dHMsXG4gICAgICAgICAgaGllcmFyY2hpY2FsSWQ6IHN0YWNrLmhpZXJhcmNoaWNhbElkLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBJdCBoYXMgdG8gYmUgZXhhY3RseSB0aGlzIHN0cmluZyBiZWNhdXNlIGFuIGludGVncmF0aW9uIHRlc3QgdGVzdHMgZm9yXG4gICAgICAgIC8vIFwiYm9sZChzdGFja25hbWUpIGZhaWxlZDogUmVzb3VyY2VOb3RSZWFkeTogPGVycm9yPlwiXG4gICAgICAgIGNvbnN0IGNvZGUgPSBUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZSkgPyBlLm5hbWUgOiAnRGVwbG95U3RhY2tGYWlsZWQnO1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlID0gW2DinYwgICR7Y2hhbGsuYm9sZChzdGFjay5zdGFja05hbWUpfSBmYWlsZWQ6YCwgLi4uKGUubmFtZSA/IFtgJHtlLm5hbWV9OmBdIDogW10pLCBlLm1lc3NhZ2VdLmpvaW4oJyAnKTtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihjb2RlLCBuZXdNZXNzYWdlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChvcHRpb25zLnRyYWNlTG9ncykge1xuICAgICAgICAgIC8vIGRlcGxveSBjYWxscyB0aGF0IG9yaWdpbmF0ZSBmcm9tIHdhdGNoIHdpbGwgY29tZSB3aXRoIHRoZWlyIG93biBjbG91ZFdhdGNoTG9nTW9uaXRvclxuICAgICAgICAgIGNvbnN0IGNsb3VkV2F0Y2hMb2dNb25pdG9yID0gb3B0aW9ucy5jbG91ZFdhdGNoTG9nTW9uaXRvciA/PyBuZXcgQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcih7IGlvSGVscGVyIH0pO1xuICAgICAgICAgIGNvbnN0IGZvdW5kTG9nR3JvdXBzUmVzdWx0ID0gYXdhaXQgZmluZENsb3VkV2F0Y2hMb2dHcm91cHMoYXdhaXQgdGhpcy5zZGtQcm92aWRlcignZGVwbG95JyksIGlvSGVscGVyLCBzdGFjayk7XG4gICAgICAgICAgY2xvdWRXYXRjaExvZ01vbml0b3IuYWRkTG9nR3JvdXBzKFxuICAgICAgICAgICAgZm91bmRMb2dHcm91cHNSZXN1bHQuZW52LFxuICAgICAgICAgICAgZm91bmRMb2dHcm91cHNSZXN1bHQuc2RrLFxuICAgICAgICAgICAgZm91bmRMb2dHcm91cHNSZXN1bHQubG9nR3JvdXBOYW1lcyxcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTAzMS5tc2coYFRoZSBmb2xsb3dpbmcgbG9nIGdyb3VwcyBhcmUgYWRkZWQ6ICR7Zm91bmRMb2dHcm91cHNSZXN1bHQubG9nR3JvdXBOYW1lc31gKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBhbiBvdXRwdXRzIGZpbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCBjcmVhdGUgdGhlIGZpbGUgcGF0aCBhbmQgd3JpdGUgc3RhY2sgb3V0cHV0cyB0byBpdCBvbmNlLlxuICAgICAgICAvLyBPdXRwdXRzIGFyZSB3cml0dGVuIGFmdGVyIGFsbCBzdGFja3MgaGF2ZSBiZWVuIGRlcGxveWVkLiBJZiBhIHN0YWNrIGRlcGxveW1lbnQgZmFpbHMsXG4gICAgICAgIC8vIGFsbCBvZiB0aGUgb3V0cHV0cyBmcm9tIHN1Y2Nlc3NmdWxseSBkZXBsb3llZCBzdGFja3MgYmVmb3JlIHRoZSBmYWlsdXJlIHdpbGwgc3RpbGwgYmUgd3JpdHRlbi5cbiAgICAgICAgaWYgKG91dHB1dHNGaWxlKSB7XG4gICAgICAgICAgZnMuZW5zdXJlRmlsZVN5bmMob3V0cHV0c0ZpbGUpO1xuICAgICAgICAgIGF3YWl0IGZzLndyaXRlSnNvbihvdXRwdXRzRmlsZSwgc3RhY2tPdXRwdXRzLCB7XG4gICAgICAgICAgICBzcGFjZXM6IDIsXG4gICAgICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IHN5bnRoRHVyYXRpb24uYXNNcyArIChkZXBsb3lEdXJhdGlvbj8uYXNNcyA/PyAwKTtcbiAgICAgIGF3YWl0IGRlcGxveVNwYW4uZW5kKGBcXG7inKggIFRvdGFsIHRpbWU6ICR7Zm9ybWF0VGltZShkdXJhdGlvbil9c1xcbmAsIHsgZHVyYXRpb24gfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGFzc2V0QnVpbGRUaW1lID0gb3B0aW9ucy5hc3NldEJ1aWxkVGltZSA/PyBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWTtcbiAgICBjb25zdCBwcmVidWlsZEFzc2V0cyA9IGFzc2V0QnVpbGRUaW1lID09PSBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWTtcbiAgICBjb25zdCBjb25jdXJyZW5jeSA9IG9wdGlvbnMuY29uY3VycmVuY3kgfHwgMTtcblxuICAgIGNvbnN0IHN0YWNrc0FuZFRoZWlyQXNzZXRNYW5pZmVzdHMgPSBzdGFja3MuZmxhdE1hcCgoc3RhY2spID0+IFtcbiAgICAgIHN0YWNrLFxuICAgICAgLi4uc3RhY2suZGVwZW5kZW5jaWVzLmZpbHRlcih4ID0+IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh4KSksXG4gICAgXSk7XG4gICAgY29uc3Qgd29ya0dyYXBoID0gbmV3IFdvcmtHcmFwaEJ1aWxkZXIoaW9IZWxwZXIsIHByZWJ1aWxkQXNzZXRzKS5idWlsZChzdGFja3NBbmRUaGVpckFzc2V0TWFuaWZlc3RzKTtcblxuICAgIC8vIFVubGVzcyB3ZSBhcmUgcnVubmluZyB3aXRoICctLWZvcmNlJywgc2tpcCBhbHJlYWR5IHB1Ymxpc2hlZCBhc3NldHNcbiAgICBpZiAoIW9wdGlvbnMuZm9yY2VBc3NldFB1Ymxpc2hpbmcpIHtcbiAgICAgIGF3YWl0IHJlbW92ZVB1Ymxpc2hlZEFzc2V0c0Zyb21Xb3JrR3JhcGgod29ya0dyYXBoLCBkZXBsb3ltZW50cywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgZ3JhcGhDb25jdXJyZW5jeTogQ29uY3VycmVuY3kgPSB7XG4gICAgICAnc3RhY2snOiBjb25jdXJyZW5jeSxcbiAgICAgICdhc3NldC1idWlsZCc6IChvcHRpb25zLmFzc2V0UGFyYWxsZWxpc20gPz8gdHJ1ZSkgPyBvcHRpb25zLmFzc2V0QnVpbGRDb25jdXJyZW5jeSA/PyAxIDogMSwgLy8gVGhpcyB3aWxsIGJlIENQVS1ib3VuZC9tZW1vcnkgYm91bmQsIG1vc3RseSBtYXR0ZXJzIGZvciBEb2NrZXIgYnVpbGRzXG4gICAgICAnYXNzZXQtcHVibGlzaCc6IChvcHRpb25zLmFzc2V0UGFyYWxsZWxpc20gPz8gdHJ1ZSkgPyA4IDogMSwgLy8gVGhpcyB3aWxsIGJlIEkvTy1ib3VuZCwgOCBpbiBwYXJhbGxlbCBzZWVtcyByZWFzb25hYmxlXG4gICAgfTtcblxuICAgIGF3YWl0IHdvcmtHcmFwaC5kb1BhcmFsbGVsKGdyYXBoQ29uY3VycmVuY3ksIHtcbiAgICAgIGRlcGxveVN0YWNrLFxuICAgICAgYnVpbGRBc3NldDogdGhpcy5jcmVhdGVCdWlsZEFzc2V0RnVuY3Rpb24oaW9IZWxwZXIsIGRlcGxveW1lbnRzLCBvcHRpb25zLnJvbGVBcm4pLFxuICAgICAgcHVibGlzaEFzc2V0OiB0aGlzLmNyZWF0ZVB1Ymxpc2hBc3NldEZ1bmN0aW9uKGlvSGVscGVyLCBkZXBsb3ltZW50cywgb3B0aW9ucy5yb2xlQXJuLCBvcHRpb25zLmZvcmNlQXNzZXRQdWJsaXNoaW5nKSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2ggQWN0aW9uXG4gICAqXG4gICAqIENvbnRpbnVvdXNseSBvYnNlcnZlIHByb2plY3QgZmlsZXMgYW5kIGRlcGxveSB0aGUgc2VsZWN0ZWQgc3RhY2tzXG4gICAqIGF1dG9tYXRpY2FsbHkgd2hlbiBjaGFuZ2VzIGFyZSBkZXRlY3RlZC4gRGVmYXVsdHMgdG8gaG90c3dhcCBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGltbWVkaWF0ZWx5LCBzdGFydGluZyBhIHdhdGNoZXIgaW4gdGhlIGJhY2tncm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2F0Y2goY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBXYXRjaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8SVdhdGNoZXI+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICd3YXRjaCcpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgYXNzZW1ibHlGcm9tU291cmNlKGlvSGVscGVyLCBjeCwgZmFsc2UpO1xuICAgIGNvbnN0IHJvb3REaXIgPSBvcHRpb25zLndhdGNoRGlyID8/IHByb2Nlc3MuY3dkKCk7XG5cbiAgICAvLyBGb3IgdGhlIFwiaW5jbHVkZVwiIHNldHRpbmcsIHRoZSBiZWhhdmlvciBpczpcbiAgICAvLyAxLiBcIndhdGNoXCIgc2V0dGluZyB3aXRob3V0IGFuIFwiaW5jbHVkZVwiIGtleT8gV2UgZGVmYXVsdCB0byBvYnNlcnZpbmcgXCIqKlwiLlxuICAgIC8vIDIuIFwid2F0Y2hcIiBzZXR0aW5nIHdpdGggYW4gZW1wdHkgXCJpbmNsdWRlXCIga2V5PyBXZSBkZWZhdWx0IHRvIG9ic2VydmluZyBcIioqXCIuXG4gICAgLy8gMy4gTm9uLWVtcHR5IFwiaW5jbHVkZVwiIGtleT8gSnVzdCB1c2UgdGhlIFwiaW5jbHVkZVwiIGtleS5cbiAgICBjb25zdCB3YXRjaEluY2x1ZGVzID0gb3B0aW9ucy5pbmNsdWRlID8/IFtdO1xuICAgIGlmICh3YXRjaEluY2x1ZGVzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB3YXRjaEluY2x1ZGVzLnB1c2goJyoqJyk7XG4gICAgfVxuXG4gICAgLy8gRm9yIHRoZSBcImV4Y2x1ZGVcIiBzZXR0aW5nLCB0aGUgYmVoYXZpb3IgaXMgdG8gYWRkIHNvbWUgZGVmYXVsdCBleGNsdWRlcyBpbiBhZGRpdGlvbiB0b1xuICAgIC8vIHBhdHRlcm5zIHNwZWNpZmllZCBieSB0aGUgdXNlciBzZW5zaWJsZSBkZWZhdWx0IHBhdHRlcm5zOlxuICAgIGNvbnN0IHdhdGNoRXhjbHVkZXMgPSBvcHRpb25zLmV4Y2x1ZGUgPz8gWy4uLldBVENIX0VYQ0xVREVfREVGQVVMVFNdO1xuICAgIC8vIDEuIFRoZSBDREsgb3V0cHV0IGRpcmVjdG9yeSwgaWYgaXQgaXMgdW5kZXIgdGhlIHJvb3REaXJcbiAgICBjb25zdCByZWxhdGl2ZU91dERpciA9IHBhdGgucmVsYXRpdmUocm9vdERpciwgYXNzZW1ibHkuZGlyZWN0b3J5KTtcbiAgICBpZiAoQm9vbGVhbihyZWxhdGl2ZU91dERpciAmJiAhcmVsYXRpdmVPdXREaXIuc3RhcnRzV2l0aCgnLi4nICsgcGF0aC5zZXApICYmICFwYXRoLmlzQWJzb2x1dGUocmVsYXRpdmVPdXREaXIpKSkge1xuICAgICAgd2F0Y2hFeGNsdWRlcy5wdXNoKGAke3JlbGF0aXZlT3V0RGlyfS8qKmApO1xuICAgIH1cbiAgICAvLyAyLiBBbnkgZmlsZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIGEgZG90LlxuICAgIHdhdGNoRXhjbHVkZXMucHVzaCgnLionLCAnKiovLionKTtcbiAgICAvLyAzLiBBbnkgZGlyZWN0b3J5J3MgY29udGVudCB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIGEgZG90LlxuICAgIHdhdGNoRXhjbHVkZXMucHVzaCgnKiovLiovKionKTtcbiAgICAvLyA0LiBBbnkgbm9kZV9tb2R1bGVzIGFuZCBpdHMgY29udGVudCAoZXZlbiBpZiBpdCdzIG5vdCBhIEpTL1RTIHByb2plY3QsIHlvdSBtaWdodCBiZSB1c2luZyBhIGxvY2FsIGF3cy1jbGkgcGFja2FnZSlcbiAgICB3YXRjaEV4Y2x1ZGVzLnB1c2goJyoqL25vZGVfbW9kdWxlcy8qKicpO1xuXG4gICAgLy8gUHJpbnQgc29tZSBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBjb21wdXRlZCBzZXR0aW5nc1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTMxMC5tc2coW1xuICAgICAgYHJvb3QgZGlyZWN0b3J5IHVzZWQgZm9yICd3YXRjaCcgaXM6ICR7cm9vdERpcn1gLFxuICAgICAgYCdpbmNsdWRlJyBwYXR0ZXJucyBmb3IgJ3dhdGNoJzogJHtKU09OLnN0cmluZ2lmeSh3YXRjaEluY2x1ZGVzKX1gLFxuICAgICAgYCdleGNsdWRlJyBwYXR0ZXJucyBmb3IgJ3dhdGNoJzogJHtKU09OLnN0cmluZ2lmeSh3YXRjaEV4Y2x1ZGVzKX1gLFxuICAgIF0uam9pbignXFxuJyksIHtcbiAgICAgIHdhdGNoRGlyOiByb290RGlyLFxuICAgICAgaW5jbHVkZXM6IHdhdGNoSW5jbHVkZXMsXG4gICAgICBleGNsdWRlczogd2F0Y2hFeGNsdWRlcyxcbiAgICB9KSk7XG5cbiAgICAvLyBTaW5jZSAnY2RrIGRlcGxveScgaXMgYSByZWxhdGl2ZWx5IHNsb3cgb3BlcmF0aW9uIGZvciBhICd3YXRjaCcgcHJvY2VzcyxcbiAgICAvLyBpbnRyb2R1Y2UgYSBjb25jdXJyZW5jeSBsYXRjaCB0aGF0IHRyYWNrcyB0aGUgc3RhdGUuXG4gICAgLy8gVGhpcyB3YXksIGlmIGZpbGUgY2hhbmdlIGV2ZW50cyBhcnJpdmUgd2hlbiBhICdjZGsgZGVwbG95JyBpcyBzdGlsbCBleGVjdXRpbmcsXG4gICAgLy8gd2Ugd2lsbCBiYXRjaCB0aGVtLCBhbmQgdHJpZ2dlciBhbm90aGVyICdjZGsgZGVwbG95JyBhZnRlciB0aGUgY3VycmVudCBvbmUgZmluaXNoZXMsXG4gICAgLy8gbWFraW5nIHN1cmUgJ2NkayBkZXBsb3kncyAgYWx3YXlzIGV4ZWN1dGUgb25lIGF0IGEgdGltZS5cbiAgICAvLyBIZXJlJ3MgYSBkaWFncmFtIHNob3dpbmcgdGhlIHN0YXRlIHRyYW5zaXRpb25zOlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgIC0tLS0tLS0tICAgIGZpbGUgY2hhbmdlZCAgICAgLS0tLS0tLS0tLS0tLS0gICAgZmlsZSBjaGFuZ2VkICAgICAtLS0tLS0tLS0tLS0tLSAgZmlsZSBjaGFuZ2VkXG4gICAgLy8gfCAgICAgICAgICAgIHwgIHJlYWR5IGV2ZW50ICAgfCAgICAgIHwgLS0tLS0tLS0tLS0tLS0tLS0tPiB8ICAgICAgICAgICAgfCAtLS0tLS0tLS0tLS0tLS0tLS0+IHwgICAgICAgICAgICB8IC0tLS0tLS0tLS0tLS0tfFxuICAgIC8vIHwgcHJlLXJlYWR5ICB8IC0tLS0tLS0tLS0tLS0+IHwgb3BlbiB8ICAgICAgICAgICAgICAgICAgICAgfCBkZXBsb3lpbmcgIHwgICAgICAgICAgICAgICAgICAgICB8ICAgcXVldWVkICAgfCAgICAgICAgICAgICAgIHxcbiAgICAvLyB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgfCA8LS0tLS0tLS0tLS0tLS0tLS0tIHwgICAgICAgICAgICB8IDwtLS0tLS0tLS0tLS0tLS0tLS0gfCAgICAgICAgICAgIHwgPC0tLS0tLS0tLS0tLS18XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgLS0tLS0tLS0gICdjZGsgZGVwbG95JyBkb25lICAtLS0tLS0tLS0tLS0tLSAgJ2NkayBkZXBsb3knIGRvbmUgIC0tLS0tLS0tLS0tLS0tXG4gICAgdHlwZSBMYXRjaFN0YXRlID0gJ3ByZS1yZWFkeScgfCAnb3BlbicgfCAnZGVwbG95aW5nJyB8ICdxdWV1ZWQnO1xuICAgIGxldCBsYXRjaDogTGF0Y2hTdGF0ZSA9ICdwcmUtcmVhZHknO1xuXG4gICAgY29uc3QgY2xvdWRXYXRjaExvZ01vbml0b3IgPSBvcHRpb25zLnRyYWNlTG9ncyA/IG5ldyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yKHsgaW9IZWxwZXIgfSkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGVwbG95QW5kV2F0Y2ggPSBhc3luYyAoKSA9PiB7XG4gICAgICBsYXRjaCA9ICdkZXBsb3lpbmcnIGFzIExhdGNoU3RhdGU7XG4gICAgICBhd2FpdCBjbG91ZFdhdGNoTG9nTW9uaXRvcj8uZGVhY3RpdmF0ZSgpO1xuXG4gICAgICBhd2FpdCB0aGlzLmludm9rZURlcGxveUZyb21XYXRjaChhc3NlbWJseSwgb3B0aW9ucywgY2xvdWRXYXRjaExvZ01vbml0b3IpO1xuXG4gICAgICAvLyBJZiBsYXRjaCBpcyBzdGlsbCAnZGVwbG95aW5nJyBhZnRlciB0aGUgJ2F3YWl0JywgdGhhdCdzIGZpbmUsXG4gICAgICAvLyBidXQgaWYgaXQncyAncXVldWVkJywgdGhhdCBtZWFucyB3ZSBuZWVkIHRvIGRlcGxveSBhZ2FpblxuICAgICAgd2hpbGUgKGxhdGNoID09PSAncXVldWVkJykge1xuICAgICAgICAvLyBUeXBlU2NyaXB0IGRvZXNuJ3QgcmVhbGl6ZSBsYXRjaCBjYW4gY2hhbmdlIGJldHdlZW4gJ2F3YWl0cycsXG4gICAgICAgIC8vIGFuZCB0aGlua3MgdGhlIGFib3ZlICd3aGlsZScgY29uZGl0aW9uIGlzIGFsd2F5cyAnZmFsc2UnIHdpdGhvdXQgdGhlIGNhc3RcbiAgICAgICAgbGF0Y2ggPSAnZGVwbG95aW5nJztcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzE1Lm1zZyhcIkRldGVjdGVkIGZpbGUgY2hhbmdlcyBkdXJpbmcgZGVwbG95bWVudC4gSW52b2tpbmcgJ2NkayBkZXBsb3knIGFnYWluXCIpKTtcbiAgICAgICAgYXdhaXQgdGhpcy5pbnZva2VEZXBsb3lGcm9tV2F0Y2goYXNzZW1ibHksIG9wdGlvbnMsIGNsb3VkV2F0Y2hMb2dNb25pdG9yKTtcbiAgICAgIH1cbiAgICAgIGxhdGNoID0gJ29wZW4nO1xuICAgICAgYXdhaXQgY2xvdWRXYXRjaExvZ01vbml0b3I/LmFjdGl2YXRlKCk7XG4gICAgfTtcblxuICAgIC8vIENyZWF0ZSBpZ25vcmUgbWF0Y2hlciBmb3IgY2hva2lkYXIgdjQgY29tcGF0aWJpbGl0eVxuICAgIC8vIENob2tpZGFyIHY0IHJlbW92ZWQgZ2xvYiBwYXR0ZXJuIHN1cHBvcnQsIHNvIHdlIHVzZSBwaWNvbWF0Y2ggdG8gZmlsdGVyIGZpbGVzXG4gICAgLy8gV2UgcGFzcyByb290RGlyIGJlY2F1c2UgY2hva2lkYXIgdjQgcGFzc2VzIGFic29sdXRlIHBhdGhzIHRvIHRoZSBpZ25vcmVkIGNhbGxiYWNrXG4gICAgY29uc3Qgc2hvdWxkSWdub3JlID0gY3JlYXRlSWdub3JlTWF0Y2hlcih7XG4gICAgICBpbmNsdWRlOiB3YXRjaEluY2x1ZGVzLFxuICAgICAgZXhjbHVkZTogd2F0Y2hFeGNsdWRlcyxcbiAgICAgIHJvb3REaXIsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3YXRjaGVyID0gY2hva2lkYXJcbiAgICAgIC53YXRjaCgnLicsIHtcbiAgICAgICAgaWdub3JlZDogc2hvdWxkSWdub3JlLFxuICAgICAgICBjd2Q6IHJvb3REaXIsXG4gICAgICB9KVxuICAgICAgLm9uKCdyZWFkeScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbGF0Y2ggPSAnb3Blbic7XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKFwiJ3dhdGNoJyByZWNlaXZlZCB0aGUgJ3JlYWR5JyBldmVudC4gRnJvbSBub3cgb24sIGFsbCBmaWxlIGNoYW5nZXMgd2lsbCB0cmlnZ2VyIGEgZGVwbG95bWVudFwiKTtcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzE0Lm1zZyhcIlRyaWdnZXJpbmcgaW5pdGlhbCAnY2RrIGRlcGxveSdcIikpO1xuICAgICAgICBhd2FpdCBkZXBsb3lBbmRXYXRjaCgpO1xuICAgICAgfSlcbiAgICAgIC5vbignYWxsJywgYXN5bmMgKGV2ZW50OiBFdmVudE5hbWUsIGZpbGVQYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgLy8gRmlsdGVyIG91dCBub24tZmlsZSBldmVudHMgKGUuZy4sICdlcnJvcicsICdyYXcnLCAncmVhZHknLCAnYWxsJylcbiAgICAgICAgLy8gVGhlc2UgYXJlIGhhbmRsZWQgc2VwYXJhdGVseSBvciBub3QgcmVsZXZhbnQgZm9yIHdhdGNoIGRlcGxveW1lbnRzXG4gICAgICAgIGlmICghaXNGaWxlRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdhdGNoRXZlbnQgPSB7XG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChsYXRjaCA9PT0gJ3ByZS1yZWFkeScpIHtcbiAgICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUzMTEubXNnKGAnd2F0Y2gnIGlzIG9ic2VydmluZyAke2V2ZW50ID09PSAnYWRkRGlyJyA/ICdkaXJlY3RvcnknIDogJ3RoZSBmaWxlJ30gJyR7ZmlsZVBhdGh9JyBmb3IgY2hhbmdlc2AsIHdhdGNoRXZlbnQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXRjaCA9PT0gJ29wZW4nKSB7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzEyLm1zZyhgRGV0ZWN0ZWQgY2hhbmdlIHRvICcke2ZpbGVQYXRofScgKHR5cGU6ICR7ZXZlbnR9KS4gVHJpZ2dlcmluZyAnY2RrIGRlcGxveSdgLCB3YXRjaEV2ZW50KSk7XG4gICAgICAgICAgYXdhaXQgZGVwbG95QW5kV2F0Y2goKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB0aGlzIG1lYW5zIGxhdGNoIGlzIGVpdGhlciAnZGVwbG95aW5nJyBvciAncXVldWVkJ1xuICAgICAgICAgIGxhdGNoID0gJ3F1ZXVlZCc7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MzEzLm1zZyhcbiAgICAgICAgICAgIGBEZXRlY3RlZCBjaGFuZ2UgdG8gJyR7ZmlsZVBhdGh9JyAodHlwZTogJHtldmVudH0pIHdoaWxlICdjZGsgZGVwbG95JyBpcyBzdGlsbCBydW5uaW5nLiBXaWxsIHF1ZXVlIGZvciBhbm90aGVyIGRlcGxveW1lbnQgYWZ0ZXIgdGhpcyBvbmUgZmluaXNoZXMnYCxcbiAgICAgICAgICAgIHdhdGNoRXZlbnQsXG4gICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3Qgc3RvcHBlZFByb21pc2UgPSBwcm9taXNlV2l0aFJlc29sdmVyczx2b2lkPigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFzeW5jIGRpc3Bvc2UoKSB7XG4gICAgICAgIC8vIHN0b3AgdGhlIGxvZ3MgbW9uaXRvciwgaWYgaXQgZXhpc3RzXG4gICAgICAgIGF3YWl0IGNsb3VkV2F0Y2hMb2dNb25pdG9yPy5kZWFjdGl2YXRlKCk7XG4gICAgICAgIC8vIGNsb3NlIHRoZSB3YXRjaGVyIGl0c2VsZlxuICAgICAgICBhd2FpdCB3YXRjaGVyLmNsb3NlKCk7XG4gICAgICAgIHN0b3BwZWRQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIHN0b3BwZWRQcm9taXNlLnByb21pc2U7XG4gICAgICB9LFxuICAgICAgYXN5bmMgd2FpdEZvckVuZCgpIHtcbiAgICAgICAgcmV0dXJuIHN0b3BwZWRQcm9taXNlLnByb21pc2U7XG4gICAgICB9LFxuICAgICAgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIElXYXRjaGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIEFjdGlvblxuICAgKlxuICAgKiBSb2xscyBiYWNrIHRoZSBzZWxlY3RlZCBzdGFja3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcm9sbGJhY2soY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBSb2xsYmFja09wdGlvbnMgPSB7fSk6IFByb21pc2U8Um9sbGJhY2tSZXN1bHQ+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdyb2xsYmFjaycpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgc3ludGhBbmRNZWFzdXJlKGlvSGVscGVyLCBjeCwgc3RhY2tzT3B0KG9wdGlvbnMpKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9yb2xsYmFjayhhc3NlbWJseSwgJ3JvbGxiYWNrJywgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIGFsbG93IHJvbGxiYWNrIGJlaW5nIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3kgb3Igd2F0Y2ggYWN0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBfcm9sbGJhY2soYXNzZW1ibHk6IFN0YWNrQXNzZW1ibHksIGFjdGlvbjogJ3JvbGxiYWNrJyB8ICdkZXBsb3knIHwgJ3dhdGNoJywgb3B0aW9uczogUm9sbGJhY2tPcHRpb25zKTogUHJvbWlzZTxSb2xsYmFja1Jlc3VsdD4ge1xuICAgIGNvbnN0IHNlbGVjdFN0YWNrcyA9IHN0YWNrc09wdChvcHRpb25zKTtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsIGFjdGlvbik7XG5cbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBhc3NlbWJseS5zZWxlY3RTdGFja3NWMihzZWxlY3RTdGFja3MpO1xuICAgIGF3YWl0IHRoaXMudmFsaWRhdGVTdGFja3NNZXRhZGF0YShzdGFja3MsIGlvSGVscGVyKTtcblxuICAgIGNvbnN0IHJldDogUm9sbGJhY2tSZXN1bHQgPSB7XG4gICAgICBzdGFja3M6IFtdLFxuICAgIH07XG5cbiAgICBpZiAoc3RhY2tzLnN0YWNrQ291bnQgPT09IDApIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FNjAwMS5tc2coJ05vIHN0YWNrcyBzZWxlY3RlZCcpKTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgbGV0IGFueVJvbGxiYWNrYWJsZSA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBbaW5kZXgsIHN0YWNrXSBvZiBzdGFja3Muc3RhY2tBcnRpZmFjdHMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCByb2xsYmFja1NwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uUk9MTEJBQ0tfU1RBQ0spLmJlZ2luKGBSb2xsaW5nIGJhY2sgJHtjaGFsay5ib2xkKHN0YWNrLmRpc3BsYXlOYW1lKX1gLCB7XG4gICAgICAgIHRvdGFsOiBzdGFja3Muc3RhY2tDb3VudCxcbiAgICAgICAgY3VycmVudDogaW5kZXggKyAxLFxuICAgICAgICBzdGFjayxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGVwbG95bWVudHMgPSBhd2FpdCB0aGlzLmRlcGxveW1lbnRzRm9yQWN0aW9uKCdyb2xsYmFjaycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc3RhY2tSZXN1bHQgPSBhd2FpdCBkZXBsb3ltZW50cy5yb2xsYmFja1N0YWNrKHtcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgICAgdG9vbGtpdFN0YWNrTmFtZTogdGhpcy50b29sa2l0U3RhY2tOYW1lLFxuICAgICAgICAgIG9ycGhhbkZhaWxlZFJlc291cmNlczogb3B0aW9ucy5vcnBoYW5GYWlsZWRSZXNvdXJjZXMsXG4gICAgICAgICAgdmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb246IG9wdGlvbnMudmFsaWRhdGVCb290c3RyYXBTdGFja1ZlcnNpb24sXG4gICAgICAgICAgb3JwaGFuTG9naWNhbElkczogb3B0aW9ucy5vcnBoYW5Mb2dpY2FsSWRzLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFzdGFja1Jlc3VsdC5ub3RJblJvbGxiYWNrYWJsZVN0YXRlKSB7XG4gICAgICAgICAgYW55Um9sbGJhY2thYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCByb2xsYmFja1NwYW4uZW5kKCk7XG5cbiAgICAgICAgcmV0LnN0YWNrcy5wdXNoKHtcbiAgICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgYWNjb3VudDogc3RhY2suZW52aXJvbm1lbnQuYWNjb3VudCxcbiAgICAgICAgICAgIHJlZ2lvbjogc3RhY2suZW52aXJvbm1lbnQucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhY2tOYW1lOiBzdGFjay5zdGFja05hbWUsXG4gICAgICAgICAgc3RhY2tBcm46IHN0YWNrUmVzdWx0LnN0YWNrQXJuLFxuICAgICAgICAgIHJlc3VsdDogc3RhY2tSZXN1bHQubm90SW5Sb2xsYmFja2FibGVTdGF0ZSA/ICdhbHJlYWR5LXN0YWJsZScgOiAncm9sbGVkLWJhY2snLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTY5MDAubXNnKGBcXG4g4p2MICAke2NoYWxrLmJvbGQoc3RhY2suZGlzcGxheU5hbWUpfSBmYWlsZWQ6ICR7Zm9ybWF0RXJyb3JNZXNzYWdlKGUpfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgICAgICB0aHJvdyBUb29sa2l0RXJyb3Iud2l0aENhdXNlKCdSb2xsYmFja0ZhaWxlZCcsICdSb2xsYmFjayBmYWlsZWQgKHVzZSAtLWZvcmNlIHRvIG9ycGhhbiBmYWlsaW5nIHJlc291cmNlcyknLCBlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFhbnlSb2xsYmFja2FibGUpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ05vUm9sbGJhY2thYmxlU3RhY2tzJywgJ05vIHN0YWNrcyB3ZXJlIGluIGEgc3RhdGUgdGhhdCBjb3VsZCBiZSByb2xsZWQgYmFjaycpO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmVmYWN0b3IgQWN0aW9uLiBNb3ZlcyByZXNvdXJjZXMgZnJvbSBvbmUgbG9jYXRpb24gKHN0YWNrICsgbG9naWNhbCBJRCkgdG8gYW5vdGhlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZWZhY3RvcihjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIG9wdGlvbnM6IFJlZmFjdG9yT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZXF1aXJlVW5zdGFibGVGZWF0dXJlKCdyZWZhY3RvcicpO1xuXG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCAncmVmYWN0b3InKTtcbiAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IHN5bnRoQW5kTWVhc3VyZShpb0hlbHBlciwgY3gsIHN0YWNrc09wdChvcHRpb25zKSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlZmFjdG9yKGFzc2VtYmx5LCBpb0hlbHBlciwgY3gsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVmYWN0b3IoYXNzZW1ibHk6IFN0YWNrQXNzZW1ibHksIGlvSGVscGVyOiBJb0hlbHBlciwgY3g6IElDbG91ZEFzc2VtYmx5U291cmNlLCBvcHRpb25zOiBSZWZhY3Rvck9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNka1Byb3ZpZGVyID0gYXdhaXQgdGhpcy5zZGtQcm92aWRlcigncmVmYWN0b3InKTtcbiAgICBjb25zdCBzZWxlY3RlZFN0YWNrcyA9IGF3YWl0IGFzc2VtYmx5LnNlbGVjdFN0YWNrc1YyKHN0YWNrc09wdChvcHRpb25zKSk7XG4gICAgY29uc3QgZ3JvdXBzID0gYXdhaXQgZ3JvdXBTdGFja3Moc2RrUHJvdmlkZXIsIHNlbGVjdGVkU3RhY2tzLnN0YWNrQXJ0aWZhY3RzLCBvcHRpb25zLmFkZGl0aW9uYWxTdGFja05hbWVzID8/IFtdKTtcblxuICAgIGZvciAobGV0IHsgZW52aXJvbm1lbnQsIGxvY2FsU3RhY2tzLCBkZXBsb3llZFN0YWNrcyB9IG9mIGdyb3Vwcykge1xuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhmb3JtYXRFbnZpcm9ubWVudFNlY3Rpb25IZWFkZXIoZW52aXJvbm1lbnQpKTtcblxuICAgICAgY29uc3QgbmV3U3RhY2tzID0gbG9jYWxTdGFja3MuZmlsdGVyKHMgPT4gIWRlcGxveWVkU3RhY2tzLm1hcCh0ID0+IHQuc3RhY2tOYW1lKS5pbmNsdWRlcyhzLnN0YWNrTmFtZSkpO1xuICAgICAgaWYgKG5ld1N0YWNrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8qXG4gICAgICAgICBXaGVuIHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjayByZWZhY3RvciBvcGVyYXRpb24gY3JlYXRlcyBhIG5ldyBzdGFjaywgYW5kIHRoZSByZXNvdXJjZXMgYmVpbmcgbW92ZWQgdG8gdGhhdFxuICAgICAgICAgbmV3IHN0YWNrIGhhdmUgcmVmZXJlbmNlcyB0byBvdGhlciByZXNvdXJjZXMsIENsb3VkRm9ybWF0aW9uIG5lZWRzIHRvIGRvIHdoYXQgdGhleSBjYWxsIFwiY29sbGFwc2luZyB0aGVcbiAgICAgICAgIHRlbXBsYXRlXCIuIFRoZSBkZXRhaWxzIGRvbid0IHJlYWxseSBtYXR0ZXIsIGV4Y2VwdCB0aGF0LCBpbiB0aGUgcHJvY2VzcywgaXQgY2FsbHMgc29tZSBzZXJ2aWNlIEFQSXMsIHRvIHJlYWRcbiAgICAgICAgIHRoZSByZXNvdXJjZXMgYmVpbmcgbW92ZWQuIFRoZSByb2xlIGl0IHVzZXMgdG8gY2FsbCB0aGVzZSBBUElzIGludGVybmFsbHkgaXMgdGhlIHJvbGUgdGhlIHVzZXIgY2FsbGVkIHRoZVxuICAgICAgICAgc3RhY2sgcmVmYWN0b3JpbmcgQVBJIHdpdGgsIHdoaWNoIGluIG91ciBjYXNlIGlzIHRoZSBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50IHJvbGUsIGZyb20gdGhlIGJvb3RzdHJhcCBzdGFjayxcbiAgICAgICAgIGJ5IGRlZmF1bHQuXG5cbiAgICAgICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhpcyByb2xlIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gcmVhZCBhbGwgcmVzb3VyY2UgdHlwZXMuIEluIHRoaXMgY2FzZSxcbiAgICAgICAgIENsb3VkRm9ybWF0aW9uIHdpbGwgcm9sbCBiYWNrIHRoZSByZWZhY3RvciBvcGVyYXRpb24uIFNpbmNlIHRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBBUEksIHRoYXRcbiAgICAgICAgIHRoZSB1c2VyIGNhbm5vdCBrbm93IGFib3V0LCBhbmQgZGlkbid0IGFzayBmb3IsIGl0IHdpbGwgYmUgdmVyeSBzdXJwcmlzaW5nLiBTbyB3ZSd2ZSBkZWNpZGVkIHRvIGJsb2NrIHRoaXMgdXNlXG4gICAgICAgICBjYXNlIHVudGlsIENsb3VkRm9ybWF0aW9uIHN1cHBvcnRzIHBhc3NpbmcgYSBkaWZmZXJlbnQgcm9sZSB0byB1c2UgZm9yIHRoZXNlIHJlYWQgb3BlcmF0aW9ucywgYXMgaXMgdGhlIGNhc2VcbiAgICAgICAgIHdpdGggZGVwbG95bWVudC5cbiAgICAgICAgICovXG5cbiAgICAgICAgbGV0IG1lc3NhZ2UgPSBgVGhlIGZvbGxvd2luZyBzdGFjayR7bmV3U3RhY2tzLmxlbmd0aCA9PT0gMSA/ICcgaXMnIDogJ3MgYXJlJ30gbmV3OiAke25ld1N0YWNrcy5tYXAocyA9PiBzLnN0YWNrTmFtZSkuam9pbignLCAnKX1cXG5gO1xuICAgICAgICBtZXNzYWdlICs9ICdDcmVhdGlvbiBvZiBuZXcgc3RhY2tzIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IHRoZSByZWZhY3RvciBjb21tYW5kLiAnO1xuICAgICAgICBtZXNzYWdlICs9ICdQbGVhc2UgZGVwbG95IGFueSBuZXcgc3RhY2tzIHNlcGFyYXRlbHkgYmVmb3JlIHJlZmFjdG9yaW5nIHlvdXIgc3RhY2tzLic7XG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKGNoYWxrLnJlZChtZXNzYWdlKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFJlZmFjdG9yaW5nQ29udGV4dCh7XG4gICAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgICAgZGVwbG95ZWRTdGFja3MsXG4gICAgICAgICAgbG9jYWxTdGFja3MsXG4gICAgICAgICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICAgIG92ZXJyaWRlczogZ2V0T3ZlcnJpZGVzKGVudmlyb25tZW50LCBkZXBsb3llZFN0YWNrcywgbG9jYWxTdGFja3MpLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBtYXBwaW5ncyA9IGNvbnRleHQubWFwcGluZ3M7XG5cbiAgICAgICAgaWYgKG1hcHBpbmdzLmxlbmd0aCA9PT0gMCAmJiBjb250ZXh0LmFtYmlndW91c1BhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ05vdGhpbmcgdG8gcmVmYWN0b3IuJyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0eXBlZE1hcHBpbmdzID0gbWFwcGluZ3NcbiAgICAgICAgICAubWFwKG0gPT4gbS50b1R5cGVkTWFwcGluZygpKVxuICAgICAgICAgIC5maWx0ZXIobSA9PiBtLnR5cGUgIT09ICdBV1M6OkNESzo6TWV0YWRhdGEnKTtcblxuICAgICAgICBsZXQgcmVmYWN0b3JNZXNzYWdlID0gZm9ybWF0VHlwZWRNYXBwaW5ncyh0eXBlZE1hcHBpbmdzKTtcbiAgICAgICAgY29uc3QgcmVmYWN0b3JSZXN1bHQ6IFJlZmFjdG9yUmVzdWx0ID0geyB0eXBlZE1hcHBpbmdzIH07XG5cbiAgICAgICAgY29uc3Qgc3RhY2tEZWZpbml0aW9ucyA9IGF3YWl0IGdlbmVyYXRlU3RhY2tEZWZpbml0aW9ucyhtYXBwaW5ncywgZGVwbG95ZWRTdGFja3MsIGxvY2FsU3RhY2tzLCBlbnZpcm9ubWVudCwgc2RrUHJvdmlkZXIsIGlvSGVscGVyKTtcblxuICAgICAgICBpZiAoY29udGV4dC5hbWJpZ3VvdXNQYXRocy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgcGF0aHMgPSBjb250ZXh0LmFtYmlndW91c1BhdGhzO1xuICAgICAgICAgIHJlZmFjdG9yTWVzc2FnZSArPSAnXFxuJyArIGZvcm1hdEFtYmlndW91c01hcHBpbmdzKHBhdGhzKTtcbiAgICAgICAgICByZWZhY3RvclJlc3VsdC5hbWJpZ3VvdXNQYXRocyA9IHBhdGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k4OTAwLm1zZyhyZWZhY3Rvck1lc3NhZ2UsIHJlZmFjdG9yUmVzdWx0KSk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZHJ5UnVuIHx8IGNvbnRleHQubWFwcGluZ3MubGVuZ3RoID09PSAwIHx8IGNvbnRleHQuYW1iaWd1b3VzUGF0aHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIE5vdGhpbmcgbGVmdCB0byBkby5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluIGludGVyYWN0aXZlIG1vZGUgKFRUWSkgd2UgbmVlZCBjb25maXJtYXRpb24gYmVmb3JlIHByb2NlZWRpbmdcbiAgICAgICAgaWYgKHByb2Nlc3Muc3Rkb3V0LmlzVFRZICYmICFhd2FpdCBjb25maXJtKG9wdGlvbnMuZm9yY2UgPz8gZmFsc2UpKSB7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhjaGFsay5yZWQoYFJlZmFjdG9yaW5nIGNhbmNlbGVkIGZvciBlbnZpcm9ubWVudCBhd3M6Ly8ke2Vudmlyb25tZW50LmFjY291bnR9LyR7ZW52aXJvbm1lbnQucmVnaW9ufVxcbmApKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ1JlZmFjdG9yaW5nLi4uJyk7XG4gICAgICAgIGF3YWl0IGNvbnRleHQuZXhlY3V0ZShzdGFja0RlZmluaXRpb25zLCBzZGtQcm92aWRlciwgaW9IZWxwZXIpO1xuICAgICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCfinIUgIFN0YWNrIHJlZmFjdG9yIGNvbXBsZXRlJyk7XG5cbiAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbygnRGVwbG95aW5nIHVwZGF0ZWQgc3RhY2tzIHRvIGZpbmFsaXplIHJlZmFjdG9yLi4uJyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVwbG95KGN4LCB7XG4gICAgICAgICAgc3RhY2tzOiBBTExfU1RBQ0tTLFxuICAgICAgICAgIGZvcmNlRGVwbG95bWVudDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGDinYwgIFJlZmFjdG9yIGZhaWxlZDogJHtmb3JtYXRFcnJvcihlKX1gO1xuICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTg5MDAubXNnKG1lc3NhZ2UsIHsgZXJyb3I6IGUgfSkpO1xuXG4gICAgICAgIC8vIEFsc28gZGVidWdnaW5nIHRoZSBlcnJvciwgYmVjYXVzZSB0aGUgQVBJIGRvZXMgbm90IGFsd2F5cyByZXR1cm4gYSB1c2VyLWZyaWVuZGx5IG1lc3NhZ2VcbiAgICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRPdmVycmlkZXMoZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50LCBkZXBsb3llZFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdLCBsb2NhbFN0YWNrczogQ2xvdWRGb3JtYXRpb25TdGFja1tdKSB7XG4gICAgICBjb25zdCBtYXBwaW5nR3JvdXAgPSBvcHRpb25zLm92ZXJyaWRlc1xuICAgICAgICA/LmZpbmQoZyA9PiBnLnJlZ2lvbiA9PT0gZW52aXJvbm1lbnQucmVnaW9uICYmIGcuYWNjb3VudCA9PT0gZW52aXJvbm1lbnQuYWNjb3VudCk7XG5cbiAgICAgIHJldHVybiBtYXBwaW5nR3JvdXAgPT0gbnVsbFxuICAgICAgICA/IFtdXG4gICAgICAgIDogT2JqZWN0LmVudHJpZXMobWFwcGluZ0dyb3VwLnJlc291cmNlcyA/PyB7fSlcbiAgICAgICAgICAubWFwKChbc291cmNlLCBkZXN0aW5hdGlvbl0pID0+IG5ldyBSZXNvdXJjZU1hcHBpbmcoXG4gICAgICAgICAgICBnZXRSZXNvdXJjZUxvY2F0aW9uKHNvdXJjZSwgZGVwbG95ZWRTdGFja3MpLFxuICAgICAgICAgICAgZ2V0UmVzb3VyY2VMb2NhdGlvbihkZXN0aW5hdGlvbiwgbG9jYWxTdGFja3MpLFxuICAgICAgICAgICkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFJlc291cmNlTG9jYXRpb24obG9jYXRpb246IHN0cmluZywgc3RhY2tzOiBDbG91ZEZvcm1hdGlvblN0YWNrW10pOiBSZXNvdXJjZUxvY2F0aW9uIHtcbiAgICAgIGZvciAobGV0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgICAgICBjb25zdCBbc3RhY2tOYW1lLCBsb2dpY2FsSWRdID0gbG9jYXRpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHN0YWNrTmFtZSAhPSBudWxsICYmIGxvZ2ljYWxJZCAhPSBudWxsICYmIHN0YWNrLnN0YWNrTmFtZSA9PT0gc3RhY2tOYW1lICYmIHN0YWNrLnRlbXBsYXRlLlJlc291cmNlcz8uW2xvZ2ljYWxJZF0gIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VMb2NhdGlvbihzdGFjaywgbG9naWNhbElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZXNvdXJjZUVudHJ5ID0gT2JqZWN0XG4gICAgICAgICAgICAuZW50cmllcyhzdGFjay50ZW1wbGF0ZS5SZXNvdXJjZXMgPz8ge30pXG4gICAgICAgICAgICAuZmluZCgoW18sIHJdKSA9PiByLk1ldGFkYXRhPy5bJ2F3czpjZGs6cGF0aCddID09PSBsb2NhdGlvbik7XG4gICAgICAgICAgaWYgKHJlc291cmNlRW50cnkgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUxvY2F0aW9uKHN0YWNrLCByZXNvdXJjZUVudHJ5WzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Jlc291cmNlTG9jYXRpb25Ob3RGb3VuZCcsIGBDYW5ub3QgZmluZCByZXNvdXJjZSBpbiBsb2NhdGlvbiAke2xvY2F0aW9ufWApO1xuICAgIH1cblxuICAgIGFzeW5jIGZ1bmN0aW9uIGNvbmZpcm0oZm9yY2U6IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgIC8vICdmb3JjZScgaXMgc2V0IHRvIHRydWUgaXMgdGhlIGVxdWl2YWxlbnQgb2YgaGF2aW5nIHByZS1hcHByb3ZhbCBmb3IgYW55IHJlZmFjdG9yXG4gICAgICBpZiAoZm9yY2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gJ0RvIHlvdSB3aXNoIHRvIHJlZmFjdG9yIHRoZXNlIHJlc291cmNlcz8nO1xuICAgICAgcmV0dXJuIGlvSGVscGVyLnJlcXVlc3RSZXNwb25zZShJTy5DREtfVE9PTEtJVF9JODkxMC5yZXEocXVlc3Rpb24sIHtcbiAgICAgICAgbW90aXZhdGlvbjogJ1VzZXIgaW5wdXQgaXMgbmVlZGVkJyxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmb3JtYXRFcnJvcihlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKHBheWxvYWQucmVhc29uPy5TdGF0dXNSZWFzb24pIHtcbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKGBSZWZhY3RvciBjcmVhdGlvbjogWyR7cGF5bG9hZC5yZWFzb24/LlN0YXR1c31dICR7cGF5bG9hZC5yZWFzb24uU3RhdHVzUmVhc29ufWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXlsb2FkLnJlYXNvbj8uRXhlY3V0aW9uU3RhdHVzUmVhc29uKSB7XG4gICAgICAgICAgbWVzc2FnZXMucHVzaChgUmVmYWN0b3IgZXhlY3V0aW9uOiBbJHtwYXlsb2FkLnJlYXNvbj8uU3RhdHVzfV0gJHtwYXlsb2FkLnJlYXNvbi5FeGVjdXRpb25TdGF0dXNSZWFzb259YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzLmxlbmd0aCA+IDAgPyBtZXNzYWdlcy5qb2luKCdcXG4nKSA6IGBVbmtub3duIGVycm9yIChTdGFjayByZWZhY3RvciBJRDogJHtwYXlsb2FkLnJlYXNvbj8uU3RhY2tSZWZhY3RvcklkID8/ICd1bmtub3duJ30pYDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdEVycm9yTWVzc2FnZShlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3kgQWN0aW9uXG4gICAqXG4gICAqIERlc3Ryb3lzIHRoZSBzZWxlY3RlZCBTdGFja3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVzdHJveShjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsIG9wdGlvbnM6IERlc3Ryb3lPcHRpb25zID0ge30pOiBQcm9taXNlPERlc3Ryb3lSZXN1bHQ+IHtcbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdkZXN0cm95Jyk7XG4gICAgYXdhaXQgdXNpbmcgYXNzZW1ibHkgPSBhd2FpdCBzeW50aEFuZE1lYXN1cmUoaW9IZWxwZXIsIGN4LCBzdGFja3NPcHQob3B0aW9ucykpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9kZXN0cm95KGFzc2VtYmx5LCAnZGVzdHJveScsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciB0byBhbGxvdyBkZXN0cm95IGJlaW5nIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3kgYWN0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBfZGVzdHJveShhc3NlbWJseTogU3RhY2tBc3NlbWJseSwgYWN0aW9uOiAnZGVwbG95JyB8ICdkZXN0cm95Jywgb3B0aW9uczogRGVzdHJveU9wdGlvbnMpOiBQcm9taXNlPERlc3Ryb3lSZXN1bHQ+IHtcbiAgICBjb25zdCBzZWxlY3RTdGFja3MgPSBzdGFja3NPcHQob3B0aW9ucyk7XG4gICAgY29uc3QgaW9IZWxwZXIgPSBhc0lvSGVscGVyKHRoaXMuaW9Ib3N0LCBhY3Rpb24pO1xuICAgIGNvbnN0IHN0YWNrcyA9IGF3YWl0IGFzc2VtYmx5LnNlbGVjdFN0YWNrc1YyKHNlbGVjdFN0YWNrcyk7XG5cbiAgICBjb25zdCByZXQ6IERlc3Ryb3lSZXN1bHQgPSB7XG4gICAgICBzdGFja3M6IFtdLFxuICAgIH07XG5cbiAgICBjb25zdCBtb3RpdmF0aW9uID0gJ0Rlc3Ryb3lpbmcgc3RhY2tzIGlzIGFuIGlycmV2ZXJzaWJsZSBhY3Rpb24nO1xuICAgIGNvbnN0IHF1ZXN0aW9uID0gYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU6ICR7Y2hhbGsucmVkKHN0YWNrcy5oaWVyYXJjaGljYWxJZHMuam9pbignLCAnKSl9YDtcbiAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCBpb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1RPT0xLSVRfSTcwMTAucmVxKHF1ZXN0aW9uLCB7IG1vdGl2YXRpb24gfSkpO1xuICAgIGlmICghY29uZmlybWVkKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTcwMTAubXNnKCdBYm9ydGVkIGJ5IHVzZXInKSk7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmN1cnJlbmN5ID0gb3B0aW9ucy5jb25jdXJyZW5jeSB8fCAxO1xuICAgIGxldCBkZXN0cm95Q291bnQgPSAwO1xuXG4gICAgY29uc3QgZGVzdHJveVNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uREVTVFJPWV9BQ1RJT04pLmJlZ2luKHtcbiAgICAgIHN0YWNrczogc3RhY2tzLnN0YWNrQXJ0aWZhY3RzLFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZXN0cm95U3RhY2sgPSBhc3luYyAoc3RhY2tOb2RlOiBTdGFja05vZGUpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBzdGFja05vZGUuc3RhY2s7XG4gICAgICAgIGRlc3Ryb3lDb3VudCsrO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNpbmdsZURlc3Ryb3lTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkRFU1RST1lfU1RBQ0spXG4gICAgICAgICAgICAuYmVnaW4oY2hhbGsuZ3JlZW4oYCR7Y2hhbGsuYmx1ZShzdGFjay5kaXNwbGF5TmFtZSl9OiBkZXN0cm95aW5nLi4uIFske2Rlc3Ryb3lDb3VudH0vJHtzdGFja3Muc3RhY2tDb3VudH1dYCksIHtcbiAgICAgICAgICAgICAgdG90YWw6IHN0YWNrcy5zdGFja0NvdW50LFxuICAgICAgICAgICAgICBjdXJyZW50OiBkZXN0cm95Q291bnQsXG4gICAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgZGVwbG95bWVudHMgPSBhd2FpdCB0aGlzLmRlcGxveW1lbnRzRm9yQWN0aW9uKGFjdGlvbik7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVwbG95bWVudHMuZGVzdHJveVN0YWNrKHtcbiAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICAgZGVwbG95TmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0LnN0YWNrcy5wdXNoKHtcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgIGFjY291bnQ6IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgICAgICAgICAgIHJlZ2lvbjogc3RhY2suZW52aXJvbm1lbnQucmVnaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YWNrTmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgc3RhY2tBcm46IHJlc3VsdC5zdGFja0FybixcbiAgICAgICAgICAgIHN0YWNrRXhpc3RlZDogcmVzdWx0LnN0YWNrQXJuICE9PSB1bmRlZmluZWQsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTc5MDAubXNnKGNoYWxrLmdyZWVuKGBcXG4g4pyFICAke2NoYWxrLmJsdWUoc3RhY2suZGlzcGxheU5hbWUpfTogJHthY3Rpb259ZWRgKSwgc3RhY2spKTtcbiAgICAgICAgICBhd2FpdCBzaW5nbGVEZXN0cm95U3Bhbi5lbmQoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0U3OTAwLm1zZyhgXFxuIOKdjCAgJHtjaGFsay5ibHVlKHN0YWNrLmRpc3BsYXlOYW1lKX06ICR7YWN0aW9ufSBmYWlsZWQgJHtlfWAsIHsgZXJyb3I6IGUgfSkpO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHdvcmtHcmFwaCA9IGJ1aWxkRGVzdHJveVdvcmtHcmFwaChzdGFja3Muc3RhY2tBcnRpZmFjdHMsIGlvSGVscGVyKTtcbiAgICAgIGF3YWl0IHdvcmtHcmFwaC5wcm9jZXNzU3RhY2tzKGNvbmN1cnJlbmN5LCBkZXN0cm95U3RhY2spO1xuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBkZXN0cm95U3Bhbi5lbmQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIHN0YWNrcyBmb3IgZXJyb3JzIGFuZCB3YXJuaW5ncyBhY2NvcmRpbmcgdG8gdGhlIENMSSdzIGN1cnJlbnQgc2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVTdGFja3NNZXRhZGF0YShzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgaW9Ib3N0OiBJb0hlbHBlcikge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSAobGV2ZWw6IElvTWVzc2FnZUxldmVsKSA9PiB7XG4gICAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICByZXR1cm4gSU8uQ0RLX0FTU0VNQkxZX0U5OTk5O1xuICAgICAgICBjYXNlICd3YXJuJzpcbiAgICAgICAgICByZXR1cm4gSU8uQ0RLX0FTU0VNQkxZX1c5OTk5O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBJTy5DREtfQVNTRU1CTFlfSTk5OTk7XG4gICAgICB9XG4gICAgfTtcbiAgICBhd2FpdCBzdGFja3MudmFsaWRhdGVNZXRhZGF0YShcbiAgICAgIHRoaXMucHJvcHMuYXNzZW1ibHlGYWlsdXJlQXQsXG4gICAgICBhc3luYyAobGV2ZWwsIG1zZykgPT4gaW9Ib3N0Lm5vdGlmeShidWlsZGVyKGxldmVsKS5tc2coYFske2xldmVsfSBhdCAke21zZy5pZH1dICR7bXNnLmVudHJ5LmRhdGF9YCwgbXNnKSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkZXBsb3ltZW50cyBjbGFzc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXBsb3ltZW50c0ZvckFjdGlvbihhY3Rpb246IFRvb2xraXRBY3Rpb24pOiBQcm9taXNlPERlcGxveW1lbnRzPiB7XG4gICAgcmV0dXJuIG5ldyBEZXBsb3ltZW50cyh7XG4gICAgICBzZGtQcm92aWRlcjogYXdhaXQgdGhpcy5zZGtQcm92aWRlcihhY3Rpb24pLFxuICAgICAgdG9vbGtpdFN0YWNrTmFtZTogdGhpcy50b29sa2l0U3RhY2tOYW1lLFxuICAgICAgaW9IZWxwZXI6IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsIGFjdGlvbiksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGludm9rZURlcGxveUZyb21XYXRjaChcbiAgICBhc3NlbWJseTogU3RhY2tBc3NlbWJseSxcbiAgICBvcHRpb25zOiBXYXRjaE9wdGlvbnMsXG4gICAgY2xvdWRXYXRjaExvZ01vbml0b3I/OiBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyB3YXRjaCBkZWZhdWx0cyB0byBob3Rzd2FwIGRlcGxveW1lbnRcbiAgICBjb25zdCBkZXBsb3ltZW50TWV0aG9kID0gb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kID8/IHsgbWV0aG9kOiAnaG90c3dhcCcgfTtcbiAgICBjb25zdCBkZXBsb3lPcHRpb25zOiBQcml2YXRlRGVwbG95T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBjbG91ZFdhdGNoTG9nTW9uaXRvcixcbiAgICAgIGRlcGxveW1lbnRNZXRob2QsXG4gICAgICBleHRyYVVzZXJBZ2VudDogYGNkay13YXRjaC9ob3Rzd2FwLSR7ZGVwbG95bWVudE1ldGhvZC5tZXRob2QgPT09ICdob3Rzd2FwJyA/ICdvbicgOiAnb2ZmJ31gLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fZGVwbG95KGFzc2VtYmx5LCAnd2F0Y2gnLCB6ZXJvVGltZSgpLCBkZXBsb3lPcHRpb25zKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGp1c3QgY29udGludWUgLSBkZXBsb3kgd2lsbCBzaG93IHRoZSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBmZWF0dXJlIGZsYWcgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmbGFncyhjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UpOiBQcm9taXNlPEZlYXR1cmVGbGFnW10+IHtcbiAgICB0aGlzLnJlcXVpcmVVbnN0YWJsZUZlYXR1cmUoJ2ZsYWdzJyk7XG5cbiAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIodGhpcy5pb0hvc3QsICdmbGFncycpO1xuICAgIGF3YWl0IHVzaW5nIGFzc2VtYmx5ID0gYXdhaXQgYXNzZW1ibHlGcm9tU291cmNlKGlvSGVscGVyLCBjeCk7XG4gICAgY29uc3QgYXJ0aWZhY3RzID0gT2JqZWN0LnZhbHVlcyhhc3NlbWJseS5jbG91ZEFzc2VtYmx5Lm1hbmlmZXN0LmFydGlmYWN0cyA/PyB7fSk7XG4gICAgY29uc3QgZmVhdHVyZUZsYWdSZXBvcnRzID0gYXJ0aWZhY3RzLmZpbHRlcihhID0+IGEudHlwZSA9PT0gQXJ0aWZhY3RUeXBlLkZFQVRVUkVfRkxBR19SRVBPUlQpO1xuXG4gICAgY29uc3QgZmxhZ3MgPSBmZWF0dXJlRmxhZ1JlcG9ydHMuZmxhdE1hcChyZXBvcnQgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IHJlcG9ydC5wcm9wZXJ0aWVzIGFzIEZlYXR1cmVGbGFnUmVwb3J0UHJvcGVydGllcztcbiAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBwcm9wZXJ0aWVzLm1vZHVsZTtcblxuICAgICAgY29uc3QgZmxhZ3NXaXRoVW5jb25maWd1cmVkQmVoYXZlc0xpa2UgPSBPYmplY3QuZW50cmllcyhwcm9wZXJ0aWVzLmZsYWdzKVxuICAgICAgICAuZmlsdGVyKChbXywgZmxhZ0luZm9dKSA9PiBmbGFnSW5mby51bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZSAhPSB1bmRlZmluZWQpO1xuXG4gICAgICBjb25zdCBzaG91bGRJbmNsdWRlVW5jb25maWd1cmVkQmVoYXZlc0xpa2UgPSBmbGFnc1dpdGhVbmNvbmZpZ3VyZWRCZWhhdmVzTGlrZS5sZW5ndGggPiAwO1xuXG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocHJvcGVydGllcy5mbGFncykubWFwKChbZmxhZ05hbWUsIGZsYWdJbmZvXSkgPT4ge1xuICAgICAgICBjb25zdCBiYXNlRmxhZyA9IHtcbiAgICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgICAgbmFtZTogZmxhZ05hbWUsXG4gICAgICAgICAgcmVjb21tZW5kZWRWYWx1ZTogZmxhZ0luZm8ucmVjb21tZW5kZWRWYWx1ZSxcbiAgICAgICAgICB1c2VyVmFsdWU6IGZsYWdJbmZvLnVzZXJWYWx1ZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgZXhwbGFuYXRpb246IGZsYWdJbmZvLmV4cGxhbmF0aW9uID8/ICcnLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzaG91bGRJbmNsdWRlVW5jb25maWd1cmVkQmVoYXZlc0xpa2UpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUZsYWcsXG4gICAgICAgICAgICB1bmNvbmZpZ3VyZWRCZWhhdmVzTGlrZToge1xuICAgICAgICAgICAgICB2MjogZmxhZ0luZm8udW5jb25maWd1cmVkQmVoYXZlc0xpa2U/LnYyID8/IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJhc2VGbGFnO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmxhZ3M7XG4gIH1cblxuICBwcml2YXRlIHJlcXVpcmVVbnN0YWJsZUZlYXR1cmUocmVxdWVzdGVkRmVhdHVyZTogVW5zdGFibGVGZWF0dXJlKSB7XG4gICAgaWYgKCF0aGlzLnVuc3RhYmxlRmVhdHVyZXMuaW5jbHVkZXMocmVxdWVzdGVkRmVhdHVyZSkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Vuc3RhYmxlRmVhdHVyZU5vdEVuYWJsZWQnLCBgVW5zdGFibGUgZmVhdHVyZSAnJHtyZXF1ZXN0ZWRGZWF0dXJlfScgaXMgbm90IGVuYWJsZWQuIFBsZWFzZSBlbmFibGUgaXQgdW5kZXIgJ3Vuc3RhYmxlRmVhdHVyZXMnYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGJ1aWxkQXNzZXQgZnVuY3Rpb24gZm9yIHVzZSBpbiBXb3JrR3JhcGhcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQnVpbGRBc3NldEZ1bmN0aW9uKFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gICAgcm9sZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICByZXR1cm4gYXN5bmMgKGFzc2V0Tm9kZTogQXNzZXRCdWlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkQXNzZXRTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLkJVSUxEX0FTU0VUKS5iZWdpbih7XG4gICAgICAgIGFzc2V0OiBhc3NldE5vZGUuYXNzZXQsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGRlcGxveW1lbnRzLmJ1aWxkU2luZ2xlQXNzZXQoXG4gICAgICAgIGFzc2V0Tm9kZS5hc3NldE1hbmlmZXN0QXJ0aWZhY3QsXG4gICAgICAgIGFzc2V0Tm9kZS5hc3NldE1hbmlmZXN0LFxuICAgICAgICBhc3NldE5vZGUuYXNzZXQsXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFjazogYXNzZXROb2RlLnBhcmVudFN0YWNrLFxuICAgICAgICAgIHJvbGVBcm4sXG4gICAgICAgICAgc3RhY2tOYW1lOiBhc3NldE5vZGUucGFyZW50U3RhY2suc3RhY2tOYW1lLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGF3YWl0IGJ1aWxkQXNzZXRTcGFuLmVuZCgpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcHVibGlzaEFzc2V0IGZ1bmN0aW9uIGZvciB1c2UgaW4gV29ya0dyYXBoXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hBc3NldEZ1bmN0aW9uKFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gICAgcm9sZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGZvcmNlUHVibGlzaD86IGJvb2xlYW4sXG4gICkge1xuICAgIHJldHVybiBhc3luYyAoYXNzZXROb2RlOiBBc3NldFB1Ymxpc2hOb2RlKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaXNoQXNzZXRTcGFuID0gYXdhaXQgaW9IZWxwZXIuc3BhbihTUEFOLlBVQkxJU0hfQVNTRVQpLmJlZ2luKHtcbiAgICAgICAgYXNzZXQ6IGFzc2V0Tm9kZS5hc3NldCxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgZGVwbG95bWVudHMucHVibGlzaFNpbmdsZUFzc2V0KGFzc2V0Tm9kZS5hc3NldE1hbmlmZXN0LCBhc3NldE5vZGUuYXNzZXQsIHtcbiAgICAgICAgc3RhY2s6IGFzc2V0Tm9kZS5wYXJlbnRTdGFjayxcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgc3RhY2tOYW1lOiBhc3NldE5vZGUucGFyZW50U3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBmb3JjZVB1Ymxpc2gsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHB1Ymxpc2hBc3NldFNwYW4uZW5kKCk7XG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENlbnRyYWxpemUgdGhlIGRlZmF1bHQgc3RhY2sgc2VsZWN0aW9uIGxvZ2ljIGluIGEgc2luZ2xlIHBsYWNlXG4gKi9cbmZ1bmN0aW9uIHN0YWNrc09wdChvOiB7IHN0YWNrcz86IFN0YWNrU2VsZWN0b3IgfSk6IFN0YWNrU2VsZWN0b3Ige1xuICByZXR1cm4gby5zdGFja3MgPz8gQUxMX1NUQUNLUztcbn1cblxuLyoqXG4gKiBQZXJmb3JtIHN5bnRoZXNpcyBhbmQgZW1pdCB0aGUgdGltZSB0YWtlbiB0byBhIG5ldyBzcGFuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN5bnRoQW5kTWVhc3VyZShcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBjeDogSUNsb3VkQXNzZW1ibHlTb3VyY2UsXG4gIHNlbGVjdFN0YWNrczogU3RhY2tTZWxlY3Rvcixcbik6IFByb21pc2U8U3RhY2tBc3NlbWJseSAmIHsgc3ludGhEdXJhdGlvbjogRWxhcHNlZFRpbWUgfT4ge1xuICBjb25zdCBzeW50aFNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uU1lOVEhfQVNTRU1CTFkpLmJlZ2luKHsgc3RhY2tzOiBzZWxlY3RTdGFja3MgfSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmV0ID0gYXdhaXQgYXNzZW1ibHlGcm9tU291cmNlKHN5bnRoU3Bhbi5hc0hlbHBlciwgY3gpO1xuICAgIGNvdW50QXNzZW1ibHlSZXN1bHRzKHN5bnRoU3BhbiwgcmV0LmFzc2VtYmx5KTtcbiAgICBjb25zdCBzeW50aER1cmF0aW9uID0gYXdhaXQgc3ludGhTcGFuLmVuZCh7fSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZXQsIHsgc3ludGhEdXJhdGlvbiB9KTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIC8vIEVuZCB0aGUgc3BhbiBldmVuIGlmIHdlIGhhZCBhIGZhaWx1cmVcbiAgICBhd2FpdCBzeW50aFNwYW4uZW5kKHsgZXJyb3IgfSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZnVuY3Rpb24gemVyb1RpbWUoKTogRWxhcHNlZFRpbWUge1xuICByZXR1cm4geyBhc01zOiAwLCBhc1NlYzogMCB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm9wZXJ0aWVzIHRoYXQgZGVzY3JpYmUgYSBwaHlzaWNhbGx5IGRlcGxveWVkIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGh5c2ljYWxTdGFjazxBcm4gZXh0ZW5kcyAnYXJuUmVxdWlyZWQnIHwgJ2Fybk9wdGlvbmFsJyA9ICdhcm5SZXF1aXJlZCc+IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFja1xuICAgKlxuICAgKiBBIHN0YWNrIG5hbWUgaXMgdW5pcXVlIGluc2lkZSBpdHMgZW52aXJvbm1lbnQsIGJ1dCBub3QgdW5pcXVlIGdsb2JhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBvZiB0aGUgc3RhY2tcbiAgICpcbiAgICogVGhpcyBlbnZpcm9ubWVudCBpcyBhbHdheXMgY29uY3JldGUsIGJlY2F1c2UgZXZlbiB0aG91Z2ggdGhlIENESyBhcHAnc1xuICAgKiBzdGFjayBtYXkgYmUgcmVnaW9uLWFnbm9zdGljLCBpbiBvcmRlciB0byBiZSBkZXBsb3llZCBpdCB3aWxsIGhhdmUgdG8gaGF2ZVxuICAgKiBiZWVuIHNwZWNpYWxpemVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tBcm46IEFybiBleHRlbmRzICdhcm5PcHRpb25hbCcgPyBzdHJpbmcgfCB1bmRlZmluZWQgOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdWx0IGludGVyZmFjZSBmb3IgdG9vbGtpdC5kZXBsb3kgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95UmVzdWx0IHtcbiAgLyoqXG4gICAqIExpc3Qgb2Ygc3RhY2tzIGRlcGxveWVkIGJ5IHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IERlcGxveWVkU3RhY2tbXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGRlcGxveWVkIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95ZWRTdGFjayBleHRlbmRzIFBoeXNpY2FsU3RhY2sge1xuICAvKipcbiAgICogSGllcmFyY2hpY2FsIGlkZW50aWZpZXJcbiAgICpcbiAgICogVGhpcyB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBzdGFjayBpbnNpZGUgdGhlIENESyBhcHAuXG4gICAqXG4gICAqIEluIHByYWN0aWNlIHRoaXMgd2lsbCBiZSB0aGUgc3RhY2sncyBjb25zdHJ1Y3QgcGF0aCwgYnV0IHVuZm9ydHVuYXRlbHkgdGhlXG4gICAqIENsb3VkIEFzc2VtYmx5IGNvbnRyYWN0IGRvZXNuJ3QgcmVxdWlyZSBvciBndWFyYW50ZWUgdGhhdC5cbiAgICovXG4gIHJlYWRvbmx5IGhpZXJhcmNoaWNhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXRzIG9mIHRoZSBkZXBsb3llZCBDbG91ZEZvcm1hdGlvbiBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBBbiBlbnZpcm9ubWVudCwgd2hpY2ggaXMgYW4gKGFjY291bnQsIHJlZ2lvbikgcGFpclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdWx0IGludGVyZmFjZSBmb3IgdG9vbGtpdC5kZXN0cm95IG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lSZXN1bHQge1xuICAvKipcbiAgICogTGlzdCBvZiBzdGFja3MgZGVzdHJveWVkIGJ5IHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IERlc3Ryb3llZFN0YWNrW107XG59XG5cbi8qKlxuICogQSBzdGFjayB0YXJnZXRlZCBieSBhIGRlc3Ryb3kgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVzdHJveWVkU3RhY2sgZXh0ZW5kcyBQaHlzaWNhbFN0YWNrPCdhcm5PcHRpb25hbCc+IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrIGV4aXN0ZWQgdG8gYmVnaW4gd2l0aFxuICAgKlxuICAgKiBJZiBgIXN0YWNrRXhpc3RlZGAsIHRoZSBzdGFjayBkaWRuJ3QgZXhpc3QsIHdhc24ndCBkZWxldGVkLCBhbmQgYHN0YWNrQXJuYFxuICAgKiB3aWxsIGJlIGB1bmRlZmluZWRgLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tFeGlzdGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc3VsdCBpbnRlcmZhY2UgZm9yIHRvb2xraXQucm9sbGJhY2sgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sbGJhY2tSZXN1bHQge1xuICAvKipcbiAgICogTGlzdCBvZiBzdGFja3Mgcm9sbGVkIGJhY2sgYnkgdGhpcyBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogUm9sbGVkQmFja1N0YWNrW107XG59XG5cbi8qKlxuICogQSBzdGFjayB0YXJnZXRlZCBieSBhIHJvbGxiYWNrIG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvbGxlZEJhY2tTdGFjayBleHRlbmRzIFBoeXNpY2FsU3RhY2sge1xuICAvKipcbiAgICogV2hhdCBvcGVyYXRpb24gd2UgZGlkIGZvciB0aGlzIHN0YWNrXG4gICAqXG4gICAqIEVpdGhlcjogd2UgZGlkIHJvbGwgaXQgYmFjaywgb3Igd2UgZGlkbid0IG5lZWQgdG8gcm9sbCBpdCBiYWNrIGJlY2F1c2VcbiAgICogaXQgd2FzIGFscmVhZHkgc3RhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdWx0OiBTdGFja1JvbGxiYWNrUmVzdWx0O1xufVxuXG5leHBvcnQgdHlwZSBTdGFja1JvbGxiYWNrUmVzdWx0ID0gJ3JvbGxlZC1iYWNrJyB8ICdhbHJlYWR5LXN0YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWcge1xuICByZWFkb25seSBtb2R1bGU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSByZWNvbW1lbmRlZFZhbHVlOiB1bmtub3duO1xuICByZWFkb25seSB1c2VyVmFsdWU/OiB1bmtub3duO1xuICByZWFkb25seSBleHBsYW5hdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgdW5jb25maWd1cmVkQmVoYXZlc0xpa2U/OiB7IHYyPzogYW55IH07XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zipDirectory = zipDirectory;\nconst console_1 = require(\"console\");\nconst fs_1 = require(\"fs\");\nconst path = require(\"path\");\nconst fast_glob_1 = require(\"fast-glob\");\nconst format_error_1 = require(\"./format-error\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst archiver = require('archiver');\n// Adapted from cdk-assets\nasync function zipDirectory(directory, outputFile) {\n // We write to a temporary file and rename at the last moment. This is so that if we are\n // interrupted during this process, we don't leave a half-finished file in the target location.\n const temporaryOutputFile = `${outputFile}.${randomString()}._tmp`;\n await writeZipFile(directory, temporaryOutputFile);\n await moveIntoPlace(temporaryOutputFile, outputFile);\n}\nfunction writeZipFile(directory, outputFile) {\n return new Promise(async (ok, fail) => {\n // The below options are needed to support following symlinks when building zip files:\n // - onlyFiles: This will prevent symlinks themselves from being copied into the zip.\n // - followSymbolicLinks: This will follow symlinks and copy the files within.\n const globOptions = {\n dot: true,\n onlyFiles: true,\n followSymbolicLinks: true,\n cwd: directory,\n };\n const files = (0, fast_glob_1.globSync)('**', globOptions); // The output here is already sorted\n const output = (0, fs_1.createWriteStream)(outputFile);\n const archive = archiver('zip');\n archive.on('warning', fail);\n archive.on('error', fail);\n // archive has been finalized and the output file descriptor has closed, resolve promise\n // this has to be done before calling `finalize` since the events may fire immediately after.\n // see https://www.npmjs.com/package/archiver\n output.once('close', ok);\n archive.pipe(output);\n // Append files serially to ensure file order\n for (const file of files) {\n const fullPath = path.resolve(directory, file);\n // Exactly 2 promises\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n const [data, stat] = await Promise.all([fs_1.promises.readFile(fullPath), fs_1.promises.stat(fullPath)]);\n archive.append(data, {\n name: file,\n mode: stat.mode,\n });\n }\n await archive.finalize();\n });\n}\n/**\n * Rename the file to the target location, taking into account:\n *\n * - That we may see EPERM on Windows while an Antivirus scanner still has the\n * file open, so retry a couple of times.\n * - This same function may be called in parallel and be interrupted at any point.\n */\nasync function moveIntoPlace(source, target) {\n let delay = 100;\n let attempts = 5;\n while (true) {\n try {\n // 'rename' is guaranteed to overwrite an existing target, as long as it is a file (not a directory)\n await fs_1.promises.rename(source, target);\n return;\n }\n catch (e) {\n if (e.code !== 'EPERM' || attempts-- <= 0) {\n throw e;\n }\n (0, console_1.error)((0, format_error_1.formatErrorMessage)(e));\n await sleep(Math.floor(Math.random() * delay));\n delay *= 2;\n }\n }\n}\nfunction sleep(ms) {\n return new Promise(ok => setTimeout(ok, ms));\n}\nfunction randomString() {\n return Math.random().toString(36).replace(/[^a-z0-9]+/g, '');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFyY2hpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxvQ0FNQztBQWpCRCxxQ0FBZ0M7QUFDaEMsMkJBQXVEO0FBQ3ZELDZCQUE2QjtBQUU3Qix5Q0FBcUM7QUFDckMsaURBQW9EO0FBRXBELGlFQUFpRTtBQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFckMsMEJBQTBCO0FBQ25CLEtBQUssVUFBVSxZQUFZLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtJQUN0RSx3RkFBd0Y7SUFDeEYsK0ZBQStGO0lBQy9GLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxVQUFVLElBQUksWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUNuRSxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNuRCxNQUFNLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtJQUN6RCxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDcEMsc0ZBQXNGO1FBQ3RGLHFGQUFxRjtRQUNyRiw4RUFBOEU7UUFDOUUsTUFBTSxXQUFXLEdBQVk7WUFDM0IsR0FBRyxFQUFFLElBQUk7WUFDVCxTQUFTLEVBQUUsSUFBSTtZQUNmLG1CQUFtQixFQUFFLElBQUk7WUFDekIsR0FBRyxFQUFFLFNBQVM7U0FDZixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLG9DQUFvQztRQUUvRSxNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFpQixFQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUxQix3RkFBd0Y7UUFDeEYsNkZBQTZGO1FBQzdGLDZDQUE2QztRQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV6QixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCLDZDQUE2QztRQUM3QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLHFCQUFxQjtZQUNyQix3RUFBd0U7WUFDeEUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNuQixJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILEtBQUssVUFBVSxhQUFhLENBQUMsTUFBYyxFQUFFLE1BQWM7SUFDekQsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDO1lBQ0gsb0dBQW9HO1lBQ3BHLE1BQU0sYUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELElBQUEsZUFBSyxFQUFDLElBQUEsaUNBQWtCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9DLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxFQUFVO0lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsWUFBWTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXJyb3IgfSBmcm9tICdjb25zb2xlJztcbmltcG9ydCB7IGNyZWF0ZVdyaXRlU3RyZWFtLCBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgfSBmcm9tICdmYXN0LWdsb2InO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tICdmYXN0LWdsb2InO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi9mb3JtYXQtZXJyb3InO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgYXJjaGl2ZXIgPSByZXF1aXJlKCdhcmNoaXZlcicpO1xuXG4vLyBBZGFwdGVkIGZyb20gY2RrLWFzc2V0c1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHppcERpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgb3V0cHV0RmlsZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFdlIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJlbmFtZSBhdCB0aGUgbGFzdCBtb21lbnQuIFRoaXMgaXMgc28gdGhhdCBpZiB3ZSBhcmVcbiAgLy8gaW50ZXJydXB0ZWQgZHVyaW5nIHRoaXMgcHJvY2Vzcywgd2UgZG9uJ3QgbGVhdmUgYSBoYWxmLWZpbmlzaGVkIGZpbGUgaW4gdGhlIHRhcmdldCBsb2NhdGlvbi5cbiAgY29uc3QgdGVtcG9yYXJ5T3V0cHV0RmlsZSA9IGAke291dHB1dEZpbGV9LiR7cmFuZG9tU3RyaW5nKCl9Ll90bXBgO1xuICBhd2FpdCB3cml0ZVppcEZpbGUoZGlyZWN0b3J5LCB0ZW1wb3JhcnlPdXRwdXRGaWxlKTtcbiAgYXdhaXQgbW92ZUludG9QbGFjZSh0ZW1wb3JhcnlPdXRwdXRGaWxlLCBvdXRwdXRGaWxlKTtcbn1cblxuZnVuY3Rpb24gd3JpdGVaaXBGaWxlKGRpcmVjdG9yeTogc3RyaW5nLCBvdXRwdXRGaWxlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChvaywgZmFpbCkgPT4ge1xuICAgIC8vIFRoZSBiZWxvdyBvcHRpb25zIGFyZSBuZWVkZWQgdG8gc3VwcG9ydCBmb2xsb3dpbmcgc3ltbGlua3Mgd2hlbiBidWlsZGluZyB6aXAgZmlsZXM6XG4gICAgLy8gLSBvbmx5RmlsZXM6IFRoaXMgd2lsbCBwcmV2ZW50IHN5bWxpbmtzIHRoZW1zZWx2ZXMgZnJvbSBiZWluZyBjb3BpZWQgaW50byB0aGUgemlwLlxuICAgIC8vIC0gZm9sbG93U3ltYm9saWNMaW5rczogVGhpcyB3aWxsIGZvbGxvdyBzeW1saW5rcyBhbmQgY29weSB0aGUgZmlsZXMgd2l0aGluLlxuICAgIGNvbnN0IGdsb2JPcHRpb25zOiBPcHRpb25zID0ge1xuICAgICAgZG90OiB0cnVlLFxuICAgICAgb25seUZpbGVzOiB0cnVlLFxuICAgICAgZm9sbG93U3ltYm9saWNMaW5rczogdHJ1ZSxcbiAgICAgIGN3ZDogZGlyZWN0b3J5LFxuICAgIH07XG4gICAgY29uc3QgZmlsZXMgPSBnbG9iU3luYygnKionLCBnbG9iT3B0aW9ucyk7IC8vIFRoZSBvdXRwdXQgaGVyZSBpcyBhbHJlYWR5IHNvcnRlZFxuXG4gICAgY29uc3Qgb3V0cHV0ID0gY3JlYXRlV3JpdGVTdHJlYW0ob3V0cHV0RmlsZSk7XG5cbiAgICBjb25zdCBhcmNoaXZlID0gYXJjaGl2ZXIoJ3ppcCcpO1xuICAgIGFyY2hpdmUub24oJ3dhcm5pbmcnLCBmYWlsKTtcbiAgICBhcmNoaXZlLm9uKCdlcnJvcicsIGZhaWwpO1xuXG4gICAgLy8gYXJjaGl2ZSBoYXMgYmVlbiBmaW5hbGl6ZWQgYW5kIHRoZSBvdXRwdXQgZmlsZSBkZXNjcmlwdG9yIGhhcyBjbG9zZWQsIHJlc29sdmUgcHJvbWlzZVxuICAgIC8vIHRoaXMgaGFzIHRvIGJlIGRvbmUgYmVmb3JlIGNhbGxpbmcgYGZpbmFsaXplYCBzaW5jZSB0aGUgZXZlbnRzIG1heSBmaXJlIGltbWVkaWF0ZWx5IGFmdGVyLlxuICAgIC8vIHNlZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9hcmNoaXZlclxuICAgIG91dHB1dC5vbmNlKCdjbG9zZScsIG9rKTtcblxuICAgIGFyY2hpdmUucGlwZShvdXRwdXQpO1xuXG4gICAgLy8gQXBwZW5kIGZpbGVzIHNlcmlhbGx5IHRvIGVuc3VyZSBmaWxlIG9yZGVyXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZShkaXJlY3RvcnksIGZpbGUpO1xuICAgICAgLy8gRXhhY3RseSAyIHByb21pc2VzXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICAgIGNvbnN0IFtkYXRhLCBzdGF0XSA9IGF3YWl0IFByb21pc2UuYWxsKFtmcy5yZWFkRmlsZShmdWxsUGF0aCksIGZzLnN0YXQoZnVsbFBhdGgpXSk7XG4gICAgICBhcmNoaXZlLmFwcGVuZChkYXRhLCB7XG4gICAgICAgIG5hbWU6IGZpbGUsXG4gICAgICAgIG1vZGU6IHN0YXQubW9kZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGF3YWl0IGFyY2hpdmUuZmluYWxpemUoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSB0YXJnZXQgbG9jYXRpb24sIHRha2luZyBpbnRvIGFjY291bnQ6XG4gKlxuICogLSBUaGF0IHdlIG1heSBzZWUgRVBFUk0gb24gV2luZG93cyB3aGlsZSBhbiBBbnRpdmlydXMgc2Nhbm5lciBzdGlsbCBoYXMgdGhlXG4gKiAgIGZpbGUgb3Blbiwgc28gcmV0cnkgYSBjb3VwbGUgb2YgdGltZXMuXG4gKiAtIFRoaXMgc2FtZSBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGluIHBhcmFsbGVsIGFuZCBiZSBpbnRlcnJ1cHRlZCBhdCBhbnkgcG9pbnQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1vdmVJbnRvUGxhY2Uoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKSB7XG4gIGxldCBkZWxheSA9IDEwMDtcbiAgbGV0IGF0dGVtcHRzID0gNTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gJ3JlbmFtZScgaXMgZ3VhcmFudGVlZCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgdGFyZ2V0LCBhcyBsb25nIGFzIGl0IGlzIGEgZmlsZSAobm90IGEgZGlyZWN0b3J5KVxuICAgICAgYXdhaXQgZnMucmVuYW1lKHNvdXJjZSwgdGFyZ2V0KTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlLmNvZGUgIT09ICdFUEVSTScgfHwgYXR0ZW1wdHMtLSA8PSAwKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBlcnJvcihmb3JtYXRFcnJvck1lc3NhZ2UoZSkpO1xuICAgICAgYXdhaXQgc2xlZXAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZGVsYXkpKTtcbiAgICAgIGRlbGF5ICo9IDI7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKG9rID0+IHNldFRpbWVvdXQob2ssIG1zKSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVN0cmluZygpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flatMap = flatMap;\nexports.flatten = flatten;\nexports.partition = partition;\nexports.indexBy = indexBy;\n/**\n * Map a function over an array and concatenate the results\n */\nfunction flatMap(xs, fn) {\n return flatten(xs.map(fn));\n}\n/**\n * Flatten a list of lists into a list of elements\n */\nfunction flatten(xs) {\n return Array.prototype.concat.apply([], xs);\n}\n/**\n * Partition a collection by removing and returning all elements that match a predicate\n *\n * Note: the input collection is modified in-place!\n */\nfunction partition(collection, pred) {\n const ret = [];\n let i = 0;\n while (i < collection.length) {\n if (pred(collection[i])) {\n ret.push(collection.splice(i, 1)[0]);\n }\n else {\n i++;\n }\n }\n return ret;\n}\nasync function indexBy(xs, fn) {\n const ret = new Map();\n for (const x of xs) {\n const key = await fn(x);\n const group = ret.get(key);\n if (group) {\n group.push(x);\n }\n else {\n ret.set(key, [x]);\n }\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXJyYXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsMEJBRUM7QUFLRCwwQkFFQztBQU9ELDhCQVdDO0FBRUQsMEJBWUM7QUE1Q0Q7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQU8sRUFBTyxFQUFFLEVBQThCO0lBQ25FLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQUksRUFBUztJQUNsQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixTQUFTLENBQUksVUFBZSxFQUFFLElBQXVCO0lBQ25FLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRU0sS0FBSyxVQUFVLE9BQU8sQ0FBTyxFQUFPLEVBQUUsRUFBd0I7SUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUM5QixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDTixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hcCBhIGZ1bmN0aW9uIG92ZXIgYW4gYXJyYXkgYW5kIGNvbmNhdGVuYXRlIHRoZSByZXN1bHRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0TWFwPFQsIFU+KHhzOiBUW10sIGZuOiAoKHg6IFQsIGk6IG51bWJlcikgPT4gVVtdKSk6IFVbXSB7XG4gIHJldHVybiBmbGF0dGVuKHhzLm1hcChmbikpO1xufVxuXG4vKipcbiAqIEZsYXR0ZW4gYSBsaXN0IG9mIGxpc3RzIGludG8gYSBsaXN0IG9mIGVsZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuPFQ+KHhzOiBUW11bXSk6IFRbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCB4cyk7XG59XG5cbi8qKlxuICogUGFydGl0aW9uIGEgY29sbGVjdGlvbiBieSByZW1vdmluZyBhbmQgcmV0dXJuaW5nIGFsbCBlbGVtZW50cyB0aGF0IG1hdGNoIGEgcHJlZGljYXRlXG4gKlxuICogTm90ZTogdGhlIGlucHV0IGNvbGxlY3Rpb24gaXMgbW9kaWZpZWQgaW4tcGxhY2UhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJ0aXRpb248VD4oY29sbGVjdGlvbjogVFtdLCBwcmVkOiAoeDogVCkgPT4gYm9vbGVhbik6IFRbXSB7XG4gIGNvbnN0IHJldDogVFtdID0gW107XG4gIGxldCBpID0gMDtcbiAgd2hpbGUgKGkgPCBjb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgIGlmIChwcmVkKGNvbGxlY3Rpb25baV0pKSB7XG4gICAgICByZXQucHVzaChjb2xsZWN0aW9uLnNwbGljZShpLCAxKVswXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGkrKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluZGV4Qnk8QSwgQj4oeHM6IEFbXSwgZm46IChhOiBBKSA9PiBQcm9taXNlPEI+KTogUHJvbWlzZTxNYXA8QiwgQVtdPj4ge1xuICBjb25zdCByZXQgPSBuZXcgTWFwPEIsIEFbXT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgZm4oeCk7XG4gICAgY29uc3QgZ3JvdXAgPSByZXQuZ2V0KGtleSk7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICBncm91cC5wdXNoKHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQuc2V0KGtleSwgW3hdKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numberFromBool = numberFromBool;\n/**\n * Converts a boolean into a number.\n *\n * @param bool - input boolean\n * @returns 1 if bool is true, and 0 if false\n */\nfunction numberFromBool(bool) {\n return +bool;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSx3Q0FFQztBQVJEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLElBQWE7SUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlcnRzIGEgYm9vbGVhbiBpbnRvIGEgbnVtYmVyLlxuICpcbiAqIEBwYXJhbSBib29sIC0gaW5wdXQgYm9vbGVhblxuICogQHJldHVybnMgMSBpZiBib29sIGlzIHRydWUsIGFuZCAwIGlmIGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJGcm9tQm9vbChib29sOiBib29sZWFuKTogbnVtYmVyIHtcbiAgcmV0dXJuICtib29sO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatBytes = formatBytes;\n/**\n * Format bytes as a human readable string\n *\n * @param bytes - Number of bytes to format\n * @param decimals - Number of decimal places to show (default 2)\n * @returns Formatted string with appropriate unit suffix\n */\nfunction formatBytes(bytes, decimals = 2) {\n decimals = decimals < 0 ? 0 : decimals;\n if (bytes === 0) {\n return '0 Bytes';\n }\n const k = 1024;\n const sizes = ['Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${sizes[i]}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJieXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLGtDQWFDO0FBcEJEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsQ0FBQztJQUM3RCxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFdkMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNmLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVoRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBELE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNqRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtYXQgYnl0ZXMgYXMgYSBodW1hbiByZWFkYWJsZSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gYnl0ZXMgLSBOdW1iZXIgb2YgYnl0ZXMgdG8gZm9ybWF0XG4gKiBAcGFyYW0gZGVjaW1hbHMgLSBOdW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gc2hvdyAoZGVmYXVsdCAyKVxuICogQHJldHVybnMgRm9ybWF0dGVkIHN0cmluZyB3aXRoIGFwcHJvcHJpYXRlIHVuaXQgc3VmZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCeXRlcyhieXRlczogbnVtYmVyLCBkZWNpbWFsczogbnVtYmVyID0gMik6IHN0cmluZyB7XG4gIGRlY2ltYWxzID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuXG4gIGlmIChieXRlcyA9PT0gMCkge1xuICAgIHJldHVybiAnMCBCeXRlcyc7XG4gIH1cblxuICBjb25zdCBrID0gMTAyNDtcbiAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tpQicsICdNaUInLCAnR2lCJywgJ1RpQicsICdQaUInLCAnRWlCJywgJ1ppQicsICdZaUInXTtcblxuICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG5cbiAgcmV0dXJuIGAke3BhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZGVjaW1hbHMpKX0gJHtzaXplc1tpXX1gO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSnsTopicArn = validateSnsTopicArn;\nexports.isErrorEvent = isErrorEvent;\nexports.isCancellationEvent = isCancellationEvent;\nexports.isRegularResourceEvent = isRegularResourceEvent;\nexports.isRootStackEvent = isRootStackEvent;\nexports.maxResourceTypeLength = maxResourceTypeLength;\n/**\n * Validate SNS topic arn\n */\nfunction validateSnsTopicArn(arn) {\n return /^arn:aws:sns:[a-z0-9\\-]+:[0-9]+:[a-z0-9\\-\\_]+$/i.test(arn);\n}\n/**\n * Does a Stack Event have an error message based on the status.\n */\nfunction isErrorEvent(event) {\n const status = event.ResourceStatus ?? '';\n return status.endsWith('_FAILED') || status === 'ROLLBACK_IN_PROGRESS' || status === 'UPDATE_ROLLBACK_IN_PROGRESS';\n}\n/**\n * Is this a failure caused by CloudFormation cancelling the deployment?\n *\n * This happens because some other resource failed and CloudFormation decided to stop waiting for this one.\n *\n * Never returns true for the stack event itself, only for resource events.\n */\nfunction isCancellationEvent(event) {\n return (event.ResourceStatusReason ?? '').indexOf('cancelled') > -1;\n}\n/**\n * Returns whether this event is about a regular resource (not the root stack and not a nested stack resource)\n */\nfunction isRegularResourceEvent(event) {\n return event.ResourceType !== 'AWS::CloudFormation::Stack';\n}\n/**\n * Returns whether this event is about the root stack itself.\n */\nfunction isRootStackEvent(event) {\n return event.ResourceType === 'AWS::CloudFormation::Stack' && event.PhysicalResourceId === event.StackId;\n}\n/**\n * Calculate the maximal length of all resource types for a given template.\n *\n * @param template - the stack template to analyze\n * @param startWidth - the initial width to start with. Defaults to the length of 'AWS::CloudFormation::Stack'.\n * @returns the determined width\n */\nfunction maxResourceTypeLength(template, startWidth = 'AWS::CloudFormation::Stack'.length) {\n const resources = (template && template.Resources) || {};\n let maxWidth = startWidth;\n for (const id of Object.keys(resources)) {\n const type = resources[id].Type || '';\n if (type.length > maxWidth) {\n maxWidth = type.length;\n }\n }\n return maxWidth;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZvcm1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGtEQUVDO0FBS0Qsb0NBR0M7QUFTRCxrREFFQztBQUtELHdEQUVDO0FBS0QsNENBRUM7QUFTRCxzREFVQztBQXpERDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLEdBQVc7SUFDN0MsT0FBTyxpREFBaUQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQWlCO0lBQzVDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO0lBQzFDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLEtBQUssc0JBQXNCLElBQUksTUFBTSxLQUFLLDZCQUE2QixDQUFDO0FBQ3JILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxLQUFpQjtJQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxLQUFpQjtJQUN0RCxPQUFPLEtBQUssQ0FBQyxZQUFZLEtBQUssNEJBQTRCLENBQUM7QUFDN0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBaUI7SUFDaEQsT0FBTyxLQUFLLENBQUMsWUFBWSxLQUFLLDRCQUE0QixJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQzNHLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxRQUFhLEVBQUUsVUFBVSxHQUFHLDRCQUE0QixDQUFDLE1BQU07SUFDbkcsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6RCxJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDMUIsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQzNCLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tFdmVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogVmFsaWRhdGUgU05TIHRvcGljIGFyblxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTbnNUb3BpY0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL15hcm46YXdzOnNuczpbYS16MC05XFwtXSs6WzAtOV0rOlthLXowLTlcXC1cXF9dKyQvaS50ZXN0KGFybik7XG59XG5cbi8qKlxuICogRG9lcyBhIFN0YWNrIEV2ZW50IGhhdmUgYW4gZXJyb3IgbWVzc2FnZSBiYXNlZCBvbiB0aGUgc3RhdHVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFcnJvckV2ZW50KGV2ZW50OiBTdGFja0V2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHN0YXR1cyA9IGV2ZW50LlJlc291cmNlU3RhdHVzID8/ICcnO1xuICByZXR1cm4gc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykgfHwgc3RhdHVzID09PSAnUk9MTEJBQ0tfSU5fUFJPR1JFU1MnIHx8IHN0YXR1cyA9PT0gJ1VQREFURV9ST0xMQkFDS19JTl9QUk9HUkVTUyc7XG59XG5cbi8qKlxuICogSXMgdGhpcyBhIGZhaWx1cmUgY2F1c2VkIGJ5IENsb3VkRm9ybWF0aW9uIGNhbmNlbGxpbmcgdGhlIGRlcGxveW1lbnQ/XG4gKlxuICogVGhpcyBoYXBwZW5zIGJlY2F1c2Ugc29tZSBvdGhlciByZXNvdXJjZSBmYWlsZWQgYW5kIENsb3VkRm9ybWF0aW9uIGRlY2lkZWQgdG8gc3RvcCB3YWl0aW5nIGZvciB0aGlzIG9uZS5cbiAqXG4gKiBOZXZlciByZXR1cm5zIHRydWUgZm9yIHRoZSBzdGFjayBldmVudCBpdHNlbGYsIG9ubHkgZm9yIHJlc291cmNlIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FuY2VsbGF0aW9uRXZlbnQoZXZlbnQ6IFN0YWNrRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIChldmVudC5SZXNvdXJjZVN0YXR1c1JlYXNvbiA/PyAnJykuaW5kZXhPZignY2FuY2VsbGVkJykgPiAtMTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBldmVudCBpcyBhYm91dCBhIHJlZ3VsYXIgcmVzb3VyY2UgKG5vdCB0aGUgcm9vdCBzdGFjayBhbmQgbm90IGEgbmVzdGVkIHN0YWNrIHJlc291cmNlKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWd1bGFyUmVzb3VyY2VFdmVudChldmVudDogU3RhY2tFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQuUmVzb3VyY2VUeXBlICE9PSAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGlzIGV2ZW50IGlzIGFib3V0IHRoZSByb290IHN0YWNrIGl0c2VsZi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUm9vdFN0YWNrRXZlbnQoZXZlbnQ6IFN0YWNrRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LlJlc291cmNlVHlwZSA9PT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyAmJiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQgPT09IGV2ZW50LlN0YWNrSWQ7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbGwgcmVzb3VyY2UgdHlwZXMgZm9yIGEgZ2l2ZW4gdGVtcGxhdGUuXG4gKlxuICogQHBhcmFtIHRlbXBsYXRlIC0gdGhlIHN0YWNrIHRlbXBsYXRlIHRvIGFuYWx5emVcbiAqIEBwYXJhbSBzdGFydFdpZHRoIC0gdGhlIGluaXRpYWwgd2lkdGggdG8gc3RhcnQgd2l0aC4gRGVmYXVsdHMgdG8gdGhlIGxlbmd0aCBvZiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snLlxuICogQHJldHVybnMgdGhlIGRldGVybWluZWQgd2lkdGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1heFJlc291cmNlVHlwZUxlbmd0aCh0ZW1wbGF0ZTogYW55LCBzdGFydFdpZHRoID0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJy5sZW5ndGgpOiBudW1iZXIge1xuICBjb25zdCByZXNvdXJjZXMgPSAodGVtcGxhdGUgJiYgdGVtcGxhdGUuUmVzb3VyY2VzKSB8fCB7fTtcbiAgbGV0IG1heFdpZHRoID0gc3RhcnRXaWR0aDtcbiAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhyZXNvdXJjZXMpKSB7XG4gICAgY29uc3QgdHlwZSA9IHJlc291cmNlc1tpZF0uVHlwZSB8fCAnJztcbiAgICBpZiAodHlwZS5sZW5ndGggPiBtYXhXaWR0aCkge1xuICAgICAgbWF4V2lkdGggPSB0eXBlLmxlbmd0aDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1heFdpZHRoO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pLimit = void 0;\n/**\n * Re-export p-limit for concurrency control\n */\n// Must use a require() otherwise esbuild complains about calling a namespace\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst pLimit = require(\"p-limit\");\nexports.pLimit = pLimit;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3VycmVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25jdXJyZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILDZFQUE2RTtBQUM3RSxpRUFBaUU7QUFDakUsa0NBQW1DO0FBQzFCLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZS1leHBvcnQgcC1saW1pdCBmb3IgY29uY3VycmVuY3kgY29udHJvbFxuICovXG4vLyBNdXN0IHVzZSBhIHJlcXVpcmUoKSBvdGhlcndpc2UgZXNidWlsZCBjb21wbGFpbnMgYWJvdXQgY2FsbGluZyBhIG5hbWVzcGFjZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmltcG9ydCBwTGltaXQgPSByZXF1aXJlKCdwLWxpbWl0Jyk7XG5leHBvcnQgeyBwTGltaXQgfTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentHash = contentHash;\nexports.contentHashAny = contentHashAny;\nconst crypto = require(\"crypto\");\nfunction contentHash(data) {\n return crypto.createHash('sha256').update(data).digest('hex');\n}\n/**\n * A stably sorted hash of an arbitrary JS object\n */\nfunction contentHashAny(value) {\n const ret = crypto.createHash('sha256');\n recurse(value);\n return ret.digest('hex');\n function recurse(x) {\n if (typeof x === 'string') {\n ret.update(x);\n return;\n }\n if (Array.isArray(x)) {\n ret.update('[');\n for (const e of x) {\n recurse(e);\n ret.update('||');\n }\n ret.update(']');\n return;\n }\n if (x && typeof x === 'object') {\n ret.update('{');\n for (const key of Object.keys(x).sort()) {\n ret.update(key);\n ret.update(':');\n recurse(x[key]);\n }\n ret.update('}');\n return;\n }\n ret.update(`${x}${typeof x}`); // typeof to make sure hash('123') !== hash(123)\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1oYXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udGVudC1oYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsa0NBRUM7QUFLRCx3Q0FrQ0M7QUEzQ0QsaUNBQWlDO0FBRWpDLFNBQWdCLFdBQVcsQ0FBQyxJQUFnQztJQUMxRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYztJQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV6QixTQUFTLE9BQU8sQ0FBQyxDQUFVO1FBQ3pCLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBRSxDQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0RBQWdEO0lBQ2pGLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50SGFzaChkYXRhOiBzdHJpbmcgfCBCdWZmZXIgfCBEYXRhVmlldykge1xuICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShkYXRhKS5kaWdlc3QoJ2hleCcpO1xufVxuXG4vKipcbiAqIEEgc3RhYmx5IHNvcnRlZCBoYXNoIG9mIGFuIGFyYml0cmFyeSBKUyBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRlbnRIYXNoQW55KHZhbHVlOiB1bmtub3duKSB7XG4gIGNvbnN0IHJldCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgcmVjdXJzZSh2YWx1ZSk7XG4gIHJldHVybiByZXQuZGlnZXN0KCdoZXgnKTtcblxuICBmdW5jdGlvbiByZWN1cnNlKHg6IHVua25vd24pIHtcbiAgICBpZiAodHlwZW9mIHggPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXQudXBkYXRlKHgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgICByZXQudXBkYXRlKCdbJyk7XG4gICAgICBmb3IgKGNvbnN0IGUgb2YgeCkge1xuICAgICAgICByZWN1cnNlKGUpO1xuICAgICAgICByZXQudXBkYXRlKCd8fCcpO1xuICAgICAgfVxuICAgICAgcmV0LnVwZGF0ZSgnXScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0LnVwZGF0ZSgneycpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoeCkuc29ydCgpKSB7XG4gICAgICAgIHJldC51cGRhdGUoa2V5KTtcbiAgICAgICAgcmV0LnVwZGF0ZSgnOicpO1xuICAgICAgICByZWN1cnNlKCh4IGFzIGFueSlba2V5XSk7XG4gICAgICB9XG4gICAgICByZXQudXBkYXRlKCd9Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0LnVwZGF0ZShgJHt4fSR7dHlwZW9mIHh9YCk7IC8vIHR5cGVvZiB0byBtYWtlIHN1cmUgaGFzaCgnMTIzJykgIT09IGhhc2goMTIzKVxuICB9XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cdkHomeDir = cdkHomeDir;\nexports.cdkCacheDir = cdkCacheDir;\nexports.bundledPackageRootDir = bundledPackageRootDir;\nexports.listFiles = listFiles;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst fsExtra = require(\"fs-extra\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Return a location that will be used as the CDK home directory.\n * Currently the only thing that is placed here is the cache.\n *\n * First try to use the users home directory (i.e. /home/someuser/),\n * but if that directory does not exist for some reason create a tmp directory.\n *\n * Typically it wouldn't make sense to create a one time use tmp directory for\n * the purpose of creating a cache, but since this only applies to users that do\n * not have a home directory (some CI systems?) this should be fine.\n */\nfunction cdkHomeDir() {\n const tmpDir = fs.realpathSync(os.tmpdir());\n let home;\n try {\n let userInfoHome = os.userInfo().homedir;\n // Node returns this if the user doesn't have a home directory\n /* c8 ignore start */ // will not happen in normal setups\n if (userInfoHome == '/var/empty') {\n userInfoHome = undefined;\n }\n /* c8 ignore stop */\n home = path.join((userInfoHome ?? os.homedir()).trim(), '.cdk');\n }\n catch {\n }\n return process.env.CDK_HOME\n ? path.resolve(process.env.CDK_HOME)\n : home || fs.mkdtempSync(path.join(tmpDir, '.cdk')).trim();\n}\nfunction cdkCacheDir() {\n return path.join(cdkHomeDir(), 'cache');\n}\nfunction bundledPackageRootDir(start, fail) {\n function _rootDir(dirname) {\n const manifestPath = path.join(dirname, 'package.json');\n if (fs.existsSync(manifestPath)) {\n return dirname;\n }\n if (path.dirname(dirname) === dirname) {\n if (fail ?? true) {\n throw new toolkit_error_1.ToolkitError('PackageManifestNotFound', 'Unable to find package manifest');\n }\n return undefined;\n }\n return _rootDir(path.dirname(dirname));\n }\n return _rootDir(start);\n}\n/**\n * Recursively lists all files in a directory up to the specified depth.\n *\n * @param dirName - The directory path to list files from\n * @param depth - Maximum depth to traverse (1 = current directory only, 2 = one level deep, etc.)\n * @returns Array of file names (not full paths) found within the depth limit\n */\nasync function listFiles(dirName, depth, excludeDirs) {\n const ret = await fsExtra.readdir(dirName, { encoding: 'utf-8', withFileTypes: true });\n // unlikely to be unbound, it's a file system\n // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism\n return (await Promise.all(ret.map(async (f) => {\n if (f.isDirectory()) {\n if (depth <= 1 || excludeDirs?.includes(f.name)) {\n return [];\n }\n return listFiles(path.join(dirName, f.name), depth - 1, excludeDirs);\n }\n else {\n return [f.name];\n }\n }))).flatMap(xs => xs);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXJlY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxnQ0FpQkM7QUFFRCxrQ0FFQztBQVdELHNEQWdCQztBQVNELDhCQWVDO0FBekZELHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG9DQUFvQztBQUNwQyw0REFBd0Q7QUFFeEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLFVBQVU7SUFDeEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1QyxJQUFJLElBQUksQ0FBQztJQUNULElBQUksQ0FBQztRQUNILElBQUksWUFBWSxHQUF1QixFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQzdELDhEQUE4RDtRQUM5RCxxQkFBcUIsQ0FBQyxtQ0FBbUM7UUFDekQsSUFBSSxZQUFZLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO1FBQ0Qsb0JBQW9CO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFBQyxNQUFNLENBQUM7SUFDVCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7UUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDcEMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFXRCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFhLEVBQUUsSUFBYztJQUNqRSxTQUFTLFFBQVEsQ0FBQyxPQUFlO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEMsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHlCQUF5QixFQUFFLGlDQUFpQyxDQUFDLENBQUM7WUFDdkYsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsV0FBc0I7SUFDcEYsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdkYsNkNBQTZDO0lBQzdDLHdFQUF3RTtJQUN4RSxPQUFPLENBQUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzVDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDcEIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnNFeHRyYSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFJldHVybiBhIGxvY2F0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBDREsgaG9tZSBkaXJlY3RvcnkuXG4gKiBDdXJyZW50bHkgdGhlIG9ubHkgdGhpbmcgdGhhdCBpcyBwbGFjZWQgaGVyZSBpcyB0aGUgY2FjaGUuXG4gKlxuICogRmlyc3QgdHJ5IHRvIHVzZSB0aGUgdXNlcnMgaG9tZSBkaXJlY3RvcnkgKGkuZS4gL2hvbWUvc29tZXVzZXIvKSxcbiAqIGJ1dCBpZiB0aGF0IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCBmb3Igc29tZSByZWFzb24gY3JlYXRlIGEgdG1wIGRpcmVjdG9yeS5cbiAqXG4gKiBUeXBpY2FsbHkgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBvbmUgdGltZSB1c2UgdG1wIGRpcmVjdG9yeSBmb3JcbiAqIHRoZSBwdXJwb3NlIG9mIGNyZWF0aW5nIGEgY2FjaGUsIGJ1dCBzaW5jZSB0aGlzIG9ubHkgYXBwbGllcyB0byB1c2VycyB0aGF0IGRvXG4gKiBub3QgaGF2ZSBhIGhvbWUgZGlyZWN0b3J5IChzb21lIENJIHN5c3RlbXM/KSB0aGlzIHNob3VsZCBiZSBmaW5lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2RrSG9tZURpcigpIHtcbiAgY29uc3QgdG1wRGlyID0gZnMucmVhbHBhdGhTeW5jKG9zLnRtcGRpcigpKTtcbiAgbGV0IGhvbWU7XG4gIHRyeSB7XG4gICAgbGV0IHVzZXJJbmZvSG9tZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gb3MudXNlckluZm8oKS5ob21lZGlyO1xuICAgIC8vIE5vZGUgcmV0dXJucyB0aGlzIGlmIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZSBhIGhvbWUgZGlyZWN0b3J5XG4gICAgLyogYzggaWdub3JlIHN0YXJ0ICovIC8vIHdpbGwgbm90IGhhcHBlbiBpbiBub3JtYWwgc2V0dXBzXG4gICAgaWYgKHVzZXJJbmZvSG9tZSA9PSAnL3Zhci9lbXB0eScpIHtcbiAgICAgIHVzZXJJbmZvSG9tZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgICBob21lID0gcGF0aC5qb2luKCh1c2VySW5mb0hvbWUgPz8gb3MuaG9tZWRpcigpKS50cmltKCksICcuY2RrJyk7XG4gIH0gY2F0Y2gge1xuICB9XG4gIHJldHVybiBwcm9jZXNzLmVudi5DREtfSE9NRVxuICAgID8gcGF0aC5yZXNvbHZlKHByb2Nlc3MuZW52LkNES19IT01FKVxuICAgIDogaG9tZSB8fCBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4odG1wRGlyLCAnLmNkaycpKS50cmltKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjZGtDYWNoZURpcigpIHtcbiAgcmV0dXJuIHBhdGguam9pbihjZGtIb21lRGlyKCksICdjYWNoZScpO1xufVxuXG4vKipcbiAqIEZyb20gdGhlIHN0YXJ0IGxvY2F0aW9uLCBmaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0aGUgYnVuZGxlZCBwYWNrYWdlJ3MgcGFja2FnZS5qc29uXG4gKlxuICogWW91IG11c3QgYXNzdW1lIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGJ1bmRsZWQgYW5kIHRoZSBwYWNrYWdlIHJvb3QgZGlyXG4gKiBpcyBub3QgZ29pbmcgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIHBhY2thZ2UgdGhlIGNhbGxlciBjdXJyZW50bHkgbGl2ZXMgaW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidW5kbGVkUGFja2FnZVJvb3REaXIoc3RhcnQ6IHN0cmluZyk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBidW5kbGVkUGFja2FnZVJvb3REaXIoc3RhcnQ6IHN0cmluZywgZmFpbDogdHJ1ZSk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBidW5kbGVkUGFja2FnZVJvb3REaXIoc3RhcnQ6IHN0cmluZywgZmFpbDogZmFsc2UpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gYnVuZGxlZFBhY2thZ2VSb290RGlyKHN0YXJ0OiBzdHJpbmcsIGZhaWw/OiBib29sZWFuKSB7XG4gIGZ1bmN0aW9uIF9yb290RGlyKGRpcm5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKGRpcm5hbWUsICdwYWNrYWdlLmpzb24nKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgICByZXR1cm4gZGlybmFtZTtcbiAgICB9XG4gICAgaWYgKHBhdGguZGlybmFtZShkaXJuYW1lKSA9PT0gZGlybmFtZSkge1xuICAgICAgaWYgKGZhaWwgPz8gdHJ1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdQYWNrYWdlTWFuaWZlc3ROb3RGb3VuZCcsICdVbmFibGUgdG8gZmluZCBwYWNrYWdlIG1hbmlmZXN0Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gX3Jvb3REaXIocGF0aC5kaXJuYW1lKGRpcm5hbWUpKTtcbiAgfVxuXG4gIHJldHVybiBfcm9vdERpcihzdGFydCk7XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgbGlzdHMgYWxsIGZpbGVzIGluIGEgZGlyZWN0b3J5IHVwIHRvIHRoZSBzcGVjaWZpZWQgZGVwdGguXG4gKlxuICogQHBhcmFtIGRpck5hbWUgLSBUaGUgZGlyZWN0b3J5IHBhdGggdG8gbGlzdCBmaWxlcyBmcm9tXG4gKiBAcGFyYW0gZGVwdGggLSBNYXhpbXVtIGRlcHRoIHRvIHRyYXZlcnNlICgxID0gY3VycmVudCBkaXJlY3Rvcnkgb25seSwgMiA9IG9uZSBsZXZlbCBkZWVwLCBldGMuKVxuICogQHJldHVybnMgQXJyYXkgb2YgZmlsZSBuYW1lcyAobm90IGZ1bGwgcGF0aHMpIGZvdW5kIHdpdGhpbiB0aGUgZGVwdGggbGltaXRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RGaWxlcyhkaXJOYW1lOiBzdHJpbmcsIGRlcHRoOiBudW1iZXIsIGV4Y2x1ZGVEaXJzPzogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IHJldCA9IGF3YWl0IGZzRXh0cmEucmVhZGRpcihkaXJOYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnLCB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuXG4gIC8vIHVubGlrZWx5IHRvIGJlIHVuYm91bmQsIGl0J3MgYSBmaWxlIHN5c3RlbVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgcmV0dXJuIChhd2FpdCBQcm9taXNlLmFsbChyZXQubWFwKGFzeW5jIChmKSA9PiB7XG4gICAgaWYgKGYuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgaWYgKGRlcHRoIDw9IDEgfHwgZXhjbHVkZURpcnM/LmluY2x1ZGVzKGYubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpc3RGaWxlcyhwYXRoLmpvaW4oZGlyTmFtZSwgZi5uYW1lKSwgZGVwdGggLSAxLCBleGNsdWRlRGlycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbZi5uYW1lXTtcbiAgICB9XG4gIH0pKSkuZmxhdE1hcCh4cyA9PiB4cyk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatErrorMessage = formatErrorMessage;\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Takes in an error and returns a correctly formatted string of its error message.\n * If it is an AggregateError, it will return a string with all the inner errors\n * formatted and separated by a newline.\n *\n * @param error - The error to format\n * @returns A string with the error message(s) of the error\n */\nfunction formatErrorMessage(error) {\n if (error && Array.isArray(error.errors)) {\n const innerMessages = error.errors\n .map((innerError) => (innerError?.message || innerError?.toString()))\n .join('\\n');\n return `AggregateError: ${innerMessages}`;\n }\n if (toolkit_error_1.ToolkitError.isToolkitError(error) && error.cause) {\n return `${error.message}\\n${formatErrorMessage(error.cause)}`;\n }\n // Fallback for regular Error or other types\n return error?.message || error?.toString() || 'Unknown error';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBVUEsZ0RBY0M7QUF4QkQsNERBQXdEO0FBRXhEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFVO0lBQzNDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDekMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU07YUFDL0IsR0FBRyxDQUFDLENBQUMsVUFBaUQsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxJQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzNHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNkLE9BQU8sbUJBQW1CLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLDRCQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0RCxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sS0FBSyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLE9BQU8sS0FBSyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFRha2VzIGluIGFuIGVycm9yIGFuZCByZXR1cm5zIGEgY29ycmVjdGx5IGZvcm1hdHRlZCBzdHJpbmcgb2YgaXRzIGVycm9yIG1lc3NhZ2UuXG4gKiBJZiBpdCBpcyBhbiBBZ2dyZWdhdGVFcnJvciwgaXQgd2lsbCByZXR1cm4gYSBzdHJpbmcgd2l0aCBhbGwgdGhlIGlubmVyIGVycm9yc1xuICogZm9ybWF0dGVkIGFuZCBzZXBhcmF0ZWQgYnkgYSBuZXdsaW5lLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBmb3JtYXRcbiAqIEByZXR1cm5zIEEgc3RyaW5nIHdpdGggdGhlIGVycm9yIG1lc3NhZ2Uocykgb2YgdGhlIGVycm9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFcnJvck1lc3NhZ2UoZXJyb3I6IGFueSk6IHN0cmluZyB7XG4gIGlmIChlcnJvciAmJiBBcnJheS5pc0FycmF5KGVycm9yLmVycm9ycykpIHtcbiAgICBjb25zdCBpbm5lck1lc3NhZ2VzID0gZXJyb3IuZXJyb3JzXG4gICAgICAubWFwKChpbm5lckVycm9yOiB7IG1lc3NhZ2U6IGFueTsgdG9TdHJpbmc6ICgpID0+IGFueSB9KSA9PiAoaW5uZXJFcnJvcj8ubWVzc2FnZSB8fCBpbm5lckVycm9yPy50b1N0cmluZygpKSlcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gYEFnZ3JlZ2F0ZUVycm9yOiAke2lubmVyTWVzc2FnZXN9YDtcbiAgfVxuXG4gIGlmIChUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZXJyb3IpICYmIGVycm9yLmNhdXNlKSB7XG4gICAgcmV0dXJuIGAke2Vycm9yLm1lc3NhZ2V9XFxuJHtmb3JtYXRFcnJvck1lc3NhZ2UoZXJyb3IuY2F1c2UpfWA7XG4gIH1cblxuICAvLyBGYWxsYmFjayBmb3IgcmVndWxhciBFcnJvciBvciBvdGhlciB0eXBlc1xuICByZXR1cm4gZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyb3I/LnRvU3RyaW5nKCkgfHwgJ1Vua25vd24gZXJyb3InO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createIgnoreMatcher = createIgnoreMatcher;\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst picomatch = require(\"picomatch\");\n/**\n * Normalizes a pattern to ensure it matches files within directories.\n * If a pattern doesn't contain glob characters, it's treated as a directory\n * and `/**` is appended to match all files within it.\n *\n * @param pattern - The pattern to normalize\n * @returns The normalized pattern\n */\nfunction normalizePattern(pattern) {\n // If pattern already contains glob characters, use as-is\n if (pattern.includes('*') || pattern.includes('?') || pattern.includes('[')) {\n return pattern;\n }\n // Otherwise, treat as a directory and match all files within\n // Remove trailing slash if present, then append /**\n const normalized = pattern.replace(/\\/+$/, '');\n return `${normalized}/**`;\n}\n/**\n * Creates a function that returns true if a file should be ignored.\n * A file is ignored if:\n * - It matches any exclude pattern, OR\n * - It does NOT match any include pattern\n *\n * This replicates the behavior of chokidar v3's glob pattern support.\n *\n * @param options - The include and exclude patterns\n * @returns A function that takes a file path and returns true if it should be ignored\n */\nfunction createIgnoreMatcher(options) {\n const includePatterns = options.include && options.include.length > 0\n ? options.include.map(normalizePattern)\n : ['**'];\n const excludePatterns = (options.exclude ?? []).map(normalizePattern);\n const rootDir = options.rootDir ? options.rootDir.replace(/\\\\/g, '/').replace(/\\/+$/, '') : undefined;\n // Compile patterns into matchers for better performance\n const picomatchOptions = {\n dot: true, // Match dotfiles when pattern explicitly includes them\n };\n const includeMatcher = picomatch(includePatterns, picomatchOptions);\n const excludeMatcher = excludePatterns.length > 0\n ? picomatch(excludePatterns, picomatchOptions)\n : () => false;\n return (filePath) => {\n // Normalize path separators for cross-platform compatibility\n let normalizedPath = filePath.replace(/\\\\/g, '/');\n // If rootDir is provided and the path appears to be absolute, make it relative\n // This is necessary because chokidar v4 passes absolute paths to the\n // ignored callback even when a cwd is specified\n if (rootDir) {\n if (normalizedPath.startsWith(rootDir + '/')) {\n normalizedPath = normalizedPath.slice(rootDir.length + 1);\n }\n else if (normalizedPath === rootDir) {\n // The root directory itself - don't ignore it\n return false;\n }\n }\n // A file is ignored if:\n // 1. It matches any exclude pattern, OR\n // 2. It does NOT match any include pattern\n if (excludeMatcher(normalizedPath)) {\n return true; // Ignore: matches exclude\n }\n if (!includeMatcher(normalizedPath)) {\n return true; // Ignore: doesn't match include\n }\n return false; // Don't ignore: matches include and doesn't match exclude\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYi1tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2xvYi1tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeURBLGtEQThDQztBQXZHRCxpRUFBaUU7QUFDakUsdUNBQXdDO0FBMEJ4Qzs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFlO0lBQ3ZDLHlEQUF5RDtJQUN6RCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxvREFBb0Q7SUFDcEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsT0FBTyxHQUFHLFVBQVUsS0FBSyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsT0FBMkI7SUFDN0QsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNYLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRXRHLHdEQUF3RDtJQUN4RCxNQUFNLGdCQUFnQixHQUErQjtRQUNuRCxHQUFHLEVBQUUsSUFBSSxFQUFFLHVEQUF1RDtLQUNuRSxDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUMvQyxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQztRQUM5QyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBRWhCLE9BQU8sQ0FBQyxRQUFnQixFQUFXLEVBQUU7UUFDbkMsNkRBQTZEO1FBQzdELElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxELCtFQUErRTtRQUMvRSxxRUFBcUU7UUFDckUsZ0RBQWdEO1FBQ2hELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLGNBQWMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztpQkFBTSxJQUFJLGNBQWMsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsOENBQThDO2dCQUM5QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLHdDQUF3QztRQUN4QywyQ0FBMkM7UUFDM0MsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxDQUFDLDBCQUEwQjtRQUN6QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLENBQUMsZ0NBQWdDO1FBQy9DLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDLDBEQUEwRDtJQUMxRSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmltcG9ydCBwaWNvbWF0Y2ggPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIGdsb2IgbWF0Y2hlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JNYXRjaGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXR0ZXJucyBmb3IgZmlsZXMgdG8gaW5jbHVkZSAoZ2xvYiBwYXR0ZXJucylcbiAgICogQGRlZmF1bHQgWycqKiddIC0gbWF0Y2ggYWxsIGZpbGVzXG4gICAqL1xuICBpbmNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBhdHRlcm5zIGZvciBmaWxlcyB0byBleGNsdWRlIChnbG9iIHBhdHRlcm5zKVxuICAgKi9cbiAgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3RvcnkgZm9yIG1hdGNoaW5nLiBJZiBwcm92aWRlZCwgYWJzb2x1dGUgcGF0aHMgd2lsbCBiZVxuICAgKiBjb252ZXJ0ZWQgdG8gcmVsYXRpdmUgcGF0aHMgYmVmb3JlIG1hdGNoaW5nIGFnYWluc3QgcGF0dGVybnMuXG4gICAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgY2hva2lkYXIgdjQgcGFzc2VzIGFic29sdXRlIHBhdGhzIHRvIHRoZVxuICAgKiBpZ25vcmVkIGNhbGxiYWNrIGV2ZW4gd2hlbiBhIGN3ZCBpcyBzcGVjaWZpZWQuXG4gICAqL1xuICByb290RGlyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXR0ZXJuIHRvIGVuc3VyZSBpdCBtYXRjaGVzIGZpbGVzIHdpdGhpbiBkaXJlY3Rvcmllcy5cbiAqIElmIGEgcGF0dGVybiBkb2Vzbid0IGNvbnRhaW4gZ2xvYiBjaGFyYWN0ZXJzLCBpdCdzIHRyZWF0ZWQgYXMgYSBkaXJlY3RvcnlcbiAqIGFuZCBgLyoqYCBpcyBhcHBlbmRlZCB0byBtYXRjaCBhbGwgZmlsZXMgd2l0aGluIGl0LlxuICpcbiAqIEBwYXJhbSBwYXR0ZXJuIC0gVGhlIHBhdHRlcm4gdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXR0ZXJuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdHRlcm4ocGF0dGVybjogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gSWYgcGF0dGVybiBhbHJlYWR5IGNvbnRhaW5zIGdsb2IgY2hhcmFjdGVycywgdXNlIGFzLWlzXG4gIGlmIChwYXR0ZXJuLmluY2x1ZGVzKCcqJykgfHwgcGF0dGVybi5pbmNsdWRlcygnPycpIHx8IHBhdHRlcm4uaW5jbHVkZXMoJ1snKSkge1xuICAgIHJldHVybiBwYXR0ZXJuO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgdHJlYXQgYXMgYSBkaXJlY3RvcnkgYW5kIG1hdGNoIGFsbCBmaWxlcyB3aXRoaW5cbiAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGlmIHByZXNlbnQsIHRoZW4gYXBwZW5kIC8qKlxuICBjb25zdCBub3JtYWxpemVkID0gcGF0dGVybi5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgcmV0dXJuIGAke25vcm1hbGl6ZWR9LyoqYDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRydWUgaWYgYSBmaWxlIHNob3VsZCBiZSBpZ25vcmVkLlxuICogQSBmaWxlIGlzIGlnbm9yZWQgaWY6XG4gKiAtIEl0IG1hdGNoZXMgYW55IGV4Y2x1ZGUgcGF0dGVybiwgT1JcbiAqIC0gSXQgZG9lcyBOT1QgbWF0Y2ggYW55IGluY2x1ZGUgcGF0dGVyblxuICpcbiAqIFRoaXMgcmVwbGljYXRlcyB0aGUgYmVoYXZpb3Igb2YgY2hva2lkYXIgdjMncyBnbG9iIHBhdHRlcm4gc3VwcG9ydC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBpbmNsdWRlIGFuZCBleGNsdWRlIHBhdHRlcm5zXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBmaWxlIHBhdGggYW5kIHJldHVybnMgdHJ1ZSBpZiBpdCBzaG91bGQgYmUgaWdub3JlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSWdub3JlTWF0Y2hlcihvcHRpb25zOiBHbG9iTWF0Y2hlck9wdGlvbnMpOiAoZmlsZVBhdGg6IHN0cmluZykgPT4gYm9vbGVhbiB7XG4gIGNvbnN0IGluY2x1ZGVQYXR0ZXJucyA9IG9wdGlvbnMuaW5jbHVkZSAmJiBvcHRpb25zLmluY2x1ZGUubGVuZ3RoID4gMFxuICAgID8gb3B0aW9ucy5pbmNsdWRlLm1hcChub3JtYWxpemVQYXR0ZXJuKVxuICAgIDogWycqKiddO1xuICBjb25zdCBleGNsdWRlUGF0dGVybnMgPSAob3B0aW9ucy5leGNsdWRlID8/IFtdKS5tYXAobm9ybWFsaXplUGF0dGVybik7XG4gIGNvbnN0IHJvb3REaXIgPSBvcHRpb25zLnJvb3REaXIgPyBvcHRpb25zLnJvb3REaXIucmVwbGFjZSgvXFxcXC9nLCAnLycpLnJlcGxhY2UoL1xcLyskLywgJycpIDogdW5kZWZpbmVkO1xuXG4gIC8vIENvbXBpbGUgcGF0dGVybnMgaW50byBtYXRjaGVycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlXG4gIGNvbnN0IHBpY29tYXRjaE9wdGlvbnM6IHBpY29tYXRjaC5QaWNvbWF0Y2hPcHRpb25zID0ge1xuICAgIGRvdDogdHJ1ZSwgLy8gTWF0Y2ggZG90ZmlsZXMgd2hlbiBwYXR0ZXJuIGV4cGxpY2l0bHkgaW5jbHVkZXMgdGhlbVxuICB9O1xuXG4gIGNvbnN0IGluY2x1ZGVNYXRjaGVyID0gcGljb21hdGNoKGluY2x1ZGVQYXR0ZXJucywgcGljb21hdGNoT3B0aW9ucyk7XG4gIGNvbnN0IGV4Y2x1ZGVNYXRjaGVyID0gZXhjbHVkZVBhdHRlcm5zLmxlbmd0aCA+IDBcbiAgICA/IHBpY29tYXRjaChleGNsdWRlUGF0dGVybnMsIHBpY29tYXRjaE9wdGlvbnMpXG4gICAgOiAoKSA9PiBmYWxzZTtcblxuICByZXR1cm4gKGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAvLyBOb3JtYWxpemUgcGF0aCBzZXBhcmF0b3JzIGZvciBjcm9zcy1wbGF0Zm9ybSBjb21wYXRpYmlsaXR5XG4gICAgbGV0IG5vcm1hbGl6ZWRQYXRoID0gZmlsZVBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuXG4gICAgLy8gSWYgcm9vdERpciBpcyBwcm92aWRlZCBhbmQgdGhlIHBhdGggYXBwZWFycyB0byBiZSBhYnNvbHV0ZSwgbWFrZSBpdCByZWxhdGl2ZVxuICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgY2hva2lkYXIgdjQgcGFzc2VzIGFic29sdXRlIHBhdGhzIHRvIHRoZVxuICAgIC8vIGlnbm9yZWQgY2FsbGJhY2sgZXZlbiB3aGVuIGEgY3dkIGlzIHNwZWNpZmllZFxuICAgIGlmIChyb290RGlyKSB7XG4gICAgICBpZiAobm9ybWFsaXplZFBhdGguc3RhcnRzV2l0aChyb290RGlyICsgJy8nKSkge1xuICAgICAgICBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZWRQYXRoLnNsaWNlKHJvb3REaXIubGVuZ3RoICsgMSk7XG4gICAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRQYXRoID09PSByb290RGlyKSB7XG4gICAgICAgIC8vIFRoZSByb290IGRpcmVjdG9yeSBpdHNlbGYgLSBkb24ndCBpZ25vcmUgaXRcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEEgZmlsZSBpcyBpZ25vcmVkIGlmOlxuICAgIC8vIDEuIEl0IG1hdGNoZXMgYW55IGV4Y2x1ZGUgcGF0dGVybiwgT1JcbiAgICAvLyAyLiBJdCBkb2VzIE5PVCBtYXRjaCBhbnkgaW5jbHVkZSBwYXR0ZXJuXG4gICAgaWYgKGV4Y2x1ZGVNYXRjaGVyKG5vcm1hbGl6ZWRQYXRoKSkge1xuICAgICAgcmV0dXJuIHRydWU7IC8vIElnbm9yZTogbWF0Y2hlcyBleGNsdWRlXG4gICAgfVxuXG4gICAgaWYgKCFpbmNsdWRlTWF0Y2hlcihub3JtYWxpemVkUGF0aCkpIHtcbiAgICAgIHJldHVybiB0cnVlOyAvLyBJZ25vcmU6IGRvZXNuJ3QgbWF0Y2ggaW5jbHVkZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTsgLy8gRG9uJ3QgaWdub3JlOiBtYXRjaGVzIGluY2x1ZGUgYW5kIGRvZXNuJ3QgbWF0Y2ggZXhjbHVkZVxuICB9O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.languageDisplayName = languageDisplayName;\nexports.guessLanguage = guessLanguage;\nconst path = require(\"path\");\nconst fs = require(\"fs-extra\");\nconst directories_1 = require(\"./directories\");\nconst DISPLAY_NAMES = {\n typescript: 'TypeScript',\n javascript: 'JavaScript',\n python: 'Python',\n java: 'Java',\n dotnet: '.NET',\n go: 'Go',\n};\n/**\n * Return the display name for a language identifier.\n */\nfunction languageDisplayName(language) {\n return DISPLAY_NAMES[language] ?? language;\n}\n/**\n * Guess the CDK app language based on the files in the given directory.\n *\n * Returns `undefined` if our guess fails.\n */\nasync function guessLanguage(dir) {\n try {\n const files = new Set(await (0, directories_1.listFiles)(dir, 2, ['node_modules']));\n if (files.has('package.json')) {\n const pjContents = JSON.parse(await fs.readFile(path.join(dir, 'package.json'), 'utf-8'));\n const deps = new Set([\n ...Object.keys(pjContents.dependencies ?? {}),\n ...Object.keys(pjContents.devDependencies ?? {}),\n ]);\n if (deps.has('typescript') || deps.has('ts-node') || deps.has('tsx') || deps.has('swc')) {\n return 'typescript';\n }\n else {\n return 'javascript';\n }\n }\n if (files.has('requirements.txt') || files.has('setup.py') || files.has('pyproject.toml')) {\n return 'python';\n }\n if (files.has('pom.xml') || files.has('build.xml') || files.has('settings.gradle')) {\n return 'java';\n }\n if (Array.from(files).some(n => n.endsWith('.sln') || n.endsWith('.csproj') || n.endsWith('.fsproj') || n.endsWith('.vbproj'))) {\n return 'dotnet';\n }\n if (files.has('go.mod')) {\n return 'go';\n }\n }\n catch {\n // Swallow failure\n }\n return undefined;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Vlc3MtbGFuZ3VhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJndWVzcy1sYW5ndWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdCQSxrREFFQztBQU9ELHNDQXFDQztBQTlERCw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLCtDQUEwQztBQUUxQyxNQUFNLGFBQWEsR0FBMkI7SUFDNUMsVUFBVSxFQUFFLFlBQVk7SUFDeEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsTUFBTTtJQUNkLEVBQUUsRUFBRSxJQUFJO0NBQ1QsQ0FBQztBQUVGOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsUUFBZ0I7SUFDbEQsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDO0FBQzdDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFXO0lBQzdDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBQSx1QkFBUyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMxRixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQztnQkFDbkIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO2dCQUM3QyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hGLE9BQU8sWUFBWSxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFlBQVksQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDMUYsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ25GLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0gsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxrQkFBa0I7SUFDcEIsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgbGlzdEZpbGVzIH0gZnJvbSAnLi9kaXJlY3Rvcmllcyc7XG5cbmNvbnN0IERJU1BMQVlfTkFNRVM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHR5cGVzY3JpcHQ6ICdUeXBlU2NyaXB0JyxcbiAgamF2YXNjcmlwdDogJ0phdmFTY3JpcHQnLFxuICBweXRob246ICdQeXRob24nLFxuICBqYXZhOiAnSmF2YScsXG4gIGRvdG5ldDogJy5ORVQnLFxuICBnbzogJ0dvJyxcbn07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUgZm9yIGEgbGFuZ3VhZ2UgaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhbmd1YWdlRGlzcGxheU5hbWUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBESVNQTEFZX05BTUVTW2xhbmd1YWdlXSA/PyBsYW5ndWFnZTtcbn1cblxuLyoqXG4gKiBHdWVzcyB0aGUgQ0RLIGFwcCBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgZmlsZXMgaW4gdGhlIGdpdmVuIGRpcmVjdG9yeS5cbiAqXG4gKiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIG91ciBndWVzcyBmYWlscy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGd1ZXNzTGFuZ3VhZ2UoZGlyOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IGZpbGVzID0gbmV3IFNldChhd2FpdCBsaXN0RmlsZXMoZGlyLCAyLCBbJ25vZGVfbW9kdWxlcyddKSk7XG5cbiAgICBpZiAoZmlsZXMuaGFzKCdwYWNrYWdlLmpzb24nKSkge1xuICAgICAgY29uc3QgcGpDb250ZW50cyA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKGRpciwgJ3BhY2thZ2UuanNvbicpLCAndXRmLTgnKSk7XG4gICAgICBjb25zdCBkZXBzID0gbmV3IFNldChbXG4gICAgICAgIC4uLk9iamVjdC5rZXlzKHBqQ29udGVudHMuZGVwZW5kZW5jaWVzID8/IHt9KSxcbiAgICAgICAgLi4uT2JqZWN0LmtleXMocGpDb250ZW50cy5kZXZEZXBlbmRlbmNpZXMgPz8ge30pLFxuICAgICAgXSk7XG4gICAgICBpZiAoZGVwcy5oYXMoJ3R5cGVzY3JpcHQnKSB8fCBkZXBzLmhhcygndHMtbm9kZScpIHx8IGRlcHMuaGFzKCd0c3gnKSB8fCBkZXBzLmhhcygnc3djJykpIHtcbiAgICAgICAgcmV0dXJuICd0eXBlc2NyaXB0JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnamF2YXNjcmlwdCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVzLmhhcygncmVxdWlyZW1lbnRzLnR4dCcpIHx8IGZpbGVzLmhhcygnc2V0dXAucHknKSB8fCBmaWxlcy5oYXMoJ3B5cHJvamVjdC50b21sJykpIHtcbiAgICAgIHJldHVybiAncHl0aG9uJztcbiAgICB9XG5cbiAgICBpZiAoZmlsZXMuaGFzKCdwb20ueG1sJykgfHwgZmlsZXMuaGFzKCdidWlsZC54bWwnKSB8fCBmaWxlcy5oYXMoJ3NldHRpbmdzLmdyYWRsZScpKSB7XG4gICAgICByZXR1cm4gJ2phdmEnO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5mcm9tKGZpbGVzKS5zb21lKG4gPT4gbi5lbmRzV2l0aCgnLnNsbicpIHx8IG4uZW5kc1dpdGgoJy5jc3Byb2onKSB8fCBuLmVuZHNXaXRoKCcuZnNwcm9qJykgfHwgbi5lbmRzV2l0aCgnLnZicHJvaicpKSkge1xuICAgICAgcmV0dXJuICdkb3RuZXQnO1xuICAgIH1cblxuICAgIGlmIChmaWxlcy5oYXMoJ2dvLm1vZCcpKSB7XG4gICAgICByZXR1cm4gJ2dvJztcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIC8vIFN3YWxsb3cgZmFpbHVyZVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./archive\"), exports);\n__exportStar(require(\"./arrays\"), exports);\n__exportStar(require(\"./bool\"), exports);\n__exportStar(require(\"./bytes\"), exports);\n__exportStar(require(\"./cloudformation\"), exports);\n__exportStar(require(\"./content-hash\"), exports);\n__exportStar(require(\"./directories\"), exports);\n__exportStar(require(\"./format-error\"), exports);\n__exportStar(require(\"./glob-matcher\"), exports);\n__exportStar(require(\"./guess-language\"), exports);\n__exportStar(require(\"./json\"), exports);\n__exportStar(require(\"./net\"), exports);\n__exportStar(require(\"./objects\"), exports);\n__exportStar(require(\"./parallel\"), exports);\n__exportStar(require(\"./package-info\"), exports);\n__exportStar(require(\"./serialize\"), exports);\n__exportStar(require(\"./string-manipulation\"), exports);\n__exportStar(require(\"./type-brands\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./version-range\"), exports);\n__exportStar(require(\"./yaml-cfn\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsMENBQXdCO0FBQ3hCLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsZ0RBQThCO0FBQzlCLGlEQUErQjtBQUMvQixpREFBK0I7QUFDL0IsbURBQWlDO0FBQ2pDLHlDQUF1QjtBQUN2Qix3Q0FBc0I7QUFDdEIsNENBQTBCO0FBQzFCLDZDQUEyQjtBQUMzQixpREFBK0I7QUFDL0IsOENBQTRCO0FBQzVCLHdEQUFzQztBQUN0QyxnREFBOEI7QUFDOUIsMENBQXdCO0FBQ3hCLGtEQUFnQztBQUNoQyw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FyY2hpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnJheXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ib29sJztcbmV4cG9ydCAqIGZyb20gJy4vYnl0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRlbnQtaGFzaCc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdG9yaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0LWVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vZ2xvYi1tYXRjaGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZ3Vlc3MtbGFuZ3VhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0JztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL3BhcmFsbGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcGFja2FnZS1pbmZvJztcbmV4cG9ydCAqIGZyb20gJy4vc2VyaWFsaXplJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLW1hbmlwdWxhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3R5cGUtYnJhbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi92ZXJzaW9uLXJhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4veWFtbC1jZm4nO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResultObj = getResultObj;\nexports.findJsonValue = findJsonValue;\n/**\n * This gets the values of the jsonObject at the paths specified in propertiesToReturn.\n *\n * For example, jsonObject = {\n * key1: 'abc',\n * key2: {\n * foo: 'qwerty',\n * bar: 'data',\n * }\n * }\n *\n * propertiesToReturn = ['key1', 'key2.foo'];\n *\n * The returned object is:\n *\n * ```\n * {\n * key1: 'abc',\n * 'key2.foo': 'qwerty',\n * Identifier: identifier\n * }\n * ```\n */\nfunction getResultObj(jsonObject, identifier, propertiesToReturn) {\n const propsObj = {};\n propertiesToReturn.forEach((propName) => {\n Object.assign(propsObj, { [propName]: findJsonValue(jsonObject, propName) });\n });\n Object.assign(propsObj, { ['Identifier']: identifier });\n return propsObj;\n}\n/**\n * This finds the value of the jsonObject at the path. Path is delimited by '.'.\n *\n * For example, jsonObject = {\n * key1: 'abc',\n * key2: {\n * foo: 'qwerty',\n * bar: 'data',\n * }\n * }\n *\n * If path is 'key1', then it will return 'abc'.\n * If path is 'key2.foo', then it will return 'qwerty'.\n * If path is 'key2', then it will return the object:\n * {\n * foo: 'qwerty',\n * bar: 'data',\n * }\n *\n * If the path is not found, an Error will be thrown stating which token is missing.\n */\nfunction findJsonValue(jsonObject, path) {\n const paths = path.split('.');\n let obj = jsonObject;\n paths.forEach(p => {\n obj = obj[p];\n if (obj === undefined) {\n throw new TypeError(`Cannot read field ${path}. ${p} is not found.`);\n }\n });\n return obj;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1QkEsb0NBT0M7QUF1QkQsc0NBVUM7QUEvREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxTQUFnQixZQUFZLENBQUMsVUFBZSxFQUFFLFVBQWtCLEVBQUUsa0JBQTRCO0lBQzVGLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLFVBQWUsRUFBRSxJQUFZO0lBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDO0lBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGdldHMgdGhlIHZhbHVlcyBvZiB0aGUganNvbk9iamVjdCBhdCB0aGUgcGF0aHMgc3BlY2lmaWVkIGluIHByb3BlcnRpZXNUb1JldHVybi5cbiAqXG4gKiBGb3IgZXhhbXBsZSwganNvbk9iamVjdCA9IHtcbiAqICAga2V5MTogJ2FiYycsXG4gKiAgIGtleTI6IHtcbiAqICAgICBmb286ICdxd2VydHknLFxuICogICAgIGJhcjogJ2RhdGEnLFxuICogICB9XG4gKiB9XG4gKlxuICogcHJvcGVydGllc1RvUmV0dXJuID0gWydrZXkxJywgJ2tleTIuZm9vJ107XG4gKlxuICogVGhlIHJldHVybmVkIG9iamVjdCBpczpcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAga2V5MTogJ2FiYycsXG4gKiAgICdrZXkyLmZvbyc6ICdxd2VydHknLFxuICogICBJZGVudGlmaWVyOiBpZGVudGlmaWVyXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3VsdE9iaihqc29uT2JqZWN0OiBhbnksIGlkZW50aWZpZXI6IHN0cmluZywgcHJvcGVydGllc1RvUmV0dXJuOiBzdHJpbmdbXSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBwcm9wc09iaiA9IHt9O1xuICBwcm9wZXJ0aWVzVG9SZXR1cm4uZm9yRWFjaCgocHJvcE5hbWUpID0+IHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BzT2JqLCB7IFtwcm9wTmFtZV06IGZpbmRKc29uVmFsdWUoanNvbk9iamVjdCwgcHJvcE5hbWUpIH0pO1xuICB9KTtcbiAgT2JqZWN0LmFzc2lnbihwcm9wc09iaiwgeyBbJ0lkZW50aWZpZXInXTogaWRlbnRpZmllciB9KTtcbiAgcmV0dXJuIHByb3BzT2JqO1xufVxuXG4vKipcbiAqIFRoaXMgZmluZHMgdGhlIHZhbHVlIG9mIHRoZSBqc29uT2JqZWN0IGF0IHRoZSBwYXRoLiAgUGF0aCBpcyBkZWxpbWl0ZWQgYnkgJy4nLlxuICpcbiAqIEZvciBleGFtcGxlLCBqc29uT2JqZWN0ID0ge1xuICogICBrZXkxOiAnYWJjJyxcbiAqICAga2V5Mjoge1xuICogICAgIGZvbzogJ3F3ZXJ0eScsXG4gKiAgICAgYmFyOiAnZGF0YScsXG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBJZiBwYXRoIGlzICdrZXkxJywgdGhlbiBpdCB3aWxsIHJldHVybiAnYWJjJy5cbiAqIElmIHBhdGggaXMgJ2tleTIuZm9vJywgdGhlbiBpdCB3aWxsIHJldHVybiAncXdlcnR5Jy5cbiAqIElmIHBhdGggaXMgJ2tleTInLCB0aGVuIGl0IHdpbGwgcmV0dXJuIHRoZSBvYmplY3Q6XG4gKiB7XG4gKiAgIGZvbzogJ3F3ZXJ0eScsXG4gKiAgIGJhcjogJ2RhdGEnLFxuICogfVxuICpcbiAqIElmIHRoZSBwYXRoIGlzIG5vdCBmb3VuZCwgYW4gRXJyb3Igd2lsbCBiZSB0aHJvd24gc3RhdGluZyB3aGljaCB0b2tlbiBpcyBtaXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEpzb25WYWx1ZShqc29uT2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHBhdGhzID0gcGF0aC5zcGxpdCgnLicpO1xuICBsZXQgb2JqID0ganNvbk9iamVjdDtcbiAgcGF0aHMuZm9yRWFjaChwID0+IHtcbiAgICBvYmogPSBvYmpbcF07XG4gICAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBDYW5ub3QgcmVhZCBmaWVsZCAke3BhdGh9LiAke3B9IGlzIG5vdCBmb3VuZC5gKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb2JqO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.humanNetworkError = humanNetworkError;\nexports.humanHttpStatusError = humanHttpStatusError;\n/**\n * Get a human-readable error message for a network error\n * @param error - The network error object\n */\nfunction humanNetworkError(error) {\n switch (error.code) {\n case 'ENOTFOUND':\n return `Cannot reach the server. Please check your internet connection or the URL (${error.hostname}).`;\n case 'ECONNREFUSED':\n return `Connection refused. The server at ${error.address}:${error.port} is not accepting connections.`;\n case 'ECONNRESET':\n return 'Connection was suddenly closed by the server. Please try again later.';\n case 'ETIMEDOUT':\n return 'Connection timed out. The server took too long to respond.';\n case 'CERT_HAS_EXPIRED':\n return 'The SSL certificate of the server has expired. This could be a security risk.';\n case 'UNABLE_TO_VERIFY_LEAF_SIGNATURE':\n case 'CERT_SIGNATURE_FAILURE':\n case 'ERR_TLS_CERT_ALTNAME_INVALID':\n return 'SSL certificate validation failed. This could indicate a security issue or a misconfigured server.';\n default:\n return `Network error: ${error.message || error.code || 'Unknown error'}`;\n }\n}\n/**\n * Get a human-readable error message for a HTTP status code\n */\nfunction humanHttpStatusError(statusCode) {\n switch (statusCode) {\n case 400:\n return 'Bad request - the server could not understand the request';\n case 401:\n return 'Unauthorized - authentication is required';\n case 403:\n return 'Forbidden - you do not have permission to access this resource';\n case 404:\n return 'Not found - the requested resource does not exist';\n case 408:\n return 'Request timeout - the server timed out waiting for the request';\n case 429:\n return 'Too many requests - you have sent too many requests in a given amount of time';\n case 500:\n return 'Internal server error - something went wrong on the server';\n case 502:\n return 'Bad gateway - the server received an invalid response from an upstream server';\n case 503:\n return 'Service unavailable - the server is temporarily unable to handle the request';\n case 504:\n return 'Gateway timeout - the server did not receive a timely response from an upstream server';\n default:\n return statusCode >= 500\n ? 'Server error - something went wrong on the server'\n : 'Client error - something went wrong with the request';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsOENBbUJDO0FBS0Qsb0RBMkJDO0FBdkREOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEtBQTRCO0lBQzVELFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLEtBQUssV0FBVztZQUNkLE9BQU8sOEVBQStFLEtBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQztRQUNuSCxLQUFLLGNBQWM7WUFDakIsT0FBTyxxQ0FBc0MsS0FBYSxDQUFDLE9BQU8sSUFBSyxLQUFhLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQztRQUM1SCxLQUFLLFlBQVk7WUFDZixPQUFPLHVFQUF1RSxDQUFDO1FBQ2pGLEtBQUssV0FBVztZQUNkLE9BQU8sNERBQTRELENBQUM7UUFDdEUsS0FBSyxrQkFBa0I7WUFDckIsT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLGlDQUFpQyxDQUFDO1FBQ3ZDLEtBQUssd0JBQXdCLENBQUM7UUFDOUIsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyxvR0FBb0csQ0FBQztRQUM5RztZQUNFLE9BQU8sa0JBQWtCLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsVUFBa0I7SUFDckQsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLEdBQUc7WUFDTixPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFLEtBQUssR0FBRztZQUNOLE9BQU8sMkNBQTJDLENBQUM7UUFDckQsS0FBSyxHQUFHO1lBQ04sT0FBTyxnRUFBZ0UsQ0FBQztRQUMxRSxLQUFLLEdBQUc7WUFDTixPQUFPLG1EQUFtRCxDQUFDO1FBQzdELEtBQUssR0FBRztZQUNOLE9BQU8sZ0VBQWdFLENBQUM7UUFDMUUsS0FBSyxHQUFHO1lBQ04sT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLEdBQUc7WUFDTixPQUFPLDREQUE0RCxDQUFDO1FBQ3RFLEtBQUssR0FBRztZQUNOLE9BQU8sK0VBQStFLENBQUM7UUFDekYsS0FBSyxHQUFHO1lBQ04sT0FBTyw4RUFBOEUsQ0FBQztRQUN4RixLQUFLLEdBQUc7WUFDTixPQUFPLHdGQUF3RixDQUFDO1FBQ2xHO1lBQ0UsT0FBTyxVQUFVLElBQUksR0FBRztnQkFDdEIsQ0FBQyxDQUFDLG1EQUFtRDtnQkFDckQsQ0FBQyxDQUFDLHNEQUFzRCxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgYSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIGZvciBhIG5ldHdvcmsgZXJyb3JcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBuZXR3b3JrIGVycm9yIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5OZXR3b3JrRXJyb3IoZXJyb3I6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbik6IHN0cmluZyB7XG4gIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgIGNhc2UgJ0VOT1RGT1VORCc6XG4gICAgICByZXR1cm4gYENhbm5vdCByZWFjaCB0aGUgc2VydmVyLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uIG9yIHRoZSBVUkwgKCR7KGVycm9yIGFzIGFueSkuaG9zdG5hbWV9KS5gO1xuICAgIGNhc2UgJ0VDT05OUkVGVVNFRCc6XG4gICAgICByZXR1cm4gYENvbm5lY3Rpb24gcmVmdXNlZC4gVGhlIHNlcnZlciBhdCAkeyhlcnJvciBhcyBhbnkpLmFkZHJlc3N9OiR7KGVycm9yIGFzIGFueSkucG9ydH0gaXMgbm90IGFjY2VwdGluZyBjb25uZWN0aW9ucy5gO1xuICAgIGNhc2UgJ0VDT05OUkVTRVQnOlxuICAgICAgcmV0dXJuICdDb25uZWN0aW9uIHdhcyBzdWRkZW5seSBjbG9zZWQgYnkgdGhlIHNlcnZlci4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgIGNhc2UgJ0VUSU1FRE9VVCc6XG4gICAgICByZXR1cm4gJ0Nvbm5lY3Rpb24gdGltZWQgb3V0LiBUaGUgc2VydmVyIHRvb2sgdG9vIGxvbmcgdG8gcmVzcG9uZC4nO1xuICAgIGNhc2UgJ0NFUlRfSEFTX0VYUElSRUQnOlxuICAgICAgcmV0dXJuICdUaGUgU1NMIGNlcnRpZmljYXRlIG9mIHRoZSBzZXJ2ZXIgaGFzIGV4cGlyZWQuIFRoaXMgY291bGQgYmUgYSBzZWN1cml0eSByaXNrLic7XG4gICAgY2FzZSAnVU5BQkxFX1RPX1ZFUklGWV9MRUFGX1NJR05BVFVSRSc6XG4gICAgY2FzZSAnQ0VSVF9TSUdOQVRVUkVfRkFJTFVSRSc6XG4gICAgY2FzZSAnRVJSX1RMU19DRVJUX0FMVE5BTUVfSU5WQUxJRCc6XG4gICAgICByZXR1cm4gJ1NTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGZhaWxlZC4gVGhpcyBjb3VsZCBpbmRpY2F0ZSBhIHNlY3VyaXR5IGlzc3VlIG9yIGEgbWlzY29uZmlndXJlZCBzZXJ2ZXIuJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGBOZXR3b3JrIGVycm9yOiAke2Vycm9yLm1lc3NhZ2UgfHwgZXJyb3IuY29kZSB8fCAnVW5rbm93biBlcnJvcid9YDtcbiAgfVxufVxuXG4vKipcbiAqIEdldCBhIGh1bWFuLXJlYWRhYmxlIGVycm9yIG1lc3NhZ2UgZm9yIGEgSFRUUCBzdGF0dXMgY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5IdHRwU3RhdHVzRXJyb3Ioc3RhdHVzQ29kZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgY2FzZSA0MDA6XG4gICAgICByZXR1cm4gJ0JhZCByZXF1ZXN0IC0gdGhlIHNlcnZlciBjb3VsZCBub3QgdW5kZXJzdGFuZCB0aGUgcmVxdWVzdCc7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ1VuYXV0aG9yaXplZCAtIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkJztcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnRm9yYmlkZGVuIC0geW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgcmVzb3VyY2UnO1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdOb3QgZm91bmQgLSB0aGUgcmVxdWVzdGVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0JztcbiAgICBjYXNlIDQwODpcbiAgICAgIHJldHVybiAnUmVxdWVzdCB0aW1lb3V0IC0gdGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QnO1xuICAgIGNhc2UgNDI5OlxuICAgICAgcmV0dXJuICdUb28gbWFueSByZXF1ZXN0cyAtIHlvdSBoYXZlIHNlbnQgdG9vIG1hbnkgcmVxdWVzdHMgaW4gYSBnaXZlbiBhbW91bnQgb2YgdGltZSc7XG4gICAgY2FzZSA1MDA6XG4gICAgICByZXR1cm4gJ0ludGVybmFsIHNlcnZlciBlcnJvciAtIHNvbWV0aGluZyB3ZW50IHdyb25nIG9uIHRoZSBzZXJ2ZXInO1xuICAgIGNhc2UgNTAyOlxuICAgICAgcmV0dXJuICdCYWQgZ2F0ZXdheSAtIHRoZSBzZXJ2ZXIgcmVjZWl2ZWQgYW4gaW52YWxpZCByZXNwb25zZSBmcm9tIGFuIHVwc3RyZWFtIHNlcnZlcic7XG4gICAgY2FzZSA1MDM6XG4gICAgICByZXR1cm4gJ1NlcnZpY2UgdW5hdmFpbGFibGUgLSB0aGUgc2VydmVyIGlzIHRlbXBvcmFyaWx5IHVuYWJsZSB0byBoYW5kbGUgdGhlIHJlcXVlc3QnO1xuICAgIGNhc2UgNTA0OlxuICAgICAgcmV0dXJuICdHYXRld2F5IHRpbWVvdXQgLSB0aGUgc2VydmVyIGRpZCBub3QgcmVjZWl2ZSBhIHRpbWVseSByZXNwb25zZSBmcm9tIGFuIHVwc3RyZWFtIHNlcnZlcic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0dXNDb2RlID49IDUwMFxuICAgICAgICA/ICdTZXJ2ZXIgZXJyb3IgLSBzb21ldGhpbmcgd2VudCB3cm9uZyBvbiB0aGUgc2VydmVyJ1xuICAgICAgICA6ICdDbGllbnQgZXJyb3IgLSBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSByZXF1ZXN0JztcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyDefaults = applyDefaults;\nexports.isEmpty = isEmpty;\nexports.deepClone = deepClone;\nexports.mapObject = mapObject;\nexports.makeObject = makeObject;\nexports.deepGet = deepGet;\nexports.deepSet = deepSet;\nexports.deepMerge = deepMerge;\nexports.splitBySize = splitBySize;\nexports.transformObjectKeys = transformObjectKeys;\nexports.noUndefined = noUndefined;\nconst types_1 = require(\"./types\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\n/**\n * Return a new object by adding missing keys into another object\n */\nfunction applyDefaults(hash, defaults) {\n const result = {};\n Object.keys(hash).forEach(k => result[k] = hash[k]);\n Object.keys(defaults)\n .filter(k => !(k in result))\n .forEach(k => result[k] = defaults[k]);\n return result;\n}\n/**\n * Return whether the given parameter is an empty object or empty list.\n */\nfunction isEmpty(x) {\n if (x == null) {\n return false;\n }\n if ((0, types_1.isArray)(x)) {\n return x.length === 0;\n }\n return Object.keys(x).length === 0;\n}\n/**\n * Deep clone a tree of objects, lists or scalars\n *\n * Does not support cycles.\n */\nfunction deepClone(x) {\n if (typeof x === 'undefined') {\n return undefined;\n }\n if (x === null) {\n return null;\n }\n if ((0, types_1.isArray)(x)) {\n return x.map(deepClone);\n }\n if ((0, types_1.isObject)(x)) {\n return makeObject(mapObject(x, (k, v) => [k, deepClone(v)]));\n }\n return x;\n}\n/**\n * Map over an object, treating it as a dictionary\n */\nfunction mapObject(x, fn) {\n const ret = [];\n Object.keys(x).forEach(key => {\n ret.push(fn(key, x[key]));\n });\n return ret;\n}\n/**\n * Construct an object from a list of (k, v) pairs\n */\nfunction makeObject(pairs) {\n const ret = {};\n for (const pair of pairs) {\n ret[pair[0]] = pair[1];\n }\n return ret;\n}\n/**\n * Deep get a value from a tree of nested objects\n *\n * Returns undefined if any part of the path was unset or\n * not an object.\n */\nfunction deepGet(x, path) {\n path = path.slice();\n while (path.length > 0 && (0, types_1.isObject)(x)) {\n const key = path.shift();\n x = x[key];\n }\n return path.length === 0 ? x : undefined;\n}\n/**\n * Deep set a value in a tree of nested objects\n *\n * Throws an error if any part of the path is not an object.\n */\nfunction deepSet(x, path, value) {\n path = path.slice();\n if (path.length === 0) {\n throw new toolkit_error_1.ToolkitError('EmptyPath', 'Path may not be empty');\n }\n while (path.length > 1 && (0, types_1.isObject)(x)) {\n const key = path.shift();\n if (isPrototypePollutingKey(key)) {\n continue;\n }\n if (!(key in x)) {\n x[key] = {};\n }\n x = x[key];\n }\n if (!(0, types_1.isObject)(x)) {\n throw new toolkit_error_1.ToolkitError('ExpectedObject', `Expected an object, got '${x}'`);\n }\n const finalKey = path[0];\n if (isPrototypePollutingKey(finalKey)) {\n return;\n }\n if (value !== undefined) {\n x[finalKey] = value;\n }\n else {\n delete x[finalKey];\n }\n}\n/**\n * Helper to detect prototype polluting keys\n *\n * A key matching this, MUST NOT be used in an assignment.\n * Use this to check user-input.\n */\nfunction isPrototypePollutingKey(key) {\n return key === '__proto__' || key === 'constructor' || key === 'prototype';\n}\n/**\n * Recursively merge objects together\n *\n * The leftmost object is mutated and returned. Arrays are not merged\n * but overwritten just like scalars.\n *\n * If an object is merged into a non-object, the non-object is lost.\n */\nfunction deepMerge(...objects) {\n function mergeOne(target, source) {\n for (const key of Object.keys(source)) {\n if (isPrototypePollutingKey(key)) {\n continue;\n }\n const value = source[key];\n if ((0, types_1.isObject)(value)) {\n if (!(0, types_1.isObject)(target[key])) {\n target[key] = {};\n } // Overwrite on purpose\n mergeOne(target[key], value);\n }\n else if (typeof value !== 'undefined') {\n target[key] = value;\n }\n }\n }\n const others = objects.filter(x => x != null);\n if (others.length === 0) {\n return {};\n }\n const into = others.splice(0, 1)[0];\n others.forEach(other => mergeOne(into, other));\n return into;\n}\n/**\n * Splits the given object into two, such that:\n *\n * 1. The size of the first object (after stringified in UTF-8) is less than or equal to the provided size limit.\n * 2. Merging the two objects results in the original one.\n */\nfunction splitBySize(data, maxSizeBytes) {\n if (maxSizeBytes < 2) {\n // It's impossible to fit anything in the first object\n return [undefined, data];\n }\n const entries = Object.entries(data);\n return recurse(0, 0);\n function recurse(index, runningTotalSize) {\n if (index >= entries.length) {\n // Everything fits in the first object\n return [data, undefined];\n }\n const size = runningTotalSize + entrySize(entries[index]);\n return (size > maxSizeBytes) ? cutAt(index) : recurse(index + 1, size);\n }\n function entrySize(entry) {\n return Buffer.byteLength(JSON.stringify(Object.fromEntries([entry])));\n }\n function cutAt(index) {\n return [\n Object.fromEntries(entries.slice(0, index)),\n Object.fromEntries(entries.slice(index)),\n ];\n }\n}\n/**\n * This function transforms all keys (recursively) in the provided `val` object.\n *\n * @param val - The object whose keys need to be transformed.\n * @param transform - The function that will be applied to each key.\n * @param exclude - The keys that will not be transformed and copied to output directly\n * @returns A new object with the same values as `val`, but with all keys transformed according to `transform`.\n */\nfunction transformObjectKeys(val, transform, exclude = {}) {\n if (val == null || typeof val !== 'object') {\n return val;\n }\n if (Array.isArray(val)) {\n // For arrays we just pass parent's exclude object directly\n // since it makes no sense to specify different exclude options for each array element\n return val.map((input) => transformObjectKeys(input, transform, exclude));\n }\n const ret = {};\n for (const [k, v] of Object.entries(val)) {\n const childExclude = exclude[k];\n if (childExclude === true) {\n // we don't transform this object if the key is specified in exclude\n ret[transform(k)] = v;\n }\n else {\n ret[transform(k)] = transformObjectKeys(v, transform, childExclude);\n }\n }\n return ret;\n}\n/**\n * Remove undefined values from a dictionary\n */\nfunction noUndefined(xs) {\n return Object.fromEntries(Object.entries(xs).filter(([_, v]) => v !== undefined));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxzQ0FVQztBQUtELDBCQVFDO0FBT0QsOEJBY0M7QUFLRCw4QkFNQztBQUtELGdDQU1DO0FBUUQsMEJBUUM7QUFPRCwwQkFtQ0M7QUFvQkQsOEJBNkJDO0FBUUQsa0NBNEJDO0FBWUQsa0RBb0JDO0FBS0Qsa0NBRUM7QUE5UEQsbUNBQTRDO0FBQzVDLDREQUF3RDtBQUV4RDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxJQUFTLEVBQUUsUUFBYTtJQUNwRCxNQUFNLE1BQU0sR0FBUSxFQUFHLENBQUM7SUFFeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQztTQUMzQixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLENBQU07SUFDNUIsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLElBQUEsZUFBTyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLE1BQU0s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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9iaiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNBcnJheSwgaXNPYmplY3QgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8qKlxuICogUmV0dXJuIGEgbmV3IG9iamVjdCBieSBhZGRpbmcgbWlzc2luZyBrZXlzIGludG8gYW5vdGhlciBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5RGVmYXVsdHMoaGFzaDogYW55LCBkZWZhdWx0czogYW55KSB7XG4gIGNvbnN0IHJlc3VsdDogYW55ID0geyB9O1xuXG4gIE9iamVjdC5rZXlzKGhhc2gpLmZvckVhY2goayA9PiByZXN1bHRba10gPSBoYXNoW2tdKTtcblxuICBPYmplY3Qua2V5cyhkZWZhdWx0cylcbiAgICAuZmlsdGVyKGsgPT4gIShrIGluIHJlc3VsdCkpXG4gICAgLmZvckVhY2goayA9PiByZXN1bHRba10gPSBkZWZhdWx0c1trXSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gcGFyYW1ldGVyIGlzIGFuIGVtcHR5IG9iamVjdCBvciBlbXB0eSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eSh4OiBhbnkpIHtcbiAgaWYgKHggPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lmxlbmd0aCA9PT0gMDtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMoeCkubGVuZ3RoID09PSAwO1xufVxuXG4vKipcbiAqIERlZXAgY2xvbmUgYSB0cmVlIG9mIG9iamVjdHMsIGxpc3RzIG9yIHNjYWxhcnNcbiAqXG4gKiBEb2VzIG5vdCBzdXBwb3J0IGN5Y2xlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZSh4OiBhbnkpOiBhbnkge1xuICBpZiAodHlwZW9mIHggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoeCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChpc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHgubWFwKGRlZXBDbG9uZSk7XG4gIH1cbiAgaWYgKGlzT2JqZWN0KHgpKSB7XG4gICAgcmV0dXJuIG1ha2VPYmplY3QobWFwT2JqZWN0KHgsIChrLCB2KSA9PiBbaywgZGVlcENsb25lKHYpXSBhcyBbc3RyaW5nLCBhbnldKSk7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbi8qKlxuICogTWFwIG92ZXIgYW4gb2JqZWN0LCB0cmVhdGluZyBpdCBhcyBhIGRpY3Rpb25hcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcE9iamVjdDxULCBVPih4OiBPYmo8VD4sIGZuOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKSA9PiBVKTogVVtdIHtcbiAgY29uc3QgcmV0OiBVW10gPSBbXTtcbiAgT2JqZWN0LmtleXMoeCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIHJldC5wdXNoKGZuKGtleSwgeFtrZXldKSk7XG4gIH0pO1xuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIENvbnN0cnVjdCBhbiBvYmplY3QgZnJvbSBhIGxpc3Qgb2YgKGssIHYpIHBhaXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlT2JqZWN0PFQ+KHBhaXJzOiBBcnJheTxbc3RyaW5nLCBUXT4pOiBPYmo8VD4ge1xuICBjb25zdCByZXQ6IE9iajxUPiA9IHt9O1xuICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICByZXRbcGFpclswXV0gPSBwYWlyWzFdO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRGVlcCBnZXQgYSB2YWx1ZSBmcm9tIGEgdHJlZSBvZiBuZXN0ZWQgb2JqZWN0c1xuICpcbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIGFueSBwYXJ0IG9mIHRoZSBwYXRoIHdhcyB1bnNldCBvclxuICogbm90IGFuIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBHZXQoeDogYW55LCBwYXRoOiBzdHJpbmdbXSk6IGFueSB7XG4gIHBhdGggPSBwYXRoLnNsaWNlKCk7XG5cbiAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMCAmJiBpc09iamVjdCh4KSkge1xuICAgIGNvbnN0IGtleSA9IHBhdGguc2hpZnQoKSE7XG4gICAgeCA9IHhba2V5XTtcbiAgfVxuICByZXR1cm4gcGF0aC5sZW5ndGggPT09IDAgPyB4IDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERlZXAgc2V0IGEgdmFsdWUgaW4gYSB0cmVlIG9mIG5lc3RlZCBvYmplY3RzXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIGFueSBwYXJ0IG9mIHRoZSBwYXRoIGlzIG5vdCBhbiBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwU2V0KHg6IGFueSwgcGF0aDogc3RyaW5nW10sIHZhbHVlOiBhbnkpIHtcbiAgcGF0aCA9IHBhdGguc2xpY2UoKTtcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdFbXB0eVBhdGgnLCAnUGF0aCBtYXkgbm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICB3aGlsZSAocGF0aC5sZW5ndGggPiAxICYmIGlzT2JqZWN0KHgpKSB7XG4gICAgY29uc3Qga2V5ID0gcGF0aC5zaGlmdCgpITtcblxuICAgIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIShrZXkgaW4geCkpIHtcbiAgICAgIHhba2V5XSA9IHt9O1xuICAgIH1cbiAgICB4ID0geFtrZXldO1xuICB9XG5cbiAgaWYgKCFpc09iamVjdCh4KSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0V4cGVjdGVkT2JqZWN0JywgYEV4cGVjdGVkIGFuIG9iamVjdCwgZ290ICcke3h9J2ApO1xuICB9XG5cbiAgY29uc3QgZmluYWxLZXkgPSBwYXRoWzBdO1xuXG4gIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShmaW5hbEtleSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHhbZmluYWxLZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHhbZmluYWxLZXldO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIHRvIGRldGVjdCBwcm90b3R5cGUgcG9sbHV0aW5nIGtleXNcbiAqXG4gKiBBIGtleSBtYXRjaGluZyB0aGlzLCBNVVNUIE5PVCBiZSB1c2VkIGluIGFuIGFzc2lnbm1lbnQuXG4gKiBVc2UgdGhpcyB0byBjaGVjayB1c2VyLWlucHV0LlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXk6IHN0cmluZykge1xuICByZXR1cm4ga2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJztcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIHRvZ2V0aGVyXG4gKlxuICogVGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZC4gQXJyYXlzIGFyZSBub3QgbWVyZ2VkXG4gKiBidXQgb3ZlcndyaXR0ZW4ganVzdCBsaWtlIHNjYWxhcnMuXG4gKlxuICogSWYgYW4gb2JqZWN0IGlzIG1lcmdlZCBpbnRvIGEgbm9uLW9iamVjdCwgdGhlIG5vbi1vYmplY3QgaXMgbG9zdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSguLi5vYmplY3RzOiBBcnJheTxPYmo8YW55PiB8IHVuZGVmaW5lZD4pIHtcbiAgZnVuY3Rpb24gbWVyZ2VPbmUodGFyZ2V0OiBPYmo8YW55Piwgc291cmNlOiBPYmo8YW55Pikge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcbiAgICAgIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuXG4gICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGlmICghaXNPYmplY3QodGFyZ2V0W2tleV0pKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB7fTtcbiAgICAgICAgfSAvLyBPdmVyd3JpdGUgb24gcHVycG9zZVxuICAgICAgICBtZXJnZU9uZSh0YXJnZXRba2V5XSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3RoZXJzID0gb2JqZWN0cy5maWx0ZXIoeCA9PiB4ICE9IG51bGwpIGFzIEFycmF5PE9iajxhbnk+PjtcblxuICBpZiAob3RoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdCBpbnRvID0gb3RoZXJzLnNwbGljZSgwLCAxKVswXTtcblxuICBvdGhlcnMuZm9yRWFjaChvdGhlciA9PiBtZXJnZU9uZShpbnRvLCBvdGhlcikpO1xuICByZXR1cm4gaW50bztcbn1cblxuLyoqXG4gKiBTcGxpdHMgdGhlIGdpdmVuIG9iamVjdCBpbnRvIHR3bywgc3VjaCB0aGF0OlxuICpcbiAqIDEuIFRoZSBzaXplIG9mIHRoZSBmaXJzdCBvYmplY3QgKGFmdGVyIHN0cmluZ2lmaWVkIGluIFVURi04KSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIHNpemUgbGltaXQuXG4gKiAyLiBNZXJnaW5nIHRoZSB0d28gb2JqZWN0cyByZXN1bHRzIGluIHRoZSBvcmlnaW5hbCBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEJ5U2l6ZShkYXRhOiBhbnksIG1heFNpemVCeXRlczogbnVtYmVyKTogW2FueSwgYW55XSB7XG4gIGlmIChtYXhTaXplQnl0ZXMgPCAyKSB7XG4gICAgLy8gSXQncyBpbXBvc3NpYmxlIHRvIGZpdCBhbnl0aGluZyBpbiB0aGUgZmlyc3Qgb2JqZWN0XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGRhdGFdO1xuICB9XG4gIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhkYXRhKTtcbiAgcmV0dXJuIHJlY3Vyc2UoMCwgMCk7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZShpbmRleDogbnVtYmVyLCBydW5uaW5nVG90YWxTaXplOiBudW1iZXIpOiBbYW55LCBhbnldIHtcbiAgICBpZiAoaW5kZXggPj0gZW50cmllcy5sZW5ndGgpIHtcbiAgICAgIC8vIEV2ZXJ5dGhpbmcgZml0cyBpbiB0aGUgZmlyc3Qgb2JqZWN0XG4gICAgICByZXR1cm4gW2RhdGEsIHVuZGVmaW5lZF07XG4gICAgfVxuXG4gICAgY29uc3Qgc2l6ZSA9IHJ1bm5pbmdUb3RhbFNpemUgKyBlbnRyeVNpemUoZW50cmllc1tpbmRleF0pO1xuICAgIHJldHVybiAoc2l6ZSA+IG1heFNpemVCeXRlcykgPyBjdXRBdChpbmRleCkgOiByZWN1cnNlKGluZGV4ICsgMSwgc2l6ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBlbnRyeVNpemUoZW50cnk6IFtzdHJpbmcsIHVua25vd25dKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5ieXRlTGVuZ3RoKEpTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyhbZW50cnldKSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3V0QXQoaW5kZXg6IG51bWJlcik6IFthbnksIGFueV0ge1xuICAgIHJldHVybiBbXG4gICAgICBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcy5zbGljZSgwLCBpbmRleCkpLFxuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKGVudHJpZXMuc2xpY2UoaW5kZXgpKSxcbiAgICBdO1xuICB9XG59XG5cbnR5cGUgRXhjbHVkZSA9IHsgW2tleTogc3RyaW5nXTogRXhjbHVkZSB8IHRydWUgfTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybXMgYWxsIGtleXMgKHJlY3Vyc2l2ZWx5KSBpbiB0aGUgcHJvdmlkZWQgYHZhbGAgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB2YWwgLSBUaGUgb2JqZWN0IHdob3NlIGtleXMgbmVlZCB0byBiZSB0cmFuc2Zvcm1lZC5cbiAqIEBwYXJhbSB0cmFuc2Zvcm0gLSBUaGUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gZWFjaCBrZXkuXG4gKiBAcGFyYW0gZXhjbHVkZSAtIFRoZSBrZXlzIHRoYXQgd2lsbCBub3QgYmUgdHJhbnNmb3JtZWQgYW5kIGNvcGllZCB0byBvdXRwdXQgZGlyZWN0bHlcbiAqIEByZXR1cm5zIEEgbmV3IG9iamVjdCB3aXRoIHRoZSBzYW1lIHZhbHVlcyBhcyBgdmFsYCwgYnV0IHdpdGggYWxsIGtleXMgdHJhbnNmb3JtZWQgYWNjb3JkaW5nIHRvIGB0cmFuc2Zvcm1gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtT2JqZWN0S2V5cyh2YWw6IGFueSwgdHJhbnNmb3JtOiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZywgZXhjbHVkZTogRXhjbHVkZSA9IHt9KTogYW55IHtcbiAgaWYgKHZhbCA9PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgLy8gRm9yIGFycmF5cyB3ZSBqdXN0IHBhc3MgcGFyZW50J3MgZXhjbHVkZSBvYmplY3QgZGlyZWN0bHlcbiAgICAvLyBzaW5jZSBpdCBtYWtlcyBubyBzZW5zZSB0byBzcGVjaWZ5IGRpZmZlcmVudCBleGNsdWRlIG9wdGlvbnMgZm9yIGVhY2ggYXJyYXkgZWxlbWVudFxuICAgIHJldHVybiB2YWwubWFwKChpbnB1dDogYW55KSA9PiB0cmFuc2Zvcm1PYmplY3RLZXlzKGlucHV0LCB0cmFuc2Zvcm0sIGV4Y2x1ZGUpKTtcbiAgfVxuICBjb25zdCByZXQ6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbCkpIHtcbiAgICBjb25zdCBjaGlsZEV4Y2x1ZGUgPSBleGNsdWRlW2tdO1xuICAgIGlmIChjaGlsZEV4Y2x1ZGUgPT09IHRydWUpIHtcbiAgICAgIC8vIHdlIGRvbid0IHRyYW5zZm9ybSB0aGlzIG9iamVjdCBpZiB0aGUga2V5IGlzIHNwZWNpZmllZCBpbiBleGNsdWRlXG4gICAgICByZXRbdHJhbnNmb3JtKGspXSA9IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldFt0cmFuc2Zvcm0oayldID0gdHJhbnNmb3JtT2JqZWN0S2V5cyh2LCB0cmFuc2Zvcm0sIGNoaWxkRXhjbHVkZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBhIGRpY3Rpb25hcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vVW5kZWZpbmVkPEE+KHhzOiBSZWNvcmQ8c3RyaW5nLCBBPik6IFJlY29yZDxzdHJpbmcsIE5vbk51bGxhYmxlPEE+PiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoeHMpLmZpbHRlcigoW18sIHZdKSA9PiB2ICE9PSB1bmRlZmluZWQpKSBhcyBhbnk7XG59XG4iXX0=",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parallelPromises = parallelPromises;\n/**\n * Run a number of promise generators with max parallelism\n *\n * Order is not maintained between the input and output.\n */\nasync function parallelPromises(n, promises) {\n const ret = new Array();\n let count = 0;\n let error;\n const queue = [...promises];\n return new Promise((ok, ko) => {\n tick();\n function tick() {\n if (count === 0 && error) {\n ko(error);\n return;\n }\n if (count === 0 && queue.length === 0) {\n ok(ret);\n return;\n }\n while (count < n && queue.length > 0 && !error) {\n const next = queue.shift();\n if (next !== undefined) {\n start(next);\n }\n }\n }\n function start(fn) {\n count += 1;\n fn()\n .then((result) => {\n ret.push(result);\n })\n .catch((e) => {\n error = e;\n })\n .finally(() => {\n count -= 1;\n tick();\n });\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJhbGxlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLDRDQTBDQztBQS9DRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUFJLENBQVMsRUFBRSxRQUFpQztJQUNwRixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBSyxDQUFDO0lBQzNCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksS0FBd0IsQ0FBQztJQUM3QixNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFFNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUM1QixJQUFJLEVBQUUsQ0FBQztRQUVQLFNBQVMsSUFBSTtZQUNYLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNWLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDUixPQUFPO1lBQ1QsQ0FBQztZQUVELE9BQU8sS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMvQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsU0FBUyxLQUFLLENBQUMsRUFBb0I7WUFDakMsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNYLEVBQUUsRUFBRTtpQkFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDO2lCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDWCxJQUFJLEVBQUUsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnVuIGEgbnVtYmVyIG9mIHByb21pc2UgZ2VuZXJhdG9ycyB3aXRoIG1heCBwYXJhbGxlbGlzbVxuICpcbiAqIE9yZGVyIGlzIG5vdCBtYWludGFpbmVkIGJldHdlZW4gdGhlIGlucHV0IGFuZCBvdXRwdXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJhbGxlbFByb21pc2VzPEE+KG46IG51bWJlciwgcHJvbWlzZXM6IEFycmF5PCgpID0+IFByb21pc2U8QT4+KTogUHJvbWlzZTxBcnJheTxBPj4ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8QT4oKTtcbiAgbGV0IGNvdW50ID0gMDtcbiAgbGV0IGVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgY29uc3QgcXVldWUgPSBbLi4ucHJvbWlzZXNdO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGtvKSA9PiB7XG4gICAgdGljaygpO1xuXG4gICAgZnVuY3Rpb24gdGljaygpIHtcbiAgICAgIGlmIChjb3VudCA9PT0gMCAmJiBlcnJvcikge1xuICAgICAgICBrbyhlcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChjb3VudCA9PT0gMCAmJiBxdWV1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgb2socmV0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoY291bnQgPCBuICYmIHF1ZXVlLmxlbmd0aCA+IDAgJiYgIWVycm9yKSB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBxdWV1ZS5zaGlmdCgpO1xuICAgICAgICBpZiAobmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3RhcnQobmV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdGFydChmbjogKCkgPT4gUHJvbWlzZTxBPikge1xuICAgICAgY291bnQgKz0gMTtcbiAgICAgIGZuKClcbiAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJldC5wdXNoKHJlc3VsdCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIGVycm9yID0gZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIGNvdW50IC09IDE7XG4gICAgICAgICAgdGljaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.promiseWithResolvers = promiseWithResolvers;\n/**\n * A backport of Promiser.withResolvers\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers\n */\nfunction promiseWithResolvers() {\n let resolve, reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve: resolve, reject: reject };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9taXNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLG9EQU9DO0FBWkQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQjtJQUNsQyxJQUFJLE9BQTBDLEVBQUUsTUFBd0MsQ0FBQztJQUN6RixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMxQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ2QsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBUSxFQUFFLE1BQU0sRUFBRSxNQUFPLEVBQUUsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGJhY2twb3J0IG9mIFByb21pc2VyLndpdGhSZXNvbHZlcnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1Byb21pc2Uvd2l0aFJlc29sdmVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvbWlzZVdpdGhSZXNvbHZlcnM8QT4oKTogUHJvbWlzZUFuZFJlc29sdmVyczxBPiB7XG4gIGxldCByZXNvbHZlOiBQcm9taXNlQW5kUmVzb2x2ZXJzPEE+WydyZXNvbHZlJ10sIHJlamVjdDogUHJvbWlzZUFuZFJlc29sdmVyczxBPlsncmVqZWN0J107XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxBPigocmVzLCByZWopID0+IHtcbiAgICByZXNvbHZlID0gcmVzO1xuICAgIHJlamVjdCA9IHJlajtcbiAgfSk7XG4gIHJldHVybiB7IHByb21pc2UsIHJlc29sdmU6IHJlc29sdmUhLCByZWplY3Q6IHJlamVjdCEgfTtcbn1cblxuaW50ZXJmYWNlIFByb21pc2VBbmRSZXNvbHZlcnM8QT4ge1xuICBwcm9taXNlOiBQcm9taXNlPEE+O1xuICByZXNvbHZlOiAodmFsdWU6IEEpID0+IHZvaWQ7XG4gIHJlamVjdDogKHJlYXNvbjogYW55KSA9PiB2b2lkO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toYAML = toYAML;\nexports.deserializeStructure = deserializeStructure;\nexports.serializeStructure = serializeStructure;\nexports.loadStructuredFile = loadStructuredFile;\nexports.obscureTemplate = obscureTemplate;\nexports.replacerBufferWithInfo = replacerBufferWithInfo;\nconst fs = require(\"fs/promises\");\nconst bytes_1 = require(\"./bytes\");\nconst yaml_cfn = require(\"./yaml-cfn\");\n/**\n * Stringify to YAML\n */\nfunction toYAML(obj) {\n return yaml_cfn.serialize(obj);\n}\n/**\n * Parse either YAML or JSON\n */\nfunction deserializeStructure(str) {\n return yaml_cfn.deserialize(str);\n}\n/**\n * Serialize to either YAML or JSON\n */\nfunction serializeStructure(object, json) {\n if (json) {\n return JSON.stringify(object, undefined, 2);\n }\n else {\n return toYAML(object);\n }\n}\n/**\n * Load a YAML or JSON file from disk\n */\nasync function loadStructuredFile(fileName) {\n const contents = await fs.readFile(fileName, { encoding: 'utf-8' });\n return deserializeStructure(contents);\n}\n/**\n * Remove any template elements that we don't want to show users.\n */\nfunction obscureTemplate(template = {}) {\n if (template.Rules) {\n // see https://github.com/aws/aws-cdk/issues/17942\n if (template.Rules.CheckBootstrapVersion) {\n if (Object.keys(template.Rules).length > 1) {\n delete template.Rules.CheckBootstrapVersion;\n }\n else {\n delete template.Rules;\n }\n }\n }\n return template;\n}\n/**\n * Detects a buffer that has been converted to a JSON-like object\n * In Node, `Buffer`s have `toJSON()` method that converts the buffer\n * into a JS object that can be JSON stringified.\n * Unfortunately this conversion happens before the replacer is called,\n * so normal means of detecting a `Buffer` objet don't work anymore.\n * @see https://github.com/nodejs/node-v0.x-archive/issues/5110\n */\nfunction isJsonBuffer(value) {\n return typeof value === 'object'\n && 'type' in value\n && value.type === 'Buffer'\n && 'data' in value\n && Array.isArray(value.data);\n}\n/**\n * A JSON.stringify() replacer that converts Buffers into a string with information\n * Use this if you plan to print out JSON stringified objects that may contain a Buffer.\n * Without this, large buffers (think: Megabytes) will completely fill up the output\n * and even crash the system.\n */\nfunction replacerBufferWithInfo(_key, value) {\n if (isJsonBuffer(value)) {\n return ``;\n }\n return value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esd0JBRUM7QUFLRCxvREFFQztBQUtELGdEQU1DO0FBS0QsZ0RBR0M7QUFLRCwwQ0FhQztBQTJCRCx3REFLQztBQXJGRCxrQ0FBa0M7QUFDbEMsbUNBQXNDO0FBQ3RDLHVDQUF1QztBQUV2Qzs7R0FFRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxHQUFRO0lBQzdCLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxHQUFXO0lBQzlDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxNQUFXLEVBQUUsSUFBYTtJQUMzRCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWdCO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwRSxPQUFPLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxXQUFnQixFQUFFO0lBQ2hELElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLGtEQUFrRDtRQUNsRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1lBQzlDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFVO0lBSTlCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUTtXQUMzQixNQUFNLElBQUksS0FBSztXQUNmLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtXQUN2QixNQUFNLElBQUksS0FBSztXQUNmLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLElBQVMsRUFBRSxLQUFVO0lBQzFELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxZQUFZLElBQUEsbUJBQVcsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCB7IGZvcm1hdEJ5dGVzIH0gZnJvbSAnLi9ieXRlcyc7XG5pbXBvcnQgKiBhcyB5YW1sX2NmbiBmcm9tICcuL3lhbWwtY2ZuJztcblxuLyoqXG4gKiBTdHJpbmdpZnkgdG8gWUFNTFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9ZQU1MKG9iajogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHlhbWxfY2ZuLnNlcmlhbGl6ZShvYmopO1xufVxuXG4vKipcbiAqIFBhcnNlIGVpdGhlciBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplU3RydWN0dXJlKHN0cjogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHlhbWxfY2ZuLmRlc2VyaWFsaXplKHN0cik7XG59XG5cbi8qKlxuICogU2VyaWFsaXplIHRvIGVpdGhlciBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVN0cnVjdHVyZShvYmplY3Q6IGFueSwganNvbjogYm9vbGVhbikge1xuICBpZiAoanNvbikge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmplY3QsIHVuZGVmaW5lZCwgMik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRvWUFNTChvYmplY3QpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZCBhIFlBTUwgb3IgSlNPTiBmaWxlIGZyb20gZGlza1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN0cnVjdHVyZWRGaWxlKGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlTmFtZSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgcmV0dXJuIGRlc2VyaWFsaXplU3RydWN0dXJlKGNvbnRlbnRzKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYW55IHRlbXBsYXRlIGVsZW1lbnRzIHRoYXQgd2UgZG9uJ3Qgd2FudCB0byBzaG93IHVzZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb2JzY3VyZVRlbXBsYXRlKHRlbXBsYXRlOiBhbnkgPSB7fSkge1xuICBpZiAodGVtcGxhdGUuUnVsZXMpIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNzk0MlxuICAgIGlmICh0ZW1wbGF0ZS5SdWxlcy5DaGVja0Jvb3RzdHJhcFZlcnNpb24pIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyh0ZW1wbGF0ZS5SdWxlcykubGVuZ3RoID4gMSkge1xuICAgICAgICBkZWxldGUgdGVtcGxhdGUuUnVsZXMuQ2hlY2tCb290c3RyYXBWZXJzaW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHRlbXBsYXRlLlJ1bGVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZW1wbGF0ZTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIGEgYnVmZmVyIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgSlNPTi1saWtlIG9iamVjdFxuICogSW4gTm9kZSwgYEJ1ZmZlcmBzIGhhdmUgYHRvSlNPTigpYCBtZXRob2QgdGhhdCBjb252ZXJ0cyB0aGUgYnVmZmVyXG4gKiBpbnRvIGEgSlMgb2JqZWN0IHRoYXQgY2FuIGJlIEpTT04gc3RyaW5naWZpZWQuXG4gKiBVbmZvcnR1bmF0ZWx5IHRoaXMgY29udmVyc2lvbiBoYXBwZW5zIGJlZm9yZSB0aGUgcmVwbGFjZXIgaXMgY2FsbGVkLFxuICogc28gbm9ybWFsIG1lYW5zIG9mIGRldGVjdGluZyBhIGBCdWZmZXJgIG9iamV0IGRvbid0IHdvcmsgYW55bW9yZS5cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlLXYwLngtYXJjaGl2ZS9pc3N1ZXMvNTExMFxuICovXG5mdW5jdGlvbiBpc0pzb25CdWZmZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIHtcbiAgdHlwZTogJ0J1ZmZlcic7XG4gIGRhdGE6IG51bWJlcltdO1xufSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG4gICAgJiYgJ3R5cGUnIGluIHZhbHVlXG4gICAgJiYgdmFsdWUudHlwZSA9PT0gJ0J1ZmZlcidcbiAgICAmJiAnZGF0YScgaW4gdmFsdWVcbiAgICAmJiBBcnJheS5pc0FycmF5KHZhbHVlLmRhdGEpO1xufVxuXG4vKipcbiAqIEEgSlNPTi5zdHJpbmdpZnkoKSByZXBsYWNlciB0aGF0IGNvbnZlcnRzIEJ1ZmZlcnMgaW50byBhIHN0cmluZyB3aXRoIGluZm9ybWF0aW9uXG4gKiBVc2UgdGhpcyBpZiB5b3UgcGxhbiB0byBwcmludCBvdXQgSlNPTiBzdHJpbmdpZmllZCBvYmplY3RzIHRoYXQgbWF5IGNvbnRhaW4gYSBCdWZmZXIuXG4gKiBXaXRob3V0IHRoaXMsIGxhcmdlIGJ1ZmZlcnMgKHRoaW5rOiBNZWdhYnl0ZXMpIHdpbGwgY29tcGxldGVseSBmaWxsIHVwIHRoZSBvdXRwdXRcbiAqIGFuZCBldmVuIGNyYXNoIHRoZSBzeXN0ZW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlckJ1ZmZlcldpdGhJbmZvKF9rZXk6IGFueSwgdmFsdWU6IGFueSk6IGFueSB7XG4gIGlmIChpc0pzb25CdWZmZXIodmFsdWUpKSB7XG4gICAgcmV0dXJuIGA8QnVmZmVyOiAke2Zvcm1hdEJ5dGVzKHZhbHVlLmRhdGEubGVuZ3RoKX0+YDtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.equalSets = equalSets;\nexports.setDiff = setDiff;\n/**\n * Are two sets equal to each other\n */\nfunction equalSets(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const x of a) {\n if (!b.has(x)) {\n return false;\n }\n }\n return true;\n}\nfunction setDiff(a, b) {\n return new Set(Array.from(a).filter(x => !b.has(x)));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4QkFVQztBQUVELDBCQUVDO0FBakJEOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFJLENBQVMsRUFBRSxDQUFTO0lBQy9DLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLE9BQU8sQ0FBSSxDQUFTLEVBQUUsQ0FBUztJQUM3QyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcmUgdHdvIHNldHMgZXF1YWwgdG8gZWFjaCBvdGhlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxTZXRzPEE+KGE6IFNldDxBPiwgYjogU2V0PEE+KSB7XG4gIGlmIChhLnNpemUgIT09IGIuc2l6ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmb3IgKGNvbnN0IHggb2YgYSkge1xuICAgIGlmICghYi5oYXMoeCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXREaWZmPEE+KGE6IFNldDxBPiwgYjogU2V0PEE+KSB7XG4gIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20oYSkuZmlsdGVyKHggPT4gIWIuaGFzKHgpKSk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCI = isCI;\nexports.isTTY = isTTY;\n/**\n * Returns true if the current process is running in a CI environment\n * @returns true if the current process is running in a CI environment\n */\nfunction isCI() {\n return process.env.CI !== undefined && process.env.CI !== 'false' && process.env.CI !== '0';\n}\n/**\n * Returns true if the current process is running in a TTY environment\n * @returns true if the current process is running in a TTY environment\n */\nfunction isTTY() {\n return process.stdout.isTTY ?? false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2hlbGwtZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsb0JBRUM7QUFNRCxzQkFFQztBQWREOzs7R0FHRztBQUNILFNBQWdCLElBQUk7SUFDbEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQztBQUM5RixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsS0FBSztJQUNuQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBpcyBydW5uaW5nIGluIGEgQ0kgZW52aXJvbm1lbnRcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBpcyBydW5uaW5nIGluIGEgQ0kgZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ0koKTogYm9vbGVhbiB7XG4gIHJldHVybiBwcm9jZXNzLmVudi5DSSAhPT0gdW5kZWZpbmVkICYmIHByb2Nlc3MuZW52LkNJICE9PSAnZmFsc2UnICYmIHByb2Nlc3MuZW52LkNJICE9PSAnMCc7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IHByb2Nlc3MgaXMgcnVubmluZyBpbiBhIFRUWSBlbnZpcm9ubWVudFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBwcm9jZXNzIGlzIHJ1bm5pbmcgaW4gYSBUVFkgZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVFRZKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcy5zdGRvdXQuaXNUVFkgPz8gZmFsc2U7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.padLeft = padLeft;\nexports.padRight = padRight;\nexports.formatTime = formatTime;\nexports.lowerCaseFirstCharacter = lowerCaseFirstCharacter;\nexports.formatReason = formatReason;\n/**\n * Pad 's' on the left with 'char' until it is n characters wide\n */\nfunction padLeft(n, x, char = ' ') {\n return char.repeat(Math.max(0, n - x.length)) + x;\n}\n/**\n * Pad 's' on the right with 'char' until it is n characters wide\n */\nfunction padRight(n, x, char = ' ') {\n return x + char.repeat(Math.max(0, n - x.length));\n}\n/**\n * Formats time in milliseconds (which we get from 'Date.getTime()')\n * to a human-readable time; returns time in seconds rounded to 2\n * decimal places.\n */\nfunction formatTime(num) {\n return roundPercentage(millisecondsToSeconds(num));\n}\n/**\n * Rounds a decimal number to two decimal points.\n * The function is useful for fractions that need to be outputted as percentages.\n */\nfunction roundPercentage(num) {\n return Math.round(100 * num) / 100;\n}\n/**\n * Given a time in milliseconds, return an equivalent amount in seconds.\n */\nfunction millisecondsToSeconds(num) {\n return num / 1000;\n}\n/**\n * This function lower cases the first character of the string provided.\n */\nfunction lowerCaseFirstCharacter(str) {\n return str.length > 0 ? `${str[0].toLowerCase()}${str.slice(1)}` : str;\n}\n/**\n * Returns the provided reason or a default fallback message if the reason is undefined, null, or empty.\n * This is commonly used for AWS API responses that may not always provide a reason field.\n */\nfunction formatReason(reason, fallback = 'No reason provided') {\n return reason?.trim() || fallback;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLW1hbmlwdWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmluZy1tYW5pcHVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSwwQkFFQztBQUtELDRCQUVDO0FBT0QsZ0NBRUM7QUFvQkQsMERBRUM7QUFNRCxvQ0FFQztBQW5ERDs7R0FFRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLE9BQWUsR0FBRztJQUM5RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxPQUFlLEdBQUc7SUFDL0QsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixVQUFVLENBQUMsR0FBVztJQUNwQyxPQUFPLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxHQUFXO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMscUJBQXFCLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsR0FBVztJQUNqRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUN6RSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWlDLEVBQUUsV0FBbUIsb0JBQW9CO0lBQ3JHLE9BQU8sTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYWQgJ3MnIG9uIHRoZSBsZWZ0IHdpdGggJ2NoYXInIHVudGlsIGl0IGlzIG4gY2hhcmFjdGVycyB3aWRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWRMZWZ0KG46IG51bWJlciwgeDogc3RyaW5nLCBjaGFyOiBzdHJpbmcgPSAnICcpOiBzdHJpbmcge1xuICByZXR1cm4gY2hhci5yZXBlYXQoTWF0aC5tYXgoMCwgbiAtIHgubGVuZ3RoKSkgKyB4O1xufVxuXG4vKipcbiAqIFBhZCAncycgb24gdGhlIHJpZ2h0IHdpdGggJ2NoYXInIHVudGlsIGl0IGlzIG4gY2hhcmFjdGVycyB3aWRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWRSaWdodChuOiBudW1iZXIsIHg6IHN0cmluZywgY2hhcjogc3RyaW5nID0gJyAnKTogc3RyaW5nIHtcbiAgcmV0dXJuIHggKyBjaGFyLnJlcGVhdChNYXRoLm1heCgwLCBuIC0geC5sZW5ndGgpKTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIHRpbWUgaW4gbWlsbGlzZWNvbmRzICh3aGljaCB3ZSBnZXQgZnJvbSAnRGF0ZS5nZXRUaW1lKCknKVxuICogdG8gYSBodW1hbi1yZWFkYWJsZSB0aW1lOyByZXR1cm5zIHRpbWUgaW4gc2Vjb25kcyByb3VuZGVkIHRvIDJcbiAqIGRlY2ltYWwgcGxhY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZShudW06IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiByb3VuZFBlcmNlbnRhZ2UobWlsbGlzZWNvbmRzVG9TZWNvbmRzKG51bSkpO1xufVxuXG4vKipcbiAqIFJvdW5kcyBhIGRlY2ltYWwgbnVtYmVyIHRvIHR3byBkZWNpbWFsIHBvaW50cy5cbiAqIFRoZSBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIGZyYWN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgb3V0cHV0dGVkIGFzIHBlcmNlbnRhZ2VzLlxuICovXG5mdW5jdGlvbiByb3VuZFBlcmNlbnRhZ2UobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5yb3VuZCgxMDAgKiBudW0pIC8gMTAwO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgdGltZSBpbiBtaWxsaXNlY29uZHMsIHJldHVybiBhbiBlcXVpdmFsZW50IGFtb3VudCBpbiBzZWNvbmRzLlxuICovXG5mdW5jdGlvbiBtaWxsaXNlY29uZHNUb1NlY29uZHMobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gbnVtIC8gMTAwMDtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGxvd2VyIGNhc2VzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvd2VyQ2FzZUZpcnN0Q2hhcmFjdGVyKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5sZW5ndGggPiAwID8gYCR7c3RyWzBdLnRvTG93ZXJDYXNlKCl9JHtzdHIuc2xpY2UoMSl9YCA6IHN0cjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwcm92aWRlZCByZWFzb24gb3IgYSBkZWZhdWx0IGZhbGxiYWNrIG1lc3NhZ2UgaWYgdGhlIHJlYXNvbiBpcyB1bmRlZmluZWQsIG51bGwsIG9yIGVtcHR5LlxuICogVGhpcyBpcyBjb21tb25seSB1c2VkIGZvciBBV1MgQVBJIHJlc3BvbnNlcyB0aGF0IG1heSBub3QgYWx3YXlzIHByb3ZpZGUgYSByZWFzb24gZmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWFzb24ocmVhc29uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLCBmYWxsYmFjazogc3RyaW5nID0gJ05vIHJlYXNvbiBwcm92aWRlZCcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVhc29uPy50cmltKCkgfHwgZmFsbGJhY2s7XG59XG4iXX0=","\"use strict\";\n/**\n * Type branding\n *\n * This allows marking certain types as having gone through particular operations.\n *\n * Branded types can be used anywhere the base type is expected, but the base type\n * cannot be used where a branded type is expected; the values have to go through\n * a type assertion operation to confirm their brand.\n *\n * Usage:\n *\n * ```\n * type ValidatedString = Branded;\n *\n * function validate(x: string): asserts x is ValidatedString {\n * // ... throw an error if not\n * }\n *\n * function isValid(x: string): x is ValidatedString {\n * // ... throw an error if not\n * }\n * ```\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBranded = createBranded;\n/**\n * Marks a value as being branded a certain way.\n *\n * You should in general avoid calling this, and use validation or\n * asserting functions instead. However, this can be useful to produce\n * values which are branded by construction (really just an elaborate\n * way to write 'as').\n */\n/* c8 ignore start */\nfunction createBranded(value) {\n return value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1icmFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLWJyYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7O0FBa0JILHNDQUVDO0FBWEQ7Ozs7Ozs7R0FPRztBQUNILHFCQUFxQjtBQUNyQixTQUFnQixhQUFhLENBQThCLEtBQTZCO0lBQ3RGLE9BQU8sS0FBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUgYnJhbmRpbmdcbiAqXG4gKiBUaGlzIGFsbG93cyBtYXJraW5nIGNlcnRhaW4gdHlwZXMgYXMgaGF2aW5nIGdvbmUgdGhyb3VnaCBwYXJ0aWN1bGFyIG9wZXJhdGlvbnMuXG4gKlxuICogQnJhbmRlZCB0eXBlcyBjYW4gYmUgdXNlZCBhbnl3aGVyZSB0aGUgYmFzZSB0eXBlIGlzIGV4cGVjdGVkLCBidXQgdGhlIGJhc2UgdHlwZVxuICogY2Fubm90IGJlIHVzZWQgd2hlcmUgYSBicmFuZGVkIHR5cGUgaXMgZXhwZWN0ZWQ7IHRoZSB2YWx1ZXMgaGF2ZSB0byBnbyB0aHJvdWdoXG4gKiBhIHR5cGUgYXNzZXJ0aW9uIG9wZXJhdGlvbiB0byBjb25maXJtIHRoZWlyIGJyYW5kLlxuICpcbiAqIFVzYWdlOlxuICpcbiAqIGBgYFxuICogdHlwZSBWYWxpZGF0ZWRTdHJpbmcgPSBCcmFuZGVkPHN0cmluZywgJ1Bhc3NlZE15VmFsaWRhdGlvbic+O1xuICpcbiAqIGZ1bmN0aW9uIHZhbGlkYXRlKHg6IHN0cmluZyk6IGFzc2VydHMgeCBpcyBWYWxpZGF0ZWRTdHJpbmcge1xuICogICAvLyAuLi4gdGhyb3cgYW4gZXJyb3IgaWYgbm90XG4gKiB9XG4gKlxuICogZnVuY3Rpb24gaXNWYWxpZCh4OiBzdHJpbmcpOiB4IGlzIFZhbGlkYXRlZFN0cmluZyB7XG4gKiAgIC8vIC4uLiB0aHJvdyBhbiBlcnJvciBpZiBub3RcbiAqIH1cbiAqIGBgYFxuICovXG5cbi8vIFRoaXMgY29uc3RydWN0IHB1cmVseSBoYXBwZW5zIGF0IHR5cGUgY2hlY2tpbmcgdGltZS4gVGhlcmUgaXMgbm8gcnVuLXRpbWUgaW1wYWN0LlxuLy8gSGVuY2UsIHdlIG5ldmVyIGV2ZW4gaGF2ZSB0byBjb25zdHJ1Y3QgdmFsdWVzIG9mIHRoaXMgdHlwZS5cbmRlY2xhcmUgY29uc3QgX19icmFuZDogdW5pcXVlIHN5bWJvbDtcblxuZXhwb3J0IHR5cGUgQnJhbmQ8Qj4gPSB7IFtfX2JyYW5kXTogQiB9O1xuZXhwb3J0IHR5cGUgQnJhbmRlZDxULCBCPiA9IFQgJiBCcmFuZDxCPjtcblxuLyoqXG4gKiBNYXJrcyBhIHZhbHVlIGFzIGJlaW5nIGJyYW5kZWQgYSBjZXJ0YWluIHdheS5cbiAqXG4gKiBZb3Ugc2hvdWxkIGluIGdlbmVyYWwgYXZvaWQgY2FsbGluZyB0aGlzLCBhbmQgdXNlIHZhbGlkYXRpb24gb3JcbiAqIGFzc2VydGluZyBmdW5jdGlvbnMgaW5zdGVhZC4gSG93ZXZlciwgdGhpcyBjYW4gYmUgdXNlZnVsIHRvIHByb2R1Y2VcbiAqIHZhbHVlcyB3aGljaCBhcmUgYnJhbmRlZCBieSBjb25zdHJ1Y3Rpb24gKHJlYWxseSBqdXN0IGFuIGVsYWJvcmF0ZVxuICogd2F5IHRvIHdyaXRlICdhcycpLlxuICovXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCcmFuZGVkPEEgZXh0ZW5kcyBCcmFuZGVkPGFueSwgYW55Pj4odmFsdWU6IFR5cGVVbmRlcmx5aW5nQnJhbmQ8QT4pOiBBIHtcbiAgcmV0dXJuIHZhbHVlIGFzIEE7XG59XG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG50eXBlIFR5cGVVbmRlcmx5aW5nQnJhbmQ8QT4gPSBBIGV4dGVuZHMgQnJhbmRlZDxpbmZlciBULCBhbnk+ID8gVCA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArray = void 0;\nexports.isObject = isObject;\nexports.ifDefined = ifDefined;\n/**\n * Return whether the given value is an object\n *\n * Even though arrays technically are objects, we usually want to treat them differently,\n * so we return false in those cases.\n */\nfunction isObject(x) {\n return x !== null && typeof x === 'object' && !(0, exports.isArray)(x);\n}\n/**\n * Return whether the given value is an array\n */\nexports.isArray = Array.isArray;\n/**\n * Return the value of the first argument if it's not undefined, otherwise the default\n */\nfunction ifDefined(x, def) {\n return typeof x !== 'undefined' ? x : def;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsNEJBRUM7QUFVRCw4QkFFQztBQXBCRDs7Ozs7R0FLRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGVBQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBRXJDOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFJLENBQWdCLEVBQUUsR0FBTTtJQUNuRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZSBvZiBhIG1hcCBtYXBwaW5nIHN0cmluZ3MgdG8gc29tZSBhcmJpdHJhcnkgdHlwZVxuICpcbiAqIE5hbWUgaXMgbm90IGlkZWFsLCBidXQ6XG4gKlxuICogLSBDYW5ub3QgY2FsbCBpdCBPYmplY3QsIHRoYXQgYWxyZWFkeSBtZWFucyBzb21ldGhpbmcuXG4gKiAtIENhbm5vdCBjYWxsIGl0IERpY3Qgb3IgRGljdGlvbmFyeSwgc2luY2UgaW4gb3RoZXIgbGFuZ3VhZ2VzXG4gKiAgIHRob3NlIGFsc28gYWxsb3cgc3BlY2lmeWluZyB0aGUga2V5IHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIE9iajxUPiA9IHsgW2tleTogc3RyaW5nXTogVCB9O1xuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBvYmplY3RcbiAqXG4gKiBFdmVuIHRob3VnaCBhcnJheXMgdGVjaG5pY2FsbHkgYXJlIG9iamVjdHMsIHdlIHVzdWFsbHkgd2FudCB0byB0cmVhdCB0aGVtIGRpZmZlcmVudGx5LFxuICogc28gd2UgcmV0dXJuIGZhbHNlIGluIHRob3NlIGNhc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoeDogYW55KTogeCBpcyBPYmo8YW55PiB7XG4gIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAhaXNBcnJheSh4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IGlmIGl0J3Mgbm90IHVuZGVmaW5lZCwgb3RoZXJ3aXNlIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZkRlZmluZWQ8VD4oeDogVCB8IHVuZGVmaW5lZCwgZGVmOiBUKTogVCB7XG4gIHJldHVybiB0eXBlb2YgeCAhPT0gJ3VuZGVmaW5lZCcgPyB4IDogZGVmO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rangeFromSemver = rangeFromSemver;\nexports.stripCaret = stripCaret;\nconst semver = require(\"semver\");\nconst toolkit_error_1 = require(\"../toolkit/toolkit-error\");\nfunction rangeFromSemver(ver, targetType) {\n const re = ver.match(/^([^\\d]*)([\\d.]*)[^\\s]*$/);\n if (!re || !semver.valid(re[2])) {\n throw new toolkit_error_1.ToolkitError('InvalidSemverRange', 'not a semver or unsupported range syntax');\n }\n const prefixPart = re[1];\n const verPart = re[2];\n switch (targetType) {\n // NuGet normally installs the lowest version in the range\n // That's okay for aws-cdk-lib where we always specify the lowest version\n // For constructs, we rather want people to use the highest version\n // The only way to do this is to specify this as .*\n // see https://learn.microsoft.com/en-us/nuget/concepts/package-versioning\n case 'major.*':\n switch (prefixPart) {\n case '':\n // if there's no prefix and the remaining is a valid semver, there's no range specified\n return ver;\n case '^':\n return `${semver.major(verPart)}.*`;\n default:\n throw new toolkit_error_1.ToolkitError('UnsupportedRangeSyntax', `unsupported range syntax - ${prefixPart}`);\n }\n case 'bracket':\n switch (prefixPart) {\n case '':\n // if there's no prefix and the remaining is a valid semver, there's no range specified\n return ver;\n case '^':\n return `[${verPart},${semver.major(verPart) + 1}.0.0)`;\n default:\n throw new toolkit_error_1.ToolkitError('UnsupportedRangeSyntax', `unsupported range syntax - ${prefixPart}`);\n }\n case 'pep':\n switch (prefixPart) {\n case '':\n // if there's no prefix and the remaining is a valid semver, there's no range specified\n return `==${ver}`;\n case '^':\n return `>=${verPart},<${semver.major(verPart) + 1}.0.0`;\n default:\n throw new toolkit_error_1.ToolkitError('UnsupportedRangeSyntax', `unsupported range syntax - ${prefixPart}`);\n }\n }\n}\n/**\n * Strips a leading caret ^, if present\n */\nfunction stripCaret(ver) {\n return ver.startsWith('^') ? ver.slice(1) : ver;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24tcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSwwQ0E2Q0M7QUFLRCxnQ0FFQztBQTNERCxpQ0FBaUM7QUFDakMsNERBQXdEO0FBTXhELFNBQWdCLGVBQWUsQ0FBQyxHQUFXLEVBQUUsVUFBcUI7SUFDaEUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLDRCQUFZLENBQUMsb0JBQW9CLEVBQUUsMENBQTBDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0QixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLDBEQUEwRDtRQUMxRCx5RUFBeUU7UUFDekUsbUVBQW1FO1FBQ25FLDBEQUEwRDtRQUMxRCwwRUFBMEU7UUFDMUUsS0FBSyxTQUFTO1lBQ1osUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsS0FBSyxHQUFHO29CQUNOLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDO29CQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHdCQUF3QixFQUFFLDhCQUE4QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ2pHLENBQUM7UUFDSCxLQUFLLFNBQVM7WUFDWixRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLEVBQUU7b0JBQ0wsdUZBQXVGO29CQUN2RixPQUFPLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUc7b0JBQ04sT0FBTyxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsRUFBRSw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNqRyxDQUFDO1FBQ0gsS0FBSyxLQUFLO1lBQ1IsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLE9BQU8sS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsRUFBRSw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNqRyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8vIGJyYWNrZXQgLSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9taWRkbGV3YXJlLzEyMTIvY29yZS9NQVZFTi9tYXZlbl92ZXJzaW9uLmh0bSNNQVZFTjQwMVxuLy8gcGVwIC0gaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8jdmVyc2lvbi1zcGVjaWZpZXJzXG5leHBvcnQgdHlwZSBSYW5nZVR5cGUgPSAnYnJhY2tldCcgfCAnbWFqb3IuKicgfCAncGVwJyA7XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5nZUZyb21TZW12ZXIodmVyOiBzdHJpbmcsIHRhcmdldFR5cGU6IFJhbmdlVHlwZSkge1xuICBjb25zdCByZSA9IHZlci5tYXRjaCgvXihbXlxcZF0qKShbXFxkLl0qKVteXFxzXSokLyk7XG4gIGlmICghcmUgfHwgIXNlbXZlci52YWxpZChyZVsyXSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbnZhbGlkU2VtdmVyUmFuZ2UnLCAnbm90IGEgc2VtdmVyIG9yIHVuc3VwcG9ydGVkIHJhbmdlIHN5bnRheCcpO1xuICB9XG4gIGNvbnN0IHByZWZpeFBhcnQgPSByZVsxXTtcbiAgY29uc3QgdmVyUGFydCA9IHJlWzJdO1xuXG4gIHN3aXRjaCAodGFyZ2V0VHlwZSkge1xuICAgIC8vIE51R2V0IG5vcm1hbGx5IGluc3RhbGxzIHRoZSBsb3dlc3QgdmVyc2lvbiBpbiB0aGUgcmFuZ2VcbiAgICAvLyBUaGF0J3Mgb2theSBmb3IgYXdzLWNkay1saWIgd2hlcmUgd2UgYWx3YXlzIHNwZWNpZnkgdGhlIGxvd2VzdCB2ZXJzaW9uXG4gICAgLy8gRm9yIGNvbnN0cnVjdHMsIHdlIHJhdGhlciB3YW50IHBlb3BsZSB0byB1c2UgdGhlIGhpZ2hlc3QgdmVyc2lvblxuICAgIC8vIFRoZSBvbmx5IHdheSB0byBkbyB0aGlzIGlzIHRvIHNwZWNpZnkgdGhpcyBhcyA8TUFKT1I+LipcbiAgICAvLyBzZWUgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL251Z2V0L2NvbmNlcHRzL3BhY2thZ2UtdmVyc2lvbmluZ1xuICAgIGNhc2UgJ21ham9yLionOlxuICAgICAgc3dpdGNoIChwcmVmaXhQYXJ0KSB7XG4gICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBwcmVmaXggYW5kIHRoZSByZW1haW5pbmcgaXMgYSB2YWxpZCBzZW12ZXIsIHRoZXJlJ3Mgbm8gcmFuZ2Ugc3BlY2lmaWVkXG4gICAgICAgICAgcmV0dXJuIHZlcjtcbiAgICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgcmV0dXJuIGAke3NlbXZlci5tYWpvcih2ZXJQYXJ0KX0uKmA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5zdXBwb3J0ZWRSYW5nZVN5bnRheCcsIGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gICAgY2FzZSAnYnJhY2tldCc6XG4gICAgICBzd2l0Y2ggKHByZWZpeFBhcnQpIHtcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAvLyBpZiB0aGVyZSdzIG5vIHByZWZpeCBhbmQgdGhlIHJlbWFpbmluZyBpcyBhIHZhbGlkIHNlbXZlciwgdGhlcmUncyBubyByYW5nZSBzcGVjaWZpZWRcbiAgICAgICAgICByZXR1cm4gdmVyO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICByZXR1cm4gYFske3ZlclBhcnR9LCR7c2VtdmVyLm1ham9yKHZlclBhcnQpKzF9LjAuMClgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1Vuc3VwcG9ydGVkUmFuZ2VTeW50YXgnLCBgdW5zdXBwb3J0ZWQgcmFuZ2Ugc3ludGF4IC0gJHtwcmVmaXhQYXJ0fWApO1xuICAgICAgfVxuICAgIGNhc2UgJ3BlcCc6XG4gICAgICBzd2l0Y2ggKHByZWZpeFBhcnQpIHtcbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgICAvLyBpZiB0aGVyZSdzIG5vIHByZWZpeCBhbmQgdGhlIHJlbWFpbmluZyBpcyBhIHZhbGlkIHNlbXZlciwgdGhlcmUncyBubyByYW5nZSBzcGVjaWZpZWRcbiAgICAgICAgICByZXR1cm4gYD09JHt2ZXJ9YDtcbiAgICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgcmV0dXJuIGA+PSR7dmVyUGFydH0sPCR7c2VtdmVyLm1ham9yKHZlclBhcnQpKzF9LjAuMGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5zdXBwb3J0ZWRSYW5nZVN5bnRheCcsIGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTdHJpcHMgYSBsZWFkaW5nIGNhcmV0IF4sIGlmIHByZXNlbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQ2FyZXQodmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmVyLnN0YXJ0c1dpdGgoJ14nKSA/IHZlci5zbGljZSgxKSA6IHZlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serialize = serialize;\nexports.deserialize = deserialize;\nconst yaml = require(\"yaml\");\nconst yaml_types = require(\"yaml/types\");\n/**\n * Serializes the given data structure into valid YAML.\n *\n * @param obj - the data structure to serialize\n * @returns a string containing the YAML representation of {@param obj}\n */\nfunction serialize(obj) {\n const oldFold = yaml_types.strOptions.fold.lineWidth;\n try {\n yaml_types.strOptions.fold.lineWidth = 0;\n return yaml.stringify(obj, { schema: 'yaml-1.1' });\n }\n finally {\n yaml_types.strOptions.fold.lineWidth = oldFold;\n }\n}\n/**\n * Deserialize the YAML into the appropriate data structure.\n *\n * @param str - the string containing YAML\n * @returns the data structure the YAML represents\n * (most often in case of CloudFormation, an object)\n */\nfunction deserialize(str) {\n return parseYamlStrWithCfnTags(str);\n}\nfunction makeTagForCfnIntrinsic(intrinsicName, addFnPrefix) {\n return {\n identify(value) {\n return typeof value === 'string';\n },\n tag: `!${intrinsicName}`,\n resolve: (_doc, cstNode) => {\n const ret = {};\n ret[addFnPrefix ? `Fn::${intrinsicName}` : intrinsicName] =\n // the +1 is to account for the ! the short form begins with\n parseYamlStrWithCfnTags(cstNode.toString().substring(intrinsicName.length + 1));\n return ret;\n },\n };\n}\nconst shortForms = [\n 'Base64', 'Cidr', 'FindInMap', 'GetAZs', 'ImportValue', 'Join', 'Sub',\n 'Select', 'Split', 'Transform', 'And', 'Equals', 'If', 'Not', 'Or', 'GetAtt',\n].map(name => makeTagForCfnIntrinsic(name, true)).concat(makeTagForCfnIntrinsic('Ref', false), makeTagForCfnIntrinsic('Condition', false));\nfunction parseYamlStrWithCfnTags(text) {\n return yaml.parse(text, {\n customTags: shortForms,\n schema: 'core',\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC1jZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ5YW1sLWNmbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLDhCQVFDO0FBU0Qsa0NBRUM7QUE3QkQsNkJBQTZCO0FBRTdCLHlDQUF5QztBQUV6Qzs7Ozs7R0FLRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxHQUFRO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxJQUFJLENBQUM7UUFDSCxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO1lBQVMsQ0FBQztRQUNULFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDakQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixXQUFXLENBQUMsR0FBVztJQUNyQyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLGFBQXFCLEVBQUUsV0FBb0I7SUFDekUsT0FBTztRQUNMLFFBQVEsQ0FBQyxLQUFVO1lBQ2pCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO1FBQ25DLENBQUM7UUFDRCxHQUFHLEVBQUUsSUFBSSxhQUFhLEVBQUU7UUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBbUIsRUFBRSxPQUEwQixFQUFFLEVBQUU7WUFDM0QsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDdkQsNERBQTREO2dCQUM1RCx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFrQztJQUNoRCxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQ3JFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUTtDQUM3RSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDdEQsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUNwQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQzNDLENBQUM7QUFFRixTQUFTLHVCQUF1QixDQUFDLElBQVk7SUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtRQUN0QixVQUFVLEVBQUUsVUFBVTtRQUN0QixNQUFNLEVBQUUsTUFBTTtLQUNmLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHR5cGUgKiBhcyB5YW1sX2NzdCBmcm9tICd5YW1sL3BhcnNlLWNzdCc7XG5pbXBvcnQgKiBhcyB5YW1sX3R5cGVzIGZyb20gJ3lhbWwvdHlwZXMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIGRhdGEgc3RydWN0dXJlIGludG8gdmFsaWQgWUFNTC5cbiAqXG4gKiBAcGFyYW0gb2JqIC0gdGhlIGRhdGEgc3RydWN0dXJlIHRvIHNlcmlhbGl6ZVxuICogQHJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB7QHBhcmFtIG9ian1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShvYmo6IGFueSk6IHN0cmluZyB7XG4gIGNvbnN0IG9sZEZvbGQgPSB5YW1sX3R5cGVzLnN0ck9wdGlvbnMuZm9sZC5saW5lV2lkdGg7XG4gIHRyeSB7XG4gICAgeWFtbF90eXBlcy5zdHJPcHRpb25zLmZvbGQubGluZVdpZHRoID0gMDtcbiAgICByZXR1cm4geWFtbC5zdHJpbmdpZnkob2JqLCB7IHNjaGVtYTogJ3lhbWwtMS4xJyB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICB5YW1sX3R5cGVzLnN0ck9wdGlvbnMuZm9sZC5saW5lV2lkdGggPSBvbGRGb2xkO1xuICB9XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemUgdGhlIFlBTUwgaW50byB0aGUgYXBwcm9wcmlhdGUgZGF0YSBzdHJ1Y3R1cmUuXG4gKlxuICogQHBhcmFtIHN0ciAtIHRoZSBzdHJpbmcgY29udGFpbmluZyBZQU1MXG4gKiBAcmV0dXJucyB0aGUgZGF0YSBzdHJ1Y3R1cmUgdGhlIFlBTUwgcmVwcmVzZW50c1xuICogICAobW9zdCBvZnRlbiBpbiBjYXNlIG9mIENsb3VkRm9ybWF0aW9uLCBhbiBvYmplY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZShzdHI6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBwYXJzZVlhbWxTdHJXaXRoQ2ZuVGFncyhzdHIpO1xufVxuXG5mdW5jdGlvbiBtYWtlVGFnRm9yQ2ZuSW50cmluc2ljKGludHJpbnNpY05hbWU6IHN0cmluZywgYWRkRm5QcmVmaXg6IGJvb2xlYW4pOiB5YW1sX3R5cGVzLlNjaGVtYS5DdXN0b21UYWcge1xuICByZXR1cm4ge1xuICAgIGlkZW50aWZ5KHZhbHVlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xuICAgIH0sXG4gICAgdGFnOiBgISR7aW50cmluc2ljTmFtZX1gLFxuICAgIHJlc29sdmU6IChfZG9jOiB5YW1sLkRvY3VtZW50LCBjc3ROb2RlOiB5YW1sX2NzdC5DU1QuTm9kZSkgPT4ge1xuICAgICAgY29uc3QgcmV0OiBhbnkgPSB7fTtcbiAgICAgIHJldFthZGRGblByZWZpeCA/IGBGbjo6JHtpbnRyaW5zaWNOYW1lfWAgOiBpbnRyaW5zaWNOYW1lXSA9XG4gICAgICAgIC8vIHRoZSArMSBpcyB0byBhY2NvdW50IGZvciB0aGUgISB0aGUgc2hvcnQgZm9ybSBiZWdpbnMgd2l0aFxuICAgICAgICBwYXJzZVlhbWxTdHJXaXRoQ2ZuVGFncyhjc3ROb2RlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKGludHJpbnNpY05hbWUubGVuZ3RoICsgMSkpO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBzaG9ydEZvcm1zOiB5YW1sX3R5cGVzLlNjaGVtYS5DdXN0b21UYWdbXSA9IFtcbiAgJ0Jhc2U2NCcsICdDaWRyJywgJ0ZpbmRJbk1hcCcsICdHZXRBWnMnLCAnSW1wb3J0VmFsdWUnLCAnSm9pbicsICdTdWInLFxuICAnU2VsZWN0JywgJ1NwbGl0JywgJ1RyYW5zZm9ybScsICdBbmQnLCAnRXF1YWxzJywgJ0lmJywgJ05vdCcsICdPcicsICdHZXRBdHQnLFxuXS5tYXAobmFtZSA9PiBtYWtlVGFnRm9yQ2ZuSW50cmluc2ljKG5hbWUsIHRydWUpKS5jb25jYXQoXG4gIG1ha2VUYWdGb3JDZm5JbnRyaW5zaWMoJ1JlZicsIGZhbHNlKSxcbiAgbWFrZVRhZ0ZvckNmbkludHJpbnNpYygnQ29uZGl0aW9uJywgZmFsc2UpLFxuKTtcblxuZnVuY3Rpb24gcGFyc2VZYW1sU3RyV2l0aENmblRhZ3ModGV4dDogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHlhbWwucGFyc2UodGV4dCwge1xuICAgIGN1c3RvbVRhZ3M6IHNob3J0Rm9ybXMsXG4gICAgc2NoZW1hOiAnY29yZScsXG4gIH0pO1xufVxuIl19","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are prereleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If LT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n AwsCrc32.prototype.reset = function () {\n this.crc32 = new index_1.Crc32();\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n//# sourceMappingURL=aws_crc32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32c = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32c = /** @class */ (function () {\n function AwsCrc32c() {\n this.crc32c = new index_1.Crc32c();\n }\n AwsCrc32c.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32c.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32c.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32c.digest())];\n });\n });\n };\n AwsCrc32c.prototype.reset = function () {\n this.crc32c = new index_1.Crc32c();\n };\n return AwsCrc32c;\n}());\nexports.AwsCrc32c = AwsCrc32c;\n//# sourceMappingURL=aws_crc32c.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32c = exports.Crc32c = exports.crc32c = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32c(data) {\n return new Crc32c().update(data).digest();\n}\nexports.crc32c = crc32c;\nvar Crc32c = /** @class */ (function () {\n function Crc32c() {\n this.checksum = 0xffffffff;\n }\n Crc32c.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32c.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32c;\n}());\nexports.Crc32c = Crc32c;\n// prettier-ignore\nvar a_lookupTable = [\n 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookupTable);\nvar aws_crc32c_1 = require(\"./aws_crc32c\");\nObject.defineProperty(exports, \"AwsCrc32c\", { enumerable: true, get: function () { return aws_crc32c_1.AwsCrc32c; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_1 = require(\"@smithy/util-utf8\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=convertToBuffer.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=isEmptyData.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=numToUint8.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=uint32ArrayFrom.js.map","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n isArrayBuffer: () => isArrayBuffer\n});\nmodule.exports = __toCommonJS(src_exports);\nvar isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\", \"isArrayBuffer\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n isArrayBuffer\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromArrayBuffer: () => fromArrayBuffer,\n fromString: () => fromString\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\nvar import_buffer = require(\"buffer\");\nvar fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => {\n if (!(0, import_is_array_buffer.isArrayBuffer)(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return import_buffer.Buffer.from(input, offset, length);\n}, \"fromArrayBuffer\");\nvar fromString = /* @__PURE__ */ __name((input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? import_buffer.Buffer.from(input, encoding) : import_buffer.Buffer.from(input);\n}, \"fromString\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromArrayBuffer,\n fromString\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fromUtf8: () => fromUtf8,\n toUint8Array: () => toUint8Array,\n toUtf8: () => toUtf8\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fromUtf8.ts\nvar import_util_buffer_from = require(\"@smithy/util-buffer-from\");\nvar fromUtf8 = /* @__PURE__ */ __name((input) => {\n const buf = (0, import_util_buffer_from.fromString)(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n}, \"fromUtf8\");\n\n// src/toUint8Array.ts\nvar toUint8Array = /* @__PURE__ */ __name((data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}, \"toUint8Array\");\n\n// src/toUtf8.ts\n\nvar toUtf8 = /* @__PURE__ */ __name((input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n}, \"toUtf8\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromUtf8,\n toUint8Array,\n toUtf8\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultAppSyncHttpAuthSchemeProvider = exports.defaultAppSyncHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultAppSyncHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultAppSyncHttpAuthSchemeParametersProvider = defaultAppSyncHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"appsync\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultAppSyncHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultAppSyncHttpAuthSchemeProvider = defaultAppSyncHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://appsync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://appsync-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://appsync.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://appsync.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n ApiCacheStatus: () => ApiCacheStatus,\n ApiCacheType: () => ApiCacheType,\n ApiCachingBehavior: () => ApiCachingBehavior,\n ApiKeyLimitExceededException: () => ApiKeyLimitExceededException,\n ApiKeyValidityOutOfBoundsException: () => ApiKeyValidityOutOfBoundsException,\n ApiLimitExceededException: () => ApiLimitExceededException,\n AppSync: () => AppSync,\n AppSyncClient: () => AppSyncClient,\n AppSyncServiceException: () => AppSyncServiceException,\n AssociateApiCommand: () => AssociateApiCommand,\n AssociateMergedGraphqlApiCommand: () => AssociateMergedGraphqlApiCommand,\n AssociateSourceGraphqlApiCommand: () => AssociateSourceGraphqlApiCommand,\n AssociationStatus: () => AssociationStatus,\n AuthenticationType: () => AuthenticationType,\n AuthorizationType: () => AuthorizationType,\n BadRequestException: () => BadRequestException,\n BadRequestReason: () => BadRequestReason,\n CacheHealthMetricsConfig: () => CacheHealthMetricsConfig,\n ConcurrentModificationException: () => ConcurrentModificationException,\n ConflictDetectionType: () => ConflictDetectionType,\n ConflictException: () => ConflictException,\n ConflictHandlerType: () => ConflictHandlerType,\n CreateApiCacheCommand: () => CreateApiCacheCommand,\n CreateApiCommand: () => CreateApiCommand,\n CreateApiKeyCommand: () => CreateApiKeyCommand,\n CreateChannelNamespaceCommand: () => CreateChannelNamespaceCommand,\n CreateDataSourceCommand: () => CreateDataSourceCommand,\n CreateDomainNameCommand: () => CreateDomainNameCommand,\n CreateFunctionCommand: () => CreateFunctionCommand,\n CreateGraphqlApiCommand: () => CreateGraphqlApiCommand,\n CreateResolverCommand: () => CreateResolverCommand,\n CreateTypeCommand: () => CreateTypeCommand,\n DataSourceIntrospectionStatus: () => DataSourceIntrospectionStatus,\n DataSourceLevelMetricsBehavior: () => DataSourceLevelMetricsBehavior,\n DataSourceLevelMetricsConfig: () => DataSourceLevelMetricsConfig,\n DataSourceType: () => DataSourceType,\n DefaultAction: () => DefaultAction,\n DeleteApiCacheCommand: () => DeleteApiCacheCommand,\n DeleteApiCommand: () => DeleteApiCommand,\n DeleteApiKeyCommand: () => DeleteApiKeyCommand,\n DeleteChannelNamespaceCommand: () => DeleteChannelNamespaceCommand,\n DeleteDataSourceCommand: () => DeleteDataSourceCommand,\n DeleteDomainNameCommand: () => DeleteDomainNameCommand,\n DeleteFunctionCommand: () => DeleteFunctionCommand,\n DeleteGraphqlApiCommand: () => DeleteGraphqlApiCommand,\n DeleteResolverCommand: () => DeleteResolverCommand,\n DeleteTypeCommand: () => DeleteTypeCommand,\n DisassociateApiCommand: () => DisassociateApiCommand,\n DisassociateMergedGraphqlApiCommand: () => DisassociateMergedGraphqlApiCommand,\n DisassociateSourceGraphqlApiCommand: () => DisassociateSourceGraphqlApiCommand,\n EvaluateCodeCommand: () => EvaluateCodeCommand,\n EvaluateMappingTemplateCommand: () => EvaluateMappingTemplateCommand,\n EventLogLevel: () => EventLogLevel,\n FieldLogLevel: () => FieldLogLevel,\n FlushApiCacheCommand: () => FlushApiCacheCommand,\n GetApiAssociationCommand: () => GetApiAssociationCommand,\n GetApiCacheCommand: () => GetApiCacheCommand,\n GetApiCommand: () => GetApiCommand,\n GetChannelNamespaceCommand: () => GetChannelNamespaceCommand,\n GetDataSourceCommand: () => GetDataSourceCommand,\n GetDataSourceIntrospectionCommand: () => GetDataSourceIntrospectionCommand,\n GetDomainNameCommand: () => GetDomainNameCommand,\n GetFunctionCommand: () => GetFunctionCommand,\n GetGraphqlApiCommand: () => GetGraphqlApiCommand,\n GetGraphqlApiEnvironmentVariablesCommand: () => GetGraphqlApiEnvironmentVariablesCommand,\n GetIntrospectionSchemaCommand: () => GetIntrospectionSchemaCommand,\n GetResolverCommand: () => GetResolverCommand,\n GetSchemaCreationStatusCommand: () => GetSchemaCreationStatusCommand,\n GetSourceApiAssociationCommand: () => GetSourceApiAssociationCommand,\n GetTypeCommand: () => GetTypeCommand,\n GraphQLApiIntrospectionConfig: () => GraphQLApiIntrospectionConfig,\n GraphQLApiType: () => GraphQLApiType,\n GraphQLApiVisibility: () => GraphQLApiVisibility,\n GraphQLSchemaException: () => GraphQLSchemaException,\n HandlerBehavior: () => HandlerBehavior,\n InternalFailureException: () => InternalFailureException,\n InvokeType: () => InvokeType,\n LimitExceededException: () => LimitExceededException,\n ListApiKeysCommand: () => ListApiKeysCommand,\n ListApisCommand: () => ListApisCommand,\n ListChannelNamespacesCommand: () => ListChannelNamespacesCommand,\n ListDataSourcesCommand: () => ListDataSourcesCommand,\n ListDomainNamesCommand: () => ListDomainNamesCommand,\n ListFunctionsCommand: () => ListFunctionsCommand,\n ListGraphqlApisCommand: () => ListGraphqlApisCommand,\n ListResolversByFunctionCommand: () => ListResolversByFunctionCommand,\n ListResolversCommand: () => ListResolversCommand,\n ListSourceApiAssociationsCommand: () => ListSourceApiAssociationsCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTypesByAssociationCommand: () => ListTypesByAssociationCommand,\n ListTypesCommand: () => ListTypesCommand,\n MergeType: () => MergeType,\n NotFoundException: () => NotFoundException,\n OperationLevelMetricsConfig: () => OperationLevelMetricsConfig,\n OutputType: () => OutputType,\n Ownership: () => Ownership,\n PutGraphqlApiEnvironmentVariablesCommand: () => PutGraphqlApiEnvironmentVariablesCommand,\n RelationalDatabaseSourceType: () => RelationalDatabaseSourceType,\n ResolverKind: () => ResolverKind,\n ResolverLevelMetricsBehavior: () => ResolverLevelMetricsBehavior,\n ResolverLevelMetricsConfig: () => ResolverLevelMetricsConfig,\n RuntimeName: () => RuntimeName,\n SchemaStatus: () => SchemaStatus,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n SourceApiAssociationStatus: () => SourceApiAssociationStatus,\n StartDataSourceIntrospectionCommand: () => StartDataSourceIntrospectionCommand,\n StartSchemaCreationCommand: () => StartSchemaCreationCommand,\n StartSchemaMergeCommand: () => StartSchemaMergeCommand,\n TagResourceCommand: () => TagResourceCommand,\n TypeDefinitionFormat: () => TypeDefinitionFormat,\n UnauthorizedException: () => UnauthorizedException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateApiCacheCommand: () => UpdateApiCacheCommand,\n UpdateApiCommand: () => UpdateApiCommand,\n UpdateApiKeyCommand: () => UpdateApiKeyCommand,\n UpdateChannelNamespaceCommand: () => UpdateChannelNamespaceCommand,\n UpdateDataSourceCommand: () => UpdateDataSourceCommand,\n UpdateDomainNameCommand: () => UpdateDomainNameCommand,\n UpdateFunctionCommand: () => UpdateFunctionCommand,\n UpdateGraphqlApiCommand: () => UpdateGraphqlApiCommand,\n UpdateResolverCommand: () => UpdateResolverCommand,\n UpdateSourceApiAssociationCommand: () => UpdateSourceApiAssociationCommand,\n UpdateTypeCommand: () => UpdateTypeCommand,\n __Client: () => import_smithy_client.Client,\n paginateListApiKeys: () => paginateListApiKeys,\n paginateListApis: () => paginateListApis,\n paginateListChannelNamespaces: () => paginateListChannelNamespaces,\n paginateListDataSources: () => paginateListDataSources,\n paginateListDomainNames: () => paginateListDomainNames,\n paginateListFunctions: () => paginateListFunctions,\n paginateListGraphqlApis: () => paginateListGraphqlApis,\n paginateListResolvers: () => paginateListResolvers,\n paginateListResolversByFunction: () => paginateListResolversByFunction,\n paginateListSourceApiAssociations: () => paginateListSourceApiAssociations,\n paginateListTypes: () => paginateListTypes,\n paginateListTypesByAssociation: () => paginateListTypesByAssociation\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/AppSyncClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"appsync\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/AppSyncClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/AppSyncClient.ts\nvar AppSyncClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"AppSyncClient\");\n }\n /**\n * The resolved configuration of AppSyncClient class. This is resolved and normalized from the {@link AppSyncClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultAppSyncHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/AppSync.ts\n\n\n// src/commands/AssociateApiCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/AppSyncServiceException.ts\n\nvar AppSyncServiceException = class _AppSyncServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"AppSyncServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _AppSyncServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends AppSyncServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n }\n};\nvar AuthenticationType = {\n AMAZON_COGNITO_USER_POOLS: \"AMAZON_COGNITO_USER_POOLS\",\n API_KEY: \"API_KEY\",\n AWS_IAM: \"AWS_IAM\",\n AWS_LAMBDA: \"AWS_LAMBDA\",\n OPENID_CONNECT: \"OPENID_CONNECT\"\n};\nvar EventLogLevel = {\n ALL: \"ALL\",\n DEBUG: \"DEBUG\",\n ERROR: \"ERROR\",\n INFO: \"INFO\",\n NONE: \"NONE\"\n};\nvar AssociationStatus = {\n Failed: \"FAILED\",\n Processing: \"PROCESSING\",\n Success: \"SUCCESS\"\n};\nvar ApiCachingBehavior = {\n FULL_REQUEST_CACHING: \"FULL_REQUEST_CACHING\",\n OPERATION_LEVEL_CACHING: \"OPERATION_LEVEL_CACHING\",\n PER_RESOLVER_CACHING: \"PER_RESOLVER_CACHING\"\n};\nvar CacheHealthMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ApiCacheStatus = {\n AVAILABLE: \"AVAILABLE\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n MODIFYING: \"MODIFYING\"\n};\nvar ApiCacheType = {\n LARGE: \"LARGE\",\n LARGE_12X: \"LARGE_12X\",\n LARGE_2X: \"LARGE_2X\",\n LARGE_4X: \"LARGE_4X\",\n LARGE_8X: \"LARGE_8X\",\n MEDIUM: \"MEDIUM\",\n R4_2XLARGE: \"R4_2XLARGE\",\n R4_4XLARGE: \"R4_4XLARGE\",\n R4_8XLARGE: \"R4_8XLARGE\",\n R4_LARGE: \"R4_LARGE\",\n R4_XLARGE: \"R4_XLARGE\",\n SMALL: \"SMALL\",\n T2_MEDIUM: \"T2_MEDIUM\",\n T2_SMALL: \"T2_SMALL\",\n XLARGE: \"XLARGE\"\n};\nvar ApiKeyLimitExceededException = class _ApiKeyLimitExceededException extends AppSyncServiceException {\n static {\n __name(this, \"ApiKeyLimitExceededException\");\n }\n name = \"ApiKeyLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ApiKeyLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ApiKeyLimitExceededException.prototype);\n }\n};\nvar ApiKeyValidityOutOfBoundsException = class _ApiKeyValidityOutOfBoundsException extends AppSyncServiceException {\n static {\n __name(this, \"ApiKeyValidityOutOfBoundsException\");\n }\n name = \"ApiKeyValidityOutOfBoundsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ApiKeyValidityOutOfBoundsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ApiKeyValidityOutOfBoundsException.prototype);\n }\n};\nvar ApiLimitExceededException = class _ApiLimitExceededException extends AppSyncServiceException {\n static {\n __name(this, \"ApiLimitExceededException\");\n }\n name = \"ApiLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ApiLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ApiLimitExceededException.prototype);\n }\n};\nvar RuntimeName = {\n APPSYNC_JS: \"APPSYNC_JS\"\n};\nvar BadRequestReason = {\n CODE_ERROR: \"CODE_ERROR\"\n};\nvar BadRequestException = class _BadRequestException extends AppSyncServiceException {\n static {\n __name(this, \"BadRequestException\");\n }\n name = \"BadRequestException\";\n $fault = \"client\";\n /**\n *

Provides context for the cause of the bad request. The only supported value is\n * CODE_ERROR.

\n * @public\n */\n reason;\n /**\n *

Provides further details for the reason behind the bad request. For reason type\n * CODE_ERROR, the detail will contain a list of code errors.

\n * @public\n */\n detail;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BadRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BadRequestException.prototype);\n this.reason = opts.reason;\n this.detail = opts.detail;\n }\n};\nvar InternalFailureException = class _InternalFailureException extends AppSyncServiceException {\n static {\n __name(this, \"InternalFailureException\");\n }\n name = \"InternalFailureException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalFailureException.prototype);\n }\n};\nvar NotFoundException = class _NotFoundException extends AppSyncServiceException {\n static {\n __name(this, \"NotFoundException\");\n }\n name = \"NotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotFoundException.prototype);\n }\n};\nvar MergeType = {\n AUTO_MERGE: \"AUTO_MERGE\",\n MANUAL_MERGE: \"MANUAL_MERGE\"\n};\nvar SourceApiAssociationStatus = {\n AUTO_MERGE_SCHEDULE_FAILED: \"AUTO_MERGE_SCHEDULE_FAILED\",\n DELETION_FAILED: \"DELETION_FAILED\",\n DELETION_IN_PROGRESS: \"DELETION_IN_PROGRESS\",\n DELETION_SCHEDULED: \"DELETION_SCHEDULED\",\n MERGE_FAILED: \"MERGE_FAILED\",\n MERGE_IN_PROGRESS: \"MERGE_IN_PROGRESS\",\n MERGE_SCHEDULED: \"MERGE_SCHEDULED\",\n MERGE_SUCCESS: \"MERGE_SUCCESS\"\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends AppSyncServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends AppSyncServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends AppSyncServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar AuthorizationType = {\n AWS_IAM: \"AWS_IAM\"\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends AppSyncServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n }\n};\nvar ConflictException = class _ConflictException extends AppSyncServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar HandlerBehavior = {\n CODE: \"CODE\",\n DIRECT: \"DIRECT\"\n};\nvar InvokeType = {\n EVENT: \"EVENT\",\n REQUEST_RESPONSE: \"REQUEST_RESPONSE\"\n};\nvar DataSourceLevelMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar RelationalDatabaseSourceType = {\n RDS_HTTP_ENDPOINT: \"RDS_HTTP_ENDPOINT\"\n};\nvar DataSourceType = {\n AMAZON_BEDROCK_RUNTIME: \"AMAZON_BEDROCK_RUNTIME\",\n AMAZON_DYNAMODB: \"AMAZON_DYNAMODB\",\n AMAZON_ELASTICSEARCH: \"AMAZON_ELASTICSEARCH\",\n AMAZON_EVENTBRIDGE: \"AMAZON_EVENTBRIDGE\",\n AMAZON_OPENSEARCH_SERVICE: \"AMAZON_OPENSEARCH_SERVICE\",\n AWS_LAMBDA: \"AWS_LAMBDA\",\n HTTP: \"HTTP\",\n NONE: \"NONE\",\n RELATIONAL_DATABASE: \"RELATIONAL_DATABASE\"\n};\nvar ConflictDetectionType = {\n NONE: \"NONE\",\n VERSION: \"VERSION\"\n};\nvar ConflictHandlerType = {\n AUTOMERGE: \"AUTOMERGE\",\n LAMBDA: \"LAMBDA\",\n NONE: \"NONE\",\n OPTIMISTIC_CONCURRENCY: \"OPTIMISTIC_CONCURRENCY\"\n};\nvar GraphQLApiType = {\n GRAPHQL: \"GRAPHQL\",\n MERGED: \"MERGED\"\n};\nvar DataSourceLevelMetricsBehavior = {\n FULL_REQUEST_DATA_SOURCE_METRICS: \"FULL_REQUEST_DATA_SOURCE_METRICS\",\n PER_DATA_SOURCE_METRICS: \"PER_DATA_SOURCE_METRICS\"\n};\nvar OperationLevelMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ResolverLevelMetricsBehavior = {\n FULL_REQUEST_RESOLVER_METRICS: \"FULL_REQUEST_RESOLVER_METRICS\",\n PER_RESOLVER_METRICS: \"PER_RESOLVER_METRICS\"\n};\nvar GraphQLApiIntrospectionConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar FieldLogLevel = {\n ALL: \"ALL\",\n DEBUG: \"DEBUG\",\n ERROR: \"ERROR\",\n INFO: \"INFO\",\n NONE: \"NONE\"\n};\nvar DefaultAction = {\n ALLOW: \"ALLOW\",\n DENY: \"DENY\"\n};\nvar GraphQLApiVisibility = {\n GLOBAL: \"GLOBAL\",\n PRIVATE: \"PRIVATE\"\n};\nvar ResolverKind = {\n PIPELINE: \"PIPELINE\",\n UNIT: \"UNIT\"\n};\nvar ResolverLevelMetricsConfig = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar TypeDefinitionFormat = {\n JSON: \"JSON\",\n SDL: \"SDL\"\n};\nvar DataSourceIntrospectionStatus = {\n FAILED: \"FAILED\",\n PROCESSING: \"PROCESSING\",\n SUCCESS: \"SUCCESS\"\n};\nvar OutputType = {\n JSON: \"JSON\",\n SDL: \"SDL\"\n};\nvar GraphQLSchemaException = class _GraphQLSchemaException extends AppSyncServiceException {\n static {\n __name(this, \"GraphQLSchemaException\");\n }\n name = \"GraphQLSchemaException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"GraphQLSchemaException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _GraphQLSchemaException.prototype);\n }\n};\nvar SchemaStatus = {\n Active: \"ACTIVE\",\n Deleting: \"DELETING\",\n Failed: \"FAILED\",\n NotApplicable: \"NOT_APPLICABLE\",\n Processing: \"PROCESSING\",\n Success: \"SUCCESS\"\n};\nvar Ownership = {\n CURRENT_ACCOUNT: \"CURRENT_ACCOUNT\",\n OTHER_ACCOUNTS: \"OTHER_ACCOUNTS\"\n};\n\n// src/protocols/Aws_restJson1.ts\nvar se_AssociateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/domainnames/{domainName}/apiassociation\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n apiId: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateApiCommand\");\nvar se_AssociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations\");\n b.p(\"sourceApiIdentifier\", () => input.sourceApiIdentifier, \"{sourceApiIdentifier}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n mergedApiIdentifier: [],\n sourceApiAssociationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"sourceApiAssociationConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateMergedGraphqlApiCommand\");\nvar se_AssociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n sourceApiAssociationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"sourceApiAssociationConfig\"),\n sourceApiIdentifier: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateSourceGraphqlApiCommand\");\nvar se_CreateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n eventConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventConfig\"),\n name: [],\n ownerContact: [],\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateApiCommand\");\nvar se_CreateApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/ApiCaches\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n apiCachingBehavior: [],\n atRestEncryptionEnabled: [],\n healthMetricsConfig: [],\n transitEncryptionEnabled: [],\n ttl: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateApiCacheCommand\");\nvar se_CreateApiKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/apikeys\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n expires: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateApiKeyCommand\");\nvar se_CreateChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis/{apiId}/channelNamespaces\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n codeHandlers: [],\n handlerConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"handlerConfigs\"),\n name: [],\n publishAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"publishAuthModes\"),\n subscribeAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"subscribeAuthModes\"),\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateChannelNamespaceCommand\");\nvar se_CreateDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/datasources\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n dynamodbConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"dynamodbConfig\"),\n elasticsearchConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"elasticsearchConfig\"),\n eventBridgeConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventBridgeConfig\"),\n httpConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"httpConfig\"),\n lambdaConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaConfig\"),\n metricsConfig: [],\n name: [],\n openSearchServiceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openSearchServiceConfig\"),\n relationalDatabaseConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"relationalDatabaseConfig\"),\n serviceRoleArn: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateDataSourceCommand\");\nvar se_CreateDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/domainnames\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n certificateArn: [],\n description: [],\n domainName: [],\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateDomainNameCommand\");\nvar se_CreateFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/functions\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n code: [],\n dataSourceName: [],\n description: [],\n functionVersion: [],\n maxBatchSize: [],\n name: [],\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateFunctionCommand\");\nvar se_CreateGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n additionalAuthenticationProviders: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"additionalAuthenticationProviders\"),\n apiType: [],\n authenticationType: [],\n enhancedMetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"enhancedMetricsConfig\"),\n introspectionConfig: [],\n lambdaAuthorizerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaAuthorizerConfig\"),\n logConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"logConfig\"),\n mergedApiExecutionRoleArn: [],\n name: [],\n openIDConnectConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openIDConnectConfig\"),\n ownerContact: [],\n queryDepthLimit: [],\n resolverCountLimit: [],\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\"),\n userPoolConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"userPoolConfig\"),\n visibility: [],\n xrayEnabled: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateGraphqlApiCommand\");\nvar se_CreateResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n cachingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"cachingConfig\"),\n code: [],\n dataSourceName: [],\n fieldName: [],\n kind: [],\n maxBatchSize: [],\n metricsConfig: [],\n pipelineConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"pipelineConfig\"),\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateResolverCommand\");\nvar se_CreateTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n definition: [],\n format: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTypeCommand\");\nvar se_DeleteApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteApiCommand\");\nvar se_DeleteApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/ApiCaches\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteApiCacheCommand\");\nvar se_DeleteApiKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/apikeys/{id}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"id\", () => input.id, \"{id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteApiKeyCommand\");\nvar se_DeleteChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}/channelNamespaces/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteChannelNamespaceCommand\");\nvar se_DeleteDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/datasources/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteDataSourceCommand\");\nvar se_DeleteDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteDomainNameCommand\");\nvar se_DeleteFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteFunctionCommand\");\nvar se_DeleteGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteGraphqlApiCommand\");\nvar se_DeleteResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n b.p(\"fieldName\", () => input.fieldName, \"{fieldName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteResolverCommand\");\nvar se_DeleteTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteTypeCommand\");\nvar se_DisassociateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}/apiassociation\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateApiCommand\");\nvar se_DisassociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations/{associationId}\");\n b.p(\"sourceApiIdentifier\", () => input.sourceApiIdentifier, \"{sourceApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateMergedGraphqlApiCommand\");\nvar se_DisassociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateSourceGraphqlApiCommand\");\nvar se_EvaluateCodeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/dataplane-evaluatecode\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n code: [],\n context: [],\n function: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_EvaluateCodeCommand\");\nvar se_EvaluateMappingTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/dataplane-evaluatetemplate\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n context: [],\n template: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_EvaluateMappingTemplateCommand\");\nvar se_FlushApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/FlushCache\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_FlushApiCacheCommand\");\nvar se_GetApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetApiCommand\");\nvar se_GetApiAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}/apiassociation\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetApiAssociationCommand\");\nvar se_GetApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/ApiCaches\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetApiCacheCommand\");\nvar se_GetChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}/channelNamespaces/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetChannelNamespaceCommand\");\nvar se_GetDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/datasources/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetDataSourceCommand\");\nvar se_GetDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/datasources/introspections/{introspectionId}\");\n b.p(\"introspectionId\", () => input.introspectionId, \"{introspectionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_iMSDL]: [() => input.includeModelsSDL !== void 0, () => input[_iMSDL].toString()],\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetDataSourceIntrospectionCommand\");\nvar se_GetDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames/{domainName}\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetDomainNameCommand\");\nvar se_GetFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionCommand\");\nvar se_GetGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetGraphqlApiCommand\");\nvar se_GetGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/environmentVariables\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetGraphqlApiEnvironmentVariablesCommand\");\nvar se_GetIntrospectionSchemaCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/schema\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)],\n [_iD]: [() => input.includeDirectives !== void 0, () => input[_iD].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetIntrospectionSchemaCommand\");\nvar se_GetResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n b.p(\"fieldName\", () => input.fieldName, \"{fieldName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetResolverCommand\");\nvar se_GetSchemaCreationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/schemacreation\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetSchemaCreationStatusCommand\");\nvar se_GetSourceApiAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetSourceApiAssociationCommand\");\nvar se_GetTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetTypeCommand\");\nvar se_ListApiKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/apikeys\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListApiKeysCommand\");\nvar se_ListApisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis\");\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListApisCommand\");\nvar se_ListChannelNamespacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v2/apis/{apiId}/channelNamespaces\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListChannelNamespacesCommand\");\nvar se_ListDataSourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/datasources\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListDataSourcesCommand\");\nvar se_ListDomainNamesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/domainnames\");\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListDomainNamesCommand\");\nvar se_ListFunctionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionsCommand\");\nvar se_ListGraphqlApisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis\");\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_aT]: [, input[_aT]],\n [_o]: [, input[_o]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListGraphqlApisCommand\");\nvar se_ListResolversCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListResolversCommand\");\nvar se_ListResolversByFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}/resolvers\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListResolversByFunctionCommand\");\nvar se_ListSourceApiAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/sourceApiAssociations\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListSourceApiAssociationsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/tags/{resourceArn}\");\n b.p(\"resourceArn\", () => input.resourceArn, \"{resourceArn}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTypesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/apis/{apiId}/types\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)],\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTypesCommand\");\nvar se_ListTypesByAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/types\");\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n const query = (0, import_smithy_client.map)({\n [_f]: [, (0, import_smithy_client.expectNonNull)(input[_f], `format`)],\n [_nT]: [, input[_nT]],\n [_mR]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTypesByAssociationCommand\");\nvar se_PutGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/environmentVariables\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n environmentVariables: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"environmentVariables\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutGraphqlApiEnvironmentVariablesCommand\");\nvar se_StartDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/datasources/introspections\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n rdsDataApiConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"rdsDataApiConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_StartDataSourceIntrospectionCommand\");\nvar se_StartSchemaCreationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/schemacreation\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n definition: /* @__PURE__ */ __name((_) => context.base64Encoder(_), \"definition\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_StartSchemaCreationCommand\");\nvar se_StartSchemaMergeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/merge\");\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_StartSchemaMergeCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/tags/{resourceArn}\");\n b.p(\"resourceArn\", () => input.resourceArn, \"{resourceArn}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/v1/tags/{resourceArn}\");\n b.p(\"resourceArn\", () => input.resourceArn, \"{resourceArn}\", false);\n const query = (0, import_smithy_client.map)({\n [_tK]: [(0, import_smithy_client.expectNonNull)(input.tagKeys, `tagKeys`) != null, () => input[_tK] || []]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UntagResourceCommand\");\nvar se_UpdateApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n eventConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventConfig\"),\n name: [],\n ownerContact: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateApiCommand\");\nvar se_UpdateApiCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/ApiCaches/update\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n apiCachingBehavior: [],\n healthMetricsConfig: [],\n ttl: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateApiCacheCommand\");\nvar se_UpdateApiKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/apikeys/{id}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"id\", () => input.id, \"{id}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n expires: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateApiKeyCommand\");\nvar se_UpdateChannelNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v2/apis/{apiId}/channelNamespaces/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n codeHandlers: [],\n handlerConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"handlerConfigs\"),\n publishAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"publishAuthModes\"),\n subscribeAuthModes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"subscribeAuthModes\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateChannelNamespaceCommand\");\nvar se_UpdateDataSourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/datasources/{name}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"name\", () => input.name, \"{name}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n dynamodbConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"dynamodbConfig\"),\n elasticsearchConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"elasticsearchConfig\"),\n eventBridgeConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"eventBridgeConfig\"),\n httpConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"httpConfig\"),\n lambdaConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaConfig\"),\n metricsConfig: [],\n openSearchServiceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openSearchServiceConfig\"),\n relationalDatabaseConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"relationalDatabaseConfig\"),\n serviceRoleArn: [],\n type: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateDataSourceCommand\");\nvar se_UpdateDomainNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/domainnames/{domainName}\");\n b.p(\"domainName\", () => input.domainName, \"{domainName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateDomainNameCommand\");\nvar se_UpdateFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/functions/{functionId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"functionId\", () => input.functionId, \"{functionId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n code: [],\n dataSourceName: [],\n description: [],\n functionVersion: [],\n maxBatchSize: [],\n name: [],\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateFunctionCommand\");\nvar se_UpdateGraphqlApiCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n additionalAuthenticationProviders: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"additionalAuthenticationProviders\"),\n authenticationType: [],\n enhancedMetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"enhancedMetricsConfig\"),\n introspectionConfig: [],\n lambdaAuthorizerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"lambdaAuthorizerConfig\"),\n logConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"logConfig\"),\n mergedApiExecutionRoleArn: [],\n name: [],\n openIDConnectConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"openIDConnectConfig\"),\n ownerContact: [],\n queryDepthLimit: [],\n resolverCountLimit: [],\n userPoolConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"userPoolConfig\"),\n xrayEnabled: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateGraphqlApiCommand\");\nvar se_UpdateResolverCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n b.p(\"fieldName\", () => input.fieldName, \"{fieldName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n cachingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"cachingConfig\"),\n code: [],\n dataSourceName: [],\n kind: [],\n maxBatchSize: [],\n metricsConfig: [],\n pipelineConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"pipelineConfig\"),\n requestMappingTemplate: [],\n responseMappingTemplate: [],\n runtime: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"runtime\"),\n syncConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"syncConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateResolverCommand\");\nvar se_UpdateSourceApiAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\");\n b.p(\"associationId\", () => input.associationId, \"{associationId}\", false);\n b.p(\"mergedApiIdentifier\", () => input.mergedApiIdentifier, \"{mergedApiIdentifier}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n description: [],\n sourceApiAssociationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"sourceApiAssociationConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateSourceApiAssociationCommand\");\nvar se_UpdateTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/v1/apis/{apiId}/types/{typeName}\");\n b.p(\"apiId\", () => input.apiId, \"{apiId}\", false);\n b.p(\"typeName\", () => input.typeName, \"{typeName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n definition: [],\n format: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateTypeCommand\");\nvar de_AssociateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiAssociation: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AssociateApiCommand\");\nvar de_AssociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AssociateMergedGraphqlApiCommand\");\nvar de_AssociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AssociateSourceGraphqlApiCommand\");\nvar de_CreateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n api: /* @__PURE__ */ __name((_) => de_Api(_, context), \"api\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateApiCommand\");\nvar de_CreateApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiCache: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateApiCacheCommand\");\nvar de_CreateApiKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiKey: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateApiKeyCommand\");\nvar de_CreateChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespace: /* @__PURE__ */ __name((_) => de_ChannelNamespace(_, context), \"channelNamespace\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateChannelNamespaceCommand\");\nvar de_CreateDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSource: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateDataSourceCommand\");\nvar de_CreateDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateDomainNameCommand\");\nvar de_CreateFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functionConfiguration: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateFunctionCommand\");\nvar de_CreateGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApi: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateGraphqlApiCommand\");\nvar de_CreateResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n resolver: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateResolverCommand\");\nvar de_CreateTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n type: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTypeCommand\");\nvar de_DeleteApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteApiCommand\");\nvar de_DeleteApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteApiCacheCommand\");\nvar de_DeleteApiKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteApiKeyCommand\");\nvar de_DeleteChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteChannelNamespaceCommand\");\nvar de_DeleteDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteDataSourceCommand\");\nvar de_DeleteDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteDomainNameCommand\");\nvar de_DeleteFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionCommand\");\nvar de_DeleteGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteGraphqlApiCommand\");\nvar de_DeleteResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteResolverCommand\");\nvar de_DeleteTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteTypeCommand\");\nvar de_DisassociateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DisassociateApiCommand\");\nvar de_DisassociateMergedGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociationStatus: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_DisassociateMergedGraphqlApiCommand\");\nvar de_DisassociateSourceGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociationStatus: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_DisassociateSourceGraphqlApiCommand\");\nvar de_EvaluateCodeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n error: import_smithy_client._json,\n evaluationResult: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n outErrors: import_smithy_client.expectString,\n stash: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_EvaluateCodeCommand\");\nvar de_EvaluateMappingTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n error: import_smithy_client._json,\n evaluationResult: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n outErrors: import_smithy_client.expectString,\n stash: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_EvaluateMappingTemplateCommand\");\nvar de_FlushApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_FlushApiCacheCommand\");\nvar de_GetApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n api: /* @__PURE__ */ __name((_) => de_Api(_, context), \"api\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetApiCommand\");\nvar de_GetApiAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiAssociation: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetApiAssociationCommand\");\nvar de_GetApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiCache: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetApiCacheCommand\");\nvar de_GetChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespace: /* @__PURE__ */ __name((_) => de_ChannelNamespace(_, context), \"channelNamespace\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetChannelNamespaceCommand\");\nvar de_GetDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSource: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetDataSourceCommand\");\nvar de_GetDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n introspectionId: import_smithy_client.expectString,\n introspectionResult: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionResult(_, context), \"introspectionResult\"),\n introspectionStatus: import_smithy_client.expectString,\n introspectionStatusDetail: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetDataSourceIntrospectionCommand\");\nvar de_GetDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetDomainNameCommand\");\nvar de_GetFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functionConfiguration: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionCommand\");\nvar de_GetGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApi: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetGraphqlApiCommand\");\nvar de_GetGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n environmentVariables: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetGraphqlApiEnvironmentVariablesCommand\");\nvar de_GetIntrospectionSchemaCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = await (0, import_smithy_client.collectBody)(output.body, context);\n contents.schema = data;\n return contents;\n}, \"de_GetIntrospectionSchemaCommand\");\nvar de_GetResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n resolver: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetResolverCommand\");\nvar de_GetSchemaCreationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n details: import_smithy_client.expectString,\n status: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetSchemaCreationStatusCommand\");\nvar de_GetSourceApiAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetSourceApiAssociationCommand\");\nvar de_GetTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n type: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetTypeCommand\");\nvar de_ListApiKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiKeys: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListApiKeysCommand\");\nvar de_ListApisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apis: /* @__PURE__ */ __name((_) => de_Apis(_, context), \"apis\"),\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListApisCommand\");\nvar de_ListChannelNamespacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespaces: /* @__PURE__ */ __name((_) => de_ChannelNamespaces(_, context), \"channelNamespaces\"),\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListChannelNamespacesCommand\");\nvar de_ListDataSourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSources: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListDataSourcesCommand\");\nvar de_ListDomainNamesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfigs: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListDomainNamesCommand\");\nvar de_ListFunctionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functions: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionsCommand\");\nvar de_ListGraphqlApisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApis: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListGraphqlApisCommand\");\nvar de_ListResolversCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n resolvers: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListResolversCommand\");\nvar de_ListResolversByFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n resolvers: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListResolversByFunctionCommand\");\nvar de_ListSourceApiAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n sourceApiAssociationSummaries: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListSourceApiAssociationsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n tags: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTypesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n types: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTypesCommand\");\nvar de_ListTypesByAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n types: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTypesByAssociationCommand\");\nvar de_PutGraphqlApiEnvironmentVariablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n environmentVariables: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutGraphqlApiEnvironmentVariablesCommand\");\nvar de_StartDataSourceIntrospectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n introspectionId: import_smithy_client.expectString,\n introspectionStatus: import_smithy_client.expectString,\n introspectionStatusDetail: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_StartDataSourceIntrospectionCommand\");\nvar de_StartSchemaCreationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n status: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_StartSchemaCreationCommand\");\nvar de_StartSchemaMergeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociationStatus: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_StartSchemaMergeCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n api: /* @__PURE__ */ __name((_) => de_Api(_, context), \"api\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateApiCommand\");\nvar de_UpdateApiCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiCache: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateApiCacheCommand\");\nvar de_UpdateApiKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n apiKey: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateApiKeyCommand\");\nvar de_UpdateChannelNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n channelNamespace: /* @__PURE__ */ __name((_) => de_ChannelNamespace(_, context), \"channelNamespace\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateChannelNamespaceCommand\");\nvar de_UpdateDataSourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n dataSource: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateDataSourceCommand\");\nvar de_UpdateDomainNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n domainNameConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateDomainNameCommand\");\nvar de_UpdateFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n functionConfiguration: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionCommand\");\nvar de_UpdateGraphqlApiCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n graphqlApi: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateGraphqlApiCommand\");\nvar de_UpdateResolverCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n resolver: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateResolverCommand\");\nvar de_UpdateSourceApiAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n sourceApiAssociation: /* @__PURE__ */ __name((_) => de_SourceApiAssociation(_, context), \"sourceApiAssociation\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateSourceApiAssociationCommand\");\nvar de_UpdateTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n type: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateTypeCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.appsync#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"BadRequestException\":\n case \"com.amazonaws.appsync#BadRequestException\":\n throw await de_BadRequestExceptionRes(parsedOutput, context);\n case \"InternalFailureException\":\n case \"com.amazonaws.appsync#InternalFailureException\":\n throw await de_InternalFailureExceptionRes(parsedOutput, context);\n case \"NotFoundException\":\n case \"com.amazonaws.appsync#NotFoundException\":\n throw await de_NotFoundExceptionRes(parsedOutput, context);\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.appsync#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.appsync#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.appsync#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.appsync#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"ApiKeyLimitExceededException\":\n case \"com.amazonaws.appsync#ApiKeyLimitExceededException\":\n throw await de_ApiKeyLimitExceededExceptionRes(parsedOutput, context);\n case \"ApiKeyValidityOutOfBoundsException\":\n case \"com.amazonaws.appsync#ApiKeyValidityOutOfBoundsException\":\n throw await de_ApiKeyValidityOutOfBoundsExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.appsync#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"ApiLimitExceededException\":\n case \"com.amazonaws.appsync#ApiLimitExceededException\":\n throw await de_ApiLimitExceededExceptionRes(parsedOutput, context);\n case \"GraphQLSchemaException\":\n case \"com.amazonaws.appsync#GraphQLSchemaException\":\n throw await de_GraphQLSchemaExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(AppSyncServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_ApiKeyLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ApiKeyLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ApiKeyLimitExceededExceptionRes\");\nvar de_ApiKeyValidityOutOfBoundsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ApiKeyValidityOutOfBoundsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ApiKeyValidityOutOfBoundsExceptionRes\");\nvar de_ApiLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ApiLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ApiLimitExceededExceptionRes\");\nvar de_BadRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n detail: import_smithy_client._json,\n message: import_smithy_client.expectString,\n reason: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new BadRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_BadRequestExceptionRes\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ConflictExceptionRes\");\nvar de_GraphQLSchemaExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new GraphQLSchemaException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_GraphQLSchemaExceptionRes\");\nvar de_InternalFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalFailureExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_NotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new NotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NotFoundExceptionRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar de_Api = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n apiArn: import_smithy_client.expectString,\n apiId: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n dns: import_smithy_client._json,\n eventConfig: import_smithy_client._json,\n name: import_smithy_client.expectString,\n ownerContact: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n wafWebAclArn: import_smithy_client.expectString,\n xrayEnabled: import_smithy_client.expectBoolean\n });\n}, \"de_Api\");\nvar de_Apis = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Api(entry, context);\n });\n return retVal;\n}, \"de_Apis\");\nvar de_ChannelNamespace = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n apiId: import_smithy_client.expectString,\n channelNamespaceArn: import_smithy_client.expectString,\n codeHandlers: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n handlerConfigs: import_smithy_client._json,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n name: import_smithy_client.expectString,\n publishAuthModes: import_smithy_client._json,\n subscribeAuthModes: import_smithy_client._json,\n tags: import_smithy_client._json\n });\n}, \"de_ChannelNamespace\");\nvar de_ChannelNamespaces = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ChannelNamespace(entry, context);\n });\n return retVal;\n}, \"de_ChannelNamespaces\");\nvar de_DataSourceIntrospectionModel = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fields: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModelFields(_, context), \"fields\"),\n indexes: import_smithy_client._json,\n name: import_smithy_client.expectString,\n primaryKey: import_smithy_client._json,\n sdl: import_smithy_client.expectString\n });\n}, \"de_DataSourceIntrospectionModel\");\nvar de_DataSourceIntrospectionModelField = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n length: import_smithy_client.expectLong,\n name: import_smithy_client.expectString,\n type: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModelFieldType(_, context), \"type\")\n });\n}, \"de_DataSourceIntrospectionModelField\");\nvar de_DataSourceIntrospectionModelFields = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DataSourceIntrospectionModelField(entry, context);\n });\n return retVal;\n}, \"de_DataSourceIntrospectionModelFields\");\nvar de_DataSourceIntrospectionModelFieldType = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n kind: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n type: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModelFieldType(_, context), \"type\"),\n values: import_smithy_client._json\n });\n}, \"de_DataSourceIntrospectionModelFieldType\");\nvar de_DataSourceIntrospectionModels = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DataSourceIntrospectionModel(entry, context);\n });\n return retVal;\n}, \"de_DataSourceIntrospectionModels\");\nvar de_DataSourceIntrospectionResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n models: /* @__PURE__ */ __name((_) => de_DataSourceIntrospectionModels(_, context), \"models\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DataSourceIntrospectionResult\");\nvar de_SourceApiAssociation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n associationArn: import_smithy_client.expectString,\n associationId: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n lastSuccessfulMergeDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastSuccessfulMergeDate\"),\n mergedApiArn: import_smithy_client.expectString,\n mergedApiId: import_smithy_client.expectString,\n sourceApiArn: import_smithy_client.expectString,\n sourceApiAssociationConfig: import_smithy_client._json,\n sourceApiAssociationStatus: import_smithy_client.expectString,\n sourceApiAssociationStatusDetail: import_smithy_client.expectString,\n sourceApiId: import_smithy_client.expectString\n });\n}, \"de_SourceApiAssociation\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aT = \"apiType\";\nvar _f = \"format\";\nvar _iD = \"includeDirectives\";\nvar _iMSDL = \"includeModelsSDL\";\nvar _mR = \"maxResults\";\nvar _nT = \"nextToken\";\nvar _o = \"owner\";\nvar _tK = \"tagKeys\";\n\n// src/commands/AssociateApiCommand.ts\nvar AssociateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"AssociateApi\", {}).n(\"AppSyncClient\", \"AssociateApiCommand\").f(void 0, void 0).ser(se_AssociateApiCommand).de(de_AssociateApiCommand).build() {\n static {\n __name(this, \"AssociateApiCommand\");\n }\n};\n\n// src/commands/AssociateMergedGraphqlApiCommand.ts\n\n\n\nvar AssociateMergedGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"AssociateMergedGraphqlApi\", {}).n(\"AppSyncClient\", \"AssociateMergedGraphqlApiCommand\").f(void 0, void 0).ser(se_AssociateMergedGraphqlApiCommand).de(de_AssociateMergedGraphqlApiCommand).build() {\n static {\n __name(this, \"AssociateMergedGraphqlApiCommand\");\n }\n};\n\n// src/commands/AssociateSourceGraphqlApiCommand.ts\n\n\n\nvar AssociateSourceGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"AssociateSourceGraphqlApi\", {}).n(\"AppSyncClient\", \"AssociateSourceGraphqlApiCommand\").f(void 0, void 0).ser(se_AssociateSourceGraphqlApiCommand).de(de_AssociateSourceGraphqlApiCommand).build() {\n static {\n __name(this, \"AssociateSourceGraphqlApiCommand\");\n }\n};\n\n// src/commands/CreateApiCacheCommand.ts\n\n\n\nvar CreateApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateApiCache\", {}).n(\"AppSyncClient\", \"CreateApiCacheCommand\").f(void 0, void 0).ser(se_CreateApiCacheCommand).de(de_CreateApiCacheCommand).build() {\n static {\n __name(this, \"CreateApiCacheCommand\");\n }\n};\n\n// src/commands/CreateApiCommand.ts\n\n\n\nvar CreateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateApi\", {}).n(\"AppSyncClient\", \"CreateApiCommand\").f(void 0, void 0).ser(se_CreateApiCommand).de(de_CreateApiCommand).build() {\n static {\n __name(this, \"CreateApiCommand\");\n }\n};\n\n// src/commands/CreateApiKeyCommand.ts\n\n\n\nvar CreateApiKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateApiKey\", {}).n(\"AppSyncClient\", \"CreateApiKeyCommand\").f(void 0, void 0).ser(se_CreateApiKeyCommand).de(de_CreateApiKeyCommand).build() {\n static {\n __name(this, \"CreateApiKeyCommand\");\n }\n};\n\n// src/commands/CreateChannelNamespaceCommand.ts\n\n\n\nvar CreateChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateChannelNamespace\", {}).n(\"AppSyncClient\", \"CreateChannelNamespaceCommand\").f(void 0, void 0).ser(se_CreateChannelNamespaceCommand).de(de_CreateChannelNamespaceCommand).build() {\n static {\n __name(this, \"CreateChannelNamespaceCommand\");\n }\n};\n\n// src/commands/CreateDataSourceCommand.ts\n\n\n\nvar CreateDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateDataSource\", {}).n(\"AppSyncClient\", \"CreateDataSourceCommand\").f(void 0, void 0).ser(se_CreateDataSourceCommand).de(de_CreateDataSourceCommand).build() {\n static {\n __name(this, \"CreateDataSourceCommand\");\n }\n};\n\n// src/commands/CreateDomainNameCommand.ts\n\n\n\nvar CreateDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateDomainName\", {}).n(\"AppSyncClient\", \"CreateDomainNameCommand\").f(void 0, void 0).ser(se_CreateDomainNameCommand).de(de_CreateDomainNameCommand).build() {\n static {\n __name(this, \"CreateDomainNameCommand\");\n }\n};\n\n// src/commands/CreateFunctionCommand.ts\n\n\n\nvar CreateFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateFunction\", {}).n(\"AppSyncClient\", \"CreateFunctionCommand\").f(void 0, void 0).ser(se_CreateFunctionCommand).de(de_CreateFunctionCommand).build() {\n static {\n __name(this, \"CreateFunctionCommand\");\n }\n};\n\n// src/commands/CreateGraphqlApiCommand.ts\n\n\n\nvar CreateGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateGraphqlApi\", {}).n(\"AppSyncClient\", \"CreateGraphqlApiCommand\").f(void 0, void 0).ser(se_CreateGraphqlApiCommand).de(de_CreateGraphqlApiCommand).build() {\n static {\n __name(this, \"CreateGraphqlApiCommand\");\n }\n};\n\n// src/commands/CreateResolverCommand.ts\n\n\n\nvar CreateResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateResolver\", {}).n(\"AppSyncClient\", \"CreateResolverCommand\").f(void 0, void 0).ser(se_CreateResolverCommand).de(de_CreateResolverCommand).build() {\n static {\n __name(this, \"CreateResolverCommand\");\n }\n};\n\n// src/commands/CreateTypeCommand.ts\n\n\n\nvar CreateTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"CreateType\", {}).n(\"AppSyncClient\", \"CreateTypeCommand\").f(void 0, void 0).ser(se_CreateTypeCommand).de(de_CreateTypeCommand).build() {\n static {\n __name(this, \"CreateTypeCommand\");\n }\n};\n\n// src/commands/DeleteApiCacheCommand.ts\n\n\n\nvar DeleteApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteApiCache\", {}).n(\"AppSyncClient\", \"DeleteApiCacheCommand\").f(void 0, void 0).ser(se_DeleteApiCacheCommand).de(de_DeleteApiCacheCommand).build() {\n static {\n __name(this, \"DeleteApiCacheCommand\");\n }\n};\n\n// src/commands/DeleteApiCommand.ts\n\n\n\nvar DeleteApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteApi\", {}).n(\"AppSyncClient\", \"DeleteApiCommand\").f(void 0, void 0).ser(se_DeleteApiCommand).de(de_DeleteApiCommand).build() {\n static {\n __name(this, \"DeleteApiCommand\");\n }\n};\n\n// src/commands/DeleteApiKeyCommand.ts\n\n\n\nvar DeleteApiKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteApiKey\", {}).n(\"AppSyncClient\", \"DeleteApiKeyCommand\").f(void 0, void 0).ser(se_DeleteApiKeyCommand).de(de_DeleteApiKeyCommand).build() {\n static {\n __name(this, \"DeleteApiKeyCommand\");\n }\n};\n\n// src/commands/DeleteChannelNamespaceCommand.ts\n\n\n\nvar DeleteChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteChannelNamespace\", {}).n(\"AppSyncClient\", \"DeleteChannelNamespaceCommand\").f(void 0, void 0).ser(se_DeleteChannelNamespaceCommand).de(de_DeleteChannelNamespaceCommand).build() {\n static {\n __name(this, \"DeleteChannelNamespaceCommand\");\n }\n};\n\n// src/commands/DeleteDataSourceCommand.ts\n\n\n\nvar DeleteDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteDataSource\", {}).n(\"AppSyncClient\", \"DeleteDataSourceCommand\").f(void 0, void 0).ser(se_DeleteDataSourceCommand).de(de_DeleteDataSourceCommand).build() {\n static {\n __name(this, \"DeleteDataSourceCommand\");\n }\n};\n\n// src/commands/DeleteDomainNameCommand.ts\n\n\n\nvar DeleteDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteDomainName\", {}).n(\"AppSyncClient\", \"DeleteDomainNameCommand\").f(void 0, void 0).ser(se_DeleteDomainNameCommand).de(de_DeleteDomainNameCommand).build() {\n static {\n __name(this, \"DeleteDomainNameCommand\");\n }\n};\n\n// src/commands/DeleteFunctionCommand.ts\n\n\n\nvar DeleteFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteFunction\", {}).n(\"AppSyncClient\", \"DeleteFunctionCommand\").f(void 0, void 0).ser(se_DeleteFunctionCommand).de(de_DeleteFunctionCommand).build() {\n static {\n __name(this, \"DeleteFunctionCommand\");\n }\n};\n\n// src/commands/DeleteGraphqlApiCommand.ts\n\n\n\nvar DeleteGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteGraphqlApi\", {}).n(\"AppSyncClient\", \"DeleteGraphqlApiCommand\").f(void 0, void 0).ser(se_DeleteGraphqlApiCommand).de(de_DeleteGraphqlApiCommand).build() {\n static {\n __name(this, \"DeleteGraphqlApiCommand\");\n }\n};\n\n// src/commands/DeleteResolverCommand.ts\n\n\n\nvar DeleteResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteResolver\", {}).n(\"AppSyncClient\", \"DeleteResolverCommand\").f(void 0, void 0).ser(se_DeleteResolverCommand).de(de_DeleteResolverCommand).build() {\n static {\n __name(this, \"DeleteResolverCommand\");\n }\n};\n\n// src/commands/DeleteTypeCommand.ts\n\n\n\nvar DeleteTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DeleteType\", {}).n(\"AppSyncClient\", \"DeleteTypeCommand\").f(void 0, void 0).ser(se_DeleteTypeCommand).de(de_DeleteTypeCommand).build() {\n static {\n __name(this, \"DeleteTypeCommand\");\n }\n};\n\n// src/commands/DisassociateApiCommand.ts\n\n\n\nvar DisassociateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DisassociateApi\", {}).n(\"AppSyncClient\", \"DisassociateApiCommand\").f(void 0, void 0).ser(se_DisassociateApiCommand).de(de_DisassociateApiCommand).build() {\n static {\n __name(this, \"DisassociateApiCommand\");\n }\n};\n\n// src/commands/DisassociateMergedGraphqlApiCommand.ts\n\n\n\nvar DisassociateMergedGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DisassociateMergedGraphqlApi\", {}).n(\"AppSyncClient\", \"DisassociateMergedGraphqlApiCommand\").f(void 0, void 0).ser(se_DisassociateMergedGraphqlApiCommand).de(de_DisassociateMergedGraphqlApiCommand).build() {\n static {\n __name(this, \"DisassociateMergedGraphqlApiCommand\");\n }\n};\n\n// src/commands/DisassociateSourceGraphqlApiCommand.ts\n\n\n\nvar DisassociateSourceGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"DisassociateSourceGraphqlApi\", {}).n(\"AppSyncClient\", \"DisassociateSourceGraphqlApiCommand\").f(void 0, void 0).ser(se_DisassociateSourceGraphqlApiCommand).de(de_DisassociateSourceGraphqlApiCommand).build() {\n static {\n __name(this, \"DisassociateSourceGraphqlApiCommand\");\n }\n};\n\n// src/commands/EvaluateCodeCommand.ts\n\n\n\nvar EvaluateCodeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"EvaluateCode\", {}).n(\"AppSyncClient\", \"EvaluateCodeCommand\").f(void 0, void 0).ser(se_EvaluateCodeCommand).de(de_EvaluateCodeCommand).build() {\n static {\n __name(this, \"EvaluateCodeCommand\");\n }\n};\n\n// src/commands/EvaluateMappingTemplateCommand.ts\n\n\n\nvar EvaluateMappingTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"EvaluateMappingTemplate\", {}).n(\"AppSyncClient\", \"EvaluateMappingTemplateCommand\").f(void 0, void 0).ser(se_EvaluateMappingTemplateCommand).de(de_EvaluateMappingTemplateCommand).build() {\n static {\n __name(this, \"EvaluateMappingTemplateCommand\");\n }\n};\n\n// src/commands/FlushApiCacheCommand.ts\n\n\n\nvar FlushApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"FlushApiCache\", {}).n(\"AppSyncClient\", \"FlushApiCacheCommand\").f(void 0, void 0).ser(se_FlushApiCacheCommand).de(de_FlushApiCacheCommand).build() {\n static {\n __name(this, \"FlushApiCacheCommand\");\n }\n};\n\n// src/commands/GetApiAssociationCommand.ts\n\n\n\nvar GetApiAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetApiAssociation\", {}).n(\"AppSyncClient\", \"GetApiAssociationCommand\").f(void 0, void 0).ser(se_GetApiAssociationCommand).de(de_GetApiAssociationCommand).build() {\n static {\n __name(this, \"GetApiAssociationCommand\");\n }\n};\n\n// src/commands/GetApiCacheCommand.ts\n\n\n\nvar GetApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetApiCache\", {}).n(\"AppSyncClient\", \"GetApiCacheCommand\").f(void 0, void 0).ser(se_GetApiCacheCommand).de(de_GetApiCacheCommand).build() {\n static {\n __name(this, \"GetApiCacheCommand\");\n }\n};\n\n// src/commands/GetApiCommand.ts\n\n\n\nvar GetApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetApi\", {}).n(\"AppSyncClient\", \"GetApiCommand\").f(void 0, void 0).ser(se_GetApiCommand).de(de_GetApiCommand).build() {\n static {\n __name(this, \"GetApiCommand\");\n }\n};\n\n// src/commands/GetChannelNamespaceCommand.ts\n\n\n\nvar GetChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetChannelNamespace\", {}).n(\"AppSyncClient\", \"GetChannelNamespaceCommand\").f(void 0, void 0).ser(se_GetChannelNamespaceCommand).de(de_GetChannelNamespaceCommand).build() {\n static {\n __name(this, \"GetChannelNamespaceCommand\");\n }\n};\n\n// src/commands/GetDataSourceCommand.ts\n\n\n\nvar GetDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetDataSource\", {}).n(\"AppSyncClient\", \"GetDataSourceCommand\").f(void 0, void 0).ser(se_GetDataSourceCommand).de(de_GetDataSourceCommand).build() {\n static {\n __name(this, \"GetDataSourceCommand\");\n }\n};\n\n// src/commands/GetDataSourceIntrospectionCommand.ts\n\n\n\nvar GetDataSourceIntrospectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetDataSourceIntrospection\", {}).n(\"AppSyncClient\", \"GetDataSourceIntrospectionCommand\").f(void 0, void 0).ser(se_GetDataSourceIntrospectionCommand).de(de_GetDataSourceIntrospectionCommand).build() {\n static {\n __name(this, \"GetDataSourceIntrospectionCommand\");\n }\n};\n\n// src/commands/GetDomainNameCommand.ts\n\n\n\nvar GetDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetDomainName\", {}).n(\"AppSyncClient\", \"GetDomainNameCommand\").f(void 0, void 0).ser(se_GetDomainNameCommand).de(de_GetDomainNameCommand).build() {\n static {\n __name(this, \"GetDomainNameCommand\");\n }\n};\n\n// src/commands/GetFunctionCommand.ts\n\n\n\nvar GetFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetFunction\", {}).n(\"AppSyncClient\", \"GetFunctionCommand\").f(void 0, void 0).ser(se_GetFunctionCommand).de(de_GetFunctionCommand).build() {\n static {\n __name(this, \"GetFunctionCommand\");\n }\n};\n\n// src/commands/GetGraphqlApiCommand.ts\n\n\n\nvar GetGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetGraphqlApi\", {}).n(\"AppSyncClient\", \"GetGraphqlApiCommand\").f(void 0, void 0).ser(se_GetGraphqlApiCommand).de(de_GetGraphqlApiCommand).build() {\n static {\n __name(this, \"GetGraphqlApiCommand\");\n }\n};\n\n// src/commands/GetGraphqlApiEnvironmentVariablesCommand.ts\n\n\n\nvar GetGraphqlApiEnvironmentVariablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetGraphqlApiEnvironmentVariables\", {}).n(\"AppSyncClient\", \"GetGraphqlApiEnvironmentVariablesCommand\").f(void 0, void 0).ser(se_GetGraphqlApiEnvironmentVariablesCommand).de(de_GetGraphqlApiEnvironmentVariablesCommand).build() {\n static {\n __name(this, \"GetGraphqlApiEnvironmentVariablesCommand\");\n }\n};\n\n// src/commands/GetIntrospectionSchemaCommand.ts\n\n\n\nvar GetIntrospectionSchemaCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetIntrospectionSchema\", {}).n(\"AppSyncClient\", \"GetIntrospectionSchemaCommand\").f(void 0, void 0).ser(se_GetIntrospectionSchemaCommand).de(de_GetIntrospectionSchemaCommand).build() {\n static {\n __name(this, \"GetIntrospectionSchemaCommand\");\n }\n};\n\n// src/commands/GetResolverCommand.ts\n\n\n\nvar GetResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetResolver\", {}).n(\"AppSyncClient\", \"GetResolverCommand\").f(void 0, void 0).ser(se_GetResolverCommand).de(de_GetResolverCommand).build() {\n static {\n __name(this, \"GetResolverCommand\");\n }\n};\n\n// src/commands/GetSchemaCreationStatusCommand.ts\n\n\n\nvar GetSchemaCreationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetSchemaCreationStatus\", {}).n(\"AppSyncClient\", \"GetSchemaCreationStatusCommand\").f(void 0, void 0).ser(se_GetSchemaCreationStatusCommand).de(de_GetSchemaCreationStatusCommand).build() {\n static {\n __name(this, \"GetSchemaCreationStatusCommand\");\n }\n};\n\n// src/commands/GetSourceApiAssociationCommand.ts\n\n\n\nvar GetSourceApiAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetSourceApiAssociation\", {}).n(\"AppSyncClient\", \"GetSourceApiAssociationCommand\").f(void 0, void 0).ser(se_GetSourceApiAssociationCommand).de(de_GetSourceApiAssociationCommand).build() {\n static {\n __name(this, \"GetSourceApiAssociationCommand\");\n }\n};\n\n// src/commands/GetTypeCommand.ts\n\n\n\nvar GetTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"GetType\", {}).n(\"AppSyncClient\", \"GetTypeCommand\").f(void 0, void 0).ser(se_GetTypeCommand).de(de_GetTypeCommand).build() {\n static {\n __name(this, \"GetTypeCommand\");\n }\n};\n\n// src/commands/ListApiKeysCommand.ts\n\n\n\nvar ListApiKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListApiKeys\", {}).n(\"AppSyncClient\", \"ListApiKeysCommand\").f(void 0, void 0).ser(se_ListApiKeysCommand).de(de_ListApiKeysCommand).build() {\n static {\n __name(this, \"ListApiKeysCommand\");\n }\n};\n\n// src/commands/ListApisCommand.ts\n\n\n\nvar ListApisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListApis\", {}).n(\"AppSyncClient\", \"ListApisCommand\").f(void 0, void 0).ser(se_ListApisCommand).de(de_ListApisCommand).build() {\n static {\n __name(this, \"ListApisCommand\");\n }\n};\n\n// src/commands/ListChannelNamespacesCommand.ts\n\n\n\nvar ListChannelNamespacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListChannelNamespaces\", {}).n(\"AppSyncClient\", \"ListChannelNamespacesCommand\").f(void 0, void 0).ser(se_ListChannelNamespacesCommand).de(de_ListChannelNamespacesCommand).build() {\n static {\n __name(this, \"ListChannelNamespacesCommand\");\n }\n};\n\n// src/commands/ListDataSourcesCommand.ts\n\n\n\nvar ListDataSourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListDataSources\", {}).n(\"AppSyncClient\", \"ListDataSourcesCommand\").f(void 0, void 0).ser(se_ListDataSourcesCommand).de(de_ListDataSourcesCommand).build() {\n static {\n __name(this, \"ListDataSourcesCommand\");\n }\n};\n\n// src/commands/ListDomainNamesCommand.ts\n\n\n\nvar ListDomainNamesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListDomainNames\", {}).n(\"AppSyncClient\", \"ListDomainNamesCommand\").f(void 0, void 0).ser(se_ListDomainNamesCommand).de(de_ListDomainNamesCommand).build() {\n static {\n __name(this, \"ListDomainNamesCommand\");\n }\n};\n\n// src/commands/ListFunctionsCommand.ts\n\n\n\nvar ListFunctionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListFunctions\", {}).n(\"AppSyncClient\", \"ListFunctionsCommand\").f(void 0, void 0).ser(se_ListFunctionsCommand).de(de_ListFunctionsCommand).build() {\n static {\n __name(this, \"ListFunctionsCommand\");\n }\n};\n\n// src/commands/ListGraphqlApisCommand.ts\n\n\n\nvar ListGraphqlApisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListGraphqlApis\", {}).n(\"AppSyncClient\", \"ListGraphqlApisCommand\").f(void 0, void 0).ser(se_ListGraphqlApisCommand).de(de_ListGraphqlApisCommand).build() {\n static {\n __name(this, \"ListGraphqlApisCommand\");\n }\n};\n\n// src/commands/ListResolversByFunctionCommand.ts\n\n\n\nvar ListResolversByFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListResolversByFunction\", {}).n(\"AppSyncClient\", \"ListResolversByFunctionCommand\").f(void 0, void 0).ser(se_ListResolversByFunctionCommand).de(de_ListResolversByFunctionCommand).build() {\n static {\n __name(this, \"ListResolversByFunctionCommand\");\n }\n};\n\n// src/commands/ListResolversCommand.ts\n\n\n\nvar ListResolversCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListResolvers\", {}).n(\"AppSyncClient\", \"ListResolversCommand\").f(void 0, void 0).ser(se_ListResolversCommand).de(de_ListResolversCommand).build() {\n static {\n __name(this, \"ListResolversCommand\");\n }\n};\n\n// src/commands/ListSourceApiAssociationsCommand.ts\n\n\n\nvar ListSourceApiAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListSourceApiAssociations\", {}).n(\"AppSyncClient\", \"ListSourceApiAssociationsCommand\").f(void 0, void 0).ser(se_ListSourceApiAssociationsCommand).de(de_ListSourceApiAssociationsCommand).build() {\n static {\n __name(this, \"ListSourceApiAssociationsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListTagsForResource\", {}).n(\"AppSyncClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTypesByAssociationCommand.ts\n\n\n\nvar ListTypesByAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListTypesByAssociation\", {}).n(\"AppSyncClient\", \"ListTypesByAssociationCommand\").f(void 0, void 0).ser(se_ListTypesByAssociationCommand).de(de_ListTypesByAssociationCommand).build() {\n static {\n __name(this, \"ListTypesByAssociationCommand\");\n }\n};\n\n// src/commands/ListTypesCommand.ts\n\n\n\nvar ListTypesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"ListTypes\", {}).n(\"AppSyncClient\", \"ListTypesCommand\").f(void 0, void 0).ser(se_ListTypesCommand).de(de_ListTypesCommand).build() {\n static {\n __name(this, \"ListTypesCommand\");\n }\n};\n\n// src/commands/PutGraphqlApiEnvironmentVariablesCommand.ts\n\n\n\nvar PutGraphqlApiEnvironmentVariablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"PutGraphqlApiEnvironmentVariables\", {}).n(\"AppSyncClient\", \"PutGraphqlApiEnvironmentVariablesCommand\").f(void 0, void 0).ser(se_PutGraphqlApiEnvironmentVariablesCommand).de(de_PutGraphqlApiEnvironmentVariablesCommand).build() {\n static {\n __name(this, \"PutGraphqlApiEnvironmentVariablesCommand\");\n }\n};\n\n// src/commands/StartDataSourceIntrospectionCommand.ts\n\n\n\nvar StartDataSourceIntrospectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"StartDataSourceIntrospection\", {}).n(\"AppSyncClient\", \"StartDataSourceIntrospectionCommand\").f(void 0, void 0).ser(se_StartDataSourceIntrospectionCommand).de(de_StartDataSourceIntrospectionCommand).build() {\n static {\n __name(this, \"StartDataSourceIntrospectionCommand\");\n }\n};\n\n// src/commands/StartSchemaCreationCommand.ts\n\n\n\nvar StartSchemaCreationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"StartSchemaCreation\", {}).n(\"AppSyncClient\", \"StartSchemaCreationCommand\").f(void 0, void 0).ser(se_StartSchemaCreationCommand).de(de_StartSchemaCreationCommand).build() {\n static {\n __name(this, \"StartSchemaCreationCommand\");\n }\n};\n\n// src/commands/StartSchemaMergeCommand.ts\n\n\n\nvar StartSchemaMergeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"StartSchemaMerge\", {}).n(\"AppSyncClient\", \"StartSchemaMergeCommand\").f(void 0, void 0).ser(se_StartSchemaMergeCommand).de(de_StartSchemaMergeCommand).build() {\n static {\n __name(this, \"StartSchemaMergeCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"TagResource\", {}).n(\"AppSyncClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UntagResource\", {}).n(\"AppSyncClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateApiCacheCommand.ts\n\n\n\nvar UpdateApiCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateApiCache\", {}).n(\"AppSyncClient\", \"UpdateApiCacheCommand\").f(void 0, void 0).ser(se_UpdateApiCacheCommand).de(de_UpdateApiCacheCommand).build() {\n static {\n __name(this, \"UpdateApiCacheCommand\");\n }\n};\n\n// src/commands/UpdateApiCommand.ts\n\n\n\nvar UpdateApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateApi\", {}).n(\"AppSyncClient\", \"UpdateApiCommand\").f(void 0, void 0).ser(se_UpdateApiCommand).de(de_UpdateApiCommand).build() {\n static {\n __name(this, \"UpdateApiCommand\");\n }\n};\n\n// src/commands/UpdateApiKeyCommand.ts\n\n\n\nvar UpdateApiKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateApiKey\", {}).n(\"AppSyncClient\", \"UpdateApiKeyCommand\").f(void 0, void 0).ser(se_UpdateApiKeyCommand).de(de_UpdateApiKeyCommand).build() {\n static {\n __name(this, \"UpdateApiKeyCommand\");\n }\n};\n\n// src/commands/UpdateChannelNamespaceCommand.ts\n\n\n\nvar UpdateChannelNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateChannelNamespace\", {}).n(\"AppSyncClient\", \"UpdateChannelNamespaceCommand\").f(void 0, void 0).ser(se_UpdateChannelNamespaceCommand).de(de_UpdateChannelNamespaceCommand).build() {\n static {\n __name(this, \"UpdateChannelNamespaceCommand\");\n }\n};\n\n// src/commands/UpdateDataSourceCommand.ts\n\n\n\nvar UpdateDataSourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateDataSource\", {}).n(\"AppSyncClient\", \"UpdateDataSourceCommand\").f(void 0, void 0).ser(se_UpdateDataSourceCommand).de(de_UpdateDataSourceCommand).build() {\n static {\n __name(this, \"UpdateDataSourceCommand\");\n }\n};\n\n// src/commands/UpdateDomainNameCommand.ts\n\n\n\nvar UpdateDomainNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateDomainName\", {}).n(\"AppSyncClient\", \"UpdateDomainNameCommand\").f(void 0, void 0).ser(se_UpdateDomainNameCommand).de(de_UpdateDomainNameCommand).build() {\n static {\n __name(this, \"UpdateDomainNameCommand\");\n }\n};\n\n// src/commands/UpdateFunctionCommand.ts\n\n\n\nvar UpdateFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateFunction\", {}).n(\"AppSyncClient\", \"UpdateFunctionCommand\").f(void 0, void 0).ser(se_UpdateFunctionCommand).de(de_UpdateFunctionCommand).build() {\n static {\n __name(this, \"UpdateFunctionCommand\");\n }\n};\n\n// src/commands/UpdateGraphqlApiCommand.ts\n\n\n\nvar UpdateGraphqlApiCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateGraphqlApi\", {}).n(\"AppSyncClient\", \"UpdateGraphqlApiCommand\").f(void 0, void 0).ser(se_UpdateGraphqlApiCommand).de(de_UpdateGraphqlApiCommand).build() {\n static {\n __name(this, \"UpdateGraphqlApiCommand\");\n }\n};\n\n// src/commands/UpdateResolverCommand.ts\n\n\n\nvar UpdateResolverCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateResolver\", {}).n(\"AppSyncClient\", \"UpdateResolverCommand\").f(void 0, void 0).ser(se_UpdateResolverCommand).de(de_UpdateResolverCommand).build() {\n static {\n __name(this, \"UpdateResolverCommand\");\n }\n};\n\n// src/commands/UpdateSourceApiAssociationCommand.ts\n\n\n\nvar UpdateSourceApiAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateSourceApiAssociation\", {}).n(\"AppSyncClient\", \"UpdateSourceApiAssociationCommand\").f(void 0, void 0).ser(se_UpdateSourceApiAssociationCommand).de(de_UpdateSourceApiAssociationCommand).build() {\n static {\n __name(this, \"UpdateSourceApiAssociationCommand\");\n }\n};\n\n// src/commands/UpdateTypeCommand.ts\n\n\n\nvar UpdateTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDeepdishControlPlaneService\", \"UpdateType\", {}).n(\"AppSyncClient\", \"UpdateTypeCommand\").f(void 0, void 0).ser(se_UpdateTypeCommand).de(de_UpdateTypeCommand).build() {\n static {\n __name(this, \"UpdateTypeCommand\");\n }\n};\n\n// src/AppSync.ts\nvar commands = {\n AssociateApiCommand,\n AssociateMergedGraphqlApiCommand,\n AssociateSourceGraphqlApiCommand,\n CreateApiCommand,\n CreateApiCacheCommand,\n CreateApiKeyCommand,\n CreateChannelNamespaceCommand,\n CreateDataSourceCommand,\n CreateDomainNameCommand,\n CreateFunctionCommand,\n CreateGraphqlApiCommand,\n CreateResolverCommand,\n CreateTypeCommand,\n DeleteApiCommand,\n DeleteApiCacheCommand,\n DeleteApiKeyCommand,\n DeleteChannelNamespaceCommand,\n DeleteDataSourceCommand,\n DeleteDomainNameCommand,\n DeleteFunctionCommand,\n DeleteGraphqlApiCommand,\n DeleteResolverCommand,\n DeleteTypeCommand,\n DisassociateApiCommand,\n DisassociateMergedGraphqlApiCommand,\n DisassociateSourceGraphqlApiCommand,\n EvaluateCodeCommand,\n EvaluateMappingTemplateCommand,\n FlushApiCacheCommand,\n GetApiCommand,\n GetApiAssociationCommand,\n GetApiCacheCommand,\n GetChannelNamespaceCommand,\n GetDataSourceCommand,\n GetDataSourceIntrospectionCommand,\n GetDomainNameCommand,\n GetFunctionCommand,\n GetGraphqlApiCommand,\n GetGraphqlApiEnvironmentVariablesCommand,\n GetIntrospectionSchemaCommand,\n GetResolverCommand,\n GetSchemaCreationStatusCommand,\n GetSourceApiAssociationCommand,\n GetTypeCommand,\n ListApiKeysCommand,\n ListApisCommand,\n ListChannelNamespacesCommand,\n ListDataSourcesCommand,\n ListDomainNamesCommand,\n ListFunctionsCommand,\n ListGraphqlApisCommand,\n ListResolversCommand,\n ListResolversByFunctionCommand,\n ListSourceApiAssociationsCommand,\n ListTagsForResourceCommand,\n ListTypesCommand,\n ListTypesByAssociationCommand,\n PutGraphqlApiEnvironmentVariablesCommand,\n StartDataSourceIntrospectionCommand,\n StartSchemaCreationCommand,\n StartSchemaMergeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateApiCommand,\n UpdateApiCacheCommand,\n UpdateApiKeyCommand,\n UpdateChannelNamespaceCommand,\n UpdateDataSourceCommand,\n UpdateDomainNameCommand,\n UpdateFunctionCommand,\n UpdateGraphqlApiCommand,\n UpdateResolverCommand,\n UpdateSourceApiAssociationCommand,\n UpdateTypeCommand\n};\nvar AppSync = class extends AppSyncClient {\n static {\n __name(this, \"AppSync\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, AppSync);\n\n// src/pagination/ListApiKeysPaginator.ts\n\nvar paginateListApiKeys = (0, import_core.createPaginator)(AppSyncClient, ListApiKeysCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListApisPaginator.ts\n\nvar paginateListApis = (0, import_core.createPaginator)(AppSyncClient, ListApisCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListChannelNamespacesPaginator.ts\n\nvar paginateListChannelNamespaces = (0, import_core.createPaginator)(AppSyncClient, ListChannelNamespacesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListDataSourcesPaginator.ts\n\nvar paginateListDataSources = (0, import_core.createPaginator)(AppSyncClient, ListDataSourcesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListDomainNamesPaginator.ts\n\nvar paginateListDomainNames = (0, import_core.createPaginator)(AppSyncClient, ListDomainNamesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListFunctionsPaginator.ts\n\nvar paginateListFunctions = (0, import_core.createPaginator)(AppSyncClient, ListFunctionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListGraphqlApisPaginator.ts\n\nvar paginateListGraphqlApis = (0, import_core.createPaginator)(AppSyncClient, ListGraphqlApisCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListResolversByFunctionPaginator.ts\n\nvar paginateListResolversByFunction = (0, import_core.createPaginator)(AppSyncClient, ListResolversByFunctionCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListResolversPaginator.ts\n\nvar paginateListResolvers = (0, import_core.createPaginator)(AppSyncClient, ListResolversCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSourceApiAssociationsPaginator.ts\n\nvar paginateListSourceApiAssociations = (0, import_core.createPaginator)(AppSyncClient, ListSourceApiAssociationsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTypesByAssociationPaginator.ts\n\nvar paginateListTypesByAssociation = (0, import_core.createPaginator)(AppSyncClient, ListTypesByAssociationCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTypesPaginator.ts\n\nvar paginateListTypes = (0, import_core.createPaginator)(AppSyncClient, ListTypesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n AppSyncServiceException,\n __Client,\n AppSyncClient,\n AppSync,\n $Command,\n AssociateApiCommand,\n AssociateMergedGraphqlApiCommand,\n AssociateSourceGraphqlApiCommand,\n CreateApiCacheCommand,\n CreateApiCommand,\n CreateApiKeyCommand,\n CreateChannelNamespaceCommand,\n CreateDataSourceCommand,\n CreateDomainNameCommand,\n CreateFunctionCommand,\n CreateGraphqlApiCommand,\n CreateResolverCommand,\n CreateTypeCommand,\n DeleteApiCacheCommand,\n DeleteApiCommand,\n DeleteApiKeyCommand,\n DeleteChannelNamespaceCommand,\n DeleteDataSourceCommand,\n DeleteDomainNameCommand,\n DeleteFunctionCommand,\n DeleteGraphqlApiCommand,\n DeleteResolverCommand,\n DeleteTypeCommand,\n DisassociateApiCommand,\n DisassociateMergedGraphqlApiCommand,\n DisassociateSourceGraphqlApiCommand,\n EvaluateCodeCommand,\n EvaluateMappingTemplateCommand,\n FlushApiCacheCommand,\n GetApiAssociationCommand,\n GetApiCacheCommand,\n GetApiCommand,\n GetChannelNamespaceCommand,\n GetDataSourceCommand,\n GetDataSourceIntrospectionCommand,\n GetDomainNameCommand,\n GetFunctionCommand,\n GetGraphqlApiCommand,\n GetGraphqlApiEnvironmentVariablesCommand,\n GetIntrospectionSchemaCommand,\n GetResolverCommand,\n GetSchemaCreationStatusCommand,\n GetSourceApiAssociationCommand,\n GetTypeCommand,\n ListApiKeysCommand,\n ListApisCommand,\n ListChannelNamespacesCommand,\n ListDataSourcesCommand,\n ListDomainNamesCommand,\n ListFunctionsCommand,\n ListGraphqlApisCommand,\n ListResolversByFunctionCommand,\n ListResolversCommand,\n ListSourceApiAssociationsCommand,\n ListTagsForResourceCommand,\n ListTypesByAssociationCommand,\n ListTypesCommand,\n PutGraphqlApiEnvironmentVariablesCommand,\n StartDataSourceIntrospectionCommand,\n StartSchemaCreationCommand,\n StartSchemaMergeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateApiCacheCommand,\n UpdateApiCommand,\n UpdateApiKeyCommand,\n UpdateChannelNamespaceCommand,\n UpdateDataSourceCommand,\n UpdateDomainNameCommand,\n UpdateFunctionCommand,\n UpdateGraphqlApiCommand,\n UpdateResolverCommand,\n UpdateSourceApiAssociationCommand,\n UpdateTypeCommand,\n paginateListApiKeys,\n paginateListApis,\n paginateListChannelNamespaces,\n paginateListDataSources,\n paginateListDomainNames,\n paginateListFunctions,\n paginateListGraphqlApis,\n paginateListResolversByFunction,\n paginateListResolvers,\n paginateListSourceApiAssociations,\n paginateListTypesByAssociation,\n paginateListTypes,\n AccessDeniedException,\n AuthenticationType,\n EventLogLevel,\n AssociationStatus,\n ApiCachingBehavior,\n CacheHealthMetricsConfig,\n ApiCacheStatus,\n ApiCacheType,\n ApiKeyLimitExceededException,\n ApiKeyValidityOutOfBoundsException,\n ApiLimitExceededException,\n RuntimeName,\n BadRequestReason,\n BadRequestException,\n InternalFailureException,\n NotFoundException,\n MergeType,\n SourceApiAssociationStatus,\n ConcurrentModificationException,\n LimitExceededException,\n UnauthorizedException,\n AuthorizationType,\n ServiceQuotaExceededException,\n ConflictException,\n HandlerBehavior,\n InvokeType,\n DataSourceLevelMetricsConfig,\n RelationalDatabaseSourceType,\n DataSourceType,\n ConflictDetectionType,\n ConflictHandlerType,\n GraphQLApiType,\n DataSourceLevelMetricsBehavior,\n OperationLevelMetricsConfig,\n ResolverLevelMetricsBehavior,\n GraphQLApiIntrospectionConfig,\n FieldLogLevel,\n DefaultAction,\n GraphQLApiVisibility,\n ResolverKind,\n ResolverLevelMetricsConfig,\n TypeDefinitionFormat,\n DataSourceIntrospectionStatus,\n OutputType,\n GraphQLSchemaException,\n SchemaStatus,\n Ownership\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2017-07-25\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultAppSyncHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"AppSync\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultBedrockAgentCoreControlHttpAuthSchemeProvider = exports.defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: await (0, util_middleware_1.normalizeProvider)(config.region)() || (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider = defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"bedrock-agentcore\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultBedrockAgentCoreControlHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultBedrockAgentCoreControlHttpAuthSchemeProvider = defaultBedrockAgentCoreControlHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, httpAuthSchemes_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bdd = void 0;\nconst util_endpoints_1 = require(\"@smithy/util-endpoints\");\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]]\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://bedrock-agentcore-control-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://bedrock-agentcore-control-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://bedrock-agentcore-control.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://bedrock-agentcore-control.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"]\n ]\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1, 1, -1,\n 0, 12, 3,\n 1, 4, r + 11,\n 2, 5, r + 11,\n 3, 8, 6,\n 4, 7, r + 10,\n 5, r + 8, r + 9,\n 4, 10, 9,\n 6, r + 6, r + 7,\n 5, 11, r + 5,\n 6, r + 4, r + 5,\n 3, r + 1, 13,\n 4, r + 2, r + 3,\n]);\nexports.bdd = util_endpoints_1.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst bdd_1 = require(\"./bdd\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.decideEndpoint)(bdd_1.bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","'use strict';\n\nvar middlewareHostHeader = require('@aws-sdk/middleware-host-header');\nvar middlewareLogger = require('@aws-sdk/middleware-logger');\nvar middlewareRecursionDetection = require('@aws-sdk/middleware-recursion-detection');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\nvar configResolver = require('@smithy/config-resolver');\nvar core = require('@smithy/core');\nvar schema = require('@smithy/core/schema');\nvar middlewareContentLength = require('@smithy/middleware-content-length');\nvar middlewareEndpoint = require('@smithy/middleware-endpoint');\nvar middlewareRetry = require('@smithy/middleware-retry');\nvar smithyClient = require('@smithy/smithy-client');\nvar httpAuthSchemeProvider = require('./auth/httpAuthSchemeProvider');\nvar runtimeConfig = require('./runtimeConfig');\nvar regionConfigResolver = require('@aws-sdk/region-config-resolver');\nvar protocolHttp = require('@smithy/protocol-http');\nvar schemas_0 = require('./schemas/schemas_0');\nvar utilWaiter = require('@smithy/util-waiter');\nvar errors = require('./models/errors');\nvar BedrockAgentCoreControlServiceException = require('./models/BedrockAgentCoreControlServiceException');\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"bedrock-agentcore\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(regionConfigResolver.getAwsRegionExtensionConfiguration(runtimeConfig), smithyClient.getDefaultExtensionConfiguration(runtimeConfig), protocolHttp.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, regionConfigResolver.resolveAwsRegionExtensionConfiguration(extensionConfiguration), smithyClient.resolveDefaultRuntimeConfig(extensionConfiguration), protocolHttp.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass BedrockAgentCoreControlClient extends smithyClient.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = runtimeConfig.getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = middlewareUserAgent.resolveUserAgentConfig(_config_1);\n const _config_3 = middlewareRetry.resolveRetryConfig(_config_2);\n const _config_4 = configResolver.resolveRegionConfig(_config_3);\n const _config_5 = middlewareHostHeader.resolveHostHeaderConfig(_config_4);\n const _config_6 = middlewareEndpoint.resolveEndpointConfig(_config_5);\n const _config_7 = httpAuthSchemeProvider.resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(middlewareUserAgent.getUserAgentPlugin(this.config));\n this.middlewareStack.use(middlewareRetry.getRetryPlugin(this.config));\n this.middlewareStack.use(middlewareContentLength.getContentLengthPlugin(this.config));\n this.middlewareStack.use(middlewareHostHeader.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(middlewareLogger.getLoggerPlugin(this.config));\n this.middlewareStack.use(middlewareRecursionDetection.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider.defaultBedrockAgentCoreControlHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass CreateAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateAgentRuntimeCommand\")\n .sc(schemas_0.CreateAgentRuntime$)\n .build() {\n}\n\nclass CreateAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateAgentRuntimeEndpointCommand\")\n .sc(schemas_0.CreateAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass CreateApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateApiKeyCredentialProviderCommand\")\n .sc(schemas_0.CreateApiKeyCredentialProvider$)\n .build() {\n}\n\nclass CreateBrowserCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateBrowser\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateBrowserCommand\")\n .sc(schemas_0.CreateBrowser$)\n .build() {\n}\n\nclass CreateBrowserProfileCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateBrowserProfile\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateBrowserProfileCommand\")\n .sc(schemas_0.CreateBrowserProfile$)\n .build() {\n}\n\nclass CreateCodeInterpreterCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateCodeInterpreter\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateCodeInterpreterCommand\")\n .sc(schemas_0.CreateCodeInterpreter$)\n .build() {\n}\n\nclass CreateEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateEvaluatorCommand\")\n .sc(schemas_0.CreateEvaluator$)\n .build() {\n}\n\nclass CreateGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateGatewayCommand\")\n .sc(schemas_0.CreateGateway$)\n .build() {\n}\n\nclass CreateGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateGatewayTargetCommand\")\n .sc(schemas_0.CreateGatewayTarget$)\n .build() {\n}\n\nclass CreateMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateMemoryCommand\")\n .sc(schemas_0.CreateMemory$)\n .build() {\n}\n\nclass CreateOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateOauth2CredentialProviderCommand\")\n .sc(schemas_0.CreateOauth2CredentialProvider$)\n .build() {\n}\n\nclass CreateOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateOnlineEvaluationConfigCommand\")\n .sc(schemas_0.CreateOnlineEvaluationConfig$)\n .build() {\n}\n\nclass CreatePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreatePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreatePolicyCommand\")\n .sc(schemas_0.CreatePolicy$)\n .build() {\n}\n\nclass CreatePolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreatePolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreatePolicyEngineCommand\")\n .sc(schemas_0.CreatePolicyEngine$)\n .build() {\n}\n\nclass CreateRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateRegistryCommand\")\n .sc(schemas_0.CreateRegistry$)\n .build() {\n}\n\nclass CreateRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateRegistryRecordCommand\")\n .sc(schemas_0.CreateRegistryRecord$)\n .build() {\n}\n\nclass CreateWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"CreateWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"CreateWorkloadIdentityCommand\")\n .sc(schemas_0.CreateWorkloadIdentity$)\n .build() {\n}\n\nclass DeleteAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteAgentRuntimeCommand\")\n .sc(schemas_0.DeleteAgentRuntime$)\n .build() {\n}\n\nclass DeleteAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteAgentRuntimeEndpointCommand\")\n .sc(schemas_0.DeleteAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass DeleteApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteApiKeyCredentialProviderCommand\")\n .sc(schemas_0.DeleteApiKeyCredentialProvider$)\n .build() {\n}\n\nclass DeleteBrowserCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteBrowser\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteBrowserCommand\")\n .sc(schemas_0.DeleteBrowser$)\n .build() {\n}\n\nclass DeleteBrowserProfileCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteBrowserProfile\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteBrowserProfileCommand\")\n .sc(schemas_0.DeleteBrowserProfile$)\n .build() {\n}\n\nclass DeleteCodeInterpreterCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteCodeInterpreter\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteCodeInterpreterCommand\")\n .sc(schemas_0.DeleteCodeInterpreter$)\n .build() {\n}\n\nclass DeleteEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteEvaluatorCommand\")\n .sc(schemas_0.DeleteEvaluator$)\n .build() {\n}\n\nclass DeleteGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteGatewayCommand\")\n .sc(schemas_0.DeleteGateway$)\n .build() {\n}\n\nclass DeleteGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteGatewayTargetCommand\")\n .sc(schemas_0.DeleteGatewayTarget$)\n .build() {\n}\n\nclass DeleteMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteMemoryCommand\")\n .sc(schemas_0.DeleteMemory$)\n .build() {\n}\n\nclass DeleteOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteOauth2CredentialProviderCommand\")\n .sc(schemas_0.DeleteOauth2CredentialProvider$)\n .build() {\n}\n\nclass DeleteOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteOnlineEvaluationConfigCommand\")\n .sc(schemas_0.DeleteOnlineEvaluationConfig$)\n .build() {\n}\n\nclass DeletePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeletePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeletePolicyCommand\")\n .sc(schemas_0.DeletePolicy$)\n .build() {\n}\n\nclass DeletePolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeletePolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeletePolicyEngineCommand\")\n .sc(schemas_0.DeletePolicyEngine$)\n .build() {\n}\n\nclass DeleteRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteRegistryCommand\")\n .sc(schemas_0.DeleteRegistry$)\n .build() {\n}\n\nclass DeleteRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteRegistryRecordCommand\")\n .sc(schemas_0.DeleteRegistryRecord$)\n .build() {\n}\n\nclass DeleteResourcePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteResourcePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteResourcePolicyCommand\")\n .sc(schemas_0.DeleteResourcePolicy$)\n .build() {\n}\n\nclass DeleteWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"DeleteWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"DeleteWorkloadIdentityCommand\")\n .sc(schemas_0.DeleteWorkloadIdentity$)\n .build() {\n}\n\nclass GetAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetAgentRuntimeCommand\")\n .sc(schemas_0.GetAgentRuntime$)\n .build() {\n}\n\nclass GetAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetAgentRuntimeEndpointCommand\")\n .sc(schemas_0.GetAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass GetApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetApiKeyCredentialProviderCommand\")\n .sc(schemas_0.GetApiKeyCredentialProvider$)\n .build() {\n}\n\nclass GetBrowserCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetBrowser\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetBrowserCommand\")\n .sc(schemas_0.GetBrowser$)\n .build() {\n}\n\nclass GetBrowserProfileCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetBrowserProfile\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetBrowserProfileCommand\")\n .sc(schemas_0.GetBrowserProfile$)\n .build() {\n}\n\nclass GetCodeInterpreterCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetCodeInterpreter\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetCodeInterpreterCommand\")\n .sc(schemas_0.GetCodeInterpreter$)\n .build() {\n}\n\nclass GetEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetEvaluatorCommand\")\n .sc(schemas_0.GetEvaluator$)\n .build() {\n}\n\nclass GetGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetGatewayCommand\")\n .sc(schemas_0.GetGateway$)\n .build() {\n}\n\nclass GetGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetGatewayTargetCommand\")\n .sc(schemas_0.GetGatewayTarget$)\n .build() {\n}\n\nclass GetMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetMemoryCommand\")\n .sc(schemas_0.GetMemory$)\n .build() {\n}\n\nclass GetOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetOauth2CredentialProviderCommand\")\n .sc(schemas_0.GetOauth2CredentialProvider$)\n .build() {\n}\n\nclass GetOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetOnlineEvaluationConfigCommand\")\n .sc(schemas_0.GetOnlineEvaluationConfig$)\n .build() {\n}\n\nclass GetPolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetPolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetPolicyCommand\")\n .sc(schemas_0.GetPolicy$)\n .build() {\n}\n\nclass GetPolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetPolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetPolicyEngineCommand\")\n .sc(schemas_0.GetPolicyEngine$)\n .build() {\n}\n\nclass GetPolicyGenerationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetPolicyGeneration\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetPolicyGenerationCommand\")\n .sc(schemas_0.GetPolicyGeneration$)\n .build() {\n}\n\nclass GetRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetRegistryCommand\")\n .sc(schemas_0.GetRegistry$)\n .build() {\n}\n\nclass GetRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetRegistryRecordCommand\")\n .sc(schemas_0.GetRegistryRecord$)\n .build() {\n}\n\nclass GetResourcePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetResourcePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetResourcePolicyCommand\")\n .sc(schemas_0.GetResourcePolicy$)\n .build() {\n}\n\nclass GetTokenVaultCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetTokenVault\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetTokenVaultCommand\")\n .sc(schemas_0.GetTokenVault$)\n .build() {\n}\n\nclass GetWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"GetWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"GetWorkloadIdentityCommand\")\n .sc(schemas_0.GetWorkloadIdentity$)\n .build() {\n}\n\nclass ListAgentRuntimeEndpointsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListAgentRuntimeEndpoints\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListAgentRuntimeEndpointsCommand\")\n .sc(schemas_0.ListAgentRuntimeEndpoints$)\n .build() {\n}\n\nclass ListAgentRuntimesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListAgentRuntimes\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListAgentRuntimesCommand\")\n .sc(schemas_0.ListAgentRuntimes$)\n .build() {\n}\n\nclass ListAgentRuntimeVersionsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListAgentRuntimeVersions\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListAgentRuntimeVersionsCommand\")\n .sc(schemas_0.ListAgentRuntimeVersions$)\n .build() {\n}\n\nclass ListApiKeyCredentialProvidersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListApiKeyCredentialProviders\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListApiKeyCredentialProvidersCommand\")\n .sc(schemas_0.ListApiKeyCredentialProviders$)\n .build() {\n}\n\nclass ListBrowserProfilesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListBrowserProfiles\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListBrowserProfilesCommand\")\n .sc(schemas_0.ListBrowserProfiles$)\n .build() {\n}\n\nclass ListBrowsersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListBrowsers\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListBrowsersCommand\")\n .sc(schemas_0.ListBrowsers$)\n .build() {\n}\n\nclass ListCodeInterpretersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListCodeInterpreters\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListCodeInterpretersCommand\")\n .sc(schemas_0.ListCodeInterpreters$)\n .build() {\n}\n\nclass ListEvaluatorsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListEvaluators\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListEvaluatorsCommand\")\n .sc(schemas_0.ListEvaluators$)\n .build() {\n}\n\nclass ListGatewaysCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListGateways\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListGatewaysCommand\")\n .sc(schemas_0.ListGateways$)\n .build() {\n}\n\nclass ListGatewayTargetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListGatewayTargets\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListGatewayTargetsCommand\")\n .sc(schemas_0.ListGatewayTargets$)\n .build() {\n}\n\nclass ListMemoriesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListMemories\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListMemoriesCommand\")\n .sc(schemas_0.ListMemories$)\n .build() {\n}\n\nclass ListOauth2CredentialProvidersCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListOauth2CredentialProviders\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListOauth2CredentialProvidersCommand\")\n .sc(schemas_0.ListOauth2CredentialProviders$)\n .build() {\n}\n\nclass ListOnlineEvaluationConfigsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListOnlineEvaluationConfigs\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListOnlineEvaluationConfigsCommand\")\n .sc(schemas_0.ListOnlineEvaluationConfigs$)\n .build() {\n}\n\nclass ListPoliciesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicies\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPoliciesCommand\")\n .sc(schemas_0.ListPolicies$)\n .build() {\n}\n\nclass ListPolicyEnginesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicyEngines\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPolicyEnginesCommand\")\n .sc(schemas_0.ListPolicyEngines$)\n .build() {\n}\n\nclass ListPolicyGenerationAssetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicyGenerationAssets\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPolicyGenerationAssetsCommand\")\n .sc(schemas_0.ListPolicyGenerationAssets$)\n .build() {\n}\n\nclass ListPolicyGenerationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListPolicyGenerations\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListPolicyGenerationsCommand\")\n .sc(schemas_0.ListPolicyGenerations$)\n .build() {\n}\n\nclass ListRegistriesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListRegistries\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListRegistriesCommand\")\n .sc(schemas_0.ListRegistries$)\n .build() {\n}\n\nclass ListRegistryRecordsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListRegistryRecords\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListRegistryRecordsCommand\")\n .sc(schemas_0.ListRegistryRecords$)\n .build() {\n}\n\nclass ListTagsForResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListTagsForResource\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListTagsForResourceCommand\")\n .sc(schemas_0.ListTagsForResource$)\n .build() {\n}\n\nclass ListWorkloadIdentitiesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"ListWorkloadIdentities\", {})\n .n(\"BedrockAgentCoreControlClient\", \"ListWorkloadIdentitiesCommand\")\n .sc(schemas_0.ListWorkloadIdentities$)\n .build() {\n}\n\nclass PutResourcePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"PutResourcePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"PutResourcePolicyCommand\")\n .sc(schemas_0.PutResourcePolicy$)\n .build() {\n}\n\nclass SetTokenVaultCMKCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"SetTokenVaultCMK\", {})\n .n(\"BedrockAgentCoreControlClient\", \"SetTokenVaultCMKCommand\")\n .sc(schemas_0.SetTokenVaultCMK$)\n .build() {\n}\n\nclass StartPolicyGenerationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"StartPolicyGeneration\", {})\n .n(\"BedrockAgentCoreControlClient\", \"StartPolicyGenerationCommand\")\n .sc(schemas_0.StartPolicyGeneration$)\n .build() {\n}\n\nclass SubmitRegistryRecordForApprovalCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"SubmitRegistryRecordForApproval\", {})\n .n(\"BedrockAgentCoreControlClient\", \"SubmitRegistryRecordForApprovalCommand\")\n .sc(schemas_0.SubmitRegistryRecordForApproval$)\n .build() {\n}\n\nclass SynchronizeGatewayTargetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"SynchronizeGatewayTargets\", {})\n .n(\"BedrockAgentCoreControlClient\", \"SynchronizeGatewayTargetsCommand\")\n .sc(schemas_0.SynchronizeGatewayTargets$)\n .build() {\n}\n\nclass TagResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"TagResource\", {})\n .n(\"BedrockAgentCoreControlClient\", \"TagResourceCommand\")\n .sc(schemas_0.TagResource$)\n .build() {\n}\n\nclass UntagResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UntagResource\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UntagResourceCommand\")\n .sc(schemas_0.UntagResource$)\n .build() {\n}\n\nclass UpdateAgentRuntimeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateAgentRuntime\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateAgentRuntimeCommand\")\n .sc(schemas_0.UpdateAgentRuntime$)\n .build() {\n}\n\nclass UpdateAgentRuntimeEndpointCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateAgentRuntimeEndpoint\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateAgentRuntimeEndpointCommand\")\n .sc(schemas_0.UpdateAgentRuntimeEndpoint$)\n .build() {\n}\n\nclass UpdateApiKeyCredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateApiKeyCredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateApiKeyCredentialProviderCommand\")\n .sc(schemas_0.UpdateApiKeyCredentialProvider$)\n .build() {\n}\n\nclass UpdateEvaluatorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateEvaluator\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateEvaluatorCommand\")\n .sc(schemas_0.UpdateEvaluator$)\n .build() {\n}\n\nclass UpdateGatewayCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateGateway\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateGatewayCommand\")\n .sc(schemas_0.UpdateGateway$)\n .build() {\n}\n\nclass UpdateGatewayTargetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateGatewayTarget\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateGatewayTargetCommand\")\n .sc(schemas_0.UpdateGatewayTarget$)\n .build() {\n}\n\nclass UpdateMemoryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateMemory\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateMemoryCommand\")\n .sc(schemas_0.UpdateMemory$)\n .build() {\n}\n\nclass UpdateOauth2CredentialProviderCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateOauth2CredentialProvider\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateOauth2CredentialProviderCommand\")\n .sc(schemas_0.UpdateOauth2CredentialProvider$)\n .build() {\n}\n\nclass UpdateOnlineEvaluationConfigCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateOnlineEvaluationConfig\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateOnlineEvaluationConfigCommand\")\n .sc(schemas_0.UpdateOnlineEvaluationConfig$)\n .build() {\n}\n\nclass UpdatePolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdatePolicy\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdatePolicyCommand\")\n .sc(schemas_0.UpdatePolicy$)\n .build() {\n}\n\nclass UpdatePolicyEngineCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdatePolicyEngine\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdatePolicyEngineCommand\")\n .sc(schemas_0.UpdatePolicyEngine$)\n .build() {\n}\n\nclass UpdateRegistryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateRegistry\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateRegistryCommand\")\n .sc(schemas_0.UpdateRegistry$)\n .build() {\n}\n\nclass UpdateRegistryRecordCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateRegistryRecord\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateRegistryRecordCommand\")\n .sc(schemas_0.UpdateRegistryRecord$)\n .build() {\n}\n\nclass UpdateRegistryRecordStatusCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateRegistryRecordStatus\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateRegistryRecordStatusCommand\")\n .sc(schemas_0.UpdateRegistryRecordStatus$)\n .build() {\n}\n\nclass UpdateWorkloadIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AmazonBedrockAgentCoreControl\", \"UpdateWorkloadIdentity\", {})\n .n(\"BedrockAgentCoreControlClient\", \"UpdateWorkloadIdentityCommand\")\n .sc(schemas_0.UpdateWorkloadIdentity$)\n .build() {\n}\n\nconst paginateListAgentRuntimeEndpoints = core.createPaginator(BedrockAgentCoreControlClient, ListAgentRuntimeEndpointsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListAgentRuntimes = core.createPaginator(BedrockAgentCoreControlClient, ListAgentRuntimesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListAgentRuntimeVersions = core.createPaginator(BedrockAgentCoreControlClient, ListAgentRuntimeVersionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListApiKeyCredentialProviders = core.createPaginator(BedrockAgentCoreControlClient, ListApiKeyCredentialProvidersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListBrowserProfiles = core.createPaginator(BedrockAgentCoreControlClient, ListBrowserProfilesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListBrowsers = core.createPaginator(BedrockAgentCoreControlClient, ListBrowsersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListCodeInterpreters = core.createPaginator(BedrockAgentCoreControlClient, ListCodeInterpretersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListEvaluators = core.createPaginator(BedrockAgentCoreControlClient, ListEvaluatorsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListGateways = core.createPaginator(BedrockAgentCoreControlClient, ListGatewaysCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListGatewayTargets = core.createPaginator(BedrockAgentCoreControlClient, ListGatewayTargetsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListMemories = core.createPaginator(BedrockAgentCoreControlClient, ListMemoriesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListOauth2CredentialProviders = core.createPaginator(BedrockAgentCoreControlClient, ListOauth2CredentialProvidersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListOnlineEvaluationConfigs = core.createPaginator(BedrockAgentCoreControlClient, ListOnlineEvaluationConfigsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicies = core.createPaginator(BedrockAgentCoreControlClient, ListPoliciesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicyEngines = core.createPaginator(BedrockAgentCoreControlClient, ListPolicyEnginesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicyGenerationAssets = core.createPaginator(BedrockAgentCoreControlClient, ListPolicyGenerationAssetsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListPolicyGenerations = core.createPaginator(BedrockAgentCoreControlClient, ListPolicyGenerationsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListRegistries = core.createPaginator(BedrockAgentCoreControlClient, ListRegistriesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListRegistryRecords = core.createPaginator(BedrockAgentCoreControlClient, ListRegistryRecordsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst paginateListWorkloadIdentities = core.createPaginator(BedrockAgentCoreControlClient, ListWorkloadIdentitiesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\nconst checkState$5 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetMemoryCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.memory.status;\n };\n if (returnComparator() === \"CREATING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.memory.status;\n };\n if (returnComparator() === \"ACTIVE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.memory.status;\n };\n if (returnComparator() === \"FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForMemoryCreated = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n};\nconst waitUntilMemoryCreated = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$4 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"ACTIVE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n};\nconst waitUntilPolicyActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$3 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ResourceNotFoundException\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n};\nconst waitUntilPolicyDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$2 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyEngineCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"ACTIVE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyEngineActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n};\nconst waitUntilPolicyEngineActive = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$1 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyEngineCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ResourceNotFoundException\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyEngineDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n};\nconst waitUntilPolicyEngineDeleted = async (params, input) => {\n const serviceDefaults = { minDelay: 2, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new GetPolicyGenerationCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"GENERATED\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"GENERATING\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"GENERATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.status;\n };\n if (returnComparator() === \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForPolicyGenerationCompleted = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nconst waitUntilPolicyGenerationCompleted = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return utilWaiter.checkExceptions(result);\n};\n\nconst commands = {\n CreateAgentRuntimeCommand,\n CreateAgentRuntimeEndpointCommand,\n CreateApiKeyCredentialProviderCommand,\n CreateBrowserCommand,\n CreateBrowserProfileCommand,\n CreateCodeInterpreterCommand,\n CreateEvaluatorCommand,\n CreateGatewayCommand,\n CreateGatewayTargetCommand,\n CreateMemoryCommand,\n CreateOauth2CredentialProviderCommand,\n CreateOnlineEvaluationConfigCommand,\n CreatePolicyCommand,\n CreatePolicyEngineCommand,\n CreateRegistryCommand,\n CreateRegistryRecordCommand,\n CreateWorkloadIdentityCommand,\n DeleteAgentRuntimeCommand,\n DeleteAgentRuntimeEndpointCommand,\n DeleteApiKeyCredentialProviderCommand,\n DeleteBrowserCommand,\n DeleteBrowserProfileCommand,\n DeleteCodeInterpreterCommand,\n DeleteEvaluatorCommand,\n DeleteGatewayCommand,\n DeleteGatewayTargetCommand,\n DeleteMemoryCommand,\n DeleteOauth2CredentialProviderCommand,\n DeleteOnlineEvaluationConfigCommand,\n DeletePolicyCommand,\n DeletePolicyEngineCommand,\n DeleteRegistryCommand,\n DeleteRegistryRecordCommand,\n DeleteResourcePolicyCommand,\n DeleteWorkloadIdentityCommand,\n GetAgentRuntimeCommand,\n GetAgentRuntimeEndpointCommand,\n GetApiKeyCredentialProviderCommand,\n GetBrowserCommand,\n GetBrowserProfileCommand,\n GetCodeInterpreterCommand,\n GetEvaluatorCommand,\n GetGatewayCommand,\n GetGatewayTargetCommand,\n GetMemoryCommand,\n GetOauth2CredentialProviderCommand,\n GetOnlineEvaluationConfigCommand,\n GetPolicyCommand,\n GetPolicyEngineCommand,\n GetPolicyGenerationCommand,\n GetRegistryCommand,\n GetRegistryRecordCommand,\n GetResourcePolicyCommand,\n GetTokenVaultCommand,\n GetWorkloadIdentityCommand,\n ListAgentRuntimeEndpointsCommand,\n ListAgentRuntimesCommand,\n ListAgentRuntimeVersionsCommand,\n ListApiKeyCredentialProvidersCommand,\n ListBrowserProfilesCommand,\n ListBrowsersCommand,\n ListCodeInterpretersCommand,\n ListEvaluatorsCommand,\n ListGatewaysCommand,\n ListGatewayTargetsCommand,\n ListMemoriesCommand,\n ListOauth2CredentialProvidersCommand,\n ListOnlineEvaluationConfigsCommand,\n ListPoliciesCommand,\n ListPolicyEnginesCommand,\n ListPolicyGenerationAssetsCommand,\n ListPolicyGenerationsCommand,\n ListRegistriesCommand,\n ListRegistryRecordsCommand,\n ListTagsForResourceCommand,\n ListWorkloadIdentitiesCommand,\n PutResourcePolicyCommand,\n SetTokenVaultCMKCommand,\n StartPolicyGenerationCommand,\n SubmitRegistryRecordForApprovalCommand,\n SynchronizeGatewayTargetsCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAgentRuntimeCommand,\n UpdateAgentRuntimeEndpointCommand,\n UpdateApiKeyCredentialProviderCommand,\n UpdateEvaluatorCommand,\n UpdateGatewayCommand,\n UpdateGatewayTargetCommand,\n UpdateMemoryCommand,\n UpdateOauth2CredentialProviderCommand,\n UpdateOnlineEvaluationConfigCommand,\n UpdatePolicyCommand,\n UpdatePolicyEngineCommand,\n UpdateRegistryCommand,\n UpdateRegistryRecordCommand,\n UpdateRegistryRecordStatusCommand,\n UpdateWorkloadIdentityCommand,\n};\nconst paginators = {\n paginateListAgentRuntimeEndpoints,\n paginateListAgentRuntimes,\n paginateListAgentRuntimeVersions,\n paginateListApiKeyCredentialProviders,\n paginateListBrowserProfiles,\n paginateListBrowsers,\n paginateListCodeInterpreters,\n paginateListEvaluators,\n paginateListGateways,\n paginateListGatewayTargets,\n paginateListMemories,\n paginateListOauth2CredentialProviders,\n paginateListOnlineEvaluationConfigs,\n paginateListPolicies,\n paginateListPolicyEngines,\n paginateListPolicyGenerationAssets,\n paginateListPolicyGenerations,\n paginateListRegistries,\n paginateListRegistryRecords,\n paginateListWorkloadIdentities,\n};\nconst waiters = {\n waitUntilMemoryCreated,\n waitUntilPolicyActive,\n waitUntilPolicyDeleted,\n waitUntilPolicyEngineActive,\n waitUntilPolicyEngineDeleted,\n waitUntilPolicyGenerationCompleted,\n};\nclass BedrockAgentCoreControl extends BedrockAgentCoreControlClient {\n}\nsmithyClient.createAggregatedClient(commands, BedrockAgentCoreControl, { paginators, waiters });\n\nconst AgentRuntimeEndpointStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst ValidationExceptionReason = {\n CANNOT_PARSE: \"CannotParse\",\n FIELD_VALIDATION_FAILED: \"FieldValidationFailed\",\n IDEMPOTENT_PARAMETER_MISMATCH_EXCEPTION: \"IdempotentParameterMismatchException\",\n RESOURCE_CONFLICT: \"ResourceConflict\",\n ROOT_EVENT_IN_OTHER_SESSION: \"EventInOtherSession\",\n};\nconst AgentManagedRuntimeType = {\n PYTHON_3_10: \"PYTHON_3_10\",\n PYTHON_3_11: \"PYTHON_3_11\",\n PYTHON_3_12: \"PYTHON_3_12\",\n PYTHON_3_13: \"PYTHON_3_13\",\n PYTHON_3_14: \"PYTHON_3_14\",\n};\nconst ClaimMatchOperatorType = {\n CONTAINS: \"CONTAINS\",\n CONTAINS_ANY: \"CONTAINS_ANY\",\n EQUALS: \"EQUALS\",\n};\nconst InboundTokenClaimValueType = {\n STRING: \"STRING\",\n STRING_ARRAY: \"STRING_ARRAY\",\n};\nconst NetworkMode = {\n PUBLIC: \"PUBLIC\",\n VPC: \"VPC\",\n};\nconst ServerProtocol = {\n A2A: \"A2A\",\n AGUI: \"AGUI\",\n HTTP: \"HTTP\",\n MCP: \"MCP\",\n};\nconst AgentRuntimeStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst BrowserProfileStatus = {\n DELETED: \"DELETED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n SAVING: \"SAVING\",\n};\nconst BrowserEnterprisePolicyType = {\n MANAGED: \"MANAGED\",\n RECOMMENDED: \"RECOMMENDED\",\n};\nconst BrowserNetworkMode = {\n PUBLIC: \"PUBLIC\",\n VPC: \"VPC\",\n};\nconst BrowserStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETED: \"DELETED\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n};\nconst ResourceType = {\n CUSTOM: \"CUSTOM\",\n SYSTEM: \"SYSTEM\",\n};\nconst CodeInterpreterNetworkMode = {\n PUBLIC: \"PUBLIC\",\n SANDBOX: \"SANDBOX\",\n VPC: \"VPC\",\n};\nconst CodeInterpreterStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETED: \"DELETED\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n};\nconst EvaluatorLevel = {\n SESSION: \"SESSION\",\n TOOL_CALL: \"TOOL_CALL\",\n TRACE: \"TRACE\",\n};\nconst EvaluatorStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst EvaluatorType = {\n BUILTIN: \"Builtin\",\n CODE: \"CustomCode\",\n CUSTOM: \"Custom\",\n};\nconst AuthorizerType = {\n AWS_IAM: \"AWS_IAM\",\n CUSTOM_JWT: \"CUSTOM_JWT\",\n NONE: \"NONE\",\n};\nconst ExceptionLevel = {\n DEBUG: \"DEBUG\",\n};\nconst GatewayInterceptionPoint = {\n REQUEST: \"REQUEST\",\n RESPONSE: \"RESPONSE\",\n};\nconst GatewayPolicyEngineMode = {\n ENFORCE: \"ENFORCE\",\n LOG_ONLY: \"LOG_ONLY\",\n};\nconst SearchType = {\n SEMANTIC: \"SEMANTIC\",\n};\nconst GatewayProtocolType = {\n MCP: \"MCP\",\n};\nconst GatewayStatus = {\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n READY: \"READY\",\n UPDATE_UNSUCCESSFUL: \"UPDATE_UNSUCCESSFUL\",\n UPDATING: \"UPDATING\",\n};\nconst ApiKeyCredentialLocation = {\n HEADER: \"HEADER\",\n QUERY_PARAMETER: \"QUERY_PARAMETER\",\n};\nconst OAuthGrantType = {\n AUTHORIZATION_CODE: \"AUTHORIZATION_CODE\",\n CLIENT_CREDENTIALS: \"CLIENT_CREDENTIALS\",\n};\nconst CredentialProviderType = {\n API_KEY: \"API_KEY\",\n GATEWAY_IAM_ROLE: \"GATEWAY_IAM_ROLE\",\n OAUTH: \"OAUTH\",\n};\nconst EndpointIpAddressType = {\n IPV4: \"IPV4\",\n IPV6: \"IPV6\",\n};\nconst RestApiMethod = {\n DELETE: \"DELETE\",\n GET: \"GET\",\n HEAD: \"HEAD\",\n OPTIONS: \"OPTIONS\",\n PATCH: \"PATCH\",\n POST: \"POST\",\n PUT: \"PUT\",\n};\nconst SchemaType = {\n ARRAY: \"array\",\n BOOLEAN: \"boolean\",\n INTEGER: \"integer\",\n NUMBER: \"number\",\n OBJECT: \"object\",\n STRING: \"string\",\n};\nconst ListingMode = {\n DEFAULT: \"DEFAULT\",\n DYNAMIC: \"DYNAMIC\",\n};\nconst TargetStatus = {\n CREATE_PENDING_AUTH: \"CREATE_PENDING_AUTH\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n READY: \"READY\",\n SYNCHRONIZE_PENDING_AUTH: \"SYNCHRONIZE_PENDING_AUTH\",\n SYNCHRONIZE_UNSUCCESSFUL: \"SYNCHRONIZE_UNSUCCESSFUL\",\n SYNCHRONIZING: \"SYNCHRONIZING\",\n UPDATE_PENDING_AUTH: \"UPDATE_PENDING_AUTH\",\n UPDATE_UNSUCCESSFUL: \"UPDATE_UNSUCCESSFUL\",\n UPDATING: \"UPDATING\",\n};\nconst KeyType = {\n CustomerManagedKey: \"CustomerManagedKey\",\n ServiceManagedKey: \"ServiceManagedKey\",\n};\nconst ContentLevel = {\n FULL_CONTENT: \"FULL_CONTENT\",\n METADATA_ONLY: \"METADATA_ONLY\",\n};\nconst ContentType = {\n MEMORY_RECORDS: \"MEMORY_RECORDS\",\n};\nconst MemoryStatus = {\n ACTIVE: \"ACTIVE\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n};\nconst OverrideType = {\n EPISODIC_OVERRIDE: \"EPISODIC_OVERRIDE\",\n SELF_MANAGED: \"SELF_MANAGED\",\n SEMANTIC_OVERRIDE: \"SEMANTIC_OVERRIDE\",\n SUMMARY_OVERRIDE: \"SUMMARY_OVERRIDE\",\n USER_PREFERENCE_OVERRIDE: \"USER_PREFERENCE_OVERRIDE\",\n};\nconst MemoryStrategyStatus = {\n ACTIVE: \"ACTIVE\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n};\nconst MemoryStrategyType = {\n CUSTOM: \"CUSTOM\",\n EPISODIC: \"EPISODIC\",\n SEMANTIC: \"SEMANTIC\",\n SUMMARIZATION: \"SUMMARIZATION\",\n USER_PREFERENCE: \"USER_PREFERENCE\",\n};\nconst MemoryView = {\n FULL: \"full\",\n WITHOUT_DECRYPTION: \"without_decryption\",\n};\nconst CredentialProviderVendorType = {\n AtlassianOauth2: \"AtlassianOauth2\",\n Auth0Oauth2: \"Auth0Oauth2\",\n CognitoOauth2: \"CognitoOauth2\",\n CustomOauth2: \"CustomOauth2\",\n CyberArkOauth2: \"CyberArkOauth2\",\n DropboxOauth2: \"DropboxOauth2\",\n FacebookOauth2: \"FacebookOauth2\",\n FusionAuthOauth2: \"FusionAuthOauth2\",\n GithubOauth2: \"GithubOauth2\",\n GoogleOauth2: \"GoogleOauth2\",\n HubspotOauth2: \"HubspotOauth2\",\n LinkedinOauth2: \"LinkedinOauth2\",\n MicrosoftOauth2: \"MicrosoftOauth2\",\n NotionOauth2: \"NotionOauth2\",\n OktaOauth2: \"OktaOauth2\",\n OneLoginOauth2: \"OneLoginOauth2\",\n PingOneOauth2: \"PingOneOauth2\",\n RedditOauth2: \"RedditOauth2\",\n SalesforceOauth2: \"SalesforceOauth2\",\n SlackOauth2: \"SlackOauth2\",\n SpotifyOauth2: \"SpotifyOauth2\",\n TwitchOauth2: \"TwitchOauth2\",\n XOauth2: \"XOauth2\",\n YandexOauth2: \"YandexOauth2\",\n ZoomOauth2: \"ZoomOauth2\",\n};\nconst FilterOperator = {\n CONTAINS: \"Contains\",\n EQUALS: \"Equals\",\n GREATER_THAN: \"GreaterThan\",\n GREATER_THAN_OR_EQUAL: \"GreaterThanOrEqual\",\n LESS_THAN: \"LessThan\",\n LESS_THAN_OR_EQUAL: \"LessThanOrEqual\",\n NOT_CONTAINS: \"NotContains\",\n NOT_EQUALS: \"NotEquals\",\n};\nconst OnlineEvaluationExecutionStatus = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\",\n};\nconst OnlineEvaluationConfigStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst PolicyEngineStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst PolicyGenerationStatus = {\n DELETE_FAILED: \"DELETE_FAILED\",\n GENERATED: \"GENERATED\",\n GENERATE_FAILED: \"GENERATE_FAILED\",\n GENERATING: \"GENERATING\",\n};\nconst FindingType = {\n ALLOW_ALL: \"ALLOW_ALL\",\n ALLOW_NONE: \"ALLOW_NONE\",\n DENY_ALL: \"DENY_ALL\",\n DENY_NONE: \"DENY_NONE\",\n INVALID: \"INVALID\",\n NOT_TRANSLATABLE: \"NOT_TRANSLATABLE\",\n VALID: \"VALID\",\n};\nconst PolicyValidationMode = {\n FAIL_ON_ANY_FINDINGS: \"FAIL_ON_ANY_FINDINGS\",\n IGNORE_ALL_FINDINGS: \"IGNORE_ALL_FINDINGS\",\n};\nconst PolicyStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst DescriptorType = {\n A2A: \"A2A\",\n AGENT_SKILLS: \"AGENT_SKILLS\",\n CUSTOM: \"CUSTOM\",\n MCP: \"MCP\",\n};\nconst RegistryRecordOAuthGrantType = {\n CLIENT_CREDENTIALS: \"CLIENT_CREDENTIALS\",\n};\nconst RegistryRecordCredentialProviderType = {\n IAM: \"IAM\",\n OAUTH: \"OAUTH\",\n};\nconst SynchronizationType = {\n URL: \"URL\",\n};\nconst RegistryRecordStatus = {\n APPROVED: \"APPROVED\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DEPRECATED: \"DEPRECATED\",\n DRAFT: \"DRAFT\",\n PENDING_APPROVAL: \"PENDING_APPROVAL\",\n REJECTED: \"REJECTED\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\nconst RegistryAuthorizerType = {\n AWS_IAM: \"AWS_IAM\",\n CUSTOM_JWT: \"CUSTOM_JWT\",\n};\nconst RegistryStatus = {\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETING: \"DELETING\",\n READY: \"READY\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATING: \"UPDATING\",\n};\n\nexports.$Command = smithyClient.Command;\nexports.__Client = smithyClient.Client;\nexports.BedrockAgentCoreControlServiceException = BedrockAgentCoreControlServiceException.BedrockAgentCoreControlServiceException;\nexports.AgentManagedRuntimeType = AgentManagedRuntimeType;\nexports.AgentRuntimeEndpointStatus = AgentRuntimeEndpointStatus;\nexports.AgentRuntimeStatus = AgentRuntimeStatus;\nexports.ApiKeyCredentialLocation = ApiKeyCredentialLocation;\nexports.AuthorizerType = AuthorizerType;\nexports.BedrockAgentCoreControl = BedrockAgentCoreControl;\nexports.BedrockAgentCoreControlClient = BedrockAgentCoreControlClient;\nexports.BrowserEnterprisePolicyType = BrowserEnterprisePolicyType;\nexports.BrowserNetworkMode = BrowserNetworkMode;\nexports.BrowserProfileStatus = BrowserProfileStatus;\nexports.BrowserStatus = BrowserStatus;\nexports.ClaimMatchOperatorType = ClaimMatchOperatorType;\nexports.CodeInterpreterNetworkMode = CodeInterpreterNetworkMode;\nexports.CodeInterpreterStatus = CodeInterpreterStatus;\nexports.ContentLevel = ContentLevel;\nexports.ContentType = ContentType;\nexports.CreateAgentRuntimeCommand = CreateAgentRuntimeCommand;\nexports.CreateAgentRuntimeEndpointCommand = CreateAgentRuntimeEndpointCommand;\nexports.CreateApiKeyCredentialProviderCommand = CreateApiKeyCredentialProviderCommand;\nexports.CreateBrowserCommand = CreateBrowserCommand;\nexports.CreateBrowserProfileCommand = CreateBrowserProfileCommand;\nexports.CreateCodeInterpreterCommand = CreateCodeInterpreterCommand;\nexports.CreateEvaluatorCommand = CreateEvaluatorCommand;\nexports.CreateGatewayCommand = CreateGatewayCommand;\nexports.CreateGatewayTargetCommand = CreateGatewayTargetCommand;\nexports.CreateMemoryCommand = CreateMemoryCommand;\nexports.CreateOauth2CredentialProviderCommand = CreateOauth2CredentialProviderCommand;\nexports.CreateOnlineEvaluationConfigCommand = CreateOnlineEvaluationConfigCommand;\nexports.CreatePolicyCommand = CreatePolicyCommand;\nexports.CreatePolicyEngineCommand = CreatePolicyEngineCommand;\nexports.CreateRegistryCommand = CreateRegistryCommand;\nexports.CreateRegistryRecordCommand = CreateRegistryRecordCommand;\nexports.CreateWorkloadIdentityCommand = CreateWorkloadIdentityCommand;\nexports.CredentialProviderType = CredentialProviderType;\nexports.CredentialProviderVendorType = CredentialProviderVendorType;\nexports.DeleteAgentRuntimeCommand = DeleteAgentRuntimeCommand;\nexports.DeleteAgentRuntimeEndpointCommand = DeleteAgentRuntimeEndpointCommand;\nexports.DeleteApiKeyCredentialProviderCommand = DeleteApiKeyCredentialProviderCommand;\nexports.DeleteBrowserCommand = DeleteBrowserCommand;\nexports.DeleteBrowserProfileCommand = DeleteBrowserProfileCommand;\nexports.DeleteCodeInterpreterCommand = DeleteCodeInterpreterCommand;\nexports.DeleteEvaluatorCommand = DeleteEvaluatorCommand;\nexports.DeleteGatewayCommand = DeleteGatewayCommand;\nexports.DeleteGatewayTargetCommand = DeleteGatewayTargetCommand;\nexports.DeleteMemoryCommand = DeleteMemoryCommand;\nexports.DeleteOauth2CredentialProviderCommand = DeleteOauth2CredentialProviderCommand;\nexports.DeleteOnlineEvaluationConfigCommand = DeleteOnlineEvaluationConfigCommand;\nexports.DeletePolicyCommand = DeletePolicyCommand;\nexports.DeletePolicyEngineCommand = DeletePolicyEngineCommand;\nexports.DeleteRegistryCommand = DeleteRegistryCommand;\nexports.DeleteRegistryRecordCommand = DeleteRegistryRecordCommand;\nexports.DeleteResourcePolicyCommand = DeleteResourcePolicyCommand;\nexports.DeleteWorkloadIdentityCommand = DeleteWorkloadIdentityCommand;\nexports.DescriptorType = DescriptorType;\nexports.EndpointIpAddressType = EndpointIpAddressType;\nexports.EvaluatorLevel = EvaluatorLevel;\nexports.EvaluatorStatus = EvaluatorStatus;\nexports.EvaluatorType = EvaluatorType;\nexports.ExceptionLevel = ExceptionLevel;\nexports.FilterOperator = FilterOperator;\nexports.FindingType = FindingType;\nexports.GatewayInterceptionPoint = GatewayInterceptionPoint;\nexports.GatewayPolicyEngineMode = GatewayPolicyEngineMode;\nexports.GatewayProtocolType = GatewayProtocolType;\nexports.GatewayStatus = GatewayStatus;\nexports.GetAgentRuntimeCommand = GetAgentRuntimeCommand;\nexports.GetAgentRuntimeEndpointCommand = GetAgentRuntimeEndpointCommand;\nexports.GetApiKeyCredentialProviderCommand = GetApiKeyCredentialProviderCommand;\nexports.GetBrowserCommand = GetBrowserCommand;\nexports.GetBrowserProfileCommand = GetBrowserProfileCommand;\nexports.GetCodeInterpreterCommand = GetCodeInterpreterCommand;\nexports.GetEvaluatorCommand = GetEvaluatorCommand;\nexports.GetGatewayCommand = GetGatewayCommand;\nexports.GetGatewayTargetCommand = GetGatewayTargetCommand;\nexports.GetMemoryCommand = GetMemoryCommand;\nexports.GetOauth2CredentialProviderCommand = GetOauth2CredentialProviderCommand;\nexports.GetOnlineEvaluationConfigCommand = GetOnlineEvaluationConfigCommand;\nexports.GetPolicyCommand = GetPolicyCommand;\nexports.GetPolicyEngineCommand = GetPolicyEngineCommand;\nexports.GetPolicyGenerationCommand = GetPolicyGenerationCommand;\nexports.GetRegistryCommand = GetRegistryCommand;\nexports.GetRegistryRecordCommand = GetRegistryRecordCommand;\nexports.GetResourcePolicyCommand = GetResourcePolicyCommand;\nexports.GetTokenVaultCommand = GetTokenVaultCommand;\nexports.GetWorkloadIdentityCommand = GetWorkloadIdentityCommand;\nexports.InboundTokenClaimValueType = InboundTokenClaimValueType;\nexports.KeyType = KeyType;\nexports.ListAgentRuntimeEndpointsCommand = ListAgentRuntimeEndpointsCommand;\nexports.ListAgentRuntimeVersionsCommand = ListAgentRuntimeVersionsCommand;\nexports.ListAgentRuntimesCommand = ListAgentRuntimesCommand;\nexports.ListApiKeyCredentialProvidersCommand = ListApiKeyCredentialProvidersCommand;\nexports.ListBrowserProfilesCommand = ListBrowserProfilesCommand;\nexports.ListBrowsersCommand = ListBrowsersCommand;\nexports.ListCodeInterpretersCommand = ListCodeInterpretersCommand;\nexports.ListEvaluatorsCommand = ListEvaluatorsCommand;\nexports.ListGatewayTargetsCommand = ListGatewayTargetsCommand;\nexports.ListGatewaysCommand = ListGatewaysCommand;\nexports.ListMemoriesCommand = ListMemoriesCommand;\nexports.ListOauth2CredentialProvidersCommand = ListOauth2CredentialProvidersCommand;\nexports.ListOnlineEvaluationConfigsCommand = ListOnlineEvaluationConfigsCommand;\nexports.ListPoliciesCommand = ListPoliciesCommand;\nexports.ListPolicyEnginesCommand = ListPolicyEnginesCommand;\nexports.ListPolicyGenerationAssetsCommand = ListPolicyGenerationAssetsCommand;\nexports.ListPolicyGenerationsCommand = ListPolicyGenerationsCommand;\nexports.ListRegistriesCommand = ListRegistriesCommand;\nexports.ListRegistryRecordsCommand = ListRegistryRecordsCommand;\nexports.ListTagsForResourceCommand = ListTagsForResourceCommand;\nexports.ListWorkloadIdentitiesCommand = ListWorkloadIdentitiesCommand;\nexports.ListingMode = ListingMode;\nexports.MemoryStatus = MemoryStatus;\nexports.MemoryStrategyStatus = MemoryStrategyStatus;\nexports.MemoryStrategyType = MemoryStrategyType;\nexports.MemoryView = MemoryView;\nexports.NetworkMode = NetworkMode;\nexports.OAuthGrantType = OAuthGrantType;\nexports.OnlineEvaluationConfigStatus = OnlineEvaluationConfigStatus;\nexports.OnlineEvaluationExecutionStatus = OnlineEvaluationExecutionStatus;\nexports.OverrideType = OverrideType;\nexports.PolicyEngineStatus = PolicyEngineStatus;\nexports.PolicyGenerationStatus = PolicyGenerationStatus;\nexports.PolicyStatus = PolicyStatus;\nexports.PolicyValidationMode = PolicyValidationMode;\nexports.PutResourcePolicyCommand = PutResourcePolicyCommand;\nexports.RegistryAuthorizerType = RegistryAuthorizerType;\nexports.RegistryRecordCredentialProviderType = RegistryRecordCredentialProviderType;\nexports.RegistryRecordOAuthGrantType = RegistryRecordOAuthGrantType;\nexports.RegistryRecordStatus = RegistryRecordStatus;\nexports.RegistryStatus = RegistryStatus;\nexports.ResourceType = ResourceType;\nexports.RestApiMethod = RestApiMethod;\nexports.SchemaType = SchemaType;\nexports.SearchType = SearchType;\nexports.ServerProtocol = ServerProtocol;\nexports.SetTokenVaultCMKCommand = SetTokenVaultCMKCommand;\nexports.StartPolicyGenerationCommand = StartPolicyGenerationCommand;\nexports.SubmitRegistryRecordForApprovalCommand = SubmitRegistryRecordForApprovalCommand;\nexports.SynchronizationType = SynchronizationType;\nexports.SynchronizeGatewayTargetsCommand = SynchronizeGatewayTargetsCommand;\nexports.TagResourceCommand = TagResourceCommand;\nexports.TargetStatus = TargetStatus;\nexports.UntagResourceCommand = UntagResourceCommand;\nexports.UpdateAgentRuntimeCommand = UpdateAgentRuntimeCommand;\nexports.UpdateAgentRuntimeEndpointCommand = UpdateAgentRuntimeEndpointCommand;\nexports.UpdateApiKeyCredentialProviderCommand = UpdateApiKeyCredentialProviderCommand;\nexports.UpdateEvaluatorCommand = UpdateEvaluatorCommand;\nexports.UpdateGatewayCommand = UpdateGatewayCommand;\nexports.UpdateGatewayTargetCommand = UpdateGatewayTargetCommand;\nexports.UpdateMemoryCommand = UpdateMemoryCommand;\nexports.UpdateOauth2CredentialProviderCommand = UpdateOauth2CredentialProviderCommand;\nexports.UpdateOnlineEvaluationConfigCommand = UpdateOnlineEvaluationConfigCommand;\nexports.UpdatePolicyCommand = UpdatePolicyCommand;\nexports.UpdatePolicyEngineCommand = UpdatePolicyEngineCommand;\nexports.UpdateRegistryCommand = UpdateRegistryCommand;\nexports.UpdateRegistryRecordCommand = UpdateRegistryRecordCommand;\nexports.UpdateRegistryRecordStatusCommand = UpdateRegistryRecordStatusCommand;\nexports.UpdateWorkloadIdentityCommand = UpdateWorkloadIdentityCommand;\nexports.ValidationExceptionReason = ValidationExceptionReason;\nexports.paginateListAgentRuntimeEndpoints = paginateListAgentRuntimeEndpoints;\nexports.paginateListAgentRuntimeVersions = paginateListAgentRuntimeVersions;\nexports.paginateListAgentRuntimes = paginateListAgentRuntimes;\nexports.paginateListApiKeyCredentialProviders = paginateListApiKeyCredentialProviders;\nexports.paginateListBrowserProfiles = paginateListBrowserProfiles;\nexports.paginateListBrowsers = paginateListBrowsers;\nexports.paginateListCodeInterpreters = paginateListCodeInterpreters;\nexports.paginateListEvaluators = paginateListEvaluators;\nexports.paginateListGatewayTargets = paginateListGatewayTargets;\nexports.paginateListGateways = paginateListGateways;\nexports.paginateListMemories = paginateListMemories;\nexports.paginateListOauth2CredentialProviders = paginateListOauth2CredentialProviders;\nexports.paginateListOnlineEvaluationConfigs = paginateListOnlineEvaluationConfigs;\nexports.paginateListPolicies = paginateListPolicies;\nexports.paginateListPolicyEngines = paginateListPolicyEngines;\nexports.paginateListPolicyGenerationAssets = paginateListPolicyGenerationAssets;\nexports.paginateListPolicyGenerations = paginateListPolicyGenerations;\nexports.paginateListRegistries = paginateListRegistries;\nexports.paginateListRegistryRecords = paginateListRegistryRecords;\nexports.paginateListWorkloadIdentities = paginateListWorkloadIdentities;\nexports.waitForMemoryCreated = waitForMemoryCreated;\nexports.waitForPolicyActive = waitForPolicyActive;\nexports.waitForPolicyDeleted = waitForPolicyDeleted;\nexports.waitForPolicyEngineActive = waitForPolicyEngineActive;\nexports.waitForPolicyEngineDeleted = waitForPolicyEngineDeleted;\nexports.waitForPolicyGenerationCompleted = waitForPolicyGenerationCompleted;\nexports.waitUntilMemoryCreated = waitUntilMemoryCreated;\nexports.waitUntilPolicyActive = waitUntilPolicyActive;\nexports.waitUntilPolicyDeleted = waitUntilPolicyDeleted;\nexports.waitUntilPolicyEngineActive = waitUntilPolicyEngineActive;\nexports.waitUntilPolicyEngineDeleted = waitUntilPolicyEngineDeleted;\nexports.waitUntilPolicyGenerationCompleted = waitUntilPolicyGenerationCompleted;\nObject.prototype.hasOwnProperty.call(schemas_0, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: schemas_0['__proto__']\n });\n\nObject.keys(schemas_0).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = schemas_0[k];\n});\nObject.prototype.hasOwnProperty.call(errors, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: errors['__proto__']\n });\n\nObject.keys(errors).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = errors[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BedrockAgentCoreControlServiceException = exports.__ServiceException = void 0;\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__ServiceException\", { enumerable: true, get: function () { return smithy_client_1.ServiceException; } });\nclass BedrockAgentCoreControlServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, BedrockAgentCoreControlServiceException.prototype);\n }\n}\nexports.BedrockAgentCoreControlServiceException = BedrockAgentCoreControlServiceException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConcurrentModificationException = exports.ThrottledException = exports.ServiceException = exports.UnauthorizedException = exports.ResourceLimitExceededException = exports.EncryptionFailure = exports.DecryptionFailure = exports.ValidationException = exports.ThrottlingException = exports.ServiceQuotaExceededException = exports.ResourceNotFoundException = exports.InternalServerException = exports.ConflictException = exports.AccessDeniedException = void 0;\nconst BedrockAgentCoreControlServiceException_1 = require(\"./BedrockAgentCoreControlServiceException\");\nclass AccessDeniedException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"AccessDeniedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AccessDeniedException.prototype);\n }\n}\nexports.AccessDeniedException = AccessDeniedException;\nclass ConflictException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ConflictException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConflictException.prototype);\n }\n}\nexports.ConflictException = ConflictException;\nclass InternalServerException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"InternalServerException\";\n $fault = \"server\";\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, InternalServerException.prototype);\n }\n}\nexports.InternalServerException = InternalServerException;\nclass ResourceNotFoundException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexports.ResourceNotFoundException = ResourceNotFoundException;\nclass ServiceQuotaExceededException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype);\n }\n}\nexports.ServiceQuotaExceededException = ServiceQuotaExceededException;\nclass ThrottlingException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ThrottlingException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ThrottlingException.prototype);\n }\n}\nexports.ThrottlingException = ThrottlingException;\nclass ValidationException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ValidationException\";\n $fault = \"client\";\n reason;\n fieldList;\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ValidationException.prototype);\n this.reason = opts.reason;\n this.fieldList = opts.fieldList;\n }\n}\nexports.ValidationException = ValidationException;\nclass DecryptionFailure extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"DecryptionFailure\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"DecryptionFailure\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, DecryptionFailure.prototype);\n }\n}\nexports.DecryptionFailure = DecryptionFailure;\nclass EncryptionFailure extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"EncryptionFailure\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"EncryptionFailure\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, EncryptionFailure.prototype);\n }\n}\nexports.EncryptionFailure = EncryptionFailure;\nclass ResourceLimitExceededException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ResourceLimitExceededException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ResourceLimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceLimitExceededException.prototype);\n }\n}\nexports.ResourceLimitExceededException = ResourceLimitExceededException;\nclass UnauthorizedException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"UnauthorizedException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, UnauthorizedException.prototype);\n }\n}\nexports.UnauthorizedException = UnauthorizedException;\nclass ServiceException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ServiceException\";\n $fault = \"server\";\n $retryable = {};\n constructor(opts) {\n super({\n name: \"ServiceException\",\n $fault: \"server\",\n ...opts,\n });\n Object.setPrototypeOf(this, ServiceException.prototype);\n }\n}\nexports.ServiceException = ServiceException;\nclass ThrottledException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ThrottledException\";\n $fault = \"client\";\n $retryable = {};\n constructor(opts) {\n super({\n name: \"ThrottledException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ThrottledException.prototype);\n }\n}\nexports.ThrottledException = ThrottledException;\nclass ConcurrentModificationException extends BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException {\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConcurrentModificationException.prototype);\n }\n}\nexports.ConcurrentModificationException = ConcurrentModificationException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_1.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, client_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(httpAuthSchemes_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ?? (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst protocols_1 = require(\"@aws-sdk/core/protocols\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst schemas_0_1 = require(\"./schemas/schemas_0\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2023-06-05\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultBedrockAgentCoreControlHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n protocol: config?.protocol ?? protocols_1.AwsRestJsonProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.bedrockagentcorecontrol\",\n errorTypeRegistries: schemas_0_1.errorTypeRegistries,\n version: \"2023-06-05\",\n serviceTarget: \"AmazonBedrockAgentCoreControl\",\n },\n serviceId: config?.serviceId ?? \"Bedrock AgentCore Control\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateAgentRuntimeRequest$ = exports.CreateAgentRuntimeEndpointResponse$ = exports.CreateAgentRuntimeEndpointRequest$ = exports.ContentConfiguration$ = exports.ContainerConfiguration$ = exports.CodeInterpreterSummary$ = exports.CodeInterpreterNetworkConfiguration$ = exports.CodeConfiguration$ = exports.CloudWatchOutputConfig$ = exports.CloudWatchLogsInputConfig$ = exports.Certificate$ = exports.CedarPolicy$ = exports.CategoricalScaleDefinition$ = exports.BrowserSummary$ = exports.BrowserSigningConfigOutput$ = exports.BrowserSigningConfigInput$ = exports.BrowserProfileSummary$ = exports.BrowserNetworkConfiguration$ = exports.BrowserEnterprisePolicy$ = exports.BedrockEvaluatorModelConfig$ = exports.AuthorizingClaimMatchValueType$ = exports.AtlassianOauth2ProviderConfigOutput$ = exports.AtlassianOauth2ProviderConfigInput$ = exports.ApprovalConfiguration$ = exports.ApiKeyCredentialProviderItem$ = exports.ApiGatewayToolOverride$ = exports.ApiGatewayToolFilter$ = exports.ApiGatewayToolConfiguration$ = exports.ApiGatewayTargetConfiguration$ = exports.AgentSkillsDescriptor$ = exports.AgentRuntimeEndpoint$ = exports.AgentRuntime$ = exports.AgentCardDefinition$ = exports.A2aDescriptor$ = exports.errorTypeRegistries = exports.ValidationException$ = exports.UnauthorizedException$ = exports.ThrottlingException$ = exports.ThrottledException$ = exports.ServiceQuotaExceededException$ = exports.ServiceException$ = exports.ResourceNotFoundException$ = exports.ResourceLimitExceededException$ = exports.InternalServerException$ = exports.EncryptionFailure$ = exports.DecryptionFailure$ = exports.ConflictException$ = exports.ConcurrentModificationException$ = exports.AccessDeniedException$ = exports.BedrockAgentCoreControlServiceException$ = void 0;\nexports.DeleteCodeInterpreterResponse$ = exports.DeleteCodeInterpreterRequest$ = exports.DeleteBrowserResponse$ = exports.DeleteBrowserRequest$ = exports.DeleteBrowserProfileResponse$ = exports.DeleteBrowserProfileRequest$ = exports.DeleteApiKeyCredentialProviderResponse$ = exports.DeleteApiKeyCredentialProviderRequest$ = exports.DeleteAgentRuntimeResponse$ = exports.DeleteAgentRuntimeRequest$ = exports.DeleteAgentRuntimeEndpointResponse$ = exports.DeleteAgentRuntimeEndpointRequest$ = exports.CustomOauth2ProviderConfigOutput$ = exports.CustomOauth2ProviderConfigInput$ = exports.CustomMemoryStrategyInput$ = exports.CustomJWTAuthorizerConfiguration$ = exports.CustomDescriptor$ = exports.CustomClaimValidationType$ = exports.CredentialProviderConfiguration$ = exports.CreateWorkloadIdentityResponse$ = exports.CreateWorkloadIdentityRequest$ = exports.CreateRegistryResponse$ = exports.CreateRegistryRequest$ = exports.CreateRegistryRecordResponse$ = exports.CreateRegistryRecordRequest$ = exports.CreatePolicyResponse$ = exports.CreatePolicyRequest$ = exports.CreatePolicyEngineResponse$ = exports.CreatePolicyEngineRequest$ = exports.CreateOnlineEvaluationConfigResponse$ = exports.CreateOnlineEvaluationConfigRequest$ = exports.CreateOauth2CredentialProviderResponse$ = exports.CreateOauth2CredentialProviderRequest$ = exports.CreateMemoryOutput$ = exports.CreateMemoryInput$ = exports.CreateGatewayTargetResponse$ = exports.CreateGatewayTargetRequest$ = exports.CreateGatewayResponse$ = exports.CreateGatewayRequest$ = exports.CreateEvaluatorResponse$ = exports.CreateEvaluatorRequest$ = exports.CreateCodeInterpreterResponse$ = exports.CreateCodeInterpreterRequest$ = exports.CreateBrowserResponse$ = exports.CreateBrowserRequest$ = exports.CreateBrowserProfileResponse$ = exports.CreateBrowserProfileRequest$ = exports.CreateApiKeyCredentialProviderResponse$ = exports.CreateApiKeyCredentialProviderRequest$ = exports.CreateAgentRuntimeResponse$ = void 0;\nexports.GetApiKeyCredentialProviderRequest$ = exports.GetAgentRuntimeResponse$ = exports.GetAgentRuntimeRequest$ = exports.GetAgentRuntimeEndpointResponse$ = exports.GetAgentRuntimeEndpointRequest$ = exports.GatewayTarget$ = exports.GatewaySummary$ = exports.GatewayPolicyEngineConfiguration$ = exports.GatewayInterceptorConfiguration$ = exports.GatewayApiKeyCredentialProvider$ = exports.FromUrlSynchronizationConfiguration$ = exports.Finding$ = exports.Filter$ = exports.EvaluatorSummary$ = exports.EpisodicReflectionOverride$ = exports.EpisodicReflectionConfigurationInput$ = exports.EpisodicReflectionConfiguration$ = exports.EpisodicOverrideReflectionConfigurationInput$ = exports.EpisodicOverrideExtractionConfigurationInput$ = exports.EpisodicOverrideConsolidationConfigurationInput$ = exports.EpisodicOverrideConfigurationInput$ = exports.EpisodicMemoryStrategyInput$ = exports.EpisodicExtractionOverride$ = exports.EpisodicConsolidationOverride$ = exports.Descriptors$ = exports.DeleteWorkloadIdentityResponse$ = exports.DeleteWorkloadIdentityRequest$ = exports.DeleteResourcePolicyResponse$ = exports.DeleteResourcePolicyRequest$ = exports.DeleteRegistryResponse$ = exports.DeleteRegistryRequest$ = exports.DeleteRegistryRecordResponse$ = exports.DeleteRegistryRecordRequest$ = exports.DeletePolicyResponse$ = exports.DeletePolicyRequest$ = exports.DeletePolicyEngineResponse$ = exports.DeletePolicyEngineRequest$ = exports.DeleteOnlineEvaluationConfigResponse$ = exports.DeleteOnlineEvaluationConfigRequest$ = exports.DeleteOauth2CredentialProviderResponse$ = exports.DeleteOauth2CredentialProviderRequest$ = exports.DeleteMemoryStrategyInput$ = exports.DeleteMemoryOutput$ = exports.DeleteMemoryInput$ = exports.DeleteGatewayTargetResponse$ = exports.DeleteGatewayTargetRequest$ = exports.DeleteGatewayResponse$ = exports.DeleteGatewayRequest$ = exports.DeleteEvaluatorResponse$ = exports.DeleteEvaluatorRequest$ = void 0;\nexports.LambdaInterceptorConfiguration$ = exports.LambdaEvaluatorConfig$ = exports.KmsConfiguration$ = exports.KinesisResource$ = exports.InvocationConfigurationInput$ = exports.InvocationConfiguration$ = exports.InterceptorInputConfiguration$ = exports.InferenceConfiguration$ = exports.IncludedOauth2ProviderConfigOutput$ = exports.IncludedOauth2ProviderConfigInput$ = exports.IamCredentialProvider$ = exports.GoogleOauth2ProviderConfigOutput$ = exports.GoogleOauth2ProviderConfigInput$ = exports.GithubOauth2ProviderConfigOutput$ = exports.GithubOauth2ProviderConfigInput$ = exports.GetWorkloadIdentityResponse$ = exports.GetWorkloadIdentityRequest$ = exports.GetTokenVaultResponse$ = exports.GetTokenVaultRequest$ = exports.GetResourcePolicyResponse$ = exports.GetResourcePolicyRequest$ = exports.GetRegistryResponse$ = exports.GetRegistryRequest$ = exports.GetRegistryRecordResponse$ = exports.GetRegistryRecordRequest$ = exports.GetPolicyResponse$ = exports.GetPolicyRequest$ = exports.GetPolicyGenerationResponse$ = exports.GetPolicyGenerationRequest$ = exports.GetPolicyEngineResponse$ = exports.GetPolicyEngineRequest$ = exports.GetOnlineEvaluationConfigResponse$ = exports.GetOnlineEvaluationConfigRequest$ = exports.GetOauth2CredentialProviderResponse$ = exports.GetOauth2CredentialProviderRequest$ = exports.GetMemoryOutput$ = exports.GetMemoryInput$ = exports.GetGatewayTargetResponse$ = exports.GetGatewayTargetRequest$ = exports.GetGatewayResponse$ = exports.GetGatewayRequest$ = exports.GetEvaluatorResponse$ = exports.GetEvaluatorRequest$ = exports.GetCodeInterpreterResponse$ = exports.GetCodeInterpreterRequest$ = exports.GetBrowserResponse$ = exports.GetBrowserRequest$ = exports.GetBrowserProfileResponse$ = exports.GetBrowserProfileRequest$ = exports.GetApiKeyCredentialProviderResponse$ = void 0;\nexports.MCPGatewayConfiguration$ = exports.McpDescriptor$ = exports.ManagedResourceDetails$ = exports.ManagedLatticeResource$ = exports.LlmAsAJudgeEvaluatorConfig$ = exports.ListWorkloadIdentitiesResponse$ = exports.ListWorkloadIdentitiesRequest$ = exports.ListTagsForResourceResponse$ = exports.ListTagsForResourceRequest$ = exports.ListRegistryRecordsResponse$ = exports.ListRegistryRecordsRequest$ = exports.ListRegistriesResponse$ = exports.ListRegistriesRequest$ = exports.ListPolicyGenerationsResponse$ = exports.ListPolicyGenerationsRequest$ = exports.ListPolicyGenerationAssetsResponse$ = exports.ListPolicyGenerationAssetsRequest$ = exports.ListPolicyEnginesResponse$ = exports.ListPolicyEnginesRequest$ = exports.ListPoliciesResponse$ = exports.ListPoliciesRequest$ = exports.ListOnlineEvaluationConfigsResponse$ = exports.ListOnlineEvaluationConfigsRequest$ = exports.ListOauth2CredentialProvidersResponse$ = exports.ListOauth2CredentialProvidersRequest$ = exports.ListMemoriesOutput$ = exports.ListMemoriesInput$ = exports.ListGatewayTargetsResponse$ = exports.ListGatewayTargetsRequest$ = exports.ListGatewaysResponse$ = exports.ListGatewaysRequest$ = exports.ListEvaluatorsResponse$ = exports.ListEvaluatorsRequest$ = exports.ListCodeInterpretersResponse$ = exports.ListCodeInterpretersRequest$ = exports.ListBrowsersResponse$ = exports.ListBrowsersRequest$ = exports.ListBrowserProfilesResponse$ = exports.ListBrowserProfilesRequest$ = exports.ListApiKeyCredentialProvidersResponse$ = exports.ListApiKeyCredentialProvidersRequest$ = exports.ListAgentRuntimeVersionsResponse$ = exports.ListAgentRuntimeVersionsRequest$ = exports.ListAgentRuntimesResponse$ = exports.ListAgentRuntimesRequest$ = exports.ListAgentRuntimeEndpointsResponse$ = exports.ListAgentRuntimeEndpointsRequest$ = exports.LinkedinOauth2ProviderConfigOutput$ = exports.LinkedinOauth2ProviderConfigInput$ = exports.LifecycleConfiguration$ = void 0;\nexports.SemanticConsolidationOverride$ = exports.SelfManagedConfigurationInput$ = exports.SelfManagedConfiguration$ = exports.SecretsManagerLocation$ = exports.Secret$ = exports.SchemaDefinition$ = exports.SamplingConfig$ = exports.SalesforceOauth2ProviderConfigOutput$ = exports.SalesforceOauth2ProviderConfigInput$ = exports.S3Location$ = exports.S3Configuration$ = exports.RuntimeMetadataConfiguration$ = exports.Rule$ = exports.RegistrySummary$ = exports.RegistryRecordSummary$ = exports.RegistryRecordOAuthCredentialProvider$ = exports.RegistryRecordIamCredentialProvider$ = exports.RegistryRecordCredentialProviderConfiguration$ = exports.RecordingConfig$ = exports.PutResourcePolicyResponse$ = exports.PutResourcePolicyRequest$ = exports.ProtocolConfiguration$ = exports.PolicyGenerationDetails$ = exports.PolicyGenerationAsset$ = exports.PolicyGeneration$ = exports.PolicyEngine$ = exports.Policy$ = exports.OutputConfig$ = exports.OnlineEvaluationConfigSummary$ = exports.OAuthCredentialProvider$ = exports.Oauth2CredentialProviderItem$ = exports.Oauth2AuthorizationServerMetadata$ = exports.OAuth2AuthorizationData$ = exports.NumericalScaleDefinition$ = exports.NetworkConfiguration$ = exports.ModifyStrategyConfiguration$ = exports.ModifySelfManagedConfiguration$ = exports.ModifyMemoryStrategyInput$ = exports.ModifyMemoryStrategies$ = exports.ModifyInvocationConfigurationInput$ = exports.MicrosoftOauth2ProviderConfigOutput$ = exports.MicrosoftOauth2ProviderConfigInput$ = exports.MetadataConfiguration$ = exports.MessageBasedTriggerInput$ = exports.MessageBasedTrigger$ = exports.MemorySummary$ = exports.MemoryStrategy$ = exports.Memory$ = exports.McpServerTargetConfiguration$ = exports.McpLambdaTargetConfiguration$ = void 0;\nexports.UpdatedCustomDescriptor$ = exports.UpdatedAuthorizerConfiguration$ = exports.UpdatedApprovalConfiguration$ = exports.UpdatedAgentSkillsDescriptorFields$ = exports.UpdatedAgentSkillsDescriptor$ = exports.UpdatedA2aDescriptor$ = exports.UpdateApiKeyCredentialProviderResponse$ = exports.UpdateApiKeyCredentialProviderRequest$ = exports.UpdateAgentRuntimeResponse$ = exports.UpdateAgentRuntimeRequest$ = exports.UpdateAgentRuntimeEndpointResponse$ = exports.UpdateAgentRuntimeEndpointRequest$ = exports.UntagResourceResponse$ = exports.UntagResourceRequest$ = exports.ToolsDefinition$ = exports.ToolDefinition$ = exports.TokenBasedTriggerInput$ = exports.TokenBasedTrigger$ = exports.TimeBasedTriggerInput$ = exports.TimeBasedTrigger$ = exports.TargetSummary$ = exports.TagResourceResponse$ = exports.TagResourceRequest$ = exports.SynchronizeGatewayTargetsResponse$ = exports.SynchronizeGatewayTargetsRequest$ = exports.SynchronizationConfiguration$ = exports.SummaryOverrideConsolidationConfigurationInput$ = exports.SummaryOverrideConfigurationInput$ = exports.SummaryMemoryStrategyInput$ = exports.SummaryConsolidationOverride$ = exports.SubmitRegistryRecordForApprovalResponse$ = exports.SubmitRegistryRecordForApprovalRequest$ = exports.StreamDeliveryResources$ = exports.StrategyConfiguration$ = exports.StartPolicyGenerationResponse$ = exports.StartPolicyGenerationRequest$ = exports.SlackOauth2ProviderConfigOutput$ = exports.SlackOauth2ProviderConfigInput$ = exports.SkillMdDefinition$ = exports.SkillDefinition$ = exports.SetTokenVaultCMKResponse$ = exports.SetTokenVaultCMKRequest$ = exports.SessionStorageConfiguration$ = exports.SessionConfig$ = exports.ServerDefinition$ = exports.SemanticOverrideExtractionConfigurationInput$ = exports.SemanticOverrideConsolidationConfigurationInput$ = exports.SemanticOverrideConfigurationInput$ = exports.SemanticMemoryStrategyInput$ = exports.SemanticExtractionOverride$ = void 0;\nexports.CertificateLocation$ = exports.AuthorizerConfiguration$ = exports.AuthorizationData$ = exports.ApiSchemaConfiguration$ = exports.AgentRuntimeArtifact$ = exports.WorkloadIdentityType$ = exports.WorkloadIdentityDetails$ = exports.VpcConfig$ = exports.ValidationExceptionField$ = exports.UserPreferenceOverrideExtractionConfigurationInput$ = exports.UserPreferenceOverrideConsolidationConfigurationInput$ = exports.UserPreferenceOverrideConfigurationInput$ = exports.UserPreferenceMemoryStrategyInput$ = exports.UserPreferenceExtractionOverride$ = exports.UserPreferenceConsolidationOverride$ = exports.UpdateWorkloadIdentityResponse$ = exports.UpdateWorkloadIdentityRequest$ = exports.UpdateRegistryResponse$ = exports.UpdateRegistryRequest$ = exports.UpdateRegistryRecordStatusResponse$ = exports.UpdateRegistryRecordStatusRequest$ = exports.UpdateRegistryRecordResponse$ = exports.UpdateRegistryRecordRequest$ = exports.UpdatePolicyResponse$ = exports.UpdatePolicyRequest$ = exports.UpdatePolicyEngineResponse$ = exports.UpdatePolicyEngineRequest$ = exports.UpdateOnlineEvaluationConfigResponse$ = exports.UpdateOnlineEvaluationConfigRequest$ = exports.UpdateOauth2CredentialProviderResponse$ = exports.UpdateOauth2CredentialProviderRequest$ = exports.UpdateMemoryOutput$ = exports.UpdateMemoryInput$ = exports.UpdateGatewayTargetResponse$ = exports.UpdateGatewayTargetRequest$ = exports.UpdateGatewayResponse$ = exports.UpdateGatewayRequest$ = exports.UpdateEvaluatorResponse$ = exports.UpdateEvaluatorRequest$ = exports.UpdatedToolsDefinition$ = exports.UpdatedSynchronizationType$ = exports.UpdatedSynchronizationConfiguration$ = exports.UpdatedSkillMdDefinition$ = exports.UpdatedSkillDefinition$ = exports.UpdatedServerDefinition$ = exports.UpdatedMcpDescriptorFields$ = exports.UpdatedMcpDescriptor$ = exports.UpdatedDescriptorsUnion$ = exports.UpdatedDescriptors$ = exports.UpdatedDescription$ = void 0;\nexports.CreateBrowserProfile$ = exports.CreateBrowser$ = exports.CreateApiKeyCredentialProvider$ = exports.CreateAgentRuntimeEndpoint$ = exports.CreateAgentRuntime$ = exports.TriggerConditionInput$ = exports.TriggerCondition$ = exports.ToolSchema$ = exports.TargetConfiguration$ = exports.StreamDeliveryResource$ = exports.SelfManagedLatticeResource$ = exports.ResourceLocation$ = exports.Resource$ = exports.RequestHeaderConfiguration$ = exports.RegistryRecordCredentialProviderUnion$ = exports.ReflectionConfiguration$ = exports.RatingScale$ = exports.PrivateEndpoint$ = exports.PolicyDefinition$ = exports.Oauth2ProviderConfigOutput$ = exports.Oauth2ProviderConfigInput$ = exports.Oauth2Discovery$ = exports.ModifyReflectionConfiguration$ = exports.ModifyExtractionConfiguration$ = exports.ModifyConsolidationConfiguration$ = exports.MemoryStrategyInput$ = exports.McpToolSchemaConfiguration$ = exports.McpTargetConfiguration$ = exports.InterceptorConfiguration$ = exports.GatewayProtocolConfiguration$ = exports.FilterValue$ = exports.FilesystemConfiguration$ = exports.ExtractionConfiguration$ = exports.EvaluatorReference$ = exports.EvaluatorModelConfig$ = exports.EvaluatorConfig$ = exports.DataSourceConfig$ = exports.CustomReflectionConfigurationInput$ = exports.CustomReflectionConfiguration$ = exports.CustomExtractionConfigurationInput$ = exports.CustomExtractionConfiguration$ = exports.CustomConsolidationConfigurationInput$ = exports.CustomConsolidationConfiguration$ = exports.CustomConfigurationInput$ = exports.CredentialProvider$ = exports.Content$ = exports.ConsolidationConfiguration$ = exports.CodeBasedEvaluatorConfig$ = exports.Code$ = exports.ClaimMatchValueType$ = void 0;\nexports.GetWorkloadIdentity$ = exports.GetTokenVault$ = exports.GetResourcePolicy$ = exports.GetRegistryRecord$ = exports.GetRegistry$ = exports.GetPolicyGeneration$ = exports.GetPolicyEngine$ = exports.GetPolicy$ = exports.GetOnlineEvaluationConfig$ = exports.GetOauth2CredentialProvider$ = exports.GetMemory$ = exports.GetGatewayTarget$ = exports.GetGateway$ = exports.GetEvaluator$ = exports.GetCodeInterpreter$ = exports.GetBrowserProfile$ = exports.GetBrowser$ = exports.GetApiKeyCredentialProvider$ = exports.GetAgentRuntimeEndpoint$ = exports.GetAgentRuntime$ = exports.DeleteWorkloadIdentity$ = exports.DeleteResourcePolicy$ = exports.DeleteRegistryRecord$ = exports.DeleteRegistry$ = exports.DeletePolicyEngine$ = exports.DeletePolicy$ = exports.DeleteOnlineEvaluationConfig$ = exports.DeleteOauth2CredentialProvider$ = exports.DeleteMemory$ = exports.DeleteGatewayTarget$ = exports.DeleteGateway$ = exports.DeleteEvaluator$ = exports.DeleteCodeInterpreter$ = exports.DeleteBrowserProfile$ = exports.DeleteBrowser$ = exports.DeleteApiKeyCredentialProvider$ = exports.DeleteAgentRuntimeEndpoint$ = exports.DeleteAgentRuntime$ = exports.CreateWorkloadIdentity$ = exports.CreateRegistryRecord$ = exports.CreateRegistry$ = exports.CreatePolicyEngine$ = exports.CreatePolicy$ = exports.CreateOnlineEvaluationConfig$ = exports.CreateOauth2CredentialProvider$ = exports.CreateMemory$ = exports.CreateGatewayTarget$ = exports.CreateGateway$ = exports.CreateEvaluator$ = exports.CreateCodeInterpreter$ = void 0;\nexports.UpdateWorkloadIdentity$ = exports.UpdateRegistryRecordStatus$ = exports.UpdateRegistryRecord$ = exports.UpdateRegistry$ = exports.UpdatePolicyEngine$ = exports.UpdatePolicy$ = exports.UpdateOnlineEvaluationConfig$ = exports.UpdateOauth2CredentialProvider$ = exports.UpdateMemory$ = exports.UpdateGatewayTarget$ = exports.UpdateGateway$ = exports.UpdateEvaluator$ = exports.UpdateApiKeyCredentialProvider$ = exports.UpdateAgentRuntimeEndpoint$ = exports.UpdateAgentRuntime$ = exports.UntagResource$ = exports.TagResource$ = exports.SynchronizeGatewayTargets$ = exports.SubmitRegistryRecordForApproval$ = exports.StartPolicyGeneration$ = exports.SetTokenVaultCMK$ = exports.PutResourcePolicy$ = exports.ListWorkloadIdentities$ = exports.ListTagsForResource$ = exports.ListRegistryRecords$ = exports.ListRegistries$ = exports.ListPolicyGenerations$ = exports.ListPolicyGenerationAssets$ = exports.ListPolicyEngines$ = exports.ListPolicies$ = exports.ListOnlineEvaluationConfigs$ = exports.ListOauth2CredentialProviders$ = exports.ListMemories$ = exports.ListGatewayTargets$ = exports.ListGateways$ = exports.ListEvaluators$ = exports.ListCodeInterpreters$ = exports.ListBrowsers$ = exports.ListBrowserProfiles$ = exports.ListApiKeyCredentialProviders$ = exports.ListAgentRuntimeVersions$ = exports.ListAgentRuntimes$ = exports.ListAgentRuntimeEndpoints$ = void 0;\nconst _AC = \"ApprovalConfiguration\";\nconst _ACD = \"AgentCardDefinition\";\nconst _ACMVT = \"AuthorizingClaimMatchValueType\";\nconst _ACu = \"AuthorizerConfiguration\";\nconst _AD = \"A2aDescriptor\";\nconst _ADE = \"AccessDeniedException\";\nconst _ADu = \"AuthorizationData\";\nconst _AGTC = \"ApiGatewayTargetConfiguration\";\nconst _AGTCp = \"ApiGatewayToolConfiguration\";\nconst _AGTF = \"ApiGatewayToolFilter\";\nconst _AGTFp = \"ApiGatewayToolFilters\";\nconst _AGTO = \"ApiGatewayToolOverride\";\nconst _AGTOp = \"ApiGatewayToolOverrides\";\nconst _AKCP = \"ApiKeyCredentialProviders\";\nconst _AKCPI = \"ApiKeyCredentialProviderItem\";\nconst _AKT = \"ApiKeyType\";\nconst _AOPCI = \"AtlassianOauth2ProviderConfigInput\";\nconst _AOPCO = \"AtlassianOauth2ProviderConfigOutput\";\nconst _AR = \"AgentRuntime\";\nconst _ARA = \"AgentRuntimeArtifact\";\nconst _ARE = \"AgentRuntimeEndpoint\";\nconst _AREg = \"AgentRuntimeEndpoints\";\nconst _ARg = \"AgentRuntimes\";\nconst _ASC = \"ApiSchemaConfiguration\";\nconst _ASD = \"AgentSkillsDescriptor\";\nconst _BEMC = \"BedrockEvaluatorModelConfig\";\nconst _BEP = \"BrowserEnterprisePolicy\";\nconst _BEPr = \"BrowserEnterprisePolicies\";\nconst _BNC = \"BrowserNetworkConfiguration\";\nconst _BPS = \"BrowserProfileSummary\";\nconst _BPSr = \"BrowserProfileSummaries\";\nconst _BS = \"BrowserSummary\";\nconst _BSCI = \"BrowserSigningConfigInput\";\nconst _BSCO = \"BrowserSigningConfigOutput\";\nconst _BSr = \"BrowserSummaries\";\nconst _C = \"Certificate\";\nconst _CAKCP = \"CreateApiKeyCredentialProvider\";\nconst _CAKCPR = \"CreateApiKeyCredentialProviderRequest\";\nconst _CAKCPRr = \"CreateApiKeyCredentialProviderResponse\";\nconst _CAR = \"CreateAgentRuntime\";\nconst _CARE = \"CreateAgentRuntimeEndpoint\";\nconst _CARER = \"CreateAgentRuntimeEndpointRequest\";\nconst _CARERr = \"CreateAgentRuntimeEndpointResponse\";\nconst _CARR = \"CreateAgentRuntimeRequest\";\nconst _CARRr = \"CreateAgentRuntimeResponse\";\nconst _CB = \"CreateBrowser\";\nconst _CBEC = \"CodeBasedEvaluatorConfig\";\nconst _CBP = \"CreateBrowserProfile\";\nconst _CBPR = \"CreateBrowserProfileRequest\";\nconst _CBPRr = \"CreateBrowserProfileResponse\";\nconst _CBR = \"CreateBrowserRequest\";\nconst _CBRr = \"CreateBrowserResponse\";\nconst _CC = \"CodeConfiguration\";\nconst _CCC = \"CustomConsolidationConfiguration\";\nconst _CCCI = \"CustomConsolidationConfigurationInput\";\nconst _CCI = \"CustomConfigurationInput\";\nconst _CCIR = \"CreateCodeInterpreterRequest\";\nconst _CCIRr = \"CreateCodeInterpreterResponse\";\nconst _CCIr = \"CreateCodeInterpreter\";\nconst _CCL = \"ContentConfigurationList\";\nconst _CCVT = \"CustomClaimValidationType\";\nconst _CCVTu = \"CustomClaimValidationsType\";\nconst _CCo = \"ContainerConfiguration\";\nconst _CCon = \"ContentConfiguration\";\nconst _CCons = \"ConsolidationConfiguration\";\nconst _CD = \"CustomDescriptor\";\nconst _CE = \"ConflictException\";\nconst _CEC = \"CustomExtractionConfiguration\";\nconst _CECI = \"CustomExtractionConfigurationInput\";\nconst _CER = \"CreateEvaluatorRequest\";\nconst _CERr = \"CreateEvaluatorResponse\";\nconst _CEr = \"CreateEvaluator\";\nconst _CG = \"CreateGateway\";\nconst _CGR = \"CreateGatewayRequest\";\nconst _CGRr = \"CreateGatewayResponse\";\nconst _CGT = \"CreateGatewayTarget\";\nconst _CGTR = \"CreateGatewayTargetRequest\";\nconst _CGTRr = \"CreateGatewayTargetResponse\";\nconst _CINC = \"CodeInterpreterNetworkConfiguration\";\nconst _CIS = \"CodeInterpreterSummary\";\nconst _CISo = \"CodeInterpreterSummaries\";\nconst _CJWTAC = \"CustomJWTAuthorizerConfiguration\";\nconst _CL = \"CertificateLocation\";\nconst _CM = \"CreateMemory\";\nconst _CME = \"ConcurrentModificationException\";\nconst _CMI = \"CreateMemoryInput\";\nconst _CMO = \"CreateMemoryOutput\";\nconst _CMSI = \"CustomMemoryStrategyInput\";\nconst _CMVT = \"ClaimMatchValueType\";\nconst _COCP = \"CreateOauth2CredentialProvider\";\nconst _COCPR = \"CreateOauth2CredentialProviderRequest\";\nconst _COCPRr = \"CreateOauth2CredentialProviderResponse\";\nconst _COEC = \"CreateOnlineEvaluationConfig\";\nconst _COECR = \"CreateOnlineEvaluationConfigRequest\";\nconst _COECRr = \"CreateOnlineEvaluationConfigResponse\";\nconst _COPCI = \"CustomOauth2ProviderConfigInput\";\nconst _COPCO = \"CustomOauth2ProviderConfigOutput\";\nconst _CP = \"CedarPolicy\";\nconst _CPC = \"CredentialProviderConfiguration\";\nconst _CPCr = \"CredentialProviderConfigurations\";\nconst _CPE = \"CreatePolicyEngine\";\nconst _CPER = \"CreatePolicyEngineRequest\";\nconst _CPERr = \"CreatePolicyEngineResponse\";\nconst _CPR = \"CreatePolicyRequest\";\nconst _CPRr = \"CreatePolicyResponse\";\nconst _CPr = \"CredentialProvider\";\nconst _CPre = \"CreatePolicy\";\nconst _CR = \"CreateRegistry\";\nconst _CRC = \"CustomReflectionConfiguration\";\nconst _CRCI = \"CustomReflectionConfigurationInput\";\nconst _CRR = \"CreateRegistryRequest\";\nconst _CRRR = \"CreateRegistryRecordRequest\";\nconst _CRRRr = \"CreateRegistryRecordResponse\";\nconst _CRRr = \"CreateRegistryResponse\";\nconst _CRRre = \"CreateRegistryRecord\";\nconst _CSD = \"CategoricalScaleDefinition\";\nconst _CSDa = \"CategoricalScaleDefinitions\";\nconst _CST = \"ClientSecretType\";\nconst _CWI = \"CreateWorkloadIdentity\";\nconst _CWIR = \"CreateWorkloadIdentityRequest\";\nconst _CWIRr = \"CreateWorkloadIdentityResponse\";\nconst _CWLIC = \"CloudWatchLogsInputConfig\";\nconst _CWOC = \"CloudWatchOutputConfig\";\nconst _Ce = \"Certificates\";\nconst _Co = \"Code\";\nconst _Con = \"Content\";\nconst _D = \"Description\";\nconst _DAKCP = \"DeleteApiKeyCredentialProvider\";\nconst _DAKCPR = \"DeleteApiKeyCredentialProviderRequest\";\nconst _DAKCPRe = \"DeleteApiKeyCredentialProviderResponse\";\nconst _DAR = \"DeleteAgentRuntime\";\nconst _DARE = \"DeleteAgentRuntimeEndpoint\";\nconst _DARER = \"DeleteAgentRuntimeEndpointRequest\";\nconst _DARERe = \"DeleteAgentRuntimeEndpointResponse\";\nconst _DARR = \"DeleteAgentRuntimeRequest\";\nconst _DARRe = \"DeleteAgentRuntimeResponse\";\nconst _DB = \"DeleteBrowser\";\nconst _DBP = \"DeleteBrowserProfile\";\nconst _DBPR = \"DeleteBrowserProfileRequest\";\nconst _DBPRe = \"DeleteBrowserProfileResponse\";\nconst _DBR = \"DeleteBrowserRequest\";\nconst _DBRe = \"DeleteBrowserResponse\";\nconst _DCI = \"DeleteCodeInterpreter\";\nconst _DCIR = \"DeleteCodeInterpreterRequest\";\nconst _DCIRe = \"DeleteCodeInterpreterResponse\";\nconst _DE = \"DeleteEvaluator\";\nconst _DER = \"DeleteEvaluatorRequest\";\nconst _DERe = \"DeleteEvaluatorResponse\";\nconst _DF = \"DecryptionFailure\";\nconst _DG = \"DeleteGateway\";\nconst _DGR = \"DeleteGatewayRequest\";\nconst _DGRe = \"DeleteGatewayResponse\";\nconst _DGT = \"DeleteGatewayTarget\";\nconst _DGTR = \"DeleteGatewayTargetRequest\";\nconst _DGTRe = \"DeleteGatewayTargetResponse\";\nconst _DM = \"DeleteMemory\";\nconst _DMI = \"DeleteMemoryInput\";\nconst _DMO = \"DeleteMemoryOutput\";\nconst _DMSI = \"DeleteMemoryStrategyInput\";\nconst _DMSL = \"DeleteMemoryStrategiesList\";\nconst _DOCP = \"DeleteOauth2CredentialProvider\";\nconst _DOCPR = \"DeleteOauth2CredentialProviderRequest\";\nconst _DOCPRe = \"DeleteOauth2CredentialProviderResponse\";\nconst _DOEC = \"DeleteOnlineEvaluationConfig\";\nconst _DOECR = \"DeleteOnlineEvaluationConfigRequest\";\nconst _DOECRe = \"DeleteOnlineEvaluationConfigResponse\";\nconst _DP = \"DeletePolicy\";\nconst _DPE = \"DeletePolicyEngine\";\nconst _DPER = \"DeletePolicyEngineRequest\";\nconst _DPERe = \"DeletePolicyEngineResponse\";\nconst _DPR = \"DeletePolicyRequest\";\nconst _DPRe = \"DeletePolicyResponse\";\nconst _DR = \"DeleteRegistry\";\nconst _DRP = \"DeleteResourcePolicy\";\nconst _DRPR = \"DeleteResourcePolicyRequest\";\nconst _DRPRe = \"DeleteResourcePolicyResponse\";\nconst _DRR = \"DeleteRegistryRequest\";\nconst _DRRR = \"DeleteRegistryRecordRequest\";\nconst _DRRRe = \"DeleteRegistryRecordResponse\";\nconst _DRRe = \"DeleteRegistryResponse\";\nconst _DRRel = \"DeleteRegistryRecord\";\nconst _DSC = \"DataSourceConfig\";\nconst _DWI = \"DeleteWorkloadIdentity\";\nconst _DWIR = \"DeleteWorkloadIdentityRequest\";\nconst _DWIRe = \"DeleteWorkloadIdentityResponse\";\nconst _De = \"Descriptors\";\nconst _EC = \"EvaluatorConfig\";\nconst _ECD = \"EvaluationConfigDescription\";\nconst _ECO = \"EpisodicConsolidationOverride\";\nconst _ECx = \"ExtractionConfiguration\";\nconst _ED = \"EvaluatorDescription\";\nconst _EEO = \"EpisodicExtractionOverride\";\nconst _EF = \"EncryptionFailure\";\nconst _EI = \"EvaluatorInstructions\";\nconst _EL = \"EvaluatorList\";\nconst _EMC = \"EvaluatorModelConfig\";\nconst _EMSI = \"EpisodicMemoryStrategyInput\";\nconst _EN = \"EndpointName\";\nconst _EOCCI = \"EpisodicOverrideConsolidationConfigurationInput\";\nconst _EOCI = \"EpisodicOverrideConfigurationInput\";\nconst _EOECI = \"EpisodicOverrideExtractionConfigurationInput\";\nconst _EORCI = \"EpisodicOverrideReflectionConfigurationInput\";\nconst _ER = \"EvaluatorReference\";\nconst _ERC = \"EpisodicReflectionConfiguration\";\nconst _ERCI = \"EpisodicReflectionConfigurationInput\";\nconst _ERO = \"EpisodicReflectionOverride\";\nconst _ES = \"EvaluatorSummary\";\nconst _ESL = \"EvaluatorSummaryList\";\nconst _EVM = \"EnvironmentVariablesMap\";\nconst _F = \"Filter\";\nconst _FC = \"FilesystemConfigurations\";\nconst _FCi = \"FilesystemConfiguration\";\nconst _FL = \"FilterList\";\nconst _FUSC = \"FromUrlSynchronizationConfiguration\";\nconst _FV = \"FilterValue\";\nconst _Fi = \"Finding\";\nconst _Fin = \"Findings\";\nconst _GAKCP = \"GatewayApiKeyCredentialProvider\";\nconst _GAKCPR = \"GetApiKeyCredentialProviderRequest\";\nconst _GAKCPRe = \"GetApiKeyCredentialProviderResponse\";\nconst _GAKCPe = \"GetApiKeyCredentialProvider\";\nconst _GAR = \"GetAgentRuntime\";\nconst _GARE = \"GetAgentRuntimeEndpoint\";\nconst _GARER = \"GetAgentRuntimeEndpointRequest\";\nconst _GARERe = \"GetAgentRuntimeEndpointResponse\";\nconst _GARR = \"GetAgentRuntimeRequest\";\nconst _GARRe = \"GetAgentRuntimeResponse\";\nconst _GB = \"GetBrowser\";\nconst _GBP = \"GetBrowserProfile\";\nconst _GBPR = \"GetBrowserProfileRequest\";\nconst _GBPRe = \"GetBrowserProfileResponse\";\nconst _GBR = \"GetBrowserRequest\";\nconst _GBRe = \"GetBrowserResponse\";\nconst _GCI = \"GetCodeInterpreter\";\nconst _GCIR = \"GetCodeInterpreterRequest\";\nconst _GCIRe = \"GetCodeInterpreterResponse\";\nconst _GD = \"GatewayDescription\";\nconst _GE = \"GetEvaluator\";\nconst _GER = \"GetEvaluatorRequest\";\nconst _GERe = \"GetEvaluatorResponse\";\nconst _GG = \"GetGateway\";\nconst _GGR = \"GetGatewayRequest\";\nconst _GGRe = \"GetGatewayResponse\";\nconst _GGT = \"GetGatewayTarget\";\nconst _GGTR = \"GetGatewayTargetRequest\";\nconst _GGTRe = \"GetGatewayTargetResponse\";\nconst _GIC = \"GatewayInterceptorConfiguration\";\nconst _GICa = \"GatewayInterceptorConfigurations\";\nconst _GM = \"GetMemory\";\nconst _GMI = \"GetMemoryInput\";\nconst _GMO = \"GetMemoryOutput\";\nconst _GN = \"GatewayName\";\nconst _GOCP = \"GetOauth2CredentialProvider\";\nconst _GOCPR = \"GetOauth2CredentialProviderRequest\";\nconst _GOCPRe = \"GetOauth2CredentialProviderResponse\";\nconst _GOEC = \"GetOnlineEvaluationConfig\";\nconst _GOECR = \"GetOnlineEvaluationConfigRequest\";\nconst _GOECRe = \"GetOnlineEvaluationConfigResponse\";\nconst _GOPCI = \"GithubOauth2ProviderConfigInput\";\nconst _GOPCIo = \"GoogleOauth2ProviderConfigInput\";\nconst _GOPCO = \"GithubOauth2ProviderConfigOutput\";\nconst _GOPCOo = \"GoogleOauth2ProviderConfigOutput\";\nconst _GP = \"GetPolicy\";\nconst _GPC = \"GatewayProtocolConfiguration\";\nconst _GPE = \"GetPolicyEngine\";\nconst _GPEC = \"GatewayPolicyEngineConfiguration\";\nconst _GPER = \"GetPolicyEngineRequest\";\nconst _GPERe = \"GetPolicyEngineResponse\";\nconst _GPG = \"GetPolicyGeneration\";\nconst _GPGR = \"GetPolicyGenerationRequest\";\nconst _GPGRe = \"GetPolicyGenerationResponse\";\nconst _GPR = \"GetPolicyRequest\";\nconst _GPRe = \"GetPolicyResponse\";\nconst _GR = \"GetRegistry\";\nconst _GRP = \"GetResourcePolicy\";\nconst _GRPR = \"GetResourcePolicyRequest\";\nconst _GRPRe = \"GetResourcePolicyResponse\";\nconst _GRR = \"GetRegistryRequest\";\nconst _GRRR = \"GetRegistryRecordRequest\";\nconst _GRRRe = \"GetRegistryRecordResponse\";\nconst _GRRe = \"GetRegistryResponse\";\nconst _GRRet = \"GetRegistryRecord\";\nconst _GS = \"GatewaySummary\";\nconst _GSa = \"GatewaySummaries\";\nconst _GT = \"GatewayTarget\";\nconst _GTL = \"GatewayTargetList\";\nconst _GTV = \"GetTokenVault\";\nconst _GTVR = \"GetTokenVaultRequest\";\nconst _GTVRe = \"GetTokenVaultResponse\";\nconst _GWI = \"GetWorkloadIdentity\";\nconst _GWIR = \"GetWorkloadIdentityRequest\";\nconst _GWIRe = \"GetWorkloadIdentityResponse\";\nconst _IC = \"InferenceConfiguration\";\nconst _ICI = \"InvocationConfigurationInput\";\nconst _ICP = \"IamCredentialProvider\";\nconst _ICn = \"InvocationConfiguration\";\nconst _ICnt = \"InterceptorConfiguration\";\nconst _IIC = \"InterceptorInputConfiguration\";\nconst _IOPCI = \"IncludedOauth2ProviderConfigInput\";\nconst _IOPCO = \"IncludedOauth2ProviderConfigOutput\";\nconst _IP = \"InlinePayload\";\nconst _ISE = \"InternalServerException\";\nconst _KC = \"KmsConfiguration\";\nconst _KR = \"KinesisResource\";\nconst _LAAJEC = \"LlmAsAJudgeEvaluatorConfig\";\nconst _LAKCP = \"ListApiKeyCredentialProviders\";\nconst _LAKCPR = \"ListApiKeyCredentialProvidersRequest\";\nconst _LAKCPRi = \"ListApiKeyCredentialProvidersResponse\";\nconst _LAR = \"ListAgentRuntimes\";\nconst _LARE = \"ListAgentRuntimeEndpoints\";\nconst _LARER = \"ListAgentRuntimeEndpointsRequest\";\nconst _LARERi = \"ListAgentRuntimeEndpointsResponse\";\nconst _LARR = \"ListAgentRuntimesRequest\";\nconst _LARRi = \"ListAgentRuntimesResponse\";\nconst _LARV = \"ListAgentRuntimeVersions\";\nconst _LARVR = \"ListAgentRuntimeVersionsRequest\";\nconst _LARVRi = \"ListAgentRuntimeVersionsResponse\";\nconst _LB = \"ListBrowsers\";\nconst _LBP = \"ListBrowserProfiles\";\nconst _LBPR = \"ListBrowserProfilesRequest\";\nconst _LBPRi = \"ListBrowserProfilesResponse\";\nconst _LBR = \"ListBrowsersRequest\";\nconst _LBRi = \"ListBrowsersResponse\";\nconst _LC = \"LifecycleConfiguration\";\nconst _LCI = \"ListCodeInterpreters\";\nconst _LCIR = \"ListCodeInterpretersRequest\";\nconst _LCIRi = \"ListCodeInterpretersResponse\";\nconst _LE = \"ListEvaluators\";\nconst _LEC = \"LambdaEvaluatorConfig\";\nconst _LER = \"ListEvaluatorsRequest\";\nconst _LERi = \"ListEvaluatorsResponse\";\nconst _LG = \"ListGateways\";\nconst _LGR = \"ListGatewaysRequest\";\nconst _LGRi = \"ListGatewaysResponse\";\nconst _LGT = \"ListGatewayTargets\";\nconst _LGTR = \"ListGatewayTargetsRequest\";\nconst _LGTRi = \"ListGatewayTargetsResponse\";\nconst _LIC = \"LambdaInterceptorConfiguration\";\nconst _LM = \"ListMemories\";\nconst _LMI = \"ListMemoriesInput\";\nconst _LMO = \"ListMemoriesOutput\";\nconst _LOCP = \"ListOauth2CredentialProviders\";\nconst _LOCPR = \"ListOauth2CredentialProvidersRequest\";\nconst _LOCPRi = \"ListOauth2CredentialProvidersResponse\";\nconst _LOEC = \"ListOnlineEvaluationConfigs\";\nconst _LOECR = \"ListOnlineEvaluationConfigsRequest\";\nconst _LOECRi = \"ListOnlineEvaluationConfigsResponse\";\nconst _LOPCI = \"LinkedinOauth2ProviderConfigInput\";\nconst _LOPCO = \"LinkedinOauth2ProviderConfigOutput\";\nconst _LP = \"ListPolicies\";\nconst _LPE = \"ListPolicyEngines\";\nconst _LPER = \"ListPolicyEnginesRequest\";\nconst _LPERi = \"ListPolicyEnginesResponse\";\nconst _LPG = \"ListPolicyGenerations\";\nconst _LPGA = \"ListPolicyGenerationAssets\";\nconst _LPGAR = \"ListPolicyGenerationAssetsRequest\";\nconst _LPGARi = \"ListPolicyGenerationAssetsResponse\";\nconst _LPGR = \"ListPolicyGenerationsRequest\";\nconst _LPGRi = \"ListPolicyGenerationsResponse\";\nconst _LPR = \"ListPoliciesRequest\";\nconst _LPRi = \"ListPoliciesResponse\";\nconst _LR = \"ListRegistries\";\nconst _LRR = \"ListRegistriesRequest\";\nconst _LRRR = \"ListRegistryRecordsRequest\";\nconst _LRRRi = \"ListRegistryRecordsResponse\";\nconst _LRRi = \"ListRegistriesResponse\";\nconst _LRRis = \"ListRegistryRecords\";\nconst _LTFR = \"ListTagsForResource\";\nconst _LTFRR = \"ListTagsForResourceRequest\";\nconst _LTFRRi = \"ListTagsForResourceResponse\";\nconst _LWI = \"ListWorkloadIdentities\";\nconst _LWIR = \"ListWorkloadIdentitiesRequest\";\nconst _LWIRi = \"ListWorkloadIdentitiesResponse\";\nconst _M = \"Memory\";\nconst _MBT = \"MessageBasedTrigger\";\nconst _MBTI = \"MessageBasedTriggerInput\";\nconst _MC = \"MetadataConfiguration\";\nconst _MCC = \"ModifyConsolidationConfiguration\";\nconst _MCPGC = \"MCPGatewayConfiguration\";\nconst _MD = \"McpDescriptor\";\nconst _MEC = \"ModifyExtractionConfiguration\";\nconst _MICI = \"ModifyInvocationConfigurationInput\";\nconst _MLR = \"ManagedLatticeResource\";\nconst _MLTC = \"McpLambdaTargetConfiguration\";\nconst _MMS = \"ModifyMemoryStrategies\";\nconst _MMSI = \"ModifyMemoryStrategyInput\";\nconst _MMSL = \"ModifyMemoryStrategiesList\";\nconst _MOPCI = \"MicrosoftOauth2ProviderConfigInput\";\nconst _MOPCO = \"MicrosoftOauth2ProviderConfigOutput\";\nconst _MRC = \"ModifyReflectionConfiguration\";\nconst _MRD = \"ManagedResourceDetails\";\nconst _MS = \"MemoryStrategy\";\nconst _MSC = \"ModifyStrategyConfiguration\";\nconst _MSI = \"MemoryStrategyInput\";\nconst _MSIL = \"MemoryStrategyInputList\";\nconst _MSL = \"MemoryStrategyList\";\nconst _MSLe = \"MemorySummaryList\";\nconst _MSMC = \"ModifySelfManagedConfiguration\";\nconst _MSTC = \"McpServerTargetConfiguration\";\nconst _MSe = \"MemorySummary\";\nconst _MTC = \"McpTargetConfiguration\";\nconst _MTSC = \"McpToolSchemaConfiguration\";\nconst _NC = \"NetworkConfiguration\";\nconst _NSD = \"NumericalScaleDefinition\";\nconst _NSDu = \"NumericalScaleDefinitions\";\nconst _OAAD = \"OAuth2AuthorizationData\";\nconst _OACP = \"OAuthCredentialProvider\";\nconst _OACPV = \"OAuthCustomParametersValue\";\nconst _OACPu = \"OAuthCustomParameters\";\nconst _OASM = \"Oauth2AuthorizationServerMetadata\";\nconst _OC = \"OutputConfig\";\nconst _OCP = \"Oauth2CredentialProviders\";\nconst _OCPI = \"Oauth2CredentialProviderItem\";\nconst _OD = \"Oauth2Discovery\";\nconst _OECS = \"OnlineEvaluationConfigSummary\";\nconst _OECSL = \"OnlineEvaluationConfigSummaryList\";\nconst _OPCI = \"Oauth2ProviderConfigInput\";\nconst _OPCO = \"Oauth2ProviderConfigOutput\";\nconst _P = \"Prompt\";\nconst _PC = \"ProtocolConfiguration\";\nconst _PD = \"PolicyDefinition\";\nconst _PE = \"PolicyEngine\";\nconst _PEMR = \"PrivateEndpointManagedResources\";\nconst _PEo = \"PolicyEngines\";\nconst _PEr = \"PrivateEndpoint\";\nconst _PG = \"PolicyGeneration\";\nconst _PGA = \"PolicyGenerationAsset\";\nconst _PGAo = \"PolicyGenerationAssets\";\nconst _PGD = \"PolicyGenerationDetails\";\nconst _PGo = \"PolicyGenerations\";\nconst _PRP = \"PutResourcePolicy\";\nconst _PRPR = \"PutResourcePolicyRequest\";\nconst _PRPRu = \"PutResourcePolicyResponse\";\nconst _Po = \"Policy\";\nconst _Pol = \"Policies\";\nconst _R = \"Rule\";\nconst _RC = \"RecordingConfig\";\nconst _RCe = \"ReflectionConfiguration\";\nconst _RHC = \"RequestHeaderConfiguration\";\nconst _RL = \"ResourceLocation\";\nconst _RLEE = \"ResourceLimitExceededException\";\nconst _RMC = \"RuntimeMetadataConfiguration\";\nconst _RNFE = \"ResourceNotFoundException\";\nconst _RRCPC = \"RegistryRecordCredentialProviderConfiguration\";\nconst _RRCPCL = \"RegistryRecordCredentialProviderConfigurationList\";\nconst _RRCPU = \"RegistryRecordCredentialProviderUnion\";\nconst _RRICP = \"RegistryRecordIamCredentialProvider\";\nconst _RROACP = \"RegistryRecordOAuthCredentialProvider\";\nconst _RRS = \"RegistryRecordSummary\";\nconst _RRSL = \"RegistryRecordSummaryList\";\nconst _RS = \"RegistrySummary\";\nconst _RSL = \"RegistrySummaryList\";\nconst _RSa = \"RatingScale\";\nconst _Re = \"Resource\";\nconst _S = \"Secret\";\nconst _SC = \"S3Configuration\";\nconst _SCO = \"SemanticConsolidationOverride\";\nconst _SCOu = \"SummaryConsolidationOverride\";\nconst _SCa = \"SamplingConfig\";\nconst _SCe = \"SessionConfig\";\nconst _SCt = \"StrategyConfiguration\";\nconst _SCy = \"SynchronizationConfiguration\";\nconst _SD = \"SchemaDefinition\";\nconst _SDR = \"StreamDeliveryResources\";\nconst _SDRL = \"StreamDeliveryResourcesList\";\nconst _SDRt = \"StreamDeliveryResource\";\nconst _SDe = \"ServerDefinition\";\nconst _SDk = \"SkillDefinition\";\nconst _SE = \"ServiceException\";\nconst _SEO = \"SemanticExtractionOverride\";\nconst _SGT = \"SynchronizeGatewayTargets\";\nconst _SGTR = \"SynchronizeGatewayTargetsRequest\";\nconst _SGTRy = \"SynchronizeGatewayTargetsResponse\";\nconst _SL = \"S3Location\";\nconst _SMC = \"SelfManagedConfiguration\";\nconst _SMCI = \"SelfManagedConfigurationInput\";\nconst _SMD = \"SkillMdDefinition\";\nconst _SML = \"SecretsManagerLocation\";\nconst _SMLR = \"SelfManagedLatticeResource\";\nconst _SMSI = \"SemanticMemoryStrategyInput\";\nconst _SMSIu = \"SummaryMemoryStrategyInput\";\nconst _SOCCI = \"SemanticOverrideConsolidationConfigurationInput\";\nconst _SOCCIu = \"SummaryOverrideConsolidationConfigurationInput\";\nconst _SOCI = \"SemanticOverrideConfigurationInput\";\nconst _SOCIu = \"SummaryOverrideConfigurationInput\";\nconst _SOECI = \"SemanticOverrideExtractionConfigurationInput\";\nconst _SOPCI = \"SalesforceOauth2ProviderConfigInput\";\nconst _SOPCIl = \"SlackOauth2ProviderConfigInput\";\nconst _SOPCO = \"SalesforceOauth2ProviderConfigOutput\";\nconst _SOPCOl = \"SlackOauth2ProviderConfigOutput\";\nconst _SP = \"SchemaProperties\";\nconst _SPG = \"StartPolicyGeneration\";\nconst _SPGR = \"StartPolicyGenerationRequest\";\nconst _SPGRt = \"StartPolicyGenerationResponse\";\nconst _SQEE = \"ServiceQuotaExceededException\";\nconst _SRRFA = \"SubmitRegistryRecordForApproval\";\nconst _SRRFAR = \"SubmitRegistryRecordForApprovalRequest\";\nconst _SRRFARu = \"SubmitRegistryRecordForApprovalResponse\";\nconst _SSC = \"SessionStorageConfiguration\";\nconst _STVCMK = \"SetTokenVaultCMK\";\nconst _STVCMKR = \"SetTokenVaultCMKRequest\";\nconst _STVCMKRe = \"SetTokenVaultCMKResponse\";\nconst _TBT = \"TimeBasedTrigger\";\nconst _TBTI = \"TimeBasedTriggerInput\";\nconst _TBTIo = \"TokenBasedTriggerInput\";\nconst _TBTo = \"TokenBasedTrigger\";\nconst _TC = \"TargetConfiguration\";\nconst _TCI = \"TriggerConditionInput\";\nconst _TCIL = \"TriggerConditionInputList\";\nconst _TCL = \"TriggerConditionsList\";\nconst _TCr = \"TriggerCondition\";\nconst _TD = \"TargetDescription\";\nconst _TDo = \"ToolDefinition\";\nconst _TDoo = \"ToolsDefinition\";\nconst _TDool = \"ToolDefinitions\";\nconst _TE = \"ThrottledException\";\nconst _TEh = \"ThrottlingException\";\nconst _TN = \"TargetName\";\nconst _TR = \"TagResource\";\nconst _TRR = \"TagResourceRequest\";\nconst _TRRa = \"TagResourceResponse\";\nconst _TS = \"TargetSummary\";\nconst _TSa = \"TargetSummaries\";\nconst _TSo = \"ToolSchema\";\nconst _UAC = \"UpdatedApprovalConfiguration\";\nconst _UACp = \"UpdatedAuthorizerConfiguration\";\nconst _UAD = \"UpdatedA2aDescriptor\";\nconst _UAKCP = \"UpdateApiKeyCredentialProvider\";\nconst _UAKCPR = \"UpdateApiKeyCredentialProviderRequest\";\nconst _UAKCPRp = \"UpdateApiKeyCredentialProviderResponse\";\nconst _UAR = \"UpdateAgentRuntime\";\nconst _UARE = \"UpdateAgentRuntimeEndpoint\";\nconst _UARER = \"UpdateAgentRuntimeEndpointRequest\";\nconst _UARERp = \"UpdateAgentRuntimeEndpointResponse\";\nconst _UARR = \"UpdateAgentRuntimeRequest\";\nconst _UARRp = \"UpdateAgentRuntimeResponse\";\nconst _UASD = \"UpdatedAgentSkillsDescriptor\";\nconst _UASDF = \"UpdatedAgentSkillsDescriptorFields\";\nconst _UCD = \"UpdatedCustomDescriptor\";\nconst _UD = \"UpdatedDescription\";\nconst _UDU = \"UpdatedDescriptorsUnion\";\nconst _UDp = \"UpdatedDescriptors\";\nconst _UE = \"UnauthorizedException\";\nconst _UER = \"UpdateEvaluatorRequest\";\nconst _UERp = \"UpdateEvaluatorResponse\";\nconst _UEp = \"UpdateEvaluator\";\nconst _UG = \"UpdateGateway\";\nconst _UGR = \"UpdateGatewayRequest\";\nconst _UGRp = \"UpdateGatewayResponse\";\nconst _UGT = \"UpdateGatewayTarget\";\nconst _UGTR = \"UpdateGatewayTargetRequest\";\nconst _UGTRp = \"UpdateGatewayTargetResponse\";\nconst _UM = \"UpdateMemory\";\nconst _UMD = \"UpdatedMcpDescriptor\";\nconst _UMDF = \"UpdatedMcpDescriptorFields\";\nconst _UMI = \"UpdateMemoryInput\";\nconst _UMO = \"UpdateMemoryOutput\";\nconst _UOCP = \"UpdateOauth2CredentialProvider\";\nconst _UOCPR = \"UpdateOauth2CredentialProviderRequest\";\nconst _UOCPRp = \"UpdateOauth2CredentialProviderResponse\";\nconst _UOEC = \"UpdateOnlineEvaluationConfig\";\nconst _UOECR = \"UpdateOnlineEvaluationConfigRequest\";\nconst _UOECRp = \"UpdateOnlineEvaluationConfigResponse\";\nconst _UP = \"UpdatePolicy\";\nconst _UPCO = \"UserPreferenceConsolidationOverride\";\nconst _UPE = \"UpdatePolicyEngine\";\nconst _UPEO = \"UserPreferenceExtractionOverride\";\nconst _UPER = \"UpdatePolicyEngineRequest\";\nconst _UPERp = \"UpdatePolicyEngineResponse\";\nconst _UPMSI = \"UserPreferenceMemoryStrategyInput\";\nconst _UPOCCI = \"UserPreferenceOverrideConsolidationConfigurationInput\";\nconst _UPOCI = \"UserPreferenceOverrideConfigurationInput\";\nconst _UPOECI = \"UserPreferenceOverrideExtractionConfigurationInput\";\nconst _UPR = \"UpdatePolicyRequest\";\nconst _UPRp = \"UpdatePolicyResponse\";\nconst _UR = \"UntagResource\";\nconst _URR = \"UntagResourceRequest\";\nconst _URRR = \"UpdateRegistryRecordRequest\";\nconst _URRRp = \"UpdateRegistryRecordResponse\";\nconst _URRS = \"UpdateRegistryRecordStatus\";\nconst _URRSR = \"UpdateRegistryRecordStatusRequest\";\nconst _URRSRp = \"UpdateRegistryRecordStatusResponse\";\nconst _URRn = \"UntagResourceResponse\";\nconst _URRp = \"UpdateRegistryRequest\";\nconst _URRpd = \"UpdateRegistryResponse\";\nconst _URRpda = \"UpdateRegistryRecord\";\nconst _URp = \"UpdateRegistry\";\nconst _USC = \"UpdatedSynchronizationConfiguration\";\nconst _USD = \"UpdatedServerDefinition\";\nconst _USDp = \"UpdatedSkillDefinition\";\nconst _USMD = \"UpdatedSkillMdDefinition\";\nconst _UST = \"UpdatedSynchronizationType\";\nconst _UTD = \"UpdatedToolsDefinition\";\nconst _UWI = \"UpdateWorkloadIdentity\";\nconst _UWIR = \"UpdateWorkloadIdentityRequest\";\nconst _UWIRp = \"UpdateWorkloadIdentityResponse\";\nconst _VC = \"VpcConfig\";\nconst _VE = \"ValidationException\";\nconst _VEF = \"ValidationExceptionField\";\nconst _VEFL = \"ValidationExceptionFieldList\";\nconst _WID = \"WorkloadIdentityDetails\";\nconst _WIL = \"WorkloadIdentityList\";\nconst _WIT = \"WorkloadIdentityType\";\nconst _a = \"a2a\";\nconst _aA = \"autoApproval\";\nconst _aAl = \"allowedAudience\";\nconst _aC = \"agentCard\";\nconst _aCMV = \"authorizingClaimMatchValue\";\nconst _aCl = \"allowedClients\";\nconst _aCp = \"approvalConfiguration\";\nconst _aCu = \"authorizerConfiguration\";\nconst _aD = \"authorizationData\";\nconst _aE = \"authorizationEndpoint\";\nconst _aG = \"apiGateway\";\nconst _aGTC = \"apiGatewayToolConfiguration\";\nconst _aK = \"apiKey\";\nconst _aKCP = \"apiKeyCredentialProvider\";\nconst _aKSA = \"apiKeySecretArn\";\nconst _aMRF = \"additionalModelRequestFields\";\nconst _aMS = \"addMemoryStrategies\";\nconst _aOPC = \"atlassianOauth2ProviderConfig\";\nconst _aQP = \"allowedQueryParameters\";\nconst _aR = \"agentRuntimes\";\nconst _aRA = \"agentRuntimeArn\";\nconst _aRAg = \"agentRuntimeArtifact\";\nconst _aREA = \"agentRuntimeEndpointArn\";\nconst _aRH = \"allowedRequestHeaders\";\nconst _aRHl = \"allowedResponseHeaders\";\nconst _aRI = \"agentRuntimeId\";\nconst _aRN = \"agentRuntimeName\";\nconst _aRORU = \"allowedResourceOauth2ReturnUrls\";\nconst _aRV = \"agentRuntimeVersion\";\nconst _aS = \"allowedScopes\";\nconst _aSM = \"authorizationServerMetadata\";\nconst _aSg = \"agentSkills\";\nconst _aT = \"authorizerType\";\nconst _aTP = \"appendToPrompt\";\nconst _aU = \"authorizationUrl\";\nconst _ar = \"arn\";\nconst _b = \"bucket\";\nconst _bA = \"browserArn\";\nconst _bEMC = \"bedrockEvaluatorModelConfig\";\nconst _bI = \"browserId\";\nconst _bOAI = \"bucketOwnerAccountId\";\nconst _bS = \"browserSigning\";\nconst _bSr = \"browserSummaries\";\nconst _bV = \"booleanValue\";\nconst _c = \"client\";\nconst _cA = \"createdAt\";\nconst _cB = \"codeBased\";\nconst _cC = \"customClaims\";\nconst _cCC = \"customConsolidationConfiguration\";\nconst _cCo = \"contentConfigurations\";\nconst _cCod = \"codeConfiguration\";\nconst _cCon = \"containerConfiguration\";\nconst _cEC = \"customExtractionConfiguration\";\nconst _cI = \"clientId\";\nconst _cIA = \"codeInterpreterArn\";\nconst _cII = \"codeInterpreterId\";\nconst _cIS = \"codeInterpreterSummaries\";\nconst _cJWTA = \"customJWTAuthorizer\";\nconst _cL = \"credentialLocation\";\nconst _cMO = \"claimMatchOperator\";\nconst _cMS = \"customMemoryStrategy\";\nconst _cMV = \"claimMatchValue\";\nconst _cOPC = \"customOauth2ProviderConfig\";\nconst _cP = \"credentialProvider\";\nconst _cPA = \"credentialProviderArn\";\nconst _cPC = \"credentialProviderConfigurations\";\nconst _cPN = \"credentialParameterName\";\nconst _cPT = \"credentialProviderType\";\nconst _cPV = \"credentialProviderVendor\";\nconst _cPr = \"credentialPrefix\";\nconst _cPre = \"credentialProviders\";\nconst _cPu = \"customParameters\";\nconst _cRC = \"customReflectionConfiguration\";\nconst _cS = \"clientSecret\";\nconst _cSA = \"clientSecretArn\";\nconst _cT = \"createdTime\";\nconst _cTl = \"clientToken\";\nconst _cU = \"containerUri\";\nconst _cUa = \"callbackUrl\";\nconst _cWC = \"cloudWatchConfig\";\nconst _cWL = \"cloudWatchLogs\";\nconst _ca = \"categorical\";\nconst _ce = \"certificates\";\nconst _ced = \"cedar\";\nconst _co = \"code\";\nconst _con = \"configuration\";\nconst _cons = \"consolidation\";\nconst _cont = \"content\";\nconst _cu = \"custom\";\nconst _d = \"description\";\nconst _dMS = \"deleteMemoryStrategies\";\nconst _dRU = \"defaultReturnUrl\";\nconst _dSA = \"dataStreamArn\";\nconst _dSC = \"dataSourceConfig\";\nconst _dT = \"descriptorType\";\nconst _dU = \"discoveryUrl\";\nconst _dV = \"doubleValue\";\nconst _de = \"definition\";\nconst _des = \"descriptors\";\nconst _do = \"domain\";\nconst _e = \"error\";\nconst _eA = \"evaluatorArn\";\nconst _eC = \"evaluatorConfig\";\nconst _eCO = \"episodicConsolidationOverride\";\nconst _eED = \"eventExpiryDuration\";\nconst _eEO = \"episodicExtractionOverride\";\nconst _eERA = \"evaluationExecutionRoleArn\";\nconst _eI = \"evaluatorId\";\nconst _eIAT = \"endpointIpAddressType\";\nconst _eKA = \"encryptionKeyArn\";\nconst _eL = \"exceptionLevel\";\nconst _eMS = \"episodicMemoryStrategy\";\nconst _eN = \"endpointName\";\nconst _eNv = \"evaluatorName\";\nconst _eO = \"episodicOverride\";\nconst _eOC = \"enableOnCreate\";\nconst _eP = \"entryPoint\";\nconst _ePn = \"enterprisePolicies\";\nconst _eRA = \"executionRoleArn\";\nconst _eRC = \"episodicReflectionConfiguration\";\nconst _eRO = \"episodicReflectionOverride\";\nconst _eS = \"executionStatus\";\nconst _eT = \"evaluatorType\";\nconst _eV = \"environmentVariables\";\nconst _en = \"enabled\";\nconst _end = \"endpoint\";\nconst _ev = \"evaluators\";\nconst _ex = \"extraction\";\nconst _f = \"findings\";\nconst _fC = \"filesystemConfigurations\";\nconst _fL = \"fieldList\";\nconst _fP = \"filterPath\";\nconst _fR = \"failureReason\";\nconst _fU = \"fromUrl\";\nconst _fi = \"filters\";\nconst _gA = \"gatewayArn\";\nconst _gI = \"gatewayId\";\nconst _gIa = \"gatewayIdentifier\";\nconst _gOPC = \"googleOauth2ProviderConfig\";\nconst _gOPCi = \"githubOauth2ProviderConfig\";\nconst _gT = \"grantType\";\nconst _gU = \"gatewayUrl\";\nconst _h = \"http\";\nconst _hCWS = \"historicalContextWindowSize\";\nconst _hE = \"httpError\";\nconst _hQ = \"httpQuery\";\nconst _i = \"id\";\nconst _iC = \"inlineContent\";\nconst _iCP = \"iamCredentialProvider\";\nconst _iCn = \"inferenceConfig\";\nconst _iCnp = \"inputConfiguration\";\nconst _iCnt = \"interceptorConfigurations\";\nconst _iCnv = \"invocationConfiguration\";\nconst _iOPC = \"includedOauth2ProviderConfig\";\nconst _iP = \"interceptionPoints\";\nconst _iPn = \"inlinePayload\";\nconst _iRST = \"idleRuntimeSessionTimeout\";\nconst _iS = \"inputSchema\";\nconst _iST = \"idleSessionTimeout\";\nconst _iT = \"idempotencyToken\";\nconst _iTCN = \"inboundTokenClaimName\";\nconst _iTCVT = \"inboundTokenClaimValueType\";\nconst _in = \"interceptor\";\nconst _ins = \"instructions\";\nconst _is = \"issuer\";\nconst _it = \"items\";\nconst _k = \"key\";\nconst _kC = \"kmsConfiguration\";\nconst _kKA = \"kmsKeyArn\";\nconst _kT = \"keyType\";\nconst _ki = \"kinesis\";\nconst _l = \"location\";\nconst _lA = \"lambdaArn\";\nconst _lAAJ = \"llmAsAJudge\";\nconst _lC = \"lifecycleConfiguration\";\nconst _lCa = \"lambdaConfig\";\nconst _lFM = \"lockedForModification\";\nconst _lGN = \"logGroupNames\";\nconst _lGNo = \"logGroupName\";\nconst _lM = \"listingMode\";\nconst _lMD = \"lastModifiedDate\";\nconst _lOPC = \"linkedinOauth2ProviderConfig\";\nconst _lSA = \"lastSavedAt\";\nconst _lSAa = \"lastSynchronizedAt\";\nconst _lSBI = \"lastSavedBrowserId\";\nconst _lSBSI = \"lastSavedBrowserSessionId\";\nconst _lTIS = \"lambdaTimeoutInSeconds\";\nconst _lUA = \"lastUpdatedAt\";\nconst _lUT = \"lastUpdatedTime\";\nconst _lV = \"liveVersion\";\nconst _la = \"label\";\nconst _lam = \"lambda\";\nconst _le = \"level\";\nconst _m = \"message\";\nconst _mBT = \"messageBasedTrigger\";\nconst _mC = \"metadataConfiguration\";\nconst _mCe = \"messageCount\";\nconst _mCo = \"modelConfig\";\nconst _mERA = \"memoryExecutionRoleArn\";\nconst _mI = \"modelId\";\nconst _mIe = \"memoryId\";\nconst _mL = \"maxLifetime\";\nconst _mLR = \"managedLatticeResource\";\nconst _mMS = \"modifyMemoryStrategies\";\nconst _mOPC = \"microsoftOauth2ProviderConfig\";\nconst _mP = \"mountPath\";\nconst _mR = \"maxResults\";\nconst _mS = \"memoryStrategies\";\nconst _mSI = \"memoryStrategyId\";\nconst _mSc = \"mcpServer\";\nconst _mT = \"maxTokens\";\nconst _mTS = \"mcpToolSchema\";\nconst _mVS = \"matchValueString\";\nconst _mVSL = \"matchValueStringList\";\nconst _mc = \"mcp\";\nconst _me = \"methods\";\nconst _mem = \"memory\";\nconst _memo = \"memories\";\nconst _met = \"method\";\nconst _mo = \"mode\";\nconst _n = \"name\";\nconst _nC = \"networkConfiguration\";\nconst _nM = \"networkMode\";\nconst _nMC = \"networkModeConfig\";\nconst _nT = \"namespaceTemplates\";\nconst _nTe = \"nextToken\";\nconst _na = \"namespaces\";\nconst _nu = \"numerical\";\nconst _o = \"operator\";\nconst _oAS = \"openApiSchema\";\nconst _oC = \"outputConfig\";\nconst _oCP = \"oauthCredentialProvider\";\nconst _oD = \"oauthDiscovery\";\nconst _oEC = \"onlineEvaluationConfigs\";\nconst _oECA = \"onlineEvaluationConfigArn\";\nconst _oECI = \"onlineEvaluationConfigId\";\nconst _oECN = \"onlineEvaluationConfigName\";\nconst _oPCI = \"oauth2ProviderConfigInput\";\nconst _oPCO = \"oauth2ProviderConfigOutput\";\nconst _oS = \"outputSchema\";\nconst _oV = \"optionalValue\";\nconst _oa = \"oauth2\";\nconst _p = \"path\";\nconst _pA = \"profileArn\";\nconst _pAo = \"policyArn\";\nconst _pAr = \"providerArn\";\nconst _pC = \"protocolConfiguration\";\nconst _pDBN = \"payloadDeliveryBucketName\";\nconst _pE = \"privateEndpoint\";\nconst _pEA = \"policyEngineArn\";\nconst _pEC = \"policyEngineConfiguration\";\nconst _pEI = \"policyEngineId\";\nconst _pEMR = \"privateEndpointManagedResources\";\nconst _pEo = \"policyEngines\";\nconst _pG = \"policyGenerations\";\nconst _pGA = \"policyGenerationArn\";\nconst _pGAI = \"policyGenerationAssetId\";\nconst _pGAo = \"policyGenerationAssets\";\nconst _pGI = \"policyGenerationId\";\nconst _pGo = \"policyGeneration\";\nconst _pI = \"profileId\";\nconst _pIo = \"policyId\";\nconst _pRH = \"passRequestHeaders\";\nconst _pS = \"profileSummaries\";\nconst _pT = \"protocolType\";\nconst _pV = \"protocolVersion\";\nconst _po = \"policy\";\nconst _pol = \"policies\";\nconst _pr = \"prefix\";\nconst _pro = \"properties\";\nconst _r = \"reason\";\nconst _rA = \"roleArn\";\nconst _rAA = \"resourceAssociationArn\";\nconst _rAI = \"restApiId\";\nconst _rAe = \"recordArn\";\nconst _rAeg = \"registryArn\";\nconst _rAes = \"resourceArn\";\nconst _rC = \"reflectionConfiguration\";\nconst _rCI = \"resourceConfigurationIdentifier\";\nconst _rD = \"routingDomain\";\nconst _rE = \"runtimeEndpoints\";\nconst _rGA = \"resourceGatewayArn\";\nconst _rHA = \"requestHeaderAllowlist\";\nconst _rHC = \"requestHeaderConfiguration\";\nconst _rI = \"registryId\";\nconst _rIe = \"recordId\";\nconst _rMMDSV = \"requireMMDSV2\";\nconst _rR = \"registryRecords\";\nconst _rS = \"ratingScale\";\nconst _rT = \"responseTypes\";\nconst _rTF = \"rawTextFragment\";\nconst _rTa = \"rawText\";\nconst _rV = \"recordVersion\";\nconst _re = \"recording\";\nconst _ref = \"reflection\";\nconst _reg = \"region\";\nconst _regi = \"registries\";\nconst _req = \"required\";\nconst _res = \"resource\";\nconst _reso = \"resources\";\nconst _ru = \"runtime\";\nconst _rul = \"rule\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.bedrockagentcorecontrol\";\nconst _sA = \"secretArn\";\nconst _sC = \"synchronizationConfiguration\";\nconst _sCO = \"semanticConsolidationOverride\";\nconst _sCOu = \"summaryConsolidationOverride\";\nconst _sCa = \"samplingConfig\";\nconst _sCe = \"sessionConfig\";\nconst _sD = \"skillDefinition\";\nconst _sDR = \"streamDeliveryResources\";\nconst _sEO = \"semanticExtractionOverride\";\nconst _sG = \"securityGroups\";\nconst _sGI = \"securityGroupIds\";\nconst _sI = \"subnetIds\";\nconst _sIt = \"strategyId\";\nconst _sL = \"s3Location\";\nconst _sM = \"skillMd\";\nconst _sMC = \"selfManagedConfiguration\";\nconst _sMLR = \"selfManagedLatticeResource\";\nconst _sMS = \"semanticMemoryStrategy\";\nconst _sMSu = \"summaryMemoryStrategy\";\nconst _sMe = \"secretsManager\";\nconst _sMm = \"smithyModel\";\nconst _sN = \"serviceNames\";\nconst _sO = \"semanticOverride\";\nconst _sOPC = \"slackOauth2ProviderConfig\";\nconst _sOPCa = \"salesforceOauth2ProviderConfig\";\nconst _sOu = \"summaryOverride\";\nconst _sP = \"serverProtocol\";\nconst _sPa = \"samplingPercentage\";\nconst _sR = \"statusReasons\";\nconst _sRt = \"statusReason\";\nconst _sS = \"stopSequences\";\nconst _sSe = \"sessionStorage\";\nconst _sT = \"synchronizationType\";\nconst _sTM = \"sessionTimeoutMinutes\";\nconst _sTe = \"searchType\";\nconst _sV = \"schemaVersion\";\nconst _sVt = \"stringValue\";\nconst _sVu = \"supportedVersions\";\nconst _s_ = \"s3\";\nconst _sc = \"scopes\";\nconst _se = \"server\";\nconst _ser = \"service\";\nconst _st = \"status\";\nconst _sta = \"stage\";\nconst _stat = \"statement\";\nconst _str = \"strategies\";\nconst _su = \"subnets\";\nconst _t = \"type\";\nconst _tA = \"topicArn\";\nconst _tBT = \"tokenBasedTrigger\";\nconst _tBTi = \"timeBasedTrigger\";\nconst _tC = \"targetConfiguration\";\nconst _tCo = \"tokenCount\";\nconst _tCr = \"triggerConditions\";\nconst _tE = \"tokenEndpoint\";\nconst _tEAM = \"tokenEndpointAuthMethods\";\nconst _tF = \"toolFilters\";\nconst _tI = \"targetId\";\nconst _tIL = \"targetIdList\";\nconst _tIe = \"tenantId\";\nconst _tK = \"tagKeys\";\nconst _tO = \"toolOverrides\";\nconst _tP = \"topP\";\nconst _tRS = \"targetResourceScope\";\nconst _tS = \"toolSchema\";\nconst _tSr = \"triggerSynchronization\";\nconst _tV = \"targetVersion\";\nconst _tVI = \"tokenVaultId\";\nconst _ta = \"tags\";\nconst _tar = \"targets\";\nconst _te = \"temperature\";\nconst _to = \"tools\";\nconst _u = \"url\";\nconst _uA = \"updatedAt\";\nconst _uI = \"userId\";\nconst _uPCO = \"userPreferenceConsolidationOverride\";\nconst _uPEO = \"userPreferenceExtractionOverride\";\nconst _uPMS = \"userPreferenceMemoryStrategy\";\nconst _uPO = \"userPreferenceOverride\";\nconst _ur = \"uri\";\nconst _v = \"value\";\nconst _vC = \"vpcConfig\";\nconst _vI = \"vpcIdentifier\";\nconst _vIe = \"versionId\";\nconst _vM = \"validationMode\";\nconst _ve = \"version\";\nconst _vi = \"view\";\nconst _wI = \"workloadIdentities\";\nconst _wIA = \"workloadIdentityArn\";\nconst _wID = \"workloadIdentityDetails\";\nconst n0 = \"com.amazonaws.bedrockagentcorecontrol\";\nconst schema_1 = require(\"@smithy/core/schema\");\nconst BedrockAgentCoreControlServiceException_1 = require(\"../models/BedrockAgentCoreControlServiceException\");\nconst errors_1 = require(\"../models/errors\");\nconst _s_registry = schema_1.TypeRegistry.for(_s);\nexports.BedrockAgentCoreControlServiceException$ = [-3, _s, \"BedrockAgentCoreControlServiceException\", 0, [], []];\n_s_registry.registerError(exports.BedrockAgentCoreControlServiceException$, BedrockAgentCoreControlServiceException_1.BedrockAgentCoreControlServiceException);\nconst n0_registry = schema_1.TypeRegistry.for(n0);\nexports.AccessDeniedException$ = [-3, n0, _ADE,\n { [_e]: _c, [_hE]: 403 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.AccessDeniedException$, errors_1.AccessDeniedException);\nexports.ConcurrentModificationException$ = [-3, n0, _CME,\n { [_e]: _c, [_hE]: 409 },\n [_m],\n [0], 1\n];\nn0_registry.registerError(exports.ConcurrentModificationException$, errors_1.ConcurrentModificationException);\nexports.ConflictException$ = [-3, n0, _CE,\n { [_e]: _c, [_hE]: 409 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ConflictException$, errors_1.ConflictException);\nexports.DecryptionFailure$ = [-3, n0, _DF,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0], 1\n];\nn0_registry.registerError(exports.DecryptionFailure$, errors_1.DecryptionFailure);\nexports.EncryptionFailure$ = [-3, n0, _EF,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0], 1\n];\nn0_registry.registerError(exports.EncryptionFailure$, errors_1.EncryptionFailure);\nexports.InternalServerException$ = [-3, n0, _ISE,\n { [_e]: _se, [_hE]: 500 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.InternalServerException$, errors_1.InternalServerException);\nexports.ResourceLimitExceededException$ = [-3, n0, _RLEE,\n { [_e]: _c, [_hE]: 400 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ResourceLimitExceededException$, errors_1.ResourceLimitExceededException);\nexports.ResourceNotFoundException$ = [-3, n0, _RNFE,\n { [_e]: _c, [_hE]: 404 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ResourceNotFoundException$, errors_1.ResourceNotFoundException);\nexports.ServiceException$ = [-3, n0, _SE,\n { [_e]: _se, [_hE]: 500 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ServiceException$, errors_1.ServiceException);\nexports.ServiceQuotaExceededException$ = [-3, n0, _SQEE,\n { [_e]: _c, [_hE]: 402 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ServiceQuotaExceededException$, errors_1.ServiceQuotaExceededException);\nexports.ThrottledException$ = [-3, n0, _TE,\n { [_e]: _c, [_hE]: 429 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ThrottledException$, errors_1.ThrottledException);\nexports.ThrottlingException$ = [-3, n0, _TEh,\n { [_e]: _c, [_hE]: 429 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.ThrottlingException$, errors_1.ThrottlingException);\nexports.UnauthorizedException$ = [-3, n0, _UE,\n { [_e]: _c, [_hE]: 401 },\n [_m],\n [0]\n];\nn0_registry.registerError(exports.UnauthorizedException$, errors_1.UnauthorizedException);\nexports.ValidationException$ = [-3, n0, _VE,\n { [_e]: _c, [_hE]: 400 },\n [_m, _r, _fL],\n [0, 0, () => ValidationExceptionFieldList], 2\n];\nn0_registry.registerError(exports.ValidationException$, errors_1.ValidationException);\nexports.errorTypeRegistries = [\n _s_registry,\n n0_registry,\n];\nvar ApiKeyType = [0, n0, _AKT, 8, 0];\nvar ClientSecretType = [0, n0, _CST, 8, 0];\nvar Description = [0, n0, _D, 8, 0];\nvar EndpointName = [0, n0, _EN, 8, 0];\nvar EvaluationConfigDescription = [0, n0, _ECD, 8, 0];\nvar EvaluatorDescription = [0, n0, _ED, 8, 0];\nvar EvaluatorInstructions = [0, n0, _EI, 8, 0];\nvar GatewayDescription = [0, n0, _GD, 8, 0];\nvar GatewayName = [0, n0, _GN, 8, 0];\nvar InlinePayload = [0, n0, _IP, 8, 0];\nvar OAuthCustomParametersValue = [0, n0, _OACPV, 8, 0];\nvar Prompt = [0, n0, _P, 8, 0];\nvar TargetDescription = [0, n0, _TD, 8, 0];\nvar TargetName = [0, n0, _TN, 8, 0];\nexports.A2aDescriptor$ = [3, n0, _AD,\n 0,\n [_aC],\n [() => exports.AgentCardDefinition$]\n];\nexports.AgentCardDefinition$ = [3, n0, _ACD,\n 0,\n [_sV, _iC],\n [0, 0]\n];\nexports.AgentRuntime$ = [3, n0, _AR,\n 0,\n [_aRA, _aRI, _aRV, _aRN, _d, _lUA, _st],\n [0, 0, 0, 0, [() => Description, 0], 5, 0], 7\n];\nexports.AgentRuntimeEndpoint$ = [3, n0, _ARE,\n 0,\n [_n, _aREA, _aRA, _st, _i, _cA, _lUA, _lV, _tV, _d],\n [[() => EndpointName, 0], 0, 0, 0, 0, 5, 5, 0, 0, 0], 7\n];\nexports.AgentSkillsDescriptor$ = [3, n0, _ASD,\n 0,\n [_sM, _sD],\n [() => exports.SkillMdDefinition$, () => exports.SkillDefinition$]\n];\nexports.ApiGatewayTargetConfiguration$ = [3, n0, _AGTC,\n 0,\n [_rAI, _sta, _aGTC],\n [0, 0, () => exports.ApiGatewayToolConfiguration$], 3\n];\nexports.ApiGatewayToolConfiguration$ = [3, n0, _AGTCp,\n 0,\n [_tF, _tO],\n [() => ApiGatewayToolFilters, () => ApiGatewayToolOverrides], 1\n];\nexports.ApiGatewayToolFilter$ = [3, n0, _AGTF,\n 0,\n [_fP, _me],\n [0, 64 | 0], 2\n];\nexports.ApiGatewayToolOverride$ = [3, n0, _AGTO,\n 0,\n [_n, _p, _met, _d],\n [0, 0, 0, 0], 3\n];\nexports.ApiKeyCredentialProviderItem$ = [3, n0, _AKCPI,\n 0,\n [_n, _cPA, _cT, _lUT],\n [0, 0, 4, 4], 4\n];\nexports.ApprovalConfiguration$ = [3, n0, _AC,\n 0,\n [_aA],\n [2]\n];\nexports.AtlassianOauth2ProviderConfigInput$ = [3, n0, _AOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.AtlassianOauth2ProviderConfigOutput$ = [3, n0, _AOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.AuthorizingClaimMatchValueType$ = [3, n0, _ACMVT,\n 0,\n [_cMV, _cMO],\n [() => exports.ClaimMatchValueType$, 0], 2\n];\nexports.BedrockEvaluatorModelConfig$ = [3, n0, _BEMC,\n 0,\n [_mI, _iCn, _aMRF],\n [0, () => exports.InferenceConfiguration$, 15], 1\n];\nexports.BrowserEnterprisePolicy$ = [3, n0, _BEP,\n 0,\n [_l, _t],\n [() => exports.ResourceLocation$, 0], 1\n];\nexports.BrowserNetworkConfiguration$ = [3, n0, _BNC,\n 0,\n [_nM, _vC],\n [0, () => exports.VpcConfig$], 1\n];\nexports.BrowserProfileSummary$ = [3, n0, _BPS,\n 0,\n [_pI, _pA, _n, _st, _cA, _lUA, _d, _lSA, _lSBSI, _lSBI],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 5, 0, 0], 6\n];\nexports.BrowserSigningConfigInput$ = [3, n0, _BSCI,\n 0,\n [_en],\n [2], 1\n];\nexports.BrowserSigningConfigOutput$ = [3, n0, _BSCO,\n 0,\n [_en],\n [2], 1\n];\nexports.BrowserSummary$ = [3, n0, _BS,\n 0,\n [_bI, _bA, _st, _cA, _n, _d, _lUA],\n [0, 0, 0, 5, 0, [() => Description, 0], 5], 4\n];\nexports.CategoricalScaleDefinition$ = [3, n0, _CSD,\n 0,\n [_de, _la],\n [0, 0], 2\n];\nexports.CedarPolicy$ = [3, n0, _CP,\n 0,\n [_stat],\n [0], 1\n];\nexports.Certificate$ = [3, n0, _C,\n 0,\n [_l],\n [() => exports.CertificateLocation$], 1\n];\nexports.CloudWatchLogsInputConfig$ = [3, n0, _CWLIC,\n 0,\n [_lGN, _sN],\n [64 | 0, 64 | 0], 2\n];\nexports.CloudWatchOutputConfig$ = [3, n0, _CWOC,\n 0,\n [_lGNo],\n [0], 1\n];\nexports.CodeConfiguration$ = [3, n0, _CC,\n 0,\n [_co, _ru, _eP],\n [() => exports.Code$, 0, 64 | 0], 3\n];\nexports.CodeInterpreterNetworkConfiguration$ = [3, n0, _CINC,\n 0,\n [_nM, _vC],\n [0, () => exports.VpcConfig$], 1\n];\nexports.CodeInterpreterSummary$ = [3, n0, _CIS,\n 0,\n [_cII, _cIA, _st, _cA, _n, _d, _lUA],\n [0, 0, 0, 5, 0, [() => Description, 0], 5], 4\n];\nexports.ContainerConfiguration$ = [3, n0, _CCo,\n 0,\n [_cU],\n [0], 1\n];\nexports.ContentConfiguration$ = [3, n0, _CCon,\n 0,\n [_t, _le],\n [0, 0], 1\n];\nexports.CreateAgentRuntimeEndpointRequest$ = [3, n0, _CARER,\n 0,\n [_aRI, _n, _aRV, _d, _cTl, _ta],\n [[0, 1], [() => EndpointName, 0], 0, 0, [0, 4], 128 | 0], 2\n];\nexports.CreateAgentRuntimeEndpointResponse$ = [3, n0, _CARERr,\n 0,\n [_tV, _aREA, _aRA, _st, _cA, _aRI, _eN],\n [0, 0, 0, 0, 5, 0, [() => EndpointName, 0]], 5\n];\nexports.CreateAgentRuntimeRequest$ = [3, n0, _CARR,\n 0,\n [_aRN, _aRAg, _rA, _nC, _cTl, _d, _aCu, _rHC, _pC, _lC, _eV, _fC, _ta],\n [0, () => exports.AgentRuntimeArtifact$, 0, () => exports.NetworkConfiguration$, [0, 4], [() => Description, 0], () => exports.AuthorizerConfiguration$, () => exports.RequestHeaderConfiguration$, () => exports.ProtocolConfiguration$, () => exports.LifecycleConfiguration$, [() => EnvironmentVariablesMap, 0], () => FilesystemConfigurations, 128 | 0], 4\n];\nexports.CreateAgentRuntimeResponse$ = [3, n0, _CARRr,\n 0,\n [_aRA, _aRI, _aRV, _cA, _st, _wID],\n [0, 0, 0, 5, 0, () => exports.WorkloadIdentityDetails$], 5\n];\nexports.CreateApiKeyCredentialProviderRequest$ = [3, n0, _CAKCPR,\n 0,\n [_n, _aK, _ta],\n [0, [() => ApiKeyType, 0], 128 | 0], 2\n];\nexports.CreateApiKeyCredentialProviderResponse$ = [3, n0, _CAKCPRr,\n 0,\n [_aKSA, _n, _cPA],\n [() => exports.Secret$, 0, 0], 3\n];\nexports.CreateBrowserProfileRequest$ = [3, n0, _CBPR,\n 0,\n [_n, _d, _cTl, _ta],\n [0, [() => Description, 0], [0, 4], 128 | 0], 1\n];\nexports.CreateBrowserProfileResponse$ = [3, n0, _CBPRr,\n 0,\n [_pI, _pA, _cA, _st],\n [0, 0, 5, 0], 4\n];\nexports.CreateBrowserRequest$ = [3, n0, _CBR,\n 0,\n [_n, _nC, _d, _eRA, _re, _bS, _ePn, _ce, _cTl, _ta],\n [0, () => exports.BrowserNetworkConfiguration$, [() => Description, 0], 0, () => exports.RecordingConfig$, () => exports.BrowserSigningConfigInput$, () => BrowserEnterprisePolicies, () => Certificates, [0, 4], 128 | 0], 2\n];\nexports.CreateBrowserResponse$ = [3, n0, _CBRr,\n 0,\n [_bI, _bA, _cA, _st],\n [0, 0, 5, 0], 4\n];\nexports.CreateCodeInterpreterRequest$ = [3, n0, _CCIR,\n 0,\n [_n, _nC, _d, _eRA, _ce, _cTl, _ta],\n [0, () => exports.CodeInterpreterNetworkConfiguration$, [() => Description, 0], 0, () => Certificates, [0, 4], 128 | 0], 2\n];\nexports.CreateCodeInterpreterResponse$ = [3, n0, _CCIRr,\n 0,\n [_cII, _cIA, _cA, _st],\n [0, 0, 5, 0], 4\n];\nexports.CreateEvaluatorRequest$ = [3, n0, _CER,\n 0,\n [_eNv, _eC, _le, _cTl, _d, _ta],\n [0, [() => exports.EvaluatorConfig$, 0], 0, [0, 4], [() => EvaluatorDescription, 0], 128 | 0], 3\n];\nexports.CreateEvaluatorResponse$ = [3, n0, _CERr,\n 0,\n [_eA, _eI, _cA, _st],\n [0, 0, 4, 0], 4\n];\nexports.CreateGatewayRequest$ = [3, n0, _CGR,\n 0,\n [_n, _rA, _pT, _aT, _d, _cTl, _pC, _aCu, _kKA, _iCnt, _pEC, _eL, _ta],\n [[() => GatewayName, 0], 0, 0, 0, [() => GatewayDescription, 0], [0, 4], () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, 0, 128 | 0], 4\n];\nexports.CreateGatewayResponse$ = [3, n0, _CGRr,\n 0,\n [_gA, _gI, _cA, _uA, _st, _n, _pT, _aT, _gU, _sR, _d, _rA, _pC, _aCu, _kKA, _iCnt, _pEC, _wID, _eL],\n [0, 0, 5, 5, 0, [() => GatewayName, 0], 0, 0, 0, 64 | 0, [() => GatewayDescription, 0], 0, () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, () => exports.WorkloadIdentityDetails$, 0], 8\n];\nexports.CreateGatewayTargetRequest$ = [3, n0, _CGTR,\n 0,\n [_gIa, _n, _tC, _d, _cTl, _cPC, _mC, _pE],\n [[0, 1], [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => TargetDescription, 0], [0, 4], [() => CredentialProviderConfigurations, 0], () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$], 3\n];\nexports.CreateGatewayTargetResponse$ = [3, n0, _CGTRr,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.CreateMemoryInput$ = [3, n0, _CMI,\n 0,\n [_n, _eED, _cTl, _d, _eKA, _mERA, _mS, _sDR, _ta],\n [0, 1, [0, 4], [() => Description, 0], 0, 0, [() => MemoryStrategyInputList, 0], () => exports.StreamDeliveryResources$, 128 | 0], 2\n];\nexports.CreateMemoryOutput$ = [3, n0, _CMO,\n 0,\n [_mem],\n [[() => exports.Memory$, 0]]\n];\nexports.CreateOauth2CredentialProviderRequest$ = [3, n0, _COCPR,\n 0,\n [_n, _cPV, _oPCI, _ta],\n [0, 0, [() => exports.Oauth2ProviderConfigInput$, 0], 128 | 0], 3\n];\nexports.CreateOauth2CredentialProviderResponse$ = [3, n0, _COCPRr,\n 0,\n [_cSA, _n, _cPA, _cUa, _oPCO],\n [() => exports.Secret$, 0, 0, 0, () => exports.Oauth2ProviderConfigOutput$], 3\n];\nexports.CreateOnlineEvaluationConfigRequest$ = [3, n0, _COECR,\n 0,\n [_oECN, _rul, _dSC, _ev, _eERA, _eOC, _cTl, _d, _ta],\n [0, () => exports.Rule$, () => exports.DataSourceConfig$, () => EvaluatorList, 0, 2, [0, 4], [() => EvaluationConfigDescription, 0], 128 | 0], 6\n];\nexports.CreateOnlineEvaluationConfigResponse$ = [3, n0, _COECRr,\n 0,\n [_oECA, _oECI, _cA, _st, _eS, _oC, _fR],\n [0, 0, 4, 0, 0, () => exports.OutputConfig$, 0], 5\n];\nexports.CreatePolicyEngineRequest$ = [3, n0, _CPER,\n 0,\n [_n, _d, _cTl, _eKA, _ta],\n [0, [() => Description, 0], [0, 4], 0, 128 | 0], 1\n];\nexports.CreatePolicyEngineResponse$ = [3, n0, _CPERr,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.CreatePolicyRequest$ = [3, n0, _CPR,\n 0,\n [_n, _de, _pEI, _d, _vM, _cTl],\n [0, () => exports.PolicyDefinition$, [0, 1], [() => Description, 0], 0, [0, 4]], 3\n];\nexports.CreatePolicyResponse$ = [3, n0, _CPRr,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.CreateRegistryRecordRequest$ = [3, n0, _CRRR,\n 0,\n [_rI, _n, _dT, _d, _des, _rV, _sT, _sC, _cTl],\n [[0, 1], 0, 0, [() => Description, 0], () => exports.Descriptors$, 0, 0, () => exports.SynchronizationConfiguration$, [0, 4]], 3\n];\nexports.CreateRegistryRecordResponse$ = [3, n0, _CRRRr,\n 0,\n [_rAe, _st],\n [0, 0], 2\n];\nexports.CreateRegistryRequest$ = [3, n0, _CRR,\n 0,\n [_n, _d, _aT, _aCu, _cTl, _aCp],\n [0, [() => Description, 0], 0, () => exports.AuthorizerConfiguration$, [0, 4], () => exports.ApprovalConfiguration$], 1\n];\nexports.CreateRegistryResponse$ = [3, n0, _CRRr,\n 0,\n [_rAeg],\n [0], 1\n];\nexports.CreateWorkloadIdentityRequest$ = [3, n0, _CWIR,\n 0,\n [_n, _aRORU, _ta],\n [0, 64 | 0, 128 | 0], 1\n];\nexports.CreateWorkloadIdentityResponse$ = [3, n0, _CWIRr,\n 0,\n [_n, _wIA, _aRORU],\n [0, 0, 64 | 0], 2\n];\nexports.CredentialProviderConfiguration$ = [3, n0, _CPC,\n 0,\n [_cPT, _cP],\n [0, [() => exports.CredentialProvider$, 0]], 1\n];\nexports.CustomClaimValidationType$ = [3, n0, _CCVT,\n 0,\n [_iTCN, _iTCVT, _aCMV],\n [0, 0, () => exports.AuthorizingClaimMatchValueType$], 3\n];\nexports.CustomDescriptor$ = [3, n0, _CD,\n 0,\n [_iC],\n [0]\n];\nexports.CustomJWTAuthorizerConfiguration$ = [3, n0, _CJWTAC,\n 0,\n [_dU, _aAl, _aCl, _aS, _cC],\n [0, 64 | 0, 64 | 0, 64 | 0, () => CustomClaimValidationsType], 1\n];\nexports.CustomMemoryStrategyInput$ = [3, n0, _CMSI,\n 0,\n [_n, _d, _na, _nT, _con],\n [0, [() => Description, 0], 64 | 0, 64 | 0, [() => exports.CustomConfigurationInput$, 0]], 1\n];\nexports.CustomOauth2ProviderConfigInput$ = [3, n0, _COPCI,\n 0,\n [_oD, _cI, _cS],\n [() => exports.Oauth2Discovery$, 0, [() => ClientSecretType, 0]], 3\n];\nexports.CustomOauth2ProviderConfigOutput$ = [3, n0, _COPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.DeleteAgentRuntimeEndpointRequest$ = [3, n0, _DARER,\n 0,\n [_aRI, _eN, _cTl],\n [[0, 1], [() => EndpointName, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 2\n];\nexports.DeleteAgentRuntimeEndpointResponse$ = [3, n0, _DARERe,\n 0,\n [_st, _aRI, _eN],\n [0, 0, [() => EndpointName, 0]], 1\n];\nexports.DeleteAgentRuntimeRequest$ = [3, n0, _DARR,\n 0,\n [_aRI, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteAgentRuntimeResponse$ = [3, n0, _DARRe,\n 0,\n [_st, _aRI],\n [0, 0], 1\n];\nexports.DeleteApiKeyCredentialProviderRequest$ = [3, n0, _DAKCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.DeleteApiKeyCredentialProviderResponse$ = [3, n0, _DAKCPRe,\n 0,\n [],\n []\n];\nexports.DeleteBrowserProfileRequest$ = [3, n0, _DBPR,\n 0,\n [_pI, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteBrowserProfileResponse$ = [3, n0, _DBPRe,\n 0,\n [_pI, _pA, _st, _lUA, _lSA],\n [0, 0, 0, 5, 5], 4\n];\nexports.DeleteBrowserRequest$ = [3, n0, _DBR,\n 0,\n [_bI, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteBrowserResponse$ = [3, n0, _DBRe,\n 0,\n [_bI, _st, _lUA],\n [0, 0, 5], 3\n];\nexports.DeleteCodeInterpreterRequest$ = [3, n0, _DCIR,\n 0,\n [_cII, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteCodeInterpreterResponse$ = [3, n0, _DCIRe,\n 0,\n [_cII, _st, _lUA],\n [0, 0, 5], 3\n];\nexports.DeleteEvaluatorRequest$ = [3, n0, _DER,\n 0,\n [_eI],\n [[0, 1]], 1\n];\nexports.DeleteEvaluatorResponse$ = [3, n0, _DERe,\n 0,\n [_eA, _eI, _st],\n [0, 0, 0], 3\n];\nexports.DeleteGatewayRequest$ = [3, n0, _DGR,\n 0,\n [_gIa],\n [[0, 1]], 1\n];\nexports.DeleteGatewayResponse$ = [3, n0, _DGRe,\n 0,\n [_gI, _st, _sR],\n [0, 0, 64 | 0], 2\n];\nexports.DeleteGatewayTargetRequest$ = [3, n0, _DGTR,\n 0,\n [_gIa, _tI],\n [[0, 1], [0, 1]], 2\n];\nexports.DeleteGatewayTargetResponse$ = [3, n0, _DGTRe,\n 0,\n [_gA, _tI, _st, _sR],\n [0, 0, 0, 64 | 0], 3\n];\nexports.DeleteMemoryInput$ = [3, n0, _DMI,\n 0,\n [_mIe, _cTl],\n [[0, 1], [0, { [_hQ]: _cTl, [_iT]: 1 }]], 1\n];\nexports.DeleteMemoryOutput$ = [3, n0, _DMO,\n 0,\n [_mIe, _st],\n [0, 0], 1\n];\nexports.DeleteMemoryStrategyInput$ = [3, n0, _DMSI,\n 0,\n [_mSI],\n [0], 1\n];\nexports.DeleteOauth2CredentialProviderRequest$ = [3, n0, _DOCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.DeleteOauth2CredentialProviderResponse$ = [3, n0, _DOCPRe,\n 0,\n [],\n []\n];\nexports.DeleteOnlineEvaluationConfigRequest$ = [3, n0, _DOECR,\n 0,\n [_oECI],\n [[0, 1]], 1\n];\nexports.DeleteOnlineEvaluationConfigResponse$ = [3, n0, _DOECRe,\n 0,\n [_oECA, _oECI, _st],\n [0, 0, 0], 3\n];\nexports.DeletePolicyEngineRequest$ = [3, n0, _DPER,\n 0,\n [_pEI],\n [[0, 1]], 1\n];\nexports.DeletePolicyEngineResponse$ = [3, n0, _DPERe,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.DeletePolicyRequest$ = [3, n0, _DPR,\n 0,\n [_pEI, _pIo],\n [[0, 1], [0, 1]], 2\n];\nexports.DeletePolicyResponse$ = [3, n0, _DPRe,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.DeleteRegistryRecordRequest$ = [3, n0, _DRRR,\n 0,\n [_rI, _rIe],\n [[0, 1], [0, 1]], 2\n];\nexports.DeleteRegistryRecordResponse$ = [3, n0, _DRRRe,\n 0,\n [],\n []\n];\nexports.DeleteRegistryRequest$ = [3, n0, _DRR,\n 0,\n [_rI],\n [[0, 1]], 1\n];\nexports.DeleteRegistryResponse$ = [3, n0, _DRRe,\n 0,\n [_st],\n [0], 1\n];\nexports.DeleteResourcePolicyRequest$ = [3, n0, _DRPR,\n 0,\n [_rAes],\n [[0, 1]], 1\n];\nexports.DeleteResourcePolicyResponse$ = [3, n0, _DRPRe,\n 0,\n [],\n []\n];\nexports.DeleteWorkloadIdentityRequest$ = [3, n0, _DWIR,\n 0,\n [_n],\n [0], 1\n];\nexports.DeleteWorkloadIdentityResponse$ = [3, n0, _DWIRe,\n 0,\n [],\n []\n];\nexports.Descriptors$ = [3, n0, _De,\n 0,\n [_mc, _a, _cu, _aSg],\n [() => exports.McpDescriptor$, () => exports.A2aDescriptor$, () => exports.CustomDescriptor$, () => exports.AgentSkillsDescriptor$]\n];\nexports.EpisodicConsolidationOverride$ = [3, n0, _ECO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicExtractionOverride$ = [3, n0, _EEO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicMemoryStrategyInput$ = [3, n0, _EMSI,\n 0,\n [_n, _d, _na, _nT, _rC],\n [0, [() => Description, 0], 64 | 0, 64 | 0, () => exports.EpisodicReflectionConfigurationInput$], 1\n];\nexports.EpisodicOverrideConfigurationInput$ = [3, n0, _EOCI,\n 0,\n [_ex, _cons, _ref],\n [[() => exports.EpisodicOverrideExtractionConfigurationInput$, 0], [() => exports.EpisodicOverrideConsolidationConfigurationInput$, 0], [() => exports.EpisodicOverrideReflectionConfigurationInput$, 0]]\n];\nexports.EpisodicOverrideConsolidationConfigurationInput$ = [3, n0, _EOCCI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicOverrideExtractionConfigurationInput$ = [3, n0, _EOECI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.EpisodicOverrideReflectionConfigurationInput$ = [3, n0, _EORCI,\n 0,\n [_aTP, _mI, _na, _nT],\n [[() => Prompt, 0], 0, 64 | 0, 64 | 0], 2\n];\nexports.EpisodicReflectionConfiguration$ = [3, n0, _ERC,\n 0,\n [_na, _nT],\n [64 | 0, 64 | 0]\n];\nexports.EpisodicReflectionConfigurationInput$ = [3, n0, _ERCI,\n 0,\n [_na, _nT],\n [64 | 0, 64 | 0]\n];\nexports.EpisodicReflectionOverride$ = [3, n0, _ERO,\n 0,\n [_aTP, _mI, _na, _nT],\n [[() => Prompt, 0], 0, 64 | 0, 64 | 0], 2\n];\nexports.EvaluatorSummary$ = [3, n0, _ES,\n 0,\n [_eA, _eI, _eNv, _eT, _st, _cA, _uA, _d, _le, _lFM],\n [0, 0, 0, 0, 0, 4, 4, [() => EvaluatorDescription, 0], 0, 2], 7\n];\nexports.Filter$ = [3, n0, _F,\n 0,\n [_k, _o, _v],\n [0, 0, () => exports.FilterValue$], 3\n];\nexports.Finding$ = [3, n0, _Fi,\n 0,\n [_t, _d],\n [0, 0]\n];\nexports.FromUrlSynchronizationConfiguration$ = [3, n0, _FUSC,\n 0,\n [_u, _cPC],\n [0, () => RegistryRecordCredentialProviderConfigurationList], 1\n];\nexports.GatewayApiKeyCredentialProvider$ = [3, n0, _GAKCP,\n 0,\n [_pAr, _cPN, _cPr, _cL],\n [0, 0, 0, 0], 1\n];\nexports.GatewayInterceptorConfiguration$ = [3, n0, _GIC,\n 0,\n [_in, _iP, _iCnp],\n [() => exports.InterceptorConfiguration$, 64 | 0, () => exports.InterceptorInputConfiguration$], 2\n];\nexports.GatewayPolicyEngineConfiguration$ = [3, n0, _GPEC,\n 0,\n [_ar, _mo],\n [0, 0], 2\n];\nexports.GatewaySummary$ = [3, n0, _GS,\n 0,\n [_gI, _n, _st, _cA, _uA, _aT, _pT, _d],\n [0, [() => GatewayName, 0], 0, 5, 5, 0, 0, [() => GatewayDescription, 0]], 7\n];\nexports.GatewayTarget$ = [3, n0, _GT,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.GetAgentRuntimeEndpointRequest$ = [3, n0, _GARER,\n 0,\n [_aRI, _eN],\n [[0, 1], [() => EndpointName, 1]], 2\n];\nexports.GetAgentRuntimeEndpointResponse$ = [3, n0, _GARERe,\n 0,\n [_aREA, _aRA, _st, _cA, _lUA, _n, _i, _lV, _tV, _d, _fR],\n [0, 0, 0, 5, 5, [() => EndpointName, 0], 0, 0, 0, 0, 0], 7\n];\nexports.GetAgentRuntimeRequest$ = [3, n0, _GARR,\n 0,\n [_aRI, _aRV],\n [[0, 1], [0, { [_hQ]: _ve }]], 1\n];\nexports.GetAgentRuntimeResponse$ = [3, n0, _GARRe,\n 0,\n [_aRA, _aRN, _aRI, _aRV, _cA, _lUA, _rA, _nC, _st, _lC, _fR, _d, _wID, _aRAg, _pC, _eV, _aCu, _rHC, _mC, _fC],\n [0, 0, 0, 0, 5, 5, 0, () => exports.NetworkConfiguration$, 0, () => exports.LifecycleConfiguration$, 0, [() => Description, 0], () => exports.WorkloadIdentityDetails$, () => exports.AgentRuntimeArtifact$, () => exports.ProtocolConfiguration$, [() => EnvironmentVariablesMap, 0], () => exports.AuthorizerConfiguration$, () => exports.RequestHeaderConfiguration$, () => exports.RuntimeMetadataConfiguration$, () => FilesystemConfigurations], 10\n];\nexports.GetApiKeyCredentialProviderRequest$ = [3, n0, _GAKCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.GetApiKeyCredentialProviderResponse$ = [3, n0, _GAKCPRe,\n 0,\n [_aKSA, _n, _cPA, _cT, _lUT],\n [() => exports.Secret$, 0, 0, 4, 4], 5\n];\nexports.GetBrowserProfileRequest$ = [3, n0, _GBPR,\n 0,\n [_pI],\n [[0, 1]], 1\n];\nexports.GetBrowserProfileResponse$ = [3, n0, _GBPRe,\n 0,\n [_pI, _pA, _n, _st, _cA, _lUA, _d, _lSA, _lSBSI, _lSBI],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 5, 0, 0], 6\n];\nexports.GetBrowserRequest$ = [3, n0, _GBR,\n 0,\n [_bI],\n [[0, 1]], 1\n];\nexports.GetBrowserResponse$ = [3, n0, _GBRe,\n 0,\n [_bI, _bA, _n, _nC, _st, _cA, _lUA, _d, _eRA, _re, _bS, _ePn, _ce, _fR],\n [0, 0, 0, () => exports.BrowserNetworkConfiguration$, 0, 5, 5, [() => Description, 0], 0, () => exports.RecordingConfig$, () => exports.BrowserSigningConfigOutput$, () => BrowserEnterprisePolicies, () => Certificates, 0], 7\n];\nexports.GetCodeInterpreterRequest$ = [3, n0, _GCIR,\n 0,\n [_cII],\n [[0, 1]], 1\n];\nexports.GetCodeInterpreterResponse$ = [3, n0, _GCIRe,\n 0,\n [_cII, _cIA, _n, _nC, _st, _cA, _lUA, _d, _eRA, _ce, _fR],\n [0, 0, 0, () => exports.CodeInterpreterNetworkConfiguration$, 0, 5, 5, [() => Description, 0], 0, () => Certificates, 0], 7\n];\nexports.GetEvaluatorRequest$ = [3, n0, _GER,\n 0,\n [_eI],\n [[0, 1]], 1\n];\nexports.GetEvaluatorResponse$ = [3, n0, _GERe,\n 0,\n [_eA, _eI, _eNv, _eC, _le, _st, _cA, _uA, _d, _lFM],\n [0, 0, 0, [() => exports.EvaluatorConfig$, 0], 0, 0, 4, 4, [() => EvaluatorDescription, 0], 2], 8\n];\nexports.GetGatewayRequest$ = [3, n0, _GGR,\n 0,\n [_gIa],\n [[0, 1]], 1\n];\nexports.GetGatewayResponse$ = [3, n0, _GGRe,\n 0,\n [_gA, _gI, _cA, _uA, _st, _n, _pT, _aT, _gU, _sR, _d, _rA, _pC, _aCu, _kKA, _iCnt, _pEC, _wID, _eL],\n [0, 0, 5, 5, 0, [() => GatewayName, 0], 0, 0, 0, 64 | 0, [() => GatewayDescription, 0], 0, () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, () => exports.WorkloadIdentityDetails$, 0], 8\n];\nexports.GetGatewayTargetRequest$ = [3, n0, _GGTR,\n 0,\n [_gIa, _tI],\n [[0, 1], [0, 1]], 2\n];\nexports.GetGatewayTargetResponse$ = [3, n0, _GGTRe,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.GetMemoryInput$ = [3, n0, _GMI,\n 0,\n [_mIe, _vi],\n [[0, 1], [0, { [_hQ]: _vi }]], 1\n];\nexports.GetMemoryOutput$ = [3, n0, _GMO,\n 0,\n [_mem],\n [[() => exports.Memory$, 0]], 1\n];\nexports.GetOauth2CredentialProviderRequest$ = [3, n0, _GOCPR,\n 0,\n [_n],\n [0], 1\n];\nexports.GetOauth2CredentialProviderResponse$ = [3, n0, _GOCPRe,\n 0,\n [_cSA, _n, _cPA, _cPV, _oPCO, _cT, _lUT, _cUa],\n [() => exports.Secret$, 0, 0, 0, () => exports.Oauth2ProviderConfigOutput$, 4, 4, 0], 7\n];\nexports.GetOnlineEvaluationConfigRequest$ = [3, n0, _GOECR,\n 0,\n [_oECI],\n [[0, 1]], 1\n];\nexports.GetOnlineEvaluationConfigResponse$ = [3, n0, _GOECRe,\n 0,\n [_oECA, _oECI, _oECN, _rul, _dSC, _ev, _st, _eS, _cA, _uA, _d, _oC, _eERA, _fR],\n [0, 0, 0, () => exports.Rule$, () => exports.DataSourceConfig$, () => EvaluatorList, 0, 0, 4, 4, [() => EvaluationConfigDescription, 0], () => exports.OutputConfig$, 0, 0], 10\n];\nexports.GetPolicyEngineRequest$ = [3, n0, _GPER,\n 0,\n [_pEI],\n [[0, 1]], 1\n];\nexports.GetPolicyEngineResponse$ = [3, n0, _GPERe,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.GetPolicyGenerationRequest$ = [3, n0, _GPGR,\n 0,\n [_pGI, _pEI],\n [[0, 1], [0, 1]], 2\n];\nexports.GetPolicyGenerationResponse$ = [3, n0, _GPGRe,\n 0,\n [_pEI, _pGI, _n, _pGA, _res, _cA, _uA, _st, _sR, _f],\n [0, 0, 0, 0, () => exports.Resource$, 5, 5, 0, 64 | 0, 0], 9\n];\nexports.GetPolicyRequest$ = [3, n0, _GPR,\n 0,\n [_pEI, _pIo],\n [[0, 1], [0, 1]], 2\n];\nexports.GetPolicyResponse$ = [3, n0, _GPRe,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.GetRegistryRecordRequest$ = [3, n0, _GRRR,\n 0,\n [_rI, _rIe],\n [[0, 1], [0, 1]], 2\n];\nexports.GetRegistryRecordResponse$ = [3, n0, _GRRRe,\n 0,\n [_rAeg, _rAe, _rIe, _n, _dT, _des, _st, _cA, _uA, _d, _rV, _sRt, _sT, _sC],\n [0, 0, 0, 0, 0, () => exports.Descriptors$, 0, 5, 5, [() => Description, 0], 0, 0, 0, () => exports.SynchronizationConfiguration$], 9\n];\nexports.GetRegistryRequest$ = [3, n0, _GRR,\n 0,\n [_rI],\n [[0, 1]], 1\n];\nexports.GetRegistryResponse$ = [3, n0, _GRRe,\n 0,\n [_n, _rI, _rAeg, _st, _cA, _uA, _d, _aT, _aCu, _aCp, _sRt],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 0, () => exports.AuthorizerConfiguration$, () => exports.ApprovalConfiguration$, 0], 6\n];\nexports.GetResourcePolicyRequest$ = [3, n0, _GRPR,\n 0,\n [_rAes],\n [[0, 1]], 1\n];\nexports.GetResourcePolicyResponse$ = [3, n0, _GRPRe,\n 0,\n [_po],\n [0]\n];\nexports.GetTokenVaultRequest$ = [3, n0, _GTVR,\n 0,\n [_tVI],\n [0]\n];\nexports.GetTokenVaultResponse$ = [3, n0, _GTVRe,\n 0,\n [_tVI, _kC, _lMD],\n [0, () => exports.KmsConfiguration$, 4], 3\n];\nexports.GetWorkloadIdentityRequest$ = [3, n0, _GWIR,\n 0,\n [_n],\n [0], 1\n];\nexports.GetWorkloadIdentityResponse$ = [3, n0, _GWIRe,\n 0,\n [_n, _wIA, _cT, _lUT, _aRORU],\n [0, 0, 4, 4, 64 | 0], 4\n];\nexports.GithubOauth2ProviderConfigInput$ = [3, n0, _GOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.GithubOauth2ProviderConfigOutput$ = [3, n0, _GOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.GoogleOauth2ProviderConfigInput$ = [3, n0, _GOPCIo,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.GoogleOauth2ProviderConfigOutput$ = [3, n0, _GOPCOo,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.IamCredentialProvider$ = [3, n0, _ICP,\n 0,\n [_ser, _reg],\n [0, 0], 1\n];\nexports.IncludedOauth2ProviderConfigInput$ = [3, n0, _IOPCI,\n 0,\n [_cI, _cS, _is, _aE, _tE],\n [0, [() => ClientSecretType, 0], 0, 0, 0], 2\n];\nexports.IncludedOauth2ProviderConfigOutput$ = [3, n0, _IOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.InferenceConfiguration$ = [3, n0, _IC,\n 0,\n [_mT, _te, _tP, _sS],\n [1, 1, 1, 64 | 0]\n];\nexports.InterceptorInputConfiguration$ = [3, n0, _IIC,\n 0,\n [_pRH],\n [2], 1\n];\nexports.InvocationConfiguration$ = [3, n0, _ICn,\n 0,\n [_tA, _pDBN],\n [0, 0], 2\n];\nexports.InvocationConfigurationInput$ = [3, n0, _ICI,\n 0,\n [_tA, _pDBN],\n [0, 0], 2\n];\nexports.KinesisResource$ = [3, n0, _KR,\n 0,\n [_dSA, _cCo],\n [0, () => ContentConfigurationList], 2\n];\nexports.KmsConfiguration$ = [3, n0, _KC,\n 0,\n [_kT, _kKA],\n [0, 0], 1\n];\nexports.LambdaEvaluatorConfig$ = [3, n0, _LEC,\n 0,\n [_lA, _lTIS],\n [0, 1], 1\n];\nexports.LambdaInterceptorConfiguration$ = [3, n0, _LIC,\n 0,\n [_ar],\n [0], 1\n];\nexports.LifecycleConfiguration$ = [3, n0, _LC,\n 0,\n [_iRST, _mL],\n [1, 1]\n];\nexports.LinkedinOauth2ProviderConfigInput$ = [3, n0, _LOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.LinkedinOauth2ProviderConfigOutput$ = [3, n0, _LOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.ListAgentRuntimeEndpointsRequest$ = [3, n0, _LARER,\n 0,\n [_aRI, _mR, _nTe],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]], 1\n];\nexports.ListAgentRuntimeEndpointsResponse$ = [3, n0, _LARERi,\n 0,\n [_rE, _nTe],\n [[() => AgentRuntimeEndpoints, 0], 0], 1\n];\nexports.ListAgentRuntimesRequest$ = [3, n0, _LARR,\n 0,\n [_mR, _nTe],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]]\n];\nexports.ListAgentRuntimesResponse$ = [3, n0, _LARRi,\n 0,\n [_aR, _nTe],\n [[() => AgentRuntimes, 0], 0], 1\n];\nexports.ListAgentRuntimeVersionsRequest$ = [3, n0, _LARVR,\n 0,\n [_aRI, _mR, _nTe],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]], 1\n];\nexports.ListAgentRuntimeVersionsResponse$ = [3, n0, _LARVRi,\n 0,\n [_aR, _nTe],\n [[() => AgentRuntimes, 0], 0], 1\n];\nexports.ListApiKeyCredentialProvidersRequest$ = [3, n0, _LAKCPR,\n 0,\n [_nTe, _mR],\n [0, 1]\n];\nexports.ListApiKeyCredentialProvidersResponse$ = [3, n0, _LAKCPRi,\n 0,\n [_cPre, _nTe],\n [() => ApiKeyCredentialProviders, 0], 1\n];\nexports.ListBrowserProfilesRequest$ = [3, n0, _LBPR,\n 0,\n [_mR, _nTe, _n],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], 0]\n];\nexports.ListBrowserProfilesResponse$ = [3, n0, _LBPRi,\n 0,\n [_pS, _nTe],\n [[() => BrowserProfileSummaries, 0], 0], 1\n];\nexports.ListBrowsersRequest$ = [3, n0, _LBR,\n 0,\n [_mR, _nTe, _t],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _t }]]\n];\nexports.ListBrowsersResponse$ = [3, n0, _LBRi,\n 0,\n [_bSr, _nTe],\n [[() => BrowserSummaries, 0], 0], 1\n];\nexports.ListCodeInterpretersRequest$ = [3, n0, _LCIR,\n 0,\n [_mR, _nTe, _t],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _t }]]\n];\nexports.ListCodeInterpretersResponse$ = [3, n0, _LCIRi,\n 0,\n [_cIS, _nTe],\n [[() => CodeInterpreterSummaries, 0], 0], 1\n];\nexports.ListEvaluatorsRequest$ = [3, n0, _LER,\n 0,\n [_nTe, _mR],\n [[0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]]\n];\nexports.ListEvaluatorsResponse$ = [3, n0, _LERi,\n 0,\n [_ev, _nTe],\n [[() => EvaluatorSummaryList, 0], 0], 1\n];\nexports.ListGatewaysRequest$ = [3, n0, _LGR,\n 0,\n [_mR, _nTe],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]]\n];\nexports.ListGatewaysResponse$ = [3, n0, _LGRi,\n 0,\n [_it, _nTe],\n [[() => GatewaySummaries, 0], 0], 1\n];\nexports.ListGatewayTargetsRequest$ = [3, n0, _LGTR,\n 0,\n [_gIa, _mR, _nTe],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }]], 1\n];\nexports.ListGatewayTargetsResponse$ = [3, n0, _LGTRi,\n 0,\n [_it, _nTe],\n [[() => TargetSummaries, 0], 0], 1\n];\nexports.ListMemoriesInput$ = [3, n0, _LMI,\n 0,\n [_mR, _nTe],\n [1, 0]\n];\nexports.ListMemoriesOutput$ = [3, n0, _LMO,\n 0,\n [_memo, _nTe],\n [() => MemorySummaryList, 0], 1\n];\nexports.ListOauth2CredentialProvidersRequest$ = [3, n0, _LOCPR,\n 0,\n [_nTe, _mR],\n [0, 1]\n];\nexports.ListOauth2CredentialProvidersResponse$ = [3, n0, _LOCPRi,\n 0,\n [_cPre, _nTe],\n [() => Oauth2CredentialProviders, 0], 1\n];\nexports.ListOnlineEvaluationConfigsRequest$ = [3, n0, _LOECR,\n 0,\n [_nTe, _mR],\n [[0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]]\n];\nexports.ListOnlineEvaluationConfigsResponse$ = [3, n0, _LOECRi,\n 0,\n [_oEC, _nTe],\n [[() => OnlineEvaluationConfigSummaryList, 0], 0], 1\n];\nexports.ListPoliciesRequest$ = [3, n0, _LPR,\n 0,\n [_pEI, _nTe, _mR, _tRS],\n [[0, 1], [0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }], [0, { [_hQ]: _tRS }]], 1\n];\nexports.ListPoliciesResponse$ = [3, n0, _LPRi,\n 0,\n [_pol, _nTe],\n [[() => Policies, 0], 0], 1\n];\nexports.ListPolicyEnginesRequest$ = [3, n0, _LPER,\n 0,\n [_nTe, _mR],\n [[0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]]\n];\nexports.ListPolicyEnginesResponse$ = [3, n0, _LPERi,\n 0,\n [_pEo, _nTe],\n [[() => PolicyEngines, 0], 0], 1\n];\nexports.ListPolicyGenerationAssetsRequest$ = [3, n0, _LPGAR,\n 0,\n [_pGI, _pEI, _nTe, _mR],\n [[0, 1], [0, 1], [0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]], 2\n];\nexports.ListPolicyGenerationAssetsResponse$ = [3, n0, _LPGARi,\n 0,\n [_pGAo, _nTe],\n [() => PolicyGenerationAssets, 0]\n];\nexports.ListPolicyGenerationsRequest$ = [3, n0, _LPGR,\n 0,\n [_pEI, _nTe, _mR],\n [[0, 1], [0, { [_hQ]: _nTe }], [1, { [_hQ]: _mR }]], 1\n];\nexports.ListPolicyGenerationsResponse$ = [3, n0, _LPGRi,\n 0,\n [_pG, _nTe],\n [() => PolicyGenerations, 0], 1\n];\nexports.ListRegistriesRequest$ = [3, n0, _LRR,\n 0,\n [_mR, _nTe, _st],\n [[1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _st }]]\n];\nexports.ListRegistriesResponse$ = [3, n0, _LRRi,\n 0,\n [_regi, _nTe],\n [[() => RegistrySummaryList, 0], 0], 1\n];\nexports.ListRegistryRecordsRequest$ = [3, n0, _LRRR,\n 0,\n [_rI, _mR, _nTe, _n, _st, _dT],\n [[0, 1], [1, { [_hQ]: _mR }], [0, { [_hQ]: _nTe }], [0, { [_hQ]: _n }], [0, { [_hQ]: _st }], [0, { [_hQ]: _dT }]], 1\n];\nexports.ListRegistryRecordsResponse$ = [3, n0, _LRRRi,\n 0,\n [_rR, _nTe],\n [[() => RegistryRecordSummaryList, 0], 0], 1\n];\nexports.ListTagsForResourceRequest$ = [3, n0, _LTFRR,\n 0,\n [_rAes],\n [[0, 1]], 1\n];\nexports.ListTagsForResourceResponse$ = [3, n0, _LTFRRi,\n 0,\n [_ta],\n [128 | 0]\n];\nexports.ListWorkloadIdentitiesRequest$ = [3, n0, _LWIR,\n 0,\n [_nTe, _mR],\n [0, 1]\n];\nexports.ListWorkloadIdentitiesResponse$ = [3, n0, _LWIRi,\n 0,\n [_wI, _nTe],\n [() => WorkloadIdentityList, 0], 1\n];\nexports.LlmAsAJudgeEvaluatorConfig$ = [3, n0, _LAAJEC,\n 0,\n [_ins, _rS, _mCo],\n [[() => EvaluatorInstructions, 0], [() => exports.RatingScale$, 0], () => exports.EvaluatorModelConfig$], 3\n];\nexports.ManagedLatticeResource$ = [3, n0, _MLR,\n 0,\n [_vI, _sI, _eIAT, _sGI, _ta, _rD],\n [0, 64 | 0, 0, 64 | 0, 128 | 0, 0], 3\n];\nexports.ManagedResourceDetails$ = [3, n0, _MRD,\n 0,\n [_do, _rGA, _rAA],\n [0, 0, 0]\n];\nexports.McpDescriptor$ = [3, n0, _MD,\n 0,\n [_se, _to],\n [() => exports.ServerDefinition$, () => exports.ToolsDefinition$]\n];\nexports.MCPGatewayConfiguration$ = [3, n0, _MCPGC,\n 0,\n [_sVu, _ins, _sTe],\n [64 | 0, 0, 0]\n];\nexports.McpLambdaTargetConfiguration$ = [3, n0, _MLTC,\n 0,\n [_lA, _tS],\n [0, () => exports.ToolSchema$], 2\n];\nexports.McpServerTargetConfiguration$ = [3, n0, _MSTC,\n 0,\n [_end, _mTS, _lM],\n [0, [() => exports.McpToolSchemaConfiguration$, 0], 0], 1\n];\nexports.Memory$ = [3, n0, _M,\n 0,\n [_ar, _i, _n, _eED, _st, _cA, _uA, _d, _eKA, _mERA, _fR, _str, _sDR],\n [0, 0, 0, 1, 0, 4, 4, [() => Description, 0], 0, 0, 0, [() => MemoryStrategyList, 0], () => exports.StreamDeliveryResources$], 7\n];\nexports.MemoryStrategy$ = [3, n0, _MS,\n 0,\n [_sIt, _n, _t, _na, _nT, _d, _con, _cA, _uA, _st],\n [0, 0, 0, 64 | 0, 64 | 0, [() => Description, 0], [() => exports.StrategyConfiguration$, 0], 4, 4, 0], 5\n];\nexports.MemorySummary$ = [3, n0, _MSe,\n 0,\n [_cA, _uA, _ar, _i, _st],\n [4, 4, 0, 0, 0], 2\n];\nexports.MessageBasedTrigger$ = [3, n0, _MBT,\n 0,\n [_mCe],\n [1]\n];\nexports.MessageBasedTriggerInput$ = [3, n0, _MBTI,\n 0,\n [_mCe],\n [1]\n];\nexports.MetadataConfiguration$ = [3, n0, _MC,\n 0,\n [_aRH, _aQP, _aRHl],\n [64 | 0, 64 | 0, 64 | 0]\n];\nexports.MicrosoftOauth2ProviderConfigInput$ = [3, n0, _MOPCI,\n 0,\n [_cI, _cS, _tIe],\n [0, [() => ClientSecretType, 0], 0], 2\n];\nexports.MicrosoftOauth2ProviderConfigOutput$ = [3, n0, _MOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.ModifyInvocationConfigurationInput$ = [3, n0, _MICI,\n 0,\n [_tA, _pDBN],\n [0, 0]\n];\nexports.ModifyMemoryStrategies$ = [3, n0, _MMS,\n 0,\n [_aMS, _mMS, _dMS],\n [[() => MemoryStrategyInputList, 0], [() => ModifyMemoryStrategiesList, 0], () => DeleteMemoryStrategiesList]\n];\nexports.ModifyMemoryStrategyInput$ = [3, n0, _MMSI,\n 0,\n [_mSI, _d, _na, _nT, _con],\n [0, [() => Description, 0], 64 | 0, 64 | 0, [() => exports.ModifyStrategyConfiguration$, 0]], 1\n];\nexports.ModifySelfManagedConfiguration$ = [3, n0, _MSMC,\n 0,\n [_tCr, _iCnv, _hCWS],\n [() => TriggerConditionInputList, () => exports.ModifyInvocationConfigurationInput$, 1]\n];\nexports.ModifyStrategyConfiguration$ = [3, n0, _MSC,\n 0,\n [_ex, _cons, _ref, _sMC],\n [[() => exports.ModifyExtractionConfiguration$, 0], [() => exports.ModifyConsolidationConfiguration$, 0], [() => exports.ModifyReflectionConfiguration$, 0], () => exports.ModifySelfManagedConfiguration$]\n];\nexports.NetworkConfiguration$ = [3, n0, _NC,\n 0,\n [_nM, _nMC],\n [0, () => exports.VpcConfig$], 1\n];\nexports.NumericalScaleDefinition$ = [3, n0, _NSD,\n 0,\n [_de, _v, _la],\n [0, 1, 0], 3\n];\nexports.OAuth2AuthorizationData$ = [3, n0, _OAAD,\n 0,\n [_aU, _uI],\n [0, 0], 1\n];\nexports.Oauth2AuthorizationServerMetadata$ = [3, n0, _OASM,\n 0,\n [_is, _aE, _tE, _rT, _tEAM],\n [0, 0, 0, 64 | 0, 64 | 0], 3\n];\nexports.Oauth2CredentialProviderItem$ = [3, n0, _OCPI,\n 0,\n [_n, _cPV, _cPA, _cT, _lUT],\n [0, 0, 0, 4, 4], 5\n];\nexports.OAuthCredentialProvider$ = [3, n0, _OACP,\n 0,\n [_pAr, _sc, _cPu, _gT, _dRU],\n [0, 64 | 0, [() => OAuthCustomParameters, 0], 0, 0], 2\n];\nexports.OnlineEvaluationConfigSummary$ = [3, n0, _OECS,\n 0,\n [_oECA, _oECI, _oECN, _st, _eS, _cA, _uA, _d, _fR],\n [0, 0, 0, 0, 0, 4, 4, [() => EvaluationConfigDescription, 0], 0], 7\n];\nexports.OutputConfig$ = [3, n0, _OC,\n 0,\n [_cWC],\n [() => exports.CloudWatchOutputConfig$], 1\n];\nexports.Policy$ = [3, n0, _Po,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.PolicyEngine$ = [3, n0, _PE,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.PolicyGeneration$ = [3, n0, _PG,\n 0,\n [_pEI, _pGI, _n, _pGA, _res, _cA, _uA, _st, _sR, _f],\n [0, 0, 0, 0, () => exports.Resource$, 5, 5, 0, 64 | 0, 0], 9\n];\nexports.PolicyGenerationAsset$ = [3, n0, _PGA,\n 0,\n [_pGAI, _rTF, _f, _de],\n [0, 0, () => Findings, () => exports.PolicyDefinition$], 3\n];\nexports.PolicyGenerationDetails$ = [3, n0, _PGD,\n 0,\n [_pGI, _pGAI],\n [0, 0], 2\n];\nexports.ProtocolConfiguration$ = [3, n0, _PC,\n 0,\n [_sP],\n [0], 1\n];\nexports.PutResourcePolicyRequest$ = [3, n0, _PRPR,\n 0,\n [_rAes, _po],\n [[0, 1], 0], 2\n];\nexports.PutResourcePolicyResponse$ = [3, n0, _PRPRu,\n 0,\n [_po],\n [0], 1\n];\nexports.RecordingConfig$ = [3, n0, _RC,\n 0,\n [_en, _sL],\n [2, () => exports.S3Location$]\n];\nexports.RegistryRecordCredentialProviderConfiguration$ = [3, n0, _RRCPC,\n 0,\n [_cPT, _cP],\n [0, () => exports.RegistryRecordCredentialProviderUnion$], 2\n];\nexports.RegistryRecordIamCredentialProvider$ = [3, n0, _RRICP,\n 0,\n [_rA, _ser, _reg],\n [0, 0, 0]\n];\nexports.RegistryRecordOAuthCredentialProvider$ = [3, n0, _RROACP,\n 0,\n [_pAr, _gT, _sc, _cPu],\n [0, 0, 64 | 0, 128 | 0], 1\n];\nexports.RegistryRecordSummary$ = [3, n0, _RRS,\n 0,\n [_rAeg, _rAe, _rIe, _n, _dT, _rV, _st, _cA, _uA, _d],\n [0, 0, 0, 0, 0, 0, 0, 5, 5, [() => Description, 0]], 9\n];\nexports.RegistrySummary$ = [3, n0, _RS,\n 0,\n [_n, _rI, _rAeg, _st, _cA, _uA, _d, _aT, _sRt],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 0, 0], 6\n];\nexports.Rule$ = [3, n0, _R,\n 0,\n [_sCa, _fi, _sCe],\n [() => exports.SamplingConfig$, () => FilterList, () => exports.SessionConfig$], 1\n];\nexports.RuntimeMetadataConfiguration$ = [3, n0, _RMC,\n 0,\n [_rMMDSV],\n [2], 1\n];\nexports.S3Configuration$ = [3, n0, _SC,\n 0,\n [_ur, _bOAI],\n [0, 0]\n];\nexports.S3Location$ = [3, n0, _SL,\n 0,\n [_b, _pr, _vIe],\n [0, 0, 0], 2\n];\nexports.SalesforceOauth2ProviderConfigInput$ = [3, n0, _SOPCI,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.SalesforceOauth2ProviderConfigOutput$ = [3, n0, _SOPCO,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.SamplingConfig$ = [3, n0, _SCa,\n 0,\n [_sPa],\n [1], 1\n];\nexports.SchemaDefinition$ = [3, n0, _SD,\n 0,\n [_t, _pro, _req, _it, _d],\n [0, () => SchemaProperties, 64 | 0, () => exports.SchemaDefinition$, 0], 1\n];\nexports.Secret$ = [3, n0, _S,\n 0,\n [_sA],\n [0], 1\n];\nexports.SecretsManagerLocation$ = [3, n0, _SML,\n 0,\n [_sA],\n [0], 1\n];\nexports.SelfManagedConfiguration$ = [3, n0, _SMC,\n 0,\n [_tCr, _iCnv, _hCWS],\n [() => TriggerConditionsList, () => exports.InvocationConfiguration$, 1], 3\n];\nexports.SelfManagedConfigurationInput$ = [3, n0, _SMCI,\n 0,\n [_iCnv, _tCr, _hCWS],\n [() => exports.InvocationConfigurationInput$, () => TriggerConditionInputList, 1], 1\n];\nexports.SemanticConsolidationOverride$ = [3, n0, _SCO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SemanticExtractionOverride$ = [3, n0, _SEO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SemanticMemoryStrategyInput$ = [3, n0, _SMSI,\n 0,\n [_n, _d, _na, _nT],\n [0, [() => Description, 0], 64 | 0, 64 | 0], 1\n];\nexports.SemanticOverrideConfigurationInput$ = [3, n0, _SOCI,\n 0,\n [_ex, _cons],\n [[() => exports.SemanticOverrideExtractionConfigurationInput$, 0], [() => exports.SemanticOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.SemanticOverrideConsolidationConfigurationInput$ = [3, n0, _SOCCI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SemanticOverrideExtractionConfigurationInput$ = [3, n0, _SOECI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.ServerDefinition$ = [3, n0, _SDe,\n 0,\n [_sV, _iC],\n [0, 0]\n];\nexports.SessionConfig$ = [3, n0, _SCe,\n 0,\n [_sTM],\n [1], 1\n];\nexports.SessionStorageConfiguration$ = [3, n0, _SSC,\n 0,\n [_mP],\n [0], 1\n];\nexports.SetTokenVaultCMKRequest$ = [3, n0, _STVCMKR,\n 0,\n [_kC, _tVI],\n [() => exports.KmsConfiguration$, 0], 1\n];\nexports.SetTokenVaultCMKResponse$ = [3, n0, _STVCMKRe,\n 0,\n [_tVI, _kC, _lMD],\n [0, () => exports.KmsConfiguration$, 4], 3\n];\nexports.SkillDefinition$ = [3, n0, _SDk,\n 0,\n [_sV, _iC],\n [0, 0]\n];\nexports.SkillMdDefinition$ = [3, n0, _SMD,\n 0,\n [_iC],\n [0]\n];\nexports.SlackOauth2ProviderConfigInput$ = [3, n0, _SOPCIl,\n 0,\n [_cI, _cS],\n [0, [() => ClientSecretType, 0]], 2\n];\nexports.SlackOauth2ProviderConfigOutput$ = [3, n0, _SOPCOl,\n 0,\n [_oD, _cI],\n [() => exports.Oauth2Discovery$, 0], 1\n];\nexports.StartPolicyGenerationRequest$ = [3, n0, _SPGR,\n 0,\n [_pEI, _res, _cont, _n, _cTl],\n [[0, 1], () => exports.Resource$, () => exports.Content$, 0, [0, 4]], 4\n];\nexports.StartPolicyGenerationResponse$ = [3, n0, _SPGRt,\n 0,\n [_pEI, _pGI, _n, _pGA, _res, _cA, _uA, _st, _sR, _f],\n [0, 0, 0, 0, () => exports.Resource$, 5, 5, 0, 64 | 0, 0], 9\n];\nexports.StrategyConfiguration$ = [3, n0, _SCt,\n 0,\n [_t, _ex, _cons, _ref, _sMC],\n [0, [() => exports.ExtractionConfiguration$, 0], [() => exports.ConsolidationConfiguration$, 0], [() => exports.ReflectionConfiguration$, 0], () => exports.SelfManagedConfiguration$]\n];\nexports.StreamDeliveryResources$ = [3, n0, _SDR,\n 0,\n [_reso],\n [() => StreamDeliveryResourcesList], 1\n];\nexports.SubmitRegistryRecordForApprovalRequest$ = [3, n0, _SRRFAR,\n 0,\n [_rI, _rIe],\n [[0, 1], [0, 1]], 2\n];\nexports.SubmitRegistryRecordForApprovalResponse$ = [3, n0, _SRRFARu,\n 0,\n [_rAeg, _rAe, _rIe, _st, _uA],\n [0, 0, 0, 0, 5], 5\n];\nexports.SummaryConsolidationOverride$ = [3, n0, _SCOu,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SummaryMemoryStrategyInput$ = [3, n0, _SMSIu,\n 0,\n [_n, _d, _na, _nT],\n [0, [() => Description, 0], 64 | 0, 64 | 0], 1\n];\nexports.SummaryOverrideConfigurationInput$ = [3, n0, _SOCIu,\n 0,\n [_cons],\n [[() => exports.SummaryOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.SummaryOverrideConsolidationConfigurationInput$ = [3, n0, _SOCCIu,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.SynchronizationConfiguration$ = [3, n0, _SCy,\n 0,\n [_fU],\n [() => exports.FromUrlSynchronizationConfiguration$]\n];\nexports.SynchronizeGatewayTargetsRequest$ = [3, n0, _SGTR,\n 0,\n [_gIa, _tIL],\n [[0, 1], 64 | 0], 2\n];\nexports.SynchronizeGatewayTargetsResponse$ = [3, n0, _SGTRy,\n 0,\n [_tar],\n [[() => GatewayTargetList, 0]]\n];\nexports.TagResourceRequest$ = [3, n0, _TRR,\n 0,\n [_rAes, _ta],\n [[0, 1], 128 | 0], 2\n];\nexports.TagResourceResponse$ = [3, n0, _TRRa,\n 0,\n [],\n []\n];\nexports.TargetSummary$ = [3, n0, _TS,\n 0,\n [_tI, _n, _st, _cA, _uA, _d],\n [0, [() => TargetName, 0], 0, 5, 5, [() => TargetDescription, 0]], 5\n];\nexports.TimeBasedTrigger$ = [3, n0, _TBT,\n 0,\n [_iST],\n [1]\n];\nexports.TimeBasedTriggerInput$ = [3, n0, _TBTI,\n 0,\n [_iST],\n [1]\n];\nexports.TokenBasedTrigger$ = [3, n0, _TBTo,\n 0,\n [_tCo],\n [1]\n];\nexports.TokenBasedTriggerInput$ = [3, n0, _TBTIo,\n 0,\n [_tCo],\n [1]\n];\nexports.ToolDefinition$ = [3, n0, _TDo,\n 0,\n [_n, _d, _iS, _oS],\n [0, 0, () => exports.SchemaDefinition$, () => exports.SchemaDefinition$], 3\n];\nexports.ToolsDefinition$ = [3, n0, _TDoo,\n 0,\n [_pV, _iC],\n [0, 0]\n];\nexports.UntagResourceRequest$ = [3, n0, _URR,\n 0,\n [_rAes, _tK],\n [[0, 1], [64 | 0, { [_hQ]: _tK }]], 2\n];\nexports.UntagResourceResponse$ = [3, n0, _URRn,\n 0,\n [],\n []\n];\nexports.UpdateAgentRuntimeEndpointRequest$ = [3, n0, _UARER,\n 0,\n [_aRI, _eN, _aRV, _d, _cTl],\n [[0, 1], [() => EndpointName, 1], 0, 0, [0, 4]], 2\n];\nexports.UpdateAgentRuntimeEndpointResponse$ = [3, n0, _UARERp,\n 0,\n [_aREA, _aRA, _st, _cA, _lUA, _lV, _tV],\n [0, 0, 0, 5, 5, 0, 0], 5\n];\nexports.UpdateAgentRuntimeRequest$ = [3, n0, _UARR,\n 0,\n [_aRI, _aRAg, _rA, _nC, _d, _aCu, _rHC, _pC, _lC, _mC, _eV, _fC, _cTl],\n [[0, 1], () => exports.AgentRuntimeArtifact$, 0, () => exports.NetworkConfiguration$, [() => Description, 0], () => exports.AuthorizerConfiguration$, () => exports.RequestHeaderConfiguration$, () => exports.ProtocolConfiguration$, () => exports.LifecycleConfiguration$, () => exports.RuntimeMetadataConfiguration$, [() => EnvironmentVariablesMap, 0], () => FilesystemConfigurations, [0, 4]], 4\n];\nexports.UpdateAgentRuntimeResponse$ = [3, n0, _UARRp,\n 0,\n [_aRA, _aRI, _aRV, _cA, _lUA, _st, _wID],\n [0, 0, 0, 5, 5, 0, () => exports.WorkloadIdentityDetails$], 6\n];\nexports.UpdateApiKeyCredentialProviderRequest$ = [3, n0, _UAKCPR,\n 0,\n [_n, _aK],\n [0, [() => ApiKeyType, 0]], 2\n];\nexports.UpdateApiKeyCredentialProviderResponse$ = [3, n0, _UAKCPRp,\n 0,\n [_aKSA, _n, _cPA, _cT, _lUT],\n [() => exports.Secret$, 0, 0, 4, 4], 5\n];\nexports.UpdatedA2aDescriptor$ = [3, n0, _UAD,\n 0,\n [_oV],\n [() => exports.A2aDescriptor$]\n];\nexports.UpdatedAgentSkillsDescriptor$ = [3, n0, _UASD,\n 0,\n [_oV],\n [() => exports.UpdatedAgentSkillsDescriptorFields$]\n];\nexports.UpdatedAgentSkillsDescriptorFields$ = [3, n0, _UASDF,\n 0,\n [_sM, _sD],\n [() => exports.UpdatedSkillMdDefinition$, () => exports.UpdatedSkillDefinition$]\n];\nexports.UpdatedApprovalConfiguration$ = [3, n0, _UAC,\n 0,\n [_oV],\n [() => exports.ApprovalConfiguration$]\n];\nexports.UpdatedAuthorizerConfiguration$ = [3, n0, _UACp,\n 0,\n [_oV],\n [() => exports.AuthorizerConfiguration$]\n];\nexports.UpdatedCustomDescriptor$ = [3, n0, _UCD,\n 0,\n [_oV],\n [() => exports.CustomDescriptor$]\n];\nexports.UpdatedDescription$ = [3, n0, _UD,\n 0,\n [_oV],\n [[() => Description, 0]]\n];\nexports.UpdatedDescriptors$ = [3, n0, _UDp,\n 0,\n [_oV],\n [() => exports.UpdatedDescriptorsUnion$]\n];\nexports.UpdatedDescriptorsUnion$ = [3, n0, _UDU,\n 0,\n [_mc, _a, _cu, _aSg],\n [() => exports.UpdatedMcpDescriptor$, () => exports.UpdatedA2aDescriptor$, () => exports.UpdatedCustomDescriptor$, () => exports.UpdatedAgentSkillsDescriptor$]\n];\nexports.UpdatedMcpDescriptor$ = [3, n0, _UMD,\n 0,\n [_oV],\n [() => exports.UpdatedMcpDescriptorFields$]\n];\nexports.UpdatedMcpDescriptorFields$ = [3, n0, _UMDF,\n 0,\n [_se, _to],\n [() => exports.UpdatedServerDefinition$, () => exports.UpdatedToolsDefinition$]\n];\nexports.UpdatedServerDefinition$ = [3, n0, _USD,\n 0,\n [_oV],\n [() => exports.ServerDefinition$]\n];\nexports.UpdatedSkillDefinition$ = [3, n0, _USDp,\n 0,\n [_oV],\n [() => exports.SkillDefinition$]\n];\nexports.UpdatedSkillMdDefinition$ = [3, n0, _USMD,\n 0,\n [_oV],\n [() => exports.SkillMdDefinition$]\n];\nexports.UpdatedSynchronizationConfiguration$ = [3, n0, _USC,\n 0,\n [_oV],\n [() => exports.SynchronizationConfiguration$]\n];\nexports.UpdatedSynchronizationType$ = [3, n0, _UST,\n 0,\n [_oV],\n [0]\n];\nexports.UpdatedToolsDefinition$ = [3, n0, _UTD,\n 0,\n [_oV],\n [() => exports.ToolsDefinition$]\n];\nexports.UpdateEvaluatorRequest$ = [3, n0, _UER,\n 0,\n [_eI, _cTl, _d, _eC, _le],\n [[0, 1], [0, 4], [() => EvaluatorDescription, 0], [() => exports.EvaluatorConfig$, 0], 0], 1\n];\nexports.UpdateEvaluatorResponse$ = [3, n0, _UERp,\n 0,\n [_eA, _eI, _uA, _st],\n [0, 0, 4, 0], 4\n];\nexports.UpdateGatewayRequest$ = [3, n0, _UGR,\n 0,\n [_gIa, _n, _rA, _pT, _aT, _d, _pC, _aCu, _kKA, _iCnt, _pEC, _eL],\n [[0, 1], [() => GatewayName, 0], 0, 0, 0, [() => GatewayDescription, 0], () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, 0], 5\n];\nexports.UpdateGatewayResponse$ = [3, n0, _UGRp,\n 0,\n [_gA, _gI, _cA, _uA, _st, _n, _pT, _aT, _gU, _sR, _d, _rA, _pC, _aCu, _kKA, _iCnt, _pEC, _wID, _eL],\n [0, 0, 5, 5, 0, [() => GatewayName, 0], 0, 0, 0, 64 | 0, [() => GatewayDescription, 0], 0, () => exports.GatewayProtocolConfiguration$, () => exports.AuthorizerConfiguration$, 0, () => GatewayInterceptorConfigurations, () => exports.GatewayPolicyEngineConfiguration$, () => exports.WorkloadIdentityDetails$, 0], 8\n];\nexports.UpdateGatewayTargetRequest$ = [3, n0, _UGTR,\n 0,\n [_gIa, _tI, _n, _tC, _d, _cPC, _mC, _pE],\n [[0, 1], [0, 1], [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => TargetDescription, 0], [() => CredentialProviderConfigurations, 0], () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$], 4\n];\nexports.UpdateGatewayTargetResponse$ = [3, n0, _UGTRp,\n 0,\n [_gA, _tI, _cA, _uA, _st, _n, _tC, _cPC, _sR, _d, _lSAa, _mC, _pE, _pEMR, _aD],\n [0, 0, 5, 5, 0, [() => TargetName, 0], [() => exports.TargetConfiguration$, 0], [() => CredentialProviderConfigurations, 0], 64 | 0, [() => TargetDescription, 0], 5, () => exports.MetadataConfiguration$, () => exports.PrivateEndpoint$, () => PrivateEndpointManagedResources, () => exports.AuthorizationData$], 8\n];\nexports.UpdateMemoryInput$ = [3, n0, _UMI,\n 0,\n [_mIe, _cTl, _d, _eED, _mERA, _mS, _sDR],\n [[0, 1], [0, 4], [() => Description, 0], 1, 0, [() => exports.ModifyMemoryStrategies$, 0], () => exports.StreamDeliveryResources$], 1\n];\nexports.UpdateMemoryOutput$ = [3, n0, _UMO,\n 0,\n [_mem],\n [[() => exports.Memory$, 0]]\n];\nexports.UpdateOauth2CredentialProviderRequest$ = [3, n0, _UOCPR,\n 0,\n [_n, _cPV, _oPCI],\n [0, 0, [() => exports.Oauth2ProviderConfigInput$, 0]], 3\n];\nexports.UpdateOauth2CredentialProviderResponse$ = [3, n0, _UOCPRp,\n 0,\n [_cSA, _n, _cPV, _cPA, _oPCO, _cT, _lUT, _cUa],\n [() => exports.Secret$, 0, 0, 0, () => exports.Oauth2ProviderConfigOutput$, 4, 4, 0], 7\n];\nexports.UpdateOnlineEvaluationConfigRequest$ = [3, n0, _UOECR,\n 0,\n [_oECI, _cTl, _d, _rul, _dSC, _ev, _eERA, _eS],\n [[0, 1], [0, 4], [() => EvaluationConfigDescription, 0], () => exports.Rule$, () => exports.DataSourceConfig$, () => EvaluatorList, 0, 0], 1\n];\nexports.UpdateOnlineEvaluationConfigResponse$ = [3, n0, _UOECRp,\n 0,\n [_oECA, _oECI, _uA, _st, _eS, _fR],\n [0, 0, 4, 0, 0, 0], 5\n];\nexports.UpdatePolicyEngineRequest$ = [3, n0, _UPER,\n 0,\n [_pEI, _d],\n [[0, 1], [() => exports.UpdatedDescription$, 0]], 1\n];\nexports.UpdatePolicyEngineResponse$ = [3, n0, _UPERp,\n 0,\n [_pEI, _n, _cA, _uA, _pEA, _st, _sR, _d, _eKA],\n [0, 0, 5, 5, 0, 0, 64 | 0, [() => Description, 0], 0], 7\n];\nexports.UpdatePolicyRequest$ = [3, n0, _UPR,\n 0,\n [_pEI, _pIo, _d, _de, _vM],\n [[0, 1], [0, 1], [() => exports.UpdatedDescription$, 0], () => exports.PolicyDefinition$, 0], 2\n];\nexports.UpdatePolicyResponse$ = [3, n0, _UPRp,\n 0,\n [_pIo, _n, _pEI, _de, _cA, _uA, _pAo, _st, _sR, _d],\n [0, 0, 0, () => exports.PolicyDefinition$, 5, 5, 0, 0, 64 | 0, [() => Description, 0]], 9\n];\nexports.UpdateRegistryRecordRequest$ = [3, n0, _URRR,\n 0,\n [_rI, _rIe, _n, _d, _dT, _des, _rV, _sT, _sC, _tSr],\n [[0, 1], [0, 1], 0, [() => exports.UpdatedDescription$, 0], 0, () => exports.UpdatedDescriptors$, 0, () => exports.UpdatedSynchronizationType$, () => exports.UpdatedSynchronizationConfiguration$, 2], 2\n];\nexports.UpdateRegistryRecordResponse$ = [3, n0, _URRRp,\n 0,\n [_rAeg, _rAe, _rIe, _n, _dT, _des, _st, _cA, _uA, _d, _rV, _sRt, _sT, _sC],\n [0, 0, 0, 0, 0, () => exports.Descriptors$, 0, 5, 5, [() => Description, 0], 0, 0, 0, () => exports.SynchronizationConfiguration$], 9\n];\nexports.UpdateRegistryRecordStatusRequest$ = [3, n0, _URRSR,\n 0,\n [_rI, _rIe, _st, _sRt],\n [[0, 1], [0, 1], 0, 0], 4\n];\nexports.UpdateRegistryRecordStatusResponse$ = [3, n0, _URRSRp,\n 0,\n [_rAeg, _rAe, _rIe, _st, _sRt, _uA],\n [0, 0, 0, 0, 0, 5], 6\n];\nexports.UpdateRegistryRequest$ = [3, n0, _URRp,\n 0,\n [_rI, _n, _d, _aCu, _aCp],\n [[0, 1], 0, [() => exports.UpdatedDescription$, 0], () => exports.UpdatedAuthorizerConfiguration$, () => exports.UpdatedApprovalConfiguration$], 1\n];\nexports.UpdateRegistryResponse$ = [3, n0, _URRpd,\n 0,\n [_n, _rI, _rAeg, _st, _cA, _uA, _d, _aT, _aCu, _aCp, _sRt],\n [0, 0, 0, 0, 5, 5, [() => Description, 0], 0, () => exports.AuthorizerConfiguration$, () => exports.ApprovalConfiguration$, 0], 6\n];\nexports.UpdateWorkloadIdentityRequest$ = [3, n0, _UWIR,\n 0,\n [_n, _aRORU],\n [0, 64 | 0], 1\n];\nexports.UpdateWorkloadIdentityResponse$ = [3, n0, _UWIRp,\n 0,\n [_n, _wIA, _cT, _lUT, _aRORU],\n [0, 0, 4, 4, 64 | 0], 4\n];\nexports.UserPreferenceConsolidationOverride$ = [3, n0, _UPCO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.UserPreferenceExtractionOverride$ = [3, n0, _UPEO,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.UserPreferenceMemoryStrategyInput$ = [3, n0, _UPMSI,\n 0,\n [_n, _d, _na, _nT],\n [0, [() => Description, 0], 64 | 0, 64 | 0], 1\n];\nexports.UserPreferenceOverrideConfigurationInput$ = [3, n0, _UPOCI,\n 0,\n [_ex, _cons],\n [[() => exports.UserPreferenceOverrideExtractionConfigurationInput$, 0], [() => exports.UserPreferenceOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.UserPreferenceOverrideConsolidationConfigurationInput$ = [3, n0, _UPOCCI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.UserPreferenceOverrideExtractionConfigurationInput$ = [3, n0, _UPOECI,\n 0,\n [_aTP, _mI],\n [[() => Prompt, 0], 0], 2\n];\nexports.ValidationExceptionField$ = [3, n0, _VEF,\n 0,\n [_n, _m],\n [0, 0], 2\n];\nexports.VpcConfig$ = [3, n0, _VC,\n 0,\n [_sG, _su],\n [64 | 0, 64 | 0], 2\n];\nexports.WorkloadIdentityDetails$ = [3, n0, _WID,\n 0,\n [_wIA],\n [0], 1\n];\nexports.WorkloadIdentityType$ = [3, n0, _WIT,\n 0,\n [_n, _wIA],\n [0, 0], 2\n];\nvar AgentRuntimeEndpoints = [1, n0, _AREg,\n 0, [() => exports.AgentRuntimeEndpoint$,\n 0]\n];\nvar AgentRuntimes = [1, n0, _ARg,\n 0, [() => exports.AgentRuntime$,\n 0]\n];\nvar AllowedAudienceList = 64 | 0;\nvar AllowedClientsList = 64 | 0;\nvar AllowedQueryParameters = 64 | 0;\nvar AllowedRequestHeaders = 64 | 0;\nvar AllowedResponseHeaders = 64 | 0;\nvar AllowedScopesType = 64 | 0;\nvar ApiGatewayToolFilters = [1, n0, _AGTFp,\n 0, () => exports.ApiGatewayToolFilter$\n];\nvar ApiGatewayToolOverrides = [1, n0, _AGTOp,\n 0, () => exports.ApiGatewayToolOverride$\n];\nvar ApiKeyCredentialProviders = [1, n0, _AKCP,\n 0, () => exports.ApiKeyCredentialProviderItem$\n];\nvar BrowserEnterprisePolicies = [1, n0, _BEPr,\n 0, () => exports.BrowserEnterprisePolicy$\n];\nvar BrowserProfileSummaries = [1, n0, _BPSr,\n 0, [() => exports.BrowserProfileSummary$,\n 0]\n];\nvar BrowserSummaries = [1, n0, _BSr,\n 0, [() => exports.BrowserSummary$,\n 0]\n];\nvar CategoricalScaleDefinitions = [1, n0, _CSDa,\n 0, () => exports.CategoricalScaleDefinition$\n];\nvar Certificates = [1, n0, _Ce,\n 0, () => exports.Certificate$\n];\nvar CodeInterpreterSummaries = [1, n0, _CISo,\n 0, [() => exports.CodeInterpreterSummary$,\n 0]\n];\nvar ContentConfigurationList = [1, n0, _CCL,\n 0, () => exports.ContentConfiguration$\n];\nvar CredentialProviderConfigurations = [1, n0, _CPCr,\n 0, [() => exports.CredentialProviderConfiguration$,\n 0]\n];\nvar CustomClaimValidationsType = [1, n0, _CCVTu,\n 0, () => exports.CustomClaimValidationType$\n];\nvar DeleteMemoryStrategiesList = [1, n0, _DMSL,\n 0, () => exports.DeleteMemoryStrategyInput$\n];\nvar EntryPoints = 64 | 0;\nvar EvaluatorList = [1, n0, _EL,\n 0, () => exports.EvaluatorReference$\n];\nvar EvaluatorSummaryList = [1, n0, _ESL,\n 0, [() => exports.EvaluatorSummary$,\n 0]\n];\nvar FilesystemConfigurations = [1, n0, _FC,\n 0, () => exports.FilesystemConfiguration$\n];\nvar FilterList = [1, n0, _FL,\n 0, () => exports.Filter$\n];\nvar Findings = [1, n0, _Fin,\n 0, () => exports.Finding$\n];\nvar GatewayInterceptionPoints = 64 | 0;\nvar GatewayInterceptorConfigurations = [1, n0, _GICa,\n 0, () => exports.GatewayInterceptorConfiguration$\n];\nvar GatewaySummaries = [1, n0, _GSa,\n 0, [() => exports.GatewaySummary$,\n 0]\n];\nvar GatewayTargetList = [1, n0, _GTL,\n 0, [() => exports.GatewayTarget$,\n 0]\n];\nvar LogGroupNamesList = 64 | 0;\nvar MatchValueStringList = 64 | 0;\nvar McpSupportedVersions = 64 | 0;\nvar MemoryStrategyInputList = [1, n0, _MSIL,\n 0, [() => exports.MemoryStrategyInput$,\n 0]\n];\nvar MemoryStrategyList = [1, n0, _MSL,\n 0, [() => exports.MemoryStrategy$,\n 0]\n];\nvar MemorySummaryList = [1, n0, _MSLe,\n 0, () => exports.MemorySummary$\n];\nvar ModifyMemoryStrategiesList = [1, n0, _MMSL,\n 0, [() => exports.ModifyMemoryStrategyInput$,\n 0]\n];\nvar NamespacesList = 64 | 0;\nvar NonEmptyStringList = 64 | 0;\nvar NumericalScaleDefinitions = [1, n0, _NSDu,\n 0, () => exports.NumericalScaleDefinition$\n];\nvar Oauth2CredentialProviders = [1, n0, _OCP,\n 0, () => exports.Oauth2CredentialProviderItem$\n];\nvar OAuthScopes = 64 | 0;\nvar OnlineEvaluationConfigSummaryList = [1, n0, _OECSL,\n 0, [() => exports.OnlineEvaluationConfigSummary$,\n 0]\n];\nvar Policies = [1, n0, _Pol,\n 0, [() => exports.Policy$,\n 0]\n];\nvar PolicyEngines = [1, n0, _PEo,\n 0, [() => exports.PolicyEngine$,\n 0]\n];\nvar PolicyGenerationAssets = [1, n0, _PGAo,\n 0, () => exports.PolicyGenerationAsset$\n];\nvar PolicyGenerations = [1, n0, _PGo,\n 0, () => exports.PolicyGeneration$\n];\nvar PolicyStatusReasons = 64 | 0;\nvar PrivateEndpointManagedResources = [1, n0, _PEMR,\n 0, () => exports.ManagedResourceDetails$\n];\nvar RegistryRecordCredentialProviderConfigurationList = [1, n0, _RRCPCL,\n 0, () => exports.RegistryRecordCredentialProviderConfiguration$\n];\nvar RegistryRecordSummaryList = [1, n0, _RRSL,\n 0, [() => exports.RegistryRecordSummary$,\n 0]\n];\nvar RegistrySummaryList = [1, n0, _RSL,\n 0, [() => exports.RegistrySummary$,\n 0]\n];\nvar RequestHeaderAllowlist = 64 | 0;\nvar RequiredProperties = 64 | 0;\nvar ResourceOauth2ReturnUrlListType = 64 | 0;\nvar ResponseListType = 64 | 0;\nvar RestApiMethods = 64 | 0;\nvar ScopeList = 64 | 0;\nvar SecurityGroupIds = 64 | 0;\nvar SecurityGroups = 64 | 0;\nvar ServiceNamesList = 64 | 0;\nvar StatusReasons = 64 | 0;\nvar StreamDeliveryResourcesList = [1, n0, _SDRL,\n 0, () => exports.StreamDeliveryResource$\n];\nvar SubnetIds = 64 | 0;\nvar Subnets = 64 | 0;\nvar TagKeyList = 64 | 0;\nvar TargetIdList = 64 | 0;\nvar TargetSummaries = [1, n0, _TSa,\n 0, [() => exports.TargetSummary$,\n 0]\n];\nvar TokenEndpointAuthMethodsType = 64 | 0;\nvar ToolDefinitions = [1, n0, _TDool,\n 0, () => exports.ToolDefinition$\n];\nvar TriggerConditionInputList = [1, n0, _TCIL,\n 0, () => exports.TriggerConditionInput$\n];\nvar TriggerConditionsList = [1, n0, _TCL,\n 0, () => exports.TriggerCondition$\n];\nvar ValidationExceptionFieldList = [1, n0, _VEFL,\n 0, () => exports.ValidationExceptionField$\n];\nvar WorkloadIdentityList = [1, n0, _WIL,\n 0, () => exports.WorkloadIdentityType$\n];\nvar CustomParameterMap = 128 | 0;\nvar EnvironmentVariablesMap = [2, n0, _EVM,\n 8, 0, 0\n];\nvar OAuthCustomParameters = [2, n0, _OACPu,\n 0, [0,\n 0],\n [() => OAuthCustomParametersValue,\n 0]\n];\nvar SchemaProperties = [2, n0, _SP,\n 0, 0, () => exports.SchemaDefinition$\n];\nvar TagsMap = 128 | 0;\nexports.AgentRuntimeArtifact$ = [4, n0, _ARA,\n 0,\n [_cCon, _cCod],\n [() => exports.ContainerConfiguration$, () => exports.CodeConfiguration$]\n];\nexports.ApiSchemaConfiguration$ = [4, n0, _ASC,\n 0,\n [_s_, _iPn],\n [() => exports.S3Configuration$, [() => InlinePayload, 0]]\n];\nexports.AuthorizationData$ = [4, n0, _ADu,\n 0,\n [_oa],\n [() => exports.OAuth2AuthorizationData$]\n];\nexports.AuthorizerConfiguration$ = [4, n0, _ACu,\n 0,\n [_cJWTA],\n [() => exports.CustomJWTAuthorizerConfiguration$]\n];\nexports.CertificateLocation$ = [4, n0, _CL,\n 0,\n [_sMe],\n [() => exports.SecretsManagerLocation$]\n];\nexports.ClaimMatchValueType$ = [4, n0, _CMVT,\n 0,\n [_mVS, _mVSL],\n [0, 64 | 0]\n];\nexports.Code$ = [4, n0, _Co,\n 0,\n [_s_],\n [() => exports.S3Location$]\n];\nexports.CodeBasedEvaluatorConfig$ = [4, n0, _CBEC,\n 0,\n [_lCa],\n [() => exports.LambdaEvaluatorConfig$]\n];\nexports.ConsolidationConfiguration$ = [4, n0, _CCons,\n 0,\n [_cCC],\n [[() => exports.CustomConsolidationConfiguration$, 0]]\n];\nexports.Content$ = [4, n0, _Con,\n 0,\n [_rTa],\n [0]\n];\nexports.CredentialProvider$ = [4, n0, _CPr,\n 0,\n [_oCP, _aKCP, _iCP],\n [[() => exports.OAuthCredentialProvider$, 0], () => exports.GatewayApiKeyCredentialProvider$, () => exports.IamCredentialProvider$]\n];\nexports.CustomConfigurationInput$ = [4, n0, _CCI,\n 0,\n [_sO, _sOu, _uPO, _eO, _sMC],\n [[() => exports.SemanticOverrideConfigurationInput$, 0], [() => exports.SummaryOverrideConfigurationInput$, 0], [() => exports.UserPreferenceOverrideConfigurationInput$, 0], [() => exports.EpisodicOverrideConfigurationInput$, 0], () => exports.SelfManagedConfigurationInput$]\n];\nexports.CustomConsolidationConfiguration$ = [4, n0, _CCC,\n 0,\n [_sCO, _sCOu, _uPCO, _eCO],\n [[() => exports.SemanticConsolidationOverride$, 0], [() => exports.SummaryConsolidationOverride$, 0], [() => exports.UserPreferenceConsolidationOverride$, 0], [() => exports.EpisodicConsolidationOverride$, 0]]\n];\nexports.CustomConsolidationConfigurationInput$ = [4, n0, _CCCI,\n 0,\n [_sCO, _sCOu, _uPCO, _eCO],\n [[() => exports.SemanticOverrideConsolidationConfigurationInput$, 0], [() => exports.SummaryOverrideConsolidationConfigurationInput$, 0], [() => exports.UserPreferenceOverrideConsolidationConfigurationInput$, 0], [() => exports.EpisodicOverrideConsolidationConfigurationInput$, 0]]\n];\nexports.CustomExtractionConfiguration$ = [4, n0, _CEC,\n 0,\n [_sEO, _uPEO, _eEO],\n [[() => exports.SemanticExtractionOverride$, 0], [() => exports.UserPreferenceExtractionOverride$, 0], [() => exports.EpisodicExtractionOverride$, 0]]\n];\nexports.CustomExtractionConfigurationInput$ = [4, n0, _CECI,\n 0,\n [_sEO, _uPEO, _eEO],\n [[() => exports.SemanticOverrideExtractionConfigurationInput$, 0], [() => exports.UserPreferenceOverrideExtractionConfigurationInput$, 0], [() => exports.EpisodicOverrideExtractionConfigurationInput$, 0]]\n];\nexports.CustomReflectionConfiguration$ = [4, n0, _CRC,\n 0,\n [_eRO],\n [[() => exports.EpisodicReflectionOverride$, 0]]\n];\nexports.CustomReflectionConfigurationInput$ = [4, n0, _CRCI,\n 0,\n [_eRO],\n [[() => exports.EpisodicOverrideReflectionConfigurationInput$, 0]]\n];\nexports.DataSourceConfig$ = [4, n0, _DSC,\n 0,\n [_cWL],\n [() => exports.CloudWatchLogsInputConfig$]\n];\nexports.EvaluatorConfig$ = [4, n0, _EC,\n 0,\n [_lAAJ, _cB],\n [[() => exports.LlmAsAJudgeEvaluatorConfig$, 0], () => exports.CodeBasedEvaluatorConfig$]\n];\nexports.EvaluatorModelConfig$ = [4, n0, _EMC,\n 0,\n [_bEMC],\n [() => exports.BedrockEvaluatorModelConfig$]\n];\nexports.EvaluatorReference$ = [4, n0, _ER,\n 0,\n [_eI],\n [0]\n];\nexports.ExtractionConfiguration$ = [4, n0, _ECx,\n 0,\n [_cEC],\n [[() => exports.CustomExtractionConfiguration$, 0]]\n];\nexports.FilesystemConfiguration$ = [4, n0, _FCi,\n 0,\n [_sSe],\n [() => exports.SessionStorageConfiguration$]\n];\nexports.FilterValue$ = [4, n0, _FV,\n 0,\n [_sVt, _dV, _bV],\n [0, 1, 2]\n];\nexports.GatewayProtocolConfiguration$ = [4, n0, _GPC,\n 0,\n [_mc],\n [() => exports.MCPGatewayConfiguration$]\n];\nexports.InterceptorConfiguration$ = [4, n0, _ICnt,\n 0,\n [_lam],\n [() => exports.LambdaInterceptorConfiguration$]\n];\nexports.McpTargetConfiguration$ = [4, n0, _MTC,\n 0,\n [_oAS, _sMm, _lam, _mSc, _aG],\n [[() => exports.ApiSchemaConfiguration$, 0], [() => exports.ApiSchemaConfiguration$, 0], () => exports.McpLambdaTargetConfiguration$, [() => exports.McpServerTargetConfiguration$, 0], () => exports.ApiGatewayTargetConfiguration$]\n];\nexports.McpToolSchemaConfiguration$ = [4, n0, _MTSC,\n 0,\n [_s_, _iPn],\n [() => exports.S3Configuration$, [() => InlinePayload, 0]]\n];\nexports.MemoryStrategyInput$ = [4, n0, _MSI,\n 0,\n [_sMS, _sMSu, _uPMS, _cMS, _eMS],\n [[() => exports.SemanticMemoryStrategyInput$, 0], [() => exports.SummaryMemoryStrategyInput$, 0], [() => exports.UserPreferenceMemoryStrategyInput$, 0], [() => exports.CustomMemoryStrategyInput$, 0], [() => exports.EpisodicMemoryStrategyInput$, 0]]\n];\nexports.ModifyConsolidationConfiguration$ = [4, n0, _MCC,\n 0,\n [_cCC],\n [[() => exports.CustomConsolidationConfigurationInput$, 0]]\n];\nexports.ModifyExtractionConfiguration$ = [4, n0, _MEC,\n 0,\n [_cEC],\n [[() => exports.CustomExtractionConfigurationInput$, 0]]\n];\nexports.ModifyReflectionConfiguration$ = [4, n0, _MRC,\n 0,\n [_eRC, _cRC],\n [() => exports.EpisodicReflectionConfigurationInput$, [() => exports.CustomReflectionConfigurationInput$, 0]]\n];\nexports.Oauth2Discovery$ = [4, n0, _OD,\n 0,\n [_dU, _aSM],\n [0, () => exports.Oauth2AuthorizationServerMetadata$]\n];\nexports.Oauth2ProviderConfigInput$ = [4, n0, _OPCI,\n 0,\n [_cOPC, _gOPC, _gOPCi, _sOPC, _sOPCa, _mOPC, _aOPC, _lOPC, _iOPC],\n [[() => exports.CustomOauth2ProviderConfigInput$, 0], [() => exports.GoogleOauth2ProviderConfigInput$, 0], [() => exports.GithubOauth2ProviderConfigInput$, 0], [() => exports.SlackOauth2ProviderConfigInput$, 0], [() => exports.SalesforceOauth2ProviderConfigInput$, 0], [() => exports.MicrosoftOauth2ProviderConfigInput$, 0], [() => exports.AtlassianOauth2ProviderConfigInput$, 0], [() => exports.LinkedinOauth2ProviderConfigInput$, 0], [() => exports.IncludedOauth2ProviderConfigInput$, 0]]\n];\nexports.Oauth2ProviderConfigOutput$ = [4, n0, _OPCO,\n 0,\n [_cOPC, _gOPC, _gOPCi, _sOPC, _sOPCa, _mOPC, _aOPC, _lOPC, _iOPC],\n [() => exports.CustomOauth2ProviderConfigOutput$, () => exports.GoogleOauth2ProviderConfigOutput$, () => exports.GithubOauth2ProviderConfigOutput$, () => exports.SlackOauth2ProviderConfigOutput$, () => exports.SalesforceOauth2ProviderConfigOutput$, () => exports.MicrosoftOauth2ProviderConfigOutput$, () => exports.AtlassianOauth2ProviderConfigOutput$, () => exports.LinkedinOauth2ProviderConfigOutput$, () => exports.IncludedOauth2ProviderConfigOutput$]\n];\nexports.PolicyDefinition$ = [4, n0, _PD,\n 0,\n [_ced, _pGo],\n [() => exports.CedarPolicy$, () => exports.PolicyGenerationDetails$]\n];\nexports.PrivateEndpoint$ = [4, n0, _PEr,\n 0,\n [_sMLR, _mLR],\n [() => exports.SelfManagedLatticeResource$, () => exports.ManagedLatticeResource$]\n];\nexports.RatingScale$ = [4, n0, _RSa,\n 8,\n [_nu, _ca],\n [() => NumericalScaleDefinitions, () => CategoricalScaleDefinitions]\n];\nexports.ReflectionConfiguration$ = [4, n0, _RCe,\n 0,\n [_cRC, _eRC],\n [[() => exports.CustomReflectionConfiguration$, 0], () => exports.EpisodicReflectionConfiguration$]\n];\nexports.RegistryRecordCredentialProviderUnion$ = [4, n0, _RRCPU,\n 0,\n [_oCP, _iCP],\n [() => exports.RegistryRecordOAuthCredentialProvider$, () => exports.RegistryRecordIamCredentialProvider$]\n];\nexports.RequestHeaderConfiguration$ = [4, n0, _RHC,\n 0,\n [_rHA],\n [64 | 0]\n];\nexports.Resource$ = [4, n0, _Re,\n 0,\n [_ar],\n [0]\n];\nexports.ResourceLocation$ = [4, n0, _RL,\n 0,\n [_s_],\n [() => exports.S3Location$]\n];\nexports.SelfManagedLatticeResource$ = [4, n0, _SMLR,\n 0,\n [_rCI],\n [0]\n];\nexports.StreamDeliveryResource$ = [4, n0, _SDRt,\n 0,\n [_ki],\n [() => exports.KinesisResource$]\n];\nexports.TargetConfiguration$ = [4, n0, _TC,\n 0,\n [_mc],\n [[() => exports.McpTargetConfiguration$, 0]]\n];\nexports.ToolSchema$ = [4, n0, _TSo,\n 0,\n [_s_, _iPn],\n [() => exports.S3Configuration$, () => ToolDefinitions]\n];\nexports.TriggerCondition$ = [4, n0, _TCr,\n 0,\n [_mBT, _tBT, _tBTi],\n [() => exports.MessageBasedTrigger$, () => exports.TokenBasedTrigger$, () => exports.TimeBasedTrigger$]\n];\nexports.TriggerConditionInput$ = [4, n0, _TCI,\n 0,\n [_mBT, _tBT, _tBTi],\n [() => exports.MessageBasedTriggerInput$, () => exports.TokenBasedTriggerInput$, () => exports.TimeBasedTriggerInput$]\n];\nexports.CreateAgentRuntime$ = [9, n0, _CAR,\n { [_h]: [\"PUT\", \"/runtimes/\", 202] }, () => exports.CreateAgentRuntimeRequest$, () => exports.CreateAgentRuntimeResponse$\n];\nexports.CreateAgentRuntimeEndpoint$ = [9, n0, _CARE,\n { [_h]: [\"PUT\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/\", 202] }, () => exports.CreateAgentRuntimeEndpointRequest$, () => exports.CreateAgentRuntimeEndpointResponse$\n];\nexports.CreateApiKeyCredentialProvider$ = [9, n0, _CAKCP,\n { [_h]: [\"POST\", \"/identities/CreateApiKeyCredentialProvider\", 201] }, () => exports.CreateApiKeyCredentialProviderRequest$, () => exports.CreateApiKeyCredentialProviderResponse$\n];\nexports.CreateBrowser$ = [9, n0, _CB,\n { [_h]: [\"PUT\", \"/browsers\", 202] }, () => exports.CreateBrowserRequest$, () => exports.CreateBrowserResponse$\n];\nexports.CreateBrowserProfile$ = [9, n0, _CBP,\n { [_h]: [\"PUT\", \"/browser-profiles\", 200] }, () => exports.CreateBrowserProfileRequest$, () => exports.CreateBrowserProfileResponse$\n];\nexports.CreateCodeInterpreter$ = [9, n0, _CCIr,\n { [_h]: [\"PUT\", \"/code-interpreters\", 202] }, () => exports.CreateCodeInterpreterRequest$, () => exports.CreateCodeInterpreterResponse$\n];\nexports.CreateEvaluator$ = [9, n0, _CEr,\n { [_h]: [\"POST\", \"/evaluators/create\", 202] }, () => exports.CreateEvaluatorRequest$, () => exports.CreateEvaluatorResponse$\n];\nexports.CreateGateway$ = [9, n0, _CG,\n { [_h]: [\"POST\", \"/gateways/\", 202] }, () => exports.CreateGatewayRequest$, () => exports.CreateGatewayResponse$\n];\nexports.CreateGatewayTarget$ = [9, n0, _CGT,\n { [_h]: [\"POST\", \"/gateways/{gatewayIdentifier}/targets/\", 202] }, () => exports.CreateGatewayTargetRequest$, () => exports.CreateGatewayTargetResponse$\n];\nexports.CreateMemory$ = [9, n0, _CM,\n { [_h]: [\"POST\", \"/memories/create\", 202] }, () => exports.CreateMemoryInput$, () => exports.CreateMemoryOutput$\n];\nexports.CreateOauth2CredentialProvider$ = [9, n0, _COCP,\n { [_h]: [\"POST\", \"/identities/CreateOauth2CredentialProvider\", 201] }, () => exports.CreateOauth2CredentialProviderRequest$, () => exports.CreateOauth2CredentialProviderResponse$\n];\nexports.CreateOnlineEvaluationConfig$ = [9, n0, _COEC,\n { [_h]: [\"POST\", \"/online-evaluation-configs/create\", 202] }, () => exports.CreateOnlineEvaluationConfigRequest$, () => exports.CreateOnlineEvaluationConfigResponse$\n];\nexports.CreatePolicy$ = [9, n0, _CPre,\n { [_h]: [\"POST\", \"/policy-engines/{policyEngineId}/policies\", 202] }, () => exports.CreatePolicyRequest$, () => exports.CreatePolicyResponse$\n];\nexports.CreatePolicyEngine$ = [9, n0, _CPE,\n { [_h]: [\"POST\", \"/policy-engines\", 202] }, () => exports.CreatePolicyEngineRequest$, () => exports.CreatePolicyEngineResponse$\n];\nexports.CreateRegistry$ = [9, n0, _CR,\n { [_h]: [\"POST\", \"/registries\", 202] }, () => exports.CreateRegistryRequest$, () => exports.CreateRegistryResponse$\n];\nexports.CreateRegistryRecord$ = [9, n0, _CRRre,\n { [_h]: [\"POST\", \"/registries/{registryId}/records\", 202] }, () => exports.CreateRegistryRecordRequest$, () => exports.CreateRegistryRecordResponse$\n];\nexports.CreateWorkloadIdentity$ = [9, n0, _CWI,\n { [_h]: [\"POST\", \"/identities/CreateWorkloadIdentity\", 201] }, () => exports.CreateWorkloadIdentityRequest$, () => exports.CreateWorkloadIdentityResponse$\n];\nexports.DeleteAgentRuntime$ = [9, n0, _DAR,\n { [_h]: [\"DELETE\", \"/runtimes/{agentRuntimeId}/\", 202] }, () => exports.DeleteAgentRuntimeRequest$, () => exports.DeleteAgentRuntimeResponse$\n];\nexports.DeleteAgentRuntimeEndpoint$ = [9, n0, _DARE,\n { [_h]: [\"DELETE\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/\", 202] }, () => exports.DeleteAgentRuntimeEndpointRequest$, () => exports.DeleteAgentRuntimeEndpointResponse$\n];\nexports.DeleteApiKeyCredentialProvider$ = [9, n0, _DAKCP,\n { [_h]: [\"POST\", \"/identities/DeleteApiKeyCredentialProvider\", 204] }, () => exports.DeleteApiKeyCredentialProviderRequest$, () => exports.DeleteApiKeyCredentialProviderResponse$\n];\nexports.DeleteBrowser$ = [9, n0, _DB,\n { [_h]: [\"DELETE\", \"/browsers/{browserId}\", 202] }, () => exports.DeleteBrowserRequest$, () => exports.DeleteBrowserResponse$\n];\nexports.DeleteBrowserProfile$ = [9, n0, _DBP,\n { [_h]: [\"DELETE\", \"/browser-profiles/{profileId}\", 200] }, () => exports.DeleteBrowserProfileRequest$, () => exports.DeleteBrowserProfileResponse$\n];\nexports.DeleteCodeInterpreter$ = [9, n0, _DCI,\n { [_h]: [\"DELETE\", \"/code-interpreters/{codeInterpreterId}\", 202] }, () => exports.DeleteCodeInterpreterRequest$, () => exports.DeleteCodeInterpreterResponse$\n];\nexports.DeleteEvaluator$ = [9, n0, _DE,\n { [_h]: [\"DELETE\", \"/evaluators/{evaluatorId}\", 202] }, () => exports.DeleteEvaluatorRequest$, () => exports.DeleteEvaluatorResponse$\n];\nexports.DeleteGateway$ = [9, n0, _DG,\n { [_h]: [\"DELETE\", \"/gateways/{gatewayIdentifier}/\", 202] }, () => exports.DeleteGatewayRequest$, () => exports.DeleteGatewayResponse$\n];\nexports.DeleteGatewayTarget$ = [9, n0, _DGT,\n { [_h]: [\"DELETE\", \"/gateways/{gatewayIdentifier}/targets/{targetId}/\", 202] }, () => exports.DeleteGatewayTargetRequest$, () => exports.DeleteGatewayTargetResponse$\n];\nexports.DeleteMemory$ = [9, n0, _DM,\n { [_h]: [\"DELETE\", \"/memories/{memoryId}/delete\", 202] }, () => exports.DeleteMemoryInput$, () => exports.DeleteMemoryOutput$\n];\nexports.DeleteOauth2CredentialProvider$ = [9, n0, _DOCP,\n { [_h]: [\"POST\", \"/identities/DeleteOauth2CredentialProvider\", 204] }, () => exports.DeleteOauth2CredentialProviderRequest$, () => exports.DeleteOauth2CredentialProviderResponse$\n];\nexports.DeleteOnlineEvaluationConfig$ = [9, n0, _DOEC,\n { [_h]: [\"DELETE\", \"/online-evaluation-configs/{onlineEvaluationConfigId}\", 202] }, () => exports.DeleteOnlineEvaluationConfigRequest$, () => exports.DeleteOnlineEvaluationConfigResponse$\n];\nexports.DeletePolicy$ = [9, n0, _DP,\n { [_h]: [\"DELETE\", \"/policy-engines/{policyEngineId}/policies/{policyId}\", 202] }, () => exports.DeletePolicyRequest$, () => exports.DeletePolicyResponse$\n];\nexports.DeletePolicyEngine$ = [9, n0, _DPE,\n { [_h]: [\"DELETE\", \"/policy-engines/{policyEngineId}\", 202] }, () => exports.DeletePolicyEngineRequest$, () => exports.DeletePolicyEngineResponse$\n];\nexports.DeleteRegistry$ = [9, n0, _DR,\n { [_h]: [\"DELETE\", \"/registries/{registryId}\", 202] }, () => exports.DeleteRegistryRequest$, () => exports.DeleteRegistryResponse$\n];\nexports.DeleteRegistryRecord$ = [9, n0, _DRRel,\n { [_h]: [\"DELETE\", \"/registries/{registryId}/records/{recordId}\", 200] }, () => exports.DeleteRegistryRecordRequest$, () => exports.DeleteRegistryRecordResponse$\n];\nexports.DeleteResourcePolicy$ = [9, n0, _DRP,\n { [_h]: [\"DELETE\", \"/resourcepolicy/{resourceArn}\", 204] }, () => exports.DeleteResourcePolicyRequest$, () => exports.DeleteResourcePolicyResponse$\n];\nexports.DeleteWorkloadIdentity$ = [9, n0, _DWI,\n { [_h]: [\"POST\", \"/identities/DeleteWorkloadIdentity\", 204] }, () => exports.DeleteWorkloadIdentityRequest$, () => exports.DeleteWorkloadIdentityResponse$\n];\nexports.GetAgentRuntime$ = [9, n0, _GAR,\n { [_h]: [\"GET\", \"/runtimes/{agentRuntimeId}/\", 200] }, () => exports.GetAgentRuntimeRequest$, () => exports.GetAgentRuntimeResponse$\n];\nexports.GetAgentRuntimeEndpoint$ = [9, n0, _GARE,\n { [_h]: [\"GET\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/\", 200] }, () => exports.GetAgentRuntimeEndpointRequest$, () => exports.GetAgentRuntimeEndpointResponse$\n];\nexports.GetApiKeyCredentialProvider$ = [9, n0, _GAKCPe,\n { [_h]: [\"POST\", \"/identities/GetApiKeyCredentialProvider\", 200] }, () => exports.GetApiKeyCredentialProviderRequest$, () => exports.GetApiKeyCredentialProviderResponse$\n];\nexports.GetBrowser$ = [9, n0, _GB,\n { [_h]: [\"GET\", \"/browsers/{browserId}\", 200] }, () => exports.GetBrowserRequest$, () => exports.GetBrowserResponse$\n];\nexports.GetBrowserProfile$ = [9, n0, _GBP,\n { [_h]: [\"GET\", \"/browser-profiles/{profileId}\", 200] }, () => exports.GetBrowserProfileRequest$, () => exports.GetBrowserProfileResponse$\n];\nexports.GetCodeInterpreter$ = [9, n0, _GCI,\n { [_h]: [\"GET\", \"/code-interpreters/{codeInterpreterId}\", 200] }, () => exports.GetCodeInterpreterRequest$, () => exports.GetCodeInterpreterResponse$\n];\nexports.GetEvaluator$ = [9, n0, _GE,\n { [_h]: [\"GET\", \"/evaluators/{evaluatorId}\", 200] }, () => exports.GetEvaluatorRequest$, () => exports.GetEvaluatorResponse$\n];\nexports.GetGateway$ = [9, n0, _GG,\n { [_h]: [\"GET\", \"/gateways/{gatewayIdentifier}/\", 200] }, () => exports.GetGatewayRequest$, () => exports.GetGatewayResponse$\n];\nexports.GetGatewayTarget$ = [9, n0, _GGT,\n { [_h]: [\"GET\", \"/gateways/{gatewayIdentifier}/targets/{targetId}/\", 200] }, () => exports.GetGatewayTargetRequest$, () => exports.GetGatewayTargetResponse$\n];\nexports.GetMemory$ = [9, n0, _GM,\n { [_h]: [\"GET\", \"/memories/{memoryId}/details\", 200] }, () => exports.GetMemoryInput$, () => exports.GetMemoryOutput$\n];\nexports.GetOauth2CredentialProvider$ = [9, n0, _GOCP,\n { [_h]: [\"POST\", \"/identities/GetOauth2CredentialProvider\", 200] }, () => exports.GetOauth2CredentialProviderRequest$, () => exports.GetOauth2CredentialProviderResponse$\n];\nexports.GetOnlineEvaluationConfig$ = [9, n0, _GOEC,\n { [_h]: [\"GET\", \"/online-evaluation-configs/{onlineEvaluationConfigId}\", 200] }, () => exports.GetOnlineEvaluationConfigRequest$, () => exports.GetOnlineEvaluationConfigResponse$\n];\nexports.GetPolicy$ = [9, n0, _GP,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policies/{policyId}\", 200] }, () => exports.GetPolicyRequest$, () => exports.GetPolicyResponse$\n];\nexports.GetPolicyEngine$ = [9, n0, _GPE,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}\", 200] }, () => exports.GetPolicyEngineRequest$, () => exports.GetPolicyEngineResponse$\n];\nexports.GetPolicyGeneration$ = [9, n0, _GPG,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}\", 200] }, () => exports.GetPolicyGenerationRequest$, () => exports.GetPolicyGenerationResponse$\n];\nexports.GetRegistry$ = [9, n0, _GR,\n { [_h]: [\"GET\", \"/registries/{registryId}\", 200] }, () => exports.GetRegistryRequest$, () => exports.GetRegistryResponse$\n];\nexports.GetRegistryRecord$ = [9, n0, _GRRet,\n { [_h]: [\"GET\", \"/registries/{registryId}/records/{recordId}\", 200] }, () => exports.GetRegistryRecordRequest$, () => exports.GetRegistryRecordResponse$\n];\nexports.GetResourcePolicy$ = [9, n0, _GRP,\n { [_h]: [\"GET\", \"/resourcepolicy/{resourceArn}\", 200] }, () => exports.GetResourcePolicyRequest$, () => exports.GetResourcePolicyResponse$\n];\nexports.GetTokenVault$ = [9, n0, _GTV,\n { [_h]: [\"POST\", \"/identities/get-token-vault\", 200] }, () => exports.GetTokenVaultRequest$, () => exports.GetTokenVaultResponse$\n];\nexports.GetWorkloadIdentity$ = [9, n0, _GWI,\n { [_h]: [\"POST\", \"/identities/GetWorkloadIdentity\", 200] }, () => exports.GetWorkloadIdentityRequest$, () => exports.GetWorkloadIdentityResponse$\n];\nexports.ListAgentRuntimeEndpoints$ = [9, n0, _LARE,\n { [_h]: [\"POST\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/\", 200] }, () => exports.ListAgentRuntimeEndpointsRequest$, () => exports.ListAgentRuntimeEndpointsResponse$\n];\nexports.ListAgentRuntimes$ = [9, n0, _LAR,\n { [_h]: [\"POST\", \"/runtimes/\", 200] }, () => exports.ListAgentRuntimesRequest$, () => exports.ListAgentRuntimesResponse$\n];\nexports.ListAgentRuntimeVersions$ = [9, n0, _LARV,\n { [_h]: [\"POST\", \"/runtimes/{agentRuntimeId}/versions/\", 200] }, () => exports.ListAgentRuntimeVersionsRequest$, () => exports.ListAgentRuntimeVersionsResponse$\n];\nexports.ListApiKeyCredentialProviders$ = [9, n0, _LAKCP,\n { [_h]: [\"POST\", \"/identities/ListApiKeyCredentialProviders\", 200] }, () => exports.ListApiKeyCredentialProvidersRequest$, () => exports.ListApiKeyCredentialProvidersResponse$\n];\nexports.ListBrowserProfiles$ = [9, n0, _LBP,\n { [_h]: [\"POST\", \"/browser-profiles\", 200] }, () => exports.ListBrowserProfilesRequest$, () => exports.ListBrowserProfilesResponse$\n];\nexports.ListBrowsers$ = [9, n0, _LB,\n { [_h]: [\"POST\", \"/browsers\", 200] }, () => exports.ListBrowsersRequest$, () => exports.ListBrowsersResponse$\n];\nexports.ListCodeInterpreters$ = [9, n0, _LCI,\n { [_h]: [\"POST\", \"/code-interpreters\", 200] }, () => exports.ListCodeInterpretersRequest$, () => exports.ListCodeInterpretersResponse$\n];\nexports.ListEvaluators$ = [9, n0, _LE,\n { [_h]: [\"POST\", \"/evaluators\", 200] }, () => exports.ListEvaluatorsRequest$, () => exports.ListEvaluatorsResponse$\n];\nexports.ListGateways$ = [9, n0, _LG,\n { [_h]: [\"GET\", \"/gateways/\", 200] }, () => exports.ListGatewaysRequest$, () => exports.ListGatewaysResponse$\n];\nexports.ListGatewayTargets$ = [9, n0, _LGT,\n { [_h]: [\"GET\", \"/gateways/{gatewayIdentifier}/targets/\", 200] }, () => exports.ListGatewayTargetsRequest$, () => exports.ListGatewayTargetsResponse$\n];\nexports.ListMemories$ = [9, n0, _LM,\n { [_h]: [\"POST\", \"/memories/\", 200] }, () => exports.ListMemoriesInput$, () => exports.ListMemoriesOutput$\n];\nexports.ListOauth2CredentialProviders$ = [9, n0, _LOCP,\n { [_h]: [\"POST\", \"/identities/ListOauth2CredentialProviders\", 200] }, () => exports.ListOauth2CredentialProvidersRequest$, () => exports.ListOauth2CredentialProvidersResponse$\n];\nexports.ListOnlineEvaluationConfigs$ = [9, n0, _LOEC,\n { [_h]: [\"POST\", \"/online-evaluation-configs\", 200] }, () => exports.ListOnlineEvaluationConfigsRequest$, () => exports.ListOnlineEvaluationConfigsResponse$\n];\nexports.ListPolicies$ = [9, n0, _LP,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policies\", 200] }, () => exports.ListPoliciesRequest$, () => exports.ListPoliciesResponse$\n];\nexports.ListPolicyEngines$ = [9, n0, _LPE,\n { [_h]: [\"GET\", \"/policy-engines\", 200] }, () => exports.ListPolicyEnginesRequest$, () => exports.ListPolicyEnginesResponse$\n];\nexports.ListPolicyGenerationAssets$ = [9, n0, _LPGA,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policy-generations/{policyGenerationId}/assets\", 200] }, () => exports.ListPolicyGenerationAssetsRequest$, () => exports.ListPolicyGenerationAssetsResponse$\n];\nexports.ListPolicyGenerations$ = [9, n0, _LPG,\n { [_h]: [\"GET\", \"/policy-engines/{policyEngineId}/policy-generations\", 200] }, () => exports.ListPolicyGenerationsRequest$, () => exports.ListPolicyGenerationsResponse$\n];\nexports.ListRegistries$ = [9, n0, _LR,\n { [_h]: [\"GET\", \"/registries\", 200] }, () => exports.ListRegistriesRequest$, () => exports.ListRegistriesResponse$\n];\nexports.ListRegistryRecords$ = [9, n0, _LRRis,\n { [_h]: [\"GET\", \"/registries/{registryId}/records\", 200] }, () => exports.ListRegistryRecordsRequest$, () => exports.ListRegistryRecordsResponse$\n];\nexports.ListTagsForResource$ = [9, n0, _LTFR,\n { [_h]: [\"GET\", \"/tags/{resourceArn}\", 200] }, () => exports.ListTagsForResourceRequest$, () => exports.ListTagsForResourceResponse$\n];\nexports.ListWorkloadIdentities$ = [9, n0, _LWI,\n { [_h]: [\"POST\", \"/identities/ListWorkloadIdentities\", 200] }, () => exports.ListWorkloadIdentitiesRequest$, () => exports.ListWorkloadIdentitiesResponse$\n];\nexports.PutResourcePolicy$ = [9, n0, _PRP,\n { [_h]: [\"PUT\", \"/resourcepolicy/{resourceArn}\", 201] }, () => exports.PutResourcePolicyRequest$, () => exports.PutResourcePolicyResponse$\n];\nexports.SetTokenVaultCMK$ = [9, n0, _STVCMK,\n { [_h]: [\"POST\", \"/identities/set-token-vault-cmk\", 200] }, () => exports.SetTokenVaultCMKRequest$, () => exports.SetTokenVaultCMKResponse$\n];\nexports.StartPolicyGeneration$ = [9, n0, _SPG,\n { [_h]: [\"POST\", \"/policy-engines/{policyEngineId}/policy-generations\", 202] }, () => exports.StartPolicyGenerationRequest$, () => exports.StartPolicyGenerationResponse$\n];\nexports.SubmitRegistryRecordForApproval$ = [9, n0, _SRRFA,\n { [_h]: [\"POST\", \"/registries/{registryId}/records/{recordId}/submit-for-approval\", 202] }, () => exports.SubmitRegistryRecordForApprovalRequest$, () => exports.SubmitRegistryRecordForApprovalResponse$\n];\nexports.SynchronizeGatewayTargets$ = [9, n0, _SGT,\n { [_h]: [\"PUT\", \"/gateways/{gatewayIdentifier}/synchronizeTargets\", 202] }, () => exports.SynchronizeGatewayTargetsRequest$, () => exports.SynchronizeGatewayTargetsResponse$\n];\nexports.TagResource$ = [9, n0, _TR,\n { [_h]: [\"POST\", \"/tags/{resourceArn}\", 204] }, () => exports.TagResourceRequest$, () => exports.TagResourceResponse$\n];\nexports.UntagResource$ = [9, n0, _UR,\n { [_h]: [\"DELETE\", \"/tags/{resourceArn}\", 204] }, () => exports.UntagResourceRequest$, () => exports.UntagResourceResponse$\n];\nexports.UpdateAgentRuntime$ = [9, n0, _UAR,\n { [_h]: [\"PUT\", \"/runtimes/{agentRuntimeId}/\", 202] }, () => exports.UpdateAgentRuntimeRequest$, () => exports.UpdateAgentRuntimeResponse$\n];\nexports.UpdateAgentRuntimeEndpoint$ = [9, n0, _UARE,\n { [_h]: [\"PUT\", \"/runtimes/{agentRuntimeId}/runtime-endpoints/{endpointName}/\", 202] }, () => exports.UpdateAgentRuntimeEndpointRequest$, () => exports.UpdateAgentRuntimeEndpointResponse$\n];\nexports.UpdateApiKeyCredentialProvider$ = [9, n0, _UAKCP,\n { [_h]: [\"POST\", \"/identities/UpdateApiKeyCredentialProvider\", 200] }, () => exports.UpdateApiKeyCredentialProviderRequest$, () => exports.UpdateApiKeyCredentialProviderResponse$\n];\nexports.UpdateEvaluator$ = [9, n0, _UEp,\n { [_h]: [\"PUT\", \"/evaluators/{evaluatorId}\", 202] }, () => exports.UpdateEvaluatorRequest$, () => exports.UpdateEvaluatorResponse$\n];\nexports.UpdateGateway$ = [9, n0, _UG,\n { [_h]: [\"PUT\", \"/gateways/{gatewayIdentifier}/\", 202] }, () => exports.UpdateGatewayRequest$, () => exports.UpdateGatewayResponse$\n];\nexports.UpdateGatewayTarget$ = [9, n0, _UGT,\n { [_h]: [\"PUT\", \"/gateways/{gatewayIdentifier}/targets/{targetId}/\", 202] }, () => exports.UpdateGatewayTargetRequest$, () => exports.UpdateGatewayTargetResponse$\n];\nexports.UpdateMemory$ = [9, n0, _UM,\n { [_h]: [\"PUT\", \"/memories/{memoryId}/update\", 202] }, () => exports.UpdateMemoryInput$, () => exports.UpdateMemoryOutput$\n];\nexports.UpdateOauth2CredentialProvider$ = [9, n0, _UOCP,\n { [_h]: [\"POST\", \"/identities/UpdateOauth2CredentialProvider\", 200] }, () => exports.UpdateOauth2CredentialProviderRequest$, () => exports.UpdateOauth2CredentialProviderResponse$\n];\nexports.UpdateOnlineEvaluationConfig$ = [9, n0, _UOEC,\n { [_h]: [\"PUT\", \"/online-evaluation-configs/{onlineEvaluationConfigId}\", 202] }, () => exports.UpdateOnlineEvaluationConfigRequest$, () => exports.UpdateOnlineEvaluationConfigResponse$\n];\nexports.UpdatePolicy$ = [9, n0, _UP,\n { [_h]: [\"PATCH\", \"/policy-engines/{policyEngineId}/policies/{policyId}\", 202] }, () => exports.UpdatePolicyRequest$, () => exports.UpdatePolicyResponse$\n];\nexports.UpdatePolicyEngine$ = [9, n0, _UPE,\n { [_h]: [\"PATCH\", \"/policy-engines/{policyEngineId}\", 202] }, () => exports.UpdatePolicyEngineRequest$, () => exports.UpdatePolicyEngineResponse$\n];\nexports.UpdateRegistry$ = [9, n0, _URp,\n { [_h]: [\"PATCH\", \"/registries/{registryId}\", 202] }, () => exports.UpdateRegistryRequest$, () => exports.UpdateRegistryResponse$\n];\nexports.UpdateRegistryRecord$ = [9, n0, _URRpda,\n { [_h]: [\"PATCH\", \"/registries/{registryId}/records/{recordId}\", 202] }, () => exports.UpdateRegistryRecordRequest$, () => exports.UpdateRegistryRecordResponse$\n];\nexports.UpdateRegistryRecordStatus$ = [9, n0, _URRS,\n { [_h]: [\"PATCH\", \"/registries/{registryId}/records/{recordId}/status\", 202] }, () => exports.UpdateRegistryRecordStatusRequest$, () => exports.UpdateRegistryRecordStatusResponse$\n];\nexports.UpdateWorkloadIdentity$ = [9, n0, _UWI,\n { [_h]: [\"POST\", \"/identities/UpdateWorkloadIdentity\", 200] }, () => exports.UpdateWorkloadIdentityRequest$, () => exports.UpdateWorkloadIdentityResponse$\n];\n","'use strict';\n\nconst state = {\n warningEmitted: false,\n};\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 20) {\n state.warningEmitted = true;\n process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js ${version} in January 2026.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/c895JFp`);\n }\n};\n\nconst longPollMiddleware = () => (next, context) => async (args) => {\n context.__retryLongPoll = true;\n return next(args);\n};\nconst longPollMiddlewareOptions = {\n name: \"longPollMiddleware\",\n tags: [\"RETRY\"],\n step: \"initialize\",\n override: true,\n};\nconst getLongPollPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(longPollMiddleware(), longPollMiddlewareOptions);\n },\n});\n\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getLongPollPlugin = getLongPollPlugin;\nexports.setCredentialFeature = setCredentialFeature;\nexports.setFeature = setFeature;\nexports.setTokenFeature = setTokenFeature;\nexports.state = state;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar core = require('@smithy/core');\nvar propertyProvider = require('@smithy/property-provider');\nvar client = require('@aws-sdk/core/client');\nvar signatureV4 = require('@smithy/signature-v4');\n\nconst getDateHeader = (response) => protocolHttp.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n\nconst getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n\nconst isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n\nconst getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n\nconst throwSigningPropertyError = (name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n};\nconst validateSigningProperties = async (signingProperties) => {\n const context = throwSigningPropertyError(\"context\", signingProperties.context);\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName,\n };\n};\nclass AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: signingRegion,\n signingService: signingName,\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n}\nconst AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\nclass AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ??\n signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName,\n });\n return signedRequest;\n }\n}\n\nconst getArrayForCommaSeparatedString = (str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [];\n\nconst getBearerTokenEnvKey = (signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`;\n\nconst NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nconst NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nconst NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n environmentVariableSelector: (env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env)\n return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env))\n return undefined;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n },\n configFileSelector: (profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile))\n return undefined;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n },\n default: [],\n};\n\nconst resolveAwsSdkSigV4AConfig = (config) => {\n config.sigv4aSigningRegionSet = core.normalizeProvider(config.sigv4aSigningRegionSet);\n return config;\n};\nconst NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true,\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true,\n });\n },\n default: undefined,\n};\n\nconst resolveAwsSdkSigV4Config = (config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = undefined;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider,\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n const isCredentialObject = typeof inputCredentials === \"object\" && inputCredentials !== null;\n resolvedCredentials = async (options) => {\n const creds = await boundProvider(options);\n const attributedCreds = creds;\n if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) {\n return client.setCredentialFeature(attributedCreds, \"CREDENTIALS_CODE\", \"e\");\n }\n return attributedCreds;\n };\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n }\n else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true,\n });\n config.credentials = inputCredentials;\n const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n let signer;\n if (config.signer) {\n signer = core.normalizeProvider(config.signer);\n }\n else if (config.regionInfoProvider) {\n signer = () => core.normalizeProvider(config.region)()\n .then(async (region) => [\n (await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await core.normalizeProvider(config.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n };\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer,\n });\n return resolvedConfig;\n};\nconst resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, { credentials, credentialDefaultProvider, }) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = core.memoizeIdentityProvider(credentials, core.isIdentityExpired, core.doesIdentityRequireRefresh);\n }\n else {\n credentialsProvider = credentials;\n }\n }\n else {\n if (credentialDefaultProvider) {\n credentialsProvider = core.normalizeProvider(credentialDefaultProvider(Object.assign({}, config, {\n parentClientConfig: config,\n })));\n }\n else {\n credentialsProvider = async () => {\n throw new Error(\"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\");\n };\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config });\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n\nexports.AWSSDKSigV4Signer = AWSSDKSigV4Signer;\nexports.AwsSdkSigV4ASigner = AwsSdkSigV4ASigner;\nexports.AwsSdkSigV4Signer = AwsSdkSigV4Signer;\nexports.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = NODE_AUTH_SCHEME_PREFERENCE_OPTIONS;\nexports.NODE_SIGV4A_CONFIG_OPTIONS = NODE_SIGV4A_CONFIG_OPTIONS;\nexports.getBearerTokenEnvKey = getBearerTokenEnvKey;\nexports.resolveAWSSDKSigV4Config = resolveAWSSDKSigV4Config;\nexports.resolveAwsSdkSigV4AConfig = resolveAwsSdkSigV4AConfig;\nexports.resolveAwsSdkSigV4Config = resolveAwsSdkSigV4Config;\nexports.validateSigningProperties = validateSigningProperties;\n","'use strict';\n\nvar cbor = require('@smithy/core/cbor');\nvar schema = require('@smithy/core/schema');\nvar smithyClient = require('@smithy/smithy-client');\nvar protocols = require('@smithy/core/protocols');\nvar serde = require('@smithy/core/serde');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar xmlBuilder = require('@aws-sdk/xml-builder');\n\nclass ProtocolLib {\n queryCompat;\n errorRegistry;\n constructor(queryCompat = false) {\n this.queryCompat = queryCompat;\n }\n resolveRestContentType(defaultContentType, inputSchema) {\n const members = inputSchema.getMemberSchemas();\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n return mediaType;\n }\n else if (httpPayloadMember.isStringSchema()) {\n return \"text/plain\";\n }\n else if (httpPayloadMember.isBlobSchema()) {\n return \"application/octet-stream\";\n }\n else {\n return defaultContentType;\n }\n }\n else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n const noPrefixHeaders = httpPrefixHeaders === void 0;\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n });\n if (hasBody) {\n return defaultContentType;\n }\n }\n }\n async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [, errorName] = errorIdentifier.split(\"#\");\n }\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode < 500 ? \"client\" : \"server\",\n };\n if (!this.errorRegistry) {\n throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n }\n try {\n const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n this.errorRegistry.getSchema(errorIdentifier);\n return { errorSchema, errorMetadata };\n }\n catch (e) {\n dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const synthetic = this.errorRegistry;\n const baseExceptionSchema = synthetic.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n }\n const d = dataObject;\n const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n throw this.decorateServiceException(Object.assign(new Error(message), {\n name: errorName,\n }, errorMetadata), dataObject);\n }\n }\n compose(composite, errorIdentifier, defaultNamespace) {\n let namespace = defaultNamespace;\n if (errorIdentifier.includes(\"#\")) {\n [namespace] = errorIdentifier.split(\"#\");\n }\n const staticRegistry = schema.TypeRegistry.for(namespace);\n const defaultSyntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n composite.copyFrom(staticRegistry);\n composite.copyFrom(defaultSyntheticRegistry);\n this.errorRegistry = composite;\n }\n decorateServiceException(exception, additions = {}) {\n if (this.queryCompat) {\n const msg = exception.Message ?? additions.Message;\n const error = smithyClient.decorateServiceException(exception, additions);\n if (msg) {\n error.message = msg;\n }\n const errorObj = error.Error ?? {};\n errorObj.Type = error.Error?.Type;\n errorObj.Code = error.Error?.Code;\n errorObj.Message = error.Error?.message ?? error.Error?.Message ?? msg;\n error.Error = errorObj;\n const reqId = error.$metadata.requestId;\n if (reqId) {\n error.RequestId = reqId;\n }\n return error;\n }\n return smithyClient.decorateServiceException(exception, additions);\n }\n setQueryCompatError(output, response) {\n const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n if (output !== undefined && queryErrorHeader != null) {\n const [Code, Type] = queryErrorHeader.split(\";\");\n const keys = Object.keys(output);\n const Error = {\n Code,\n Type,\n };\n output.Code = Code;\n output.Type = Type;\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n Error[k === \"message\" ? \"Message\" : k] = output[k];\n }\n delete Error.__type;\n output.Error = Error;\n }\n }\n queryCompatOutput(queryCompatErrorData, errorData) {\n if (queryCompatErrorData.Error) {\n errorData.Error = queryCompatErrorData.Error;\n }\n if (queryCompatErrorData.Type) {\n errorData.Type = queryCompatErrorData.Type;\n }\n if (queryCompatErrorData.Code) {\n errorData.Code = queryCompatErrorData.Code;\n }\n }\n findQueryCompatibleError(registry, errorName) {\n try {\n return registry.getSchema(errorName);\n }\n catch (e) {\n return registry.find((schema$1) => schema.NormalizedSchema.of(schema$1).getMergedTraits().awsQueryError?.[0] === errorName);\n }\n }\n}\n\nclass AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {\n awsQueryCompatible;\n mixin;\n constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {\n super({ defaultNamespace, errorTypeRegistries });\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorName = (() => {\n const compatHeader = response.headers[\"x-amzn-query-error\"];\n if (compatHeader && this.awsQueryCompatible) {\n return compatHeader.split(\";\")[0];\n }\n return cbor.loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n })();\n this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nconst _toStr = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n};\nconst _toBool = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n};\nconst _toNum = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n};\n\nclass SerdeContextConfig {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass UnionSerde {\n from;\n to;\n keys;\n constructor(from, to) {\n this.from = from;\n this.to = to;\n const keys = Object.keys(this.from);\n const set = new Set(keys);\n set.delete(\"__type\");\n this.keys = set;\n }\n mark(key) {\n this.keys.delete(key);\n }\n hasUnknown() {\n return this.keys.size === 1 && Object.keys(this.to).length === 0;\n }\n writeUnknown() {\n if (this.hasUnknown()) {\n const k = this.keys.values().next().value;\n const v = this.from[k];\n this.to.$unknown = [k, v];\n }\n }\n}\n\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new serde.NumericValue(numericString, \"bigDecimal\");\n }\n else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n\nconst collectBodyString = (streamBody, context) => smithyClient.collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? utilUtf8.toUtf8)(body));\n\nconst parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n }\n catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n }\n return {};\n});\nconst parseJsonErrorBody = async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\nconst sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n};\n\nclass JsonShapeDeserializer extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n async read(schema, data) {\n return this._read(schema, typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext));\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema$1, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const union = ns.isUnionSchema();\n const out = {};\n let nameMap = void 0;\n const { jsonName } = this.settings;\n if (jsonName) {\n nameMap = {};\n }\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(record, out);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n let fromKey = memberName;\n if (jsonName) {\n fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;\n nameMap[fromKey] = memberName;\n }\n if (union) {\n unionSerde.mark(fromKey);\n }\n if (record[fromKey] != null) {\n out[memberName] = this._read(memberSchema, record[fromKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const t = jsonName ? nameMap[k] ?? k : k;\n if (!(t in out)) {\n out[t] = v;\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n for (const item of value) {\n out.push(this._read(listMember, item));\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n for (const _k in value) {\n out[_k] = this._read(mapMember, value[_k]);\n }\n return out;\n }\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return utilBase64.fromBase64(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n return value;\n }\n if (ns.isTimestampSchema() && value != null) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde.parseRfc3339DateTimeWithOffset(value);\n case 6:\n return serde.parseRfc7231DateTime(value);\n case 7:\n return serde.parseEpochTimestamp(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != undefined) {\n if (value instanceof serde.NumericValue) {\n return value;\n }\n const untyped = value;\n if (untyped.type === \"bigDecimal\" && \"string\" in untyped) {\n return new serde.NumericValue(untyped.string, untyped.type);\n }\n return new serde.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n return value;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n out[k] = v;\n }\n else {\n out[k] = this._read(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nconst NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nclass JsonReplacer {\n values = new Map();\n counter = 0;\n stage = 0;\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof serde.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + \"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n}\n\nclass JsonShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n useReplacer = false;\n rootSchema;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n this.rootSchema = schema.NormalizedSchema.of(schema$1);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n const { rootSchema, useReplacer } = this;\n this.rootSchema = undefined;\n this.useReplacer = false;\n if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {\n if (!useReplacer) {\n return JSON.stringify(this.buffer);\n }\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n writeDiscriminatedDocument(schema$1, value) {\n this.write(schema$1, value);\n if (typeof this.buffer === \"object\") {\n this.buffer.__type = schema.NormalizedSchema.of(schema$1).getName(true);\n }\n }\n _write(schema$1, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const out = {};\n const { jsonName } = this.settings;\n let nameMap = void 0;\n if (jsonName) {\n nameMap = {};\n }\n let outCount = 0;\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const serializableValue = this._write(memberSchema, record[memberName], ns);\n if (serializableValue !== undefined) {\n let targetKey = memberName;\n if (jsonName) {\n targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;\n nameMap[memberName] = targetKey;\n }\n out[targetKey] = serializableValue;\n outCount++;\n }\n }\n if (ns.isUnionSchema() && outCount === 0) {\n const { $unknown } = record;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n out[k] = this._write(15, v);\n }\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const targetKey = jsonName ? nameMap[k] ?? k : k;\n if (!(targetKey in out)) {\n out[targetKey] = this._write(15, v);\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const _k in value) {\n const _v = value[_k];\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n }\n if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case 6:\n return serde.dateToUtcString(value);\n case 7:\n return value.getTime() / 1000;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1000;\n }\n }\n if (value instanceof serde.NumericValue) {\n this.useReplacer = true;\n }\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isStringSchema()) {\n if (typeof value === \"undefined\" && ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (value != null && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n }\n return value;\n }\n if (typeof value === \"number\" && ns.isNumericSchema()) {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n return value;\n }\n if (typeof value === \"string\" && ns.isBlobSchema()) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (typeof value === \"bigint\") {\n this.useReplacer = true;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n this.useReplacer = true;\n out[k] = v;\n }\n else {\n out[k] = this._write(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nclass JsonCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsJsonRpcProtocol extends protocols.RpcProtocol {\n serializer;\n deserializer;\n serviceTarget;\n codec;\n mixin;\n awsQueryCompatible;\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n this.serviceTarget = serviceTarget;\n this.codec =\n jsonCodec ??\n new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n jsonName: false,\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = `application/x-amz-json-${this.getJsonRpcVersion()}`;\n request.headers[\"x-amz-target\"] = `${this.serviceTarget}.${operationSchema.name}`;\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = errorDeserializer.readObject(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nclass AwsJson1_0Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.0\";\n }\n}\n\nclass AwsJson1_1Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.1\";\n }\n}\n\nclass AwsRestJsonProtocol extends protocols.HttpBindingProtocol {\n serializer;\n deserializer;\n codec;\n mixin = new ProtocolLib();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n httpBindings: true,\n jsonName: true,\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (request.body == null && request.headers[\"content-type\"] === this.getDefaultContentType()) {\n request.body = \"{}\";\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const output = await super.deserializeResponse(operationSchema, context, response);\n const outputSchema = schema.NormalizedSchema.of(operationSchema.output);\n for (const [name, member] of outputSchema.structIterator()) {\n if (member.getMemberTraits().httpPayload && !(name in output)) {\n output[name] = null;\n }\n }\n return output;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = errorDeserializer.readObject(member, dataObject[target]);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/json\";\n }\n}\n\nconst awsExpectUnion = (value) => {\n if (value == null) {\n return undefined;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return smithyClient.expectUnion(value);\n};\n\nclass XmlShapeDeserializer extends SerdeContextConfig {\n settings;\n stringDeserializer;\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new protocols.FromStringShapeDeserializer(settings);\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n read(schema$1, bytes, key) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() &&\n ns.isMemberSchema() &&\n !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n }\n else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema$1, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isUnitSchema()) {\n return;\n }\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n if (source == null) {\n return buffer;\n }\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n buffer.push(this.readSchema(listValue, v));\n }\n return buffer;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n }\n else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value = entry[valueProperty];\n buffer[key] = this.readSchema(memberNs, value);\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n const union = ns.isUnionSchema();\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(value, buffer);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload\n ? memberSchema.getMemberTraits().xmlName ?? memberName\n : memberTraits.xmlName ?? memberSchema.getName();\n if (union) {\n unionSerde.mark(xmlObjectKey);\n }\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(xml);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n }\n}\n\nclass QueryShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value, prefix = \"\") {\n if (this.buffer === undefined) {\n this.buffer = \"\";\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value));\n }\n }\n else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n else if (ns.isIdempotencyToken()) {\n this.writeKey(prefix);\n this.writeValue(serde.generateIdempotencyToken());\n }\n }\n else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof serde.NumericValue ? value.string : String(value));\n }\n }\n else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case 6:\n this.writeValue(smithyClient.dateToUtcString(value));\n break;\n case 7:\n this.writeValue(String(value.getTime() / 1000));\n break;\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n if (Array.isArray(value)) {\n this.write(64 | 15, value, prefix);\n }\n else if (value instanceof Date) {\n this.write(4, value, prefix);\n }\n else if (value instanceof Uint8Array) {\n this.write(21, value, prefix);\n }\n else if (value && typeof value === \"object\") {\n this.write(128 | 15, value, prefix);\n }\n else {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n }\n else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(\"member\", traits.xmlName, traits.ec2QueryName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n }\n else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const k in value) {\n const v = value[k];\n if (v == null) {\n continue;\n }\n const keyTraits = keySchema.getMergedTraits();\n const keySuffix = this.getKey(\"key\", keyTraits.xmlName, keyTraits.ec2QueryName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valTraits = memberSchema.getMergedTraits();\n const valueSuffix = this.getKey(\"value\", valTraits.xmlName, valTraits.ec2QueryName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n }\n else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n let didWriteMember = false;\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null && !member.isIdempotencyToken()) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(memberName, traits.xmlName, traits.ec2QueryName, \"struct\");\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n didWriteMember = true;\n }\n if (!didWriteMember && ns.isUnionSchema()) {\n const { $unknown } = value;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n const key = `${prefix}${k}`;\n this.write(15, v, key);\n }\n }\n }\n }\n else if (ns.isUnitSchema()) ;\n else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === undefined) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName, ec2QueryName, keySource) {\n const { ec2, capitalizeKeys } = this.settings;\n if (ec2 && ec2QueryName) {\n return ec2QueryName;\n }\n const key = xmlName ?? memberName;\n if (capitalizeKeys && keySource === \"struct\") {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${protocols.extendedEncodeURIComponent(key)}=`;\n }\n writeValue(value) {\n this.buffer += protocols.extendedEncodeURIComponent(value);\n }\n}\n\nclass AwsQueryProtocol extends protocols.RpcProtocol {\n options;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace,\n errorTypeRegistries: options.errorTypeRegistries,\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true,\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = \"application/x-www-form-urlencoded\";\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n const action = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n request.body = `Action=${action}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const shortName = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? shortName + \"Result\" : undefined;\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const errorData = this.loadQueryError(dataObject) ?? {};\n const message = this.loadQueryErrorMessage(dataObject);\n errorData.message = message;\n errorData.Error = {\n Type: errorData.Type,\n Code: errorData.Code,\n Message: message,\n };\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, errorData, metadata, this.mixin.findQueryCompatibleError);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {\n Type: errorData.Error.Type,\n Code: errorData.Error.Code,\n Error: errorData.Error,\n };\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorData[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== undefined) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n getDefaultContentType() {\n return \"application/x-www-form-urlencoded\";\n }\n}\n\nclass AwsEc2QueryProtocol extends AwsQueryProtocol {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false,\n ec2: true,\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n getShapeId() {\n return \"aws.protocols#ec2Query\";\n }\n useNestedResult() {\n return false;\n }\n}\n\nconst parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(encoded);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseXmlErrorBody = async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Error?.Code !== undefined) {\n return data.Error.Code;\n }\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n\nclass XmlShapeSerializer extends SerdeContextConfig {\n settings;\n stringBuffer;\n byteBuffer;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n }\n else if (ns.isBlobSchema()) {\n this.byteBuffer =\n \"byteLength\" in value\n ? value\n : (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n else {\n this.buffer = this.writeStruct(ns, value, undefined);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== undefined) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== undefined) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload\n ? ns.getMemberTraits().xmlName ?? ns.getMemberName()\n : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`);\n }\n const structXmlNode = xmlBuilder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null || memberSchema.isIdempotencyToken()) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val));\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n }\n else {\n const memberNode = xmlBuilder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n const { $unknown } = value;\n if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) {\n const [k, v] = $unknown;\n const node = xmlBuilder.XmlNode.of(k);\n if (typeof v !== \"string\") {\n if (value instanceof xmlBuilder.XmlNode || value instanceof xmlBuilder.XmlText) {\n structXmlNode.addChildNode(value);\n }\n else {\n throw new Error(`@aws-sdk - $unknown union member in XML requires ` +\n `value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`);\n }\n }\n this.writeSimpleInto(0, v, node, xmlns);\n structXmlNode.addChildNode(node);\n }\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`);\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = (container, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container, xmlns);\n }\n else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container, xmlns);\n }\n else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"));\n }\n else {\n const listItemNode = xmlBuilder.XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\");\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container.addChildNode(listItemNode);\n }\n };\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n }\n else {\n const listNode = xmlBuilder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`);\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = (entry, key, val) => {\n const keyNode = xmlBuilder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = xmlBuilder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n }\n else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n }\n else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n }\n else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n };\n if (flat) {\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n }\n else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = schema.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n else if (ns.isTimestampSchema() && value instanceof Date) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n case 7:\n nodeContents = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n }\n }\n else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof serde.NumericValue) {\n return value.string;\n }\n return String(value);\n }\n else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\");\n }\n else {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`);\n }\n }\n if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (ns.isStringSchema()) {\n if (value === undefined && ns.isIdempotencyToken()) {\n nodeContents = serde.generateIdempotencyToken();\n }\n else {\n nodeContents = String(value);\n }\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = schema.NormalizedSchema.of(_schema);\n const content = new xmlBuilder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n}\n\nclass XmlCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsRestXmlProtocol extends protocols.HttpBindingProtocol {\n codec;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n this.compositeErrorRegistry;\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (typeof request.body === \"string\" &&\n request.headers[\"content-type\"] === this.getDefaultContentType() &&\n !request.body.startsWith(\"' + request.body;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n if (dataObject.Error && typeof dataObject.Error === \"object\") {\n for (const key of Object.keys(dataObject.Error)) {\n dataObject[key] = dataObject.Error[key];\n if (key.toLowerCase() === \"message\") {\n dataObject.message = dataObject.Error[key];\n }\n }\n }\n if (dataObject.RequestId && !metadata.requestId) {\n metadata.requestId = dataObject.RequestId;\n }\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ??\n dataObject.Error?.Message ??\n dataObject.message ??\n dataObject.Message ??\n \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = errorDeserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/xml\";\n }\n hasUnstructuredPayloadBinding(ns) {\n for (const [, member] of ns.structIterator()) {\n if (member.getMergedTraits().httpPayload) {\n return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema());\n }\n }\n return false;\n }\n}\n\nexports.AwsEc2QueryProtocol = AwsEc2QueryProtocol;\nexports.AwsJson1_0Protocol = AwsJson1_0Protocol;\nexports.AwsJson1_1Protocol = AwsJson1_1Protocol;\nexports.AwsJsonRpcProtocol = AwsJsonRpcProtocol;\nexports.AwsQueryProtocol = AwsQueryProtocol;\nexports.AwsRestJsonProtocol = AwsRestJsonProtocol;\nexports.AwsRestXmlProtocol = AwsRestXmlProtocol;\nexports.AwsSmithyRpcV2CborProtocol = AwsSmithyRpcV2CborProtocol;\nexports.JsonCodec = JsonCodec;\nexports.JsonShapeDeserializer = JsonShapeDeserializer;\nexports.JsonShapeSerializer = JsonShapeSerializer;\nexports.QueryShapeSerializer = QueryShapeSerializer;\nexports.XmlCodec = XmlCodec;\nexports.XmlShapeDeserializer = XmlShapeDeserializer;\nexports.XmlShapeSerializer = XmlShapeSerializer;\nexports._toBool = _toBool;\nexports._toNum = _toNum;\nexports._toStr = _toStr;\nexports.awsExpectUnion = awsExpectUnion;\nexports.loadRestJsonErrorCode = loadRestJsonErrorCode;\nexports.loadRestXmlErrorCode = loadRestXmlErrorCode;\nexports.parseJsonBody = parseJsonBody;\nexports.parseJsonErrorBody = parseJsonErrorBody;\nexports.parseXmlBody = parseXmlBody;\nexports.parseXmlErrorBody = parseXmlErrorBody;\n","'use strict';\n\nvar client = require('@aws-sdk/core/client');\nvar propertyProvider = require('@smithy/property-provider');\n\nconst ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nconst ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nconst ENV_SESSION = \"AWS_SESSION_TOKEN\";\nconst ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nconst ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nconst ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nconst fromEnv = (init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n client.setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new propertyProvider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n};\n\nexports.ENV_ACCOUNT_ID = ENV_ACCOUNT_ID;\nexports.ENV_CREDENTIAL_SCOPE = ENV_CREDENTIAL_SCOPE;\nexports.ENV_EXPIRATION = ENV_EXPIRATION;\nexports.ENV_KEY = ENV_KEY;\nexports.ENV_SECRET = ENV_SECRET;\nexports.ENV_SESSION = ENV_SESSION;\nexports.fromEnv = fromEnv;\n","'use strict';\n\nvar credentialProviderEnv = require('@aws-sdk/credential-provider-env');\nvar propertyProvider = require('@smithy/property-provider');\nvar sharedIniFileLoader = require('@smithy/shared-ini-file-loader');\n\nconst ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import('@smithy/credential-provider-imds');\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import('@aws-sdk/credential-provider-http');\n return propertyProvider.chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new propertyProvider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n\nfunction memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nconst internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nlet multipleCredentialSourceWarningEmitted = false;\nconst defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[sharedIniFileLoader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[credentialProviderEnv.ENV_KEY] && process.env[credentialProviderEnv.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new propertyProvider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return credentialProviderEnv.fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new propertyProvider.CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import('@aws-sdk/credential-provider-sso');\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import('@aws-sdk/credential-provider-ini');\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import('@aws-sdk/credential-provider-process');\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import('@aws-sdk/credential-provider-web-identity');\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new propertyProvider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nconst credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nconst credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n\nexports.credentialsTreatedAsExpired = credentialsTreatedAsExpired;\nexports.credentialsWillNeedRefresh = credentialsWillNeedRefresh;\nexports.defaultProvider = defaultProvider;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nconst hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nconst getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n\nexports.getHostHeaderPlugin = getHostHeaderPlugin;\nexports.hostHeaderMiddleware = hostHeaderMiddleware;\nexports.hostHeaderMiddlewareOptions = hostHeaderMiddlewareOptions;\nexports.resolveHostHeaderConfig = resolveHostHeaderConfig;\n","'use strict';\n\nconst loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nconst loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nconst getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n\nexports.getLoggerPlugin = getLoggerPlugin;\nexports.loggerMiddleware = loggerMiddleware;\nexports.loggerMiddlewareOptions = loggerMiddlewareOptions;\n","'use strict';\n\nvar recursionDetectionMiddleware = require('./recursionDetectionMiddleware');\n\nconst recursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\n\nconst getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware.recursionDetectionMiddleware(), recursionDetectionMiddlewareOptions);\n },\n});\n\nexports.getRecursionDetectionPlugin = getRecursionDetectionPlugin;\nObject.prototype.hasOwnProperty.call(recursionDetectionMiddleware, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: recursionDetectionMiddleware['__proto__']\n });\n\nObject.keys(recursionDetectionMiddleware).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = recursionDetectionMiddleware[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recursionDetectionMiddleware = void 0;\nconst lambda_invoke_store_1 = require(\"@aws/lambda-invoke-store\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nconst recursionDetectionMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ??\n TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceIdFromEnv = process.env[ENV_TRACE_ID];\n const invokeStore = await lambda_invoke_store_1.InvokeStore.getInstanceAsync();\n const traceIdFromInvokeStore = invokeStore?.getXRayTraceId();\n const traceId = traceIdFromInvokeStore ?? traceIdFromEnv;\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.recursionDetectionMiddleware = recursionDetectionMiddleware;\n","'use strict';\n\nvar core = require('@smithy/core');\nvar utilEndpoints = require('@aws-sdk/util-endpoints');\nvar protocolHttp = require('@smithy/protocol-http');\nvar client = require('@aws-sdk/core/client');\nvar utilRetry = require('@smithy/util-retry');\n\nconst DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n if (appId === undefined) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = core.normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n }\n else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n },\n });\n}\n\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n client.setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.mode === \"string\") {\n switch (retryStrategy.mode) {\n case utilRetry.RETRY_MODES.ADAPTIVE:\n client.setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n break;\n case utilRetry.RETRY_MODES.STANDARD:\n client.setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n break;\n }\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n client.setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n client.setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n client.setFeature(context, key, value);\n }\n }\n}\n\nconst USER_AGENT = \"user-agent\";\nconst X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nconst SPACE = \" \";\nconst UA_NAME_SEPARATOR = \"/\";\nconst UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w]/g;\nconst UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w#]/g;\nconst UA_ESCAPE_CHAR = \"-\";\n\nconst BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n }\n else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!protocolHttp.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`]));\n }\n const prefix = utilEndpoints.getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nconst getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nconst getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n\nexports.DEFAULT_UA_APP_ID = DEFAULT_UA_APP_ID;\nexports.getUserAgentMiddlewareOptions = getUserAgentMiddlewareOptions;\nexports.getUserAgentPlugin = getUserAgentPlugin;\nexports.resolveUserAgentConfig = resolveUserAgentConfig;\nexports.userAgentMiddleware = userAgentMiddleware;\n","'use strict';\n\nvar stsRegionDefaultResolver = require('./regionConfig/stsRegionDefaultResolver');\nvar configResolver = require('@smithy/config-resolver');\n\nconst getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n },\n };\n};\nconst resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = configResolver.NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = configResolver.NODE_REGION_CONFIG_OPTIONS;\nexports.REGION_ENV_NAME = configResolver.REGION_ENV_NAME;\nexports.REGION_INI_NAME = configResolver.REGION_INI_NAME;\nexports.resolveRegionConfig = configResolver.resolveRegionConfig;\nexports.getAwsRegionExtensionConfiguration = getAwsRegionExtensionConfiguration;\nexports.resolveAwsRegionExtensionConfiguration = resolveAwsRegionExtensionConfiguration;\nObject.prototype.hasOwnProperty.call(stsRegionDefaultResolver, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: stsRegionDefaultResolver['__proto__']\n });\n\nObject.keys(stsRegionDefaultResolver).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = stsRegionDefaultResolver[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.warning = void 0;\nexports.stsRegionDefaultResolver = stsRegionDefaultResolver;\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nfunction stsRegionDefaultResolver(loaderConfig = {}) {\n return (0, node_config_provider_1.loadConfig)({\n ...config_resolver_1.NODE_REGION_CONFIG_OPTIONS,\n async default() {\n if (!exports.warning.silence) {\n console.warn(\"@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly.\");\n }\n return \"us-east-1\";\n },\n }, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig });\n}\nexports.warning = {\n silence: false,\n};\n","'use strict';\n\nvar utilEndpoints = require('@smithy/util-endpoints');\nvar urlParser = require('@smithy/url-parser');\n\nconst isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!utilEndpoints.isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (utilEndpoints.isIpAddress(value)) {\n return false;\n }\n return true;\n};\n\nconst ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nconst parseArn = (value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition,\n service,\n region,\n accountId,\n resourceId,\n };\n};\n\nvar partitions = [\n\t{\n\t\tid: \"aws\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-east-1\",\n\t\t\tname: \"aws\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"af-south-1\": {\n\t\t\t\tdescription: \"Africa (Cape Town)\"\n\t\t\t},\n\t\t\t\"ap-east-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Hong Kong)\"\n\t\t\t},\n\t\t\t\"ap-east-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Taipei)\"\n\t\t\t},\n\t\t\t\"ap-northeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Tokyo)\"\n\t\t\t},\n\t\t\t\"ap-northeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Seoul)\"\n\t\t\t},\n\t\t\t\"ap-northeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Osaka)\"\n\t\t\t},\n\t\t\t\"ap-south-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Mumbai)\"\n\t\t\t},\n\t\t\t\"ap-south-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Hyderabad)\"\n\t\t\t},\n\t\t\t\"ap-southeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Singapore)\"\n\t\t\t},\n\t\t\t\"ap-southeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Sydney)\"\n\t\t\t},\n\t\t\t\"ap-southeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Jakarta)\"\n\t\t\t},\n\t\t\t\"ap-southeast-4\": {\n\t\t\t\tdescription: \"Asia Pacific (Melbourne)\"\n\t\t\t},\n\t\t\t\"ap-southeast-5\": {\n\t\t\t\tdescription: \"Asia Pacific (Malaysia)\"\n\t\t\t},\n\t\t\t\"ap-southeast-6\": {\n\t\t\t\tdescription: \"Asia Pacific (New Zealand)\"\n\t\t\t},\n\t\t\t\"ap-southeast-7\": {\n\t\t\t\tdescription: \"Asia Pacific (Thailand)\"\n\t\t\t},\n\t\t\t\"aws-global\": {\n\t\t\t\tdescription: \"aws global region\"\n\t\t\t},\n\t\t\t\"ca-central-1\": {\n\t\t\t\tdescription: \"Canada (Central)\"\n\t\t\t},\n\t\t\t\"ca-west-1\": {\n\t\t\t\tdescription: \"Canada West (Calgary)\"\n\t\t\t},\n\t\t\t\"eu-central-1\": {\n\t\t\t\tdescription: \"Europe (Frankfurt)\"\n\t\t\t},\n\t\t\t\"eu-central-2\": {\n\t\t\t\tdescription: \"Europe (Zurich)\"\n\t\t\t},\n\t\t\t\"eu-north-1\": {\n\t\t\t\tdescription: \"Europe (Stockholm)\"\n\t\t\t},\n\t\t\t\"eu-south-1\": {\n\t\t\t\tdescription: \"Europe (Milan)\"\n\t\t\t},\n\t\t\t\"eu-south-2\": {\n\t\t\t\tdescription: \"Europe (Spain)\"\n\t\t\t},\n\t\t\t\"eu-west-1\": {\n\t\t\t\tdescription: \"Europe (Ireland)\"\n\t\t\t},\n\t\t\t\"eu-west-2\": {\n\t\t\t\tdescription: \"Europe (London)\"\n\t\t\t},\n\t\t\t\"eu-west-3\": {\n\t\t\t\tdescription: \"Europe (Paris)\"\n\t\t\t},\n\t\t\t\"il-central-1\": {\n\t\t\t\tdescription: \"Israel (Tel Aviv)\"\n\t\t\t},\n\t\t\t\"me-central-1\": {\n\t\t\t\tdescription: \"Middle East (UAE)\"\n\t\t\t},\n\t\t\t\"me-south-1\": {\n\t\t\t\tdescription: \"Middle East (Bahrain)\"\n\t\t\t},\n\t\t\t\"mx-central-1\": {\n\t\t\t\tdescription: \"Mexico (Central)\"\n\t\t\t},\n\t\t\t\"sa-east-1\": {\n\t\t\t\tdescription: \"South America (Sao Paulo)\"\n\t\t\t},\n\t\t\t\"us-east-1\": {\n\t\t\t\tdescription: \"US East (N. Virginia)\"\n\t\t\t},\n\t\t\t\"us-east-2\": {\n\t\t\t\tdescription: \"US East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-west-1\": {\n\t\t\t\tdescription: \"US West (N. California)\"\n\t\t\t},\n\t\t\t\"us-west-2\": {\n\t\t\t\tdescription: \"US West (Oregon)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-cn\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com.cn\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n\t\t\timplicitGlobalRegion: \"cn-northwest-1\",\n\t\t\tname: \"aws-cn\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-cn-global\": {\n\t\t\t\tdescription: \"aws-cn global region\"\n\t\t\t},\n\t\t\t\"cn-north-1\": {\n\t\t\t\tdescription: \"China (Beijing)\"\n\t\t\t},\n\t\t\t\"cn-northwest-1\": {\n\t\t\t\tdescription: \"China (Ningxia)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-eusc\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.eu\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.eu\",\n\t\t\timplicitGlobalRegion: \"eusc-de-east-1\",\n\t\t\tname: \"aws-eusc\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"eusc-de-east-1\": {\n\t\t\t\tdescription: \"AWS European Sovereign Cloud (Germany)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"c2s.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-iso-east-1\",\n\t\t\tname: \"aws-iso\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-global\": {\n\t\t\t\tdescription: \"aws-iso global region\"\n\t\t\t},\n\t\t\t\"us-iso-east-1\": {\n\t\t\t\tdescription: \"US ISO East\"\n\t\t\t},\n\t\t\t\"us-iso-west-1\": {\n\t\t\t\tdescription: \"US ISO WEST\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-b\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"sc2s.sgov.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.scloud\",\n\t\t\timplicitGlobalRegion: \"us-isob-east-1\",\n\t\t\tname: \"aws-iso-b\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-b-global\": {\n\t\t\t\tdescription: \"aws-iso-b global region\"\n\t\t\t},\n\t\t\t\"us-isob-east-1\": {\n\t\t\t\tdescription: \"US ISOB East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-isob-west-1\": {\n\t\t\t\tdescription: \"US ISOB West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-e\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"cloud.adc-e.uk\",\n\t\t\tdualStackDnsSuffix: \"api.cloud-aws.adc-e.uk\",\n\t\t\timplicitGlobalRegion: \"eu-isoe-west-1\",\n\t\t\tname: \"aws-iso-e\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-e-global\": {\n\t\t\t\tdescription: \"aws-iso-e global region\"\n\t\t\t},\n\t\t\t\"eu-isoe-west-1\": {\n\t\t\t\tdescription: \"EU ISOE West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-f\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"csp.hci.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.hci.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-isof-south-1\",\n\t\t\tname: \"aws-iso-f\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-f-global\": {\n\t\t\t\tdescription: \"aws-iso-f global region\"\n\t\t\t},\n\t\t\t\"us-isof-east-1\": {\n\t\t\t\tdescription: \"US ISOF EAST\"\n\t\t\t},\n\t\t\t\"us-isof-south-1\": {\n\t\t\t\tdescription: \"US ISOF SOUTH\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-us-gov\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-gov-west-1\",\n\t\t\tname: \"aws-us-gov\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-us-gov-global\": {\n\t\t\t\tdescription: \"aws-us-gov global region\"\n\t\t\t},\n\t\t\t\"us-gov-east-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-East)\"\n\t\t\t},\n\t\t\t\"us-gov-west-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-West)\"\n\t\t\t}\n\t\t}\n\t}\n];\nvar version = \"1.1\";\nvar partitionsInfo = {\n\tpartitions: partitions,\n\tversion: version\n};\n\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nconst partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nconst setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nconst useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nconst getUserAgentPrefix = () => selectedUserAgentPrefix;\n\nconst awsEndpointFunctions = {\n isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n parseArn: parseArn,\n partition: partition,\n};\nutilEndpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\nconst resolveDefaultAwsRegionalEndpointsConfig = (input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n return toEndpointV1(input.endpointProvider({\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\"\n ? await input.useDualstackEndpoint()\n : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: undefined,\n }, { logger: input.logger }));\n };\n }\n return input;\n};\nconst toEndpointV1 = (endpoint) => urlParser.parseUrl(endpoint.url);\n\nexports.EndpointError = utilEndpoints.EndpointError;\nexports.isIpAddress = utilEndpoints.isIpAddress;\nexports.resolveEndpoint = utilEndpoints.resolveEndpoint;\nexports.awsEndpointFunctions = awsEndpointFunctions;\nexports.getUserAgentPrefix = getUserAgentPrefix;\nexports.partition = partition;\nexports.resolveDefaultAwsRegionalEndpointsConfig = resolveDefaultAwsRegionalEndpointsConfig;\nexports.setPartitionInfo = setPartitionInfo;\nexports.toEndpointV1 = toEndpointV1;\nexports.useDefaultPartitionInfo = useDefaultPartitionInfo;\n","'use strict';\n\nvar node_os = require('node:os');\nvar node_process = require('node:process');\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar promises = require('node:fs/promises');\nvar node_path = require('node:path');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\n\nconst getRuntimeUserAgentPair = () => {\n const runtimesToCheck = [\"deno\", \"bun\", \"llrt\"];\n for (const runtime of runtimesToCheck) {\n if (node_process.versions[runtime]) {\n return [`md/${runtime}`, node_process.versions[runtime]];\n }\n }\n return [\"md/nodejs\", node_process.versions.node];\n};\n\nconst getNodeModulesParentDirs = (dirname) => {\n const cwd = process.cwd();\n if (!dirname) {\n return [cwd];\n }\n const normalizedPath = node_path.normalize(dirname);\n const parts = normalizedPath.split(node_path.sep);\n const nodeModulesIndex = parts.indexOf(\"node_modules\");\n const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : normalizedPath;\n if (cwd === parentDir) {\n return [cwd];\n }\n return [parentDir, cwd];\n};\n\nconst SEMVER_REGEX = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$/;\nconst getSanitizedTypeScriptVersion = (version = \"\") => {\n const match = version.match(SEMVER_REGEX);\n if (!match) {\n return undefined;\n }\n const [major, minor, patch, prerelease] = [match[1], match[2], match[3], match[4]];\n return prerelease ? `${major}.${minor}.${patch}-${prerelease}` : `${major}.${minor}.${patch}`;\n};\n\nconst ALLOWED_PREFIXES = [\"^\", \"~\", \">=\", \"<=\", \">\", \"<\"];\nconst ALLOWED_DIST_TAGS = [\"latest\", \"beta\", \"dev\", \"rc\", \"insiders\", \"next\"];\nconst getSanitizedDevTypeScriptVersion = (version = \"\") => {\n if (ALLOWED_DIST_TAGS.includes(version)) {\n return version;\n }\n const prefix = ALLOWED_PREFIXES.find((p) => version.startsWith(p)) ?? \"\";\n const sanitizedTypeScriptVersion = getSanitizedTypeScriptVersion(version.slice(prefix.length));\n if (!sanitizedTypeScriptVersion) {\n return undefined;\n }\n return `${prefix}${sanitizedTypeScriptVersion}`;\n};\n\nlet tscVersion;\nconst TS_PACKAGE_JSON = node_path.join(\"node_modules\", \"typescript\", \"package.json\");\nconst getTypeScriptUserAgentPair = async () => {\n if (tscVersion === null) {\n return undefined;\n }\n else if (typeof tscVersion === \"string\") {\n return [\"md/tsc\", tscVersion];\n }\n let isTypeScriptDetectionDisabled = false;\n try {\n isTypeScriptDetectionDisabled =\n utilConfigProvider.booleanSelector(process.env, \"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED\", utilConfigProvider.SelectorType.ENV) || false;\n }\n catch { }\n if (isTypeScriptDetectionDisabled) {\n tscVersion = null;\n return undefined;\n }\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : undefined;\n const nodeModulesParentDirs = getNodeModulesParentDirs(dirname);\n let versionFromApp;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const appPackageJsonPath = node_path.join(nodeModulesParentDir, \"package.json\");\n const packageJson = await promises.readFile(appPackageJsonPath, \"utf-8\");\n const { dependencies, devDependencies } = JSON.parse(packageJson);\n const version = devDependencies?.typescript ?? dependencies?.typescript;\n if (typeof version !== \"string\") {\n continue;\n }\n versionFromApp = version;\n break;\n }\n catch {\n }\n }\n if (!versionFromApp) {\n tscVersion = null;\n return undefined;\n }\n let versionFromNodeModules;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const tsPackageJsonPath = node_path.join(nodeModulesParentDir, TS_PACKAGE_JSON);\n const packageJson = await promises.readFile(tsPackageJsonPath, \"utf-8\");\n const { version } = JSON.parse(packageJson);\n const sanitizedVersion = getSanitizedTypeScriptVersion(version);\n if (typeof sanitizedVersion !== \"string\") {\n continue;\n }\n versionFromNodeModules = sanitizedVersion;\n break;\n }\n catch {\n }\n }\n if (versionFromNodeModules) {\n tscVersion = versionFromNodeModules;\n return [\"md/tsc\", tscVersion];\n }\n const sanitizedVersion = getSanitizedDevTypeScriptVersion(versionFromApp);\n if (typeof sanitizedVersion !== \"string\") {\n tscVersion = null;\n return undefined;\n }\n tscVersion = `dev_${sanitizedVersion}`;\n return [\"md/tsc\", tscVersion];\n};\n\nconst crtAvailability = {\n isCrtAvailable: false,\n};\n\nconst isCrtAvailable = () => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n};\n\nconst createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => {\n const runtimeUserAgentPair = getRuntimeUserAgentPair();\n return async (config) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.1\"],\n [`os/${node_os.platform()}`, node_os.release()],\n [\"lang/js\"],\n runtimeUserAgentPair,\n ];\n const typescriptUserAgentPair = await getTypeScriptUserAgentPair();\n if (typescriptUserAgentPair) {\n sections.push(typescriptUserAgentPair);\n }\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (node_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${node_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n};\nconst defaultUserAgent = createDefaultUserAgentProvider;\n\nconst UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nconst UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nconst UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nconst NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED],\n default: middlewareUserAgent.DEFAULT_UA_APP_ID,\n};\n\nexports.NODE_APP_ID_CONFIG_OPTIONS = NODE_APP_ID_CONFIG_OPTIONS;\nexports.UA_APP_ID_ENV_NAME = UA_APP_ID_ENV_NAME;\nexports.UA_APP_ID_INI_NAME = UA_APP_ID_INI_NAME;\nexports.createDefaultUserAgentProvider = createDefaultUserAgentProvider;\nexports.crtAvailability = crtAvailability;\nexports.defaultUserAgent = defaultUserAgent;\n","'use strict';\n\nvar xmlParser = require('./xml-parser');\n\nconst ATTR_ESCAPE_RE = /[&<>\"]/g;\nconst ATTR_ESCAPE_MAP = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n};\nfunction escapeAttribute(value) {\n return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);\n}\n\nconst ELEMENT_ESCAPE_RE = /[&\"'<>\\r\\n\\u0085\\u2028]/g;\nconst ELEMENT_ESCAPE_MAP = {\n \"&\": \"&\",\n '\"': \""\",\n \"'\": \"'\",\n \"<\": \"<\",\n \">\": \">\",\n \"\\r\": \" \",\n \"\\n\": \" \",\n \"\\u0085\": \"…\",\n \"\\u2028\": \"
\",\n};\nfunction escapeElement(value) {\n return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);\n}\n\nclass XmlText {\n value;\n constructor(value) {\n this.value = value;\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n}\n\nclass XmlNode {\n name;\n children;\n attributes = {};\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n n(name) {\n this.name = name;\n return this;\n }\n c(child) {\n this.children.push(child);\n return this;\n }\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`);\n }\n}\n\nexports.parseXML = xmlParser.parseXML;\nexports.XmlNode = XmlNode;\nexports.XmlText = XmlText;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseXML = parseXML;\nconst fast_xml_parser_1 = require(\"fast-xml-parser\");\nconst parser = new fast_xml_parser_1.XMLParser({\n attributeNamePrefix: \"\",\n processEntities: {\n enabled: true,\n maxTotalExpansions: Infinity,\n },\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n maxNestedTags: Infinity,\n});\nparser.addEntity(\"#xD\", \"\\r\");\nparser.addEntity(\"#10\", \"\\n\");\nfunction parseXML(xmlString) {\n return parser.parse(xmlString, true);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCloudControlHttpAuthSchemeProvider = exports.defaultCloudControlHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCloudControlHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCloudControlHttpAuthSchemeParametersProvider = defaultCloudControlHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cloudcontrolapi\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCloudControlHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCloudControlHttpAuthSchemeProvider = defaultCloudControlHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://cloudcontrolapi-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://cloudcontrolapi-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://cloudcontrolapi.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://cloudcontrolapi.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AlreadyExistsException: () => AlreadyExistsException,\n CancelResourceRequestCommand: () => CancelResourceRequestCommand,\n CancelResourceRequestOutputFilterSensitiveLog: () => CancelResourceRequestOutputFilterSensitiveLog,\n ClientTokenConflictException: () => ClientTokenConflictException,\n CloudControl: () => CloudControl,\n CloudControlClient: () => CloudControlClient,\n CloudControlServiceException: () => CloudControlServiceException,\n ConcurrentModificationException: () => ConcurrentModificationException,\n ConcurrentOperationException: () => ConcurrentOperationException,\n CreateResourceCommand: () => CreateResourceCommand,\n CreateResourceInputFilterSensitiveLog: () => CreateResourceInputFilterSensitiveLog,\n CreateResourceOutputFilterSensitiveLog: () => CreateResourceOutputFilterSensitiveLog,\n DeleteResourceCommand: () => DeleteResourceCommand,\n DeleteResourceOutputFilterSensitiveLog: () => DeleteResourceOutputFilterSensitiveLog,\n GeneralServiceException: () => GeneralServiceException,\n GetResourceCommand: () => GetResourceCommand,\n GetResourceOutputFilterSensitiveLog: () => GetResourceOutputFilterSensitiveLog,\n GetResourceRequestStatusCommand: () => GetResourceRequestStatusCommand,\n GetResourceRequestStatusOutputFilterSensitiveLog: () => GetResourceRequestStatusOutputFilterSensitiveLog,\n HandlerErrorCode: () => HandlerErrorCode,\n HandlerFailureException: () => HandlerFailureException,\n HandlerInternalFailureException: () => HandlerInternalFailureException,\n InvalidCredentialsException: () => InvalidCredentialsException,\n InvalidRequestException: () => InvalidRequestException,\n ListResourceRequestsCommand: () => ListResourceRequestsCommand,\n ListResourceRequestsOutputFilterSensitiveLog: () => ListResourceRequestsOutputFilterSensitiveLog,\n ListResourcesCommand: () => ListResourcesCommand,\n ListResourcesInputFilterSensitiveLog: () => ListResourcesInputFilterSensitiveLog,\n ListResourcesOutputFilterSensitiveLog: () => ListResourcesOutputFilterSensitiveLog,\n NetworkFailureException: () => NetworkFailureException,\n NotStabilizedException: () => NotStabilizedException,\n NotUpdatableException: () => NotUpdatableException,\n Operation: () => Operation,\n OperationStatus: () => OperationStatus,\n PrivateTypeException: () => PrivateTypeException,\n ProgressEventFilterSensitiveLog: () => ProgressEventFilterSensitiveLog,\n RequestTokenNotFoundException: () => RequestTokenNotFoundException,\n ResourceConflictException: () => ResourceConflictException,\n ResourceDescriptionFilterSensitiveLog: () => ResourceDescriptionFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ServiceInternalErrorException: () => ServiceInternalErrorException,\n ServiceLimitExceededException: () => ServiceLimitExceededException,\n ThrottlingException: () => ThrottlingException,\n TypeNotFoundException: () => TypeNotFoundException,\n UnsupportedActionException: () => UnsupportedActionException,\n UpdateResourceCommand: () => UpdateResourceCommand,\n UpdateResourceInputFilterSensitiveLog: () => UpdateResourceInputFilterSensitiveLog,\n UpdateResourceOutputFilterSensitiveLog: () => UpdateResourceOutputFilterSensitiveLog,\n __Client: () => import_smithy_client.Client,\n paginateListResourceRequests: () => paginateListResourceRequests,\n paginateListResources: () => paginateListResources,\n waitForResourceRequestSuccess: () => waitForResourceRequestSuccess,\n waitUntilResourceRequestSuccess: () => waitUntilResourceRequestSuccess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CloudControlClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cloudcontrolapi\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CloudControlClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CloudControlClient.ts\nvar CloudControlClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CloudControlClient\");\n }\n /**\n * The resolved configuration of CloudControlClient class. This is resolved and normalized from the {@link CloudControlClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCloudControlHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CloudControl.ts\n\n\n// src/commands/CancelResourceRequestCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/CloudControlServiceException.ts\n\nvar CloudControlServiceException = class _CloudControlServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CloudControlServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CloudControlServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AlreadyExistsException = class _AlreadyExistsException extends CloudControlServiceException {\n static {\n __name(this, \"AlreadyExistsException\");\n }\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HandlerErrorCode = {\n ACCESS_DENIED: \"AccessDenied\",\n ALREADY_EXISTS: \"AlreadyExists\",\n GENERAL_SERVICE_EXCEPTION: \"GeneralServiceException\",\n INTERNAL_FAILURE: \"InternalFailure\",\n INVALID_CREDENTIALS: \"InvalidCredentials\",\n INVALID_REQUEST: \"InvalidRequest\",\n NETWORK_FAILURE: \"NetworkFailure\",\n NOT_FOUND: \"NotFound\",\n NOT_STABILIZED: \"NotStabilized\",\n NOT_UPDATABLE: \"NotUpdatable\",\n RESOURCE_CONFLICT: \"ResourceConflict\",\n SERVICE_INTERNAL_ERROR: \"ServiceInternalError\",\n SERVICE_LIMIT_EXCEEDED: \"ServiceLimitExceeded\",\n SERVICE_TIMEOUT: \"ServiceTimeout\",\n THROTTLING: \"Throttling\",\n UNAUTHORIZED_TAGGING_OPERATION: \"UnauthorizedTaggingOperation\"\n};\nvar Operation = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n UPDATE: \"UPDATE\"\n};\nvar OperationStatus = {\n CANCEL_COMPLETE: \"CANCEL_COMPLETE\",\n CANCEL_IN_PROGRESS: \"CANCEL_IN_PROGRESS\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n SUCCESS: \"SUCCESS\"\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends CloudControlServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RequestTokenNotFoundException = class _RequestTokenNotFoundException extends CloudControlServiceException {\n static {\n __name(this, \"RequestTokenNotFoundException\");\n }\n name = \"RequestTokenNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RequestTokenNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RequestTokenNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ClientTokenConflictException = class _ClientTokenConflictException extends CloudControlServiceException {\n static {\n __name(this, \"ClientTokenConflictException\");\n }\n name = \"ClientTokenConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClientTokenConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClientTokenConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ConcurrentOperationException = class _ConcurrentOperationException extends CloudControlServiceException {\n static {\n __name(this, \"ConcurrentOperationException\");\n }\n name = \"ConcurrentOperationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentOperationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar GeneralServiceException = class _GeneralServiceException extends CloudControlServiceException {\n static {\n __name(this, \"GeneralServiceException\");\n }\n name = \"GeneralServiceException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"GeneralServiceException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _GeneralServiceException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HandlerFailureException = class _HandlerFailureException extends CloudControlServiceException {\n static {\n __name(this, \"HandlerFailureException\");\n }\n name = \"HandlerFailureException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HandlerFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _HandlerFailureException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HandlerInternalFailureException = class _HandlerInternalFailureException extends CloudControlServiceException {\n static {\n __name(this, \"HandlerInternalFailureException\");\n }\n name = \"HandlerInternalFailureException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HandlerInternalFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _HandlerInternalFailureException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidCredentialsException = class _InvalidCredentialsException extends CloudControlServiceException {\n static {\n __name(this, \"InvalidCredentialsException\");\n }\n name = \"InvalidCredentialsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCredentialsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCredentialsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends CloudControlServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NetworkFailureException = class _NetworkFailureException extends CloudControlServiceException {\n static {\n __name(this, \"NetworkFailureException\");\n }\n name = \"NetworkFailureException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NetworkFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _NetworkFailureException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NotStabilizedException = class _NotStabilizedException extends CloudControlServiceException {\n static {\n __name(this, \"NotStabilizedException\");\n }\n name = \"NotStabilizedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotStabilizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotStabilizedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NotUpdatableException = class _NotUpdatableException extends CloudControlServiceException {\n static {\n __name(this, \"NotUpdatableException\");\n }\n name = \"NotUpdatableException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotUpdatableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotUpdatableException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PrivateTypeException = class _PrivateTypeException extends CloudControlServiceException {\n static {\n __name(this, \"PrivateTypeException\");\n }\n name = \"PrivateTypeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PrivateTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PrivateTypeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceConflictException = class _ResourceConflictException extends CloudControlServiceException {\n static {\n __name(this, \"ResourceConflictException\");\n }\n name = \"ResourceConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CloudControlServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceInternalErrorException = class _ServiceInternalErrorException extends CloudControlServiceException {\n static {\n __name(this, \"ServiceInternalErrorException\");\n }\n name = \"ServiceInternalErrorException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceInternalErrorException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceInternalErrorException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceLimitExceededException = class _ServiceLimitExceededException extends CloudControlServiceException {\n static {\n __name(this, \"ServiceLimitExceededException\");\n }\n name = \"ServiceLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ThrottlingException = class _ThrottlingException extends CloudControlServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TypeNotFoundException = class _TypeNotFoundException extends CloudControlServiceException {\n static {\n __name(this, \"TypeNotFoundException\");\n }\n name = \"TypeNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TypeNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TypeNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedActionException = class _UnsupportedActionException extends CloudControlServiceException {\n static {\n __name(this, \"UnsupportedActionException\");\n }\n name = \"UnsupportedActionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedActionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedActionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ProgressEventFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceModel && { ResourceModel: import_smithy_client.SENSITIVE_STRING }\n}), \"ProgressEventFilterSensitiveLog\");\nvar CancelResourceRequestOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"CancelResourceRequestOutputFilterSensitiveLog\");\nvar CreateResourceInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.DesiredState && { DesiredState: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateResourceInputFilterSensitiveLog\");\nvar CreateResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"CreateResourceOutputFilterSensitiveLog\");\nvar DeleteResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"DeleteResourceOutputFilterSensitiveLog\");\nvar ResourceDescriptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Properties && { Properties: import_smithy_client.SENSITIVE_STRING }\n}), \"ResourceDescriptionFilterSensitiveLog\");\nvar GetResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceDescription && {\n ResourceDescription: ResourceDescriptionFilterSensitiveLog(obj.ResourceDescription)\n }\n}), \"GetResourceOutputFilterSensitiveLog\");\nvar GetResourceRequestStatusOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"GetResourceRequestStatusOutputFilterSensitiveLog\");\nvar ListResourceRequestsOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceRequestStatusSummaries && {\n ResourceRequestStatusSummaries: obj.ResourceRequestStatusSummaries.map(\n (item) => ProgressEventFilterSensitiveLog(item)\n )\n }\n}), \"ListResourceRequestsOutputFilterSensitiveLog\");\nvar ListResourcesInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceModel && { ResourceModel: import_smithy_client.SENSITIVE_STRING }\n}), \"ListResourcesInputFilterSensitiveLog\");\nvar ListResourcesOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ResourceDescriptions && {\n ResourceDescriptions: obj.ResourceDescriptions.map((item) => ResourceDescriptionFilterSensitiveLog(item))\n }\n}), \"ListResourcesOutputFilterSensitiveLog\");\nvar UpdateResourceInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PatchDocument && { PatchDocument: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateResourceInputFilterSensitiveLog\");\nvar UpdateResourceOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ProgressEvent && { ProgressEvent: ProgressEventFilterSensitiveLog(obj.ProgressEvent) }\n}), \"UpdateResourceOutputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_0.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\nvar se_CancelResourceRequestCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelResourceRequest\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelResourceRequestCommand\");\nvar se_CreateResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateResource\");\n let body;\n body = JSON.stringify(se_CreateResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateResourceCommand\");\nvar se_DeleteResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResource\");\n let body;\n body = JSON.stringify(se_DeleteResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourceCommand\");\nvar se_GetResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourceCommand\");\nvar se_GetResourceRequestStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourceRequestStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourceRequestStatusCommand\");\nvar se_ListResourceRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceRequests\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceRequestsCommand\");\nvar se_ListResourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResources\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourcesCommand\");\nvar se_UpdateResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateResource\");\n let body;\n body = JSON.stringify(se_UpdateResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateResourceCommand\");\nvar de_CancelResourceRequestCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CancelResourceRequestOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelResourceRequestCommand\");\nvar de_CreateResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateResourceCommand\");\nvar de_DeleteResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourceCommand\");\nvar de_GetResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourceCommand\");\nvar de_GetResourceRequestStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetResourceRequestStatusOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourceRequestStatusCommand\");\nvar de_ListResourceRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListResourceRequestsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceRequestsCommand\");\nvar de_ListResourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourcesCommand\");\nvar de_UpdateResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateResourceOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateResourceCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cloudcontrol#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"RequestTokenNotFoundException\":\n case \"com.amazonaws.cloudcontrol#RequestTokenNotFoundException\":\n throw await de_RequestTokenNotFoundExceptionRes(parsedOutput, context);\n case \"AlreadyExistsException\":\n case \"com.amazonaws.cloudcontrol#AlreadyExistsException\":\n throw await de_AlreadyExistsExceptionRes(parsedOutput, context);\n case \"ClientTokenConflictException\":\n case \"com.amazonaws.cloudcontrol#ClientTokenConflictException\":\n throw await de_ClientTokenConflictExceptionRes(parsedOutput, context);\n case \"ConcurrentOperationException\":\n case \"com.amazonaws.cloudcontrol#ConcurrentOperationException\":\n throw await de_ConcurrentOperationExceptionRes(parsedOutput, context);\n case \"GeneralServiceException\":\n case \"com.amazonaws.cloudcontrol#GeneralServiceException\":\n throw await de_GeneralServiceExceptionRes(parsedOutput, context);\n case \"HandlerFailureException\":\n case \"com.amazonaws.cloudcontrol#HandlerFailureException\":\n throw await de_HandlerFailureExceptionRes(parsedOutput, context);\n case \"HandlerInternalFailureException\":\n case \"com.amazonaws.cloudcontrol#HandlerInternalFailureException\":\n throw await de_HandlerInternalFailureExceptionRes(parsedOutput, context);\n case \"InvalidCredentialsException\":\n case \"com.amazonaws.cloudcontrol#InvalidCredentialsException\":\n throw await de_InvalidCredentialsExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.cloudcontrol#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"NetworkFailureException\":\n case \"com.amazonaws.cloudcontrol#NetworkFailureException\":\n throw await de_NetworkFailureExceptionRes(parsedOutput, context);\n case \"NotStabilizedException\":\n case \"com.amazonaws.cloudcontrol#NotStabilizedException\":\n throw await de_NotStabilizedExceptionRes(parsedOutput, context);\n case \"NotUpdatableException\":\n case \"com.amazonaws.cloudcontrol#NotUpdatableException\":\n throw await de_NotUpdatableExceptionRes(parsedOutput, context);\n case \"PrivateTypeException\":\n case \"com.amazonaws.cloudcontrol#PrivateTypeException\":\n throw await de_PrivateTypeExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cloudcontrol#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cloudcontrol#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ServiceInternalErrorException\":\n case \"com.amazonaws.cloudcontrol#ServiceInternalErrorException\":\n throw await de_ServiceInternalErrorExceptionRes(parsedOutput, context);\n case \"ServiceLimitExceededException\":\n case \"com.amazonaws.cloudcontrol#ServiceLimitExceededException\":\n throw await de_ServiceLimitExceededExceptionRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.cloudcontrol#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"TypeNotFoundException\":\n case \"com.amazonaws.cloudcontrol#TypeNotFoundException\":\n throw await de_TypeNotFoundExceptionRes(parsedOutput, context);\n case \"UnsupportedActionException\":\n case \"com.amazonaws.cloudcontrol#UnsupportedActionException\":\n throw await de_UnsupportedActionExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AlreadyExistsExceptionRes\");\nvar de_ClientTokenConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClientTokenConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClientTokenConflictExceptionRes\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_ConcurrentOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConcurrentOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentOperationExceptionRes\");\nvar de_GeneralServiceExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new GeneralServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_GeneralServiceExceptionRes\");\nvar de_HandlerFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HandlerFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HandlerFailureExceptionRes\");\nvar de_HandlerInternalFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HandlerInternalFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HandlerInternalFailureExceptionRes\");\nvar de_InvalidCredentialsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidCredentialsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCredentialsExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_NetworkFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NetworkFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NetworkFailureExceptionRes\");\nvar de_NotStabilizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotStabilizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotStabilizedExceptionRes\");\nvar de_NotUpdatableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotUpdatableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotUpdatableExceptionRes\");\nvar de_PrivateTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PrivateTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PrivateTypeExceptionRes\");\nvar de_RequestTokenNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RequestTokenNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RequestTokenNotFoundExceptionRes\");\nvar de_ResourceConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceConflictExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ServiceInternalErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceInternalErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceInternalErrorExceptionRes\");\nvar de_ServiceLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceLimitExceededExceptionRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TypeNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TypeNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TypeNotFoundExceptionRes\");\nvar de_UnsupportedActionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedActionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedActionExceptionRes\");\nvar se_CreateResourceInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n DesiredState: [],\n RoleArn: [],\n TypeName: [],\n TypeVersionId: []\n });\n}, \"se_CreateResourceInput\");\nvar se_DeleteResourceInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Identifier: [],\n RoleArn: [],\n TypeName: [],\n TypeVersionId: []\n });\n}, \"se_DeleteResourceInput\");\nvar se_UpdateResourceInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Identifier: [],\n PatchDocument: [],\n RoleArn: [],\n TypeName: [],\n TypeVersionId: []\n });\n}, \"se_UpdateResourceInput\");\nvar de_CancelResourceRequestOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_CancelResourceRequestOutput\");\nvar de_CreateResourceOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_CreateResourceOutput\");\nvar de_DeleteResourceOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_DeleteResourceOutput\");\nvar de_GetResourceRequestStatusOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n HooksProgressEvent: /* @__PURE__ */ __name((_) => de_HooksProgressEvent(_, context), \"HooksProgressEvent\"),\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_GetResourceRequestStatusOutput\");\nvar de_HookProgressEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n FailureMode: import_smithy_client.expectString,\n HookEventTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"HookEventTime\"),\n HookStatus: import_smithy_client.expectString,\n HookStatusMessage: import_smithy_client.expectString,\n HookTypeArn: import_smithy_client.expectString,\n HookTypeName: import_smithy_client.expectString,\n HookTypeVersionId: import_smithy_client.expectString,\n InvocationPoint: import_smithy_client.expectString\n });\n}, \"de_HookProgressEvent\");\nvar de_HooksProgressEvent = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_HookProgressEvent(entry, context);\n });\n return retVal;\n}, \"de_HooksProgressEvent\");\nvar de_ListResourceRequestsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n ResourceRequestStatusSummaries: /* @__PURE__ */ __name((_) => de_ResourceRequestStatusSummaries(_, context), \"ResourceRequestStatusSummaries\")\n });\n}, \"de_ListResourceRequestsOutput\");\nvar de_ProgressEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ErrorCode: import_smithy_client.expectString,\n EventTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EventTime\"),\n HooksRequestToken: import_smithy_client.expectString,\n Identifier: import_smithy_client.expectString,\n Operation: import_smithy_client.expectString,\n OperationStatus: import_smithy_client.expectString,\n RequestToken: import_smithy_client.expectString,\n ResourceModel: import_smithy_client.expectString,\n RetryAfter: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RetryAfter\"),\n StatusMessage: import_smithy_client.expectString,\n TypeName: import_smithy_client.expectString\n });\n}, \"de_ProgressEvent\");\nvar de_ResourceRequestStatusSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ProgressEvent(entry, context);\n });\n return retVal;\n}, \"de_ResourceRequestStatusSummaries\");\nvar de_UpdateResourceOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ProgressEvent: /* @__PURE__ */ __name((_) => de_ProgressEvent(_, context), \"ProgressEvent\")\n });\n}, \"de_UpdateResourceOutput\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CloudControlServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.0\",\n \"x-amz-target\": `CloudApiService.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CancelResourceRequestCommand.ts\nvar CancelResourceRequestCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"CancelResourceRequest\", {}).n(\"CloudControlClient\", \"CancelResourceRequestCommand\").f(void 0, CancelResourceRequestOutputFilterSensitiveLog).ser(se_CancelResourceRequestCommand).de(de_CancelResourceRequestCommand).build() {\n static {\n __name(this, \"CancelResourceRequestCommand\");\n }\n};\n\n// src/commands/CreateResourceCommand.ts\n\n\n\nvar CreateResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"CreateResource\", {}).n(\"CloudControlClient\", \"CreateResourceCommand\").f(CreateResourceInputFilterSensitiveLog, CreateResourceOutputFilterSensitiveLog).ser(se_CreateResourceCommand).de(de_CreateResourceCommand).build() {\n static {\n __name(this, \"CreateResourceCommand\");\n }\n};\n\n// src/commands/DeleteResourceCommand.ts\n\n\n\nvar DeleteResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"DeleteResource\", {}).n(\"CloudControlClient\", \"DeleteResourceCommand\").f(void 0, DeleteResourceOutputFilterSensitiveLog).ser(se_DeleteResourceCommand).de(de_DeleteResourceCommand).build() {\n static {\n __name(this, \"DeleteResourceCommand\");\n }\n};\n\n// src/commands/GetResourceCommand.ts\n\n\n\nvar GetResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"GetResource\", {}).n(\"CloudControlClient\", \"GetResourceCommand\").f(void 0, GetResourceOutputFilterSensitiveLog).ser(se_GetResourceCommand).de(de_GetResourceCommand).build() {\n static {\n __name(this, \"GetResourceCommand\");\n }\n};\n\n// src/commands/GetResourceRequestStatusCommand.ts\n\n\n\nvar GetResourceRequestStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"GetResourceRequestStatus\", {}).n(\"CloudControlClient\", \"GetResourceRequestStatusCommand\").f(void 0, GetResourceRequestStatusOutputFilterSensitiveLog).ser(se_GetResourceRequestStatusCommand).de(de_GetResourceRequestStatusCommand).build() {\n static {\n __name(this, \"GetResourceRequestStatusCommand\");\n }\n};\n\n// src/commands/ListResourceRequestsCommand.ts\n\n\n\nvar ListResourceRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"ListResourceRequests\", {}).n(\"CloudControlClient\", \"ListResourceRequestsCommand\").f(void 0, ListResourceRequestsOutputFilterSensitiveLog).ser(se_ListResourceRequestsCommand).de(de_ListResourceRequestsCommand).build() {\n static {\n __name(this, \"ListResourceRequestsCommand\");\n }\n};\n\n// src/commands/ListResourcesCommand.ts\n\n\n\nvar ListResourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"ListResources\", {}).n(\"CloudControlClient\", \"ListResourcesCommand\").f(ListResourcesInputFilterSensitiveLog, ListResourcesOutputFilterSensitiveLog).ser(se_ListResourcesCommand).de(de_ListResourcesCommand).build() {\n static {\n __name(this, \"ListResourcesCommand\");\n }\n};\n\n// src/commands/UpdateResourceCommand.ts\n\n\n\nvar UpdateResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CloudApiService\", \"UpdateResource\", {}).n(\"CloudControlClient\", \"UpdateResourceCommand\").f(UpdateResourceInputFilterSensitiveLog, UpdateResourceOutputFilterSensitiveLog).ser(se_UpdateResourceCommand).de(de_UpdateResourceCommand).build() {\n static {\n __name(this, \"UpdateResourceCommand\");\n }\n};\n\n// src/CloudControl.ts\nvar commands = {\n CancelResourceRequestCommand,\n CreateResourceCommand,\n DeleteResourceCommand,\n GetResourceCommand,\n GetResourceRequestStatusCommand,\n ListResourceRequestsCommand,\n ListResourcesCommand,\n UpdateResourceCommand\n};\nvar CloudControl = class extends CloudControlClient {\n static {\n __name(this, \"CloudControl\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CloudControl);\n\n// src/pagination/ListResourceRequestsPaginator.ts\n\nvar paginateListResourceRequests = (0, import_core.createPaginator)(CloudControlClient, ListResourceRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListResourcesPaginator.ts\n\nvar paginateListResources = (0, import_core.createPaginator)(CloudControlClient, ListResourcesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForResourceRequestSuccess.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetResourceRequestStatusCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ProgressEvent.OperationStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"SUCCESS\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ProgressEvent.OperationStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"FAILED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ProgressEvent.OperationStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"CANCEL_COMPLETE\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForResourceRequestSuccess = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForResourceRequestSuccess\");\nvar waitUntilResourceRequestSuccess = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilResourceRequestSuccess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CloudControlServiceException,\n __Client,\n CloudControlClient,\n CloudControl,\n $Command,\n CancelResourceRequestCommand,\n CreateResourceCommand,\n DeleteResourceCommand,\n GetResourceCommand,\n GetResourceRequestStatusCommand,\n ListResourceRequestsCommand,\n ListResourcesCommand,\n UpdateResourceCommand,\n paginateListResourceRequests,\n paginateListResources,\n waitForResourceRequestSuccess,\n waitUntilResourceRequestSuccess,\n AlreadyExistsException,\n HandlerErrorCode,\n Operation,\n OperationStatus,\n ConcurrentModificationException,\n RequestTokenNotFoundException,\n ClientTokenConflictException,\n ConcurrentOperationException,\n GeneralServiceException,\n HandlerFailureException,\n HandlerInternalFailureException,\n InvalidCredentialsException,\n InvalidRequestException,\n NetworkFailureException,\n NotStabilizedException,\n NotUpdatableException,\n PrivateTypeException,\n ResourceConflictException,\n ResourceNotFoundException,\n ServiceInternalErrorException,\n ServiceLimitExceededException,\n ThrottlingException,\n TypeNotFoundException,\n UnsupportedActionException,\n ProgressEventFilterSensitiveLog,\n CancelResourceRequestOutputFilterSensitiveLog,\n CreateResourceInputFilterSensitiveLog,\n CreateResourceOutputFilterSensitiveLog,\n DeleteResourceOutputFilterSensitiveLog,\n ResourceDescriptionFilterSensitiveLog,\n GetResourceOutputFilterSensitiveLog,\n GetResourceRequestStatusOutputFilterSensitiveLog,\n ListResourceRequestsOutputFilterSensitiveLog,\n ListResourcesInputFilterSensitiveLog,\n ListResourcesOutputFilterSensitiveLog,\n UpdateResourceInputFilterSensitiveLog,\n UpdateResourceOutputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2021-09-30\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCloudControlHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"CloudControl\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCloudFormationHttpAuthSchemeProvider = exports.defaultCloudFormationHttpAuthSchemeParametersProvider = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCloudFormationHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: await (0, util_middleware_1.normalizeProvider)(config.region)() || (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCloudFormationHttpAuthSchemeParametersProvider = defaultCloudFormationHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cloudformation\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCloudFormationHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCloudFormationHttpAuthSchemeProvider = defaultCloudFormationHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, httpAuthSchemes_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bdd = void 0;\nconst util_endpoints_1 = require(\"@smithy/util-endpoints\");\nconst k = \"ref\";\nconst a = -1, b = true, c = \"isSet\", d = \"PartitionResult\", e = \"booleanEquals\", f = \"getAttr\", g = { [k]: \"Endpoint\" }, h = { [k]: d }, i = {}, j = [{ [k]: \"Region\" }];\nconst _data = {\n conditions: [\n [c, [g]],\n [c, j],\n [\"aws.partition\", j, d],\n [e, [{ [k]: \"UseFIPS\" }, b]],\n [e, [{ [k]: \"UseDualStack\" }, b]],\n [e, [{ fn: f, argv: [h, \"supportsDualStack\"] }, b]],\n [e, [{ fn: f, argv: [h, \"supportsFIPS\"] }, b]],\n [\"stringEquals\", [{ fn: f, argv: [h, \"name\"] }, \"aws-us-gov\"]]\n ],\n results: [\n [a],\n [a, \"Invalid Configuration: FIPS and custom endpoint are not supported\"],\n [a, \"Invalid Configuration: Dualstack and custom endpoint are not supported\"],\n [g, i],\n [\"https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"FIPS and DualStack are enabled, but this partition does not support one or both\"],\n [\"https://cloudformation.{Region}.amazonaws.com\", i],\n [\"https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"FIPS is enabled but this partition does not support FIPS\"],\n [\"https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}\", i],\n [a, \"DualStack is enabled but this partition does not support DualStack\"],\n [\"https://cloudformation.{Region}.{PartitionResult#dnsSuffix}\", i],\n [a, \"Invalid Configuration: Missing Region\"]\n ]\n};\nconst root = 2;\nconst r = 100_000_000;\nconst nodes = new Int32Array([\n -1, 1, -1,\n 0, 13, 3,\n 1, 4, r + 12,\n 2, 5, r + 12,\n 3, 8, 6,\n 4, 7, r + 11,\n 5, r + 9, r + 10,\n 4, 11, 9,\n 6, 10, r + 8,\n 7, r + 6, r + 7,\n 5, 12, r + 5,\n 6, r + 4, r + 5,\n 3, r + 1, 14,\n 4, r + 2, r + 3,\n]);\nexports.bdd = util_endpoints_1.BinaryDecisionDiagram.from(nodes, root, _data.conditions, _data.results);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst bdd_1 = require(\"./bdd\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.decideEndpoint)(bdd_1.bdd, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","'use strict';\n\nvar middlewareHostHeader = require('@aws-sdk/middleware-host-header');\nvar middlewareLogger = require('@aws-sdk/middleware-logger');\nvar middlewareRecursionDetection = require('@aws-sdk/middleware-recursion-detection');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\nvar configResolver = require('@smithy/config-resolver');\nvar core = require('@smithy/core');\nvar schema = require('@smithy/core/schema');\nvar middlewareContentLength = require('@smithy/middleware-content-length');\nvar middlewareEndpoint = require('@smithy/middleware-endpoint');\nvar middlewareRetry = require('@smithy/middleware-retry');\nvar smithyClient = require('@smithy/smithy-client');\nvar httpAuthSchemeProvider = require('./auth/httpAuthSchemeProvider');\nvar runtimeConfig = require('./runtimeConfig');\nvar regionConfigResolver = require('@aws-sdk/region-config-resolver');\nvar protocolHttp = require('@smithy/protocol-http');\nvar schemas_0 = require('./schemas/schemas_0');\nvar utilWaiter = require('@smithy/util-waiter');\nvar errors = require('./models/errors');\nvar CloudFormationServiceException = require('./models/CloudFormationServiceException');\n\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cloudformation\",\n });\n};\nconst commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\n\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(regionConfigResolver.getAwsRegionExtensionConfiguration(runtimeConfig), smithyClient.getDefaultExtensionConfiguration(runtimeConfig), protocolHttp.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, regionConfigResolver.resolveAwsRegionExtensionConfiguration(extensionConfiguration), smithyClient.resolveDefaultRuntimeConfig(extensionConfiguration), protocolHttp.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));\n};\n\nclass CloudFormationClient extends smithyClient.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = runtimeConfig.getRuntimeConfig(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = middlewareUserAgent.resolveUserAgentConfig(_config_1);\n const _config_3 = middlewareRetry.resolveRetryConfig(_config_2);\n const _config_4 = configResolver.resolveRegionConfig(_config_3);\n const _config_5 = middlewareHostHeader.resolveHostHeaderConfig(_config_4);\n const _config_6 = middlewareEndpoint.resolveEndpointConfig(_config_5);\n const _config_7 = httpAuthSchemeProvider.resolveHttpAuthSchemeConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));\n this.middlewareStack.use(middlewareUserAgent.getUserAgentPlugin(this.config));\n this.middlewareStack.use(middlewareRetry.getRetryPlugin(this.config));\n this.middlewareStack.use(middlewareContentLength.getContentLengthPlugin(this.config));\n this.middlewareStack.use(middlewareHostHeader.getHostHeaderPlugin(this.config));\n this.middlewareStack.use(middlewareLogger.getLoggerPlugin(this.config));\n this.middlewareStack.use(middlewareRecursionDetection.getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider.defaultCloudFormationHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use(core.getHttpSigningPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n\nclass ActivateOrganizationsAccessCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ActivateOrganizationsAccess\", {})\n .n(\"CloudFormationClient\", \"ActivateOrganizationsAccessCommand\")\n .sc(schemas_0.ActivateOrganizationsAccess$)\n .build() {\n}\n\nclass ActivateTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ActivateType\", {})\n .n(\"CloudFormationClient\", \"ActivateTypeCommand\")\n .sc(schemas_0.ActivateType$)\n .build() {\n}\n\nclass BatchDescribeTypeConfigurationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"BatchDescribeTypeConfigurations\", {})\n .n(\"CloudFormationClient\", \"BatchDescribeTypeConfigurationsCommand\")\n .sc(schemas_0.BatchDescribeTypeConfigurations$)\n .build() {\n}\n\nclass CancelUpdateStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CancelUpdateStack\", {})\n .n(\"CloudFormationClient\", \"CancelUpdateStackCommand\")\n .sc(schemas_0.CancelUpdateStack$)\n .build() {\n}\n\nclass ContinueUpdateRollbackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ContinueUpdateRollback\", {})\n .n(\"CloudFormationClient\", \"ContinueUpdateRollbackCommand\")\n .sc(schemas_0.ContinueUpdateRollback$)\n .build() {\n}\n\nclass CreateChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateChangeSet\", {})\n .n(\"CloudFormationClient\", \"CreateChangeSetCommand\")\n .sc(schemas_0.CreateChangeSet$)\n .build() {\n}\n\nclass CreateGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"CreateGeneratedTemplateCommand\")\n .sc(schemas_0.CreateGeneratedTemplate$)\n .build() {\n}\n\nclass CreateStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStack\", {})\n .n(\"CloudFormationClient\", \"CreateStackCommand\")\n .sc(schemas_0.CreateStack$)\n .build() {\n}\n\nclass CreateStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStackInstances\", {})\n .n(\"CloudFormationClient\", \"CreateStackInstancesCommand\")\n .sc(schemas_0.CreateStackInstances$)\n .build() {\n}\n\nclass CreateStackRefactorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStackRefactor\", {})\n .n(\"CloudFormationClient\", \"CreateStackRefactorCommand\")\n .sc(schemas_0.CreateStackRefactor$)\n .build() {\n}\n\nclass CreateStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"CreateStackSet\", {})\n .n(\"CloudFormationClient\", \"CreateStackSetCommand\")\n .sc(schemas_0.CreateStackSet$)\n .build() {\n}\n\nclass DeactivateOrganizationsAccessCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeactivateOrganizationsAccess\", {})\n .n(\"CloudFormationClient\", \"DeactivateOrganizationsAccessCommand\")\n .sc(schemas_0.DeactivateOrganizationsAccess$)\n .build() {\n}\n\nclass DeactivateTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeactivateType\", {})\n .n(\"CloudFormationClient\", \"DeactivateTypeCommand\")\n .sc(schemas_0.DeactivateType$)\n .build() {\n}\n\nclass DeleteChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteChangeSet\", {})\n .n(\"CloudFormationClient\", \"DeleteChangeSetCommand\")\n .sc(schemas_0.DeleteChangeSet$)\n .build() {\n}\n\nclass DeleteGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"DeleteGeneratedTemplateCommand\")\n .sc(schemas_0.DeleteGeneratedTemplate$)\n .build() {\n}\n\nclass DeleteStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteStack\", {})\n .n(\"CloudFormationClient\", \"DeleteStackCommand\")\n .sc(schemas_0.DeleteStack$)\n .build() {\n}\n\nclass DeleteStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteStackInstances\", {})\n .n(\"CloudFormationClient\", \"DeleteStackInstancesCommand\")\n .sc(schemas_0.DeleteStackInstances$)\n .build() {\n}\n\nclass DeleteStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeleteStackSet\", {})\n .n(\"CloudFormationClient\", \"DeleteStackSetCommand\")\n .sc(schemas_0.DeleteStackSet$)\n .build() {\n}\n\nclass DeregisterTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DeregisterType\", {})\n .n(\"CloudFormationClient\", \"DeregisterTypeCommand\")\n .sc(schemas_0.DeregisterType$)\n .build() {\n}\n\nclass DescribeAccountLimitsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeAccountLimits\", {})\n .n(\"CloudFormationClient\", \"DescribeAccountLimitsCommand\")\n .sc(schemas_0.DescribeAccountLimits$)\n .build() {\n}\n\nclass DescribeChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeChangeSet\", {})\n .n(\"CloudFormationClient\", \"DescribeChangeSetCommand\")\n .sc(schemas_0.DescribeChangeSet$)\n .build() {\n}\n\nclass DescribeChangeSetHooksCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeChangeSetHooks\", {})\n .n(\"CloudFormationClient\", \"DescribeChangeSetHooksCommand\")\n .sc(schemas_0.DescribeChangeSetHooks$)\n .build() {\n}\n\nclass DescribeEventsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeEvents\", {})\n .n(\"CloudFormationClient\", \"DescribeEventsCommand\")\n .sc(schemas_0.DescribeEvents$)\n .build() {\n}\n\nclass DescribeGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"DescribeGeneratedTemplateCommand\")\n .sc(schemas_0.DescribeGeneratedTemplate$)\n .build() {\n}\n\nclass DescribeOrganizationsAccessCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeOrganizationsAccess\", {})\n .n(\"CloudFormationClient\", \"DescribeOrganizationsAccessCommand\")\n .sc(schemas_0.DescribeOrganizationsAccess$)\n .build() {\n}\n\nclass DescribePublisherCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribePublisher\", {})\n .n(\"CloudFormationClient\", \"DescribePublisherCommand\")\n .sc(schemas_0.DescribePublisher$)\n .build() {\n}\n\nclass DescribeResourceScanCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeResourceScan\", {})\n .n(\"CloudFormationClient\", \"DescribeResourceScanCommand\")\n .sc(schemas_0.DescribeResourceScan$)\n .build() {\n}\n\nclass DescribeStackDriftDetectionStatusCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackDriftDetectionStatus\", {})\n .n(\"CloudFormationClient\", \"DescribeStackDriftDetectionStatusCommand\")\n .sc(schemas_0.DescribeStackDriftDetectionStatus$)\n .build() {\n}\n\nclass DescribeStackEventsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackEvents\", {})\n .n(\"CloudFormationClient\", \"DescribeStackEventsCommand\")\n .sc(schemas_0.DescribeStackEvents$)\n .build() {\n}\n\nclass DescribeStackInstanceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackInstance\", {})\n .n(\"CloudFormationClient\", \"DescribeStackInstanceCommand\")\n .sc(schemas_0.DescribeStackInstance$)\n .build() {\n}\n\nclass DescribeStackRefactorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackRefactor\", {})\n .n(\"CloudFormationClient\", \"DescribeStackRefactorCommand\")\n .sc(schemas_0.DescribeStackRefactor$)\n .build() {\n}\n\nclass DescribeStackResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackResource\", {})\n .n(\"CloudFormationClient\", \"DescribeStackResourceCommand\")\n .sc(schemas_0.DescribeStackResource$)\n .build() {\n}\n\nclass DescribeStackResourceDriftsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackResourceDrifts\", {})\n .n(\"CloudFormationClient\", \"DescribeStackResourceDriftsCommand\")\n .sc(schemas_0.DescribeStackResourceDrifts$)\n .build() {\n}\n\nclass DescribeStackResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackResources\", {})\n .n(\"CloudFormationClient\", \"DescribeStackResourcesCommand\")\n .sc(schemas_0.DescribeStackResources$)\n .build() {\n}\n\nclass DescribeStacksCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStacks\", {})\n .n(\"CloudFormationClient\", \"DescribeStacksCommand\")\n .sc(schemas_0.DescribeStacks$)\n .build() {\n}\n\nclass DescribeStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackSet\", {})\n .n(\"CloudFormationClient\", \"DescribeStackSetCommand\")\n .sc(schemas_0.DescribeStackSet$)\n .build() {\n}\n\nclass DescribeStackSetOperationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeStackSetOperation\", {})\n .n(\"CloudFormationClient\", \"DescribeStackSetOperationCommand\")\n .sc(schemas_0.DescribeStackSetOperation$)\n .build() {\n}\n\nclass DescribeTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeType\", {})\n .n(\"CloudFormationClient\", \"DescribeTypeCommand\")\n .sc(schemas_0.DescribeType$)\n .build() {\n}\n\nclass DescribeTypeRegistrationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DescribeTypeRegistration\", {})\n .n(\"CloudFormationClient\", \"DescribeTypeRegistrationCommand\")\n .sc(schemas_0.DescribeTypeRegistration$)\n .build() {\n}\n\nclass DetectStackDriftCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DetectStackDrift\", {})\n .n(\"CloudFormationClient\", \"DetectStackDriftCommand\")\n .sc(schemas_0.DetectStackDrift$)\n .build() {\n}\n\nclass DetectStackResourceDriftCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DetectStackResourceDrift\", {})\n .n(\"CloudFormationClient\", \"DetectStackResourceDriftCommand\")\n .sc(schemas_0.DetectStackResourceDrift$)\n .build() {\n}\n\nclass DetectStackSetDriftCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"DetectStackSetDrift\", {})\n .n(\"CloudFormationClient\", \"DetectStackSetDriftCommand\")\n .sc(schemas_0.DetectStackSetDrift$)\n .build() {\n}\n\nclass EstimateTemplateCostCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"EstimateTemplateCost\", {})\n .n(\"CloudFormationClient\", \"EstimateTemplateCostCommand\")\n .sc(schemas_0.EstimateTemplateCost$)\n .build() {\n}\n\nclass ExecuteChangeSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ExecuteChangeSet\", {})\n .n(\"CloudFormationClient\", \"ExecuteChangeSetCommand\")\n .sc(schemas_0.ExecuteChangeSet$)\n .build() {\n}\n\nclass ExecuteStackRefactorCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ExecuteStackRefactor\", {})\n .n(\"CloudFormationClient\", \"ExecuteStackRefactorCommand\")\n .sc(schemas_0.ExecuteStackRefactor$)\n .build() {\n}\n\nclass GetGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"GetGeneratedTemplateCommand\")\n .sc(schemas_0.GetGeneratedTemplate$)\n .build() {\n}\n\nclass GetHookResultCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetHookResult\", {})\n .n(\"CloudFormationClient\", \"GetHookResultCommand\")\n .sc(schemas_0.GetHookResult$)\n .build() {\n}\n\nclass GetStackPolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetStackPolicy\", {})\n .n(\"CloudFormationClient\", \"GetStackPolicyCommand\")\n .sc(schemas_0.GetStackPolicy$)\n .build() {\n}\n\nclass GetTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetTemplate\", {})\n .n(\"CloudFormationClient\", \"GetTemplateCommand\")\n .sc(schemas_0.GetTemplate$)\n .build() {\n}\n\nclass GetTemplateSummaryCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"GetTemplateSummary\", {})\n .n(\"CloudFormationClient\", \"GetTemplateSummaryCommand\")\n .sc(schemas_0.GetTemplateSummary$)\n .build() {\n}\n\nclass ImportStacksToStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ImportStacksToStackSet\", {})\n .n(\"CloudFormationClient\", \"ImportStacksToStackSetCommand\")\n .sc(schemas_0.ImportStacksToStackSet$)\n .build() {\n}\n\nclass ListChangeSetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListChangeSets\", {})\n .n(\"CloudFormationClient\", \"ListChangeSetsCommand\")\n .sc(schemas_0.ListChangeSets$)\n .build() {\n}\n\nclass ListExportsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListExports\", {})\n .n(\"CloudFormationClient\", \"ListExportsCommand\")\n .sc(schemas_0.ListExports$)\n .build() {\n}\n\nclass ListGeneratedTemplatesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListGeneratedTemplates\", {})\n .n(\"CloudFormationClient\", \"ListGeneratedTemplatesCommand\")\n .sc(schemas_0.ListGeneratedTemplates$)\n .build() {\n}\n\nclass ListHookResultsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListHookResults\", {})\n .n(\"CloudFormationClient\", \"ListHookResultsCommand\")\n .sc(schemas_0.ListHookResults$)\n .build() {\n}\n\nclass ListImportsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListImports\", {})\n .n(\"CloudFormationClient\", \"ListImportsCommand\")\n .sc(schemas_0.ListImports$)\n .build() {\n}\n\nclass ListResourceScanRelatedResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListResourceScanRelatedResources\", {})\n .n(\"CloudFormationClient\", \"ListResourceScanRelatedResourcesCommand\")\n .sc(schemas_0.ListResourceScanRelatedResources$)\n .build() {\n}\n\nclass ListResourceScanResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListResourceScanResources\", {})\n .n(\"CloudFormationClient\", \"ListResourceScanResourcesCommand\")\n .sc(schemas_0.ListResourceScanResources$)\n .build() {\n}\n\nclass ListResourceScansCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListResourceScans\", {})\n .n(\"CloudFormationClient\", \"ListResourceScansCommand\")\n .sc(schemas_0.ListResourceScans$)\n .build() {\n}\n\nclass ListStackInstanceResourceDriftsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackInstanceResourceDrifts\", {})\n .n(\"CloudFormationClient\", \"ListStackInstanceResourceDriftsCommand\")\n .sc(schemas_0.ListStackInstanceResourceDrifts$)\n .build() {\n}\n\nclass ListStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackInstances\", {})\n .n(\"CloudFormationClient\", \"ListStackInstancesCommand\")\n .sc(schemas_0.ListStackInstances$)\n .build() {\n}\n\nclass ListStackRefactorActionsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackRefactorActions\", {})\n .n(\"CloudFormationClient\", \"ListStackRefactorActionsCommand\")\n .sc(schemas_0.ListStackRefactorActions$)\n .build() {\n}\n\nclass ListStackRefactorsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackRefactors\", {})\n .n(\"CloudFormationClient\", \"ListStackRefactorsCommand\")\n .sc(schemas_0.ListStackRefactors$)\n .build() {\n}\n\nclass ListStackResourcesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackResources\", {})\n .n(\"CloudFormationClient\", \"ListStackResourcesCommand\")\n .sc(schemas_0.ListStackResources$)\n .build() {\n}\n\nclass ListStacksCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStacks\", {})\n .n(\"CloudFormationClient\", \"ListStacksCommand\")\n .sc(schemas_0.ListStacks$)\n .build() {\n}\n\nclass ListStackSetAutoDeploymentTargetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSetAutoDeploymentTargets\", {})\n .n(\"CloudFormationClient\", \"ListStackSetAutoDeploymentTargetsCommand\")\n .sc(schemas_0.ListStackSetAutoDeploymentTargets$)\n .build() {\n}\n\nclass ListStackSetOperationResultsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSetOperationResults\", {})\n .n(\"CloudFormationClient\", \"ListStackSetOperationResultsCommand\")\n .sc(schemas_0.ListStackSetOperationResults$)\n .build() {\n}\n\nclass ListStackSetOperationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSetOperations\", {})\n .n(\"CloudFormationClient\", \"ListStackSetOperationsCommand\")\n .sc(schemas_0.ListStackSetOperations$)\n .build() {\n}\n\nclass ListStackSetsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListStackSets\", {})\n .n(\"CloudFormationClient\", \"ListStackSetsCommand\")\n .sc(schemas_0.ListStackSets$)\n .build() {\n}\n\nclass ListTypeRegistrationsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListTypeRegistrations\", {})\n .n(\"CloudFormationClient\", \"ListTypeRegistrationsCommand\")\n .sc(schemas_0.ListTypeRegistrations$)\n .build() {\n}\n\nclass ListTypesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListTypes\", {})\n .n(\"CloudFormationClient\", \"ListTypesCommand\")\n .sc(schemas_0.ListTypes$)\n .build() {\n}\n\nclass ListTypeVersionsCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ListTypeVersions\", {})\n .n(\"CloudFormationClient\", \"ListTypeVersionsCommand\")\n .sc(schemas_0.ListTypeVersions$)\n .build() {\n}\n\nclass PublishTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"PublishType\", {})\n .n(\"CloudFormationClient\", \"PublishTypeCommand\")\n .sc(schemas_0.PublishType$)\n .build() {\n}\n\nclass RecordHandlerProgressCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RecordHandlerProgress\", {})\n .n(\"CloudFormationClient\", \"RecordHandlerProgressCommand\")\n .sc(schemas_0.RecordHandlerProgress$)\n .build() {\n}\n\nclass RegisterPublisherCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RegisterPublisher\", {})\n .n(\"CloudFormationClient\", \"RegisterPublisherCommand\")\n .sc(schemas_0.RegisterPublisher$)\n .build() {\n}\n\nclass RegisterTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RegisterType\", {})\n .n(\"CloudFormationClient\", \"RegisterTypeCommand\")\n .sc(schemas_0.RegisterType$)\n .build() {\n}\n\nclass RollbackStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"RollbackStack\", {})\n .n(\"CloudFormationClient\", \"RollbackStackCommand\")\n .sc(schemas_0.RollbackStack$)\n .build() {\n}\n\nclass SetStackPolicyCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SetStackPolicy\", {})\n .n(\"CloudFormationClient\", \"SetStackPolicyCommand\")\n .sc(schemas_0.SetStackPolicy$)\n .build() {\n}\n\nclass SetTypeConfigurationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SetTypeConfiguration\", {})\n .n(\"CloudFormationClient\", \"SetTypeConfigurationCommand\")\n .sc(schemas_0.SetTypeConfiguration$)\n .build() {\n}\n\nclass SetTypeDefaultVersionCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SetTypeDefaultVersion\", {})\n .n(\"CloudFormationClient\", \"SetTypeDefaultVersionCommand\")\n .sc(schemas_0.SetTypeDefaultVersion$)\n .build() {\n}\n\nclass SignalResourceCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"SignalResource\", {})\n .n(\"CloudFormationClient\", \"SignalResourceCommand\")\n .sc(schemas_0.SignalResource$)\n .build() {\n}\n\nclass StartResourceScanCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"StartResourceScan\", {})\n .n(\"CloudFormationClient\", \"StartResourceScanCommand\")\n .sc(schemas_0.StartResourceScan$)\n .build() {\n}\n\nclass StopStackSetOperationCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"StopStackSetOperation\", {})\n .n(\"CloudFormationClient\", \"StopStackSetOperationCommand\")\n .sc(schemas_0.StopStackSetOperation$)\n .build() {\n}\n\nclass TestTypeCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"TestType\", {})\n .n(\"CloudFormationClient\", \"TestTypeCommand\")\n .sc(schemas_0.TestType$)\n .build() {\n}\n\nclass UpdateGeneratedTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateGeneratedTemplate\", {})\n .n(\"CloudFormationClient\", \"UpdateGeneratedTemplateCommand\")\n .sc(schemas_0.UpdateGeneratedTemplate$)\n .build() {\n}\n\nclass UpdateStackCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateStack\", {})\n .n(\"CloudFormationClient\", \"UpdateStackCommand\")\n .sc(schemas_0.UpdateStack$)\n .build() {\n}\n\nclass UpdateStackInstancesCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateStackInstances\", {})\n .n(\"CloudFormationClient\", \"UpdateStackInstancesCommand\")\n .sc(schemas_0.UpdateStackInstances$)\n .build() {\n}\n\nclass UpdateStackSetCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateStackSet\", {})\n .n(\"CloudFormationClient\", \"UpdateStackSetCommand\")\n .sc(schemas_0.UpdateStackSet$)\n .build() {\n}\n\nclass UpdateTerminationProtectionCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"UpdateTerminationProtection\", {})\n .n(\"CloudFormationClient\", \"UpdateTerminationProtectionCommand\")\n .sc(schemas_0.UpdateTerminationProtection$)\n .build() {\n}\n\nclass ValidateTemplateCommand extends smithyClient.Command\n .classBuilder()\n .ep(commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"CloudFormation\", \"ValidateTemplate\", {})\n .n(\"CloudFormationClient\", \"ValidateTemplateCommand\")\n .sc(schemas_0.ValidateTemplate$)\n .build() {\n}\n\nconst paginateDescribeAccountLimits = core.createPaginator(CloudFormationClient, DescribeAccountLimitsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeChangeSet = core.createPaginator(CloudFormationClient, DescribeChangeSetCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeEvents = core.createPaginator(CloudFormationClient, DescribeEventsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeStackEvents = core.createPaginator(CloudFormationClient, DescribeStackEventsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateDescribeStackResourceDrifts = core.createPaginator(CloudFormationClient, DescribeStackResourceDriftsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateDescribeStacks = core.createPaginator(CloudFormationClient, DescribeStacksCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListChangeSets = core.createPaginator(CloudFormationClient, ListChangeSetsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListExports = core.createPaginator(CloudFormationClient, ListExportsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListGeneratedTemplates = core.createPaginator(CloudFormationClient, ListGeneratedTemplatesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListImports = core.createPaginator(CloudFormationClient, ListImportsCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListResourceScanRelatedResources = core.createPaginator(CloudFormationClient, ListResourceScanRelatedResourcesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListResourceScanResources = core.createPaginator(CloudFormationClient, ListResourceScanResourcesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListResourceScans = core.createPaginator(CloudFormationClient, ListResourceScansCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackInstances = core.createPaginator(CloudFormationClient, ListStackInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackRefactorActions = core.createPaginator(CloudFormationClient, ListStackRefactorActionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackRefactors = core.createPaginator(CloudFormationClient, ListStackRefactorsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackResources = core.createPaginator(CloudFormationClient, ListStackResourcesCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListStackSetOperationResults = core.createPaginator(CloudFormationClient, ListStackSetOperationResultsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackSetOperations = core.createPaginator(CloudFormationClient, ListStackSetOperationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStackSets = core.createPaginator(CloudFormationClient, ListStackSetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListStacks = core.createPaginator(CloudFormationClient, ListStacksCommand, \"NextToken\", \"NextToken\", \"\");\n\nconst paginateListTypeRegistrations = core.createPaginator(CloudFormationClient, ListTypeRegistrationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListTypes = core.createPaginator(CloudFormationClient, ListTypesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst paginateListTypeVersions = core.createPaginator(CloudFormationClient, ListTypeVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\nconst checkState$9 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeChangeSetCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"CREATE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForChangeSetCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$9);\n};\nconst waitUntilChangeSetCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$9);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$8 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"CREATE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_COMPLETE_CLEANUP_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_FAILED\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_FAILED\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$8);\n};\nconst waitUntilStackCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$8);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$7 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"DELETE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_IN_PROGRESS\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackDeleteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$7);\n};\nconst waitUntilStackDeleteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$7);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$6 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.RETRY, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$6);\n};\nconst waitUntilStackExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$6);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$5 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"IMPORT_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"IMPORT_ROLLBACK_IN_PROGRESS\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"IMPORT_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"IMPORT_ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackImportComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n};\nconst waitUntilStackImportComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$5);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$4 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStackRefactorCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"CREATE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.Status;\n };\n if (returnComparator() === \"CREATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackRefactorCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n};\nconst waitUntilStackRefactorCreateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$4);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$3 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStackRefactorCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.ExecutionStatus;\n };\n if (returnComparator() === \"EXECUTE_COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.ExecutionStatus;\n };\n if (returnComparator() === \"EXECUTE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.ExecutionStatus;\n };\n if (returnComparator() === \"ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackRefactorExecuteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n};\nconst waitUntilStackRefactorExecuteComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$3);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$2 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_ROLLBACK_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DELETE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackRollbackComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n};\nconst waitUntilStackRollbackComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$2);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState$1 = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeStacksCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n let allStringEq_5 = (returnComparator().length > 0);\n for (let element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && (element_4 == \"UPDATE_COMPLETE\");\n }\n if (allStringEq_5) {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n let flat_1 = [].concat(...result.Stacks);\n let projection_3 = flat_1.map((element_2) => {\n return element_2.StackStatus;\n });\n return projection_3;\n };\n for (let anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"UPDATE_ROLLBACK_COMPLETE\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ValidationError\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForStackUpdateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n};\nconst waitUntilStackUpdateComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState$1);\n return utilWaiter.checkExceptions(result);\n};\n\nconst checkState = async (client, input) => {\n let reason;\n try {\n let result = await client.send(new DescribeTypeRegistrationCommand(input));\n reason = result;\n try {\n const returnComparator = () => {\n return result.ProgressStatus;\n };\n if (returnComparator() === \"COMPLETE\") {\n return { state: utilWaiter.WaiterState.SUCCESS, reason };\n }\n }\n catch (e) { }\n try {\n const returnComparator = () => {\n return result.ProgressStatus;\n };\n if (returnComparator() === \"FAILED\") {\n return { state: utilWaiter.WaiterState.FAILURE, reason };\n }\n }\n catch (e) { }\n }\n catch (exception) {\n reason = exception;\n }\n return { state: utilWaiter.WaiterState.RETRY, reason };\n};\nconst waitForTypeRegistrationComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nconst waitUntilTypeRegistrationComplete = async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return utilWaiter.checkExceptions(result);\n};\n\nconst commands = {\n ActivateOrganizationsAccessCommand,\n ActivateTypeCommand,\n BatchDescribeTypeConfigurationsCommand,\n CancelUpdateStackCommand,\n ContinueUpdateRollbackCommand,\n CreateChangeSetCommand,\n CreateGeneratedTemplateCommand,\n CreateStackCommand,\n CreateStackInstancesCommand,\n CreateStackRefactorCommand,\n CreateStackSetCommand,\n DeactivateOrganizationsAccessCommand,\n DeactivateTypeCommand,\n DeleteChangeSetCommand,\n DeleteGeneratedTemplateCommand,\n DeleteStackCommand,\n DeleteStackInstancesCommand,\n DeleteStackSetCommand,\n DeregisterTypeCommand,\n DescribeAccountLimitsCommand,\n DescribeChangeSetCommand,\n DescribeChangeSetHooksCommand,\n DescribeEventsCommand,\n DescribeGeneratedTemplateCommand,\n DescribeOrganizationsAccessCommand,\n DescribePublisherCommand,\n DescribeResourceScanCommand,\n DescribeStackDriftDetectionStatusCommand,\n DescribeStackEventsCommand,\n DescribeStackInstanceCommand,\n DescribeStackRefactorCommand,\n DescribeStackResourceCommand,\n DescribeStackResourceDriftsCommand,\n DescribeStackResourcesCommand,\n DescribeStacksCommand,\n DescribeStackSetCommand,\n DescribeStackSetOperationCommand,\n DescribeTypeCommand,\n DescribeTypeRegistrationCommand,\n DetectStackDriftCommand,\n DetectStackResourceDriftCommand,\n DetectStackSetDriftCommand,\n EstimateTemplateCostCommand,\n ExecuteChangeSetCommand,\n ExecuteStackRefactorCommand,\n GetGeneratedTemplateCommand,\n GetHookResultCommand,\n GetStackPolicyCommand,\n GetTemplateCommand,\n GetTemplateSummaryCommand,\n ImportStacksToStackSetCommand,\n ListChangeSetsCommand,\n ListExportsCommand,\n ListGeneratedTemplatesCommand,\n ListHookResultsCommand,\n ListImportsCommand,\n ListResourceScanRelatedResourcesCommand,\n ListResourceScanResourcesCommand,\n ListResourceScansCommand,\n ListStackInstanceResourceDriftsCommand,\n ListStackInstancesCommand,\n ListStackRefactorActionsCommand,\n ListStackRefactorsCommand,\n ListStackResourcesCommand,\n ListStacksCommand,\n ListStackSetAutoDeploymentTargetsCommand,\n ListStackSetOperationResultsCommand,\n ListStackSetOperationsCommand,\n ListStackSetsCommand,\n ListTypeRegistrationsCommand,\n ListTypesCommand,\n ListTypeVersionsCommand,\n PublishTypeCommand,\n RecordHandlerProgressCommand,\n RegisterPublisherCommand,\n RegisterTypeCommand,\n RollbackStackCommand,\n SetStackPolicyCommand,\n SetTypeConfigurationCommand,\n SetTypeDefaultVersionCommand,\n SignalResourceCommand,\n StartResourceScanCommand,\n StopStackSetOperationCommand,\n TestTypeCommand,\n UpdateGeneratedTemplateCommand,\n UpdateStackCommand,\n UpdateStackInstancesCommand,\n UpdateStackSetCommand,\n UpdateTerminationProtectionCommand,\n ValidateTemplateCommand,\n};\nconst paginators = {\n paginateDescribeAccountLimits,\n paginateDescribeChangeSet,\n paginateDescribeEvents,\n paginateDescribeStackEvents,\n paginateDescribeStackResourceDrifts,\n paginateDescribeStacks,\n paginateListChangeSets,\n paginateListExports,\n paginateListGeneratedTemplates,\n paginateListImports,\n paginateListResourceScanRelatedResources,\n paginateListResourceScanResources,\n paginateListResourceScans,\n paginateListStackInstances,\n paginateListStackRefactorActions,\n paginateListStackRefactors,\n paginateListStackResources,\n paginateListStacks,\n paginateListStackSetOperationResults,\n paginateListStackSetOperations,\n paginateListStackSets,\n paginateListTypeRegistrations,\n paginateListTypes,\n paginateListTypeVersions,\n};\nconst waiters = {\n waitUntilChangeSetCreateComplete,\n waitUntilStackRefactorCreateComplete,\n waitUntilStackRefactorExecuteComplete,\n waitUntilStackCreateComplete,\n waitUntilStackDeleteComplete,\n waitUntilStackExists,\n waitUntilStackImportComplete,\n waitUntilStackRollbackComplete,\n waitUntilStackUpdateComplete,\n waitUntilTypeRegistrationComplete,\n};\nclass CloudFormation extends CloudFormationClient {\n}\nsmithyClient.createAggregatedClient(commands, CloudFormation, { paginators, waiters });\n\nconst AccountFilterType = {\n DIFFERENCE: \"DIFFERENCE\",\n INTERSECTION: \"INTERSECTION\",\n NONE: \"NONE\",\n UNION: \"UNION\",\n};\nconst AccountGateStatus = {\n FAILED: \"FAILED\",\n SKIPPED: \"SKIPPED\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst ThirdPartyType = {\n HOOK: \"HOOK\",\n MODULE: \"MODULE\",\n RESOURCE: \"RESOURCE\",\n};\nconst VersionBump = {\n MAJOR: \"MAJOR\",\n MINOR: \"MINOR\",\n};\nconst AfterValueFrom = {\n TEMPLATE: \"TEMPLATE\",\n};\nconst AnnotationSeverityLevel = {\n CRITICAL: \"CRITICAL\",\n HIGH: \"HIGH\",\n INFORMATIONAL: \"INFORMATIONAL\",\n LOW: \"LOW\",\n MEDIUM: \"MEDIUM\",\n};\nconst AnnotationStatus = {\n FAILED: \"FAILED\",\n PASSED: \"PASSED\",\n SKIPPED: \"SKIPPED\",\n};\nconst AttributeChangeType = {\n Add: \"Add\",\n Modify: \"Modify\",\n Remove: \"Remove\",\n SyncWithActual: \"SyncWithActual\",\n};\nconst BeaconStackOperationStatus = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst BeforeValueFrom = {\n ACTUAL_STATE: \"ACTUAL_STATE\",\n PREVIOUS_DEPLOYMENT_STATE: \"PREVIOUS_DEPLOYMENT_STATE\",\n};\nconst CallAs = {\n DELEGATED_ADMIN: \"DELEGATED_ADMIN\",\n SELF: \"SELF\",\n};\nconst Capability = {\n CAPABILITY_AUTO_EXPAND: \"CAPABILITY_AUTO_EXPAND\",\n CAPABILITY_IAM: \"CAPABILITY_IAM\",\n CAPABILITY_NAMED_IAM: \"CAPABILITY_NAMED_IAM\",\n};\nconst Category = {\n ACTIVATED: \"ACTIVATED\",\n AWS_TYPES: \"AWS_TYPES\",\n REGISTERED: \"REGISTERED\",\n THIRD_PARTY: \"THIRD_PARTY\",\n};\nconst ChangeAction = {\n Add: \"Add\",\n Dynamic: \"Dynamic\",\n Import: \"Import\",\n Modify: \"Modify\",\n Remove: \"Remove\",\n SyncWithActual: \"SyncWithActual\",\n};\nconst ChangeSource = {\n Automatic: \"Automatic\",\n DirectModification: \"DirectModification\",\n NoModification: \"NoModification\",\n ParameterReference: \"ParameterReference\",\n ResourceAttribute: \"ResourceAttribute\",\n ResourceReference: \"ResourceReference\",\n};\nconst EvaluationType = {\n Dynamic: \"Dynamic\",\n Static: \"Static\",\n};\nconst ResourceAttribute = {\n CreationPolicy: \"CreationPolicy\",\n DeletionPolicy: \"DeletionPolicy\",\n Metadata: \"Metadata\",\n Properties: \"Properties\",\n Tags: \"Tags\",\n UpdatePolicy: \"UpdatePolicy\",\n UpdateReplacePolicy: \"UpdateReplacePolicy\",\n};\nconst RequiresRecreation = {\n Always: \"Always\",\n Conditionally: \"Conditionally\",\n Never: \"Never\",\n};\nconst PolicyAction = {\n Delete: \"Delete\",\n ReplaceAndDelete: \"ReplaceAndDelete\",\n ReplaceAndRetain: \"ReplaceAndRetain\",\n ReplaceAndSnapshot: \"ReplaceAndSnapshot\",\n Retain: \"Retain\",\n Snapshot: \"Snapshot\",\n};\nconst Replacement = {\n Conditional: \"Conditional\",\n False: \"False\",\n True: \"True\",\n};\nconst DriftIgnoredReason = {\n MANAGED_BY_AWS: \"MANAGED_BY_AWS\",\n WRITE_ONLY_PROPERTY: \"WRITE_ONLY_PROPERTY\",\n};\nconst StackResourceDriftStatus = {\n DELETED: \"DELETED\",\n IN_SYNC: \"IN_SYNC\",\n MODIFIED: \"MODIFIED\",\n NOT_CHECKED: \"NOT_CHECKED\",\n UNKNOWN: \"UNKNOWN\",\n UNSUPPORTED: \"UNSUPPORTED\",\n};\nconst ChangeType = {\n Resource: \"Resource\",\n};\nconst HookFailureMode = {\n FAIL: \"FAIL\",\n WARN: \"WARN\",\n};\nconst HookInvocationPoint = {\n PRE_PROVISION: \"PRE_PROVISION\",\n};\nconst HookTargetType = {\n RESOURCE: \"RESOURCE\",\n};\nconst ChangeSetHooksStatus = {\n PLANNED: \"PLANNED\",\n PLANNING: \"PLANNING\",\n UNAVAILABLE: \"UNAVAILABLE\",\n};\nconst ChangeSetStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n CREATE_PENDING: \"CREATE_PENDING\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n DELETE_PENDING: \"DELETE_PENDING\",\n FAILED: \"FAILED\",\n};\nconst ExecutionStatus = {\n AVAILABLE: \"AVAILABLE\",\n EXECUTE_COMPLETE: \"EXECUTE_COMPLETE\",\n EXECUTE_FAILED: \"EXECUTE_FAILED\",\n EXECUTE_IN_PROGRESS: \"EXECUTE_IN_PROGRESS\",\n OBSOLETE: \"OBSOLETE\",\n UNAVAILABLE: \"UNAVAILABLE\",\n};\nconst ChangeSetType = {\n CREATE: \"CREATE\",\n IMPORT: \"IMPORT\",\n UPDATE: \"UPDATE\",\n};\nconst DeploymentMode = {\n REVERT_DRIFT: \"REVERT_DRIFT\",\n};\nconst OnStackFailure = {\n DELETE: \"DELETE\",\n DO_NOTHING: \"DO_NOTHING\",\n ROLLBACK: \"ROLLBACK\",\n};\nconst GeneratedTemplateDeletionPolicy = {\n DELETE: \"DELETE\",\n RETAIN: \"RETAIN\",\n};\nconst GeneratedTemplateUpdateReplacePolicy = {\n DELETE: \"DELETE\",\n RETAIN: \"RETAIN\",\n};\nconst OnFailure = {\n DELETE: \"DELETE\",\n DO_NOTHING: \"DO_NOTHING\",\n ROLLBACK: \"ROLLBACK\",\n};\nconst ConcurrencyMode = {\n SOFT_FAILURE_TOLERANCE: \"SOFT_FAILURE_TOLERANCE\",\n STRICT_FAILURE_TOLERANCE: \"STRICT_FAILURE_TOLERANCE\",\n};\nconst RegionConcurrencyType = {\n PARALLEL: \"PARALLEL\",\n SEQUENTIAL: \"SEQUENTIAL\",\n};\nconst PermissionModels = {\n SELF_MANAGED: \"SELF_MANAGED\",\n SERVICE_MANAGED: \"SERVICE_MANAGED\",\n};\nconst DeletionMode = {\n FORCE_DELETE_STACK: \"FORCE_DELETE_STACK\",\n STANDARD: \"STANDARD\",\n};\nconst RegistryType = {\n HOOK: \"HOOK\",\n MODULE: \"MODULE\",\n RESOURCE: \"RESOURCE\",\n};\nconst StackDriftStatus = {\n DRIFTED: \"DRIFTED\",\n IN_SYNC: \"IN_SYNC\",\n NOT_CHECKED: \"NOT_CHECKED\",\n UNKNOWN: \"UNKNOWN\",\n};\nconst DetailedStatus = {\n CONFIGURATION_COMPLETE: \"CONFIGURATION_COMPLETE\",\n VALIDATION_FAILED: \"VALIDATION_FAILED\",\n};\nconst EventType = {\n HOOK_INVOCATION_ERROR: \"HOOK_INVOCATION_ERROR\",\n PROGRESS_EVENT: \"PROGRESS_EVENT\",\n PROVISIONING_ERROR: \"PROVISIONING_ERROR\",\n STACK_EVENT: \"STACK_EVENT\",\n VALIDATION_ERROR: \"VALIDATION_ERROR\",\n};\nconst HookStatus = {\n HOOK_COMPLETE_FAILED: \"HOOK_COMPLETE_FAILED\",\n HOOK_COMPLETE_SUCCEEDED: \"HOOK_COMPLETE_SUCCEEDED\",\n HOOK_FAILED: \"HOOK_FAILED\",\n HOOK_IN_PROGRESS: \"HOOK_IN_PROGRESS\",\n};\nconst OperationType = {\n CONTINUE_ROLLBACK: \"CONTINUE_ROLLBACK\",\n CREATE_CHANGESET: \"CREATE_CHANGESET\",\n CREATE_STACK: \"CREATE_STACK\",\n DELETE_STACK: \"DELETE_STACK\",\n ROLLBACK: \"ROLLBACK\",\n UPDATE_STACK: \"UPDATE_STACK\",\n};\nconst ResourceStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n DELETE_SKIPPED: \"DELETE_SKIPPED\",\n EXPORT_COMPLETE: \"EXPORT_COMPLETE\",\n EXPORT_FAILED: \"EXPORT_FAILED\",\n EXPORT_IN_PROGRESS: \"EXPORT_IN_PROGRESS\",\n EXPORT_ROLLBACK_COMPLETE: \"EXPORT_ROLLBACK_COMPLETE\",\n EXPORT_ROLLBACK_FAILED: \"EXPORT_ROLLBACK_FAILED\",\n EXPORT_ROLLBACK_IN_PROGRESS: \"EXPORT_ROLLBACK_IN_PROGRESS\",\n IMPORT_COMPLETE: \"IMPORT_COMPLETE\",\n IMPORT_FAILED: \"IMPORT_FAILED\",\n IMPORT_IN_PROGRESS: \"IMPORT_IN_PROGRESS\",\n IMPORT_ROLLBACK_COMPLETE: \"IMPORT_ROLLBACK_COMPLETE\",\n IMPORT_ROLLBACK_FAILED: \"IMPORT_ROLLBACK_FAILED\",\n IMPORT_ROLLBACK_IN_PROGRESS: \"IMPORT_ROLLBACK_IN_PROGRESS\",\n ROLLBACK_COMPLETE: \"ROLLBACK_COMPLETE\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n UPDATE_COMPLETE: \"UPDATE_COMPLETE\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\",\n UPDATE_ROLLBACK_COMPLETE: \"UPDATE_ROLLBACK_COMPLETE\",\n UPDATE_ROLLBACK_FAILED: \"UPDATE_ROLLBACK_FAILED\",\n UPDATE_ROLLBACK_IN_PROGRESS: \"UPDATE_ROLLBACK_IN_PROGRESS\",\n};\nconst ValidationStatus = {\n FAILED: \"FAILED\",\n SKIPPED: \"SKIPPED\",\n};\nconst GeneratedTemplateResourceStatus = {\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n};\nconst WarningType = {\n EXCLUDED_PROPERTIES: \"EXCLUDED_PROPERTIES\",\n EXCLUDED_RESOURCES: \"EXCLUDED_RESOURCES\",\n MUTUALLY_EXCLUSIVE_PROPERTIES: \"MUTUALLY_EXCLUSIVE_PROPERTIES\",\n MUTUALLY_EXCLUSIVE_TYPES: \"MUTUALLY_EXCLUSIVE_TYPES\",\n UNSUPPORTED_PROPERTIES: \"UNSUPPORTED_PROPERTIES\",\n};\nconst GeneratedTemplateStatus = {\n COMPLETE: \"COMPLETE\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n CREATE_PENDING: \"CREATE_PENDING\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n DELETE_PENDING: \"DELETE_PENDING\",\n FAILED: \"FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\",\n UPDATE_PENDING: \"UPDATE_PENDING\",\n};\nconst OrganizationStatus = {\n DISABLED: \"DISABLED\",\n DISABLED_PERMANENTLY: \"DISABLED_PERMANENTLY\",\n ENABLED: \"ENABLED\",\n};\nconst IdentityProvider = {\n AWS_Marketplace: \"AWS_Marketplace\",\n Bitbucket: \"Bitbucket\",\n GitHub: \"GitHub\",\n};\nconst PublisherStatus = {\n UNVERIFIED: \"UNVERIFIED\",\n VERIFIED: \"VERIFIED\",\n};\nconst ResourceScanStatus = {\n COMPLETE: \"COMPLETE\",\n EXPIRED: \"EXPIRED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n};\nconst StackDriftDetectionStatus = {\n DETECTION_COMPLETE: \"DETECTION_COMPLETE\",\n DETECTION_FAILED: \"DETECTION_FAILED\",\n DETECTION_IN_PROGRESS: \"DETECTION_IN_PROGRESS\",\n};\nconst StackInstanceDetailedStatus = {\n CANCELLED: \"CANCELLED\",\n FAILED: \"FAILED\",\n FAILED_IMPORT: \"FAILED_IMPORT\",\n INOPERABLE: \"INOPERABLE\",\n PENDING: \"PENDING\",\n RUNNING: \"RUNNING\",\n SKIPPED_SUSPENDED_ACCOUNT: \"SKIPPED_SUSPENDED_ACCOUNT\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst StackInstanceStatus = {\n CURRENT: \"CURRENT\",\n INOPERABLE: \"INOPERABLE\",\n OUTDATED: \"OUTDATED\",\n};\nconst StackRefactorExecutionStatus = {\n AVAILABLE: \"AVAILABLE\",\n EXECUTE_COMPLETE: \"EXECUTE_COMPLETE\",\n EXECUTE_FAILED: \"EXECUTE_FAILED\",\n EXECUTE_IN_PROGRESS: \"EXECUTE_IN_PROGRESS\",\n OBSOLETE: \"OBSOLETE\",\n ROLLBACK_COMPLETE: \"ROLLBACK_COMPLETE\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n UNAVAILABLE: \"UNAVAILABLE\",\n};\nconst StackRefactorStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n};\nconst DifferenceType = {\n ADD: \"ADD\",\n NOT_EQUAL: \"NOT_EQUAL\",\n REMOVE: \"REMOVE\",\n};\nconst StackStatus = {\n CREATE_COMPLETE: \"CREATE_COMPLETE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATE_IN_PROGRESS: \"CREATE_IN_PROGRESS\",\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n IMPORT_COMPLETE: \"IMPORT_COMPLETE\",\n IMPORT_IN_PROGRESS: \"IMPORT_IN_PROGRESS\",\n IMPORT_ROLLBACK_COMPLETE: \"IMPORT_ROLLBACK_COMPLETE\",\n IMPORT_ROLLBACK_FAILED: \"IMPORT_ROLLBACK_FAILED\",\n IMPORT_ROLLBACK_IN_PROGRESS: \"IMPORT_ROLLBACK_IN_PROGRESS\",\n REVIEW_IN_PROGRESS: \"REVIEW_IN_PROGRESS\",\n ROLLBACK_COMPLETE: \"ROLLBACK_COMPLETE\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n UPDATE_COMPLETE: \"UPDATE_COMPLETE\",\n UPDATE_COMPLETE_CLEANUP_IN_PROGRESS: \"UPDATE_COMPLETE_CLEANUP_IN_PROGRESS\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\",\n UPDATE_ROLLBACK_COMPLETE: \"UPDATE_ROLLBACK_COMPLETE\",\n UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS: \"UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS\",\n UPDATE_ROLLBACK_FAILED: \"UPDATE_ROLLBACK_FAILED\",\n UPDATE_ROLLBACK_IN_PROGRESS: \"UPDATE_ROLLBACK_IN_PROGRESS\",\n};\nconst StackSetDriftDetectionStatus = {\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PARTIAL_SUCCESS: \"PARTIAL_SUCCESS\",\n STOPPED: \"STOPPED\",\n};\nconst StackSetDriftStatus = {\n DRIFTED: \"DRIFTED\",\n IN_SYNC: \"IN_SYNC\",\n NOT_CHECKED: \"NOT_CHECKED\",\n};\nconst StackSetStatus = {\n ACTIVE: \"ACTIVE\",\n DELETED: \"DELETED\",\n};\nconst StackSetOperationAction = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n DETECT_DRIFT: \"DETECT_DRIFT\",\n UPDATE: \"UPDATE\",\n};\nconst StackSetOperationStatus = {\n FAILED: \"FAILED\",\n QUEUED: \"QUEUED\",\n RUNNING: \"RUNNING\",\n STOPPED: \"STOPPED\",\n STOPPING: \"STOPPING\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst DeprecatedStatus = {\n DEPRECATED: \"DEPRECATED\",\n LIVE: \"LIVE\",\n};\nconst ProvisioningType = {\n FULLY_MUTABLE: \"FULLY_MUTABLE\",\n IMMUTABLE: \"IMMUTABLE\",\n NON_PROVISIONABLE: \"NON_PROVISIONABLE\",\n};\nconst TypeTestsStatus = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n NOT_TESTED: \"NOT_TESTED\",\n PASSED: \"PASSED\",\n};\nconst Visibility = {\n PRIVATE: \"PRIVATE\",\n PUBLIC: \"PUBLIC\",\n};\nconst RegistrationStatus = {\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n};\nconst TemplateFormat = {\n JSON: \"JSON\",\n YAML: \"YAML\",\n};\nconst HookTargetAction = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n IMPORT: \"IMPORT\",\n UPDATE: \"UPDATE\",\n};\nconst TemplateStage = {\n Original: \"Original\",\n Processed: \"Processed\",\n};\nconst ListHookResultsTargetType = {\n CHANGE_SET: \"CHANGE_SET\",\n CLOUD_CONTROL: \"CLOUD_CONTROL\",\n RESOURCE: \"RESOURCE\",\n STACK: \"STACK\",\n};\nconst ScanType = {\n FULL: \"FULL\",\n PARTIAL: \"PARTIAL\",\n};\nconst StackInstanceFilterName = {\n DETAILED_STATUS: \"DETAILED_STATUS\",\n DRIFT_STATUS: \"DRIFT_STATUS\",\n LAST_OPERATION_ID: \"LAST_OPERATION_ID\",\n};\nconst StackRefactorActionType = {\n CREATE: \"CREATE\",\n MOVE: \"MOVE\",\n};\nconst StackRefactorDetection = {\n AUTO: \"AUTO\",\n MANUAL: \"MANUAL\",\n};\nconst StackRefactorActionEntity = {\n RESOURCE: \"RESOURCE\",\n STACK: \"STACK\",\n};\nconst OperationResultFilterName = {\n OPERATION_RESULT_STATUS: \"OPERATION_RESULT_STATUS\",\n};\nconst StackSetOperationResultStatus = {\n CANCELLED: \"CANCELLED\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n RUNNING: \"RUNNING\",\n SUCCEEDED: \"SUCCEEDED\",\n};\nconst OperationStatus = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n SUCCESS: \"SUCCESS\",\n};\nconst HandlerErrorCode = {\n AccessDenied: \"AccessDenied\",\n AlreadyExists: \"AlreadyExists\",\n GeneralServiceException: \"GeneralServiceException\",\n HandlerInternalFailure: \"HandlerInternalFailure\",\n InternalFailure: \"InternalFailure\",\n InvalidCredentials: \"InvalidCredentials\",\n InvalidRequest: \"InvalidRequest\",\n InvalidTypeConfiguration: \"InvalidTypeConfiguration\",\n NetworkFailure: \"NetworkFailure\",\n NonCompliant: \"NonCompliant\",\n NotFound: \"NotFound\",\n NotUpdatable: \"NotUpdatable\",\n ResourceConflict: \"ResourceConflict\",\n ServiceInternalError: \"ServiceInternalError\",\n ServiceLimitExceeded: \"ServiceLimitExceeded\",\n ServiceTimeout: \"NotStabilized\",\n Throttling: \"Throttling\",\n Unknown: \"Unknown\",\n UnsupportedTarget: \"UnsupportedTarget\",\n};\nconst ResourceSignalStatus = {\n FAILURE: \"FAILURE\",\n SUCCESS: \"SUCCESS\",\n};\n\nexports.$Command = smithyClient.Command;\nexports.__Client = smithyClient.Client;\nexports.CloudFormationServiceException = CloudFormationServiceException.CloudFormationServiceException;\nexports.AccountFilterType = AccountFilterType;\nexports.AccountGateStatus = AccountGateStatus;\nexports.ActivateOrganizationsAccessCommand = ActivateOrganizationsAccessCommand;\nexports.ActivateTypeCommand = ActivateTypeCommand;\nexports.AfterValueFrom = AfterValueFrom;\nexports.AnnotationSeverityLevel = AnnotationSeverityLevel;\nexports.AnnotationStatus = AnnotationStatus;\nexports.AttributeChangeType = AttributeChangeType;\nexports.BatchDescribeTypeConfigurationsCommand = BatchDescribeTypeConfigurationsCommand;\nexports.BeaconStackOperationStatus = BeaconStackOperationStatus;\nexports.BeforeValueFrom = BeforeValueFrom;\nexports.CallAs = CallAs;\nexports.CancelUpdateStackCommand = CancelUpdateStackCommand;\nexports.Capability = Capability;\nexports.Category = Category;\nexports.ChangeAction = ChangeAction;\nexports.ChangeSetHooksStatus = ChangeSetHooksStatus;\nexports.ChangeSetStatus = ChangeSetStatus;\nexports.ChangeSetType = ChangeSetType;\nexports.ChangeSource = ChangeSource;\nexports.ChangeType = ChangeType;\nexports.CloudFormation = CloudFormation;\nexports.CloudFormationClient = CloudFormationClient;\nexports.ConcurrencyMode = ConcurrencyMode;\nexports.ContinueUpdateRollbackCommand = ContinueUpdateRollbackCommand;\nexports.CreateChangeSetCommand = CreateChangeSetCommand;\nexports.CreateGeneratedTemplateCommand = CreateGeneratedTemplateCommand;\nexports.CreateStackCommand = CreateStackCommand;\nexports.CreateStackInstancesCommand = CreateStackInstancesCommand;\nexports.CreateStackRefactorCommand = CreateStackRefactorCommand;\nexports.CreateStackSetCommand = CreateStackSetCommand;\nexports.DeactivateOrganizationsAccessCommand = DeactivateOrganizationsAccessCommand;\nexports.DeactivateTypeCommand = DeactivateTypeCommand;\nexports.DeleteChangeSetCommand = DeleteChangeSetCommand;\nexports.DeleteGeneratedTemplateCommand = DeleteGeneratedTemplateCommand;\nexports.DeleteStackCommand = DeleteStackCommand;\nexports.DeleteStackInstancesCommand = DeleteStackInstancesCommand;\nexports.DeleteStackSetCommand = DeleteStackSetCommand;\nexports.DeletionMode = DeletionMode;\nexports.DeploymentMode = DeploymentMode;\nexports.DeprecatedStatus = DeprecatedStatus;\nexports.DeregisterTypeCommand = DeregisterTypeCommand;\nexports.DescribeAccountLimitsCommand = DescribeAccountLimitsCommand;\nexports.DescribeChangeSetCommand = DescribeChangeSetCommand;\nexports.DescribeChangeSetHooksCommand = DescribeChangeSetHooksCommand;\nexports.DescribeEventsCommand = DescribeEventsCommand;\nexports.DescribeGeneratedTemplateCommand = DescribeGeneratedTemplateCommand;\nexports.DescribeOrganizationsAccessCommand = DescribeOrganizationsAccessCommand;\nexports.DescribePublisherCommand = DescribePublisherCommand;\nexports.DescribeResourceScanCommand = DescribeResourceScanCommand;\nexports.DescribeStackDriftDetectionStatusCommand = DescribeStackDriftDetectionStatusCommand;\nexports.DescribeStackEventsCommand = DescribeStackEventsCommand;\nexports.DescribeStackInstanceCommand = DescribeStackInstanceCommand;\nexports.DescribeStackRefactorCommand = DescribeStackRefactorCommand;\nexports.DescribeStackResourceCommand = DescribeStackResourceCommand;\nexports.DescribeStackResourceDriftsCommand = DescribeStackResourceDriftsCommand;\nexports.DescribeStackResourcesCommand = DescribeStackResourcesCommand;\nexports.DescribeStackSetCommand = DescribeStackSetCommand;\nexports.DescribeStackSetOperationCommand = DescribeStackSetOperationCommand;\nexports.DescribeStacksCommand = DescribeStacksCommand;\nexports.DescribeTypeCommand = DescribeTypeCommand;\nexports.DescribeTypeRegistrationCommand = DescribeTypeRegistrationCommand;\nexports.DetailedStatus = DetailedStatus;\nexports.DetectStackDriftCommand = DetectStackDriftCommand;\nexports.DetectStackResourceDriftCommand = DetectStackResourceDriftCommand;\nexports.DetectStackSetDriftCommand = DetectStackSetDriftCommand;\nexports.DifferenceType = DifferenceType;\nexports.DriftIgnoredReason = DriftIgnoredReason;\nexports.EstimateTemplateCostCommand = EstimateTemplateCostCommand;\nexports.EvaluationType = EvaluationType;\nexports.EventType = EventType;\nexports.ExecuteChangeSetCommand = ExecuteChangeSetCommand;\nexports.ExecuteStackRefactorCommand = ExecuteStackRefactorCommand;\nexports.ExecutionStatus = ExecutionStatus;\nexports.GeneratedTemplateDeletionPolicy = GeneratedTemplateDeletionPolicy;\nexports.GeneratedTemplateResourceStatus = GeneratedTemplateResourceStatus;\nexports.GeneratedTemplateStatus = GeneratedTemplateStatus;\nexports.GeneratedTemplateUpdateReplacePolicy = GeneratedTemplateUpdateReplacePolicy;\nexports.GetGeneratedTemplateCommand = GetGeneratedTemplateCommand;\nexports.GetHookResultCommand = GetHookResultCommand;\nexports.GetStackPolicyCommand = GetStackPolicyCommand;\nexports.GetTemplateCommand = GetTemplateCommand;\nexports.GetTemplateSummaryCommand = GetTemplateSummaryCommand;\nexports.HandlerErrorCode = HandlerErrorCode;\nexports.HookFailureMode = HookFailureMode;\nexports.HookInvocationPoint = HookInvocationPoint;\nexports.HookStatus = HookStatus;\nexports.HookTargetAction = HookTargetAction;\nexports.HookTargetType = HookTargetType;\nexports.IdentityProvider = IdentityProvider;\nexports.ImportStacksToStackSetCommand = ImportStacksToStackSetCommand;\nexports.ListChangeSetsCommand = ListChangeSetsCommand;\nexports.ListExportsCommand = ListExportsCommand;\nexports.ListGeneratedTemplatesCommand = ListGeneratedTemplatesCommand;\nexports.ListHookResultsCommand = ListHookResultsCommand;\nexports.ListHookResultsTargetType = ListHookResultsTargetType;\nexports.ListImportsCommand = ListImportsCommand;\nexports.ListResourceScanRelatedResourcesCommand = ListResourceScanRelatedResourcesCommand;\nexports.ListResourceScanResourcesCommand = ListResourceScanResourcesCommand;\nexports.ListResourceScansCommand = ListResourceScansCommand;\nexports.ListStackInstanceResourceDriftsCommand = ListStackInstanceResourceDriftsCommand;\nexports.ListStackInstancesCommand = ListStackInstancesCommand;\nexports.ListStackRefactorActionsCommand = ListStackRefactorActionsCommand;\nexports.ListStackRefactorsCommand = ListStackRefactorsCommand;\nexports.ListStackResourcesCommand = ListStackResourcesCommand;\nexports.ListStackSetAutoDeploymentTargetsCommand = ListStackSetAutoDeploymentTargetsCommand;\nexports.ListStackSetOperationResultsCommand = ListStackSetOperationResultsCommand;\nexports.ListStackSetOperationsCommand = ListStackSetOperationsCommand;\nexports.ListStackSetsCommand = ListStackSetsCommand;\nexports.ListStacksCommand = ListStacksCommand;\nexports.ListTypeRegistrationsCommand = ListTypeRegistrationsCommand;\nexports.ListTypeVersionsCommand = ListTypeVersionsCommand;\nexports.ListTypesCommand = ListTypesCommand;\nexports.OnFailure = OnFailure;\nexports.OnStackFailure = OnStackFailure;\nexports.OperationResultFilterName = OperationResultFilterName;\nexports.OperationStatus = OperationStatus;\nexports.OperationType = OperationType;\nexports.OrganizationStatus = OrganizationStatus;\nexports.PermissionModels = PermissionModels;\nexports.PolicyAction = PolicyAction;\nexports.ProvisioningType = ProvisioningType;\nexports.PublishTypeCommand = PublishTypeCommand;\nexports.PublisherStatus = PublisherStatus;\nexports.RecordHandlerProgressCommand = RecordHandlerProgressCommand;\nexports.RegionConcurrencyType = RegionConcurrencyType;\nexports.RegisterPublisherCommand = RegisterPublisherCommand;\nexports.RegisterTypeCommand = RegisterTypeCommand;\nexports.RegistrationStatus = RegistrationStatus;\nexports.RegistryType = RegistryType;\nexports.Replacement = Replacement;\nexports.RequiresRecreation = RequiresRecreation;\nexports.ResourceAttribute = ResourceAttribute;\nexports.ResourceScanStatus = ResourceScanStatus;\nexports.ResourceSignalStatus = ResourceSignalStatus;\nexports.ResourceStatus = ResourceStatus;\nexports.RollbackStackCommand = RollbackStackCommand;\nexports.ScanType = ScanType;\nexports.SetStackPolicyCommand = SetStackPolicyCommand;\nexports.SetTypeConfigurationCommand = SetTypeConfigurationCommand;\nexports.SetTypeDefaultVersionCommand = SetTypeDefaultVersionCommand;\nexports.SignalResourceCommand = SignalResourceCommand;\nexports.StackDriftDetectionStatus = StackDriftDetectionStatus;\nexports.StackDriftStatus = StackDriftStatus;\nexports.StackInstanceDetailedStatus = StackInstanceDetailedStatus;\nexports.StackInstanceFilterName = StackInstanceFilterName;\nexports.StackInstanceStatus = StackInstanceStatus;\nexports.StackRefactorActionEntity = StackRefactorActionEntity;\nexports.StackRefactorActionType = StackRefactorActionType;\nexports.StackRefactorDetection = StackRefactorDetection;\nexports.StackRefactorExecutionStatus = StackRefactorExecutionStatus;\nexports.StackRefactorStatus = StackRefactorStatus;\nexports.StackResourceDriftStatus = StackResourceDriftStatus;\nexports.StackSetDriftDetectionStatus = StackSetDriftDetectionStatus;\nexports.StackSetDriftStatus = StackSetDriftStatus;\nexports.StackSetOperationAction = StackSetOperationAction;\nexports.StackSetOperationResultStatus = StackSetOperationResultStatus;\nexports.StackSetOperationStatus = StackSetOperationStatus;\nexports.StackSetStatus = StackSetStatus;\nexports.StackStatus = StackStatus;\nexports.StartResourceScanCommand = StartResourceScanCommand;\nexports.StopStackSetOperationCommand = StopStackSetOperationCommand;\nexports.TemplateFormat = TemplateFormat;\nexports.TemplateStage = TemplateStage;\nexports.TestTypeCommand = TestTypeCommand;\nexports.ThirdPartyType = ThirdPartyType;\nexports.TypeTestsStatus = TypeTestsStatus;\nexports.UpdateGeneratedTemplateCommand = UpdateGeneratedTemplateCommand;\nexports.UpdateStackCommand = UpdateStackCommand;\nexports.UpdateStackInstancesCommand = UpdateStackInstancesCommand;\nexports.UpdateStackSetCommand = UpdateStackSetCommand;\nexports.UpdateTerminationProtectionCommand = UpdateTerminationProtectionCommand;\nexports.ValidateTemplateCommand = ValidateTemplateCommand;\nexports.ValidationStatus = ValidationStatus;\nexports.VersionBump = VersionBump;\nexports.Visibility = Visibility;\nexports.WarningType = WarningType;\nexports.paginateDescribeAccountLimits = paginateDescribeAccountLimits;\nexports.paginateDescribeChangeSet = paginateDescribeChangeSet;\nexports.paginateDescribeEvents = paginateDescribeEvents;\nexports.paginateDescribeStackEvents = paginateDescribeStackEvents;\nexports.paginateDescribeStackResourceDrifts = paginateDescribeStackResourceDrifts;\nexports.paginateDescribeStacks = paginateDescribeStacks;\nexports.paginateListChangeSets = paginateListChangeSets;\nexports.paginateListExports = paginateListExports;\nexports.paginateListGeneratedTemplates = paginateListGeneratedTemplates;\nexports.paginateListImports = paginateListImports;\nexports.paginateListResourceScanRelatedResources = paginateListResourceScanRelatedResources;\nexports.paginateListResourceScanResources = paginateListResourceScanResources;\nexports.paginateListResourceScans = paginateListResourceScans;\nexports.paginateListStackInstances = paginateListStackInstances;\nexports.paginateListStackRefactorActions = paginateListStackRefactorActions;\nexports.paginateListStackRefactors = paginateListStackRefactors;\nexports.paginateListStackResources = paginateListStackResources;\nexports.paginateListStackSetOperationResults = paginateListStackSetOperationResults;\nexports.paginateListStackSetOperations = paginateListStackSetOperations;\nexports.paginateListStackSets = paginateListStackSets;\nexports.paginateListStacks = paginateListStacks;\nexports.paginateListTypeRegistrations = paginateListTypeRegistrations;\nexports.paginateListTypeVersions = paginateListTypeVersions;\nexports.paginateListTypes = paginateListTypes;\nexports.waitForChangeSetCreateComplete = waitForChangeSetCreateComplete;\nexports.waitForStackCreateComplete = waitForStackCreateComplete;\nexports.waitForStackDeleteComplete = waitForStackDeleteComplete;\nexports.waitForStackExists = waitForStackExists;\nexports.waitForStackImportComplete = waitForStackImportComplete;\nexports.waitForStackRefactorCreateComplete = waitForStackRefactorCreateComplete;\nexports.waitForStackRefactorExecuteComplete = waitForStackRefactorExecuteComplete;\nexports.waitForStackRollbackComplete = waitForStackRollbackComplete;\nexports.waitForStackUpdateComplete = waitForStackUpdateComplete;\nexports.waitForTypeRegistrationComplete = waitForTypeRegistrationComplete;\nexports.waitUntilChangeSetCreateComplete = waitUntilChangeSetCreateComplete;\nexports.waitUntilStackCreateComplete = waitUntilStackCreateComplete;\nexports.waitUntilStackDeleteComplete = waitUntilStackDeleteComplete;\nexports.waitUntilStackExists = waitUntilStackExists;\nexports.waitUntilStackImportComplete = waitUntilStackImportComplete;\nexports.waitUntilStackRefactorCreateComplete = waitUntilStackRefactorCreateComplete;\nexports.waitUntilStackRefactorExecuteComplete = waitUntilStackRefactorExecuteComplete;\nexports.waitUntilStackRollbackComplete = waitUntilStackRollbackComplete;\nexports.waitUntilStackUpdateComplete = waitUntilStackUpdateComplete;\nexports.waitUntilTypeRegistrationComplete = waitUntilTypeRegistrationComplete;\nObject.prototype.hasOwnProperty.call(schemas_0, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: schemas_0['__proto__']\n });\n\nObject.keys(schemas_0).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = schemas_0[k];\n});\nObject.prototype.hasOwnProperty.call(errors, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: errors['__proto__']\n });\n\nObject.keys(errors).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = errors[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CloudFormationServiceException = exports.__ServiceException = void 0;\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__ServiceException\", { enumerable: true, get: function () { return smithy_client_1.ServiceException; } });\nclass CloudFormationServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, CloudFormationServiceException.prototype);\n }\n}\nexports.CloudFormationServiceException = CloudFormationServiceException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceScanLimitExceededException = exports.OperationStatusCheckFailedException = exports.InvalidStateTransitionException = exports.ResourceScanInProgressException = exports.StackNotFoundException = exports.HookResultNotFoundException = exports.StackRefactorNotFoundException = exports.StackInstanceNotFoundException = exports.ResourceScanNotFoundException = exports.StackSetNotEmptyException = exports.GeneratedTemplateNotFoundException = exports.InvalidChangeSetStatusException = exports.NameAlreadyExistsException = exports.CreatedButModifiedException = exports.StaleRequestException = exports.StackSetNotFoundException = exports.OperationInProgressException = exports.OperationIdAlreadyExistsException = exports.ConcurrentResourcesLimitExceededException = exports.LimitExceededException = exports.InsufficientCapabilitiesException = exports.ChangeSetNotFoundException = exports.TokenAlreadyExistsException = exports.TypeConfigurationNotFoundException = exports.AlreadyExistsException = exports.TypeNotFoundException = exports.CFNRegistryException = exports.OperationNotFoundException = exports.InvalidOperationException = void 0;\nconst CloudFormationServiceException_1 = require(\"./CloudFormationServiceException\");\nclass InvalidOperationException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InvalidOperationException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InvalidOperationException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidOperationException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidOperationException = InvalidOperationException;\nclass OperationNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationNotFoundException = OperationNotFoundException;\nclass CFNRegistryException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"CFNRegistryException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"CFNRegistryException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, CFNRegistryException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.CFNRegistryException = CFNRegistryException;\nclass TypeNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"TypeNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"TypeNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TypeNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.TypeNotFoundException = TypeNotFoundException;\nclass AlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, AlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.AlreadyExistsException = AlreadyExistsException;\nclass TypeConfigurationNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"TypeConfigurationNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"TypeConfigurationNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TypeConfigurationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.TypeConfigurationNotFoundException = TypeConfigurationNotFoundException;\nclass TokenAlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"TokenAlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"TokenAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, TokenAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.TokenAlreadyExistsException = TokenAlreadyExistsException;\nclass ChangeSetNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ChangeSetNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ChangeSetNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ChangeSetNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ChangeSetNotFoundException = ChangeSetNotFoundException;\nclass InsufficientCapabilitiesException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InsufficientCapabilitiesException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InsufficientCapabilitiesException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InsufficientCapabilitiesException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InsufficientCapabilitiesException = InsufficientCapabilitiesException;\nclass LimitExceededException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"LimitExceededException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.LimitExceededException = LimitExceededException;\nclass ConcurrentResourcesLimitExceededException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ConcurrentResourcesLimitExceededException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ConcurrentResourcesLimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ConcurrentResourcesLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ConcurrentResourcesLimitExceededException = ConcurrentResourcesLimitExceededException;\nclass OperationIdAlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationIdAlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationIdAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationIdAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationIdAlreadyExistsException = OperationIdAlreadyExistsException;\nclass OperationInProgressException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationInProgressException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationInProgressException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationInProgressException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationInProgressException = OperationInProgressException;\nclass StackSetNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackSetNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackSetNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackSetNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackSetNotFoundException = StackSetNotFoundException;\nclass StaleRequestException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StaleRequestException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StaleRequestException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StaleRequestException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StaleRequestException = StaleRequestException;\nclass CreatedButModifiedException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"CreatedButModifiedException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"CreatedButModifiedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, CreatedButModifiedException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.CreatedButModifiedException = CreatedButModifiedException;\nclass NameAlreadyExistsException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"NameAlreadyExistsException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"NameAlreadyExistsException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, NameAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.NameAlreadyExistsException = NameAlreadyExistsException;\nclass InvalidChangeSetStatusException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InvalidChangeSetStatusException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InvalidChangeSetStatusException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidChangeSetStatusException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidChangeSetStatusException = InvalidChangeSetStatusException;\nclass GeneratedTemplateNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"GeneratedTemplateNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"GeneratedTemplateNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, GeneratedTemplateNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.GeneratedTemplateNotFoundException = GeneratedTemplateNotFoundException;\nclass StackSetNotEmptyException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackSetNotEmptyException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackSetNotEmptyException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackSetNotEmptyException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackSetNotEmptyException = StackSetNotEmptyException;\nclass ResourceScanNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ResourceScanNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ResourceScanNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceScanNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceScanNotFoundException = ResourceScanNotFoundException;\nclass StackInstanceNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackInstanceNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackInstanceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackInstanceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackInstanceNotFoundException = StackInstanceNotFoundException;\nclass StackRefactorNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackRefactorNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackRefactorNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackRefactorNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackRefactorNotFoundException = StackRefactorNotFoundException;\nclass HookResultNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"HookResultNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"HookResultNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, HookResultNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.HookResultNotFoundException = HookResultNotFoundException;\nclass StackNotFoundException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"StackNotFoundException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"StackNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, StackNotFoundException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.StackNotFoundException = StackNotFoundException;\nclass ResourceScanInProgressException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ResourceScanInProgressException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ResourceScanInProgressException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceScanInProgressException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceScanInProgressException = ResourceScanInProgressException;\nclass InvalidStateTransitionException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"InvalidStateTransitionException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"InvalidStateTransitionException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, InvalidStateTransitionException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.InvalidStateTransitionException = InvalidStateTransitionException;\nclass OperationStatusCheckFailedException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"OperationStatusCheckFailedException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"OperationStatusCheckFailedException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, OperationStatusCheckFailedException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.OperationStatusCheckFailedException = OperationStatusCheckFailedException;\nclass ResourceScanLimitExceededException extends CloudFormationServiceException_1.CloudFormationServiceException {\n name = \"ResourceScanLimitExceededException\";\n $fault = \"client\";\n Message;\n constructor(opts) {\n super({\n name: \"ResourceScanLimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n Object.setPrototypeOf(this, ResourceScanLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n}\nexports.ResourceScanLimitExceededException = ResourceScanLimitExceededException;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_1.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, client_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(httpAuthSchemes_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ?? (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst httpAuthSchemes_1 = require(\"@aws-sdk/core/httpAuthSchemes\");\nconst protocols_1 = require(\"@aws-sdk/core/protocols\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst schemas_0_1 = require(\"./schemas/schemas_0\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2010-05-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCloudFormationHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new httpAuthSchemes_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n protocol: config?.protocol ?? protocols_1.AwsQueryProtocol,\n protocolSettings: config?.protocolSettings ?? {\n defaultNamespace: \"com.amazonaws.cloudformation\",\n errorTypeRegistries: schemas_0_1.errorTypeRegistries,\n xmlNamespace: \"http://cloudformation.amazonaws.com/doc/2010-05-15/\",\n version: \"2010-05-15\",\n serviceTarget: \"CloudFormation\",\n },\n serviceId: config?.serviceId ?? \"CloudFormation\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContinueUpdateRollbackOutput$ = exports.ContinueUpdateRollbackInput$ = exports.ChangeSetSummary$ = exports.ChangeSetHookTargetDetails$ = exports.ChangeSetHookResourceTargetDetails$ = exports.ChangeSetHook$ = exports.Change$ = exports.CancelUpdateStackInput$ = exports.BatchDescribeTypeConfigurationsOutput$ = exports.BatchDescribeTypeConfigurationsInput$ = exports.BatchDescribeTypeConfigurationsError$ = exports.AutoDeployment$ = exports.Annotation$ = exports.ActivateTypeOutput$ = exports.ActivateTypeInput$ = exports.ActivateOrganizationsAccessOutput$ = exports.ActivateOrganizationsAccessInput$ = exports.AccountLimit$ = exports.AccountGateResult$ = exports.errorTypeRegistries = exports.TypeNotFoundException$ = exports.TypeConfigurationNotFoundException$ = exports.TokenAlreadyExistsException$ = exports.StaleRequestException$ = exports.StackSetNotFoundException$ = exports.StackSetNotEmptyException$ = exports.StackRefactorNotFoundException$ = exports.StackNotFoundException$ = exports.StackInstanceNotFoundException$ = exports.ResourceScanNotFoundException$ = exports.ResourceScanLimitExceededException$ = exports.ResourceScanInProgressException$ = exports.OperationStatusCheckFailedException$ = exports.OperationNotFoundException$ = exports.OperationInProgressException$ = exports.OperationIdAlreadyExistsException$ = exports.NameAlreadyExistsException$ = exports.LimitExceededException$ = exports.InvalidStateTransitionException$ = exports.InvalidOperationException$ = exports.InvalidChangeSetStatusException$ = exports.InsufficientCapabilitiesException$ = exports.HookResultNotFoundException$ = exports.GeneratedTemplateNotFoundException$ = exports.CreatedButModifiedException$ = exports.ConcurrentResourcesLimitExceededException$ = exports.ChangeSetNotFoundException$ = exports.CFNRegistryException$ = exports.AlreadyExistsException$ = exports.CloudFormationServiceException$ = void 0;\nexports.DescribeStackRefactorInput$ = exports.DescribeStackInstanceOutput$ = exports.DescribeStackInstanceInput$ = exports.DescribeStackEventsOutput$ = exports.DescribeStackEventsInput$ = exports.DescribeStackDriftDetectionStatusOutput$ = exports.DescribeStackDriftDetectionStatusInput$ = exports.DescribeResourceScanOutput$ = exports.DescribeResourceScanInput$ = exports.DescribePublisherOutput$ = exports.DescribePublisherInput$ = exports.DescribeOrganizationsAccessOutput$ = exports.DescribeOrganizationsAccessInput$ = exports.DescribeGeneratedTemplateOutput$ = exports.DescribeGeneratedTemplateInput$ = exports.DescribeEventsOutput$ = exports.DescribeEventsInput$ = exports.DescribeChangeSetOutput$ = exports.DescribeChangeSetInput$ = exports.DescribeChangeSetHooksOutput$ = exports.DescribeChangeSetHooksInput$ = exports.DescribeAccountLimitsOutput$ = exports.DescribeAccountLimitsInput$ = exports.DeregisterTypeOutput$ = exports.DeregisterTypeInput$ = exports.DeploymentTargets$ = exports.DeleteStackSetOutput$ = exports.DeleteStackSetInput$ = exports.DeleteStackInstancesOutput$ = exports.DeleteStackInstancesInput$ = exports.DeleteStackInput$ = exports.DeleteGeneratedTemplateInput$ = exports.DeleteChangeSetOutput$ = exports.DeleteChangeSetInput$ = exports.DeactivateTypeOutput$ = exports.DeactivateTypeInput$ = exports.DeactivateOrganizationsAccessOutput$ = exports.DeactivateOrganizationsAccessInput$ = exports.CreateStackSetOutput$ = exports.CreateStackSetInput$ = exports.CreateStackRefactorOutput$ = exports.CreateStackRefactorInput$ = exports.CreateStackOutput$ = exports.CreateStackInstancesOutput$ = exports.CreateStackInstancesInput$ = exports.CreateStackInput$ = exports.CreateGeneratedTemplateOutput$ = exports.CreateGeneratedTemplateInput$ = exports.CreateChangeSetOutput$ = exports.CreateChangeSetInput$ = void 0;\nexports.ListGeneratedTemplatesOutput$ = exports.ListGeneratedTemplatesInput$ = exports.ListExportsOutput$ = exports.ListExportsInput$ = exports.ListChangeSetsOutput$ = exports.ListChangeSetsInput$ = exports.ImportStacksToStackSetOutput$ = exports.ImportStacksToStackSetInput$ = exports.HookTarget$ = exports.HookResultSummary$ = exports.GetTemplateSummaryOutput$ = exports.GetTemplateSummaryInput$ = exports.GetTemplateOutput$ = exports.GetTemplateInput$ = exports.GetStackPolicyOutput$ = exports.GetStackPolicyInput$ = exports.GetHookResultOutput$ = exports.GetHookResultInput$ = exports.GetGeneratedTemplateOutput$ = exports.GetGeneratedTemplateInput$ = exports.Export$ = exports.ExecuteStackRefactorInput$ = exports.ExecuteChangeSetOutput$ = exports.ExecuteChangeSetInput$ = exports.EventFilter$ = exports.EstimateTemplateCostOutput$ = exports.EstimateTemplateCostInput$ = exports.DetectStackSetDriftOutput$ = exports.DetectStackSetDriftInput$ = exports.DetectStackResourceDriftOutput$ = exports.DetectStackResourceDriftInput$ = exports.DetectStackDriftOutput$ = exports.DetectStackDriftInput$ = exports.DescribeTypeRegistrationOutput$ = exports.DescribeTypeRegistrationInput$ = exports.DescribeTypeOutput$ = exports.DescribeTypeInput$ = exports.DescribeStacksOutput$ = exports.DescribeStacksInput$ = exports.DescribeStackSetOutput$ = exports.DescribeStackSetOperationOutput$ = exports.DescribeStackSetOperationInput$ = exports.DescribeStackSetInput$ = exports.DescribeStackResourcesOutput$ = exports.DescribeStackResourcesInput$ = exports.DescribeStackResourceOutput$ = exports.DescribeStackResourceInput$ = exports.DescribeStackResourceDriftsOutput$ = exports.DescribeStackResourceDriftsInput$ = exports.DescribeStackRefactorOutput$ = void 0;\nexports.PublishTypeInput$ = exports.PropertyDifference$ = exports.PhysicalResourceIdContextKeyValuePair$ = exports.ParameterDeclaration$ = exports.ParameterConstraints$ = exports.Parameter$ = exports.Output$ = exports.OperationResultFilter$ = exports.OperationEvent$ = exports.OperationEntry$ = exports.ModuleInfo$ = exports.ManagedExecution$ = exports.LoggingConfig$ = exports.LiveResourceDrift$ = exports.ListTypeVersionsOutput$ = exports.ListTypeVersionsInput$ = exports.ListTypesOutput$ = exports.ListTypesInput$ = exports.ListTypeRegistrationsOutput$ = exports.ListTypeRegistrationsInput$ = exports.ListStacksOutput$ = exports.ListStacksInput$ = exports.ListStackSetsOutput$ = exports.ListStackSetsInput$ = exports.ListStackSetOperationsOutput$ = exports.ListStackSetOperationsInput$ = exports.ListStackSetOperationResultsOutput$ = exports.ListStackSetOperationResultsInput$ = exports.ListStackSetAutoDeploymentTargetsOutput$ = exports.ListStackSetAutoDeploymentTargetsInput$ = exports.ListStackResourcesOutput$ = exports.ListStackResourcesInput$ = exports.ListStackRefactorsOutput$ = exports.ListStackRefactorsInput$ = exports.ListStackRefactorActionsOutput$ = exports.ListStackRefactorActionsInput$ = exports.ListStackInstancesOutput$ = exports.ListStackInstancesInput$ = exports.ListStackInstanceResourceDriftsOutput$ = exports.ListStackInstanceResourceDriftsInput$ = exports.ListResourceScansOutput$ = exports.ListResourceScansInput$ = exports.ListResourceScanResourcesOutput$ = exports.ListResourceScanResourcesInput$ = exports.ListResourceScanRelatedResourcesOutput$ = exports.ListResourceScanRelatedResourcesInput$ = exports.ListImportsOutput$ = exports.ListImportsInput$ = exports.ListHookResultsOutput$ = exports.ListHookResultsInput$ = void 0;\nexports.StackResourceSummary$ = exports.StackResourceDriftInformationSummary$ = exports.StackResourceDriftInformation$ = exports.StackResourceDrift$ = exports.StackResourceDetail$ = exports.StackResource$ = exports.StackRefactorSummary$ = exports.StackRefactorAction$ = exports.StackInstanceSummary$ = exports.StackInstanceResourceDriftsSummary$ = exports.StackInstanceFilter$ = exports.StackInstanceComprehensiveStatus$ = exports.StackInstance$ = exports.StackEvent$ = exports.StackDriftInformationSummary$ = exports.StackDriftInformation$ = exports.StackDefinition$ = exports.Stack$ = exports.SignalResourceInput$ = exports.SetTypeDefaultVersionOutput$ = exports.SetTypeDefaultVersionInput$ = exports.SetTypeConfigurationOutput$ = exports.SetTypeConfigurationInput$ = exports.SetStackPolicyInput$ = exports.ScannedResourceIdentifier$ = exports.ScannedResource$ = exports.ScanFilter$ = exports.RollbackTrigger$ = exports.RollbackStackOutput$ = exports.RollbackStackInput$ = exports.RollbackConfiguration$ = exports.ResourceToImport$ = exports.ResourceTargetDefinition$ = exports.ResourceScanSummary$ = exports.ResourceMapping$ = exports.ResourceLocation$ = exports.ResourceIdentifierSummary$ = exports.ResourceDriftIgnoredAttribute$ = exports.ResourceDetail$ = exports.ResourceDefinition$ = exports.ResourceChangeDetail$ = exports.ResourceChange$ = exports.RequiredActivatedType$ = exports.RegisterTypeOutput$ = exports.RegisterTypeInput$ = exports.RegisterPublisherOutput$ = exports.RegisterPublisherInput$ = exports.RecordHandlerProgressOutput$ = exports.RecordHandlerProgressInput$ = exports.PublishTypeOutput$ = void 0;\nexports.CreateStack$ = exports.CreateGeneratedTemplate$ = exports.CreateChangeSet$ = exports.ContinueUpdateRollback$ = exports.CancelUpdateStack$ = exports.BatchDescribeTypeConfigurations$ = exports.ActivateType$ = exports.ActivateOrganizationsAccess$ = exports.Warnings$ = exports.WarningProperty$ = exports.WarningDetail$ = exports.ValidateTemplateOutput$ = exports.ValidateTemplateInput$ = exports.UpdateTerminationProtectionOutput$ = exports.UpdateTerminationProtectionInput$ = exports.UpdateStackSetOutput$ = exports.UpdateStackSetInput$ = exports.UpdateStackOutput$ = exports.UpdateStackInstancesOutput$ = exports.UpdateStackInstancesInput$ = exports.UpdateStackInput$ = exports.UpdateGeneratedTemplateOutput$ = exports.UpdateGeneratedTemplateInput$ = exports.TypeVersionSummary$ = exports.TypeSummary$ = exports.TypeFilters$ = exports.TypeConfigurationIdentifier$ = exports.TypeConfigurationDetails$ = exports.TestTypeOutput$ = exports.TestTypeInput$ = exports.TemplateSummaryConfig$ = exports.TemplateSummary$ = exports.TemplateProgress$ = exports.TemplateParameter$ = exports.TemplateConfiguration$ = exports.Tag$ = exports.StopStackSetOperationOutput$ = exports.StopStackSetOperationInput$ = exports.StartResourceScanOutput$ = exports.StartResourceScanInput$ = exports.StackSummary$ = exports.StackSetSummary$ = exports.StackSetOperationSummary$ = exports.StackSetOperationStatusDetails$ = exports.StackSetOperationResultSummary$ = exports.StackSetOperationPreferences$ = exports.StackSetOperation$ = exports.StackSetDriftDetectionDetails$ = exports.StackSetAutoDeploymentTargetSummary$ = exports.StackSet$ = void 0;\nexports.ListResourceScanResources$ = exports.ListResourceScanRelatedResources$ = exports.ListImports$ = exports.ListHookResults$ = exports.ListGeneratedTemplates$ = exports.ListExports$ = exports.ListChangeSets$ = exports.ImportStacksToStackSet$ = exports.GetTemplateSummary$ = exports.GetTemplate$ = exports.GetStackPolicy$ = exports.GetHookResult$ = exports.GetGeneratedTemplate$ = exports.ExecuteStackRefactor$ = exports.ExecuteChangeSet$ = exports.EstimateTemplateCost$ = exports.DetectStackSetDrift$ = exports.DetectStackResourceDrift$ = exports.DetectStackDrift$ = exports.DescribeTypeRegistration$ = exports.DescribeType$ = exports.DescribeStackSetOperation$ = exports.DescribeStackSet$ = exports.DescribeStacks$ = exports.DescribeStackResources$ = exports.DescribeStackResourceDrifts$ = exports.DescribeStackResource$ = exports.DescribeStackRefactor$ = exports.DescribeStackInstance$ = exports.DescribeStackEvents$ = exports.DescribeStackDriftDetectionStatus$ = exports.DescribeResourceScan$ = exports.DescribePublisher$ = exports.DescribeOrganizationsAccess$ = exports.DescribeGeneratedTemplate$ = exports.DescribeEvents$ = exports.DescribeChangeSetHooks$ = exports.DescribeChangeSet$ = exports.DescribeAccountLimits$ = exports.DeregisterType$ = exports.DeleteStackSet$ = exports.DeleteStackInstances$ = exports.DeleteStack$ = exports.DeleteGeneratedTemplate$ = exports.DeleteChangeSet$ = exports.DeactivateType$ = exports.DeactivateOrganizationsAccess$ = exports.CreateStackSet$ = exports.CreateStackRefactor$ = exports.CreateStackInstances$ = void 0;\nexports.ValidateTemplate$ = exports.UpdateTerminationProtection$ = exports.UpdateStackSet$ = exports.UpdateStackInstances$ = exports.UpdateStack$ = exports.UpdateGeneratedTemplate$ = exports.TestType$ = exports.StopStackSetOperation$ = exports.StartResourceScan$ = exports.SignalResource$ = exports.SetTypeDefaultVersion$ = exports.SetTypeConfiguration$ = exports.SetStackPolicy$ = exports.RollbackStack$ = exports.RegisterType$ = exports.RegisterPublisher$ = exports.RecordHandlerProgress$ = exports.PublishType$ = exports.ListTypeVersions$ = exports.ListTypes$ = exports.ListTypeRegistrations$ = exports.ListStackSets$ = exports.ListStackSetOperations$ = exports.ListStackSetOperationResults$ = exports.ListStackSetAutoDeploymentTargets$ = exports.ListStacks$ = exports.ListStackResources$ = exports.ListStackRefactors$ = exports.ListStackRefactorActions$ = exports.ListStackInstances$ = exports.ListStackInstanceResourceDrifts$ = exports.ListResourceScans$ = void 0;\nconst _A = \"Arn\";\nconst _AC = \"AfterContext\";\nconst _ACT = \"AttributeChangeType\";\nconst _AD = \"AutoDeployment\";\nconst _AEE = \"AlreadyExistsException\";\nconst _AFT = \"AccountFilterType\";\nconst _AGR = \"AccountGateResult\";\nconst _AL = \"AccountLimit\";\nconst _ALL = \"AccountLimitList\";\nconst _ALc = \"AccountLimits\";\nconst _ALn = \"AnnotationList\";\nconst _AN = \"AnnotationName\";\nconst _AOA = \"ActivateOrganizationsAccess\";\nconst _AOAI = \"ActivateOrganizationsAccessInput\";\nconst _AOAO = \"ActivateOrganizationsAccessOutput\";\nconst _AP = \"ActualProperties\";\nconst _AR = \"AddResources\";\nconst _ARARN = \"AdministrationRoleARN\";\nconst _AT = \"ActivateType\";\nconst _ATAC = \"AcceptTermsAndConditions\";\nconst _ATI = \"ActivateTypeInput\";\nconst _ATO = \"ActivateTypeOutput\";\nconst _AU = \"AutoUpdate\";\nconst _AUc = \"AccountsUrl\";\nconst _AV = \"ActualValue\";\nconst _AVF = \"AfterValueFrom\";\nconst _AVf = \"AfterValue\";\nconst _AVl = \"AllowedValues\";\nconst _Ac = \"Accounts\";\nconst _Acc = \"Account\";\nconst _Act = \"Action\";\nconst _Acti = \"Active\";\nconst _Al = \"Alias\";\nconst _An = \"Annotation\";\nconst _Ann = \"Annotations\";\nconst _At = \"Attribute\";\nconst _BC = \"BeforeContext\";\nconst _BDTC = \"BatchDescribeTypeConfigurations\";\nconst _BDTCE = \"BatchDescribeTypeConfigurationsError\";\nconst _BDTCEa = \"BatchDescribeTypeConfigurationsErrors\";\nconst _BDTCI = \"BatchDescribeTypeConfigurationsInput\";\nconst _BDTCO = \"BatchDescribeTypeConfigurationsOutput\";\nconst _BT = \"BearerToken\";\nconst _BV = \"BeforeValue\";\nconst _BVF = \"BeforeValueFrom\";\nconst _C = \"Change\";\nconst _CA = \"CallAs\";\nconst _CAo = \"ConnectionArn\";\nconst _CAon = \"ConfigurationAlias\";\nconst _CAonf = \"ConfigurationArn\";\nconst _CBME = \"CreatedButModifiedException\";\nconst _CCS = \"CreateChangeSet\";\nconst _CCSI = \"CreateChangeSetInput\";\nconst _CCSO = \"CreateChangeSetOutput\";\nconst _CE = \"CausingEntity\";\nconst _CFNRE = \"CFNRegistryException\";\nconst _CGT = \"CreateGeneratedTemplate\";\nconst _CGTI = \"CreateGeneratedTemplateInput\";\nconst _CGTO = \"CreateGeneratedTemplateOutput\";\nconst _CM = \"ConcurrencyMode\";\nconst _COS = \"CurrentOperationStatus\";\nconst _CR = \"CapabilitiesReason\";\nconst _CRLEE = \"ConcurrentResourcesLimitExceededException\";\nconst _CRT = \"ClientRequestToken\";\nconst _CS = \"ConfigurationSchema\";\nconst _CSH = \"ChangeSetHook\";\nconst _CSHRTD = \"ChangeSetHookResourceTargetDetails\";\nconst _CSHTD = \"ChangeSetHookTargetDetails\";\nconst _CSHh = \"ChangeSetHooks\";\nconst _CSI = \"ChangeSetId\";\nconst _CSII = \"CreateStackInstancesInput\";\nconst _CSIO = \"CreateStackInstancesOutput\";\nconst _CSIr = \"CreateStackInput\";\nconst _CSIre = \"CreateStackInstances\";\nconst _CSN = \"ChangeSetName\";\nconst _CSNFE = \"ChangeSetNotFoundException\";\nconst _CSO = \"CreateStackOutput\";\nconst _CSR = \"CreateStackRefactor\";\nconst _CSRI = \"CreateStackRefactorInput\";\nconst _CSRO = \"CreateStackRefactorOutput\";\nconst _CSS = \"ChangeSetSummary\";\nconst _CSSI = \"CreateStackSetInput\";\nconst _CSSO = \"CreateStackSetOutput\";\nconst _CSSh = \"ChangeSetSummaries\";\nconst _CSSr = \"CreateStackSet\";\nconst _CST = \"ChangeSetType\";\nconst _CSh = \"ChangeSource\";\nconst _CSr = \"CreateStack\";\nconst _CT = \"CreationTime\";\nconst _CTl = \"ClientToken\";\nconst _CTr = \"CreationTimestamp\";\nconst _CUR = \"ContinueUpdateRollback\";\nconst _CURI = \"ContinueUpdateRollbackInput\";\nconst _CURO = \"ContinueUpdateRollbackOutput\";\nconst _CUS = \"CancelUpdateStack\";\nconst _CUSI = \"CancelUpdateStackInput\";\nconst _Ca = \"Capabilities\";\nconst _Cat = \"Category\";\nconst _Ch = \"Changes\";\nconst _Co = \"Configuration\";\nconst _D = \"Description\";\nconst _DAL = \"DescribeAccountLimits\";\nconst _DALI = \"DescribeAccountLimitsInput\";\nconst _DALO = \"DescribeAccountLimitsOutput\";\nconst _DCS = \"DeleteChangeSet\";\nconst _DCSH = \"DescribeChangeSetHooks\";\nconst _DCSHI = \"DescribeChangeSetHooksInput\";\nconst _DCSHO = \"DescribeChangeSetHooksOutput\";\nconst _DCSI = \"DeleteChangeSetInput\";\nconst _DCSIe = \"DescribeChangeSetInput\";\nconst _DCSO = \"DeleteChangeSetOutput\";\nconst _DCSOe = \"DescribeChangeSetOutput\";\nconst _DCSe = \"DescribeChangeSet\";\nconst _DDS = \"DriftDetectionStatus\";\nconst _DDT = \"DriftDetectionTimestamp\";\nconst _DE = \"DescribeEvents\";\nconst _DEI = \"DescribeEventsInput\";\nconst _DEO = \"DescribeEventsOutput\";\nconst _DGT = \"DeleteGeneratedTemplate\";\nconst _DGTI = \"DeleteGeneratedTemplateInput\";\nconst _DGTIe = \"DescribeGeneratedTemplateInput\";\nconst _DGTO = \"DescribeGeneratedTemplateOutput\";\nconst _DGTe = \"DescribeGeneratedTemplate\";\nconst _DI = \"DriftInformation\";\nconst _DM = \"DeploymentMode\";\nconst _DMe = \"DeletionMode\";\nconst _DO = \"DependsOn\";\nconst _DOA = \"DeactivateOrganizationsAccess\";\nconst _DOAI = \"DeactivateOrganizationsAccessInput\";\nconst _DOAIe = \"DescribeOrganizationsAccessInput\";\nconst _DOAO = \"DeactivateOrganizationsAccessOutput\";\nconst _DOAOe = \"DescribeOrganizationsAccessOutput\";\nconst _DOAe = \"DescribeOrganizationsAccess\";\nconst _DP = \"DeletionPolicy\";\nconst _DPI = \"DescribePublisherInput\";\nconst _DPO = \"DescribePublisherOutput\";\nconst _DPe = \"DescribePublisher\";\nconst _DR = \"DisableRollback\";\nconst _DRS = \"DescribeResourceScan\";\nconst _DRSI = \"DescribeResourceScanInput\";\nconst _DRSO = \"DescribeResourceScanOutput\";\nconst _DRe = \"DetectionReason\";\nconst _DS = \"DetectionStatus\";\nconst _DSD = \"DetectStackDrift\";\nconst _DSDDS = \"DescribeStackDriftDetectionStatus\";\nconst _DSDDSI = \"DescribeStackDriftDetectionStatusInput\";\nconst _DSDDSO = \"DescribeStackDriftDetectionStatusOutput\";\nconst _DSDI = \"DetectStackDriftInput\";\nconst _DSDO = \"DetectStackDriftOutput\";\nconst _DSE = \"DescribeStackEvents\";\nconst _DSEI = \"DescribeStackEventsInput\";\nconst _DSEO = \"DescribeStackEventsOutput\";\nconst _DSI = \"DeleteStackInput\";\nconst _DSIC = \"DriftedStackInstancesCount\";\nconst _DSII = \"DeleteStackInstancesInput\";\nconst _DSIIe = \"DescribeStackInstanceInput\";\nconst _DSIO = \"DeleteStackInstancesOutput\";\nconst _DSIOe = \"DescribeStackInstanceOutput\";\nconst _DSIe = \"DescribeStacksInput\";\nconst _DSIel = \"DeleteStackInstances\";\nconst _DSIes = \"DescribeStackInstance\";\nconst _DSO = \"DescribeStacksOutput\";\nconst _DSR = \"DetectionStatusReason\";\nconst _DSRC = \"DriftedStackResourceCount\";\nconst _DSRD = \"DescribeStackResourceDrifts\";\nconst _DSRDI = \"DescribeStackResourceDriftsInput\";\nconst _DSRDIe = \"DetectStackResourceDriftInput\";\nconst _DSRDO = \"DescribeStackResourceDriftsOutput\";\nconst _DSRDOe = \"DetectStackResourceDriftOutput\";\nconst _DSRDe = \"DetectStackResourceDrift\";\nconst _DSRI = \"DescribeStackRefactorInput\";\nconst _DSRIe = \"DescribeStackResourceInput\";\nconst _DSRIes = \"DescribeStackResourcesInput\";\nconst _DSRO = \"DescribeStackRefactorOutput\";\nconst _DSROe = \"DescribeStackResourceOutput\";\nconst _DSROes = \"DescribeStackResourcesOutput\";\nconst _DSRe = \"DescribeStackRefactor\";\nconst _DSRes = \"DescribeStackResource\";\nconst _DSResc = \"DescribeStackResources\";\nconst _DSRr = \"DriftStatusReason\";\nconst _DSS = \"DeleteStackSet\";\nconst _DSSD = \"DetectStackSetDrift\";\nconst _DSSDI = \"DetectStackSetDriftInput\";\nconst _DSSDO = \"DetectStackSetDriftOutput\";\nconst _DSSI = \"DeleteStackSetInput\";\nconst _DSSIe = \"DescribeStackSetInput\";\nconst _DSSO = \"DeleteStackSetOutput\";\nconst _DSSOI = \"DescribeStackSetOperationInput\";\nconst _DSSOO = \"DescribeStackSetOperationOutput\";\nconst _DSSOe = \"DescribeStackSetOutput\";\nconst _DSSOes = \"DescribeStackSetOperation\";\nconst _DSSe = \"DescribeStackSet\";\nconst _DSe = \"DeprecatedStatus\";\nconst _DSel = \"DeleteStack\";\nconst _DSes = \"DescribeStacks\";\nconst _DSet = \"DetailedStatus\";\nconst _DSr = \"DriftStatus\";\nconst _DT = \"DeploymentTargets\";\nconst _DTI = \"DeactivateTypeInput\";\nconst _DTIe = \"DeregisterTypeInput\";\nconst _DTIes = \"DescribeTypeInput\";\nconst _DTO = \"DeactivateTypeOutput\";\nconst _DTOe = \"DeregisterTypeOutput\";\nconst _DTOes = \"DescribeTypeOutput\";\nconst _DTR = \"DescribeTypeRegistration\";\nconst _DTRI = \"DescribeTypeRegistrationInput\";\nconst _DTRO = \"DescribeTypeRegistrationOutput\";\nconst _DTe = \"DeclaredTransforms\";\nconst _DTea = \"DeactivateType\";\nconst _DTel = \"DeletionTime\";\nconst _DTer = \"DeregisterType\";\nconst _DTes = \"DescribeType\";\nconst _DTi = \"DifferenceType\";\nconst _DU = \"DocumentationUrl\";\nconst _DV = \"DefaultValue\";\nconst _DVI = \"DefaultVersionId\";\nconst _De = \"Details\";\nconst _Des = \"Destination\";\nconst _Det = \"Detection\";\nconst _Dr = \"Drift\";\nconst _E = \"Enabled\";\nconst _EC = \"ErrorCode\";\nconst _ECS = \"ExecuteChangeSet\";\nconst _ECSI = \"ExecuteChangeSetInput\";\nconst _ECSO = \"ExecuteChangeSetOutput\";\nconst _EF = \"EventFilter\";\nconst _EI = \"EventId\";\nconst _EM = \"ErrorMessage\";\nconst _EN = \"ExportName\";\nconst _EP = \"ExpectedProperties\";\nconst _ERA = \"ExecutionRoleArn\";\nconst _ERN = \"ExecutionRoleName\";\nconst _ES = \"ExecutionStatus\";\nconst _ESC = \"EnableStackCreation\";\nconst _ESF = \"ExecutionStatusFilter\";\nconst _ESI = \"ExportingStackId\";\nconst _ESR = \"ExecutionStatusReason\";\nconst _ESRI = \"ExecuteStackRefactorInput\";\nconst _ESRx = \"ExecuteStackRefactor\";\nconst _ET = \"EndTime\";\nconst _ETC = \"EstimateTemplateCost\";\nconst _ETCI = \"EstimateTemplateCostInput\";\nconst _ETCO = \"EstimateTemplateCostOutput\";\nconst _ETP = \"EnableTerminationProtection\";\nconst _ETn = \"EndTimestamp\";\nconst _ETv = \"EventType\";\nconst _EV = \"ExpectedValue\";\nconst _En = \"Entity\";\nconst _Er = \"Errors\";\nconst _Ev = \"Evaluation\";\nconst _Ex = \"Export\";\nconst _Exp = \"Exports\";\nconst _F = \"Filters\";\nconst _FE = \"FailedEvents\";\nconst _FM = \"FailureMode\";\nconst _FSIC = \"FailedStackInstancesCount\";\nconst _FTC = \"FailureToleranceCount\";\nconst _FTP = \"FailureTolerancePercentage\";\nconst _Fo = \"Format\";\nconst _GGT = \"GetGeneratedTemplate\";\nconst _GGTI = \"GetGeneratedTemplateInput\";\nconst _GGTO = \"GetGeneratedTemplateOutput\";\nconst _GHR = \"GetHookResult\";\nconst _GHRI = \"GetHookResultInput\";\nconst _GHRO = \"GetHookResultOutput\";\nconst _GSP = \"GetStackPolicy\";\nconst _GSPI = \"GetStackPolicyInput\";\nconst _GSPO = \"GetStackPolicyOutput\";\nconst _GT = \"GetTemplate\";\nconst _GTI = \"GeneratedTemplateId\";\nconst _GTIe = \"GetTemplateInput\";\nconst _GTN = \"GeneratedTemplateName\";\nconst _GTNFE = \"GeneratedTemplateNotFoundException\";\nconst _GTO = \"GetTemplateOutput\";\nconst _GTS = \"GetTemplateSummary\";\nconst _GTSI = \"GetTemplateSummaryInput\";\nconst _GTSO = \"GetTemplateSummaryOutput\";\nconst _H = \"Hooks\";\nconst _HET = \"HookExecutionTarget\";\nconst _HFM = \"HookFailureMode\";\nconst _HIC = \"HookInvocationCount\";\nconst _HII = \"HookInvocationId\";\nconst _HIP = \"HookInvocationPoint\";\nconst _HR = \"HookResults\";\nconst _HRI = \"HookResultId\";\nconst _HRNFE = \"HookResultNotFoundException\";\nconst _HRS = \"HookResultSummary\";\nconst _HRSo = \"HookResultSummaries\";\nconst _HS = \"HookStatus\";\nconst _HSR = \"HookStatusReason\";\nconst _HT = \"HookTarget\";\nconst _HTo = \"HookType\";\nconst _I = \"Id\";\nconst _IA = \"IsActivated\";\nconst _IAn = \"InvokedAt\";\nconst _ICE = \"InsufficientCapabilitiesException\";\nconst _ICSSE = \"InvalidChangeSetStatusException\";\nconst _IDC = \"IsDefaultConfiguration\";\nconst _IDV = \"IsDefaultVersion\";\nconst _IER = \"ImportExistingResources\";\nconst _INS = \"IncludeNestedStacks\";\nconst _IOE = \"InvalidOperationException\";\nconst _IP = \"InvocationPoint\";\nconst _IPSIC = \"InProgressStackInstancesCount\";\nconst _IPV = \"IncludePropertyValues\";\nconst _IPd = \"IdentityProvider\";\nconst _ISSIC = \"InSyncStackInstancesCount\";\nconst _ISTE = \"InvalidStateTransitionException\";\nconst _ISTSS = \"ImportStacksToStackSet\";\nconst _ISTSSI = \"ImportStacksToStackSetInput\";\nconst _ISTSSO = \"ImportStacksToStackSetOutput\";\nconst _Im = \"Imports\";\nconst _K = \"Key\";\nconst _LC = \"LoggingConfig\";\nconst _LCS = \"ListChangeSets\";\nconst _LCSI = \"ListChangeSetsInput\";\nconst _LCSO = \"ListChangeSetsOutput\";\nconst _LCT = \"LastCheckTimestamp\";\nconst _LDB = \"LogDeliveryBucket\";\nconst _LDCT = \"LastDriftCheckTimestamp\";\nconst _LE = \"ListExports\";\nconst _LEE = \"LimitExceededException\";\nconst _LEI = \"ListExportsInput\";\nconst _LEO = \"ListExportsOutput\";\nconst _LGN = \"LogGroupName\";\nconst _LGT = \"ListGeneratedTemplates\";\nconst _LGTI = \"ListGeneratedTemplatesInput\";\nconst _LGTO = \"ListGeneratedTemplatesOutput\";\nconst _LHR = \"ListHookResults\";\nconst _LHRI = \"ListHookResultsInput\";\nconst _LHRO = \"ListHookResultsOutput\";\nconst _LI = \"ListImports\";\nconst _LIH = \"LogicalIdHierarchy\";\nconst _LII = \"ListImportsInput\";\nconst _LIO = \"ListImportsOutput\";\nconst _LO = \"LastOperations\";\nconst _LOI = \"LastOperationId\";\nconst _LPV = \"LatestPublicVersion\";\nconst _LRA = \"LogRoleArn\";\nconst _LRD = \"LiveResourceDrift\";\nconst _LRI = \"LogicalResourceId\";\nconst _LRIo = \"LogicalResourceIds\";\nconst _LRS = \"ListResourceScans\";\nconst _LRSI = \"ListResourceScansInput\";\nconst _LRSO = \"ListResourceScansOutput\";\nconst _LRSR = \"ListResourceScanResources\";\nconst _LRSRI = \"ListResourceScanResourcesInput\";\nconst _LRSRO = \"ListResourceScanResourcesOutput\";\nconst _LRSRR = \"ListResourceScanRelatedResources\";\nconst _LRSRRI = \"ListResourceScanRelatedResourcesInput\";\nconst _LRSRRO = \"ListResourceScanRelatedResourcesOutput\";\nconst _LS = \"ListStacks\";\nconst _LSI = \"ListStacksInput\";\nconst _LSII = \"ListStackInstancesInput\";\nconst _LSIO = \"ListStackInstancesOutput\";\nconst _LSIRD = \"ListStackInstanceResourceDrifts\";\nconst _LSIRDI = \"ListStackInstanceResourceDriftsInput\";\nconst _LSIRDO = \"ListStackInstanceResourceDriftsOutput\";\nconst _LSIi = \"ListStackInstances\";\nconst _LSO = \"ListStacksOutput\";\nconst _LSR = \"ListStackRefactors\";\nconst _LSRA = \"ListStackRefactorActions\";\nconst _LSRAI = \"ListStackRefactorActionsInput\";\nconst _LSRAO = \"ListStackRefactorActionsOutput\";\nconst _LSRI = \"ListStackRefactorsInput\";\nconst _LSRIi = \"ListStackResourcesInput\";\nconst _LSRO = \"ListStackRefactorsOutput\";\nconst _LSROi = \"ListStackResourcesOutput\";\nconst _LSRi = \"ListStackResources\";\nconst _LSS = \"ListStackSets\";\nconst _LSSADT = \"ListStackSetAutoDeploymentTargets\";\nconst _LSSADTI = \"ListStackSetAutoDeploymentTargetsInput\";\nconst _LSSADTO = \"ListStackSetAutoDeploymentTargetsOutput\";\nconst _LSSI = \"ListStackSetsInput\";\nconst _LSSO = \"ListStackSetsOutput\";\nconst _LSSOI = \"ListStackSetOperationsInput\";\nconst _LSSOO = \"ListStackSetOperationsOutput\";\nconst _LSSOR = \"ListStackSetOperationResults\";\nconst _LSSORI = \"ListStackSetOperationResultsInput\";\nconst _LSSORO = \"ListStackSetOperationResultsOutput\";\nconst _LSSOi = \"ListStackSetOperations\";\nconst _LT = \"ListTypes\";\nconst _LTI = \"ListTypesInput\";\nconst _LTO = \"ListTypesOutput\";\nconst _LTR = \"ListTypeRegistrations\";\nconst _LTRI = \"ListTypeRegistrationsInput\";\nconst _LTRO = \"ListTypeRegistrationsOutput\";\nconst _LTV = \"ListTypeVersions\";\nconst _LTVI = \"ListTypeVersionsInput\";\nconst _LTVO = \"ListTypeVersionsOutput\";\nconst _LU = \"LastUpdated\";\nconst _LUT = \"LastUpdatedTime\";\nconst _LUTa = \"LastUpdatedTimestamp\";\nconst _M = \"Message\";\nconst _MBS = \"ManagedByStack\";\nconst _MCC = \"MaxConcurrentCount\";\nconst _MCP = \"MaxConcurrentPercentage\";\nconst _ME = \"ManagedExecution\";\nconst _MI = \"ModuleInfo\";\nconst _MR = \"MaxResults\";\nconst _MTIM = \"MonitoringTimeInMinutes\";\nconst _MV = \"MajorVersion\";\nconst _Me = \"Metadata\";\nconst _N = \"Name\";\nconst _NAEE = \"NameAlreadyExistsException\";\nconst _NARN = \"NotificationARNs\";\nconst _NE = \"NoEcho\";\nconst _NGTN = \"NewGeneratedTemplateName\";\nconst _NOR = \"NumberOfResources\";\nconst _NT = \"NextToken\";\nconst _O = \"Output\";\nconst _OE = \"OperationEvents\";\nconst _OEp = \"OperationEntry\";\nconst _OEpe = \"OperationEvent\";\nconst _OF = \"OnFailure\";\nconst _OI = \"OperationId\";\nconst _OIAEE = \"OperationIdAlreadyExistsException\";\nconst _OIPE = \"OperationInProgressException\";\nconst _OK = \"OutputKey\";\nconst _ONFE = \"OperationNotFoundException\";\nconst _OP = \"OperationPreferences\";\nconst _ORF = \"OperationResultFilter\";\nconst _ORFp = \"OperationResultFilters\";\nconst _OS = \"OperationStatus\";\nconst _OSCFE = \"OperationStatusCheckFailedException\";\nconst _OSF = \"OnStackFailure\";\nconst _OT = \"OperationType\";\nconst _OTA = \"OriginalTypeArn\";\nconst _OTN = \"OriginalTypeName\";\nconst _OUI = \"OrganizationalUnitIds\";\nconst _OUIr = \"OrganizationalUnitId\";\nconst _OV = \"OutputValue\";\nconst _Ou = \"Outputs\";\nconst _P = \"Parameters\";\nconst _PA = \"PolicyAction\";\nconst _PC = \"PercentageCompleted\";\nconst _PCSI = \"ParentChangeSetId\";\nconst _PCa = \"ParameterConstraints\";\nconst _PD = \"ParameterDeclaration\";\nconst _PDC = \"PreviousDeploymentContext\";\nconst _PDa = \"ParameterDeclarations\";\nconst _PDr = \"PropertyDifference\";\nconst _PDro = \"PropertyDifferences\";\nconst _PI = \"PublisherId\";\nconst _PIa = \"ParentId\";\nconst _PIu = \"PublisherIdentity\";\nconst _PK = \"ParameterKey\";\nconst _PM = \"PermissionModel\";\nconst _PN = \"PublisherName\";\nconst _PO = \"ParameterOverrides\";\nconst _PP = \"PublisherProfile\";\nconst _PPr = \"PropertyPath\";\nconst _PRI = \"PhysicalResourceId\";\nconst _PRIC = \"PhysicalResourceIdContext\";\nconst _PRICKVP = \"PhysicalResourceIdContextKeyValuePair\";\nconst _PS = \"PublisherStatus\";\nconst _PSr = \"ProgressStatus\";\nconst _PT = \"ProvisioningType\";\nconst _PTA = \"PublicTypeArn\";\nconst _PTI = \"PublishTypeInput\";\nconst _PTO = \"PublishTypeOutput\";\nconst _PTa = \"ParameterType\";\nconst _PTu = \"PublishType\";\nconst _PV = \"PreviousValue\";\nconst _PVN = \"PublicVersionNumber\";\nconst _PVa = \"ParameterValue\";\nconst _Pa = \"Parameter\";\nconst _Pat = \"Path\";\nconst _Pr = \"Progress\";\nconst _Pro = \"Properties\";\nconst _R = \"Resources\";\nconst _RA = \"ResourceAction\";\nconst _RAR = \"RefreshAllResources\";\nconst _RARN = \"RoleARN\";\nconst _RAT = \"RequiredActivatedTypes\";\nconst _RATe = \"RequiredActivatedType\";\nconst _RC = \"ResourceChange\";\nconst _RCD = \"ResourceChangeDetail\";\nconst _RCDe = \"ResourceChangeDetails\";\nconst _RCSI = \"RootChangeSetId\";\nconst _RCT = \"RegionConcurrencyType\";\nconst _RCo = \"RollbackConfiguration\";\nconst _RD = \"ResourceDefinition\";\nconst _RDIA = \"ResourceDriftIgnoredAttributes\";\nconst _RDIAe = \"ResourceDriftIgnoredAttribute\";\nconst _RDS = \"ResourceDriftStatus\";\nconst _RDe = \"ResourceDetail\";\nconst _RDes = \"ResourceDefinitions\";\nconst _RDeso = \"ResourceDetails\";\nconst _REOC = \"RetainExceptOnCreate\";\nconst _RF = \"ResourcesFailed\";\nconst _RHP = \"RecordHandlerProgress\";\nconst _RHPI = \"RecordHandlerProgressInput\";\nconst _RHPO = \"RecordHandlerProgressOutput\";\nconst _RI = \"ResourceIdentifier\";\nconst _RIS = \"ResourceIdentifierSummaries\";\nconst _RISe = \"ResourceIdentifierSummary\";\nconst _RIe = \"ResourceIdentifiers\";\nconst _RIo = \"RootId\";\nconst _RL = \"RemediationLink\";\nconst _RLe = \"ResourceLocation\";\nconst _RM = \"RemediationMessage\";\nconst _RMe = \"ResourceMappings\";\nconst _RMes = \"ResourceModel\";\nconst _RMeso = \"ResourceMapping\";\nconst _RO = \"RegionOrder\";\nconst _RP = \"ResourceProperties\";\nconst _RPI = \"RegisterPublisherInput\";\nconst _RPO = \"RegisterPublisherOutput\";\nconst _RPe = \"ResourcesProcessing\";\nconst _RPeg = \"RegisterPublisher\";\nconst _RPes = \"ResourcesPending\";\nconst _RR = \"RetainResources\";\nconst _RRe = \"ResourcesRead\";\nconst _RRel = \"RelatedResources\";\nconst _RRem = \"RemoveResources\";\nconst _RReq = \"RequiresRecreation\";\nconst _RS = \"RetainStacks\";\nconst _RSF = \"RegistrationStatusFilter\";\nconst _RSI = \"ResourceScanId\";\nconst _RSIPE = \"ResourceScanInProgressException\";\nconst _RSIo = \"RollbackStackInput\";\nconst _RSLEE = \"ResourceScanLimitExceededException\";\nconst _RSNFE = \"ResourceScanNotFoundException\";\nconst _RSO = \"RollbackStackOutput\";\nconst _RSOAR = \"RetainStacksOnAccountRemoval\";\nconst _RSR = \"ResourceStatusReason\";\nconst _RSS = \"ResourceScanSummaries\";\nconst _RSSe = \"ResourceScanSummary\";\nconst _RSe = \"ResourcesScanned\";\nconst _RSes = \"ResourceStatus\";\nconst _RSeso = \"ResourcesSucceeded\";\nconst _RSo = \"RollbackStack\";\nconst _RT = \"ResourceType\";\nconst _RTD = \"ResourceTargetDetails\";\nconst _RTDe = \"ResourceTargetDefinition\";\nconst _RTI = \"ResourcesToImport\";\nconst _RTIe = \"RegisterTypeInput\";\nconst _RTIes = \"ResourceToImport\";\nconst _RTL = \"RegistrationTokenList\";\nconst _RTO = \"RegisterTypeOutput\";\nconst _RTP = \"ResourceTypePrefix\";\nconst _RTS = \"ResourcesToSkip\";\nconst _RTe = \"ResourceTypes\";\nconst _RTeg = \"RegistrationToken\";\nconst _RTegi = \"RegisterType\";\nconst _RTo = \"RollbackTriggers\";\nconst _RTol = \"RollbackTrigger\";\nconst _RV = \"ResolvedValue\";\nconst _Re = \"Regions\";\nconst _Rea = \"Reason\";\nconst _Reg = \"Region\";\nconst _Rep = \"Replacement\";\nconst _Req = \"Required\";\nconst _S = \"Status\";\nconst _SA = \"StagesAvailable\";\nconst _SD = \"StackDefinitions\";\nconst _SDDI = \"StackDriftDetectionId\";\nconst _SDI = \"StackDriftInformation\";\nconst _SDIS = \"StackDriftInformationSummary\";\nconst _SDS = \"StackDriftStatus\";\nconst _SDt = \"StackDefinition\";\nconst _SDta = \"StatusDetails\";\nconst _SE = \"StackEvents\";\nconst _SEt = \"StackEvent\";\nconst _SF = \"ScanFilters\";\nconst _SFc = \"ScanFilter\";\nconst _SHP = \"SchemaHandlerPackage\";\nconst _SI = \"StackId\";\nconst _SIA = \"StackInstanceAccount\";\nconst _SICS = \"StackInstanceComprehensiveStatus\";\nconst _SIF = \"StackInstanceFilter\";\nconst _SIFt = \"StackInstanceFilters\";\nconst _SINFE = \"StackInstanceNotFoundException\";\nconst _SIR = \"StackInstanceRegion\";\nconst _SIRDS = \"StackInstanceResourceDriftStatuses\";\nconst _SIRDSt = \"StackInstanceResourceDriftsSummary\";\nconst _SIRDSta = \"StackInstanceResourceDriftsSummaries\";\nconst _SIS = \"StackInstanceStatus\";\nconst _SISt = \"StackInstanceSummary\";\nconst _SISta = \"StackInstanceSummaries\";\nconst _SIU = \"StackIdsUrl\";\nconst _SIt = \"StackInstance\";\nconst _SIta = \"StackIds\";\nconst _SL = \"SeverityLevel\";\nconst _SM = \"StatusMessage\";\nconst _SMV = \"SupportedMajorVersions\";\nconst _SN = \"StackName\";\nconst _SNFE = \"StackNotFoundException\";\nconst _SPB = \"StackPolicyBody\";\nconst _SPDUB = \"StackPolicyDuringUpdateBody\";\nconst _SPDUURL = \"StackPolicyDuringUpdateURL\";\nconst _SPURL = \"StackPolicyURL\";\nconst _SR = \"StatusReason\";\nconst _SRA = \"StackRefactorActions\";\nconst _SRAt = \"StackRefactorAction\";\nconst _SRD = \"StackResourceDrifts\";\nconst _SRDI = \"StackResourceDriftInformation\";\nconst _SRDIS = \"StackResourceDriftInformationSummary\";\nconst _SRDS = \"StackResourceDriftStatus\";\nconst _SRDSF = \"StackResourceDriftStatusFilters\";\nconst _SRDt = \"StackResourceDetail\";\nconst _SRDta = \"StackResourceDrift\";\nconst _SRE = \"StaleRequestException\";\nconst _SRI = \"StackRefactorId\";\nconst _SRIc = \"ScannedResourceIdentifier\";\nconst _SRIca = \"ScannedResourceIdentifiers\";\nconst _SRIi = \"SignalResourceInput\";\nconst _SRNFE = \"StackRefactorNotFoundException\";\nconst _SRS = \"StackRefactorSummaries\";\nconst _SRSI = \"StartResourceScanInput\";\nconst _SRSO = \"StartResourceScanOutput\";\nconst _SRSt = \"StackResourceSummaries\";\nconst _SRSta = \"StackRefactorSummary\";\nconst _SRStac = \"StackResourceSummary\";\nconst _SRStar = \"StartResourceScan\";\nconst _SRTR = \"StackRefactorTagResources\";\nconst _SRc = \"ScannedResource\";\nconst _SRca = \"ScannedResources\";\nconst _SRi = \"SignalResource\";\nconst _SRt = \"StackResources\";\nconst _SRta = \"StackResource\";\nconst _SS = \"StackSet\";\nconst _SSADTS = \"StackSetAutoDeploymentTargetSummary\";\nconst _SSADTSt = \"StackSetAutoDeploymentTargetSummaries\";\nconst _SSARN = \"StackSetARN\";\nconst _SSDDD = \"StackSetDriftDetectionDetails\";\nconst _SSF = \"StackStatusFilter\";\nconst _SSI = \"StackSetId\";\nconst _SSN = \"StackSetName\";\nconst _SSNEE = \"StackSetNotEmptyException\";\nconst _SSNFE = \"StackSetNotFoundException\";\nconst _SSO = \"StackSetOperation\";\nconst _SSOP = \"StackSetOperationPreferences\";\nconst _SSORS = \"StackSetOperationResultSummary\";\nconst _SSORSt = \"StackSetOperationResultSummaries\";\nconst _SSOS = \"StackSetOperationSummary\";\nconst _SSOSD = \"StackSetOperationStatusDetails\";\nconst _SSOSt = \"StackSetOperationSummaries\";\nconst _SSP = \"SetStackPolicy\";\nconst _SSPI = \"SetStackPolicyInput\";\nconst _SSR = \"StackStatusReason\";\nconst _SSS = \"StackSetSummary\";\nconst _SSSO = \"StopStackSetOperation\";\nconst _SSSOI = \"StopStackSetOperationInput\";\nconst _SSSOO = \"StopStackSetOperationOutput\";\nconst _SSSt = \"StackSetSummaries\";\nconst _SSt = \"StackSummaries\";\nconst _SSta = \"StackStatus\";\nconst _SStac = \"StackSummary\";\nconst _ST = \"StartTime\";\nconst _STC = \"SetTypeConfiguration\";\nconst _STCI = \"SetTypeConfigurationInput\";\nconst _STCO = \"SetTypeConfigurationOutput\";\nconst _STDV = \"SetTypeDefaultVersion\";\nconst _STDVI = \"SetTypeDefaultVersionInput\";\nconst _STDVO = \"SetTypeDefaultVersionOutput\";\nconst _STF = \"ScanTypeFilter\";\nconst _STc = \"ScanType\";\nconst _SU = \"SourceUrl\";\nconst _Sc = \"Schema\";\nconst _Sco = \"Scope\";\nconst _So = \"Source\";\nconst _St = \"Stacks\";\nconst _Sta = \"Stack\";\nconst _Su = \"Summaries\";\nconst _T = \"Type\";\nconst _TA = \"TypeArn\";\nconst _TAEE = \"TokenAlreadyExistsException\";\nconst _TB = \"TemplateBody\";\nconst _TC = \"TypeConfigurations\";\nconst _TCA = \"TypeConfigurationAlias\";\nconst _TCAy = \"TypeConfigurationArn\";\nconst _TCD = \"TypeConfigurationDetails\";\nconst _TCDL = \"TypeConfigurationDetailsList\";\nconst _TCI = \"TypeConfigurationIdentifier\";\nconst _TCIy = \"TypeConfigurationIdentifiers\";\nconst _TCNFE = \"TypeConfigurationNotFoundException\";\nconst _TCVI = \"TypeConfigurationVersionId\";\nconst _TCe = \"TemplateConfiguration\";\nconst _TCi = \"TimeCreated\";\nconst _TD = \"TargetDetails\";\nconst _TDe = \"TemplateDescription\";\nconst _TF = \"TypeFilters\";\nconst _TH = \"TypeHierarchy\";\nconst _TI = \"TargetId\";\nconst _TIM = \"TimeoutInMinutes\";\nconst _TK = \"TagKey\";\nconst _TN = \"TypeName\";\nconst _TNA = \"TypeNameAlias\";\nconst _TNFE = \"TypeNotFoundException\";\nconst _TNP = \"TypeNamePrefix\";\nconst _TP = \"TemplateParameter\";\nconst _TPe = \"TemplateProgress\";\nconst _TPem = \"TemplateParameters\";\nconst _TR = \"TagResources\";\nconst _TS = \"TemplateStage\";\nconst _TSC = \"TemplateSummaryConfig\";\nconst _TSIC = \"TotalStackInstancesCount\";\nconst _TSe = \"TemplateSummary\";\nconst _TSem = \"TemplateSummaries\";\nconst _TSy = \"TypeSummaries\";\nconst _TSyp = \"TypeSummary\";\nconst _TT = \"TargetType\";\nconst _TTI = \"TestTypeInput\";\nconst _TTN = \"TargetTypeName\";\nconst _TTO = \"TestTypeOutput\";\nconst _TTS = \"TypeTestsStatus\";\nconst _TTSD = \"TypeTestsStatusDescription\";\nconst _TTe = \"TestType\";\nconst _TURL = \"TemplateURL\";\nconst _TURTAW = \"TreatUnrecognizedResourceTypesAsWarnings\";\nconst _TV = \"TagValue\";\nconst _TVA = \"TypeVersionArn\";\nconst _TVI = \"TypeVersionId\";\nconst _TVS = \"TypeVersionSummaries\";\nconst _TVSy = \"TypeVersionSummary\";\nconst _TW = \"TotalWarnings\";\nconst _Ta = \"Tags\";\nconst _Tag = \"Tag\";\nconst _Tar = \"Target\";\nconst _Ti = \"Timestamp\";\nconst _Ty = \"Types\";\nconst _U = \"Url\";\nconst _UGT = \"UpdateGeneratedTemplate\";\nconst _UGTI = \"UpdateGeneratedTemplateInput\";\nconst _UGTO = \"UpdateGeneratedTemplateOutput\";\nconst _UI = \"UniqueId\";\nconst _UPT = \"UsePreviousTemplate\";\nconst _UPV = \"UsePreviousValue\";\nconst _UR = \"UntagResources\";\nconst _URP = \"UpdateReplacePolicy\";\nconst _URT = \"UnrecognizedResourceTypes\";\nconst _US = \"UpdateStack\";\nconst _USI = \"UpdateStackInput\";\nconst _USII = \"UpdateStackInstancesInput\";\nconst _USIO = \"UpdateStackInstancesOutput\";\nconst _USIp = \"UpdateStackInstances\";\nconst _USO = \"UpdateStackOutput\";\nconst _USS = \"UpdateStackSet\";\nconst _USSI = \"UpdateStackSetInput\";\nconst _USSO = \"UpdateStackSetOutput\";\nconst _UTC = \"UnprocessedTypeConfigurations\";\nconst _UTP = \"UpdateTerminationProtection\";\nconst _UTPI = \"UpdateTerminationProtectionInput\";\nconst _UTPO = \"UpdateTerminationProtectionOutput\";\nconst _V = \"Value\";\nconst _VB = \"VersionBump\";\nconst _VFM = \"ValidationFailureMode\";\nconst _VI = \"VersionId\";\nconst _VN = \"ValidationName\";\nconst _VP = \"ValidationPath\";\nconst _VS = \"ValidationStatus\";\nconst _VSR = \"ValidationStatusReason\";\nconst _VT = \"ValidateTemplate\";\nconst _VTI = \"ValidateTemplateInput\";\nconst _VTO = \"ValidateTemplateOutput\";\nconst _Va = \"Values\";\nconst _Ve = \"Version\";\nconst _Vi = \"Visibility\";\nconst _W = \"Warnings\";\nconst _WD = \"WarningDetail\";\nconst _WDa = \"WarningDetails\";\nconst _WP = \"WarningProperty\";\nconst _WPa = \"WarningProperties\";\nconst _aQE = \"awsQueryError\";\nconst _c = \"client\";\nconst _e = \"error\";\nconst _hE = \"httpError\";\nconst _s = \"smithy.ts.sdk.synthetic.com.amazonaws.cloudformation\";\nconst n0 = \"com.amazonaws.cloudformation\";\nconst schema_1 = require(\"@smithy/core/schema\");\nconst CloudFormationServiceException_1 = require(\"../models/CloudFormationServiceException\");\nconst errors_1 = require(\"../models/errors\");\nconst _s_registry = schema_1.TypeRegistry.for(_s);\nexports.CloudFormationServiceException$ = [-3, _s, \"CloudFormationServiceException\", 0, [], []];\n_s_registry.registerError(exports.CloudFormationServiceException$, CloudFormationServiceException_1.CloudFormationServiceException);\nconst n0_registry = schema_1.TypeRegistry.for(n0);\nexports.AlreadyExistsException$ = [-3, n0, _AEE,\n { [_aQE]: [`AlreadyExistsException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.AlreadyExistsException$, errors_1.AlreadyExistsException);\nexports.CFNRegistryException$ = [-3, n0, _CFNRE,\n { [_aQE]: [`CFNRegistryException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.CFNRegistryException$, errors_1.CFNRegistryException);\nexports.ChangeSetNotFoundException$ = [-3, n0, _CSNFE,\n { [_aQE]: [`ChangeSetNotFound`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ChangeSetNotFoundException$, errors_1.ChangeSetNotFoundException);\nexports.ConcurrentResourcesLimitExceededException$ = [-3, n0, _CRLEE,\n { [_aQE]: [`ConcurrentResourcesLimitExceeded`, 429], [_e]: _c, [_hE]: 429 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ConcurrentResourcesLimitExceededException$, errors_1.ConcurrentResourcesLimitExceededException);\nexports.CreatedButModifiedException$ = [-3, n0, _CBME,\n { [_aQE]: [`CreatedButModifiedException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.CreatedButModifiedException$, errors_1.CreatedButModifiedException);\nexports.GeneratedTemplateNotFoundException$ = [-3, n0, _GTNFE,\n { [_aQE]: [`GeneratedTemplateNotFound`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.GeneratedTemplateNotFoundException$, errors_1.GeneratedTemplateNotFoundException);\nexports.HookResultNotFoundException$ = [-3, n0, _HRNFE,\n { [_aQE]: [`HookResultNotFound`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.HookResultNotFoundException$, errors_1.HookResultNotFoundException);\nexports.InsufficientCapabilitiesException$ = [-3, n0, _ICE,\n { [_aQE]: [`InsufficientCapabilitiesException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InsufficientCapabilitiesException$, errors_1.InsufficientCapabilitiesException);\nexports.InvalidChangeSetStatusException$ = [-3, n0, _ICSSE,\n { [_aQE]: [`InvalidChangeSetStatus`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InvalidChangeSetStatusException$, errors_1.InvalidChangeSetStatusException);\nexports.InvalidOperationException$ = [-3, n0, _IOE,\n { [_aQE]: [`InvalidOperationException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InvalidOperationException$, errors_1.InvalidOperationException);\nexports.InvalidStateTransitionException$ = [-3, n0, _ISTE,\n { [_aQE]: [`InvalidStateTransition`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.InvalidStateTransitionException$, errors_1.InvalidStateTransitionException);\nexports.LimitExceededException$ = [-3, n0, _LEE,\n { [_aQE]: [`LimitExceededException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.LimitExceededException$, errors_1.LimitExceededException);\nexports.NameAlreadyExistsException$ = [-3, n0, _NAEE,\n { [_aQE]: [`NameAlreadyExistsException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.NameAlreadyExistsException$, errors_1.NameAlreadyExistsException);\nexports.OperationIdAlreadyExistsException$ = [-3, n0, _OIAEE,\n { [_aQE]: [`OperationIdAlreadyExistsException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationIdAlreadyExistsException$, errors_1.OperationIdAlreadyExistsException);\nexports.OperationInProgressException$ = [-3, n0, _OIPE,\n { [_aQE]: [`OperationInProgressException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationInProgressException$, errors_1.OperationInProgressException);\nexports.OperationNotFoundException$ = [-3, n0, _ONFE,\n { [_aQE]: [`OperationNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationNotFoundException$, errors_1.OperationNotFoundException);\nexports.OperationStatusCheckFailedException$ = [-3, n0, _OSCFE,\n { [_aQE]: [`ConditionalCheckFailed`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.OperationStatusCheckFailedException$, errors_1.OperationStatusCheckFailedException);\nexports.ResourceScanInProgressException$ = [-3, n0, _RSIPE,\n { [_aQE]: [`ResourceScanInProgress`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ResourceScanInProgressException$, errors_1.ResourceScanInProgressException);\nexports.ResourceScanLimitExceededException$ = [-3, n0, _RSLEE,\n { [_aQE]: [`ResourceScanLimitExceeded`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ResourceScanLimitExceededException$, errors_1.ResourceScanLimitExceededException);\nexports.ResourceScanNotFoundException$ = [-3, n0, _RSNFE,\n { [_aQE]: [`ResourceScanNotFound`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.ResourceScanNotFoundException$, errors_1.ResourceScanNotFoundException);\nexports.StackInstanceNotFoundException$ = [-3, n0, _SINFE,\n { [_aQE]: [`StackInstanceNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackInstanceNotFoundException$, errors_1.StackInstanceNotFoundException);\nexports.StackNotFoundException$ = [-3, n0, _SNFE,\n { [_aQE]: [`StackNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackNotFoundException$, errors_1.StackNotFoundException);\nexports.StackRefactorNotFoundException$ = [-3, n0, _SRNFE,\n { [_aQE]: [`StackRefactorNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackRefactorNotFoundException$, errors_1.StackRefactorNotFoundException);\nexports.StackSetNotEmptyException$ = [-3, n0, _SSNEE,\n { [_aQE]: [`StackSetNotEmptyException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackSetNotEmptyException$, errors_1.StackSetNotEmptyException);\nexports.StackSetNotFoundException$ = [-3, n0, _SSNFE,\n { [_aQE]: [`StackSetNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StackSetNotFoundException$, errors_1.StackSetNotFoundException);\nexports.StaleRequestException$ = [-3, n0, _SRE,\n { [_aQE]: [`StaleRequestException`, 409], [_e]: _c, [_hE]: 409 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.StaleRequestException$, errors_1.StaleRequestException);\nexports.TokenAlreadyExistsException$ = [-3, n0, _TAEE,\n { [_aQE]: [`TokenAlreadyExistsException`, 400], [_e]: _c, [_hE]: 400 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.TokenAlreadyExistsException$, errors_1.TokenAlreadyExistsException);\nexports.TypeConfigurationNotFoundException$ = [-3, n0, _TCNFE,\n { [_aQE]: [`TypeConfigurationNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.TypeConfigurationNotFoundException$, errors_1.TypeConfigurationNotFoundException);\nexports.TypeNotFoundException$ = [-3, n0, _TNFE,\n { [_aQE]: [`TypeNotFoundException`, 404], [_e]: _c, [_hE]: 404 },\n [_M],\n [0]\n];\nn0_registry.registerError(exports.TypeNotFoundException$, errors_1.TypeNotFoundException);\nexports.errorTypeRegistries = [\n _s_registry,\n n0_registry,\n];\nexports.AccountGateResult$ = [3, n0, _AGR,\n 0,\n [_S, _SR],\n [0, 0]\n];\nexports.AccountLimit$ = [3, n0, _AL,\n 0,\n [_N, _V],\n [0, 1]\n];\nexports.ActivateOrganizationsAccessInput$ = [3, n0, _AOAI,\n 0,\n [],\n []\n];\nexports.ActivateOrganizationsAccessOutput$ = [3, n0, _AOAO,\n 0,\n [],\n []\n];\nexports.ActivateTypeInput$ = [3, n0, _ATI,\n 0,\n [_T, _PTA, _PI, _TN, _TNA, _AU, _LC, _ERA, _VB, _MV],\n [0, 0, 0, 0, 0, 2, () => exports.LoggingConfig$, 0, 0, 1]\n];\nexports.ActivateTypeOutput$ = [3, n0, _ATO,\n 0,\n [_A],\n [0]\n];\nexports.Annotation$ = [3, n0, _An,\n 0,\n [_AN, _S, _SM, _RM, _RL, _SL],\n [0, 0, 0, 0, 0, 0]\n];\nexports.AutoDeployment$ = [3, n0, _AD,\n 0,\n [_E, _RSOAR, _DO],\n [2, 2, 64 | 0]\n];\nexports.BatchDescribeTypeConfigurationsError$ = [3, n0, _BDTCE,\n 0,\n [_EC, _EM, _TCI],\n [0, 0, () => exports.TypeConfigurationIdentifier$]\n];\nexports.BatchDescribeTypeConfigurationsInput$ = [3, n0, _BDTCI,\n 0,\n [_TCIy],\n [() => TypeConfigurationIdentifiers], 1\n];\nexports.BatchDescribeTypeConfigurationsOutput$ = [3, n0, _BDTCO,\n 0,\n [_Er, _UTC, _TC],\n [() => BatchDescribeTypeConfigurationsErrors, () => UnprocessedTypeConfigurations, () => TypeConfigurationDetailsList]\n];\nexports.CancelUpdateStackInput$ = [3, n0, _CUSI,\n 0,\n [_SN, _CRT],\n [0, 0], 1\n];\nexports.Change$ = [3, n0, _C,\n 0,\n [_T, _HIC, _RC],\n [0, 1, () => exports.ResourceChange$]\n];\nexports.ChangeSetHook$ = [3, n0, _CSH,\n 0,\n [_IP, _FM, _TN, _TVI, _TCVI, _TD],\n [0, 0, 0, 0, 0, () => exports.ChangeSetHookTargetDetails$]\n];\nexports.ChangeSetHookResourceTargetDetails$ = [3, n0, _CSHRTD,\n 0,\n [_LRI, _RT, _RA],\n [0, 0, 0]\n];\nexports.ChangeSetHookTargetDetails$ = [3, n0, _CSHTD,\n 0,\n [_TT, _RTD],\n [0, () => exports.ChangeSetHookResourceTargetDetails$]\n];\nexports.ChangeSetSummary$ = [3, n0, _CSS,\n 0,\n [_SI, _SN, _CSI, _CSN, _ES, _S, _SR, _CT, _D, _INS, _PCSI, _RCSI, _IER],\n [0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 2]\n];\nexports.ContinueUpdateRollbackInput$ = [3, n0, _CURI,\n 0,\n [_SN, _RARN, _RTS, _CRT],\n [0, 0, 64 | 0, 0], 1\n];\nexports.ContinueUpdateRollbackOutput$ = [3, n0, _CURO,\n 0,\n [],\n []\n];\nexports.CreateChangeSetInput$ = [3, n0, _CCSI,\n 0,\n [_SN, _CSN, _TB, _TURL, _UPT, _P, _Ca, _RTe, _RARN, _RCo, _NARN, _Ta, _CTl, _D, _CST, _RTI, _INS, _OSF, _IER, _DM],\n [0, 0, 0, 0, 2, () => _Parameters, 64 | 0, 64 | 0, 0, () => exports.RollbackConfiguration$, 64 | 0, () => Tags, 0, 0, 0, () => ResourcesToImport, 2, 0, 2, 0], 2\n];\nexports.CreateChangeSetOutput$ = [3, n0, _CCSO,\n 0,\n [_I, _SI],\n [0, 0]\n];\nexports.CreateGeneratedTemplateInput$ = [3, n0, _CGTI,\n 0,\n [_GTN, _R, _SN, _TCe],\n [0, () => ResourceDefinitions, 0, () => exports.TemplateConfiguration$], 1\n];\nexports.CreateGeneratedTemplateOutput$ = [3, n0, _CGTO,\n 0,\n [_GTI],\n [0]\n];\nexports.CreateStackInput$ = [3, n0, _CSIr,\n 0,\n [_SN, _TB, _TURL, _P, _DR, _RCo, _TIM, _NARN, _Ca, _RTe, _RARN, _OF, _SPB, _SPURL, _Ta, _CRT, _ETP, _REOC],\n [0, 0, 0, () => _Parameters, 2, () => exports.RollbackConfiguration$, 1, 64 | 0, 64 | 0, 64 | 0, 0, 0, 0, 0, () => Tags, 0, 2, 2], 1\n];\nexports.CreateStackInstancesInput$ = [3, n0, _CSII,\n 0,\n [_SSN, _Re, _Ac, _DT, _PO, _OP, _OI, _CA],\n [0, 64 | 0, 64 | 0, () => exports.DeploymentTargets$, () => _Parameters, () => exports.StackSetOperationPreferences$, [0, 4], 0], 2\n];\nexports.CreateStackInstancesOutput$ = [3, n0, _CSIO,\n 0,\n [_OI],\n [0]\n];\nexports.CreateStackOutput$ = [3, n0, _CSO,\n 0,\n [_SI, _OI],\n [0, 0]\n];\nexports.CreateStackRefactorInput$ = [3, n0, _CSRI,\n 0,\n [_SD, _D, _ESC, _RMe],\n [() => StackDefinitions, 0, 2, () => ResourceMappings], 1\n];\nexports.CreateStackRefactorOutput$ = [3, n0, _CSRO,\n 0,\n [_SRI],\n [0], 1\n];\nexports.CreateStackSetInput$ = [3, n0, _CSSI,\n 0,\n [_SSN, _D, _TB, _TURL, _SI, _P, _Ca, _Ta, _ARARN, _ERN, _PM, _AD, _CA, _CRT, _ME],\n [0, 0, 0, 0, 0, () => _Parameters, 64 | 0, () => Tags, 0, 0, 0, () => exports.AutoDeployment$, 0, [0, 4], () => exports.ManagedExecution$], 1\n];\nexports.CreateStackSetOutput$ = [3, n0, _CSSO,\n 0,\n [_SSI],\n [0]\n];\nexports.DeactivateOrganizationsAccessInput$ = [3, n0, _DOAI,\n 0,\n [],\n []\n];\nexports.DeactivateOrganizationsAccessOutput$ = [3, n0, _DOAO,\n 0,\n [],\n []\n];\nexports.DeactivateTypeInput$ = [3, n0, _DTI,\n 0,\n [_TN, _T, _A],\n [0, 0, 0]\n];\nexports.DeactivateTypeOutput$ = [3, n0, _DTO,\n 0,\n [],\n []\n];\nexports.DeleteChangeSetInput$ = [3, n0, _DCSI,\n 0,\n [_CSN, _SN],\n [0, 0], 1\n];\nexports.DeleteChangeSetOutput$ = [3, n0, _DCSO,\n 0,\n [],\n []\n];\nexports.DeleteGeneratedTemplateInput$ = [3, n0, _DGTI,\n 0,\n [_GTN],\n [0], 1\n];\nexports.DeleteStackInput$ = [3, n0, _DSI,\n 0,\n [_SN, _RR, _RARN, _CRT, _DMe],\n [0, 64 | 0, 0, 0, 0], 1\n];\nexports.DeleteStackInstancesInput$ = [3, n0, _DSII,\n 0,\n [_SSN, _Re, _RS, _Ac, _DT, _OP, _OI, _CA],\n [0, 64 | 0, 2, 64 | 0, () => exports.DeploymentTargets$, () => exports.StackSetOperationPreferences$, [0, 4], 0], 3\n];\nexports.DeleteStackInstancesOutput$ = [3, n0, _DSIO,\n 0,\n [_OI],\n [0]\n];\nexports.DeleteStackSetInput$ = [3, n0, _DSSI,\n 0,\n [_SSN, _CA],\n [0, 0], 1\n];\nexports.DeleteStackSetOutput$ = [3, n0, _DSSO,\n 0,\n [],\n []\n];\nexports.DeploymentTargets$ = [3, n0, _DT,\n 0,\n [_Ac, _AUc, _OUI, _AFT],\n [64 | 0, 0, 64 | 0, 0]\n];\nexports.DeregisterTypeInput$ = [3, n0, _DTIe,\n 0,\n [_A, _T, _TN, _VI],\n [0, 0, 0, 0]\n];\nexports.DeregisterTypeOutput$ = [3, n0, _DTOe,\n 0,\n [],\n []\n];\nexports.DescribeAccountLimitsInput$ = [3, n0, _DALI,\n 0,\n [_NT],\n [0]\n];\nexports.DescribeAccountLimitsOutput$ = [3, n0, _DALO,\n 0,\n [_ALc, _NT],\n [() => AccountLimitList, 0]\n];\nexports.DescribeChangeSetHooksInput$ = [3, n0, _DCSHI,\n 0,\n [_CSN, _SN, _NT, _LRI],\n [0, 0, 0, 0], 1\n];\nexports.DescribeChangeSetHooksOutput$ = [3, n0, _DCSHO,\n 0,\n [_CSI, _CSN, _H, _S, _NT, _SI, _SN],\n [0, 0, () => ChangeSetHooks, 0, 0, 0, 0]\n];\nexports.DescribeChangeSetInput$ = [3, n0, _DCSIe,\n 0,\n [_CSN, _SN, _NT, _IPV],\n [0, 0, 0, 2], 1\n];\nexports.DescribeChangeSetOutput$ = [3, n0, _DCSOe,\n 0,\n [_CSN, _CSI, _SI, _SN, _D, _P, _CT, _ES, _S, _SR, _SDS, _NARN, _RCo, _Ca, _Ta, _Ch, _NT, _INS, _PCSI, _RCSI, _OSF, _IER, _DM],\n [0, 0, 0, 0, 0, () => _Parameters, 4, 0, 0, 0, 0, 64 | 0, () => exports.RollbackConfiguration$, 64 | 0, () => Tags, () => Changes, 0, 2, 0, 0, 0, 2, 0]\n];\nexports.DescribeEventsInput$ = [3, n0, _DEI,\n 0,\n [_SN, _CSN, _OI, _F, _NT],\n [0, 0, 0, () => exports.EventFilter$, 0]\n];\nexports.DescribeEventsOutput$ = [3, n0, _DEO,\n 0,\n [_OE, _NT],\n [() => OperationEvents, 0]\n];\nexports.DescribeGeneratedTemplateInput$ = [3, n0, _DGTIe,\n 0,\n [_GTN],\n [0], 1\n];\nexports.DescribeGeneratedTemplateOutput$ = [3, n0, _DGTO,\n 0,\n [_GTI, _GTN, _R, _S, _SR, _CT, _LUT, _Pr, _SI, _TCe, _TW],\n [0, 0, () => ResourceDetails, 0, 0, 4, 4, () => exports.TemplateProgress$, 0, () => exports.TemplateConfiguration$, 1]\n];\nexports.DescribeOrganizationsAccessInput$ = [3, n0, _DOAIe,\n 0,\n [_CA],\n [0]\n];\nexports.DescribeOrganizationsAccessOutput$ = [3, n0, _DOAOe,\n 0,\n [_S],\n [0]\n];\nexports.DescribePublisherInput$ = [3, n0, _DPI,\n 0,\n [_PI],\n [0]\n];\nexports.DescribePublisherOutput$ = [3, n0, _DPO,\n 0,\n [_PI, _PS, _IPd, _PP],\n [0, 0, 0, 0]\n];\nexports.DescribeResourceScanInput$ = [3, n0, _DRSI,\n 0,\n [_RSI],\n [0], 1\n];\nexports.DescribeResourceScanOutput$ = [3, n0, _DRSO,\n 0,\n [_RSI, _S, _SR, _ST, _ET, _PC, _RTe, _RSe, _RRe, _SF],\n [0, 0, 0, 4, 4, 1, 64 | 0, 1, 1, () => ScanFilters]\n];\nexports.DescribeStackDriftDetectionStatusInput$ = [3, n0, _DSDDSI,\n 0,\n [_SDDI],\n [0], 1\n];\nexports.DescribeStackDriftDetectionStatusOutput$ = [3, n0, _DSDDSO,\n 0,\n [_SI, _SDDI, _DS, _Ti, _SDS, _DSR, _DSRC],\n [0, 0, 0, 4, 0, 0, 1], 4\n];\nexports.DescribeStackEventsInput$ = [3, n0, _DSEI,\n 0,\n [_SN, _NT],\n [0, 0], 1\n];\nexports.DescribeStackEventsOutput$ = [3, n0, _DSEO,\n 0,\n [_SE, _NT],\n [() => StackEvents, 0]\n];\nexports.DescribeStackInstanceInput$ = [3, n0, _DSIIe,\n 0,\n [_SSN, _SIA, _SIR, _CA],\n [0, 0, 0, 0], 3\n];\nexports.DescribeStackInstanceOutput$ = [3, n0, _DSIOe,\n 0,\n [_SIt],\n [() => exports.StackInstance$]\n];\nexports.DescribeStackRefactorInput$ = [3, n0, _DSRI,\n 0,\n [_SRI],\n [0], 1\n];\nexports.DescribeStackRefactorOutput$ = [3, n0, _DSRO,\n 0,\n [_D, _SRI, _SIta, _ES, _ESR, _S, _SR],\n [0, 0, 64 | 0, 0, 0, 0, 0]\n];\nexports.DescribeStackResourceDriftsInput$ = [3, n0, _DSRDI,\n 0,\n [_SN, _SRDSF, _NT, _MR],\n [0, 64 | 0, 0, 1], 1\n];\nexports.DescribeStackResourceDriftsOutput$ = [3, n0, _DSRDO,\n 0,\n [_SRD, _NT],\n [() => StackResourceDrifts, 0], 1\n];\nexports.DescribeStackResourceInput$ = [3, n0, _DSRIe,\n 0,\n [_SN, _LRI],\n [0, 0], 2\n];\nexports.DescribeStackResourceOutput$ = [3, n0, _DSROe,\n 0,\n [_SRDt],\n [() => exports.StackResourceDetail$]\n];\nexports.DescribeStackResourcesInput$ = [3, n0, _DSRIes,\n 0,\n [_SN, _LRI, _PRI],\n [0, 0, 0]\n];\nexports.DescribeStackResourcesOutput$ = [3, n0, _DSROes,\n 0,\n [_SRt],\n [() => StackResources]\n];\nexports.DescribeStackSetInput$ = [3, n0, _DSSIe,\n 0,\n [_SSN, _CA],\n [0, 0], 1\n];\nexports.DescribeStackSetOperationInput$ = [3, n0, _DSSOI,\n 0,\n [_SSN, _OI, _CA],\n [0, 0, 0], 2\n];\nexports.DescribeStackSetOperationOutput$ = [3, n0, _DSSOO,\n 0,\n [_SSO],\n [() => exports.StackSetOperation$]\n];\nexports.DescribeStackSetOutput$ = [3, n0, _DSSOe,\n 0,\n [_SS],\n [() => exports.StackSet$]\n];\nexports.DescribeStacksInput$ = [3, n0, _DSIe,\n 0,\n [_SN, _NT],\n [0, 0]\n];\nexports.DescribeStacksOutput$ = [3, n0, _DSO,\n 0,\n [_St, _NT],\n [() => Stacks, 0]\n];\nexports.DescribeTypeInput$ = [3, n0, _DTIes,\n 0,\n [_T, _TN, _A, _VI, _PI, _PVN],\n [0, 0, 0, 0, 0, 0]\n];\nexports.DescribeTypeOutput$ = [3, n0, _DTOes,\n 0,\n [_A, _T, _TN, _DVI, _IDV, _TTS, _TTSD, _D, _Sc, _PT, _DSe, _LC, _RAT, _ERA, _Vi, _SU, _DU, _LU, _TCi, _CS, _PI, _OTN, _OTA, _PVN, _LPV, _IA, _AU],\n [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, () => exports.LoggingConfig$, () => RequiredActivatedTypes, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 2, 2]\n];\nexports.DescribeTypeRegistrationInput$ = [3, n0, _DTRI,\n 0,\n [_RTeg],\n [0], 1\n];\nexports.DescribeTypeRegistrationOutput$ = [3, n0, _DTRO,\n 0,\n [_PSr, _D, _TA, _TVA],\n [0, 0, 0, 0]\n];\nexports.DetectStackDriftInput$ = [3, n0, _DSDI,\n 0,\n [_SN, _LRIo],\n [0, 64 | 0], 1\n];\nexports.DetectStackDriftOutput$ = [3, n0, _DSDO,\n 0,\n [_SDDI],\n [0], 1\n];\nexports.DetectStackResourceDriftInput$ = [3, n0, _DSRDIe,\n 0,\n [_SN, _LRI],\n [0, 0], 2\n];\nexports.DetectStackResourceDriftOutput$ = [3, n0, _DSRDOe,\n 0,\n [_SRDta],\n [() => exports.StackResourceDrift$], 1\n];\nexports.DetectStackSetDriftInput$ = [3, n0, _DSSDI,\n 0,\n [_SSN, _OP, _OI, _CA],\n [0, () => exports.StackSetOperationPreferences$, [0, 4], 0], 1\n];\nexports.DetectStackSetDriftOutput$ = [3, n0, _DSSDO,\n 0,\n [_OI],\n [0]\n];\nexports.EstimateTemplateCostInput$ = [3, n0, _ETCI,\n 0,\n [_TB, _TURL, _P],\n [0, 0, () => _Parameters]\n];\nexports.EstimateTemplateCostOutput$ = [3, n0, _ETCO,\n 0,\n [_U],\n [0]\n];\nexports.EventFilter$ = [3, n0, _EF,\n 0,\n [_FE],\n [2]\n];\nexports.ExecuteChangeSetInput$ = [3, n0, _ECSI,\n 0,\n [_CSN, _SN, _CRT, _DR, _REOC],\n [0, 0, 0, 2, 2], 1\n];\nexports.ExecuteChangeSetOutput$ = [3, n0, _ECSO,\n 0,\n [],\n []\n];\nexports.ExecuteStackRefactorInput$ = [3, n0, _ESRI,\n 0,\n [_SRI],\n [0], 1\n];\nexports.Export$ = [3, n0, _Ex,\n 0,\n [_ESI, _N, _V],\n [0, 0, 0]\n];\nexports.GetGeneratedTemplateInput$ = [3, n0, _GGTI,\n 0,\n [_GTN, _Fo],\n [0, 0], 1\n];\nexports.GetGeneratedTemplateOutput$ = [3, n0, _GGTO,\n 0,\n [_S, _TB],\n [0, 0]\n];\nexports.GetHookResultInput$ = [3, n0, _GHRI,\n 0,\n [_HRI],\n [0]\n];\nexports.GetHookResultOutput$ = [3, n0, _GHRO,\n 0,\n [_HRI, _IP, _FM, _TN, _OTN, _TVI, _TCVI, _TA, _S, _HSR, _IAn, _Tar, _Ann],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, () => exports.HookTarget$, () => AnnotationList]\n];\nexports.GetStackPolicyInput$ = [3, n0, _GSPI,\n 0,\n [_SN],\n [0], 1\n];\nexports.GetStackPolicyOutput$ = [3, n0, _GSPO,\n 0,\n [_SPB],\n [0]\n];\nexports.GetTemplateInput$ = [3, n0, _GTIe,\n 0,\n [_SN, _CSN, _TS],\n [0, 0, 0]\n];\nexports.GetTemplateOutput$ = [3, n0, _GTO,\n 0,\n [_TB, _SA],\n [0, 64 | 0]\n];\nexports.GetTemplateSummaryInput$ = [3, n0, _GTSI,\n 0,\n [_TB, _TURL, _SN, _SSN, _CA, _TSC],\n [0, 0, 0, 0, 0, () => exports.TemplateSummaryConfig$]\n];\nexports.GetTemplateSummaryOutput$ = [3, n0, _GTSO,\n 0,\n [_P, _D, _Ca, _CR, _RTe, _Ve, _Me, _DTe, _RIS, _W],\n [() => ParameterDeclarations, 0, 64 | 0, 0, 64 | 0, 0, 0, 64 | 0, () => ResourceIdentifierSummaries, () => exports.Warnings$]\n];\nexports.HookResultSummary$ = [3, n0, _HRS,\n 0,\n [_HRI, _IP, _FM, _TN, _TVI, _TCVI, _S, _HSR, _IAn, _TT, _TI, _TA, _HET],\n [0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0]\n];\nexports.HookTarget$ = [3, n0, _HT,\n 0,\n [_TT, _TTN, _TI, _Act],\n [0, 0, 0, 0], 4\n];\nexports.ImportStacksToStackSetInput$ = [3, n0, _ISTSSI,\n 0,\n [_SSN, _SIta, _SIU, _OUI, _OP, _OI, _CA],\n [0, 64 | 0, 0, 64 | 0, () => exports.StackSetOperationPreferences$, [0, 4], 0], 1\n];\nexports.ImportStacksToStackSetOutput$ = [3, n0, _ISTSSO,\n 0,\n [_OI],\n [0]\n];\nexports.ListChangeSetsInput$ = [3, n0, _LCSI,\n 0,\n [_SN, _NT],\n [0, 0], 1\n];\nexports.ListChangeSetsOutput$ = [3, n0, _LCSO,\n 0,\n [_Su, _NT],\n [() => ChangeSetSummaries, 0]\n];\nexports.ListExportsInput$ = [3, n0, _LEI,\n 0,\n [_NT],\n [0]\n];\nexports.ListExportsOutput$ = [3, n0, _LEO,\n 0,\n [_Exp, _NT],\n [() => Exports, 0]\n];\nexports.ListGeneratedTemplatesInput$ = [3, n0, _LGTI,\n 0,\n [_NT, _MR],\n [0, 1]\n];\nexports.ListGeneratedTemplatesOutput$ = [3, n0, _LGTO,\n 0,\n [_Su, _NT],\n [() => TemplateSummaries, 0]\n];\nexports.ListHookResultsInput$ = [3, n0, _LHRI,\n 0,\n [_TT, _TI, _TA, _S, _NT],\n [0, 0, 0, 0, 0]\n];\nexports.ListHookResultsOutput$ = [3, n0, _LHRO,\n 0,\n [_TT, _TI, _HR, _NT],\n [0, 0, () => HookResultSummaries, 0]\n];\nexports.ListImportsInput$ = [3, n0, _LII,\n 0,\n [_EN, _NT],\n [0, 0], 1\n];\nexports.ListImportsOutput$ = [3, n0, _LIO,\n 0,\n [_Im, _NT],\n [64 | 0, 0]\n];\nexports.ListResourceScanRelatedResourcesInput$ = [3, n0, _LRSRRI,\n 0,\n [_RSI, _R, _NT, _MR],\n [0, () => ScannedResourceIdentifiers, 0, 1], 2\n];\nexports.ListResourceScanRelatedResourcesOutput$ = [3, n0, _LRSRRO,\n 0,\n [_RRel, _NT],\n [() => RelatedResources, 0]\n];\nexports.ListResourceScanResourcesInput$ = [3, n0, _LRSRI,\n 0,\n [_RSI, _RI, _RTP, _TK, _TV, _NT, _MR],\n [0, 0, 0, 0, 0, 0, 1], 1\n];\nexports.ListResourceScanResourcesOutput$ = [3, n0, _LRSRO,\n 0,\n [_R, _NT],\n [() => ScannedResources, 0]\n];\nexports.ListResourceScansInput$ = [3, n0, _LRSI,\n 0,\n [_NT, _MR, _STF],\n [0, 1, 0]\n];\nexports.ListResourceScansOutput$ = [3, n0, _LRSO,\n 0,\n [_RSS, _NT],\n [() => ResourceScanSummaries, 0]\n];\nexports.ListStackInstanceResourceDriftsInput$ = [3, n0, _LSIRDI,\n 0,\n [_SSN, _SIA, _SIR, _OI, _NT, _MR, _SIRDS, _CA],\n [0, 0, 0, 0, 0, 1, 64 | 0, 0], 4\n];\nexports.ListStackInstanceResourceDriftsOutput$ = [3, n0, _LSIRDO,\n 0,\n [_Su, _NT],\n [() => StackInstanceResourceDriftsSummaries, 0]\n];\nexports.ListStackInstancesInput$ = [3, n0, _LSII,\n 0,\n [_SSN, _NT, _MR, _F, _SIA, _SIR, _CA],\n [0, 0, 1, () => StackInstanceFilters, 0, 0, 0], 1\n];\nexports.ListStackInstancesOutput$ = [3, n0, _LSIO,\n 0,\n [_Su, _NT],\n [() => StackInstanceSummaries, 0]\n];\nexports.ListStackRefactorActionsInput$ = [3, n0, _LSRAI,\n 0,\n [_SRI, _NT, _MR],\n [0, 0, 1], 1\n];\nexports.ListStackRefactorActionsOutput$ = [3, n0, _LSRAO,\n 0,\n [_SRA, _NT],\n [() => StackRefactorActions, 0], 1\n];\nexports.ListStackRefactorsInput$ = [3, n0, _LSRI,\n 0,\n [_ESF, _NT, _MR],\n [64 | 0, 0, 1]\n];\nexports.ListStackRefactorsOutput$ = [3, n0, _LSRO,\n 0,\n [_SRS, _NT],\n [() => StackRefactorSummaries, 0], 1\n];\nexports.ListStackResourcesInput$ = [3, n0, _LSRIi,\n 0,\n [_SN, _NT],\n [0, 0], 1\n];\nexports.ListStackResourcesOutput$ = [3, n0, _LSROi,\n 0,\n [_SRSt, _NT],\n [() => StackResourceSummaries, 0]\n];\nexports.ListStackSetAutoDeploymentTargetsInput$ = [3, n0, _LSSADTI,\n 0,\n [_SSN, _NT, _MR, _CA],\n [0, 0, 1, 0], 1\n];\nexports.ListStackSetAutoDeploymentTargetsOutput$ = [3, n0, _LSSADTO,\n 0,\n [_Su, _NT],\n [() => StackSetAutoDeploymentTargetSummaries, 0]\n];\nexports.ListStackSetOperationResultsInput$ = [3, n0, _LSSORI,\n 0,\n [_SSN, _OI, _NT, _MR, _CA, _F],\n [0, 0, 0, 1, 0, () => OperationResultFilters], 2\n];\nexports.ListStackSetOperationResultsOutput$ = [3, n0, _LSSORO,\n 0,\n [_Su, _NT],\n [() => StackSetOperationResultSummaries, 0]\n];\nexports.ListStackSetOperationsInput$ = [3, n0, _LSSOI,\n 0,\n [_SSN, _NT, _MR, _CA],\n [0, 0, 1, 0], 1\n];\nexports.ListStackSetOperationsOutput$ = [3, n0, _LSSOO,\n 0,\n [_Su, _NT],\n [() => StackSetOperationSummaries, 0]\n];\nexports.ListStackSetsInput$ = [3, n0, _LSSI,\n 0,\n [_NT, _MR, _S, _CA],\n [0, 1, 0, 0]\n];\nexports.ListStackSetsOutput$ = [3, n0, _LSSO,\n 0,\n [_Su, _NT],\n [() => StackSetSummaries, 0]\n];\nexports.ListStacksInput$ = [3, n0, _LSI,\n 0,\n [_NT, _SSF],\n [0, 64 | 0]\n];\nexports.ListStacksOutput$ = [3, n0, _LSO,\n 0,\n [_SSt, _NT],\n [() => StackSummaries, 0]\n];\nexports.ListTypeRegistrationsInput$ = [3, n0, _LTRI,\n 0,\n [_T, _TN, _TA, _RSF, _MR, _NT],\n [0, 0, 0, 0, 1, 0]\n];\nexports.ListTypeRegistrationsOutput$ = [3, n0, _LTRO,\n 0,\n [_RTL, _NT],\n [64 | 0, 0]\n];\nexports.ListTypesInput$ = [3, n0, _LTI,\n 0,\n [_Vi, _PT, _DSe, _T, _F, _MR, _NT],\n [0, 0, 0, 0, () => exports.TypeFilters$, 1, 0]\n];\nexports.ListTypesOutput$ = [3, n0, _LTO,\n 0,\n [_TSy, _NT],\n [() => TypeSummaries, 0]\n];\nexports.ListTypeVersionsInput$ = [3, n0, _LTVI,\n 0,\n [_T, _TN, _A, _MR, _NT, _DSe, _PI],\n [0, 0, 0, 1, 0, 0, 0]\n];\nexports.ListTypeVersionsOutput$ = [3, n0, _LTVO,\n 0,\n [_TVS, _NT],\n [() => TypeVersionSummaries, 0]\n];\nexports.LiveResourceDrift$ = [3, n0, _LRD,\n 0,\n [_PV, _AV, _DDT],\n [0, 0, 4]\n];\nexports.LoggingConfig$ = [3, n0, _LC,\n 0,\n [_LRA, _LGN],\n [0, 0], 2\n];\nexports.ManagedExecution$ = [3, n0, _ME,\n 0,\n [_Acti],\n [2]\n];\nexports.ModuleInfo$ = [3, n0, _MI,\n 0,\n [_TH, _LIH],\n [0, 0]\n];\nexports.OperationEntry$ = [3, n0, _OEp,\n 0,\n [_OT, _OI],\n [0, 0]\n];\nexports.OperationEvent$ = [3, n0, _OEpe,\n 0,\n [_EI, _SI, _OI, _OT, _OS, _ETv, _LRI, _PRI, _RT, _Ti, _ST, _ET, _RSes, _RSR, _RP, _CRT, _HTo, _HS, _HSR, _HIP, _HFM, _DSet, _VFM, _VN, _VS, _VSR, _VP],\n [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n];\nexports.OperationResultFilter$ = [3, n0, _ORF,\n 0,\n [_N, _Va],\n [0, 0]\n];\nexports.Output$ = [3, n0, _O,\n 0,\n [_OK, _OV, _D, _EN],\n [0, 0, 0, 0]\n];\nexports.Parameter$ = [3, n0, _Pa,\n 0,\n [_PK, _PVa, _UPV, _RV],\n [0, 0, 2, 0]\n];\nexports.ParameterConstraints$ = [3, n0, _PCa,\n 0,\n [_AVl],\n [64 | 0]\n];\nexports.ParameterDeclaration$ = [3, n0, _PD,\n 0,\n [_PK, _DV, _PTa, _NE, _D, _PCa],\n [0, 0, 0, 2, 0, () => exports.ParameterConstraints$]\n];\nexports.PhysicalResourceIdContextKeyValuePair$ = [3, n0, _PRICKVP,\n 0,\n [_K, _V],\n [0, 0], 2\n];\nexports.PropertyDifference$ = [3, n0, _PDr,\n 0,\n [_PPr, _EV, _AV, _DTi],\n [0, 0, 0, 0], 4\n];\nexports.PublishTypeInput$ = [3, n0, _PTI,\n 0,\n [_T, _A, _TN, _PVN],\n [0, 0, 0, 0]\n];\nexports.PublishTypeOutput$ = [3, n0, _PTO,\n 0,\n [_PTA],\n [0]\n];\nexports.RecordHandlerProgressInput$ = [3, n0, _RHPI,\n 0,\n [_BT, _OS, _COS, _SM, _EC, _RMes, _CRT],\n [0, 0, 0, 0, 0, 0, 0], 2\n];\nexports.RecordHandlerProgressOutput$ = [3, n0, _RHPO,\n 0,\n [],\n []\n];\nexports.RegisterPublisherInput$ = [3, n0, _RPI,\n 0,\n [_ATAC, _CAo],\n [2, 0]\n];\nexports.RegisterPublisherOutput$ = [3, n0, _RPO,\n 0,\n [_PI],\n [0]\n];\nexports.RegisterTypeInput$ = [3, n0, _RTIe,\n 0,\n [_TN, _SHP, _T, _LC, _ERA, _CRT],\n [0, 0, 0, () => exports.LoggingConfig$, 0, 0], 2\n];\nexports.RegisterTypeOutput$ = [3, n0, _RTO,\n 0,\n [_RTeg],\n [0]\n];\nexports.RequiredActivatedType$ = [3, n0, _RATe,\n 0,\n [_TNA, _OTN, _PI, _SMV],\n [0, 0, 0, 64 | 1]\n];\nexports.ResourceChange$ = [3, n0, _RC,\n 0,\n [_PA, _Act, _LRI, _PRI, _RT, _Rep, _Sco, _RDS, _RDIA, _De, _CSI, _MI, _BC, _AC, _PDC],\n [0, 0, 0, 0, 0, 0, 64 | 0, 0, () => ResourceDriftIgnoredAttributes, () => ResourceChangeDetails, 0, () => exports.ModuleInfo$, 0, 0, 0]\n];\nexports.ResourceChangeDetail$ = [3, n0, _RCD,\n 0,\n [_Tar, _Ev, _CSh, _CE],\n [() => exports.ResourceTargetDefinition$, 0, 0, 0]\n];\nexports.ResourceDefinition$ = [3, n0, _RD,\n 0,\n [_RT, _RI, _LRI],\n [0, 128 | 0, 0], 2\n];\nexports.ResourceDetail$ = [3, n0, _RDe,\n 0,\n [_RT, _LRI, _RI, _RSes, _RSR, _W],\n [0, 0, 128 | 0, 0, 0, () => WarningDetails]\n];\nexports.ResourceDriftIgnoredAttribute$ = [3, n0, _RDIAe,\n 0,\n [_Pat, _Rea],\n [0, 0]\n];\nexports.ResourceIdentifierSummary$ = [3, n0, _RISe,\n 0,\n [_RT, _LRIo, _RIe],\n [0, 64 | 0, 64 | 0]\n];\nexports.ResourceLocation$ = [3, n0, _RLe,\n 0,\n [_SN, _LRI],\n [0, 0], 2\n];\nexports.ResourceMapping$ = [3, n0, _RMeso,\n 0,\n [_So, _Des],\n [() => exports.ResourceLocation$, () => exports.ResourceLocation$], 2\n];\nexports.ResourceScanSummary$ = [3, n0, _RSSe,\n 0,\n [_RSI, _S, _SR, _ST, _ET, _PC, _STc],\n [0, 0, 0, 4, 4, 1, 0]\n];\nexports.ResourceTargetDefinition$ = [3, n0, _RTDe,\n 0,\n [_At, _N, _RReq, _Pat, _BV, _AVf, _BVF, _AVF, _Dr, _ACT],\n [0, 0, 0, 0, 0, 0, 0, 0, () => exports.LiveResourceDrift$, 0]\n];\nexports.ResourceToImport$ = [3, n0, _RTIes,\n 0,\n [_RT, _LRI, _RI],\n [0, 0, 128 | 0], 3\n];\nexports.RollbackConfiguration$ = [3, n0, _RCo,\n 0,\n [_RTo, _MTIM],\n [() => RollbackTriggers, 1]\n];\nexports.RollbackStackInput$ = [3, n0, _RSIo,\n 0,\n [_SN, _RARN, _CRT, _REOC],\n [0, 0, 0, 2], 1\n];\nexports.RollbackStackOutput$ = [3, n0, _RSO,\n 0,\n [_SI, _OI],\n [0, 0]\n];\nexports.RollbackTrigger$ = [3, n0, _RTol,\n 0,\n [_A, _T],\n [0, 0], 2\n];\nexports.ScanFilter$ = [3, n0, _SFc,\n 0,\n [_Ty],\n [64 | 0]\n];\nexports.ScannedResource$ = [3, n0, _SRc,\n 0,\n [_RT, _RI, _MBS],\n [0, 128 | 0, 2]\n];\nexports.ScannedResourceIdentifier$ = [3, n0, _SRIc,\n 0,\n [_RT, _RI],\n [0, 128 | 0], 2\n];\nexports.SetStackPolicyInput$ = [3, n0, _SSPI,\n 0,\n [_SN, _SPB, _SPURL],\n [0, 0, 0], 1\n];\nexports.SetTypeConfigurationInput$ = [3, n0, _STCI,\n 0,\n [_Co, _TA, _CAon, _TN, _T],\n [0, 0, 0, 0, 0], 1\n];\nexports.SetTypeConfigurationOutput$ = [3, n0, _STCO,\n 0,\n [_CAonf],\n [0]\n];\nexports.SetTypeDefaultVersionInput$ = [3, n0, _STDVI,\n 0,\n [_A, _T, _TN, _VI],\n [0, 0, 0, 0]\n];\nexports.SetTypeDefaultVersionOutput$ = [3, n0, _STDVO,\n 0,\n [],\n []\n];\nexports.SignalResourceInput$ = [3, n0, _SRIi,\n 0,\n [_SN, _LRI, _UI, _S],\n [0, 0, 0, 0], 4\n];\nexports.Stack$ = [3, n0, _Sta,\n 0,\n [_SN, _CT, _SSta, _SI, _CSI, _D, _P, _DTel, _LUT, _RCo, _SSR, _DR, _NARN, _TIM, _Ca, _Ou, _RARN, _Ta, _ETP, _PIa, _RIo, _DI, _REOC, _DMe, _DSet, _LO],\n [0, 4, 0, 0, 0, 0, () => _Parameters, 4, 4, () => exports.RollbackConfiguration$, 0, 2, 64 | 0, 1, 64 | 0, () => Outputs, 0, () => Tags, 2, 0, 0, () => exports.StackDriftInformation$, 2, 0, 0, () => LastOperations], 3\n];\nexports.StackDefinition$ = [3, n0, _SDt,\n 0,\n [_SN, _TB, _TURL],\n [0, 0, 0]\n];\nexports.StackDriftInformation$ = [3, n0, _SDI,\n 0,\n [_SDS, _LCT],\n [0, 4], 1\n];\nexports.StackDriftInformationSummary$ = [3, n0, _SDIS,\n 0,\n [_SDS, _LCT],\n [0, 4], 1\n];\nexports.StackEvent$ = [3, n0, _SEt,\n 0,\n [_SI, _EI, _SN, _Ti, _OI, _LRI, _PRI, _RT, _RSes, _RSR, _RP, _CRT, _HTo, _HS, _HSR, _HIP, _HII, _HFM, _DSet],\n [0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 4\n];\nexports.StackInstance$ = [3, n0, _SIt,\n 0,\n [_SSI, _Reg, _Acc, _SI, _PO, _S, _SIS, _SR, _OUIr, _DSr, _LDCT, _LOI],\n [0, 0, 0, 0, () => _Parameters, 0, () => exports.StackInstanceComprehensiveStatus$, 0, 0, 0, 4, 0]\n];\nexports.StackInstanceComprehensiveStatus$ = [3, n0, _SICS,\n 0,\n [_DSet],\n [0]\n];\nexports.StackInstanceFilter$ = [3, n0, _SIF,\n 0,\n [_N, _Va],\n [0, 0]\n];\nexports.StackInstanceResourceDriftsSummary$ = [3, n0, _SIRDSt,\n 0,\n [_SI, _LRI, _RT, _SRDS, _Ti, _PRI, _PRIC, _PDro],\n [0, 0, 0, 0, 4, 0, () => PhysicalResourceIdContext, () => PropertyDifferences], 5\n];\nexports.StackInstanceSummary$ = [3, n0, _SISt,\n 0,\n [_SSI, _Reg, _Acc, _SI, _S, _SR, _SIS, _OUIr, _DSr, _LDCT, _LOI],\n [0, 0, 0, 0, 0, 0, () => exports.StackInstanceComprehensiveStatus$, 0, 0, 4, 0]\n];\nexports.StackRefactorAction$ = [3, n0, _SRAt,\n 0,\n [_Act, _En, _PRI, _RI, _D, _Det, _DRe, _TR, _UR, _RMeso],\n [0, 0, 0, 0, 0, 0, 0, () => StackRefactorTagResources, 64 | 0, () => exports.ResourceMapping$]\n];\nexports.StackRefactorSummary$ = [3, n0, _SRSta,\n 0,\n [_SRI, _D, _ES, _ESR, _S, _SR],\n [0, 0, 0, 0, 0, 0]\n];\nexports.StackResource$ = [3, n0, _SRta,\n 0,\n [_LRI, _RT, _Ti, _RSes, _SN, _SI, _PRI, _RSR, _D, _DI, _MI],\n [0, 0, 4, 0, 0, 0, 0, 0, 0, () => exports.StackResourceDriftInformation$, () => exports.ModuleInfo$], 4\n];\nexports.StackResourceDetail$ = [3, n0, _SRDt,\n 0,\n [_LRI, _RT, _LUTa, _RSes, _SN, _SI, _PRI, _RSR, _D, _Me, _DI, _MI],\n [0, 0, 4, 0, 0, 0, 0, 0, 0, 0, () => exports.StackResourceDriftInformation$, () => exports.ModuleInfo$], 4\n];\nexports.StackResourceDrift$ = [3, n0, _SRDta,\n 0,\n [_SI, _LRI, _RT, _SRDS, _Ti, _PRI, _PRIC, _EP, _AP, _PDro, _MI, _DSRr],\n [0, 0, 0, 0, 4, 0, () => PhysicalResourceIdContext, 0, 0, () => PropertyDifferences, () => exports.ModuleInfo$, 0], 5\n];\nexports.StackResourceDriftInformation$ = [3, n0, _SRDI,\n 0,\n [_SRDS, _LCT],\n [0, 4], 1\n];\nexports.StackResourceDriftInformationSummary$ = [3, n0, _SRDIS,\n 0,\n [_SRDS, _LCT],\n [0, 4], 1\n];\nexports.StackResourceSummary$ = [3, n0, _SRStac,\n 0,\n [_LRI, _RT, _LUTa, _RSes, _PRI, _RSR, _DI, _MI],\n [0, 0, 4, 0, 0, 0, () => exports.StackResourceDriftInformationSummary$, () => exports.ModuleInfo$], 4\n];\nexports.StackSet$ = [3, n0, _SS,\n 0,\n [_SSN, _SSI, _D, _S, _TB, _P, _Ca, _Ta, _SSARN, _ARARN, _ERN, _SSDDD, _AD, _PM, _OUI, _ME, _Re],\n [0, 0, 0, 0, 0, () => _Parameters, 64 | 0, () => Tags, 0, 0, 0, () => exports.StackSetDriftDetectionDetails$, () => exports.AutoDeployment$, 0, 64 | 0, () => exports.ManagedExecution$, 64 | 0]\n];\nexports.StackSetAutoDeploymentTargetSummary$ = [3, n0, _SSADTS,\n 0,\n [_OUIr, _Re],\n [0, 64 | 0]\n];\nexports.StackSetDriftDetectionDetails$ = [3, n0, _SSDDD,\n 0,\n [_DSr, _DDS, _LDCT, _TSIC, _DSIC, _ISSIC, _IPSIC, _FSIC],\n [0, 0, 4, 1, 1, 1, 1, 1]\n];\nexports.StackSetOperation$ = [3, n0, _SSO,\n 0,\n [_OI, _SSI, _Act, _S, _OP, _RS, _ARARN, _ERN, _CTr, _ETn, _DT, _SSDDD, _SR, _SDta],\n [0, 0, 0, 0, () => exports.StackSetOperationPreferences$, 2, 0, 0, 4, 4, () => exports.DeploymentTargets$, () => exports.StackSetDriftDetectionDetails$, 0, () => exports.StackSetOperationStatusDetails$]\n];\nexports.StackSetOperationPreferences$ = [3, n0, _SSOP,\n 0,\n [_RCT, _RO, _FTC, _FTP, _MCC, _MCP, _CM],\n [0, 64 | 0, 1, 1, 1, 1, 0]\n];\nexports.StackSetOperationResultSummary$ = [3, n0, _SSORS,\n 0,\n [_Acc, _Reg, _S, _SR, _AGR, _OUIr],\n [0, 0, 0, 0, () => exports.AccountGateResult$, 0]\n];\nexports.StackSetOperationStatusDetails$ = [3, n0, _SSOSD,\n 0,\n [_FSIC],\n [1]\n];\nexports.StackSetOperationSummary$ = [3, n0, _SSOS,\n 0,\n [_OI, _Act, _S, _CTr, _ETn, _SR, _SDta, _OP],\n [0, 0, 0, 4, 4, 0, () => exports.StackSetOperationStatusDetails$, () => exports.StackSetOperationPreferences$]\n];\nexports.StackSetSummary$ = [3, n0, _SSS,\n 0,\n [_SSN, _SSI, _D, _S, _AD, _PM, _DSr, _LDCT, _ME],\n [0, 0, 0, 0, () => exports.AutoDeployment$, 0, 0, 4, () => exports.ManagedExecution$]\n];\nexports.StackSummary$ = [3, n0, _SStac,\n 0,\n [_SN, _CT, _SSta, _SI, _TDe, _LUT, _DTel, _SSR, _PIa, _RIo, _DI, _LO],\n [0, 4, 0, 0, 0, 4, 4, 0, 0, 0, () => exports.StackDriftInformationSummary$, () => LastOperations], 3\n];\nexports.StartResourceScanInput$ = [3, n0, _SRSI,\n 0,\n [_CRT, _SF],\n [0, () => ScanFilters]\n];\nexports.StartResourceScanOutput$ = [3, n0, _SRSO,\n 0,\n [_RSI],\n [0]\n];\nexports.StopStackSetOperationInput$ = [3, n0, _SSSOI,\n 0,\n [_SSN, _OI, _CA],\n [0, 0, 0], 2\n];\nexports.StopStackSetOperationOutput$ = [3, n0, _SSSOO,\n 0,\n [],\n []\n];\nexports.Tag$ = [3, n0, _Tag,\n 0,\n [_K, _V],\n [0, 0], 2\n];\nexports.TemplateConfiguration$ = [3, n0, _TCe,\n 0,\n [_DP, _URP],\n [0, 0]\n];\nexports.TemplateParameter$ = [3, n0, _TP,\n 0,\n [_PK, _DV, _NE, _D],\n [0, 0, 2, 0]\n];\nexports.TemplateProgress$ = [3, n0, _TPe,\n 0,\n [_RSeso, _RF, _RPe, _RPes],\n [1, 1, 1, 1]\n];\nexports.TemplateSummary$ = [3, n0, _TSe,\n 0,\n [_GTI, _GTN, _S, _SR, _CT, _LUT, _NOR],\n [0, 0, 0, 0, 4, 4, 1]\n];\nexports.TemplateSummaryConfig$ = [3, n0, _TSC,\n 0,\n [_TURTAW],\n [2]\n];\nexports.TestTypeInput$ = [3, n0, _TTI,\n 0,\n [_A, _T, _TN, _VI, _LDB],\n [0, 0, 0, 0, 0]\n];\nexports.TestTypeOutput$ = [3, n0, _TTO,\n 0,\n [_TVA],\n [0]\n];\nexports.TypeConfigurationDetails$ = [3, n0, _TCD,\n 0,\n [_A, _Al, _Co, _LU, _TA, _TN, _IDC],\n [0, 0, 0, 4, 0, 0, 2]\n];\nexports.TypeConfigurationIdentifier$ = [3, n0, _TCI,\n 0,\n [_TA, _TCA, _TCAy, _T, _TN],\n [0, 0, 0, 0, 0]\n];\nexports.TypeFilters$ = [3, n0, _TF,\n 0,\n [_Cat, _PI, _TNP],\n [0, 0, 0]\n];\nexports.TypeSummary$ = [3, n0, _TSyp,\n 0,\n [_T, _TN, _DVI, _TA, _LU, _D, _PI, _OTN, _PVN, _LPV, _PIu, _PN, _IA],\n [0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2]\n];\nexports.TypeVersionSummary$ = [3, n0, _TVSy,\n 0,\n [_T, _TN, _VI, _IDV, _A, _TCi, _D, _PVN],\n [0, 0, 0, 2, 0, 4, 0, 0]\n];\nexports.UpdateGeneratedTemplateInput$ = [3, n0, _UGTI,\n 0,\n [_GTN, _NGTN, _AR, _RRem, _RAR, _TCe],\n [0, 0, () => ResourceDefinitions, 64 | 0, 2, () => exports.TemplateConfiguration$], 1\n];\nexports.UpdateGeneratedTemplateOutput$ = [3, n0, _UGTO,\n 0,\n [_GTI],\n [0]\n];\nexports.UpdateStackInput$ = [3, n0, _USI,\n 0,\n [_SN, _TB, _TURL, _UPT, _SPDUB, _SPDUURL, _P, _Ca, _RTe, _RARN, _RCo, _SPB, _SPURL, _NARN, _Ta, _DR, _CRT, _REOC],\n [0, 0, 0, 2, 0, 0, () => _Parameters, 64 | 0, 64 | 0, 0, () => exports.RollbackConfiguration$, 0, 0, 64 | 0, () => Tags, 2, 0, 2], 1\n];\nexports.UpdateStackInstancesInput$ = [3, n0, _USII,\n 0,\n [_SSN, _Re, _Ac, _DT, _PO, _OP, _OI, _CA],\n [0, 64 | 0, 64 | 0, () => exports.DeploymentTargets$, () => _Parameters, () => exports.StackSetOperationPreferences$, [0, 4], 0], 2\n];\nexports.UpdateStackInstancesOutput$ = [3, n0, _USIO,\n 0,\n [_OI],\n [0]\n];\nexports.UpdateStackOutput$ = [3, n0, _USO,\n 0,\n [_SI, _OI],\n [0, 0]\n];\nexports.UpdateStackSetInput$ = [3, n0, _USSI,\n 0,\n [_SSN, _D, _TB, _TURL, _UPT, _P, _Ca, _Ta, _OP, _ARARN, _ERN, _DT, _PM, _AD, _OI, _Ac, _Re, _CA, _ME],\n [0, 0, 0, 0, 2, () => _Parameters, 64 | 0, () => Tags, () => exports.StackSetOperationPreferences$, 0, 0, () => exports.DeploymentTargets$, 0, () => exports.AutoDeployment$, [0, 4], 64 | 0, 64 | 0, 0, () => exports.ManagedExecution$], 1\n];\nexports.UpdateStackSetOutput$ = [3, n0, _USSO,\n 0,\n [_OI],\n [0]\n];\nexports.UpdateTerminationProtectionInput$ = [3, n0, _UTPI,\n 0,\n [_ETP, _SN],\n [2, 0], 2\n];\nexports.UpdateTerminationProtectionOutput$ = [3, n0, _UTPO,\n 0,\n [_SI],\n [0]\n];\nexports.ValidateTemplateInput$ = [3, n0, _VTI,\n 0,\n [_TB, _TURL],\n [0, 0]\n];\nexports.ValidateTemplateOutput$ = [3, n0, _VTO,\n 0,\n [_P, _D, _Ca, _CR, _DTe],\n [() => TemplateParameters, 0, 64 | 0, 0, 64 | 0]\n];\nexports.WarningDetail$ = [3, n0, _WD,\n 0,\n [_T, _Pro],\n [0, () => WarningProperties]\n];\nexports.WarningProperty$ = [3, n0, _WP,\n 0,\n [_PPr, _Req, _D],\n [0, 2, 0]\n];\nexports.Warnings$ = [3, n0, _W,\n 0,\n [_URT],\n [64 | 0]\n];\nvar __Unit = \"unit\";\nvar AccountLimitList = [1, n0, _ALL,\n 0, () => exports.AccountLimit$\n];\nvar AccountList = 64 | 0;\nvar AllowedValues = 64 | 0;\nvar AnnotationList = [1, n0, _ALn,\n 0, () => exports.Annotation$\n];\nvar BatchDescribeTypeConfigurationsErrors = [1, n0, _BDTCEa,\n 0, () => exports.BatchDescribeTypeConfigurationsError$\n];\nvar Capabilities = 64 | 0;\nvar Changes = [1, n0, _Ch,\n 0, () => exports.Change$\n];\nvar ChangeSetHooks = [1, n0, _CSHh,\n 0, () => exports.ChangeSetHook$\n];\nvar ChangeSetSummaries = [1, n0, _CSSh,\n 0, () => exports.ChangeSetSummary$\n];\nvar Exports = [1, n0, _Exp,\n 0, () => exports.Export$\n];\nvar HookResultSummaries = [1, n0, _HRSo,\n 0, () => exports.HookResultSummary$\n];\nvar Imports = 64 | 0;\nvar JazzLogicalResourceIds = 64 | 0;\nvar LastOperations = [1, n0, _LO,\n 0, () => exports.OperationEntry$\n];\nvar LogicalResourceIds = 64 | 0;\nvar NotificationARNs = 64 | 0;\nvar OperationEvents = [1, n0, _OE,\n 0, () => exports.OperationEvent$\n];\nvar OperationResultFilters = [1, n0, _ORFp,\n 0, () => exports.OperationResultFilter$\n];\nvar OrganizationalUnitIdList = 64 | 0;\nvar Outputs = [1, n0, _Ou,\n 0, () => exports.Output$\n];\nvar ParameterDeclarations = [1, n0, _PDa,\n 0, () => exports.ParameterDeclaration$\n];\nvar _Parameters = [1, n0, _P,\n 0, () => exports.Parameter$\n];\nvar PhysicalResourceIdContext = [1, n0, _PRIC,\n 0, () => exports.PhysicalResourceIdContextKeyValuePair$\n];\nvar PropertyDifferences = [1, n0, _PDro,\n 0, () => exports.PropertyDifference$\n];\nvar RegionList = 64 | 0;\nvar RegistrationTokenList = 64 | 0;\nvar RelatedResources = [1, n0, _RRel,\n 0, () => exports.ScannedResource$\n];\nvar RequiredActivatedTypes = [1, n0, _RAT,\n 0, () => exports.RequiredActivatedType$\n];\nvar ResourceChangeDetails = [1, n0, _RCDe,\n 0, () => exports.ResourceChangeDetail$\n];\nvar ResourceDefinitions = [1, n0, _RDes,\n 0, () => exports.ResourceDefinition$\n];\nvar ResourceDetails = [1, n0, _RDeso,\n 0, () => exports.ResourceDetail$\n];\nvar ResourceDriftIgnoredAttributes = [1, n0, _RDIA,\n 0, () => exports.ResourceDriftIgnoredAttribute$\n];\nvar ResourceIdentifiers = 64 | 0;\nvar ResourceIdentifierSummaries = [1, n0, _RIS,\n 0, () => exports.ResourceIdentifierSummary$\n];\nvar ResourceMappings = [1, n0, _RMe,\n 0, () => exports.ResourceMapping$\n];\nvar ResourceScanSummaries = [1, n0, _RSS,\n 0, () => exports.ResourceScanSummary$\n];\nvar ResourcesToImport = [1, n0, _RTI,\n 0, () => exports.ResourceToImport$\n];\nvar ResourcesToSkip = 64 | 0;\nvar ResourceTypeFilters = 64 | 0;\nvar ResourceTypes = 64 | 0;\nvar RetainResources = 64 | 0;\nvar RollbackTriggers = [1, n0, _RTo,\n 0, () => exports.RollbackTrigger$\n];\nvar ScanFilters = [1, n0, _SF,\n 0, () => exports.ScanFilter$\n];\nvar ScannedResourceIdentifiers = [1, n0, _SRIca,\n 0, () => exports.ScannedResourceIdentifier$\n];\nvar ScannedResources = [1, n0, _SRca,\n 0, () => exports.ScannedResource$\n];\nvar Scope = 64 | 0;\nvar StackDefinitions = [1, n0, _SD,\n 0, () => exports.StackDefinition$\n];\nvar StackEvents = [1, n0, _SE,\n 0, () => exports.StackEvent$\n];\nvar StackIdList = 64 | 0;\nvar StackIds = 64 | 0;\nvar StackInstanceFilters = [1, n0, _SIFt,\n 0, () => exports.StackInstanceFilter$\n];\nvar StackInstanceResourceDriftsSummaries = [1, n0, _SIRDSta,\n 0, () => exports.StackInstanceResourceDriftsSummary$\n];\nvar StackInstanceSummaries = [1, n0, _SISta,\n 0, () => exports.StackInstanceSummary$\n];\nvar StackRefactorActions = [1, n0, _SRA,\n 0, () => exports.StackRefactorAction$\n];\nvar StackRefactorExecutionStatusFilter = 64 | 0;\nvar StackRefactorSummaries = [1, n0, _SRS,\n 0, () => exports.StackRefactorSummary$\n];\nvar StackRefactorTagResources = [1, n0, _SRTR,\n 0, () => exports.Tag$\n];\nvar StackRefactorUntagResources = 64 | 0;\nvar StackResourceDrifts = [1, n0, _SRD,\n 0, () => exports.StackResourceDrift$\n];\nvar StackResourceDriftStatusFilters = 64 | 0;\nvar StackResources = [1, n0, _SRt,\n 0, () => exports.StackResource$\n];\nvar StackResourceSummaries = [1, n0, _SRSt,\n 0, () => exports.StackResourceSummary$\n];\nvar Stacks = [1, n0, _St,\n 0, () => exports.Stack$\n];\nvar StackSetARNList = 64 | 0;\nvar StackSetAutoDeploymentTargetSummaries = [1, n0, _SSADTSt,\n 0, () => exports.StackSetAutoDeploymentTargetSummary$\n];\nvar StackSetOperationResultSummaries = [1, n0, _SSORSt,\n 0, () => exports.StackSetOperationResultSummary$\n];\nvar StackSetOperationSummaries = [1, n0, _SSOSt,\n 0, () => exports.StackSetOperationSummary$\n];\nvar StackSetSummaries = [1, n0, _SSSt,\n 0, () => exports.StackSetSummary$\n];\nvar StackStatusFilter = 64 | 0;\nvar StackSummaries = [1, n0, _SSt,\n 0, () => exports.StackSummary$\n];\nvar StageList = 64 | 0;\nvar SupportedMajorVersions = 64 | 1;\nvar Tags = [1, n0, _Ta,\n 0, () => exports.Tag$\n];\nvar TemplateParameters = [1, n0, _TPem,\n 0, () => exports.TemplateParameter$\n];\nvar TemplateSummaries = [1, n0, _TSem,\n 0, () => exports.TemplateSummary$\n];\nvar TransformsList = 64 | 0;\nvar TypeConfigurationDetailsList = [1, n0, _TCDL,\n 0, () => exports.TypeConfigurationDetails$\n];\nvar TypeConfigurationIdentifiers = [1, n0, _TCIy,\n 0, () => exports.TypeConfigurationIdentifier$\n];\nvar TypeSummaries = [1, n0, _TSy,\n 0, () => exports.TypeSummary$\n];\nvar TypeVersionSummaries = [1, n0, _TVS,\n 0, () => exports.TypeVersionSummary$\n];\nvar UnprocessedTypeConfigurations = [1, n0, _UTC,\n 0, () => exports.TypeConfigurationIdentifier$\n];\nvar WarningDetails = [1, n0, _WDa,\n 0, () => exports.WarningDetail$\n];\nvar WarningProperties = [1, n0, _WPa,\n 0, () => exports.WarningProperty$\n];\nvar JazzResourceIdentifierProperties = 128 | 0;\nvar ResourceIdentifierProperties = 128 | 0;\nexports.ActivateOrganizationsAccess$ = [9, n0, _AOA,\n 0, () => exports.ActivateOrganizationsAccessInput$, () => exports.ActivateOrganizationsAccessOutput$\n];\nexports.ActivateType$ = [9, n0, _AT,\n 2, () => exports.ActivateTypeInput$, () => exports.ActivateTypeOutput$\n];\nexports.BatchDescribeTypeConfigurations$ = [9, n0, _BDTC,\n 0, () => exports.BatchDescribeTypeConfigurationsInput$, () => exports.BatchDescribeTypeConfigurationsOutput$\n];\nexports.CancelUpdateStack$ = [9, n0, _CUS,\n 0, () => exports.CancelUpdateStackInput$, () => __Unit\n];\nexports.ContinueUpdateRollback$ = [9, n0, _CUR,\n 0, () => exports.ContinueUpdateRollbackInput$, () => exports.ContinueUpdateRollbackOutput$\n];\nexports.CreateChangeSet$ = [9, n0, _CCS,\n 0, () => exports.CreateChangeSetInput$, () => exports.CreateChangeSetOutput$\n];\nexports.CreateGeneratedTemplate$ = [9, n0, _CGT,\n 0, () => exports.CreateGeneratedTemplateInput$, () => exports.CreateGeneratedTemplateOutput$\n];\nexports.CreateStack$ = [9, n0, _CSr,\n 0, () => exports.CreateStackInput$, () => exports.CreateStackOutput$\n];\nexports.CreateStackInstances$ = [9, n0, _CSIre,\n 0, () => exports.CreateStackInstancesInput$, () => exports.CreateStackInstancesOutput$\n];\nexports.CreateStackRefactor$ = [9, n0, _CSR,\n 0, () => exports.CreateStackRefactorInput$, () => exports.CreateStackRefactorOutput$\n];\nexports.CreateStackSet$ = [9, n0, _CSSr,\n 0, () => exports.CreateStackSetInput$, () => exports.CreateStackSetOutput$\n];\nexports.DeactivateOrganizationsAccess$ = [9, n0, _DOA,\n 0, () => exports.DeactivateOrganizationsAccessInput$, () => exports.DeactivateOrganizationsAccessOutput$\n];\nexports.DeactivateType$ = [9, n0, _DTea,\n 2, () => exports.DeactivateTypeInput$, () => exports.DeactivateTypeOutput$\n];\nexports.DeleteChangeSet$ = [9, n0, _DCS,\n 0, () => exports.DeleteChangeSetInput$, () => exports.DeleteChangeSetOutput$\n];\nexports.DeleteGeneratedTemplate$ = [9, n0, _DGT,\n 0, () => exports.DeleteGeneratedTemplateInput$, () => __Unit\n];\nexports.DeleteStack$ = [9, n0, _DSel,\n 0, () => exports.DeleteStackInput$, () => __Unit\n];\nexports.DeleteStackInstances$ = [9, n0, _DSIel,\n 0, () => exports.DeleteStackInstancesInput$, () => exports.DeleteStackInstancesOutput$\n];\nexports.DeleteStackSet$ = [9, n0, _DSS,\n 0, () => exports.DeleteStackSetInput$, () => exports.DeleteStackSetOutput$\n];\nexports.DeregisterType$ = [9, n0, _DTer,\n 2, () => exports.DeregisterTypeInput$, () => exports.DeregisterTypeOutput$\n];\nexports.DescribeAccountLimits$ = [9, n0, _DAL,\n 0, () => exports.DescribeAccountLimitsInput$, () => exports.DescribeAccountLimitsOutput$\n];\nexports.DescribeChangeSet$ = [9, n0, _DCSe,\n 0, () => exports.DescribeChangeSetInput$, () => exports.DescribeChangeSetOutput$\n];\nexports.DescribeChangeSetHooks$ = [9, n0, _DCSH,\n 0, () => exports.DescribeChangeSetHooksInput$, () => exports.DescribeChangeSetHooksOutput$\n];\nexports.DescribeEvents$ = [9, n0, _DE,\n 0, () => exports.DescribeEventsInput$, () => exports.DescribeEventsOutput$\n];\nexports.DescribeGeneratedTemplate$ = [9, n0, _DGTe,\n 0, () => exports.DescribeGeneratedTemplateInput$, () => exports.DescribeGeneratedTemplateOutput$\n];\nexports.DescribeOrganizationsAccess$ = [9, n0, _DOAe,\n 0, () => exports.DescribeOrganizationsAccessInput$, () => exports.DescribeOrganizationsAccessOutput$\n];\nexports.DescribePublisher$ = [9, n0, _DPe,\n 2, () => exports.DescribePublisherInput$, () => exports.DescribePublisherOutput$\n];\nexports.DescribeResourceScan$ = [9, n0, _DRS,\n 0, () => exports.DescribeResourceScanInput$, () => exports.DescribeResourceScanOutput$\n];\nexports.DescribeStackDriftDetectionStatus$ = [9, n0, _DSDDS,\n 0, () => exports.DescribeStackDriftDetectionStatusInput$, () => exports.DescribeStackDriftDetectionStatusOutput$\n];\nexports.DescribeStackEvents$ = [9, n0, _DSE,\n 0, () => exports.DescribeStackEventsInput$, () => exports.DescribeStackEventsOutput$\n];\nexports.DescribeStackInstance$ = [9, n0, _DSIes,\n 0, () => exports.DescribeStackInstanceInput$, () => exports.DescribeStackInstanceOutput$\n];\nexports.DescribeStackRefactor$ = [9, n0, _DSRe,\n 0, () => exports.DescribeStackRefactorInput$, () => exports.DescribeStackRefactorOutput$\n];\nexports.DescribeStackResource$ = [9, n0, _DSRes,\n 0, () => exports.DescribeStackResourceInput$, () => exports.DescribeStackResourceOutput$\n];\nexports.DescribeStackResourceDrifts$ = [9, n0, _DSRD,\n 0, () => exports.DescribeStackResourceDriftsInput$, () => exports.DescribeStackResourceDriftsOutput$\n];\nexports.DescribeStackResources$ = [9, n0, _DSResc,\n 0, () => exports.DescribeStackResourcesInput$, () => exports.DescribeStackResourcesOutput$\n];\nexports.DescribeStacks$ = [9, n0, _DSes,\n 0, () => exports.DescribeStacksInput$, () => exports.DescribeStacksOutput$\n];\nexports.DescribeStackSet$ = [9, n0, _DSSe,\n 0, () => exports.DescribeStackSetInput$, () => exports.DescribeStackSetOutput$\n];\nexports.DescribeStackSetOperation$ = [9, n0, _DSSOes,\n 0, () => exports.DescribeStackSetOperationInput$, () => exports.DescribeStackSetOperationOutput$\n];\nexports.DescribeType$ = [9, n0, _DTes,\n 2, () => exports.DescribeTypeInput$, () => exports.DescribeTypeOutput$\n];\nexports.DescribeTypeRegistration$ = [9, n0, _DTR,\n 2, () => exports.DescribeTypeRegistrationInput$, () => exports.DescribeTypeRegistrationOutput$\n];\nexports.DetectStackDrift$ = [9, n0, _DSD,\n 0, () => exports.DetectStackDriftInput$, () => exports.DetectStackDriftOutput$\n];\nexports.DetectStackResourceDrift$ = [9, n0, _DSRDe,\n 0, () => exports.DetectStackResourceDriftInput$, () => exports.DetectStackResourceDriftOutput$\n];\nexports.DetectStackSetDrift$ = [9, n0, _DSSD,\n 0, () => exports.DetectStackSetDriftInput$, () => exports.DetectStackSetDriftOutput$\n];\nexports.EstimateTemplateCost$ = [9, n0, _ETC,\n 0, () => exports.EstimateTemplateCostInput$, () => exports.EstimateTemplateCostOutput$\n];\nexports.ExecuteChangeSet$ = [9, n0, _ECS,\n 0, () => exports.ExecuteChangeSetInput$, () => exports.ExecuteChangeSetOutput$\n];\nexports.ExecuteStackRefactor$ = [9, n0, _ESRx,\n 0, () => exports.ExecuteStackRefactorInput$, () => __Unit\n];\nexports.GetGeneratedTemplate$ = [9, n0, _GGT,\n 0, () => exports.GetGeneratedTemplateInput$, () => exports.GetGeneratedTemplateOutput$\n];\nexports.GetHookResult$ = [9, n0, _GHR,\n 0, () => exports.GetHookResultInput$, () => exports.GetHookResultOutput$\n];\nexports.GetStackPolicy$ = [9, n0, _GSP,\n 0, () => exports.GetStackPolicyInput$, () => exports.GetStackPolicyOutput$\n];\nexports.GetTemplate$ = [9, n0, _GT,\n 0, () => exports.GetTemplateInput$, () => exports.GetTemplateOutput$\n];\nexports.GetTemplateSummary$ = [9, n0, _GTS,\n 0, () => exports.GetTemplateSummaryInput$, () => exports.GetTemplateSummaryOutput$\n];\nexports.ImportStacksToStackSet$ = [9, n0, _ISTSS,\n 0, () => exports.ImportStacksToStackSetInput$, () => exports.ImportStacksToStackSetOutput$\n];\nexports.ListChangeSets$ = [9, n0, _LCS,\n 0, () => exports.ListChangeSetsInput$, () => exports.ListChangeSetsOutput$\n];\nexports.ListExports$ = [9, n0, _LE,\n 0, () => exports.ListExportsInput$, () => exports.ListExportsOutput$\n];\nexports.ListGeneratedTemplates$ = [9, n0, _LGT,\n 0, () => exports.ListGeneratedTemplatesInput$, () => exports.ListGeneratedTemplatesOutput$\n];\nexports.ListHookResults$ = [9, n0, _LHR,\n 0, () => exports.ListHookResultsInput$, () => exports.ListHookResultsOutput$\n];\nexports.ListImports$ = [9, n0, _LI,\n 0, () => exports.ListImportsInput$, () => exports.ListImportsOutput$\n];\nexports.ListResourceScanRelatedResources$ = [9, n0, _LRSRR,\n 0, () => exports.ListResourceScanRelatedResourcesInput$, () => exports.ListResourceScanRelatedResourcesOutput$\n];\nexports.ListResourceScanResources$ = [9, n0, _LRSR,\n 0, () => exports.ListResourceScanResourcesInput$, () => exports.ListResourceScanResourcesOutput$\n];\nexports.ListResourceScans$ = [9, n0, _LRS,\n 0, () => exports.ListResourceScansInput$, () => exports.ListResourceScansOutput$\n];\nexports.ListStackInstanceResourceDrifts$ = [9, n0, _LSIRD,\n 0, () => exports.ListStackInstanceResourceDriftsInput$, () => exports.ListStackInstanceResourceDriftsOutput$\n];\nexports.ListStackInstances$ = [9, n0, _LSIi,\n 0, () => exports.ListStackInstancesInput$, () => exports.ListStackInstancesOutput$\n];\nexports.ListStackRefactorActions$ = [9, n0, _LSRA,\n 0, () => exports.ListStackRefactorActionsInput$, () => exports.ListStackRefactorActionsOutput$\n];\nexports.ListStackRefactors$ = [9, n0, _LSR,\n 0, () => exports.ListStackRefactorsInput$, () => exports.ListStackRefactorsOutput$\n];\nexports.ListStackResources$ = [9, n0, _LSRi,\n 0, () => exports.ListStackResourcesInput$, () => exports.ListStackResourcesOutput$\n];\nexports.ListStacks$ = [9, n0, _LS,\n 0, () => exports.ListStacksInput$, () => exports.ListStacksOutput$\n];\nexports.ListStackSetAutoDeploymentTargets$ = [9, n0, _LSSADT,\n 0, () => exports.ListStackSetAutoDeploymentTargetsInput$, () => exports.ListStackSetAutoDeploymentTargetsOutput$\n];\nexports.ListStackSetOperationResults$ = [9, n0, _LSSOR,\n 0, () => exports.ListStackSetOperationResultsInput$, () => exports.ListStackSetOperationResultsOutput$\n];\nexports.ListStackSetOperations$ = [9, n0, _LSSOi,\n 0, () => exports.ListStackSetOperationsInput$, () => exports.ListStackSetOperationsOutput$\n];\nexports.ListStackSets$ = [9, n0, _LSS,\n 0, () => exports.ListStackSetsInput$, () => exports.ListStackSetsOutput$\n];\nexports.ListTypeRegistrations$ = [9, n0, _LTR,\n 2, () => exports.ListTypeRegistrationsInput$, () => exports.ListTypeRegistrationsOutput$\n];\nexports.ListTypes$ = [9, n0, _LT,\n 2, () => exports.ListTypesInput$, () => exports.ListTypesOutput$\n];\nexports.ListTypeVersions$ = [9, n0, _LTV,\n 2, () => exports.ListTypeVersionsInput$, () => exports.ListTypeVersionsOutput$\n];\nexports.PublishType$ = [9, n0, _PTu,\n 2, () => exports.PublishTypeInput$, () => exports.PublishTypeOutput$\n];\nexports.RecordHandlerProgress$ = [9, n0, _RHP,\n 2, () => exports.RecordHandlerProgressInput$, () => exports.RecordHandlerProgressOutput$\n];\nexports.RegisterPublisher$ = [9, n0, _RPeg,\n 2, () => exports.RegisterPublisherInput$, () => exports.RegisterPublisherOutput$\n];\nexports.RegisterType$ = [9, n0, _RTegi,\n 2, () => exports.RegisterTypeInput$, () => exports.RegisterTypeOutput$\n];\nexports.RollbackStack$ = [9, n0, _RSo,\n 0, () => exports.RollbackStackInput$, () => exports.RollbackStackOutput$\n];\nexports.SetStackPolicy$ = [9, n0, _SSP,\n 0, () => exports.SetStackPolicyInput$, () => __Unit\n];\nexports.SetTypeConfiguration$ = [9, n0, _STC,\n 0, () => exports.SetTypeConfigurationInput$, () => exports.SetTypeConfigurationOutput$\n];\nexports.SetTypeDefaultVersion$ = [9, n0, _STDV,\n 2, () => exports.SetTypeDefaultVersionInput$, () => exports.SetTypeDefaultVersionOutput$\n];\nexports.SignalResource$ = [9, n0, _SRi,\n 0, () => exports.SignalResourceInput$, () => __Unit\n];\nexports.StartResourceScan$ = [9, n0, _SRStar,\n 0, () => exports.StartResourceScanInput$, () => exports.StartResourceScanOutput$\n];\nexports.StopStackSetOperation$ = [9, n0, _SSSO,\n 0, () => exports.StopStackSetOperationInput$, () => exports.StopStackSetOperationOutput$\n];\nexports.TestType$ = [9, n0, _TTe,\n 2, () => exports.TestTypeInput$, () => exports.TestTypeOutput$\n];\nexports.UpdateGeneratedTemplate$ = [9, n0, _UGT,\n 0, () => exports.UpdateGeneratedTemplateInput$, () => exports.UpdateGeneratedTemplateOutput$\n];\nexports.UpdateStack$ = [9, n0, _US,\n 0, () => exports.UpdateStackInput$, () => exports.UpdateStackOutput$\n];\nexports.UpdateStackInstances$ = [9, n0, _USIp,\n 0, () => exports.UpdateStackInstancesInput$, () => exports.UpdateStackInstancesOutput$\n];\nexports.UpdateStackSet$ = [9, n0, _USS,\n 0, () => exports.UpdateStackSetInput$, () => exports.UpdateStackSetOutput$\n];\nexports.UpdateTerminationProtection$ = [9, n0, _UTP,\n 0, () => exports.UpdateTerminationProtectionInput$, () => exports.UpdateTerminationProtectionOutput$\n];\nexports.ValidateTemplate$ = [9, n0, _VT,\n 0, () => exports.ValidateTemplateInput$, () => exports.ValidateTemplateOutput$\n];\n","'use strict';\n\nconst state = {\n warningEmitted: false,\n};\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 20) {\n state.warningEmitted = true;\n process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js ${version} in January 2026.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/c895JFp`);\n }\n};\n\nconst longPollMiddleware = () => (next, context) => async (args) => {\n context.__retryLongPoll = true;\n return next(args);\n};\nconst longPollMiddlewareOptions = {\n name: \"longPollMiddleware\",\n tags: [\"RETRY\"],\n step: \"initialize\",\n override: true,\n};\nconst getLongPollPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(longPollMiddleware(), longPollMiddlewareOptions);\n },\n});\n\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getLongPollPlugin = getLongPollPlugin;\nexports.setCredentialFeature = setCredentialFeature;\nexports.setFeature = setFeature;\nexports.setTokenFeature = setTokenFeature;\nexports.state = state;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar core = require('@smithy/core');\nvar propertyProvider = require('@smithy/property-provider');\nvar client = require('@aws-sdk/core/client');\nvar signatureV4 = require('@smithy/signature-v4');\n\nconst getDateHeader = (response) => protocolHttp.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n\nconst getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n\nconst isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n\nconst getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n\nconst throwSigningPropertyError = (name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n};\nconst validateSigningProperties = async (signingProperties) => {\n const context = throwSigningPropertyError(\"context\", signingProperties.context);\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName,\n };\n};\nclass AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: signingRegion,\n signingService: signingName,\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n}\nconst AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\nclass AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!protocolHttp.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ??\n signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName,\n });\n return signedRequest;\n }\n}\n\nconst getArrayForCommaSeparatedString = (str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [];\n\nconst getBearerTokenEnvKey = (signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`;\n\nconst NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nconst NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nconst NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n environmentVariableSelector: (env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env)\n return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env))\n return undefined;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n },\n configFileSelector: (profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile))\n return undefined;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n },\n default: [],\n};\n\nconst resolveAwsSdkSigV4AConfig = (config) => {\n config.sigv4aSigningRegionSet = core.normalizeProvider(config.sigv4aSigningRegionSet);\n return config;\n};\nconst NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true,\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new propertyProvider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true,\n });\n },\n default: undefined,\n};\n\nconst resolveAwsSdkSigV4Config = (config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = undefined;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider,\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n const isCredentialObject = typeof inputCredentials === \"object\" && inputCredentials !== null;\n resolvedCredentials = async (options) => {\n const creds = await boundProvider(options);\n const attributedCreds = creds;\n if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) {\n return client.setCredentialFeature(attributedCreds, \"CREDENTIALS_CODE\", \"e\");\n }\n return attributedCreds;\n };\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n }\n else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true,\n });\n config.credentials = inputCredentials;\n const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n let signer;\n if (config.signer) {\n signer = core.normalizeProvider(config.signer);\n }\n else if (config.regionInfoProvider) {\n signer = () => core.normalizeProvider(config.region)()\n .then(async (region) => [\n (await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await core.normalizeProvider(config.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || signatureV4.SignatureV4;\n return new SignerCtor(params);\n };\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer,\n });\n return resolvedConfig;\n};\nconst resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, { credentials, credentialDefaultProvider, }) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = core.memoizeIdentityProvider(credentials, core.isIdentityExpired, core.doesIdentityRequireRefresh);\n }\n else {\n credentialsProvider = credentials;\n }\n }\n else {\n if (credentialDefaultProvider) {\n credentialsProvider = core.normalizeProvider(credentialDefaultProvider(Object.assign({}, config, {\n parentClientConfig: config,\n })));\n }\n else {\n credentialsProvider = async () => {\n throw new Error(\"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\");\n };\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config });\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n\nexports.AWSSDKSigV4Signer = AWSSDKSigV4Signer;\nexports.AwsSdkSigV4ASigner = AwsSdkSigV4ASigner;\nexports.AwsSdkSigV4Signer = AwsSdkSigV4Signer;\nexports.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = NODE_AUTH_SCHEME_PREFERENCE_OPTIONS;\nexports.NODE_SIGV4A_CONFIG_OPTIONS = NODE_SIGV4A_CONFIG_OPTIONS;\nexports.getBearerTokenEnvKey = getBearerTokenEnvKey;\nexports.resolveAWSSDKSigV4Config = resolveAWSSDKSigV4Config;\nexports.resolveAwsSdkSigV4AConfig = resolveAwsSdkSigV4AConfig;\nexports.resolveAwsSdkSigV4Config = resolveAwsSdkSigV4Config;\nexports.validateSigningProperties = validateSigningProperties;\n","'use strict';\n\nvar cbor = require('@smithy/core/cbor');\nvar schema = require('@smithy/core/schema');\nvar smithyClient = require('@smithy/smithy-client');\nvar protocols = require('@smithy/core/protocols');\nvar serde = require('@smithy/core/serde');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar xmlBuilder = require('@aws-sdk/xml-builder');\n\nclass ProtocolLib {\n queryCompat;\n errorRegistry;\n constructor(queryCompat = false) {\n this.queryCompat = queryCompat;\n }\n resolveRestContentType(defaultContentType, inputSchema) {\n const members = inputSchema.getMemberSchemas();\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n return mediaType;\n }\n else if (httpPayloadMember.isStringSchema()) {\n return \"text/plain\";\n }\n else if (httpPayloadMember.isBlobSchema()) {\n return \"application/octet-stream\";\n }\n else {\n return defaultContentType;\n }\n }\n else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n const noPrefixHeaders = httpPrefixHeaders === void 0;\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n });\n if (hasBody) {\n return defaultContentType;\n }\n }\n }\n async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [, errorName] = errorIdentifier.split(\"#\");\n }\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode < 500 ? \"client\" : \"server\",\n };\n if (!this.errorRegistry) {\n throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n }\n try {\n const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n this.errorRegistry.getSchema(errorIdentifier);\n return { errorSchema, errorMetadata };\n }\n catch (e) {\n dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const synthetic = this.errorRegistry;\n const baseExceptionSchema = synthetic.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n }\n const d = dataObject;\n const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n throw this.decorateServiceException(Object.assign(new Error(message), {\n name: errorName,\n }, errorMetadata), dataObject);\n }\n }\n compose(composite, errorIdentifier, defaultNamespace) {\n let namespace = defaultNamespace;\n if (errorIdentifier.includes(\"#\")) {\n [namespace] = errorIdentifier.split(\"#\");\n }\n const staticRegistry = schema.TypeRegistry.for(namespace);\n const defaultSyntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n composite.copyFrom(staticRegistry);\n composite.copyFrom(defaultSyntheticRegistry);\n this.errorRegistry = composite;\n }\n decorateServiceException(exception, additions = {}) {\n if (this.queryCompat) {\n const msg = exception.Message ?? additions.Message;\n const error = smithyClient.decorateServiceException(exception, additions);\n if (msg) {\n error.message = msg;\n }\n const errorObj = error.Error ?? {};\n errorObj.Type = error.Error?.Type;\n errorObj.Code = error.Error?.Code;\n errorObj.Message = error.Error?.message ?? error.Error?.Message ?? msg;\n error.Error = errorObj;\n const reqId = error.$metadata.requestId;\n if (reqId) {\n error.RequestId = reqId;\n }\n return error;\n }\n return smithyClient.decorateServiceException(exception, additions);\n }\n setQueryCompatError(output, response) {\n const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n if (output !== undefined && queryErrorHeader != null) {\n const [Code, Type] = queryErrorHeader.split(\";\");\n const keys = Object.keys(output);\n const Error = {\n Code,\n Type,\n };\n output.Code = Code;\n output.Type = Type;\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n Error[k === \"message\" ? \"Message\" : k] = output[k];\n }\n delete Error.__type;\n output.Error = Error;\n }\n }\n queryCompatOutput(queryCompatErrorData, errorData) {\n if (queryCompatErrorData.Error) {\n errorData.Error = queryCompatErrorData.Error;\n }\n if (queryCompatErrorData.Type) {\n errorData.Type = queryCompatErrorData.Type;\n }\n if (queryCompatErrorData.Code) {\n errorData.Code = queryCompatErrorData.Code;\n }\n }\n findQueryCompatibleError(registry, errorName) {\n try {\n return registry.getSchema(errorName);\n }\n catch (e) {\n return registry.find((schema$1) => schema.NormalizedSchema.of(schema$1).getMergedTraits().awsQueryError?.[0] === errorName);\n }\n }\n}\n\nclass AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {\n awsQueryCompatible;\n mixin;\n constructor({ defaultNamespace, errorTypeRegistries, awsQueryCompatible, }) {\n super({ defaultNamespace, errorTypeRegistries });\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorName = (() => {\n const compatHeader = response.headers[\"x-amzn-query-error\"];\n if (compatHeader && this.awsQueryCompatible) {\n return compatHeader.split(\";\")[0];\n }\n return cbor.loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n })();\n this.mixin.compose(this.compositeErrorRegistry, errorName, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorName, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nconst _toStr = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n};\nconst _toBool = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n};\nconst _toNum = (val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n};\n\nclass SerdeContextConfig {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass UnionSerde {\n from;\n to;\n keys;\n constructor(from, to) {\n this.from = from;\n this.to = to;\n const keys = Object.keys(this.from);\n const set = new Set(keys);\n set.delete(\"__type\");\n this.keys = set;\n }\n mark(key) {\n this.keys.delete(key);\n }\n hasUnknown() {\n return this.keys.size === 1 && Object.keys(this.to).length === 0;\n }\n writeUnknown() {\n if (this.hasUnknown()) {\n const k = this.keys.values().next().value;\n const v = this.from[k];\n this.to.$unknown = [k, v];\n }\n }\n}\n\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new serde.NumericValue(numericString, \"bigDecimal\");\n }\n else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n\nconst collectBodyString = (streamBody, context) => smithyClient.collectBody(streamBody, context).then((body) => (context?.utf8Encoder ?? utilUtf8.toUtf8)(body));\n\nconst parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n }\n catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n }\n return {};\n});\nconst parseJsonErrorBody = async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\nconst sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n};\n\nclass JsonShapeDeserializer extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n async read(schema, data) {\n return this._read(schema, typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext));\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema$1, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const union = ns.isUnionSchema();\n const out = {};\n let nameMap = void 0;\n const { jsonName } = this.settings;\n if (jsonName) {\n nameMap = {};\n }\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(record, out);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n let fromKey = memberName;\n if (jsonName) {\n fromKey = memberSchema.getMergedTraits().jsonName ?? fromKey;\n nameMap[fromKey] = memberName;\n }\n if (union) {\n unionSerde.mark(fromKey);\n }\n if (record[fromKey] != null) {\n out[memberName] = this._read(memberSchema, record[fromKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const t = jsonName ? nameMap[k] ?? k : k;\n if (!(t in out)) {\n out[t] = v;\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n for (const item of value) {\n out.push(this._read(listMember, item));\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n for (const _k in value) {\n out[_k] = this._read(mapMember, value[_k]);\n }\n return out;\n }\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return utilBase64.fromBase64(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n return value;\n }\n if (ns.isTimestampSchema() && value != null) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde.parseRfc3339DateTimeWithOffset(value);\n case 6:\n return serde.parseRfc7231DateTime(value);\n case 7:\n return serde.parseEpochTimestamp(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != undefined) {\n if (value instanceof serde.NumericValue) {\n return value;\n }\n const untyped = value;\n if (untyped.type === \"bigDecimal\" && \"string\" in untyped) {\n return new serde.NumericValue(untyped.string, untyped.type);\n }\n return new serde.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n return value;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n out[k] = v;\n }\n else {\n out[k] = this._read(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nconst NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nclass JsonReplacer {\n values = new Map();\n counter = 0;\n stage = 0;\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof serde.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + \"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n}\n\nclass JsonShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n useReplacer = false;\n rootSchema;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n this.rootSchema = schema.NormalizedSchema.of(schema$1);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n const { rootSchema, useReplacer } = this;\n this.rootSchema = undefined;\n this.useReplacer = false;\n if (rootSchema?.isStructSchema() || rootSchema?.isDocumentSchema()) {\n if (!useReplacer) {\n return JSON.stringify(this.buffer);\n }\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n writeDiscriminatedDocument(schema$1, value) {\n this.write(schema$1, value);\n if (typeof this.buffer === \"object\") {\n this.buffer.__type = schema.NormalizedSchema.of(schema$1).getName(true);\n }\n }\n _write(schema$1, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = schema.NormalizedSchema.of(schema$1);\n if (isObject) {\n if (ns.isStructSchema()) {\n const record = value;\n const out = {};\n const { jsonName } = this.settings;\n let nameMap = void 0;\n if (jsonName) {\n nameMap = {};\n }\n let outCount = 0;\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const serializableValue = this._write(memberSchema, record[memberName], ns);\n if (serializableValue !== undefined) {\n let targetKey = memberName;\n if (jsonName) {\n targetKey = memberSchema.getMergedTraits().jsonName ?? memberName;\n nameMap[memberName] = targetKey;\n }\n out[targetKey] = serializableValue;\n outCount++;\n }\n }\n if (ns.isUnionSchema() && outCount === 0) {\n const { $unknown } = record;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n out[k] = this._write(15, v);\n }\n }\n else if (typeof record.__type === \"string\") {\n for (const k in record) {\n const v = record[k];\n const targetKey = jsonName ? nameMap[k] ?? k : k;\n if (!(targetKey in out)) {\n out[targetKey] = this._write(15, v);\n }\n }\n }\n return out;\n }\n if (Array.isArray(value) && ns.isListSchema()) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n }\n if (ns.isMapSchema()) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const _k in value) {\n const _v = value[_k];\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n }\n if (value instanceof Uint8Array && (ns.isBlobSchema() || ns.isDocumentSchema())) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (value instanceof Date && (ns.isTimestampSchema() || ns.isDocumentSchema())) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case 6:\n return serde.dateToUtcString(value);\n case 7:\n return value.getTime() / 1000;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1000;\n }\n }\n if (value instanceof serde.NumericValue) {\n this.useReplacer = true;\n }\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isStringSchema()) {\n if (typeof value === \"undefined\" && ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (value != null && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return serde.LazyJsonString.from(value);\n }\n }\n return value;\n }\n if (typeof value === \"number\" && ns.isNumericSchema()) {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n return value;\n }\n if (typeof value === \"string\" && ns.isBlobSchema()) {\n if (ns === this.rootSchema) {\n return value;\n }\n return (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n if (typeof value === \"bigint\") {\n this.useReplacer = true;\n }\n if (ns.isDocumentSchema()) {\n if (isObject) {\n const out = Array.isArray(value) ? [] : {};\n for (const k in value) {\n const v = value[k];\n if (v instanceof serde.NumericValue) {\n this.useReplacer = true;\n out[k] = v;\n }\n else {\n out[k] = this._write(ns, v);\n }\n }\n return out;\n }\n else {\n return structuredClone(value);\n }\n }\n return value;\n }\n}\n\nclass JsonCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsJsonRpcProtocol extends protocols.RpcProtocol {\n serializer;\n deserializer;\n serviceTarget;\n codec;\n mixin;\n awsQueryCompatible;\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n this.serviceTarget = serviceTarget;\n this.codec =\n jsonCodec ??\n new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n jsonName: false,\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n this.awsQueryCompatible = !!awsQueryCompatible;\n this.mixin = new ProtocolLib(this.awsQueryCompatible);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = `application/x-amz-json-${this.getJsonRpcVersion()}`;\n request.headers[\"x-amz-target\"] = `${this.serviceTarget}.${operationSchema.name}`;\n if (this.awsQueryCompatible) {\n request.headers[\"x-amzn-query-mode\"] = \"true\";\n }\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n if (this.awsQueryCompatible) {\n this.mixin.setQueryCompatError(dataObject, response);\n }\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata, this.awsQueryCompatible ? this.mixin.findQueryCompatibleError : undefined);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n if (dataObject[name] != null) {\n output[name] = errorDeserializer.readObject(member, dataObject[name]);\n }\n }\n if (this.awsQueryCompatible) {\n this.mixin.queryCompatOutput(dataObject, output);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n}\n\nclass AwsJson1_0Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.0\";\n }\n}\n\nclass AwsJson1_1Protocol extends AwsJsonRpcProtocol {\n constructor({ defaultNamespace, errorTypeRegistries, serviceTarget, awsQueryCompatible, jsonCodec, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n serviceTarget,\n awsQueryCompatible,\n jsonCodec,\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n getDefaultContentType() {\n return \"application/x-amz-json-1.1\";\n }\n}\n\nclass AwsRestJsonProtocol extends protocols.HttpBindingProtocol {\n serializer;\n deserializer;\n codec;\n mixin = new ProtocolLib();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({\n defaultNamespace,\n errorTypeRegistries,\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 7,\n },\n httpBindings: true,\n jsonName: true,\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (request.body == null && request.headers[\"content-type\"] === this.getDefaultContentType()) {\n request.body = \"{}\";\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const output = await super.deserializeResponse(operationSchema, context, response);\n const outputSchema = schema.NormalizedSchema.of(operationSchema.output);\n for (const [name, member] of outputSchema.structIterator()) {\n if (member.getMemberTraits().httpPayload && !(name in output)) {\n output[name] = null;\n }\n }\n return output;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = errorDeserializer.readObject(member, dataObject[target]);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/json\";\n }\n}\n\nconst awsExpectUnion = (value) => {\n if (value == null) {\n return undefined;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return smithyClient.expectUnion(value);\n};\n\nclass XmlShapeDeserializer extends SerdeContextConfig {\n settings;\n stringDeserializer;\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new protocols.FromStringShapeDeserializer(settings);\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n read(schema$1, bytes, key) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() &&\n ns.isMemberSchema() &&\n !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n }\n else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema$1, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isUnitSchema()) {\n return;\n }\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n if (source == null) {\n return buffer;\n }\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n buffer.push(this.readSchema(listValue, v));\n }\n return buffer;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n }\n else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value = entry[valueProperty];\n buffer[key] = this.readSchema(memberNs, value);\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n const union = ns.isUnionSchema();\n let unionSerde;\n if (union) {\n unionSerde = new UnionSerde(value, buffer);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload\n ? memberSchema.getMemberTraits().xmlName ?? memberName\n : memberTraits.xmlName ?? memberSchema.getName();\n if (union) {\n unionSerde.mark(xmlObjectKey);\n }\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n if (union) {\n unionSerde.writeUnknown();\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(xml);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n }\n}\n\nclass QueryShapeSerializer extends SerdeContextConfig {\n settings;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value, prefix = \"\") {\n if (this.buffer === undefined) {\n this.buffer = \"\";\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value));\n }\n }\n else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n else if (ns.isIdempotencyToken()) {\n this.writeKey(prefix);\n this.writeValue(serde.generateIdempotencyToken());\n }\n }\n else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof serde.NumericValue ? value.string : String(value));\n }\n }\n else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case 6:\n this.writeValue(smithyClient.dateToUtcString(value));\n break;\n case 7:\n this.writeValue(String(value.getTime() / 1000));\n break;\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n if (Array.isArray(value)) {\n this.write(64 | 15, value, prefix);\n }\n else if (value instanceof Date) {\n this.write(4, value, prefix);\n }\n else if (value instanceof Uint8Array) {\n this.write(21, value, prefix);\n }\n else if (value && typeof value === \"object\") {\n this.write(128 | 15, value, prefix);\n }\n else {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n }\n else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n }\n else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(\"member\", traits.xmlName, traits.ec2QueryName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n }\n else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const k in value) {\n const v = value[k];\n if (v == null) {\n continue;\n }\n const keyTraits = keySchema.getMergedTraits();\n const keySuffix = this.getKey(\"key\", keyTraits.xmlName, keyTraits.ec2QueryName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valTraits = memberSchema.getMergedTraits();\n const valueSuffix = this.getKey(\"value\", valTraits.xmlName, valTraits.ec2QueryName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n }\n else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n let didWriteMember = false;\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null && !member.isIdempotencyToken()) {\n continue;\n }\n const traits = member.getMergedTraits();\n const suffix = this.getKey(memberName, traits.xmlName, traits.ec2QueryName, \"struct\");\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n didWriteMember = true;\n }\n if (!didWriteMember && ns.isUnionSchema()) {\n const { $unknown } = value;\n if (Array.isArray($unknown)) {\n const [k, v] = $unknown;\n const key = `${prefix}${k}`;\n this.write(15, v, key);\n }\n }\n }\n }\n else if (ns.isUnitSchema()) ;\n else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === undefined) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName, ec2QueryName, keySource) {\n const { ec2, capitalizeKeys } = this.settings;\n if (ec2 && ec2QueryName) {\n return ec2QueryName;\n }\n const key = xmlName ?? memberName;\n if (capitalizeKeys && keySource === \"struct\") {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${protocols.extendedEncodeURIComponent(key)}=`;\n }\n writeValue(value) {\n this.buffer += protocols.extendedEncodeURIComponent(value);\n }\n}\n\nclass AwsQueryProtocol extends protocols.RpcProtocol {\n options;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace,\n errorTypeRegistries: options.errorTypeRegistries,\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true,\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n request.headers[\"content-type\"] = \"application/x-www-form-urlencoded\";\n if (schema.deref(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n const action = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n request.body = `Action=${action}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const shortName = operationSchema.name.split(\"#\")[1] ?? operationSchema.name;\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? shortName + \"Result\" : undefined;\n const bytes = await protocols.collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n const errorData = this.loadQueryError(dataObject) ?? {};\n const message = this.loadQueryErrorMessage(dataObject);\n errorData.message = message;\n errorData.Error = {\n Type: errorData.Type,\n Code: errorData.Code,\n Message: message,\n };\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, errorData, metadata, this.mixin.findQueryCompatibleError);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n const output = {\n Type: errorData.Error.Type,\n Code: errorData.Error.Code,\n Error: errorData.Error,\n };\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorData[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== undefined) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n getDefaultContentType() {\n return \"application/x-www-form-urlencoded\";\n }\n}\n\nclass AwsEc2QueryProtocol extends AwsQueryProtocol {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false,\n ec2: true,\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n getShapeId() {\n return \"aws.protocols#ec2Query\";\n }\n useNestedResult() {\n return false;\n }\n}\n\nconst parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n let parsedObj;\n try {\n parsedObj = xmlBuilder.parseXML(encoded);\n }\n catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded,\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return smithyClient.getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseXmlErrorBody = async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Error?.Code !== undefined) {\n return data.Error.Code;\n }\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n\nclass XmlShapeSerializer extends SerdeContextConfig {\n settings;\n stringBuffer;\n byteBuffer;\n buffer;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n }\n else if (ns.isBlobSchema()) {\n this.byteBuffer =\n \"byteLength\" in value\n ? value\n : (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n else {\n this.buffer = this.writeStruct(ns, value, undefined);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== undefined) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== undefined) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload\n ? ns.getMemberTraits().xmlName ?? ns.getMemberName()\n : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(true)}.`);\n }\n const structXmlNode = xmlBuilder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null || memberSchema.isIdempotencyToken()) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(memberSchema.getMergedTraits().xmlName ?? memberName, this.writeSimple(memberSchema, val));\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n }\n else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n }\n else {\n const memberNode = xmlBuilder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n const { $unknown } = value;\n if ($unknown && ns.isUnionSchema() && Array.isArray($unknown) && Object.keys(value).length === 1) {\n const [k, v] = $unknown;\n const node = xmlBuilder.XmlNode.of(k);\n if (typeof v !== \"string\") {\n if (value instanceof xmlBuilder.XmlNode || value instanceof xmlBuilder.XmlText) {\n structXmlNode.addChildNode(value);\n }\n else {\n throw new Error(`@aws-sdk - $unknown union member in XML requires ` +\n `value of type string, @aws-sdk/xml-builder::XmlNode or XmlText.`);\n }\n }\n this.writeSimpleInto(0, v, node, xmlns);\n structXmlNode.addChildNode(node);\n }\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`);\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = (container, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container, xmlns);\n }\n else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container, xmlns);\n }\n else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container.addChildNode(struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"));\n }\n else {\n const listItemNode = xmlBuilder.XmlNode.of(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\");\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container.addChildNode(listItemNode);\n }\n };\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n }\n else {\n const listNode = xmlBuilder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`);\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = (entry, key, val) => {\n const keyNode = xmlBuilder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = xmlBuilder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n }\n else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n }\n else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n }\n else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n };\n if (flat) {\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n }\n else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = xmlBuilder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const key in map) {\n const val = map[key];\n if (sparse || val != null) {\n const entry = xmlBuilder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = schema.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n }\n else if (ns.isTimestampSchema() && value instanceof Date) {\n const format = protocols.determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n case 7:\n nodeContents = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = smithyClient.dateToUtcString(value);\n break;\n }\n }\n else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof serde.NumericValue) {\n return value.string;\n }\n return String(value);\n }\n else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\");\n }\n else {\n throw new Error(`@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(true)}`);\n }\n }\n if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (ns.isStringSchema()) {\n if (value === undefined && ns.isIdempotencyToken()) {\n nodeContents = serde.generateIdempotencyToken();\n }\n else {\n nodeContents = String(value);\n }\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = schema.NormalizedSchema.of(_schema);\n const content = new xmlBuilder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n}\n\nclass XmlCodec extends SerdeContextConfig {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\n\nclass AwsRestXmlProtocol extends protocols.HttpBindingProtocol {\n codec;\n serializer;\n deserializer;\n mixin = new ProtocolLib();\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: 5,\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new protocols.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new protocols.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n this.compositeErrorRegistry;\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = schema.NormalizedSchema.of(operationSchema.input);\n if (!request.headers[\"content-type\"]) {\n const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema);\n if (contentType) {\n request.headers[\"content-type\"] = contentType;\n }\n }\n if (typeof request.body === \"string\" &&\n request.headers[\"content-type\"] === this.getDefaultContentType() &&\n !request.body.startsWith(\"' + request.body;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n this.mixin.compose(this.compositeErrorRegistry, errorIdentifier, this.options.defaultNamespace);\n if (dataObject.Error && typeof dataObject.Error === \"object\") {\n for (const key of Object.keys(dataObject.Error)) {\n dataObject[key] = dataObject.Error[key];\n if (key.toLowerCase() === \"message\") {\n dataObject.message = dataObject.Error[key];\n }\n }\n }\n if (dataObject.RequestId && !metadata.requestId) {\n metadata.requestId = dataObject.RequestId;\n }\n const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);\n const ns = schema.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ??\n dataObject.Error?.Message ??\n dataObject.message ??\n dataObject.Message ??\n \"UnknownError\";\n const ErrorCtor = this.compositeErrorRegistry.getErrorCtor(errorSchema) ?? Error;\n const exception = new ErrorCtor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n const errorDeserializer = this.codec.createDeserializer();\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = errorDeserializer.readSchema(member, value);\n }\n throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output), dataObject);\n }\n getDefaultContentType() {\n return \"application/xml\";\n }\n hasUnstructuredPayloadBinding(ns) {\n for (const [, member] of ns.structIterator()) {\n if (member.getMergedTraits().httpPayload) {\n return !(member.isStructSchema() || member.isMapSchema() || member.isListSchema());\n }\n }\n return false;\n }\n}\n\nexports.AwsEc2QueryProtocol = AwsEc2QueryProtocol;\nexports.AwsJson1_0Protocol = AwsJson1_0Protocol;\nexports.AwsJson1_1Protocol = AwsJson1_1Protocol;\nexports.AwsJsonRpcProtocol = AwsJsonRpcProtocol;\nexports.AwsQueryProtocol = AwsQueryProtocol;\nexports.AwsRestJsonProtocol = AwsRestJsonProtocol;\nexports.AwsRestXmlProtocol = AwsRestXmlProtocol;\nexports.AwsSmithyRpcV2CborProtocol = AwsSmithyRpcV2CborProtocol;\nexports.JsonCodec = JsonCodec;\nexports.JsonShapeDeserializer = JsonShapeDeserializer;\nexports.JsonShapeSerializer = JsonShapeSerializer;\nexports.QueryShapeSerializer = QueryShapeSerializer;\nexports.XmlCodec = XmlCodec;\nexports.XmlShapeDeserializer = XmlShapeDeserializer;\nexports.XmlShapeSerializer = XmlShapeSerializer;\nexports._toBool = _toBool;\nexports._toNum = _toNum;\nexports._toStr = _toStr;\nexports.awsExpectUnion = awsExpectUnion;\nexports.loadRestJsonErrorCode = loadRestJsonErrorCode;\nexports.loadRestXmlErrorCode = loadRestXmlErrorCode;\nexports.parseJsonBody = parseJsonBody;\nexports.parseJsonErrorBody = parseJsonErrorBody;\nexports.parseXmlBody = parseXmlBody;\nexports.parseXmlErrorBody = parseXmlErrorBody;\n","'use strict';\n\nvar client = require('@aws-sdk/core/client');\nvar propertyProvider = require('@smithy/property-provider');\n\nconst ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nconst ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nconst ENV_SESSION = \"AWS_SESSION_TOKEN\";\nconst ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nconst ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nconst ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nconst fromEnv = (init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n client.setCredentialFeature(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new propertyProvider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n};\n\nexports.ENV_ACCOUNT_ID = ENV_ACCOUNT_ID;\nexports.ENV_CREDENTIAL_SCOPE = ENV_CREDENTIAL_SCOPE;\nexports.ENV_EXPIRATION = ENV_EXPIRATION;\nexports.ENV_KEY = ENV_KEY;\nexports.ENV_SECRET = ENV_SECRET;\nexports.ENV_SESSION = ENV_SESSION;\nexports.fromEnv = fromEnv;\n","'use strict';\n\nvar credentialProviderEnv = require('@aws-sdk/credential-provider-env');\nvar propertyProvider = require('@smithy/property-provider');\nvar sharedIniFileLoader = require('@smithy/shared-ini-file-loader');\n\nconst ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst remoteProvider = async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import('@smithy/credential-provider-imds');\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await import('@aws-sdk/credential-provider-http');\n return propertyProvider.chain(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new propertyProvider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n};\n\nfunction memoizeChain(providers, treatAsExpired) {\n const chain = internalCreateChain(providers);\n let activeLock;\n let passiveLock;\n let credentials;\n const provider = async (options) => {\n if (options?.forceRefresh) {\n return await chain(options);\n }\n if (credentials?.expiration) {\n if (credentials?.expiration?.getTime() < Date.now()) {\n credentials = undefined;\n }\n }\n if (activeLock) {\n await activeLock;\n }\n else if (!credentials || treatAsExpired?.(credentials)) {\n if (credentials) {\n if (!passiveLock) {\n passiveLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n passiveLock = undefined;\n });\n }\n }\n else {\n activeLock = chain(options)\n .then((c) => {\n credentials = c;\n })\n .finally(() => {\n activeLock = undefined;\n });\n return provider(options);\n }\n }\n return credentials;\n };\n return provider;\n}\nconst internalCreateChain = (providers) => async (awsIdentityProperties) => {\n let lastProviderError;\n for (const provider of providers) {\n try {\n return await provider(awsIdentityProperties);\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nlet multipleCredentialSourceWarningEmitted = false;\nconst defaultProvider = (init = {}) => memoizeChain([\n async () => {\n const profile = init.profile ?? process.env[sharedIniFileLoader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[credentialProviderEnv.ENV_KEY] && process.env[credentialProviderEnv.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\"\n ? init.logger.warn.bind(init.logger)\n : console.warn;\n warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`);\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new propertyProvider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true,\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return credentialProviderEnv.fromEnv(init)();\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new propertyProvider.CredentialsProviderError(\"Skipping SSO provider in default chain (inputs do not include SSO fields).\", { logger: init.logger });\n }\n const { fromSSO } = await import('@aws-sdk/credential-provider-sso');\n return fromSSO(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await import('@aws-sdk/credential-provider-ini');\n return fromIni(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await import('@aws-sdk/credential-provider-process');\n return fromProcess(init)(awsIdentityProperties);\n },\n async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await import('@aws-sdk/credential-provider-web-identity');\n return fromTokenFile(init)(awsIdentityProperties);\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new propertyProvider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger,\n });\n },\n], credentialsTreatedAsExpired);\nconst credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;\nconst credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;\n\nexports.credentialsTreatedAsExpired = credentialsTreatedAsExpired;\nexports.credentialsWillNeedRefresh = credentialsWillNeedRefresh;\nexports.defaultProvider = defaultProvider;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nconst hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nconst getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n\nexports.getHostHeaderPlugin = getHostHeaderPlugin;\nexports.hostHeaderMiddleware = hostHeaderMiddleware;\nexports.hostHeaderMiddlewareOptions = hostHeaderMiddlewareOptions;\nexports.resolveHostHeaderConfig = resolveHostHeaderConfig;\n","'use strict';\n\nconst loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nconst loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nconst getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n\nexports.getLoggerPlugin = getLoggerPlugin;\nexports.loggerMiddleware = loggerMiddleware;\nexports.loggerMiddlewareOptions = loggerMiddlewareOptions;\n","'use strict';\n\nvar recursionDetectionMiddleware = require('./recursionDetectionMiddleware');\n\nconst recursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\n\nconst getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware.recursionDetectionMiddleware(), recursionDetectionMiddlewareOptions);\n },\n});\n\nexports.getRecursionDetectionPlugin = getRecursionDetectionPlugin;\nObject.prototype.hasOwnProperty.call(recursionDetectionMiddleware, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: recursionDetectionMiddleware['__proto__']\n });\n\nObject.keys(recursionDetectionMiddleware).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = recursionDetectionMiddleware[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recursionDetectionMiddleware = void 0;\nconst lambda_invoke_store_1 = require(\"@aws/lambda-invoke-store\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nconst recursionDetectionMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ??\n TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceIdFromEnv = process.env[ENV_TRACE_ID];\n const invokeStore = await lambda_invoke_store_1.InvokeStore.getInstanceAsync();\n const traceIdFromInvokeStore = invokeStore?.getXRayTraceId();\n const traceId = traceIdFromInvokeStore ?? traceIdFromEnv;\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.recursionDetectionMiddleware = recursionDetectionMiddleware;\n","'use strict';\n\nvar core = require('@smithy/core');\nvar utilEndpoints = require('@aws-sdk/util-endpoints');\nvar protocolHttp = require('@smithy/protocol-http');\nvar client = require('@aws-sdk/core/client');\nvar utilRetry = require('@smithy/util-retry');\n\nconst DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n if (appId === undefined) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = core.normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n }\n else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n },\n });\n}\n\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n client.setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.mode === \"string\") {\n switch (retryStrategy.mode) {\n case utilRetry.RETRY_MODES.ADAPTIVE:\n client.setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n break;\n case utilRetry.RETRY_MODES.STANDARD:\n client.setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n break;\n }\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n client.setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n client.setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n client.setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n client.setFeature(context, key, value);\n }\n }\n}\n\nconst USER_AGENT = \"user-agent\";\nconst X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nconst SPACE = \" \";\nconst UA_NAME_SEPARATOR = \"/\";\nconst UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w]/g;\nconst UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w#]/g;\nconst UA_ESCAPE_CHAR = \"-\";\n\nconst BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n }\n else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!protocolHttp.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`]));\n }\n const prefix = utilEndpoints.getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nconst getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nconst getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n\nexports.DEFAULT_UA_APP_ID = DEFAULT_UA_APP_ID;\nexports.getUserAgentMiddlewareOptions = getUserAgentMiddlewareOptions;\nexports.getUserAgentPlugin = getUserAgentPlugin;\nexports.resolveUserAgentConfig = resolveUserAgentConfig;\nexports.userAgentMiddleware = userAgentMiddleware;\n","'use strict';\n\nvar stsRegionDefaultResolver = require('./regionConfig/stsRegionDefaultResolver');\nvar configResolver = require('@smithy/config-resolver');\n\nconst getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n },\n };\n};\nconst resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = configResolver.NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = configResolver.NODE_REGION_CONFIG_OPTIONS;\nexports.REGION_ENV_NAME = configResolver.REGION_ENV_NAME;\nexports.REGION_INI_NAME = configResolver.REGION_INI_NAME;\nexports.resolveRegionConfig = configResolver.resolveRegionConfig;\nexports.getAwsRegionExtensionConfiguration = getAwsRegionExtensionConfiguration;\nexports.resolveAwsRegionExtensionConfiguration = resolveAwsRegionExtensionConfiguration;\nObject.prototype.hasOwnProperty.call(stsRegionDefaultResolver, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: stsRegionDefaultResolver['__proto__']\n });\n\nObject.keys(stsRegionDefaultResolver).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = stsRegionDefaultResolver[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.warning = void 0;\nexports.stsRegionDefaultResolver = stsRegionDefaultResolver;\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nfunction stsRegionDefaultResolver(loaderConfig = {}) {\n return (0, node_config_provider_1.loadConfig)({\n ...config_resolver_1.NODE_REGION_CONFIG_OPTIONS,\n async default() {\n if (!exports.warning.silence) {\n console.warn(\"@aws-sdk - WARN - default STS region of us-east-1 used. See @aws-sdk/credential-providers README and set a region explicitly.\");\n }\n return \"us-east-1\";\n },\n }, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig });\n}\nexports.warning = {\n silence: false,\n};\n","'use strict';\n\nvar utilEndpoints = require('@smithy/util-endpoints');\nvar urlParser = require('@smithy/url-parser');\n\nconst isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!utilEndpoints.isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (utilEndpoints.isIpAddress(value)) {\n return false;\n }\n return true;\n};\n\nconst ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nconst parseArn = (value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition,\n service,\n region,\n accountId,\n resourceId,\n };\n};\n\nvar partitions = [\n\t{\n\t\tid: \"aws\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-east-1\",\n\t\t\tname: \"aws\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"af-south-1\": {\n\t\t\t\tdescription: \"Africa (Cape Town)\"\n\t\t\t},\n\t\t\t\"ap-east-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Hong Kong)\"\n\t\t\t},\n\t\t\t\"ap-east-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Taipei)\"\n\t\t\t},\n\t\t\t\"ap-northeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Tokyo)\"\n\t\t\t},\n\t\t\t\"ap-northeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Seoul)\"\n\t\t\t},\n\t\t\t\"ap-northeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Osaka)\"\n\t\t\t},\n\t\t\t\"ap-south-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Mumbai)\"\n\t\t\t},\n\t\t\t\"ap-south-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Hyderabad)\"\n\t\t\t},\n\t\t\t\"ap-southeast-1\": {\n\t\t\t\tdescription: \"Asia Pacific (Singapore)\"\n\t\t\t},\n\t\t\t\"ap-southeast-2\": {\n\t\t\t\tdescription: \"Asia Pacific (Sydney)\"\n\t\t\t},\n\t\t\t\"ap-southeast-3\": {\n\t\t\t\tdescription: \"Asia Pacific (Jakarta)\"\n\t\t\t},\n\t\t\t\"ap-southeast-4\": {\n\t\t\t\tdescription: \"Asia Pacific (Melbourne)\"\n\t\t\t},\n\t\t\t\"ap-southeast-5\": {\n\t\t\t\tdescription: \"Asia Pacific (Malaysia)\"\n\t\t\t},\n\t\t\t\"ap-southeast-6\": {\n\t\t\t\tdescription: \"Asia Pacific (New Zealand)\"\n\t\t\t},\n\t\t\t\"ap-southeast-7\": {\n\t\t\t\tdescription: \"Asia Pacific (Thailand)\"\n\t\t\t},\n\t\t\t\"aws-global\": {\n\t\t\t\tdescription: \"aws global region\"\n\t\t\t},\n\t\t\t\"ca-central-1\": {\n\t\t\t\tdescription: \"Canada (Central)\"\n\t\t\t},\n\t\t\t\"ca-west-1\": {\n\t\t\t\tdescription: \"Canada West (Calgary)\"\n\t\t\t},\n\t\t\t\"eu-central-1\": {\n\t\t\t\tdescription: \"Europe (Frankfurt)\"\n\t\t\t},\n\t\t\t\"eu-central-2\": {\n\t\t\t\tdescription: \"Europe (Zurich)\"\n\t\t\t},\n\t\t\t\"eu-north-1\": {\n\t\t\t\tdescription: \"Europe (Stockholm)\"\n\t\t\t},\n\t\t\t\"eu-south-1\": {\n\t\t\t\tdescription: \"Europe (Milan)\"\n\t\t\t},\n\t\t\t\"eu-south-2\": {\n\t\t\t\tdescription: \"Europe (Spain)\"\n\t\t\t},\n\t\t\t\"eu-west-1\": {\n\t\t\t\tdescription: \"Europe (Ireland)\"\n\t\t\t},\n\t\t\t\"eu-west-2\": {\n\t\t\t\tdescription: \"Europe (London)\"\n\t\t\t},\n\t\t\t\"eu-west-3\": {\n\t\t\t\tdescription: \"Europe (Paris)\"\n\t\t\t},\n\t\t\t\"il-central-1\": {\n\t\t\t\tdescription: \"Israel (Tel Aviv)\"\n\t\t\t},\n\t\t\t\"me-central-1\": {\n\t\t\t\tdescription: \"Middle East (UAE)\"\n\t\t\t},\n\t\t\t\"me-south-1\": {\n\t\t\t\tdescription: \"Middle East (Bahrain)\"\n\t\t\t},\n\t\t\t\"mx-central-1\": {\n\t\t\t\tdescription: \"Mexico (Central)\"\n\t\t\t},\n\t\t\t\"sa-east-1\": {\n\t\t\t\tdescription: \"South America (Sao Paulo)\"\n\t\t\t},\n\t\t\t\"us-east-1\": {\n\t\t\t\tdescription: \"US East (N. Virginia)\"\n\t\t\t},\n\t\t\t\"us-east-2\": {\n\t\t\t\tdescription: \"US East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-west-1\": {\n\t\t\t\tdescription: \"US West (N. California)\"\n\t\t\t},\n\t\t\t\"us-west-2\": {\n\t\t\t\tdescription: \"US West (Oregon)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-cn\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com.cn\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n\t\t\timplicitGlobalRegion: \"cn-northwest-1\",\n\t\t\tname: \"aws-cn\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-cn-global\": {\n\t\t\t\tdescription: \"aws-cn global region\"\n\t\t\t},\n\t\t\t\"cn-north-1\": {\n\t\t\t\tdescription: \"China (Beijing)\"\n\t\t\t},\n\t\t\t\"cn-northwest-1\": {\n\t\t\t\tdescription: \"China (Ningxia)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-eusc\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.eu\",\n\t\t\tdualStackDnsSuffix: \"api.amazonwebservices.eu\",\n\t\t\timplicitGlobalRegion: \"eusc-de-east-1\",\n\t\t\tname: \"aws-eusc\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"eusc-de-east-1\": {\n\t\t\t\tdescription: \"AWS European Sovereign Cloud (Germany)\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"c2s.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-iso-east-1\",\n\t\t\tname: \"aws-iso\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-global\": {\n\t\t\t\tdescription: \"aws-iso global region\"\n\t\t\t},\n\t\t\t\"us-iso-east-1\": {\n\t\t\t\tdescription: \"US ISO East\"\n\t\t\t},\n\t\t\t\"us-iso-west-1\": {\n\t\t\t\tdescription: \"US ISO WEST\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-b\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"sc2s.sgov.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.scloud\",\n\t\t\timplicitGlobalRegion: \"us-isob-east-1\",\n\t\t\tname: \"aws-iso-b\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-b-global\": {\n\t\t\t\tdescription: \"aws-iso-b global region\"\n\t\t\t},\n\t\t\t\"us-isob-east-1\": {\n\t\t\t\tdescription: \"US ISOB East (Ohio)\"\n\t\t\t},\n\t\t\t\"us-isob-west-1\": {\n\t\t\t\tdescription: \"US ISOB West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-e\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"cloud.adc-e.uk\",\n\t\t\tdualStackDnsSuffix: \"api.cloud-aws.adc-e.uk\",\n\t\t\timplicitGlobalRegion: \"eu-isoe-west-1\",\n\t\t\tname: \"aws-iso-e\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-e-global\": {\n\t\t\t\tdescription: \"aws-iso-e global region\"\n\t\t\t},\n\t\t\t\"eu-isoe-west-1\": {\n\t\t\t\tdescription: \"EU ISOE West\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-iso-f\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"csp.hci.ic.gov\",\n\t\t\tdualStackDnsSuffix: \"api.aws.hci.ic.gov\",\n\t\t\timplicitGlobalRegion: \"us-isof-south-1\",\n\t\t\tname: \"aws-iso-f\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-iso-f-global\": {\n\t\t\t\tdescription: \"aws-iso-f global region\"\n\t\t\t},\n\t\t\t\"us-isof-east-1\": {\n\t\t\t\tdescription: \"US ISOF EAST\"\n\t\t\t},\n\t\t\t\"us-isof-south-1\": {\n\t\t\t\tdescription: \"US ISOF SOUTH\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tid: \"aws-us-gov\",\n\t\toutputs: {\n\t\t\tdnsSuffix: \"amazonaws.com\",\n\t\t\tdualStackDnsSuffix: \"api.aws\",\n\t\t\timplicitGlobalRegion: \"us-gov-west-1\",\n\t\t\tname: \"aws-us-gov\",\n\t\t\tsupportsDualStack: true,\n\t\t\tsupportsFIPS: true\n\t\t},\n\t\tregionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n\t\tregions: {\n\t\t\t\"aws-us-gov-global\": {\n\t\t\t\tdescription: \"aws-us-gov global region\"\n\t\t\t},\n\t\t\t\"us-gov-east-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-East)\"\n\t\t\t},\n\t\t\t\"us-gov-west-1\": {\n\t\t\t\tdescription: \"AWS GovCloud (US-West)\"\n\t\t\t}\n\t\t}\n\t}\n];\nvar version = \"1.1\";\nvar partitionsInfo = {\n\tpartitions: partitions,\n\tversion: version\n};\n\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nconst partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nconst setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nconst useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nconst getUserAgentPrefix = () => selectedUserAgentPrefix;\n\nconst awsEndpointFunctions = {\n isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n parseArn: parseArn,\n partition: partition,\n};\nutilEndpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\nconst resolveDefaultAwsRegionalEndpointsConfig = (input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n return toEndpointV1(input.endpointProvider({\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\"\n ? await input.useDualstackEndpoint()\n : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: undefined,\n }, { logger: input.logger }));\n };\n }\n return input;\n};\nconst toEndpointV1 = (endpoint) => urlParser.parseUrl(endpoint.url);\n\nexports.EndpointError = utilEndpoints.EndpointError;\nexports.isIpAddress = utilEndpoints.isIpAddress;\nexports.resolveEndpoint = utilEndpoints.resolveEndpoint;\nexports.awsEndpointFunctions = awsEndpointFunctions;\nexports.getUserAgentPrefix = getUserAgentPrefix;\nexports.partition = partition;\nexports.resolveDefaultAwsRegionalEndpointsConfig = resolveDefaultAwsRegionalEndpointsConfig;\nexports.setPartitionInfo = setPartitionInfo;\nexports.toEndpointV1 = toEndpointV1;\nexports.useDefaultPartitionInfo = useDefaultPartitionInfo;\n","'use strict';\n\nvar node_os = require('node:os');\nvar node_process = require('node:process');\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar promises = require('node:fs/promises');\nvar node_path = require('node:path');\nvar middlewareUserAgent = require('@aws-sdk/middleware-user-agent');\n\nconst getRuntimeUserAgentPair = () => {\n const runtimesToCheck = [\"deno\", \"bun\", \"llrt\"];\n for (const runtime of runtimesToCheck) {\n if (node_process.versions[runtime]) {\n return [`md/${runtime}`, node_process.versions[runtime]];\n }\n }\n return [\"md/nodejs\", node_process.versions.node];\n};\n\nconst getNodeModulesParentDirs = (dirname) => {\n const cwd = process.cwd();\n if (!dirname) {\n return [cwd];\n }\n const normalizedPath = node_path.normalize(dirname);\n const parts = normalizedPath.split(node_path.sep);\n const nodeModulesIndex = parts.indexOf(\"node_modules\");\n const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : normalizedPath;\n if (cwd === parentDir) {\n return [cwd];\n }\n return [parentDir, cwd];\n};\n\nconst SEMVER_REGEX = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$/;\nconst getSanitizedTypeScriptVersion = (version = \"\") => {\n const match = version.match(SEMVER_REGEX);\n if (!match) {\n return undefined;\n }\n const [major, minor, patch, prerelease] = [match[1], match[2], match[3], match[4]];\n return prerelease ? `${major}.${minor}.${patch}-${prerelease}` : `${major}.${minor}.${patch}`;\n};\n\nconst ALLOWED_PREFIXES = [\"^\", \"~\", \">=\", \"<=\", \">\", \"<\"];\nconst ALLOWED_DIST_TAGS = [\"latest\", \"beta\", \"dev\", \"rc\", \"insiders\", \"next\"];\nconst getSanitizedDevTypeScriptVersion = (version = \"\") => {\n if (ALLOWED_DIST_TAGS.includes(version)) {\n return version;\n }\n const prefix = ALLOWED_PREFIXES.find((p) => version.startsWith(p)) ?? \"\";\n const sanitizedTypeScriptVersion = getSanitizedTypeScriptVersion(version.slice(prefix.length));\n if (!sanitizedTypeScriptVersion) {\n return undefined;\n }\n return `${prefix}${sanitizedTypeScriptVersion}`;\n};\n\nlet tscVersion;\nconst TS_PACKAGE_JSON = node_path.join(\"node_modules\", \"typescript\", \"package.json\");\nconst getTypeScriptUserAgentPair = async () => {\n if (tscVersion === null) {\n return undefined;\n }\n else if (typeof tscVersion === \"string\") {\n return [\"md/tsc\", tscVersion];\n }\n let isTypeScriptDetectionDisabled = false;\n try {\n isTypeScriptDetectionDisabled =\n utilConfigProvider.booleanSelector(process.env, \"AWS_SDK_JS_TYPESCRIPT_DETECTION_DISABLED\", utilConfigProvider.SelectorType.ENV) || false;\n }\n catch { }\n if (isTypeScriptDetectionDisabled) {\n tscVersion = null;\n return undefined;\n }\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : undefined;\n const nodeModulesParentDirs = getNodeModulesParentDirs(dirname);\n let versionFromApp;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const appPackageJsonPath = node_path.join(nodeModulesParentDir, \"package.json\");\n const packageJson = await promises.readFile(appPackageJsonPath, \"utf-8\");\n const { dependencies, devDependencies } = JSON.parse(packageJson);\n const version = devDependencies?.typescript ?? dependencies?.typescript;\n if (typeof version !== \"string\") {\n continue;\n }\n versionFromApp = version;\n break;\n }\n catch {\n }\n }\n if (!versionFromApp) {\n tscVersion = null;\n return undefined;\n }\n let versionFromNodeModules;\n for (const nodeModulesParentDir of nodeModulesParentDirs) {\n try {\n const tsPackageJsonPath = node_path.join(nodeModulesParentDir, TS_PACKAGE_JSON);\n const packageJson = await promises.readFile(tsPackageJsonPath, \"utf-8\");\n const { version } = JSON.parse(packageJson);\n const sanitizedVersion = getSanitizedTypeScriptVersion(version);\n if (typeof sanitizedVersion !== \"string\") {\n continue;\n }\n versionFromNodeModules = sanitizedVersion;\n break;\n }\n catch {\n }\n }\n if (versionFromNodeModules) {\n tscVersion = versionFromNodeModules;\n return [\"md/tsc\", tscVersion];\n }\n const sanitizedVersion = getSanitizedDevTypeScriptVersion(versionFromApp);\n if (typeof sanitizedVersion !== \"string\") {\n tscVersion = null;\n return undefined;\n }\n tscVersion = `dev_${sanitizedVersion}`;\n return [\"md/tsc\", tscVersion];\n};\n\nconst crtAvailability = {\n isCrtAvailable: false,\n};\n\nconst isCrtAvailable = () => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n};\n\nconst createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => {\n const runtimeUserAgentPair = getRuntimeUserAgentPair();\n return async (config) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.1\"],\n [`os/${node_os.platform()}`, node_os.release()],\n [\"lang/js\"],\n runtimeUserAgentPair,\n ];\n const typescriptUserAgentPair = await getTypeScriptUserAgentPair();\n if (typescriptUserAgentPair) {\n sections.push(typescriptUserAgentPair);\n }\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (node_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${node_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n};\nconst defaultUserAgent = createDefaultUserAgentProvider;\n\nconst UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nconst UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nconst UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nconst NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED],\n default: middlewareUserAgent.DEFAULT_UA_APP_ID,\n};\n\nexports.NODE_APP_ID_CONFIG_OPTIONS = NODE_APP_ID_CONFIG_OPTIONS;\nexports.UA_APP_ID_ENV_NAME = UA_APP_ID_ENV_NAME;\nexports.UA_APP_ID_INI_NAME = UA_APP_ID_INI_NAME;\nexports.createDefaultUserAgentProvider = createDefaultUserAgentProvider;\nexports.crtAvailability = crtAvailability;\nexports.defaultUserAgent = defaultUserAgent;\n","'use strict';\n\nvar xmlParser = require('./xml-parser');\n\nconst ATTR_ESCAPE_RE = /[&<>\"]/g;\nconst ATTR_ESCAPE_MAP = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n};\nfunction escapeAttribute(value) {\n return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);\n}\n\nconst ELEMENT_ESCAPE_RE = /[&\"'<>\\r\\n\\u0085\\u2028]/g;\nconst ELEMENT_ESCAPE_MAP = {\n \"&\": \"&\",\n '\"': \""\",\n \"'\": \"'\",\n \"<\": \"<\",\n \">\": \">\",\n \"\\r\": \" \",\n \"\\n\": \" \",\n \"\\u0085\": \"…\",\n \"\\u2028\": \"
\",\n};\nfunction escapeElement(value) {\n return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);\n}\n\nclass XmlText {\n value;\n constructor(value) {\n this.value = value;\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n}\n\nclass XmlNode {\n name;\n children;\n attributes = {};\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n n(name) {\n this.name = name;\n return this;\n }\n c(child) {\n this.children.push(child);\n return this;\n }\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`);\n }\n}\n\nexports.parseXML = xmlParser.parseXML;\nexports.XmlNode = XmlNode;\nexports.XmlText = XmlText;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseXML = parseXML;\nconst fast_xml_parser_1 = require(\"fast-xml-parser\");\nconst parser = new fast_xml_parser_1.XMLParser({\n attributeNamePrefix: \"\",\n processEntities: {\n enabled: true,\n maxTotalExpansions: Infinity,\n },\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n maxNestedTags: Infinity,\n});\nparser.addEntity(\"#xD\", \"\\r\");\nparser.addEntity(\"#10\", \"\\n\");\nfunction parseXML(xmlString) {\n return parser.parse(xmlString, true);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCloudWatchLogsHttpAuthSchemeProvider = exports.defaultCloudWatchLogsHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCloudWatchLogsHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCloudWatchLogsHttpAuthSchemeParametersProvider = defaultCloudWatchLogsHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"logs\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCloudWatchLogsHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCloudWatchLogsHttpAuthSchemeProvider = defaultCloudWatchLogsHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [x]: \"Region\" }, p = { [v]: \"getAttr\", [w]: [{ [x]: g }, \"supportsFIPS\"] }, q = { [v]: c, [w]: [true, { [v]: \"getAttr\", [w]: [{ [x]: g }, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [o];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, p] }, q], rules: [{ endpoint: { url: \"https://logs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [p, a] }], rules: [{ conditions: [{ [v]: h, [w]: [o, \"us-gov-east-1\"] }], endpoint: { url: \"https://logs.us-gov-east-1.amazonaws.com\", properties: n, headers: n }, type: e }, { conditions: [{ [v]: h, [w]: [o, \"us-gov-west-1\"] }], endpoint: { url: \"https://logs.us-gov-west-1.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://logs-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://logs.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://logs.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n AnomalyDetectorStatus: () => AnomalyDetectorStatus,\n AssociateKmsKeyCommand: () => AssociateKmsKeyCommand,\n CancelExportTaskCommand: () => CancelExportTaskCommand,\n CloudWatchLogs: () => CloudWatchLogs,\n CloudWatchLogsClient: () => CloudWatchLogsClient,\n CloudWatchLogsServiceException: () => CloudWatchLogsServiceException,\n ConflictException: () => ConflictException,\n CreateDeliveryCommand: () => CreateDeliveryCommand,\n CreateExportTaskCommand: () => CreateExportTaskCommand,\n CreateLogAnomalyDetectorCommand: () => CreateLogAnomalyDetectorCommand,\n CreateLogGroupCommand: () => CreateLogGroupCommand,\n CreateLogStreamCommand: () => CreateLogStreamCommand,\n DataAlreadyAcceptedException: () => DataAlreadyAcceptedException,\n DataProtectionStatus: () => DataProtectionStatus,\n DeleteAccountPolicyCommand: () => DeleteAccountPolicyCommand,\n DeleteDataProtectionPolicyCommand: () => DeleteDataProtectionPolicyCommand,\n DeleteDeliveryCommand: () => DeleteDeliveryCommand,\n DeleteDeliveryDestinationCommand: () => DeleteDeliveryDestinationCommand,\n DeleteDeliveryDestinationPolicyCommand: () => DeleteDeliveryDestinationPolicyCommand,\n DeleteDeliverySourceCommand: () => DeleteDeliverySourceCommand,\n DeleteDestinationCommand: () => DeleteDestinationCommand,\n DeleteIndexPolicyCommand: () => DeleteIndexPolicyCommand,\n DeleteIntegrationCommand: () => DeleteIntegrationCommand,\n DeleteLogAnomalyDetectorCommand: () => DeleteLogAnomalyDetectorCommand,\n DeleteLogGroupCommand: () => DeleteLogGroupCommand,\n DeleteLogStreamCommand: () => DeleteLogStreamCommand,\n DeleteMetricFilterCommand: () => DeleteMetricFilterCommand,\n DeleteQueryDefinitionCommand: () => DeleteQueryDefinitionCommand,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeleteRetentionPolicyCommand: () => DeleteRetentionPolicyCommand,\n DeleteSubscriptionFilterCommand: () => DeleteSubscriptionFilterCommand,\n DeleteTransformerCommand: () => DeleteTransformerCommand,\n DeliveryDestinationType: () => DeliveryDestinationType,\n DescribeAccountPoliciesCommand: () => DescribeAccountPoliciesCommand,\n DescribeConfigurationTemplatesCommand: () => DescribeConfigurationTemplatesCommand,\n DescribeDeliveriesCommand: () => DescribeDeliveriesCommand,\n DescribeDeliveryDestinationsCommand: () => DescribeDeliveryDestinationsCommand,\n DescribeDeliverySourcesCommand: () => DescribeDeliverySourcesCommand,\n DescribeDestinationsCommand: () => DescribeDestinationsCommand,\n DescribeExportTasksCommand: () => DescribeExportTasksCommand,\n DescribeFieldIndexesCommand: () => DescribeFieldIndexesCommand,\n DescribeIndexPoliciesCommand: () => DescribeIndexPoliciesCommand,\n DescribeLogGroupsCommand: () => DescribeLogGroupsCommand,\n DescribeLogStreamsCommand: () => DescribeLogStreamsCommand,\n DescribeMetricFiltersCommand: () => DescribeMetricFiltersCommand,\n DescribeQueriesCommand: () => DescribeQueriesCommand,\n DescribeQueryDefinitionsCommand: () => DescribeQueryDefinitionsCommand,\n DescribeResourcePoliciesCommand: () => DescribeResourcePoliciesCommand,\n DescribeSubscriptionFiltersCommand: () => DescribeSubscriptionFiltersCommand,\n DisassociateKmsKeyCommand: () => DisassociateKmsKeyCommand,\n Distribution: () => Distribution,\n EntityRejectionErrorType: () => EntityRejectionErrorType,\n EvaluationFrequency: () => EvaluationFrequency,\n ExportTaskStatusCode: () => ExportTaskStatusCode,\n FilterLogEventsCommand: () => FilterLogEventsCommand,\n FlattenedElement: () => FlattenedElement,\n GetDataProtectionPolicyCommand: () => GetDataProtectionPolicyCommand,\n GetDeliveryCommand: () => GetDeliveryCommand,\n GetDeliveryDestinationCommand: () => GetDeliveryDestinationCommand,\n GetDeliveryDestinationPolicyCommand: () => GetDeliveryDestinationPolicyCommand,\n GetDeliverySourceCommand: () => GetDeliverySourceCommand,\n GetIntegrationCommand: () => GetIntegrationCommand,\n GetLogAnomalyDetectorCommand: () => GetLogAnomalyDetectorCommand,\n GetLogEventsCommand: () => GetLogEventsCommand,\n GetLogGroupFieldsCommand: () => GetLogGroupFieldsCommand,\n GetLogRecordCommand: () => GetLogRecordCommand,\n GetQueryResultsCommand: () => GetQueryResultsCommand,\n GetTransformerCommand: () => GetTransformerCommand,\n IndexSource: () => IndexSource,\n InheritedProperty: () => InheritedProperty,\n IntegrationDetails: () => IntegrationDetails,\n IntegrationStatus: () => IntegrationStatus,\n IntegrationType: () => IntegrationType,\n InvalidOperationException: () => InvalidOperationException,\n InvalidParameterException: () => InvalidParameterException,\n InvalidSequenceTokenException: () => InvalidSequenceTokenException,\n LimitExceededException: () => LimitExceededException,\n ListAnomaliesCommand: () => ListAnomaliesCommand,\n ListIntegrationsCommand: () => ListIntegrationsCommand,\n ListLogAnomalyDetectorsCommand: () => ListLogAnomalyDetectorsCommand,\n ListLogGroupsForQueryCommand: () => ListLogGroupsForQueryCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTagsLogGroupCommand: () => ListTagsLogGroupCommand,\n LogGroupClass: () => LogGroupClass,\n MalformedQueryException: () => MalformedQueryException,\n OpenSearchResourceStatusType: () => OpenSearchResourceStatusType,\n OperationAbortedException: () => OperationAbortedException,\n OrderBy: () => OrderBy,\n OutputFormat: () => OutputFormat,\n PolicyType: () => PolicyType,\n PutAccountPolicyCommand: () => PutAccountPolicyCommand,\n PutDataProtectionPolicyCommand: () => PutDataProtectionPolicyCommand,\n PutDeliveryDestinationCommand: () => PutDeliveryDestinationCommand,\n PutDeliveryDestinationPolicyCommand: () => PutDeliveryDestinationPolicyCommand,\n PutDeliverySourceCommand: () => PutDeliverySourceCommand,\n PutDestinationCommand: () => PutDestinationCommand,\n PutDestinationPolicyCommand: () => PutDestinationPolicyCommand,\n PutIndexPolicyCommand: () => PutIndexPolicyCommand,\n PutIntegrationCommand: () => PutIntegrationCommand,\n PutLogEventsCommand: () => PutLogEventsCommand,\n PutMetricFilterCommand: () => PutMetricFilterCommand,\n PutQueryDefinitionCommand: () => PutQueryDefinitionCommand,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n PutRetentionPolicyCommand: () => PutRetentionPolicyCommand,\n PutSubscriptionFilterCommand: () => PutSubscriptionFilterCommand,\n PutTransformerCommand: () => PutTransformerCommand,\n QueryLanguage: () => QueryLanguage,\n QueryStatus: () => QueryStatus,\n ResourceAlreadyExistsException: () => ResourceAlreadyExistsException,\n ResourceConfig: () => ResourceConfig,\n ResourceNotFoundException: () => ResourceNotFoundException,\n Scope: () => Scope,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n ServiceUnavailableException: () => ServiceUnavailableException,\n SessionStreamingException: () => SessionStreamingException,\n SessionTimeoutException: () => SessionTimeoutException,\n StandardUnit: () => StandardUnit,\n StartLiveTailCommand: () => StartLiveTailCommand,\n StartLiveTailResponseFilterSensitiveLog: () => StartLiveTailResponseFilterSensitiveLog,\n StartLiveTailResponseStream: () => StartLiveTailResponseStream,\n StartLiveTailResponseStreamFilterSensitiveLog: () => StartLiveTailResponseStreamFilterSensitiveLog,\n StartQueryCommand: () => StartQueryCommand,\n State: () => State,\n StopQueryCommand: () => StopQueryCommand,\n SuppressionState: () => SuppressionState,\n SuppressionType: () => SuppressionType,\n SuppressionUnit: () => SuppressionUnit,\n TagLogGroupCommand: () => TagLogGroupCommand,\n TagResourceCommand: () => TagResourceCommand,\n TestMetricFilterCommand: () => TestMetricFilterCommand,\n TestTransformerCommand: () => TestTransformerCommand,\n ThrottlingException: () => ThrottlingException,\n TooManyTagsException: () => TooManyTagsException,\n Type: () => Type,\n UnrecognizedClientException: () => UnrecognizedClientException,\n UntagLogGroupCommand: () => UntagLogGroupCommand,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateAnomalyCommand: () => UpdateAnomalyCommand,\n UpdateDeliveryConfigurationCommand: () => UpdateDeliveryConfigurationCommand,\n UpdateLogAnomalyDetectorCommand: () => UpdateLogAnomalyDetectorCommand,\n ValidationException: () => ValidationException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeConfigurationTemplates: () => paginateDescribeConfigurationTemplates,\n paginateDescribeDeliveries: () => paginateDescribeDeliveries,\n paginateDescribeDeliveryDestinations: () => paginateDescribeDeliveryDestinations,\n paginateDescribeDeliverySources: () => paginateDescribeDeliverySources,\n paginateDescribeDestinations: () => paginateDescribeDestinations,\n paginateDescribeLogGroups: () => paginateDescribeLogGroups,\n paginateDescribeLogStreams: () => paginateDescribeLogStreams,\n paginateDescribeMetricFilters: () => paginateDescribeMetricFilters,\n paginateDescribeSubscriptionFilters: () => paginateDescribeSubscriptionFilters,\n paginateFilterLogEvents: () => paginateFilterLogEvents,\n paginateGetLogEvents: () => paginateGetLogEvents,\n paginateListAnomalies: () => paginateListAnomalies,\n paginateListLogAnomalyDetectors: () => paginateListLogAnomalyDetectors,\n paginateListLogGroupsForQuery: () => paginateListLogGroupsForQuery\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CloudWatchLogsClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_eventstream_serde_config_resolver = require(\"@smithy/eventstream-serde-config-resolver\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"logs\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CloudWatchLogsClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CloudWatchLogsClient.ts\nvar CloudWatchLogsClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CloudWatchLogsClient\");\n }\n /**\n * The resolved configuration of CloudWatchLogsClient class. This is resolved and normalized from the {@link CloudWatchLogsClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_eventstream_serde_config_resolver.resolveEventStreamSerdeConfig)(_config_6);\n const _config_8 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_7);\n const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []);\n this.config = _config_9;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCloudWatchLogsHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CloudWatchLogs.ts\n\n\n// src/commands/AssociateKmsKeyCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/CloudWatchLogsServiceException.ts\n\nvar CloudWatchLogsServiceException = class _CloudWatchLogsServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CloudWatchLogsServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CloudWatchLogsServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n }\n};\nvar PolicyType = {\n DATA_PROTECTION_POLICY: \"DATA_PROTECTION_POLICY\",\n FIELD_INDEX_POLICY: \"FIELD_INDEX_POLICY\",\n SUBSCRIPTION_FILTER_POLICY: \"SUBSCRIPTION_FILTER_POLICY\",\n TRANSFORMER_POLICY: \"TRANSFORMER_POLICY\"\n};\nvar Scope = {\n ALL: \"ALL\"\n};\nvar State = {\n Active: \"Active\",\n Baseline: \"Baseline\",\n Suppressed: \"Suppressed\"\n};\nvar AnomalyDetectorStatus = {\n ANALYZING: \"ANALYZING\",\n DELETED: \"DELETED\",\n FAILED: \"FAILED\",\n INITIALIZING: \"INITIALIZING\",\n PAUSED: \"PAUSED\",\n TRAINING: \"TRAINING\"\n};\nvar EvaluationFrequency = {\n FIFTEEN_MIN: \"FIFTEEN_MIN\",\n FIVE_MIN: \"FIVE_MIN\",\n ONE_HOUR: \"ONE_HOUR\",\n ONE_MIN: \"ONE_MIN\",\n TEN_MIN: \"TEN_MIN\",\n THIRTY_MIN: \"THIRTY_MIN\"\n};\nvar InvalidParameterException = class _InvalidParameterException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar OperationAbortedException = class _OperationAbortedException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"OperationAbortedException\");\n }\n name = \"OperationAbortedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OperationAbortedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OperationAbortedException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ServiceUnavailableException = class _ServiceUnavailableException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ServiceUnavailableException\");\n }\n name = \"ServiceUnavailableException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceUnavailableException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceUnavailableException.prototype);\n }\n};\nvar InvalidOperationException = class _InvalidOperationException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"InvalidOperationException\");\n }\n name = \"InvalidOperationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOperationException.prototype);\n }\n};\nvar OutputFormat = {\n JSON: \"json\",\n PARQUET: \"parquet\",\n PLAIN: \"plain\",\n RAW: \"raw\",\n W3C: \"w3c\"\n};\nvar DeliveryDestinationType = {\n CWL: \"CWL\",\n FH: \"FH\",\n S3: \"S3\"\n};\nvar ConflictException = class _ConflictException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n }\n};\nvar ThrottlingException = class _ThrottlingException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n }\n};\nvar ValidationException = class _ValidationException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar ResourceAlreadyExistsException = class _ResourceAlreadyExistsException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"ResourceAlreadyExistsException\");\n }\n name = \"ResourceAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceAlreadyExistsException.prototype);\n }\n};\nvar LogGroupClass = {\n DELIVERY: \"DELIVERY\",\n INFREQUENT_ACCESS: \"INFREQUENT_ACCESS\",\n STANDARD: \"STANDARD\"\n};\nvar DataAlreadyAcceptedException = class _DataAlreadyAcceptedException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"DataAlreadyAcceptedException\");\n }\n name = \"DataAlreadyAcceptedException\";\n $fault = \"client\";\n expectedSequenceToken;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DataAlreadyAcceptedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DataAlreadyAcceptedException.prototype);\n this.expectedSequenceToken = opts.expectedSequenceToken;\n }\n};\nvar DataProtectionStatus = {\n ACTIVATED: \"ACTIVATED\",\n ARCHIVED: \"ARCHIVED\",\n DELETED: \"DELETED\",\n DISABLED: \"DISABLED\"\n};\nvar ExportTaskStatusCode = {\n CANCELLED: \"CANCELLED\",\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n PENDING_CANCEL: \"PENDING_CANCEL\",\n RUNNING: \"RUNNING\"\n};\nvar IndexSource = {\n ACCOUNT: \"ACCOUNT\",\n LOG_GROUP: \"LOG_GROUP\"\n};\nvar InheritedProperty = {\n ACCOUNT_DATA_PROTECTION: \"ACCOUNT_DATA_PROTECTION\"\n};\nvar OrderBy = {\n LastEventTime: \"LastEventTime\",\n LogStreamName: \"LogStreamName\"\n};\nvar StandardUnit = {\n Bits: \"Bits\",\n BitsSecond: \"Bits/Second\",\n Bytes: \"Bytes\",\n BytesSecond: \"Bytes/Second\",\n Count: \"Count\",\n CountSecond: \"Count/Second\",\n Gigabits: \"Gigabits\",\n GigabitsSecond: \"Gigabits/Second\",\n Gigabytes: \"Gigabytes\",\n GigabytesSecond: \"Gigabytes/Second\",\n Kilobits: \"Kilobits\",\n KilobitsSecond: \"Kilobits/Second\",\n Kilobytes: \"Kilobytes\",\n KilobytesSecond: \"Kilobytes/Second\",\n Megabits: \"Megabits\",\n MegabitsSecond: \"Megabits/Second\",\n Megabytes: \"Megabytes\",\n MegabytesSecond: \"Megabytes/Second\",\n Microseconds: \"Microseconds\",\n Milliseconds: \"Milliseconds\",\n None: \"None\",\n Percent: \"Percent\",\n Seconds: \"Seconds\",\n Terabits: \"Terabits\",\n TerabitsSecond: \"Terabits/Second\",\n Terabytes: \"Terabytes\",\n TerabytesSecond: \"Terabytes/Second\"\n};\nvar QueryLanguage = {\n CWLI: \"CWLI\",\n PPL: \"PPL\",\n SQL: \"SQL\"\n};\nvar QueryStatus = {\n Cancelled: \"Cancelled\",\n Complete: \"Complete\",\n Failed: \"Failed\",\n Running: \"Running\",\n Scheduled: \"Scheduled\",\n Timeout: \"Timeout\",\n Unknown: \"Unknown\"\n};\nvar Distribution = {\n ByLogStream: \"ByLogStream\",\n Random: \"Random\"\n};\nvar EntityRejectionErrorType = {\n ENTITY_SIZE_TOO_LARGE: \"EntitySizeTooLarge\",\n INVALID_ATTRIBUTES: \"InvalidAttributes\",\n INVALID_ENTITY: \"InvalidEntity\",\n INVALID_KEY_ATTRIBUTE: \"InvalidKeyAttributes\",\n INVALID_TYPE_VALUE: \"InvalidTypeValue\",\n MISSING_REQUIRED_FIELDS: \"MissingRequiredFields\",\n UNSUPPORTED_LOG_GROUP_TYPE: \"UnsupportedLogGroupType\"\n};\nvar FlattenedElement = {\n FIRST: \"first\",\n LAST: \"last\"\n};\nvar OpenSearchResourceStatusType = {\n ACTIVE: \"ACTIVE\",\n ERROR: \"ERROR\",\n NOT_FOUND: \"NOT_FOUND\"\n};\nvar IntegrationDetails;\n((IntegrationDetails2) => {\n IntegrationDetails2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.openSearchIntegrationDetails !== void 0)\n return visitor.openSearchIntegrationDetails(value.openSearchIntegrationDetails);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(IntegrationDetails || (IntegrationDetails = {}));\nvar IntegrationStatus = {\n ACTIVE: \"ACTIVE\",\n FAILED: \"FAILED\",\n PROVISIONING: \"PROVISIONING\"\n};\nvar IntegrationType = {\n OPENSEARCH: \"OPENSEARCH\"\n};\nvar Type = {\n BOOLEAN: \"boolean\",\n DOUBLE: \"double\",\n INTEGER: \"integer\",\n STRING: \"string\"\n};\nvar InvalidSequenceTokenException = class _InvalidSequenceTokenException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"InvalidSequenceTokenException\");\n }\n name = \"InvalidSequenceTokenException\";\n $fault = \"client\";\n expectedSequenceToken;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSequenceTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSequenceTokenException.prototype);\n this.expectedSequenceToken = opts.expectedSequenceToken;\n }\n};\nvar SuppressionState = {\n SUPPRESSED: \"SUPPRESSED\",\n UNSUPPRESSED: \"UNSUPPRESSED\"\n};\nvar ResourceConfig;\n((ResourceConfig3) => {\n ResourceConfig3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.openSearchResourceConfig !== void 0)\n return visitor.openSearchResourceConfig(value.openSearchResourceConfig);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(ResourceConfig || (ResourceConfig = {}));\nvar UnrecognizedClientException = class _UnrecognizedClientException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"UnrecognizedClientException\");\n }\n name = \"UnrecognizedClientException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnrecognizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnrecognizedClientException.prototype);\n }\n};\nvar SessionStreamingException = class _SessionStreamingException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"SessionStreamingException\");\n }\n name = \"SessionStreamingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SessionStreamingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SessionStreamingException.prototype);\n }\n};\nvar SessionTimeoutException = class _SessionTimeoutException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"SessionTimeoutException\");\n }\n name = \"SessionTimeoutException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SessionTimeoutException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SessionTimeoutException.prototype);\n }\n};\nvar StartLiveTailResponseStream;\n((StartLiveTailResponseStream3) => {\n StartLiveTailResponseStream3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.sessionStart !== void 0) return visitor.sessionStart(value.sessionStart);\n if (value.sessionUpdate !== void 0) return visitor.sessionUpdate(value.sessionUpdate);\n if (value.SessionTimeoutException !== void 0)\n return visitor.SessionTimeoutException(value.SessionTimeoutException);\n if (value.SessionStreamingException !== void 0)\n return visitor.SessionStreamingException(value.SessionStreamingException);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(StartLiveTailResponseStream || (StartLiveTailResponseStream = {}));\nvar MalformedQueryException = class _MalformedQueryException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"MalformedQueryException\");\n }\n name = \"MalformedQueryException\";\n $fault = \"client\";\n /**\n *

Reserved.

\n * @public\n */\n queryCompileError;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedQueryException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedQueryException.prototype);\n this.queryCompileError = opts.queryCompileError;\n }\n};\nvar TooManyTagsException = class _TooManyTagsException extends CloudWatchLogsServiceException {\n static {\n __name(this, \"TooManyTagsException\");\n }\n name = \"TooManyTagsException\";\n $fault = \"client\";\n /**\n *

The name of the resource.

\n * @public\n */\n resourceName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsException.prototype);\n this.resourceName = opts.resourceName;\n }\n};\nvar SuppressionUnit = {\n HOURS: \"HOURS\",\n MINUTES: \"MINUTES\",\n SECONDS: \"SECONDS\"\n};\nvar SuppressionType = {\n INFINITE: \"INFINITE\",\n LIMITED: \"LIMITED\"\n};\nvar StartLiveTailResponseStreamFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.sessionStart !== void 0) return { sessionStart: obj.sessionStart };\n if (obj.sessionUpdate !== void 0) return { sessionUpdate: obj.sessionUpdate };\n if (obj.SessionTimeoutException !== void 0) return { SessionTimeoutException: obj.SessionTimeoutException };\n if (obj.SessionStreamingException !== void 0) return { SessionStreamingException: obj.SessionStreamingException };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"StartLiveTailResponseStreamFilterSensitiveLog\");\nvar StartLiveTailResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.responseStream && { responseStream: \"STREAMING_CONTENT\" }\n}), \"StartLiveTailResponseFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_AssociateKmsKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"AssociateKmsKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateKmsKeyCommand\");\nvar se_CancelExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelExportTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelExportTaskCommand\");\nvar se_CreateDeliveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateDelivery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDeliveryCommand\");\nvar se_CreateExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateExportTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateExportTaskCommand\");\nvar se_CreateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLogAnomalyDetectorCommand\");\nvar se_CreateLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLogGroupCommand\");\nvar se_CreateLogStreamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateLogStream\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLogStreamCommand\");\nvar se_DeleteAccountPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAccountPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountPolicyCommand\");\nvar se_DeleteDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDataProtectionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDataProtectionPolicyCommand\");\nvar se_DeleteDeliveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDelivery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliveryCommand\");\nvar se_DeleteDeliveryDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDeliveryDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliveryDestinationCommand\");\nvar se_DeleteDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDeliveryDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliveryDestinationPolicyCommand\");\nvar se_DeleteDeliverySourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDeliverySource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDeliverySourceCommand\");\nvar se_DeleteDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDestinationCommand\");\nvar se_DeleteIndexPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIndexPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIndexPolicyCommand\");\nvar se_DeleteIntegrationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIntegration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIntegrationCommand\");\nvar se_DeleteLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLogAnomalyDetectorCommand\");\nvar se_DeleteLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLogGroupCommand\");\nvar se_DeleteLogStreamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLogStream\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLogStreamCommand\");\nvar se_DeleteMetricFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteMetricFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteMetricFilterCommand\");\nvar se_DeleteQueryDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteQueryDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteQueryDefinitionCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeleteRetentionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRetentionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRetentionPolicyCommand\");\nvar se_DeleteSubscriptionFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteSubscriptionFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSubscriptionFilterCommand\");\nvar se_DeleteTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransformerCommand\");\nvar se_DescribeAccountPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAccountPolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAccountPoliciesCommand\");\nvar se_DescribeConfigurationTemplatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeConfigurationTemplates\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeConfigurationTemplatesCommand\");\nvar se_DescribeDeliveriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDeliveries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeliveriesCommand\");\nvar se_DescribeDeliveryDestinationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDeliveryDestinations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeliveryDestinationsCommand\");\nvar se_DescribeDeliverySourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDeliverySources\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeliverySourcesCommand\");\nvar se_DescribeDestinationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDestinations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDestinationsCommand\");\nvar se_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeExportTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExportTasksCommand\");\nvar se_DescribeFieldIndexesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeFieldIndexes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFieldIndexesCommand\");\nvar se_DescribeIndexPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeIndexPolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIndexPoliciesCommand\");\nvar se_DescribeLogGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeLogGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLogGroupsCommand\");\nvar se_DescribeLogStreamsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeLogStreams\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLogStreamsCommand\");\nvar se_DescribeMetricFiltersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMetricFilters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMetricFiltersCommand\");\nvar se_DescribeQueriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeQueries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeQueriesCommand\");\nvar se_DescribeQueryDefinitionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeQueryDefinitions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeQueryDefinitionsCommand\");\nvar se_DescribeResourcePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeResourcePolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeResourcePoliciesCommand\");\nvar se_DescribeSubscriptionFiltersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeSubscriptionFilters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSubscriptionFiltersCommand\");\nvar se_DisassociateKmsKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisassociateKmsKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateKmsKeyCommand\");\nvar se_FilterLogEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"FilterLogEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_FilterLogEventsCommand\");\nvar se_GetDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDataProtectionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDataProtectionPolicyCommand\");\nvar se_GetDeliveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDelivery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliveryCommand\");\nvar se_GetDeliveryDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeliveryDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliveryDestinationCommand\");\nvar se_GetDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeliveryDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliveryDestinationPolicyCommand\");\nvar se_GetDeliverySourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeliverySource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeliverySourceCommand\");\nvar se_GetIntegrationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetIntegration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIntegrationCommand\");\nvar se_GetLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogAnomalyDetectorCommand\");\nvar se_GetLogEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogEventsCommand\");\nvar se_GetLogGroupFieldsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogGroupFields\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogGroupFieldsCommand\");\nvar se_GetLogRecordCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLogRecord\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLogRecordCommand\");\nvar se_GetQueryResultsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetQueryResults\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetQueryResultsCommand\");\nvar se_GetTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransformerCommand\");\nvar se_ListAnomaliesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAnomalies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAnomaliesCommand\");\nvar se_ListIntegrationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListIntegrations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListIntegrationsCommand\");\nvar se_ListLogAnomalyDetectorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListLogAnomalyDetectors\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListLogAnomalyDetectorsCommand\");\nvar se_ListLogGroupsForQueryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListLogGroupsForQuery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListLogGroupsForQueryCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTagsLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsLogGroupCommand\");\nvar se_PutAccountPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountPolicyCommand\");\nvar se_PutDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDataProtectionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDataProtectionPolicyCommand\");\nvar se_PutDeliveryDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDeliveryDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDeliveryDestinationCommand\");\nvar se_PutDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDeliveryDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDeliveryDestinationPolicyCommand\");\nvar se_PutDeliverySourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDeliverySource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDeliverySourceCommand\");\nvar se_PutDestinationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDestination\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDestinationCommand\");\nvar se_PutDestinationPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutDestinationPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutDestinationPolicyCommand\");\nvar se_PutIndexPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutIndexPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutIndexPolicyCommand\");\nvar se_PutIntegrationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutIntegration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutIntegrationCommand\");\nvar se_PutLogEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutLogEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutLogEventsCommand\");\nvar se_PutMetricFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutMetricFilter\");\n let body;\n body = JSON.stringify(se_PutMetricFilterRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutMetricFilterCommand\");\nvar se_PutQueryDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutQueryDefinition\");\n let body;\n body = JSON.stringify(se_PutQueryDefinitionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutQueryDefinitionCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_PutRetentionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutRetentionPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRetentionPolicyCommand\");\nvar se_PutSubscriptionFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutSubscriptionFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutSubscriptionFilterCommand\");\nvar se_PutTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutTransformerCommand\");\nvar se_StartLiveTailCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartLiveTail\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"streaming-\" + resolvedHostname;\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return buildHttpRpcRequest(context, headers, \"/\", resolvedHostname, body);\n}, \"se_StartLiveTailCommand\");\nvar se_StartQueryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartQuery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartQueryCommand\");\nvar se_StopQueryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopQuery\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopQueryCommand\");\nvar se_TagLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagLogGroupCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_TestMetricFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TestMetricFilter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TestMetricFilterCommand\");\nvar se_TestTransformerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TestTransformer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TestTransformerCommand\");\nvar se_UntagLogGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagLogGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagLogGroupCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateAnomalyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAnomaly\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAnomalyCommand\");\nvar se_UpdateDeliveryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDeliveryConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDeliveryConfigurationCommand\");\nvar se_UpdateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateLogAnomalyDetector\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateLogAnomalyDetectorCommand\");\nvar de_AssociateKmsKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AssociateKmsKeyCommand\");\nvar de_CancelExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CancelExportTaskCommand\");\nvar de_CreateDeliveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDeliveryCommand\");\nvar de_CreateExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateExportTaskCommand\");\nvar de_CreateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLogAnomalyDetectorCommand\");\nvar de_CreateLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateLogGroupCommand\");\nvar de_CreateLogStreamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateLogStreamCommand\");\nvar de_DeleteAccountPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccountPolicyCommand\");\nvar de_DeleteDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDataProtectionPolicyCommand\");\nvar de_DeleteDeliveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliveryCommand\");\nvar de_DeleteDeliveryDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliveryDestinationCommand\");\nvar de_DeleteDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliveryDestinationPolicyCommand\");\nvar de_DeleteDeliverySourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDeliverySourceCommand\");\nvar de_DeleteDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDestinationCommand\");\nvar de_DeleteIndexPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIndexPolicyCommand\");\nvar de_DeleteIntegrationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIntegrationCommand\");\nvar de_DeleteLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLogAnomalyDetectorCommand\");\nvar de_DeleteLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLogGroupCommand\");\nvar de_DeleteLogStreamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLogStreamCommand\");\nvar de_DeleteMetricFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteMetricFilterCommand\");\nvar de_DeleteQueryDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteQueryDefinitionCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeleteRetentionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRetentionPolicyCommand\");\nvar de_DeleteSubscriptionFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSubscriptionFilterCommand\");\nvar de_DeleteTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteTransformerCommand\");\nvar de_DescribeAccountPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAccountPoliciesCommand\");\nvar de_DescribeConfigurationTemplatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeConfigurationTemplatesCommand\");\nvar de_DescribeDeliveriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeliveriesCommand\");\nvar de_DescribeDeliveryDestinationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeliveryDestinationsCommand\");\nvar de_DescribeDeliverySourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeliverySourcesCommand\");\nvar de_DescribeDestinationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDestinationsCommand\");\nvar de_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExportTasksCommand\");\nvar de_DescribeFieldIndexesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFieldIndexesCommand\");\nvar de_DescribeIndexPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIndexPoliciesCommand\");\nvar de_DescribeLogGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLogGroupsCommand\");\nvar de_DescribeLogStreamsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLogStreamsCommand\");\nvar de_DescribeMetricFiltersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMetricFiltersResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMetricFiltersCommand\");\nvar de_DescribeQueriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeQueriesCommand\");\nvar de_DescribeQueryDefinitionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeQueryDefinitionsCommand\");\nvar de_DescribeResourcePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeResourcePoliciesCommand\");\nvar de_DescribeSubscriptionFiltersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSubscriptionFiltersCommand\");\nvar de_DisassociateKmsKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisassociateKmsKeyCommand\");\nvar de_FilterLogEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_FilterLogEventsCommand\");\nvar de_GetDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDataProtectionPolicyCommand\");\nvar de_GetDeliveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliveryCommand\");\nvar de_GetDeliveryDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliveryDestinationCommand\");\nvar de_GetDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliveryDestinationPolicyCommand\");\nvar de_GetDeliverySourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeliverySourceCommand\");\nvar de_GetIntegrationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIntegrationCommand\");\nvar de_GetLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogAnomalyDetectorCommand\");\nvar de_GetLogEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogEventsCommand\");\nvar de_GetLogGroupFieldsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogGroupFieldsCommand\");\nvar de_GetLogRecordCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLogRecordCommand\");\nvar de_GetQueryResultsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetQueryResultsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetQueryResultsCommand\");\nvar de_GetTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransformerCommand\");\nvar de_ListAnomaliesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAnomaliesCommand\");\nvar de_ListIntegrationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListIntegrationsCommand\");\nvar de_ListLogAnomalyDetectorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListLogAnomalyDetectorsCommand\");\nvar de_ListLogGroupsForQueryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListLogGroupsForQueryCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTagsLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsLogGroupCommand\");\nvar de_PutAccountPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountPolicyCommand\");\nvar de_PutDataProtectionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDataProtectionPolicyCommand\");\nvar de_PutDeliveryDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDeliveryDestinationCommand\");\nvar de_PutDeliveryDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDeliveryDestinationPolicyCommand\");\nvar de_PutDeliverySourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDeliverySourceCommand\");\nvar de_PutDestinationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutDestinationCommand\");\nvar de_PutDestinationPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutDestinationPolicyCommand\");\nvar de_PutIndexPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutIndexPolicyCommand\");\nvar de_PutIntegrationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutIntegrationCommand\");\nvar de_PutLogEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutLogEventsCommand\");\nvar de_PutMetricFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutMetricFilterCommand\");\nvar de_PutQueryDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutQueryDefinitionCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_PutRetentionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutRetentionPolicyCommand\");\nvar de_PutSubscriptionFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutSubscriptionFilterCommand\");\nvar de_PutTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutTransformerCommand\");\nvar de_StartLiveTailCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = { responseStream: de_StartLiveTailResponseStream(output.body, context) };\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartLiveTailCommand\");\nvar de_StartQueryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartQueryCommand\");\nvar de_StopQueryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopQueryCommand\");\nvar de_TagLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagLogGroupCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_TestMetricFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TestMetricFilterCommand\");\nvar de_TestTransformerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TestTransformerCommand\");\nvar de_UntagLogGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagLogGroupCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateAnomalyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAnomalyCommand\");\nvar de_UpdateDeliveryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDeliveryConfigurationCommand\");\nvar de_UpdateLogAnomalyDetectorCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateLogAnomalyDetectorCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidParameterException\":\n case \"com.amazonaws.cloudwatchlogs#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"OperationAbortedException\":\n case \"com.amazonaws.cloudwatchlogs#OperationAbortedException\":\n throw await de_OperationAbortedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cloudwatchlogs#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ServiceUnavailableException\":\n case \"com.amazonaws.cloudwatchlogs#ServiceUnavailableException\":\n throw await de_ServiceUnavailableExceptionRes(parsedOutput, context);\n case \"InvalidOperationException\":\n case \"com.amazonaws.cloudwatchlogs#InvalidOperationException\":\n throw await de_InvalidOperationExceptionRes(parsedOutput, context);\n case \"AccessDeniedException\":\n case \"com.amazonaws.cloudwatchlogs#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.cloudwatchlogs#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.cloudwatchlogs#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.cloudwatchlogs#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.cloudwatchlogs#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cloudwatchlogs#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceAlreadyExistsException\":\n case \"com.amazonaws.cloudwatchlogs#ResourceAlreadyExistsException\":\n throw await de_ResourceAlreadyExistsExceptionRes(parsedOutput, context);\n case \"DataAlreadyAcceptedException\":\n case \"com.amazonaws.cloudwatchlogs#DataAlreadyAcceptedException\":\n throw await de_DataAlreadyAcceptedExceptionRes(parsedOutput, context);\n case \"InvalidSequenceTokenException\":\n case \"com.amazonaws.cloudwatchlogs#InvalidSequenceTokenException\":\n throw await de_InvalidSequenceTokenExceptionRes(parsedOutput, context);\n case \"UnrecognizedClientException\":\n case \"com.amazonaws.cloudwatchlogs#UnrecognizedClientException\":\n throw await de_UnrecognizedClientExceptionRes(parsedOutput, context);\n case \"MalformedQueryException\":\n case \"com.amazonaws.cloudwatchlogs#MalformedQueryException\":\n throw await de_MalformedQueryExceptionRes(parsedOutput, context);\n case \"TooManyTagsException\":\n case \"com.amazonaws.cloudwatchlogs#TooManyTagsException\":\n throw await de_TooManyTagsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_DataAlreadyAcceptedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DataAlreadyAcceptedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DataAlreadyAcceptedExceptionRes\");\nvar de_InvalidOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOperationExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_InvalidSequenceTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidSequenceTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSequenceTokenExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedQueryExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedQueryException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedQueryExceptionRes\");\nvar de_OperationAbortedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OperationAbortedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OperationAbortedExceptionRes\");\nvar de_ResourceAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceAlreadyExistsExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_ServiceUnavailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceUnavailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceUnavailableExceptionRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TooManyTagsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTagsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsExceptionRes\");\nvar de_UnrecognizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnrecognizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnrecognizedClientExceptionRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar de_StartLiveTailResponseStream = /* @__PURE__ */ __name((output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"sessionStart\"] != null) {\n return {\n sessionStart: await de_LiveTailSessionStart_event(event[\"sessionStart\"], context)\n };\n }\n if (event[\"sessionUpdate\"] != null) {\n return {\n sessionUpdate: await de_LiveTailSessionUpdate_event(event[\"sessionUpdate\"], context)\n };\n }\n if (event[\"SessionTimeoutException\"] != null) {\n return {\n SessionTimeoutException: await de_SessionTimeoutException_event(event[\"SessionTimeoutException\"], context)\n };\n }\n if (event[\"SessionStreamingException\"] != null) {\n return {\n SessionStreamingException: await de_SessionStreamingException_event(\n event[\"SessionStreamingException\"],\n context\n )\n };\n }\n return { $unknown: output };\n });\n}, \"de_StartLiveTailResponseStream\");\nvar de_LiveTailSessionStart_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n Object.assign(contents, (0, import_smithy_client._json)(data));\n return contents;\n}, \"de_LiveTailSessionStart_event\");\nvar de_LiveTailSessionUpdate_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n Object.assign(contents, (0, import_smithy_client._json)(data));\n return contents;\n}, \"de_LiveTailSessionUpdate_event\");\nvar de_SessionStreamingException_event = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonBody)(output.body, context)\n };\n return de_SessionStreamingExceptionRes(parsedOutput, context);\n}, \"de_SessionStreamingException_event\");\nvar de_SessionTimeoutException_event = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonBody)(output.body, context)\n };\n return de_SessionTimeoutExceptionRes(parsedOutput, context);\n}, \"de_SessionTimeoutException_event\");\nvar de_SessionStreamingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SessionStreamingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SessionStreamingExceptionRes\");\nvar de_SessionTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SessionTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SessionTimeoutExceptionRes\");\nvar se_MetricTransformation = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n defaultValue: import_smithy_client.serializeFloat,\n dimensions: import_smithy_client._json,\n metricName: [],\n metricNamespace: [],\n metricValue: [],\n unit: []\n });\n}, \"se_MetricTransformation\");\nvar se_MetricTransformations = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_MetricTransformation(entry, context);\n });\n}, \"se_MetricTransformations\");\nvar se_PutMetricFilterRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n applyOnTransformedLogs: [],\n filterName: [],\n filterPattern: [],\n logGroupName: [],\n metricTransformations: /* @__PURE__ */ __name((_) => se_MetricTransformations(_, context), \"metricTransformations\")\n });\n}, \"se_PutMetricFilterRequest\");\nvar se_PutQueryDefinitionRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n clientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n logGroupNames: import_smithy_client._json,\n name: [],\n queryDefinitionId: [],\n queryLanguage: [],\n queryString: []\n });\n}, \"se_PutQueryDefinitionRequest\");\nvar de_DescribeMetricFiltersResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n metricFilters: /* @__PURE__ */ __name((_) => de_MetricFilters(_, context), \"metricFilters\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeMetricFiltersResponse\");\nvar de_GetQueryResultsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n encryptionKey: import_smithy_client.expectString,\n queryLanguage: import_smithy_client.expectString,\n results: import_smithy_client._json,\n statistics: /* @__PURE__ */ __name((_) => de_QueryStatistics(_, context), \"statistics\"),\n status: import_smithy_client.expectString\n });\n}, \"de_GetQueryResultsResponse\");\nvar de_MetricFilter = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n applyOnTransformedLogs: import_smithy_client.expectBoolean,\n creationTime: import_smithy_client.expectLong,\n filterName: import_smithy_client.expectString,\n filterPattern: import_smithy_client.expectString,\n logGroupName: import_smithy_client.expectString,\n metricTransformations: /* @__PURE__ */ __name((_) => de_MetricTransformations(_, context), \"metricTransformations\")\n });\n}, \"de_MetricFilter\");\nvar de_MetricFilters = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricFilter(entry, context);\n });\n return retVal;\n}, \"de_MetricFilters\");\nvar de_MetricTransformation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n defaultValue: import_smithy_client.limitedParseDouble,\n dimensions: import_smithy_client._json,\n metricName: import_smithy_client.expectString,\n metricNamespace: import_smithy_client.expectString,\n metricValue: import_smithy_client.expectString,\n unit: import_smithy_client.expectString\n });\n}, \"de_MetricTransformation\");\nvar de_MetricTransformations = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricTransformation(entry, context);\n });\n return retVal;\n}, \"de_MetricTransformations\");\nvar de_QueryStatistics = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n bytesScanned: import_smithy_client.limitedParseDouble,\n estimatedBytesSkipped: import_smithy_client.limitedParseDouble,\n estimatedRecordsSkipped: import_smithy_client.limitedParseDouble,\n logGroupsScanned: import_smithy_client.limitedParseDouble,\n recordsMatched: import_smithy_client.limitedParseDouble,\n recordsScanned: import_smithy_client.limitedParseDouble\n });\n}, \"de_QueryStatistics\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CloudWatchLogsServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `Logs_20140328.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/AssociateKmsKeyCommand.ts\nvar AssociateKmsKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"AssociateKmsKey\", {}).n(\"CloudWatchLogsClient\", \"AssociateKmsKeyCommand\").f(void 0, void 0).ser(se_AssociateKmsKeyCommand).de(de_AssociateKmsKeyCommand).build() {\n static {\n __name(this, \"AssociateKmsKeyCommand\");\n }\n};\n\n// src/commands/CancelExportTaskCommand.ts\n\n\n\nvar CancelExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CancelExportTask\", {}).n(\"CloudWatchLogsClient\", \"CancelExportTaskCommand\").f(void 0, void 0).ser(se_CancelExportTaskCommand).de(de_CancelExportTaskCommand).build() {\n static {\n __name(this, \"CancelExportTaskCommand\");\n }\n};\n\n// src/commands/CreateDeliveryCommand.ts\n\n\n\nvar CreateDeliveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateDelivery\", {}).n(\"CloudWatchLogsClient\", \"CreateDeliveryCommand\").f(void 0, void 0).ser(se_CreateDeliveryCommand).de(de_CreateDeliveryCommand).build() {\n static {\n __name(this, \"CreateDeliveryCommand\");\n }\n};\n\n// src/commands/CreateExportTaskCommand.ts\n\n\n\nvar CreateExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateExportTask\", {}).n(\"CloudWatchLogsClient\", \"CreateExportTaskCommand\").f(void 0, void 0).ser(se_CreateExportTaskCommand).de(de_CreateExportTaskCommand).build() {\n static {\n __name(this, \"CreateExportTaskCommand\");\n }\n};\n\n// src/commands/CreateLogAnomalyDetectorCommand.ts\n\n\n\nvar CreateLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"CreateLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_CreateLogAnomalyDetectorCommand).de(de_CreateLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"CreateLogAnomalyDetectorCommand\");\n }\n};\n\n// src/commands/CreateLogGroupCommand.ts\n\n\n\nvar CreateLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateLogGroup\", {}).n(\"CloudWatchLogsClient\", \"CreateLogGroupCommand\").f(void 0, void 0).ser(se_CreateLogGroupCommand).de(de_CreateLogGroupCommand).build() {\n static {\n __name(this, \"CreateLogGroupCommand\");\n }\n};\n\n// src/commands/CreateLogStreamCommand.ts\n\n\n\nvar CreateLogStreamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"CreateLogStream\", {}).n(\"CloudWatchLogsClient\", \"CreateLogStreamCommand\").f(void 0, void 0).ser(se_CreateLogStreamCommand).de(de_CreateLogStreamCommand).build() {\n static {\n __name(this, \"CreateLogStreamCommand\");\n }\n};\n\n// src/commands/DeleteAccountPolicyCommand.ts\n\n\n\nvar DeleteAccountPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteAccountPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteAccountPolicyCommand\").f(void 0, void 0).ser(se_DeleteAccountPolicyCommand).de(de_DeleteAccountPolicyCommand).build() {\n static {\n __name(this, \"DeleteAccountPolicyCommand\");\n }\n};\n\n// src/commands/DeleteDataProtectionPolicyCommand.ts\n\n\n\nvar DeleteDataProtectionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDataProtectionPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteDataProtectionPolicyCommand\").f(void 0, void 0).ser(se_DeleteDataProtectionPolicyCommand).de(de_DeleteDataProtectionPolicyCommand).build() {\n static {\n __name(this, \"DeleteDataProtectionPolicyCommand\");\n }\n};\n\n// src/commands/DeleteDeliveryCommand.ts\n\n\n\nvar DeleteDeliveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDelivery\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliveryCommand\").f(void 0, void 0).ser(se_DeleteDeliveryCommand).de(de_DeleteDeliveryCommand).build() {\n static {\n __name(this, \"DeleteDeliveryCommand\");\n }\n};\n\n// src/commands/DeleteDeliveryDestinationCommand.ts\n\n\n\nvar DeleteDeliveryDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDeliveryDestination\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliveryDestinationCommand\").f(void 0, void 0).ser(se_DeleteDeliveryDestinationCommand).de(de_DeleteDeliveryDestinationCommand).build() {\n static {\n __name(this, \"DeleteDeliveryDestinationCommand\");\n }\n};\n\n// src/commands/DeleteDeliveryDestinationPolicyCommand.ts\n\n\n\nvar DeleteDeliveryDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDeliveryDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliveryDestinationPolicyCommand\").f(void 0, void 0).ser(se_DeleteDeliveryDestinationPolicyCommand).de(de_DeleteDeliveryDestinationPolicyCommand).build() {\n static {\n __name(this, \"DeleteDeliveryDestinationPolicyCommand\");\n }\n};\n\n// src/commands/DeleteDeliverySourceCommand.ts\n\n\n\nvar DeleteDeliverySourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDeliverySource\", {}).n(\"CloudWatchLogsClient\", \"DeleteDeliverySourceCommand\").f(void 0, void 0).ser(se_DeleteDeliverySourceCommand).de(de_DeleteDeliverySourceCommand).build() {\n static {\n __name(this, \"DeleteDeliverySourceCommand\");\n }\n};\n\n// src/commands/DeleteDestinationCommand.ts\n\n\n\nvar DeleteDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteDestination\", {}).n(\"CloudWatchLogsClient\", \"DeleteDestinationCommand\").f(void 0, void 0).ser(se_DeleteDestinationCommand).de(de_DeleteDestinationCommand).build() {\n static {\n __name(this, \"DeleteDestinationCommand\");\n }\n};\n\n// src/commands/DeleteIndexPolicyCommand.ts\n\n\n\nvar DeleteIndexPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteIndexPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteIndexPolicyCommand\").f(void 0, void 0).ser(se_DeleteIndexPolicyCommand).de(de_DeleteIndexPolicyCommand).build() {\n static {\n __name(this, \"DeleteIndexPolicyCommand\");\n }\n};\n\n// src/commands/DeleteIntegrationCommand.ts\n\n\n\nvar DeleteIntegrationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteIntegration\", {}).n(\"CloudWatchLogsClient\", \"DeleteIntegrationCommand\").f(void 0, void 0).ser(se_DeleteIntegrationCommand).de(de_DeleteIntegrationCommand).build() {\n static {\n __name(this, \"DeleteIntegrationCommand\");\n }\n};\n\n// src/commands/DeleteLogAnomalyDetectorCommand.ts\n\n\n\nvar DeleteLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"DeleteLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_DeleteLogAnomalyDetectorCommand).de(de_DeleteLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"DeleteLogAnomalyDetectorCommand\");\n }\n};\n\n// src/commands/DeleteLogGroupCommand.ts\n\n\n\nvar DeleteLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteLogGroup\", {}).n(\"CloudWatchLogsClient\", \"DeleteLogGroupCommand\").f(void 0, void 0).ser(se_DeleteLogGroupCommand).de(de_DeleteLogGroupCommand).build() {\n static {\n __name(this, \"DeleteLogGroupCommand\");\n }\n};\n\n// src/commands/DeleteLogStreamCommand.ts\n\n\n\nvar DeleteLogStreamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteLogStream\", {}).n(\"CloudWatchLogsClient\", \"DeleteLogStreamCommand\").f(void 0, void 0).ser(se_DeleteLogStreamCommand).de(de_DeleteLogStreamCommand).build() {\n static {\n __name(this, \"DeleteLogStreamCommand\");\n }\n};\n\n// src/commands/DeleteMetricFilterCommand.ts\n\n\n\nvar DeleteMetricFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteMetricFilter\", {}).n(\"CloudWatchLogsClient\", \"DeleteMetricFilterCommand\").f(void 0, void 0).ser(se_DeleteMetricFilterCommand).de(de_DeleteMetricFilterCommand).build() {\n static {\n __name(this, \"DeleteMetricFilterCommand\");\n }\n};\n\n// src/commands/DeleteQueryDefinitionCommand.ts\n\n\n\nvar DeleteQueryDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteQueryDefinition\", {}).n(\"CloudWatchLogsClient\", \"DeleteQueryDefinitionCommand\").f(void 0, void 0).ser(se_DeleteQueryDefinitionCommand).de(de_DeleteQueryDefinitionCommand).build() {\n static {\n __name(this, \"DeleteQueryDefinitionCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteResourcePolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeleteRetentionPolicyCommand.ts\n\n\n\nvar DeleteRetentionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteRetentionPolicy\", {}).n(\"CloudWatchLogsClient\", \"DeleteRetentionPolicyCommand\").f(void 0, void 0).ser(se_DeleteRetentionPolicyCommand).de(de_DeleteRetentionPolicyCommand).build() {\n static {\n __name(this, \"DeleteRetentionPolicyCommand\");\n }\n};\n\n// src/commands/DeleteSubscriptionFilterCommand.ts\n\n\n\nvar DeleteSubscriptionFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteSubscriptionFilter\", {}).n(\"CloudWatchLogsClient\", \"DeleteSubscriptionFilterCommand\").f(void 0, void 0).ser(se_DeleteSubscriptionFilterCommand).de(de_DeleteSubscriptionFilterCommand).build() {\n static {\n __name(this, \"DeleteSubscriptionFilterCommand\");\n }\n};\n\n// src/commands/DeleteTransformerCommand.ts\n\n\n\nvar DeleteTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DeleteTransformer\", {}).n(\"CloudWatchLogsClient\", \"DeleteTransformerCommand\").f(void 0, void 0).ser(se_DeleteTransformerCommand).de(de_DeleteTransformerCommand).build() {\n static {\n __name(this, \"DeleteTransformerCommand\");\n }\n};\n\n// src/commands/DescribeAccountPoliciesCommand.ts\n\n\n\nvar DescribeAccountPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeAccountPolicies\", {}).n(\"CloudWatchLogsClient\", \"DescribeAccountPoliciesCommand\").f(void 0, void 0).ser(se_DescribeAccountPoliciesCommand).de(de_DescribeAccountPoliciesCommand).build() {\n static {\n __name(this, \"DescribeAccountPoliciesCommand\");\n }\n};\n\n// src/commands/DescribeConfigurationTemplatesCommand.ts\n\n\n\nvar DescribeConfigurationTemplatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeConfigurationTemplates\", {}).n(\"CloudWatchLogsClient\", \"DescribeConfigurationTemplatesCommand\").f(void 0, void 0).ser(se_DescribeConfigurationTemplatesCommand).de(de_DescribeConfigurationTemplatesCommand).build() {\n static {\n __name(this, \"DescribeConfigurationTemplatesCommand\");\n }\n};\n\n// src/commands/DescribeDeliveriesCommand.ts\n\n\n\nvar DescribeDeliveriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDeliveries\", {}).n(\"CloudWatchLogsClient\", \"DescribeDeliveriesCommand\").f(void 0, void 0).ser(se_DescribeDeliveriesCommand).de(de_DescribeDeliveriesCommand).build() {\n static {\n __name(this, \"DescribeDeliveriesCommand\");\n }\n};\n\n// src/commands/DescribeDeliveryDestinationsCommand.ts\n\n\n\nvar DescribeDeliveryDestinationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDeliveryDestinations\", {}).n(\"CloudWatchLogsClient\", \"DescribeDeliveryDestinationsCommand\").f(void 0, void 0).ser(se_DescribeDeliveryDestinationsCommand).de(de_DescribeDeliveryDestinationsCommand).build() {\n static {\n __name(this, \"DescribeDeliveryDestinationsCommand\");\n }\n};\n\n// src/commands/DescribeDeliverySourcesCommand.ts\n\n\n\nvar DescribeDeliverySourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDeliverySources\", {}).n(\"CloudWatchLogsClient\", \"DescribeDeliverySourcesCommand\").f(void 0, void 0).ser(se_DescribeDeliverySourcesCommand).de(de_DescribeDeliverySourcesCommand).build() {\n static {\n __name(this, \"DescribeDeliverySourcesCommand\");\n }\n};\n\n// src/commands/DescribeDestinationsCommand.ts\n\n\n\nvar DescribeDestinationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeDestinations\", {}).n(\"CloudWatchLogsClient\", \"DescribeDestinationsCommand\").f(void 0, void 0).ser(se_DescribeDestinationsCommand).de(de_DescribeDestinationsCommand).build() {\n static {\n __name(this, \"DescribeDestinationsCommand\");\n }\n};\n\n// src/commands/DescribeExportTasksCommand.ts\n\n\n\nvar DescribeExportTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeExportTasks\", {}).n(\"CloudWatchLogsClient\", \"DescribeExportTasksCommand\").f(void 0, void 0).ser(se_DescribeExportTasksCommand).de(de_DescribeExportTasksCommand).build() {\n static {\n __name(this, \"DescribeExportTasksCommand\");\n }\n};\n\n// src/commands/DescribeFieldIndexesCommand.ts\n\n\n\nvar DescribeFieldIndexesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeFieldIndexes\", {}).n(\"CloudWatchLogsClient\", \"DescribeFieldIndexesCommand\").f(void 0, void 0).ser(se_DescribeFieldIndexesCommand).de(de_DescribeFieldIndexesCommand).build() {\n static {\n __name(this, \"DescribeFieldIndexesCommand\");\n }\n};\n\n// src/commands/DescribeIndexPoliciesCommand.ts\n\n\n\nvar DescribeIndexPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeIndexPolicies\", {}).n(\"CloudWatchLogsClient\", \"DescribeIndexPoliciesCommand\").f(void 0, void 0).ser(se_DescribeIndexPoliciesCommand).de(de_DescribeIndexPoliciesCommand).build() {\n static {\n __name(this, \"DescribeIndexPoliciesCommand\");\n }\n};\n\n// src/commands/DescribeLogGroupsCommand.ts\n\n\n\nvar DescribeLogGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeLogGroups\", {}).n(\"CloudWatchLogsClient\", \"DescribeLogGroupsCommand\").f(void 0, void 0).ser(se_DescribeLogGroupsCommand).de(de_DescribeLogGroupsCommand).build() {\n static {\n __name(this, \"DescribeLogGroupsCommand\");\n }\n};\n\n// src/commands/DescribeLogStreamsCommand.ts\n\n\n\nvar DescribeLogStreamsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeLogStreams\", {}).n(\"CloudWatchLogsClient\", \"DescribeLogStreamsCommand\").f(void 0, void 0).ser(se_DescribeLogStreamsCommand).de(de_DescribeLogStreamsCommand).build() {\n static {\n __name(this, \"DescribeLogStreamsCommand\");\n }\n};\n\n// src/commands/DescribeMetricFiltersCommand.ts\n\n\n\nvar DescribeMetricFiltersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeMetricFilters\", {}).n(\"CloudWatchLogsClient\", \"DescribeMetricFiltersCommand\").f(void 0, void 0).ser(se_DescribeMetricFiltersCommand).de(de_DescribeMetricFiltersCommand).build() {\n static {\n __name(this, \"DescribeMetricFiltersCommand\");\n }\n};\n\n// src/commands/DescribeQueriesCommand.ts\n\n\n\nvar DescribeQueriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeQueries\", {}).n(\"CloudWatchLogsClient\", \"DescribeQueriesCommand\").f(void 0, void 0).ser(se_DescribeQueriesCommand).de(de_DescribeQueriesCommand).build() {\n static {\n __name(this, \"DescribeQueriesCommand\");\n }\n};\n\n// src/commands/DescribeQueryDefinitionsCommand.ts\n\n\n\nvar DescribeQueryDefinitionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeQueryDefinitions\", {}).n(\"CloudWatchLogsClient\", \"DescribeQueryDefinitionsCommand\").f(void 0, void 0).ser(se_DescribeQueryDefinitionsCommand).de(de_DescribeQueryDefinitionsCommand).build() {\n static {\n __name(this, \"DescribeQueryDefinitionsCommand\");\n }\n};\n\n// src/commands/DescribeResourcePoliciesCommand.ts\n\n\n\nvar DescribeResourcePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeResourcePolicies\", {}).n(\"CloudWatchLogsClient\", \"DescribeResourcePoliciesCommand\").f(void 0, void 0).ser(se_DescribeResourcePoliciesCommand).de(de_DescribeResourcePoliciesCommand).build() {\n static {\n __name(this, \"DescribeResourcePoliciesCommand\");\n }\n};\n\n// src/commands/DescribeSubscriptionFiltersCommand.ts\n\n\n\nvar DescribeSubscriptionFiltersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DescribeSubscriptionFilters\", {}).n(\"CloudWatchLogsClient\", \"DescribeSubscriptionFiltersCommand\").f(void 0, void 0).ser(se_DescribeSubscriptionFiltersCommand).de(de_DescribeSubscriptionFiltersCommand).build() {\n static {\n __name(this, \"DescribeSubscriptionFiltersCommand\");\n }\n};\n\n// src/commands/DisassociateKmsKeyCommand.ts\n\n\n\nvar DisassociateKmsKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"DisassociateKmsKey\", {}).n(\"CloudWatchLogsClient\", \"DisassociateKmsKeyCommand\").f(void 0, void 0).ser(se_DisassociateKmsKeyCommand).de(de_DisassociateKmsKeyCommand).build() {\n static {\n __name(this, \"DisassociateKmsKeyCommand\");\n }\n};\n\n// src/commands/FilterLogEventsCommand.ts\n\n\n\nvar FilterLogEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"FilterLogEvents\", {}).n(\"CloudWatchLogsClient\", \"FilterLogEventsCommand\").f(void 0, void 0).ser(se_FilterLogEventsCommand).de(de_FilterLogEventsCommand).build() {\n static {\n __name(this, \"FilterLogEventsCommand\");\n }\n};\n\n// src/commands/GetDataProtectionPolicyCommand.ts\n\n\n\nvar GetDataProtectionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDataProtectionPolicy\", {}).n(\"CloudWatchLogsClient\", \"GetDataProtectionPolicyCommand\").f(void 0, void 0).ser(se_GetDataProtectionPolicyCommand).de(de_GetDataProtectionPolicyCommand).build() {\n static {\n __name(this, \"GetDataProtectionPolicyCommand\");\n }\n};\n\n// src/commands/GetDeliveryCommand.ts\n\n\n\nvar GetDeliveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDelivery\", {}).n(\"CloudWatchLogsClient\", \"GetDeliveryCommand\").f(void 0, void 0).ser(se_GetDeliveryCommand).de(de_GetDeliveryCommand).build() {\n static {\n __name(this, \"GetDeliveryCommand\");\n }\n};\n\n// src/commands/GetDeliveryDestinationCommand.ts\n\n\n\nvar GetDeliveryDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDeliveryDestination\", {}).n(\"CloudWatchLogsClient\", \"GetDeliveryDestinationCommand\").f(void 0, void 0).ser(se_GetDeliveryDestinationCommand).de(de_GetDeliveryDestinationCommand).build() {\n static {\n __name(this, \"GetDeliveryDestinationCommand\");\n }\n};\n\n// src/commands/GetDeliveryDestinationPolicyCommand.ts\n\n\n\nvar GetDeliveryDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDeliveryDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"GetDeliveryDestinationPolicyCommand\").f(void 0, void 0).ser(se_GetDeliveryDestinationPolicyCommand).de(de_GetDeliveryDestinationPolicyCommand).build() {\n static {\n __name(this, \"GetDeliveryDestinationPolicyCommand\");\n }\n};\n\n// src/commands/GetDeliverySourceCommand.ts\n\n\n\nvar GetDeliverySourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetDeliverySource\", {}).n(\"CloudWatchLogsClient\", \"GetDeliverySourceCommand\").f(void 0, void 0).ser(se_GetDeliverySourceCommand).de(de_GetDeliverySourceCommand).build() {\n static {\n __name(this, \"GetDeliverySourceCommand\");\n }\n};\n\n// src/commands/GetIntegrationCommand.ts\n\n\n\nvar GetIntegrationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetIntegration\", {}).n(\"CloudWatchLogsClient\", \"GetIntegrationCommand\").f(void 0, void 0).ser(se_GetIntegrationCommand).de(de_GetIntegrationCommand).build() {\n static {\n __name(this, \"GetIntegrationCommand\");\n }\n};\n\n// src/commands/GetLogAnomalyDetectorCommand.ts\n\n\n\nvar GetLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"GetLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_GetLogAnomalyDetectorCommand).de(de_GetLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"GetLogAnomalyDetectorCommand\");\n }\n};\n\n// src/commands/GetLogEventsCommand.ts\n\n\n\nvar GetLogEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogEvents\", {}).n(\"CloudWatchLogsClient\", \"GetLogEventsCommand\").f(void 0, void 0).ser(se_GetLogEventsCommand).de(de_GetLogEventsCommand).build() {\n static {\n __name(this, \"GetLogEventsCommand\");\n }\n};\n\n// src/commands/GetLogGroupFieldsCommand.ts\n\n\n\nvar GetLogGroupFieldsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogGroupFields\", {}).n(\"CloudWatchLogsClient\", \"GetLogGroupFieldsCommand\").f(void 0, void 0).ser(se_GetLogGroupFieldsCommand).de(de_GetLogGroupFieldsCommand).build() {\n static {\n __name(this, \"GetLogGroupFieldsCommand\");\n }\n};\n\n// src/commands/GetLogRecordCommand.ts\n\n\n\nvar GetLogRecordCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetLogRecord\", {}).n(\"CloudWatchLogsClient\", \"GetLogRecordCommand\").f(void 0, void 0).ser(se_GetLogRecordCommand).de(de_GetLogRecordCommand).build() {\n static {\n __name(this, \"GetLogRecordCommand\");\n }\n};\n\n// src/commands/GetQueryResultsCommand.ts\n\n\n\nvar GetQueryResultsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetQueryResults\", {}).n(\"CloudWatchLogsClient\", \"GetQueryResultsCommand\").f(void 0, void 0).ser(se_GetQueryResultsCommand).de(de_GetQueryResultsCommand).build() {\n static {\n __name(this, \"GetQueryResultsCommand\");\n }\n};\n\n// src/commands/GetTransformerCommand.ts\n\n\n\nvar GetTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"GetTransformer\", {}).n(\"CloudWatchLogsClient\", \"GetTransformerCommand\").f(void 0, void 0).ser(se_GetTransformerCommand).de(de_GetTransformerCommand).build() {\n static {\n __name(this, \"GetTransformerCommand\");\n }\n};\n\n// src/commands/ListAnomaliesCommand.ts\n\n\n\nvar ListAnomaliesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListAnomalies\", {}).n(\"CloudWatchLogsClient\", \"ListAnomaliesCommand\").f(void 0, void 0).ser(se_ListAnomaliesCommand).de(de_ListAnomaliesCommand).build() {\n static {\n __name(this, \"ListAnomaliesCommand\");\n }\n};\n\n// src/commands/ListIntegrationsCommand.ts\n\n\n\nvar ListIntegrationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListIntegrations\", {}).n(\"CloudWatchLogsClient\", \"ListIntegrationsCommand\").f(void 0, void 0).ser(se_ListIntegrationsCommand).de(de_ListIntegrationsCommand).build() {\n static {\n __name(this, \"ListIntegrationsCommand\");\n }\n};\n\n// src/commands/ListLogAnomalyDetectorsCommand.ts\n\n\n\nvar ListLogAnomalyDetectorsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListLogAnomalyDetectors\", {}).n(\"CloudWatchLogsClient\", \"ListLogAnomalyDetectorsCommand\").f(void 0, void 0).ser(se_ListLogAnomalyDetectorsCommand).de(de_ListLogAnomalyDetectorsCommand).build() {\n static {\n __name(this, \"ListLogAnomalyDetectorsCommand\");\n }\n};\n\n// src/commands/ListLogGroupsForQueryCommand.ts\n\n\n\nvar ListLogGroupsForQueryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListLogGroupsForQuery\", {}).n(\"CloudWatchLogsClient\", \"ListLogGroupsForQueryCommand\").f(void 0, void 0).ser(se_ListLogGroupsForQueryCommand).de(de_ListLogGroupsForQueryCommand).build() {\n static {\n __name(this, \"ListLogGroupsForQueryCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListTagsForResource\", {}).n(\"CloudWatchLogsClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTagsLogGroupCommand.ts\n\n\n\nvar ListTagsLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"ListTagsLogGroup\", {}).n(\"CloudWatchLogsClient\", \"ListTagsLogGroupCommand\").f(void 0, void 0).ser(se_ListTagsLogGroupCommand).de(de_ListTagsLogGroupCommand).build() {\n static {\n __name(this, \"ListTagsLogGroupCommand\");\n }\n};\n\n// src/commands/PutAccountPolicyCommand.ts\n\n\n\nvar PutAccountPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutAccountPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutAccountPolicyCommand\").f(void 0, void 0).ser(se_PutAccountPolicyCommand).de(de_PutAccountPolicyCommand).build() {\n static {\n __name(this, \"PutAccountPolicyCommand\");\n }\n};\n\n// src/commands/PutDataProtectionPolicyCommand.ts\n\n\n\nvar PutDataProtectionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDataProtectionPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutDataProtectionPolicyCommand\").f(void 0, void 0).ser(se_PutDataProtectionPolicyCommand).de(de_PutDataProtectionPolicyCommand).build() {\n static {\n __name(this, \"PutDataProtectionPolicyCommand\");\n }\n};\n\n// src/commands/PutDeliveryDestinationCommand.ts\n\n\n\nvar PutDeliveryDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDeliveryDestination\", {}).n(\"CloudWatchLogsClient\", \"PutDeliveryDestinationCommand\").f(void 0, void 0).ser(se_PutDeliveryDestinationCommand).de(de_PutDeliveryDestinationCommand).build() {\n static {\n __name(this, \"PutDeliveryDestinationCommand\");\n }\n};\n\n// src/commands/PutDeliveryDestinationPolicyCommand.ts\n\n\n\nvar PutDeliveryDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDeliveryDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutDeliveryDestinationPolicyCommand\").f(void 0, void 0).ser(se_PutDeliveryDestinationPolicyCommand).de(de_PutDeliveryDestinationPolicyCommand).build() {\n static {\n __name(this, \"PutDeliveryDestinationPolicyCommand\");\n }\n};\n\n// src/commands/PutDeliverySourceCommand.ts\n\n\n\nvar PutDeliverySourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDeliverySource\", {}).n(\"CloudWatchLogsClient\", \"PutDeliverySourceCommand\").f(void 0, void 0).ser(se_PutDeliverySourceCommand).de(de_PutDeliverySourceCommand).build() {\n static {\n __name(this, \"PutDeliverySourceCommand\");\n }\n};\n\n// src/commands/PutDestinationCommand.ts\n\n\n\nvar PutDestinationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDestination\", {}).n(\"CloudWatchLogsClient\", \"PutDestinationCommand\").f(void 0, void 0).ser(se_PutDestinationCommand).de(de_PutDestinationCommand).build() {\n static {\n __name(this, \"PutDestinationCommand\");\n }\n};\n\n// src/commands/PutDestinationPolicyCommand.ts\n\n\n\nvar PutDestinationPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutDestinationPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutDestinationPolicyCommand\").f(void 0, void 0).ser(se_PutDestinationPolicyCommand).de(de_PutDestinationPolicyCommand).build() {\n static {\n __name(this, \"PutDestinationPolicyCommand\");\n }\n};\n\n// src/commands/PutIndexPolicyCommand.ts\n\n\n\nvar PutIndexPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutIndexPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutIndexPolicyCommand\").f(void 0, void 0).ser(se_PutIndexPolicyCommand).de(de_PutIndexPolicyCommand).build() {\n static {\n __name(this, \"PutIndexPolicyCommand\");\n }\n};\n\n// src/commands/PutIntegrationCommand.ts\n\n\n\nvar PutIntegrationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutIntegration\", {}).n(\"CloudWatchLogsClient\", \"PutIntegrationCommand\").f(void 0, void 0).ser(se_PutIntegrationCommand).de(de_PutIntegrationCommand).build() {\n static {\n __name(this, \"PutIntegrationCommand\");\n }\n};\n\n// src/commands/PutLogEventsCommand.ts\n\n\n\nvar PutLogEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutLogEvents\", {}).n(\"CloudWatchLogsClient\", \"PutLogEventsCommand\").f(void 0, void 0).ser(se_PutLogEventsCommand).de(de_PutLogEventsCommand).build() {\n static {\n __name(this, \"PutLogEventsCommand\");\n }\n};\n\n// src/commands/PutMetricFilterCommand.ts\n\n\n\nvar PutMetricFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutMetricFilter\", {}).n(\"CloudWatchLogsClient\", \"PutMetricFilterCommand\").f(void 0, void 0).ser(se_PutMetricFilterCommand).de(de_PutMetricFilterCommand).build() {\n static {\n __name(this, \"PutMetricFilterCommand\");\n }\n};\n\n// src/commands/PutQueryDefinitionCommand.ts\n\n\n\nvar PutQueryDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutQueryDefinition\", {}).n(\"CloudWatchLogsClient\", \"PutQueryDefinitionCommand\").f(void 0, void 0).ser(se_PutQueryDefinitionCommand).de(de_PutQueryDefinitionCommand).build() {\n static {\n __name(this, \"PutQueryDefinitionCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutResourcePolicy\", {}).n(\"CloudWatchLogsClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/PutRetentionPolicyCommand.ts\n\n\n\nvar PutRetentionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutRetentionPolicy\", {}).n(\"CloudWatchLogsClient\", \"PutRetentionPolicyCommand\").f(void 0, void 0).ser(se_PutRetentionPolicyCommand).de(de_PutRetentionPolicyCommand).build() {\n static {\n __name(this, \"PutRetentionPolicyCommand\");\n }\n};\n\n// src/commands/PutSubscriptionFilterCommand.ts\n\n\n\nvar PutSubscriptionFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutSubscriptionFilter\", {}).n(\"CloudWatchLogsClient\", \"PutSubscriptionFilterCommand\").f(void 0, void 0).ser(se_PutSubscriptionFilterCommand).de(de_PutSubscriptionFilterCommand).build() {\n static {\n __name(this, \"PutSubscriptionFilterCommand\");\n }\n};\n\n// src/commands/PutTransformerCommand.ts\n\n\n\nvar PutTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"PutTransformer\", {}).n(\"CloudWatchLogsClient\", \"PutTransformerCommand\").f(void 0, void 0).ser(se_PutTransformerCommand).de(de_PutTransformerCommand).build() {\n static {\n __name(this, \"PutTransformerCommand\");\n }\n};\n\n// src/commands/StartLiveTailCommand.ts\n\n\n\nvar StartLiveTailCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"StartLiveTail\", {\n /**\n * @internal\n */\n eventStream: {\n output: true\n }\n}).n(\"CloudWatchLogsClient\", \"StartLiveTailCommand\").f(void 0, StartLiveTailResponseFilterSensitiveLog).ser(se_StartLiveTailCommand).de(de_StartLiveTailCommand).build() {\n static {\n __name(this, \"StartLiveTailCommand\");\n }\n};\n\n// src/commands/StartQueryCommand.ts\n\n\n\nvar StartQueryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"StartQuery\", {}).n(\"CloudWatchLogsClient\", \"StartQueryCommand\").f(void 0, void 0).ser(se_StartQueryCommand).de(de_StartQueryCommand).build() {\n static {\n __name(this, \"StartQueryCommand\");\n }\n};\n\n// src/commands/StopQueryCommand.ts\n\n\n\nvar StopQueryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"StopQuery\", {}).n(\"CloudWatchLogsClient\", \"StopQueryCommand\").f(void 0, void 0).ser(se_StopQueryCommand).de(de_StopQueryCommand).build() {\n static {\n __name(this, \"StopQueryCommand\");\n }\n};\n\n// src/commands/TagLogGroupCommand.ts\n\n\n\nvar TagLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TagLogGroup\", {}).n(\"CloudWatchLogsClient\", \"TagLogGroupCommand\").f(void 0, void 0).ser(se_TagLogGroupCommand).de(de_TagLogGroupCommand).build() {\n static {\n __name(this, \"TagLogGroupCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TagResource\", {}).n(\"CloudWatchLogsClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/TestMetricFilterCommand.ts\n\n\n\nvar TestMetricFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TestMetricFilter\", {}).n(\"CloudWatchLogsClient\", \"TestMetricFilterCommand\").f(void 0, void 0).ser(se_TestMetricFilterCommand).de(de_TestMetricFilterCommand).build() {\n static {\n __name(this, \"TestMetricFilterCommand\");\n }\n};\n\n// src/commands/TestTransformerCommand.ts\n\n\n\nvar TestTransformerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"TestTransformer\", {}).n(\"CloudWatchLogsClient\", \"TestTransformerCommand\").f(void 0, void 0).ser(se_TestTransformerCommand).de(de_TestTransformerCommand).build() {\n static {\n __name(this, \"TestTransformerCommand\");\n }\n};\n\n// src/commands/UntagLogGroupCommand.ts\n\n\n\nvar UntagLogGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UntagLogGroup\", {}).n(\"CloudWatchLogsClient\", \"UntagLogGroupCommand\").f(void 0, void 0).ser(se_UntagLogGroupCommand).de(de_UntagLogGroupCommand).build() {\n static {\n __name(this, \"UntagLogGroupCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UntagResource\", {}).n(\"CloudWatchLogsClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateAnomalyCommand.ts\n\n\n\nvar UpdateAnomalyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UpdateAnomaly\", {}).n(\"CloudWatchLogsClient\", \"UpdateAnomalyCommand\").f(void 0, void 0).ser(se_UpdateAnomalyCommand).de(de_UpdateAnomalyCommand).build() {\n static {\n __name(this, \"UpdateAnomalyCommand\");\n }\n};\n\n// src/commands/UpdateDeliveryConfigurationCommand.ts\n\n\n\nvar UpdateDeliveryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UpdateDeliveryConfiguration\", {}).n(\"CloudWatchLogsClient\", \"UpdateDeliveryConfigurationCommand\").f(void 0, void 0).ser(se_UpdateDeliveryConfigurationCommand).de(de_UpdateDeliveryConfigurationCommand).build() {\n static {\n __name(this, \"UpdateDeliveryConfigurationCommand\");\n }\n};\n\n// src/commands/UpdateLogAnomalyDetectorCommand.ts\n\n\n\nvar UpdateLogAnomalyDetectorCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"Logs_20140328\", \"UpdateLogAnomalyDetector\", {}).n(\"CloudWatchLogsClient\", \"UpdateLogAnomalyDetectorCommand\").f(void 0, void 0).ser(se_UpdateLogAnomalyDetectorCommand).de(de_UpdateLogAnomalyDetectorCommand).build() {\n static {\n __name(this, \"UpdateLogAnomalyDetectorCommand\");\n }\n};\n\n// src/CloudWatchLogs.ts\nvar commands = {\n AssociateKmsKeyCommand,\n CancelExportTaskCommand,\n CreateDeliveryCommand,\n CreateExportTaskCommand,\n CreateLogAnomalyDetectorCommand,\n CreateLogGroupCommand,\n CreateLogStreamCommand,\n DeleteAccountPolicyCommand,\n DeleteDataProtectionPolicyCommand,\n DeleteDeliveryCommand,\n DeleteDeliveryDestinationCommand,\n DeleteDeliveryDestinationPolicyCommand,\n DeleteDeliverySourceCommand,\n DeleteDestinationCommand,\n DeleteIndexPolicyCommand,\n DeleteIntegrationCommand,\n DeleteLogAnomalyDetectorCommand,\n DeleteLogGroupCommand,\n DeleteLogStreamCommand,\n DeleteMetricFilterCommand,\n DeleteQueryDefinitionCommand,\n DeleteResourcePolicyCommand,\n DeleteRetentionPolicyCommand,\n DeleteSubscriptionFilterCommand,\n DeleteTransformerCommand,\n DescribeAccountPoliciesCommand,\n DescribeConfigurationTemplatesCommand,\n DescribeDeliveriesCommand,\n DescribeDeliveryDestinationsCommand,\n DescribeDeliverySourcesCommand,\n DescribeDestinationsCommand,\n DescribeExportTasksCommand,\n DescribeFieldIndexesCommand,\n DescribeIndexPoliciesCommand,\n DescribeLogGroupsCommand,\n DescribeLogStreamsCommand,\n DescribeMetricFiltersCommand,\n DescribeQueriesCommand,\n DescribeQueryDefinitionsCommand,\n DescribeResourcePoliciesCommand,\n DescribeSubscriptionFiltersCommand,\n DisassociateKmsKeyCommand,\n FilterLogEventsCommand,\n GetDataProtectionPolicyCommand,\n GetDeliveryCommand,\n GetDeliveryDestinationCommand,\n GetDeliveryDestinationPolicyCommand,\n GetDeliverySourceCommand,\n GetIntegrationCommand,\n GetLogAnomalyDetectorCommand,\n GetLogEventsCommand,\n GetLogGroupFieldsCommand,\n GetLogRecordCommand,\n GetQueryResultsCommand,\n GetTransformerCommand,\n ListAnomaliesCommand,\n ListIntegrationsCommand,\n ListLogAnomalyDetectorsCommand,\n ListLogGroupsForQueryCommand,\n ListTagsForResourceCommand,\n ListTagsLogGroupCommand,\n PutAccountPolicyCommand,\n PutDataProtectionPolicyCommand,\n PutDeliveryDestinationCommand,\n PutDeliveryDestinationPolicyCommand,\n PutDeliverySourceCommand,\n PutDestinationCommand,\n PutDestinationPolicyCommand,\n PutIndexPolicyCommand,\n PutIntegrationCommand,\n PutLogEventsCommand,\n PutMetricFilterCommand,\n PutQueryDefinitionCommand,\n PutResourcePolicyCommand,\n PutRetentionPolicyCommand,\n PutSubscriptionFilterCommand,\n PutTransformerCommand,\n StartLiveTailCommand,\n StartQueryCommand,\n StopQueryCommand,\n TagLogGroupCommand,\n TagResourceCommand,\n TestMetricFilterCommand,\n TestTransformerCommand,\n UntagLogGroupCommand,\n UntagResourceCommand,\n UpdateAnomalyCommand,\n UpdateDeliveryConfigurationCommand,\n UpdateLogAnomalyDetectorCommand\n};\nvar CloudWatchLogs = class extends CloudWatchLogsClient {\n static {\n __name(this, \"CloudWatchLogs\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CloudWatchLogs);\n\n// src/pagination/DescribeConfigurationTemplatesPaginator.ts\n\nvar paginateDescribeConfigurationTemplates = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeConfigurationTemplatesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDeliveriesPaginator.ts\n\nvar paginateDescribeDeliveries = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDeliveriesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDeliveryDestinationsPaginator.ts\n\nvar paginateDescribeDeliveryDestinations = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDeliveryDestinationsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDeliverySourcesPaginator.ts\n\nvar paginateDescribeDeliverySources = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDeliverySourcesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeDestinationsPaginator.ts\n\nvar paginateDescribeDestinations = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeDestinationsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeLogGroupsPaginator.ts\n\nvar paginateDescribeLogGroups = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeLogGroupsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeLogStreamsPaginator.ts\n\nvar paginateDescribeLogStreams = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeLogStreamsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeMetricFiltersPaginator.ts\n\nvar paginateDescribeMetricFilters = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeMetricFiltersCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/DescribeSubscriptionFiltersPaginator.ts\n\nvar paginateDescribeSubscriptionFilters = (0, import_core.createPaginator)(CloudWatchLogsClient, DescribeSubscriptionFiltersCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/FilterLogEventsPaginator.ts\n\nvar paginateFilterLogEvents = (0, import_core.createPaginator)(CloudWatchLogsClient, FilterLogEventsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/GetLogEventsPaginator.ts\n\nvar paginateGetLogEvents = (0, import_core.createPaginator)(CloudWatchLogsClient, GetLogEventsCommand, \"nextToken\", \"nextForwardToken\", \"limit\");\n\n// src/pagination/ListAnomaliesPaginator.ts\n\nvar paginateListAnomalies = (0, import_core.createPaginator)(CloudWatchLogsClient, ListAnomaliesCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/ListLogAnomalyDetectorsPaginator.ts\n\nvar paginateListLogAnomalyDetectors = (0, import_core.createPaginator)(CloudWatchLogsClient, ListLogAnomalyDetectorsCommand, \"nextToken\", \"nextToken\", \"limit\");\n\n// src/pagination/ListLogGroupsForQueryPaginator.ts\n\nvar paginateListLogGroupsForQuery = (0, import_core.createPaginator)(CloudWatchLogsClient, ListLogGroupsForQueryCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CloudWatchLogsServiceException,\n __Client,\n CloudWatchLogsClient,\n CloudWatchLogs,\n $Command,\n AssociateKmsKeyCommand,\n CancelExportTaskCommand,\n CreateDeliveryCommand,\n CreateExportTaskCommand,\n CreateLogAnomalyDetectorCommand,\n CreateLogGroupCommand,\n CreateLogStreamCommand,\n DeleteAccountPolicyCommand,\n DeleteDataProtectionPolicyCommand,\n DeleteDeliveryCommand,\n DeleteDeliveryDestinationCommand,\n DeleteDeliveryDestinationPolicyCommand,\n DeleteDeliverySourceCommand,\n DeleteDestinationCommand,\n DeleteIndexPolicyCommand,\n DeleteIntegrationCommand,\n DeleteLogAnomalyDetectorCommand,\n DeleteLogGroupCommand,\n DeleteLogStreamCommand,\n DeleteMetricFilterCommand,\n DeleteQueryDefinitionCommand,\n DeleteResourcePolicyCommand,\n DeleteRetentionPolicyCommand,\n DeleteSubscriptionFilterCommand,\n DeleteTransformerCommand,\n DescribeAccountPoliciesCommand,\n DescribeConfigurationTemplatesCommand,\n DescribeDeliveriesCommand,\n DescribeDeliveryDestinationsCommand,\n DescribeDeliverySourcesCommand,\n DescribeDestinationsCommand,\n DescribeExportTasksCommand,\n DescribeFieldIndexesCommand,\n DescribeIndexPoliciesCommand,\n DescribeLogGroupsCommand,\n DescribeLogStreamsCommand,\n DescribeMetricFiltersCommand,\n DescribeQueriesCommand,\n DescribeQueryDefinitionsCommand,\n DescribeResourcePoliciesCommand,\n DescribeSubscriptionFiltersCommand,\n DisassociateKmsKeyCommand,\n FilterLogEventsCommand,\n GetDataProtectionPolicyCommand,\n GetDeliveryCommand,\n GetDeliveryDestinationCommand,\n GetDeliveryDestinationPolicyCommand,\n GetDeliverySourceCommand,\n GetIntegrationCommand,\n GetLogAnomalyDetectorCommand,\n GetLogEventsCommand,\n GetLogGroupFieldsCommand,\n GetLogRecordCommand,\n GetQueryResultsCommand,\n GetTransformerCommand,\n ListAnomaliesCommand,\n ListIntegrationsCommand,\n ListLogAnomalyDetectorsCommand,\n ListLogGroupsForQueryCommand,\n ListTagsForResourceCommand,\n ListTagsLogGroupCommand,\n PutAccountPolicyCommand,\n PutDataProtectionPolicyCommand,\n PutDeliveryDestinationCommand,\n PutDeliveryDestinationPolicyCommand,\n PutDeliverySourceCommand,\n PutDestinationCommand,\n PutDestinationPolicyCommand,\n PutIndexPolicyCommand,\n PutIntegrationCommand,\n PutLogEventsCommand,\n PutMetricFilterCommand,\n PutQueryDefinitionCommand,\n PutResourcePolicyCommand,\n PutRetentionPolicyCommand,\n PutSubscriptionFilterCommand,\n PutTransformerCommand,\n StartLiveTailCommand,\n StartQueryCommand,\n StopQueryCommand,\n TagLogGroupCommand,\n TagResourceCommand,\n TestMetricFilterCommand,\n TestTransformerCommand,\n UntagLogGroupCommand,\n UntagResourceCommand,\n UpdateAnomalyCommand,\n UpdateDeliveryConfigurationCommand,\n UpdateLogAnomalyDetectorCommand,\n paginateDescribeConfigurationTemplates,\n paginateDescribeDeliveries,\n paginateDescribeDeliveryDestinations,\n paginateDescribeDeliverySources,\n paginateDescribeDestinations,\n paginateDescribeLogGroups,\n paginateDescribeLogStreams,\n paginateDescribeMetricFilters,\n paginateDescribeSubscriptionFilters,\n paginateFilterLogEvents,\n paginateGetLogEvents,\n paginateListAnomalies,\n paginateListLogAnomalyDetectors,\n paginateListLogGroupsForQuery,\n AccessDeniedException,\n PolicyType,\n Scope,\n State,\n AnomalyDetectorStatus,\n EvaluationFrequency,\n InvalidParameterException,\n OperationAbortedException,\n ResourceNotFoundException,\n ServiceUnavailableException,\n InvalidOperationException,\n OutputFormat,\n DeliveryDestinationType,\n ConflictException,\n ServiceQuotaExceededException,\n ThrottlingException,\n ValidationException,\n LimitExceededException,\n ResourceAlreadyExistsException,\n LogGroupClass,\n DataAlreadyAcceptedException,\n DataProtectionStatus,\n ExportTaskStatusCode,\n IndexSource,\n InheritedProperty,\n OrderBy,\n StandardUnit,\n QueryLanguage,\n QueryStatus,\n Distribution,\n EntityRejectionErrorType,\n FlattenedElement,\n OpenSearchResourceStatusType,\n IntegrationDetails,\n IntegrationStatus,\n IntegrationType,\n Type,\n InvalidSequenceTokenException,\n SuppressionState,\n ResourceConfig,\n UnrecognizedClientException,\n SessionStreamingException,\n SessionTimeoutException,\n StartLiveTailResponseStream,\n MalformedQueryException,\n TooManyTagsException,\n SuppressionUnit,\n SuppressionType,\n StartLiveTailResponseStreamFilterSensitiveLog,\n StartLiveTailResponseFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst eventstream_serde_node_1 = require(\"@smithy/eventstream-serde-node\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventstream_serde_node_1.eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-03-28\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCloudWatchLogsHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"CloudWatch Logs\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCodeBuildHttpAuthSchemeProvider = exports.defaultCodeBuildHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCodeBuildHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCodeBuildHttpAuthSchemeParametersProvider = defaultCodeBuildHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"codebuild\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultCodeBuildHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCodeBuildHttpAuthSchemeProvider = defaultCodeBuildHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://codebuild-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://codebuild-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://codebuild.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://codebuild.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccountLimitExceededException: () => AccountLimitExceededException,\n AccountSuspendedException: () => AccountSuspendedException,\n ArtifactNamespace: () => ArtifactNamespace,\n ArtifactPackaging: () => ArtifactPackaging,\n ArtifactsType: () => ArtifactsType,\n AuthType: () => AuthType,\n BatchDeleteBuildsCommand: () => BatchDeleteBuildsCommand,\n BatchGetBuildBatchesCommand: () => BatchGetBuildBatchesCommand,\n BatchGetBuildsCommand: () => BatchGetBuildsCommand,\n BatchGetCommandExecutionsCommand: () => BatchGetCommandExecutionsCommand,\n BatchGetCommandExecutionsOutputFilterSensitiveLog: () => BatchGetCommandExecutionsOutputFilterSensitiveLog,\n BatchGetFleetsCommand: () => BatchGetFleetsCommand,\n BatchGetProjectsCommand: () => BatchGetProjectsCommand,\n BatchGetReportGroupsCommand: () => BatchGetReportGroupsCommand,\n BatchGetReportsCommand: () => BatchGetReportsCommand,\n BatchGetSandboxesCommand: () => BatchGetSandboxesCommand,\n BatchReportModeType: () => BatchReportModeType,\n BucketOwnerAccess: () => BucketOwnerAccess,\n BuildBatchPhaseType: () => BuildBatchPhaseType,\n BuildPhaseType: () => BuildPhaseType,\n CacheMode: () => CacheMode,\n CacheType: () => CacheType,\n CodeBuild: () => CodeBuild,\n CodeBuildClient: () => CodeBuildClient,\n CodeBuildServiceException: () => CodeBuildServiceException,\n CommandExecutionFilterSensitiveLog: () => CommandExecutionFilterSensitiveLog,\n CommandType: () => CommandType,\n ComputeType: () => ComputeType,\n CreateFleetCommand: () => CreateFleetCommand,\n CreateProjectCommand: () => CreateProjectCommand,\n CreateReportGroupCommand: () => CreateReportGroupCommand,\n CreateWebhookCommand: () => CreateWebhookCommand,\n CredentialProviderType: () => CredentialProviderType,\n DeleteBuildBatchCommand: () => DeleteBuildBatchCommand,\n DeleteFleetCommand: () => DeleteFleetCommand,\n DeleteProjectCommand: () => DeleteProjectCommand,\n DeleteReportCommand: () => DeleteReportCommand,\n DeleteReportGroupCommand: () => DeleteReportGroupCommand,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeleteSourceCredentialsCommand: () => DeleteSourceCredentialsCommand,\n DeleteWebhookCommand: () => DeleteWebhookCommand,\n DescribeCodeCoveragesCommand: () => DescribeCodeCoveragesCommand,\n DescribeTestCasesCommand: () => DescribeTestCasesCommand,\n EnvironmentType: () => EnvironmentType,\n EnvironmentVariableType: () => EnvironmentVariableType,\n FileSystemType: () => FileSystemType,\n FleetContextCode: () => FleetContextCode,\n FleetOverflowBehavior: () => FleetOverflowBehavior,\n FleetProxyRuleBehavior: () => FleetProxyRuleBehavior,\n FleetProxyRuleEffectType: () => FleetProxyRuleEffectType,\n FleetProxyRuleType: () => FleetProxyRuleType,\n FleetScalingMetricType: () => FleetScalingMetricType,\n FleetScalingType: () => FleetScalingType,\n FleetSortByType: () => FleetSortByType,\n FleetStatusCode: () => FleetStatusCode,\n GetReportGroupTrendCommand: () => GetReportGroupTrendCommand,\n GetResourcePolicyCommand: () => GetResourcePolicyCommand,\n ImagePullCredentialsType: () => ImagePullCredentialsType,\n ImportSourceCredentialsCommand: () => ImportSourceCredentialsCommand,\n ImportSourceCredentialsInputFilterSensitiveLog: () => ImportSourceCredentialsInputFilterSensitiveLog,\n InvalidInputException: () => InvalidInputException,\n InvalidateProjectCacheCommand: () => InvalidateProjectCacheCommand,\n LanguageType: () => LanguageType,\n ListBuildBatchesCommand: () => ListBuildBatchesCommand,\n ListBuildBatchesForProjectCommand: () => ListBuildBatchesForProjectCommand,\n ListBuildsCommand: () => ListBuildsCommand,\n ListBuildsForProjectCommand: () => ListBuildsForProjectCommand,\n ListCommandExecutionsForSandboxCommand: () => ListCommandExecutionsForSandboxCommand,\n ListCommandExecutionsForSandboxInputFilterSensitiveLog: () => ListCommandExecutionsForSandboxInputFilterSensitiveLog,\n ListCommandExecutionsForSandboxOutputFilterSensitiveLog: () => ListCommandExecutionsForSandboxOutputFilterSensitiveLog,\n ListCuratedEnvironmentImagesCommand: () => ListCuratedEnvironmentImagesCommand,\n ListFleetsCommand: () => ListFleetsCommand,\n ListFleetsInputFilterSensitiveLog: () => ListFleetsInputFilterSensitiveLog,\n ListProjectsCommand: () => ListProjectsCommand,\n ListReportGroupsCommand: () => ListReportGroupsCommand,\n ListReportsCommand: () => ListReportsCommand,\n ListReportsForReportGroupCommand: () => ListReportsForReportGroupCommand,\n ListSandboxesCommand: () => ListSandboxesCommand,\n ListSandboxesForProjectCommand: () => ListSandboxesForProjectCommand,\n ListSandboxesForProjectInputFilterSensitiveLog: () => ListSandboxesForProjectInputFilterSensitiveLog,\n ListSharedProjectsCommand: () => ListSharedProjectsCommand,\n ListSharedReportGroupsCommand: () => ListSharedReportGroupsCommand,\n ListSourceCredentialsCommand: () => ListSourceCredentialsCommand,\n LogsConfigStatusType: () => LogsConfigStatusType,\n MachineType: () => MachineType,\n OAuthProviderException: () => OAuthProviderException,\n PlatformType: () => PlatformType,\n ProjectSortByType: () => ProjectSortByType,\n ProjectVisibilityType: () => ProjectVisibilityType,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n ReportCodeCoverageSortByType: () => ReportCodeCoverageSortByType,\n ReportExportConfigType: () => ReportExportConfigType,\n ReportGroupSortByType: () => ReportGroupSortByType,\n ReportGroupStatusType: () => ReportGroupStatusType,\n ReportGroupTrendFieldType: () => ReportGroupTrendFieldType,\n ReportPackagingType: () => ReportPackagingType,\n ReportStatusType: () => ReportStatusType,\n ReportType: () => ReportType,\n ResourceAlreadyExistsException: () => ResourceAlreadyExistsException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RetryBuildBatchCommand: () => RetryBuildBatchCommand,\n RetryBuildBatchType: () => RetryBuildBatchType,\n RetryBuildCommand: () => RetryBuildCommand,\n ServerType: () => ServerType,\n SharedResourceSortByType: () => SharedResourceSortByType,\n SortOrderType: () => SortOrderType,\n SourceAuthType: () => SourceAuthType,\n SourceType: () => SourceType,\n StartBuildBatchCommand: () => StartBuildBatchCommand,\n StartBuildCommand: () => StartBuildCommand,\n StartCommandExecutionCommand: () => StartCommandExecutionCommand,\n StartCommandExecutionInputFilterSensitiveLog: () => StartCommandExecutionInputFilterSensitiveLog,\n StartCommandExecutionOutputFilterSensitiveLog: () => StartCommandExecutionOutputFilterSensitiveLog,\n StartSandboxCommand: () => StartSandboxCommand,\n StartSandboxConnectionCommand: () => StartSandboxConnectionCommand,\n StartSandboxInputFilterSensitiveLog: () => StartSandboxInputFilterSensitiveLog,\n StatusType: () => StatusType,\n StopBuildBatchCommand: () => StopBuildBatchCommand,\n StopBuildCommand: () => StopBuildCommand,\n StopSandboxCommand: () => StopSandboxCommand,\n UpdateFleetCommand: () => UpdateFleetCommand,\n UpdateProjectCommand: () => UpdateProjectCommand,\n UpdateProjectVisibilityCommand: () => UpdateProjectVisibilityCommand,\n UpdateReportGroupCommand: () => UpdateReportGroupCommand,\n UpdateWebhookCommand: () => UpdateWebhookCommand,\n WebhookBuildType: () => WebhookBuildType,\n WebhookFilterType: () => WebhookFilterType,\n WebhookScopeType: () => WebhookScopeType,\n WebhookStatus: () => WebhookStatus,\n __Client: () => import_smithy_client.Client,\n paginateDescribeCodeCoverages: () => paginateDescribeCodeCoverages,\n paginateDescribeTestCases: () => paginateDescribeTestCases,\n paginateListBuildBatches: () => paginateListBuildBatches,\n paginateListBuildBatchesForProject: () => paginateListBuildBatchesForProject,\n paginateListBuilds: () => paginateListBuilds,\n paginateListBuildsForProject: () => paginateListBuildsForProject,\n paginateListCommandExecutionsForSandbox: () => paginateListCommandExecutionsForSandbox,\n paginateListFleets: () => paginateListFleets,\n paginateListProjects: () => paginateListProjects,\n paginateListReportGroups: () => paginateListReportGroups,\n paginateListReports: () => paginateListReports,\n paginateListReportsForReportGroup: () => paginateListReportsForReportGroup,\n paginateListSandboxes: () => paginateListSandboxes,\n paginateListSandboxesForProject: () => paginateListSandboxesForProject,\n paginateListSharedProjects: () => paginateListSharedProjects,\n paginateListSharedReportGroups: () => paginateListSharedReportGroups\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CodeBuildClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"codebuild\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CodeBuildClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CodeBuildClient.ts\nvar CodeBuildClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CodeBuildClient\");\n }\n /**\n * The resolved configuration of CodeBuildClient class. This is resolved and normalized from the {@link CodeBuildClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCodeBuildHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CodeBuild.ts\n\n\n// src/commands/BatchDeleteBuildsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/CodeBuildServiceException.ts\n\nvar CodeBuildServiceException = class _CodeBuildServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CodeBuildServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CodeBuildServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AccountLimitExceededException = class _AccountLimitExceededException extends CodeBuildServiceException {\n static {\n __name(this, \"AccountLimitExceededException\");\n }\n name = \"AccountLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccountLimitExceededException.prototype);\n }\n};\nvar AccountSuspendedException = class _AccountSuspendedException extends CodeBuildServiceException {\n static {\n __name(this, \"AccountSuspendedException\");\n }\n name = \"AccountSuspendedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccountSuspendedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccountSuspendedException.prototype);\n }\n};\nvar ArtifactNamespace = {\n BUILD_ID: \"BUILD_ID\",\n NONE: \"NONE\"\n};\nvar ArtifactPackaging = {\n NONE: \"NONE\",\n ZIP: \"ZIP\"\n};\nvar ArtifactsType = {\n CODEPIPELINE: \"CODEPIPELINE\",\n NO_ARTIFACTS: \"NO_ARTIFACTS\",\n S3: \"S3\"\n};\nvar AuthType = {\n BASIC_AUTH: \"BASIC_AUTH\",\n CODECONNECTIONS: \"CODECONNECTIONS\",\n OAUTH: \"OAUTH\",\n PERSONAL_ACCESS_TOKEN: \"PERSONAL_ACCESS_TOKEN\",\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar InvalidInputException = class _InvalidInputException extends CodeBuildServiceException {\n static {\n __name(this, \"InvalidInputException\");\n }\n name = \"InvalidInputException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInputException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInputException.prototype);\n }\n};\nvar BucketOwnerAccess = {\n FULL: \"FULL\",\n NONE: \"NONE\",\n READ_ONLY: \"READ_ONLY\"\n};\nvar BatchReportModeType = {\n REPORT_AGGREGATED_BATCH: \"REPORT_AGGREGATED_BATCH\",\n REPORT_INDIVIDUAL_BUILDS: \"REPORT_INDIVIDUAL_BUILDS\"\n};\nvar StatusType = {\n FAILED: \"FAILED\",\n FAULT: \"FAULT\",\n IN_PROGRESS: \"IN_PROGRESS\",\n STOPPED: \"STOPPED\",\n SUCCEEDED: \"SUCCEEDED\",\n TIMED_OUT: \"TIMED_OUT\"\n};\nvar CacheMode = {\n LOCAL_CUSTOM_CACHE: \"LOCAL_CUSTOM_CACHE\",\n LOCAL_DOCKER_LAYER_CACHE: \"LOCAL_DOCKER_LAYER_CACHE\",\n LOCAL_SOURCE_CACHE: \"LOCAL_SOURCE_CACHE\"\n};\nvar CacheType = {\n LOCAL: \"LOCAL\",\n NO_CACHE: \"NO_CACHE\",\n S3: \"S3\"\n};\nvar MachineType = {\n GENERAL: \"GENERAL\",\n NVME: \"NVME\"\n};\nvar ComputeType = {\n ATTRIBUTE_BASED_COMPUTE: \"ATTRIBUTE_BASED_COMPUTE\",\n BUILD_GENERAL1_2XLARGE: \"BUILD_GENERAL1_2XLARGE\",\n BUILD_GENERAL1_LARGE: \"BUILD_GENERAL1_LARGE\",\n BUILD_GENERAL1_MEDIUM: \"BUILD_GENERAL1_MEDIUM\",\n BUILD_GENERAL1_SMALL: \"BUILD_GENERAL1_SMALL\",\n BUILD_GENERAL1_XLARGE: \"BUILD_GENERAL1_XLARGE\",\n BUILD_LAMBDA_10GB: \"BUILD_LAMBDA_10GB\",\n BUILD_LAMBDA_1GB: \"BUILD_LAMBDA_1GB\",\n BUILD_LAMBDA_2GB: \"BUILD_LAMBDA_2GB\",\n BUILD_LAMBDA_4GB: \"BUILD_LAMBDA_4GB\",\n BUILD_LAMBDA_8GB: \"BUILD_LAMBDA_8GB\",\n CUSTOM_INSTANCE_TYPE: \"CUSTOM_INSTANCE_TYPE\"\n};\nvar EnvironmentVariableType = {\n PARAMETER_STORE: \"PARAMETER_STORE\",\n PLAINTEXT: \"PLAINTEXT\",\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar ImagePullCredentialsType = {\n CODEBUILD: \"CODEBUILD\",\n SERVICE_ROLE: \"SERVICE_ROLE\"\n};\nvar CredentialProviderType = {\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar EnvironmentType = {\n ARM_CONTAINER: \"ARM_CONTAINER\",\n ARM_EC2: \"ARM_EC2\",\n ARM_LAMBDA_CONTAINER: \"ARM_LAMBDA_CONTAINER\",\n LINUX_CONTAINER: \"LINUX_CONTAINER\",\n LINUX_EC2: \"LINUX_EC2\",\n LINUX_GPU_CONTAINER: \"LINUX_GPU_CONTAINER\",\n LINUX_LAMBDA_CONTAINER: \"LINUX_LAMBDA_CONTAINER\",\n MAC_ARM: \"MAC_ARM\",\n WINDOWS_CONTAINER: \"WINDOWS_CONTAINER\",\n WINDOWS_EC2: \"WINDOWS_EC2\",\n WINDOWS_SERVER_2019_CONTAINER: \"WINDOWS_SERVER_2019_CONTAINER\",\n WINDOWS_SERVER_2022_CONTAINER: \"WINDOWS_SERVER_2022_CONTAINER\"\n};\nvar FileSystemType = {\n EFS: \"EFS\"\n};\nvar LogsConfigStatusType = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar BuildBatchPhaseType = {\n COMBINE_ARTIFACTS: \"COMBINE_ARTIFACTS\",\n DOWNLOAD_BATCHSPEC: \"DOWNLOAD_BATCHSPEC\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n STOPPED: \"STOPPED\",\n SUBMITTED: \"SUBMITTED\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar SourceAuthType = {\n CODECONNECTIONS: \"CODECONNECTIONS\",\n OAUTH: \"OAUTH\",\n SECRETS_MANAGER: \"SECRETS_MANAGER\"\n};\nvar SourceType = {\n BITBUCKET: \"BITBUCKET\",\n CODECOMMIT: \"CODECOMMIT\",\n CODEPIPELINE: \"CODEPIPELINE\",\n GITHUB: \"GITHUB\",\n GITHUB_ENTERPRISE: \"GITHUB_ENTERPRISE\",\n GITLAB: \"GITLAB\",\n GITLAB_SELF_MANAGED: \"GITLAB_SELF_MANAGED\",\n NO_SOURCE: \"NO_SOURCE\",\n S3: \"S3\"\n};\nvar BuildPhaseType = {\n BUILD: \"BUILD\",\n COMPLETED: \"COMPLETED\",\n DOWNLOAD_SOURCE: \"DOWNLOAD_SOURCE\",\n FINALIZING: \"FINALIZING\",\n INSTALL: \"INSTALL\",\n POST_BUILD: \"POST_BUILD\",\n PRE_BUILD: \"PRE_BUILD\",\n PROVISIONING: \"PROVISIONING\",\n QUEUED: \"QUEUED\",\n SUBMITTED: \"SUBMITTED\",\n UPLOAD_ARTIFACTS: \"UPLOAD_ARTIFACTS\"\n};\nvar CommandType = {\n SHELL: \"SHELL\"\n};\nvar FleetOverflowBehavior = {\n ON_DEMAND: \"ON_DEMAND\",\n QUEUE: \"QUEUE\"\n};\nvar FleetProxyRuleBehavior = {\n ALLOW_ALL: \"ALLOW_ALL\",\n DENY_ALL: \"DENY_ALL\"\n};\nvar FleetProxyRuleEffectType = {\n ALLOW: \"ALLOW\",\n DENY: \"DENY\"\n};\nvar FleetProxyRuleType = {\n DOMAIN: \"DOMAIN\",\n IP: \"IP\"\n};\nvar FleetScalingType = {\n TARGET_TRACKING_SCALING: \"TARGET_TRACKING_SCALING\"\n};\nvar FleetScalingMetricType = {\n FLEET_UTILIZATION_RATE: \"FLEET_UTILIZATION_RATE\"\n};\nvar FleetContextCode = {\n ACTION_REQUIRED: \"ACTION_REQUIRED\",\n CREATE_FAILED: \"CREATE_FAILED\",\n INSUFFICIENT_CAPACITY: \"INSUFFICIENT_CAPACITY\",\n PENDING_DELETION: \"PENDING_DELETION\",\n UPDATE_FAILED: \"UPDATE_FAILED\"\n};\nvar FleetStatusCode = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n PENDING_DELETION: \"PENDING_DELETION\",\n ROTATING: \"ROTATING\",\n UPDATE_ROLLBACK_FAILED: \"UPDATE_ROLLBACK_FAILED\",\n UPDATING: \"UPDATING\"\n};\nvar ProjectVisibilityType = {\n PRIVATE: \"PRIVATE\",\n PUBLIC_READ: \"PUBLIC_READ\"\n};\nvar WebhookBuildType = {\n BUILD: \"BUILD\",\n BUILD_BATCH: \"BUILD_BATCH\",\n RUNNER_BUILDKITE_BUILD: \"RUNNER_BUILDKITE_BUILD\"\n};\nvar WebhookFilterType = {\n ACTOR_ACCOUNT_ID: \"ACTOR_ACCOUNT_ID\",\n BASE_REF: \"BASE_REF\",\n COMMIT_MESSAGE: \"COMMIT_MESSAGE\",\n EVENT: \"EVENT\",\n FILE_PATH: \"FILE_PATH\",\n HEAD_REF: \"HEAD_REF\",\n ORGANIZATION_NAME: \"ORGANIZATION_NAME\",\n RELEASE_NAME: \"RELEASE_NAME\",\n REPOSITORY_NAME: \"REPOSITORY_NAME\",\n TAG_NAME: \"TAG_NAME\",\n WORKFLOW_NAME: \"WORKFLOW_NAME\"\n};\nvar WebhookScopeType = {\n GITHUB_GLOBAL: \"GITHUB_GLOBAL\",\n GITHUB_ORGANIZATION: \"GITHUB_ORGANIZATION\",\n GITLAB_GROUP: \"GITLAB_GROUP\"\n};\nvar WebhookStatus = {\n ACTIVE: \"ACTIVE\",\n CREATE_FAILED: \"CREATE_FAILED\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\"\n};\nvar ReportExportConfigType = {\n NO_EXPORT: \"NO_EXPORT\",\n S3: \"S3\"\n};\nvar ReportPackagingType = {\n NONE: \"NONE\",\n ZIP: \"ZIP\"\n};\nvar ReportGroupStatusType = {\n ACTIVE: \"ACTIVE\",\n DELETING: \"DELETING\"\n};\nvar ReportType = {\n CODE_COVERAGE: \"CODE_COVERAGE\",\n TEST: \"TEST\"\n};\nvar ReportStatusType = {\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n GENERATING: \"GENERATING\",\n INCOMPLETE: \"INCOMPLETE\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar ResourceAlreadyExistsException = class _ResourceAlreadyExistsException extends CodeBuildServiceException {\n static {\n __name(this, \"ResourceAlreadyExistsException\");\n }\n name = \"ResourceAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceAlreadyExistsException.prototype);\n }\n};\nvar OAuthProviderException = class _OAuthProviderException extends CodeBuildServiceException {\n static {\n __name(this, \"OAuthProviderException\");\n }\n name = \"OAuthProviderException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OAuthProviderException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OAuthProviderException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CodeBuildServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ReportCodeCoverageSortByType = {\n FILE_PATH: \"FILE_PATH\",\n LINE_COVERAGE_PERCENTAGE: \"LINE_COVERAGE_PERCENTAGE\"\n};\nvar SortOrderType = {\n ASCENDING: \"ASCENDING\",\n DESCENDING: \"DESCENDING\"\n};\nvar ReportGroupTrendFieldType = {\n BRANCHES_COVERED: \"BRANCHES_COVERED\",\n BRANCHES_MISSED: \"BRANCHES_MISSED\",\n BRANCH_COVERAGE: \"BRANCH_COVERAGE\",\n DURATION: \"DURATION\",\n LINES_COVERED: \"LINES_COVERED\",\n LINES_MISSED: \"LINES_MISSED\",\n LINE_COVERAGE: \"LINE_COVERAGE\",\n PASS_RATE: \"PASS_RATE\",\n TOTAL: \"TOTAL\"\n};\nvar ServerType = {\n BITBUCKET: \"BITBUCKET\",\n GITHUB: \"GITHUB\",\n GITHUB_ENTERPRISE: \"GITHUB_ENTERPRISE\",\n GITLAB: \"GITLAB\",\n GITLAB_SELF_MANAGED: \"GITLAB_SELF_MANAGED\"\n};\nvar LanguageType = {\n ANDROID: \"ANDROID\",\n BASE: \"BASE\",\n DOCKER: \"DOCKER\",\n DOTNET: \"DOTNET\",\n GOLANG: \"GOLANG\",\n JAVA: \"JAVA\",\n NODE_JS: \"NODE_JS\",\n PHP: \"PHP\",\n PYTHON: \"PYTHON\",\n RUBY: \"RUBY\"\n};\nvar PlatformType = {\n AMAZON_LINUX: \"AMAZON_LINUX\",\n DEBIAN: \"DEBIAN\",\n UBUNTU: \"UBUNTU\",\n WINDOWS_SERVER: \"WINDOWS_SERVER\"\n};\nvar FleetSortByType = {\n CREATED_TIME: \"CREATED_TIME\",\n LAST_MODIFIED_TIME: \"LAST_MODIFIED_TIME\",\n NAME: \"NAME\"\n};\nvar ProjectSortByType = {\n CREATED_TIME: \"CREATED_TIME\",\n LAST_MODIFIED_TIME: \"LAST_MODIFIED_TIME\",\n NAME: \"NAME\"\n};\nvar ReportGroupSortByType = {\n CREATED_TIME: \"CREATED_TIME\",\n LAST_MODIFIED_TIME: \"LAST_MODIFIED_TIME\",\n NAME: \"NAME\"\n};\nvar SharedResourceSortByType = {\n ARN: \"ARN\",\n MODIFIED_TIME: \"MODIFIED_TIME\"\n};\nvar RetryBuildBatchType = {\n RETRY_ALL_BUILDS: \"RETRY_ALL_BUILDS\",\n RETRY_FAILED_BUILDS: \"RETRY_FAILED_BUILDS\"\n};\nvar CommandExecutionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.command && { command: import_smithy_client.SENSITIVE_STRING },\n ...obj.standardOutputContent && { standardOutputContent: import_smithy_client.SENSITIVE_STRING },\n ...obj.standardErrContent && { standardErrContent: import_smithy_client.SENSITIVE_STRING }\n}), \"CommandExecutionFilterSensitiveLog\");\nvar BatchGetCommandExecutionsOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.commandExecutions && {\n commandExecutions: obj.commandExecutions.map((item) => CommandExecutionFilterSensitiveLog(item))\n }\n}), \"BatchGetCommandExecutionsOutputFilterSensitiveLog\");\nvar ImportSourceCredentialsInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.token && { token: import_smithy_client.SENSITIVE_STRING }\n}), \"ImportSourceCredentialsInputFilterSensitiveLog\");\nvar ListCommandExecutionsForSandboxInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.nextToken && { nextToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListCommandExecutionsForSandboxInputFilterSensitiveLog\");\nvar ListCommandExecutionsForSandboxOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.commandExecutions && {\n commandExecutions: obj.commandExecutions.map((item) => CommandExecutionFilterSensitiveLog(item))\n }\n}), \"ListCommandExecutionsForSandboxOutputFilterSensitiveLog\");\nvar ListFleetsInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.nextToken && { nextToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListFleetsInputFilterSensitiveLog\");\nvar ListSandboxesForProjectInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.nextToken && { nextToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListSandboxesForProjectInputFilterSensitiveLog\");\nvar StartCommandExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.command && { command: import_smithy_client.SENSITIVE_STRING }\n}), \"StartCommandExecutionInputFilterSensitiveLog\");\nvar StartCommandExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.commandExecution && { commandExecution: CommandExecutionFilterSensitiveLog(obj.commandExecution) }\n}), \"StartCommandExecutionOutputFilterSensitiveLog\");\nvar StartSandboxInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.idempotencyToken && { idempotencyToken: import_smithy_client.SENSITIVE_STRING }\n}), \"StartSandboxInputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_BatchDeleteBuildsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchDeleteBuilds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchDeleteBuildsCommand\");\nvar se_BatchGetBuildBatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetBuildBatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetBuildBatchesCommand\");\nvar se_BatchGetBuildsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetBuilds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetBuildsCommand\");\nvar se_BatchGetCommandExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetCommandExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetCommandExecutionsCommand\");\nvar se_BatchGetFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetFleets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetFleetsCommand\");\nvar se_BatchGetProjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetProjects\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetProjectsCommand\");\nvar se_BatchGetReportGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetReportGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetReportGroupsCommand\");\nvar se_BatchGetReportsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetReports\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetReportsCommand\");\nvar se_BatchGetSandboxesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetSandboxes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetSandboxesCommand\");\nvar se_CreateFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateFleet\");\n let body;\n body = JSON.stringify(se_CreateFleetInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFleetCommand\");\nvar se_CreateProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateProjectCommand\");\nvar se_CreateReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateReportGroupCommand\");\nvar se_CreateWebhookCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateWebhook\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateWebhookCommand\");\nvar se_DeleteBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteBuildBatchCommand\");\nvar se_DeleteFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteFleet\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFleetCommand\");\nvar se_DeleteProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteProjectCommand\");\nvar se_DeleteReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteReport\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteReportCommand\");\nvar se_DeleteReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteReportGroupCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeleteSourceCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteSourceCredentials\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSourceCredentialsCommand\");\nvar se_DeleteWebhookCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteWebhook\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteWebhookCommand\");\nvar se_DescribeCodeCoveragesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeCodeCoverages\");\n let body;\n body = JSON.stringify(se_DescribeCodeCoveragesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCodeCoveragesCommand\");\nvar se_DescribeTestCasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTestCases\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTestCasesCommand\");\nvar se_GetReportGroupTrendCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetReportGroupTrend\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetReportGroupTrendCommand\");\nvar se_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePolicyCommand\");\nvar se_ImportSourceCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ImportSourceCredentials\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportSourceCredentialsCommand\");\nvar se_InvalidateProjectCacheCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"InvalidateProjectCache\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_InvalidateProjectCacheCommand\");\nvar se_ListBuildBatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuildBatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildBatchesCommand\");\nvar se_ListBuildBatchesForProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuildBatchesForProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildBatchesForProjectCommand\");\nvar se_ListBuildsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuilds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildsCommand\");\nvar se_ListBuildsForProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListBuildsForProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListBuildsForProjectCommand\");\nvar se_ListCommandExecutionsForSandboxCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCommandExecutionsForSandbox\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCommandExecutionsForSandboxCommand\");\nvar se_ListCuratedEnvironmentImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCuratedEnvironmentImages\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCuratedEnvironmentImagesCommand\");\nvar se_ListFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListFleets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListFleetsCommand\");\nvar se_ListProjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListProjects\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListProjectsCommand\");\nvar se_ListReportGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListReportGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListReportGroupsCommand\");\nvar se_ListReportsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListReports\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListReportsCommand\");\nvar se_ListReportsForReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListReportsForReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListReportsForReportGroupCommand\");\nvar se_ListSandboxesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSandboxes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSandboxesCommand\");\nvar se_ListSandboxesForProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSandboxesForProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSandboxesForProjectCommand\");\nvar se_ListSharedProjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSharedProjects\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSharedProjectsCommand\");\nvar se_ListSharedReportGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSharedReportGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSharedReportGroupsCommand\");\nvar se_ListSourceCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSourceCredentials\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSourceCredentialsCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_RetryBuildCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RetryBuild\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RetryBuildCommand\");\nvar se_RetryBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RetryBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RetryBuildBatchCommand\");\nvar se_StartBuildCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartBuild\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartBuildCommand\");\nvar se_StartBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartBuildBatchCommand\");\nvar se_StartCommandExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartCommandExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartCommandExecutionCommand\");\nvar se_StartSandboxCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSandbox\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartSandboxCommand\");\nvar se_StartSandboxConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSandboxConnection\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartSandboxConnectionCommand\");\nvar se_StopBuildCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopBuild\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopBuildCommand\");\nvar se_StopBuildBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopBuildBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopBuildBatchCommand\");\nvar se_StopSandboxCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopSandbox\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopSandboxCommand\");\nvar se_UpdateFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateFleet\");\n let body;\n body = JSON.stringify(se_UpdateFleetInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateFleetCommand\");\nvar se_UpdateProjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateProject\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateProjectCommand\");\nvar se_UpdateProjectVisibilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateProjectVisibility\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateProjectVisibilityCommand\");\nvar se_UpdateReportGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateReportGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateReportGroupCommand\");\nvar se_UpdateWebhookCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateWebhook\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateWebhookCommand\");\nvar de_BatchDeleteBuildsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchDeleteBuildsCommand\");\nvar de_BatchGetBuildBatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetBuildBatchesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetBuildBatchesCommand\");\nvar de_BatchGetBuildsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetBuildsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetBuildsCommand\");\nvar de_BatchGetCommandExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetCommandExecutionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetCommandExecutionsCommand\");\nvar de_BatchGetFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetFleetsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetFleetsCommand\");\nvar de_BatchGetProjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetProjectsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetProjectsCommand\");\nvar de_BatchGetReportGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetReportGroupsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetReportGroupsCommand\");\nvar de_BatchGetReportsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetReportsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetReportsCommand\");\nvar de_BatchGetSandboxesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetSandboxesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetSandboxesCommand\");\nvar de_CreateFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateFleetOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFleetCommand\");\nvar de_CreateProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateProjectOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateProjectCommand\");\nvar de_CreateReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateReportGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateReportGroupCommand\");\nvar de_CreateWebhookCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateWebhookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateWebhookCommand\");\nvar de_DeleteBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteBuildBatchCommand\");\nvar de_DeleteFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFleetCommand\");\nvar de_DeleteProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteProjectCommand\");\nvar de_DeleteReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteReportCommand\");\nvar de_DeleteReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteReportGroupCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeleteSourceCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSourceCredentialsCommand\");\nvar de_DeleteWebhookCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteWebhookCommand\");\nvar de_DescribeCodeCoveragesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCodeCoveragesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCodeCoveragesCommand\");\nvar de_DescribeTestCasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTestCasesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTestCasesCommand\");\nvar de_GetReportGroupTrendCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetReportGroupTrendCommand\");\nvar de_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePolicyCommand\");\nvar de_ImportSourceCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportSourceCredentialsCommand\");\nvar de_InvalidateProjectCacheCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_InvalidateProjectCacheCommand\");\nvar de_ListBuildBatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildBatchesCommand\");\nvar de_ListBuildBatchesForProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildBatchesForProjectCommand\");\nvar de_ListBuildsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildsCommand\");\nvar de_ListBuildsForProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListBuildsForProjectCommand\");\nvar de_ListCommandExecutionsForSandboxCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListCommandExecutionsForSandboxOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCommandExecutionsForSandboxCommand\");\nvar de_ListCuratedEnvironmentImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCuratedEnvironmentImagesCommand\");\nvar de_ListFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListFleetsCommand\");\nvar de_ListProjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListProjectsCommand\");\nvar de_ListReportGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListReportGroupsCommand\");\nvar de_ListReportsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListReportsCommand\");\nvar de_ListReportsForReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListReportsForReportGroupCommand\");\nvar de_ListSandboxesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSandboxesCommand\");\nvar de_ListSandboxesForProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSandboxesForProjectCommand\");\nvar de_ListSharedProjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSharedProjectsCommand\");\nvar de_ListSharedReportGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSharedReportGroupsCommand\");\nvar de_ListSourceCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSourceCredentialsCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_RetryBuildCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RetryBuildOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RetryBuildCommand\");\nvar de_RetryBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RetryBuildBatchOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RetryBuildBatchCommand\");\nvar de_StartBuildCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartBuildOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartBuildCommand\");\nvar de_StartBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartBuildBatchOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartBuildBatchCommand\");\nvar de_StartCommandExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartCommandExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartCommandExecutionCommand\");\nvar de_StartSandboxCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartSandboxOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSandboxCommand\");\nvar de_StartSandboxConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSandboxConnectionCommand\");\nvar de_StopBuildCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopBuildOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopBuildCommand\");\nvar de_StopBuildBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopBuildBatchOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopBuildBatchCommand\");\nvar de_StopSandboxCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopSandboxOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopSandboxCommand\");\nvar de_UpdateFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateFleetOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateFleetCommand\");\nvar de_UpdateProjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateProjectOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateProjectCommand\");\nvar de_UpdateProjectVisibilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateProjectVisibilityCommand\");\nvar de_UpdateReportGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateReportGroupOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateReportGroupCommand\");\nvar de_UpdateWebhookCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateWebhookOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateWebhookCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidInputException\":\n case \"com.amazonaws.codebuild#InvalidInputException\":\n throw await de_InvalidInputExceptionRes(parsedOutput, context);\n case \"AccountLimitExceededException\":\n case \"com.amazonaws.codebuild#AccountLimitExceededException\":\n throw await de_AccountLimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceAlreadyExistsException\":\n case \"com.amazonaws.codebuild#ResourceAlreadyExistsException\":\n throw await de_ResourceAlreadyExistsExceptionRes(parsedOutput, context);\n case \"OAuthProviderException\":\n case \"com.amazonaws.codebuild#OAuthProviderException\":\n throw await de_OAuthProviderExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.codebuild#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"AccountSuspendedException\":\n case \"com.amazonaws.codebuild#AccountSuspendedException\":\n throw await de_AccountSuspendedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccountLimitExceededExceptionRes\");\nvar de_AccountSuspendedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccountSuspendedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccountSuspendedExceptionRes\");\nvar de_InvalidInputExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInputException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInputExceptionRes\");\nvar de_OAuthProviderExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OAuthProviderException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OAuthProviderExceptionRes\");\nvar de_ResourceAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceAlreadyExistsExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar se_CreateFleetInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n baseCapacity: [],\n computeConfiguration: import_smithy_client._json,\n computeType: [],\n environmentType: [],\n fleetServiceRole: [],\n imageId: [],\n name: [],\n overflowBehavior: [],\n proxyConfiguration: import_smithy_client._json,\n scalingConfiguration: /* @__PURE__ */ __name((_) => se_ScalingConfigurationInput(_, context), \"scalingConfiguration\"),\n tags: import_smithy_client._json,\n vpcConfig: import_smithy_client._json\n });\n}, \"se_CreateFleetInput\");\nvar se_DescribeCodeCoveragesInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n maxLineCoveragePercentage: import_smithy_client.serializeFloat,\n maxResults: [],\n minLineCoveragePercentage: import_smithy_client.serializeFloat,\n nextToken: [],\n reportArn: [],\n sortBy: [],\n sortOrder: []\n });\n}, \"se_DescribeCodeCoveragesInput\");\nvar se_ScalingConfigurationInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n maxCapacity: [],\n scalingType: [],\n targetTrackingScalingConfigs: /* @__PURE__ */ __name((_) => se_TargetTrackingScalingConfigurations(_, context), \"targetTrackingScalingConfigs\")\n });\n}, \"se_ScalingConfigurationInput\");\nvar se_TargetTrackingScalingConfiguration = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n metricType: [],\n targetValue: import_smithy_client.serializeFloat\n });\n}, \"se_TargetTrackingScalingConfiguration\");\nvar se_TargetTrackingScalingConfigurations = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_TargetTrackingScalingConfiguration(entry, context);\n });\n}, \"se_TargetTrackingScalingConfigurations\");\nvar se_UpdateFleetInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n arn: [],\n baseCapacity: [],\n computeConfiguration: import_smithy_client._json,\n computeType: [],\n environmentType: [],\n fleetServiceRole: [],\n imageId: [],\n overflowBehavior: [],\n proxyConfiguration: import_smithy_client._json,\n scalingConfiguration: /* @__PURE__ */ __name((_) => se_ScalingConfigurationInput(_, context), \"scalingConfiguration\"),\n tags: import_smithy_client._json,\n vpcConfig: import_smithy_client._json\n });\n}, \"se_UpdateFleetInput\");\nvar de_BatchGetBuildBatchesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatches: /* @__PURE__ */ __name((_) => de_BuildBatches(_, context), \"buildBatches\"),\n buildBatchesNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetBuildBatchesOutput\");\nvar de_BatchGetBuildsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n builds: /* @__PURE__ */ __name((_) => de_Builds(_, context), \"builds\"),\n buildsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetBuildsOutput\");\nvar de_BatchGetCommandExecutionsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n commandExecutions: /* @__PURE__ */ __name((_) => de_CommandExecutions(_, context), \"commandExecutions\"),\n commandExecutionsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetCommandExecutionsOutput\");\nvar de_BatchGetFleetsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fleets: /* @__PURE__ */ __name((_) => de_Fleets(_, context), \"fleets\"),\n fleetsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetFleetsOutput\");\nvar de_BatchGetProjectsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n projects: /* @__PURE__ */ __name((_) => de_Projects(_, context), \"projects\"),\n projectsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetProjectsOutput\");\nvar de_BatchGetReportGroupsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reportGroups: /* @__PURE__ */ __name((_) => de_ReportGroups(_, context), \"reportGroups\"),\n reportGroupsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetReportGroupsOutput\");\nvar de_BatchGetReportsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reports: /* @__PURE__ */ __name((_) => de_Reports(_, context), \"reports\"),\n reportsNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetReportsOutput\");\nvar de_BatchGetSandboxesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n sandboxes: /* @__PURE__ */ __name((_) => de_Sandboxes(_, context), \"sandboxes\"),\n sandboxesNotFound: import_smithy_client._json\n });\n}, \"de_BatchGetSandboxesOutput\");\nvar de_Build = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n artifacts: import_smithy_client._json,\n autoRetryConfig: import_smithy_client._json,\n buildBatchArn: import_smithy_client.expectString,\n buildComplete: import_smithy_client.expectBoolean,\n buildNumber: import_smithy_client.expectLong,\n buildStatus: import_smithy_client.expectString,\n cache: import_smithy_client._json,\n currentPhase: import_smithy_client.expectString,\n debugSession: import_smithy_client._json,\n encryptionKey: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n environment: import_smithy_client._json,\n exportedEnvironmentVariables: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n id: import_smithy_client.expectString,\n initiator: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n networkInterface: import_smithy_client._json,\n phases: /* @__PURE__ */ __name((_) => de_BuildPhases(_, context), \"phases\"),\n projectName: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n reportArns: import_smithy_client._json,\n resolvedSourceVersion: import_smithy_client.expectString,\n secondaryArtifacts: import_smithy_client._json,\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n timeoutInMinutes: import_smithy_client.expectInt32,\n vpcConfig: import_smithy_client._json\n });\n}, \"de_Build\");\nvar de_BuildBatch = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n artifacts: import_smithy_client._json,\n buildBatchConfig: import_smithy_client._json,\n buildBatchNumber: import_smithy_client.expectLong,\n buildBatchStatus: import_smithy_client.expectString,\n buildGroups: /* @__PURE__ */ __name((_) => de_BuildGroups(_, context), \"buildGroups\"),\n buildTimeoutInMinutes: import_smithy_client.expectInt32,\n cache: import_smithy_client._json,\n complete: import_smithy_client.expectBoolean,\n currentPhase: import_smithy_client.expectString,\n debugSessionEnabled: import_smithy_client.expectBoolean,\n encryptionKey: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n environment: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n id: import_smithy_client.expectString,\n initiator: import_smithy_client.expectString,\n logConfig: import_smithy_client._json,\n phases: /* @__PURE__ */ __name((_) => de_BuildBatchPhases(_, context), \"phases\"),\n projectName: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n reportArns: import_smithy_client._json,\n resolvedSourceVersion: import_smithy_client.expectString,\n secondaryArtifacts: import_smithy_client._json,\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n vpcConfig: import_smithy_client._json\n });\n}, \"de_BuildBatch\");\nvar de_BuildBatches = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildBatch(entry, context);\n });\n return retVal;\n}, \"de_BuildBatches\");\nvar de_BuildBatchPhase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n contexts: import_smithy_client._json,\n durationInSeconds: import_smithy_client.expectLong,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n phaseStatus: import_smithy_client.expectString,\n phaseType: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\")\n });\n}, \"de_BuildBatchPhase\");\nvar de_BuildBatchPhases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildBatchPhase(entry, context);\n });\n return retVal;\n}, \"de_BuildBatchPhases\");\nvar de_BuildGroup = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n currentBuildSummary: /* @__PURE__ */ __name((_) => de_BuildSummary(_, context), \"currentBuildSummary\"),\n dependsOn: import_smithy_client._json,\n identifier: import_smithy_client.expectString,\n ignoreFailure: import_smithy_client.expectBoolean,\n priorBuildSummaryList: /* @__PURE__ */ __name((_) => de_BuildSummaries(_, context), \"priorBuildSummaryList\")\n });\n}, \"de_BuildGroup\");\nvar de_BuildGroups = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildGroup(entry, context);\n });\n return retVal;\n}, \"de_BuildGroups\");\nvar de_BuildPhase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n contexts: import_smithy_client._json,\n durationInSeconds: import_smithy_client.expectLong,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n phaseStatus: import_smithy_client.expectString,\n phaseType: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\")\n });\n}, \"de_BuildPhase\");\nvar de_BuildPhases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildPhase(entry, context);\n });\n return retVal;\n}, \"de_BuildPhases\");\nvar de_Builds = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Build(entry, context);\n });\n return retVal;\n}, \"de_Builds\");\nvar de_BuildSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_BuildSummary(entry, context);\n });\n return retVal;\n}, \"de_BuildSummaries\");\nvar de_BuildSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n buildStatus: import_smithy_client.expectString,\n primaryArtifact: import_smithy_client._json,\n requestedOn: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"requestedOn\"),\n secondaryArtifacts: import_smithy_client._json\n });\n}, \"de_BuildSummary\");\nvar de_CodeCoverage = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n branchCoveragePercentage: import_smithy_client.limitedParseDouble,\n branchesCovered: import_smithy_client.expectInt32,\n branchesMissed: import_smithy_client.expectInt32,\n expired: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expired\"),\n filePath: import_smithy_client.expectString,\n id: import_smithy_client.expectString,\n lineCoveragePercentage: import_smithy_client.limitedParseDouble,\n linesCovered: import_smithy_client.expectInt32,\n linesMissed: import_smithy_client.expectInt32,\n reportARN: import_smithy_client.expectString\n });\n}, \"de_CodeCoverage\");\nvar de_CodeCoverageReportSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n branchCoveragePercentage: import_smithy_client.limitedParseDouble,\n branchesCovered: import_smithy_client.expectInt32,\n branchesMissed: import_smithy_client.expectInt32,\n lineCoveragePercentage: import_smithy_client.limitedParseDouble,\n linesCovered: import_smithy_client.expectInt32,\n linesMissed: import_smithy_client.expectInt32\n });\n}, \"de_CodeCoverageReportSummary\");\nvar de_CodeCoverages = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CodeCoverage(entry, context);\n });\n return retVal;\n}, \"de_CodeCoverages\");\nvar de_CommandExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n command: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n exitCode: import_smithy_client.expectString,\n id: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n sandboxArn: import_smithy_client.expectString,\n sandboxId: import_smithy_client.expectString,\n standardErrContent: import_smithy_client.expectString,\n standardOutputContent: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n status: import_smithy_client.expectString,\n submitTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"submitTime\"),\n type: import_smithy_client.expectString\n });\n}, \"de_CommandExecution\");\nvar de_CommandExecutions = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CommandExecution(entry, context);\n });\n return retVal;\n}, \"de_CommandExecutions\");\nvar de_CreateFleetOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fleet: /* @__PURE__ */ __name((_) => de_Fleet(_, context), \"fleet\")\n });\n}, \"de_CreateFleetOutput\");\nvar de_CreateProjectOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n project: /* @__PURE__ */ __name((_) => de_Project(_, context), \"project\")\n });\n}, \"de_CreateProjectOutput\");\nvar de_CreateReportGroupOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reportGroup: /* @__PURE__ */ __name((_) => de_ReportGroup(_, context), \"reportGroup\")\n });\n}, \"de_CreateReportGroupOutput\");\nvar de_CreateWebhookOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n webhook: /* @__PURE__ */ __name((_) => de_Webhook(_, context), \"webhook\")\n });\n}, \"de_CreateWebhookOutput\");\nvar de_DescribeCodeCoveragesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n codeCoverages: /* @__PURE__ */ __name((_) => de_CodeCoverages(_, context), \"codeCoverages\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeCodeCoveragesOutput\");\nvar de_DescribeTestCasesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n testCases: /* @__PURE__ */ __name((_) => de_TestCases(_, context), \"testCases\")\n });\n}, \"de_DescribeTestCasesOutput\");\nvar de_Fleet = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n baseCapacity: import_smithy_client.expectInt32,\n computeConfiguration: import_smithy_client._json,\n computeType: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n environmentType: import_smithy_client.expectString,\n fleetServiceRole: import_smithy_client.expectString,\n id: import_smithy_client.expectString,\n imageId: import_smithy_client.expectString,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n name: import_smithy_client.expectString,\n overflowBehavior: import_smithy_client.expectString,\n proxyConfiguration: import_smithy_client._json,\n scalingConfiguration: /* @__PURE__ */ __name((_) => de_ScalingConfigurationOutput(_, context), \"scalingConfiguration\"),\n status: import_smithy_client._json,\n tags: import_smithy_client._json,\n vpcConfig: import_smithy_client._json\n });\n}, \"de_Fleet\");\nvar de_Fleets = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Fleet(entry, context);\n });\n return retVal;\n}, \"de_Fleets\");\nvar de_ListCommandExecutionsForSandboxOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n commandExecutions: /* @__PURE__ */ __name((_) => de_CommandExecutions(_, context), \"commandExecutions\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListCommandExecutionsForSandboxOutput\");\nvar de_Project = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n artifacts: import_smithy_client._json,\n autoRetryLimit: import_smithy_client.expectInt32,\n badge: import_smithy_client._json,\n buildBatchConfig: import_smithy_client._json,\n cache: import_smithy_client._json,\n concurrentBuildLimit: import_smithy_client.expectInt32,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n description: import_smithy_client.expectString,\n encryptionKey: import_smithy_client.expectString,\n environment: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n logsConfig: import_smithy_client._json,\n name: import_smithy_client.expectString,\n projectVisibility: import_smithy_client.expectString,\n publicProjectAlias: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n resourceAccessRole: import_smithy_client.expectString,\n secondaryArtifacts: import_smithy_client._json,\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n timeoutInMinutes: import_smithy_client.expectInt32,\n vpcConfig: import_smithy_client._json,\n webhook: /* @__PURE__ */ __name((_) => de_Webhook(_, context), \"webhook\")\n });\n}, \"de_Project\");\nvar de_Projects = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Project(entry, context);\n });\n return retVal;\n}, \"de_Projects\");\nvar de_Report = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n codeCoverageSummary: /* @__PURE__ */ __name((_) => de_CodeCoverageReportSummary(_, context), \"codeCoverageSummary\"),\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n executionId: import_smithy_client.expectString,\n expired: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expired\"),\n exportConfig: import_smithy_client._json,\n name: import_smithy_client.expectString,\n reportGroupArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n testSummary: import_smithy_client._json,\n truncated: import_smithy_client.expectBoolean,\n type: import_smithy_client.expectString\n });\n}, \"de_Report\");\nvar de_ReportGroup = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n created: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"created\"),\n exportConfig: import_smithy_client._json,\n lastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModified\"),\n name: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n type: import_smithy_client.expectString\n });\n}, \"de_ReportGroup\");\nvar de_ReportGroups = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ReportGroup(entry, context);\n });\n return retVal;\n}, \"de_ReportGroups\");\nvar de_Reports = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Report(entry, context);\n });\n return retVal;\n}, \"de_Reports\");\nvar de_RetryBuildBatchOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatch: /* @__PURE__ */ __name((_) => de_BuildBatch(_, context), \"buildBatch\")\n });\n}, \"de_RetryBuildBatchOutput\");\nvar de_RetryBuildOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n build: /* @__PURE__ */ __name((_) => de_Build(_, context), \"build\")\n });\n}, \"de_RetryBuildOutput\");\nvar de_Sandbox = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n arn: import_smithy_client.expectString,\n currentSession: /* @__PURE__ */ __name((_) => de_SandboxSession(_, context), \"currentSession\"),\n encryptionKey: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n environment: import_smithy_client._json,\n fileSystemLocations: import_smithy_client._json,\n id: import_smithy_client.expectString,\n logConfig: import_smithy_client._json,\n projectName: import_smithy_client.expectString,\n queuedTimeoutInMinutes: import_smithy_client.expectInt32,\n requestTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"requestTime\"),\n secondarySourceVersions: import_smithy_client._json,\n secondarySources: import_smithy_client._json,\n serviceRole: import_smithy_client.expectString,\n source: import_smithy_client._json,\n sourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n status: import_smithy_client.expectString,\n timeoutInMinutes: import_smithy_client.expectInt32,\n vpcConfig: import_smithy_client._json\n });\n}, \"de_Sandbox\");\nvar de_Sandboxes = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Sandbox(entry, context);\n });\n return retVal;\n}, \"de_Sandboxes\");\nvar de_SandboxSession = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n currentPhase: import_smithy_client.expectString,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n id: import_smithy_client.expectString,\n logs: import_smithy_client._json,\n networkInterface: import_smithy_client._json,\n phases: /* @__PURE__ */ __name((_) => de_SandboxSessionPhases(_, context), \"phases\"),\n resolvedSourceVersion: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\"),\n status: import_smithy_client.expectString\n });\n}, \"de_SandboxSession\");\nvar de_SandboxSessionPhase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n contexts: import_smithy_client._json,\n durationInSeconds: import_smithy_client.expectLong,\n endTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"endTime\"),\n phaseStatus: import_smithy_client.expectString,\n phaseType: import_smithy_client.expectString,\n startTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startTime\")\n });\n}, \"de_SandboxSessionPhase\");\nvar de_SandboxSessionPhases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SandboxSessionPhase(entry, context);\n });\n return retVal;\n}, \"de_SandboxSessionPhases\");\nvar de_ScalingConfigurationOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n desiredCapacity: import_smithy_client.expectInt32,\n maxCapacity: import_smithy_client.expectInt32,\n scalingType: import_smithy_client.expectString,\n targetTrackingScalingConfigs: /* @__PURE__ */ __name((_) => de_TargetTrackingScalingConfigurations(_, context), \"targetTrackingScalingConfigs\")\n });\n}, \"de_ScalingConfigurationOutput\");\nvar de_StartBuildBatchOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatch: /* @__PURE__ */ __name((_) => de_BuildBatch(_, context), \"buildBatch\")\n });\n}, \"de_StartBuildBatchOutput\");\nvar de_StartBuildOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n build: /* @__PURE__ */ __name((_) => de_Build(_, context), \"build\")\n });\n}, \"de_StartBuildOutput\");\nvar de_StartCommandExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n commandExecution: /* @__PURE__ */ __name((_) => de_CommandExecution(_, context), \"commandExecution\")\n });\n}, \"de_StartCommandExecutionOutput\");\nvar de_StartSandboxOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n sandbox: /* @__PURE__ */ __name((_) => de_Sandbox(_, context), \"sandbox\")\n });\n}, \"de_StartSandboxOutput\");\nvar de_StopBuildBatchOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n buildBatch: /* @__PURE__ */ __name((_) => de_BuildBatch(_, context), \"buildBatch\")\n });\n}, \"de_StopBuildBatchOutput\");\nvar de_StopBuildOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n build: /* @__PURE__ */ __name((_) => de_Build(_, context), \"build\")\n });\n}, \"de_StopBuildOutput\");\nvar de_StopSandboxOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n sandbox: /* @__PURE__ */ __name((_) => de_Sandbox(_, context), \"sandbox\")\n });\n}, \"de_StopSandboxOutput\");\nvar de_TargetTrackingScalingConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n metricType: import_smithy_client.expectString,\n targetValue: import_smithy_client.limitedParseDouble\n });\n}, \"de_TargetTrackingScalingConfiguration\");\nvar de_TargetTrackingScalingConfigurations = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetTrackingScalingConfiguration(entry, context);\n });\n return retVal;\n}, \"de_TargetTrackingScalingConfigurations\");\nvar de_TestCase = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n durationInNanoSeconds: import_smithy_client.expectLong,\n expired: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expired\"),\n message: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n prefix: import_smithy_client.expectString,\n reportArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n testRawDataPath: import_smithy_client.expectString,\n testSuiteName: import_smithy_client.expectString\n });\n}, \"de_TestCase\");\nvar de_TestCases = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TestCase(entry, context);\n });\n return retVal;\n}, \"de_TestCases\");\nvar de_UpdateFleetOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n fleet: /* @__PURE__ */ __name((_) => de_Fleet(_, context), \"fleet\")\n });\n}, \"de_UpdateFleetOutput\");\nvar de_UpdateProjectOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n project: /* @__PURE__ */ __name((_) => de_Project(_, context), \"project\")\n });\n}, \"de_UpdateProjectOutput\");\nvar de_UpdateReportGroupOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reportGroup: /* @__PURE__ */ __name((_) => de_ReportGroup(_, context), \"reportGroup\")\n });\n}, \"de_UpdateReportGroupOutput\");\nvar de_UpdateWebhookOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n webhook: /* @__PURE__ */ __name((_) => de_Webhook(_, context), \"webhook\")\n });\n}, \"de_UpdateWebhookOutput\");\nvar de_Webhook = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n branchFilter: import_smithy_client.expectString,\n buildType: import_smithy_client.expectString,\n filterGroups: import_smithy_client._json,\n lastModifiedSecret: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastModifiedSecret\"),\n manualCreation: import_smithy_client.expectBoolean,\n payloadUrl: import_smithy_client.expectString,\n scopeConfiguration: import_smithy_client._json,\n secret: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n statusMessage: import_smithy_client.expectString,\n url: import_smithy_client.expectString\n });\n}, \"de_Webhook\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CodeBuildServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `CodeBuild_20161006.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/BatchDeleteBuildsCommand.ts\nvar BatchDeleteBuildsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchDeleteBuilds\", {}).n(\"CodeBuildClient\", \"BatchDeleteBuildsCommand\").f(void 0, void 0).ser(se_BatchDeleteBuildsCommand).de(de_BatchDeleteBuildsCommand).build() {\n static {\n __name(this, \"BatchDeleteBuildsCommand\");\n }\n};\n\n// src/commands/BatchGetBuildBatchesCommand.ts\n\n\n\nvar BatchGetBuildBatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetBuildBatches\", {}).n(\"CodeBuildClient\", \"BatchGetBuildBatchesCommand\").f(void 0, void 0).ser(se_BatchGetBuildBatchesCommand).de(de_BatchGetBuildBatchesCommand).build() {\n static {\n __name(this, \"BatchGetBuildBatchesCommand\");\n }\n};\n\n// src/commands/BatchGetBuildsCommand.ts\n\n\n\nvar BatchGetBuildsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetBuilds\", {}).n(\"CodeBuildClient\", \"BatchGetBuildsCommand\").f(void 0, void 0).ser(se_BatchGetBuildsCommand).de(de_BatchGetBuildsCommand).build() {\n static {\n __name(this, \"BatchGetBuildsCommand\");\n }\n};\n\n// src/commands/BatchGetCommandExecutionsCommand.ts\n\n\n\nvar BatchGetCommandExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetCommandExecutions\", {}).n(\"CodeBuildClient\", \"BatchGetCommandExecutionsCommand\").f(void 0, BatchGetCommandExecutionsOutputFilterSensitiveLog).ser(se_BatchGetCommandExecutionsCommand).de(de_BatchGetCommandExecutionsCommand).build() {\n static {\n __name(this, \"BatchGetCommandExecutionsCommand\");\n }\n};\n\n// src/commands/BatchGetFleetsCommand.ts\n\n\n\nvar BatchGetFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetFleets\", {}).n(\"CodeBuildClient\", \"BatchGetFleetsCommand\").f(void 0, void 0).ser(se_BatchGetFleetsCommand).de(de_BatchGetFleetsCommand).build() {\n static {\n __name(this, \"BatchGetFleetsCommand\");\n }\n};\n\n// src/commands/BatchGetProjectsCommand.ts\n\n\n\nvar BatchGetProjectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetProjects\", {}).n(\"CodeBuildClient\", \"BatchGetProjectsCommand\").f(void 0, void 0).ser(se_BatchGetProjectsCommand).de(de_BatchGetProjectsCommand).build() {\n static {\n __name(this, \"BatchGetProjectsCommand\");\n }\n};\n\n// src/commands/BatchGetReportGroupsCommand.ts\n\n\n\nvar BatchGetReportGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetReportGroups\", {}).n(\"CodeBuildClient\", \"BatchGetReportGroupsCommand\").f(void 0, void 0).ser(se_BatchGetReportGroupsCommand).de(de_BatchGetReportGroupsCommand).build() {\n static {\n __name(this, \"BatchGetReportGroupsCommand\");\n }\n};\n\n// src/commands/BatchGetReportsCommand.ts\n\n\n\nvar BatchGetReportsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetReports\", {}).n(\"CodeBuildClient\", \"BatchGetReportsCommand\").f(void 0, void 0).ser(se_BatchGetReportsCommand).de(de_BatchGetReportsCommand).build() {\n static {\n __name(this, \"BatchGetReportsCommand\");\n }\n};\n\n// src/commands/BatchGetSandboxesCommand.ts\n\n\n\nvar BatchGetSandboxesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"BatchGetSandboxes\", {}).n(\"CodeBuildClient\", \"BatchGetSandboxesCommand\").f(void 0, void 0).ser(se_BatchGetSandboxesCommand).de(de_BatchGetSandboxesCommand).build() {\n static {\n __name(this, \"BatchGetSandboxesCommand\");\n }\n};\n\n// src/commands/CreateFleetCommand.ts\n\n\n\nvar CreateFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateFleet\", {}).n(\"CodeBuildClient\", \"CreateFleetCommand\").f(void 0, void 0).ser(se_CreateFleetCommand).de(de_CreateFleetCommand).build() {\n static {\n __name(this, \"CreateFleetCommand\");\n }\n};\n\n// src/commands/CreateProjectCommand.ts\n\n\n\nvar CreateProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateProject\", {}).n(\"CodeBuildClient\", \"CreateProjectCommand\").f(void 0, void 0).ser(se_CreateProjectCommand).de(de_CreateProjectCommand).build() {\n static {\n __name(this, \"CreateProjectCommand\");\n }\n};\n\n// src/commands/CreateReportGroupCommand.ts\n\n\n\nvar CreateReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateReportGroup\", {}).n(\"CodeBuildClient\", \"CreateReportGroupCommand\").f(void 0, void 0).ser(se_CreateReportGroupCommand).de(de_CreateReportGroupCommand).build() {\n static {\n __name(this, \"CreateReportGroupCommand\");\n }\n};\n\n// src/commands/CreateWebhookCommand.ts\n\n\n\nvar CreateWebhookCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"CreateWebhook\", {}).n(\"CodeBuildClient\", \"CreateWebhookCommand\").f(void 0, void 0).ser(se_CreateWebhookCommand).de(de_CreateWebhookCommand).build() {\n static {\n __name(this, \"CreateWebhookCommand\");\n }\n};\n\n// src/commands/DeleteBuildBatchCommand.ts\n\n\n\nvar DeleteBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteBuildBatch\", {}).n(\"CodeBuildClient\", \"DeleteBuildBatchCommand\").f(void 0, void 0).ser(se_DeleteBuildBatchCommand).de(de_DeleteBuildBatchCommand).build() {\n static {\n __name(this, \"DeleteBuildBatchCommand\");\n }\n};\n\n// src/commands/DeleteFleetCommand.ts\n\n\n\nvar DeleteFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteFleet\", {}).n(\"CodeBuildClient\", \"DeleteFleetCommand\").f(void 0, void 0).ser(se_DeleteFleetCommand).de(de_DeleteFleetCommand).build() {\n static {\n __name(this, \"DeleteFleetCommand\");\n }\n};\n\n// src/commands/DeleteProjectCommand.ts\n\n\n\nvar DeleteProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteProject\", {}).n(\"CodeBuildClient\", \"DeleteProjectCommand\").f(void 0, void 0).ser(se_DeleteProjectCommand).de(de_DeleteProjectCommand).build() {\n static {\n __name(this, \"DeleteProjectCommand\");\n }\n};\n\n// src/commands/DeleteReportCommand.ts\n\n\n\nvar DeleteReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteReport\", {}).n(\"CodeBuildClient\", \"DeleteReportCommand\").f(void 0, void 0).ser(se_DeleteReportCommand).de(de_DeleteReportCommand).build() {\n static {\n __name(this, \"DeleteReportCommand\");\n }\n};\n\n// src/commands/DeleteReportGroupCommand.ts\n\n\n\nvar DeleteReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteReportGroup\", {}).n(\"CodeBuildClient\", \"DeleteReportGroupCommand\").f(void 0, void 0).ser(se_DeleteReportGroupCommand).de(de_DeleteReportGroupCommand).build() {\n static {\n __name(this, \"DeleteReportGroupCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteResourcePolicy\", {}).n(\"CodeBuildClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeleteSourceCredentialsCommand.ts\n\n\n\nvar DeleteSourceCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteSourceCredentials\", {}).n(\"CodeBuildClient\", \"DeleteSourceCredentialsCommand\").f(void 0, void 0).ser(se_DeleteSourceCredentialsCommand).de(de_DeleteSourceCredentialsCommand).build() {\n static {\n __name(this, \"DeleteSourceCredentialsCommand\");\n }\n};\n\n// src/commands/DeleteWebhookCommand.ts\n\n\n\nvar DeleteWebhookCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DeleteWebhook\", {}).n(\"CodeBuildClient\", \"DeleteWebhookCommand\").f(void 0, void 0).ser(se_DeleteWebhookCommand).de(de_DeleteWebhookCommand).build() {\n static {\n __name(this, \"DeleteWebhookCommand\");\n }\n};\n\n// src/commands/DescribeCodeCoveragesCommand.ts\n\n\n\nvar DescribeCodeCoveragesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DescribeCodeCoverages\", {}).n(\"CodeBuildClient\", \"DescribeCodeCoveragesCommand\").f(void 0, void 0).ser(se_DescribeCodeCoveragesCommand).de(de_DescribeCodeCoveragesCommand).build() {\n static {\n __name(this, \"DescribeCodeCoveragesCommand\");\n }\n};\n\n// src/commands/DescribeTestCasesCommand.ts\n\n\n\nvar DescribeTestCasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"DescribeTestCases\", {}).n(\"CodeBuildClient\", \"DescribeTestCasesCommand\").f(void 0, void 0).ser(se_DescribeTestCasesCommand).de(de_DescribeTestCasesCommand).build() {\n static {\n __name(this, \"DescribeTestCasesCommand\");\n }\n};\n\n// src/commands/GetReportGroupTrendCommand.ts\n\n\n\nvar GetReportGroupTrendCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"GetReportGroupTrend\", {}).n(\"CodeBuildClient\", \"GetReportGroupTrendCommand\").f(void 0, void 0).ser(se_GetReportGroupTrendCommand).de(de_GetReportGroupTrendCommand).build() {\n static {\n __name(this, \"GetReportGroupTrendCommand\");\n }\n};\n\n// src/commands/GetResourcePolicyCommand.ts\n\n\n\nvar GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"GetResourcePolicy\", {}).n(\"CodeBuildClient\", \"GetResourcePolicyCommand\").f(void 0, void 0).ser(se_GetResourcePolicyCommand).de(de_GetResourcePolicyCommand).build() {\n static {\n __name(this, \"GetResourcePolicyCommand\");\n }\n};\n\n// src/commands/ImportSourceCredentialsCommand.ts\n\n\n\nvar ImportSourceCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ImportSourceCredentials\", {}).n(\"CodeBuildClient\", \"ImportSourceCredentialsCommand\").f(ImportSourceCredentialsInputFilterSensitiveLog, void 0).ser(se_ImportSourceCredentialsCommand).de(de_ImportSourceCredentialsCommand).build() {\n static {\n __name(this, \"ImportSourceCredentialsCommand\");\n }\n};\n\n// src/commands/InvalidateProjectCacheCommand.ts\n\n\n\nvar InvalidateProjectCacheCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"InvalidateProjectCache\", {}).n(\"CodeBuildClient\", \"InvalidateProjectCacheCommand\").f(void 0, void 0).ser(se_InvalidateProjectCacheCommand).de(de_InvalidateProjectCacheCommand).build() {\n static {\n __name(this, \"InvalidateProjectCacheCommand\");\n }\n};\n\n// src/commands/ListBuildBatchesCommand.ts\n\n\n\nvar ListBuildBatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuildBatches\", {}).n(\"CodeBuildClient\", \"ListBuildBatchesCommand\").f(void 0, void 0).ser(se_ListBuildBatchesCommand).de(de_ListBuildBatchesCommand).build() {\n static {\n __name(this, \"ListBuildBatchesCommand\");\n }\n};\n\n// src/commands/ListBuildBatchesForProjectCommand.ts\n\n\n\nvar ListBuildBatchesForProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuildBatchesForProject\", {}).n(\"CodeBuildClient\", \"ListBuildBatchesForProjectCommand\").f(void 0, void 0).ser(se_ListBuildBatchesForProjectCommand).de(de_ListBuildBatchesForProjectCommand).build() {\n static {\n __name(this, \"ListBuildBatchesForProjectCommand\");\n }\n};\n\n// src/commands/ListBuildsCommand.ts\n\n\n\nvar ListBuildsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuilds\", {}).n(\"CodeBuildClient\", \"ListBuildsCommand\").f(void 0, void 0).ser(se_ListBuildsCommand).de(de_ListBuildsCommand).build() {\n static {\n __name(this, \"ListBuildsCommand\");\n }\n};\n\n// src/commands/ListBuildsForProjectCommand.ts\n\n\n\nvar ListBuildsForProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListBuildsForProject\", {}).n(\"CodeBuildClient\", \"ListBuildsForProjectCommand\").f(void 0, void 0).ser(se_ListBuildsForProjectCommand).de(de_ListBuildsForProjectCommand).build() {\n static {\n __name(this, \"ListBuildsForProjectCommand\");\n }\n};\n\n// src/commands/ListCommandExecutionsForSandboxCommand.ts\n\n\n\nvar ListCommandExecutionsForSandboxCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListCommandExecutionsForSandbox\", {}).n(\"CodeBuildClient\", \"ListCommandExecutionsForSandboxCommand\").f(ListCommandExecutionsForSandboxInputFilterSensitiveLog, ListCommandExecutionsForSandboxOutputFilterSensitiveLog).ser(se_ListCommandExecutionsForSandboxCommand).de(de_ListCommandExecutionsForSandboxCommand).build() {\n static {\n __name(this, \"ListCommandExecutionsForSandboxCommand\");\n }\n};\n\n// src/commands/ListCuratedEnvironmentImagesCommand.ts\n\n\n\nvar ListCuratedEnvironmentImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListCuratedEnvironmentImages\", {}).n(\"CodeBuildClient\", \"ListCuratedEnvironmentImagesCommand\").f(void 0, void 0).ser(se_ListCuratedEnvironmentImagesCommand).de(de_ListCuratedEnvironmentImagesCommand).build() {\n static {\n __name(this, \"ListCuratedEnvironmentImagesCommand\");\n }\n};\n\n// src/commands/ListFleetsCommand.ts\n\n\n\nvar ListFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListFleets\", {}).n(\"CodeBuildClient\", \"ListFleetsCommand\").f(ListFleetsInputFilterSensitiveLog, void 0).ser(se_ListFleetsCommand).de(de_ListFleetsCommand).build() {\n static {\n __name(this, \"ListFleetsCommand\");\n }\n};\n\n// src/commands/ListProjectsCommand.ts\n\n\n\nvar ListProjectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListProjects\", {}).n(\"CodeBuildClient\", \"ListProjectsCommand\").f(void 0, void 0).ser(se_ListProjectsCommand).de(de_ListProjectsCommand).build() {\n static {\n __name(this, \"ListProjectsCommand\");\n }\n};\n\n// src/commands/ListReportGroupsCommand.ts\n\n\n\nvar ListReportGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListReportGroups\", {}).n(\"CodeBuildClient\", \"ListReportGroupsCommand\").f(void 0, void 0).ser(se_ListReportGroupsCommand).de(de_ListReportGroupsCommand).build() {\n static {\n __name(this, \"ListReportGroupsCommand\");\n }\n};\n\n// src/commands/ListReportsCommand.ts\n\n\n\nvar ListReportsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListReports\", {}).n(\"CodeBuildClient\", \"ListReportsCommand\").f(void 0, void 0).ser(se_ListReportsCommand).de(de_ListReportsCommand).build() {\n static {\n __name(this, \"ListReportsCommand\");\n }\n};\n\n// src/commands/ListReportsForReportGroupCommand.ts\n\n\n\nvar ListReportsForReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListReportsForReportGroup\", {}).n(\"CodeBuildClient\", \"ListReportsForReportGroupCommand\").f(void 0, void 0).ser(se_ListReportsForReportGroupCommand).de(de_ListReportsForReportGroupCommand).build() {\n static {\n __name(this, \"ListReportsForReportGroupCommand\");\n }\n};\n\n// src/commands/ListSandboxesCommand.ts\n\n\n\nvar ListSandboxesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSandboxes\", {}).n(\"CodeBuildClient\", \"ListSandboxesCommand\").f(void 0, void 0).ser(se_ListSandboxesCommand).de(de_ListSandboxesCommand).build() {\n static {\n __name(this, \"ListSandboxesCommand\");\n }\n};\n\n// src/commands/ListSandboxesForProjectCommand.ts\n\n\n\nvar ListSandboxesForProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSandboxesForProject\", {}).n(\"CodeBuildClient\", \"ListSandboxesForProjectCommand\").f(ListSandboxesForProjectInputFilterSensitiveLog, void 0).ser(se_ListSandboxesForProjectCommand).de(de_ListSandboxesForProjectCommand).build() {\n static {\n __name(this, \"ListSandboxesForProjectCommand\");\n }\n};\n\n// src/commands/ListSharedProjectsCommand.ts\n\n\n\nvar ListSharedProjectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSharedProjects\", {}).n(\"CodeBuildClient\", \"ListSharedProjectsCommand\").f(void 0, void 0).ser(se_ListSharedProjectsCommand).de(de_ListSharedProjectsCommand).build() {\n static {\n __name(this, \"ListSharedProjectsCommand\");\n }\n};\n\n// src/commands/ListSharedReportGroupsCommand.ts\n\n\n\nvar ListSharedReportGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSharedReportGroups\", {}).n(\"CodeBuildClient\", \"ListSharedReportGroupsCommand\").f(void 0, void 0).ser(se_ListSharedReportGroupsCommand).de(de_ListSharedReportGroupsCommand).build() {\n static {\n __name(this, \"ListSharedReportGroupsCommand\");\n }\n};\n\n// src/commands/ListSourceCredentialsCommand.ts\n\n\n\nvar ListSourceCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"ListSourceCredentials\", {}).n(\"CodeBuildClient\", \"ListSourceCredentialsCommand\").f(void 0, void 0).ser(se_ListSourceCredentialsCommand).de(de_ListSourceCredentialsCommand).build() {\n static {\n __name(this, \"ListSourceCredentialsCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"PutResourcePolicy\", {}).n(\"CodeBuildClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/RetryBuildBatchCommand.ts\n\n\n\nvar RetryBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"RetryBuildBatch\", {}).n(\"CodeBuildClient\", \"RetryBuildBatchCommand\").f(void 0, void 0).ser(se_RetryBuildBatchCommand).de(de_RetryBuildBatchCommand).build() {\n static {\n __name(this, \"RetryBuildBatchCommand\");\n }\n};\n\n// src/commands/RetryBuildCommand.ts\n\n\n\nvar RetryBuildCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"RetryBuild\", {}).n(\"CodeBuildClient\", \"RetryBuildCommand\").f(void 0, void 0).ser(se_RetryBuildCommand).de(de_RetryBuildCommand).build() {\n static {\n __name(this, \"RetryBuildCommand\");\n }\n};\n\n// src/commands/StartBuildBatchCommand.ts\n\n\n\nvar StartBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartBuildBatch\", {}).n(\"CodeBuildClient\", \"StartBuildBatchCommand\").f(void 0, void 0).ser(se_StartBuildBatchCommand).de(de_StartBuildBatchCommand).build() {\n static {\n __name(this, \"StartBuildBatchCommand\");\n }\n};\n\n// src/commands/StartBuildCommand.ts\n\n\n\nvar StartBuildCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartBuild\", {}).n(\"CodeBuildClient\", \"StartBuildCommand\").f(void 0, void 0).ser(se_StartBuildCommand).de(de_StartBuildCommand).build() {\n static {\n __name(this, \"StartBuildCommand\");\n }\n};\n\n// src/commands/StartCommandExecutionCommand.ts\n\n\n\nvar StartCommandExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartCommandExecution\", {}).n(\"CodeBuildClient\", \"StartCommandExecutionCommand\").f(StartCommandExecutionInputFilterSensitiveLog, StartCommandExecutionOutputFilterSensitiveLog).ser(se_StartCommandExecutionCommand).de(de_StartCommandExecutionCommand).build() {\n static {\n __name(this, \"StartCommandExecutionCommand\");\n }\n};\n\n// src/commands/StartSandboxCommand.ts\n\n\n\nvar StartSandboxCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartSandbox\", {}).n(\"CodeBuildClient\", \"StartSandboxCommand\").f(StartSandboxInputFilterSensitiveLog, void 0).ser(se_StartSandboxCommand).de(de_StartSandboxCommand).build() {\n static {\n __name(this, \"StartSandboxCommand\");\n }\n};\n\n// src/commands/StartSandboxConnectionCommand.ts\n\n\n\nvar StartSandboxConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StartSandboxConnection\", {}).n(\"CodeBuildClient\", \"StartSandboxConnectionCommand\").f(void 0, void 0).ser(se_StartSandboxConnectionCommand).de(de_StartSandboxConnectionCommand).build() {\n static {\n __name(this, \"StartSandboxConnectionCommand\");\n }\n};\n\n// src/commands/StopBuildBatchCommand.ts\n\n\n\nvar StopBuildBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StopBuildBatch\", {}).n(\"CodeBuildClient\", \"StopBuildBatchCommand\").f(void 0, void 0).ser(se_StopBuildBatchCommand).de(de_StopBuildBatchCommand).build() {\n static {\n __name(this, \"StopBuildBatchCommand\");\n }\n};\n\n// src/commands/StopBuildCommand.ts\n\n\n\nvar StopBuildCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StopBuild\", {}).n(\"CodeBuildClient\", \"StopBuildCommand\").f(void 0, void 0).ser(se_StopBuildCommand).de(de_StopBuildCommand).build() {\n static {\n __name(this, \"StopBuildCommand\");\n }\n};\n\n// src/commands/StopSandboxCommand.ts\n\n\n\nvar StopSandboxCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"StopSandbox\", {}).n(\"CodeBuildClient\", \"StopSandboxCommand\").f(void 0, void 0).ser(se_StopSandboxCommand).de(de_StopSandboxCommand).build() {\n static {\n __name(this, \"StopSandboxCommand\");\n }\n};\n\n// src/commands/UpdateFleetCommand.ts\n\n\n\nvar UpdateFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateFleet\", {}).n(\"CodeBuildClient\", \"UpdateFleetCommand\").f(void 0, void 0).ser(se_UpdateFleetCommand).de(de_UpdateFleetCommand).build() {\n static {\n __name(this, \"UpdateFleetCommand\");\n }\n};\n\n// src/commands/UpdateProjectCommand.ts\n\n\n\nvar UpdateProjectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateProject\", {}).n(\"CodeBuildClient\", \"UpdateProjectCommand\").f(void 0, void 0).ser(se_UpdateProjectCommand).de(de_UpdateProjectCommand).build() {\n static {\n __name(this, \"UpdateProjectCommand\");\n }\n};\n\n// src/commands/UpdateProjectVisibilityCommand.ts\n\n\n\nvar UpdateProjectVisibilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateProjectVisibility\", {}).n(\"CodeBuildClient\", \"UpdateProjectVisibilityCommand\").f(void 0, void 0).ser(se_UpdateProjectVisibilityCommand).de(de_UpdateProjectVisibilityCommand).build() {\n static {\n __name(this, \"UpdateProjectVisibilityCommand\");\n }\n};\n\n// src/commands/UpdateReportGroupCommand.ts\n\n\n\nvar UpdateReportGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateReportGroup\", {}).n(\"CodeBuildClient\", \"UpdateReportGroupCommand\").f(void 0, void 0).ser(se_UpdateReportGroupCommand).de(de_UpdateReportGroupCommand).build() {\n static {\n __name(this, \"UpdateReportGroupCommand\");\n }\n};\n\n// src/commands/UpdateWebhookCommand.ts\n\n\n\nvar UpdateWebhookCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"CodeBuild_20161006\", \"UpdateWebhook\", {}).n(\"CodeBuildClient\", \"UpdateWebhookCommand\").f(void 0, void 0).ser(se_UpdateWebhookCommand).de(de_UpdateWebhookCommand).build() {\n static {\n __name(this, \"UpdateWebhookCommand\");\n }\n};\n\n// src/CodeBuild.ts\nvar commands = {\n BatchDeleteBuildsCommand,\n BatchGetBuildBatchesCommand,\n BatchGetBuildsCommand,\n BatchGetCommandExecutionsCommand,\n BatchGetFleetsCommand,\n BatchGetProjectsCommand,\n BatchGetReportGroupsCommand,\n BatchGetReportsCommand,\n BatchGetSandboxesCommand,\n CreateFleetCommand,\n CreateProjectCommand,\n CreateReportGroupCommand,\n CreateWebhookCommand,\n DeleteBuildBatchCommand,\n DeleteFleetCommand,\n DeleteProjectCommand,\n DeleteReportCommand,\n DeleteReportGroupCommand,\n DeleteResourcePolicyCommand,\n DeleteSourceCredentialsCommand,\n DeleteWebhookCommand,\n DescribeCodeCoveragesCommand,\n DescribeTestCasesCommand,\n GetReportGroupTrendCommand,\n GetResourcePolicyCommand,\n ImportSourceCredentialsCommand,\n InvalidateProjectCacheCommand,\n ListBuildBatchesCommand,\n ListBuildBatchesForProjectCommand,\n ListBuildsCommand,\n ListBuildsForProjectCommand,\n ListCommandExecutionsForSandboxCommand,\n ListCuratedEnvironmentImagesCommand,\n ListFleetsCommand,\n ListProjectsCommand,\n ListReportGroupsCommand,\n ListReportsCommand,\n ListReportsForReportGroupCommand,\n ListSandboxesCommand,\n ListSandboxesForProjectCommand,\n ListSharedProjectsCommand,\n ListSharedReportGroupsCommand,\n ListSourceCredentialsCommand,\n PutResourcePolicyCommand,\n RetryBuildCommand,\n RetryBuildBatchCommand,\n StartBuildCommand,\n StartBuildBatchCommand,\n StartCommandExecutionCommand,\n StartSandboxCommand,\n StartSandboxConnectionCommand,\n StopBuildCommand,\n StopBuildBatchCommand,\n StopSandboxCommand,\n UpdateFleetCommand,\n UpdateProjectCommand,\n UpdateProjectVisibilityCommand,\n UpdateReportGroupCommand,\n UpdateWebhookCommand\n};\nvar CodeBuild = class extends CodeBuildClient {\n static {\n __name(this, \"CodeBuild\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CodeBuild);\n\n// src/pagination/DescribeCodeCoveragesPaginator.ts\n\nvar paginateDescribeCodeCoverages = (0, import_core.createPaginator)(CodeBuildClient, DescribeCodeCoveragesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeTestCasesPaginator.ts\n\nvar paginateDescribeTestCases = (0, import_core.createPaginator)(CodeBuildClient, DescribeTestCasesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListBuildBatchesForProjectPaginator.ts\n\nvar paginateListBuildBatchesForProject = (0, import_core.createPaginator)(CodeBuildClient, ListBuildBatchesForProjectCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListBuildBatchesPaginator.ts\n\nvar paginateListBuildBatches = (0, import_core.createPaginator)(CodeBuildClient, ListBuildBatchesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListBuildsForProjectPaginator.ts\n\nvar paginateListBuildsForProject = (0, import_core.createPaginator)(CodeBuildClient, ListBuildsForProjectCommand, \"nextToken\", \"nextToken\", \"\");\n\n// src/pagination/ListBuildsPaginator.ts\n\nvar paginateListBuilds = (0, import_core.createPaginator)(CodeBuildClient, ListBuildsCommand, \"nextToken\", \"nextToken\", \"\");\n\n// src/pagination/ListCommandExecutionsForSandboxPaginator.ts\n\nvar paginateListCommandExecutionsForSandbox = (0, import_core.createPaginator)(CodeBuildClient, ListCommandExecutionsForSandboxCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListFleetsPaginator.ts\n\nvar paginateListFleets = (0, import_core.createPaginator)(CodeBuildClient, ListFleetsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListProjectsPaginator.ts\n\nvar paginateListProjects = (0, import_core.createPaginator)(CodeBuildClient, ListProjectsCommand, \"nextToken\", \"nextToken\", \"\");\n\n// src/pagination/ListReportGroupsPaginator.ts\n\nvar paginateListReportGroups = (0, import_core.createPaginator)(CodeBuildClient, ListReportGroupsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListReportsForReportGroupPaginator.ts\n\nvar paginateListReportsForReportGroup = (0, import_core.createPaginator)(CodeBuildClient, ListReportsForReportGroupCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListReportsPaginator.ts\n\nvar paginateListReports = (0, import_core.createPaginator)(CodeBuildClient, ListReportsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSandboxesForProjectPaginator.ts\n\nvar paginateListSandboxesForProject = (0, import_core.createPaginator)(CodeBuildClient, ListSandboxesForProjectCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSandboxesPaginator.ts\n\nvar paginateListSandboxes = (0, import_core.createPaginator)(CodeBuildClient, ListSandboxesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSharedProjectsPaginator.ts\n\nvar paginateListSharedProjects = (0, import_core.createPaginator)(CodeBuildClient, ListSharedProjectsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListSharedReportGroupsPaginator.ts\n\nvar paginateListSharedReportGroups = (0, import_core.createPaginator)(CodeBuildClient, ListSharedReportGroupsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CodeBuildServiceException,\n __Client,\n CodeBuildClient,\n CodeBuild,\n $Command,\n BatchDeleteBuildsCommand,\n BatchGetBuildBatchesCommand,\n BatchGetBuildsCommand,\n BatchGetCommandExecutionsCommand,\n BatchGetFleetsCommand,\n BatchGetProjectsCommand,\n BatchGetReportGroupsCommand,\n BatchGetReportsCommand,\n BatchGetSandboxesCommand,\n CreateFleetCommand,\n CreateProjectCommand,\n CreateReportGroupCommand,\n CreateWebhookCommand,\n DeleteBuildBatchCommand,\n DeleteFleetCommand,\n DeleteProjectCommand,\n DeleteReportCommand,\n DeleteReportGroupCommand,\n DeleteResourcePolicyCommand,\n DeleteSourceCredentialsCommand,\n DeleteWebhookCommand,\n DescribeCodeCoveragesCommand,\n DescribeTestCasesCommand,\n GetReportGroupTrendCommand,\n GetResourcePolicyCommand,\n ImportSourceCredentialsCommand,\n InvalidateProjectCacheCommand,\n ListBuildBatchesCommand,\n ListBuildBatchesForProjectCommand,\n ListBuildsCommand,\n ListBuildsForProjectCommand,\n ListCommandExecutionsForSandboxCommand,\n ListCuratedEnvironmentImagesCommand,\n ListFleetsCommand,\n ListProjectsCommand,\n ListReportGroupsCommand,\n ListReportsCommand,\n ListReportsForReportGroupCommand,\n ListSandboxesCommand,\n ListSandboxesForProjectCommand,\n ListSharedProjectsCommand,\n ListSharedReportGroupsCommand,\n ListSourceCredentialsCommand,\n PutResourcePolicyCommand,\n RetryBuildBatchCommand,\n RetryBuildCommand,\n StartBuildBatchCommand,\n StartBuildCommand,\n StartCommandExecutionCommand,\n StartSandboxCommand,\n StartSandboxConnectionCommand,\n StopBuildBatchCommand,\n StopBuildCommand,\n StopSandboxCommand,\n UpdateFleetCommand,\n UpdateProjectCommand,\n UpdateProjectVisibilityCommand,\n UpdateReportGroupCommand,\n UpdateWebhookCommand,\n paginateDescribeCodeCoverages,\n paginateDescribeTestCases,\n paginateListBuildBatchesForProject,\n paginateListBuildBatches,\n paginateListBuildsForProject,\n paginateListBuilds,\n paginateListCommandExecutionsForSandbox,\n paginateListFleets,\n paginateListProjects,\n paginateListReportGroups,\n paginateListReportsForReportGroup,\n paginateListReports,\n paginateListSandboxesForProject,\n paginateListSandboxes,\n paginateListSharedProjects,\n paginateListSharedReportGroups,\n AccountLimitExceededException,\n AccountSuspendedException,\n ArtifactNamespace,\n ArtifactPackaging,\n ArtifactsType,\n AuthType,\n InvalidInputException,\n BucketOwnerAccess,\n BatchReportModeType,\n StatusType,\n CacheMode,\n CacheType,\n MachineType,\n ComputeType,\n EnvironmentVariableType,\n ImagePullCredentialsType,\n CredentialProviderType,\n EnvironmentType,\n FileSystemType,\n LogsConfigStatusType,\n BuildBatchPhaseType,\n SourceAuthType,\n SourceType,\n BuildPhaseType,\n CommandType,\n FleetOverflowBehavior,\n FleetProxyRuleBehavior,\n FleetProxyRuleEffectType,\n FleetProxyRuleType,\n FleetScalingType,\n FleetScalingMetricType,\n FleetContextCode,\n FleetStatusCode,\n ProjectVisibilityType,\n WebhookBuildType,\n WebhookFilterType,\n WebhookScopeType,\n WebhookStatus,\n ReportExportConfigType,\n ReportPackagingType,\n ReportGroupStatusType,\n ReportType,\n ReportStatusType,\n ResourceAlreadyExistsException,\n OAuthProviderException,\n ResourceNotFoundException,\n ReportCodeCoverageSortByType,\n SortOrderType,\n ReportGroupTrendFieldType,\n ServerType,\n LanguageType,\n PlatformType,\n FleetSortByType,\n ProjectSortByType,\n ReportGroupSortByType,\n SharedResourceSortByType,\n RetryBuildBatchType,\n CommandExecutionFilterSensitiveLog,\n BatchGetCommandExecutionsOutputFilterSensitiveLog,\n ImportSourceCredentialsInputFilterSensitiveLog,\n ListCommandExecutionsForSandboxInputFilterSensitiveLog,\n ListCommandExecutionsForSandboxOutputFilterSensitiveLog,\n ListFleetsInputFilterSensitiveLog,\n ListSandboxesForProjectInputFilterSensitiveLog,\n StartCommandExecutionInputFilterSensitiveLog,\n StartCommandExecutionOutputFilterSensitiveLog,\n StartSandboxInputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2016-10-06\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCodeBuildHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"CodeBuild\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultCognitoIdentityHttpAuthSchemeProvider = exports.defaultCognitoIdentityHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultCognitoIdentityHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultCognitoIdentityHttpAuthSchemeParametersProvider = defaultCognitoIdentityHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"cognito-identity\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultCognitoIdentityHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetCredentialsForIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"GetId\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"GetOpenIdToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"UnlinkIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultCognitoIdentityHttpAuthSchemeProvider = defaultCognitoIdentityHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst w = \"required\", x = \"fn\", y = \"argv\", z = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = \"stringEquals\", j = { [w]: false, \"type\": \"String\" }, k = { [w]: true, \"default\": false, \"type\": \"Boolean\" }, l = { [z]: \"Endpoint\" }, m = { [x]: c, [y]: [{ [z]: \"UseFIPS\" }, true] }, n = { [x]: c, [y]: [{ [z]: \"UseDualStack\" }, true] }, o = {}, p = { [z]: \"Region\" }, q = { [x]: h, [y]: [{ [z]: g }, \"supportsFIPS\"] }, r = { [z]: g }, s = { [x]: c, [y]: [true, { [x]: h, [y]: [r, \"supportsDualStack\"] }] }, t = [m], u = [n], v = [p];\nconst _data = { version: \"1.0\", parameters: { Region: j, UseDualStack: k, UseFIPS: k, Endpoint: j }, rules: [{ conditions: [{ [x]: b, [y]: [l] }], rules: [{ conditions: t, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: u, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: l, properties: o, headers: o }, type: e }], type: f }, { conditions: [{ [x]: b, [y]: v }], rules: [{ conditions: [{ [x]: \"aws.partition\", [y]: v, assign: g }], rules: [{ conditions: [m, n], rules: [{ conditions: [{ [x]: c, [y]: [a, q] }, s], rules: [{ conditions: [{ [x]: i, [y]: [p, \"us-east-1\"] }], endpoint: { url: \"https://cognito-identity-fips.us-east-1.amazonaws.com\", properties: o, headers: o }, type: e }, { conditions: [{ [x]: i, [y]: [p, \"us-east-2\"] }], endpoint: { url: \"https://cognito-identity-fips.us-east-2.amazonaws.com\", properties: o, headers: o }, type: e }, { conditions: [{ [x]: i, [y]: [p, \"us-west-1\"] }], endpoint: { url: \"https://cognito-identity-fips.us-west-1.amazonaws.com\", properties: o, headers: o }, type: e }, { conditions: [{ [x]: i, [y]: [p, \"us-west-2\"] }], endpoint: { url: \"https://cognito-identity-fips.us-west-2.amazonaws.com\", properties: o, headers: o }, type: e }, { endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: o, headers: o }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: t, rules: [{ conditions: [{ [x]: c, [y]: [q, a] }], rules: [{ endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: o, headers: o }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: u, rules: [{ conditions: [s], rules: [{ conditions: [{ [x]: i, [y]: [\"aws\", { [x]: h, [y]: [r, \"name\"] }] }], endpoint: { url: \"https://cognito-identity.{Region}.amazonaws.com\", properties: o, headers: o }, type: e }, { endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: o, headers: o }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}\", properties: o, headers: o }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AmbiguousRoleResolutionType: () => AmbiguousRoleResolutionType,\n CognitoIdentity: () => CognitoIdentity,\n CognitoIdentityClient: () => CognitoIdentityClient,\n CognitoIdentityServiceException: () => CognitoIdentityServiceException,\n ConcurrentModificationException: () => ConcurrentModificationException,\n CreateIdentityPoolCommand: () => CreateIdentityPoolCommand,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n DeleteIdentitiesCommand: () => DeleteIdentitiesCommand,\n DeleteIdentityPoolCommand: () => DeleteIdentityPoolCommand,\n DescribeIdentityCommand: () => DescribeIdentityCommand,\n DescribeIdentityPoolCommand: () => DescribeIdentityPoolCommand,\n DeveloperUserAlreadyRegisteredException: () => DeveloperUserAlreadyRegisteredException,\n ErrorCode: () => ErrorCode,\n ExternalServiceException: () => ExternalServiceException,\n GetCredentialsForIdentityCommand: () => GetCredentialsForIdentityCommand,\n GetCredentialsForIdentityInputFilterSensitiveLog: () => GetCredentialsForIdentityInputFilterSensitiveLog,\n GetCredentialsForIdentityResponseFilterSensitiveLog: () => GetCredentialsForIdentityResponseFilterSensitiveLog,\n GetIdCommand: () => GetIdCommand,\n GetIdInputFilterSensitiveLog: () => GetIdInputFilterSensitiveLog,\n GetIdentityPoolRolesCommand: () => GetIdentityPoolRolesCommand,\n GetOpenIdTokenCommand: () => GetOpenIdTokenCommand,\n GetOpenIdTokenForDeveloperIdentityCommand: () => GetOpenIdTokenForDeveloperIdentityCommand,\n GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog: () => GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog: () => GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog,\n GetOpenIdTokenInputFilterSensitiveLog: () => GetOpenIdTokenInputFilterSensitiveLog,\n GetOpenIdTokenResponseFilterSensitiveLog: () => GetOpenIdTokenResponseFilterSensitiveLog,\n GetPrincipalTagAttributeMapCommand: () => GetPrincipalTagAttributeMapCommand,\n InternalErrorException: () => InternalErrorException,\n InvalidIdentityPoolConfigurationException: () => InvalidIdentityPoolConfigurationException,\n InvalidParameterException: () => InvalidParameterException,\n LimitExceededException: () => LimitExceededException,\n ListIdentitiesCommand: () => ListIdentitiesCommand,\n ListIdentityPoolsCommand: () => ListIdentityPoolsCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n LookupDeveloperIdentityCommand: () => LookupDeveloperIdentityCommand,\n MappingRuleMatchType: () => MappingRuleMatchType,\n MergeDeveloperIdentitiesCommand: () => MergeDeveloperIdentitiesCommand,\n NotAuthorizedException: () => NotAuthorizedException,\n ResourceConflictException: () => ResourceConflictException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleMappingType: () => RoleMappingType,\n SetIdentityPoolRolesCommand: () => SetIdentityPoolRolesCommand,\n SetPrincipalTagAttributeMapCommand: () => SetPrincipalTagAttributeMapCommand,\n TagResourceCommand: () => TagResourceCommand,\n TooManyRequestsException: () => TooManyRequestsException,\n UnlinkDeveloperIdentityCommand: () => UnlinkDeveloperIdentityCommand,\n UnlinkIdentityCommand: () => UnlinkIdentityCommand,\n UnlinkIdentityInputFilterSensitiveLog: () => UnlinkIdentityInputFilterSensitiveLog,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateIdentityPoolCommand: () => UpdateIdentityPoolCommand,\n __Client: () => import_smithy_client.Client,\n paginateListIdentityPools: () => paginateListIdentityPools\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/CognitoIdentityClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cognito-identity\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/CognitoIdentityClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/CognitoIdentityClient.ts\nvar CognitoIdentityClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"CognitoIdentityClient\");\n }\n /**\n * The resolved configuration of CognitoIdentityClient class. This is resolved and normalized from the {@link CognitoIdentityClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultCognitoIdentityHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/CognitoIdentity.ts\n\n\n// src/commands/CreateIdentityPoolCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/CognitoIdentityServiceException.ts\n\nvar CognitoIdentityServiceException = class _CognitoIdentityServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"CognitoIdentityServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _CognitoIdentityServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AmbiguousRoleResolutionType = {\n AUTHENTICATED_ROLE: \"AuthenticatedRole\",\n DENY: \"Deny\"\n};\nvar InternalErrorException = class _InternalErrorException extends CognitoIdentityServiceException {\n static {\n __name(this, \"InternalErrorException\");\n }\n name = \"InternalErrorException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalErrorException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalErrorException.prototype);\n }\n};\nvar InvalidParameterException = class _InvalidParameterException extends CognitoIdentityServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends CognitoIdentityServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar NotAuthorizedException = class _NotAuthorizedException extends CognitoIdentityServiceException {\n static {\n __name(this, \"NotAuthorizedException\");\n }\n name = \"NotAuthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotAuthorizedException.prototype);\n }\n};\nvar ResourceConflictException = class _ResourceConflictException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ResourceConflictException\");\n }\n name = \"ResourceConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceConflictException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends CognitoIdentityServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar ErrorCode = {\n ACCESS_DENIED: \"AccessDenied\",\n INTERNAL_SERVER_ERROR: \"InternalServerError\"\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ExternalServiceException = class _ExternalServiceException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ExternalServiceException\");\n }\n name = \"ExternalServiceException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExternalServiceException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExternalServiceException.prototype);\n }\n};\nvar InvalidIdentityPoolConfigurationException = class _InvalidIdentityPoolConfigurationException extends CognitoIdentityServiceException {\n static {\n __name(this, \"InvalidIdentityPoolConfigurationException\");\n }\n name = \"InvalidIdentityPoolConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityPoolConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityPoolConfigurationException.prototype);\n }\n};\nvar MappingRuleMatchType = {\n CONTAINS: \"Contains\",\n EQUALS: \"Equals\",\n NOT_EQUAL: \"NotEqual\",\n STARTS_WITH: \"StartsWith\"\n};\nvar RoleMappingType = {\n RULES: \"Rules\",\n TOKEN: \"Token\"\n};\nvar DeveloperUserAlreadyRegisteredException = class _DeveloperUserAlreadyRegisteredException extends CognitoIdentityServiceException {\n static {\n __name(this, \"DeveloperUserAlreadyRegisteredException\");\n }\n name = \"DeveloperUserAlreadyRegisteredException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DeveloperUserAlreadyRegisteredException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DeveloperUserAlreadyRegisteredException.prototype);\n }\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends CognitoIdentityServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n }\n};\nvar GetCredentialsForIdentityInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetCredentialsForIdentityInputFilterSensitiveLog\");\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretKey && { SecretKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar GetCredentialsForIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetCredentialsForIdentityResponseFilterSensitiveLog\");\nvar GetIdInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetIdInputFilterSensitiveLog\");\nvar GetOpenIdTokenInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenInputFilterSensitiveLog\");\nvar GetOpenIdTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Token && { Token: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenResponseFilterSensitiveLog\");\nvar GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog\");\nvar GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Token && { Token: import_smithy_client.SENSITIVE_STRING }\n}), \"GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog\");\nvar UnlinkIdentityInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Logins && { Logins: import_smithy_client.SENSITIVE_STRING }\n}), \"UnlinkIdentityInputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_CreateIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIdentityPoolCommand\");\nvar se_DeleteIdentitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIdentities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIdentitiesCommand\");\nvar se_DeleteIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIdentityPoolCommand\");\nvar se_DescribeIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdentityCommand\");\nvar se_DescribeIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdentityPoolCommand\");\nvar se_GetCredentialsForIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetCredentialsForIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCredentialsForIdentityCommand\");\nvar se_GetIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetId\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIdCommand\");\nvar se_GetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetIdentityPoolRoles\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIdentityPoolRolesCommand\");\nvar se_GetOpenIdTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpenIdToken\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpenIdTokenCommand\");\nvar se_GetOpenIdTokenForDeveloperIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpenIdTokenForDeveloperIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpenIdTokenForDeveloperIdentityCommand\");\nvar se_GetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPrincipalTagAttributeMap\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPrincipalTagAttributeMapCommand\");\nvar se_ListIdentitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListIdentities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListIdentitiesCommand\");\nvar se_ListIdentityPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListIdentityPools\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListIdentityPoolsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_LookupDeveloperIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"LookupDeveloperIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_LookupDeveloperIdentityCommand\");\nvar se_MergeDeveloperIdentitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"MergeDeveloperIdentities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MergeDeveloperIdentitiesCommand\");\nvar se_SetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SetIdentityPoolRoles\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetIdentityPoolRolesCommand\");\nvar se_SetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SetPrincipalTagAttributeMap\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetPrincipalTagAttributeMapCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UnlinkDeveloperIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UnlinkDeveloperIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlinkDeveloperIdentityCommand\");\nvar se_UnlinkIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UnlinkIdentity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlinkIdentityCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateIdentityPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateIdentityPool\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateIdentityPoolCommand\");\nvar de_CreateIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIdentityPoolCommand\");\nvar de_DeleteIdentitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIdentitiesCommand\");\nvar de_DeleteIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteIdentityPoolCommand\");\nvar de_DescribeIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_IdentityDescription(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdentityCommand\");\nvar de_DescribeIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdentityPoolCommand\");\nvar de_GetCredentialsForIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetCredentialsForIdentityResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCredentialsForIdentityCommand\");\nvar de_GetIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIdCommand\");\nvar de_GetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIdentityPoolRolesCommand\");\nvar de_GetOpenIdTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpenIdTokenCommand\");\nvar de_GetOpenIdTokenForDeveloperIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpenIdTokenForDeveloperIdentityCommand\");\nvar de_GetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPrincipalTagAttributeMapCommand\");\nvar de_ListIdentitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListIdentitiesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListIdentitiesCommand\");\nvar de_ListIdentityPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListIdentityPoolsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_LookupDeveloperIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_LookupDeveloperIdentityCommand\");\nvar de_MergeDeveloperIdentitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MergeDeveloperIdentitiesCommand\");\nvar de_SetIdentityPoolRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SetIdentityPoolRolesCommand\");\nvar de_SetPrincipalTagAttributeMapCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetPrincipalTagAttributeMapCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UnlinkDeveloperIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UnlinkDeveloperIdentityCommand\");\nvar de_UnlinkIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UnlinkIdentityCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateIdentityPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateIdentityPoolCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await de_ExternalServiceExceptionRes(parsedOutput, context);\n case \"InvalidIdentityPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\":\n throw await de_InvalidIdentityPoolConfigurationExceptionRes(parsedOutput, context);\n case \"DeveloperUserAlreadyRegisteredException\":\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\":\n throw await de_DeveloperUserAlreadyRegisteredExceptionRes(parsedOutput, context);\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_DeveloperUserAlreadyRegisteredExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DeveloperUserAlreadyRegisteredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DeveloperUserAlreadyRegisteredExceptionRes\");\nvar de_ExternalServiceExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExternalServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExternalServiceExceptionRes\");\nvar de_InternalErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InternalErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InternalErrorExceptionRes\");\nvar de_InvalidIdentityPoolConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidIdentityPoolConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityPoolConfigurationExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_NotAuthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotAuthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotAuthorizedExceptionRes\");\nvar de_ResourceConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceConflictExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AccessKeyId: import_smithy_client.expectString,\n Expiration: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"Expiration\"),\n SecretKey: import_smithy_client.expectString,\n SessionToken: import_smithy_client.expectString\n });\n}, \"de_Credentials\");\nvar de_GetCredentialsForIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Credentials: /* @__PURE__ */ __name((_) => de_Credentials(_, context), \"Credentials\"),\n IdentityId: import_smithy_client.expectString\n });\n}, \"de_GetCredentialsForIdentityResponse\");\nvar de_IdentitiesList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_IdentityDescription(entry, context);\n });\n return retVal;\n}, \"de_IdentitiesList\");\nvar de_IdentityDescription = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n IdentityId: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n Logins: import_smithy_client._json\n });\n}, \"de_IdentityDescription\");\nvar de_ListIdentitiesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Identities: /* @__PURE__ */ __name((_) => de_IdentitiesList(_, context), \"Identities\"),\n IdentityPoolId: import_smithy_client.expectString,\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListIdentitiesResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(CognitoIdentityServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AWSCognitoIdentityService.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CreateIdentityPoolCommand.ts\nvar CreateIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"CreateIdentityPool\", {}).n(\"CognitoIdentityClient\", \"CreateIdentityPoolCommand\").f(void 0, void 0).ser(se_CreateIdentityPoolCommand).de(de_CreateIdentityPoolCommand).build() {\n static {\n __name(this, \"CreateIdentityPoolCommand\");\n }\n};\n\n// src/commands/DeleteIdentitiesCommand.ts\n\n\n\nvar DeleteIdentitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DeleteIdentities\", {}).n(\"CognitoIdentityClient\", \"DeleteIdentitiesCommand\").f(void 0, void 0).ser(se_DeleteIdentitiesCommand).de(de_DeleteIdentitiesCommand).build() {\n static {\n __name(this, \"DeleteIdentitiesCommand\");\n }\n};\n\n// src/commands/DeleteIdentityPoolCommand.ts\n\n\n\nvar DeleteIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DeleteIdentityPool\", {}).n(\"CognitoIdentityClient\", \"DeleteIdentityPoolCommand\").f(void 0, void 0).ser(se_DeleteIdentityPoolCommand).de(de_DeleteIdentityPoolCommand).build() {\n static {\n __name(this, \"DeleteIdentityPoolCommand\");\n }\n};\n\n// src/commands/DescribeIdentityCommand.ts\n\n\n\nvar DescribeIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DescribeIdentity\", {}).n(\"CognitoIdentityClient\", \"DescribeIdentityCommand\").f(void 0, void 0).ser(se_DescribeIdentityCommand).de(de_DescribeIdentityCommand).build() {\n static {\n __name(this, \"DescribeIdentityCommand\");\n }\n};\n\n// src/commands/DescribeIdentityPoolCommand.ts\n\n\n\nvar DescribeIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"DescribeIdentityPool\", {}).n(\"CognitoIdentityClient\", \"DescribeIdentityPoolCommand\").f(void 0, void 0).ser(se_DescribeIdentityPoolCommand).de(de_DescribeIdentityPoolCommand).build() {\n static {\n __name(this, \"DescribeIdentityPoolCommand\");\n }\n};\n\n// src/commands/GetCredentialsForIdentityCommand.ts\n\n\n\nvar GetCredentialsForIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetCredentialsForIdentity\", {}).n(\"CognitoIdentityClient\", \"GetCredentialsForIdentityCommand\").f(GetCredentialsForIdentityInputFilterSensitiveLog, GetCredentialsForIdentityResponseFilterSensitiveLog).ser(se_GetCredentialsForIdentityCommand).de(de_GetCredentialsForIdentityCommand).build() {\n static {\n __name(this, \"GetCredentialsForIdentityCommand\");\n }\n};\n\n// src/commands/GetIdCommand.ts\n\n\n\nvar GetIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetId\", {}).n(\"CognitoIdentityClient\", \"GetIdCommand\").f(GetIdInputFilterSensitiveLog, void 0).ser(se_GetIdCommand).de(de_GetIdCommand).build() {\n static {\n __name(this, \"GetIdCommand\");\n }\n};\n\n// src/commands/GetIdentityPoolRolesCommand.ts\n\n\n\nvar GetIdentityPoolRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetIdentityPoolRoles\", {}).n(\"CognitoIdentityClient\", \"GetIdentityPoolRolesCommand\").f(void 0, void 0).ser(se_GetIdentityPoolRolesCommand).de(de_GetIdentityPoolRolesCommand).build() {\n static {\n __name(this, \"GetIdentityPoolRolesCommand\");\n }\n};\n\n// src/commands/GetOpenIdTokenCommand.ts\n\n\n\nvar GetOpenIdTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetOpenIdToken\", {}).n(\"CognitoIdentityClient\", \"GetOpenIdTokenCommand\").f(GetOpenIdTokenInputFilterSensitiveLog, GetOpenIdTokenResponseFilterSensitiveLog).ser(se_GetOpenIdTokenCommand).de(de_GetOpenIdTokenCommand).build() {\n static {\n __name(this, \"GetOpenIdTokenCommand\");\n }\n};\n\n// src/commands/GetOpenIdTokenForDeveloperIdentityCommand.ts\n\n\n\nvar GetOpenIdTokenForDeveloperIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetOpenIdTokenForDeveloperIdentity\", {}).n(\"CognitoIdentityClient\", \"GetOpenIdTokenForDeveloperIdentityCommand\").f(\n GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog\n).ser(se_GetOpenIdTokenForDeveloperIdentityCommand).de(de_GetOpenIdTokenForDeveloperIdentityCommand).build() {\n static {\n __name(this, \"GetOpenIdTokenForDeveloperIdentityCommand\");\n }\n};\n\n// src/commands/GetPrincipalTagAttributeMapCommand.ts\n\n\n\nvar GetPrincipalTagAttributeMapCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"GetPrincipalTagAttributeMap\", {}).n(\"CognitoIdentityClient\", \"GetPrincipalTagAttributeMapCommand\").f(void 0, void 0).ser(se_GetPrincipalTagAttributeMapCommand).de(de_GetPrincipalTagAttributeMapCommand).build() {\n static {\n __name(this, \"GetPrincipalTagAttributeMapCommand\");\n }\n};\n\n// src/commands/ListIdentitiesCommand.ts\n\n\n\nvar ListIdentitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"ListIdentities\", {}).n(\"CognitoIdentityClient\", \"ListIdentitiesCommand\").f(void 0, void 0).ser(se_ListIdentitiesCommand).de(de_ListIdentitiesCommand).build() {\n static {\n __name(this, \"ListIdentitiesCommand\");\n }\n};\n\n// src/commands/ListIdentityPoolsCommand.ts\n\n\n\nvar ListIdentityPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"ListIdentityPools\", {}).n(\"CognitoIdentityClient\", \"ListIdentityPoolsCommand\").f(void 0, void 0).ser(se_ListIdentityPoolsCommand).de(de_ListIdentityPoolsCommand).build() {\n static {\n __name(this, \"ListIdentityPoolsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"ListTagsForResource\", {}).n(\"CognitoIdentityClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/LookupDeveloperIdentityCommand.ts\n\n\n\nvar LookupDeveloperIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"LookupDeveloperIdentity\", {}).n(\"CognitoIdentityClient\", \"LookupDeveloperIdentityCommand\").f(void 0, void 0).ser(se_LookupDeveloperIdentityCommand).de(de_LookupDeveloperIdentityCommand).build() {\n static {\n __name(this, \"LookupDeveloperIdentityCommand\");\n }\n};\n\n// src/commands/MergeDeveloperIdentitiesCommand.ts\n\n\n\nvar MergeDeveloperIdentitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"MergeDeveloperIdentities\", {}).n(\"CognitoIdentityClient\", \"MergeDeveloperIdentitiesCommand\").f(void 0, void 0).ser(se_MergeDeveloperIdentitiesCommand).de(de_MergeDeveloperIdentitiesCommand).build() {\n static {\n __name(this, \"MergeDeveloperIdentitiesCommand\");\n }\n};\n\n// src/commands/SetIdentityPoolRolesCommand.ts\n\n\n\nvar SetIdentityPoolRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"SetIdentityPoolRoles\", {}).n(\"CognitoIdentityClient\", \"SetIdentityPoolRolesCommand\").f(void 0, void 0).ser(se_SetIdentityPoolRolesCommand).de(de_SetIdentityPoolRolesCommand).build() {\n static {\n __name(this, \"SetIdentityPoolRolesCommand\");\n }\n};\n\n// src/commands/SetPrincipalTagAttributeMapCommand.ts\n\n\n\nvar SetPrincipalTagAttributeMapCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"SetPrincipalTagAttributeMap\", {}).n(\"CognitoIdentityClient\", \"SetPrincipalTagAttributeMapCommand\").f(void 0, void 0).ser(se_SetPrincipalTagAttributeMapCommand).de(de_SetPrincipalTagAttributeMapCommand).build() {\n static {\n __name(this, \"SetPrincipalTagAttributeMapCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"TagResource\", {}).n(\"CognitoIdentityClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UnlinkDeveloperIdentityCommand.ts\n\n\n\nvar UnlinkDeveloperIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UnlinkDeveloperIdentity\", {}).n(\"CognitoIdentityClient\", \"UnlinkDeveloperIdentityCommand\").f(void 0, void 0).ser(se_UnlinkDeveloperIdentityCommand).de(de_UnlinkDeveloperIdentityCommand).build() {\n static {\n __name(this, \"UnlinkDeveloperIdentityCommand\");\n }\n};\n\n// src/commands/UnlinkIdentityCommand.ts\n\n\n\nvar UnlinkIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UnlinkIdentity\", {}).n(\"CognitoIdentityClient\", \"UnlinkIdentityCommand\").f(UnlinkIdentityInputFilterSensitiveLog, void 0).ser(se_UnlinkIdentityCommand).de(de_UnlinkIdentityCommand).build() {\n static {\n __name(this, \"UnlinkIdentityCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UntagResource\", {}).n(\"CognitoIdentityClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateIdentityPoolCommand.ts\n\n\n\nvar UpdateIdentityPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSCognitoIdentityService\", \"UpdateIdentityPool\", {}).n(\"CognitoIdentityClient\", \"UpdateIdentityPoolCommand\").f(void 0, void 0).ser(se_UpdateIdentityPoolCommand).de(de_UpdateIdentityPoolCommand).build() {\n static {\n __name(this, \"UpdateIdentityPoolCommand\");\n }\n};\n\n// src/CognitoIdentity.ts\nvar commands = {\n CreateIdentityPoolCommand,\n DeleteIdentitiesCommand,\n DeleteIdentityPoolCommand,\n DescribeIdentityCommand,\n DescribeIdentityPoolCommand,\n GetCredentialsForIdentityCommand,\n GetIdCommand,\n GetIdentityPoolRolesCommand,\n GetOpenIdTokenCommand,\n GetOpenIdTokenForDeveloperIdentityCommand,\n GetPrincipalTagAttributeMapCommand,\n ListIdentitiesCommand,\n ListIdentityPoolsCommand,\n ListTagsForResourceCommand,\n LookupDeveloperIdentityCommand,\n MergeDeveloperIdentitiesCommand,\n SetIdentityPoolRolesCommand,\n SetPrincipalTagAttributeMapCommand,\n TagResourceCommand,\n UnlinkDeveloperIdentityCommand,\n UnlinkIdentityCommand,\n UntagResourceCommand,\n UpdateIdentityPoolCommand\n};\nvar CognitoIdentity = class extends CognitoIdentityClient {\n static {\n __name(this, \"CognitoIdentity\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, CognitoIdentity);\n\n// src/pagination/ListIdentityPoolsPaginator.ts\n\nvar paginateListIdentityPools = (0, import_core.createPaginator)(CognitoIdentityClient, ListIdentityPoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n CognitoIdentityServiceException,\n __Client,\n CognitoIdentityClient,\n CognitoIdentity,\n $Command,\n CreateIdentityPoolCommand,\n DeleteIdentitiesCommand,\n DeleteIdentityPoolCommand,\n DescribeIdentityCommand,\n DescribeIdentityPoolCommand,\n GetCredentialsForIdentityCommand,\n GetIdCommand,\n GetIdentityPoolRolesCommand,\n GetOpenIdTokenCommand,\n GetOpenIdTokenForDeveloperIdentityCommand,\n GetPrincipalTagAttributeMapCommand,\n ListIdentitiesCommand,\n ListIdentityPoolsCommand,\n ListTagsForResourceCommand,\n LookupDeveloperIdentityCommand,\n MergeDeveloperIdentitiesCommand,\n SetIdentityPoolRolesCommand,\n SetPrincipalTagAttributeMapCommand,\n TagResourceCommand,\n UnlinkDeveloperIdentityCommand,\n UnlinkIdentityCommand,\n UntagResourceCommand,\n UpdateIdentityPoolCommand,\n paginateListIdentityPools,\n AmbiguousRoleResolutionType,\n InternalErrorException,\n InvalidParameterException,\n LimitExceededException,\n NotAuthorizedException,\n ResourceConflictException,\n TooManyRequestsException,\n ErrorCode,\n ResourceNotFoundException,\n ExternalServiceException,\n InvalidIdentityPoolConfigurationException,\n MappingRuleMatchType,\n RoleMappingType,\n DeveloperUserAlreadyRegisteredException,\n ConcurrentModificationException,\n GetCredentialsForIdentityInputFilterSensitiveLog,\n CredentialsFilterSensitiveLog,\n GetCredentialsForIdentityResponseFilterSensitiveLog,\n GetIdInputFilterSensitiveLog,\n GetOpenIdTokenInputFilterSensitiveLog,\n GetOpenIdTokenResponseFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityInputFilterSensitiveLog,\n GetOpenIdTokenForDeveloperIdentityResponseFilterSensitiveLog,\n UnlinkIdentityInputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-06-30\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultCognitoIdentityHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Cognito Identity\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultEC2HttpAuthSchemeProvider = exports.defaultEC2HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultEC2HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultEC2HttpAuthSchemeParametersProvider = defaultEC2HttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ec2\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultEC2HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultEC2HttpAuthSchemeProvider = defaultEC2HttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://ec2.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://ec2.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AcceleratorManufacturer: () => AcceleratorManufacturer,\n AcceleratorName: () => AcceleratorName,\n AcceleratorType: () => AcceleratorType,\n AcceptAddressTransferCommand: () => AcceptAddressTransferCommand,\n AcceptCapacityReservationBillingOwnershipCommand: () => AcceptCapacityReservationBillingOwnershipCommand,\n AcceptReservedInstancesExchangeQuoteCommand: () => AcceptReservedInstancesExchangeQuoteCommand,\n AcceptTransitGatewayMulticastDomainAssociationsCommand: () => AcceptTransitGatewayMulticastDomainAssociationsCommand,\n AcceptTransitGatewayPeeringAttachmentCommand: () => AcceptTransitGatewayPeeringAttachmentCommand,\n AcceptTransitGatewayVpcAttachmentCommand: () => AcceptTransitGatewayVpcAttachmentCommand,\n AcceptVpcEndpointConnectionsCommand: () => AcceptVpcEndpointConnectionsCommand,\n AcceptVpcPeeringConnectionCommand: () => AcceptVpcPeeringConnectionCommand,\n AccountAttributeName: () => AccountAttributeName,\n ActivityStatus: () => ActivityStatus,\n AddressAttributeName: () => AddressAttributeName,\n AddressFamily: () => AddressFamily,\n AddressTransferStatus: () => AddressTransferStatus,\n AdvertiseByoipCidrCommand: () => AdvertiseByoipCidrCommand,\n Affinity: () => Affinity,\n AllocateAddressCommand: () => AllocateAddressCommand,\n AllocateHostsCommand: () => AllocateHostsCommand,\n AllocateIpamPoolCidrCommand: () => AllocateIpamPoolCidrCommand,\n AllocationState: () => AllocationState,\n AllocationStrategy: () => AllocationStrategy,\n AllocationType: () => AllocationType,\n AllowedImagesSettingsDisabledState: () => AllowedImagesSettingsDisabledState,\n AllowedImagesSettingsEnabledState: () => AllowedImagesSettingsEnabledState,\n AllowsMultipleInstanceTypes: () => AllowsMultipleInstanceTypes,\n AmdSevSnpSpecification: () => AmdSevSnpSpecification,\n AnalysisStatus: () => AnalysisStatus,\n ApplianceModeSupportValue: () => ApplianceModeSupportValue,\n ApplySecurityGroupsToClientVpnTargetNetworkCommand: () => ApplySecurityGroupsToClientVpnTargetNetworkCommand,\n ArchitectureType: () => ArchitectureType,\n ArchitectureValues: () => ArchitectureValues,\n AsnAssociationState: () => AsnAssociationState,\n AsnState: () => AsnState,\n AssignIpv6AddressesCommand: () => AssignIpv6AddressesCommand,\n AssignPrivateIpAddressesCommand: () => AssignPrivateIpAddressesCommand,\n AssignPrivateNatGatewayAddressCommand: () => AssignPrivateNatGatewayAddressCommand,\n AssociateAddressCommand: () => AssociateAddressCommand,\n AssociateCapacityReservationBillingOwnerCommand: () => AssociateCapacityReservationBillingOwnerCommand,\n AssociateClientVpnTargetNetworkCommand: () => AssociateClientVpnTargetNetworkCommand,\n AssociateDhcpOptionsCommand: () => AssociateDhcpOptionsCommand,\n AssociateEnclaveCertificateIamRoleCommand: () => AssociateEnclaveCertificateIamRoleCommand,\n AssociateIamInstanceProfileCommand: () => AssociateIamInstanceProfileCommand,\n AssociateInstanceEventWindowCommand: () => AssociateInstanceEventWindowCommand,\n AssociateIpamByoasnCommand: () => AssociateIpamByoasnCommand,\n AssociateIpamResourceDiscoveryCommand: () => AssociateIpamResourceDiscoveryCommand,\n AssociateNatGatewayAddressCommand: () => AssociateNatGatewayAddressCommand,\n AssociateRouteServerCommand: () => AssociateRouteServerCommand,\n AssociateRouteTableCommand: () => AssociateRouteTableCommand,\n AssociateSecurityGroupVpcCommand: () => AssociateSecurityGroupVpcCommand,\n AssociateSubnetCidrBlockCommand: () => AssociateSubnetCidrBlockCommand,\n AssociateTransitGatewayMulticastDomainCommand: () => AssociateTransitGatewayMulticastDomainCommand,\n AssociateTransitGatewayPolicyTableCommand: () => AssociateTransitGatewayPolicyTableCommand,\n AssociateTransitGatewayRouteTableCommand: () => AssociateTransitGatewayRouteTableCommand,\n AssociateTrunkInterfaceCommand: () => AssociateTrunkInterfaceCommand,\n AssociateVpcCidrBlockCommand: () => AssociateVpcCidrBlockCommand,\n AssociatedNetworkType: () => AssociatedNetworkType,\n AssociationStatusCode: () => AssociationStatusCode,\n AttachClassicLinkVpcCommand: () => AttachClassicLinkVpcCommand,\n AttachInternetGatewayCommand: () => AttachInternetGatewayCommand,\n AttachNetworkInterfaceCommand: () => AttachNetworkInterfaceCommand,\n AttachVerifiedAccessTrustProviderCommand: () => AttachVerifiedAccessTrustProviderCommand,\n AttachVerifiedAccessTrustProviderResultFilterSensitiveLog: () => AttachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n AttachVolumeCommand: () => AttachVolumeCommand,\n AttachVpnGatewayCommand: () => AttachVpnGatewayCommand,\n AttachmentStatus: () => AttachmentStatus,\n AuthorizeClientVpnIngressCommand: () => AuthorizeClientVpnIngressCommand,\n AuthorizeSecurityGroupEgressCommand: () => AuthorizeSecurityGroupEgressCommand,\n AuthorizeSecurityGroupIngressCommand: () => AuthorizeSecurityGroupIngressCommand,\n AutoAcceptSharedAssociationsValue: () => AutoAcceptSharedAssociationsValue,\n AutoAcceptSharedAttachmentsValue: () => AutoAcceptSharedAttachmentsValue,\n AutoPlacement: () => AutoPlacement,\n AvailabilityZoneOptInStatus: () => AvailabilityZoneOptInStatus,\n AvailabilityZoneState: () => AvailabilityZoneState,\n BandwidthWeightingType: () => BandwidthWeightingType,\n BareMetal: () => BareMetal,\n BatchState: () => BatchState,\n BgpStatus: () => BgpStatus,\n BlockPublicAccessMode: () => BlockPublicAccessMode,\n BootModeType: () => BootModeType,\n BootModeValues: () => BootModeValues,\n BundleInstanceCommand: () => BundleInstanceCommand,\n BundleInstanceRequestFilterSensitiveLog: () => BundleInstanceRequestFilterSensitiveLog,\n BundleInstanceResultFilterSensitiveLog: () => BundleInstanceResultFilterSensitiveLog,\n BundleTaskFilterSensitiveLog: () => BundleTaskFilterSensitiveLog,\n BundleTaskState: () => BundleTaskState,\n BurstablePerformance: () => BurstablePerformance,\n ByoipCidrState: () => ByoipCidrState,\n CallerRole: () => CallerRole,\n CancelBatchErrorCode: () => CancelBatchErrorCode,\n CancelBundleTaskCommand: () => CancelBundleTaskCommand,\n CancelBundleTaskResultFilterSensitiveLog: () => CancelBundleTaskResultFilterSensitiveLog,\n CancelCapacityReservationCommand: () => CancelCapacityReservationCommand,\n CancelCapacityReservationFleetsCommand: () => CancelCapacityReservationFleetsCommand,\n CancelConversionTaskCommand: () => CancelConversionTaskCommand,\n CancelDeclarativePoliciesReportCommand: () => CancelDeclarativePoliciesReportCommand,\n CancelExportTaskCommand: () => CancelExportTaskCommand,\n CancelImageLaunchPermissionCommand: () => CancelImageLaunchPermissionCommand,\n CancelImportTaskCommand: () => CancelImportTaskCommand,\n CancelReservedInstancesListingCommand: () => CancelReservedInstancesListingCommand,\n CancelSpotFleetRequestsCommand: () => CancelSpotFleetRequestsCommand,\n CancelSpotInstanceRequestState: () => CancelSpotInstanceRequestState,\n CancelSpotInstanceRequestsCommand: () => CancelSpotInstanceRequestsCommand,\n CapacityBlockExtensionStatus: () => CapacityBlockExtensionStatus,\n CapacityReservationBillingRequestStatus: () => CapacityReservationBillingRequestStatus,\n CapacityReservationDeliveryPreference: () => CapacityReservationDeliveryPreference,\n CapacityReservationFleetState: () => CapacityReservationFleetState,\n CapacityReservationInstancePlatform: () => CapacityReservationInstancePlatform,\n CapacityReservationPreference: () => CapacityReservationPreference,\n CapacityReservationState: () => CapacityReservationState,\n CapacityReservationTenancy: () => CapacityReservationTenancy,\n CapacityReservationType: () => CapacityReservationType,\n CarrierGatewayState: () => CarrierGatewayState,\n ClientCertificateRevocationListStatusCode: () => ClientCertificateRevocationListStatusCode,\n ClientVpnAuthenticationType: () => ClientVpnAuthenticationType,\n ClientVpnAuthorizationRuleStatusCode: () => ClientVpnAuthorizationRuleStatusCode,\n ClientVpnConnectionStatusCode: () => ClientVpnConnectionStatusCode,\n ClientVpnEndpointAttributeStatusCode: () => ClientVpnEndpointAttributeStatusCode,\n ClientVpnEndpointStatusCode: () => ClientVpnEndpointStatusCode,\n ClientVpnRouteStatusCode: () => ClientVpnRouteStatusCode,\n ConfirmProductInstanceCommand: () => ConfirmProductInstanceCommand,\n ConnectionNotificationState: () => ConnectionNotificationState,\n ConnectionNotificationType: () => ConnectionNotificationType,\n ConnectivityType: () => ConnectivityType,\n ContainerFormat: () => ContainerFormat,\n ConversionTaskFilterSensitiveLog: () => ConversionTaskFilterSensitiveLog,\n ConversionTaskState: () => ConversionTaskState,\n CopyFpgaImageCommand: () => CopyFpgaImageCommand,\n CopyImageCommand: () => CopyImageCommand,\n CopySnapshotCommand: () => CopySnapshotCommand,\n CopySnapshotRequestFilterSensitiveLog: () => CopySnapshotRequestFilterSensitiveLog,\n CopyTagsFromSource: () => CopyTagsFromSource,\n CpuManufacturer: () => CpuManufacturer,\n CreateCapacityReservationBySplittingCommand: () => CreateCapacityReservationBySplittingCommand,\n CreateCapacityReservationCommand: () => CreateCapacityReservationCommand,\n CreateCapacityReservationFleetCommand: () => CreateCapacityReservationFleetCommand,\n CreateCarrierGatewayCommand: () => CreateCarrierGatewayCommand,\n CreateClientVpnEndpointCommand: () => CreateClientVpnEndpointCommand,\n CreateClientVpnRouteCommand: () => CreateClientVpnRouteCommand,\n CreateCoipCidrCommand: () => CreateCoipCidrCommand,\n CreateCoipPoolCommand: () => CreateCoipPoolCommand,\n CreateCustomerGatewayCommand: () => CreateCustomerGatewayCommand,\n CreateDefaultSubnetCommand: () => CreateDefaultSubnetCommand,\n CreateDefaultVpcCommand: () => CreateDefaultVpcCommand,\n CreateDhcpOptionsCommand: () => CreateDhcpOptionsCommand,\n CreateEgressOnlyInternetGatewayCommand: () => CreateEgressOnlyInternetGatewayCommand,\n CreateFleetCommand: () => CreateFleetCommand,\n CreateFlowLogsCommand: () => CreateFlowLogsCommand,\n CreateFpgaImageCommand: () => CreateFpgaImageCommand,\n CreateImageCommand: () => CreateImageCommand,\n CreateInstanceConnectEndpointCommand: () => CreateInstanceConnectEndpointCommand,\n CreateInstanceEventWindowCommand: () => CreateInstanceEventWindowCommand,\n CreateInstanceExportTaskCommand: () => CreateInstanceExportTaskCommand,\n CreateInternetGatewayCommand: () => CreateInternetGatewayCommand,\n CreateIpamCommand: () => CreateIpamCommand,\n CreateIpamExternalResourceVerificationTokenCommand: () => CreateIpamExternalResourceVerificationTokenCommand,\n CreateIpamPoolCommand: () => CreateIpamPoolCommand,\n CreateIpamResourceDiscoveryCommand: () => CreateIpamResourceDiscoveryCommand,\n CreateIpamScopeCommand: () => CreateIpamScopeCommand,\n CreateKeyPairCommand: () => CreateKeyPairCommand,\n CreateLaunchTemplateCommand: () => CreateLaunchTemplateCommand,\n CreateLaunchTemplateRequestFilterSensitiveLog: () => CreateLaunchTemplateRequestFilterSensitiveLog,\n CreateLaunchTemplateVersionCommand: () => CreateLaunchTemplateVersionCommand,\n CreateLaunchTemplateVersionRequestFilterSensitiveLog: () => CreateLaunchTemplateVersionRequestFilterSensitiveLog,\n CreateLaunchTemplateVersionResultFilterSensitiveLog: () => CreateLaunchTemplateVersionResultFilterSensitiveLog,\n CreateLocalGatewayRouteCommand: () => CreateLocalGatewayRouteCommand,\n CreateLocalGatewayRouteTableCommand: () => CreateLocalGatewayRouteTableCommand,\n CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand: () => CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n CreateLocalGatewayRouteTableVpcAssociationCommand: () => CreateLocalGatewayRouteTableVpcAssociationCommand,\n CreateLocalGatewayVirtualInterfaceCommand: () => CreateLocalGatewayVirtualInterfaceCommand,\n CreateLocalGatewayVirtualInterfaceGroupCommand: () => CreateLocalGatewayVirtualInterfaceGroupCommand,\n CreateManagedPrefixListCommand: () => CreateManagedPrefixListCommand,\n CreateNatGatewayCommand: () => CreateNatGatewayCommand,\n CreateNetworkAclCommand: () => CreateNetworkAclCommand,\n CreateNetworkAclEntryCommand: () => CreateNetworkAclEntryCommand,\n CreateNetworkInsightsAccessScopeCommand: () => CreateNetworkInsightsAccessScopeCommand,\n CreateNetworkInsightsPathCommand: () => CreateNetworkInsightsPathCommand,\n CreateNetworkInterfaceCommand: () => CreateNetworkInterfaceCommand,\n CreateNetworkInterfacePermissionCommand: () => CreateNetworkInterfacePermissionCommand,\n CreatePlacementGroupCommand: () => CreatePlacementGroupCommand,\n CreatePublicIpv4PoolCommand: () => CreatePublicIpv4PoolCommand,\n CreateReplaceRootVolumeTaskCommand: () => CreateReplaceRootVolumeTaskCommand,\n CreateReservedInstancesListingCommand: () => CreateReservedInstancesListingCommand,\n CreateRestoreImageTaskCommand: () => CreateRestoreImageTaskCommand,\n CreateRouteCommand: () => CreateRouteCommand,\n CreateRouteServerCommand: () => CreateRouteServerCommand,\n CreateRouteServerEndpointCommand: () => CreateRouteServerEndpointCommand,\n CreateRouteServerPeerCommand: () => CreateRouteServerPeerCommand,\n CreateRouteTableCommand: () => CreateRouteTableCommand,\n CreateSecurityGroupCommand: () => CreateSecurityGroupCommand,\n CreateSnapshotCommand: () => CreateSnapshotCommand,\n CreateSnapshotsCommand: () => CreateSnapshotsCommand,\n CreateSpotDatafeedSubscriptionCommand: () => CreateSpotDatafeedSubscriptionCommand,\n CreateStoreImageTaskCommand: () => CreateStoreImageTaskCommand,\n CreateSubnetCidrReservationCommand: () => CreateSubnetCidrReservationCommand,\n CreateSubnetCommand: () => CreateSubnetCommand,\n CreateTagsCommand: () => CreateTagsCommand,\n CreateTrafficMirrorFilterCommand: () => CreateTrafficMirrorFilterCommand,\n CreateTrafficMirrorFilterRuleCommand: () => CreateTrafficMirrorFilterRuleCommand,\n CreateTrafficMirrorSessionCommand: () => CreateTrafficMirrorSessionCommand,\n CreateTrafficMirrorTargetCommand: () => CreateTrafficMirrorTargetCommand,\n CreateTransitGatewayCommand: () => CreateTransitGatewayCommand,\n CreateTransitGatewayConnectCommand: () => CreateTransitGatewayConnectCommand,\n CreateTransitGatewayConnectPeerCommand: () => CreateTransitGatewayConnectPeerCommand,\n CreateTransitGatewayMulticastDomainCommand: () => CreateTransitGatewayMulticastDomainCommand,\n CreateTransitGatewayPeeringAttachmentCommand: () => CreateTransitGatewayPeeringAttachmentCommand,\n CreateTransitGatewayPolicyTableCommand: () => CreateTransitGatewayPolicyTableCommand,\n CreateTransitGatewayPrefixListReferenceCommand: () => CreateTransitGatewayPrefixListReferenceCommand,\n CreateTransitGatewayRouteCommand: () => CreateTransitGatewayRouteCommand,\n CreateTransitGatewayRouteTableAnnouncementCommand: () => CreateTransitGatewayRouteTableAnnouncementCommand,\n CreateTransitGatewayRouteTableCommand: () => CreateTransitGatewayRouteTableCommand,\n CreateTransitGatewayVpcAttachmentCommand: () => CreateTransitGatewayVpcAttachmentCommand,\n CreateVerifiedAccessEndpointCommand: () => CreateVerifiedAccessEndpointCommand,\n CreateVerifiedAccessGroupCommand: () => CreateVerifiedAccessGroupCommand,\n CreateVerifiedAccessInstanceCommand: () => CreateVerifiedAccessInstanceCommand,\n CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog: () => CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderCommand: () => CreateVerifiedAccessTrustProviderCommand,\n CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog: () => CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog: () => CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderResultFilterSensitiveLog: () => CreateVerifiedAccessTrustProviderResultFilterSensitiveLog,\n CreateVolumeCommand: () => CreateVolumeCommand,\n CreateVpcBlockPublicAccessExclusionCommand: () => CreateVpcBlockPublicAccessExclusionCommand,\n CreateVpcCommand: () => CreateVpcCommand,\n CreateVpcEndpointCommand: () => CreateVpcEndpointCommand,\n CreateVpcEndpointConnectionNotificationCommand: () => CreateVpcEndpointConnectionNotificationCommand,\n CreateVpcEndpointServiceConfigurationCommand: () => CreateVpcEndpointServiceConfigurationCommand,\n CreateVpcPeeringConnectionCommand: () => CreateVpcPeeringConnectionCommand,\n CreateVpnConnectionCommand: () => CreateVpnConnectionCommand,\n CreateVpnConnectionRequestFilterSensitiveLog: () => CreateVpnConnectionRequestFilterSensitiveLog,\n CreateVpnConnectionResultFilterSensitiveLog: () => CreateVpnConnectionResultFilterSensitiveLog,\n CreateVpnConnectionRouteCommand: () => CreateVpnConnectionRouteCommand,\n CreateVpnGatewayCommand: () => CreateVpnGatewayCommand,\n CurrencyCodeValues: () => CurrencyCodeValues,\n DatafeedSubscriptionState: () => DatafeedSubscriptionState,\n DefaultInstanceMetadataEndpointState: () => DefaultInstanceMetadataEndpointState,\n DefaultInstanceMetadataTagsState: () => DefaultInstanceMetadataTagsState,\n DefaultRouteTableAssociationValue: () => DefaultRouteTableAssociationValue,\n DefaultRouteTablePropagationValue: () => DefaultRouteTablePropagationValue,\n DefaultTargetCapacityType: () => DefaultTargetCapacityType,\n DeleteCarrierGatewayCommand: () => DeleteCarrierGatewayCommand,\n DeleteClientVpnEndpointCommand: () => DeleteClientVpnEndpointCommand,\n DeleteClientVpnRouteCommand: () => DeleteClientVpnRouteCommand,\n DeleteCoipCidrCommand: () => DeleteCoipCidrCommand,\n DeleteCoipPoolCommand: () => DeleteCoipPoolCommand,\n DeleteCustomerGatewayCommand: () => DeleteCustomerGatewayCommand,\n DeleteDhcpOptionsCommand: () => DeleteDhcpOptionsCommand,\n DeleteEgressOnlyInternetGatewayCommand: () => DeleteEgressOnlyInternetGatewayCommand,\n DeleteFleetErrorCode: () => DeleteFleetErrorCode,\n DeleteFleetsCommand: () => DeleteFleetsCommand,\n DeleteFlowLogsCommand: () => DeleteFlowLogsCommand,\n DeleteFpgaImageCommand: () => DeleteFpgaImageCommand,\n DeleteInstanceConnectEndpointCommand: () => DeleteInstanceConnectEndpointCommand,\n DeleteInstanceEventWindowCommand: () => DeleteInstanceEventWindowCommand,\n DeleteInternetGatewayCommand: () => DeleteInternetGatewayCommand,\n DeleteIpamCommand: () => DeleteIpamCommand,\n DeleteIpamExternalResourceVerificationTokenCommand: () => DeleteIpamExternalResourceVerificationTokenCommand,\n DeleteIpamPoolCommand: () => DeleteIpamPoolCommand,\n DeleteIpamResourceDiscoveryCommand: () => DeleteIpamResourceDiscoveryCommand,\n DeleteIpamScopeCommand: () => DeleteIpamScopeCommand,\n DeleteKeyPairCommand: () => DeleteKeyPairCommand,\n DeleteLaunchTemplateCommand: () => DeleteLaunchTemplateCommand,\n DeleteLaunchTemplateVersionsCommand: () => DeleteLaunchTemplateVersionsCommand,\n DeleteLocalGatewayRouteCommand: () => DeleteLocalGatewayRouteCommand,\n DeleteLocalGatewayRouteTableCommand: () => DeleteLocalGatewayRouteTableCommand,\n DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand: () => DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n DeleteLocalGatewayRouteTableVpcAssociationCommand: () => DeleteLocalGatewayRouteTableVpcAssociationCommand,\n DeleteLocalGatewayVirtualInterfaceCommand: () => DeleteLocalGatewayVirtualInterfaceCommand,\n DeleteLocalGatewayVirtualInterfaceGroupCommand: () => DeleteLocalGatewayVirtualInterfaceGroupCommand,\n DeleteManagedPrefixListCommand: () => DeleteManagedPrefixListCommand,\n DeleteNatGatewayCommand: () => DeleteNatGatewayCommand,\n DeleteNetworkAclCommand: () => DeleteNetworkAclCommand,\n DeleteNetworkAclEntryCommand: () => DeleteNetworkAclEntryCommand,\n DeleteNetworkInsightsAccessScopeAnalysisCommand: () => DeleteNetworkInsightsAccessScopeAnalysisCommand,\n DeleteNetworkInsightsAccessScopeCommand: () => DeleteNetworkInsightsAccessScopeCommand,\n DeleteNetworkInsightsAnalysisCommand: () => DeleteNetworkInsightsAnalysisCommand,\n DeleteNetworkInsightsPathCommand: () => DeleteNetworkInsightsPathCommand,\n DeleteNetworkInterfaceCommand: () => DeleteNetworkInterfaceCommand,\n DeleteNetworkInterfacePermissionCommand: () => DeleteNetworkInterfacePermissionCommand,\n DeletePlacementGroupCommand: () => DeletePlacementGroupCommand,\n DeletePublicIpv4PoolCommand: () => DeletePublicIpv4PoolCommand,\n DeleteQueuedReservedInstancesCommand: () => DeleteQueuedReservedInstancesCommand,\n DeleteQueuedReservedInstancesErrorCode: () => DeleteQueuedReservedInstancesErrorCode,\n DeleteRouteCommand: () => DeleteRouteCommand,\n DeleteRouteServerCommand: () => DeleteRouteServerCommand,\n DeleteRouteServerEndpointCommand: () => DeleteRouteServerEndpointCommand,\n DeleteRouteServerPeerCommand: () => DeleteRouteServerPeerCommand,\n DeleteRouteTableCommand: () => DeleteRouteTableCommand,\n DeleteSecurityGroupCommand: () => DeleteSecurityGroupCommand,\n DeleteSnapshotCommand: () => DeleteSnapshotCommand,\n DeleteSpotDatafeedSubscriptionCommand: () => DeleteSpotDatafeedSubscriptionCommand,\n DeleteSubnetCidrReservationCommand: () => DeleteSubnetCidrReservationCommand,\n DeleteSubnetCommand: () => DeleteSubnetCommand,\n DeleteTagsCommand: () => DeleteTagsCommand,\n DeleteTrafficMirrorFilterCommand: () => DeleteTrafficMirrorFilterCommand,\n DeleteTrafficMirrorFilterRuleCommand: () => DeleteTrafficMirrorFilterRuleCommand,\n DeleteTrafficMirrorSessionCommand: () => DeleteTrafficMirrorSessionCommand,\n DeleteTrafficMirrorTargetCommand: () => DeleteTrafficMirrorTargetCommand,\n DeleteTransitGatewayCommand: () => DeleteTransitGatewayCommand,\n DeleteTransitGatewayConnectCommand: () => DeleteTransitGatewayConnectCommand,\n DeleteTransitGatewayConnectPeerCommand: () => DeleteTransitGatewayConnectPeerCommand,\n DeleteTransitGatewayMulticastDomainCommand: () => DeleteTransitGatewayMulticastDomainCommand,\n DeleteTransitGatewayPeeringAttachmentCommand: () => DeleteTransitGatewayPeeringAttachmentCommand,\n DeleteTransitGatewayPolicyTableCommand: () => DeleteTransitGatewayPolicyTableCommand,\n DeleteTransitGatewayPrefixListReferenceCommand: () => DeleteTransitGatewayPrefixListReferenceCommand,\n DeleteTransitGatewayRouteCommand: () => DeleteTransitGatewayRouteCommand,\n DeleteTransitGatewayRouteTableAnnouncementCommand: () => DeleteTransitGatewayRouteTableAnnouncementCommand,\n DeleteTransitGatewayRouteTableCommand: () => DeleteTransitGatewayRouteTableCommand,\n DeleteTransitGatewayVpcAttachmentCommand: () => DeleteTransitGatewayVpcAttachmentCommand,\n DeleteVerifiedAccessEndpointCommand: () => DeleteVerifiedAccessEndpointCommand,\n DeleteVerifiedAccessGroupCommand: () => DeleteVerifiedAccessGroupCommand,\n DeleteVerifiedAccessInstanceCommand: () => DeleteVerifiedAccessInstanceCommand,\n DeleteVerifiedAccessTrustProviderCommand: () => DeleteVerifiedAccessTrustProviderCommand,\n DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog: () => DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog,\n DeleteVolumeCommand: () => DeleteVolumeCommand,\n DeleteVpcBlockPublicAccessExclusionCommand: () => DeleteVpcBlockPublicAccessExclusionCommand,\n DeleteVpcCommand: () => DeleteVpcCommand,\n DeleteVpcEndpointConnectionNotificationsCommand: () => DeleteVpcEndpointConnectionNotificationsCommand,\n DeleteVpcEndpointServiceConfigurationsCommand: () => DeleteVpcEndpointServiceConfigurationsCommand,\n DeleteVpcEndpointsCommand: () => DeleteVpcEndpointsCommand,\n DeleteVpcPeeringConnectionCommand: () => DeleteVpcPeeringConnectionCommand,\n DeleteVpnConnectionCommand: () => DeleteVpnConnectionCommand,\n DeleteVpnConnectionRouteCommand: () => DeleteVpnConnectionRouteCommand,\n DeleteVpnGatewayCommand: () => DeleteVpnGatewayCommand,\n DeprovisionByoipCidrCommand: () => DeprovisionByoipCidrCommand,\n DeprovisionIpamByoasnCommand: () => DeprovisionIpamByoasnCommand,\n DeprovisionIpamPoolCidrCommand: () => DeprovisionIpamPoolCidrCommand,\n DeprovisionPublicIpv4PoolCidrCommand: () => DeprovisionPublicIpv4PoolCidrCommand,\n DeregisterImageCommand: () => DeregisterImageCommand,\n DeregisterInstanceEventNotificationAttributesCommand: () => DeregisterInstanceEventNotificationAttributesCommand,\n DeregisterTransitGatewayMulticastGroupMembersCommand: () => DeregisterTransitGatewayMulticastGroupMembersCommand,\n DeregisterTransitGatewayMulticastGroupSourcesCommand: () => DeregisterTransitGatewayMulticastGroupSourcesCommand,\n DescribeAccountAttributesCommand: () => DescribeAccountAttributesCommand,\n DescribeAddressTransfersCommand: () => DescribeAddressTransfersCommand,\n DescribeAddressesAttributeCommand: () => DescribeAddressesAttributeCommand,\n DescribeAddressesCommand: () => DescribeAddressesCommand,\n DescribeAggregateIdFormatCommand: () => DescribeAggregateIdFormatCommand,\n DescribeAvailabilityZonesCommand: () => DescribeAvailabilityZonesCommand,\n DescribeAwsNetworkPerformanceMetricSubscriptionsCommand: () => DescribeAwsNetworkPerformanceMetricSubscriptionsCommand,\n DescribeBundleTasksCommand: () => DescribeBundleTasksCommand,\n DescribeBundleTasksResultFilterSensitiveLog: () => DescribeBundleTasksResultFilterSensitiveLog,\n DescribeByoipCidrsCommand: () => DescribeByoipCidrsCommand,\n DescribeCapacityBlockExtensionHistoryCommand: () => DescribeCapacityBlockExtensionHistoryCommand,\n DescribeCapacityBlockExtensionOfferingsCommand: () => DescribeCapacityBlockExtensionOfferingsCommand,\n DescribeCapacityBlockOfferingsCommand: () => DescribeCapacityBlockOfferingsCommand,\n DescribeCapacityReservationBillingRequestsCommand: () => DescribeCapacityReservationBillingRequestsCommand,\n DescribeCapacityReservationFleetsCommand: () => DescribeCapacityReservationFleetsCommand,\n DescribeCapacityReservationsCommand: () => DescribeCapacityReservationsCommand,\n DescribeCarrierGatewaysCommand: () => DescribeCarrierGatewaysCommand,\n DescribeClassicLinkInstancesCommand: () => DescribeClassicLinkInstancesCommand,\n DescribeClientVpnAuthorizationRulesCommand: () => DescribeClientVpnAuthorizationRulesCommand,\n DescribeClientVpnConnectionsCommand: () => DescribeClientVpnConnectionsCommand,\n DescribeClientVpnEndpointsCommand: () => DescribeClientVpnEndpointsCommand,\n DescribeClientVpnRoutesCommand: () => DescribeClientVpnRoutesCommand,\n DescribeClientVpnTargetNetworksCommand: () => DescribeClientVpnTargetNetworksCommand,\n DescribeCoipPoolsCommand: () => DescribeCoipPoolsCommand,\n DescribeConversionTasksCommand: () => DescribeConversionTasksCommand,\n DescribeConversionTasksResultFilterSensitiveLog: () => DescribeConversionTasksResultFilterSensitiveLog,\n DescribeCustomerGatewaysCommand: () => DescribeCustomerGatewaysCommand,\n DescribeDeclarativePoliciesReportsCommand: () => DescribeDeclarativePoliciesReportsCommand,\n DescribeDhcpOptionsCommand: () => DescribeDhcpOptionsCommand,\n DescribeEgressOnlyInternetGatewaysCommand: () => DescribeEgressOnlyInternetGatewaysCommand,\n DescribeElasticGpusCommand: () => DescribeElasticGpusCommand,\n DescribeExportImageTasksCommand: () => DescribeExportImageTasksCommand,\n DescribeExportTasksCommand: () => DescribeExportTasksCommand,\n DescribeFastLaunchImagesCommand: () => DescribeFastLaunchImagesCommand,\n DescribeFastSnapshotRestoresCommand: () => DescribeFastSnapshotRestoresCommand,\n DescribeFleetHistoryCommand: () => DescribeFleetHistoryCommand,\n DescribeFleetInstancesCommand: () => DescribeFleetInstancesCommand,\n DescribeFleetsCommand: () => DescribeFleetsCommand,\n DescribeFlowLogsCommand: () => DescribeFlowLogsCommand,\n DescribeFpgaImageAttributeCommand: () => DescribeFpgaImageAttributeCommand,\n DescribeFpgaImagesCommand: () => DescribeFpgaImagesCommand,\n DescribeHostReservationOfferingsCommand: () => DescribeHostReservationOfferingsCommand,\n DescribeHostReservationsCommand: () => DescribeHostReservationsCommand,\n DescribeHostsCommand: () => DescribeHostsCommand,\n DescribeIamInstanceProfileAssociationsCommand: () => DescribeIamInstanceProfileAssociationsCommand,\n DescribeIdFormatCommand: () => DescribeIdFormatCommand,\n DescribeIdentityIdFormatCommand: () => DescribeIdentityIdFormatCommand,\n DescribeImageAttributeCommand: () => DescribeImageAttributeCommand,\n DescribeImagesCommand: () => DescribeImagesCommand,\n DescribeImportImageTasksCommand: () => DescribeImportImageTasksCommand,\n DescribeImportImageTasksResultFilterSensitiveLog: () => DescribeImportImageTasksResultFilterSensitiveLog,\n DescribeImportSnapshotTasksCommand: () => DescribeImportSnapshotTasksCommand,\n DescribeImportSnapshotTasksResultFilterSensitiveLog: () => DescribeImportSnapshotTasksResultFilterSensitiveLog,\n DescribeInstanceAttributeCommand: () => DescribeInstanceAttributeCommand,\n DescribeInstanceConnectEndpointsCommand: () => DescribeInstanceConnectEndpointsCommand,\n DescribeInstanceCreditSpecificationsCommand: () => DescribeInstanceCreditSpecificationsCommand,\n DescribeInstanceEventNotificationAttributesCommand: () => DescribeInstanceEventNotificationAttributesCommand,\n DescribeInstanceEventWindowsCommand: () => DescribeInstanceEventWindowsCommand,\n DescribeInstanceImageMetadataCommand: () => DescribeInstanceImageMetadataCommand,\n DescribeInstanceStatusCommand: () => DescribeInstanceStatusCommand,\n DescribeInstanceTopologyCommand: () => DescribeInstanceTopologyCommand,\n DescribeInstanceTypeOfferingsCommand: () => DescribeInstanceTypeOfferingsCommand,\n DescribeInstanceTypesCommand: () => DescribeInstanceTypesCommand,\n DescribeInstancesCommand: () => DescribeInstancesCommand,\n DescribeInternetGatewaysCommand: () => DescribeInternetGatewaysCommand,\n DescribeIpamByoasnCommand: () => DescribeIpamByoasnCommand,\n DescribeIpamExternalResourceVerificationTokensCommand: () => DescribeIpamExternalResourceVerificationTokensCommand,\n DescribeIpamPoolsCommand: () => DescribeIpamPoolsCommand,\n DescribeIpamResourceDiscoveriesCommand: () => DescribeIpamResourceDiscoveriesCommand,\n DescribeIpamResourceDiscoveryAssociationsCommand: () => DescribeIpamResourceDiscoveryAssociationsCommand,\n DescribeIpamScopesCommand: () => DescribeIpamScopesCommand,\n DescribeIpamsCommand: () => DescribeIpamsCommand,\n DescribeIpv6PoolsCommand: () => DescribeIpv6PoolsCommand,\n DescribeKeyPairsCommand: () => DescribeKeyPairsCommand,\n DescribeLaunchTemplateVersionsCommand: () => DescribeLaunchTemplateVersionsCommand,\n DescribeLaunchTemplateVersionsResultFilterSensitiveLog: () => DescribeLaunchTemplateVersionsResultFilterSensitiveLog,\n DescribeLaunchTemplatesCommand: () => DescribeLaunchTemplatesCommand,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand: () => DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n DescribeLocalGatewayRouteTableVpcAssociationsCommand: () => DescribeLocalGatewayRouteTableVpcAssociationsCommand,\n DescribeLocalGatewayRouteTablesCommand: () => DescribeLocalGatewayRouteTablesCommand,\n DescribeLocalGatewayVirtualInterfaceGroupsCommand: () => DescribeLocalGatewayVirtualInterfaceGroupsCommand,\n DescribeLocalGatewayVirtualInterfacesCommand: () => DescribeLocalGatewayVirtualInterfacesCommand,\n DescribeLocalGatewaysCommand: () => DescribeLocalGatewaysCommand,\n DescribeLockedSnapshotsCommand: () => DescribeLockedSnapshotsCommand,\n DescribeMacHostsCommand: () => DescribeMacHostsCommand,\n DescribeManagedPrefixListsCommand: () => DescribeManagedPrefixListsCommand,\n DescribeMovingAddressesCommand: () => DescribeMovingAddressesCommand,\n DescribeNatGatewaysCommand: () => DescribeNatGatewaysCommand,\n DescribeNetworkAclsCommand: () => DescribeNetworkAclsCommand,\n DescribeNetworkInsightsAccessScopeAnalysesCommand: () => DescribeNetworkInsightsAccessScopeAnalysesCommand,\n DescribeNetworkInsightsAccessScopesCommand: () => DescribeNetworkInsightsAccessScopesCommand,\n DescribeNetworkInsightsAnalysesCommand: () => DescribeNetworkInsightsAnalysesCommand,\n DescribeNetworkInsightsPathsCommand: () => DescribeNetworkInsightsPathsCommand,\n DescribeNetworkInterfaceAttributeCommand: () => DescribeNetworkInterfaceAttributeCommand,\n DescribeNetworkInterfacePermissionsCommand: () => DescribeNetworkInterfacePermissionsCommand,\n DescribeNetworkInterfacesCommand: () => DescribeNetworkInterfacesCommand,\n DescribeOutpostLagsCommand: () => DescribeOutpostLagsCommand,\n DescribePlacementGroupsCommand: () => DescribePlacementGroupsCommand,\n DescribePrefixListsCommand: () => DescribePrefixListsCommand,\n DescribePrincipalIdFormatCommand: () => DescribePrincipalIdFormatCommand,\n DescribePublicIpv4PoolsCommand: () => DescribePublicIpv4PoolsCommand,\n DescribeRegionsCommand: () => DescribeRegionsCommand,\n DescribeReplaceRootVolumeTasksCommand: () => DescribeReplaceRootVolumeTasksCommand,\n DescribeReservedInstancesCommand: () => DescribeReservedInstancesCommand,\n DescribeReservedInstancesListingsCommand: () => DescribeReservedInstancesListingsCommand,\n DescribeReservedInstancesModificationsCommand: () => DescribeReservedInstancesModificationsCommand,\n DescribeReservedInstancesOfferingsCommand: () => DescribeReservedInstancesOfferingsCommand,\n DescribeRouteServerEndpointsCommand: () => DescribeRouteServerEndpointsCommand,\n DescribeRouteServerPeersCommand: () => DescribeRouteServerPeersCommand,\n DescribeRouteServersCommand: () => DescribeRouteServersCommand,\n DescribeRouteTablesCommand: () => DescribeRouteTablesCommand,\n DescribeScheduledInstanceAvailabilityCommand: () => DescribeScheduledInstanceAvailabilityCommand,\n DescribeScheduledInstancesCommand: () => DescribeScheduledInstancesCommand,\n DescribeSecurityGroupReferencesCommand: () => DescribeSecurityGroupReferencesCommand,\n DescribeSecurityGroupRulesCommand: () => DescribeSecurityGroupRulesCommand,\n DescribeSecurityGroupVpcAssociationsCommand: () => DescribeSecurityGroupVpcAssociationsCommand,\n DescribeSecurityGroupsCommand: () => DescribeSecurityGroupsCommand,\n DescribeServiceLinkVirtualInterfacesCommand: () => DescribeServiceLinkVirtualInterfacesCommand,\n DescribeSnapshotAttributeCommand: () => DescribeSnapshotAttributeCommand,\n DescribeSnapshotTierStatusCommand: () => DescribeSnapshotTierStatusCommand,\n DescribeSnapshotsCommand: () => DescribeSnapshotsCommand,\n DescribeSpotDatafeedSubscriptionCommand: () => DescribeSpotDatafeedSubscriptionCommand,\n DescribeSpotFleetInstancesCommand: () => DescribeSpotFleetInstancesCommand,\n DescribeSpotFleetRequestHistoryCommand: () => DescribeSpotFleetRequestHistoryCommand,\n DescribeSpotFleetRequestsCommand: () => DescribeSpotFleetRequestsCommand,\n DescribeSpotFleetRequestsResponseFilterSensitiveLog: () => DescribeSpotFleetRequestsResponseFilterSensitiveLog,\n DescribeSpotInstanceRequestsCommand: () => DescribeSpotInstanceRequestsCommand,\n DescribeSpotInstanceRequestsResultFilterSensitiveLog: () => DescribeSpotInstanceRequestsResultFilterSensitiveLog,\n DescribeSpotPriceHistoryCommand: () => DescribeSpotPriceHistoryCommand,\n DescribeStaleSecurityGroupsCommand: () => DescribeStaleSecurityGroupsCommand,\n DescribeStoreImageTasksCommand: () => DescribeStoreImageTasksCommand,\n DescribeSubnetsCommand: () => DescribeSubnetsCommand,\n DescribeTagsCommand: () => DescribeTagsCommand,\n DescribeTrafficMirrorFilterRulesCommand: () => DescribeTrafficMirrorFilterRulesCommand,\n DescribeTrafficMirrorFiltersCommand: () => DescribeTrafficMirrorFiltersCommand,\n DescribeTrafficMirrorSessionsCommand: () => DescribeTrafficMirrorSessionsCommand,\n DescribeTrafficMirrorTargetsCommand: () => DescribeTrafficMirrorTargetsCommand,\n DescribeTransitGatewayAttachmentsCommand: () => DescribeTransitGatewayAttachmentsCommand,\n DescribeTransitGatewayConnectPeersCommand: () => DescribeTransitGatewayConnectPeersCommand,\n DescribeTransitGatewayConnectsCommand: () => DescribeTransitGatewayConnectsCommand,\n DescribeTransitGatewayMulticastDomainsCommand: () => DescribeTransitGatewayMulticastDomainsCommand,\n DescribeTransitGatewayPeeringAttachmentsCommand: () => DescribeTransitGatewayPeeringAttachmentsCommand,\n DescribeTransitGatewayPolicyTablesCommand: () => DescribeTransitGatewayPolicyTablesCommand,\n DescribeTransitGatewayRouteTableAnnouncementsCommand: () => DescribeTransitGatewayRouteTableAnnouncementsCommand,\n DescribeTransitGatewayRouteTablesCommand: () => DescribeTransitGatewayRouteTablesCommand,\n DescribeTransitGatewayVpcAttachmentsCommand: () => DescribeTransitGatewayVpcAttachmentsCommand,\n DescribeTransitGatewaysCommand: () => DescribeTransitGatewaysCommand,\n DescribeTrunkInterfaceAssociationsCommand: () => DescribeTrunkInterfaceAssociationsCommand,\n DescribeVerifiedAccessEndpointsCommand: () => DescribeVerifiedAccessEndpointsCommand,\n DescribeVerifiedAccessGroupsCommand: () => DescribeVerifiedAccessGroupsCommand,\n DescribeVerifiedAccessInstanceLoggingConfigurationsCommand: () => DescribeVerifiedAccessInstanceLoggingConfigurationsCommand,\n DescribeVerifiedAccessInstancesCommand: () => DescribeVerifiedAccessInstancesCommand,\n DescribeVerifiedAccessTrustProvidersCommand: () => DescribeVerifiedAccessTrustProvidersCommand,\n DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog: () => DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog,\n DescribeVolumeAttributeCommand: () => DescribeVolumeAttributeCommand,\n DescribeVolumeStatusCommand: () => DescribeVolumeStatusCommand,\n DescribeVolumesCommand: () => DescribeVolumesCommand,\n DescribeVolumesModificationsCommand: () => DescribeVolumesModificationsCommand,\n DescribeVpcAttributeCommand: () => DescribeVpcAttributeCommand,\n DescribeVpcBlockPublicAccessExclusionsCommand: () => DescribeVpcBlockPublicAccessExclusionsCommand,\n DescribeVpcBlockPublicAccessOptionsCommand: () => DescribeVpcBlockPublicAccessOptionsCommand,\n DescribeVpcClassicLinkCommand: () => DescribeVpcClassicLinkCommand,\n DescribeVpcClassicLinkDnsSupportCommand: () => DescribeVpcClassicLinkDnsSupportCommand,\n DescribeVpcEndpointAssociationsCommand: () => DescribeVpcEndpointAssociationsCommand,\n DescribeVpcEndpointConnectionNotificationsCommand: () => DescribeVpcEndpointConnectionNotificationsCommand,\n DescribeVpcEndpointConnectionsCommand: () => DescribeVpcEndpointConnectionsCommand,\n DescribeVpcEndpointServiceConfigurationsCommand: () => DescribeVpcEndpointServiceConfigurationsCommand,\n DescribeVpcEndpointServicePermissionsCommand: () => DescribeVpcEndpointServicePermissionsCommand,\n DescribeVpcEndpointServicesCommand: () => DescribeVpcEndpointServicesCommand,\n DescribeVpcEndpointsCommand: () => DescribeVpcEndpointsCommand,\n DescribeVpcPeeringConnectionsCommand: () => DescribeVpcPeeringConnectionsCommand,\n DescribeVpcsCommand: () => DescribeVpcsCommand,\n DescribeVpnConnectionsCommand: () => DescribeVpnConnectionsCommand,\n DescribeVpnConnectionsResultFilterSensitiveLog: () => DescribeVpnConnectionsResultFilterSensitiveLog,\n DescribeVpnGatewaysCommand: () => DescribeVpnGatewaysCommand,\n DestinationFileFormat: () => DestinationFileFormat,\n DetachClassicLinkVpcCommand: () => DetachClassicLinkVpcCommand,\n DetachInternetGatewayCommand: () => DetachInternetGatewayCommand,\n DetachNetworkInterfaceCommand: () => DetachNetworkInterfaceCommand,\n DetachVerifiedAccessTrustProviderCommand: () => DetachVerifiedAccessTrustProviderCommand,\n DetachVerifiedAccessTrustProviderResultFilterSensitiveLog: () => DetachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n DetachVolumeCommand: () => DetachVolumeCommand,\n DetachVpnGatewayCommand: () => DetachVpnGatewayCommand,\n DeviceTrustProviderType: () => DeviceTrustProviderType,\n DeviceType: () => DeviceType,\n DisableAddressTransferCommand: () => DisableAddressTransferCommand,\n DisableAllowedImagesSettingsCommand: () => DisableAllowedImagesSettingsCommand,\n DisableAwsNetworkPerformanceMetricSubscriptionCommand: () => DisableAwsNetworkPerformanceMetricSubscriptionCommand,\n DisableEbsEncryptionByDefaultCommand: () => DisableEbsEncryptionByDefaultCommand,\n DisableFastLaunchCommand: () => DisableFastLaunchCommand,\n DisableFastSnapshotRestoresCommand: () => DisableFastSnapshotRestoresCommand,\n DisableImageBlockPublicAccessCommand: () => DisableImageBlockPublicAccessCommand,\n DisableImageCommand: () => DisableImageCommand,\n DisableImageDeprecationCommand: () => DisableImageDeprecationCommand,\n DisableImageDeregistrationProtectionCommand: () => DisableImageDeregistrationProtectionCommand,\n DisableIpamOrganizationAdminAccountCommand: () => DisableIpamOrganizationAdminAccountCommand,\n DisableRouteServerPropagationCommand: () => DisableRouteServerPropagationCommand,\n DisableSerialConsoleAccessCommand: () => DisableSerialConsoleAccessCommand,\n DisableSnapshotBlockPublicAccessCommand: () => DisableSnapshotBlockPublicAccessCommand,\n DisableTransitGatewayRouteTablePropagationCommand: () => DisableTransitGatewayRouteTablePropagationCommand,\n DisableVgwRoutePropagationCommand: () => DisableVgwRoutePropagationCommand,\n DisableVpcClassicLinkCommand: () => DisableVpcClassicLinkCommand,\n DisableVpcClassicLinkDnsSupportCommand: () => DisableVpcClassicLinkDnsSupportCommand,\n DisassociateAddressCommand: () => DisassociateAddressCommand,\n DisassociateCapacityReservationBillingOwnerCommand: () => DisassociateCapacityReservationBillingOwnerCommand,\n DisassociateClientVpnTargetNetworkCommand: () => DisassociateClientVpnTargetNetworkCommand,\n DisassociateEnclaveCertificateIamRoleCommand: () => DisassociateEnclaveCertificateIamRoleCommand,\n DisassociateIamInstanceProfileCommand: () => DisassociateIamInstanceProfileCommand,\n DisassociateInstanceEventWindowCommand: () => DisassociateInstanceEventWindowCommand,\n DisassociateIpamByoasnCommand: () => DisassociateIpamByoasnCommand,\n DisassociateIpamResourceDiscoveryCommand: () => DisassociateIpamResourceDiscoveryCommand,\n DisassociateNatGatewayAddressCommand: () => DisassociateNatGatewayAddressCommand,\n DisassociateRouteServerCommand: () => DisassociateRouteServerCommand,\n DisassociateRouteTableCommand: () => DisassociateRouteTableCommand,\n DisassociateSecurityGroupVpcCommand: () => DisassociateSecurityGroupVpcCommand,\n DisassociateSubnetCidrBlockCommand: () => DisassociateSubnetCidrBlockCommand,\n DisassociateTransitGatewayMulticastDomainCommand: () => DisassociateTransitGatewayMulticastDomainCommand,\n DisassociateTransitGatewayPolicyTableCommand: () => DisassociateTransitGatewayPolicyTableCommand,\n DisassociateTransitGatewayRouteTableCommand: () => DisassociateTransitGatewayRouteTableCommand,\n DisassociateTrunkInterfaceCommand: () => DisassociateTrunkInterfaceCommand,\n DisassociateVpcCidrBlockCommand: () => DisassociateVpcCidrBlockCommand,\n DiskImageDescriptionFilterSensitiveLog: () => DiskImageDescriptionFilterSensitiveLog,\n DiskImageDetailFilterSensitiveLog: () => DiskImageDetailFilterSensitiveLog,\n DiskImageFilterSensitiveLog: () => DiskImageFilterSensitiveLog,\n DiskImageFormat: () => DiskImageFormat,\n DiskType: () => DiskType,\n DnsNameState: () => DnsNameState,\n DnsRecordIpType: () => DnsRecordIpType,\n DnsSupportValue: () => DnsSupportValue,\n DomainType: () => DomainType,\n DynamicRoutingValue: () => DynamicRoutingValue,\n EC2: () => EC2,\n EC2Client: () => EC2Client,\n EC2ServiceException: () => EC2ServiceException,\n EbsEncryptionSupport: () => EbsEncryptionSupport,\n EbsNvmeSupport: () => EbsNvmeSupport,\n EbsOptimizedSupport: () => EbsOptimizedSupport,\n Ec2InstanceConnectEndpointState: () => Ec2InstanceConnectEndpointState,\n EkPubKeyFormat: () => EkPubKeyFormat,\n EkPubKeyType: () => EkPubKeyType,\n ElasticGpuState: () => ElasticGpuState,\n ElasticGpuStatus: () => ElasticGpuStatus,\n EnaSupport: () => EnaSupport,\n EnableAddressTransferCommand: () => EnableAddressTransferCommand,\n EnableAllowedImagesSettingsCommand: () => EnableAllowedImagesSettingsCommand,\n EnableAwsNetworkPerformanceMetricSubscriptionCommand: () => EnableAwsNetworkPerformanceMetricSubscriptionCommand,\n EnableEbsEncryptionByDefaultCommand: () => EnableEbsEncryptionByDefaultCommand,\n EnableFastLaunchCommand: () => EnableFastLaunchCommand,\n EnableFastSnapshotRestoresCommand: () => EnableFastSnapshotRestoresCommand,\n EnableImageBlockPublicAccessCommand: () => EnableImageBlockPublicAccessCommand,\n EnableImageCommand: () => EnableImageCommand,\n EnableImageDeprecationCommand: () => EnableImageDeprecationCommand,\n EnableImageDeregistrationProtectionCommand: () => EnableImageDeregistrationProtectionCommand,\n EnableIpamOrganizationAdminAccountCommand: () => EnableIpamOrganizationAdminAccountCommand,\n EnableReachabilityAnalyzerOrganizationSharingCommand: () => EnableReachabilityAnalyzerOrganizationSharingCommand,\n EnableRouteServerPropagationCommand: () => EnableRouteServerPropagationCommand,\n EnableSerialConsoleAccessCommand: () => EnableSerialConsoleAccessCommand,\n EnableSnapshotBlockPublicAccessCommand: () => EnableSnapshotBlockPublicAccessCommand,\n EnableTransitGatewayRouteTablePropagationCommand: () => EnableTransitGatewayRouteTablePropagationCommand,\n EnableVgwRoutePropagationCommand: () => EnableVgwRoutePropagationCommand,\n EnableVolumeIOCommand: () => EnableVolumeIOCommand,\n EnableVpcClassicLinkCommand: () => EnableVpcClassicLinkCommand,\n EnableVpcClassicLinkDnsSupportCommand: () => EnableVpcClassicLinkDnsSupportCommand,\n EndDateType: () => EndDateType,\n EphemeralNvmeSupport: () => EphemeralNvmeSupport,\n EventCode: () => EventCode,\n EventType: () => EventType,\n ExcessCapacityTerminationPolicy: () => ExcessCapacityTerminationPolicy,\n ExportClientVpnClientCertificateRevocationListCommand: () => ExportClientVpnClientCertificateRevocationListCommand,\n ExportClientVpnClientConfigurationCommand: () => ExportClientVpnClientConfigurationCommand,\n ExportEnvironment: () => ExportEnvironment,\n ExportImageCommand: () => ExportImageCommand,\n ExportTaskState: () => ExportTaskState,\n ExportTransitGatewayRoutesCommand: () => ExportTransitGatewayRoutesCommand,\n ExportVerifiedAccessInstanceClientConfigurationCommand: () => ExportVerifiedAccessInstanceClientConfigurationCommand,\n ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog: () => ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog,\n FastLaunchResourceType: () => FastLaunchResourceType,\n FastLaunchStateCode: () => FastLaunchStateCode,\n FastSnapshotRestoreStateCode: () => FastSnapshotRestoreStateCode,\n FindingsFound: () => FindingsFound,\n FleetActivityStatus: () => FleetActivityStatus,\n FleetCapacityReservationTenancy: () => FleetCapacityReservationTenancy,\n FleetCapacityReservationUsageStrategy: () => FleetCapacityReservationUsageStrategy,\n FleetEventType: () => FleetEventType,\n FleetExcessCapacityTerminationPolicy: () => FleetExcessCapacityTerminationPolicy,\n FleetInstanceMatchCriteria: () => FleetInstanceMatchCriteria,\n FleetOnDemandAllocationStrategy: () => FleetOnDemandAllocationStrategy,\n FleetReplacementStrategy: () => FleetReplacementStrategy,\n FleetStateCode: () => FleetStateCode,\n FleetType: () => FleetType,\n FlexibleEnaQueuesSupport: () => FlexibleEnaQueuesSupport,\n FlowLogsResourceType: () => FlowLogsResourceType,\n FpgaImageAttributeName: () => FpgaImageAttributeName,\n FpgaImageStateCode: () => FpgaImageStateCode,\n GatewayAssociationState: () => GatewayAssociationState,\n GatewayType: () => GatewayType,\n GetAllowedImagesSettingsCommand: () => GetAllowedImagesSettingsCommand,\n GetAssociatedEnclaveCertificateIamRolesCommand: () => GetAssociatedEnclaveCertificateIamRolesCommand,\n GetAssociatedIpv6PoolCidrsCommand: () => GetAssociatedIpv6PoolCidrsCommand,\n GetAwsNetworkPerformanceDataCommand: () => GetAwsNetworkPerformanceDataCommand,\n GetCapacityReservationUsageCommand: () => GetCapacityReservationUsageCommand,\n GetCoipPoolUsageCommand: () => GetCoipPoolUsageCommand,\n GetConsoleOutputCommand: () => GetConsoleOutputCommand,\n GetConsoleScreenshotCommand: () => GetConsoleScreenshotCommand,\n GetDeclarativePoliciesReportSummaryCommand: () => GetDeclarativePoliciesReportSummaryCommand,\n GetDefaultCreditSpecificationCommand: () => GetDefaultCreditSpecificationCommand,\n GetEbsDefaultKmsKeyIdCommand: () => GetEbsDefaultKmsKeyIdCommand,\n GetEbsEncryptionByDefaultCommand: () => GetEbsEncryptionByDefaultCommand,\n GetFlowLogsIntegrationTemplateCommand: () => GetFlowLogsIntegrationTemplateCommand,\n GetGroupsForCapacityReservationCommand: () => GetGroupsForCapacityReservationCommand,\n GetHostReservationPurchasePreviewCommand: () => GetHostReservationPurchasePreviewCommand,\n GetImageBlockPublicAccessStateCommand: () => GetImageBlockPublicAccessStateCommand,\n GetInstanceMetadataDefaultsCommand: () => GetInstanceMetadataDefaultsCommand,\n GetInstanceTpmEkPubCommand: () => GetInstanceTpmEkPubCommand,\n GetInstanceTpmEkPubResultFilterSensitiveLog: () => GetInstanceTpmEkPubResultFilterSensitiveLog,\n GetInstanceTypesFromInstanceRequirementsCommand: () => GetInstanceTypesFromInstanceRequirementsCommand,\n GetInstanceUefiDataCommand: () => GetInstanceUefiDataCommand,\n GetIpamAddressHistoryCommand: () => GetIpamAddressHistoryCommand,\n GetIpamDiscoveredAccountsCommand: () => GetIpamDiscoveredAccountsCommand,\n GetIpamDiscoveredPublicAddressesCommand: () => GetIpamDiscoveredPublicAddressesCommand,\n GetIpamDiscoveredResourceCidrsCommand: () => GetIpamDiscoveredResourceCidrsCommand,\n GetIpamPoolAllocationsCommand: () => GetIpamPoolAllocationsCommand,\n GetIpamPoolCidrsCommand: () => GetIpamPoolCidrsCommand,\n GetIpamResourceCidrsCommand: () => GetIpamResourceCidrsCommand,\n GetLaunchTemplateDataCommand: () => GetLaunchTemplateDataCommand,\n GetLaunchTemplateDataResultFilterSensitiveLog: () => GetLaunchTemplateDataResultFilterSensitiveLog,\n GetManagedPrefixListAssociationsCommand: () => GetManagedPrefixListAssociationsCommand,\n GetManagedPrefixListEntriesCommand: () => GetManagedPrefixListEntriesCommand,\n GetNetworkInsightsAccessScopeAnalysisFindingsCommand: () => GetNetworkInsightsAccessScopeAnalysisFindingsCommand,\n GetNetworkInsightsAccessScopeContentCommand: () => GetNetworkInsightsAccessScopeContentCommand,\n GetPasswordDataCommand: () => GetPasswordDataCommand,\n GetPasswordDataResultFilterSensitiveLog: () => GetPasswordDataResultFilterSensitiveLog,\n GetReservedInstancesExchangeQuoteCommand: () => GetReservedInstancesExchangeQuoteCommand,\n GetRouteServerAssociationsCommand: () => GetRouteServerAssociationsCommand,\n GetRouteServerPropagationsCommand: () => GetRouteServerPropagationsCommand,\n GetRouteServerRoutingDatabaseCommand: () => GetRouteServerRoutingDatabaseCommand,\n GetSecurityGroupsForVpcCommand: () => GetSecurityGroupsForVpcCommand,\n GetSerialConsoleAccessStatusCommand: () => GetSerialConsoleAccessStatusCommand,\n GetSnapshotBlockPublicAccessStateCommand: () => GetSnapshotBlockPublicAccessStateCommand,\n GetSpotPlacementScoresCommand: () => GetSpotPlacementScoresCommand,\n GetSubnetCidrReservationsCommand: () => GetSubnetCidrReservationsCommand,\n GetTransitGatewayAttachmentPropagationsCommand: () => GetTransitGatewayAttachmentPropagationsCommand,\n GetTransitGatewayMulticastDomainAssociationsCommand: () => GetTransitGatewayMulticastDomainAssociationsCommand,\n GetTransitGatewayPolicyTableAssociationsCommand: () => GetTransitGatewayPolicyTableAssociationsCommand,\n GetTransitGatewayPolicyTableEntriesCommand: () => GetTransitGatewayPolicyTableEntriesCommand,\n GetTransitGatewayPrefixListReferencesCommand: () => GetTransitGatewayPrefixListReferencesCommand,\n GetTransitGatewayRouteTableAssociationsCommand: () => GetTransitGatewayRouteTableAssociationsCommand,\n GetTransitGatewayRouteTablePropagationsCommand: () => GetTransitGatewayRouteTablePropagationsCommand,\n GetVerifiedAccessEndpointPolicyCommand: () => GetVerifiedAccessEndpointPolicyCommand,\n GetVerifiedAccessEndpointTargetsCommand: () => GetVerifiedAccessEndpointTargetsCommand,\n GetVerifiedAccessGroupPolicyCommand: () => GetVerifiedAccessGroupPolicyCommand,\n GetVpnConnectionDeviceSampleConfigurationCommand: () => GetVpnConnectionDeviceSampleConfigurationCommand,\n GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog: () => GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog,\n GetVpnConnectionDeviceTypesCommand: () => GetVpnConnectionDeviceTypesCommand,\n GetVpnTunnelReplacementStatusCommand: () => GetVpnTunnelReplacementStatusCommand,\n HostMaintenance: () => HostMaintenance,\n HostRecovery: () => HostRecovery,\n HostTenancy: () => HostTenancy,\n HostnameType: () => HostnameType,\n HttpTokensState: () => HttpTokensState,\n HypervisorType: () => HypervisorType,\n IamInstanceProfileAssociationState: () => IamInstanceProfileAssociationState,\n Igmpv2SupportValue: () => Igmpv2SupportValue,\n ImageAttributeName: () => ImageAttributeName,\n ImageBlockPublicAccessDisabledState: () => ImageBlockPublicAccessDisabledState,\n ImageBlockPublicAccessEnabledState: () => ImageBlockPublicAccessEnabledState,\n ImageDiskContainerFilterSensitiveLog: () => ImageDiskContainerFilterSensitiveLog,\n ImageState: () => ImageState,\n ImageTypeValues: () => ImageTypeValues,\n ImdsSupportValues: () => ImdsSupportValues,\n ImportClientVpnClientCertificateRevocationListCommand: () => ImportClientVpnClientCertificateRevocationListCommand,\n ImportImageCommand: () => ImportImageCommand,\n ImportImageRequestFilterSensitiveLog: () => ImportImageRequestFilterSensitiveLog,\n ImportImageResultFilterSensitiveLog: () => ImportImageResultFilterSensitiveLog,\n ImportImageTaskFilterSensitiveLog: () => ImportImageTaskFilterSensitiveLog,\n ImportInstanceCommand: () => ImportInstanceCommand,\n ImportInstanceLaunchSpecificationFilterSensitiveLog: () => ImportInstanceLaunchSpecificationFilterSensitiveLog,\n ImportInstanceRequestFilterSensitiveLog: () => ImportInstanceRequestFilterSensitiveLog,\n ImportInstanceResultFilterSensitiveLog: () => ImportInstanceResultFilterSensitiveLog,\n ImportInstanceTaskDetailsFilterSensitiveLog: () => ImportInstanceTaskDetailsFilterSensitiveLog,\n ImportInstanceVolumeDetailItemFilterSensitiveLog: () => ImportInstanceVolumeDetailItemFilterSensitiveLog,\n ImportKeyPairCommand: () => ImportKeyPairCommand,\n ImportSnapshotCommand: () => ImportSnapshotCommand,\n ImportSnapshotRequestFilterSensitiveLog: () => ImportSnapshotRequestFilterSensitiveLog,\n ImportSnapshotResultFilterSensitiveLog: () => ImportSnapshotResultFilterSensitiveLog,\n ImportSnapshotTaskFilterSensitiveLog: () => ImportSnapshotTaskFilterSensitiveLog,\n ImportVolumeCommand: () => ImportVolumeCommand,\n ImportVolumeRequestFilterSensitiveLog: () => ImportVolumeRequestFilterSensitiveLog,\n ImportVolumeResultFilterSensitiveLog: () => ImportVolumeResultFilterSensitiveLog,\n ImportVolumeTaskDetailsFilterSensitiveLog: () => ImportVolumeTaskDetailsFilterSensitiveLog,\n InstanceAttributeName: () => InstanceAttributeName,\n InstanceAutoRecoveryState: () => InstanceAutoRecoveryState,\n InstanceBandwidthWeighting: () => InstanceBandwidthWeighting,\n InstanceBootModeValues: () => InstanceBootModeValues,\n InstanceEventWindowState: () => InstanceEventWindowState,\n InstanceGeneration: () => InstanceGeneration,\n InstanceHealthStatus: () => InstanceHealthStatus,\n InstanceInterruptionBehavior: () => InstanceInterruptionBehavior,\n InstanceLifecycle: () => InstanceLifecycle,\n InstanceLifecycleType: () => InstanceLifecycleType,\n InstanceMatchCriteria: () => InstanceMatchCriteria,\n InstanceMetadataEndpointState: () => InstanceMetadataEndpointState,\n InstanceMetadataOptionsState: () => InstanceMetadataOptionsState,\n InstanceMetadataProtocolState: () => InstanceMetadataProtocolState,\n InstanceMetadataTagsState: () => InstanceMetadataTagsState,\n InstanceStateName: () => InstanceStateName,\n InstanceStorageEncryptionSupport: () => InstanceStorageEncryptionSupport,\n InstanceTypeHypervisor: () => InstanceTypeHypervisor,\n InterfacePermissionType: () => InterfacePermissionType,\n InterfaceProtocolType: () => InterfaceProtocolType,\n InternetGatewayBlockMode: () => InternetGatewayBlockMode,\n InternetGatewayExclusionMode: () => InternetGatewayExclusionMode,\n IpAddressType: () => IpAddressType,\n IpSource: () => IpSource,\n IpamAddressHistoryResourceType: () => IpamAddressHistoryResourceType,\n IpamAssociatedResourceDiscoveryStatus: () => IpamAssociatedResourceDiscoveryStatus,\n IpamComplianceStatus: () => IpamComplianceStatus,\n IpamDiscoveryFailureCode: () => IpamDiscoveryFailureCode,\n IpamExternalResourceVerificationTokenState: () => IpamExternalResourceVerificationTokenState,\n IpamManagementState: () => IpamManagementState,\n IpamMeteredAccount: () => IpamMeteredAccount,\n IpamNetworkInterfaceAttachmentStatus: () => IpamNetworkInterfaceAttachmentStatus,\n IpamOverlapStatus: () => IpamOverlapStatus,\n IpamPoolAllocationResourceType: () => IpamPoolAllocationResourceType,\n IpamPoolAwsService: () => IpamPoolAwsService,\n IpamPoolCidrFailureCode: () => IpamPoolCidrFailureCode,\n IpamPoolCidrState: () => IpamPoolCidrState,\n IpamPoolPublicIpSource: () => IpamPoolPublicIpSource,\n IpamPoolSourceResourceType: () => IpamPoolSourceResourceType,\n IpamPoolState: () => IpamPoolState,\n IpamPublicAddressAssociationStatus: () => IpamPublicAddressAssociationStatus,\n IpamPublicAddressAwsService: () => IpamPublicAddressAwsService,\n IpamPublicAddressType: () => IpamPublicAddressType,\n IpamResourceCidrIpSource: () => IpamResourceCidrIpSource,\n IpamResourceDiscoveryAssociationState: () => IpamResourceDiscoveryAssociationState,\n IpamResourceDiscoveryState: () => IpamResourceDiscoveryState,\n IpamResourceType: () => IpamResourceType,\n IpamScopeState: () => IpamScopeState,\n IpamScopeType: () => IpamScopeType,\n IpamState: () => IpamState,\n IpamTier: () => IpamTier,\n Ipv6AddressAttribute: () => Ipv6AddressAttribute,\n Ipv6SupportValue: () => Ipv6SupportValue,\n KeyFormat: () => KeyFormat,\n KeyPairFilterSensitiveLog: () => KeyPairFilterSensitiveLog,\n KeyType: () => KeyType,\n LaunchSpecificationFilterSensitiveLog: () => LaunchSpecificationFilterSensitiveLog,\n LaunchTemplateAutoRecoveryState: () => LaunchTemplateAutoRecoveryState,\n LaunchTemplateErrorCode: () => LaunchTemplateErrorCode,\n LaunchTemplateHttpTokensState: () => LaunchTemplateHttpTokensState,\n LaunchTemplateInstanceMetadataEndpointState: () => LaunchTemplateInstanceMetadataEndpointState,\n LaunchTemplateInstanceMetadataOptionsState: () => LaunchTemplateInstanceMetadataOptionsState,\n LaunchTemplateInstanceMetadataProtocolIpv6: () => LaunchTemplateInstanceMetadataProtocolIpv6,\n LaunchTemplateInstanceMetadataTagsState: () => LaunchTemplateInstanceMetadataTagsState,\n LaunchTemplateVersionFilterSensitiveLog: () => LaunchTemplateVersionFilterSensitiveLog,\n ListImagesInRecycleBinCommand: () => ListImagesInRecycleBinCommand,\n ListSnapshotsInRecycleBinCommand: () => ListSnapshotsInRecycleBinCommand,\n ListingState: () => ListingState,\n ListingStatus: () => ListingStatus,\n LocalGatewayRouteState: () => LocalGatewayRouteState,\n LocalGatewayRouteTableMode: () => LocalGatewayRouteTableMode,\n LocalGatewayRouteType: () => LocalGatewayRouteType,\n LocalGatewayVirtualInterfaceConfigurationState: () => LocalGatewayVirtualInterfaceConfigurationState,\n LocalGatewayVirtualInterfaceGroupConfigurationState: () => LocalGatewayVirtualInterfaceGroupConfigurationState,\n LocalStorage: () => LocalStorage,\n LocalStorageType: () => LocalStorageType,\n LocationType: () => LocationType,\n LockMode: () => LockMode,\n LockSnapshotCommand: () => LockSnapshotCommand,\n LockState: () => LockState,\n LogDestinationType: () => LogDestinationType,\n ManagedBy: () => ManagedBy,\n MarketType: () => MarketType,\n MembershipType: () => MembershipType,\n MetadataDefaultHttpTokensState: () => MetadataDefaultHttpTokensState,\n MetricType: () => MetricType,\n ModifyAddressAttributeCommand: () => ModifyAddressAttributeCommand,\n ModifyAvailabilityZoneGroupCommand: () => ModifyAvailabilityZoneGroupCommand,\n ModifyAvailabilityZoneOptInStatus: () => ModifyAvailabilityZoneOptInStatus,\n ModifyCapacityReservationCommand: () => ModifyCapacityReservationCommand,\n ModifyCapacityReservationFleetCommand: () => ModifyCapacityReservationFleetCommand,\n ModifyClientVpnEndpointCommand: () => ModifyClientVpnEndpointCommand,\n ModifyDefaultCreditSpecificationCommand: () => ModifyDefaultCreditSpecificationCommand,\n ModifyEbsDefaultKmsKeyIdCommand: () => ModifyEbsDefaultKmsKeyIdCommand,\n ModifyFleetCommand: () => ModifyFleetCommand,\n ModifyFpgaImageAttributeCommand: () => ModifyFpgaImageAttributeCommand,\n ModifyHostsCommand: () => ModifyHostsCommand,\n ModifyIdFormatCommand: () => ModifyIdFormatCommand,\n ModifyIdentityIdFormatCommand: () => ModifyIdentityIdFormatCommand,\n ModifyImageAttributeCommand: () => ModifyImageAttributeCommand,\n ModifyInstanceAttributeCommand: () => ModifyInstanceAttributeCommand,\n ModifyInstanceCapacityReservationAttributesCommand: () => ModifyInstanceCapacityReservationAttributesCommand,\n ModifyInstanceCpuOptionsCommand: () => ModifyInstanceCpuOptionsCommand,\n ModifyInstanceCreditSpecificationCommand: () => ModifyInstanceCreditSpecificationCommand,\n ModifyInstanceEventStartTimeCommand: () => ModifyInstanceEventStartTimeCommand,\n ModifyInstanceEventWindowCommand: () => ModifyInstanceEventWindowCommand,\n ModifyInstanceMaintenanceOptionsCommand: () => ModifyInstanceMaintenanceOptionsCommand,\n ModifyInstanceMetadataDefaultsCommand: () => ModifyInstanceMetadataDefaultsCommand,\n ModifyInstanceMetadataOptionsCommand: () => ModifyInstanceMetadataOptionsCommand,\n ModifyInstanceNetworkPerformanceOptionsCommand: () => ModifyInstanceNetworkPerformanceOptionsCommand,\n ModifyInstancePlacementCommand: () => ModifyInstancePlacementCommand,\n ModifyIpamCommand: () => ModifyIpamCommand,\n ModifyIpamPoolCommand: () => ModifyIpamPoolCommand,\n ModifyIpamResourceCidrCommand: () => ModifyIpamResourceCidrCommand,\n ModifyIpamResourceDiscoveryCommand: () => ModifyIpamResourceDiscoveryCommand,\n ModifyIpamScopeCommand: () => ModifyIpamScopeCommand,\n ModifyLaunchTemplateCommand: () => ModifyLaunchTemplateCommand,\n ModifyLocalGatewayRouteCommand: () => ModifyLocalGatewayRouteCommand,\n ModifyManagedPrefixListCommand: () => ModifyManagedPrefixListCommand,\n ModifyNetworkInterfaceAttributeCommand: () => ModifyNetworkInterfaceAttributeCommand,\n ModifyPrivateDnsNameOptionsCommand: () => ModifyPrivateDnsNameOptionsCommand,\n ModifyReservedInstancesCommand: () => ModifyReservedInstancesCommand,\n ModifyRouteServerCommand: () => ModifyRouteServerCommand,\n ModifySecurityGroupRulesCommand: () => ModifySecurityGroupRulesCommand,\n ModifySnapshotAttributeCommand: () => ModifySnapshotAttributeCommand,\n ModifySnapshotTierCommand: () => ModifySnapshotTierCommand,\n ModifySpotFleetRequestCommand: () => ModifySpotFleetRequestCommand,\n ModifySubnetAttributeCommand: () => ModifySubnetAttributeCommand,\n ModifyTrafficMirrorFilterNetworkServicesCommand: () => ModifyTrafficMirrorFilterNetworkServicesCommand,\n ModifyTrafficMirrorFilterRuleCommand: () => ModifyTrafficMirrorFilterRuleCommand,\n ModifyTrafficMirrorSessionCommand: () => ModifyTrafficMirrorSessionCommand,\n ModifyTransitGatewayCommand: () => ModifyTransitGatewayCommand,\n ModifyTransitGatewayPrefixListReferenceCommand: () => ModifyTransitGatewayPrefixListReferenceCommand,\n ModifyTransitGatewayVpcAttachmentCommand: () => ModifyTransitGatewayVpcAttachmentCommand,\n ModifyVerifiedAccessEndpointCommand: () => ModifyVerifiedAccessEndpointCommand,\n ModifyVerifiedAccessEndpointPolicyCommand: () => ModifyVerifiedAccessEndpointPolicyCommand,\n ModifyVerifiedAccessGroupCommand: () => ModifyVerifiedAccessGroupCommand,\n ModifyVerifiedAccessGroupPolicyCommand: () => ModifyVerifiedAccessGroupPolicyCommand,\n ModifyVerifiedAccessInstanceCommand: () => ModifyVerifiedAccessInstanceCommand,\n ModifyVerifiedAccessInstanceLoggingConfigurationCommand: () => ModifyVerifiedAccessInstanceLoggingConfigurationCommand,\n ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog: () => ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderCommand: () => ModifyVerifiedAccessTrustProviderCommand,\n ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog: () => ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog: () => ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog: () => ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ModifyVolumeAttributeCommand: () => ModifyVolumeAttributeCommand,\n ModifyVolumeCommand: () => ModifyVolumeCommand,\n ModifyVpcAttributeCommand: () => ModifyVpcAttributeCommand,\n ModifyVpcBlockPublicAccessExclusionCommand: () => ModifyVpcBlockPublicAccessExclusionCommand,\n ModifyVpcBlockPublicAccessOptionsCommand: () => ModifyVpcBlockPublicAccessOptionsCommand,\n ModifyVpcEndpointCommand: () => ModifyVpcEndpointCommand,\n ModifyVpcEndpointConnectionNotificationCommand: () => ModifyVpcEndpointConnectionNotificationCommand,\n ModifyVpcEndpointServiceConfigurationCommand: () => ModifyVpcEndpointServiceConfigurationCommand,\n ModifyVpcEndpointServicePayerResponsibilityCommand: () => ModifyVpcEndpointServicePayerResponsibilityCommand,\n ModifyVpcEndpointServicePermissionsCommand: () => ModifyVpcEndpointServicePermissionsCommand,\n ModifyVpcPeeringConnectionOptionsCommand: () => ModifyVpcPeeringConnectionOptionsCommand,\n ModifyVpcTenancyCommand: () => ModifyVpcTenancyCommand,\n ModifyVpnConnectionCommand: () => ModifyVpnConnectionCommand,\n ModifyVpnConnectionOptionsCommand: () => ModifyVpnConnectionOptionsCommand,\n ModifyVpnConnectionOptionsResultFilterSensitiveLog: () => ModifyVpnConnectionOptionsResultFilterSensitiveLog,\n ModifyVpnConnectionResultFilterSensitiveLog: () => ModifyVpnConnectionResultFilterSensitiveLog,\n ModifyVpnTunnelCertificateCommand: () => ModifyVpnTunnelCertificateCommand,\n ModifyVpnTunnelCertificateResultFilterSensitiveLog: () => ModifyVpnTunnelCertificateResultFilterSensitiveLog,\n ModifyVpnTunnelOptionsCommand: () => ModifyVpnTunnelOptionsCommand,\n ModifyVpnTunnelOptionsRequestFilterSensitiveLog: () => ModifyVpnTunnelOptionsRequestFilterSensitiveLog,\n ModifyVpnTunnelOptionsResultFilterSensitiveLog: () => ModifyVpnTunnelOptionsResultFilterSensitiveLog,\n ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog: () => ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog,\n MonitorInstancesCommand: () => MonitorInstancesCommand,\n MonitoringState: () => MonitoringState,\n MoveAddressToVpcCommand: () => MoveAddressToVpcCommand,\n MoveByoipCidrToIpamCommand: () => MoveByoipCidrToIpamCommand,\n MoveCapacityReservationInstancesCommand: () => MoveCapacityReservationInstancesCommand,\n MoveStatus: () => MoveStatus,\n MulticastSupportValue: () => MulticastSupportValue,\n NatGatewayAddressStatus: () => NatGatewayAddressStatus,\n NatGatewayState: () => NatGatewayState,\n NetworkInterfaceAttribute: () => NetworkInterfaceAttribute,\n NetworkInterfaceCreationType: () => NetworkInterfaceCreationType,\n NetworkInterfacePermissionStateCode: () => NetworkInterfacePermissionStateCode,\n NetworkInterfaceStatus: () => NetworkInterfaceStatus,\n NetworkInterfaceType: () => NetworkInterfaceType,\n NitroEnclavesSupport: () => NitroEnclavesSupport,\n NitroTpmSupport: () => NitroTpmSupport,\n OfferingClassType: () => OfferingClassType,\n OfferingTypeValues: () => OfferingTypeValues,\n OidcOptionsFilterSensitiveLog: () => OidcOptionsFilterSensitiveLog,\n OnDemandAllocationStrategy: () => OnDemandAllocationStrategy,\n OperationType: () => OperationType,\n PartitionLoadFrequency: () => PartitionLoadFrequency,\n PayerResponsibility: () => PayerResponsibility,\n PaymentOption: () => PaymentOption,\n PeriodType: () => PeriodType,\n PermissionGroup: () => PermissionGroup,\n PhcSupport: () => PhcSupport,\n PlacementGroupState: () => PlacementGroupState,\n PlacementGroupStrategy: () => PlacementGroupStrategy,\n PlacementStrategy: () => PlacementStrategy,\n PlatformValues: () => PlatformValues,\n PrefixListState: () => PrefixListState,\n PrincipalType: () => PrincipalType,\n ProductCodeValues: () => ProductCodeValues,\n Protocol: () => Protocol,\n ProtocolValue: () => ProtocolValue,\n ProvisionByoipCidrCommand: () => ProvisionByoipCidrCommand,\n ProvisionIpamByoasnCommand: () => ProvisionIpamByoasnCommand,\n ProvisionIpamPoolCidrCommand: () => ProvisionIpamPoolCidrCommand,\n ProvisionPublicIpv4PoolCidrCommand: () => ProvisionPublicIpv4PoolCidrCommand,\n PurchaseCapacityBlockCommand: () => PurchaseCapacityBlockCommand,\n PurchaseCapacityBlockExtensionCommand: () => PurchaseCapacityBlockExtensionCommand,\n PurchaseHostReservationCommand: () => PurchaseHostReservationCommand,\n PurchaseReservedInstancesOfferingCommand: () => PurchaseReservedInstancesOfferingCommand,\n PurchaseScheduledInstancesCommand: () => PurchaseScheduledInstancesCommand,\n RIProductDescription: () => RIProductDescription,\n RebootInstancesCommand: () => RebootInstancesCommand,\n RecurringChargeFrequency: () => RecurringChargeFrequency,\n RegisterImageCommand: () => RegisterImageCommand,\n RegisterInstanceEventNotificationAttributesCommand: () => RegisterInstanceEventNotificationAttributesCommand,\n RegisterTransitGatewayMulticastGroupMembersCommand: () => RegisterTransitGatewayMulticastGroupMembersCommand,\n RegisterTransitGatewayMulticastGroupSourcesCommand: () => RegisterTransitGatewayMulticastGroupSourcesCommand,\n RejectCapacityReservationBillingOwnershipCommand: () => RejectCapacityReservationBillingOwnershipCommand,\n RejectTransitGatewayMulticastDomainAssociationsCommand: () => RejectTransitGatewayMulticastDomainAssociationsCommand,\n RejectTransitGatewayPeeringAttachmentCommand: () => RejectTransitGatewayPeeringAttachmentCommand,\n RejectTransitGatewayVpcAttachmentCommand: () => RejectTransitGatewayVpcAttachmentCommand,\n RejectVpcEndpointConnectionsCommand: () => RejectVpcEndpointConnectionsCommand,\n RejectVpcPeeringConnectionCommand: () => RejectVpcPeeringConnectionCommand,\n ReleaseAddressCommand: () => ReleaseAddressCommand,\n ReleaseHostsCommand: () => ReleaseHostsCommand,\n ReleaseIpamPoolAllocationCommand: () => ReleaseIpamPoolAllocationCommand,\n ReplaceIamInstanceProfileAssociationCommand: () => ReplaceIamInstanceProfileAssociationCommand,\n ReplaceImageCriteriaInAllowedImagesSettingsCommand: () => ReplaceImageCriteriaInAllowedImagesSettingsCommand,\n ReplaceNetworkAclAssociationCommand: () => ReplaceNetworkAclAssociationCommand,\n ReplaceNetworkAclEntryCommand: () => ReplaceNetworkAclEntryCommand,\n ReplaceRootVolumeTaskState: () => ReplaceRootVolumeTaskState,\n ReplaceRouteCommand: () => ReplaceRouteCommand,\n ReplaceRouteTableAssociationCommand: () => ReplaceRouteTableAssociationCommand,\n ReplaceTransitGatewayRouteCommand: () => ReplaceTransitGatewayRouteCommand,\n ReplaceVpnTunnelCommand: () => ReplaceVpnTunnelCommand,\n ReplacementStrategy: () => ReplacementStrategy,\n ReportInstanceReasonCodes: () => ReportInstanceReasonCodes,\n ReportInstanceStatusCommand: () => ReportInstanceStatusCommand,\n ReportInstanceStatusRequestFilterSensitiveLog: () => ReportInstanceStatusRequestFilterSensitiveLog,\n ReportState: () => ReportState,\n ReportStatusType: () => ReportStatusType,\n RequestLaunchTemplateDataFilterSensitiveLog: () => RequestLaunchTemplateDataFilterSensitiveLog,\n RequestSpotFleetCommand: () => RequestSpotFleetCommand,\n RequestSpotFleetRequestFilterSensitiveLog: () => RequestSpotFleetRequestFilterSensitiveLog,\n RequestSpotInstancesCommand: () => RequestSpotInstancesCommand,\n RequestSpotInstancesRequestFilterSensitiveLog: () => RequestSpotInstancesRequestFilterSensitiveLog,\n RequestSpotInstancesResultFilterSensitiveLog: () => RequestSpotInstancesResultFilterSensitiveLog,\n RequestSpotLaunchSpecificationFilterSensitiveLog: () => RequestSpotLaunchSpecificationFilterSensitiveLog,\n ReservationState: () => ReservationState,\n ReservedInstanceState: () => ReservedInstanceState,\n ResetAddressAttributeCommand: () => ResetAddressAttributeCommand,\n ResetEbsDefaultKmsKeyIdCommand: () => ResetEbsDefaultKmsKeyIdCommand,\n ResetFpgaImageAttributeCommand: () => ResetFpgaImageAttributeCommand,\n ResetFpgaImageAttributeName: () => ResetFpgaImageAttributeName,\n ResetImageAttributeCommand: () => ResetImageAttributeCommand,\n ResetImageAttributeName: () => ResetImageAttributeName,\n ResetInstanceAttributeCommand: () => ResetInstanceAttributeCommand,\n ResetNetworkInterfaceAttributeCommand: () => ResetNetworkInterfaceAttributeCommand,\n ResetSnapshotAttributeCommand: () => ResetSnapshotAttributeCommand,\n ResourceType: () => ResourceType,\n ResponseLaunchTemplateDataFilterSensitiveLog: () => ResponseLaunchTemplateDataFilterSensitiveLog,\n RestoreAddressToClassicCommand: () => RestoreAddressToClassicCommand,\n RestoreImageFromRecycleBinCommand: () => RestoreImageFromRecycleBinCommand,\n RestoreManagedPrefixListVersionCommand: () => RestoreManagedPrefixListVersionCommand,\n RestoreSnapshotFromRecycleBinCommand: () => RestoreSnapshotFromRecycleBinCommand,\n RestoreSnapshotTierCommand: () => RestoreSnapshotTierCommand,\n RevokeClientVpnIngressCommand: () => RevokeClientVpnIngressCommand,\n RevokeSecurityGroupEgressCommand: () => RevokeSecurityGroupEgressCommand,\n RevokeSecurityGroupIngressCommand: () => RevokeSecurityGroupIngressCommand,\n RootDeviceType: () => RootDeviceType,\n RouteOrigin: () => RouteOrigin,\n RouteServerAssociationState: () => RouteServerAssociationState,\n RouteServerBfdState: () => RouteServerBfdState,\n RouteServerBgpState: () => RouteServerBgpState,\n RouteServerEndpointState: () => RouteServerEndpointState,\n RouteServerPeerLivenessMode: () => RouteServerPeerLivenessMode,\n RouteServerPeerState: () => RouteServerPeerState,\n RouteServerPersistRoutesAction: () => RouteServerPersistRoutesAction,\n RouteServerPersistRoutesState: () => RouteServerPersistRoutesState,\n RouteServerPropagationState: () => RouteServerPropagationState,\n RouteServerRouteInstallationStatus: () => RouteServerRouteInstallationStatus,\n RouteServerRouteStatus: () => RouteServerRouteStatus,\n RouteServerState: () => RouteServerState,\n RouteState: () => RouteState,\n RouteTableAssociationStateCode: () => RouteTableAssociationStateCode,\n RuleAction: () => RuleAction,\n RunInstancesCommand: () => RunInstancesCommand,\n RunInstancesRequestFilterSensitiveLog: () => RunInstancesRequestFilterSensitiveLog,\n RunScheduledInstancesCommand: () => RunScheduledInstancesCommand,\n RunScheduledInstancesRequestFilterSensitiveLog: () => RunScheduledInstancesRequestFilterSensitiveLog,\n S3StorageFilterSensitiveLog: () => S3StorageFilterSensitiveLog,\n SSEType: () => SSEType,\n ScheduledInstancesLaunchSpecificationFilterSensitiveLog: () => ScheduledInstancesLaunchSpecificationFilterSensitiveLog,\n Scope: () => Scope,\n SearchLocalGatewayRoutesCommand: () => SearchLocalGatewayRoutesCommand,\n SearchTransitGatewayMulticastGroupsCommand: () => SearchTransitGatewayMulticastGroupsCommand,\n SearchTransitGatewayRoutesCommand: () => SearchTransitGatewayRoutesCommand,\n SecurityGroupReferencingSupportValue: () => SecurityGroupReferencingSupportValue,\n SecurityGroupVpcAssociationState: () => SecurityGroupVpcAssociationState,\n SelfServicePortal: () => SelfServicePortal,\n SendDiagnosticInterruptCommand: () => SendDiagnosticInterruptCommand,\n ServiceConnectivityType: () => ServiceConnectivityType,\n ServiceLinkVirtualInterfaceConfigurationState: () => ServiceLinkVirtualInterfaceConfigurationState,\n ServiceManaged: () => ServiceManaged,\n ServiceState: () => ServiceState,\n ServiceType: () => ServiceType,\n ShutdownBehavior: () => ShutdownBehavior,\n SnapshotAttributeName: () => SnapshotAttributeName,\n SnapshotBlockPublicAccessState: () => SnapshotBlockPublicAccessState,\n SnapshotDetailFilterSensitiveLog: () => SnapshotDetailFilterSensitiveLog,\n SnapshotDiskContainerFilterSensitiveLog: () => SnapshotDiskContainerFilterSensitiveLog,\n SnapshotLocationEnum: () => SnapshotLocationEnum,\n SnapshotState: () => SnapshotState,\n SnapshotTaskDetailFilterSensitiveLog: () => SnapshotTaskDetailFilterSensitiveLog,\n SpotAllocationStrategy: () => SpotAllocationStrategy,\n SpotFleetLaunchSpecificationFilterSensitiveLog: () => SpotFleetLaunchSpecificationFilterSensitiveLog,\n SpotFleetRequestConfigDataFilterSensitiveLog: () => SpotFleetRequestConfigDataFilterSensitiveLog,\n SpotFleetRequestConfigFilterSensitiveLog: () => SpotFleetRequestConfigFilterSensitiveLog,\n SpotInstanceInterruptionBehavior: () => SpotInstanceInterruptionBehavior,\n SpotInstanceRequestFilterSensitiveLog: () => SpotInstanceRequestFilterSensitiveLog,\n SpotInstanceState: () => SpotInstanceState,\n SpotInstanceType: () => SpotInstanceType,\n SpreadLevel: () => SpreadLevel,\n StartDeclarativePoliciesReportCommand: () => StartDeclarativePoliciesReportCommand,\n StartInstancesCommand: () => StartInstancesCommand,\n StartNetworkInsightsAccessScopeAnalysisCommand: () => StartNetworkInsightsAccessScopeAnalysisCommand,\n StartNetworkInsightsAnalysisCommand: () => StartNetworkInsightsAnalysisCommand,\n StartVpcEndpointServicePrivateDnsVerificationCommand: () => StartVpcEndpointServicePrivateDnsVerificationCommand,\n State: () => State,\n StaticSourcesSupportValue: () => StaticSourcesSupportValue,\n StatisticType: () => StatisticType,\n Status: () => Status,\n StatusName: () => StatusName,\n StatusType: () => StatusType,\n StopInstancesCommand: () => StopInstancesCommand,\n StorageFilterSensitiveLog: () => StorageFilterSensitiveLog,\n StorageTier: () => StorageTier,\n SubnetCidrBlockStateCode: () => SubnetCidrBlockStateCode,\n SubnetCidrReservationType: () => SubnetCidrReservationType,\n SubnetState: () => SubnetState,\n SummaryStatus: () => SummaryStatus,\n SupportedAdditionalProcessorFeature: () => SupportedAdditionalProcessorFeature,\n TargetCapacityUnitType: () => TargetCapacityUnitType,\n TargetStorageTier: () => TargetStorageTier,\n TelemetryStatus: () => TelemetryStatus,\n Tenancy: () => Tenancy,\n TerminateClientVpnConnectionsCommand: () => TerminateClientVpnConnectionsCommand,\n TerminateInstancesCommand: () => TerminateInstancesCommand,\n TieringOperationStatus: () => TieringOperationStatus,\n TokenState: () => TokenState,\n TpmSupportValues: () => TpmSupportValues,\n TrafficDirection: () => TrafficDirection,\n TrafficMirrorFilterRuleField: () => TrafficMirrorFilterRuleField,\n TrafficMirrorNetworkService: () => TrafficMirrorNetworkService,\n TrafficMirrorRuleAction: () => TrafficMirrorRuleAction,\n TrafficMirrorSessionField: () => TrafficMirrorSessionField,\n TrafficMirrorTargetType: () => TrafficMirrorTargetType,\n TrafficType: () => TrafficType,\n TransferType: () => TransferType,\n TransitGatewayAssociationState: () => TransitGatewayAssociationState,\n TransitGatewayAttachmentResourceType: () => TransitGatewayAttachmentResourceType,\n TransitGatewayAttachmentState: () => TransitGatewayAttachmentState,\n TransitGatewayConnectPeerState: () => TransitGatewayConnectPeerState,\n TransitGatewayMulitcastDomainAssociationState: () => TransitGatewayMulitcastDomainAssociationState,\n TransitGatewayMulticastDomainState: () => TransitGatewayMulticastDomainState,\n TransitGatewayPolicyTableState: () => TransitGatewayPolicyTableState,\n TransitGatewayPrefixListReferenceState: () => TransitGatewayPrefixListReferenceState,\n TransitGatewayPropagationState: () => TransitGatewayPropagationState,\n TransitGatewayRouteState: () => TransitGatewayRouteState,\n TransitGatewayRouteTableAnnouncementDirection: () => TransitGatewayRouteTableAnnouncementDirection,\n TransitGatewayRouteTableAnnouncementState: () => TransitGatewayRouteTableAnnouncementState,\n TransitGatewayRouteTableState: () => TransitGatewayRouteTableState,\n TransitGatewayRouteType: () => TransitGatewayRouteType,\n TransitGatewayState: () => TransitGatewayState,\n TransportProtocol: () => TransportProtocol,\n TrustProviderType: () => TrustProviderType,\n TunnelInsideIpVersion: () => TunnelInsideIpVersion,\n TunnelOptionFilterSensitiveLog: () => TunnelOptionFilterSensitiveLog,\n UnassignIpv6AddressesCommand: () => UnassignIpv6AddressesCommand,\n UnassignPrivateIpAddressesCommand: () => UnassignPrivateIpAddressesCommand,\n UnassignPrivateNatGatewayAddressCommand: () => UnassignPrivateNatGatewayAddressCommand,\n UnlimitedSupportedInstanceFamily: () => UnlimitedSupportedInstanceFamily,\n UnlockSnapshotCommand: () => UnlockSnapshotCommand,\n UnmonitorInstancesCommand: () => UnmonitorInstancesCommand,\n UnsuccessfulInstanceCreditSpecificationErrorCode: () => UnsuccessfulInstanceCreditSpecificationErrorCode,\n UpdateSecurityGroupRuleDescriptionsEgressCommand: () => UpdateSecurityGroupRuleDescriptionsEgressCommand,\n UpdateSecurityGroupRuleDescriptionsIngressCommand: () => UpdateSecurityGroupRuleDescriptionsIngressCommand,\n UsageClassType: () => UsageClassType,\n UserDataFilterSensitiveLog: () => UserDataFilterSensitiveLog,\n UserTrustProviderType: () => UserTrustProviderType,\n VerificationMethod: () => VerificationMethod,\n VerifiedAccessEndpointAttachmentType: () => VerifiedAccessEndpointAttachmentType,\n VerifiedAccessEndpointProtocol: () => VerifiedAccessEndpointProtocol,\n VerifiedAccessEndpointStatusCode: () => VerifiedAccessEndpointStatusCode,\n VerifiedAccessEndpointType: () => VerifiedAccessEndpointType,\n VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog: () => VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog,\n VerifiedAccessLogDeliveryStatusCode: () => VerifiedAccessLogDeliveryStatusCode,\n VerifiedAccessTrustProviderFilterSensitiveLog: () => VerifiedAccessTrustProviderFilterSensitiveLog,\n VirtualizationType: () => VirtualizationType,\n VolumeAttachmentState: () => VolumeAttachmentState,\n VolumeAttributeName: () => VolumeAttributeName,\n VolumeModificationState: () => VolumeModificationState,\n VolumeState: () => VolumeState,\n VolumeStatusInfoStatus: () => VolumeStatusInfoStatus,\n VolumeStatusName: () => VolumeStatusName,\n VolumeType: () => VolumeType,\n VpcAttributeName: () => VpcAttributeName,\n VpcBlockPublicAccessExclusionState: () => VpcBlockPublicAccessExclusionState,\n VpcBlockPublicAccessExclusionsAllowed: () => VpcBlockPublicAccessExclusionsAllowed,\n VpcBlockPublicAccessState: () => VpcBlockPublicAccessState,\n VpcCidrBlockStateCode: () => VpcCidrBlockStateCode,\n VpcEncryptionControlExclusionState: () => VpcEncryptionControlExclusionState,\n VpcEncryptionControlMode: () => VpcEncryptionControlMode,\n VpcEncryptionControlState: () => VpcEncryptionControlState,\n VpcEndpointType: () => VpcEndpointType,\n VpcPeeringConnectionStateReasonCode: () => VpcPeeringConnectionStateReasonCode,\n VpcState: () => VpcState,\n VpcTenancy: () => VpcTenancy,\n VpnConnectionFilterSensitiveLog: () => VpnConnectionFilterSensitiveLog,\n VpnConnectionOptionsFilterSensitiveLog: () => VpnConnectionOptionsFilterSensitiveLog,\n VpnConnectionOptionsSpecificationFilterSensitiveLog: () => VpnConnectionOptionsSpecificationFilterSensitiveLog,\n VpnEcmpSupportValue: () => VpnEcmpSupportValue,\n VpnProtocol: () => VpnProtocol,\n VpnState: () => VpnState,\n VpnStaticRouteSource: () => VpnStaticRouteSource,\n VpnTunnelOptionsSpecificationFilterSensitiveLog: () => VpnTunnelOptionsSpecificationFilterSensitiveLog,\n WeekDay: () => WeekDay,\n WithdrawByoipCidrCommand: () => WithdrawByoipCidrCommand,\n _InstanceType: () => _InstanceType,\n __Client: () => import_smithy_client.Client,\n paginateDescribeAddressTransfers: () => paginateDescribeAddressTransfers,\n paginateDescribeAddressesAttribute: () => paginateDescribeAddressesAttribute,\n paginateDescribeAwsNetworkPerformanceMetricSubscriptions: () => paginateDescribeAwsNetworkPerformanceMetricSubscriptions,\n paginateDescribeByoipCidrs: () => paginateDescribeByoipCidrs,\n paginateDescribeCapacityBlockExtensionHistory: () => paginateDescribeCapacityBlockExtensionHistory,\n paginateDescribeCapacityBlockExtensionOfferings: () => paginateDescribeCapacityBlockExtensionOfferings,\n paginateDescribeCapacityBlockOfferings: () => paginateDescribeCapacityBlockOfferings,\n paginateDescribeCapacityReservationBillingRequests: () => paginateDescribeCapacityReservationBillingRequests,\n paginateDescribeCapacityReservationFleets: () => paginateDescribeCapacityReservationFleets,\n paginateDescribeCapacityReservations: () => paginateDescribeCapacityReservations,\n paginateDescribeCarrierGateways: () => paginateDescribeCarrierGateways,\n paginateDescribeClassicLinkInstances: () => paginateDescribeClassicLinkInstances,\n paginateDescribeClientVpnAuthorizationRules: () => paginateDescribeClientVpnAuthorizationRules,\n paginateDescribeClientVpnConnections: () => paginateDescribeClientVpnConnections,\n paginateDescribeClientVpnEndpoints: () => paginateDescribeClientVpnEndpoints,\n paginateDescribeClientVpnRoutes: () => paginateDescribeClientVpnRoutes,\n paginateDescribeClientVpnTargetNetworks: () => paginateDescribeClientVpnTargetNetworks,\n paginateDescribeCoipPools: () => paginateDescribeCoipPools,\n paginateDescribeDhcpOptions: () => paginateDescribeDhcpOptions,\n paginateDescribeEgressOnlyInternetGateways: () => paginateDescribeEgressOnlyInternetGateways,\n paginateDescribeExportImageTasks: () => paginateDescribeExportImageTasks,\n paginateDescribeFastLaunchImages: () => paginateDescribeFastLaunchImages,\n paginateDescribeFastSnapshotRestores: () => paginateDescribeFastSnapshotRestores,\n paginateDescribeFleets: () => paginateDescribeFleets,\n paginateDescribeFlowLogs: () => paginateDescribeFlowLogs,\n paginateDescribeFpgaImages: () => paginateDescribeFpgaImages,\n paginateDescribeHostReservationOfferings: () => paginateDescribeHostReservationOfferings,\n paginateDescribeHostReservations: () => paginateDescribeHostReservations,\n paginateDescribeHosts: () => paginateDescribeHosts,\n paginateDescribeIamInstanceProfileAssociations: () => paginateDescribeIamInstanceProfileAssociations,\n paginateDescribeImages: () => paginateDescribeImages,\n paginateDescribeImportImageTasks: () => paginateDescribeImportImageTasks,\n paginateDescribeImportSnapshotTasks: () => paginateDescribeImportSnapshotTasks,\n paginateDescribeInstanceConnectEndpoints: () => paginateDescribeInstanceConnectEndpoints,\n paginateDescribeInstanceCreditSpecifications: () => paginateDescribeInstanceCreditSpecifications,\n paginateDescribeInstanceEventWindows: () => paginateDescribeInstanceEventWindows,\n paginateDescribeInstanceImageMetadata: () => paginateDescribeInstanceImageMetadata,\n paginateDescribeInstanceStatus: () => paginateDescribeInstanceStatus,\n paginateDescribeInstanceTopology: () => paginateDescribeInstanceTopology,\n paginateDescribeInstanceTypeOfferings: () => paginateDescribeInstanceTypeOfferings,\n paginateDescribeInstanceTypes: () => paginateDescribeInstanceTypes,\n paginateDescribeInstances: () => paginateDescribeInstances,\n paginateDescribeInternetGateways: () => paginateDescribeInternetGateways,\n paginateDescribeIpamPools: () => paginateDescribeIpamPools,\n paginateDescribeIpamResourceDiscoveries: () => paginateDescribeIpamResourceDiscoveries,\n paginateDescribeIpamResourceDiscoveryAssociations: () => paginateDescribeIpamResourceDiscoveryAssociations,\n paginateDescribeIpamScopes: () => paginateDescribeIpamScopes,\n paginateDescribeIpams: () => paginateDescribeIpams,\n paginateDescribeIpv6Pools: () => paginateDescribeIpv6Pools,\n paginateDescribeLaunchTemplateVersions: () => paginateDescribeLaunchTemplateVersions,\n paginateDescribeLaunchTemplates: () => paginateDescribeLaunchTemplates,\n paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations: () => paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations,\n paginateDescribeLocalGatewayRouteTableVpcAssociations: () => paginateDescribeLocalGatewayRouteTableVpcAssociations,\n paginateDescribeLocalGatewayRouteTables: () => paginateDescribeLocalGatewayRouteTables,\n paginateDescribeLocalGatewayVirtualInterfaceGroups: () => paginateDescribeLocalGatewayVirtualInterfaceGroups,\n paginateDescribeLocalGatewayVirtualInterfaces: () => paginateDescribeLocalGatewayVirtualInterfaces,\n paginateDescribeLocalGateways: () => paginateDescribeLocalGateways,\n paginateDescribeMacHosts: () => paginateDescribeMacHosts,\n paginateDescribeManagedPrefixLists: () => paginateDescribeManagedPrefixLists,\n paginateDescribeMovingAddresses: () => paginateDescribeMovingAddresses,\n paginateDescribeNatGateways: () => paginateDescribeNatGateways,\n paginateDescribeNetworkAcls: () => paginateDescribeNetworkAcls,\n paginateDescribeNetworkInsightsAccessScopeAnalyses: () => paginateDescribeNetworkInsightsAccessScopeAnalyses,\n paginateDescribeNetworkInsightsAccessScopes: () => paginateDescribeNetworkInsightsAccessScopes,\n paginateDescribeNetworkInsightsAnalyses: () => paginateDescribeNetworkInsightsAnalyses,\n paginateDescribeNetworkInsightsPaths: () => paginateDescribeNetworkInsightsPaths,\n paginateDescribeNetworkInterfacePermissions: () => paginateDescribeNetworkInterfacePermissions,\n paginateDescribeNetworkInterfaces: () => paginateDescribeNetworkInterfaces,\n paginateDescribePrefixLists: () => paginateDescribePrefixLists,\n paginateDescribePrincipalIdFormat: () => paginateDescribePrincipalIdFormat,\n paginateDescribePublicIpv4Pools: () => paginateDescribePublicIpv4Pools,\n paginateDescribeReplaceRootVolumeTasks: () => paginateDescribeReplaceRootVolumeTasks,\n paginateDescribeReservedInstancesModifications: () => paginateDescribeReservedInstancesModifications,\n paginateDescribeReservedInstancesOfferings: () => paginateDescribeReservedInstancesOfferings,\n paginateDescribeRouteServerEndpoints: () => paginateDescribeRouteServerEndpoints,\n paginateDescribeRouteServerPeers: () => paginateDescribeRouteServerPeers,\n paginateDescribeRouteServers: () => paginateDescribeRouteServers,\n paginateDescribeRouteTables: () => paginateDescribeRouteTables,\n paginateDescribeScheduledInstanceAvailability: () => paginateDescribeScheduledInstanceAvailability,\n paginateDescribeScheduledInstances: () => paginateDescribeScheduledInstances,\n paginateDescribeSecurityGroupRules: () => paginateDescribeSecurityGroupRules,\n paginateDescribeSecurityGroupVpcAssociations: () => paginateDescribeSecurityGroupVpcAssociations,\n paginateDescribeSecurityGroups: () => paginateDescribeSecurityGroups,\n paginateDescribeSnapshotTierStatus: () => paginateDescribeSnapshotTierStatus,\n paginateDescribeSnapshots: () => paginateDescribeSnapshots,\n paginateDescribeSpotFleetRequests: () => paginateDescribeSpotFleetRequests,\n paginateDescribeSpotInstanceRequests: () => paginateDescribeSpotInstanceRequests,\n paginateDescribeSpotPriceHistory: () => paginateDescribeSpotPriceHistory,\n paginateDescribeStaleSecurityGroups: () => paginateDescribeStaleSecurityGroups,\n paginateDescribeStoreImageTasks: () => paginateDescribeStoreImageTasks,\n paginateDescribeSubnets: () => paginateDescribeSubnets,\n paginateDescribeTags: () => paginateDescribeTags,\n paginateDescribeTrafficMirrorFilters: () => paginateDescribeTrafficMirrorFilters,\n paginateDescribeTrafficMirrorSessions: () => paginateDescribeTrafficMirrorSessions,\n paginateDescribeTrafficMirrorTargets: () => paginateDescribeTrafficMirrorTargets,\n paginateDescribeTransitGatewayAttachments: () => paginateDescribeTransitGatewayAttachments,\n paginateDescribeTransitGatewayConnectPeers: () => paginateDescribeTransitGatewayConnectPeers,\n paginateDescribeTransitGatewayConnects: () => paginateDescribeTransitGatewayConnects,\n paginateDescribeTransitGatewayMulticastDomains: () => paginateDescribeTransitGatewayMulticastDomains,\n paginateDescribeTransitGatewayPeeringAttachments: () => paginateDescribeTransitGatewayPeeringAttachments,\n paginateDescribeTransitGatewayPolicyTables: () => paginateDescribeTransitGatewayPolicyTables,\n paginateDescribeTransitGatewayRouteTableAnnouncements: () => paginateDescribeTransitGatewayRouteTableAnnouncements,\n paginateDescribeTransitGatewayRouteTables: () => paginateDescribeTransitGatewayRouteTables,\n paginateDescribeTransitGatewayVpcAttachments: () => paginateDescribeTransitGatewayVpcAttachments,\n paginateDescribeTransitGateways: () => paginateDescribeTransitGateways,\n paginateDescribeTrunkInterfaceAssociations: () => paginateDescribeTrunkInterfaceAssociations,\n paginateDescribeVerifiedAccessEndpoints: () => paginateDescribeVerifiedAccessEndpoints,\n paginateDescribeVerifiedAccessGroups: () => paginateDescribeVerifiedAccessGroups,\n paginateDescribeVerifiedAccessInstanceLoggingConfigurations: () => paginateDescribeVerifiedAccessInstanceLoggingConfigurations,\n paginateDescribeVerifiedAccessInstances: () => paginateDescribeVerifiedAccessInstances,\n paginateDescribeVerifiedAccessTrustProviders: () => paginateDescribeVerifiedAccessTrustProviders,\n paginateDescribeVolumeStatus: () => paginateDescribeVolumeStatus,\n paginateDescribeVolumes: () => paginateDescribeVolumes,\n paginateDescribeVolumesModifications: () => paginateDescribeVolumesModifications,\n paginateDescribeVpcClassicLinkDnsSupport: () => paginateDescribeVpcClassicLinkDnsSupport,\n paginateDescribeVpcEndpointConnectionNotifications: () => paginateDescribeVpcEndpointConnectionNotifications,\n paginateDescribeVpcEndpointConnections: () => paginateDescribeVpcEndpointConnections,\n paginateDescribeVpcEndpointServiceConfigurations: () => paginateDescribeVpcEndpointServiceConfigurations,\n paginateDescribeVpcEndpointServicePermissions: () => paginateDescribeVpcEndpointServicePermissions,\n paginateDescribeVpcEndpoints: () => paginateDescribeVpcEndpoints,\n paginateDescribeVpcPeeringConnections: () => paginateDescribeVpcPeeringConnections,\n paginateDescribeVpcs: () => paginateDescribeVpcs,\n paginateGetAssociatedIpv6PoolCidrs: () => paginateGetAssociatedIpv6PoolCidrs,\n paginateGetAwsNetworkPerformanceData: () => paginateGetAwsNetworkPerformanceData,\n paginateGetGroupsForCapacityReservation: () => paginateGetGroupsForCapacityReservation,\n paginateGetInstanceTypesFromInstanceRequirements: () => paginateGetInstanceTypesFromInstanceRequirements,\n paginateGetIpamAddressHistory: () => paginateGetIpamAddressHistory,\n paginateGetIpamDiscoveredAccounts: () => paginateGetIpamDiscoveredAccounts,\n paginateGetIpamDiscoveredResourceCidrs: () => paginateGetIpamDiscoveredResourceCidrs,\n paginateGetIpamPoolAllocations: () => paginateGetIpamPoolAllocations,\n paginateGetIpamPoolCidrs: () => paginateGetIpamPoolCidrs,\n paginateGetIpamResourceCidrs: () => paginateGetIpamResourceCidrs,\n paginateGetManagedPrefixListAssociations: () => paginateGetManagedPrefixListAssociations,\n paginateGetManagedPrefixListEntries: () => paginateGetManagedPrefixListEntries,\n paginateGetNetworkInsightsAccessScopeAnalysisFindings: () => paginateGetNetworkInsightsAccessScopeAnalysisFindings,\n paginateGetSecurityGroupsForVpc: () => paginateGetSecurityGroupsForVpc,\n paginateGetSpotPlacementScores: () => paginateGetSpotPlacementScores,\n paginateGetTransitGatewayAttachmentPropagations: () => paginateGetTransitGatewayAttachmentPropagations,\n paginateGetTransitGatewayMulticastDomainAssociations: () => paginateGetTransitGatewayMulticastDomainAssociations,\n paginateGetTransitGatewayPolicyTableAssociations: () => paginateGetTransitGatewayPolicyTableAssociations,\n paginateGetTransitGatewayPrefixListReferences: () => paginateGetTransitGatewayPrefixListReferences,\n paginateGetTransitGatewayRouteTableAssociations: () => paginateGetTransitGatewayRouteTableAssociations,\n paginateGetTransitGatewayRouteTablePropagations: () => paginateGetTransitGatewayRouteTablePropagations,\n paginateGetVpnConnectionDeviceTypes: () => paginateGetVpnConnectionDeviceTypes,\n paginateListImagesInRecycleBin: () => paginateListImagesInRecycleBin,\n paginateListSnapshotsInRecycleBin: () => paginateListSnapshotsInRecycleBin,\n paginateSearchLocalGatewayRoutes: () => paginateSearchLocalGatewayRoutes,\n paginateSearchTransitGatewayMulticastGroups: () => paginateSearchTransitGatewayMulticastGroups,\n waitForBundleTaskComplete: () => waitForBundleTaskComplete,\n waitForConversionTaskCancelled: () => waitForConversionTaskCancelled,\n waitForConversionTaskCompleted: () => waitForConversionTaskCompleted,\n waitForConversionTaskDeleted: () => waitForConversionTaskDeleted,\n waitForCustomerGatewayAvailable: () => waitForCustomerGatewayAvailable,\n waitForExportTaskCancelled: () => waitForExportTaskCancelled,\n waitForExportTaskCompleted: () => waitForExportTaskCompleted,\n waitForImageAvailable: () => waitForImageAvailable,\n waitForImageExists: () => waitForImageExists,\n waitForInstanceExists: () => waitForInstanceExists,\n waitForInstanceRunning: () => waitForInstanceRunning,\n waitForInstanceStatusOk: () => waitForInstanceStatusOk,\n waitForInstanceStopped: () => waitForInstanceStopped,\n waitForInstanceTerminated: () => waitForInstanceTerminated,\n waitForInternetGatewayExists: () => waitForInternetGatewayExists,\n waitForKeyPairExists: () => waitForKeyPairExists,\n waitForNatGatewayAvailable: () => waitForNatGatewayAvailable,\n waitForNatGatewayDeleted: () => waitForNatGatewayDeleted,\n waitForNetworkInterfaceAvailable: () => waitForNetworkInterfaceAvailable,\n waitForPasswordDataAvailable: () => waitForPasswordDataAvailable,\n waitForSecurityGroupExists: () => waitForSecurityGroupExists,\n waitForSnapshotCompleted: () => waitForSnapshotCompleted,\n waitForSnapshotImported: () => waitForSnapshotImported,\n waitForSpotInstanceRequestFulfilled: () => waitForSpotInstanceRequestFulfilled,\n waitForStoreImageTaskComplete: () => waitForStoreImageTaskComplete,\n waitForSubnetAvailable: () => waitForSubnetAvailable,\n waitForSystemStatusOk: () => waitForSystemStatusOk,\n waitForVolumeAvailable: () => waitForVolumeAvailable,\n waitForVolumeDeleted: () => waitForVolumeDeleted,\n waitForVolumeInUse: () => waitForVolumeInUse,\n waitForVpcAvailable: () => waitForVpcAvailable,\n waitForVpcExists: () => waitForVpcExists,\n waitForVpcPeeringConnectionDeleted: () => waitForVpcPeeringConnectionDeleted,\n waitForVpcPeeringConnectionExists: () => waitForVpcPeeringConnectionExists,\n waitForVpnConnectionAvailable: () => waitForVpnConnectionAvailable,\n waitForVpnConnectionDeleted: () => waitForVpnConnectionDeleted,\n waitUntilBundleTaskComplete: () => waitUntilBundleTaskComplete,\n waitUntilConversionTaskCancelled: () => waitUntilConversionTaskCancelled,\n waitUntilConversionTaskCompleted: () => waitUntilConversionTaskCompleted,\n waitUntilConversionTaskDeleted: () => waitUntilConversionTaskDeleted,\n waitUntilCustomerGatewayAvailable: () => waitUntilCustomerGatewayAvailable,\n waitUntilExportTaskCancelled: () => waitUntilExportTaskCancelled,\n waitUntilExportTaskCompleted: () => waitUntilExportTaskCompleted,\n waitUntilImageAvailable: () => waitUntilImageAvailable,\n waitUntilImageExists: () => waitUntilImageExists,\n waitUntilInstanceExists: () => waitUntilInstanceExists,\n waitUntilInstanceRunning: () => waitUntilInstanceRunning,\n waitUntilInstanceStatusOk: () => waitUntilInstanceStatusOk,\n waitUntilInstanceStopped: () => waitUntilInstanceStopped,\n waitUntilInstanceTerminated: () => waitUntilInstanceTerminated,\n waitUntilInternetGatewayExists: () => waitUntilInternetGatewayExists,\n waitUntilKeyPairExists: () => waitUntilKeyPairExists,\n waitUntilNatGatewayAvailable: () => waitUntilNatGatewayAvailable,\n waitUntilNatGatewayDeleted: () => waitUntilNatGatewayDeleted,\n waitUntilNetworkInterfaceAvailable: () => waitUntilNetworkInterfaceAvailable,\n waitUntilPasswordDataAvailable: () => waitUntilPasswordDataAvailable,\n waitUntilSecurityGroupExists: () => waitUntilSecurityGroupExists,\n waitUntilSnapshotCompleted: () => waitUntilSnapshotCompleted,\n waitUntilSnapshotImported: () => waitUntilSnapshotImported,\n waitUntilSpotInstanceRequestFulfilled: () => waitUntilSpotInstanceRequestFulfilled,\n waitUntilStoreImageTaskComplete: () => waitUntilStoreImageTaskComplete,\n waitUntilSubnetAvailable: () => waitUntilSubnetAvailable,\n waitUntilSystemStatusOk: () => waitUntilSystemStatusOk,\n waitUntilVolumeAvailable: () => waitUntilVolumeAvailable,\n waitUntilVolumeDeleted: () => waitUntilVolumeDeleted,\n waitUntilVolumeInUse: () => waitUntilVolumeInUse,\n waitUntilVpcAvailable: () => waitUntilVpcAvailable,\n waitUntilVpcExists: () => waitUntilVpcExists,\n waitUntilVpcPeeringConnectionDeleted: () => waitUntilVpcPeeringConnectionDeleted,\n waitUntilVpcPeeringConnectionExists: () => waitUntilVpcPeeringConnectionExists,\n waitUntilVpnConnectionAvailable: () => waitUntilVpnConnectionAvailable,\n waitUntilVpnConnectionDeleted: () => waitUntilVpnConnectionDeleted\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/EC2Client.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ec2\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/EC2Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/EC2Client.ts\nvar EC2Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"EC2Client\");\n }\n /**\n * The resolved configuration of EC2Client class. This is resolved and normalized from the {@link EC2ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultEC2HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/EC2.ts\n\n\n// src/commands/AcceptAddressTransferCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_ec2.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/EC2ServiceException.ts\n\nvar EC2ServiceException = class _EC2ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"EC2ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _EC2ServiceException.prototype);\n }\n};\n\n// src/protocols/Aws_ec2.ts\nvar se_AcceptAddressTransferCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptAddressTransferRequest(input, context),\n [_A]: _AAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptAddressTransferCommand\");\nvar se_AcceptCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptCapacityReservationBillingOwnershipRequest(input, context),\n [_A]: _ACRBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptCapacityReservationBillingOwnershipCommand\");\nvar se_AcceptReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptReservedInstancesExchangeQuoteRequest(input, context),\n [_A]: _ARIEQ,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptReservedInstancesExchangeQuoteCommand\");\nvar se_AcceptTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptTransitGatewayMulticastDomainAssociationsRequest(input, context),\n [_A]: _ATGMDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptTransitGatewayMulticastDomainAssociationsCommand\");\nvar se_AcceptTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _ATGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptTransitGatewayPeeringAttachmentCommand\");\nvar se_AcceptTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _ATGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptTransitGatewayVpcAttachmentCommand\");\nvar se_AcceptVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptVpcEndpointConnectionsRequest(input, context),\n [_A]: _AVEC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptVpcEndpointConnectionsCommand\");\nvar se_AcceptVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AcceptVpcPeeringConnectionRequest(input, context),\n [_A]: _AVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AcceptVpcPeeringConnectionCommand\");\nvar se_AdvertiseByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AdvertiseByoipCidrRequest(input, context),\n [_A]: _ABC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AdvertiseByoipCidrCommand\");\nvar se_AllocateAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AllocateAddressRequest(input, context),\n [_A]: _AA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AllocateAddressCommand\");\nvar se_AllocateHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AllocateHostsRequest(input, context),\n [_A]: _AH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AllocateHostsCommand\");\nvar se_AllocateIpamPoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AllocateIpamPoolCidrRequest(input, context),\n [_A]: _AIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AllocateIpamPoolCidrCommand\");\nvar se_ApplySecurityGroupsToClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ApplySecurityGroupsToClientVpnTargetNetworkRequest(input, context),\n [_A]: _ASGTCVTN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ApplySecurityGroupsToClientVpnTargetNetworkCommand\");\nvar se_AssignIpv6AddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssignIpv6AddressesRequest(input, context),\n [_A]: _AIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssignIpv6AddressesCommand\");\nvar se_AssignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssignPrivateIpAddressesRequest(input, context),\n [_A]: _APIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssignPrivateIpAddressesCommand\");\nvar se_AssignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssignPrivateNatGatewayAddressRequest(input, context),\n [_A]: _APNGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssignPrivateNatGatewayAddressCommand\");\nvar se_AssociateAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateAddressRequest(input, context),\n [_A]: _AAs,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateAddressCommand\");\nvar se_AssociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateCapacityReservationBillingOwnerRequest(input, context),\n [_A]: _ACRBOs,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateCapacityReservationBillingOwnerCommand\");\nvar se_AssociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateClientVpnTargetNetworkRequest(input, context),\n [_A]: _ACVTN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateClientVpnTargetNetworkCommand\");\nvar se_AssociateDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateDhcpOptionsRequest(input, context),\n [_A]: _ADO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateDhcpOptionsCommand\");\nvar se_AssociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateEnclaveCertificateIamRoleRequest(input, context),\n [_A]: _AECIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateEnclaveCertificateIamRoleCommand\");\nvar se_AssociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateIamInstanceProfileRequest(input, context),\n [_A]: _AIIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateIamInstanceProfileCommand\");\nvar se_AssociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateInstanceEventWindowRequest(input, context),\n [_A]: _AIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateInstanceEventWindowCommand\");\nvar se_AssociateIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateIpamByoasnRequest(input, context),\n [_A]: _AIB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateIpamByoasnCommand\");\nvar se_AssociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateIpamResourceDiscoveryRequest(input, context),\n [_A]: _AIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateIpamResourceDiscoveryCommand\");\nvar se_AssociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateNatGatewayAddressRequest(input, context),\n [_A]: _ANGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateNatGatewayAddressCommand\");\nvar se_AssociateRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateRouteServerRequest(input, context),\n [_A]: _ARS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateRouteServerCommand\");\nvar se_AssociateRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateRouteTableRequest(input, context),\n [_A]: _ART,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateRouteTableCommand\");\nvar se_AssociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateSecurityGroupVpcRequest(input, context),\n [_A]: _ASGV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateSecurityGroupVpcCommand\");\nvar se_AssociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateSubnetCidrBlockRequest(input, context),\n [_A]: _ASCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateSubnetCidrBlockCommand\");\nvar se_AssociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _ATGMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTransitGatewayMulticastDomainCommand\");\nvar se_AssociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTransitGatewayPolicyTableRequest(input, context),\n [_A]: _ATGPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTransitGatewayPolicyTableCommand\");\nvar se_AssociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTransitGatewayRouteTableRequest(input, context),\n [_A]: _ATGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTransitGatewayRouteTableCommand\");\nvar se_AssociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateTrunkInterfaceRequest(input, context),\n [_A]: _ATI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateTrunkInterfaceCommand\");\nvar se_AssociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssociateVpcCidrBlockRequest(input, context),\n [_A]: _AVCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateVpcCidrBlockCommand\");\nvar se_AttachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachClassicLinkVpcRequest(input, context),\n [_A]: _ACLV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachClassicLinkVpcCommand\");\nvar se_AttachInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachInternetGatewayRequest(input, context),\n [_A]: _AIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachInternetGatewayCommand\");\nvar se_AttachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachNetworkInterfaceRequest(input, context),\n [_A]: _ANI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachNetworkInterfaceCommand\");\nvar se_AttachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _AVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachVerifiedAccessTrustProviderCommand\");\nvar se_AttachVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachVolumeRequest(input, context),\n [_A]: _AV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachVolumeCommand\");\nvar se_AttachVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachVpnGatewayRequest(input, context),\n [_A]: _AVG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachVpnGatewayCommand\");\nvar se_AuthorizeClientVpnIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AuthorizeClientVpnIngressRequest(input, context),\n [_A]: _ACVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AuthorizeClientVpnIngressCommand\");\nvar se_AuthorizeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AuthorizeSecurityGroupEgressRequest(input, context),\n [_A]: _ASGE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AuthorizeSecurityGroupEgressCommand\");\nvar se_AuthorizeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AuthorizeSecurityGroupIngressRequest(input, context),\n [_A]: _ASGI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AuthorizeSecurityGroupIngressCommand\");\nvar se_BundleInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_BundleInstanceRequest(input, context),\n [_A]: _BI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BundleInstanceCommand\");\nvar se_CancelBundleTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelBundleTaskRequest(input, context),\n [_A]: _CBT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelBundleTaskCommand\");\nvar se_CancelCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelCapacityReservationRequest(input, context),\n [_A]: _CCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelCapacityReservationCommand\");\nvar se_CancelCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelCapacityReservationFleetsRequest(input, context),\n [_A]: _CCRF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelCapacityReservationFleetsCommand\");\nvar se_CancelConversionTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelConversionRequest(input, context),\n [_A]: _CCT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelConversionTaskCommand\");\nvar se_CancelDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelDeclarativePoliciesReportRequest(input, context),\n [_A]: _CDPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelDeclarativePoliciesReportCommand\");\nvar se_CancelExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelExportTaskRequest(input, context),\n [_A]: _CET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelExportTaskCommand\");\nvar se_CancelImageLaunchPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelImageLaunchPermissionRequest(input, context),\n [_A]: _CILP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelImageLaunchPermissionCommand\");\nvar se_CancelImportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelImportTaskRequest(input, context),\n [_A]: _CIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelImportTaskCommand\");\nvar se_CancelReservedInstancesListingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelReservedInstancesListingRequest(input, context),\n [_A]: _CRIL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelReservedInstancesListingCommand\");\nvar se_CancelSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelSpotFleetRequestsRequest(input, context),\n [_A]: _CSFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelSpotFleetRequestsCommand\");\nvar se_CancelSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CancelSpotInstanceRequestsRequest(input, context),\n [_A]: _CSIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelSpotInstanceRequestsCommand\");\nvar se_ConfirmProductInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ConfirmProductInstanceRequest(input, context),\n [_A]: _CPI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ConfirmProductInstanceCommand\");\nvar se_CopyFpgaImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CopyFpgaImageRequest(input, context),\n [_A]: _CFI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CopyFpgaImageCommand\");\nvar se_CopyImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CopyImageRequest(input, context),\n [_A]: _CI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CopyImageCommand\");\nvar se_CopySnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CopySnapshotRequest(input, context),\n [_A]: _CS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CopySnapshotCommand\");\nvar se_CreateCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCapacityReservationRequest(input, context),\n [_A]: _CCRr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityReservationCommand\");\nvar se_CreateCapacityReservationBySplittingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCapacityReservationBySplittingRequest(input, context),\n [_A]: _CCRBS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityReservationBySplittingCommand\");\nvar se_CreateCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCapacityReservationFleetRequest(input, context),\n [_A]: _CCRFr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityReservationFleetCommand\");\nvar se_CreateCarrierGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCarrierGatewayRequest(input, context),\n [_A]: _CCG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCarrierGatewayCommand\");\nvar se_CreateClientVpnEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateClientVpnEndpointRequest(input, context),\n [_A]: _CCVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateClientVpnEndpointCommand\");\nvar se_CreateClientVpnRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateClientVpnRouteRequest(input, context),\n [_A]: _CCVR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateClientVpnRouteCommand\");\nvar se_CreateCoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCoipCidrRequest(input, context),\n [_A]: _CCC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCoipCidrCommand\");\nvar se_CreateCoipPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCoipPoolRequest(input, context),\n [_A]: _CCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCoipPoolCommand\");\nvar se_CreateCustomerGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateCustomerGatewayRequest(input, context),\n [_A]: _CCGr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCustomerGatewayCommand\");\nvar se_CreateDefaultSubnetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateDefaultSubnetRequest(input, context),\n [_A]: _CDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDefaultSubnetCommand\");\nvar se_CreateDefaultVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateDefaultVpcRequest(input, context),\n [_A]: _CDV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDefaultVpcCommand\");\nvar se_CreateDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateDhcpOptionsRequest(input, context),\n [_A]: _CDO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDhcpOptionsCommand\");\nvar se_CreateEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateEgressOnlyInternetGatewayRequest(input, context),\n [_A]: _CEOIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateEgressOnlyInternetGatewayCommand\");\nvar se_CreateFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateFleetRequest(input, context),\n [_A]: _CF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFleetCommand\");\nvar se_CreateFlowLogsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateFlowLogsRequest(input, context),\n [_A]: _CFL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFlowLogsCommand\");\nvar se_CreateFpgaImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateFpgaImageRequest(input, context),\n [_A]: _CFIr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateFpgaImageCommand\");\nvar se_CreateImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateImageRequest(input, context),\n [_A]: _CIr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateImageCommand\");\nvar se_CreateInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceConnectEndpointRequest(input, context),\n [_A]: _CICE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceConnectEndpointCommand\");\nvar se_CreateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceEventWindowRequest(input, context),\n [_A]: _CIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceEventWindowCommand\");\nvar se_CreateInstanceExportTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceExportTaskRequest(input, context),\n [_A]: _CIET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceExportTaskCommand\");\nvar se_CreateInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInternetGatewayRequest(input, context),\n [_A]: _CIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInternetGatewayCommand\");\nvar se_CreateIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamRequest(input, context),\n [_A]: _CIre,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamCommand\");\nvar se_CreateIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamExternalResourceVerificationTokenRequest(input, context),\n [_A]: _CIERVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamExternalResourceVerificationTokenCommand\");\nvar se_CreateIpamPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamPoolRequest(input, context),\n [_A]: _CIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamPoolCommand\");\nvar se_CreateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamResourceDiscoveryRequest(input, context),\n [_A]: _CIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamResourceDiscoveryCommand\");\nvar se_CreateIpamScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateIpamScopeRequest(input, context),\n [_A]: _CIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateIpamScopeCommand\");\nvar se_CreateKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateKeyPairRequest(input, context),\n [_A]: _CKP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateKeyPairCommand\");\nvar se_CreateLaunchTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLaunchTemplateRequest(input, context),\n [_A]: _CLT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLaunchTemplateCommand\");\nvar se_CreateLaunchTemplateVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLaunchTemplateVersionRequest(input, context),\n [_A]: _CLTV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLaunchTemplateVersionCommand\");\nvar se_CreateLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteRequest(input, context),\n [_A]: _CLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteCommand\");\nvar se_CreateLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteTableRequest(input, context),\n [_A]: _CLGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteTableCommand\");\nvar se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest(input, context),\n [_A]: _CLGRTVIGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar se_CreateLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayRouteTableVpcAssociationRequest(input, context),\n [_A]: _CLGRTVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayRouteTableVpcAssociationCommand\");\nvar se_CreateLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayVirtualInterfaceRequest(input, context),\n [_A]: _CLGVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayVirtualInterfaceCommand\");\nvar se_CreateLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLocalGatewayVirtualInterfaceGroupRequest(input, context),\n [_A]: _CLGVIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLocalGatewayVirtualInterfaceGroupCommand\");\nvar se_CreateManagedPrefixListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateManagedPrefixListRequest(input, context),\n [_A]: _CMPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateManagedPrefixListCommand\");\nvar se_CreateNatGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNatGatewayRequest(input, context),\n [_A]: _CNG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNatGatewayCommand\");\nvar se_CreateNetworkAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkAclRequest(input, context),\n [_A]: _CNA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkAclCommand\");\nvar se_CreateNetworkAclEntryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkAclEntryRequest(input, context),\n [_A]: _CNAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkAclEntryCommand\");\nvar se_CreateNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInsightsAccessScopeRequest(input, context),\n [_A]: _CNIAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInsightsAccessScopeCommand\");\nvar se_CreateNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInsightsPathRequest(input, context),\n [_A]: _CNIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInsightsPathCommand\");\nvar se_CreateNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInterfaceRequest(input, context),\n [_A]: _CNI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInterfaceCommand\");\nvar se_CreateNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateNetworkInterfacePermissionRequest(input, context),\n [_A]: _CNIPr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateNetworkInterfacePermissionCommand\");\nvar se_CreatePlacementGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePlacementGroupRequest(input, context),\n [_A]: _CPG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePlacementGroupCommand\");\nvar se_CreatePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePublicIpv4PoolRequest(input, context),\n [_A]: _CPIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePublicIpv4PoolCommand\");\nvar se_CreateReplaceRootVolumeTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateReplaceRootVolumeTaskRequest(input, context),\n [_A]: _CRRVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateReplaceRootVolumeTaskCommand\");\nvar se_CreateReservedInstancesListingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateReservedInstancesListingRequest(input, context),\n [_A]: _CRILr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateReservedInstancesListingCommand\");\nvar se_CreateRestoreImageTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRestoreImageTaskRequest(input, context),\n [_A]: _CRIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRestoreImageTaskCommand\");\nvar se_CreateRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteRequest(input, context),\n [_A]: _CR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteCommand\");\nvar se_CreateRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteServerRequest(input, context),\n [_A]: _CRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteServerCommand\");\nvar se_CreateRouteServerEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteServerEndpointRequest(input, context),\n [_A]: _CRSE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteServerEndpointCommand\");\nvar se_CreateRouteServerPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteServerPeerRequest(input, context),\n [_A]: _CRSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteServerPeerCommand\");\nvar se_CreateRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRouteTableRequest(input, context),\n [_A]: _CRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRouteTableCommand\");\nvar se_CreateSecurityGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSecurityGroupRequest(input, context),\n [_A]: _CSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSecurityGroupCommand\");\nvar se_CreateSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSnapshotRequest(input, context),\n [_A]: _CSr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSnapshotCommand\");\nvar se_CreateSnapshotsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSnapshotsRequest(input, context),\n [_A]: _CSre,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSnapshotsCommand\");\nvar se_CreateSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSpotDatafeedSubscriptionRequest(input, context),\n [_A]: _CSDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSpotDatafeedSubscriptionCommand\");\nvar se_CreateStoreImageTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateStoreImageTaskRequest(input, context),\n [_A]: _CSIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateStoreImageTaskCommand\");\nvar se_CreateSubnetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSubnetRequest(input, context),\n [_A]: _CSrea,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSubnetCommand\");\nvar se_CreateSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSubnetCidrReservationRequest(input, context),\n [_A]: _CSCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSubnetCidrReservationCommand\");\nvar se_CreateTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTagsRequest(input, context),\n [_A]: _CT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTagsCommand\");\nvar se_CreateTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorFilterRequest(input, context),\n [_A]: _CTMF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorFilterCommand\");\nvar se_CreateTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorFilterRuleRequest(input, context),\n [_A]: _CTMFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorFilterRuleCommand\");\nvar se_CreateTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorSessionRequest(input, context),\n [_A]: _CTMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorSessionCommand\");\nvar se_CreateTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrafficMirrorTargetRequest(input, context),\n [_A]: _CTMT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrafficMirrorTargetCommand\");\nvar se_CreateTransitGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRequest(input, context),\n [_A]: _CTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayCommand\");\nvar se_CreateTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayConnectRequest(input, context),\n [_A]: _CTGC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayConnectCommand\");\nvar se_CreateTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayConnectPeerRequest(input, context),\n [_A]: _CTGCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayConnectPeerCommand\");\nvar se_CreateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _CTGMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayMulticastDomainCommand\");\nvar se_CreateTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _CTGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayPeeringAttachmentCommand\");\nvar se_CreateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayPolicyTableRequest(input, context),\n [_A]: _CTGPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayPolicyTableCommand\");\nvar se_CreateTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayPrefixListReferenceRequest(input, context),\n [_A]: _CTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayPrefixListReferenceCommand\");\nvar se_CreateTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRouteRequest(input, context),\n [_A]: _CTGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayRouteCommand\");\nvar se_CreateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRouteTableRequest(input, context),\n [_A]: _CTGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayRouteTableCommand\");\nvar se_CreateTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayRouteTableAnnouncementRequest(input, context),\n [_A]: _CTGRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayRouteTableAnnouncementCommand\");\nvar se_CreateTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _CTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTransitGatewayVpcAttachmentCommand\");\nvar se_CreateVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessEndpointRequest(input, context),\n [_A]: _CVAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessEndpointCommand\");\nvar se_CreateVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessGroupRequest(input, context),\n [_A]: _CVAG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessGroupCommand\");\nvar se_CreateVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessInstanceRequest(input, context),\n [_A]: _CVAI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessInstanceCommand\");\nvar se_CreateVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _CVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVerifiedAccessTrustProviderCommand\");\nvar se_CreateVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVolumeRequest(input, context),\n [_A]: _CV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVolumeCommand\");\nvar se_CreateVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcRequest(input, context),\n [_A]: _CVr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcCommand\");\nvar se_CreateVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcBlockPublicAccessExclusionRequest(input, context),\n [_A]: _CVBPAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcBlockPublicAccessExclusionCommand\");\nvar se_CreateVpcEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcEndpointRequest(input, context),\n [_A]: _CVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcEndpointCommand\");\nvar se_CreateVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcEndpointConnectionNotificationRequest(input, context),\n [_A]: _CVECN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcEndpointConnectionNotificationCommand\");\nvar se_CreateVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcEndpointServiceConfigurationRequest(input, context),\n [_A]: _CVESC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcEndpointServiceConfigurationCommand\");\nvar se_CreateVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpcPeeringConnectionRequest(input, context),\n [_A]: _CVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpcPeeringConnectionCommand\");\nvar se_CreateVpnConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpnConnectionRequest(input, context),\n [_A]: _CVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpnConnectionCommand\");\nvar se_CreateVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpnConnectionRouteRequest(input, context),\n [_A]: _CVCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpnConnectionRouteCommand\");\nvar se_CreateVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVpnGatewayRequest(input, context),\n [_A]: _CVG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVpnGatewayCommand\");\nvar se_DeleteCarrierGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCarrierGatewayRequest(input, context),\n [_A]: _DCG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCarrierGatewayCommand\");\nvar se_DeleteClientVpnEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteClientVpnEndpointRequest(input, context),\n [_A]: _DCVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteClientVpnEndpointCommand\");\nvar se_DeleteClientVpnRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteClientVpnRouteRequest(input, context),\n [_A]: _DCVR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteClientVpnRouteCommand\");\nvar se_DeleteCoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCoipCidrRequest(input, context),\n [_A]: _DCC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCoipCidrCommand\");\nvar se_DeleteCoipPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCoipPoolRequest(input, context),\n [_A]: _DCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCoipPoolCommand\");\nvar se_DeleteCustomerGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteCustomerGatewayRequest(input, context),\n [_A]: _DCGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCustomerGatewayCommand\");\nvar se_DeleteDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteDhcpOptionsRequest(input, context),\n [_A]: _DDO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDhcpOptionsCommand\");\nvar se_DeleteEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteEgressOnlyInternetGatewayRequest(input, context),\n [_A]: _DEOIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteEgressOnlyInternetGatewayCommand\");\nvar se_DeleteFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteFleetsRequest(input, context),\n [_A]: _DF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFleetsCommand\");\nvar se_DeleteFlowLogsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteFlowLogsRequest(input, context),\n [_A]: _DFL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFlowLogsCommand\");\nvar se_DeleteFpgaImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteFpgaImageRequest(input, context),\n [_A]: _DFI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteFpgaImageCommand\");\nvar se_DeleteInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInstanceConnectEndpointRequest(input, context),\n [_A]: _DICE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInstanceConnectEndpointCommand\");\nvar se_DeleteInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInstanceEventWindowRequest(input, context),\n [_A]: _DIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInstanceEventWindowCommand\");\nvar se_DeleteInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInternetGatewayRequest(input, context),\n [_A]: _DIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInternetGatewayCommand\");\nvar se_DeleteIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamRequest(input, context),\n [_A]: _DI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamCommand\");\nvar se_DeleteIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamExternalResourceVerificationTokenRequest(input, context),\n [_A]: _DIERVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamExternalResourceVerificationTokenCommand\");\nvar se_DeleteIpamPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamPoolRequest(input, context),\n [_A]: _DIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamPoolCommand\");\nvar se_DeleteIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamResourceDiscoveryRequest(input, context),\n [_A]: _DIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamResourceDiscoveryCommand\");\nvar se_DeleteIpamScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteIpamScopeRequest(input, context),\n [_A]: _DIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteIpamScopeCommand\");\nvar se_DeleteKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteKeyPairRequest(input, context),\n [_A]: _DKP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteKeyPairCommand\");\nvar se_DeleteLaunchTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLaunchTemplateRequest(input, context),\n [_A]: _DLT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLaunchTemplateCommand\");\nvar se_DeleteLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLaunchTemplateVersionsRequest(input, context),\n [_A]: _DLTV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLaunchTemplateVersionsCommand\");\nvar se_DeleteLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteRequest(input, context),\n [_A]: _DLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteCommand\");\nvar se_DeleteLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteTableRequest(input, context),\n [_A]: _DLGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteTableCommand\");\nvar se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest(input, context),\n [_A]: _DLGRTVIGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar se_DeleteLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayRouteTableVpcAssociationRequest(input, context),\n [_A]: _DLGRTVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayRouteTableVpcAssociationCommand\");\nvar se_DeleteLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayVirtualInterfaceRequest(input, context),\n [_A]: _DLGVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayVirtualInterfaceCommand\");\nvar se_DeleteLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLocalGatewayVirtualInterfaceGroupRequest(input, context),\n [_A]: _DLGVIG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLocalGatewayVirtualInterfaceGroupCommand\");\nvar se_DeleteManagedPrefixListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteManagedPrefixListRequest(input, context),\n [_A]: _DMPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteManagedPrefixListCommand\");\nvar se_DeleteNatGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNatGatewayRequest(input, context),\n [_A]: _DNG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNatGatewayCommand\");\nvar se_DeleteNetworkAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkAclRequest(input, context),\n [_A]: _DNA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkAclCommand\");\nvar se_DeleteNetworkAclEntryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkAclEntryRequest(input, context),\n [_A]: _DNAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkAclEntryCommand\");\nvar se_DeleteNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsAccessScopeRequest(input, context),\n [_A]: _DNIAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsAccessScopeCommand\");\nvar se_DeleteNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsAccessScopeAnalysisRequest(input, context),\n [_A]: _DNIASA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsAccessScopeAnalysisCommand\");\nvar se_DeleteNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsAnalysisRequest(input, context),\n [_A]: _DNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsAnalysisCommand\");\nvar se_DeleteNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInsightsPathRequest(input, context),\n [_A]: _DNIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInsightsPathCommand\");\nvar se_DeleteNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInterfaceRequest(input, context),\n [_A]: _DNI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInterfaceCommand\");\nvar se_DeleteNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteNetworkInterfacePermissionRequest(input, context),\n [_A]: _DNIPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteNetworkInterfacePermissionCommand\");\nvar se_DeletePlacementGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePlacementGroupRequest(input, context),\n [_A]: _DPG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePlacementGroupCommand\");\nvar se_DeletePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePublicIpv4PoolRequest(input, context),\n [_A]: _DPIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePublicIpv4PoolCommand\");\nvar se_DeleteQueuedReservedInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteQueuedReservedInstancesRequest(input, context),\n [_A]: _DQRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteQueuedReservedInstancesCommand\");\nvar se_DeleteRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteRequest(input, context),\n [_A]: _DR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteCommand\");\nvar se_DeleteRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteServerRequest(input, context),\n [_A]: _DRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteServerCommand\");\nvar se_DeleteRouteServerEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteServerEndpointRequest(input, context),\n [_A]: _DRSE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteServerEndpointCommand\");\nvar se_DeleteRouteServerPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteServerPeerRequest(input, context),\n [_A]: _DRSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteServerPeerCommand\");\nvar se_DeleteRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRouteTableRequest(input, context),\n [_A]: _DRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRouteTableCommand\");\nvar se_DeleteSecurityGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSecurityGroupRequest(input, context),\n [_A]: _DSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSecurityGroupCommand\");\nvar se_DeleteSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSnapshotRequest(input, context),\n [_A]: _DS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSnapshotCommand\");\nvar se_DeleteSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSpotDatafeedSubscriptionRequest(input, context),\n [_A]: _DSDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSpotDatafeedSubscriptionCommand\");\nvar se_DeleteSubnetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSubnetRequest(input, context),\n [_A]: _DSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSubnetCommand\");\nvar se_DeleteSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSubnetCidrReservationRequest(input, context),\n [_A]: _DSCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSubnetCidrReservationCommand\");\nvar se_DeleteTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTagsRequest(input, context),\n [_A]: _DT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTagsCommand\");\nvar se_DeleteTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorFilterRequest(input, context),\n [_A]: _DTMF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorFilterCommand\");\nvar se_DeleteTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorFilterRuleRequest(input, context),\n [_A]: _DTMFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorFilterRuleCommand\");\nvar se_DeleteTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorSessionRequest(input, context),\n [_A]: _DTMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorSessionCommand\");\nvar se_DeleteTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrafficMirrorTargetRequest(input, context),\n [_A]: _DTMT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrafficMirrorTargetCommand\");\nvar se_DeleteTransitGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRequest(input, context),\n [_A]: _DTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayCommand\");\nvar se_DeleteTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayConnectRequest(input, context),\n [_A]: _DTGC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayConnectCommand\");\nvar se_DeleteTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayConnectPeerRequest(input, context),\n [_A]: _DTGCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayConnectPeerCommand\");\nvar se_DeleteTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _DTGMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayMulticastDomainCommand\");\nvar se_DeleteTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _DTGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayPeeringAttachmentCommand\");\nvar se_DeleteTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayPolicyTableRequest(input, context),\n [_A]: _DTGPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayPolicyTableCommand\");\nvar se_DeleteTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayPrefixListReferenceRequest(input, context),\n [_A]: _DTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayPrefixListReferenceCommand\");\nvar se_DeleteTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRouteRequest(input, context),\n [_A]: _DTGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayRouteCommand\");\nvar se_DeleteTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRouteTableRequest(input, context),\n [_A]: _DTGRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayRouteTableCommand\");\nvar se_DeleteTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayRouteTableAnnouncementRequest(input, context),\n [_A]: _DTGRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayRouteTableAnnouncementCommand\");\nvar se_DeleteTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _DTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTransitGatewayVpcAttachmentCommand\");\nvar se_DeleteVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessEndpointRequest(input, context),\n [_A]: _DVAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessEndpointCommand\");\nvar se_DeleteVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessGroupRequest(input, context),\n [_A]: _DVAG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessGroupCommand\");\nvar se_DeleteVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessInstanceRequest(input, context),\n [_A]: _DVAI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessInstanceCommand\");\nvar se_DeleteVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _DVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVerifiedAccessTrustProviderCommand\");\nvar se_DeleteVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVolumeRequest(input, context),\n [_A]: _DV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVolumeCommand\");\nvar se_DeleteVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcRequest(input, context),\n [_A]: _DVe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcCommand\");\nvar se_DeleteVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcBlockPublicAccessExclusionRequest(input, context),\n [_A]: _DVBPAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcBlockPublicAccessExclusionCommand\");\nvar se_DeleteVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcEndpointConnectionNotificationsRequest(input, context),\n [_A]: _DVECN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcEndpointConnectionNotificationsCommand\");\nvar se_DeleteVpcEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcEndpointsRequest(input, context),\n [_A]: _DVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcEndpointsCommand\");\nvar se_DeleteVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcEndpointServiceConfigurationsRequest(input, context),\n [_A]: _DVESC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcEndpointServiceConfigurationsCommand\");\nvar se_DeleteVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpcPeeringConnectionRequest(input, context),\n [_A]: _DVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpcPeeringConnectionCommand\");\nvar se_DeleteVpnConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpnConnectionRequest(input, context),\n [_A]: _DVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpnConnectionCommand\");\nvar se_DeleteVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpnConnectionRouteRequest(input, context),\n [_A]: _DVCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpnConnectionRouteCommand\");\nvar se_DeleteVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVpnGatewayRequest(input, context),\n [_A]: _DVG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVpnGatewayCommand\");\nvar se_DeprovisionByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionByoipCidrRequest(input, context),\n [_A]: _DBC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionByoipCidrCommand\");\nvar se_DeprovisionIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionIpamByoasnRequest(input, context),\n [_A]: _DIB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionIpamByoasnCommand\");\nvar se_DeprovisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionIpamPoolCidrRequest(input, context),\n [_A]: _DIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionIpamPoolCidrCommand\");\nvar se_DeprovisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeprovisionPublicIpv4PoolCidrRequest(input, context),\n [_A]: _DPIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeprovisionPublicIpv4PoolCidrCommand\");\nvar se_DeregisterImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterImageRequest(input, context),\n [_A]: _DIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterImageCommand\");\nvar se_DeregisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterInstanceEventNotificationAttributesRequest(input, context),\n [_A]: _DIENA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterInstanceEventNotificationAttributesCommand\");\nvar se_DeregisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterTransitGatewayMulticastGroupMembersRequest(input, context),\n [_A]: _DTGMGM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTransitGatewayMulticastGroupMembersCommand\");\nvar se_DeregisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterTransitGatewayMulticastGroupSourcesRequest(input, context),\n [_A]: _DTGMGS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTransitGatewayMulticastGroupSourcesCommand\");\nvar se_DescribeAccountAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAccountAttributesRequest(input, context),\n [_A]: _DAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAccountAttributesCommand\");\nvar se_DescribeAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAddressesRequest(input, context),\n [_A]: _DA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAddressesCommand\");\nvar se_DescribeAddressesAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAddressesAttributeRequest(input, context),\n [_A]: _DAAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAddressesAttributeCommand\");\nvar se_DescribeAddressTransfersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAddressTransfersRequest(input, context),\n [_A]: _DAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAddressTransfersCommand\");\nvar se_DescribeAggregateIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAggregateIdFormatRequest(input, context),\n [_A]: _DAIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAggregateIdFormatCommand\");\nvar se_DescribeAvailabilityZonesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAvailabilityZonesRequest(input, context),\n [_A]: _DAZ,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAvailabilityZonesCommand\");\nvar se_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAwsNetworkPerformanceMetricSubscriptionsRequest(input, context),\n [_A]: _DANPMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\");\nvar se_DescribeBundleTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeBundleTasksRequest(input, context),\n [_A]: _DBT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeBundleTasksCommand\");\nvar se_DescribeByoipCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeByoipCidrsRequest(input, context),\n [_A]: _DBCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeByoipCidrsCommand\");\nvar se_DescribeCapacityBlockExtensionHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityBlockExtensionHistoryRequest(input, context),\n [_A]: _DCBEH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityBlockExtensionHistoryCommand\");\nvar se_DescribeCapacityBlockExtensionOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityBlockExtensionOfferingsRequest(input, context),\n [_A]: _DCBEO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityBlockExtensionOfferingsCommand\");\nvar se_DescribeCapacityBlockOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityBlockOfferingsRequest(input, context),\n [_A]: _DCBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityBlockOfferingsCommand\");\nvar se_DescribeCapacityReservationBillingRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationBillingRequestsRequest(input, context),\n [_A]: _DCRBR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationBillingRequestsCommand\");\nvar se_DescribeCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationFleetsRequest(input, context),\n [_A]: _DCRF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationFleetsCommand\");\nvar se_DescribeCapacityReservationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationsRequest(input, context),\n [_A]: _DCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationsCommand\");\nvar se_DescribeCarrierGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCarrierGatewaysRequest(input, context),\n [_A]: _DCGes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCarrierGatewaysCommand\");\nvar se_DescribeClassicLinkInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClassicLinkInstancesRequest(input, context),\n [_A]: _DCLI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClassicLinkInstancesCommand\");\nvar se_DescribeClientVpnAuthorizationRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnAuthorizationRulesRequest(input, context),\n [_A]: _DCVAR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnAuthorizationRulesCommand\");\nvar se_DescribeClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnConnectionsRequest(input, context),\n [_A]: _DCVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnConnectionsCommand\");\nvar se_DescribeClientVpnEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnEndpointsRequest(input, context),\n [_A]: _DCVEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnEndpointsCommand\");\nvar se_DescribeClientVpnRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnRoutesRequest(input, context),\n [_A]: _DCVRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnRoutesCommand\");\nvar se_DescribeClientVpnTargetNetworksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeClientVpnTargetNetworksRequest(input, context),\n [_A]: _DCVTN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClientVpnTargetNetworksCommand\");\nvar se_DescribeCoipPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCoipPoolsRequest(input, context),\n [_A]: _DCPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCoipPoolsCommand\");\nvar se_DescribeConversionTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeConversionTasksRequest(input, context),\n [_A]: _DCT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeConversionTasksCommand\");\nvar se_DescribeCustomerGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCustomerGatewaysRequest(input, context),\n [_A]: _DCGesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCustomerGatewaysCommand\");\nvar se_DescribeDeclarativePoliciesReportsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeDeclarativePoliciesReportsRequest(input, context),\n [_A]: _DDPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDeclarativePoliciesReportsCommand\");\nvar se_DescribeDhcpOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeDhcpOptionsRequest(input, context),\n [_A]: _DDOe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDhcpOptionsCommand\");\nvar se_DescribeEgressOnlyInternetGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeEgressOnlyInternetGatewaysRequest(input, context),\n [_A]: _DEOIGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeEgressOnlyInternetGatewaysCommand\");\nvar se_DescribeElasticGpusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeElasticGpusRequest(input, context),\n [_A]: _DEG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeElasticGpusCommand\");\nvar se_DescribeExportImageTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeExportImageTasksRequest(input, context),\n [_A]: _DEIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExportImageTasksCommand\");\nvar se_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeExportTasksRequest(input, context),\n [_A]: _DET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExportTasksCommand\");\nvar se_DescribeFastLaunchImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFastLaunchImagesRequest(input, context),\n [_A]: _DFLI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFastLaunchImagesCommand\");\nvar se_DescribeFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFastSnapshotRestoresRequest(input, context),\n [_A]: _DFSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFastSnapshotRestoresCommand\");\nvar se_DescribeFleetHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFleetHistoryRequest(input, context),\n [_A]: _DFH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFleetHistoryCommand\");\nvar se_DescribeFleetInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFleetInstancesRequest(input, context),\n [_A]: _DFIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFleetInstancesCommand\");\nvar se_DescribeFleetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFleetsRequest(input, context),\n [_A]: _DFe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFleetsCommand\");\nvar se_DescribeFlowLogsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFlowLogsRequest(input, context),\n [_A]: _DFLe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFlowLogsCommand\");\nvar se_DescribeFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFpgaImageAttributeRequest(input, context),\n [_A]: _DFIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFpgaImageAttributeCommand\");\nvar se_DescribeFpgaImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeFpgaImagesRequest(input, context),\n [_A]: _DFIes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeFpgaImagesCommand\");\nvar se_DescribeHostReservationOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeHostReservationOfferingsRequest(input, context),\n [_A]: _DHRO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeHostReservationOfferingsCommand\");\nvar se_DescribeHostReservationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeHostReservationsRequest(input, context),\n [_A]: _DHR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeHostReservationsCommand\");\nvar se_DescribeHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeHostsRequest(input, context),\n [_A]: _DH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeHostsCommand\");\nvar se_DescribeIamInstanceProfileAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIamInstanceProfileAssociationsRequest(input, context),\n [_A]: _DIIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIamInstanceProfileAssociationsCommand\");\nvar se_DescribeIdentityIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIdentityIdFormatRequest(input, context),\n [_A]: _DIIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdentityIdFormatCommand\");\nvar se_DescribeIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIdFormatRequest(input, context),\n [_A]: _DIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIdFormatCommand\");\nvar se_DescribeImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImageAttributeRequest(input, context),\n [_A]: _DIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImageAttributeCommand\");\nvar se_DescribeImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImagesRequest(input, context),\n [_A]: _DIes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImagesCommand\");\nvar se_DescribeImportImageTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImportImageTasksRequest(input, context),\n [_A]: _DIIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImportImageTasksCommand\");\nvar se_DescribeImportSnapshotTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeImportSnapshotTasksRequest(input, context),\n [_A]: _DIST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImportSnapshotTasksCommand\");\nvar se_DescribeInstanceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceAttributeRequest(input, context),\n [_A]: _DIAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceAttributeCommand\");\nvar se_DescribeInstanceConnectEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceConnectEndpointsRequest(input, context),\n [_A]: _DICEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceConnectEndpointsCommand\");\nvar se_DescribeInstanceCreditSpecificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceCreditSpecificationsRequest(input, context),\n [_A]: _DICS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceCreditSpecificationsCommand\");\nvar se_DescribeInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceEventNotificationAttributesRequest(input, context),\n [_A]: _DIENAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceEventNotificationAttributesCommand\");\nvar se_DescribeInstanceEventWindowsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceEventWindowsRequest(input, context),\n [_A]: _DIEWe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceEventWindowsCommand\");\nvar se_DescribeInstanceImageMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceImageMetadataRequest(input, context),\n [_A]: _DIIM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceImageMetadataCommand\");\nvar se_DescribeInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstancesRequest(input, context),\n [_A]: _DIesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancesCommand\");\nvar se_DescribeInstanceStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceStatusRequest(input, context),\n [_A]: _DISe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceStatusCommand\");\nvar se_DescribeInstanceTopologyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceTopologyRequest(input, context),\n [_A]: _DIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceTopologyCommand\");\nvar se_DescribeInstanceTypeOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceTypeOfferingsRequest(input, context),\n [_A]: _DITO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceTypeOfferingsCommand\");\nvar se_DescribeInstanceTypesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInstanceTypesRequest(input, context),\n [_A]: _DITe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceTypesCommand\");\nvar se_DescribeInternetGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeInternetGatewaysRequest(input, context),\n [_A]: _DIGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInternetGatewaysCommand\");\nvar se_DescribeIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamByoasnRequest(input, context),\n [_A]: _DIBe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamByoasnCommand\");\nvar se_DescribeIpamExternalResourceVerificationTokensCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamExternalResourceVerificationTokensRequest(input, context),\n [_A]: _DIERVTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamExternalResourceVerificationTokensCommand\");\nvar se_DescribeIpamPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamPoolsRequest(input, context),\n [_A]: _DIPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamPoolsCommand\");\nvar se_DescribeIpamResourceDiscoveriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamResourceDiscoveriesRequest(input, context),\n [_A]: _DIRDe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamResourceDiscoveriesCommand\");\nvar se_DescribeIpamResourceDiscoveryAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamResourceDiscoveryAssociationsRequest(input, context),\n [_A]: _DIRDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamResourceDiscoveryAssociationsCommand\");\nvar se_DescribeIpamsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamsRequest(input, context),\n [_A]: _DIescr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamsCommand\");\nvar se_DescribeIpamScopesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpamScopesRequest(input, context),\n [_A]: _DISes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpamScopesCommand\");\nvar se_DescribeIpv6PoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeIpv6PoolsRequest(input, context),\n [_A]: _DIPes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeIpv6PoolsCommand\");\nvar se_DescribeKeyPairsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeKeyPairsRequest(input, context),\n [_A]: _DKPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeKeyPairsCommand\");\nvar se_DescribeLaunchTemplatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLaunchTemplatesRequest(input, context),\n [_A]: _DLTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLaunchTemplatesCommand\");\nvar se_DescribeLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLaunchTemplateVersionsRequest(input, context),\n [_A]: _DLTVe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLaunchTemplateVersionsCommand\");\nvar se_DescribeLocalGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayRouteTablesRequest(input, context),\n [_A]: _DLGRTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayRouteTablesCommand\");\nvar se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest(input, context),\n [_A]: _DLGRTVIGAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\");\nvar se_DescribeLocalGatewayRouteTableVpcAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayRouteTableVpcAssociationsRequest(input, context),\n [_A]: _DLGRTVAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayRouteTableVpcAssociationsCommand\");\nvar se_DescribeLocalGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewaysRequest(input, context),\n [_A]: _DLG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewaysCommand\");\nvar se_DescribeLocalGatewayVirtualInterfaceGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayVirtualInterfaceGroupsRequest(input, context),\n [_A]: _DLGVIGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayVirtualInterfaceGroupsCommand\");\nvar se_DescribeLocalGatewayVirtualInterfacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLocalGatewayVirtualInterfacesRequest(input, context),\n [_A]: _DLGVIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLocalGatewayVirtualInterfacesCommand\");\nvar se_DescribeLockedSnapshotsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLockedSnapshotsRequest(input, context),\n [_A]: _DLS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLockedSnapshotsCommand\");\nvar se_DescribeMacHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeMacHostsRequest(input, context),\n [_A]: _DMH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMacHostsCommand\");\nvar se_DescribeManagedPrefixListsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeManagedPrefixListsRequest(input, context),\n [_A]: _DMPLe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeManagedPrefixListsCommand\");\nvar se_DescribeMovingAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeMovingAddressesRequest(input, context),\n [_A]: _DMA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMovingAddressesCommand\");\nvar se_DescribeNatGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNatGatewaysRequest(input, context),\n [_A]: _DNGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNatGatewaysCommand\");\nvar se_DescribeNetworkAclsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkAclsRequest(input, context),\n [_A]: _DNAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkAclsCommand\");\nvar se_DescribeNetworkInsightsAccessScopeAnalysesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsAccessScopeAnalysesRequest(input, context),\n [_A]: _DNIASAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsAccessScopeAnalysesCommand\");\nvar se_DescribeNetworkInsightsAccessScopesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsAccessScopesRequest(input, context),\n [_A]: _DNIASe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsAccessScopesCommand\");\nvar se_DescribeNetworkInsightsAnalysesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsAnalysesRequest(input, context),\n [_A]: _DNIAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsAnalysesCommand\");\nvar se_DescribeNetworkInsightsPathsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInsightsPathsRequest(input, context),\n [_A]: _DNIPes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInsightsPathsCommand\");\nvar se_DescribeNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInterfaceAttributeRequest(input, context),\n [_A]: _DNIAes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInterfaceAttributeCommand\");\nvar se_DescribeNetworkInterfacePermissionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInterfacePermissionsRequest(input, context),\n [_A]: _DNIPesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInterfacePermissionsCommand\");\nvar se_DescribeNetworkInterfacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeNetworkInterfacesRequest(input, context),\n [_A]: _DNIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeNetworkInterfacesCommand\");\nvar se_DescribeOutpostLagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeOutpostLagsRequest(input, context),\n [_A]: _DOL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeOutpostLagsCommand\");\nvar se_DescribePlacementGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePlacementGroupsRequest(input, context),\n [_A]: _DPGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePlacementGroupsCommand\");\nvar se_DescribePrefixListsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePrefixListsRequest(input, context),\n [_A]: _DPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePrefixListsCommand\");\nvar se_DescribePrincipalIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePrincipalIdFormatRequest(input, context),\n [_A]: _DPIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePrincipalIdFormatCommand\");\nvar se_DescribePublicIpv4PoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribePublicIpv4PoolsRequest(input, context),\n [_A]: _DPIPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePublicIpv4PoolsCommand\");\nvar se_DescribeRegionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRegionsRequest(input, context),\n [_A]: _DRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRegionsCommand\");\nvar se_DescribeReplaceRootVolumeTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReplaceRootVolumeTasksRequest(input, context),\n [_A]: _DRRVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReplaceRootVolumeTasksCommand\");\nvar se_DescribeReservedInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesRequest(input, context),\n [_A]: _DRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesCommand\");\nvar se_DescribeReservedInstancesListingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesListingsRequest(input, context),\n [_A]: _DRIL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesListingsCommand\");\nvar se_DescribeReservedInstancesModificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesModificationsRequest(input, context),\n [_A]: _DRIM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesModificationsCommand\");\nvar se_DescribeReservedInstancesOfferingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeReservedInstancesOfferingsRequest(input, context),\n [_A]: _DRIO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeReservedInstancesOfferingsCommand\");\nvar se_DescribeRouteServerEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteServerEndpointsRequest(input, context),\n [_A]: _DRSEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteServerEndpointsCommand\");\nvar se_DescribeRouteServerPeersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteServerPeersRequest(input, context),\n [_A]: _DRSPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteServerPeersCommand\");\nvar se_DescribeRouteServersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteServersRequest(input, context),\n [_A]: _DRSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteServersCommand\");\nvar se_DescribeRouteTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRouteTablesRequest(input, context),\n [_A]: _DRTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRouteTablesCommand\");\nvar se_DescribeScheduledInstanceAvailabilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeScheduledInstanceAvailabilityRequest(input, context),\n [_A]: _DSIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeScheduledInstanceAvailabilityCommand\");\nvar se_DescribeScheduledInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeScheduledInstancesRequest(input, context),\n [_A]: _DSI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeScheduledInstancesCommand\");\nvar se_DescribeSecurityGroupReferencesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupReferencesRequest(input, context),\n [_A]: _DSGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupReferencesCommand\");\nvar se_DescribeSecurityGroupRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupRulesRequest(input, context),\n [_A]: _DSGRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupRulesCommand\");\nvar se_DescribeSecurityGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupsRequest(input, context),\n [_A]: _DSGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupsCommand\");\nvar se_DescribeSecurityGroupVpcAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSecurityGroupVpcAssociationsRequest(input, context),\n [_A]: _DSGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecurityGroupVpcAssociationsCommand\");\nvar se_DescribeServiceLinkVirtualInterfacesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeServiceLinkVirtualInterfacesRequest(input, context),\n [_A]: _DSLVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServiceLinkVirtualInterfacesCommand\");\nvar se_DescribeSnapshotAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSnapshotAttributeRequest(input, context),\n [_A]: _DSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSnapshotAttributeCommand\");\nvar se_DescribeSnapshotsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSnapshotsRequest(input, context),\n [_A]: _DSes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSnapshotsCommand\");\nvar se_DescribeSnapshotTierStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSnapshotTierStatusRequest(input, context),\n [_A]: _DSTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSnapshotTierStatusCommand\");\nvar se_DescribeSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotDatafeedSubscriptionRequest(input, context),\n [_A]: _DSDSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotDatafeedSubscriptionCommand\");\nvar se_DescribeSpotFleetInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotFleetInstancesRequest(input, context),\n [_A]: _DSFI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotFleetInstancesCommand\");\nvar se_DescribeSpotFleetRequestHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotFleetRequestHistoryRequest(input, context),\n [_A]: _DSFRH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotFleetRequestHistoryCommand\");\nvar se_DescribeSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotFleetRequestsRequest(input, context),\n [_A]: _DSFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotFleetRequestsCommand\");\nvar se_DescribeSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotInstanceRequestsRequest(input, context),\n [_A]: _DSIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotInstanceRequestsCommand\");\nvar se_DescribeSpotPriceHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSpotPriceHistoryRequest(input, context),\n [_A]: _DSPH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSpotPriceHistoryCommand\");\nvar se_DescribeStaleSecurityGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeStaleSecurityGroupsRequest(input, context),\n [_A]: _DSSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStaleSecurityGroupsCommand\");\nvar se_DescribeStoreImageTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeStoreImageTasksRequest(input, context),\n [_A]: _DSIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStoreImageTasksCommand\");\nvar se_DescribeSubnetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSubnetsRequest(input, context),\n [_A]: _DSesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSubnetsCommand\");\nvar se_DescribeTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTagsRequest(input, context),\n [_A]: _DTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTagsCommand\");\nvar se_DescribeTrafficMirrorFilterRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorFilterRulesRequest(input, context),\n [_A]: _DTMFRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorFilterRulesCommand\");\nvar se_DescribeTrafficMirrorFiltersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorFiltersRequest(input, context),\n [_A]: _DTMFe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorFiltersCommand\");\nvar se_DescribeTrafficMirrorSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorSessionsRequest(input, context),\n [_A]: _DTMSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorSessionsCommand\");\nvar se_DescribeTrafficMirrorTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrafficMirrorTargetsRequest(input, context),\n [_A]: _DTMTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrafficMirrorTargetsCommand\");\nvar se_DescribeTransitGatewayAttachmentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayAttachmentsRequest(input, context),\n [_A]: _DTGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayAttachmentsCommand\");\nvar se_DescribeTransitGatewayConnectPeersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayConnectPeersRequest(input, context),\n [_A]: _DTGCPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayConnectPeersCommand\");\nvar se_DescribeTransitGatewayConnectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayConnectsRequest(input, context),\n [_A]: _DTGCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayConnectsCommand\");\nvar se_DescribeTransitGatewayMulticastDomainsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayMulticastDomainsRequest(input, context),\n [_A]: _DTGMDe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayMulticastDomainsCommand\");\nvar se_DescribeTransitGatewayPeeringAttachmentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayPeeringAttachmentsRequest(input, context),\n [_A]: _DTGPAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayPeeringAttachmentsCommand\");\nvar se_DescribeTransitGatewayPolicyTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayPolicyTablesRequest(input, context),\n [_A]: _DTGPTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayPolicyTablesCommand\");\nvar se_DescribeTransitGatewayRouteTableAnnouncementsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayRouteTableAnnouncementsRequest(input, context),\n [_A]: _DTGRTAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayRouteTableAnnouncementsCommand\");\nvar se_DescribeTransitGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayRouteTablesRequest(input, context),\n [_A]: _DTGRTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayRouteTablesCommand\");\nvar se_DescribeTransitGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewaysRequest(input, context),\n [_A]: _DTGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewaysCommand\");\nvar se_DescribeTransitGatewayVpcAttachmentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTransitGatewayVpcAttachmentsRequest(input, context),\n [_A]: _DTGVAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTransitGatewayVpcAttachmentsCommand\");\nvar se_DescribeTrunkInterfaceAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrunkInterfaceAssociationsRequest(input, context),\n [_A]: _DTIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrunkInterfaceAssociationsCommand\");\nvar se_DescribeVerifiedAccessEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessEndpointsRequest(input, context),\n [_A]: _DVAEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessEndpointsCommand\");\nvar se_DescribeVerifiedAccessGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessGroupsRequest(input, context),\n [_A]: _DVAGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessGroupsCommand\");\nvar se_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessInstanceLoggingConfigurationsRequest(input, context),\n [_A]: _DVAILC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\");\nvar se_DescribeVerifiedAccessInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessInstancesRequest(input, context),\n [_A]: _DVAIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessInstancesCommand\");\nvar se_DescribeVerifiedAccessTrustProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVerifiedAccessTrustProvidersRequest(input, context),\n [_A]: _DVATPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVerifiedAccessTrustProvidersCommand\");\nvar se_DescribeVolumeAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumeAttributeRequest(input, context),\n [_A]: _DVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumeAttributeCommand\");\nvar se_DescribeVolumesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumesRequest(input, context),\n [_A]: _DVes,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumesCommand\");\nvar se_DescribeVolumesModificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumesModificationsRequest(input, context),\n [_A]: _DVM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumesModificationsCommand\");\nvar se_DescribeVolumeStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVolumeStatusRequest(input, context),\n [_A]: _DVS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVolumeStatusCommand\");\nvar se_DescribeVpcAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcAttributeRequest(input, context),\n [_A]: _DVAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcAttributeCommand\");\nvar se_DescribeVpcBlockPublicAccessExclusionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcBlockPublicAccessExclusionsRequest(input, context),\n [_A]: _DVBPAEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcBlockPublicAccessExclusionsCommand\");\nvar se_DescribeVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcBlockPublicAccessOptionsRequest(input, context),\n [_A]: _DVBPAO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcBlockPublicAccessOptionsCommand\");\nvar se_DescribeVpcClassicLinkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcClassicLinkRequest(input, context),\n [_A]: _DVCL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcClassicLinkCommand\");\nvar se_DescribeVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcClassicLinkDnsSupportRequest(input, context),\n [_A]: _DVCLDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcClassicLinkDnsSupportCommand\");\nvar se_DescribeVpcEndpointAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointAssociationsRequest(input, context),\n [_A]: _DVEA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointAssociationsCommand\");\nvar se_DescribeVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointConnectionNotificationsRequest(input, context),\n [_A]: _DVECNe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointConnectionNotificationsCommand\");\nvar se_DescribeVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointConnectionsRequest(input, context),\n [_A]: _DVEC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointConnectionsCommand\");\nvar se_DescribeVpcEndpointsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointsRequest(input, context),\n [_A]: _DVEe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointsCommand\");\nvar se_DescribeVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointServiceConfigurationsRequest(input, context),\n [_A]: _DVESCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointServiceConfigurationsCommand\");\nvar se_DescribeVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointServicePermissionsRequest(input, context),\n [_A]: _DVESP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointServicePermissionsCommand\");\nvar se_DescribeVpcEndpointServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcEndpointServicesRequest(input, context),\n [_A]: _DVES,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcEndpointServicesCommand\");\nvar se_DescribeVpcPeeringConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcPeeringConnectionsRequest(input, context),\n [_A]: _DVPCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcPeeringConnectionsCommand\");\nvar se_DescribeVpcsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpcsRequest(input, context),\n [_A]: _DVesc,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpcsCommand\");\nvar se_DescribeVpnConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpnConnectionsRequest(input, context),\n [_A]: _DVCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpnConnectionsCommand\");\nvar se_DescribeVpnGatewaysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeVpnGatewaysRequest(input, context),\n [_A]: _DVGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeVpnGatewaysCommand\");\nvar se_DetachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachClassicLinkVpcRequest(input, context),\n [_A]: _DCLV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachClassicLinkVpcCommand\");\nvar se_DetachInternetGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachInternetGatewayRequest(input, context),\n [_A]: _DIGet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachInternetGatewayCommand\");\nvar se_DetachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachNetworkInterfaceRequest(input, context),\n [_A]: _DNIet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachNetworkInterfaceCommand\");\nvar se_DetachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _DVATPet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachVerifiedAccessTrustProviderCommand\");\nvar se_DetachVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachVolumeRequest(input, context),\n [_A]: _DVet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachVolumeCommand\");\nvar se_DetachVpnGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachVpnGatewayRequest(input, context),\n [_A]: _DVGet,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachVpnGatewayCommand\");\nvar se_DisableAddressTransferCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableAddressTransferRequest(input, context),\n [_A]: _DATi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableAddressTransferCommand\");\nvar se_DisableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableAllowedImagesSettingsRequest(input, context),\n [_A]: _DAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableAllowedImagesSettingsCommand\");\nvar se_DisableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableAwsNetworkPerformanceMetricSubscriptionRequest(input, context),\n [_A]: _DANPMSi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar se_DisableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableEbsEncryptionByDefaultRequest(input, context),\n [_A]: _DEEBD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableEbsEncryptionByDefaultCommand\");\nvar se_DisableFastLaunchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableFastLaunchRequest(input, context),\n [_A]: _DFLi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableFastLaunchCommand\");\nvar se_DisableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableFastSnapshotRestoresRequest(input, context),\n [_A]: _DFSRi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableFastSnapshotRestoresCommand\");\nvar se_DisableImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageRequest(input, context),\n [_A]: _DIi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageCommand\");\nvar se_DisableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageBlockPublicAccessRequest(input, context),\n [_A]: _DIBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageBlockPublicAccessCommand\");\nvar se_DisableImageDeprecationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageDeprecationRequest(input, context),\n [_A]: _DID,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageDeprecationCommand\");\nvar se_DisableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableImageDeregistrationProtectionRequest(input, context),\n [_A]: _DIDP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableImageDeregistrationProtectionCommand\");\nvar se_DisableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableIpamOrganizationAdminAccountRequest(input, context),\n [_A]: _DIOAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableIpamOrganizationAdminAccountCommand\");\nvar se_DisableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableRouteServerPropagationRequest(input, context),\n [_A]: _DRSPi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableRouteServerPropagationCommand\");\nvar se_DisableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableSerialConsoleAccessRequest(input, context),\n [_A]: _DSCA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableSerialConsoleAccessCommand\");\nvar se_DisableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableSnapshotBlockPublicAccessRequest(input, context),\n [_A]: _DSBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableSnapshotBlockPublicAccessCommand\");\nvar se_DisableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableTransitGatewayRouteTablePropagationRequest(input, context),\n [_A]: _DTGRTP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableTransitGatewayRouteTablePropagationCommand\");\nvar se_DisableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableVgwRoutePropagationRequest(input, context),\n [_A]: _DVRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableVgwRoutePropagationCommand\");\nvar se_DisableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableVpcClassicLinkRequest(input, context),\n [_A]: _DVCLi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableVpcClassicLinkCommand\");\nvar se_DisableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableVpcClassicLinkDnsSupportRequest(input, context),\n [_A]: _DVCLDSi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableVpcClassicLinkDnsSupportCommand\");\nvar se_DisassociateAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateAddressRequest(input, context),\n [_A]: _DAi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateAddressCommand\");\nvar se_DisassociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateCapacityReservationBillingOwnerRequest(input, context),\n [_A]: _DCRBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateCapacityReservationBillingOwnerCommand\");\nvar se_DisassociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateClientVpnTargetNetworkRequest(input, context),\n [_A]: _DCVTNi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateClientVpnTargetNetworkCommand\");\nvar se_DisassociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateEnclaveCertificateIamRoleRequest(input, context),\n [_A]: _DECIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateEnclaveCertificateIamRoleCommand\");\nvar se_DisassociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateIamInstanceProfileRequest(input, context),\n [_A]: _DIIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateIamInstanceProfileCommand\");\nvar se_DisassociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateInstanceEventWindowRequest(input, context),\n [_A]: _DIEWi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateInstanceEventWindowCommand\");\nvar se_DisassociateIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateIpamByoasnRequest(input, context),\n [_A]: _DIBi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateIpamByoasnCommand\");\nvar se_DisassociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateIpamResourceDiscoveryRequest(input, context),\n [_A]: _DIRDi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateIpamResourceDiscoveryCommand\");\nvar se_DisassociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateNatGatewayAddressRequest(input, context),\n [_A]: _DNGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateNatGatewayAddressCommand\");\nvar se_DisassociateRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateRouteServerRequest(input, context),\n [_A]: _DRSi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateRouteServerCommand\");\nvar se_DisassociateRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateRouteTableRequest(input, context),\n [_A]: _DRTi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateRouteTableCommand\");\nvar se_DisassociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateSecurityGroupVpcRequest(input, context),\n [_A]: _DSGV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateSecurityGroupVpcCommand\");\nvar se_DisassociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateSubnetCidrBlockRequest(input, context),\n [_A]: _DSCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateSubnetCidrBlockCommand\");\nvar se_DisassociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTransitGatewayMulticastDomainRequest(input, context),\n [_A]: _DTGMDi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTransitGatewayMulticastDomainCommand\");\nvar se_DisassociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTransitGatewayPolicyTableRequest(input, context),\n [_A]: _DTGPTi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTransitGatewayPolicyTableCommand\");\nvar se_DisassociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTransitGatewayRouteTableRequest(input, context),\n [_A]: _DTGRTi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTransitGatewayRouteTableCommand\");\nvar se_DisassociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateTrunkInterfaceRequest(input, context),\n [_A]: _DTI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateTrunkInterfaceCommand\");\nvar se_DisassociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisassociateVpcCidrBlockRequest(input, context),\n [_A]: _DVCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateVpcCidrBlockCommand\");\nvar se_EnableAddressTransferCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableAddressTransferRequest(input, context),\n [_A]: _EAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableAddressTransferCommand\");\nvar se_EnableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableAllowedImagesSettingsRequest(input, context),\n [_A]: _EAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableAllowedImagesSettingsCommand\");\nvar se_EnableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableAwsNetworkPerformanceMetricSubscriptionRequest(input, context),\n [_A]: _EANPMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar se_EnableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableEbsEncryptionByDefaultRequest(input, context),\n [_A]: _EEEBD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableEbsEncryptionByDefaultCommand\");\nvar se_EnableFastLaunchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableFastLaunchRequest(input, context),\n [_A]: _EFL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableFastLaunchCommand\");\nvar se_EnableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableFastSnapshotRestoresRequest(input, context),\n [_A]: _EFSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableFastSnapshotRestoresCommand\");\nvar se_EnableImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageRequest(input, context),\n [_A]: _EI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageCommand\");\nvar se_EnableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageBlockPublicAccessRequest(input, context),\n [_A]: _EIBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageBlockPublicAccessCommand\");\nvar se_EnableImageDeprecationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageDeprecationRequest(input, context),\n [_A]: _EID,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageDeprecationCommand\");\nvar se_EnableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableImageDeregistrationProtectionRequest(input, context),\n [_A]: _EIDP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableImageDeregistrationProtectionCommand\");\nvar se_EnableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableIpamOrganizationAdminAccountRequest(input, context),\n [_A]: _EIOAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableIpamOrganizationAdminAccountCommand\");\nvar se_EnableReachabilityAnalyzerOrganizationSharingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableReachabilityAnalyzerOrganizationSharingRequest(input, context),\n [_A]: _ERAOS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableReachabilityAnalyzerOrganizationSharingCommand\");\nvar se_EnableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableRouteServerPropagationRequest(input, context),\n [_A]: _ERSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableRouteServerPropagationCommand\");\nvar se_EnableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableSerialConsoleAccessRequest(input, context),\n [_A]: _ESCA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableSerialConsoleAccessCommand\");\nvar se_EnableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableSnapshotBlockPublicAccessRequest(input, context),\n [_A]: _ESBPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableSnapshotBlockPublicAccessCommand\");\nvar se_EnableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableTransitGatewayRouteTablePropagationRequest(input, context),\n [_A]: _ETGRTP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableTransitGatewayRouteTablePropagationCommand\");\nvar se_EnableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVgwRoutePropagationRequest(input, context),\n [_A]: _EVRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVgwRoutePropagationCommand\");\nvar se_EnableVolumeIOCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVolumeIORequest(input, context),\n [_A]: _EVIO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVolumeIOCommand\");\nvar se_EnableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVpcClassicLinkRequest(input, context),\n [_A]: _EVCL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVpcClassicLinkCommand\");\nvar se_EnableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableVpcClassicLinkDnsSupportRequest(input, context),\n [_A]: _EVCLDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableVpcClassicLinkDnsSupportCommand\");\nvar se_ExportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportClientVpnClientCertificateRevocationListRequest(input, context),\n [_A]: _ECVCCRL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportClientVpnClientCertificateRevocationListCommand\");\nvar se_ExportClientVpnClientConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportClientVpnClientConfigurationRequest(input, context),\n [_A]: _ECVCC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportClientVpnClientConfigurationCommand\");\nvar se_ExportImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportImageRequest(input, context),\n [_A]: _EIx,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportImageCommand\");\nvar se_ExportTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportTransitGatewayRoutesRequest(input, context),\n [_A]: _ETGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportTransitGatewayRoutesCommand\");\nvar se_ExportVerifiedAccessInstanceClientConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ExportVerifiedAccessInstanceClientConfigurationRequest(input, context),\n [_A]: _EVAICC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExportVerifiedAccessInstanceClientConfigurationCommand\");\nvar se_GetAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAllowedImagesSettingsRequest(input, context),\n [_A]: _GAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAllowedImagesSettingsCommand\");\nvar se_GetAssociatedEnclaveCertificateIamRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAssociatedEnclaveCertificateIamRolesRequest(input, context),\n [_A]: _GAECIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAssociatedEnclaveCertificateIamRolesCommand\");\nvar se_GetAssociatedIpv6PoolCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAssociatedIpv6PoolCidrsRequest(input, context),\n [_A]: _GAIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAssociatedIpv6PoolCidrsCommand\");\nvar se_GetAwsNetworkPerformanceDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAwsNetworkPerformanceDataRequest(input, context),\n [_A]: _GANPD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAwsNetworkPerformanceDataCommand\");\nvar se_GetCapacityReservationUsageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetCapacityReservationUsageRequest(input, context),\n [_A]: _GCRU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCapacityReservationUsageCommand\");\nvar se_GetCoipPoolUsageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetCoipPoolUsageRequest(input, context),\n [_A]: _GCPU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCoipPoolUsageCommand\");\nvar se_GetConsoleOutputCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetConsoleOutputRequest(input, context),\n [_A]: _GCO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetConsoleOutputCommand\");\nvar se_GetConsoleScreenshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetConsoleScreenshotRequest(input, context),\n [_A]: _GCS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetConsoleScreenshotCommand\");\nvar se_GetDeclarativePoliciesReportSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetDeclarativePoliciesReportSummaryRequest(input, context),\n [_A]: _GDPRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeclarativePoliciesReportSummaryCommand\");\nvar se_GetDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetDefaultCreditSpecificationRequest(input, context),\n [_A]: _GDCS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDefaultCreditSpecificationCommand\");\nvar se_GetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetEbsDefaultKmsKeyIdRequest(input, context),\n [_A]: _GEDKKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetEbsDefaultKmsKeyIdCommand\");\nvar se_GetEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetEbsEncryptionByDefaultRequest(input, context),\n [_A]: _GEEBD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetEbsEncryptionByDefaultCommand\");\nvar se_GetFlowLogsIntegrationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetFlowLogsIntegrationTemplateRequest(input, context),\n [_A]: _GFLIT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetFlowLogsIntegrationTemplateCommand\");\nvar se_GetGroupsForCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetGroupsForCapacityReservationRequest(input, context),\n [_A]: _GGFCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetGroupsForCapacityReservationCommand\");\nvar se_GetHostReservationPurchasePreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetHostReservationPurchasePreviewRequest(input, context),\n [_A]: _GHRPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetHostReservationPurchasePreviewCommand\");\nvar se_GetImageBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetImageBlockPublicAccessStateRequest(input, context),\n [_A]: _GIBPAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetImageBlockPublicAccessStateCommand\");\nvar se_GetInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceMetadataDefaultsRequest(input, context),\n [_A]: _GIMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceMetadataDefaultsCommand\");\nvar se_GetInstanceTpmEkPubCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceTpmEkPubRequest(input, context),\n [_A]: _GITEP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceTpmEkPubCommand\");\nvar se_GetInstanceTypesFromInstanceRequirementsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceTypesFromInstanceRequirementsRequest(input, context),\n [_A]: _GITFIR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceTypesFromInstanceRequirementsCommand\");\nvar se_GetInstanceUefiDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceUefiDataRequest(input, context),\n [_A]: _GIUD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceUefiDataCommand\");\nvar se_GetIpamAddressHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamAddressHistoryRequest(input, context),\n [_A]: _GIAH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamAddressHistoryCommand\");\nvar se_GetIpamDiscoveredAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamDiscoveredAccountsRequest(input, context),\n [_A]: _GIDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamDiscoveredAccountsCommand\");\nvar se_GetIpamDiscoveredPublicAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamDiscoveredPublicAddressesRequest(input, context),\n [_A]: _GIDPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamDiscoveredPublicAddressesCommand\");\nvar se_GetIpamDiscoveredResourceCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamDiscoveredResourceCidrsRequest(input, context),\n [_A]: _GIDRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamDiscoveredResourceCidrsCommand\");\nvar se_GetIpamPoolAllocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamPoolAllocationsRequest(input, context),\n [_A]: _GIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamPoolAllocationsCommand\");\nvar se_GetIpamPoolCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamPoolCidrsRequest(input, context),\n [_A]: _GIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamPoolCidrsCommand\");\nvar se_GetIpamResourceCidrsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetIpamResourceCidrsRequest(input, context),\n [_A]: _GIRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetIpamResourceCidrsCommand\");\nvar se_GetLaunchTemplateDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetLaunchTemplateDataRequest(input, context),\n [_A]: _GLTD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLaunchTemplateDataCommand\");\nvar se_GetManagedPrefixListAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetManagedPrefixListAssociationsRequest(input, context),\n [_A]: _GMPLA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetManagedPrefixListAssociationsCommand\");\nvar se_GetManagedPrefixListEntriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetManagedPrefixListEntriesRequest(input, context),\n [_A]: _GMPLE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetManagedPrefixListEntriesCommand\");\nvar se_GetNetworkInsightsAccessScopeAnalysisFindingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetNetworkInsightsAccessScopeAnalysisFindingsRequest(input, context),\n [_A]: _GNIASAF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetNetworkInsightsAccessScopeAnalysisFindingsCommand\");\nvar se_GetNetworkInsightsAccessScopeContentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetNetworkInsightsAccessScopeContentRequest(input, context),\n [_A]: _GNIASC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetNetworkInsightsAccessScopeContentCommand\");\nvar se_GetPasswordDataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetPasswordDataRequest(input, context),\n [_A]: _GPD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPasswordDataCommand\");\nvar se_GetReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetReservedInstancesExchangeQuoteRequest(input, context),\n [_A]: _GRIEQ,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetReservedInstancesExchangeQuoteCommand\");\nvar se_GetRouteServerAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRouteServerAssociationsRequest(input, context),\n [_A]: _GRSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRouteServerAssociationsCommand\");\nvar se_GetRouteServerPropagationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRouteServerPropagationsRequest(input, context),\n [_A]: _GRSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRouteServerPropagationsCommand\");\nvar se_GetRouteServerRoutingDatabaseCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRouteServerRoutingDatabaseRequest(input, context),\n [_A]: _GRSRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRouteServerRoutingDatabaseCommand\");\nvar se_GetSecurityGroupsForVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSecurityGroupsForVpcRequest(input, context),\n [_A]: _GSGFV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSecurityGroupsForVpcCommand\");\nvar se_GetSerialConsoleAccessStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSerialConsoleAccessStatusRequest(input, context),\n [_A]: _GSCAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSerialConsoleAccessStatusCommand\");\nvar se_GetSnapshotBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSnapshotBlockPublicAccessStateRequest(input, context),\n [_A]: _GSBPAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSnapshotBlockPublicAccessStateCommand\");\nvar se_GetSpotPlacementScoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSpotPlacementScoresRequest(input, context),\n [_A]: _GSPS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSpotPlacementScoresCommand\");\nvar se_GetSubnetCidrReservationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSubnetCidrReservationsRequest(input, context),\n [_A]: _GSCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSubnetCidrReservationsCommand\");\nvar se_GetTransitGatewayAttachmentPropagationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayAttachmentPropagationsRequest(input, context),\n [_A]: _GTGAP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayAttachmentPropagationsCommand\");\nvar se_GetTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayMulticastDomainAssociationsRequest(input, context),\n [_A]: _GTGMDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayMulticastDomainAssociationsCommand\");\nvar se_GetTransitGatewayPolicyTableAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayPolicyTableAssociationsRequest(input, context),\n [_A]: _GTGPTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayPolicyTableAssociationsCommand\");\nvar se_GetTransitGatewayPolicyTableEntriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayPolicyTableEntriesRequest(input, context),\n [_A]: _GTGPTE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayPolicyTableEntriesCommand\");\nvar se_GetTransitGatewayPrefixListReferencesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayPrefixListReferencesRequest(input, context),\n [_A]: _GTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayPrefixListReferencesCommand\");\nvar se_GetTransitGatewayRouteTableAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayRouteTableAssociationsRequest(input, context),\n [_A]: _GTGRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayRouteTableAssociationsCommand\");\nvar se_GetTransitGatewayRouteTablePropagationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTransitGatewayRouteTablePropagationsRequest(input, context),\n [_A]: _GTGRTP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTransitGatewayRouteTablePropagationsCommand\");\nvar se_GetVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVerifiedAccessEndpointPolicyRequest(input, context),\n [_A]: _GVAEP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVerifiedAccessEndpointPolicyCommand\");\nvar se_GetVerifiedAccessEndpointTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVerifiedAccessEndpointTargetsRequest(input, context),\n [_A]: _GVAET,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVerifiedAccessEndpointTargetsCommand\");\nvar se_GetVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVerifiedAccessGroupPolicyRequest(input, context),\n [_A]: _GVAGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVerifiedAccessGroupPolicyCommand\");\nvar se_GetVpnConnectionDeviceSampleConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVpnConnectionDeviceSampleConfigurationRequest(input, context),\n [_A]: _GVCDSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVpnConnectionDeviceSampleConfigurationCommand\");\nvar se_GetVpnConnectionDeviceTypesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVpnConnectionDeviceTypesRequest(input, context),\n [_A]: _GVCDT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVpnConnectionDeviceTypesCommand\");\nvar se_GetVpnTunnelReplacementStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetVpnTunnelReplacementStatusRequest(input, context),\n [_A]: _GVTRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetVpnTunnelReplacementStatusCommand\");\nvar se_ImportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportClientVpnClientCertificateRevocationListRequest(input, context),\n [_A]: _ICVCCRL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportClientVpnClientCertificateRevocationListCommand\");\nvar se_ImportImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportImageRequest(input, context),\n [_A]: _II,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportImageCommand\");\nvar se_ImportInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportInstanceRequest(input, context),\n [_A]: _IIm,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportInstanceCommand\");\nvar se_ImportKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportKeyPairRequest(input, context),\n [_A]: _IKP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportKeyPairCommand\");\nvar se_ImportSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportSnapshotRequest(input, context),\n [_A]: _IS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportSnapshotCommand\");\nvar se_ImportVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ImportVolumeRequest(input, context),\n [_A]: _IV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportVolumeCommand\");\nvar se_ListImagesInRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListImagesInRecycleBinRequest(input, context),\n [_A]: _LIIRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListImagesInRecycleBinCommand\");\nvar se_ListSnapshotsInRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSnapshotsInRecycleBinRequest(input, context),\n [_A]: _LSIRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSnapshotsInRecycleBinCommand\");\nvar se_LockSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_LockSnapshotRequest(input, context),\n [_A]: _LS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_LockSnapshotCommand\");\nvar se_ModifyAddressAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyAddressAttributeRequest(input, context),\n [_A]: _MAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyAddressAttributeCommand\");\nvar se_ModifyAvailabilityZoneGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyAvailabilityZoneGroupRequest(input, context),\n [_A]: _MAZG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyAvailabilityZoneGroupCommand\");\nvar se_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyCapacityReservationRequest(input, context),\n [_A]: _MCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyCapacityReservationCommand\");\nvar se_ModifyCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyCapacityReservationFleetRequest(input, context),\n [_A]: _MCRF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyCapacityReservationFleetCommand\");\nvar se_ModifyClientVpnEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyClientVpnEndpointRequest(input, context),\n [_A]: _MCVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyClientVpnEndpointCommand\");\nvar se_ModifyDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyDefaultCreditSpecificationRequest(input, context),\n [_A]: _MDCS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyDefaultCreditSpecificationCommand\");\nvar se_ModifyEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyEbsDefaultKmsKeyIdRequest(input, context),\n [_A]: _MEDKKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyEbsDefaultKmsKeyIdCommand\");\nvar se_ModifyFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyFleetRequest(input, context),\n [_A]: _MF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyFleetCommand\");\nvar se_ModifyFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyFpgaImageAttributeRequest(input, context),\n [_A]: _MFIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyFpgaImageAttributeCommand\");\nvar se_ModifyHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyHostsRequest(input, context),\n [_A]: _MH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyHostsCommand\");\nvar se_ModifyIdentityIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIdentityIdFormatRequest(input, context),\n [_A]: _MIIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIdentityIdFormatCommand\");\nvar se_ModifyIdFormatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIdFormatRequest(input, context),\n [_A]: _MIF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIdFormatCommand\");\nvar se_ModifyImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyImageAttributeRequest(input, context),\n [_A]: _MIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyImageAttributeCommand\");\nvar se_ModifyInstanceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceAttributeRequest(input, context),\n [_A]: _MIAo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceAttributeCommand\");\nvar se_ModifyInstanceCapacityReservationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceCapacityReservationAttributesRequest(input, context),\n [_A]: _MICRA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceCapacityReservationAttributesCommand\");\nvar se_ModifyInstanceCpuOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceCpuOptionsRequest(input, context),\n [_A]: _MICO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceCpuOptionsCommand\");\nvar se_ModifyInstanceCreditSpecificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceCreditSpecificationRequest(input, context),\n [_A]: _MICS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceCreditSpecificationCommand\");\nvar se_ModifyInstanceEventStartTimeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceEventStartTimeRequest(input, context),\n [_A]: _MIEST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceEventStartTimeCommand\");\nvar se_ModifyInstanceEventWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceEventWindowRequest(input, context),\n [_A]: _MIEW,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceEventWindowCommand\");\nvar se_ModifyInstanceMaintenanceOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceMaintenanceOptionsRequest(input, context),\n [_A]: _MIMO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceMaintenanceOptionsCommand\");\nvar se_ModifyInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceMetadataDefaultsRequest(input, context),\n [_A]: _MIMD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceMetadataDefaultsCommand\");\nvar se_ModifyInstanceMetadataOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceMetadataOptionsRequest(input, context),\n [_A]: _MIMOo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceMetadataOptionsCommand\");\nvar se_ModifyInstanceNetworkPerformanceOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstanceNetworkPerformanceRequest(input, context),\n [_A]: _MINPO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstanceNetworkPerformanceOptionsCommand\");\nvar se_ModifyInstancePlacementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyInstancePlacementRequest(input, context),\n [_A]: _MIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyInstancePlacementCommand\");\nvar se_ModifyIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamRequest(input, context),\n [_A]: _MI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamCommand\");\nvar se_ModifyIpamPoolCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamPoolRequest(input, context),\n [_A]: _MIPo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamPoolCommand\");\nvar se_ModifyIpamResourceCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamResourceCidrRequest(input, context),\n [_A]: _MIRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamResourceCidrCommand\");\nvar se_ModifyIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamResourceDiscoveryRequest(input, context),\n [_A]: _MIRD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamResourceDiscoveryCommand\");\nvar se_ModifyIpamScopeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpamScopeRequest(input, context),\n [_A]: _MIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpamScopeCommand\");\nvar se_ModifyLaunchTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyLaunchTemplateRequest(input, context),\n [_A]: _MLT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyLaunchTemplateCommand\");\nvar se_ModifyLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyLocalGatewayRouteRequest(input, context),\n [_A]: _MLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyLocalGatewayRouteCommand\");\nvar se_ModifyManagedPrefixListCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyManagedPrefixListRequest(input, context),\n [_A]: _MMPL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyManagedPrefixListCommand\");\nvar se_ModifyNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyNetworkInterfaceAttributeRequest(input, context),\n [_A]: _MNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyNetworkInterfaceAttributeCommand\");\nvar se_ModifyPrivateDnsNameOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyPrivateDnsNameOptionsRequest(input, context),\n [_A]: _MPDNO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyPrivateDnsNameOptionsCommand\");\nvar se_ModifyReservedInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyReservedInstancesRequest(input, context),\n [_A]: _MRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyReservedInstancesCommand\");\nvar se_ModifyRouteServerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyRouteServerRequest(input, context),\n [_A]: _MRS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyRouteServerCommand\");\nvar se_ModifySecurityGroupRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySecurityGroupRulesRequest(input, context),\n [_A]: _MSGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySecurityGroupRulesCommand\");\nvar se_ModifySnapshotAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySnapshotAttributeRequest(input, context),\n [_A]: _MSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySnapshotAttributeCommand\");\nvar se_ModifySnapshotTierCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySnapshotTierRequest(input, context),\n [_A]: _MST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySnapshotTierCommand\");\nvar se_ModifySpotFleetRequestCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySpotFleetRequestRequest(input, context),\n [_A]: _MSFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySpotFleetRequestCommand\");\nvar se_ModifySubnetAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifySubnetAttributeRequest(input, context),\n [_A]: _MSAo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifySubnetAttributeCommand\");\nvar se_ModifyTrafficMirrorFilterNetworkServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrafficMirrorFilterNetworkServicesRequest(input, context),\n [_A]: _MTMFNS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrafficMirrorFilterNetworkServicesCommand\");\nvar se_ModifyTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrafficMirrorFilterRuleRequest(input, context),\n [_A]: _MTMFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrafficMirrorFilterRuleCommand\");\nvar se_ModifyTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrafficMirrorSessionRequest(input, context),\n [_A]: _MTMS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrafficMirrorSessionCommand\");\nvar se_ModifyTransitGatewayCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTransitGatewayRequest(input, context),\n [_A]: _MTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTransitGatewayCommand\");\nvar se_ModifyTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTransitGatewayPrefixListReferenceRequest(input, context),\n [_A]: _MTGPLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTransitGatewayPrefixListReferenceCommand\");\nvar se_ModifyTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _MTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTransitGatewayVpcAttachmentCommand\");\nvar se_ModifyVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessEndpointRequest(input, context),\n [_A]: _MVAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessEndpointCommand\");\nvar se_ModifyVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessEndpointPolicyRequest(input, context),\n [_A]: _MVAEP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessEndpointPolicyCommand\");\nvar se_ModifyVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessGroupRequest(input, context),\n [_A]: _MVAG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessGroupCommand\");\nvar se_ModifyVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessGroupPolicyRequest(input, context),\n [_A]: _MVAGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessGroupPolicyCommand\");\nvar se_ModifyVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessInstanceRequest(input, context),\n [_A]: _MVAI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessInstanceCommand\");\nvar se_ModifyVerifiedAccessInstanceLoggingConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessInstanceLoggingConfigurationRequest(input, context),\n [_A]: _MVAILC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessInstanceLoggingConfigurationCommand\");\nvar se_ModifyVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVerifiedAccessTrustProviderRequest(input, context),\n [_A]: _MVATP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVerifiedAccessTrustProviderCommand\");\nvar se_ModifyVolumeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVolumeRequest(input, context),\n [_A]: _MV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVolumeCommand\");\nvar se_ModifyVolumeAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVolumeAttributeRequest(input, context),\n [_A]: _MVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVolumeAttributeCommand\");\nvar se_ModifyVpcAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcAttributeRequest(input, context),\n [_A]: _MVAo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcAttributeCommand\");\nvar se_ModifyVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcBlockPublicAccessExclusionRequest(input, context),\n [_A]: _MVBPAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcBlockPublicAccessExclusionCommand\");\nvar se_ModifyVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcBlockPublicAccessOptionsRequest(input, context),\n [_A]: _MVBPAO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcBlockPublicAccessOptionsCommand\");\nvar se_ModifyVpcEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointRequest(input, context),\n [_A]: _MVE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointCommand\");\nvar se_ModifyVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointConnectionNotificationRequest(input, context),\n [_A]: _MVECN,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointConnectionNotificationCommand\");\nvar se_ModifyVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointServiceConfigurationRequest(input, context),\n [_A]: _MVESC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointServiceConfigurationCommand\");\nvar se_ModifyVpcEndpointServicePayerResponsibilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointServicePayerResponsibilityRequest(input, context),\n [_A]: _MVESPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointServicePayerResponsibilityCommand\");\nvar se_ModifyVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcEndpointServicePermissionsRequest(input, context),\n [_A]: _MVESP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcEndpointServicePermissionsCommand\");\nvar se_ModifyVpcPeeringConnectionOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcPeeringConnectionOptionsRequest(input, context),\n [_A]: _MVPCO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcPeeringConnectionOptionsCommand\");\nvar se_ModifyVpcTenancyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpcTenancyRequest(input, context),\n [_A]: _MVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpcTenancyCommand\");\nvar se_ModifyVpnConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnConnectionRequest(input, context),\n [_A]: _MVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnConnectionCommand\");\nvar se_ModifyVpnConnectionOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnConnectionOptionsRequest(input, context),\n [_A]: _MVCO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnConnectionOptionsCommand\");\nvar se_ModifyVpnTunnelCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnTunnelCertificateRequest(input, context),\n [_A]: _MVTC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnTunnelCertificateCommand\");\nvar se_ModifyVpnTunnelOptionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyVpnTunnelOptionsRequest(input, context),\n [_A]: _MVTO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyVpnTunnelOptionsCommand\");\nvar se_MonitorInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MonitorInstancesRequest(input, context),\n [_A]: _MIo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MonitorInstancesCommand\");\nvar se_MoveAddressToVpcCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MoveAddressToVpcRequest(input, context),\n [_A]: _MATV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MoveAddressToVpcCommand\");\nvar se_MoveByoipCidrToIpamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MoveByoipCidrToIpamRequest(input, context),\n [_A]: _MBCTI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MoveByoipCidrToIpamCommand\");\nvar se_MoveCapacityReservationInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_MoveCapacityReservationInstancesRequest(input, context),\n [_A]: _MCRI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_MoveCapacityReservationInstancesCommand\");\nvar se_ProvisionByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionByoipCidrRequest(input, context),\n [_A]: _PBC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionByoipCidrCommand\");\nvar se_ProvisionIpamByoasnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionIpamByoasnRequest(input, context),\n [_A]: _PIB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionIpamByoasnCommand\");\nvar se_ProvisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionIpamPoolCidrRequest(input, context),\n [_A]: _PIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionIpamPoolCidrCommand\");\nvar se_ProvisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ProvisionPublicIpv4PoolCidrRequest(input, context),\n [_A]: _PPIPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ProvisionPublicIpv4PoolCidrCommand\");\nvar se_PurchaseCapacityBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseCapacityBlockRequest(input, context),\n [_A]: _PCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseCapacityBlockCommand\");\nvar se_PurchaseCapacityBlockExtensionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseCapacityBlockExtensionRequest(input, context),\n [_A]: _PCBE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseCapacityBlockExtensionCommand\");\nvar se_PurchaseHostReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseHostReservationRequest(input, context),\n [_A]: _PHR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseHostReservationCommand\");\nvar se_PurchaseReservedInstancesOfferingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseReservedInstancesOfferingRequest(input, context),\n [_A]: _PRIO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseReservedInstancesOfferingCommand\");\nvar se_PurchaseScheduledInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PurchaseScheduledInstancesRequest(input, context),\n [_A]: _PSI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PurchaseScheduledInstancesCommand\");\nvar se_RebootInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RebootInstancesRequest(input, context),\n [_A]: _RI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RebootInstancesCommand\");\nvar se_RegisterImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterImageRequest(input, context),\n [_A]: _RIe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterImageCommand\");\nvar se_RegisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterInstanceEventNotificationAttributesRequest(input, context),\n [_A]: _RIENA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterInstanceEventNotificationAttributesCommand\");\nvar se_RegisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterTransitGatewayMulticastGroupMembersRequest(input, context),\n [_A]: _RTGMGM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTransitGatewayMulticastGroupMembersCommand\");\nvar se_RegisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterTransitGatewayMulticastGroupSourcesRequest(input, context),\n [_A]: _RTGMGS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTransitGatewayMulticastGroupSourcesCommand\");\nvar se_RejectCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectCapacityReservationBillingOwnershipRequest(input, context),\n [_A]: _RCRBO,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectCapacityReservationBillingOwnershipCommand\");\nvar se_RejectTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectTransitGatewayMulticastDomainAssociationsRequest(input, context),\n [_A]: _RTGMDA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectTransitGatewayMulticastDomainAssociationsCommand\");\nvar se_RejectTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectTransitGatewayPeeringAttachmentRequest(input, context),\n [_A]: _RTGPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectTransitGatewayPeeringAttachmentCommand\");\nvar se_RejectTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectTransitGatewayVpcAttachmentRequest(input, context),\n [_A]: _RTGVA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectTransitGatewayVpcAttachmentCommand\");\nvar se_RejectVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectVpcEndpointConnectionsRequest(input, context),\n [_A]: _RVEC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectVpcEndpointConnectionsCommand\");\nvar se_RejectVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RejectVpcPeeringConnectionRequest(input, context),\n [_A]: _RVPC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RejectVpcPeeringConnectionCommand\");\nvar se_ReleaseAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReleaseAddressRequest(input, context),\n [_A]: _RA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReleaseAddressCommand\");\nvar se_ReleaseHostsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReleaseHostsRequest(input, context),\n [_A]: _RH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReleaseHostsCommand\");\nvar se_ReleaseIpamPoolAllocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReleaseIpamPoolAllocationRequest(input, context),\n [_A]: _RIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReleaseIpamPoolAllocationCommand\");\nvar se_ReplaceIamInstanceProfileAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceIamInstanceProfileAssociationRequest(input, context),\n [_A]: _RIIPA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceIamInstanceProfileAssociationCommand\");\nvar se_ReplaceImageCriteriaInAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceImageCriteriaInAllowedImagesSettingsRequest(input, context),\n [_A]: _RICIAIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceImageCriteriaInAllowedImagesSettingsCommand\");\nvar se_ReplaceNetworkAclAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceNetworkAclAssociationRequest(input, context),\n [_A]: _RNAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceNetworkAclAssociationCommand\");\nvar se_ReplaceNetworkAclEntryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceNetworkAclEntryRequest(input, context),\n [_A]: _RNAE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceNetworkAclEntryCommand\");\nvar se_ReplaceRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceRouteRequest(input, context),\n [_A]: _RR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceRouteCommand\");\nvar se_ReplaceRouteTableAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceRouteTableAssociationRequest(input, context),\n [_A]: _RRTA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceRouteTableAssociationCommand\");\nvar se_ReplaceTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceTransitGatewayRouteRequest(input, context),\n [_A]: _RTGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceTransitGatewayRouteCommand\");\nvar se_ReplaceVpnTunnelCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReplaceVpnTunnelRequest(input, context),\n [_A]: _RVT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplaceVpnTunnelCommand\");\nvar se_ReportInstanceStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ReportInstanceStatusRequest(input, context),\n [_A]: _RIS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReportInstanceStatusCommand\");\nvar se_RequestSpotFleetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RequestSpotFleetRequest(input, context),\n [_A]: _RSF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RequestSpotFleetCommand\");\nvar se_RequestSpotInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RequestSpotInstancesRequest(input, context),\n [_A]: _RSI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RequestSpotInstancesCommand\");\nvar se_ResetAddressAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetAddressAttributeRequest(input, context),\n [_A]: _RAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetAddressAttributeCommand\");\nvar se_ResetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetEbsDefaultKmsKeyIdRequest(input, context),\n [_A]: _REDKKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetEbsDefaultKmsKeyIdCommand\");\nvar se_ResetFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetFpgaImageAttributeRequest(input, context),\n [_A]: _RFIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetFpgaImageAttributeCommand\");\nvar se_ResetImageAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetImageAttributeRequest(input, context),\n [_A]: _RIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetImageAttributeCommand\");\nvar se_ResetInstanceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetInstanceAttributeRequest(input, context),\n [_A]: _RIAe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetInstanceAttributeCommand\");\nvar se_ResetNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetNetworkInterfaceAttributeRequest(input, context),\n [_A]: _RNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetNetworkInterfaceAttributeCommand\");\nvar se_ResetSnapshotAttributeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetSnapshotAttributeRequest(input, context),\n [_A]: _RSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetSnapshotAttributeCommand\");\nvar se_RestoreAddressToClassicCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreAddressToClassicRequest(input, context),\n [_A]: _RATC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreAddressToClassicCommand\");\nvar se_RestoreImageFromRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreImageFromRecycleBinRequest(input, context),\n [_A]: _RIFRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreImageFromRecycleBinCommand\");\nvar se_RestoreManagedPrefixListVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreManagedPrefixListVersionRequest(input, context),\n [_A]: _RMPLV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreManagedPrefixListVersionCommand\");\nvar se_RestoreSnapshotFromRecycleBinCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreSnapshotFromRecycleBinRequest(input, context),\n [_A]: _RSFRB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreSnapshotFromRecycleBinCommand\");\nvar se_RestoreSnapshotTierCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RestoreSnapshotTierRequest(input, context),\n [_A]: _RST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreSnapshotTierCommand\");\nvar se_RevokeClientVpnIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RevokeClientVpnIngressRequest(input, context),\n [_A]: _RCVI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeClientVpnIngressCommand\");\nvar se_RevokeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RevokeSecurityGroupEgressRequest(input, context),\n [_A]: _RSGE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeSecurityGroupEgressCommand\");\nvar se_RevokeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RevokeSecurityGroupIngressRequest(input, context),\n [_A]: _RSGI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeSecurityGroupIngressCommand\");\nvar se_RunInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RunInstancesRequest(input, context),\n [_A]: _RIu,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RunInstancesCommand\");\nvar se_RunScheduledInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RunScheduledInstancesRequest(input, context),\n [_A]: _RSIu,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RunScheduledInstancesCommand\");\nvar se_SearchLocalGatewayRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SearchLocalGatewayRoutesRequest(input, context),\n [_A]: _SLGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SearchLocalGatewayRoutesCommand\");\nvar se_SearchTransitGatewayMulticastGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SearchTransitGatewayMulticastGroupsRequest(input, context),\n [_A]: _STGMG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SearchTransitGatewayMulticastGroupsCommand\");\nvar se_SearchTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SearchTransitGatewayRoutesRequest(input, context),\n [_A]: _STGR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SearchTransitGatewayRoutesCommand\");\nvar se_SendDiagnosticInterruptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SendDiagnosticInterruptRequest(input, context),\n [_A]: _SDI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendDiagnosticInterruptCommand\");\nvar se_StartDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartDeclarativePoliciesReportRequest(input, context),\n [_A]: _SDPR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartDeclarativePoliciesReportCommand\");\nvar se_StartInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartInstancesRequest(input, context),\n [_A]: _SI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartInstancesCommand\");\nvar se_StartNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartNetworkInsightsAccessScopeAnalysisRequest(input, context),\n [_A]: _SNIASA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartNetworkInsightsAccessScopeAnalysisCommand\");\nvar se_StartNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartNetworkInsightsAnalysisRequest(input, context),\n [_A]: _SNIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartNetworkInsightsAnalysisCommand\");\nvar se_StartVpcEndpointServicePrivateDnsVerificationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StartVpcEndpointServicePrivateDnsVerificationRequest(input, context),\n [_A]: _SVESPDV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartVpcEndpointServicePrivateDnsVerificationCommand\");\nvar se_StopInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_StopInstancesRequest(input, context),\n [_A]: _SIt,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopInstancesCommand\");\nvar se_TerminateClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TerminateClientVpnConnectionsRequest(input, context),\n [_A]: _TCVC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TerminateClientVpnConnectionsCommand\");\nvar se_TerminateInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TerminateInstancesRequest(input, context),\n [_A]: _TI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TerminateInstancesCommand\");\nvar se_UnassignIpv6AddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnassignIpv6AddressesRequest(input, context),\n [_A]: _UIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnassignIpv6AddressesCommand\");\nvar se_UnassignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnassignPrivateIpAddressesRequest(input, context),\n [_A]: _UPIA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnassignPrivateIpAddressesCommand\");\nvar se_UnassignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnassignPrivateNatGatewayAddressRequest(input, context),\n [_A]: _UPNGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnassignPrivateNatGatewayAddressCommand\");\nvar se_UnlockSnapshotCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnlockSnapshotRequest(input, context),\n [_A]: _US,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlockSnapshotCommand\");\nvar se_UnmonitorInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UnmonitorInstancesRequest(input, context),\n [_A]: _UI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnmonitorInstancesCommand\");\nvar se_UpdateSecurityGroupRuleDescriptionsEgressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSecurityGroupRuleDescriptionsEgressRequest(input, context),\n [_A]: _USGRDE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecurityGroupRuleDescriptionsEgressCommand\");\nvar se_UpdateSecurityGroupRuleDescriptionsIngressCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSecurityGroupRuleDescriptionsIngressRequest(input, context),\n [_A]: _USGRDI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecurityGroupRuleDescriptionsIngressCommand\");\nvar se_WithdrawByoipCidrCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_WithdrawByoipCidrRequest(input, context),\n [_A]: _WBC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_WithdrawByoipCidrCommand\");\nvar de_AcceptAddressTransferCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptAddressTransferResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptAddressTransferCommand\");\nvar de_AcceptCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptCapacityReservationBillingOwnershipResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptCapacityReservationBillingOwnershipCommand\");\nvar de_AcceptReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptReservedInstancesExchangeQuoteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptReservedInstancesExchangeQuoteCommand\");\nvar de_AcceptTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptTransitGatewayMulticastDomainAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptTransitGatewayMulticastDomainAssociationsCommand\");\nvar de_AcceptTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptTransitGatewayPeeringAttachmentCommand\");\nvar de_AcceptTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptTransitGatewayVpcAttachmentCommand\");\nvar de_AcceptVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptVpcEndpointConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptVpcEndpointConnectionsCommand\");\nvar de_AcceptVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AcceptVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AcceptVpcPeeringConnectionCommand\");\nvar de_AdvertiseByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AdvertiseByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AdvertiseByoipCidrCommand\");\nvar de_AllocateAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AllocateAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AllocateAddressCommand\");\nvar de_AllocateHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AllocateHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AllocateHostsCommand\");\nvar de_AllocateIpamPoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AllocateIpamPoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AllocateIpamPoolCidrCommand\");\nvar de_ApplySecurityGroupsToClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ApplySecurityGroupsToClientVpnTargetNetworkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ApplySecurityGroupsToClientVpnTargetNetworkCommand\");\nvar de_AssignIpv6AddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssignIpv6AddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssignIpv6AddressesCommand\");\nvar de_AssignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssignPrivateIpAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssignPrivateIpAddressesCommand\");\nvar de_AssignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssignPrivateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssignPrivateNatGatewayAddressCommand\");\nvar de_AssociateAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateAddressCommand\");\nvar de_AssociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateCapacityReservationBillingOwnerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateCapacityReservationBillingOwnerCommand\");\nvar de_AssociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateClientVpnTargetNetworkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateClientVpnTargetNetworkCommand\");\nvar de_AssociateDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AssociateDhcpOptionsCommand\");\nvar de_AssociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateEnclaveCertificateIamRoleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateEnclaveCertificateIamRoleCommand\");\nvar de_AssociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateIamInstanceProfileResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateIamInstanceProfileCommand\");\nvar de_AssociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateInstanceEventWindowCommand\");\nvar de_AssociateIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateIpamByoasnCommand\");\nvar de_AssociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateIpamResourceDiscoveryCommand\");\nvar de_AssociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateNatGatewayAddressCommand\");\nvar de_AssociateRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateRouteServerCommand\");\nvar de_AssociateRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateRouteTableCommand\");\nvar de_AssociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateSecurityGroupVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateSecurityGroupVpcCommand\");\nvar de_AssociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateSubnetCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateSubnetCidrBlockCommand\");\nvar de_AssociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTransitGatewayMulticastDomainCommand\");\nvar de_AssociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTransitGatewayPolicyTableCommand\");\nvar de_AssociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTransitGatewayRouteTableCommand\");\nvar de_AssociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateTrunkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateTrunkInterfaceCommand\");\nvar de_AssociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssociateVpcCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateVpcCidrBlockCommand\");\nvar de_AttachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachClassicLinkVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachClassicLinkVpcCommand\");\nvar de_AttachInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachInternetGatewayCommand\");\nvar de_AttachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachNetworkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachNetworkInterfaceCommand\");\nvar de_AttachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachVerifiedAccessTrustProviderCommand\");\nvar de_AttachVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_VolumeAttachment(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachVolumeCommand\");\nvar de_AttachVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AttachVpnGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AttachVpnGatewayCommand\");\nvar de_AuthorizeClientVpnIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AuthorizeClientVpnIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AuthorizeClientVpnIngressCommand\");\nvar de_AuthorizeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AuthorizeSecurityGroupEgressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AuthorizeSecurityGroupEgressCommand\");\nvar de_AuthorizeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AuthorizeSecurityGroupIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AuthorizeSecurityGroupIngressCommand\");\nvar de_BundleInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_BundleInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BundleInstanceCommand\");\nvar de_CancelBundleTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelBundleTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelBundleTaskCommand\");\nvar de_CancelCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelCapacityReservationCommand\");\nvar de_CancelCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelCapacityReservationFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelCapacityReservationFleetsCommand\");\nvar de_CancelConversionTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CancelConversionTaskCommand\");\nvar de_CancelDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelDeclarativePoliciesReportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelDeclarativePoliciesReportCommand\");\nvar de_CancelExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CancelExportTaskCommand\");\nvar de_CancelImageLaunchPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelImageLaunchPermissionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelImageLaunchPermissionCommand\");\nvar de_CancelImportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelImportTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelImportTaskCommand\");\nvar de_CancelReservedInstancesListingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelReservedInstancesListingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelReservedInstancesListingCommand\");\nvar de_CancelSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelSpotFleetRequestsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelSpotFleetRequestsCommand\");\nvar de_CancelSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CancelSpotInstanceRequestsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelSpotInstanceRequestsCommand\");\nvar de_ConfirmProductInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ConfirmProductInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ConfirmProductInstanceCommand\");\nvar de_CopyFpgaImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CopyFpgaImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CopyFpgaImageCommand\");\nvar de_CopyImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CopyImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CopyImageCommand\");\nvar de_CopySnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CopySnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CopySnapshotCommand\");\nvar de_CreateCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityReservationCommand\");\nvar de_CreateCapacityReservationBySplittingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCapacityReservationBySplittingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityReservationBySplittingCommand\");\nvar de_CreateCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCapacityReservationFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityReservationFleetCommand\");\nvar de_CreateCarrierGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCarrierGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCarrierGatewayCommand\");\nvar de_CreateClientVpnEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateClientVpnEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateClientVpnEndpointCommand\");\nvar de_CreateClientVpnRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateClientVpnRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateClientVpnRouteCommand\");\nvar de_CreateCoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCoipCidrCommand\");\nvar de_CreateCoipPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCoipPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCoipPoolCommand\");\nvar de_CreateCustomerGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateCustomerGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCustomerGatewayCommand\");\nvar de_CreateDefaultSubnetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateDefaultSubnetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDefaultSubnetCommand\");\nvar de_CreateDefaultVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateDefaultVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDefaultVpcCommand\");\nvar de_CreateDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateDhcpOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDhcpOptionsCommand\");\nvar de_CreateEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateEgressOnlyInternetGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateEgressOnlyInternetGatewayCommand\");\nvar de_CreateFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFleetCommand\");\nvar de_CreateFlowLogsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateFlowLogsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFlowLogsCommand\");\nvar de_CreateFpgaImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateFpgaImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateFpgaImageCommand\");\nvar de_CreateImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateImageCommand\");\nvar de_CreateInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceConnectEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceConnectEndpointCommand\");\nvar de_CreateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceEventWindowCommand\");\nvar de_CreateInstanceExportTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceExportTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceExportTaskCommand\");\nvar de_CreateInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInternetGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInternetGatewayCommand\");\nvar de_CreateIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamCommand\");\nvar de_CreateIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamExternalResourceVerificationTokenResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamExternalResourceVerificationTokenCommand\");\nvar de_CreateIpamPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamPoolCommand\");\nvar de_CreateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamResourceDiscoveryCommand\");\nvar de_CreateIpamScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateIpamScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateIpamScopeCommand\");\nvar de_CreateKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_KeyPair(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateKeyPairCommand\");\nvar de_CreateLaunchTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLaunchTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLaunchTemplateCommand\");\nvar de_CreateLaunchTemplateVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLaunchTemplateVersionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLaunchTemplateVersionCommand\");\nvar de_CreateLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteCommand\");\nvar de_CreateLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteTableCommand\");\nvar de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar de_CreateLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayRouteTableVpcAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayRouteTableVpcAssociationCommand\");\nvar de_CreateLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayVirtualInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayVirtualInterfaceCommand\");\nvar de_CreateLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLocalGatewayVirtualInterfaceGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLocalGatewayVirtualInterfaceGroupCommand\");\nvar de_CreateManagedPrefixListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateManagedPrefixListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateManagedPrefixListCommand\");\nvar de_CreateNatGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNatGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNatGatewayCommand\");\nvar de_CreateNetworkAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkAclResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkAclCommand\");\nvar de_CreateNetworkAclEntryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateNetworkAclEntryCommand\");\nvar de_CreateNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInsightsAccessScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInsightsAccessScopeCommand\");\nvar de_CreateNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInsightsPathResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInsightsPathCommand\");\nvar de_CreateNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInterfaceCommand\");\nvar de_CreateNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateNetworkInterfacePermissionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateNetworkInterfacePermissionCommand\");\nvar de_CreatePlacementGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePlacementGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePlacementGroupCommand\");\nvar de_CreatePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePublicIpv4PoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePublicIpv4PoolCommand\");\nvar de_CreateReplaceRootVolumeTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateReplaceRootVolumeTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateReplaceRootVolumeTaskCommand\");\nvar de_CreateReservedInstancesListingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateReservedInstancesListingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateReservedInstancesListingCommand\");\nvar de_CreateRestoreImageTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRestoreImageTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRestoreImageTaskCommand\");\nvar de_CreateRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteCommand\");\nvar de_CreateRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteServerCommand\");\nvar de_CreateRouteServerEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteServerEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteServerEndpointCommand\");\nvar de_CreateRouteServerPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteServerPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteServerPeerCommand\");\nvar de_CreateRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRouteTableCommand\");\nvar de_CreateSecurityGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSecurityGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSecurityGroupCommand\");\nvar de_CreateSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_Snapshot(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSnapshotCommand\");\nvar de_CreateSnapshotsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSnapshotsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSnapshotsCommand\");\nvar de_CreateSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSpotDatafeedSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSpotDatafeedSubscriptionCommand\");\nvar de_CreateStoreImageTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateStoreImageTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateStoreImageTaskCommand\");\nvar de_CreateSubnetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSubnetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSubnetCommand\");\nvar de_CreateSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSubnetCidrReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSubnetCidrReservationCommand\");\nvar de_CreateTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateTagsCommand\");\nvar de_CreateTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorFilterResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorFilterCommand\");\nvar de_CreateTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorFilterRuleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorFilterRuleCommand\");\nvar de_CreateTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorSessionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorSessionCommand\");\nvar de_CreateTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrafficMirrorTargetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrafficMirrorTargetCommand\");\nvar de_CreateTransitGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayCommand\");\nvar de_CreateTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayConnectResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayConnectCommand\");\nvar de_CreateTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayConnectPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayConnectPeerCommand\");\nvar de_CreateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayMulticastDomainCommand\");\nvar de_CreateTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayPeeringAttachmentCommand\");\nvar de_CreateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayPolicyTableCommand\");\nvar de_CreateTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayPrefixListReferenceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayPrefixListReferenceCommand\");\nvar de_CreateTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayRouteCommand\");\nvar de_CreateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayRouteTableCommand\");\nvar de_CreateTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayRouteTableAnnouncementResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayRouteTableAnnouncementCommand\");\nvar de_CreateTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTransitGatewayVpcAttachmentCommand\");\nvar de_CreateVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessEndpointCommand\");\nvar de_CreateVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessGroupCommand\");\nvar de_CreateVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessInstanceCommand\");\nvar de_CreateVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVerifiedAccessTrustProviderCommand\");\nvar de_CreateVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_Volume(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVolumeCommand\");\nvar de_CreateVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcCommand\");\nvar de_CreateVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcBlockPublicAccessExclusionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcBlockPublicAccessExclusionCommand\");\nvar de_CreateVpcEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcEndpointCommand\");\nvar de_CreateVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcEndpointConnectionNotificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcEndpointConnectionNotificationCommand\");\nvar de_CreateVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcEndpointServiceConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcEndpointServiceConfigurationCommand\");\nvar de_CreateVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpcPeeringConnectionCommand\");\nvar de_CreateVpnConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpnConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpnConnectionCommand\");\nvar de_CreateVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateVpnConnectionRouteCommand\");\nvar de_CreateVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVpnGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVpnGatewayCommand\");\nvar de_DeleteCarrierGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteCarrierGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCarrierGatewayCommand\");\nvar de_DeleteClientVpnEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteClientVpnEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteClientVpnEndpointCommand\");\nvar de_DeleteClientVpnRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteClientVpnRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteClientVpnRouteCommand\");\nvar de_DeleteCoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteCoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCoipCidrCommand\");\nvar de_DeleteCoipPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteCoipPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCoipPoolCommand\");\nvar de_DeleteCustomerGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteCustomerGatewayCommand\");\nvar de_DeleteDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteDhcpOptionsCommand\");\nvar de_DeleteEgressOnlyInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteEgressOnlyInternetGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteEgressOnlyInternetGatewayCommand\");\nvar de_DeleteFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFleetsCommand\");\nvar de_DeleteFlowLogsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteFlowLogsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFlowLogsCommand\");\nvar de_DeleteFpgaImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteFpgaImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteFpgaImageCommand\");\nvar de_DeleteInstanceConnectEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteInstanceConnectEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteInstanceConnectEndpointCommand\");\nvar de_DeleteInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteInstanceEventWindowCommand\");\nvar de_DeleteInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteInternetGatewayCommand\");\nvar de_DeleteIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamCommand\");\nvar de_DeleteIpamExternalResourceVerificationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamExternalResourceVerificationTokenResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamExternalResourceVerificationTokenCommand\");\nvar de_DeleteIpamPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamPoolCommand\");\nvar de_DeleteIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamResourceDiscoveryCommand\");\nvar de_DeleteIpamScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteIpamScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteIpamScopeCommand\");\nvar de_DeleteKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteKeyPairResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteKeyPairCommand\");\nvar de_DeleteLaunchTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLaunchTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLaunchTemplateCommand\");\nvar de_DeleteLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLaunchTemplateVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLaunchTemplateVersionsCommand\");\nvar de_DeleteLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteCommand\");\nvar de_DeleteLocalGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteTableCommand\");\nvar de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\nvar de_DeleteLocalGatewayRouteTableVpcAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayRouteTableVpcAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayRouteTableVpcAssociationCommand\");\nvar de_DeleteLocalGatewayVirtualInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayVirtualInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayVirtualInterfaceCommand\");\nvar de_DeleteLocalGatewayVirtualInterfaceGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLocalGatewayVirtualInterfaceGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLocalGatewayVirtualInterfaceGroupCommand\");\nvar de_DeleteManagedPrefixListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteManagedPrefixListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteManagedPrefixListCommand\");\nvar de_DeleteNatGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNatGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNatGatewayCommand\");\nvar de_DeleteNetworkAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteNetworkAclCommand\");\nvar de_DeleteNetworkAclEntryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteNetworkAclEntryCommand\");\nvar de_DeleteNetworkInsightsAccessScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsAccessScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsAccessScopeCommand\");\nvar de_DeleteNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsAccessScopeAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsAccessScopeAnalysisCommand\");\nvar de_DeleteNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsAnalysisCommand\");\nvar de_DeleteNetworkInsightsPathCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInsightsPathResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInsightsPathCommand\");\nvar de_DeleteNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteNetworkInterfaceCommand\");\nvar de_DeleteNetworkInterfacePermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteNetworkInterfacePermissionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteNetworkInterfacePermissionCommand\");\nvar de_DeletePlacementGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeletePlacementGroupCommand\");\nvar de_DeletePublicIpv4PoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeletePublicIpv4PoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeletePublicIpv4PoolCommand\");\nvar de_DeleteQueuedReservedInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteQueuedReservedInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteQueuedReservedInstancesCommand\");\nvar de_DeleteRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRouteCommand\");\nvar de_DeleteRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRouteServerCommand\");\nvar de_DeleteRouteServerEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRouteServerEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRouteServerEndpointCommand\");\nvar de_DeleteRouteServerPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRouteServerPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRouteServerPeerCommand\");\nvar de_DeleteRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRouteTableCommand\");\nvar de_DeleteSecurityGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSecurityGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSecurityGroupCommand\");\nvar de_DeleteSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSnapshotCommand\");\nvar de_DeleteSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSpotDatafeedSubscriptionCommand\");\nvar de_DeleteSubnetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSubnetCommand\");\nvar de_DeleteSubnetCidrReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSubnetCidrReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSubnetCidrReservationCommand\");\nvar de_DeleteTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteTagsCommand\");\nvar de_DeleteTrafficMirrorFilterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorFilterResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorFilterCommand\");\nvar de_DeleteTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorFilterRuleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorFilterRuleCommand\");\nvar de_DeleteTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorSessionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorSessionCommand\");\nvar de_DeleteTrafficMirrorTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrafficMirrorTargetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrafficMirrorTargetCommand\");\nvar de_DeleteTransitGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayCommand\");\nvar de_DeleteTransitGatewayConnectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayConnectResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayConnectCommand\");\nvar de_DeleteTransitGatewayConnectPeerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayConnectPeerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayConnectPeerCommand\");\nvar de_DeleteTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayMulticastDomainCommand\");\nvar de_DeleteTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayPeeringAttachmentCommand\");\nvar de_DeleteTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayPolicyTableCommand\");\nvar de_DeleteTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayPrefixListReferenceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayPrefixListReferenceCommand\");\nvar de_DeleteTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayRouteCommand\");\nvar de_DeleteTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayRouteTableCommand\");\nvar de_DeleteTransitGatewayRouteTableAnnouncementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayRouteTableAnnouncementResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayRouteTableAnnouncementCommand\");\nvar de_DeleteTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTransitGatewayVpcAttachmentCommand\");\nvar de_DeleteVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessEndpointCommand\");\nvar de_DeleteVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessGroupCommand\");\nvar de_DeleteVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessInstanceCommand\");\nvar de_DeleteVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVerifiedAccessTrustProviderCommand\");\nvar de_DeleteVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVolumeCommand\");\nvar de_DeleteVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpcCommand\");\nvar de_DeleteVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcBlockPublicAccessExclusionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcBlockPublicAccessExclusionCommand\");\nvar de_DeleteVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcEndpointConnectionNotificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcEndpointConnectionNotificationsCommand\");\nvar de_DeleteVpcEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcEndpointsCommand\");\nvar de_DeleteVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcEndpointServiceConfigurationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcEndpointServiceConfigurationsCommand\");\nvar de_DeleteVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteVpcPeeringConnectionCommand\");\nvar de_DeleteVpnConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpnConnectionCommand\");\nvar de_DeleteVpnConnectionRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpnConnectionRouteCommand\");\nvar de_DeleteVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVpnGatewayCommand\");\nvar de_DeprovisionByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionByoipCidrCommand\");\nvar de_DeprovisionIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionIpamByoasnCommand\");\nvar de_DeprovisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionIpamPoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionIpamPoolCidrCommand\");\nvar de_DeprovisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeprovisionPublicIpv4PoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeprovisionPublicIpv4PoolCidrCommand\");\nvar de_DeregisterImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterImageCommand\");\nvar de_DeregisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterInstanceEventNotificationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterInstanceEventNotificationAttributesCommand\");\nvar de_DeregisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTransitGatewayMulticastGroupMembersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTransitGatewayMulticastGroupMembersCommand\");\nvar de_DeregisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTransitGatewayMulticastGroupSourcesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTransitGatewayMulticastGroupSourcesCommand\");\nvar de_DescribeAccountAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAccountAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAccountAttributesCommand\");\nvar de_DescribeAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAddressesCommand\");\nvar de_DescribeAddressesAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAddressesAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAddressesAttributeCommand\");\nvar de_DescribeAddressTransfersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAddressTransfersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAddressTransfersCommand\");\nvar de_DescribeAggregateIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAggregateIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAggregateIdFormatCommand\");\nvar de_DescribeAvailabilityZonesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAvailabilityZonesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAvailabilityZonesCommand\");\nvar de_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAwsNetworkPerformanceMetricSubscriptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\");\nvar de_DescribeBundleTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeBundleTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeBundleTasksCommand\");\nvar de_DescribeByoipCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeByoipCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeByoipCidrsCommand\");\nvar de_DescribeCapacityBlockExtensionHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityBlockExtensionHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityBlockExtensionHistoryCommand\");\nvar de_DescribeCapacityBlockExtensionOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityBlockExtensionOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityBlockExtensionOfferingsCommand\");\nvar de_DescribeCapacityBlockOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityBlockOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityBlockOfferingsCommand\");\nvar de_DescribeCapacityReservationBillingRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationBillingRequestsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationBillingRequestsCommand\");\nvar de_DescribeCapacityReservationFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationFleetsCommand\");\nvar de_DescribeCapacityReservationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationsCommand\");\nvar de_DescribeCarrierGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCarrierGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCarrierGatewaysCommand\");\nvar de_DescribeClassicLinkInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClassicLinkInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClassicLinkInstancesCommand\");\nvar de_DescribeClientVpnAuthorizationRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnAuthorizationRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnAuthorizationRulesCommand\");\nvar de_DescribeClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnConnectionsCommand\");\nvar de_DescribeClientVpnEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnEndpointsCommand\");\nvar de_DescribeClientVpnRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnRoutesCommand\");\nvar de_DescribeClientVpnTargetNetworksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeClientVpnTargetNetworksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClientVpnTargetNetworksCommand\");\nvar de_DescribeCoipPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCoipPoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCoipPoolsCommand\");\nvar de_DescribeConversionTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeConversionTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeConversionTasksCommand\");\nvar de_DescribeCustomerGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCustomerGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCustomerGatewaysCommand\");\nvar de_DescribeDeclarativePoliciesReportsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeDeclarativePoliciesReportsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDeclarativePoliciesReportsCommand\");\nvar de_DescribeDhcpOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeDhcpOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDhcpOptionsCommand\");\nvar de_DescribeEgressOnlyInternetGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeEgressOnlyInternetGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeEgressOnlyInternetGatewaysCommand\");\nvar de_DescribeElasticGpusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeElasticGpusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeElasticGpusCommand\");\nvar de_DescribeExportImageTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeExportImageTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExportImageTasksCommand\");\nvar de_DescribeExportTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeExportTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExportTasksCommand\");\nvar de_DescribeFastLaunchImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFastLaunchImagesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFastLaunchImagesCommand\");\nvar de_DescribeFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFastSnapshotRestoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFastSnapshotRestoresCommand\");\nvar de_DescribeFleetHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFleetHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFleetHistoryCommand\");\nvar de_DescribeFleetInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFleetInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFleetInstancesCommand\");\nvar de_DescribeFleetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFleetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFleetsCommand\");\nvar de_DescribeFlowLogsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFlowLogsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFlowLogsCommand\");\nvar de_DescribeFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFpgaImageAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFpgaImageAttributeCommand\");\nvar de_DescribeFpgaImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeFpgaImagesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeFpgaImagesCommand\");\nvar de_DescribeHostReservationOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeHostReservationOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeHostReservationOfferingsCommand\");\nvar de_DescribeHostReservationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeHostReservationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeHostReservationsCommand\");\nvar de_DescribeHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeHostsCommand\");\nvar de_DescribeIamInstanceProfileAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIamInstanceProfileAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIamInstanceProfileAssociationsCommand\");\nvar de_DescribeIdentityIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIdentityIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdentityIdFormatCommand\");\nvar de_DescribeIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIdFormatCommand\");\nvar de_DescribeImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImageAttribute(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImageAttributeCommand\");\nvar de_DescribeImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImagesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImagesCommand\");\nvar de_DescribeImportImageTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImportImageTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImportImageTasksCommand\");\nvar de_DescribeImportSnapshotTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImportSnapshotTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImportSnapshotTasksCommand\");\nvar de_DescribeInstanceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_InstanceAttribute(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceAttributeCommand\");\nvar de_DescribeInstanceConnectEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceConnectEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceConnectEndpointsCommand\");\nvar de_DescribeInstanceCreditSpecificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceCreditSpecificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceCreditSpecificationsCommand\");\nvar de_DescribeInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceEventNotificationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceEventNotificationAttributesCommand\");\nvar de_DescribeInstanceEventWindowsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceEventWindowsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceEventWindowsCommand\");\nvar de_DescribeInstanceImageMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceImageMetadataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceImageMetadataCommand\");\nvar de_DescribeInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancesCommand\");\nvar de_DescribeInstanceStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceStatusCommand\");\nvar de_DescribeInstanceTopologyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceTopologyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceTopologyCommand\");\nvar de_DescribeInstanceTypeOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceTypeOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceTypeOfferingsCommand\");\nvar de_DescribeInstanceTypesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceTypesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceTypesCommand\");\nvar de_DescribeInternetGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInternetGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInternetGatewaysCommand\");\nvar de_DescribeIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamByoasnCommand\");\nvar de_DescribeIpamExternalResourceVerificationTokensCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamExternalResourceVerificationTokensResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamExternalResourceVerificationTokensCommand\");\nvar de_DescribeIpamPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamPoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamPoolsCommand\");\nvar de_DescribeIpamResourceDiscoveriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamResourceDiscoveriesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamResourceDiscoveriesCommand\");\nvar de_DescribeIpamResourceDiscoveryAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamResourceDiscoveryAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamResourceDiscoveryAssociationsCommand\");\nvar de_DescribeIpamsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamsCommand\");\nvar de_DescribeIpamScopesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpamScopesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpamScopesCommand\");\nvar de_DescribeIpv6PoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeIpv6PoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeIpv6PoolsCommand\");\nvar de_DescribeKeyPairsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeKeyPairsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeKeyPairsCommand\");\nvar de_DescribeLaunchTemplatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLaunchTemplatesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLaunchTemplatesCommand\");\nvar de_DescribeLaunchTemplateVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLaunchTemplateVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLaunchTemplateVersionsCommand\");\nvar de_DescribeLocalGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayRouteTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayRouteTablesCommand\");\nvar de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\");\nvar de_DescribeLocalGatewayRouteTableVpcAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayRouteTableVpcAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayRouteTableVpcAssociationsCommand\");\nvar de_DescribeLocalGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewaysCommand\");\nvar de_DescribeLocalGatewayVirtualInterfaceGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayVirtualInterfaceGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayVirtualInterfaceGroupsCommand\");\nvar de_DescribeLocalGatewayVirtualInterfacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLocalGatewayVirtualInterfacesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLocalGatewayVirtualInterfacesCommand\");\nvar de_DescribeLockedSnapshotsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLockedSnapshotsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLockedSnapshotsCommand\");\nvar de_DescribeMacHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMacHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMacHostsCommand\");\nvar de_DescribeManagedPrefixListsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeManagedPrefixListsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeManagedPrefixListsCommand\");\nvar de_DescribeMovingAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMovingAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMovingAddressesCommand\");\nvar de_DescribeNatGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNatGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNatGatewaysCommand\");\nvar de_DescribeNetworkAclsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkAclsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkAclsCommand\");\nvar de_DescribeNetworkInsightsAccessScopeAnalysesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsAccessScopeAnalysesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsAccessScopeAnalysesCommand\");\nvar de_DescribeNetworkInsightsAccessScopesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsAccessScopesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsAccessScopesCommand\");\nvar de_DescribeNetworkInsightsAnalysesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsAnalysesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsAnalysesCommand\");\nvar de_DescribeNetworkInsightsPathsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInsightsPathsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInsightsPathsCommand\");\nvar de_DescribeNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInterfaceAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInterfaceAttributeCommand\");\nvar de_DescribeNetworkInterfacePermissionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInterfacePermissionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInterfacePermissionsCommand\");\nvar de_DescribeNetworkInterfacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeNetworkInterfacesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeNetworkInterfacesCommand\");\nvar de_DescribeOutpostLagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeOutpostLagsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeOutpostLagsCommand\");\nvar de_DescribePlacementGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePlacementGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePlacementGroupsCommand\");\nvar de_DescribePrefixListsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePrefixListsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePrefixListsCommand\");\nvar de_DescribePrincipalIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePrincipalIdFormatResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePrincipalIdFormatCommand\");\nvar de_DescribePublicIpv4PoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribePublicIpv4PoolsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePublicIpv4PoolsCommand\");\nvar de_DescribeRegionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRegionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRegionsCommand\");\nvar de_DescribeReplaceRootVolumeTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReplaceRootVolumeTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReplaceRootVolumeTasksCommand\");\nvar de_DescribeReservedInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesCommand\");\nvar de_DescribeReservedInstancesListingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesListingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesListingsCommand\");\nvar de_DescribeReservedInstancesModificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesModificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesModificationsCommand\");\nvar de_DescribeReservedInstancesOfferingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeReservedInstancesOfferingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeReservedInstancesOfferingsCommand\");\nvar de_DescribeRouteServerEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteServerEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteServerEndpointsCommand\");\nvar de_DescribeRouteServerPeersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteServerPeersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteServerPeersCommand\");\nvar de_DescribeRouteServersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteServersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteServersCommand\");\nvar de_DescribeRouteTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRouteTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRouteTablesCommand\");\nvar de_DescribeScheduledInstanceAvailabilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeScheduledInstanceAvailabilityResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeScheduledInstanceAvailabilityCommand\");\nvar de_DescribeScheduledInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeScheduledInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeScheduledInstancesCommand\");\nvar de_DescribeSecurityGroupReferencesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupReferencesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupReferencesCommand\");\nvar de_DescribeSecurityGroupRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupRulesCommand\");\nvar de_DescribeSecurityGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupsCommand\");\nvar de_DescribeSecurityGroupVpcAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecurityGroupVpcAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecurityGroupVpcAssociationsCommand\");\nvar de_DescribeServiceLinkVirtualInterfacesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServiceLinkVirtualInterfacesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServiceLinkVirtualInterfacesCommand\");\nvar de_DescribeSnapshotAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSnapshotAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSnapshotAttributeCommand\");\nvar de_DescribeSnapshotsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSnapshotsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSnapshotsCommand\");\nvar de_DescribeSnapshotTierStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSnapshotTierStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSnapshotTierStatusCommand\");\nvar de_DescribeSpotDatafeedSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotDatafeedSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotDatafeedSubscriptionCommand\");\nvar de_DescribeSpotFleetInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotFleetInstancesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotFleetInstancesCommand\");\nvar de_DescribeSpotFleetRequestHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotFleetRequestHistoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotFleetRequestHistoryCommand\");\nvar de_DescribeSpotFleetRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotFleetRequestsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotFleetRequestsCommand\");\nvar de_DescribeSpotInstanceRequestsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotInstanceRequestsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotInstanceRequestsCommand\");\nvar de_DescribeSpotPriceHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSpotPriceHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSpotPriceHistoryCommand\");\nvar de_DescribeStaleSecurityGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStaleSecurityGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStaleSecurityGroupsCommand\");\nvar de_DescribeStoreImageTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStoreImageTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStoreImageTasksCommand\");\nvar de_DescribeSubnetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSubnetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSubnetsCommand\");\nvar de_DescribeTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTagsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTagsCommand\");\nvar de_DescribeTrafficMirrorFilterRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorFilterRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorFilterRulesCommand\");\nvar de_DescribeTrafficMirrorFiltersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorFiltersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorFiltersCommand\");\nvar de_DescribeTrafficMirrorSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorSessionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorSessionsCommand\");\nvar de_DescribeTrafficMirrorTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrafficMirrorTargetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrafficMirrorTargetsCommand\");\nvar de_DescribeTransitGatewayAttachmentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayAttachmentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayAttachmentsCommand\");\nvar de_DescribeTransitGatewayConnectPeersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayConnectPeersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayConnectPeersCommand\");\nvar de_DescribeTransitGatewayConnectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayConnectsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayConnectsCommand\");\nvar de_DescribeTransitGatewayMulticastDomainsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayMulticastDomainsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayMulticastDomainsCommand\");\nvar de_DescribeTransitGatewayPeeringAttachmentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayPeeringAttachmentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayPeeringAttachmentsCommand\");\nvar de_DescribeTransitGatewayPolicyTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayPolicyTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayPolicyTablesCommand\");\nvar de_DescribeTransitGatewayRouteTableAnnouncementsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayRouteTableAnnouncementsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayRouteTableAnnouncementsCommand\");\nvar de_DescribeTransitGatewayRouteTablesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayRouteTablesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayRouteTablesCommand\");\nvar de_DescribeTransitGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewaysCommand\");\nvar de_DescribeTransitGatewayVpcAttachmentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTransitGatewayVpcAttachmentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTransitGatewayVpcAttachmentsCommand\");\nvar de_DescribeTrunkInterfaceAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrunkInterfaceAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrunkInterfaceAssociationsCommand\");\nvar de_DescribeVerifiedAccessEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessEndpointsCommand\");\nvar de_DescribeVerifiedAccessGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessGroupsCommand\");\nvar de_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessInstanceLoggingConfigurationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\");\nvar de_DescribeVerifiedAccessInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessInstancesCommand\");\nvar de_DescribeVerifiedAccessTrustProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVerifiedAccessTrustProvidersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVerifiedAccessTrustProvidersCommand\");\nvar de_DescribeVolumeAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumeAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumeAttributeCommand\");\nvar de_DescribeVolumesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumesCommand\");\nvar de_DescribeVolumesModificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumesModificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumesModificationsCommand\");\nvar de_DescribeVolumeStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVolumeStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVolumeStatusCommand\");\nvar de_DescribeVpcAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcAttributeCommand\");\nvar de_DescribeVpcBlockPublicAccessExclusionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcBlockPublicAccessExclusionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcBlockPublicAccessExclusionsCommand\");\nvar de_DescribeVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcBlockPublicAccessOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcBlockPublicAccessOptionsCommand\");\nvar de_DescribeVpcClassicLinkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcClassicLinkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcClassicLinkCommand\");\nvar de_DescribeVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcClassicLinkDnsSupportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcClassicLinkDnsSupportCommand\");\nvar de_DescribeVpcEndpointAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointAssociationsCommand\");\nvar de_DescribeVpcEndpointConnectionNotificationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointConnectionNotificationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointConnectionNotificationsCommand\");\nvar de_DescribeVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointConnectionsCommand\");\nvar de_DescribeVpcEndpointsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointsCommand\");\nvar de_DescribeVpcEndpointServiceConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointServiceConfigurationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointServiceConfigurationsCommand\");\nvar de_DescribeVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointServicePermissionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointServicePermissionsCommand\");\nvar de_DescribeVpcEndpointServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcEndpointServicesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcEndpointServicesCommand\");\nvar de_DescribeVpcPeeringConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcPeeringConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcPeeringConnectionsCommand\");\nvar de_DescribeVpcsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpcsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpcsCommand\");\nvar de_DescribeVpnConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpnConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpnConnectionsCommand\");\nvar de_DescribeVpnGatewaysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeVpnGatewaysResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeVpnGatewaysCommand\");\nvar de_DetachClassicLinkVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DetachClassicLinkVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DetachClassicLinkVpcCommand\");\nvar de_DetachInternetGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachInternetGatewayCommand\");\nvar de_DetachNetworkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachNetworkInterfaceCommand\");\nvar de_DetachVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DetachVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DetachVerifiedAccessTrustProviderCommand\");\nvar de_DetachVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_VolumeAttachment(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DetachVolumeCommand\");\nvar de_DetachVpnGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachVpnGatewayCommand\");\nvar de_DisableAddressTransferCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableAddressTransferResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableAddressTransferCommand\");\nvar de_DisableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableAllowedImagesSettingsCommand\");\nvar de_DisableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableAwsNetworkPerformanceMetricSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar de_DisableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableEbsEncryptionByDefaultResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableEbsEncryptionByDefaultCommand\");\nvar de_DisableFastLaunchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableFastLaunchResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableFastLaunchCommand\");\nvar de_DisableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableFastSnapshotRestoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableFastSnapshotRestoresCommand\");\nvar de_DisableImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageCommand\");\nvar de_DisableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageBlockPublicAccessCommand\");\nvar de_DisableImageDeprecationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageDeprecationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageDeprecationCommand\");\nvar de_DisableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableImageDeregistrationProtectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableImageDeregistrationProtectionCommand\");\nvar de_DisableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableIpamOrganizationAdminAccountResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableIpamOrganizationAdminAccountCommand\");\nvar de_DisableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableRouteServerPropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableRouteServerPropagationCommand\");\nvar de_DisableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableSerialConsoleAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableSerialConsoleAccessCommand\");\nvar de_DisableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableSnapshotBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableSnapshotBlockPublicAccessCommand\");\nvar de_DisableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableTransitGatewayRouteTablePropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableTransitGatewayRouteTablePropagationCommand\");\nvar de_DisableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisableVgwRoutePropagationCommand\");\nvar de_DisableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableVpcClassicLinkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableVpcClassicLinkCommand\");\nvar de_DisableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableVpcClassicLinkDnsSupportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableVpcClassicLinkDnsSupportCommand\");\nvar de_DisassociateAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisassociateAddressCommand\");\nvar de_DisassociateCapacityReservationBillingOwnerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateCapacityReservationBillingOwnerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateCapacityReservationBillingOwnerCommand\");\nvar de_DisassociateClientVpnTargetNetworkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateClientVpnTargetNetworkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateClientVpnTargetNetworkCommand\");\nvar de_DisassociateEnclaveCertificateIamRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateEnclaveCertificateIamRoleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateEnclaveCertificateIamRoleCommand\");\nvar de_DisassociateIamInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateIamInstanceProfileResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateIamInstanceProfileCommand\");\nvar de_DisassociateInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateInstanceEventWindowCommand\");\nvar de_DisassociateIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateIpamByoasnCommand\");\nvar de_DisassociateIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateIpamResourceDiscoveryCommand\");\nvar de_DisassociateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateNatGatewayAddressCommand\");\nvar de_DisassociateRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateRouteServerCommand\");\nvar de_DisassociateRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisassociateRouteTableCommand\");\nvar de_DisassociateSecurityGroupVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateSecurityGroupVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateSecurityGroupVpcCommand\");\nvar de_DisassociateSubnetCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateSubnetCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateSubnetCidrBlockCommand\");\nvar de_DisassociateTransitGatewayMulticastDomainCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTransitGatewayMulticastDomainResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTransitGatewayMulticastDomainCommand\");\nvar de_DisassociateTransitGatewayPolicyTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTransitGatewayPolicyTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTransitGatewayPolicyTableCommand\");\nvar de_DisassociateTransitGatewayRouteTableCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTransitGatewayRouteTableResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTransitGatewayRouteTableCommand\");\nvar de_DisassociateTrunkInterfaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateTrunkInterfaceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateTrunkInterfaceCommand\");\nvar de_DisassociateVpcCidrBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisassociateVpcCidrBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateVpcCidrBlockCommand\");\nvar de_EnableAddressTransferCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableAddressTransferResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableAddressTransferCommand\");\nvar de_EnableAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableAllowedImagesSettingsCommand\");\nvar de_EnableAwsNetworkPerformanceMetricSubscriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableAwsNetworkPerformanceMetricSubscriptionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableAwsNetworkPerformanceMetricSubscriptionCommand\");\nvar de_EnableEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableEbsEncryptionByDefaultResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableEbsEncryptionByDefaultCommand\");\nvar de_EnableFastLaunchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableFastLaunchResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableFastLaunchCommand\");\nvar de_EnableFastSnapshotRestoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableFastSnapshotRestoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableFastSnapshotRestoresCommand\");\nvar de_EnableImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageCommand\");\nvar de_EnableImageBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageBlockPublicAccessCommand\");\nvar de_EnableImageDeprecationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageDeprecationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageDeprecationCommand\");\nvar de_EnableImageDeregistrationProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableImageDeregistrationProtectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableImageDeregistrationProtectionCommand\");\nvar de_EnableIpamOrganizationAdminAccountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableIpamOrganizationAdminAccountResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableIpamOrganizationAdminAccountCommand\");\nvar de_EnableReachabilityAnalyzerOrganizationSharingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableReachabilityAnalyzerOrganizationSharingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableReachabilityAnalyzerOrganizationSharingCommand\");\nvar de_EnableRouteServerPropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableRouteServerPropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableRouteServerPropagationCommand\");\nvar de_EnableSerialConsoleAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableSerialConsoleAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableSerialConsoleAccessCommand\");\nvar de_EnableSnapshotBlockPublicAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableSnapshotBlockPublicAccessResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableSnapshotBlockPublicAccessCommand\");\nvar de_EnableTransitGatewayRouteTablePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableTransitGatewayRouteTablePropagationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableTransitGatewayRouteTablePropagationCommand\");\nvar de_EnableVgwRoutePropagationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableVgwRoutePropagationCommand\");\nvar de_EnableVolumeIOCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableVolumeIOCommand\");\nvar de_EnableVpcClassicLinkCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableVpcClassicLinkResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableVpcClassicLinkCommand\");\nvar de_EnableVpcClassicLinkDnsSupportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableVpcClassicLinkDnsSupportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableVpcClassicLinkDnsSupportCommand\");\nvar de_ExportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportClientVpnClientCertificateRevocationListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportClientVpnClientCertificateRevocationListCommand\");\nvar de_ExportClientVpnClientConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportClientVpnClientConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportClientVpnClientConfigurationCommand\");\nvar de_ExportImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportImageCommand\");\nvar de_ExportTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportTransitGatewayRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportTransitGatewayRoutesCommand\");\nvar de_ExportVerifiedAccessInstanceClientConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ExportVerifiedAccessInstanceClientConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExportVerifiedAccessInstanceClientConfigurationCommand\");\nvar de_GetAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAllowedImagesSettingsCommand\");\nvar de_GetAssociatedEnclaveCertificateIamRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAssociatedEnclaveCertificateIamRolesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAssociatedEnclaveCertificateIamRolesCommand\");\nvar de_GetAssociatedIpv6PoolCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAssociatedIpv6PoolCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAssociatedIpv6PoolCidrsCommand\");\nvar de_GetAwsNetworkPerformanceDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAwsNetworkPerformanceDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAwsNetworkPerformanceDataCommand\");\nvar de_GetCapacityReservationUsageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCapacityReservationUsageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCapacityReservationUsageCommand\");\nvar de_GetCoipPoolUsageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCoipPoolUsageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCoipPoolUsageCommand\");\nvar de_GetConsoleOutputCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetConsoleOutputResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetConsoleOutputCommand\");\nvar de_GetConsoleScreenshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetConsoleScreenshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetConsoleScreenshotCommand\");\nvar de_GetDeclarativePoliciesReportSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetDeclarativePoliciesReportSummaryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeclarativePoliciesReportSummaryCommand\");\nvar de_GetDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetDefaultCreditSpecificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDefaultCreditSpecificationCommand\");\nvar de_GetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetEbsDefaultKmsKeyIdResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetEbsDefaultKmsKeyIdCommand\");\nvar de_GetEbsEncryptionByDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetEbsEncryptionByDefaultResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetEbsEncryptionByDefaultCommand\");\nvar de_GetFlowLogsIntegrationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetFlowLogsIntegrationTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetFlowLogsIntegrationTemplateCommand\");\nvar de_GetGroupsForCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetGroupsForCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetGroupsForCapacityReservationCommand\");\nvar de_GetHostReservationPurchasePreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetHostReservationPurchasePreviewResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetHostReservationPurchasePreviewCommand\");\nvar de_GetImageBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetImageBlockPublicAccessStateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetImageBlockPublicAccessStateCommand\");\nvar de_GetInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceMetadataDefaultsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceMetadataDefaultsCommand\");\nvar de_GetInstanceTpmEkPubCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceTpmEkPubResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceTpmEkPubCommand\");\nvar de_GetInstanceTypesFromInstanceRequirementsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceTypesFromInstanceRequirementsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceTypesFromInstanceRequirementsCommand\");\nvar de_GetInstanceUefiDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceUefiDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceUefiDataCommand\");\nvar de_GetIpamAddressHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamAddressHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamAddressHistoryCommand\");\nvar de_GetIpamDiscoveredAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamDiscoveredAccountsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamDiscoveredAccountsCommand\");\nvar de_GetIpamDiscoveredPublicAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamDiscoveredPublicAddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamDiscoveredPublicAddressesCommand\");\nvar de_GetIpamDiscoveredResourceCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamDiscoveredResourceCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamDiscoveredResourceCidrsCommand\");\nvar de_GetIpamPoolAllocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamPoolAllocationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamPoolAllocationsCommand\");\nvar de_GetIpamPoolCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamPoolCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamPoolCidrsCommand\");\nvar de_GetIpamResourceCidrsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetIpamResourceCidrsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetIpamResourceCidrsCommand\");\nvar de_GetLaunchTemplateDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetLaunchTemplateDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLaunchTemplateDataCommand\");\nvar de_GetManagedPrefixListAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetManagedPrefixListAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetManagedPrefixListAssociationsCommand\");\nvar de_GetManagedPrefixListEntriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetManagedPrefixListEntriesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetManagedPrefixListEntriesCommand\");\nvar de_GetNetworkInsightsAccessScopeAnalysisFindingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetNetworkInsightsAccessScopeAnalysisFindingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetNetworkInsightsAccessScopeAnalysisFindingsCommand\");\nvar de_GetNetworkInsightsAccessScopeContentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetNetworkInsightsAccessScopeContentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetNetworkInsightsAccessScopeContentCommand\");\nvar de_GetPasswordDataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetPasswordDataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPasswordDataCommand\");\nvar de_GetReservedInstancesExchangeQuoteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetReservedInstancesExchangeQuoteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetReservedInstancesExchangeQuoteCommand\");\nvar de_GetRouteServerAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRouteServerAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRouteServerAssociationsCommand\");\nvar de_GetRouteServerPropagationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRouteServerPropagationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRouteServerPropagationsCommand\");\nvar de_GetRouteServerRoutingDatabaseCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRouteServerRoutingDatabaseResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRouteServerRoutingDatabaseCommand\");\nvar de_GetSecurityGroupsForVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSecurityGroupsForVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSecurityGroupsForVpcCommand\");\nvar de_GetSerialConsoleAccessStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSerialConsoleAccessStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSerialConsoleAccessStatusCommand\");\nvar de_GetSnapshotBlockPublicAccessStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSnapshotBlockPublicAccessStateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSnapshotBlockPublicAccessStateCommand\");\nvar de_GetSpotPlacementScoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSpotPlacementScoresResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSpotPlacementScoresCommand\");\nvar de_GetSubnetCidrReservationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSubnetCidrReservationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSubnetCidrReservationsCommand\");\nvar de_GetTransitGatewayAttachmentPropagationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayAttachmentPropagationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayAttachmentPropagationsCommand\");\nvar de_GetTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayMulticastDomainAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayMulticastDomainAssociationsCommand\");\nvar de_GetTransitGatewayPolicyTableAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayPolicyTableAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayPolicyTableAssociationsCommand\");\nvar de_GetTransitGatewayPolicyTableEntriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayPolicyTableEntriesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayPolicyTableEntriesCommand\");\nvar de_GetTransitGatewayPrefixListReferencesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayPrefixListReferencesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayPrefixListReferencesCommand\");\nvar de_GetTransitGatewayRouteTableAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayRouteTableAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayRouteTableAssociationsCommand\");\nvar de_GetTransitGatewayRouteTablePropagationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTransitGatewayRouteTablePropagationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTransitGatewayRouteTablePropagationsCommand\");\nvar de_GetVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVerifiedAccessEndpointPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVerifiedAccessEndpointPolicyCommand\");\nvar de_GetVerifiedAccessEndpointTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVerifiedAccessEndpointTargetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVerifiedAccessEndpointTargetsCommand\");\nvar de_GetVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVerifiedAccessGroupPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVerifiedAccessGroupPolicyCommand\");\nvar de_GetVpnConnectionDeviceSampleConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVpnConnectionDeviceSampleConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVpnConnectionDeviceSampleConfigurationCommand\");\nvar de_GetVpnConnectionDeviceTypesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVpnConnectionDeviceTypesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVpnConnectionDeviceTypesCommand\");\nvar de_GetVpnTunnelReplacementStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetVpnTunnelReplacementStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetVpnTunnelReplacementStatusCommand\");\nvar de_ImportClientVpnClientCertificateRevocationListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportClientVpnClientCertificateRevocationListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportClientVpnClientCertificateRevocationListCommand\");\nvar de_ImportImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportImageCommand\");\nvar de_ImportInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportInstanceCommand\");\nvar de_ImportKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportKeyPairResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportKeyPairCommand\");\nvar de_ImportSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportSnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportSnapshotCommand\");\nvar de_ImportVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ImportVolumeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportVolumeCommand\");\nvar de_ListImagesInRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListImagesInRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListImagesInRecycleBinCommand\");\nvar de_ListSnapshotsInRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSnapshotsInRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSnapshotsInRecycleBinCommand\");\nvar de_LockSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_LockSnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_LockSnapshotCommand\");\nvar de_ModifyAddressAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyAddressAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyAddressAttributeCommand\");\nvar de_ModifyAvailabilityZoneGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyAvailabilityZoneGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyAvailabilityZoneGroupCommand\");\nvar de_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyCapacityReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyCapacityReservationCommand\");\nvar de_ModifyCapacityReservationFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyCapacityReservationFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyCapacityReservationFleetCommand\");\nvar de_ModifyClientVpnEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyClientVpnEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyClientVpnEndpointCommand\");\nvar de_ModifyDefaultCreditSpecificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyDefaultCreditSpecificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyDefaultCreditSpecificationCommand\");\nvar de_ModifyEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyEbsDefaultKmsKeyIdResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyEbsDefaultKmsKeyIdCommand\");\nvar de_ModifyFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyFleetResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyFleetCommand\");\nvar de_ModifyFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyFpgaImageAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyFpgaImageAttributeCommand\");\nvar de_ModifyHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyHostsCommand\");\nvar de_ModifyIdentityIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyIdentityIdFormatCommand\");\nvar de_ModifyIdFormatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyIdFormatCommand\");\nvar de_ModifyImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyImageAttributeCommand\");\nvar de_ModifyInstanceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyInstanceAttributeCommand\");\nvar de_ModifyInstanceCapacityReservationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceCapacityReservationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceCapacityReservationAttributesCommand\");\nvar de_ModifyInstanceCpuOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceCpuOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceCpuOptionsCommand\");\nvar de_ModifyInstanceCreditSpecificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceCreditSpecificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceCreditSpecificationCommand\");\nvar de_ModifyInstanceEventStartTimeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceEventStartTimeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceEventStartTimeCommand\");\nvar de_ModifyInstanceEventWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceEventWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceEventWindowCommand\");\nvar de_ModifyInstanceMaintenanceOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceMaintenanceOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceMaintenanceOptionsCommand\");\nvar de_ModifyInstanceMetadataDefaultsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceMetadataDefaultsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceMetadataDefaultsCommand\");\nvar de_ModifyInstanceMetadataOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceMetadataOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceMetadataOptionsCommand\");\nvar de_ModifyInstanceNetworkPerformanceOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstanceNetworkPerformanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstanceNetworkPerformanceOptionsCommand\");\nvar de_ModifyInstancePlacementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyInstancePlacementResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyInstancePlacementCommand\");\nvar de_ModifyIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamCommand\");\nvar de_ModifyIpamPoolCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamPoolResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamPoolCommand\");\nvar de_ModifyIpamResourceCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamResourceCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamResourceCidrCommand\");\nvar de_ModifyIpamResourceDiscoveryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamResourceDiscoveryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamResourceDiscoveryCommand\");\nvar de_ModifyIpamScopeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpamScopeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpamScopeCommand\");\nvar de_ModifyLaunchTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyLaunchTemplateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyLaunchTemplateCommand\");\nvar de_ModifyLocalGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyLocalGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyLocalGatewayRouteCommand\");\nvar de_ModifyManagedPrefixListCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyManagedPrefixListResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyManagedPrefixListCommand\");\nvar de_ModifyNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyNetworkInterfaceAttributeCommand\");\nvar de_ModifyPrivateDnsNameOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyPrivateDnsNameOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyPrivateDnsNameOptionsCommand\");\nvar de_ModifyReservedInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyReservedInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyReservedInstancesCommand\");\nvar de_ModifyRouteServerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyRouteServerResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyRouteServerCommand\");\nvar de_ModifySecurityGroupRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifySecurityGroupRulesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifySecurityGroupRulesCommand\");\nvar de_ModifySnapshotAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifySnapshotAttributeCommand\");\nvar de_ModifySnapshotTierCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifySnapshotTierResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifySnapshotTierCommand\");\nvar de_ModifySpotFleetRequestCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifySpotFleetRequestResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifySpotFleetRequestCommand\");\nvar de_ModifySubnetAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifySubnetAttributeCommand\");\nvar de_ModifyTrafficMirrorFilterNetworkServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrafficMirrorFilterNetworkServicesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrafficMirrorFilterNetworkServicesCommand\");\nvar de_ModifyTrafficMirrorFilterRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrafficMirrorFilterRuleResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrafficMirrorFilterRuleCommand\");\nvar de_ModifyTrafficMirrorSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrafficMirrorSessionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrafficMirrorSessionCommand\");\nvar de_ModifyTransitGatewayCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTransitGatewayResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTransitGatewayCommand\");\nvar de_ModifyTransitGatewayPrefixListReferenceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTransitGatewayPrefixListReferenceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTransitGatewayPrefixListReferenceCommand\");\nvar de_ModifyTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTransitGatewayVpcAttachmentCommand\");\nvar de_ModifyVerifiedAccessEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessEndpointCommand\");\nvar de_ModifyVerifiedAccessEndpointPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessEndpointPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessEndpointPolicyCommand\");\nvar de_ModifyVerifiedAccessGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessGroupCommand\");\nvar de_ModifyVerifiedAccessGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessGroupPolicyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessGroupPolicyCommand\");\nvar de_ModifyVerifiedAccessInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessInstanceResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessInstanceCommand\");\nvar de_ModifyVerifiedAccessInstanceLoggingConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessInstanceLoggingConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessInstanceLoggingConfigurationCommand\");\nvar de_ModifyVerifiedAccessTrustProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVerifiedAccessTrustProviderResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVerifiedAccessTrustProviderCommand\");\nvar de_ModifyVolumeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVolumeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVolumeCommand\");\nvar de_ModifyVolumeAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyVolumeAttributeCommand\");\nvar de_ModifyVpcAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ModifyVpcAttributeCommand\");\nvar de_ModifyVpcBlockPublicAccessExclusionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcBlockPublicAccessExclusionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcBlockPublicAccessExclusionCommand\");\nvar de_ModifyVpcBlockPublicAccessOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcBlockPublicAccessOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcBlockPublicAccessOptionsCommand\");\nvar de_ModifyVpcEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointCommand\");\nvar de_ModifyVpcEndpointConnectionNotificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointConnectionNotificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointConnectionNotificationCommand\");\nvar de_ModifyVpcEndpointServiceConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointServiceConfigurationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointServiceConfigurationCommand\");\nvar de_ModifyVpcEndpointServicePayerResponsibilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointServicePayerResponsibilityResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointServicePayerResponsibilityCommand\");\nvar de_ModifyVpcEndpointServicePermissionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcEndpointServicePermissionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcEndpointServicePermissionsCommand\");\nvar de_ModifyVpcPeeringConnectionOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcPeeringConnectionOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcPeeringConnectionOptionsCommand\");\nvar de_ModifyVpcTenancyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpcTenancyResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpcTenancyCommand\");\nvar de_ModifyVpnConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnConnectionCommand\");\nvar de_ModifyVpnConnectionOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnConnectionOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnConnectionOptionsCommand\");\nvar de_ModifyVpnTunnelCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnTunnelCertificateResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnTunnelCertificateCommand\");\nvar de_ModifyVpnTunnelOptionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyVpnTunnelOptionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyVpnTunnelOptionsCommand\");\nvar de_MonitorInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MonitorInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MonitorInstancesCommand\");\nvar de_MoveAddressToVpcCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MoveAddressToVpcResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MoveAddressToVpcCommand\");\nvar de_MoveByoipCidrToIpamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MoveByoipCidrToIpamResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MoveByoipCidrToIpamCommand\");\nvar de_MoveCapacityReservationInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_MoveCapacityReservationInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_MoveCapacityReservationInstancesCommand\");\nvar de_ProvisionByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionByoipCidrCommand\");\nvar de_ProvisionIpamByoasnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionIpamByoasnResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionIpamByoasnCommand\");\nvar de_ProvisionIpamPoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionIpamPoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionIpamPoolCidrCommand\");\nvar de_ProvisionPublicIpv4PoolCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ProvisionPublicIpv4PoolCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ProvisionPublicIpv4PoolCidrCommand\");\nvar de_PurchaseCapacityBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseCapacityBlockResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseCapacityBlockCommand\");\nvar de_PurchaseCapacityBlockExtensionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseCapacityBlockExtensionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseCapacityBlockExtensionCommand\");\nvar de_PurchaseHostReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseHostReservationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseHostReservationCommand\");\nvar de_PurchaseReservedInstancesOfferingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseReservedInstancesOfferingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseReservedInstancesOfferingCommand\");\nvar de_PurchaseScheduledInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_PurchaseScheduledInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PurchaseScheduledInstancesCommand\");\nvar de_RebootInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RebootInstancesCommand\");\nvar de_RegisterImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterImageResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterImageCommand\");\nvar de_RegisterInstanceEventNotificationAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterInstanceEventNotificationAttributesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterInstanceEventNotificationAttributesCommand\");\nvar de_RegisterTransitGatewayMulticastGroupMembersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTransitGatewayMulticastGroupMembersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTransitGatewayMulticastGroupMembersCommand\");\nvar de_RegisterTransitGatewayMulticastGroupSourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTransitGatewayMulticastGroupSourcesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTransitGatewayMulticastGroupSourcesCommand\");\nvar de_RejectCapacityReservationBillingOwnershipCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectCapacityReservationBillingOwnershipResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectCapacityReservationBillingOwnershipCommand\");\nvar de_RejectTransitGatewayMulticastDomainAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectTransitGatewayMulticastDomainAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectTransitGatewayMulticastDomainAssociationsCommand\");\nvar de_RejectTransitGatewayPeeringAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectTransitGatewayPeeringAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectTransitGatewayPeeringAttachmentCommand\");\nvar de_RejectTransitGatewayVpcAttachmentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectTransitGatewayVpcAttachmentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectTransitGatewayVpcAttachmentCommand\");\nvar de_RejectVpcEndpointConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectVpcEndpointConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectVpcEndpointConnectionsCommand\");\nvar de_RejectVpcPeeringConnectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RejectVpcPeeringConnectionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RejectVpcPeeringConnectionCommand\");\nvar de_ReleaseAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReleaseAddressCommand\");\nvar de_ReleaseHostsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReleaseHostsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReleaseHostsCommand\");\nvar de_ReleaseIpamPoolAllocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReleaseIpamPoolAllocationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReleaseIpamPoolAllocationCommand\");\nvar de_ReplaceIamInstanceProfileAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceIamInstanceProfileAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceIamInstanceProfileAssociationCommand\");\nvar de_ReplaceImageCriteriaInAllowedImagesSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceImageCriteriaInAllowedImagesSettingsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceImageCriteriaInAllowedImagesSettingsCommand\");\nvar de_ReplaceNetworkAclAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceNetworkAclAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceNetworkAclAssociationCommand\");\nvar de_ReplaceNetworkAclEntryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReplaceNetworkAclEntryCommand\");\nvar de_ReplaceRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReplaceRouteCommand\");\nvar de_ReplaceRouteTableAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceRouteTableAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceRouteTableAssociationCommand\");\nvar de_ReplaceTransitGatewayRouteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceTransitGatewayRouteResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceTransitGatewayRouteCommand\");\nvar de_ReplaceVpnTunnelCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ReplaceVpnTunnelResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplaceVpnTunnelCommand\");\nvar de_ReportInstanceStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ReportInstanceStatusCommand\");\nvar de_RequestSpotFleetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RequestSpotFleetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RequestSpotFleetCommand\");\nvar de_RequestSpotInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RequestSpotInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RequestSpotInstancesCommand\");\nvar de_ResetAddressAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetAddressAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetAddressAttributeCommand\");\nvar de_ResetEbsDefaultKmsKeyIdCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetEbsDefaultKmsKeyIdResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetEbsDefaultKmsKeyIdCommand\");\nvar de_ResetFpgaImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetFpgaImageAttributeResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetFpgaImageAttributeCommand\");\nvar de_ResetImageAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetImageAttributeCommand\");\nvar de_ResetInstanceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetInstanceAttributeCommand\");\nvar de_ResetNetworkInterfaceAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetNetworkInterfaceAttributeCommand\");\nvar de_ResetSnapshotAttributeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResetSnapshotAttributeCommand\");\nvar de_RestoreAddressToClassicCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreAddressToClassicResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreAddressToClassicCommand\");\nvar de_RestoreImageFromRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreImageFromRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreImageFromRecycleBinCommand\");\nvar de_RestoreManagedPrefixListVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreManagedPrefixListVersionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreManagedPrefixListVersionCommand\");\nvar de_RestoreSnapshotFromRecycleBinCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreSnapshotFromRecycleBinResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreSnapshotFromRecycleBinCommand\");\nvar de_RestoreSnapshotTierCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RestoreSnapshotTierResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreSnapshotTierCommand\");\nvar de_RevokeClientVpnIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RevokeClientVpnIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RevokeClientVpnIngressCommand\");\nvar de_RevokeSecurityGroupEgressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RevokeSecurityGroupEgressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RevokeSecurityGroupEgressCommand\");\nvar de_RevokeSecurityGroupIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RevokeSecurityGroupIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RevokeSecurityGroupIngressCommand\");\nvar de_RunInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_Reservation(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RunInstancesCommand\");\nvar de_RunScheduledInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RunScheduledInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RunScheduledInstancesCommand\");\nvar de_SearchLocalGatewayRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SearchLocalGatewayRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SearchLocalGatewayRoutesCommand\");\nvar de_SearchTransitGatewayMulticastGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SearchTransitGatewayMulticastGroupsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SearchTransitGatewayMulticastGroupsCommand\");\nvar de_SearchTransitGatewayRoutesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SearchTransitGatewayRoutesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SearchTransitGatewayRoutesCommand\");\nvar de_SendDiagnosticInterruptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SendDiagnosticInterruptCommand\");\nvar de_StartDeclarativePoliciesReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartDeclarativePoliciesReportResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartDeclarativePoliciesReportCommand\");\nvar de_StartInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartInstancesCommand\");\nvar de_StartNetworkInsightsAccessScopeAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartNetworkInsightsAccessScopeAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartNetworkInsightsAccessScopeAnalysisCommand\");\nvar de_StartNetworkInsightsAnalysisCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartNetworkInsightsAnalysisResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartNetworkInsightsAnalysisCommand\");\nvar de_StartVpcEndpointServicePrivateDnsVerificationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StartVpcEndpointServicePrivateDnsVerificationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartVpcEndpointServicePrivateDnsVerificationCommand\");\nvar de_StopInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_StopInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopInstancesCommand\");\nvar de_TerminateClientVpnConnectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_TerminateClientVpnConnectionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TerminateClientVpnConnectionsCommand\");\nvar de_TerminateInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_TerminateInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TerminateInstancesCommand\");\nvar de_UnassignIpv6AddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnassignIpv6AddressesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnassignIpv6AddressesCommand\");\nvar de_UnassignPrivateIpAddressesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UnassignPrivateIpAddressesCommand\");\nvar de_UnassignPrivateNatGatewayAddressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnassignPrivateNatGatewayAddressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnassignPrivateNatGatewayAddressCommand\");\nvar de_UnlockSnapshotCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnlockSnapshotResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnlockSnapshotCommand\");\nvar de_UnmonitorInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UnmonitorInstancesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnmonitorInstancesCommand\");\nvar de_UpdateSecurityGroupRuleDescriptionsEgressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateSecurityGroupRuleDescriptionsEgressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecurityGroupRuleDescriptionsEgressCommand\");\nvar de_UpdateSecurityGroupRuleDescriptionsIngressCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateSecurityGroupRuleDescriptionsIngressResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecurityGroupRuleDescriptionsIngressCommand\");\nvar de_WithdrawByoipCidrCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_WithdrawByoipCidrResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_WithdrawByoipCidrCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadEc2ErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Errors.Error,\n errorCode\n });\n}, \"de_CommandError\");\nvar se_AcceleratorCount = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorCount\");\nvar se_AcceleratorCountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorCountRequest\");\nvar se_AcceleratorManufacturerSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AcceleratorManufacturerSet\");\nvar se_AcceleratorNameSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AcceleratorNameSet\");\nvar se_AcceleratorTotalMemoryMiB = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorTotalMemoryMiB\");\nvar se_AcceleratorTotalMemoryMiBRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_AcceleratorTotalMemoryMiBRequest\");\nvar se_AcceleratorTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AcceleratorTypeSet\");\nvar se_AcceptAddressTransferRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ad] != null) {\n entries[_Ad] = input[_Ad];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptAddressTransferRequest\");\nvar se_AcceptCapacityReservationBillingOwnershipRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n return entries;\n}, \"se_AcceptCapacityReservationBillingOwnershipRequest\");\nvar se_AcceptReservedInstancesExchangeQuoteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RII] != null) {\n const memberEntries = se_ReservedInstanceIdSet(input[_RII], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TC] != null) {\n const memberEntries = se_TargetConfigurationRequestSet(input[_TC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AcceptReservedInstancesExchangeQuoteRequest\");\nvar se_AcceptTransitGatewayMulticastDomainAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_ValueStringList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptTransitGatewayMulticastDomainAssociationsRequest\");\nvar se_AcceptTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptTransitGatewayPeeringAttachmentRequest\");\nvar se_AcceptTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AcceptTransitGatewayVpcAttachmentRequest\");\nvar se_AcceptVpcEndpointConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AcceptVpcEndpointConnectionsRequest\");\nvar se_AcceptVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_AcceptVpcPeeringConnectionRequest\");\nvar se_AccessScopePathListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AccessScopePathRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AccessScopePathListRequest\");\nvar se_AccessScopePathRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n const memberEntries = se_PathStatementRequest(input[_S], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Source.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_D] != null) {\n const memberEntries = se_PathStatementRequest(input[_D], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Destination.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TR] != null) {\n const memberEntries = se_ThroughResourcesStatementRequestList(input[_TR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ThroughResource.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AccessScopePathRequest\");\nvar se_AccountAttributeNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AttributeName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AccountAttributeNameStringList\");\nvar se_AddIpamOperatingRegion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_AddIpamOperatingRegion\");\nvar se_AddIpamOperatingRegionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AddIpamOperatingRegion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AddIpamOperatingRegionSet\");\nvar se_AddIpamOrganizationalUnitExclusion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OEP] != null) {\n entries[_OEP] = input[_OEP];\n }\n return entries;\n}, \"se_AddIpamOrganizationalUnitExclusion\");\nvar se_AddIpamOrganizationalUnitExclusionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AddIpamOrganizationalUnitExclusion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AddIpamOrganizationalUnitExclusionSet\");\nvar se_AddPrefixListEntries = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AddPrefixListEntry(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AddPrefixListEntries\");\nvar se_AddPrefixListEntry = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_AddPrefixListEntry\");\nvar se_AdvertiseByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_AdvertiseByoipCidrRequest\");\nvar se_AllocateAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Do] != null) {\n entries[_Do] = input[_Do];\n }\n if (input[_Ad] != null) {\n entries[_Ad] = input[_Ad];\n }\n if (input[_PIP] != null) {\n entries[_PIP] = input[_PIP];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n if (input[_COIP] != null) {\n entries[_COIP] = input[_COIP];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AllocateAddressRequest\");\nvar se_AllocateHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HR] != null) {\n entries[_HR] = input[_HR];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_HM] != null) {\n entries[_HM] = input[_HM];\n }\n if (input[_AI] != null) {\n const memberEntries = se_AssetIdList(input[_AI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_AP] != null) {\n entries[_AP] = input[_AP];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_Q] != null) {\n entries[_Q] = input[_Q];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n return entries;\n}, \"se_AllocateHostsRequest\");\nvar se_AllocateIpamPoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_NL] != null) {\n entries[_NL] = input[_NL];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PNC] != null) {\n entries[_PNC] = input[_PNC];\n }\n if (input[_AC] != null) {\n const memberEntries = se_IpamPoolAllocationAllowedCidrs(input[_AC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllowedCidr.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DC] != null) {\n const memberEntries = se_IpamPoolAllocationDisallowedCidrs(input[_DC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisallowedCidr.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AllocateIpamPoolCidrRequest\");\nvar se_AllocationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AllocationId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AllocationIdList\");\nvar se_AllocationIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AllocationIds\");\nvar se_AllowedInstanceTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AllowedInstanceTypeSet\");\nvar se_ApplySecurityGroupsToClientVpnTargetNetworkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ClientVpnSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ApplySecurityGroupsToClientVpnTargetNetworkRequest\");\nvar se_ArchitectureTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ArchitectureTypeSet\");\nvar se_ArnList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ArnList\");\nvar se_AsnAuthorizationContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Me] != null) {\n entries[_Me] = input[_Me];\n }\n if (input[_Si] != null) {\n entries[_Si] = input[_Si];\n }\n return entries;\n}, \"se_AsnAuthorizationContext\");\nvar se_AssetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AssetIdList\");\nvar se_AssignIpv6AddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_IP] != null) {\n const memberEntries = se_IpPrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_IA] != null) {\n const memberEntries = se_Ipv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n return entries;\n}, \"se_AssignIpv6AddressesRequest\");\nvar se_AssignPrivateIpAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPp] != null) {\n const memberEntries = se_IpPrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressStringList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_AR] != null) {\n entries[_AR] = input[_AR];\n }\n return entries;\n}, \"se_AssignPrivateIpAddressesRequest\");\nvar se_AssignPrivateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_IpList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAC] != null) {\n entries[_PIAC] = input[_PIAC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssignPrivateNatGatewayAddressRequest\");\nvar se_AssociateAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_ARl] != null) {\n entries[_ARl] = input[_ARl];\n }\n return entries;\n}, \"se_AssociateAddressRequest\");\nvar se_AssociateCapacityReservationBillingOwnerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_URBOI] != null) {\n entries[_URBOI] = input[_URBOI];\n }\n return entries;\n}, \"se_AssociateCapacityReservationBillingOwnerRequest\");\nvar se_AssociateClientVpnTargetNetworkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateClientVpnTargetNetworkRequest\");\nvar se_AssociateDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOI] != null) {\n entries[_DOI] = input[_DOI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateDhcpOptionsRequest\");\nvar se_AssociateEnclaveCertificateIamRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_RAo] != null) {\n entries[_RAo] = input[_RAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateEnclaveCertificateIamRoleRequest\");\nvar se_AssociateIamInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n return entries;\n}, \"se_AssociateIamInstanceProfileRequest\");\nvar se_AssociateInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n if (input[_AT] != null) {\n const memberEntries = se_InstanceEventWindowAssociationRequest(input[_AT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssociateInstanceEventWindowRequest\");\nvar se_AssociateIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_AssociateIpamByoasnRequest\");\nvar se_AssociateIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_AssociateIpamResourceDiscoveryRequest\");\nvar se_AssociateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIdList(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIA] != null) {\n const memberEntries = se_IpList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateNatGatewayAddressRequest\");\nvar se_AssociateRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateRouteServerRequest\");\nvar se_AssociateRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n return entries;\n}, \"se_AssociateRouteTableRequest\");\nvar se_AssociateSecurityGroupVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateSecurityGroupVpcRequest\");\nvar se_AssociateSubnetCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n return entries;\n}, \"se_AssociateSubnetCidrBlockRequest\");\nvar se_AssociateTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTransitGatewayMulticastDomainRequest\");\nvar se_AssociateTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTransitGatewayPolicyTableRequest\");\nvar se_AssociateTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTransitGatewayRouteTableRequest\");\nvar se_AssociateTrunkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BII] != null) {\n entries[_BII] = input[_BII];\n }\n if (input[_TII] != null) {\n entries[_TII] = input[_TII];\n }\n if (input[_VIl] != null) {\n entries[_VIl] = input[_VIl];\n }\n if (input[_GK] != null) {\n entries[_GK] = input[_GK];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AssociateTrunkInterfaceRequest\");\nvar se_AssociateVpcCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICBNBG] != null) {\n entries[_ICBNBG] = input[_ICBNBG];\n }\n if (input[_IPpv] != null) {\n entries[_IPpv] = input[_IPpv];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_IIPIp] != null) {\n entries[_IIPIp] = input[_IIPIp];\n }\n if (input[_INLp] != null) {\n entries[_INLp] = input[_INLp];\n }\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_APICB] != null) {\n entries[_APICB] = input[_APICB];\n }\n return entries;\n}, \"se_AssociateVpcCidrBlockRequest\");\nvar se_AssociationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AssociationId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AssociationIdList\");\nvar se_AthenaIntegration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IRSDA] != null) {\n entries[_IRSDA] = input[_IRSDA];\n }\n if (input[_PLF] != null) {\n entries[_PLF] = input[_PLF];\n }\n if (input[_PSD] != null) {\n entries[_PSD] = (0, import_smithy_client.serializeDateTime)(input[_PSD]);\n }\n if (input[_PED] != null) {\n entries[_PED] = (0, import_smithy_client.serializeDateTime)(input[_PED]);\n }\n return entries;\n}, \"se_AthenaIntegration\");\nvar se_AthenaIntegrationsSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_AthenaIntegration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_AthenaIntegrationsSet\");\nvar se_AttachClassicLinkVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_G] != null) {\n const memberEntries = se_GroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AttachClassicLinkVpcRequest\");\nvar se_AttachInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGI] != null) {\n entries[_IGI] = input[_IGI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_AttachInternetGatewayRequest\");\nvar se_AttachNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NCI] != null) {\n entries[_NCI] = input[_NCI];\n }\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecification(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n return entries;\n}, \"se_AttachNetworkInterfaceRequest\");\nvar se_AttachVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AttachVerifiedAccessTrustProviderRequest\");\nvar se_AttachVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Dev] != null) {\n entries[_Dev] = input[_Dev];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AttachVolumeRequest\");\nvar se_AttachVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AttachVpnGatewayRequest\");\nvar se_AttributeBooleanValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_AttributeBooleanValue\");\nvar se_AttributeValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_AttributeValue\");\nvar se_AuthorizeClientVpnIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_TNC] != null) {\n entries[_TNC] = input[_TNC];\n }\n if (input[_AGI] != null) {\n entries[_AGI] = input[_AGI];\n }\n if (input[_AAG] != null) {\n entries[_AAG] = input[_AAG];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AuthorizeClientVpnIngressRequest\");\nvar se_AuthorizeSecurityGroupEgressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AuthorizeSecurityGroupEgressRequest\");\nvar se_AuthorizeSecurityGroupIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_AuthorizeSecurityGroupIngressRequest\");\nvar se_AvailabilityZoneStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`AvailabilityZone.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AvailabilityZoneStringList\");\nvar se_BaselineEbsBandwidthMbps = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_BaselineEbsBandwidthMbps\");\nvar se_BaselineEbsBandwidthMbpsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_BaselineEbsBandwidthMbpsRequest\");\nvar se_BaselinePerformanceFactors = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Cp] != null) {\n const memberEntries = se_CpuPerformanceFactor(input[_Cp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Cpu.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_BaselinePerformanceFactors\");\nvar se_BaselinePerformanceFactorsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Cp] != null) {\n const memberEntries = se_CpuPerformanceFactorRequest(input[_Cp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Cpu.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_BaselinePerformanceFactorsRequest\");\nvar se_BillingProductList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_BillingProductList\");\nvar se_BlobAttributeValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = context.base64Encoder(input[_Va]);\n }\n return entries;\n}, \"se_BlobAttributeValue\");\nvar se_BlockDeviceMapping = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_E] != null) {\n const memberEntries = se_EbsBlockDevice(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n return entries;\n}, \"se_BlockDeviceMapping\");\nvar se_BlockDeviceMappingList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_BlockDeviceMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_BlockDeviceMappingList\");\nvar se_BlockDeviceMappingRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_BlockDeviceMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_BlockDeviceMappingRequestList\");\nvar se_BundleIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`BundleId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_BundleIdStringList\");\nvar se_BundleInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_St] != null) {\n const memberEntries = se_Storage(input[_St], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Storage.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_BundleInstanceRequest\");\nvar se_CancelBundleTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BIu] != null) {\n entries[_BIu] = input[_BIu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CancelBundleTaskRequest\");\nvar se_CancelCapacityReservationFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRFI] != null) {\n const memberEntries = se_CapacityReservationFleetIdSet(input[_CRFI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationFleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CancelCapacityReservationFleetsRequest\");\nvar se_CancelCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CancelCapacityReservationRequest\");\nvar se_CancelConversionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTI] != null) {\n entries[_CTI] = input[_CTI];\n }\n if (input[_RM] != null) {\n entries[_RM] = input[_RM];\n }\n return entries;\n}, \"se_CancelConversionRequest\");\nvar se_CancelDeclarativePoliciesReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIep] != null) {\n entries[_RIep] = input[_RIep];\n }\n return entries;\n}, \"se_CancelDeclarativePoliciesReportRequest\");\nvar se_CancelExportTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ETI] != null) {\n entries[_ETI] = input[_ETI];\n }\n return entries;\n}, \"se_CancelExportTaskRequest\");\nvar se_CancelImageLaunchPermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CancelImageLaunchPermissionRequest\");\nvar se_CancelImportTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRa] != null) {\n entries[_CRa] = input[_CRa];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITI] != null) {\n entries[_ITI] = input[_ITI];\n }\n return entries;\n}, \"se_CancelImportTaskRequest\");\nvar se_CancelReservedInstancesListingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RILI] != null) {\n entries[_RILI] = input[_RILI];\n }\n return entries;\n}, \"se_CancelReservedInstancesListingRequest\");\nvar se_CancelSpotFleetRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRI] != null) {\n const memberEntries = se_SpotFleetRequestIdList(input[_SFRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotFleetRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TI] != null) {\n entries[_TI] = input[_TI];\n }\n return entries;\n}, \"se_CancelSpotFleetRequestsRequest\");\nvar se_CancelSpotInstanceRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIRI] != null) {\n const memberEntries = se_SpotInstanceRequestIdList(input[_SIRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotInstanceRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CancelSpotInstanceRequestsRequest\");\nvar se_CapacityReservationFleetIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CapacityReservationFleetIdSet\");\nvar se_CapacityReservationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CapacityReservationIdSet\");\nvar se_CapacityReservationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_USs] != null) {\n entries[_USs] = input[_USs];\n }\n return entries;\n}, \"se_CapacityReservationOptionsRequest\");\nvar se_CapacityReservationSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRP] != null) {\n entries[_CRP] = input[_CRP];\n }\n if (input[_CRTa] != null) {\n const memberEntries = se_CapacityReservationTarget(input[_CRTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CapacityReservationSpecification\");\nvar se_CapacityReservationTarget = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_CRRGA] != null) {\n entries[_CRRGA] = input[_CRRGA];\n }\n return entries;\n}, \"se_CapacityReservationTarget\");\nvar se_CarrierGatewayIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CarrierGatewayIdSet\");\nvar se_CertificateAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRCCA] != null) {\n entries[_CRCCA] = input[_CRCCA];\n }\n return entries;\n}, \"se_CertificateAuthenticationRequest\");\nvar se_CidrAuthorizationContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Me] != null) {\n entries[_Me] = input[_Me];\n }\n if (input[_Si] != null) {\n entries[_Si] = input[_Si];\n }\n return entries;\n}, \"se_CidrAuthorizationContext\");\nvar se_ClassicLoadBalancer = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_ClassicLoadBalancer\");\nvar se_ClassicLoadBalancers = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ClassicLoadBalancer(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ClassicLoadBalancers\");\nvar se_ClassicLoadBalancersConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CLB] != null) {\n const memberEntries = se_ClassicLoadBalancers(input[_CLB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClassicLoadBalancers.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ClassicLoadBalancersConfig\");\nvar se_ClientConnectOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_LFA] != null) {\n entries[_LFA] = input[_LFA];\n }\n return entries;\n}, \"se_ClientConnectOptions\");\nvar se_ClientData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Co] != null) {\n entries[_Co] = input[_Co];\n }\n if (input[_UE] != null) {\n entries[_UE] = (0, import_smithy_client.serializeDateTime)(input[_UE]);\n }\n if (input[_USp] != null) {\n entries[_USp] = (0, import_smithy_client.serializeFloat)(input[_USp]);\n }\n if (input[_USpl] != null) {\n entries[_USpl] = (0, import_smithy_client.serializeDateTime)(input[_USpl]);\n }\n return entries;\n}, \"se_ClientData\");\nvar se_ClientLoginBannerOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_BT] != null) {\n entries[_BT] = input[_BT];\n }\n return entries;\n}, \"se_ClientLoginBannerOptions\");\nvar se_ClientRouteEnforcementOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Enf] != null) {\n entries[_Enf] = input[_Enf];\n }\n return entries;\n}, \"se_ClientRouteEnforcementOptions\");\nvar se_ClientVpnAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_AD] != null) {\n const memberEntries = se_DirectoryServiceAuthenticationRequest(input[_AD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ActiveDirectory.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MA] != null) {\n const memberEntries = se_CertificateAuthenticationRequest(input[_MA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MutualAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FA] != null) {\n const memberEntries = se_FederatedAuthenticationRequest(input[_FA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FederatedAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ClientVpnAuthenticationRequest\");\nvar se_ClientVpnAuthenticationRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ClientVpnAuthenticationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ClientVpnAuthenticationRequestList\");\nvar se_ClientVpnEndpointIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ClientVpnEndpointIdList\");\nvar se_ClientVpnSecurityGroupIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ClientVpnSecurityGroupIdSet\");\nvar se_CloudWatchLogOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LE] != null) {\n entries[_LE] = input[_LE];\n }\n if (input[_LGA] != null) {\n entries[_LGA] = input[_LGA];\n }\n if (input[_LOF] != null) {\n entries[_LOF] = input[_LOF];\n }\n return entries;\n}, \"se_CloudWatchLogOptionsSpecification\");\nvar se_CoipPoolIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CoipPoolIdSet\");\nvar se_ConfirmProductInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_PC] != null) {\n entries[_PC] = input[_PC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ConfirmProductInstanceRequest\");\nvar se_ConnectionLogOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_CLG] != null) {\n entries[_CLG] = input[_CLG];\n }\n if (input[_CLS] != null) {\n entries[_CLS] = input[_CLS];\n }\n return entries;\n}, \"se_ConnectionLogOptions\");\nvar se_ConnectionNotificationIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ConnectionNotificationIdsList\");\nvar se_ConnectionTrackingSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TET] != null) {\n entries[_TET] = input[_TET];\n }\n if (input[_UST] != null) {\n entries[_UST] = input[_UST];\n }\n if (input[_UT] != null) {\n entries[_UT] = input[_UT];\n }\n return entries;\n}, \"se_ConnectionTrackingSpecificationRequest\");\nvar se_ConversionIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ConversionIdStringList\");\nvar se_CopyFpgaImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFII] != null) {\n entries[_SFII] = input[_SFII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_SR] != null) {\n entries[_SR] = input[_SR];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CopyFpgaImageRequest\");\nvar se_CopyImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_SII] != null) {\n entries[_SII] = input[_SII];\n }\n if (input[_SR] != null) {\n entries[_SR] = input[_SR];\n }\n if (input[_DOA] != null) {\n entries[_DOA] = input[_DOA];\n }\n if (input[_CITo] != null) {\n entries[_CITo] = input[_CITo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SCCDM] != null) {\n entries[_SCCDM] = input[_SCCDM];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CopyImageRequest\");\nvar se_CopySnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DOA] != null) {\n entries[_DOA] = input[_DOA];\n }\n if (input[_DRes] != null) {\n entries[_DRes] = input[_DRes];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_PU] != null) {\n entries[_PU] = input[_PU];\n }\n if (input[_SR] != null) {\n entries[_SR] = input[_SR];\n }\n if (input[_SSI] != null) {\n entries[_SSI] = input[_SSI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CDM] != null) {\n entries[_CDM] = input[_CDM];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CopySnapshotRequest\");\nvar se_CpuManufacturerSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CpuManufacturerSet\");\nvar se_CpuOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_TPC] != null) {\n entries[_TPC] = input[_TPC];\n }\n if (input[_ASS] != null) {\n entries[_ASS] = input[_ASS];\n }\n return entries;\n}, \"se_CpuOptionsRequest\");\nvar se_CpuPerformanceFactor = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_R] != null) {\n const memberEntries = se_PerformanceFactorReferenceSet(input[_R], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReferenceSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CpuPerformanceFactor\");\nvar se_CpuPerformanceFactorRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_R] != null) {\n const memberEntries = se_PerformanceFactorReferenceSetRequest(input[_R], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Reference.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CpuPerformanceFactorRequest\");\nvar se_CreateCapacityReservationBySplittingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SCRI] != null) {\n entries[_SCRI] = input[_SCRI];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateCapacityReservationBySplittingRequest\");\nvar se_CreateCapacityReservationFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ITS] != null) {\n const memberEntries = se_ReservationFleetInstanceSpecificationList(input[_ITS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTypeSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_TTC] != null) {\n entries[_TTC] = input[_TTC];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_IMC] != null) {\n entries[_IMC] = input[_IMC];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCapacityReservationFleetRequest\");\nvar se_CreateCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IPn] != null) {\n entries[_IPn] = input[_IPn];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_ES] != null) {\n entries[_ES] = input[_ES];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_EDT] != null) {\n entries[_EDT] = input[_EDT];\n }\n if (input[_IMC] != null) {\n entries[_IMC] = input[_IMC];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_PGA] != null) {\n entries[_PGA] = input[_PGA];\n }\n if (input[_SD] != null) {\n entries[_SD] = (0, import_smithy_client.serializeDateTime)(input[_SD]);\n }\n if (input[_CD] != null) {\n entries[_CD] = input[_CD];\n }\n if (input[_DP] != null) {\n entries[_DP] = input[_DP];\n }\n return entries;\n}, \"se_CreateCapacityReservationRequest\");\nvar se_CreateCarrierGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateCarrierGatewayRequest\");\nvar se_CreateClientVpnEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CCB] != null) {\n entries[_CCB] = input[_CCB];\n }\n if (input[_SCA] != null) {\n entries[_SCA] = input[_SCA];\n }\n if (input[_AO] != null) {\n const memberEntries = se_ClientVpnAuthenticationRequestList(input[_AO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Authentication.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CLO] != null) {\n const memberEntries = se_ConnectionLogOptions(input[_CLO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionLogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DSn] != null) {\n const memberEntries = se_ValueStringList(input[_DSn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsServers.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TPr] != null) {\n entries[_TPr] = input[_TPr];\n }\n if (input[_VP] != null) {\n entries[_VP] = input[_VP];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ClientVpnSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SSP] != null) {\n entries[_SSP] = input[_SSP];\n }\n if (input[_CCO] != null) {\n const memberEntries = se_ClientConnectOptions(input[_CCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientConnectOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_STH] != null) {\n entries[_STH] = input[_STH];\n }\n if (input[_CLBO] != null) {\n const memberEntries = se_ClientLoginBannerOptions(input[_CLBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientLoginBannerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CREO] != null) {\n const memberEntries = se_ClientRouteEnforcementOptions(input[_CREO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientRouteEnforcementOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOST] != null) {\n entries[_DOST] = input[_DOST];\n }\n return entries;\n}, \"se_CreateClientVpnEndpointRequest\");\nvar se_CreateClientVpnRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_TVSI] != null) {\n entries[_TVSI] = input[_TVSI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateClientVpnRouteRequest\");\nvar se_CreateCoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CPIo] != null) {\n entries[_CPIo] = input[_CPIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCoipCidrRequest\");\nvar se_CreateCoipPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCoipPoolRequest\");\nvar se_CreateCustomerGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BA] != null) {\n entries[_BA] = input[_BA];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_IAp] != null) {\n entries[_IAp] = input[_IAp];\n }\n if (input[_BAE] != null) {\n entries[_BAE] = input[_BAE];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateCustomerGatewayRequest\");\nvar se_CreateDefaultSubnetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IN] != null) {\n entries[_IN] = input[_IN];\n }\n return entries;\n}, \"se_CreateDefaultSubnetRequest\");\nvar se_CreateDefaultVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateDefaultVpcRequest\");\nvar se_CreateDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCh] != null) {\n const memberEntries = se_NewDhcpConfigurationList(input[_DCh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DhcpConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateDhcpOptionsRequest\");\nvar se_CreateEgressOnlyInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateEgressOnlyInternetGatewayRequest\");\nvar se_CreateFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SO] != null) {\n const memberEntries = se_SpotOptionsRequest(input[_SO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ODO] != null) {\n const memberEntries = se_OnDemandOptionsRequest(input[_ODO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OnDemandOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n if (input[_LTC] != null) {\n const memberEntries = se_FleetLaunchTemplateConfigListRequest(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfigs.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TCS] != null) {\n const memberEntries = se_TargetCapacitySpecificationRequest(input[_TCS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetCapacitySpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TIWE] != null) {\n entries[_TIWE] = input[_TIWE];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VF] != null) {\n entries[_VF] = (0, import_smithy_client.serializeDateTime)(input[_VF]);\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_RUI] != null) {\n entries[_RUI] = input[_RUI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n return entries;\n}, \"se_CreateFleetRequest\");\nvar se_CreateFlowLogsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DLPA] != null) {\n entries[_DLPA] = input[_DLPA];\n }\n if (input[_DCAR] != null) {\n entries[_DCAR] = input[_DCAR];\n }\n if (input[_LGN] != null) {\n entries[_LGN] = input[_LGN];\n }\n if (input[_RIes] != null) {\n const memberEntries = se_FlowLogResourceIds(input[_RIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_TT] != null) {\n entries[_TT] = input[_TT];\n }\n if (input[_LDT] != null) {\n entries[_LDT] = input[_LDT];\n }\n if (input[_LD] != null) {\n entries[_LD] = input[_LD];\n }\n if (input[_LF] != null) {\n entries[_LF] = input[_LF];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MAI] != null) {\n entries[_MAI] = input[_MAI];\n }\n if (input[_DO] != null) {\n const memberEntries = se_DestinationOptionsRequest(input[_DO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateFlowLogsRequest\");\nvar se_CreateFpgaImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISL] != null) {\n const memberEntries = se_StorageLocation(input[_ISL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InputStorageLocation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSL] != null) {\n const memberEntries = se_StorageLocation(input[_LSL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LogsStorageLocation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateFpgaImageRequest\");\nvar se_CreateImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_NR] != null) {\n entries[_NR] = input[_NR];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateImageRequest\");\nvar se_CreateInstanceConnectEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdStringListRequest(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PCI] != null) {\n entries[_PCI] = input[_PCI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceConnectEndpointRequest\");\nvar se_CreateInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_TRi] != null) {\n const memberEntries = se_InstanceEventWindowTimeRangeRequestSet(input[_TRi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TimeRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CE] != null) {\n entries[_CE] = input[_CE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceEventWindowRequest\");\nvar se_CreateInstanceExportTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_TE] != null) {\n entries[_TE] = input[_TE];\n }\n if (input[_ETST] != null) {\n const memberEntries = se_ExportToS3TaskSpecification(input[_ETST], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExportToS3.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceExportTaskRequest\");\nvar se_CreateInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateInternetGatewayRequest\");\nvar se_CreateIpamExternalResourceVerificationTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateIpamExternalResourceVerificationTokenRequest\");\nvar se_CreateIpamPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_L] != null) {\n entries[_L] = input[_L];\n }\n if (input[_SIPI] != null) {\n entries[_SIPI] = input[_SIPI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AF] != null) {\n entries[_AF] = input[_AF];\n }\n if (input[_AIu] != null) {\n entries[_AIu] = input[_AIu];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_AMNL] != null) {\n entries[_AMNL] = input[_AMNL];\n }\n if (input[_AMNLl] != null) {\n entries[_AMNLl] = input[_AMNLl];\n }\n if (input[_ADNL] != null) {\n entries[_ADNL] = input[_ADNL];\n }\n if (input[_ARTl] != null) {\n const memberEntries = se_RequestIpamResourceTagList(input[_ARTl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationResourceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ASw] != null) {\n entries[_ASw] = input[_ASw];\n }\n if (input[_PIS] != null) {\n entries[_PIS] = input[_PIS];\n }\n if (input[_SRo] != null) {\n const memberEntries = se_IpamPoolSourceResourceRequest(input[_SRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceResource.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateIpamPoolRequest\");\nvar se_CreateIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_OR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_OR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_Ti] != null) {\n entries[_Ti] = input[_Ti];\n }\n if (input[_EPG] != null) {\n entries[_EPG] = input[_EPG];\n }\n if (input[_MAe] != null) {\n entries[_MAe] = input[_MAe];\n }\n return entries;\n}, \"se_CreateIpamRequest\");\nvar se_CreateIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_OR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_OR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateIpamResourceDiscoveryRequest\");\nvar se_CreateIpamScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateIpamScopeRequest\");\nvar se_CreateKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_KT] != null) {\n entries[_KT] = input[_KT];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_KF] != null) {\n entries[_KF] = input[_KF];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateKeyPairRequest\");\nvar se_CreateLaunchTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_VD] != null) {\n entries[_VD] = input[_VD];\n }\n if (input[_LTD] != null) {\n const memberEntries = se_RequestLaunchTemplateData(input[_LTD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateLaunchTemplateRequest\");\nvar se_CreateLaunchTemplateVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_SV] != null) {\n entries[_SV] = input[_SV];\n }\n if (input[_VD] != null) {\n entries[_VD] = input[_VD];\n }\n if (input[_LTD] != null) {\n const memberEntries = se_RequestLaunchTemplateData(input[_LTD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_CreateLaunchTemplateVersionRequest\");\nvar se_CreateLocalGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteRequest\");\nvar se_CreateLocalGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_Mo] != null) {\n entries[_Mo] = input[_Mo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteTableRequest\");\nvar se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest\");\nvar se_CreateLocalGatewayRouteTableVpcAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayRouteTableVpcAssociationRequest\");\nvar se_CreateLocalGatewayVirtualInterfaceGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_LBAE] != null) {\n entries[_LBAE] = input[_LBAE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateLocalGatewayVirtualInterfaceGroupRequest\");\nvar se_CreateLocalGatewayVirtualInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_OLI] != null) {\n entries[_OLI] = input[_OLI];\n }\n if (input[_Vl] != null) {\n entries[_Vl] = input[_Vl];\n }\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_PAe] != null) {\n entries[_PAe] = input[_PAe];\n }\n if (input[_PBA] != null) {\n entries[_PBA] = input[_PBA];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PBAE] != null) {\n entries[_PBAE] = input[_PBAE];\n }\n return entries;\n}, \"se_CreateLocalGatewayVirtualInterfaceRequest\");\nvar se_CreateManagedPrefixListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLN] != null) {\n entries[_PLN] = input[_PLN];\n }\n if (input[_Ent] != null) {\n const memberEntries = se_AddPrefixListEntries(input[_Ent], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Entry.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ME] != null) {\n entries[_ME] = input[_ME];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AF] != null) {\n entries[_AF] = input[_AF];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateManagedPrefixListRequest\");\nvar se_CreateNatGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTo] != null) {\n entries[_CTo] = input[_CTo];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_SAI] != null) {\n const memberEntries = se_AllocationIdList(input[_SAI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecondaryAllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIA] != null) {\n const memberEntries = se_IpList(input[_SPIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecondaryPrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n return entries;\n}, \"se_CreateNatGatewayRequest\");\nvar se_CreateNetworkAclEntryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Eg] != null) {\n entries[_Eg] = input[_Eg];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_ITC] != null) {\n const memberEntries = se_IcmpTypeCode(input[_ITC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Icmp.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PR] != null) {\n const memberEntries = se_PortRange(input[_PR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateNetworkAclEntryRequest\");\nvar se_CreateNetworkAclRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_CreateNetworkAclRequest\");\nvar se_CreateNetworkInsightsAccessScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MP] != null) {\n const memberEntries = se_AccessScopePathListRequest(input[_MP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MatchPath.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EP] != null) {\n const memberEntries = se_AccessScopePathListRequest(input[_EP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludePath.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateNetworkInsightsAccessScopeRequest\");\nvar se_CreateNetworkInsightsPathRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIo] != null) {\n entries[_SIo] = input[_SIo];\n }\n if (input[_DIest] != null) {\n entries[_DIest] = input[_DIest];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DPe] != null) {\n entries[_DPe] = input[_DPe];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_FAS] != null) {\n const memberEntries = se_PathRequestFilter(input[_FAS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterAtSource.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FAD] != null) {\n const memberEntries = se_PathRequestFilter(input[_FAD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterAtDestination.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateNetworkInsightsPathRequest\");\nvar se_CreateNetworkInterfacePermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_AAI] != null) {\n entries[_AAI] = input[_AAI];\n }\n if (input[_ASw] != null) {\n entries[_ASw] = input[_ASw];\n }\n if (input[_Pe] != null) {\n entries[_Pe] = input[_Pe];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateNetworkInterfacePermissionRequest\");\nvar se_CreateNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPp] != null) {\n const memberEntries = se_Ipv4PrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_IP] != null) {\n const memberEntries = se_Ipv6PrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_ITn] != null) {\n entries[_ITn] = input[_ITn];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_EPI] != null) {\n entries[_EPI] = input[_EPI];\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressSpecificationList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateNetworkInterfaceRequest\");\nvar se_CreatePlacementGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PCa] != null) {\n entries[_PCa] = input[_PCa];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SL] != null) {\n entries[_SL] = input[_SL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_Str] != null) {\n entries[_Str] = input[_Str];\n }\n return entries;\n}, \"se_CreatePlacementGroupRequest\");\nvar se_CreatePublicIpv4PoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_CreatePublicIpv4PoolRequest\");\nvar se_CreateReplaceRootVolumeTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRRV] != null) {\n entries[_DRRV] = input[_DRRV];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n return entries;\n}, \"se_CreateReplaceRootVolumeTaskRequest\");\nvar se_CreateReservedInstancesListingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIIe] != null) {\n entries[_RIIe] = input[_RIIe];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_PS] != null) {\n const memberEntries = se_PriceScheduleSpecificationList(input[_PS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PriceSchedules.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateReservedInstancesListingRequest\");\nvar se_CreateRestoreImageTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_OK] != null) {\n entries[_OK] = input[_OK];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateRestoreImageTaskRequest\");\nvar se_CreateRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_CGI] != null) {\n entries[_CGI] = input[_CGI];\n }\n if (input[_CNAo] != null) {\n entries[_CNAo] = input[_CNAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_DICB] != null) {\n entries[_DICB] = input[_DICB];\n }\n if (input[_EOIGI] != null) {\n entries[_EOIGI] = input[_EOIGI];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n return entries;\n}, \"se_CreateRouteRequest\");\nvar se_CreateRouteServerEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRouteServerEndpointRequest\");\nvar se_CreateRouteServerPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSEI] != null) {\n entries[_RSEI] = input[_RSEI];\n }\n if (input[_PAe] != null) {\n entries[_PAe] = input[_PAe];\n }\n if (input[_BO] != null) {\n const memberEntries = se_RouteServerBgpOptionsRequest(input[_BO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BgpOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRouteServerPeerRequest\");\nvar se_CreateRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PRe] != null) {\n entries[_PRe] = input[_PRe];\n }\n if (input[_PRD] != null) {\n entries[_PRD] = input[_PRD];\n }\n if (input[_SNE] != null) {\n entries[_SNE] = input[_SNE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRouteServerRequest\");\nvar se_CreateRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_CreateRouteTableRequest\");\nvar se_CreateSecurityGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_GD] = input[_De];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateSecurityGroupRequest\");\nvar se_CreateSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Lo] != null) {\n entries[_Lo] = input[_Lo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateSnapshotRequest\");\nvar se_CreateSnapshotsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_ISn] != null) {\n const memberEntries = se_InstanceSpecification(input[_ISn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTFS] != null) {\n entries[_CTFS] = input[_CTFS];\n }\n if (input[_Lo] != null) {\n entries[_Lo] = input[_Lo];\n }\n return entries;\n}, \"se_CreateSnapshotsRequest\");\nvar se_CreateSpotDatafeedSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n return entries;\n}, \"se_CreateSpotDatafeedSubscriptionRequest\");\nvar se_CreateStoreImageTaskRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_SOT] != null) {\n const memberEntries = se_S3ObjectTagList(input[_SOT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3ObjectTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateStoreImageTaskRequest\");\nvar se_CreateSubnetCidrReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_RTe] != null) {\n entries[_RTe] = input[_RTe];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateSubnetCidrReservationRequest\");\nvar se_CreateSubnetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_IN] != null) {\n entries[_IN] = input[_IN];\n }\n if (input[_IIPIp] != null) {\n entries[_IIPIp] = input[_IIPIp];\n }\n if (input[_INLp] != null) {\n entries[_INLp] = input[_INLp];\n }\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateSubnetRequest\");\nvar se_CreateTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Re] != null) {\n const memberEntries = se_ResourceIdList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateTagsRequest\");\nvar se_CreateTrafficMirrorFilterRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateTrafficMirrorFilterRequest\");\nvar se_CreateTrafficMirrorFilterRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_TD] != null) {\n entries[_TD] = input[_TD];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_DPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_DPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_SPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_SCB] != null) {\n entries[_SCB] = input[_SCB];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateTrafficMirrorFilterRuleRequest\");\nvar se_CreateTrafficMirrorSessionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_TMTI] != null) {\n entries[_TMTI] = input[_TMTI];\n }\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_PL] != null) {\n entries[_PL] = input[_PL];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_VNI] != null) {\n entries[_VNI] = input[_VNI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateTrafficMirrorSessionRequest\");\nvar se_CreateTrafficMirrorTargetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_NLBA] != null) {\n entries[_NLBA] = input[_NLBA];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_GLBEI] != null) {\n entries[_GLBEI] = input[_GLBEI];\n }\n return entries;\n}, \"se_CreateTrafficMirrorTargetRequest\");\nvar se_CreateTransitGatewayConnectPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_PAe] != null) {\n entries[_PAe] = input[_PAe];\n }\n if (input[_BO] != null) {\n const memberEntries = se_TransitGatewayConnectRequestBgpOptions(input[_BO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BgpOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ICBn] != null) {\n const memberEntries = se_InsideCidrBlocksStringList(input[_ICBn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InsideCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayConnectPeerRequest\");\nvar se_CreateTransitGatewayConnectRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TTGAI] != null) {\n entries[_TTGAI] = input[_TTGAI];\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayConnectRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayConnectRequest\");\nvar se_CreateTransitGatewayConnectRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n return entries;\n}, \"se_CreateTransitGatewayConnectRequestOptions\");\nvar se_CreateTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayMulticastDomainRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayMulticastDomainRequest\");\nvar se_CreateTransitGatewayMulticastDomainRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ISg] != null) {\n entries[_ISg] = input[_ISg];\n }\n if (input[_SSS] != null) {\n entries[_SSS] = input[_SSS];\n }\n if (input[_AASA] != null) {\n entries[_AASA] = input[_AASA];\n }\n return entries;\n}, \"se_CreateTransitGatewayMulticastDomainRequestOptions\");\nvar se_CreateTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_PTGI] != null) {\n entries[_PTGI] = input[_PTGI];\n }\n if (input[_PAI] != null) {\n entries[_PAI] = input[_PAI];\n }\n if (input[_PRee] != null) {\n entries[_PRee] = input[_PRee];\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayPeeringAttachmentRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayPeeringAttachmentRequest\");\nvar se_CreateTransitGatewayPeeringAttachmentRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRy] != null) {\n entries[_DRy] = input[_DRy];\n }\n return entries;\n}, \"se_CreateTransitGatewayPeeringAttachmentRequestOptions\");\nvar se_CreateTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayPolicyTableRequest\");\nvar se_CreateTransitGatewayPrefixListReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayPrefixListReferenceRequest\");\nvar se_CreateTransitGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Op] != null) {\n const memberEntries = se_TransitGatewayRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRequest\");\nvar se_CreateTransitGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRouteRequest\");\nvar se_CreateTransitGatewayRouteTableAnnouncementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PAIe] != null) {\n entries[_PAIe] = input[_PAIe];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRouteTableAnnouncementRequest\");\nvar se_CreateTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayRouteTableRequest\");\nvar se_CreateTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Op] != null) {\n const memberEntries = se_CreateTransitGatewayVpcAttachmentRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateTransitGatewayVpcAttachmentRequest\");\nvar se_CreateTransitGatewayVpcAttachmentRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_ISp] != null) {\n entries[_ISp] = input[_ISp];\n }\n if (input[_AMS] != null) {\n entries[_AMS] = input[_AMS];\n }\n return entries;\n}, \"se_CreateTransitGatewayVpcAttachmentRequestOptions\");\nvar se_CreateVerifiedAccessEndpointCidrOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointCidrOptions\");\nvar se_CreateVerifiedAccessEndpointEniOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointEniOptions\");\nvar se_CreateVerifiedAccessEndpointLoadBalancerOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_LBAo] != null) {\n entries[_LBAo] = input[_LBAo];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PRo] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointLoadBalancerOptions\");\nvar se_CreateVerifiedAccessEndpointPortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointPortRange\");\nvar se_CreateVerifiedAccessEndpointPortRangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_CreateVerifiedAccessEndpointPortRange(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointPortRangeList\");\nvar se_CreateVerifiedAccessEndpointRdsOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_RDIA] != null) {\n entries[_RDIA] = input[_RDIA];\n }\n if (input[_RDCA] != null) {\n entries[_RDCA] = input[_RDCA];\n }\n if (input[_RDPA] != null) {\n entries[_RDPA] = input[_RDPA];\n }\n if (input[_RE] != null) {\n entries[_RE] = input[_RE];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointRdsOptions\");\nvar se_CreateVerifiedAccessEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_ET] != null) {\n entries[_ET] = input[_ET];\n }\n if (input[_ATt] != null) {\n entries[_ATt] = input[_ATt];\n }\n if (input[_DCA] != null) {\n entries[_DCA] = input[_DCA];\n }\n if (input[_ADp] != null) {\n entries[_ADp] = input[_ADp];\n }\n if (input[_EDP] != null) {\n entries[_EDP] = input[_EDP];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LBO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointLoadBalancerOptions(input[_LBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NIO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointEniOptions(input[_NIO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointRdsOptions(input[_RO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RdsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CO] != null) {\n const memberEntries = se_CreateVerifiedAccessEndpointCidrOptions(input[_CO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointRequest\");\nvar se_CreateVerifiedAccessEndpointSubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CreateVerifiedAccessEndpointSubnetIdList\");\nvar se_CreateVerifiedAccessGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessGroupRequest\");\nvar se_CreateVerifiedAccessInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FIPSE] != null) {\n entries[_FIPSE] = input[_FIPSE];\n }\n if (input[_CECSD] != null) {\n entries[_CECSD] = input[_CECSD];\n }\n return entries;\n}, \"se_CreateVerifiedAccessInstanceRequest\");\nvar se_CreateVerifiedAccessNativeApplicationOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSKE] != null) {\n entries[_PSKE] = input[_PSKE];\n }\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_CreateVerifiedAccessNativeApplicationOidcOptions\");\nvar se_CreateVerifiedAccessTrustProviderDeviceOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TIe] != null) {\n entries[_TIe] = input[_TIe];\n }\n if (input[_PSKU] != null) {\n entries[_PSKU] = input[_PSKU];\n }\n return entries;\n}, \"se_CreateVerifiedAccessTrustProviderDeviceOptions\");\nvar se_CreateVerifiedAccessTrustProviderOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_CreateVerifiedAccessTrustProviderOidcOptions\");\nvar se_CreateVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TPT] != null) {\n entries[_TPT] = input[_TPT];\n }\n if (input[_UTPT] != null) {\n entries[_UTPT] = input[_UTPT];\n }\n if (input[_DTPT] != null) {\n entries[_DTPT] = input[_DTPT];\n }\n if (input[_OO] != null) {\n const memberEntries = se_CreateVerifiedAccessTrustProviderOidcOptions(input[_OO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOe] != null) {\n const memberEntries = se_CreateVerifiedAccessTrustProviderDeviceOptions(input[_DOe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DeviceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PRN] != null) {\n entries[_PRN] = input[_PRN];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NAOO] != null) {\n const memberEntries = se_CreateVerifiedAccessNativeApplicationOidcOptions(input[_NAOO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NativeApplicationOidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVerifiedAccessTrustProviderRequest\");\nvar se_CreateVolumePermission = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n if (input[_Gr] != null) {\n entries[_Gr] = input[_Gr];\n }\n return entries;\n}, \"se_CreateVolumePermission\");\nvar se_CreateVolumePermissionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_CreateVolumePermission(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_CreateVolumePermissionList\");\nvar se_CreateVolumePermissionModifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Add] != null) {\n const memberEntries = se_CreateVolumePermissionList(input[_Add], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Add.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Rem] != null) {\n const memberEntries = se_CreateVolumePermissionList(input[_Rem], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Remove.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVolumePermissionModifications\");\nvar se_CreateVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_Siz] != null) {\n entries[_Siz] = input[_Siz];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MAE] != null) {\n entries[_MAE] = input[_MAE];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateVolumeRequest\");\nvar se_CreateVpcBlockPublicAccessExclusionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_IGEM] != null) {\n entries[_IGEM] = input[_IGEM];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVpcBlockPublicAccessExclusionRequest\");\nvar se_CreateVpcEndpointConnectionNotificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_CNAon] != null) {\n entries[_CNAon] = input[_CNAon];\n }\n if (input[_CEo] != null) {\n const memberEntries = se_ValueStringList(input[_CEo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionEvents.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_CreateVpcEndpointConnectionNotificationRequest\");\nvar se_CreateVpcEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VET] != null) {\n entries[_VET] = input[_VET];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_RTIo] != null) {\n const memberEntries = se_VpcEndpointRouteTableIdList(input[_RTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIu] != null) {\n const memberEntries = se_VpcEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGI] != null) {\n const memberEntries = se_VpcEndpointSecurityGroupIdList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_DOn] != null) {\n const memberEntries = se_DnsOptionsSpecification(input[_DOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_PDE] != null) {\n entries[_PDE] = input[_PDE];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SC] != null) {\n const memberEntries = se_SubnetConfigurationsList(input[_SC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SNA] != null) {\n entries[_SNA] = input[_SNA];\n }\n if (input[_RCA] != null) {\n entries[_RCA] = input[_RCA];\n }\n if (input[_SRe] != null) {\n entries[_SRe] = input[_SRe];\n }\n return entries;\n}, \"se_CreateVpcEndpointRequest\");\nvar se_CreateVpcEndpointServiceConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ARc] != null) {\n entries[_ARc] = input[_ARc];\n }\n if (input[_PDN] != null) {\n entries[_PDN] = input[_PDN];\n }\n if (input[_NLBAe] != null) {\n const memberEntries = se_ValueStringList(input[_NLBAe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GLBA] != null) {\n const memberEntries = se_ValueStringList(input[_GLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GatewayLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIAT] != null) {\n const memberEntries = se_ValueStringList(input[_SIAT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SupportedIpAddressType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SRu] != null) {\n const memberEntries = se_ValueStringList(input[_SRu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SupportedRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVpcEndpointServiceConfigurationRequest\");\nvar se_CreateVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PRee] != null) {\n entries[_PRee] = input[_PRee];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_PVI] != null) {\n entries[_PVI] = input[_PVI];\n }\n if (input[_POI] != null) {\n entries[_POI] = input[_POI];\n }\n return entries;\n}, \"se_CreateVpcPeeringConnectionRequest\");\nvar se_CreateVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_IPpv] != null) {\n entries[_IPpv] = input[_IPpv];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_IIPIp] != null) {\n entries[_IIPIp] = input[_IIPIp];\n }\n if (input[_INLp] != null) {\n entries[_INLp] = input[_INLp];\n }\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n if (input[_INL] != null) {\n entries[_INL] = input[_INL];\n }\n if (input[_ICBNBG] != null) {\n entries[_ICBNBG] = input[_ICBNBG];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITns] != null) {\n entries[_ITns] = input[_ITns];\n }\n if (input[_APICB] != null) {\n entries[_APICB] = input[_APICB];\n }\n return entries;\n}, \"se_CreateVpcRequest\");\nvar se_CreateVpnConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIu] != null) {\n entries[_CGIu] = input[_CGIu];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Op] != null) {\n const memberEntries = se_VpnConnectionOptionsSpecification(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVpnConnectionRequest\");\nvar se_CreateVpnConnectionRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n return entries;\n}, \"se_CreateVpnConnectionRouteRequest\");\nvar se_CreateVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_CreateVpnGatewayRequest\");\nvar se_CreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CCp] != null) {\n entries[_CCp] = input[_CCp];\n }\n return entries;\n}, \"se_CreditSpecificationRequest\");\nvar se_CustomerGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`CustomerGatewayId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_CustomerGatewayIdStringList\");\nvar se_DataQueries = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_DataQuery(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_DataQueries\");\nvar se_DataQuery = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Id] != null) {\n entries[_Id] = input[_Id];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_Met] != null) {\n entries[_Met] = input[_Met];\n }\n if (input[_Sta] != null) {\n entries[_Sta] = input[_Sta];\n }\n if (input[_Per] != null) {\n entries[_Per] = input[_Per];\n }\n return entries;\n}, \"se_DataQuery\");\nvar se_DedicatedHostIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DedicatedHostIdList\");\nvar se_DeleteCarrierGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGI] != null) {\n entries[_CGI] = input[_CGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCarrierGatewayRequest\");\nvar se_DeleteClientVpnEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteClientVpnEndpointRequest\");\nvar se_DeleteClientVpnRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_TVSI] != null) {\n entries[_TVSI] = input[_TVSI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteClientVpnRouteRequest\");\nvar se_DeleteCoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CPIo] != null) {\n entries[_CPIo] = input[_CPIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCoipCidrRequest\");\nvar se_DeleteCoipPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CPIo] != null) {\n entries[_CPIo] = input[_CPIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCoipPoolRequest\");\nvar se_DeleteCustomerGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIu] != null) {\n entries[_CGIu] = input[_CGIu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteCustomerGatewayRequest\");\nvar se_DeleteDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOI] != null) {\n entries[_DOI] = input[_DOI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteDhcpOptionsRequest\");\nvar se_DeleteEgressOnlyInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EOIGI] != null) {\n entries[_EOIGI] = input[_EOIGI];\n }\n return entries;\n}, \"se_DeleteEgressOnlyInternetGatewayRequest\");\nvar se_DeleteFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FI] != null) {\n const memberEntries = se_FleetIdSet(input[_FI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TI] != null) {\n entries[_TI] = input[_TI];\n }\n return entries;\n}, \"se_DeleteFleetsRequest\");\nvar se_DeleteFlowLogsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FLI] != null) {\n const memberEntries = se_FlowLogIdList(input[_FLI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FlowLogId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteFlowLogsRequest\");\nvar se_DeleteFpgaImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n return entries;\n}, \"se_DeleteFpgaImageRequest\");\nvar se_DeleteInstanceConnectEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ICEI] != null) {\n entries[_ICEI] = input[_ICEI];\n }\n return entries;\n}, \"se_DeleteInstanceConnectEndpointRequest\");\nvar se_DeleteInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FD] != null) {\n entries[_FD] = input[_FD];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n return entries;\n}, \"se_DeleteInstanceEventWindowRequest\");\nvar se_DeleteInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGI] != null) {\n entries[_IGI] = input[_IGI];\n }\n return entries;\n}, \"se_DeleteInternetGatewayRequest\");\nvar se_DeleteIpamExternalResourceVerificationTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IERVTI] != null) {\n entries[_IERVTI] = input[_IERVTI];\n }\n return entries;\n}, \"se_DeleteIpamExternalResourceVerificationTokenRequest\");\nvar se_DeleteIpamPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_Ca] != null) {\n entries[_Ca] = input[_Ca];\n }\n return entries;\n}, \"se_DeleteIpamPoolRequest\");\nvar se_DeleteIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_Ca] != null) {\n entries[_Ca] = input[_Ca];\n }\n return entries;\n}, \"se_DeleteIpamRequest\");\nvar se_DeleteIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n return entries;\n}, \"se_DeleteIpamResourceDiscoveryRequest\");\nvar se_DeleteIpamScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n return entries;\n}, \"se_DeleteIpamScopeRequest\");\nvar se_DeleteKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_KPI] != null) {\n entries[_KPI] = input[_KPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteKeyPairRequest\");\nvar se_DeleteLaunchTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n return entries;\n}, \"se_DeleteLaunchTemplateRequest\");\nvar se_DeleteLaunchTemplateVersionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_Ve] != null) {\n const memberEntries = se_VersionStringList(input[_Ve], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteLaunchTemplateVersionsRequest\");\nvar se_DeleteLocalGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteRequest\");\nvar se_DeleteLocalGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteTableRequest\");\nvar se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVIGAI] != null) {\n entries[_LGRTVIGAI] = input[_LGRTVIGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest\");\nvar se_DeleteLocalGatewayRouteTableVpcAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVAI] != null) {\n entries[_LGRTVAI] = input[_LGRTVAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayRouteTableVpcAssociationRequest\");\nvar se_DeleteLocalGatewayVirtualInterfaceGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayVirtualInterfaceGroupRequest\");\nvar se_DeleteLocalGatewayVirtualInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVII] != null) {\n entries[_LGVII] = input[_LGVII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteLocalGatewayVirtualInterfaceRequest\");\nvar se_DeleteManagedPrefixListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n return entries;\n}, \"se_DeleteManagedPrefixListRequest\");\nvar se_DeleteNatGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n return entries;\n}, \"se_DeleteNatGatewayRequest\");\nvar se_DeleteNetworkAclEntryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_Eg] != null) {\n entries[_Eg] = input[_Eg];\n }\n return entries;\n}, \"se_DeleteNetworkAclEntryRequest\");\nvar se_DeleteNetworkAclRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n return entries;\n}, \"se_DeleteNetworkAclRequest\");\nvar se_DeleteNetworkInsightsAccessScopeAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASAI] != null) {\n entries[_NIASAI] = input[_NIASAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsAccessScopeAnalysisRequest\");\nvar se_DeleteNetworkInsightsAccessScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsAccessScopeRequest\");\nvar se_DeleteNetworkInsightsAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIAI] != null) {\n entries[_NIAI] = input[_NIAI];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsAnalysisRequest\");\nvar se_DeleteNetworkInsightsPathRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIPI] != null) {\n entries[_NIPI] = input[_NIPI];\n }\n return entries;\n}, \"se_DeleteNetworkInsightsPathRequest\");\nvar se_DeleteNetworkInterfacePermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPIe] != null) {\n entries[_NIPIe] = input[_NIPIe];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteNetworkInterfacePermissionRequest\");\nvar se_DeleteNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n return entries;\n}, \"se_DeleteNetworkInterfaceRequest\");\nvar se_DeletePlacementGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_DeletePlacementGroupRequest\");\nvar se_DeletePublicIpv4PoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_DeletePublicIpv4PoolRequest\");\nvar se_DeleteQueuedReservedInstancesIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DeleteQueuedReservedInstancesIdList\");\nvar se_DeleteQueuedReservedInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIIes] != null) {\n const memberEntries = se_DeleteQueuedReservedInstancesIdList(input[_RIIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteQueuedReservedInstancesRequest\");\nvar se_DeleteRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_DICB] != null) {\n entries[_DICB] = input[_DICB];\n }\n return entries;\n}, \"se_DeleteRouteRequest\");\nvar se_DeleteRouteServerEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSEI] != null) {\n entries[_RSEI] = input[_RSEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteRouteServerEndpointRequest\");\nvar se_DeleteRouteServerPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSPI] != null) {\n entries[_RSPI] = input[_RSPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteRouteServerPeerRequest\");\nvar se_DeleteRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteRouteServerRequest\");\nvar se_DeleteRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n return entries;\n}, \"se_DeleteRouteTableRequest\");\nvar se_DeleteSecurityGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSecurityGroupRequest\");\nvar se_DeleteSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSnapshotRequest\");\nvar se_DeleteSpotDatafeedSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSpotDatafeedSubscriptionRequest\");\nvar se_DeleteSubnetCidrReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCRIu] != null) {\n entries[_SCRIu] = input[_SCRIu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSubnetCidrReservationRequest\");\nvar se_DeleteSubnetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteSubnetRequest\");\nvar se_DeleteTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Re] != null) {\n const memberEntries = se_ResourceIdList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteTagsRequest\");\nvar se_DeleteTrafficMirrorFilterRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorFilterRequest\");\nvar se_DeleteTrafficMirrorFilterRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFRI] != null) {\n entries[_TMFRI] = input[_TMFRI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorFilterRuleRequest\");\nvar se_DeleteTrafficMirrorSessionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMSI] != null) {\n entries[_TMSI] = input[_TMSI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorSessionRequest\");\nvar se_DeleteTrafficMirrorTargetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMTI] != null) {\n entries[_TMTI] = input[_TMTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTrafficMirrorTargetRequest\");\nvar se_DeleteTransitGatewayConnectPeerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGCPI] != null) {\n entries[_TGCPI] = input[_TGCPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayConnectPeerRequest\");\nvar se_DeleteTransitGatewayConnectRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayConnectRequest\");\nvar se_DeleteTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayMulticastDomainRequest\");\nvar se_DeleteTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayPeeringAttachmentRequest\");\nvar se_DeleteTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayPolicyTableRequest\");\nvar se_DeleteTransitGatewayPrefixListReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayPrefixListReferenceRequest\");\nvar se_DeleteTransitGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRequest\");\nvar se_DeleteTransitGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRouteRequest\");\nvar se_DeleteTransitGatewayRouteTableAnnouncementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTAI] != null) {\n entries[_TGRTAI] = input[_TGRTAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRouteTableAnnouncementRequest\");\nvar se_DeleteTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayRouteTableRequest\");\nvar se_DeleteTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteTransitGatewayVpcAttachmentRequest\");\nvar se_DeleteVerifiedAccessEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessEndpointRequest\");\nvar se_DeleteVerifiedAccessGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessGroupRequest\");\nvar se_DeleteVerifiedAccessInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessInstanceRequest\");\nvar se_DeleteVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_DeleteVerifiedAccessTrustProviderRequest\");\nvar se_DeleteVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVolumeRequest\");\nvar se_DeleteVpcBlockPublicAccessExclusionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EIxc] != null) {\n entries[_EIxc] = input[_EIxc];\n }\n return entries;\n}, \"se_DeleteVpcBlockPublicAccessExclusionRequest\");\nvar se_DeleteVpcEndpointConnectionNotificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CNIo] != null) {\n const memberEntries = se_ConnectionNotificationIdsList(input[_CNIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionNotificationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteVpcEndpointConnectionNotificationsRequest\");\nvar se_DeleteVpcEndpointServiceConfigurationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIer] != null) {\n const memberEntries = se_VpcEndpointServiceIdList(input[_SIer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteVpcEndpointServiceConfigurationsRequest\");\nvar se_DeleteVpcEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeleteVpcEndpointsRequest\");\nvar se_DeleteVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_DeleteVpcPeeringConnectionRequest\");\nvar se_DeleteVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVpcRequest\");\nvar se_DeleteVpnConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVpnConnectionRequest\");\nvar se_DeleteVpnConnectionRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n return entries;\n}, \"se_DeleteVpnConnectionRouteRequest\");\nvar se_DeleteVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeleteVpnGatewayRequest\");\nvar se_DeprovisionByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeprovisionByoipCidrRequest\");\nvar se_DeprovisionIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n return entries;\n}, \"se_DeprovisionIpamByoasnRequest\");\nvar se_DeprovisionIpamPoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_DeprovisionIpamPoolCidrRequest\");\nvar se_DeprovisionPublicIpv4PoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_DeprovisionPublicIpv4PoolCidrRequest\");\nvar se_DeregisterImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeregisterImageRequest\");\nvar se_DeregisterInstanceEventNotificationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITA] != null) {\n const memberEntries = se_DeregisterInstanceTagAttributeRequest(input[_ITA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagAttribute.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeregisterInstanceEventNotificationAttributesRequest\");\nvar se_DeregisterInstanceTagAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IATOI] != null) {\n entries[_IATOI] = input[_IATOI];\n }\n if (input[_ITK] != null) {\n const memberEntries = se_InstanceTagKeySet(input[_ITK], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagKey.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeregisterInstanceTagAttributeRequest\");\nvar se_DeregisterTransitGatewayMulticastGroupMembersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeregisterTransitGatewayMulticastGroupMembersRequest\");\nvar se_DeregisterTransitGatewayMulticastGroupSourcesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DeregisterTransitGatewayMulticastGroupSourcesRequest\");\nvar se_DescribeAccountAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AN] != null) {\n const memberEntries = se_AccountAttributeNameStringList(input[_AN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AttributeName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeAccountAttributesRequest\");\nvar se_DescribeAddressesAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIds(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAddressesAttributeRequest\");\nvar se_DescribeAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIu] != null) {\n const memberEntries = se_PublicIpStringList(input[_PIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PublicIp.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIdList(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeAddressesRequest\");\nvar se_DescribeAddressTransfersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIll] != null) {\n const memberEntries = se_AllocationIdList(input[_AIll], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllocationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAddressTransfersRequest\");\nvar se_DescribeAggregateIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAggregateIdFormatRequest\");\nvar se_DescribeAvailabilityZonesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ZN] != null) {\n const memberEntries = se_ZoneNameStringList(input[_ZN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ZoneName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ZI] != null) {\n const memberEntries = se_ZoneIdStringList(input[_ZI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ZoneId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AAZ] != null) {\n entries[_AAZ] = input[_AAZ];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeAvailabilityZonesRequest\");\nvar se_DescribeAwsNetworkPerformanceMetricSubscriptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeAwsNetworkPerformanceMetricSubscriptionsRequest\");\nvar se_DescribeBundleTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BIun] != null) {\n const memberEntries = se_BundleIdStringList(input[_BIun], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BundleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeBundleTasksRequest\");\nvar se_DescribeByoipCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeByoipCidrsRequest\");\nvar se_DescribeCapacityBlockExtensionHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRIa] != null) {\n const memberEntries = se_CapacityReservationIdSet(input[_CRIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityBlockExtensionHistoryRequest\");\nvar se_DescribeCapacityBlockExtensionOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CBEDH] != null) {\n entries[_CBEDH] = input[_CBEDH];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeCapacityBlockExtensionOfferingsRequest\");\nvar se_DescribeCapacityBlockOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_SDR] != null) {\n entries[_SDR] = (0, import_smithy_client.serializeDateTime)(input[_SDR]);\n }\n if (input[_EDR] != null) {\n entries[_EDR] = (0, import_smithy_client.serializeDateTime)(input[_EDR]);\n }\n if (input[_CDH] != null) {\n entries[_CDH] = input[_CDH];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeCapacityBlockOfferingsRequest\");\nvar se_DescribeCapacityReservationBillingRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRIa] != null) {\n const memberEntries = se_CapacityReservationIdSet(input[_CRIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ro] != null) {\n entries[_Ro] = input[_Ro];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityReservationBillingRequestsRequest\");\nvar se_DescribeCapacityReservationFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRFI] != null) {\n const memberEntries = se_CapacityReservationFleetIdSet(input[_CRFI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationFleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityReservationFleetsRequest\");\nvar se_DescribeCapacityReservationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRIa] != null) {\n const memberEntries = se_CapacityReservationIdSet(input[_CRIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCapacityReservationsRequest\");\nvar se_DescribeCarrierGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIa] != null) {\n const memberEntries = se_CarrierGatewayIdSet(input[_CGIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CarrierGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCarrierGatewaysRequest\");\nvar se_DescribeClassicLinkInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeClassicLinkInstancesRequest\");\nvar se_DescribeClientVpnAuthorizationRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeClientVpnAuthorizationRulesRequest\");\nvar se_DescribeClientVpnConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnConnectionsRequest\");\nvar se_DescribeClientVpnEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEIl] != null) {\n const memberEntries = se_ClientVpnEndpointIdList(input[_CVEIl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientVpnEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnEndpointsRequest\");\nvar se_DescribeClientVpnRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnRoutesRequest\");\nvar se_DescribeClientVpnTargetNetworksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_AIs] != null) {\n const memberEntries = se_ValueStringList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeClientVpnTargetNetworksRequest\");\nvar se_DescribeCoipPoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIoo] != null) {\n const memberEntries = se_CoipPoolIdSet(input[_PIoo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCoipPoolsRequest\");\nvar se_DescribeConversionTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTIo] != null) {\n const memberEntries = se_ConversionIdStringList(input[_CTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConversionTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeConversionTasksRequest\");\nvar se_DescribeCustomerGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CGIus] != null) {\n const memberEntries = se_CustomerGatewayIdStringList(input[_CGIus], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CustomerGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeCustomerGatewaysRequest\");\nvar se_DescribeDeclarativePoliciesReportsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_RIepo] != null) {\n const memberEntries = se_ValueStringList(input[_RIepo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReportId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeDeclarativePoliciesReportsRequest\");\nvar se_DescribeDhcpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOIh] != null) {\n const memberEntries = se_DhcpOptionsIdStringList(input[_DOIh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DhcpOptionsId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeDhcpOptionsRequest\");\nvar se_DescribeEgressOnlyInternetGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EOIGIg] != null) {\n const memberEntries = se_EgressOnlyInternetGatewayIdList(input[_EOIGIg], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EgressOnlyInternetGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeEgressOnlyInternetGatewaysRequest\");\nvar se_DescribeElasticGpusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EGI] != null) {\n const memberEntries = se_ElasticGpuIdSet(input[_EGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticGpuId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeElasticGpusRequest\");\nvar se_DescribeExportImageTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EITI] != null) {\n const memberEntries = se_ExportImageTaskIdList(input[_EITI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExportImageTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeExportImageTasksRequest\");\nvar se_DescribeExportTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ETIx] != null) {\n const memberEntries = se_ExportTaskIdStringList(input[_ETIx], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExportTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeExportTasksRequest\");\nvar se_DescribeFastLaunchImagesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IImag] != null) {\n const memberEntries = se_FastLaunchImageIdList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeFastLaunchImagesRequest\");\nvar se_DescribeFastSnapshotRestoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeFastSnapshotRestoresRequest\");\nvar se_DescribeFleetHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ETv] != null) {\n entries[_ETv] = input[_ETv];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_FIl] != null) {\n entries[_FIl] = input[_FIl];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n return entries;\n}, \"se_DescribeFleetHistoryRequest\");\nvar se_DescribeFleetInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_FIl] != null) {\n entries[_FIl] = input[_FIl];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeFleetInstancesRequest\");\nvar se_DescribeFleetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_FI] != null) {\n const memberEntries = se_FleetIdSet(input[_FI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FleetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeFleetsRequest\");\nvar se_DescribeFlowLogsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FLI] != null) {\n const memberEntries = se_FlowLogIdList(input[_FLI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FlowLogId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeFlowLogsRequest\");\nvar se_DescribeFpgaImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_DescribeFpgaImageAttributeRequest\");\nvar se_DescribeFpgaImagesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FIIp] != null) {\n const memberEntries = se_FpgaImageIdList(input[_FIIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FpgaImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ow] != null) {\n const memberEntries = se_OwnerStringList(input[_Ow], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Owner.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeFpgaImagesRequest\");\nvar se_DescribeHostReservationOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MD] != null) {\n entries[_MD] = input[_MD];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_MDi] != null) {\n entries[_MDi] = input[_MDi];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n return entries;\n}, \"se_DescribeHostReservationOfferingsRequest\");\nvar se_DescribeHostReservationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HRIS] != null) {\n const memberEntries = se_HostReservationIdSet(input[_HRIS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostReservationIdSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeHostReservationsRequest\");\nvar se_DescribeHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeHostsRequest\");\nvar se_DescribeIamInstanceProfileAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIs] != null) {\n const memberEntries = se_AssociationIdList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeIamInstanceProfileAssociationsRequest\");\nvar se_DescribeIdentityIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n return entries;\n}, \"se_DescribeIdentityIdFormatRequest\");\nvar se_DescribeIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n return entries;\n}, \"se_DescribeIdFormatRequest\");\nvar se_DescribeImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeImageAttributeRequest\");\nvar se_DescribeImagesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EU] != null) {\n const memberEntries = se_ExecutableByStringList(input[_EU], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExecutableBy.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IImag] != null) {\n const memberEntries = se_ImageIdStringList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ow] != null) {\n const memberEntries = se_OwnerStringList(input[_Ow], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Owner.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ID] != null) {\n entries[_ID] = input[_ID];\n }\n if (input[_IDn] != null) {\n entries[_IDn] = input[_IDn];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeImagesRequest\");\nvar se_DescribeImportImageTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filters.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITIm] != null) {\n const memberEntries = se_ImportTaskIdList(input[_ITIm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImportTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeImportImageTasksRequest\");\nvar se_DescribeImportSnapshotTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filters.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITIm] != null) {\n const memberEntries = se_ImportSnapshotTaskIdList(input[_ITIm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImportTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeImportSnapshotTasksRequest\");\nvar se_DescribeInstanceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_DescribeInstanceAttributeRequest\");\nvar se_DescribeInstanceConnectEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ICEIn] != null) {\n const memberEntries = se_ValueStringList(input[_ICEIn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceConnectEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeInstanceConnectEndpointsRequest\");\nvar se_DescribeInstanceCreditSpecificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceCreditSpecificationsRequest\");\nvar se_DescribeInstanceEventNotificationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeInstanceEventNotificationAttributesRequest\");\nvar se_DescribeInstanceEventWindowsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IEWIn] != null) {\n const memberEntries = se_InstanceEventWindowIdSet(input[_IEWIn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceEventWindowId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceEventWindowsRequest\");\nvar se_DescribeInstanceImageMetadataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeInstanceImageMetadataRequest\");\nvar se_DescribeInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeInstancesRequest\");\nvar se_DescribeInstanceStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAI] != null) {\n entries[_IAI] = input[_IAI];\n }\n return entries;\n}, \"se_DescribeInstanceStatusRequest\");\nvar se_DescribeInstanceTopologyGroupNameSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DescribeInstanceTopologyGroupNameSet\");\nvar se_DescribeInstanceTopologyInstanceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DescribeInstanceTopologyInstanceIdSet\");\nvar se_DescribeInstanceTopologyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_IIns] != null) {\n const memberEntries = se_DescribeInstanceTopologyInstanceIdSet(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GNr] != null) {\n const memberEntries = se_DescribeInstanceTopologyGroupNameSet(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeInstanceTopologyRequest\");\nvar se_DescribeInstanceTypeOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LT] != null) {\n entries[_LT] = input[_LT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceTypeOfferingsRequest\");\nvar se_DescribeInstanceTypesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITnst] != null) {\n const memberEntries = se_RequestInstanceTypeList(input[_ITnst], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeInstanceTypesRequest\");\nvar se_DescribeInternetGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGIn] != null) {\n const memberEntries = se_InternetGatewayIdList(input[_IGIn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InternetGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeInternetGatewaysRequest\");\nvar se_DescribeIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeIpamByoasnRequest\");\nvar se_DescribeIpamExternalResourceVerificationTokensRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_IERVTIp] != null) {\n const memberEntries = se_ValueStringList(input[_IERVTIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamExternalResourceVerificationTokenId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamExternalResourceVerificationTokensRequest\");\nvar se_DescribeIpamPoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_IPIp] != null) {\n const memberEntries = se_ValueStringList(input[_IPIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamPoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamPoolsRequest\");\nvar se_DescribeIpamResourceDiscoveriesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDIp] != null) {\n const memberEntries = se_ValueStringList(input[_IRDIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamResourceDiscoveryId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamResourceDiscoveriesRequest\");\nvar se_DescribeIpamResourceDiscoveryAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDAI] != null) {\n const memberEntries = se_ValueStringList(input[_IRDAI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamResourceDiscoveryAssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamResourceDiscoveryAssociationsRequest\");\nvar se_DescribeIpamScopesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_ISIp] != null) {\n const memberEntries = se_ValueStringList(input[_ISIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamScopeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamScopesRequest\");\nvar se_DescribeIpamsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_IIpa] != null) {\n const memberEntries = se_ValueStringList(input[_IIpa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpamsRequest\");\nvar se_DescribeIpv6PoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIoo] != null) {\n const memberEntries = se_Ipv6PoolIdList(input[_PIoo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeIpv6PoolsRequest\");\nvar se_DescribeKeyPairsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KNe] != null) {\n const memberEntries = se_KeyNameStringList(input[_KNe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `KeyName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_KPIe] != null) {\n const memberEntries = se_KeyPairIdStringList(input[_KPIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `KeyPairId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPK] != null) {\n entries[_IPK] = input[_IPK];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeKeyPairsRequest\");\nvar se_DescribeLaunchTemplatesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTIa] != null) {\n const memberEntries = se_LaunchTemplateIdStringList(input[_LTIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LTNa] != null) {\n const memberEntries = se_LaunchTemplateNameStringList(input[_LTNa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeLaunchTemplatesRequest\");\nvar se_DescribeLaunchTemplateVersionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_Ve] != null) {\n const memberEntries = se_VersionStringList(input[_Ve], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MVi] != null) {\n entries[_MVi] = input[_MVi];\n }\n if (input[_MVa] != null) {\n entries[_MVa] = input[_MVa];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_DescribeLaunchTemplateVersionsRequest\");\nvar se_DescribeLocalGatewayRouteTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTIo] != null) {\n const memberEntries = se_LocalGatewayRouteTableIdSet(input[_LGRTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayRouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayRouteTablesRequest\");\nvar se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVIGAIo] != null) {\n const memberEntries = se_LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet(input[_LGRTVIGAIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayRouteTableVirtualInterfaceGroupAssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest\");\nvar se_DescribeLocalGatewayRouteTableVpcAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTVAIo] != null) {\n const memberEntries = se_LocalGatewayRouteTableVpcAssociationIdSet(input[_LGRTVAIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayRouteTableVpcAssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayRouteTableVpcAssociationsRequest\");\nvar se_DescribeLocalGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGIo] != null) {\n const memberEntries = se_LocalGatewayIdSet(input[_LGIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewaysRequest\");\nvar se_DescribeLocalGatewayVirtualInterfaceGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIGIo] != null) {\n const memberEntries = se_LocalGatewayVirtualInterfaceGroupIdSet(input[_LGVIGIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayVirtualInterfaceGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayVirtualInterfaceGroupsRequest\");\nvar se_DescribeLocalGatewayVirtualInterfacesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGVIIo] != null) {\n const memberEntries = se_LocalGatewayVirtualInterfaceIdSet(input[_LGVIIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalGatewayVirtualInterfaceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLocalGatewayVirtualInterfacesRequest\");\nvar se_DescribeLockedSnapshotsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SIna] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SIna], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeLockedSnapshotsRequest\");\nvar se_DescribeMacHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeMacHostsRequest\");\nvar se_DescribeManagedPrefixListsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_PLIr] != null) {\n const memberEntries = se_ValueStringList(input[_PLIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrefixListId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeManagedPrefixListsRequest\");\nvar se_DescribeMovingAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PIu] != null) {\n const memberEntries = se_ValueStringList(input[_PIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PublicIp.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeMovingAddressesRequest\");\nvar se_DescribeNatGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fil] != null) {\n const memberEntries = se_FilterList(input[_Fil], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NGIa] != null) {\n const memberEntries = se_NatGatewayIdStringList(input[_NGIa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NatGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNatGatewaysRequest\");\nvar se_DescribeNetworkAclsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAIe] != null) {\n const memberEntries = se_NetworkAclIdStringList(input[_NAIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkAclId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeNetworkAclsRequest\");\nvar se_DescribeNetworkInsightsAccessScopeAnalysesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASAIe] != null) {\n const memberEntries = se_NetworkInsightsAccessScopeAnalysisIdList(input[_NIASAIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsAccessScopeAnalysisId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n if (input[_ASTB] != null) {\n entries[_ASTB] = (0, import_smithy_client.serializeDateTime)(input[_ASTB]);\n }\n if (input[_ASTE] != null) {\n entries[_ASTE] = (0, import_smithy_client.serializeDateTime)(input[_ASTE]);\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsAccessScopeAnalysesRequest\");\nvar se_DescribeNetworkInsightsAccessScopesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASIe] != null) {\n const memberEntries = se_NetworkInsightsAccessScopeIdList(input[_NIASIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsAccessScopeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsAccessScopesRequest\");\nvar se_DescribeNetworkInsightsAnalysesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIAIe] != null) {\n const memberEntries = se_NetworkInsightsAnalysisIdList(input[_NIAIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsAnalysisId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NIPI] != null) {\n entries[_NIPI] = input[_NIPI];\n }\n if (input[_AST] != null) {\n entries[_AST] = (0, import_smithy_client.serializeDateTime)(input[_AST]);\n }\n if (input[_AET] != null) {\n entries[_AET] = (0, import_smithy_client.serializeDateTime)(input[_AET]);\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsAnalysesRequest\");\nvar se_DescribeNetworkInsightsPathsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPIet] != null) {\n const memberEntries = se_NetworkInsightsPathIdList(input[_NIPIet], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInsightsPathId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeNetworkInsightsPathsRequest\");\nvar se_DescribeNetworkInterfaceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_DescribeNetworkInterfaceAttributeRequest\");\nvar se_DescribeNetworkInterfacePermissionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPIetw] != null) {\n const memberEntries = se_NetworkInterfacePermissionIdList(input[_NIPIetw], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfacePermissionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeNetworkInterfacePermissionsRequest\");\nvar se_DescribeNetworkInterfacesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_NetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeNetworkInterfacesRequest\");\nvar se_DescribeOutpostLagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OLIu] != null) {\n const memberEntries = se_OutpostLagIdSet(input[_OLIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OutpostLagId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeOutpostLagsRequest\");\nvar se_DescribePlacementGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIro] != null) {\n const memberEntries = se_PlacementGroupIdStringList(input[_GIro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GNr] != null) {\n const memberEntries = se_PlacementGroupStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribePlacementGroupsRequest\");\nvar se_DescribePrefixListsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_PLIr] != null) {\n const memberEntries = se_PrefixListResourceIdStringList(input[_PLIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrefixListId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribePrefixListsRequest\");\nvar se_DescribePrincipalIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Re] != null) {\n const memberEntries = se_ResourceList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Resource.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribePrincipalIdFormatRequest\");\nvar se_DescribePublicIpv4PoolsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIoo] != null) {\n const memberEntries = se_PublicIpv4PoolIdStringList(input[_PIoo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribePublicIpv4PoolsRequest\");\nvar se_DescribeRegionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RNe] != null) {\n const memberEntries = se_RegionNameStringList(input[_RNe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RegionName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ARll] != null) {\n entries[_ARll] = input[_ARll];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeRegionsRequest\");\nvar se_DescribeReplaceRootVolumeTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RRVTI] != null) {\n const memberEntries = se_ReplaceRootVolumeTaskIds(input[_RRVTI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReplaceRootVolumeTaskId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeReplaceRootVolumeTasksRequest\");\nvar se_DescribeReservedInstancesListingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIIe] != null) {\n entries[_RIIe] = input[_RIIe];\n }\n if (input[_RILI] != null) {\n entries[_RILI] = input[_RILI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeReservedInstancesListingsRequest\");\nvar se_DescribeReservedInstancesModificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIMI] != null) {\n const memberEntries = se_ReservedInstancesModificationIdStringList(input[_RIMI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesModificationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeReservedInstancesModificationsRequest\");\nvar se_DescribeReservedInstancesOfferingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_IM] != null) {\n entries[_IM] = input[_IM];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_MD] != null) {\n entries[_MD] = input[_MD];\n }\n if (input[_MIC] != null) {\n entries[_MIC] = input[_MIC];\n }\n if (input[_MDi] != null) {\n entries[_MDi] = input[_MDi];\n }\n if (input[_OC] != null) {\n entries[_OC] = input[_OC];\n }\n if (input[_PDr] != null) {\n entries[_PDr] = input[_PDr];\n }\n if (input[_RIOI] != null) {\n const memberEntries = se_ReservedInstancesOfferingIdStringList(input[_RIOI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesOfferingId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITns] != null) {\n entries[_ITns] = input[_ITns];\n }\n if (input[_OT] != null) {\n entries[_OT] = input[_OT];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeReservedInstancesOfferingsRequest\");\nvar se_DescribeReservedInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OC] != null) {\n entries[_OC] = input[_OC];\n }\n if (input[_RIIes] != null) {\n const memberEntries = se_ReservedInstancesIdStringList(input[_RIIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OT] != null) {\n entries[_OT] = input[_OT];\n }\n return entries;\n}, \"se_DescribeReservedInstancesRequest\");\nvar se_DescribeRouteServerEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSEIo] != null) {\n const memberEntries = se_RouteServerEndpointIdsList(input[_RSEIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteServerEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeRouteServerEndpointsRequest\");\nvar se_DescribeRouteServerPeersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSPIo] != null) {\n const memberEntries = se_RouteServerPeerIdsList(input[_RSPIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteServerPeerId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeRouteServerPeersRequest\");\nvar se_DescribeRouteServersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIou] != null) {\n const memberEntries = se_RouteServerIdsList(input[_RSIou], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteServerId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeRouteServersRequest\");\nvar se_DescribeRouteTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTIo] != null) {\n const memberEntries = se_RouteTableIdStringList(input[_RTIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeRouteTablesRequest\");\nvar se_DescribeScheduledInstanceAvailabilityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FSSTR] != null) {\n const memberEntries = se_SlotDateTimeRangeRequest(input[_FSSTR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FirstSlotStartTimeRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_MSDIH] != null) {\n entries[_MSDIH] = input[_MSDIH];\n }\n if (input[_MSDIHi] != null) {\n entries[_MSDIHi] = input[_MSDIHi];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Rec] != null) {\n const memberEntries = se_ScheduledInstanceRecurrenceRequest(input[_Rec], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Recurrence.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeScheduledInstanceAvailabilityRequest\");\nvar se_DescribeScheduledInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SIIc] != null) {\n const memberEntries = se_ScheduledInstanceIdRequestSet(input[_SIIc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ScheduledInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SSTR] != null) {\n const memberEntries = se_SlotStartTimeRangeRequest(input[_SSTR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SlotStartTimeRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeScheduledInstancesRequest\");\nvar se_DescribeSecurityGroupReferencesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n const memberEntries = se_GroupIds(input[_GIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSecurityGroupReferencesRequest\");\nvar se_DescribeSecurityGroupRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGRI] != null) {\n const memberEntries = se_SecurityGroupRuleIdList(input[_SGRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSecurityGroupRulesRequest\");\nvar se_DescribeSecurityGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIro] != null) {\n const memberEntries = se_GroupIdStringList(input[_GIro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GNr] != null) {\n const memberEntries = se_GroupNameStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSecurityGroupsRequest\");\nvar se_DescribeSecurityGroupVpcAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSecurityGroupVpcAssociationsRequest\");\nvar se_DescribeServiceLinkVirtualInterfacesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SLVII] != null) {\n const memberEntries = se_ServiceLinkVirtualInterfaceIdSet(input[_SLVII], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceLinkVirtualInterfaceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeServiceLinkVirtualInterfacesRequest\");\nvar se_DescribeSnapshotAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSnapshotAttributeRequest\");\nvar se_DescribeSnapshotsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_OIw] != null) {\n const memberEntries = se_OwnerStringList(input[_OIw], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Owner.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RBUI] != null) {\n const memberEntries = se_RestorableByStringList(input[_RBUI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RestorableBy.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIna] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SIna], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSnapshotsRequest\");\nvar se_DescribeSnapshotTierStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSnapshotTierStatusRequest\");\nvar se_DescribeSpotDatafeedSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSpotDatafeedSubscriptionRequest\");\nvar se_DescribeSpotFleetInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRIp] != null) {\n entries[_SFRIp] = input[_SFRIp];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSpotFleetInstancesRequest\");\nvar se_DescribeSpotFleetRequestHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRIp] != null) {\n entries[_SFRIp] = input[_SFRIp];\n }\n if (input[_ETv] != null) {\n entries[_ETv] = input[_ETv];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSpotFleetRequestHistoryRequest\");\nvar se_DescribeSpotFleetRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRI] != null) {\n const memberEntries = se_SpotFleetRequestIdList(input[_SFRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotFleetRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeSpotFleetRequestsRequest\");\nvar se_DescribeSpotInstanceRequestsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIRI] != null) {\n const memberEntries = se_SpotInstanceRequestIdList(input[_SIRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotInstanceRequestId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeSpotInstanceRequestsRequest\");\nvar se_DescribeSpotPriceHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_ITnst] != null) {\n const memberEntries = se_InstanceTypeList(input[_ITnst], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDro] != null) {\n const memberEntries = se_ProductDescriptionList(input[_PDro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProductDescription.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeSpotPriceHistoryRequest\");\nvar se_DescribeStaleSecurityGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DescribeStaleSecurityGroupsRequest\");\nvar se_DescribeStoreImageTasksRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IImag] != null) {\n const memberEntries = se_ImageIdList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeStoreImageTasksRequest\");\nvar se_DescribeSubnetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIu] != null) {\n const memberEntries = se_SubnetIdStringList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeSubnetsRequest\");\nvar se_DescribeTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTagsRequest\");\nvar se_DescribeTrafficMirrorFilterRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFRIr] != null) {\n const memberEntries = se_TrafficMirrorFilterRuleIdList(input[_TMFRIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorFilterRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorFilterRulesRequest\");\nvar se_DescribeTrafficMirrorFiltersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFIr] != null) {\n const memberEntries = se_TrafficMirrorFilterIdList(input[_TMFIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorFilterId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorFiltersRequest\");\nvar se_DescribeTrafficMirrorSessionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMSIr] != null) {\n const memberEntries = se_TrafficMirrorSessionIdList(input[_TMSIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorSessionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorSessionsRequest\");\nvar se_DescribeTrafficMirrorTargetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMTIr] != null) {\n const memberEntries = se_TrafficMirrorTargetIdList(input[_TMTIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrafficMirrorTargetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeTrafficMirrorTargetsRequest\");\nvar se_DescribeTransitGatewayAttachmentsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayAttachmentsRequest\");\nvar se_DescribeTransitGatewayConnectPeersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGCPIr] != null) {\n const memberEntries = se_TransitGatewayConnectPeerIdStringList(input[_TGCPIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayConnectPeerIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayConnectPeersRequest\");\nvar se_DescribeTransitGatewayConnectsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayConnectsRequest\");\nvar se_DescribeTransitGatewayMulticastDomainsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDIr] != null) {\n const memberEntries = se_TransitGatewayMulticastDomainIdStringList(input[_TGMDIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayMulticastDomainIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayMulticastDomainsRequest\");\nvar se_DescribeTransitGatewayPeeringAttachmentsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayPeeringAttachmentsRequest\");\nvar se_DescribeTransitGatewayPolicyTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTIr] != null) {\n const memberEntries = se_TransitGatewayPolicyTableIdStringList(input[_TGPTIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayPolicyTableIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayPolicyTablesRequest\");\nvar se_DescribeTransitGatewayRouteTableAnnouncementsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTAIr] != null) {\n const memberEntries = se_TransitGatewayRouteTableAnnouncementIdStringList(input[_TGRTAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayRouteTableAnnouncementIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayRouteTableAnnouncementsRequest\");\nvar se_DescribeTransitGatewayRouteTablesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTIr] != null) {\n const memberEntries = se_TransitGatewayRouteTableIdStringList(input[_TGRTIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayRouteTableIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayRouteTablesRequest\");\nvar se_DescribeTransitGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGIr] != null) {\n const memberEntries = se_TransitGatewayIdStringList(input[_TGIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewaysRequest\");\nvar se_DescribeTransitGatewayVpcAttachmentsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAIr] != null) {\n const memberEntries = se_TransitGatewayAttachmentIdStringList(input[_TGAIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayAttachmentIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeTransitGatewayVpcAttachmentsRequest\");\nvar se_DescribeTrunkInterfaceAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIs] != null) {\n const memberEntries = se_TrunkInterfaceAssociationIdList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeTrunkInterfaceAssociationsRequest\");\nvar se_DescribeVerifiedAccessEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEIe] != null) {\n const memberEntries = se_VerifiedAccessEndpointIdList(input[_VAEIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessEndpointsRequest\");\nvar se_DescribeVerifiedAccessGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGIe] != null) {\n const memberEntries = se_VerifiedAccessGroupIdList(input[_VAGIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessGroupsRequest\");\nvar se_DescribeVerifiedAccessInstanceLoggingConfigurationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAIIe] != null) {\n const memberEntries = se_VerifiedAccessInstanceIdList(input[_VAIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessInstanceLoggingConfigurationsRequest\");\nvar se_DescribeVerifiedAccessInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAIIe] != null) {\n const memberEntries = se_VerifiedAccessInstanceIdList(input[_VAIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessInstancesRequest\");\nvar se_DescribeVerifiedAccessTrustProvidersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VATPIe] != null) {\n const memberEntries = se_VerifiedAccessTrustProviderIdList(input[_VATPIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VerifiedAccessTrustProviderId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVerifiedAccessTrustProvidersRequest\");\nvar se_DescribeVolumeAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVolumeAttributeRequest\");\nvar se_DescribeVolumesModificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIol] != null) {\n const memberEntries = se_VolumeIdStringList(input[_VIol], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeVolumesModificationsRequest\");\nvar se_DescribeVolumesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIol] != null) {\n const memberEntries = se_VolumeIdStringList(input[_VIol], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeVolumesRequest\");\nvar se_DescribeVolumeStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_VIol] != null) {\n const memberEntries = se_VolumeIdStringList(input[_VIol], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVolumeStatusRequest\");\nvar se_DescribeVpcAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpcAttributeRequest\");\nvar se_DescribeVpcBlockPublicAccessExclusionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EIxcl] != null) {\n const memberEntries = se_VpcBlockPublicAccessExclusionIdList(input[_EIxcl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExclusionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_DescribeVpcBlockPublicAccessExclusionsRequest\");\nvar se_DescribeVpcBlockPublicAccessOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpcBlockPublicAccessOptionsRequest\");\nvar se_DescribeVpcClassicLinkDnsSupportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIp] != null) {\n const memberEntries = se_VpcClassicLinkIdList(input[_VIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcClassicLinkDnsSupportRequest\");\nvar se_DescribeVpcClassicLinkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIp] != null) {\n const memberEntries = se_VpcClassicLinkIdList(input[_VIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVpcClassicLinkRequest\");\nvar se_DescribeVpcEndpointAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointAssociationsRequest\");\nvar se_DescribeVpcEndpointConnectionNotificationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CNIon] != null) {\n entries[_CNIon] = input[_CNIon];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointConnectionNotificationsRequest\");\nvar se_DescribeVpcEndpointConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointConnectionsRequest\");\nvar se_DescribeVpcEndpointServiceConfigurationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIer] != null) {\n const memberEntries = se_VpcEndpointServiceIdList(input[_SIer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointServiceConfigurationsRequest\");\nvar se_DescribeVpcEndpointServicePermissionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointServicePermissionsRequest\");\nvar se_DescribeVpcEndpointServicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SNer] != null) {\n const memberEntries = se_ValueStringList(input[_SNer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SRer] != null) {\n const memberEntries = se_ValueStringList(input[_SRer], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVpcEndpointServicesRequest\");\nvar se_DescribeVpcEndpointsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_DescribeVpcEndpointsRequest\");\nvar se_DescribeVpcPeeringConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCIp] != null) {\n const memberEntries = se_VpcPeeringConnectionIdList(input[_VPCIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcPeeringConnectionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeVpcPeeringConnectionsRequest\");\nvar se_DescribeVpcsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VIp] != null) {\n const memberEntries = se_VpcIdStringList(input[_VIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpcsRequest\");\nvar se_DescribeVpnConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VCIp] != null) {\n const memberEntries = se_VpnConnectionIdStringList(input[_VCIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpnConnectionId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpnConnectionsRequest\");\nvar se_DescribeVpnGatewaysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VGIp] != null) {\n const memberEntries = se_VpnGatewayIdStringList(input[_VGIp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpnGatewayId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DescribeVpnGatewaysRequest\");\nvar se_DestinationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FF] != null) {\n entries[_FF] = input[_FF];\n }\n if (input[_HCP] != null) {\n entries[_HCP] = input[_HCP];\n }\n if (input[_PHP] != null) {\n entries[_PHP] = input[_PHP];\n }\n return entries;\n}, \"se_DestinationOptionsRequest\");\nvar se_DetachClassicLinkVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DetachClassicLinkVpcRequest\");\nvar se_DetachInternetGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGI] != null) {\n entries[_IGI] = input[_IGI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DetachInternetGatewayRequest\");\nvar se_DetachNetworkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIt] != null) {\n entries[_AIt] = input[_AIt];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n return entries;\n}, \"se_DetachNetworkInterfaceRequest\");\nvar se_DetachVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DetachVerifiedAccessTrustProviderRequest\");\nvar se_DetachVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Dev] != null) {\n entries[_Dev] = input[_Dev];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DetachVolumeRequest\");\nvar se_DetachVpnGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DetachVpnGatewayRequest\");\nvar se_DhcpOptionsIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`DhcpOptionsId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_DhcpOptionsIdStringList\");\nvar se_DirectoryServiceAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DIir] != null) {\n entries[_DIir] = input[_DIir];\n }\n return entries;\n}, \"se_DirectoryServiceAuthenticationRequest\");\nvar se_DisableAddressTransferRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableAddressTransferRequest\");\nvar se_DisableAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableAllowedImagesSettingsRequest\");\nvar se_DisableAwsNetworkPerformanceMetricSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_Met] != null) {\n entries[_Met] = input[_Met];\n }\n if (input[_Sta] != null) {\n entries[_Sta] = input[_Sta];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableAwsNetworkPerformanceMetricSubscriptionRequest\");\nvar se_DisableEbsEncryptionByDefaultRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableEbsEncryptionByDefaultRequest\");\nvar se_DisableFastLaunchRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableFastLaunchRequest\");\nvar se_DisableFastSnapshotRestoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZv] != null) {\n const memberEntries = se_AvailabilityZoneStringList(input[_AZv], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AvailabilityZone.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SSIo] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SSIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceSnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableFastSnapshotRestoresRequest\");\nvar se_DisableImageBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageBlockPublicAccessRequest\");\nvar se_DisableImageDeprecationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageDeprecationRequest\");\nvar se_DisableImageDeregistrationProtectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageDeregistrationProtectionRequest\");\nvar se_DisableImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableImageRequest\");\nvar se_DisableIpamOrganizationAdminAccountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DAAI] != null) {\n entries[_DAAI] = input[_DAAI];\n }\n return entries;\n}, \"se_DisableIpamOrganizationAdminAccountRequest\");\nvar se_DisableRouteServerPropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableRouteServerPropagationRequest\");\nvar se_DisableSerialConsoleAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableSerialConsoleAccessRequest\");\nvar se_DisableSnapshotBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableSnapshotBlockPublicAccessRequest\");\nvar se_DisableTransitGatewayRouteTablePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TGRTAI] != null) {\n entries[_TGRTAI] = input[_TGRTAI];\n }\n return entries;\n}, \"se_DisableTransitGatewayRouteTablePropagationRequest\");\nvar se_DisableVgwRoutePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisableVgwRoutePropagationRequest\");\nvar se_DisableVpcClassicLinkDnsSupportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DisableVpcClassicLinkDnsSupportRequest\");\nvar se_DisableVpcClassicLinkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DisableVpcClassicLinkRequest\");\nvar se_DisassociateAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateAddressRequest\");\nvar se_DisassociateCapacityReservationBillingOwnerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_URBOI] != null) {\n entries[_URBOI] = input[_URBOI];\n }\n return entries;\n}, \"se_DisassociateCapacityReservationBillingOwnerRequest\");\nvar se_DisassociateClientVpnTargetNetworkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateClientVpnTargetNetworkRequest\");\nvar se_DisassociateEnclaveCertificateIamRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_RAo] != null) {\n entries[_RAo] = input[_RAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateEnclaveCertificateIamRoleRequest\");\nvar se_DisassociateIamInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateIamInstanceProfileRequest\");\nvar se_DisassociateInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n if (input[_AT] != null) {\n const memberEntries = se_InstanceEventWindowDisassociationRequest(input[_AT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DisassociateInstanceEventWindowRequest\");\nvar se_DisassociateIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_DisassociateIpamByoasnRequest\");\nvar se_DisassociateIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDAIp] != null) {\n entries[_IRDAIp] = input[_IRDAIp];\n }\n return entries;\n}, \"se_DisassociateIpamResourceDiscoveryRequest\");\nvar se_DisassociateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_AIs] != null) {\n const memberEntries = se_EipAssociationIdList(input[_AIs], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssociationId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MDDS] != null) {\n entries[_MDDS] = input[_MDDS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateNatGatewayAddressRequest\");\nvar se_DisassociateRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateRouteServerRequest\");\nvar se_DisassociateRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateRouteTableRequest\");\nvar se_DisassociateSecurityGroupVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateSecurityGroupVpcRequest\");\nvar se_DisassociateSubnetCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateSubnetCidrBlockRequest\");\nvar se_DisassociateTransitGatewayMulticastDomainRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTransitGatewayMulticastDomainRequest\");\nvar se_DisassociateTransitGatewayPolicyTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTransitGatewayPolicyTableRequest\");\nvar se_DisassociateTransitGatewayRouteTableRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTransitGatewayRouteTableRequest\");\nvar se_DisassociateTrunkInterfaceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_DisassociateTrunkInterfaceRequest\");\nvar se_DisassociateVpcCidrBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_DisassociateVpcCidrBlockRequest\");\nvar se_DiskImage = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Im] != null) {\n const memberEntries = se_DiskImageDetail(input[_Im], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Image.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Vo] != null) {\n const memberEntries = se_VolumeDetail(input[_Vo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Volume.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DiskImage\");\nvar se_DiskImageDetail = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fo] != null) {\n entries[_Fo] = input[_Fo];\n }\n if (input[_By] != null) {\n entries[_By] = input[_By];\n }\n if (input[_IMU] != null) {\n entries[_IMU] = input[_IMU];\n }\n return entries;\n}, \"se_DiskImageDetail\");\nvar se_DiskImageList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_DiskImage(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_DiskImageList\");\nvar se_DnsOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRIT] != null) {\n entries[_DRIT] = input[_DRIT];\n }\n if (input[_PDOFIRE] != null) {\n entries[_PDOFIRE] = input[_PDOFIRE];\n }\n return entries;\n}, \"se_DnsOptionsSpecification\");\nvar se_DnsServersOptionsModifyStructure = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CDSu] != null) {\n const memberEntries = se_ValueStringList(input[_CDSu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CustomDnsServers.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_DnsServersOptionsModifyStructure\");\nvar se_EbsBlockDevice = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n return entries;\n}, \"se_EbsBlockDevice\");\nvar se_EbsInstanceBlockDeviceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n return entries;\n}, \"se_EbsInstanceBlockDeviceSpecification\");\nvar se_EgressOnlyInternetGatewayIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_EgressOnlyInternetGatewayIdList\");\nvar se_EipAssociationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_EipAssociationIdList\");\nvar se_ElasticGpuIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ElasticGpuIdSet\");\nvar se_ElasticGpuSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n return entries;\n}, \"se_ElasticGpuSpecification\");\nvar se_ElasticGpuSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ElasticGpuSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`ElasticGpuSpecification.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ElasticGpuSpecificationList\");\nvar se_ElasticGpuSpecifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ElasticGpuSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ElasticGpuSpecifications\");\nvar se_ElasticInferenceAccelerator = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_Cou] != null) {\n entries[_Cou] = input[_Cou];\n }\n return entries;\n}, \"se_ElasticInferenceAccelerator\");\nvar se_ElasticInferenceAccelerators = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ElasticInferenceAccelerator(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ElasticInferenceAccelerators\");\nvar se_EnableAddressTransferRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_TAI] != null) {\n entries[_TAI] = input[_TAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableAddressTransferRequest\");\nvar se_EnableAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AISS] != null) {\n entries[_AISS] = input[_AISS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableAllowedImagesSettingsRequest\");\nvar se_EnableAwsNetworkPerformanceMetricSubscriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_Met] != null) {\n entries[_Met] = input[_Met];\n }\n if (input[_Sta] != null) {\n entries[_Sta] = input[_Sta];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableAwsNetworkPerformanceMetricSubscriptionRequest\");\nvar se_EnableEbsEncryptionByDefaultRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableEbsEncryptionByDefaultRequest\");\nvar se_EnableFastLaunchRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_SCn] != null) {\n const memberEntries = se_FastLaunchSnapshotConfigurationRequest(input[_SCn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotConfiguration.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LTa] != null) {\n const memberEntries = se_FastLaunchLaunchTemplateSpecificationRequest(input[_LTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplate.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MPL] != null) {\n entries[_MPL] = input[_MPL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableFastLaunchRequest\");\nvar se_EnableFastSnapshotRestoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZv] != null) {\n const memberEntries = se_AvailabilityZoneStringList(input[_AZv], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AvailabilityZone.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SSIo] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SSIo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceSnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableFastSnapshotRestoresRequest\");\nvar se_EnableImageBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IBPAS] != null) {\n entries[_IBPAS] = input[_IBPAS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageBlockPublicAccessRequest\");\nvar se_EnableImageDeprecationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DAe] != null) {\n entries[_DAe] = (0, import_smithy_client.serializeDateTime)(input[_DAe]);\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageDeprecationRequest\");\nvar se_EnableImageDeregistrationProtectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_WC] != null) {\n entries[_WC] = input[_WC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageDeregistrationProtectionRequest\");\nvar se_EnableImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableImageRequest\");\nvar se_EnableIpamOrganizationAdminAccountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DAAI] != null) {\n entries[_DAAI] = input[_DAAI];\n }\n return entries;\n}, \"se_EnableIpamOrganizationAdminAccountRequest\");\nvar se_EnableReachabilityAnalyzerOrganizationSharingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableReachabilityAnalyzerOrganizationSharingRequest\");\nvar se_EnableRouteServerPropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableRouteServerPropagationRequest\");\nvar se_EnableSerialConsoleAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableSerialConsoleAccessRequest\");\nvar se_EnableSnapshotBlockPublicAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Stat] != null) {\n entries[_Stat] = input[_Stat];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableSnapshotBlockPublicAccessRequest\");\nvar se_EnableTransitGatewayRouteTablePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TGRTAI] != null) {\n entries[_TGRTAI] = input[_TGRTAI];\n }\n return entries;\n}, \"se_EnableTransitGatewayRouteTablePropagationRequest\");\nvar se_EnableVgwRoutePropagationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_EnableVgwRoutePropagationRequest\");\nvar se_EnableVolumeIORequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n return entries;\n}, \"se_EnableVolumeIORequest\");\nvar se_EnableVpcClassicLinkDnsSupportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_EnableVpcClassicLinkDnsSupportRequest\");\nvar se_EnableVpcClassicLinkRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_EnableVpcClassicLinkRequest\");\nvar se_EnaSrdSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESE] != null) {\n entries[_ESE] = input[_ESE];\n }\n if (input[_ESUS] != null) {\n const memberEntries = se_EnaSrdUdpSpecification(input[_ESUS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdUdpSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_EnaSrdSpecification\");\nvar se_EnaSrdSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESE] != null) {\n entries[_ESE] = input[_ESE];\n }\n if (input[_ESUS] != null) {\n const memberEntries = se_EnaSrdUdpSpecificationRequest(input[_ESUS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdUdpSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_EnaSrdSpecificationRequest\");\nvar se_EnaSrdUdpSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESUE] != null) {\n entries[_ESUE] = input[_ESUE];\n }\n return entries;\n}, \"se_EnaSrdUdpSpecification\");\nvar se_EnaSrdUdpSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESUE] != null) {\n entries[_ESUE] = input[_ESUE];\n }\n return entries;\n}, \"se_EnaSrdUdpSpecificationRequest\");\nvar se_EnclaveOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_EnclaveOptionsRequest\");\nvar se_ExcludedInstanceTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExcludedInstanceTypeSet\");\nvar se_ExecutableByStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ExecutableBy.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExecutableByStringList\");\nvar se_ExportClientVpnClientCertificateRevocationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportClientVpnClientCertificateRevocationListRequest\");\nvar se_ExportClientVpnClientConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportClientVpnClientConfigurationRequest\");\nvar se_ExportImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIFi] != null) {\n entries[_DIFi] = input[_DIFi];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_SEL] != null) {\n const memberEntries = se_ExportTaskS3LocationRequest(input[_SEL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3ExportLocation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RNo] != null) {\n entries[_RNo] = input[_RNo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ExportImageRequest\");\nvar se_ExportImageTaskIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ExportImageTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExportImageTaskIdList\");\nvar se_ExportTaskIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ExportTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ExportTaskIdStringList\");\nvar se_ExportTaskS3LocationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n return entries;\n}, \"se_ExportTaskS3LocationRequest\");\nvar se_ExportToS3TaskSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DIFi] != null) {\n entries[_DIFi] = input[_DIFi];\n }\n if (input[_CFo] != null) {\n entries[_CFo] = input[_CFo];\n }\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n return entries;\n}, \"se_ExportToS3TaskSpecification\");\nvar se_ExportTransitGatewayRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportTransitGatewayRoutesRequest\");\nvar se_ExportVerifiedAccessInstanceClientConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ExportVerifiedAccessInstanceClientConfigurationRequest\");\nvar se_FastLaunchImageIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImageId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FastLaunchImageIdList\");\nvar se_FastLaunchLaunchTemplateSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_FastLaunchLaunchTemplateSpecificationRequest\");\nvar se_FastLaunchSnapshotConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TRC] != null) {\n entries[_TRC] = input[_TRC];\n }\n return entries;\n}, \"se_FastLaunchSnapshotConfigurationRequest\");\nvar se_FederatedAuthenticationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_SSSAMLPA] != null) {\n entries[_SSSAMLPA] = input[_SSSAMLPA];\n }\n return entries;\n}, \"se_FederatedAuthenticationRequest\");\nvar se_Filter = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_Val] != null) {\n const memberEntries = se_ValueStringList(input[_Val], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Value.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_Filter\");\nvar se_FilterList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Filter(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Filter.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FilterList\");\nvar se_FleetBlockDeviceMappingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n if (input[_E] != null) {\n const memberEntries = se_FleetEbsBlockDeviceRequest(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n return entries;\n}, \"se_FleetBlockDeviceMappingRequest\");\nvar se_FleetBlockDeviceMappingRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_FleetBlockDeviceMappingRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FleetBlockDeviceMappingRequestList\");\nvar se_FleetEbsBlockDeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n return entries;\n}, \"se_FleetEbsBlockDeviceRequest\");\nvar se_FleetIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FleetIdSet\");\nvar se_FleetLaunchTemplateConfigListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_FleetLaunchTemplateConfigRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FleetLaunchTemplateConfigListRequest\");\nvar se_FleetLaunchTemplateConfigRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTS] != null) {\n const memberEntries = se_FleetLaunchTemplateSpecificationRequest(input[_LTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ov] != null) {\n const memberEntries = se_FleetLaunchTemplateOverridesListRequest(input[_Ov], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Overrides.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_FleetLaunchTemplateConfigRequest\");\nvar se_FleetLaunchTemplateOverridesListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_FleetLaunchTemplateOverridesRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_FleetLaunchTemplateOverridesListRequest\");\nvar se_FleetLaunchTemplateOverridesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_MPa] != null) {\n entries[_MPa] = input[_MPa];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_WCe] != null) {\n entries[_WCe] = (0, import_smithy_client.serializeFloat)(input[_WCe]);\n }\n if (input[_Pri] != null) {\n entries[_Pri] = (0, import_smithy_client.serializeFloat)(input[_Pri]);\n }\n if (input[_Pl] != null) {\n const memberEntries = se_Placement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BDM] != null) {\n const memberEntries = se_FleetBlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n return entries;\n}, \"se_FleetLaunchTemplateOverridesRequest\");\nvar se_FleetLaunchTemplateSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_FleetLaunchTemplateSpecification\");\nvar se_FleetLaunchTemplateSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_FleetLaunchTemplateSpecificationRequest\");\nvar se_FleetSpotCapacityRebalanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RS] != null) {\n entries[_RS] = input[_RS];\n }\n if (input[_TDe] != null) {\n entries[_TDe] = input[_TDe];\n }\n return entries;\n}, \"se_FleetSpotCapacityRebalanceRequest\");\nvar se_FleetSpotMaintenanceStrategiesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRap] != null) {\n const memberEntries = se_FleetSpotCapacityRebalanceRequest(input[_CRap], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityRebalance.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_FleetSpotMaintenanceStrategiesRequest\");\nvar se_FlowLogIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FlowLogIdList\");\nvar se_FlowLogResourceIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FlowLogResourceIds\");\nvar se_FpgaImageIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_FpgaImageIdList\");\nvar se_GetAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAllowedImagesSettingsRequest\");\nvar se_GetAssociatedEnclaveCertificateIamRolesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAssociatedEnclaveCertificateIamRolesRequest\");\nvar se_GetAssociatedIpv6PoolCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAssociatedIpv6PoolCidrsRequest\");\nvar se_GetAwsNetworkPerformanceDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DQ] != null) {\n const memberEntries = se_DataQueries(input[_DQ], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DataQuery.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetAwsNetworkPerformanceDataRequest\");\nvar se_GetCapacityReservationUsageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetCapacityReservationUsageRequest\");\nvar se_GetCoipPoolUsageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetCoipPoolUsageRequest\");\nvar se_GetConsoleOutputRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_La] != null) {\n entries[_La] = input[_La];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetConsoleOutputRequest\");\nvar se_GetConsoleScreenshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_WU] != null) {\n entries[_WU] = input[_WU];\n }\n return entries;\n}, \"se_GetConsoleScreenshotRequest\");\nvar se_GetDeclarativePoliciesReportSummaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIep] != null) {\n entries[_RIep] = input[_RIep];\n }\n return entries;\n}, \"se_GetDeclarativePoliciesReportSummaryRequest\");\nvar se_GetDefaultCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n return entries;\n}, \"se_GetDefaultCreditSpecificationRequest\");\nvar se_GetEbsDefaultKmsKeyIdRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetEbsDefaultKmsKeyIdRequest\");\nvar se_GetEbsEncryptionByDefaultRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetEbsEncryptionByDefaultRequest\");\nvar se_GetFlowLogsIntegrationTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FLIl] != null) {\n entries[_FLIl] = input[_FLIl];\n }\n if (input[_CDSDA] != null) {\n entries[_CDSDA] = input[_CDSDA];\n }\n if (input[_ISnt] != null) {\n const memberEntries = se_IntegrateServices(input[_ISnt], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IntegrateService.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetFlowLogsIntegrationTemplateRequest\");\nvar se_GetGroupsForCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetGroupsForCapacityReservationRequest\");\nvar se_GetHostReservationPurchasePreviewRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HIS] != null) {\n const memberEntries = se_RequestHostIdSet(input[_HIS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostIdSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n return entries;\n}, \"se_GetHostReservationPurchasePreviewRequest\");\nvar se_GetImageBlockPublicAccessStateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetImageBlockPublicAccessStateRequest\");\nvar se_GetInstanceMetadataDefaultsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetInstanceMetadataDefaultsRequest\");\nvar se_GetInstanceTpmEkPubRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_KT] != null) {\n entries[_KT] = input[_KT];\n }\n if (input[_KF] != null) {\n entries[_KF] = input[_KF];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetInstanceTpmEkPubRequest\");\nvar se_GetInstanceTypesFromInstanceRequirementsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ATr] != null) {\n const memberEntries = se_ArchitectureTypeSet(input[_ATr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ArchitectureType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VTi] != null) {\n const memberEntries = se_VirtualizationTypeSet(input[_VTi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VirtualizationType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetInstanceTypesFromInstanceRequirementsRequest\");\nvar se_GetInstanceUefiDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetInstanceUefiDataRequest\");\nvar se_GetIpamAddressHistoryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetIpamAddressHistoryRequest\");\nvar se_GetIpamDiscoveredAccountsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_DRi] != null) {\n entries[_DRi] = input[_DRi];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetIpamDiscoveredAccountsRequest\");\nvar se_GetIpamDiscoveredPublicAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_ARd] != null) {\n entries[_ARd] = input[_ARd];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetIpamDiscoveredPublicAddressesRequest\");\nvar se_GetIpamDiscoveredResourceCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_RRe] != null) {\n entries[_RRe] = input[_RRe];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetIpamDiscoveredResourceCidrsRequest\");\nvar se_GetIpamPoolAllocationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_IPAI] != null) {\n entries[_IPAI] = input[_IPAI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetIpamPoolAllocationsRequest\");\nvar se_GetIpamPoolCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetIpamPoolCidrsRequest\");\nvar se_GetIpamResourceCidrsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_RIeso] != null) {\n entries[_RIeso] = input[_RIeso];\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_RTes] != null) {\n const memberEntries = se_RequestIpamResourceTag(input[_RTes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceTag.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ROe] != null) {\n entries[_ROe] = input[_ROe];\n }\n return entries;\n}, \"se_GetIpamResourceCidrsRequest\");\nvar se_GetLaunchTemplateDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n return entries;\n}, \"se_GetLaunchTemplateDataRequest\");\nvar se_GetManagedPrefixListAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetManagedPrefixListAssociationsRequest\");\nvar se_GetManagedPrefixListEntriesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_TV] != null) {\n entries[_TV] = input[_TV];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetManagedPrefixListEntriesRequest\");\nvar se_GetNetworkInsightsAccessScopeAnalysisFindingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASAI] != null) {\n entries[_NIASAI] = input[_NIASAI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetNetworkInsightsAccessScopeAnalysisFindingsRequest\");\nvar se_GetNetworkInsightsAccessScopeContentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetNetworkInsightsAccessScopeContentRequest\");\nvar se_GetPasswordDataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetPasswordDataRequest\");\nvar se_GetReservedInstancesExchangeQuoteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RII] != null) {\n const memberEntries = se_ReservedInstanceIdSet(input[_RII], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TC] != null) {\n const memberEntries = se_TargetConfigurationRequestSet(input[_TC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetReservedInstancesExchangeQuoteRequest\");\nvar se_GetRouteServerAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetRouteServerAssociationsRequest\");\nvar se_GetRouteServerPropagationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetRouteServerPropagationsRequest\");\nvar se_GetRouteServerRoutingDatabaseRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetRouteServerRoutingDatabaseRequest\");\nvar se_GetSecurityGroupsForVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetSecurityGroupsForVpcRequest\");\nvar se_GetSerialConsoleAccessStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetSerialConsoleAccessStatusRequest\");\nvar se_GetSnapshotBlockPublicAccessStateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetSnapshotBlockPublicAccessStateRequest\");\nvar se_GetSpotPlacementScoresRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ITnst] != null) {\n const memberEntries = se_InstanceTypes(input[_ITnst], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TCa] != null) {\n entries[_TCa] = input[_TCa];\n }\n if (input[_TCUT] != null) {\n entries[_TCUT] = input[_TCUT];\n }\n if (input[_SAZ] != null) {\n entries[_SAZ] = input[_SAZ];\n }\n if (input[_RNe] != null) {\n const memberEntries = se_RegionNames(input[_RNe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RegionName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IRWM] != null) {\n const memberEntries = se_InstanceRequirementsWithMetadataRequest(input[_IRWM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirementsWithMetadata.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n return entries;\n}, \"se_GetSpotPlacementScoresRequest\");\nvar se_GetSubnetCidrReservationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n return entries;\n}, \"se_GetSubnetCidrReservationsRequest\");\nvar se_GetTransitGatewayAttachmentPropagationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayAttachmentPropagationsRequest\");\nvar se_GetTransitGatewayMulticastDomainAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayMulticastDomainAssociationsRequest\");\nvar se_GetTransitGatewayPolicyTableAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayPolicyTableAssociationsRequest\");\nvar se_GetTransitGatewayPolicyTableEntriesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGPTI] != null) {\n entries[_TGPTI] = input[_TGPTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayPolicyTableEntriesRequest\");\nvar se_GetTransitGatewayPrefixListReferencesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayPrefixListReferencesRequest\");\nvar se_GetTransitGatewayRouteTableAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayRouteTableAssociationsRequest\");\nvar se_GetTransitGatewayRouteTablePropagationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetTransitGatewayRouteTablePropagationsRequest\");\nvar se_GetVerifiedAccessEndpointPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVerifiedAccessEndpointPolicyRequest\");\nvar se_GetVerifiedAccessEndpointTargetsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVerifiedAccessEndpointTargetsRequest\");\nvar se_GetVerifiedAccessGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVerifiedAccessGroupPolicyRequest\");\nvar se_GetVpnConnectionDeviceSampleConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VCDTI] != null) {\n entries[_VCDTI] = input[_VCDTI];\n }\n if (input[_IKEV] != null) {\n entries[_IKEV] = input[_IKEV];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVpnConnectionDeviceSampleConfigurationRequest\");\nvar se_GetVpnConnectionDeviceTypesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVpnConnectionDeviceTypesRequest\");\nvar se_GetVpnTunnelReplacementStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_GetVpnTunnelReplacementStatusRequest\");\nvar se_GroupIdentifier = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_GroupIdentifier\");\nvar se_GroupIdentifierList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_GroupIdentifier(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_GroupIdentifierList\");\nvar se_GroupIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_GroupIds\");\nvar se_GroupIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`GroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_GroupIdStringList\");\nvar se_GroupNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`GroupName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_GroupNameStringList\");\nvar se_HibernationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Conf] != null) {\n entries[_Conf] = input[_Conf];\n }\n return entries;\n}, \"se_HibernationOptionsRequest\");\nvar se_HostReservationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_HostReservationIdSet\");\nvar se_IamInstanceProfileSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_IamInstanceProfileSpecification\");\nvar se_IcmpTypeCode = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Cod] != null) {\n entries[_Cod] = input[_Cod];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n return entries;\n}, \"se_IcmpTypeCode\");\nvar se_IKEVersionsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_IKEVersionsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_IKEVersionsRequestList\");\nvar se_IKEVersionsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_IKEVersionsRequestListValue\");\nvar se_ImageCriterionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPm] != null) {\n const memberEntries = se_ImageProviderRequestList(input[_IPm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageProvider.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImageCriterionRequest\");\nvar se_ImageCriterionRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ImageCriterionRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`ImageCriterion.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ImageCriterionRequestList\");\nvar se_ImageDiskContainer = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_Fo] != null) {\n entries[_Fo] = input[_Fo];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_U] != null) {\n entries[_U] = input[_U];\n }\n if (input[_UB] != null) {\n const memberEntries = se_UserBucket(input[_UB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserBucket.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImageDiskContainer\");\nvar se_ImageDiskContainerList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ImageDiskContainer(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ImageDiskContainerList\");\nvar se_ImageIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImageIdList\");\nvar se_ImageIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImageId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImageIdStringList\");\nvar se_ImageProviderRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImageProviderRequestList\");\nvar se_ImportClientVpnClientCertificateRevocationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_CRL] != null) {\n entries[_CRL] = input[_CRL];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ImportClientVpnClientCertificateRevocationListRequest\");\nvar se_ImportImageLicenseConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LCA] != null) {\n entries[_LCA] = input[_LCA];\n }\n return entries;\n}, \"se_ImportImageLicenseConfigurationRequest\");\nvar se_ImportImageLicenseSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ImportImageLicenseConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ImportImageLicenseSpecificationListRequest\");\nvar se_ImportImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Arc] != null) {\n entries[_Arc] = input[_Arc];\n }\n if (input[_CDl] != null) {\n const memberEntries = se_ClientData(input[_CDl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DCi] != null) {\n const memberEntries = se_ImageDiskContainerList(input[_DCi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DiskContainer.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_H] != null) {\n entries[_H] = input[_H];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_LTi] != null) {\n entries[_LTi] = input[_LTi];\n }\n if (input[_Pla] != null) {\n entries[_Pla] = input[_Pla];\n }\n if (input[_RNo] != null) {\n entries[_RNo] = input[_RNo];\n }\n if (input[_LSi] != null) {\n const memberEntries = se_ImportImageLicenseSpecificationListRequest(input[_LSi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LicenseSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UO] != null) {\n entries[_UO] = input[_UO];\n }\n if (input[_BM] != null) {\n entries[_BM] = input[_BM];\n }\n return entries;\n}, \"se_ImportImageRequest\");\nvar se_ImportInstanceLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Arc] != null) {\n entries[_Arc] = input[_Arc];\n }\n if (input[_GNr] != null) {\n const memberEntries = se_SecurityGroupStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_GIro] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_GIro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_UD] != null) {\n const memberEntries = se_UserData(input[_UD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_Pl] != null) {\n const memberEntries = se_Placement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Mon] != null) {\n entries[_Mon] = input[_Mon];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_IISB] != null) {\n entries[_IISB] = input[_IISB];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n return entries;\n}, \"se_ImportInstanceLaunchSpecification\");\nvar se_ImportInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_LSa] != null) {\n const memberEntries = se_ImportInstanceLaunchSpecification(input[_LSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DIis] != null) {\n const memberEntries = se_DiskImageList(input[_DIis], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DiskImage.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pla] != null) {\n entries[_Pla] = input[_Pla];\n }\n return entries;\n}, \"se_ImportInstanceRequest\");\nvar se_ImportKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_PKM] != null) {\n entries[_PKM] = context.base64Encoder(input[_PKM]);\n }\n return entries;\n}, \"se_ImportKeyPairRequest\");\nvar se_ImportSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CDl] != null) {\n const memberEntries = se_ClientData(input[_CDl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DCis] != null) {\n const memberEntries = se_SnapshotDiskContainer(input[_DCis], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DiskContainer.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_RNo] != null) {\n entries[_RNo] = input[_RNo];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImportSnapshotRequest\");\nvar se_ImportSnapshotTaskIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImportTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImportSnapshotTaskIdList\");\nvar se_ImportTaskIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ImportTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ImportTaskIdList\");\nvar se_ImportVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_Im] != null) {\n const memberEntries = se_DiskImageDetail(input[_Im], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Image.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Vo] != null) {\n const memberEntries = se_VolumeDetail(input[_Vo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Volume.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ImportVolumeRequest\");\nvar se_InsideCidrBlocksStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InsideCidrBlocksStringList\");\nvar se_InstanceBlockDeviceMappingSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_E] != null) {\n const memberEntries = se_EbsInstanceBlockDeviceSpecification(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n return entries;\n}, \"se_InstanceBlockDeviceMappingSpecification\");\nvar se_InstanceBlockDeviceMappingSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceBlockDeviceMappingSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceBlockDeviceMappingSpecificationList\");\nvar se_InstanceCreditSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceCreditSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceCreditSpecificationListRequest\");\nvar se_InstanceCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_CCp] != null) {\n entries[_CCp] = input[_CCp];\n }\n return entries;\n}, \"se_InstanceCreditSpecificationRequest\");\nvar se_InstanceEventWindowAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITnsta] != null) {\n const memberEntries = se_TagList(input[_ITnsta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DHI] != null) {\n const memberEntries = se_DedicatedHostIdList(input[_DHI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DedicatedHostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceEventWindowAssociationRequest\");\nvar se_InstanceEventWindowDisassociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITnsta] != null) {\n const memberEntries = se_TagList(input[_ITnsta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DHI] != null) {\n const memberEntries = se_DedicatedHostIdList(input[_DHI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DedicatedHostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceEventWindowDisassociationRequest\");\nvar se_InstanceEventWindowIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`InstanceEventWindowId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceEventWindowIdSet\");\nvar se_InstanceEventWindowTimeRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SWD] != null) {\n entries[_SWD] = input[_SWD];\n }\n if (input[_SH] != null) {\n entries[_SH] = input[_SH];\n }\n if (input[_EWD] != null) {\n entries[_EWD] = input[_EWD];\n }\n if (input[_EH] != null) {\n entries[_EH] = input[_EH];\n }\n return entries;\n}, \"se_InstanceEventWindowTimeRangeRequest\");\nvar se_InstanceEventWindowTimeRangeRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceEventWindowTimeRangeRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceEventWindowTimeRangeRequestSet\");\nvar se_InstanceGenerationSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceGenerationSet\");\nvar se_InstanceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceIdList\");\nvar se_InstanceIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`InstanceId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceIdStringList\");\nvar se_InstanceIpv6Address = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IApv] != null) {\n entries[_IApv] = input[_IApv];\n }\n if (input[_IPIs] != null) {\n entries[_IPIs] = input[_IPIs];\n }\n return entries;\n}, \"se_InstanceIpv6Address\");\nvar se_InstanceIpv6AddressList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceIpv6Address(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceIpv6AddressList\");\nvar se_InstanceIpv6AddressListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceIpv6AddressRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`InstanceIpv6Address.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceIpv6AddressListRequest\");\nvar se_InstanceIpv6AddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IApv] != null) {\n entries[_IApv] = input[_IApv];\n }\n return entries;\n}, \"se_InstanceIpv6AddressRequest\");\nvar se_InstanceMaintenanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ARu] != null) {\n entries[_ARu] = input[_ARu];\n }\n return entries;\n}, \"se_InstanceMaintenanceOptionsRequest\");\nvar se_InstanceMarketOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MT] != null) {\n entries[_MT] = input[_MT];\n }\n if (input[_SO] != null) {\n const memberEntries = se_SpotMarketOptions(input[_SO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceMarketOptionsRequest\");\nvar se_InstanceMetadataOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_HPI] != null) {\n entries[_HPI] = input[_HPI];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n return entries;\n}, \"se_InstanceMetadataOptionsRequest\");\nvar se_InstanceNetworkInterfaceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressSpecificationList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_ACIA] != null) {\n entries[_ACIA] = input[_ACIA];\n }\n if (input[_ITn] != null) {\n entries[_ITn] = input[_ITn];\n }\n if (input[_NCI] != null) {\n entries[_NCI] = input[_NCI];\n }\n if (input[_IPp] != null) {\n const memberEntries = se_Ipv4PrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_IP] != null) {\n const memberEntries = se_Ipv6PrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_PIr] != null) {\n entries[_PIr] = input[_PIr];\n }\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecificationRequest(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n return entries;\n}, \"se_InstanceNetworkInterfaceSpecification\");\nvar se_InstanceNetworkInterfaceSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_InstanceNetworkInterfaceSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_InstanceNetworkInterfaceSpecificationList\");\nvar se_InstanceNetworkPerformanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BW] != null) {\n entries[_BW] = input[_BW];\n }\n return entries;\n}, \"se_InstanceNetworkPerformanceOptionsRequest\");\nvar se_InstanceRequirements = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCC] != null) {\n const memberEntries = se_VCpuCountRange(input[_VCC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VCpuCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MMB] != null) {\n const memberEntries = se_MemoryMiB(input[_MMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CM] != null) {\n const memberEntries = se_CpuManufacturerSet(input[_CM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuManufacturerSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MGBPVC] != null) {\n const memberEntries = se_MemoryGiBPerVCpu(input[_MGBPVC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryGiBPerVCpu.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EIT] != null) {\n const memberEntries = se_ExcludedInstanceTypeSet(input[_EIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludedInstanceTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IG] != null) {\n const memberEntries = se_InstanceGenerationSet(input[_IG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceGenerationSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SMPPOLP] != null) {\n entries[_SMPPOLP] = input[_SMPPOLP];\n }\n if (input[_ODMPPOLP] != null) {\n entries[_ODMPPOLP] = input[_ODMPPOLP];\n }\n if (input[_BMa] != null) {\n entries[_BMa] = input[_BMa];\n }\n if (input[_BP] != null) {\n entries[_BP] = input[_BP];\n }\n if (input[_RHS] != null) {\n entries[_RHS] = input[_RHS];\n }\n if (input[_NIC] != null) {\n const memberEntries = se_NetworkInterfaceCount(input[_NIC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSo] != null) {\n entries[_LSo] = input[_LSo];\n }\n if (input[_LST] != null) {\n const memberEntries = se_LocalStorageTypeSet(input[_LST], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalStorageTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TLSGB] != null) {\n const memberEntries = se_TotalLocalStorageGB(input[_TLSGB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TotalLocalStorageGB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BEBM] != null) {\n const memberEntries = se_BaselineEbsBandwidthMbps(input[_BEBM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselineEbsBandwidthMbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ATc] != null) {\n const memberEntries = se_AcceleratorTypeSet(input[_ATc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ACc] != null) {\n const memberEntries = se_AcceleratorCount(input[_ACc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AM] != null) {\n const memberEntries = se_AcceleratorManufacturerSet(input[_AM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorManufacturerSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ANc] != null) {\n const memberEntries = se_AcceleratorNameSet(input[_ANc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorNameSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ATMMB] != null) {\n const memberEntries = se_AcceleratorTotalMemoryMiB(input[_ATMMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorTotalMemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NBGe] != null) {\n const memberEntries = se_NetworkBandwidthGbps(input[_NBGe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkBandwidthGbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AIT] != null) {\n const memberEntries = se_AllowedInstanceTypeSet(input[_AIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllowedInstanceTypeSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MSPAPOOODP] != null) {\n entries[_MSPAPOOODP] = input[_MSPAPOOODP];\n }\n if (input[_BPF] != null) {\n const memberEntries = se_BaselinePerformanceFactors(input[_BPF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselinePerformanceFactors.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceRequirements\");\nvar se_InstanceRequirementsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCC] != null) {\n const memberEntries = se_VCpuCountRangeRequest(input[_VCC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VCpuCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MMB] != null) {\n const memberEntries = se_MemoryMiBRequest(input[_MMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CM] != null) {\n const memberEntries = se_CpuManufacturerSet(input[_CM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuManufacturer.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MGBPVC] != null) {\n const memberEntries = se_MemoryGiBPerVCpuRequest(input[_MGBPVC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MemoryGiBPerVCpu.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EIT] != null) {\n const memberEntries = se_ExcludedInstanceTypeSet(input[_EIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludedInstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IG] != null) {\n const memberEntries = se_InstanceGenerationSet(input[_IG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceGeneration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SMPPOLP] != null) {\n entries[_SMPPOLP] = input[_SMPPOLP];\n }\n if (input[_ODMPPOLP] != null) {\n entries[_ODMPPOLP] = input[_ODMPPOLP];\n }\n if (input[_BMa] != null) {\n entries[_BMa] = input[_BMa];\n }\n if (input[_BP] != null) {\n entries[_BP] = input[_BP];\n }\n if (input[_RHS] != null) {\n entries[_RHS] = input[_RHS];\n }\n if (input[_NIC] != null) {\n const memberEntries = se_NetworkInterfaceCountRequest(input[_NIC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSo] != null) {\n entries[_LSo] = input[_LSo];\n }\n if (input[_LST] != null) {\n const memberEntries = se_LocalStorageTypeSet(input[_LST], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LocalStorageType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TLSGB] != null) {\n const memberEntries = se_TotalLocalStorageGBRequest(input[_TLSGB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TotalLocalStorageGB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BEBM] != null) {\n const memberEntries = se_BaselineEbsBandwidthMbpsRequest(input[_BEBM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselineEbsBandwidthMbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ATc] != null) {\n const memberEntries = se_AcceleratorTypeSet(input[_ATc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ACc] != null) {\n const memberEntries = se_AcceleratorCountRequest(input[_ACc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorCount.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AM] != null) {\n const memberEntries = se_AcceleratorManufacturerSet(input[_AM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorManufacturer.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ANc] != null) {\n const memberEntries = se_AcceleratorNameSet(input[_ANc], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorName.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ATMMB] != null) {\n const memberEntries = se_AcceleratorTotalMemoryMiBRequest(input[_ATMMB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AcceleratorTotalMemoryMiB.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NBGe] != null) {\n const memberEntries = se_NetworkBandwidthGbpsRequest(input[_NBGe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkBandwidthGbps.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AIT] != null) {\n const memberEntries = se_AllowedInstanceTypeSet(input[_AIT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AllowedInstanceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MSPAPOOODP] != null) {\n entries[_MSPAPOOODP] = input[_MSPAPOOODP];\n }\n if (input[_BPF] != null) {\n const memberEntries = se_BaselinePerformanceFactorsRequest(input[_BPF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BaselinePerformanceFactors.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceRequirementsRequest\");\nvar se_InstanceRequirementsWithMetadataRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ATr] != null) {\n const memberEntries = se_ArchitectureTypeSet(input[_ATr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ArchitectureType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VTi] != null) {\n const memberEntries = se_VirtualizationTypeSet(input[_VTi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VirtualizationType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceRequirementsWithMetadataRequest\");\nvar se_InstanceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_EBV] != null) {\n entries[_EBV] = input[_EBV];\n }\n if (input[_EDVI] != null) {\n const memberEntries = se_VolumeIdStringList(input[_EDVI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ExcludeDataVolumeId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_InstanceSpecification\");\nvar se_InstanceTagKeySet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceTagKeySet\");\nvar se_InstanceTypeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceTypeList\");\nvar se_InstanceTypes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InstanceTypes\");\nvar se_IntegrateServices = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIth] != null) {\n const memberEntries = se_AthenaIntegrationsSet(input[_AIth], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AthenaIntegration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_IntegrateServices\");\nvar se_InternetGatewayIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_InternetGatewayIdList\");\nvar se_IpamCidrAuthorizationContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Me] != null) {\n entries[_Me] = input[_Me];\n }\n if (input[_Si] != null) {\n entries[_Si] = input[_Si];\n }\n return entries;\n}, \"se_IpamCidrAuthorizationContext\");\nvar se_IpamPoolAllocationAllowedCidrs = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpamPoolAllocationAllowedCidrs\");\nvar se_IpamPoolAllocationDisallowedCidrs = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpamPoolAllocationDisallowedCidrs\");\nvar se_IpamPoolSourceResourceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIeso] != null) {\n entries[_RIeso] = input[_RIeso];\n }\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_RRe] != null) {\n entries[_RRe] = input[_RRe];\n }\n if (input[_ROe] != null) {\n entries[_ROe] = input[_ROe];\n }\n return entries;\n}, \"se_IpamPoolSourceResourceRequest\");\nvar se_IpList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpList\");\nvar se_IpPermission = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_UIGP] != null) {\n const memberEntries = se_UserIdGroupPairList(input[_UIGP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Groups.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IRp] != null) {\n const memberEntries = se_IpRangeList(input[_IRp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpRanges.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IRpv] != null) {\n const memberEntries = se_Ipv6RangeList(input[_IRpv], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Ranges.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PLIr] != null) {\n const memberEntries = se_PrefixListIdList(input[_PLIr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrefixListIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_IpPermission\");\nvar se_IpPermissionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_IpPermission(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_IpPermissionList\");\nvar se_IpPrefixList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_IpPrefixList\");\nvar se_IpRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n return entries;\n}, \"se_IpRange\");\nvar se_IpRangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_IpRange(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_IpRangeList\");\nvar se_Ipv4PrefixList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Ipv4PrefixSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Ipv4PrefixList\");\nvar se_Ipv4PrefixSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpvr] != null) {\n entries[_IPpvr] = input[_IPpvr];\n }\n return entries;\n}, \"se_Ipv4PrefixSpecificationRequest\");\nvar se_Ipv6AddressList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_Ipv6AddressList\");\nvar se_Ipv6PoolIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_Ipv6PoolIdList\");\nvar se_Ipv6PrefixList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Ipv6PrefixSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Ipv6PrefixList\");\nvar se_Ipv6PrefixSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpvre] != null) {\n entries[_IPpvre] = input[_IPpvre];\n }\n return entries;\n}, \"se_Ipv6PrefixSpecificationRequest\");\nvar se_Ipv6Range = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CIid] != null) {\n entries[_CIid] = input[_CIid];\n }\n return entries;\n}, \"se_Ipv6Range\");\nvar se_Ipv6RangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Ipv6Range(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Ipv6RangeList\");\nvar se_KeyNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`KeyName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_KeyNameStringList\");\nvar se_KeyPairIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`KeyPairId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_KeyPairIdStringList\");\nvar se_LaunchPermission = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OAr] != null) {\n entries[_OAr] = input[_OAr];\n }\n if (input[_OUA] != null) {\n entries[_OUA] = input[_OUA];\n }\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n if (input[_Gr] != null) {\n entries[_Gr] = input[_Gr];\n }\n return entries;\n}, \"se_LaunchPermission\");\nvar se_LaunchPermissionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchPermission(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchPermissionList\");\nvar se_LaunchPermissionModifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Add] != null) {\n const memberEntries = se_LaunchPermissionList(input[_Add], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Add.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Rem] != null) {\n const memberEntries = se_LaunchPermissionList(input[_Rem], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Remove.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchPermissionModifications\");\nvar se_LaunchSpecsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SpotFleetLaunchSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchSpecsList\");\nvar se_LaunchTemplateBlockDeviceMappingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n if (input[_E] != null) {\n const memberEntries = se_LaunchTemplateEbsBlockDeviceRequest(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n return entries;\n}, \"se_LaunchTemplateBlockDeviceMappingRequest\");\nvar se_LaunchTemplateBlockDeviceMappingRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateBlockDeviceMappingRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateBlockDeviceMappingRequestList\");\nvar se_LaunchTemplateCapacityReservationSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRP] != null) {\n entries[_CRP] = input[_CRP];\n }\n if (input[_CRTa] != null) {\n const memberEntries = se_CapacityReservationTarget(input[_CRTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationTarget.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateCapacityReservationSpecificationRequest\");\nvar se_LaunchTemplateConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTS] != null) {\n const memberEntries = se_FleetLaunchTemplateSpecification(input[_LTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ov] != null) {\n const memberEntries = se_LaunchTemplateOverridesList(input[_Ov], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Overrides.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateConfig\");\nvar se_LaunchTemplateConfigList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateConfig(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateConfigList\");\nvar se_LaunchTemplateCpuOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_TPC] != null) {\n entries[_TPC] = input[_TPC];\n }\n if (input[_ASS] != null) {\n entries[_ASS] = input[_ASS];\n }\n return entries;\n}, \"se_LaunchTemplateCpuOptionsRequest\");\nvar se_LaunchTemplateEbsBlockDeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_VIR] != null) {\n entries[_VIR] = input[_VIR];\n }\n return entries;\n}, \"se_LaunchTemplateEbsBlockDeviceRequest\");\nvar se_LaunchTemplateElasticInferenceAccelerator = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_Cou] != null) {\n entries[_Cou] = input[_Cou];\n }\n return entries;\n}, \"se_LaunchTemplateElasticInferenceAccelerator\");\nvar se_LaunchTemplateElasticInferenceAcceleratorList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateElasticInferenceAccelerator(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateElasticInferenceAcceleratorList\");\nvar se_LaunchTemplateEnclaveOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_LaunchTemplateEnclaveOptionsRequest\");\nvar se_LaunchTemplateHibernationOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Conf] != null) {\n entries[_Conf] = input[_Conf];\n }\n return entries;\n}, \"se_LaunchTemplateHibernationOptionsRequest\");\nvar se_LaunchTemplateIamInstanceProfileSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_LaunchTemplateIamInstanceProfileSpecificationRequest\");\nvar se_LaunchTemplateIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateIdStringList\");\nvar se_LaunchTemplateInstanceMaintenanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ARu] != null) {\n entries[_ARu] = input[_ARu];\n }\n return entries;\n}, \"se_LaunchTemplateInstanceMaintenanceOptionsRequest\");\nvar se_LaunchTemplateInstanceMarketOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MT] != null) {\n entries[_MT] = input[_MT];\n }\n if (input[_SO] != null) {\n const memberEntries = se_LaunchTemplateSpotMarketOptionsRequest(input[_SO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateInstanceMarketOptionsRequest\");\nvar se_LaunchTemplateInstanceMetadataOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_HPI] != null) {\n entries[_HPI] = input[_HPI];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n return entries;\n}, \"se_LaunchTemplateInstanceMetadataOptionsRequest\");\nvar se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ACIA] != null) {\n entries[_ACIA] = input[_ACIA];\n }\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ITn] != null) {\n entries[_ITn] = input[_ITn];\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressListRequest(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressSpecificationList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_NCI] != null) {\n entries[_NCI] = input[_NCI];\n }\n if (input[_IPp] != null) {\n const memberEntries = se_Ipv4PrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPCp] != null) {\n entries[_IPCp] = input[_IPCp];\n }\n if (input[_IP] != null) {\n const memberEntries = se_Ipv6PrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPC] != null) {\n entries[_IPC] = input[_IPC];\n }\n if (input[_PIr] != null) {\n entries[_PIr] = input[_PIr];\n }\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecificationRequest(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n return entries;\n}, \"se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequest\");\nvar se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`InstanceNetworkInterfaceSpecification.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList\");\nvar se_LaunchTemplateLicenseConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LCA] != null) {\n entries[_LCA] = input[_LCA];\n }\n return entries;\n}, \"se_LaunchTemplateLicenseConfigurationRequest\");\nvar se_LaunchTemplateLicenseSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateLicenseConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateLicenseSpecificationListRequest\");\nvar se_LaunchTemplateNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateNameStringList\");\nvar se_LaunchTemplateNetworkPerformanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BW] != null) {\n entries[_BW] = input[_BW];\n }\n return entries;\n}, \"se_LaunchTemplateNetworkPerformanceOptionsRequest\");\nvar se_LaunchTemplateOverrides = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_WCe] != null) {\n entries[_WCe] = (0, import_smithy_client.serializeFloat)(input[_WCe]);\n }\n if (input[_Pri] != null) {\n entries[_Pri] = (0, import_smithy_client.serializeFloat)(input[_Pri]);\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirements(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateOverrides\");\nvar se_LaunchTemplateOverridesList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateOverrides(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateOverridesList\");\nvar se_LaunchTemplatePlacementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_Af] != null) {\n entries[_Af] = input[_Af];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_HIo] != null) {\n entries[_HIo] = input[_HIo];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_SDp] != null) {\n entries[_SDp] = input[_SDp];\n }\n if (input[_HRGA] != null) {\n entries[_HRGA] = input[_HRGA];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n return entries;\n}, \"se_LaunchTemplatePlacementRequest\");\nvar se_LaunchTemplatePrivateDnsNameOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HTo] != null) {\n entries[_HTo] = input[_HTo];\n }\n if (input[_ERNDAR] != null) {\n entries[_ERNDAR] = input[_ERNDAR];\n }\n if (input[_ERNDAAAAR] != null) {\n entries[_ERNDAAAAR] = input[_ERNDAAAAR];\n }\n return entries;\n}, \"se_LaunchTemplatePrivateDnsNameOptionsRequest\");\nvar se_LaunchTemplatesMonitoringRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_LaunchTemplatesMonitoringRequest\");\nvar se_LaunchTemplateSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_V] != null) {\n entries[_V] = input[_V];\n }\n return entries;\n}, \"se_LaunchTemplateSpecification\");\nvar se_LaunchTemplateSpotMarketOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MPa] != null) {\n entries[_MPa] = input[_MPa];\n }\n if (input[_SIT] != null) {\n entries[_SIT] = input[_SIT];\n }\n if (input[_BDMl] != null) {\n entries[_BDMl] = input[_BDMl];\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n return entries;\n}, \"se_LaunchTemplateSpotMarketOptionsRequest\");\nvar se_LaunchTemplateTagSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LaunchTemplateTagSpecificationRequest\");\nvar se_LaunchTemplateTagSpecificationRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LaunchTemplateTagSpecificationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`LaunchTemplateTagSpecificationRequest.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LaunchTemplateTagSpecificationRequestList\");\nvar se_LicenseConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LCA] != null) {\n entries[_LCA] = input[_LCA];\n }\n return entries;\n}, \"se_LicenseConfigurationRequest\");\nvar se_LicenseSpecificationListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LicenseConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LicenseSpecificationListRequest\");\nvar se_ListImagesInRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IImag] != null) {\n const memberEntries = se_ImageIdStringList(input[_IImag], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ListImagesInRecycleBinRequest\");\nvar se_ListSnapshotsInRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_SIna] != null) {\n const memberEntries = se_SnapshotIdStringList(input[_SIna], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SnapshotId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ListSnapshotsInRecycleBinRequest\");\nvar se_LoadBalancersConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CLBC] != null) {\n const memberEntries = se_ClassicLoadBalancersConfig(input[_CLBC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClassicLoadBalancersConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TGC] != null) {\n const memberEntries = se_TargetGroupsConfig(input[_TGC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroupsConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LoadBalancersConfig\");\nvar se_LoadPermissionListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LoadPermissionRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LoadPermissionListRequest\");\nvar se_LoadPermissionModifications = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Add] != null) {\n const memberEntries = se_LoadPermissionListRequest(input[_Add], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Add.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Rem] != null) {\n const memberEntries = se_LoadPermissionListRequest(input[_Rem], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Remove.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_LoadPermissionModifications\");\nvar se_LoadPermissionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Gr] != null) {\n entries[_Gr] = input[_Gr];\n }\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n return entries;\n}, \"se_LoadPermissionRequest\");\nvar se_LocalGatewayIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayIdSet\");\nvar se_LocalGatewayRouteTableIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayRouteTableIdSet\");\nvar se_LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet\");\nvar se_LocalGatewayRouteTableVpcAssociationIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayRouteTableVpcAssociationIdSet\");\nvar se_LocalGatewayVirtualInterfaceGroupIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayVirtualInterfaceGroupIdSet\");\nvar se_LocalGatewayVirtualInterfaceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalGatewayVirtualInterfaceIdSet\");\nvar se_LocalStorageTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LocalStorageTypeSet\");\nvar se_LockSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LM] != null) {\n entries[_LM] = input[_LM];\n }\n if (input[_COP] != null) {\n entries[_COP] = input[_COP];\n }\n if (input[_LDo] != null) {\n entries[_LDo] = input[_LDo];\n }\n if (input[_EDx] != null) {\n entries[_EDx] = (0, import_smithy_client.serializeDateTime)(input[_EDx]);\n }\n return entries;\n}, \"se_LockSnapshotRequest\");\nvar se_MemoryGiBPerVCpu = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_MemoryGiBPerVCpu\");\nvar se_MemoryGiBPerVCpuRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_MemoryGiBPerVCpuRequest\");\nvar se_MemoryMiB = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_MemoryMiB\");\nvar se_MemoryMiBRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_MemoryMiBRequest\");\nvar se_ModifyAddressAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_DNo] != null) {\n entries[_DNo] = input[_DNo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyAddressAttributeRequest\");\nvar se_ModifyAvailabilityZoneGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_OIS] != null) {\n entries[_OIS] = input[_OIS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyAvailabilityZoneGroupRequest\");\nvar se_ModifyCapacityReservationFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRFIa] != null) {\n entries[_CRFIa] = input[_CRFIa];\n }\n if (input[_TTC] != null) {\n entries[_TTC] = input[_TTC];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RED] != null) {\n entries[_RED] = input[_RED];\n }\n return entries;\n}, \"se_ModifyCapacityReservationFleetRequest\");\nvar se_ModifyCapacityReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_ED] != null) {\n entries[_ED] = (0, import_smithy_client.serializeDateTime)(input[_ED]);\n }\n if (input[_EDT] != null) {\n entries[_EDT] = input[_EDT];\n }\n if (input[_Ac] != null) {\n entries[_Ac] = input[_Ac];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_IMC] != null) {\n entries[_IMC] = input[_IMC];\n }\n return entries;\n}, \"se_ModifyCapacityReservationRequest\");\nvar se_ModifyClientVpnEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_SCA] != null) {\n entries[_SCA] = input[_SCA];\n }\n if (input[_CLO] != null) {\n const memberEntries = se_ConnectionLogOptions(input[_CLO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionLogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DSn] != null) {\n const memberEntries = se_DnsServersOptionsModifyStructure(input[_DSn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsServers.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VP] != null) {\n entries[_VP] = input[_VP];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ClientVpnSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_SSP] != null) {\n entries[_SSP] = input[_SSP];\n }\n if (input[_CCO] != null) {\n const memberEntries = se_ClientConnectOptions(input[_CCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientConnectOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_STH] != null) {\n entries[_STH] = input[_STH];\n }\n if (input[_CLBO] != null) {\n const memberEntries = se_ClientLoginBannerOptions(input[_CLBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientLoginBannerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CREO] != null) {\n const memberEntries = se_ClientRouteEnforcementOptions(input[_CREO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientRouteEnforcementOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOST] != null) {\n entries[_DOST] = input[_DOST];\n }\n return entries;\n}, \"se_ModifyClientVpnEndpointRequest\");\nvar se_ModifyDefaultCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n if (input[_CCp] != null) {\n entries[_CCp] = input[_CCp];\n }\n return entries;\n}, \"se_ModifyDefaultCreditSpecificationRequest\");\nvar se_ModifyEbsDefaultKmsKeyIdRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KKI] != null) {\n entries[_KKI] = input[_KKI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyEbsDefaultKmsKeyIdRequest\");\nvar se_ModifyFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n if (input[_LTC] != null) {\n const memberEntries = se_FleetLaunchTemplateConfigListRequest(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfig.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FIl] != null) {\n entries[_FIl] = input[_FIl];\n }\n if (input[_TCS] != null) {\n const memberEntries = se_TargetCapacitySpecificationRequest(input[_TCS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetCapacitySpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n return entries;\n}, \"se_ModifyFleetRequest\");\nvar se_ModifyFpgaImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_OTp] != null) {\n entries[_OTp] = input[_OTp];\n }\n if (input[_UIse] != null) {\n const memberEntries = se_UserIdStringList(input[_UIse], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UG] != null) {\n const memberEntries = se_UserGroupStringList(input[_UG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PCr] != null) {\n const memberEntries = se_ProductCodeStringList(input[_PCr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProductCode.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LP] != null) {\n const memberEntries = se_LoadPermissionModifications(input[_LP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadPermission.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_ModifyFpgaImageAttributeRequest\");\nvar se_ModifyHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HR] != null) {\n entries[_HR] = input[_HR];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n if (input[_HM] != null) {\n entries[_HM] = input[_HM];\n }\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AP] != null) {\n entries[_AP] = input[_AP];\n }\n return entries;\n}, \"se_ModifyHostsRequest\");\nvar se_ModifyIdentityIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n if (input[_ULI] != null) {\n entries[_ULI] = input[_ULI];\n }\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n return entries;\n}, \"se_ModifyIdentityIdFormatRequest\");\nvar se_ModifyIdFormatRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Res] != null) {\n entries[_Res] = input[_Res];\n }\n if (input[_ULI] != null) {\n entries[_ULI] = input[_ULI];\n }\n return entries;\n}, \"se_ModifyIdFormatRequest\");\nvar se_ModifyImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_De] != null) {\n const memberEntries = se_AttributeValue(input[_De], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Description.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_LPa] != null) {\n const memberEntries = se_LaunchPermissionModifications(input[_LPa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchPermission.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OTp] != null) {\n entries[_OTp] = input[_OTp];\n }\n if (input[_PCr] != null) {\n const memberEntries = se_ProductCodeStringList(input[_PCr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProductCode.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UG] != null) {\n const memberEntries = se_UserGroupStringList(input[_UG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_UIse] != null) {\n const memberEntries = se_UserIdStringList(input[_UIse], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n if (input[_OArg] != null) {\n const memberEntries = se_OrganizationArnStringList(input[_OArg], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OrganizationArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OUAr] != null) {\n const memberEntries = se_OrganizationalUnitArnStringList(input[_OUAr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OrganizationalUnitArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ISm] != null) {\n const memberEntries = se_AttributeValue(input[_ISm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImdsSupport.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyImageAttributeRequest\");\nvar se_ModifyInstanceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SDC] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_SDC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceDestCheck.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAS] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_DAS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisableApiStop.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_InstanceBlockDeviceMappingSpecificationList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DATis] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_DATis], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisableApiTermination.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IT] != null) {\n const memberEntries = se_AttributeValue(input[_IT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceType.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_K] != null) {\n const memberEntries = se_AttributeValue(input[_K], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Kernel.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ra] != null) {\n const memberEntries = se_AttributeValue(input[_Ra], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ramdisk.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_UD] != null) {\n const memberEntries = se_BlobAttributeValue(input[_UD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserData.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IISB] != null) {\n const memberEntries = se_AttributeValue(input[_IISB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceInitiatedShutdownBehavior.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_G] != null) {\n const memberEntries = se_GroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EbsOptimized.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SNS] != null) {\n const memberEntries = se_AttributeValue(input[_SNS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SriovNetSupport.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ESn] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ESn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSupport.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyInstanceAttributeRequest\");\nvar se_ModifyInstanceCapacityReservationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_CRSa] != null) {\n const memberEntries = se_CapacityReservationSpecification(input[_CRSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceCapacityReservationAttributesRequest\");\nvar se_ModifyInstanceCpuOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_TPC] != null) {\n entries[_TPC] = input[_TPC];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceCpuOptionsRequest\");\nvar se_ModifyInstanceCreditSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ICS] != null) {\n const memberEntries = se_InstanceCreditSpecificationListRequest(input[_ICS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceCreditSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyInstanceCreditSpecificationRequest\");\nvar se_ModifyInstanceEventStartTimeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_IEI] != null) {\n entries[_IEI] = input[_IEI];\n }\n if (input[_NB] != null) {\n entries[_NB] = (0, import_smithy_client.serializeDateTime)(input[_NB]);\n }\n return entries;\n}, \"se_ModifyInstanceEventStartTimeRequest\");\nvar se_ModifyInstanceEventWindowRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_IEWI] != null) {\n entries[_IEWI] = input[_IEWI];\n }\n if (input[_TRi] != null) {\n const memberEntries = se_InstanceEventWindowTimeRangeRequestSet(input[_TRi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TimeRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CE] != null) {\n entries[_CE] = input[_CE];\n }\n return entries;\n}, \"se_ModifyInstanceEventWindowRequest\");\nvar se_ModifyInstanceMaintenanceOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_ARu] != null) {\n entries[_ARu] = input[_ARu];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceMaintenanceOptionsRequest\");\nvar se_ModifyInstanceMetadataDefaultsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceMetadataDefaultsRequest\");\nvar se_ModifyInstanceMetadataOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_HT] != null) {\n entries[_HT] = input[_HT];\n }\n if (input[_HPRHL] != null) {\n entries[_HPRHL] = input[_HPRHL];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_HPI] != null) {\n entries[_HPI] = input[_HPI];\n }\n if (input[_IMT] != null) {\n entries[_IMT] = input[_IMT];\n }\n return entries;\n}, \"se_ModifyInstanceMetadataOptionsRequest\");\nvar se_ModifyInstanceNetworkPerformanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_BW] != null) {\n entries[_BW] = input[_BW];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyInstanceNetworkPerformanceRequest\");\nvar se_ModifyInstancePlacementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_HRGA] != null) {\n entries[_HRGA] = input[_HRGA];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_Af] != null) {\n entries[_Af] = input[_Af];\n }\n if (input[_HIo] != null) {\n entries[_HIo] = input[_HIo];\n }\n return entries;\n}, \"se_ModifyInstancePlacementRequest\");\nvar se_ModifyIpamPoolRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AIu] != null) {\n entries[_AIu] = input[_AIu];\n }\n if (input[_AMNL] != null) {\n entries[_AMNL] = input[_AMNL];\n }\n if (input[_AMNLl] != null) {\n entries[_AMNLl] = input[_AMNLl];\n }\n if (input[_ADNL] != null) {\n entries[_ADNL] = input[_ADNL];\n }\n if (input[_CADNL] != null) {\n entries[_CADNL] = input[_CADNL];\n }\n if (input[_AART] != null) {\n const memberEntries = se_RequestIpamResourceTagList(input[_AART], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddAllocationResourceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RART] != null) {\n const memberEntries = se_RequestIpamResourceTagList(input[_RART], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveAllocationResourceTag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyIpamPoolRequest\");\nvar se_ModifyIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AOR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_AOR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ROR] != null) {\n const memberEntries = se_RemoveIpamOperatingRegionSet(input[_ROR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Ti] != null) {\n entries[_Ti] = input[_Ti];\n }\n if (input[_EPG] != null) {\n entries[_EPG] = input[_EPG];\n }\n if (input[_MAe] != null) {\n entries[_MAe] = input[_MAe];\n }\n return entries;\n}, \"se_ModifyIpamRequest\");\nvar se_ModifyIpamResourceCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RIeso] != null) {\n entries[_RIeso] = input[_RIeso];\n }\n if (input[_RC] != null) {\n entries[_RC] = input[_RC];\n }\n if (input[_RRe] != null) {\n entries[_RRe] = input[_RRe];\n }\n if (input[_CISI] != null) {\n entries[_CISI] = input[_CISI];\n }\n if (input[_DISI] != null) {\n entries[_DISI] = input[_DISI];\n }\n if (input[_Moni] != null) {\n entries[_Moni] = input[_Moni];\n }\n return entries;\n}, \"se_ModifyIpamResourceCidrRequest\");\nvar se_ModifyIpamResourceDiscoveryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IRDI] != null) {\n entries[_IRDI] = input[_IRDI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_AOR] != null) {\n const memberEntries = se_AddIpamOperatingRegionSet(input[_AOR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ROR] != null) {\n const memberEntries = se_RemoveIpamOperatingRegionSet(input[_ROR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveOperatingRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AOUE] != null) {\n const memberEntries = se_AddIpamOrganizationalUnitExclusionSet(input[_AOUE], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddOrganizationalUnitExclusion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ROUE] != null) {\n const memberEntries = se_RemoveIpamOrganizationalUnitExclusionSet(input[_ROUE], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveOrganizationalUnitExclusion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyIpamResourceDiscoveryRequest\");\nvar se_ModifyIpamScopeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ISI] != null) {\n entries[_ISI] = input[_ISI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_ModifyIpamScopeRequest\");\nvar se_ModifyLaunchTemplateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_LTI] != null) {\n entries[_LTI] = input[_LTI];\n }\n if (input[_LTN] != null) {\n entries[_LTN] = input[_LTN];\n }\n if (input[_DVef] != null) {\n entries[_SDV] = input[_DVef];\n }\n return entries;\n}, \"se_ModifyLaunchTemplateRequest\");\nvar se_ModifyLocalGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_LGVIGI] != null) {\n entries[_LGVIGI] = input[_LGVIGI];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n return entries;\n}, \"se_ModifyLocalGatewayRouteRequest\");\nvar se_ModifyManagedPrefixListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_CVu] != null) {\n entries[_CVu] = input[_CVu];\n }\n if (input[_PLN] != null) {\n entries[_PLN] = input[_PLN];\n }\n if (input[_AEd] != null) {\n const memberEntries = se_AddPrefixListEntries(input[_AEd], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddEntry.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_REe] != null) {\n const memberEntries = se_RemovePrefixListEntries(input[_REe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveEntry.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ME] != null) {\n entries[_ME] = input[_ME];\n }\n return entries;\n}, \"se_ModifyManagedPrefixListRequest\");\nvar se_ModifyNetworkInterfaceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ESS] != null) {\n const memberEntries = se_EnaSrdSpecification(input[_ESS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnaSrdSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EPI] != null) {\n entries[_EPI] = input[_EPI];\n }\n if (input[_CTS] != null) {\n const memberEntries = se_ConnectionTrackingSpecificationRequest(input[_CTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionTrackingSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_De] != null) {\n const memberEntries = se_AttributeValue(input[_De], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Description.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SDC] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_SDC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceDestCheck.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_G] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Att] != null) {\n const memberEntries = se_NetworkInterfaceAttachmentChanges(input[_Att], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attachment.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyNetworkInterfaceAttributeRequest\");\nvar se_ModifyPrivateDnsNameOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_PDHT] != null) {\n entries[_PDHT] = input[_PDHT];\n }\n if (input[_ERNDAR] != null) {\n entries[_ERNDAR] = input[_ERNDAR];\n }\n if (input[_ERNDAAAAR] != null) {\n entries[_ERNDAAAAR] = input[_ERNDAAAAR];\n }\n return entries;\n}, \"se_ModifyPrivateDnsNameOptionsRequest\");\nvar se_ModifyReservedInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RIIes] != null) {\n const memberEntries = se_ReservedInstancesIdStringList(input[_RIIes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_TC] != null) {\n const memberEntries = se_ReservedInstancesConfigurationList(input[_TC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReservedInstancesConfigurationSetItemType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyReservedInstancesRequest\");\nvar se_ModifyRouteServerRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSIo] != null) {\n entries[_RSIo] = input[_RSIo];\n }\n if (input[_PRe] != null) {\n entries[_PRe] = input[_PRe];\n }\n if (input[_PRD] != null) {\n entries[_PRD] = input[_PRD];\n }\n if (input[_SNE] != null) {\n entries[_SNE] = input[_SNE];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyRouteServerRequest\");\nvar se_ModifySecurityGroupRulesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_SGR] != null) {\n const memberEntries = se_SecurityGroupRuleUpdateList(input[_SGR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRule.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifySecurityGroupRulesRequest\");\nvar se_ModifySnapshotAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_CVP] != null) {\n const memberEntries = se_CreateVolumePermissionModifications(input[_CVP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CreateVolumePermission.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_GNr] != null) {\n const memberEntries = se_GroupNameStringList(input[_GNr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_OTp] != null) {\n entries[_OTp] = input[_OTp];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_UIse] != null) {\n const memberEntries = se_UserIdStringList(input[_UIse], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifySnapshotAttributeRequest\");\nvar se_ModifySnapshotTierRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_STto] != null) {\n entries[_STto] = input[_STto];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifySnapshotTierRequest\");\nvar se_ModifySpotFleetRequestRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LTC] != null) {\n const memberEntries = se_LaunchTemplateConfigList(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfig.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ODTC] != null) {\n entries[_ODTC] = input[_ODTC];\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n if (input[_SFRIp] != null) {\n entries[_SFRIp] = input[_SFRIp];\n }\n if (input[_TCa] != null) {\n entries[_TCa] = input[_TCa];\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n return entries;\n}, \"se_ModifySpotFleetRequestRequest\");\nvar se_ModifySubnetAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIAOC] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_AIAOC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AssignIpv6AddressOnCreation.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MPIOL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_MPIOL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MapPublicIpOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_MCOIOL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_MCOIOL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MapCustomerOwnedIpOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_COIP] != null) {\n entries[_COIP] = input[_COIP];\n }\n if (input[_EDn] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EDn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableDns64.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHTOL] != null) {\n entries[_PDHTOL] = input[_PDHTOL];\n }\n if (input[_ERNDAROL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ERNDAROL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableResourceNameDnsARecordOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ERNDAAAAROL] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ERNDAAAAROL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableResourceNameDnsAAAARecordOnLaunch.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ELADI] != null) {\n entries[_ELADI] = input[_ELADI];\n }\n if (input[_DLADI] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_DLADI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DisableLniAtDeviceIndex.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifySubnetAttributeRequest\");\nvar se_ModifyTrafficMirrorFilterNetworkServicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_ANS] != null) {\n const memberEntries = se_TrafficMirrorNetworkServiceList(input[_ANS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddNetworkService.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RNS] != null) {\n const memberEntries = se_TrafficMirrorNetworkServiceList(input[_RNS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveNetworkService.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTrafficMirrorFilterNetworkServicesRequest\");\nvar se_ModifyTrafficMirrorFilterRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMFRI] != null) {\n entries[_TMFRI] = input[_TMFRI];\n }\n if (input[_TD] != null) {\n entries[_TD] = input[_TD];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_DPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_DPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SPR] != null) {\n const memberEntries = se_TrafficMirrorPortRangeRequest(input[_SPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_SCB] != null) {\n entries[_SCB] = input[_SCB];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_RF] != null) {\n const memberEntries = se_TrafficMirrorFilterRuleFieldList(input[_RF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveField.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTrafficMirrorFilterRuleRequest\");\nvar se_ModifyTrafficMirrorSessionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TMSI] != null) {\n entries[_TMSI] = input[_TMSI];\n }\n if (input[_TMTI] != null) {\n entries[_TMTI] = input[_TMTI];\n }\n if (input[_TMFI] != null) {\n entries[_TMFI] = input[_TMFI];\n }\n if (input[_PL] != null) {\n entries[_PL] = input[_PL];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_VNI] != null) {\n entries[_VNI] = input[_VNI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_RF] != null) {\n const memberEntries = se_TrafficMirrorSessionFieldList(input[_RF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveField.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTrafficMirrorSessionRequest\");\nvar se_ModifyTransitGatewayOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ATGCB] != null) {\n const memberEntries = se_TransitGatewayCidrBlockStringList(input[_ATGCB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddTransitGatewayCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RTGCB] != null) {\n const memberEntries = se_TransitGatewayCidrBlockStringList(input[_RTGCB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveTransitGatewayCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VES] != null) {\n entries[_VES] = input[_VES];\n }\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_AASAu] != null) {\n entries[_AASAu] = input[_AASAu];\n }\n if (input[_DRTA] != null) {\n entries[_DRTA] = input[_DRTA];\n }\n if (input[_ADRTI] != null) {\n entries[_ADRTI] = input[_ADRTI];\n }\n if (input[_DRTP] != null) {\n entries[_DRTP] = input[_DRTP];\n }\n if (input[_PDRTI] != null) {\n entries[_PDRTI] = input[_PDRTI];\n }\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n return entries;\n}, \"se_ModifyTransitGatewayOptions\");\nvar se_ModifyTransitGatewayPrefixListReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTransitGatewayPrefixListReferenceRequest\");\nvar se_ModifyTransitGatewayRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Op] != null) {\n const memberEntries = se_ModifyTransitGatewayOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTransitGatewayRequest\");\nvar se_ModifyTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_ASI] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_ASI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSIe] != null) {\n const memberEntries = se_TransitGatewaySubnetIdList(input[_RSIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Op] != null) {\n const memberEntries = se_ModifyTransitGatewayVpcAttachmentRequestOptions(input[_Op], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Options.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyTransitGatewayVpcAttachmentRequest\");\nvar se_ModifyTransitGatewayVpcAttachmentRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_ISp] != null) {\n entries[_ISp] = input[_ISp];\n }\n if (input[_AMS] != null) {\n entries[_AMS] = input[_AMS];\n }\n return entries;\n}, \"se_ModifyTransitGatewayVpcAttachmentRequestOptions\");\nvar se_ModifyVerifiedAccessEndpointCidrOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PRo] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointCidrOptions\");\nvar se_ModifyVerifiedAccessEndpointEniOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointEniOptions\");\nvar se_ModifyVerifiedAccessEndpointLoadBalancerOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIu] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_PRo] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRangeList(input[_PRo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointLoadBalancerOptions\");\nvar se_ModifyVerifiedAccessEndpointPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_PE] != null) {\n entries[_PE] = input[_PE];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointPolicyRequest\");\nvar se_ModifyVerifiedAccessEndpointPortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointPortRange\");\nvar se_ModifyVerifiedAccessEndpointPortRangeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ModifyVerifiedAccessEndpointPortRange(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointPortRangeList\");\nvar se_ModifyVerifiedAccessEndpointRdsOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIu] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointSubnetIdList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_RE] != null) {\n entries[_RE] = input[_RE];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointRdsOptions\");\nvar se_ModifyVerifiedAccessEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAEI] != null) {\n entries[_VAEI] = input[_VAEI];\n }\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_LBO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointLoadBalancerOptions(input[_LBO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancerOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NIO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointEniOptions(input[_NIO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointRdsOptions(input[_RO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RdsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CO] != null) {\n const memberEntries = se_ModifyVerifiedAccessEndpointCidrOptions(input[_CO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointRequest\");\nvar se_ModifyVerifiedAccessEndpointSubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ModifyVerifiedAccessEndpointSubnetIdList\");\nvar se_ModifyVerifiedAccessGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_PE] != null) {\n entries[_PE] = input[_PE];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessGroupPolicyRequest\");\nvar se_ModifyVerifiedAccessGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAGI] != null) {\n entries[_VAGI] = input[_VAGI];\n }\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessGroupRequest\");\nvar se_ModifyVerifiedAccessInstanceLoggingConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_AL] != null) {\n const memberEntries = se_VerifiedAccessLogOptions(input[_AL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AccessLogs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessInstanceLoggingConfigurationRequest\");\nvar se_ModifyVerifiedAccessInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VAII] != null) {\n entries[_VAII] = input[_VAII];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_CECSD] != null) {\n entries[_CECSD] = input[_CECSD];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessInstanceRequest\");\nvar se_ModifyVerifiedAccessNativeApplicationOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSKE] != null) {\n entries[_PSKE] = input[_PSKE];\n }\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessNativeApplicationOidcOptions\");\nvar se_ModifyVerifiedAccessTrustProviderDeviceOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSKU] != null) {\n entries[_PSKU] = input[_PSKU];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessTrustProviderDeviceOptions\");\nvar se_ModifyVerifiedAccessTrustProviderOidcOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TEo] != null) {\n entries[_TEo] = input[_TEo];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CIl] != null) {\n entries[_CIl] = input[_CIl];\n }\n if (input[_CSl] != null) {\n entries[_CSl] = input[_CSl];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n return entries;\n}, \"se_ModifyVerifiedAccessTrustProviderOidcOptions\");\nvar se_ModifyVerifiedAccessTrustProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VATPI] != null) {\n entries[_VATPI] = input[_VATPI];\n }\n if (input[_OO] != null) {\n const memberEntries = se_ModifyVerifiedAccessTrustProviderOidcOptions(input[_OO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DOe] != null) {\n const memberEntries = se_ModifyVerifiedAccessTrustProviderDeviceOptions(input[_DOe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DeviceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SS] != null) {\n const memberEntries = se_VerifiedAccessSseSpecificationRequest(input[_SS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SseSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NAOO] != null) {\n const memberEntries = se_ModifyVerifiedAccessNativeApplicationOidcOptions(input[_NAOO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NativeApplicationOidcOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVerifiedAccessTrustProviderRequest\");\nvar se_ModifyVolumeAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AEIO] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_AEIO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AutoEnableIO.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVolumeAttributeRequest\");\nvar se_ModifyVolumeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VIo] != null) {\n entries[_VIo] = input[_VIo];\n }\n if (input[_Siz] != null) {\n entries[_Siz] = input[_Siz];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_Th] != null) {\n entries[_Th] = input[_Th];\n }\n if (input[_MAE] != null) {\n entries[_MAE] = input[_MAE];\n }\n return entries;\n}, \"se_ModifyVolumeRequest\");\nvar se_ModifyVpcAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EDH] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EDH], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableDnsHostnames.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EDS] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_EDS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableDnsSupport.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_ENAUM] != null) {\n const memberEntries = se_AttributeBooleanValue(input[_ENAUM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnableNetworkAddressUsageMetrics.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcAttributeRequest\");\nvar se_ModifyVpcBlockPublicAccessExclusionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_EIxc] != null) {\n entries[_EIxc] = input[_EIxc];\n }\n if (input[_IGEM] != null) {\n entries[_IGEM] = input[_IGEM];\n }\n return entries;\n}, \"se_ModifyVpcBlockPublicAccessExclusionRequest\");\nvar se_ModifyVpcBlockPublicAccessOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IGBM] != null) {\n entries[_IGBM] = input[_IGBM];\n }\n return entries;\n}, \"se_ModifyVpcBlockPublicAccessOptionsRequest\");\nvar se_ModifyVpcEndpointConnectionNotificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CNIon] != null) {\n entries[_CNIon] = input[_CNIon];\n }\n if (input[_CNAon] != null) {\n entries[_CNAon] = input[_CNAon];\n }\n if (input[_CEo] != null) {\n const memberEntries = se_ValueStringList(input[_CEo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ConnectionEvents.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointConnectionNotificationRequest\");\nvar se_ModifyVpcEndpointRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_RP] != null) {\n entries[_RP] = input[_RP];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_ARTI] != null) {\n const memberEntries = se_VpcEndpointRouteTableIdList(input[_ARTI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddRouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RRTI] != null) {\n const memberEntries = se_VpcEndpointRouteTableIdList(input[_RRTI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveRouteTableId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASI] != null) {\n const memberEntries = se_VpcEndpointSubnetIdList(input[_ASI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSIe] != null) {\n const memberEntries = se_VpcEndpointSubnetIdList(input[_RSIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSubnetId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASGId] != null) {\n const memberEntries = se_VpcEndpointSecurityGroupIdList(input[_ASGId], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSGIe] != null) {\n const memberEntries = se_VpcEndpointSecurityGroupIdList(input[_RSGIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_DOn] != null) {\n const memberEntries = se_DnsOptionsSpecification(input[_DOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DnsOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDE] != null) {\n entries[_PDE] = input[_PDE];\n }\n if (input[_SC] != null) {\n const memberEntries = se_SubnetConfigurationsList(input[_SC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetConfiguration.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointRequest\");\nvar se_ModifyVpcEndpointServiceConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_PDN] != null) {\n entries[_PDN] = input[_PDN];\n }\n if (input[_RPDN] != null) {\n entries[_RPDN] = input[_RPDN];\n }\n if (input[_ARc] != null) {\n entries[_ARc] = input[_ARc];\n }\n if (input[_ANLBA] != null) {\n const memberEntries = se_ValueStringList(input[_ANLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddNetworkLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RNLBA] != null) {\n const memberEntries = se_ValueStringList(input[_RNLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveNetworkLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AGLBA] != null) {\n const memberEntries = se_ValueStringList(input[_AGLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddGatewayLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RGLBA] != null) {\n const memberEntries = se_ValueStringList(input[_RGLBA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveGatewayLoadBalancerArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASIAT] != null) {\n const memberEntries = se_ValueStringList(input[_ASIAT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSupportedIpAddressType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSIAT] != null) {\n const memberEntries = se_ValueStringList(input[_RSIAT], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSupportedIpAddressType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ASR] != null) {\n const memberEntries = se_ValueStringList(input[_ASR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddSupportedRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RSR] != null) {\n const memberEntries = se_ValueStringList(input[_RSR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveSupportedRegion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointServiceConfigurationRequest\");\nvar se_ModifyVpcEndpointServicePayerResponsibilityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_PRa] != null) {\n entries[_PRa] = input[_PRa];\n }\n return entries;\n}, \"se_ModifyVpcEndpointServicePayerResponsibilityRequest\");\nvar se_ModifyVpcEndpointServicePermissionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_AAP] != null) {\n const memberEntries = se_ValueStringList(input[_AAP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AddAllowedPrincipals.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RAP] != null) {\n const memberEntries = se_ValueStringList(input[_RAP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveAllowedPrincipals.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyVpcEndpointServicePermissionsRequest\");\nvar se_ModifyVpcPeeringConnectionOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_APCO] != null) {\n const memberEntries = se_PeeringConnectionOptionsRequest(input[_APCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AccepterPeeringConnectionOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RPCO] != null) {\n const memberEntries = se_PeeringConnectionOptionsRequest(input[_RPCO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RequesterPeeringConnectionOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_ModifyVpcPeeringConnectionOptionsRequest\");\nvar se_ModifyVpcTenancyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_ITns] != null) {\n entries[_ITns] = input[_ITns];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpcTenancyRequest\");\nvar se_ModifyVpnConnectionOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_LINC] != null) {\n entries[_LINC] = input[_LINC];\n }\n if (input[_RINC] != null) {\n entries[_RINC] = input[_RINC];\n }\n if (input[_LINCo] != null) {\n entries[_LINCo] = input[_LINCo];\n }\n if (input[_RINCe] != null) {\n entries[_RINCe] = input[_RINCe];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpnConnectionOptionsRequest\");\nvar se_ModifyVpnConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_CGIu] != null) {\n entries[_CGIu] = input[_CGIu];\n }\n if (input[_VGI] != null) {\n entries[_VGI] = input[_VGI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpnConnectionRequest\");\nvar se_ModifyVpnTunnelCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ModifyVpnTunnelCertificateRequest\");\nvar se_ModifyVpnTunnelOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_TO] != null) {\n const memberEntries = se_ModifyVpnTunnelOptionsSpecification(input[_TO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TunnelOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_STR] != null) {\n entries[_STR] = input[_STR];\n }\n return entries;\n}, \"se_ModifyVpnTunnelOptionsRequest\");\nvar se_ModifyVpnTunnelOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TIC] != null) {\n entries[_TIC] = input[_TIC];\n }\n if (input[_TIIC] != null) {\n entries[_TIIC] = input[_TIIC];\n }\n if (input[_PSK] != null) {\n entries[_PSK] = input[_PSK];\n }\n if (input[_PLS] != null) {\n entries[_PLS] = input[_PLS];\n }\n if (input[_PLSh] != null) {\n entries[_PLSh] = input[_PLSh];\n }\n if (input[_RMTS] != null) {\n entries[_RMTS] = input[_RMTS];\n }\n if (input[_RFP] != null) {\n entries[_RFP] = input[_RFP];\n }\n if (input[_RWS] != null) {\n entries[_RWS] = input[_RWS];\n }\n if (input[_DPDTS] != null) {\n entries[_DPDTS] = input[_DPDTS];\n }\n if (input[_DPDTA] != null) {\n entries[_DPDTA] = input[_DPDTA];\n }\n if (input[_PEA] != null) {\n const memberEntries = se_Phase1EncryptionAlgorithmsRequestList(input[_PEA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PEAh] != null) {\n const memberEntries = se_Phase2EncryptionAlgorithmsRequestList(input[_PEAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAh] != null) {\n const memberEntries = se_Phase1IntegrityAlgorithmsRequestList(input[_PIAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAha] != null) {\n const memberEntries = se_Phase2IntegrityAlgorithmsRequestList(input[_PIAha], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGN] != null) {\n const memberEntries = se_Phase1DHGroupNumbersRequestList(input[_PDHGN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGNh] != null) {\n const memberEntries = se_Phase2DHGroupNumbersRequestList(input[_PDHGNh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IKEVe] != null) {\n const memberEntries = se_IKEVersionsRequestList(input[_IKEVe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IKEVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SA] != null) {\n entries[_SA] = input[_SA];\n }\n if (input[_LO] != null) {\n const memberEntries = se_VpnTunnelLogOptionsSpecification(input[_LO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ETLC] != null) {\n entries[_ETLC] = input[_ETLC];\n }\n return entries;\n}, \"se_ModifyVpnTunnelOptionsSpecification\");\nvar se_MonitorInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_MonitorInstancesRequest\");\nvar se_MoveAddressToVpcRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n return entries;\n}, \"se_MoveAddressToVpcRequest\");\nvar se_MoveByoipCidrToIpamRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_IPO] != null) {\n entries[_IPO] = input[_IPO];\n }\n return entries;\n}, \"se_MoveByoipCidrToIpamRequest\");\nvar se_MoveCapacityReservationInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_SCRI] != null) {\n entries[_SCRI] = input[_SCRI];\n }\n if (input[_DCRI] != null) {\n entries[_DCRI] = input[_DCRI];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n return entries;\n}, \"se_MoveCapacityReservationInstancesRequest\");\nvar se_NatGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NatGatewayIdStringList\");\nvar se_NetworkAclIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkAclIdStringList\");\nvar se_NetworkBandwidthGbps = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_NetworkBandwidthGbps\");\nvar se_NetworkBandwidthGbpsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_NetworkBandwidthGbpsRequest\");\nvar se_NetworkInsightsAccessScopeAnalysisIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsAccessScopeAnalysisIdList\");\nvar se_NetworkInsightsAccessScopeIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsAccessScopeIdList\");\nvar se_NetworkInsightsAnalysisIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsAnalysisIdList\");\nvar se_NetworkInsightsPathIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInsightsPathIdList\");\nvar se_NetworkInterfaceAttachmentChanges = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DEQC] != null) {\n entries[_DEQC] = input[_DEQC];\n }\n if (input[_EQC] != null) {\n entries[_EQC] = input[_EQC];\n }\n if (input[_AIt] != null) {\n entries[_AIt] = input[_AIt];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n return entries;\n}, \"se_NetworkInterfaceAttachmentChanges\");\nvar se_NetworkInterfaceCount = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_NetworkInterfaceCount\");\nvar se_NetworkInterfaceCountRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_NetworkInterfaceCountRequest\");\nvar se_NetworkInterfaceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInterfaceIdList\");\nvar se_NetworkInterfacePermissionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_NetworkInterfacePermissionIdList\");\nvar se_NewDhcpConfiguration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Val] != null) {\n const memberEntries = se_ValueStringList(input[_Val], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Value.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_NewDhcpConfiguration\");\nvar se_NewDhcpConfigurationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_NewDhcpConfiguration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_NewDhcpConfigurationList\");\nvar se_OccurrenceDayRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`OccurenceDay.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OccurrenceDayRequestSet\");\nvar se_OnDemandOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_CRO] != null) {\n const memberEntries = se_CapacityReservationOptionsRequest(input[_CRO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SITi] != null) {\n entries[_SITi] = input[_SITi];\n }\n if (input[_SAZ] != null) {\n entries[_SAZ] = input[_SAZ];\n }\n if (input[_MTC] != null) {\n entries[_MTC] = input[_MTC];\n }\n if (input[_MTP] != null) {\n entries[_MTP] = input[_MTP];\n }\n return entries;\n}, \"se_OnDemandOptionsRequest\");\nvar se_OperatorRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Prin] != null) {\n entries[_Prin] = input[_Prin];\n }\n return entries;\n}, \"se_OperatorRequest\");\nvar se_OrganizationalUnitArnStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`OrganizationalUnitArn.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OrganizationalUnitArnStringList\");\nvar se_OrganizationArnStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`OrganizationArn.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OrganizationArnStringList\");\nvar se_OutpostLagIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OutpostLagIdSet\");\nvar se_OwnerStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Owner.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_OwnerStringList\");\nvar se_PacketHeaderStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAo] != null) {\n const memberEntries = se_ValueStringList(input[_SAo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DAes] != null) {\n const memberEntries = se_ValueStringList(input[_DAes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPo] != null) {\n const memberEntries = se_ValueStringList(input[_SPo], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePort.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DPes] != null) {\n const memberEntries = se_ValueStringList(input[_DPes], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPort.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPL] != null) {\n const memberEntries = se_ValueStringList(input[_SPL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePrefixList.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DPLe] != null) {\n const memberEntries = se_ValueStringList(input[_DPLe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPrefixList.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pro] != null) {\n const memberEntries = se_ProtocolList(input[_Pro], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Protocol.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PacketHeaderStatementRequest\");\nvar se_PathRequestFilter = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAou] != null) {\n entries[_SAou] = input[_SAou];\n }\n if (input[_SPR] != null) {\n const memberEntries = se_RequestFilterPortRange(input[_SPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourcePortRange.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAest] != null) {\n entries[_DAest] = input[_DAest];\n }\n if (input[_DPR] != null) {\n const memberEntries = se_RequestFilterPortRange(input[_DPR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DestinationPortRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PathRequestFilter\");\nvar se_PathStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PHS] != null) {\n const memberEntries = se_PacketHeaderStatementRequest(input[_PHS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PacketHeaderStatement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RSe] != null) {\n const memberEntries = se_ResourceStatementRequest(input[_RSe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceStatement.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PathStatementRequest\");\nvar se_PeeringConnectionOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ADRFRV] != null) {\n entries[_ADRFRV] = input[_ADRFRV];\n }\n if (input[_AEFLCLTRV] != null) {\n entries[_AEFLCLTRV] = input[_AEFLCLTRV];\n }\n if (input[_AEFLVTRCL] != null) {\n entries[_AEFLVTRCL] = input[_AEFLVTRCL];\n }\n return entries;\n}, \"se_PeeringConnectionOptionsRequest\");\nvar se_PerformanceFactorReference = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n return entries;\n}, \"se_PerformanceFactorReference\");\nvar se_PerformanceFactorReferenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IF] != null) {\n entries[_IF] = input[_IF];\n }\n return entries;\n}, \"se_PerformanceFactorReferenceRequest\");\nvar se_PerformanceFactorReferenceSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PerformanceFactorReference(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PerformanceFactorReferenceSet\");\nvar se_PerformanceFactorReferenceSetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PerformanceFactorReferenceRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PerformanceFactorReferenceSetRequest\");\nvar se_Phase1DHGroupNumbersRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase1DHGroupNumbersRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase1DHGroupNumbersRequestList\");\nvar se_Phase1DHGroupNumbersRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase1DHGroupNumbersRequestListValue\");\nvar se_Phase1EncryptionAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase1EncryptionAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase1EncryptionAlgorithmsRequestList\");\nvar se_Phase1EncryptionAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase1EncryptionAlgorithmsRequestListValue\");\nvar se_Phase1IntegrityAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase1IntegrityAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase1IntegrityAlgorithmsRequestList\");\nvar se_Phase1IntegrityAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase1IntegrityAlgorithmsRequestListValue\");\nvar se_Phase2DHGroupNumbersRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase2DHGroupNumbersRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase2DHGroupNumbersRequestList\");\nvar se_Phase2DHGroupNumbersRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase2DHGroupNumbersRequestListValue\");\nvar se_Phase2EncryptionAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase2EncryptionAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase2EncryptionAlgorithmsRequestList\");\nvar se_Phase2EncryptionAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase2EncryptionAlgorithmsRequestListValue\");\nvar se_Phase2IntegrityAlgorithmsRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Phase2IntegrityAlgorithmsRequestListValue(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Phase2IntegrityAlgorithmsRequestList\");\nvar se_Phase2IntegrityAlgorithmsRequestListValue = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Phase2IntegrityAlgorithmsRequestListValue\");\nvar se_Placement = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Af] != null) {\n entries[_Af] = input[_Af];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_HIo] != null) {\n entries[_HIo] = input[_HIo];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n if (input[_SDp] != null) {\n entries[_SDp] = input[_SDp];\n }\n if (input[_HRGA] != null) {\n entries[_HRGA] = input[_HRGA];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n return entries;\n}, \"se_Placement\");\nvar se_PlacementGroupIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`GroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PlacementGroupIdStringList\");\nvar se_PlacementGroupStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PlacementGroupStringList\");\nvar se_PortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fr] != null) {\n entries[_Fr] = input[_Fr];\n }\n if (input[_To] != null) {\n entries[_To] = input[_To];\n }\n return entries;\n}, \"se_PortRange\");\nvar se_PrefixListId = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n return entries;\n}, \"se_PrefixListId\");\nvar se_PrefixListIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PrefixListId(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PrefixListIdList\");\nvar se_PrefixListResourceIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PrefixListResourceIdStringList\");\nvar se_PriceScheduleSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ter] != null) {\n entries[_Ter] = input[_Ter];\n }\n if (input[_Pric] != null) {\n entries[_Pric] = (0, import_smithy_client.serializeFloat)(input[_Pric]);\n }\n if (input[_CCu] != null) {\n entries[_CCu] = input[_CCu];\n }\n return entries;\n}, \"se_PriceScheduleSpecification\");\nvar se_PriceScheduleSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PriceScheduleSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PriceScheduleSpecificationList\");\nvar se_PrivateDnsNameOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HTo] != null) {\n entries[_HTo] = input[_HTo];\n }\n if (input[_ERNDAR] != null) {\n entries[_ERNDAR] = input[_ERNDAR];\n }\n if (input[_ERNDAAAAR] != null) {\n entries[_ERNDAAAAR] = input[_ERNDAAAAR];\n }\n return entries;\n}, \"se_PrivateDnsNameOptionsRequest\");\nvar se_PrivateIpAddressConfigSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesPrivateIpAddressConfig(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`PrivateIpAddressConfigSet.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PrivateIpAddressConfigSet\");\nvar se_PrivateIpAddressSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Prim] != null) {\n entries[_Prim] = input[_Prim];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n return entries;\n}, \"se_PrivateIpAddressSpecification\");\nvar se_PrivateIpAddressSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PrivateIpAddressSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PrivateIpAddressSpecificationList\");\nvar se_PrivateIpAddressStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`PrivateIpAddress.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PrivateIpAddressStringList\");\nvar se_ProductCodeStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ProductCode.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ProductCodeStringList\");\nvar se_ProductDescriptionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ProductDescriptionList\");\nvar se_ProtocolList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ProtocolList\");\nvar se_ProvisionByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CAC] != null) {\n const memberEntries = se_CidrAuthorizationContext(input[_CAC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrAuthorizationContext.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PTS] != null) {\n const memberEntries = se_TagSpecificationList(input[_PTS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PoolTagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MRu] != null) {\n entries[_MRu] = input[_MRu];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_ProvisionByoipCidrRequest\");\nvar se_ProvisionIpamByoasnRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIp] != null) {\n entries[_IIp] = input[_IIp];\n }\n if (input[_As] != null) {\n entries[_As] = input[_As];\n }\n if (input[_AAC] != null) {\n const memberEntries = se_AsnAuthorizationContext(input[_AAC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AsnAuthorizationContext.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ProvisionIpamByoasnRequest\");\nvar se_ProvisionIpamPoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_CAC] != null) {\n const memberEntries = se_IpamCidrAuthorizationContext(input[_CAC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CidrAuthorizationContext.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NL] != null) {\n entries[_NL] = input[_NL];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_VM] != null) {\n entries[_VM] = input[_VM];\n }\n if (input[_IERVTI] != null) {\n entries[_IERVTI] = input[_IERVTI];\n }\n return entries;\n}, \"se_ProvisionIpamPoolCidrRequest\");\nvar se_ProvisionPublicIpv4PoolCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_PIo] != null) {\n entries[_PIo] = input[_PIo];\n }\n if (input[_NL] != null) {\n entries[_NL] = input[_NL];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n return entries;\n}, \"se_ProvisionPublicIpv4PoolCidrRequest\");\nvar se_PublicIpStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`PublicIp.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PublicIpStringList\");\nvar se_PublicIpv4PoolIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_PublicIpv4PoolIdStringList\");\nvar se_PurchaseCapacityBlockExtensionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CBEOI] != null) {\n entries[_CBEOI] = input[_CBEOI];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_PurchaseCapacityBlockExtensionRequest\");\nvar se_PurchaseCapacityBlockRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CBOI] != null) {\n entries[_CBOI] = input[_CBOI];\n }\n if (input[_IPn] != null) {\n entries[_IPn] = input[_IPn];\n }\n return entries;\n}, \"se_PurchaseCapacityBlockRequest\");\nvar se_PurchaseHostReservationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_CCu] != null) {\n entries[_CCu] = input[_CCu];\n }\n if (input[_HIS] != null) {\n const memberEntries = se_RequestHostIdSet(input[_HIS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostIdSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LPi] != null) {\n entries[_LPi] = input[_LPi];\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PurchaseHostReservationRequest\");\nvar se_PurchaseRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_PT] != null) {\n entries[_PT] = input[_PT];\n }\n return entries;\n}, \"se_PurchaseRequest\");\nvar se_PurchaseRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PurchaseRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`PurchaseRequest.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_PurchaseRequestSet\");\nvar se_PurchaseReservedInstancesOfferingRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_RIOIe] != null) {\n entries[_RIOIe] = input[_RIOIe];\n }\n if (input[_PTu] != null) {\n entries[_PTu] = (0, import_smithy_client.serializeDateTime)(input[_PTu]);\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_LPi] != null) {\n const memberEntries = se_ReservedInstanceLimitPrice(input[_LPi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LimitPrice.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PurchaseReservedInstancesOfferingRequest\");\nvar se_PurchaseScheduledInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PRu] != null) {\n const memberEntries = se_PurchaseRequestSet(input[_PRu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PurchaseRequest.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PurchaseScheduledInstancesRequest\");\nvar se_ReasonCodesList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReasonCodesList\");\nvar se_RebootInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RebootInstancesRequest\");\nvar se_RegionNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RegionNames\");\nvar se_RegionNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`RegionName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RegionNameStringList\");\nvar se_RegisterImageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IL] != null) {\n entries[_IL] = input[_IL];\n }\n if (input[_BPi] != null) {\n const memberEntries = se_BillingProductList(input[_BPi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BillingProduct.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_BM] != null) {\n entries[_BM] = input[_BM];\n }\n if (input[_TSp] != null) {\n entries[_TSp] = input[_TSp];\n }\n if (input[_UDe] != null) {\n entries[_UDe] = input[_UDe];\n }\n if (input[_ISm] != null) {\n entries[_ISm] = input[_ISm];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Arc] != null) {\n entries[_Arc] = input[_Arc];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_RDN] != null) {\n entries[_RDN] = input[_RDN];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_VTir] != null) {\n entries[_VTir] = input[_VTir];\n }\n if (input[_SNS] != null) {\n entries[_SNS] = input[_SNS];\n }\n if (input[_ESn] != null) {\n entries[_ESn] = input[_ESn];\n }\n return entries;\n}, \"se_RegisterImageRequest\");\nvar se_RegisterInstanceEventNotificationAttributesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_ITA] != null) {\n const memberEntries = se_RegisterInstanceTagAttributeRequest(input[_ITA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagAttribute.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RegisterInstanceEventNotificationAttributesRequest\");\nvar se_RegisterInstanceTagAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IATOI] != null) {\n entries[_IATOI] = input[_IATOI];\n }\n if (input[_ITK] != null) {\n const memberEntries = se_InstanceTagKeySet(input[_ITK], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceTagKey.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RegisterInstanceTagAttributeRequest\");\nvar se_RegisterTransitGatewayMulticastGroupMembersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RegisterTransitGatewayMulticastGroupMembersRequest\");\nvar se_RegisterTransitGatewayMulticastGroupSourcesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_GIA] != null) {\n entries[_GIA] = input[_GIA];\n }\n if (input[_NIIe] != null) {\n const memberEntries = se_TransitGatewayNetworkInterfaceIdList(input[_NIIe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RegisterTransitGatewayMulticastGroupSourcesRequest\");\nvar se_RejectCapacityReservationBillingOwnershipRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_CRI] != null) {\n entries[_CRI] = input[_CRI];\n }\n return entries;\n}, \"se_RejectCapacityReservationBillingOwnershipRequest\");\nvar se_RejectTransitGatewayMulticastDomainAssociationsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_SIu] != null) {\n const memberEntries = se_ValueStringList(input[_SIu], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetIds.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RejectTransitGatewayMulticastDomainAssociationsRequest\");\nvar se_RejectTransitGatewayPeeringAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RejectTransitGatewayPeeringAttachmentRequest\");\nvar se_RejectTransitGatewayVpcAttachmentRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RejectTransitGatewayVpcAttachmentRequest\");\nvar se_RejectVpcEndpointConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n if (input[_VEI] != null) {\n const memberEntries = se_VpcEndpointIdList(input[_VEI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `VpcEndpointId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RejectVpcEndpointConnectionsRequest\");\nvar se_RejectVpcPeeringConnectionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n return entries;\n}, \"se_RejectVpcPeeringConnectionRequest\");\nvar se_ReleaseAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_NBG] != null) {\n entries[_NBG] = input[_NBG];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReleaseAddressRequest\");\nvar se_ReleaseHostsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HI] != null) {\n const memberEntries = se_RequestHostIdList(input[_HI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ReleaseHostsRequest\");\nvar se_ReleaseIpamPoolAllocationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IPI] != null) {\n entries[_IPI] = input[_IPI];\n }\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_IPAI] != null) {\n entries[_IPAI] = input[_IPAI];\n }\n return entries;\n}, \"se_ReleaseIpamPoolAllocationRequest\");\nvar se_RemoveIpamOperatingRegion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_RemoveIpamOperatingRegion\");\nvar se_RemoveIpamOperatingRegionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RemoveIpamOperatingRegion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RemoveIpamOperatingRegionSet\");\nvar se_RemoveIpamOrganizationalUnitExclusion = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OEP] != null) {\n entries[_OEP] = input[_OEP];\n }\n return entries;\n}, \"se_RemoveIpamOrganizationalUnitExclusion\");\nvar se_RemoveIpamOrganizationalUnitExclusionSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RemoveIpamOrganizationalUnitExclusion(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RemoveIpamOrganizationalUnitExclusionSet\");\nvar se_RemovePrefixListEntries = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RemovePrefixListEntry(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RemovePrefixListEntries\");\nvar se_RemovePrefixListEntry = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n return entries;\n}, \"se_RemovePrefixListEntry\");\nvar se_ReplaceIamInstanceProfileAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n return entries;\n}, \"se_ReplaceIamInstanceProfileAssociationRequest\");\nvar se_ReplaceImageCriteriaInAllowedImagesSettingsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ICm] != null) {\n const memberEntries = se_ImageCriterionRequestList(input[_ICm], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ImageCriterion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReplaceImageCriteriaInAllowedImagesSettingsRequest\");\nvar se_ReplaceNetworkAclAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n return entries;\n}, \"se_ReplaceNetworkAclAssociationRequest\");\nvar se_ReplaceNetworkAclEntryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NAI] != null) {\n entries[_NAI] = input[_NAI];\n }\n if (input[_RNu] != null) {\n entries[_RNu] = input[_RNu];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Eg] != null) {\n entries[_Eg] = input[_Eg];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_ICB] != null) {\n entries[_ICB] = input[_ICB];\n }\n if (input[_ITC] != null) {\n const memberEntries = se_IcmpTypeCode(input[_ITC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Icmp.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PR] != null) {\n const memberEntries = se_PortRange(input[_PR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PortRange.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ReplaceNetworkAclEntryRequest\");\nvar se_ReplaceRootVolumeTaskIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReplaceRootVolumeTaskId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReplaceRootVolumeTaskIds\");\nvar se_ReplaceRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DPLI] != null) {\n entries[_DPLI] = input[_DPLI];\n }\n if (input[_VEIp] != null) {\n entries[_VEIp] = input[_VEIp];\n }\n if (input[_LTo] != null) {\n entries[_LTo] = input[_LTo];\n }\n if (input[_TGI] != null) {\n entries[_TGI] = input[_TGI];\n }\n if (input[_LGI] != null) {\n entries[_LGI] = input[_LGI];\n }\n if (input[_CGI] != null) {\n entries[_CGI] = input[_CGI];\n }\n if (input[_CNAo] != null) {\n entries[_CNAo] = input[_CNAo];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_GI] != null) {\n entries[_GI] = input[_GI];\n }\n if (input[_DICB] != null) {\n entries[_DICB] = input[_DICB];\n }\n if (input[_EOIGI] != null) {\n entries[_EOIGI] = input[_EOIGI];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n return entries;\n}, \"se_ReplaceRouteRequest\");\nvar se_ReplaceRouteTableAssociationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_AIss] != null) {\n entries[_AIss] = input[_AIss];\n }\n if (input[_RTI] != null) {\n entries[_RTI] = input[_RTI];\n }\n return entries;\n}, \"se_ReplaceRouteTableAssociationRequest\");\nvar se_ReplaceTransitGatewayRouteRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DCB] != null) {\n entries[_DCB] = input[_DCB];\n }\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_TGAI] != null) {\n entries[_TGAI] = input[_TGAI];\n }\n if (input[_Bl] != null) {\n entries[_Bl] = input[_Bl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReplaceTransitGatewayRouteRequest\");\nvar se_ReplaceVpnTunnelRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_VCI] != null) {\n entries[_VCI] = input[_VCI];\n }\n if (input[_VTOIA] != null) {\n entries[_VTOIA] = input[_VTOIA];\n }\n if (input[_APM] != null) {\n entries[_APM] = input[_APM];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ReplaceVpnTunnelRequest\");\nvar se_ReportInstanceStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_In] != null) {\n const memberEntries = se_InstanceIdStringList(input[_In], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Statu] != null) {\n entries[_Statu] = input[_Statu];\n }\n if (input[_STt] != null) {\n entries[_STt] = (0, import_smithy_client.serializeDateTime)(input[_STt]);\n }\n if (input[_ETn] != null) {\n entries[_ETn] = (0, import_smithy_client.serializeDateTime)(input[_ETn]);\n }\n if (input[_RCe] != null) {\n const memberEntries = se_ReasonCodesList(input[_RCe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ReasonCode.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_ReportInstanceStatusRequest\");\nvar se_RequestFilterPortRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_RequestFilterPortRange\");\nvar se_RequestHostIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestHostIdList\");\nvar se_RequestHostIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestHostIdSet\");\nvar se_RequestInstanceTypeList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestInstanceTypeList\");\nvar se_RequestIpamResourceTag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_RequestIpamResourceTag\");\nvar se_RequestIpamResourceTagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RequestIpamResourceTag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RequestIpamResourceTagList\");\nvar se_RequestLaunchTemplateData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_LaunchTemplateIamInstanceProfileSpecificationRequest(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_BDM] != null) {\n const memberEntries = se_LaunchTemplateBlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_LaunchTemplatesMonitoringRequest(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_LaunchTemplatePlacementRequest(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RDI] != null) {\n entries[_RDI] = input[_RDI];\n }\n if (input[_DATis] != null) {\n entries[_DATis] = input[_DATis];\n }\n if (input[_IISB] != null) {\n entries[_IISB] = input[_IISB];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n if (input[_TS] != null) {\n const memberEntries = se_LaunchTemplateTagSpecificationRequestList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EGS] != null) {\n const memberEntries = se_ElasticGpuSpecificationList(input[_EGS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticGpuSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EIA] != null) {\n const memberEntries = se_LaunchTemplateElasticInferenceAcceleratorList(input[_EIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticInferenceAccelerator.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroupStringList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IMO] != null) {\n const memberEntries = se_LaunchTemplateInstanceMarketOptionsRequest(input[_IMO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceMarketOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CSred] != null) {\n const memberEntries = se_CreditSpecificationRequest(input[_CSred], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CreditSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_COp] != null) {\n const memberEntries = se_LaunchTemplateCpuOptionsRequest(input[_COp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CRSa] != null) {\n const memberEntries = se_LaunchTemplateCapacityReservationSpecificationRequest(input[_CRSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSi] != null) {\n const memberEntries = se_LaunchTemplateLicenseSpecificationListRequest(input[_LSi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LicenseSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_HO] != null) {\n const memberEntries = se_LaunchTemplateHibernationOptionsRequest(input[_HO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HibernationOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MO] != null) {\n const memberEntries = se_LaunchTemplateInstanceMetadataOptionsRequest(input[_MO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MetadataOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EOn] != null) {\n const memberEntries = se_LaunchTemplateEnclaveOptionsRequest(input[_EOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnclaveOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirementsRequest(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDNO] != null) {\n const memberEntries = se_LaunchTemplatePrivateDnsNameOptionsRequest(input[_PDNO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateDnsNameOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MOa] != null) {\n const memberEntries = se_LaunchTemplateInstanceMaintenanceOptionsRequest(input[_MOa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MaintenanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAS] != null) {\n entries[_DAS] = input[_DAS];\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NPO] != null) {\n const memberEntries = se_LaunchTemplateNetworkPerformanceOptionsRequest(input[_NPO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkPerformanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RequestLaunchTemplateData\");\nvar se_RequestSpotFleetRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SFRC] != null) {\n const memberEntries = se_SpotFleetRequestConfigData(input[_SFRC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotFleetRequestConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RequestSpotFleetRequest\");\nvar se_RequestSpotInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LSa] != null) {\n const memberEntries = se_RequestSpotLaunchSpecification(input[_LSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VF] != null) {\n entries[_VF] = (0, import_smithy_client.serializeDateTime)(input[_VF]);\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_LG] != null) {\n entries[_LG] = input[_LG];\n }\n if (input[_AZG] != null) {\n entries[_AZG] = input[_AZG];\n }\n if (input[_BDMl] != null) {\n entries[_BDMl] = input[_BDMl];\n }\n return entries;\n}, \"se_RequestSpotInstancesRequest\");\nvar se_RequestSpotLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGI] != null) {\n const memberEntries = se_RequestSpotLaunchSpecificationSecurityGroupIdList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_RequestSpotLaunchSpecificationSecurityGroupList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ATd] != null) {\n entries[_ATd] = input[_ATd];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_RunInstancesMonitoringEnabled(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_InstanceNetworkInterfaceSpecificationList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_SpotPlacement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n return entries;\n}, \"se_RequestSpotLaunchSpecification\");\nvar se_RequestSpotLaunchSpecificationSecurityGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestSpotLaunchSpecificationSecurityGroupIdList\");\nvar se_RequestSpotLaunchSpecificationSecurityGroupList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RequestSpotLaunchSpecificationSecurityGroupList\");\nvar se_ReservationFleetInstanceSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IPn] != null) {\n entries[_IPn] = input[_IPn];\n }\n if (input[_W] != null) {\n entries[_W] = (0, import_smithy_client.serializeFloat)(input[_W]);\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_Pri] != null) {\n entries[_Pri] = input[_Pri];\n }\n return entries;\n}, \"se_ReservationFleetInstanceSpecification\");\nvar se_ReservationFleetInstanceSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ReservationFleetInstanceSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ReservationFleetInstanceSpecificationList\");\nvar se_ReservedInstanceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReservedInstanceId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstanceIdSet\");\nvar se_ReservedInstanceLimitPrice = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Am] != null) {\n entries[_Am] = (0, import_smithy_client.serializeFloat)(input[_Am]);\n }\n if (input[_CCu] != null) {\n entries[_CCu] = input[_CCu];\n }\n return entries;\n}, \"se_ReservedInstanceLimitPrice\");\nvar se_ReservedInstancesConfiguration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_Pla] != null) {\n entries[_Pla] = input[_Pla];\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n if (input[_AZI] != null) {\n entries[_AZI] = input[_AZI];\n }\n return entries;\n}, \"se_ReservedInstancesConfiguration\");\nvar se_ReservedInstancesConfigurationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ReservedInstancesConfiguration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesConfigurationList\");\nvar se_ReservedInstancesIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReservedInstancesId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesIdStringList\");\nvar se_ReservedInstancesModificationIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ReservedInstancesModificationId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesModificationIdStringList\");\nvar se_ReservedInstancesOfferingIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ReservedInstancesOfferingIdStringList\");\nvar se_ResetAddressAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AIl] != null) {\n entries[_AIl] = input[_AIl];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetAddressAttributeRequest\");\nvar se_ResetEbsDefaultKmsKeyIdRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetEbsDefaultKmsKeyIdRequest\");\nvar se_ResetFpgaImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_FII] != null) {\n entries[_FII] = input[_FII];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_ResetFpgaImageAttributeRequest\");\nvar se_ResetImageAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetImageAttributeRequest\");\nvar se_ResetInstanceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n return entries;\n}, \"se_ResetInstanceAttributeRequest\");\nvar se_ResetNetworkInterfaceAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_SDC] != null) {\n entries[_SDC] = input[_SDC];\n }\n return entries;\n}, \"se_ResetNetworkInterfaceAttributeRequest\");\nvar se_ResetSnapshotAttributeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_At] != null) {\n entries[_At] = input[_At];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_ResetSnapshotAttributeRequest\");\nvar se_ResourceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceIdList\");\nvar se_ResourceList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceList\");\nvar se_ResourceStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Re] != null) {\n const memberEntries = se_ValueStringList(input[_Re], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Resource.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_RTeso] != null) {\n const memberEntries = se_ValueStringList(input[_RTeso], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceType.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ResourceStatementRequest\");\nvar se_RestorableByStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RestorableByStringList\");\nvar se_RestoreAddressToClassicRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n return entries;\n}, \"se_RestoreAddressToClassicRequest\");\nvar se_RestoreImageFromRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RestoreImageFromRecycleBinRequest\");\nvar se_RestoreManagedPrefixListVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_PV] != null) {\n entries[_PV] = input[_PV];\n }\n if (input[_CVu] != null) {\n entries[_CVu] = input[_CVu];\n }\n return entries;\n}, \"se_RestoreManagedPrefixListVersionRequest\");\nvar se_RestoreSnapshotFromRecycleBinRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RestoreSnapshotFromRecycleBinRequest\");\nvar se_RestoreSnapshotTierRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_TRD] != null) {\n entries[_TRD] = input[_TRD];\n }\n if (input[_PRer] != null) {\n entries[_PRer] = input[_PRer];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RestoreSnapshotTierRequest\");\nvar se_RevokeClientVpnIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_TNC] != null) {\n entries[_TNC] = input[_TNC];\n }\n if (input[_AGI] != null) {\n entries[_AGI] = input[_AGI];\n }\n if (input[_RAG] != null) {\n entries[_RAG] = input[_RAG];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RevokeClientVpnIngressRequest\");\nvar se_RevokeSecurityGroupEgressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGRI] != null) {\n const memberEntries = se_SecurityGroupRuleIdList(input[_SGRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RevokeSecurityGroupEgressRequest\");\nvar se_RevokeSecurityGroupIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CIi] != null) {\n entries[_CIi] = input[_CIi];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_SSGN] != null) {\n entries[_SSGN] = input[_SSGN];\n }\n if (input[_SSGOI] != null) {\n entries[_SSGOI] = input[_SSGOI];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_SGRI] != null) {\n const memberEntries = se_SecurityGroupRuleIdList(input[_SGRI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_RevokeSecurityGroupIngressRequest\");\nvar se_RouteServerBgpOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAee] != null) {\n entries[_PAee] = input[_PAee];\n }\n if (input[_PLD] != null) {\n entries[_PLD] = input[_PLD];\n }\n return entries;\n}, \"se_RouteServerBgpOptionsRequest\");\nvar se_RouteServerEndpointIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteServerEndpointIdsList\");\nvar se_RouteServerIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteServerIdsList\");\nvar se_RouteServerPeerIdsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteServerPeerIdsList\");\nvar se_RouteTableIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RouteTableIdStringList\");\nvar se_RunInstancesMonitoringEnabled = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_RunInstancesMonitoringEnabled\");\nvar se_RunInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingRequestList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_InstanceIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Address.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_MC] != null) {\n entries[_MC] = input[_MC];\n }\n if (input[_MCi] != null) {\n entries[_MCi] = input[_MCi];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_RunInstancesMonitoringEnabled(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_Placement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_SecurityGroupIdStringList(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroupStringList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroup.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n if (input[_EGSl] != null) {\n const memberEntries = se_ElasticGpuSpecifications(input[_EGSl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticGpuSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EIA] != null) {\n const memberEntries = se_ElasticInferenceAccelerators(input[_EIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ElasticInferenceAccelerator.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LTa] != null) {\n const memberEntries = se_LaunchTemplateSpecification(input[_LTa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplate.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IMO] != null) {\n const memberEntries = se_InstanceMarketOptionsRequest(input[_IMO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceMarketOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CSred] != null) {\n const memberEntries = se_CreditSpecificationRequest(input[_CSred], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CreditSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_COp] != null) {\n const memberEntries = se_CpuOptionsRequest(input[_COp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CpuOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CRSa] != null) {\n const memberEntries = se_CapacityReservationSpecification(input[_CRSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityReservationSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HO] != null) {\n const memberEntries = se_HibernationOptionsRequest(input[_HO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HibernationOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LSi] != null) {\n const memberEntries = se_LicenseSpecificationListRequest(input[_LSi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LicenseSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MO] != null) {\n const memberEntries = se_InstanceMetadataOptionsRequest(input[_MO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MetadataOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EOn] != null) {\n const memberEntries = se_EnclaveOptionsRequest(input[_EOn], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `EnclaveOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PDNO] != null) {\n const memberEntries = se_PrivateDnsNameOptionsRequest(input[_PDNO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateDnsNameOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MOa] != null) {\n const memberEntries = se_InstanceMaintenanceOptionsRequest(input[_MOa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MaintenanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DAS] != null) {\n entries[_DAS] = input[_DAS];\n }\n if (input[_EPI] != null) {\n entries[_EPI] = input[_EPI];\n }\n if (input[_NPO] != null) {\n const memberEntries = se_InstanceNetworkPerformanceOptionsRequest(input[_NPO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkPerformanceOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n const memberEntries = se_OperatorRequest(input[_O], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Operator.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_DATis] != null) {\n entries[_DATis] = input[_DATis];\n }\n if (input[_IISB] != null) {\n entries[_IISB] = input[_IISB];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_NI] != null) {\n const memberEntries = se_InstanceNetworkInterfaceSpecificationList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n return entries;\n}, \"se_RunInstancesRequest\");\nvar se_RunScheduledInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_LSa] != null) {\n const memberEntries = se_ScheduledInstancesLaunchSpecification(input[_LSa], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecification.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIIch] != null) {\n entries[_SIIch] = input[_SIIch];\n }\n return entries;\n}, \"se_RunScheduledInstancesRequest\");\nvar se_S3ObjectTag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_S3ObjectTag\");\nvar se_S3ObjectTagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_S3ObjectTag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_S3ObjectTagList\");\nvar se_S3Storage = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AWSAKI] != null) {\n entries[_AWSAKI] = input[_AWSAKI];\n }\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n if (input[_UP] != null) {\n entries[_UP] = context.base64Encoder(input[_UP]);\n }\n if (input[_UPS] != null) {\n entries[_UPS] = input[_UPS];\n }\n return entries;\n}, \"se_S3Storage\");\nvar se_ScheduledInstanceIdRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ScheduledInstanceId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstanceIdRequestSet\");\nvar se_ScheduledInstanceRecurrenceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Fre] != null) {\n entries[_Fre] = input[_Fre];\n }\n if (input[_Int] != null) {\n entries[_Int] = input[_Int];\n }\n if (input[_OD] != null) {\n const memberEntries = se_OccurrenceDayRequestSet(input[_OD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `OccurrenceDay.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_ORTE] != null) {\n entries[_ORTE] = input[_ORTE];\n }\n if (input[_OU] != null) {\n entries[_OU] = input[_OU];\n }\n return entries;\n}, \"se_ScheduledInstanceRecurrenceRequest\");\nvar se_ScheduledInstancesBlockDeviceMapping = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DN] != null) {\n entries[_DN] = input[_DN];\n }\n if (input[_E] != null) {\n const memberEntries = se_ScheduledInstancesEbs(input[_E], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ebs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ND] != null) {\n entries[_ND] = input[_ND];\n }\n if (input[_VN] != null) {\n entries[_VN] = input[_VN];\n }\n return entries;\n}, \"se_ScheduledInstancesBlockDeviceMapping\");\nvar se_ScheduledInstancesBlockDeviceMappingSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesBlockDeviceMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`BlockDeviceMapping.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesBlockDeviceMappingSet\");\nvar se_ScheduledInstancesEbs = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_Enc] != null) {\n entries[_Enc] = input[_Enc];\n }\n if (input[_Io] != null) {\n entries[_Io] = input[_Io];\n }\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_VS] != null) {\n entries[_VS] = input[_VS];\n }\n if (input[_VT] != null) {\n entries[_VT] = input[_VT];\n }\n return entries;\n}, \"se_ScheduledInstancesEbs\");\nvar se_ScheduledInstancesIamInstanceProfile = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n return entries;\n}, \"se_ScheduledInstancesIamInstanceProfile\");\nvar se_ScheduledInstancesIpv6Address = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IApv] != null) {\n entries[_IApv] = input[_IApv];\n }\n return entries;\n}, \"se_ScheduledInstancesIpv6Address\");\nvar se_ScheduledInstancesIpv6AddressList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesIpv6Address(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Ipv6Address.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesIpv6AddressList\");\nvar se_ScheduledInstancesLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_BDM] != null) {\n const memberEntries = se_ScheduledInstancesBlockDeviceMappingSet(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_ScheduledInstancesIamInstanceProfile(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_ScheduledInstancesMonitoring(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_ScheduledInstancesNetworkInterfaceSet(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterface.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_ScheduledInstancesPlacement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SGI] != null) {\n const memberEntries = se_ScheduledInstancesSecurityGroupIdSet(input[_SGI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n return entries;\n}, \"se_ScheduledInstancesLaunchSpecification\");\nvar se_ScheduledInstancesMonitoring = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_ScheduledInstancesMonitoring\");\nvar se_ScheduledInstancesNetworkInterface = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_APIAs] != null) {\n entries[_APIAs] = input[_APIAs];\n }\n if (input[_DOT] != null) {\n entries[_DOT] = input[_DOT];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_DIev] != null) {\n entries[_DIev] = input[_DIev];\n }\n if (input[_G] != null) {\n const memberEntries = se_ScheduledInstancesSecurityGroupIdSet(input[_G], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Group.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IAC] != null) {\n entries[_IAC] = input[_IAC];\n }\n if (input[_IA] != null) {\n const memberEntries = se_ScheduledInstancesIpv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Address.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n if (input[_PIACr] != null) {\n const memberEntries = se_PrivateIpAddressConfigSet(input[_PIACr], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddressConfig.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPIAC] != null) {\n entries[_SPIAC] = input[_SPIAC];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n return entries;\n}, \"se_ScheduledInstancesNetworkInterface\");\nvar se_ScheduledInstancesNetworkInterfaceSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ScheduledInstancesNetworkInterface(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`NetworkInterface.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesNetworkInterfaceSet\");\nvar se_ScheduledInstancesPlacement = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_ScheduledInstancesPlacement\");\nvar se_ScheduledInstancesPrivateIpAddressConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Prim] != null) {\n entries[_Prim] = input[_Prim];\n }\n if (input[_PIAr] != null) {\n entries[_PIAr] = input[_PIAr];\n }\n return entries;\n}, \"se_ScheduledInstancesPrivateIpAddressConfig\");\nvar se_ScheduledInstancesSecurityGroupIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ScheduledInstancesSecurityGroupIdSet\");\nvar se_SearchLocalGatewayRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LGRTI] != null) {\n entries[_LGRTI] = input[_LGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SearchLocalGatewayRoutesRequest\");\nvar se_SearchTransitGatewayMulticastGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGMDI] != null) {\n entries[_TGMDI] = input[_TGMDI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_NT] != null) {\n entries[_NT] = input[_NT];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SearchTransitGatewayMulticastGroupsRequest\");\nvar se_SearchTransitGatewayRoutesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGRTI] != null) {\n entries[_TGRTI] = input[_TGRTI];\n }\n if (input[_Fi] != null) {\n const memberEntries = se_FilterList(input[_Fi], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MR] != null) {\n entries[_MR] = input[_MR];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SearchTransitGatewayRoutesRequest\");\nvar se_SecurityGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupIdList\");\nvar se_SecurityGroupIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupIdStringList\");\nvar se_SecurityGroupIdStringListRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroupId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupIdStringListRequest\");\nvar se_SecurityGroupRuleDescription = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGRIe] != null) {\n entries[_SGRIe] = input[_SGRIe];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_SecurityGroupRuleDescription\");\nvar se_SecurityGroupRuleDescriptionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SecurityGroupRuleDescription(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupRuleDescriptionList\");\nvar se_SecurityGroupRuleIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupRuleIdList\");\nvar se_SecurityGroupRuleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPpr] != null) {\n entries[_IPpr] = input[_IPpr];\n }\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_CIidr] != null) {\n entries[_CIidr] = input[_CIidr];\n }\n if (input[_CIid] != null) {\n entries[_CIid] = input[_CIid];\n }\n if (input[_PLI] != null) {\n entries[_PLI] = input[_PLI];\n }\n if (input[_RGI] != null) {\n entries[_RGI] = input[_RGI];\n }\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n return entries;\n}, \"se_SecurityGroupRuleRequest\");\nvar se_SecurityGroupRuleUpdate = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SGRIe] != null) {\n entries[_SGRIe] = input[_SGRIe];\n }\n if (input[_SGRe] != null) {\n const memberEntries = se_SecurityGroupRuleRequest(input[_SGRe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRule.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SecurityGroupRuleUpdate\");\nvar se_SecurityGroupRuleUpdateList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SecurityGroupRuleUpdate(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupRuleUpdateList\");\nvar se_SecurityGroupStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SecurityGroup.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroupStringList\");\nvar se_SendDiagnosticInterruptRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIn] != null) {\n entries[_IIn] = input[_IIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_SendDiagnosticInterruptRequest\");\nvar se_ServiceLinkVirtualInterfaceIdSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ServiceLinkVirtualInterfaceIdSet\");\nvar se_SlotDateTimeRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ETa] != null) {\n entries[_ETa] = (0, import_smithy_client.serializeDateTime)(input[_ETa]);\n }\n if (input[_LTat] != null) {\n entries[_LTat] = (0, import_smithy_client.serializeDateTime)(input[_LTat]);\n }\n return entries;\n}, \"se_SlotDateTimeRangeRequest\");\nvar se_SlotStartTimeRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ETa] != null) {\n entries[_ETa] = (0, import_smithy_client.serializeDateTime)(input[_ETa]);\n }\n if (input[_LTat] != null) {\n entries[_LTat] = (0, import_smithy_client.serializeDateTime)(input[_LTat]);\n }\n return entries;\n}, \"se_SlotStartTimeRangeRequest\");\nvar se_SnapshotDiskContainer = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_Fo] != null) {\n entries[_Fo] = input[_Fo];\n }\n if (input[_U] != null) {\n entries[_U] = input[_U];\n }\n if (input[_UB] != null) {\n const memberEntries = se_UserBucket(input[_UB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `UserBucket.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SnapshotDiskContainer\");\nvar se_SnapshotIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SnapshotId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SnapshotIdStringList\");\nvar se_SpotCapacityRebalance = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RS] != null) {\n entries[_RS] = input[_RS];\n }\n if (input[_TDe] != null) {\n entries[_TDe] = input[_TDe];\n }\n return entries;\n}, \"se_SpotCapacityRebalance\");\nvar se_SpotFleetLaunchSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ATd] != null) {\n entries[_ATd] = input[_ATd];\n }\n if (input[_BDM] != null) {\n const memberEntries = se_BlockDeviceMappingList(input[_BDM], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `BlockDeviceMapping.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_EO] != null) {\n entries[_EO] = input[_EO];\n }\n if (input[_IIP] != null) {\n const memberEntries = se_IamInstanceProfileSpecification(input[_IIP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IamInstanceProfile.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIma] != null) {\n entries[_IIma] = input[_IIma];\n }\n if (input[_IT] != null) {\n entries[_IT] = input[_IT];\n }\n if (input[_KI] != null) {\n entries[_KI] = input[_KI];\n }\n if (input[_KN] != null) {\n entries[_KN] = input[_KN];\n }\n if (input[_Mon] != null) {\n const memberEntries = se_SpotFleetMonitoring(input[_Mon], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Monitoring.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_NI] != null) {\n const memberEntries = se_InstanceNetworkInterfaceSpecificationList(input[_NI], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `NetworkInterfaceSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Pl] != null) {\n const memberEntries = se_SpotPlacement(input[_Pl], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Placement.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIa] != null) {\n entries[_RIa] = input[_RIa];\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_UD] != null) {\n entries[_UD] = input[_UD];\n }\n if (input[_WCe] != null) {\n entries[_WCe] = (0, import_smithy_client.serializeFloat)(input[_WCe]);\n }\n if (input[_TS] != null) {\n const memberEntries = se_SpotFleetTagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecificationSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IR] != null) {\n const memberEntries = se_InstanceRequirements(input[_IR], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceRequirements.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_GroupIdentifierList(input[_SG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `GroupSet.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotFleetLaunchSpecification\");\nvar se_SpotFleetMonitoring = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n return entries;\n}, \"se_SpotFleetMonitoring\");\nvar se_SpotFleetRequestConfigData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_ODAS] != null) {\n entries[_ODAS] = input[_ODAS];\n }\n if (input[_SMS] != null) {\n const memberEntries = se_SpotMaintenanceStrategies(input[_SMS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SpotMaintenanceStrategies.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n if (input[_ECTP] != null) {\n entries[_ECTP] = input[_ECTP];\n }\n if (input[_FC] != null) {\n entries[_FC] = (0, import_smithy_client.serializeFloat)(input[_FC]);\n }\n if (input[_ODFC] != null) {\n entries[_ODFC] = (0, import_smithy_client.serializeFloat)(input[_ODFC]);\n }\n if (input[_IFR] != null) {\n entries[_IFR] = input[_IFR];\n }\n if (input[_LSau] != null) {\n const memberEntries = se_LaunchSpecsList(input[_LSau], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchSpecifications.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LTC] != null) {\n const memberEntries = se_LaunchTemplateConfigList(input[_LTC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LaunchTemplateConfigs.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SPp] != null) {\n entries[_SPp] = input[_SPp];\n }\n if (input[_TCa] != null) {\n entries[_TCa] = input[_TCa];\n }\n if (input[_ODTC] != null) {\n entries[_ODTC] = input[_ODTC];\n }\n if (input[_ODMTP] != null) {\n entries[_ODMTP] = input[_ODMTP];\n }\n if (input[_SMTP] != null) {\n entries[_SMTP] = input[_SMTP];\n }\n if (input[_TIWE] != null) {\n entries[_TIWE] = input[_TIWE];\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_VF] != null) {\n entries[_VF] = (0, import_smithy_client.serializeDateTime)(input[_VF]);\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_RUI] != null) {\n entries[_RUI] = input[_RUI];\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n if (input[_LBC] != null) {\n const memberEntries = se_LoadBalancersConfig(input[_LBC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancersConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IPTUC] != null) {\n entries[_IPTUC] = input[_IPTUC];\n }\n if (input[_Con] != null) {\n entries[_Con] = input[_Con];\n }\n if (input[_TCUT] != null) {\n entries[_TCUT] = input[_TCUT];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotFleetRequestConfigData\");\nvar se_SpotFleetRequestIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SpotFleetRequestIdList\");\nvar se_SpotFleetTagSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotFleetTagSpecification\");\nvar se_SpotFleetTagSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SpotFleetTagSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SpotFleetTagSpecificationList\");\nvar se_SpotInstanceRequestIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SpotInstanceRequestId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SpotInstanceRequestIdList\");\nvar se_SpotMaintenanceStrategies = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CRap] != null) {\n const memberEntries = se_SpotCapacityRebalance(input[_CRap], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CapacityRebalance.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SpotMaintenanceStrategies\");\nvar se_SpotMarketOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MPa] != null) {\n entries[_MPa] = input[_MPa];\n }\n if (input[_SIT] != null) {\n entries[_SIT] = input[_SIT];\n }\n if (input[_BDMl] != null) {\n entries[_BDMl] = input[_BDMl];\n }\n if (input[_VU] != null) {\n entries[_VU] = (0, import_smithy_client.serializeDateTime)(input[_VU]);\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n return entries;\n}, \"se_SpotMarketOptions\");\nvar se_SpotOptionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_MS] != null) {\n const memberEntries = se_FleetSpotMaintenanceStrategiesRequest(input[_MS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MaintenanceStrategies.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IIB] != null) {\n entries[_IIB] = input[_IIB];\n }\n if (input[_IPTUC] != null) {\n entries[_IPTUC] = input[_IPTUC];\n }\n if (input[_SITi] != null) {\n entries[_SITi] = input[_SITi];\n }\n if (input[_SAZ] != null) {\n entries[_SAZ] = input[_SAZ];\n }\n if (input[_MTC] != null) {\n entries[_MTC] = input[_MTC];\n }\n if (input[_MTP] != null) {\n entries[_MTP] = input[_MTP];\n }\n return entries;\n}, \"se_SpotOptionsRequest\");\nvar se_SpotPlacement = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_Te] != null) {\n entries[_Te] = input[_Te];\n }\n return entries;\n}, \"se_SpotPlacement\");\nvar se_StartDeclarativePoliciesReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n if (input[_TIa] != null) {\n entries[_TIa] = input[_TIa];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_StartDeclarativePoliciesReportRequest\");\nvar se_StartInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_AId] != null) {\n entries[_AId] = input[_AId];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_StartInstancesRequest\");\nvar se_StartNetworkInsightsAccessScopeAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIASI] != null) {\n entries[_NIASI] = input[_NIASI];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_StartNetworkInsightsAccessScopeAnalysisRequest\");\nvar se_StartNetworkInsightsAnalysisRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NIPI] != null) {\n entries[_NIPI] = input[_NIPI];\n }\n if (input[_AAd] != null) {\n const memberEntries = se_ValueStringList(input[_AAd], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AdditionalAccount.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FIA] != null) {\n const memberEntries = se_ArnList(input[_FIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterInArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_FOA] != null) {\n const memberEntries = se_ArnList(input[_FOA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FilterOutArn.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_TS] != null) {\n const memberEntries = se_TagSpecificationList(input[_TS], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagSpecification.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_CTl] === void 0) {\n input[_CTl] = (0, import_uuid.v4)();\n }\n if (input[_CTl] != null) {\n entries[_CTl] = input[_CTl];\n }\n return entries;\n}, \"se_StartNetworkInsightsAnalysisRequest\");\nvar se_StartVpcEndpointServicePrivateDnsVerificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_SIe] != null) {\n entries[_SIe] = input[_SIe];\n }\n return entries;\n}, \"se_StartVpcEndpointServicePrivateDnsVerificationRequest\");\nvar se_StopInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_Hi] != null) {\n entries[_Hi] = input[_Hi];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n return entries;\n}, \"se_StopInstancesRequest\");\nvar se_Storage = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S_] != null) {\n const memberEntries = se_S3Storage(input[_S_], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_Storage\");\nvar se_StorageLocation = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_B] != null) {\n entries[_B] = input[_B];\n }\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n return entries;\n}, \"se_StorageLocation\");\nvar se_SubnetConfiguration = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIub] != null) {\n entries[_SIub] = input[_SIub];\n }\n if (input[_Ip] != null) {\n entries[_Ip] = input[_Ip];\n }\n if (input[_Ipv] != null) {\n entries[_Ipv] = input[_Ipv];\n }\n return entries;\n}, \"se_SubnetConfiguration\");\nvar se_SubnetConfigurationsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SubnetConfiguration(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SubnetConfigurationsList\");\nvar se_SubnetIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`SubnetId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SubnetIdStringList\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ke] != null) {\n entries[_Ke] = input[_Ke];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_TagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TagList\");\nvar se_TagSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RT] != null) {\n entries[_RT] = input[_RT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tag.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagSpecification\");\nvar se_TagSpecificationList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TagSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TagSpecificationList\");\nvar se_TargetCapacitySpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TTC] != null) {\n entries[_TTC] = input[_TTC];\n }\n if (input[_ODTC] != null) {\n entries[_ODTC] = input[_ODTC];\n }\n if (input[_STC] != null) {\n entries[_STC] = input[_STC];\n }\n if (input[_DTCT] != null) {\n entries[_DTCT] = input[_DTCT];\n }\n if (input[_TCUT] != null) {\n entries[_TCUT] = input[_TCUT];\n }\n return entries;\n}, \"se_TargetCapacitySpecificationRequest\");\nvar se_TargetConfigurationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IC] != null) {\n entries[_IC] = input[_IC];\n }\n if (input[_OI] != null) {\n entries[_OI] = input[_OI];\n }\n return entries;\n}, \"se_TargetConfigurationRequest\");\nvar se_TargetConfigurationRequestSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetConfigurationRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`TargetConfigurationRequest.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetConfigurationRequestSet\");\nvar se_TargetGroup = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n return entries;\n}, \"se_TargetGroup\");\nvar se_TargetGroups = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetGroup(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetGroups\");\nvar se_TargetGroupsConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TG] != null) {\n const memberEntries = se_TargetGroups(input[_TG], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroups.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TargetGroupsConfig\");\nvar se_TerminateClientVpnConnectionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CVEI] != null) {\n entries[_CVEI] = input[_CVEI];\n }\n if (input[_CIo] != null) {\n entries[_CIo] = input[_CIo];\n }\n if (input[_Us] != null) {\n entries[_Us] = input[_Us];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_TerminateClientVpnConnectionsRequest\");\nvar se_TerminateInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_TerminateInstancesRequest\");\nvar se_ThroughResourcesStatementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RSe] != null) {\n const memberEntries = se_ResourceStatementRequest(input[_RSe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceStatement.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ThroughResourcesStatementRequest\");\nvar se_ThroughResourcesStatementRequestList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ThroughResourcesStatementRequest(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ThroughResourcesStatementRequestList\");\nvar se_TotalLocalStorageGB = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_TotalLocalStorageGB\");\nvar se_TotalLocalStorageGBRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = (0, import_smithy_client.serializeFloat)(input[_M]);\n }\n if (input[_Ma] != null) {\n entries[_Ma] = (0, import_smithy_client.serializeFloat)(input[_Ma]);\n }\n return entries;\n}, \"se_TotalLocalStorageGBRequest\");\nvar se_TrafficMirrorFilterIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorFilterIdList\");\nvar se_TrafficMirrorFilterRuleFieldList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorFilterRuleFieldList\");\nvar se_TrafficMirrorFilterRuleIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorFilterRuleIdList\");\nvar se_TrafficMirrorNetworkServiceList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorNetworkServiceList\");\nvar se_TrafficMirrorPortRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_FP] != null) {\n entries[_FP] = input[_FP];\n }\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n return entries;\n}, \"se_TrafficMirrorPortRangeRequest\");\nvar se_TrafficMirrorSessionFieldList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorSessionFieldList\");\nvar se_TrafficMirrorSessionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorSessionIdList\");\nvar se_TrafficMirrorTargetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrafficMirrorTargetIdList\");\nvar se_TransitGatewayAttachmentIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayAttachmentIdStringList\");\nvar se_TransitGatewayCidrBlockStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayCidrBlockStringList\");\nvar se_TransitGatewayConnectPeerIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayConnectPeerIdStringList\");\nvar se_TransitGatewayConnectRequestBgpOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAee] != null) {\n entries[_PAee] = input[_PAee];\n }\n return entries;\n}, \"se_TransitGatewayConnectRequestBgpOptions\");\nvar se_TransitGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayIdStringList\");\nvar se_TransitGatewayMulticastDomainIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayMulticastDomainIdStringList\");\nvar se_TransitGatewayNetworkInterfaceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayNetworkInterfaceIdList\");\nvar se_TransitGatewayPolicyTableIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayPolicyTableIdStringList\");\nvar se_TransitGatewayRequestOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_ASA] != null) {\n entries[_ASA] = input[_ASA];\n }\n if (input[_AASAu] != null) {\n entries[_AASAu] = input[_AASAu];\n }\n if (input[_DRTA] != null) {\n entries[_DRTA] = input[_DRTA];\n }\n if (input[_DRTP] != null) {\n entries[_DRTP] = input[_DRTP];\n }\n if (input[_VES] != null) {\n entries[_VES] = input[_VES];\n }\n if (input[_DSns] != null) {\n entries[_DSns] = input[_DSns];\n }\n if (input[_SGRS] != null) {\n entries[_SGRS] = input[_SGRS];\n }\n if (input[_MSu] != null) {\n entries[_MSu] = input[_MSu];\n }\n if (input[_TGCB] != null) {\n const memberEntries = se_TransitGatewayCidrBlockStringList(input[_TGCB], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitGatewayCidrBlocks.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TransitGatewayRequestOptions\");\nvar se_TransitGatewayRouteTableAnnouncementIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayRouteTableAnnouncementIdStringList\");\nvar se_TransitGatewayRouteTableIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewayRouteTableIdStringList\");\nvar se_TransitGatewaySubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TransitGatewaySubnetIdList\");\nvar se_TrunkInterfaceAssociationIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrunkInterfaceAssociationIdList\");\nvar se_UnassignIpv6AddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IP] != null) {\n const memberEntries = se_IpPrefixList(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_IA] != null) {\n const memberEntries = se_Ipv6AddressList(input[_IA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv6Addresses.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UnassignIpv6AddressesRequest\");\nvar se_UnassignPrivateIpAddressesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPp] != null) {\n const memberEntries = se_IpPrefixList(input[_IPp], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Ipv4Prefix.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_NII] != null) {\n entries[_NII] = input[_NII];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_PrivateIpAddressStringList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UnassignPrivateIpAddressesRequest\");\nvar se_UnassignPrivateNatGatewayAddressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_NGI] != null) {\n entries[_NGI] = input[_NGI];\n }\n if (input[_PIA] != null) {\n const memberEntries = se_IpList(input[_PIA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PrivateIpAddress.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_MDDS] != null) {\n entries[_MDDS] = input[_MDDS];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_UnassignPrivateNatGatewayAddressRequest\");\nvar se_UnlockSnapshotRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SIn] != null) {\n entries[_SIn] = input[_SIn];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_UnlockSnapshotRequest\");\nvar se_UnmonitorInstancesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIns] != null) {\n const memberEntries = se_InstanceIdStringList(input[_IIns], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `InstanceId.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_UnmonitorInstancesRequest\");\nvar se_UpdateSecurityGroupRuleDescriptionsEgressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGRD] != null) {\n const memberEntries = se_SecurityGroupRuleDescriptionList(input[_SGRD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleDescription.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UpdateSecurityGroupRuleDescriptionsEgressRequest\");\nvar se_UpdateSecurityGroupRuleDescriptionsIngressRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_IPpe] != null) {\n const memberEntries = se_IpPermissionList(input[_IPpe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpPermissions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SGRD] != null) {\n const memberEntries = se_SecurityGroupRuleDescriptionList(input[_SGRD], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroupRuleDescription.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UpdateSecurityGroupRuleDescriptionsIngressRequest\");\nvar se_UserBucket = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SK] != null) {\n entries[_SK] = input[_SK];\n }\n return entries;\n}, \"se_UserBucket\");\nvar se_UserData = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Da] != null) {\n entries[_Da] = input[_Da];\n }\n return entries;\n}, \"se_UserData\");\nvar se_UserGroupStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`UserGroup.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_UserGroupStringList\");\nvar se_UserIdGroupPair = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_De] != null) {\n entries[_De] = input[_De];\n }\n if (input[_UIs] != null) {\n entries[_UIs] = input[_UIs];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_GIr] != null) {\n entries[_GIr] = input[_GIr];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_VPCI] != null) {\n entries[_VPCI] = input[_VPCI];\n }\n if (input[_PSe] != null) {\n entries[_PSe] = input[_PSe];\n }\n return entries;\n}, \"se_UserIdGroupPair\");\nvar se_UserIdGroupPairList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_UserIdGroupPair(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Item.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_UserIdGroupPairList\");\nvar se_UserIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`UserId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_UserIdStringList\");\nvar se_ValueStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ValueStringList\");\nvar se_VCpuCountRange = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_VCpuCountRange\");\nvar se_VCpuCountRangeRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n return entries;\n}, \"se_VCpuCountRangeRequest\");\nvar se_VerifiedAccessEndpointIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessEndpointIdList\");\nvar se_VerifiedAccessGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessGroupIdList\");\nvar se_VerifiedAccessInstanceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessInstanceIdList\");\nvar se_VerifiedAccessLogCloudWatchLogsDestinationOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_LGo] != null) {\n entries[_LGo] = input[_LGo];\n }\n return entries;\n}, \"se_VerifiedAccessLogCloudWatchLogsDestinationOptions\");\nvar se_VerifiedAccessLogKinesisDataFirehoseDestinationOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_DSel] != null) {\n entries[_DSel] = input[_DSel];\n }\n return entries;\n}, \"se_VerifiedAccessLogKinesisDataFirehoseDestinationOptions\");\nvar se_VerifiedAccessLogOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S_] != null) {\n const memberEntries = se_VerifiedAccessLogS3DestinationOptions(input[_S_], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `S3.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CWL] != null) {\n const memberEntries = se_VerifiedAccessLogCloudWatchLogsDestinationOptions(input[_CWL], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CloudWatchLogs.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_KDF] != null) {\n const memberEntries = se_VerifiedAccessLogKinesisDataFirehoseDestinationOptions(input[_KDF], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `KinesisDataFirehose.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_LV] != null) {\n entries[_LV] = input[_LV];\n }\n if (input[_ITCn] != null) {\n entries[_ITCn] = input[_ITCn];\n }\n return entries;\n}, \"se_VerifiedAccessLogOptions\");\nvar se_VerifiedAccessLogS3DestinationOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_En] != null) {\n entries[_En] = input[_En];\n }\n if (input[_BN] != null) {\n entries[_BN] = input[_BN];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n if (input[_BOu] != null) {\n entries[_BOu] = input[_BOu];\n }\n return entries;\n}, \"se_VerifiedAccessLogS3DestinationOptions\");\nvar se_VerifiedAccessSseSpecificationRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CMKE] != null) {\n entries[_CMKE] = input[_CMKE];\n }\n if (input[_KKA] != null) {\n entries[_KKA] = input[_KKA];\n }\n return entries;\n}, \"se_VerifiedAccessSseSpecificationRequest\");\nvar se_VerifiedAccessTrustProviderIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VerifiedAccessTrustProviderIdList\");\nvar se_VersionStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VersionStringList\");\nvar se_VirtualizationTypeSet = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VirtualizationTypeSet\");\nvar se_VolumeDetail = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Siz] != null) {\n entries[_Siz] = input[_Siz];\n }\n return entries;\n}, \"se_VolumeDetail\");\nvar se_VolumeIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VolumeId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VolumeIdStringList\");\nvar se_VpcBlockPublicAccessExclusionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcBlockPublicAccessExclusionIdList\");\nvar se_VpcClassicLinkIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpcId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcClassicLinkIdList\");\nvar se_VpcEndpointIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointIdList\");\nvar se_VpcEndpointRouteTableIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointRouteTableIdList\");\nvar se_VpcEndpointSecurityGroupIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointSecurityGroupIdList\");\nvar se_VpcEndpointServiceIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointServiceIdList\");\nvar se_VpcEndpointSubnetIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcEndpointSubnetIdList\");\nvar se_VpcIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpcId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcIdStringList\");\nvar se_VpcPeeringConnectionIdList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`Item.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpcPeeringConnectionIdList\");\nvar se_VpnConnectionIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpnConnectionId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpnConnectionIdStringList\");\nvar se_VpnConnectionOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EA] != null) {\n entries[_EA] = input[_EA];\n }\n if (input[_TIIV] != null) {\n entries[_TIIV] = input[_TIIV];\n }\n if (input[_TO] != null) {\n const memberEntries = se_VpnTunnelOptionsSpecificationsList(input[_TO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TunnelOptions.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_LINC] != null) {\n entries[_LINC] = input[_LINC];\n }\n if (input[_RINC] != null) {\n entries[_RINC] = input[_RINC];\n }\n if (input[_LINCo] != null) {\n entries[_LINCo] = input[_LINCo];\n }\n if (input[_RINCe] != null) {\n entries[_RINCe] = input[_RINCe];\n }\n if (input[_OIAT] != null) {\n entries[_OIAT] = input[_OIAT];\n }\n if (input[_TTGAI] != null) {\n entries[_TTGAI] = input[_TTGAI];\n }\n if (input[_SRO] != null) {\n entries[_SRO] = input[_SRO];\n }\n return entries;\n}, \"se_VpnConnectionOptionsSpecification\");\nvar se_VpnGatewayIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`VpnGatewayId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_VpnGatewayIdStringList\");\nvar se_VpnTunnelLogOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CWLO] != null) {\n const memberEntries = se_CloudWatchLogOptionsSpecification(input[_CWLO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `CloudWatchLogOptions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_VpnTunnelLogOptionsSpecification\");\nvar se_VpnTunnelOptionsSpecification = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TIC] != null) {\n entries[_TIC] = input[_TIC];\n }\n if (input[_TIIC] != null) {\n entries[_TIIC] = input[_TIIC];\n }\n if (input[_PSK] != null) {\n entries[_PSK] = input[_PSK];\n }\n if (input[_PLS] != null) {\n entries[_PLS] = input[_PLS];\n }\n if (input[_PLSh] != null) {\n entries[_PLSh] = input[_PLSh];\n }\n if (input[_RMTS] != null) {\n entries[_RMTS] = input[_RMTS];\n }\n if (input[_RFP] != null) {\n entries[_RFP] = input[_RFP];\n }\n if (input[_RWS] != null) {\n entries[_RWS] = input[_RWS];\n }\n if (input[_DPDTS] != null) {\n entries[_DPDTS] = input[_DPDTS];\n }\n if (input[_DPDTA] != null) {\n entries[_DPDTA] = input[_DPDTA];\n }\n if (input[_PEA] != null) {\n const memberEntries = se_Phase1EncryptionAlgorithmsRequestList(input[_PEA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PEAh] != null) {\n const memberEntries = se_Phase2EncryptionAlgorithmsRequestList(input[_PEAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2EncryptionAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAh] != null) {\n const memberEntries = se_Phase1IntegrityAlgorithmsRequestList(input[_PIAh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PIAha] != null) {\n const memberEntries = se_Phase2IntegrityAlgorithmsRequestList(input[_PIAha], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2IntegrityAlgorithm.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGN] != null) {\n const memberEntries = se_Phase1DHGroupNumbersRequestList(input[_PDHGN], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase1DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_PDHGNh] != null) {\n const memberEntries = se_Phase2DHGroupNumbersRequestList(input[_PDHGNh], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Phase2DHGroupNumber.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_IKEVe] != null) {\n const memberEntries = se_IKEVersionsRequestList(input[_IKEVe], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IKEVersion.${key.substring(key.indexOf(\".\") + 1)}`;\n entries[loc] = value;\n });\n }\n if (input[_SA] != null) {\n entries[_SA] = input[_SA];\n }\n if (input[_LO] != null) {\n const memberEntries = se_VpnTunnelLogOptionsSpecification(input[_LO], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LogOptions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ETLC] != null) {\n entries[_ETLC] = input[_ETLC];\n }\n return entries;\n}, \"se_VpnTunnelOptionsSpecification\");\nvar se_VpnTunnelOptionsSpecificationsList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_VpnTunnelOptionsSpecification(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`Member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_VpnTunnelOptionsSpecificationsList\");\nvar se_WithdrawByoipCidrRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_C] != null) {\n entries[_C] = input[_C];\n }\n if (input[_DRr] != null) {\n entries[_DRr] = input[_DRr];\n }\n return entries;\n}, \"se_WithdrawByoipCidrRequest\");\nvar se_ZoneIdStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ZoneId.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ZoneIdStringList\");\nvar se_ZoneNameStringList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`ZoneName.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ZoneNameStringList\");\nvar de_AcceleratorCount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_AcceleratorCount\");\nvar de_AcceleratorManufacturerSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AcceleratorManufacturerSet\");\nvar de_AcceleratorNameSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AcceleratorNameSet\");\nvar de_AcceleratorTotalMemoryMiB = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_AcceleratorTotalMemoryMiB\");\nvar de_AcceleratorTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AcceleratorTypeSet\");\nvar de_AcceptAddressTransferResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aT] != null) {\n contents[_ATdd] = de_AddressTransfer(output[_aT], context);\n }\n return contents;\n}, \"de_AcceptAddressTransferResult\");\nvar de_AcceptCapacityReservationBillingOwnershipResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_AcceptCapacityReservationBillingOwnershipResult\");\nvar de_AcceptReservedInstancesExchangeQuoteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eI] != null) {\n contents[_EIxch] = (0, import_smithy_client.expectString)(output[_eI]);\n }\n return contents;\n}, \"de_AcceptReservedInstancesExchangeQuoteResult\");\nvar de_AcceptTransitGatewayMulticastDomainAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_AcceptTransitGatewayMulticastDomainAssociationsResult\");\nvar de_AcceptTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_AcceptTransitGatewayPeeringAttachmentResult\");\nvar de_AcceptTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_AcceptTransitGatewayVpcAttachmentResult\");\nvar de_AcceptVpcEndpointConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_AcceptVpcEndpointConnectionsResult\");\nvar de_AcceptVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vPC] != null) {\n contents[_VPC] = de_VpcPeeringConnection(output[_vPC], context);\n }\n return contents;\n}, \"de_AcceptVpcPeeringConnectionResult\");\nvar de_AccessScopeAnalysisFinding = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output[_fI] != null) {\n contents[_FIi] = (0, import_smithy_client.expectString)(output[_fI]);\n }\n if (output.findingComponentSet === \"\") {\n contents[_FCi] = [];\n } else if (output[_fCS] != null && output[_fCS][_i] != null) {\n contents[_FCi] = de_PathComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_fCS][_i]), context);\n }\n return contents;\n}, \"de_AccessScopeAnalysisFinding\");\nvar de_AccessScopeAnalysisFindingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessScopeAnalysisFinding(entry, context);\n });\n}, \"de_AccessScopeAnalysisFindingList\");\nvar de_AccessScopePath = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_s] != null) {\n contents[_S] = de_PathStatement(output[_s], context);\n }\n if (output[_d] != null) {\n contents[_D] = de_PathStatement(output[_d], context);\n }\n if (output.throughResourceSet === \"\") {\n contents[_TR] = [];\n } else if (output[_tRS] != null && output[_tRS][_i] != null) {\n contents[_TR] = de_ThroughResourcesStatementList((0, import_smithy_client.getArrayIfSingleItem)(output[_tRS][_i]), context);\n }\n return contents;\n}, \"de_AccessScopePath\");\nvar de_AccessScopePathList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessScopePath(entry, context);\n });\n}, \"de_AccessScopePathList\");\nvar de_AccountAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aN] != null) {\n contents[_ANt] = (0, import_smithy_client.expectString)(output[_aN]);\n }\n if (output.attributeValueSet === \"\") {\n contents[_AVt] = [];\n } else if (output[_aVS] != null && output[_aVS][_i] != null) {\n contents[_AVt] = de_AccountAttributeValueList((0, import_smithy_client.getArrayIfSingleItem)(output[_aVS][_i]), context);\n }\n return contents;\n}, \"de_AccountAttribute\");\nvar de_AccountAttributeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccountAttribute(entry, context);\n });\n}, \"de_AccountAttributeList\");\nvar de_AccountAttributeValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aV] != null) {\n contents[_AVtt] = (0, import_smithy_client.expectString)(output[_aV]);\n }\n return contents;\n}, \"de_AccountAttributeValue\");\nvar de_AccountAttributeValueList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccountAttributeValue(entry, context);\n });\n}, \"de_AccountAttributeValueList\");\nvar de_ActiveInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_iH] != null) {\n contents[_IH] = (0, import_smithy_client.expectString)(output[_iH]);\n }\n return contents;\n}, \"de_ActiveInstance\");\nvar de_ActiveInstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ActiveInstance(entry, context);\n });\n}, \"de_ActiveInstanceSet\");\nvar de_AddedPrincipal = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pT] != null) {\n contents[_PTr] = (0, import_smithy_client.expectString)(output[_pT]);\n }\n if (output[_p] != null) {\n contents[_Prin] = (0, import_smithy_client.expectString)(output[_p]);\n }\n if (output[_sPI] != null) {\n contents[_SPI] = (0, import_smithy_client.expectString)(output[_sPI]);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n return contents;\n}, \"de_AddedPrincipal\");\nvar de_AddedPrincipalSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AddedPrincipal(entry, context);\n });\n}, \"de_AddedPrincipalSet\");\nvar de_AdditionalDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aDT] != null) {\n contents[_ADT] = (0, import_smithy_client.expectString)(output[_aDT]);\n }\n if (output[_c] != null) {\n contents[_Com] = de_AnalysisComponent(output[_c], context);\n }\n if (output[_vES] != null) {\n contents[_VESp] = de_AnalysisComponent(output[_vES], context);\n }\n if (output.ruleOptionSet === \"\") {\n contents[_ROu] = [];\n } else if (output[_rOS] != null && output[_rOS][_i] != null) {\n contents[_ROu] = de_RuleOptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_rOS][_i]), context);\n }\n if (output.ruleGroupTypePairSet === \"\") {\n contents[_RGTP] = [];\n } else if (output[_rGTPS] != null && output[_rGTPS][_i] != null) {\n contents[_RGTP] = de_RuleGroupTypePairList((0, import_smithy_client.getArrayIfSingleItem)(output[_rGTPS][_i]), context);\n }\n if (output.ruleGroupRuleOptionsPairSet === \"\") {\n contents[_RGROP] = [];\n } else if (output[_rGROPS] != null && output[_rGROPS][_i] != null) {\n contents[_RGROP] = de_RuleGroupRuleOptionsPairList((0, import_smithy_client.getArrayIfSingleItem)(output[_rGROPS][_i]), context);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output.loadBalancerSet === \"\") {\n contents[_LB] = [];\n } else if (output[_lBS] != null && output[_lBS][_i] != null) {\n contents[_LB] = de_AnalysisComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_lBS][_i]), context);\n }\n return contents;\n}, \"de_AdditionalDetail\");\nvar de_AdditionalDetailList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AdditionalDetail(entry, context);\n });\n}, \"de_AdditionalDetailList\");\nvar de_Address = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_do] != null) {\n contents[_Do] = (0, import_smithy_client.expectString)(output[_do]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_nIOI] != null) {\n contents[_NIOI] = (0, import_smithy_client.expectString)(output[_nIOI]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pIP] != null) {\n contents[_PIP] = (0, import_smithy_client.expectString)(output[_pIP]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_cOIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_cOIP]);\n }\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n if (output[_sM] != null) {\n contents[_SM] = (0, import_smithy_client.expectString)(output[_sM]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_Address\");\nvar de_AddressAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_pR] != null) {\n contents[_PRt] = (0, import_smithy_client.expectString)(output[_pR]);\n }\n if (output[_pRU] != null) {\n contents[_PRU] = de_PtrUpdateStatus(output[_pRU], context);\n }\n return contents;\n}, \"de_AddressAttribute\");\nvar de_AddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Address(entry, context);\n });\n}, \"de_AddressList\");\nvar de_AddressSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AddressAttribute(entry, context);\n });\n}, \"de_AddressSet\");\nvar de_AddressTransfer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_tAI] != null) {\n contents[_TAI] = (0, import_smithy_client.expectString)(output[_tAI]);\n }\n if (output[_tOET] != null) {\n contents[_TOET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tOET]));\n }\n if (output[_tOAT] != null) {\n contents[_TOAT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tOAT]));\n }\n if (output[_aTS] != null) {\n contents[_ATS] = (0, import_smithy_client.expectString)(output[_aTS]);\n }\n return contents;\n}, \"de_AddressTransfer\");\nvar de_AddressTransferList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AddressTransfer(entry, context);\n });\n}, \"de_AddressTransferList\");\nvar de_AdvertiseByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_AdvertiseByoipCidrResult\");\nvar de_AllocateAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_pIP] != null) {\n contents[_PIP] = (0, import_smithy_client.expectString)(output[_pIP]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_do] != null) {\n contents[_Do] = (0, import_smithy_client.expectString)(output[_do]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_cOIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_cOIP]);\n }\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_AllocateAddressResult\");\nvar de_AllocateHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.hostIdSet === \"\") {\n contents[_HI] = [];\n } else if (output[_hIS] != null && output[_hIS][_i] != null) {\n contents[_HI] = de_ResponseHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_hIS][_i]), context);\n }\n return contents;\n}, \"de_AllocateHostsResult\");\nvar de_AllocateIpamPoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPA] != null) {\n contents[_IPA] = de_IpamPoolAllocation(output[_iPA], context);\n }\n return contents;\n}, \"de_AllocateIpamPoolCidrResult\");\nvar de_AllowedInstanceTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedInstanceTypeSet\");\nvar de_AllowedPrincipal = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pT] != null) {\n contents[_PTr] = (0, import_smithy_client.expectString)(output[_pT]);\n }\n if (output[_p] != null) {\n contents[_Prin] = (0, import_smithy_client.expectString)(output[_p]);\n }\n if (output[_sPI] != null) {\n contents[_SPI] = (0, import_smithy_client.expectString)(output[_sPI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n return contents;\n}, \"de_AllowedPrincipal\");\nvar de_AllowedPrincipalSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AllowedPrincipal(entry, context);\n });\n}, \"de_AllowedPrincipalSet\");\nvar de_AlternatePathHint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cIo] != null) {\n contents[_CIom] = (0, import_smithy_client.expectString)(output[_cIo]);\n }\n if (output[_cA] != null) {\n contents[_CAo] = (0, import_smithy_client.expectString)(output[_cA]);\n }\n return contents;\n}, \"de_AlternatePathHint\");\nvar de_AlternatePathHintList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AlternatePathHint(entry, context);\n });\n}, \"de_AlternatePathHintList\");\nvar de_AnalysisAclRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_e] != null) {\n contents[_Eg] = (0, import_smithy_client.parseBoolean)(output[_e]);\n }\n if (output[_pRo] != null) {\n contents[_PR] = de_PortRange(output[_pRo], context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_rN] != null) {\n contents[_RNu] = (0, import_smithy_client.strictParseInt32)(output[_rN]);\n }\n return contents;\n}, \"de_AnalysisAclRule\");\nvar de_AnalysisComponent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_AnalysisComponent\");\nvar de_AnalysisComponentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AnalysisComponent(entry, context);\n });\n}, \"de_AnalysisComponentList\");\nvar de_AnalysisLoadBalancerListener = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lBP] != null) {\n contents[_LBP] = (0, import_smithy_client.strictParseInt32)(output[_lBP]);\n }\n if (output[_iP] != null) {\n contents[_IPns] = (0, import_smithy_client.strictParseInt32)(output[_iP]);\n }\n return contents;\n}, \"de_AnalysisLoadBalancerListener\");\nvar de_AnalysisLoadBalancerTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ad] != null) {\n contents[_Ad] = (0, import_smithy_client.expectString)(output[_ad]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_in] != null) {\n contents[_Ins] = de_AnalysisComponent(output[_in], context);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n return contents;\n}, \"de_AnalysisLoadBalancerTarget\");\nvar de_AnalysisPacketHeader = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.destinationAddressSet === \"\") {\n contents[_DAes] = [];\n } else if (output[_dAS] != null && output[_dAS][_i] != null) {\n contents[_DAes] = de_IpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_dAS][_i]), context);\n }\n if (output.destinationPortRangeSet === \"\") {\n contents[_DPRe] = [];\n } else if (output[_dPRS] != null && output[_dPRS][_i] != null) {\n contents[_DPRe] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPRS][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output.sourceAddressSet === \"\") {\n contents[_SAo] = [];\n } else if (output[_sAS] != null && output[_sAS][_i] != null) {\n contents[_SAo] = de_IpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_sAS][_i]), context);\n }\n if (output.sourcePortRangeSet === \"\") {\n contents[_SPRo] = [];\n } else if (output[_sPRS] != null && output[_sPRS][_i] != null) {\n contents[_SPRo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPRS][_i]), context);\n }\n return contents;\n}, \"de_AnalysisPacketHeader\");\nvar de_AnalysisRouteTableRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_dPLI] != null) {\n contents[_DPLI] = (0, import_smithy_client.expectString)(output[_dPLI]);\n }\n if (output[_eOIGI] != null) {\n contents[_EOIGI] = (0, import_smithy_client.expectString)(output[_eOIGI]);\n }\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_o] != null) {\n contents[_Or] = (0, import_smithy_client.expectString)(output[_o]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cGI] != null) {\n contents[_CGI] = (0, import_smithy_client.expectString)(output[_cGI]);\n }\n if (output[_cNA] != null) {\n contents[_CNAo] = (0, import_smithy_client.expectString)(output[_cNA]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n return contents;\n}, \"de_AnalysisRouteTableRoute\");\nvar de_AnalysisSecurityGroupRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_di] != null) {\n contents[_Di] = (0, import_smithy_client.expectString)(output[_di]);\n }\n if (output[_sGI] != null) {\n contents[_SGIe] = (0, import_smithy_client.expectString)(output[_sGI]);\n }\n if (output[_pRo] != null) {\n contents[_PR] = de_PortRange(output[_pRo], context);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n return contents;\n}, \"de_AnalysisSecurityGroupRule\");\nvar de_ApplySecurityGroupsToClientVpnTargetNetworkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupIds === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIe] != null && output[_sGIe][_i] != null) {\n contents[_SGI] = de_ClientVpnSecurityGroupIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIe][_i]), context);\n }\n return contents;\n}, \"de_ApplySecurityGroupsToClientVpnTargetNetworkResult\");\nvar de_ArchitectureTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ArchitectureTypeList\");\nvar de_ArnList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ArnList\");\nvar de_AsnAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_as] != null) {\n contents[_As] = (0, import_smithy_client.expectString)(output[_as]);\n }\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_AsnAssociation\");\nvar de_AsnAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AsnAssociation(entry, context);\n });\n}, \"de_AsnAssociationSet\");\nvar de_AsPath = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AsPath\");\nvar de_AssignedPrivateIpAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_AssignedPrivateIpAddress\");\nvar de_AssignedPrivateIpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AssignedPrivateIpAddress(entry, context);\n });\n}, \"de_AssignedPrivateIpAddressList\");\nvar de_AssignIpv6AddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.assignedIpv6Addresses === \"\") {\n contents[_AIAs] = [];\n } else if (output[_aIA] != null && output[_aIA][_i] != null) {\n contents[_AIAs] = de_Ipv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIA][_i]), context);\n }\n if (output.assignedIpv6PrefixSet === \"\") {\n contents[_AIP] = [];\n } else if (output[_aIPS] != null && output[_aIPS][_i] != null) {\n contents[_AIP] = de_IpPrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIPS][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n return contents;\n}, \"de_AssignIpv6AddressesResult\");\nvar de_AssignPrivateIpAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output.assignedPrivateIpAddressesSet === \"\") {\n contents[_APIAss] = [];\n } else if (output[_aPIAS] != null && output[_aPIAS][_i] != null) {\n contents[_APIAss] = de_AssignedPrivateIpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aPIAS][_i]), context);\n }\n if (output.assignedIpv4PrefixSet === \"\") {\n contents[_AIPs] = [];\n } else if (output[_aIPSs] != null && output[_aIPSs][_i] != null) {\n contents[_AIPs] = de_Ipv4PrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIPSs][_i]), context);\n }\n return contents;\n}, \"de_AssignPrivateIpAddressesResult\");\nvar de_AssignPrivateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_AssignPrivateNatGatewayAddressResult\");\nvar de_AssociateAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n return contents;\n}, \"de_AssociateAddressResult\");\nvar de_AssociateCapacityReservationBillingOwnerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_AssociateCapacityReservationBillingOwnerResult\");\nvar de_AssociateClientVpnTargetNetworkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_AssociationStatus(output[_sta], context);\n }\n return contents;\n}, \"de_AssociateClientVpnTargetNetworkResult\");\nvar de_AssociatedRole = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRA] != null) {\n contents[_ARA] = (0, import_smithy_client.expectString)(output[_aRA]);\n }\n if (output[_cSBN] != null) {\n contents[_CSBN] = (0, import_smithy_client.expectString)(output[_cSBN]);\n }\n if (output[_cSOK] != null) {\n contents[_CSOK] = (0, import_smithy_client.expectString)(output[_cSOK]);\n }\n if (output[_eKKI] != null) {\n contents[_EKKI] = (0, import_smithy_client.expectString)(output[_eKKI]);\n }\n return contents;\n}, \"de_AssociatedRole\");\nvar de_AssociatedRolesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociatedRole(entry, context);\n });\n}, \"de_AssociatedRolesList\");\nvar de_AssociatedTargetNetwork = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nI] != null) {\n contents[_NIe] = (0, import_smithy_client.expectString)(output[_nI]);\n }\n if (output[_nT] != null) {\n contents[_NTe] = (0, import_smithy_client.expectString)(output[_nT]);\n }\n return contents;\n}, \"de_AssociatedTargetNetwork\");\nvar de_AssociatedTargetNetworkSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociatedTargetNetwork(entry, context);\n });\n}, \"de_AssociatedTargetNetworkSet\");\nvar de_AssociateEnclaveCertificateIamRoleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cSBN] != null) {\n contents[_CSBN] = (0, import_smithy_client.expectString)(output[_cSBN]);\n }\n if (output[_cSOK] != null) {\n contents[_CSOK] = (0, import_smithy_client.expectString)(output[_cSOK]);\n }\n if (output[_eKKI] != null) {\n contents[_EKKI] = (0, import_smithy_client.expectString)(output[_eKKI]);\n }\n return contents;\n}, \"de_AssociateEnclaveCertificateIamRoleResult\");\nvar de_AssociateIamInstanceProfileResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIPA] != null) {\n contents[_IIPA] = de_IamInstanceProfileAssociation(output[_iIPA], context);\n }\n return contents;\n}, \"de_AssociateIamInstanceProfileResult\");\nvar de_AssociateInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_AssociateInstanceEventWindowResult\");\nvar de_AssociateIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aA] != null) {\n contents[_AAsn] = de_AsnAssociation(output[_aA], context);\n }\n return contents;\n}, \"de_AssociateIpamByoasnResult\");\nvar de_AssociateIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDA] != null) {\n contents[_IRDA] = de_IpamResourceDiscoveryAssociation(output[_iRDA], context);\n }\n return contents;\n}, \"de_AssociateIpamResourceDiscoveryResult\");\nvar de_AssociateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_AssociateNatGatewayAddressResult\");\nvar de_AssociateRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSA] != null) {\n contents[_RSAo] = de_RouteServerAssociation(output[_rSA], context);\n }\n return contents;\n}, \"de_AssociateRouteServerResult\");\nvar de_AssociateRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_aS] != null) {\n contents[_ASs] = de_RouteTableAssociationState(output[_aS], context);\n }\n return contents;\n}, \"de_AssociateRouteTableResult\");\nvar de_AssociateSecurityGroupVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_AssociateSecurityGroupVpcResult\");\nvar de_AssociateSubnetCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_SubnetIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n return contents;\n}, \"de_AssociateSubnetCidrBlockResult\");\nvar de_AssociateTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_AssociateTransitGatewayMulticastDomainResult\");\nvar de_AssociateTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayPolicyTableAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_AssociateTransitGatewayPolicyTableResult\");\nvar de_AssociateTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_AssociateTransitGatewayRouteTableResult\");\nvar de_AssociateTrunkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iA] != null) {\n contents[_IAn] = de_TrunkInterfaceAssociation(output[_iA], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_AssociateTrunkInterfaceResult\");\nvar de_AssociateVpcCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_VpcIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_cBA] != null) {\n contents[_CBA] = de_VpcCidrBlockAssociation(output[_cBA], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_AssociateVpcCidrBlockResult\");\nvar de_AssociationStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_AssociationStatus\");\nvar de_AttachClassicLinkVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_AttachClassicLinkVpcResult\");\nvar de_AttachmentEnaSrdSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_eSE]);\n }\n if (output[_eSUS] != null) {\n contents[_ESUS] = de_AttachmentEnaSrdUdpSpecification(output[_eSUS], context);\n }\n return contents;\n}, \"de_AttachmentEnaSrdSpecification\");\nvar de_AttachmentEnaSrdUdpSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_eSUE]);\n }\n return contents;\n}, \"de_AttachmentEnaSrdUdpSpecification\");\nvar de_AttachNetworkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n return contents;\n}, \"de_AttachNetworkInterfaceResult\");\nvar de_AttachVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_AttachVerifiedAccessTrustProviderResult\");\nvar de_AttachVpnGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_at] != null) {\n contents[_VA] = de_VpcAttachment(output[_at], context);\n }\n return contents;\n}, \"de_AttachVpnGatewayResult\");\nvar de_AttributeBooleanValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.parseBoolean)(output[_v]);\n }\n return contents;\n}, \"de_AttributeBooleanValue\");\nvar de_AttributeSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aN] != null) {\n contents[_ANt] = (0, import_smithy_client.expectString)(output[_aN]);\n }\n if (output[_mFV] != null) {\n contents[_MFV] = (0, import_smithy_client.expectString)(output[_mFV]);\n }\n if (output[_nOMA] != null) {\n contents[_NOMA] = (0, import_smithy_client.strictParseInt32)(output[_nOMA]);\n }\n if (output[_nOUA] != null) {\n contents[_NOUA] = (0, import_smithy_client.strictParseInt32)(output[_nOUA]);\n }\n if (output.regionalSummarySet === \"\") {\n contents[_RSeg] = [];\n } else if (output[_rSS] != null && output[_rSS][_i] != null) {\n contents[_RSeg] = de_RegionalSummaryList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSS][_i]), context);\n }\n return contents;\n}, \"de_AttributeSummary\");\nvar de_AttributeSummaryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AttributeSummary(entry, context);\n });\n}, \"de_AttributeSummaryList\");\nvar de_AttributeValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_AttributeValue\");\nvar de_AuthorizationRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_aAc] != null) {\n contents[_AAc] = (0, import_smithy_client.parseBoolean)(output[_aAc]);\n }\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnAuthorizationRuleStatus(output[_sta], context);\n }\n return contents;\n}, \"de_AuthorizationRule\");\nvar de_AuthorizationRuleSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AuthorizationRule(entry, context);\n });\n}, \"de_AuthorizationRuleSet\");\nvar de_AuthorizeClientVpnIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnAuthorizationRuleStatus(output[_sta], context);\n }\n return contents;\n}, \"de_AuthorizeClientVpnIngressResult\");\nvar de_AuthorizeSecurityGroupEgressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.securityGroupRuleSet === \"\") {\n contents[_SGR] = [];\n } else if (output[_sGRS] != null && output[_sGRS][_i] != null) {\n contents[_SGR] = de_SecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRS][_i]), context);\n }\n return contents;\n}, \"de_AuthorizeSecurityGroupEgressResult\");\nvar de_AuthorizeSecurityGroupIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.securityGroupRuleSet === \"\") {\n contents[_SGR] = [];\n } else if (output[_sGRS] != null && output[_sGRS][_i] != null) {\n contents[_SGR] = de_SecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRS][_i]), context);\n }\n return contents;\n}, \"de_AuthorizeSecurityGroupIngressResult\");\nvar de_AvailabilityZone = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oIS] != null) {\n contents[_OIS] = (0, import_smithy_client.expectString)(output[_oIS]);\n }\n if (output.messageSet === \"\") {\n contents[_Mes] = [];\n } else if (output[_mS] != null && output[_mS][_i] != null) {\n contents[_Mes] = de_AvailabilityZoneMessageList((0, import_smithy_client.getArrayIfSingleItem)(output[_mS][_i]), context);\n }\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n if (output[_zN] != null) {\n contents[_ZNo] = (0, import_smithy_client.expectString)(output[_zN]);\n }\n if (output[_zI] != null) {\n contents[_ZIo] = (0, import_smithy_client.expectString)(output[_zI]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_zT] != null) {\n contents[_ZT] = (0, import_smithy_client.expectString)(output[_zT]);\n }\n if (output[_pZN] != null) {\n contents[_PZN] = (0, import_smithy_client.expectString)(output[_pZN]);\n }\n if (output[_pZI] != null) {\n contents[_PZI] = (0, import_smithy_client.expectString)(output[_pZI]);\n }\n if (output[_gLN] != null) {\n contents[_GLN] = (0, import_smithy_client.expectString)(output[_gLN]);\n }\n if (output[_zS] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_zS]);\n }\n return contents;\n}, \"de_AvailabilityZone\");\nvar de_AvailabilityZoneList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AvailabilityZone(entry, context);\n });\n}, \"de_AvailabilityZoneList\");\nvar de_AvailabilityZoneMessage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_AvailabilityZoneMessage\");\nvar de_AvailabilityZoneMessageList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AvailabilityZoneMessage(entry, context);\n });\n}, \"de_AvailabilityZoneMessageList\");\nvar de_AvailableCapacity = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.availableInstanceCapacity === \"\") {\n contents[_AIC] = [];\n } else if (output[_aIC] != null && output[_aIC][_i] != null) {\n contents[_AIC] = de_AvailableInstanceCapacityList((0, import_smithy_client.getArrayIfSingleItem)(output[_aIC][_i]), context);\n }\n if (output[_aVC] != null) {\n contents[_AVC] = (0, import_smithy_client.strictParseInt32)(output[_aVC]);\n }\n return contents;\n}, \"de_AvailableCapacity\");\nvar de_AvailableInstanceCapacityList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceCapacity(entry, context);\n });\n}, \"de_AvailableInstanceCapacityList\");\nvar de_BandwidthWeightingTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_BandwidthWeightingTypeList\");\nvar de_BaselineEbsBandwidthMbps = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_BaselineEbsBandwidthMbps\");\nvar de_BaselinePerformanceFactors = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cp] != null) {\n contents[_Cp] = de_CpuPerformanceFactor(output[_cp], context);\n }\n return contents;\n}, \"de_BaselinePerformanceFactors\");\nvar de_BlockDeviceMapping = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eb] != null) {\n contents[_E] = de_EbsBlockDevice(output[_eb], context);\n }\n if (output[_nD] != null) {\n contents[_ND] = (0, import_smithy_client.expectString)(output[_nD]);\n }\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_vN] != null) {\n contents[_VN] = (0, import_smithy_client.expectString)(output[_vN]);\n }\n return contents;\n}, \"de_BlockDeviceMapping\");\nvar de_BlockDeviceMappingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_BlockDeviceMapping(entry, context);\n });\n}, \"de_BlockDeviceMappingList\");\nvar de_BlockDeviceMappingResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_vN] != null) {\n contents[_VN] = (0, import_smithy_client.expectString)(output[_vN]);\n }\n if (output[_eb] != null) {\n contents[_E] = de_EbsBlockDeviceResponse(output[_eb], context);\n }\n if (output[_nD] != null) {\n contents[_ND] = (0, import_smithy_client.expectString)(output[_nD]);\n }\n return contents;\n}, \"de_BlockDeviceMappingResponse\");\nvar de_BlockDeviceMappingResponseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_BlockDeviceMappingResponse(entry, context);\n });\n}, \"de_BlockDeviceMappingResponseList\");\nvar de_BlockPublicAccessStates = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iGBM] != null) {\n contents[_IGBM] = (0, import_smithy_client.expectString)(output[_iGBM]);\n }\n return contents;\n}, \"de_BlockPublicAccessStates\");\nvar de_BootModeTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_BootModeTypeList\");\nvar de_BundleInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bIT] != null) {\n contents[_BTu] = de_BundleTask(output[_bIT], context);\n }\n return contents;\n}, \"de_BundleInstanceResult\");\nvar de_BundleTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_bI] != null) {\n contents[_BIu] = (0, import_smithy_client.expectString)(output[_bI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_uT] != null) {\n contents[_UTp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uT]));\n }\n if (output[_sto] != null) {\n contents[_St] = de_Storage(output[_sto], context);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_er] != null) {\n contents[_BTE] = de_BundleTaskError(output[_er], context);\n }\n return contents;\n}, \"de_BundleTask\");\nvar de_BundleTaskError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_BundleTaskError\");\nvar de_BundleTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_BundleTask(entry, context);\n });\n}, \"de_BundleTaskList\");\nvar de_Byoasn = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_as] != null) {\n contents[_As] = (0, import_smithy_client.expectString)(output[_as]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_Byoasn\");\nvar de_ByoasnSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Byoasn(entry, context);\n });\n}, \"de_ByoasnSet\");\nvar de_ByoipCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.asnAssociationSet === \"\") {\n contents[_AAsns] = [];\n } else if (output[_aAS] != null && output[_aAS][_i] != null) {\n contents[_AAsns] = de_AsnAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aAS][_i]), context);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n return contents;\n}, \"de_ByoipCidr\");\nvar de_ByoipCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ByoipCidr(entry, context);\n });\n}, \"de_ByoipCidrSet\");\nvar de_CancelBundleTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bIT] != null) {\n contents[_BTu] = de_BundleTask(output[_bIT], context);\n }\n return contents;\n}, \"de_CancelBundleTaskResult\");\nvar de_CancelCapacityReservationFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_CancelCapacityReservationFleetError\");\nvar de_CancelCapacityReservationFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulFleetCancellationSet === \"\") {\n contents[_SFC] = [];\n } else if (output[_sFCS] != null && output[_sFCS][_i] != null) {\n contents[_SFC] = de_CapacityReservationFleetCancellationStateSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_sFCS][_i]),\n context\n );\n }\n if (output.failedFleetCancellationSet === \"\") {\n contents[_FFC] = [];\n } else if (output[_fFCS] != null && output[_fFCS][_i] != null) {\n contents[_FFC] = de_FailedCapacityReservationFleetCancellationResultSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_fFCS][_i]),\n context\n );\n }\n return contents;\n}, \"de_CancelCapacityReservationFleetsResult\");\nvar de_CancelCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CancelCapacityReservationResult\");\nvar de_CancelDeclarativePoliciesReportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CancelDeclarativePoliciesReportResult\");\nvar de_CancelImageLaunchPermissionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CancelImageLaunchPermissionResult\");\nvar de_CancelImportTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_pS] != null) {\n contents[_PSr] = (0, import_smithy_client.expectString)(output[_pS]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_CancelImportTaskResult\");\nvar de_CancelledSpotInstanceRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_CancelledSpotInstanceRequest\");\nvar de_CancelledSpotInstanceRequestList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CancelledSpotInstanceRequest(entry, context);\n });\n}, \"de_CancelledSpotInstanceRequestList\");\nvar de_CancelReservedInstancesListingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesListingsSet === \"\") {\n contents[_RIL] = [];\n } else if (output[_rILS] != null && output[_rILS][_i] != null) {\n contents[_RIL] = de_ReservedInstancesListingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rILS][_i]), context);\n }\n return contents;\n}, \"de_CancelReservedInstancesListingResult\");\nvar de_CancelSpotFleetRequestsError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsError\");\nvar de_CancelSpotFleetRequestsErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_CancelSpotFleetRequestsError(output[_er], context);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsErrorItem\");\nvar de_CancelSpotFleetRequestsErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CancelSpotFleetRequestsErrorItem(entry, context);\n });\n}, \"de_CancelSpotFleetRequestsErrorSet\");\nvar de_CancelSpotFleetRequestsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulFleetRequestSet === \"\") {\n contents[_SFR] = [];\n } else if (output[_sFRS] != null && output[_sFRS][_i] != null) {\n contents[_SFR] = de_CancelSpotFleetRequestsSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sFRS][_i]), context);\n }\n if (output.unsuccessfulFleetRequestSet === \"\") {\n contents[_UFR] = [];\n } else if (output[_uFRS] != null && output[_uFRS][_i] != null) {\n contents[_UFR] = de_CancelSpotFleetRequestsErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_uFRS][_i]), context);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsResponse\");\nvar de_CancelSpotFleetRequestsSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cSFRS] != null) {\n contents[_CSFRS] = (0, import_smithy_client.expectString)(output[_cSFRS]);\n }\n if (output[_pSFRS] != null) {\n contents[_PSFRS] = (0, import_smithy_client.expectString)(output[_pSFRS]);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_CancelSpotFleetRequestsSuccessItem\");\nvar de_CancelSpotFleetRequestsSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CancelSpotFleetRequestsSuccessItem(entry, context);\n });\n}, \"de_CancelSpotFleetRequestsSuccessSet\");\nvar de_CancelSpotInstanceRequestsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotInstanceRequestSet === \"\") {\n contents[_CSIRa] = [];\n } else if (output[_sIRS] != null && output[_sIRS][_i] != null) {\n contents[_CSIRa] = de_CancelledSpotInstanceRequestList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIRS][_i]), context);\n }\n return contents;\n}, \"de_CancelSpotInstanceRequestsResult\");\nvar de_CapacityAllocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTl] != null) {\n contents[_ATl] = (0, import_smithy_client.expectString)(output[_aTl]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n return contents;\n}, \"de_CapacityAllocation\");\nvar de_CapacityAllocations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityAllocation(entry, context);\n });\n}, \"de_CapacityAllocations\");\nvar de_CapacityBlockExtension = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_cBEOI] != null) {\n contents[_CBEOI] = (0, import_smithy_client.expectString)(output[_cBEOI]);\n }\n if (output[_cBEDH] != null) {\n contents[_CBEDH] = (0, import_smithy_client.strictParseInt32)(output[_cBEDH]);\n }\n if (output[_cBES] != null) {\n contents[_CBES] = (0, import_smithy_client.expectString)(output[_cBES]);\n }\n if (output[_cBEPD] != null) {\n contents[_CBEPD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBEPD]));\n }\n if (output[_cBESD] != null) {\n contents[_CBESD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBESD]));\n }\n if (output[_cBEED] != null) {\n contents[_CBEED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBEED]));\n }\n if (output[_uF] != null) {\n contents[_UF] = (0, import_smithy_client.expectString)(output[_uF]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n return contents;\n}, \"de_CapacityBlockExtension\");\nvar de_CapacityBlockExtensionOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cBEOI] != null) {\n contents[_CBEOI] = (0, import_smithy_client.expectString)(output[_cBEOI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_cBESD] != null) {\n contents[_CBESD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBESD]));\n }\n if (output[_cBEED] != null) {\n contents[_CBEED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cBEED]));\n }\n if (output[_cBEDH] != null) {\n contents[_CBEDH] = (0, import_smithy_client.strictParseInt32)(output[_cBEDH]);\n }\n if (output[_uF] != null) {\n contents[_UF] = (0, import_smithy_client.expectString)(output[_uF]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n return contents;\n}, \"de_CapacityBlockExtensionOffering\");\nvar de_CapacityBlockExtensionOfferingSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityBlockExtensionOffering(entry, context);\n });\n}, \"de_CapacityBlockExtensionOfferingSet\");\nvar de_CapacityBlockExtensionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityBlockExtension(entry, context);\n });\n}, \"de_CapacityBlockExtensionSet\");\nvar de_CapacityBlockOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cBOI] != null) {\n contents[_CBOI] = (0, import_smithy_client.expectString)(output[_cBOI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_cBDH] != null) {\n contents[_CBDH] = (0, import_smithy_client.strictParseInt32)(output[_cBDH]);\n }\n if (output[_uF] != null) {\n contents[_UF] = (0, import_smithy_client.expectString)(output[_uF]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_cBDM] != null) {\n contents[_CBDM] = (0, import_smithy_client.strictParseInt32)(output[_cBDM]);\n }\n return contents;\n}, \"de_CapacityBlockOffering\");\nvar de_CapacityBlockOfferingSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityBlockOffering(entry, context);\n });\n}, \"de_CapacityBlockOfferingSet\");\nvar de_CapacityReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_cRA] != null) {\n contents[_CRA] = (0, import_smithy_client.expectString)(output[_cRA]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iPn] != null) {\n contents[_IPn] = (0, import_smithy_client.expectString)(output[_iPn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_tIC] != null) {\n contents[_TICo] = (0, import_smithy_client.strictParseInt32)(output[_tIC]);\n }\n if (output[_aICv] != null) {\n contents[_AICv] = (0, import_smithy_client.strictParseInt32)(output[_aICv]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_eS] != null) {\n contents[_ES] = (0, import_smithy_client.parseBoolean)(output[_eS]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_eDT] != null) {\n contents[_EDT] = (0, import_smithy_client.expectString)(output[_eDT]);\n }\n if (output[_iMC] != null) {\n contents[_IMC] = (0, import_smithy_client.expectString)(output[_iMC]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_pGA] != null) {\n contents[_PGA] = (0, import_smithy_client.expectString)(output[_pGA]);\n }\n if (output.capacityAllocationSet === \"\") {\n contents[_CAa] = [];\n } else if (output[_cAS] != null && output[_cAS][_i] != null) {\n contents[_CAa] = de_CapacityAllocations((0, import_smithy_client.getArrayIfSingleItem)(output[_cAS][_i]), context);\n }\n if (output[_rT] != null) {\n contents[_RTe] = (0, import_smithy_client.expectString)(output[_rT]);\n }\n if (output[_uRBOI] != null) {\n contents[_URBOI] = (0, import_smithy_client.expectString)(output[_uRBOI]);\n }\n if (output[_cIom] != null) {\n contents[_CIomm] = de_CapacityReservationCommitmentInfo(output[_cIom], context);\n }\n if (output[_dP] != null) {\n contents[_DP] = (0, import_smithy_client.expectString)(output[_dP]);\n }\n return contents;\n}, \"de_CapacityReservation\");\nvar de_CapacityReservationBillingRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_rB] != null) {\n contents[_RB] = (0, import_smithy_client.expectString)(output[_rB]);\n }\n if (output[_uRBOI] != null) {\n contents[_URBOI] = (0, import_smithy_client.expectString)(output[_uRBOI]);\n }\n if (output[_lUT] != null) {\n contents[_LUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lUT]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_cRIa] != null) {\n contents[_CRIap] = de_CapacityReservationInfo(output[_cRIa], context);\n }\n return contents;\n}, \"de_CapacityReservationBillingRequest\");\nvar de_CapacityReservationBillingRequestSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationBillingRequest(entry, context);\n });\n}, \"de_CapacityReservationBillingRequestSet\");\nvar de_CapacityReservationCommitmentInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cIC] != null) {\n contents[_CIC] = (0, import_smithy_client.strictParseInt32)(output[_cIC]);\n }\n if (output[_cED] != null) {\n contents[_CED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cED]));\n }\n return contents;\n}, \"de_CapacityReservationCommitmentInfo\");\nvar de_CapacityReservationFleet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_cRFA] != null) {\n contents[_CRFA] = (0, import_smithy_client.expectString)(output[_cRFA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tTC] != null) {\n contents[_TTC] = (0, import_smithy_client.strictParseInt32)(output[_tTC]);\n }\n if (output[_tFC] != null) {\n contents[_TFC] = (0, import_smithy_client.strictParseFloat)(output[_tFC]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_iMC] != null) {\n contents[_IMC] = (0, import_smithy_client.expectString)(output[_iMC]);\n }\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output.instanceTypeSpecificationSet === \"\") {\n contents[_ITS] = [];\n } else if (output[_iTSS] != null && output[_iTSS][_i] != null) {\n contents[_ITS] = de_FleetCapacityReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iTSS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_CapacityReservationFleet\");\nvar de_CapacityReservationFleetCancellationState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cFS] != null) {\n contents[_CFS] = (0, import_smithy_client.expectString)(output[_cFS]);\n }\n if (output[_pFS] != null) {\n contents[_PFS] = (0, import_smithy_client.expectString)(output[_pFS]);\n }\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n return contents;\n}, \"de_CapacityReservationFleetCancellationState\");\nvar de_CapacityReservationFleetCancellationStateSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationFleetCancellationState(entry, context);\n });\n}, \"de_CapacityReservationFleetCancellationStateSet\");\nvar de_CapacityReservationFleetSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationFleet(entry, context);\n });\n}, \"de_CapacityReservationFleetSet\");\nvar de_CapacityReservationGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gA] != null) {\n contents[_GA] = (0, import_smithy_client.expectString)(output[_gA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_CapacityReservationGroup\");\nvar de_CapacityReservationGroupSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservationGroup(entry, context);\n });\n}, \"de_CapacityReservationGroupSet\");\nvar de_CapacityReservationInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_CapacityReservationInfo\");\nvar de_CapacityReservationOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uS] != null) {\n contents[_USs] = (0, import_smithy_client.expectString)(output[_uS]);\n }\n return contents;\n}, \"de_CapacityReservationOptions\");\nvar de_CapacityReservationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CapacityReservation(entry, context);\n });\n}, \"de_CapacityReservationSet\");\nvar de_CapacityReservationSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRP] != null) {\n contents[_CRP] = (0, import_smithy_client.expectString)(output[_cRP]);\n }\n if (output[_cRT] != null) {\n contents[_CRTa] = de_CapacityReservationTargetResponse(output[_cRT], context);\n }\n return contents;\n}, \"de_CapacityReservationSpecificationResponse\");\nvar de_CapacityReservationTargetResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_cRRGA] != null) {\n contents[_CRRGA] = (0, import_smithy_client.expectString)(output[_cRRGA]);\n }\n return contents;\n}, \"de_CapacityReservationTargetResponse\");\nvar de_CarrierGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cGI] != null) {\n contents[_CGI] = (0, import_smithy_client.expectString)(output[_cGI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_CarrierGateway\");\nvar de_CarrierGatewaySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CarrierGateway(entry, context);\n });\n}, \"de_CarrierGatewaySet\");\nvar de_CertificateAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRCC] != null) {\n contents[_CRCC] = (0, import_smithy_client.expectString)(output[_cRCC]);\n }\n return contents;\n}, \"de_CertificateAuthentication\");\nvar de_CidrBlock = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n return contents;\n}, \"de_CidrBlock\");\nvar de_CidrBlockSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CidrBlock(entry, context);\n });\n}, \"de_CidrBlockSet\");\nvar de_ClassicLinkDnsSupport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cLDS] != null) {\n contents[_CLDS] = (0, import_smithy_client.parseBoolean)(output[_cLDS]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_ClassicLinkDnsSupport\");\nvar de_ClassicLinkDnsSupportList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClassicLinkDnsSupport(entry, context);\n });\n}, \"de_ClassicLinkDnsSupportList\");\nvar de_ClassicLinkInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_ClassicLinkInstance\");\nvar de_ClassicLinkInstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClassicLinkInstance(entry, context);\n });\n}, \"de_ClassicLinkInstanceList\");\nvar de_ClassicLoadBalancer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_ClassicLoadBalancer\");\nvar de_ClassicLoadBalancers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClassicLoadBalancer(entry, context);\n });\n}, \"de_ClassicLoadBalancers\");\nvar de_ClassicLoadBalancersConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.classicLoadBalancers === \"\") {\n contents[_CLB] = [];\n } else if (output[_cLB] != null && output[_cLB][_i] != null) {\n contents[_CLB] = de_ClassicLoadBalancers((0, import_smithy_client.getArrayIfSingleItem)(output[_cLB][_i]), context);\n }\n return contents;\n}, \"de_ClassicLoadBalancersConfig\");\nvar de_ClientCertificateRevocationListStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientCertificateRevocationListStatus\");\nvar de_ClientConnectResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_lFA] != null) {\n contents[_LFA] = (0, import_smithy_client.expectString)(output[_lFA]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointAttributeStatus(output[_sta], context);\n }\n return contents;\n}, \"de_ClientConnectResponseOptions\");\nvar de_ClientLoginBannerResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_bT] != null) {\n contents[_BT] = (0, import_smithy_client.expectString)(output[_bT]);\n }\n return contents;\n}, \"de_ClientLoginBannerResponseOptions\");\nvar de_ClientRouteEnforcementResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_enf] != null) {\n contents[_Enf] = (0, import_smithy_client.parseBoolean)(output[_enf]);\n }\n return contents;\n}, \"de_ClientRouteEnforcementResponseOptions\");\nvar de_ClientVpnAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_aD] != null) {\n contents[_AD] = de_DirectoryServiceAuthentication(output[_aD], context);\n }\n if (output[_mA] != null) {\n contents[_MA] = de_CertificateAuthentication(output[_mA], context);\n }\n if (output[_fA] != null) {\n contents[_FA] = de_FederatedAuthentication(output[_fA], context);\n }\n return contents;\n}, \"de_ClientVpnAuthentication\");\nvar de_ClientVpnAuthenticationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnAuthentication(entry, context);\n });\n}, \"de_ClientVpnAuthenticationList\");\nvar de_ClientVpnAuthorizationRuleStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnAuthorizationRuleStatus\");\nvar de_ClientVpnConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectString)(output[_ti]);\n }\n if (output[_cIon] != null) {\n contents[_CIo] = (0, import_smithy_client.expectString)(output[_cIon]);\n }\n if (output[_us] != null) {\n contents[_Us] = (0, import_smithy_client.expectString)(output[_us]);\n }\n if (output[_cET] != null) {\n contents[_CETo] = (0, import_smithy_client.expectString)(output[_cET]);\n }\n if (output[_iB] != null) {\n contents[_IB] = (0, import_smithy_client.expectString)(output[_iB]);\n }\n if (output[_eB] != null) {\n contents[_EB] = (0, import_smithy_client.expectString)(output[_eB]);\n }\n if (output[_iPng] != null) {\n contents[_IPng] = (0, import_smithy_client.expectString)(output[_iPng]);\n }\n if (output[_eP] != null) {\n contents[_EPg] = (0, import_smithy_client.expectString)(output[_eP]);\n }\n if (output[_cIl] != null) {\n contents[_CIli] = (0, import_smithy_client.expectString)(output[_cIl]);\n }\n if (output[_cN] != null) {\n contents[_CN] = (0, import_smithy_client.expectString)(output[_cN]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnConnectionStatus(output[_sta], context);\n }\n if (output[_cETo] != null) {\n contents[_CETon] = (0, import_smithy_client.expectString)(output[_cETo]);\n }\n if (output.postureComplianceStatusSet === \"\") {\n contents[_PCS] = [];\n } else if (output[_pCSS] != null && output[_pCSS][_i] != null) {\n contents[_PCS] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_pCSS][_i]), context);\n }\n return contents;\n}, \"de_ClientVpnConnection\");\nvar de_ClientVpnConnectionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnConnection(entry, context);\n });\n}, \"de_ClientVpnConnectionSet\");\nvar de_ClientVpnConnectionStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnConnectionStatus\");\nvar de_ClientVpnEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointStatus(output[_sta], context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_dT] != null) {\n contents[_DTel] = (0, import_smithy_client.expectString)(output[_dT]);\n }\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_cCB] != null) {\n contents[_CCB] = (0, import_smithy_client.expectString)(output[_cCB]);\n }\n if (output.dnsServer === \"\") {\n contents[_DSn] = [];\n } else if (output[_dS] != null && output[_dS][_i] != null) {\n contents[_DSn] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dS][_i]), context);\n }\n if (output[_sTp] != null) {\n contents[_ST] = (0, import_smithy_client.parseBoolean)(output[_sTp]);\n }\n if (output[_vP] != null) {\n contents[_VPp] = (0, import_smithy_client.expectString)(output[_vP]);\n }\n if (output[_tP] != null) {\n contents[_TPr] = (0, import_smithy_client.expectString)(output[_tP]);\n }\n if (output[_vPp] != null) {\n contents[_VP] = (0, import_smithy_client.strictParseInt32)(output[_vPp]);\n }\n if (output.associatedTargetNetwork === \"\") {\n contents[_ATN] = [];\n } else if (output[_aTN] != null && output[_aTN][_i] != null) {\n contents[_ATN] = de_AssociatedTargetNetworkSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aTN][_i]), context);\n }\n if (output[_sCA] != null) {\n contents[_SCA] = (0, import_smithy_client.expectString)(output[_sCA]);\n }\n if (output.authenticationOptions === \"\") {\n contents[_AO] = [];\n } else if (output[_aO] != null && output[_aO][_i] != null) {\n contents[_AO] = de_ClientVpnAuthenticationList((0, import_smithy_client.getArrayIfSingleItem)(output[_aO][_i]), context);\n }\n if (output[_cLO] != null) {\n contents[_CLO] = de_ConnectionLogResponseOptions(output[_cLO], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_ClientVpnSecurityGroupIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sSPU] != null) {\n contents[_SSPU] = (0, import_smithy_client.expectString)(output[_sSPU]);\n }\n if (output[_cCO] != null) {\n contents[_CCO] = de_ClientConnectResponseOptions(output[_cCO], context);\n }\n if (output[_sTH] != null) {\n contents[_STH] = (0, import_smithy_client.strictParseInt32)(output[_sTH]);\n }\n if (output[_cLBO] != null) {\n contents[_CLBO] = de_ClientLoginBannerResponseOptions(output[_cLBO], context);\n }\n if (output[_cREO] != null) {\n contents[_CREO] = de_ClientRouteEnforcementResponseOptions(output[_cREO], context);\n }\n if (output[_dOST] != null) {\n contents[_DOST] = (0, import_smithy_client.parseBoolean)(output[_dOST]);\n }\n return contents;\n}, \"de_ClientVpnEndpoint\");\nvar de_ClientVpnEndpointAttributeStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnEndpointAttributeStatus\");\nvar de_ClientVpnEndpointStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnEndpointStatus\");\nvar de_ClientVpnRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_tSa] != null) {\n contents[_TSa] = (0, import_smithy_client.expectString)(output[_tSa]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_o] != null) {\n contents[_Or] = (0, import_smithy_client.expectString)(output[_o]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnRouteStatus(output[_sta], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n return contents;\n}, \"de_ClientVpnRoute\");\nvar de_ClientVpnRouteSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnRoute(entry, context);\n });\n}, \"de_ClientVpnRouteSet\");\nvar de_ClientVpnRouteStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ClientVpnRouteStatus\");\nvar de_ClientVpnSecurityGroupIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ClientVpnSecurityGroupIdSet\");\nvar de_CloudWatchLogOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lE] != null) {\n contents[_LE] = (0, import_smithy_client.parseBoolean)(output[_lE]);\n }\n if (output[_lGA] != null) {\n contents[_LGA] = (0, import_smithy_client.expectString)(output[_lGA]);\n }\n if (output[_lOF] != null) {\n contents[_LOF] = (0, import_smithy_client.expectString)(output[_lOF]);\n }\n return contents;\n}, \"de_CloudWatchLogOptions\");\nvar de_CoipAddressUsage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_aAI] != null) {\n contents[_AAI] = (0, import_smithy_client.expectString)(output[_aAI]);\n }\n if (output[_aSw] != null) {\n contents[_ASw] = (0, import_smithy_client.expectString)(output[_aSw]);\n }\n if (output[_cIop] != null) {\n contents[_CIop] = (0, import_smithy_client.expectString)(output[_cIop]);\n }\n return contents;\n}, \"de_CoipAddressUsage\");\nvar de_CoipAddressUsageSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CoipAddressUsage(entry, context);\n });\n}, \"de_CoipAddressUsageSet\");\nvar de_CoipCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_cPI] != null) {\n contents[_CPIo] = (0, import_smithy_client.expectString)(output[_cPI]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n return contents;\n}, \"de_CoipCidr\");\nvar de_CoipPool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output.poolCidrSet === \"\") {\n contents[_PCo] = [];\n } else if (output[_pCS] != null && output[_pCS][_i] != null) {\n contents[_PCo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_pCS][_i]), context);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pA] != null) {\n contents[_PAo] = (0, import_smithy_client.expectString)(output[_pA]);\n }\n return contents;\n}, \"de_CoipPool\");\nvar de_CoipPoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CoipPool(entry, context);\n });\n}, \"de_CoipPoolSet\");\nvar de_ConfirmProductInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_ConfirmProductInstanceResult\");\nvar de_ConnectionLogResponseOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_En] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_En]);\n }\n if (output[_CLG] != null) {\n contents[_CLG] = (0, import_smithy_client.expectString)(output[_CLG]);\n }\n if (output[_CLS] != null) {\n contents[_CLS] = (0, import_smithy_client.expectString)(output[_CLS]);\n }\n return contents;\n}, \"de_ConnectionLogResponseOptions\");\nvar de_ConnectionNotification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cNI] != null) {\n contents[_CNIon] = (0, import_smithy_client.expectString)(output[_cNI]);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_cNT] != null) {\n contents[_CNT] = (0, import_smithy_client.expectString)(output[_cNT]);\n }\n if (output[_cNAo] != null) {\n contents[_CNAon] = (0, import_smithy_client.expectString)(output[_cNAo]);\n }\n if (output.connectionEvents === \"\") {\n contents[_CEo] = [];\n } else if (output[_cE] != null && output[_cE][_i] != null) {\n contents[_CEo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_cE][_i]), context);\n }\n if (output[_cNS] != null) {\n contents[_CNS] = (0, import_smithy_client.expectString)(output[_cNS]);\n }\n if (output[_sR] != null) {\n contents[_SRe] = (0, import_smithy_client.expectString)(output[_sR]);\n }\n return contents;\n}, \"de_ConnectionNotification\");\nvar de_ConnectionNotificationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ConnectionNotification(entry, context);\n });\n}, \"de_ConnectionNotificationSet\");\nvar de_ConnectionTrackingConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_tET]);\n }\n if (output[_uST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_uST]);\n }\n if (output[_uTd] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_uTd]);\n }\n return contents;\n}, \"de_ConnectionTrackingConfiguration\");\nvar de_ConnectionTrackingSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_tET]);\n }\n if (output[_uTd] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_uTd]);\n }\n if (output[_uST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_uST]);\n }\n return contents;\n}, \"de_ConnectionTrackingSpecification\");\nvar de_ConnectionTrackingSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_TET]);\n }\n if (output[_UST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_UST]);\n }\n if (output[_UT] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_UT]);\n }\n return contents;\n}, \"de_ConnectionTrackingSpecificationRequest\");\nvar de_ConnectionTrackingSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tET] != null) {\n contents[_TET] = (0, import_smithy_client.strictParseInt32)(output[_tET]);\n }\n if (output[_uST] != null) {\n contents[_UST] = (0, import_smithy_client.strictParseInt32)(output[_uST]);\n }\n if (output[_uTd] != null) {\n contents[_UT] = (0, import_smithy_client.strictParseInt32)(output[_uTd]);\n }\n return contents;\n}, \"de_ConnectionTrackingSpecificationResponse\");\nvar de_ConversionTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTI] != null) {\n contents[_CTI] = (0, import_smithy_client.expectString)(output[_cTI]);\n }\n if (output[_eT] != null) {\n contents[_ETx] = (0, import_smithy_client.expectString)(output[_eT]);\n }\n if (output[_iIm] != null) {\n contents[_IIm] = de_ImportInstanceTaskDetails(output[_iIm], context);\n }\n if (output[_iV] != null) {\n contents[_IV] = de_ImportVolumeTaskDetails(output[_iV], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ConversionTask\");\nvar de_CopyFpgaImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n return contents;\n}, \"de_CopyFpgaImageResult\");\nvar de_CopyImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_CopyImageResult\");\nvar de_CopySnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n return contents;\n}, \"de_CopySnapshotResult\");\nvar de_CoreCountList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_CoreCountList\");\nvar de_CpuManufacturerSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_CpuManufacturerSet\");\nvar de_CpuOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCo] != null) {\n contents[_CC] = (0, import_smithy_client.strictParseInt32)(output[_cCo]);\n }\n if (output[_tPC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_tPC]);\n }\n if (output[_aSS] != null) {\n contents[_ASS] = (0, import_smithy_client.expectString)(output[_aSS]);\n }\n return contents;\n}, \"de_CpuOptions\");\nvar de_CpuPerformanceFactor = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.referenceSet === \"\") {\n contents[_R] = [];\n } else if (output[_rS] != null && output[_rS][_i] != null) {\n contents[_R] = de_PerformanceFactorReferenceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_rS][_i]), context);\n }\n return contents;\n}, \"de_CpuPerformanceFactor\");\nvar de_CreateCapacityReservationBySplittingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCR] != null) {\n contents[_SCR] = de_CapacityReservation(output[_sCR], context);\n }\n if (output[_dCR] != null) {\n contents[_DCRe] = de_CapacityReservation(output[_dCR], context);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n return contents;\n}, \"de_CreateCapacityReservationBySplittingResult\");\nvar de_CreateCapacityReservationFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tTC] != null) {\n contents[_TTC] = (0, import_smithy_client.strictParseInt32)(output[_tTC]);\n }\n if (output[_tFC] != null) {\n contents[_TFC] = (0, import_smithy_client.strictParseFloat)(output[_tFC]);\n }\n if (output[_iMC] != null) {\n contents[_IMC] = (0, import_smithy_client.expectString)(output[_iMC]);\n }\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output.fleetCapacityReservationSet === \"\") {\n contents[_FCR] = [];\n } else if (output[_fCRS] != null && output[_fCRS][_i] != null) {\n contents[_FCR] = de_FleetCapacityReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fCRS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_CreateCapacityReservationFleetResult\");\nvar de_CreateCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cR] != null) {\n contents[_CRapa] = de_CapacityReservation(output[_cR], context);\n }\n return contents;\n}, \"de_CreateCapacityReservationResult\");\nvar de_CreateCarrierGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cG] != null) {\n contents[_CG] = de_CarrierGateway(output[_cG], context);\n }\n return contents;\n}, \"de_CreateCarrierGatewayResult\");\nvar de_CreateClientVpnEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointStatus(output[_sta], context);\n }\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n return contents;\n}, \"de_CreateClientVpnEndpointResult\");\nvar de_CreateClientVpnRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnRouteStatus(output[_sta], context);\n }\n return contents;\n}, \"de_CreateClientVpnRouteResult\");\nvar de_CreateCoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCoi] != null) {\n contents[_CCo] = de_CoipCidr(output[_cCoi], context);\n }\n return contents;\n}, \"de_CreateCoipCidrResult\");\nvar de_CreateCoipPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cP] != null) {\n contents[_CP] = de_CoipPool(output[_cP], context);\n }\n return contents;\n}, \"de_CreateCoipPoolResult\");\nvar de_CreateCustomerGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cGu] != null) {\n contents[_CGu] = de_CustomerGateway(output[_cGu], context);\n }\n return contents;\n}, \"de_CreateCustomerGatewayResult\");\nvar de_CreateDefaultSubnetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_su] != null) {\n contents[_Su] = de_Subnet(output[_su], context);\n }\n return contents;\n}, \"de_CreateDefaultSubnetResult\");\nvar de_CreateDefaultVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vp] != null) {\n contents[_Vp] = de_Vpc(output[_vp], context);\n }\n return contents;\n}, \"de_CreateDefaultVpcResult\");\nvar de_CreateDhcpOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dO] != null) {\n contents[_DOh] = de_DhcpOptions(output[_dO], context);\n }\n return contents;\n}, \"de_CreateDhcpOptionsResult\");\nvar de_CreateEgressOnlyInternetGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eOIG] != null) {\n contents[_EOIG] = de_EgressOnlyInternetGateway(output[_eOIG], context);\n }\n return contents;\n}, \"de_CreateEgressOnlyInternetGatewayResult\");\nvar de_CreateFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output[_eC] != null) {\n contents[_EC] = (0, import_smithy_client.expectString)(output[_eC]);\n }\n if (output[_eM] != null) {\n contents[_EM] = (0, import_smithy_client.expectString)(output[_eM]);\n }\n return contents;\n}, \"de_CreateFleetError\");\nvar de_CreateFleetErrorsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CreateFleetError(entry, context);\n });\n}, \"de_CreateFleetErrorsSet\");\nvar de_CreateFleetInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output.instanceIds === \"\") {\n contents[_IIns] = [];\n } else if (output[_iIn] != null && output[_iIn][_i] != null) {\n contents[_IIns] = de_InstanceIdsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIn][_i]), context);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n return contents;\n}, \"de_CreateFleetInstance\");\nvar de_CreateFleetInstancesSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CreateFleetInstance(entry, context);\n });\n}, \"de_CreateFleetInstancesSet\");\nvar de_CreateFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n if (output.errorSet === \"\") {\n contents[_Err] = [];\n } else if (output[_eSr] != null && output[_eSr][_i] != null) {\n contents[_Err] = de_CreateFleetErrorsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSr][_i]), context);\n }\n if (output.fleetInstanceSet === \"\") {\n contents[_In] = [];\n } else if (output[_fIS] != null && output[_fIS][_i] != null) {\n contents[_In] = de_CreateFleetInstancesSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fIS][_i]), context);\n }\n return contents;\n}, \"de_CreateFleetResult\");\nvar de_CreateFlowLogsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output.flowLogIdSet === \"\") {\n contents[_FLI] = [];\n } else if (output[_fLIS] != null && output[_fLIS][_i] != null) {\n contents[_FLI] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_fLIS][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_CreateFlowLogsResult\");\nvar de_CreateFpgaImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n if (output[_fIGI] != null) {\n contents[_FIGI] = (0, import_smithy_client.expectString)(output[_fIGI]);\n }\n return contents;\n}, \"de_CreateFpgaImageResult\");\nvar de_CreateImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_CreateImageResult\");\nvar de_CreateInstanceConnectEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCE] != null) {\n contents[_ICE] = de_Ec2InstanceConnectEndpoint(output[_iCE], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateInstanceConnectEndpointResult\");\nvar de_CreateInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_CreateInstanceEventWindowResult\");\nvar de_CreateInstanceExportTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eTx] != null) {\n contents[_ETxp] = de_ExportTask(output[_eTx], context);\n }\n return contents;\n}, \"de_CreateInstanceExportTaskResult\");\nvar de_CreateInternetGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iG] != null) {\n contents[_IGn] = de_InternetGateway(output[_iG], context);\n }\n return contents;\n}, \"de_CreateInternetGatewayResult\");\nvar de_CreateIpamExternalResourceVerificationTokenResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iERVT] != null) {\n contents[_IERVT] = de_IpamExternalResourceVerificationToken(output[_iERVT], context);\n }\n return contents;\n}, \"de_CreateIpamExternalResourceVerificationTokenResult\");\nvar de_CreateIpamPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPp] != null) {\n contents[_IPpa] = de_IpamPool(output[_iPp], context);\n }\n return contents;\n}, \"de_CreateIpamPoolResult\");\nvar de_CreateIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRD] != null) {\n contents[_IRD] = de_IpamResourceDiscovery(output[_iRD], context);\n }\n return contents;\n}, \"de_CreateIpamResourceDiscoveryResult\");\nvar de_CreateIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ip] != null) {\n contents[_Ipa] = de_Ipam(output[_ip], context);\n }\n return contents;\n}, \"de_CreateIpamResult\");\nvar de_CreateIpamScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iS] != null) {\n contents[_ISpa] = de_IpamScope(output[_iS], context);\n }\n return contents;\n}, \"de_CreateIpamScopeResult\");\nvar de_CreateLaunchTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lT] != null) {\n contents[_LTa] = de_LaunchTemplate(output[_lT], context);\n }\n if (output[_w] != null) {\n contents[_Wa] = de_ValidationWarning(output[_w], context);\n }\n return contents;\n}, \"de_CreateLaunchTemplateResult\");\nvar de_CreateLaunchTemplateVersionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTV] != null) {\n contents[_LTV] = de_LaunchTemplateVersion(output[_lTV], context);\n }\n if (output[_w] != null) {\n contents[_Wa] = de_ValidationWarning(output[_w], context);\n }\n return contents;\n}, \"de_CreateLaunchTemplateVersionResult\");\nvar de_CreateLocalGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_LocalGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteResult\");\nvar de_CreateLocalGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRT] != null) {\n contents[_LGRT] = de_LocalGatewayRouteTable(output[_lGRT], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteTableResult\");\nvar de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVIGA] != null) {\n contents[_LGRTVIGA] = de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation(output[_lGRTVIGA], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult\");\nvar de_CreateLocalGatewayRouteTableVpcAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVA] != null) {\n contents[_LGRTVA] = de_LocalGatewayRouteTableVpcAssociation(output[_lGRTVA], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayRouteTableVpcAssociationResult\");\nvar de_CreateLocalGatewayVirtualInterfaceGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVIG] != null) {\n contents[_LGVIG] = de_LocalGatewayVirtualInterfaceGroup(output[_lGVIG], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayVirtualInterfaceGroupResult\");\nvar de_CreateLocalGatewayVirtualInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVI] != null) {\n contents[_LGVI] = de_LocalGatewayVirtualInterface(output[_lGVI], context);\n }\n return contents;\n}, \"de_CreateLocalGatewayVirtualInterfaceResult\");\nvar de_CreateManagedPrefixListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_CreateManagedPrefixListResult\");\nvar de_CreateNatGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_nG] != null) {\n contents[_NG] = de_NatGateway(output[_nG], context);\n }\n return contents;\n}, \"de_CreateNatGatewayResult\");\nvar de_CreateNetworkAclResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nA] != null) {\n contents[_NA] = de_NetworkAcl(output[_nA], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateNetworkAclResult\");\nvar de_CreateNetworkInsightsAccessScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIAS] != null) {\n contents[_NIAS] = de_NetworkInsightsAccessScope(output[_nIAS], context);\n }\n if (output[_nIASC] != null) {\n contents[_NIASC] = de_NetworkInsightsAccessScopeContent(output[_nIASC], context);\n }\n return contents;\n}, \"de_CreateNetworkInsightsAccessScopeResult\");\nvar de_CreateNetworkInsightsPathResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIP] != null) {\n contents[_NIP] = de_NetworkInsightsPath(output[_nIP], context);\n }\n return contents;\n}, \"de_CreateNetworkInsightsPathResult\");\nvar de_CreateNetworkInterfacePermissionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPnt] != null) {\n contents[_IPnt] = de_NetworkInterfacePermission(output[_iPnt], context);\n }\n return contents;\n}, \"de_CreateNetworkInterfacePermissionResult\");\nvar de_CreateNetworkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIe] != null) {\n contents[_NIet] = de_NetworkInterface(output[_nIe], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateNetworkInterfaceResult\");\nvar de_CreatePlacementGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pG] != null) {\n contents[_PG] = de_PlacementGroup(output[_pG], context);\n }\n return contents;\n}, \"de_CreatePlacementGroupResult\");\nvar de_CreatePublicIpv4PoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n return contents;\n}, \"de_CreatePublicIpv4PoolResult\");\nvar de_CreateReplaceRootVolumeTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rRVT] != null) {\n contents[_RRVT] = de_ReplaceRootVolumeTask(output[_rRVT], context);\n }\n return contents;\n}, \"de_CreateReplaceRootVolumeTaskResult\");\nvar de_CreateReservedInstancesListingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesListingsSet === \"\") {\n contents[_RIL] = [];\n } else if (output[_rILS] != null && output[_rILS][_i] != null) {\n contents[_RIL] = de_ReservedInstancesListingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rILS][_i]), context);\n }\n return contents;\n}, \"de_CreateReservedInstancesListingResult\");\nvar de_CreateRestoreImageTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_CreateRestoreImageTaskResult\");\nvar de_CreateRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_CreateRouteResult\");\nvar de_CreateRouteServerEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSE] != null) {\n contents[_RSE] = de_RouteServerEndpoint(output[_rSE], context);\n }\n return contents;\n}, \"de_CreateRouteServerEndpointResult\");\nvar de_CreateRouteServerPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSP] != null) {\n contents[_RSP] = de_RouteServerPeer(output[_rSP], context);\n }\n return contents;\n}, \"de_CreateRouteServerPeerResult\");\nvar de_CreateRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSo] != null) {\n contents[_RSo] = de_RouteServer(output[_rSo], context);\n }\n return contents;\n}, \"de_CreateRouteServerResult\");\nvar de_CreateRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTo] != null) {\n contents[_RTo] = de_RouteTable(output[_rTo], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateRouteTableResult\");\nvar de_CreateSecurityGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sGA] != null) {\n contents[_SGA] = (0, import_smithy_client.expectString)(output[_sGA]);\n }\n return contents;\n}, \"de_CreateSecurityGroupResult\");\nvar de_CreateSnapshotsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_SnapshotSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n return contents;\n}, \"de_CreateSnapshotsResult\");\nvar de_CreateSpotDatafeedSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sDS] != null) {\n contents[_SDS] = de_SpotDatafeedSubscription(output[_sDS], context);\n }\n return contents;\n}, \"de_CreateSpotDatafeedSubscriptionResult\");\nvar de_CreateStoreImageTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oK] != null) {\n contents[_OK] = (0, import_smithy_client.expectString)(output[_oK]);\n }\n return contents;\n}, \"de_CreateStoreImageTaskResult\");\nvar de_CreateSubnetCidrReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCRu] != null) {\n contents[_SCRu] = de_SubnetCidrReservation(output[_sCRu], context);\n }\n return contents;\n}, \"de_CreateSubnetCidrReservationResult\");\nvar de_CreateSubnetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_su] != null) {\n contents[_Su] = de_Subnet(output[_su], context);\n }\n return contents;\n}, \"de_CreateSubnetResult\");\nvar de_CreateTrafficMirrorFilterResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMF] != null) {\n contents[_TMF] = de_TrafficMirrorFilter(output[_tMF], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorFilterResult\");\nvar de_CreateTrafficMirrorFilterRuleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFR] != null) {\n contents[_TMFR] = de_TrafficMirrorFilterRule(output[_tMFR], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorFilterRuleResult\");\nvar de_CreateTrafficMirrorSessionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMS] != null) {\n contents[_TMS] = de_TrafficMirrorSession(output[_tMS], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorSessionResult\");\nvar de_CreateTrafficMirrorTargetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMT] != null) {\n contents[_TMT] = de_TrafficMirrorTarget(output[_tMT], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateTrafficMirrorTargetResult\");\nvar de_CreateTransitGatewayConnectPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGCP] != null) {\n contents[_TGCP] = de_TransitGatewayConnectPeer(output[_tGCP], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayConnectPeerResult\");\nvar de_CreateTransitGatewayConnectResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGC] != null) {\n contents[_TGCr] = de_TransitGatewayConnect(output[_tGC], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayConnectResult\");\nvar de_CreateTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMD] != null) {\n contents[_TGMD] = de_TransitGatewayMulticastDomain(output[_tGMD], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayMulticastDomainResult\");\nvar de_CreateTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayPeeringAttachmentResult\");\nvar de_CreateTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPT] != null) {\n contents[_TGPT] = de_TransitGatewayPolicyTable(output[_tGPT], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayPolicyTableResult\");\nvar de_CreateTransitGatewayPrefixListReferenceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPLR] != null) {\n contents[_TGPLR] = de_TransitGatewayPrefixListReference(output[_tGPLR], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayPrefixListReferenceResult\");\nvar de_CreateTransitGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tG] != null) {\n contents[_TGr] = de_TransitGateway(output[_tG], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayResult\");\nvar de_CreateTransitGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_TransitGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayRouteResult\");\nvar de_CreateTransitGatewayRouteTableAnnouncementResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTA] != null) {\n contents[_TGRTA] = de_TransitGatewayRouteTableAnnouncement(output[_tGRTA], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayRouteTableAnnouncementResult\");\nvar de_CreateTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRT] != null) {\n contents[_TGRT] = de_TransitGatewayRouteTable(output[_tGRT], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayRouteTableResult\");\nvar de_CreateTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_CreateTransitGatewayVpcAttachmentResult\");\nvar de_CreateVerifiedAccessEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAE] != null) {\n contents[_VAE] = de_VerifiedAccessEndpoint(output[_vAE], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessEndpointResult\");\nvar de_CreateVerifiedAccessGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAG] != null) {\n contents[_VAG] = de_VerifiedAccessGroup(output[_vAG], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessGroupResult\");\nvar de_CreateVerifiedAccessInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessInstanceResult\");\nvar de_CreateVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n return contents;\n}, \"de_CreateVerifiedAccessTrustProviderResult\");\nvar de_CreateVolumePermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_g] != null) {\n contents[_Gr] = (0, import_smithy_client.expectString)(output[_g]);\n }\n return contents;\n}, \"de_CreateVolumePermission\");\nvar de_CreateVolumePermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CreateVolumePermission(entry, context);\n });\n}, \"de_CreateVolumePermissionList\");\nvar de_CreateVpcBlockPublicAccessExclusionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAE] != null) {\n contents[_VBPAE] = de_VpcBlockPublicAccessExclusion(output[_vBPAE], context);\n }\n return contents;\n}, \"de_CreateVpcBlockPublicAccessExclusionResult\");\nvar de_CreateVpcEndpointConnectionNotificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cNo] != null) {\n contents[_CNo] = de_ConnectionNotification(output[_cNo], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateVpcEndpointConnectionNotificationResult\");\nvar de_CreateVpcEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vE] != null) {\n contents[_VE] = de_VpcEndpoint(output[_vE], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateVpcEndpointResult\");\nvar de_CreateVpcEndpointServiceConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sC] != null) {\n contents[_SCe] = de_ServiceConfiguration(output[_sC], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_CreateVpcEndpointServiceConfigurationResult\");\nvar de_CreateVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vPC] != null) {\n contents[_VPC] = de_VpcPeeringConnection(output[_vPC], context);\n }\n return contents;\n}, \"de_CreateVpcPeeringConnectionResult\");\nvar de_CreateVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vp] != null) {\n contents[_Vp] = de_Vpc(output[_vp], context);\n }\n return contents;\n}, \"de_CreateVpcResult\");\nvar de_CreateVpnConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_CreateVpnConnectionResult\");\nvar de_CreateVpnGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vG] != null) {\n contents[_VG] = de_VpnGateway(output[_vG], context);\n }\n return contents;\n}, \"de_CreateVpnGatewayResult\");\nvar de_CreditSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCp] != null) {\n contents[_CCp] = (0, import_smithy_client.expectString)(output[_cCp]);\n }\n return contents;\n}, \"de_CreditSpecification\");\nvar de_CustomerGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cAe] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_cAe]);\n }\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_bAE] != null) {\n contents[_BAE] = (0, import_smithy_client.expectString)(output[_bAE]);\n }\n if (output[_cGIu] != null) {\n contents[_CGIu] = (0, import_smithy_client.expectString)(output[_cGIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_iAp] != null) {\n contents[_IAp] = (0, import_smithy_client.expectString)(output[_iAp]);\n }\n if (output[_bA] != null) {\n contents[_BA] = (0, import_smithy_client.expectString)(output[_bA]);\n }\n return contents;\n}, \"de_CustomerGateway\");\nvar de_CustomerGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CustomerGateway(entry, context);\n });\n}, \"de_CustomerGatewayList\");\nvar de_DataResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_d] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_d]);\n }\n if (output[_met] != null) {\n contents[_Met] = (0, import_smithy_client.expectString)(output[_met]);\n }\n if (output[_stat] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_stat]);\n }\n if (output[_pe] != null) {\n contents[_Per] = (0, import_smithy_client.expectString)(output[_pe]);\n }\n if (output.metricPointSet === \"\") {\n contents[_MPe] = [];\n } else if (output[_mPS] != null && output[_mPS][_i] != null) {\n contents[_MPe] = de_MetricPoints((0, import_smithy_client.getArrayIfSingleItem)(output[_mPS][_i]), context);\n }\n return contents;\n}, \"de_DataResponse\");\nvar de_DataResponses = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DataResponse(entry, context);\n });\n}, \"de_DataResponses\");\nvar de_DeclarativePoliciesReport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rI] != null) {\n contents[_RIep] = (0, import_smithy_client.expectString)(output[_rI]);\n }\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_sP]);\n }\n if (output[_tI] != null) {\n contents[_TIa] = (0, import_smithy_client.expectString)(output[_tI]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_eTn] != null) {\n contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTn]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_DeclarativePoliciesReport\");\nvar de_DeclarativePoliciesReportList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeclarativePoliciesReport(entry, context);\n });\n}, \"de_DeclarativePoliciesReportList\");\nvar de_DedicatedHostIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DedicatedHostIdList\");\nvar de_DeleteCarrierGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cG] != null) {\n contents[_CG] = de_CarrierGateway(output[_cG], context);\n }\n return contents;\n}, \"de_DeleteCarrierGatewayResult\");\nvar de_DeleteClientVpnEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnEndpointStatus(output[_sta], context);\n }\n return contents;\n}, \"de_DeleteClientVpnEndpointResult\");\nvar de_DeleteClientVpnRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnRouteStatus(output[_sta], context);\n }\n return contents;\n}, \"de_DeleteClientVpnRouteResult\");\nvar de_DeleteCoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCoi] != null) {\n contents[_CCo] = de_CoipCidr(output[_cCoi], context);\n }\n return contents;\n}, \"de_DeleteCoipCidrResult\");\nvar de_DeleteCoipPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cP] != null) {\n contents[_CP] = de_CoipPool(output[_cP], context);\n }\n return contents;\n}, \"de_DeleteCoipPoolResult\");\nvar de_DeleteEgressOnlyInternetGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rC] != null) {\n contents[_RCet] = (0, import_smithy_client.parseBoolean)(output[_rC]);\n }\n return contents;\n}, \"de_DeleteEgressOnlyInternetGatewayResult\");\nvar de_DeleteFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_DeleteFleetError\");\nvar de_DeleteFleetErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_DeleteFleetError(output[_er], context);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n return contents;\n}, \"de_DeleteFleetErrorItem\");\nvar de_DeleteFleetErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteFleetErrorItem(entry, context);\n });\n}, \"de_DeleteFleetErrorSet\");\nvar de_DeleteFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulFleetDeletionSet === \"\") {\n contents[_SFD] = [];\n } else if (output[_sFDS] != null && output[_sFDS][_i] != null) {\n contents[_SFD] = de_DeleteFleetSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sFDS][_i]), context);\n }\n if (output.unsuccessfulFleetDeletionSet === \"\") {\n contents[_UFD] = [];\n } else if (output[_uFDS] != null && output[_uFDS][_i] != null) {\n contents[_UFD] = de_DeleteFleetErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_uFDS][_i]), context);\n }\n return contents;\n}, \"de_DeleteFleetsResult\");\nvar de_DeleteFleetSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cFS] != null) {\n contents[_CFS] = (0, import_smithy_client.expectString)(output[_cFS]);\n }\n if (output[_pFS] != null) {\n contents[_PFS] = (0, import_smithy_client.expectString)(output[_pFS]);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n return contents;\n}, \"de_DeleteFleetSuccessItem\");\nvar de_DeleteFleetSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteFleetSuccessItem(entry, context);\n });\n}, \"de_DeleteFleetSuccessSet\");\nvar de_DeleteFlowLogsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteFlowLogsResult\");\nvar de_DeleteFpgaImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DeleteFpgaImageResult\");\nvar de_DeleteInstanceConnectEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCE] != null) {\n contents[_ICE] = de_Ec2InstanceConnectEndpoint(output[_iCE], context);\n }\n return contents;\n}, \"de_DeleteInstanceConnectEndpointResult\");\nvar de_DeleteInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEWS] != null) {\n contents[_IEWS] = de_InstanceEventWindowStateChange(output[_iEWS], context);\n }\n return contents;\n}, \"de_DeleteInstanceEventWindowResult\");\nvar de_DeleteIpamExternalResourceVerificationTokenResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iERVT] != null) {\n contents[_IERVT] = de_IpamExternalResourceVerificationToken(output[_iERVT], context);\n }\n return contents;\n}, \"de_DeleteIpamExternalResourceVerificationTokenResult\");\nvar de_DeleteIpamPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPp] != null) {\n contents[_IPpa] = de_IpamPool(output[_iPp], context);\n }\n return contents;\n}, \"de_DeleteIpamPoolResult\");\nvar de_DeleteIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRD] != null) {\n contents[_IRD] = de_IpamResourceDiscovery(output[_iRD], context);\n }\n return contents;\n}, \"de_DeleteIpamResourceDiscoveryResult\");\nvar de_DeleteIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ip] != null) {\n contents[_Ipa] = de_Ipam(output[_ip], context);\n }\n return contents;\n}, \"de_DeleteIpamResult\");\nvar de_DeleteIpamScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iS] != null) {\n contents[_ISpa] = de_IpamScope(output[_iS], context);\n }\n return contents;\n}, \"de_DeleteIpamScopeResult\");\nvar de_DeleteKeyPairResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n return contents;\n}, \"de_DeleteKeyPairResult\");\nvar de_DeleteLaunchTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lT] != null) {\n contents[_LTa] = de_LaunchTemplate(output[_lT], context);\n }\n return contents;\n}, \"de_DeleteLaunchTemplateResult\");\nvar de_DeleteLaunchTemplateVersionsResponseErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_vNe] != null) {\n contents[_VNe] = (0, import_smithy_client.strictParseLong)(output[_vNe]);\n }\n if (output[_rE] != null) {\n contents[_REes] = de_ResponseError(output[_rE], context);\n }\n return contents;\n}, \"de_DeleteLaunchTemplateVersionsResponseErrorItem\");\nvar de_DeleteLaunchTemplateVersionsResponseErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteLaunchTemplateVersionsResponseErrorItem(entry, context);\n });\n}, \"de_DeleteLaunchTemplateVersionsResponseErrorSet\");\nvar de_DeleteLaunchTemplateVersionsResponseSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_vNe] != null) {\n contents[_VNe] = (0, import_smithy_client.strictParseLong)(output[_vNe]);\n }\n return contents;\n}, \"de_DeleteLaunchTemplateVersionsResponseSuccessItem\");\nvar de_DeleteLaunchTemplateVersionsResponseSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteLaunchTemplateVersionsResponseSuccessItem(entry, context);\n });\n}, \"de_DeleteLaunchTemplateVersionsResponseSuccessSet\");\nvar de_DeleteLaunchTemplateVersionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfullyDeletedLaunchTemplateVersionSet === \"\") {\n contents[_SDLTV] = [];\n } else if (output[_sDLTVS] != null && output[_sDLTVS][_i] != null) {\n contents[_SDLTV] = de_DeleteLaunchTemplateVersionsResponseSuccessSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_sDLTVS][_i]),\n context\n );\n }\n if (output.unsuccessfullyDeletedLaunchTemplateVersionSet === \"\") {\n contents[_UDLTV] = [];\n } else if (output[_uDLTVS] != null && output[_uDLTVS][_i] != null) {\n contents[_UDLTV] = de_DeleteLaunchTemplateVersionsResponseErrorSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_uDLTVS][_i]),\n context\n );\n }\n return contents;\n}, \"de_DeleteLaunchTemplateVersionsResult\");\nvar de_DeleteLocalGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_LocalGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteResult\");\nvar de_DeleteLocalGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRT] != null) {\n contents[_LGRT] = de_LocalGatewayRouteTable(output[_lGRT], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteTableResult\");\nvar de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVIGA] != null) {\n contents[_LGRTVIGA] = de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation(output[_lGRTVIGA], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult\");\nvar de_DeleteLocalGatewayRouteTableVpcAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVA] != null) {\n contents[_LGRTVA] = de_LocalGatewayRouteTableVpcAssociation(output[_lGRTVA], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayRouteTableVpcAssociationResult\");\nvar de_DeleteLocalGatewayVirtualInterfaceGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVIG] != null) {\n contents[_LGVIG] = de_LocalGatewayVirtualInterfaceGroup(output[_lGVIG], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayVirtualInterfaceGroupResult\");\nvar de_DeleteLocalGatewayVirtualInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVI] != null) {\n contents[_LGVI] = de_LocalGatewayVirtualInterface(output[_lGVI], context);\n }\n return contents;\n}, \"de_DeleteLocalGatewayVirtualInterfaceResult\");\nvar de_DeleteManagedPrefixListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_DeleteManagedPrefixListResult\");\nvar de_DeleteNatGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n return contents;\n}, \"de_DeleteNatGatewayResult\");\nvar de_DeleteNetworkInsightsAccessScopeAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsAccessScopeAnalysisResult\");\nvar de_DeleteNetworkInsightsAccessScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsAccessScopeResult\");\nvar de_DeleteNetworkInsightsAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIAI] != null) {\n contents[_NIAI] = (0, import_smithy_client.expectString)(output[_nIAI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsAnalysisResult\");\nvar de_DeleteNetworkInsightsPathResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIPI] != null) {\n contents[_NIPI] = (0, import_smithy_client.expectString)(output[_nIPI]);\n }\n return contents;\n}, \"de_DeleteNetworkInsightsPathResult\");\nvar de_DeleteNetworkInterfacePermissionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DeleteNetworkInterfacePermissionResult\");\nvar de_DeletePublicIpv4PoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rV] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_rV]);\n }\n return contents;\n}, \"de_DeletePublicIpv4PoolResult\");\nvar de_DeleteQueuedReservedInstancesError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_DeleteQueuedReservedInstancesError\");\nvar de_DeleteQueuedReservedInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulQueuedPurchaseDeletionSet === \"\") {\n contents[_SQPD] = [];\n } else if (output[_sQPDS] != null && output[_sQPDS][_i] != null) {\n contents[_SQPD] = de_SuccessfulQueuedPurchaseDeletionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sQPDS][_i]), context);\n }\n if (output.failedQueuedPurchaseDeletionSet === \"\") {\n contents[_FQPD] = [];\n } else if (output[_fQPDS] != null && output[_fQPDS][_i] != null) {\n contents[_FQPD] = de_FailedQueuedPurchaseDeletionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fQPDS][_i]), context);\n }\n return contents;\n}, \"de_DeleteQueuedReservedInstancesResult\");\nvar de_DeleteRouteServerEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSE] != null) {\n contents[_RSE] = de_RouteServerEndpoint(output[_rSE], context);\n }\n return contents;\n}, \"de_DeleteRouteServerEndpointResult\");\nvar de_DeleteRouteServerPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSP] != null) {\n contents[_RSP] = de_RouteServerPeer(output[_rSP], context);\n }\n return contents;\n}, \"de_DeleteRouteServerPeerResult\");\nvar de_DeleteRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSo] != null) {\n contents[_RSo] = de_RouteServer(output[_rSo], context);\n }\n return contents;\n}, \"de_DeleteRouteServerResult\");\nvar de_DeleteSecurityGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n return contents;\n}, \"de_DeleteSecurityGroupResult\");\nvar de_DeleteSubnetCidrReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dSCR] != null) {\n contents[_DSCRe] = de_SubnetCidrReservation(output[_dSCR], context);\n }\n return contents;\n}, \"de_DeleteSubnetCidrReservationResult\");\nvar de_DeleteTrafficMirrorFilterResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorFilterResult\");\nvar de_DeleteTrafficMirrorFilterRuleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFRI] != null) {\n contents[_TMFRI] = (0, import_smithy_client.expectString)(output[_tMFRI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorFilterRuleResult\");\nvar de_DeleteTrafficMirrorSessionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMSI] != null) {\n contents[_TMSI] = (0, import_smithy_client.expectString)(output[_tMSI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorSessionResult\");\nvar de_DeleteTrafficMirrorTargetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMTI] != null) {\n contents[_TMTI] = (0, import_smithy_client.expectString)(output[_tMTI]);\n }\n return contents;\n}, \"de_DeleteTrafficMirrorTargetResult\");\nvar de_DeleteTransitGatewayConnectPeerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGCP] != null) {\n contents[_TGCP] = de_TransitGatewayConnectPeer(output[_tGCP], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayConnectPeerResult\");\nvar de_DeleteTransitGatewayConnectResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGC] != null) {\n contents[_TGCr] = de_TransitGatewayConnect(output[_tGC], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayConnectResult\");\nvar de_DeleteTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMD] != null) {\n contents[_TGMD] = de_TransitGatewayMulticastDomain(output[_tGMD], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayMulticastDomainResult\");\nvar de_DeleteTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayPeeringAttachmentResult\");\nvar de_DeleteTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPT] != null) {\n contents[_TGPT] = de_TransitGatewayPolicyTable(output[_tGPT], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayPolicyTableResult\");\nvar de_DeleteTransitGatewayPrefixListReferenceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPLR] != null) {\n contents[_TGPLR] = de_TransitGatewayPrefixListReference(output[_tGPLR], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayPrefixListReferenceResult\");\nvar de_DeleteTransitGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tG] != null) {\n contents[_TGr] = de_TransitGateway(output[_tG], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayResult\");\nvar de_DeleteTransitGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_TransitGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayRouteResult\");\nvar de_DeleteTransitGatewayRouteTableAnnouncementResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTA] != null) {\n contents[_TGRTA] = de_TransitGatewayRouteTableAnnouncement(output[_tGRTA], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayRouteTableAnnouncementResult\");\nvar de_DeleteTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRT] != null) {\n contents[_TGRT] = de_TransitGatewayRouteTable(output[_tGRT], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayRouteTableResult\");\nvar de_DeleteTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_DeleteTransitGatewayVpcAttachmentResult\");\nvar de_DeleteVerifiedAccessEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAE] != null) {\n contents[_VAE] = de_VerifiedAccessEndpoint(output[_vAE], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessEndpointResult\");\nvar de_DeleteVerifiedAccessGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAG] != null) {\n contents[_VAG] = de_VerifiedAccessGroup(output[_vAG], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessGroupResult\");\nvar de_DeleteVerifiedAccessInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessInstanceResult\");\nvar de_DeleteVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n return contents;\n}, \"de_DeleteVerifiedAccessTrustProviderResult\");\nvar de_DeleteVpcBlockPublicAccessExclusionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAE] != null) {\n contents[_VBPAE] = de_VpcBlockPublicAccessExclusion(output[_vBPAE], context);\n }\n return contents;\n}, \"de_DeleteVpcBlockPublicAccessExclusionResult\");\nvar de_DeleteVpcEndpointConnectionNotificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteVpcEndpointConnectionNotificationsResult\");\nvar de_DeleteVpcEndpointServiceConfigurationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteVpcEndpointServiceConfigurationsResult\");\nvar de_DeleteVpcEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DeleteVpcEndpointsResult\");\nvar de_DeleteVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DeleteVpcPeeringConnectionResult\");\nvar de_DeprovisionByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_DeprovisionByoipCidrResult\");\nvar de_DeprovisionedAddressSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DeprovisionedAddressSet\");\nvar de_DeprovisionIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_b] != null) {\n contents[_Byo] = de_Byoasn(output[_b], context);\n }\n return contents;\n}, \"de_DeprovisionIpamByoasnResult\");\nvar de_DeprovisionIpamPoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPC] != null) {\n contents[_IPCpa] = de_IpamPoolCidr(output[_iPC], context);\n }\n return contents;\n}, \"de_DeprovisionIpamPoolCidrResult\");\nvar de_DeprovisionPublicIpv4PoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output.deprovisionedAddressSet === \"\") {\n contents[_DAep] = [];\n } else if (output[_dASe] != null && output[_dASe][_i] != null) {\n contents[_DAep] = de_DeprovisionedAddressSet((0, import_smithy_client.getArrayIfSingleItem)(output[_dASe][_i]), context);\n }\n return contents;\n}, \"de_DeprovisionPublicIpv4PoolCidrResult\");\nvar de_DeregisterImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeregisterImageResult\");\nvar de_DeregisterInstanceEventNotificationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTA] != null) {\n contents[_ITA] = de_InstanceTagNotificationAttribute(output[_iTA], context);\n }\n return contents;\n}, \"de_DeregisterInstanceEventNotificationAttributesResult\");\nvar de_DeregisterTransitGatewayMulticastGroupMembersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dMGM] != null) {\n contents[_DMGM] = de_TransitGatewayMulticastDeregisteredGroupMembers(output[_dMGM], context);\n }\n return contents;\n}, \"de_DeregisterTransitGatewayMulticastGroupMembersResult\");\nvar de_DeregisterTransitGatewayMulticastGroupSourcesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dMGS] != null) {\n contents[_DMGS] = de_TransitGatewayMulticastDeregisteredGroupSources(output[_dMGS], context);\n }\n return contents;\n}, \"de_DeregisterTransitGatewayMulticastGroupSourcesResult\");\nvar de_DescribeAccountAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.accountAttributeSet === \"\") {\n contents[_AAcc] = [];\n } else if (output[_aASc] != null && output[_aASc][_i] != null) {\n contents[_AAcc] = de_AccountAttributeList((0, import_smithy_client.getArrayIfSingleItem)(output[_aASc][_i]), context);\n }\n return contents;\n}, \"de_DescribeAccountAttributesResult\");\nvar de_DescribeAddressesAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addressSet === \"\") {\n contents[_Addr] = [];\n } else if (output[_aSd] != null && output[_aSd][_i] != null) {\n contents[_Addr] = de_AddressSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aSd][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeAddressesAttributeResult\");\nvar de_DescribeAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addressesSet === \"\") {\n contents[_Addr] = [];\n } else if (output[_aSdd] != null && output[_aSdd][_i] != null) {\n contents[_Addr] = de_AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSdd][_i]), context);\n }\n return contents;\n}, \"de_DescribeAddressesResult\");\nvar de_DescribeAddressTransfersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addressTransferSet === \"\") {\n contents[_ATddr] = [];\n } else if (output[_aTSd] != null && output[_aTSd][_i] != null) {\n contents[_ATddr] = de_AddressTransferList((0, import_smithy_client.getArrayIfSingleItem)(output[_aTSd][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeAddressTransfersResult\");\nvar de_DescribeAggregateIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uLIA] != null) {\n contents[_ULIA] = (0, import_smithy_client.parseBoolean)(output[_uLIA]);\n }\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_DescribeAggregateIdFormatResult\");\nvar de_DescribeAvailabilityZonesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.availabilityZoneInfo === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZIv] != null && output[_aZIv][_i] != null) {\n contents[_AZv] = de_AvailabilityZoneList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZIv][_i]), context);\n }\n return contents;\n}, \"de_DescribeAvailabilityZonesResult\");\nvar de_DescribeAwsNetworkPerformanceMetricSubscriptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.subscriptionSet === \"\") {\n contents[_Sub] = [];\n } else if (output[_sSu] != null && output[_sSu][_i] != null) {\n contents[_Sub] = de_SubscriptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSu][_i]), context);\n }\n return contents;\n}, \"de_DescribeAwsNetworkPerformanceMetricSubscriptionsResult\");\nvar de_DescribeBundleTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.bundleInstanceTasksSet === \"\") {\n contents[_BTun] = [];\n } else if (output[_bITS] != null && output[_bITS][_i] != null) {\n contents[_BTun] = de_BundleTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_bITS][_i]), context);\n }\n return contents;\n}, \"de_DescribeBundleTasksResult\");\nvar de_DescribeByoipCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.byoipCidrSet === \"\") {\n contents[_BCy] = [];\n } else if (output[_bCS] != null && output[_bCS][_i] != null) {\n contents[_BCy] = de_ByoipCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_bCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeByoipCidrsResult\");\nvar de_DescribeCapacityBlockExtensionHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockExtensionSet === \"\") {\n contents[_CBE] = [];\n } else if (output[_cBESa] != null && output[_cBESa][_i] != null) {\n contents[_CBE] = de_CapacityBlockExtensionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBESa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityBlockExtensionHistoryResult\");\nvar de_DescribeCapacityBlockExtensionOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockExtensionOfferingSet === \"\") {\n contents[_CBEO] = [];\n } else if (output[_cBEOS] != null && output[_cBEOS][_i] != null) {\n contents[_CBEO] = de_CapacityBlockExtensionOfferingSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBEOS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityBlockExtensionOfferingsResult\");\nvar de_DescribeCapacityBlockOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockOfferingSet === \"\") {\n contents[_CBO] = [];\n } else if (output[_cBOS] != null && output[_cBOS][_i] != null) {\n contents[_CBO] = de_CapacityBlockOfferingSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBOS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityBlockOfferingsResult\");\nvar de_DescribeCapacityReservationBillingRequestsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.capacityReservationBillingRequestSet === \"\") {\n contents[_CRBR] = [];\n } else if (output[_cRBRS] != null && output[_cRBRS][_i] != null) {\n contents[_CRBR] = de_CapacityReservationBillingRequestSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRBRS][_i]), context);\n }\n return contents;\n}, \"de_DescribeCapacityReservationBillingRequestsResult\");\nvar de_DescribeCapacityReservationFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityReservationFleetSet === \"\") {\n contents[_CRF] = [];\n } else if (output[_cRFS] != null && output[_cRFS][_i] != null) {\n contents[_CRF] = de_CapacityReservationFleetSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRFS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCapacityReservationFleetsResult\");\nvar de_DescribeCapacityReservationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.capacityReservationSet === \"\") {\n contents[_CRapac] = [];\n } else if (output[_cRS] != null && output[_cRS][_i] != null) {\n contents[_CRapac] = de_CapacityReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRS][_i]), context);\n }\n return contents;\n}, \"de_DescribeCapacityReservationsResult\");\nvar de_DescribeCarrierGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.carrierGatewaySet === \"\") {\n contents[_CGa] = [];\n } else if (output[_cGS] != null && output[_cGS][_i] != null) {\n contents[_CGa] = de_CarrierGatewaySet((0, import_smithy_client.getArrayIfSingleItem)(output[_cGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCarrierGatewaysResult\");\nvar de_DescribeClassicLinkInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_In] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_In] = de_ClassicLinkInstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClassicLinkInstancesResult\");\nvar de_DescribeClientVpnAuthorizationRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.authorizationRule === \"\") {\n contents[_ARut] = [];\n } else if (output[_aR] != null && output[_aR][_i] != null) {\n contents[_ARut] = de_AuthorizationRuleSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aR][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnAuthorizationRulesResult\");\nvar de_DescribeClientVpnConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.connections === \"\") {\n contents[_Conn] = [];\n } else if (output[_con] != null && output[_con][_i] != null) {\n contents[_Conn] = de_ClientVpnConnectionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_con][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnConnectionsResult\");\nvar de_DescribeClientVpnEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.clientVpnEndpoint === \"\") {\n contents[_CVEl] = [];\n } else if (output[_cVE] != null && output[_cVE][_i] != null) {\n contents[_CVEl] = de_EndpointSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cVE][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnEndpointsResult\");\nvar de_DescribeClientVpnRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routes === \"\") {\n contents[_Rout] = [];\n } else if (output[_rou] != null && output[_rou][_i] != null) {\n contents[_Rout] = de_ClientVpnRouteSet((0, import_smithy_client.getArrayIfSingleItem)(output[_rou][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnRoutesResult\");\nvar de_DescribeClientVpnTargetNetworksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.clientVpnTargetNetworks === \"\") {\n contents[_CVTN] = [];\n } else if (output[_cVTN] != null && output[_cVTN][_i] != null) {\n contents[_CVTN] = de_TargetNetworkSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cVTN][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeClientVpnTargetNetworksResult\");\nvar de_DescribeCoipPoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.coipPoolSet === \"\") {\n contents[_CPo] = [];\n } else if (output[_cPS] != null && output[_cPS][_i] != null) {\n contents[_CPo] = de_CoipPoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeCoipPoolsResult\");\nvar de_DescribeConversionTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ConversionTask(entry, context);\n });\n}, \"de_DescribeConversionTaskList\");\nvar de_DescribeConversionTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.conversionTasks === \"\") {\n contents[_CTon] = [];\n } else if (output[_cTo] != null && output[_cTo][_i] != null) {\n contents[_CTon] = de_DescribeConversionTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_cTo][_i]), context);\n }\n return contents;\n}, \"de_DescribeConversionTasksResult\");\nvar de_DescribeCustomerGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.customerGatewaySet === \"\") {\n contents[_CGus] = [];\n } else if (output[_cGSu] != null && output[_cGSu][_i] != null) {\n contents[_CGus] = de_CustomerGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_cGSu][_i]), context);\n }\n return contents;\n}, \"de_DescribeCustomerGatewaysResult\");\nvar de_DescribeDeclarativePoliciesReportsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reportSet === \"\") {\n contents[_Rep] = [];\n } else if (output[_rSe] != null && output[_rSe][_i] != null) {\n contents[_Rep] = de_DeclarativePoliciesReportList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSe][_i]), context);\n }\n return contents;\n}, \"de_DescribeDeclarativePoliciesReportsResult\");\nvar de_DescribeDhcpOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.dhcpOptionsSet === \"\") {\n contents[_DOh] = [];\n } else if (output[_dOS] != null && output[_dOS][_i] != null) {\n contents[_DOh] = de_DhcpOptionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_dOS][_i]), context);\n }\n return contents;\n}, \"de_DescribeDhcpOptionsResult\");\nvar de_DescribeEgressOnlyInternetGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.egressOnlyInternetGatewaySet === \"\") {\n contents[_EOIGg] = [];\n } else if (output[_eOIGS] != null && output[_eOIGS][_i] != null) {\n contents[_EOIGg] = de_EgressOnlyInternetGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_eOIGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeEgressOnlyInternetGatewaysResult\");\nvar de_DescribeElasticGpusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.elasticGpuSet === \"\") {\n contents[_EGSla] = [];\n } else if (output[_eGS] != null && output[_eGS][_i] != null) {\n contents[_EGSla] = de_ElasticGpuSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eGS][_i]), context);\n }\n if (output[_mR] != null) {\n contents[_MR] = (0, import_smithy_client.strictParseInt32)(output[_mR]);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeElasticGpusResult\");\nvar de_DescribeExportImageTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.exportImageTaskSet === \"\") {\n contents[_EITx] = [];\n } else if (output[_eITS] != null && output[_eITS][_i] != null) {\n contents[_EITx] = de_ExportImageTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_eITS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeExportImageTasksResult\");\nvar de_DescribeExportTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.exportTaskSet === \"\") {\n contents[_ETxpo] = [];\n } else if (output[_eTS] != null && output[_eTS][_i] != null) {\n contents[_ETxpo] = de_ExportTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_eTS][_i]), context);\n }\n return contents;\n}, \"de_DescribeExportTasksResult\");\nvar de_DescribeFastLaunchImagesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fastLaunchImageSet === \"\") {\n contents[_FLIa] = [];\n } else if (output[_fLISa] != null && output[_fLISa][_i] != null) {\n contents[_FLIa] = de_DescribeFastLaunchImagesSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fLISa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFastLaunchImagesResult\");\nvar de_DescribeFastLaunchImagesSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_sCn] != null) {\n contents[_SCn] = de_FastLaunchSnapshotConfigurationResponse(output[_sCn], context);\n }\n if (output[_lT] != null) {\n contents[_LTa] = de_FastLaunchLaunchTemplateSpecificationResponse(output[_lT], context);\n }\n if (output[_mPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_mPL]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_sTT] != null) {\n contents[_STT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTT]));\n }\n return contents;\n}, \"de_DescribeFastLaunchImagesSuccessItem\");\nvar de_DescribeFastLaunchImagesSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFastLaunchImagesSuccessItem(entry, context);\n });\n}, \"de_DescribeFastLaunchImagesSuccessSet\");\nvar de_DescribeFastSnapshotRestoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fastSnapshotRestoreSet === \"\") {\n contents[_FSR] = [];\n } else if (output[_fSRS] != null && output[_fSRS][_i] != null) {\n contents[_FSR] = de_DescribeFastSnapshotRestoreSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fSRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFastSnapshotRestoresResult\");\nvar de_DescribeFastSnapshotRestoreSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_eTna] != null) {\n contents[_ETna] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTna]));\n }\n if (output[_oT] != null) {\n contents[_OTpt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oT]));\n }\n if (output[_eTnab] != null) {\n contents[_ETnab] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTnab]));\n }\n if (output[_dTi] != null) {\n contents[_DTi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTi]));\n }\n if (output[_dTis] != null) {\n contents[_DTis] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTis]));\n }\n return contents;\n}, \"de_DescribeFastSnapshotRestoreSuccessItem\");\nvar de_DescribeFastSnapshotRestoreSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFastSnapshotRestoreSuccessItem(entry, context);\n });\n}, \"de_DescribeFastSnapshotRestoreSuccessSet\");\nvar de_DescribeFleetError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output[_eC] != null) {\n contents[_EC] = (0, import_smithy_client.expectString)(output[_eC]);\n }\n if (output[_eM] != null) {\n contents[_EM] = (0, import_smithy_client.expectString)(output[_eM]);\n }\n return contents;\n}, \"de_DescribeFleetError\");\nvar de_DescribeFleetHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.historyRecordSet === \"\") {\n contents[_HRi] = [];\n } else if (output[_hRS] != null && output[_hRS][_i] != null) {\n contents[_HRi] = de_HistoryRecordSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hRS][_i]), context);\n }\n if (output[_lET] != null) {\n contents[_LET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lET]));\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n return contents;\n}, \"de_DescribeFleetHistoryResult\");\nvar de_DescribeFleetInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.activeInstanceSet === \"\") {\n contents[_AIc] = [];\n } else if (output[_aIS] != null && output[_aIS][_i] != null) {\n contents[_AIc] = de_ActiveInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n return contents;\n}, \"de_DescribeFleetInstancesResult\");\nvar de_DescribeFleetsErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFleetError(entry, context);\n });\n}, \"de_DescribeFleetsErrorSet\");\nvar de_DescribeFleetsInstances = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTAO] != null) {\n contents[_LTAO] = de_LaunchTemplateAndOverridesResponse(output[_lTAO], context);\n }\n if (output[_l] != null) {\n contents[_Li] = (0, import_smithy_client.expectString)(output[_l]);\n }\n if (output.instanceIds === \"\") {\n contents[_IIns] = [];\n } else if (output[_iIn] != null && output[_iIn][_i] != null) {\n contents[_IIns] = de_InstanceIdsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIn][_i]), context);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n return contents;\n}, \"de_DescribeFleetsInstances\");\nvar de_DescribeFleetsInstancesSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeFleetsInstances(entry, context);\n });\n}, \"de_DescribeFleetsInstancesSet\");\nvar de_DescribeFleetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.fleetSet === \"\") {\n contents[_Fl] = [];\n } else if (output[_fS] != null && output[_fS][_i] != null) {\n contents[_Fl] = de_FleetSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fS][_i]), context);\n }\n return contents;\n}, \"de_DescribeFleetsResult\");\nvar de_DescribeFlowLogsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.flowLogSet === \"\") {\n contents[_FL] = [];\n } else if (output[_fLS] != null && output[_fLS][_i] != null) {\n contents[_FL] = de_FlowLogSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fLS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFlowLogsResult\");\nvar de_DescribeFpgaImageAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fIA] != null) {\n contents[_FIAp] = de_FpgaImageAttribute(output[_fIA], context);\n }\n return contents;\n}, \"de_DescribeFpgaImageAttributeResult\");\nvar de_DescribeFpgaImagesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fpgaImageSet === \"\") {\n contents[_FIp] = [];\n } else if (output[_fISp] != null && output[_fISp][_i] != null) {\n contents[_FIp] = de_FpgaImageList((0, import_smithy_client.getArrayIfSingleItem)(output[_fISp][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeFpgaImagesResult\");\nvar de_DescribeHostReservationOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.offeringSet === \"\") {\n contents[_OS] = [];\n } else if (output[_oS] != null && output[_oS][_i] != null) {\n contents[_OS] = de_HostOfferingSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oS][_i]), context);\n }\n return contents;\n}, \"de_DescribeHostReservationOfferingsResult\");\nvar de_DescribeHostReservationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.hostReservationSet === \"\") {\n contents[_HRS] = [];\n } else if (output[_hRSo] != null && output[_hRSo][_i] != null) {\n contents[_HRS] = de_HostReservationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hRSo][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeHostReservationsResult\");\nvar de_DescribeHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.hostSet === \"\") {\n contents[_Ho] = [];\n } else if (output[_hS] != null && output[_hS][_i] != null) {\n contents[_Ho] = de_HostList((0, import_smithy_client.getArrayIfSingleItem)(output[_hS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeHostsResult\");\nvar de_DescribeIamInstanceProfileAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.iamInstanceProfileAssociationSet === \"\") {\n contents[_IIPAa] = [];\n } else if (output[_iIPAS] != null && output[_iIPAS][_i] != null) {\n contents[_IIPAa] = de_IamInstanceProfileAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIPAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIamInstanceProfileAssociationsResult\");\nvar de_DescribeIdentityIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_DescribeIdentityIdFormatResult\");\nvar de_DescribeIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_DescribeIdFormatResult\");\nvar de_DescribeImagesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.imagesSet === \"\") {\n contents[_Ima] = [];\n } else if (output[_iSm] != null && output[_iSm][_i] != null) {\n contents[_Ima] = de_ImageList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSm][_i]), context);\n }\n return contents;\n}, \"de_DescribeImagesResult\");\nvar de_DescribeImportImageTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.importImageTaskSet === \"\") {\n contents[_IIT] = [];\n } else if (output[_iITS] != null && output[_iITS][_i] != null) {\n contents[_IIT] = de_ImportImageTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_iITS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeImportImageTasksResult\");\nvar de_DescribeImportSnapshotTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.importSnapshotTaskSet === \"\") {\n contents[_IST] = [];\n } else if (output[_iSTS] != null && output[_iSTS][_i] != null) {\n contents[_IST] = de_ImportSnapshotTaskList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeImportSnapshotTasksResult\");\nvar de_DescribeInstanceConnectEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceConnectEndpointSet === \"\") {\n contents[_ICEn] = [];\n } else if (output[_iCES] != null && output[_iCES][_i] != null) {\n contents[_ICEn] = de_InstanceConnectEndpointSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceConnectEndpointsResult\");\nvar de_DescribeInstanceCreditSpecificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceCreditSpecificationSet === \"\") {\n contents[_ICS] = [];\n } else if (output[_iCSS] != null && output[_iCSS][_i] != null) {\n contents[_ICS] = de_InstanceCreditSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceCreditSpecificationsResult\");\nvar de_DescribeInstanceEventNotificationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTA] != null) {\n contents[_ITA] = de_InstanceTagNotificationAttribute(output[_iTA], context);\n }\n return contents;\n}, \"de_DescribeInstanceEventNotificationAttributesResult\");\nvar de_DescribeInstanceEventWindowsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceEventWindowSet === \"\") {\n contents[_IEWn] = [];\n } else if (output[_iEWSn] != null && output[_iEWSn][_i] != null) {\n contents[_IEWn] = de_InstanceEventWindowSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iEWSn][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceEventWindowsResult\");\nvar de_DescribeInstanceImageMetadataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceImageMetadataSet === \"\") {\n contents[_IIM] = [];\n } else if (output[_iIMS] != null && output[_iIMS][_i] != null) {\n contents[_IIM] = de_InstanceImageMetadataList((0, import_smithy_client.getArrayIfSingleItem)(output[_iIMS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceImageMetadataResult\");\nvar de_DescribeInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reservationSet === \"\") {\n contents[_Rese] = [];\n } else if (output[_rSes] != null && output[_rSes][_i] != null) {\n contents[_Rese] = de_ReservationList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSes][_i]), context);\n }\n return contents;\n}, \"de_DescribeInstancesResult\");\nvar de_DescribeInstanceStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceStatusSet === \"\") {\n contents[_ISns] = [];\n } else if (output[_iSS] != null && output[_iSS][_i] != null) {\n contents[_ISns] = de_InstanceStatusList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceStatusResult\");\nvar de_DescribeInstanceTopologyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceSet === \"\") {\n contents[_In] = [];\n } else if (output[_iSns] != null && output[_iSns][_i] != null) {\n contents[_In] = de_InstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iSns][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceTopologyResult\");\nvar de_DescribeInstanceTypeOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTypeOfferingSet === \"\") {\n contents[_ITO] = [];\n } else if (output[_iTOS] != null && output[_iTOS][_i] != null) {\n contents[_ITO] = de_InstanceTypeOfferingsList((0, import_smithy_client.getArrayIfSingleItem)(output[_iTOS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceTypeOfferingsResult\");\nvar de_DescribeInstanceTypesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTypeSet === \"\") {\n contents[_ITnst] = [];\n } else if (output[_iTS] != null && output[_iTS][_i] != null) {\n contents[_ITnst] = de_InstanceTypeInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_iTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInstanceTypesResult\");\nvar de_DescribeInternetGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.internetGatewaySet === \"\") {\n contents[_IGnt] = [];\n } else if (output[_iGS] != null && output[_iGS][_i] != null) {\n contents[_IGnt] = de_InternetGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_iGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeInternetGatewaysResult\");\nvar de_DescribeIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.byoasnSet === \"\") {\n contents[_Byoa] = [];\n } else if (output[_bS] != null && output[_bS][_i] != null) {\n contents[_Byoa] = de_ByoasnSet((0, import_smithy_client.getArrayIfSingleItem)(output[_bS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpamByoasnResult\");\nvar de_DescribeIpamExternalResourceVerificationTokensResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamExternalResourceVerificationTokenSet === \"\") {\n contents[_IERVTp] = [];\n } else if (output[_iERVTS] != null && output[_iERVTS][_i] != null) {\n contents[_IERVTp] = de_IpamExternalResourceVerificationTokenSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_iERVTS][_i]),\n context\n );\n }\n return contents;\n}, \"de_DescribeIpamExternalResourceVerificationTokensResult\");\nvar de_DescribeIpamPoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamPoolSet === \"\") {\n contents[_IPpam] = [];\n } else if (output[_iPS] != null && output[_iPS][_i] != null) {\n contents[_IPpam] = de_IpamPoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPS][_i]), context);\n }\n return contents;\n}, \"de_DescribeIpamPoolsResult\");\nvar de_DescribeIpamResourceDiscoveriesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamResourceDiscoverySet === \"\") {\n contents[_IRDp] = [];\n } else if (output[_iRDS] != null && output[_iRDS][_i] != null) {\n contents[_IRDp] = de_IpamResourceDiscoverySet((0, import_smithy_client.getArrayIfSingleItem)(output[_iRDS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpamResourceDiscoveriesResult\");\nvar de_DescribeIpamResourceDiscoveryAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamResourceDiscoveryAssociationSet === \"\") {\n contents[_IRDAp] = [];\n } else if (output[_iRDAS] != null && output[_iRDAS][_i] != null) {\n contents[_IRDAp] = de_IpamResourceDiscoveryAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iRDAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpamResourceDiscoveryAssociationsResult\");\nvar de_DescribeIpamScopesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamScopeSet === \"\") {\n contents[_ISpam] = [];\n } else if (output[_iSSp] != null && output[_iSSp][_i] != null) {\n contents[_ISpam] = de_IpamScopeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iSSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeIpamScopesResult\");\nvar de_DescribeIpamsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamSet === \"\") {\n contents[_Ipam] = [];\n } else if (output[_iSp] != null && output[_iSp][_i] != null) {\n contents[_Ipam] = de_IpamSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeIpamsResult\");\nvar de_DescribeIpv6PoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipv6PoolSet === \"\") {\n contents[_IPpvo] = [];\n } else if (output[_iPSp] != null && output[_iPSp][_i] != null) {\n contents[_IPpvo] = de_Ipv6PoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSp][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeIpv6PoolsResult\");\nvar de_DescribeKeyPairsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.keySet === \"\") {\n contents[_KP] = [];\n } else if (output[_kS] != null && output[_kS][_i] != null) {\n contents[_KP] = de_KeyPairList((0, import_smithy_client.getArrayIfSingleItem)(output[_kS][_i]), context);\n }\n return contents;\n}, \"de_DescribeKeyPairsResult\");\nvar de_DescribeLaunchTemplatesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.launchTemplates === \"\") {\n contents[_LTau] = [];\n } else if (output[_lTa] != null && output[_lTa][_i] != null) {\n contents[_LTau] = de_LaunchTemplateSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lTa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLaunchTemplatesResult\");\nvar de_DescribeLaunchTemplateVersionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.launchTemplateVersionSet === \"\") {\n contents[_LTVa] = [];\n } else if (output[_lTVS] != null && output[_lTVS][_i] != null) {\n contents[_LTVa] = de_LaunchTemplateVersionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lTVS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLaunchTemplateVersionsResult\");\nvar de_DescribeLocalGatewayRouteTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayRouteTableSet === \"\") {\n contents[_LGRTo] = [];\n } else if (output[_lGRTS] != null && output[_lGRTS][_i] != null) {\n contents[_LGRTo] = de_LocalGatewayRouteTableSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGRTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayRouteTablesResult\");\nvar de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayRouteTableVirtualInterfaceGroupAssociationSet === \"\") {\n contents[_LGRTVIGAo] = [];\n } else if (output[_lGRTVIGAS] != null && output[_lGRTVIGAS][_i] != null) {\n contents[_LGRTVIGAo] = de_LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_lGRTVIGAS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult\");\nvar de_DescribeLocalGatewayRouteTableVpcAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayRouteTableVpcAssociationSet === \"\") {\n contents[_LGRTVAo] = [];\n } else if (output[_lGRTVAS] != null && output[_lGRTVAS][_i] != null) {\n contents[_LGRTVAo] = de_LocalGatewayRouteTableVpcAssociationSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_lGRTVAS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayRouteTableVpcAssociationsResult\");\nvar de_DescribeLocalGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewaySet === \"\") {\n contents[_LGoc] = [];\n } else if (output[_lGS] != null && output[_lGS][_i] != null) {\n contents[_LGoc] = de_LocalGatewaySet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewaysResult\");\nvar de_DescribeLocalGatewayVirtualInterfaceGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayVirtualInterfaceGroupSet === \"\") {\n contents[_LGVIGo] = [];\n } else if (output[_lGVIGS] != null && output[_lGVIGS][_i] != null) {\n contents[_LGVIGo] = de_LocalGatewayVirtualInterfaceGroupSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayVirtualInterfaceGroupsResult\");\nvar de_DescribeLocalGatewayVirtualInterfacesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.localGatewayVirtualInterfaceSet === \"\") {\n contents[_LGVIo] = [];\n } else if (output[_lGVIS] != null && output[_lGVIS][_i] != null) {\n contents[_LGVIo] = de_LocalGatewayVirtualInterfaceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLocalGatewayVirtualInterfacesResult\");\nvar de_DescribeLockedSnapshotsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_LockedSnapshotsInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeLockedSnapshotsResult\");\nvar de_DescribeMacHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.macHostSet === \"\") {\n contents[_MHa] = [];\n } else if (output[_mHS] != null && output[_mHS][_i] != null) {\n contents[_MHa] = de_MacHostList((0, import_smithy_client.getArrayIfSingleItem)(output[_mHS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeMacHostsResult\");\nvar de_DescribeManagedPrefixListsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.prefixListSet === \"\") {\n contents[_PLre] = [];\n } else if (output[_pLS] != null && output[_pLS][_i] != null) {\n contents[_PLre] = de_ManagedPrefixListSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLS][_i]), context);\n }\n return contents;\n}, \"de_DescribeManagedPrefixListsResult\");\nvar de_DescribeMovingAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.movingAddressStatusSet === \"\") {\n contents[_MAS] = [];\n } else if (output[_mASS] != null && output[_mASS][_i] != null) {\n contents[_MAS] = de_MovingAddressStatusSet((0, import_smithy_client.getArrayIfSingleItem)(output[_mASS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeMovingAddressesResult\");\nvar de_DescribeNatGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.natGatewaySet === \"\") {\n contents[_NGa] = [];\n } else if (output[_nGS] != null && output[_nGS][_i] != null) {\n contents[_NGa] = de_NatGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNatGatewaysResult\");\nvar de_DescribeNetworkAclsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkAclSet === \"\") {\n contents[_NAe] = [];\n } else if (output[_nAS] != null && output[_nAS][_i] != null) {\n contents[_NAe] = de_NetworkAclList((0, import_smithy_client.getArrayIfSingleItem)(output[_nAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkAclsResult\");\nvar de_DescribeNetworkInsightsAccessScopeAnalysesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsAccessScopeAnalysisSet === \"\") {\n contents[_NIASA] = [];\n } else if (output[_nIASAS] != null && output[_nIASAS][_i] != null) {\n contents[_NIASA] = de_NetworkInsightsAccessScopeAnalysisList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIASAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsAccessScopeAnalysesResult\");\nvar de_DescribeNetworkInsightsAccessScopesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsAccessScopeSet === \"\") {\n contents[_NIASe] = [];\n } else if (output[_nIASS] != null && output[_nIASS][_i] != null) {\n contents[_NIASe] = de_NetworkInsightsAccessScopeList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIASS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsAccessScopesResult\");\nvar de_DescribeNetworkInsightsAnalysesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsAnalysisSet === \"\") {\n contents[_NIA] = [];\n } else if (output[_nIASe] != null && output[_nIASe][_i] != null) {\n contents[_NIA] = de_NetworkInsightsAnalysisList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIASe][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsAnalysesResult\");\nvar de_DescribeNetworkInsightsPathsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInsightsPathSet === \"\") {\n contents[_NIPe] = [];\n } else if (output[_nIPS] != null && output[_nIPS][_i] != null) {\n contents[_NIPe] = de_NetworkInsightsPathList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInsightsPathsResult\");\nvar de_DescribeNetworkInterfaceAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_at] != null) {\n contents[_Att] = de_NetworkInterfaceAttachment(output[_at], context);\n }\n if (output[_de] != null) {\n contents[_De] = de_AttributeValue(output[_de], context);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = de_AttributeBooleanValue(output[_sDC], context);\n }\n if (output[_aPIA] != null) {\n contents[_APIAs] = (0, import_smithy_client.parseBoolean)(output[_aPIA]);\n }\n return contents;\n}, \"de_DescribeNetworkInterfaceAttributeResult\");\nvar de_DescribeNetworkInterfacePermissionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInterfacePermissions === \"\") {\n contents[_NIPet] = [];\n } else if (output[_nIPe] != null && output[_nIPe][_i] != null) {\n contents[_NIPet] = de_NetworkInterfacePermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIPe][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInterfacePermissionsResult\");\nvar de_DescribeNetworkInterfacesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_NetworkInterfaceList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeNetworkInterfacesResult\");\nvar de_DescribeOutpostLagsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.outpostLagSet === \"\") {\n contents[_OL] = [];\n } else if (output[_oLS] != null && output[_oLS][_i] != null) {\n contents[_OL] = de_OutpostLagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oLS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeOutpostLagsResult\");\nvar de_DescribePlacementGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.placementGroupSet === \"\") {\n contents[_PGl] = [];\n } else if (output[_pGS] != null && output[_pGS][_i] != null) {\n contents[_PGl] = de_PlacementGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_pGS][_i]), context);\n }\n return contents;\n}, \"de_DescribePlacementGroupsResult\");\nvar de_DescribePrefixListsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.prefixListSet === \"\") {\n contents[_PLre] = [];\n } else if (output[_pLS] != null && output[_pLS][_i] != null) {\n contents[_PLre] = de_PrefixListSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLS][_i]), context);\n }\n return contents;\n}, \"de_DescribePrefixListsResult\");\nvar de_DescribePrincipalIdFormatResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.principalSet === \"\") {\n contents[_Princ] = [];\n } else if (output[_pSr] != null && output[_pSr][_i] != null) {\n contents[_Princ] = de_PrincipalIdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribePrincipalIdFormatResult\");\nvar de_DescribePublicIpv4PoolsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.publicIpv4PoolSet === \"\") {\n contents[_PIPu] = [];\n } else if (output[_pIPS] != null && output[_pIPS][_i] != null) {\n contents[_PIPu] = de_PublicIpv4PoolSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pIPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribePublicIpv4PoolsResult\");\nvar de_DescribeRegionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.regionInfo === \"\") {\n contents[_Reg] = [];\n } else if (output[_rIe] != null && output[_rIe][_i] != null) {\n contents[_Reg] = de_RegionList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIe][_i]), context);\n }\n return contents;\n}, \"de_DescribeRegionsResult\");\nvar de_DescribeReplaceRootVolumeTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.replaceRootVolumeTaskSet === \"\") {\n contents[_RRVTe] = [];\n } else if (output[_rRVTS] != null && output[_rRVTS][_i] != null) {\n contents[_RRVTe] = de_ReplaceRootVolumeTasks((0, import_smithy_client.getArrayIfSingleItem)(output[_rRVTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeReplaceRootVolumeTasksResult\");\nvar de_DescribeReservedInstancesListingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesListingsSet === \"\") {\n contents[_RIL] = [];\n } else if (output[_rILS] != null && output[_rILS][_i] != null) {\n contents[_RIL] = de_ReservedInstancesListingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rILS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesListingsResult\");\nvar de_DescribeReservedInstancesModificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reservedInstancesModificationsSet === \"\") {\n contents[_RIM] = [];\n } else if (output[_rIMS] != null && output[_rIMS][_i] != null) {\n contents[_RIM] = de_ReservedInstancesModificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIMS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesModificationsResult\");\nvar de_DescribeReservedInstancesOfferingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.reservedInstancesOfferingsSet === \"\") {\n contents[_RIO] = [];\n } else if (output[_rIOS] != null && output[_rIOS][_i] != null) {\n contents[_RIO] = de_ReservedInstancesOfferingList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIOS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesOfferingsResult\");\nvar de_DescribeReservedInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.reservedInstancesSet === \"\") {\n contents[_RIese] = [];\n } else if (output[_rIS] != null && output[_rIS][_i] != null) {\n contents[_RIese] = de_ReservedInstancesList((0, import_smithy_client.getArrayIfSingleItem)(output[_rIS][_i]), context);\n }\n return contents;\n}, \"de_DescribeReservedInstancesResult\");\nvar de_DescribeRouteServerEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerEndpointSet === \"\") {\n contents[_RSEo] = [];\n } else if (output[_rSES] != null && output[_rSES][_i] != null) {\n contents[_RSEo] = de_RouteServerEndpointsList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteServerEndpointsResult\");\nvar de_DescribeRouteServerPeersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerPeerSet === \"\") {\n contents[_RSPo] = [];\n } else if (output[_rSPS] != null && output[_rSPS][_i] != null) {\n contents[_RSPo] = de_RouteServerPeersList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteServerPeersResult\");\nvar de_DescribeRouteServersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerSet === \"\") {\n contents[_RSou] = [];\n } else if (output[_rSSo] != null && output[_rSSo][_i] != null) {\n contents[_RSou] = de_RouteServersList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSSo][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteServersResult\");\nvar de_DescribeRouteTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeTableSet === \"\") {\n contents[_RTou] = [];\n } else if (output[_rTS] != null && output[_rTS][_i] != null) {\n contents[_RTou] = de_RouteTableList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeRouteTablesResult\");\nvar de_DescribeScheduledInstanceAvailabilityResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.scheduledInstanceAvailabilitySet === \"\") {\n contents[_SIAS] = [];\n } else if (output[_sIAS] != null && output[_sIAS][_i] != null) {\n contents[_SIAS] = de_ScheduledInstanceAvailabilitySet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIAS][_i]), context);\n }\n return contents;\n}, \"de_DescribeScheduledInstanceAvailabilityResult\");\nvar de_DescribeScheduledInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.scheduledInstanceSet === \"\") {\n contents[_SIS] = [];\n } else if (output[_sIS] != null && output[_sIS][_i] != null) {\n contents[_SIS] = de_ScheduledInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIS][_i]), context);\n }\n return contents;\n}, \"de_DescribeScheduledInstancesResult\");\nvar de_DescribeSecurityGroupReferencesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupReferenceSet === \"\") {\n contents[_SGRSe] = [];\n } else if (output[_sGRSe] != null && output[_sGRSe][_i] != null) {\n contents[_SGRSe] = de_SecurityGroupReferences((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRSe][_i]), context);\n }\n return contents;\n}, \"de_DescribeSecurityGroupReferencesResult\");\nvar de_DescribeSecurityGroupRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupRuleSet === \"\") {\n contents[_SGR] = [];\n } else if (output[_sGRS] != null && output[_sGRS][_i] != null) {\n contents[_SGR] = de_SecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSecurityGroupRulesResult\");\nvar de_DescribeSecurityGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.securityGroupInfo === \"\") {\n contents[_SG] = [];\n } else if (output[_sGIec] != null && output[_sGIec][_i] != null) {\n contents[_SG] = de_SecurityGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIec][_i]), context);\n }\n return contents;\n}, \"de_DescribeSecurityGroupsResult\");\nvar de_DescribeSecurityGroupVpcAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.securityGroupVpcAssociationSet === \"\") {\n contents[_SGVA] = [];\n } else if (output[_sGVAS] != null && output[_sGVAS][_i] != null) {\n contents[_SGVA] = de_SecurityGroupVpcAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGVAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSecurityGroupVpcAssociationsResult\");\nvar de_DescribeServiceLinkVirtualInterfacesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceLinkVirtualInterfaceSet === \"\") {\n contents[_SLVI] = [];\n } else if (output[_sLVIS] != null && output[_sLVIS][_i] != null) {\n contents[_SLVI] = de_ServiceLinkVirtualInterfaceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sLVIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeServiceLinkVirtualInterfacesResult\");\nvar de_DescribeSnapshotAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output.createVolumePermission === \"\") {\n contents[_CVPr] = [];\n } else if (output[_cVP] != null && output[_cVP][_i] != null) {\n contents[_CVPr] = de_CreateVolumePermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_cVP][_i]), context);\n }\n return contents;\n}, \"de_DescribeSnapshotAttributeResult\");\nvar de_DescribeSnapshotsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_SnapshotList((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n return contents;\n}, \"de_DescribeSnapshotsResult\");\nvar de_DescribeSnapshotTierStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotTierStatusSet === \"\") {\n contents[_STS] = [];\n } else if (output[_sTSS] != null && output[_sTSS][_i] != null) {\n contents[_STS] = de_snapshotTierStatusSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sTSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSnapshotTierStatusResult\");\nvar de_DescribeSpotDatafeedSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sDS] != null) {\n contents[_SDS] = de_SpotDatafeedSubscription(output[_sDS], context);\n }\n return contents;\n}, \"de_DescribeSpotDatafeedSubscriptionResult\");\nvar de_DescribeSpotFleetInstancesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.activeInstanceSet === \"\") {\n contents[_AIc] = [];\n } else if (output[_aIS] != null && output[_aIS][_i] != null) {\n contents[_AIc] = de_ActiveInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_DescribeSpotFleetInstancesResponse\");\nvar de_DescribeSpotFleetRequestHistoryResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.historyRecordSet === \"\") {\n contents[_HRi] = [];\n } else if (output[_hRS] != null && output[_hRS][_i] != null) {\n contents[_HRi] = de_HistoryRecords((0, import_smithy_client.getArrayIfSingleItem)(output[_hRS][_i]), context);\n }\n if (output[_lET] != null) {\n contents[_LET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lET]));\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n return contents;\n}, \"de_DescribeSpotFleetRequestHistoryResponse\");\nvar de_DescribeSpotFleetRequestsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.spotFleetRequestConfigSet === \"\") {\n contents[_SFRCp] = [];\n } else if (output[_sFRCS] != null && output[_sFRCS][_i] != null) {\n contents[_SFRCp] = de_SpotFleetRequestConfigSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sFRCS][_i]), context);\n }\n return contents;\n}, \"de_DescribeSpotFleetRequestsResponse\");\nvar de_DescribeSpotInstanceRequestsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotInstanceRequestSet === \"\") {\n contents[_SIR] = [];\n } else if (output[_sIRS] != null && output[_sIRS][_i] != null) {\n contents[_SIR] = de_SpotInstanceRequestList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeSpotInstanceRequestsResult\");\nvar de_DescribeSpotPriceHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.spotPriceHistorySet === \"\") {\n contents[_SPH] = [];\n } else if (output[_sPHS] != null && output[_sPHS][_i] != null) {\n contents[_SPH] = de_SpotPriceHistoryList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPHS][_i]), context);\n }\n return contents;\n}, \"de_DescribeSpotPriceHistoryResult\");\nvar de_DescribeStaleSecurityGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.staleSecurityGroupSet === \"\") {\n contents[_SSGS] = [];\n } else if (output[_sSGS] != null && output[_sSGS][_i] != null) {\n contents[_SSGS] = de_StaleSecurityGroupSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sSGS][_i]), context);\n }\n return contents;\n}, \"de_DescribeStaleSecurityGroupsResult\");\nvar de_DescribeStoreImageTasksResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.storeImageTaskResultSet === \"\") {\n contents[_SITR] = [];\n } else if (output[_sITRS] != null && output[_sITRS][_i] != null) {\n contents[_SITR] = de_StoreImageTaskResultSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sITRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeStoreImageTasksResult\");\nvar de_DescribeSubnetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.subnetSet === \"\") {\n contents[_Subn] = [];\n } else if (output[_sSub] != null && output[_sSub][_i] != null) {\n contents[_Subn] = de_SubnetList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSub][_i]), context);\n }\n return contents;\n}, \"de_DescribeSubnetsResult\");\nvar de_DescribeTagsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagDescriptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_DescribeTagsResult\");\nvar de_DescribeTrafficMirrorFilterRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorFilterRuleSet === \"\") {\n contents[_TMFRr] = [];\n } else if (output[_tMFRS] != null && output[_tMFRS][_i] != null) {\n contents[_TMFRr] = de_TrafficMirrorFilterRuleSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMFRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorFilterRulesResult\");\nvar de_DescribeTrafficMirrorFiltersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorFilterSet === \"\") {\n contents[_TMFr] = [];\n } else if (output[_tMFS] != null && output[_tMFS][_i] != null) {\n contents[_TMFr] = de_TrafficMirrorFilterSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMFS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorFiltersResult\");\nvar de_DescribeTrafficMirrorSessionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorSessionSet === \"\") {\n contents[_TMSr] = [];\n } else if (output[_tMSS] != null && output[_tMSS][_i] != null) {\n contents[_TMSr] = de_TrafficMirrorSessionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorSessionsResult\");\nvar de_DescribeTrafficMirrorTargetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.trafficMirrorTargetSet === \"\") {\n contents[_TMTr] = [];\n } else if (output[_tMTS] != null && output[_tMTS][_i] != null) {\n contents[_TMTr] = de_TrafficMirrorTargetSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tMTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrafficMirrorTargetsResult\");\nvar de_DescribeTransitGatewayAttachmentsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayAttachments === \"\") {\n contents[_TGAr] = [];\n } else if (output[_tGA] != null && output[_tGA][_i] != null) {\n contents[_TGAr] = de_TransitGatewayAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGA][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayAttachmentsResult\");\nvar de_DescribeTransitGatewayConnectPeersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayConnectPeerSet === \"\") {\n contents[_TGCPr] = [];\n } else if (output[_tGCPS] != null && output[_tGCPS][_i] != null) {\n contents[_TGCPr] = de_TransitGatewayConnectPeerList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGCPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayConnectPeersResult\");\nvar de_DescribeTransitGatewayConnectsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayConnectSet === \"\") {\n contents[_TGCra] = [];\n } else if (output[_tGCS] != null && output[_tGCS][_i] != null) {\n contents[_TGCra] = de_TransitGatewayConnectList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayConnectsResult\");\nvar de_DescribeTransitGatewayMulticastDomainsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayMulticastDomains === \"\") {\n contents[_TGMDr] = [];\n } else if (output[_tGMDr] != null && output[_tGMDr][_i] != null) {\n contents[_TGMDr] = de_TransitGatewayMulticastDomainList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGMDr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayMulticastDomainsResult\");\nvar de_DescribeTransitGatewayPeeringAttachmentsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPeeringAttachments === \"\") {\n contents[_TGPAr] = [];\n } else if (output[_tGPAr] != null && output[_tGPAr][_i] != null) {\n contents[_TGPAr] = de_TransitGatewayPeeringAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPAr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayPeeringAttachmentsResult\");\nvar de_DescribeTransitGatewayPolicyTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPolicyTables === \"\") {\n contents[_TGPTr] = [];\n } else if (output[_tGPTr] != null && output[_tGPTr][_i] != null) {\n contents[_TGPTr] = de_TransitGatewayPolicyTableList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPTr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayPolicyTablesResult\");\nvar de_DescribeTransitGatewayRouteTableAnnouncementsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayRouteTableAnnouncements === \"\") {\n contents[_TGRTAr] = [];\n } else if (output[_tGRTAr] != null && output[_tGRTAr][_i] != null) {\n contents[_TGRTAr] = de_TransitGatewayRouteTableAnnouncementList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_tGRTAr][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayRouteTableAnnouncementsResult\");\nvar de_DescribeTransitGatewayRouteTablesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayRouteTables === \"\") {\n contents[_TGRTr] = [];\n } else if (output[_tGRTr] != null && output[_tGRTr][_i] != null) {\n contents[_TGRTr] = de_TransitGatewayRouteTableList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGRTr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayRouteTablesResult\");\nvar de_DescribeTransitGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewaySet === \"\") {\n contents[_TGra] = [];\n } else if (output[_tGS] != null && output[_tGS][_i] != null) {\n contents[_TGra] = de_TransitGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewaysResult\");\nvar de_DescribeTransitGatewayVpcAttachmentsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayVpcAttachments === \"\") {\n contents[_TGVAr] = [];\n } else if (output[_tGVAr] != null && output[_tGVAr][_i] != null) {\n contents[_TGVAr] = de_TransitGatewayVpcAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGVAr][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTransitGatewayVpcAttachmentsResult\");\nvar de_DescribeTrunkInterfaceAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.interfaceAssociationSet === \"\") {\n contents[_IAnt] = [];\n } else if (output[_iAS] != null && output[_iAS][_i] != null) {\n contents[_IAnt] = de_TrunkInterfaceAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_iAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeTrunkInterfaceAssociationsResult\");\nvar de_DescribeVerifiedAccessEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessEndpointSet === \"\") {\n contents[_VAEe] = [];\n } else if (output[_vAES] != null && output[_vAES][_i] != null) {\n contents[_VAEe] = de_VerifiedAccessEndpointList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessEndpointsResult\");\nvar de_DescribeVerifiedAccessGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessGroupSet === \"\") {\n contents[_VAGe] = [];\n } else if (output[_vAGS] != null && output[_vAGS][_i] != null) {\n contents[_VAGe] = de_VerifiedAccessGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAGS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessGroupsResult\");\nvar de_DescribeVerifiedAccessInstanceLoggingConfigurationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.loggingConfigurationSet === \"\") {\n contents[_LC] = [];\n } else if (output[_lCS] != null && output[_lCS][_i] != null) {\n contents[_LC] = de_VerifiedAccessInstanceLoggingConfigurationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_lCS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessInstanceLoggingConfigurationsResult\");\nvar de_DescribeVerifiedAccessInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessInstanceSet === \"\") {\n contents[_VAIe] = [];\n } else if (output[_vAIS] != null && output[_vAIS][_i] != null) {\n contents[_VAIe] = de_VerifiedAccessInstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAIS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessInstancesResult\");\nvar de_DescribeVerifiedAccessTrustProvidersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessTrustProviderSet === \"\") {\n contents[_VATPe] = [];\n } else if (output[_vATPS] != null && output[_vATPS][_i] != null) {\n contents[_VATPe] = de_VerifiedAccessTrustProviderList((0, import_smithy_client.getArrayIfSingleItem)(output[_vATPS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVerifiedAccessTrustProvidersResult\");\nvar de_DescribeVolumeAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aEIO] != null) {\n contents[_AEIO] = de_AttributeBooleanValue(output[_aEIO], context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n return contents;\n}, \"de_DescribeVolumeAttributeResult\");\nvar de_DescribeVolumesModificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.volumeModificationSet === \"\") {\n contents[_VMo] = [];\n } else if (output[_vMS] != null && output[_vMS][_i] != null) {\n contents[_VMo] = de_VolumeModificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_vMS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVolumesModificationsResult\");\nvar de_DescribeVolumesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.volumeSet === \"\") {\n contents[_Vol] = [];\n } else if (output[_vS] != null && output[_vS][_i] != null) {\n contents[_Vol] = de_VolumeList((0, import_smithy_client.getArrayIfSingleItem)(output[_vS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVolumesResult\");\nvar de_DescribeVolumeStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.volumeStatusSet === \"\") {\n contents[_VSo] = [];\n } else if (output[_vSS] != null && output[_vSS][_i] != null) {\n contents[_VSo] = de_VolumeStatusList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVolumeStatusResult\");\nvar de_DescribeVpcAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eDH] != null) {\n contents[_EDH] = de_AttributeBooleanValue(output[_eDH], context);\n }\n if (output[_eDS] != null) {\n contents[_EDS] = de_AttributeBooleanValue(output[_eDS], context);\n }\n if (output[_eNAUM] != null) {\n contents[_ENAUM] = de_AttributeBooleanValue(output[_eNAUM], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_DescribeVpcAttributeResult\");\nvar de_DescribeVpcBlockPublicAccessExclusionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcBlockPublicAccessExclusionSet === \"\") {\n contents[_VBPAEp] = [];\n } else if (output[_vBPAES] != null && output[_vBPAES][_i] != null) {\n contents[_VBPAEp] = de_VpcBlockPublicAccessExclusionList((0, import_smithy_client.getArrayIfSingleItem)(output[_vBPAES][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcBlockPublicAccessExclusionsResult\");\nvar de_DescribeVpcBlockPublicAccessOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAO] != null) {\n contents[_VBPAO] = de_VpcBlockPublicAccessOptions(output[_vBPAO], context);\n }\n return contents;\n}, \"de_DescribeVpcBlockPublicAccessOptionsResult\");\nvar de_DescribeVpcClassicLinkDnsSupportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.vpcs === \"\") {\n contents[_Vpc] = [];\n } else if (output[_vpc] != null && output[_vpc][_i] != null) {\n contents[_Vpc] = de_ClassicLinkDnsSupportList((0, import_smithy_client.getArrayIfSingleItem)(output[_vpc][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpcClassicLinkDnsSupportResult\");\nvar de_DescribeVpcClassicLinkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcSet === \"\") {\n contents[_Vpc] = [];\n } else if (output[_vSp] != null && output[_vSp][_i] != null) {\n contents[_Vpc] = de_VpcClassicLinkList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpcClassicLinkResult\");\nvar de_DescribeVpcEndpointAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcEndpointAssociationSet === \"\") {\n contents[_VEA] = [];\n } else if (output[_vEAS] != null && output[_vEAS][_i] != null) {\n contents[_VEA] = de_VpcEndpointAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vEAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointAssociationsResult\");\nvar de_DescribeVpcEndpointConnectionNotificationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.connectionNotificationSet === \"\") {\n contents[_CNSo] = [];\n } else if (output[_cNSo] != null && output[_cNSo][_i] != null) {\n contents[_CNSo] = de_ConnectionNotificationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cNSo][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointConnectionNotificationsResult\");\nvar de_DescribeVpcEndpointConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcEndpointConnectionSet === \"\") {\n contents[_VEC] = [];\n } else if (output[_vECS] != null && output[_vECS][_i] != null) {\n contents[_VEC] = de_VpcEndpointConnectionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vECS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointConnectionsResult\");\nvar de_DescribeVpcEndpointServiceConfigurationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceConfigurationSet === \"\") {\n contents[_SCer] = [];\n } else if (output[_sCS] != null && output[_sCS][_i] != null) {\n contents[_SCer] = de_ServiceConfigurationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointServiceConfigurationsResult\");\nvar de_DescribeVpcEndpointServicePermissionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.allowedPrincipals === \"\") {\n contents[_APl] = [];\n } else if (output[_aP] != null && output[_aP][_i] != null) {\n contents[_APl] = de_AllowedPrincipalSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aP][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointServicePermissionsResult\");\nvar de_DescribeVpcEndpointServicesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceNameSet === \"\") {\n contents[_SNer] = [];\n } else if (output[_sNS] != null && output[_sNS][_i] != null) {\n contents[_SNer] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sNS][_i]), context);\n }\n if (output.serviceDetailSet === \"\") {\n contents[_SDe] = [];\n } else if (output[_sDSe] != null && output[_sDSe][_i] != null) {\n contents[_SDe] = de_ServiceDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sDSe][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointServicesResult\");\nvar de_DescribeVpcEndpointsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcEndpointSet === \"\") {\n contents[_VEp] = [];\n } else if (output[_vESp] != null && output[_vESp][_i] != null) {\n contents[_VEp] = de_VpcEndpointSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vESp][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcEndpointsResult\");\nvar de_DescribeVpcPeeringConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpcPeeringConnectionSet === \"\") {\n contents[_VPCp] = [];\n } else if (output[_vPCS] != null && output[_vPCS][_i] != null) {\n contents[_VPCp] = de_VpcPeeringConnectionList((0, import_smithy_client.getArrayIfSingleItem)(output[_vPCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_DescribeVpcPeeringConnectionsResult\");\nvar de_DescribeVpcsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.vpcSet === \"\") {\n contents[_Vpc] = [];\n } else if (output[_vSp] != null && output[_vSp][_i] != null) {\n contents[_Vpc] = de_VpcList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSp][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpcsResult\");\nvar de_DescribeVpnConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpnConnectionSet === \"\") {\n contents[_VCp] = [];\n } else if (output[_vCS] != null && output[_vCS][_i] != null) {\n contents[_VCp] = de_VpnConnectionList((0, import_smithy_client.getArrayIfSingleItem)(output[_vCS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpnConnectionsResult\");\nvar de_DescribeVpnGatewaysResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpnGatewaySet === \"\") {\n contents[_VGp] = [];\n } else if (output[_vGS] != null && output[_vGS][_i] != null) {\n contents[_VGp] = de_VpnGatewayList((0, import_smithy_client.getArrayIfSingleItem)(output[_vGS][_i]), context);\n }\n return contents;\n}, \"de_DescribeVpnGatewaysResult\");\nvar de_DestinationOptionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fF] != null) {\n contents[_FF] = (0, import_smithy_client.expectString)(output[_fF]);\n }\n if (output[_hCP] != null) {\n contents[_HCP] = (0, import_smithy_client.parseBoolean)(output[_hCP]);\n }\n if (output[_pHP] != null) {\n contents[_PHP] = (0, import_smithy_client.parseBoolean)(output[_pHP]);\n }\n return contents;\n}, \"de_DestinationOptionsResponse\");\nvar de_DetachClassicLinkVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DetachClassicLinkVpcResult\");\nvar de_DetachVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_DetachVerifiedAccessTrustProviderResult\");\nvar de_DeviceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tIe] != null) {\n contents[_TIe] = (0, import_smithy_client.expectString)(output[_tIe]);\n }\n if (output[_pSKU] != null) {\n contents[_PSKU] = (0, import_smithy_client.expectString)(output[_pSKU]);\n }\n return contents;\n}, \"de_DeviceOptions\");\nvar de_DeviceTrustProviderTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DeviceTrustProviderTypeList\");\nvar de_DhcpConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output.valueSet === \"\") {\n contents[_Val] = [];\n } else if (output[_vSa] != null && output[_vSa][_i] != null) {\n contents[_Val] = de_DhcpConfigurationValueList((0, import_smithy_client.getArrayIfSingleItem)(output[_vSa][_i]), context);\n }\n return contents;\n}, \"de_DhcpConfiguration\");\nvar de_DhcpConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DhcpConfiguration(entry, context);\n });\n}, \"de_DhcpConfigurationList\");\nvar de_DhcpConfigurationValueList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AttributeValue(entry, context);\n });\n}, \"de_DhcpConfigurationValueList\");\nvar de_DhcpOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_dOI] != null) {\n contents[_DOI] = (0, import_smithy_client.expectString)(output[_dOI]);\n }\n if (output.dhcpConfigurationSet === \"\") {\n contents[_DCh] = [];\n } else if (output[_dCS] != null && output[_dCS][_i] != null) {\n contents[_DCh] = de_DhcpConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(output[_dCS][_i]), context);\n }\n return contents;\n}, \"de_DhcpOptions\");\nvar de_DhcpOptionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DhcpOptions(entry, context);\n });\n}, \"de_DhcpOptionsList\");\nvar de_DirectoryServiceAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dI] != null) {\n contents[_DIir] = (0, import_smithy_client.expectString)(output[_dI]);\n }\n return contents;\n}, \"de_DirectoryServiceAuthentication\");\nvar de_DisableAddressTransferResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aT] != null) {\n contents[_ATdd] = de_AddressTransfer(output[_aT], context);\n }\n return contents;\n}, \"de_DisableAddressTransferResult\");\nvar de_DisableAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aISS] != null) {\n contents[_AISS] = (0, import_smithy_client.expectString)(output[_aISS]);\n }\n return contents;\n}, \"de_DisableAllowedImagesSettingsResult\");\nvar de_DisableAwsNetworkPerformanceMetricSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ou] != null) {\n contents[_Ou] = (0, import_smithy_client.parseBoolean)(output[_ou]);\n }\n return contents;\n}, \"de_DisableAwsNetworkPerformanceMetricSubscriptionResult\");\nvar de_DisableEbsEncryptionByDefaultResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eEBD] != null) {\n contents[_EEBD] = (0, import_smithy_client.parseBoolean)(output[_eEBD]);\n }\n return contents;\n}, \"de_DisableEbsEncryptionByDefaultResult\");\nvar de_DisableFastLaunchResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_sCn] != null) {\n contents[_SCn] = de_FastLaunchSnapshotConfigurationResponse(output[_sCn], context);\n }\n if (output[_lT] != null) {\n contents[_LTa] = de_FastLaunchLaunchTemplateSpecificationResponse(output[_lT], context);\n }\n if (output[_mPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_mPL]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_sTT] != null) {\n contents[_STT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTT]));\n }\n return contents;\n}, \"de_DisableFastLaunchResult\");\nvar de_DisableFastSnapshotRestoreErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output.fastSnapshotRestoreStateErrorSet === \"\") {\n contents[_FSRSE] = [];\n } else if (output[_fSRSES] != null && output[_fSRSES][_i] != null) {\n contents[_FSRSE] = de_DisableFastSnapshotRestoreStateErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fSRSES][_i]), context);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreErrorItem\");\nvar de_DisableFastSnapshotRestoreErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DisableFastSnapshotRestoreErrorItem(entry, context);\n });\n}, \"de_DisableFastSnapshotRestoreErrorSet\");\nvar de_DisableFastSnapshotRestoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_DisableFastSnapshotRestoreSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_DisableFastSnapshotRestoreErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoresResult\");\nvar de_DisableFastSnapshotRestoreStateError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreStateError\");\nvar de_DisableFastSnapshotRestoreStateErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_er] != null) {\n contents[_Er] = de_DisableFastSnapshotRestoreStateError(output[_er], context);\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreStateErrorItem\");\nvar de_DisableFastSnapshotRestoreStateErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DisableFastSnapshotRestoreStateErrorItem(entry, context);\n });\n}, \"de_DisableFastSnapshotRestoreStateErrorSet\");\nvar de_DisableFastSnapshotRestoreSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_eTna] != null) {\n contents[_ETna] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTna]));\n }\n if (output[_oT] != null) {\n contents[_OTpt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oT]));\n }\n if (output[_eTnab] != null) {\n contents[_ETnab] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTnab]));\n }\n if (output[_dTi] != null) {\n contents[_DTi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTi]));\n }\n if (output[_dTis] != null) {\n contents[_DTis] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTis]));\n }\n return contents;\n}, \"de_DisableFastSnapshotRestoreSuccessItem\");\nvar de_DisableFastSnapshotRestoreSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DisableFastSnapshotRestoreSuccessItem(entry, context);\n });\n}, \"de_DisableFastSnapshotRestoreSuccessSet\");\nvar de_DisableImageBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iBPAS] != null) {\n contents[_IBPAS] = (0, import_smithy_client.expectString)(output[_iBPAS]);\n }\n return contents;\n}, \"de_DisableImageBlockPublicAccessResult\");\nvar de_DisableImageDeprecationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableImageDeprecationResult\");\nvar de_DisableImageDeregistrationProtectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.expectString)(output[_r]);\n }\n return contents;\n}, \"de_DisableImageDeregistrationProtectionResult\");\nvar de_DisableImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableImageResult\");\nvar de_DisableIpamOrganizationAdminAccountResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_succ] != null) {\n contents[_Succ] = (0, import_smithy_client.parseBoolean)(output[_succ]);\n }\n return contents;\n}, \"de_DisableIpamOrganizationAdminAccountResult\");\nvar de_DisableRouteServerPropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSPo] != null) {\n contents[_RSPou] = de_RouteServerPropagation(output[_rSPo], context);\n }\n return contents;\n}, \"de_DisableRouteServerPropagationResult\");\nvar de_DisableSerialConsoleAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCAE] != null) {\n contents[_SCAE] = (0, import_smithy_client.parseBoolean)(output[_sCAE]);\n }\n return contents;\n}, \"de_DisableSerialConsoleAccessResult\");\nvar de_DisableSnapshotBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_DisableSnapshotBlockPublicAccessResult\");\nvar de_DisableTransitGatewayRouteTablePropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_prop] != null) {\n contents[_Prop] = de_TransitGatewayPropagation(output[_prop], context);\n }\n return contents;\n}, \"de_DisableTransitGatewayRouteTablePropagationResult\");\nvar de_DisableVpcClassicLinkDnsSupportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableVpcClassicLinkDnsSupportResult\");\nvar de_DisableVpcClassicLinkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisableVpcClassicLinkResult\");\nvar de_DisassociateCapacityReservationBillingOwnerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisassociateCapacityReservationBillingOwnerResult\");\nvar de_DisassociateClientVpnTargetNetworkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_AssociationStatus(output[_sta], context);\n }\n return contents;\n}, \"de_DisassociateClientVpnTargetNetworkResult\");\nvar de_DisassociateEnclaveCertificateIamRoleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_DisassociateEnclaveCertificateIamRoleResult\");\nvar de_DisassociateIamInstanceProfileResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIPA] != null) {\n contents[_IIPA] = de_IamInstanceProfileAssociation(output[_iIPA], context);\n }\n return contents;\n}, \"de_DisassociateIamInstanceProfileResult\");\nvar de_DisassociateInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_DisassociateInstanceEventWindowResult\");\nvar de_DisassociateIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aA] != null) {\n contents[_AAsn] = de_AsnAssociation(output[_aA], context);\n }\n return contents;\n}, \"de_DisassociateIpamByoasnResult\");\nvar de_DisassociateIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDA] != null) {\n contents[_IRDA] = de_IpamResourceDiscoveryAssociation(output[_iRDA], context);\n }\n return contents;\n}, \"de_DisassociateIpamResourceDiscoveryResult\");\nvar de_DisassociateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_DisassociateNatGatewayAddressResult\");\nvar de_DisassociateRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSA] != null) {\n contents[_RSAo] = de_RouteServerAssociation(output[_rSA], context);\n }\n return contents;\n}, \"de_DisassociateRouteServerResult\");\nvar de_DisassociateSecurityGroupVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_DisassociateSecurityGroupVpcResult\");\nvar de_DisassociateSubnetCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_SubnetIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n return contents;\n}, \"de_DisassociateSubnetCidrBlockResult\");\nvar de_DisassociateTransitGatewayMulticastDomainResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_DisassociateTransitGatewayMulticastDomainResult\");\nvar de_DisassociateTransitGatewayPolicyTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayPolicyTableAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_DisassociateTransitGatewayPolicyTableResult\");\nvar de_DisassociateTransitGatewayRouteTableResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayAssociation(output[_ass], context);\n }\n return contents;\n}, \"de_DisassociateTransitGatewayRouteTableResult\");\nvar de_DisassociateTrunkInterfaceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n return contents;\n}, \"de_DisassociateTrunkInterfaceResult\");\nvar de_DisassociateVpcCidrBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCBA] != null) {\n contents[_ICBA] = de_VpcIpv6CidrBlockAssociation(output[_iCBA], context);\n }\n if (output[_cBA] != null) {\n contents[_CBA] = de_VpcCidrBlockAssociation(output[_cBA], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_DisassociateVpcCidrBlockResult\");\nvar de_DiskImageDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ch] != null) {\n contents[_Ch] = (0, import_smithy_client.expectString)(output[_ch]);\n }\n if (output[_f] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_f]);\n }\n if (output[_iMU] != null) {\n contents[_IMU] = (0, import_smithy_client.expectString)(output[_iMU]);\n }\n if (output[_si] != null) {\n contents[_Siz] = (0, import_smithy_client.strictParseLong)(output[_si]);\n }\n return contents;\n}, \"de_DiskImageDescription\");\nvar de_DiskImageVolumeDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_si] != null) {\n contents[_Siz] = (0, import_smithy_client.strictParseLong)(output[_si]);\n }\n return contents;\n}, \"de_DiskImageVolumeDescription\");\nvar de_DiskInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIGB] != null) {\n contents[_SIGB] = (0, import_smithy_client.strictParseLong)(output[_sIGB]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n return contents;\n}, \"de_DiskInfo\");\nvar de_DiskInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DiskInfo(entry, context);\n });\n}, \"de_DiskInfoList\");\nvar de_DnsEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_hZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_hZI]);\n }\n return contents;\n}, \"de_DnsEntry\");\nvar de_DnsEntrySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DnsEntry(entry, context);\n });\n}, \"de_DnsEntrySet\");\nvar de_DnsOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dRIT] != null) {\n contents[_DRIT] = (0, import_smithy_client.expectString)(output[_dRIT]);\n }\n if (output[_pDOFIRE] != null) {\n contents[_PDOFIRE] = (0, import_smithy_client.parseBoolean)(output[_pDOFIRE]);\n }\n return contents;\n}, \"de_DnsOptions\");\nvar de_EbsBlockDevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_VIR] != null) {\n contents[_VIR] = (0, import_smithy_client.strictParseInt32)(output[_VIR]);\n }\n return contents;\n}, \"de_EbsBlockDevice\");\nvar de_EbsBlockDeviceResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n return contents;\n}, \"de_EbsBlockDeviceResponse\");\nvar de_EbsInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eOS] != null) {\n contents[_EOS] = (0, import_smithy_client.expectString)(output[_eOS]);\n }\n if (output[_eSn] != null) {\n contents[_ESnc] = (0, import_smithy_client.expectString)(output[_eSn]);\n }\n if (output[_eOI] != null) {\n contents[_EOI] = de_EbsOptimizedInfo(output[_eOI], context);\n }\n if (output[_nS] != null) {\n contents[_NS] = (0, import_smithy_client.expectString)(output[_nS]);\n }\n return contents;\n}, \"de_EbsInfo\");\nvar de_EbsInstanceBlockDevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_aRs] != null) {\n contents[_ARs] = (0, import_smithy_client.expectString)(output[_aRs]);\n }\n if (output[_vOI] != null) {\n contents[_VOI] = (0, import_smithy_client.expectString)(output[_vOI]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_EbsInstanceBlockDevice\");\nvar de_EbsOptimizedInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bBIM] != null) {\n contents[_BBIM] = (0, import_smithy_client.strictParseInt32)(output[_bBIM]);\n }\n if (output[_bTIMB] != null) {\n contents[_BTIMB] = (0, import_smithy_client.strictParseFloat)(output[_bTIMB]);\n }\n if (output[_bIa] != null) {\n contents[_BIa] = (0, import_smithy_client.strictParseInt32)(output[_bIa]);\n }\n if (output[_mBIM] != null) {\n contents[_MBIM] = (0, import_smithy_client.strictParseInt32)(output[_mBIM]);\n }\n if (output[_mTIMB] != null) {\n contents[_MTIMB] = (0, import_smithy_client.strictParseFloat)(output[_mTIMB]);\n }\n if (output[_mI] != null) {\n contents[_MIa] = (0, import_smithy_client.strictParseInt32)(output[_mI]);\n }\n return contents;\n}, \"de_EbsOptimizedInfo\");\nvar de_EbsStatusDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iSmp] != null) {\n contents[_ISmp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_iSmp]));\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_EbsStatusDetails\");\nvar de_EbsStatusDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EbsStatusDetails(entry, context);\n });\n}, \"de_EbsStatusDetailsList\");\nvar de_EbsStatusSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.details === \"\") {\n contents[_Det] = [];\n } else if (output[_det] != null && output[_det][_i] != null) {\n contents[_Det] = de_EbsStatusDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_det][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_EbsStatusSummary\");\nvar de_Ec2InstanceConnectEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iCEI] != null) {\n contents[_ICEI] = (0, import_smithy_client.expectString)(output[_iCEI]);\n }\n if (output[_iCEA] != null) {\n contents[_ICEA] = (0, import_smithy_client.expectString)(output[_iCEA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_dNn] != null) {\n contents[_DNn] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_fDN] != null) {\n contents[_FDN] = (0, import_smithy_client.expectString)(output[_fDN]);\n }\n if (output.networkInterfaceIdSet === \"\") {\n contents[_NIIe] = [];\n } else if (output[_nIIS] != null && output[_nIIS][_i] != null) {\n contents[_NIIe] = de_NetworkInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_nIIS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_cAr] != null) {\n contents[_CAr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cAr]));\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_pCI] != null) {\n contents[_PCI] = (0, import_smithy_client.parseBoolean)(output[_pCI]);\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_SecurityGroupIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_Ec2InstanceConnectEndpoint\");\nvar de_EfaInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mEI] != null) {\n contents[_MEI] = (0, import_smithy_client.strictParseInt32)(output[_mEI]);\n }\n return contents;\n}, \"de_EfaInfo\");\nvar de_EgressOnlyInternetGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.attachmentSet === \"\") {\n contents[_Atta] = [];\n } else if (output[_aSt] != null && output[_aSt][_i] != null) {\n contents[_Atta] = de_InternetGatewayAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSt][_i]), context);\n }\n if (output[_eOIGI] != null) {\n contents[_EOIGI] = (0, import_smithy_client.expectString)(output[_eOIGI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_EgressOnlyInternetGateway\");\nvar de_EgressOnlyInternetGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EgressOnlyInternetGateway(entry, context);\n });\n}, \"de_EgressOnlyInternetGatewayList\");\nvar de_ElasticGpuAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eGI] != null) {\n contents[_EGIl] = (0, import_smithy_client.expectString)(output[_eGI]);\n }\n if (output[_eGAI] != null) {\n contents[_EGAI] = (0, import_smithy_client.expectString)(output[_eGAI]);\n }\n if (output[_eGAS] != null) {\n contents[_EGAS] = (0, import_smithy_client.expectString)(output[_eGAS]);\n }\n if (output[_eGAT] != null) {\n contents[_EGAT] = (0, import_smithy_client.expectString)(output[_eGAT]);\n }\n return contents;\n}, \"de_ElasticGpuAssociation\");\nvar de_ElasticGpuAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticGpuAssociation(entry, context);\n });\n}, \"de_ElasticGpuAssociationList\");\nvar de_ElasticGpuHealth = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_ElasticGpuHealth\");\nvar de_ElasticGpus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eGI] != null) {\n contents[_EGIl] = (0, import_smithy_client.expectString)(output[_eGI]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_eGT] != null) {\n contents[_EGT] = (0, import_smithy_client.expectString)(output[_eGT]);\n }\n if (output[_eGH] != null) {\n contents[_EGH] = de_ElasticGpuHealth(output[_eGH], context);\n }\n if (output[_eGSl] != null) {\n contents[_EGSlas] = (0, import_smithy_client.expectString)(output[_eGSl]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ElasticGpus\");\nvar de_ElasticGpuSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticGpus(entry, context);\n });\n}, \"de_ElasticGpuSet\");\nvar de_ElasticGpuSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n return contents;\n}, \"de_ElasticGpuSpecificationResponse\");\nvar de_ElasticGpuSpecificationResponseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticGpuSpecificationResponse(entry, context);\n });\n}, \"de_ElasticGpuSpecificationResponseList\");\nvar de_ElasticInferenceAcceleratorAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIAA] != null) {\n contents[_EIAA] = (0, import_smithy_client.expectString)(output[_eIAA]);\n }\n if (output[_eIAAI] != null) {\n contents[_EIAAI] = (0, import_smithy_client.expectString)(output[_eIAAI]);\n }\n if (output[_eIAAS] != null) {\n contents[_EIAAS] = (0, import_smithy_client.expectString)(output[_eIAAS]);\n }\n if (output[_eIAAT] != null) {\n contents[_EIAAT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eIAAT]));\n }\n return contents;\n}, \"de_ElasticInferenceAcceleratorAssociation\");\nvar de_ElasticInferenceAcceleratorAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ElasticInferenceAcceleratorAssociation(entry, context);\n });\n}, \"de_ElasticInferenceAcceleratorAssociationList\");\nvar de_EnableAddressTransferResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aT] != null) {\n contents[_ATdd] = de_AddressTransfer(output[_aT], context);\n }\n return contents;\n}, \"de_EnableAddressTransferResult\");\nvar de_EnableAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aISS] != null) {\n contents[_AISS] = (0, import_smithy_client.expectString)(output[_aISS]);\n }\n return contents;\n}, \"de_EnableAllowedImagesSettingsResult\");\nvar de_EnableAwsNetworkPerformanceMetricSubscriptionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ou] != null) {\n contents[_Ou] = (0, import_smithy_client.parseBoolean)(output[_ou]);\n }\n return contents;\n}, \"de_EnableAwsNetworkPerformanceMetricSubscriptionResult\");\nvar de_EnableEbsEncryptionByDefaultResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eEBD] != null) {\n contents[_EEBD] = (0, import_smithy_client.parseBoolean)(output[_eEBD]);\n }\n return contents;\n}, \"de_EnableEbsEncryptionByDefaultResult\");\nvar de_EnableFastLaunchResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_sCn] != null) {\n contents[_SCn] = de_FastLaunchSnapshotConfigurationResponse(output[_sCn], context);\n }\n if (output[_lT] != null) {\n contents[_LTa] = de_FastLaunchLaunchTemplateSpecificationResponse(output[_lT], context);\n }\n if (output[_mPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_mPL]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_sTT] != null) {\n contents[_STT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTT]));\n }\n return contents;\n}, \"de_EnableFastLaunchResult\");\nvar de_EnableFastSnapshotRestoreErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output.fastSnapshotRestoreStateErrorSet === \"\") {\n contents[_FSRSE] = [];\n } else if (output[_fSRSES] != null && output[_fSRSES][_i] != null) {\n contents[_FSRSE] = de_EnableFastSnapshotRestoreStateErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fSRSES][_i]), context);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreErrorItem\");\nvar de_EnableFastSnapshotRestoreErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EnableFastSnapshotRestoreErrorItem(entry, context);\n });\n}, \"de_EnableFastSnapshotRestoreErrorSet\");\nvar de_EnableFastSnapshotRestoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_EnableFastSnapshotRestoreSuccessSet((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_EnableFastSnapshotRestoreErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoresResult\");\nvar de_EnableFastSnapshotRestoreStateError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreStateError\");\nvar de_EnableFastSnapshotRestoreStateErrorItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_er] != null) {\n contents[_Er] = de_EnableFastSnapshotRestoreStateError(output[_er], context);\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreStateErrorItem\");\nvar de_EnableFastSnapshotRestoreStateErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EnableFastSnapshotRestoreStateErrorItem(entry, context);\n });\n}, \"de_EnableFastSnapshotRestoreStateErrorSet\");\nvar de_EnableFastSnapshotRestoreSuccessItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sTR] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_sTR]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_eTna] != null) {\n contents[_ETna] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTna]));\n }\n if (output[_oT] != null) {\n contents[_OTpt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oT]));\n }\n if (output[_eTnab] != null) {\n contents[_ETnab] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTnab]));\n }\n if (output[_dTi] != null) {\n contents[_DTi] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTi]));\n }\n if (output[_dTis] != null) {\n contents[_DTis] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTis]));\n }\n return contents;\n}, \"de_EnableFastSnapshotRestoreSuccessItem\");\nvar de_EnableFastSnapshotRestoreSuccessSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EnableFastSnapshotRestoreSuccessItem(entry, context);\n });\n}, \"de_EnableFastSnapshotRestoreSuccessSet\");\nvar de_EnableImageBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iBPAS] != null) {\n contents[_IBPAS] = (0, import_smithy_client.expectString)(output[_iBPAS]);\n }\n return contents;\n}, \"de_EnableImageBlockPublicAccessResult\");\nvar de_EnableImageDeprecationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableImageDeprecationResult\");\nvar de_EnableImageDeregistrationProtectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.expectString)(output[_r]);\n }\n return contents;\n}, \"de_EnableImageDeregistrationProtectionResult\");\nvar de_EnableImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableImageResult\");\nvar de_EnableIpamOrganizationAdminAccountResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_succ] != null) {\n contents[_Succ] = (0, import_smithy_client.parseBoolean)(output[_succ]);\n }\n return contents;\n}, \"de_EnableIpamOrganizationAdminAccountResult\");\nvar de_EnableReachabilityAnalyzerOrganizationSharingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rV] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_rV]);\n }\n return contents;\n}, \"de_EnableReachabilityAnalyzerOrganizationSharingResult\");\nvar de_EnableRouteServerPropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSPo] != null) {\n contents[_RSPou] = de_RouteServerPropagation(output[_rSPo], context);\n }\n return contents;\n}, \"de_EnableRouteServerPropagationResult\");\nvar de_EnableSerialConsoleAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCAE] != null) {\n contents[_SCAE] = (0, import_smithy_client.parseBoolean)(output[_sCAE]);\n }\n return contents;\n}, \"de_EnableSerialConsoleAccessResult\");\nvar de_EnableSnapshotBlockPublicAccessResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_EnableSnapshotBlockPublicAccessResult\");\nvar de_EnableTransitGatewayRouteTablePropagationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_prop] != null) {\n contents[_Prop] = de_TransitGatewayPropagation(output[_prop], context);\n }\n return contents;\n}, \"de_EnableTransitGatewayRouteTablePropagationResult\");\nvar de_EnableVpcClassicLinkDnsSupportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableVpcClassicLinkDnsSupportResult\");\nvar de_EnableVpcClassicLinkResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_EnableVpcClassicLinkResult\");\nvar de_EnaSrdSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ESE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_ESE]);\n }\n if (output[_ESUS] != null) {\n contents[_ESUS] = de_EnaSrdUdpSpecificationRequest(output[_ESUS], context);\n }\n return contents;\n}, \"de_EnaSrdSpecificationRequest\");\nvar de_EnaSrdUdpSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ESUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_ESUE]);\n }\n return contents;\n}, \"de_EnaSrdUdpSpecificationRequest\");\nvar de_EnclaveOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_EnclaveOptions\");\nvar de_EndpointSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ClientVpnEndpoint(entry, context);\n });\n}, \"de_EndpointSet\");\nvar de_ErrorSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ValidationError(entry, context);\n });\n}, \"de_ErrorSet\");\nvar de_EventInformation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eDv] != null) {\n contents[_EDv] = (0, import_smithy_client.expectString)(output[_eDv]);\n }\n if (output[_eST] != null) {\n contents[_EST] = (0, import_smithy_client.expectString)(output[_eST]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_EventInformation\");\nvar de_ExcludedInstanceTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ExcludedInstanceTypeSet\");\nvar de_Explanation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ac] != null) {\n contents[_Acl] = de_AnalysisComponent(output[_ac], context);\n }\n if (output[_aRc] != null) {\n contents[_ARcl] = de_AnalysisAclRule(output[_aRc], context);\n }\n if (output[_ad] != null) {\n contents[_Ad] = (0, import_smithy_client.expectString)(output[_ad]);\n }\n if (output.addressSet === \"\") {\n contents[_Addr] = [];\n } else if (output[_aSd] != null && output[_aSd][_i] != null) {\n contents[_Addr] = de_IpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSd][_i]), context);\n }\n if (output[_aTtt] != null) {\n contents[_ATtta] = de_AnalysisComponent(output[_aTtt], context);\n }\n if (output.availabilityZoneSet === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZS] != null && output[_aZS][_i] != null) {\n contents[_AZv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZS][_i]), context);\n }\n if (output.availabilityZoneIdSet === \"\") {\n contents[_AZIv] = [];\n } else if (output[_aZIS] != null && output[_aZIS][_i] != null) {\n contents[_AZIv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZIS][_i]), context);\n }\n if (output.cidrSet === \"\") {\n contents[_Ci] = [];\n } else if (output[_cS] != null && output[_cS][_i] != null) {\n contents[_Ci] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_cS][_i]), context);\n }\n if (output[_c] != null) {\n contents[_Com] = de_AnalysisComponent(output[_c], context);\n }\n if (output[_cGu] != null) {\n contents[_CGu] = de_AnalysisComponent(output[_cGu], context);\n }\n if (output[_d] != null) {\n contents[_D] = de_AnalysisComponent(output[_d], context);\n }\n if (output[_dV] != null) {\n contents[_DVest] = de_AnalysisComponent(output[_dV], context);\n }\n if (output[_di] != null) {\n contents[_Di] = (0, import_smithy_client.expectString)(output[_di]);\n }\n if (output[_eCx] != null) {\n contents[_ECx] = (0, import_smithy_client.expectString)(output[_eCx]);\n }\n if (output[_iRT] != null) {\n contents[_IRT] = de_AnalysisComponent(output[_iRT], context);\n }\n if (output[_iG] != null) {\n contents[_IGn] = de_AnalysisComponent(output[_iG], context);\n }\n if (output[_lBA] != null) {\n contents[_LBAo] = (0, import_smithy_client.expectString)(output[_lBA]);\n }\n if (output[_cLBL] != null) {\n contents[_CLBL] = de_AnalysisLoadBalancerListener(output[_cLBL], context);\n }\n if (output[_lBLP] != null) {\n contents[_LBLP] = (0, import_smithy_client.strictParseInt32)(output[_lBLP]);\n }\n if (output[_lBT] != null) {\n contents[_LBT] = de_AnalysisLoadBalancerTarget(output[_lBT], context);\n }\n if (output[_lBTG] != null) {\n contents[_LBTG] = de_AnalysisComponent(output[_lBTG], context);\n }\n if (output.loadBalancerTargetGroupSet === \"\") {\n contents[_LBTGo] = [];\n } else if (output[_lBTGS] != null && output[_lBTGS][_i] != null) {\n contents[_LBTGo] = de_AnalysisComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_lBTGS][_i]), context);\n }\n if (output[_lBTP] != null) {\n contents[_LBTP] = (0, import_smithy_client.strictParseInt32)(output[_lBTP]);\n }\n if (output[_eLBL] != null) {\n contents[_ELBL] = de_AnalysisComponent(output[_eLBL], context);\n }\n if (output[_mC] != null) {\n contents[_MCis] = (0, import_smithy_client.expectString)(output[_mC]);\n }\n if (output[_nG] != null) {\n contents[_NG] = de_AnalysisComponent(output[_nG], context);\n }\n if (output[_nIe] != null) {\n contents[_NIet] = de_AnalysisComponent(output[_nIe], context);\n }\n if (output[_pF] != null) {\n contents[_PF] = (0, import_smithy_client.expectString)(output[_pF]);\n }\n if (output[_vPC] != null) {\n contents[_VPC] = de_AnalysisComponent(output[_vPC], context);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n if (output[_pL] != null) {\n contents[_PLr] = de_AnalysisComponent(output[_pL], context);\n }\n if (output.protocolSet === \"\") {\n contents[_Pro] = [];\n } else if (output[_pSro] != null && output[_pSro][_i] != null) {\n contents[_Pro] = de_StringList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSro][_i]), context);\n }\n if (output[_rTR] != null) {\n contents[_RTR] = de_AnalysisRouteTableRoute(output[_rTR], context);\n }\n if (output[_rTo] != null) {\n contents[_RTo] = de_AnalysisComponent(output[_rTo], context);\n }\n if (output[_sG] != null) {\n contents[_SGe] = de_AnalysisComponent(output[_sG], context);\n }\n if (output[_sGR] != null) {\n contents[_SGRe] = de_AnalysisSecurityGroupRule(output[_sGR], context);\n }\n if (output.securityGroupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_sGS] != null && output[_sGS][_i] != null) {\n contents[_SG] = de_AnalysisComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGS][_i]), context);\n }\n if (output[_sV] != null) {\n contents[_SVo] = de_AnalysisComponent(output[_sV], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_su] != null) {\n contents[_Su] = de_AnalysisComponent(output[_su], context);\n }\n if (output[_sRT] != null) {\n contents[_SRT] = de_AnalysisComponent(output[_sRT], context);\n }\n if (output[_vp] != null) {\n contents[_Vp] = de_AnalysisComponent(output[_vp], context);\n }\n if (output[_vE] != null) {\n contents[_VE] = de_AnalysisComponent(output[_vE], context);\n }\n if (output[_vC] != null) {\n contents[_VC] = de_AnalysisComponent(output[_vC], context);\n }\n if (output[_vG] != null) {\n contents[_VG] = de_AnalysisComponent(output[_vG], context);\n }\n if (output[_tG] != null) {\n contents[_TGr] = de_AnalysisComponent(output[_tG], context);\n }\n if (output[_tGRT] != null) {\n contents[_TGRT] = de_AnalysisComponent(output[_tGRT], context);\n }\n if (output[_tGRTR] != null) {\n contents[_TGRTR] = de_TransitGatewayRouteTableRoute(output[_tGRTR], context);\n }\n if (output[_tGAr] != null) {\n contents[_TGAra] = de_AnalysisComponent(output[_tGAr], context);\n }\n if (output[_cAo] != null) {\n contents[_CAom] = (0, import_smithy_client.expectString)(output[_cAo]);\n }\n if (output[_cRo] != null) {\n contents[_CRo] = (0, import_smithy_client.expectString)(output[_cRo]);\n }\n if (output[_fSR] != null) {\n contents[_FSRi] = de_FirewallStatelessRule(output[_fSR], context);\n }\n if (output[_fSRi] != null) {\n contents[_FSRir] = de_FirewallStatefulRule(output[_fSRi], context);\n }\n return contents;\n}, \"de_Explanation\");\nvar de_ExplanationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Explanation(entry, context);\n });\n}, \"de_ExplanationList\");\nvar de_ExportClientVpnClientCertificateRevocationListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRL] != null) {\n contents[_CRL] = (0, import_smithy_client.expectString)(output[_cRL]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientCertificateRevocationListStatus(output[_sta], context);\n }\n return contents;\n}, \"de_ExportClientVpnClientCertificateRevocationListResult\");\nvar de_ExportClientVpnClientConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCl] != null) {\n contents[_CCl] = (0, import_smithy_client.expectString)(output[_cCl]);\n }\n return contents;\n}, \"de_ExportClientVpnClientConfigurationResult\");\nvar de_ExportImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIF] != null) {\n contents[_DIFi] = (0, import_smithy_client.expectString)(output[_dIF]);\n }\n if (output[_eITI] != null) {\n contents[_EITIx] = (0, import_smithy_client.expectString)(output[_eITI]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_rNo] != null) {\n contents[_RNo] = (0, import_smithy_client.expectString)(output[_rNo]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sEL] != null) {\n contents[_SEL] = de_ExportTaskS3Location(output[_sEL], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ExportImageResult\");\nvar de_ExportImageTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eITI] != null) {\n contents[_EITIx] = (0, import_smithy_client.expectString)(output[_eITI]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sEL] != null) {\n contents[_SEL] = de_ExportTaskS3Location(output[_sEL], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ExportImageTask\");\nvar de_ExportImageTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ExportImageTask(entry, context);\n });\n}, \"de_ExportImageTaskList\");\nvar de_ExportTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eTI] != null) {\n contents[_ETI] = (0, import_smithy_client.expectString)(output[_eTI]);\n }\n if (output[_eTSx] != null) {\n contents[_ETST] = de_ExportToS3Task(output[_eTSx], context);\n }\n if (output[_iE] != null) {\n contents[_IED] = de_InstanceExportDetails(output[_iE], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ExportTask\");\nvar de_ExportTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ExportTask(entry, context);\n });\n}, \"de_ExportTaskList\");\nvar de_ExportTaskS3Location = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_sP]);\n }\n return contents;\n}, \"de_ExportTaskS3Location\");\nvar de_ExportToS3Task = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cF] != null) {\n contents[_CFo] = (0, import_smithy_client.expectString)(output[_cF]);\n }\n if (output[_dIF] != null) {\n contents[_DIFi] = (0, import_smithy_client.expectString)(output[_dIF]);\n }\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sK] != null) {\n contents[_SK] = (0, import_smithy_client.expectString)(output[_sK]);\n }\n return contents;\n}, \"de_ExportToS3Task\");\nvar de_ExportTransitGatewayRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sL] != null) {\n contents[_SLo] = (0, import_smithy_client.expectString)(output[_sL]);\n }\n return contents;\n}, \"de_ExportTransitGatewayRoutesResult\");\nvar de_ExportVerifiedAccessInstanceClientConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_ve]);\n }\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n if (output.deviceTrustProviderSet === \"\") {\n contents[_DTP] = [];\n } else if (output[_dTPS] != null && output[_dTPS][_i] != null) {\n contents[_DTP] = de_DeviceTrustProviderTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dTPS][_i]), context);\n }\n if (output[_uTP] != null) {\n contents[_UTP] = de_VerifiedAccessInstanceUserTrustProviderClientConfiguration(output[_uTP], context);\n }\n if (output.openVpnConfigurationSet === \"\") {\n contents[_OVC] = [];\n } else if (output[_oVCS] != null && output[_oVCS][_i] != null) {\n contents[_OVC] = de_VerifiedAccessInstanceOpenVpnClientConfigurationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_oVCS][_i]),\n context\n );\n }\n return contents;\n}, \"de_ExportVerifiedAccessInstanceClientConfigurationResult\");\nvar de_FailedCapacityReservationFleetCancellationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRFI] != null) {\n contents[_CRFIa] = (0, import_smithy_client.expectString)(output[_cRFI]);\n }\n if (output[_cCRFE] != null) {\n contents[_CCRFE] = de_CancelCapacityReservationFleetError(output[_cCRFE], context);\n }\n return contents;\n}, \"de_FailedCapacityReservationFleetCancellationResult\");\nvar de_FailedCapacityReservationFleetCancellationResultSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FailedCapacityReservationFleetCancellationResult(entry, context);\n });\n}, \"de_FailedCapacityReservationFleetCancellationResultSet\");\nvar de_FailedQueuedPurchaseDeletion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_DeleteQueuedReservedInstancesError(output[_er], context);\n }\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_FailedQueuedPurchaseDeletion\");\nvar de_FailedQueuedPurchaseDeletionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FailedQueuedPurchaseDeletion(entry, context);\n });\n}, \"de_FailedQueuedPurchaseDeletionSet\");\nvar de_FastLaunchLaunchTemplateSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_ve]);\n }\n return contents;\n}, \"de_FastLaunchLaunchTemplateSpecificationResponse\");\nvar de_FastLaunchSnapshotConfigurationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tRC] != null) {\n contents[_TRC] = (0, import_smithy_client.strictParseInt32)(output[_tRC]);\n }\n return contents;\n}, \"de_FastLaunchSnapshotConfigurationResponse\");\nvar de_FederatedAuthentication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sPA] != null) {\n contents[_SPA] = (0, import_smithy_client.expectString)(output[_sPA]);\n }\n if (output[_sSSPA] != null) {\n contents[_SSSPA] = (0, import_smithy_client.expectString)(output[_sSSPA]);\n }\n return contents;\n}, \"de_FederatedAuthentication\");\nvar de_FilterPortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n return contents;\n}, \"de_FilterPortRange\");\nvar de_FirewallStatefulRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output.sourceSet === \"\") {\n contents[_So] = [];\n } else if (output[_sSo] != null && output[_sSo][_i] != null) {\n contents[_So] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSo][_i]), context);\n }\n if (output.destinationSet === \"\") {\n contents[_Des] = [];\n } else if (output[_dSe] != null && output[_dSe][_i] != null) {\n contents[_Des] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dSe][_i]), context);\n }\n if (output.sourcePortSet === \"\") {\n contents[_SPo] = [];\n } else if (output[_sPS] != null && output[_sPS][_i] != null) {\n contents[_SPo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPS][_i]), context);\n }\n if (output.destinationPortSet === \"\") {\n contents[_DPes] = [];\n } else if (output[_dPS] != null && output[_dPS][_i] != null) {\n contents[_DPes] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPS][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_di] != null) {\n contents[_Di] = (0, import_smithy_client.expectString)(output[_di]);\n }\n return contents;\n}, \"de_FirewallStatefulRule\");\nvar de_FirewallStatelessRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output.sourceSet === \"\") {\n contents[_So] = [];\n } else if (output[_sSo] != null && output[_sSo][_i] != null) {\n contents[_So] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSo][_i]), context);\n }\n if (output.destinationSet === \"\") {\n contents[_Des] = [];\n } else if (output[_dSe] != null && output[_dSe][_i] != null) {\n contents[_Des] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dSe][_i]), context);\n }\n if (output.sourcePortSet === \"\") {\n contents[_SPo] = [];\n } else if (output[_sPS] != null && output[_sPS][_i] != null) {\n contents[_SPo] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPS][_i]), context);\n }\n if (output.destinationPortSet === \"\") {\n contents[_DPes] = [];\n } else if (output[_dPS] != null && output[_dPS][_i] != null) {\n contents[_DPes] = de_PortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPS][_i]), context);\n }\n if (output.protocolSet === \"\") {\n contents[_Pro] = [];\n } else if (output[_pSro] != null && output[_pSro][_i] != null) {\n contents[_Pro] = de_ProtocolIntList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSro][_i]), context);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseInt32)(output[_pri]);\n }\n return contents;\n}, \"de_FirewallStatelessRule\");\nvar de_FleetCapacityReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iPn] != null) {\n contents[_IPn] = (0, import_smithy_client.expectString)(output[_iPn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_tIC] != null) {\n contents[_TICo] = (0, import_smithy_client.strictParseInt32)(output[_tIC]);\n }\n if (output[_fC] != null) {\n contents[_FC] = (0, import_smithy_client.strictParseFloat)(output[_fC]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output[_we] != null) {\n contents[_W] = (0, import_smithy_client.strictParseFloat)(output[_we]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseInt32)(output[_pri]);\n }\n return contents;\n}, \"de_FleetCapacityReservation\");\nvar de_FleetCapacityReservationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetCapacityReservation(entry, context);\n });\n}, \"de_FleetCapacityReservationSet\");\nvar de_FleetData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSc] != null) {\n contents[_ASc] = (0, import_smithy_client.expectString)(output[_aSc]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_fIl] != null) {\n contents[_FIl] = (0, import_smithy_client.expectString)(output[_fIl]);\n }\n if (output[_fSl] != null) {\n contents[_FS] = (0, import_smithy_client.expectString)(output[_fSl]);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eCTP] != null) {\n contents[_ECTP] = (0, import_smithy_client.expectString)(output[_eCTP]);\n }\n if (output[_fC] != null) {\n contents[_FC] = (0, import_smithy_client.strictParseFloat)(output[_fC]);\n }\n if (output[_fODC] != null) {\n contents[_FODC] = (0, import_smithy_client.strictParseFloat)(output[_fODC]);\n }\n if (output.launchTemplateConfigs === \"\") {\n contents[_LTC] = [];\n } else if (output[_lTC] != null && output[_lTC][_i] != null) {\n contents[_LTC] = de_FleetLaunchTemplateConfigList((0, import_smithy_client.getArrayIfSingleItem)(output[_lTC][_i]), context);\n }\n if (output[_tCS] != null) {\n contents[_TCS] = de_TargetCapacitySpecification(output[_tCS], context);\n }\n if (output[_tIWE] != null) {\n contents[_TIWE] = (0, import_smithy_client.parseBoolean)(output[_tIWE]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_vF] != null) {\n contents[_VF] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vF]));\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_rUI] != null) {\n contents[_RUI] = (0, import_smithy_client.parseBoolean)(output[_rUI]);\n }\n if (output[_sO] != null) {\n contents[_SO] = de_SpotOptions(output[_sO], context);\n }\n if (output[_oDO] != null) {\n contents[_ODO] = de_OnDemandOptions(output[_oDO], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.errorSet === \"\") {\n contents[_Err] = [];\n } else if (output[_eSr] != null && output[_eSr][_i] != null) {\n contents[_Err] = de_DescribeFleetsErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSr][_i]), context);\n }\n if (output.fleetInstanceSet === \"\") {\n contents[_In] = [];\n } else if (output[_fIS] != null && output[_fIS][_i] != null) {\n contents[_In] = de_DescribeFleetsInstancesSet((0, import_smithy_client.getArrayIfSingleItem)(output[_fIS][_i]), context);\n }\n if (output[_cont] != null) {\n contents[_Con] = (0, import_smithy_client.expectString)(output[_cont]);\n }\n return contents;\n}, \"de_FleetData\");\nvar de_FleetLaunchTemplateConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTS] != null) {\n contents[_LTS] = de_FleetLaunchTemplateSpecification(output[_lTS], context);\n }\n if (output.overrides === \"\") {\n contents[_Ov] = [];\n } else if (output[_ov] != null && output[_ov][_i] != null) {\n contents[_Ov] = de_FleetLaunchTemplateOverridesList((0, import_smithy_client.getArrayIfSingleItem)(output[_ov][_i]), context);\n }\n return contents;\n}, \"de_FleetLaunchTemplateConfig\");\nvar de_FleetLaunchTemplateConfigList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetLaunchTemplateConfig(entry, context);\n });\n}, \"de_FleetLaunchTemplateConfigList\");\nvar de_FleetLaunchTemplateOverrides = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_mP] != null) {\n contents[_MPa] = (0, import_smithy_client.expectString)(output[_mP]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_wC] != null) {\n contents[_WCe] = (0, import_smithy_client.strictParseFloat)(output[_wC]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseFloat)(output[_pri]);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_PlacementResponse(output[_pla], context);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output.blockDeviceMappingSet === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDMS] != null && output[_bDMS][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingResponseList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDMS][_i]), context);\n }\n return contents;\n}, \"de_FleetLaunchTemplateOverrides\");\nvar de_FleetLaunchTemplateOverridesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetLaunchTemplateOverrides(entry, context);\n });\n}, \"de_FleetLaunchTemplateOverridesList\");\nvar de_FleetLaunchTemplateSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_ve]);\n }\n return contents;\n}, \"de_FleetLaunchTemplateSpecification\");\nvar de_FleetSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FleetData(entry, context);\n });\n}, \"de_FleetSet\");\nvar de_FleetSpotCapacityRebalance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSep] != null) {\n contents[_RS] = (0, import_smithy_client.expectString)(output[_rSep]);\n }\n if (output[_tD] != null) {\n contents[_TDe] = (0, import_smithy_client.strictParseInt32)(output[_tD]);\n }\n return contents;\n}, \"de_FleetSpotCapacityRebalance\");\nvar de_FleetSpotMaintenanceStrategies = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRa] != null) {\n contents[_CRap] = de_FleetSpotCapacityRebalance(output[_cRa], context);\n }\n return contents;\n}, \"de_FleetSpotMaintenanceStrategies\");\nvar de_FlowLog = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_dLEM] != null) {\n contents[_DLEM] = (0, import_smithy_client.expectString)(output[_dLEM]);\n }\n if (output[_dLPA] != null) {\n contents[_DLPA] = (0, import_smithy_client.expectString)(output[_dLPA]);\n }\n if (output[_dCAR] != null) {\n contents[_DCAR] = (0, import_smithy_client.expectString)(output[_dCAR]);\n }\n if (output[_dLS] != null) {\n contents[_DLSe] = (0, import_smithy_client.expectString)(output[_dLS]);\n }\n if (output[_fLI] != null) {\n contents[_FLIl] = (0, import_smithy_client.expectString)(output[_fLI]);\n }\n if (output[_fLSl] != null) {\n contents[_FLS] = (0, import_smithy_client.expectString)(output[_fLSl]);\n }\n if (output[_lGN] != null) {\n contents[_LGN] = (0, import_smithy_client.expectString)(output[_lGN]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_tT] != null) {\n contents[_TT] = (0, import_smithy_client.expectString)(output[_tT]);\n }\n if (output[_lDT] != null) {\n contents[_LDT] = (0, import_smithy_client.expectString)(output[_lDT]);\n }\n if (output[_lD] != null) {\n contents[_LD] = (0, import_smithy_client.expectString)(output[_lD]);\n }\n if (output[_lF] != null) {\n contents[_LF] = (0, import_smithy_client.expectString)(output[_lF]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_mAI] != null) {\n contents[_MAI] = (0, import_smithy_client.strictParseInt32)(output[_mAI]);\n }\n if (output[_dOe] != null) {\n contents[_DO] = de_DestinationOptionsResponse(output[_dOe], context);\n }\n return contents;\n}, \"de_FlowLog\");\nvar de_FlowLogSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FlowLog(entry, context);\n });\n}, \"de_FlowLogSet\");\nvar de_FpgaDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_FpgaDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_FpgaDeviceInfo\");\nvar de_FpgaDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FpgaDeviceInfo(entry, context);\n });\n}, \"de_FpgaDeviceInfoList\");\nvar de_FpgaDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_FpgaDeviceMemoryInfo\");\nvar de_FpgaImage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n if (output[_fIGI] != null) {\n contents[_FIGI] = (0, import_smithy_client.expectString)(output[_fIGI]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_sVh] != null) {\n contents[_SVh] = (0, import_smithy_client.expectString)(output[_sVh]);\n }\n if (output[_pIc] != null) {\n contents[_PIc] = de_PciId(output[_pIc], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = de_FpgaImageState(output[_st], context);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_uT] != null) {\n contents[_UTp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uT]));\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output.tags === \"\") {\n contents[_Ta] = [];\n } else if (output[_ta] != null && output[_ta][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_ta][_i]), context);\n }\n if (output[_pu] != null) {\n contents[_Pu] = (0, import_smithy_client.parseBoolean)(output[_pu]);\n }\n if (output[_dRS] != null) {\n contents[_DRSa] = (0, import_smithy_client.parseBoolean)(output[_dRS]);\n }\n if (output.instanceTypes === \"\") {\n contents[_ITnst] = [];\n } else if (output[_iTn] != null && output[_iTn][_i] != null) {\n contents[_ITnst] = de_InstanceTypesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iTn][_i]), context);\n }\n return contents;\n}, \"de_FpgaImage\");\nvar de_FpgaImageAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fII] != null) {\n contents[_FII] = (0, import_smithy_client.expectString)(output[_fII]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.loadPermissions === \"\") {\n contents[_LPo] = [];\n } else if (output[_lP] != null && output[_lP][_i] != null) {\n contents[_LPo] = de_LoadPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_lP][_i]), context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n return contents;\n}, \"de_FpgaImageAttribute\");\nvar de_FpgaImageList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FpgaImage(entry, context);\n });\n}, \"de_FpgaImageList\");\nvar de_FpgaImageState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_FpgaImageState\");\nvar de_FpgaInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.fpgas === \"\") {\n contents[_Fp] = [];\n } else if (output[_fp] != null && output[_fp][_i] != null) {\n contents[_Fp] = de_FpgaDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_fp][_i]), context);\n }\n if (output[_tFMIMB] != null) {\n contents[_TFMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tFMIMB]);\n }\n return contents;\n}, \"de_FpgaInfo\");\nvar de_GetAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.imageCriterionSet === \"\") {\n contents[_ICm] = [];\n } else if (output[_iCS] != null && output[_iCS][_i] != null) {\n contents[_ICm] = de_ImageCriterionList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCS][_i]), context);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetAllowedImagesSettingsResult\");\nvar de_GetAssociatedEnclaveCertificateIamRolesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associatedRoleSet === \"\") {\n contents[_ARss] = [];\n } else if (output[_aRS] != null && output[_aRS][_i] != null) {\n contents[_ARss] = de_AssociatedRolesList((0, import_smithy_client.getArrayIfSingleItem)(output[_aRS][_i]), context);\n }\n return contents;\n}, \"de_GetAssociatedEnclaveCertificateIamRolesResult\");\nvar de_GetAssociatedIpv6PoolCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipv6CidrAssociationSet === \"\") {\n contents[_ICA] = [];\n } else if (output[_iCAS] != null && output[_iCAS][_i] != null) {\n contents[_ICA] = de_Ipv6CidrAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetAssociatedIpv6PoolCidrsResult\");\nvar de_GetAwsNetworkPerformanceDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.dataResponseSet === \"\") {\n contents[_DRa] = [];\n } else if (output[_dRSa] != null && output[_dRSa][_i] != null) {\n contents[_DRa] = de_DataResponses((0, import_smithy_client.getArrayIfSingleItem)(output[_dRSa][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetAwsNetworkPerformanceDataResult\");\nvar de_GetCapacityReservationUsageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_tIC] != null) {\n contents[_TICo] = (0, import_smithy_client.strictParseInt32)(output[_tIC]);\n }\n if (output[_aICv] != null) {\n contents[_AICv] = (0, import_smithy_client.strictParseInt32)(output[_aICv]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.instanceUsageSet === \"\") {\n contents[_IU] = [];\n } else if (output[_iUS] != null && output[_iUS][_i] != null) {\n contents[_IU] = de_InstanceUsageSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iUS][_i]), context);\n }\n return contents;\n}, \"de_GetCapacityReservationUsageResult\");\nvar de_GetCoipPoolUsageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cPI] != null) {\n contents[_CPIo] = (0, import_smithy_client.expectString)(output[_cPI]);\n }\n if (output.coipAddressUsageSet === \"\") {\n contents[_CAU] = [];\n } else if (output[_cAUS] != null && output[_cAUS][_i] != null) {\n contents[_CAU] = de_CoipAddressUsageSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cAUS][_i]), context);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetCoipPoolUsageResult\");\nvar de_GetConsoleOutputResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n if (output[_ou] != null) {\n contents[_Ou] = (0, import_smithy_client.expectString)(output[_ou]);\n }\n return contents;\n}, \"de_GetConsoleOutputResult\");\nvar de_GetConsoleScreenshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iD] != null) {\n contents[_IDm] = (0, import_smithy_client.expectString)(output[_iD]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_GetConsoleScreenshotResult\");\nvar de_GetDeclarativePoliciesReportSummaryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rI] != null) {\n contents[_RIep] = (0, import_smithy_client.expectString)(output[_rI]);\n }\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_sP]);\n }\n if (output[_tI] != null) {\n contents[_TIa] = (0, import_smithy_client.expectString)(output[_tI]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_eTn] != null) {\n contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTn]));\n }\n if (output[_nOA] != null) {\n contents[_NOA] = (0, import_smithy_client.strictParseInt32)(output[_nOA]);\n }\n if (output[_nOFA] != null) {\n contents[_NOFA] = (0, import_smithy_client.strictParseInt32)(output[_nOFA]);\n }\n if (output.attributeSummarySet === \"\") {\n contents[_ASt] = [];\n } else if (output[_aSSt] != null && output[_aSSt][_i] != null) {\n contents[_ASt] = de_AttributeSummaryList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSSt][_i]), context);\n }\n return contents;\n}, \"de_GetDeclarativePoliciesReportSummaryResult\");\nvar de_GetDefaultCreditSpecificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iFCS] != null) {\n contents[_IFCS] = de_InstanceFamilyCreditSpecification(output[_iFCS], context);\n }\n return contents;\n}, \"de_GetDefaultCreditSpecificationResult\");\nvar de_GetEbsDefaultKmsKeyIdResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_GetEbsDefaultKmsKeyIdResult\");\nvar de_GetEbsEncryptionByDefaultResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eEBD] != null) {\n contents[_EEBD] = (0, import_smithy_client.parseBoolean)(output[_eEBD]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n return contents;\n}, \"de_GetEbsEncryptionByDefaultResult\");\nvar de_GetFlowLogsIntegrationTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_res] != null) {\n contents[_Resu] = (0, import_smithy_client.expectString)(output[_res]);\n }\n return contents;\n}, \"de_GetFlowLogsIntegrationTemplateResult\");\nvar de_GetGroupsForCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.capacityReservationGroupSet === \"\") {\n contents[_CRG] = [];\n } else if (output[_cRGS] != null && output[_cRGS][_i] != null) {\n contents[_CRG] = de_CapacityReservationGroupSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cRGS][_i]), context);\n }\n return contents;\n}, \"de_GetGroupsForCapacityReservationResult\");\nvar de_GetHostReservationPurchasePreviewResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output.purchase === \"\") {\n contents[_Pur] = [];\n } else if (output[_pur] != null && output[_pur][_i] != null) {\n contents[_Pur] = de_PurchaseSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pur][_i]), context);\n }\n if (output[_tHP] != null) {\n contents[_THP] = (0, import_smithy_client.expectString)(output[_tHP]);\n }\n if (output[_tUP] != null) {\n contents[_TUP] = (0, import_smithy_client.expectString)(output[_tUP]);\n }\n return contents;\n}, \"de_GetHostReservationPurchasePreviewResult\");\nvar de_GetImageBlockPublicAccessStateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iBPAS] != null) {\n contents[_IBPAS] = (0, import_smithy_client.expectString)(output[_iBPAS]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetImageBlockPublicAccessStateResult\");\nvar de_GetInstanceMetadataDefaultsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aL] != null) {\n contents[_ALc] = de_InstanceMetadataDefaultsResponse(output[_aL], context);\n }\n return contents;\n}, \"de_GetInstanceMetadataDefaultsResult\");\nvar de_GetInstanceTpmEkPubResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_kT] != null) {\n contents[_KT] = (0, import_smithy_client.expectString)(output[_kT]);\n }\n if (output[_kF] != null) {\n contents[_KF] = (0, import_smithy_client.expectString)(output[_kF]);\n }\n if (output[_kV] != null) {\n contents[_KV] = (0, import_smithy_client.expectString)(output[_kV]);\n }\n return contents;\n}, \"de_GetInstanceTpmEkPubResult\");\nvar de_GetInstanceTypesFromInstanceRequirementsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTypeSet === \"\") {\n contents[_ITnst] = [];\n } else if (output[_iTS] != null && output[_iTS][_i] != null) {\n contents[_ITnst] = de_InstanceTypeInfoFromInstanceRequirementsSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_iTS][_i]),\n context\n );\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetInstanceTypesFromInstanceRequirementsResult\");\nvar de_GetInstanceUefiDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_uD] != null) {\n contents[_UDe] = (0, import_smithy_client.expectString)(output[_uD]);\n }\n return contents;\n}, \"de_GetInstanceUefiDataResult\");\nvar de_GetIpamAddressHistoryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.historyRecordSet === \"\") {\n contents[_HRi] = [];\n } else if (output[_hRS] != null && output[_hRS][_i] != null) {\n contents[_HRi] = de_IpamAddressHistoryRecordSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamAddressHistoryResult\");\nvar de_GetIpamDiscoveredAccountsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamDiscoveredAccountSet === \"\") {\n contents[_IDA] = [];\n } else if (output[_iDAS] != null && output[_iDAS][_i] != null) {\n contents[_IDA] = de_IpamDiscoveredAccountSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iDAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamDiscoveredAccountsResult\");\nvar de_GetIpamDiscoveredPublicAddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamDiscoveredPublicAddressSet === \"\") {\n contents[_IDPA] = [];\n } else if (output[_iDPAS] != null && output[_iDPAS][_i] != null) {\n contents[_IDPA] = de_IpamDiscoveredPublicAddressSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iDPAS][_i]), context);\n }\n if (output[_oST] != null) {\n contents[_OST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oST]));\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamDiscoveredPublicAddressesResult\");\nvar de_GetIpamDiscoveredResourceCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamDiscoveredResourceCidrSet === \"\") {\n contents[_IDRC] = [];\n } else if (output[_iDRCS] != null && output[_iDRCS][_i] != null) {\n contents[_IDRC] = de_IpamDiscoveredResourceCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iDRCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamDiscoveredResourceCidrsResult\");\nvar de_GetIpamPoolAllocationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamPoolAllocationSet === \"\") {\n contents[_IPAp] = [];\n } else if (output[_iPAS] != null && output[_iPAS][_i] != null) {\n contents[_IPAp] = de_IpamPoolAllocationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamPoolAllocationsResult\");\nvar de_GetIpamPoolCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ipamPoolCidrSet === \"\") {\n contents[_IPCpam] = [];\n } else if (output[_iPCS] != null && output[_iPCS][_i] != null) {\n contents[_IPCpam] = de_IpamPoolCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iPCS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetIpamPoolCidrsResult\");\nvar de_GetIpamResourceCidrsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.ipamResourceCidrSet === \"\") {\n contents[_IRC] = [];\n } else if (output[_iRCS] != null && output[_iRCS][_i] != null) {\n contents[_IRC] = de_IpamResourceCidrSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iRCS][_i]), context);\n }\n return contents;\n}, \"de_GetIpamResourceCidrsResult\");\nvar de_GetLaunchTemplateDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTD] != null) {\n contents[_LTD] = de_ResponseLaunchTemplateData(output[_lTD], context);\n }\n return contents;\n}, \"de_GetLaunchTemplateDataResult\");\nvar de_GetManagedPrefixListAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.prefixListAssociationSet === \"\") {\n contents[_PLA] = [];\n } else if (output[_pLAS] != null && output[_pLAS][_i] != null) {\n contents[_PLA] = de_PrefixListAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLAS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetManagedPrefixListAssociationsResult\");\nvar de_GetManagedPrefixListEntriesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.entrySet === \"\") {\n contents[_Ent] = [];\n } else if (output[_eSnt] != null && output[_eSnt][_i] != null) {\n contents[_Ent] = de_PrefixListEntrySet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSnt][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetManagedPrefixListEntriesResult\");\nvar de_GetNetworkInsightsAccessScopeAnalysisFindingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n if (output[_aSn] != null) {\n contents[_ASn] = (0, import_smithy_client.expectString)(output[_aSn]);\n }\n if (output.analysisFindingSet === \"\") {\n contents[_AFn] = [];\n } else if (output[_aFS] != null && output[_aFS][_i] != null) {\n contents[_AFn] = de_AccessScopeAnalysisFindingList((0, import_smithy_client.getArrayIfSingleItem)(output[_aFS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetNetworkInsightsAccessScopeAnalysisFindingsResult\");\nvar de_GetNetworkInsightsAccessScopeContentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASC] != null) {\n contents[_NIASC] = de_NetworkInsightsAccessScopeContent(output[_nIASC], context);\n }\n return contents;\n}, \"de_GetNetworkInsightsAccessScopeContentResult\");\nvar de_GetPasswordDataResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n if (output[_pD] != null) {\n contents[_PDa] = (0, import_smithy_client.expectString)(output[_pD]);\n }\n return contents;\n}, \"de_GetPasswordDataResult\");\nvar de_GetReservedInstancesExchangeQuoteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_iVE] != null) {\n contents[_IVE] = (0, import_smithy_client.parseBoolean)(output[_iVE]);\n }\n if (output[_oRIWEA] != null) {\n contents[_ORIWEA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_oRIWEA]));\n }\n if (output[_pDa] != null) {\n contents[_PDay] = (0, import_smithy_client.expectString)(output[_pDa]);\n }\n if (output[_rIVR] != null) {\n contents[_RIVR] = de_ReservationValue(output[_rIVR], context);\n }\n if (output.reservedInstanceValueSet === \"\") {\n contents[_RIVS] = [];\n } else if (output[_rIVS] != null && output[_rIVS][_i] != null) {\n contents[_RIVS] = de_ReservedInstanceReservationValueSet((0, import_smithy_client.getArrayIfSingleItem)(output[_rIVS][_i]), context);\n }\n if (output[_tCVR] != null) {\n contents[_TCVR] = de_ReservationValue(output[_tCVR], context);\n }\n if (output.targetConfigurationValueSet === \"\") {\n contents[_TCVS] = [];\n } else if (output[_tCVS] != null && output[_tCVS][_i] != null) {\n contents[_TCVS] = de_TargetReservationValueSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tCVS][_i]), context);\n }\n if (output[_vFR] != null) {\n contents[_VFR] = (0, import_smithy_client.expectString)(output[_vFR]);\n }\n return contents;\n}, \"de_GetReservedInstancesExchangeQuoteResult\");\nvar de_GetRouteServerAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerAssociationSet === \"\") {\n contents[_RSAou] = [];\n } else if (output[_rSAS] != null && output[_rSAS][_i] != null) {\n contents[_RSAou] = de_RouteServerAssociationsList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSAS][_i]), context);\n }\n return contents;\n}, \"de_GetRouteServerAssociationsResult\");\nvar de_GetRouteServerPropagationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeServerPropagationSet === \"\") {\n contents[_RSPout] = [];\n } else if (output[_rSPSo] != null && output[_rSPSo][_i] != null) {\n contents[_RSPout] = de_RouteServerPropagationsList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSPSo][_i]), context);\n }\n return contents;\n}, \"de_GetRouteServerPropagationsResult\");\nvar de_GetRouteServerRoutingDatabaseResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRP] != null) {\n contents[_ARP] = (0, import_smithy_client.parseBoolean)(output[_aRP]);\n }\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_RouteServerRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetRouteServerRoutingDatabaseResult\");\nvar de_GetSecurityGroupsForVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n if (output.securityGroupForVpcSet === \"\") {\n contents[_SGFV] = [];\n } else if (output[_sGFVS] != null && output[_sGFVS][_i] != null) {\n contents[_SGFV] = de_SecurityGroupForVpcList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGFVS][_i]), context);\n }\n return contents;\n}, \"de_GetSecurityGroupsForVpcResult\");\nvar de_GetSerialConsoleAccessStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCAE] != null) {\n contents[_SCAE] = (0, import_smithy_client.parseBoolean)(output[_sCAE]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetSerialConsoleAccessStatusResult\");\nvar de_GetSnapshotBlockPublicAccessStateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n return contents;\n}, \"de_GetSnapshotBlockPublicAccessStateResult\");\nvar de_GetSpotPlacementScoresResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotPlacementScoreSet === \"\") {\n contents[_SPS] = [];\n } else if (output[_sPSS] != null && output[_sPSS][_i] != null) {\n contents[_SPS] = de_SpotPlacementScores((0, import_smithy_client.getArrayIfSingleItem)(output[_sPSS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetSpotPlacementScoresResult\");\nvar de_GetSubnetCidrReservationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.subnetIpv4CidrReservationSet === \"\") {\n contents[_SICR] = [];\n } else if (output[_sICRS] != null && output[_sICRS][_i] != null) {\n contents[_SICR] = de_SubnetCidrReservationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sICRS][_i]), context);\n }\n if (output.subnetIpv6CidrReservationSet === \"\") {\n contents[_SICRu] = [];\n } else if (output[_sICRSu] != null && output[_sICRSu][_i] != null) {\n contents[_SICRu] = de_SubnetCidrReservationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sICRSu][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetSubnetCidrReservationsResult\");\nvar de_GetTransitGatewayAttachmentPropagationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayAttachmentPropagations === \"\") {\n contents[_TGAP] = [];\n } else if (output[_tGAP] != null && output[_tGAP][_i] != null) {\n contents[_TGAP] = de_TransitGatewayAttachmentPropagationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGAP][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayAttachmentPropagationsResult\");\nvar de_GetTransitGatewayMulticastDomainAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.multicastDomainAssociations === \"\") {\n contents[_MDA] = [];\n } else if (output[_mDA] != null && output[_mDA][_i] != null) {\n contents[_MDA] = de_TransitGatewayMulticastDomainAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_mDA][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayMulticastDomainAssociationsResult\");\nvar de_GetTransitGatewayPolicyTableAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associations === \"\") {\n contents[_Ass] = [];\n } else if (output[_a] != null && output[_a][_i] != null) {\n contents[_Ass] = de_TransitGatewayPolicyTableAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_a][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayPolicyTableAssociationsResult\");\nvar de_GetTransitGatewayPolicyTableEntriesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPolicyTableEntries === \"\") {\n contents[_TGPTE] = [];\n } else if (output[_tGPTE] != null && output[_tGPTE][_i] != null) {\n contents[_TGPTE] = de_TransitGatewayPolicyTableEntryList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPTE][_i]), context);\n }\n return contents;\n}, \"de_GetTransitGatewayPolicyTableEntriesResult\");\nvar de_GetTransitGatewayPrefixListReferencesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayPrefixListReferenceSet === \"\") {\n contents[_TGPLRr] = [];\n } else if (output[_tGPLRS] != null && output[_tGPLRS][_i] != null) {\n contents[_TGPLRr] = de_TransitGatewayPrefixListReferenceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_tGPLRS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayPrefixListReferencesResult\");\nvar de_GetTransitGatewayRouteTableAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associations === \"\") {\n contents[_Ass] = [];\n } else if (output[_a] != null && output[_a][_i] != null) {\n contents[_Ass] = de_TransitGatewayRouteTableAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_a][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayRouteTableAssociationsResult\");\nvar de_GetTransitGatewayRouteTablePropagationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.transitGatewayRouteTablePropagations === \"\") {\n contents[_TGRTP] = [];\n } else if (output[_tGRTP] != null && output[_tGRTP][_i] != null) {\n contents[_TGRTP] = de_TransitGatewayRouteTablePropagationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGRTP][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetTransitGatewayRouteTablePropagationsResult\");\nvar de_GetVerifiedAccessEndpointPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n return contents;\n}, \"de_GetVerifiedAccessEndpointPolicyResult\");\nvar de_GetVerifiedAccessEndpointTargetsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.verifiedAccessEndpointTargetSet === \"\") {\n contents[_VAET] = [];\n } else if (output[_vAETS] != null && output[_vAETS][_i] != null) {\n contents[_VAET] = de_VerifiedAccessEndpointTargetList((0, import_smithy_client.getArrayIfSingleItem)(output[_vAETS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetVerifiedAccessEndpointTargetsResult\");\nvar de_GetVerifiedAccessGroupPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n return contents;\n}, \"de_GetVerifiedAccessGroupPolicyResult\");\nvar de_GetVpnConnectionDeviceSampleConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCDSC] != null) {\n contents[_VCDSC] = (0, import_smithy_client.expectString)(output[_vCDSC]);\n }\n return contents;\n}, \"de_GetVpnConnectionDeviceSampleConfigurationResult\");\nvar de_GetVpnConnectionDeviceTypesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.vpnConnectionDeviceTypeSet === \"\") {\n contents[_VCDT] = [];\n } else if (output[_vCDTS] != null && output[_vCDTS][_i] != null) {\n contents[_VCDT] = de_VpnConnectionDeviceTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_vCDTS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_GetVpnConnectionDeviceTypesResult\");\nvar de_GetVpnTunnelReplacementStatusResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCI] != null) {\n contents[_VCI] = (0, import_smithy_client.expectString)(output[_vCI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cGIu] != null) {\n contents[_CGIu] = (0, import_smithy_client.expectString)(output[_cGIu]);\n }\n if (output[_vGI] != null) {\n contents[_VGI] = (0, import_smithy_client.expectString)(output[_vGI]);\n }\n if (output[_vTOIA] != null) {\n contents[_VTOIA] = (0, import_smithy_client.expectString)(output[_vTOIA]);\n }\n if (output[_mD] != null) {\n contents[_MDa] = de_MaintenanceDetails(output[_mD], context);\n }\n return contents;\n}, \"de_GetVpnTunnelReplacementStatusResult\");\nvar de_GpuDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_GpuDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_GpuDeviceInfo\");\nvar de_GpuDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GpuDeviceInfo(entry, context);\n });\n}, \"de_GpuDeviceInfoList\");\nvar de_GpuDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_GpuDeviceMemoryInfo\");\nvar de_GpuInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.gpus === \"\") {\n contents[_Gp] = [];\n } else if (output[_gp] != null && output[_gp][_i] != null) {\n contents[_Gp] = de_GpuDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_gp][_i]), context);\n }\n if (output[_tGMIMB] != null) {\n contents[_TGMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tGMIMB]);\n }\n return contents;\n}, \"de_GpuInfo\");\nvar de_GroupIdentifier = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n return contents;\n}, \"de_GroupIdentifier\");\nvar de_GroupIdentifierList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GroupIdentifier(entry, context);\n });\n}, \"de_GroupIdentifierList\");\nvar de_GroupIdentifierSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupIdentifier(entry, context);\n });\n}, \"de_GroupIdentifierSet\");\nvar de_GroupIdStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_GroupIdStringList\");\nvar de_HibernationOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_conf] != null) {\n contents[_Conf] = (0, import_smithy_client.parseBoolean)(output[_conf]);\n }\n return contents;\n}, \"de_HibernationOptions\");\nvar de_HistoryRecord = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIv] != null) {\n contents[_EIv] = de_EventInformation(output[_eIv], context);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_HistoryRecord\");\nvar de_HistoryRecordEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIv] != null) {\n contents[_EIv] = de_EventInformation(output[_eIv], context);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_HistoryRecordEntry\");\nvar de_HistoryRecords = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HistoryRecord(entry, context);\n });\n}, \"de_HistoryRecords\");\nvar de_HistoryRecordSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HistoryRecordEntry(entry, context);\n });\n}, \"de_HistoryRecordSet\");\nvar de_Host = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aPu] != null) {\n contents[_AP] = (0, import_smithy_client.expectString)(output[_aPu]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aC] != null) {\n contents[_ACv] = de_AvailableCapacity(output[_aC], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output[_hP] != null) {\n contents[_HP] = de_HostProperties(output[_hP], context);\n }\n if (output[_hRI] != null) {\n contents[_HRI] = (0, import_smithy_client.expectString)(output[_hRI]);\n }\n if (output.instances === \"\") {\n contents[_In] = [];\n } else if (output[_ins] != null && output[_ins][_i] != null) {\n contents[_In] = de_HostInstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_ins][_i]), context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_aTll] != null) {\n contents[_ATll] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTll]));\n }\n if (output[_rTel] != null) {\n contents[_RTel] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rTel]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_hR] != null) {\n contents[_HR] = (0, import_smithy_client.expectString)(output[_hR]);\n }\n if (output[_aMIT] != null) {\n contents[_AMIT] = (0, import_smithy_client.expectString)(output[_aMIT]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_mOSLRG] != null) {\n contents[_MOSLRG] = (0, import_smithy_client.parseBoolean)(output[_mOSLRG]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_hM] != null) {\n contents[_HM] = (0, import_smithy_client.expectString)(output[_hM]);\n }\n if (output[_aIss] != null) {\n contents[_AIsse] = (0, import_smithy_client.expectString)(output[_aIss]);\n }\n return contents;\n}, \"de_Host\");\nvar de_HostInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_HostInstance\");\nvar de_HostInstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostInstance(entry, context);\n });\n}, \"de_HostInstanceList\");\nvar de_HostList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Host(entry, context);\n });\n}, \"de_HostList\");\nvar de_HostOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseInt32)(output[_du]);\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_oIf] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_oIf]);\n }\n if (output[_pO] != null) {\n contents[_PO] = (0, import_smithy_client.expectString)(output[_pO]);\n }\n if (output[_uP] != null) {\n contents[_UPp] = (0, import_smithy_client.expectString)(output[_uP]);\n }\n return contents;\n}, \"de_HostOffering\");\nvar de_HostOfferingSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostOffering(entry, context);\n });\n}, \"de_HostOfferingSet\");\nvar de_HostProperties = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cor] != null) {\n contents[_Cor] = (0, import_smithy_client.strictParseInt32)(output[_cor]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_so] != null) {\n contents[_Soc] = (0, import_smithy_client.strictParseInt32)(output[_so]);\n }\n if (output[_tVC] != null) {\n contents[_TVC] = (0, import_smithy_client.strictParseInt32)(output[_tVC]);\n }\n return contents;\n}, \"de_HostProperties\");\nvar de_HostReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseInt32)(output[_du]);\n }\n if (output[_end] != null) {\n contents[_End] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_end]));\n }\n if (output.hostIdSet === \"\") {\n contents[_HIS] = [];\n } else if (output[_hIS] != null && output[_hIS][_i] != null) {\n contents[_HIS] = de_ResponseHostIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hIS][_i]), context);\n }\n if (output[_hRI] != null) {\n contents[_HRI] = (0, import_smithy_client.expectString)(output[_hRI]);\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_oIf] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_oIf]);\n }\n if (output[_pO] != null) {\n contents[_PO] = (0, import_smithy_client.expectString)(output[_pO]);\n }\n if (output[_star] != null) {\n contents[_Star] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_star]));\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_uP] != null) {\n contents[_UPp] = (0, import_smithy_client.expectString)(output[_uP]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_HostReservation\");\nvar de_HostReservationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostReservation(entry, context);\n });\n}, \"de_HostReservationSet\");\nvar de_IamInstanceProfile = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n return contents;\n}, \"de_IamInstanceProfile\");\nvar de_IamInstanceProfileAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfile(output[_iIP], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_IamInstanceProfileAssociation\");\nvar de_IamInstanceProfileAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IamInstanceProfileAssociation(entry, context);\n });\n}, \"de_IamInstanceProfileAssociationSet\");\nvar de_IamInstanceProfileSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_IamInstanceProfileSpecification\");\nvar de_IcmpTypeCode = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.strictParseInt32)(output[_co]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.strictParseInt32)(output[_ty]);\n }\n return contents;\n}, \"de_IcmpTypeCode\");\nvar de_IdFormat = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dea] != null) {\n contents[_Dea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dea]));\n }\n if (output[_reso] != null) {\n contents[_Res] = (0, import_smithy_client.expectString)(output[_reso]);\n }\n if (output[_uLI] != null) {\n contents[_ULI] = (0, import_smithy_client.parseBoolean)(output[_uLI]);\n }\n return contents;\n}, \"de_IdFormat\");\nvar de_IdFormatList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IdFormat(entry, context);\n });\n}, \"de_IdFormatList\");\nvar de_IKEVersionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IKEVersionsListValue(entry, context);\n });\n}, \"de_IKEVersionsList\");\nvar de_IKEVersionsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_IKEVersionsListValue\");\nvar de_Image = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pDl] != null) {\n contents[_PDl] = (0, import_smithy_client.expectString)(output[_pDl]);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = (0, import_smithy_client.parseBoolean)(output[_eSna]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iOA] != null) {\n contents[_IOA] = (0, import_smithy_client.expectString)(output[_iOA]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_rDN] != null) {\n contents[_RDN] = (0, import_smithy_client.expectString)(output[_rDN]);\n }\n if (output[_rDT] != null) {\n contents[_RDT] = (0, import_smithy_client.expectString)(output[_rDT]);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = (0, import_smithy_client.expectString)(output[_sNSr]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = de_StateReason(output[_sRt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vTi] != null) {\n contents[_VTir] = (0, import_smithy_client.expectString)(output[_vTi]);\n }\n if (output[_bM] != null) {\n contents[_BM] = (0, import_smithy_client.expectString)(output[_bM]);\n }\n if (output[_tSp] != null) {\n contents[_TSp] = (0, import_smithy_client.expectString)(output[_tSp]);\n }\n if (output[_dTe] != null) {\n contents[_DTep] = (0, import_smithy_client.expectString)(output[_dTe]);\n }\n if (output[_iSmd] != null) {\n contents[_ISm] = (0, import_smithy_client.expectString)(output[_iSmd]);\n }\n if (output[_sII] != null) {\n contents[_SIIo] = (0, import_smithy_client.expectString)(output[_sII]);\n }\n if (output[_dPe] != null) {\n contents[_DPer] = (0, import_smithy_client.expectString)(output[_dPe]);\n }\n if (output[_lLT] != null) {\n contents[_LLT] = (0, import_smithy_client.expectString)(output[_lLT]);\n }\n if (output[_iAm] != null) {\n contents[_IAm] = (0, import_smithy_client.parseBoolean)(output[_iAm]);\n }\n if (output[_sIIo] != null) {\n contents[_SII] = (0, import_smithy_client.expectString)(output[_sIIo]);\n }\n if (output[_sIR] != null) {\n contents[_SIRo] = (0, import_smithy_client.expectString)(output[_sIR]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iL] != null) {\n contents[_IL] = (0, import_smithy_client.expectString)(output[_iL]);\n }\n if (output[_iSma] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_iSma]);\n }\n if (output[_iOI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_iOI]);\n }\n if (output[_cDr] != null) {\n contents[_CDre] = (0, import_smithy_client.expectString)(output[_cDr]);\n }\n if (output[_iPs] != null) {\n contents[_Pu] = (0, import_smithy_client.parseBoolean)(output[_iPs]);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output[_iTm] != null) {\n contents[_ITm] = (0, import_smithy_client.expectString)(output[_iTm]);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n return contents;\n}, \"de_Image\");\nvar de_ImageAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = de_AttributeValue(output[_de], context);\n }\n if (output[_ke] != null) {\n contents[_KI] = de_AttributeValue(output[_ke], context);\n }\n if (output[_ra] != null) {\n contents[_RIa] = de_AttributeValue(output[_ra], context);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = de_AttributeValue(output[_sNSr], context);\n }\n if (output[_bM] != null) {\n contents[_BM] = de_AttributeValue(output[_bM], context);\n }\n if (output[_tSp] != null) {\n contents[_TSp] = de_AttributeValue(output[_tSp], context);\n }\n if (output[_uD] != null) {\n contents[_UDe] = de_AttributeValue(output[_uD], context);\n }\n if (output[_lLT] != null) {\n contents[_LLT] = de_AttributeValue(output[_lLT], context);\n }\n if (output[_iSmd] != null) {\n contents[_ISm] = de_AttributeValue(output[_iSmd], context);\n }\n if (output[_dPe] != null) {\n contents[_DPer] = de_AttributeValue(output[_dPe], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output.launchPermission === \"\") {\n contents[_LPau] = [];\n } else if (output[_lPa] != null && output[_lPa][_i] != null) {\n contents[_LPau] = de_LaunchPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_lPa][_i]), context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n return contents;\n}, \"de_ImageAttribute\");\nvar de_ImageCriterion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.imageProviderSet === \"\") {\n contents[_IPm] = [];\n } else if (output[_iPSm] != null && output[_iPSm][_i] != null) {\n contents[_IPm] = de_ImageProviderList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSm][_i]), context);\n }\n return contents;\n}, \"de_ImageCriterion\");\nvar de_ImageCriterionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImageCriterion(entry, context);\n });\n}, \"de_ImageCriterionList\");\nvar de_ImageList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Image(entry, context);\n });\n}, \"de_ImageList\");\nvar de_ImageMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_iOI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_iOI]);\n }\n if (output[_iSma] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_iSma]);\n }\n if (output[_iOA] != null) {\n contents[_IOA] = (0, import_smithy_client.expectString)(output[_iOA]);\n }\n if (output[_cDr] != null) {\n contents[_CDre] = (0, import_smithy_client.expectString)(output[_cDr]);\n }\n if (output[_dTe] != null) {\n contents[_DTep] = (0, import_smithy_client.expectString)(output[_dTe]);\n }\n if (output[_iAm] != null) {\n contents[_IAm] = (0, import_smithy_client.parseBoolean)(output[_iAm]);\n }\n if (output[_iPs] != null) {\n contents[_IPs] = (0, import_smithy_client.parseBoolean)(output[_iPs]);\n }\n return contents;\n}, \"de_ImageMetadata\");\nvar de_ImageProviderList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ImageProviderList\");\nvar de_ImageRecycleBinInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_rBET] != null) {\n contents[_RBET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBET]));\n }\n if (output[_rBETe] != null) {\n contents[_RBETe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBETe]));\n }\n return contents;\n}, \"de_ImageRecycleBinInfo\");\nvar de_ImageRecycleBinInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImageRecycleBinInfo(entry, context);\n });\n}, \"de_ImageRecycleBinInfoList\");\nvar de_ImportClientVpnClientCertificateRevocationListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ImportClientVpnClientCertificateRevocationListResult\");\nvar de_ImportImageLicenseConfigurationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lCA] != null) {\n contents[_LCA] = (0, import_smithy_client.expectString)(output[_lCA]);\n }\n return contents;\n}, \"de_ImportImageLicenseConfigurationResponse\");\nvar de_ImportImageLicenseSpecificationListResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportImageLicenseConfigurationResponse(entry, context);\n });\n}, \"de_ImportImageLicenseSpecificationListResponse\");\nvar de_ImportImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_lTi] != null) {\n contents[_LTi] = (0, import_smithy_client.expectString)(output[_lTi]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output.snapshotDetailSet === \"\") {\n contents[_SDn] = [];\n } else if (output[_sDSn] != null && output[_sDSn][_i] != null) {\n contents[_SDn] = de_SnapshotDetailList((0, import_smithy_client.getArrayIfSingleItem)(output[_sDSn][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.licenseSpecifications === \"\") {\n contents[_LSi] = [];\n } else if (output[_lS] != null && output[_lS][_i] != null) {\n contents[_LSi] = de_ImportImageLicenseSpecificationListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_lS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n return contents;\n}, \"de_ImportImageResult\");\nvar de_ImportImageTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_lTi] != null) {\n contents[_LTi] = (0, import_smithy_client.expectString)(output[_lTi]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output.snapshotDetailSet === \"\") {\n contents[_SDn] = [];\n } else if (output[_sDSn] != null && output[_sDSn][_i] != null) {\n contents[_SDn] = de_SnapshotDetailList((0, import_smithy_client.getArrayIfSingleItem)(output[_sDSn][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.licenseSpecifications === \"\") {\n contents[_LSi] = [];\n } else if (output[_lS] != null && output[_lS][_i] != null) {\n contents[_LSi] = de_ImportImageLicenseSpecificationListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_lS][_i]), context);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n if (output[_bM] != null) {\n contents[_BM] = (0, import_smithy_client.expectString)(output[_bM]);\n }\n return contents;\n}, \"de_ImportImageTask\");\nvar de_ImportImageTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportImageTask(entry, context);\n });\n}, \"de_ImportImageTaskList\");\nvar de_ImportInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTon] != null) {\n contents[_CTonv] = de_ConversionTask(output[_cTon], context);\n }\n return contents;\n}, \"de_ImportInstanceResult\");\nvar de_ImportInstanceTaskDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output.volumes === \"\") {\n contents[_Vol] = [];\n } else if (output[_vo] != null && output[_vo][_i] != null) {\n contents[_Vol] = de_ImportInstanceVolumeDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_vo][_i]), context);\n }\n return contents;\n}, \"de_ImportInstanceTaskDetails\");\nvar de_ImportInstanceVolumeDetailItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_bCy] != null) {\n contents[_BCyt] = (0, import_smithy_client.strictParseLong)(output[_bCy]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_im] != null) {\n contents[_Im] = de_DiskImageDescription(output[_im], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_vol] != null) {\n contents[_Vo] = de_DiskImageVolumeDescription(output[_vol], context);\n }\n return contents;\n}, \"de_ImportInstanceVolumeDetailItem\");\nvar de_ImportInstanceVolumeDetailSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportInstanceVolumeDetailItem(entry, context);\n });\n}, \"de_ImportInstanceVolumeDetailSet\");\nvar de_ImportKeyPairResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kFe] != null) {\n contents[_KFe] = (0, import_smithy_client.expectString)(output[_kFe]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ImportKeyPairResult\");\nvar de_ImportSnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_sTD] != null) {\n contents[_STD] = de_SnapshotTaskDetail(output[_sTD], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ImportSnapshotResult\");\nvar de_ImportSnapshotTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_iTI] != null) {\n contents[_ITI] = (0, import_smithy_client.expectString)(output[_iTI]);\n }\n if (output[_sTD] != null) {\n contents[_STD] = de_SnapshotTaskDetail(output[_sTD], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_ImportSnapshotTask\");\nvar de_ImportSnapshotTaskList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ImportSnapshotTask(entry, context);\n });\n}, \"de_ImportSnapshotTaskList\");\nvar de_ImportVolumeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTon] != null) {\n contents[_CTonv] = de_ConversionTask(output[_cTon], context);\n }\n return contents;\n}, \"de_ImportVolumeResult\");\nvar de_ImportVolumeTaskDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_bCy] != null) {\n contents[_BCyt] = (0, import_smithy_client.strictParseLong)(output[_bCy]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_im] != null) {\n contents[_Im] = de_DiskImageDescription(output[_im], context);\n }\n if (output[_vol] != null) {\n contents[_Vo] = de_DiskImageVolumeDescription(output[_vol], context);\n }\n return contents;\n}, \"de_ImportVolumeTaskDetails\");\nvar de_InferenceAcceleratorInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.accelerators === \"\") {\n contents[_Acc] = [];\n } else if (output[_acc] != null && output[_acc][_mem] != null) {\n contents[_Acc] = de_InferenceDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_acc][_mem]), context);\n }\n if (output[_tIMIMB] != null) {\n contents[_TIMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tIMIMB]);\n }\n return contents;\n}, \"de_InferenceAcceleratorInfo\");\nvar de_InferenceDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_InferenceDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_InferenceDeviceInfo\");\nvar de_InferenceDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InferenceDeviceInfo(entry, context);\n });\n}, \"de_InferenceDeviceInfoList\");\nvar de_InferenceDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_InferenceDeviceMemoryInfo\");\nvar de_InsideCidrBlocksStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InsideCidrBlocksStringList\");\nvar de_Instance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_arc] != null) {\n contents[_Arc] = (0, import_smithy_client.expectString)(output[_arc]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_InstanceBlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = (0, import_smithy_client.parseBoolean)(output[_eSna]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfile(output[_iIP], context);\n }\n if (output[_iLn] != null) {\n contents[_ILn] = (0, import_smithy_client.expectString)(output[_iLn]);\n }\n if (output.elasticGpuAssociationSet === \"\") {\n contents[_EGA] = [];\n } else if (output[_eGASl] != null && output[_eGASl][_i] != null) {\n contents[_EGA] = de_ElasticGpuAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_eGASl][_i]), context);\n }\n if (output.elasticInferenceAcceleratorAssociationSet === \"\") {\n contents[_EIAAl] = [];\n } else if (output[_eIAASl] != null && output[_eIAASl][_i] != null) {\n contents[_EIAAl] = de_ElasticInferenceAcceleratorAssociationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_eIAASl][_i]),\n context\n );\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_InstanceNetworkInterfaceList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_rDN] != null) {\n contents[_RDN] = (0, import_smithy_client.expectString)(output[_rDN]);\n }\n if (output[_rDT] != null) {\n contents[_RDT] = (0, import_smithy_client.expectString)(output[_rDT]);\n }\n if (output.groupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_SG] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = (0, import_smithy_client.parseBoolean)(output[_sDC]);\n }\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = (0, import_smithy_client.expectString)(output[_sNSr]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = de_StateReason(output[_sRt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vTi] != null) {\n contents[_VTir] = (0, import_smithy_client.expectString)(output[_vTi]);\n }\n if (output[_cO] != null) {\n contents[_COp] = de_CpuOptions(output[_cO], context);\n }\n if (output[_cRI] != null) {\n contents[_CRI] = (0, import_smithy_client.expectString)(output[_cRI]);\n }\n if (output[_cRSa] != null) {\n contents[_CRSa] = de_CapacityReservationSpecificationResponse(output[_cRSa], context);\n }\n if (output[_hO] != null) {\n contents[_HO] = de_HibernationOptions(output[_hO], context);\n }\n if (output.licenseSet === \"\") {\n contents[_Lic] = [];\n } else if (output[_lSi] != null && output[_lSi][_i] != null) {\n contents[_Lic] = de_LicenseList((0, import_smithy_client.getArrayIfSingleItem)(output[_lSi][_i]), context);\n }\n if (output[_mO] != null) {\n contents[_MO] = de_InstanceMetadataOptionsResponse(output[_mO], context);\n }\n if (output[_eOn] != null) {\n contents[_EOn] = de_EnclaveOptions(output[_eOn], context);\n }\n if (output[_bM] != null) {\n contents[_BM] = (0, import_smithy_client.expectString)(output[_bM]);\n }\n if (output[_pDl] != null) {\n contents[_PDl] = (0, import_smithy_client.expectString)(output[_pDl]);\n }\n if (output[_uO] != null) {\n contents[_UO] = (0, import_smithy_client.expectString)(output[_uO]);\n }\n if (output[_uOUT] != null) {\n contents[_UOUT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uOUT]));\n }\n if (output[_pDNO] != null) {\n contents[_PDNO] = de_PrivateDnsNameOptionsResponse(output[_pDNO], context);\n }\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_tSp] != null) {\n contents[_TSp] = (0, import_smithy_client.expectString)(output[_tSp]);\n }\n if (output[_mOa] != null) {\n contents[_MOa] = de_InstanceMaintenanceOptions(output[_mOa], context);\n }\n if (output[_cIBM] != null) {\n contents[_CIBM] = (0, import_smithy_client.expectString)(output[_cIBM]);\n }\n if (output[_nPO] != null) {\n contents[_NPO] = de_InstanceNetworkPerformanceOptions(output[_nPO], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iSnst] != null) {\n contents[_Stat] = de_InstanceState(output[_iSnst], context);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_dNn] != null) {\n contents[_PDNu] = (0, import_smithy_client.expectString)(output[_dNn]);\n }\n if (output[_rea] != null) {\n contents[_STRt] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_aLI] != null) {\n contents[_ALI] = (0, import_smithy_client.strictParseInt32)(output[_aLI]);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_lTau] != null) {\n contents[_LTaun] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lTau]));\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_Placement(output[_pla], context);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_Monitoring(output[_mo], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output[_iAp] != null) {\n contents[_PIAu] = (0, import_smithy_client.expectString)(output[_iAp]);\n }\n return contents;\n}, \"de_Instance\");\nvar de_InstanceAttachmentEnaSrdSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_eSE]);\n }\n if (output[_eSUS] != null) {\n contents[_ESUS] = de_InstanceAttachmentEnaSrdUdpSpecification(output[_eSUS], context);\n }\n return contents;\n}, \"de_InstanceAttachmentEnaSrdSpecification\");\nvar de_InstanceAttachmentEnaSrdUdpSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_eSUE]);\n }\n return contents;\n}, \"de_InstanceAttachmentEnaSrdUdpSpecification\");\nvar de_InstanceAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_InstanceBlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_dAT] != null) {\n contents[_DATis] = de_AttributeBooleanValue(output[_dAT], context);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = de_AttributeBooleanValue(output[_eSna], context);\n }\n if (output[_eOn] != null) {\n contents[_EOn] = de_EnclaveOptions(output[_eOn], context);\n }\n if (output[_eO] != null) {\n contents[_EO] = de_AttributeBooleanValue(output[_eO], context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iISB] != null) {\n contents[_IISB] = de_AttributeValue(output[_iISB], context);\n }\n if (output[_iT] != null) {\n contents[_IT] = de_AttributeValue(output[_iT], context);\n }\n if (output[_ke] != null) {\n contents[_KI] = de_AttributeValue(output[_ke], context);\n }\n if (output.productCodes === \"\") {\n contents[_PCr] = [];\n } else if (output[_pC] != null && output[_pC][_i] != null) {\n contents[_PCr] = de_ProductCodeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pC][_i]), context);\n }\n if (output[_ra] != null) {\n contents[_RIa] = de_AttributeValue(output[_ra], context);\n }\n if (output[_rDN] != null) {\n contents[_RDN] = de_AttributeValue(output[_rDN], context);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = de_AttributeBooleanValue(output[_sDC], context);\n }\n if (output[_sNSr] != null) {\n contents[_SNS] = de_AttributeValue(output[_sNSr], context);\n }\n if (output[_uDs] != null) {\n contents[_UD] = de_AttributeValue(output[_uDs], context);\n }\n if (output[_dASi] != null) {\n contents[_DAS] = de_AttributeBooleanValue(output[_dASi], context);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n return contents;\n}, \"de_InstanceAttribute\");\nvar de_InstanceBlockDeviceMapping = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_eb] != null) {\n contents[_E] = de_EbsInstanceBlockDevice(output[_eb], context);\n }\n return contents;\n}, \"de_InstanceBlockDeviceMapping\");\nvar de_InstanceBlockDeviceMappingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceBlockDeviceMapping(entry, context);\n });\n}, \"de_InstanceBlockDeviceMappingList\");\nvar de_InstanceCapacity = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aC] != null) {\n contents[_ACv] = (0, import_smithy_client.strictParseInt32)(output[_aC]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_tC] != null) {\n contents[_TCo] = (0, import_smithy_client.strictParseInt32)(output[_tC]);\n }\n return contents;\n}, \"de_InstanceCapacity\");\nvar de_InstanceConnectEndpointSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ec2InstanceConnectEndpoint(entry, context);\n });\n}, \"de_InstanceConnectEndpointSet\");\nvar de_InstanceCount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_InstanceCount\");\nvar de_InstanceCountList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceCount(entry, context);\n });\n}, \"de_InstanceCountList\");\nvar de_InstanceCreditSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_cCp] != null) {\n contents[_CCp] = (0, import_smithy_client.expectString)(output[_cCp]);\n }\n return contents;\n}, \"de_InstanceCreditSpecification\");\nvar de_InstanceCreditSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceCreditSpecification(entry, context);\n });\n}, \"de_InstanceCreditSpecificationList\");\nvar de_InstanceEventWindow = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEWI] != null) {\n contents[_IEWI] = (0, import_smithy_client.expectString)(output[_iEWI]);\n }\n if (output.timeRangeSet === \"\") {\n contents[_TRi] = [];\n } else if (output[_tRSi] != null && output[_tRSi][_i] != null) {\n contents[_TRi] = de_InstanceEventWindowTimeRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_tRSi][_i]), context);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_cEr] != null) {\n contents[_CE] = (0, import_smithy_client.expectString)(output[_cEr]);\n }\n if (output[_aTs] != null) {\n contents[_AT] = de_InstanceEventWindowAssociationTarget(output[_aTs], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_InstanceEventWindow\");\nvar de_InstanceEventWindowAssociationTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceIdSet === \"\") {\n contents[_IIns] = [];\n } else if (output[_iIS] != null && output[_iIS][_i] != null) {\n contents[_IIns] = de_InstanceIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_iIS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.dedicatedHostIdSet === \"\") {\n contents[_DHI] = [];\n } else if (output[_dHIS] != null && output[_dHIS][_i] != null) {\n contents[_DHI] = de_DedicatedHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_dHIS][_i]), context);\n }\n return contents;\n}, \"de_InstanceEventWindowAssociationTarget\");\nvar de_InstanceEventWindowSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceEventWindow(entry, context);\n });\n}, \"de_InstanceEventWindowSet\");\nvar de_InstanceEventWindowStateChange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEWI] != null) {\n contents[_IEWI] = (0, import_smithy_client.expectString)(output[_iEWI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_InstanceEventWindowStateChange\");\nvar de_InstanceEventWindowTimeRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sWD] != null) {\n contents[_SWD] = (0, import_smithy_client.expectString)(output[_sWD]);\n }\n if (output[_sH] != null) {\n contents[_SH] = (0, import_smithy_client.strictParseInt32)(output[_sH]);\n }\n if (output[_eWD] != null) {\n contents[_EWD] = (0, import_smithy_client.expectString)(output[_eWD]);\n }\n if (output[_eH] != null) {\n contents[_EH] = (0, import_smithy_client.strictParseInt32)(output[_eH]);\n }\n return contents;\n}, \"de_InstanceEventWindowTimeRange\");\nvar de_InstanceEventWindowTimeRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceEventWindowTimeRange(entry, context);\n });\n}, \"de_InstanceEventWindowTimeRangeList\");\nvar de_InstanceExportDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_tE] != null) {\n contents[_TE] = (0, import_smithy_client.expectString)(output[_tE]);\n }\n return contents;\n}, \"de_InstanceExportDetails\");\nvar de_InstanceFamilyCreditSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_cCp] != null) {\n contents[_CCp] = (0, import_smithy_client.expectString)(output[_cCp]);\n }\n return contents;\n}, \"de_InstanceFamilyCreditSpecification\");\nvar de_InstanceGenerationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceGenerationSet\");\nvar de_InstanceIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceIdList\");\nvar de_InstanceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceIdSet\");\nvar de_InstanceIdsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceIdsSet\");\nvar de_InstanceImageMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_lTau] != null) {\n contents[_LTaun] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lTau]));\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_zI] != null) {\n contents[_ZIo] = (0, import_smithy_client.expectString)(output[_zI]);\n }\n if (output[_iSnst] != null) {\n contents[_Stat] = de_InstanceState(output[_iSnst], context);\n }\n if (output[_iOIn] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_iOIn]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_iM] != null) {\n contents[_IMm] = de_ImageMetadata(output[_iM], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_InstanceImageMetadata\");\nvar de_InstanceImageMetadataList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceImageMetadata(entry, context);\n });\n}, \"de_InstanceImageMetadataList\");\nvar de_InstanceIpv4Prefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpv] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_iPpv]);\n }\n return contents;\n}, \"de_InstanceIpv4Prefix\");\nvar de_InstanceIpv4PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceIpv4Prefix(entry, context);\n });\n}, \"de_InstanceIpv4PrefixList\");\nvar de_InstanceIpv6Address = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_iPI] != null) {\n contents[_IPIs] = (0, import_smithy_client.parseBoolean)(output[_iPI]);\n }\n return contents;\n}, \"de_InstanceIpv6Address\");\nvar de_InstanceIpv6AddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceIpv6Address(entry, context);\n });\n}, \"de_InstanceIpv6AddressList\");\nvar de_InstanceIpv6Prefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpvr] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_iPpvr]);\n }\n return contents;\n}, \"de_InstanceIpv6Prefix\");\nvar de_InstanceIpv6PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceIpv6Prefix(entry, context);\n });\n}, \"de_InstanceIpv6PrefixList\");\nvar de_InstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Instance(entry, context);\n });\n}, \"de_InstanceList\");\nvar de_InstanceMaintenanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRu] != null) {\n contents[_ARu] = (0, import_smithy_client.expectString)(output[_aRu]);\n }\n return contents;\n}, \"de_InstanceMaintenanceOptions\");\nvar de_InstanceMetadataDefaultsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hT] != null) {\n contents[_HT] = (0, import_smithy_client.expectString)(output[_hT]);\n }\n if (output[_hPRHL] != null) {\n contents[_HPRHL] = (0, import_smithy_client.strictParseInt32)(output[_hPRHL]);\n }\n if (output[_hE] != null) {\n contents[_HE] = (0, import_smithy_client.expectString)(output[_hE]);\n }\n if (output[_iMT] != null) {\n contents[_IMT] = (0, import_smithy_client.expectString)(output[_iMT]);\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n if (output[_mEM] != null) {\n contents[_MEM] = (0, import_smithy_client.expectString)(output[_mEM]);\n }\n return contents;\n}, \"de_InstanceMetadataDefaultsResponse\");\nvar de_InstanceMetadataOptionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_hT] != null) {\n contents[_HT] = (0, import_smithy_client.expectString)(output[_hT]);\n }\n if (output[_hPRHL] != null) {\n contents[_HPRHL] = (0, import_smithy_client.strictParseInt32)(output[_hPRHL]);\n }\n if (output[_hE] != null) {\n contents[_HE] = (0, import_smithy_client.expectString)(output[_hE]);\n }\n if (output[_hPI] != null) {\n contents[_HPI] = (0, import_smithy_client.expectString)(output[_hPI]);\n }\n if (output[_iMT] != null) {\n contents[_IMT] = (0, import_smithy_client.expectString)(output[_iMT]);\n }\n return contents;\n}, \"de_InstanceMetadataOptionsResponse\");\nvar de_InstanceMonitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_Monitoring(output[_mo], context);\n }\n return contents;\n}, \"de_InstanceMonitoring\");\nvar de_InstanceMonitoringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceMonitoring(entry, context);\n });\n}, \"de_InstanceMonitoringList\");\nvar de_InstanceNetworkInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_InstanceNetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_at] != null) {\n contents[_Att] = de_InstanceNetworkInterfaceAttachment(output[_at], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_InstanceIpv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_mAa] != null) {\n contents[_MAa] = (0, import_smithy_client.expectString)(output[_mAa]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_InstancePrivateIpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = (0, import_smithy_client.parseBoolean)(output[_sDC]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_iTnt] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_iTnt]);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_InstanceIpv4PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_InstanceIpv6PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_cTC] != null) {\n contents[_CTC] = de_ConnectionTrackingSpecificationResponse(output[_cTC], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_InstanceNetworkInterface\");\nvar de_InstanceNetworkInterfaceAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_iOIp] != null) {\n contents[_IOI] = (0, import_smithy_client.expectString)(output[_iOIp]);\n }\n if (output[_pDNu] != null) {\n contents[_PDNu] = (0, import_smithy_client.expectString)(output[_pDNu]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_InstanceNetworkInterfaceAssociation\");\nvar de_InstanceNetworkInterfaceAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output[_eSS] != null) {\n contents[_ESS] = de_InstanceAttachmentEnaSrdSpecification(output[_eSS], context);\n }\n if (output[_eQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_eQC]);\n }\n return contents;\n}, \"de_InstanceNetworkInterfaceAttachment\");\nvar de_InstanceNetworkInterfaceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceNetworkInterface(entry, context);\n });\n}, \"de_InstanceNetworkInterfaceList\");\nvar de_InstanceNetworkInterfaceSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aPIA] != null) {\n contents[_APIAs] = (0, import_smithy_client.parseBoolean)(output[_aPIA]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output.SecurityGroupId === \"\") {\n contents[_G] = [];\n } else if (output[_SGIe] != null && output[_SGIe][_SGIe] != null) {\n contents[_G] = de_SecurityGroupIdStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_SGIe][_SGIe]), context);\n }\n if (output[_iAC] != null) {\n contents[_IAC] = (0, import_smithy_client.strictParseInt32)(output[_iAC]);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_InstanceIpv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_PrivateIpAddressSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output[_sPIAC] != null) {\n contents[_SPIAC] = (0, import_smithy_client.strictParseInt32)(output[_sPIAC]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_ACIA] != null) {\n contents[_ACIA] = (0, import_smithy_client.parseBoolean)(output[_ACIA]);\n }\n if (output[_ITn] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_ITn]);\n }\n if (output[_NCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_NCI]);\n }\n if (output.Ipv4Prefix === \"\") {\n contents[_IPp] = [];\n } else if (output[_IPpvr] != null && output[_IPpvr][_i] != null) {\n contents[_IPp] = de_Ipv4PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_IPpvr][_i]), context);\n }\n if (output[_IPCp] != null) {\n contents[_IPCp] = (0, import_smithy_client.strictParseInt32)(output[_IPCp]);\n }\n if (output.Ipv6Prefix === \"\") {\n contents[_IP] = [];\n } else if (output[_IPpvre] != null && output[_IPpvre][_i] != null) {\n contents[_IP] = de_Ipv6PrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_IPpvre][_i]), context);\n }\n if (output[_IPC] != null) {\n contents[_IPC] = (0, import_smithy_client.strictParseInt32)(output[_IPC]);\n }\n if (output[_PIr] != null) {\n contents[_PIr] = (0, import_smithy_client.parseBoolean)(output[_PIr]);\n }\n if (output[_ESS] != null) {\n contents[_ESS] = de_EnaSrdSpecificationRequest(output[_ESS], context);\n }\n if (output[_CTS] != null) {\n contents[_CTS] = de_ConnectionTrackingSpecificationRequest(output[_CTS], context);\n }\n if (output[_EQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_EQC]);\n }\n return contents;\n}, \"de_InstanceNetworkInterfaceSpecification\");\nvar de_InstanceNetworkInterfaceSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceNetworkInterfaceSpecification(entry, context);\n });\n}, \"de_InstanceNetworkInterfaceSpecificationList\");\nvar de_InstanceNetworkPerformanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bW] != null) {\n contents[_BW] = (0, import_smithy_client.expectString)(output[_bW]);\n }\n return contents;\n}, \"de_InstanceNetworkPerformanceOptions\");\nvar de_InstancePrivateIpAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_InstanceNetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_prim] != null) {\n contents[_Prim] = (0, import_smithy_client.parseBoolean)(output[_prim]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_InstancePrivateIpAddress\");\nvar de_InstancePrivateIpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstancePrivateIpAddress(entry, context);\n });\n}, \"de_InstancePrivateIpAddressList\");\nvar de_InstanceRequirements = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCC] != null) {\n contents[_VCC] = de_VCpuCountRange(output[_vCC], context);\n }\n if (output[_mMB] != null) {\n contents[_MMB] = de_MemoryMiB(output[_mMB], context);\n }\n if (output.cpuManufacturerSet === \"\") {\n contents[_CM] = [];\n } else if (output[_cMS] != null && output[_cMS][_i] != null) {\n contents[_CM] = de_CpuManufacturerSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cMS][_i]), context);\n }\n if (output[_mGBPVC] != null) {\n contents[_MGBPVC] = de_MemoryGiBPerVCpu(output[_mGBPVC], context);\n }\n if (output.excludedInstanceTypeSet === \"\") {\n contents[_EIT] = [];\n } else if (output[_eITSx] != null && output[_eITSx][_i] != null) {\n contents[_EIT] = de_ExcludedInstanceTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eITSx][_i]), context);\n }\n if (output.instanceGenerationSet === \"\") {\n contents[_IG] = [];\n } else if (output[_iGSn] != null && output[_iGSn][_i] != null) {\n contents[_IG] = de_InstanceGenerationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iGSn][_i]), context);\n }\n if (output[_sMPPOLP] != null) {\n contents[_SMPPOLP] = (0, import_smithy_client.strictParseInt32)(output[_sMPPOLP]);\n }\n if (output[_oDMPPOLP] != null) {\n contents[_ODMPPOLP] = (0, import_smithy_client.strictParseInt32)(output[_oDMPPOLP]);\n }\n if (output[_bMa] != null) {\n contents[_BMa] = (0, import_smithy_client.expectString)(output[_bMa]);\n }\n if (output[_bP] != null) {\n contents[_BP] = (0, import_smithy_client.expectString)(output[_bP]);\n }\n if (output[_rHS] != null) {\n contents[_RHS] = (0, import_smithy_client.parseBoolean)(output[_rHS]);\n }\n if (output[_nIC] != null) {\n contents[_NIC] = de_NetworkInterfaceCount(output[_nIC], context);\n }\n if (output[_lSo] != null) {\n contents[_LSo] = (0, import_smithy_client.expectString)(output[_lSo]);\n }\n if (output.localStorageTypeSet === \"\") {\n contents[_LST] = [];\n } else if (output[_lSTS] != null && output[_lSTS][_i] != null) {\n contents[_LST] = de_LocalStorageTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lSTS][_i]), context);\n }\n if (output[_tLSGB] != null) {\n contents[_TLSGB] = de_TotalLocalStorageGB(output[_tLSGB], context);\n }\n if (output[_bEBM] != null) {\n contents[_BEBM] = de_BaselineEbsBandwidthMbps(output[_bEBM], context);\n }\n if (output.acceleratorTypeSet === \"\") {\n contents[_ATc] = [];\n } else if (output[_aTSc] != null && output[_aTSc][_i] != null) {\n contents[_ATc] = de_AcceleratorTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aTSc][_i]), context);\n }\n if (output[_aCc] != null) {\n contents[_ACc] = de_AcceleratorCount(output[_aCc], context);\n }\n if (output.acceleratorManufacturerSet === \"\") {\n contents[_AM] = [];\n } else if (output[_aMS] != null && output[_aMS][_i] != null) {\n contents[_AM] = de_AcceleratorManufacturerSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aMS][_i]), context);\n }\n if (output.acceleratorNameSet === \"\") {\n contents[_ANc] = [];\n } else if (output[_aNS] != null && output[_aNS][_i] != null) {\n contents[_ANc] = de_AcceleratorNameSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aNS][_i]), context);\n }\n if (output[_aTMMB] != null) {\n contents[_ATMMB] = de_AcceleratorTotalMemoryMiB(output[_aTMMB], context);\n }\n if (output[_nBGe] != null) {\n contents[_NBGe] = de_NetworkBandwidthGbps(output[_nBGe], context);\n }\n if (output.allowedInstanceTypeSet === \"\") {\n contents[_AIT] = [];\n } else if (output[_aITS] != null && output[_aITS][_i] != null) {\n contents[_AIT] = de_AllowedInstanceTypeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aITS][_i]), context);\n }\n if (output[_mSPAPOOODP] != null) {\n contents[_MSPAPOOODP] = (0, import_smithy_client.strictParseInt32)(output[_mSPAPOOODP]);\n }\n if (output[_bPF] != null) {\n contents[_BPF] = de_BaselinePerformanceFactors(output[_bPF], context);\n }\n return contents;\n}, \"de_InstanceRequirements\");\nvar de_InstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTopology(entry, context);\n });\n}, \"de_InstanceSet\");\nvar de_InstanceState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.strictParseInt32)(output[_co]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_InstanceState\");\nvar de_InstanceStateChange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_cSu] != null) {\n contents[_CSu] = de_InstanceState(output[_cSu], context);\n }\n if (output[_pS] != null) {\n contents[_PSr] = de_InstanceState(output[_pS], context);\n }\n return contents;\n}, \"de_InstanceStateChange\");\nvar de_InstanceStateChangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStateChange(entry, context);\n });\n}, \"de_InstanceStateChangeList\");\nvar de_InstanceStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output.eventsSet === \"\") {\n contents[_Ev] = [];\n } else if (output[_eSv] != null && output[_eSv][_i] != null) {\n contents[_Ev] = de_InstanceStatusEventList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSv][_i]), context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iSnst] != null) {\n contents[_ISnst] = de_InstanceState(output[_iSnst], context);\n }\n if (output[_iSnsta] != null) {\n contents[_ISnsta] = de_InstanceStatusSummary(output[_iSnsta], context);\n }\n if (output[_sSy] != null) {\n contents[_SSy] = de_InstanceStatusSummary(output[_sSy], context);\n }\n if (output[_aES] != null) {\n contents[_AES] = de_EbsStatusSummary(output[_aES], context);\n }\n return contents;\n}, \"de_InstanceStatus\");\nvar de_InstanceStatusDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iSmp] != null) {\n contents[_ISmp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_iSmp]));\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_InstanceStatusDetails\");\nvar de_InstanceStatusDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStatusDetails(entry, context);\n });\n}, \"de_InstanceStatusDetailsList\");\nvar de_InstanceStatusEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEI] != null) {\n contents[_IEI] = (0, import_smithy_client.expectString)(output[_iEI]);\n }\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_nAo] != null) {\n contents[_NAo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nAo]));\n }\n if (output[_nB] != null) {\n contents[_NB] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nB]));\n }\n if (output[_nBD] != null) {\n contents[_NBD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nBD]));\n }\n return contents;\n}, \"de_InstanceStatusEvent\");\nvar de_InstanceStatusEventList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStatusEvent(entry, context);\n });\n}, \"de_InstanceStatusEventList\");\nvar de_InstanceStatusList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceStatus(entry, context);\n });\n}, \"de_InstanceStatusList\");\nvar de_InstanceStatusSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.details === \"\") {\n contents[_Det] = [];\n } else if (output[_det] != null && output[_det][_i] != null) {\n contents[_Det] = de_InstanceStatusDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_det][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_InstanceStatusSummary\");\nvar de_InstanceStorageInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tSIGB] != null) {\n contents[_TSIGB] = (0, import_smithy_client.strictParseLong)(output[_tSIGB]);\n }\n if (output.disks === \"\") {\n contents[_Dis] = [];\n } else if (output[_dis] != null && output[_dis][_i] != null) {\n contents[_Dis] = de_DiskInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_dis][_i]), context);\n }\n if (output[_nS] != null) {\n contents[_NS] = (0, import_smithy_client.expectString)(output[_nS]);\n }\n if (output[_eSn] != null) {\n contents[_ESnc] = (0, import_smithy_client.expectString)(output[_eSn]);\n }\n return contents;\n}, \"de_InstanceStorageInfo\");\nvar de_InstanceTagKeySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceTagKeySet\");\nvar de_InstanceTagNotificationAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceTagKeySet === \"\") {\n contents[_ITK] = [];\n } else if (output[_iTKS] != null && output[_iTKS][_i] != null) {\n contents[_ITK] = de_InstanceTagKeySet((0, import_smithy_client.getArrayIfSingleItem)(output[_iTKS][_i]), context);\n }\n if (output[_iATOI] != null) {\n contents[_IATOI] = (0, import_smithy_client.parseBoolean)(output[_iATOI]);\n }\n return contents;\n}, \"de_InstanceTagNotificationAttribute\");\nvar de_InstanceTopology = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output.networkNodeSet === \"\") {\n contents[_NN] = [];\n } else if (output[_nNS] != null && output[_nNS][_i] != null) {\n contents[_NN] = de_NetworkNodesList((0, import_smithy_client.getArrayIfSingleItem)(output[_nNS][_i]), context);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_zI] != null) {\n contents[_ZIo] = (0, import_smithy_client.expectString)(output[_zI]);\n }\n return contents;\n}, \"de_InstanceTopology\");\nvar de_InstanceTypeInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_cGur] != null) {\n contents[_CGur] = (0, import_smithy_client.parseBoolean)(output[_cGur]);\n }\n if (output[_fTE] != null) {\n contents[_FTE] = (0, import_smithy_client.parseBoolean)(output[_fTE]);\n }\n if (output.supportedUsageClasses === \"\") {\n contents[_SUC] = [];\n } else if (output[_sUC] != null && output[_sUC][_i] != null) {\n contents[_SUC] = de_UsageClassTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sUC][_i]), context);\n }\n if (output.supportedRootDeviceTypes === \"\") {\n contents[_SRDT] = [];\n } else if (output[_sRDT] != null && output[_sRDT][_i] != null) {\n contents[_SRDT] = de_RootDeviceTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sRDT][_i]), context);\n }\n if (output.supportedVirtualizationTypes === \"\") {\n contents[_SVT] = [];\n } else if (output[_sVT] != null && output[_sVT][_i] != null) {\n contents[_SVT] = de_VirtualizationTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sVT][_i]), context);\n }\n if (output[_bMa] != null) {\n contents[_BMa] = (0, import_smithy_client.parseBoolean)(output[_bMa]);\n }\n if (output[_h] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_h]);\n }\n if (output[_pIr] != null) {\n contents[_PIro] = de_ProcessorInfo(output[_pIr], context);\n }\n if (output[_vCIp] != null) {\n contents[_VCIpu] = de_VCpuInfo(output[_vCIp], context);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_MemoryInfo(output[_mIe], context);\n }\n if (output[_iSSn] != null) {\n contents[_ISS] = (0, import_smithy_client.parseBoolean)(output[_iSSn]);\n }\n if (output[_iSI] != null) {\n contents[_ISIn] = de_InstanceStorageInfo(output[_iSI], context);\n }\n if (output[_eIb] != null) {\n contents[_EIb] = de_EbsInfo(output[_eIb], context);\n }\n if (output[_nIet] != null) {\n contents[_NIetw] = de_NetworkInfo(output[_nIet], context);\n }\n if (output[_gIp] != null) {\n contents[_GIp] = de_GpuInfo(output[_gIp], context);\n }\n if (output[_fIp] != null) {\n contents[_FIpg] = de_FpgaInfo(output[_fIp], context);\n }\n if (output[_pGI] != null) {\n contents[_PGI] = de_PlacementGroupInfo(output[_pGI], context);\n }\n if (output[_iAI] != null) {\n contents[_IAIn] = de_InferenceAcceleratorInfo(output[_iAI], context);\n }\n if (output[_hSi] != null) {\n contents[_HS] = (0, import_smithy_client.parseBoolean)(output[_hSi]);\n }\n if (output[_bPS] != null) {\n contents[_BPS] = (0, import_smithy_client.parseBoolean)(output[_bPS]);\n }\n if (output[_dHS] != null) {\n contents[_DHS] = (0, import_smithy_client.parseBoolean)(output[_dHS]);\n }\n if (output[_aRSu] != null) {\n contents[_ARSu] = (0, import_smithy_client.parseBoolean)(output[_aRSu]);\n }\n if (output.supportedBootModes === \"\") {\n contents[_SBM] = [];\n } else if (output[_sBM] != null && output[_sBM][_i] != null) {\n contents[_SBM] = de_BootModeTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sBM][_i]), context);\n }\n if (output[_nES] != null) {\n contents[_NES] = (0, import_smithy_client.expectString)(output[_nES]);\n }\n if (output[_nTS] != null) {\n contents[_NTS] = (0, import_smithy_client.expectString)(output[_nTS]);\n }\n if (output[_nTI] != null) {\n contents[_NTI] = de_NitroTpmInfo(output[_nTI], context);\n }\n if (output[_mAIe] != null) {\n contents[_MAIe] = de_MediaAcceleratorInfo(output[_mAIe], context);\n }\n if (output[_nIeu] != null) {\n contents[_NIeu] = de_NeuronInfo(output[_nIeu], context);\n }\n if (output[_pSh] != null) {\n contents[_PSh] = (0, import_smithy_client.expectString)(output[_pSh]);\n }\n return contents;\n}, \"de_InstanceTypeInfo\");\nvar de_InstanceTypeInfoFromInstanceRequirements = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n return contents;\n}, \"de_InstanceTypeInfoFromInstanceRequirements\");\nvar de_InstanceTypeInfoFromInstanceRequirementsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTypeInfoFromInstanceRequirements(entry, context);\n });\n}, \"de_InstanceTypeInfoFromInstanceRequirementsSet\");\nvar de_InstanceTypeInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTypeInfo(entry, context);\n });\n}, \"de_InstanceTypeInfoList\");\nvar de_InstanceTypeOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_lTo] != null) {\n contents[_LT] = (0, import_smithy_client.expectString)(output[_lTo]);\n }\n if (output[_lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_lo]);\n }\n return contents;\n}, \"de_InstanceTypeOffering\");\nvar de_InstanceTypeOfferingsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceTypeOffering(entry, context);\n });\n}, \"de_InstanceTypeOfferingsList\");\nvar de_InstanceTypesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InstanceTypesList\");\nvar de_InstanceUsage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIc] != null) {\n contents[_AIcc] = (0, import_smithy_client.expectString)(output[_aIc]);\n }\n if (output[_uIC] != null) {\n contents[_UIC] = (0, import_smithy_client.strictParseInt32)(output[_uIC]);\n }\n return contents;\n}, \"de_InstanceUsage\");\nvar de_InstanceUsageSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceUsage(entry, context);\n });\n}, \"de_InstanceUsageSet\");\nvar de_InternetGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.attachmentSet === \"\") {\n contents[_Atta] = [];\n } else if (output[_aSt] != null && output[_aSt][_i] != null) {\n contents[_Atta] = de_InternetGatewayAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSt][_i]), context);\n }\n if (output[_iGI] != null) {\n contents[_IGI] = (0, import_smithy_client.expectString)(output[_iGI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_InternetGateway\");\nvar de_InternetGatewayAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_InternetGatewayAttachment\");\nvar de_InternetGatewayAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InternetGatewayAttachment(entry, context);\n });\n}, \"de_InternetGatewayAttachmentList\");\nvar de_InternetGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InternetGateway(entry, context);\n });\n}, \"de_InternetGatewayList\");\nvar de_IpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_IpAddressList\");\nvar de_Ipam = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_pDSI] != null) {\n contents[_PDSI] = (0, import_smithy_client.expectString)(output[_pDSI]);\n }\n if (output[_pDSIr] != null) {\n contents[_PDSIr] = (0, import_smithy_client.expectString)(output[_pDSIr]);\n }\n if (output[_sCc] != null) {\n contents[_SCc] = (0, import_smithy_client.strictParseInt32)(output[_sCc]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.operatingRegionSet === \"\") {\n contents[_OR] = [];\n } else if (output[_oRS] != null && output[_oRS][_i] != null) {\n contents[_OR] = de_IpamOperatingRegionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oRS][_i]), context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_dRDI] != null) {\n contents[_DRDI] = (0, import_smithy_client.expectString)(output[_dRDI]);\n }\n if (output[_dRDAI] != null) {\n contents[_DRDAI] = (0, import_smithy_client.expectString)(output[_dRDAI]);\n }\n if (output[_rDAC] != null) {\n contents[_RDAC] = (0, import_smithy_client.strictParseInt32)(output[_rDAC]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_tie] != null) {\n contents[_Ti] = (0, import_smithy_client.expectString)(output[_tie]);\n }\n if (output[_ePG] != null) {\n contents[_EPG] = (0, import_smithy_client.parseBoolean)(output[_ePG]);\n }\n if (output[_mAe] != null) {\n contents[_MAe] = (0, import_smithy_client.expectString)(output[_mAe]);\n }\n return contents;\n}, \"de_Ipam\");\nvar de_IpamAddressHistoryRecord = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rCe] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(output[_rCe]);\n }\n if (output[_rNes] != null) {\n contents[_RNes] = (0, import_smithy_client.expectString)(output[_rNes]);\n }\n if (output[_rCS] != null) {\n contents[_RCS] = (0, import_smithy_client.expectString)(output[_rCS]);\n }\n if (output[_rOSe] != null) {\n contents[_ROS] = (0, import_smithy_client.expectString)(output[_rOSe]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sST] != null) {\n contents[_SST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sST]));\n }\n if (output[_sET] != null) {\n contents[_SET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sET]));\n }\n return contents;\n}, \"de_IpamAddressHistoryRecord\");\nvar de_IpamAddressHistoryRecordSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamAddressHistoryRecord(entry, context);\n });\n}, \"de_IpamAddressHistoryRecordSet\");\nvar de_IpamDiscoveredAccount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIc] != null) {\n contents[_AIcc] = (0, import_smithy_client.expectString)(output[_aIc]);\n }\n if (output[_dR] != null) {\n contents[_DRi] = (0, import_smithy_client.expectString)(output[_dR]);\n }\n if (output[_fR] != null) {\n contents[_FR] = de_IpamDiscoveryFailureReason(output[_fR], context);\n }\n if (output[_lADT] != null) {\n contents[_LADT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lADT]));\n }\n if (output[_lSDT] != null) {\n contents[_LSDT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lSDT]));\n }\n if (output[_oUI] != null) {\n contents[_OUI] = (0, import_smithy_client.expectString)(output[_oUI]);\n }\n return contents;\n}, \"de_IpamDiscoveredAccount\");\nvar de_IpamDiscoveredAccountSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamDiscoveredAccount(entry, context);\n });\n}, \"de_IpamDiscoveredAccountSet\");\nvar de_IpamDiscoveredPublicAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_aRd] != null) {\n contents[_ARd] = (0, import_smithy_client.expectString)(output[_aRd]);\n }\n if (output[_ad] != null) {\n contents[_Ad] = (0, import_smithy_client.expectString)(output[_ad]);\n }\n if (output[_aOI] != null) {\n contents[_AOI] = (0, import_smithy_client.expectString)(output[_aOI]);\n }\n if (output[_aAId] != null) {\n contents[_AAId] = (0, import_smithy_client.expectString)(output[_aAId]);\n }\n if (output[_aSs] != null) {\n contents[_ASss] = (0, import_smithy_client.expectString)(output[_aSs]);\n }\n if (output[_aTd] != null) {\n contents[_ATddre] = (0, import_smithy_client.expectString)(output[_aTd]);\n }\n if (output[_se] != null) {\n contents[_Se] = (0, import_smithy_client.expectString)(output[_se]);\n }\n if (output[_sRe] != null) {\n contents[_SRerv] = (0, import_smithy_client.expectString)(output[_sRe]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_pIPI] != null) {\n contents[_PIPI] = (0, import_smithy_client.expectString)(output[_pIPI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_nID] != null) {\n contents[_NID] = (0, import_smithy_client.expectString)(output[_nID]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_ta] != null) {\n contents[_Ta] = de_IpamPublicAddressTags(output[_ta], context);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output.securityGroupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_sGS] != null && output[_sGS][_i] != null) {\n contents[_SG] = de_IpamPublicAddressSecurityGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGS][_i]), context);\n }\n if (output[_sTa] != null) {\n contents[_STa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTa]));\n }\n return contents;\n}, \"de_IpamDiscoveredPublicAddress\");\nvar de_IpamDiscoveredPublicAddressSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamDiscoveredPublicAddress(entry, context);\n });\n}, \"de_IpamDiscoveredPublicAddressSet\");\nvar de_IpamDiscoveredResourceCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rCe] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(output[_rCe]);\n }\n if (output[_iSpo] != null) {\n contents[_ISpo] = (0, import_smithy_client.expectString)(output[_iSpo]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.resourceTagSet === \"\") {\n contents[_RTesou] = [];\n } else if (output[_rTSe] != null && output[_rTSe][_i] != null) {\n contents[_RTesou] = de_IpamResourceTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTSe][_i]), context);\n }\n if (output[_iU] != null) {\n contents[_IUp] = (0, import_smithy_client.strictParseFloat)(output[_iU]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_nIASet] != null) {\n contents[_NIASet] = (0, import_smithy_client.expectString)(output[_nIASet]);\n }\n if (output[_sTa] != null) {\n contents[_STa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sTa]));\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_IpamDiscoveredResourceCidr\");\nvar de_IpamDiscoveredResourceCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamDiscoveredResourceCidr(entry, context);\n });\n}, \"de_IpamDiscoveredResourceCidrSet\");\nvar de_IpamDiscoveryFailureReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_IpamDiscoveryFailureReason\");\nvar de_IpamExternalResourceVerificationToken = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iERVTI] != null) {\n contents[_IERVTI] = (0, import_smithy_client.expectString)(output[_iERVTI]);\n }\n if (output[_iERVTA] != null) {\n contents[_IERVTA] = (0, import_smithy_client.expectString)(output[_iERVTA]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_tV] != null) {\n contents[_TVo] = (0, import_smithy_client.expectString)(output[_tV]);\n }\n if (output[_tN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_tN]);\n }\n if (output[_nAo] != null) {\n contents[_NAo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nAo]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_IpamExternalResourceVerificationToken\");\nvar de_IpamExternalResourceVerificationTokenSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamExternalResourceVerificationToken(entry, context);\n });\n}, \"de_IpamExternalResourceVerificationTokenSet\");\nvar de_IpamOperatingRegion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n return contents;\n}, \"de_IpamOperatingRegion\");\nvar de_IpamOperatingRegionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamOperatingRegion(entry, context);\n });\n}, \"de_IpamOperatingRegionSet\");\nvar de_IpamOrganizationalUnitExclusion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oEP] != null) {\n contents[_OEP] = (0, import_smithy_client.expectString)(output[_oEP]);\n }\n return contents;\n}, \"de_IpamOrganizationalUnitExclusion\");\nvar de_IpamOrganizationalUnitExclusionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamOrganizationalUnitExclusion(entry, context);\n });\n}, \"de_IpamOrganizationalUnitExclusionSet\");\nvar de_IpamPool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iPIp] != null) {\n contents[_IPI] = (0, import_smithy_client.expectString)(output[_iPIp]);\n }\n if (output[_sIPI] != null) {\n contents[_SIPI] = (0, import_smithy_client.expectString)(output[_sIPI]);\n }\n if (output[_iPAp] != null) {\n contents[_IPApa] = (0, import_smithy_client.expectString)(output[_iPAp]);\n }\n if (output[_iSA] != null) {\n contents[_ISA] = (0, import_smithy_client.expectString)(output[_iSA]);\n }\n if (output[_iST] != null) {\n contents[_ISTp] = (0, import_smithy_client.expectString)(output[_iST]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_loc] != null) {\n contents[_L] = (0, import_smithy_client.expectString)(output[_loc]);\n }\n if (output[_pDoo] != null) {\n contents[_PDo] = (0, import_smithy_client.strictParseInt32)(output[_pDoo]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_aIu] != null) {\n contents[_AIu] = (0, import_smithy_client.parseBoolean)(output[_aIu]);\n }\n if (output[_pAu] != null) {\n contents[_PA] = (0, import_smithy_client.parseBoolean)(output[_pAu]);\n }\n if (output[_aF] != null) {\n contents[_AF] = (0, import_smithy_client.expectString)(output[_aF]);\n }\n if (output[_aMNL] != null) {\n contents[_AMNL] = (0, import_smithy_client.strictParseInt32)(output[_aMNL]);\n }\n if (output[_aMNLl] != null) {\n contents[_AMNLl] = (0, import_smithy_client.strictParseInt32)(output[_aMNLl]);\n }\n if (output[_aDNL] != null) {\n contents[_ADNL] = (0, import_smithy_client.strictParseInt32)(output[_aDNL]);\n }\n if (output.allocationResourceTagSet === \"\") {\n contents[_ARTl] = [];\n } else if (output[_aRTS] != null && output[_aRTS][_i] != null) {\n contents[_ARTl] = de_IpamResourceTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_aRTS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_aSw] != null) {\n contents[_ASw] = (0, import_smithy_client.expectString)(output[_aSw]);\n }\n if (output[_pIS] != null) {\n contents[_PIS] = (0, import_smithy_client.expectString)(output[_pIS]);\n }\n if (output[_sRo] != null) {\n contents[_SRo] = de_IpamPoolSourceResource(output[_sRo], context);\n }\n return contents;\n}, \"de_IpamPool\");\nvar de_IpamPoolAllocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_iPAI] != null) {\n contents[_IPAI] = (0, import_smithy_client.expectString)(output[_iPAI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rO] != null) {\n contents[_ROe] = (0, import_smithy_client.expectString)(output[_rO]);\n }\n return contents;\n}, \"de_IpamPoolAllocation\");\nvar de_IpamPoolAllocationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPoolAllocation(entry, context);\n });\n}, \"de_IpamPoolAllocationSet\");\nvar de_IpamPoolCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_fR] != null) {\n contents[_FR] = de_IpamPoolCidrFailureReason(output[_fR], context);\n }\n if (output[_iPCI] != null) {\n contents[_IPCI] = (0, import_smithy_client.expectString)(output[_iPCI]);\n }\n if (output[_nL] != null) {\n contents[_NL] = (0, import_smithy_client.strictParseInt32)(output[_nL]);\n }\n return contents;\n}, \"de_IpamPoolCidr\");\nvar de_IpamPoolCidrFailureReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_IpamPoolCidrFailureReason\");\nvar de_IpamPoolCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPoolCidr(entry, context);\n });\n}, \"de_IpamPoolCidrSet\");\nvar de_IpamPoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPool(entry, context);\n });\n}, \"de_IpamPoolSet\");\nvar de_IpamPoolSourceResource = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rO] != null) {\n contents[_ROe] = (0, import_smithy_client.expectString)(output[_rO]);\n }\n return contents;\n}, \"de_IpamPoolSourceResource\");\nvar de_IpamPublicAddressSecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n return contents;\n}, \"de_IpamPublicAddressSecurityGroup\");\nvar de_IpamPublicAddressSecurityGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPublicAddressSecurityGroup(entry, context);\n });\n}, \"de_IpamPublicAddressSecurityGroupList\");\nvar de_IpamPublicAddressTag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_IpamPublicAddressTag\");\nvar de_IpamPublicAddressTagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamPublicAddressTag(entry, context);\n });\n}, \"de_IpamPublicAddressTagList\");\nvar de_IpamPublicAddressTags = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.eipTagSet === \"\") {\n contents[_ETi] = [];\n } else if (output[_eTSi] != null && output[_eTSi][_i] != null) {\n contents[_ETi] = de_IpamPublicAddressTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_eTSi][_i]), context);\n }\n return contents;\n}, \"de_IpamPublicAddressTags\");\nvar de_IpamResourceCidr = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iSIp] != null) {\n contents[_ISI] = (0, import_smithy_client.expectString)(output[_iSIp]);\n }\n if (output[_iPIp] != null) {\n contents[_IPI] = (0, import_smithy_client.expectString)(output[_iPIp]);\n }\n if (output[_rR] != null) {\n contents[_RRe] = (0, import_smithy_client.expectString)(output[_rR]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rNes] != null) {\n contents[_RNes] = (0, import_smithy_client.expectString)(output[_rNes]);\n }\n if (output[_rCe] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(output[_rCe]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.resourceTagSet === \"\") {\n contents[_RTesou] = [];\n } else if (output[_rTSe] != null && output[_rTSe][_i] != null) {\n contents[_RTesou] = de_IpamResourceTagList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTSe][_i]), context);\n }\n if (output[_iU] != null) {\n contents[_IUp] = (0, import_smithy_client.strictParseFloat)(output[_iU]);\n }\n if (output[_cSo] != null) {\n contents[_CSo] = (0, import_smithy_client.expectString)(output[_cSo]);\n }\n if (output[_mSa] != null) {\n contents[_MSa] = (0, import_smithy_client.expectString)(output[_mSa]);\n }\n if (output[_oSv] != null) {\n contents[_OSv] = (0, import_smithy_client.expectString)(output[_oSv]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_IpamResourceCidr\");\nvar de_IpamResourceCidrSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceCidr(entry, context);\n });\n}, \"de_IpamResourceCidrSet\");\nvar de_IpamResourceDiscovery = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_iRDAp] != null) {\n contents[_IRDApa] = (0, import_smithy_client.expectString)(output[_iRDAp]);\n }\n if (output[_iRDR] != null) {\n contents[_IRDR] = (0, import_smithy_client.expectString)(output[_iRDR]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.operatingRegionSet === \"\") {\n contents[_OR] = [];\n } else if (output[_oRS] != null && output[_oRS][_i] != null) {\n contents[_OR] = de_IpamOperatingRegionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oRS][_i]), context);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.organizationalUnitExclusionSet === \"\") {\n contents[_OUE] = [];\n } else if (output[_oUES] != null && output[_oUES][_i] != null) {\n contents[_OUE] = de_IpamOrganizationalUnitExclusionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_oUES][_i]), context);\n }\n return contents;\n}, \"de_IpamResourceDiscovery\");\nvar de_IpamResourceDiscoveryAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iRDAI] != null) {\n contents[_IRDAIp] = (0, import_smithy_client.expectString)(output[_iRDAI]);\n }\n if (output[_iRDAA] != null) {\n contents[_IRDAA] = (0, import_smithy_client.expectString)(output[_iRDAA]);\n }\n if (output[_iRDI] != null) {\n contents[_IRDI] = (0, import_smithy_client.expectString)(output[_iRDI]);\n }\n if (output[_iIp] != null) {\n contents[_IIp] = (0, import_smithy_client.expectString)(output[_iIp]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_rDS] != null) {\n contents[_RDS] = (0, import_smithy_client.expectString)(output[_rDS]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_IpamResourceDiscoveryAssociation\");\nvar de_IpamResourceDiscoveryAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceDiscoveryAssociation(entry, context);\n });\n}, \"de_IpamResourceDiscoveryAssociationSet\");\nvar de_IpamResourceDiscoverySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceDiscovery(entry, context);\n });\n}, \"de_IpamResourceDiscoverySet\");\nvar de_IpamResourceTag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_IpamResourceTag\");\nvar de_IpamResourceTagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamResourceTag(entry, context);\n });\n}, \"de_IpamResourceTagList\");\nvar de_IpamScope = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iSIp] != null) {\n contents[_ISI] = (0, import_smithy_client.expectString)(output[_iSIp]);\n }\n if (output[_iSA] != null) {\n contents[_ISA] = (0, import_smithy_client.expectString)(output[_iSA]);\n }\n if (output[_iApa] != null) {\n contents[_IApa] = (0, import_smithy_client.expectString)(output[_iApa]);\n }\n if (output[_iRp] != null) {\n contents[_IRpa] = (0, import_smithy_client.expectString)(output[_iRp]);\n }\n if (output[_iST] != null) {\n contents[_ISTp] = (0, import_smithy_client.expectString)(output[_iST]);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_pCo] != null) {\n contents[_PCoo] = (0, import_smithy_client.strictParseInt32)(output[_pCo]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_IpamScope\");\nvar de_IpamScopeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpamScope(entry, context);\n });\n}, \"de_IpamScopeSet\");\nvar de_IpamSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipam(entry, context);\n });\n}, \"de_IpamSet\");\nvar de_IpPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output.groups === \"\") {\n contents[_UIGP] = [];\n } else if (output[_gr] != null && output[_gr][_i] != null) {\n contents[_UIGP] = de_UserIdGroupPairList((0, import_smithy_client.getArrayIfSingleItem)(output[_gr][_i]), context);\n }\n if (output.ipRanges === \"\") {\n contents[_IRp] = [];\n } else if (output[_iRpa] != null && output[_iRpa][_i] != null) {\n contents[_IRp] = de_IpRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iRpa][_i]), context);\n }\n if (output.ipv6Ranges === \"\") {\n contents[_IRpv] = [];\n } else if (output[_iRpv] != null && output[_iRpv][_i] != null) {\n contents[_IRpv] = de_Ipv6RangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iRpv][_i]), context);\n }\n if (output.prefixListIds === \"\") {\n contents[_PLIr] = [];\n } else if (output[_pLIr] != null && output[_pLIr][_i] != null) {\n contents[_PLIr] = de_PrefixListIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_pLIr][_i]), context);\n }\n return contents;\n}, \"de_IpPermission\");\nvar de_IpPermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpPermission(entry, context);\n });\n}, \"de_IpPermissionList\");\nvar de_IpPrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_IpPrefixList\");\nvar de_IpRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cIi] != null) {\n contents[_CIi] = (0, import_smithy_client.expectString)(output[_cIi]);\n }\n return contents;\n}, \"de_IpRange\");\nvar de_IpRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IpRange(entry, context);\n });\n}, \"de_IpRangeList\");\nvar de_IpRanges = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_IpRanges\");\nvar de_Ipv4PrefixesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv4PrefixSpecification(entry, context);\n });\n}, \"de_Ipv4PrefixesList\");\nvar de_Ipv4PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv4PrefixSpecificationRequest(entry, context);\n });\n}, \"de_Ipv4PrefixList\");\nvar de_Ipv4PrefixListResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv4PrefixSpecificationResponse(entry, context);\n });\n}, \"de_Ipv4PrefixListResponse\");\nvar de_Ipv4PrefixSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpv] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_iPpv]);\n }\n return contents;\n}, \"de_Ipv4PrefixSpecification\");\nvar de_Ipv4PrefixSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IPpvr] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_IPpvr]);\n }\n return contents;\n}, \"de_Ipv4PrefixSpecificationRequest\");\nvar de_Ipv4PrefixSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpv] != null) {\n contents[_IPpvr] = (0, import_smithy_client.expectString)(output[_iPpv]);\n }\n return contents;\n}, \"de_Ipv4PrefixSpecificationResponse\");\nvar de_Ipv6AddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_Ipv6AddressList\");\nvar de_Ipv6CidrAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCp] != null) {\n contents[_ICp] = (0, import_smithy_client.expectString)(output[_iCp]);\n }\n if (output[_aRs] != null) {\n contents[_ARs] = (0, import_smithy_client.expectString)(output[_aRs]);\n }\n return contents;\n}, \"de_Ipv6CidrAssociation\");\nvar de_Ipv6CidrAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6CidrAssociation(entry, context);\n });\n}, \"de_Ipv6CidrAssociationSet\");\nvar de_Ipv6CidrBlock = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n return contents;\n}, \"de_Ipv6CidrBlock\");\nvar de_Ipv6CidrBlockSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6CidrBlock(entry, context);\n });\n}, \"de_Ipv6CidrBlockSet\");\nvar de_Ipv6Pool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.poolCidrBlockSet === \"\") {\n contents[_PCBo] = [];\n } else if (output[_pCBS] != null && output[_pCBS][_i] != null) {\n contents[_PCBo] = de_PoolCidrBlocksSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pCBS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_Ipv6Pool\");\nvar de_Ipv6PoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6Pool(entry, context);\n });\n}, \"de_Ipv6PoolSet\");\nvar de_Ipv6PrefixesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6PrefixSpecification(entry, context);\n });\n}, \"de_Ipv6PrefixesList\");\nvar de_Ipv6PrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6PrefixSpecificationRequest(entry, context);\n });\n}, \"de_Ipv6PrefixList\");\nvar de_Ipv6PrefixListResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6PrefixSpecificationResponse(entry, context);\n });\n}, \"de_Ipv6PrefixListResponse\");\nvar de_Ipv6PrefixSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpvr] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_iPpvr]);\n }\n return contents;\n}, \"de_Ipv6PrefixSpecification\");\nvar de_Ipv6PrefixSpecificationRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IPpvre] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_IPpvre]);\n }\n return contents;\n}, \"de_Ipv6PrefixSpecificationRequest\");\nvar de_Ipv6PrefixSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPpvr] != null) {\n contents[_IPpvre] = (0, import_smithy_client.expectString)(output[_iPpvr]);\n }\n return contents;\n}, \"de_Ipv6PrefixSpecificationResponse\");\nvar de_Ipv6Range = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cIid] != null) {\n contents[_CIid] = (0, import_smithy_client.expectString)(output[_cIid]);\n }\n return contents;\n}, \"de_Ipv6Range\");\nvar de_Ipv6RangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Ipv6Range(entry, context);\n });\n}, \"de_Ipv6RangeList\");\nvar de_KeyPair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_kFe] != null) {\n contents[_KFe] = (0, import_smithy_client.expectString)(output[_kFe]);\n }\n if (output[_kM] != null) {\n contents[_KM] = (0, import_smithy_client.expectString)(output[_kM]);\n }\n return contents;\n}, \"de_KeyPair\");\nvar de_KeyPairInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kPI] != null) {\n contents[_KPI] = (0, import_smithy_client.expectString)(output[_kPI]);\n }\n if (output[_kT] != null) {\n contents[_KT] = (0, import_smithy_client.expectString)(output[_kT]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pK] != null) {\n contents[_PK] = (0, import_smithy_client.expectString)(output[_pK]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_kFe] != null) {\n contents[_KFe] = (0, import_smithy_client.expectString)(output[_kFe]);\n }\n return contents;\n}, \"de_KeyPairInfo\");\nvar de_KeyPairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_KeyPairInfo(entry, context);\n });\n}, \"de_KeyPairList\");\nvar de_LastError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n return contents;\n}, \"de_LastError\");\nvar de_LaunchPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oAr] != null) {\n contents[_OAr] = (0, import_smithy_client.expectString)(output[_oAr]);\n }\n if (output[_oUA] != null) {\n contents[_OUA] = (0, import_smithy_client.expectString)(output[_oUA]);\n }\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_g] != null) {\n contents[_Gr] = (0, import_smithy_client.expectString)(output[_g]);\n }\n return contents;\n}, \"de_LaunchPermission\");\nvar de_LaunchPermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchPermission(entry, context);\n });\n}, \"de_LaunchPermissionList\");\nvar de_LaunchSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uDs] != null) {\n contents[_UD] = (0, import_smithy_client.expectString)(output[_uDs]);\n }\n if (output[_aTdd] != null) {\n contents[_ATd] = (0, import_smithy_client.expectString)(output[_aTdd]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfileSpecification(output[_iIP], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_InstanceNetworkInterfaceSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_SpotPlacement(output[_pla], context);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output.groupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_SG] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_RunInstancesMonitoringEnabled(output[_mo], context);\n }\n return contents;\n}, \"de_LaunchSpecification\");\nvar de_LaunchSpecsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotFleetLaunchSpecification(entry, context);\n });\n}, \"de_LaunchSpecsList\");\nvar de_LaunchTemplate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_cBr] != null) {\n contents[_CBr] = (0, import_smithy_client.expectString)(output[_cBr]);\n }\n if (output[_dVN] != null) {\n contents[_DVN] = (0, import_smithy_client.strictParseLong)(output[_dVN]);\n }\n if (output[_lVN] != null) {\n contents[_LVN] = (0, import_smithy_client.strictParseLong)(output[_lVN]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_LaunchTemplate\");\nvar de_LaunchTemplateAndOverridesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTS] != null) {\n contents[_LTS] = de_FleetLaunchTemplateSpecification(output[_lTS], context);\n }\n if (output[_ov] != null) {\n contents[_Ov] = de_FleetLaunchTemplateOverrides(output[_ov], context);\n }\n return contents;\n}, \"de_LaunchTemplateAndOverridesResponse\");\nvar de_LaunchTemplateBlockDeviceMapping = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_vN] != null) {\n contents[_VN] = (0, import_smithy_client.expectString)(output[_vN]);\n }\n if (output[_eb] != null) {\n contents[_E] = de_LaunchTemplateEbsBlockDevice(output[_eb], context);\n }\n if (output[_nD] != null) {\n contents[_ND] = (0, import_smithy_client.expectString)(output[_nD]);\n }\n return contents;\n}, \"de_LaunchTemplateBlockDeviceMapping\");\nvar de_LaunchTemplateBlockDeviceMappingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateBlockDeviceMapping(entry, context);\n });\n}, \"de_LaunchTemplateBlockDeviceMappingList\");\nvar de_LaunchTemplateCapacityReservationSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRP] != null) {\n contents[_CRP] = (0, import_smithy_client.expectString)(output[_cRP]);\n }\n if (output[_cRT] != null) {\n contents[_CRTa] = de_CapacityReservationTargetResponse(output[_cRT], context);\n }\n return contents;\n}, \"de_LaunchTemplateCapacityReservationSpecificationResponse\");\nvar de_LaunchTemplateConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTS] != null) {\n contents[_LTS] = de_FleetLaunchTemplateSpecification(output[_lTS], context);\n }\n if (output.overrides === \"\") {\n contents[_Ov] = [];\n } else if (output[_ov] != null && output[_ov][_i] != null) {\n contents[_Ov] = de_LaunchTemplateOverridesList((0, import_smithy_client.getArrayIfSingleItem)(output[_ov][_i]), context);\n }\n return contents;\n}, \"de_LaunchTemplateConfig\");\nvar de_LaunchTemplateConfigList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateConfig(entry, context);\n });\n}, \"de_LaunchTemplateConfigList\");\nvar de_LaunchTemplateCpuOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cCo] != null) {\n contents[_CC] = (0, import_smithy_client.strictParseInt32)(output[_cCo]);\n }\n if (output[_tPC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_tPC]);\n }\n if (output[_aSS] != null) {\n contents[_ASS] = (0, import_smithy_client.expectString)(output[_aSS]);\n }\n return contents;\n}, \"de_LaunchTemplateCpuOptions\");\nvar de_LaunchTemplateEbsBlockDevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_vIR] != null) {\n contents[_VIR] = (0, import_smithy_client.strictParseInt32)(output[_vIR]);\n }\n return contents;\n}, \"de_LaunchTemplateEbsBlockDevice\");\nvar de_LaunchTemplateElasticInferenceAcceleratorResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n return contents;\n}, \"de_LaunchTemplateElasticInferenceAcceleratorResponse\");\nvar de_LaunchTemplateElasticInferenceAcceleratorResponseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateElasticInferenceAcceleratorResponse(entry, context);\n });\n}, \"de_LaunchTemplateElasticInferenceAcceleratorResponseList\");\nvar de_LaunchTemplateEnaSrdSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSE] != null) {\n contents[_ESE] = (0, import_smithy_client.parseBoolean)(output[_eSE]);\n }\n if (output[_eSUS] != null) {\n contents[_ESUS] = de_LaunchTemplateEnaSrdUdpSpecification(output[_eSUS], context);\n }\n return contents;\n}, \"de_LaunchTemplateEnaSrdSpecification\");\nvar de_LaunchTemplateEnaSrdUdpSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eSUE] != null) {\n contents[_ESUE] = (0, import_smithy_client.parseBoolean)(output[_eSUE]);\n }\n return contents;\n}, \"de_LaunchTemplateEnaSrdUdpSpecification\");\nvar de_LaunchTemplateEnclaveOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_LaunchTemplateEnclaveOptions\");\nvar de_LaunchTemplateHibernationOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_conf] != null) {\n contents[_Conf] = (0, import_smithy_client.parseBoolean)(output[_conf]);\n }\n return contents;\n}, \"de_LaunchTemplateHibernationOptions\");\nvar de_LaunchTemplateIamInstanceProfileSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_LaunchTemplateIamInstanceProfileSpecification\");\nvar de_LaunchTemplateInstanceMaintenanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRu] != null) {\n contents[_ARu] = (0, import_smithy_client.expectString)(output[_aRu]);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceMaintenanceOptions\");\nvar de_LaunchTemplateInstanceMarketOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mT] != null) {\n contents[_MT] = (0, import_smithy_client.expectString)(output[_mT]);\n }\n if (output[_sO] != null) {\n contents[_SO] = de_LaunchTemplateSpotMarketOptions(output[_sO], context);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceMarketOptions\");\nvar de_LaunchTemplateInstanceMetadataOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_hT] != null) {\n contents[_HT] = (0, import_smithy_client.expectString)(output[_hT]);\n }\n if (output[_hPRHL] != null) {\n contents[_HPRHL] = (0, import_smithy_client.strictParseInt32)(output[_hPRHL]);\n }\n if (output[_hE] != null) {\n contents[_HE] = (0, import_smithy_client.expectString)(output[_hE]);\n }\n if (output[_hPI] != null) {\n contents[_HPI] = (0, import_smithy_client.expectString)(output[_hPI]);\n }\n if (output[_iMT] != null) {\n contents[_IMT] = (0, import_smithy_client.expectString)(output[_iMT]);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceMetadataOptions\");\nvar de_LaunchTemplateInstanceNetworkInterfaceSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aCIA] != null) {\n contents[_ACIA] = (0, import_smithy_client.parseBoolean)(output[_aCIA]);\n }\n if (output[_aPIA] != null) {\n contents[_APIAs] = (0, import_smithy_client.parseBoolean)(output[_aPIA]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_gIr] != null) {\n contents[_G] = de_GroupIdStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_gIr]), context);\n }\n if (output[_iTnt] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_iTnt]);\n }\n if (output[_iAC] != null) {\n contents[_IAC] = (0, import_smithy_client.strictParseInt32)(output[_iAC]);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_InstanceIpv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_PrivateIpAddressSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output[_sPIAC] != null) {\n contents[_SPIAC] = (0, import_smithy_client.strictParseInt32)(output[_sPIAC]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_Ipv4PrefixListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output[_iPCp] != null) {\n contents[_IPCp] = (0, import_smithy_client.strictParseInt32)(output[_iPCp]);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_Ipv6PrefixListResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_iPCpv] != null) {\n contents[_IPC] = (0, import_smithy_client.strictParseInt32)(output[_iPCpv]);\n }\n if (output[_pIri] != null) {\n contents[_PIr] = (0, import_smithy_client.parseBoolean)(output[_pIri]);\n }\n if (output[_eSS] != null) {\n contents[_ESS] = de_LaunchTemplateEnaSrdSpecification(output[_eSS], context);\n }\n if (output[_cTS] != null) {\n contents[_CTS] = de_ConnectionTrackingSpecification(output[_cTS], context);\n }\n if (output[_eQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_eQC]);\n }\n return contents;\n}, \"de_LaunchTemplateInstanceNetworkInterfaceSpecification\");\nvar de_LaunchTemplateInstanceNetworkInterfaceSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateInstanceNetworkInterfaceSpecification(entry, context);\n });\n}, \"de_LaunchTemplateInstanceNetworkInterfaceSpecificationList\");\nvar de_LaunchTemplateLicenseConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lCA] != null) {\n contents[_LCA] = (0, import_smithy_client.expectString)(output[_lCA]);\n }\n return contents;\n}, \"de_LaunchTemplateLicenseConfiguration\");\nvar de_LaunchTemplateLicenseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateLicenseConfiguration(entry, context);\n });\n}, \"de_LaunchTemplateLicenseList\");\nvar de_LaunchTemplateNetworkPerformanceOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bW] != null) {\n contents[_BW] = (0, import_smithy_client.expectString)(output[_bW]);\n }\n return contents;\n}, \"de_LaunchTemplateNetworkPerformanceOptions\");\nvar de_LaunchTemplateOverrides = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_wC] != null) {\n contents[_WCe] = (0, import_smithy_client.strictParseFloat)(output[_wC]);\n }\n if (output[_pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseFloat)(output[_pri]);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n return contents;\n}, \"de_LaunchTemplateOverrides\");\nvar de_LaunchTemplateOverridesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateOverrides(entry, context);\n });\n}, \"de_LaunchTemplateOverridesList\");\nvar de_LaunchTemplatePlacement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_af] != null) {\n contents[_Af] = (0, import_smithy_client.expectString)(output[_af]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_sDp] != null) {\n contents[_SDp] = (0, import_smithy_client.expectString)(output[_sDp]);\n }\n if (output[_hRGA] != null) {\n contents[_HRGA] = (0, import_smithy_client.expectString)(output[_hRGA]);\n }\n if (output[_pN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_pN]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n return contents;\n}, \"de_LaunchTemplatePlacement\");\nvar de_LaunchTemplatePrivateDnsNameOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hTo] != null) {\n contents[_HTo] = (0, import_smithy_client.expectString)(output[_hTo]);\n }\n if (output[_eRNDAR] != null) {\n contents[_ERNDAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAR]);\n }\n if (output[_eRNDAAAAR] != null) {\n contents[_ERNDAAAAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAAAAR]);\n }\n return contents;\n}, \"de_LaunchTemplatePrivateDnsNameOptions\");\nvar de_LaunchTemplateSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplate(entry, context);\n });\n}, \"de_LaunchTemplateSet\");\nvar de_LaunchTemplatesMonitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_LaunchTemplatesMonitoring\");\nvar de_LaunchTemplateSpotMarketOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mP] != null) {\n contents[_MPa] = (0, import_smithy_client.expectString)(output[_mP]);\n }\n if (output[_sIT] != null) {\n contents[_SIT] = (0, import_smithy_client.expectString)(output[_sIT]);\n }\n if (output[_bDMl] != null) {\n contents[_BDMl] = (0, import_smithy_client.strictParseInt32)(output[_bDMl]);\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n return contents;\n}, \"de_LaunchTemplateSpotMarketOptions\");\nvar de_LaunchTemplateTagSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LaunchTemplateTagSpecification\");\nvar de_LaunchTemplateTagSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateTagSpecification(entry, context);\n });\n}, \"de_LaunchTemplateTagSpecificationList\");\nvar de_LaunchTemplateVersion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lTI] != null) {\n contents[_LTI] = (0, import_smithy_client.expectString)(output[_lTI]);\n }\n if (output[_lTN] != null) {\n contents[_LTN] = (0, import_smithy_client.expectString)(output[_lTN]);\n }\n if (output[_vNe] != null) {\n contents[_VNe] = (0, import_smithy_client.strictParseLong)(output[_vNe]);\n }\n if (output[_vD] != null) {\n contents[_VD] = (0, import_smithy_client.expectString)(output[_vD]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_cBr] != null) {\n contents[_CBr] = (0, import_smithy_client.expectString)(output[_cBr]);\n }\n if (output[_dVe] != null) {\n contents[_DVef] = (0, import_smithy_client.parseBoolean)(output[_dVe]);\n }\n if (output[_lTD] != null) {\n contents[_LTD] = de_ResponseLaunchTemplateData(output[_lTD], context);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_LaunchTemplateVersion\");\nvar de_LaunchTemplateVersionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LaunchTemplateVersion(entry, context);\n });\n}, \"de_LaunchTemplateVersionSet\");\nvar de_LicenseConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lCA] != null) {\n contents[_LCA] = (0, import_smithy_client.expectString)(output[_lCA]);\n }\n return contents;\n}, \"de_LicenseConfiguration\");\nvar de_LicenseList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LicenseConfiguration(entry, context);\n });\n}, \"de_LicenseList\");\nvar de_ListImagesInRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.imageSet === \"\") {\n contents[_Ima] = [];\n } else if (output[_iSmag] != null && output[_iSmag][_i] != null) {\n contents[_Ima] = de_ImageRecycleBinInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSmag][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_ListImagesInRecycleBinResult\");\nvar de_ListSnapshotsInRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.snapshotSet === \"\") {\n contents[_Sn] = [];\n } else if (output[_sS] != null && output[_sS][_i] != null) {\n contents[_Sn] = de_SnapshotRecycleBinInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_sS][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_ListSnapshotsInRecycleBinResult\");\nvar de_LoadBalancersConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cLBC] != null) {\n contents[_CLBC] = de_ClassicLoadBalancersConfig(output[_cLBC], context);\n }\n if (output[_tGCa] != null) {\n contents[_TGC] = de_TargetGroupsConfig(output[_tGCa], context);\n }\n return contents;\n}, \"de_LoadBalancersConfig\");\nvar de_LoadPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_g] != null) {\n contents[_Gr] = (0, import_smithy_client.expectString)(output[_g]);\n }\n return contents;\n}, \"de_LoadPermission\");\nvar de_LoadPermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadPermission(entry, context);\n });\n}, \"de_LoadPermissionList\");\nvar de_LocalGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LocalGateway\");\nvar de_LocalGatewayRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_cPI] != null) {\n contents[_CPIo] = (0, import_smithy_client.expectString)(output[_cPI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_dPLI] != null) {\n contents[_DPLI] = (0, import_smithy_client.expectString)(output[_dPLI]);\n }\n return contents;\n}, \"de_LocalGatewayRoute\");\nvar de_LocalGatewayRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRoute(entry, context);\n });\n}, \"de_LocalGatewayRouteList\");\nvar de_LocalGatewayRouteTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_mod] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_mod]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = de_StateReason(output[_sRt], context);\n }\n return contents;\n}, \"de_LocalGatewayRouteTable\");\nvar de_LocalGatewayRouteTableSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRouteTable(entry, context);\n });\n}, \"de_LocalGatewayRouteTableSet\");\nvar de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVIGAI] != null) {\n contents[_LGRTVIGAI] = (0, import_smithy_client.expectString)(output[_lGRTVIGAI]);\n }\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation\");\nvar de_LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRouteTableVirtualInterfaceGroupAssociation(entry, context);\n });\n}, \"de_LocalGatewayRouteTableVirtualInterfaceGroupAssociationSet\");\nvar de_LocalGatewayRouteTableVpcAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGRTVAI] != null) {\n contents[_LGRTVAI] = (0, import_smithy_client.expectString)(output[_lGRTVAI]);\n }\n if (output[_lGRTI] != null) {\n contents[_LGRTI] = (0, import_smithy_client.expectString)(output[_lGRTI]);\n }\n if (output[_lGRTA] != null) {\n contents[_LGRTA] = (0, import_smithy_client.expectString)(output[_lGRTA]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_LocalGatewayRouteTableVpcAssociation\");\nvar de_LocalGatewayRouteTableVpcAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayRouteTableVpcAssociation(entry, context);\n });\n}, \"de_LocalGatewayRouteTableVpcAssociationSet\");\nvar de_LocalGatewaySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGateway(entry, context);\n });\n}, \"de_LocalGatewaySet\");\nvar de_LocalGatewayVirtualInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVII] != null) {\n contents[_LGVII] = (0, import_smithy_client.expectString)(output[_lGVII]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output[_lGVIA] != null) {\n contents[_LGVIA] = (0, import_smithy_client.expectString)(output[_lGVIA]);\n }\n if (output[_oLI] != null) {\n contents[_OLI] = (0, import_smithy_client.expectString)(output[_oLI]);\n }\n if (output[_vl] != null) {\n contents[_Vl] = (0, import_smithy_client.strictParseInt32)(output[_vl]);\n }\n if (output[_lA] != null) {\n contents[_LA] = (0, import_smithy_client.expectString)(output[_lA]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_lBAo] != null) {\n contents[_LBA] = (0, import_smithy_client.strictParseInt32)(output[_lBAo]);\n }\n if (output[_pBA] != null) {\n contents[_PBA] = (0, import_smithy_client.strictParseInt32)(output[_pBA]);\n }\n if (output[_pBAE] != null) {\n contents[_PBAE] = (0, import_smithy_client.strictParseLong)(output[_pBAE]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cSon] != null) {\n contents[_CSon] = (0, import_smithy_client.expectString)(output[_cSon]);\n }\n return contents;\n}, \"de_LocalGatewayVirtualInterface\");\nvar de_LocalGatewayVirtualInterfaceGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lGVIGI] != null) {\n contents[_LGVIGI] = (0, import_smithy_client.expectString)(output[_lGVIGI]);\n }\n if (output.localGatewayVirtualInterfaceIdSet === \"\") {\n contents[_LGVIIo] = [];\n } else if (output[_lGVIIS] != null && output[_lGVIIS][_i] != null) {\n contents[_LGVIIo] = de_LocalGatewayVirtualInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIIS][_i]), context);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_lBAo] != null) {\n contents[_LBA] = (0, import_smithy_client.strictParseInt32)(output[_lBAo]);\n }\n if (output[_lBAE] != null) {\n contents[_LBAE] = (0, import_smithy_client.strictParseLong)(output[_lBAE]);\n }\n if (output[_lGVIGA] != null) {\n contents[_LGVIGA] = (0, import_smithy_client.expectString)(output[_lGVIGA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cSon] != null) {\n contents[_CSon] = (0, import_smithy_client.expectString)(output[_cSon]);\n }\n return contents;\n}, \"de_LocalGatewayVirtualInterfaceGroup\");\nvar de_LocalGatewayVirtualInterfaceGroupSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayVirtualInterfaceGroup(entry, context);\n });\n}, \"de_LocalGatewayVirtualInterfaceGroupSet\");\nvar de_LocalGatewayVirtualInterfaceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_LocalGatewayVirtualInterfaceIdSet\");\nvar de_LocalGatewayVirtualInterfaceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocalGatewayVirtualInterface(entry, context);\n });\n}, \"de_LocalGatewayVirtualInterfaceSet\");\nvar de_LocalStorageTypeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_LocalStorageTypeSet\");\nvar de_LockedSnapshotsInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_lSoc] != null) {\n contents[_LSoc] = (0, import_smithy_client.expectString)(output[_lSoc]);\n }\n if (output[_lDo] != null) {\n contents[_LDo] = (0, import_smithy_client.strictParseInt32)(output[_lDo]);\n }\n if (output[_cOP] != null) {\n contents[_COP] = (0, import_smithy_client.strictParseInt32)(output[_cOP]);\n }\n if (output[_cOPEO] != null) {\n contents[_COPEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cOPEO]));\n }\n if (output[_lCO] != null) {\n contents[_LCO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lCO]));\n }\n if (output[_lDST] != null) {\n contents[_LDST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lDST]));\n }\n if (output[_lEO] != null) {\n contents[_LEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lEO]));\n }\n return contents;\n}, \"de_LockedSnapshotsInfo\");\nvar de_LockedSnapshotsInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LockedSnapshotsInfo(entry, context);\n });\n}, \"de_LockedSnapshotsInfoList\");\nvar de_LockSnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_lSoc] != null) {\n contents[_LSoc] = (0, import_smithy_client.expectString)(output[_lSoc]);\n }\n if (output[_lDo] != null) {\n contents[_LDo] = (0, import_smithy_client.strictParseInt32)(output[_lDo]);\n }\n if (output[_cOP] != null) {\n contents[_COP] = (0, import_smithy_client.strictParseInt32)(output[_cOP]);\n }\n if (output[_cOPEO] != null) {\n contents[_COPEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cOPEO]));\n }\n if (output[_lCO] != null) {\n contents[_LCO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lCO]));\n }\n if (output[_lEO] != null) {\n contents[_LEO] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lEO]));\n }\n if (output[_lDST] != null) {\n contents[_LDST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lDST]));\n }\n return contents;\n}, \"de_LockSnapshotResult\");\nvar de_MacHost = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output.macOSLatestSupportedVersionSet === \"\") {\n contents[_MOSLSV] = [];\n } else if (output[_mOSLSVS] != null && output[_mOSLSVS][_i] != null) {\n contents[_MOSLSV] = de_MacOSVersionStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_mOSLSVS][_i]), context);\n }\n return contents;\n}, \"de_MacHost\");\nvar de_MacHostList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MacHost(entry, context);\n });\n}, \"de_MacHostList\");\nvar de_MacOSVersionStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_MacOSVersionStringList\");\nvar de_MaintenanceDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pM] != null) {\n contents[_PM] = (0, import_smithy_client.expectString)(output[_pM]);\n }\n if (output[_mAAA] != null) {\n contents[_MAAA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_mAAA]));\n }\n if (output[_lMA] != null) {\n contents[_LMA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lMA]));\n }\n return contents;\n}, \"de_MaintenanceDetails\");\nvar de_ManagedPrefixList = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_aF] != null) {\n contents[_AF] = (0, import_smithy_client.expectString)(output[_aF]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_pLA] != null) {\n contents[_PLAr] = (0, import_smithy_client.expectString)(output[_pLA]);\n }\n if (output[_pLN] != null) {\n contents[_PLN] = (0, import_smithy_client.expectString)(output[_pLN]);\n }\n if (output[_mE] != null) {\n contents[_ME] = (0, import_smithy_client.strictParseInt32)(output[_mE]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_ve]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_ManagedPrefixList\");\nvar de_ManagedPrefixListSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ManagedPrefixList(entry, context);\n });\n}, \"de_ManagedPrefixListSet\");\nvar de_MediaAcceleratorInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.accelerators === \"\") {\n contents[_Acc] = [];\n } else if (output[_acc] != null && output[_acc][_i] != null) {\n contents[_Acc] = de_MediaDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_acc][_i]), context);\n }\n if (output[_tMMIMB] != null) {\n contents[_TMMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tMMIMB]);\n }\n return contents;\n}, \"de_MediaAcceleratorInfo\");\nvar de_MediaDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_MediaDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_MediaDeviceInfo\");\nvar de_MediaDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MediaDeviceInfo(entry, context);\n });\n}, \"de_MediaDeviceInfoList\");\nvar de_MediaDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_MediaDeviceMemoryInfo\");\nvar de_MemoryGiBPerVCpu = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseFloat)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseFloat)(output[_ma]);\n }\n return contents;\n}, \"de_MemoryGiBPerVCpu\");\nvar de_MemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseLong)(output[_sIMB]);\n }\n return contents;\n}, \"de_MemoryInfo\");\nvar de_MemoryMiB = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_MemoryMiB\");\nvar de_MetricPoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.strictParseFloat)(output[_v]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_MetricPoint\");\nvar de_MetricPoints = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricPoint(entry, context);\n });\n}, \"de_MetricPoints\");\nvar de_ModifyAddressAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ad] != null) {\n contents[_Ad] = de_AddressAttribute(output[_ad], context);\n }\n return contents;\n}, \"de_ModifyAddressAttributeResult\");\nvar de_ModifyAvailabilityZoneGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyAvailabilityZoneGroupResult\");\nvar de_ModifyCapacityReservationFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyCapacityReservationFleetResult\");\nvar de_ModifyCapacityReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyCapacityReservationResult\");\nvar de_ModifyClientVpnEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyClientVpnEndpointResult\");\nvar de_ModifyDefaultCreditSpecificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iFCS] != null) {\n contents[_IFCS] = de_InstanceFamilyCreditSpecification(output[_iFCS], context);\n }\n return contents;\n}, \"de_ModifyDefaultCreditSpecificationResult\");\nvar de_ModifyEbsDefaultKmsKeyIdResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_ModifyEbsDefaultKmsKeyIdResult\");\nvar de_ModifyFleetResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyFleetResult\");\nvar de_ModifyFpgaImageAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fIA] != null) {\n contents[_FIAp] = de_FpgaImageAttribute(output[_fIA], context);\n }\n return contents;\n}, \"de_ModifyFpgaImageAttributeResult\");\nvar de_ModifyHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_ResponseHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemList((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_ModifyHostsResult\");\nvar de_ModifyInstanceCapacityReservationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyInstanceCapacityReservationAttributesResult\");\nvar de_ModifyInstanceCpuOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_cCo] != null) {\n contents[_CC] = (0, import_smithy_client.strictParseInt32)(output[_cCo]);\n }\n if (output[_tPC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_tPC]);\n }\n return contents;\n}, \"de_ModifyInstanceCpuOptionsResult\");\nvar de_ModifyInstanceCreditSpecificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successfulInstanceCreditSpecificationSet === \"\") {\n contents[_SICS] = [];\n } else if (output[_sICSS] != null && output[_sICSS][_i] != null) {\n contents[_SICS] = de_SuccessfulInstanceCreditSpecificationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sICSS][_i]), context);\n }\n if (output.unsuccessfulInstanceCreditSpecificationSet === \"\") {\n contents[_UICS] = [];\n } else if (output[_uICSS] != null && output[_uICSS][_i] != null) {\n contents[_UICS] = de_UnsuccessfulInstanceCreditSpecificationSet(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_uICSS][_i]),\n context\n );\n }\n return contents;\n}, \"de_ModifyInstanceCreditSpecificationResult\");\nvar de_ModifyInstanceEventStartTimeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ev] != null) {\n contents[_Eve] = de_InstanceStatusEvent(output[_ev], context);\n }\n return contents;\n}, \"de_ModifyInstanceEventStartTimeResult\");\nvar de_ModifyInstanceEventWindowResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iEW] != null) {\n contents[_IEW] = de_InstanceEventWindow(output[_iEW], context);\n }\n return contents;\n}, \"de_ModifyInstanceEventWindowResult\");\nvar de_ModifyInstanceMaintenanceOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_aRu] != null) {\n contents[_ARu] = (0, import_smithy_client.expectString)(output[_aRu]);\n }\n return contents;\n}, \"de_ModifyInstanceMaintenanceOptionsResult\");\nvar de_ModifyInstanceMetadataDefaultsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyInstanceMetadataDefaultsResult\");\nvar de_ModifyInstanceMetadataOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iMO] != null) {\n contents[_IMOn] = de_InstanceMetadataOptionsResponse(output[_iMO], context);\n }\n return contents;\n}, \"de_ModifyInstanceMetadataOptionsResult\");\nvar de_ModifyInstanceNetworkPerformanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_bW] != null) {\n contents[_BW] = (0, import_smithy_client.expectString)(output[_bW]);\n }\n return contents;\n}, \"de_ModifyInstanceNetworkPerformanceResult\");\nvar de_ModifyInstancePlacementResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyInstancePlacementResult\");\nvar de_ModifyIpamPoolResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPp] != null) {\n contents[_IPpa] = de_IpamPool(output[_iPp], context);\n }\n return contents;\n}, \"de_ModifyIpamPoolResult\");\nvar de_ModifyIpamResourceCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRC] != null) {\n contents[_IRCp] = de_IpamResourceCidr(output[_iRC], context);\n }\n return contents;\n}, \"de_ModifyIpamResourceCidrResult\");\nvar de_ModifyIpamResourceDiscoveryResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iRD] != null) {\n contents[_IRD] = de_IpamResourceDiscovery(output[_iRD], context);\n }\n return contents;\n}, \"de_ModifyIpamResourceDiscoveryResult\");\nvar de_ModifyIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ip] != null) {\n contents[_Ipa] = de_Ipam(output[_ip], context);\n }\n return contents;\n}, \"de_ModifyIpamResult\");\nvar de_ModifyIpamScopeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iS] != null) {\n contents[_ISpa] = de_IpamScope(output[_iS], context);\n }\n return contents;\n}, \"de_ModifyIpamScopeResult\");\nvar de_ModifyLaunchTemplateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lT] != null) {\n contents[_LTa] = de_LaunchTemplate(output[_lT], context);\n }\n return contents;\n}, \"de_ModifyLaunchTemplateResult\");\nvar de_ModifyLocalGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_LocalGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_ModifyLocalGatewayRouteResult\");\nvar de_ModifyManagedPrefixListResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_ModifyManagedPrefixListResult\");\nvar de_ModifyPrivateDnsNameOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyPrivateDnsNameOptionsResult\");\nvar de_ModifyReservedInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIMI] != null) {\n contents[_RIMIe] = (0, import_smithy_client.expectString)(output[_rIMI]);\n }\n return contents;\n}, \"de_ModifyReservedInstancesResult\");\nvar de_ModifyRouteServerResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSo] != null) {\n contents[_RSo] = de_RouteServer(output[_rSo], context);\n }\n return contents;\n}, \"de_ModifyRouteServerResult\");\nvar de_ModifySecurityGroupRulesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifySecurityGroupRulesResult\");\nvar de_ModifySnapshotTierResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_tST] != null) {\n contents[_TST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tST]));\n }\n return contents;\n}, \"de_ModifySnapshotTierResult\");\nvar de_ModifySpotFleetRequestResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifySpotFleetRequestResponse\");\nvar de_ModifyTrafficMirrorFilterNetworkServicesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMF] != null) {\n contents[_TMF] = de_TrafficMirrorFilter(output[_tMF], context);\n }\n return contents;\n}, \"de_ModifyTrafficMirrorFilterNetworkServicesResult\");\nvar de_ModifyTrafficMirrorFilterRuleResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFR] != null) {\n contents[_TMFR] = de_TrafficMirrorFilterRule(output[_tMFR], context);\n }\n return contents;\n}, \"de_ModifyTrafficMirrorFilterRuleResult\");\nvar de_ModifyTrafficMirrorSessionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMS] != null) {\n contents[_TMS] = de_TrafficMirrorSession(output[_tMS], context);\n }\n return contents;\n}, \"de_ModifyTrafficMirrorSessionResult\");\nvar de_ModifyTransitGatewayPrefixListReferenceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPLR] != null) {\n contents[_TGPLR] = de_TransitGatewayPrefixListReference(output[_tGPLR], context);\n }\n return contents;\n}, \"de_ModifyTransitGatewayPrefixListReferenceResult\");\nvar de_ModifyTransitGatewayResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tG] != null) {\n contents[_TGr] = de_TransitGateway(output[_tG], context);\n }\n return contents;\n}, \"de_ModifyTransitGatewayResult\");\nvar de_ModifyTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_ModifyTransitGatewayVpcAttachmentResult\");\nvar de_ModifyVerifiedAccessEndpointPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessEndpointPolicyResult\");\nvar de_ModifyVerifiedAccessEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAE] != null) {\n contents[_VAE] = de_VerifiedAccessEndpoint(output[_vAE], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessEndpointResult\");\nvar de_ModifyVerifiedAccessGroupPolicyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pE] != null) {\n contents[_PE] = (0, import_smithy_client.parseBoolean)(output[_pE]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessGroupPolicyResult\");\nvar de_ModifyVerifiedAccessGroupResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAG] != null) {\n contents[_VAG] = de_VerifiedAccessGroup(output[_vAG], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessGroupResult\");\nvar de_ModifyVerifiedAccessInstanceLoggingConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_lC] != null) {\n contents[_LCo] = de_VerifiedAccessInstanceLoggingConfiguration(output[_lC], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessInstanceLoggingConfigurationResult\");\nvar de_ModifyVerifiedAccessInstanceResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAI] != null) {\n contents[_VAI] = de_VerifiedAccessInstance(output[_vAI], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessInstanceResult\");\nvar de_ModifyVerifiedAccessTrustProviderResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATP] != null) {\n contents[_VATP] = de_VerifiedAccessTrustProvider(output[_vATP], context);\n }\n return contents;\n}, \"de_ModifyVerifiedAccessTrustProviderResult\");\nvar de_ModifyVolumeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vM] != null) {\n contents[_VMol] = de_VolumeModification(output[_vM], context);\n }\n return contents;\n}, \"de_ModifyVolumeResult\");\nvar de_ModifyVpcBlockPublicAccessExclusionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAE] != null) {\n contents[_VBPAE] = de_VpcBlockPublicAccessExclusion(output[_vBPAE], context);\n }\n return contents;\n}, \"de_ModifyVpcBlockPublicAccessExclusionResult\");\nvar de_ModifyVpcBlockPublicAccessOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vBPAO] != null) {\n contents[_VBPAO] = de_VpcBlockPublicAccessOptions(output[_vBPAO], context);\n }\n return contents;\n}, \"de_ModifyVpcBlockPublicAccessOptionsResult\");\nvar de_ModifyVpcEndpointConnectionNotificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointConnectionNotificationResult\");\nvar de_ModifyVpcEndpointResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointResult\");\nvar de_ModifyVpcEndpointServiceConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointServiceConfigurationResult\");\nvar de_ModifyVpcEndpointServicePayerResponsibilityResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointServicePayerResponsibilityResult\");\nvar de_ModifyVpcEndpointServicePermissionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.addedPrincipalSet === \"\") {\n contents[_APd] = [];\n } else if (output[_aPS] != null && output[_aPS][_i] != null) {\n contents[_APd] = de_AddedPrincipalSet((0, import_smithy_client.getArrayIfSingleItem)(output[_aPS][_i]), context);\n }\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcEndpointServicePermissionsResult\");\nvar de_ModifyVpcPeeringConnectionOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aPCO] != null) {\n contents[_APCO] = de_PeeringConnectionOptions(output[_aPCO], context);\n }\n if (output[_rPCO] != null) {\n contents[_RPCO] = de_PeeringConnectionOptions(output[_rPCO], context);\n }\n return contents;\n}, \"de_ModifyVpcPeeringConnectionOptionsResult\");\nvar de_ModifyVpcTenancyResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ModifyVpcTenancyResult\");\nvar de_ModifyVpnConnectionOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnConnectionOptionsResult\");\nvar de_ModifyVpnConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnConnectionResult\");\nvar de_ModifyVpnTunnelCertificateResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnTunnelCertificateResult\");\nvar de_ModifyVpnTunnelOptionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vC] != null) {\n contents[_VC] = de_VpnConnection(output[_vC], context);\n }\n return contents;\n}, \"de_ModifyVpnTunnelOptionsResult\");\nvar de_Monitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_Monitoring\");\nvar de_MonitorInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_IMn] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_IMn] = de_InstanceMonitoringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_MonitorInstancesResult\");\nvar de_MoveAddressToVpcResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_MoveAddressToVpcResult\");\nvar de_MoveByoipCidrToIpamResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_MoveByoipCidrToIpamResult\");\nvar de_MoveCapacityReservationInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCR] != null) {\n contents[_SCR] = de_CapacityReservation(output[_sCR], context);\n }\n if (output[_dCR] != null) {\n contents[_DCRe] = de_CapacityReservation(output[_dCR], context);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n return contents;\n}, \"de_MoveCapacityReservationInstancesResult\");\nvar de_MovingAddressStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mSo] != null) {\n contents[_MSo] = (0, import_smithy_client.expectString)(output[_mSo]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n return contents;\n}, \"de_MovingAddressStatus\");\nvar de_MovingAddressStatusSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MovingAddressStatus(entry, context);\n });\n}, \"de_MovingAddressStatusSet\");\nvar de_NatGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_dTel] != null) {\n contents[_DTele] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTel]));\n }\n if (output[_fCa] != null) {\n contents[_FCa] = (0, import_smithy_client.expectString)(output[_fCa]);\n }\n if (output[_fM] != null) {\n contents[_FM] = (0, import_smithy_client.expectString)(output[_fM]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output[_pB] != null) {\n contents[_PB] = de_ProvisionedBandwidth(output[_pB], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cTonn] != null) {\n contents[_CTo] = (0, import_smithy_client.expectString)(output[_cTonn]);\n }\n return contents;\n}, \"de_NatGateway\");\nvar de_NatGatewayAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pIriv] != null) {\n contents[_PIri] = (0, import_smithy_client.expectString)(output[_pIriv]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iPsr] != null) {\n contents[_IPsr] = (0, import_smithy_client.parseBoolean)(output[_iPsr]);\n }\n if (output[_fM] != null) {\n contents[_FM] = (0, import_smithy_client.expectString)(output[_fM]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_NatGatewayAddress\");\nvar de_NatGatewayAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NatGatewayAddress(entry, context);\n });\n}, \"de_NatGatewayAddressList\");\nvar de_NatGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NatGateway(entry, context);\n });\n}, \"de_NatGatewayList\");\nvar de_NativeApplicationOidcOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pSKE] != null) {\n contents[_PSKE] = (0, import_smithy_client.expectString)(output[_pSKE]);\n }\n if (output[_is] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_is]);\n }\n if (output[_aE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_aE]);\n }\n if (output[_tEo] != null) {\n contents[_TEo] = (0, import_smithy_client.expectString)(output[_tEo]);\n }\n if (output[_uIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_uIE]);\n }\n if (output[_cIli] != null) {\n contents[_CIl] = (0, import_smithy_client.expectString)(output[_cIli]);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n return contents;\n}, \"de_NativeApplicationOidcOptions\");\nvar de_NetworkAcl = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associationSet === \"\") {\n contents[_Ass] = [];\n } else if (output[_aSss] != null && output[_aSss][_i] != null) {\n contents[_Ass] = de_NetworkAclAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSss][_i]), context);\n }\n if (output.entrySet === \"\") {\n contents[_Ent] = [];\n } else if (output[_eSnt] != null && output[_eSnt][_i] != null) {\n contents[_Ent] = de_NetworkAclEntryList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSnt][_i]), context);\n }\n if (output[_def] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_def]);\n }\n if (output[_nAI] != null) {\n contents[_NAI] = (0, import_smithy_client.expectString)(output[_nAI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_NetworkAcl\");\nvar de_NetworkAclAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nAAI] != null) {\n contents[_NAAI] = (0, import_smithy_client.expectString)(output[_nAAI]);\n }\n if (output[_nAI] != null) {\n contents[_NAI] = (0, import_smithy_client.expectString)(output[_nAI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n return contents;\n}, \"de_NetworkAclAssociation\");\nvar de_NetworkAclAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkAclAssociation(entry, context);\n });\n}, \"de_NetworkAclAssociationList\");\nvar de_NetworkAclEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_e] != null) {\n contents[_Eg] = (0, import_smithy_client.parseBoolean)(output[_e]);\n }\n if (output[_iTC] != null) {\n contents[_ITC] = de_IcmpTypeCode(output[_iTC], context);\n }\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n if (output[_pRo] != null) {\n contents[_PR] = de_PortRange(output[_pRo], context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_rN] != null) {\n contents[_RNu] = (0, import_smithy_client.strictParseInt32)(output[_rN]);\n }\n return contents;\n}, \"de_NetworkAclEntry\");\nvar de_NetworkAclEntryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkAclEntry(entry, context);\n });\n}, \"de_NetworkAclEntryList\");\nvar de_NetworkAclList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkAcl(entry, context);\n });\n}, \"de_NetworkAclList\");\nvar de_NetworkBandwidthGbps = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseFloat)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseFloat)(output[_ma]);\n }\n return contents;\n}, \"de_NetworkBandwidthGbps\");\nvar de_NetworkCardInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output[_nP] != null) {\n contents[_NP] = (0, import_smithy_client.expectString)(output[_nP]);\n }\n if (output[_mNI] != null) {\n contents[_MNI] = (0, import_smithy_client.strictParseInt32)(output[_mNI]);\n }\n if (output[_bBIG] != null) {\n contents[_BBIG] = (0, import_smithy_client.strictParseFloat)(output[_bBIG]);\n }\n if (output[_pBIG] != null) {\n contents[_PBIG] = (0, import_smithy_client.strictParseFloat)(output[_pBIG]);\n }\n if (output[_dEQCPI] != null) {\n contents[_DEQCPI] = (0, import_smithy_client.strictParseInt32)(output[_dEQCPI]);\n }\n if (output[_mEQC] != null) {\n contents[_MEQC] = (0, import_smithy_client.strictParseInt32)(output[_mEQC]);\n }\n if (output[_mEQCPI] != null) {\n contents[_MEQCPI] = (0, import_smithy_client.strictParseInt32)(output[_mEQCPI]);\n }\n return contents;\n}, \"de_NetworkCardInfo\");\nvar de_NetworkCardInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkCardInfo(entry, context);\n });\n}, \"de_NetworkCardInfoList\");\nvar de_NetworkInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nP] != null) {\n contents[_NP] = (0, import_smithy_client.expectString)(output[_nP]);\n }\n if (output[_mNI] != null) {\n contents[_MNI] = (0, import_smithy_client.strictParseInt32)(output[_mNI]);\n }\n if (output[_mNC] != null) {\n contents[_MNC] = (0, import_smithy_client.strictParseInt32)(output[_mNC]);\n }\n if (output[_dNCI] != null) {\n contents[_DNCI] = (0, import_smithy_client.strictParseInt32)(output[_dNCI]);\n }\n if (output.networkCards === \"\") {\n contents[_NC] = [];\n } else if (output[_nC] != null && output[_nC][_i] != null) {\n contents[_NC] = de_NetworkCardInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_nC][_i]), context);\n }\n if (output[_iAPI] != null) {\n contents[_IAPI] = (0, import_smithy_client.strictParseInt32)(output[_iAPI]);\n }\n if (output[_iAPIp] != null) {\n contents[_IAPIp] = (0, import_smithy_client.strictParseInt32)(output[_iAPIp]);\n }\n if (output[_iSpv] != null) {\n contents[_ISpv] = (0, import_smithy_client.parseBoolean)(output[_iSpv]);\n }\n if (output[_eSna] != null) {\n contents[_ESn] = (0, import_smithy_client.expectString)(output[_eSna]);\n }\n if (output[_eSf] != null) {\n contents[_ESf] = (0, import_smithy_client.parseBoolean)(output[_eSf]);\n }\n if (output[_eIf] != null) {\n contents[_EIf] = de_EfaInfo(output[_eIf], context);\n }\n if (output[_eITSn] != null) {\n contents[_EITS] = (0, import_smithy_client.parseBoolean)(output[_eITSn]);\n }\n if (output[_eSSn] != null) {\n contents[_ESSn] = (0, import_smithy_client.parseBoolean)(output[_eSSn]);\n }\n if (output.bandwidthWeightings === \"\") {\n contents[_BWa] = [];\n } else if (output[_bWa] != null && output[_bWa][_i] != null) {\n contents[_BWa] = de_BandwidthWeightingTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_bWa][_i]), context);\n }\n if (output[_fEQS] != null) {\n contents[_FEQS] = (0, import_smithy_client.expectString)(output[_fEQS]);\n }\n return contents;\n}, \"de_NetworkInfo\");\nvar de_NetworkInsightsAccessScope = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output[_nIASA] != null) {\n contents[_NIASAe] = (0, import_smithy_client.expectString)(output[_nIASA]);\n }\n if (output[_cDre] != null) {\n contents[_CDrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cDre]));\n }\n if (output[_uDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uDp]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAccessScope\");\nvar de_NetworkInsightsAccessScopeAnalysis = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAI] != null) {\n contents[_NIASAI] = (0, import_smithy_client.expectString)(output[_nIASAI]);\n }\n if (output[_nIASAA] != null) {\n contents[_NIASAA] = (0, import_smithy_client.expectString)(output[_nIASAA]);\n }\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_wM] != null) {\n contents[_WM] = (0, import_smithy_client.expectString)(output[_wM]);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_eD] != null) {\n contents[_ED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eD]));\n }\n if (output[_fFi] != null) {\n contents[_FFi] = (0, import_smithy_client.expectString)(output[_fFi]);\n }\n if (output[_aEC] != null) {\n contents[_AEC] = (0, import_smithy_client.strictParseInt32)(output[_aEC]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAccessScopeAnalysis\");\nvar de_NetworkInsightsAccessScopeAnalysisList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsAccessScopeAnalysis(entry, context);\n });\n}, \"de_NetworkInsightsAccessScopeAnalysisList\");\nvar de_NetworkInsightsAccessScopeContent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASI] != null) {\n contents[_NIASI] = (0, import_smithy_client.expectString)(output[_nIASI]);\n }\n if (output.matchPathSet === \"\") {\n contents[_MP] = [];\n } else if (output[_mPSa] != null && output[_mPSa][_i] != null) {\n contents[_MP] = de_AccessScopePathList((0, import_smithy_client.getArrayIfSingleItem)(output[_mPSa][_i]), context);\n }\n if (output.excludePathSet === \"\") {\n contents[_EP] = [];\n } else if (output[_ePS] != null && output[_ePS][_i] != null) {\n contents[_EP] = de_AccessScopePathList((0, import_smithy_client.getArrayIfSingleItem)(output[_ePS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAccessScopeContent\");\nvar de_NetworkInsightsAccessScopeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsAccessScope(entry, context);\n });\n}, \"de_NetworkInsightsAccessScopeList\");\nvar de_NetworkInsightsAnalysis = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIAI] != null) {\n contents[_NIAI] = (0, import_smithy_client.expectString)(output[_nIAI]);\n }\n if (output[_nIAA] != null) {\n contents[_NIAA] = (0, import_smithy_client.expectString)(output[_nIAA]);\n }\n if (output[_nIPI] != null) {\n contents[_NIPI] = (0, import_smithy_client.expectString)(output[_nIPI]);\n }\n if (output.additionalAccountSet === \"\") {\n contents[_AAd] = [];\n } else if (output[_aASd] != null && output[_aASd][_i] != null) {\n contents[_AAd] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aASd][_i]), context);\n }\n if (output.filterInArnSet === \"\") {\n contents[_FIA] = [];\n } else if (output[_fIAS] != null && output[_fIAS][_i] != null) {\n contents[_FIA] = de_ArnList((0, import_smithy_client.getArrayIfSingleItem)(output[_fIAS][_i]), context);\n }\n if (output.filterOutArnSet === \"\") {\n contents[_FOA] = [];\n } else if (output[_fOAS] != null && output[_fOAS][_i] != null) {\n contents[_FOA] = de_ArnList((0, import_smithy_client.getArrayIfSingleItem)(output[_fOAS][_i]), context);\n }\n if (output[_sD] != null) {\n contents[_SD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sD]));\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_wM] != null) {\n contents[_WM] = (0, import_smithy_client.expectString)(output[_wM]);\n }\n if (output[_nPF] != null) {\n contents[_NPF] = (0, import_smithy_client.parseBoolean)(output[_nPF]);\n }\n if (output.forwardPathComponentSet === \"\") {\n contents[_FPC] = [];\n } else if (output[_fPCS] != null && output[_fPCS][_i] != null) {\n contents[_FPC] = de_PathComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_fPCS][_i]), context);\n }\n if (output.returnPathComponentSet === \"\") {\n contents[_RPC] = [];\n } else if (output[_rPCS] != null && output[_rPCS][_i] != null) {\n contents[_RPC] = de_PathComponentList((0, import_smithy_client.getArrayIfSingleItem)(output[_rPCS][_i]), context);\n }\n if (output.explanationSet === \"\") {\n contents[_Ex] = [];\n } else if (output[_eSx] != null && output[_eSx][_i] != null) {\n contents[_Ex] = de_ExplanationList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSx][_i]), context);\n }\n if (output.alternatePathHintSet === \"\") {\n contents[_APH] = [];\n } else if (output[_aPHS] != null && output[_aPHS][_i] != null) {\n contents[_APH] = de_AlternatePathHintList((0, import_smithy_client.getArrayIfSingleItem)(output[_aPHS][_i]), context);\n }\n if (output.suggestedAccountSet === \"\") {\n contents[_SAu] = [];\n } else if (output[_sASu] != null && output[_sASu][_i] != null) {\n contents[_SAu] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sASu][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_NetworkInsightsAnalysis\");\nvar de_NetworkInsightsAnalysisList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsAnalysis(entry, context);\n });\n}, \"de_NetworkInsightsAnalysisList\");\nvar de_NetworkInsightsPath = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIPI] != null) {\n contents[_NIPI] = (0, import_smithy_client.expectString)(output[_nIPI]);\n }\n if (output[_nIPA] != null) {\n contents[_NIPA] = (0, import_smithy_client.expectString)(output[_nIPA]);\n }\n if (output[_cDre] != null) {\n contents[_CDrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cDre]));\n }\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_d] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_d]);\n }\n if (output[_sA] != null) {\n contents[_SAour] = (0, import_smithy_client.expectString)(output[_sA]);\n }\n if (output[_dA] != null) {\n contents[_DAesti] = (0, import_smithy_client.expectString)(output[_dA]);\n }\n if (output[_sIo] != null) {\n contents[_SIo] = (0, import_smithy_client.expectString)(output[_sIo]);\n }\n if (output[_dIes] != null) {\n contents[_DIest] = (0, import_smithy_client.expectString)(output[_dIes]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_dPes] != null) {\n contents[_DPe] = (0, import_smithy_client.strictParseInt32)(output[_dPes]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_fAS] != null) {\n contents[_FAS] = de_PathFilter(output[_fAS], context);\n }\n if (output[_fAD] != null) {\n contents[_FAD] = de_PathFilter(output[_fAD], context);\n }\n return contents;\n}, \"de_NetworkInsightsPath\");\nvar de_NetworkInsightsPathList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInsightsPath(entry, context);\n });\n}, \"de_NetworkInsightsPathList\");\nvar de_NetworkInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_NetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_at] != null) {\n contents[_Att] = de_NetworkInterfaceAttachment(output[_at], context);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_cTC] != null) {\n contents[_CTC] = de_ConnectionTrackingConfiguration(output[_cTC], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_iTnt] != null) {\n contents[_ITn] = (0, import_smithy_client.expectString)(output[_iTnt]);\n }\n if (output.ipv6AddressesSet === \"\") {\n contents[_IA] = [];\n } else if (output[_iASp] != null && output[_iASp][_i] != null) {\n contents[_IA] = de_NetworkInterfaceIpv6AddressesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iASp][_i]), context);\n }\n if (output[_mAa] != null) {\n contents[_MAa] = (0, import_smithy_client.expectString)(output[_mAa]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n if (output.privateIpAddressesSet === \"\") {\n contents[_PIA] = [];\n } else if (output[_pIAS] != null && output[_pIAS][_i] != null) {\n contents[_PIA] = de_NetworkInterfacePrivateIpAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIAS][_i]), context);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_Ipv4PrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_Ipv6PrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_rIeq] != null) {\n contents[_RIeq] = (0, import_smithy_client.expectString)(output[_rIeq]);\n }\n if (output[_rM] != null) {\n contents[_RMe] = (0, import_smithy_client.parseBoolean)(output[_rM]);\n }\n if (output[_sDC] != null) {\n contents[_SDC] = (0, import_smithy_client.parseBoolean)(output[_sDC]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output.tagSet === \"\") {\n contents[_TSag] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_TSag] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_dAIT] != null) {\n contents[_DAIT] = (0, import_smithy_client.parseBoolean)(output[_dAIT]);\n }\n if (output[_iN] != null) {\n contents[_IN] = (0, import_smithy_client.parseBoolean)(output[_iN]);\n }\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n return contents;\n}, \"de_NetworkInterface\");\nvar de_NetworkInterfaceAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aI] != null) {\n contents[_AIl] = (0, import_smithy_client.expectString)(output[_aI]);\n }\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iOIp] != null) {\n contents[_IOI] = (0, import_smithy_client.expectString)(output[_iOIp]);\n }\n if (output[_pDNu] != null) {\n contents[_PDNu] = (0, import_smithy_client.expectString)(output[_pDNu]);\n }\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_cOI] != null) {\n contents[_COI] = (0, import_smithy_client.expectString)(output[_cOI]);\n }\n if (output[_cI] != null) {\n contents[_CIa] = (0, import_smithy_client.expectString)(output[_cI]);\n }\n return contents;\n}, \"de_NetworkInterfaceAssociation\");\nvar de_NetworkInterfaceAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_dIe] != null) {\n contents[_DIev] = (0, import_smithy_client.strictParseInt32)(output[_dIe]);\n }\n if (output[_nCI] != null) {\n contents[_NCI] = (0, import_smithy_client.strictParseInt32)(output[_nCI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iOIn] != null) {\n contents[_IOIn] = (0, import_smithy_client.expectString)(output[_iOIn]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_eSS] != null) {\n contents[_ESS] = de_AttachmentEnaSrdSpecification(output[_eSS], context);\n }\n if (output[_eQC] != null) {\n contents[_EQC] = (0, import_smithy_client.strictParseInt32)(output[_eQC]);\n }\n return contents;\n}, \"de_NetworkInterfaceAttachment\");\nvar de_NetworkInterfaceCount = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_NetworkInterfaceCount\");\nvar de_NetworkInterfaceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_NetworkInterfaceIdSet\");\nvar de_NetworkInterfaceIpv6Address = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iApv] != null) {\n contents[_IApv] = (0, import_smithy_client.expectString)(output[_iApv]);\n }\n if (output[_iPI] != null) {\n contents[_IPIs] = (0, import_smithy_client.parseBoolean)(output[_iPI]);\n }\n return contents;\n}, \"de_NetworkInterfaceIpv6Address\");\nvar de_NetworkInterfaceIpv6AddressesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterfaceIpv6Address(entry, context);\n });\n}, \"de_NetworkInterfaceIpv6AddressesList\");\nvar de_NetworkInterfaceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterface(entry, context);\n });\n}, \"de_NetworkInterfaceList\");\nvar de_NetworkInterfacePermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIPIe] != null) {\n contents[_NIPIe] = (0, import_smithy_client.expectString)(output[_nIPIe]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_aAI] != null) {\n contents[_AAI] = (0, import_smithy_client.expectString)(output[_aAI]);\n }\n if (output[_aSw] != null) {\n contents[_ASw] = (0, import_smithy_client.expectString)(output[_aSw]);\n }\n if (output[_per] != null) {\n contents[_Pe] = (0, import_smithy_client.expectString)(output[_per]);\n }\n if (output[_pSe] != null) {\n contents[_PSer] = de_NetworkInterfacePermissionState(output[_pSe], context);\n }\n return contents;\n}, \"de_NetworkInterfacePermission\");\nvar de_NetworkInterfacePermissionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterfacePermission(entry, context);\n });\n}, \"de_NetworkInterfacePermissionList\");\nvar de_NetworkInterfacePermissionState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_NetworkInterfacePermissionState\");\nvar de_NetworkInterfacePrivateIpAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ass] != null) {\n contents[_Asso] = de_NetworkInterfaceAssociation(output[_ass], context);\n }\n if (output[_prim] != null) {\n contents[_Prim] = (0, import_smithy_client.parseBoolean)(output[_prim]);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_NetworkInterfacePrivateIpAddress\");\nvar de_NetworkInterfacePrivateIpAddressList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NetworkInterfacePrivateIpAddress(entry, context);\n });\n}, \"de_NetworkInterfacePrivateIpAddressList\");\nvar de_NetworkNodesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_NetworkNodesList\");\nvar de_NeuronDeviceCoreInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_ve] != null) {\n contents[_V] = (0, import_smithy_client.strictParseInt32)(output[_ve]);\n }\n return contents;\n}, \"de_NeuronDeviceCoreInfo\");\nvar de_NeuronDeviceInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_cIor] != null) {\n contents[_CIor] = de_NeuronDeviceCoreInfo(output[_cIor], context);\n }\n if (output[_mIe] != null) {\n contents[_MIe] = de_NeuronDeviceMemoryInfo(output[_mIe], context);\n }\n return contents;\n}, \"de_NeuronDeviceInfo\");\nvar de_NeuronDeviceInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NeuronDeviceInfo(entry, context);\n });\n}, \"de_NeuronDeviceInfoList\");\nvar de_NeuronDeviceMemoryInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIMB] != null) {\n contents[_SIMB] = (0, import_smithy_client.strictParseInt32)(output[_sIMB]);\n }\n return contents;\n}, \"de_NeuronDeviceMemoryInfo\");\nvar de_NeuronInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.neuronDevices === \"\") {\n contents[_NDe] = [];\n } else if (output[_nDe] != null && output[_nDe][_i] != null) {\n contents[_NDe] = de_NeuronDeviceInfoList((0, import_smithy_client.getArrayIfSingleItem)(output[_nDe][_i]), context);\n }\n if (output[_tNDMIMB] != null) {\n contents[_TNDMIMB] = (0, import_smithy_client.strictParseInt32)(output[_tNDMIMB]);\n }\n return contents;\n}, \"de_NeuronInfo\");\nvar de_NitroTpmInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.supportedVersions === \"\") {\n contents[_SVu] = [];\n } else if (output[_sVu] != null && output[_sVu][_i] != null) {\n contents[_SVu] = de_NitroTpmSupportedVersionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_sVu][_i]), context);\n }\n return contents;\n}, \"de_NitroTpmInfo\");\nvar de_NitroTpmSupportedVersionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_NitroTpmSupportedVersionsList\");\nvar de_OccurrenceDaySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_OccurrenceDaySet\");\nvar de_OidcOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_is] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_is]);\n }\n if (output[_aE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_aE]);\n }\n if (output[_tEo] != null) {\n contents[_TEo] = (0, import_smithy_client.expectString)(output[_tEo]);\n }\n if (output[_uIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_uIE]);\n }\n if (output[_cIli] != null) {\n contents[_CIl] = (0, import_smithy_client.expectString)(output[_cIli]);\n }\n if (output[_cSl] != null) {\n contents[_CSl] = (0, import_smithy_client.expectString)(output[_cSl]);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n return contents;\n}, \"de_OidcOptions\");\nvar de_OnDemandOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_cRO] != null) {\n contents[_CRO] = de_CapacityReservationOptions(output[_cRO], context);\n }\n if (output[_sITi] != null) {\n contents[_SITi] = (0, import_smithy_client.parseBoolean)(output[_sITi]);\n }\n if (output[_sAZ] != null) {\n contents[_SAZ] = (0, import_smithy_client.parseBoolean)(output[_sAZ]);\n }\n if (output[_mTC] != null) {\n contents[_MTC] = (0, import_smithy_client.strictParseInt32)(output[_mTC]);\n }\n if (output[_mTP] != null) {\n contents[_MTP] = (0, import_smithy_client.expectString)(output[_mTP]);\n }\n return contents;\n}, \"de_OnDemandOptions\");\nvar de_OperatorResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mana] != null) {\n contents[_Mana] = (0, import_smithy_client.parseBoolean)(output[_mana]);\n }\n if (output[_p] != null) {\n contents[_Prin] = (0, import_smithy_client.expectString)(output[_p]);\n }\n return contents;\n}, \"de_OperatorResponse\");\nvar de_OutpostLag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_oLI] != null) {\n contents[_OLI] = (0, import_smithy_client.expectString)(output[_oLI]);\n }\n if (output.localGatewayVirtualInterfaceIdSet === \"\") {\n contents[_LGVIIo] = [];\n } else if (output[_lGVIIS] != null && output[_lGVIIS][_i] != null) {\n contents[_LGVIIo] = de_LocalGatewayVirtualInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_lGVIIS][_i]), context);\n }\n if (output.serviceLinkVirtualInterfaceIdSet === \"\") {\n contents[_SLVII] = [];\n } else if (output[_sLVIIS] != null && output[_sLVIIS][_i] != null) {\n contents[_SLVII] = de_ServiceLinkVirtualInterfaceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sLVIIS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_OutpostLag\");\nvar de_OutpostLagSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_OutpostLag(entry, context);\n });\n}, \"de_OutpostLagSet\");\nvar de_PacketHeaderStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.sourceAddressSet === \"\") {\n contents[_SAo] = [];\n } else if (output[_sAS] != null && output[_sAS][_i] != null) {\n contents[_SAo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sAS][_i]), context);\n }\n if (output.destinationAddressSet === \"\") {\n contents[_DAes] = [];\n } else if (output[_dAS] != null && output[_dAS][_i] != null) {\n contents[_DAes] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dAS][_i]), context);\n }\n if (output.sourcePortSet === \"\") {\n contents[_SPo] = [];\n } else if (output[_sPS] != null && output[_sPS][_i] != null) {\n contents[_SPo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPS][_i]), context);\n }\n if (output.destinationPortSet === \"\") {\n contents[_DPes] = [];\n } else if (output[_dPS] != null && output[_dPS][_i] != null) {\n contents[_DPes] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPS][_i]), context);\n }\n if (output.sourcePrefixListSet === \"\") {\n contents[_SPL] = [];\n } else if (output[_sPLS] != null && output[_sPLS][_i] != null) {\n contents[_SPL] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sPLS][_i]), context);\n }\n if (output.destinationPrefixListSet === \"\") {\n contents[_DPLe] = [];\n } else if (output[_dPLS] != null && output[_dPLS][_i] != null) {\n contents[_DPLe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dPLS][_i]), context);\n }\n if (output.protocolSet === \"\") {\n contents[_Pro] = [];\n } else if (output[_pSro] != null && output[_pSro][_i] != null) {\n contents[_Pro] = de_ProtocolList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSro][_i]), context);\n }\n return contents;\n}, \"de_PacketHeaderStatement\");\nvar de_PathComponent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sNe] != null) {\n contents[_SNeq] = (0, import_smithy_client.strictParseInt32)(output[_sNe]);\n }\n if (output[_aRc] != null) {\n contents[_ARcl] = de_AnalysisAclRule(output[_aRc], context);\n }\n if (output[_aTtt] != null) {\n contents[_ATtta] = de_AnalysisComponent(output[_aTtt], context);\n }\n if (output[_c] != null) {\n contents[_Com] = de_AnalysisComponent(output[_c], context);\n }\n if (output[_dV] != null) {\n contents[_DVest] = de_AnalysisComponent(output[_dV], context);\n }\n if (output[_oH] != null) {\n contents[_OH] = de_AnalysisPacketHeader(output[_oH], context);\n }\n if (output[_iHn] != null) {\n contents[_IHn] = de_AnalysisPacketHeader(output[_iHn], context);\n }\n if (output[_rTR] != null) {\n contents[_RTR] = de_AnalysisRouteTableRoute(output[_rTR], context);\n }\n if (output[_sGR] != null) {\n contents[_SGRe] = de_AnalysisSecurityGroupRule(output[_sGR], context);\n }\n if (output[_sV] != null) {\n contents[_SVo] = de_AnalysisComponent(output[_sV], context);\n }\n if (output[_su] != null) {\n contents[_Su] = de_AnalysisComponent(output[_su], context);\n }\n if (output[_vp] != null) {\n contents[_Vp] = de_AnalysisComponent(output[_vp], context);\n }\n if (output.additionalDetailSet === \"\") {\n contents[_ADd] = [];\n } else if (output[_aDS] != null && output[_aDS][_i] != null) {\n contents[_ADd] = de_AdditionalDetailList((0, import_smithy_client.getArrayIfSingleItem)(output[_aDS][_i]), context);\n }\n if (output[_tG] != null) {\n contents[_TGr] = de_AnalysisComponent(output[_tG], context);\n }\n if (output[_tGRTR] != null) {\n contents[_TGRTR] = de_TransitGatewayRouteTableRoute(output[_tGRTR], context);\n }\n if (output.explanationSet === \"\") {\n contents[_Ex] = [];\n } else if (output[_eSx] != null && output[_eSx][_i] != null) {\n contents[_Ex] = de_ExplanationList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSx][_i]), context);\n }\n if (output[_eLBL] != null) {\n contents[_ELBL] = de_AnalysisComponent(output[_eLBL], context);\n }\n if (output[_fSR] != null) {\n contents[_FSRi] = de_FirewallStatelessRule(output[_fSR], context);\n }\n if (output[_fSRi] != null) {\n contents[_FSRir] = de_FirewallStatefulRule(output[_fSRi], context);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n return contents;\n}, \"de_PathComponent\");\nvar de_PathComponentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PathComponent(entry, context);\n });\n}, \"de_PathComponentList\");\nvar de_PathFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sAo] != null) {\n contents[_SAou] = (0, import_smithy_client.expectString)(output[_sAo]);\n }\n if (output[_sPR] != null) {\n contents[_SPR] = de_FilterPortRange(output[_sPR], context);\n }\n if (output[_dAe] != null) {\n contents[_DAest] = (0, import_smithy_client.expectString)(output[_dAe]);\n }\n if (output[_dPR] != null) {\n contents[_DPR] = de_FilterPortRange(output[_dPR], context);\n }\n return contents;\n}, \"de_PathFilter\");\nvar de_PathStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pHS] != null) {\n contents[_PHS] = de_PacketHeaderStatement(output[_pHS], context);\n }\n if (output[_rSeso] != null) {\n contents[_RSe] = de_ResourceStatement(output[_rSeso], context);\n }\n return contents;\n}, \"de_PathStatement\");\nvar de_PciId = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DIevi] != null) {\n contents[_DIevi] = (0, import_smithy_client.expectString)(output[_DIevi]);\n }\n if (output[_VIe] != null) {\n contents[_VIe] = (0, import_smithy_client.expectString)(output[_VIe]);\n }\n if (output[_SIubs] != null) {\n contents[_SIubs] = (0, import_smithy_client.expectString)(output[_SIubs]);\n }\n if (output[_SVI] != null) {\n contents[_SVI] = (0, import_smithy_client.expectString)(output[_SVI]);\n }\n return contents;\n}, \"de_PciId\");\nvar de_PeeringAttachmentStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_PeeringAttachmentStatus\");\nvar de_PeeringConnectionOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aDRFRV] != null) {\n contents[_ADRFRV] = (0, import_smithy_client.parseBoolean)(output[_aDRFRV]);\n }\n if (output[_aEFLCLTRV] != null) {\n contents[_AEFLCLTRV] = (0, import_smithy_client.parseBoolean)(output[_aEFLCLTRV]);\n }\n if (output[_aEFLVTRCL] != null) {\n contents[_AEFLVTRCL] = (0, import_smithy_client.parseBoolean)(output[_aEFLVTRCL]);\n }\n return contents;\n}, \"de_PeeringConnectionOptions\");\nvar de_PeeringTgwInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cNIo] != null) {\n contents[_CNIor] = (0, import_smithy_client.expectString)(output[_cNIo]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n return contents;\n}, \"de_PeeringTgwInfo\");\nvar de_PerformanceFactorReference = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n return contents;\n}, \"de_PerformanceFactorReference\");\nvar de_PerformanceFactorReferenceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PerformanceFactorReference(entry, context);\n });\n}, \"de_PerformanceFactorReferenceSet\");\nvar de_Phase1DHGroupNumbersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase1DHGroupNumbersListValue(entry, context);\n });\n}, \"de_Phase1DHGroupNumbersList\");\nvar de_Phase1DHGroupNumbersListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.strictParseInt32)(output[_v]);\n }\n return contents;\n}, \"de_Phase1DHGroupNumbersListValue\");\nvar de_Phase1EncryptionAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase1EncryptionAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase1EncryptionAlgorithmsList\");\nvar de_Phase1EncryptionAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase1EncryptionAlgorithmsListValue\");\nvar de_Phase1IntegrityAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase1IntegrityAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase1IntegrityAlgorithmsList\");\nvar de_Phase1IntegrityAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase1IntegrityAlgorithmsListValue\");\nvar de_Phase2DHGroupNumbersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase2DHGroupNumbersListValue(entry, context);\n });\n}, \"de_Phase2DHGroupNumbersList\");\nvar de_Phase2DHGroupNumbersListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.strictParseInt32)(output[_v]);\n }\n return contents;\n}, \"de_Phase2DHGroupNumbersListValue\");\nvar de_Phase2EncryptionAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase2EncryptionAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase2EncryptionAlgorithmsList\");\nvar de_Phase2EncryptionAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase2EncryptionAlgorithmsListValue\");\nvar de_Phase2IntegrityAlgorithmsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Phase2IntegrityAlgorithmsListValue(entry, context);\n });\n}, \"de_Phase2IntegrityAlgorithmsList\");\nvar de_Phase2IntegrityAlgorithmsListValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Phase2IntegrityAlgorithmsListValue\");\nvar de_Placement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_af] != null) {\n contents[_Af] = (0, import_smithy_client.expectString)(output[_af]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_pN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_pN]);\n }\n if (output[_hI] != null) {\n contents[_HIo] = (0, import_smithy_client.expectString)(output[_hI]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n if (output[_sDp] != null) {\n contents[_SDp] = (0, import_smithy_client.expectString)(output[_sDp]);\n }\n if (output[_hRGA] != null) {\n contents[_HRGA] = (0, import_smithy_client.expectString)(output[_hRGA]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n return contents;\n}, \"de_Placement\");\nvar de_PlacementGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_str] != null) {\n contents[_Str] = (0, import_smithy_client.expectString)(output[_str]);\n }\n if (output[_pCa] != null) {\n contents[_PCa] = (0, import_smithy_client.strictParseInt32)(output[_pCa]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_gA] != null) {\n contents[_GA] = (0, import_smithy_client.expectString)(output[_gA]);\n }\n if (output[_sLp] != null) {\n contents[_SL] = (0, import_smithy_client.expectString)(output[_sLp]);\n }\n return contents;\n}, \"de_PlacementGroup\");\nvar de_PlacementGroupInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.supportedStrategies === \"\") {\n contents[_SSu] = [];\n } else if (output[_sSup] != null && output[_sSup][_i] != null) {\n contents[_SSu] = de_PlacementGroupStrategyList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSup][_i]), context);\n }\n return contents;\n}, \"de_PlacementGroupInfo\");\nvar de_PlacementGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PlacementGroup(entry, context);\n });\n}, \"de_PlacementGroupList\");\nvar de_PlacementGroupStrategyList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_PlacementGroupStrategyList\");\nvar de_PlacementResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n return contents;\n}, \"de_PlacementResponse\");\nvar de_PoolCidrBlock = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pCB] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_pCB]);\n }\n return contents;\n}, \"de_PoolCidrBlock\");\nvar de_PoolCidrBlocksSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PoolCidrBlock(entry, context);\n });\n}, \"de_PoolCidrBlocksSet\");\nvar de_PortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fr] != null) {\n contents[_Fr] = (0, import_smithy_client.strictParseInt32)(output[_fr]);\n }\n if (output[_to] != null) {\n contents[_To] = (0, import_smithy_client.strictParseInt32)(output[_to]);\n }\n return contents;\n}, \"de_PortRange\");\nvar de_PortRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PortRange(entry, context);\n });\n}, \"de_PortRangeList\");\nvar de_PrefixList = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.cidrSet === \"\") {\n contents[_Ci] = [];\n } else if (output[_cS] != null && output[_cS][_i] != null) {\n contents[_Ci] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_cS][_i]), context);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_pLN] != null) {\n contents[_PLN] = (0, import_smithy_client.expectString)(output[_pLN]);\n }\n return contents;\n}, \"de_PrefixList\");\nvar de_PrefixListAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rO] != null) {\n contents[_ROe] = (0, import_smithy_client.expectString)(output[_rO]);\n }\n return contents;\n}, \"de_PrefixListAssociation\");\nvar de_PrefixListAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixListAssociation(entry, context);\n });\n}, \"de_PrefixListAssociationSet\");\nvar de_PrefixListEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n return contents;\n}, \"de_PrefixListEntry\");\nvar de_PrefixListEntrySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixListEntry(entry, context);\n });\n}, \"de_PrefixListEntrySet\");\nvar de_PrefixListId = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n return contents;\n}, \"de_PrefixListId\");\nvar de_PrefixListIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixListId(entry, context);\n });\n}, \"de_PrefixListIdList\");\nvar de_PrefixListIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_PrefixListIdSet\");\nvar de_PrefixListSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrefixList(entry, context);\n });\n}, \"de_PrefixListSet\");\nvar de_PriceSchedule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_act] != null) {\n contents[_Act] = (0, import_smithy_client.parseBoolean)(output[_act]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_pric] != null) {\n contents[_Pric] = (0, import_smithy_client.strictParseFloat)(output[_pric]);\n }\n if (output[_te] != null) {\n contents[_Ter] = (0, import_smithy_client.strictParseLong)(output[_te]);\n }\n return contents;\n}, \"de_PriceSchedule\");\nvar de_PriceScheduleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PriceSchedule(entry, context);\n });\n}, \"de_PriceScheduleList\");\nvar de_PricingDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseInt32)(output[_cou]);\n }\n if (output[_pric] != null) {\n contents[_Pric] = (0, import_smithy_client.strictParseFloat)(output[_pric]);\n }\n return contents;\n}, \"de_PricingDetail\");\nvar de_PricingDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PricingDetail(entry, context);\n });\n}, \"de_PricingDetailsList\");\nvar de_PrincipalIdFormat = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n if (output.statusSet === \"\") {\n contents[_Status] = [];\n } else if (output[_sSt] != null && output[_sSt][_i] != null) {\n contents[_Status] = de_IdFormatList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSt][_i]), context);\n }\n return contents;\n}, \"de_PrincipalIdFormat\");\nvar de_PrincipalIdFormatList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrincipalIdFormat(entry, context);\n });\n}, \"de_PrincipalIdFormatList\");\nvar de_PrivateDnsDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n return contents;\n}, \"de_PrivateDnsDetails\");\nvar de_PrivateDnsDetailsSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrivateDnsDetails(entry, context);\n });\n}, \"de_PrivateDnsDetailsSet\");\nvar de_PrivateDnsNameConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n return contents;\n}, \"de_PrivateDnsNameConfiguration\");\nvar de_PrivateDnsNameOptionsOnLaunch = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hTo] != null) {\n contents[_HTo] = (0, import_smithy_client.expectString)(output[_hTo]);\n }\n if (output[_eRNDAR] != null) {\n contents[_ERNDAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAR]);\n }\n if (output[_eRNDAAAAR] != null) {\n contents[_ERNDAAAAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAAAAR]);\n }\n return contents;\n}, \"de_PrivateDnsNameOptionsOnLaunch\");\nvar de_PrivateDnsNameOptionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hTo] != null) {\n contents[_HTo] = (0, import_smithy_client.expectString)(output[_hTo]);\n }\n if (output[_eRNDAR] != null) {\n contents[_ERNDAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAR]);\n }\n if (output[_eRNDAAAAR] != null) {\n contents[_ERNDAAAAR] = (0, import_smithy_client.parseBoolean)(output[_eRNDAAAAR]);\n }\n return contents;\n}, \"de_PrivateDnsNameOptionsResponse\");\nvar de_PrivateIpAddressSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_prim] != null) {\n contents[_Prim] = (0, import_smithy_client.parseBoolean)(output[_prim]);\n }\n if (output[_pIA] != null) {\n contents[_PIAr] = (0, import_smithy_client.expectString)(output[_pIA]);\n }\n return contents;\n}, \"de_PrivateIpAddressSpecification\");\nvar de_PrivateIpAddressSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PrivateIpAddressSpecification(entry, context);\n });\n}, \"de_PrivateIpAddressSpecificationList\");\nvar de_ProcessorInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.supportedArchitectures === \"\") {\n contents[_SAup] = [];\n } else if (output[_sAu] != null && output[_sAu][_i] != null) {\n contents[_SAup] = de_ArchitectureTypeList((0, import_smithy_client.getArrayIfSingleItem)(output[_sAu][_i]), context);\n }\n if (output[_sCSIG] != null) {\n contents[_SCSIG] = (0, import_smithy_client.strictParseFloat)(output[_sCSIG]);\n }\n if (output.supportedFeatures === \"\") {\n contents[_SF] = [];\n } else if (output[_sF] != null && output[_sF][_i] != null) {\n contents[_SF] = de_SupportedAdditionalProcessorFeatureList((0, import_smithy_client.getArrayIfSingleItem)(output[_sF][_i]), context);\n }\n if (output[_man] != null) {\n contents[_Man] = (0, import_smithy_client.expectString)(output[_man]);\n }\n return contents;\n}, \"de_ProcessorInfo\");\nvar de_ProductCode = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pCr] != null) {\n contents[_PCIr] = (0, import_smithy_client.expectString)(output[_pCr]);\n }\n if (output[_ty] != null) {\n contents[_PCT] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n return contents;\n}, \"de_ProductCode\");\nvar de_ProductCodeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ProductCode(entry, context);\n });\n}, \"de_ProductCodeList\");\nvar de_PropagatingVgw = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n return contents;\n}, \"de_PropagatingVgw\");\nvar de_PropagatingVgwList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PropagatingVgw(entry, context);\n });\n}, \"de_PropagatingVgwList\");\nvar de_ProtocolIntList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_ProtocolIntList\");\nvar de_ProtocolList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ProtocolList\");\nvar de_ProvisionByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_ProvisionByoipCidrResult\");\nvar de_ProvisionedBandwidth = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pTr] != null) {\n contents[_PTro] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_pTr]));\n }\n if (output[_prov] != null) {\n contents[_Prov] = (0, import_smithy_client.expectString)(output[_prov]);\n }\n if (output[_rTeq] != null) {\n contents[_RTeq] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rTeq]));\n }\n if (output[_req] != null) {\n contents[_Req] = (0, import_smithy_client.expectString)(output[_req]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_ProvisionedBandwidth\");\nvar de_ProvisionIpamByoasnResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_b] != null) {\n contents[_Byo] = de_Byoasn(output[_b], context);\n }\n return contents;\n}, \"de_ProvisionIpamByoasnResult\");\nvar de_ProvisionIpamPoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPC] != null) {\n contents[_IPCpa] = de_IpamPoolCidr(output[_iPC], context);\n }\n return contents;\n}, \"de_ProvisionIpamPoolCidrResult\");\nvar de_ProvisionPublicIpv4PoolCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output[_pAR] != null) {\n contents[_PAR] = de_PublicIpv4PoolRange(output[_pAR], context);\n }\n return contents;\n}, \"de_ProvisionPublicIpv4PoolCidrResult\");\nvar de_PtrUpdateStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_rea] != null) {\n contents[_Rea] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n return contents;\n}, \"de_PtrUpdateStatus\");\nvar de_PublicIpv4Pool = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pIo] != null) {\n contents[_PIo] = (0, import_smithy_client.expectString)(output[_pIo]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.poolAddressRangeSet === \"\") {\n contents[_PARo] = [];\n } else if (output[_pARS] != null && output[_pARS][_i] != null) {\n contents[_PARo] = de_PublicIpv4PoolRangeSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pARS][_i]), context);\n }\n if (output[_tAC] != null) {\n contents[_TAC] = (0, import_smithy_client.strictParseInt32)(output[_tAC]);\n }\n if (output[_tAAC] != null) {\n contents[_TAAC] = (0, import_smithy_client.strictParseInt32)(output[_tAAC]);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_PublicIpv4Pool\");\nvar de_PublicIpv4PoolRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fAi] != null) {\n contents[_FAi] = (0, import_smithy_client.expectString)(output[_fAi]);\n }\n if (output[_lAa] != null) {\n contents[_LAa] = (0, import_smithy_client.expectString)(output[_lAa]);\n }\n if (output[_aCd] != null) {\n contents[_ACd] = (0, import_smithy_client.strictParseInt32)(output[_aCd]);\n }\n if (output[_aAC] != null) {\n contents[_AACv] = (0, import_smithy_client.strictParseInt32)(output[_aAC]);\n }\n return contents;\n}, \"de_PublicIpv4PoolRange\");\nvar de_PublicIpv4PoolRangeSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PublicIpv4PoolRange(entry, context);\n });\n}, \"de_PublicIpv4PoolRangeSet\");\nvar de_PublicIpv4PoolSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PublicIpv4Pool(entry, context);\n });\n}, \"de_PublicIpv4PoolSet\");\nvar de_Purchase = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseInt32)(output[_du]);\n }\n if (output.hostIdSet === \"\") {\n contents[_HIS] = [];\n } else if (output[_hIS] != null && output[_hIS][_i] != null) {\n contents[_HIS] = de_ResponseHostIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_hIS][_i]), context);\n }\n if (output[_hRI] != null) {\n contents[_HRI] = (0, import_smithy_client.expectString)(output[_hRI]);\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iF] != null) {\n contents[_IF] = (0, import_smithy_client.expectString)(output[_iF]);\n }\n if (output[_pO] != null) {\n contents[_PO] = (0, import_smithy_client.expectString)(output[_pO]);\n }\n if (output[_uP] != null) {\n contents[_UPp] = (0, import_smithy_client.expectString)(output[_uP]);\n }\n return contents;\n}, \"de_Purchase\");\nvar de_PurchaseCapacityBlockExtensionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.capacityBlockExtensionSet === \"\") {\n contents[_CBE] = [];\n } else if (output[_cBESa] != null && output[_cBESa][_i] != null) {\n contents[_CBE] = de_CapacityBlockExtensionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBESa][_i]), context);\n }\n return contents;\n}, \"de_PurchaseCapacityBlockExtensionResult\");\nvar de_PurchaseCapacityBlockResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cR] != null) {\n contents[_CRapa] = de_CapacityReservation(output[_cR], context);\n }\n return contents;\n}, \"de_PurchaseCapacityBlockResult\");\nvar de_PurchasedScheduledInstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ScheduledInstance(entry, context);\n });\n}, \"de_PurchasedScheduledInstanceSet\");\nvar de_PurchaseHostReservationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output.purchase === \"\") {\n contents[_Pur] = [];\n } else if (output[_pur] != null && output[_pur][_i] != null) {\n contents[_Pur] = de_PurchaseSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pur][_i]), context);\n }\n if (output[_tHP] != null) {\n contents[_THP] = (0, import_smithy_client.expectString)(output[_tHP]);\n }\n if (output[_tUP] != null) {\n contents[_TUP] = (0, import_smithy_client.expectString)(output[_tUP]);\n }\n return contents;\n}, \"de_PurchaseHostReservationResult\");\nvar de_PurchaseReservedInstancesOfferingResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_PurchaseReservedInstancesOfferingResult\");\nvar de_PurchaseScheduledInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.scheduledInstanceSet === \"\") {\n contents[_SIS] = [];\n } else if (output[_sIS] != null && output[_sIS][_i] != null) {\n contents[_SIS] = de_PurchasedScheduledInstanceSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIS][_i]), context);\n }\n return contents;\n}, \"de_PurchaseScheduledInstancesResult\");\nvar de_PurchaseSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Purchase(entry, context);\n });\n}, \"de_PurchaseSet\");\nvar de_RecurringCharge = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_am] != null) {\n contents[_Am] = (0, import_smithy_client.strictParseFloat)(output[_am]);\n }\n if (output[_fre] != null) {\n contents[_Fre] = (0, import_smithy_client.expectString)(output[_fre]);\n }\n return contents;\n}, \"de_RecurringCharge\");\nvar de_RecurringChargesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RecurringCharge(entry, context);\n });\n}, \"de_RecurringChargesList\");\nvar de_ReferencedSecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_pSee] != null) {\n contents[_PSe] = (0, import_smithy_client.expectString)(output[_pSee]);\n }\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n return contents;\n}, \"de_ReferencedSecurityGroup\");\nvar de_Region = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oIS] != null) {\n contents[_OIS] = (0, import_smithy_client.expectString)(output[_oIS]);\n }\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n if (output[_rEe] != null) {\n contents[_Endp] = (0, import_smithy_client.expectString)(output[_rEe]);\n }\n return contents;\n}, \"de_Region\");\nvar de_RegionalSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rNe] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_rNe]);\n }\n if (output[_nOMA] != null) {\n contents[_NOMA] = (0, import_smithy_client.strictParseInt32)(output[_nOMA]);\n }\n if (output[_nOUA] != null) {\n contents[_NOUA] = (0, import_smithy_client.strictParseInt32)(output[_nOUA]);\n }\n return contents;\n}, \"de_RegionalSummary\");\nvar de_RegionalSummaryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RegionalSummary(entry, context);\n });\n}, \"de_RegionalSummaryList\");\nvar de_RegionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Region(entry, context);\n });\n}, \"de_RegionList\");\nvar de_RegisterImageResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n return contents;\n}, \"de_RegisterImageResult\");\nvar de_RegisterInstanceEventNotificationAttributesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iTA] != null) {\n contents[_ITA] = de_InstanceTagNotificationAttribute(output[_iTA], context);\n }\n return contents;\n}, \"de_RegisterInstanceEventNotificationAttributesResult\");\nvar de_RegisterTransitGatewayMulticastGroupMembersResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rMGM] != null) {\n contents[_RMGM] = de_TransitGatewayMulticastRegisteredGroupMembers(output[_rMGM], context);\n }\n return contents;\n}, \"de_RegisterTransitGatewayMulticastGroupMembersResult\");\nvar de_RegisterTransitGatewayMulticastGroupSourcesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rMGS] != null) {\n contents[_RMGS] = de_TransitGatewayMulticastRegisteredGroupSources(output[_rMGS], context);\n }\n return contents;\n}, \"de_RegisterTransitGatewayMulticastGroupSourcesResult\");\nvar de_RejectCapacityReservationBillingOwnershipResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_RejectCapacityReservationBillingOwnershipResult\");\nvar de_RejectTransitGatewayMulticastDomainAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_a] != null) {\n contents[_Ass] = de_TransitGatewayMulticastDomainAssociations(output[_a], context);\n }\n return contents;\n}, \"de_RejectTransitGatewayMulticastDomainAssociationsResult\");\nvar de_RejectTransitGatewayPeeringAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPA] != null) {\n contents[_TGPA] = de_TransitGatewayPeeringAttachment(output[_tGPA], context);\n }\n return contents;\n}, \"de_RejectTransitGatewayPeeringAttachmentResult\");\nvar de_RejectTransitGatewayVpcAttachmentResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGVA] != null) {\n contents[_TGVA] = de_TransitGatewayVpcAttachment(output[_tGVA], context);\n }\n return contents;\n}, \"de_RejectTransitGatewayVpcAttachmentResult\");\nvar de_RejectVpcEndpointConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemSet((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_RejectVpcEndpointConnectionsResult\");\nvar de_RejectVpcPeeringConnectionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_RejectVpcPeeringConnectionResult\");\nvar de_ReleaseHostsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.successful === \"\") {\n contents[_Suc] = [];\n } else if (output[_suc] != null && output[_suc][_i] != null) {\n contents[_Suc] = de_ResponseHostIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_suc][_i]), context);\n }\n if (output.unsuccessful === \"\") {\n contents[_Un] = [];\n } else if (output[_u] != null && output[_u][_i] != null) {\n contents[_Un] = de_UnsuccessfulItemList((0, import_smithy_client.getArrayIfSingleItem)(output[_u][_i]), context);\n }\n return contents;\n}, \"de_ReleaseHostsResult\");\nvar de_ReleaseIpamPoolAllocationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_succ] != null) {\n contents[_Succ] = (0, import_smithy_client.parseBoolean)(output[_succ]);\n }\n return contents;\n}, \"de_ReleaseIpamPoolAllocationResult\");\nvar de_ReplaceIamInstanceProfileAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iIPA] != null) {\n contents[_IIPA] = de_IamInstanceProfileAssociation(output[_iIPA], context);\n }\n return contents;\n}, \"de_ReplaceIamInstanceProfileAssociationResult\");\nvar de_ReplaceImageCriteriaInAllowedImagesSettingsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ReplaceImageCriteriaInAllowedImagesSettingsResult\");\nvar de_ReplaceNetworkAclAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nAIe] != null) {\n contents[_NAIew] = (0, import_smithy_client.expectString)(output[_nAIe]);\n }\n return contents;\n}, \"de_ReplaceNetworkAclAssociationResult\");\nvar de_ReplaceRootVolumeTask = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rRVTI] != null) {\n contents[_RRVTIe] = (0, import_smithy_client.expectString)(output[_rRVTI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_tSas] != null) {\n contents[_TSas] = (0, import_smithy_client.expectString)(output[_tSas]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectString)(output[_sT]);\n }\n if (output[_cTom] != null) {\n contents[_CTom] = (0, import_smithy_client.expectString)(output[_cTom]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_dRRV] != null) {\n contents[_DRRV] = (0, import_smithy_client.parseBoolean)(output[_dRRV]);\n }\n return contents;\n}, \"de_ReplaceRootVolumeTask\");\nvar de_ReplaceRootVolumeTasks = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReplaceRootVolumeTask(entry, context);\n });\n}, \"de_ReplaceRootVolumeTasks\");\nvar de_ReplaceRouteTableAssociationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nAIe] != null) {\n contents[_NAIew] = (0, import_smithy_client.expectString)(output[_nAIe]);\n }\n if (output[_aS] != null) {\n contents[_ASs] = de_RouteTableAssociationState(output[_aS], context);\n }\n return contents;\n}, \"de_ReplaceRouteTableAssociationResult\");\nvar de_ReplaceTransitGatewayRouteResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ro] != null) {\n contents[_Rou] = de_TransitGatewayRoute(output[_ro], context);\n }\n return contents;\n}, \"de_ReplaceTransitGatewayRouteResult\");\nvar de_ReplaceVpnTunnelResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ReplaceVpnTunnelResult\");\nvar de_RequestSpotFleetResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n return contents;\n}, \"de_RequestSpotFleetResponse\");\nvar de_RequestSpotInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.spotInstanceRequestSet === \"\") {\n contents[_SIR] = [];\n } else if (output[_sIRS] != null && output[_sIRS][_i] != null) {\n contents[_SIR] = de_SpotInstanceRequestList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIRS][_i]), context);\n }\n return contents;\n}, \"de_RequestSpotInstancesResult\");\nvar de_Reservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIese] != null) {\n contents[_RIeser] = (0, import_smithy_client.expectString)(output[_rIese]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_rIeq] != null) {\n contents[_RIeq] = (0, import_smithy_client.expectString)(output[_rIeq]);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output.instancesSet === \"\") {\n contents[_In] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_In] = de_InstanceList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_Reservation\");\nvar de_ReservationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Reservation(entry, context);\n });\n}, \"de_ReservationList\");\nvar de_ReservationValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_rTV] != null) {\n contents[_RTV] = (0, import_smithy_client.expectString)(output[_rTV]);\n }\n if (output[_rUV] != null) {\n contents[_RUV] = (0, import_smithy_client.expectString)(output[_rUV]);\n }\n return contents;\n}, \"de_ReservationValue\");\nvar de_ReservedInstanceReservationValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rVe] != null) {\n contents[_RVe] = de_ReservationValue(output[_rVe], context);\n }\n if (output[_rIIe] != null) {\n contents[_RIIese] = (0, import_smithy_client.expectString)(output[_rIIe]);\n }\n return contents;\n}, \"de_ReservedInstanceReservationValue\");\nvar de_ReservedInstanceReservationValueSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstanceReservationValue(entry, context);\n });\n}, \"de_ReservedInstanceReservationValueSet\");\nvar de_ReservedInstances = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_iTns] != null) {\n contents[_ITns] = (0, import_smithy_client.expectString)(output[_iTns]);\n }\n if (output[_oC] != null) {\n contents[_OC] = (0, import_smithy_client.expectString)(output[_oC]);\n }\n if (output[_oTf] != null) {\n contents[_OT] = (0, import_smithy_client.expectString)(output[_oTf]);\n }\n if (output.recurringCharges === \"\") {\n contents[_RCec] = [];\n } else if (output[_rCec] != null && output[_rCec][_i] != null) {\n contents[_RCec] = de_RecurringChargesList((0, import_smithy_client.getArrayIfSingleItem)(output[_rCec][_i]), context);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_star] != null) {\n contents[_Star] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_star]));\n }\n if (output[_end] != null) {\n contents[_End] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_end]));\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseLong)(output[_du]);\n }\n if (output[_uPs] != null) {\n contents[_UPs] = (0, import_smithy_client.strictParseFloat)(output[_uPs]);\n }\n if (output[_fPi] != null) {\n contents[_FPi] = (0, import_smithy_client.strictParseFloat)(output[_fPi]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_ReservedInstances\");\nvar de_ReservedInstancesConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_ReservedInstancesConfiguration\");\nvar de_ReservedInstancesId = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_ReservedInstancesId\");\nvar de_ReservedInstancesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstances(entry, context);\n });\n}, \"de_ReservedInstancesList\");\nvar de_ReservedInstancesListing = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output.instanceCounts === \"\") {\n contents[_ICn] = [];\n } else if (output[_iCn] != null && output[_iCn][_i] != null) {\n contents[_ICn] = de_InstanceCountList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCn][_i]), context);\n }\n if (output.priceSchedules === \"\") {\n contents[_PS] = [];\n } else if (output[_pSri] != null && output[_pSri][_i] != null) {\n contents[_PS] = de_PriceScheduleList((0, import_smithy_client.getArrayIfSingleItem)(output[_pSri][_i]), context);\n }\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n if (output[_rILI] != null) {\n contents[_RILI] = (0, import_smithy_client.expectString)(output[_rILI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_uDpd] != null) {\n contents[_UDpd] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uDpd]));\n }\n return contents;\n}, \"de_ReservedInstancesListing\");\nvar de_ReservedInstancesListingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesListing(entry, context);\n });\n}, \"de_ReservedInstancesListingList\");\nvar de_ReservedInstancesModification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output[_eDf] != null) {\n contents[_EDf] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eDf]));\n }\n if (output.modificationResultSet === \"\") {\n contents[_MRo] = [];\n } else if (output[_mRS] != null && output[_mRS][_i] != null) {\n contents[_MRo] = de_ReservedInstancesModificationResultList((0, import_smithy_client.getArrayIfSingleItem)(output[_mRS][_i]), context);\n }\n if (output.reservedInstancesSet === \"\") {\n contents[_RIIes] = [];\n } else if (output[_rIS] != null && output[_rIS][_i] != null) {\n contents[_RIIes] = de_ReservedIntancesIds((0, import_smithy_client.getArrayIfSingleItem)(output[_rIS][_i]), context);\n }\n if (output[_rIMI] != null) {\n contents[_RIMIe] = (0, import_smithy_client.expectString)(output[_rIMI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_uDpd] != null) {\n contents[_UDpd] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uDpd]));\n }\n return contents;\n}, \"de_ReservedInstancesModification\");\nvar de_ReservedInstancesModificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesModification(entry, context);\n });\n}, \"de_ReservedInstancesModificationList\");\nvar de_ReservedInstancesModificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n if (output[_tCa] != null) {\n contents[_TCar] = de_ReservedInstancesConfiguration(output[_tCa], context);\n }\n return contents;\n}, \"de_ReservedInstancesModificationResult\");\nvar de_ReservedInstancesModificationResultList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesModificationResult(entry, context);\n });\n}, \"de_ReservedInstancesModificationResultList\");\nvar de_ReservedInstancesOffering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cC] != null) {\n contents[_CCu] = (0, import_smithy_client.expectString)(output[_cC]);\n }\n if (output[_iTns] != null) {\n contents[_ITns] = (0, import_smithy_client.expectString)(output[_iTns]);\n }\n if (output[_mar] != null) {\n contents[_Mar] = (0, import_smithy_client.parseBoolean)(output[_mar]);\n }\n if (output[_oC] != null) {\n contents[_OC] = (0, import_smithy_client.expectString)(output[_oC]);\n }\n if (output[_oTf] != null) {\n contents[_OT] = (0, import_smithy_client.expectString)(output[_oTf]);\n }\n if (output.pricingDetailsSet === \"\") {\n contents[_PDri] = [];\n } else if (output[_pDS] != null && output[_pDS][_i] != null) {\n contents[_PDri] = de_PricingDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pDS][_i]), context);\n }\n if (output.recurringCharges === \"\") {\n contents[_RCec] = [];\n } else if (output[_rCec] != null && output[_rCec][_i] != null) {\n contents[_RCec] = de_RecurringChargesList((0, import_smithy_client.getArrayIfSingleItem)(output[_rCec][_i]), context);\n }\n if (output[_sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_sc]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_rIOI] != null) {\n contents[_RIOIe] = (0, import_smithy_client.expectString)(output[_rIOI]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_du] != null) {\n contents[_Du] = (0, import_smithy_client.strictParseLong)(output[_du]);\n }\n if (output[_uPs] != null) {\n contents[_UPs] = (0, import_smithy_client.strictParseFloat)(output[_uPs]);\n }\n if (output[_fPi] != null) {\n contents[_FPi] = (0, import_smithy_client.strictParseFloat)(output[_fPi]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n return contents;\n}, \"de_ReservedInstancesOffering\");\nvar de_ReservedInstancesOfferingList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesOffering(entry, context);\n });\n}, \"de_ReservedInstancesOfferingList\");\nvar de_ReservedIntancesIds = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReservedInstancesId(entry, context);\n });\n}, \"de_ReservedIntancesIds\");\nvar de_ResetAddressAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ad] != null) {\n contents[_Ad] = de_AddressAttribute(output[_ad], context);\n }\n return contents;\n}, \"de_ResetAddressAttributeResult\");\nvar de_ResetEbsDefaultKmsKeyIdResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_ResetEbsDefaultKmsKeyIdResult\");\nvar de_ResetFpgaImageAttributeResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_ResetFpgaImageAttributeResult\");\nvar de_ResourceStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.resourceSet === \"\") {\n contents[_Re] = [];\n } else if (output[_rSesou] != null && output[_rSesou][_i] != null) {\n contents[_Re] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSesou][_i]), context);\n }\n if (output.resourceTypeSet === \"\") {\n contents[_RTeso] = [];\n } else if (output[_rTSes] != null && output[_rTSes][_i] != null) {\n contents[_RTeso] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTSes][_i]), context);\n }\n return contents;\n}, \"de_ResourceStatement\");\nvar de_ResponseError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ResponseError\");\nvar de_ResponseHostIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ResponseHostIdList\");\nvar de_ResponseHostIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ResponseHostIdSet\");\nvar de_ResponseLaunchTemplateData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_LaunchTemplateIamInstanceProfileSpecification(output[_iIP], context);\n }\n if (output.blockDeviceMappingSet === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDMS] != null && output[_bDMS][_i] != null) {\n contents[_BDM] = de_LaunchTemplateBlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDMS][_i]), context);\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_LaunchTemplateInstanceNetworkInterfaceSpecificationList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]),\n context\n );\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_LaunchTemplatesMonitoring(output[_mo], context);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_LaunchTemplatePlacement(output[_pla], context);\n }\n if (output[_rDI] != null) {\n contents[_RDI] = (0, import_smithy_client.expectString)(output[_rDI]);\n }\n if (output[_dAT] != null) {\n contents[_DATis] = (0, import_smithy_client.parseBoolean)(output[_dAT]);\n }\n if (output[_iISB] != null) {\n contents[_IISB] = (0, import_smithy_client.expectString)(output[_iISB]);\n }\n if (output[_uDs] != null) {\n contents[_UD] = (0, import_smithy_client.expectString)(output[_uDs]);\n }\n if (output.tagSpecificationSet === \"\") {\n contents[_TS] = [];\n } else if (output[_tSS] != null && output[_tSS][_i] != null) {\n contents[_TS] = de_LaunchTemplateTagSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tSS][_i]), context);\n }\n if (output.elasticGpuSpecificationSet === \"\") {\n contents[_EGS] = [];\n } else if (output[_eGSS] != null && output[_eGSS][_i] != null) {\n contents[_EGS] = de_ElasticGpuSpecificationResponseList((0, import_smithy_client.getArrayIfSingleItem)(output[_eGSS][_i]), context);\n }\n if (output.elasticInferenceAcceleratorSet === \"\") {\n contents[_EIA] = [];\n } else if (output[_eIAS] != null && output[_eIAS][_i] != null) {\n contents[_EIA] = de_LaunchTemplateElasticInferenceAcceleratorResponseList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_eIAS][_i]),\n context\n );\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output.securityGroupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_sGS] != null && output[_sGS][_i] != null) {\n contents[_SG] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGS][_i]), context);\n }\n if (output[_iMOn] != null) {\n contents[_IMO] = de_LaunchTemplateInstanceMarketOptions(output[_iMOn], context);\n }\n if (output[_cSr] != null) {\n contents[_CSred] = de_CreditSpecification(output[_cSr], context);\n }\n if (output[_cO] != null) {\n contents[_COp] = de_LaunchTemplateCpuOptions(output[_cO], context);\n }\n if (output[_cRSa] != null) {\n contents[_CRSa] = de_LaunchTemplateCapacityReservationSpecificationResponse(output[_cRSa], context);\n }\n if (output.licenseSet === \"\") {\n contents[_LSi] = [];\n } else if (output[_lSi] != null && output[_lSi][_i] != null) {\n contents[_LSi] = de_LaunchTemplateLicenseList((0, import_smithy_client.getArrayIfSingleItem)(output[_lSi][_i]), context);\n }\n if (output[_hO] != null) {\n contents[_HO] = de_LaunchTemplateHibernationOptions(output[_hO], context);\n }\n if (output[_mO] != null) {\n contents[_MO] = de_LaunchTemplateInstanceMetadataOptions(output[_mO], context);\n }\n if (output[_eOn] != null) {\n contents[_EOn] = de_LaunchTemplateEnclaveOptions(output[_eOn], context);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n if (output[_pDNO] != null) {\n contents[_PDNO] = de_LaunchTemplatePrivateDnsNameOptions(output[_pDNO], context);\n }\n if (output[_mOa] != null) {\n contents[_MOa] = de_LaunchTemplateInstanceMaintenanceOptions(output[_mOa], context);\n }\n if (output[_dASi] != null) {\n contents[_DAS] = (0, import_smithy_client.parseBoolean)(output[_dASi]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output[_nPO] != null) {\n contents[_NPO] = de_LaunchTemplateNetworkPerformanceOptions(output[_nPO], context);\n }\n return contents;\n}, \"de_ResponseLaunchTemplateData\");\nvar de_RestoreAddressToClassicResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_pI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_RestoreAddressToClassicResult\");\nvar de_RestoreImageFromRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_RestoreImageFromRecycleBinResult\");\nvar de_RestoreManagedPrefixListVersionResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pL] != null) {\n contents[_PLr] = de_ManagedPrefixList(output[_pL], context);\n }\n return contents;\n}, \"de_RestoreManagedPrefixListVersionResult\");\nvar de_RestoreSnapshotFromRecycleBinResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n return contents;\n}, \"de_RestoreSnapshotFromRecycleBinResult\");\nvar de_RestoreSnapshotTierResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_rST] != null) {\n contents[_RSTe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rST]));\n }\n if (output[_rD] != null) {\n contents[_RD] = (0, import_smithy_client.strictParseInt32)(output[_rD]);\n }\n if (output[_iPR] != null) {\n contents[_IPR] = (0, import_smithy_client.parseBoolean)(output[_iPR]);\n }\n return contents;\n}, \"de_RestoreSnapshotTierResult\");\nvar de_RevokeClientVpnIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = de_ClientVpnAuthorizationRuleStatus(output[_sta], context);\n }\n return contents;\n}, \"de_RevokeClientVpnIngressResult\");\nvar de_RevokedSecurityGroupRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sGRI] != null) {\n contents[_SGRIe] = (0, import_smithy_client.expectString)(output[_sGRI]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_iEs] != null) {\n contents[_IE] = (0, import_smithy_client.parseBoolean)(output[_iEs]);\n }\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output[_cIidr] != null) {\n contents[_CIidr] = (0, import_smithy_client.expectString)(output[_cIidr]);\n }\n if (output[_cIid] != null) {\n contents[_CIid] = (0, import_smithy_client.expectString)(output[_cIid]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_rGI] != null) {\n contents[_RGI] = (0, import_smithy_client.expectString)(output[_rGI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n return contents;\n}, \"de_RevokedSecurityGroupRule\");\nvar de_RevokedSecurityGroupRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RevokedSecurityGroupRule(entry, context);\n });\n}, \"de_RevokedSecurityGroupRuleList\");\nvar de_RevokeSecurityGroupEgressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.unknownIpPermissionSet === \"\") {\n contents[_UIP] = [];\n } else if (output[_uIPS] != null && output[_uIPS][_i] != null) {\n contents[_UIP] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIPS][_i]), context);\n }\n if (output.revokedSecurityGroupRuleSet === \"\") {\n contents[_RSGR] = [];\n } else if (output[_rSGRS] != null && output[_rSGRS][_i] != null) {\n contents[_RSGR] = de_RevokedSecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSGRS][_i]), context);\n }\n return contents;\n}, \"de_RevokeSecurityGroupEgressResult\");\nvar de_RevokeSecurityGroupIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n if (output.unknownIpPermissionSet === \"\") {\n contents[_UIP] = [];\n } else if (output[_uIPS] != null && output[_uIPS][_i] != null) {\n contents[_UIP] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIPS][_i]), context);\n }\n if (output.revokedSecurityGroupRuleSet === \"\") {\n contents[_RSGR] = [];\n } else if (output[_rSGRS] != null && output[_rSGRS][_i] != null) {\n contents[_RSGR] = de_RevokedSecurityGroupRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSGRS][_i]), context);\n }\n return contents;\n}, \"de_RevokeSecurityGroupIngressResult\");\nvar de_RootDeviceTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_RootDeviceTypeList\");\nvar de_Route = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_dICB] != null) {\n contents[_DICB] = (0, import_smithy_client.expectString)(output[_dICB]);\n }\n if (output[_dPLI] != null) {\n contents[_DPLI] = (0, import_smithy_client.expectString)(output[_dPLI]);\n }\n if (output[_eOIGI] != null) {\n contents[_EOIGI] = (0, import_smithy_client.expectString)(output[_eOIGI]);\n }\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_iOIn] != null) {\n contents[_IOIn] = (0, import_smithy_client.expectString)(output[_iOIn]);\n }\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_lGI] != null) {\n contents[_LGI] = (0, import_smithy_client.expectString)(output[_lGI]);\n }\n if (output[_cGI] != null) {\n contents[_CGI] = (0, import_smithy_client.expectString)(output[_cGI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_o] != null) {\n contents[_Or] = (0, import_smithy_client.expectString)(output[_o]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_cNA] != null) {\n contents[_CNAo] = (0, import_smithy_client.expectString)(output[_cNA]);\n }\n return contents;\n}, \"de_Route\");\nvar de_RouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Route(entry, context);\n });\n}, \"de_RouteList\");\nvar de_RouteServer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_aSA] != null) {\n contents[_ASA] = (0, import_smithy_client.strictParseLong)(output[_aSA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pRSe] != null) {\n contents[_PRS] = (0, import_smithy_client.expectString)(output[_pRSe]);\n }\n if (output[_pRD] != null) {\n contents[_PRD] = (0, import_smithy_client.strictParseLong)(output[_pRD]);\n }\n if (output[_sNE] != null) {\n contents[_SNE] = (0, import_smithy_client.parseBoolean)(output[_sNE]);\n }\n if (output[_sTA] != null) {\n contents[_STA] = (0, import_smithy_client.expectString)(output[_sTA]);\n }\n return contents;\n}, \"de_RouteServer\");\nvar de_RouteServerAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_RouteServerAssociation\");\nvar de_RouteServerAssociationsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerAssociation(entry, context);\n });\n}, \"de_RouteServerAssociationsList\");\nvar de_RouteServerBfdStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_RouteServerBfdStatus\");\nvar de_RouteServerBgpOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pAee] != null) {\n contents[_PAee] = (0, import_smithy_client.strictParseLong)(output[_pAee]);\n }\n if (output[_pLD] != null) {\n contents[_PLD] = (0, import_smithy_client.expectString)(output[_pLD]);\n }\n return contents;\n}, \"de_RouteServerBgpOptions\");\nvar de_RouteServerBgpStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_RouteServerBgpStatus\");\nvar de_RouteServerEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_rSEI] != null) {\n contents[_RSEI] = (0, import_smithy_client.expectString)(output[_rSEI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_eIn] != null) {\n contents[_EIn] = (0, import_smithy_client.expectString)(output[_eIn]);\n }\n if (output[_eA] != null) {\n contents[_EAn] = (0, import_smithy_client.expectString)(output[_eA]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_RouteServerEndpoint\");\nvar de_RouteServerEndpointsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerEndpoint(entry, context);\n });\n}, \"de_RouteServerEndpointsList\");\nvar de_RouteServerPeer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSPI] != null) {\n contents[_RSPI] = (0, import_smithy_client.expectString)(output[_rSPI]);\n }\n if (output[_rSEI] != null) {\n contents[_RSEI] = (0, import_smithy_client.expectString)(output[_rSEI]);\n }\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output[_eEI] != null) {\n contents[_EEI] = (0, import_smithy_client.expectString)(output[_eEI]);\n }\n if (output[_eEA] != null) {\n contents[_EEA] = (0, import_smithy_client.expectString)(output[_eEA]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_bO] != null) {\n contents[_BO] = de_RouteServerBgpOptions(output[_bO], context);\n }\n if (output[_bSg] != null) {\n contents[_BS] = de_RouteServerBgpStatus(output[_bSg], context);\n }\n if (output[_bSf] != null) {\n contents[_BSf] = de_RouteServerBfdStatus(output[_bSf], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_RouteServerPeer\");\nvar de_RouteServerPeersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerPeer(entry, context);\n });\n}, \"de_RouteServerPeersList\");\nvar de_RouteServerPropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSI] != null) {\n contents[_RSIo] = (0, import_smithy_client.expectString)(output[_rSI]);\n }\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_RouteServerPropagation\");\nvar de_RouteServerPropagationsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerPropagation(entry, context);\n });\n}, \"de_RouteServerPropagationsList\");\nvar de_RouteServerRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSEI] != null) {\n contents[_RSEI] = (0, import_smithy_client.expectString)(output[_rSEI]);\n }\n if (output[_rSPI] != null) {\n contents[_RSPI] = (0, import_smithy_client.expectString)(output[_rSPI]);\n }\n if (output.routeInstallationDetailSet === \"\") {\n contents[_RID] = [];\n } else if (output[_rIDS] != null && output[_rIDS][_i] != null) {\n contents[_RID] = de_RouteServerRouteInstallationDetails((0, import_smithy_client.getArrayIfSingleItem)(output[_rIDS][_i]), context);\n }\n if (output[_rSout] != null) {\n contents[_RSout] = (0, import_smithy_client.expectString)(output[_rSout]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output.asPathSet === \"\") {\n contents[_APs] = [];\n } else if (output[_aPSs] != null && output[_aPSs][_i] != null) {\n contents[_APs] = de_AsPath((0, import_smithy_client.getArrayIfSingleItem)(output[_aPSs][_i]), context);\n }\n if (output[_med] != null) {\n contents[_Med] = (0, import_smithy_client.strictParseInt32)(output[_med]);\n }\n if (output[_nHI] != null) {\n contents[_NHI] = (0, import_smithy_client.expectString)(output[_nHI]);\n }\n return contents;\n}, \"de_RouteServerRoute\");\nvar de_RouteServerRouteInstallationDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output[_rISo] != null) {\n contents[_RISo] = (0, import_smithy_client.expectString)(output[_rISo]);\n }\n if (output[_rISR] != null) {\n contents[_RISR] = (0, import_smithy_client.expectString)(output[_rISR]);\n }\n return contents;\n}, \"de_RouteServerRouteInstallationDetail\");\nvar de_RouteServerRouteInstallationDetails = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerRouteInstallationDetail(entry, context);\n });\n}, \"de_RouteServerRouteInstallationDetails\");\nvar de_RouteServerRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServerRoute(entry, context);\n });\n}, \"de_RouteServerRouteList\");\nvar de_RouteServersList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteServer(entry, context);\n });\n}, \"de_RouteServersList\");\nvar de_RouteTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.associationSet === \"\") {\n contents[_Ass] = [];\n } else if (output[_aSss] != null && output[_aSss][_i] != null) {\n contents[_Ass] = de_RouteTableAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSss][_i]), context);\n }\n if (output.propagatingVgwSet === \"\") {\n contents[_PVr] = [];\n } else if (output[_pVS] != null && output[_pVS][_i] != null) {\n contents[_PVr] = de_PropagatingVgwList((0, import_smithy_client.getArrayIfSingleItem)(output[_pVS][_i]), context);\n }\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_RouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n return contents;\n}, \"de_RouteTable\");\nvar de_RouteTableAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mai] != null) {\n contents[_Mai] = (0, import_smithy_client.parseBoolean)(output[_mai]);\n }\n if (output[_rTAI] != null) {\n contents[_RTAI] = (0, import_smithy_client.expectString)(output[_rTAI]);\n }\n if (output[_rTI] != null) {\n contents[_RTI] = (0, import_smithy_client.expectString)(output[_rTI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_gI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_gI]);\n }\n if (output[_aS] != null) {\n contents[_ASs] = de_RouteTableAssociationState(output[_aS], context);\n }\n return contents;\n}, \"de_RouteTableAssociation\");\nvar de_RouteTableAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteTableAssociation(entry, context);\n });\n}, \"de_RouteTableAssociationList\");\nvar de_RouteTableAssociationState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_RouteTableAssociationState\");\nvar de_RouteTableList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RouteTable(entry, context);\n });\n}, \"de_RouteTableList\");\nvar de_RuleGroupRuleOptionsPair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output.ruleOptionSet === \"\") {\n contents[_ROu] = [];\n } else if (output[_rOS] != null && output[_rOS][_i] != null) {\n contents[_ROu] = de_RuleOptionList((0, import_smithy_client.getArrayIfSingleItem)(output[_rOS][_i]), context);\n }\n return contents;\n}, \"de_RuleGroupRuleOptionsPair\");\nvar de_RuleGroupRuleOptionsPairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleGroupRuleOptionsPair(entry, context);\n });\n}, \"de_RuleGroupRuleOptionsPairList\");\nvar de_RuleGroupTypePair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rGA] != null) {\n contents[_RGA] = (0, import_smithy_client.expectString)(output[_rGA]);\n }\n if (output[_rGT] != null) {\n contents[_RGT] = (0, import_smithy_client.expectString)(output[_rGT]);\n }\n return contents;\n}, \"de_RuleGroupTypePair\");\nvar de_RuleGroupTypePairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleGroupTypePair(entry, context);\n });\n}, \"de_RuleGroupTypePairList\");\nvar de_RuleOption = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_key] != null) {\n contents[_Key] = (0, import_smithy_client.expectString)(output[_key]);\n }\n if (output.settingSet === \"\") {\n contents[_Set] = [];\n } else if (output[_sSe] != null && output[_sSe][_i] != null) {\n contents[_Set] = de_StringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sSe][_i]), context);\n }\n return contents;\n}, \"de_RuleOption\");\nvar de_RuleOptionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleOption(entry, context);\n });\n}, \"de_RuleOptionList\");\nvar de_RunInstancesMonitoringEnabled = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_RunInstancesMonitoringEnabled\");\nvar de_RunScheduledInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instanceIdSet === \"\") {\n contents[_IIS] = [];\n } else if (output[_iIS] != null && output[_iIS][_i] != null) {\n contents[_IIS] = de_InstanceIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iIS][_i]), context);\n }\n return contents;\n}, \"de_RunScheduledInstancesResult\");\nvar de_S3Storage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AWSAKI] != null) {\n contents[_AWSAKI] = (0, import_smithy_client.expectString)(output[_AWSAKI]);\n }\n if (output[_bu] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_bu]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output[_uPp] != null) {\n contents[_UP] = context.base64Decoder(output[_uPp]);\n }\n if (output[_uPS] != null) {\n contents[_UPS] = (0, import_smithy_client.expectString)(output[_uPS]);\n }\n return contents;\n}, \"de_S3Storage\");\nvar de_ScheduledInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_cD] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cD]));\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_nPe] != null) {\n contents[_NPe] = (0, import_smithy_client.expectString)(output[_nPe]);\n }\n if (output[_nSST] != null) {\n contents[_NSST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nSST]));\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pSET] != null) {\n contents[_PSET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_pSET]));\n }\n if (output[_rec] != null) {\n contents[_Rec] = de_ScheduledInstanceRecurrence(output[_rec], context);\n }\n if (output[_sIIc] != null) {\n contents[_SIIch] = (0, import_smithy_client.expectString)(output[_sIIc]);\n }\n if (output[_sDIH] != null) {\n contents[_SDIH] = (0, import_smithy_client.strictParseInt32)(output[_sDIH]);\n }\n if (output[_tED] != null) {\n contents[_TED] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tED]));\n }\n if (output[_tSD] != null) {\n contents[_TSD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tSD]));\n }\n if (output[_tSIH] != null) {\n contents[_TSIH] = (0, import_smithy_client.strictParseInt32)(output[_tSIH]);\n }\n return contents;\n}, \"de_ScheduledInstance\");\nvar de_ScheduledInstanceAvailability = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_aICv] != null) {\n contents[_AICv] = (0, import_smithy_client.strictParseInt32)(output[_aICv]);\n }\n if (output[_fSST] != null) {\n contents[_FSST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_fSST]));\n }\n if (output[_hPo] != null) {\n contents[_HPo] = (0, import_smithy_client.expectString)(output[_hPo]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_mTDID] != null) {\n contents[_MTDID] = (0, import_smithy_client.strictParseInt32)(output[_mTDID]);\n }\n if (output[_mTDIDi] != null) {\n contents[_MTDIDi] = (0, import_smithy_client.strictParseInt32)(output[_mTDIDi]);\n }\n if (output[_nPe] != null) {\n contents[_NPe] = (0, import_smithy_client.expectString)(output[_nPe]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_pTu] != null) {\n contents[_PT] = (0, import_smithy_client.expectString)(output[_pTu]);\n }\n if (output[_rec] != null) {\n contents[_Rec] = de_ScheduledInstanceRecurrence(output[_rec], context);\n }\n if (output[_sDIH] != null) {\n contents[_SDIH] = (0, import_smithy_client.strictParseInt32)(output[_sDIH]);\n }\n if (output[_tSIH] != null) {\n contents[_TSIH] = (0, import_smithy_client.strictParseInt32)(output[_tSIH]);\n }\n return contents;\n}, \"de_ScheduledInstanceAvailability\");\nvar de_ScheduledInstanceAvailabilitySet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ScheduledInstanceAvailability(entry, context);\n });\n}, \"de_ScheduledInstanceAvailabilitySet\");\nvar de_ScheduledInstanceRecurrence = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fre] != null) {\n contents[_Fre] = (0, import_smithy_client.expectString)(output[_fre]);\n }\n if (output[_int] != null) {\n contents[_Int] = (0, import_smithy_client.strictParseInt32)(output[_int]);\n }\n if (output.occurrenceDaySet === \"\") {\n contents[_ODS] = [];\n } else if (output[_oDS] != null && output[_oDS][_i] != null) {\n contents[_ODS] = de_OccurrenceDaySet((0, import_smithy_client.getArrayIfSingleItem)(output[_oDS][_i]), context);\n }\n if (output[_oRTE] != null) {\n contents[_ORTE] = (0, import_smithy_client.parseBoolean)(output[_oRTE]);\n }\n if (output[_oU] != null) {\n contents[_OU] = (0, import_smithy_client.expectString)(output[_oU]);\n }\n return contents;\n}, \"de_ScheduledInstanceRecurrence\");\nvar de_ScheduledInstanceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ScheduledInstance(entry, context);\n });\n}, \"de_ScheduledInstanceSet\");\nvar de_SearchLocalGatewayRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_LocalGatewayRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_SearchLocalGatewayRoutesResult\");\nvar de_SearchTransitGatewayMulticastGroupsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.multicastGroups === \"\") {\n contents[_MG] = [];\n } else if (output[_mG] != null && output[_mG][_i] != null) {\n contents[_MG] = de_TransitGatewayMulticastGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_mG][_i]), context);\n }\n if (output[_nTe] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(output[_nTe]);\n }\n return contents;\n}, \"de_SearchTransitGatewayMulticastGroupsResult\");\nvar de_SearchTransitGatewayRoutesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_TransitGatewayRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]), context);\n }\n if (output[_aRAd] != null) {\n contents[_ARAd] = (0, import_smithy_client.parseBoolean)(output[_aRAd]);\n }\n return contents;\n}, \"de_SearchTransitGatewayRoutesResult\");\nvar de_SecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.ipPermissionsEgress === \"\") {\n contents[_IPE] = [];\n } else if (output[_iPE] != null && output[_iPE][_i] != null) {\n contents[_IPE] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPE][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sGA] != null) {\n contents[_SGA] = (0, import_smithy_client.expectString)(output[_sGA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_gD] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_gD]);\n }\n if (output.ipPermissions === \"\") {\n contents[_IPpe] = [];\n } else if (output[_iPpe] != null && output[_iPpe][_i] != null) {\n contents[_IPpe] = de_IpPermissionList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPpe][_i]), context);\n }\n return contents;\n}, \"de_SecurityGroup\");\nvar de_SecurityGroupForVpc = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pVI] != null) {\n contents[_PVIr] = (0, import_smithy_client.expectString)(output[_pVI]);\n }\n return contents;\n}, \"de_SecurityGroupForVpc\");\nvar de_SecurityGroupForVpcList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupForVpc(entry, context);\n });\n}, \"de_SecurityGroupForVpcList\");\nvar de_SecurityGroupIdentifier = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n return contents;\n}, \"de_SecurityGroupIdentifier\");\nvar de_SecurityGroupIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroupIdList\");\nvar de_SecurityGroupIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroupIdSet\");\nvar de_SecurityGroupIdStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroupIdStringList\");\nvar de_SecurityGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroup(entry, context);\n });\n}, \"de_SecurityGroupList\");\nvar de_SecurityGroupReference = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_rVI] != null) {\n contents[_RVI] = (0, import_smithy_client.expectString)(output[_rVI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n return contents;\n}, \"de_SecurityGroupReference\");\nvar de_SecurityGroupReferences = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupReference(entry, context);\n });\n}, \"de_SecurityGroupReferences\");\nvar de_SecurityGroupRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sGRI] != null) {\n contents[_SGRIe] = (0, import_smithy_client.expectString)(output[_sGRI]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gOI] != null) {\n contents[_GOI] = (0, import_smithy_client.expectString)(output[_gOI]);\n }\n if (output[_iEs] != null) {\n contents[_IE] = (0, import_smithy_client.parseBoolean)(output[_iEs]);\n }\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output[_cIidr] != null) {\n contents[_CIidr] = (0, import_smithy_client.expectString)(output[_cIidr]);\n }\n if (output[_cIid] != null) {\n contents[_CIid] = (0, import_smithy_client.expectString)(output[_cIid]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_rGIe] != null) {\n contents[_RGIe] = de_ReferencedSecurityGroup(output[_rGIe], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sGRA] != null) {\n contents[_SGRA] = (0, import_smithy_client.expectString)(output[_sGRA]);\n }\n return contents;\n}, \"de_SecurityGroupRule\");\nvar de_SecurityGroupRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupRule(entry, context);\n });\n}, \"de_SecurityGroupRuleList\");\nvar de_SecurityGroupVpcAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vOIp] != null) {\n contents[_VOIp] = (0, import_smithy_client.expectString)(output[_vOIp]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sRt] != null) {\n contents[_SRt] = (0, import_smithy_client.expectString)(output[_sRt]);\n }\n return contents;\n}, \"de_SecurityGroupVpcAssociation\");\nvar de_SecurityGroupVpcAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SecurityGroupVpcAssociation(entry, context);\n });\n}, \"de_SecurityGroupVpcAssociationList\");\nvar de_ServiceConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.serviceType === \"\") {\n contents[_STe] = [];\n } else if (output[_sTe] != null && output[_sTe][_i] != null) {\n contents[_STe] = de_ServiceTypeDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sTe][_i]), context);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output[_sSer] != null) {\n contents[_SSe] = (0, import_smithy_client.expectString)(output[_sSer]);\n }\n if (output.availabilityZoneSet === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZS] != null && output[_aZS][_i] != null) {\n contents[_AZv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZS][_i]), context);\n }\n if (output[_aRcc] != null) {\n contents[_ARc] = (0, import_smithy_client.parseBoolean)(output[_aRcc]);\n }\n if (output[_mVE] != null) {\n contents[_MVEa] = (0, import_smithy_client.parseBoolean)(output[_mVE]);\n }\n if (output.networkLoadBalancerArnSet === \"\") {\n contents[_NLBAe] = [];\n } else if (output[_nLBAS] != null && output[_nLBAS][_i] != null) {\n contents[_NLBAe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nLBAS][_i]), context);\n }\n if (output.gatewayLoadBalancerArnSet === \"\") {\n contents[_GLBA] = [];\n } else if (output[_gLBAS] != null && output[_gLBAS][_i] != null) {\n contents[_GLBA] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_gLBAS][_i]), context);\n }\n if (output.supportedIpAddressTypeSet === \"\") {\n contents[_SIAT] = [];\n } else if (output[_sIATS] != null && output[_sIATS][_i] != null) {\n contents[_SIAT] = de_SupportedIpAddressTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_sIATS][_i]), context);\n }\n if (output.baseEndpointDnsNameSet === \"\") {\n contents[_BEDN] = [];\n } else if (output[_bEDNS] != null && output[_bEDNS][_i] != null) {\n contents[_BEDN] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_bEDNS][_i]), context);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output[_pDNC] != null) {\n contents[_PDNC] = de_PrivateDnsNameConfiguration(output[_pDNC], context);\n }\n if (output[_pRa] != null) {\n contents[_PRa] = (0, import_smithy_client.expectString)(output[_pRa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.supportedRegionSet === \"\") {\n contents[_SRu] = [];\n } else if (output[_sRS] != null && output[_sRS][_i] != null) {\n contents[_SRu] = de_SupportedRegionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sRS][_i]), context);\n }\n if (output[_rAE] != null) {\n contents[_RAE] = (0, import_smithy_client.parseBoolean)(output[_rAE]);\n }\n return contents;\n}, \"de_ServiceConfiguration\");\nvar de_ServiceConfigurationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceConfiguration(entry, context);\n });\n}, \"de_ServiceConfigurationSet\");\nvar de_ServiceDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output.serviceType === \"\") {\n contents[_STe] = [];\n } else if (output[_sTe] != null && output[_sTe][_i] != null) {\n contents[_STe] = de_ServiceTypeDetailSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sTe][_i]), context);\n }\n if (output[_sR] != null) {\n contents[_SRe] = (0, import_smithy_client.expectString)(output[_sR]);\n }\n if (output.availabilityZoneSet === \"\") {\n contents[_AZv] = [];\n } else if (output[_aZS] != null && output[_aZS][_i] != null) {\n contents[_AZv] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_aZS][_i]), context);\n }\n if (output[_ow] != null) {\n contents[_Own] = (0, import_smithy_client.expectString)(output[_ow]);\n }\n if (output.baseEndpointDnsNameSet === \"\") {\n contents[_BEDN] = [];\n } else if (output[_bEDNS] != null && output[_bEDNS][_i] != null) {\n contents[_BEDN] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_bEDNS][_i]), context);\n }\n if (output[_pDN] != null) {\n contents[_PDN] = (0, import_smithy_client.expectString)(output[_pDN]);\n }\n if (output.privateDnsNameSet === \"\") {\n contents[_PDNr] = [];\n } else if (output[_pDNS] != null && output[_pDNS][_i] != null) {\n contents[_PDNr] = de_PrivateDnsDetailsSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pDNS][_i]), context);\n }\n if (output[_vEPS] != null) {\n contents[_VEPS] = (0, import_smithy_client.parseBoolean)(output[_vEPS]);\n }\n if (output[_aRcc] != null) {\n contents[_ARc] = (0, import_smithy_client.parseBoolean)(output[_aRcc]);\n }\n if (output[_mVE] != null) {\n contents[_MVEa] = (0, import_smithy_client.parseBoolean)(output[_mVE]);\n }\n if (output[_pRa] != null) {\n contents[_PRa] = (0, import_smithy_client.expectString)(output[_pRa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_pDNVS] != null) {\n contents[_PDNVS] = (0, import_smithy_client.expectString)(output[_pDNVS]);\n }\n if (output.supportedIpAddressTypeSet === \"\") {\n contents[_SIAT] = [];\n } else if (output[_sIATS] != null && output[_sIATS][_i] != null) {\n contents[_SIAT] = de_SupportedIpAddressTypes((0, import_smithy_client.getArrayIfSingleItem)(output[_sIATS][_i]), context);\n }\n return contents;\n}, \"de_ServiceDetail\");\nvar de_ServiceDetailSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceDetail(entry, context);\n });\n}, \"de_ServiceDetailSet\");\nvar de_ServiceLinkVirtualInterface = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sLVII] != null) {\n contents[_SLVIIe] = (0, import_smithy_client.expectString)(output[_sLVII]);\n }\n if (output[_sLVIA] != null) {\n contents[_SLVIA] = (0, import_smithy_client.expectString)(output[_sLVIA]);\n }\n if (output[_oIu] != null) {\n contents[_OIu] = (0, import_smithy_client.expectString)(output[_oIu]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_lA] != null) {\n contents[_LA] = (0, import_smithy_client.expectString)(output[_lA]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_pBA] != null) {\n contents[_PBA] = (0, import_smithy_client.strictParseLong)(output[_pBA]);\n }\n if (output[_vl] != null) {\n contents[_Vl] = (0, import_smithy_client.strictParseInt32)(output[_vl]);\n }\n if (output[_oLI] != null) {\n contents[_OLI] = (0, import_smithy_client.expectString)(output[_oLI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_cSon] != null) {\n contents[_CSon] = (0, import_smithy_client.expectString)(output[_cSon]);\n }\n return contents;\n}, \"de_ServiceLinkVirtualInterface\");\nvar de_ServiceLinkVirtualInterfaceIdSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ServiceLinkVirtualInterfaceIdSet\");\nvar de_ServiceLinkVirtualInterfaceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceLinkVirtualInterface(entry, context);\n });\n}, \"de_ServiceLinkVirtualInterfaceSet\");\nvar de_ServiceTypeDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sTe] != null) {\n contents[_STe] = (0, import_smithy_client.expectString)(output[_sTe]);\n }\n return contents;\n}, \"de_ServiceTypeDetail\");\nvar de_ServiceTypeDetailSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceTypeDetail(entry, context);\n });\n}, \"de_ServiceTypeDetailSet\");\nvar de_Snapshot = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oAw] != null) {\n contents[_OAw] = (0, import_smithy_client.expectString)(output[_oAw]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sTt] != null) {\n contents[_STto] = (0, import_smithy_client.expectString)(output[_sTt]);\n }\n if (output[_rET] != null) {\n contents[_RET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rET]));\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_tTr] != null) {\n contents[_TTr] = (0, import_smithy_client.expectString)(output[_tTr]);\n }\n if (output[_cDM] != null) {\n contents[_CDM] = (0, import_smithy_client.strictParseInt32)(output[_cDM]);\n }\n if (output[_cTomp] != null) {\n contents[_CTomp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTomp]));\n }\n if (output[_fSSIB] != null) {\n contents[_FSSIB] = (0, import_smithy_client.strictParseLong)(output[_fSSIB]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_dEKI] != null) {\n contents[_DEKI] = (0, import_smithy_client.expectString)(output[_dEKI]);\n }\n return contents;\n}, \"de_Snapshot\");\nvar de_SnapshotDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_dN]);\n }\n if (output[_dIS] != null) {\n contents[_DISi] = (0, import_smithy_client.strictParseFloat)(output[_dIS]);\n }\n if (output[_f] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_f]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_ur] != null) {\n contents[_U] = (0, import_smithy_client.expectString)(output[_ur]);\n }\n if (output[_uB] != null) {\n contents[_UB] = de_UserBucketDetails(output[_uB], context);\n }\n return contents;\n}, \"de_SnapshotDetail\");\nvar de_SnapshotDetailList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotDetail(entry, context);\n });\n}, \"de_SnapshotDetailList\");\nvar de_SnapshotInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vSo] != null) {\n contents[_VS] = (0, import_smithy_client.strictParseInt32)(output[_vSo]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n return contents;\n}, \"de_SnapshotInfo\");\nvar de_SnapshotList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Snapshot(entry, context);\n });\n}, \"de_SnapshotList\");\nvar de_SnapshotRecycleBinInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_rBET] != null) {\n contents[_RBET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBET]));\n }\n if (output[_rBETe] != null) {\n contents[_RBETe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rBETe]));\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n return contents;\n}, \"de_SnapshotRecycleBinInfo\");\nvar de_SnapshotRecycleBinInfoList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotRecycleBinInfo(entry, context);\n });\n}, \"de_SnapshotRecycleBinInfoList\");\nvar de_SnapshotSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotInfo(entry, context);\n });\n}, \"de_SnapshotSet\");\nvar de_SnapshotTaskDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_dIS] != null) {\n contents[_DISi] = (0, import_smithy_client.strictParseFloat)(output[_dIS]);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_f] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_f]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.expectString)(output[_pro]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_ur] != null) {\n contents[_U] = (0, import_smithy_client.expectString)(output[_ur]);\n }\n if (output[_uB] != null) {\n contents[_UB] = de_UserBucketDetails(output[_uB], context);\n }\n return contents;\n}, \"de_SnapshotTaskDetail\");\nvar de_SnapshotTierStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sTt] != null) {\n contents[_STto] = (0, import_smithy_client.expectString)(output[_sTt]);\n }\n if (output[_lTST] != null) {\n contents[_LTST] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lTST]));\n }\n if (output[_lTP] != null) {\n contents[_LTP] = (0, import_smithy_client.strictParseInt32)(output[_lTP]);\n }\n if (output[_lTOS] != null) {\n contents[_LTOS] = (0, import_smithy_client.expectString)(output[_lTOS]);\n }\n if (output[_lTOSD] != null) {\n contents[_LTOSD] = (0, import_smithy_client.expectString)(output[_lTOSD]);\n }\n if (output[_aCT] != null) {\n contents[_ACT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aCT]));\n }\n if (output[_rET] != null) {\n contents[_RET] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_rET]));\n }\n return contents;\n}, \"de_SnapshotTierStatus\");\nvar de_snapshotTierStatusSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SnapshotTierStatus(entry, context);\n });\n}, \"de_snapshotTierStatusSet\");\nvar de_SpotCapacityRebalance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSep] != null) {\n contents[_RS] = (0, import_smithy_client.expectString)(output[_rSep]);\n }\n if (output[_tD] != null) {\n contents[_TDe] = (0, import_smithy_client.strictParseInt32)(output[_tD]);\n }\n return contents;\n}, \"de_SpotCapacityRebalance\");\nvar de_SpotDatafeedSubscription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bu] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_bu]);\n }\n if (output[_fa] != null) {\n contents[_Fa] = de_SpotInstanceStateFault(output[_fa], context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_SpotDatafeedSubscription\");\nvar de_SpotFleetLaunchSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aTdd] != null) {\n contents[_ATd] = (0, import_smithy_client.expectString)(output[_aTdd]);\n }\n if (output.blockDeviceMapping === \"\") {\n contents[_BDM] = [];\n } else if (output[_bDM] != null && output[_bDM][_i] != null) {\n contents[_BDM] = de_BlockDeviceMappingList((0, import_smithy_client.getArrayIfSingleItem)(output[_bDM][_i]), context);\n }\n if (output[_eO] != null) {\n contents[_EO] = (0, import_smithy_client.parseBoolean)(output[_eO]);\n }\n if (output[_iIP] != null) {\n contents[_IIP] = de_IamInstanceProfileSpecification(output[_iIP], context);\n }\n if (output[_iIma] != null) {\n contents[_IIma] = (0, import_smithy_client.expectString)(output[_iIma]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_kI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_kI]);\n }\n if (output[_kN] != null) {\n contents[_KN] = (0, import_smithy_client.expectString)(output[_kN]);\n }\n if (output[_mo] != null) {\n contents[_Mon] = de_SpotFleetMonitoring(output[_mo], context);\n }\n if (output.networkInterfaceSet === \"\") {\n contents[_NI] = [];\n } else if (output[_nIS] != null && output[_nIS][_i] != null) {\n contents[_NI] = de_InstanceNetworkInterfaceSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIS][_i]), context);\n }\n if (output[_pla] != null) {\n contents[_Pl] = de_SpotPlacement(output[_pla], context);\n }\n if (output[_rIa] != null) {\n contents[_RIa] = (0, import_smithy_client.expectString)(output[_rIa]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_uDs] != null) {\n contents[_UD] = (0, import_smithy_client.expectString)(output[_uDs]);\n }\n if (output[_wC] != null) {\n contents[_WCe] = (0, import_smithy_client.strictParseFloat)(output[_wC]);\n }\n if (output.tagSpecificationSet === \"\") {\n contents[_TS] = [];\n } else if (output[_tSS] != null && output[_tSS][_i] != null) {\n contents[_TS] = de_SpotFleetTagSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_tSS][_i]), context);\n }\n if (output[_iR] != null) {\n contents[_IR] = de_InstanceRequirements(output[_iR], context);\n }\n if (output.groupSet === \"\") {\n contents[_SG] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_SG] = de_GroupIdentifierList((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetLaunchSpecification\");\nvar de_SpotFleetMonitoring = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n return contents;\n}, \"de_SpotFleetMonitoring\");\nvar de_SpotFleetRequestConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSc] != null) {\n contents[_ASc] = (0, import_smithy_client.expectString)(output[_aSc]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_sFRC] != null) {\n contents[_SFRC] = de_SpotFleetRequestConfigData(output[_sFRC], context);\n }\n if (output[_sFRI] != null) {\n contents[_SFRIp] = (0, import_smithy_client.expectString)(output[_sFRI]);\n }\n if (output[_sFRSp] != null) {\n contents[_SFRS] = (0, import_smithy_client.expectString)(output[_sFRSp]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetRequestConfig\");\nvar de_SpotFleetRequestConfigData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_oDAS] != null) {\n contents[_ODAS] = (0, import_smithy_client.expectString)(output[_oDAS]);\n }\n if (output[_sMS] != null) {\n contents[_SMS] = de_SpotMaintenanceStrategies(output[_sMS], context);\n }\n if (output[_cT] != null) {\n contents[_CTl] = (0, import_smithy_client.expectString)(output[_cT]);\n }\n if (output[_eCTP] != null) {\n contents[_ECTP] = (0, import_smithy_client.expectString)(output[_eCTP]);\n }\n if (output[_fC] != null) {\n contents[_FC] = (0, import_smithy_client.strictParseFloat)(output[_fC]);\n }\n if (output[_oDFC] != null) {\n contents[_ODFC] = (0, import_smithy_client.strictParseFloat)(output[_oDFC]);\n }\n if (output[_iFR] != null) {\n contents[_IFR] = (0, import_smithy_client.expectString)(output[_iFR]);\n }\n if (output.launchSpecifications === \"\") {\n contents[_LSau] = [];\n } else if (output[_lSa] != null && output[_lSa][_i] != null) {\n contents[_LSau] = de_LaunchSpecsList((0, import_smithy_client.getArrayIfSingleItem)(output[_lSa][_i]), context);\n }\n if (output.launchTemplateConfigs === \"\") {\n contents[_LTC] = [];\n } else if (output[_lTC] != null && output[_lTC][_i] != null) {\n contents[_LTC] = de_LaunchTemplateConfigList((0, import_smithy_client.getArrayIfSingleItem)(output[_lTC][_i]), context);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_tCar] != null) {\n contents[_TCa] = (0, import_smithy_client.strictParseInt32)(output[_tCar]);\n }\n if (output[_oDTC] != null) {\n contents[_ODTC] = (0, import_smithy_client.strictParseInt32)(output[_oDTC]);\n }\n if (output[_oDMTP] != null) {\n contents[_ODMTP] = (0, import_smithy_client.expectString)(output[_oDMTP]);\n }\n if (output[_sMTP] != null) {\n contents[_SMTP] = (0, import_smithy_client.expectString)(output[_sMTP]);\n }\n if (output[_tIWE] != null) {\n contents[_TIWE] = (0, import_smithy_client.parseBoolean)(output[_tIWE]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_vF] != null) {\n contents[_VF] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vF]));\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_rUI] != null) {\n contents[_RUI] = (0, import_smithy_client.parseBoolean)(output[_rUI]);\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n if (output[_lBC] != null) {\n contents[_LBC] = de_LoadBalancersConfig(output[_lBC], context);\n }\n if (output[_iPTUC] != null) {\n contents[_IPTUC] = (0, import_smithy_client.strictParseInt32)(output[_iPTUC]);\n }\n if (output[_cont] != null) {\n contents[_Con] = (0, import_smithy_client.expectString)(output[_cont]);\n }\n if (output[_tCUT] != null) {\n contents[_TCUT] = (0, import_smithy_client.expectString)(output[_tCUT]);\n }\n if (output.TagSpecification === \"\") {\n contents[_TS] = [];\n } else if (output[_TSagp] != null && output[_TSagp][_i] != null) {\n contents[_TS] = de_TagSpecificationList((0, import_smithy_client.getArrayIfSingleItem)(output[_TSagp][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetRequestConfigData\");\nvar de_SpotFleetRequestConfigSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotFleetRequestConfig(entry, context);\n });\n}, \"de_SpotFleetRequestConfigSet\");\nvar de_SpotFleetTagSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.tag === \"\") {\n contents[_Ta] = [];\n } else if (output[_tag] != null && output[_tag][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tag][_i]), context);\n }\n return contents;\n}, \"de_SpotFleetTagSpecification\");\nvar de_SpotFleetTagSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotFleetTagSpecification(entry, context);\n });\n}, \"de_SpotFleetTagSpecificationList\");\nvar de_SpotInstanceRequest = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aBHP] != null) {\n contents[_ABHP] = (0, import_smithy_client.expectString)(output[_aBHP]);\n }\n if (output[_aZG] != null) {\n contents[_AZG] = (0, import_smithy_client.expectString)(output[_aZG]);\n }\n if (output[_bDMl] != null) {\n contents[_BDMl] = (0, import_smithy_client.strictParseInt32)(output[_bDMl]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output[_fa] != null) {\n contents[_Fa] = de_SpotInstanceStateFault(output[_fa], context);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_lG] != null) {\n contents[_LG] = (0, import_smithy_client.expectString)(output[_lG]);\n }\n if (output[_lSau] != null) {\n contents[_LSa] = de_LaunchSpecification(output[_lSau], context);\n }\n if (output[_lAZ] != null) {\n contents[_LAZ] = (0, import_smithy_client.expectString)(output[_lAZ]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n if (output[_sIRI] != null) {\n contents[_SIRIp] = (0, import_smithy_client.expectString)(output[_sIRI]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_SpotInstanceStatus(output[_sta], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_vF] != null) {\n contents[_VF] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vF]));\n }\n if (output[_vU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_vU]));\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n return contents;\n}, \"de_SpotInstanceRequest\");\nvar de_SpotInstanceRequestList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotInstanceRequest(entry, context);\n });\n}, \"de_SpotInstanceRequestList\");\nvar de_SpotInstanceStateFault = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_SpotInstanceStateFault\");\nvar de_SpotInstanceStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n if (output[_uT] != null) {\n contents[_UTp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_uT]));\n }\n return contents;\n}, \"de_SpotInstanceStatus\");\nvar de_SpotMaintenanceStrategies = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cRa] != null) {\n contents[_CRap] = de_SpotCapacityRebalance(output[_cRa], context);\n }\n return contents;\n}, \"de_SpotMaintenanceStrategies\");\nvar de_SpotOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSl] != null) {\n contents[_AS] = (0, import_smithy_client.expectString)(output[_aSl]);\n }\n if (output[_mSai] != null) {\n contents[_MS] = de_FleetSpotMaintenanceStrategies(output[_mSai], context);\n }\n if (output[_iIB] != null) {\n contents[_IIB] = (0, import_smithy_client.expectString)(output[_iIB]);\n }\n if (output[_iPTUC] != null) {\n contents[_IPTUC] = (0, import_smithy_client.strictParseInt32)(output[_iPTUC]);\n }\n if (output[_sITi] != null) {\n contents[_SITi] = (0, import_smithy_client.parseBoolean)(output[_sITi]);\n }\n if (output[_sAZ] != null) {\n contents[_SAZ] = (0, import_smithy_client.parseBoolean)(output[_sAZ]);\n }\n if (output[_mTC] != null) {\n contents[_MTC] = (0, import_smithy_client.strictParseInt32)(output[_mTC]);\n }\n if (output[_mTP] != null) {\n contents[_MTP] = (0, import_smithy_client.expectString)(output[_mTP]);\n }\n return contents;\n}, \"de_SpotOptions\");\nvar de_SpotPlacement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_t] != null) {\n contents[_Te] = (0, import_smithy_client.expectString)(output[_t]);\n }\n return contents;\n}, \"de_SpotPlacement\");\nvar de_SpotPlacementScore = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_sco] != null) {\n contents[_Sco] = (0, import_smithy_client.strictParseInt32)(output[_sco]);\n }\n return contents;\n}, \"de_SpotPlacementScore\");\nvar de_SpotPlacementScores = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotPlacementScore(entry, context);\n });\n}, \"de_SpotPlacementScores\");\nvar de_SpotPrice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_iT] != null) {\n contents[_IT] = (0, import_smithy_client.expectString)(output[_iT]);\n }\n if (output[_pDr] != null) {\n contents[_PDr] = (0, import_smithy_client.expectString)(output[_pDr]);\n }\n if (output[_sPp] != null) {\n contents[_SPp] = (0, import_smithy_client.expectString)(output[_sPp]);\n }\n if (output[_ti] != null) {\n contents[_Tim] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_ti]));\n }\n return contents;\n}, \"de_SpotPrice\");\nvar de_SpotPriceHistoryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SpotPrice(entry, context);\n });\n}, \"de_SpotPriceHistoryList\");\nvar de_StaleIpPermission = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_iPpr] != null) {\n contents[_IPpr] = (0, import_smithy_client.expectString)(output[_iPpr]);\n }\n if (output.ipRanges === \"\") {\n contents[_IRp] = [];\n } else if (output[_iRpa] != null && output[_iRpa][_i] != null) {\n contents[_IRp] = de_IpRanges((0, import_smithy_client.getArrayIfSingleItem)(output[_iRpa][_i]), context);\n }\n if (output.prefixListIds === \"\") {\n contents[_PLIr] = [];\n } else if (output[_pLIr] != null && output[_pLIr][_i] != null) {\n contents[_PLIr] = de_PrefixListIdSet((0, import_smithy_client.getArrayIfSingleItem)(output[_pLIr][_i]), context);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n if (output.groups === \"\") {\n contents[_UIGP] = [];\n } else if (output[_gr] != null && output[_gr][_i] != null) {\n contents[_UIGP] = de_UserIdGroupPairSet((0, import_smithy_client.getArrayIfSingleItem)(output[_gr][_i]), context);\n }\n return contents;\n}, \"de_StaleIpPermission\");\nvar de_StaleIpPermissionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_StaleIpPermission(entry, context);\n });\n}, \"de_StaleIpPermissionSet\");\nvar de_StaleSecurityGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output.staleIpPermissions === \"\") {\n contents[_SIP] = [];\n } else if (output[_sIP] != null && output[_sIP][_i] != null) {\n contents[_SIP] = de_StaleIpPermissionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIP][_i]), context);\n }\n if (output.staleIpPermissionsEgress === \"\") {\n contents[_SIPE] = [];\n } else if (output[_sIPE] != null && output[_sIPE][_i] != null) {\n contents[_SIPE] = de_StaleIpPermissionSet((0, import_smithy_client.getArrayIfSingleItem)(output[_sIPE][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_StaleSecurityGroup\");\nvar de_StaleSecurityGroupSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_StaleSecurityGroup(entry, context);\n });\n}, \"de_StaleSecurityGroupSet\");\nvar de_StartDeclarativePoliciesReportResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rI] != null) {\n contents[_RIep] = (0, import_smithy_client.expectString)(output[_rI]);\n }\n return contents;\n}, \"de_StartDeclarativePoliciesReportResult\");\nvar de_StartInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_SIta] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_SIta] = de_InstanceStateChangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_StartInstancesResult\");\nvar de_StartNetworkInsightsAccessScopeAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIASAe] != null) {\n contents[_NIASAet] = de_NetworkInsightsAccessScopeAnalysis(output[_nIASAe], context);\n }\n return contents;\n}, \"de_StartNetworkInsightsAccessScopeAnalysisResult\");\nvar de_StartNetworkInsightsAnalysisResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nIA] != null) {\n contents[_NIAe] = de_NetworkInsightsAnalysis(output[_nIA], context);\n }\n return contents;\n}, \"de_StartNetworkInsightsAnalysisResult\");\nvar de_StartVpcEndpointServicePrivateDnsVerificationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_RV] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_StartVpcEndpointServicePrivateDnsVerificationResult\");\nvar de_StateReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_StateReason\");\nvar de_StopInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_SIto] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_SIto] = de_InstanceStateChangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_StopInstancesResult\");\nvar de_Storage = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S_] != null) {\n contents[_S_] = de_S3Storage(output[_S_], context);\n }\n return contents;\n}, \"de_Storage\");\nvar de_StoreImageTaskResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIm] != null) {\n contents[_AIm] = (0, import_smithy_client.expectString)(output[_aIm]);\n }\n if (output[_tSTa] != null) {\n contents[_TSTa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_tSTa]));\n }\n if (output[_bu] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_bu]);\n }\n if (output[_sKo] != null) {\n contents[_SKo] = (0, import_smithy_client.expectString)(output[_sKo]);\n }\n if (output[_pP] != null) {\n contents[_PP] = (0, import_smithy_client.strictParseInt32)(output[_pP]);\n }\n if (output[_sTS] != null) {\n contents[_STSt] = (0, import_smithy_client.expectString)(output[_sTS]);\n }\n if (output[_sTFR] != null) {\n contents[_STFR] = (0, import_smithy_client.expectString)(output[_sTFR]);\n }\n return contents;\n}, \"de_StoreImageTaskResult\");\nvar de_StoreImageTaskResultSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_StoreImageTaskResult(entry, context);\n });\n}, \"de_StoreImageTaskResultSet\");\nvar de_StringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_StringList\");\nvar de_Subnet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n if (output[_eLADI] != null) {\n contents[_ELADI] = (0, import_smithy_client.strictParseInt32)(output[_eLADI]);\n }\n if (output[_mCOIOL] != null) {\n contents[_MCOIOL] = (0, import_smithy_client.parseBoolean)(output[_mCOIOL]);\n }\n if (output[_cOIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_cOIP]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_aIAOC] != null) {\n contents[_AIAOC] = (0, import_smithy_client.parseBoolean)(output[_aIAOC]);\n }\n if (output.ipv6CidrBlockAssociationSet === \"\") {\n contents[_ICBAS] = [];\n } else if (output[_iCBAS] != null && output[_iCBAS][_i] != null) {\n contents[_ICBAS] = de_SubnetIpv6CidrBlockAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBAS][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sAub] != null) {\n contents[_SAub] = (0, import_smithy_client.expectString)(output[_sAub]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_eDn] != null) {\n contents[_EDn] = (0, import_smithy_client.parseBoolean)(output[_eDn]);\n }\n if (output[_iN] != null) {\n contents[_IN] = (0, import_smithy_client.parseBoolean)(output[_iN]);\n }\n if (output[_pDNOOL] != null) {\n contents[_PDNOOL] = de_PrivateDnsNameOptionsOnLaunch(output[_pDNOOL], context);\n }\n if (output[_bPAS] != null) {\n contents[_BPAS] = de_BlockPublicAccessStates(output[_bPAS], context);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_aIAC] != null) {\n contents[_AIAC] = (0, import_smithy_client.strictParseInt32)(output[_aIAC]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_dFA] != null) {\n contents[_DFA] = (0, import_smithy_client.parseBoolean)(output[_dFA]);\n }\n if (output[_mPIOL] != null) {\n contents[_MPIOL] = (0, import_smithy_client.parseBoolean)(output[_mPIOL]);\n }\n return contents;\n}, \"de_Subnet\");\nvar de_SubnetAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_SubnetAssociation\");\nvar de_SubnetAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetAssociation(entry, context);\n });\n}, \"de_SubnetAssociationList\");\nvar de_SubnetCidrBlockState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_SubnetCidrBlockState\");\nvar de_SubnetCidrReservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCRI] != null) {\n contents[_SCRIu] = (0, import_smithy_client.expectString)(output[_sCRI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output[_rT] != null) {\n contents[_RTe] = (0, import_smithy_client.expectString)(output[_rT]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_SubnetCidrReservation\");\nvar de_SubnetCidrReservationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetCidrReservation(entry, context);\n });\n}, \"de_SubnetCidrReservationList\");\nvar de_SubnetIpPrefixes = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output.ipPrefixSet === \"\") {\n contents[_IPpre] = [];\n } else if (output[_iPSpr] != null && output[_iPSpr][_i] != null) {\n contents[_IPpre] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpr][_i]), context);\n }\n return contents;\n}, \"de_SubnetIpPrefixes\");\nvar de_SubnetIpPrefixesList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetIpPrefixes(entry, context);\n });\n}, \"de_SubnetIpPrefixesList\");\nvar de_SubnetIpv6CidrBlockAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n if (output[_iCBS] != null) {\n contents[_ICBS] = de_SubnetCidrBlockState(output[_iCBS], context);\n }\n if (output[_iAA] != null) {\n contents[_IAA] = (0, import_smithy_client.expectString)(output[_iAA]);\n }\n if (output[_iSpo] != null) {\n contents[_ISpo] = (0, import_smithy_client.expectString)(output[_iSpo]);\n }\n return contents;\n}, \"de_SubnetIpv6CidrBlockAssociation\");\nvar de_SubnetIpv6CidrBlockAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SubnetIpv6CidrBlockAssociation(entry, context);\n });\n}, \"de_SubnetIpv6CidrBlockAssociationSet\");\nvar de_SubnetList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Subnet(entry, context);\n });\n}, \"de_SubnetList\");\nvar de_Subscription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_d] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_d]);\n }\n if (output[_met] != null) {\n contents[_Met] = (0, import_smithy_client.expectString)(output[_met]);\n }\n if (output[_stat] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_stat]);\n }\n if (output[_pe] != null) {\n contents[_Per] = (0, import_smithy_client.expectString)(output[_pe]);\n }\n return contents;\n}, \"de_Subscription\");\nvar de_SubscriptionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Subscription(entry, context);\n });\n}, \"de_SubscriptionList\");\nvar de_SuccessfulInstanceCreditSpecificationItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_SuccessfulInstanceCreditSpecificationItem\");\nvar de_SuccessfulInstanceCreditSpecificationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SuccessfulInstanceCreditSpecificationItem(entry, context);\n });\n}, \"de_SuccessfulInstanceCreditSpecificationSet\");\nvar de_SuccessfulQueuedPurchaseDeletion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rII] != null) {\n contents[_RIIe] = (0, import_smithy_client.expectString)(output[_rII]);\n }\n return contents;\n}, \"de_SuccessfulQueuedPurchaseDeletion\");\nvar de_SuccessfulQueuedPurchaseDeletionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SuccessfulQueuedPurchaseDeletion(entry, context);\n });\n}, \"de_SuccessfulQueuedPurchaseDeletionSet\");\nvar de_SupportedAdditionalProcessorFeatureList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SupportedAdditionalProcessorFeatureList\");\nvar de_SupportedIpAddressTypes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SupportedIpAddressTypes\");\nvar de_SupportedRegionDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n if (output[_sSer] != null) {\n contents[_SSe] = (0, import_smithy_client.expectString)(output[_sSer]);\n }\n return contents;\n}, \"de_SupportedRegionDetail\");\nvar de_SupportedRegionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SupportedRegionDetail(entry, context);\n });\n}, \"de_SupportedRegionSet\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_k] != null) {\n contents[_Ke] = (0, import_smithy_client.expectString)(output[_k]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_v] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_v]);\n }\n return contents;\n}, \"de_TagDescription\");\nvar de_TagDescriptionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TagDescription(entry, context);\n });\n}, \"de_TagDescriptionList\");\nvar de_TagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagList\");\nvar de_TagSpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output.Tag === \"\") {\n contents[_Ta] = [];\n } else if (output[_Tag] != null && output[_Tag][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tag][_i]), context);\n }\n return contents;\n}, \"de_TagSpecification\");\nvar de_TagSpecificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TagSpecification(entry, context);\n });\n}, \"de_TagSpecificationList\");\nvar de_TargetCapacitySpecification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tTC] != null) {\n contents[_TTC] = (0, import_smithy_client.strictParseInt32)(output[_tTC]);\n }\n if (output[_oDTC] != null) {\n contents[_ODTC] = (0, import_smithy_client.strictParseInt32)(output[_oDTC]);\n }\n if (output[_sTC] != null) {\n contents[_STC] = (0, import_smithy_client.strictParseInt32)(output[_sTC]);\n }\n if (output[_dTCT] != null) {\n contents[_DTCT] = (0, import_smithy_client.expectString)(output[_dTCT]);\n }\n if (output[_tCUT] != null) {\n contents[_TCUT] = (0, import_smithy_client.expectString)(output[_tCUT]);\n }\n return contents;\n}, \"de_TargetCapacitySpecification\");\nvar de_TargetConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iC] != null) {\n contents[_IC] = (0, import_smithy_client.strictParseInt32)(output[_iC]);\n }\n if (output[_oIf] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_oIf]);\n }\n return contents;\n}, \"de_TargetConfiguration\");\nvar de_TargetGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_ar]);\n }\n return contents;\n}, \"de_TargetGroup\");\nvar de_TargetGroups = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroup(entry, context);\n });\n}, \"de_TargetGroups\");\nvar de_TargetGroupsConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.targetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_tGa] != null && output[_tGa][_i] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_tGa][_i]), context);\n }\n return contents;\n}, \"de_TargetGroupsConfig\");\nvar de_TargetNetwork = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_tNI] != null) {\n contents[_TNI] = (0, import_smithy_client.expectString)(output[_tNI]);\n }\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_AssociationStatus(output[_sta], context);\n }\n if (output.securityGroups === \"\") {\n contents[_SG] = [];\n } else if (output[_sGe] != null && output[_sGe][_i] != null) {\n contents[_SG] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGe][_i]), context);\n }\n return contents;\n}, \"de_TargetNetwork\");\nvar de_TargetNetworkSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetNetwork(entry, context);\n });\n}, \"de_TargetNetworkSet\");\nvar de_TargetReservationValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rVe] != null) {\n contents[_RVe] = de_ReservationValue(output[_rVe], context);\n }\n if (output[_tCa] != null) {\n contents[_TCar] = de_TargetConfiguration(output[_tCa], context);\n }\n return contents;\n}, \"de_TargetReservationValue\");\nvar de_TargetReservationValueSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetReservationValue(entry, context);\n });\n}, \"de_TargetReservationValueSet\");\nvar de_TerminateClientVpnConnectionsResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cVEI] != null) {\n contents[_CVEI] = (0, import_smithy_client.expectString)(output[_cVEI]);\n }\n if (output[_us] != null) {\n contents[_Us] = (0, import_smithy_client.expectString)(output[_us]);\n }\n if (output.connectionStatuses === \"\") {\n contents[_CSonn] = [];\n } else if (output[_cSonn] != null && output[_cSonn][_i] != null) {\n contents[_CSonn] = de_TerminateConnectionStatusSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cSonn][_i]), context);\n }\n return contents;\n}, \"de_TerminateClientVpnConnectionsResult\");\nvar de_TerminateConnectionStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cIon] != null) {\n contents[_CIo] = (0, import_smithy_client.expectString)(output[_cIon]);\n }\n if (output[_pSre] != null) {\n contents[_PSre] = de_ClientVpnConnectionStatus(output[_pSre], context);\n }\n if (output[_cSur] != null) {\n contents[_CSur] = de_ClientVpnConnectionStatus(output[_cSur], context);\n }\n return contents;\n}, \"de_TerminateConnectionStatus\");\nvar de_TerminateConnectionStatusSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TerminateConnectionStatus(entry, context);\n });\n}, \"de_TerminateConnectionStatusSet\");\nvar de_TerminateInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_TIer] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_TIer] = de_InstanceStateChangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_TerminateInstancesResult\");\nvar de_ThreadsPerCoreList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.strictParseInt32)(entry);\n });\n}, \"de_ThreadsPerCoreList\");\nvar de_ThroughResourcesStatement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rSeso] != null) {\n contents[_RSe] = de_ResourceStatement(output[_rSeso], context);\n }\n return contents;\n}, \"de_ThroughResourcesStatement\");\nvar de_ThroughResourcesStatementList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ThroughResourcesStatement(entry, context);\n });\n}, \"de_ThroughResourcesStatementList\");\nvar de_TotalLocalStorageGB = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseFloat)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseFloat)(output[_ma]);\n }\n return contents;\n}, \"de_TotalLocalStorageGB\");\nvar de_TrafficMirrorFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n if (output.ingressFilterRuleSet === \"\") {\n contents[_IFRn] = [];\n } else if (output[_iFRS] != null && output[_iFRS][_i] != null) {\n contents[_IFRn] = de_TrafficMirrorFilterRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_iFRS][_i]), context);\n }\n if (output.egressFilterRuleSet === \"\") {\n contents[_EFR] = [];\n } else if (output[_eFRS] != null && output[_eFRS][_i] != null) {\n contents[_EFR] = de_TrafficMirrorFilterRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_eFRS][_i]), context);\n }\n if (output.networkServiceSet === \"\") {\n contents[_NSe] = [];\n } else if (output[_nSS] != null && output[_nSS][_i] != null) {\n contents[_NSe] = de_TrafficMirrorNetworkServiceList((0, import_smithy_client.getArrayIfSingleItem)(output[_nSS][_i]), context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrafficMirrorFilter\");\nvar de_TrafficMirrorFilterRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMFRI] != null) {\n contents[_TMFRI] = (0, import_smithy_client.expectString)(output[_tMFRI]);\n }\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n if (output[_tDr] != null) {\n contents[_TD] = (0, import_smithy_client.expectString)(output[_tDr]);\n }\n if (output[_rN] != null) {\n contents[_RNu] = (0, import_smithy_client.strictParseInt32)(output[_rN]);\n }\n if (output[_rA] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_rA]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.strictParseInt32)(output[_pr]);\n }\n if (output[_dPR] != null) {\n contents[_DPR] = de_TrafficMirrorPortRange(output[_dPR], context);\n }\n if (output[_sPR] != null) {\n contents[_SPR] = de_TrafficMirrorPortRange(output[_sPR], context);\n }\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_sCB] != null) {\n contents[_SCB] = (0, import_smithy_client.expectString)(output[_sCB]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrafficMirrorFilterRule\");\nvar de_TrafficMirrorFilterRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorFilterRule(entry, context);\n });\n}, \"de_TrafficMirrorFilterRuleList\");\nvar de_TrafficMirrorFilterRuleSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorFilterRule(entry, context);\n });\n}, \"de_TrafficMirrorFilterRuleSet\");\nvar de_TrafficMirrorFilterSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorFilter(entry, context);\n });\n}, \"de_TrafficMirrorFilterSet\");\nvar de_TrafficMirrorNetworkServiceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_TrafficMirrorNetworkServiceList\");\nvar de_TrafficMirrorPortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n return contents;\n}, \"de_TrafficMirrorPortRange\");\nvar de_TrafficMirrorSession = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMSI] != null) {\n contents[_TMSI] = (0, import_smithy_client.expectString)(output[_tMSI]);\n }\n if (output[_tMTI] != null) {\n contents[_TMTI] = (0, import_smithy_client.expectString)(output[_tMTI]);\n }\n if (output[_tMFI] != null) {\n contents[_TMFI] = (0, import_smithy_client.expectString)(output[_tMFI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pLa] != null) {\n contents[_PL] = (0, import_smithy_client.strictParseInt32)(output[_pLa]);\n }\n if (output[_sNes] != null) {\n contents[_SN] = (0, import_smithy_client.strictParseInt32)(output[_sNes]);\n }\n if (output[_vNI] != null) {\n contents[_VNI] = (0, import_smithy_client.strictParseInt32)(output[_vNI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrafficMirrorSession\");\nvar de_TrafficMirrorSessionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorSession(entry, context);\n });\n}, \"de_TrafficMirrorSessionSet\");\nvar de_TrafficMirrorTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tMTI] != null) {\n contents[_TMTI] = (0, import_smithy_client.expectString)(output[_tMTI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_nLBA] != null) {\n contents[_NLBA] = (0, import_smithy_client.expectString)(output[_nLBA]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_gLBEI] != null) {\n contents[_GLBEI] = (0, import_smithy_client.expectString)(output[_gLBEI]);\n }\n return contents;\n}, \"de_TrafficMirrorTarget\");\nvar de_TrafficMirrorTargetSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficMirrorTarget(entry, context);\n });\n}, \"de_TrafficMirrorTargetSet\");\nvar de_TransitGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_tGAra] != null) {\n contents[_TGAran] = (0, import_smithy_client.expectString)(output[_tGAra]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayOptions(output[_opt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGateway\");\nvar de_TransitGatewayAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayAssociation\");\nvar de_TransitGatewayAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_tGOI] != null) {\n contents[_TGOI] = (0, import_smithy_client.expectString)(output[_tGOI]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ass] != null) {\n contents[_Asso] = de_TransitGatewayAttachmentAssociation(output[_ass], context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayAttachment\");\nvar de_TransitGatewayAttachmentAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayAttachmentAssociation\");\nvar de_TransitGatewayAttachmentBgpConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAran] != null) {\n contents[_TGArans] = (0, import_smithy_client.strictParseLong)(output[_tGAran]);\n }\n if (output[_pAee] != null) {\n contents[_PAee] = (0, import_smithy_client.strictParseLong)(output[_pAee]);\n }\n if (output[_tGArans] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_tGArans]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output[_bSg] != null) {\n contents[_BS] = (0, import_smithy_client.expectString)(output[_bSg]);\n }\n return contents;\n}, \"de_TransitGatewayAttachmentBgpConfiguration\");\nvar de_TransitGatewayAttachmentBgpConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayAttachmentBgpConfiguration(entry, context);\n });\n}, \"de_TransitGatewayAttachmentBgpConfigurationList\");\nvar de_TransitGatewayAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayAttachment(entry, context);\n });\n}, \"de_TransitGatewayAttachmentList\");\nvar de_TransitGatewayAttachmentPropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayAttachmentPropagation\");\nvar de_TransitGatewayAttachmentPropagationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayAttachmentPropagation(entry, context);\n });\n}, \"de_TransitGatewayAttachmentPropagationList\");\nvar de_TransitGatewayConnect = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tTGAI] != null) {\n contents[_TTGAI] = (0, import_smithy_client.expectString)(output[_tTGAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayConnectOptions(output[_opt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayConnect\");\nvar de_TransitGatewayConnectList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayConnect(entry, context);\n });\n}, \"de_TransitGatewayConnectList\");\nvar de_TransitGatewayConnectOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n return contents;\n}, \"de_TransitGatewayConnectOptions\");\nvar de_TransitGatewayConnectPeer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tGCPI] != null) {\n contents[_TGCPI] = (0, import_smithy_client.expectString)(output[_tGCPI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_cPC] != null) {\n contents[_CPC] = de_TransitGatewayConnectPeerConfiguration(output[_cPC], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayConnectPeer\");\nvar de_TransitGatewayConnectPeerConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGArans] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_tGArans]);\n }\n if (output[_pAe] != null) {\n contents[_PAe] = (0, import_smithy_client.expectString)(output[_pAe]);\n }\n if (output.insideCidrBlocks === \"\") {\n contents[_ICBn] = [];\n } else if (output[_iCBn] != null && output[_iCBn][_i] != null) {\n contents[_ICBn] = de_InsideCidrBlocksStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBn][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output.bgpConfigurations === \"\") {\n contents[_BCg] = [];\n } else if (output[_bCg] != null && output[_bCg][_i] != null) {\n contents[_BCg] = de_TransitGatewayAttachmentBgpConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(output[_bCg][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayConnectPeerConfiguration\");\nvar de_TransitGatewayConnectPeerList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayConnectPeer(entry, context);\n });\n}, \"de_TransitGatewayConnectPeerList\");\nvar de_TransitGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGateway(entry, context);\n });\n}, \"de_TransitGatewayList\");\nvar de_TransitGatewayMulticastDeregisteredGroupMembers = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.deregisteredNetworkInterfaceIds === \"\") {\n contents[_DNII] = [];\n } else if (output[_dNII] != null && output[_dNII][_i] != null) {\n contents[_DNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDeregisteredGroupMembers\");\nvar de_TransitGatewayMulticastDeregisteredGroupSources = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.deregisteredNetworkInterfaceIds === \"\") {\n contents[_DNII] = [];\n } else if (output[_dNII] != null && output[_dNII][_i] != null) {\n contents[_DNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_dNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDeregisteredGroupSources\");\nvar de_TransitGatewayMulticastDomain = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_tGMDA] != null) {\n contents[_TGMDA] = (0, import_smithy_client.expectString)(output[_tGMDA]);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayMulticastDomainOptions(output[_opt], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomain\");\nvar de_TransitGatewayMulticastDomainAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_su] != null) {\n contents[_Su] = de_SubnetAssociation(output[_su], context);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomainAssociation\");\nvar de_TransitGatewayMulticastDomainAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayMulticastDomainAssociation(entry, context);\n });\n}, \"de_TransitGatewayMulticastDomainAssociationList\");\nvar de_TransitGatewayMulticastDomainAssociations = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output.subnets === \"\") {\n contents[_Subn] = [];\n } else if (output[_sub] != null && output[_sub][_i] != null) {\n contents[_Subn] = de_SubnetAssociationList((0, import_smithy_client.getArrayIfSingleItem)(output[_sub][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomainAssociations\");\nvar de_TransitGatewayMulticastDomainList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayMulticastDomain(entry, context);\n });\n}, \"de_TransitGatewayMulticastDomainList\");\nvar de_TransitGatewayMulticastDomainOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iSg] != null) {\n contents[_ISg] = (0, import_smithy_client.expectString)(output[_iSg]);\n }\n if (output[_sSS] != null) {\n contents[_SSS] = (0, import_smithy_client.expectString)(output[_sSS]);\n }\n if (output[_aASA] != null) {\n contents[_AASA] = (0, import_smithy_client.expectString)(output[_aASA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastDomainOptions\");\nvar de_TransitGatewayMulticastGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_sIu] != null) {\n contents[_SIub] = (0, import_smithy_client.expectString)(output[_sIu]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rOI] != null) {\n contents[_ROI] = (0, import_smithy_client.expectString)(output[_rOI]);\n }\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_gM] != null) {\n contents[_GM] = (0, import_smithy_client.parseBoolean)(output[_gM]);\n }\n if (output[_gSr] != null) {\n contents[_GS] = (0, import_smithy_client.parseBoolean)(output[_gSr]);\n }\n if (output[_mTe] != null) {\n contents[_MTe] = (0, import_smithy_client.expectString)(output[_mTe]);\n }\n if (output[_sTo] != null) {\n contents[_STo] = (0, import_smithy_client.expectString)(output[_sTo]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastGroup\");\nvar de_TransitGatewayMulticastGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayMulticastGroup(entry, context);\n });\n}, \"de_TransitGatewayMulticastGroupList\");\nvar de_TransitGatewayMulticastRegisteredGroupMembers = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.registeredNetworkInterfaceIds === \"\") {\n contents[_RNII] = [];\n } else if (output[_rNII] != null && output[_rNII][_i] != null) {\n contents[_RNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastRegisteredGroupMembers\");\nvar de_TransitGatewayMulticastRegisteredGroupSources = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGMDI] != null) {\n contents[_TGMDI] = (0, import_smithy_client.expectString)(output[_tGMDI]);\n }\n if (output.registeredNetworkInterfaceIds === \"\") {\n contents[_RNII] = [];\n } else if (output[_rNII] != null && output[_rNII][_i] != null) {\n contents[_RNII] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rNII][_i]), context);\n }\n if (output[_gIA] != null) {\n contents[_GIA] = (0, import_smithy_client.expectString)(output[_gIA]);\n }\n return contents;\n}, \"de_TransitGatewayMulticastRegisteredGroupSources\");\nvar de_TransitGatewayOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSA] != null) {\n contents[_ASA] = (0, import_smithy_client.strictParseLong)(output[_aSA]);\n }\n if (output.transitGatewayCidrBlocks === \"\") {\n contents[_TGCB] = [];\n } else if (output[_tGCB] != null && output[_tGCB][_i] != null) {\n contents[_TGCB] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGCB][_i]), context);\n }\n if (output[_aASAu] != null) {\n contents[_AASAu] = (0, import_smithy_client.expectString)(output[_aASAu]);\n }\n if (output[_dRTA] != null) {\n contents[_DRTA] = (0, import_smithy_client.expectString)(output[_dRTA]);\n }\n if (output[_aDRTI] != null) {\n contents[_ADRTI] = (0, import_smithy_client.expectString)(output[_aDRTI]);\n }\n if (output[_dRTP] != null) {\n contents[_DRTP] = (0, import_smithy_client.expectString)(output[_dRTP]);\n }\n if (output[_pDRTI] != null) {\n contents[_PDRTI] = (0, import_smithy_client.expectString)(output[_pDRTI]);\n }\n if (output[_vESpn] != null) {\n contents[_VES] = (0, import_smithy_client.expectString)(output[_vESpn]);\n }\n if (output[_dSn] != null) {\n contents[_DSns] = (0, import_smithy_client.expectString)(output[_dSn]);\n }\n if (output[_sGRSec] != null) {\n contents[_SGRS] = (0, import_smithy_client.expectString)(output[_sGRSec]);\n }\n if (output[_mSu] != null) {\n contents[_MSu] = (0, import_smithy_client.expectString)(output[_mSu]);\n }\n return contents;\n}, \"de_TransitGatewayOptions\");\nvar de_TransitGatewayPeeringAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_aTGAI] != null) {\n contents[_ATGAI] = (0, import_smithy_client.expectString)(output[_aTGAI]);\n }\n if (output[_rTIe] != null) {\n contents[_RTIe] = de_PeeringTgwInfo(output[_rTIe], context);\n }\n if (output[_aTI] != null) {\n contents[_ATIc] = de_PeeringTgwInfo(output[_aTI], context);\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayPeeringAttachmentOptions(output[_opt], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_PeeringAttachmentStatus(output[_sta], context);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayPeeringAttachment\");\nvar de_TransitGatewayPeeringAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPeeringAttachment(entry, context);\n });\n}, \"de_TransitGatewayPeeringAttachmentList\");\nvar de_TransitGatewayPeeringAttachmentOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dRy] != null) {\n contents[_DRy] = (0, import_smithy_client.expectString)(output[_dRy]);\n }\n return contents;\n}, \"de_TransitGatewayPeeringAttachmentOptions\");\nvar de_TransitGatewayPolicyRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sCB] != null) {\n contents[_SCB] = (0, import_smithy_client.expectString)(output[_sCB]);\n }\n if (output[_sPR] != null) {\n contents[_SPR] = (0, import_smithy_client.expectString)(output[_sPR]);\n }\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_dPR] != null) {\n contents[_DPR] = (0, import_smithy_client.expectString)(output[_dPR]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_mDe] != null) {\n contents[_MDe] = de_TransitGatewayPolicyRuleMetaData(output[_mDe], context);\n }\n return contents;\n}, \"de_TransitGatewayPolicyRule\");\nvar de_TransitGatewayPolicyRuleMetaData = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_mDK] != null) {\n contents[_MDK] = (0, import_smithy_client.expectString)(output[_mDK]);\n }\n if (output[_mDV] != null) {\n contents[_MDV] = (0, import_smithy_client.expectString)(output[_mDV]);\n }\n return contents;\n}, \"de_TransitGatewayPolicyRuleMetaData\");\nvar de_TransitGatewayPolicyTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPTI] != null) {\n contents[_TGPTI] = (0, import_smithy_client.expectString)(output[_tGPTI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayPolicyTable\");\nvar de_TransitGatewayPolicyTableAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGPTI] != null) {\n contents[_TGPTI] = (0, import_smithy_client.expectString)(output[_tGPTI]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayPolicyTableAssociation\");\nvar de_TransitGatewayPolicyTableAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPolicyTableAssociation(entry, context);\n });\n}, \"de_TransitGatewayPolicyTableAssociationList\");\nvar de_TransitGatewayPolicyTableEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pRN] != null) {\n contents[_PRNo] = (0, import_smithy_client.expectString)(output[_pRN]);\n }\n if (output[_pRol] != null) {\n contents[_PRol] = de_TransitGatewayPolicyRule(output[_pRol], context);\n }\n if (output[_tRTI] != null) {\n contents[_TRTI] = (0, import_smithy_client.expectString)(output[_tRTI]);\n }\n return contents;\n}, \"de_TransitGatewayPolicyTableEntry\");\nvar de_TransitGatewayPolicyTableEntryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPolicyTableEntry(entry, context);\n });\n}, \"de_TransitGatewayPolicyTableEntryList\");\nvar de_TransitGatewayPolicyTableList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPolicyTable(entry, context);\n });\n}, \"de_TransitGatewayPolicyTableList\");\nvar de_TransitGatewayPrefixListAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n return contents;\n}, \"de_TransitGatewayPrefixListAttachment\");\nvar de_TransitGatewayPrefixListReference = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_pLOI] != null) {\n contents[_PLOI] = (0, import_smithy_client.expectString)(output[_pLOI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_bl] != null) {\n contents[_Bl] = (0, import_smithy_client.parseBoolean)(output[_bl]);\n }\n if (output[_tGAr] != null) {\n contents[_TGAra] = de_TransitGatewayPrefixListAttachment(output[_tGAr], context);\n }\n return contents;\n}, \"de_TransitGatewayPrefixListReference\");\nvar de_TransitGatewayPrefixListReferenceSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayPrefixListReference(entry, context);\n });\n}, \"de_TransitGatewayPrefixListReferenceSet\");\nvar de_TransitGatewayPropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n return contents;\n}, \"de_TransitGatewayPropagation\");\nvar de_TransitGatewayRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n if (output.transitGatewayAttachments === \"\") {\n contents[_TGAr] = [];\n } else if (output[_tGA] != null && output[_tGA][_i] != null) {\n contents[_TGAr] = de_TransitGatewayRouteAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_tGA][_i]), context);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayRoute\");\nvar de_TransitGatewayRouteAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n return contents;\n}, \"de_TransitGatewayRouteAttachment\");\nvar de_TransitGatewayRouteAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteAttachment(entry, context);\n });\n}, \"de_TransitGatewayRouteAttachmentList\");\nvar de_TransitGatewayRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRoute(entry, context);\n });\n}, \"de_TransitGatewayRouteList\");\nvar de_TransitGatewayRouteTable = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_dART] != null) {\n contents[_DART] = (0, import_smithy_client.parseBoolean)(output[_dART]);\n }\n if (output[_dPRT] != null) {\n contents[_DPRT] = (0, import_smithy_client.parseBoolean)(output[_dPRT]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayRouteTable\");\nvar de_TransitGatewayRouteTableAnnouncement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cNIo] != null) {\n contents[_CNIor] = (0, import_smithy_client.expectString)(output[_cNIo]);\n }\n if (output[_pTGI] != null) {\n contents[_PTGI] = (0, import_smithy_client.expectString)(output[_pTGI]);\n }\n if (output[_pCNI] != null) {\n contents[_PCNI] = (0, import_smithy_client.expectString)(output[_pCNI]);\n }\n if (output[_pAI] != null) {\n contents[_PAIe] = (0, import_smithy_client.expectString)(output[_pAI]);\n }\n if (output[_aDn] != null) {\n contents[_ADn] = (0, import_smithy_client.expectString)(output[_aDn]);\n }\n if (output[_tGRTI] != null) {\n contents[_TGRTI] = (0, import_smithy_client.expectString)(output[_tGRTI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayRouteTableAnnouncement\");\nvar de_TransitGatewayRouteTableAnnouncementList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTableAnnouncement(entry, context);\n });\n}, \"de_TransitGatewayRouteTableAnnouncementList\");\nvar de_TransitGatewayRouteTableAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_TransitGatewayRouteTableAssociation\");\nvar de_TransitGatewayRouteTableAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTableAssociation(entry, context);\n });\n}, \"de_TransitGatewayRouteTableAssociationList\");\nvar de_TransitGatewayRouteTableList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTable(entry, context);\n });\n}, \"de_TransitGatewayRouteTableList\");\nvar de_TransitGatewayRouteTablePropagation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_tGRTAI] != null) {\n contents[_TGRTAI] = (0, import_smithy_client.expectString)(output[_tGRTAI]);\n }\n return contents;\n}, \"de_TransitGatewayRouteTablePropagation\");\nvar de_TransitGatewayRouteTablePropagationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayRouteTablePropagation(entry, context);\n });\n}, \"de_TransitGatewayRouteTablePropagationList\");\nvar de_TransitGatewayRouteTableRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dC] != null) {\n contents[_DCe] = (0, import_smithy_client.expectString)(output[_dC]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_rOo] != null) {\n contents[_ROo] = (0, import_smithy_client.expectString)(output[_rOo]);\n }\n if (output[_pLI] != null) {\n contents[_PLI] = (0, import_smithy_client.expectString)(output[_pLI]);\n }\n if (output[_aIt] != null) {\n contents[_AIt] = (0, import_smithy_client.expectString)(output[_aIt]);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n if (output[_rTe] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(output[_rTe]);\n }\n return contents;\n}, \"de_TransitGatewayRouteTableRoute\");\nvar de_TransitGatewayVpcAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_tGAI] != null) {\n contents[_TGAI] = (0, import_smithy_client.expectString)(output[_tGAI]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vOIp] != null) {\n contents[_VOIp] = (0, import_smithy_client.expectString)(output[_vOIp]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output.subnetIds === \"\") {\n contents[_SIu] = [];\n } else if (output[_sIub] != null && output[_sIub][_i] != null) {\n contents[_SIu] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sIub][_i]), context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTre]));\n }\n if (output[_opt] != null) {\n contents[_Op] = de_TransitGatewayVpcAttachmentOptions(output[_opt], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TransitGatewayVpcAttachment\");\nvar de_TransitGatewayVpcAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TransitGatewayVpcAttachment(entry, context);\n });\n}, \"de_TransitGatewayVpcAttachmentList\");\nvar de_TransitGatewayVpcAttachmentOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dSn] != null) {\n contents[_DSns] = (0, import_smithy_client.expectString)(output[_dSn]);\n }\n if (output[_sGRSec] != null) {\n contents[_SGRS] = (0, import_smithy_client.expectString)(output[_sGRSec]);\n }\n if (output[_iSpvu] != null) {\n contents[_ISp] = (0, import_smithy_client.expectString)(output[_iSpvu]);\n }\n if (output[_aMSp] != null) {\n contents[_AMS] = (0, import_smithy_client.expectString)(output[_aMSp]);\n }\n return contents;\n}, \"de_TransitGatewayVpcAttachmentOptions\");\nvar de_TrunkInterfaceAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_bII] != null) {\n contents[_BII] = (0, import_smithy_client.expectString)(output[_bII]);\n }\n if (output[_tII] != null) {\n contents[_TII] = (0, import_smithy_client.expectString)(output[_tII]);\n }\n if (output[_iPnte] != null) {\n contents[_IPnte] = (0, import_smithy_client.expectString)(output[_iPnte]);\n }\n if (output[_vIl] != null) {\n contents[_VIl] = (0, import_smithy_client.strictParseInt32)(output[_vIl]);\n }\n if (output[_gK] != null) {\n contents[_GK] = (0, import_smithy_client.strictParseInt32)(output[_gK]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_TrunkInterfaceAssociation\");\nvar de_TrunkInterfaceAssociationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrunkInterfaceAssociation(entry, context);\n });\n}, \"de_TrunkInterfaceAssociationList\");\nvar de_TunnelOption = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oIA] != null) {\n contents[_OIA] = (0, import_smithy_client.expectString)(output[_oIA]);\n }\n if (output[_tICu] != null) {\n contents[_TIC] = (0, import_smithy_client.expectString)(output[_tICu]);\n }\n if (output[_tIIC] != null) {\n contents[_TIIC] = (0, import_smithy_client.expectString)(output[_tIIC]);\n }\n if (output[_pSK] != null) {\n contents[_PSK] = (0, import_smithy_client.expectString)(output[_pSK]);\n }\n if (output[_pLSh] != null) {\n contents[_PLS] = (0, import_smithy_client.strictParseInt32)(output[_pLSh]);\n }\n if (output[_pLSha] != null) {\n contents[_PLSh] = (0, import_smithy_client.strictParseInt32)(output[_pLSha]);\n }\n if (output[_rMTS] != null) {\n contents[_RMTS] = (0, import_smithy_client.strictParseInt32)(output[_rMTS]);\n }\n if (output[_rFP] != null) {\n contents[_RFP] = (0, import_smithy_client.strictParseInt32)(output[_rFP]);\n }\n if (output[_rWS] != null) {\n contents[_RWS] = (0, import_smithy_client.strictParseInt32)(output[_rWS]);\n }\n if (output[_dTS] != null) {\n contents[_DTS] = (0, import_smithy_client.strictParseInt32)(output[_dTS]);\n }\n if (output[_dTA] != null) {\n contents[_DTA] = (0, import_smithy_client.expectString)(output[_dTA]);\n }\n if (output.phase1EncryptionAlgorithmSet === \"\") {\n contents[_PEA] = [];\n } else if (output[_pEAS] != null && output[_pEAS][_i] != null) {\n contents[_PEA] = de_Phase1EncryptionAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pEAS][_i]), context);\n }\n if (output.phase2EncryptionAlgorithmSet === \"\") {\n contents[_PEAh] = [];\n } else if (output[_pEASh] != null && output[_pEASh][_i] != null) {\n contents[_PEAh] = de_Phase2EncryptionAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pEASh][_i]), context);\n }\n if (output.phase1IntegrityAlgorithmSet === \"\") {\n contents[_PIAh] = [];\n } else if (output[_pIASh] != null && output[_pIASh][_i] != null) {\n contents[_PIAh] = de_Phase1IntegrityAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIASh][_i]), context);\n }\n if (output.phase2IntegrityAlgorithmSet === \"\") {\n contents[_PIAha] = [];\n } else if (output[_pIASha] != null && output[_pIASha][_i] != null) {\n contents[_PIAha] = de_Phase2IntegrityAlgorithmsList((0, import_smithy_client.getArrayIfSingleItem)(output[_pIASha][_i]), context);\n }\n if (output.phase1DHGroupNumberSet === \"\") {\n contents[_PDHGN] = [];\n } else if (output[_pDHGNS] != null && output[_pDHGNS][_i] != null) {\n contents[_PDHGN] = de_Phase1DHGroupNumbersList((0, import_smithy_client.getArrayIfSingleItem)(output[_pDHGNS][_i]), context);\n }\n if (output.phase2DHGroupNumberSet === \"\") {\n contents[_PDHGNh] = [];\n } else if (output[_pDHGNSh] != null && output[_pDHGNSh][_i] != null) {\n contents[_PDHGNh] = de_Phase2DHGroupNumbersList((0, import_smithy_client.getArrayIfSingleItem)(output[_pDHGNSh][_i]), context);\n }\n if (output.ikeVersionSet === \"\") {\n contents[_IVk] = [];\n } else if (output[_iVS] != null && output[_iVS][_i] != null) {\n contents[_IVk] = de_IKEVersionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_iVS][_i]), context);\n }\n if (output[_sAt] != null) {\n contents[_SA] = (0, import_smithy_client.expectString)(output[_sAt]);\n }\n if (output[_lO] != null) {\n contents[_LO] = de_VpnTunnelLogOptions(output[_lO], context);\n }\n if (output[_eTLC] != null) {\n contents[_ETLC] = (0, import_smithy_client.parseBoolean)(output[_eTLC]);\n }\n return contents;\n}, \"de_TunnelOption\");\nvar de_TunnelOptionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TunnelOption(entry, context);\n });\n}, \"de_TunnelOptionsList\");\nvar de_UnassignIpv6AddressesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output.unassignedIpv6Addresses === \"\") {\n contents[_UIAn] = [];\n } else if (output[_uIA] != null && output[_uIA][_i] != null) {\n contents[_UIAn] = de_Ipv6AddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIA][_i]), context);\n }\n if (output.unassignedIpv6PrefixSet === \"\") {\n contents[_UIPn] = [];\n } else if (output[_uIPSn] != null && output[_uIPSn][_i] != null) {\n contents[_UIPn] = de_IpPrefixList((0, import_smithy_client.getArrayIfSingleItem)(output[_uIPSn][_i]), context);\n }\n return contents;\n}, \"de_UnassignIpv6AddressesResult\");\nvar de_UnassignPrivateNatGatewayAddressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nGI] != null) {\n contents[_NGI] = (0, import_smithy_client.expectString)(output[_nGI]);\n }\n if (output.natGatewayAddressSet === \"\") {\n contents[_NGA] = [];\n } else if (output[_nGAS] != null && output[_nGAS][_i] != null) {\n contents[_NGA] = de_NatGatewayAddressList((0, import_smithy_client.getArrayIfSingleItem)(output[_nGAS][_i]), context);\n }\n return contents;\n}, \"de_UnassignPrivateNatGatewayAddressResult\");\nvar de_UnlockSnapshotResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n return contents;\n}, \"de_UnlockSnapshotResult\");\nvar de_UnmonitorInstancesResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.instancesSet === \"\") {\n contents[_IMn] = [];\n } else if (output[_iSn] != null && output[_iSn][_i] != null) {\n contents[_IMn] = de_InstanceMonitoringList((0, import_smithy_client.getArrayIfSingleItem)(output[_iSn][_i]), context);\n }\n return contents;\n}, \"de_UnmonitorInstancesResult\");\nvar de_UnsuccessfulInstanceCreditSpecificationItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_er] != null) {\n contents[_Er] = de_UnsuccessfulInstanceCreditSpecificationItemError(output[_er], context);\n }\n return contents;\n}, \"de_UnsuccessfulInstanceCreditSpecificationItem\");\nvar de_UnsuccessfulInstanceCreditSpecificationItemError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_UnsuccessfulInstanceCreditSpecificationItemError\");\nvar de_UnsuccessfulInstanceCreditSpecificationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UnsuccessfulInstanceCreditSpecificationItem(entry, context);\n });\n}, \"de_UnsuccessfulInstanceCreditSpecificationSet\");\nvar de_UnsuccessfulItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_er] != null) {\n contents[_Er] = de_UnsuccessfulItemError(output[_er], context);\n }\n if (output[_rIes] != null) {\n contents[_RIeso] = (0, import_smithy_client.expectString)(output[_rIes]);\n }\n return contents;\n}, \"de_UnsuccessfulItem\");\nvar de_UnsuccessfulItemError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_UnsuccessfulItemError\");\nvar de_UnsuccessfulItemList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UnsuccessfulItem(entry, context);\n });\n}, \"de_UnsuccessfulItemList\");\nvar de_UnsuccessfulItemSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UnsuccessfulItem(entry, context);\n });\n}, \"de_UnsuccessfulItemSet\");\nvar de_UpdateSecurityGroupRuleDescriptionsEgressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_UpdateSecurityGroupRuleDescriptionsEgressResult\");\nvar de_UpdateSecurityGroupRuleDescriptionsIngressResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_r] != null) {\n contents[_Ret] = (0, import_smithy_client.parseBoolean)(output[_r]);\n }\n return contents;\n}, \"de_UpdateSecurityGroupRuleDescriptionsIngressResult\");\nvar de_UsageClassTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_UsageClassTypeList\");\nvar de_UserBucketDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sB] != null) {\n contents[_SB] = (0, import_smithy_client.expectString)(output[_sB]);\n }\n if (output[_sK] != null) {\n contents[_SK] = (0, import_smithy_client.expectString)(output[_sK]);\n }\n return contents;\n}, \"de_UserBucketDetails\");\nvar de_UserIdGroupPair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_uI] != null) {\n contents[_UIs] = (0, import_smithy_client.expectString)(output[_uI]);\n }\n if (output[_gN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_gN]);\n }\n if (output[_gIr] != null) {\n contents[_GIr] = (0, import_smithy_client.expectString)(output[_gIr]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n if (output[_pSee] != null) {\n contents[_PSe] = (0, import_smithy_client.expectString)(output[_pSee]);\n }\n return contents;\n}, \"de_UserIdGroupPair\");\nvar de_UserIdGroupPairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UserIdGroupPair(entry, context);\n });\n}, \"de_UserIdGroupPairList\");\nvar de_UserIdGroupPairSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UserIdGroupPair(entry, context);\n });\n}, \"de_UserIdGroupPairSet\");\nvar de_ValidationError = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_ValidationError\");\nvar de_ValidationWarning = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.errorSet === \"\") {\n contents[_Err] = [];\n } else if (output[_eSr] != null && output[_eSr][_i] != null) {\n contents[_Err] = de_ErrorSet((0, import_smithy_client.getArrayIfSingleItem)(output[_eSr][_i]), context);\n }\n return contents;\n}, \"de_ValidationWarning\");\nvar de_ValueStringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ValueStringList\");\nvar de_VCpuCountRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_M] = (0, import_smithy_client.strictParseInt32)(output[_m]);\n }\n if (output[_ma] != null) {\n contents[_Ma] = (0, import_smithy_client.strictParseInt32)(output[_ma]);\n }\n return contents;\n}, \"de_VCpuCountRange\");\nvar de_VCpuInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dVC] != null) {\n contents[_DVCef] = (0, import_smithy_client.strictParseInt32)(output[_dVC]);\n }\n if (output[_dCe] != null) {\n contents[_DCef] = (0, import_smithy_client.strictParseInt32)(output[_dCe]);\n }\n if (output[_dTPC] != null) {\n contents[_DTPC] = (0, import_smithy_client.strictParseInt32)(output[_dTPC]);\n }\n if (output.validCores === \"\") {\n contents[_VCa] = [];\n } else if (output[_vCa] != null && output[_vCa][_i] != null) {\n contents[_VCa] = de_CoreCountList((0, import_smithy_client.getArrayIfSingleItem)(output[_vCa][_i]), context);\n }\n if (output.validThreadsPerCore === \"\") {\n contents[_VTPC] = [];\n } else if (output[_vTPC] != null && output[_vTPC][_i] != null) {\n contents[_VTPC] = de_ThreadsPerCoreList((0, import_smithy_client.getArrayIfSingleItem)(output[_vTPC][_i]), context);\n }\n return contents;\n}, \"de_VCpuInfo\");\nvar de_VerifiedAccessEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_vAGI] != null) {\n contents[_VAGI] = (0, import_smithy_client.expectString)(output[_vAGI]);\n }\n if (output[_vAEI] != null) {\n contents[_VAEI] = (0, import_smithy_client.expectString)(output[_vAEI]);\n }\n if (output[_aDp] != null) {\n contents[_ADp] = (0, import_smithy_client.expectString)(output[_aDp]);\n }\n if (output[_eTnd] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(output[_eTnd]);\n }\n if (output[_aTtta] != null) {\n contents[_ATt] = (0, import_smithy_client.expectString)(output[_aTtta]);\n }\n if (output[_dCA] != null) {\n contents[_DCA] = (0, import_smithy_client.expectString)(output[_dCA]);\n }\n if (output[_eDnd] != null) {\n contents[_EDnd] = (0, import_smithy_client.expectString)(output[_eDnd]);\n }\n if (output[_dVD] != null) {\n contents[_DVD] = (0, import_smithy_client.expectString)(output[_dVD]);\n }\n if (output.securityGroupIdSet === \"\") {\n contents[_SGI] = [];\n } else if (output[_sGIS] != null && output[_sGIS][_i] != null) {\n contents[_SGI] = de_SecurityGroupIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sGIS][_i]), context);\n }\n if (output[_lBO] != null) {\n contents[_LBO] = de_VerifiedAccessEndpointLoadBalancerOptions(output[_lBO], context);\n }\n if (output[_nIO] != null) {\n contents[_NIO] = de_VerifiedAccessEndpointEniOptions(output[_nIO], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_VerifiedAccessEndpointStatus(output[_sta], context);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output[_dT] != null) {\n contents[_DTel] = (0, import_smithy_client.expectString)(output[_dT]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n if (output[_rOd] != null) {\n contents[_RO] = de_VerifiedAccessEndpointRdsOptions(output[_rOd], context);\n }\n if (output[_cOi] != null) {\n contents[_CO] = de_VerifiedAccessEndpointCidrOptions(output[_cOi], context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpoint\");\nvar de_VerifiedAccessEndpointCidrOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_VerifiedAccessEndpointPortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_VerifiedAccessEndpointSubnetIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointCidrOptions\");\nvar de_VerifiedAccessEndpointEniOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_nII] != null) {\n contents[_NII] = (0, import_smithy_client.expectString)(output[_nII]);\n }\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_VerifiedAccessEndpointPortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointEniOptions\");\nvar de_VerifiedAccessEndpointList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessEndpoint(entry, context);\n });\n}, \"de_VerifiedAccessEndpointList\");\nvar de_VerifiedAccessEndpointLoadBalancerOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output[_lBA] != null) {\n contents[_LBAo] = (0, import_smithy_client.expectString)(output[_lBA]);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_VerifiedAccessEndpointSubnetIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n if (output.portRangeSet === \"\") {\n contents[_PRo] = [];\n } else if (output[_pRS] != null && output[_pRS][_i] != null) {\n contents[_PRo] = de_VerifiedAccessEndpointPortRangeList((0, import_smithy_client.getArrayIfSingleItem)(output[_pRS][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointLoadBalancerOptions\");\nvar de_VerifiedAccessEndpointPortRange = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_fP] != null) {\n contents[_FP] = (0, import_smithy_client.strictParseInt32)(output[_fP]);\n }\n if (output[_tPo] != null) {\n contents[_TP] = (0, import_smithy_client.strictParseInt32)(output[_tPo]);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointPortRange\");\nvar de_VerifiedAccessEndpointPortRangeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessEndpointPortRange(entry, context);\n });\n}, \"de_VerifiedAccessEndpointPortRangeList\");\nvar de_VerifiedAccessEndpointRdsOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_pr] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_pr]);\n }\n if (output[_po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_po]);\n }\n if (output[_rDIA] != null) {\n contents[_RDIA] = (0, import_smithy_client.expectString)(output[_rDIA]);\n }\n if (output[_rDCA] != null) {\n contents[_RDCA] = (0, import_smithy_client.expectString)(output[_rDCA]);\n }\n if (output[_rDPA] != null) {\n contents[_RDPA] = (0, import_smithy_client.expectString)(output[_rDPA]);\n }\n if (output[_rEd] != null) {\n contents[_RE] = (0, import_smithy_client.expectString)(output[_rEd]);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_VerifiedAccessEndpointSubnetIdList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointRdsOptions\");\nvar de_VerifiedAccessEndpointStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointStatus\");\nvar de_VerifiedAccessEndpointSubnetIdList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_VerifiedAccessEndpointSubnetIdList\");\nvar de_VerifiedAccessEndpointTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAEI] != null) {\n contents[_VAEI] = (0, import_smithy_client.expectString)(output[_vAEI]);\n }\n if (output[_vAETIA] != null) {\n contents[_VAETIA] = (0, import_smithy_client.expectString)(output[_vAETIA]);\n }\n if (output[_vAETD] != null) {\n contents[_VAETD] = (0, import_smithy_client.expectString)(output[_vAETD]);\n }\n return contents;\n}, \"de_VerifiedAccessEndpointTarget\");\nvar de_VerifiedAccessEndpointTargetList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessEndpointTarget(entry, context);\n });\n}, \"de_VerifiedAccessEndpointTargetList\");\nvar de_VerifiedAccessGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAGI] != null) {\n contents[_VAGI] = (0, import_smithy_client.expectString)(output[_vAGI]);\n }\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_ow] != null) {\n contents[_Own] = (0, import_smithy_client.expectString)(output[_ow]);\n }\n if (output[_vAGA] != null) {\n contents[_VAGA] = (0, import_smithy_client.expectString)(output[_vAGA]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output[_dT] != null) {\n contents[_DTel] = (0, import_smithy_client.expectString)(output[_dT]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n return contents;\n}, \"de_VerifiedAccessGroup\");\nvar de_VerifiedAccessGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessGroup(entry, context);\n });\n}, \"de_VerifiedAccessGroupList\");\nvar de_VerifiedAccessInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output.verifiedAccessTrustProviderSet === \"\") {\n contents[_VATPe] = [];\n } else if (output[_vATPS] != null && output[_vATPS][_i] != null) {\n contents[_VATPe] = de_VerifiedAccessTrustProviderCondensedList((0, import_smithy_client.getArrayIfSingleItem)(output[_vATPS][_i]), context);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_fE] != null) {\n contents[_FE] = (0, import_smithy_client.parseBoolean)(output[_fE]);\n }\n if (output[_cECSD] != null) {\n contents[_CECSD] = de_VerifiedAccessInstanceCustomSubDomain(output[_cECSD], context);\n }\n return contents;\n}, \"de_VerifiedAccessInstance\");\nvar de_VerifiedAccessInstanceCustomSubDomain = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sDu] != null) {\n contents[_SDu] = (0, import_smithy_client.expectString)(output[_sDu]);\n }\n if (output.nameserverSet === \"\") {\n contents[_Na] = [];\n } else if (output[_nSa] != null && output[_nSa][_i] != null) {\n contents[_Na] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nSa][_i]), context);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceCustomSubDomain\");\nvar de_VerifiedAccessInstanceList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstance(entry, context);\n });\n}, \"de_VerifiedAccessInstanceList\");\nvar de_VerifiedAccessInstanceLoggingConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vAII] != null) {\n contents[_VAII] = (0, import_smithy_client.expectString)(output[_vAII]);\n }\n if (output[_aLc] != null) {\n contents[_AL] = de_VerifiedAccessLogs(output[_aLc], context);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceLoggingConfiguration\");\nvar de_VerifiedAccessInstanceLoggingConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstanceLoggingConfiguration(entry, context);\n });\n}, \"de_VerifiedAccessInstanceLoggingConfigurationList\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_confi] != null) {\n contents[_Confi] = (0, import_smithy_client.expectString)(output[_confi]);\n }\n if (output.routeSet === \"\") {\n contents[_Rout] = [];\n } else if (output[_rSou] != null && output[_rSou][_i] != null) {\n contents[_Rout] = de_VerifiedAccessInstanceOpenVpnClientConfigurationRouteList(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_rSou][_i]),\n context\n );\n }\n return contents;\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfiguration\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstanceOpenVpnClientConfiguration(entry, context);\n });\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfigurationList\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfigurationRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ci] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_ci]);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfigurationRoute\");\nvar de_VerifiedAccessInstanceOpenVpnClientConfigurationRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessInstanceOpenVpnClientConfigurationRoute(entry, context);\n });\n}, \"de_VerifiedAccessInstanceOpenVpnClientConfigurationRouteList\");\nvar de_VerifiedAccessInstanceUserTrustProviderClientConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_scop] != null) {\n contents[_Scop] = (0, import_smithy_client.expectString)(output[_scop]);\n }\n if (output[_is] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_is]);\n }\n if (output[_aE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_aE]);\n }\n if (output[_pSKE] != null) {\n contents[_PSKE] = (0, import_smithy_client.expectString)(output[_pSKE]);\n }\n if (output[_tEo] != null) {\n contents[_TEo] = (0, import_smithy_client.expectString)(output[_tEo]);\n }\n if (output[_uIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_uIE]);\n }\n if (output[_cIli] != null) {\n contents[_CIl] = (0, import_smithy_client.expectString)(output[_cIli]);\n }\n if (output[_cSl] != null) {\n contents[_CSl] = (0, import_smithy_client.expectString)(output[_cSl]);\n }\n if (output[_pEk] != null) {\n contents[_PEk] = (0, import_smithy_client.parseBoolean)(output[_pEk]);\n }\n return contents;\n}, \"de_VerifiedAccessInstanceUserTrustProviderClientConfiguration\");\nvar de_VerifiedAccessLogCloudWatchLogsDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_dSel] != null) {\n contents[_DSeli] = de_VerifiedAccessLogDeliveryStatus(output[_dSel], context);\n }\n if (output[_lGo] != null) {\n contents[_LGo] = (0, import_smithy_client.expectString)(output[_lGo]);\n }\n return contents;\n}, \"de_VerifiedAccessLogCloudWatchLogsDestination\");\nvar de_VerifiedAccessLogDeliveryStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_VerifiedAccessLogDeliveryStatus\");\nvar de_VerifiedAccessLogKinesisDataFirehoseDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_dSel] != null) {\n contents[_DSeli] = de_VerifiedAccessLogDeliveryStatus(output[_dSel], context);\n }\n if (output[_dSeli] != null) {\n contents[_DSel] = (0, import_smithy_client.expectString)(output[_dSeli]);\n }\n return contents;\n}, \"de_VerifiedAccessLogKinesisDataFirehoseDestination\");\nvar de_VerifiedAccessLogs = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_s_] != null) {\n contents[_S_] = de_VerifiedAccessLogS3Destination(output[_s_], context);\n }\n if (output[_cWL] != null) {\n contents[_CWL] = de_VerifiedAccessLogCloudWatchLogsDestination(output[_cWL], context);\n }\n if (output[_kDF] != null) {\n contents[_KDF] = de_VerifiedAccessLogKinesisDataFirehoseDestination(output[_kDF], context);\n }\n if (output[_lV] != null) {\n contents[_LV] = (0, import_smithy_client.expectString)(output[_lV]);\n }\n if (output[_iTCn] != null) {\n contents[_ITCn] = (0, import_smithy_client.parseBoolean)(output[_iTCn]);\n }\n return contents;\n}, \"de_VerifiedAccessLogs\");\nvar de_VerifiedAccessLogS3Destination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_en] != null) {\n contents[_En] = (0, import_smithy_client.parseBoolean)(output[_en]);\n }\n if (output[_dSel] != null) {\n contents[_DSeli] = de_VerifiedAccessLogDeliveryStatus(output[_dSel], context);\n }\n if (output[_bN] != null) {\n contents[_BN] = (0, import_smithy_client.expectString)(output[_bN]);\n }\n if (output[_pre] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_pre]);\n }\n if (output[_bOu] != null) {\n contents[_BOu] = (0, import_smithy_client.expectString)(output[_bOu]);\n }\n return contents;\n}, \"de_VerifiedAccessLogS3Destination\");\nvar de_VerifiedAccessSseSpecificationResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cMKE] != null) {\n contents[_CMKE] = (0, import_smithy_client.parseBoolean)(output[_cMKE]);\n }\n if (output[_kKA] != null) {\n contents[_KKA] = (0, import_smithy_client.expectString)(output[_kKA]);\n }\n return contents;\n}, \"de_VerifiedAccessSseSpecificationResponse\");\nvar de_VerifiedAccessTrustProvider = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATPI] != null) {\n contents[_VATPI] = (0, import_smithy_client.expectString)(output[_vATPI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_tPT] != null) {\n contents[_TPT] = (0, import_smithy_client.expectString)(output[_tPT]);\n }\n if (output[_uTPT] != null) {\n contents[_UTPT] = (0, import_smithy_client.expectString)(output[_uTPT]);\n }\n if (output[_dTPT] != null) {\n contents[_DTPT] = (0, import_smithy_client.expectString)(output[_dTPT]);\n }\n if (output[_oO] != null) {\n contents[_OO] = de_OidcOptions(output[_oO], context);\n }\n if (output[_dOev] != null) {\n contents[_DOe] = de_DeviceOptions(output[_dOev], context);\n }\n if (output[_pRNo] != null) {\n contents[_PRN] = (0, import_smithy_client.expectString)(output[_pRNo]);\n }\n if (output[_cTre] != null) {\n contents[_CTre] = (0, import_smithy_client.expectString)(output[_cTre]);\n }\n if (output[_lUTa] != null) {\n contents[_LUTa] = (0, import_smithy_client.expectString)(output[_lUTa]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_sSs] != null) {\n contents[_SS] = de_VerifiedAccessSseSpecificationResponse(output[_sSs], context);\n }\n if (output[_nAOO] != null) {\n contents[_NAOO] = de_NativeApplicationOidcOptions(output[_nAOO], context);\n }\n return contents;\n}, \"de_VerifiedAccessTrustProvider\");\nvar de_VerifiedAccessTrustProviderCondensed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vATPI] != null) {\n contents[_VATPI] = (0, import_smithy_client.expectString)(output[_vATPI]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_tPT] != null) {\n contents[_TPT] = (0, import_smithy_client.expectString)(output[_tPT]);\n }\n if (output[_uTPT] != null) {\n contents[_UTPT] = (0, import_smithy_client.expectString)(output[_uTPT]);\n }\n if (output[_dTPT] != null) {\n contents[_DTPT] = (0, import_smithy_client.expectString)(output[_dTPT]);\n }\n return contents;\n}, \"de_VerifiedAccessTrustProviderCondensed\");\nvar de_VerifiedAccessTrustProviderCondensedList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessTrustProviderCondensed(entry, context);\n });\n}, \"de_VerifiedAccessTrustProviderCondensedList\");\nvar de_VerifiedAccessTrustProviderList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VerifiedAccessTrustProvider(entry, context);\n });\n}, \"de_VerifiedAccessTrustProviderList\");\nvar de_VgwTelemetry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aRC] != null) {\n contents[_ARC] = (0, import_smithy_client.strictParseInt32)(output[_aRC]);\n }\n if (output[_lSC] != null) {\n contents[_LSC] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lSC]));\n }\n if (output[_oIA] != null) {\n contents[_OIA] = (0, import_smithy_client.expectString)(output[_oIA]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_cAe] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_cAe]);\n }\n return contents;\n}, \"de_VgwTelemetry\");\nvar de_VgwTelemetryList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VgwTelemetry(entry, context);\n });\n}, \"de_VgwTelemetryList\");\nvar de_VirtualizationTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_VirtualizationTypeList\");\nvar de_Volume = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output[_io] != null) {\n contents[_Io] = (0, import_smithy_client.strictParseInt32)(output[_io]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vT] != null) {\n contents[_VT] = (0, import_smithy_client.expectString)(output[_vT]);\n }\n if (output[_fRa] != null) {\n contents[_FRa] = (0, import_smithy_client.parseBoolean)(output[_fRa]);\n }\n if (output[_mAE] != null) {\n contents[_MAE] = (0, import_smithy_client.parseBoolean)(output[_mAE]);\n }\n if (output[_th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseInt32)(output[_th]);\n }\n if (output[_sTs] != null) {\n contents[_STs] = (0, import_smithy_client.expectString)(output[_sTs]);\n }\n if (output[_op] != null) {\n contents[_O] = de_OperatorResponse(output[_op], context);\n }\n if (output[_vIR] != null) {\n contents[_VIR] = (0, import_smithy_client.strictParseInt32)(output[_vIR]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_si] != null) {\n contents[_Siz] = (0, import_smithy_client.strictParseInt32)(output[_si]);\n }\n if (output[_sIn] != null) {\n contents[_SIn] = (0, import_smithy_client.expectString)(output[_sIn]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_cTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTr]));\n }\n if (output.attachmentSet === \"\") {\n contents[_Atta] = [];\n } else if (output[_aSt] != null && output[_aSt][_i] != null) {\n contents[_Atta] = de_VolumeAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSt][_i]), context);\n }\n if (output[_enc] != null) {\n contents[_Enc] = (0, import_smithy_client.parseBoolean)(output[_enc]);\n }\n if (output[_kKI] != null) {\n contents[_KKI] = (0, import_smithy_client.expectString)(output[_kKI]);\n }\n return contents;\n}, \"de_Volume\");\nvar de_VolumeAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dOT] != null) {\n contents[_DOT] = (0, import_smithy_client.parseBoolean)(output[_dOT]);\n }\n if (output[_aRs] != null) {\n contents[_ARs] = (0, import_smithy_client.expectString)(output[_aRs]);\n }\n if (output[_iOS] != null) {\n contents[_IOS] = (0, import_smithy_client.expectString)(output[_iOS]);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n if (output[_dev] != null) {\n contents[_Dev] = (0, import_smithy_client.expectString)(output[_dev]);\n }\n if (output[_sta] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n if (output[_aTt] != null) {\n contents[_ATtt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_aTt]));\n }\n return contents;\n}, \"de_VolumeAttachment\");\nvar de_VolumeAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeAttachment(entry, context);\n });\n}, \"de_VolumeAttachmentList\");\nvar de_VolumeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Volume(entry, context);\n });\n}, \"de_VolumeList\");\nvar de_VolumeModification = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_mSod] != null) {\n contents[_MSod] = (0, import_smithy_client.expectString)(output[_mSod]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n if (output[_tSar] != null) {\n contents[_TSar] = (0, import_smithy_client.strictParseInt32)(output[_tSar]);\n }\n if (output[_tIa] != null) {\n contents[_TIar] = (0, import_smithy_client.strictParseInt32)(output[_tIa]);\n }\n if (output[_tVT] != null) {\n contents[_TVT] = (0, import_smithy_client.expectString)(output[_tVT]);\n }\n if (output[_tTa] != null) {\n contents[_TTa] = (0, import_smithy_client.strictParseInt32)(output[_tTa]);\n }\n if (output[_tMAE] != null) {\n contents[_TMAE] = (0, import_smithy_client.parseBoolean)(output[_tMAE]);\n }\n if (output[_oSr] != null) {\n contents[_OSr] = (0, import_smithy_client.strictParseInt32)(output[_oSr]);\n }\n if (output[_oIr] != null) {\n contents[_OIr] = (0, import_smithy_client.strictParseInt32)(output[_oIr]);\n }\n if (output[_oVT] != null) {\n contents[_OVT] = (0, import_smithy_client.expectString)(output[_oVT]);\n }\n if (output[_oTr] != null) {\n contents[_OTr] = (0, import_smithy_client.strictParseInt32)(output[_oTr]);\n }\n if (output[_oMAE] != null) {\n contents[_OMAE] = (0, import_smithy_client.parseBoolean)(output[_oMAE]);\n }\n if (output[_pro] != null) {\n contents[_Prog] = (0, import_smithy_client.strictParseLong)(output[_pro]);\n }\n if (output[_sT] != null) {\n contents[_STt] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_sT]));\n }\n if (output[_eTn] != null) {\n contents[_ETn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eTn]));\n }\n return contents;\n}, \"de_VolumeModification\");\nvar de_VolumeModificationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeModification(entry, context);\n });\n}, \"de_VolumeModificationList\");\nvar de_VolumeStatusAction = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eIve] != null) {\n contents[_EIve] = (0, import_smithy_client.expectString)(output[_eIve]);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n return contents;\n}, \"de_VolumeStatusAction\");\nvar de_VolumeStatusActionsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusAction(entry, context);\n });\n}, \"de_VolumeStatusActionsList\");\nvar de_VolumeStatusAttachmentStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iPo] != null) {\n contents[_IPo] = (0, import_smithy_client.expectString)(output[_iPo]);\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_VolumeStatusAttachmentStatus\");\nvar de_VolumeStatusAttachmentStatusList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusAttachmentStatus(entry, context);\n });\n}, \"de_VolumeStatusAttachmentStatusList\");\nvar de_VolumeStatusDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_n] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_n]);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_VolumeStatusDetails\");\nvar de_VolumeStatusDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusDetails(entry, context);\n });\n}, \"de_VolumeStatusDetailsList\");\nvar de_VolumeStatusEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_de] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_de]);\n }\n if (output[_eIve] != null) {\n contents[_EIve] = (0, import_smithy_client.expectString)(output[_eIve]);\n }\n if (output[_eTv] != null) {\n contents[_ETv] = (0, import_smithy_client.expectString)(output[_eTv]);\n }\n if (output[_nAo] != null) {\n contents[_NAo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nAo]));\n }\n if (output[_nB] != null) {\n contents[_NB] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_nB]));\n }\n if (output[_iI] != null) {\n contents[_IIn] = (0, import_smithy_client.expectString)(output[_iI]);\n }\n return contents;\n}, \"de_VolumeStatusEvent\");\nvar de_VolumeStatusEventsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusEvent(entry, context);\n });\n}, \"de_VolumeStatusEventsList\");\nvar de_VolumeStatusInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.details === \"\") {\n contents[_Det] = [];\n } else if (output[_det] != null && output[_det][_i] != null) {\n contents[_Det] = de_VolumeStatusDetailsList((0, import_smithy_client.getArrayIfSingleItem)(output[_det][_i]), context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = (0, import_smithy_client.expectString)(output[_sta]);\n }\n return contents;\n}, \"de_VolumeStatusInfo\");\nvar de_VolumeStatusItem = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.actionsSet === \"\") {\n contents[_Acti] = [];\n } else if (output[_aSct] != null && output[_aSct][_i] != null) {\n contents[_Acti] = de_VolumeStatusActionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_aSct][_i]), context);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output[_oA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_oA]);\n }\n if (output.eventsSet === \"\") {\n contents[_Ev] = [];\n } else if (output[_eSv] != null && output[_eSv][_i] != null) {\n contents[_Ev] = de_VolumeStatusEventsList((0, import_smithy_client.getArrayIfSingleItem)(output[_eSv][_i]), context);\n }\n if (output[_vIo] != null) {\n contents[_VIo] = (0, import_smithy_client.expectString)(output[_vIo]);\n }\n if (output[_vSol] != null) {\n contents[_VSol] = de_VolumeStatusInfo(output[_vSol], context);\n }\n if (output.attachmentStatuses === \"\") {\n contents[_AStt] = [];\n } else if (output[_aStt] != null && output[_aStt][_i] != null) {\n contents[_AStt] = de_VolumeStatusAttachmentStatusList((0, import_smithy_client.getArrayIfSingleItem)(output[_aStt][_i]), context);\n }\n if (output[_aZI] != null) {\n contents[_AZI] = (0, import_smithy_client.expectString)(output[_aZI]);\n }\n return contents;\n}, \"de_VolumeStatusItem\");\nvar de_VolumeStatusList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VolumeStatusItem(entry, context);\n });\n}, \"de_VolumeStatusList\");\nvar de_Vpc = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_iTns] != null) {\n contents[_ITns] = (0, import_smithy_client.expectString)(output[_iTns]);\n }\n if (output.ipv6CidrBlockAssociationSet === \"\") {\n contents[_ICBAS] = [];\n } else if (output[_iCBAS] != null && output[_iCBAS][_i] != null) {\n contents[_ICBAS] = de_VpcIpv6CidrBlockAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBAS][_i]), context);\n }\n if (output.cidrBlockAssociationSet === \"\") {\n contents[_CBAS] = [];\n } else if (output[_cBAS] != null && output[_cBAS][_i] != null) {\n contents[_CBAS] = de_VpcCidrBlockAssociationSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBAS][_i]), context);\n }\n if (output[_iDs] != null) {\n contents[_IDs] = (0, import_smithy_client.parseBoolean)(output[_iDs]);\n }\n if (output[_eCn] != null) {\n contents[_ECn] = de_VpcEncryptionControl(output[_eCn], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_bPAS] != null) {\n contents[_BPAS] = de_BlockPublicAccessStates(output[_bPAS], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_dOI] != null) {\n contents[_DOI] = (0, import_smithy_client.expectString)(output[_dOI]);\n }\n return contents;\n}, \"de_Vpc\");\nvar de_VpcAttachment = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_VpcAttachment\");\nvar de_VpcAttachmentList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcAttachment(entry, context);\n });\n}, \"de_VpcAttachmentList\");\nvar de_VpcBlockPublicAccessExclusion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eIx] != null) {\n contents[_EIxc] = (0, import_smithy_client.expectString)(output[_eIx]);\n }\n if (output[_iGEM] != null) {\n contents[_IGEM] = (0, import_smithy_client.expectString)(output[_iGEM]);\n }\n if (output[_rAe] != null) {\n contents[_RAes] = (0, import_smithy_client.expectString)(output[_rAe]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_rea] != null) {\n contents[_Rea] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n if (output[_cTrea] != null) {\n contents[_CTrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTrea]));\n }\n if (output[_lUTas] != null) {\n contents[_LUTas] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lUTas]));\n }\n if (output[_dTele] != null) {\n contents[_DTelet] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_dTele]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_VpcBlockPublicAccessExclusion\");\nvar de_VpcBlockPublicAccessExclusionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcBlockPublicAccessExclusion(entry, context);\n });\n}, \"de_VpcBlockPublicAccessExclusionList\");\nvar de_VpcBlockPublicAccessOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aAI] != null) {\n contents[_AAI] = (0, import_smithy_client.expectString)(output[_aAI]);\n }\n if (output[_aRw] != null) {\n contents[_ARw] = (0, import_smithy_client.expectString)(output[_aRw]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_iGBM] != null) {\n contents[_IGBM] = (0, import_smithy_client.expectString)(output[_iGBM]);\n }\n if (output[_rea] != null) {\n contents[_Rea] = (0, import_smithy_client.expectString)(output[_rea]);\n }\n if (output[_lUTas] != null) {\n contents[_LUTas] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_lUTas]));\n }\n if (output[_mB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_mB]);\n }\n if (output[_eAx] != null) {\n contents[_EAx] = (0, import_smithy_client.expectString)(output[_eAx]);\n }\n return contents;\n}, \"de_VpcBlockPublicAccessOptions\");\nvar de_VpcCidrBlockAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output[_cBS] != null) {\n contents[_CBS] = de_VpcCidrBlockState(output[_cBS], context);\n }\n return contents;\n}, \"de_VpcCidrBlockAssociation\");\nvar de_VpcCidrBlockAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcCidrBlockAssociation(entry, context);\n });\n}, \"de_VpcCidrBlockAssociationSet\");\nvar de_VpcCidrBlockState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMt] != null) {\n contents[_SMt] = (0, import_smithy_client.expectString)(output[_sMt]);\n }\n return contents;\n}, \"de_VpcCidrBlockState\");\nvar de_VpcClassicLink = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cLE] != null) {\n contents[_CLE] = (0, import_smithy_client.parseBoolean)(output[_cLE]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n return contents;\n}, \"de_VpcClassicLink\");\nvar de_VpcClassicLinkList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcClassicLink(entry, context);\n });\n}, \"de_VpcClassicLinkList\");\nvar de_VpcEncryptionControl = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_vECI] != null) {\n contents[_VECI] = (0, import_smithy_client.expectString)(output[_vECI]);\n }\n if (output[_mod] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_mod]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n if (output[_rEes] != null) {\n contents[_REeso] = de_VpcEncryptionControlExclusions(output[_rEes], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_VpcEncryptionControl\");\nvar de_VpcEncryptionControlExclusion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_sMta] != null) {\n contents[_SMta] = (0, import_smithy_client.expectString)(output[_sMta]);\n }\n return contents;\n}, \"de_VpcEncryptionControlExclusion\");\nvar de_VpcEncryptionControlExclusions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_iG] != null) {\n contents[_IGn] = de_VpcEncryptionControlExclusion(output[_iG], context);\n }\n if (output[_eOIG] != null) {\n contents[_EOIG] = de_VpcEncryptionControlExclusion(output[_eOIG], context);\n }\n if (output[_nG] != null) {\n contents[_NG] = de_VpcEncryptionControlExclusion(output[_nG], context);\n }\n if (output[_vPG] != null) {\n contents[_VPG] = de_VpcEncryptionControlExclusion(output[_vPG], context);\n }\n if (output[_vPpc] != null) {\n contents[_VPpc] = de_VpcEncryptionControlExclusion(output[_vPpc], context);\n }\n return contents;\n}, \"de_VpcEncryptionControlExclusions\");\nvar de_VpcEndpoint = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_vET] != null) {\n contents[_VET] = (0, import_smithy_client.expectString)(output[_vET]);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_sN] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_sN]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_pDo] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_pDo]);\n }\n if (output.routeTableIdSet === \"\") {\n contents[_RTIo] = [];\n } else if (output[_rTIS] != null && output[_rTIS][_i] != null) {\n contents[_RTIo] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_rTIS][_i]), context);\n }\n if (output.subnetIdSet === \"\") {\n contents[_SIu] = [];\n } else if (output[_sISu] != null && output[_sISu][_i] != null) {\n contents[_SIu] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_sISu][_i]), context);\n }\n if (output.groupSet === \"\") {\n contents[_G] = [];\n } else if (output[_gS] != null && output[_gS][_i] != null) {\n contents[_G] = de_GroupIdentifierSet((0, import_smithy_client.getArrayIfSingleItem)(output[_gS][_i]), context);\n }\n if (output[_iAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_iAT]);\n }\n if (output[_dOn] != null) {\n contents[_DOn] = de_DnsOptions(output[_dOn], context);\n }\n if (output[_pDE] != null) {\n contents[_PDE] = (0, import_smithy_client.parseBoolean)(output[_pDE]);\n }\n if (output[_rM] != null) {\n contents[_RMe] = (0, import_smithy_client.parseBoolean)(output[_rM]);\n }\n if (output.networkInterfaceIdSet === \"\") {\n contents[_NIIe] = [];\n } else if (output[_nIIS] != null && output[_nIIS][_i] != null) {\n contents[_NIIe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nIIS][_i]), context);\n }\n if (output.dnsEntrySet === \"\") {\n contents[_DE] = [];\n } else if (output[_dES] != null && output[_dES][_i] != null) {\n contents[_DE] = de_DnsEntrySet((0, import_smithy_client.getArrayIfSingleItem)(output[_dES][_i]), context);\n }\n if (output[_cTrea] != null) {\n contents[_CTrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTrea]));\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_lEa] != null) {\n contents[_LEa] = de_LastError(output[_lEa], context);\n }\n if (output.ipv4PrefixSet === \"\") {\n contents[_IPp] = [];\n } else if (output[_iPSpv] != null && output[_iPSpv][_i] != null) {\n contents[_IPp] = de_SubnetIpPrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpv][_i]), context);\n }\n if (output.ipv6PrefixSet === \"\") {\n contents[_IP] = [];\n } else if (output[_iPSpvr] != null && output[_iPSpvr][_i] != null) {\n contents[_IP] = de_SubnetIpPrefixesList((0, import_smithy_client.getArrayIfSingleItem)(output[_iPSpvr][_i]), context);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output[_sNA] != null) {\n contents[_SNA] = (0, import_smithy_client.expectString)(output[_sNA]);\n }\n if (output[_rCA] != null) {\n contents[_RCA] = (0, import_smithy_client.expectString)(output[_rCA]);\n }\n if (output[_sR] != null) {\n contents[_SRe] = (0, import_smithy_client.expectString)(output[_sR]);\n }\n return contents;\n}, \"de_VpcEndpoint\");\nvar de_VpcEndpointAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_id]);\n }\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_sNA] != null) {\n contents[_SNA] = (0, import_smithy_client.expectString)(output[_sNA]);\n }\n if (output[_sNN] != null) {\n contents[_SNN] = (0, import_smithy_client.expectString)(output[_sNN]);\n }\n if (output[_aRAs] != null) {\n contents[_ARAs] = (0, import_smithy_client.expectString)(output[_aRAs]);\n }\n if (output[_fR] != null) {\n contents[_FR] = (0, import_smithy_client.expectString)(output[_fR]);\n }\n if (output[_fCa] != null) {\n contents[_FCa] = (0, import_smithy_client.expectString)(output[_fCa]);\n }\n if (output[_dE] != null) {\n contents[_DEn] = de_DnsEntry(output[_dE], context);\n }\n if (output[_pDEr] != null) {\n contents[_PDEr] = de_DnsEntry(output[_pDEr], context);\n }\n if (output[_aRAss] != null) {\n contents[_ARAss] = (0, import_smithy_client.expectString)(output[_aRAss]);\n }\n if (output[_rCGA] != null) {\n contents[_RCGA] = (0, import_smithy_client.expectString)(output[_rCGA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n return contents;\n}, \"de_VpcEndpointAssociation\");\nvar de_VpcEndpointAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcEndpointAssociation(entry, context);\n });\n}, \"de_VpcEndpointAssociationSet\");\nvar de_VpcEndpointConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_sI] != null) {\n contents[_SIe] = (0, import_smithy_client.expectString)(output[_sI]);\n }\n if (output[_vEI] != null) {\n contents[_VEIp] = (0, import_smithy_client.expectString)(output[_vEI]);\n }\n if (output[_vEO] != null) {\n contents[_VEO] = (0, import_smithy_client.expectString)(output[_vEO]);\n }\n if (output[_vESpc] != null) {\n contents[_VESpc] = (0, import_smithy_client.expectString)(output[_vESpc]);\n }\n if (output[_cTrea] != null) {\n contents[_CTrea] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_cTrea]));\n }\n if (output.dnsEntrySet === \"\") {\n contents[_DE] = [];\n } else if (output[_dES] != null && output[_dES][_i] != null) {\n contents[_DE] = de_DnsEntrySet((0, import_smithy_client.getArrayIfSingleItem)(output[_dES][_i]), context);\n }\n if (output.networkLoadBalancerArnSet === \"\") {\n contents[_NLBAe] = [];\n } else if (output[_nLBAS] != null && output[_nLBAS][_i] != null) {\n contents[_NLBAe] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_nLBAS][_i]), context);\n }\n if (output.gatewayLoadBalancerArnSet === \"\") {\n contents[_GLBA] = [];\n } else if (output[_gLBAS] != null && output[_gLBAS][_i] != null) {\n contents[_GLBA] = de_ValueStringList((0, import_smithy_client.getArrayIfSingleItem)(output[_gLBAS][_i]), context);\n }\n if (output[_iAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_iAT]);\n }\n if (output[_vECIp] != null) {\n contents[_VECIp] = (0, import_smithy_client.expectString)(output[_vECIp]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vER] != null) {\n contents[_VER] = (0, import_smithy_client.expectString)(output[_vER]);\n }\n return contents;\n}, \"de_VpcEndpointConnection\");\nvar de_VpcEndpointConnectionSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcEndpointConnection(entry, context);\n });\n}, \"de_VpcEndpointConnectionSet\");\nvar de_VpcEndpointSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcEndpoint(entry, context);\n });\n}, \"de_VpcEndpointSet\");\nvar de_VpcIpv6CidrBlockAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aIs] != null) {\n contents[_AIss] = (0, import_smithy_client.expectString)(output[_aIs]);\n }\n if (output[_iCB] != null) {\n contents[_ICB] = (0, import_smithy_client.expectString)(output[_iCB]);\n }\n if (output[_iCBS] != null) {\n contents[_ICBS] = de_VpcCidrBlockState(output[_iCBS], context);\n }\n if (output[_nBG] != null) {\n contents[_NBG] = (0, import_smithy_client.expectString)(output[_nBG]);\n }\n if (output[_iPpvo] != null) {\n contents[_IPpv] = (0, import_smithy_client.expectString)(output[_iPpvo]);\n }\n if (output[_iAA] != null) {\n contents[_IAA] = (0, import_smithy_client.expectString)(output[_iAA]);\n }\n if (output[_iSpo] != null) {\n contents[_ISpo] = (0, import_smithy_client.expectString)(output[_iSpo]);\n }\n return contents;\n}, \"de_VpcIpv6CidrBlockAssociation\");\nvar de_VpcIpv6CidrBlockAssociationSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcIpv6CidrBlockAssociation(entry, context);\n });\n}, \"de_VpcIpv6CidrBlockAssociationSet\");\nvar de_VpcList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Vpc(entry, context);\n });\n}, \"de_VpcList\");\nvar de_VpcPeeringConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aVI] != null) {\n contents[_AVI] = de_VpcPeeringConnectionVpcInfo(output[_aVI], context);\n }\n if (output[_eT] != null) {\n contents[_ETx] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_eT]));\n }\n if (output[_rVIe] != null) {\n contents[_RVIe] = de_VpcPeeringConnectionVpcInfo(output[_rVIe], context);\n }\n if (output[_sta] != null) {\n contents[_Statu] = de_VpcPeeringConnectionStateReason(output[_sta], context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_vPCI]);\n }\n return contents;\n}, \"de_VpcPeeringConnection\");\nvar de_VpcPeeringConnectionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpcPeeringConnection(entry, context);\n });\n}, \"de_VpcPeeringConnectionList\");\nvar de_VpcPeeringConnectionOptionsDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aDRFRV] != null) {\n contents[_ADRFRV] = (0, import_smithy_client.parseBoolean)(output[_aDRFRV]);\n }\n if (output[_aEFLCLTRV] != null) {\n contents[_AEFLCLTRV] = (0, import_smithy_client.parseBoolean)(output[_aEFLCLTRV]);\n }\n if (output[_aEFLVTRCL] != null) {\n contents[_AEFLVTRCL] = (0, import_smithy_client.parseBoolean)(output[_aEFLVTRCL]);\n }\n return contents;\n}, \"de_VpcPeeringConnectionOptionsDescription\");\nvar de_VpcPeeringConnectionStateReason = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_co] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_co]);\n }\n if (output[_me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_me]);\n }\n return contents;\n}, \"de_VpcPeeringConnectionStateReason\");\nvar de_VpcPeeringConnectionVpcInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_cB]);\n }\n if (output.ipv6CidrBlockSet === \"\") {\n contents[_ICBSp] = [];\n } else if (output[_iCBSp] != null && output[_iCBSp][_i] != null) {\n contents[_ICBSp] = de_Ipv6CidrBlockSet((0, import_smithy_client.getArrayIfSingleItem)(output[_iCBSp][_i]), context);\n }\n if (output.cidrBlockSet === \"\") {\n contents[_CBSi] = [];\n } else if (output[_cBSi] != null && output[_cBSi][_i] != null) {\n contents[_CBSi] = de_CidrBlockSet((0, import_smithy_client.getArrayIfSingleItem)(output[_cBSi][_i]), context);\n }\n if (output[_oI] != null) {\n contents[_OIwn] = (0, import_smithy_client.expectString)(output[_oI]);\n }\n if (output[_pOe] != null) {\n contents[_POe] = de_VpcPeeringConnectionOptionsDescription(output[_pOe], context);\n }\n if (output[_vI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_vI]);\n }\n if (output[_re] != null) {\n contents[_Regi] = (0, import_smithy_client.expectString)(output[_re]);\n }\n return contents;\n}, \"de_VpcPeeringConnectionVpcInfo\");\nvar de_VpnConnection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ca] != null) {\n contents[_Cat] = (0, import_smithy_client.expectString)(output[_ca]);\n }\n if (output[_tGI] != null) {\n contents[_TGI] = (0, import_smithy_client.expectString)(output[_tGI]);\n }\n if (output[_cNA] != null) {\n contents[_CNAo] = (0, import_smithy_client.expectString)(output[_cNA]);\n }\n if (output[_cNAA] != null) {\n contents[_CNAA] = (0, import_smithy_client.expectString)(output[_cNAA]);\n }\n if (output[_gAS] != null) {\n contents[_GAS] = (0, import_smithy_client.expectString)(output[_gAS]);\n }\n if (output[_opt] != null) {\n contents[_Op] = de_VpnConnectionOptions(output[_opt], context);\n }\n if (output.routes === \"\") {\n contents[_Rout] = [];\n } else if (output[_rou] != null && output[_rou][_i] != null) {\n contents[_Rout] = de_VpnStaticRouteList((0, import_smithy_client.getArrayIfSingleItem)(output[_rou][_i]), context);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output.vgwTelemetry === \"\") {\n contents[_VTg] = [];\n } else if (output[_vTg] != null && output[_vTg][_i] != null) {\n contents[_VTg] = de_VgwTelemetryList((0, import_smithy_client.getArrayIfSingleItem)(output[_vTg][_i]), context);\n }\n if (output[_vCI] != null) {\n contents[_VCI] = (0, import_smithy_client.expectString)(output[_vCI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_cGC] != null) {\n contents[_CGC] = (0, import_smithy_client.expectString)(output[_cGC]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_cGIu] != null) {\n contents[_CGIu] = (0, import_smithy_client.expectString)(output[_cGIu]);\n }\n if (output[_vGI] != null) {\n contents[_VGI] = (0, import_smithy_client.expectString)(output[_vGI]);\n }\n return contents;\n}, \"de_VpnConnection\");\nvar de_VpnConnectionDeviceType = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_vCDTI] != null) {\n contents[_VCDTI] = (0, import_smithy_client.expectString)(output[_vCDTI]);\n }\n if (output[_ven] != null) {\n contents[_Ven] = (0, import_smithy_client.expectString)(output[_ven]);\n }\n if (output[_pl] != null) {\n contents[_Pla] = (0, import_smithy_client.expectString)(output[_pl]);\n }\n if (output[_sof] != null) {\n contents[_Sof] = (0, import_smithy_client.expectString)(output[_sof]);\n }\n return contents;\n}, \"de_VpnConnectionDeviceType\");\nvar de_VpnConnectionDeviceTypeList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnConnectionDeviceType(entry, context);\n });\n}, \"de_VpnConnectionDeviceTypeList\");\nvar de_VpnConnectionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnConnection(entry, context);\n });\n}, \"de_VpnConnectionList\");\nvar de_VpnConnectionOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_eAn] != null) {\n contents[_EA] = (0, import_smithy_client.parseBoolean)(output[_eAn]);\n }\n if (output[_sRO] != null) {\n contents[_SRO] = (0, import_smithy_client.parseBoolean)(output[_sRO]);\n }\n if (output[_lINC] != null) {\n contents[_LINC] = (0, import_smithy_client.expectString)(output[_lINC]);\n }\n if (output[_rINC] != null) {\n contents[_RINC] = (0, import_smithy_client.expectString)(output[_rINC]);\n }\n if (output[_lINCo] != null) {\n contents[_LINCo] = (0, import_smithy_client.expectString)(output[_lINCo]);\n }\n if (output[_rINCe] != null) {\n contents[_RINCe] = (0, import_smithy_client.expectString)(output[_rINCe]);\n }\n if (output[_oIAT] != null) {\n contents[_OIAT] = (0, import_smithy_client.expectString)(output[_oIAT]);\n }\n if (output[_tTGAI] != null) {\n contents[_TTGAI] = (0, import_smithy_client.expectString)(output[_tTGAI]);\n }\n if (output[_tIIV] != null) {\n contents[_TIIV] = (0, import_smithy_client.expectString)(output[_tIIV]);\n }\n if (output.tunnelOptionSet === \"\") {\n contents[_TO] = [];\n } else if (output[_tOS] != null && output[_tOS][_i] != null) {\n contents[_TO] = de_TunnelOptionsList((0, import_smithy_client.getArrayIfSingleItem)(output[_tOS][_i]), context);\n }\n return contents;\n}, \"de_VpnConnectionOptions\");\nvar de_VpnGateway = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_aSA] != null) {\n contents[_ASA] = (0, import_smithy_client.strictParseLong)(output[_aSA]);\n }\n if (output.tagSet === \"\") {\n contents[_Ta] = [];\n } else if (output[_tS] != null && output[_tS][_i] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_tS][_i]), context);\n }\n if (output[_vGI] != null) {\n contents[_VGI] = (0, import_smithy_client.expectString)(output[_vGI]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n if (output[_ty] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_ty]);\n }\n if (output[_aZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_aZ]);\n }\n if (output.attachments === \"\") {\n contents[_VAp] = [];\n } else if (output[_att] != null && output[_att][_i] != null) {\n contents[_VAp] = de_VpcAttachmentList((0, import_smithy_client.getArrayIfSingleItem)(output[_att][_i]), context);\n }\n return contents;\n}, \"de_VpnGateway\");\nvar de_VpnGatewayList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnGateway(entry, context);\n });\n}, \"de_VpnGatewayList\");\nvar de_VpnStaticRoute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_dCB] != null) {\n contents[_DCB] = (0, import_smithy_client.expectString)(output[_dCB]);\n }\n if (output[_s] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_s]);\n }\n if (output[_st] != null) {\n contents[_Stat] = (0, import_smithy_client.expectString)(output[_st]);\n }\n return contents;\n}, \"de_VpnStaticRoute\");\nvar de_VpnStaticRouteList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VpnStaticRoute(entry, context);\n });\n}, \"de_VpnStaticRouteList\");\nvar de_VpnTunnelLogOptions = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_cWLO] != null) {\n contents[_CWLO] = de_CloudWatchLogOptions(output[_cWLO], context);\n }\n return contents;\n}, \"de_VpnTunnelLogOptions\");\nvar de_WithdrawByoipCidrResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_bC] != null) {\n contents[_BC] = de_ByoipCidr(output[_bC], context);\n }\n return contents;\n}, \"de_WithdrawByoipCidrResult\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(EC2ServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2016-11-15\";\nvar _A = \"Action\";\nvar _AA = \"AllocateAddress\";\nvar _AAC = \"AsnAuthorizationContext\";\nvar _AACv = \"AvailableAddressCount\";\nvar _AAG = \"AuthorizeAllGroups\";\nvar _AAI = \"AwsAccountId\";\nvar _AAId = \"AddressAllocationId\";\nvar _AAP = \"AddAllowedPrincipals\";\nvar _AART = \"AddAllocationResourceTags\";\nvar _AASA = \"AutoAcceptSharedAssociations\";\nvar _AASAu = \"AutoAcceptSharedAttachments\";\nvar _AAT = \"AcceptAddressTransfer\";\nvar _AAZ = \"AllAvailabilityZones\";\nvar _AAc = \"AccessAll\";\nvar _AAcc = \"AccountAttributes\";\nvar _AAd = \"AdditionalAccounts\";\nvar _AAs = \"AssociateAddress\";\nvar _AAsn = \"AsnAssociation\";\nvar _AAsns = \"AsnAssociations\";\nvar _ABC = \"AdvertiseByoipCidr\";\nvar _ABHP = \"ActualBlockHourlyPrice\";\nvar _AC = \"AllowedCidrs\";\nvar _ACIA = \"AssociateCarrierIpAddress\";\nvar _ACLV = \"AttachClassicLinkVpc\";\nvar _ACRBO = \"AcceptCapacityReservationBillingOwnership\";\nvar _ACRBOs = \"AssociateCapacityReservationBillingOwner\";\nvar _ACT = \"ArchivalCompleteTime\";\nvar _ACVI = \"AuthorizeClientVpnIngress\";\nvar _ACVTN = \"AssociateClientVpnTargetNetwork\";\nvar _ACc = \"AcceleratorCount\";\nvar _ACd = \"AddressCount\";\nvar _ACv = \"AvailableCapacity\";\nvar _AD = \"ActiveDirectory\";\nvar _ADNL = \"AllocationDefaultNetmaskLength\";\nvar _ADO = \"AssociateDhcpOptions\";\nvar _ADRFRV = \"AllowDnsResolutionFromRemoteVpc\";\nvar _ADRTI = \"AssociationDefaultRouteTableId\";\nvar _ADT = \"AdditionalDetailType\";\nvar _ADd = \"AdditionalDetails\";\nvar _ADn = \"AnnouncementDirection\";\nvar _ADp = \"ApplicationDomain\";\nvar _AE = \"AuthorizationEndpoint\";\nvar _AEC = \"AnalyzedEniCount\";\nvar _AECIR = \"AssociateEnclaveCertificateIamRole\";\nvar _AEFLCLTRV = \"AllowEgressFromLocalClassicLinkToRemoteVpc\";\nvar _AEFLVTRCL = \"AllowEgressFromLocalVpcToRemoteClassicLink\";\nvar _AEIO = \"AutoEnableIO\";\nvar _AES = \"AttachedEbsStatus\";\nvar _AET = \"AnalysisEndTime\";\nvar _AEd = \"AddEntries\";\nvar _AF = \"AddressFamily\";\nvar _AFn = \"AnalysisFindings\";\nvar _AGI = \"AccessGroupId\";\nvar _AGLBA = \"AddGatewayLoadBalancerArns\";\nvar _AH = \"AllocateHosts\";\nvar _AI = \"AssetIds\";\nvar _AIA = \"AssignIpv6Addresses\";\nvar _AIAC = \"AvailableIpAddressCount\";\nvar _AIAOC = \"AssignIpv6AddressOnCreation\";\nvar _AIAs = \"AssignedIpv6Addresses\";\nvar _AIB = \"AssociateIpamByoasn\";\nvar _AIC = \"AvailableInstanceCapacity\";\nvar _AICv = \"AvailableInstanceCount\";\nvar _AIEW = \"AssociateInstanceEventWindow\";\nvar _AIG = \"AttachInternetGateway\";\nvar _AIIP = \"AssociateIamInstanceProfile\";\nvar _AIP = \"AssignedIpv6Prefixes\";\nvar _AIPC = \"AllocateIpamPoolCidr\";\nvar _AIPs = \"AssignedIpv4Prefixes\";\nvar _AIRD = \"AssociateIpamResourceDiscovery\";\nvar _AISS = \"AllowedImagesSettingsState\";\nvar _AIT = \"AllowedInstanceTypes\";\nvar _AIc = \"ActiveInstances\";\nvar _AIcc = \"AccountId\";\nvar _AId = \"AdditionalInfo\";\nvar _AIl = \"AllocationId\";\nvar _AIll = \"AllocationIds\";\nvar _AIm = \"AmiId\";\nvar _AIs = \"AssociationIds\";\nvar _AIss = \"AssociationId\";\nvar _AIsse = \"AssetId\";\nvar _AIt = \"AttachmentId\";\nvar _AIth = \"AthenaIntegrations\";\nvar _AIu = \"AutoImport\";\nvar _AL = \"AccessLogs\";\nvar _ALI = \"AmiLaunchIndex\";\nvar _ALc = \"AccountLevel\";\nvar _AM = \"AcceleratorManufacturers\";\nvar _AMIT = \"AllowsMultipleInstanceTypes\";\nvar _AMNL = \"AllocationMinNetmaskLength\";\nvar _AMNLl = \"AllocationMaxNetmaskLength\";\nvar _AMS = \"ApplianceModeSupport\";\nvar _AN = \"AttributeNames\";\nvar _ANGA = \"AssociateNatGatewayAddress\";\nvar _ANI = \"AttachNetworkInterface\";\nvar _ANLBA = \"AddNetworkLoadBalancerArns\";\nvar _ANS = \"AddNetworkServices\";\nvar _ANc = \"AcceleratorNames\";\nvar _ANt = \"AttributeName\";\nvar _AO = \"AuthenticationOptions\";\nvar _AOI = \"AddressOwnerId\";\nvar _AOR = \"AddOperatingRegions\";\nvar _AOUE = \"AddOrganizationalUnitExclusions\";\nvar _AP = \"AutoPlacement\";\nvar _APCO = \"AccepterPeeringConnectionOptions\";\nvar _APH = \"AlternatePathHints\";\nvar _APIA = \"AssignPrivateIpAddresses\";\nvar _APIAs = \"AssociatePublicIpAddress\";\nvar _APIAss = \"AssignedPrivateIpAddresses\";\nvar _APICB = \"AmazonProvidedIpv6CidrBlock\";\nvar _APM = \"ApplyPendingMaintenance\";\nvar _APNGA = \"AssignPrivateNatGatewayAddress\";\nvar _APd = \"AddedPrincipals\";\nvar _APl = \"AllowedPrincipals\";\nvar _APs = \"AsPaths\";\nvar _AR = \"AllowReassignment\";\nvar _ARA = \"AssociatedRoleArn\";\nvar _ARAd = \"AdditionalRoutesAvailable\";\nvar _ARAs = \"AssociatedResourceAccessibility\";\nvar _ARAss = \"AssociatedResourceArn\";\nvar _ARC = \"AcceptedRouteCount\";\nvar _ARIEQ = \"AcceptReservedInstancesExchangeQuote\";\nvar _ARP = \"AreRoutesPersisted\";\nvar _ARS = \"AssociateRouteServer\";\nvar _ARSu = \"AutoRecoverySupported\";\nvar _ART = \"AssociateRouteTable\";\nvar _ARTI = \"AddRouteTableIds\";\nvar _ARTl = \"AllocationResourceTags\";\nvar _ARc = \"AcceptanceRequired\";\nvar _ARcl = \"AclRule\";\nvar _ARd = \"AddressRegion\";\nvar _ARl = \"AllowReassociation\";\nvar _ARll = \"AllRegions\";\nvar _ARs = \"AssociatedResource\";\nvar _ARss = \"AssociatedRoles\";\nvar _ARu = \"AutoRecovery\";\nvar _ARut = \"AuthorizationRules\";\nvar _ARw = \"AwsRegion\";\nvar _AS = \"AllocationStrategy\";\nvar _ASA = \"AmazonSideAsn\";\nvar _ASCB = \"AssociateSubnetCidrBlock\";\nvar _ASGE = \"AuthorizeSecurityGroupEgress\";\nvar _ASGI = \"AuthorizeSecurityGroupIngress\";\nvar _ASGId = \"AddSecurityGroupIds\";\nvar _ASGTCVTN = \"ApplySecurityGroupsToClientVpnTargetNetwork\";\nvar _ASGV = \"AssociateSecurityGroupVpc\";\nvar _ASI = \"AddSubnetIds\";\nvar _ASIAT = \"AddSupportedIpAddressTypes\";\nvar _ASR = \"AddSupportedRegions\";\nvar _ASS = \"AmdSevSnp\";\nvar _AST = \"AnalysisStartTime\";\nvar _ASTB = \"AnalysisStartTimeBegin\";\nvar _ASTE = \"AnalysisStartTimeEnd\";\nvar _ASc = \"ActivityStatus\";\nvar _ASn = \"AnalysisStatus\";\nvar _ASs = \"AssociationState\";\nvar _ASss = \"AssociationStatus\";\nvar _ASt = \"AttributeSummaries\";\nvar _AStt = \"AttachmentStatuses\";\nvar _ASw = \"AwsService\";\nvar _AT = \"AssociationTarget\";\nvar _ATGAI = \"AccepterTransitGatewayAttachmentId\";\nvar _ATGCB = \"AddTransitGatewayCidrBlocks\";\nvar _ATGMD = \"AssociateTransitGatewayMulticastDomain\";\nvar _ATGMDA = \"AcceptTransitGatewayMulticastDomainAssociations\";\nvar _ATGPA = \"AcceptTransitGatewayPeeringAttachment\";\nvar _ATGPT = \"AssociateTransitGatewayPolicyTable\";\nvar _ATGRT = \"AssociateTransitGatewayRouteTable\";\nvar _ATGVA = \"AcceptTransitGatewayVpcAttachment\";\nvar _ATI = \"AssociateTrunkInterface\";\nvar _ATIc = \"AccepterTgwInfo\";\nvar _ATMMB = \"AcceleratorTotalMemoryMiB\";\nvar _ATN = \"AssociatedTargetNetworks\";\nvar _ATS = \"AddressTransferStatus\";\nvar _ATc = \"AcceleratorTypes\";\nvar _ATd = \"AddressingType\";\nvar _ATdd = \"AddressTransfer\";\nvar _ATddr = \"AddressTransfers\";\nvar _ATddre = \"AddressType\";\nvar _ATl = \"AllocationType\";\nvar _ATll = \"AllocationTime\";\nvar _ATr = \"ArchitectureTypes\";\nvar _ATt = \"AttachmentType\";\nvar _ATtt = \"AttachTime\";\nvar _ATtta = \"AttachedTo\";\nvar _AV = \"AttachVolume\";\nvar _AVATP = \"AttachVerifiedAccessTrustProvider\";\nvar _AVC = \"AvailableVCpus\";\nvar _AVCB = \"AssociateVpcCidrBlock\";\nvar _AVEC = \"AcceptVpcEndpointConnections\";\nvar _AVG = \"AttachVpnGateway\";\nvar _AVI = \"AccepterVpcInfo\";\nvar _AVPC = \"AcceptVpcPeeringConnection\";\nvar _AVt = \"AttributeValues\";\nvar _AVtt = \"AttributeValue\";\nvar _AWSAKI = \"AWSAccessKeyId\";\nvar _AZ = \"AvailabilityZone\";\nvar _AZG = \"AvailabilityZoneGroup\";\nvar _AZI = \"AvailabilityZoneId\";\nvar _AZIv = \"AvailabilityZoneIds\";\nvar _AZv = \"AvailabilityZones\";\nvar _Ac = \"Accept\";\nvar _Acc = \"Accelerators\";\nvar _Acl = \"Acl\";\nvar _Act = \"Active\";\nvar _Acti = \"Actions\";\nvar _Ad = \"Address\";\nvar _Add = \"Add\";\nvar _Addr = \"Addresses\";\nvar _Af = \"Affinity\";\nvar _Am = \"Amount\";\nvar _Ar = \"Arn\";\nvar _Arc = \"Architecture\";\nvar _As = \"Asn\";\nvar _Ass = \"Associations\";\nvar _Asso = \"Association\";\nvar _At = \"Attribute\";\nvar _Att = \"Attachment\";\nvar _Atta = \"Attachments\";\nvar _B = \"Bucket\";\nvar _BA = \"BgpAsn\";\nvar _BAE = \"BgpAsnExtended\";\nvar _BBIG = \"BaselineBandwidthInGbps\";\nvar _BBIM = \"BaselineBandwidthInMbps\";\nvar _BC = \"ByoipCidr\";\nvar _BCg = \"BgpConfigurations\";\nvar _BCy = \"ByoipCidrs\";\nvar _BCyt = \"BytesConverted\";\nvar _BDM = \"BlockDeviceMappings\";\nvar _BDMl = \"BlockDurationMinutes\";\nvar _BEBM = \"BaselineEbsBandwidthMbps\";\nvar _BEDN = \"BaseEndpointDnsNames\";\nvar _BI = \"BundleInstance\";\nvar _BII = \"BranchInterfaceId\";\nvar _BIa = \"BaselineIops\";\nvar _BIu = \"BundleId\";\nvar _BIun = \"BundleIds\";\nvar _BM = \"BootMode\";\nvar _BMa = \"BareMetal\";\nvar _BN = \"BucketName\";\nvar _BO = \"BgpOptions\";\nvar _BOu = \"BucketOwner\";\nvar _BP = \"BurstablePerformance\";\nvar _BPAS = \"BlockPublicAccessStates\";\nvar _BPF = \"BaselinePerformanceFactors\";\nvar _BPS = \"BurstablePerformanceSupported\";\nvar _BPi = \"BillingProducts\";\nvar _BS = \"BgpStatus\";\nvar _BSf = \"BfdStatus\";\nvar _BT = \"BannerText\";\nvar _BTE = \"BundleTaskError\";\nvar _BTIMB = \"BaselineThroughputInMBps\";\nvar _BTu = \"BundleTask\";\nvar _BTun = \"BundleTasks\";\nvar _BW = \"BandwidthWeighting\";\nvar _BWa = \"BandwidthWeightings\";\nvar _Bl = \"Blackhole\";\nvar _By = \"Bytes\";\nvar _Byo = \"Byoasn\";\nvar _Byoa = \"Byoasns\";\nvar _C = \"Cidr\";\nvar _CA = \"CertificateArn\";\nvar _CAC = \"CidrAuthorizationContext\";\nvar _CADNL = \"ClearAllocationDefaultNetmaskLength\";\nvar _CAU = \"CoipAddressUsages\";\nvar _CAa = \"CapacityAllocations\";\nvar _CAo = \"ComponentArn\";\nvar _CAom = \"ComponentAccount\";\nvar _CAr = \"CreatedAt\";\nvar _CB = \"CidrBlock\";\nvar _CBA = \"CidrBlockAssociation\";\nvar _CBAS = \"CidrBlockAssociationSet\";\nvar _CBDH = \"CapacityBlockDurationHours\";\nvar _CBDM = \"CapacityBlockDurationMinutes\";\nvar _CBE = \"CapacityBlockExtensions\";\nvar _CBEDH = \"CapacityBlockExtensionDurationHours\";\nvar _CBEED = \"CapacityBlockExtensionEndDate\";\nvar _CBEO = \"CapacityBlockExtensionOfferings\";\nvar _CBEOI = \"CapacityBlockExtensionOfferingId\";\nvar _CBEPD = \"CapacityBlockExtensionPurchaseDate\";\nvar _CBES = \"CapacityBlockExtensionStatus\";\nvar _CBESD = \"CapacityBlockExtensionStartDate\";\nvar _CBO = \"CapacityBlockOfferings\";\nvar _CBOI = \"CapacityBlockOfferingId\";\nvar _CBS = \"CidrBlockState\";\nvar _CBSi = \"CidrBlockSet\";\nvar _CBT = \"CancelBundleTask\";\nvar _CBr = \"CreatedBy\";\nvar _CC = \"CoreCount\";\nvar _CCB = \"ClientCidrBlock\";\nvar _CCC = \"CreateCoipCidr\";\nvar _CCG = \"CreateCarrierGateway\";\nvar _CCGr = \"CreateCustomerGateway\";\nvar _CCO = \"ClientConnectOptions\";\nvar _CCP = \"CreateCoipPool\";\nvar _CCR = \"CancelCapacityReservation\";\nvar _CCRBS = \"CreateCapacityReservationBySplitting\";\nvar _CCRF = \"CancelCapacityReservationFleets\";\nvar _CCRFE = \"CancelCapacityReservationFleetError\";\nvar _CCRFr = \"CreateCapacityReservationFleet\";\nvar _CCRr = \"CreateCapacityReservation\";\nvar _CCT = \"CancelConversionTask\";\nvar _CCVE = \"CreateClientVpnEndpoint\";\nvar _CCVR = \"CreateClientVpnRoute\";\nvar _CCl = \"ClientConfiguration\";\nvar _CCo = \"CoipCidr\";\nvar _CCp = \"CpuCredits\";\nvar _CCu = \"CurrencyCode\";\nvar _CD = \"CommitmentDuration\";\nvar _CDH = \"CapacityDurationHours\";\nvar _CDM = \"CompletionDurationMinutes\";\nvar _CDO = \"CreateDhcpOptions\";\nvar _CDPR = \"CancelDeclarativePoliciesReport\";\nvar _CDS = \"CreateDefaultSubnet\";\nvar _CDSDA = \"ConfigDeliveryS3DestinationArn\";\nvar _CDSu = \"CustomDnsServers\";\nvar _CDV = \"CreateDefaultVpc\";\nvar _CDl = \"ClientData\";\nvar _CDr = \"CreateDate\";\nvar _CDre = \"CreationDate\";\nvar _CDrea = \"CreatedDate\";\nvar _CE = \"CronExpression\";\nvar _CECSD = \"CidrEndpointsCustomSubDomain\";\nvar _CED = \"CommitmentEndDate\";\nvar _CEOIG = \"CreateEgressOnlyInternetGateway\";\nvar _CET = \"CancelExportTask\";\nvar _CETo = \"ConnectionEstablishedTime\";\nvar _CETon = \"ConnectionEndTime\";\nvar _CEo = \"ConnectionEvents\";\nvar _CF = \"CreateFleet\";\nvar _CFI = \"CopyFpgaImage\";\nvar _CFIr = \"CreateFpgaImage\";\nvar _CFL = \"CreateFlowLogs\";\nvar _CFS = \"CurrentFleetState\";\nvar _CFo = \"ContainerFormat\";\nvar _CG = \"CarrierGateway\";\nvar _CGC = \"CustomerGatewayConfiguration\";\nvar _CGI = \"CarrierGatewayId\";\nvar _CGIa = \"CarrierGatewayIds\";\nvar _CGIu = \"CustomerGatewayId\";\nvar _CGIus = \"CustomerGatewayIds\";\nvar _CGa = \"CarrierGateways\";\nvar _CGu = \"CustomerGateway\";\nvar _CGur = \"CurrentGeneration\";\nvar _CGus = \"CustomerGateways\";\nvar _CI = \"CopyImage\";\nvar _CIBM = \"CurrentInstanceBootMode\";\nvar _CIC = \"CommittedInstanceCount\";\nvar _CICE = \"CreateInstanceConnectEndpoint\";\nvar _CIERVT = \"CreateIpamExternalResourceVerificationToken\";\nvar _CIET = \"CreateInstanceExportTask\";\nvar _CIEW = \"CreateInstanceEventWindow\";\nvar _CIG = \"CreateInternetGateway\";\nvar _CILP = \"CancelImageLaunchPermission\";\nvar _CIP = \"CreateIpamPool\";\nvar _CIRD = \"CreateIpamResourceDiscovery\";\nvar _CIS = \"CreateIpamScope\";\nvar _CISI = \"CurrentIpamScopeId\";\nvar _CIT = \"CancelImportTask\";\nvar _CITo = \"CopyImageTags\";\nvar _CIa = \"CarrierIp\";\nvar _CIi = \"CidrIp\";\nvar _CIid = \"CidrIpv6\";\nvar _CIidr = \"CidrIpv4\";\nvar _CIl = \"ClientId\";\nvar _CIli = \"ClientIp\";\nvar _CIo = \"ConnectionId\";\nvar _CIom = \"ComponentId\";\nvar _CIomm = \"CommitmentInfo\";\nvar _CIop = \"CoIp\";\nvar _CIor = \"CoreInfo\";\nvar _CIr = \"CreateImage\";\nvar _CIre = \"CreateIpam\";\nvar _CKP = \"CreateKeyPair\";\nvar _CLB = \"ClassicLoadBalancers\";\nvar _CLBC = \"ClassicLoadBalancersConfig\";\nvar _CLBL = \"ClassicLoadBalancerListener\";\nvar _CLBO = \"ClientLoginBannerOptions\";\nvar _CLDS = \"ClassicLinkDnsSupported\";\nvar _CLE = \"ClassicLinkEnabled\";\nvar _CLG = \"CloudwatchLogGroup\";\nvar _CLGR = \"CreateLocalGatewayRoute\";\nvar _CLGRT = \"CreateLocalGatewayRouteTable\";\nvar _CLGRTVA = \"CreateLocalGatewayRouteTableVpcAssociation\";\nvar _CLGRTVIGA = \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _CLGVI = \"CreateLocalGatewayVirtualInterface\";\nvar _CLGVIG = \"CreateLocalGatewayVirtualInterfaceGroup\";\nvar _CLO = \"ConnectionLogOptions\";\nvar _CLS = \"CloudwatchLogStream\";\nvar _CLT = \"CreateLaunchTemplate\";\nvar _CLTV = \"CreateLaunchTemplateVersion\";\nvar _CM = \"CpuManufacturers\";\nvar _CMKE = \"CustomerManagedKeyEnabled\";\nvar _CMPL = \"CreateManagedPrefixList\";\nvar _CN = \"CommonName\";\nvar _CNA = \"CreateNetworkAcl\";\nvar _CNAA = \"CoreNetworkAttachmentArn\";\nvar _CNAE = \"CreateNetworkAclEntry\";\nvar _CNAo = \"CoreNetworkArn\";\nvar _CNAon = \"ConnectionNotificationArn\";\nvar _CNG = \"CreateNatGateway\";\nvar _CNI = \"CreateNetworkInterface\";\nvar _CNIAS = \"CreateNetworkInsightsAccessScope\";\nvar _CNIP = \"CreateNetworkInsightsPath\";\nvar _CNIPr = \"CreateNetworkInterfacePermission\";\nvar _CNIo = \"ConnectionNotificationIds\";\nvar _CNIon = \"ConnectionNotificationId\";\nvar _CNIor = \"CoreNetworkId\";\nvar _CNS = \"ConnectionNotificationState\";\nvar _CNSo = \"ConnectionNotificationSet\";\nvar _CNT = \"ConnectionNotificationType\";\nvar _CNo = \"ConnectionNotification\";\nvar _CO = \"CidrOptions\";\nvar _COI = \"CustomerOwnedIp\";\nvar _COIP = \"CustomerOwnedIpv4Pool\";\nvar _COP = \"CoolOffPeriod\";\nvar _COPEO = \"CoolOffPeriodExpiresOn\";\nvar _COp = \"CpuOptions\";\nvar _CP = \"CoipPool\";\nvar _CPC = \"ConnectPeerConfiguration\";\nvar _CPG = \"CreatePlacementGroup\";\nvar _CPI = \"ConfirmProductInstance\";\nvar _CPIP = \"CreatePublicIpv4Pool\";\nvar _CPIo = \"CoipPoolId\";\nvar _CPo = \"CoipPools\";\nvar _CR = \"CreateRoute\";\nvar _CRA = \"CapacityReservationArn\";\nvar _CRBR = \"CapacityReservationBillingRequests\";\nvar _CRCC = \"ClientRootCertificateChain\";\nvar _CRCCA = \"ClientRootCertificateChainArn\";\nvar _CREO = \"ClientRouteEnforcementOptions\";\nvar _CRF = \"CapacityReservationFleets\";\nvar _CRFA = \"CapacityReservationFleetArn\";\nvar _CRFI = \"CapacityReservationFleetIds\";\nvar _CRFIa = \"CapacityReservationFleetId\";\nvar _CRG = \"CapacityReservationGroups\";\nvar _CRI = \"CapacityReservationId\";\nvar _CRIL = \"CancelReservedInstancesListing\";\nvar _CRILr = \"CreateReservedInstancesListing\";\nvar _CRIT = \"CreateRestoreImageTask\";\nvar _CRIa = \"CapacityReservationIds\";\nvar _CRIap = \"CapacityReservationInfo\";\nvar _CRL = \"CertificateRevocationList\";\nvar _CRO = \"CapacityReservationOptions\";\nvar _CRP = \"CapacityReservationPreference\";\nvar _CRRGA = \"CapacityReservationResourceGroupArn\";\nvar _CRRVT = \"CreateReplaceRootVolumeTask\";\nvar _CRS = \"CreateRouteServer\";\nvar _CRSE = \"CreateRouteServerEndpoint\";\nvar _CRSP = \"CreateRouteServerPeer\";\nvar _CRSa = \"CapacityReservationSpecification\";\nvar _CRT = \"CreateRouteTable\";\nvar _CRTa = \"CapacityReservationTarget\";\nvar _CRa = \"CancelReason\";\nvar _CRap = \"CapacityRebalance\";\nvar _CRapa = \"CapacityReservation\";\nvar _CRapac = \"CapacityReservations\";\nvar _CRo = \"ComponentRegion\";\nvar _CS = \"CopySnapshot\";\nvar _CSBN = \"CertificateS3BucketName\";\nvar _CSCR = \"CreateSubnetCidrReservation\";\nvar _CSDS = \"CreateSpotDatafeedSubscription\";\nvar _CSFR = \"CancelSpotFleetRequests\";\nvar _CSFRS = \"CurrentSpotFleetRequestState\";\nvar _CSG = \"CreateSecurityGroup\";\nvar _CSIR = \"CancelSpotInstanceRequests\";\nvar _CSIRa = \"CancelledSpotInstanceRequests\";\nvar _CSIT = \"CreateStoreImageTask\";\nvar _CSOK = \"CertificateS3ObjectKey\";\nvar _CSl = \"ClientSecret\";\nvar _CSo = \"ComplianceStatus\";\nvar _CSon = \"ConfigurationState\";\nvar _CSonn = \"ConnectionStatuses\";\nvar _CSr = \"CreateSnapshot\";\nvar _CSre = \"CreateSnapshots\";\nvar _CSrea = \"CreateSubnet\";\nvar _CSred = \"CreditSpecification\";\nvar _CSu = \"CurrentState\";\nvar _CSur = \"CurrentStatus\";\nvar _CT = \"CreateTags\";\nvar _CTC = \"ConnectionTrackingConfiguration\";\nvar _CTFS = \"CopyTagsFromSource\";\nvar _CTG = \"CreateTransitGateway\";\nvar _CTGC = \"CreateTransitGatewayConnect\";\nvar _CTGCP = \"CreateTransitGatewayConnectPeer\";\nvar _CTGMD = \"CreateTransitGatewayMulticastDomain\";\nvar _CTGPA = \"CreateTransitGatewayPeeringAttachment\";\nvar _CTGPLR = \"CreateTransitGatewayPrefixListReference\";\nvar _CTGPT = \"CreateTransitGatewayPolicyTable\";\nvar _CTGR = \"CreateTransitGatewayRoute\";\nvar _CTGRT = \"CreateTransitGatewayRouteTable\";\nvar _CTGRTA = \"CreateTransitGatewayRouteTableAnnouncement\";\nvar _CTGVA = \"CreateTransitGatewayVpcAttachment\";\nvar _CTI = \"ConversionTaskId\";\nvar _CTIo = \"ConversionTaskIds\";\nvar _CTMF = \"CreateTrafficMirrorFilter\";\nvar _CTMFR = \"CreateTrafficMirrorFilterRule\";\nvar _CTMS = \"CreateTrafficMirrorSession\";\nvar _CTMT = \"CreateTrafficMirrorTarget\";\nvar _CTS = \"ConnectionTrackingSpecification\";\nvar _CTl = \"ClientToken\";\nvar _CTo = \"ConnectivityType\";\nvar _CTom = \"CompleteTime\";\nvar _CTomp = \"CompletionTime\";\nvar _CTon = \"ConversionTasks\";\nvar _CTonv = \"ConversionTask\";\nvar _CTr = \"CreateTime\";\nvar _CTre = \"CreationTime\";\nvar _CTrea = \"CreationTimestamp\";\nvar _CV = \"CreateVolume\";\nvar _CVAE = \"CreateVerifiedAccessEndpoint\";\nvar _CVAG = \"CreateVerifiedAccessGroup\";\nvar _CVAI = \"CreateVerifiedAccessInstance\";\nvar _CVATP = \"CreateVerifiedAccessTrustProvider\";\nvar _CVBPAE = \"CreateVpcBlockPublicAccessExclusion\";\nvar _CVC = \"CreateVpnConnection\";\nvar _CVCR = \"CreateVpnConnectionRoute\";\nvar _CVE = \"CreateVpcEndpoint\";\nvar _CVECN = \"CreateVpcEndpointConnectionNotification\";\nvar _CVEI = \"ClientVpnEndpointId\";\nvar _CVEIl = \"ClientVpnEndpointIds\";\nvar _CVESC = \"CreateVpcEndpointServiceConfiguration\";\nvar _CVEl = \"ClientVpnEndpoints\";\nvar _CVG = \"CreateVpnGateway\";\nvar _CVP = \"CreateVolumePermission\";\nvar _CVPC = \"CreateVpcPeeringConnection\";\nvar _CVPr = \"CreateVolumePermissions\";\nvar _CVTN = \"ClientVpnTargetNetworks\";\nvar _CVr = \"CreateVpc\";\nvar _CVu = \"CurrentVersion\";\nvar _CWL = \"CloudWatchLogs\";\nvar _CWLO = \"CloudWatchLogOptions\";\nvar _Ca = \"Cascade\";\nvar _Cat = \"Category\";\nvar _Ch = \"Checksum\";\nvar _Ci = \"Cidrs\";\nvar _Co = \"Comment\";\nvar _Cod = \"Code\";\nvar _Com = \"Component\";\nvar _Con = \"Context\";\nvar _Conf = \"Configured\";\nvar _Confi = \"Config\";\nvar _Conn = \"Connections\";\nvar _Cor = \"Cores\";\nvar _Cou = \"Count\";\nvar _Cp = \"Cpu\";\nvar _D = \"Destination\";\nvar _DA = \"DescribeAddresses\";\nvar _DAA = \"DescribeAccountAttributes\";\nvar _DAAI = \"DelegatedAdminAccountId\";\nvar _DAAe = \"DescribeAddressesAttribute\";\nvar _DAIF = \"DescribeAggregateIdFormat\";\nvar _DAIS = \"DisableAllowedImagesSettings\";\nvar _DAIT = \"DenyAllIgwTraffic\";\nvar _DANPMS = \"DescribeAwsNetworkPerformanceMetricSubscriptions\";\nvar _DANPMSi = \"DisableAwsNetworkPerformanceMetricSubscription\";\nvar _DART = \"DefaultAssociationRouteTable\";\nvar _DAS = \"DisableApiStop\";\nvar _DAT = \"DescribeAddressTransfers\";\nvar _DATi = \"DisableAddressTransfer\";\nvar _DATis = \"DisableApiTermination\";\nvar _DAZ = \"DescribeAvailabilityZones\";\nvar _DAe = \"DeprecateAt\";\nvar _DAep = \"DeprovisionedAddresses\";\nvar _DAes = \"DestinationAddresses\";\nvar _DAest = \"DestinationAddress\";\nvar _DAesti = \"DestinationArn\";\nvar _DAi = \"DisassociateAddress\";\nvar _DBC = \"DeprovisionByoipCidr\";\nvar _DBCe = \"DescribeByoipCidrs\";\nvar _DBT = \"DescribeBundleTasks\";\nvar _DC = \"DisallowedCidrs\";\nvar _DCA = \"DomainCertificateArn\";\nvar _DCAR = \"DeliverCrossAccountRole\";\nvar _DCB = \"DestinationCidrBlock\";\nvar _DCBEH = \"DescribeCapacityBlockExtensionHistory\";\nvar _DCBEO = \"DescribeCapacityBlockExtensionOfferings\";\nvar _DCBO = \"DescribeCapacityBlockOfferings\";\nvar _DCC = \"DeleteCoipCidr\";\nvar _DCG = \"DeleteCarrierGateway\";\nvar _DCGe = \"DeleteCustomerGateway\";\nvar _DCGes = \"DescribeCarrierGateways\";\nvar _DCGesc = \"DescribeCustomerGateways\";\nvar _DCLI = \"DescribeClassicLinkInstances\";\nvar _DCLV = \"DetachClassicLinkVpc\";\nvar _DCP = \"DeleteCoipPool\";\nvar _DCPe = \"DescribeCoipPools\";\nvar _DCR = \"DescribeCapacityReservations\";\nvar _DCRBO = \"DisassociateCapacityReservationBillingOwner\";\nvar _DCRBR = \"DescribeCapacityReservationBillingRequests\";\nvar _DCRF = \"DescribeCapacityReservationFleets\";\nvar _DCRI = \"DestinationCapacityReservationId\";\nvar _DCRe = \"DestinationCapacityReservation\";\nvar _DCT = \"DescribeConversionTasks\";\nvar _DCVAR = \"DescribeClientVpnAuthorizationRules\";\nvar _DCVC = \"DescribeClientVpnConnections\";\nvar _DCVE = \"DeleteClientVpnEndpoint\";\nvar _DCVEe = \"DescribeClientVpnEndpoints\";\nvar _DCVR = \"DeleteClientVpnRoute\";\nvar _DCVRe = \"DescribeClientVpnRoutes\";\nvar _DCVTN = \"DescribeClientVpnTargetNetworks\";\nvar _DCVTNi = \"DisassociateClientVpnTargetNetwork\";\nvar _DCe = \"DestinationCidr\";\nvar _DCef = \"DefaultCores\";\nvar _DCh = \"DhcpConfigurations\";\nvar _DCi = \"DiskContainers\";\nvar _DCis = \"DiskContainer\";\nvar _DDO = \"DeleteDhcpOptions\";\nvar _DDOe = \"DescribeDhcpOptions\";\nvar _DDPR = \"DescribeDeclarativePoliciesReports\";\nvar _DE = \"DnsEntries\";\nvar _DECIR = \"DisassociateEnclaveCertificateIamRole\";\nvar _DEEBD = \"DisableEbsEncryptionByDefault\";\nvar _DEG = \"DescribeElasticGpus\";\nvar _DEIT = \"DescribeExportImageTasks\";\nvar _DEKI = \"DataEncryptionKeyId\";\nvar _DEOIG = \"DeleteEgressOnlyInternetGateway\";\nvar _DEOIGe = \"DescribeEgressOnlyInternetGateways\";\nvar _DEQC = \"DefaultEnaQueueCount\";\nvar _DEQCPI = \"DefaultEnaQueueCountPerInterface\";\nvar _DET = \"DescribeExportTasks\";\nvar _DEn = \"DnsEntry\";\nvar _DF = \"DeleteFleets\";\nvar _DFA = \"DefaultForAz\";\nvar _DFH = \"DescribeFleetHistory\";\nvar _DFI = \"DeleteFpgaImage\";\nvar _DFIA = \"DescribeFpgaImageAttribute\";\nvar _DFIe = \"DescribeFleetInstances\";\nvar _DFIes = \"DescribeFpgaImages\";\nvar _DFL = \"DeleteFlowLogs\";\nvar _DFLI = \"DescribeFastLaunchImages\";\nvar _DFLe = \"DescribeFlowLogs\";\nvar _DFLi = \"DisableFastLaunch\";\nvar _DFSR = \"DescribeFastSnapshotRestores\";\nvar _DFSRi = \"DisableFastSnapshotRestores\";\nvar _DFe = \"DescribeFleets\";\nvar _DH = \"DescribeHosts\";\nvar _DHI = \"DedicatedHostIds\";\nvar _DHR = \"DescribeHostReservations\";\nvar _DHRO = \"DescribeHostReservationOfferings\";\nvar _DHS = \"DedicatedHostsSupported\";\nvar _DI = \"DeleteIpam\";\nvar _DIA = \"DescribeImageAttribute\";\nvar _DIAe = \"DescribeInstanceAttribute\";\nvar _DIB = \"DeprovisionIpamByoasn\";\nvar _DIBPA = \"DisableImageBlockPublicAccess\";\nvar _DIBe = \"DescribeIpamByoasn\";\nvar _DIBi = \"DisassociateIpamByoasn\";\nvar _DICB = \"DestinationIpv6CidrBlock\";\nvar _DICE = \"DeleteInstanceConnectEndpoint\";\nvar _DICEe = \"DescribeInstanceConnectEndpoints\";\nvar _DICS = \"DescribeInstanceCreditSpecifications\";\nvar _DID = \"DisableImageDeprecation\";\nvar _DIDP = \"DisableImageDeregistrationProtection\";\nvar _DIENA = \"DeregisterInstanceEventNotificationAttributes\";\nvar _DIENAe = \"DescribeInstanceEventNotificationAttributes\";\nvar _DIERVT = \"DeleteIpamExternalResourceVerificationToken\";\nvar _DIERVTe = \"DescribeIpamExternalResourceVerificationTokens\";\nvar _DIEW = \"DeleteInstanceEventWindow\";\nvar _DIEWe = \"DescribeInstanceEventWindows\";\nvar _DIEWi = \"DisassociateInstanceEventWindow\";\nvar _DIF = \"DescribeIdFormat\";\nvar _DIFi = \"DiskImageFormat\";\nvar _DIG = \"DeleteInternetGateway\";\nvar _DIGe = \"DescribeInternetGateways\";\nvar _DIGet = \"DetachInternetGateway\";\nvar _DIIF = \"DescribeIdentityIdFormat\";\nvar _DIIM = \"DescribeInstanceImageMetadata\";\nvar _DIIP = \"DisassociateIamInstanceProfile\";\nvar _DIIPA = \"DescribeIamInstanceProfileAssociations\";\nvar _DIIT = \"DescribeImportImageTasks\";\nvar _DIOAA = \"DisableIpamOrganizationAdminAccount\";\nvar _DIP = \"DeleteIpamPool\";\nvar _DIPC = \"DeprovisionIpamPoolCidr\";\nvar _DIPe = \"DescribeIpamPools\";\nvar _DIPes = \"DescribeIpv6Pools\";\nvar _DIRD = \"DeleteIpamResourceDiscovery\";\nvar _DIRDA = \"DescribeIpamResourceDiscoveryAssociations\";\nvar _DIRDe = \"DescribeIpamResourceDiscoveries\";\nvar _DIRDi = \"DisassociateIpamResourceDiscovery\";\nvar _DIS = \"DeleteIpamScope\";\nvar _DISI = \"DestinationIpamScopeId\";\nvar _DIST = \"DescribeImportSnapshotTasks\";\nvar _DISe = \"DescribeInstanceStatus\";\nvar _DISes = \"DescribeIpamScopes\";\nvar _DISi = \"DiskImageSize\";\nvar _DIT = \"DescribeInstanceTopology\";\nvar _DITO = \"DescribeInstanceTypeOfferings\";\nvar _DITe = \"DescribeInstanceTypes\";\nvar _DIe = \"DeregisterImage\";\nvar _DIes = \"DescribeImages\";\nvar _DIesc = \"DescribeInstances\";\nvar _DIescr = \"DescribeIpams\";\nvar _DIest = \"DestinationIp\";\nvar _DIev = \"DeviceIndex\";\nvar _DIevi = \"DeviceId\";\nvar _DIi = \"DisableImage\";\nvar _DIir = \"DirectoryId\";\nvar _DIis = \"DiskImages\";\nvar _DKP = \"DeleteKeyPair\";\nvar _DKPe = \"DescribeKeyPairs\";\nvar _DLADI = \"DisableLniAtDeviceIndex\";\nvar _DLEM = \"DeliverLogsErrorMessage\";\nvar _DLG = \"DescribeLocalGateways\";\nvar _DLGR = \"DeleteLocalGatewayRoute\";\nvar _DLGRT = \"DeleteLocalGatewayRouteTable\";\nvar _DLGRTVA = \"DeleteLocalGatewayRouteTableVpcAssociation\";\nvar _DLGRTVAe = \"DescribeLocalGatewayRouteTableVpcAssociations\";\nvar _DLGRTVIGA = \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _DLGRTVIGAe = \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations\";\nvar _DLGRTe = \"DescribeLocalGatewayRouteTables\";\nvar _DLGVI = \"DeleteLocalGatewayVirtualInterface\";\nvar _DLGVIG = \"DeleteLocalGatewayVirtualInterfaceGroup\";\nvar _DLGVIGe = \"DescribeLocalGatewayVirtualInterfaceGroups\";\nvar _DLGVIe = \"DescribeLocalGatewayVirtualInterfaces\";\nvar _DLPA = \"DeliverLogsPermissionArn\";\nvar _DLS = \"DescribeLockedSnapshots\";\nvar _DLSe = \"DeliverLogsStatus\";\nvar _DLT = \"DeleteLaunchTemplate\";\nvar _DLTV = \"DeleteLaunchTemplateVersions\";\nvar _DLTVe = \"DescribeLaunchTemplateVersions\";\nvar _DLTe = \"DescribeLaunchTemplates\";\nvar _DMA = \"DescribeMovingAddresses\";\nvar _DMGM = \"DeregisteredMulticastGroupMembers\";\nvar _DMGS = \"DeregisteredMulticastGroupSources\";\nvar _DMH = \"DescribeMacHosts\";\nvar _DMPL = \"DeleteManagedPrefixList\";\nvar _DMPLe = \"DescribeManagedPrefixLists\";\nvar _DN = \"DeviceName\";\nvar _DNA = \"DeleteNetworkAcl\";\nvar _DNAE = \"DeleteNetworkAclEntry\";\nvar _DNAe = \"DescribeNetworkAcls\";\nvar _DNCI = \"DefaultNetworkCardIndex\";\nvar _DNG = \"DeleteNatGateway\";\nvar _DNGA = \"DisassociateNatGatewayAddress\";\nvar _DNGe = \"DescribeNatGateways\";\nvar _DNI = \"DeleteNetworkInterface\";\nvar _DNIA = \"DeleteNetworkInsightsAnalysis\";\nvar _DNIAS = \"DeleteNetworkInsightsAccessScope\";\nvar _DNIASA = \"DeleteNetworkInsightsAccessScopeAnalysis\";\nvar _DNIASAe = \"DescribeNetworkInsightsAccessScopeAnalyses\";\nvar _DNIASe = \"DescribeNetworkInsightsAccessScopes\";\nvar _DNIAe = \"DescribeNetworkInsightsAnalyses\";\nvar _DNIAes = \"DescribeNetworkInterfaceAttribute\";\nvar _DNII = \"DeregisteredNetworkInterfaceIds\";\nvar _DNIP = \"DeleteNetworkInsightsPath\";\nvar _DNIPe = \"DeleteNetworkInterfacePermission\";\nvar _DNIPes = \"DescribeNetworkInsightsPaths\";\nvar _DNIPesc = \"DescribeNetworkInterfacePermissions\";\nvar _DNIe = \"DescribeNetworkInterfaces\";\nvar _DNIet = \"DetachNetworkInterface\";\nvar _DNn = \"DnsName\";\nvar _DNo = \"DomainName\";\nvar _DO = \"DestinationOptions\";\nvar _DOA = \"DestinationOutpostArn\";\nvar _DOI = \"DhcpOptionsId\";\nvar _DOIh = \"DhcpOptionsIds\";\nvar _DOL = \"DescribeOutpostLags\";\nvar _DOST = \"DisconnectOnSessionTimeout\";\nvar _DOT = \"DeleteOnTermination\";\nvar _DOe = \"DeviceOptions\";\nvar _DOh = \"DhcpOptions\";\nvar _DOn = \"DnsOptions\";\nvar _DP = \"DeliveryPreference\";\nvar _DPDTA = \"DPDTimeoutAction\";\nvar _DPDTS = \"DPDTimeoutSeconds\";\nvar _DPG = \"DeletePlacementGroup\";\nvar _DPGe = \"DescribePlacementGroups\";\nvar _DPIF = \"DescribePrincipalIdFormat\";\nvar _DPIP = \"DeletePublicIpv4Pool\";\nvar _DPIPC = \"DeprovisionPublicIpv4PoolCidr\";\nvar _DPIPe = \"DescribePublicIpv4Pools\";\nvar _DPL = \"DescribePrefixLists\";\nvar _DPLI = \"DestinationPrefixListId\";\nvar _DPLe = \"DestinationPrefixLists\";\nvar _DPR = \"DestinationPortRange\";\nvar _DPRT = \"DefaultPropagationRouteTable\";\nvar _DPRe = \"DestinationPortRanges\";\nvar _DPe = \"DestinationPort\";\nvar _DPer = \"DeregistrationProtection\";\nvar _DPes = \"DestinationPorts\";\nvar _DQ = \"DataQueries\";\nvar _DQRI = \"DeleteQueuedReservedInstances\";\nvar _DR = \"DeleteRoute\";\nvar _DRDAI = \"DefaultResourceDiscoveryAssociationId\";\nvar _DRDI = \"DefaultResourceDiscoveryId\";\nvar _DRI = \"DescribeReservedInstances\";\nvar _DRIL = \"DescribeReservedInstancesListings\";\nvar _DRIM = \"DescribeReservedInstancesModifications\";\nvar _DRIO = \"DescribeReservedInstancesOfferings\";\nvar _DRIT = \"DnsRecordIpType\";\nvar _DRRV = \"DeleteReplacedRootVolume\";\nvar _DRRVT = \"DescribeReplaceRootVolumeTasks\";\nvar _DRS = \"DeleteRouteServer\";\nvar _DRSE = \"DeleteRouteServerEndpoint\";\nvar _DRSEe = \"DescribeRouteServerEndpoints\";\nvar _DRSP = \"DeleteRouteServerPeer\";\nvar _DRSPe = \"DescribeRouteServerPeers\";\nvar _DRSPi = \"DisableRouteServerPropagation\";\nvar _DRSa = \"DataRetentionSupport\";\nvar _DRSe = \"DescribeRouteServers\";\nvar _DRSi = \"DisassociateRouteServer\";\nvar _DRT = \"DeleteRouteTable\";\nvar _DRTA = \"DefaultRouteTableAssociation\";\nvar _DRTP = \"DefaultRouteTablePropagation\";\nvar _DRTe = \"DescribeRouteTables\";\nvar _DRTi = \"DisassociateRouteTable\";\nvar _DRa = \"DataResponses\";\nvar _DRe = \"DescribeRegions\";\nvar _DRes = \"DestinationRegion\";\nvar _DRi = \"DiscoveryRegion\";\nvar _DRr = \"DryRun\";\nvar _DRy = \"DynamicRouting\";\nvar _DS = \"DeleteSnapshot\";\nvar _DSA = \"DescribeSnapshotAttribute\";\nvar _DSBPA = \"DisableSnapshotBlockPublicAccess\";\nvar _DSCA = \"DisableSerialConsoleAccess\";\nvar _DSCB = \"DisassociateSubnetCidrBlock\";\nvar _DSCR = \"DeleteSubnetCidrReservation\";\nvar _DSCRe = \"DeletedSubnetCidrReservation\";\nvar _DSDS = \"DeleteSpotDatafeedSubscription\";\nvar _DSDSe = \"DescribeSpotDatafeedSubscription\";\nvar _DSFI = \"DescribeSpotFleetInstances\";\nvar _DSFR = \"DescribeSpotFleetRequests\";\nvar _DSFRH = \"DescribeSpotFleetRequestHistory\";\nvar _DSG = \"DeleteSecurityGroup\";\nvar _DSGR = \"DescribeSecurityGroupReferences\";\nvar _DSGRe = \"DescribeSecurityGroupRules\";\nvar _DSGV = \"DisassociateSecurityGroupVpc\";\nvar _DSGVA = \"DescribeSecurityGroupVpcAssociations\";\nvar _DSGe = \"DescribeSecurityGroups\";\nvar _DSI = \"DescribeScheduledInstances\";\nvar _DSIA = \"DescribeScheduledInstanceAvailability\";\nvar _DSIR = \"DescribeSpotInstanceRequests\";\nvar _DSIT = \"DescribeStoreImageTasks\";\nvar _DSLVI = \"DescribeServiceLinkVirtualInterfaces\";\nvar _DSPH = \"DescribeSpotPriceHistory\";\nvar _DSSG = \"DescribeStaleSecurityGroups\";\nvar _DSTS = \"DescribeSnapshotTierStatus\";\nvar _DSe = \"DeleteSubnet\";\nvar _DSel = \"DeliveryStream\";\nvar _DSeli = \"DeliveryStatus\";\nvar _DSes = \"DescribeSnapshots\";\nvar _DSesc = \"DescribeSubnets\";\nvar _DSn = \"DnsServers\";\nvar _DSns = \"DnsSupport\";\nvar _DT = \"DeleteTags\";\nvar _DTA = \"DpdTimeoutAction\";\nvar _DTCT = \"DefaultTargetCapacityType\";\nvar _DTG = \"DeleteTransitGateway\";\nvar _DTGA = \"DescribeTransitGatewayAttachments\";\nvar _DTGC = \"DeleteTransitGatewayConnect\";\nvar _DTGCP = \"DeleteTransitGatewayConnectPeer\";\nvar _DTGCPe = \"DescribeTransitGatewayConnectPeers\";\nvar _DTGCe = \"DescribeTransitGatewayConnects\";\nvar _DTGMD = \"DeleteTransitGatewayMulticastDomain\";\nvar _DTGMDe = \"DescribeTransitGatewayMulticastDomains\";\nvar _DTGMDi = \"DisassociateTransitGatewayMulticastDomain\";\nvar _DTGMGM = \"DeregisterTransitGatewayMulticastGroupMembers\";\nvar _DTGMGS = \"DeregisterTransitGatewayMulticastGroupSources\";\nvar _DTGPA = \"DeleteTransitGatewayPeeringAttachment\";\nvar _DTGPAe = \"DescribeTransitGatewayPeeringAttachments\";\nvar _DTGPLR = \"DeleteTransitGatewayPrefixListReference\";\nvar _DTGPT = \"DeleteTransitGatewayPolicyTable\";\nvar _DTGPTe = \"DescribeTransitGatewayPolicyTables\";\nvar _DTGPTi = \"DisassociateTransitGatewayPolicyTable\";\nvar _DTGR = \"DeleteTransitGatewayRoute\";\nvar _DTGRT = \"DeleteTransitGatewayRouteTable\";\nvar _DTGRTA = \"DeleteTransitGatewayRouteTableAnnouncement\";\nvar _DTGRTAe = \"DescribeTransitGatewayRouteTableAnnouncements\";\nvar _DTGRTP = \"DisableTransitGatewayRouteTablePropagation\";\nvar _DTGRTe = \"DescribeTransitGatewayRouteTables\";\nvar _DTGRTi = \"DisassociateTransitGatewayRouteTable\";\nvar _DTGVA = \"DeleteTransitGatewayVpcAttachment\";\nvar _DTGVAe = \"DescribeTransitGatewayVpcAttachments\";\nvar _DTGe = \"DescribeTransitGateways\";\nvar _DTI = \"DisassociateTrunkInterface\";\nvar _DTIA = \"DescribeTrunkInterfaceAssociations\";\nvar _DTMF = \"DeleteTrafficMirrorFilter\";\nvar _DTMFR = \"DeleteTrafficMirrorFilterRule\";\nvar _DTMFRe = \"DescribeTrafficMirrorFilterRules\";\nvar _DTMFe = \"DescribeTrafficMirrorFilters\";\nvar _DTMS = \"DeleteTrafficMirrorSession\";\nvar _DTMSe = \"DescribeTrafficMirrorSessions\";\nvar _DTMT = \"DeleteTrafficMirrorTarget\";\nvar _DTMTe = \"DescribeTrafficMirrorTargets\";\nvar _DTP = \"DeviceTrustProviders\";\nvar _DTPC = \"DefaultThreadsPerCore\";\nvar _DTPT = \"DeviceTrustProviderType\";\nvar _DTS = \"DpdTimeoutSeconds\";\nvar _DTe = \"DescribeTags\";\nvar _DTel = \"DeletionTime\";\nvar _DTele = \"DeleteTime\";\nvar _DTelet = \"DeletionTimestamp\";\nvar _DTep = \"DeprecationTime\";\nvar _DTi = \"DisablingTime\";\nvar _DTis = \"DisabledTime\";\nvar _DV = \"DeleteVolume\";\nvar _DVA = \"DescribeVolumeAttribute\";\nvar _DVAE = \"DeleteVerifiedAccessEndpoint\";\nvar _DVAEe = \"DescribeVerifiedAccessEndpoints\";\nvar _DVAG = \"DeleteVerifiedAccessGroup\";\nvar _DVAGe = \"DescribeVerifiedAccessGroups\";\nvar _DVAI = \"DeleteVerifiedAccessInstance\";\nvar _DVAILC = \"DescribeVerifiedAccessInstanceLoggingConfigurations\";\nvar _DVAIe = \"DescribeVerifiedAccessInstances\";\nvar _DVATP = \"DeleteVerifiedAccessTrustProvider\";\nvar _DVATPe = \"DescribeVerifiedAccessTrustProviders\";\nvar _DVATPet = \"DetachVerifiedAccessTrustProvider\";\nvar _DVAe = \"DescribeVpcAttribute\";\nvar _DVBPAE = \"DeleteVpcBlockPublicAccessExclusion\";\nvar _DVBPAEe = \"DescribeVpcBlockPublicAccessExclusions\";\nvar _DVBPAO = \"DescribeVpcBlockPublicAccessOptions\";\nvar _DVC = \"DeleteVpnConnection\";\nvar _DVCB = \"DisassociateVpcCidrBlock\";\nvar _DVCL = \"DescribeVpcClassicLink\";\nvar _DVCLDS = \"DescribeVpcClassicLinkDnsSupport\";\nvar _DVCLDSi = \"DisableVpcClassicLinkDnsSupport\";\nvar _DVCLi = \"DisableVpcClassicLink\";\nvar _DVCR = \"DeleteVpnConnectionRoute\";\nvar _DVCe = \"DescribeVpnConnections\";\nvar _DVCef = \"DefaultVCpus\";\nvar _DVD = \"DeviceValidationDomain\";\nvar _DVE = \"DeleteVpcEndpoints\";\nvar _DVEA = \"DescribeVpcEndpointAssociations\";\nvar _DVEC = \"DescribeVpcEndpointConnections\";\nvar _DVECN = \"DeleteVpcEndpointConnectionNotifications\";\nvar _DVECNe = \"DescribeVpcEndpointConnectionNotifications\";\nvar _DVES = \"DescribeVpcEndpointServices\";\nvar _DVESC = \"DeleteVpcEndpointServiceConfigurations\";\nvar _DVESCe = \"DescribeVpcEndpointServiceConfigurations\";\nvar _DVESP = \"DescribeVpcEndpointServicePermissions\";\nvar _DVEe = \"DescribeVpcEndpoints\";\nvar _DVG = \"DeleteVpnGateway\";\nvar _DVGe = \"DescribeVpnGateways\";\nvar _DVGet = \"DetachVpnGateway\";\nvar _DVM = \"DescribeVolumesModifications\";\nvar _DVN = \"DefaultVersionNumber\";\nvar _DVPC = \"DeleteVpcPeeringConnection\";\nvar _DVPCe = \"DescribeVpcPeeringConnections\";\nvar _DVRP = \"DisableVgwRoutePropagation\";\nvar _DVS = \"DescribeVolumeStatus\";\nvar _DVe = \"DeleteVpc\";\nvar _DVef = \"DefaultVersion\";\nvar _DVes = \"DescribeVolumes\";\nvar _DVesc = \"DescribeVpcs\";\nvar _DVest = \"DestinationVpc\";\nvar _DVet = \"DetachVolume\";\nvar _Da = \"Data\";\nvar _De = \"Description\";\nvar _Dea = \"Deadline\";\nvar _Des = \"Destinations\";\nvar _Det = \"Details\";\nvar _Dev = \"Device\";\nvar _Di = \"Direction\";\nvar _Dis = \"Disks\";\nvar _Do = \"Domain\";\nvar _Du = \"Duration\";\nvar _E = \"Ebs\";\nvar _EA = \"EnableAcceleration\";\nvar _EAIS = \"EnableAllowedImagesSettings\";\nvar _EANPMS = \"EnableAwsNetworkPerformanceMetricSubscription\";\nvar _EAT = \"EnableAddressTransfer\";\nvar _EAn = \"EniAddress\";\nvar _EAx = \"ExclusionsAllowed\";\nvar _EB = \"EgressBytes\";\nvar _EBV = \"ExcludeBootVolume\";\nvar _EC = \"ErrorCode\";\nvar _ECTP = \"ExcessCapacityTerminationPolicy\";\nvar _ECVCC = \"ExportClientVpnClientConfiguration\";\nvar _ECVCCRL = \"ExportClientVpnClientCertificateRevocationList\";\nvar _ECn = \"EncryptionControl\";\nvar _ECx = \"ExplanationCode\";\nvar _ED = \"EndDate\";\nvar _EDH = \"EnableDnsHostnames\";\nvar _EDP = \"EndpointDomainPrefix\";\nvar _EDR = \"EndDateRange\";\nvar _EDS = \"EnableDnsSupport\";\nvar _EDT = \"EndDateType\";\nvar _EDVI = \"ExcludeDataVolumeIds\";\nvar _EDf = \"EffectiveDate\";\nvar _EDn = \"EnableDns64\";\nvar _EDnd = \"EndpointDomain\";\nvar _EDv = \"EventDescription\";\nvar _EDx = \"ExpirationDate\";\nvar _EEA = \"EndpointEniAddress\";\nvar _EEBD = \"EbsEncryptionByDefault\";\nvar _EEEBD = \"EnableEbsEncryptionByDefault\";\nvar _EEI = \"EndpointEniId\";\nvar _EFL = \"EnableFastLaunch\";\nvar _EFR = \"EgressFilterRules\";\nvar _EFSR = \"EnableFastSnapshotRestores\";\nvar _EGA = \"ElasticGpuAssociations\";\nvar _EGAI = \"ElasticGpuAssociationId\";\nvar _EGAS = \"ElasticGpuAssociationState\";\nvar _EGAT = \"ElasticGpuAssociationTime\";\nvar _EGH = \"ElasticGpuHealth\";\nvar _EGI = \"ElasticGpuIds\";\nvar _EGIl = \"ElasticGpuId\";\nvar _EGS = \"ElasticGpuSpecifications\";\nvar _EGSl = \"ElasticGpuSpecification\";\nvar _EGSla = \"ElasticGpuSet\";\nvar _EGSlas = \"ElasticGpuState\";\nvar _EGT = \"ElasticGpuType\";\nvar _EH = \"EndHour\";\nvar _EI = \"EnableImage\";\nvar _EIA = \"ElasticInferenceAccelerators\";\nvar _EIAA = \"ElasticInferenceAcceleratorArn\";\nvar _EIAAI = \"ElasticInferenceAcceleratorAssociationId\";\nvar _EIAAS = \"ElasticInferenceAcceleratorAssociationState\";\nvar _EIAAT = \"ElasticInferenceAcceleratorAssociationTime\";\nvar _EIAAl = \"ElasticInferenceAcceleratorAssociations\";\nvar _EIBPA = \"EnableImageBlockPublicAccess\";\nvar _EID = \"EnableImageDeprecation\";\nvar _EIDP = \"EnableImageDeregistrationProtection\";\nvar _EIOAA = \"EnableIpamOrganizationAdminAccount\";\nvar _EIT = \"ExcludedInstanceTypes\";\nvar _EITI = \"ExportImageTaskIds\";\nvar _EITIx = \"ExportImageTaskId\";\nvar _EITS = \"EncryptionInTransitSupported\";\nvar _EITx = \"ExportImageTasks\";\nvar _EIb = \"EbsInfo\";\nvar _EIf = \"EfaInfo\";\nvar _EIn = \"EniId\";\nvar _EIv = \"EventInformation\";\nvar _EIve = \"EventId\";\nvar _EIx = \"ExportImage\";\nvar _EIxc = \"ExclusionId\";\nvar _EIxch = \"ExchangeId\";\nvar _EIxcl = \"ExclusionIds\";\nvar _EKKI = \"EncryptionKmsKeyId\";\nvar _ELADI = \"EnableLniAtDeviceIndex\";\nvar _ELBL = \"ElasticLoadBalancerListener\";\nvar _EM = \"ErrorMessage\";\nvar _ENAUM = \"EnableNetworkAddressUsageMetrics\";\nvar _EO = \"EbsOptimized\";\nvar _EOI = \"EbsOptimizedInfo\";\nvar _EOIG = \"EgressOnlyInternetGateway\";\nvar _EOIGI = \"EgressOnlyInternetGatewayId\";\nvar _EOIGIg = \"EgressOnlyInternetGatewayIds\";\nvar _EOIGg = \"EgressOnlyInternetGateways\";\nvar _EOS = \"EbsOptimizedSupport\";\nvar _EOn = \"EnclaveOptions\";\nvar _EP = \"ExcludePaths\";\nvar _EPG = \"EnablePrivateGua\";\nvar _EPI = \"EnablePrimaryIpv6\";\nvar _EPg = \"EgressPackets\";\nvar _EQC = \"EnaQueueCount\";\nvar _ERAOS = \"EnableReachabilityAnalyzerOrganizationSharing\";\nvar _ERNDAAAAR = \"EnableResourceNameDnsAAAARecord\";\nvar _ERNDAAAAROL = \"EnableResourceNameDnsAAAARecordOnLaunch\";\nvar _ERNDAR = \"EnableResourceNameDnsARecord\";\nvar _ERNDAROL = \"EnableResourceNameDnsARecordOnLaunch\";\nvar _ERSP = \"EnableRouteServerPropagation\";\nvar _ES = \"EphemeralStorage\";\nvar _ESBPA = \"EnableSnapshotBlockPublicAccess\";\nvar _ESCA = \"EnableSerialConsoleAccess\";\nvar _ESE = \"EnaSrdEnabled\";\nvar _ESS = \"EnaSrdSpecification\";\nvar _ESSn = \"EnaSrdSupported\";\nvar _EST = \"EventSubType\";\nvar _ESUE = \"EnaSrdUdpEnabled\";\nvar _ESUS = \"EnaSrdUdpSpecification\";\nvar _ESf = \"EfaSupported\";\nvar _ESn = \"EnaSupport\";\nvar _ESnc = \"EncryptionSupport\";\nvar _ET = \"EndpointType\";\nvar _ETGR = \"ExportTransitGatewayRoutes\";\nvar _ETGRTP = \"EnableTransitGatewayRouteTablePropagation\";\nvar _ETI = \"ExportTaskId\";\nvar _ETIx = \"ExportTaskIds\";\nvar _ETLC = \"EnableTunnelLifecycleControl\";\nvar _ETST = \"ExportToS3Task\";\nvar _ETa = \"EarliestTime\";\nvar _ETi = \"EipTags\";\nvar _ETn = \"EndTime\";\nvar _ETna = \"EnablingTime\";\nvar _ETnab = \"EnabledTime\";\nvar _ETv = \"EventType\";\nvar _ETx = \"ExpirationTime\";\nvar _ETxp = \"ExportTask\";\nvar _ETxpo = \"ExportTasks\";\nvar _EU = \"ExecutableUsers\";\nvar _EVAICC = \"ExportVerifiedAccessInstanceClientConfiguration\";\nvar _EVCL = \"EnableVpcClassicLink\";\nvar _EVCLDS = \"EnableVpcClassicLinkDnsSupport\";\nvar _EVIO = \"EnableVolumeIO\";\nvar _EVRP = \"EnableVgwRoutePropagation\";\nvar _EWD = \"EndWeekDay\";\nvar _Eg = \"Egress\";\nvar _En = \"Enabled\";\nvar _Enc = \"Encrypted\";\nvar _End = \"End\";\nvar _Endp = \"Endpoint\";\nvar _Enf = \"Enforced\";\nvar _Ent = \"Entries\";\nvar _Er = \"Error\";\nvar _Err = \"Errors\";\nvar _Ev = \"Events\";\nvar _Eve = \"Event\";\nvar _Ex = \"Explanations\";\nvar _F = \"Force\";\nvar _FA = \"FederatedAuthentication\";\nvar _FAD = \"FilterAtDestination\";\nvar _FAS = \"FilterAtSource\";\nvar _FAi = \"FirstAddress\";\nvar _FC = \"FulfilledCapacity\";\nvar _FCR = \"FleetCapacityReservations\";\nvar _FCa = \"FailureCode\";\nvar _FCi = \"FindingComponents\";\nvar _FD = \"ForceDelete\";\nvar _FDN = \"FipsDnsName\";\nvar _FE = \"FipsEnabled\";\nvar _FEQS = \"FlexibleEnaQueuesSupport\";\nvar _FF = \"FileFormat\";\nvar _FFC = \"FailedFleetCancellations\";\nvar _FFi = \"FindingsFound\";\nvar _FI = \"FleetIds\";\nvar _FIA = \"FilterInArns\";\nvar _FIAp = \"FpgaImageAttribute\";\nvar _FIGI = \"FpgaImageGlobalId\";\nvar _FII = \"FpgaImageId\";\nvar _FIIp = \"FpgaImageIds\";\nvar _FIPSE = \"FIPSEnabled\";\nvar _FIi = \"FindingId\";\nvar _FIl = \"FleetId\";\nvar _FIp = \"FpgaImages\";\nvar _FIpg = \"FpgaInfo\";\nvar _FL = \"FlowLogs\";\nvar _FLI = \"FlowLogIds\";\nvar _FLIa = \"FastLaunchImages\";\nvar _FLIl = \"FlowLogId\";\nvar _FLS = \"FlowLogStatus\";\nvar _FM = \"FailureMessage\";\nvar _FOA = \"FilterOutArns\";\nvar _FODC = \"FulfilledOnDemandCapacity\";\nvar _FP = \"FromPort\";\nvar _FPC = \"ForwardPathComponents\";\nvar _FPi = \"FixedPrice\";\nvar _FQPD = \"FailedQueuedPurchaseDeletions\";\nvar _FR = \"FailureReason\";\nvar _FRa = \"FastRestored\";\nvar _FS = \"FleetState\";\nvar _FSR = \"FastSnapshotRestores\";\nvar _FSRSE = \"FastSnapshotRestoreStateErrors\";\nvar _FSRi = \"FirewallStatelessRule\";\nvar _FSRir = \"FirewallStatefulRule\";\nvar _FSSIB = \"FullSnapshotSizeInBytes\";\nvar _FSST = \"FirstSlotStartTime\";\nvar _FSSTR = \"FirstSlotStartTimeRange\";\nvar _FTE = \"FreeTierEligible\";\nvar _Fa = \"Fault\";\nvar _Fi = \"Filters\";\nvar _Fil = \"Filter\";\nvar _Fl = \"Fleets\";\nvar _Fo = \"Format\";\nvar _Fp = \"Fpgas\";\nvar _Fr = \"From\";\nvar _Fre = \"Frequency\";\nvar _G = \"Groups\";\nvar _GA = \"GroupArn\";\nvar _GAECIR = \"GetAssociatedEnclaveCertificateIamRoles\";\nvar _GAIPC = \"GetAssociatedIpv6PoolCidrs\";\nvar _GAIS = \"GetAllowedImagesSettings\";\nvar _GANPD = \"GetAwsNetworkPerformanceData\";\nvar _GAS = \"GatewayAssociationState\";\nvar _GCO = \"GetConsoleOutput\";\nvar _GCPU = \"GetCoipPoolUsage\";\nvar _GCRU = \"GetCapacityReservationUsage\";\nvar _GCS = \"GetConsoleScreenshot\";\nvar _GD = \"GroupDescription\";\nvar _GDCS = \"GetDefaultCreditSpecification\";\nvar _GDPRS = \"GetDeclarativePoliciesReportSummary\";\nvar _GEDKKI = \"GetEbsDefaultKmsKeyId\";\nvar _GEEBD = \"GetEbsEncryptionByDefault\";\nvar _GFLIT = \"GetFlowLogsIntegrationTemplate\";\nvar _GGFCR = \"GetGroupsForCapacityReservation\";\nvar _GHRPP = \"GetHostReservationPurchasePreview\";\nvar _GI = \"GatewayId\";\nvar _GIA = \"GroupIpAddress\";\nvar _GIAH = \"GetIpamAddressHistory\";\nvar _GIBPAS = \"GetImageBlockPublicAccessState\";\nvar _GIDA = \"GetIpamDiscoveredAccounts\";\nvar _GIDPA = \"GetIpamDiscoveredPublicAddresses\";\nvar _GIDRC = \"GetIpamDiscoveredResourceCidrs\";\nvar _GIMD = \"GetInstanceMetadataDefaults\";\nvar _GIPA = \"GetIpamPoolAllocations\";\nvar _GIPC = \"GetIpamPoolCidrs\";\nvar _GIRC = \"GetIpamResourceCidrs\";\nvar _GITEP = \"GetInstanceTpmEkPub\";\nvar _GITFIR = \"GetInstanceTypesFromInstanceRequirements\";\nvar _GIUD = \"GetInstanceUefiData\";\nvar _GIp = \"GpuInfo\";\nvar _GIr = \"GroupId\";\nvar _GIro = \"GroupIds\";\nvar _GK = \"GreKey\";\nvar _GLBA = \"GatewayLoadBalancerArns\";\nvar _GLBEI = \"GatewayLoadBalancerEndpointId\";\nvar _GLN = \"GroupLongName\";\nvar _GLTD = \"GetLaunchTemplateData\";\nvar _GM = \"GroupMember\";\nvar _GMPLA = \"GetManagedPrefixListAssociations\";\nvar _GMPLE = \"GetManagedPrefixListEntries\";\nvar _GN = \"GroupName\";\nvar _GNIASAF = \"GetNetworkInsightsAccessScopeAnalysisFindings\";\nvar _GNIASC = \"GetNetworkInsightsAccessScopeContent\";\nvar _GNr = \"GroupNames\";\nvar _GOI = \"GroupOwnerId\";\nvar _GPD = \"GetPasswordData\";\nvar _GRIEQ = \"GetReservedInstancesExchangeQuote\";\nvar _GRSA = \"GetRouteServerAssociations\";\nvar _GRSP = \"GetRouteServerPropagations\";\nvar _GRSRD = \"GetRouteServerRoutingDatabase\";\nvar _GS = \"GroupSource\";\nvar _GSBPAS = \"GetSnapshotBlockPublicAccessState\";\nvar _GSCAS = \"GetSerialConsoleAccessStatus\";\nvar _GSCR = \"GetSubnetCidrReservations\";\nvar _GSGFV = \"GetSecurityGroupsForVpc\";\nvar _GSPS = \"GetSpotPlacementScores\";\nvar _GTGAP = \"GetTransitGatewayAttachmentPropagations\";\nvar _GTGMDA = \"GetTransitGatewayMulticastDomainAssociations\";\nvar _GTGPLR = \"GetTransitGatewayPrefixListReferences\";\nvar _GTGPTA = \"GetTransitGatewayPolicyTableAssociations\";\nvar _GTGPTE = \"GetTransitGatewayPolicyTableEntries\";\nvar _GTGRTA = \"GetTransitGatewayRouteTableAssociations\";\nvar _GTGRTP = \"GetTransitGatewayRouteTablePropagations\";\nvar _GVAEP = \"GetVerifiedAccessEndpointPolicy\";\nvar _GVAET = \"GetVerifiedAccessEndpointTargets\";\nvar _GVAGP = \"GetVerifiedAccessGroupPolicy\";\nvar _GVCDSC = \"GetVpnConnectionDeviceSampleConfiguration\";\nvar _GVCDT = \"GetVpnConnectionDeviceTypes\";\nvar _GVTRS = \"GetVpnTunnelReplacementStatus\";\nvar _Gp = \"Gpus\";\nvar _Gr = \"Group\";\nvar _H = \"Hypervisor\";\nvar _HCP = \"HiveCompatiblePartitions\";\nvar _HE = \"HttpEndpoint\";\nvar _HI = \"HostIds\";\nvar _HIS = \"HostIdSet\";\nvar _HIo = \"HostId\";\nvar _HM = \"HostMaintenance\";\nvar _HO = \"HibernationOptions\";\nvar _HP = \"HostProperties\";\nvar _HPI = \"HttpProtocolIpv6\";\nvar _HPRHL = \"HttpPutResponseHopLimit\";\nvar _HPo = \"HourlyPrice\";\nvar _HR = \"HostRecovery\";\nvar _HRGA = \"HostResourceGroupArn\";\nvar _HRI = \"HostReservationId\";\nvar _HRIS = \"HostReservationIdSet\";\nvar _HRS = \"HostReservationSet\";\nvar _HRi = \"HistoryRecords\";\nvar _HS = \"HibernationSupported\";\nvar _HT = \"HttpTokens\";\nvar _HTo = \"HostnameType\";\nvar _HZI = \"HostedZoneId\";\nvar _Hi = \"Hibernate\";\nvar _Ho = \"Hosts\";\nvar _I = \"Issuer\";\nvar _IA = \"Ipv6Addresses\";\nvar _IAA = \"Ipv6AddressAttribute\";\nvar _IAC = \"Ipv6AddressCount\";\nvar _IAI = \"IncludeAllInstances\";\nvar _IAIn = \"InferenceAcceleratorInfo\";\nvar _IAPI = \"Ipv4AddressesPerInterface\";\nvar _IAPIp = \"Ipv6AddressesPerInterface\";\nvar _IAT = \"IpAddressType\";\nvar _IATOI = \"IncludeAllTagsOfInstance\";\nvar _IAm = \"ImageAllowed\";\nvar _IAn = \"InterfaceAssociation\";\nvar _IAnt = \"InterfaceAssociations\";\nvar _IAp = \"IpAddress\";\nvar _IApa = \"IpamArn\";\nvar _IApv = \"Ipv6Address\";\nvar _IB = \"IngressBytes\";\nvar _IBPAS = \"ImageBlockPublicAccessState\";\nvar _IC = \"InstanceCount\";\nvar _ICA = \"Ipv6CidrAssociations\";\nvar _ICB = \"Ipv6CidrBlock\";\nvar _ICBA = \"Ipv6CidrBlockAssociation\";\nvar _ICBAS = \"Ipv6CidrBlockAssociationSet\";\nvar _ICBNBG = \"Ipv6CidrBlockNetworkBorderGroup\";\nvar _ICBS = \"Ipv6CidrBlockState\";\nvar _ICBSp = \"Ipv6CidrBlockSet\";\nvar _ICBn = \"InsideCidrBlocks\";\nvar _ICE = \"InstanceConnectEndpoint\";\nvar _ICEA = \"InstanceConnectEndpointArn\";\nvar _ICEI = \"InstanceConnectEndpointId\";\nvar _ICEIn = \"InstanceConnectEndpointIds\";\nvar _ICEn = \"InstanceConnectEndpoints\";\nvar _ICS = \"InstanceCreditSpecifications\";\nvar _ICVCCRL = \"ImportClientVpnClientCertificateRevocationList\";\nvar _ICm = \"ImageCriteria\";\nvar _ICn = \"InstanceCounts\";\nvar _ICp = \"Ipv6Cidr\";\nvar _ID = \"IncludeDeprecated\";\nvar _IDA = \"IpamDiscoveredAccounts\";\nvar _IDPA = \"IpamDiscoveredPublicAddresses\";\nvar _IDRC = \"IpamDiscoveredResourceCidrs\";\nvar _IDm = \"ImageData\";\nvar _IDn = \"IncludeDisabled\";\nvar _IDs = \"IsDefault\";\nvar _IE = \"IsEgress\";\nvar _IED = \"InstanceExportDetails\";\nvar _IEI = \"InstanceEventId\";\nvar _IERVT = \"IpamExternalResourceVerificationToken\";\nvar _IERVTA = \"IpamExternalResourceVerificationTokenArn\";\nvar _IERVTI = \"IpamExternalResourceVerificationTokenId\";\nvar _IERVTIp = \"IpamExternalResourceVerificationTokenIds\";\nvar _IERVTp = \"IpamExternalResourceVerificationTokens\";\nvar _IEW = \"InstanceEventWindow\";\nvar _IEWI = \"InstanceEventWindowId\";\nvar _IEWIn = \"InstanceEventWindowIds\";\nvar _IEWS = \"InstanceEventWindowState\";\nvar _IEWn = \"InstanceEventWindows\";\nvar _IF = \"InstanceFamily\";\nvar _IFCS = \"InstanceFamilyCreditSpecification\";\nvar _IFR = \"IamFleetRole\";\nvar _IFRn = \"IngressFilterRules\";\nvar _IG = \"InstanceGenerations\";\nvar _IGBM = \"InternetGatewayBlockMode\";\nvar _IGEM = \"InternetGatewayExclusionMode\";\nvar _IGI = \"InternetGatewayId\";\nvar _IGIn = \"InternetGatewayIds\";\nvar _IGn = \"InternetGateway\";\nvar _IGnt = \"InternetGateways\";\nvar _IH = \"InstanceHealth\";\nvar _IHn = \"InboundHeader\";\nvar _II = \"ImportImage\";\nvar _IIB = \"InstanceInterruptionBehavior\";\nvar _IIM = \"InstanceImageMetadata\";\nvar _IIP = \"IamInstanceProfile\";\nvar _IIPA = \"IamInstanceProfileAssociation\";\nvar _IIPAa = \"IamInstanceProfileAssociations\";\nvar _IIPI = \"Ipv6IpamPoolId\";\nvar _IIPIp = \"Ipv4IpamPoolId\";\nvar _IIS = \"InstanceIdSet\";\nvar _IISB = \"InstanceInitiatedShutdownBehavior\";\nvar _IIT = \"ImportImageTasks\";\nvar _IIm = \"ImportInstance\";\nvar _IIma = \"ImageId\";\nvar _IImag = \"ImageIds\";\nvar _IIn = \"InstanceId\";\nvar _IIns = \"InstanceIds\";\nvar _IIp = \"IpamId\";\nvar _IIpa = \"IpamIds\";\nvar _IKEV = \"InternetKeyExchangeVersion\";\nvar _IKEVe = \"IKEVersions\";\nvar _IKP = \"ImportKeyPair\";\nvar _IL = \"ImageLocation\";\nvar _ILn = \"InstanceLifecycle\";\nvar _IM = \"IncludeMarketplace\";\nvar _IMC = \"InstanceMatchCriteria\";\nvar _IMO = \"InstanceMarketOptions\";\nvar _IMOn = \"InstanceMetadataOptions\";\nvar _IMT = \"InstanceMetadataTags\";\nvar _IMU = \"ImportManifestUrl\";\nvar _IMm = \"ImageMetadata\";\nvar _IMn = \"InstanceMonitorings\";\nvar _IN = \"Ipv6Native\";\nvar _INL = \"Ipv6NetmaskLength\";\nvar _INLp = \"Ipv4NetmaskLength\";\nvar _IOA = \"ImageOwnerAlias\";\nvar _IOI = \"IpOwnerId\";\nvar _IOIn = \"InstanceOwnerId\";\nvar _IOS = \"InstanceOwningService\";\nvar _IP = \"Ipv6Prefixes\";\nvar _IPA = \"IpamPoolAllocation\";\nvar _IPAI = \"IpamPoolAllocationId\";\nvar _IPAp = \"IpamPoolAllocations\";\nvar _IPApa = \"IpamPoolArn\";\nvar _IPC = \"Ipv6PrefixCount\";\nvar _IPCI = \"IpamPoolCidrId\";\nvar _IPCp = \"Ipv4PrefixCount\";\nvar _IPCpa = \"IpamPoolCidr\";\nvar _IPCpam = \"IpamPoolCidrs\";\nvar _IPE = \"IpPermissionsEgress\";\nvar _IPI = \"IpamPoolId\";\nvar _IPIp = \"IpamPoolIds\";\nvar _IPIs = \"IsPrimaryIpv6\";\nvar _IPK = \"IncludePublicKey\";\nvar _IPO = \"IpamPoolOwner\";\nvar _IPR = \"IsPermanentRestore\";\nvar _IPTUC = \"InstancePoolsToUseCount\";\nvar _IPm = \"ImageProviders\";\nvar _IPn = \"InstancePlatform\";\nvar _IPng = \"IngressPackets\";\nvar _IPns = \"InstancePort\";\nvar _IPnt = \"InterfacePermission\";\nvar _IPnte = \"InterfaceProtocol\";\nvar _IPo = \"IoPerformance\";\nvar _IPp = \"Ipv4Prefixes\";\nvar _IPpa = \"IpamPool\";\nvar _IPpam = \"IpamPools\";\nvar _IPpe = \"IpPermissions\";\nvar _IPpr = \"IpProtocol\";\nvar _IPpre = \"IpPrefixes\";\nvar _IPpv = \"Ipv6Pool\";\nvar _IPpvo = \"Ipv6Pools\";\nvar _IPpvr = \"Ipv4Prefix\";\nvar _IPpvre = \"Ipv6Prefix\";\nvar _IPs = \"IsPublic\";\nvar _IPsr = \"IsPrimary\";\nvar _IR = \"InstanceRequirements\";\nvar _IRC = \"IpamResourceCidrs\";\nvar _IRCp = \"IpamResourceCidr\";\nvar _IRD = \"IpamResourceDiscovery\";\nvar _IRDA = \"IpamResourceDiscoveryAssociation\";\nvar _IRDAA = \"IpamResourceDiscoveryAssociationArn\";\nvar _IRDAI = \"IpamResourceDiscoveryAssociationIds\";\nvar _IRDAIp = \"IpamResourceDiscoveryAssociationId\";\nvar _IRDAp = \"IpamResourceDiscoveryAssociations\";\nvar _IRDApa = \"IpamResourceDiscoveryArn\";\nvar _IRDI = \"IpamResourceDiscoveryId\";\nvar _IRDIp = \"IpamResourceDiscoveryIds\";\nvar _IRDR = \"IpamResourceDiscoveryRegion\";\nvar _IRDp = \"IpamResourceDiscoveries\";\nvar _IRSDA = \"IntegrationResultS3DestinationArn\";\nvar _IRT = \"IngressRouteTable\";\nvar _IRWM = \"InstanceRequirementsWithMetadata\";\nvar _IRp = \"IpRanges\";\nvar _IRpa = \"IpamRegion\";\nvar _IRpv = \"Ipv6Ranges\";\nvar _IS = \"ImportSnapshot\";\nvar _ISA = \"IpamScopeArn\";\nvar _ISI = \"IpamScopeId\";\nvar _ISIn = \"InstanceStorageInfo\";\nvar _ISIp = \"IpamScopeIds\";\nvar _ISL = \"InputStorageLocation\";\nvar _ISS = \"InstanceStorageSupported\";\nvar _IST = \"ImportSnapshotTasks\";\nvar _ISTp = \"IpamScopeType\";\nvar _ISg = \"Igmpv2Support\";\nvar _ISm = \"ImdsSupport\";\nvar _ISmp = \"ImpairedSince\";\nvar _ISn = \"InstanceSpecification\";\nvar _ISns = \"InstanceStatuses\";\nvar _ISnst = \"InstanceState\";\nvar _ISnsta = \"InstanceStatus\";\nvar _ISnt = \"IntegrateServices\";\nvar _ISp = \"Ipv6Support\";\nvar _ISpa = \"IpamScope\";\nvar _ISpam = \"IpamScopes\";\nvar _ISpo = \"IpSource\";\nvar _ISpv = \"Ipv6Supported\";\nvar _IT = \"InstanceType\";\nvar _ITA = \"InstanceTagAttribute\";\nvar _ITC = \"IcmpTypeCode\";\nvar _ITCn = \"IncludeTrustContext\";\nvar _ITI = \"ImportTaskId\";\nvar _ITIm = \"ImportTaskIds\";\nvar _ITK = \"InstanceTagKeys\";\nvar _ITO = \"InstanceTypeOfferings\";\nvar _ITS = \"InstanceTypeSpecifications\";\nvar _ITm = \"ImageType\";\nvar _ITn = \"InterfaceType\";\nvar _ITns = \"InstanceTenancy\";\nvar _ITnst = \"InstanceTypes\";\nvar _ITnsta = \"InstanceTags\";\nvar _IU = \"InstanceUsages\";\nvar _IUp = \"IpUsage\";\nvar _IV = \"ImportVolume\";\nvar _IVE = \"IsValidExchange\";\nvar _IVk = \"IkeVersions\";\nvar _Id = \"Id\";\nvar _Im = \"Image\";\nvar _Ima = \"Images\";\nvar _In = \"Instances\";\nvar _Ins = \"Instance\";\nvar _Int = \"Interval\";\nvar _Io = \"Iops\";\nvar _Ip = \"Ipv4\";\nvar _Ipa = \"Ipam\";\nvar _Ipam = \"Ipams\";\nvar _Ipv = \"Ipv6\";\nvar _K = \"Kernel\";\nvar _KDF = \"KinesisDataFirehose\";\nvar _KF = \"KeyFormat\";\nvar _KFe = \"KeyFingerprint\";\nvar _KI = \"KernelId\";\nvar _KKA = \"KmsKeyArn\";\nvar _KKI = \"KmsKeyId\";\nvar _KM = \"KeyMaterial\";\nvar _KN = \"KeyName\";\nvar _KNe = \"KeyNames\";\nvar _KP = \"KeyPairs\";\nvar _KPI = \"KeyPairId\";\nvar _KPIe = \"KeyPairIds\";\nvar _KT = \"KeyType\";\nvar _KV = \"KeyValue\";\nvar _Ke = \"Key\";\nvar _Key = \"Keyword\";\nvar _L = \"Locale\";\nvar _LA = \"LocalAddress\";\nvar _LADT = \"LastAttemptedDiscoveryTime\";\nvar _LAZ = \"LaunchedAvailabilityZone\";\nvar _LAa = \"LastAddress\";\nvar _LB = \"LoadBalancers\";\nvar _LBA = \"LocalBgpAsn\";\nvar _LBAE = \"LocalBgpAsnExtended\";\nvar _LBAo = \"LoadBalancerArn\";\nvar _LBC = \"LoadBalancersConfig\";\nvar _LBLP = \"LoadBalancerListenerPort\";\nvar _LBO = \"LoadBalancerOptions\";\nvar _LBP = \"LoadBalancerPort\";\nvar _LBT = \"LoadBalancerTarget\";\nvar _LBTG = \"LoadBalancerTargetGroup\";\nvar _LBTGo = \"LoadBalancerTargetGroups\";\nvar _LBTP = \"LoadBalancerTargetPort\";\nvar _LC = \"LoggingConfigurations\";\nvar _LCA = \"LicenseConfigurationArn\";\nvar _LCO = \"LockCreatedOn\";\nvar _LCo = \"LoggingConfiguration\";\nvar _LD = \"LogDestination\";\nvar _LDST = \"LockDurationStartTime\";\nvar _LDT = \"LogDestinationType\";\nvar _LDo = \"LockDuration\";\nvar _LE = \"LogEnabled\";\nvar _LEO = \"LockExpiresOn\";\nvar _LET = \"LastEvaluatedTime\";\nvar _LEa = \"LastError\";\nvar _LF = \"LogFormat\";\nvar _LFA = \"LambdaFunctionArn\";\nvar _LG = \"LaunchGroup\";\nvar _LGA = \"LogGroupArn\";\nvar _LGI = \"LocalGatewayId\";\nvar _LGIo = \"LocalGatewayIds\";\nvar _LGN = \"LogGroupName\";\nvar _LGRT = \"LocalGatewayRouteTable\";\nvar _LGRTA = \"LocalGatewayRouteTableArn\";\nvar _LGRTI = \"LocalGatewayRouteTableId\";\nvar _LGRTIo = \"LocalGatewayRouteTableIds\";\nvar _LGRTVA = \"LocalGatewayRouteTableVpcAssociation\";\nvar _LGRTVAI = \"LocalGatewayRouteTableVpcAssociationId\";\nvar _LGRTVAIo = \"LocalGatewayRouteTableVpcAssociationIds\";\nvar _LGRTVAo = \"LocalGatewayRouteTableVpcAssociations\";\nvar _LGRTVIGA = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _LGRTVIGAI = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociationId\";\nvar _LGRTVIGAIo = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds\";\nvar _LGRTVIGAo = \"LocalGatewayRouteTableVirtualInterfaceGroupAssociations\";\nvar _LGRTo = \"LocalGatewayRouteTables\";\nvar _LGVI = \"LocalGatewayVirtualInterface\";\nvar _LGVIA = \"LocalGatewayVirtualInterfaceArn\";\nvar _LGVIG = \"LocalGatewayVirtualInterfaceGroup\";\nvar _LGVIGA = \"LocalGatewayVirtualInterfaceGroupArn\";\nvar _LGVIGI = \"LocalGatewayVirtualInterfaceGroupId\";\nvar _LGVIGIo = \"LocalGatewayVirtualInterfaceGroupIds\";\nvar _LGVIGo = \"LocalGatewayVirtualInterfaceGroups\";\nvar _LGVII = \"LocalGatewayVirtualInterfaceId\";\nvar _LGVIIo = \"LocalGatewayVirtualInterfaceIds\";\nvar _LGVIo = \"LocalGatewayVirtualInterfaces\";\nvar _LGo = \"LogGroup\";\nvar _LGoc = \"LocalGateways\";\nvar _LIIRB = \"ListImagesInRecycleBin\";\nvar _LINC = \"LocalIpv4NetworkCidr\";\nvar _LINCo = \"LocalIpv6NetworkCidr\";\nvar _LLT = \"LastLaunchedTime\";\nvar _LM = \"LockMode\";\nvar _LMA = \"LastMaintenanceApplied\";\nvar _LO = \"LogOptions\";\nvar _LOF = \"LogOutputFormat\";\nvar _LP = \"LoadPermission\";\nvar _LPa = \"LaunchPermission\";\nvar _LPau = \"LaunchPermissions\";\nvar _LPi = \"LimitPrice\";\nvar _LPo = \"LoadPermissions\";\nvar _LS = \"LockSnapshot\";\nvar _LSC = \"LastStatusChange\";\nvar _LSDT = \"LastSuccessfulDiscoveryTime\";\nvar _LSIRB = \"ListSnapshotsInRecycleBin\";\nvar _LSL = \"LogsStorageLocation\";\nvar _LST = \"LocalStorageTypes\";\nvar _LSa = \"LaunchSpecification\";\nvar _LSau = \"LaunchSpecifications\";\nvar _LSi = \"LicenseSpecifications\";\nvar _LSo = \"LocalStorage\";\nvar _LSoc = \"LockState\";\nvar _LT = \"LocationType\";\nvar _LTAO = \"LaunchTemplateAndOverrides\";\nvar _LTC = \"LaunchTemplateConfigs\";\nvar _LTD = \"LaunchTemplateData\";\nvar _LTI = \"LaunchTemplateId\";\nvar _LTIa = \"LaunchTemplateIds\";\nvar _LTN = \"LaunchTemplateName\";\nvar _LTNa = \"LaunchTemplateNames\";\nvar _LTOS = \"LastTieringOperationStatus\";\nvar _LTOSD = \"LastTieringOperationStatusDetail\";\nvar _LTP = \"LastTieringProgress\";\nvar _LTS = \"LaunchTemplateSpecification\";\nvar _LTST = \"LastTieringStartTime\";\nvar _LTV = \"LaunchTemplateVersion\";\nvar _LTVa = \"LaunchTemplateVersions\";\nvar _LTa = \"LaunchTemplate\";\nvar _LTat = \"LatestTime\";\nvar _LTau = \"LaunchTemplates\";\nvar _LTaun = \"LaunchTime\";\nvar _LTi = \"LicenseType\";\nvar _LTo = \"LocalTarget\";\nvar _LUT = \"LastUpdateTime\";\nvar _LUTa = \"LastUpdatedTime\";\nvar _LUTas = \"LastUpdateTimestamp\";\nvar _LV = \"LogVersion\";\nvar _LVN = \"LatestVersionNumber\";\nvar _La = \"Latest\";\nvar _Li = \"Lifecycle\";\nvar _Lic = \"Licenses\";\nvar _Lo = \"Location\";\nvar _M = \"Min\";\nvar _MA = \"MutualAuthentication\";\nvar _MAA = \"ModifyAddressAttribute\";\nvar _MAAA = \"MaintenanceAutoAppliedAfter\";\nvar _MAE = \"MultiAttachEnabled\";\nvar _MAI = \"MaxAggregationInterval\";\nvar _MAIe = \"MediaAcceleratorInfo\";\nvar _MAS = \"MovingAddressStatuses\";\nvar _MATV = \"MoveAddressToVpc\";\nvar _MAZG = \"ModifyAvailabilityZoneGroup\";\nvar _MAa = \"MacAddress\";\nvar _MAe = \"MeteredAccount\";\nvar _MB = \"ManagedBy\";\nvar _MBCTI = \"MoveByoipCidrToIpam\";\nvar _MBIM = \"MaximumBandwidthInMbps\";\nvar _MC = \"MaxCount\";\nvar _MCOIOL = \"MapCustomerOwnedIpOnLaunch\";\nvar _MCR = \"ModifyCapacityReservation\";\nvar _MCRF = \"ModifyCapacityReservationFleet\";\nvar _MCRI = \"MoveCapacityReservationInstances\";\nvar _MCVE = \"ModifyClientVpnEndpoint\";\nvar _MCi = \"MinCount\";\nvar _MCis = \"MissingComponent\";\nvar _MD = \"MaxDuration\";\nvar _MDA = \"MulticastDomainAssociations\";\nvar _MDCS = \"ModifyDefaultCreditSpecification\";\nvar _MDDS = \"MaxDrainDurationSeconds\";\nvar _MDK = \"MetaDataKey\";\nvar _MDV = \"MetaDataValue\";\nvar _MDa = \"MaintenanceDetails\";\nvar _MDe = \"MetaData\";\nvar _MDi = \"MinDuration\";\nvar _ME = \"MaxEntries\";\nvar _MEDKKI = \"ModifyEbsDefaultKmsKeyId\";\nvar _MEI = \"MaximumEfaInterfaces\";\nvar _MEM = \"ManagedExceptionMessage\";\nvar _MEQC = \"MaximumEnaQueueCount\";\nvar _MEQCPI = \"MaximumEnaQueueCountPerInterface\";\nvar _MF = \"ModifyFleet\";\nvar _MFIA = \"ModifyFpgaImageAttribute\";\nvar _MFV = \"MostFrequentValue\";\nvar _MG = \"MulticastGroups\";\nvar _MGBPVC = \"MemoryGiBPerVCpu\";\nvar _MH = \"ModifyHosts\";\nvar _MHa = \"MacHosts\";\nvar _MI = \"ModifyIpam\";\nvar _MIA = \"ModifyImageAttribute\";\nvar _MIAo = \"ModifyInstanceAttribute\";\nvar _MIC = \"MaxInstanceCount\";\nvar _MICO = \"ModifyInstanceCpuOptions\";\nvar _MICRA = \"ModifyInstanceCapacityReservationAttributes\";\nvar _MICS = \"ModifyInstanceCreditSpecification\";\nvar _MIEST = \"ModifyInstanceEventStartTime\";\nvar _MIEW = \"ModifyInstanceEventWindow\";\nvar _MIF = \"ModifyIdFormat\";\nvar _MIIF = \"ModifyIdentityIdFormat\";\nvar _MIMD = \"ModifyInstanceMetadataDefaults\";\nvar _MIMO = \"ModifyInstanceMaintenanceOptions\";\nvar _MIMOo = \"ModifyInstanceMetadataOptions\";\nvar _MINPO = \"ModifyInstanceNetworkPerformanceOptions\";\nvar _MIP = \"ModifyInstancePlacement\";\nvar _MIPo = \"ModifyIpamPool\";\nvar _MIRC = \"ModifyIpamResourceCidr\";\nvar _MIRD = \"ModifyIpamResourceDiscovery\";\nvar _MIS = \"ModifyIpamScope\";\nvar _MIa = \"MaximumIops\";\nvar _MIe = \"MemoryInfo\";\nvar _MIo = \"MonitorInstances\";\nvar _MLGR = \"ModifyLocalGatewayRoute\";\nvar _MLT = \"ModifyLaunchTemplate\";\nvar _MMB = \"MemoryMiB\";\nvar _MMPL = \"ModifyManagedPrefixList\";\nvar _MNC = \"MaximumNetworkCards\";\nvar _MNI = \"MaximumNetworkInterfaces\";\nvar _MNIA = \"ModifyNetworkInterfaceAttribute\";\nvar _MO = \"MetadataOptions\";\nvar _MOSLRG = \"MemberOfServiceLinkedResourceGroup\";\nvar _MOSLSV = \"MacOSLatestSupportedVersions\";\nvar _MOa = \"MaintenanceOptions\";\nvar _MP = \"MatchPaths\";\nvar _MPDNO = \"ModifyPrivateDnsNameOptions\";\nvar _MPIOL = \"MapPublicIpOnLaunch\";\nvar _MPL = \"MaxParallelLaunches\";\nvar _MPa = \"MaxPrice\";\nvar _MPe = \"MetricPoints\";\nvar _MR = \"MaxResults\";\nvar _MRI = \"ModifyReservedInstances\";\nvar _MRS = \"ModifyRouteServer\";\nvar _MRo = \"ModificationResults\";\nvar _MRu = \"MultiRegion\";\nvar _MS = \"MaintenanceStrategies\";\nvar _MSA = \"ModifySnapshotAttribute\";\nvar _MSAo = \"ModifySubnetAttribute\";\nvar _MSDIH = \"MaxSlotDurationInHours\";\nvar _MSDIHi = \"MinSlotDurationInHours\";\nvar _MSFR = \"ModifySpotFleetRequest\";\nvar _MSGR = \"ModifySecurityGroupRules\";\nvar _MSPAPOOODP = \"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice\";\nvar _MST = \"ModifySnapshotTier\";\nvar _MSa = \"ManagementState\";\nvar _MSo = \"MoveStatus\";\nvar _MSod = \"ModificationState\";\nvar _MSu = \"MulticastSupport\";\nvar _MT = \"MarketType\";\nvar _MTC = \"MinTargetCapacity\";\nvar _MTDID = \"MaxTermDurationInDays\";\nvar _MTDIDi = \"MinTermDurationInDays\";\nvar _MTG = \"ModifyTransitGateway\";\nvar _MTGPLR = \"ModifyTransitGatewayPrefixListReference\";\nvar _MTGVA = \"ModifyTransitGatewayVpcAttachment\";\nvar _MTIMB = \"MaximumThroughputInMBps\";\nvar _MTMFNS = \"ModifyTrafficMirrorFilterNetworkServices\";\nvar _MTMFR = \"ModifyTrafficMirrorFilterRule\";\nvar _MTMS = \"ModifyTrafficMirrorSession\";\nvar _MTP = \"MaxTotalPrice\";\nvar _MTe = \"MemberType\";\nvar _MV = \"ModifyVolume\";\nvar _MVA = \"ModifyVolumeAttribute\";\nvar _MVAE = \"ModifyVerifiedAccessEndpoint\";\nvar _MVAEP = \"ModifyVerifiedAccessEndpointPolicy\";\nvar _MVAG = \"ModifyVerifiedAccessGroup\";\nvar _MVAGP = \"ModifyVerifiedAccessGroupPolicy\";\nvar _MVAI = \"ModifyVerifiedAccessInstance\";\nvar _MVAILC = \"ModifyVerifiedAccessInstanceLoggingConfiguration\";\nvar _MVATP = \"ModifyVerifiedAccessTrustProvider\";\nvar _MVAo = \"ModifyVpcAttribute\";\nvar _MVBPAE = \"ModifyVpcBlockPublicAccessExclusion\";\nvar _MVBPAO = \"ModifyVpcBlockPublicAccessOptions\";\nvar _MVC = \"ModifyVpnConnection\";\nvar _MVCO = \"ModifyVpnConnectionOptions\";\nvar _MVE = \"ModifyVpcEndpoint\";\nvar _MVECN = \"ModifyVpcEndpointConnectionNotification\";\nvar _MVESC = \"ModifyVpcEndpointServiceConfiguration\";\nvar _MVESP = \"ModifyVpcEndpointServicePermissions\";\nvar _MVESPR = \"ModifyVpcEndpointServicePayerResponsibility\";\nvar _MVEa = \"ManagesVpcEndpoints\";\nvar _MVPCO = \"ModifyVpcPeeringConnectionOptions\";\nvar _MVT = \"ModifyVpcTenancy\";\nvar _MVTC = \"ModifyVpnTunnelCertificate\";\nvar _MVTO = \"ModifyVpnTunnelOptions\";\nvar _MVa = \"MaxVersion\";\nvar _MVi = \"MinVersion\";\nvar _Ma = \"Max\";\nvar _Mai = \"Main\";\nvar _Man = \"Manufacturer\";\nvar _Mana = \"Managed\";\nvar _Mar = \"Marketplace\";\nvar _Me = \"Message\";\nvar _Med = \"Med\";\nvar _Mes = \"Messages\";\nvar _Met = \"Metric\";\nvar _Mo = \"Mode\";\nvar _Mon = \"Monitoring\";\nvar _Moni = \"Monitored\";\nvar _N = \"Name\";\nvar _NA = \"NetworkAcl\";\nvar _NAAI = \"NetworkAclAssociationId\";\nvar _NAI = \"NetworkAclId\";\nvar _NAIe = \"NetworkAclIds\";\nvar _NAIew = \"NewAssociationId\";\nvar _NAOO = \"NativeApplicationOidcOptions\";\nvar _NAe = \"NetworkAcls\";\nvar _NAo = \"NotAfter\";\nvar _NB = \"NotBefore\";\nvar _NBD = \"NotBeforeDeadline\";\nvar _NBG = \"NetworkBorderGroup\";\nvar _NBGe = \"NetworkBandwidthGbps\";\nvar _NC = \"NetworkCards\";\nvar _NCI = \"NetworkCardIndex\";\nvar _ND = \"NoDevice\";\nvar _NDe = \"NeuronDevices\";\nvar _NES = \"NitroEnclavesSupport\";\nvar _NG = \"NatGateway\";\nvar _NGA = \"NatGatewayAddresses\";\nvar _NGI = \"NatGatewayId\";\nvar _NGIa = \"NatGatewayIds\";\nvar _NGa = \"NatGateways\";\nvar _NHI = \"NextHopIp\";\nvar _NI = \"NetworkInterfaces\";\nvar _NIA = \"NetworkInsightsAnalyses\";\nvar _NIAA = \"NetworkInsightsAnalysisArn\";\nvar _NIAI = \"NetworkInsightsAnalysisId\";\nvar _NIAIe = \"NetworkInsightsAnalysisIds\";\nvar _NIAS = \"NetworkInsightsAccessScope\";\nvar _NIASA = \"NetworkInsightsAccessScopeAnalyses\";\nvar _NIASAA = \"NetworkInsightsAccessScopeAnalysisArn\";\nvar _NIASAI = \"NetworkInsightsAccessScopeAnalysisId\";\nvar _NIASAIe = \"NetworkInsightsAccessScopeAnalysisIds\";\nvar _NIASAe = \"NetworkInsightsAccessScopeArn\";\nvar _NIASAet = \"NetworkInsightsAccessScopeAnalysis\";\nvar _NIASC = \"NetworkInsightsAccessScopeContent\";\nvar _NIASI = \"NetworkInsightsAccessScopeId\";\nvar _NIASIe = \"NetworkInsightsAccessScopeIds\";\nvar _NIASe = \"NetworkInsightsAccessScopes\";\nvar _NIASet = \"NetworkInterfaceAttachmentStatus\";\nvar _NIAe = \"NetworkInsightsAnalysis\";\nvar _NIC = \"NetworkInterfaceCount\";\nvar _NID = \"NetworkInterfaceDescription\";\nvar _NII = \"NetworkInterfaceId\";\nvar _NIIe = \"NetworkInterfaceIds\";\nvar _NIO = \"NetworkInterfaceOptions\";\nvar _NIOI = \"NetworkInterfaceOwnerId\";\nvar _NIP = \"NetworkInsightsPath\";\nvar _NIPA = \"NetworkInsightsPathArn\";\nvar _NIPI = \"NetworkInsightsPathId\";\nvar _NIPIe = \"NetworkInterfacePermissionId\";\nvar _NIPIet = \"NetworkInsightsPathIds\";\nvar _NIPIetw = \"NetworkInterfacePermissionIds\";\nvar _NIPe = \"NetworkInsightsPaths\";\nvar _NIPet = \"NetworkInterfacePermissions\";\nvar _NIe = \"NetworkId\";\nvar _NIet = \"NetworkInterface\";\nvar _NIetw = \"NetworkInfo\";\nvar _NIeu = \"NeuronInfo\";\nvar _NL = \"NetmaskLength\";\nvar _NLBA = \"NetworkLoadBalancerArn\";\nvar _NLBAe = \"NetworkLoadBalancerArns\";\nvar _NN = \"NetworkNodes\";\nvar _NOA = \"NumberOfAccounts\";\nvar _NOFA = \"NumberOfFailedAccounts\";\nvar _NOMA = \"NumberOfMatchedAccounts\";\nvar _NOUA = \"NumberOfUnmatchedAccounts\";\nvar _NP = \"NetworkPerformance\";\nvar _NPF = \"NetworkPathFound\";\nvar _NPO = \"NetworkPerformanceOptions\";\nvar _NPe = \"NetworkPlatform\";\nvar _NR = \"NoReboot\";\nvar _NS = \"NvmeSupport\";\nvar _NSST = \"NextSlotStartTime\";\nvar _NSe = \"NetworkServices\";\nvar _NT = \"NextToken\";\nvar _NTI = \"NitroTpmInfo\";\nvar _NTS = \"NitroTpmSupport\";\nvar _NTe = \"NetworkType\";\nvar _Na = \"Nameservers\";\nvar _O = \"Operator\";\nvar _OA = \"OutpostArn\";\nvar _OAr = \"OrganizationArn\";\nvar _OArg = \"OrganizationArns\";\nvar _OAw = \"OwnerAlias\";\nvar _OC = \"OfferingClass\";\nvar _OD = \"OccurrenceDays\";\nvar _ODAS = \"OnDemandAllocationStrategy\";\nvar _ODFC = \"OnDemandFulfilledCapacity\";\nvar _ODMPPOLP = \"OnDemandMaxPricePercentageOverLowestPrice\";\nvar _ODMTP = \"OnDemandMaxTotalPrice\";\nvar _ODO = \"OnDemandOptions\";\nvar _ODS = \"OccurrenceDaySet\";\nvar _ODTC = \"OnDemandTargetCapacity\";\nvar _OEP = \"OrganizationsEntityPath\";\nvar _OH = \"OutboundHeader\";\nvar _OI = \"OfferingId\";\nvar _OIA = \"OutsideIpAddress\";\nvar _OIAT = \"OutsideIpAddressType\";\nvar _OIS = \"OptInStatus\";\nvar _OIr = \"OriginalIops\";\nvar _OIu = \"OutpostId\";\nvar _OIw = \"OwnerIds\";\nvar _OIwn = \"OwnerId\";\nvar _OK = \"ObjectKey\";\nvar _OL = \"OutpostLags\";\nvar _OLI = \"OutpostLagId\";\nvar _OLIu = \"OutpostLagIds\";\nvar _OMAE = \"OriginalMultiAttachEnabled\";\nvar _OO = \"OidcOptions\";\nvar _OR = \"OperatingRegions\";\nvar _ORIWEA = \"OutputReservedInstancesWillExpireAt\";\nvar _ORTE = \"OccurrenceRelativeToEnd\";\nvar _OS = \"OfferingSet\";\nvar _OST = \"OldestSampleTime\";\nvar _OSr = \"OriginalSize\";\nvar _OSv = \"OverlapStatus\";\nvar _OT = \"OfferingType\";\nvar _OTp = \"OperationType\";\nvar _OTpt = \"OptimizingTime\";\nvar _OTr = \"OriginalThroughput\";\nvar _OU = \"OccurrenceUnit\";\nvar _OUA = \"OrganizationalUnitArn\";\nvar _OUAr = \"OrganizationalUnitArns\";\nvar _OUE = \"OrganizationalUnitExclusions\";\nvar _OUI = \"OrganizationalUnitId\";\nvar _OVC = \"OpenVpnConfigurations\";\nvar _OVT = \"OriginalVolumeType\";\nvar _Op = \"Options\";\nvar _Or = \"Origin\";\nvar _Ou = \"Output\";\nvar _Ov = \"Overrides\";\nvar _Ow = \"Owners\";\nvar _Own = \"Owner\";\nvar _P = \"Protocol\";\nvar _PA = \"PubliclyAdvertisable\";\nvar _PAI = \"PeerAccountId\";\nvar _PAIe = \"PeeringAttachmentId\";\nvar _PAR = \"PoolAddressRange\";\nvar _PARo = \"PoolAddressRanges\";\nvar _PAe = \"PeerAddress\";\nvar _PAee = \"PeerAsn\";\nvar _PAo = \"PoolArn\";\nvar _PAr = \"PrincipalArn\";\nvar _PB = \"ProvisionedBandwidth\";\nvar _PBA = \"PeerBgpAsn\";\nvar _PBAE = \"PeerBgpAsnExtended\";\nvar _PBC = \"ProvisionByoipCidr\";\nvar _PBIG = \"PeakBandwidthInGbps\";\nvar _PC = \"ProductCode\";\nvar _PCB = \"PurchaseCapacityBlock\";\nvar _PCBE = \"PurchaseCapacityBlockExtension\";\nvar _PCBo = \"PoolCidrBlocks\";\nvar _PCI = \"PreserveClientIp\";\nvar _PCIr = \"ProductCodeId\";\nvar _PCNI = \"PeerCoreNetworkId\";\nvar _PCS = \"PostureComplianceStatuses\";\nvar _PCT = \"ProductCodeType\";\nvar _PCa = \"PartitionCount\";\nvar _PCo = \"PoolCidrs\";\nvar _PCoo = \"PoolCount\";\nvar _PCr = \"ProductCodes\";\nvar _PD = \"PolicyDocument\";\nvar _PDE = \"PrivateDnsEnabled\";\nvar _PDEr = \"PrivateDnsEntry\";\nvar _PDHGN = \"Phase1DHGroupNumbers\";\nvar _PDHGNh = \"Phase2DHGroupNumbers\";\nvar _PDHT = \"PrivateDnsHostnameType\";\nvar _PDHTOL = \"PrivateDnsHostnameTypeOnLaunch\";\nvar _PDN = \"PrivateDnsName\";\nvar _PDNC = \"PrivateDnsNameConfiguration\";\nvar _PDNO = \"PrivateDnsNameOptions\";\nvar _PDNOOL = \"PrivateDnsNameOptionsOnLaunch\";\nvar _PDNVS = \"PrivateDnsNameVerificationState\";\nvar _PDNr = \"PrivateDnsNames\";\nvar _PDNu = \"PublicDnsName\";\nvar _PDOFIRE = \"PrivateDnsOnlyForInboundResolverEndpoint\";\nvar _PDRTI = \"PropagationDefaultRouteTableId\";\nvar _PDSI = \"PublicDefaultScopeId\";\nvar _PDSIr = \"PrivateDefaultScopeId\";\nvar _PDa = \"PasswordData\";\nvar _PDay = \"PaymentDue\";\nvar _PDl = \"PlatformDetails\";\nvar _PDo = \"PoolDepth\";\nvar _PDr = \"ProductDescription\";\nvar _PDri = \"PricingDetails\";\nvar _PDro = \"ProductDescriptions\";\nvar _PE = \"PolicyEnabled\";\nvar _PEA = \"Phase1EncryptionAlgorithms\";\nvar _PEAh = \"Phase2EncryptionAlgorithms\";\nvar _PED = \"PartitionEndDate\";\nvar _PEk = \"PkceEnabled\";\nvar _PF = \"PacketField\";\nvar _PFS = \"PreviousFleetState\";\nvar _PG = \"PlacementGroup\";\nvar _PGA = \"PlacementGroupArn\";\nvar _PGI = \"PlacementGroupInfo\";\nvar _PGl = \"PlacementGroups\";\nvar _PHP = \"PerHourPartition\";\nvar _PHR = \"PurchaseHostReservation\";\nvar _PHS = \"PacketHeaderStatement\";\nvar _PI = \"PublicIp\";\nvar _PIA = \"PrivateIpAddresses\";\nvar _PIAC = \"PrivateIpAddressCount\";\nvar _PIACr = \"PrivateIpAddressConfigs\";\nvar _PIAh = \"Phase1IntegrityAlgorithms\";\nvar _PIAha = \"Phase2IntegrityAlgorithms\";\nvar _PIAr = \"PrivateIpAddress\";\nvar _PIAu = \"PublicIpAddress\";\nvar _PIB = \"ProvisionIpamByoasn\";\nvar _PIP = \"PublicIpv4Pool\";\nvar _PIPC = \"ProvisionIpamPoolCidr\";\nvar _PIPI = \"PublicIpv4PoolId\";\nvar _PIPu = \"PublicIpv4Pools\";\nvar _PIS = \"PublicIpSource\";\nvar _PIc = \"PciId\";\nvar _PIo = \"PoolId\";\nvar _PIoo = \"PoolIds\";\nvar _PIr = \"PrimaryIpv6\";\nvar _PIri = \"PrivateIp\";\nvar _PIro = \"ProcessorInfo\";\nvar _PIu = \"PublicIps\";\nvar _PK = \"PublicKey\";\nvar _PKM = \"PublicKeyMaterial\";\nvar _PL = \"PacketLength\";\nvar _PLA = \"PrefixListAssociations\";\nvar _PLAr = \"PrefixListArn\";\nvar _PLD = \"PeerLivenessDetection\";\nvar _PLF = \"PartitionLoadFrequency\";\nvar _PLI = \"PrefixListId\";\nvar _PLIr = \"PrefixListIds\";\nvar _PLN = \"PrefixListName\";\nvar _PLOI = \"PrefixListOwnerId\";\nvar _PLS = \"Phase1LifetimeSeconds\";\nvar _PLSh = \"Phase2LifetimeSeconds\";\nvar _PLr = \"PrefixList\";\nvar _PLre = \"PrefixLists\";\nvar _PM = \"PendingMaintenance\";\nvar _PN = \"PartitionNumber\";\nvar _PNC = \"PreviewNextCidr\";\nvar _PO = \"PaymentOption\";\nvar _POI = \"PeerOwnerId\";\nvar _POe = \"PeeringOptions\";\nvar _PP = \"ProgressPercentage\";\nvar _PPIPC = \"ProvisionPublicIpv4PoolCidr\";\nvar _PR = \"PortRange\";\nvar _PRD = \"PersistRoutesDuration\";\nvar _PRIO = \"PurchaseReservedInstancesOffering\";\nvar _PRN = \"PolicyReferenceName\";\nvar _PRNo = \"PolicyRuleNumber\";\nvar _PRS = \"PersistRoutesState\";\nvar _PRU = \"PtrRecordUpdate\";\nvar _PRa = \"PayerResponsibility\";\nvar _PRe = \"PersistRoutes\";\nvar _PRee = \"PeerRegion\";\nvar _PRer = \"PermanentRestore\";\nvar _PRo = \"PortRanges\";\nvar _PRol = \"PolicyRule\";\nvar _PRt = \"PtrRecord\";\nvar _PRu = \"PurchaseRequests\";\nvar _PS = \"PriceSchedules\";\nvar _PSD = \"PartitionStartDate\";\nvar _PSET = \"PreviousSlotEndTime\";\nvar _PSFRS = \"PreviousSpotFleetRequestState\";\nvar _PSI = \"PurchaseScheduledInstances\";\nvar _PSK = \"PreSharedKey\";\nvar _PSKE = \"PublicSigningKeyEndpoint\";\nvar _PSKU = \"PublicSigningKeyUrl\";\nvar _PSe = \"PeeringStatus\";\nvar _PSer = \"PermissionState\";\nvar _PSh = \"PhcSupport\";\nvar _PSr = \"PreviousState\";\nvar _PSre = \"PreviousStatus\";\nvar _PT = \"PurchaseToken\";\nvar _PTGI = \"PeerTransitGatewayId\";\nvar _PTS = \"PoolTagSpecifications\";\nvar _PTr = \"PrincipalType\";\nvar _PTro = \"ProvisionTime\";\nvar _PTu = \"PurchaseTime\";\nvar _PU = \"PresignedUrl\";\nvar _PV = \"PreviousVersion\";\nvar _PVI = \"PeerVpcId\";\nvar _PVIr = \"PrimaryVpcId\";\nvar _PVr = \"PropagatingVgws\";\nvar _PZI = \"ParentZoneId\";\nvar _PZN = \"ParentZoneName\";\nvar _Pe = \"Permission\";\nvar _Per = \"Period\";\nvar _Pl = \"Placement\";\nvar _Pla = \"Platform\";\nvar _Po = \"Port\";\nvar _Pr = \"Prefix\";\nvar _Pri = \"Priority\";\nvar _Pric = \"Price\";\nvar _Prim = \"Primary\";\nvar _Prin = \"Principal\";\nvar _Princ = \"Principals\";\nvar _Pro = \"Protocols\";\nvar _Prog = \"Progress\";\nvar _Prop = \"Propagation\";\nvar _Prov = \"Provisioned\";\nvar _Pu = \"Public\";\nvar _Pur = \"Purchase\";\nvar _Q = \"Quantity\";\nvar _R = \"References\";\nvar _RA = \"ReleaseAddress\";\nvar _RAA = \"ResetAddressAttribute\";\nvar _RAE = \"RemoteAccessEnabled\";\nvar _RAG = \"RevokeAllGroups\";\nvar _RAP = \"RemoveAllowedPrincipals\";\nvar _RART = \"RemoveAllocationResourceTags\";\nvar _RATC = \"RestoreAddressToClassic\";\nvar _RAe = \"ResolveAlias\";\nvar _RAes = \"ResourceArn\";\nvar _RAo = \"RoleArn\";\nvar _RAu = \"RuleAction\";\nvar _RB = \"RequestedBy\";\nvar _RBET = \"RecycleBinEnterTime\";\nvar _RBETe = \"RecycleBinExitTime\";\nvar _RBUI = \"RestorableByUserIds\";\nvar _RC = \"ResourceCidr\";\nvar _RCA = \"ResourceConfigurationArn\";\nvar _RCGA = \"ResourceConfigurationGroupArn\";\nvar _RCRBO = \"RejectCapacityReservationBillingOwnership\";\nvar _RCS = \"ResourceComplianceStatus\";\nvar _RCVI = \"RevokeClientVpnIngress\";\nvar _RCe = \"ReasonCodes\";\nvar _RCec = \"RecurringCharges\";\nvar _RCet = \"ReturnCode\";\nvar _RD = \"RestoreDuration\";\nvar _RDAC = \"ResourceDiscoveryAssociationCount\";\nvar _RDCA = \"RdsDbClusterArn\";\nvar _RDI = \"RamDiskId\";\nvar _RDIA = \"RdsDbInstanceArn\";\nvar _RDN = \"RootDeviceName\";\nvar _RDPA = \"RdsDbProxyArn\";\nvar _RDS = \"ResourceDiscoveryStatus\";\nvar _RDT = \"RootDeviceType\";\nvar _RE = \"RdsEndpoint\";\nvar _RED = \"RemoveEndDate\";\nvar _REDKKI = \"ResetEbsDefaultKmsKeyId\";\nvar _RET = \"RestoreExpiryTime\";\nvar _REe = \"RemoveEntries\";\nvar _REes = \"ResponseError\";\nvar _REeso = \"ResourceExclusions\";\nvar _RF = \"RemoveFields\";\nvar _RFIA = \"ResetFpgaImageAttribute\";\nvar _RFP = \"RekeyFuzzPercentage\";\nvar _RGA = \"RuleGroupArn\";\nvar _RGI = \"ReferencedGroupId\";\nvar _RGIe = \"ReferencedGroupInfo\";\nvar _RGLBA = \"RemoveGatewayLoadBalancerArns\";\nvar _RGROP = \"RuleGroupRuleOptionsPairs\";\nvar _RGT = \"RuleGroupType\";\nvar _RGTP = \"RuleGroupTypePairs\";\nvar _RH = \"ReleaseHosts\";\nvar _RHS = \"RequireHibernateSupport\";\nvar _RI = \"RebootInstances\";\nvar _RIA = \"ResetImageAttribute\";\nvar _RIAe = \"ResetInstanceAttribute\";\nvar _RICIAIS = \"ReplaceImageCriteriaInAllowedImagesSettings\";\nvar _RID = \"RouteInstallationDetails\";\nvar _RIENA = \"RegisterInstanceEventNotificationAttributes\";\nvar _RIFRB = \"RestoreImageFromRecycleBin\";\nvar _RII = \"ReservedInstanceIds\";\nvar _RIIPA = \"ReplaceIamInstanceProfileAssociation\";\nvar _RIIe = \"ReservedInstancesId\";\nvar _RIIes = \"ReservedInstancesIds\";\nvar _RIIese = \"ReservedInstanceId\";\nvar _RIL = \"ReservedInstancesListings\";\nvar _RILI = \"ReservedInstancesListingId\";\nvar _RIM = \"ReservedInstancesModifications\";\nvar _RIMI = \"ReservedInstancesModificationIds\";\nvar _RIMIe = \"ReservedInstancesModificationId\";\nvar _RINC = \"RemoteIpv4NetworkCidr\";\nvar _RINCe = \"RemoteIpv6NetworkCidr\";\nvar _RIO = \"ReservedInstancesOfferings\";\nvar _RIOI = \"ReservedInstancesOfferingIds\";\nvar _RIOIe = \"ReservedInstancesOfferingId\";\nvar _RIPA = \"ReleaseIpamPoolAllocation\";\nvar _RIS = \"ReportInstanceStatus\";\nvar _RISR = \"RouteInstallationStatusReason\";\nvar _RISo = \"RouteInstallationStatus\";\nvar _RIVR = \"ReservedInstanceValueRollup\";\nvar _RIVS = \"ReservedInstanceValueSet\";\nvar _RIa = \"RamdiskId\";\nvar _RIe = \"RegisterImage\";\nvar _RIep = \"ReportId\";\nvar _RIepo = \"ReportIds\";\nvar _RIeq = \"RequesterId\";\nvar _RIes = \"ResourceIds\";\nvar _RIese = \"ReservedInstances\";\nvar _RIeser = \"ReservationId\";\nvar _RIeso = \"ResourceId\";\nvar _RIu = \"RunInstances\";\nvar _RM = \"ReasonMessage\";\nvar _RMGM = \"RegisteredMulticastGroupMembers\";\nvar _RMGS = \"RegisteredMulticastGroupSources\";\nvar _RMPLV = \"RestoreManagedPrefixListVersion\";\nvar _RMTS = \"RekeyMarginTimeSeconds\";\nvar _RMe = \"RequesterManaged\";\nvar _RN = \"RegionName\";\nvar _RNAA = \"ReplaceNetworkAclAssociation\";\nvar _RNAE = \"ReplaceNetworkAclEntry\";\nvar _RNIA = \"ResetNetworkInterfaceAttribute\";\nvar _RNII = \"RegisteredNetworkInterfaceIds\";\nvar _RNLBA = \"RemoveNetworkLoadBalancerArns\";\nvar _RNS = \"RemoveNetworkServices\";\nvar _RNe = \"RegionNames\";\nvar _RNes = \"ResourceName\";\nvar _RNo = \"RoleName\";\nvar _RNu = \"RuleNumber\";\nvar _RO = \"RdsOptions\";\nvar _ROI = \"ResourceOwnerId\";\nvar _ROR = \"RemoveOperatingRegions\";\nvar _ROS = \"ResourceOverlapStatus\";\nvar _ROUE = \"RemoveOrganizationalUnitExclusions\";\nvar _ROe = \"ResourceOwner\";\nvar _ROo = \"RouteOrigin\";\nvar _ROu = \"RuleOptions\";\nvar _RP = \"ResetPolicy\";\nvar _RPC = \"ReturnPathComponents\";\nvar _RPCO = \"RequesterPeeringConnectionOptions\";\nvar _RPDN = \"RemovePrivateDnsName\";\nvar _RR = \"ReplaceRoute\";\nvar _RRTA = \"ReplaceRouteTableAssociation\";\nvar _RRTI = \"RemoveRouteTableIds\";\nvar _RRVT = \"ReplaceRootVolumeTask\";\nvar _RRVTI = \"ReplaceRootVolumeTaskIds\";\nvar _RRVTIe = \"ReplaceRootVolumeTaskId\";\nvar _RRVTe = \"ReplaceRootVolumeTasks\";\nvar _RRe = \"ResourceRegion\";\nvar _RS = \"ReplacementStrategy\";\nvar _RSA = \"ResetSnapshotAttribute\";\nvar _RSAo = \"RouteServerAssociation\";\nvar _RSAou = \"RouteServerAssociations\";\nvar _RSE = \"RouteServerEndpoint\";\nvar _RSEI = \"RouteServerEndpointId\";\nvar _RSEIo = \"RouteServerEndpointIds\";\nvar _RSEo = \"RouteServerEndpoints\";\nvar _RSF = \"RequestSpotFleet\";\nvar _RSFRB = \"RestoreSnapshotFromRecycleBin\";\nvar _RSGE = \"RevokeSecurityGroupEgress\";\nvar _RSGI = \"RevokeSecurityGroupIngress\";\nvar _RSGIe = \"RemoveSecurityGroupIds\";\nvar _RSGR = \"RevokedSecurityGroupRules\";\nvar _RSI = \"RequestSpotInstances\";\nvar _RSIAT = \"RemoveSupportedIpAddressTypes\";\nvar _RSIe = \"RemoveSubnetIds\";\nvar _RSIo = \"RouteServerId\";\nvar _RSIou = \"RouteServerIds\";\nvar _RSIu = \"RunScheduledInstances\";\nvar _RSP = \"RouteServerPeer\";\nvar _RSPI = \"RouteServerPeerId\";\nvar _RSPIo = \"RouteServerPeerIds\";\nvar _RSPo = \"RouteServerPeers\";\nvar _RSPou = \"RouteServerPropagation\";\nvar _RSPout = \"RouteServerPropagations\";\nvar _RSR = \"RemoveSupportedRegions\";\nvar _RST = \"RestoreSnapshotTier\";\nvar _RSTe = \"RestoreStartTime\";\nvar _RSe = \"ResourceStatement\";\nvar _RSeg = \"RegionalSummaries\";\nvar _RSo = \"RouteServer\";\nvar _RSou = \"RouteServers\";\nvar _RSout = \"RouteStatus\";\nvar _RT = \"ResourceType\";\nvar _RTAI = \"RouteTableAssociationId\";\nvar _RTGCB = \"RemoveTransitGatewayCidrBlocks\";\nvar _RTGMDA = \"RejectTransitGatewayMulticastDomainAssociations\";\nvar _RTGMGM = \"RegisterTransitGatewayMulticastGroupMembers\";\nvar _RTGMGS = \"RegisterTransitGatewayMulticastGroupSources\";\nvar _RTGPA = \"RejectTransitGatewayPeeringAttachment\";\nvar _RTGR = \"ReplaceTransitGatewayRoute\";\nvar _RTGVA = \"RejectTransitGatewayVpcAttachment\";\nvar _RTI = \"RouteTableId\";\nvar _RTIe = \"RequesterTgwInfo\";\nvar _RTIo = \"RouteTableIds\";\nvar _RTR = \"RouteTableRoute\";\nvar _RTV = \"RemainingTotalValue\";\nvar _RTe = \"ReservationType\";\nvar _RTel = \"ReleaseTime\";\nvar _RTeq = \"RequestTime\";\nvar _RTes = \"ResourceTag\";\nvar _RTeso = \"ResourceTypes\";\nvar _RTesou = \"ResourceTags\";\nvar _RTo = \"RouteTable\";\nvar _RTou = \"RouteTables\";\nvar _RUI = \"ReplaceUnhealthyInstances\";\nvar _RUV = \"RemainingUpfrontValue\";\nvar _RV = \"ReturnValue\";\nvar _RVEC = \"RejectVpcEndpointConnections\";\nvar _RVI = \"ReferencingVpcId\";\nvar _RVIe = \"RequesterVpcInfo\";\nvar _RVPC = \"RejectVpcPeeringConnection\";\nvar _RVT = \"ReplaceVpnTunnel\";\nvar _RVe = \"ReservationValue\";\nvar _RWS = \"ReplayWindowSize\";\nvar _Ra = \"Ramdisk\";\nvar _Re = \"Resources\";\nvar _Rea = \"Reason\";\nvar _Rec = \"Recurrence\";\nvar _Reg = \"Regions\";\nvar _Regi = \"Region\";\nvar _Rem = \"Remove\";\nvar _Rep = \"Reports\";\nvar _Req = \"Requested\";\nvar _Res = \"Resource\";\nvar _Rese = \"Reservations\";\nvar _Resu = \"Result\";\nvar _Ret = \"Return\";\nvar _Ro = \"Role\";\nvar _Rou = \"Route\";\nvar _Rout = \"Routes\";\nvar _S = \"Source\";\nvar _SA = \"StartupAction\";\nvar _SAI = \"SecondaryAllocationIds\";\nvar _SAMLPA = \"SAMLProviderArn\";\nvar _SAZ = \"SingleAvailabilityZone\";\nvar _SAo = \"SourceAddresses\";\nvar _SAou = \"SourceAddress\";\nvar _SAour = \"SourceArn\";\nvar _SAu = \"SuggestedAccounts\";\nvar _SAub = \"SubnetArn\";\nvar _SAup = \"SupportedArchitectures\";\nvar _SB = \"S3Bucket\";\nvar _SBM = \"SupportedBootModes\";\nvar _SC = \"SubnetConfigurations\";\nvar _SCA = \"ServerCertificateArn\";\nvar _SCAE = \"SerialConsoleAccessEnabled\";\nvar _SCB = \"SourceCidrBlock\";\nvar _SCCDM = \"SnapshotCopyCompletionDurationMinutes\";\nvar _SCR = \"SourceCapacityReservation\";\nvar _SCRI = \"SourceCapacityReservationId\";\nvar _SCRIu = \"SubnetCidrReservationId\";\nvar _SCRu = \"SubnetCidrReservation\";\nvar _SCSIG = \"SustainedClockSpeedInGhz\";\nvar _SCc = \"ScopeCount\";\nvar _SCe = \"ServiceConfiguration\";\nvar _SCer = \"ServiceConfigurations\";\nvar _SCn = \"SnapshotConfiguration\";\nvar _SD = \"StartDate\";\nvar _SDC = \"SourceDestCheck\";\nvar _SDI = \"SendDiagnosticInterrupt\";\nvar _SDIH = \"SlotDurationInHours\";\nvar _SDLTV = \"SuccessfullyDeletedLaunchTemplateVersions\";\nvar _SDPR = \"StartDeclarativePoliciesReport\";\nvar _SDR = \"StartDateRange\";\nvar _SDS = \"SpotDatafeedSubscription\";\nvar _SDV = \"SetDefaultVersion\";\nvar _SDe = \"ServiceDetails\";\nvar _SDn = \"SnapshotDetails\";\nvar _SDp = \"SpreadDomain\";\nvar _SDu = \"SubDomain\";\nvar _SEL = \"S3ExportLocation\";\nvar _SET = \"SampledEndTime\";\nvar _SF = \"SupportedFeatures\";\nvar _SFC = \"SuccessfulFleetCancellations\";\nvar _SFD = \"SuccessfulFleetDeletions\";\nvar _SFII = \"SourceFpgaImageId\";\nvar _SFR = \"SuccessfulFleetRequests\";\nvar _SFRC = \"SpotFleetRequestConfig\";\nvar _SFRCp = \"SpotFleetRequestConfigs\";\nvar _SFRI = \"SpotFleetRequestIds\";\nvar _SFRIp = \"SpotFleetRequestId\";\nvar _SFRS = \"SpotFleetRequestState\";\nvar _SG = \"SecurityGroups\";\nvar _SGA = \"SecurityGroupArn\";\nvar _SGFV = \"SecurityGroupForVpcs\";\nvar _SGI = \"SecurityGroupIds\";\nvar _SGIe = \"SecurityGroupId\";\nvar _SGR = \"SecurityGroupRules\";\nvar _SGRA = \"SecurityGroupRuleArn\";\nvar _SGRD = \"SecurityGroupRuleDescriptions\";\nvar _SGRI = \"SecurityGroupRuleIds\";\nvar _SGRIe = \"SecurityGroupRuleId\";\nvar _SGRS = \"SecurityGroupReferencingSupport\";\nvar _SGRSe = \"SecurityGroupReferenceSet\";\nvar _SGRe = \"SecurityGroupRule\";\nvar _SGVA = \"SecurityGroupVpcAssociations\";\nvar _SGe = \"SecurityGroup\";\nvar _SH = \"StartHour\";\nvar _SI = \"StartInstances\";\nvar _SIAS = \"ScheduledInstanceAvailabilitySet\";\nvar _SIAT = \"SupportedIpAddressTypes\";\nvar _SICR = \"SubnetIpv4CidrReservations\";\nvar _SICRu = \"SubnetIpv6CidrReservations\";\nvar _SICS = \"SuccessfulInstanceCreditSpecifications\";\nvar _SIGB = \"SizeInGB\";\nvar _SII = \"SourceImageId\";\nvar _SIIc = \"ScheduledInstanceIds\";\nvar _SIIch = \"ScheduledInstanceId\";\nvar _SIIo = \"SourceInstanceId\";\nvar _SIMB = \"SizeInMiB\";\nvar _SIP = \"StaleIpPermissions\";\nvar _SIPE = \"StaleIpPermissionsEgress\";\nvar _SIPI = \"SourceIpamPoolId\";\nvar _SIR = \"SpotInstanceRequests\";\nvar _SIRI = \"SpotInstanceRequestIds\";\nvar _SIRIp = \"SpotInstanceRequestId\";\nvar _SIRo = \"SourceImageRegion\";\nvar _SIS = \"ScheduledInstanceSet\";\nvar _SIT = \"SpotInstanceType\";\nvar _SITR = \"StoreImageTaskResults\";\nvar _SITi = \"SingleInstanceType\";\nvar _SIe = \"ServiceId\";\nvar _SIer = \"ServiceIds\";\nvar _SIn = \"SnapshotId\";\nvar _SIna = \"SnapshotIds\";\nvar _SIo = \"SourceIp\";\nvar _SIt = \"StopInstances\";\nvar _SIta = \"StartingInstances\";\nvar _SIto = \"StoppingInstances\";\nvar _SIu = \"SubnetIds\";\nvar _SIub = \"SubnetId\";\nvar _SIubs = \"SubsystemId\";\nvar _SK = \"S3Key\";\nvar _SKo = \"S3objectKey\";\nvar _SL = \"SpreadLevel\";\nvar _SLGR = \"SearchLocalGatewayRoutes\";\nvar _SLVI = \"ServiceLinkVirtualInterfaces\";\nvar _SLVIA = \"ServiceLinkVirtualInterfaceArn\";\nvar _SLVII = \"ServiceLinkVirtualInterfaceIds\";\nvar _SLVIIe = \"ServiceLinkVirtualInterfaceId\";\nvar _SLo = \"S3Location\";\nvar _SM = \"ServiceManaged\";\nvar _SMPPOLP = \"SpotMaxPricePercentageOverLowestPrice\";\nvar _SMS = \"SpotMaintenanceStrategies\";\nvar _SMTP = \"SpotMaxTotalPrice\";\nvar _SMt = \"StatusMessage\";\nvar _SMta = \"StateMessage\";\nvar _SN = \"SessionNumber\";\nvar _SNA = \"ServiceNetworkArn\";\nvar _SNE = \"SnsNotificationsEnabled\";\nvar _SNIA = \"StartNetworkInsightsAnalysis\";\nvar _SNIASA = \"StartNetworkInsightsAccessScopeAnalysis\";\nvar _SNN = \"ServiceNetworkName\";\nvar _SNS = \"SriovNetSupport\";\nvar _SNe = \"ServiceName\";\nvar _SNeq = \"SequenceNumber\";\nvar _SNer = \"ServiceNames\";\nvar _SO = \"SpotOptions\";\nvar _SOT = \"S3ObjectTags\";\nvar _SP = \"S3Prefix\";\nvar _SPA = \"SamlProviderArn\";\nvar _SPH = \"SpotPriceHistory\";\nvar _SPI = \"ServicePermissionId\";\nvar _SPIA = \"SecondaryPrivateIpAddresses\";\nvar _SPIAC = \"SecondaryPrivateIpAddressCount\";\nvar _SPL = \"SourcePrefixLists\";\nvar _SPR = \"SourcePortRange\";\nvar _SPRo = \"SourcePortRanges\";\nvar _SPS = \"SpotPlacementScores\";\nvar _SPo = \"SourcePorts\";\nvar _SPp = \"SpotPrice\";\nvar _SQPD = \"SuccessfulQueuedPurchaseDeletions\";\nvar _SR = \"SourceRegion\";\nvar _SRDT = \"SupportedRootDeviceTypes\";\nvar _SRO = \"StaticRoutesOnly\";\nvar _SRT = \"SubnetRouteTable\";\nvar _SRe = \"ServiceRegion\";\nvar _SRer = \"ServiceRegions\";\nvar _SRerv = \"ServiceResource\";\nvar _SRo = \"SourceResource\";\nvar _SRt = \"StateReason\";\nvar _SRu = \"SupportedRegions\";\nvar _SS = \"SseSpecification\";\nvar _SSGN = \"SourceSecurityGroupName\";\nvar _SSGOI = \"SourceSecurityGroupOwnerId\";\nvar _SSGS = \"StaleSecurityGroupSet\";\nvar _SSI = \"SourceSnapshotId\";\nvar _SSIo = \"SourceSnapshotIds\";\nvar _SSP = \"SelfServicePortal\";\nvar _SSPU = \"SelfServicePortalUrl\";\nvar _SSS = \"StaticSourcesSupport\";\nvar _SSSAMLPA = \"SelfServiceSAMLProviderArn\";\nvar _SSSPA = \"SelfServiceSamlProviderArn\";\nvar _SST = \"SampledStartTime\";\nvar _SSTR = \"SlotStartTimeRange\";\nvar _SSe = \"ServiceState\";\nvar _SSu = \"SupportedStrategies\";\nvar _SSy = \"SystemStatus\";\nvar _ST = \"SplitTunnel\";\nvar _STA = \"SnsTopicArn\";\nvar _STC = \"SpotTargetCapacity\";\nvar _STD = \"SnapshotTaskDetail\";\nvar _STFR = \"StoreTaskFailureReason\";\nvar _STGMG = \"SearchTransitGatewayMulticastGroups\";\nvar _STGR = \"SearchTransitGatewayRoutes\";\nvar _STH = \"SessionTimeoutHours\";\nvar _STR = \"SkipTunnelReplacement\";\nvar _STRt = \"StateTransitionReason\";\nvar _STS = \"SnapshotTierStatuses\";\nvar _STSt = \"StoreTaskState\";\nvar _STT = \"StateTransitionTime\";\nvar _STa = \"SampleTime\";\nvar _STe = \"ServiceType\";\nvar _STo = \"SourceType\";\nvar _STs = \"SseType\";\nvar _STt = \"StartTime\";\nvar _STto = \"StorageTier\";\nvar _SUC = \"SupportedUsageClasses\";\nvar _SV = \"SourceVersion\";\nvar _SVESPDV = \"StartVpcEndpointServicePrivateDnsVerification\";\nvar _SVI = \"SubsystemVendorId\";\nvar _SVT = \"SupportedVirtualizationTypes\";\nvar _SVh = \"ShellVersion\";\nvar _SVo = \"SourceVpc\";\nvar _SVu = \"SupportedVersions\";\nvar _SWD = \"StartWeekDay\";\nvar _S_ = \"S3\";\nvar _Sc = \"Scope\";\nvar _Sco = \"Score\";\nvar _Scop = \"Scopes\";\nvar _Se = \"Service\";\nvar _Set = \"Settings\";\nvar _Si = \"Signature\";\nvar _Siz = \"Size\";\nvar _Sn = \"Snapshots\";\nvar _So = \"Sources\";\nvar _Soc = \"Sockets\";\nvar _Sof = \"Software\";\nvar _St = \"Storage\";\nvar _Sta = \"Statistic\";\nvar _Star = \"Start\";\nvar _Stat = \"State\";\nvar _Statu = \"Status\";\nvar _Status = \"Statuses\";\nvar _Str = \"Strategy\";\nvar _Su = \"Subnet\";\nvar _Sub = \"Subscriptions\";\nvar _Subn = \"Subnets\";\nvar _Suc = \"Successful\";\nvar _Succ = \"Success\";\nvar _T = \"Type\";\nvar _TAAC = \"TotalAvailableAddressCount\";\nvar _TAC = \"TotalAddressCount\";\nvar _TAI = \"TransferAccountId\";\nvar _TC = \"TargetConfigurations\";\nvar _TCS = \"TargetCapacitySpecification\";\nvar _TCUT = \"TargetCapacityUnitType\";\nvar _TCVC = \"TerminateClientVpnConnections\";\nvar _TCVR = \"TargetConfigurationValueRollup\";\nvar _TCVS = \"TargetConfigurationValueSet\";\nvar _TCa = \"TargetCapacity\";\nvar _TCar = \"TargetConfiguration\";\nvar _TCo = \"TotalCapacity\";\nvar _TD = \"TrafficDirection\";\nvar _TDe = \"TerminationDelay\";\nvar _TE = \"TargetEnvironment\";\nvar _TED = \"TermEndDate\";\nvar _TET = \"TcpEstablishedTimeout\";\nvar _TEo = \"TokenEndpoint\";\nvar _TFC = \"TotalFulfilledCapacity\";\nvar _TFMIMB = \"TotalFpgaMemoryInMiB\";\nvar _TG = \"TargetGroups\";\nvar _TGA = \"TransitGatewayAddress\";\nvar _TGAI = \"TransitGatewayAttachmentId\";\nvar _TGAIr = \"TransitGatewayAttachmentIds\";\nvar _TGAP = \"TransitGatewayAttachmentPropagations\";\nvar _TGAr = \"TransitGatewayAttachments\";\nvar _TGAra = \"TransitGatewayAttachment\";\nvar _TGAran = \"TransitGatewayArn\";\nvar _TGArans = \"TransitGatewayAsn\";\nvar _TGC = \"TargetGroupsConfig\";\nvar _TGCB = \"TransitGatewayCidrBlocks\";\nvar _TGCP = \"TransitGatewayConnectPeer\";\nvar _TGCPI = \"TransitGatewayConnectPeerId\";\nvar _TGCPIr = \"TransitGatewayConnectPeerIds\";\nvar _TGCPr = \"TransitGatewayConnectPeers\";\nvar _TGCr = \"TransitGatewayConnect\";\nvar _TGCra = \"TransitGatewayConnects\";\nvar _TGI = \"TransitGatewayId\";\nvar _TGIr = \"TransitGatewayIds\";\nvar _TGMD = \"TransitGatewayMulticastDomain\";\nvar _TGMDA = \"TransitGatewayMulticastDomainArn\";\nvar _TGMDI = \"TransitGatewayMulticastDomainId\";\nvar _TGMDIr = \"TransitGatewayMulticastDomainIds\";\nvar _TGMDr = \"TransitGatewayMulticastDomains\";\nvar _TGMIMB = \"TotalGpuMemoryInMiB\";\nvar _TGOI = \"TransitGatewayOwnerId\";\nvar _TGPA = \"TransitGatewayPeeringAttachment\";\nvar _TGPAr = \"TransitGatewayPeeringAttachments\";\nvar _TGPLR = \"TransitGatewayPrefixListReference\";\nvar _TGPLRr = \"TransitGatewayPrefixListReferences\";\nvar _TGPT = \"TransitGatewayPolicyTable\";\nvar _TGPTE = \"TransitGatewayPolicyTableEntries\";\nvar _TGPTI = \"TransitGatewayPolicyTableId\";\nvar _TGPTIr = \"TransitGatewayPolicyTableIds\";\nvar _TGPTr = \"TransitGatewayPolicyTables\";\nvar _TGRT = \"TransitGatewayRouteTable\";\nvar _TGRTA = \"TransitGatewayRouteTableAnnouncement\";\nvar _TGRTAI = \"TransitGatewayRouteTableAnnouncementId\";\nvar _TGRTAIr = \"TransitGatewayRouteTableAnnouncementIds\";\nvar _TGRTAr = \"TransitGatewayRouteTableAnnouncements\";\nvar _TGRTI = \"TransitGatewayRouteTableId\";\nvar _TGRTIr = \"TransitGatewayRouteTableIds\";\nvar _TGRTP = \"TransitGatewayRouteTablePropagations\";\nvar _TGRTR = \"TransitGatewayRouteTableRoute\";\nvar _TGRTr = \"TransitGatewayRouteTables\";\nvar _TGVA = \"TransitGatewayVpcAttachment\";\nvar _TGVAr = \"TransitGatewayVpcAttachments\";\nvar _TGr = \"TransitGateway\";\nvar _TGra = \"TransitGateways\";\nvar _THP = \"TotalHourlyPrice\";\nvar _TI = \"TerminateInstances\";\nvar _TIC = \"TunnelInsideCidr\";\nvar _TICo = \"TotalInstanceCount\";\nvar _TII = \"TrunkInterfaceId\";\nvar _TIIC = \"TunnelInsideIpv6Cidr\";\nvar _TIIV = \"TunnelInsideIpVersion\";\nvar _TIMIMB = \"TotalInferenceMemoryInMiB\";\nvar _TIWE = \"TerminateInstancesWithExpiration\";\nvar _TIa = \"TargetId\";\nvar _TIar = \"TargetIops\";\nvar _TIe = \"TenantId\";\nvar _TIer = \"TerminatingInstances\";\nvar _TLSGB = \"TotalLocalStorageGB\";\nvar _TMAE = \"TargetMultiAttachEnabled\";\nvar _TMF = \"TrafficMirrorFilter\";\nvar _TMFI = \"TrafficMirrorFilterId\";\nvar _TMFIr = \"TrafficMirrorFilterIds\";\nvar _TMFR = \"TrafficMirrorFilterRule\";\nvar _TMFRI = \"TrafficMirrorFilterRuleId\";\nvar _TMFRIr = \"TrafficMirrorFilterRuleIds\";\nvar _TMFRr = \"TrafficMirrorFilterRules\";\nvar _TMFr = \"TrafficMirrorFilters\";\nvar _TMMIMB = \"TotalMediaMemoryInMiB\";\nvar _TMS = \"TrafficMirrorSession\";\nvar _TMSI = \"TrafficMirrorSessionId\";\nvar _TMSIr = \"TrafficMirrorSessionIds\";\nvar _TMSr = \"TrafficMirrorSessions\";\nvar _TMT = \"TrafficMirrorTarget\";\nvar _TMTI = \"TrafficMirrorTargetId\";\nvar _TMTIr = \"TrafficMirrorTargetIds\";\nvar _TMTr = \"TrafficMirrorTargets\";\nvar _TN = \"TokenName\";\nvar _TNC = \"TargetNetworkCidr\";\nvar _TNDMIMB = \"TotalNeuronDeviceMemoryInMiB\";\nvar _TNI = \"TargetNetworkId\";\nvar _TO = \"TunnelOptions\";\nvar _TOAT = \"TransferOfferAcceptedTimestamp\";\nvar _TOET = \"TransferOfferExpirationTimestamp\";\nvar _TP = \"ToPort\";\nvar _TPC = \"ThreadsPerCore\";\nvar _TPT = \"TrustProviderType\";\nvar _TPr = \"TransportProtocol\";\nvar _TR = \"ThroughResources\";\nvar _TRC = \"TargetResourceCount\";\nvar _TRD = \"TemporaryRestoreDays\";\nvar _TRTI = \"TargetRouteTableId\";\nvar _TRi = \"TimeRanges\";\nvar _TS = \"TagSpecifications\";\nvar _TSD = \"TermStartDate\";\nvar _TSIGB = \"TotalSizeInGB\";\nvar _TSIH = \"TotalScheduledInstanceHours\";\nvar _TST = \"TieringStartTime\";\nvar _TSTa = \"TaskStartTime\";\nvar _TSa = \"TargetSubnet\";\nvar _TSag = \"TagSet\";\nvar _TSagp = \"TagSpecification\";\nvar _TSar = \"TargetSize\";\nvar _TSas = \"TaskState\";\nvar _TSp = \"TpmSupport\";\nvar _TT = \"TrafficType\";\nvar _TTC = \"TotalTargetCapacity\";\nvar _TTGAI = \"TransportTransitGatewayAttachmentId\";\nvar _TTa = \"TargetThroughput\";\nvar _TTr = \"TransferType\";\nvar _TUP = \"TotalUpfrontPrice\";\nvar _TV = \"TargetVersion\";\nvar _TVC = \"TotalVCpus\";\nvar _TVSI = \"TargetVpcSubnetId\";\nvar _TVT = \"TargetVolumeType\";\nvar _TVo = \"TokenValue\";\nvar _Ta = \"Tags\";\nvar _Tag = \"Tag\";\nvar _Te = \"Tenancy\";\nvar _Ter = \"Term\";\nvar _Th = \"Throughput\";\nvar _Ti = \"Tier\";\nvar _Tim = \"Timestamp\";\nvar _To = \"To\";\nvar _U = \"Url\";\nvar _UB = \"UserBucket\";\nvar _UD = \"UserData\";\nvar _UDLTV = \"UnsuccessfullyDeletedLaunchTemplateVersions\";\nvar _UDe = \"UefiData\";\nvar _UDp = \"UpdatedDate\";\nvar _UDpd = \"UpdateDate\";\nvar _UE = \"UploadEnd\";\nvar _UF = \"UpfrontFee\";\nvar _UFD = \"UnsuccessfulFleetDeletions\";\nvar _UFR = \"UnsuccessfulFleetRequests\";\nvar _UG = \"UserGroups\";\nvar _UI = \"UnmonitorInstances\";\nvar _UIA = \"UnassignIpv6Addresses\";\nvar _UIAn = \"UnassignedIpv6Addresses\";\nvar _UIC = \"UsedInstanceCount\";\nvar _UICS = \"UnsuccessfulInstanceCreditSpecifications\";\nvar _UIE = \"UserInfoEndpoint\";\nvar _UIGP = \"UserIdGroupPairs\";\nvar _UIP = \"UnknownIpPermissions\";\nvar _UIPn = \"UnassignedIpv6Prefixes\";\nvar _UIs = \"UserId\";\nvar _UIse = \"UserIds\";\nvar _ULI = \"UseLongIds\";\nvar _ULIA = \"UseLongIdsAggregated\";\nvar _UO = \"UsageOperation\";\nvar _UOUT = \"UsageOperationUpdateTime\";\nvar _UP = \"UploadPolicy\";\nvar _UPIA = \"UnassignPrivateIpAddresses\";\nvar _UPNGA = \"UnassignPrivateNatGatewayAddress\";\nvar _UPS = \"UploadPolicySignature\";\nvar _UPp = \"UpfrontPrice\";\nvar _UPs = \"UsagePrice\";\nvar _URBOI = \"UnusedReservationBillingOwnerId\";\nvar _US = \"UnlockSnapshot\";\nvar _USGRDE = \"UpdateSecurityGroupRuleDescriptionsEgress\";\nvar _USGRDI = \"UpdateSecurityGroupRuleDescriptionsIngress\";\nvar _UST = \"UdpStreamTimeout\";\nvar _USp = \"UploadSize\";\nvar _USpl = \"UploadStart\";\nvar _USs = \"UsageStrategy\";\nvar _UT = \"UdpTimeout\";\nvar _UTP = \"UserTrustProvider\";\nvar _UTPT = \"UserTrustProviderType\";\nvar _UTp = \"UpdateTime\";\nvar _Un = \"Unsuccessful\";\nvar _Us = \"Username\";\nvar _V = \"Version\";\nvar _VA = \"VpcAttachment\";\nvar _VAE = \"VerifiedAccessEndpoint\";\nvar _VAEI = \"VerifiedAccessEndpointId\";\nvar _VAEIe = \"VerifiedAccessEndpointIds\";\nvar _VAET = \"VerifiedAccessEndpointTargets\";\nvar _VAETD = \"VerifiedAccessEndpointTargetDns\";\nvar _VAETIA = \"VerifiedAccessEndpointTargetIpAddress\";\nvar _VAEe = \"VerifiedAccessEndpoints\";\nvar _VAG = \"VerifiedAccessGroup\";\nvar _VAGA = \"VerifiedAccessGroupArn\";\nvar _VAGI = \"VerifiedAccessGroupId\";\nvar _VAGIe = \"VerifiedAccessGroupIds\";\nvar _VAGe = \"VerifiedAccessGroups\";\nvar _VAI = \"VerifiedAccessInstance\";\nvar _VAII = \"VerifiedAccessInstanceId\";\nvar _VAIIe = \"VerifiedAccessInstanceIds\";\nvar _VAIe = \"VerifiedAccessInstances\";\nvar _VATP = \"VerifiedAccessTrustProvider\";\nvar _VATPI = \"VerifiedAccessTrustProviderId\";\nvar _VATPIe = \"VerifiedAccessTrustProviderIds\";\nvar _VATPe = \"VerifiedAccessTrustProviders\";\nvar _VAp = \"VpcAttachments\";\nvar _VBPAE = \"VpcBlockPublicAccessExclusion\";\nvar _VBPAEp = \"VpcBlockPublicAccessExclusions\";\nvar _VBPAO = \"VpcBlockPublicAccessOptions\";\nvar _VC = \"VpnConnection\";\nvar _VCC = \"VCpuCount\";\nvar _VCDSC = \"VpnConnectionDeviceSampleConfiguration\";\nvar _VCDT = \"VpnConnectionDeviceTypes\";\nvar _VCDTI = \"VpnConnectionDeviceTypeId\";\nvar _VCI = \"VpnConnectionId\";\nvar _VCIp = \"VpnConnectionIds\";\nvar _VCIpu = \"VCpuInfo\";\nvar _VCa = \"ValidCores\";\nvar _VCp = \"VpnConnections\";\nvar _VD = \"VersionDescription\";\nvar _VE = \"VpcEndpoint\";\nvar _VEA = \"VpcEndpointAssociations\";\nvar _VEC = \"VpcEndpointConnections\";\nvar _VECI = \"VpcEncryptionControlId\";\nvar _VECIp = \"VpcEndpointConnectionId\";\nvar _VEI = \"VpcEndpointIds\";\nvar _VEIp = \"VpcEndpointId\";\nvar _VEO = \"VpcEndpointOwner\";\nvar _VEPS = \"VpcEndpointPolicySupported\";\nvar _VER = \"VpcEndpointRegion\";\nvar _VES = \"VpnEcmpSupport\";\nvar _VESp = \"VpcEndpointService\";\nvar _VESpc = \"VpcEndpointState\";\nvar _VET = \"VpcEndpointType\";\nvar _VEp = \"VpcEndpoints\";\nvar _VF = \"ValidFrom\";\nvar _VFR = \"ValidationFailureReason\";\nvar _VG = \"VpnGateway\";\nvar _VGI = \"VpnGatewayId\";\nvar _VGIp = \"VpnGatewayIds\";\nvar _VGp = \"VpnGateways\";\nvar _VI = \"VpcId\";\nvar _VIR = \"VolumeInitializationRate\";\nvar _VIe = \"VendorId\";\nvar _VIl = \"VlanId\";\nvar _VIo = \"VolumeId\";\nvar _VIol = \"VolumeIds\";\nvar _VIp = \"VpcIds\";\nvar _VM = \"VerificationMethod\";\nvar _VMo = \"VolumesModifications\";\nvar _VMol = \"VolumeModification\";\nvar _VN = \"VirtualName\";\nvar _VNI = \"VirtualNetworkId\";\nvar _VNe = \"VersionNumber\";\nvar _VOI = \"VolumeOwnerId\";\nvar _VOIp = \"VpcOwnerId\";\nvar _VP = \"VpnPort\";\nvar _VPC = \"VpcPeeringConnection\";\nvar _VPCI = \"VpcPeeringConnectionId\";\nvar _VPCIp = \"VpcPeeringConnectionIds\";\nvar _VPCp = \"VpcPeeringConnections\";\nvar _VPG = \"VirtualPrivateGateway\";\nvar _VPp = \"VpnProtocol\";\nvar _VPpc = \"VpcPeering\";\nvar _VS = \"VolumeSize\";\nvar _VSo = \"VolumeStatuses\";\nvar _VSol = \"VolumeStatus\";\nvar _VT = \"VolumeType\";\nvar _VTOIA = \"VpnTunnelOutsideIpAddress\";\nvar _VTPC = \"ValidThreadsPerCore\";\nvar _VTg = \"VgwTelemetry\";\nvar _VTi = \"VirtualizationTypes\";\nvar _VTir = \"VirtualizationType\";\nvar _VU = \"ValidUntil\";\nvar _Va = \"Value\";\nvar _Val = \"Values\";\nvar _Ve = \"Versions\";\nvar _Ven = \"Vendor\";\nvar _Vl = \"Vlan\";\nvar _Vo = \"Volume\";\nvar _Vol = \"Volumes\";\nvar _Vp = \"Vpc\";\nvar _Vpc = \"Vpcs\";\nvar _W = \"Weight\";\nvar _WBC = \"WithdrawByoipCidr\";\nvar _WC = \"WithCooldown\";\nvar _WCe = \"WeightedCapacity\";\nvar _WM = \"WarningMessage\";\nvar _WU = \"WakeUp\";\nvar _Wa = \"Warning\";\nvar _ZI = \"ZoneIds\";\nvar _ZIo = \"ZoneId\";\nvar _ZN = \"ZoneNames\";\nvar _ZNo = \"ZoneName\";\nvar _ZT = \"ZoneType\";\nvar _a = \"associations\";\nvar _aA = \"asnAssociation\";\nvar _aAC = \"availableAddressCount\";\nvar _aAI = \"awsAccountId\";\nvar _aAId = \"addressAllocationId\";\nvar _aAS = \"asnAssociationSet\";\nvar _aASA = \"autoAcceptSharedAssociations\";\nvar _aASAu = \"autoAcceptSharedAttachments\";\nvar _aASc = \"accountAttributeSet\";\nvar _aASd = \"additionalAccountSet\";\nvar _aAc = \"accessAll\";\nvar _aBHP = \"actualBlockHourlyPrice\";\nvar _aC = \"availableCapacity\";\nvar _aCIA = \"associateCarrierIpAddress\";\nvar _aCT = \"archivalCompleteTime\";\nvar _aCc = \"acceleratorCount\";\nvar _aCd = \"addressCount\";\nvar _aD = \"activeDirectory\";\nvar _aDNL = \"allocationDefaultNetmaskLength\";\nvar _aDRFRV = \"allowDnsResolutionFromRemoteVpc\";\nvar _aDRTI = \"associationDefaultRouteTableId\";\nvar _aDS = \"additionalDetailSet\";\nvar _aDT = \"additionalDetailType\";\nvar _aDn = \"announcementDirection\";\nvar _aDp = \"applicationDomain\";\nvar _aE = \"authorizationEndpoint\";\nvar _aEC = \"analyzedEniCount\";\nvar _aEFLCLTRV = \"allowEgressFromLocalClassicLinkToRemoteVpc\";\nvar _aEFLVTRCL = \"allowEgressFromLocalVpcToRemoteClassicLink\";\nvar _aEIO = \"autoEnableIO\";\nvar _aES = \"attachedEbsStatus\";\nvar _aF = \"addressFamily\";\nvar _aFS = \"analysisFindingSet\";\nvar _aI = \"allocationId\";\nvar _aIA = \"assignedIpv6Addresses\";\nvar _aIAC = \"availableIpAddressCount\";\nvar _aIAOC = \"assignIpv6AddressOnCreation\";\nvar _aIC = \"availableInstanceCapacity\";\nvar _aICv = \"availableInstanceCount\";\nvar _aIPS = \"assignedIpv6PrefixSet\";\nvar _aIPSs = \"assignedIpv4PrefixSet\";\nvar _aIS = \"activeInstanceSet\";\nvar _aISS = \"allowedImagesSettingsState\";\nvar _aITS = \"allowedInstanceTypeSet\";\nvar _aIc = \"accountId\";\nvar _aIm = \"amiId\";\nvar _aIs = \"associationId\";\nvar _aIss = \"assetId\";\nvar _aIt = \"attachmentId\";\nvar _aIu = \"autoImport\";\nvar _aL = \"accountLevel\";\nvar _aLI = \"amiLaunchIndex\";\nvar _aLc = \"accessLogs\";\nvar _aMIT = \"allowsMultipleInstanceTypes\";\nvar _aMNL = \"allocationMinNetmaskLength\";\nvar _aMNLl = \"allocationMaxNetmaskLength\";\nvar _aMS = \"acceleratorManufacturerSet\";\nvar _aMSp = \"applianceModeSupport\";\nvar _aN = \"attributeName\";\nvar _aNS = \"acceleratorNameSet\";\nvar _aO = \"authenticationOptions\";\nvar _aOI = \"addressOwnerId\";\nvar _aP = \"allowedPrincipals\";\nvar _aPCO = \"accepterPeeringConnectionOptions\";\nvar _aPHS = \"alternatePathHintSet\";\nvar _aPIA = \"associatePublicIpAddress\";\nvar _aPIAS = \"assignedPrivateIpAddressesSet\";\nvar _aPS = \"addedPrincipalSet\";\nvar _aPSs = \"asPathSet\";\nvar _aPu = \"autoPlacement\";\nvar _aR = \"authorizationRule\";\nvar _aRA = \"associatedRoleArn\";\nvar _aRAd = \"additionalRoutesAvailable\";\nvar _aRAs = \"associatedResourceAccessibility\";\nvar _aRAss = \"associatedResourceArn\";\nvar _aRC = \"acceptedRouteCount\";\nvar _aRP = \"areRoutesPersisted\";\nvar _aRS = \"associatedRoleSet\";\nvar _aRSu = \"autoRecoverySupported\";\nvar _aRTS = \"allocationResourceTagSet\";\nvar _aRc = \"aclRule\";\nvar _aRcc = \"acceptanceRequired\";\nvar _aRd = \"addressRegion\";\nvar _aRs = \"associatedResource\";\nvar _aRu = \"autoRecovery\";\nvar _aRw = \"awsRegion\";\nvar _aS = \"associationState\";\nvar _aSA = \"amazonSideAsn\";\nvar _aSS = \"amdSevSnp\";\nvar _aSSt = \"attributeSummarySet\";\nvar _aSc = \"activityStatus\";\nvar _aSct = \"actionsSet\";\nvar _aSd = \"addressSet\";\nvar _aSdd = \"addressesSet\";\nvar _aSl = \"allocationStrategy\";\nvar _aSn = \"analysisStatus\";\nvar _aSs = \"associationStatus\";\nvar _aSss = \"associationSet\";\nvar _aSt = \"attachmentSet\";\nvar _aStt = \"attachmentStatuses\";\nvar _aSw = \"awsService\";\nvar _aT = \"addressTransfer\";\nvar _aTGAI = \"accepterTransitGatewayAttachmentId\";\nvar _aTI = \"accepterTgwInfo\";\nvar _aTMMB = \"acceleratorTotalMemoryMiB\";\nvar _aTN = \"associatedTargetNetwork\";\nvar _aTS = \"addressTransferStatus\";\nvar _aTSc = \"acceleratorTypeSet\";\nvar _aTSd = \"addressTransferSet\";\nvar _aTd = \"addressType\";\nvar _aTdd = \"addressingType\";\nvar _aTl = \"allocationType\";\nvar _aTll = \"allocationTime\";\nvar _aTs = \"associationTarget\";\nvar _aTt = \"attachTime\";\nvar _aTtt = \"attachedTo\";\nvar _aTtta = \"attachmentType\";\nvar _aV = \"attributeValue\";\nvar _aVC = \"availableVCpus\";\nvar _aVI = \"accepterVpcInfo\";\nvar _aVS = \"attributeValueSet\";\nvar _aZ = \"availabilityZone\";\nvar _aZG = \"availabilityZoneGroup\";\nvar _aZI = \"availabilityZoneId\";\nvar _aZIS = \"availabilityZoneIdSet\";\nvar _aZIv = \"availabilityZoneInfo\";\nvar _aZS = \"availabilityZoneSet\";\nvar _ac = \"acl\";\nvar _acc = \"accelerators\";\nvar _act = \"active\";\nvar _ad = \"address\";\nvar _af = \"affinity\";\nvar _am = \"amount\";\nvar _ar = \"arn\";\nvar _arc = \"architecture\";\nvar _as = \"asn\";\nvar _ass = \"association\";\nvar _at = \"attachment\";\nvar _att = \"attachments\";\nvar _b = \"byoasn\";\nvar _bA = \"bgpAsn\";\nvar _bAE = \"bgpAsnExtended\";\nvar _bBIG = \"baselineBandwidthInGbps\";\nvar _bBIM = \"baselineBandwidthInMbps\";\nvar _bC = \"byoipCidr\";\nvar _bCS = \"byoipCidrSet\";\nvar _bCg = \"bgpConfigurations\";\nvar _bCy = \"bytesConverted\";\nvar _bDM = \"blockDeviceMapping\";\nvar _bDMS = \"blockDeviceMappingSet\";\nvar _bDMl = \"blockDurationMinutes\";\nvar _bEBM = \"baselineEbsBandwidthMbps\";\nvar _bEDNS = \"baseEndpointDnsNameSet\";\nvar _bI = \"bundleId\";\nvar _bII = \"branchInterfaceId\";\nvar _bIT = \"bundleInstanceTask\";\nvar _bITS = \"bundleInstanceTasksSet\";\nvar _bIa = \"baselineIops\";\nvar _bM = \"bootMode\";\nvar _bMa = \"bareMetal\";\nvar _bN = \"bucketName\";\nvar _bO = \"bgpOptions\";\nvar _bOu = \"bucketOwner\";\nvar _bP = \"burstablePerformance\";\nvar _bPAS = \"blockPublicAccessStates\";\nvar _bPF = \"baselinePerformanceFactors\";\nvar _bPS = \"burstablePerformanceSupported\";\nvar _bS = \"byoasnSet\";\nvar _bSf = \"bfdStatus\";\nvar _bSg = \"bgpStatus\";\nvar _bT = \"bannerText\";\nvar _bTIMB = \"baselineThroughputInMBps\";\nvar _bW = \"bandwidthWeighting\";\nvar _bWa = \"bandwidthWeightings\";\nvar _bl = \"blackhole\";\nvar _bu = \"bucket\";\nvar _c = \"component\";\nvar _cA = \"componentArn\";\nvar _cAS = \"capacityAllocationSet\";\nvar _cAUS = \"coipAddressUsageSet\";\nvar _cAe = \"certificateArn\";\nvar _cAo = \"componentAccount\";\nvar _cAr = \"createdAt\";\nvar _cB = \"cidrBlock\";\nvar _cBA = \"cidrBlockAssociation\";\nvar _cBAS = \"cidrBlockAssociationSet\";\nvar _cBDH = \"capacityBlockDurationHours\";\nvar _cBDM = \"capacityBlockDurationMinutes\";\nvar _cBEDH = \"capacityBlockExtensionDurationHours\";\nvar _cBEED = \"capacityBlockExtensionEndDate\";\nvar _cBEOI = \"capacityBlockExtensionOfferingId\";\nvar _cBEOS = \"capacityBlockExtensionOfferingSet\";\nvar _cBEPD = \"capacityBlockExtensionPurchaseDate\";\nvar _cBES = \"capacityBlockExtensionStatus\";\nvar _cBESD = \"capacityBlockExtensionStartDate\";\nvar _cBESa = \"capacityBlockExtensionSet\";\nvar _cBOI = \"capacityBlockOfferingId\";\nvar _cBOS = \"capacityBlockOfferingSet\";\nvar _cBS = \"cidrBlockState\";\nvar _cBSi = \"cidrBlockSet\";\nvar _cBr = \"createdBy\";\nvar _cC = \"currencyCode\";\nvar _cCB = \"clientCidrBlock\";\nvar _cCO = \"clientConnectOptions\";\nvar _cCRFE = \"cancelCapacityReservationFleetError\";\nvar _cCl = \"clientConfiguration\";\nvar _cCo = \"coreCount\";\nvar _cCoi = \"coipCidr\";\nvar _cCp = \"cpuCredits\";\nvar _cD = \"createDate\";\nvar _cDM = \"completionDurationMinutes\";\nvar _cDr = \"creationDate\";\nvar _cDre = \"createdDate\";\nvar _cE = \"connectionEvents\";\nvar _cECSD = \"cidrEndpointsCustomSubDomain\";\nvar _cED = \"commitmentEndDate\";\nvar _cET = \"connectionEstablishedTime\";\nvar _cETo = \"connectionEndTime\";\nvar _cEr = \"cronExpression\";\nvar _cF = \"containerFormat\";\nvar _cFS = \"currentFleetState\";\nvar _cG = \"carrierGateway\";\nvar _cGC = \"customerGatewayConfiguration\";\nvar _cGI = \"carrierGatewayId\";\nvar _cGIu = \"customerGatewayId\";\nvar _cGS = \"carrierGatewaySet\";\nvar _cGSu = \"customerGatewaySet\";\nvar _cGu = \"customerGateway\";\nvar _cGur = \"currentGeneration\";\nvar _cI = \"carrierIp\";\nvar _cIBM = \"currentInstanceBootMode\";\nvar _cIC = \"committedInstanceCount\";\nvar _cIi = \"cidrIp\";\nvar _cIid = \"cidrIpv6\";\nvar _cIidr = \"cidrIpv4\";\nvar _cIl = \"clientIp\";\nvar _cIli = \"clientId\";\nvar _cIo = \"componentId\";\nvar _cIom = \"commitmentInfo\";\nvar _cIon = \"connectionId\";\nvar _cIop = \"coIp\";\nvar _cIor = \"coreInfo\";\nvar _cLB = \"classicLoadBalancers\";\nvar _cLBC = \"classicLoadBalancersConfig\";\nvar _cLBL = \"classicLoadBalancerListener\";\nvar _cLBO = \"clientLoginBannerOptions\";\nvar _cLDS = \"classicLinkDnsSupported\";\nvar _cLE = \"classicLinkEnabled\";\nvar _cLO = \"connectionLogOptions\";\nvar _cMKE = \"customerManagedKeyEnabled\";\nvar _cMS = \"cpuManufacturerSet\";\nvar _cN = \"commonName\";\nvar _cNA = \"coreNetworkArn\";\nvar _cNAA = \"coreNetworkAttachmentArn\";\nvar _cNAo = \"connectionNotificationArn\";\nvar _cNI = \"connectionNotificationId\";\nvar _cNIo = \"coreNetworkId\";\nvar _cNS = \"connectionNotificationState\";\nvar _cNSo = \"connectionNotificationSet\";\nvar _cNT = \"connectionNotificationType\";\nvar _cNo = \"connectionNotification\";\nvar _cO = \"cpuOptions\";\nvar _cOI = \"customerOwnedIp\";\nvar _cOIP = \"customerOwnedIpv4Pool\";\nvar _cOP = \"coolOffPeriod\";\nvar _cOPEO = \"coolOffPeriodExpiresOn\";\nvar _cOi = \"cidrOptions\";\nvar _cP = \"coipPool\";\nvar _cPC = \"connectPeerConfiguration\";\nvar _cPI = \"coipPoolId\";\nvar _cPS = \"coipPoolSet\";\nvar _cR = \"capacityReservation\";\nvar _cRA = \"capacityReservationArn\";\nvar _cRBRS = \"capacityReservationBillingRequestSet\";\nvar _cRCC = \"clientRootCertificateChain\";\nvar _cREO = \"clientRouteEnforcementOptions\";\nvar _cRFA = \"capacityReservationFleetArn\";\nvar _cRFI = \"capacityReservationFleetId\";\nvar _cRFS = \"capacityReservationFleetSet\";\nvar _cRGS = \"capacityReservationGroupSet\";\nvar _cRI = \"capacityReservationId\";\nvar _cRIa = \"capacityReservationInfo\";\nvar _cRL = \"certificateRevocationList\";\nvar _cRO = \"capacityReservationOptions\";\nvar _cRP = \"capacityReservationPreference\";\nvar _cRRGA = \"capacityReservationResourceGroupArn\";\nvar _cRS = \"capacityReservationSet\";\nvar _cRSa = \"capacityReservationSpecification\";\nvar _cRT = \"capacityReservationTarget\";\nvar _cRa = \"capacityRebalance\";\nvar _cRo = \"componentRegion\";\nvar _cS = \"cidrSet\";\nvar _cSBN = \"certificateS3BucketName\";\nvar _cSFRS = \"currentSpotFleetRequestState\";\nvar _cSOK = \"certificateS3ObjectKey\";\nvar _cSl = \"clientSecret\";\nvar _cSo = \"complianceStatus\";\nvar _cSon = \"configurationState\";\nvar _cSonn = \"connectionStatuses\";\nvar _cSr = \"creditSpecification\";\nvar _cSu = \"currentState\";\nvar _cSur = \"currentStatus\";\nvar _cT = \"clientToken\";\nvar _cTC = \"connectionTrackingConfiguration\";\nvar _cTI = \"conversionTaskId\";\nvar _cTS = \"connectionTrackingSpecification\";\nvar _cTo = \"conversionTasks\";\nvar _cTom = \"completeTime\";\nvar _cTomp = \"completionTime\";\nvar _cTon = \"conversionTask\";\nvar _cTonn = \"connectivityType\";\nvar _cTr = \"createTime\";\nvar _cTre = \"creationTime\";\nvar _cTrea = \"creationTimestamp\";\nvar _cVE = \"clientVpnEndpoint\";\nvar _cVEI = \"clientVpnEndpointId\";\nvar _cVP = \"createVolumePermission\";\nvar _cVTN = \"clientVpnTargetNetworks\";\nvar _cWL = \"cloudWatchLogs\";\nvar _cWLO = \"cloudWatchLogOptions\";\nvar _ca = \"category\";\nvar _ch = \"checksum\";\nvar _ci = \"cidr\";\nvar _co = \"code\";\nvar _con = \"connections\";\nvar _conf = \"configured\";\nvar _confi = \"config\";\nvar _cont = \"context\";\nvar _cor = \"cores\";\nvar _cou = \"count\";\nvar _cp = \"cpu\";\nvar _d = \"destination\";\nvar _dA = \"destinationArn\";\nvar _dAIT = \"denyAllIgwTraffic\";\nvar _dART = \"defaultAssociationRouteTable\";\nvar _dAS = \"destinationAddressSet\";\nvar _dASe = \"deprovisionedAddressSet\";\nvar _dASi = \"disableApiStop\";\nvar _dAT = \"disableApiTermination\";\nvar _dAe = \"destinationAddress\";\nvar _dC = \"destinationCidr\";\nvar _dCA = \"domainCertificateArn\";\nvar _dCAR = \"deliverCrossAccountRole\";\nvar _dCB = \"destinationCidrBlock\";\nvar _dCR = \"destinationCapacityReservation\";\nvar _dCS = \"dhcpConfigurationSet\";\nvar _dCe = \"defaultCores\";\nvar _dE = \"dnsEntry\";\nvar _dEKI = \"dataEncryptionKeyId\";\nvar _dEQCPI = \"defaultEnaQueueCountPerInterface\";\nvar _dES = \"dnsEntrySet\";\nvar _dFA = \"defaultForAz\";\nvar _dHIS = \"dedicatedHostIdSet\";\nvar _dHS = \"dedicatedHostsSupported\";\nvar _dI = \"directoryId\";\nvar _dICB = \"destinationIpv6CidrBlock\";\nvar _dIF = \"diskImageFormat\";\nvar _dIS = \"diskImageSize\";\nvar _dIe = \"deviceIndex\";\nvar _dIes = \"destinationIp\";\nvar _dLEM = \"deliverLogsErrorMessage\";\nvar _dLPA = \"deliverLogsPermissionArn\";\nvar _dLS = \"deliverLogsStatus\";\nvar _dMGM = \"deregisteredMulticastGroupMembers\";\nvar _dMGS = \"deregisteredMulticastGroupSources\";\nvar _dN = \"deviceName\";\nvar _dNCI = \"defaultNetworkCardIndex\";\nvar _dNII = \"deregisteredNetworkInterfaceIds\";\nvar _dNn = \"dnsName\";\nvar _dO = \"dhcpOptions\";\nvar _dOI = \"dhcpOptionsId\";\nvar _dOS = \"dhcpOptionsSet\";\nvar _dOST = \"disconnectOnSessionTimeout\";\nvar _dOT = \"deleteOnTermination\";\nvar _dOe = \"destinationOptions\";\nvar _dOev = \"deviceOptions\";\nvar _dOn = \"dnsOptions\";\nvar _dP = \"deliveryPreference\";\nvar _dPLI = \"destinationPrefixListId\";\nvar _dPLS = \"destinationPrefixListSet\";\nvar _dPR = \"destinationPortRange\";\nvar _dPRS = \"destinationPortRangeSet\";\nvar _dPRT = \"defaultPropagationRouteTable\";\nvar _dPS = \"destinationPortSet\";\nvar _dPe = \"deregistrationProtection\";\nvar _dPes = \"destinationPort\";\nvar _dR = \"discoveryRegion\";\nvar _dRDAI = \"defaultResourceDiscoveryAssociationId\";\nvar _dRDI = \"defaultResourceDiscoveryId\";\nvar _dRIT = \"dnsRecordIpType\";\nvar _dRRV = \"deleteReplacedRootVolume\";\nvar _dRS = \"dataRetentionSupport\";\nvar _dRSa = \"dataResponseSet\";\nvar _dRTA = \"defaultRouteTableAssociation\";\nvar _dRTP = \"defaultRouteTablePropagation\";\nvar _dRy = \"dynamicRouting\";\nvar _dS = \"dnsServer\";\nvar _dSCR = \"deletedSubnetCidrReservation\";\nvar _dSe = \"destinationSet\";\nvar _dSel = \"deliveryStatus\";\nvar _dSeli = \"deliveryStream\";\nvar _dSn = \"dnsSupport\";\nvar _dT = \"deletionTime\";\nvar _dTA = \"dpdTimeoutAction\";\nvar _dTCT = \"defaultTargetCapacityType\";\nvar _dTPC = \"defaultThreadsPerCore\";\nvar _dTPS = \"deviceTrustProviderSet\";\nvar _dTPT = \"deviceTrustProviderType\";\nvar _dTS = \"dpdTimeoutSeconds\";\nvar _dTe = \"deprecationTime\";\nvar _dTel = \"deleteTime\";\nvar _dTele = \"deletionTimestamp\";\nvar _dTi = \"disablingTime\";\nvar _dTis = \"disabledTime\";\nvar _dV = \"destinationVpc\";\nvar _dVC = \"defaultVCpus\";\nvar _dVD = \"deviceValidationDomain\";\nvar _dVN = \"defaultVersionNumber\";\nvar _dVe = \"defaultVersion\";\nvar _de = \"description\";\nvar _dea = \"deadline\";\nvar _def = \"default\";\nvar _det = \"details\";\nvar _dev = \"device\";\nvar _di = \"direction\";\nvar _dis = \"disks\";\nvar _do = \"domain\";\nvar _du = \"duration\";\nvar _e = \"egress\";\nvar _eA = \"eniAddress\";\nvar _eAn = \"enableAcceleration\";\nvar _eAx = \"exclusionsAllowed\";\nvar _eB = \"egressBytes\";\nvar _eC = \"errorCode\";\nvar _eCTP = \"excessCapacityTerminationPolicy\";\nvar _eCn = \"encryptionControl\";\nvar _eCx = \"explanationCode\";\nvar _eD = \"endDate\";\nvar _eDH = \"enableDnsHostnames\";\nvar _eDS = \"enableDnsSupport\";\nvar _eDT = \"endDateType\";\nvar _eDf = \"effectiveDate\";\nvar _eDn = \"enableDns64\";\nvar _eDnd = \"endpointDomain\";\nvar _eDv = \"eventDescription\";\nvar _eEA = \"endpointEniAddress\";\nvar _eEBD = \"ebsEncryptionByDefault\";\nvar _eEI = \"endpointEniId\";\nvar _eFRS = \"egressFilterRuleSet\";\nvar _eGAI = \"elasticGpuAssociationId\";\nvar _eGAS = \"elasticGpuAssociationState\";\nvar _eGASl = \"elasticGpuAssociationSet\";\nvar _eGAT = \"elasticGpuAssociationTime\";\nvar _eGH = \"elasticGpuHealth\";\nvar _eGI = \"elasticGpuId\";\nvar _eGS = \"elasticGpuSet\";\nvar _eGSS = \"elasticGpuSpecificationSet\";\nvar _eGSl = \"elasticGpuState\";\nvar _eGT = \"elasticGpuType\";\nvar _eH = \"endHour\";\nvar _eI = \"exchangeId\";\nvar _eIAA = \"elasticInferenceAcceleratorArn\";\nvar _eIAAI = \"elasticInferenceAcceleratorAssociationId\";\nvar _eIAAS = \"elasticInferenceAcceleratorAssociationState\";\nvar _eIAASl = \"elasticInferenceAcceleratorAssociationSet\";\nvar _eIAAT = \"elasticInferenceAcceleratorAssociationTime\";\nvar _eIAS = \"elasticInferenceAcceleratorSet\";\nvar _eITI = \"exportImageTaskId\";\nvar _eITS = \"exportImageTaskSet\";\nvar _eITSn = \"encryptionInTransitSupported\";\nvar _eITSx = \"excludedInstanceTypeSet\";\nvar _eIb = \"ebsInfo\";\nvar _eIf = \"efaInfo\";\nvar _eIn = \"eniId\";\nvar _eIv = \"eventInformation\";\nvar _eIve = \"eventId\";\nvar _eIx = \"exclusionId\";\nvar _eKKI = \"encryptionKmsKeyId\";\nvar _eLADI = \"enableLniAtDeviceIndex\";\nvar _eLBL = \"elasticLoadBalancerListener\";\nvar _eM = \"errorMessage\";\nvar _eNAUM = \"enableNetworkAddressUsageMetrics\";\nvar _eO = \"ebsOptimized\";\nvar _eOI = \"ebsOptimizedInfo\";\nvar _eOIG = \"egressOnlyInternetGateway\";\nvar _eOIGI = \"egressOnlyInternetGatewayId\";\nvar _eOIGS = \"egressOnlyInternetGatewaySet\";\nvar _eOS = \"ebsOptimizedSupport\";\nvar _eOn = \"enclaveOptions\";\nvar _eP = \"egressPackets\";\nvar _ePG = \"enablePrivateGua\";\nvar _ePS = \"excludePathSet\";\nvar _eQC = \"enaQueueCount\";\nvar _eRNDAAAAR = \"enableResourceNameDnsAAAARecord\";\nvar _eRNDAR = \"enableResourceNameDnsARecord\";\nvar _eS = \"ephemeralStorage\";\nvar _eSE = \"enaSrdEnabled\";\nvar _eSS = \"enaSrdSpecification\";\nvar _eSSn = \"enaSrdSupported\";\nvar _eST = \"eventSubType\";\nvar _eSUE = \"enaSrdUdpEnabled\";\nvar _eSUS = \"enaSrdUdpSpecification\";\nvar _eSf = \"efaSupported\";\nvar _eSn = \"encryptionSupport\";\nvar _eSna = \"enaSupport\";\nvar _eSnt = \"entrySet\";\nvar _eSr = \"errorSet\";\nvar _eSv = \"eventsSet\";\nvar _eSx = \"explanationSet\";\nvar _eT = \"expirationTime\";\nvar _eTI = \"exportTaskId\";\nvar _eTLC = \"enableTunnelLifecycleControl\";\nvar _eTS = \"exportTaskSet\";\nvar _eTSi = \"eipTagSet\";\nvar _eTSx = \"exportToS3\";\nvar _eTn = \"endTime\";\nvar _eTna = \"enablingTime\";\nvar _eTnab = \"enabledTime\";\nvar _eTnd = \"endpointType\";\nvar _eTv = \"eventType\";\nvar _eTx = \"exportTask\";\nvar _eWD = \"endWeekDay\";\nvar _eb = \"ebs\";\nvar _en = \"enabled\";\nvar _enc = \"encrypted\";\nvar _end = \"end\";\nvar _enf = \"enforced\";\nvar _er = \"error\";\nvar _ev = \"event\";\nvar _f = \"format\";\nvar _fA = \"federatedAuthentication\";\nvar _fAD = \"filterAtDestination\";\nvar _fAS = \"filterAtSource\";\nvar _fAi = \"firstAddress\";\nvar _fC = \"fulfilledCapacity\";\nvar _fCRS = \"fleetCapacityReservationSet\";\nvar _fCS = \"findingComponentSet\";\nvar _fCa = \"failureCode\";\nvar _fDN = \"fipsDnsName\";\nvar _fE = \"fipsEnabled\";\nvar _fEQS = \"flexibleEnaQueuesSupport\";\nvar _fF = \"fileFormat\";\nvar _fFCS = \"failedFleetCancellationSet\";\nvar _fFi = \"findingsFound\";\nvar _fI = \"findingId\";\nvar _fIA = \"fpgaImageAttribute\";\nvar _fIAS = \"filterInArnSet\";\nvar _fIGI = \"fpgaImageGlobalId\";\nvar _fII = \"fpgaImageId\";\nvar _fIS = \"fleetInstanceSet\";\nvar _fISp = \"fpgaImageSet\";\nvar _fIl = \"fleetId\";\nvar _fIp = \"fpgaInfo\";\nvar _fLI = \"flowLogId\";\nvar _fLIS = \"flowLogIdSet\";\nvar _fLISa = \"fastLaunchImageSet\";\nvar _fLS = \"flowLogSet\";\nvar _fLSl = \"flowLogStatus\";\nvar _fM = \"failureMessage\";\nvar _fOAS = \"filterOutArnSet\";\nvar _fODC = \"fulfilledOnDemandCapacity\";\nvar _fP = \"fromPort\";\nvar _fPCS = \"forwardPathComponentSet\";\nvar _fPi = \"fixedPrice\";\nvar _fQPDS = \"failedQueuedPurchaseDeletionSet\";\nvar _fR = \"failureReason\";\nvar _fRa = \"fastRestored\";\nvar _fS = \"fleetSet\";\nvar _fSR = \"firewallStatelessRule\";\nvar _fSRS = \"fastSnapshotRestoreSet\";\nvar _fSRSES = \"fastSnapshotRestoreStateErrorSet\";\nvar _fSRi = \"firewallStatefulRule\";\nvar _fSSIB = \"fullSnapshotSizeInBytes\";\nvar _fSST = \"firstSlotStartTime\";\nvar _fSl = \"fleetState\";\nvar _fTE = \"freeTierEligible\";\nvar _fa = \"fault\";\nvar _fp = \"fpgas\";\nvar _fr = \"from\";\nvar _fre = \"frequency\";\nvar _g = \"group\";\nvar _gA = \"groupArn\";\nvar _gAS = \"gatewayAssociationState\";\nvar _gD = \"groupDescription\";\nvar _gI = \"gatewayId\";\nvar _gIA = \"groupIpAddress\";\nvar _gIp = \"gpuInfo\";\nvar _gIr = \"groupId\";\nvar _gK = \"greKey\";\nvar _gLBAS = \"gatewayLoadBalancerArnSet\";\nvar _gLBEI = \"gatewayLoadBalancerEndpointId\";\nvar _gLN = \"groupLongName\";\nvar _gM = \"groupMember\";\nvar _gN = \"groupName\";\nvar _gOI = \"groupOwnerId\";\nvar _gS = \"groupSet\";\nvar _gSr = \"groupSource\";\nvar _gp = \"gpus\";\nvar _gr = \"groups\";\nvar _h = \"hypervisor\";\nvar _hCP = \"hiveCompatiblePartitions\";\nvar _hE = \"httpEndpoint\";\nvar _hI = \"hostId\";\nvar _hIS = \"hostIdSet\";\nvar _hM = \"hostMaintenance\";\nvar _hO = \"hibernationOptions\";\nvar _hP = \"hostProperties\";\nvar _hPI = \"httpProtocolIpv6\";\nvar _hPRHL = \"httpPutResponseHopLimit\";\nvar _hPo = \"hourlyPrice\";\nvar _hR = \"hostRecovery\";\nvar _hRGA = \"hostResourceGroupArn\";\nvar _hRI = \"hostReservationId\";\nvar _hRS = \"historyRecordSet\";\nvar _hRSo = \"hostReservationSet\";\nvar _hS = \"hostSet\";\nvar _hSi = \"hibernationSupported\";\nvar _hT = \"httpTokens\";\nvar _hTo = \"hostnameType\";\nvar _hZI = \"hostedZoneId\";\nvar _i = \"item\";\nvar _iA = \"interfaceAssociation\";\nvar _iAA = \"ipv6AddressAttribute\";\nvar _iAC = \"ipv6AddressCount\";\nvar _iAI = \"inferenceAcceleratorInfo\";\nvar _iAPI = \"ipv4AddressesPerInterface\";\nvar _iAPIp = \"ipv6AddressesPerInterface\";\nvar _iAS = \"interfaceAssociationSet\";\nvar _iASp = \"ipv6AddressesSet\";\nvar _iAT = \"ipAddressType\";\nvar _iATOI = \"includeAllTagsOfInstance\";\nvar _iAm = \"imageAllowed\";\nvar _iAp = \"ipAddress\";\nvar _iApa = \"ipamArn\";\nvar _iApv = \"ipv6Address\";\nvar _iB = \"ingressBytes\";\nvar _iBPAS = \"imageBlockPublicAccessState\";\nvar _iC = \"instanceCount\";\nvar _iCAS = \"ipv6CidrAssociationSet\";\nvar _iCB = \"ipv6CidrBlock\";\nvar _iCBA = \"ipv6CidrBlockAssociation\";\nvar _iCBAS = \"ipv6CidrBlockAssociationSet\";\nvar _iCBS = \"ipv6CidrBlockState\";\nvar _iCBSp = \"ipv6CidrBlockSet\";\nvar _iCBn = \"insideCidrBlocks\";\nvar _iCE = \"instanceConnectEndpoint\";\nvar _iCEA = \"instanceConnectEndpointArn\";\nvar _iCEI = \"instanceConnectEndpointId\";\nvar _iCES = \"instanceConnectEndpointSet\";\nvar _iCS = \"imageCriterionSet\";\nvar _iCSS = \"instanceCreditSpecificationSet\";\nvar _iCn = \"instanceCounts\";\nvar _iCp = \"ipv6Cidr\";\nvar _iD = \"imageData\";\nvar _iDAS = \"ipamDiscoveredAccountSet\";\nvar _iDPAS = \"ipamDiscoveredPublicAddressSet\";\nvar _iDRCS = \"ipamDiscoveredResourceCidrSet\";\nvar _iDs = \"isDefault\";\nvar _iE = \"instanceExport\";\nvar _iEI = \"instanceEventId\";\nvar _iERVT = \"ipamExternalResourceVerificationToken\";\nvar _iERVTA = \"ipamExternalResourceVerificationTokenArn\";\nvar _iERVTI = \"ipamExternalResourceVerificationTokenId\";\nvar _iERVTS = \"ipamExternalResourceVerificationTokenSet\";\nvar _iEW = \"instanceEventWindow\";\nvar _iEWI = \"instanceEventWindowId\";\nvar _iEWS = \"instanceEventWindowState\";\nvar _iEWSn = \"instanceEventWindowSet\";\nvar _iEs = \"isEgress\";\nvar _iF = \"instanceFamily\";\nvar _iFCS = \"instanceFamilyCreditSpecification\";\nvar _iFR = \"iamFleetRole\";\nvar _iFRS = \"ingressFilterRuleSet\";\nvar _iG = \"internetGateway\";\nvar _iGBM = \"internetGatewayBlockMode\";\nvar _iGEM = \"internetGatewayExclusionMode\";\nvar _iGI = \"internetGatewayId\";\nvar _iGS = \"internetGatewaySet\";\nvar _iGSn = \"instanceGenerationSet\";\nvar _iH = \"instanceHealth\";\nvar _iHn = \"inboundHeader\";\nvar _iI = \"instanceId\";\nvar _iIB = \"instanceInterruptionBehavior\";\nvar _iIMS = \"instanceImageMetadataSet\";\nvar _iIP = \"iamInstanceProfile\";\nvar _iIPA = \"iamInstanceProfileAssociation\";\nvar _iIPAS = \"iamInstanceProfileAssociationSet\";\nvar _iIS = \"instanceIdSet\";\nvar _iISB = \"instanceInitiatedShutdownBehavior\";\nvar _iITS = \"importImageTaskSet\";\nvar _iIm = \"importInstance\";\nvar _iIma = \"imageId\";\nvar _iIn = \"instanceIds\";\nvar _iIp = \"ipamId\";\nvar _iL = \"imageLocation\";\nvar _iLn = \"instanceLifecycle\";\nvar _iM = \"imageMetadata\";\nvar _iMC = \"instanceMatchCriteria\";\nvar _iMO = \"instanceMetadataOptions\";\nvar _iMOn = \"instanceMarketOptions\";\nvar _iMT = \"instanceMetadataTags\";\nvar _iMU = \"importManifestUrl\";\nvar _iN = \"ipv6Native\";\nvar _iOA = \"imageOwnerAlias\";\nvar _iOI = \"imageOwnerId\";\nvar _iOIn = \"instanceOwnerId\";\nvar _iOIp = \"ipOwnerId\";\nvar _iOS = \"instanceOwningService\";\nvar _iP = \"instancePort\";\nvar _iPA = \"ipamPoolAllocation\";\nvar _iPAI = \"ipamPoolAllocationId\";\nvar _iPAS = \"ipamPoolAllocationSet\";\nvar _iPAp = \"ipamPoolArn\";\nvar _iPC = \"ipamPoolCidr\";\nvar _iPCI = \"ipamPoolCidrId\";\nvar _iPCS = \"ipamPoolCidrSet\";\nvar _iPCp = \"ipv4PrefixCount\";\nvar _iPCpv = \"ipv6PrefixCount\";\nvar _iPE = \"ipPermissionsEgress\";\nvar _iPI = \"isPrimaryIpv6\";\nvar _iPIp = \"ipamPoolId\";\nvar _iPR = \"isPermanentRestore\";\nvar _iPS = \"ipamPoolSet\";\nvar _iPSm = \"imageProviderSet\";\nvar _iPSp = \"ipv6PoolSet\";\nvar _iPSpr = \"ipPrefixSet\";\nvar _iPSpv = \"ipv4PrefixSet\";\nvar _iPSpvr = \"ipv6PrefixSet\";\nvar _iPTUC = \"instancePoolsToUseCount\";\nvar _iPn = \"instancePlatform\";\nvar _iPng = \"ingressPackets\";\nvar _iPnt = \"interfacePermission\";\nvar _iPnte = \"interfaceProtocol\";\nvar _iPo = \"ioPerformance\";\nvar _iPp = \"ipamPool\";\nvar _iPpe = \"ipPermissions\";\nvar _iPpr = \"ipProtocol\";\nvar _iPpv = \"ipv4Prefix\";\nvar _iPpvo = \"ipv6Pool\";\nvar _iPpvr = \"ipv6Prefix\";\nvar _iPs = \"isPublic\";\nvar _iPsr = \"isPrimary\";\nvar _iR = \"instanceRequirements\";\nvar _iRC = \"ipamResourceCidr\";\nvar _iRCS = \"ipamResourceCidrSet\";\nvar _iRD = \"ipamResourceDiscovery\";\nvar _iRDA = \"ipamResourceDiscoveryAssociation\";\nvar _iRDAA = \"ipamResourceDiscoveryAssociationArn\";\nvar _iRDAI = \"ipamResourceDiscoveryAssociationId\";\nvar _iRDAS = \"ipamResourceDiscoveryAssociationSet\";\nvar _iRDAp = \"ipamResourceDiscoveryArn\";\nvar _iRDI = \"ipamResourceDiscoveryId\";\nvar _iRDR = \"ipamResourceDiscoveryRegion\";\nvar _iRDS = \"ipamResourceDiscoverySet\";\nvar _iRT = \"ingressRouteTable\";\nvar _iRp = \"ipamRegion\";\nvar _iRpa = \"ipRanges\";\nvar _iRpv = \"ipv6Ranges\";\nvar _iS = \"ipamScope\";\nvar _iSA = \"ipamScopeArn\";\nvar _iSI = \"instanceStorageInfo\";\nvar _iSIp = \"ipamScopeId\";\nvar _iSS = \"instanceStatusSet\";\nvar _iSSn = \"instanceStorageSupported\";\nvar _iSSp = \"ipamScopeSet\";\nvar _iST = \"ipamScopeType\";\nvar _iSTS = \"importSnapshotTaskSet\";\nvar _iSg = \"igmpv2Support\";\nvar _iSm = \"imagesSet\";\nvar _iSma = \"imageState\";\nvar _iSmag = \"imageSet\";\nvar _iSmd = \"imdsSupport\";\nvar _iSmp = \"impairedSince\";\nvar _iSn = \"instancesSet\";\nvar _iSns = \"instanceSet\";\nvar _iSnst = \"instanceState\";\nvar _iSnsta = \"instanceStatus\";\nvar _iSp = \"ipamSet\";\nvar _iSpo = \"ipSource\";\nvar _iSpv = \"ipv6Supported\";\nvar _iSpvu = \"ipv6Support\";\nvar _iT = \"instanceType\";\nvar _iTA = \"instanceTagAttribute\";\nvar _iTC = \"icmpTypeCode\";\nvar _iTCn = \"includeTrustContext\";\nvar _iTI = \"importTaskId\";\nvar _iTKS = \"instanceTagKeySet\";\nvar _iTOS = \"instanceTypeOfferingSet\";\nvar _iTS = \"instanceTypeSet\";\nvar _iTSS = \"instanceTypeSpecificationSet\";\nvar _iTm = \"imageType\";\nvar _iTn = \"instanceTypes\";\nvar _iTns = \"instanceTenancy\";\nvar _iTnt = \"interfaceType\";\nvar _iU = \"ipUsage\";\nvar _iUS = \"instanceUsageSet\";\nvar _iV = \"importVolume\";\nvar _iVE = \"isValidExchange\";\nvar _iVS = \"ikeVersionSet\";\nvar _id = \"id\";\nvar _im = \"image\";\nvar _in = \"instance\";\nvar _ins = \"instances\";\nvar _int = \"interval\";\nvar _io = \"iops\";\nvar _ip = \"ipam\";\nvar _is = \"issuer\";\nvar _k = \"key\";\nvar _kDF = \"kinesisDataFirehose\";\nvar _kF = \"keyFormat\";\nvar _kFe = \"keyFingerprint\";\nvar _kI = \"kernelId\";\nvar _kKA = \"kmsKeyArn\";\nvar _kKI = \"kmsKeyId\";\nvar _kM = \"keyMaterial\";\nvar _kN = \"keyName\";\nvar _kPI = \"keyPairId\";\nvar _kS = \"keySet\";\nvar _kT = \"keyType\";\nvar _kV = \"keyValue\";\nvar _ke = \"kernel\";\nvar _key = \"keyword\";\nvar _l = \"lifecycle\";\nvar _lA = \"localAddress\";\nvar _lADT = \"lastAttemptedDiscoveryTime\";\nvar _lAZ = \"launchedAvailabilityZone\";\nvar _lAa = \"lastAddress\";\nvar _lBA = \"loadBalancerArn\";\nvar _lBAE = \"localBgpAsnExtended\";\nvar _lBAo = \"localBgpAsn\";\nvar _lBC = \"loadBalancersConfig\";\nvar _lBLP = \"loadBalancerListenerPort\";\nvar _lBO = \"loadBalancerOptions\";\nvar _lBP = \"loadBalancerPort\";\nvar _lBS = \"loadBalancerSet\";\nvar _lBT = \"loadBalancerTarget\";\nvar _lBTG = \"loadBalancerTargetGroup\";\nvar _lBTGS = \"loadBalancerTargetGroupSet\";\nvar _lBTP = \"loadBalancerTargetPort\";\nvar _lC = \"loggingConfiguration\";\nvar _lCA = \"licenseConfigurationArn\";\nvar _lCO = \"lockCreatedOn\";\nvar _lCS = \"loggingConfigurationSet\";\nvar _lD = \"logDestination\";\nvar _lDST = \"lockDurationStartTime\";\nvar _lDT = \"logDestinationType\";\nvar _lDo = \"lockDuration\";\nvar _lE = \"logEnabled\";\nvar _lEO = \"lockExpiresOn\";\nvar _lET = \"lastEvaluatedTime\";\nvar _lEa = \"lastError\";\nvar _lF = \"logFormat\";\nvar _lFA = \"lambdaFunctionArn\";\nvar _lG = \"launchGroup\";\nvar _lGA = \"logGroupArn\";\nvar _lGI = \"localGatewayId\";\nvar _lGN = \"logGroupName\";\nvar _lGRT = \"localGatewayRouteTable\";\nvar _lGRTA = \"localGatewayRouteTableArn\";\nvar _lGRTI = \"localGatewayRouteTableId\";\nvar _lGRTS = \"localGatewayRouteTableSet\";\nvar _lGRTVA = \"localGatewayRouteTableVpcAssociation\";\nvar _lGRTVAI = \"localGatewayRouteTableVpcAssociationId\";\nvar _lGRTVAS = \"localGatewayRouteTableVpcAssociationSet\";\nvar _lGRTVIGA = \"localGatewayRouteTableVirtualInterfaceGroupAssociation\";\nvar _lGRTVIGAI = \"localGatewayRouteTableVirtualInterfaceGroupAssociationId\";\nvar _lGRTVIGAS = \"localGatewayRouteTableVirtualInterfaceGroupAssociationSet\";\nvar _lGS = \"localGatewaySet\";\nvar _lGVI = \"localGatewayVirtualInterface\";\nvar _lGVIA = \"localGatewayVirtualInterfaceArn\";\nvar _lGVIG = \"localGatewayVirtualInterfaceGroup\";\nvar _lGVIGA = \"localGatewayVirtualInterfaceGroupArn\";\nvar _lGVIGI = \"localGatewayVirtualInterfaceGroupId\";\nvar _lGVIGS = \"localGatewayVirtualInterfaceGroupSet\";\nvar _lGVII = \"localGatewayVirtualInterfaceId\";\nvar _lGVIIS = \"localGatewayVirtualInterfaceIdSet\";\nvar _lGVIS = \"localGatewayVirtualInterfaceSet\";\nvar _lGo = \"logGroup\";\nvar _lINC = \"localIpv4NetworkCidr\";\nvar _lINCo = \"localIpv6NetworkCidr\";\nvar _lLT = \"lastLaunchedTime\";\nvar _lMA = \"lastMaintenanceApplied\";\nvar _lO = \"logOptions\";\nvar _lOF = \"logOutputFormat\";\nvar _lP = \"loadPermissions\";\nvar _lPa = \"launchPermission\";\nvar _lS = \"licenseSpecifications\";\nvar _lSC = \"lastStatusChange\";\nvar _lSDT = \"lastSuccessfulDiscoveryTime\";\nvar _lSTS = \"localStorageTypeSet\";\nvar _lSa = \"launchSpecifications\";\nvar _lSau = \"launchSpecification\";\nvar _lSi = \"licenseSet\";\nvar _lSo = \"localStorage\";\nvar _lSoc = \"lockState\";\nvar _lT = \"launchTemplate\";\nvar _lTAO = \"launchTemplateAndOverrides\";\nvar _lTC = \"launchTemplateConfigs\";\nvar _lTD = \"launchTemplateData\";\nvar _lTI = \"launchTemplateId\";\nvar _lTN = \"launchTemplateName\";\nvar _lTOS = \"lastTieringOperationStatus\";\nvar _lTOSD = \"lastTieringOperationStatusDetail\";\nvar _lTP = \"lastTieringProgress\";\nvar _lTS = \"launchTemplateSpecification\";\nvar _lTST = \"lastTieringStartTime\";\nvar _lTV = \"launchTemplateVersion\";\nvar _lTVS = \"launchTemplateVersionSet\";\nvar _lTa = \"launchTemplates\";\nvar _lTau = \"launchTime\";\nvar _lTi = \"licenseType\";\nvar _lTo = \"locationType\";\nvar _lUT = \"lastUpdateTime\";\nvar _lUTa = \"lastUpdatedTime\";\nvar _lUTas = \"lastUpdateTimestamp\";\nvar _lV = \"logVersion\";\nvar _lVN = \"latestVersionNumber\";\nvar _lo = \"location\";\nvar _loc = \"locale\";\nvar _m = \"min\";\nvar _mA = \"mutualAuthentication\";\nvar _mAAA = \"maintenanceAutoAppliedAfter\";\nvar _mAE = \"multiAttachEnabled\";\nvar _mAI = \"maxAggregationInterval\";\nvar _mAIe = \"mediaAcceleratorInfo\";\nvar _mASS = \"movingAddressStatusSet\";\nvar _mAa = \"macAddress\";\nvar _mAe = \"meteredAccount\";\nvar _mB = \"managedBy\";\nvar _mBIM = \"maximumBandwidthInMbps\";\nvar _mC = \"missingComponent\";\nvar _mCOIOL = \"mapCustomerOwnedIpOnLaunch\";\nvar _mD = \"maintenanceDetails\";\nvar _mDA = \"multicastDomainAssociations\";\nvar _mDK = \"metaDataKey\";\nvar _mDV = \"metaDataValue\";\nvar _mDe = \"metaData\";\nvar _mE = \"maxEntries\";\nvar _mEI = \"maximumEfaInterfaces\";\nvar _mEM = \"managedExceptionMessage\";\nvar _mEQC = \"maximumEnaQueueCount\";\nvar _mEQCPI = \"maximumEnaQueueCountPerInterface\";\nvar _mFV = \"mostFrequentValue\";\nvar _mG = \"multicastGroups\";\nvar _mGBPVC = \"memoryGiBPerVCpu\";\nvar _mHS = \"macHostSet\";\nvar _mI = \"maximumIops\";\nvar _mIe = \"memoryInfo\";\nvar _mMB = \"memoryMiB\";\nvar _mNC = \"maximumNetworkCards\";\nvar _mNI = \"maximumNetworkInterfaces\";\nvar _mO = \"metadataOptions\";\nvar _mOSLRG = \"memberOfServiceLinkedResourceGroup\";\nvar _mOSLSVS = \"macOSLatestSupportedVersionSet\";\nvar _mOa = \"maintenanceOptions\";\nvar _mP = \"maxPrice\";\nvar _mPIOL = \"mapPublicIpOnLaunch\";\nvar _mPL = \"maxParallelLaunches\";\nvar _mPS = \"metricPointSet\";\nvar _mPSa = \"matchPathSet\";\nvar _mR = \"maxResults\";\nvar _mRS = \"modificationResultSet\";\nvar _mS = \"messageSet\";\nvar _mSPAPOOODP = \"maxSpotPriceAsPercentageOfOptimalOnDemandPrice\";\nvar _mSa = \"managementState\";\nvar _mSai = \"maintenanceStrategies\";\nvar _mSo = \"moveStatus\";\nvar _mSod = \"modificationState\";\nvar _mSu = \"multicastSupport\";\nvar _mT = \"marketType\";\nvar _mTC = \"minTargetCapacity\";\nvar _mTDID = \"maxTermDurationInDays\";\nvar _mTDIDi = \"minTermDurationInDays\";\nvar _mTIMB = \"maximumThroughputInMBps\";\nvar _mTP = \"maxTotalPrice\";\nvar _mTe = \"memberType\";\nvar _mVE = \"managesVpcEndpoints\";\nvar _ma = \"max\";\nvar _mai = \"main\";\nvar _man = \"manufacturer\";\nvar _mana = \"managed\";\nvar _mar = \"marketplace\";\nvar _me = \"message\";\nvar _med = \"med\";\nvar _mem = \"member\";\nvar _met = \"metric\";\nvar _mo = \"monitoring\";\nvar _mod = \"mode\";\nvar _n = \"name\";\nvar _nA = \"networkAcl\";\nvar _nAAI = \"networkAclAssociationId\";\nvar _nAI = \"networkAclId\";\nvar _nAIe = \"newAssociationId\";\nvar _nAOO = \"nativeApplicationOidcOptions\";\nvar _nAS = \"networkAclSet\";\nvar _nAo = \"notAfter\";\nvar _nB = \"notBefore\";\nvar _nBD = \"notBeforeDeadline\";\nvar _nBG = \"networkBorderGroup\";\nvar _nBGe = \"networkBandwidthGbps\";\nvar _nC = \"networkCards\";\nvar _nCI = \"networkCardIndex\";\nvar _nD = \"noDevice\";\nvar _nDe = \"neuronDevices\";\nvar _nES = \"nitroEnclavesSupport\";\nvar _nG = \"natGateway\";\nvar _nGAS = \"natGatewayAddressSet\";\nvar _nGI = \"natGatewayId\";\nvar _nGS = \"natGatewaySet\";\nvar _nHI = \"nextHopIp\";\nvar _nI = \"networkId\";\nvar _nIA = \"networkInsightsAnalysis\";\nvar _nIAA = \"networkInsightsAnalysisArn\";\nvar _nIAI = \"networkInsightsAnalysisId\";\nvar _nIAS = \"networkInsightsAccessScope\";\nvar _nIASA = \"networkInsightsAccessScopeArn\";\nvar _nIASAA = \"networkInsightsAccessScopeAnalysisArn\";\nvar _nIASAI = \"networkInsightsAccessScopeAnalysisId\";\nvar _nIASAS = \"networkInsightsAccessScopeAnalysisSet\";\nvar _nIASAe = \"networkInsightsAccessScopeAnalysis\";\nvar _nIASC = \"networkInsightsAccessScopeContent\";\nvar _nIASI = \"networkInsightsAccessScopeId\";\nvar _nIASS = \"networkInsightsAccessScopeSet\";\nvar _nIASe = \"networkInsightsAnalysisSet\";\nvar _nIASet = \"networkInterfaceAttachmentStatus\";\nvar _nIC = \"networkInterfaceCount\";\nvar _nID = \"networkInterfaceDescription\";\nvar _nII = \"networkInterfaceId\";\nvar _nIIS = \"networkInterfaceIdSet\";\nvar _nIO = \"networkInterfaceOptions\";\nvar _nIOI = \"networkInterfaceOwnerId\";\nvar _nIP = \"networkInsightsPath\";\nvar _nIPA = \"networkInsightsPathArn\";\nvar _nIPI = \"networkInsightsPathId\";\nvar _nIPIe = \"networkInterfacePermissionId\";\nvar _nIPS = \"networkInsightsPathSet\";\nvar _nIPe = \"networkInterfacePermissions\";\nvar _nIS = \"networkInterfaceSet\";\nvar _nIe = \"networkInterface\";\nvar _nIet = \"networkInfo\";\nvar _nIeu = \"neuronInfo\";\nvar _nL = \"netmaskLength\";\nvar _nLBA = \"networkLoadBalancerArn\";\nvar _nLBAS = \"networkLoadBalancerArnSet\";\nvar _nNS = \"networkNodeSet\";\nvar _nOA = \"numberOfAccounts\";\nvar _nOFA = \"numberOfFailedAccounts\";\nvar _nOMA = \"numberOfMatchedAccounts\";\nvar _nOUA = \"numberOfUnmatchedAccounts\";\nvar _nP = \"networkPerformance\";\nvar _nPF = \"networkPathFound\";\nvar _nPO = \"networkPerformanceOptions\";\nvar _nPe = \"networkPlatform\";\nvar _nS = \"nvmeSupport\";\nvar _nSS = \"networkServiceSet\";\nvar _nSST = \"nextSlotStartTime\";\nvar _nSa = \"nameserverSet\";\nvar _nT = \"networkType\";\nvar _nTI = \"nitroTpmInfo\";\nvar _nTS = \"nitroTpmSupport\";\nvar _nTe = \"nextToken\";\nvar _o = \"origin\";\nvar _oA = \"outpostArn\";\nvar _oAr = \"organizationArn\";\nvar _oAw = \"ownerAlias\";\nvar _oC = \"offeringClass\";\nvar _oDAS = \"onDemandAllocationStrategy\";\nvar _oDFC = \"onDemandFulfilledCapacity\";\nvar _oDMPPOLP = \"onDemandMaxPricePercentageOverLowestPrice\";\nvar _oDMTP = \"onDemandMaxTotalPrice\";\nvar _oDO = \"onDemandOptions\";\nvar _oDS = \"occurrenceDaySet\";\nvar _oDTC = \"onDemandTargetCapacity\";\nvar _oEP = \"organizationsEntityPath\";\nvar _oH = \"outboundHeader\";\nvar _oI = \"ownerId\";\nvar _oIA = \"outsideIpAddress\";\nvar _oIAT = \"outsideIpAddressType\";\nvar _oIS = \"optInStatus\";\nvar _oIf = \"offeringId\";\nvar _oIr = \"originalIops\";\nvar _oIu = \"outpostId\";\nvar _oK = \"objectKey\";\nvar _oLI = \"outpostLagId\";\nvar _oLS = \"outpostLagSet\";\nvar _oMAE = \"originalMultiAttachEnabled\";\nvar _oO = \"oidcOptions\";\nvar _oRIWEA = \"outputReservedInstancesWillExpireAt\";\nvar _oRS = \"operatingRegionSet\";\nvar _oRTE = \"occurrenceRelativeToEnd\";\nvar _oS = \"offeringSet\";\nvar _oST = \"oldestSampleTime\";\nvar _oSr = \"originalSize\";\nvar _oSv = \"overlapStatus\";\nvar _oT = \"optimizingTime\";\nvar _oTf = \"offeringType\";\nvar _oTr = \"originalThroughput\";\nvar _oU = \"occurrenceUnit\";\nvar _oUA = \"organizationalUnitArn\";\nvar _oUES = \"organizationalUnitExclusionSet\";\nvar _oUI = \"organizationalUnitId\";\nvar _oVCS = \"openVpnConfigurationSet\";\nvar _oVT = \"originalVolumeType\";\nvar _op = \"operator\";\nvar _opt = \"options\";\nvar _ou = \"output\";\nvar _ov = \"overrides\";\nvar _ow = \"owner\";\nvar _p = \"principal\";\nvar _pA = \"poolArn\";\nvar _pAI = \"peeringAttachmentId\";\nvar _pAR = \"poolAddressRange\";\nvar _pARS = \"poolAddressRangeSet\";\nvar _pAe = \"peerAddress\";\nvar _pAee = \"peerAsn\";\nvar _pAu = \"publiclyAdvertisable\";\nvar _pB = \"provisionedBandwidth\";\nvar _pBA = \"peerBgpAsn\";\nvar _pBAE = \"peerBgpAsnExtended\";\nvar _pBIG = \"peakBandwidthInGbps\";\nvar _pC = \"productCodes\";\nvar _pCB = \"poolCidrBlock\";\nvar _pCBS = \"poolCidrBlockSet\";\nvar _pCI = \"preserveClientIp\";\nvar _pCNI = \"peerCoreNetworkId\";\nvar _pCS = \"poolCidrSet\";\nvar _pCSS = \"postureComplianceStatusSet\";\nvar _pCa = \"partitionCount\";\nvar _pCo = \"poolCount\";\nvar _pCr = \"productCode\";\nvar _pD = \"passwordData\";\nvar _pDE = \"privateDnsEnabled\";\nvar _pDEr = \"privateDnsEntry\";\nvar _pDHGNS = \"phase1DHGroupNumberSet\";\nvar _pDHGNSh = \"phase2DHGroupNumberSet\";\nvar _pDN = \"privateDnsName\";\nvar _pDNC = \"privateDnsNameConfiguration\";\nvar _pDNO = \"privateDnsNameOptions\";\nvar _pDNOOL = \"privateDnsNameOptionsOnLaunch\";\nvar _pDNS = \"privateDnsNameSet\";\nvar _pDNVS = \"privateDnsNameVerificationState\";\nvar _pDNu = \"publicDnsName\";\nvar _pDOFIRE = \"privateDnsOnlyForInboundResolverEndpoint\";\nvar _pDRTI = \"propagationDefaultRouteTableId\";\nvar _pDS = \"pricingDetailsSet\";\nvar _pDSI = \"publicDefaultScopeId\";\nvar _pDSIr = \"privateDefaultScopeId\";\nvar _pDa = \"paymentDue\";\nvar _pDl = \"platformDetails\";\nvar _pDo = \"policyDocument\";\nvar _pDoo = \"poolDepth\";\nvar _pDr = \"productDescription\";\nvar _pE = \"policyEnabled\";\nvar _pEAS = \"phase1EncryptionAlgorithmSet\";\nvar _pEASh = \"phase2EncryptionAlgorithmSet\";\nvar _pEk = \"pkceEnabled\";\nvar _pF = \"packetField\";\nvar _pFS = \"previousFleetState\";\nvar _pG = \"placementGroup\";\nvar _pGA = \"placementGroupArn\";\nvar _pGI = \"placementGroupInfo\";\nvar _pGS = \"placementGroupSet\";\nvar _pHP = \"perHourPartition\";\nvar _pHS = \"packetHeaderStatement\";\nvar _pI = \"publicIp\";\nvar _pIA = \"privateIpAddress\";\nvar _pIAS = \"privateIpAddressesSet\";\nvar _pIASh = \"phase1IntegrityAlgorithmSet\";\nvar _pIASha = \"phase2IntegrityAlgorithmSet\";\nvar _pIP = \"publicIpv4Pool\";\nvar _pIPI = \"publicIpv4PoolId\";\nvar _pIPS = \"publicIpv4PoolSet\";\nvar _pIS = \"publicIpSource\";\nvar _pIc = \"pciId\";\nvar _pIo = \"poolId\";\nvar _pIr = \"processorInfo\";\nvar _pIri = \"primaryIpv6\";\nvar _pIriv = \"privateIp\";\nvar _pK = \"publicKey\";\nvar _pL = \"prefixList\";\nvar _pLA = \"prefixListArn\";\nvar _pLAS = \"prefixListAssociationSet\";\nvar _pLD = \"peerLivenessDetection\";\nvar _pLI = \"prefixListId\";\nvar _pLIr = \"prefixListIds\";\nvar _pLN = \"prefixListName\";\nvar _pLOI = \"prefixListOwnerId\";\nvar _pLS = \"prefixListSet\";\nvar _pLSh = \"phase1LifetimeSeconds\";\nvar _pLSha = \"phase2LifetimeSeconds\";\nvar _pLa = \"packetLength\";\nvar _pM = \"pendingMaintenance\";\nvar _pN = \"partitionNumber\";\nvar _pO = \"paymentOption\";\nvar _pOe = \"peeringOptions\";\nvar _pP = \"progressPercentage\";\nvar _pR = \"ptrRecord\";\nvar _pRD = \"persistRoutesDuration\";\nvar _pRN = \"policyRuleNumber\";\nvar _pRNo = \"policyReferenceName\";\nvar _pRS = \"portRangeSet\";\nvar _pRSe = \"persistRoutesState\";\nvar _pRU = \"ptrRecordUpdate\";\nvar _pRa = \"payerResponsibility\";\nvar _pRo = \"portRange\";\nvar _pRol = \"policyRule\";\nvar _pS = \"previousState\";\nvar _pSET = \"previousSlotEndTime\";\nvar _pSFRS = \"previousSpotFleetRequestState\";\nvar _pSK = \"preSharedKey\";\nvar _pSKE = \"publicSigningKeyEndpoint\";\nvar _pSKU = \"publicSigningKeyUrl\";\nvar _pSe = \"permissionState\";\nvar _pSee = \"peeringStatus\";\nvar _pSh = \"phcSupport\";\nvar _pSr = \"principalSet\";\nvar _pSre = \"previousStatus\";\nvar _pSri = \"priceSchedules\";\nvar _pSro = \"protocolSet\";\nvar _pT = \"principalType\";\nvar _pTGI = \"peerTransitGatewayId\";\nvar _pTr = \"provisionTime\";\nvar _pTu = \"purchaseToken\";\nvar _pVI = \"primaryVpcId\";\nvar _pVS = \"propagatingVgwSet\";\nvar _pZI = \"parentZoneId\";\nvar _pZN = \"parentZoneName\";\nvar _pe = \"period\";\nvar _per = \"permission\";\nvar _pl = \"platform\";\nvar _pla = \"placement\";\nvar _po = \"port\";\nvar _pr = \"protocol\";\nvar _pre = \"prefix\";\nvar _pri = \"priority\";\nvar _pric = \"price\";\nvar _prim = \"primary\";\nvar _pro = \"progress\";\nvar _prop = \"propagation\";\nvar _prov = \"provisioned\";\nvar _pu = \"public\";\nvar _pur = \"purchase\";\nvar _r = \"return\";\nvar _rA = \"ruleAction\";\nvar _rAE = \"remoteAccessEnabled\";\nvar _rAe = \"resourceArn\";\nvar _rB = \"requestedBy\";\nvar _rBET = \"recycleBinEnterTime\";\nvar _rBETe = \"recycleBinExitTime\";\nvar _rC = \"returnCode\";\nvar _rCA = \"resourceConfigurationArn\";\nvar _rCGA = \"resourceConfigurationGroupArn\";\nvar _rCS = \"resourceComplianceStatus\";\nvar _rCe = \"resourceCidr\";\nvar _rCec = \"recurringCharges\";\nvar _rD = \"restoreDuration\";\nvar _rDAC = \"resourceDiscoveryAssociationCount\";\nvar _rDCA = \"rdsDbClusterArn\";\nvar _rDI = \"ramDiskId\";\nvar _rDIA = \"rdsDbInstanceArn\";\nvar _rDN = \"rootDeviceName\";\nvar _rDPA = \"rdsDbProxyArn\";\nvar _rDS = \"resourceDiscoveryStatus\";\nvar _rDT = \"rootDeviceType\";\nvar _rE = \"responseError\";\nvar _rET = \"restoreExpiryTime\";\nvar _rEd = \"rdsEndpoint\";\nvar _rEe = \"regionEndpoint\";\nvar _rEes = \"resourceExclusions\";\nvar _rFP = \"rekeyFuzzPercentage\";\nvar _rGA = \"ruleGroupArn\";\nvar _rGI = \"referencedGroupId\";\nvar _rGIe = \"referencedGroupInfo\";\nvar _rGROPS = \"ruleGroupRuleOptionsPairSet\";\nvar _rGT = \"ruleGroupType\";\nvar _rGTPS = \"ruleGroupTypePairSet\";\nvar _rHS = \"requireHibernateSupport\";\nvar _rI = \"reportId\";\nvar _rIDS = \"routeInstallationDetailSet\";\nvar _rII = \"reservedInstancesId\";\nvar _rIIe = \"reservedInstanceId\";\nvar _rILI = \"reservedInstancesListingId\";\nvar _rILS = \"reservedInstancesListingsSet\";\nvar _rIMI = \"reservedInstancesModificationId\";\nvar _rIMS = \"reservedInstancesModificationsSet\";\nvar _rINC = \"remoteIpv4NetworkCidr\";\nvar _rINCe = \"remoteIpv6NetworkCidr\";\nvar _rIOI = \"reservedInstancesOfferingId\";\nvar _rIOS = \"reservedInstancesOfferingsSet\";\nvar _rIS = \"reservedInstancesSet\";\nvar _rISR = \"routeInstallationStatusReason\";\nvar _rISo = \"routeInstallationStatus\";\nvar _rIVR = \"reservedInstanceValueRollup\";\nvar _rIVS = \"reservedInstanceValueSet\";\nvar _rIa = \"ramdiskId\";\nvar _rIe = \"regionInfo\";\nvar _rIeq = \"requesterId\";\nvar _rIes = \"resourceId\";\nvar _rIese = \"reservationId\";\nvar _rM = \"requesterManaged\";\nvar _rMGM = \"registeredMulticastGroupMembers\";\nvar _rMGS = \"registeredMulticastGroupSources\";\nvar _rMTS = \"rekeyMarginTimeSeconds\";\nvar _rN = \"ruleNumber\";\nvar _rNII = \"registeredNetworkInterfaceIds\";\nvar _rNe = \"regionName\";\nvar _rNes = \"resourceName\";\nvar _rNo = \"roleName\";\nvar _rO = \"resourceOwner\";\nvar _rOI = \"resourceOwnerId\";\nvar _rOS = \"ruleOptionSet\";\nvar _rOSe = \"resourceOverlapStatus\";\nvar _rOd = \"rdsOptions\";\nvar _rOo = \"routeOrigin\";\nvar _rPCO = \"requesterPeeringConnectionOptions\";\nvar _rPCS = \"returnPathComponentSet\";\nvar _rR = \"resourceRegion\";\nvar _rRVT = \"replaceRootVolumeTask\";\nvar _rRVTI = \"replaceRootVolumeTaskId\";\nvar _rRVTS = \"replaceRootVolumeTaskSet\";\nvar _rS = \"referenceSet\";\nvar _rSA = \"routeServerAssociation\";\nvar _rSAS = \"routeServerAssociationSet\";\nvar _rSE = \"routeServerEndpoint\";\nvar _rSEI = \"routeServerEndpointId\";\nvar _rSES = \"routeServerEndpointSet\";\nvar _rSGRS = \"revokedSecurityGroupRuleSet\";\nvar _rSI = \"routeServerId\";\nvar _rSP = \"routeServerPeer\";\nvar _rSPI = \"routeServerPeerId\";\nvar _rSPS = \"routeServerPeerSet\";\nvar _rSPSo = \"routeServerPropagationSet\";\nvar _rSPo = \"routeServerPropagation\";\nvar _rSS = \"regionalSummarySet\";\nvar _rSSo = \"routeServerSet\";\nvar _rST = \"restoreStartTime\";\nvar _rSe = \"reportSet\";\nvar _rSep = \"replacementStrategy\";\nvar _rSes = \"reservationSet\";\nvar _rSeso = \"resourceStatement\";\nvar _rSesou = \"resourceSet\";\nvar _rSo = \"routeServer\";\nvar _rSou = \"routeSet\";\nvar _rSout = \"routeStatus\";\nvar _rT = \"reservationType\";\nvar _rTAI = \"routeTableAssociationId\";\nvar _rTI = \"routeTableId\";\nvar _rTIS = \"routeTableIdSet\";\nvar _rTIe = \"requesterTgwInfo\";\nvar _rTR = \"routeTableRoute\";\nvar _rTS = \"routeTableSet\";\nvar _rTSe = \"resourceTagSet\";\nvar _rTSes = \"resourceTypeSet\";\nvar _rTV = \"remainingTotalValue\";\nvar _rTe = \"resourceType\";\nvar _rTel = \"releaseTime\";\nvar _rTeq = \"requestTime\";\nvar _rTo = \"routeTable\";\nvar _rUI = \"replaceUnhealthyInstances\";\nvar _rUV = \"remainingUpfrontValue\";\nvar _rV = \"returnValue\";\nvar _rVI = \"referencingVpcId\";\nvar _rVIe = \"requesterVpcInfo\";\nvar _rVe = \"reservationValue\";\nvar _rWS = \"replayWindowSize\";\nvar _ra = \"ramdisk\";\nvar _re = \"region\";\nvar _rea = \"reason\";\nvar _rec = \"recurrence\";\nvar _req = \"requested\";\nvar _res = \"result\";\nvar _reso = \"resource\";\nvar _ro = \"route\";\nvar _rou = \"routes\";\nvar _s = \"source\";\nvar _sA = \"sourceArn\";\nvar _sAS = \"sourceAddressSet\";\nvar _sASu = \"suggestedAccountSet\";\nvar _sAZ = \"singleAvailabilityZone\";\nvar _sAo = \"sourceAddress\";\nvar _sAt = \"startupAction\";\nvar _sAu = \"supportedArchitectures\";\nvar _sAub = \"subnetArn\";\nvar _sB = \"s3Bucket\";\nvar _sBM = \"supportedBootModes\";\nvar _sC = \"serviceConfiguration\";\nvar _sCA = \"serverCertificateArn\";\nvar _sCAE = \"serialConsoleAccessEnabled\";\nvar _sCB = \"sourceCidrBlock\";\nvar _sCR = \"sourceCapacityReservation\";\nvar _sCRI = \"subnetCidrReservationId\";\nvar _sCRu = \"subnetCidrReservation\";\nvar _sCS = \"serviceConfigurationSet\";\nvar _sCSIG = \"sustainedClockSpeedInGhz\";\nvar _sCc = \"scopeCount\";\nvar _sCn = \"snapshotConfiguration\";\nvar _sD = \"startDate\";\nvar _sDC = \"sourceDestCheck\";\nvar _sDIH = \"slotDurationInHours\";\nvar _sDLTVS = \"successfullyDeletedLaunchTemplateVersionSet\";\nvar _sDS = \"spotDatafeedSubscription\";\nvar _sDSe = \"serviceDetailSet\";\nvar _sDSn = \"snapshotDetailSet\";\nvar _sDp = \"spreadDomain\";\nvar _sDu = \"subDomain\";\nvar _sEL = \"s3ExportLocation\";\nvar _sET = \"sampledEndTime\";\nvar _sF = \"supportedFeatures\";\nvar _sFCS = \"successfulFleetCancellationSet\";\nvar _sFDS = \"successfulFleetDeletionSet\";\nvar _sFRC = \"spotFleetRequestConfig\";\nvar _sFRCS = \"spotFleetRequestConfigSet\";\nvar _sFRI = \"spotFleetRequestId\";\nvar _sFRS = \"successfulFleetRequestSet\";\nvar _sFRSp = \"spotFleetRequestState\";\nvar _sG = \"securityGroup\";\nvar _sGA = \"securityGroupArn\";\nvar _sGFVS = \"securityGroupForVpcSet\";\nvar _sGI = \"securityGroupId\";\nvar _sGIS = \"securityGroupIdSet\";\nvar _sGIe = \"securityGroupIds\";\nvar _sGIec = \"securityGroupInfo\";\nvar _sGR = \"securityGroupRule\";\nvar _sGRA = \"securityGroupRuleArn\";\nvar _sGRI = \"securityGroupRuleId\";\nvar _sGRS = \"securityGroupRuleSet\";\nvar _sGRSe = \"securityGroupReferenceSet\";\nvar _sGRSec = \"securityGroupReferencingSupport\";\nvar _sGS = \"securityGroupSet\";\nvar _sGVAS = \"securityGroupVpcAssociationSet\";\nvar _sGe = \"securityGroups\";\nvar _sH = \"startHour\";\nvar _sI = \"serviceId\";\nvar _sIAS = \"scheduledInstanceAvailabilitySet\";\nvar _sIATS = \"supportedIpAddressTypeSet\";\nvar _sICRS = \"subnetIpv4CidrReservationSet\";\nvar _sICRSu = \"subnetIpv6CidrReservationSet\";\nvar _sICSS = \"successfulInstanceCreditSpecificationSet\";\nvar _sIGB = \"sizeInGB\";\nvar _sII = \"sourceInstanceId\";\nvar _sIIc = \"scheduledInstanceId\";\nvar _sIIo = \"sourceImageId\";\nvar _sIMB = \"sizeInMiB\";\nvar _sIP = \"staleIpPermissions\";\nvar _sIPE = \"staleIpPermissionsEgress\";\nvar _sIPI = \"sourceIpamPoolId\";\nvar _sIR = \"sourceImageRegion\";\nvar _sIRI = \"spotInstanceRequestId\";\nvar _sIRS = \"spotInstanceRequestSet\";\nvar _sIS = \"scheduledInstanceSet\";\nvar _sISu = \"subnetIdSet\";\nvar _sIT = \"spotInstanceType\";\nvar _sITRS = \"storeImageTaskResultSet\";\nvar _sITi = \"singleInstanceType\";\nvar _sIn = \"snapshotId\";\nvar _sIo = \"sourceIp\";\nvar _sIu = \"subnetId\";\nvar _sIub = \"subnetIds\";\nvar _sK = \"s3Key\";\nvar _sKo = \"s3objectKey\";\nvar _sL = \"s3Location\";\nvar _sLVIA = \"serviceLinkVirtualInterfaceArn\";\nvar _sLVII = \"serviceLinkVirtualInterfaceId\";\nvar _sLVIIS = \"serviceLinkVirtualInterfaceIdSet\";\nvar _sLVIS = \"serviceLinkVirtualInterfaceSet\";\nvar _sLp = \"spreadLevel\";\nvar _sM = \"serviceManaged\";\nvar _sMPPOLP = \"spotMaxPricePercentageOverLowestPrice\";\nvar _sMS = \"spotMaintenanceStrategies\";\nvar _sMTP = \"spotMaxTotalPrice\";\nvar _sMt = \"statusMessage\";\nvar _sMta = \"stateMessage\";\nvar _sN = \"serviceName\";\nvar _sNA = \"serviceNetworkArn\";\nvar _sNE = \"snsNotificationsEnabled\";\nvar _sNN = \"serviceNetworkName\";\nvar _sNS = \"serviceNameSet\";\nvar _sNSr = \"sriovNetSupport\";\nvar _sNe = \"sequenceNumber\";\nvar _sNes = \"sessionNumber\";\nvar _sO = \"spotOptions\";\nvar _sP = \"s3Prefix\";\nvar _sPA = \"samlProviderArn\";\nvar _sPHS = \"spotPriceHistorySet\";\nvar _sPI = \"servicePermissionId\";\nvar _sPIAC = \"secondaryPrivateIpAddressCount\";\nvar _sPLS = \"sourcePrefixListSet\";\nvar _sPR = \"sourcePortRange\";\nvar _sPRS = \"sourcePortRangeSet\";\nvar _sPS = \"sourcePortSet\";\nvar _sPSS = \"spotPlacementScoreSet\";\nvar _sPp = \"spotPrice\";\nvar _sQPDS = \"successfulQueuedPurchaseDeletionSet\";\nvar _sR = \"serviceRegion\";\nvar _sRDT = \"supportedRootDeviceTypes\";\nvar _sRO = \"staticRoutesOnly\";\nvar _sRS = \"supportedRegionSet\";\nvar _sRT = \"subnetRouteTable\";\nvar _sRe = \"serviceResource\";\nvar _sRo = \"sourceResource\";\nvar _sRt = \"stateReason\";\nvar _sS = \"snapshotSet\";\nvar _sSGS = \"staleSecurityGroupSet\";\nvar _sSPU = \"selfServicePortalUrl\";\nvar _sSS = \"staticSourcesSupport\";\nvar _sSSPA = \"selfServiceSamlProviderArn\";\nvar _sST = \"sampledStartTime\";\nvar _sSe = \"settingSet\";\nvar _sSer = \"serviceState\";\nvar _sSo = \"sourceSet\";\nvar _sSs = \"sseSpecification\";\nvar _sSt = \"statusSet\";\nvar _sSu = \"subscriptionSet\";\nvar _sSub = \"subnetSet\";\nvar _sSup = \"supportedStrategies\";\nvar _sSy = \"systemStatus\";\nvar _sT = \"startTime\";\nvar _sTA = \"snsTopicArn\";\nvar _sTC = \"spotTargetCapacity\";\nvar _sTD = \"snapshotTaskDetail\";\nvar _sTFR = \"storeTaskFailureReason\";\nvar _sTH = \"sessionTimeoutHours\";\nvar _sTR = \"stateTransitionReason\";\nvar _sTS = \"storeTaskState\";\nvar _sTSS = \"snapshotTierStatusSet\";\nvar _sTT = \"stateTransitionTime\";\nvar _sTa = \"sampleTime\";\nvar _sTe = \"serviceType\";\nvar _sTo = \"sourceType\";\nvar _sTp = \"splitTunnel\";\nvar _sTs = \"sseType\";\nvar _sTt = \"storageTier\";\nvar _sUC = \"supportedUsageClasses\";\nvar _sV = \"sourceVpc\";\nvar _sVT = \"supportedVirtualizationTypes\";\nvar _sVh = \"shellVersion\";\nvar _sVu = \"supportedVersions\";\nvar _sWD = \"startWeekDay\";\nvar _s_ = \"s3\";\nvar _sc = \"scope\";\nvar _sco = \"score\";\nvar _scop = \"scopes\";\nvar _se = \"service\";\nvar _si = \"size\";\nvar _so = \"sockets\";\nvar _sof = \"software\";\nvar _st = \"state\";\nvar _sta = \"status\";\nvar _star = \"start\";\nvar _stat = \"statistic\";\nvar _sto = \"storage\";\nvar _str = \"strategy\";\nvar _su = \"subnet\";\nvar _sub = \"subnets\";\nvar _suc = \"successful\";\nvar _succ = \"success\";\nvar _t = \"tenancy\";\nvar _tAAC = \"totalAvailableAddressCount\";\nvar _tAC = \"totalAddressCount\";\nvar _tAI = \"transferAccountId\";\nvar _tC = \"totalCapacity\";\nvar _tCS = \"targetCapacitySpecification\";\nvar _tCUT = \"targetCapacityUnitType\";\nvar _tCVR = \"targetConfigurationValueRollup\";\nvar _tCVS = \"targetConfigurationValueSet\";\nvar _tCa = \"targetConfiguration\";\nvar _tCar = \"targetCapacity\";\nvar _tD = \"terminationDelay\";\nvar _tDr = \"trafficDirection\";\nvar _tE = \"targetEnvironment\";\nvar _tED = \"termEndDate\";\nvar _tET = \"tcpEstablishedTimeout\";\nvar _tEo = \"tokenEndpoint\";\nvar _tFC = \"totalFulfilledCapacity\";\nvar _tFMIMB = \"totalFpgaMemoryInMiB\";\nvar _tG = \"transitGateway\";\nvar _tGA = \"transitGatewayAttachments\";\nvar _tGAI = \"transitGatewayAttachmentId\";\nvar _tGAP = \"transitGatewayAttachmentPropagations\";\nvar _tGAr = \"transitGatewayAttachment\";\nvar _tGAra = \"transitGatewayArn\";\nvar _tGAran = \"transitGatewayAsn\";\nvar _tGArans = \"transitGatewayAddress\";\nvar _tGC = \"transitGatewayConnect\";\nvar _tGCB = \"transitGatewayCidrBlocks\";\nvar _tGCP = \"transitGatewayConnectPeer\";\nvar _tGCPI = \"transitGatewayConnectPeerId\";\nvar _tGCPS = \"transitGatewayConnectPeerSet\";\nvar _tGCS = \"transitGatewayConnectSet\";\nvar _tGCa = \"targetGroupsConfig\";\nvar _tGI = \"transitGatewayId\";\nvar _tGMD = \"transitGatewayMulticastDomain\";\nvar _tGMDA = \"transitGatewayMulticastDomainArn\";\nvar _tGMDI = \"transitGatewayMulticastDomainId\";\nvar _tGMDr = \"transitGatewayMulticastDomains\";\nvar _tGMIMB = \"totalGpuMemoryInMiB\";\nvar _tGOI = \"transitGatewayOwnerId\";\nvar _tGPA = \"transitGatewayPeeringAttachment\";\nvar _tGPAr = \"transitGatewayPeeringAttachments\";\nvar _tGPLR = \"transitGatewayPrefixListReference\";\nvar _tGPLRS = \"transitGatewayPrefixListReferenceSet\";\nvar _tGPT = \"transitGatewayPolicyTable\";\nvar _tGPTE = \"transitGatewayPolicyTableEntries\";\nvar _tGPTI = \"transitGatewayPolicyTableId\";\nvar _tGPTr = \"transitGatewayPolicyTables\";\nvar _tGRT = \"transitGatewayRouteTable\";\nvar _tGRTA = \"transitGatewayRouteTableAnnouncement\";\nvar _tGRTAI = \"transitGatewayRouteTableAnnouncementId\";\nvar _tGRTAr = \"transitGatewayRouteTableAnnouncements\";\nvar _tGRTI = \"transitGatewayRouteTableId\";\nvar _tGRTP = \"transitGatewayRouteTablePropagations\";\nvar _tGRTR = \"transitGatewayRouteTableRoute\";\nvar _tGRTr = \"transitGatewayRouteTables\";\nvar _tGS = \"transitGatewaySet\";\nvar _tGVA = \"transitGatewayVpcAttachment\";\nvar _tGVAr = \"transitGatewayVpcAttachments\";\nvar _tGa = \"targetGroups\";\nvar _tHP = \"totalHourlyPrice\";\nvar _tI = \"targetId\";\nvar _tIC = \"totalInstanceCount\";\nvar _tICu = \"tunnelInsideCidr\";\nvar _tII = \"trunkInterfaceId\";\nvar _tIIC = \"tunnelInsideIpv6Cidr\";\nvar _tIIV = \"tunnelInsideIpVersion\";\nvar _tIMIMB = \"totalInferenceMemoryInMiB\";\nvar _tIWE = \"terminateInstancesWithExpiration\";\nvar _tIa = \"targetIops\";\nvar _tIe = \"tenantId\";\nvar _tLSGB = \"totalLocalStorageGB\";\nvar _tMAE = \"targetMultiAttachEnabled\";\nvar _tMF = \"trafficMirrorFilter\";\nvar _tMFI = \"trafficMirrorFilterId\";\nvar _tMFR = \"trafficMirrorFilterRule\";\nvar _tMFRI = \"trafficMirrorFilterRuleId\";\nvar _tMFRS = \"trafficMirrorFilterRuleSet\";\nvar _tMFS = \"trafficMirrorFilterSet\";\nvar _tMMIMB = \"totalMediaMemoryInMiB\";\nvar _tMS = \"trafficMirrorSession\";\nvar _tMSI = \"trafficMirrorSessionId\";\nvar _tMSS = \"trafficMirrorSessionSet\";\nvar _tMT = \"trafficMirrorTarget\";\nvar _tMTI = \"trafficMirrorTargetId\";\nvar _tMTS = \"trafficMirrorTargetSet\";\nvar _tN = \"tokenName\";\nvar _tNDMIMB = \"totalNeuronDeviceMemoryInMiB\";\nvar _tNI = \"targetNetworkId\";\nvar _tOAT = \"transferOfferAcceptedTimestamp\";\nvar _tOET = \"transferOfferExpirationTimestamp\";\nvar _tOS = \"tunnelOptionSet\";\nvar _tP = \"transportProtocol\";\nvar _tPC = \"threadsPerCore\";\nvar _tPT = \"trustProviderType\";\nvar _tPo = \"toPort\";\nvar _tRC = \"targetResourceCount\";\nvar _tRS = \"throughResourceSet\";\nvar _tRSi = \"timeRangeSet\";\nvar _tRTI = \"targetRouteTableId\";\nvar _tS = \"tagSet\";\nvar _tSD = \"termStartDate\";\nvar _tSIGB = \"totalSizeInGB\";\nvar _tSIH = \"totalScheduledInstanceHours\";\nvar _tSS = \"tagSpecificationSet\";\nvar _tST = \"tieringStartTime\";\nvar _tSTa = \"taskStartTime\";\nvar _tSa = \"targetSubnet\";\nvar _tSar = \"targetSize\";\nvar _tSas = \"taskState\";\nvar _tSp = \"tpmSupport\";\nvar _tT = \"trafficType\";\nvar _tTC = \"totalTargetCapacity\";\nvar _tTGAI = \"transportTransitGatewayAttachmentId\";\nvar _tTa = \"targetThroughput\";\nvar _tTr = \"transferType\";\nvar _tUP = \"totalUpfrontPrice\";\nvar _tV = \"tokenValue\";\nvar _tVC = \"totalVCpus\";\nvar _tVT = \"targetVolumeType\";\nvar _ta = \"tags\";\nvar _tag = \"tag\";\nvar _te = \"term\";\nvar _th = \"throughput\";\nvar _ti = \"timestamp\";\nvar _tie = \"tier\";\nvar _to = \"to\";\nvar _ty = \"type\";\nvar _u = \"unsuccessful\";\nvar _uB = \"userBucket\";\nvar _uD = \"uefiData\";\nvar _uDLTVS = \"unsuccessfullyDeletedLaunchTemplateVersionSet\";\nvar _uDp = \"updatedDate\";\nvar _uDpd = \"updateDate\";\nvar _uDs = \"userData\";\nvar _uF = \"upfrontFee\";\nvar _uFDS = \"unsuccessfulFleetDeletionSet\";\nvar _uFRS = \"unsuccessfulFleetRequestSet\";\nvar _uI = \"userId\";\nvar _uIA = \"unassignedIpv6Addresses\";\nvar _uIC = \"usedInstanceCount\";\nvar _uICSS = \"unsuccessfulInstanceCreditSpecificationSet\";\nvar _uIE = \"userInfoEndpoint\";\nvar _uIPS = \"unknownIpPermissionSet\";\nvar _uIPSn = \"unassignedIpv6PrefixSet\";\nvar _uLI = \"useLongIds\";\nvar _uLIA = \"useLongIdsAggregated\";\nvar _uO = \"usageOperation\";\nvar _uOUT = \"usageOperationUpdateTime\";\nvar _uP = \"upfrontPrice\";\nvar _uPS = \"uploadPolicySignature\";\nvar _uPp = \"uploadPolicy\";\nvar _uPs = \"usagePrice\";\nvar _uRBOI = \"unusedReservationBillingOwnerId\";\nvar _uS = \"usageStrategy\";\nvar _uST = \"udpStreamTimeout\";\nvar _uT = \"updateTime\";\nvar _uTP = \"userTrustProvider\";\nvar _uTPT = \"userTrustProviderType\";\nvar _uTd = \"udpTimeout\";\nvar _ur = \"url\";\nvar _us = \"username\";\nvar _v = \"value\";\nvar _vAE = \"verifiedAccessEndpoint\";\nvar _vAEI = \"verifiedAccessEndpointId\";\nvar _vAES = \"verifiedAccessEndpointSet\";\nvar _vAETD = \"verifiedAccessEndpointTargetDns\";\nvar _vAETIA = \"verifiedAccessEndpointTargetIpAddress\";\nvar _vAETS = \"verifiedAccessEndpointTargetSet\";\nvar _vAG = \"verifiedAccessGroup\";\nvar _vAGA = \"verifiedAccessGroupArn\";\nvar _vAGI = \"verifiedAccessGroupId\";\nvar _vAGS = \"verifiedAccessGroupSet\";\nvar _vAI = \"verifiedAccessInstance\";\nvar _vAII = \"verifiedAccessInstanceId\";\nvar _vAIS = \"verifiedAccessInstanceSet\";\nvar _vATP = \"verifiedAccessTrustProvider\";\nvar _vATPI = \"verifiedAccessTrustProviderId\";\nvar _vATPS = \"verifiedAccessTrustProviderSet\";\nvar _vBPAE = \"vpcBlockPublicAccessExclusion\";\nvar _vBPAES = \"vpcBlockPublicAccessExclusionSet\";\nvar _vBPAO = \"vpcBlockPublicAccessOptions\";\nvar _vC = \"vpnConnection\";\nvar _vCC = \"vCpuCount\";\nvar _vCDSC = \"vpnConnectionDeviceSampleConfiguration\";\nvar _vCDTI = \"vpnConnectionDeviceTypeId\";\nvar _vCDTS = \"vpnConnectionDeviceTypeSet\";\nvar _vCI = \"vpnConnectionId\";\nvar _vCIp = \"vCpuInfo\";\nvar _vCS = \"vpnConnectionSet\";\nvar _vCa = \"validCores\";\nvar _vD = \"versionDescription\";\nvar _vE = \"vpcEndpoint\";\nvar _vEAS = \"vpcEndpointAssociationSet\";\nvar _vECI = \"vpcEncryptionControlId\";\nvar _vECIp = \"vpcEndpointConnectionId\";\nvar _vECS = \"vpcEndpointConnectionSet\";\nvar _vEI = \"vpcEndpointId\";\nvar _vEO = \"vpcEndpointOwner\";\nvar _vEPS = \"vpcEndpointPolicySupported\";\nvar _vER = \"vpcEndpointRegion\";\nvar _vES = \"vpcEndpointService\";\nvar _vESp = \"vpcEndpointSet\";\nvar _vESpc = \"vpcEndpointState\";\nvar _vESpn = \"vpnEcmpSupport\";\nvar _vET = \"vpcEndpointType\";\nvar _vF = \"validFrom\";\nvar _vFR = \"validationFailureReason\";\nvar _vG = \"vpnGateway\";\nvar _vGI = \"vpnGatewayId\";\nvar _vGS = \"vpnGatewaySet\";\nvar _vI = \"vpcId\";\nvar _vIR = \"volumeInitializationRate\";\nvar _vIl = \"vlanId\";\nvar _vIo = \"volumeId\";\nvar _vM = \"volumeModification\";\nvar _vMS = \"volumeModificationSet\";\nvar _vN = \"virtualName\";\nvar _vNI = \"virtualNetworkId\";\nvar _vNe = \"versionNumber\";\nvar _vOI = \"volumeOwnerId\";\nvar _vOIp = \"vpcOwnerId\";\nvar _vP = \"vpnProtocol\";\nvar _vPC = \"vpcPeeringConnection\";\nvar _vPCI = \"vpcPeeringConnectionId\";\nvar _vPCS = \"vpcPeeringConnectionSet\";\nvar _vPG = \"virtualPrivateGateway\";\nvar _vPp = \"vpnPort\";\nvar _vPpc = \"vpcPeering\";\nvar _vS = \"volumeSet\";\nvar _vSS = \"volumeStatusSet\";\nvar _vSa = \"valueSet\";\nvar _vSo = \"volumeSize\";\nvar _vSol = \"volumeStatus\";\nvar _vSp = \"vpcSet\";\nvar _vT = \"volumeType\";\nvar _vTOIA = \"vpnTunnelOutsideIpAddress\";\nvar _vTPC = \"validThreadsPerCore\";\nvar _vTg = \"vgwTelemetry\";\nvar _vTi = \"virtualizationType\";\nvar _vU = \"validUntil\";\nvar _ve = \"version\";\nvar _ven = \"vendor\";\nvar _vl = \"vlan\";\nvar _vo = \"volumes\";\nvar _vol = \"volume\";\nvar _vp = \"vpc\";\nvar _vpc = \"vpcs\";\nvar _w = \"warning\";\nvar _wC = \"weightedCapacity\";\nvar _wM = \"warningMessage\";\nvar _we = \"weight\";\nvar _zI = \"zoneId\";\nvar _zN = \"zoneName\";\nvar _zS = \"zoneState\";\nvar _zT = \"zoneType\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadEc2ErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Errors.Error?.Code !== void 0) {\n return data.Errors.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadEc2ErrorCode\");\n\n// src/commands/AcceptAddressTransferCommand.ts\nvar AcceptAddressTransferCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptAddressTransfer\", {}).n(\"EC2Client\", \"AcceptAddressTransferCommand\").f(void 0, void 0).ser(se_AcceptAddressTransferCommand).de(de_AcceptAddressTransferCommand).build() {\n static {\n __name(this, \"AcceptAddressTransferCommand\");\n }\n};\n\n// src/commands/AcceptCapacityReservationBillingOwnershipCommand.ts\n\n\n\nvar AcceptCapacityReservationBillingOwnershipCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptCapacityReservationBillingOwnership\", {}).n(\"EC2Client\", \"AcceptCapacityReservationBillingOwnershipCommand\").f(void 0, void 0).ser(se_AcceptCapacityReservationBillingOwnershipCommand).de(de_AcceptCapacityReservationBillingOwnershipCommand).build() {\n static {\n __name(this, \"AcceptCapacityReservationBillingOwnershipCommand\");\n }\n};\n\n// src/commands/AcceptReservedInstancesExchangeQuoteCommand.ts\n\n\n\nvar AcceptReservedInstancesExchangeQuoteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptReservedInstancesExchangeQuote\", {}).n(\"EC2Client\", \"AcceptReservedInstancesExchangeQuoteCommand\").f(void 0, void 0).ser(se_AcceptReservedInstancesExchangeQuoteCommand).de(de_AcceptReservedInstancesExchangeQuoteCommand).build() {\n static {\n __name(this, \"AcceptReservedInstancesExchangeQuoteCommand\");\n }\n};\n\n// src/commands/AcceptTransitGatewayMulticastDomainAssociationsCommand.ts\n\n\n\nvar AcceptTransitGatewayMulticastDomainAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptTransitGatewayMulticastDomainAssociations\", {}).n(\"EC2Client\", \"AcceptTransitGatewayMulticastDomainAssociationsCommand\").f(void 0, void 0).ser(se_AcceptTransitGatewayMulticastDomainAssociationsCommand).de(de_AcceptTransitGatewayMulticastDomainAssociationsCommand).build() {\n static {\n __name(this, \"AcceptTransitGatewayMulticastDomainAssociationsCommand\");\n }\n};\n\n// src/commands/AcceptTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar AcceptTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"AcceptTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_AcceptTransitGatewayPeeringAttachmentCommand).de(de_AcceptTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"AcceptTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/AcceptTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar AcceptTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"AcceptTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_AcceptTransitGatewayVpcAttachmentCommand).de(de_AcceptTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"AcceptTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/AcceptVpcEndpointConnectionsCommand.ts\n\n\n\nvar AcceptVpcEndpointConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptVpcEndpointConnections\", {}).n(\"EC2Client\", \"AcceptVpcEndpointConnectionsCommand\").f(void 0, void 0).ser(se_AcceptVpcEndpointConnectionsCommand).de(de_AcceptVpcEndpointConnectionsCommand).build() {\n static {\n __name(this, \"AcceptVpcEndpointConnectionsCommand\");\n }\n};\n\n// src/commands/AcceptVpcPeeringConnectionCommand.ts\n\n\n\nvar AcceptVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AcceptVpcPeeringConnection\", {}).n(\"EC2Client\", \"AcceptVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_AcceptVpcPeeringConnectionCommand).de(de_AcceptVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"AcceptVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/AdvertiseByoipCidrCommand.ts\n\n\n\nvar AdvertiseByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AdvertiseByoipCidr\", {}).n(\"EC2Client\", \"AdvertiseByoipCidrCommand\").f(void 0, void 0).ser(se_AdvertiseByoipCidrCommand).de(de_AdvertiseByoipCidrCommand).build() {\n static {\n __name(this, \"AdvertiseByoipCidrCommand\");\n }\n};\n\n// src/commands/AllocateAddressCommand.ts\n\n\n\nvar AllocateAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AllocateAddress\", {}).n(\"EC2Client\", \"AllocateAddressCommand\").f(void 0, void 0).ser(se_AllocateAddressCommand).de(de_AllocateAddressCommand).build() {\n static {\n __name(this, \"AllocateAddressCommand\");\n }\n};\n\n// src/commands/AllocateHostsCommand.ts\n\n\n\nvar AllocateHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AllocateHosts\", {}).n(\"EC2Client\", \"AllocateHostsCommand\").f(void 0, void 0).ser(se_AllocateHostsCommand).de(de_AllocateHostsCommand).build() {\n static {\n __name(this, \"AllocateHostsCommand\");\n }\n};\n\n// src/commands/AllocateIpamPoolCidrCommand.ts\n\n\n\nvar AllocateIpamPoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AllocateIpamPoolCidr\", {}).n(\"EC2Client\", \"AllocateIpamPoolCidrCommand\").f(void 0, void 0).ser(se_AllocateIpamPoolCidrCommand).de(de_AllocateIpamPoolCidrCommand).build() {\n static {\n __name(this, \"AllocateIpamPoolCidrCommand\");\n }\n};\n\n// src/commands/ApplySecurityGroupsToClientVpnTargetNetworkCommand.ts\n\n\n\nvar ApplySecurityGroupsToClientVpnTargetNetworkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ApplySecurityGroupsToClientVpnTargetNetwork\", {}).n(\"EC2Client\", \"ApplySecurityGroupsToClientVpnTargetNetworkCommand\").f(void 0, void 0).ser(se_ApplySecurityGroupsToClientVpnTargetNetworkCommand).de(de_ApplySecurityGroupsToClientVpnTargetNetworkCommand).build() {\n static {\n __name(this, \"ApplySecurityGroupsToClientVpnTargetNetworkCommand\");\n }\n};\n\n// src/commands/AssignIpv6AddressesCommand.ts\n\n\n\nvar AssignIpv6AddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssignIpv6Addresses\", {}).n(\"EC2Client\", \"AssignIpv6AddressesCommand\").f(void 0, void 0).ser(se_AssignIpv6AddressesCommand).de(de_AssignIpv6AddressesCommand).build() {\n static {\n __name(this, \"AssignIpv6AddressesCommand\");\n }\n};\n\n// src/commands/AssignPrivateIpAddressesCommand.ts\n\n\n\nvar AssignPrivateIpAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssignPrivateIpAddresses\", {}).n(\"EC2Client\", \"AssignPrivateIpAddressesCommand\").f(void 0, void 0).ser(se_AssignPrivateIpAddressesCommand).de(de_AssignPrivateIpAddressesCommand).build() {\n static {\n __name(this, \"AssignPrivateIpAddressesCommand\");\n }\n};\n\n// src/commands/AssignPrivateNatGatewayAddressCommand.ts\n\n\n\nvar AssignPrivateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssignPrivateNatGatewayAddress\", {}).n(\"EC2Client\", \"AssignPrivateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_AssignPrivateNatGatewayAddressCommand).de(de_AssignPrivateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"AssignPrivateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/AssociateAddressCommand.ts\n\n\n\nvar AssociateAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateAddress\", {}).n(\"EC2Client\", \"AssociateAddressCommand\").f(void 0, void 0).ser(se_AssociateAddressCommand).de(de_AssociateAddressCommand).build() {\n static {\n __name(this, \"AssociateAddressCommand\");\n }\n};\n\n// src/commands/AssociateCapacityReservationBillingOwnerCommand.ts\n\n\n\nvar AssociateCapacityReservationBillingOwnerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateCapacityReservationBillingOwner\", {}).n(\"EC2Client\", \"AssociateCapacityReservationBillingOwnerCommand\").f(void 0, void 0).ser(se_AssociateCapacityReservationBillingOwnerCommand).de(de_AssociateCapacityReservationBillingOwnerCommand).build() {\n static {\n __name(this, \"AssociateCapacityReservationBillingOwnerCommand\");\n }\n};\n\n// src/commands/AssociateClientVpnTargetNetworkCommand.ts\n\n\n\nvar AssociateClientVpnTargetNetworkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateClientVpnTargetNetwork\", {}).n(\"EC2Client\", \"AssociateClientVpnTargetNetworkCommand\").f(void 0, void 0).ser(se_AssociateClientVpnTargetNetworkCommand).de(de_AssociateClientVpnTargetNetworkCommand).build() {\n static {\n __name(this, \"AssociateClientVpnTargetNetworkCommand\");\n }\n};\n\n// src/commands/AssociateDhcpOptionsCommand.ts\n\n\n\nvar AssociateDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateDhcpOptions\", {}).n(\"EC2Client\", \"AssociateDhcpOptionsCommand\").f(void 0, void 0).ser(se_AssociateDhcpOptionsCommand).de(de_AssociateDhcpOptionsCommand).build() {\n static {\n __name(this, \"AssociateDhcpOptionsCommand\");\n }\n};\n\n// src/commands/AssociateEnclaveCertificateIamRoleCommand.ts\n\n\n\nvar AssociateEnclaveCertificateIamRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateEnclaveCertificateIamRole\", {}).n(\"EC2Client\", \"AssociateEnclaveCertificateIamRoleCommand\").f(void 0, void 0).ser(se_AssociateEnclaveCertificateIamRoleCommand).de(de_AssociateEnclaveCertificateIamRoleCommand).build() {\n static {\n __name(this, \"AssociateEnclaveCertificateIamRoleCommand\");\n }\n};\n\n// src/commands/AssociateIamInstanceProfileCommand.ts\n\n\n\nvar AssociateIamInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateIamInstanceProfile\", {}).n(\"EC2Client\", \"AssociateIamInstanceProfileCommand\").f(void 0, void 0).ser(se_AssociateIamInstanceProfileCommand).de(de_AssociateIamInstanceProfileCommand).build() {\n static {\n __name(this, \"AssociateIamInstanceProfileCommand\");\n }\n};\n\n// src/commands/AssociateInstanceEventWindowCommand.ts\n\n\n\nvar AssociateInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateInstanceEventWindow\", {}).n(\"EC2Client\", \"AssociateInstanceEventWindowCommand\").f(void 0, void 0).ser(se_AssociateInstanceEventWindowCommand).de(de_AssociateInstanceEventWindowCommand).build() {\n static {\n __name(this, \"AssociateInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/AssociateIpamByoasnCommand.ts\n\n\n\nvar AssociateIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateIpamByoasn\", {}).n(\"EC2Client\", \"AssociateIpamByoasnCommand\").f(void 0, void 0).ser(se_AssociateIpamByoasnCommand).de(de_AssociateIpamByoasnCommand).build() {\n static {\n __name(this, \"AssociateIpamByoasnCommand\");\n }\n};\n\n// src/commands/AssociateIpamResourceDiscoveryCommand.ts\n\n\n\nvar AssociateIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateIpamResourceDiscovery\", {}).n(\"EC2Client\", \"AssociateIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_AssociateIpamResourceDiscoveryCommand).de(de_AssociateIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"AssociateIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/AssociateNatGatewayAddressCommand.ts\n\n\n\nvar AssociateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateNatGatewayAddress\", {}).n(\"EC2Client\", \"AssociateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_AssociateNatGatewayAddressCommand).de(de_AssociateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"AssociateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/AssociateRouteServerCommand.ts\n\n\n\nvar AssociateRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateRouteServer\", {}).n(\"EC2Client\", \"AssociateRouteServerCommand\").f(void 0, void 0).ser(se_AssociateRouteServerCommand).de(de_AssociateRouteServerCommand).build() {\n static {\n __name(this, \"AssociateRouteServerCommand\");\n }\n};\n\n// src/commands/AssociateRouteTableCommand.ts\n\n\n\nvar AssociateRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateRouteTable\", {}).n(\"EC2Client\", \"AssociateRouteTableCommand\").f(void 0, void 0).ser(se_AssociateRouteTableCommand).de(de_AssociateRouteTableCommand).build() {\n static {\n __name(this, \"AssociateRouteTableCommand\");\n }\n};\n\n// src/commands/AssociateSecurityGroupVpcCommand.ts\n\n\n\nvar AssociateSecurityGroupVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateSecurityGroupVpc\", {}).n(\"EC2Client\", \"AssociateSecurityGroupVpcCommand\").f(void 0, void 0).ser(se_AssociateSecurityGroupVpcCommand).de(de_AssociateSecurityGroupVpcCommand).build() {\n static {\n __name(this, \"AssociateSecurityGroupVpcCommand\");\n }\n};\n\n// src/commands/AssociateSubnetCidrBlockCommand.ts\n\n\n\nvar AssociateSubnetCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateSubnetCidrBlock\", {}).n(\"EC2Client\", \"AssociateSubnetCidrBlockCommand\").f(void 0, void 0).ser(se_AssociateSubnetCidrBlockCommand).de(de_AssociateSubnetCidrBlockCommand).build() {\n static {\n __name(this, \"AssociateSubnetCidrBlockCommand\");\n }\n};\n\n// src/commands/AssociateTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar AssociateTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"AssociateTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_AssociateTransitGatewayMulticastDomainCommand).de(de_AssociateTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"AssociateTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/AssociateTransitGatewayPolicyTableCommand.ts\n\n\n\nvar AssociateTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"AssociateTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_AssociateTransitGatewayPolicyTableCommand).de(de_AssociateTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"AssociateTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/AssociateTransitGatewayRouteTableCommand.ts\n\n\n\nvar AssociateTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"AssociateTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_AssociateTransitGatewayRouteTableCommand).de(de_AssociateTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"AssociateTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/AssociateTrunkInterfaceCommand.ts\n\n\n\nvar AssociateTrunkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateTrunkInterface\", {}).n(\"EC2Client\", \"AssociateTrunkInterfaceCommand\").f(void 0, void 0).ser(se_AssociateTrunkInterfaceCommand).de(de_AssociateTrunkInterfaceCommand).build() {\n static {\n __name(this, \"AssociateTrunkInterfaceCommand\");\n }\n};\n\n// src/commands/AssociateVpcCidrBlockCommand.ts\n\n\n\nvar AssociateVpcCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AssociateVpcCidrBlock\", {}).n(\"EC2Client\", \"AssociateVpcCidrBlockCommand\").f(void 0, void 0).ser(se_AssociateVpcCidrBlockCommand).de(de_AssociateVpcCidrBlockCommand).build() {\n static {\n __name(this, \"AssociateVpcCidrBlockCommand\");\n }\n};\n\n// src/commands/AttachClassicLinkVpcCommand.ts\n\n\n\nvar AttachClassicLinkVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachClassicLinkVpc\", {}).n(\"EC2Client\", \"AttachClassicLinkVpcCommand\").f(void 0, void 0).ser(se_AttachClassicLinkVpcCommand).de(de_AttachClassicLinkVpcCommand).build() {\n static {\n __name(this, \"AttachClassicLinkVpcCommand\");\n }\n};\n\n// src/commands/AttachInternetGatewayCommand.ts\n\n\n\nvar AttachInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachInternetGateway\", {}).n(\"EC2Client\", \"AttachInternetGatewayCommand\").f(void 0, void 0).ser(se_AttachInternetGatewayCommand).de(de_AttachInternetGatewayCommand).build() {\n static {\n __name(this, \"AttachInternetGatewayCommand\");\n }\n};\n\n// src/commands/AttachNetworkInterfaceCommand.ts\n\n\n\nvar AttachNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachNetworkInterface\", {}).n(\"EC2Client\", \"AttachNetworkInterfaceCommand\").f(void 0, void 0).ser(se_AttachNetworkInterfaceCommand).de(de_AttachNetworkInterfaceCommand).build() {\n static {\n __name(this, \"AttachNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/AttachVerifiedAccessTrustProviderCommand.ts\n\n\n\n\n// src/models/models_0.ts\n\nvar AcceleratorManufacturer = {\n AMAZON_WEB_SERVICES: \"amazon-web-services\",\n AMD: \"amd\",\n HABANA: \"habana\",\n NVIDIA: \"nvidia\",\n XILINX: \"xilinx\"\n};\nvar AcceleratorName = {\n A100: \"a100\",\n A10G: \"a10g\",\n H100: \"h100\",\n INFERENTIA: \"inferentia\",\n K520: \"k520\",\n K80: \"k80\",\n M60: \"m60\",\n RADEON_PRO_V520: \"radeon-pro-v520\",\n T4: \"t4\",\n T4G: \"t4g\",\n V100: \"v100\",\n VU9P: \"vu9p\"\n};\nvar AcceleratorType = {\n FPGA: \"fpga\",\n GPU: \"gpu\",\n INFERENCE: \"inference\"\n};\nvar ResourceType = {\n capacity_reservation: \"capacity-reservation\",\n capacity_reservation_fleet: \"capacity-reservation-fleet\",\n carrier_gateway: \"carrier-gateway\",\n client_vpn_endpoint: \"client-vpn-endpoint\",\n coip_pool: \"coip-pool\",\n customer_gateway: \"customer-gateway\",\n declarative_policies_report: \"declarative-policies-report\",\n dedicated_host: \"dedicated-host\",\n dhcp_options: \"dhcp-options\",\n egress_only_internet_gateway: \"egress-only-internet-gateway\",\n elastic_gpu: \"elastic-gpu\",\n elastic_ip: \"elastic-ip\",\n export_image_task: \"export-image-task\",\n export_instance_task: \"export-instance-task\",\n fleet: \"fleet\",\n fpga_image: \"fpga-image\",\n host_reservation: \"host-reservation\",\n image: \"image\",\n import_image_task: \"import-image-task\",\n import_snapshot_task: \"import-snapshot-task\",\n instance: \"instance\",\n instance_connect_endpoint: \"instance-connect-endpoint\",\n instance_event_window: \"instance-event-window\",\n internet_gateway: \"internet-gateway\",\n ipam: \"ipam\",\n ipam_external_resource_verification_token: \"ipam-external-resource-verification-token\",\n ipam_pool: \"ipam-pool\",\n ipam_resource_discovery: \"ipam-resource-discovery\",\n ipam_resource_discovery_association: \"ipam-resource-discovery-association\",\n ipam_scope: \"ipam-scope\",\n ipv4pool_ec2: \"ipv4pool-ec2\",\n ipv6pool_ec2: \"ipv6pool-ec2\",\n key_pair: \"key-pair\",\n launch_template: \"launch-template\",\n local_gateway: \"local-gateway\",\n local_gateway_route_table: \"local-gateway-route-table\",\n local_gateway_route_table_virtual_interface_group_association: \"local-gateway-route-table-virtual-interface-group-association\",\n local_gateway_route_table_vpc_association: \"local-gateway-route-table-vpc-association\",\n local_gateway_virtual_interface: \"local-gateway-virtual-interface\",\n local_gateway_virtual_interface_group: \"local-gateway-virtual-interface-group\",\n natgateway: \"natgateway\",\n network_acl: \"network-acl\",\n network_insights_access_scope: \"network-insights-access-scope\",\n network_insights_access_scope_analysis: \"network-insights-access-scope-analysis\",\n network_insights_analysis: \"network-insights-analysis\",\n network_insights_path: \"network-insights-path\",\n network_interface: \"network-interface\",\n outpost_lag: \"outpost-lag\",\n placement_group: \"placement-group\",\n prefix_list: \"prefix-list\",\n replace_root_volume_task: \"replace-root-volume-task\",\n reserved_instances: \"reserved-instances\",\n route_server: \"route-server\",\n route_server_endpoint: \"route-server-endpoint\",\n route_server_peer: \"route-server-peer\",\n route_table: \"route-table\",\n security_group: \"security-group\",\n security_group_rule: \"security-group-rule\",\n service_link_virtual_interface: \"service-link-virtual-interface\",\n snapshot: \"snapshot\",\n spot_fleet_request: \"spot-fleet-request\",\n spot_instances_request: \"spot-instances-request\",\n subnet: \"subnet\",\n subnet_cidr_reservation: \"subnet-cidr-reservation\",\n traffic_mirror_filter: \"traffic-mirror-filter\",\n traffic_mirror_filter_rule: \"traffic-mirror-filter-rule\",\n traffic_mirror_session: \"traffic-mirror-session\",\n traffic_mirror_target: \"traffic-mirror-target\",\n transit_gateway: \"transit-gateway\",\n transit_gateway_attachment: \"transit-gateway-attachment\",\n transit_gateway_connect_peer: \"transit-gateway-connect-peer\",\n transit_gateway_multicast_domain: \"transit-gateway-multicast-domain\",\n transit_gateway_policy_table: \"transit-gateway-policy-table\",\n transit_gateway_route_table: \"transit-gateway-route-table\",\n transit_gateway_route_table_announcement: \"transit-gateway-route-table-announcement\",\n verified_access_endpoint: \"verified-access-endpoint\",\n verified_access_endpoint_target: \"verified-access-endpoint-target\",\n verified_access_group: \"verified-access-group\",\n verified_access_instance: \"verified-access-instance\",\n verified_access_policy: \"verified-access-policy\",\n verified_access_trust_provider: \"verified-access-trust-provider\",\n volume: \"volume\",\n vpc: \"vpc\",\n vpc_block_public_access_exclusion: \"vpc-block-public-access-exclusion\",\n vpc_endpoint: \"vpc-endpoint\",\n vpc_endpoint_connection: \"vpc-endpoint-connection\",\n vpc_endpoint_connection_device_type: \"vpc-endpoint-connection-device-type\",\n vpc_endpoint_service: \"vpc-endpoint-service\",\n vpc_endpoint_service_permission: \"vpc-endpoint-service-permission\",\n vpc_flow_log: \"vpc-flow-log\",\n vpc_peering_connection: \"vpc-peering-connection\",\n vpn_connection: \"vpn-connection\",\n vpn_connection_device_type: \"vpn-connection-device-type\",\n vpn_gateway: \"vpn-gateway\"\n};\nvar AddressTransferStatus = {\n accepted: \"accepted\",\n disabled: \"disabled\",\n pending: \"pending\"\n};\nvar TransitGatewayAttachmentResourceType = {\n connect: \"connect\",\n direct_connect_gateway: \"direct-connect-gateway\",\n peering: \"peering\",\n tgw_peering: \"tgw-peering\",\n vpc: \"vpc\",\n vpn: \"vpn\"\n};\nvar TransitGatewayMulitcastDomainAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\",\n pendingAcceptance: \"pendingAcceptance\",\n rejected: \"rejected\"\n};\nvar DynamicRoutingValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar TransitGatewayAttachmentState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n failed: \"failed\",\n failing: \"failing\",\n initiating: \"initiating\",\n initiatingRequest: \"initiatingRequest\",\n modifying: \"modifying\",\n pending: \"pending\",\n pendingAcceptance: \"pendingAcceptance\",\n rejected: \"rejected\",\n rejecting: \"rejecting\",\n rollingBack: \"rollingBack\"\n};\nvar ApplianceModeSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar DnsSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar Ipv6SupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar SecurityGroupReferencingSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar VpcPeeringConnectionStateReasonCode = {\n active: \"active\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n expired: \"expired\",\n failed: \"failed\",\n initiating_request: \"initiating-request\",\n pending_acceptance: \"pending-acceptance\",\n provisioning: \"provisioning\",\n rejected: \"rejected\"\n};\nvar Protocol = {\n tcp: \"tcp\",\n udp: \"udp\"\n};\nvar AccountAttributeName = {\n default_vpc: \"default-vpc\",\n supported_platforms: \"supported-platforms\"\n};\nvar InstanceHealthStatus = {\n HEALTHY_STATUS: \"healthy\",\n UNHEALTHY_STATUS: \"unhealthy\"\n};\nvar ActivityStatus = {\n ERROR: \"error\",\n FULFILLED: \"fulfilled\",\n PENDING_FULFILLMENT: \"pending_fulfillment\",\n PENDING_TERMINATION: \"pending_termination\"\n};\nvar PrincipalType = {\n Account: \"Account\",\n All: \"All\",\n OrganizationUnit: \"OrganizationUnit\",\n Role: \"Role\",\n Service: \"Service\",\n User: \"User\"\n};\nvar DomainType = {\n standard: \"standard\",\n vpc: \"vpc\"\n};\nvar ServiceManaged = {\n alb: \"alb\",\n nlb: \"nlb\",\n rnat: \"rnat\"\n};\nvar AddressAttributeName = {\n domain_name: \"domain-name\"\n};\nvar AddressFamily = {\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar AsnAssociationState = {\n associated: \"associated\",\n disassociated: \"disassociated\",\n failed_association: \"failed-association\",\n failed_disassociation: \"failed-disassociation\",\n pending_association: \"pending-association\",\n pending_disassociation: \"pending-disassociation\"\n};\nvar ByoipCidrState = {\n advertised: \"advertised\",\n deprovisioned: \"deprovisioned\",\n failed_deprovision: \"failed-deprovision\",\n failed_provision: \"failed-provision\",\n pending_deprovision: \"pending-deprovision\",\n pending_provision: \"pending-provision\",\n provisioned: \"provisioned\",\n provisioned_not_publicly_advertisable: \"provisioned-not-publicly-advertisable\"\n};\nvar Affinity = {\n default: \"default\",\n host: \"host\"\n};\nvar AutoPlacement = {\n off: \"off\",\n on: \"on\"\n};\nvar HostMaintenance = {\n off: \"off\",\n on: \"on\"\n};\nvar HostRecovery = {\n off: \"off\",\n on: \"on\"\n};\nvar IpamPoolAllocationResourceType = {\n custom: \"custom\",\n ec2_public_ipv4_pool: \"ec2-public-ipv4-pool\",\n eip: \"eip\",\n ipam_pool: \"ipam-pool\",\n subnet: \"subnet\",\n vpc: \"vpc\"\n};\nvar AllocationState = {\n available: \"available\",\n pending: \"pending\",\n permanent_failure: \"permanent-failure\",\n released: \"released\",\n released_permanent_failure: \"released-permanent-failure\",\n under_assessment: \"under-assessment\"\n};\nvar AllocationStrategy = {\n CAPACITY_OPTIMIZED: \"capacityOptimized\",\n CAPACITY_OPTIMIZED_PRIORITIZED: \"capacityOptimizedPrioritized\",\n DIVERSIFIED: \"diversified\",\n LOWEST_PRICE: \"lowestPrice\",\n PRICE_CAPACITY_OPTIMIZED: \"priceCapacityOptimized\"\n};\nvar AllocationType = {\n future: \"future\",\n used: \"used\"\n};\nvar AllowedImagesSettingsDisabledState = {\n disabled: \"disabled\"\n};\nvar AllowedImagesSettingsEnabledState = {\n audit_mode: \"audit-mode\",\n enabled: \"enabled\"\n};\nvar AllowsMultipleInstanceTypes = {\n off: \"off\",\n on: \"on\"\n};\nvar NatGatewayAddressStatus = {\n ASSIGNING: \"assigning\",\n ASSOCIATING: \"associating\",\n DISASSOCIATING: \"disassociating\",\n FAILED: \"failed\",\n SUCCEEDED: \"succeeded\",\n UNASSIGNING: \"unassigning\"\n};\nvar AssociationStatusCode = {\n associated: \"associated\",\n associating: \"associating\",\n association_failed: \"association-failed\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\"\n};\nvar IamInstanceProfileAssociationState = {\n ASSOCIATED: \"associated\",\n ASSOCIATING: \"associating\",\n DISASSOCIATED: \"disassociated\",\n DISASSOCIATING: \"disassociating\"\n};\nvar InstanceEventWindowState = {\n active: \"active\",\n creating: \"creating\",\n deleted: \"deleted\",\n deleting: \"deleting\"\n};\nvar WeekDay = {\n friday: \"friday\",\n monday: \"monday\",\n saturday: \"saturday\",\n sunday: \"sunday\",\n thursday: \"thursday\",\n tuesday: \"tuesday\",\n wednesday: \"wednesday\"\n};\nvar IpamAssociatedResourceDiscoveryStatus = {\n ACTIVE: \"active\",\n NOT_FOUND: \"not-found\"\n};\nvar IpamResourceDiscoveryAssociationState = {\n ASSOCIATE_COMPLETE: \"associate-complete\",\n ASSOCIATE_FAILED: \"associate-failed\",\n ASSOCIATE_IN_PROGRESS: \"associate-in-progress\",\n DISASSOCIATE_COMPLETE: \"disassociate-complete\",\n DISASSOCIATE_FAILED: \"disassociate-failed\",\n DISASSOCIATE_IN_PROGRESS: \"disassociate-in-progress\",\n ISOLATE_COMPLETE: \"isolate-complete\",\n ISOLATE_IN_PROGRESS: \"isolate-in-progress\",\n RESTORE_IN_PROGRESS: \"restore-in-progress\"\n};\nvar RouteServerAssociationState = {\n ASSOCIATED: \"associated\",\n ASSOCIATING: \"associating\",\n DISASSOCIATING: \"disassociating\"\n};\nvar RouteTableAssociationStateCode = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\"\n};\nvar SecurityGroupVpcAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n association_failed: \"association-failed\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n disassociation_failed: \"disassociation-failed\"\n};\nvar IpSource = {\n amazon: \"amazon\",\n byoip: \"byoip\",\n none: \"none\"\n};\nvar Ipv6AddressAttribute = {\n private: \"private\",\n public: \"public\"\n};\nvar SubnetCidrBlockStateCode = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\",\n failing: \"failing\"\n};\nvar TransitGatewayAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\"\n};\nvar InterfaceProtocolType = {\n GRE: \"GRE\",\n VLAN: \"VLAN\"\n};\nvar VpcCidrBlockStateCode = {\n associated: \"associated\",\n associating: \"associating\",\n disassociated: \"disassociated\",\n disassociating: \"disassociating\",\n failed: \"failed\",\n failing: \"failing\"\n};\nvar DeviceTrustProviderType = {\n crowdstrike: \"crowdstrike\",\n jamf: \"jamf\",\n jumpcloud: \"jumpcloud\"\n};\nvar TrustProviderType = {\n device: \"device\",\n user: \"user\"\n};\nvar UserTrustProviderType = {\n iam_identity_center: \"iam-identity-center\",\n oidc: \"oidc\"\n};\nvar VolumeAttachmentState = {\n attached: \"attached\",\n attaching: \"attaching\",\n busy: \"busy\",\n detached: \"detached\",\n detaching: \"detaching\"\n};\nvar AttachmentStatus = {\n attached: \"attached\",\n attaching: \"attaching\",\n detached: \"detached\",\n detaching: \"detaching\"\n};\nvar ClientVpnAuthorizationRuleStatusCode = {\n active: \"active\",\n authorizing: \"authorizing\",\n failed: \"failed\",\n revoking: \"revoking\"\n};\nvar BundleTaskState = {\n bundling: \"bundling\",\n cancelling: \"cancelling\",\n complete: \"complete\",\n failed: \"failed\",\n pending: \"pending\",\n storing: \"storing\",\n waiting_for_shutdown: \"waiting-for-shutdown\"\n};\nvar CapacityReservationFleetState = {\n ACTIVE: \"active\",\n CANCELLED: \"cancelled\",\n CANCELLING: \"cancelling\",\n EXPIRED: \"expired\",\n EXPIRING: \"expiring\",\n FAILED: \"failed\",\n MODIFYING: \"modifying\",\n PARTIALLY_FULFILLED: \"partially_fulfilled\",\n SUBMITTED: \"submitted\"\n};\nvar ListingState = {\n available: \"available\",\n cancelled: \"cancelled\",\n pending: \"pending\",\n sold: \"sold\"\n};\nvar CurrencyCodeValues = {\n USD: \"USD\"\n};\nvar ListingStatus = {\n active: \"active\",\n cancelled: \"cancelled\",\n closed: \"closed\",\n pending: \"pending\"\n};\nvar BatchState = {\n ACTIVE: \"active\",\n CANCELLED: \"cancelled\",\n CANCELLED_RUNNING: \"cancelled_running\",\n CANCELLED_TERMINATING_INSTANCES: \"cancelled_terminating\",\n FAILED: \"failed\",\n MODIFYING: \"modifying\",\n SUBMITTED: \"submitted\"\n};\nvar CancelBatchErrorCode = {\n FLEET_REQUEST_ID_DOES_NOT_EXIST: \"fleetRequestIdDoesNotExist\",\n FLEET_REQUEST_ID_MALFORMED: \"fleetRequestIdMalformed\",\n FLEET_REQUEST_NOT_IN_CANCELLABLE_STATE: \"fleetRequestNotInCancellableState\",\n UNEXPECTED_ERROR: \"unexpectedError\"\n};\nvar CancelSpotInstanceRequestState = {\n active: \"active\",\n cancelled: \"cancelled\",\n closed: \"closed\",\n completed: \"completed\",\n open: \"open\"\n};\nvar OidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"OidcOptionsFilterSensitiveLog\");\nvar VerifiedAccessTrustProviderFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OidcOptions && { OidcOptions: OidcOptionsFilterSensitiveLog(obj.OidcOptions) }\n}), \"VerifiedAccessTrustProviderFilterSensitiveLog\");\nvar AttachVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"AttachVerifiedAccessTrustProviderResultFilterSensitiveLog\");\nvar S3StorageFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UploadPolicySignature && { UploadPolicySignature: import_smithy_client.SENSITIVE_STRING }\n}), \"S3StorageFilterSensitiveLog\");\nvar StorageFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.S3 && { S3: S3StorageFilterSensitiveLog(obj.S3) }\n}), \"StorageFilterSensitiveLog\");\nvar BundleInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Storage && { Storage: StorageFilterSensitiveLog(obj.Storage) }\n}), \"BundleInstanceRequestFilterSensitiveLog\");\nvar BundleTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Storage && { Storage: StorageFilterSensitiveLog(obj.Storage) }\n}), \"BundleTaskFilterSensitiveLog\");\nvar BundleInstanceResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.BundleTask && { BundleTask: BundleTaskFilterSensitiveLog(obj.BundleTask) }\n}), \"BundleInstanceResultFilterSensitiveLog\");\nvar CancelBundleTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.BundleTask && { BundleTask: BundleTaskFilterSensitiveLog(obj.BundleTask) }\n}), \"CancelBundleTaskResultFilterSensitiveLog\");\n\n// src/commands/AttachVerifiedAccessTrustProviderCommand.ts\nvar AttachVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"AttachVerifiedAccessTrustProviderCommand\").f(void 0, AttachVerifiedAccessTrustProviderResultFilterSensitiveLog).ser(se_AttachVerifiedAccessTrustProviderCommand).de(de_AttachVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"AttachVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/AttachVolumeCommand.ts\n\n\n\nvar AttachVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachVolume\", {}).n(\"EC2Client\", \"AttachVolumeCommand\").f(void 0, void 0).ser(se_AttachVolumeCommand).de(de_AttachVolumeCommand).build() {\n static {\n __name(this, \"AttachVolumeCommand\");\n }\n};\n\n// src/commands/AttachVpnGatewayCommand.ts\n\n\n\nvar AttachVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AttachVpnGateway\", {}).n(\"EC2Client\", \"AttachVpnGatewayCommand\").f(void 0, void 0).ser(se_AttachVpnGatewayCommand).de(de_AttachVpnGatewayCommand).build() {\n static {\n __name(this, \"AttachVpnGatewayCommand\");\n }\n};\n\n// src/commands/AuthorizeClientVpnIngressCommand.ts\n\n\n\nvar AuthorizeClientVpnIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AuthorizeClientVpnIngress\", {}).n(\"EC2Client\", \"AuthorizeClientVpnIngressCommand\").f(void 0, void 0).ser(se_AuthorizeClientVpnIngressCommand).de(de_AuthorizeClientVpnIngressCommand).build() {\n static {\n __name(this, \"AuthorizeClientVpnIngressCommand\");\n }\n};\n\n// src/commands/AuthorizeSecurityGroupEgressCommand.ts\n\n\n\nvar AuthorizeSecurityGroupEgressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AuthorizeSecurityGroupEgress\", {}).n(\"EC2Client\", \"AuthorizeSecurityGroupEgressCommand\").f(void 0, void 0).ser(se_AuthorizeSecurityGroupEgressCommand).de(de_AuthorizeSecurityGroupEgressCommand).build() {\n static {\n __name(this, \"AuthorizeSecurityGroupEgressCommand\");\n }\n};\n\n// src/commands/AuthorizeSecurityGroupIngressCommand.ts\n\n\n\nvar AuthorizeSecurityGroupIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"AuthorizeSecurityGroupIngress\", {}).n(\"EC2Client\", \"AuthorizeSecurityGroupIngressCommand\").f(void 0, void 0).ser(se_AuthorizeSecurityGroupIngressCommand).de(de_AuthorizeSecurityGroupIngressCommand).build() {\n static {\n __name(this, \"AuthorizeSecurityGroupIngressCommand\");\n }\n};\n\n// src/commands/BundleInstanceCommand.ts\n\n\n\nvar BundleInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"BundleInstance\", {}).n(\"EC2Client\", \"BundleInstanceCommand\").f(BundleInstanceRequestFilterSensitiveLog, BundleInstanceResultFilterSensitiveLog).ser(se_BundleInstanceCommand).de(de_BundleInstanceCommand).build() {\n static {\n __name(this, \"BundleInstanceCommand\");\n }\n};\n\n// src/commands/CancelBundleTaskCommand.ts\n\n\n\nvar CancelBundleTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelBundleTask\", {}).n(\"EC2Client\", \"CancelBundleTaskCommand\").f(void 0, CancelBundleTaskResultFilterSensitiveLog).ser(se_CancelBundleTaskCommand).de(de_CancelBundleTaskCommand).build() {\n static {\n __name(this, \"CancelBundleTaskCommand\");\n }\n};\n\n// src/commands/CancelCapacityReservationCommand.ts\n\n\n\nvar CancelCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelCapacityReservation\", {}).n(\"EC2Client\", \"CancelCapacityReservationCommand\").f(void 0, void 0).ser(se_CancelCapacityReservationCommand).de(de_CancelCapacityReservationCommand).build() {\n static {\n __name(this, \"CancelCapacityReservationCommand\");\n }\n};\n\n// src/commands/CancelCapacityReservationFleetsCommand.ts\n\n\n\nvar CancelCapacityReservationFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelCapacityReservationFleets\", {}).n(\"EC2Client\", \"CancelCapacityReservationFleetsCommand\").f(void 0, void 0).ser(se_CancelCapacityReservationFleetsCommand).de(de_CancelCapacityReservationFleetsCommand).build() {\n static {\n __name(this, \"CancelCapacityReservationFleetsCommand\");\n }\n};\n\n// src/commands/CancelConversionTaskCommand.ts\n\n\n\nvar CancelConversionTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelConversionTask\", {}).n(\"EC2Client\", \"CancelConversionTaskCommand\").f(void 0, void 0).ser(se_CancelConversionTaskCommand).de(de_CancelConversionTaskCommand).build() {\n static {\n __name(this, \"CancelConversionTaskCommand\");\n }\n};\n\n// src/commands/CancelDeclarativePoliciesReportCommand.ts\n\n\n\nvar CancelDeclarativePoliciesReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelDeclarativePoliciesReport\", {}).n(\"EC2Client\", \"CancelDeclarativePoliciesReportCommand\").f(void 0, void 0).ser(se_CancelDeclarativePoliciesReportCommand).de(de_CancelDeclarativePoliciesReportCommand).build() {\n static {\n __name(this, \"CancelDeclarativePoliciesReportCommand\");\n }\n};\n\n// src/commands/CancelExportTaskCommand.ts\n\n\n\nvar CancelExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelExportTask\", {}).n(\"EC2Client\", \"CancelExportTaskCommand\").f(void 0, void 0).ser(se_CancelExportTaskCommand).de(de_CancelExportTaskCommand).build() {\n static {\n __name(this, \"CancelExportTaskCommand\");\n }\n};\n\n// src/commands/CancelImageLaunchPermissionCommand.ts\n\n\n\nvar CancelImageLaunchPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelImageLaunchPermission\", {}).n(\"EC2Client\", \"CancelImageLaunchPermissionCommand\").f(void 0, void 0).ser(se_CancelImageLaunchPermissionCommand).de(de_CancelImageLaunchPermissionCommand).build() {\n static {\n __name(this, \"CancelImageLaunchPermissionCommand\");\n }\n};\n\n// src/commands/CancelImportTaskCommand.ts\n\n\n\nvar CancelImportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelImportTask\", {}).n(\"EC2Client\", \"CancelImportTaskCommand\").f(void 0, void 0).ser(se_CancelImportTaskCommand).de(de_CancelImportTaskCommand).build() {\n static {\n __name(this, \"CancelImportTaskCommand\");\n }\n};\n\n// src/commands/CancelReservedInstancesListingCommand.ts\n\n\n\nvar CancelReservedInstancesListingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelReservedInstancesListing\", {}).n(\"EC2Client\", \"CancelReservedInstancesListingCommand\").f(void 0, void 0).ser(se_CancelReservedInstancesListingCommand).de(de_CancelReservedInstancesListingCommand).build() {\n static {\n __name(this, \"CancelReservedInstancesListingCommand\");\n }\n};\n\n// src/commands/CancelSpotFleetRequestsCommand.ts\n\n\n\nvar CancelSpotFleetRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelSpotFleetRequests\", {}).n(\"EC2Client\", \"CancelSpotFleetRequestsCommand\").f(void 0, void 0).ser(se_CancelSpotFleetRequestsCommand).de(de_CancelSpotFleetRequestsCommand).build() {\n static {\n __name(this, \"CancelSpotFleetRequestsCommand\");\n }\n};\n\n// src/commands/CancelSpotInstanceRequestsCommand.ts\n\n\n\nvar CancelSpotInstanceRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CancelSpotInstanceRequests\", {}).n(\"EC2Client\", \"CancelSpotInstanceRequestsCommand\").f(void 0, void 0).ser(se_CancelSpotInstanceRequestsCommand).de(de_CancelSpotInstanceRequestsCommand).build() {\n static {\n __name(this, \"CancelSpotInstanceRequestsCommand\");\n }\n};\n\n// src/commands/ConfirmProductInstanceCommand.ts\n\n\n\nvar ConfirmProductInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ConfirmProductInstance\", {}).n(\"EC2Client\", \"ConfirmProductInstanceCommand\").f(void 0, void 0).ser(se_ConfirmProductInstanceCommand).de(de_ConfirmProductInstanceCommand).build() {\n static {\n __name(this, \"ConfirmProductInstanceCommand\");\n }\n};\n\n// src/commands/CopyFpgaImageCommand.ts\n\n\n\nvar CopyFpgaImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CopyFpgaImage\", {}).n(\"EC2Client\", \"CopyFpgaImageCommand\").f(void 0, void 0).ser(se_CopyFpgaImageCommand).de(de_CopyFpgaImageCommand).build() {\n static {\n __name(this, \"CopyFpgaImageCommand\");\n }\n};\n\n// src/commands/CopyImageCommand.ts\n\n\n\nvar CopyImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CopyImage\", {}).n(\"EC2Client\", \"CopyImageCommand\").f(void 0, void 0).ser(se_CopyImageCommand).de(de_CopyImageCommand).build() {\n static {\n __name(this, \"CopyImageCommand\");\n }\n};\n\n// src/commands/CopySnapshotCommand.ts\nvar import_middleware_sdk_ec2 = require(\"@aws-sdk/middleware-sdk-ec2\");\n\n\n\n\n// src/models/models_1.ts\n\nvar CapacityReservationDeliveryPreference = {\n FIXED: \"fixed\",\n INCREMENTAL: \"incremental\"\n};\nvar EndDateType = {\n limited: \"limited\",\n unlimited: \"unlimited\"\n};\nvar InstanceMatchCriteria = {\n open: \"open\",\n targeted: \"targeted\"\n};\nvar CapacityReservationInstancePlatform = {\n LINUX_UNIX: \"Linux/UNIX\",\n LINUX_WITH_SQL_SERVER_ENTERPRISE: \"Linux with SQL Server Enterprise\",\n LINUX_WITH_SQL_SERVER_STANDARD: \"Linux with SQL Server Standard\",\n LINUX_WITH_SQL_SERVER_WEB: \"Linux with SQL Server Web\",\n RED_HAT_ENTERPRISE_LINUX: \"Red Hat Enterprise Linux\",\n RHEL_WITH_HA: \"RHEL with HA\",\n RHEL_WITH_HA_AND_SQL_SERVER_ENTERPRISE: \"RHEL with HA and SQL Server Enterprise\",\n RHEL_WITH_HA_AND_SQL_SERVER_STANDARD: \"RHEL with HA and SQL Server Standard\",\n RHEL_WITH_SQL_SERVER_ENTERPRISE: \"RHEL with SQL Server Enterprise\",\n RHEL_WITH_SQL_SERVER_STANDARD: \"RHEL with SQL Server Standard\",\n RHEL_WITH_SQL_SERVER_WEB: \"RHEL with SQL Server Web\",\n SUSE_LINUX: \"SUSE Linux\",\n UBUNTU_PRO_LINUX: \"Ubuntu Pro\",\n WINDOWS: \"Windows\",\n WINDOWS_WITH_SQL_SERVER: \"Windows with SQL Server\",\n WINDOWS_WITH_SQL_SERVER_ENTERPRISE: \"Windows with SQL Server Enterprise\",\n WINDOWS_WITH_SQL_SERVER_STANDARD: \"Windows with SQL Server Standard\",\n WINDOWS_WITH_SQL_SERVER_WEB: \"Windows with SQL Server Web\"\n};\nvar CapacityReservationTenancy = {\n dedicated: \"dedicated\",\n default: \"default\"\n};\nvar CapacityReservationType = {\n CAPACITY_BLOCK: \"capacity-block\",\n DEFAULT: \"default\"\n};\nvar CapacityReservationState = {\n active: \"active\",\n assessing: \"assessing\",\n cancelled: \"cancelled\",\n delayed: \"delayed\",\n expired: \"expired\",\n failed: \"failed\",\n payment_failed: \"payment-failed\",\n payment_pending: \"payment-pending\",\n pending: \"pending\",\n scheduled: \"scheduled\",\n unsupported: \"unsupported\"\n};\nvar FleetInstanceMatchCriteria = {\n open: \"open\"\n};\nvar _InstanceType = {\n a1_2xlarge: \"a1.2xlarge\",\n a1_4xlarge: \"a1.4xlarge\",\n a1_large: \"a1.large\",\n a1_medium: \"a1.medium\",\n a1_metal: \"a1.metal\",\n a1_xlarge: \"a1.xlarge\",\n c1_medium: \"c1.medium\",\n c1_xlarge: \"c1.xlarge\",\n c3_2xlarge: \"c3.2xlarge\",\n c3_4xlarge: \"c3.4xlarge\",\n c3_8xlarge: \"c3.8xlarge\",\n c3_large: \"c3.large\",\n c3_xlarge: \"c3.xlarge\",\n c4_2xlarge: \"c4.2xlarge\",\n c4_4xlarge: \"c4.4xlarge\",\n c4_8xlarge: \"c4.8xlarge\",\n c4_large: \"c4.large\",\n c4_xlarge: \"c4.xlarge\",\n c5_12xlarge: \"c5.12xlarge\",\n c5_18xlarge: \"c5.18xlarge\",\n c5_24xlarge: \"c5.24xlarge\",\n c5_2xlarge: \"c5.2xlarge\",\n c5_4xlarge: \"c5.4xlarge\",\n c5_9xlarge: \"c5.9xlarge\",\n c5_large: \"c5.large\",\n c5_metal: \"c5.metal\",\n c5_xlarge: \"c5.xlarge\",\n c5a_12xlarge: \"c5a.12xlarge\",\n c5a_16xlarge: \"c5a.16xlarge\",\n c5a_24xlarge: \"c5a.24xlarge\",\n c5a_2xlarge: \"c5a.2xlarge\",\n c5a_4xlarge: \"c5a.4xlarge\",\n c5a_8xlarge: \"c5a.8xlarge\",\n c5a_large: \"c5a.large\",\n c5a_xlarge: \"c5a.xlarge\",\n c5ad_12xlarge: \"c5ad.12xlarge\",\n c5ad_16xlarge: \"c5ad.16xlarge\",\n c5ad_24xlarge: \"c5ad.24xlarge\",\n c5ad_2xlarge: \"c5ad.2xlarge\",\n c5ad_4xlarge: \"c5ad.4xlarge\",\n c5ad_8xlarge: \"c5ad.8xlarge\",\n c5ad_large: \"c5ad.large\",\n c5ad_xlarge: \"c5ad.xlarge\",\n c5d_12xlarge: \"c5d.12xlarge\",\n c5d_18xlarge: \"c5d.18xlarge\",\n c5d_24xlarge: \"c5d.24xlarge\",\n c5d_2xlarge: \"c5d.2xlarge\",\n c5d_4xlarge: \"c5d.4xlarge\",\n c5d_9xlarge: \"c5d.9xlarge\",\n c5d_large: \"c5d.large\",\n c5d_metal: \"c5d.metal\",\n c5d_xlarge: \"c5d.xlarge\",\n c5n_18xlarge: \"c5n.18xlarge\",\n c5n_2xlarge: \"c5n.2xlarge\",\n c5n_4xlarge: \"c5n.4xlarge\",\n c5n_9xlarge: \"c5n.9xlarge\",\n c5n_large: \"c5n.large\",\n c5n_metal: \"c5n.metal\",\n c5n_xlarge: \"c5n.xlarge\",\n c6a_12xlarge: \"c6a.12xlarge\",\n c6a_16xlarge: \"c6a.16xlarge\",\n c6a_24xlarge: \"c6a.24xlarge\",\n c6a_2xlarge: \"c6a.2xlarge\",\n c6a_32xlarge: \"c6a.32xlarge\",\n c6a_48xlarge: \"c6a.48xlarge\",\n c6a_4xlarge: \"c6a.4xlarge\",\n c6a_8xlarge: \"c6a.8xlarge\",\n c6a_large: \"c6a.large\",\n c6a_metal: \"c6a.metal\",\n c6a_xlarge: \"c6a.xlarge\",\n c6g_12xlarge: \"c6g.12xlarge\",\n c6g_16xlarge: \"c6g.16xlarge\",\n c6g_2xlarge: \"c6g.2xlarge\",\n c6g_4xlarge: \"c6g.4xlarge\",\n c6g_8xlarge: \"c6g.8xlarge\",\n c6g_large: \"c6g.large\",\n c6g_medium: \"c6g.medium\",\n c6g_metal: \"c6g.metal\",\n c6g_xlarge: \"c6g.xlarge\",\n c6gd_12xlarge: \"c6gd.12xlarge\",\n c6gd_16xlarge: \"c6gd.16xlarge\",\n c6gd_2xlarge: \"c6gd.2xlarge\",\n c6gd_4xlarge: \"c6gd.4xlarge\",\n c6gd_8xlarge: \"c6gd.8xlarge\",\n c6gd_large: \"c6gd.large\",\n c6gd_medium: \"c6gd.medium\",\n c6gd_metal: \"c6gd.metal\",\n c6gd_xlarge: \"c6gd.xlarge\",\n c6gn_12xlarge: \"c6gn.12xlarge\",\n c6gn_16xlarge: \"c6gn.16xlarge\",\n c6gn_2xlarge: \"c6gn.2xlarge\",\n c6gn_4xlarge: \"c6gn.4xlarge\",\n c6gn_8xlarge: \"c6gn.8xlarge\",\n c6gn_large: \"c6gn.large\",\n c6gn_medium: \"c6gn.medium\",\n c6gn_xlarge: \"c6gn.xlarge\",\n c6i_12xlarge: \"c6i.12xlarge\",\n c6i_16xlarge: \"c6i.16xlarge\",\n c6i_24xlarge: \"c6i.24xlarge\",\n c6i_2xlarge: \"c6i.2xlarge\",\n c6i_32xlarge: \"c6i.32xlarge\",\n c6i_4xlarge: \"c6i.4xlarge\",\n c6i_8xlarge: \"c6i.8xlarge\",\n c6i_large: \"c6i.large\",\n c6i_metal: \"c6i.metal\",\n c6i_xlarge: \"c6i.xlarge\",\n c6id_12xlarge: \"c6id.12xlarge\",\n c6id_16xlarge: \"c6id.16xlarge\",\n c6id_24xlarge: \"c6id.24xlarge\",\n c6id_2xlarge: \"c6id.2xlarge\",\n c6id_32xlarge: \"c6id.32xlarge\",\n c6id_4xlarge: \"c6id.4xlarge\",\n c6id_8xlarge: \"c6id.8xlarge\",\n c6id_large: \"c6id.large\",\n c6id_metal: \"c6id.metal\",\n c6id_xlarge: \"c6id.xlarge\",\n c6in_12xlarge: \"c6in.12xlarge\",\n c6in_16xlarge: \"c6in.16xlarge\",\n c6in_24xlarge: \"c6in.24xlarge\",\n c6in_2xlarge: \"c6in.2xlarge\",\n c6in_32xlarge: \"c6in.32xlarge\",\n c6in_4xlarge: \"c6in.4xlarge\",\n c6in_8xlarge: \"c6in.8xlarge\",\n c6in_large: \"c6in.large\",\n c6in_metal: \"c6in.metal\",\n c6in_xlarge: \"c6in.xlarge\",\n c7a_12xlarge: \"c7a.12xlarge\",\n c7a_16xlarge: \"c7a.16xlarge\",\n c7a_24xlarge: \"c7a.24xlarge\",\n c7a_2xlarge: \"c7a.2xlarge\",\n c7a_32xlarge: \"c7a.32xlarge\",\n c7a_48xlarge: \"c7a.48xlarge\",\n c7a_4xlarge: \"c7a.4xlarge\",\n c7a_8xlarge: \"c7a.8xlarge\",\n c7a_large: \"c7a.large\",\n c7a_medium: \"c7a.medium\",\n c7a_metal_48xl: \"c7a.metal-48xl\",\n c7a_xlarge: \"c7a.xlarge\",\n c7g_12xlarge: \"c7g.12xlarge\",\n c7g_16xlarge: \"c7g.16xlarge\",\n c7g_2xlarge: \"c7g.2xlarge\",\n c7g_4xlarge: \"c7g.4xlarge\",\n c7g_8xlarge: \"c7g.8xlarge\",\n c7g_large: \"c7g.large\",\n c7g_medium: \"c7g.medium\",\n c7g_metal: \"c7g.metal\",\n c7g_xlarge: \"c7g.xlarge\",\n c7gd_12xlarge: \"c7gd.12xlarge\",\n c7gd_16xlarge: \"c7gd.16xlarge\",\n c7gd_2xlarge: \"c7gd.2xlarge\",\n c7gd_4xlarge: \"c7gd.4xlarge\",\n c7gd_8xlarge: \"c7gd.8xlarge\",\n c7gd_large: \"c7gd.large\",\n c7gd_medium: \"c7gd.medium\",\n c7gd_metal: \"c7gd.metal\",\n c7gd_xlarge: \"c7gd.xlarge\",\n c7gn_12xlarge: \"c7gn.12xlarge\",\n c7gn_16xlarge: \"c7gn.16xlarge\",\n c7gn_2xlarge: \"c7gn.2xlarge\",\n c7gn_4xlarge: \"c7gn.4xlarge\",\n c7gn_8xlarge: \"c7gn.8xlarge\",\n c7gn_large: \"c7gn.large\",\n c7gn_medium: \"c7gn.medium\",\n c7gn_metal: \"c7gn.metal\",\n c7gn_xlarge: \"c7gn.xlarge\",\n c7i_12xlarge: \"c7i.12xlarge\",\n c7i_16xlarge: \"c7i.16xlarge\",\n c7i_24xlarge: \"c7i.24xlarge\",\n c7i_2xlarge: \"c7i.2xlarge\",\n c7i_48xlarge: \"c7i.48xlarge\",\n c7i_4xlarge: \"c7i.4xlarge\",\n c7i_8xlarge: \"c7i.8xlarge\",\n c7i_flex_2xlarge: \"c7i-flex.2xlarge\",\n c7i_flex_4xlarge: \"c7i-flex.4xlarge\",\n c7i_flex_8xlarge: \"c7i-flex.8xlarge\",\n c7i_flex_large: \"c7i-flex.large\",\n c7i_flex_xlarge: \"c7i-flex.xlarge\",\n c7i_large: \"c7i.large\",\n c7i_metal_24xl: \"c7i.metal-24xl\",\n c7i_metal_48xl: \"c7i.metal-48xl\",\n c7i_xlarge: \"c7i.xlarge\",\n c8g_12xlarge: \"c8g.12xlarge\",\n c8g_16xlarge: \"c8g.16xlarge\",\n c8g_24xlarge: \"c8g.24xlarge\",\n c8g_2xlarge: \"c8g.2xlarge\",\n c8g_48xlarge: \"c8g.48xlarge\",\n c8g_4xlarge: \"c8g.4xlarge\",\n c8g_8xlarge: \"c8g.8xlarge\",\n c8g_large: \"c8g.large\",\n c8g_medium: \"c8g.medium\",\n c8g_metal_24xl: \"c8g.metal-24xl\",\n c8g_metal_48xl: \"c8g.metal-48xl\",\n c8g_xlarge: \"c8g.xlarge\",\n cc1_4xlarge: \"cc1.4xlarge\",\n cc2_8xlarge: \"cc2.8xlarge\",\n cg1_4xlarge: \"cg1.4xlarge\",\n cr1_8xlarge: \"cr1.8xlarge\",\n d2_2xlarge: \"d2.2xlarge\",\n d2_4xlarge: \"d2.4xlarge\",\n d2_8xlarge: \"d2.8xlarge\",\n d2_xlarge: \"d2.xlarge\",\n d3_2xlarge: \"d3.2xlarge\",\n d3_4xlarge: \"d3.4xlarge\",\n d3_8xlarge: \"d3.8xlarge\",\n d3_xlarge: \"d3.xlarge\",\n d3en_12xlarge: \"d3en.12xlarge\",\n d3en_2xlarge: \"d3en.2xlarge\",\n d3en_4xlarge: \"d3en.4xlarge\",\n d3en_6xlarge: \"d3en.6xlarge\",\n d3en_8xlarge: \"d3en.8xlarge\",\n d3en_xlarge: \"d3en.xlarge\",\n dl1_24xlarge: \"dl1.24xlarge\",\n dl2q_24xlarge: \"dl2q.24xlarge\",\n f1_16xlarge: \"f1.16xlarge\",\n f1_2xlarge: \"f1.2xlarge\",\n f1_4xlarge: \"f1.4xlarge\",\n f2_12xlarge: \"f2.12xlarge\",\n f2_48xlarge: \"f2.48xlarge\",\n g2_2xlarge: \"g2.2xlarge\",\n g2_8xlarge: \"g2.8xlarge\",\n g3_16xlarge: \"g3.16xlarge\",\n g3_4xlarge: \"g3.4xlarge\",\n g3_8xlarge: \"g3.8xlarge\",\n g3s_xlarge: \"g3s.xlarge\",\n g4ad_16xlarge: \"g4ad.16xlarge\",\n g4ad_2xlarge: \"g4ad.2xlarge\",\n g4ad_4xlarge: \"g4ad.4xlarge\",\n g4ad_8xlarge: \"g4ad.8xlarge\",\n g4ad_xlarge: \"g4ad.xlarge\",\n g4dn_12xlarge: \"g4dn.12xlarge\",\n g4dn_16xlarge: \"g4dn.16xlarge\",\n g4dn_2xlarge: \"g4dn.2xlarge\",\n g4dn_4xlarge: \"g4dn.4xlarge\",\n g4dn_8xlarge: \"g4dn.8xlarge\",\n g4dn_metal: \"g4dn.metal\",\n g4dn_xlarge: \"g4dn.xlarge\",\n g5_12xlarge: \"g5.12xlarge\",\n g5_16xlarge: \"g5.16xlarge\",\n g5_24xlarge: \"g5.24xlarge\",\n g5_2xlarge: \"g5.2xlarge\",\n g5_48xlarge: \"g5.48xlarge\",\n g5_4xlarge: \"g5.4xlarge\",\n g5_8xlarge: \"g5.8xlarge\",\n g5_xlarge: \"g5.xlarge\",\n g5g_16xlarge: \"g5g.16xlarge\",\n g5g_2xlarge: \"g5g.2xlarge\",\n g5g_4xlarge: \"g5g.4xlarge\",\n g5g_8xlarge: \"g5g.8xlarge\",\n g5g_metal: \"g5g.metal\",\n g5g_xlarge: \"g5g.xlarge\",\n g6_12xlarge: \"g6.12xlarge\",\n g6_16xlarge: \"g6.16xlarge\",\n g6_24xlarge: \"g6.24xlarge\",\n g6_2xlarge: \"g6.2xlarge\",\n g6_48xlarge: \"g6.48xlarge\",\n g6_4xlarge: \"g6.4xlarge\",\n g6_8xlarge: \"g6.8xlarge\",\n g6_xlarge: \"g6.xlarge\",\n g6e_12xlarge: \"g6e.12xlarge\",\n g6e_16xlarge: \"g6e.16xlarge\",\n g6e_24xlarge: \"g6e.24xlarge\",\n g6e_2xlarge: \"g6e.2xlarge\",\n g6e_48xlarge: \"g6e.48xlarge\",\n g6e_4xlarge: \"g6e.4xlarge\",\n g6e_8xlarge: \"g6e.8xlarge\",\n g6e_xlarge: \"g6e.xlarge\",\n gr6_4xlarge: \"gr6.4xlarge\",\n gr6_8xlarge: \"gr6.8xlarge\",\n h1_16xlarge: \"h1.16xlarge\",\n h1_2xlarge: \"h1.2xlarge\",\n h1_4xlarge: \"h1.4xlarge\",\n h1_8xlarge: \"h1.8xlarge\",\n hi1_4xlarge: \"hi1.4xlarge\",\n hpc6a_48xlarge: \"hpc6a.48xlarge\",\n hpc6id_32xlarge: \"hpc6id.32xlarge\",\n hpc7a_12xlarge: \"hpc7a.12xlarge\",\n hpc7a_24xlarge: \"hpc7a.24xlarge\",\n hpc7a_48xlarge: \"hpc7a.48xlarge\",\n hpc7a_96xlarge: \"hpc7a.96xlarge\",\n hpc7g_16xlarge: \"hpc7g.16xlarge\",\n hpc7g_4xlarge: \"hpc7g.4xlarge\",\n hpc7g_8xlarge: \"hpc7g.8xlarge\",\n hs1_8xlarge: \"hs1.8xlarge\",\n i2_2xlarge: \"i2.2xlarge\",\n i2_4xlarge: \"i2.4xlarge\",\n i2_8xlarge: \"i2.8xlarge\",\n i2_xlarge: \"i2.xlarge\",\n i3_16xlarge: \"i3.16xlarge\",\n i3_2xlarge: \"i3.2xlarge\",\n i3_4xlarge: \"i3.4xlarge\",\n i3_8xlarge: \"i3.8xlarge\",\n i3_large: \"i3.large\",\n i3_metal: \"i3.metal\",\n i3_xlarge: \"i3.xlarge\",\n i3en_12xlarge: \"i3en.12xlarge\",\n i3en_24xlarge: \"i3en.24xlarge\",\n i3en_2xlarge: \"i3en.2xlarge\",\n i3en_3xlarge: \"i3en.3xlarge\",\n i3en_6xlarge: \"i3en.6xlarge\",\n i3en_large: \"i3en.large\",\n i3en_metal: \"i3en.metal\",\n i3en_xlarge: \"i3en.xlarge\",\n i4g_16xlarge: \"i4g.16xlarge\",\n i4g_2xlarge: \"i4g.2xlarge\",\n i4g_4xlarge: \"i4g.4xlarge\",\n i4g_8xlarge: \"i4g.8xlarge\",\n i4g_large: \"i4g.large\",\n i4g_xlarge: \"i4g.xlarge\",\n i4i_12xlarge: \"i4i.12xlarge\",\n i4i_16xlarge: \"i4i.16xlarge\",\n i4i_24xlarge: \"i4i.24xlarge\",\n i4i_2xlarge: \"i4i.2xlarge\",\n i4i_32xlarge: \"i4i.32xlarge\",\n i4i_4xlarge: \"i4i.4xlarge\",\n i4i_8xlarge: \"i4i.8xlarge\",\n i4i_large: \"i4i.large\",\n i4i_metal: \"i4i.metal\",\n i4i_xlarge: \"i4i.xlarge\",\n i7ie_12xlarge: \"i7ie.12xlarge\",\n i7ie_18xlarge: \"i7ie.18xlarge\",\n i7ie_24xlarge: \"i7ie.24xlarge\",\n i7ie_2xlarge: \"i7ie.2xlarge\",\n i7ie_3xlarge: \"i7ie.3xlarge\",\n i7ie_48xlarge: \"i7ie.48xlarge\",\n i7ie_6xlarge: \"i7ie.6xlarge\",\n i7ie_large: \"i7ie.large\",\n i7ie_xlarge: \"i7ie.xlarge\",\n i8g_12xlarge: \"i8g.12xlarge\",\n i8g_16xlarge: \"i8g.16xlarge\",\n i8g_24xlarge: \"i8g.24xlarge\",\n i8g_2xlarge: \"i8g.2xlarge\",\n i8g_4xlarge: \"i8g.4xlarge\",\n i8g_8xlarge: \"i8g.8xlarge\",\n i8g_large: \"i8g.large\",\n i8g_metal_24xl: \"i8g.metal-24xl\",\n i8g_xlarge: \"i8g.xlarge\",\n im4gn_16xlarge: \"im4gn.16xlarge\",\n im4gn_2xlarge: \"im4gn.2xlarge\",\n im4gn_4xlarge: \"im4gn.4xlarge\",\n im4gn_8xlarge: \"im4gn.8xlarge\",\n im4gn_large: \"im4gn.large\",\n im4gn_xlarge: \"im4gn.xlarge\",\n inf1_24xlarge: \"inf1.24xlarge\",\n inf1_2xlarge: \"inf1.2xlarge\",\n inf1_6xlarge: \"inf1.6xlarge\",\n inf1_xlarge: \"inf1.xlarge\",\n inf2_24xlarge: \"inf2.24xlarge\",\n inf2_48xlarge: \"inf2.48xlarge\",\n inf2_8xlarge: \"inf2.8xlarge\",\n inf2_xlarge: \"inf2.xlarge\",\n is4gen_2xlarge: \"is4gen.2xlarge\",\n is4gen_4xlarge: \"is4gen.4xlarge\",\n is4gen_8xlarge: \"is4gen.8xlarge\",\n is4gen_large: \"is4gen.large\",\n is4gen_medium: \"is4gen.medium\",\n is4gen_xlarge: \"is4gen.xlarge\",\n m1_large: \"m1.large\",\n m1_medium: \"m1.medium\",\n m1_small: \"m1.small\",\n m1_xlarge: \"m1.xlarge\",\n m2_2xlarge: \"m2.2xlarge\",\n m2_4xlarge: \"m2.4xlarge\",\n m2_xlarge: \"m2.xlarge\",\n m3_2xlarge: \"m3.2xlarge\",\n m3_large: \"m3.large\",\n m3_medium: \"m3.medium\",\n m3_xlarge: \"m3.xlarge\",\n m4_10xlarge: \"m4.10xlarge\",\n m4_16xlarge: \"m4.16xlarge\",\n m4_2xlarge: \"m4.2xlarge\",\n m4_4xlarge: \"m4.4xlarge\",\n m4_large: \"m4.large\",\n m4_xlarge: \"m4.xlarge\",\n m5_12xlarge: \"m5.12xlarge\",\n m5_16xlarge: \"m5.16xlarge\",\n m5_24xlarge: \"m5.24xlarge\",\n m5_2xlarge: \"m5.2xlarge\",\n m5_4xlarge: \"m5.4xlarge\",\n m5_8xlarge: \"m5.8xlarge\",\n m5_large: \"m5.large\",\n m5_metal: \"m5.metal\",\n m5_xlarge: \"m5.xlarge\",\n m5a_12xlarge: \"m5a.12xlarge\",\n m5a_16xlarge: \"m5a.16xlarge\",\n m5a_24xlarge: \"m5a.24xlarge\",\n m5a_2xlarge: \"m5a.2xlarge\",\n m5a_4xlarge: \"m5a.4xlarge\",\n m5a_8xlarge: \"m5a.8xlarge\",\n m5a_large: \"m5a.large\",\n m5a_xlarge: \"m5a.xlarge\",\n m5ad_12xlarge: \"m5ad.12xlarge\",\n m5ad_16xlarge: \"m5ad.16xlarge\",\n m5ad_24xlarge: \"m5ad.24xlarge\",\n m5ad_2xlarge: \"m5ad.2xlarge\",\n m5ad_4xlarge: \"m5ad.4xlarge\",\n m5ad_8xlarge: \"m5ad.8xlarge\",\n m5ad_large: \"m5ad.large\",\n m5ad_xlarge: \"m5ad.xlarge\",\n m5d_12xlarge: \"m5d.12xlarge\",\n m5d_16xlarge: \"m5d.16xlarge\",\n m5d_24xlarge: \"m5d.24xlarge\",\n m5d_2xlarge: \"m5d.2xlarge\",\n m5d_4xlarge: \"m5d.4xlarge\",\n m5d_8xlarge: \"m5d.8xlarge\",\n m5d_large: \"m5d.large\",\n m5d_metal: \"m5d.metal\",\n m5d_xlarge: \"m5d.xlarge\",\n m5dn_12xlarge: \"m5dn.12xlarge\",\n m5dn_16xlarge: \"m5dn.16xlarge\",\n m5dn_24xlarge: \"m5dn.24xlarge\",\n m5dn_2xlarge: \"m5dn.2xlarge\",\n m5dn_4xlarge: \"m5dn.4xlarge\",\n m5dn_8xlarge: \"m5dn.8xlarge\",\n m5dn_large: \"m5dn.large\",\n m5dn_metal: \"m5dn.metal\",\n m5dn_xlarge: \"m5dn.xlarge\",\n m5n_12xlarge: \"m5n.12xlarge\",\n m5n_16xlarge: \"m5n.16xlarge\",\n m5n_24xlarge: \"m5n.24xlarge\",\n m5n_2xlarge: \"m5n.2xlarge\",\n m5n_4xlarge: \"m5n.4xlarge\",\n m5n_8xlarge: \"m5n.8xlarge\",\n m5n_large: \"m5n.large\",\n m5n_metal: \"m5n.metal\",\n m5n_xlarge: \"m5n.xlarge\",\n m5zn_12xlarge: \"m5zn.12xlarge\",\n m5zn_2xlarge: \"m5zn.2xlarge\",\n m5zn_3xlarge: \"m5zn.3xlarge\",\n m5zn_6xlarge: \"m5zn.6xlarge\",\n m5zn_large: \"m5zn.large\",\n m5zn_metal: \"m5zn.metal\",\n m5zn_xlarge: \"m5zn.xlarge\",\n m6a_12xlarge: \"m6a.12xlarge\",\n m6a_16xlarge: \"m6a.16xlarge\",\n m6a_24xlarge: \"m6a.24xlarge\",\n m6a_2xlarge: \"m6a.2xlarge\",\n m6a_32xlarge: \"m6a.32xlarge\",\n m6a_48xlarge: \"m6a.48xlarge\",\n m6a_4xlarge: \"m6a.4xlarge\",\n m6a_8xlarge: \"m6a.8xlarge\",\n m6a_large: \"m6a.large\",\n m6a_metal: \"m6a.metal\",\n m6a_xlarge: \"m6a.xlarge\",\n m6g_12xlarge: \"m6g.12xlarge\",\n m6g_16xlarge: \"m6g.16xlarge\",\n m6g_2xlarge: \"m6g.2xlarge\",\n m6g_4xlarge: \"m6g.4xlarge\",\n m6g_8xlarge: \"m6g.8xlarge\",\n m6g_large: \"m6g.large\",\n m6g_medium: \"m6g.medium\",\n m6g_metal: \"m6g.metal\",\n m6g_xlarge: \"m6g.xlarge\",\n m6gd_12xlarge: \"m6gd.12xlarge\",\n m6gd_16xlarge: \"m6gd.16xlarge\",\n m6gd_2xlarge: \"m6gd.2xlarge\",\n m6gd_4xlarge: \"m6gd.4xlarge\",\n m6gd_8xlarge: \"m6gd.8xlarge\",\n m6gd_large: \"m6gd.large\",\n m6gd_medium: \"m6gd.medium\",\n m6gd_metal: \"m6gd.metal\",\n m6gd_xlarge: \"m6gd.xlarge\",\n m6i_12xlarge: \"m6i.12xlarge\",\n m6i_16xlarge: \"m6i.16xlarge\",\n m6i_24xlarge: \"m6i.24xlarge\",\n m6i_2xlarge: \"m6i.2xlarge\",\n m6i_32xlarge: \"m6i.32xlarge\",\n m6i_4xlarge: \"m6i.4xlarge\",\n m6i_8xlarge: \"m6i.8xlarge\",\n m6i_large: \"m6i.large\",\n m6i_metal: \"m6i.metal\",\n m6i_xlarge: \"m6i.xlarge\",\n m6id_12xlarge: \"m6id.12xlarge\",\n m6id_16xlarge: \"m6id.16xlarge\",\n m6id_24xlarge: \"m6id.24xlarge\",\n m6id_2xlarge: \"m6id.2xlarge\",\n m6id_32xlarge: \"m6id.32xlarge\",\n m6id_4xlarge: \"m6id.4xlarge\",\n m6id_8xlarge: \"m6id.8xlarge\",\n m6id_large: \"m6id.large\",\n m6id_metal: \"m6id.metal\",\n m6id_xlarge: \"m6id.xlarge\",\n m6idn_12xlarge: \"m6idn.12xlarge\",\n m6idn_16xlarge: \"m6idn.16xlarge\",\n m6idn_24xlarge: \"m6idn.24xlarge\",\n m6idn_2xlarge: \"m6idn.2xlarge\",\n m6idn_32xlarge: \"m6idn.32xlarge\",\n m6idn_4xlarge: \"m6idn.4xlarge\",\n m6idn_8xlarge: \"m6idn.8xlarge\",\n m6idn_large: \"m6idn.large\",\n m6idn_metal: \"m6idn.metal\",\n m6idn_xlarge: \"m6idn.xlarge\",\n m6in_12xlarge: \"m6in.12xlarge\",\n m6in_16xlarge: \"m6in.16xlarge\",\n m6in_24xlarge: \"m6in.24xlarge\",\n m6in_2xlarge: \"m6in.2xlarge\",\n m6in_32xlarge: \"m6in.32xlarge\",\n m6in_4xlarge: \"m6in.4xlarge\",\n m6in_8xlarge: \"m6in.8xlarge\",\n m6in_large: \"m6in.large\",\n m6in_metal: \"m6in.metal\",\n m6in_xlarge: \"m6in.xlarge\",\n m7a_12xlarge: \"m7a.12xlarge\",\n m7a_16xlarge: \"m7a.16xlarge\",\n m7a_24xlarge: \"m7a.24xlarge\",\n m7a_2xlarge: \"m7a.2xlarge\",\n m7a_32xlarge: \"m7a.32xlarge\",\n m7a_48xlarge: \"m7a.48xlarge\",\n m7a_4xlarge: \"m7a.4xlarge\",\n m7a_8xlarge: \"m7a.8xlarge\",\n m7a_large: \"m7a.large\",\n m7a_medium: \"m7a.medium\",\n m7a_metal_48xl: \"m7a.metal-48xl\",\n m7a_xlarge: \"m7a.xlarge\",\n m7g_12xlarge: \"m7g.12xlarge\",\n m7g_16xlarge: \"m7g.16xlarge\",\n m7g_2xlarge: \"m7g.2xlarge\",\n m7g_4xlarge: \"m7g.4xlarge\",\n m7g_8xlarge: \"m7g.8xlarge\",\n m7g_large: \"m7g.large\",\n m7g_medium: \"m7g.medium\",\n m7g_metal: \"m7g.metal\",\n m7g_xlarge: \"m7g.xlarge\",\n m7gd_12xlarge: \"m7gd.12xlarge\",\n m7gd_16xlarge: \"m7gd.16xlarge\",\n m7gd_2xlarge: \"m7gd.2xlarge\",\n m7gd_4xlarge: \"m7gd.4xlarge\",\n m7gd_8xlarge: \"m7gd.8xlarge\",\n m7gd_large: \"m7gd.large\",\n m7gd_medium: \"m7gd.medium\",\n m7gd_metal: \"m7gd.metal\",\n m7gd_xlarge: \"m7gd.xlarge\",\n m7i_12xlarge: \"m7i.12xlarge\",\n m7i_16xlarge: \"m7i.16xlarge\",\n m7i_24xlarge: \"m7i.24xlarge\",\n m7i_2xlarge: \"m7i.2xlarge\",\n m7i_48xlarge: \"m7i.48xlarge\",\n m7i_4xlarge: \"m7i.4xlarge\",\n m7i_8xlarge: \"m7i.8xlarge\",\n m7i_flex_2xlarge: \"m7i-flex.2xlarge\",\n m7i_flex_4xlarge: \"m7i-flex.4xlarge\",\n m7i_flex_8xlarge: \"m7i-flex.8xlarge\",\n m7i_flex_large: \"m7i-flex.large\",\n m7i_flex_xlarge: \"m7i-flex.xlarge\",\n m7i_large: \"m7i.large\",\n m7i_metal_24xl: \"m7i.metal-24xl\",\n m7i_metal_48xl: \"m7i.metal-48xl\",\n m7i_xlarge: \"m7i.xlarge\",\n m8g_12xlarge: \"m8g.12xlarge\",\n m8g_16xlarge: \"m8g.16xlarge\",\n m8g_24xlarge: \"m8g.24xlarge\",\n m8g_2xlarge: \"m8g.2xlarge\",\n m8g_48xlarge: \"m8g.48xlarge\",\n m8g_4xlarge: \"m8g.4xlarge\",\n m8g_8xlarge: \"m8g.8xlarge\",\n m8g_large: \"m8g.large\",\n m8g_medium: \"m8g.medium\",\n m8g_metal_24xl: \"m8g.metal-24xl\",\n m8g_metal_48xl: \"m8g.metal-48xl\",\n m8g_xlarge: \"m8g.xlarge\",\n mac1_metal: \"mac1.metal\",\n mac2_m1ultra_metal: \"mac2-m1ultra.metal\",\n mac2_m2_metal: \"mac2-m2.metal\",\n mac2_m2pro_metal: \"mac2-m2pro.metal\",\n mac2_metal: \"mac2.metal\",\n p2_16xlarge: \"p2.16xlarge\",\n p2_8xlarge: \"p2.8xlarge\",\n p2_xlarge: \"p2.xlarge\",\n p3_16xlarge: \"p3.16xlarge\",\n p3_2xlarge: \"p3.2xlarge\",\n p3_8xlarge: \"p3.8xlarge\",\n p3dn_24xlarge: \"p3dn.24xlarge\",\n p4d_24xlarge: \"p4d.24xlarge\",\n p4de_24xlarge: \"p4de.24xlarge\",\n p5_48xlarge: \"p5.48xlarge\",\n p5e_48xlarge: \"p5e.48xlarge\",\n p5en_48xlarge: \"p5en.48xlarge\",\n r3_2xlarge: \"r3.2xlarge\",\n r3_4xlarge: \"r3.4xlarge\",\n r3_8xlarge: \"r3.8xlarge\",\n r3_large: \"r3.large\",\n r3_xlarge: \"r3.xlarge\",\n r4_16xlarge: \"r4.16xlarge\",\n r4_2xlarge: \"r4.2xlarge\",\n r4_4xlarge: \"r4.4xlarge\",\n r4_8xlarge: \"r4.8xlarge\",\n r4_large: \"r4.large\",\n r4_xlarge: \"r4.xlarge\",\n r5_12xlarge: \"r5.12xlarge\",\n r5_16xlarge: \"r5.16xlarge\",\n r5_24xlarge: \"r5.24xlarge\",\n r5_2xlarge: \"r5.2xlarge\",\n r5_4xlarge: \"r5.4xlarge\",\n r5_8xlarge: \"r5.8xlarge\",\n r5_large: \"r5.large\",\n r5_metal: \"r5.metal\",\n r5_xlarge: \"r5.xlarge\",\n r5a_12xlarge: \"r5a.12xlarge\",\n r5a_16xlarge: \"r5a.16xlarge\",\n r5a_24xlarge: \"r5a.24xlarge\",\n r5a_2xlarge: \"r5a.2xlarge\",\n r5a_4xlarge: \"r5a.4xlarge\",\n r5a_8xlarge: \"r5a.8xlarge\",\n r5a_large: \"r5a.large\",\n r5a_xlarge: \"r5a.xlarge\",\n r5ad_12xlarge: \"r5ad.12xlarge\",\n r5ad_16xlarge: \"r5ad.16xlarge\",\n r5ad_24xlarge: \"r5ad.24xlarge\",\n r5ad_2xlarge: \"r5ad.2xlarge\",\n r5ad_4xlarge: \"r5ad.4xlarge\",\n r5ad_8xlarge: \"r5ad.8xlarge\",\n r5ad_large: \"r5ad.large\",\n r5ad_xlarge: \"r5ad.xlarge\",\n r5b_12xlarge: \"r5b.12xlarge\",\n r5b_16xlarge: \"r5b.16xlarge\",\n r5b_24xlarge: \"r5b.24xlarge\",\n r5b_2xlarge: \"r5b.2xlarge\",\n r5b_4xlarge: \"r5b.4xlarge\",\n r5b_8xlarge: \"r5b.8xlarge\",\n r5b_large: \"r5b.large\",\n r5b_metal: \"r5b.metal\",\n r5b_xlarge: \"r5b.xlarge\",\n r5d_12xlarge: \"r5d.12xlarge\",\n r5d_16xlarge: \"r5d.16xlarge\",\n r5d_24xlarge: \"r5d.24xlarge\",\n r5d_2xlarge: \"r5d.2xlarge\",\n r5d_4xlarge: \"r5d.4xlarge\",\n r5d_8xlarge: \"r5d.8xlarge\",\n r5d_large: \"r5d.large\",\n r5d_metal: \"r5d.metal\",\n r5d_xlarge: \"r5d.xlarge\",\n r5dn_12xlarge: \"r5dn.12xlarge\",\n r5dn_16xlarge: \"r5dn.16xlarge\",\n r5dn_24xlarge: \"r5dn.24xlarge\",\n r5dn_2xlarge: \"r5dn.2xlarge\",\n r5dn_4xlarge: \"r5dn.4xlarge\",\n r5dn_8xlarge: \"r5dn.8xlarge\",\n r5dn_large: \"r5dn.large\",\n r5dn_metal: \"r5dn.metal\",\n r5dn_xlarge: \"r5dn.xlarge\",\n r5n_12xlarge: \"r5n.12xlarge\",\n r5n_16xlarge: \"r5n.16xlarge\",\n r5n_24xlarge: \"r5n.24xlarge\",\n r5n_2xlarge: \"r5n.2xlarge\",\n r5n_4xlarge: \"r5n.4xlarge\",\n r5n_8xlarge: \"r5n.8xlarge\",\n r5n_large: \"r5n.large\",\n r5n_metal: \"r5n.metal\",\n r5n_xlarge: \"r5n.xlarge\",\n r6a_12xlarge: \"r6a.12xlarge\",\n r6a_16xlarge: \"r6a.16xlarge\",\n r6a_24xlarge: \"r6a.24xlarge\",\n r6a_2xlarge: \"r6a.2xlarge\",\n r6a_32xlarge: \"r6a.32xlarge\",\n r6a_48xlarge: \"r6a.48xlarge\",\n r6a_4xlarge: \"r6a.4xlarge\",\n r6a_8xlarge: \"r6a.8xlarge\",\n r6a_large: \"r6a.large\",\n r6a_metal: \"r6a.metal\",\n r6a_xlarge: \"r6a.xlarge\",\n r6g_12xlarge: \"r6g.12xlarge\",\n r6g_16xlarge: \"r6g.16xlarge\",\n r6g_2xlarge: \"r6g.2xlarge\",\n r6g_4xlarge: \"r6g.4xlarge\",\n r6g_8xlarge: \"r6g.8xlarge\",\n r6g_large: \"r6g.large\",\n r6g_medium: \"r6g.medium\",\n r6g_metal: \"r6g.metal\",\n r6g_xlarge: \"r6g.xlarge\",\n r6gd_12xlarge: \"r6gd.12xlarge\",\n r6gd_16xlarge: \"r6gd.16xlarge\",\n r6gd_2xlarge: \"r6gd.2xlarge\",\n r6gd_4xlarge: \"r6gd.4xlarge\",\n r6gd_8xlarge: \"r6gd.8xlarge\",\n r6gd_large: \"r6gd.large\",\n r6gd_medium: \"r6gd.medium\",\n r6gd_metal: \"r6gd.metal\",\n r6gd_xlarge: \"r6gd.xlarge\",\n r6i_12xlarge: \"r6i.12xlarge\",\n r6i_16xlarge: \"r6i.16xlarge\",\n r6i_24xlarge: \"r6i.24xlarge\",\n r6i_2xlarge: \"r6i.2xlarge\",\n r6i_32xlarge: \"r6i.32xlarge\",\n r6i_4xlarge: \"r6i.4xlarge\",\n r6i_8xlarge: \"r6i.8xlarge\",\n r6i_large: \"r6i.large\",\n r6i_metal: \"r6i.metal\",\n r6i_xlarge: \"r6i.xlarge\",\n r6id_12xlarge: \"r6id.12xlarge\",\n r6id_16xlarge: \"r6id.16xlarge\",\n r6id_24xlarge: \"r6id.24xlarge\",\n r6id_2xlarge: \"r6id.2xlarge\",\n r6id_32xlarge: \"r6id.32xlarge\",\n r6id_4xlarge: \"r6id.4xlarge\",\n r6id_8xlarge: \"r6id.8xlarge\",\n r6id_large: \"r6id.large\",\n r6id_metal: \"r6id.metal\",\n r6id_xlarge: \"r6id.xlarge\",\n r6idn_12xlarge: \"r6idn.12xlarge\",\n r6idn_16xlarge: \"r6idn.16xlarge\",\n r6idn_24xlarge: \"r6idn.24xlarge\",\n r6idn_2xlarge: \"r6idn.2xlarge\",\n r6idn_32xlarge: \"r6idn.32xlarge\",\n r6idn_4xlarge: \"r6idn.4xlarge\",\n r6idn_8xlarge: \"r6idn.8xlarge\",\n r6idn_large: \"r6idn.large\",\n r6idn_metal: \"r6idn.metal\",\n r6idn_xlarge: \"r6idn.xlarge\",\n r6in_12xlarge: \"r6in.12xlarge\",\n r6in_16xlarge: \"r6in.16xlarge\",\n r6in_24xlarge: \"r6in.24xlarge\",\n r6in_2xlarge: \"r6in.2xlarge\",\n r6in_32xlarge: \"r6in.32xlarge\",\n r6in_4xlarge: \"r6in.4xlarge\",\n r6in_8xlarge: \"r6in.8xlarge\",\n r6in_large: \"r6in.large\",\n r6in_metal: \"r6in.metal\",\n r6in_xlarge: \"r6in.xlarge\",\n r7a_12xlarge: \"r7a.12xlarge\",\n r7a_16xlarge: \"r7a.16xlarge\",\n r7a_24xlarge: \"r7a.24xlarge\",\n r7a_2xlarge: \"r7a.2xlarge\",\n r7a_32xlarge: \"r7a.32xlarge\",\n r7a_48xlarge: \"r7a.48xlarge\",\n r7a_4xlarge: \"r7a.4xlarge\",\n r7a_8xlarge: \"r7a.8xlarge\",\n r7a_large: \"r7a.large\",\n r7a_medium: \"r7a.medium\",\n r7a_metal_48xl: \"r7a.metal-48xl\",\n r7a_xlarge: \"r7a.xlarge\",\n r7g_12xlarge: \"r7g.12xlarge\",\n r7g_16xlarge: \"r7g.16xlarge\",\n r7g_2xlarge: \"r7g.2xlarge\",\n r7g_4xlarge: \"r7g.4xlarge\",\n r7g_8xlarge: \"r7g.8xlarge\",\n r7g_large: \"r7g.large\",\n r7g_medium: \"r7g.medium\",\n r7g_metal: \"r7g.metal\",\n r7g_xlarge: \"r7g.xlarge\",\n r7gd_12xlarge: \"r7gd.12xlarge\",\n r7gd_16xlarge: \"r7gd.16xlarge\",\n r7gd_2xlarge: \"r7gd.2xlarge\",\n r7gd_4xlarge: \"r7gd.4xlarge\",\n r7gd_8xlarge: \"r7gd.8xlarge\",\n r7gd_large: \"r7gd.large\",\n r7gd_medium: \"r7gd.medium\",\n r7gd_metal: \"r7gd.metal\",\n r7gd_xlarge: \"r7gd.xlarge\",\n r7i_12xlarge: \"r7i.12xlarge\",\n r7i_16xlarge: \"r7i.16xlarge\",\n r7i_24xlarge: \"r7i.24xlarge\",\n r7i_2xlarge: \"r7i.2xlarge\",\n r7i_48xlarge: \"r7i.48xlarge\",\n r7i_4xlarge: \"r7i.4xlarge\",\n r7i_8xlarge: \"r7i.8xlarge\",\n r7i_large: \"r7i.large\",\n r7i_metal_24xl: \"r7i.metal-24xl\",\n r7i_metal_48xl: \"r7i.metal-48xl\",\n r7i_xlarge: \"r7i.xlarge\",\n r7iz_12xlarge: \"r7iz.12xlarge\",\n r7iz_16xlarge: \"r7iz.16xlarge\",\n r7iz_2xlarge: \"r7iz.2xlarge\",\n r7iz_32xlarge: \"r7iz.32xlarge\",\n r7iz_4xlarge: \"r7iz.4xlarge\",\n r7iz_8xlarge: \"r7iz.8xlarge\",\n r7iz_large: \"r7iz.large\",\n r7iz_metal_16xl: \"r7iz.metal-16xl\",\n r7iz_metal_32xl: \"r7iz.metal-32xl\",\n r7iz_xlarge: \"r7iz.xlarge\",\n r8g_12xlarge: \"r8g.12xlarge\",\n r8g_16xlarge: \"r8g.16xlarge\",\n r8g_24xlarge: \"r8g.24xlarge\",\n r8g_2xlarge: \"r8g.2xlarge\",\n r8g_48xlarge: \"r8g.48xlarge\",\n r8g_4xlarge: \"r8g.4xlarge\",\n r8g_8xlarge: \"r8g.8xlarge\",\n r8g_large: \"r8g.large\",\n r8g_medium: \"r8g.medium\",\n r8g_metal_24xl: \"r8g.metal-24xl\",\n r8g_metal_48xl: \"r8g.metal-48xl\",\n r8g_xlarge: \"r8g.xlarge\",\n t1_micro: \"t1.micro\",\n t2_2xlarge: \"t2.2xlarge\",\n t2_large: \"t2.large\",\n t2_medium: \"t2.medium\",\n t2_micro: \"t2.micro\",\n t2_nano: \"t2.nano\",\n t2_small: \"t2.small\",\n t2_xlarge: \"t2.xlarge\",\n t3_2xlarge: \"t3.2xlarge\",\n t3_large: \"t3.large\",\n t3_medium: \"t3.medium\",\n t3_micro: \"t3.micro\",\n t3_nano: \"t3.nano\",\n t3_small: \"t3.small\",\n t3_xlarge: \"t3.xlarge\",\n t3a_2xlarge: \"t3a.2xlarge\",\n t3a_large: \"t3a.large\",\n t3a_medium: \"t3a.medium\",\n t3a_micro: \"t3a.micro\",\n t3a_nano: \"t3a.nano\",\n t3a_small: \"t3a.small\",\n t3a_xlarge: \"t3a.xlarge\",\n t4g_2xlarge: \"t4g.2xlarge\",\n t4g_large: \"t4g.large\",\n t4g_medium: \"t4g.medium\",\n t4g_micro: \"t4g.micro\",\n t4g_nano: \"t4g.nano\",\n t4g_small: \"t4g.small\",\n t4g_xlarge: \"t4g.xlarge\",\n trn1_2xlarge: \"trn1.2xlarge\",\n trn1_32xlarge: \"trn1.32xlarge\",\n trn1n_32xlarge: \"trn1n.32xlarge\",\n trn2_48xlarge: \"trn2.48xlarge\",\n u7i_12tb_224xlarge: \"u7i-12tb.224xlarge\",\n u7i_6tb_112xlarge: \"u7i-6tb.112xlarge\",\n u7i_8tb_112xlarge: \"u7i-8tb.112xlarge\",\n u7ib_12tb_224xlarge: \"u7ib-12tb.224xlarge\",\n u7in_16tb_224xlarge: \"u7in-16tb.224xlarge\",\n u7in_24tb_224xlarge: \"u7in-24tb.224xlarge\",\n u7in_32tb_224xlarge: \"u7in-32tb.224xlarge\",\n u7inh_32tb_480xlarge: \"u7inh-32tb.480xlarge\",\n u_12tb1_112xlarge: \"u-12tb1.112xlarge\",\n u_12tb1_metal: \"u-12tb1.metal\",\n u_18tb1_112xlarge: \"u-18tb1.112xlarge\",\n u_18tb1_metal: \"u-18tb1.metal\",\n u_24tb1_112xlarge: \"u-24tb1.112xlarge\",\n u_24tb1_metal: \"u-24tb1.metal\",\n u_3tb1_56xlarge: \"u-3tb1.56xlarge\",\n u_6tb1_112xlarge: \"u-6tb1.112xlarge\",\n u_6tb1_56xlarge: \"u-6tb1.56xlarge\",\n u_6tb1_metal: \"u-6tb1.metal\",\n u_9tb1_112xlarge: \"u-9tb1.112xlarge\",\n u_9tb1_metal: \"u-9tb1.metal\",\n vt1_24xlarge: \"vt1.24xlarge\",\n vt1_3xlarge: \"vt1.3xlarge\",\n vt1_6xlarge: \"vt1.6xlarge\",\n x1_16xlarge: \"x1.16xlarge\",\n x1_32xlarge: \"x1.32xlarge\",\n x1e_16xlarge: \"x1e.16xlarge\",\n x1e_2xlarge: \"x1e.2xlarge\",\n x1e_32xlarge: \"x1e.32xlarge\",\n x1e_4xlarge: \"x1e.4xlarge\",\n x1e_8xlarge: \"x1e.8xlarge\",\n x1e_xlarge: \"x1e.xlarge\",\n x2gd_12xlarge: \"x2gd.12xlarge\",\n x2gd_16xlarge: \"x2gd.16xlarge\",\n x2gd_2xlarge: \"x2gd.2xlarge\",\n x2gd_4xlarge: \"x2gd.4xlarge\",\n x2gd_8xlarge: \"x2gd.8xlarge\",\n x2gd_large: \"x2gd.large\",\n x2gd_medium: \"x2gd.medium\",\n x2gd_metal: \"x2gd.metal\",\n x2gd_xlarge: \"x2gd.xlarge\",\n x2idn_16xlarge: \"x2idn.16xlarge\",\n x2idn_24xlarge: \"x2idn.24xlarge\",\n x2idn_32xlarge: \"x2idn.32xlarge\",\n x2idn_metal: \"x2idn.metal\",\n x2iedn_16xlarge: \"x2iedn.16xlarge\",\n x2iedn_24xlarge: \"x2iedn.24xlarge\",\n x2iedn_2xlarge: \"x2iedn.2xlarge\",\n x2iedn_32xlarge: \"x2iedn.32xlarge\",\n x2iedn_4xlarge: \"x2iedn.4xlarge\",\n x2iedn_8xlarge: \"x2iedn.8xlarge\",\n x2iedn_metal: \"x2iedn.metal\",\n x2iedn_xlarge: \"x2iedn.xlarge\",\n x2iezn_12xlarge: \"x2iezn.12xlarge\",\n x2iezn_2xlarge: \"x2iezn.2xlarge\",\n x2iezn_4xlarge: \"x2iezn.4xlarge\",\n x2iezn_6xlarge: \"x2iezn.6xlarge\",\n x2iezn_8xlarge: \"x2iezn.8xlarge\",\n x2iezn_metal: \"x2iezn.metal\",\n x8g_12xlarge: \"x8g.12xlarge\",\n x8g_16xlarge: \"x8g.16xlarge\",\n x8g_24xlarge: \"x8g.24xlarge\",\n x8g_2xlarge: \"x8g.2xlarge\",\n x8g_48xlarge: \"x8g.48xlarge\",\n x8g_4xlarge: \"x8g.4xlarge\",\n x8g_8xlarge: \"x8g.8xlarge\",\n x8g_large: \"x8g.large\",\n x8g_medium: \"x8g.medium\",\n x8g_metal_24xl: \"x8g.metal-24xl\",\n x8g_metal_48xl: \"x8g.metal-48xl\",\n x8g_xlarge: \"x8g.xlarge\",\n z1d_12xlarge: \"z1d.12xlarge\",\n z1d_2xlarge: \"z1d.2xlarge\",\n z1d_3xlarge: \"z1d.3xlarge\",\n z1d_6xlarge: \"z1d.6xlarge\",\n z1d_large: \"z1d.large\",\n z1d_metal: \"z1d.metal\",\n z1d_xlarge: \"z1d.xlarge\"\n};\nvar FleetCapacityReservationTenancy = {\n default: \"default\"\n};\nvar CarrierGatewayState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar ClientVpnAuthenticationType = {\n certificate_authentication: \"certificate-authentication\",\n directory_service_authentication: \"directory-service-authentication\",\n federated_authentication: \"federated-authentication\"\n};\nvar SelfServicePortal = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar TransportProtocol = {\n tcp: \"tcp\",\n udp: \"udp\"\n};\nvar ClientVpnEndpointStatusCode = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending_associate: \"pending-associate\"\n};\nvar ClientVpnRouteStatusCode = {\n active: \"active\",\n creating: \"creating\",\n deleting: \"deleting\",\n failed: \"failed\"\n};\nvar GatewayType = {\n ipsec_1: \"ipsec.1\"\n};\nvar BlockPublicAccessMode = {\n block_bidirectional: \"block-bidirectional\",\n block_ingress: \"block-ingress\",\n off: \"off\"\n};\nvar HostnameType = {\n ip_name: \"ip-name\",\n resource_name: \"resource-name\"\n};\nvar SubnetState = {\n available: \"available\",\n pending: \"pending\",\n unavailable: \"unavailable\"\n};\nvar VpcEncryptionControlMode = {\n enforce: \"enforce\",\n monitor: \"monitor\"\n};\nvar VpcEncryptionControlExclusionState = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n enabling: \"enabling\"\n};\nvar VpcEncryptionControlState = {\n available: \"available\",\n creating: \"creating\",\n delete_failed: \"delete-failed\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n enforce_failed: \"enforce-failed\",\n enforce_in_progress: \"enforce-in-progress\",\n monitor_failed: \"monitor-failed\",\n monitor_in_progress: \"monitor-in-progress\"\n};\nvar Tenancy = {\n dedicated: \"dedicated\",\n default: \"default\",\n host: \"host\"\n};\nvar VpcState = {\n available: \"available\",\n pending: \"pending\"\n};\nvar FleetExcessCapacityTerminationPolicy = {\n NO_TERMINATION: \"no-termination\",\n TERMINATION: \"termination\"\n};\nvar VolumeType = {\n gp2: \"gp2\",\n gp3: \"gp3\",\n io1: \"io1\",\n io2: \"io2\",\n sc1: \"sc1\",\n st1: \"st1\",\n standard: \"standard\"\n};\nvar BareMetal = {\n EXCLUDED: \"excluded\",\n INCLUDED: \"included\",\n REQUIRED: \"required\"\n};\nvar BurstablePerformance = {\n EXCLUDED: \"excluded\",\n INCLUDED: \"included\",\n REQUIRED: \"required\"\n};\nvar CpuManufacturer = {\n AMAZON_WEB_SERVICES: \"amazon-web-services\",\n AMD: \"amd\",\n APPLE: \"apple\",\n INTEL: \"intel\"\n};\nvar InstanceGeneration = {\n CURRENT: \"current\",\n PREVIOUS: \"previous\"\n};\nvar LocalStorage = {\n EXCLUDED: \"excluded\",\n INCLUDED: \"included\",\n REQUIRED: \"required\"\n};\nvar LocalStorageType = {\n HDD: \"hdd\",\n SSD: \"ssd\"\n};\nvar FleetOnDemandAllocationStrategy = {\n LOWEST_PRICE: \"lowest-price\",\n PRIORITIZED: \"prioritized\"\n};\nvar FleetCapacityReservationUsageStrategy = {\n USE_CAPACITY_RESERVATIONS_FIRST: \"use-capacity-reservations-first\"\n};\nvar SpotAllocationStrategy = {\n CAPACITY_OPTIMIZED: \"capacity-optimized\",\n CAPACITY_OPTIMIZED_PRIORITIZED: \"capacity-optimized-prioritized\",\n DIVERSIFIED: \"diversified\",\n LOWEST_PRICE: \"lowest-price\",\n PRICE_CAPACITY_OPTIMIZED: \"price-capacity-optimized\"\n};\nvar SpotInstanceInterruptionBehavior = {\n hibernate: \"hibernate\",\n stop: \"stop\",\n terminate: \"terminate\"\n};\nvar FleetReplacementStrategy = {\n LAUNCH: \"launch\",\n LAUNCH_BEFORE_TERMINATE: \"launch-before-terminate\"\n};\nvar DefaultTargetCapacityType = {\n CAPACITY_BLOCK: \"capacity-block\",\n ON_DEMAND: \"on-demand\",\n SPOT: \"spot\"\n};\nvar TargetCapacityUnitType = {\n MEMORY_MIB: \"memory-mib\",\n UNITS: \"units\",\n VCPU: \"vcpu\"\n};\nvar FleetType = {\n INSTANT: \"instant\",\n MAINTAIN: \"maintain\",\n REQUEST: \"request\"\n};\nvar InstanceLifecycle = {\n ON_DEMAND: \"on-demand\",\n SPOT: \"spot\"\n};\nvar PlatformValues = {\n Windows: \"Windows\"\n};\nvar DestinationFileFormat = {\n parquet: \"parquet\",\n plain_text: \"plain-text\"\n};\nvar LogDestinationType = {\n cloud_watch_logs: \"cloud-watch-logs\",\n kinesis_data_firehose: \"kinesis-data-firehose\",\n s3: \"s3\"\n};\nvar FlowLogsResourceType = {\n NetworkInterface: \"NetworkInterface\",\n Subnet: \"Subnet\",\n TransitGateway: \"TransitGateway\",\n TransitGatewayAttachment: \"TransitGatewayAttachment\",\n VPC: \"VPC\"\n};\nvar TrafficType = {\n ACCEPT: \"ACCEPT\",\n ALL: \"ALL\",\n REJECT: \"REJECT\"\n};\nvar Ec2InstanceConnectEndpointState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\"\n};\nvar ContainerFormat = {\n ova: \"ova\"\n};\nvar DiskImageFormat = {\n RAW: \"RAW\",\n VHD: \"VHD\",\n VMDK: \"VMDK\"\n};\nvar ExportEnvironment = {\n citrix: \"citrix\",\n microsoft: \"microsoft\",\n vmware: \"vmware\"\n};\nvar ExportTaskState = {\n active: \"active\",\n cancelled: \"cancelled\",\n cancelling: \"cancelling\",\n completed: \"completed\"\n};\nvar IpamMeteredAccount = {\n ipam_owner: \"ipam-owner\",\n resource_owner: \"resource-owner\"\n};\nvar IpamTier = {\n advanced: \"advanced\",\n free: \"free\"\n};\nvar IpamState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n isolate_complete: \"isolate-complete\",\n isolate_in_progress: \"isolate-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar IpamExternalResourceVerificationTokenState = {\n CREATE_COMPLETE: \"create-complete\",\n CREATE_FAILED: \"create-failed\",\n CREATE_IN_PROGRESS: \"create-in-progress\",\n DELETE_COMPLETE: \"delete-complete\",\n DELETE_FAILED: \"delete-failed\",\n DELETE_IN_PROGRESS: \"delete-in-progress\"\n};\nvar TokenState = {\n expired: \"expired\",\n valid: \"valid\"\n};\nvar IpamPoolAwsService = {\n ec2: \"ec2\"\n};\nvar IpamPoolPublicIpSource = {\n amazon: \"amazon\",\n byoip: \"byoip\"\n};\nvar IpamPoolSourceResourceType = {\n vpc: \"vpc\"\n};\nvar IpamScopeType = {\n private: \"private\",\n public: \"public\"\n};\nvar IpamPoolState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n isolate_complete: \"isolate-complete\",\n isolate_in_progress: \"isolate-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar IpamResourceDiscoveryState = {\n CREATE_COMPLETE: \"create-complete\",\n CREATE_FAILED: \"create-failed\",\n CREATE_IN_PROGRESS: \"create-in-progress\",\n DELETE_COMPLETE: \"delete-complete\",\n DELETE_FAILED: \"delete-failed\",\n DELETE_IN_PROGRESS: \"delete-in-progress\",\n ISOLATE_COMPLETE: \"isolate-complete\",\n ISOLATE_IN_PROGRESS: \"isolate-in-progress\",\n MODIFY_COMPLETE: \"modify-complete\",\n MODIFY_FAILED: \"modify-failed\",\n MODIFY_IN_PROGRESS: \"modify-in-progress\",\n RESTORE_IN_PROGRESS: \"restore-in-progress\"\n};\nvar IpamScopeState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n isolate_complete: \"isolate-complete\",\n isolate_in_progress: \"isolate-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar KeyFormat = {\n pem: \"pem\",\n ppk: \"ppk\"\n};\nvar KeyType = {\n ed25519: \"ed25519\",\n rsa: \"rsa\"\n};\nvar CapacityReservationPreference = {\n capacity_reservations_only: \"capacity-reservations-only\",\n none: \"none\",\n open: \"open\"\n};\nvar AmdSevSnpSpecification = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar ShutdownBehavior = {\n stop: \"stop\",\n terminate: \"terminate\"\n};\nvar MarketType = {\n capacity_block: \"capacity-block\",\n spot: \"spot\"\n};\nvar InstanceInterruptionBehavior = {\n hibernate: \"hibernate\",\n stop: \"stop\",\n terminate: \"terminate\"\n};\nvar SpotInstanceType = {\n one_time: \"one-time\",\n persistent: \"persistent\"\n};\nvar LaunchTemplateAutoRecoveryState = {\n default: \"default\",\n disabled: \"disabled\"\n};\nvar LaunchTemplateInstanceMetadataEndpointState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar LaunchTemplateInstanceMetadataProtocolIpv6 = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar LaunchTemplateHttpTokensState = {\n optional: \"optional\",\n required: \"required\"\n};\nvar LaunchTemplateInstanceMetadataTagsState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar InstanceBandwidthWeighting = {\n DEFAULT: \"default\",\n EBS_1: \"ebs-1\",\n VPC_1: \"vpc-1\"\n};\nvar LaunchTemplateInstanceMetadataOptionsState = {\n applied: \"applied\",\n pending: \"pending\"\n};\nvar CopySnapshotRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PresignedUrl && { PresignedUrl: import_smithy_client.SENSITIVE_STRING }\n}), \"CopySnapshotRequestFilterSensitiveLog\");\nvar KeyPairFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyMaterial && { KeyMaterial: import_smithy_client.SENSITIVE_STRING }\n}), \"KeyPairFilterSensitiveLog\");\nvar RequestLaunchTemplateDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"RequestLaunchTemplateDataFilterSensitiveLog\");\nvar CreateLaunchTemplateRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: RequestLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"CreateLaunchTemplateRequestFilterSensitiveLog\");\nvar CreateLaunchTemplateVersionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: RequestLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"CreateLaunchTemplateVersionRequestFilterSensitiveLog\");\nvar ResponseLaunchTemplateDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"ResponseLaunchTemplateDataFilterSensitiveLog\");\n\n// src/commands/CopySnapshotCommand.ts\nvar CopySnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_ec2.getCopySnapshotPresignedUrlPlugin)(config)\n ];\n}).s(\"AmazonEC2\", \"CopySnapshot\", {}).n(\"EC2Client\", \"CopySnapshotCommand\").f(CopySnapshotRequestFilterSensitiveLog, void 0).ser(se_CopySnapshotCommand).de(de_CopySnapshotCommand).build() {\n static {\n __name(this, \"CopySnapshotCommand\");\n }\n};\n\n// src/commands/CreateCapacityReservationBySplittingCommand.ts\n\n\n\nvar CreateCapacityReservationBySplittingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCapacityReservationBySplitting\", {}).n(\"EC2Client\", \"CreateCapacityReservationBySplittingCommand\").f(void 0, void 0).ser(se_CreateCapacityReservationBySplittingCommand).de(de_CreateCapacityReservationBySplittingCommand).build() {\n static {\n __name(this, \"CreateCapacityReservationBySplittingCommand\");\n }\n};\n\n// src/commands/CreateCapacityReservationCommand.ts\n\n\n\nvar CreateCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCapacityReservation\", {}).n(\"EC2Client\", \"CreateCapacityReservationCommand\").f(void 0, void 0).ser(se_CreateCapacityReservationCommand).de(de_CreateCapacityReservationCommand).build() {\n static {\n __name(this, \"CreateCapacityReservationCommand\");\n }\n};\n\n// src/commands/CreateCapacityReservationFleetCommand.ts\n\n\n\nvar CreateCapacityReservationFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCapacityReservationFleet\", {}).n(\"EC2Client\", \"CreateCapacityReservationFleetCommand\").f(void 0, void 0).ser(se_CreateCapacityReservationFleetCommand).de(de_CreateCapacityReservationFleetCommand).build() {\n static {\n __name(this, \"CreateCapacityReservationFleetCommand\");\n }\n};\n\n// src/commands/CreateCarrierGatewayCommand.ts\n\n\n\nvar CreateCarrierGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCarrierGateway\", {}).n(\"EC2Client\", \"CreateCarrierGatewayCommand\").f(void 0, void 0).ser(se_CreateCarrierGatewayCommand).de(de_CreateCarrierGatewayCommand).build() {\n static {\n __name(this, \"CreateCarrierGatewayCommand\");\n }\n};\n\n// src/commands/CreateClientVpnEndpointCommand.ts\n\n\n\nvar CreateClientVpnEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateClientVpnEndpoint\", {}).n(\"EC2Client\", \"CreateClientVpnEndpointCommand\").f(void 0, void 0).ser(se_CreateClientVpnEndpointCommand).de(de_CreateClientVpnEndpointCommand).build() {\n static {\n __name(this, \"CreateClientVpnEndpointCommand\");\n }\n};\n\n// src/commands/CreateClientVpnRouteCommand.ts\n\n\n\nvar CreateClientVpnRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateClientVpnRoute\", {}).n(\"EC2Client\", \"CreateClientVpnRouteCommand\").f(void 0, void 0).ser(se_CreateClientVpnRouteCommand).de(de_CreateClientVpnRouteCommand).build() {\n static {\n __name(this, \"CreateClientVpnRouteCommand\");\n }\n};\n\n// src/commands/CreateCoipCidrCommand.ts\n\n\n\nvar CreateCoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCoipCidr\", {}).n(\"EC2Client\", \"CreateCoipCidrCommand\").f(void 0, void 0).ser(se_CreateCoipCidrCommand).de(de_CreateCoipCidrCommand).build() {\n static {\n __name(this, \"CreateCoipCidrCommand\");\n }\n};\n\n// src/commands/CreateCoipPoolCommand.ts\n\n\n\nvar CreateCoipPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCoipPool\", {}).n(\"EC2Client\", \"CreateCoipPoolCommand\").f(void 0, void 0).ser(se_CreateCoipPoolCommand).de(de_CreateCoipPoolCommand).build() {\n static {\n __name(this, \"CreateCoipPoolCommand\");\n }\n};\n\n// src/commands/CreateCustomerGatewayCommand.ts\n\n\n\nvar CreateCustomerGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateCustomerGateway\", {}).n(\"EC2Client\", \"CreateCustomerGatewayCommand\").f(void 0, void 0).ser(se_CreateCustomerGatewayCommand).de(de_CreateCustomerGatewayCommand).build() {\n static {\n __name(this, \"CreateCustomerGatewayCommand\");\n }\n};\n\n// src/commands/CreateDefaultSubnetCommand.ts\n\n\n\nvar CreateDefaultSubnetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateDefaultSubnet\", {}).n(\"EC2Client\", \"CreateDefaultSubnetCommand\").f(void 0, void 0).ser(se_CreateDefaultSubnetCommand).de(de_CreateDefaultSubnetCommand).build() {\n static {\n __name(this, \"CreateDefaultSubnetCommand\");\n }\n};\n\n// src/commands/CreateDefaultVpcCommand.ts\n\n\n\nvar CreateDefaultVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateDefaultVpc\", {}).n(\"EC2Client\", \"CreateDefaultVpcCommand\").f(void 0, void 0).ser(se_CreateDefaultVpcCommand).de(de_CreateDefaultVpcCommand).build() {\n static {\n __name(this, \"CreateDefaultVpcCommand\");\n }\n};\n\n// src/commands/CreateDhcpOptionsCommand.ts\n\n\n\nvar CreateDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateDhcpOptions\", {}).n(\"EC2Client\", \"CreateDhcpOptionsCommand\").f(void 0, void 0).ser(se_CreateDhcpOptionsCommand).de(de_CreateDhcpOptionsCommand).build() {\n static {\n __name(this, \"CreateDhcpOptionsCommand\");\n }\n};\n\n// src/commands/CreateEgressOnlyInternetGatewayCommand.ts\n\n\n\nvar CreateEgressOnlyInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateEgressOnlyInternetGateway\", {}).n(\"EC2Client\", \"CreateEgressOnlyInternetGatewayCommand\").f(void 0, void 0).ser(se_CreateEgressOnlyInternetGatewayCommand).de(de_CreateEgressOnlyInternetGatewayCommand).build() {\n static {\n __name(this, \"CreateEgressOnlyInternetGatewayCommand\");\n }\n};\n\n// src/commands/CreateFleetCommand.ts\n\n\n\nvar CreateFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateFleet\", {}).n(\"EC2Client\", \"CreateFleetCommand\").f(void 0, void 0).ser(se_CreateFleetCommand).de(de_CreateFleetCommand).build() {\n static {\n __name(this, \"CreateFleetCommand\");\n }\n};\n\n// src/commands/CreateFlowLogsCommand.ts\n\n\n\nvar CreateFlowLogsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateFlowLogs\", {}).n(\"EC2Client\", \"CreateFlowLogsCommand\").f(void 0, void 0).ser(se_CreateFlowLogsCommand).de(de_CreateFlowLogsCommand).build() {\n static {\n __name(this, \"CreateFlowLogsCommand\");\n }\n};\n\n// src/commands/CreateFpgaImageCommand.ts\n\n\n\nvar CreateFpgaImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateFpgaImage\", {}).n(\"EC2Client\", \"CreateFpgaImageCommand\").f(void 0, void 0).ser(se_CreateFpgaImageCommand).de(de_CreateFpgaImageCommand).build() {\n static {\n __name(this, \"CreateFpgaImageCommand\");\n }\n};\n\n// src/commands/CreateImageCommand.ts\n\n\n\nvar CreateImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateImage\", {}).n(\"EC2Client\", \"CreateImageCommand\").f(void 0, void 0).ser(se_CreateImageCommand).de(de_CreateImageCommand).build() {\n static {\n __name(this, \"CreateImageCommand\");\n }\n};\n\n// src/commands/CreateInstanceConnectEndpointCommand.ts\n\n\n\nvar CreateInstanceConnectEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInstanceConnectEndpoint\", {}).n(\"EC2Client\", \"CreateInstanceConnectEndpointCommand\").f(void 0, void 0).ser(se_CreateInstanceConnectEndpointCommand).de(de_CreateInstanceConnectEndpointCommand).build() {\n static {\n __name(this, \"CreateInstanceConnectEndpointCommand\");\n }\n};\n\n// src/commands/CreateInstanceEventWindowCommand.ts\n\n\n\nvar CreateInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInstanceEventWindow\", {}).n(\"EC2Client\", \"CreateInstanceEventWindowCommand\").f(void 0, void 0).ser(se_CreateInstanceEventWindowCommand).de(de_CreateInstanceEventWindowCommand).build() {\n static {\n __name(this, \"CreateInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/CreateInstanceExportTaskCommand.ts\n\n\n\nvar CreateInstanceExportTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInstanceExportTask\", {}).n(\"EC2Client\", \"CreateInstanceExportTaskCommand\").f(void 0, void 0).ser(se_CreateInstanceExportTaskCommand).de(de_CreateInstanceExportTaskCommand).build() {\n static {\n __name(this, \"CreateInstanceExportTaskCommand\");\n }\n};\n\n// src/commands/CreateInternetGatewayCommand.ts\n\n\n\nvar CreateInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateInternetGateway\", {}).n(\"EC2Client\", \"CreateInternetGatewayCommand\").f(void 0, void 0).ser(se_CreateInternetGatewayCommand).de(de_CreateInternetGatewayCommand).build() {\n static {\n __name(this, \"CreateInternetGatewayCommand\");\n }\n};\n\n// src/commands/CreateIpamCommand.ts\n\n\n\nvar CreateIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpam\", {}).n(\"EC2Client\", \"CreateIpamCommand\").f(void 0, void 0).ser(se_CreateIpamCommand).de(de_CreateIpamCommand).build() {\n static {\n __name(this, \"CreateIpamCommand\");\n }\n};\n\n// src/commands/CreateIpamExternalResourceVerificationTokenCommand.ts\n\n\n\nvar CreateIpamExternalResourceVerificationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamExternalResourceVerificationToken\", {}).n(\"EC2Client\", \"CreateIpamExternalResourceVerificationTokenCommand\").f(void 0, void 0).ser(se_CreateIpamExternalResourceVerificationTokenCommand).de(de_CreateIpamExternalResourceVerificationTokenCommand).build() {\n static {\n __name(this, \"CreateIpamExternalResourceVerificationTokenCommand\");\n }\n};\n\n// src/commands/CreateIpamPoolCommand.ts\n\n\n\nvar CreateIpamPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamPool\", {}).n(\"EC2Client\", \"CreateIpamPoolCommand\").f(void 0, void 0).ser(se_CreateIpamPoolCommand).de(de_CreateIpamPoolCommand).build() {\n static {\n __name(this, \"CreateIpamPoolCommand\");\n }\n};\n\n// src/commands/CreateIpamResourceDiscoveryCommand.ts\n\n\n\nvar CreateIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamResourceDiscovery\", {}).n(\"EC2Client\", \"CreateIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_CreateIpamResourceDiscoveryCommand).de(de_CreateIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"CreateIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/CreateIpamScopeCommand.ts\n\n\n\nvar CreateIpamScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateIpamScope\", {}).n(\"EC2Client\", \"CreateIpamScopeCommand\").f(void 0, void 0).ser(se_CreateIpamScopeCommand).de(de_CreateIpamScopeCommand).build() {\n static {\n __name(this, \"CreateIpamScopeCommand\");\n }\n};\n\n// src/commands/CreateKeyPairCommand.ts\n\n\n\nvar CreateKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateKeyPair\", {}).n(\"EC2Client\", \"CreateKeyPairCommand\").f(void 0, KeyPairFilterSensitiveLog).ser(se_CreateKeyPairCommand).de(de_CreateKeyPairCommand).build() {\n static {\n __name(this, \"CreateKeyPairCommand\");\n }\n};\n\n// src/commands/CreateLaunchTemplateCommand.ts\n\n\n\nvar CreateLaunchTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLaunchTemplate\", {}).n(\"EC2Client\", \"CreateLaunchTemplateCommand\").f(CreateLaunchTemplateRequestFilterSensitiveLog, void 0).ser(se_CreateLaunchTemplateCommand).de(de_CreateLaunchTemplateCommand).build() {\n static {\n __name(this, \"CreateLaunchTemplateCommand\");\n }\n};\n\n// src/commands/CreateLaunchTemplateVersionCommand.ts\n\n\n\n\n// src/models/models_2.ts\n\nvar LocalGatewayRouteState = {\n active: \"active\",\n blackhole: \"blackhole\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar LocalGatewayRouteType = {\n propagated: \"propagated\",\n static: \"static\"\n};\nvar LocalGatewayRouteTableMode = {\n coip: \"coip\",\n direct_vpc_routing: \"direct-vpc-routing\"\n};\nvar LocalGatewayVirtualInterfaceConfigurationState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar LocalGatewayVirtualInterfaceGroupConfigurationState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n incomplete: \"incomplete\",\n pending: \"pending\"\n};\nvar PrefixListState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_failed: \"delete-failed\",\n delete_in_progress: \"delete-in-progress\",\n modify_complete: \"modify-complete\",\n modify_failed: \"modify-failed\",\n modify_in_progress: \"modify-in-progress\",\n restore_complete: \"restore-complete\",\n restore_failed: \"restore-failed\",\n restore_in_progress: \"restore-in-progress\"\n};\nvar ConnectivityType = {\n PRIVATE: \"private\",\n PUBLIC: \"public\"\n};\nvar NatGatewayState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETING: \"deleting\",\n FAILED: \"failed\",\n PENDING: \"pending\"\n};\nvar RuleAction = {\n allow: \"allow\",\n deny: \"deny\"\n};\nvar NetworkInterfaceCreationType = {\n branch: \"branch\",\n efa: \"efa\",\n efa_only: \"efa-only\",\n trunk: \"trunk\"\n};\nvar NetworkInterfaceType = {\n api_gateway_managed: \"api_gateway_managed\",\n aws_codestar_connections_managed: \"aws_codestar_connections_managed\",\n branch: \"branch\",\n efa: \"efa\",\n efa_only: \"efa-only\",\n gateway_load_balancer: \"gateway_load_balancer\",\n gateway_load_balancer_endpoint: \"gateway_load_balancer_endpoint\",\n global_accelerator_managed: \"global_accelerator_managed\",\n interface: \"interface\",\n iot_rules_managed: \"iot_rules_managed\",\n lambda: \"lambda\",\n load_balancer: \"load_balancer\",\n natGateway: \"natGateway\",\n network_load_balancer: \"network_load_balancer\",\n quicksight: \"quicksight\",\n transit_gateway: \"transit_gateway\",\n trunk: \"trunk\",\n vpc_endpoint: \"vpc_endpoint\"\n};\nvar NetworkInterfaceStatus = {\n associated: \"associated\",\n attaching: \"attaching\",\n available: \"available\",\n detaching: \"detaching\",\n in_use: \"in-use\"\n};\nvar InterfacePermissionType = {\n EIP_ASSOCIATE: \"EIP-ASSOCIATE\",\n INSTANCE_ATTACH: \"INSTANCE-ATTACH\"\n};\nvar NetworkInterfacePermissionStateCode = {\n granted: \"granted\",\n pending: \"pending\",\n revoked: \"revoked\",\n revoking: \"revoking\"\n};\nvar SpreadLevel = {\n host: \"host\",\n rack: \"rack\"\n};\nvar PlacementStrategy = {\n cluster: \"cluster\",\n partition: \"partition\",\n spread: \"spread\"\n};\nvar PlacementGroupState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar ReplaceRootVolumeTaskState = {\n failed: \"failed\",\n failed_detached: \"failed-detached\",\n failing: \"failing\",\n in_progress: \"in-progress\",\n pending: \"pending\",\n succeeded: \"succeeded\"\n};\nvar RouteServerPersistRoutesAction = {\n DISABLE: \"disable\",\n ENABLE: \"enable\",\n RESET: \"reset\"\n};\nvar RouteServerPersistRoutesState = {\n DISABLED: \"disabled\",\n DISABLING: \"disabling\",\n ENABLED: \"enabled\",\n ENABLING: \"enabling\",\n MODIFYING: \"modifying\",\n RESETTING: \"resetting\"\n};\nvar RouteServerState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETING: \"deleting\",\n MODIFYING: \"modifying\",\n PENDING: \"pending\"\n};\nvar RouteServerEndpointState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETE_FAILED: \"delete-failed\",\n DELETING: \"deleting\",\n FAILED: \"failed\",\n FAILING: \"failing\",\n PENDING: \"pending\"\n};\nvar RouteServerPeerLivenessMode = {\n BFD: \"bfd\",\n BGP_KEEPALIVE: \"bgp-keepalive\"\n};\nvar RouteServerBfdState = {\n DOWN: \"down\",\n UP: \"up\"\n};\nvar RouteServerBgpState = {\n DOWN: \"down\",\n UP: \"up\"\n};\nvar RouteServerPeerState = {\n AVAILABLE: \"available\",\n DELETED: \"deleted\",\n DELETING: \"deleting\",\n FAILED: \"failed\",\n FAILING: \"failing\",\n PENDING: \"pending\"\n};\nvar RouteOrigin = {\n CreateRoute: \"CreateRoute\",\n CreateRouteTable: \"CreateRouteTable\",\n EnableVgwRoutePropagation: \"EnableVgwRoutePropagation\"\n};\nvar RouteState = {\n active: \"active\",\n blackhole: \"blackhole\"\n};\nvar SnapshotLocationEnum = {\n LOCAL: \"local\",\n REGIONAL: \"regional\"\n};\nvar SSEType = {\n none: \"none\",\n sse_ebs: \"sse-ebs\",\n sse_kms: \"sse-kms\"\n};\nvar SnapshotState = {\n completed: \"completed\",\n error: \"error\",\n pending: \"pending\",\n recoverable: \"recoverable\",\n recovering: \"recovering\"\n};\nvar StorageTier = {\n archive: \"archive\",\n standard: \"standard\"\n};\nvar TransferType = {\n standard: \"standard\",\n time_based: \"time-based\"\n};\nvar CopyTagsFromSource = {\n volume: \"volume\"\n};\nvar DatafeedSubscriptionState = {\n Active: \"Active\",\n Inactive: \"Inactive\"\n};\nvar SubnetCidrReservationType = {\n explicit: \"explicit\",\n prefix: \"prefix\"\n};\nvar TrafficMirrorRuleAction = {\n accept: \"accept\",\n reject: \"reject\"\n};\nvar TrafficDirection = {\n egress: \"egress\",\n ingress: \"ingress\"\n};\nvar TrafficMirrorNetworkService = {\n amazon_dns: \"amazon-dns\"\n};\nvar TrafficMirrorTargetType = {\n gateway_load_balancer_endpoint: \"gateway-load-balancer-endpoint\",\n network_interface: \"network-interface\",\n network_load_balancer: \"network-load-balancer\"\n};\nvar AutoAcceptSharedAttachmentsValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar DefaultRouteTableAssociationValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar DefaultRouteTablePropagationValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar MulticastSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar VpnEcmpSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar TransitGatewayState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n modifying: \"modifying\",\n pending: \"pending\"\n};\nvar ProtocolValue = {\n gre: \"gre\"\n};\nvar BgpStatus = {\n down: \"down\",\n up: \"up\"\n};\nvar TransitGatewayConnectPeerState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar AutoAcceptSharedAssociationsValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar Igmpv2SupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar StaticSourcesSupportValue = {\n disable: \"disable\",\n enable: \"enable\"\n};\nvar TransitGatewayMulticastDomainState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayPolicyTableState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayPrefixListReferenceState = {\n available: \"available\",\n deleting: \"deleting\",\n modifying: \"modifying\",\n pending: \"pending\"\n};\nvar TransitGatewayRouteState = {\n active: \"active\",\n blackhole: \"blackhole\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayRouteType = {\n propagated: \"propagated\",\n static: \"static\"\n};\nvar TransitGatewayRouteTableState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TransitGatewayRouteTableAnnouncementDirection = {\n incoming: \"incoming\",\n outgoing: \"outgoing\"\n};\nvar TransitGatewayRouteTableAnnouncementState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n failed: \"failed\",\n failing: \"failing\",\n pending: \"pending\"\n};\nvar VerifiedAccessEndpointAttachmentType = {\n vpc: \"vpc\"\n};\nvar VerifiedAccessEndpointProtocol = {\n http: \"http\",\n https: \"https\",\n tcp: \"tcp\"\n};\nvar VerifiedAccessEndpointType = {\n cidr: \"cidr\",\n load_balancer: \"load-balancer\",\n network_interface: \"network-interface\",\n rds: \"rds\"\n};\nvar VerifiedAccessEndpointStatusCode = {\n active: \"active\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\",\n updating: \"updating\"\n};\nvar VolumeState = {\n available: \"available\",\n creating: \"creating\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n error: \"error\",\n in_use: \"in-use\"\n};\nvar InternetGatewayExclusionMode = {\n allow_bidirectional: \"allow-bidirectional\",\n allow_egress: \"allow-egress\"\n};\nvar VpcBlockPublicAccessExclusionState = {\n create_complete: \"create-complete\",\n create_failed: \"create-failed\",\n create_in_progress: \"create-in-progress\",\n delete_complete: \"delete-complete\",\n delete_in_progress: \"delete-in-progress\",\n disable_complete: \"disable-complete\",\n disable_in_progress: \"disable-in-progress\",\n update_complete: \"update-complete\",\n update_failed: \"update-failed\",\n update_in_progress: \"update-in-progress\"\n};\nvar DnsRecordIpType = {\n dualstack: \"dualstack\",\n ipv4: \"ipv4\",\n ipv6: \"ipv6\",\n service_defined: \"service-defined\"\n};\nvar IpAddressType = {\n dualstack: \"dualstack\",\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar VpcEndpointType = {\n Gateway: \"Gateway\",\n GatewayLoadBalancer: \"GatewayLoadBalancer\",\n Interface: \"Interface\",\n Resource: \"Resource\",\n ServiceNetwork: \"ServiceNetwork\"\n};\nvar State = {\n Available: \"Available\",\n Deleted: \"Deleted\",\n Deleting: \"Deleting\",\n Expired: \"Expired\",\n Failed: \"Failed\",\n Partial: \"Partial\",\n Pending: \"Pending\",\n PendingAcceptance: \"PendingAcceptance\",\n Rejected: \"Rejected\"\n};\nvar ConnectionNotificationState = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ConnectionNotificationType = {\n Topic: \"Topic\"\n};\nvar PayerResponsibility = {\n ServiceOwner: \"ServiceOwner\"\n};\nvar DnsNameState = {\n Failed: \"failed\",\n PendingVerification: \"pendingVerification\",\n Verified: \"verified\"\n};\nvar ServiceState = {\n Available: \"Available\",\n Deleted: \"Deleted\",\n Deleting: \"Deleting\",\n Failed: \"Failed\",\n Pending: \"Pending\"\n};\nvar ServiceType = {\n Gateway: \"Gateway\",\n GatewayLoadBalancer: \"GatewayLoadBalancer\",\n Interface: \"Interface\"\n};\nvar LaunchTemplateVersionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: ResponseLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"LaunchTemplateVersionFilterSensitiveLog\");\nvar CreateLaunchTemplateVersionResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateVersion && {\n LaunchTemplateVersion: LaunchTemplateVersionFilterSensitiveLog(obj.LaunchTemplateVersion)\n }\n}), \"CreateLaunchTemplateVersionResultFilterSensitiveLog\");\nvar CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog\");\nvar CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog\");\nvar CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OidcOptions && {\n OidcOptions: CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog(obj.OidcOptions)\n },\n ...obj.NativeApplicationOidcOptions && {\n NativeApplicationOidcOptions: CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog(\n obj.NativeApplicationOidcOptions\n )\n }\n}), \"CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog\");\nvar CreateVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"CreateVerifiedAccessTrustProviderResultFilterSensitiveLog\");\n\n// src/commands/CreateLaunchTemplateVersionCommand.ts\nvar CreateLaunchTemplateVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLaunchTemplateVersion\", {}).n(\"EC2Client\", \"CreateLaunchTemplateVersionCommand\").f(CreateLaunchTemplateVersionRequestFilterSensitiveLog, CreateLaunchTemplateVersionResultFilterSensitiveLog).ser(se_CreateLaunchTemplateVersionCommand).de(de_CreateLaunchTemplateVersionCommand).build() {\n static {\n __name(this, \"CreateLaunchTemplateVersionCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteCommand.ts\n\n\n\nvar CreateLocalGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRoute\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteCommand).de(de_CreateLocalGatewayRouteCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteTableCommand.ts\n\n\n\nvar CreateLocalGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRouteTable\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteTableCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteTableCommand).de(de_CreateLocalGatewayRouteTableCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.ts\n\n\n\nvar CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).de(de_CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayRouteTableVpcAssociationCommand.ts\n\n\n\nvar CreateLocalGatewayRouteTableVpcAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayRouteTableVpcAssociation\", {}).n(\"EC2Client\", \"CreateLocalGatewayRouteTableVpcAssociationCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayRouteTableVpcAssociationCommand).de(de_CreateLocalGatewayRouteTableVpcAssociationCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayRouteTableVpcAssociationCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayVirtualInterfaceCommand.ts\n\n\n\nvar CreateLocalGatewayVirtualInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayVirtualInterface\", {}).n(\"EC2Client\", \"CreateLocalGatewayVirtualInterfaceCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayVirtualInterfaceCommand).de(de_CreateLocalGatewayVirtualInterfaceCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayVirtualInterfaceCommand\");\n }\n};\n\n// src/commands/CreateLocalGatewayVirtualInterfaceGroupCommand.ts\n\n\n\nvar CreateLocalGatewayVirtualInterfaceGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateLocalGatewayVirtualInterfaceGroup\", {}).n(\"EC2Client\", \"CreateLocalGatewayVirtualInterfaceGroupCommand\").f(void 0, void 0).ser(se_CreateLocalGatewayVirtualInterfaceGroupCommand).de(de_CreateLocalGatewayVirtualInterfaceGroupCommand).build() {\n static {\n __name(this, \"CreateLocalGatewayVirtualInterfaceGroupCommand\");\n }\n};\n\n// src/commands/CreateManagedPrefixListCommand.ts\n\n\n\nvar CreateManagedPrefixListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateManagedPrefixList\", {}).n(\"EC2Client\", \"CreateManagedPrefixListCommand\").f(void 0, void 0).ser(se_CreateManagedPrefixListCommand).de(de_CreateManagedPrefixListCommand).build() {\n static {\n __name(this, \"CreateManagedPrefixListCommand\");\n }\n};\n\n// src/commands/CreateNatGatewayCommand.ts\n\n\n\nvar CreateNatGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNatGateway\", {}).n(\"EC2Client\", \"CreateNatGatewayCommand\").f(void 0, void 0).ser(se_CreateNatGatewayCommand).de(de_CreateNatGatewayCommand).build() {\n static {\n __name(this, \"CreateNatGatewayCommand\");\n }\n};\n\n// src/commands/CreateNetworkAclCommand.ts\n\n\n\nvar CreateNetworkAclCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkAcl\", {}).n(\"EC2Client\", \"CreateNetworkAclCommand\").f(void 0, void 0).ser(se_CreateNetworkAclCommand).de(de_CreateNetworkAclCommand).build() {\n static {\n __name(this, \"CreateNetworkAclCommand\");\n }\n};\n\n// src/commands/CreateNetworkAclEntryCommand.ts\n\n\n\nvar CreateNetworkAclEntryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkAclEntry\", {}).n(\"EC2Client\", \"CreateNetworkAclEntryCommand\").f(void 0, void 0).ser(se_CreateNetworkAclEntryCommand).de(de_CreateNetworkAclEntryCommand).build() {\n static {\n __name(this, \"CreateNetworkAclEntryCommand\");\n }\n};\n\n// src/commands/CreateNetworkInsightsAccessScopeCommand.ts\n\n\n\nvar CreateNetworkInsightsAccessScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInsightsAccessScope\", {}).n(\"EC2Client\", \"CreateNetworkInsightsAccessScopeCommand\").f(void 0, void 0).ser(se_CreateNetworkInsightsAccessScopeCommand).de(de_CreateNetworkInsightsAccessScopeCommand).build() {\n static {\n __name(this, \"CreateNetworkInsightsAccessScopeCommand\");\n }\n};\n\n// src/commands/CreateNetworkInsightsPathCommand.ts\n\n\n\nvar CreateNetworkInsightsPathCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInsightsPath\", {}).n(\"EC2Client\", \"CreateNetworkInsightsPathCommand\").f(void 0, void 0).ser(se_CreateNetworkInsightsPathCommand).de(de_CreateNetworkInsightsPathCommand).build() {\n static {\n __name(this, \"CreateNetworkInsightsPathCommand\");\n }\n};\n\n// src/commands/CreateNetworkInterfaceCommand.ts\n\n\n\nvar CreateNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInterface\", {}).n(\"EC2Client\", \"CreateNetworkInterfaceCommand\").f(void 0, void 0).ser(se_CreateNetworkInterfaceCommand).de(de_CreateNetworkInterfaceCommand).build() {\n static {\n __name(this, \"CreateNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/CreateNetworkInterfacePermissionCommand.ts\n\n\n\nvar CreateNetworkInterfacePermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateNetworkInterfacePermission\", {}).n(\"EC2Client\", \"CreateNetworkInterfacePermissionCommand\").f(void 0, void 0).ser(se_CreateNetworkInterfacePermissionCommand).de(de_CreateNetworkInterfacePermissionCommand).build() {\n static {\n __name(this, \"CreateNetworkInterfacePermissionCommand\");\n }\n};\n\n// src/commands/CreatePlacementGroupCommand.ts\n\n\n\nvar CreatePlacementGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreatePlacementGroup\", {}).n(\"EC2Client\", \"CreatePlacementGroupCommand\").f(void 0, void 0).ser(se_CreatePlacementGroupCommand).de(de_CreatePlacementGroupCommand).build() {\n static {\n __name(this, \"CreatePlacementGroupCommand\");\n }\n};\n\n// src/commands/CreatePublicIpv4PoolCommand.ts\n\n\n\nvar CreatePublicIpv4PoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreatePublicIpv4Pool\", {}).n(\"EC2Client\", \"CreatePublicIpv4PoolCommand\").f(void 0, void 0).ser(se_CreatePublicIpv4PoolCommand).de(de_CreatePublicIpv4PoolCommand).build() {\n static {\n __name(this, \"CreatePublicIpv4PoolCommand\");\n }\n};\n\n// src/commands/CreateReplaceRootVolumeTaskCommand.ts\n\n\n\nvar CreateReplaceRootVolumeTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateReplaceRootVolumeTask\", {}).n(\"EC2Client\", \"CreateReplaceRootVolumeTaskCommand\").f(void 0, void 0).ser(se_CreateReplaceRootVolumeTaskCommand).de(de_CreateReplaceRootVolumeTaskCommand).build() {\n static {\n __name(this, \"CreateReplaceRootVolumeTaskCommand\");\n }\n};\n\n// src/commands/CreateReservedInstancesListingCommand.ts\n\n\n\nvar CreateReservedInstancesListingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateReservedInstancesListing\", {}).n(\"EC2Client\", \"CreateReservedInstancesListingCommand\").f(void 0, void 0).ser(se_CreateReservedInstancesListingCommand).de(de_CreateReservedInstancesListingCommand).build() {\n static {\n __name(this, \"CreateReservedInstancesListingCommand\");\n }\n};\n\n// src/commands/CreateRestoreImageTaskCommand.ts\n\n\n\nvar CreateRestoreImageTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRestoreImageTask\", {}).n(\"EC2Client\", \"CreateRestoreImageTaskCommand\").f(void 0, void 0).ser(se_CreateRestoreImageTaskCommand).de(de_CreateRestoreImageTaskCommand).build() {\n static {\n __name(this, \"CreateRestoreImageTaskCommand\");\n }\n};\n\n// src/commands/CreateRouteCommand.ts\n\n\n\nvar CreateRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRoute\", {}).n(\"EC2Client\", \"CreateRouteCommand\").f(void 0, void 0).ser(se_CreateRouteCommand).de(de_CreateRouteCommand).build() {\n static {\n __name(this, \"CreateRouteCommand\");\n }\n};\n\n// src/commands/CreateRouteServerCommand.ts\n\n\n\nvar CreateRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteServer\", {}).n(\"EC2Client\", \"CreateRouteServerCommand\").f(void 0, void 0).ser(se_CreateRouteServerCommand).de(de_CreateRouteServerCommand).build() {\n static {\n __name(this, \"CreateRouteServerCommand\");\n }\n};\n\n// src/commands/CreateRouteServerEndpointCommand.ts\n\n\n\nvar CreateRouteServerEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteServerEndpoint\", {}).n(\"EC2Client\", \"CreateRouteServerEndpointCommand\").f(void 0, void 0).ser(se_CreateRouteServerEndpointCommand).de(de_CreateRouteServerEndpointCommand).build() {\n static {\n __name(this, \"CreateRouteServerEndpointCommand\");\n }\n};\n\n// src/commands/CreateRouteServerPeerCommand.ts\n\n\n\nvar CreateRouteServerPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteServerPeer\", {}).n(\"EC2Client\", \"CreateRouteServerPeerCommand\").f(void 0, void 0).ser(se_CreateRouteServerPeerCommand).de(de_CreateRouteServerPeerCommand).build() {\n static {\n __name(this, \"CreateRouteServerPeerCommand\");\n }\n};\n\n// src/commands/CreateRouteTableCommand.ts\n\n\n\nvar CreateRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateRouteTable\", {}).n(\"EC2Client\", \"CreateRouteTableCommand\").f(void 0, void 0).ser(se_CreateRouteTableCommand).de(de_CreateRouteTableCommand).build() {\n static {\n __name(this, \"CreateRouteTableCommand\");\n }\n};\n\n// src/commands/CreateSecurityGroupCommand.ts\n\n\n\nvar CreateSecurityGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSecurityGroup\", {}).n(\"EC2Client\", \"CreateSecurityGroupCommand\").f(void 0, void 0).ser(se_CreateSecurityGroupCommand).de(de_CreateSecurityGroupCommand).build() {\n static {\n __name(this, \"CreateSecurityGroupCommand\");\n }\n};\n\n// src/commands/CreateSnapshotCommand.ts\n\n\n\nvar CreateSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSnapshot\", {}).n(\"EC2Client\", \"CreateSnapshotCommand\").f(void 0, void 0).ser(se_CreateSnapshotCommand).de(de_CreateSnapshotCommand).build() {\n static {\n __name(this, \"CreateSnapshotCommand\");\n }\n};\n\n// src/commands/CreateSnapshotsCommand.ts\n\n\n\nvar CreateSnapshotsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSnapshots\", {}).n(\"EC2Client\", \"CreateSnapshotsCommand\").f(void 0, void 0).ser(se_CreateSnapshotsCommand).de(de_CreateSnapshotsCommand).build() {\n static {\n __name(this, \"CreateSnapshotsCommand\");\n }\n};\n\n// src/commands/CreateSpotDatafeedSubscriptionCommand.ts\n\n\n\nvar CreateSpotDatafeedSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSpotDatafeedSubscription\", {}).n(\"EC2Client\", \"CreateSpotDatafeedSubscriptionCommand\").f(void 0, void 0).ser(se_CreateSpotDatafeedSubscriptionCommand).de(de_CreateSpotDatafeedSubscriptionCommand).build() {\n static {\n __name(this, \"CreateSpotDatafeedSubscriptionCommand\");\n }\n};\n\n// src/commands/CreateStoreImageTaskCommand.ts\n\n\n\nvar CreateStoreImageTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateStoreImageTask\", {}).n(\"EC2Client\", \"CreateStoreImageTaskCommand\").f(void 0, void 0).ser(se_CreateStoreImageTaskCommand).de(de_CreateStoreImageTaskCommand).build() {\n static {\n __name(this, \"CreateStoreImageTaskCommand\");\n }\n};\n\n// src/commands/CreateSubnetCidrReservationCommand.ts\n\n\n\nvar CreateSubnetCidrReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSubnetCidrReservation\", {}).n(\"EC2Client\", \"CreateSubnetCidrReservationCommand\").f(void 0, void 0).ser(se_CreateSubnetCidrReservationCommand).de(de_CreateSubnetCidrReservationCommand).build() {\n static {\n __name(this, \"CreateSubnetCidrReservationCommand\");\n }\n};\n\n// src/commands/CreateSubnetCommand.ts\n\n\n\nvar CreateSubnetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateSubnet\", {}).n(\"EC2Client\", \"CreateSubnetCommand\").f(void 0, void 0).ser(se_CreateSubnetCommand).de(de_CreateSubnetCommand).build() {\n static {\n __name(this, \"CreateSubnetCommand\");\n }\n};\n\n// src/commands/CreateTagsCommand.ts\n\n\n\nvar CreateTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTags\", {}).n(\"EC2Client\", \"CreateTagsCommand\").f(void 0, void 0).ser(se_CreateTagsCommand).de(de_CreateTagsCommand).build() {\n static {\n __name(this, \"CreateTagsCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorFilterCommand.ts\n\n\n\nvar CreateTrafficMirrorFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorFilter\", {}).n(\"EC2Client\", \"CreateTrafficMirrorFilterCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorFilterCommand).de(de_CreateTrafficMirrorFilterCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorFilterCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorFilterRuleCommand.ts\n\n\n\nvar CreateTrafficMirrorFilterRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorFilterRule\", {}).n(\"EC2Client\", \"CreateTrafficMirrorFilterRuleCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorFilterRuleCommand).de(de_CreateTrafficMirrorFilterRuleCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorFilterRuleCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorSessionCommand.ts\n\n\n\nvar CreateTrafficMirrorSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorSession\", {}).n(\"EC2Client\", \"CreateTrafficMirrorSessionCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorSessionCommand).de(de_CreateTrafficMirrorSessionCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorSessionCommand\");\n }\n};\n\n// src/commands/CreateTrafficMirrorTargetCommand.ts\n\n\n\nvar CreateTrafficMirrorTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTrafficMirrorTarget\", {}).n(\"EC2Client\", \"CreateTrafficMirrorTargetCommand\").f(void 0, void 0).ser(se_CreateTrafficMirrorTargetCommand).de(de_CreateTrafficMirrorTargetCommand).build() {\n static {\n __name(this, \"CreateTrafficMirrorTargetCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayCommand.ts\n\n\n\nvar CreateTransitGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGateway\", {}).n(\"EC2Client\", \"CreateTransitGatewayCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayCommand).de(de_CreateTransitGatewayCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayConnectCommand.ts\n\n\n\nvar CreateTransitGatewayConnectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayConnect\", {}).n(\"EC2Client\", \"CreateTransitGatewayConnectCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayConnectCommand).de(de_CreateTransitGatewayConnectCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayConnectCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayConnectPeerCommand.ts\n\n\n\nvar CreateTransitGatewayConnectPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayConnectPeer\", {}).n(\"EC2Client\", \"CreateTransitGatewayConnectPeerCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayConnectPeerCommand).de(de_CreateTransitGatewayConnectPeerCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayConnectPeerCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar CreateTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"CreateTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayMulticastDomainCommand).de(de_CreateTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar CreateTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"CreateTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayPeeringAttachmentCommand).de(de_CreateTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayPolicyTableCommand.ts\n\n\n\nvar CreateTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"CreateTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayPolicyTableCommand).de(de_CreateTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayPrefixListReferenceCommand.ts\n\n\n\nvar CreateTransitGatewayPrefixListReferenceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayPrefixListReference\", {}).n(\"EC2Client\", \"CreateTransitGatewayPrefixListReferenceCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayPrefixListReferenceCommand).de(de_CreateTransitGatewayPrefixListReferenceCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayPrefixListReferenceCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayRouteCommand.ts\n\n\n\nvar CreateTransitGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayRoute\", {}).n(\"EC2Client\", \"CreateTransitGatewayRouteCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayRouteCommand).de(de_CreateTransitGatewayRouteCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayRouteCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayRouteTableAnnouncementCommand.ts\n\n\n\nvar CreateTransitGatewayRouteTableAnnouncementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayRouteTableAnnouncement\", {}).n(\"EC2Client\", \"CreateTransitGatewayRouteTableAnnouncementCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayRouteTableAnnouncementCommand).de(de_CreateTransitGatewayRouteTableAnnouncementCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayRouteTableAnnouncementCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayRouteTableCommand.ts\n\n\n\nvar CreateTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"CreateTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayRouteTableCommand).de(de_CreateTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/CreateTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar CreateTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"CreateTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_CreateTransitGatewayVpcAttachmentCommand).de(de_CreateTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"CreateTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessEndpointCommand.ts\n\n\n\nvar CreateVerifiedAccessEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessEndpoint\", {}).n(\"EC2Client\", \"CreateVerifiedAccessEndpointCommand\").f(void 0, void 0).ser(se_CreateVerifiedAccessEndpointCommand).de(de_CreateVerifiedAccessEndpointCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessEndpointCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessGroupCommand.ts\n\n\n\nvar CreateVerifiedAccessGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessGroup\", {}).n(\"EC2Client\", \"CreateVerifiedAccessGroupCommand\").f(void 0, void 0).ser(se_CreateVerifiedAccessGroupCommand).de(de_CreateVerifiedAccessGroupCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessGroupCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessInstanceCommand.ts\n\n\n\nvar CreateVerifiedAccessInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessInstance\", {}).n(\"EC2Client\", \"CreateVerifiedAccessInstanceCommand\").f(void 0, void 0).ser(se_CreateVerifiedAccessInstanceCommand).de(de_CreateVerifiedAccessInstanceCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessInstanceCommand\");\n }\n};\n\n// src/commands/CreateVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar CreateVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"CreateVerifiedAccessTrustProviderCommand\").f(\n CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderResultFilterSensitiveLog\n).ser(se_CreateVerifiedAccessTrustProviderCommand).de(de_CreateVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"CreateVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/CreateVolumeCommand.ts\n\n\n\nvar CreateVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVolume\", {}).n(\"EC2Client\", \"CreateVolumeCommand\").f(void 0, void 0).ser(se_CreateVolumeCommand).de(de_CreateVolumeCommand).build() {\n static {\n __name(this, \"CreateVolumeCommand\");\n }\n};\n\n// src/commands/CreateVpcBlockPublicAccessExclusionCommand.ts\n\n\n\nvar CreateVpcBlockPublicAccessExclusionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcBlockPublicAccessExclusion\", {}).n(\"EC2Client\", \"CreateVpcBlockPublicAccessExclusionCommand\").f(void 0, void 0).ser(se_CreateVpcBlockPublicAccessExclusionCommand).de(de_CreateVpcBlockPublicAccessExclusionCommand).build() {\n static {\n __name(this, \"CreateVpcBlockPublicAccessExclusionCommand\");\n }\n};\n\n// src/commands/CreateVpcCommand.ts\n\n\n\nvar CreateVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpc\", {}).n(\"EC2Client\", \"CreateVpcCommand\").f(void 0, void 0).ser(se_CreateVpcCommand).de(de_CreateVpcCommand).build() {\n static {\n __name(this, \"CreateVpcCommand\");\n }\n};\n\n// src/commands/CreateVpcEndpointCommand.ts\n\n\n\nvar CreateVpcEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcEndpoint\", {}).n(\"EC2Client\", \"CreateVpcEndpointCommand\").f(void 0, void 0).ser(se_CreateVpcEndpointCommand).de(de_CreateVpcEndpointCommand).build() {\n static {\n __name(this, \"CreateVpcEndpointCommand\");\n }\n};\n\n// src/commands/CreateVpcEndpointConnectionNotificationCommand.ts\n\n\n\nvar CreateVpcEndpointConnectionNotificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcEndpointConnectionNotification\", {}).n(\"EC2Client\", \"CreateVpcEndpointConnectionNotificationCommand\").f(void 0, void 0).ser(se_CreateVpcEndpointConnectionNotificationCommand).de(de_CreateVpcEndpointConnectionNotificationCommand).build() {\n static {\n __name(this, \"CreateVpcEndpointConnectionNotificationCommand\");\n }\n};\n\n// src/commands/CreateVpcEndpointServiceConfigurationCommand.ts\n\n\n\nvar CreateVpcEndpointServiceConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcEndpointServiceConfiguration\", {}).n(\"EC2Client\", \"CreateVpcEndpointServiceConfigurationCommand\").f(void 0, void 0).ser(se_CreateVpcEndpointServiceConfigurationCommand).de(de_CreateVpcEndpointServiceConfigurationCommand).build() {\n static {\n __name(this, \"CreateVpcEndpointServiceConfigurationCommand\");\n }\n};\n\n// src/commands/CreateVpcPeeringConnectionCommand.ts\n\n\n\nvar CreateVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpcPeeringConnection\", {}).n(\"EC2Client\", \"CreateVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_CreateVpcPeeringConnectionCommand).de(de_CreateVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"CreateVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/CreateVpnConnectionCommand.ts\n\n\n\n\n// src/models/models_3.ts\n\nvar ServiceConnectivityType = {\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar TunnelInsideIpVersion = {\n ipv4: \"ipv4\",\n ipv6: \"ipv6\"\n};\nvar GatewayAssociationState = {\n associated: \"associated\",\n associating: \"associating\",\n disassociating: \"disassociating\",\n not_associated: \"not-associated\"\n};\nvar VpnStaticRouteSource = {\n Static: \"Static\"\n};\nvar VpnState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar TelemetryStatus = {\n DOWN: \"DOWN\",\n UP: \"UP\"\n};\nvar FleetStateCode = {\n ACTIVE: \"active\",\n DELETED: \"deleted\",\n DELETED_RUNNING: \"deleted_running\",\n DELETED_TERMINATING_INSTANCES: \"deleted_terminating\",\n FAILED: \"failed\",\n MODIFYING: \"modifying\",\n SUBMITTED: \"submitted\"\n};\nvar DeleteFleetErrorCode = {\n FLEET_ID_DOES_NOT_EXIST: \"fleetIdDoesNotExist\",\n FLEET_ID_MALFORMED: \"fleetIdMalformed\",\n FLEET_NOT_IN_DELETABLE_STATE: \"fleetNotInDeletableState\",\n UNEXPECTED_ERROR: \"unexpectedError\"\n};\nvar LaunchTemplateErrorCode = {\n LAUNCH_TEMPLATE_ID_DOES_NOT_EXIST: \"launchTemplateIdDoesNotExist\",\n LAUNCH_TEMPLATE_ID_MALFORMED: \"launchTemplateIdMalformed\",\n LAUNCH_TEMPLATE_NAME_DOES_NOT_EXIST: \"launchTemplateNameDoesNotExist\",\n LAUNCH_TEMPLATE_NAME_MALFORMED: \"launchTemplateNameMalformed\",\n LAUNCH_TEMPLATE_VERSION_DOES_NOT_EXIST: \"launchTemplateVersionDoesNotExist\",\n UNEXPECTED_ERROR: \"unexpectedError\"\n};\nvar DeleteQueuedReservedInstancesErrorCode = {\n RESERVED_INSTANCES_ID_INVALID: \"reserved-instances-id-invalid\",\n RESERVED_INSTANCES_NOT_IN_QUEUED_STATE: \"reserved-instances-not-in-queued-state\",\n UNEXPECTED_ERROR: \"unexpected-error\"\n};\nvar AsnState = {\n deprovisioned: \"deprovisioned\",\n failed_deprovision: \"failed-deprovision\",\n failed_provision: \"failed-provision\",\n pending_deprovision: \"pending-deprovision\",\n pending_provision: \"pending-provision\",\n provisioned: \"provisioned\"\n};\nvar IpamPoolCidrFailureCode = {\n cidr_not_available: \"cidr-not-available\",\n limit_exceeded: \"limit-exceeded\"\n};\nvar IpamPoolCidrState = {\n deprovisioned: \"deprovisioned\",\n failed_deprovision: \"failed-deprovision\",\n failed_import: \"failed-import\",\n failed_provision: \"failed-provision\",\n pending_deprovision: \"pending-deprovision\",\n pending_import: \"pending-import\",\n pending_provision: \"pending-provision\",\n provisioned: \"provisioned\"\n};\nvar AvailabilityZoneOptInStatus = {\n not_opted_in: \"not-opted-in\",\n opt_in_not_required: \"opt-in-not-required\",\n opted_in: \"opted-in\"\n};\nvar AvailabilityZoneState = {\n available: \"available\",\n constrained: \"constrained\",\n impaired: \"impaired\",\n information: \"information\",\n unavailable: \"unavailable\"\n};\nvar MetricType = {\n aggregate_latency: \"aggregate-latency\"\n};\nvar PeriodType = {\n fifteen_minutes: \"fifteen-minutes\",\n five_minutes: \"five-minutes\",\n one_day: \"one-day\",\n one_hour: \"one-hour\",\n one_week: \"one-week\",\n three_hours: \"three-hours\"\n};\nvar StatisticType = {\n p50: \"p50\"\n};\nvar CapacityBlockExtensionStatus = {\n PAYMENT_FAILED: \"payment-failed\",\n PAYMENT_PENDING: \"payment-pending\",\n PAYMENT_SUCCEEDED: \"payment-succeeded\"\n};\nvar CallerRole = {\n odcr_owner: \"odcr-owner\",\n unused_reservation_billing_owner: \"unused-reservation-billing-owner\"\n};\nvar CapacityReservationBillingRequestStatus = {\n accepted: \"accepted\",\n cancelled: \"cancelled\",\n expired: \"expired\",\n pending: \"pending\",\n rejected: \"rejected\",\n revoked: \"revoked\"\n};\nvar ClientVpnConnectionStatusCode = {\n active: \"active\",\n failed_to_terminate: \"failed-to-terminate\",\n terminated: \"terminated\",\n terminating: \"terminating\"\n};\nvar AssociatedNetworkType = {\n vpc: \"vpc\"\n};\nvar ClientVpnEndpointAttributeStatusCode = {\n applied: \"applied\",\n applying: \"applying\"\n};\nvar VpnTunnelOptionsSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PreSharedKey && { PreSharedKey: import_smithy_client.SENSITIVE_STRING }\n}), \"VpnTunnelOptionsSpecificationFilterSensitiveLog\");\nvar VpnConnectionOptionsSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TunnelOptions && {\n TunnelOptions: obj.TunnelOptions.map((item) => VpnTunnelOptionsSpecificationFilterSensitiveLog(item))\n }\n}), \"VpnConnectionOptionsSpecificationFilterSensitiveLog\");\nvar CreateVpnConnectionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Options && { Options: VpnConnectionOptionsSpecificationFilterSensitiveLog(obj.Options) }\n}), \"CreateVpnConnectionRequestFilterSensitiveLog\");\nvar TunnelOptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PreSharedKey && { PreSharedKey: import_smithy_client.SENSITIVE_STRING }\n}), \"TunnelOptionFilterSensitiveLog\");\nvar VpnConnectionOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TunnelOptions && { TunnelOptions: obj.TunnelOptions.map((item) => TunnelOptionFilterSensitiveLog(item)) }\n}), \"VpnConnectionOptionsFilterSensitiveLog\");\nvar VpnConnectionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Options && { Options: VpnConnectionOptionsFilterSensitiveLog(obj.Options) },\n ...obj.CustomerGatewayConfiguration && { CustomerGatewayConfiguration: import_smithy_client.SENSITIVE_STRING }\n}), \"VpnConnectionFilterSensitiveLog\");\nvar CreateVpnConnectionResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"CreateVpnConnectionResultFilterSensitiveLog\");\nvar DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog\");\nvar DescribeBundleTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.BundleTasks && { BundleTasks: obj.BundleTasks.map((item) => BundleTaskFilterSensitiveLog(item)) }\n}), \"DescribeBundleTasksResultFilterSensitiveLog\");\n\n// src/commands/CreateVpnConnectionCommand.ts\nvar CreateVpnConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpnConnection\", {}).n(\"EC2Client\", \"CreateVpnConnectionCommand\").f(CreateVpnConnectionRequestFilterSensitiveLog, CreateVpnConnectionResultFilterSensitiveLog).ser(se_CreateVpnConnectionCommand).de(de_CreateVpnConnectionCommand).build() {\n static {\n __name(this, \"CreateVpnConnectionCommand\");\n }\n};\n\n// src/commands/CreateVpnConnectionRouteCommand.ts\n\n\n\nvar CreateVpnConnectionRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpnConnectionRoute\", {}).n(\"EC2Client\", \"CreateVpnConnectionRouteCommand\").f(void 0, void 0).ser(se_CreateVpnConnectionRouteCommand).de(de_CreateVpnConnectionRouteCommand).build() {\n static {\n __name(this, \"CreateVpnConnectionRouteCommand\");\n }\n};\n\n// src/commands/CreateVpnGatewayCommand.ts\n\n\n\nvar CreateVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"CreateVpnGateway\", {}).n(\"EC2Client\", \"CreateVpnGatewayCommand\").f(void 0, void 0).ser(se_CreateVpnGatewayCommand).de(de_CreateVpnGatewayCommand).build() {\n static {\n __name(this, \"CreateVpnGatewayCommand\");\n }\n};\n\n// src/commands/DeleteCarrierGatewayCommand.ts\n\n\n\nvar DeleteCarrierGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCarrierGateway\", {}).n(\"EC2Client\", \"DeleteCarrierGatewayCommand\").f(void 0, void 0).ser(se_DeleteCarrierGatewayCommand).de(de_DeleteCarrierGatewayCommand).build() {\n static {\n __name(this, \"DeleteCarrierGatewayCommand\");\n }\n};\n\n// src/commands/DeleteClientVpnEndpointCommand.ts\n\n\n\nvar DeleteClientVpnEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteClientVpnEndpoint\", {}).n(\"EC2Client\", \"DeleteClientVpnEndpointCommand\").f(void 0, void 0).ser(se_DeleteClientVpnEndpointCommand).de(de_DeleteClientVpnEndpointCommand).build() {\n static {\n __name(this, \"DeleteClientVpnEndpointCommand\");\n }\n};\n\n// src/commands/DeleteClientVpnRouteCommand.ts\n\n\n\nvar DeleteClientVpnRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteClientVpnRoute\", {}).n(\"EC2Client\", \"DeleteClientVpnRouteCommand\").f(void 0, void 0).ser(se_DeleteClientVpnRouteCommand).de(de_DeleteClientVpnRouteCommand).build() {\n static {\n __name(this, \"DeleteClientVpnRouteCommand\");\n }\n};\n\n// src/commands/DeleteCoipCidrCommand.ts\n\n\n\nvar DeleteCoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCoipCidr\", {}).n(\"EC2Client\", \"DeleteCoipCidrCommand\").f(void 0, void 0).ser(se_DeleteCoipCidrCommand).de(de_DeleteCoipCidrCommand).build() {\n static {\n __name(this, \"DeleteCoipCidrCommand\");\n }\n};\n\n// src/commands/DeleteCoipPoolCommand.ts\n\n\n\nvar DeleteCoipPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCoipPool\", {}).n(\"EC2Client\", \"DeleteCoipPoolCommand\").f(void 0, void 0).ser(se_DeleteCoipPoolCommand).de(de_DeleteCoipPoolCommand).build() {\n static {\n __name(this, \"DeleteCoipPoolCommand\");\n }\n};\n\n// src/commands/DeleteCustomerGatewayCommand.ts\n\n\n\nvar DeleteCustomerGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteCustomerGateway\", {}).n(\"EC2Client\", \"DeleteCustomerGatewayCommand\").f(void 0, void 0).ser(se_DeleteCustomerGatewayCommand).de(de_DeleteCustomerGatewayCommand).build() {\n static {\n __name(this, \"DeleteCustomerGatewayCommand\");\n }\n};\n\n// src/commands/DeleteDhcpOptionsCommand.ts\n\n\n\nvar DeleteDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteDhcpOptions\", {}).n(\"EC2Client\", \"DeleteDhcpOptionsCommand\").f(void 0, void 0).ser(se_DeleteDhcpOptionsCommand).de(de_DeleteDhcpOptionsCommand).build() {\n static {\n __name(this, \"DeleteDhcpOptionsCommand\");\n }\n};\n\n// src/commands/DeleteEgressOnlyInternetGatewayCommand.ts\n\n\n\nvar DeleteEgressOnlyInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteEgressOnlyInternetGateway\", {}).n(\"EC2Client\", \"DeleteEgressOnlyInternetGatewayCommand\").f(void 0, void 0).ser(se_DeleteEgressOnlyInternetGatewayCommand).de(de_DeleteEgressOnlyInternetGatewayCommand).build() {\n static {\n __name(this, \"DeleteEgressOnlyInternetGatewayCommand\");\n }\n};\n\n// src/commands/DeleteFleetsCommand.ts\n\n\n\nvar DeleteFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteFleets\", {}).n(\"EC2Client\", \"DeleteFleetsCommand\").f(void 0, void 0).ser(se_DeleteFleetsCommand).de(de_DeleteFleetsCommand).build() {\n static {\n __name(this, \"DeleteFleetsCommand\");\n }\n};\n\n// src/commands/DeleteFlowLogsCommand.ts\n\n\n\nvar DeleteFlowLogsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteFlowLogs\", {}).n(\"EC2Client\", \"DeleteFlowLogsCommand\").f(void 0, void 0).ser(se_DeleteFlowLogsCommand).de(de_DeleteFlowLogsCommand).build() {\n static {\n __name(this, \"DeleteFlowLogsCommand\");\n }\n};\n\n// src/commands/DeleteFpgaImageCommand.ts\n\n\n\nvar DeleteFpgaImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteFpgaImage\", {}).n(\"EC2Client\", \"DeleteFpgaImageCommand\").f(void 0, void 0).ser(se_DeleteFpgaImageCommand).de(de_DeleteFpgaImageCommand).build() {\n static {\n __name(this, \"DeleteFpgaImageCommand\");\n }\n};\n\n// src/commands/DeleteInstanceConnectEndpointCommand.ts\n\n\n\nvar DeleteInstanceConnectEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteInstanceConnectEndpoint\", {}).n(\"EC2Client\", \"DeleteInstanceConnectEndpointCommand\").f(void 0, void 0).ser(se_DeleteInstanceConnectEndpointCommand).de(de_DeleteInstanceConnectEndpointCommand).build() {\n static {\n __name(this, \"DeleteInstanceConnectEndpointCommand\");\n }\n};\n\n// src/commands/DeleteInstanceEventWindowCommand.ts\n\n\n\nvar DeleteInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteInstanceEventWindow\", {}).n(\"EC2Client\", \"DeleteInstanceEventWindowCommand\").f(void 0, void 0).ser(se_DeleteInstanceEventWindowCommand).de(de_DeleteInstanceEventWindowCommand).build() {\n static {\n __name(this, \"DeleteInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/DeleteInternetGatewayCommand.ts\n\n\n\nvar DeleteInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteInternetGateway\", {}).n(\"EC2Client\", \"DeleteInternetGatewayCommand\").f(void 0, void 0).ser(se_DeleteInternetGatewayCommand).de(de_DeleteInternetGatewayCommand).build() {\n static {\n __name(this, \"DeleteInternetGatewayCommand\");\n }\n};\n\n// src/commands/DeleteIpamCommand.ts\n\n\n\nvar DeleteIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpam\", {}).n(\"EC2Client\", \"DeleteIpamCommand\").f(void 0, void 0).ser(se_DeleteIpamCommand).de(de_DeleteIpamCommand).build() {\n static {\n __name(this, \"DeleteIpamCommand\");\n }\n};\n\n// src/commands/DeleteIpamExternalResourceVerificationTokenCommand.ts\n\n\n\nvar DeleteIpamExternalResourceVerificationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamExternalResourceVerificationToken\", {}).n(\"EC2Client\", \"DeleteIpamExternalResourceVerificationTokenCommand\").f(void 0, void 0).ser(se_DeleteIpamExternalResourceVerificationTokenCommand).de(de_DeleteIpamExternalResourceVerificationTokenCommand).build() {\n static {\n __name(this, \"DeleteIpamExternalResourceVerificationTokenCommand\");\n }\n};\n\n// src/commands/DeleteIpamPoolCommand.ts\n\n\n\nvar DeleteIpamPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamPool\", {}).n(\"EC2Client\", \"DeleteIpamPoolCommand\").f(void 0, void 0).ser(se_DeleteIpamPoolCommand).de(de_DeleteIpamPoolCommand).build() {\n static {\n __name(this, \"DeleteIpamPoolCommand\");\n }\n};\n\n// src/commands/DeleteIpamResourceDiscoveryCommand.ts\n\n\n\nvar DeleteIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamResourceDiscovery\", {}).n(\"EC2Client\", \"DeleteIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_DeleteIpamResourceDiscoveryCommand).de(de_DeleteIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"DeleteIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/DeleteIpamScopeCommand.ts\n\n\n\nvar DeleteIpamScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteIpamScope\", {}).n(\"EC2Client\", \"DeleteIpamScopeCommand\").f(void 0, void 0).ser(se_DeleteIpamScopeCommand).de(de_DeleteIpamScopeCommand).build() {\n static {\n __name(this, \"DeleteIpamScopeCommand\");\n }\n};\n\n// src/commands/DeleteKeyPairCommand.ts\n\n\n\nvar DeleteKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteKeyPair\", {}).n(\"EC2Client\", \"DeleteKeyPairCommand\").f(void 0, void 0).ser(se_DeleteKeyPairCommand).de(de_DeleteKeyPairCommand).build() {\n static {\n __name(this, \"DeleteKeyPairCommand\");\n }\n};\n\n// src/commands/DeleteLaunchTemplateCommand.ts\n\n\n\nvar DeleteLaunchTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLaunchTemplate\", {}).n(\"EC2Client\", \"DeleteLaunchTemplateCommand\").f(void 0, void 0).ser(se_DeleteLaunchTemplateCommand).de(de_DeleteLaunchTemplateCommand).build() {\n static {\n __name(this, \"DeleteLaunchTemplateCommand\");\n }\n};\n\n// src/commands/DeleteLaunchTemplateVersionsCommand.ts\n\n\n\nvar DeleteLaunchTemplateVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLaunchTemplateVersions\", {}).n(\"EC2Client\", \"DeleteLaunchTemplateVersionsCommand\").f(void 0, void 0).ser(se_DeleteLaunchTemplateVersionsCommand).de(de_DeleteLaunchTemplateVersionsCommand).build() {\n static {\n __name(this, \"DeleteLaunchTemplateVersionsCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRoute\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteCommand).de(de_DeleteLocalGatewayRouteCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteTableCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRouteTable\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteTableCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteTableCommand).de(de_DeleteLocalGatewayRouteTableCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).de(de_DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayRouteTableVpcAssociationCommand.ts\n\n\n\nvar DeleteLocalGatewayRouteTableVpcAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayRouteTableVpcAssociation\", {}).n(\"EC2Client\", \"DeleteLocalGatewayRouteTableVpcAssociationCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayRouteTableVpcAssociationCommand).de(de_DeleteLocalGatewayRouteTableVpcAssociationCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayRouteTableVpcAssociationCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayVirtualInterfaceCommand.ts\n\n\n\nvar DeleteLocalGatewayVirtualInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayVirtualInterface\", {}).n(\"EC2Client\", \"DeleteLocalGatewayVirtualInterfaceCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayVirtualInterfaceCommand).de(de_DeleteLocalGatewayVirtualInterfaceCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayVirtualInterfaceCommand\");\n }\n};\n\n// src/commands/DeleteLocalGatewayVirtualInterfaceGroupCommand.ts\n\n\n\nvar DeleteLocalGatewayVirtualInterfaceGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteLocalGatewayVirtualInterfaceGroup\", {}).n(\"EC2Client\", \"DeleteLocalGatewayVirtualInterfaceGroupCommand\").f(void 0, void 0).ser(se_DeleteLocalGatewayVirtualInterfaceGroupCommand).de(de_DeleteLocalGatewayVirtualInterfaceGroupCommand).build() {\n static {\n __name(this, \"DeleteLocalGatewayVirtualInterfaceGroupCommand\");\n }\n};\n\n// src/commands/DeleteManagedPrefixListCommand.ts\n\n\n\nvar DeleteManagedPrefixListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteManagedPrefixList\", {}).n(\"EC2Client\", \"DeleteManagedPrefixListCommand\").f(void 0, void 0).ser(se_DeleteManagedPrefixListCommand).de(de_DeleteManagedPrefixListCommand).build() {\n static {\n __name(this, \"DeleteManagedPrefixListCommand\");\n }\n};\n\n// src/commands/DeleteNatGatewayCommand.ts\n\n\n\nvar DeleteNatGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNatGateway\", {}).n(\"EC2Client\", \"DeleteNatGatewayCommand\").f(void 0, void 0).ser(se_DeleteNatGatewayCommand).de(de_DeleteNatGatewayCommand).build() {\n static {\n __name(this, \"DeleteNatGatewayCommand\");\n }\n};\n\n// src/commands/DeleteNetworkAclCommand.ts\n\n\n\nvar DeleteNetworkAclCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkAcl\", {}).n(\"EC2Client\", \"DeleteNetworkAclCommand\").f(void 0, void 0).ser(se_DeleteNetworkAclCommand).de(de_DeleteNetworkAclCommand).build() {\n static {\n __name(this, \"DeleteNetworkAclCommand\");\n }\n};\n\n// src/commands/DeleteNetworkAclEntryCommand.ts\n\n\n\nvar DeleteNetworkAclEntryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkAclEntry\", {}).n(\"EC2Client\", \"DeleteNetworkAclEntryCommand\").f(void 0, void 0).ser(se_DeleteNetworkAclEntryCommand).de(de_DeleteNetworkAclEntryCommand).build() {\n static {\n __name(this, \"DeleteNetworkAclEntryCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsAccessScopeAnalysisCommand.ts\n\n\n\nvar DeleteNetworkInsightsAccessScopeAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsAccessScopeAnalysis\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsAccessScopeAnalysisCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsAccessScopeAnalysisCommand).de(de_DeleteNetworkInsightsAccessScopeAnalysisCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsAccessScopeAnalysisCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsAccessScopeCommand.ts\n\n\n\nvar DeleteNetworkInsightsAccessScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsAccessScope\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsAccessScopeCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsAccessScopeCommand).de(de_DeleteNetworkInsightsAccessScopeCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsAccessScopeCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsAnalysisCommand.ts\n\n\n\nvar DeleteNetworkInsightsAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsAnalysis\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsAnalysisCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsAnalysisCommand).de(de_DeleteNetworkInsightsAnalysisCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsAnalysisCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInsightsPathCommand.ts\n\n\n\nvar DeleteNetworkInsightsPathCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInsightsPath\", {}).n(\"EC2Client\", \"DeleteNetworkInsightsPathCommand\").f(void 0, void 0).ser(se_DeleteNetworkInsightsPathCommand).de(de_DeleteNetworkInsightsPathCommand).build() {\n static {\n __name(this, \"DeleteNetworkInsightsPathCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInterfaceCommand.ts\n\n\n\nvar DeleteNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInterface\", {}).n(\"EC2Client\", \"DeleteNetworkInterfaceCommand\").f(void 0, void 0).ser(se_DeleteNetworkInterfaceCommand).de(de_DeleteNetworkInterfaceCommand).build() {\n static {\n __name(this, \"DeleteNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/DeleteNetworkInterfacePermissionCommand.ts\n\n\n\nvar DeleteNetworkInterfacePermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteNetworkInterfacePermission\", {}).n(\"EC2Client\", \"DeleteNetworkInterfacePermissionCommand\").f(void 0, void 0).ser(se_DeleteNetworkInterfacePermissionCommand).de(de_DeleteNetworkInterfacePermissionCommand).build() {\n static {\n __name(this, \"DeleteNetworkInterfacePermissionCommand\");\n }\n};\n\n// src/commands/DeletePlacementGroupCommand.ts\n\n\n\nvar DeletePlacementGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeletePlacementGroup\", {}).n(\"EC2Client\", \"DeletePlacementGroupCommand\").f(void 0, void 0).ser(se_DeletePlacementGroupCommand).de(de_DeletePlacementGroupCommand).build() {\n static {\n __name(this, \"DeletePlacementGroupCommand\");\n }\n};\n\n// src/commands/DeletePublicIpv4PoolCommand.ts\n\n\n\nvar DeletePublicIpv4PoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeletePublicIpv4Pool\", {}).n(\"EC2Client\", \"DeletePublicIpv4PoolCommand\").f(void 0, void 0).ser(se_DeletePublicIpv4PoolCommand).de(de_DeletePublicIpv4PoolCommand).build() {\n static {\n __name(this, \"DeletePublicIpv4PoolCommand\");\n }\n};\n\n// src/commands/DeleteQueuedReservedInstancesCommand.ts\n\n\n\nvar DeleteQueuedReservedInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteQueuedReservedInstances\", {}).n(\"EC2Client\", \"DeleteQueuedReservedInstancesCommand\").f(void 0, void 0).ser(se_DeleteQueuedReservedInstancesCommand).de(de_DeleteQueuedReservedInstancesCommand).build() {\n static {\n __name(this, \"DeleteQueuedReservedInstancesCommand\");\n }\n};\n\n// src/commands/DeleteRouteCommand.ts\n\n\n\nvar DeleteRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRoute\", {}).n(\"EC2Client\", \"DeleteRouteCommand\").f(void 0, void 0).ser(se_DeleteRouteCommand).de(de_DeleteRouteCommand).build() {\n static {\n __name(this, \"DeleteRouteCommand\");\n }\n};\n\n// src/commands/DeleteRouteServerCommand.ts\n\n\n\nvar DeleteRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteServer\", {}).n(\"EC2Client\", \"DeleteRouteServerCommand\").f(void 0, void 0).ser(se_DeleteRouteServerCommand).de(de_DeleteRouteServerCommand).build() {\n static {\n __name(this, \"DeleteRouteServerCommand\");\n }\n};\n\n// src/commands/DeleteRouteServerEndpointCommand.ts\n\n\n\nvar DeleteRouteServerEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteServerEndpoint\", {}).n(\"EC2Client\", \"DeleteRouteServerEndpointCommand\").f(void 0, void 0).ser(se_DeleteRouteServerEndpointCommand).de(de_DeleteRouteServerEndpointCommand).build() {\n static {\n __name(this, \"DeleteRouteServerEndpointCommand\");\n }\n};\n\n// src/commands/DeleteRouteServerPeerCommand.ts\n\n\n\nvar DeleteRouteServerPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteServerPeer\", {}).n(\"EC2Client\", \"DeleteRouteServerPeerCommand\").f(void 0, void 0).ser(se_DeleteRouteServerPeerCommand).de(de_DeleteRouteServerPeerCommand).build() {\n static {\n __name(this, \"DeleteRouteServerPeerCommand\");\n }\n};\n\n// src/commands/DeleteRouteTableCommand.ts\n\n\n\nvar DeleteRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteRouteTable\", {}).n(\"EC2Client\", \"DeleteRouteTableCommand\").f(void 0, void 0).ser(se_DeleteRouteTableCommand).de(de_DeleteRouteTableCommand).build() {\n static {\n __name(this, \"DeleteRouteTableCommand\");\n }\n};\n\n// src/commands/DeleteSecurityGroupCommand.ts\n\n\n\nvar DeleteSecurityGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSecurityGroup\", {}).n(\"EC2Client\", \"DeleteSecurityGroupCommand\").f(void 0, void 0).ser(se_DeleteSecurityGroupCommand).de(de_DeleteSecurityGroupCommand).build() {\n static {\n __name(this, \"DeleteSecurityGroupCommand\");\n }\n};\n\n// src/commands/DeleteSnapshotCommand.ts\n\n\n\nvar DeleteSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSnapshot\", {}).n(\"EC2Client\", \"DeleteSnapshotCommand\").f(void 0, void 0).ser(se_DeleteSnapshotCommand).de(de_DeleteSnapshotCommand).build() {\n static {\n __name(this, \"DeleteSnapshotCommand\");\n }\n};\n\n// src/commands/DeleteSpotDatafeedSubscriptionCommand.ts\n\n\n\nvar DeleteSpotDatafeedSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSpotDatafeedSubscription\", {}).n(\"EC2Client\", \"DeleteSpotDatafeedSubscriptionCommand\").f(void 0, void 0).ser(se_DeleteSpotDatafeedSubscriptionCommand).de(de_DeleteSpotDatafeedSubscriptionCommand).build() {\n static {\n __name(this, \"DeleteSpotDatafeedSubscriptionCommand\");\n }\n};\n\n// src/commands/DeleteSubnetCidrReservationCommand.ts\n\n\n\nvar DeleteSubnetCidrReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSubnetCidrReservation\", {}).n(\"EC2Client\", \"DeleteSubnetCidrReservationCommand\").f(void 0, void 0).ser(se_DeleteSubnetCidrReservationCommand).de(de_DeleteSubnetCidrReservationCommand).build() {\n static {\n __name(this, \"DeleteSubnetCidrReservationCommand\");\n }\n};\n\n// src/commands/DeleteSubnetCommand.ts\n\n\n\nvar DeleteSubnetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteSubnet\", {}).n(\"EC2Client\", \"DeleteSubnetCommand\").f(void 0, void 0).ser(se_DeleteSubnetCommand).de(de_DeleteSubnetCommand).build() {\n static {\n __name(this, \"DeleteSubnetCommand\");\n }\n};\n\n// src/commands/DeleteTagsCommand.ts\n\n\n\nvar DeleteTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTags\", {}).n(\"EC2Client\", \"DeleteTagsCommand\").f(void 0, void 0).ser(se_DeleteTagsCommand).de(de_DeleteTagsCommand).build() {\n static {\n __name(this, \"DeleteTagsCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorFilterCommand.ts\n\n\n\nvar DeleteTrafficMirrorFilterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorFilter\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorFilterCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorFilterCommand).de(de_DeleteTrafficMirrorFilterCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorFilterCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorFilterRuleCommand.ts\n\n\n\nvar DeleteTrafficMirrorFilterRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorFilterRule\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorFilterRuleCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorFilterRuleCommand).de(de_DeleteTrafficMirrorFilterRuleCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorFilterRuleCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorSessionCommand.ts\n\n\n\nvar DeleteTrafficMirrorSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorSession\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorSessionCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorSessionCommand).de(de_DeleteTrafficMirrorSessionCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorSessionCommand\");\n }\n};\n\n// src/commands/DeleteTrafficMirrorTargetCommand.ts\n\n\n\nvar DeleteTrafficMirrorTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTrafficMirrorTarget\", {}).n(\"EC2Client\", \"DeleteTrafficMirrorTargetCommand\").f(void 0, void 0).ser(se_DeleteTrafficMirrorTargetCommand).de(de_DeleteTrafficMirrorTargetCommand).build() {\n static {\n __name(this, \"DeleteTrafficMirrorTargetCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayCommand.ts\n\n\n\nvar DeleteTransitGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGateway\", {}).n(\"EC2Client\", \"DeleteTransitGatewayCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayCommand).de(de_DeleteTransitGatewayCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayConnectCommand.ts\n\n\n\nvar DeleteTransitGatewayConnectCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayConnect\", {}).n(\"EC2Client\", \"DeleteTransitGatewayConnectCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayConnectCommand).de(de_DeleteTransitGatewayConnectCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayConnectCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayConnectPeerCommand.ts\n\n\n\nvar DeleteTransitGatewayConnectPeerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayConnectPeer\", {}).n(\"EC2Client\", \"DeleteTransitGatewayConnectPeerCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayConnectPeerCommand).de(de_DeleteTransitGatewayConnectPeerCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayConnectPeerCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar DeleteTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"DeleteTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayMulticastDomainCommand).de(de_DeleteTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar DeleteTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"DeleteTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayPeeringAttachmentCommand).de(de_DeleteTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayPolicyTableCommand.ts\n\n\n\nvar DeleteTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"DeleteTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayPolicyTableCommand).de(de_DeleteTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayPrefixListReferenceCommand.ts\n\n\n\nvar DeleteTransitGatewayPrefixListReferenceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayPrefixListReference\", {}).n(\"EC2Client\", \"DeleteTransitGatewayPrefixListReferenceCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayPrefixListReferenceCommand).de(de_DeleteTransitGatewayPrefixListReferenceCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayPrefixListReferenceCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayRouteCommand.ts\n\n\n\nvar DeleteTransitGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayRoute\", {}).n(\"EC2Client\", \"DeleteTransitGatewayRouteCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayRouteCommand).de(de_DeleteTransitGatewayRouteCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayRouteCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayRouteTableAnnouncementCommand.ts\n\n\n\nvar DeleteTransitGatewayRouteTableAnnouncementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayRouteTableAnnouncement\", {}).n(\"EC2Client\", \"DeleteTransitGatewayRouteTableAnnouncementCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayRouteTableAnnouncementCommand).de(de_DeleteTransitGatewayRouteTableAnnouncementCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayRouteTableAnnouncementCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayRouteTableCommand.ts\n\n\n\nvar DeleteTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"DeleteTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayRouteTableCommand).de(de_DeleteTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/DeleteTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar DeleteTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"DeleteTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_DeleteTransitGatewayVpcAttachmentCommand).de(de_DeleteTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"DeleteTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessEndpointCommand.ts\n\n\n\nvar DeleteVerifiedAccessEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessEndpoint\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessEndpointCommand\").f(void 0, void 0).ser(se_DeleteVerifiedAccessEndpointCommand).de(de_DeleteVerifiedAccessEndpointCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessEndpointCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessGroupCommand.ts\n\n\n\nvar DeleteVerifiedAccessGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessGroup\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessGroupCommand\").f(void 0, void 0).ser(se_DeleteVerifiedAccessGroupCommand).de(de_DeleteVerifiedAccessGroupCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessGroupCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessInstanceCommand.ts\n\n\n\nvar DeleteVerifiedAccessInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessInstance\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessInstanceCommand\").f(void 0, void 0).ser(se_DeleteVerifiedAccessInstanceCommand).de(de_DeleteVerifiedAccessInstanceCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessInstanceCommand\");\n }\n};\n\n// src/commands/DeleteVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar DeleteVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"DeleteVerifiedAccessTrustProviderCommand\").f(void 0, DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog).ser(se_DeleteVerifiedAccessTrustProviderCommand).de(de_DeleteVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"DeleteVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/DeleteVolumeCommand.ts\n\n\n\nvar DeleteVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVolume\", {}).n(\"EC2Client\", \"DeleteVolumeCommand\").f(void 0, void 0).ser(se_DeleteVolumeCommand).de(de_DeleteVolumeCommand).build() {\n static {\n __name(this, \"DeleteVolumeCommand\");\n }\n};\n\n// src/commands/DeleteVpcBlockPublicAccessExclusionCommand.ts\n\n\n\nvar DeleteVpcBlockPublicAccessExclusionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcBlockPublicAccessExclusion\", {}).n(\"EC2Client\", \"DeleteVpcBlockPublicAccessExclusionCommand\").f(void 0, void 0).ser(se_DeleteVpcBlockPublicAccessExclusionCommand).de(de_DeleteVpcBlockPublicAccessExclusionCommand).build() {\n static {\n __name(this, \"DeleteVpcBlockPublicAccessExclusionCommand\");\n }\n};\n\n// src/commands/DeleteVpcCommand.ts\n\n\n\nvar DeleteVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpc\", {}).n(\"EC2Client\", \"DeleteVpcCommand\").f(void 0, void 0).ser(se_DeleteVpcCommand).de(de_DeleteVpcCommand).build() {\n static {\n __name(this, \"DeleteVpcCommand\");\n }\n};\n\n// src/commands/DeleteVpcEndpointConnectionNotificationsCommand.ts\n\n\n\nvar DeleteVpcEndpointConnectionNotificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcEndpointConnectionNotifications\", {}).n(\"EC2Client\", \"DeleteVpcEndpointConnectionNotificationsCommand\").f(void 0, void 0).ser(se_DeleteVpcEndpointConnectionNotificationsCommand).de(de_DeleteVpcEndpointConnectionNotificationsCommand).build() {\n static {\n __name(this, \"DeleteVpcEndpointConnectionNotificationsCommand\");\n }\n};\n\n// src/commands/DeleteVpcEndpointsCommand.ts\n\n\n\nvar DeleteVpcEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcEndpoints\", {}).n(\"EC2Client\", \"DeleteVpcEndpointsCommand\").f(void 0, void 0).ser(se_DeleteVpcEndpointsCommand).de(de_DeleteVpcEndpointsCommand).build() {\n static {\n __name(this, \"DeleteVpcEndpointsCommand\");\n }\n};\n\n// src/commands/DeleteVpcEndpointServiceConfigurationsCommand.ts\n\n\n\nvar DeleteVpcEndpointServiceConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcEndpointServiceConfigurations\", {}).n(\"EC2Client\", \"DeleteVpcEndpointServiceConfigurationsCommand\").f(void 0, void 0).ser(se_DeleteVpcEndpointServiceConfigurationsCommand).de(de_DeleteVpcEndpointServiceConfigurationsCommand).build() {\n static {\n __name(this, \"DeleteVpcEndpointServiceConfigurationsCommand\");\n }\n};\n\n// src/commands/DeleteVpcPeeringConnectionCommand.ts\n\n\n\nvar DeleteVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpcPeeringConnection\", {}).n(\"EC2Client\", \"DeleteVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_DeleteVpcPeeringConnectionCommand).de(de_DeleteVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"DeleteVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/DeleteVpnConnectionCommand.ts\n\n\n\nvar DeleteVpnConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpnConnection\", {}).n(\"EC2Client\", \"DeleteVpnConnectionCommand\").f(void 0, void 0).ser(se_DeleteVpnConnectionCommand).de(de_DeleteVpnConnectionCommand).build() {\n static {\n __name(this, \"DeleteVpnConnectionCommand\");\n }\n};\n\n// src/commands/DeleteVpnConnectionRouteCommand.ts\n\n\n\nvar DeleteVpnConnectionRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpnConnectionRoute\", {}).n(\"EC2Client\", \"DeleteVpnConnectionRouteCommand\").f(void 0, void 0).ser(se_DeleteVpnConnectionRouteCommand).de(de_DeleteVpnConnectionRouteCommand).build() {\n static {\n __name(this, \"DeleteVpnConnectionRouteCommand\");\n }\n};\n\n// src/commands/DeleteVpnGatewayCommand.ts\n\n\n\nvar DeleteVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeleteVpnGateway\", {}).n(\"EC2Client\", \"DeleteVpnGatewayCommand\").f(void 0, void 0).ser(se_DeleteVpnGatewayCommand).de(de_DeleteVpnGatewayCommand).build() {\n static {\n __name(this, \"DeleteVpnGatewayCommand\");\n }\n};\n\n// src/commands/DeprovisionByoipCidrCommand.ts\n\n\n\nvar DeprovisionByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionByoipCidr\", {}).n(\"EC2Client\", \"DeprovisionByoipCidrCommand\").f(void 0, void 0).ser(se_DeprovisionByoipCidrCommand).de(de_DeprovisionByoipCidrCommand).build() {\n static {\n __name(this, \"DeprovisionByoipCidrCommand\");\n }\n};\n\n// src/commands/DeprovisionIpamByoasnCommand.ts\n\n\n\nvar DeprovisionIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionIpamByoasn\", {}).n(\"EC2Client\", \"DeprovisionIpamByoasnCommand\").f(void 0, void 0).ser(se_DeprovisionIpamByoasnCommand).de(de_DeprovisionIpamByoasnCommand).build() {\n static {\n __name(this, \"DeprovisionIpamByoasnCommand\");\n }\n};\n\n// src/commands/DeprovisionIpamPoolCidrCommand.ts\n\n\n\nvar DeprovisionIpamPoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionIpamPoolCidr\", {}).n(\"EC2Client\", \"DeprovisionIpamPoolCidrCommand\").f(void 0, void 0).ser(se_DeprovisionIpamPoolCidrCommand).de(de_DeprovisionIpamPoolCidrCommand).build() {\n static {\n __name(this, \"DeprovisionIpamPoolCidrCommand\");\n }\n};\n\n// src/commands/DeprovisionPublicIpv4PoolCidrCommand.ts\n\n\n\nvar DeprovisionPublicIpv4PoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeprovisionPublicIpv4PoolCidr\", {}).n(\"EC2Client\", \"DeprovisionPublicIpv4PoolCidrCommand\").f(void 0, void 0).ser(se_DeprovisionPublicIpv4PoolCidrCommand).de(de_DeprovisionPublicIpv4PoolCidrCommand).build() {\n static {\n __name(this, \"DeprovisionPublicIpv4PoolCidrCommand\");\n }\n};\n\n// src/commands/DeregisterImageCommand.ts\n\n\n\nvar DeregisterImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterImage\", {}).n(\"EC2Client\", \"DeregisterImageCommand\").f(void 0, void 0).ser(se_DeregisterImageCommand).de(de_DeregisterImageCommand).build() {\n static {\n __name(this, \"DeregisterImageCommand\");\n }\n};\n\n// src/commands/DeregisterInstanceEventNotificationAttributesCommand.ts\n\n\n\nvar DeregisterInstanceEventNotificationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterInstanceEventNotificationAttributes\", {}).n(\"EC2Client\", \"DeregisterInstanceEventNotificationAttributesCommand\").f(void 0, void 0).ser(se_DeregisterInstanceEventNotificationAttributesCommand).de(de_DeregisterInstanceEventNotificationAttributesCommand).build() {\n static {\n __name(this, \"DeregisterInstanceEventNotificationAttributesCommand\");\n }\n};\n\n// src/commands/DeregisterTransitGatewayMulticastGroupMembersCommand.ts\n\n\n\nvar DeregisterTransitGatewayMulticastGroupMembersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterTransitGatewayMulticastGroupMembers\", {}).n(\"EC2Client\", \"DeregisterTransitGatewayMulticastGroupMembersCommand\").f(void 0, void 0).ser(se_DeregisterTransitGatewayMulticastGroupMembersCommand).de(de_DeregisterTransitGatewayMulticastGroupMembersCommand).build() {\n static {\n __name(this, \"DeregisterTransitGatewayMulticastGroupMembersCommand\");\n }\n};\n\n// src/commands/DeregisterTransitGatewayMulticastGroupSourcesCommand.ts\n\n\n\nvar DeregisterTransitGatewayMulticastGroupSourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DeregisterTransitGatewayMulticastGroupSources\", {}).n(\"EC2Client\", \"DeregisterTransitGatewayMulticastGroupSourcesCommand\").f(void 0, void 0).ser(se_DeregisterTransitGatewayMulticastGroupSourcesCommand).de(de_DeregisterTransitGatewayMulticastGroupSourcesCommand).build() {\n static {\n __name(this, \"DeregisterTransitGatewayMulticastGroupSourcesCommand\");\n }\n};\n\n// src/commands/DescribeAccountAttributesCommand.ts\n\n\n\nvar DescribeAccountAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAccountAttributes\", {}).n(\"EC2Client\", \"DescribeAccountAttributesCommand\").f(void 0, void 0).ser(se_DescribeAccountAttributesCommand).de(de_DescribeAccountAttributesCommand).build() {\n static {\n __name(this, \"DescribeAccountAttributesCommand\");\n }\n};\n\n// src/commands/DescribeAddressesAttributeCommand.ts\n\n\n\nvar DescribeAddressesAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAddressesAttribute\", {}).n(\"EC2Client\", \"DescribeAddressesAttributeCommand\").f(void 0, void 0).ser(se_DescribeAddressesAttributeCommand).de(de_DescribeAddressesAttributeCommand).build() {\n static {\n __name(this, \"DescribeAddressesAttributeCommand\");\n }\n};\n\n// src/commands/DescribeAddressesCommand.ts\n\n\n\nvar DescribeAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAddresses\", {}).n(\"EC2Client\", \"DescribeAddressesCommand\").f(void 0, void 0).ser(se_DescribeAddressesCommand).de(de_DescribeAddressesCommand).build() {\n static {\n __name(this, \"DescribeAddressesCommand\");\n }\n};\n\n// src/commands/DescribeAddressTransfersCommand.ts\n\n\n\nvar DescribeAddressTransfersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAddressTransfers\", {}).n(\"EC2Client\", \"DescribeAddressTransfersCommand\").f(void 0, void 0).ser(se_DescribeAddressTransfersCommand).de(de_DescribeAddressTransfersCommand).build() {\n static {\n __name(this, \"DescribeAddressTransfersCommand\");\n }\n};\n\n// src/commands/DescribeAggregateIdFormatCommand.ts\n\n\n\nvar DescribeAggregateIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAggregateIdFormat\", {}).n(\"EC2Client\", \"DescribeAggregateIdFormatCommand\").f(void 0, void 0).ser(se_DescribeAggregateIdFormatCommand).de(de_DescribeAggregateIdFormatCommand).build() {\n static {\n __name(this, \"DescribeAggregateIdFormatCommand\");\n }\n};\n\n// src/commands/DescribeAvailabilityZonesCommand.ts\n\n\n\nvar DescribeAvailabilityZonesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAvailabilityZones\", {}).n(\"EC2Client\", \"DescribeAvailabilityZonesCommand\").f(void 0, void 0).ser(se_DescribeAvailabilityZonesCommand).de(de_DescribeAvailabilityZonesCommand).build() {\n static {\n __name(this, \"DescribeAvailabilityZonesCommand\");\n }\n};\n\n// src/commands/DescribeAwsNetworkPerformanceMetricSubscriptionsCommand.ts\n\n\n\nvar DescribeAwsNetworkPerformanceMetricSubscriptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeAwsNetworkPerformanceMetricSubscriptions\", {}).n(\"EC2Client\", \"DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\").f(void 0, void 0).ser(se_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand).de(de_DescribeAwsNetworkPerformanceMetricSubscriptionsCommand).build() {\n static {\n __name(this, \"DescribeAwsNetworkPerformanceMetricSubscriptionsCommand\");\n }\n};\n\n// src/commands/DescribeBundleTasksCommand.ts\n\n\n\nvar DescribeBundleTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeBundleTasks\", {}).n(\"EC2Client\", \"DescribeBundleTasksCommand\").f(void 0, DescribeBundleTasksResultFilterSensitiveLog).ser(se_DescribeBundleTasksCommand).de(de_DescribeBundleTasksCommand).build() {\n static {\n __name(this, \"DescribeBundleTasksCommand\");\n }\n};\n\n// src/commands/DescribeByoipCidrsCommand.ts\n\n\n\nvar DescribeByoipCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeByoipCidrs\", {}).n(\"EC2Client\", \"DescribeByoipCidrsCommand\").f(void 0, void 0).ser(se_DescribeByoipCidrsCommand).de(de_DescribeByoipCidrsCommand).build() {\n static {\n __name(this, \"DescribeByoipCidrsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityBlockExtensionHistoryCommand.ts\n\n\n\nvar DescribeCapacityBlockExtensionHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityBlockExtensionHistory\", {}).n(\"EC2Client\", \"DescribeCapacityBlockExtensionHistoryCommand\").f(void 0, void 0).ser(se_DescribeCapacityBlockExtensionHistoryCommand).de(de_DescribeCapacityBlockExtensionHistoryCommand).build() {\n static {\n __name(this, \"DescribeCapacityBlockExtensionHistoryCommand\");\n }\n};\n\n// src/commands/DescribeCapacityBlockExtensionOfferingsCommand.ts\n\n\n\nvar DescribeCapacityBlockExtensionOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityBlockExtensionOfferings\", {}).n(\"EC2Client\", \"DescribeCapacityBlockExtensionOfferingsCommand\").f(void 0, void 0).ser(se_DescribeCapacityBlockExtensionOfferingsCommand).de(de_DescribeCapacityBlockExtensionOfferingsCommand).build() {\n static {\n __name(this, \"DescribeCapacityBlockExtensionOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityBlockOfferingsCommand.ts\n\n\n\nvar DescribeCapacityBlockOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityBlockOfferings\", {}).n(\"EC2Client\", \"DescribeCapacityBlockOfferingsCommand\").f(void 0, void 0).ser(se_DescribeCapacityBlockOfferingsCommand).de(de_DescribeCapacityBlockOfferingsCommand).build() {\n static {\n __name(this, \"DescribeCapacityBlockOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationBillingRequestsCommand.ts\n\n\n\nvar DescribeCapacityReservationBillingRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityReservationBillingRequests\", {}).n(\"EC2Client\", \"DescribeCapacityReservationBillingRequestsCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationBillingRequestsCommand).de(de_DescribeCapacityReservationBillingRequestsCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationBillingRequestsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationFleetsCommand.ts\n\n\n\nvar DescribeCapacityReservationFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityReservationFleets\", {}).n(\"EC2Client\", \"DescribeCapacityReservationFleetsCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationFleetsCommand).de(de_DescribeCapacityReservationFleetsCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationFleetsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationsCommand.ts\n\n\n\nvar DescribeCapacityReservationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCapacityReservations\", {}).n(\"EC2Client\", \"DescribeCapacityReservationsCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationsCommand).de(de_DescribeCapacityReservationsCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationsCommand\");\n }\n};\n\n// src/commands/DescribeCarrierGatewaysCommand.ts\n\n\n\nvar DescribeCarrierGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCarrierGateways\", {}).n(\"EC2Client\", \"DescribeCarrierGatewaysCommand\").f(void 0, void 0).ser(se_DescribeCarrierGatewaysCommand).de(de_DescribeCarrierGatewaysCommand).build() {\n static {\n __name(this, \"DescribeCarrierGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeClassicLinkInstancesCommand.ts\n\n\n\nvar DescribeClassicLinkInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClassicLinkInstances\", {}).n(\"EC2Client\", \"DescribeClassicLinkInstancesCommand\").f(void 0, void 0).ser(se_DescribeClassicLinkInstancesCommand).de(de_DescribeClassicLinkInstancesCommand).build() {\n static {\n __name(this, \"DescribeClassicLinkInstancesCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnAuthorizationRulesCommand.ts\n\n\n\nvar DescribeClientVpnAuthorizationRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnAuthorizationRules\", {}).n(\"EC2Client\", \"DescribeClientVpnAuthorizationRulesCommand\").f(void 0, void 0).ser(se_DescribeClientVpnAuthorizationRulesCommand).de(de_DescribeClientVpnAuthorizationRulesCommand).build() {\n static {\n __name(this, \"DescribeClientVpnAuthorizationRulesCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnConnectionsCommand.ts\n\n\n\nvar DescribeClientVpnConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnConnections\", {}).n(\"EC2Client\", \"DescribeClientVpnConnectionsCommand\").f(void 0, void 0).ser(se_DescribeClientVpnConnectionsCommand).de(de_DescribeClientVpnConnectionsCommand).build() {\n static {\n __name(this, \"DescribeClientVpnConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnEndpointsCommand.ts\n\n\n\nvar DescribeClientVpnEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnEndpoints\", {}).n(\"EC2Client\", \"DescribeClientVpnEndpointsCommand\").f(void 0, void 0).ser(se_DescribeClientVpnEndpointsCommand).de(de_DescribeClientVpnEndpointsCommand).build() {\n static {\n __name(this, \"DescribeClientVpnEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnRoutesCommand.ts\n\n\n\nvar DescribeClientVpnRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnRoutes\", {}).n(\"EC2Client\", \"DescribeClientVpnRoutesCommand\").f(void 0, void 0).ser(se_DescribeClientVpnRoutesCommand).de(de_DescribeClientVpnRoutesCommand).build() {\n static {\n __name(this, \"DescribeClientVpnRoutesCommand\");\n }\n};\n\n// src/commands/DescribeClientVpnTargetNetworksCommand.ts\n\n\n\nvar DescribeClientVpnTargetNetworksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeClientVpnTargetNetworks\", {}).n(\"EC2Client\", \"DescribeClientVpnTargetNetworksCommand\").f(void 0, void 0).ser(se_DescribeClientVpnTargetNetworksCommand).de(de_DescribeClientVpnTargetNetworksCommand).build() {\n static {\n __name(this, \"DescribeClientVpnTargetNetworksCommand\");\n }\n};\n\n// src/commands/DescribeCoipPoolsCommand.ts\n\n\n\nvar DescribeCoipPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCoipPools\", {}).n(\"EC2Client\", \"DescribeCoipPoolsCommand\").f(void 0, void 0).ser(se_DescribeCoipPoolsCommand).de(de_DescribeCoipPoolsCommand).build() {\n static {\n __name(this, \"DescribeCoipPoolsCommand\");\n }\n};\n\n// src/commands/DescribeConversionTasksCommand.ts\n\n\n\n\n// src/models/models_4.ts\n\nvar VpnProtocol = {\n openvpn: \"openvpn\"\n};\nvar ConversionTaskState = {\n active: \"active\",\n cancelled: \"cancelled\",\n cancelling: \"cancelling\",\n completed: \"completed\"\n};\nvar ReportState = {\n cancelled: \"cancelled\",\n complete: \"complete\",\n error: \"error\",\n running: \"running\"\n};\nvar ElasticGpuStatus = {\n Impaired: \"IMPAIRED\",\n Ok: \"OK\"\n};\nvar ElasticGpuState = {\n Attached: \"ATTACHED\"\n};\nvar FastLaunchResourceType = {\n SNAPSHOT: \"snapshot\"\n};\nvar FastLaunchStateCode = {\n disabling: \"disabling\",\n disabling_failed: \"disabling-failed\",\n enabled: \"enabled\",\n enabled_failed: \"enabled-failed\",\n enabling: \"enabling\",\n enabling_failed: \"enabling-failed\"\n};\nvar FastSnapshotRestoreStateCode = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n enabling: \"enabling\",\n optimizing: \"optimizing\"\n};\nvar FleetEventType = {\n FLEET_CHANGE: \"fleet-change\",\n INSTANCE_CHANGE: \"instance-change\",\n SERVICE_ERROR: \"service-error\"\n};\nvar FleetActivityStatus = {\n ERROR: \"error\",\n FULFILLED: \"fulfilled\",\n PENDING_FULFILLMENT: \"pending_fulfillment\",\n PENDING_TERMINATION: \"pending_termination\"\n};\nvar FpgaImageAttributeName = {\n description: \"description\",\n loadPermission: \"loadPermission\",\n name: \"name\",\n productCodes: \"productCodes\"\n};\nvar PermissionGroup = {\n all: \"all\"\n};\nvar ProductCodeValues = {\n devpay: \"devpay\",\n marketplace: \"marketplace\"\n};\nvar FpgaImageStateCode = {\n available: \"available\",\n failed: \"failed\",\n pending: \"pending\",\n unavailable: \"unavailable\"\n};\nvar PaymentOption = {\n ALL_UPFRONT: \"AllUpfront\",\n NO_UPFRONT: \"NoUpfront\",\n PARTIAL_UPFRONT: \"PartialUpfront\"\n};\nvar ReservationState = {\n ACTIVE: \"active\",\n PAYMENT_FAILED: \"payment-failed\",\n PAYMENT_PENDING: \"payment-pending\",\n RETIRED: \"retired\"\n};\nvar ImageAttributeName = {\n blockDeviceMapping: \"blockDeviceMapping\",\n bootMode: \"bootMode\",\n deregistrationProtection: \"deregistrationProtection\",\n description: \"description\",\n imdsSupport: \"imdsSupport\",\n kernel: \"kernel\",\n lastLaunchedTime: \"lastLaunchedTime\",\n launchPermission: \"launchPermission\",\n productCodes: \"productCodes\",\n ramdisk: \"ramdisk\",\n sriovNetSupport: \"sriovNetSupport\",\n tpmSupport: \"tpmSupport\",\n uefiData: \"uefiData\"\n};\nvar ArchitectureValues = {\n arm64: \"arm64\",\n arm64_mac: \"arm64_mac\",\n i386: \"i386\",\n x86_64: \"x86_64\",\n x86_64_mac: \"x86_64_mac\"\n};\nvar BootModeValues = {\n legacy_bios: \"legacy-bios\",\n uefi: \"uefi\",\n uefi_preferred: \"uefi-preferred\"\n};\nvar HypervisorType = {\n ovm: \"ovm\",\n xen: \"xen\"\n};\nvar ImageTypeValues = {\n kernel: \"kernel\",\n machine: \"machine\",\n ramdisk: \"ramdisk\"\n};\nvar ImdsSupportValues = {\n v2_0: \"v2.0\"\n};\nvar DeviceType = {\n ebs: \"ebs\",\n instance_store: \"instance-store\"\n};\nvar ImageState = {\n available: \"available\",\n deregistered: \"deregistered\",\n disabled: \"disabled\",\n error: \"error\",\n failed: \"failed\",\n invalid: \"invalid\",\n pending: \"pending\",\n transient: \"transient\"\n};\nvar TpmSupportValues = {\n v2_0: \"v2.0\"\n};\nvar VirtualizationType = {\n hvm: \"hvm\",\n paravirtual: \"paravirtual\"\n};\nvar InstanceAttributeName = {\n blockDeviceMapping: \"blockDeviceMapping\",\n disableApiStop: \"disableApiStop\",\n disableApiTermination: \"disableApiTermination\",\n ebsOptimized: \"ebsOptimized\",\n enaSupport: \"enaSupport\",\n enclaveOptions: \"enclaveOptions\",\n groupSet: \"groupSet\",\n instanceInitiatedShutdownBehavior: \"instanceInitiatedShutdownBehavior\",\n instanceType: \"instanceType\",\n kernel: \"kernel\",\n productCodes: \"productCodes\",\n ramdisk: \"ramdisk\",\n rootDeviceName: \"rootDeviceName\",\n sourceDestCheck: \"sourceDestCheck\",\n sriovNetSupport: \"sriovNetSupport\",\n userData: \"userData\"\n};\nvar InstanceStateName = {\n pending: \"pending\",\n running: \"running\",\n shutting_down: \"shutting-down\",\n stopped: \"stopped\",\n stopping: \"stopping\",\n terminated: \"terminated\"\n};\nvar InstanceBootModeValues = {\n legacy_bios: \"legacy-bios\",\n uefi: \"uefi\"\n};\nvar InstanceLifecycleType = {\n capacity_block: \"capacity-block\",\n scheduled: \"scheduled\",\n spot: \"spot\"\n};\nvar InstanceAutoRecoveryState = {\n default: \"default\",\n disabled: \"disabled\"\n};\nvar InstanceMetadataEndpointState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar InstanceMetadataProtocolState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar HttpTokensState = {\n optional: \"optional\",\n required: \"required\"\n};\nvar InstanceMetadataTagsState = {\n disabled: \"disabled\",\n enabled: \"enabled\"\n};\nvar InstanceMetadataOptionsState = {\n applied: \"applied\",\n pending: \"pending\"\n};\nvar MonitoringState = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n pending: \"pending\"\n};\nvar StatusName = {\n reachability: \"reachability\"\n};\nvar StatusType = {\n failed: \"failed\",\n initializing: \"initializing\",\n insufficient_data: \"insufficient-data\",\n passed: \"passed\"\n};\nvar SummaryStatus = {\n impaired: \"impaired\",\n initializing: \"initializing\",\n insufficient_data: \"insufficient-data\",\n not_applicable: \"not-applicable\",\n ok: \"ok\"\n};\nvar EventCode = {\n instance_reboot: \"instance-reboot\",\n instance_retirement: \"instance-retirement\",\n instance_stop: \"instance-stop\",\n system_maintenance: \"system-maintenance\",\n system_reboot: \"system-reboot\"\n};\nvar LocationType = {\n availability_zone: \"availability-zone\",\n availability_zone_id: \"availability-zone-id\",\n outpost: \"outpost\",\n region: \"region\"\n};\nvar EbsOptimizedSupport = {\n default: \"default\",\n supported: \"supported\",\n unsupported: \"unsupported\"\n};\nvar EbsEncryptionSupport = {\n supported: \"supported\",\n unsupported: \"unsupported\"\n};\nvar EbsNvmeSupport = {\n REQUIRED: \"required\",\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar InstanceTypeHypervisor = {\n NITRO: \"nitro\",\n XEN: \"xen\"\n};\nvar DiskType = {\n hdd: \"hdd\",\n ssd: \"ssd\"\n};\nvar InstanceStorageEncryptionSupport = {\n required: \"required\",\n unsupported: \"unsupported\"\n};\nvar EphemeralNvmeSupport = {\n REQUIRED: \"required\",\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar BandwidthWeightingType = {\n DEFAULT: \"default\",\n EBS_1: \"ebs-1\",\n VPC_1: \"vpc-1\"\n};\nvar EnaSupport = {\n required: \"required\",\n supported: \"supported\",\n unsupported: \"unsupported\"\n};\nvar FlexibleEnaQueuesSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar NitroEnclavesSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar NitroTpmSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar PhcSupport = {\n SUPPORTED: \"supported\",\n UNSUPPORTED: \"unsupported\"\n};\nvar PlacementGroupStrategy = {\n cluster: \"cluster\",\n partition: \"partition\",\n spread: \"spread\"\n};\nvar ArchitectureType = {\n arm64: \"arm64\",\n arm64_mac: \"arm64_mac\",\n i386: \"i386\",\n x86_64: \"x86_64\",\n x86_64_mac: \"x86_64_mac\"\n};\nvar SupportedAdditionalProcessorFeature = {\n AMD_SEV_SNP: \"amd-sev-snp\"\n};\nvar BootModeType = {\n legacy_bios: \"legacy-bios\",\n uefi: \"uefi\"\n};\nvar RootDeviceType = {\n ebs: \"ebs\",\n instance_store: \"instance-store\"\n};\nvar UsageClassType = {\n capacity_block: \"capacity-block\",\n on_demand: \"on-demand\",\n spot: \"spot\"\n};\nvar DiskImageDescriptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportManifestUrl && { ImportManifestUrl: import_smithy_client.SENSITIVE_STRING }\n}), \"DiskImageDescriptionFilterSensitiveLog\");\nvar ImportInstanceVolumeDetailItemFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDescriptionFilterSensitiveLog(obj.Image) }\n}), \"ImportInstanceVolumeDetailItemFilterSensitiveLog\");\nvar ImportInstanceTaskDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Volumes && { Volumes: obj.Volumes.map((item) => ImportInstanceVolumeDetailItemFilterSensitiveLog(item)) }\n}), \"ImportInstanceTaskDetailsFilterSensitiveLog\");\nvar ImportVolumeTaskDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDescriptionFilterSensitiveLog(obj.Image) }\n}), \"ImportVolumeTaskDetailsFilterSensitiveLog\");\nvar ConversionTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportInstance && { ImportInstance: ImportInstanceTaskDetailsFilterSensitiveLog(obj.ImportInstance) },\n ...obj.ImportVolume && { ImportVolume: ImportVolumeTaskDetailsFilterSensitiveLog(obj.ImportVolume) }\n}), \"ConversionTaskFilterSensitiveLog\");\nvar DescribeConversionTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ConversionTasks && {\n ConversionTasks: obj.ConversionTasks.map((item) => ConversionTaskFilterSensitiveLog(item))\n }\n}), \"DescribeConversionTasksResultFilterSensitiveLog\");\nvar SnapshotDetailFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"SnapshotDetailFilterSensitiveLog\");\nvar ImportImageTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotDetails && {\n SnapshotDetails: obj.SnapshotDetails.map((item) => SnapshotDetailFilterSensitiveLog(item))\n }\n}), \"ImportImageTaskFilterSensitiveLog\");\nvar DescribeImportImageTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"DescribeImportImageTasksResultFilterSensitiveLog\");\nvar SnapshotTaskDetailFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"SnapshotTaskDetailFilterSensitiveLog\");\nvar ImportSnapshotTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotTaskDetail && { SnapshotTaskDetail: SnapshotTaskDetailFilterSensitiveLog(obj.SnapshotTaskDetail) }\n}), \"ImportSnapshotTaskFilterSensitiveLog\");\nvar DescribeImportSnapshotTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportSnapshotTasks && {\n ImportSnapshotTasks: obj.ImportSnapshotTasks.map((item) => ImportSnapshotTaskFilterSensitiveLog(item))\n }\n}), \"DescribeImportSnapshotTasksResultFilterSensitiveLog\");\nvar DescribeLaunchTemplateVersionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateVersions && {\n LaunchTemplateVersions: obj.LaunchTemplateVersions.map((item) => LaunchTemplateVersionFilterSensitiveLog(item))\n }\n}), \"DescribeLaunchTemplateVersionsResultFilterSensitiveLog\");\n\n// src/commands/DescribeConversionTasksCommand.ts\nvar DescribeConversionTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeConversionTasks\", {}).n(\"EC2Client\", \"DescribeConversionTasksCommand\").f(void 0, DescribeConversionTasksResultFilterSensitiveLog).ser(se_DescribeConversionTasksCommand).de(de_DescribeConversionTasksCommand).build() {\n static {\n __name(this, \"DescribeConversionTasksCommand\");\n }\n};\n\n// src/commands/DescribeCustomerGatewaysCommand.ts\n\n\n\nvar DescribeCustomerGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeCustomerGateways\", {}).n(\"EC2Client\", \"DescribeCustomerGatewaysCommand\").f(void 0, void 0).ser(se_DescribeCustomerGatewaysCommand).de(de_DescribeCustomerGatewaysCommand).build() {\n static {\n __name(this, \"DescribeCustomerGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeDeclarativePoliciesReportsCommand.ts\n\n\n\nvar DescribeDeclarativePoliciesReportsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeDeclarativePoliciesReports\", {}).n(\"EC2Client\", \"DescribeDeclarativePoliciesReportsCommand\").f(void 0, void 0).ser(se_DescribeDeclarativePoliciesReportsCommand).de(de_DescribeDeclarativePoliciesReportsCommand).build() {\n static {\n __name(this, \"DescribeDeclarativePoliciesReportsCommand\");\n }\n};\n\n// src/commands/DescribeDhcpOptionsCommand.ts\n\n\n\nvar DescribeDhcpOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeDhcpOptions\", {}).n(\"EC2Client\", \"DescribeDhcpOptionsCommand\").f(void 0, void 0).ser(se_DescribeDhcpOptionsCommand).de(de_DescribeDhcpOptionsCommand).build() {\n static {\n __name(this, \"DescribeDhcpOptionsCommand\");\n }\n};\n\n// src/commands/DescribeEgressOnlyInternetGatewaysCommand.ts\n\n\n\nvar DescribeEgressOnlyInternetGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeEgressOnlyInternetGateways\", {}).n(\"EC2Client\", \"DescribeEgressOnlyInternetGatewaysCommand\").f(void 0, void 0).ser(se_DescribeEgressOnlyInternetGatewaysCommand).de(de_DescribeEgressOnlyInternetGatewaysCommand).build() {\n static {\n __name(this, \"DescribeEgressOnlyInternetGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeElasticGpusCommand.ts\n\n\n\nvar DescribeElasticGpusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeElasticGpus\", {}).n(\"EC2Client\", \"DescribeElasticGpusCommand\").f(void 0, void 0).ser(se_DescribeElasticGpusCommand).de(de_DescribeElasticGpusCommand).build() {\n static {\n __name(this, \"DescribeElasticGpusCommand\");\n }\n};\n\n// src/commands/DescribeExportImageTasksCommand.ts\n\n\n\nvar DescribeExportImageTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeExportImageTasks\", {}).n(\"EC2Client\", \"DescribeExportImageTasksCommand\").f(void 0, void 0).ser(se_DescribeExportImageTasksCommand).de(de_DescribeExportImageTasksCommand).build() {\n static {\n __name(this, \"DescribeExportImageTasksCommand\");\n }\n};\n\n// src/commands/DescribeExportTasksCommand.ts\n\n\n\nvar DescribeExportTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeExportTasks\", {}).n(\"EC2Client\", \"DescribeExportTasksCommand\").f(void 0, void 0).ser(se_DescribeExportTasksCommand).de(de_DescribeExportTasksCommand).build() {\n static {\n __name(this, \"DescribeExportTasksCommand\");\n }\n};\n\n// src/commands/DescribeFastLaunchImagesCommand.ts\n\n\n\nvar DescribeFastLaunchImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFastLaunchImages\", {}).n(\"EC2Client\", \"DescribeFastLaunchImagesCommand\").f(void 0, void 0).ser(se_DescribeFastLaunchImagesCommand).de(de_DescribeFastLaunchImagesCommand).build() {\n static {\n __name(this, \"DescribeFastLaunchImagesCommand\");\n }\n};\n\n// src/commands/DescribeFastSnapshotRestoresCommand.ts\n\n\n\nvar DescribeFastSnapshotRestoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFastSnapshotRestores\", {}).n(\"EC2Client\", \"DescribeFastSnapshotRestoresCommand\").f(void 0, void 0).ser(se_DescribeFastSnapshotRestoresCommand).de(de_DescribeFastSnapshotRestoresCommand).build() {\n static {\n __name(this, \"DescribeFastSnapshotRestoresCommand\");\n }\n};\n\n// src/commands/DescribeFleetHistoryCommand.ts\n\n\n\nvar DescribeFleetHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFleetHistory\", {}).n(\"EC2Client\", \"DescribeFleetHistoryCommand\").f(void 0, void 0).ser(se_DescribeFleetHistoryCommand).de(de_DescribeFleetHistoryCommand).build() {\n static {\n __name(this, \"DescribeFleetHistoryCommand\");\n }\n};\n\n// src/commands/DescribeFleetInstancesCommand.ts\n\n\n\nvar DescribeFleetInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFleetInstances\", {}).n(\"EC2Client\", \"DescribeFleetInstancesCommand\").f(void 0, void 0).ser(se_DescribeFleetInstancesCommand).de(de_DescribeFleetInstancesCommand).build() {\n static {\n __name(this, \"DescribeFleetInstancesCommand\");\n }\n};\n\n// src/commands/DescribeFleetsCommand.ts\n\n\n\nvar DescribeFleetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFleets\", {}).n(\"EC2Client\", \"DescribeFleetsCommand\").f(void 0, void 0).ser(se_DescribeFleetsCommand).de(de_DescribeFleetsCommand).build() {\n static {\n __name(this, \"DescribeFleetsCommand\");\n }\n};\n\n// src/commands/DescribeFlowLogsCommand.ts\n\n\n\nvar DescribeFlowLogsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFlowLogs\", {}).n(\"EC2Client\", \"DescribeFlowLogsCommand\").f(void 0, void 0).ser(se_DescribeFlowLogsCommand).de(de_DescribeFlowLogsCommand).build() {\n static {\n __name(this, \"DescribeFlowLogsCommand\");\n }\n};\n\n// src/commands/DescribeFpgaImageAttributeCommand.ts\n\n\n\nvar DescribeFpgaImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFpgaImageAttribute\", {}).n(\"EC2Client\", \"DescribeFpgaImageAttributeCommand\").f(void 0, void 0).ser(se_DescribeFpgaImageAttributeCommand).de(de_DescribeFpgaImageAttributeCommand).build() {\n static {\n __name(this, \"DescribeFpgaImageAttributeCommand\");\n }\n};\n\n// src/commands/DescribeFpgaImagesCommand.ts\n\n\n\nvar DescribeFpgaImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeFpgaImages\", {}).n(\"EC2Client\", \"DescribeFpgaImagesCommand\").f(void 0, void 0).ser(se_DescribeFpgaImagesCommand).de(de_DescribeFpgaImagesCommand).build() {\n static {\n __name(this, \"DescribeFpgaImagesCommand\");\n }\n};\n\n// src/commands/DescribeHostReservationOfferingsCommand.ts\n\n\n\nvar DescribeHostReservationOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeHostReservationOfferings\", {}).n(\"EC2Client\", \"DescribeHostReservationOfferingsCommand\").f(void 0, void 0).ser(se_DescribeHostReservationOfferingsCommand).de(de_DescribeHostReservationOfferingsCommand).build() {\n static {\n __name(this, \"DescribeHostReservationOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeHostReservationsCommand.ts\n\n\n\nvar DescribeHostReservationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeHostReservations\", {}).n(\"EC2Client\", \"DescribeHostReservationsCommand\").f(void 0, void 0).ser(se_DescribeHostReservationsCommand).de(de_DescribeHostReservationsCommand).build() {\n static {\n __name(this, \"DescribeHostReservationsCommand\");\n }\n};\n\n// src/commands/DescribeHostsCommand.ts\n\n\n\nvar DescribeHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeHosts\", {}).n(\"EC2Client\", \"DescribeHostsCommand\").f(void 0, void 0).ser(se_DescribeHostsCommand).de(de_DescribeHostsCommand).build() {\n static {\n __name(this, \"DescribeHostsCommand\");\n }\n};\n\n// src/commands/DescribeIamInstanceProfileAssociationsCommand.ts\n\n\n\nvar DescribeIamInstanceProfileAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIamInstanceProfileAssociations\", {}).n(\"EC2Client\", \"DescribeIamInstanceProfileAssociationsCommand\").f(void 0, void 0).ser(se_DescribeIamInstanceProfileAssociationsCommand).de(de_DescribeIamInstanceProfileAssociationsCommand).build() {\n static {\n __name(this, \"DescribeIamInstanceProfileAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeIdentityIdFormatCommand.ts\n\n\n\nvar DescribeIdentityIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIdentityIdFormat\", {}).n(\"EC2Client\", \"DescribeIdentityIdFormatCommand\").f(void 0, void 0).ser(se_DescribeIdentityIdFormatCommand).de(de_DescribeIdentityIdFormatCommand).build() {\n static {\n __name(this, \"DescribeIdentityIdFormatCommand\");\n }\n};\n\n// src/commands/DescribeIdFormatCommand.ts\n\n\n\nvar DescribeIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIdFormat\", {}).n(\"EC2Client\", \"DescribeIdFormatCommand\").f(void 0, void 0).ser(se_DescribeIdFormatCommand).de(de_DescribeIdFormatCommand).build() {\n static {\n __name(this, \"DescribeIdFormatCommand\");\n }\n};\n\n// src/commands/DescribeImageAttributeCommand.ts\n\n\n\nvar DescribeImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImageAttribute\", {}).n(\"EC2Client\", \"DescribeImageAttributeCommand\").f(void 0, void 0).ser(se_DescribeImageAttributeCommand).de(de_DescribeImageAttributeCommand).build() {\n static {\n __name(this, \"DescribeImageAttributeCommand\");\n }\n};\n\n// src/commands/DescribeImagesCommand.ts\n\n\n\nvar DescribeImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImages\", {}).n(\"EC2Client\", \"DescribeImagesCommand\").f(void 0, void 0).ser(se_DescribeImagesCommand).de(de_DescribeImagesCommand).build() {\n static {\n __name(this, \"DescribeImagesCommand\");\n }\n};\n\n// src/commands/DescribeImportImageTasksCommand.ts\n\n\n\nvar DescribeImportImageTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImportImageTasks\", {}).n(\"EC2Client\", \"DescribeImportImageTasksCommand\").f(void 0, DescribeImportImageTasksResultFilterSensitiveLog).ser(se_DescribeImportImageTasksCommand).de(de_DescribeImportImageTasksCommand).build() {\n static {\n __name(this, \"DescribeImportImageTasksCommand\");\n }\n};\n\n// src/commands/DescribeImportSnapshotTasksCommand.ts\n\n\n\nvar DescribeImportSnapshotTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeImportSnapshotTasks\", {}).n(\"EC2Client\", \"DescribeImportSnapshotTasksCommand\").f(void 0, DescribeImportSnapshotTasksResultFilterSensitiveLog).ser(se_DescribeImportSnapshotTasksCommand).de(de_DescribeImportSnapshotTasksCommand).build() {\n static {\n __name(this, \"DescribeImportSnapshotTasksCommand\");\n }\n};\n\n// src/commands/DescribeInstanceAttributeCommand.ts\n\n\n\nvar DescribeInstanceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceAttribute\", {}).n(\"EC2Client\", \"DescribeInstanceAttributeCommand\").f(void 0, void 0).ser(se_DescribeInstanceAttributeCommand).de(de_DescribeInstanceAttributeCommand).build() {\n static {\n __name(this, \"DescribeInstanceAttributeCommand\");\n }\n};\n\n// src/commands/DescribeInstanceConnectEndpointsCommand.ts\n\n\n\nvar DescribeInstanceConnectEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceConnectEndpoints\", {}).n(\"EC2Client\", \"DescribeInstanceConnectEndpointsCommand\").f(void 0, void 0).ser(se_DescribeInstanceConnectEndpointsCommand).de(de_DescribeInstanceConnectEndpointsCommand).build() {\n static {\n __name(this, \"DescribeInstanceConnectEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceCreditSpecificationsCommand.ts\n\n\n\nvar DescribeInstanceCreditSpecificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceCreditSpecifications\", {}).n(\"EC2Client\", \"DescribeInstanceCreditSpecificationsCommand\").f(void 0, void 0).ser(se_DescribeInstanceCreditSpecificationsCommand).de(de_DescribeInstanceCreditSpecificationsCommand).build() {\n static {\n __name(this, \"DescribeInstanceCreditSpecificationsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceEventNotificationAttributesCommand.ts\n\n\n\nvar DescribeInstanceEventNotificationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceEventNotificationAttributes\", {}).n(\"EC2Client\", \"DescribeInstanceEventNotificationAttributesCommand\").f(void 0, void 0).ser(se_DescribeInstanceEventNotificationAttributesCommand).de(de_DescribeInstanceEventNotificationAttributesCommand).build() {\n static {\n __name(this, \"DescribeInstanceEventNotificationAttributesCommand\");\n }\n};\n\n// src/commands/DescribeInstanceEventWindowsCommand.ts\n\n\n\nvar DescribeInstanceEventWindowsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceEventWindows\", {}).n(\"EC2Client\", \"DescribeInstanceEventWindowsCommand\").f(void 0, void 0).ser(se_DescribeInstanceEventWindowsCommand).de(de_DescribeInstanceEventWindowsCommand).build() {\n static {\n __name(this, \"DescribeInstanceEventWindowsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceImageMetadataCommand.ts\n\n\n\nvar DescribeInstanceImageMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceImageMetadata\", {}).n(\"EC2Client\", \"DescribeInstanceImageMetadataCommand\").f(void 0, void 0).ser(se_DescribeInstanceImageMetadataCommand).de(de_DescribeInstanceImageMetadataCommand).build() {\n static {\n __name(this, \"DescribeInstanceImageMetadataCommand\");\n }\n};\n\n// src/commands/DescribeInstancesCommand.ts\n\n\n\nvar DescribeInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstances\", {}).n(\"EC2Client\", \"DescribeInstancesCommand\").f(void 0, void 0).ser(se_DescribeInstancesCommand).de(de_DescribeInstancesCommand).build() {\n static {\n __name(this, \"DescribeInstancesCommand\");\n }\n};\n\n// src/commands/DescribeInstanceStatusCommand.ts\n\n\n\nvar DescribeInstanceStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceStatus\", {}).n(\"EC2Client\", \"DescribeInstanceStatusCommand\").f(void 0, void 0).ser(se_DescribeInstanceStatusCommand).de(de_DescribeInstanceStatusCommand).build() {\n static {\n __name(this, \"DescribeInstanceStatusCommand\");\n }\n};\n\n// src/commands/DescribeInstanceTopologyCommand.ts\n\n\n\nvar DescribeInstanceTopologyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceTopology\", {}).n(\"EC2Client\", \"DescribeInstanceTopologyCommand\").f(void 0, void 0).ser(se_DescribeInstanceTopologyCommand).de(de_DescribeInstanceTopologyCommand).build() {\n static {\n __name(this, \"DescribeInstanceTopologyCommand\");\n }\n};\n\n// src/commands/DescribeInstanceTypeOfferingsCommand.ts\n\n\n\nvar DescribeInstanceTypeOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceTypeOfferings\", {}).n(\"EC2Client\", \"DescribeInstanceTypeOfferingsCommand\").f(void 0, void 0).ser(se_DescribeInstanceTypeOfferingsCommand).de(de_DescribeInstanceTypeOfferingsCommand).build() {\n static {\n __name(this, \"DescribeInstanceTypeOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeInstanceTypesCommand.ts\n\n\n\nvar DescribeInstanceTypesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInstanceTypes\", {}).n(\"EC2Client\", \"DescribeInstanceTypesCommand\").f(void 0, void 0).ser(se_DescribeInstanceTypesCommand).de(de_DescribeInstanceTypesCommand).build() {\n static {\n __name(this, \"DescribeInstanceTypesCommand\");\n }\n};\n\n// src/commands/DescribeInternetGatewaysCommand.ts\n\n\n\nvar DescribeInternetGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeInternetGateways\", {}).n(\"EC2Client\", \"DescribeInternetGatewaysCommand\").f(void 0, void 0).ser(se_DescribeInternetGatewaysCommand).de(de_DescribeInternetGatewaysCommand).build() {\n static {\n __name(this, \"DescribeInternetGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeIpamByoasnCommand.ts\n\n\n\nvar DescribeIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamByoasn\", {}).n(\"EC2Client\", \"DescribeIpamByoasnCommand\").f(void 0, void 0).ser(se_DescribeIpamByoasnCommand).de(de_DescribeIpamByoasnCommand).build() {\n static {\n __name(this, \"DescribeIpamByoasnCommand\");\n }\n};\n\n// src/commands/DescribeIpamExternalResourceVerificationTokensCommand.ts\n\n\n\nvar DescribeIpamExternalResourceVerificationTokensCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamExternalResourceVerificationTokens\", {}).n(\"EC2Client\", \"DescribeIpamExternalResourceVerificationTokensCommand\").f(void 0, void 0).ser(se_DescribeIpamExternalResourceVerificationTokensCommand).de(de_DescribeIpamExternalResourceVerificationTokensCommand).build() {\n static {\n __name(this, \"DescribeIpamExternalResourceVerificationTokensCommand\");\n }\n};\n\n// src/commands/DescribeIpamPoolsCommand.ts\n\n\n\nvar DescribeIpamPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamPools\", {}).n(\"EC2Client\", \"DescribeIpamPoolsCommand\").f(void 0, void 0).ser(se_DescribeIpamPoolsCommand).de(de_DescribeIpamPoolsCommand).build() {\n static {\n __name(this, \"DescribeIpamPoolsCommand\");\n }\n};\n\n// src/commands/DescribeIpamResourceDiscoveriesCommand.ts\n\n\n\nvar DescribeIpamResourceDiscoveriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamResourceDiscoveries\", {}).n(\"EC2Client\", \"DescribeIpamResourceDiscoveriesCommand\").f(void 0, void 0).ser(se_DescribeIpamResourceDiscoveriesCommand).de(de_DescribeIpamResourceDiscoveriesCommand).build() {\n static {\n __name(this, \"DescribeIpamResourceDiscoveriesCommand\");\n }\n};\n\n// src/commands/DescribeIpamResourceDiscoveryAssociationsCommand.ts\n\n\n\nvar DescribeIpamResourceDiscoveryAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamResourceDiscoveryAssociations\", {}).n(\"EC2Client\", \"DescribeIpamResourceDiscoveryAssociationsCommand\").f(void 0, void 0).ser(se_DescribeIpamResourceDiscoveryAssociationsCommand).de(de_DescribeIpamResourceDiscoveryAssociationsCommand).build() {\n static {\n __name(this, \"DescribeIpamResourceDiscoveryAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeIpamsCommand.ts\n\n\n\nvar DescribeIpamsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpams\", {}).n(\"EC2Client\", \"DescribeIpamsCommand\").f(void 0, void 0).ser(se_DescribeIpamsCommand).de(de_DescribeIpamsCommand).build() {\n static {\n __name(this, \"DescribeIpamsCommand\");\n }\n};\n\n// src/commands/DescribeIpamScopesCommand.ts\n\n\n\nvar DescribeIpamScopesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpamScopes\", {}).n(\"EC2Client\", \"DescribeIpamScopesCommand\").f(void 0, void 0).ser(se_DescribeIpamScopesCommand).de(de_DescribeIpamScopesCommand).build() {\n static {\n __name(this, \"DescribeIpamScopesCommand\");\n }\n};\n\n// src/commands/DescribeIpv6PoolsCommand.ts\n\n\n\nvar DescribeIpv6PoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeIpv6Pools\", {}).n(\"EC2Client\", \"DescribeIpv6PoolsCommand\").f(void 0, void 0).ser(se_DescribeIpv6PoolsCommand).de(de_DescribeIpv6PoolsCommand).build() {\n static {\n __name(this, \"DescribeIpv6PoolsCommand\");\n }\n};\n\n// src/commands/DescribeKeyPairsCommand.ts\n\n\n\nvar DescribeKeyPairsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeKeyPairs\", {}).n(\"EC2Client\", \"DescribeKeyPairsCommand\").f(void 0, void 0).ser(se_DescribeKeyPairsCommand).de(de_DescribeKeyPairsCommand).build() {\n static {\n __name(this, \"DescribeKeyPairsCommand\");\n }\n};\n\n// src/commands/DescribeLaunchTemplatesCommand.ts\n\n\n\nvar DescribeLaunchTemplatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLaunchTemplates\", {}).n(\"EC2Client\", \"DescribeLaunchTemplatesCommand\").f(void 0, void 0).ser(se_DescribeLaunchTemplatesCommand).de(de_DescribeLaunchTemplatesCommand).build() {\n static {\n __name(this, \"DescribeLaunchTemplatesCommand\");\n }\n};\n\n// src/commands/DescribeLaunchTemplateVersionsCommand.ts\n\n\n\nvar DescribeLaunchTemplateVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLaunchTemplateVersions\", {}).n(\"EC2Client\", \"DescribeLaunchTemplateVersionsCommand\").f(void 0, DescribeLaunchTemplateVersionsResultFilterSensitiveLog).ser(se_DescribeLaunchTemplateVersionsCommand).de(de_DescribeLaunchTemplateVersionsCommand).build() {\n static {\n __name(this, \"DescribeLaunchTemplateVersionsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayRouteTablesCommand.ts\n\n\n\nvar DescribeLocalGatewayRouteTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayRouteTables\", {}).n(\"EC2Client\", \"DescribeLocalGatewayRouteTablesCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayRouteTablesCommand).de(de_DescribeLocalGatewayRouteTablesCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayRouteTablesCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand.ts\n\n\n\nvar DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations\", {}).n(\"EC2Client\", \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand).de(de_DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayRouteTableVpcAssociationsCommand.ts\n\n\n\nvar DescribeLocalGatewayRouteTableVpcAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayRouteTableVpcAssociations\", {}).n(\"EC2Client\", \"DescribeLocalGatewayRouteTableVpcAssociationsCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayRouteTableVpcAssociationsCommand).de(de_DescribeLocalGatewayRouteTableVpcAssociationsCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayRouteTableVpcAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewaysCommand.ts\n\n\n\nvar DescribeLocalGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGateways\", {}).n(\"EC2Client\", \"DescribeLocalGatewaysCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewaysCommand).de(de_DescribeLocalGatewaysCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayVirtualInterfaceGroupsCommand.ts\n\n\n\nvar DescribeLocalGatewayVirtualInterfaceGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayVirtualInterfaceGroups\", {}).n(\"EC2Client\", \"DescribeLocalGatewayVirtualInterfaceGroupsCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayVirtualInterfaceGroupsCommand).de(de_DescribeLocalGatewayVirtualInterfaceGroupsCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayVirtualInterfaceGroupsCommand\");\n }\n};\n\n// src/commands/DescribeLocalGatewayVirtualInterfacesCommand.ts\n\n\n\nvar DescribeLocalGatewayVirtualInterfacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLocalGatewayVirtualInterfaces\", {}).n(\"EC2Client\", \"DescribeLocalGatewayVirtualInterfacesCommand\").f(void 0, void 0).ser(se_DescribeLocalGatewayVirtualInterfacesCommand).de(de_DescribeLocalGatewayVirtualInterfacesCommand).build() {\n static {\n __name(this, \"DescribeLocalGatewayVirtualInterfacesCommand\");\n }\n};\n\n// src/commands/DescribeLockedSnapshotsCommand.ts\n\n\n\nvar DescribeLockedSnapshotsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeLockedSnapshots\", {}).n(\"EC2Client\", \"DescribeLockedSnapshotsCommand\").f(void 0, void 0).ser(se_DescribeLockedSnapshotsCommand).de(de_DescribeLockedSnapshotsCommand).build() {\n static {\n __name(this, \"DescribeLockedSnapshotsCommand\");\n }\n};\n\n// src/commands/DescribeMacHostsCommand.ts\n\n\n\nvar DescribeMacHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeMacHosts\", {}).n(\"EC2Client\", \"DescribeMacHostsCommand\").f(void 0, void 0).ser(se_DescribeMacHostsCommand).de(de_DescribeMacHostsCommand).build() {\n static {\n __name(this, \"DescribeMacHostsCommand\");\n }\n};\n\n// src/commands/DescribeManagedPrefixListsCommand.ts\n\n\n\nvar DescribeManagedPrefixListsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeManagedPrefixLists\", {}).n(\"EC2Client\", \"DescribeManagedPrefixListsCommand\").f(void 0, void 0).ser(se_DescribeManagedPrefixListsCommand).de(de_DescribeManagedPrefixListsCommand).build() {\n static {\n __name(this, \"DescribeManagedPrefixListsCommand\");\n }\n};\n\n// src/commands/DescribeMovingAddressesCommand.ts\n\n\n\nvar DescribeMovingAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeMovingAddresses\", {}).n(\"EC2Client\", \"DescribeMovingAddressesCommand\").f(void 0, void 0).ser(se_DescribeMovingAddressesCommand).de(de_DescribeMovingAddressesCommand).build() {\n static {\n __name(this, \"DescribeMovingAddressesCommand\");\n }\n};\n\n// src/commands/DescribeNatGatewaysCommand.ts\n\n\n\nvar DescribeNatGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNatGateways\", {}).n(\"EC2Client\", \"DescribeNatGatewaysCommand\").f(void 0, void 0).ser(se_DescribeNatGatewaysCommand).de(de_DescribeNatGatewaysCommand).build() {\n static {\n __name(this, \"DescribeNatGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeNetworkAclsCommand.ts\n\n\n\nvar DescribeNetworkAclsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkAcls\", {}).n(\"EC2Client\", \"DescribeNetworkAclsCommand\").f(void 0, void 0).ser(se_DescribeNetworkAclsCommand).de(de_DescribeNetworkAclsCommand).build() {\n static {\n __name(this, \"DescribeNetworkAclsCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsAccessScopeAnalysesCommand.ts\n\n\n\nvar DescribeNetworkInsightsAccessScopeAnalysesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsAccessScopeAnalyses\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsAccessScopeAnalysesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsAccessScopeAnalysesCommand).de(de_DescribeNetworkInsightsAccessScopeAnalysesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsAccessScopeAnalysesCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsAccessScopesCommand.ts\n\n\n\nvar DescribeNetworkInsightsAccessScopesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsAccessScopes\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsAccessScopesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsAccessScopesCommand).de(de_DescribeNetworkInsightsAccessScopesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsAccessScopesCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsAnalysesCommand.ts\n\n\n\nvar DescribeNetworkInsightsAnalysesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsAnalyses\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsAnalysesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsAnalysesCommand).de(de_DescribeNetworkInsightsAnalysesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsAnalysesCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInsightsPathsCommand.ts\n\n\n\nvar DescribeNetworkInsightsPathsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInsightsPaths\", {}).n(\"EC2Client\", \"DescribeNetworkInsightsPathsCommand\").f(void 0, void 0).ser(se_DescribeNetworkInsightsPathsCommand).de(de_DescribeNetworkInsightsPathsCommand).build() {\n static {\n __name(this, \"DescribeNetworkInsightsPathsCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInterfaceAttributeCommand.ts\n\n\n\nvar DescribeNetworkInterfaceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInterfaceAttribute\", {}).n(\"EC2Client\", \"DescribeNetworkInterfaceAttributeCommand\").f(void 0, void 0).ser(se_DescribeNetworkInterfaceAttributeCommand).de(de_DescribeNetworkInterfaceAttributeCommand).build() {\n static {\n __name(this, \"DescribeNetworkInterfaceAttributeCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInterfacePermissionsCommand.ts\n\n\n\nvar DescribeNetworkInterfacePermissionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInterfacePermissions\", {}).n(\"EC2Client\", \"DescribeNetworkInterfacePermissionsCommand\").f(void 0, void 0).ser(se_DescribeNetworkInterfacePermissionsCommand).de(de_DescribeNetworkInterfacePermissionsCommand).build() {\n static {\n __name(this, \"DescribeNetworkInterfacePermissionsCommand\");\n }\n};\n\n// src/commands/DescribeNetworkInterfacesCommand.ts\n\n\n\nvar DescribeNetworkInterfacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeNetworkInterfaces\", {}).n(\"EC2Client\", \"DescribeNetworkInterfacesCommand\").f(void 0, void 0).ser(se_DescribeNetworkInterfacesCommand).de(de_DescribeNetworkInterfacesCommand).build() {\n static {\n __name(this, \"DescribeNetworkInterfacesCommand\");\n }\n};\n\n// src/commands/DescribeOutpostLagsCommand.ts\n\n\n\nvar DescribeOutpostLagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeOutpostLags\", {}).n(\"EC2Client\", \"DescribeOutpostLagsCommand\").f(void 0, void 0).ser(se_DescribeOutpostLagsCommand).de(de_DescribeOutpostLagsCommand).build() {\n static {\n __name(this, \"DescribeOutpostLagsCommand\");\n }\n};\n\n// src/commands/DescribePlacementGroupsCommand.ts\n\n\n\nvar DescribePlacementGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePlacementGroups\", {}).n(\"EC2Client\", \"DescribePlacementGroupsCommand\").f(void 0, void 0).ser(se_DescribePlacementGroupsCommand).de(de_DescribePlacementGroupsCommand).build() {\n static {\n __name(this, \"DescribePlacementGroupsCommand\");\n }\n};\n\n// src/commands/DescribePrefixListsCommand.ts\n\n\n\nvar DescribePrefixListsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePrefixLists\", {}).n(\"EC2Client\", \"DescribePrefixListsCommand\").f(void 0, void 0).ser(se_DescribePrefixListsCommand).de(de_DescribePrefixListsCommand).build() {\n static {\n __name(this, \"DescribePrefixListsCommand\");\n }\n};\n\n// src/commands/DescribePrincipalIdFormatCommand.ts\n\n\n\nvar DescribePrincipalIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePrincipalIdFormat\", {}).n(\"EC2Client\", \"DescribePrincipalIdFormatCommand\").f(void 0, void 0).ser(se_DescribePrincipalIdFormatCommand).de(de_DescribePrincipalIdFormatCommand).build() {\n static {\n __name(this, \"DescribePrincipalIdFormatCommand\");\n }\n};\n\n// src/commands/DescribePublicIpv4PoolsCommand.ts\n\n\n\nvar DescribePublicIpv4PoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribePublicIpv4Pools\", {}).n(\"EC2Client\", \"DescribePublicIpv4PoolsCommand\").f(void 0, void 0).ser(se_DescribePublicIpv4PoolsCommand).de(de_DescribePublicIpv4PoolsCommand).build() {\n static {\n __name(this, \"DescribePublicIpv4PoolsCommand\");\n }\n};\n\n// src/commands/DescribeRegionsCommand.ts\n\n\n\nvar DescribeRegionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRegions\", {}).n(\"EC2Client\", \"DescribeRegionsCommand\").f(void 0, void 0).ser(se_DescribeRegionsCommand).de(de_DescribeRegionsCommand).build() {\n static {\n __name(this, \"DescribeRegionsCommand\");\n }\n};\n\n// src/commands/DescribeReplaceRootVolumeTasksCommand.ts\n\n\n\nvar DescribeReplaceRootVolumeTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReplaceRootVolumeTasks\", {}).n(\"EC2Client\", \"DescribeReplaceRootVolumeTasksCommand\").f(void 0, void 0).ser(se_DescribeReplaceRootVolumeTasksCommand).de(de_DescribeReplaceRootVolumeTasksCommand).build() {\n static {\n __name(this, \"DescribeReplaceRootVolumeTasksCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesCommand.ts\n\n\n\nvar DescribeReservedInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstances\", {}).n(\"EC2Client\", \"DescribeReservedInstancesCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesCommand).de(de_DescribeReservedInstancesCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesListingsCommand.ts\n\n\n\nvar DescribeReservedInstancesListingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstancesListings\", {}).n(\"EC2Client\", \"DescribeReservedInstancesListingsCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesListingsCommand).de(de_DescribeReservedInstancesListingsCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesListingsCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesModificationsCommand.ts\n\n\n\nvar DescribeReservedInstancesModificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstancesModifications\", {}).n(\"EC2Client\", \"DescribeReservedInstancesModificationsCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesModificationsCommand).de(de_DescribeReservedInstancesModificationsCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesModificationsCommand\");\n }\n};\n\n// src/commands/DescribeReservedInstancesOfferingsCommand.ts\n\n\n\nvar DescribeReservedInstancesOfferingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeReservedInstancesOfferings\", {}).n(\"EC2Client\", \"DescribeReservedInstancesOfferingsCommand\").f(void 0, void 0).ser(se_DescribeReservedInstancesOfferingsCommand).de(de_DescribeReservedInstancesOfferingsCommand).build() {\n static {\n __name(this, \"DescribeReservedInstancesOfferingsCommand\");\n }\n};\n\n// src/commands/DescribeRouteServerEndpointsCommand.ts\n\n\n\nvar DescribeRouteServerEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteServerEndpoints\", {}).n(\"EC2Client\", \"DescribeRouteServerEndpointsCommand\").f(void 0, void 0).ser(se_DescribeRouteServerEndpointsCommand).de(de_DescribeRouteServerEndpointsCommand).build() {\n static {\n __name(this, \"DescribeRouteServerEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeRouteServerPeersCommand.ts\n\n\n\nvar DescribeRouteServerPeersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteServerPeers\", {}).n(\"EC2Client\", \"DescribeRouteServerPeersCommand\").f(void 0, void 0).ser(se_DescribeRouteServerPeersCommand).de(de_DescribeRouteServerPeersCommand).build() {\n static {\n __name(this, \"DescribeRouteServerPeersCommand\");\n }\n};\n\n// src/commands/DescribeRouteServersCommand.ts\n\n\n\nvar DescribeRouteServersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteServers\", {}).n(\"EC2Client\", \"DescribeRouteServersCommand\").f(void 0, void 0).ser(se_DescribeRouteServersCommand).de(de_DescribeRouteServersCommand).build() {\n static {\n __name(this, \"DescribeRouteServersCommand\");\n }\n};\n\n// src/commands/DescribeRouteTablesCommand.ts\n\n\n\nvar DescribeRouteTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeRouteTables\", {}).n(\"EC2Client\", \"DescribeRouteTablesCommand\").f(void 0, void 0).ser(se_DescribeRouteTablesCommand).de(de_DescribeRouteTablesCommand).build() {\n static {\n __name(this, \"DescribeRouteTablesCommand\");\n }\n};\n\n// src/commands/DescribeScheduledInstanceAvailabilityCommand.ts\n\n\n\nvar DescribeScheduledInstanceAvailabilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeScheduledInstanceAvailability\", {}).n(\"EC2Client\", \"DescribeScheduledInstanceAvailabilityCommand\").f(void 0, void 0).ser(se_DescribeScheduledInstanceAvailabilityCommand).de(de_DescribeScheduledInstanceAvailabilityCommand).build() {\n static {\n __name(this, \"DescribeScheduledInstanceAvailabilityCommand\");\n }\n};\n\n// src/commands/DescribeScheduledInstancesCommand.ts\n\n\n\nvar DescribeScheduledInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeScheduledInstances\", {}).n(\"EC2Client\", \"DescribeScheduledInstancesCommand\").f(void 0, void 0).ser(se_DescribeScheduledInstancesCommand).de(de_DescribeScheduledInstancesCommand).build() {\n static {\n __name(this, \"DescribeScheduledInstancesCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupReferencesCommand.ts\n\n\n\nvar DescribeSecurityGroupReferencesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroupReferences\", {}).n(\"EC2Client\", \"DescribeSecurityGroupReferencesCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupReferencesCommand).de(de_DescribeSecurityGroupReferencesCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupReferencesCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupRulesCommand.ts\n\n\n\nvar DescribeSecurityGroupRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroupRules\", {}).n(\"EC2Client\", \"DescribeSecurityGroupRulesCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupRulesCommand).de(de_DescribeSecurityGroupRulesCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupRulesCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupsCommand.ts\n\n\n\nvar DescribeSecurityGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroups\", {}).n(\"EC2Client\", \"DescribeSecurityGroupsCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupsCommand).de(de_DescribeSecurityGroupsCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupsCommand\");\n }\n};\n\n// src/commands/DescribeSecurityGroupVpcAssociationsCommand.ts\n\n\n\nvar DescribeSecurityGroupVpcAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSecurityGroupVpcAssociations\", {}).n(\"EC2Client\", \"DescribeSecurityGroupVpcAssociationsCommand\").f(void 0, void 0).ser(se_DescribeSecurityGroupVpcAssociationsCommand).de(de_DescribeSecurityGroupVpcAssociationsCommand).build() {\n static {\n __name(this, \"DescribeSecurityGroupVpcAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeServiceLinkVirtualInterfacesCommand.ts\n\n\n\nvar DescribeServiceLinkVirtualInterfacesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeServiceLinkVirtualInterfaces\", {}).n(\"EC2Client\", \"DescribeServiceLinkVirtualInterfacesCommand\").f(void 0, void 0).ser(se_DescribeServiceLinkVirtualInterfacesCommand).de(de_DescribeServiceLinkVirtualInterfacesCommand).build() {\n static {\n __name(this, \"DescribeServiceLinkVirtualInterfacesCommand\");\n }\n};\n\n// src/commands/DescribeSnapshotAttributeCommand.ts\n\n\n\nvar DescribeSnapshotAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSnapshotAttribute\", {}).n(\"EC2Client\", \"DescribeSnapshotAttributeCommand\").f(void 0, void 0).ser(se_DescribeSnapshotAttributeCommand).de(de_DescribeSnapshotAttributeCommand).build() {\n static {\n __name(this, \"DescribeSnapshotAttributeCommand\");\n }\n};\n\n// src/commands/DescribeSnapshotsCommand.ts\n\n\n\nvar DescribeSnapshotsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSnapshots\", {}).n(\"EC2Client\", \"DescribeSnapshotsCommand\").f(void 0, void 0).ser(se_DescribeSnapshotsCommand).de(de_DescribeSnapshotsCommand).build() {\n static {\n __name(this, \"DescribeSnapshotsCommand\");\n }\n};\n\n// src/commands/DescribeSnapshotTierStatusCommand.ts\n\n\n\nvar DescribeSnapshotTierStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSnapshotTierStatus\", {}).n(\"EC2Client\", \"DescribeSnapshotTierStatusCommand\").f(void 0, void 0).ser(se_DescribeSnapshotTierStatusCommand).de(de_DescribeSnapshotTierStatusCommand).build() {\n static {\n __name(this, \"DescribeSnapshotTierStatusCommand\");\n }\n};\n\n// src/commands/DescribeSpotDatafeedSubscriptionCommand.ts\n\n\n\nvar DescribeSpotDatafeedSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotDatafeedSubscription\", {}).n(\"EC2Client\", \"DescribeSpotDatafeedSubscriptionCommand\").f(void 0, void 0).ser(se_DescribeSpotDatafeedSubscriptionCommand).de(de_DescribeSpotDatafeedSubscriptionCommand).build() {\n static {\n __name(this, \"DescribeSpotDatafeedSubscriptionCommand\");\n }\n};\n\n// src/commands/DescribeSpotFleetInstancesCommand.ts\n\n\n\nvar DescribeSpotFleetInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotFleetInstances\", {}).n(\"EC2Client\", \"DescribeSpotFleetInstancesCommand\").f(void 0, void 0).ser(se_DescribeSpotFleetInstancesCommand).de(de_DescribeSpotFleetInstancesCommand).build() {\n static {\n __name(this, \"DescribeSpotFleetInstancesCommand\");\n }\n};\n\n// src/commands/DescribeSpotFleetRequestHistoryCommand.ts\n\n\n\nvar DescribeSpotFleetRequestHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotFleetRequestHistory\", {}).n(\"EC2Client\", \"DescribeSpotFleetRequestHistoryCommand\").f(void 0, void 0).ser(se_DescribeSpotFleetRequestHistoryCommand).de(de_DescribeSpotFleetRequestHistoryCommand).build() {\n static {\n __name(this, \"DescribeSpotFleetRequestHistoryCommand\");\n }\n};\n\n// src/commands/DescribeSpotFleetRequestsCommand.ts\n\n\n\n\n// src/models/models_5.ts\n\nvar LockState = {\n compliance: \"compliance\",\n compliance_cooloff: \"compliance-cooloff\",\n expired: \"expired\",\n governance: \"governance\"\n};\nvar MoveStatus = {\n movingToVpc: \"movingToVpc\",\n restoringToClassic: \"restoringToClassic\"\n};\nvar FindingsFound = {\n false: \"false\",\n true: \"true\",\n unknown: \"unknown\"\n};\nvar AnalysisStatus = {\n failed: \"failed\",\n running: \"running\",\n succeeded: \"succeeded\"\n};\nvar NetworkInterfaceAttribute = {\n associatePublicIpAddress: \"associatePublicIpAddress\",\n attachment: \"attachment\",\n description: \"description\",\n groupSet: \"groupSet\",\n sourceDestCheck: \"sourceDestCheck\"\n};\nvar OfferingClassType = {\n CONVERTIBLE: \"convertible\",\n STANDARD: \"standard\"\n};\nvar OfferingTypeValues = {\n All_Upfront: \"All Upfront\",\n Heavy_Utilization: \"Heavy Utilization\",\n Light_Utilization: \"Light Utilization\",\n Medium_Utilization: \"Medium Utilization\",\n No_Upfront: \"No Upfront\",\n Partial_Upfront: \"Partial Upfront\"\n};\nvar RIProductDescription = {\n Linux_UNIX: \"Linux/UNIX\",\n Linux_UNIX_Amazon_VPC_: \"Linux/UNIX (Amazon VPC)\",\n Windows: \"Windows\",\n Windows_Amazon_VPC_: \"Windows (Amazon VPC)\"\n};\nvar RecurringChargeFrequency = {\n Hourly: \"Hourly\"\n};\nvar Scope = {\n AVAILABILITY_ZONE: \"Availability Zone\",\n REGIONAL: \"Region\"\n};\nvar ReservedInstanceState = {\n active: \"active\",\n payment_failed: \"payment-failed\",\n payment_pending: \"payment-pending\",\n queued: \"queued\",\n queued_deleted: \"queued-deleted\",\n retired: \"retired\"\n};\nvar ServiceLinkVirtualInterfaceConfigurationState = {\n available: \"available\",\n deleted: \"deleted\",\n deleting: \"deleting\",\n pending: \"pending\"\n};\nvar SnapshotAttributeName = {\n createVolumePermission: \"createVolumePermission\",\n productCodes: \"productCodes\"\n};\nvar TieringOperationStatus = {\n archival_completed: \"archival-completed\",\n archival_failed: \"archival-failed\",\n archival_in_progress: \"archival-in-progress\",\n permanent_restore_completed: \"permanent-restore-completed\",\n permanent_restore_failed: \"permanent-restore-failed\",\n permanent_restore_in_progress: \"permanent-restore-in-progress\",\n temporary_restore_completed: \"temporary-restore-completed\",\n temporary_restore_failed: \"temporary-restore-failed\",\n temporary_restore_in_progress: \"temporary-restore-in-progress\"\n};\nvar EventType = {\n BATCH_CHANGE: \"fleetRequestChange\",\n ERROR: \"error\",\n INFORMATION: \"information\",\n INSTANCE_CHANGE: \"instanceChange\"\n};\nvar ExcessCapacityTerminationPolicy = {\n DEFAULT: \"default\",\n NO_TERMINATION: \"noTermination\"\n};\nvar OnDemandAllocationStrategy = {\n LOWEST_PRICE: \"lowestPrice\",\n PRIORITIZED: \"prioritized\"\n};\nvar ReplacementStrategy = {\n LAUNCH: \"launch\",\n LAUNCH_BEFORE_TERMINATE: \"launch-before-terminate\"\n};\nvar SpotInstanceState = {\n active: \"active\",\n cancelled: \"cancelled\",\n closed: \"closed\",\n disabled: \"disabled\",\n failed: \"failed\",\n open: \"open\"\n};\nvar VerifiedAccessLogDeliveryStatusCode = {\n FAILED: \"failed\",\n SUCCESS: \"success\"\n};\nvar VolumeAttributeName = {\n autoEnableIO: \"autoEnableIO\",\n productCodes: \"productCodes\"\n};\nvar VolumeModificationState = {\n completed: \"completed\",\n failed: \"failed\",\n modifying: \"modifying\",\n optimizing: \"optimizing\"\n};\nvar VolumeStatusName = {\n io_enabled: \"io-enabled\",\n io_performance: \"io-performance\"\n};\nvar VolumeStatusInfoStatus = {\n impaired: \"impaired\",\n insufficient_data: \"insufficient-data\",\n ok: \"ok\"\n};\nvar VpcAttributeName = {\n enableDnsHostnames: \"enableDnsHostnames\",\n enableDnsSupport: \"enableDnsSupport\",\n enableNetworkAddressUsageMetrics: \"enableNetworkAddressUsageMetrics\"\n};\nvar VpcBlockPublicAccessExclusionsAllowed = {\n allowed: \"allowed\",\n not_allowed: \"not-allowed\"\n};\nvar InternetGatewayBlockMode = {\n block_bidirectional: \"block-bidirectional\",\n block_ingress: \"block-ingress\",\n off: \"off\"\n};\nvar ManagedBy = {\n account: \"account\",\n declarative_policy: \"declarative-policy\"\n};\nvar VpcBlockPublicAccessState = {\n default_state: \"default-state\",\n update_complete: \"update-complete\",\n update_in_progress: \"update-in-progress\"\n};\nvar SpotFleetLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"SpotFleetLaunchSpecificationFilterSensitiveLog\");\nvar SpotFleetRequestConfigDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecifications && {\n LaunchSpecifications: obj.LaunchSpecifications.map((item) => SpotFleetLaunchSpecificationFilterSensitiveLog(item))\n }\n}), \"SpotFleetRequestConfigDataFilterSensitiveLog\");\nvar SpotFleetRequestConfigFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotFleetRequestConfig && {\n SpotFleetRequestConfig: SpotFleetRequestConfigDataFilterSensitiveLog(obj.SpotFleetRequestConfig)\n }\n}), \"SpotFleetRequestConfigFilterSensitiveLog\");\nvar DescribeSpotFleetRequestsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"DescribeSpotFleetRequestsResponseFilterSensitiveLog\");\nvar LaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"LaunchSpecificationFilterSensitiveLog\");\nvar SpotInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && {\n LaunchSpecification: LaunchSpecificationFilterSensitiveLog(obj.LaunchSpecification)\n }\n}), \"SpotInstanceRequestFilterSensitiveLog\");\nvar DescribeSpotInstanceRequestsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotInstanceRequests && {\n SpotInstanceRequests: obj.SpotInstanceRequests.map((item) => SpotInstanceRequestFilterSensitiveLog(item))\n }\n}), \"DescribeSpotInstanceRequestsResultFilterSensitiveLog\");\nvar DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProviders && {\n VerifiedAccessTrustProviders: obj.VerifiedAccessTrustProviders.map(\n (item) => VerifiedAccessTrustProviderFilterSensitiveLog(item)\n )\n }\n}), \"DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog\");\nvar DescribeVpnConnectionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnections && {\n VpnConnections: obj.VpnConnections.map((item) => VpnConnectionFilterSensitiveLog(item))\n }\n}), \"DescribeVpnConnectionsResultFilterSensitiveLog\");\nvar DetachVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"DetachVerifiedAccessTrustProviderResultFilterSensitiveLog\");\n\n// src/commands/DescribeSpotFleetRequestsCommand.ts\nvar DescribeSpotFleetRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotFleetRequests\", {}).n(\"EC2Client\", \"DescribeSpotFleetRequestsCommand\").f(void 0, DescribeSpotFleetRequestsResponseFilterSensitiveLog).ser(se_DescribeSpotFleetRequestsCommand).de(de_DescribeSpotFleetRequestsCommand).build() {\n static {\n __name(this, \"DescribeSpotFleetRequestsCommand\");\n }\n};\n\n// src/commands/DescribeSpotInstanceRequestsCommand.ts\n\n\n\nvar DescribeSpotInstanceRequestsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotInstanceRequests\", {}).n(\"EC2Client\", \"DescribeSpotInstanceRequestsCommand\").f(void 0, DescribeSpotInstanceRequestsResultFilterSensitiveLog).ser(se_DescribeSpotInstanceRequestsCommand).de(de_DescribeSpotInstanceRequestsCommand).build() {\n static {\n __name(this, \"DescribeSpotInstanceRequestsCommand\");\n }\n};\n\n// src/commands/DescribeSpotPriceHistoryCommand.ts\n\n\n\nvar DescribeSpotPriceHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSpotPriceHistory\", {}).n(\"EC2Client\", \"DescribeSpotPriceHistoryCommand\").f(void 0, void 0).ser(se_DescribeSpotPriceHistoryCommand).de(de_DescribeSpotPriceHistoryCommand).build() {\n static {\n __name(this, \"DescribeSpotPriceHistoryCommand\");\n }\n};\n\n// src/commands/DescribeStaleSecurityGroupsCommand.ts\n\n\n\nvar DescribeStaleSecurityGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeStaleSecurityGroups\", {}).n(\"EC2Client\", \"DescribeStaleSecurityGroupsCommand\").f(void 0, void 0).ser(se_DescribeStaleSecurityGroupsCommand).de(de_DescribeStaleSecurityGroupsCommand).build() {\n static {\n __name(this, \"DescribeStaleSecurityGroupsCommand\");\n }\n};\n\n// src/commands/DescribeStoreImageTasksCommand.ts\n\n\n\nvar DescribeStoreImageTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeStoreImageTasks\", {}).n(\"EC2Client\", \"DescribeStoreImageTasksCommand\").f(void 0, void 0).ser(se_DescribeStoreImageTasksCommand).de(de_DescribeStoreImageTasksCommand).build() {\n static {\n __name(this, \"DescribeStoreImageTasksCommand\");\n }\n};\n\n// src/commands/DescribeSubnetsCommand.ts\n\n\n\nvar DescribeSubnetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeSubnets\", {}).n(\"EC2Client\", \"DescribeSubnetsCommand\").f(void 0, void 0).ser(se_DescribeSubnetsCommand).de(de_DescribeSubnetsCommand).build() {\n static {\n __name(this, \"DescribeSubnetsCommand\");\n }\n};\n\n// src/commands/DescribeTagsCommand.ts\n\n\n\nvar DescribeTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTags\", {}).n(\"EC2Client\", \"DescribeTagsCommand\").f(void 0, void 0).ser(se_DescribeTagsCommand).de(de_DescribeTagsCommand).build() {\n static {\n __name(this, \"DescribeTagsCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorFilterRulesCommand.ts\n\n\n\nvar DescribeTrafficMirrorFilterRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorFilterRules\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorFilterRulesCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorFilterRulesCommand).de(de_DescribeTrafficMirrorFilterRulesCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorFilterRulesCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorFiltersCommand.ts\n\n\n\nvar DescribeTrafficMirrorFiltersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorFilters\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorFiltersCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorFiltersCommand).de(de_DescribeTrafficMirrorFiltersCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorFiltersCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorSessionsCommand.ts\n\n\n\nvar DescribeTrafficMirrorSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorSessions\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorSessionsCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorSessionsCommand).de(de_DescribeTrafficMirrorSessionsCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorSessionsCommand\");\n }\n};\n\n// src/commands/DescribeTrafficMirrorTargetsCommand.ts\n\n\n\nvar DescribeTrafficMirrorTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrafficMirrorTargets\", {}).n(\"EC2Client\", \"DescribeTrafficMirrorTargetsCommand\").f(void 0, void 0).ser(se_DescribeTrafficMirrorTargetsCommand).de(de_DescribeTrafficMirrorTargetsCommand).build() {\n static {\n __name(this, \"DescribeTrafficMirrorTargetsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayAttachmentsCommand.ts\n\n\n\nvar DescribeTransitGatewayAttachmentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayAttachments\", {}).n(\"EC2Client\", \"DescribeTransitGatewayAttachmentsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayAttachmentsCommand).de(de_DescribeTransitGatewayAttachmentsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayAttachmentsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayConnectPeersCommand.ts\n\n\n\nvar DescribeTransitGatewayConnectPeersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayConnectPeers\", {}).n(\"EC2Client\", \"DescribeTransitGatewayConnectPeersCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayConnectPeersCommand).de(de_DescribeTransitGatewayConnectPeersCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayConnectPeersCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayConnectsCommand.ts\n\n\n\nvar DescribeTransitGatewayConnectsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayConnects\", {}).n(\"EC2Client\", \"DescribeTransitGatewayConnectsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayConnectsCommand).de(de_DescribeTransitGatewayConnectsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayConnectsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayMulticastDomainsCommand.ts\n\n\n\nvar DescribeTransitGatewayMulticastDomainsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayMulticastDomains\", {}).n(\"EC2Client\", \"DescribeTransitGatewayMulticastDomainsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayMulticastDomainsCommand).de(de_DescribeTransitGatewayMulticastDomainsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayMulticastDomainsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayPeeringAttachmentsCommand.ts\n\n\n\nvar DescribeTransitGatewayPeeringAttachmentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayPeeringAttachments\", {}).n(\"EC2Client\", \"DescribeTransitGatewayPeeringAttachmentsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayPeeringAttachmentsCommand).de(de_DescribeTransitGatewayPeeringAttachmentsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayPeeringAttachmentsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayPolicyTablesCommand.ts\n\n\n\nvar DescribeTransitGatewayPolicyTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayPolicyTables\", {}).n(\"EC2Client\", \"DescribeTransitGatewayPolicyTablesCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayPolicyTablesCommand).de(de_DescribeTransitGatewayPolicyTablesCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayPolicyTablesCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayRouteTableAnnouncementsCommand.ts\n\n\n\nvar DescribeTransitGatewayRouteTableAnnouncementsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayRouteTableAnnouncements\", {}).n(\"EC2Client\", \"DescribeTransitGatewayRouteTableAnnouncementsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayRouteTableAnnouncementsCommand).de(de_DescribeTransitGatewayRouteTableAnnouncementsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayRouteTableAnnouncementsCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayRouteTablesCommand.ts\n\n\n\nvar DescribeTransitGatewayRouteTablesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayRouteTables\", {}).n(\"EC2Client\", \"DescribeTransitGatewayRouteTablesCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayRouteTablesCommand).de(de_DescribeTransitGatewayRouteTablesCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayRouteTablesCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewaysCommand.ts\n\n\n\nvar DescribeTransitGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGateways\", {}).n(\"EC2Client\", \"DescribeTransitGatewaysCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewaysCommand).de(de_DescribeTransitGatewaysCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewaysCommand\");\n }\n};\n\n// src/commands/DescribeTransitGatewayVpcAttachmentsCommand.ts\n\n\n\nvar DescribeTransitGatewayVpcAttachmentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTransitGatewayVpcAttachments\", {}).n(\"EC2Client\", \"DescribeTransitGatewayVpcAttachmentsCommand\").f(void 0, void 0).ser(se_DescribeTransitGatewayVpcAttachmentsCommand).de(de_DescribeTransitGatewayVpcAttachmentsCommand).build() {\n static {\n __name(this, \"DescribeTransitGatewayVpcAttachmentsCommand\");\n }\n};\n\n// src/commands/DescribeTrunkInterfaceAssociationsCommand.ts\n\n\n\nvar DescribeTrunkInterfaceAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeTrunkInterfaceAssociations\", {}).n(\"EC2Client\", \"DescribeTrunkInterfaceAssociationsCommand\").f(void 0, void 0).ser(se_DescribeTrunkInterfaceAssociationsCommand).de(de_DescribeTrunkInterfaceAssociationsCommand).build() {\n static {\n __name(this, \"DescribeTrunkInterfaceAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessEndpointsCommand.ts\n\n\n\nvar DescribeVerifiedAccessEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessEndpoints\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessEndpointsCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessEndpointsCommand).de(de_DescribeVerifiedAccessEndpointsCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessGroupsCommand.ts\n\n\n\nvar DescribeVerifiedAccessGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessGroups\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessGroupsCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessGroupsCommand).de(de_DescribeVerifiedAccessGroupsCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessGroupsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessInstanceLoggingConfigurationsCommand.ts\n\n\n\nvar DescribeVerifiedAccessInstanceLoggingConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessInstanceLoggingConfigurations\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand).de(de_DescribeVerifiedAccessInstanceLoggingConfigurationsCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessInstanceLoggingConfigurationsCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessInstancesCommand.ts\n\n\n\nvar DescribeVerifiedAccessInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessInstances\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessInstancesCommand\").f(void 0, void 0).ser(se_DescribeVerifiedAccessInstancesCommand).de(de_DescribeVerifiedAccessInstancesCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessInstancesCommand\");\n }\n};\n\n// src/commands/DescribeVerifiedAccessTrustProvidersCommand.ts\n\n\n\nvar DescribeVerifiedAccessTrustProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVerifiedAccessTrustProviders\", {}).n(\"EC2Client\", \"DescribeVerifiedAccessTrustProvidersCommand\").f(void 0, DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog).ser(se_DescribeVerifiedAccessTrustProvidersCommand).de(de_DescribeVerifiedAccessTrustProvidersCommand).build() {\n static {\n __name(this, \"DescribeVerifiedAccessTrustProvidersCommand\");\n }\n};\n\n// src/commands/DescribeVolumeAttributeCommand.ts\n\n\n\nvar DescribeVolumeAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumeAttribute\", {}).n(\"EC2Client\", \"DescribeVolumeAttributeCommand\").f(void 0, void 0).ser(se_DescribeVolumeAttributeCommand).de(de_DescribeVolumeAttributeCommand).build() {\n static {\n __name(this, \"DescribeVolumeAttributeCommand\");\n }\n};\n\n// src/commands/DescribeVolumesCommand.ts\n\n\n\nvar DescribeVolumesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumes\", {}).n(\"EC2Client\", \"DescribeVolumesCommand\").f(void 0, void 0).ser(se_DescribeVolumesCommand).de(de_DescribeVolumesCommand).build() {\n static {\n __name(this, \"DescribeVolumesCommand\");\n }\n};\n\n// src/commands/DescribeVolumesModificationsCommand.ts\n\n\n\nvar DescribeVolumesModificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumesModifications\", {}).n(\"EC2Client\", \"DescribeVolumesModificationsCommand\").f(void 0, void 0).ser(se_DescribeVolumesModificationsCommand).de(de_DescribeVolumesModificationsCommand).build() {\n static {\n __name(this, \"DescribeVolumesModificationsCommand\");\n }\n};\n\n// src/commands/DescribeVolumeStatusCommand.ts\n\n\n\nvar DescribeVolumeStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVolumeStatus\", {}).n(\"EC2Client\", \"DescribeVolumeStatusCommand\").f(void 0, void 0).ser(se_DescribeVolumeStatusCommand).de(de_DescribeVolumeStatusCommand).build() {\n static {\n __name(this, \"DescribeVolumeStatusCommand\");\n }\n};\n\n// src/commands/DescribeVpcAttributeCommand.ts\n\n\n\nvar DescribeVpcAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcAttribute\", {}).n(\"EC2Client\", \"DescribeVpcAttributeCommand\").f(void 0, void 0).ser(se_DescribeVpcAttributeCommand).de(de_DescribeVpcAttributeCommand).build() {\n static {\n __name(this, \"DescribeVpcAttributeCommand\");\n }\n};\n\n// src/commands/DescribeVpcBlockPublicAccessExclusionsCommand.ts\n\n\n\nvar DescribeVpcBlockPublicAccessExclusionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcBlockPublicAccessExclusions\", {}).n(\"EC2Client\", \"DescribeVpcBlockPublicAccessExclusionsCommand\").f(void 0, void 0).ser(se_DescribeVpcBlockPublicAccessExclusionsCommand).de(de_DescribeVpcBlockPublicAccessExclusionsCommand).build() {\n static {\n __name(this, \"DescribeVpcBlockPublicAccessExclusionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcBlockPublicAccessOptionsCommand.ts\n\n\n\nvar DescribeVpcBlockPublicAccessOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcBlockPublicAccessOptions\", {}).n(\"EC2Client\", \"DescribeVpcBlockPublicAccessOptionsCommand\").f(void 0, void 0).ser(se_DescribeVpcBlockPublicAccessOptionsCommand).de(de_DescribeVpcBlockPublicAccessOptionsCommand).build() {\n static {\n __name(this, \"DescribeVpcBlockPublicAccessOptionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcClassicLinkCommand.ts\n\n\n\nvar DescribeVpcClassicLinkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcClassicLink\", {}).n(\"EC2Client\", \"DescribeVpcClassicLinkCommand\").f(void 0, void 0).ser(se_DescribeVpcClassicLinkCommand).de(de_DescribeVpcClassicLinkCommand).build() {\n static {\n __name(this, \"DescribeVpcClassicLinkCommand\");\n }\n};\n\n// src/commands/DescribeVpcClassicLinkDnsSupportCommand.ts\n\n\n\nvar DescribeVpcClassicLinkDnsSupportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcClassicLinkDnsSupport\", {}).n(\"EC2Client\", \"DescribeVpcClassicLinkDnsSupportCommand\").f(void 0, void 0).ser(se_DescribeVpcClassicLinkDnsSupportCommand).de(de_DescribeVpcClassicLinkDnsSupportCommand).build() {\n static {\n __name(this, \"DescribeVpcClassicLinkDnsSupportCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointAssociationsCommand.ts\n\n\n\nvar DescribeVpcEndpointAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointAssociations\", {}).n(\"EC2Client\", \"DescribeVpcEndpointAssociationsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointAssociationsCommand).de(de_DescribeVpcEndpointAssociationsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointConnectionNotificationsCommand.ts\n\n\n\nvar DescribeVpcEndpointConnectionNotificationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointConnectionNotifications\", {}).n(\"EC2Client\", \"DescribeVpcEndpointConnectionNotificationsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointConnectionNotificationsCommand).de(de_DescribeVpcEndpointConnectionNotificationsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointConnectionNotificationsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointConnectionsCommand.ts\n\n\n\nvar DescribeVpcEndpointConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointConnections\", {}).n(\"EC2Client\", \"DescribeVpcEndpointConnectionsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointConnectionsCommand).de(de_DescribeVpcEndpointConnectionsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointsCommand.ts\n\n\n\nvar DescribeVpcEndpointsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpoints\", {}).n(\"EC2Client\", \"DescribeVpcEndpointsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointsCommand).de(de_DescribeVpcEndpointsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointServiceConfigurationsCommand.ts\n\n\n\nvar DescribeVpcEndpointServiceConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointServiceConfigurations\", {}).n(\"EC2Client\", \"DescribeVpcEndpointServiceConfigurationsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointServiceConfigurationsCommand).de(de_DescribeVpcEndpointServiceConfigurationsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointServiceConfigurationsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointServicePermissionsCommand.ts\n\n\n\nvar DescribeVpcEndpointServicePermissionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointServicePermissions\", {}).n(\"EC2Client\", \"DescribeVpcEndpointServicePermissionsCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointServicePermissionsCommand).de(de_DescribeVpcEndpointServicePermissionsCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointServicePermissionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcEndpointServicesCommand.ts\n\n\n\nvar DescribeVpcEndpointServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcEndpointServices\", {}).n(\"EC2Client\", \"DescribeVpcEndpointServicesCommand\").f(void 0, void 0).ser(se_DescribeVpcEndpointServicesCommand).de(de_DescribeVpcEndpointServicesCommand).build() {\n static {\n __name(this, \"DescribeVpcEndpointServicesCommand\");\n }\n};\n\n// src/commands/DescribeVpcPeeringConnectionsCommand.ts\n\n\n\nvar DescribeVpcPeeringConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcPeeringConnections\", {}).n(\"EC2Client\", \"DescribeVpcPeeringConnectionsCommand\").f(void 0, void 0).ser(se_DescribeVpcPeeringConnectionsCommand).de(de_DescribeVpcPeeringConnectionsCommand).build() {\n static {\n __name(this, \"DescribeVpcPeeringConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeVpcsCommand.ts\n\n\n\nvar DescribeVpcsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpcs\", {}).n(\"EC2Client\", \"DescribeVpcsCommand\").f(void 0, void 0).ser(se_DescribeVpcsCommand).de(de_DescribeVpcsCommand).build() {\n static {\n __name(this, \"DescribeVpcsCommand\");\n }\n};\n\n// src/commands/DescribeVpnConnectionsCommand.ts\n\n\n\nvar DescribeVpnConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpnConnections\", {}).n(\"EC2Client\", \"DescribeVpnConnectionsCommand\").f(void 0, DescribeVpnConnectionsResultFilterSensitiveLog).ser(se_DescribeVpnConnectionsCommand).de(de_DescribeVpnConnectionsCommand).build() {\n static {\n __name(this, \"DescribeVpnConnectionsCommand\");\n }\n};\n\n// src/commands/DescribeVpnGatewaysCommand.ts\n\n\n\nvar DescribeVpnGatewaysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DescribeVpnGateways\", {}).n(\"EC2Client\", \"DescribeVpnGatewaysCommand\").f(void 0, void 0).ser(se_DescribeVpnGatewaysCommand).de(de_DescribeVpnGatewaysCommand).build() {\n static {\n __name(this, \"DescribeVpnGatewaysCommand\");\n }\n};\n\n// src/commands/DetachClassicLinkVpcCommand.ts\n\n\n\nvar DetachClassicLinkVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachClassicLinkVpc\", {}).n(\"EC2Client\", \"DetachClassicLinkVpcCommand\").f(void 0, void 0).ser(se_DetachClassicLinkVpcCommand).de(de_DetachClassicLinkVpcCommand).build() {\n static {\n __name(this, \"DetachClassicLinkVpcCommand\");\n }\n};\n\n// src/commands/DetachInternetGatewayCommand.ts\n\n\n\nvar DetachInternetGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachInternetGateway\", {}).n(\"EC2Client\", \"DetachInternetGatewayCommand\").f(void 0, void 0).ser(se_DetachInternetGatewayCommand).de(de_DetachInternetGatewayCommand).build() {\n static {\n __name(this, \"DetachInternetGatewayCommand\");\n }\n};\n\n// src/commands/DetachNetworkInterfaceCommand.ts\n\n\n\nvar DetachNetworkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachNetworkInterface\", {}).n(\"EC2Client\", \"DetachNetworkInterfaceCommand\").f(void 0, void 0).ser(se_DetachNetworkInterfaceCommand).de(de_DetachNetworkInterfaceCommand).build() {\n static {\n __name(this, \"DetachNetworkInterfaceCommand\");\n }\n};\n\n// src/commands/DetachVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar DetachVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"DetachVerifiedAccessTrustProviderCommand\").f(void 0, DetachVerifiedAccessTrustProviderResultFilterSensitiveLog).ser(se_DetachVerifiedAccessTrustProviderCommand).de(de_DetachVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"DetachVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/DetachVolumeCommand.ts\n\n\n\nvar DetachVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachVolume\", {}).n(\"EC2Client\", \"DetachVolumeCommand\").f(void 0, void 0).ser(se_DetachVolumeCommand).de(de_DetachVolumeCommand).build() {\n static {\n __name(this, \"DetachVolumeCommand\");\n }\n};\n\n// src/commands/DetachVpnGatewayCommand.ts\n\n\n\nvar DetachVpnGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DetachVpnGateway\", {}).n(\"EC2Client\", \"DetachVpnGatewayCommand\").f(void 0, void 0).ser(se_DetachVpnGatewayCommand).de(de_DetachVpnGatewayCommand).build() {\n static {\n __name(this, \"DetachVpnGatewayCommand\");\n }\n};\n\n// src/commands/DisableAddressTransferCommand.ts\n\n\n\nvar DisableAddressTransferCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableAddressTransfer\", {}).n(\"EC2Client\", \"DisableAddressTransferCommand\").f(void 0, void 0).ser(se_DisableAddressTransferCommand).de(de_DisableAddressTransferCommand).build() {\n static {\n __name(this, \"DisableAddressTransferCommand\");\n }\n};\n\n// src/commands/DisableAllowedImagesSettingsCommand.ts\n\n\n\nvar DisableAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableAllowedImagesSettings\", {}).n(\"EC2Client\", \"DisableAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_DisableAllowedImagesSettingsCommand).de(de_DisableAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"DisableAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/DisableAwsNetworkPerformanceMetricSubscriptionCommand.ts\n\n\n\nvar DisableAwsNetworkPerformanceMetricSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableAwsNetworkPerformanceMetricSubscription\", {}).n(\"EC2Client\", \"DisableAwsNetworkPerformanceMetricSubscriptionCommand\").f(void 0, void 0).ser(se_DisableAwsNetworkPerformanceMetricSubscriptionCommand).de(de_DisableAwsNetworkPerformanceMetricSubscriptionCommand).build() {\n static {\n __name(this, \"DisableAwsNetworkPerformanceMetricSubscriptionCommand\");\n }\n};\n\n// src/commands/DisableEbsEncryptionByDefaultCommand.ts\n\n\n\nvar DisableEbsEncryptionByDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableEbsEncryptionByDefault\", {}).n(\"EC2Client\", \"DisableEbsEncryptionByDefaultCommand\").f(void 0, void 0).ser(se_DisableEbsEncryptionByDefaultCommand).de(de_DisableEbsEncryptionByDefaultCommand).build() {\n static {\n __name(this, \"DisableEbsEncryptionByDefaultCommand\");\n }\n};\n\n// src/commands/DisableFastLaunchCommand.ts\n\n\n\nvar DisableFastLaunchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableFastLaunch\", {}).n(\"EC2Client\", \"DisableFastLaunchCommand\").f(void 0, void 0).ser(se_DisableFastLaunchCommand).de(de_DisableFastLaunchCommand).build() {\n static {\n __name(this, \"DisableFastLaunchCommand\");\n }\n};\n\n// src/commands/DisableFastSnapshotRestoresCommand.ts\n\n\n\nvar DisableFastSnapshotRestoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableFastSnapshotRestores\", {}).n(\"EC2Client\", \"DisableFastSnapshotRestoresCommand\").f(void 0, void 0).ser(se_DisableFastSnapshotRestoresCommand).de(de_DisableFastSnapshotRestoresCommand).build() {\n static {\n __name(this, \"DisableFastSnapshotRestoresCommand\");\n }\n};\n\n// src/commands/DisableImageBlockPublicAccessCommand.ts\n\n\n\nvar DisableImageBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImageBlockPublicAccess\", {}).n(\"EC2Client\", \"DisableImageBlockPublicAccessCommand\").f(void 0, void 0).ser(se_DisableImageBlockPublicAccessCommand).de(de_DisableImageBlockPublicAccessCommand).build() {\n static {\n __name(this, \"DisableImageBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/DisableImageCommand.ts\n\n\n\nvar DisableImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImage\", {}).n(\"EC2Client\", \"DisableImageCommand\").f(void 0, void 0).ser(se_DisableImageCommand).de(de_DisableImageCommand).build() {\n static {\n __name(this, \"DisableImageCommand\");\n }\n};\n\n// src/commands/DisableImageDeprecationCommand.ts\n\n\n\nvar DisableImageDeprecationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImageDeprecation\", {}).n(\"EC2Client\", \"DisableImageDeprecationCommand\").f(void 0, void 0).ser(se_DisableImageDeprecationCommand).de(de_DisableImageDeprecationCommand).build() {\n static {\n __name(this, \"DisableImageDeprecationCommand\");\n }\n};\n\n// src/commands/DisableImageDeregistrationProtectionCommand.ts\n\n\n\nvar DisableImageDeregistrationProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableImageDeregistrationProtection\", {}).n(\"EC2Client\", \"DisableImageDeregistrationProtectionCommand\").f(void 0, void 0).ser(se_DisableImageDeregistrationProtectionCommand).de(de_DisableImageDeregistrationProtectionCommand).build() {\n static {\n __name(this, \"DisableImageDeregistrationProtectionCommand\");\n }\n};\n\n// src/commands/DisableIpamOrganizationAdminAccountCommand.ts\n\n\n\nvar DisableIpamOrganizationAdminAccountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableIpamOrganizationAdminAccount\", {}).n(\"EC2Client\", \"DisableIpamOrganizationAdminAccountCommand\").f(void 0, void 0).ser(se_DisableIpamOrganizationAdminAccountCommand).de(de_DisableIpamOrganizationAdminAccountCommand).build() {\n static {\n __name(this, \"DisableIpamOrganizationAdminAccountCommand\");\n }\n};\n\n// src/commands/DisableRouteServerPropagationCommand.ts\n\n\n\nvar DisableRouteServerPropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableRouteServerPropagation\", {}).n(\"EC2Client\", \"DisableRouteServerPropagationCommand\").f(void 0, void 0).ser(se_DisableRouteServerPropagationCommand).de(de_DisableRouteServerPropagationCommand).build() {\n static {\n __name(this, \"DisableRouteServerPropagationCommand\");\n }\n};\n\n// src/commands/DisableSerialConsoleAccessCommand.ts\n\n\n\nvar DisableSerialConsoleAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableSerialConsoleAccess\", {}).n(\"EC2Client\", \"DisableSerialConsoleAccessCommand\").f(void 0, void 0).ser(se_DisableSerialConsoleAccessCommand).de(de_DisableSerialConsoleAccessCommand).build() {\n static {\n __name(this, \"DisableSerialConsoleAccessCommand\");\n }\n};\n\n// src/commands/DisableSnapshotBlockPublicAccessCommand.ts\n\n\n\nvar DisableSnapshotBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableSnapshotBlockPublicAccess\", {}).n(\"EC2Client\", \"DisableSnapshotBlockPublicAccessCommand\").f(void 0, void 0).ser(se_DisableSnapshotBlockPublicAccessCommand).de(de_DisableSnapshotBlockPublicAccessCommand).build() {\n static {\n __name(this, \"DisableSnapshotBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/DisableTransitGatewayRouteTablePropagationCommand.ts\n\n\n\nvar DisableTransitGatewayRouteTablePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableTransitGatewayRouteTablePropagation\", {}).n(\"EC2Client\", \"DisableTransitGatewayRouteTablePropagationCommand\").f(void 0, void 0).ser(se_DisableTransitGatewayRouteTablePropagationCommand).de(de_DisableTransitGatewayRouteTablePropagationCommand).build() {\n static {\n __name(this, \"DisableTransitGatewayRouteTablePropagationCommand\");\n }\n};\n\n// src/commands/DisableVgwRoutePropagationCommand.ts\n\n\n\nvar DisableVgwRoutePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableVgwRoutePropagation\", {}).n(\"EC2Client\", \"DisableVgwRoutePropagationCommand\").f(void 0, void 0).ser(se_DisableVgwRoutePropagationCommand).de(de_DisableVgwRoutePropagationCommand).build() {\n static {\n __name(this, \"DisableVgwRoutePropagationCommand\");\n }\n};\n\n// src/commands/DisableVpcClassicLinkCommand.ts\n\n\n\nvar DisableVpcClassicLinkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableVpcClassicLink\", {}).n(\"EC2Client\", \"DisableVpcClassicLinkCommand\").f(void 0, void 0).ser(se_DisableVpcClassicLinkCommand).de(de_DisableVpcClassicLinkCommand).build() {\n static {\n __name(this, \"DisableVpcClassicLinkCommand\");\n }\n};\n\n// src/commands/DisableVpcClassicLinkDnsSupportCommand.ts\n\n\n\nvar DisableVpcClassicLinkDnsSupportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisableVpcClassicLinkDnsSupport\", {}).n(\"EC2Client\", \"DisableVpcClassicLinkDnsSupportCommand\").f(void 0, void 0).ser(se_DisableVpcClassicLinkDnsSupportCommand).de(de_DisableVpcClassicLinkDnsSupportCommand).build() {\n static {\n __name(this, \"DisableVpcClassicLinkDnsSupportCommand\");\n }\n};\n\n// src/commands/DisassociateAddressCommand.ts\n\n\n\nvar DisassociateAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateAddress\", {}).n(\"EC2Client\", \"DisassociateAddressCommand\").f(void 0, void 0).ser(se_DisassociateAddressCommand).de(de_DisassociateAddressCommand).build() {\n static {\n __name(this, \"DisassociateAddressCommand\");\n }\n};\n\n// src/commands/DisassociateCapacityReservationBillingOwnerCommand.ts\n\n\n\nvar DisassociateCapacityReservationBillingOwnerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateCapacityReservationBillingOwner\", {}).n(\"EC2Client\", \"DisassociateCapacityReservationBillingOwnerCommand\").f(void 0, void 0).ser(se_DisassociateCapacityReservationBillingOwnerCommand).de(de_DisassociateCapacityReservationBillingOwnerCommand).build() {\n static {\n __name(this, \"DisassociateCapacityReservationBillingOwnerCommand\");\n }\n};\n\n// src/commands/DisassociateClientVpnTargetNetworkCommand.ts\n\n\n\nvar DisassociateClientVpnTargetNetworkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateClientVpnTargetNetwork\", {}).n(\"EC2Client\", \"DisassociateClientVpnTargetNetworkCommand\").f(void 0, void 0).ser(se_DisassociateClientVpnTargetNetworkCommand).de(de_DisassociateClientVpnTargetNetworkCommand).build() {\n static {\n __name(this, \"DisassociateClientVpnTargetNetworkCommand\");\n }\n};\n\n// src/commands/DisassociateEnclaveCertificateIamRoleCommand.ts\n\n\n\nvar DisassociateEnclaveCertificateIamRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateEnclaveCertificateIamRole\", {}).n(\"EC2Client\", \"DisassociateEnclaveCertificateIamRoleCommand\").f(void 0, void 0).ser(se_DisassociateEnclaveCertificateIamRoleCommand).de(de_DisassociateEnclaveCertificateIamRoleCommand).build() {\n static {\n __name(this, \"DisassociateEnclaveCertificateIamRoleCommand\");\n }\n};\n\n// src/commands/DisassociateIamInstanceProfileCommand.ts\n\n\n\nvar DisassociateIamInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateIamInstanceProfile\", {}).n(\"EC2Client\", \"DisassociateIamInstanceProfileCommand\").f(void 0, void 0).ser(se_DisassociateIamInstanceProfileCommand).de(de_DisassociateIamInstanceProfileCommand).build() {\n static {\n __name(this, \"DisassociateIamInstanceProfileCommand\");\n }\n};\n\n// src/commands/DisassociateInstanceEventWindowCommand.ts\n\n\n\nvar DisassociateInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateInstanceEventWindow\", {}).n(\"EC2Client\", \"DisassociateInstanceEventWindowCommand\").f(void 0, void 0).ser(se_DisassociateInstanceEventWindowCommand).de(de_DisassociateInstanceEventWindowCommand).build() {\n static {\n __name(this, \"DisassociateInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/DisassociateIpamByoasnCommand.ts\n\n\n\nvar DisassociateIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateIpamByoasn\", {}).n(\"EC2Client\", \"DisassociateIpamByoasnCommand\").f(void 0, void 0).ser(se_DisassociateIpamByoasnCommand).de(de_DisassociateIpamByoasnCommand).build() {\n static {\n __name(this, \"DisassociateIpamByoasnCommand\");\n }\n};\n\n// src/commands/DisassociateIpamResourceDiscoveryCommand.ts\n\n\n\nvar DisassociateIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateIpamResourceDiscovery\", {}).n(\"EC2Client\", \"DisassociateIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_DisassociateIpamResourceDiscoveryCommand).de(de_DisassociateIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"DisassociateIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/DisassociateNatGatewayAddressCommand.ts\n\n\n\nvar DisassociateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateNatGatewayAddress\", {}).n(\"EC2Client\", \"DisassociateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_DisassociateNatGatewayAddressCommand).de(de_DisassociateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"DisassociateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/DisassociateRouteServerCommand.ts\n\n\n\nvar DisassociateRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateRouteServer\", {}).n(\"EC2Client\", \"DisassociateRouteServerCommand\").f(void 0, void 0).ser(se_DisassociateRouteServerCommand).de(de_DisassociateRouteServerCommand).build() {\n static {\n __name(this, \"DisassociateRouteServerCommand\");\n }\n};\n\n// src/commands/DisassociateRouteTableCommand.ts\n\n\n\nvar DisassociateRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateRouteTable\", {}).n(\"EC2Client\", \"DisassociateRouteTableCommand\").f(void 0, void 0).ser(se_DisassociateRouteTableCommand).de(de_DisassociateRouteTableCommand).build() {\n static {\n __name(this, \"DisassociateRouteTableCommand\");\n }\n};\n\n// src/commands/DisassociateSecurityGroupVpcCommand.ts\n\n\n\nvar DisassociateSecurityGroupVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateSecurityGroupVpc\", {}).n(\"EC2Client\", \"DisassociateSecurityGroupVpcCommand\").f(void 0, void 0).ser(se_DisassociateSecurityGroupVpcCommand).de(de_DisassociateSecurityGroupVpcCommand).build() {\n static {\n __name(this, \"DisassociateSecurityGroupVpcCommand\");\n }\n};\n\n// src/commands/DisassociateSubnetCidrBlockCommand.ts\n\n\n\nvar DisassociateSubnetCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateSubnetCidrBlock\", {}).n(\"EC2Client\", \"DisassociateSubnetCidrBlockCommand\").f(void 0, void 0).ser(se_DisassociateSubnetCidrBlockCommand).de(de_DisassociateSubnetCidrBlockCommand).build() {\n static {\n __name(this, \"DisassociateSubnetCidrBlockCommand\");\n }\n};\n\n// src/commands/DisassociateTransitGatewayMulticastDomainCommand.ts\n\n\n\nvar DisassociateTransitGatewayMulticastDomainCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTransitGatewayMulticastDomain\", {}).n(\"EC2Client\", \"DisassociateTransitGatewayMulticastDomainCommand\").f(void 0, void 0).ser(se_DisassociateTransitGatewayMulticastDomainCommand).de(de_DisassociateTransitGatewayMulticastDomainCommand).build() {\n static {\n __name(this, \"DisassociateTransitGatewayMulticastDomainCommand\");\n }\n};\n\n// src/commands/DisassociateTransitGatewayPolicyTableCommand.ts\n\n\n\nvar DisassociateTransitGatewayPolicyTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTransitGatewayPolicyTable\", {}).n(\"EC2Client\", \"DisassociateTransitGatewayPolicyTableCommand\").f(void 0, void 0).ser(se_DisassociateTransitGatewayPolicyTableCommand).de(de_DisassociateTransitGatewayPolicyTableCommand).build() {\n static {\n __name(this, \"DisassociateTransitGatewayPolicyTableCommand\");\n }\n};\n\n// src/commands/DisassociateTransitGatewayRouteTableCommand.ts\n\n\n\nvar DisassociateTransitGatewayRouteTableCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTransitGatewayRouteTable\", {}).n(\"EC2Client\", \"DisassociateTransitGatewayRouteTableCommand\").f(void 0, void 0).ser(se_DisassociateTransitGatewayRouteTableCommand).de(de_DisassociateTransitGatewayRouteTableCommand).build() {\n static {\n __name(this, \"DisassociateTransitGatewayRouteTableCommand\");\n }\n};\n\n// src/commands/DisassociateTrunkInterfaceCommand.ts\n\n\n\nvar DisassociateTrunkInterfaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateTrunkInterface\", {}).n(\"EC2Client\", \"DisassociateTrunkInterfaceCommand\").f(void 0, void 0).ser(se_DisassociateTrunkInterfaceCommand).de(de_DisassociateTrunkInterfaceCommand).build() {\n static {\n __name(this, \"DisassociateTrunkInterfaceCommand\");\n }\n};\n\n// src/commands/DisassociateVpcCidrBlockCommand.ts\n\n\n\nvar DisassociateVpcCidrBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"DisassociateVpcCidrBlock\", {}).n(\"EC2Client\", \"DisassociateVpcCidrBlockCommand\").f(void 0, void 0).ser(se_DisassociateVpcCidrBlockCommand).de(de_DisassociateVpcCidrBlockCommand).build() {\n static {\n __name(this, \"DisassociateVpcCidrBlockCommand\");\n }\n};\n\n// src/commands/EnableAddressTransferCommand.ts\n\n\n\nvar EnableAddressTransferCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableAddressTransfer\", {}).n(\"EC2Client\", \"EnableAddressTransferCommand\").f(void 0, void 0).ser(se_EnableAddressTransferCommand).de(de_EnableAddressTransferCommand).build() {\n static {\n __name(this, \"EnableAddressTransferCommand\");\n }\n};\n\n// src/commands/EnableAllowedImagesSettingsCommand.ts\n\n\n\nvar EnableAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableAllowedImagesSettings\", {}).n(\"EC2Client\", \"EnableAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_EnableAllowedImagesSettingsCommand).de(de_EnableAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"EnableAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/EnableAwsNetworkPerformanceMetricSubscriptionCommand.ts\n\n\n\nvar EnableAwsNetworkPerformanceMetricSubscriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableAwsNetworkPerformanceMetricSubscription\", {}).n(\"EC2Client\", \"EnableAwsNetworkPerformanceMetricSubscriptionCommand\").f(void 0, void 0).ser(se_EnableAwsNetworkPerformanceMetricSubscriptionCommand).de(de_EnableAwsNetworkPerformanceMetricSubscriptionCommand).build() {\n static {\n __name(this, \"EnableAwsNetworkPerformanceMetricSubscriptionCommand\");\n }\n};\n\n// src/commands/EnableEbsEncryptionByDefaultCommand.ts\n\n\n\nvar EnableEbsEncryptionByDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableEbsEncryptionByDefault\", {}).n(\"EC2Client\", \"EnableEbsEncryptionByDefaultCommand\").f(void 0, void 0).ser(se_EnableEbsEncryptionByDefaultCommand).de(de_EnableEbsEncryptionByDefaultCommand).build() {\n static {\n __name(this, \"EnableEbsEncryptionByDefaultCommand\");\n }\n};\n\n// src/commands/EnableFastLaunchCommand.ts\n\n\n\nvar EnableFastLaunchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableFastLaunch\", {}).n(\"EC2Client\", \"EnableFastLaunchCommand\").f(void 0, void 0).ser(se_EnableFastLaunchCommand).de(de_EnableFastLaunchCommand).build() {\n static {\n __name(this, \"EnableFastLaunchCommand\");\n }\n};\n\n// src/commands/EnableFastSnapshotRestoresCommand.ts\n\n\n\nvar EnableFastSnapshotRestoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableFastSnapshotRestores\", {}).n(\"EC2Client\", \"EnableFastSnapshotRestoresCommand\").f(void 0, void 0).ser(se_EnableFastSnapshotRestoresCommand).de(de_EnableFastSnapshotRestoresCommand).build() {\n static {\n __name(this, \"EnableFastSnapshotRestoresCommand\");\n }\n};\n\n// src/commands/EnableImageBlockPublicAccessCommand.ts\n\n\n\nvar EnableImageBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImageBlockPublicAccess\", {}).n(\"EC2Client\", \"EnableImageBlockPublicAccessCommand\").f(void 0, void 0).ser(se_EnableImageBlockPublicAccessCommand).de(de_EnableImageBlockPublicAccessCommand).build() {\n static {\n __name(this, \"EnableImageBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/EnableImageCommand.ts\n\n\n\nvar EnableImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImage\", {}).n(\"EC2Client\", \"EnableImageCommand\").f(void 0, void 0).ser(se_EnableImageCommand).de(de_EnableImageCommand).build() {\n static {\n __name(this, \"EnableImageCommand\");\n }\n};\n\n// src/commands/EnableImageDeprecationCommand.ts\n\n\n\nvar EnableImageDeprecationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImageDeprecation\", {}).n(\"EC2Client\", \"EnableImageDeprecationCommand\").f(void 0, void 0).ser(se_EnableImageDeprecationCommand).de(de_EnableImageDeprecationCommand).build() {\n static {\n __name(this, \"EnableImageDeprecationCommand\");\n }\n};\n\n// src/commands/EnableImageDeregistrationProtectionCommand.ts\n\n\n\nvar EnableImageDeregistrationProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableImageDeregistrationProtection\", {}).n(\"EC2Client\", \"EnableImageDeregistrationProtectionCommand\").f(void 0, void 0).ser(se_EnableImageDeregistrationProtectionCommand).de(de_EnableImageDeregistrationProtectionCommand).build() {\n static {\n __name(this, \"EnableImageDeregistrationProtectionCommand\");\n }\n};\n\n// src/commands/EnableIpamOrganizationAdminAccountCommand.ts\n\n\n\nvar EnableIpamOrganizationAdminAccountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableIpamOrganizationAdminAccount\", {}).n(\"EC2Client\", \"EnableIpamOrganizationAdminAccountCommand\").f(void 0, void 0).ser(se_EnableIpamOrganizationAdminAccountCommand).de(de_EnableIpamOrganizationAdminAccountCommand).build() {\n static {\n __name(this, \"EnableIpamOrganizationAdminAccountCommand\");\n }\n};\n\n// src/commands/EnableReachabilityAnalyzerOrganizationSharingCommand.ts\n\n\n\nvar EnableReachabilityAnalyzerOrganizationSharingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableReachabilityAnalyzerOrganizationSharing\", {}).n(\"EC2Client\", \"EnableReachabilityAnalyzerOrganizationSharingCommand\").f(void 0, void 0).ser(se_EnableReachabilityAnalyzerOrganizationSharingCommand).de(de_EnableReachabilityAnalyzerOrganizationSharingCommand).build() {\n static {\n __name(this, \"EnableReachabilityAnalyzerOrganizationSharingCommand\");\n }\n};\n\n// src/commands/EnableRouteServerPropagationCommand.ts\n\n\n\nvar EnableRouteServerPropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableRouteServerPropagation\", {}).n(\"EC2Client\", \"EnableRouteServerPropagationCommand\").f(void 0, void 0).ser(se_EnableRouteServerPropagationCommand).de(de_EnableRouteServerPropagationCommand).build() {\n static {\n __name(this, \"EnableRouteServerPropagationCommand\");\n }\n};\n\n// src/commands/EnableSerialConsoleAccessCommand.ts\n\n\n\nvar EnableSerialConsoleAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableSerialConsoleAccess\", {}).n(\"EC2Client\", \"EnableSerialConsoleAccessCommand\").f(void 0, void 0).ser(se_EnableSerialConsoleAccessCommand).de(de_EnableSerialConsoleAccessCommand).build() {\n static {\n __name(this, \"EnableSerialConsoleAccessCommand\");\n }\n};\n\n// src/commands/EnableSnapshotBlockPublicAccessCommand.ts\n\n\n\nvar EnableSnapshotBlockPublicAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableSnapshotBlockPublicAccess\", {}).n(\"EC2Client\", \"EnableSnapshotBlockPublicAccessCommand\").f(void 0, void 0).ser(se_EnableSnapshotBlockPublicAccessCommand).de(de_EnableSnapshotBlockPublicAccessCommand).build() {\n static {\n __name(this, \"EnableSnapshotBlockPublicAccessCommand\");\n }\n};\n\n// src/commands/EnableTransitGatewayRouteTablePropagationCommand.ts\n\n\n\nvar EnableTransitGatewayRouteTablePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableTransitGatewayRouteTablePropagation\", {}).n(\"EC2Client\", \"EnableTransitGatewayRouteTablePropagationCommand\").f(void 0, void 0).ser(se_EnableTransitGatewayRouteTablePropagationCommand).de(de_EnableTransitGatewayRouteTablePropagationCommand).build() {\n static {\n __name(this, \"EnableTransitGatewayRouteTablePropagationCommand\");\n }\n};\n\n// src/commands/EnableVgwRoutePropagationCommand.ts\n\n\n\nvar EnableVgwRoutePropagationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVgwRoutePropagation\", {}).n(\"EC2Client\", \"EnableVgwRoutePropagationCommand\").f(void 0, void 0).ser(se_EnableVgwRoutePropagationCommand).de(de_EnableVgwRoutePropagationCommand).build() {\n static {\n __name(this, \"EnableVgwRoutePropagationCommand\");\n }\n};\n\n// src/commands/EnableVolumeIOCommand.ts\n\n\n\nvar EnableVolumeIOCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVolumeIO\", {}).n(\"EC2Client\", \"EnableVolumeIOCommand\").f(void 0, void 0).ser(se_EnableVolumeIOCommand).de(de_EnableVolumeIOCommand).build() {\n static {\n __name(this, \"EnableVolumeIOCommand\");\n }\n};\n\n// src/commands/EnableVpcClassicLinkCommand.ts\n\n\n\nvar EnableVpcClassicLinkCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVpcClassicLink\", {}).n(\"EC2Client\", \"EnableVpcClassicLinkCommand\").f(void 0, void 0).ser(se_EnableVpcClassicLinkCommand).de(de_EnableVpcClassicLinkCommand).build() {\n static {\n __name(this, \"EnableVpcClassicLinkCommand\");\n }\n};\n\n// src/commands/EnableVpcClassicLinkDnsSupportCommand.ts\n\n\n\nvar EnableVpcClassicLinkDnsSupportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"EnableVpcClassicLinkDnsSupport\", {}).n(\"EC2Client\", \"EnableVpcClassicLinkDnsSupportCommand\").f(void 0, void 0).ser(se_EnableVpcClassicLinkDnsSupportCommand).de(de_EnableVpcClassicLinkDnsSupportCommand).build() {\n static {\n __name(this, \"EnableVpcClassicLinkDnsSupportCommand\");\n }\n};\n\n// src/commands/ExportClientVpnClientCertificateRevocationListCommand.ts\n\n\n\nvar ExportClientVpnClientCertificateRevocationListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportClientVpnClientCertificateRevocationList\", {}).n(\"EC2Client\", \"ExportClientVpnClientCertificateRevocationListCommand\").f(void 0, void 0).ser(se_ExportClientVpnClientCertificateRevocationListCommand).de(de_ExportClientVpnClientCertificateRevocationListCommand).build() {\n static {\n __name(this, \"ExportClientVpnClientCertificateRevocationListCommand\");\n }\n};\n\n// src/commands/ExportClientVpnClientConfigurationCommand.ts\n\n\n\nvar ExportClientVpnClientConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportClientVpnClientConfiguration\", {}).n(\"EC2Client\", \"ExportClientVpnClientConfigurationCommand\").f(void 0, void 0).ser(se_ExportClientVpnClientConfigurationCommand).de(de_ExportClientVpnClientConfigurationCommand).build() {\n static {\n __name(this, \"ExportClientVpnClientConfigurationCommand\");\n }\n};\n\n// src/commands/ExportImageCommand.ts\n\n\n\nvar ExportImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportImage\", {}).n(\"EC2Client\", \"ExportImageCommand\").f(void 0, void 0).ser(se_ExportImageCommand).de(de_ExportImageCommand).build() {\n static {\n __name(this, \"ExportImageCommand\");\n }\n};\n\n// src/commands/ExportTransitGatewayRoutesCommand.ts\n\n\n\nvar ExportTransitGatewayRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportTransitGatewayRoutes\", {}).n(\"EC2Client\", \"ExportTransitGatewayRoutesCommand\").f(void 0, void 0).ser(se_ExportTransitGatewayRoutesCommand).de(de_ExportTransitGatewayRoutesCommand).build() {\n static {\n __name(this, \"ExportTransitGatewayRoutesCommand\");\n }\n};\n\n// src/commands/ExportVerifiedAccessInstanceClientConfigurationCommand.ts\n\n\n\n\n// src/models/models_6.ts\n\nvar ImageBlockPublicAccessDisabledState = {\n unblocked: \"unblocked\"\n};\nvar RouteServerPropagationState = {\n AVAILABLE: \"available\",\n DELETING: \"deleting\",\n PENDING: \"pending\"\n};\nvar SnapshotBlockPublicAccessState = {\n block_all_sharing: \"block-all-sharing\",\n block_new_sharing: \"block-new-sharing\",\n unblocked: \"unblocked\"\n};\nvar TransitGatewayPropagationState = {\n disabled: \"disabled\",\n disabling: \"disabling\",\n enabled: \"enabled\",\n enabling: \"enabling\"\n};\nvar ImageBlockPublicAccessEnabledState = {\n block_new_sharing: \"block-new-sharing\"\n};\nvar ClientCertificateRevocationListStatusCode = {\n active: \"active\",\n pending: \"pending\"\n};\nvar UnlimitedSupportedInstanceFamily = {\n t2: \"t2\",\n t3: \"t3\",\n t3a: \"t3a\",\n t4g: \"t4g\"\n};\nvar PartitionLoadFrequency = {\n DAILY: \"daily\",\n MONTHLY: \"monthly\",\n NONE: \"none\",\n WEEKLY: \"weekly\"\n};\nvar EkPubKeyFormat = {\n der: \"der\",\n tpmt: \"tpmt\"\n};\nvar EkPubKeyType = {\n ECC_SEC_P384: \"ecc-sec-p384\",\n RSA_2048: \"rsa-2048\"\n};\nvar IpamComplianceStatus = {\n compliant: \"compliant\",\n ignored: \"ignored\",\n noncompliant: \"noncompliant\",\n unmanaged: \"unmanaged\"\n};\nvar IpamOverlapStatus = {\n ignored: \"ignored\",\n nonoverlapping: \"nonoverlapping\",\n overlapping: \"overlapping\"\n};\nvar IpamAddressHistoryResourceType = {\n eip: \"eip\",\n instance: \"instance\",\n network_interface: \"network-interface\",\n subnet: \"subnet\",\n vpc: \"vpc\"\n};\nvar IpamDiscoveryFailureCode = {\n assume_role_failure: \"assume-role-failure\",\n throttling_failure: \"throttling-failure\",\n unauthorized_failure: \"unauthorized-failure\"\n};\nvar IpamPublicAddressType = {\n AMAZON_OWNED_CONTIG: \"amazon-owned-contig\",\n AMAZON_OWNED_EIP: \"amazon-owned-eip\",\n BYOIP: \"byoip\",\n EC2_PUBLIC_IP: \"ec2-public-ip\",\n SERVICE_MANAGED_BYOIP: \"service-managed-byoip\",\n SERVICE_MANAGED_IP: \"service-managed-ip\"\n};\nvar IpamPublicAddressAssociationStatus = {\n ASSOCIATED: \"associated\",\n DISASSOCIATED: \"disassociated\"\n};\nvar IpamPublicAddressAwsService = {\n AGA: \"global-accelerator\",\n DMS: \"database-migration-service\",\n EC2_LB: \"load-balancer\",\n ECS: \"elastic-container-service\",\n NAT_GATEWAY: \"nat-gateway\",\n OTHER: \"other\",\n RDS: \"relational-database-service\",\n REDSHIFT: \"redshift\",\n S2S_VPN: \"site-to-site-vpn\"\n};\nvar IpamResourceCidrIpSource = {\n amazon: \"amazon\",\n byoip: \"byoip\",\n none: \"none\"\n};\nvar IpamNetworkInterfaceAttachmentStatus = {\n available: \"available\",\n in_use: \"in-use\"\n};\nvar IpamResourceType = {\n eip: \"eip\",\n eni: \"eni\",\n ipv6_pool: \"ipv6-pool\",\n public_ipv4_pool: \"public-ipv4-pool\",\n subnet: \"subnet\",\n vpc: \"vpc\"\n};\nvar IpamManagementState = {\n ignored: \"ignored\",\n managed: \"managed\",\n unmanaged: \"unmanaged\"\n};\nvar RouteServerRouteInstallationStatus = {\n INSTALLED: \"installed\",\n REJECTED: \"rejected\"\n};\nvar RouteServerRouteStatus = {\n IN_FIB: \"in-fib\",\n IN_RIB: \"in-rib\"\n};\nvar VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog\");\nvar ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserTrustProvider && {\n UserTrustProvider: VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog(\n obj.UserTrustProvider\n )\n }\n}), \"ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog\");\nvar GetInstanceTpmEkPubResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyValue && { KeyValue: import_smithy_client.SENSITIVE_STRING }\n}), \"GetInstanceTpmEkPubResultFilterSensitiveLog\");\nvar GetLaunchTemplateDataResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchTemplateData && {\n LaunchTemplateData: ResponseLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData)\n }\n}), \"GetLaunchTemplateDataResultFilterSensitiveLog\");\nvar GetPasswordDataResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PasswordData && { PasswordData: import_smithy_client.SENSITIVE_STRING }\n}), \"GetPasswordDataResultFilterSensitiveLog\");\n\n// src/commands/ExportVerifiedAccessInstanceClientConfigurationCommand.ts\nvar ExportVerifiedAccessInstanceClientConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ExportVerifiedAccessInstanceClientConfiguration\", {}).n(\"EC2Client\", \"ExportVerifiedAccessInstanceClientConfigurationCommand\").f(void 0, ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog).ser(se_ExportVerifiedAccessInstanceClientConfigurationCommand).de(de_ExportVerifiedAccessInstanceClientConfigurationCommand).build() {\n static {\n __name(this, \"ExportVerifiedAccessInstanceClientConfigurationCommand\");\n }\n};\n\n// src/commands/GetAllowedImagesSettingsCommand.ts\n\n\n\nvar GetAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAllowedImagesSettings\", {}).n(\"EC2Client\", \"GetAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_GetAllowedImagesSettingsCommand).de(de_GetAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"GetAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/GetAssociatedEnclaveCertificateIamRolesCommand.ts\n\n\n\nvar GetAssociatedEnclaveCertificateIamRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAssociatedEnclaveCertificateIamRoles\", {}).n(\"EC2Client\", \"GetAssociatedEnclaveCertificateIamRolesCommand\").f(void 0, void 0).ser(se_GetAssociatedEnclaveCertificateIamRolesCommand).de(de_GetAssociatedEnclaveCertificateIamRolesCommand).build() {\n static {\n __name(this, \"GetAssociatedEnclaveCertificateIamRolesCommand\");\n }\n};\n\n// src/commands/GetAssociatedIpv6PoolCidrsCommand.ts\n\n\n\nvar GetAssociatedIpv6PoolCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAssociatedIpv6PoolCidrs\", {}).n(\"EC2Client\", \"GetAssociatedIpv6PoolCidrsCommand\").f(void 0, void 0).ser(se_GetAssociatedIpv6PoolCidrsCommand).de(de_GetAssociatedIpv6PoolCidrsCommand).build() {\n static {\n __name(this, \"GetAssociatedIpv6PoolCidrsCommand\");\n }\n};\n\n// src/commands/GetAwsNetworkPerformanceDataCommand.ts\n\n\n\nvar GetAwsNetworkPerformanceDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetAwsNetworkPerformanceData\", {}).n(\"EC2Client\", \"GetAwsNetworkPerformanceDataCommand\").f(void 0, void 0).ser(se_GetAwsNetworkPerformanceDataCommand).de(de_GetAwsNetworkPerformanceDataCommand).build() {\n static {\n __name(this, \"GetAwsNetworkPerformanceDataCommand\");\n }\n};\n\n// src/commands/GetCapacityReservationUsageCommand.ts\n\n\n\nvar GetCapacityReservationUsageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetCapacityReservationUsage\", {}).n(\"EC2Client\", \"GetCapacityReservationUsageCommand\").f(void 0, void 0).ser(se_GetCapacityReservationUsageCommand).de(de_GetCapacityReservationUsageCommand).build() {\n static {\n __name(this, \"GetCapacityReservationUsageCommand\");\n }\n};\n\n// src/commands/GetCoipPoolUsageCommand.ts\n\n\n\nvar GetCoipPoolUsageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetCoipPoolUsage\", {}).n(\"EC2Client\", \"GetCoipPoolUsageCommand\").f(void 0, void 0).ser(se_GetCoipPoolUsageCommand).de(de_GetCoipPoolUsageCommand).build() {\n static {\n __name(this, \"GetCoipPoolUsageCommand\");\n }\n};\n\n// src/commands/GetConsoleOutputCommand.ts\n\n\n\nvar GetConsoleOutputCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetConsoleOutput\", {}).n(\"EC2Client\", \"GetConsoleOutputCommand\").f(void 0, void 0).ser(se_GetConsoleOutputCommand).de(de_GetConsoleOutputCommand).build() {\n static {\n __name(this, \"GetConsoleOutputCommand\");\n }\n};\n\n// src/commands/GetConsoleScreenshotCommand.ts\n\n\n\nvar GetConsoleScreenshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetConsoleScreenshot\", {}).n(\"EC2Client\", \"GetConsoleScreenshotCommand\").f(void 0, void 0).ser(se_GetConsoleScreenshotCommand).de(de_GetConsoleScreenshotCommand).build() {\n static {\n __name(this, \"GetConsoleScreenshotCommand\");\n }\n};\n\n// src/commands/GetDeclarativePoliciesReportSummaryCommand.ts\n\n\n\nvar GetDeclarativePoliciesReportSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetDeclarativePoliciesReportSummary\", {}).n(\"EC2Client\", \"GetDeclarativePoliciesReportSummaryCommand\").f(void 0, void 0).ser(se_GetDeclarativePoliciesReportSummaryCommand).de(de_GetDeclarativePoliciesReportSummaryCommand).build() {\n static {\n __name(this, \"GetDeclarativePoliciesReportSummaryCommand\");\n }\n};\n\n// src/commands/GetDefaultCreditSpecificationCommand.ts\n\n\n\nvar GetDefaultCreditSpecificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetDefaultCreditSpecification\", {}).n(\"EC2Client\", \"GetDefaultCreditSpecificationCommand\").f(void 0, void 0).ser(se_GetDefaultCreditSpecificationCommand).de(de_GetDefaultCreditSpecificationCommand).build() {\n static {\n __name(this, \"GetDefaultCreditSpecificationCommand\");\n }\n};\n\n// src/commands/GetEbsDefaultKmsKeyIdCommand.ts\n\n\n\nvar GetEbsDefaultKmsKeyIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetEbsDefaultKmsKeyId\", {}).n(\"EC2Client\", \"GetEbsDefaultKmsKeyIdCommand\").f(void 0, void 0).ser(se_GetEbsDefaultKmsKeyIdCommand).de(de_GetEbsDefaultKmsKeyIdCommand).build() {\n static {\n __name(this, \"GetEbsDefaultKmsKeyIdCommand\");\n }\n};\n\n// src/commands/GetEbsEncryptionByDefaultCommand.ts\n\n\n\nvar GetEbsEncryptionByDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetEbsEncryptionByDefault\", {}).n(\"EC2Client\", \"GetEbsEncryptionByDefaultCommand\").f(void 0, void 0).ser(se_GetEbsEncryptionByDefaultCommand).de(de_GetEbsEncryptionByDefaultCommand).build() {\n static {\n __name(this, \"GetEbsEncryptionByDefaultCommand\");\n }\n};\n\n// src/commands/GetFlowLogsIntegrationTemplateCommand.ts\n\n\n\nvar GetFlowLogsIntegrationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetFlowLogsIntegrationTemplate\", {}).n(\"EC2Client\", \"GetFlowLogsIntegrationTemplateCommand\").f(void 0, void 0).ser(se_GetFlowLogsIntegrationTemplateCommand).de(de_GetFlowLogsIntegrationTemplateCommand).build() {\n static {\n __name(this, \"GetFlowLogsIntegrationTemplateCommand\");\n }\n};\n\n// src/commands/GetGroupsForCapacityReservationCommand.ts\n\n\n\nvar GetGroupsForCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetGroupsForCapacityReservation\", {}).n(\"EC2Client\", \"GetGroupsForCapacityReservationCommand\").f(void 0, void 0).ser(se_GetGroupsForCapacityReservationCommand).de(de_GetGroupsForCapacityReservationCommand).build() {\n static {\n __name(this, \"GetGroupsForCapacityReservationCommand\");\n }\n};\n\n// src/commands/GetHostReservationPurchasePreviewCommand.ts\n\n\n\nvar GetHostReservationPurchasePreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetHostReservationPurchasePreview\", {}).n(\"EC2Client\", \"GetHostReservationPurchasePreviewCommand\").f(void 0, void 0).ser(se_GetHostReservationPurchasePreviewCommand).de(de_GetHostReservationPurchasePreviewCommand).build() {\n static {\n __name(this, \"GetHostReservationPurchasePreviewCommand\");\n }\n};\n\n// src/commands/GetImageBlockPublicAccessStateCommand.ts\n\n\n\nvar GetImageBlockPublicAccessStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetImageBlockPublicAccessState\", {}).n(\"EC2Client\", \"GetImageBlockPublicAccessStateCommand\").f(void 0, void 0).ser(se_GetImageBlockPublicAccessStateCommand).de(de_GetImageBlockPublicAccessStateCommand).build() {\n static {\n __name(this, \"GetImageBlockPublicAccessStateCommand\");\n }\n};\n\n// src/commands/GetInstanceMetadataDefaultsCommand.ts\n\n\n\nvar GetInstanceMetadataDefaultsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceMetadataDefaults\", {}).n(\"EC2Client\", \"GetInstanceMetadataDefaultsCommand\").f(void 0, void 0).ser(se_GetInstanceMetadataDefaultsCommand).de(de_GetInstanceMetadataDefaultsCommand).build() {\n static {\n __name(this, \"GetInstanceMetadataDefaultsCommand\");\n }\n};\n\n// src/commands/GetInstanceTpmEkPubCommand.ts\n\n\n\nvar GetInstanceTpmEkPubCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceTpmEkPub\", {}).n(\"EC2Client\", \"GetInstanceTpmEkPubCommand\").f(void 0, GetInstanceTpmEkPubResultFilterSensitiveLog).ser(se_GetInstanceTpmEkPubCommand).de(de_GetInstanceTpmEkPubCommand).build() {\n static {\n __name(this, \"GetInstanceTpmEkPubCommand\");\n }\n};\n\n// src/commands/GetInstanceTypesFromInstanceRequirementsCommand.ts\n\n\n\nvar GetInstanceTypesFromInstanceRequirementsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceTypesFromInstanceRequirements\", {}).n(\"EC2Client\", \"GetInstanceTypesFromInstanceRequirementsCommand\").f(void 0, void 0).ser(se_GetInstanceTypesFromInstanceRequirementsCommand).de(de_GetInstanceTypesFromInstanceRequirementsCommand).build() {\n static {\n __name(this, \"GetInstanceTypesFromInstanceRequirementsCommand\");\n }\n};\n\n// src/commands/GetInstanceUefiDataCommand.ts\n\n\n\nvar GetInstanceUefiDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetInstanceUefiData\", {}).n(\"EC2Client\", \"GetInstanceUefiDataCommand\").f(void 0, void 0).ser(se_GetInstanceUefiDataCommand).de(de_GetInstanceUefiDataCommand).build() {\n static {\n __name(this, \"GetInstanceUefiDataCommand\");\n }\n};\n\n// src/commands/GetIpamAddressHistoryCommand.ts\n\n\n\nvar GetIpamAddressHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamAddressHistory\", {}).n(\"EC2Client\", \"GetIpamAddressHistoryCommand\").f(void 0, void 0).ser(se_GetIpamAddressHistoryCommand).de(de_GetIpamAddressHistoryCommand).build() {\n static {\n __name(this, \"GetIpamAddressHistoryCommand\");\n }\n};\n\n// src/commands/GetIpamDiscoveredAccountsCommand.ts\n\n\n\nvar GetIpamDiscoveredAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamDiscoveredAccounts\", {}).n(\"EC2Client\", \"GetIpamDiscoveredAccountsCommand\").f(void 0, void 0).ser(se_GetIpamDiscoveredAccountsCommand).de(de_GetIpamDiscoveredAccountsCommand).build() {\n static {\n __name(this, \"GetIpamDiscoveredAccountsCommand\");\n }\n};\n\n// src/commands/GetIpamDiscoveredPublicAddressesCommand.ts\n\n\n\nvar GetIpamDiscoveredPublicAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamDiscoveredPublicAddresses\", {}).n(\"EC2Client\", \"GetIpamDiscoveredPublicAddressesCommand\").f(void 0, void 0).ser(se_GetIpamDiscoveredPublicAddressesCommand).de(de_GetIpamDiscoveredPublicAddressesCommand).build() {\n static {\n __name(this, \"GetIpamDiscoveredPublicAddressesCommand\");\n }\n};\n\n// src/commands/GetIpamDiscoveredResourceCidrsCommand.ts\n\n\n\nvar GetIpamDiscoveredResourceCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamDiscoveredResourceCidrs\", {}).n(\"EC2Client\", \"GetIpamDiscoveredResourceCidrsCommand\").f(void 0, void 0).ser(se_GetIpamDiscoveredResourceCidrsCommand).de(de_GetIpamDiscoveredResourceCidrsCommand).build() {\n static {\n __name(this, \"GetIpamDiscoveredResourceCidrsCommand\");\n }\n};\n\n// src/commands/GetIpamPoolAllocationsCommand.ts\n\n\n\nvar GetIpamPoolAllocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamPoolAllocations\", {}).n(\"EC2Client\", \"GetIpamPoolAllocationsCommand\").f(void 0, void 0).ser(se_GetIpamPoolAllocationsCommand).de(de_GetIpamPoolAllocationsCommand).build() {\n static {\n __name(this, \"GetIpamPoolAllocationsCommand\");\n }\n};\n\n// src/commands/GetIpamPoolCidrsCommand.ts\n\n\n\nvar GetIpamPoolCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamPoolCidrs\", {}).n(\"EC2Client\", \"GetIpamPoolCidrsCommand\").f(void 0, void 0).ser(se_GetIpamPoolCidrsCommand).de(de_GetIpamPoolCidrsCommand).build() {\n static {\n __name(this, \"GetIpamPoolCidrsCommand\");\n }\n};\n\n// src/commands/GetIpamResourceCidrsCommand.ts\n\n\n\nvar GetIpamResourceCidrsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetIpamResourceCidrs\", {}).n(\"EC2Client\", \"GetIpamResourceCidrsCommand\").f(void 0, void 0).ser(se_GetIpamResourceCidrsCommand).de(de_GetIpamResourceCidrsCommand).build() {\n static {\n __name(this, \"GetIpamResourceCidrsCommand\");\n }\n};\n\n// src/commands/GetLaunchTemplateDataCommand.ts\n\n\n\nvar GetLaunchTemplateDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetLaunchTemplateData\", {}).n(\"EC2Client\", \"GetLaunchTemplateDataCommand\").f(void 0, GetLaunchTemplateDataResultFilterSensitiveLog).ser(se_GetLaunchTemplateDataCommand).de(de_GetLaunchTemplateDataCommand).build() {\n static {\n __name(this, \"GetLaunchTemplateDataCommand\");\n }\n};\n\n// src/commands/GetManagedPrefixListAssociationsCommand.ts\n\n\n\nvar GetManagedPrefixListAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetManagedPrefixListAssociations\", {}).n(\"EC2Client\", \"GetManagedPrefixListAssociationsCommand\").f(void 0, void 0).ser(se_GetManagedPrefixListAssociationsCommand).de(de_GetManagedPrefixListAssociationsCommand).build() {\n static {\n __name(this, \"GetManagedPrefixListAssociationsCommand\");\n }\n};\n\n// src/commands/GetManagedPrefixListEntriesCommand.ts\n\n\n\nvar GetManagedPrefixListEntriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetManagedPrefixListEntries\", {}).n(\"EC2Client\", \"GetManagedPrefixListEntriesCommand\").f(void 0, void 0).ser(se_GetManagedPrefixListEntriesCommand).de(de_GetManagedPrefixListEntriesCommand).build() {\n static {\n __name(this, \"GetManagedPrefixListEntriesCommand\");\n }\n};\n\n// src/commands/GetNetworkInsightsAccessScopeAnalysisFindingsCommand.ts\n\n\n\nvar GetNetworkInsightsAccessScopeAnalysisFindingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetNetworkInsightsAccessScopeAnalysisFindings\", {}).n(\"EC2Client\", \"GetNetworkInsightsAccessScopeAnalysisFindingsCommand\").f(void 0, void 0).ser(se_GetNetworkInsightsAccessScopeAnalysisFindingsCommand).de(de_GetNetworkInsightsAccessScopeAnalysisFindingsCommand).build() {\n static {\n __name(this, \"GetNetworkInsightsAccessScopeAnalysisFindingsCommand\");\n }\n};\n\n// src/commands/GetNetworkInsightsAccessScopeContentCommand.ts\n\n\n\nvar GetNetworkInsightsAccessScopeContentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetNetworkInsightsAccessScopeContent\", {}).n(\"EC2Client\", \"GetNetworkInsightsAccessScopeContentCommand\").f(void 0, void 0).ser(se_GetNetworkInsightsAccessScopeContentCommand).de(de_GetNetworkInsightsAccessScopeContentCommand).build() {\n static {\n __name(this, \"GetNetworkInsightsAccessScopeContentCommand\");\n }\n};\n\n// src/commands/GetPasswordDataCommand.ts\n\n\n\nvar GetPasswordDataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetPasswordData\", {}).n(\"EC2Client\", \"GetPasswordDataCommand\").f(void 0, GetPasswordDataResultFilterSensitiveLog).ser(se_GetPasswordDataCommand).de(de_GetPasswordDataCommand).build() {\n static {\n __name(this, \"GetPasswordDataCommand\");\n }\n};\n\n// src/commands/GetReservedInstancesExchangeQuoteCommand.ts\n\n\n\nvar GetReservedInstancesExchangeQuoteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetReservedInstancesExchangeQuote\", {}).n(\"EC2Client\", \"GetReservedInstancesExchangeQuoteCommand\").f(void 0, void 0).ser(se_GetReservedInstancesExchangeQuoteCommand).de(de_GetReservedInstancesExchangeQuoteCommand).build() {\n static {\n __name(this, \"GetReservedInstancesExchangeQuoteCommand\");\n }\n};\n\n// src/commands/GetRouteServerAssociationsCommand.ts\n\n\n\nvar GetRouteServerAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetRouteServerAssociations\", {}).n(\"EC2Client\", \"GetRouteServerAssociationsCommand\").f(void 0, void 0).ser(se_GetRouteServerAssociationsCommand).de(de_GetRouteServerAssociationsCommand).build() {\n static {\n __name(this, \"GetRouteServerAssociationsCommand\");\n }\n};\n\n// src/commands/GetRouteServerPropagationsCommand.ts\n\n\n\nvar GetRouteServerPropagationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetRouteServerPropagations\", {}).n(\"EC2Client\", \"GetRouteServerPropagationsCommand\").f(void 0, void 0).ser(se_GetRouteServerPropagationsCommand).de(de_GetRouteServerPropagationsCommand).build() {\n static {\n __name(this, \"GetRouteServerPropagationsCommand\");\n }\n};\n\n// src/commands/GetRouteServerRoutingDatabaseCommand.ts\n\n\n\nvar GetRouteServerRoutingDatabaseCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetRouteServerRoutingDatabase\", {}).n(\"EC2Client\", \"GetRouteServerRoutingDatabaseCommand\").f(void 0, void 0).ser(se_GetRouteServerRoutingDatabaseCommand).de(de_GetRouteServerRoutingDatabaseCommand).build() {\n static {\n __name(this, \"GetRouteServerRoutingDatabaseCommand\");\n }\n};\n\n// src/commands/GetSecurityGroupsForVpcCommand.ts\n\n\n\nvar GetSecurityGroupsForVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSecurityGroupsForVpc\", {}).n(\"EC2Client\", \"GetSecurityGroupsForVpcCommand\").f(void 0, void 0).ser(se_GetSecurityGroupsForVpcCommand).de(de_GetSecurityGroupsForVpcCommand).build() {\n static {\n __name(this, \"GetSecurityGroupsForVpcCommand\");\n }\n};\n\n// src/commands/GetSerialConsoleAccessStatusCommand.ts\n\n\n\nvar GetSerialConsoleAccessStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSerialConsoleAccessStatus\", {}).n(\"EC2Client\", \"GetSerialConsoleAccessStatusCommand\").f(void 0, void 0).ser(se_GetSerialConsoleAccessStatusCommand).de(de_GetSerialConsoleAccessStatusCommand).build() {\n static {\n __name(this, \"GetSerialConsoleAccessStatusCommand\");\n }\n};\n\n// src/commands/GetSnapshotBlockPublicAccessStateCommand.ts\n\n\n\nvar GetSnapshotBlockPublicAccessStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSnapshotBlockPublicAccessState\", {}).n(\"EC2Client\", \"GetSnapshotBlockPublicAccessStateCommand\").f(void 0, void 0).ser(se_GetSnapshotBlockPublicAccessStateCommand).de(de_GetSnapshotBlockPublicAccessStateCommand).build() {\n static {\n __name(this, \"GetSnapshotBlockPublicAccessStateCommand\");\n }\n};\n\n// src/commands/GetSpotPlacementScoresCommand.ts\n\n\n\nvar GetSpotPlacementScoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSpotPlacementScores\", {}).n(\"EC2Client\", \"GetSpotPlacementScoresCommand\").f(void 0, void 0).ser(se_GetSpotPlacementScoresCommand).de(de_GetSpotPlacementScoresCommand).build() {\n static {\n __name(this, \"GetSpotPlacementScoresCommand\");\n }\n};\n\n// src/commands/GetSubnetCidrReservationsCommand.ts\n\n\n\nvar GetSubnetCidrReservationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetSubnetCidrReservations\", {}).n(\"EC2Client\", \"GetSubnetCidrReservationsCommand\").f(void 0, void 0).ser(se_GetSubnetCidrReservationsCommand).de(de_GetSubnetCidrReservationsCommand).build() {\n static {\n __name(this, \"GetSubnetCidrReservationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayAttachmentPropagationsCommand.ts\n\n\n\nvar GetTransitGatewayAttachmentPropagationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayAttachmentPropagations\", {}).n(\"EC2Client\", \"GetTransitGatewayAttachmentPropagationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayAttachmentPropagationsCommand).de(de_GetTransitGatewayAttachmentPropagationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayAttachmentPropagationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayMulticastDomainAssociationsCommand.ts\n\n\n\nvar GetTransitGatewayMulticastDomainAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayMulticastDomainAssociations\", {}).n(\"EC2Client\", \"GetTransitGatewayMulticastDomainAssociationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayMulticastDomainAssociationsCommand).de(de_GetTransitGatewayMulticastDomainAssociationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayMulticastDomainAssociationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayPolicyTableAssociationsCommand.ts\n\n\n\nvar GetTransitGatewayPolicyTableAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayPolicyTableAssociations\", {}).n(\"EC2Client\", \"GetTransitGatewayPolicyTableAssociationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayPolicyTableAssociationsCommand).de(de_GetTransitGatewayPolicyTableAssociationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayPolicyTableAssociationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayPolicyTableEntriesCommand.ts\n\n\n\nvar GetTransitGatewayPolicyTableEntriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayPolicyTableEntries\", {}).n(\"EC2Client\", \"GetTransitGatewayPolicyTableEntriesCommand\").f(void 0, void 0).ser(se_GetTransitGatewayPolicyTableEntriesCommand).de(de_GetTransitGatewayPolicyTableEntriesCommand).build() {\n static {\n __name(this, \"GetTransitGatewayPolicyTableEntriesCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayPrefixListReferencesCommand.ts\n\n\n\nvar GetTransitGatewayPrefixListReferencesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayPrefixListReferences\", {}).n(\"EC2Client\", \"GetTransitGatewayPrefixListReferencesCommand\").f(void 0, void 0).ser(se_GetTransitGatewayPrefixListReferencesCommand).de(de_GetTransitGatewayPrefixListReferencesCommand).build() {\n static {\n __name(this, \"GetTransitGatewayPrefixListReferencesCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayRouteTableAssociationsCommand.ts\n\n\n\nvar GetTransitGatewayRouteTableAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayRouteTableAssociations\", {}).n(\"EC2Client\", \"GetTransitGatewayRouteTableAssociationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayRouteTableAssociationsCommand).de(de_GetTransitGatewayRouteTableAssociationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayRouteTableAssociationsCommand\");\n }\n};\n\n// src/commands/GetTransitGatewayRouteTablePropagationsCommand.ts\n\n\n\nvar GetTransitGatewayRouteTablePropagationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetTransitGatewayRouteTablePropagations\", {}).n(\"EC2Client\", \"GetTransitGatewayRouteTablePropagationsCommand\").f(void 0, void 0).ser(se_GetTransitGatewayRouteTablePropagationsCommand).de(de_GetTransitGatewayRouteTablePropagationsCommand).build() {\n static {\n __name(this, \"GetTransitGatewayRouteTablePropagationsCommand\");\n }\n};\n\n// src/commands/GetVerifiedAccessEndpointPolicyCommand.ts\n\n\n\nvar GetVerifiedAccessEndpointPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVerifiedAccessEndpointPolicy\", {}).n(\"EC2Client\", \"GetVerifiedAccessEndpointPolicyCommand\").f(void 0, void 0).ser(se_GetVerifiedAccessEndpointPolicyCommand).de(de_GetVerifiedAccessEndpointPolicyCommand).build() {\n static {\n __name(this, \"GetVerifiedAccessEndpointPolicyCommand\");\n }\n};\n\n// src/commands/GetVerifiedAccessEndpointTargetsCommand.ts\n\n\n\nvar GetVerifiedAccessEndpointTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVerifiedAccessEndpointTargets\", {}).n(\"EC2Client\", \"GetVerifiedAccessEndpointTargetsCommand\").f(void 0, void 0).ser(se_GetVerifiedAccessEndpointTargetsCommand).de(de_GetVerifiedAccessEndpointTargetsCommand).build() {\n static {\n __name(this, \"GetVerifiedAccessEndpointTargetsCommand\");\n }\n};\n\n// src/commands/GetVerifiedAccessGroupPolicyCommand.ts\n\n\n\nvar GetVerifiedAccessGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVerifiedAccessGroupPolicy\", {}).n(\"EC2Client\", \"GetVerifiedAccessGroupPolicyCommand\").f(void 0, void 0).ser(se_GetVerifiedAccessGroupPolicyCommand).de(de_GetVerifiedAccessGroupPolicyCommand).build() {\n static {\n __name(this, \"GetVerifiedAccessGroupPolicyCommand\");\n }\n};\n\n// src/commands/GetVpnConnectionDeviceSampleConfigurationCommand.ts\n\n\n\n\n// src/models/models_7.ts\n\nvar LockMode = {\n compliance: \"compliance\",\n governance: \"governance\"\n};\nvar ModifyAvailabilityZoneOptInStatus = {\n not_opted_in: \"not-opted-in\",\n opted_in: \"opted-in\"\n};\nvar OperationType = {\n add: \"add\",\n remove: \"remove\"\n};\nvar UnsuccessfulInstanceCreditSpecificationErrorCode = {\n INCORRECT_INSTANCE_STATE: \"IncorrectInstanceState\",\n INSTANCE_CREDIT_SPECIFICATION_NOT_SUPPORTED: \"InstanceCreditSpecification.NotSupported\",\n INSTANCE_NOT_FOUND: \"InvalidInstanceID.NotFound\",\n INVALID_INSTANCE_ID: \"InvalidInstanceID.Malformed\"\n};\nvar DefaultInstanceMetadataEndpointState = {\n disabled: \"disabled\",\n enabled: \"enabled\",\n no_preference: \"no-preference\"\n};\nvar MetadataDefaultHttpTokensState = {\n no_preference: \"no-preference\",\n optional: \"optional\",\n required: \"required\"\n};\nvar DefaultInstanceMetadataTagsState = {\n disabled: \"disabled\",\n enabled: \"enabled\",\n no_preference: \"no-preference\"\n};\nvar HostTenancy = {\n dedicated: \"dedicated\",\n default: \"default\",\n host: \"host\"\n};\nvar TargetStorageTier = {\n archive: \"archive\"\n};\nvar TrafficMirrorFilterRuleField = {\n description: \"description\",\n destination_port_range: \"destination-port-range\",\n protocol: \"protocol\",\n source_port_range: \"source-port-range\"\n};\nvar TrafficMirrorSessionField = {\n description: \"description\",\n packet_length: \"packet-length\",\n virtual_network_id: \"virtual-network-id\"\n};\nvar VpcTenancy = {\n default: \"default\"\n};\nvar Status = {\n inClassic: \"InClassic\",\n inVpc: \"InVpc\",\n moveInProgress: \"MoveInProgress\"\n};\nvar VerificationMethod = {\n dns_token: \"dns-token\",\n remarks_x509: \"remarks-x509\"\n};\nvar ReportInstanceReasonCodes = {\n instance_stuck_in_state: \"instance-stuck-in-state\",\n not_accepting_credentials: \"not-accepting-credentials\",\n other: \"other\",\n password_not_available: \"password-not-available\",\n performance_ebs_volume: \"performance-ebs-volume\",\n performance_instance_store: \"performance-instance-store\",\n performance_network: \"performance-network\",\n performance_other: \"performance-other\",\n unresponsive: \"unresponsive\"\n};\nvar ReportStatusType = {\n impaired: \"impaired\",\n ok: \"ok\"\n};\nvar GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnectionDeviceSampleConfiguration && { VpnConnectionDeviceSampleConfiguration: import_smithy_client.SENSITIVE_STRING }\n}), \"GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog\");\nvar ImageDiskContainerFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"ImageDiskContainerFilterSensitiveLog\");\nvar ImportImageRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.DiskContainers && {\n DiskContainers: obj.DiskContainers.map((item) => ImageDiskContainerFilterSensitiveLog(item))\n }\n}), \"ImportImageRequestFilterSensitiveLog\");\nvar ImportImageResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotDetails && {\n SnapshotDetails: obj.SnapshotDetails.map((item) => SnapshotDetailFilterSensitiveLog(item))\n }\n}), \"ImportImageResultFilterSensitiveLog\");\nvar DiskImageDetailFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ImportManifestUrl && { ImportManifestUrl: import_smithy_client.SENSITIVE_STRING }\n}), \"DiskImageDetailFilterSensitiveLog\");\nvar DiskImageFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDetailFilterSensitiveLog(obj.Image) }\n}), \"DiskImageFilterSensitiveLog\");\nvar UserDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"UserDataFilterSensitiveLog\");\nvar ImportInstanceLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"ImportInstanceLaunchSpecificationFilterSensitiveLog\");\nvar ImportInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && {\n LaunchSpecification: ImportInstanceLaunchSpecificationFilterSensitiveLog(obj.LaunchSpecification)\n },\n ...obj.DiskImages && { DiskImages: obj.DiskImages.map((item) => DiskImageFilterSensitiveLog(item)) }\n}), \"ImportInstanceRequestFilterSensitiveLog\");\nvar ImportInstanceResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ConversionTask && { ConversionTask: ConversionTaskFilterSensitiveLog(obj.ConversionTask) }\n}), \"ImportInstanceResultFilterSensitiveLog\");\nvar SnapshotDiskContainerFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Url && { Url: import_smithy_client.SENSITIVE_STRING }\n}), \"SnapshotDiskContainerFilterSensitiveLog\");\nvar ImportSnapshotRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.DiskContainer && { DiskContainer: SnapshotDiskContainerFilterSensitiveLog(obj.DiskContainer) }\n}), \"ImportSnapshotRequestFilterSensitiveLog\");\nvar ImportSnapshotResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SnapshotTaskDetail && { SnapshotTaskDetail: SnapshotTaskDetailFilterSensitiveLog(obj.SnapshotTaskDetail) }\n}), \"ImportSnapshotResultFilterSensitiveLog\");\nvar ImportVolumeRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Image && { Image: DiskImageDetailFilterSensitiveLog(obj.Image) }\n}), \"ImportVolumeRequestFilterSensitiveLog\");\nvar ImportVolumeResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ConversionTask && { ConversionTask: ConversionTaskFilterSensitiveLog(obj.ConversionTask) }\n}), \"ImportVolumeResultFilterSensitiveLog\");\nvar ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog\");\nvar ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ClientSecret && { ClientSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog\");\nvar ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OidcOptions && {\n OidcOptions: ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog(obj.OidcOptions)\n },\n ...obj.NativeApplicationOidcOptions && {\n NativeApplicationOidcOptions: ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog(\n obj.NativeApplicationOidcOptions\n )\n }\n}), \"ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog\");\nvar ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VerifiedAccessTrustProvider && {\n VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider)\n }\n}), \"ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog\");\nvar ModifyVpnConnectionResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnConnectionResultFilterSensitiveLog\");\nvar ModifyVpnConnectionOptionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnConnectionOptionsResultFilterSensitiveLog\");\nvar ModifyVpnTunnelCertificateResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnTunnelCertificateResultFilterSensitiveLog\");\nvar ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PreSharedKey && { PreSharedKey: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog\");\nvar ModifyVpnTunnelOptionsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TunnelOptions && { TunnelOptions: import_smithy_client.SENSITIVE_STRING }\n}), \"ModifyVpnTunnelOptionsRequestFilterSensitiveLog\");\nvar ModifyVpnTunnelOptionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VpnConnection && { VpnConnection: VpnConnectionFilterSensitiveLog(obj.VpnConnection) }\n}), \"ModifyVpnTunnelOptionsResultFilterSensitiveLog\");\nvar ReportInstanceStatusRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"ReportInstanceStatusRequestFilterSensitiveLog\");\n\n// src/commands/GetVpnConnectionDeviceSampleConfigurationCommand.ts\nvar GetVpnConnectionDeviceSampleConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVpnConnectionDeviceSampleConfiguration\", {}).n(\"EC2Client\", \"GetVpnConnectionDeviceSampleConfigurationCommand\").f(void 0, GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog).ser(se_GetVpnConnectionDeviceSampleConfigurationCommand).de(de_GetVpnConnectionDeviceSampleConfigurationCommand).build() {\n static {\n __name(this, \"GetVpnConnectionDeviceSampleConfigurationCommand\");\n }\n};\n\n// src/commands/GetVpnConnectionDeviceTypesCommand.ts\n\n\n\nvar GetVpnConnectionDeviceTypesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVpnConnectionDeviceTypes\", {}).n(\"EC2Client\", \"GetVpnConnectionDeviceTypesCommand\").f(void 0, void 0).ser(se_GetVpnConnectionDeviceTypesCommand).de(de_GetVpnConnectionDeviceTypesCommand).build() {\n static {\n __name(this, \"GetVpnConnectionDeviceTypesCommand\");\n }\n};\n\n// src/commands/GetVpnTunnelReplacementStatusCommand.ts\n\n\n\nvar GetVpnTunnelReplacementStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"GetVpnTunnelReplacementStatus\", {}).n(\"EC2Client\", \"GetVpnTunnelReplacementStatusCommand\").f(void 0, void 0).ser(se_GetVpnTunnelReplacementStatusCommand).de(de_GetVpnTunnelReplacementStatusCommand).build() {\n static {\n __name(this, \"GetVpnTunnelReplacementStatusCommand\");\n }\n};\n\n// src/commands/ImportClientVpnClientCertificateRevocationListCommand.ts\n\n\n\nvar ImportClientVpnClientCertificateRevocationListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportClientVpnClientCertificateRevocationList\", {}).n(\"EC2Client\", \"ImportClientVpnClientCertificateRevocationListCommand\").f(void 0, void 0).ser(se_ImportClientVpnClientCertificateRevocationListCommand).de(de_ImportClientVpnClientCertificateRevocationListCommand).build() {\n static {\n __name(this, \"ImportClientVpnClientCertificateRevocationListCommand\");\n }\n};\n\n// src/commands/ImportImageCommand.ts\n\n\n\nvar ImportImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportImage\", {}).n(\"EC2Client\", \"ImportImageCommand\").f(ImportImageRequestFilterSensitiveLog, ImportImageResultFilterSensitiveLog).ser(se_ImportImageCommand).de(de_ImportImageCommand).build() {\n static {\n __name(this, \"ImportImageCommand\");\n }\n};\n\n// src/commands/ImportInstanceCommand.ts\n\n\n\nvar ImportInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportInstance\", {}).n(\"EC2Client\", \"ImportInstanceCommand\").f(ImportInstanceRequestFilterSensitiveLog, ImportInstanceResultFilterSensitiveLog).ser(se_ImportInstanceCommand).de(de_ImportInstanceCommand).build() {\n static {\n __name(this, \"ImportInstanceCommand\");\n }\n};\n\n// src/commands/ImportKeyPairCommand.ts\n\n\n\nvar ImportKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportKeyPair\", {}).n(\"EC2Client\", \"ImportKeyPairCommand\").f(void 0, void 0).ser(se_ImportKeyPairCommand).de(de_ImportKeyPairCommand).build() {\n static {\n __name(this, \"ImportKeyPairCommand\");\n }\n};\n\n// src/commands/ImportSnapshotCommand.ts\n\n\n\nvar ImportSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportSnapshot\", {}).n(\"EC2Client\", \"ImportSnapshotCommand\").f(ImportSnapshotRequestFilterSensitiveLog, ImportSnapshotResultFilterSensitiveLog).ser(se_ImportSnapshotCommand).de(de_ImportSnapshotCommand).build() {\n static {\n __name(this, \"ImportSnapshotCommand\");\n }\n};\n\n// src/commands/ImportVolumeCommand.ts\n\n\n\nvar ImportVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ImportVolume\", {}).n(\"EC2Client\", \"ImportVolumeCommand\").f(ImportVolumeRequestFilterSensitiveLog, ImportVolumeResultFilterSensitiveLog).ser(se_ImportVolumeCommand).de(de_ImportVolumeCommand).build() {\n static {\n __name(this, \"ImportVolumeCommand\");\n }\n};\n\n// src/commands/ListImagesInRecycleBinCommand.ts\n\n\n\nvar ListImagesInRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ListImagesInRecycleBin\", {}).n(\"EC2Client\", \"ListImagesInRecycleBinCommand\").f(void 0, void 0).ser(se_ListImagesInRecycleBinCommand).de(de_ListImagesInRecycleBinCommand).build() {\n static {\n __name(this, \"ListImagesInRecycleBinCommand\");\n }\n};\n\n// src/commands/ListSnapshotsInRecycleBinCommand.ts\n\n\n\nvar ListSnapshotsInRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ListSnapshotsInRecycleBin\", {}).n(\"EC2Client\", \"ListSnapshotsInRecycleBinCommand\").f(void 0, void 0).ser(se_ListSnapshotsInRecycleBinCommand).de(de_ListSnapshotsInRecycleBinCommand).build() {\n static {\n __name(this, \"ListSnapshotsInRecycleBinCommand\");\n }\n};\n\n// src/commands/LockSnapshotCommand.ts\n\n\n\nvar LockSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"LockSnapshot\", {}).n(\"EC2Client\", \"LockSnapshotCommand\").f(void 0, void 0).ser(se_LockSnapshotCommand).de(de_LockSnapshotCommand).build() {\n static {\n __name(this, \"LockSnapshotCommand\");\n }\n};\n\n// src/commands/ModifyAddressAttributeCommand.ts\n\n\n\nvar ModifyAddressAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyAddressAttribute\", {}).n(\"EC2Client\", \"ModifyAddressAttributeCommand\").f(void 0, void 0).ser(se_ModifyAddressAttributeCommand).de(de_ModifyAddressAttributeCommand).build() {\n static {\n __name(this, \"ModifyAddressAttributeCommand\");\n }\n};\n\n// src/commands/ModifyAvailabilityZoneGroupCommand.ts\n\n\n\nvar ModifyAvailabilityZoneGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyAvailabilityZoneGroup\", {}).n(\"EC2Client\", \"ModifyAvailabilityZoneGroupCommand\").f(void 0, void 0).ser(se_ModifyAvailabilityZoneGroupCommand).de(de_ModifyAvailabilityZoneGroupCommand).build() {\n static {\n __name(this, \"ModifyAvailabilityZoneGroupCommand\");\n }\n};\n\n// src/commands/ModifyCapacityReservationCommand.ts\n\n\n\nvar ModifyCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyCapacityReservation\", {}).n(\"EC2Client\", \"ModifyCapacityReservationCommand\").f(void 0, void 0).ser(se_ModifyCapacityReservationCommand).de(de_ModifyCapacityReservationCommand).build() {\n static {\n __name(this, \"ModifyCapacityReservationCommand\");\n }\n};\n\n// src/commands/ModifyCapacityReservationFleetCommand.ts\n\n\n\nvar ModifyCapacityReservationFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyCapacityReservationFleet\", {}).n(\"EC2Client\", \"ModifyCapacityReservationFleetCommand\").f(void 0, void 0).ser(se_ModifyCapacityReservationFleetCommand).de(de_ModifyCapacityReservationFleetCommand).build() {\n static {\n __name(this, \"ModifyCapacityReservationFleetCommand\");\n }\n};\n\n// src/commands/ModifyClientVpnEndpointCommand.ts\n\n\n\nvar ModifyClientVpnEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyClientVpnEndpoint\", {}).n(\"EC2Client\", \"ModifyClientVpnEndpointCommand\").f(void 0, void 0).ser(se_ModifyClientVpnEndpointCommand).de(de_ModifyClientVpnEndpointCommand).build() {\n static {\n __name(this, \"ModifyClientVpnEndpointCommand\");\n }\n};\n\n// src/commands/ModifyDefaultCreditSpecificationCommand.ts\n\n\n\nvar ModifyDefaultCreditSpecificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyDefaultCreditSpecification\", {}).n(\"EC2Client\", \"ModifyDefaultCreditSpecificationCommand\").f(void 0, void 0).ser(se_ModifyDefaultCreditSpecificationCommand).de(de_ModifyDefaultCreditSpecificationCommand).build() {\n static {\n __name(this, \"ModifyDefaultCreditSpecificationCommand\");\n }\n};\n\n// src/commands/ModifyEbsDefaultKmsKeyIdCommand.ts\n\n\n\nvar ModifyEbsDefaultKmsKeyIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyEbsDefaultKmsKeyId\", {}).n(\"EC2Client\", \"ModifyEbsDefaultKmsKeyIdCommand\").f(void 0, void 0).ser(se_ModifyEbsDefaultKmsKeyIdCommand).de(de_ModifyEbsDefaultKmsKeyIdCommand).build() {\n static {\n __name(this, \"ModifyEbsDefaultKmsKeyIdCommand\");\n }\n};\n\n// src/commands/ModifyFleetCommand.ts\n\n\n\nvar ModifyFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyFleet\", {}).n(\"EC2Client\", \"ModifyFleetCommand\").f(void 0, void 0).ser(se_ModifyFleetCommand).de(de_ModifyFleetCommand).build() {\n static {\n __name(this, \"ModifyFleetCommand\");\n }\n};\n\n// src/commands/ModifyFpgaImageAttributeCommand.ts\n\n\n\nvar ModifyFpgaImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyFpgaImageAttribute\", {}).n(\"EC2Client\", \"ModifyFpgaImageAttributeCommand\").f(void 0, void 0).ser(se_ModifyFpgaImageAttributeCommand).de(de_ModifyFpgaImageAttributeCommand).build() {\n static {\n __name(this, \"ModifyFpgaImageAttributeCommand\");\n }\n};\n\n// src/commands/ModifyHostsCommand.ts\n\n\n\nvar ModifyHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyHosts\", {}).n(\"EC2Client\", \"ModifyHostsCommand\").f(void 0, void 0).ser(se_ModifyHostsCommand).de(de_ModifyHostsCommand).build() {\n static {\n __name(this, \"ModifyHostsCommand\");\n }\n};\n\n// src/commands/ModifyIdentityIdFormatCommand.ts\n\n\n\nvar ModifyIdentityIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIdentityIdFormat\", {}).n(\"EC2Client\", \"ModifyIdentityIdFormatCommand\").f(void 0, void 0).ser(se_ModifyIdentityIdFormatCommand).de(de_ModifyIdentityIdFormatCommand).build() {\n static {\n __name(this, \"ModifyIdentityIdFormatCommand\");\n }\n};\n\n// src/commands/ModifyIdFormatCommand.ts\n\n\n\nvar ModifyIdFormatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIdFormat\", {}).n(\"EC2Client\", \"ModifyIdFormatCommand\").f(void 0, void 0).ser(se_ModifyIdFormatCommand).de(de_ModifyIdFormatCommand).build() {\n static {\n __name(this, \"ModifyIdFormatCommand\");\n }\n};\n\n// src/commands/ModifyImageAttributeCommand.ts\n\n\n\nvar ModifyImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyImageAttribute\", {}).n(\"EC2Client\", \"ModifyImageAttributeCommand\").f(void 0, void 0).ser(se_ModifyImageAttributeCommand).de(de_ModifyImageAttributeCommand).build() {\n static {\n __name(this, \"ModifyImageAttributeCommand\");\n }\n};\n\n// src/commands/ModifyInstanceAttributeCommand.ts\n\n\n\nvar ModifyInstanceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceAttribute\", {}).n(\"EC2Client\", \"ModifyInstanceAttributeCommand\").f(void 0, void 0).ser(se_ModifyInstanceAttributeCommand).de(de_ModifyInstanceAttributeCommand).build() {\n static {\n __name(this, \"ModifyInstanceAttributeCommand\");\n }\n};\n\n// src/commands/ModifyInstanceCapacityReservationAttributesCommand.ts\n\n\n\nvar ModifyInstanceCapacityReservationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceCapacityReservationAttributes\", {}).n(\"EC2Client\", \"ModifyInstanceCapacityReservationAttributesCommand\").f(void 0, void 0).ser(se_ModifyInstanceCapacityReservationAttributesCommand).de(de_ModifyInstanceCapacityReservationAttributesCommand).build() {\n static {\n __name(this, \"ModifyInstanceCapacityReservationAttributesCommand\");\n }\n};\n\n// src/commands/ModifyInstanceCpuOptionsCommand.ts\n\n\n\nvar ModifyInstanceCpuOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceCpuOptions\", {}).n(\"EC2Client\", \"ModifyInstanceCpuOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceCpuOptionsCommand).de(de_ModifyInstanceCpuOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceCpuOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceCreditSpecificationCommand.ts\n\n\n\nvar ModifyInstanceCreditSpecificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceCreditSpecification\", {}).n(\"EC2Client\", \"ModifyInstanceCreditSpecificationCommand\").f(void 0, void 0).ser(se_ModifyInstanceCreditSpecificationCommand).de(de_ModifyInstanceCreditSpecificationCommand).build() {\n static {\n __name(this, \"ModifyInstanceCreditSpecificationCommand\");\n }\n};\n\n// src/commands/ModifyInstanceEventStartTimeCommand.ts\n\n\n\nvar ModifyInstanceEventStartTimeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceEventStartTime\", {}).n(\"EC2Client\", \"ModifyInstanceEventStartTimeCommand\").f(void 0, void 0).ser(se_ModifyInstanceEventStartTimeCommand).de(de_ModifyInstanceEventStartTimeCommand).build() {\n static {\n __name(this, \"ModifyInstanceEventStartTimeCommand\");\n }\n};\n\n// src/commands/ModifyInstanceEventWindowCommand.ts\n\n\n\nvar ModifyInstanceEventWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceEventWindow\", {}).n(\"EC2Client\", \"ModifyInstanceEventWindowCommand\").f(void 0, void 0).ser(se_ModifyInstanceEventWindowCommand).de(de_ModifyInstanceEventWindowCommand).build() {\n static {\n __name(this, \"ModifyInstanceEventWindowCommand\");\n }\n};\n\n// src/commands/ModifyInstanceMaintenanceOptionsCommand.ts\n\n\n\nvar ModifyInstanceMaintenanceOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceMaintenanceOptions\", {}).n(\"EC2Client\", \"ModifyInstanceMaintenanceOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceMaintenanceOptionsCommand).de(de_ModifyInstanceMaintenanceOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceMaintenanceOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceMetadataDefaultsCommand.ts\n\n\n\nvar ModifyInstanceMetadataDefaultsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceMetadataDefaults\", {}).n(\"EC2Client\", \"ModifyInstanceMetadataDefaultsCommand\").f(void 0, void 0).ser(se_ModifyInstanceMetadataDefaultsCommand).de(de_ModifyInstanceMetadataDefaultsCommand).build() {\n static {\n __name(this, \"ModifyInstanceMetadataDefaultsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceMetadataOptionsCommand.ts\n\n\n\nvar ModifyInstanceMetadataOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceMetadataOptions\", {}).n(\"EC2Client\", \"ModifyInstanceMetadataOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceMetadataOptionsCommand).de(de_ModifyInstanceMetadataOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceMetadataOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstanceNetworkPerformanceOptionsCommand.ts\n\n\n\nvar ModifyInstanceNetworkPerformanceOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstanceNetworkPerformanceOptions\", {}).n(\"EC2Client\", \"ModifyInstanceNetworkPerformanceOptionsCommand\").f(void 0, void 0).ser(se_ModifyInstanceNetworkPerformanceOptionsCommand).de(de_ModifyInstanceNetworkPerformanceOptionsCommand).build() {\n static {\n __name(this, \"ModifyInstanceNetworkPerformanceOptionsCommand\");\n }\n};\n\n// src/commands/ModifyInstancePlacementCommand.ts\n\n\n\nvar ModifyInstancePlacementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyInstancePlacement\", {}).n(\"EC2Client\", \"ModifyInstancePlacementCommand\").f(void 0, void 0).ser(se_ModifyInstancePlacementCommand).de(de_ModifyInstancePlacementCommand).build() {\n static {\n __name(this, \"ModifyInstancePlacementCommand\");\n }\n};\n\n// src/commands/ModifyIpamCommand.ts\n\n\n\nvar ModifyIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpam\", {}).n(\"EC2Client\", \"ModifyIpamCommand\").f(void 0, void 0).ser(se_ModifyIpamCommand).de(de_ModifyIpamCommand).build() {\n static {\n __name(this, \"ModifyIpamCommand\");\n }\n};\n\n// src/commands/ModifyIpamPoolCommand.ts\n\n\n\nvar ModifyIpamPoolCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamPool\", {}).n(\"EC2Client\", \"ModifyIpamPoolCommand\").f(void 0, void 0).ser(se_ModifyIpamPoolCommand).de(de_ModifyIpamPoolCommand).build() {\n static {\n __name(this, \"ModifyIpamPoolCommand\");\n }\n};\n\n// src/commands/ModifyIpamResourceCidrCommand.ts\n\n\n\nvar ModifyIpamResourceCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamResourceCidr\", {}).n(\"EC2Client\", \"ModifyIpamResourceCidrCommand\").f(void 0, void 0).ser(se_ModifyIpamResourceCidrCommand).de(de_ModifyIpamResourceCidrCommand).build() {\n static {\n __name(this, \"ModifyIpamResourceCidrCommand\");\n }\n};\n\n// src/commands/ModifyIpamResourceDiscoveryCommand.ts\n\n\n\nvar ModifyIpamResourceDiscoveryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamResourceDiscovery\", {}).n(\"EC2Client\", \"ModifyIpamResourceDiscoveryCommand\").f(void 0, void 0).ser(se_ModifyIpamResourceDiscoveryCommand).de(de_ModifyIpamResourceDiscoveryCommand).build() {\n static {\n __name(this, \"ModifyIpamResourceDiscoveryCommand\");\n }\n};\n\n// src/commands/ModifyIpamScopeCommand.ts\n\n\n\nvar ModifyIpamScopeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyIpamScope\", {}).n(\"EC2Client\", \"ModifyIpamScopeCommand\").f(void 0, void 0).ser(se_ModifyIpamScopeCommand).de(de_ModifyIpamScopeCommand).build() {\n static {\n __name(this, \"ModifyIpamScopeCommand\");\n }\n};\n\n// src/commands/ModifyLaunchTemplateCommand.ts\n\n\n\nvar ModifyLaunchTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyLaunchTemplate\", {}).n(\"EC2Client\", \"ModifyLaunchTemplateCommand\").f(void 0, void 0).ser(se_ModifyLaunchTemplateCommand).de(de_ModifyLaunchTemplateCommand).build() {\n static {\n __name(this, \"ModifyLaunchTemplateCommand\");\n }\n};\n\n// src/commands/ModifyLocalGatewayRouteCommand.ts\n\n\n\nvar ModifyLocalGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyLocalGatewayRoute\", {}).n(\"EC2Client\", \"ModifyLocalGatewayRouteCommand\").f(void 0, void 0).ser(se_ModifyLocalGatewayRouteCommand).de(de_ModifyLocalGatewayRouteCommand).build() {\n static {\n __name(this, \"ModifyLocalGatewayRouteCommand\");\n }\n};\n\n// src/commands/ModifyManagedPrefixListCommand.ts\n\n\n\nvar ModifyManagedPrefixListCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyManagedPrefixList\", {}).n(\"EC2Client\", \"ModifyManagedPrefixListCommand\").f(void 0, void 0).ser(se_ModifyManagedPrefixListCommand).de(de_ModifyManagedPrefixListCommand).build() {\n static {\n __name(this, \"ModifyManagedPrefixListCommand\");\n }\n};\n\n// src/commands/ModifyNetworkInterfaceAttributeCommand.ts\n\n\n\nvar ModifyNetworkInterfaceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyNetworkInterfaceAttribute\", {}).n(\"EC2Client\", \"ModifyNetworkInterfaceAttributeCommand\").f(void 0, void 0).ser(se_ModifyNetworkInterfaceAttributeCommand).de(de_ModifyNetworkInterfaceAttributeCommand).build() {\n static {\n __name(this, \"ModifyNetworkInterfaceAttributeCommand\");\n }\n};\n\n// src/commands/ModifyPrivateDnsNameOptionsCommand.ts\n\n\n\nvar ModifyPrivateDnsNameOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyPrivateDnsNameOptions\", {}).n(\"EC2Client\", \"ModifyPrivateDnsNameOptionsCommand\").f(void 0, void 0).ser(se_ModifyPrivateDnsNameOptionsCommand).de(de_ModifyPrivateDnsNameOptionsCommand).build() {\n static {\n __name(this, \"ModifyPrivateDnsNameOptionsCommand\");\n }\n};\n\n// src/commands/ModifyReservedInstancesCommand.ts\n\n\n\nvar ModifyReservedInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyReservedInstances\", {}).n(\"EC2Client\", \"ModifyReservedInstancesCommand\").f(void 0, void 0).ser(se_ModifyReservedInstancesCommand).de(de_ModifyReservedInstancesCommand).build() {\n static {\n __name(this, \"ModifyReservedInstancesCommand\");\n }\n};\n\n// src/commands/ModifyRouteServerCommand.ts\n\n\n\nvar ModifyRouteServerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyRouteServer\", {}).n(\"EC2Client\", \"ModifyRouteServerCommand\").f(void 0, void 0).ser(se_ModifyRouteServerCommand).de(de_ModifyRouteServerCommand).build() {\n static {\n __name(this, \"ModifyRouteServerCommand\");\n }\n};\n\n// src/commands/ModifySecurityGroupRulesCommand.ts\n\n\n\nvar ModifySecurityGroupRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySecurityGroupRules\", {}).n(\"EC2Client\", \"ModifySecurityGroupRulesCommand\").f(void 0, void 0).ser(se_ModifySecurityGroupRulesCommand).de(de_ModifySecurityGroupRulesCommand).build() {\n static {\n __name(this, \"ModifySecurityGroupRulesCommand\");\n }\n};\n\n// src/commands/ModifySnapshotAttributeCommand.ts\n\n\n\nvar ModifySnapshotAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySnapshotAttribute\", {}).n(\"EC2Client\", \"ModifySnapshotAttributeCommand\").f(void 0, void 0).ser(se_ModifySnapshotAttributeCommand).de(de_ModifySnapshotAttributeCommand).build() {\n static {\n __name(this, \"ModifySnapshotAttributeCommand\");\n }\n};\n\n// src/commands/ModifySnapshotTierCommand.ts\n\n\n\nvar ModifySnapshotTierCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySnapshotTier\", {}).n(\"EC2Client\", \"ModifySnapshotTierCommand\").f(void 0, void 0).ser(se_ModifySnapshotTierCommand).de(de_ModifySnapshotTierCommand).build() {\n static {\n __name(this, \"ModifySnapshotTierCommand\");\n }\n};\n\n// src/commands/ModifySpotFleetRequestCommand.ts\n\n\n\nvar ModifySpotFleetRequestCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySpotFleetRequest\", {}).n(\"EC2Client\", \"ModifySpotFleetRequestCommand\").f(void 0, void 0).ser(se_ModifySpotFleetRequestCommand).de(de_ModifySpotFleetRequestCommand).build() {\n static {\n __name(this, \"ModifySpotFleetRequestCommand\");\n }\n};\n\n// src/commands/ModifySubnetAttributeCommand.ts\n\n\n\nvar ModifySubnetAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifySubnetAttribute\", {}).n(\"EC2Client\", \"ModifySubnetAttributeCommand\").f(void 0, void 0).ser(se_ModifySubnetAttributeCommand).de(de_ModifySubnetAttributeCommand).build() {\n static {\n __name(this, \"ModifySubnetAttributeCommand\");\n }\n};\n\n// src/commands/ModifyTrafficMirrorFilterNetworkServicesCommand.ts\n\n\n\nvar ModifyTrafficMirrorFilterNetworkServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTrafficMirrorFilterNetworkServices\", {}).n(\"EC2Client\", \"ModifyTrafficMirrorFilterNetworkServicesCommand\").f(void 0, void 0).ser(se_ModifyTrafficMirrorFilterNetworkServicesCommand).de(de_ModifyTrafficMirrorFilterNetworkServicesCommand).build() {\n static {\n __name(this, \"ModifyTrafficMirrorFilterNetworkServicesCommand\");\n }\n};\n\n// src/commands/ModifyTrafficMirrorFilterRuleCommand.ts\n\n\n\nvar ModifyTrafficMirrorFilterRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTrafficMirrorFilterRule\", {}).n(\"EC2Client\", \"ModifyTrafficMirrorFilterRuleCommand\").f(void 0, void 0).ser(se_ModifyTrafficMirrorFilterRuleCommand).de(de_ModifyTrafficMirrorFilterRuleCommand).build() {\n static {\n __name(this, \"ModifyTrafficMirrorFilterRuleCommand\");\n }\n};\n\n// src/commands/ModifyTrafficMirrorSessionCommand.ts\n\n\n\nvar ModifyTrafficMirrorSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTrafficMirrorSession\", {}).n(\"EC2Client\", \"ModifyTrafficMirrorSessionCommand\").f(void 0, void 0).ser(se_ModifyTrafficMirrorSessionCommand).de(de_ModifyTrafficMirrorSessionCommand).build() {\n static {\n __name(this, \"ModifyTrafficMirrorSessionCommand\");\n }\n};\n\n// src/commands/ModifyTransitGatewayCommand.ts\n\n\n\nvar ModifyTransitGatewayCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTransitGateway\", {}).n(\"EC2Client\", \"ModifyTransitGatewayCommand\").f(void 0, void 0).ser(se_ModifyTransitGatewayCommand).de(de_ModifyTransitGatewayCommand).build() {\n static {\n __name(this, \"ModifyTransitGatewayCommand\");\n }\n};\n\n// src/commands/ModifyTransitGatewayPrefixListReferenceCommand.ts\n\n\n\nvar ModifyTransitGatewayPrefixListReferenceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTransitGatewayPrefixListReference\", {}).n(\"EC2Client\", \"ModifyTransitGatewayPrefixListReferenceCommand\").f(void 0, void 0).ser(se_ModifyTransitGatewayPrefixListReferenceCommand).de(de_ModifyTransitGatewayPrefixListReferenceCommand).build() {\n static {\n __name(this, \"ModifyTransitGatewayPrefixListReferenceCommand\");\n }\n};\n\n// src/commands/ModifyTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar ModifyTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"ModifyTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_ModifyTransitGatewayVpcAttachmentCommand).de(de_ModifyTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"ModifyTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessEndpointCommand.ts\n\n\n\nvar ModifyVerifiedAccessEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessEndpoint\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessEndpointCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessEndpointCommand).de(de_ModifyVerifiedAccessEndpointCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessEndpointCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessEndpointPolicyCommand.ts\n\n\n\nvar ModifyVerifiedAccessEndpointPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessEndpointPolicy\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessEndpointPolicyCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessEndpointPolicyCommand).de(de_ModifyVerifiedAccessEndpointPolicyCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessEndpointPolicyCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessGroupCommand.ts\n\n\n\nvar ModifyVerifiedAccessGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessGroup\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessGroupCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessGroupCommand).de(de_ModifyVerifiedAccessGroupCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessGroupCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessGroupPolicyCommand.ts\n\n\n\nvar ModifyVerifiedAccessGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessGroupPolicy\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessGroupPolicyCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessGroupPolicyCommand).de(de_ModifyVerifiedAccessGroupPolicyCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessGroupPolicyCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessInstanceCommand.ts\n\n\n\nvar ModifyVerifiedAccessInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessInstance\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessInstanceCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessInstanceCommand).de(de_ModifyVerifiedAccessInstanceCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessInstanceCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessInstanceLoggingConfigurationCommand.ts\n\n\n\nvar ModifyVerifiedAccessInstanceLoggingConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessInstanceLoggingConfiguration\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessInstanceLoggingConfigurationCommand\").f(void 0, void 0).ser(se_ModifyVerifiedAccessInstanceLoggingConfigurationCommand).de(de_ModifyVerifiedAccessInstanceLoggingConfigurationCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessInstanceLoggingConfigurationCommand\");\n }\n};\n\n// src/commands/ModifyVerifiedAccessTrustProviderCommand.ts\n\n\n\nvar ModifyVerifiedAccessTrustProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVerifiedAccessTrustProvider\", {}).n(\"EC2Client\", \"ModifyVerifiedAccessTrustProviderCommand\").f(\n ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog\n).ser(se_ModifyVerifiedAccessTrustProviderCommand).de(de_ModifyVerifiedAccessTrustProviderCommand).build() {\n static {\n __name(this, \"ModifyVerifiedAccessTrustProviderCommand\");\n }\n};\n\n// src/commands/ModifyVolumeAttributeCommand.ts\n\n\n\nvar ModifyVolumeAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVolumeAttribute\", {}).n(\"EC2Client\", \"ModifyVolumeAttributeCommand\").f(void 0, void 0).ser(se_ModifyVolumeAttributeCommand).de(de_ModifyVolumeAttributeCommand).build() {\n static {\n __name(this, \"ModifyVolumeAttributeCommand\");\n }\n};\n\n// src/commands/ModifyVolumeCommand.ts\n\n\n\nvar ModifyVolumeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVolume\", {}).n(\"EC2Client\", \"ModifyVolumeCommand\").f(void 0, void 0).ser(se_ModifyVolumeCommand).de(de_ModifyVolumeCommand).build() {\n static {\n __name(this, \"ModifyVolumeCommand\");\n }\n};\n\n// src/commands/ModifyVpcAttributeCommand.ts\n\n\n\nvar ModifyVpcAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcAttribute\", {}).n(\"EC2Client\", \"ModifyVpcAttributeCommand\").f(void 0, void 0).ser(se_ModifyVpcAttributeCommand).de(de_ModifyVpcAttributeCommand).build() {\n static {\n __name(this, \"ModifyVpcAttributeCommand\");\n }\n};\n\n// src/commands/ModifyVpcBlockPublicAccessExclusionCommand.ts\n\n\n\nvar ModifyVpcBlockPublicAccessExclusionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcBlockPublicAccessExclusion\", {}).n(\"EC2Client\", \"ModifyVpcBlockPublicAccessExclusionCommand\").f(void 0, void 0).ser(se_ModifyVpcBlockPublicAccessExclusionCommand).de(de_ModifyVpcBlockPublicAccessExclusionCommand).build() {\n static {\n __name(this, \"ModifyVpcBlockPublicAccessExclusionCommand\");\n }\n};\n\n// src/commands/ModifyVpcBlockPublicAccessOptionsCommand.ts\n\n\n\nvar ModifyVpcBlockPublicAccessOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcBlockPublicAccessOptions\", {}).n(\"EC2Client\", \"ModifyVpcBlockPublicAccessOptionsCommand\").f(void 0, void 0).ser(se_ModifyVpcBlockPublicAccessOptionsCommand).de(de_ModifyVpcBlockPublicAccessOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpcBlockPublicAccessOptionsCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointCommand.ts\n\n\n\nvar ModifyVpcEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpoint\", {}).n(\"EC2Client\", \"ModifyVpcEndpointCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointCommand).de(de_ModifyVpcEndpointCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointConnectionNotificationCommand.ts\n\n\n\nvar ModifyVpcEndpointConnectionNotificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointConnectionNotification\", {}).n(\"EC2Client\", \"ModifyVpcEndpointConnectionNotificationCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointConnectionNotificationCommand).de(de_ModifyVpcEndpointConnectionNotificationCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointConnectionNotificationCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointServiceConfigurationCommand.ts\n\n\n\nvar ModifyVpcEndpointServiceConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointServiceConfiguration\", {}).n(\"EC2Client\", \"ModifyVpcEndpointServiceConfigurationCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointServiceConfigurationCommand).de(de_ModifyVpcEndpointServiceConfigurationCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointServiceConfigurationCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointServicePayerResponsibilityCommand.ts\n\n\n\nvar ModifyVpcEndpointServicePayerResponsibilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointServicePayerResponsibility\", {}).n(\"EC2Client\", \"ModifyVpcEndpointServicePayerResponsibilityCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointServicePayerResponsibilityCommand).de(de_ModifyVpcEndpointServicePayerResponsibilityCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointServicePayerResponsibilityCommand\");\n }\n};\n\n// src/commands/ModifyVpcEndpointServicePermissionsCommand.ts\n\n\n\nvar ModifyVpcEndpointServicePermissionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcEndpointServicePermissions\", {}).n(\"EC2Client\", \"ModifyVpcEndpointServicePermissionsCommand\").f(void 0, void 0).ser(se_ModifyVpcEndpointServicePermissionsCommand).de(de_ModifyVpcEndpointServicePermissionsCommand).build() {\n static {\n __name(this, \"ModifyVpcEndpointServicePermissionsCommand\");\n }\n};\n\n// src/commands/ModifyVpcPeeringConnectionOptionsCommand.ts\n\n\n\nvar ModifyVpcPeeringConnectionOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcPeeringConnectionOptions\", {}).n(\"EC2Client\", \"ModifyVpcPeeringConnectionOptionsCommand\").f(void 0, void 0).ser(se_ModifyVpcPeeringConnectionOptionsCommand).de(de_ModifyVpcPeeringConnectionOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpcPeeringConnectionOptionsCommand\");\n }\n};\n\n// src/commands/ModifyVpcTenancyCommand.ts\n\n\n\nvar ModifyVpcTenancyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpcTenancy\", {}).n(\"EC2Client\", \"ModifyVpcTenancyCommand\").f(void 0, void 0).ser(se_ModifyVpcTenancyCommand).de(de_ModifyVpcTenancyCommand).build() {\n static {\n __name(this, \"ModifyVpcTenancyCommand\");\n }\n};\n\n// src/commands/ModifyVpnConnectionCommand.ts\n\n\n\nvar ModifyVpnConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnConnection\", {}).n(\"EC2Client\", \"ModifyVpnConnectionCommand\").f(void 0, ModifyVpnConnectionResultFilterSensitiveLog).ser(se_ModifyVpnConnectionCommand).de(de_ModifyVpnConnectionCommand).build() {\n static {\n __name(this, \"ModifyVpnConnectionCommand\");\n }\n};\n\n// src/commands/ModifyVpnConnectionOptionsCommand.ts\n\n\n\nvar ModifyVpnConnectionOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnConnectionOptions\", {}).n(\"EC2Client\", \"ModifyVpnConnectionOptionsCommand\").f(void 0, ModifyVpnConnectionOptionsResultFilterSensitiveLog).ser(se_ModifyVpnConnectionOptionsCommand).de(de_ModifyVpnConnectionOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpnConnectionOptionsCommand\");\n }\n};\n\n// src/commands/ModifyVpnTunnelCertificateCommand.ts\n\n\n\nvar ModifyVpnTunnelCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnTunnelCertificate\", {}).n(\"EC2Client\", \"ModifyVpnTunnelCertificateCommand\").f(void 0, ModifyVpnTunnelCertificateResultFilterSensitiveLog).ser(se_ModifyVpnTunnelCertificateCommand).de(de_ModifyVpnTunnelCertificateCommand).build() {\n static {\n __name(this, \"ModifyVpnTunnelCertificateCommand\");\n }\n};\n\n// src/commands/ModifyVpnTunnelOptionsCommand.ts\n\n\n\nvar ModifyVpnTunnelOptionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ModifyVpnTunnelOptions\", {}).n(\"EC2Client\", \"ModifyVpnTunnelOptionsCommand\").f(ModifyVpnTunnelOptionsRequestFilterSensitiveLog, ModifyVpnTunnelOptionsResultFilterSensitiveLog).ser(se_ModifyVpnTunnelOptionsCommand).de(de_ModifyVpnTunnelOptionsCommand).build() {\n static {\n __name(this, \"ModifyVpnTunnelOptionsCommand\");\n }\n};\n\n// src/commands/MonitorInstancesCommand.ts\n\n\n\nvar MonitorInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MonitorInstances\", {}).n(\"EC2Client\", \"MonitorInstancesCommand\").f(void 0, void 0).ser(se_MonitorInstancesCommand).de(de_MonitorInstancesCommand).build() {\n static {\n __name(this, \"MonitorInstancesCommand\");\n }\n};\n\n// src/commands/MoveAddressToVpcCommand.ts\n\n\n\nvar MoveAddressToVpcCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MoveAddressToVpc\", {}).n(\"EC2Client\", \"MoveAddressToVpcCommand\").f(void 0, void 0).ser(se_MoveAddressToVpcCommand).de(de_MoveAddressToVpcCommand).build() {\n static {\n __name(this, \"MoveAddressToVpcCommand\");\n }\n};\n\n// src/commands/MoveByoipCidrToIpamCommand.ts\n\n\n\nvar MoveByoipCidrToIpamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MoveByoipCidrToIpam\", {}).n(\"EC2Client\", \"MoveByoipCidrToIpamCommand\").f(void 0, void 0).ser(se_MoveByoipCidrToIpamCommand).de(de_MoveByoipCidrToIpamCommand).build() {\n static {\n __name(this, \"MoveByoipCidrToIpamCommand\");\n }\n};\n\n// src/commands/MoveCapacityReservationInstancesCommand.ts\n\n\n\nvar MoveCapacityReservationInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"MoveCapacityReservationInstances\", {}).n(\"EC2Client\", \"MoveCapacityReservationInstancesCommand\").f(void 0, void 0).ser(se_MoveCapacityReservationInstancesCommand).de(de_MoveCapacityReservationInstancesCommand).build() {\n static {\n __name(this, \"MoveCapacityReservationInstancesCommand\");\n }\n};\n\n// src/commands/ProvisionByoipCidrCommand.ts\n\n\n\nvar ProvisionByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionByoipCidr\", {}).n(\"EC2Client\", \"ProvisionByoipCidrCommand\").f(void 0, void 0).ser(se_ProvisionByoipCidrCommand).de(de_ProvisionByoipCidrCommand).build() {\n static {\n __name(this, \"ProvisionByoipCidrCommand\");\n }\n};\n\n// src/commands/ProvisionIpamByoasnCommand.ts\n\n\n\nvar ProvisionIpamByoasnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionIpamByoasn\", {}).n(\"EC2Client\", \"ProvisionIpamByoasnCommand\").f(void 0, void 0).ser(se_ProvisionIpamByoasnCommand).de(de_ProvisionIpamByoasnCommand).build() {\n static {\n __name(this, \"ProvisionIpamByoasnCommand\");\n }\n};\n\n// src/commands/ProvisionIpamPoolCidrCommand.ts\n\n\n\nvar ProvisionIpamPoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionIpamPoolCidr\", {}).n(\"EC2Client\", \"ProvisionIpamPoolCidrCommand\").f(void 0, void 0).ser(se_ProvisionIpamPoolCidrCommand).de(de_ProvisionIpamPoolCidrCommand).build() {\n static {\n __name(this, \"ProvisionIpamPoolCidrCommand\");\n }\n};\n\n// src/commands/ProvisionPublicIpv4PoolCidrCommand.ts\n\n\n\nvar ProvisionPublicIpv4PoolCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ProvisionPublicIpv4PoolCidr\", {}).n(\"EC2Client\", \"ProvisionPublicIpv4PoolCidrCommand\").f(void 0, void 0).ser(se_ProvisionPublicIpv4PoolCidrCommand).de(de_ProvisionPublicIpv4PoolCidrCommand).build() {\n static {\n __name(this, \"ProvisionPublicIpv4PoolCidrCommand\");\n }\n};\n\n// src/commands/PurchaseCapacityBlockCommand.ts\n\n\n\nvar PurchaseCapacityBlockCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseCapacityBlock\", {}).n(\"EC2Client\", \"PurchaseCapacityBlockCommand\").f(void 0, void 0).ser(se_PurchaseCapacityBlockCommand).de(de_PurchaseCapacityBlockCommand).build() {\n static {\n __name(this, \"PurchaseCapacityBlockCommand\");\n }\n};\n\n// src/commands/PurchaseCapacityBlockExtensionCommand.ts\n\n\n\nvar PurchaseCapacityBlockExtensionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseCapacityBlockExtension\", {}).n(\"EC2Client\", \"PurchaseCapacityBlockExtensionCommand\").f(void 0, void 0).ser(se_PurchaseCapacityBlockExtensionCommand).de(de_PurchaseCapacityBlockExtensionCommand).build() {\n static {\n __name(this, \"PurchaseCapacityBlockExtensionCommand\");\n }\n};\n\n// src/commands/PurchaseHostReservationCommand.ts\n\n\n\nvar PurchaseHostReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseHostReservation\", {}).n(\"EC2Client\", \"PurchaseHostReservationCommand\").f(void 0, void 0).ser(se_PurchaseHostReservationCommand).de(de_PurchaseHostReservationCommand).build() {\n static {\n __name(this, \"PurchaseHostReservationCommand\");\n }\n};\n\n// src/commands/PurchaseReservedInstancesOfferingCommand.ts\n\n\n\nvar PurchaseReservedInstancesOfferingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseReservedInstancesOffering\", {}).n(\"EC2Client\", \"PurchaseReservedInstancesOfferingCommand\").f(void 0, void 0).ser(se_PurchaseReservedInstancesOfferingCommand).de(de_PurchaseReservedInstancesOfferingCommand).build() {\n static {\n __name(this, \"PurchaseReservedInstancesOfferingCommand\");\n }\n};\n\n// src/commands/PurchaseScheduledInstancesCommand.ts\n\n\n\nvar PurchaseScheduledInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"PurchaseScheduledInstances\", {}).n(\"EC2Client\", \"PurchaseScheduledInstancesCommand\").f(void 0, void 0).ser(se_PurchaseScheduledInstancesCommand).de(de_PurchaseScheduledInstancesCommand).build() {\n static {\n __name(this, \"PurchaseScheduledInstancesCommand\");\n }\n};\n\n// src/commands/RebootInstancesCommand.ts\n\n\n\nvar RebootInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RebootInstances\", {}).n(\"EC2Client\", \"RebootInstancesCommand\").f(void 0, void 0).ser(se_RebootInstancesCommand).de(de_RebootInstancesCommand).build() {\n static {\n __name(this, \"RebootInstancesCommand\");\n }\n};\n\n// src/commands/RegisterImageCommand.ts\n\n\n\nvar RegisterImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterImage\", {}).n(\"EC2Client\", \"RegisterImageCommand\").f(void 0, void 0).ser(se_RegisterImageCommand).de(de_RegisterImageCommand).build() {\n static {\n __name(this, \"RegisterImageCommand\");\n }\n};\n\n// src/commands/RegisterInstanceEventNotificationAttributesCommand.ts\n\n\n\nvar RegisterInstanceEventNotificationAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterInstanceEventNotificationAttributes\", {}).n(\"EC2Client\", \"RegisterInstanceEventNotificationAttributesCommand\").f(void 0, void 0).ser(se_RegisterInstanceEventNotificationAttributesCommand).de(de_RegisterInstanceEventNotificationAttributesCommand).build() {\n static {\n __name(this, \"RegisterInstanceEventNotificationAttributesCommand\");\n }\n};\n\n// src/commands/RegisterTransitGatewayMulticastGroupMembersCommand.ts\n\n\n\nvar RegisterTransitGatewayMulticastGroupMembersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterTransitGatewayMulticastGroupMembers\", {}).n(\"EC2Client\", \"RegisterTransitGatewayMulticastGroupMembersCommand\").f(void 0, void 0).ser(se_RegisterTransitGatewayMulticastGroupMembersCommand).de(de_RegisterTransitGatewayMulticastGroupMembersCommand).build() {\n static {\n __name(this, \"RegisterTransitGatewayMulticastGroupMembersCommand\");\n }\n};\n\n// src/commands/RegisterTransitGatewayMulticastGroupSourcesCommand.ts\n\n\n\nvar RegisterTransitGatewayMulticastGroupSourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RegisterTransitGatewayMulticastGroupSources\", {}).n(\"EC2Client\", \"RegisterTransitGatewayMulticastGroupSourcesCommand\").f(void 0, void 0).ser(se_RegisterTransitGatewayMulticastGroupSourcesCommand).de(de_RegisterTransitGatewayMulticastGroupSourcesCommand).build() {\n static {\n __name(this, \"RegisterTransitGatewayMulticastGroupSourcesCommand\");\n }\n};\n\n// src/commands/RejectCapacityReservationBillingOwnershipCommand.ts\n\n\n\nvar RejectCapacityReservationBillingOwnershipCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectCapacityReservationBillingOwnership\", {}).n(\"EC2Client\", \"RejectCapacityReservationBillingOwnershipCommand\").f(void 0, void 0).ser(se_RejectCapacityReservationBillingOwnershipCommand).de(de_RejectCapacityReservationBillingOwnershipCommand).build() {\n static {\n __name(this, \"RejectCapacityReservationBillingOwnershipCommand\");\n }\n};\n\n// src/commands/RejectTransitGatewayMulticastDomainAssociationsCommand.ts\n\n\n\nvar RejectTransitGatewayMulticastDomainAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectTransitGatewayMulticastDomainAssociations\", {}).n(\"EC2Client\", \"RejectTransitGatewayMulticastDomainAssociationsCommand\").f(void 0, void 0).ser(se_RejectTransitGatewayMulticastDomainAssociationsCommand).de(de_RejectTransitGatewayMulticastDomainAssociationsCommand).build() {\n static {\n __name(this, \"RejectTransitGatewayMulticastDomainAssociationsCommand\");\n }\n};\n\n// src/commands/RejectTransitGatewayPeeringAttachmentCommand.ts\n\n\n\nvar RejectTransitGatewayPeeringAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectTransitGatewayPeeringAttachment\", {}).n(\"EC2Client\", \"RejectTransitGatewayPeeringAttachmentCommand\").f(void 0, void 0).ser(se_RejectTransitGatewayPeeringAttachmentCommand).de(de_RejectTransitGatewayPeeringAttachmentCommand).build() {\n static {\n __name(this, \"RejectTransitGatewayPeeringAttachmentCommand\");\n }\n};\n\n// src/commands/RejectTransitGatewayVpcAttachmentCommand.ts\n\n\n\nvar RejectTransitGatewayVpcAttachmentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectTransitGatewayVpcAttachment\", {}).n(\"EC2Client\", \"RejectTransitGatewayVpcAttachmentCommand\").f(void 0, void 0).ser(se_RejectTransitGatewayVpcAttachmentCommand).de(de_RejectTransitGatewayVpcAttachmentCommand).build() {\n static {\n __name(this, \"RejectTransitGatewayVpcAttachmentCommand\");\n }\n};\n\n// src/commands/RejectVpcEndpointConnectionsCommand.ts\n\n\n\nvar RejectVpcEndpointConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectVpcEndpointConnections\", {}).n(\"EC2Client\", \"RejectVpcEndpointConnectionsCommand\").f(void 0, void 0).ser(se_RejectVpcEndpointConnectionsCommand).de(de_RejectVpcEndpointConnectionsCommand).build() {\n static {\n __name(this, \"RejectVpcEndpointConnectionsCommand\");\n }\n};\n\n// src/commands/RejectVpcPeeringConnectionCommand.ts\n\n\n\nvar RejectVpcPeeringConnectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RejectVpcPeeringConnection\", {}).n(\"EC2Client\", \"RejectVpcPeeringConnectionCommand\").f(void 0, void 0).ser(se_RejectVpcPeeringConnectionCommand).de(de_RejectVpcPeeringConnectionCommand).build() {\n static {\n __name(this, \"RejectVpcPeeringConnectionCommand\");\n }\n};\n\n// src/commands/ReleaseAddressCommand.ts\n\n\n\nvar ReleaseAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReleaseAddress\", {}).n(\"EC2Client\", \"ReleaseAddressCommand\").f(void 0, void 0).ser(se_ReleaseAddressCommand).de(de_ReleaseAddressCommand).build() {\n static {\n __name(this, \"ReleaseAddressCommand\");\n }\n};\n\n// src/commands/ReleaseHostsCommand.ts\n\n\n\nvar ReleaseHostsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReleaseHosts\", {}).n(\"EC2Client\", \"ReleaseHostsCommand\").f(void 0, void 0).ser(se_ReleaseHostsCommand).de(de_ReleaseHostsCommand).build() {\n static {\n __name(this, \"ReleaseHostsCommand\");\n }\n};\n\n// src/commands/ReleaseIpamPoolAllocationCommand.ts\n\n\n\nvar ReleaseIpamPoolAllocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReleaseIpamPoolAllocation\", {}).n(\"EC2Client\", \"ReleaseIpamPoolAllocationCommand\").f(void 0, void 0).ser(se_ReleaseIpamPoolAllocationCommand).de(de_ReleaseIpamPoolAllocationCommand).build() {\n static {\n __name(this, \"ReleaseIpamPoolAllocationCommand\");\n }\n};\n\n// src/commands/ReplaceIamInstanceProfileAssociationCommand.ts\n\n\n\nvar ReplaceIamInstanceProfileAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceIamInstanceProfileAssociation\", {}).n(\"EC2Client\", \"ReplaceIamInstanceProfileAssociationCommand\").f(void 0, void 0).ser(se_ReplaceIamInstanceProfileAssociationCommand).de(de_ReplaceIamInstanceProfileAssociationCommand).build() {\n static {\n __name(this, \"ReplaceIamInstanceProfileAssociationCommand\");\n }\n};\n\n// src/commands/ReplaceImageCriteriaInAllowedImagesSettingsCommand.ts\n\n\n\nvar ReplaceImageCriteriaInAllowedImagesSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceImageCriteriaInAllowedImagesSettings\", {}).n(\"EC2Client\", \"ReplaceImageCriteriaInAllowedImagesSettingsCommand\").f(void 0, void 0).ser(se_ReplaceImageCriteriaInAllowedImagesSettingsCommand).de(de_ReplaceImageCriteriaInAllowedImagesSettingsCommand).build() {\n static {\n __name(this, \"ReplaceImageCriteriaInAllowedImagesSettingsCommand\");\n }\n};\n\n// src/commands/ReplaceNetworkAclAssociationCommand.ts\n\n\n\nvar ReplaceNetworkAclAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceNetworkAclAssociation\", {}).n(\"EC2Client\", \"ReplaceNetworkAclAssociationCommand\").f(void 0, void 0).ser(se_ReplaceNetworkAclAssociationCommand).de(de_ReplaceNetworkAclAssociationCommand).build() {\n static {\n __name(this, \"ReplaceNetworkAclAssociationCommand\");\n }\n};\n\n// src/commands/ReplaceNetworkAclEntryCommand.ts\n\n\n\nvar ReplaceNetworkAclEntryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceNetworkAclEntry\", {}).n(\"EC2Client\", \"ReplaceNetworkAclEntryCommand\").f(void 0, void 0).ser(se_ReplaceNetworkAclEntryCommand).de(de_ReplaceNetworkAclEntryCommand).build() {\n static {\n __name(this, \"ReplaceNetworkAclEntryCommand\");\n }\n};\n\n// src/commands/ReplaceRouteCommand.ts\n\n\n\nvar ReplaceRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceRoute\", {}).n(\"EC2Client\", \"ReplaceRouteCommand\").f(void 0, void 0).ser(se_ReplaceRouteCommand).de(de_ReplaceRouteCommand).build() {\n static {\n __name(this, \"ReplaceRouteCommand\");\n }\n};\n\n// src/commands/ReplaceRouteTableAssociationCommand.ts\n\n\n\nvar ReplaceRouteTableAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceRouteTableAssociation\", {}).n(\"EC2Client\", \"ReplaceRouteTableAssociationCommand\").f(void 0, void 0).ser(se_ReplaceRouteTableAssociationCommand).de(de_ReplaceRouteTableAssociationCommand).build() {\n static {\n __name(this, \"ReplaceRouteTableAssociationCommand\");\n }\n};\n\n// src/commands/ReplaceTransitGatewayRouteCommand.ts\n\n\n\nvar ReplaceTransitGatewayRouteCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceTransitGatewayRoute\", {}).n(\"EC2Client\", \"ReplaceTransitGatewayRouteCommand\").f(void 0, void 0).ser(se_ReplaceTransitGatewayRouteCommand).de(de_ReplaceTransitGatewayRouteCommand).build() {\n static {\n __name(this, \"ReplaceTransitGatewayRouteCommand\");\n }\n};\n\n// src/commands/ReplaceVpnTunnelCommand.ts\n\n\n\nvar ReplaceVpnTunnelCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReplaceVpnTunnel\", {}).n(\"EC2Client\", \"ReplaceVpnTunnelCommand\").f(void 0, void 0).ser(se_ReplaceVpnTunnelCommand).de(de_ReplaceVpnTunnelCommand).build() {\n static {\n __name(this, \"ReplaceVpnTunnelCommand\");\n }\n};\n\n// src/commands/ReportInstanceStatusCommand.ts\n\n\n\nvar ReportInstanceStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ReportInstanceStatus\", {}).n(\"EC2Client\", \"ReportInstanceStatusCommand\").f(ReportInstanceStatusRequestFilterSensitiveLog, void 0).ser(se_ReportInstanceStatusCommand).de(de_ReportInstanceStatusCommand).build() {\n static {\n __name(this, \"ReportInstanceStatusCommand\");\n }\n};\n\n// src/commands/RequestSpotFleetCommand.ts\n\n\n\n\n// src/models/models_8.ts\n\nvar ResetFpgaImageAttributeName = {\n loadPermission: \"loadPermission\"\n};\nvar ResetImageAttributeName = {\n launchPermission: \"launchPermission\"\n};\nvar MembershipType = {\n igmp: \"igmp\",\n static: \"static\"\n};\nvar RequestSpotFleetRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotFleetRequestConfig && {\n SpotFleetRequestConfig: SpotFleetRequestConfigDataFilterSensitiveLog(obj.SpotFleetRequestConfig)\n }\n}), \"RequestSpotFleetRequestFilterSensitiveLog\");\nvar RequestSpotLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"RequestSpotLaunchSpecificationFilterSensitiveLog\");\nvar RequestSpotInstancesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && {\n LaunchSpecification: RequestSpotLaunchSpecificationFilterSensitiveLog(obj.LaunchSpecification)\n }\n}), \"RequestSpotInstancesRequestFilterSensitiveLog\");\nvar RequestSpotInstancesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SpotInstanceRequests && {\n SpotInstanceRequests: obj.SpotInstanceRequests.map((item) => SpotInstanceRequestFilterSensitiveLog(item))\n }\n}), \"RequestSpotInstancesResultFilterSensitiveLog\");\nvar RunInstancesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.UserData && { UserData: import_smithy_client.SENSITIVE_STRING }\n}), \"RunInstancesRequestFilterSensitiveLog\");\nvar ScheduledInstancesLaunchSpecificationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"ScheduledInstancesLaunchSpecificationFilterSensitiveLog\");\nvar RunScheduledInstancesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.LaunchSpecification && { LaunchSpecification: import_smithy_client.SENSITIVE_STRING }\n}), \"RunScheduledInstancesRequestFilterSensitiveLog\");\n\n// src/commands/RequestSpotFleetCommand.ts\nvar RequestSpotFleetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RequestSpotFleet\", {}).n(\"EC2Client\", \"RequestSpotFleetCommand\").f(RequestSpotFleetRequestFilterSensitiveLog, void 0).ser(se_RequestSpotFleetCommand).de(de_RequestSpotFleetCommand).build() {\n static {\n __name(this, \"RequestSpotFleetCommand\");\n }\n};\n\n// src/commands/RequestSpotInstancesCommand.ts\n\n\n\nvar RequestSpotInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RequestSpotInstances\", {}).n(\"EC2Client\", \"RequestSpotInstancesCommand\").f(RequestSpotInstancesRequestFilterSensitiveLog, RequestSpotInstancesResultFilterSensitiveLog).ser(se_RequestSpotInstancesCommand).de(de_RequestSpotInstancesCommand).build() {\n static {\n __name(this, \"RequestSpotInstancesCommand\");\n }\n};\n\n// src/commands/ResetAddressAttributeCommand.ts\n\n\n\nvar ResetAddressAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetAddressAttribute\", {}).n(\"EC2Client\", \"ResetAddressAttributeCommand\").f(void 0, void 0).ser(se_ResetAddressAttributeCommand).de(de_ResetAddressAttributeCommand).build() {\n static {\n __name(this, \"ResetAddressAttributeCommand\");\n }\n};\n\n// src/commands/ResetEbsDefaultKmsKeyIdCommand.ts\n\n\n\nvar ResetEbsDefaultKmsKeyIdCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetEbsDefaultKmsKeyId\", {}).n(\"EC2Client\", \"ResetEbsDefaultKmsKeyIdCommand\").f(void 0, void 0).ser(se_ResetEbsDefaultKmsKeyIdCommand).de(de_ResetEbsDefaultKmsKeyIdCommand).build() {\n static {\n __name(this, \"ResetEbsDefaultKmsKeyIdCommand\");\n }\n};\n\n// src/commands/ResetFpgaImageAttributeCommand.ts\n\n\n\nvar ResetFpgaImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetFpgaImageAttribute\", {}).n(\"EC2Client\", \"ResetFpgaImageAttributeCommand\").f(void 0, void 0).ser(se_ResetFpgaImageAttributeCommand).de(de_ResetFpgaImageAttributeCommand).build() {\n static {\n __name(this, \"ResetFpgaImageAttributeCommand\");\n }\n};\n\n// src/commands/ResetImageAttributeCommand.ts\n\n\n\nvar ResetImageAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetImageAttribute\", {}).n(\"EC2Client\", \"ResetImageAttributeCommand\").f(void 0, void 0).ser(se_ResetImageAttributeCommand).de(de_ResetImageAttributeCommand).build() {\n static {\n __name(this, \"ResetImageAttributeCommand\");\n }\n};\n\n// src/commands/ResetInstanceAttributeCommand.ts\n\n\n\nvar ResetInstanceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetInstanceAttribute\", {}).n(\"EC2Client\", \"ResetInstanceAttributeCommand\").f(void 0, void 0).ser(se_ResetInstanceAttributeCommand).de(de_ResetInstanceAttributeCommand).build() {\n static {\n __name(this, \"ResetInstanceAttributeCommand\");\n }\n};\n\n// src/commands/ResetNetworkInterfaceAttributeCommand.ts\n\n\n\nvar ResetNetworkInterfaceAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetNetworkInterfaceAttribute\", {}).n(\"EC2Client\", \"ResetNetworkInterfaceAttributeCommand\").f(void 0, void 0).ser(se_ResetNetworkInterfaceAttributeCommand).de(de_ResetNetworkInterfaceAttributeCommand).build() {\n static {\n __name(this, \"ResetNetworkInterfaceAttributeCommand\");\n }\n};\n\n// src/commands/ResetSnapshotAttributeCommand.ts\n\n\n\nvar ResetSnapshotAttributeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"ResetSnapshotAttribute\", {}).n(\"EC2Client\", \"ResetSnapshotAttributeCommand\").f(void 0, void 0).ser(se_ResetSnapshotAttributeCommand).de(de_ResetSnapshotAttributeCommand).build() {\n static {\n __name(this, \"ResetSnapshotAttributeCommand\");\n }\n};\n\n// src/commands/RestoreAddressToClassicCommand.ts\n\n\n\nvar RestoreAddressToClassicCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreAddressToClassic\", {}).n(\"EC2Client\", \"RestoreAddressToClassicCommand\").f(void 0, void 0).ser(se_RestoreAddressToClassicCommand).de(de_RestoreAddressToClassicCommand).build() {\n static {\n __name(this, \"RestoreAddressToClassicCommand\");\n }\n};\n\n// src/commands/RestoreImageFromRecycleBinCommand.ts\n\n\n\nvar RestoreImageFromRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreImageFromRecycleBin\", {}).n(\"EC2Client\", \"RestoreImageFromRecycleBinCommand\").f(void 0, void 0).ser(se_RestoreImageFromRecycleBinCommand).de(de_RestoreImageFromRecycleBinCommand).build() {\n static {\n __name(this, \"RestoreImageFromRecycleBinCommand\");\n }\n};\n\n// src/commands/RestoreManagedPrefixListVersionCommand.ts\n\n\n\nvar RestoreManagedPrefixListVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreManagedPrefixListVersion\", {}).n(\"EC2Client\", \"RestoreManagedPrefixListVersionCommand\").f(void 0, void 0).ser(se_RestoreManagedPrefixListVersionCommand).de(de_RestoreManagedPrefixListVersionCommand).build() {\n static {\n __name(this, \"RestoreManagedPrefixListVersionCommand\");\n }\n};\n\n// src/commands/RestoreSnapshotFromRecycleBinCommand.ts\n\n\n\nvar RestoreSnapshotFromRecycleBinCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreSnapshotFromRecycleBin\", {}).n(\"EC2Client\", \"RestoreSnapshotFromRecycleBinCommand\").f(void 0, void 0).ser(se_RestoreSnapshotFromRecycleBinCommand).de(de_RestoreSnapshotFromRecycleBinCommand).build() {\n static {\n __name(this, \"RestoreSnapshotFromRecycleBinCommand\");\n }\n};\n\n// src/commands/RestoreSnapshotTierCommand.ts\n\n\n\nvar RestoreSnapshotTierCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RestoreSnapshotTier\", {}).n(\"EC2Client\", \"RestoreSnapshotTierCommand\").f(void 0, void 0).ser(se_RestoreSnapshotTierCommand).de(de_RestoreSnapshotTierCommand).build() {\n static {\n __name(this, \"RestoreSnapshotTierCommand\");\n }\n};\n\n// src/commands/RevokeClientVpnIngressCommand.ts\n\n\n\nvar RevokeClientVpnIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RevokeClientVpnIngress\", {}).n(\"EC2Client\", \"RevokeClientVpnIngressCommand\").f(void 0, void 0).ser(se_RevokeClientVpnIngressCommand).de(de_RevokeClientVpnIngressCommand).build() {\n static {\n __name(this, \"RevokeClientVpnIngressCommand\");\n }\n};\n\n// src/commands/RevokeSecurityGroupEgressCommand.ts\n\n\n\nvar RevokeSecurityGroupEgressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RevokeSecurityGroupEgress\", {}).n(\"EC2Client\", \"RevokeSecurityGroupEgressCommand\").f(void 0, void 0).ser(se_RevokeSecurityGroupEgressCommand).de(de_RevokeSecurityGroupEgressCommand).build() {\n static {\n __name(this, \"RevokeSecurityGroupEgressCommand\");\n }\n};\n\n// src/commands/RevokeSecurityGroupIngressCommand.ts\n\n\n\nvar RevokeSecurityGroupIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RevokeSecurityGroupIngress\", {}).n(\"EC2Client\", \"RevokeSecurityGroupIngressCommand\").f(void 0, void 0).ser(se_RevokeSecurityGroupIngressCommand).de(de_RevokeSecurityGroupIngressCommand).build() {\n static {\n __name(this, \"RevokeSecurityGroupIngressCommand\");\n }\n};\n\n// src/commands/RunInstancesCommand.ts\n\n\n\nvar RunInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RunInstances\", {}).n(\"EC2Client\", \"RunInstancesCommand\").f(RunInstancesRequestFilterSensitiveLog, void 0).ser(se_RunInstancesCommand).de(de_RunInstancesCommand).build() {\n static {\n __name(this, \"RunInstancesCommand\");\n }\n};\n\n// src/commands/RunScheduledInstancesCommand.ts\n\n\n\nvar RunScheduledInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"RunScheduledInstances\", {}).n(\"EC2Client\", \"RunScheduledInstancesCommand\").f(RunScheduledInstancesRequestFilterSensitiveLog, void 0).ser(se_RunScheduledInstancesCommand).de(de_RunScheduledInstancesCommand).build() {\n static {\n __name(this, \"RunScheduledInstancesCommand\");\n }\n};\n\n// src/commands/SearchLocalGatewayRoutesCommand.ts\n\n\n\nvar SearchLocalGatewayRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SearchLocalGatewayRoutes\", {}).n(\"EC2Client\", \"SearchLocalGatewayRoutesCommand\").f(void 0, void 0).ser(se_SearchLocalGatewayRoutesCommand).de(de_SearchLocalGatewayRoutesCommand).build() {\n static {\n __name(this, \"SearchLocalGatewayRoutesCommand\");\n }\n};\n\n// src/commands/SearchTransitGatewayMulticastGroupsCommand.ts\n\n\n\nvar SearchTransitGatewayMulticastGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SearchTransitGatewayMulticastGroups\", {}).n(\"EC2Client\", \"SearchTransitGatewayMulticastGroupsCommand\").f(void 0, void 0).ser(se_SearchTransitGatewayMulticastGroupsCommand).de(de_SearchTransitGatewayMulticastGroupsCommand).build() {\n static {\n __name(this, \"SearchTransitGatewayMulticastGroupsCommand\");\n }\n};\n\n// src/commands/SearchTransitGatewayRoutesCommand.ts\n\n\n\nvar SearchTransitGatewayRoutesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SearchTransitGatewayRoutes\", {}).n(\"EC2Client\", \"SearchTransitGatewayRoutesCommand\").f(void 0, void 0).ser(se_SearchTransitGatewayRoutesCommand).de(de_SearchTransitGatewayRoutesCommand).build() {\n static {\n __name(this, \"SearchTransitGatewayRoutesCommand\");\n }\n};\n\n// src/commands/SendDiagnosticInterruptCommand.ts\n\n\n\nvar SendDiagnosticInterruptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"SendDiagnosticInterrupt\", {}).n(\"EC2Client\", \"SendDiagnosticInterruptCommand\").f(void 0, void 0).ser(se_SendDiagnosticInterruptCommand).de(de_SendDiagnosticInterruptCommand).build() {\n static {\n __name(this, \"SendDiagnosticInterruptCommand\");\n }\n};\n\n// src/commands/StartDeclarativePoliciesReportCommand.ts\n\n\n\nvar StartDeclarativePoliciesReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartDeclarativePoliciesReport\", {}).n(\"EC2Client\", \"StartDeclarativePoliciesReportCommand\").f(void 0, void 0).ser(se_StartDeclarativePoliciesReportCommand).de(de_StartDeclarativePoliciesReportCommand).build() {\n static {\n __name(this, \"StartDeclarativePoliciesReportCommand\");\n }\n};\n\n// src/commands/StartInstancesCommand.ts\n\n\n\nvar StartInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartInstances\", {}).n(\"EC2Client\", \"StartInstancesCommand\").f(void 0, void 0).ser(se_StartInstancesCommand).de(de_StartInstancesCommand).build() {\n static {\n __name(this, \"StartInstancesCommand\");\n }\n};\n\n// src/commands/StartNetworkInsightsAccessScopeAnalysisCommand.ts\n\n\n\nvar StartNetworkInsightsAccessScopeAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartNetworkInsightsAccessScopeAnalysis\", {}).n(\"EC2Client\", \"StartNetworkInsightsAccessScopeAnalysisCommand\").f(void 0, void 0).ser(se_StartNetworkInsightsAccessScopeAnalysisCommand).de(de_StartNetworkInsightsAccessScopeAnalysisCommand).build() {\n static {\n __name(this, \"StartNetworkInsightsAccessScopeAnalysisCommand\");\n }\n};\n\n// src/commands/StartNetworkInsightsAnalysisCommand.ts\n\n\n\nvar StartNetworkInsightsAnalysisCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartNetworkInsightsAnalysis\", {}).n(\"EC2Client\", \"StartNetworkInsightsAnalysisCommand\").f(void 0, void 0).ser(se_StartNetworkInsightsAnalysisCommand).de(de_StartNetworkInsightsAnalysisCommand).build() {\n static {\n __name(this, \"StartNetworkInsightsAnalysisCommand\");\n }\n};\n\n// src/commands/StartVpcEndpointServicePrivateDnsVerificationCommand.ts\n\n\n\nvar StartVpcEndpointServicePrivateDnsVerificationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StartVpcEndpointServicePrivateDnsVerification\", {}).n(\"EC2Client\", \"StartVpcEndpointServicePrivateDnsVerificationCommand\").f(void 0, void 0).ser(se_StartVpcEndpointServicePrivateDnsVerificationCommand).de(de_StartVpcEndpointServicePrivateDnsVerificationCommand).build() {\n static {\n __name(this, \"StartVpcEndpointServicePrivateDnsVerificationCommand\");\n }\n};\n\n// src/commands/StopInstancesCommand.ts\n\n\n\nvar StopInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"StopInstances\", {}).n(\"EC2Client\", \"StopInstancesCommand\").f(void 0, void 0).ser(se_StopInstancesCommand).de(de_StopInstancesCommand).build() {\n static {\n __name(this, \"StopInstancesCommand\");\n }\n};\n\n// src/commands/TerminateClientVpnConnectionsCommand.ts\n\n\n\nvar TerminateClientVpnConnectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"TerminateClientVpnConnections\", {}).n(\"EC2Client\", \"TerminateClientVpnConnectionsCommand\").f(void 0, void 0).ser(se_TerminateClientVpnConnectionsCommand).de(de_TerminateClientVpnConnectionsCommand).build() {\n static {\n __name(this, \"TerminateClientVpnConnectionsCommand\");\n }\n};\n\n// src/commands/TerminateInstancesCommand.ts\n\n\n\nvar TerminateInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"TerminateInstances\", {}).n(\"EC2Client\", \"TerminateInstancesCommand\").f(void 0, void 0).ser(se_TerminateInstancesCommand).de(de_TerminateInstancesCommand).build() {\n static {\n __name(this, \"TerminateInstancesCommand\");\n }\n};\n\n// src/commands/UnassignIpv6AddressesCommand.ts\n\n\n\nvar UnassignIpv6AddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnassignIpv6Addresses\", {}).n(\"EC2Client\", \"UnassignIpv6AddressesCommand\").f(void 0, void 0).ser(se_UnassignIpv6AddressesCommand).de(de_UnassignIpv6AddressesCommand).build() {\n static {\n __name(this, \"UnassignIpv6AddressesCommand\");\n }\n};\n\n// src/commands/UnassignPrivateIpAddressesCommand.ts\n\n\n\nvar UnassignPrivateIpAddressesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnassignPrivateIpAddresses\", {}).n(\"EC2Client\", \"UnassignPrivateIpAddressesCommand\").f(void 0, void 0).ser(se_UnassignPrivateIpAddressesCommand).de(de_UnassignPrivateIpAddressesCommand).build() {\n static {\n __name(this, \"UnassignPrivateIpAddressesCommand\");\n }\n};\n\n// src/commands/UnassignPrivateNatGatewayAddressCommand.ts\n\n\n\nvar UnassignPrivateNatGatewayAddressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnassignPrivateNatGatewayAddress\", {}).n(\"EC2Client\", \"UnassignPrivateNatGatewayAddressCommand\").f(void 0, void 0).ser(se_UnassignPrivateNatGatewayAddressCommand).de(de_UnassignPrivateNatGatewayAddressCommand).build() {\n static {\n __name(this, \"UnassignPrivateNatGatewayAddressCommand\");\n }\n};\n\n// src/commands/UnlockSnapshotCommand.ts\n\n\n\nvar UnlockSnapshotCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnlockSnapshot\", {}).n(\"EC2Client\", \"UnlockSnapshotCommand\").f(void 0, void 0).ser(se_UnlockSnapshotCommand).de(de_UnlockSnapshotCommand).build() {\n static {\n __name(this, \"UnlockSnapshotCommand\");\n }\n};\n\n// src/commands/UnmonitorInstancesCommand.ts\n\n\n\nvar UnmonitorInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UnmonitorInstances\", {}).n(\"EC2Client\", \"UnmonitorInstancesCommand\").f(void 0, void 0).ser(se_UnmonitorInstancesCommand).de(de_UnmonitorInstancesCommand).build() {\n static {\n __name(this, \"UnmonitorInstancesCommand\");\n }\n};\n\n// src/commands/UpdateSecurityGroupRuleDescriptionsEgressCommand.ts\n\n\n\nvar UpdateSecurityGroupRuleDescriptionsEgressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UpdateSecurityGroupRuleDescriptionsEgress\", {}).n(\"EC2Client\", \"UpdateSecurityGroupRuleDescriptionsEgressCommand\").f(void 0, void 0).ser(se_UpdateSecurityGroupRuleDescriptionsEgressCommand).de(de_UpdateSecurityGroupRuleDescriptionsEgressCommand).build() {\n static {\n __name(this, \"UpdateSecurityGroupRuleDescriptionsEgressCommand\");\n }\n};\n\n// src/commands/UpdateSecurityGroupRuleDescriptionsIngressCommand.ts\n\n\n\nvar UpdateSecurityGroupRuleDescriptionsIngressCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"UpdateSecurityGroupRuleDescriptionsIngress\", {}).n(\"EC2Client\", \"UpdateSecurityGroupRuleDescriptionsIngressCommand\").f(void 0, void 0).ser(se_UpdateSecurityGroupRuleDescriptionsIngressCommand).de(de_UpdateSecurityGroupRuleDescriptionsIngressCommand).build() {\n static {\n __name(this, \"UpdateSecurityGroupRuleDescriptionsIngressCommand\");\n }\n};\n\n// src/commands/WithdrawByoipCidrCommand.ts\n\n\n\nvar WithdrawByoipCidrCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2\", \"WithdrawByoipCidr\", {}).n(\"EC2Client\", \"WithdrawByoipCidrCommand\").f(void 0, void 0).ser(se_WithdrawByoipCidrCommand).de(de_WithdrawByoipCidrCommand).build() {\n static {\n __name(this, \"WithdrawByoipCidrCommand\");\n }\n};\n\n// src/EC2.ts\nvar commands = {\n AcceptAddressTransferCommand,\n AcceptCapacityReservationBillingOwnershipCommand,\n AcceptReservedInstancesExchangeQuoteCommand,\n AcceptTransitGatewayMulticastDomainAssociationsCommand,\n AcceptTransitGatewayPeeringAttachmentCommand,\n AcceptTransitGatewayVpcAttachmentCommand,\n AcceptVpcEndpointConnectionsCommand,\n AcceptVpcPeeringConnectionCommand,\n AdvertiseByoipCidrCommand,\n AllocateAddressCommand,\n AllocateHostsCommand,\n AllocateIpamPoolCidrCommand,\n ApplySecurityGroupsToClientVpnTargetNetworkCommand,\n AssignIpv6AddressesCommand,\n AssignPrivateIpAddressesCommand,\n AssignPrivateNatGatewayAddressCommand,\n AssociateAddressCommand,\n AssociateCapacityReservationBillingOwnerCommand,\n AssociateClientVpnTargetNetworkCommand,\n AssociateDhcpOptionsCommand,\n AssociateEnclaveCertificateIamRoleCommand,\n AssociateIamInstanceProfileCommand,\n AssociateInstanceEventWindowCommand,\n AssociateIpamByoasnCommand,\n AssociateIpamResourceDiscoveryCommand,\n AssociateNatGatewayAddressCommand,\n AssociateRouteServerCommand,\n AssociateRouteTableCommand,\n AssociateSecurityGroupVpcCommand,\n AssociateSubnetCidrBlockCommand,\n AssociateTransitGatewayMulticastDomainCommand,\n AssociateTransitGatewayPolicyTableCommand,\n AssociateTransitGatewayRouteTableCommand,\n AssociateTrunkInterfaceCommand,\n AssociateVpcCidrBlockCommand,\n AttachClassicLinkVpcCommand,\n AttachInternetGatewayCommand,\n AttachNetworkInterfaceCommand,\n AttachVerifiedAccessTrustProviderCommand,\n AttachVolumeCommand,\n AttachVpnGatewayCommand,\n AuthorizeClientVpnIngressCommand,\n AuthorizeSecurityGroupEgressCommand,\n AuthorizeSecurityGroupIngressCommand,\n BundleInstanceCommand,\n CancelBundleTaskCommand,\n CancelCapacityReservationCommand,\n CancelCapacityReservationFleetsCommand,\n CancelConversionTaskCommand,\n CancelDeclarativePoliciesReportCommand,\n CancelExportTaskCommand,\n CancelImageLaunchPermissionCommand,\n CancelImportTaskCommand,\n CancelReservedInstancesListingCommand,\n CancelSpotFleetRequestsCommand,\n CancelSpotInstanceRequestsCommand,\n ConfirmProductInstanceCommand,\n CopyFpgaImageCommand,\n CopyImageCommand,\n CopySnapshotCommand,\n CreateCapacityReservationCommand,\n CreateCapacityReservationBySplittingCommand,\n CreateCapacityReservationFleetCommand,\n CreateCarrierGatewayCommand,\n CreateClientVpnEndpointCommand,\n CreateClientVpnRouteCommand,\n CreateCoipCidrCommand,\n CreateCoipPoolCommand,\n CreateCustomerGatewayCommand,\n CreateDefaultSubnetCommand,\n CreateDefaultVpcCommand,\n CreateDhcpOptionsCommand,\n CreateEgressOnlyInternetGatewayCommand,\n CreateFleetCommand,\n CreateFlowLogsCommand,\n CreateFpgaImageCommand,\n CreateImageCommand,\n CreateInstanceConnectEndpointCommand,\n CreateInstanceEventWindowCommand,\n CreateInstanceExportTaskCommand,\n CreateInternetGatewayCommand,\n CreateIpamCommand,\n CreateIpamExternalResourceVerificationTokenCommand,\n CreateIpamPoolCommand,\n CreateIpamResourceDiscoveryCommand,\n CreateIpamScopeCommand,\n CreateKeyPairCommand,\n CreateLaunchTemplateCommand,\n CreateLaunchTemplateVersionCommand,\n CreateLocalGatewayRouteCommand,\n CreateLocalGatewayRouteTableCommand,\n CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n CreateLocalGatewayRouteTableVpcAssociationCommand,\n CreateLocalGatewayVirtualInterfaceCommand,\n CreateLocalGatewayVirtualInterfaceGroupCommand,\n CreateManagedPrefixListCommand,\n CreateNatGatewayCommand,\n CreateNetworkAclCommand,\n CreateNetworkAclEntryCommand,\n CreateNetworkInsightsAccessScopeCommand,\n CreateNetworkInsightsPathCommand,\n CreateNetworkInterfaceCommand,\n CreateNetworkInterfacePermissionCommand,\n CreatePlacementGroupCommand,\n CreatePublicIpv4PoolCommand,\n CreateReplaceRootVolumeTaskCommand,\n CreateReservedInstancesListingCommand,\n CreateRestoreImageTaskCommand,\n CreateRouteCommand,\n CreateRouteServerCommand,\n CreateRouteServerEndpointCommand,\n CreateRouteServerPeerCommand,\n CreateRouteTableCommand,\n CreateSecurityGroupCommand,\n CreateSnapshotCommand,\n CreateSnapshotsCommand,\n CreateSpotDatafeedSubscriptionCommand,\n CreateStoreImageTaskCommand,\n CreateSubnetCommand,\n CreateSubnetCidrReservationCommand,\n CreateTagsCommand,\n CreateTrafficMirrorFilterCommand,\n CreateTrafficMirrorFilterRuleCommand,\n CreateTrafficMirrorSessionCommand,\n CreateTrafficMirrorTargetCommand,\n CreateTransitGatewayCommand,\n CreateTransitGatewayConnectCommand,\n CreateTransitGatewayConnectPeerCommand,\n CreateTransitGatewayMulticastDomainCommand,\n CreateTransitGatewayPeeringAttachmentCommand,\n CreateTransitGatewayPolicyTableCommand,\n CreateTransitGatewayPrefixListReferenceCommand,\n CreateTransitGatewayRouteCommand,\n CreateTransitGatewayRouteTableCommand,\n CreateTransitGatewayRouteTableAnnouncementCommand,\n CreateTransitGatewayVpcAttachmentCommand,\n CreateVerifiedAccessEndpointCommand,\n CreateVerifiedAccessGroupCommand,\n CreateVerifiedAccessInstanceCommand,\n CreateVerifiedAccessTrustProviderCommand,\n CreateVolumeCommand,\n CreateVpcCommand,\n CreateVpcBlockPublicAccessExclusionCommand,\n CreateVpcEndpointCommand,\n CreateVpcEndpointConnectionNotificationCommand,\n CreateVpcEndpointServiceConfigurationCommand,\n CreateVpcPeeringConnectionCommand,\n CreateVpnConnectionCommand,\n CreateVpnConnectionRouteCommand,\n CreateVpnGatewayCommand,\n DeleteCarrierGatewayCommand,\n DeleteClientVpnEndpointCommand,\n DeleteClientVpnRouteCommand,\n DeleteCoipCidrCommand,\n DeleteCoipPoolCommand,\n DeleteCustomerGatewayCommand,\n DeleteDhcpOptionsCommand,\n DeleteEgressOnlyInternetGatewayCommand,\n DeleteFleetsCommand,\n DeleteFlowLogsCommand,\n DeleteFpgaImageCommand,\n DeleteInstanceConnectEndpointCommand,\n DeleteInstanceEventWindowCommand,\n DeleteInternetGatewayCommand,\n DeleteIpamCommand,\n DeleteIpamExternalResourceVerificationTokenCommand,\n DeleteIpamPoolCommand,\n DeleteIpamResourceDiscoveryCommand,\n DeleteIpamScopeCommand,\n DeleteKeyPairCommand,\n DeleteLaunchTemplateCommand,\n DeleteLaunchTemplateVersionsCommand,\n DeleteLocalGatewayRouteCommand,\n DeleteLocalGatewayRouteTableCommand,\n DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n DeleteLocalGatewayRouteTableVpcAssociationCommand,\n DeleteLocalGatewayVirtualInterfaceCommand,\n DeleteLocalGatewayVirtualInterfaceGroupCommand,\n DeleteManagedPrefixListCommand,\n DeleteNatGatewayCommand,\n DeleteNetworkAclCommand,\n DeleteNetworkAclEntryCommand,\n DeleteNetworkInsightsAccessScopeCommand,\n DeleteNetworkInsightsAccessScopeAnalysisCommand,\n DeleteNetworkInsightsAnalysisCommand,\n DeleteNetworkInsightsPathCommand,\n DeleteNetworkInterfaceCommand,\n DeleteNetworkInterfacePermissionCommand,\n DeletePlacementGroupCommand,\n DeletePublicIpv4PoolCommand,\n DeleteQueuedReservedInstancesCommand,\n DeleteRouteCommand,\n DeleteRouteServerCommand,\n DeleteRouteServerEndpointCommand,\n DeleteRouteServerPeerCommand,\n DeleteRouteTableCommand,\n DeleteSecurityGroupCommand,\n DeleteSnapshotCommand,\n DeleteSpotDatafeedSubscriptionCommand,\n DeleteSubnetCommand,\n DeleteSubnetCidrReservationCommand,\n DeleteTagsCommand,\n DeleteTrafficMirrorFilterCommand,\n DeleteTrafficMirrorFilterRuleCommand,\n DeleteTrafficMirrorSessionCommand,\n DeleteTrafficMirrorTargetCommand,\n DeleteTransitGatewayCommand,\n DeleteTransitGatewayConnectCommand,\n DeleteTransitGatewayConnectPeerCommand,\n DeleteTransitGatewayMulticastDomainCommand,\n DeleteTransitGatewayPeeringAttachmentCommand,\n DeleteTransitGatewayPolicyTableCommand,\n DeleteTransitGatewayPrefixListReferenceCommand,\n DeleteTransitGatewayRouteCommand,\n DeleteTransitGatewayRouteTableCommand,\n DeleteTransitGatewayRouteTableAnnouncementCommand,\n DeleteTransitGatewayVpcAttachmentCommand,\n DeleteVerifiedAccessEndpointCommand,\n DeleteVerifiedAccessGroupCommand,\n DeleteVerifiedAccessInstanceCommand,\n DeleteVerifiedAccessTrustProviderCommand,\n DeleteVolumeCommand,\n DeleteVpcCommand,\n DeleteVpcBlockPublicAccessExclusionCommand,\n DeleteVpcEndpointConnectionNotificationsCommand,\n DeleteVpcEndpointsCommand,\n DeleteVpcEndpointServiceConfigurationsCommand,\n DeleteVpcPeeringConnectionCommand,\n DeleteVpnConnectionCommand,\n DeleteVpnConnectionRouteCommand,\n DeleteVpnGatewayCommand,\n DeprovisionByoipCidrCommand,\n DeprovisionIpamByoasnCommand,\n DeprovisionIpamPoolCidrCommand,\n DeprovisionPublicIpv4PoolCidrCommand,\n DeregisterImageCommand,\n DeregisterInstanceEventNotificationAttributesCommand,\n DeregisterTransitGatewayMulticastGroupMembersCommand,\n DeregisterTransitGatewayMulticastGroupSourcesCommand,\n DescribeAccountAttributesCommand,\n DescribeAddressesCommand,\n DescribeAddressesAttributeCommand,\n DescribeAddressTransfersCommand,\n DescribeAggregateIdFormatCommand,\n DescribeAvailabilityZonesCommand,\n DescribeAwsNetworkPerformanceMetricSubscriptionsCommand,\n DescribeBundleTasksCommand,\n DescribeByoipCidrsCommand,\n DescribeCapacityBlockExtensionHistoryCommand,\n DescribeCapacityBlockExtensionOfferingsCommand,\n DescribeCapacityBlockOfferingsCommand,\n DescribeCapacityReservationBillingRequestsCommand,\n DescribeCapacityReservationFleetsCommand,\n DescribeCapacityReservationsCommand,\n DescribeCarrierGatewaysCommand,\n DescribeClassicLinkInstancesCommand,\n DescribeClientVpnAuthorizationRulesCommand,\n DescribeClientVpnConnectionsCommand,\n DescribeClientVpnEndpointsCommand,\n DescribeClientVpnRoutesCommand,\n DescribeClientVpnTargetNetworksCommand,\n DescribeCoipPoolsCommand,\n DescribeConversionTasksCommand,\n DescribeCustomerGatewaysCommand,\n DescribeDeclarativePoliciesReportsCommand,\n DescribeDhcpOptionsCommand,\n DescribeEgressOnlyInternetGatewaysCommand,\n DescribeElasticGpusCommand,\n DescribeExportImageTasksCommand,\n DescribeExportTasksCommand,\n DescribeFastLaunchImagesCommand,\n DescribeFastSnapshotRestoresCommand,\n DescribeFleetHistoryCommand,\n DescribeFleetInstancesCommand,\n DescribeFleetsCommand,\n DescribeFlowLogsCommand,\n DescribeFpgaImageAttributeCommand,\n DescribeFpgaImagesCommand,\n DescribeHostReservationOfferingsCommand,\n DescribeHostReservationsCommand,\n DescribeHostsCommand,\n DescribeIamInstanceProfileAssociationsCommand,\n DescribeIdentityIdFormatCommand,\n DescribeIdFormatCommand,\n DescribeImageAttributeCommand,\n DescribeImagesCommand,\n DescribeImportImageTasksCommand,\n DescribeImportSnapshotTasksCommand,\n DescribeInstanceAttributeCommand,\n DescribeInstanceConnectEndpointsCommand,\n DescribeInstanceCreditSpecificationsCommand,\n DescribeInstanceEventNotificationAttributesCommand,\n DescribeInstanceEventWindowsCommand,\n DescribeInstanceImageMetadataCommand,\n DescribeInstancesCommand,\n DescribeInstanceStatusCommand,\n DescribeInstanceTopologyCommand,\n DescribeInstanceTypeOfferingsCommand,\n DescribeInstanceTypesCommand,\n DescribeInternetGatewaysCommand,\n DescribeIpamByoasnCommand,\n DescribeIpamExternalResourceVerificationTokensCommand,\n DescribeIpamPoolsCommand,\n DescribeIpamResourceDiscoveriesCommand,\n DescribeIpamResourceDiscoveryAssociationsCommand,\n DescribeIpamsCommand,\n DescribeIpamScopesCommand,\n DescribeIpv6PoolsCommand,\n DescribeKeyPairsCommand,\n DescribeLaunchTemplatesCommand,\n DescribeLaunchTemplateVersionsCommand,\n DescribeLocalGatewayRouteTablesCommand,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n DescribeLocalGatewayRouteTableVpcAssociationsCommand,\n DescribeLocalGatewaysCommand,\n DescribeLocalGatewayVirtualInterfaceGroupsCommand,\n DescribeLocalGatewayVirtualInterfacesCommand,\n DescribeLockedSnapshotsCommand,\n DescribeMacHostsCommand,\n DescribeManagedPrefixListsCommand,\n DescribeMovingAddressesCommand,\n DescribeNatGatewaysCommand,\n DescribeNetworkAclsCommand,\n DescribeNetworkInsightsAccessScopeAnalysesCommand,\n DescribeNetworkInsightsAccessScopesCommand,\n DescribeNetworkInsightsAnalysesCommand,\n DescribeNetworkInsightsPathsCommand,\n DescribeNetworkInterfaceAttributeCommand,\n DescribeNetworkInterfacePermissionsCommand,\n DescribeNetworkInterfacesCommand,\n DescribeOutpostLagsCommand,\n DescribePlacementGroupsCommand,\n DescribePrefixListsCommand,\n DescribePrincipalIdFormatCommand,\n DescribePublicIpv4PoolsCommand,\n DescribeRegionsCommand,\n DescribeReplaceRootVolumeTasksCommand,\n DescribeReservedInstancesCommand,\n DescribeReservedInstancesListingsCommand,\n DescribeReservedInstancesModificationsCommand,\n DescribeReservedInstancesOfferingsCommand,\n DescribeRouteServerEndpointsCommand,\n DescribeRouteServerPeersCommand,\n DescribeRouteServersCommand,\n DescribeRouteTablesCommand,\n DescribeScheduledInstanceAvailabilityCommand,\n DescribeScheduledInstancesCommand,\n DescribeSecurityGroupReferencesCommand,\n DescribeSecurityGroupRulesCommand,\n DescribeSecurityGroupsCommand,\n DescribeSecurityGroupVpcAssociationsCommand,\n DescribeServiceLinkVirtualInterfacesCommand,\n DescribeSnapshotAttributeCommand,\n DescribeSnapshotsCommand,\n DescribeSnapshotTierStatusCommand,\n DescribeSpotDatafeedSubscriptionCommand,\n DescribeSpotFleetInstancesCommand,\n DescribeSpotFleetRequestHistoryCommand,\n DescribeSpotFleetRequestsCommand,\n DescribeSpotInstanceRequestsCommand,\n DescribeSpotPriceHistoryCommand,\n DescribeStaleSecurityGroupsCommand,\n DescribeStoreImageTasksCommand,\n DescribeSubnetsCommand,\n DescribeTagsCommand,\n DescribeTrafficMirrorFilterRulesCommand,\n DescribeTrafficMirrorFiltersCommand,\n DescribeTrafficMirrorSessionsCommand,\n DescribeTrafficMirrorTargetsCommand,\n DescribeTransitGatewayAttachmentsCommand,\n DescribeTransitGatewayConnectPeersCommand,\n DescribeTransitGatewayConnectsCommand,\n DescribeTransitGatewayMulticastDomainsCommand,\n DescribeTransitGatewayPeeringAttachmentsCommand,\n DescribeTransitGatewayPolicyTablesCommand,\n DescribeTransitGatewayRouteTableAnnouncementsCommand,\n DescribeTransitGatewayRouteTablesCommand,\n DescribeTransitGatewaysCommand,\n DescribeTransitGatewayVpcAttachmentsCommand,\n DescribeTrunkInterfaceAssociationsCommand,\n DescribeVerifiedAccessEndpointsCommand,\n DescribeVerifiedAccessGroupsCommand,\n DescribeVerifiedAccessInstanceLoggingConfigurationsCommand,\n DescribeVerifiedAccessInstancesCommand,\n DescribeVerifiedAccessTrustProvidersCommand,\n DescribeVolumeAttributeCommand,\n DescribeVolumesCommand,\n DescribeVolumesModificationsCommand,\n DescribeVolumeStatusCommand,\n DescribeVpcAttributeCommand,\n DescribeVpcBlockPublicAccessExclusionsCommand,\n DescribeVpcBlockPublicAccessOptionsCommand,\n DescribeVpcClassicLinkCommand,\n DescribeVpcClassicLinkDnsSupportCommand,\n DescribeVpcEndpointAssociationsCommand,\n DescribeVpcEndpointConnectionNotificationsCommand,\n DescribeVpcEndpointConnectionsCommand,\n DescribeVpcEndpointsCommand,\n DescribeVpcEndpointServiceConfigurationsCommand,\n DescribeVpcEndpointServicePermissionsCommand,\n DescribeVpcEndpointServicesCommand,\n DescribeVpcPeeringConnectionsCommand,\n DescribeVpcsCommand,\n DescribeVpnConnectionsCommand,\n DescribeVpnGatewaysCommand,\n DetachClassicLinkVpcCommand,\n DetachInternetGatewayCommand,\n DetachNetworkInterfaceCommand,\n DetachVerifiedAccessTrustProviderCommand,\n DetachVolumeCommand,\n DetachVpnGatewayCommand,\n DisableAddressTransferCommand,\n DisableAllowedImagesSettingsCommand,\n DisableAwsNetworkPerformanceMetricSubscriptionCommand,\n DisableEbsEncryptionByDefaultCommand,\n DisableFastLaunchCommand,\n DisableFastSnapshotRestoresCommand,\n DisableImageCommand,\n DisableImageBlockPublicAccessCommand,\n DisableImageDeprecationCommand,\n DisableImageDeregistrationProtectionCommand,\n DisableIpamOrganizationAdminAccountCommand,\n DisableRouteServerPropagationCommand,\n DisableSerialConsoleAccessCommand,\n DisableSnapshotBlockPublicAccessCommand,\n DisableTransitGatewayRouteTablePropagationCommand,\n DisableVgwRoutePropagationCommand,\n DisableVpcClassicLinkCommand,\n DisableVpcClassicLinkDnsSupportCommand,\n DisassociateAddressCommand,\n DisassociateCapacityReservationBillingOwnerCommand,\n DisassociateClientVpnTargetNetworkCommand,\n DisassociateEnclaveCertificateIamRoleCommand,\n DisassociateIamInstanceProfileCommand,\n DisassociateInstanceEventWindowCommand,\n DisassociateIpamByoasnCommand,\n DisassociateIpamResourceDiscoveryCommand,\n DisassociateNatGatewayAddressCommand,\n DisassociateRouteServerCommand,\n DisassociateRouteTableCommand,\n DisassociateSecurityGroupVpcCommand,\n DisassociateSubnetCidrBlockCommand,\n DisassociateTransitGatewayMulticastDomainCommand,\n DisassociateTransitGatewayPolicyTableCommand,\n DisassociateTransitGatewayRouteTableCommand,\n DisassociateTrunkInterfaceCommand,\n DisassociateVpcCidrBlockCommand,\n EnableAddressTransferCommand,\n EnableAllowedImagesSettingsCommand,\n EnableAwsNetworkPerformanceMetricSubscriptionCommand,\n EnableEbsEncryptionByDefaultCommand,\n EnableFastLaunchCommand,\n EnableFastSnapshotRestoresCommand,\n EnableImageCommand,\n EnableImageBlockPublicAccessCommand,\n EnableImageDeprecationCommand,\n EnableImageDeregistrationProtectionCommand,\n EnableIpamOrganizationAdminAccountCommand,\n EnableReachabilityAnalyzerOrganizationSharingCommand,\n EnableRouteServerPropagationCommand,\n EnableSerialConsoleAccessCommand,\n EnableSnapshotBlockPublicAccessCommand,\n EnableTransitGatewayRouteTablePropagationCommand,\n EnableVgwRoutePropagationCommand,\n EnableVolumeIOCommand,\n EnableVpcClassicLinkCommand,\n EnableVpcClassicLinkDnsSupportCommand,\n ExportClientVpnClientCertificateRevocationListCommand,\n ExportClientVpnClientConfigurationCommand,\n ExportImageCommand,\n ExportTransitGatewayRoutesCommand,\n ExportVerifiedAccessInstanceClientConfigurationCommand,\n GetAllowedImagesSettingsCommand,\n GetAssociatedEnclaveCertificateIamRolesCommand,\n GetAssociatedIpv6PoolCidrsCommand,\n GetAwsNetworkPerformanceDataCommand,\n GetCapacityReservationUsageCommand,\n GetCoipPoolUsageCommand,\n GetConsoleOutputCommand,\n GetConsoleScreenshotCommand,\n GetDeclarativePoliciesReportSummaryCommand,\n GetDefaultCreditSpecificationCommand,\n GetEbsDefaultKmsKeyIdCommand,\n GetEbsEncryptionByDefaultCommand,\n GetFlowLogsIntegrationTemplateCommand,\n GetGroupsForCapacityReservationCommand,\n GetHostReservationPurchasePreviewCommand,\n GetImageBlockPublicAccessStateCommand,\n GetInstanceMetadataDefaultsCommand,\n GetInstanceTpmEkPubCommand,\n GetInstanceTypesFromInstanceRequirementsCommand,\n GetInstanceUefiDataCommand,\n GetIpamAddressHistoryCommand,\n GetIpamDiscoveredAccountsCommand,\n GetIpamDiscoveredPublicAddressesCommand,\n GetIpamDiscoveredResourceCidrsCommand,\n GetIpamPoolAllocationsCommand,\n GetIpamPoolCidrsCommand,\n GetIpamResourceCidrsCommand,\n GetLaunchTemplateDataCommand,\n GetManagedPrefixListAssociationsCommand,\n GetManagedPrefixListEntriesCommand,\n GetNetworkInsightsAccessScopeAnalysisFindingsCommand,\n GetNetworkInsightsAccessScopeContentCommand,\n GetPasswordDataCommand,\n GetReservedInstancesExchangeQuoteCommand,\n GetRouteServerAssociationsCommand,\n GetRouteServerPropagationsCommand,\n GetRouteServerRoutingDatabaseCommand,\n GetSecurityGroupsForVpcCommand,\n GetSerialConsoleAccessStatusCommand,\n GetSnapshotBlockPublicAccessStateCommand,\n GetSpotPlacementScoresCommand,\n GetSubnetCidrReservationsCommand,\n GetTransitGatewayAttachmentPropagationsCommand,\n GetTransitGatewayMulticastDomainAssociationsCommand,\n GetTransitGatewayPolicyTableAssociationsCommand,\n GetTransitGatewayPolicyTableEntriesCommand,\n GetTransitGatewayPrefixListReferencesCommand,\n GetTransitGatewayRouteTableAssociationsCommand,\n GetTransitGatewayRouteTablePropagationsCommand,\n GetVerifiedAccessEndpointPolicyCommand,\n GetVerifiedAccessEndpointTargetsCommand,\n GetVerifiedAccessGroupPolicyCommand,\n GetVpnConnectionDeviceSampleConfigurationCommand,\n GetVpnConnectionDeviceTypesCommand,\n GetVpnTunnelReplacementStatusCommand,\n ImportClientVpnClientCertificateRevocationListCommand,\n ImportImageCommand,\n ImportInstanceCommand,\n ImportKeyPairCommand,\n ImportSnapshotCommand,\n ImportVolumeCommand,\n ListImagesInRecycleBinCommand,\n ListSnapshotsInRecycleBinCommand,\n LockSnapshotCommand,\n ModifyAddressAttributeCommand,\n ModifyAvailabilityZoneGroupCommand,\n ModifyCapacityReservationCommand,\n ModifyCapacityReservationFleetCommand,\n ModifyClientVpnEndpointCommand,\n ModifyDefaultCreditSpecificationCommand,\n ModifyEbsDefaultKmsKeyIdCommand,\n ModifyFleetCommand,\n ModifyFpgaImageAttributeCommand,\n ModifyHostsCommand,\n ModifyIdentityIdFormatCommand,\n ModifyIdFormatCommand,\n ModifyImageAttributeCommand,\n ModifyInstanceAttributeCommand,\n ModifyInstanceCapacityReservationAttributesCommand,\n ModifyInstanceCpuOptionsCommand,\n ModifyInstanceCreditSpecificationCommand,\n ModifyInstanceEventStartTimeCommand,\n ModifyInstanceEventWindowCommand,\n ModifyInstanceMaintenanceOptionsCommand,\n ModifyInstanceMetadataDefaultsCommand,\n ModifyInstanceMetadataOptionsCommand,\n ModifyInstanceNetworkPerformanceOptionsCommand,\n ModifyInstancePlacementCommand,\n ModifyIpamCommand,\n ModifyIpamPoolCommand,\n ModifyIpamResourceCidrCommand,\n ModifyIpamResourceDiscoveryCommand,\n ModifyIpamScopeCommand,\n ModifyLaunchTemplateCommand,\n ModifyLocalGatewayRouteCommand,\n ModifyManagedPrefixListCommand,\n ModifyNetworkInterfaceAttributeCommand,\n ModifyPrivateDnsNameOptionsCommand,\n ModifyReservedInstancesCommand,\n ModifyRouteServerCommand,\n ModifySecurityGroupRulesCommand,\n ModifySnapshotAttributeCommand,\n ModifySnapshotTierCommand,\n ModifySpotFleetRequestCommand,\n ModifySubnetAttributeCommand,\n ModifyTrafficMirrorFilterNetworkServicesCommand,\n ModifyTrafficMirrorFilterRuleCommand,\n ModifyTrafficMirrorSessionCommand,\n ModifyTransitGatewayCommand,\n ModifyTransitGatewayPrefixListReferenceCommand,\n ModifyTransitGatewayVpcAttachmentCommand,\n ModifyVerifiedAccessEndpointCommand,\n ModifyVerifiedAccessEndpointPolicyCommand,\n ModifyVerifiedAccessGroupCommand,\n ModifyVerifiedAccessGroupPolicyCommand,\n ModifyVerifiedAccessInstanceCommand,\n ModifyVerifiedAccessInstanceLoggingConfigurationCommand,\n ModifyVerifiedAccessTrustProviderCommand,\n ModifyVolumeCommand,\n ModifyVolumeAttributeCommand,\n ModifyVpcAttributeCommand,\n ModifyVpcBlockPublicAccessExclusionCommand,\n ModifyVpcBlockPublicAccessOptionsCommand,\n ModifyVpcEndpointCommand,\n ModifyVpcEndpointConnectionNotificationCommand,\n ModifyVpcEndpointServiceConfigurationCommand,\n ModifyVpcEndpointServicePayerResponsibilityCommand,\n ModifyVpcEndpointServicePermissionsCommand,\n ModifyVpcPeeringConnectionOptionsCommand,\n ModifyVpcTenancyCommand,\n ModifyVpnConnectionCommand,\n ModifyVpnConnectionOptionsCommand,\n ModifyVpnTunnelCertificateCommand,\n ModifyVpnTunnelOptionsCommand,\n MonitorInstancesCommand,\n MoveAddressToVpcCommand,\n MoveByoipCidrToIpamCommand,\n MoveCapacityReservationInstancesCommand,\n ProvisionByoipCidrCommand,\n ProvisionIpamByoasnCommand,\n ProvisionIpamPoolCidrCommand,\n ProvisionPublicIpv4PoolCidrCommand,\n PurchaseCapacityBlockCommand,\n PurchaseCapacityBlockExtensionCommand,\n PurchaseHostReservationCommand,\n PurchaseReservedInstancesOfferingCommand,\n PurchaseScheduledInstancesCommand,\n RebootInstancesCommand,\n RegisterImageCommand,\n RegisterInstanceEventNotificationAttributesCommand,\n RegisterTransitGatewayMulticastGroupMembersCommand,\n RegisterTransitGatewayMulticastGroupSourcesCommand,\n RejectCapacityReservationBillingOwnershipCommand,\n RejectTransitGatewayMulticastDomainAssociationsCommand,\n RejectTransitGatewayPeeringAttachmentCommand,\n RejectTransitGatewayVpcAttachmentCommand,\n RejectVpcEndpointConnectionsCommand,\n RejectVpcPeeringConnectionCommand,\n ReleaseAddressCommand,\n ReleaseHostsCommand,\n ReleaseIpamPoolAllocationCommand,\n ReplaceIamInstanceProfileAssociationCommand,\n ReplaceImageCriteriaInAllowedImagesSettingsCommand,\n ReplaceNetworkAclAssociationCommand,\n ReplaceNetworkAclEntryCommand,\n ReplaceRouteCommand,\n ReplaceRouteTableAssociationCommand,\n ReplaceTransitGatewayRouteCommand,\n ReplaceVpnTunnelCommand,\n ReportInstanceStatusCommand,\n RequestSpotFleetCommand,\n RequestSpotInstancesCommand,\n ResetAddressAttributeCommand,\n ResetEbsDefaultKmsKeyIdCommand,\n ResetFpgaImageAttributeCommand,\n ResetImageAttributeCommand,\n ResetInstanceAttributeCommand,\n ResetNetworkInterfaceAttributeCommand,\n ResetSnapshotAttributeCommand,\n RestoreAddressToClassicCommand,\n RestoreImageFromRecycleBinCommand,\n RestoreManagedPrefixListVersionCommand,\n RestoreSnapshotFromRecycleBinCommand,\n RestoreSnapshotTierCommand,\n RevokeClientVpnIngressCommand,\n RevokeSecurityGroupEgressCommand,\n RevokeSecurityGroupIngressCommand,\n RunInstancesCommand,\n RunScheduledInstancesCommand,\n SearchLocalGatewayRoutesCommand,\n SearchTransitGatewayMulticastGroupsCommand,\n SearchTransitGatewayRoutesCommand,\n SendDiagnosticInterruptCommand,\n StartDeclarativePoliciesReportCommand,\n StartInstancesCommand,\n StartNetworkInsightsAccessScopeAnalysisCommand,\n StartNetworkInsightsAnalysisCommand,\n StartVpcEndpointServicePrivateDnsVerificationCommand,\n StopInstancesCommand,\n TerminateClientVpnConnectionsCommand,\n TerminateInstancesCommand,\n UnassignIpv6AddressesCommand,\n UnassignPrivateIpAddressesCommand,\n UnassignPrivateNatGatewayAddressCommand,\n UnlockSnapshotCommand,\n UnmonitorInstancesCommand,\n UpdateSecurityGroupRuleDescriptionsEgressCommand,\n UpdateSecurityGroupRuleDescriptionsIngressCommand,\n WithdrawByoipCidrCommand\n};\nvar EC2 = class extends EC2Client {\n static {\n __name(this, \"EC2\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, EC2);\n\n// src/pagination/DescribeAddressTransfersPaginator.ts\n\nvar paginateDescribeAddressTransfers = (0, import_core.createPaginator)(EC2Client, DescribeAddressTransfersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAddressesAttributePaginator.ts\n\nvar paginateDescribeAddressesAttribute = (0, import_core.createPaginator)(EC2Client, DescribeAddressesAttributeCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAwsNetworkPerformanceMetricSubscriptionsPaginator.ts\n\nvar paginateDescribeAwsNetworkPerformanceMetricSubscriptions = (0, import_core.createPaginator)(EC2Client, DescribeAwsNetworkPerformanceMetricSubscriptionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeByoipCidrsPaginator.ts\n\nvar paginateDescribeByoipCidrs = (0, import_core.createPaginator)(EC2Client, DescribeByoipCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityBlockExtensionHistoryPaginator.ts\n\nvar paginateDescribeCapacityBlockExtensionHistory = (0, import_core.createPaginator)(EC2Client, DescribeCapacityBlockExtensionHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityBlockExtensionOfferingsPaginator.ts\n\nvar paginateDescribeCapacityBlockExtensionOfferings = (0, import_core.createPaginator)(EC2Client, DescribeCapacityBlockExtensionOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityBlockOfferingsPaginator.ts\n\nvar paginateDescribeCapacityBlockOfferings = (0, import_core.createPaginator)(EC2Client, DescribeCapacityBlockOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityReservationBillingRequestsPaginator.ts\n\nvar paginateDescribeCapacityReservationBillingRequests = (0, import_core.createPaginator)(EC2Client, DescribeCapacityReservationBillingRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityReservationFleetsPaginator.ts\n\nvar paginateDescribeCapacityReservationFleets = (0, import_core.createPaginator)(EC2Client, DescribeCapacityReservationFleetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCapacityReservationsPaginator.ts\n\nvar paginateDescribeCapacityReservations = (0, import_core.createPaginator)(EC2Client, DescribeCapacityReservationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCarrierGatewaysPaginator.ts\n\nvar paginateDescribeCarrierGateways = (0, import_core.createPaginator)(EC2Client, DescribeCarrierGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClassicLinkInstancesPaginator.ts\n\nvar paginateDescribeClassicLinkInstances = (0, import_core.createPaginator)(EC2Client, DescribeClassicLinkInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnAuthorizationRulesPaginator.ts\n\nvar paginateDescribeClientVpnAuthorizationRules = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnAuthorizationRulesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnConnectionsPaginator.ts\n\nvar paginateDescribeClientVpnConnections = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnConnectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnEndpointsPaginator.ts\n\nvar paginateDescribeClientVpnEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnRoutesPaginator.ts\n\nvar paginateDescribeClientVpnRoutes = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnRoutesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeClientVpnTargetNetworksPaginator.ts\n\nvar paginateDescribeClientVpnTargetNetworks = (0, import_core.createPaginator)(EC2Client, DescribeClientVpnTargetNetworksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeCoipPoolsPaginator.ts\n\nvar paginateDescribeCoipPools = (0, import_core.createPaginator)(EC2Client, DescribeCoipPoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeDhcpOptionsPaginator.ts\n\nvar paginateDescribeDhcpOptions = (0, import_core.createPaginator)(EC2Client, DescribeDhcpOptionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeEgressOnlyInternetGatewaysPaginator.ts\n\nvar paginateDescribeEgressOnlyInternetGateways = (0, import_core.createPaginator)(EC2Client, DescribeEgressOnlyInternetGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeExportImageTasksPaginator.ts\n\nvar paginateDescribeExportImageTasks = (0, import_core.createPaginator)(EC2Client, DescribeExportImageTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFastLaunchImagesPaginator.ts\n\nvar paginateDescribeFastLaunchImages = (0, import_core.createPaginator)(EC2Client, DescribeFastLaunchImagesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFastSnapshotRestoresPaginator.ts\n\nvar paginateDescribeFastSnapshotRestores = (0, import_core.createPaginator)(EC2Client, DescribeFastSnapshotRestoresCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFleetsPaginator.ts\n\nvar paginateDescribeFleets = (0, import_core.createPaginator)(EC2Client, DescribeFleetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFlowLogsPaginator.ts\n\nvar paginateDescribeFlowLogs = (0, import_core.createPaginator)(EC2Client, DescribeFlowLogsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeFpgaImagesPaginator.ts\n\nvar paginateDescribeFpgaImages = (0, import_core.createPaginator)(EC2Client, DescribeFpgaImagesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeHostReservationOfferingsPaginator.ts\n\nvar paginateDescribeHostReservationOfferings = (0, import_core.createPaginator)(EC2Client, DescribeHostReservationOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeHostReservationsPaginator.ts\n\nvar paginateDescribeHostReservations = (0, import_core.createPaginator)(EC2Client, DescribeHostReservationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeHostsPaginator.ts\n\nvar paginateDescribeHosts = (0, import_core.createPaginator)(EC2Client, DescribeHostsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIamInstanceProfileAssociationsPaginator.ts\n\nvar paginateDescribeIamInstanceProfileAssociations = (0, import_core.createPaginator)(EC2Client, DescribeIamInstanceProfileAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeImagesPaginator.ts\n\nvar paginateDescribeImages = (0, import_core.createPaginator)(EC2Client, DescribeImagesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeImportImageTasksPaginator.ts\n\nvar paginateDescribeImportImageTasks = (0, import_core.createPaginator)(EC2Client, DescribeImportImageTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeImportSnapshotTasksPaginator.ts\n\nvar paginateDescribeImportSnapshotTasks = (0, import_core.createPaginator)(EC2Client, DescribeImportSnapshotTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceConnectEndpointsPaginator.ts\n\nvar paginateDescribeInstanceConnectEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeInstanceConnectEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceCreditSpecificationsPaginator.ts\n\nvar paginateDescribeInstanceCreditSpecifications = (0, import_core.createPaginator)(EC2Client, DescribeInstanceCreditSpecificationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceEventWindowsPaginator.ts\n\nvar paginateDescribeInstanceEventWindows = (0, import_core.createPaginator)(EC2Client, DescribeInstanceEventWindowsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceImageMetadataPaginator.ts\n\nvar paginateDescribeInstanceImageMetadata = (0, import_core.createPaginator)(EC2Client, DescribeInstanceImageMetadataCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceStatusPaginator.ts\n\nvar paginateDescribeInstanceStatus = (0, import_core.createPaginator)(EC2Client, DescribeInstanceStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceTopologyPaginator.ts\n\nvar paginateDescribeInstanceTopology = (0, import_core.createPaginator)(EC2Client, DescribeInstanceTopologyCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceTypeOfferingsPaginator.ts\n\nvar paginateDescribeInstanceTypeOfferings = (0, import_core.createPaginator)(EC2Client, DescribeInstanceTypeOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceTypesPaginator.ts\n\nvar paginateDescribeInstanceTypes = (0, import_core.createPaginator)(EC2Client, DescribeInstanceTypesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancesPaginator.ts\n\nvar paginateDescribeInstances = (0, import_core.createPaginator)(EC2Client, DescribeInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInternetGatewaysPaginator.ts\n\nvar paginateDescribeInternetGateways = (0, import_core.createPaginator)(EC2Client, DescribeInternetGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamPoolsPaginator.ts\n\nvar paginateDescribeIpamPools = (0, import_core.createPaginator)(EC2Client, DescribeIpamPoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamResourceDiscoveriesPaginator.ts\n\nvar paginateDescribeIpamResourceDiscoveries = (0, import_core.createPaginator)(EC2Client, DescribeIpamResourceDiscoveriesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamResourceDiscoveryAssociationsPaginator.ts\n\nvar paginateDescribeIpamResourceDiscoveryAssociations = (0, import_core.createPaginator)(EC2Client, DescribeIpamResourceDiscoveryAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamScopesPaginator.ts\n\nvar paginateDescribeIpamScopes = (0, import_core.createPaginator)(EC2Client, DescribeIpamScopesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpamsPaginator.ts\n\nvar paginateDescribeIpams = (0, import_core.createPaginator)(EC2Client, DescribeIpamsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeIpv6PoolsPaginator.ts\n\nvar paginateDescribeIpv6Pools = (0, import_core.createPaginator)(EC2Client, DescribeIpv6PoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLaunchTemplateVersionsPaginator.ts\n\nvar paginateDescribeLaunchTemplateVersions = (0, import_core.createPaginator)(EC2Client, DescribeLaunchTemplateVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLaunchTemplatesPaginator.ts\n\nvar paginateDescribeLaunchTemplates = (0, import_core.createPaginator)(EC2Client, DescribeLaunchTemplatesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginator.ts\n\nvar paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations = (0, import_core.createPaginator)(\n EC2Client,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n \"NextToken\",\n \"NextToken\",\n \"MaxResults\"\n);\n\n// src/pagination/DescribeLocalGatewayRouteTableVpcAssociationsPaginator.ts\n\nvar paginateDescribeLocalGatewayRouteTableVpcAssociations = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayRouteTableVpcAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayRouteTablesPaginator.ts\n\nvar paginateDescribeLocalGatewayRouteTables = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayRouteTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayVirtualInterfaceGroupsPaginator.ts\n\nvar paginateDescribeLocalGatewayVirtualInterfaceGroups = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayVirtualInterfaceGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewayVirtualInterfacesPaginator.ts\n\nvar paginateDescribeLocalGatewayVirtualInterfaces = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewayVirtualInterfacesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeLocalGatewaysPaginator.ts\n\nvar paginateDescribeLocalGateways = (0, import_core.createPaginator)(EC2Client, DescribeLocalGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMacHostsPaginator.ts\n\nvar paginateDescribeMacHosts = (0, import_core.createPaginator)(EC2Client, DescribeMacHostsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeManagedPrefixListsPaginator.ts\n\nvar paginateDescribeManagedPrefixLists = (0, import_core.createPaginator)(EC2Client, DescribeManagedPrefixListsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMovingAddressesPaginator.ts\n\nvar paginateDescribeMovingAddresses = (0, import_core.createPaginator)(EC2Client, DescribeMovingAddressesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNatGatewaysPaginator.ts\n\nvar paginateDescribeNatGateways = (0, import_core.createPaginator)(EC2Client, DescribeNatGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkAclsPaginator.ts\n\nvar paginateDescribeNetworkAcls = (0, import_core.createPaginator)(EC2Client, DescribeNetworkAclsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsAccessScopeAnalysesPaginator.ts\n\nvar paginateDescribeNetworkInsightsAccessScopeAnalyses = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsAccessScopeAnalysesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsAccessScopesPaginator.ts\n\nvar paginateDescribeNetworkInsightsAccessScopes = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsAccessScopesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsAnalysesPaginator.ts\n\nvar paginateDescribeNetworkInsightsAnalyses = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsAnalysesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInsightsPathsPaginator.ts\n\nvar paginateDescribeNetworkInsightsPaths = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInsightsPathsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInterfacePermissionsPaginator.ts\n\nvar paginateDescribeNetworkInterfacePermissions = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInterfacePermissionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeNetworkInterfacesPaginator.ts\n\nvar paginateDescribeNetworkInterfaces = (0, import_core.createPaginator)(EC2Client, DescribeNetworkInterfacesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePrefixListsPaginator.ts\n\nvar paginateDescribePrefixLists = (0, import_core.createPaginator)(EC2Client, DescribePrefixListsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePrincipalIdFormatPaginator.ts\n\nvar paginateDescribePrincipalIdFormat = (0, import_core.createPaginator)(EC2Client, DescribePrincipalIdFormatCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePublicIpv4PoolsPaginator.ts\n\nvar paginateDescribePublicIpv4Pools = (0, import_core.createPaginator)(EC2Client, DescribePublicIpv4PoolsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeReplaceRootVolumeTasksPaginator.ts\n\nvar paginateDescribeReplaceRootVolumeTasks = (0, import_core.createPaginator)(EC2Client, DescribeReplaceRootVolumeTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeReservedInstancesModificationsPaginator.ts\n\nvar paginateDescribeReservedInstancesModifications = (0, import_core.createPaginator)(EC2Client, DescribeReservedInstancesModificationsCommand, \"NextToken\", \"NextToken\", \"\");\n\n// src/pagination/DescribeReservedInstancesOfferingsPaginator.ts\n\nvar paginateDescribeReservedInstancesOfferings = (0, import_core.createPaginator)(EC2Client, DescribeReservedInstancesOfferingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteServerEndpointsPaginator.ts\n\nvar paginateDescribeRouteServerEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeRouteServerEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteServerPeersPaginator.ts\n\nvar paginateDescribeRouteServerPeers = (0, import_core.createPaginator)(EC2Client, DescribeRouteServerPeersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteServersPaginator.ts\n\nvar paginateDescribeRouteServers = (0, import_core.createPaginator)(EC2Client, DescribeRouteServersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeRouteTablesPaginator.ts\n\nvar paginateDescribeRouteTables = (0, import_core.createPaginator)(EC2Client, DescribeRouteTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeScheduledInstanceAvailabilityPaginator.ts\n\nvar paginateDescribeScheduledInstanceAvailability = (0, import_core.createPaginator)(EC2Client, DescribeScheduledInstanceAvailabilityCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeScheduledInstancesPaginator.ts\n\nvar paginateDescribeScheduledInstances = (0, import_core.createPaginator)(EC2Client, DescribeScheduledInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSecurityGroupRulesPaginator.ts\n\nvar paginateDescribeSecurityGroupRules = (0, import_core.createPaginator)(EC2Client, DescribeSecurityGroupRulesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSecurityGroupVpcAssociationsPaginator.ts\n\nvar paginateDescribeSecurityGroupVpcAssociations = (0, import_core.createPaginator)(EC2Client, DescribeSecurityGroupVpcAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSecurityGroupsPaginator.ts\n\nvar paginateDescribeSecurityGroups = (0, import_core.createPaginator)(EC2Client, DescribeSecurityGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSnapshotTierStatusPaginator.ts\n\nvar paginateDescribeSnapshotTierStatus = (0, import_core.createPaginator)(EC2Client, DescribeSnapshotTierStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSnapshotsPaginator.ts\n\nvar paginateDescribeSnapshots = (0, import_core.createPaginator)(EC2Client, DescribeSnapshotsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSpotFleetRequestsPaginator.ts\n\nvar paginateDescribeSpotFleetRequests = (0, import_core.createPaginator)(EC2Client, DescribeSpotFleetRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSpotInstanceRequestsPaginator.ts\n\nvar paginateDescribeSpotInstanceRequests = (0, import_core.createPaginator)(EC2Client, DescribeSpotInstanceRequestsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSpotPriceHistoryPaginator.ts\n\nvar paginateDescribeSpotPriceHistory = (0, import_core.createPaginator)(EC2Client, DescribeSpotPriceHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeStaleSecurityGroupsPaginator.ts\n\nvar paginateDescribeStaleSecurityGroups = (0, import_core.createPaginator)(EC2Client, DescribeStaleSecurityGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeStoreImageTasksPaginator.ts\n\nvar paginateDescribeStoreImageTasks = (0, import_core.createPaginator)(EC2Client, DescribeStoreImageTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSubnetsPaginator.ts\n\nvar paginateDescribeSubnets = (0, import_core.createPaginator)(EC2Client, DescribeSubnetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTagsPaginator.ts\n\nvar paginateDescribeTags = (0, import_core.createPaginator)(EC2Client, DescribeTagsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrafficMirrorFiltersPaginator.ts\n\nvar paginateDescribeTrafficMirrorFilters = (0, import_core.createPaginator)(EC2Client, DescribeTrafficMirrorFiltersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrafficMirrorSessionsPaginator.ts\n\nvar paginateDescribeTrafficMirrorSessions = (0, import_core.createPaginator)(EC2Client, DescribeTrafficMirrorSessionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrafficMirrorTargetsPaginator.ts\n\nvar paginateDescribeTrafficMirrorTargets = (0, import_core.createPaginator)(EC2Client, DescribeTrafficMirrorTargetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayAttachmentsPaginator.ts\n\nvar paginateDescribeTransitGatewayAttachments = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayAttachmentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayConnectPeersPaginator.ts\n\nvar paginateDescribeTransitGatewayConnectPeers = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayConnectPeersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayConnectsPaginator.ts\n\nvar paginateDescribeTransitGatewayConnects = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayConnectsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayMulticastDomainsPaginator.ts\n\nvar paginateDescribeTransitGatewayMulticastDomains = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayMulticastDomainsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayPeeringAttachmentsPaginator.ts\n\nvar paginateDescribeTransitGatewayPeeringAttachments = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayPeeringAttachmentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayPolicyTablesPaginator.ts\n\nvar paginateDescribeTransitGatewayPolicyTables = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayPolicyTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayRouteTableAnnouncementsPaginator.ts\n\nvar paginateDescribeTransitGatewayRouteTableAnnouncements = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayRouteTableAnnouncementsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayRouteTablesPaginator.ts\n\nvar paginateDescribeTransitGatewayRouteTables = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayRouteTablesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewayVpcAttachmentsPaginator.ts\n\nvar paginateDescribeTransitGatewayVpcAttachments = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewayVpcAttachmentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTransitGatewaysPaginator.ts\n\nvar paginateDescribeTransitGateways = (0, import_core.createPaginator)(EC2Client, DescribeTransitGatewaysCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeTrunkInterfaceAssociationsPaginator.ts\n\nvar paginateDescribeTrunkInterfaceAssociations = (0, import_core.createPaginator)(EC2Client, DescribeTrunkInterfaceAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessEndpointsPaginator.ts\n\nvar paginateDescribeVerifiedAccessEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessGroupsPaginator.ts\n\nvar paginateDescribeVerifiedAccessGroups = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessInstanceLoggingConfigurationsPaginator.ts\n\nvar paginateDescribeVerifiedAccessInstanceLoggingConfigurations = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessInstanceLoggingConfigurationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessInstancesPaginator.ts\n\nvar paginateDescribeVerifiedAccessInstances = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessInstancesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVerifiedAccessTrustProvidersPaginator.ts\n\nvar paginateDescribeVerifiedAccessTrustProviders = (0, import_core.createPaginator)(EC2Client, DescribeVerifiedAccessTrustProvidersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVolumeStatusPaginator.ts\n\nvar paginateDescribeVolumeStatus = (0, import_core.createPaginator)(EC2Client, DescribeVolumeStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVolumesModificationsPaginator.ts\n\nvar paginateDescribeVolumesModifications = (0, import_core.createPaginator)(EC2Client, DescribeVolumesModificationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVolumesPaginator.ts\n\nvar paginateDescribeVolumes = (0, import_core.createPaginator)(EC2Client, DescribeVolumesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcClassicLinkDnsSupportPaginator.ts\n\nvar paginateDescribeVpcClassicLinkDnsSupport = (0, import_core.createPaginator)(EC2Client, DescribeVpcClassicLinkDnsSupportCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointConnectionNotificationsPaginator.ts\n\nvar paginateDescribeVpcEndpointConnectionNotifications = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointConnectionNotificationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointConnectionsPaginator.ts\n\nvar paginateDescribeVpcEndpointConnections = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointConnectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointServiceConfigurationsPaginator.ts\n\nvar paginateDescribeVpcEndpointServiceConfigurations = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointServiceConfigurationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointServicePermissionsPaginator.ts\n\nvar paginateDescribeVpcEndpointServicePermissions = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointServicePermissionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcEndpointsPaginator.ts\n\nvar paginateDescribeVpcEndpoints = (0, import_core.createPaginator)(EC2Client, DescribeVpcEndpointsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcPeeringConnectionsPaginator.ts\n\nvar paginateDescribeVpcPeeringConnections = (0, import_core.createPaginator)(EC2Client, DescribeVpcPeeringConnectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeVpcsPaginator.ts\n\nvar paginateDescribeVpcs = (0, import_core.createPaginator)(EC2Client, DescribeVpcsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetAssociatedIpv6PoolCidrsPaginator.ts\n\nvar paginateGetAssociatedIpv6PoolCidrs = (0, import_core.createPaginator)(EC2Client, GetAssociatedIpv6PoolCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetAwsNetworkPerformanceDataPaginator.ts\n\nvar paginateGetAwsNetworkPerformanceData = (0, import_core.createPaginator)(EC2Client, GetAwsNetworkPerformanceDataCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetGroupsForCapacityReservationPaginator.ts\n\nvar paginateGetGroupsForCapacityReservation = (0, import_core.createPaginator)(EC2Client, GetGroupsForCapacityReservationCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetInstanceTypesFromInstanceRequirementsPaginator.ts\n\nvar paginateGetInstanceTypesFromInstanceRequirements = (0, import_core.createPaginator)(EC2Client, GetInstanceTypesFromInstanceRequirementsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamAddressHistoryPaginator.ts\n\nvar paginateGetIpamAddressHistory = (0, import_core.createPaginator)(EC2Client, GetIpamAddressHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamDiscoveredAccountsPaginator.ts\n\nvar paginateGetIpamDiscoveredAccounts = (0, import_core.createPaginator)(EC2Client, GetIpamDiscoveredAccountsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamDiscoveredResourceCidrsPaginator.ts\n\nvar paginateGetIpamDiscoveredResourceCidrs = (0, import_core.createPaginator)(EC2Client, GetIpamDiscoveredResourceCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamPoolAllocationsPaginator.ts\n\nvar paginateGetIpamPoolAllocations = (0, import_core.createPaginator)(EC2Client, GetIpamPoolAllocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamPoolCidrsPaginator.ts\n\nvar paginateGetIpamPoolCidrs = (0, import_core.createPaginator)(EC2Client, GetIpamPoolCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetIpamResourceCidrsPaginator.ts\n\nvar paginateGetIpamResourceCidrs = (0, import_core.createPaginator)(EC2Client, GetIpamResourceCidrsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetManagedPrefixListAssociationsPaginator.ts\n\nvar paginateGetManagedPrefixListAssociations = (0, import_core.createPaginator)(EC2Client, GetManagedPrefixListAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetManagedPrefixListEntriesPaginator.ts\n\nvar paginateGetManagedPrefixListEntries = (0, import_core.createPaginator)(EC2Client, GetManagedPrefixListEntriesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetNetworkInsightsAccessScopeAnalysisFindingsPaginator.ts\n\nvar paginateGetNetworkInsightsAccessScopeAnalysisFindings = (0, import_core.createPaginator)(EC2Client, GetNetworkInsightsAccessScopeAnalysisFindingsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetSecurityGroupsForVpcPaginator.ts\n\nvar paginateGetSecurityGroupsForVpc = (0, import_core.createPaginator)(EC2Client, GetSecurityGroupsForVpcCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetSpotPlacementScoresPaginator.ts\n\nvar paginateGetSpotPlacementScores = (0, import_core.createPaginator)(EC2Client, GetSpotPlacementScoresCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayAttachmentPropagationsPaginator.ts\n\nvar paginateGetTransitGatewayAttachmentPropagations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayAttachmentPropagationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayMulticastDomainAssociationsPaginator.ts\n\nvar paginateGetTransitGatewayMulticastDomainAssociations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayMulticastDomainAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayPolicyTableAssociationsPaginator.ts\n\nvar paginateGetTransitGatewayPolicyTableAssociations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayPolicyTableAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayPrefixListReferencesPaginator.ts\n\nvar paginateGetTransitGatewayPrefixListReferences = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayPrefixListReferencesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayRouteTableAssociationsPaginator.ts\n\nvar paginateGetTransitGatewayRouteTableAssociations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayRouteTableAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetTransitGatewayRouteTablePropagationsPaginator.ts\n\nvar paginateGetTransitGatewayRouteTablePropagations = (0, import_core.createPaginator)(EC2Client, GetTransitGatewayRouteTablePropagationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetVpnConnectionDeviceTypesPaginator.ts\n\nvar paginateGetVpnConnectionDeviceTypes = (0, import_core.createPaginator)(EC2Client, GetVpnConnectionDeviceTypesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListImagesInRecycleBinPaginator.ts\n\nvar paginateListImagesInRecycleBin = (0, import_core.createPaginator)(EC2Client, ListImagesInRecycleBinCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListSnapshotsInRecycleBinPaginator.ts\n\nvar paginateListSnapshotsInRecycleBin = (0, import_core.createPaginator)(EC2Client, ListSnapshotsInRecycleBinCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/SearchLocalGatewayRoutesPaginator.ts\n\nvar paginateSearchLocalGatewayRoutes = (0, import_core.createPaginator)(EC2Client, SearchLocalGatewayRoutesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/SearchTransitGatewayMulticastGroupsPaginator.ts\n\nvar paginateSearchTransitGatewayMulticastGroups = (0, import_core.createPaginator)(EC2Client, SearchTransitGatewayMulticastGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForBundleTaskComplete.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeBundleTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.BundleTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"complete\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.BundleTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForBundleTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForBundleTaskComplete\");\nvar waitUntilBundleTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilBundleTaskComplete\");\n\n// src/waiters/waitForConversionTaskCancelled.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeConversionTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"cancelled\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForConversionTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForConversionTaskCancelled\");\nvar waitUntilConversionTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilConversionTaskCancelled\");\n\n// src/waiters/waitForConversionTaskCompleted.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeConversionTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"cancelled\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"cancelling\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForConversionTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForConversionTaskCompleted\");\nvar waitUntilConversionTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilConversionTaskCompleted\");\n\n// src/waiters/waitForConversionTaskDeleted.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeConversionTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ConversionTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForConversionTaskDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForConversionTaskDeleted\");\nvar waitUntilConversionTaskDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilConversionTaskDeleted\");\n\n// src/waiters/waitForCustomerGatewayAvailable.ts\n\nvar checkState5 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeCustomerGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.CustomerGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.CustomerGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.CustomerGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleting\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForCustomerGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n}, \"waitForCustomerGatewayAvailable\");\nvar waitUntilCustomerGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilCustomerGatewayAvailable\");\n\n// src/waiters/waitForExportTaskCancelled.ts\n\nvar checkState6 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeExportTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ExportTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"cancelled\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForExportTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n}, \"waitForExportTaskCancelled\");\nvar waitUntilExportTaskCancelled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilExportTaskCancelled\");\n\n// src/waiters/waitForExportTaskCompleted.ts\n\nvar checkState7 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeExportTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ExportTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForExportTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState7);\n}, \"waitForExportTaskCompleted\");\nvar waitUntilExportTaskCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState7);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilExportTaskCompleted\");\n\n// src/waiters/waitForImageAvailable.ts\n\nvar checkState8 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImagesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Images);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Images);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForImageAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState8);\n}, \"waitForImageAvailable\");\nvar waitUntilImageAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState8);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilImageAvailable\");\n\n// src/waiters/waitForImageExists.ts\n\nvar checkState9 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImagesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Images);\n return flat_1.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidAMIID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForImageExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState9);\n}, \"waitForImageExists\");\nvar waitUntilImageExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState9);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilImageExists\");\n\n// src/waiters/waitForInstanceExists.ts\n\nvar checkState10 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n return flat_1.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstanceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState10);\n}, \"waitForInstanceExists\");\nvar waitUntilInstanceExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState10);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceExists\");\n\n// src/waiters/waitForInstanceRunning.ts\n\nvar checkState11 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n let allStringEq_8 = returnComparator().length > 0;\n for (const element_7 of returnComparator()) {\n allStringEq_8 = allStringEq_8 && element_7 == \"running\";\n }\n if (allStringEq_8) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"shutting-down\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"terminated\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"stopping\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstanceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState11);\n}, \"waitForInstanceRunning\");\nvar waitUntilInstanceRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState11);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceRunning\");\n\n// src/waiters/waitForInstanceStatusOk.ts\n\nvar checkState12 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstanceStatusCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.InstanceStatuses);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.InstanceStatus.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"ok\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstanceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState12);\n}, \"waitForInstanceStatusOk\");\nvar waitUntilInstanceStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState12);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceStatusOk\");\n\n// src/waiters/waitForInstanceStopped.ts\n\nvar checkState13 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n let allStringEq_8 = returnComparator().length > 0;\n for (const element_7 of returnComparator()) {\n allStringEq_8 = allStringEq_8 && element_7 == \"stopped\";\n }\n if (allStringEq_8) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"pending\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"terminated\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState13);\n}, \"waitForInstanceStopped\");\nvar waitUntilInstanceStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState13);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceStopped\");\n\n// src/waiters/waitForInstanceTerminated.ts\n\nvar checkState14 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstancesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n let allStringEq_8 = returnComparator().length > 0;\n for (const element_7 of returnComparator()) {\n allStringEq_8 = allStringEq_8 && element_7 == \"terminated\";\n }\n if (allStringEq_8) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"pending\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Reservations);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Instances;\n });\n const flat_4 = [].concat(...projection_3);\n const projection_6 = flat_4.map((element_5) => {\n return element_5.State.Name;\n });\n return projection_6;\n }, \"returnComparator\");\n for (const anyStringEq_7 of returnComparator()) {\n if (anyStringEq_7 == \"stopping\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceTerminated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState14);\n}, \"waitForInstanceTerminated\");\nvar waitUntilInstanceTerminated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState14);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceTerminated\");\n\n// src/waiters/waitForInternetGatewayExists.ts\n\nvar checkState15 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInternetGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.InternetGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.InternetGatewayId;\n });\n return projection_3.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInternetGateway.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInternetGatewayExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState15);\n}, \"waitForInternetGatewayExists\");\nvar waitUntilInternetGatewayExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState15);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInternetGatewayExists\");\n\n// src/waiters/waitForKeyPairExists.ts\n\nvar checkState16 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeKeyPairsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.KeyPairs);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.KeyName;\n });\n return projection_3.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidKeyPair.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForKeyPairExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState16);\n}, \"waitForKeyPairExists\");\nvar waitUntilKeyPairExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState16);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilKeyPairExists\");\n\n// src/waiters/waitForNatGatewayAvailable.ts\n\nvar checkState17 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeNatGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleting\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NatGatewayNotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForNatGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState17);\n}, \"waitForNatGatewayAvailable\");\nvar waitUntilNatGatewayAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState17);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilNatGatewayAvailable\");\n\n// src/waiters/waitForNatGatewayDeleted.ts\n\nvar checkState18 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeNatGatewaysCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NatGateways);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NatGatewayNotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForNatGatewayDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState18);\n}, \"waitForNatGatewayDeleted\");\nvar waitUntilNatGatewayDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState18);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilNatGatewayDeleted\");\n\n// src/waiters/waitForNetworkInterfaceAvailable.ts\n\nvar checkState19 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeNetworkInterfacesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.NetworkInterfaces);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidNetworkInterfaceID.NotFound\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForNetworkInterfaceAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 20, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState19);\n}, \"waitForNetworkInterfaceAvailable\");\nvar waitUntilNetworkInterfaceAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 20, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState19);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilNetworkInterfaceAvailable\");\n\n// src/waiters/waitForSnapshotImported.ts\n\nvar checkState20 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImportSnapshotTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ImportSnapshotTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.SnapshotTaskDetail.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.ImportSnapshotTasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.SnapshotTaskDetail.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"error\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSnapshotImported = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState20);\n}, \"waitForSnapshotImported\");\nvar waitUntilSnapshotImported = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState20);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSnapshotImported\");\n\n// src/waiters/waitForSecurityGroupExists.ts\n\nvar checkState21 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSecurityGroupsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SecurityGroups);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.GroupId;\n });\n return projection_3.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidGroup.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSecurityGroupExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState21);\n}, \"waitForSecurityGroupExists\");\nvar waitUntilSecurityGroupExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState21);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSecurityGroupExists\");\n\n// src/waiters/waitForSnapshotCompleted.ts\n\nvar checkState22 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSnapshotsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Snapshots);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Snapshots);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"error\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSnapshotCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState22);\n}, \"waitForSnapshotCompleted\");\nvar waitUntilSnapshotCompleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState22);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSnapshotCompleted\");\n\n// src/waiters/waitForSpotInstanceRequestFulfilled.ts\n\nvar checkState23 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSpotInstanceRequestsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"fulfilled\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"request-canceled-and-instance-running\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"schedule-expired\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"canceled-before-fulfillment\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"bad-parameters\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.SpotInstanceRequests);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"system-error\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidSpotInstanceRequestID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSpotInstanceRequestFulfilled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState23);\n}, \"waitForSpotInstanceRequestFulfilled\");\nvar waitUntilSpotInstanceRequestFulfilled = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState23);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSpotInstanceRequestFulfilled\");\n\n// src/waiters/waitForStoreImageTaskComplete.ts\n\nvar checkState24 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeStoreImageTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.StoreImageTaskResults);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.StoreTaskState;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"Completed\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.StoreImageTaskResults);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.StoreTaskState;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.StoreImageTaskResults);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.StoreTaskState;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForStoreImageTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState24);\n}, \"waitForStoreImageTaskComplete\");\nvar waitUntilStoreImageTaskComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState24);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilStoreImageTaskComplete\");\n\n// src/waiters/waitForSubnetAvailable.ts\n\nvar checkState25 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeSubnetsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Subnets);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSubnetAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState25);\n}, \"waitForSubnetAvailable\");\nvar waitUntilSubnetAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState25);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSubnetAvailable\");\n\n// src/waiters/waitForSystemStatusOk.ts\n\nvar checkState26 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeInstanceStatusCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.InstanceStatuses);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.SystemStatus.Status;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"ok\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForSystemStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState26);\n}, \"waitForSystemStatusOk\");\nvar waitUntilSystemStatusOk = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState26);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilSystemStatusOk\");\n\n// src/waiters/waitForPasswordDataAvailable.ts\n\nvar checkState27 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetPasswordDataCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.PasswordData.length > 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForPasswordDataAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState27);\n}, \"waitForPasswordDataAvailable\");\nvar waitUntilPasswordDataAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState27);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilPasswordDataAvailable\");\n\n// src/waiters/waitForVolumeAvailable.ts\n\nvar checkState28 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVolumesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVolumeAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState28);\n}, \"waitForVolumeAvailable\");\nvar waitUntilVolumeAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState28);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVolumeAvailable\");\n\n// src/waiters/waitForVolumeDeleted.ts\n\nvar checkState29 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVolumesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVolume.NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVolumeDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState29);\n}, \"waitForVolumeDeleted\");\nvar waitUntilVolumeDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState29);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVolumeDeleted\");\n\n// src/waiters/waitForVolumeInUse.ts\n\nvar checkState30 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVolumesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"in-use\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Volumes);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVolumeInUse = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState30);\n}, \"waitForVolumeInUse\");\nvar waitUntilVolumeInUse = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState30);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVolumeInUse\");\n\n// src/waiters/waitForVpcAvailable.ts\n\nvar checkState31 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.Vpcs);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState31);\n}, \"waitForVpcAvailable\");\nvar waitUntilVpcAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState31);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcAvailable\");\n\n// src/waiters/waitForVpcExists.ts\n\nvar checkState32 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcsCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVpcID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState32);\n}, \"waitForVpcExists\");\nvar waitUntilVpcExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState32);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcExists\");\n\n// src/waiters/waitForVpcPeeringConnectionDeleted.ts\n\nvar checkState33 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcPeeringConnectionsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpcPeeringConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.Status.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVpcPeeringConnectionID.NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcPeeringConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState33);\n}, \"waitForVpcPeeringConnectionDeleted\");\nvar waitUntilVpcPeeringConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState33);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcPeeringConnectionDeleted\");\n\n// src/waiters/waitForVpcPeeringConnectionExists.ts\n\nvar checkState34 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpcPeeringConnectionsCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidVpcPeeringConnectionID.NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpcPeeringConnectionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState34);\n}, \"waitForVpcPeeringConnectionExists\");\nvar waitUntilVpcPeeringConnectionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState34);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpcPeeringConnectionExists\");\n\n// src/waiters/waitForVpnConnectionAvailable.ts\n\nvar checkState35 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpnConnectionsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"available\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleting\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"deleted\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpnConnectionAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState35);\n}, \"waitForVpnConnectionAvailable\");\nvar waitUntilVpnConnectionAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState35);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpnConnectionAvailable\");\n\n// src/waiters/waitForVpnConnectionDeleted.ts\n\nvar checkState36 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeVpnConnectionsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"deleted\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.VpnConnections);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"pending\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForVpnConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState36);\n}, \"waitForVpnConnectionDeleted\");\nvar waitUntilVpnConnectionDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState36);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilVpnConnectionDeleted\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EC2ServiceException,\n __Client,\n EC2Client,\n EC2,\n $Command,\n AcceptAddressTransferCommand,\n AcceptCapacityReservationBillingOwnershipCommand,\n AcceptReservedInstancesExchangeQuoteCommand,\n AcceptTransitGatewayMulticastDomainAssociationsCommand,\n AcceptTransitGatewayPeeringAttachmentCommand,\n AcceptTransitGatewayVpcAttachmentCommand,\n AcceptVpcEndpointConnectionsCommand,\n AcceptVpcPeeringConnectionCommand,\n AdvertiseByoipCidrCommand,\n AllocateAddressCommand,\n AllocateHostsCommand,\n AllocateIpamPoolCidrCommand,\n ApplySecurityGroupsToClientVpnTargetNetworkCommand,\n AssignIpv6AddressesCommand,\n AssignPrivateIpAddressesCommand,\n AssignPrivateNatGatewayAddressCommand,\n AssociateAddressCommand,\n AssociateCapacityReservationBillingOwnerCommand,\n AssociateClientVpnTargetNetworkCommand,\n AssociateDhcpOptionsCommand,\n AssociateEnclaveCertificateIamRoleCommand,\n AssociateIamInstanceProfileCommand,\n AssociateInstanceEventWindowCommand,\n AssociateIpamByoasnCommand,\n AssociateIpamResourceDiscoveryCommand,\n AssociateNatGatewayAddressCommand,\n AssociateRouteServerCommand,\n AssociateRouteTableCommand,\n AssociateSecurityGroupVpcCommand,\n AssociateSubnetCidrBlockCommand,\n AssociateTransitGatewayMulticastDomainCommand,\n AssociateTransitGatewayPolicyTableCommand,\n AssociateTransitGatewayRouteTableCommand,\n AssociateTrunkInterfaceCommand,\n AssociateVpcCidrBlockCommand,\n AttachClassicLinkVpcCommand,\n AttachInternetGatewayCommand,\n AttachNetworkInterfaceCommand,\n AttachVerifiedAccessTrustProviderCommand,\n AttachVolumeCommand,\n AttachVpnGatewayCommand,\n AuthorizeClientVpnIngressCommand,\n AuthorizeSecurityGroupEgressCommand,\n AuthorizeSecurityGroupIngressCommand,\n BundleInstanceCommand,\n CancelBundleTaskCommand,\n CancelCapacityReservationCommand,\n CancelCapacityReservationFleetsCommand,\n CancelConversionTaskCommand,\n CancelDeclarativePoliciesReportCommand,\n CancelExportTaskCommand,\n CancelImageLaunchPermissionCommand,\n CancelImportTaskCommand,\n CancelReservedInstancesListingCommand,\n CancelSpotFleetRequestsCommand,\n CancelSpotInstanceRequestsCommand,\n ConfirmProductInstanceCommand,\n CopyFpgaImageCommand,\n CopyImageCommand,\n CopySnapshotCommand,\n CreateCapacityReservationBySplittingCommand,\n CreateCapacityReservationCommand,\n CreateCapacityReservationFleetCommand,\n CreateCarrierGatewayCommand,\n CreateClientVpnEndpointCommand,\n CreateClientVpnRouteCommand,\n CreateCoipCidrCommand,\n CreateCoipPoolCommand,\n CreateCustomerGatewayCommand,\n CreateDefaultSubnetCommand,\n CreateDefaultVpcCommand,\n CreateDhcpOptionsCommand,\n CreateEgressOnlyInternetGatewayCommand,\n CreateFleetCommand,\n CreateFlowLogsCommand,\n CreateFpgaImageCommand,\n CreateImageCommand,\n CreateInstanceConnectEndpointCommand,\n CreateInstanceEventWindowCommand,\n CreateInstanceExportTaskCommand,\n CreateInternetGatewayCommand,\n CreateIpamCommand,\n CreateIpamExternalResourceVerificationTokenCommand,\n CreateIpamPoolCommand,\n CreateIpamResourceDiscoveryCommand,\n CreateIpamScopeCommand,\n CreateKeyPairCommand,\n CreateLaunchTemplateCommand,\n CreateLaunchTemplateVersionCommand,\n CreateLocalGatewayRouteCommand,\n CreateLocalGatewayRouteTableCommand,\n CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n CreateLocalGatewayRouteTableVpcAssociationCommand,\n CreateLocalGatewayVirtualInterfaceCommand,\n CreateLocalGatewayVirtualInterfaceGroupCommand,\n CreateManagedPrefixListCommand,\n CreateNatGatewayCommand,\n CreateNetworkAclCommand,\n CreateNetworkAclEntryCommand,\n CreateNetworkInsightsAccessScopeCommand,\n CreateNetworkInsightsPathCommand,\n CreateNetworkInterfaceCommand,\n CreateNetworkInterfacePermissionCommand,\n CreatePlacementGroupCommand,\n CreatePublicIpv4PoolCommand,\n CreateReplaceRootVolumeTaskCommand,\n CreateReservedInstancesListingCommand,\n CreateRestoreImageTaskCommand,\n CreateRouteCommand,\n CreateRouteServerCommand,\n CreateRouteServerEndpointCommand,\n CreateRouteServerPeerCommand,\n CreateRouteTableCommand,\n CreateSecurityGroupCommand,\n CreateSnapshotCommand,\n CreateSnapshotsCommand,\n CreateSpotDatafeedSubscriptionCommand,\n CreateStoreImageTaskCommand,\n CreateSubnetCidrReservationCommand,\n CreateSubnetCommand,\n CreateTagsCommand,\n CreateTrafficMirrorFilterCommand,\n CreateTrafficMirrorFilterRuleCommand,\n CreateTrafficMirrorSessionCommand,\n CreateTrafficMirrorTargetCommand,\n CreateTransitGatewayCommand,\n CreateTransitGatewayConnectCommand,\n CreateTransitGatewayConnectPeerCommand,\n CreateTransitGatewayMulticastDomainCommand,\n CreateTransitGatewayPeeringAttachmentCommand,\n CreateTransitGatewayPolicyTableCommand,\n CreateTransitGatewayPrefixListReferenceCommand,\n CreateTransitGatewayRouteCommand,\n CreateTransitGatewayRouteTableAnnouncementCommand,\n CreateTransitGatewayRouteTableCommand,\n CreateTransitGatewayVpcAttachmentCommand,\n CreateVerifiedAccessEndpointCommand,\n CreateVerifiedAccessGroupCommand,\n CreateVerifiedAccessInstanceCommand,\n CreateVerifiedAccessTrustProviderCommand,\n CreateVolumeCommand,\n CreateVpcBlockPublicAccessExclusionCommand,\n CreateVpcCommand,\n CreateVpcEndpointCommand,\n CreateVpcEndpointConnectionNotificationCommand,\n CreateVpcEndpointServiceConfigurationCommand,\n CreateVpcPeeringConnectionCommand,\n CreateVpnConnectionCommand,\n CreateVpnConnectionRouteCommand,\n CreateVpnGatewayCommand,\n DeleteCarrierGatewayCommand,\n DeleteClientVpnEndpointCommand,\n DeleteClientVpnRouteCommand,\n DeleteCoipCidrCommand,\n DeleteCoipPoolCommand,\n DeleteCustomerGatewayCommand,\n DeleteDhcpOptionsCommand,\n DeleteEgressOnlyInternetGatewayCommand,\n DeleteFleetsCommand,\n DeleteFlowLogsCommand,\n DeleteFpgaImageCommand,\n DeleteInstanceConnectEndpointCommand,\n DeleteInstanceEventWindowCommand,\n DeleteInternetGatewayCommand,\n DeleteIpamCommand,\n DeleteIpamExternalResourceVerificationTokenCommand,\n DeleteIpamPoolCommand,\n DeleteIpamResourceDiscoveryCommand,\n DeleteIpamScopeCommand,\n DeleteKeyPairCommand,\n DeleteLaunchTemplateCommand,\n DeleteLaunchTemplateVersionsCommand,\n DeleteLocalGatewayRouteCommand,\n DeleteLocalGatewayRouteTableCommand,\n DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationCommand,\n DeleteLocalGatewayRouteTableVpcAssociationCommand,\n DeleteLocalGatewayVirtualInterfaceCommand,\n DeleteLocalGatewayVirtualInterfaceGroupCommand,\n DeleteManagedPrefixListCommand,\n DeleteNatGatewayCommand,\n DeleteNetworkAclCommand,\n DeleteNetworkAclEntryCommand,\n DeleteNetworkInsightsAccessScopeAnalysisCommand,\n DeleteNetworkInsightsAccessScopeCommand,\n DeleteNetworkInsightsAnalysisCommand,\n DeleteNetworkInsightsPathCommand,\n DeleteNetworkInterfaceCommand,\n DeleteNetworkInterfacePermissionCommand,\n DeletePlacementGroupCommand,\n DeletePublicIpv4PoolCommand,\n DeleteQueuedReservedInstancesCommand,\n DeleteRouteCommand,\n DeleteRouteServerCommand,\n DeleteRouteServerEndpointCommand,\n DeleteRouteServerPeerCommand,\n DeleteRouteTableCommand,\n DeleteSecurityGroupCommand,\n DeleteSnapshotCommand,\n DeleteSpotDatafeedSubscriptionCommand,\n DeleteSubnetCidrReservationCommand,\n DeleteSubnetCommand,\n DeleteTagsCommand,\n DeleteTrafficMirrorFilterCommand,\n DeleteTrafficMirrorFilterRuleCommand,\n DeleteTrafficMirrorSessionCommand,\n DeleteTrafficMirrorTargetCommand,\n DeleteTransitGatewayCommand,\n DeleteTransitGatewayConnectCommand,\n DeleteTransitGatewayConnectPeerCommand,\n DeleteTransitGatewayMulticastDomainCommand,\n DeleteTransitGatewayPeeringAttachmentCommand,\n DeleteTransitGatewayPolicyTableCommand,\n DeleteTransitGatewayPrefixListReferenceCommand,\n DeleteTransitGatewayRouteCommand,\n DeleteTransitGatewayRouteTableAnnouncementCommand,\n DeleteTransitGatewayRouteTableCommand,\n DeleteTransitGatewayVpcAttachmentCommand,\n DeleteVerifiedAccessEndpointCommand,\n DeleteVerifiedAccessGroupCommand,\n DeleteVerifiedAccessInstanceCommand,\n DeleteVerifiedAccessTrustProviderCommand,\n DeleteVolumeCommand,\n DeleteVpcBlockPublicAccessExclusionCommand,\n DeleteVpcCommand,\n DeleteVpcEndpointConnectionNotificationsCommand,\n DeleteVpcEndpointServiceConfigurationsCommand,\n DeleteVpcEndpointsCommand,\n DeleteVpcPeeringConnectionCommand,\n DeleteVpnConnectionCommand,\n DeleteVpnConnectionRouteCommand,\n DeleteVpnGatewayCommand,\n DeprovisionByoipCidrCommand,\n DeprovisionIpamByoasnCommand,\n DeprovisionIpamPoolCidrCommand,\n DeprovisionPublicIpv4PoolCidrCommand,\n DeregisterImageCommand,\n DeregisterInstanceEventNotificationAttributesCommand,\n DeregisterTransitGatewayMulticastGroupMembersCommand,\n DeregisterTransitGatewayMulticastGroupSourcesCommand,\n DescribeAccountAttributesCommand,\n DescribeAddressTransfersCommand,\n DescribeAddressesAttributeCommand,\n DescribeAddressesCommand,\n DescribeAggregateIdFormatCommand,\n DescribeAvailabilityZonesCommand,\n DescribeAwsNetworkPerformanceMetricSubscriptionsCommand,\n DescribeBundleTasksCommand,\n DescribeByoipCidrsCommand,\n DescribeCapacityBlockExtensionHistoryCommand,\n DescribeCapacityBlockExtensionOfferingsCommand,\n DescribeCapacityBlockOfferingsCommand,\n DescribeCapacityReservationBillingRequestsCommand,\n DescribeCapacityReservationFleetsCommand,\n DescribeCapacityReservationsCommand,\n DescribeCarrierGatewaysCommand,\n DescribeClassicLinkInstancesCommand,\n DescribeClientVpnAuthorizationRulesCommand,\n DescribeClientVpnConnectionsCommand,\n DescribeClientVpnEndpointsCommand,\n DescribeClientVpnRoutesCommand,\n DescribeClientVpnTargetNetworksCommand,\n DescribeCoipPoolsCommand,\n DescribeConversionTasksCommand,\n DescribeCustomerGatewaysCommand,\n DescribeDeclarativePoliciesReportsCommand,\n DescribeDhcpOptionsCommand,\n DescribeEgressOnlyInternetGatewaysCommand,\n DescribeElasticGpusCommand,\n DescribeExportImageTasksCommand,\n DescribeExportTasksCommand,\n DescribeFastLaunchImagesCommand,\n DescribeFastSnapshotRestoresCommand,\n DescribeFleetHistoryCommand,\n DescribeFleetInstancesCommand,\n DescribeFleetsCommand,\n DescribeFlowLogsCommand,\n DescribeFpgaImageAttributeCommand,\n DescribeFpgaImagesCommand,\n DescribeHostReservationOfferingsCommand,\n DescribeHostReservationsCommand,\n DescribeHostsCommand,\n DescribeIamInstanceProfileAssociationsCommand,\n DescribeIdFormatCommand,\n DescribeIdentityIdFormatCommand,\n DescribeImageAttributeCommand,\n DescribeImagesCommand,\n DescribeImportImageTasksCommand,\n DescribeImportSnapshotTasksCommand,\n DescribeInstanceAttributeCommand,\n DescribeInstanceConnectEndpointsCommand,\n DescribeInstanceCreditSpecificationsCommand,\n DescribeInstanceEventNotificationAttributesCommand,\n DescribeInstanceEventWindowsCommand,\n DescribeInstanceImageMetadataCommand,\n DescribeInstanceStatusCommand,\n DescribeInstanceTopologyCommand,\n DescribeInstanceTypeOfferingsCommand,\n DescribeInstanceTypesCommand,\n DescribeInstancesCommand,\n DescribeInternetGatewaysCommand,\n DescribeIpamByoasnCommand,\n DescribeIpamExternalResourceVerificationTokensCommand,\n DescribeIpamPoolsCommand,\n DescribeIpamResourceDiscoveriesCommand,\n DescribeIpamResourceDiscoveryAssociationsCommand,\n DescribeIpamScopesCommand,\n DescribeIpamsCommand,\n DescribeIpv6PoolsCommand,\n DescribeKeyPairsCommand,\n DescribeLaunchTemplateVersionsCommand,\n DescribeLaunchTemplatesCommand,\n DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCommand,\n DescribeLocalGatewayRouteTableVpcAssociationsCommand,\n DescribeLocalGatewayRouteTablesCommand,\n DescribeLocalGatewayVirtualInterfaceGroupsCommand,\n DescribeLocalGatewayVirtualInterfacesCommand,\n DescribeLocalGatewaysCommand,\n DescribeLockedSnapshotsCommand,\n DescribeMacHostsCommand,\n DescribeManagedPrefixListsCommand,\n DescribeMovingAddressesCommand,\n DescribeNatGatewaysCommand,\n DescribeNetworkAclsCommand,\n DescribeNetworkInsightsAccessScopeAnalysesCommand,\n DescribeNetworkInsightsAccessScopesCommand,\n DescribeNetworkInsightsAnalysesCommand,\n DescribeNetworkInsightsPathsCommand,\n DescribeNetworkInterfaceAttributeCommand,\n DescribeNetworkInterfacePermissionsCommand,\n DescribeNetworkInterfacesCommand,\n DescribeOutpostLagsCommand,\n DescribePlacementGroupsCommand,\n DescribePrefixListsCommand,\n DescribePrincipalIdFormatCommand,\n DescribePublicIpv4PoolsCommand,\n DescribeRegionsCommand,\n DescribeReplaceRootVolumeTasksCommand,\n DescribeReservedInstancesCommand,\n DescribeReservedInstancesListingsCommand,\n DescribeReservedInstancesModificationsCommand,\n DescribeReservedInstancesOfferingsCommand,\n DescribeRouteServerEndpointsCommand,\n DescribeRouteServerPeersCommand,\n DescribeRouteServersCommand,\n DescribeRouteTablesCommand,\n DescribeScheduledInstanceAvailabilityCommand,\n DescribeScheduledInstancesCommand,\n DescribeSecurityGroupReferencesCommand,\n DescribeSecurityGroupRulesCommand,\n DescribeSecurityGroupVpcAssociationsCommand,\n DescribeSecurityGroupsCommand,\n DescribeServiceLinkVirtualInterfacesCommand,\n DescribeSnapshotAttributeCommand,\n DescribeSnapshotTierStatusCommand,\n DescribeSnapshotsCommand,\n DescribeSpotDatafeedSubscriptionCommand,\n DescribeSpotFleetInstancesCommand,\n DescribeSpotFleetRequestHistoryCommand,\n DescribeSpotFleetRequestsCommand,\n DescribeSpotInstanceRequestsCommand,\n DescribeSpotPriceHistoryCommand,\n DescribeStaleSecurityGroupsCommand,\n DescribeStoreImageTasksCommand,\n DescribeSubnetsCommand,\n DescribeTagsCommand,\n DescribeTrafficMirrorFilterRulesCommand,\n DescribeTrafficMirrorFiltersCommand,\n DescribeTrafficMirrorSessionsCommand,\n DescribeTrafficMirrorTargetsCommand,\n DescribeTransitGatewayAttachmentsCommand,\n DescribeTransitGatewayConnectPeersCommand,\n DescribeTransitGatewayConnectsCommand,\n DescribeTransitGatewayMulticastDomainsCommand,\n DescribeTransitGatewayPeeringAttachmentsCommand,\n DescribeTransitGatewayPolicyTablesCommand,\n DescribeTransitGatewayRouteTableAnnouncementsCommand,\n DescribeTransitGatewayRouteTablesCommand,\n DescribeTransitGatewayVpcAttachmentsCommand,\n DescribeTransitGatewaysCommand,\n DescribeTrunkInterfaceAssociationsCommand,\n DescribeVerifiedAccessEndpointsCommand,\n DescribeVerifiedAccessGroupsCommand,\n DescribeVerifiedAccessInstanceLoggingConfigurationsCommand,\n DescribeVerifiedAccessInstancesCommand,\n DescribeVerifiedAccessTrustProvidersCommand,\n DescribeVolumeAttributeCommand,\n DescribeVolumeStatusCommand,\n DescribeVolumesCommand,\n DescribeVolumesModificationsCommand,\n DescribeVpcAttributeCommand,\n DescribeVpcBlockPublicAccessExclusionsCommand,\n DescribeVpcBlockPublicAccessOptionsCommand,\n DescribeVpcClassicLinkCommand,\n DescribeVpcClassicLinkDnsSupportCommand,\n DescribeVpcEndpointAssociationsCommand,\n DescribeVpcEndpointConnectionNotificationsCommand,\n DescribeVpcEndpointConnectionsCommand,\n DescribeVpcEndpointServiceConfigurationsCommand,\n DescribeVpcEndpointServicePermissionsCommand,\n DescribeVpcEndpointServicesCommand,\n DescribeVpcEndpointsCommand,\n DescribeVpcPeeringConnectionsCommand,\n DescribeVpcsCommand,\n DescribeVpnConnectionsCommand,\n DescribeVpnGatewaysCommand,\n DetachClassicLinkVpcCommand,\n DetachInternetGatewayCommand,\n DetachNetworkInterfaceCommand,\n DetachVerifiedAccessTrustProviderCommand,\n DetachVolumeCommand,\n DetachVpnGatewayCommand,\n DisableAddressTransferCommand,\n DisableAllowedImagesSettingsCommand,\n DisableAwsNetworkPerformanceMetricSubscriptionCommand,\n DisableEbsEncryptionByDefaultCommand,\n DisableFastLaunchCommand,\n DisableFastSnapshotRestoresCommand,\n DisableImageBlockPublicAccessCommand,\n DisableImageCommand,\n DisableImageDeprecationCommand,\n DisableImageDeregistrationProtectionCommand,\n DisableIpamOrganizationAdminAccountCommand,\n DisableRouteServerPropagationCommand,\n DisableSerialConsoleAccessCommand,\n DisableSnapshotBlockPublicAccessCommand,\n DisableTransitGatewayRouteTablePropagationCommand,\n DisableVgwRoutePropagationCommand,\n DisableVpcClassicLinkCommand,\n DisableVpcClassicLinkDnsSupportCommand,\n DisassociateAddressCommand,\n DisassociateCapacityReservationBillingOwnerCommand,\n DisassociateClientVpnTargetNetworkCommand,\n DisassociateEnclaveCertificateIamRoleCommand,\n DisassociateIamInstanceProfileCommand,\n DisassociateInstanceEventWindowCommand,\n DisassociateIpamByoasnCommand,\n DisassociateIpamResourceDiscoveryCommand,\n DisassociateNatGatewayAddressCommand,\n DisassociateRouteServerCommand,\n DisassociateRouteTableCommand,\n DisassociateSecurityGroupVpcCommand,\n DisassociateSubnetCidrBlockCommand,\n DisassociateTransitGatewayMulticastDomainCommand,\n DisassociateTransitGatewayPolicyTableCommand,\n DisassociateTransitGatewayRouteTableCommand,\n DisassociateTrunkInterfaceCommand,\n DisassociateVpcCidrBlockCommand,\n EnableAddressTransferCommand,\n EnableAllowedImagesSettingsCommand,\n EnableAwsNetworkPerformanceMetricSubscriptionCommand,\n EnableEbsEncryptionByDefaultCommand,\n EnableFastLaunchCommand,\n EnableFastSnapshotRestoresCommand,\n EnableImageBlockPublicAccessCommand,\n EnableImageCommand,\n EnableImageDeprecationCommand,\n EnableImageDeregistrationProtectionCommand,\n EnableIpamOrganizationAdminAccountCommand,\n EnableReachabilityAnalyzerOrganizationSharingCommand,\n EnableRouteServerPropagationCommand,\n EnableSerialConsoleAccessCommand,\n EnableSnapshotBlockPublicAccessCommand,\n EnableTransitGatewayRouteTablePropagationCommand,\n EnableVgwRoutePropagationCommand,\n EnableVolumeIOCommand,\n EnableVpcClassicLinkCommand,\n EnableVpcClassicLinkDnsSupportCommand,\n ExportClientVpnClientCertificateRevocationListCommand,\n ExportClientVpnClientConfigurationCommand,\n ExportImageCommand,\n ExportTransitGatewayRoutesCommand,\n ExportVerifiedAccessInstanceClientConfigurationCommand,\n GetAllowedImagesSettingsCommand,\n GetAssociatedEnclaveCertificateIamRolesCommand,\n GetAssociatedIpv6PoolCidrsCommand,\n GetAwsNetworkPerformanceDataCommand,\n GetCapacityReservationUsageCommand,\n GetCoipPoolUsageCommand,\n GetConsoleOutputCommand,\n GetConsoleScreenshotCommand,\n GetDeclarativePoliciesReportSummaryCommand,\n GetDefaultCreditSpecificationCommand,\n GetEbsDefaultKmsKeyIdCommand,\n GetEbsEncryptionByDefaultCommand,\n GetFlowLogsIntegrationTemplateCommand,\n GetGroupsForCapacityReservationCommand,\n GetHostReservationPurchasePreviewCommand,\n GetImageBlockPublicAccessStateCommand,\n GetInstanceMetadataDefaultsCommand,\n GetInstanceTpmEkPubCommand,\n GetInstanceTypesFromInstanceRequirementsCommand,\n GetInstanceUefiDataCommand,\n GetIpamAddressHistoryCommand,\n GetIpamDiscoveredAccountsCommand,\n GetIpamDiscoveredPublicAddressesCommand,\n GetIpamDiscoveredResourceCidrsCommand,\n GetIpamPoolAllocationsCommand,\n GetIpamPoolCidrsCommand,\n GetIpamResourceCidrsCommand,\n GetLaunchTemplateDataCommand,\n GetManagedPrefixListAssociationsCommand,\n GetManagedPrefixListEntriesCommand,\n GetNetworkInsightsAccessScopeAnalysisFindingsCommand,\n GetNetworkInsightsAccessScopeContentCommand,\n GetPasswordDataCommand,\n GetReservedInstancesExchangeQuoteCommand,\n GetRouteServerAssociationsCommand,\n GetRouteServerPropagationsCommand,\n GetRouteServerRoutingDatabaseCommand,\n GetSecurityGroupsForVpcCommand,\n GetSerialConsoleAccessStatusCommand,\n GetSnapshotBlockPublicAccessStateCommand,\n GetSpotPlacementScoresCommand,\n GetSubnetCidrReservationsCommand,\n GetTransitGatewayAttachmentPropagationsCommand,\n GetTransitGatewayMulticastDomainAssociationsCommand,\n GetTransitGatewayPolicyTableAssociationsCommand,\n GetTransitGatewayPolicyTableEntriesCommand,\n GetTransitGatewayPrefixListReferencesCommand,\n GetTransitGatewayRouteTableAssociationsCommand,\n GetTransitGatewayRouteTablePropagationsCommand,\n GetVerifiedAccessEndpointPolicyCommand,\n GetVerifiedAccessEndpointTargetsCommand,\n GetVerifiedAccessGroupPolicyCommand,\n GetVpnConnectionDeviceSampleConfigurationCommand,\n GetVpnConnectionDeviceTypesCommand,\n GetVpnTunnelReplacementStatusCommand,\n ImportClientVpnClientCertificateRevocationListCommand,\n ImportImageCommand,\n ImportInstanceCommand,\n ImportKeyPairCommand,\n ImportSnapshotCommand,\n ImportVolumeCommand,\n ListImagesInRecycleBinCommand,\n ListSnapshotsInRecycleBinCommand,\n LockSnapshotCommand,\n ModifyAddressAttributeCommand,\n ModifyAvailabilityZoneGroupCommand,\n ModifyCapacityReservationCommand,\n ModifyCapacityReservationFleetCommand,\n ModifyClientVpnEndpointCommand,\n ModifyDefaultCreditSpecificationCommand,\n ModifyEbsDefaultKmsKeyIdCommand,\n ModifyFleetCommand,\n ModifyFpgaImageAttributeCommand,\n ModifyHostsCommand,\n ModifyIdFormatCommand,\n ModifyIdentityIdFormatCommand,\n ModifyImageAttributeCommand,\n ModifyInstanceAttributeCommand,\n ModifyInstanceCapacityReservationAttributesCommand,\n ModifyInstanceCpuOptionsCommand,\n ModifyInstanceCreditSpecificationCommand,\n ModifyInstanceEventStartTimeCommand,\n ModifyInstanceEventWindowCommand,\n ModifyInstanceMaintenanceOptionsCommand,\n ModifyInstanceMetadataDefaultsCommand,\n ModifyInstanceMetadataOptionsCommand,\n ModifyInstanceNetworkPerformanceOptionsCommand,\n ModifyInstancePlacementCommand,\n ModifyIpamCommand,\n ModifyIpamPoolCommand,\n ModifyIpamResourceCidrCommand,\n ModifyIpamResourceDiscoveryCommand,\n ModifyIpamScopeCommand,\n ModifyLaunchTemplateCommand,\n ModifyLocalGatewayRouteCommand,\n ModifyManagedPrefixListCommand,\n ModifyNetworkInterfaceAttributeCommand,\n ModifyPrivateDnsNameOptionsCommand,\n ModifyReservedInstancesCommand,\n ModifyRouteServerCommand,\n ModifySecurityGroupRulesCommand,\n ModifySnapshotAttributeCommand,\n ModifySnapshotTierCommand,\n ModifySpotFleetRequestCommand,\n ModifySubnetAttributeCommand,\n ModifyTrafficMirrorFilterNetworkServicesCommand,\n ModifyTrafficMirrorFilterRuleCommand,\n ModifyTrafficMirrorSessionCommand,\n ModifyTransitGatewayCommand,\n ModifyTransitGatewayPrefixListReferenceCommand,\n ModifyTransitGatewayVpcAttachmentCommand,\n ModifyVerifiedAccessEndpointCommand,\n ModifyVerifiedAccessEndpointPolicyCommand,\n ModifyVerifiedAccessGroupCommand,\n ModifyVerifiedAccessGroupPolicyCommand,\n ModifyVerifiedAccessInstanceCommand,\n ModifyVerifiedAccessInstanceLoggingConfigurationCommand,\n ModifyVerifiedAccessTrustProviderCommand,\n ModifyVolumeAttributeCommand,\n ModifyVolumeCommand,\n ModifyVpcAttributeCommand,\n ModifyVpcBlockPublicAccessExclusionCommand,\n ModifyVpcBlockPublicAccessOptionsCommand,\n ModifyVpcEndpointCommand,\n ModifyVpcEndpointConnectionNotificationCommand,\n ModifyVpcEndpointServiceConfigurationCommand,\n ModifyVpcEndpointServicePayerResponsibilityCommand,\n ModifyVpcEndpointServicePermissionsCommand,\n ModifyVpcPeeringConnectionOptionsCommand,\n ModifyVpcTenancyCommand,\n ModifyVpnConnectionCommand,\n ModifyVpnConnectionOptionsCommand,\n ModifyVpnTunnelCertificateCommand,\n ModifyVpnTunnelOptionsCommand,\n MonitorInstancesCommand,\n MoveAddressToVpcCommand,\n MoveByoipCidrToIpamCommand,\n MoveCapacityReservationInstancesCommand,\n ProvisionByoipCidrCommand,\n ProvisionIpamByoasnCommand,\n ProvisionIpamPoolCidrCommand,\n ProvisionPublicIpv4PoolCidrCommand,\n PurchaseCapacityBlockCommand,\n PurchaseCapacityBlockExtensionCommand,\n PurchaseHostReservationCommand,\n PurchaseReservedInstancesOfferingCommand,\n PurchaseScheduledInstancesCommand,\n RebootInstancesCommand,\n RegisterImageCommand,\n RegisterInstanceEventNotificationAttributesCommand,\n RegisterTransitGatewayMulticastGroupMembersCommand,\n RegisterTransitGatewayMulticastGroupSourcesCommand,\n RejectCapacityReservationBillingOwnershipCommand,\n RejectTransitGatewayMulticastDomainAssociationsCommand,\n RejectTransitGatewayPeeringAttachmentCommand,\n RejectTransitGatewayVpcAttachmentCommand,\n RejectVpcEndpointConnectionsCommand,\n RejectVpcPeeringConnectionCommand,\n ReleaseAddressCommand,\n ReleaseHostsCommand,\n ReleaseIpamPoolAllocationCommand,\n ReplaceIamInstanceProfileAssociationCommand,\n ReplaceImageCriteriaInAllowedImagesSettingsCommand,\n ReplaceNetworkAclAssociationCommand,\n ReplaceNetworkAclEntryCommand,\n ReplaceRouteCommand,\n ReplaceRouteTableAssociationCommand,\n ReplaceTransitGatewayRouteCommand,\n ReplaceVpnTunnelCommand,\n ReportInstanceStatusCommand,\n RequestSpotFleetCommand,\n RequestSpotInstancesCommand,\n ResetAddressAttributeCommand,\n ResetEbsDefaultKmsKeyIdCommand,\n ResetFpgaImageAttributeCommand,\n ResetImageAttributeCommand,\n ResetInstanceAttributeCommand,\n ResetNetworkInterfaceAttributeCommand,\n ResetSnapshotAttributeCommand,\n RestoreAddressToClassicCommand,\n RestoreImageFromRecycleBinCommand,\n RestoreManagedPrefixListVersionCommand,\n RestoreSnapshotFromRecycleBinCommand,\n RestoreSnapshotTierCommand,\n RevokeClientVpnIngressCommand,\n RevokeSecurityGroupEgressCommand,\n RevokeSecurityGroupIngressCommand,\n RunInstancesCommand,\n RunScheduledInstancesCommand,\n SearchLocalGatewayRoutesCommand,\n SearchTransitGatewayMulticastGroupsCommand,\n SearchTransitGatewayRoutesCommand,\n SendDiagnosticInterruptCommand,\n StartDeclarativePoliciesReportCommand,\n StartInstancesCommand,\n StartNetworkInsightsAccessScopeAnalysisCommand,\n StartNetworkInsightsAnalysisCommand,\n StartVpcEndpointServicePrivateDnsVerificationCommand,\n StopInstancesCommand,\n TerminateClientVpnConnectionsCommand,\n TerminateInstancesCommand,\n UnassignIpv6AddressesCommand,\n UnassignPrivateIpAddressesCommand,\n UnassignPrivateNatGatewayAddressCommand,\n UnlockSnapshotCommand,\n UnmonitorInstancesCommand,\n UpdateSecurityGroupRuleDescriptionsEgressCommand,\n UpdateSecurityGroupRuleDescriptionsIngressCommand,\n WithdrawByoipCidrCommand,\n paginateDescribeAddressTransfers,\n paginateDescribeAddressesAttribute,\n paginateDescribeAwsNetworkPerformanceMetricSubscriptions,\n paginateDescribeByoipCidrs,\n paginateDescribeCapacityBlockExtensionHistory,\n paginateDescribeCapacityBlockExtensionOfferings,\n paginateDescribeCapacityBlockOfferings,\n paginateDescribeCapacityReservationBillingRequests,\n paginateDescribeCapacityReservationFleets,\n paginateDescribeCapacityReservations,\n paginateDescribeCarrierGateways,\n paginateDescribeClassicLinkInstances,\n paginateDescribeClientVpnAuthorizationRules,\n paginateDescribeClientVpnConnections,\n paginateDescribeClientVpnEndpoints,\n paginateDescribeClientVpnRoutes,\n paginateDescribeClientVpnTargetNetworks,\n paginateDescribeCoipPools,\n paginateDescribeDhcpOptions,\n paginateDescribeEgressOnlyInternetGateways,\n paginateDescribeExportImageTasks,\n paginateDescribeFastLaunchImages,\n paginateDescribeFastSnapshotRestores,\n paginateDescribeFleets,\n paginateDescribeFlowLogs,\n paginateDescribeFpgaImages,\n paginateDescribeHostReservationOfferings,\n paginateDescribeHostReservations,\n paginateDescribeHosts,\n paginateDescribeIamInstanceProfileAssociations,\n paginateDescribeImages,\n paginateDescribeImportImageTasks,\n paginateDescribeImportSnapshotTasks,\n paginateDescribeInstanceConnectEndpoints,\n paginateDescribeInstanceCreditSpecifications,\n paginateDescribeInstanceEventWindows,\n paginateDescribeInstanceImageMetadata,\n paginateDescribeInstanceStatus,\n paginateDescribeInstanceTopology,\n paginateDescribeInstanceTypeOfferings,\n paginateDescribeInstanceTypes,\n paginateDescribeInstances,\n paginateDescribeInternetGateways,\n paginateDescribeIpamPools,\n paginateDescribeIpamResourceDiscoveries,\n paginateDescribeIpamResourceDiscoveryAssociations,\n paginateDescribeIpamScopes,\n paginateDescribeIpams,\n paginateDescribeIpv6Pools,\n paginateDescribeLaunchTemplateVersions,\n paginateDescribeLaunchTemplates,\n paginateDescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations,\n paginateDescribeLocalGatewayRouteTableVpcAssociations,\n paginateDescribeLocalGatewayRouteTables,\n paginateDescribeLocalGatewayVirtualInterfaceGroups,\n paginateDescribeLocalGatewayVirtualInterfaces,\n paginateDescribeLocalGateways,\n paginateDescribeMacHosts,\n paginateDescribeManagedPrefixLists,\n paginateDescribeMovingAddresses,\n paginateDescribeNatGateways,\n paginateDescribeNetworkAcls,\n paginateDescribeNetworkInsightsAccessScopeAnalyses,\n paginateDescribeNetworkInsightsAccessScopes,\n paginateDescribeNetworkInsightsAnalyses,\n paginateDescribeNetworkInsightsPaths,\n paginateDescribeNetworkInterfacePermissions,\n paginateDescribeNetworkInterfaces,\n paginateDescribePrefixLists,\n paginateDescribePrincipalIdFormat,\n paginateDescribePublicIpv4Pools,\n paginateDescribeReplaceRootVolumeTasks,\n paginateDescribeReservedInstancesModifications,\n paginateDescribeReservedInstancesOfferings,\n paginateDescribeRouteServerEndpoints,\n paginateDescribeRouteServerPeers,\n paginateDescribeRouteServers,\n paginateDescribeRouteTables,\n paginateDescribeScheduledInstanceAvailability,\n paginateDescribeScheduledInstances,\n paginateDescribeSecurityGroupRules,\n paginateDescribeSecurityGroupVpcAssociations,\n paginateDescribeSecurityGroups,\n paginateDescribeSnapshotTierStatus,\n paginateDescribeSnapshots,\n paginateDescribeSpotFleetRequests,\n paginateDescribeSpotInstanceRequests,\n paginateDescribeSpotPriceHistory,\n paginateDescribeStaleSecurityGroups,\n paginateDescribeStoreImageTasks,\n paginateDescribeSubnets,\n paginateDescribeTags,\n paginateDescribeTrafficMirrorFilters,\n paginateDescribeTrafficMirrorSessions,\n paginateDescribeTrafficMirrorTargets,\n paginateDescribeTransitGatewayAttachments,\n paginateDescribeTransitGatewayConnectPeers,\n paginateDescribeTransitGatewayConnects,\n paginateDescribeTransitGatewayMulticastDomains,\n paginateDescribeTransitGatewayPeeringAttachments,\n paginateDescribeTransitGatewayPolicyTables,\n paginateDescribeTransitGatewayRouteTableAnnouncements,\n paginateDescribeTransitGatewayRouteTables,\n paginateDescribeTransitGatewayVpcAttachments,\n paginateDescribeTransitGateways,\n paginateDescribeTrunkInterfaceAssociations,\n paginateDescribeVerifiedAccessEndpoints,\n paginateDescribeVerifiedAccessGroups,\n paginateDescribeVerifiedAccessInstanceLoggingConfigurations,\n paginateDescribeVerifiedAccessInstances,\n paginateDescribeVerifiedAccessTrustProviders,\n paginateDescribeVolumeStatus,\n paginateDescribeVolumesModifications,\n paginateDescribeVolumes,\n paginateDescribeVpcClassicLinkDnsSupport,\n paginateDescribeVpcEndpointConnectionNotifications,\n paginateDescribeVpcEndpointConnections,\n paginateDescribeVpcEndpointServiceConfigurations,\n paginateDescribeVpcEndpointServicePermissions,\n paginateDescribeVpcEndpoints,\n paginateDescribeVpcPeeringConnections,\n paginateDescribeVpcs,\n paginateGetAssociatedIpv6PoolCidrs,\n paginateGetAwsNetworkPerformanceData,\n paginateGetGroupsForCapacityReservation,\n paginateGetInstanceTypesFromInstanceRequirements,\n paginateGetIpamAddressHistory,\n paginateGetIpamDiscoveredAccounts,\n paginateGetIpamDiscoveredResourceCidrs,\n paginateGetIpamPoolAllocations,\n paginateGetIpamPoolCidrs,\n paginateGetIpamResourceCidrs,\n paginateGetManagedPrefixListAssociations,\n paginateGetManagedPrefixListEntries,\n paginateGetNetworkInsightsAccessScopeAnalysisFindings,\n paginateGetSecurityGroupsForVpc,\n paginateGetSpotPlacementScores,\n paginateGetTransitGatewayAttachmentPropagations,\n paginateGetTransitGatewayMulticastDomainAssociations,\n paginateGetTransitGatewayPolicyTableAssociations,\n paginateGetTransitGatewayPrefixListReferences,\n paginateGetTransitGatewayRouteTableAssociations,\n paginateGetTransitGatewayRouteTablePropagations,\n paginateGetVpnConnectionDeviceTypes,\n paginateListImagesInRecycleBin,\n paginateListSnapshotsInRecycleBin,\n paginateSearchLocalGatewayRoutes,\n paginateSearchTransitGatewayMulticastGroups,\n waitForBundleTaskComplete,\n waitUntilBundleTaskComplete,\n waitForConversionTaskCancelled,\n waitUntilConversionTaskCancelled,\n waitForConversionTaskCompleted,\n waitUntilConversionTaskCompleted,\n waitForConversionTaskDeleted,\n waitUntilConversionTaskDeleted,\n waitForCustomerGatewayAvailable,\n waitUntilCustomerGatewayAvailable,\n waitForExportTaskCancelled,\n waitUntilExportTaskCancelled,\n waitForExportTaskCompleted,\n waitUntilExportTaskCompleted,\n waitForImageAvailable,\n waitUntilImageAvailable,\n waitForImageExists,\n waitUntilImageExists,\n waitForInstanceExists,\n waitUntilInstanceExists,\n waitForInstanceRunning,\n waitUntilInstanceRunning,\n waitForInstanceStatusOk,\n waitUntilInstanceStatusOk,\n waitForInstanceStopped,\n waitUntilInstanceStopped,\n waitForInstanceTerminated,\n waitUntilInstanceTerminated,\n waitForInternetGatewayExists,\n waitUntilInternetGatewayExists,\n waitForKeyPairExists,\n waitUntilKeyPairExists,\n waitForNatGatewayAvailable,\n waitUntilNatGatewayAvailable,\n waitForNatGatewayDeleted,\n waitUntilNatGatewayDeleted,\n waitForNetworkInterfaceAvailable,\n waitUntilNetworkInterfaceAvailable,\n waitForSnapshotImported,\n waitUntilSnapshotImported,\n waitForSecurityGroupExists,\n waitUntilSecurityGroupExists,\n waitForSnapshotCompleted,\n waitUntilSnapshotCompleted,\n waitForSpotInstanceRequestFulfilled,\n waitUntilSpotInstanceRequestFulfilled,\n waitForStoreImageTaskComplete,\n waitUntilStoreImageTaskComplete,\n waitForSubnetAvailable,\n waitUntilSubnetAvailable,\n waitForSystemStatusOk,\n waitUntilSystemStatusOk,\n waitForPasswordDataAvailable,\n waitUntilPasswordDataAvailable,\n waitForVolumeAvailable,\n waitUntilVolumeAvailable,\n waitForVolumeDeleted,\n waitUntilVolumeDeleted,\n waitForVolumeInUse,\n waitUntilVolumeInUse,\n waitForVpcAvailable,\n waitUntilVpcAvailable,\n waitForVpcExists,\n waitUntilVpcExists,\n waitForVpcPeeringConnectionDeleted,\n waitUntilVpcPeeringConnectionDeleted,\n waitForVpcPeeringConnectionExists,\n waitUntilVpcPeeringConnectionExists,\n waitForVpnConnectionAvailable,\n waitUntilVpnConnectionAvailable,\n waitForVpnConnectionDeleted,\n waitUntilVpnConnectionDeleted,\n AcceleratorManufacturer,\n AcceleratorName,\n AcceleratorType,\n ResourceType,\n AddressTransferStatus,\n TransitGatewayAttachmentResourceType,\n TransitGatewayMulitcastDomainAssociationState,\n DynamicRoutingValue,\n TransitGatewayAttachmentState,\n ApplianceModeSupportValue,\n DnsSupportValue,\n Ipv6SupportValue,\n SecurityGroupReferencingSupportValue,\n VpcPeeringConnectionStateReasonCode,\n Protocol,\n AccountAttributeName,\n InstanceHealthStatus,\n ActivityStatus,\n PrincipalType,\n DomainType,\n ServiceManaged,\n AddressAttributeName,\n AddressFamily,\n AsnAssociationState,\n ByoipCidrState,\n Affinity,\n AutoPlacement,\n HostMaintenance,\n HostRecovery,\n IpamPoolAllocationResourceType,\n AllocationState,\n AllocationStrategy,\n AllocationType,\n AllowedImagesSettingsDisabledState,\n AllowedImagesSettingsEnabledState,\n AllowsMultipleInstanceTypes,\n NatGatewayAddressStatus,\n AssociationStatusCode,\n IamInstanceProfileAssociationState,\n InstanceEventWindowState,\n WeekDay,\n IpamAssociatedResourceDiscoveryStatus,\n IpamResourceDiscoveryAssociationState,\n RouteServerAssociationState,\n RouteTableAssociationStateCode,\n SecurityGroupVpcAssociationState,\n IpSource,\n Ipv6AddressAttribute,\n SubnetCidrBlockStateCode,\n TransitGatewayAssociationState,\n InterfaceProtocolType,\n VpcCidrBlockStateCode,\n DeviceTrustProviderType,\n TrustProviderType,\n UserTrustProviderType,\n VolumeAttachmentState,\n AttachmentStatus,\n ClientVpnAuthorizationRuleStatusCode,\n BundleTaskState,\n CapacityReservationFleetState,\n ListingState,\n CurrencyCodeValues,\n ListingStatus,\n BatchState,\n CancelBatchErrorCode,\n CancelSpotInstanceRequestState,\n OidcOptionsFilterSensitiveLog,\n VerifiedAccessTrustProviderFilterSensitiveLog,\n AttachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n S3StorageFilterSensitiveLog,\n StorageFilterSensitiveLog,\n BundleInstanceRequestFilterSensitiveLog,\n BundleTaskFilterSensitiveLog,\n BundleInstanceResultFilterSensitiveLog,\n CancelBundleTaskResultFilterSensitiveLog,\n CapacityReservationDeliveryPreference,\n EndDateType,\n InstanceMatchCriteria,\n CapacityReservationInstancePlatform,\n CapacityReservationTenancy,\n CapacityReservationType,\n CapacityReservationState,\n FleetInstanceMatchCriteria,\n _InstanceType,\n FleetCapacityReservationTenancy,\n CarrierGatewayState,\n ClientVpnAuthenticationType,\n SelfServicePortal,\n TransportProtocol,\n ClientVpnEndpointStatusCode,\n ClientVpnRouteStatusCode,\n GatewayType,\n BlockPublicAccessMode,\n HostnameType,\n SubnetState,\n VpcEncryptionControlMode,\n VpcEncryptionControlExclusionState,\n VpcEncryptionControlState,\n Tenancy,\n VpcState,\n FleetExcessCapacityTerminationPolicy,\n VolumeType,\n BareMetal,\n BurstablePerformance,\n CpuManufacturer,\n InstanceGeneration,\n LocalStorage,\n LocalStorageType,\n FleetOnDemandAllocationStrategy,\n FleetCapacityReservationUsageStrategy,\n SpotAllocationStrategy,\n SpotInstanceInterruptionBehavior,\n FleetReplacementStrategy,\n DefaultTargetCapacityType,\n TargetCapacityUnitType,\n FleetType,\n InstanceLifecycle,\n PlatformValues,\n DestinationFileFormat,\n LogDestinationType,\n FlowLogsResourceType,\n TrafficType,\n Ec2InstanceConnectEndpointState,\n ContainerFormat,\n DiskImageFormat,\n ExportEnvironment,\n ExportTaskState,\n IpamMeteredAccount,\n IpamTier,\n IpamState,\n IpamExternalResourceVerificationTokenState,\n TokenState,\n IpamPoolAwsService,\n IpamPoolPublicIpSource,\n IpamPoolSourceResourceType,\n IpamScopeType,\n IpamPoolState,\n IpamResourceDiscoveryState,\n IpamScopeState,\n KeyFormat,\n KeyType,\n CapacityReservationPreference,\n AmdSevSnpSpecification,\n ShutdownBehavior,\n MarketType,\n InstanceInterruptionBehavior,\n SpotInstanceType,\n LaunchTemplateAutoRecoveryState,\n LaunchTemplateInstanceMetadataEndpointState,\n LaunchTemplateInstanceMetadataProtocolIpv6,\n LaunchTemplateHttpTokensState,\n LaunchTemplateInstanceMetadataTagsState,\n InstanceBandwidthWeighting,\n LaunchTemplateInstanceMetadataOptionsState,\n CopySnapshotRequestFilterSensitiveLog,\n KeyPairFilterSensitiveLog,\n RequestLaunchTemplateDataFilterSensitiveLog,\n CreateLaunchTemplateRequestFilterSensitiveLog,\n CreateLaunchTemplateVersionRequestFilterSensitiveLog,\n ResponseLaunchTemplateDataFilterSensitiveLog,\n LocalGatewayRouteState,\n LocalGatewayRouteType,\n LocalGatewayRouteTableMode,\n LocalGatewayVirtualInterfaceConfigurationState,\n LocalGatewayVirtualInterfaceGroupConfigurationState,\n PrefixListState,\n ConnectivityType,\n NatGatewayState,\n RuleAction,\n NetworkInterfaceCreationType,\n NetworkInterfaceType,\n NetworkInterfaceStatus,\n InterfacePermissionType,\n NetworkInterfacePermissionStateCode,\n SpreadLevel,\n PlacementStrategy,\n PlacementGroupState,\n ReplaceRootVolumeTaskState,\n RouteServerPersistRoutesAction,\n RouteServerPersistRoutesState,\n RouteServerState,\n RouteServerEndpointState,\n RouteServerPeerLivenessMode,\n RouteServerBfdState,\n RouteServerBgpState,\n RouteServerPeerState,\n RouteOrigin,\n RouteState,\n SnapshotLocationEnum,\n SSEType,\n SnapshotState,\n StorageTier,\n TransferType,\n CopyTagsFromSource,\n DatafeedSubscriptionState,\n SubnetCidrReservationType,\n TrafficMirrorRuleAction,\n TrafficDirection,\n TrafficMirrorNetworkService,\n TrafficMirrorTargetType,\n AutoAcceptSharedAttachmentsValue,\n DefaultRouteTableAssociationValue,\n DefaultRouteTablePropagationValue,\n MulticastSupportValue,\n VpnEcmpSupportValue,\n TransitGatewayState,\n ProtocolValue,\n BgpStatus,\n TransitGatewayConnectPeerState,\n AutoAcceptSharedAssociationsValue,\n Igmpv2SupportValue,\n StaticSourcesSupportValue,\n TransitGatewayMulticastDomainState,\n TransitGatewayPolicyTableState,\n TransitGatewayPrefixListReferenceState,\n TransitGatewayRouteState,\n TransitGatewayRouteType,\n TransitGatewayRouteTableState,\n TransitGatewayRouteTableAnnouncementDirection,\n TransitGatewayRouteTableAnnouncementState,\n VerifiedAccessEndpointAttachmentType,\n VerifiedAccessEndpointProtocol,\n VerifiedAccessEndpointType,\n VerifiedAccessEndpointStatusCode,\n VolumeState,\n InternetGatewayExclusionMode,\n VpcBlockPublicAccessExclusionState,\n DnsRecordIpType,\n IpAddressType,\n VpcEndpointType,\n State,\n ConnectionNotificationState,\n ConnectionNotificationType,\n PayerResponsibility,\n DnsNameState,\n ServiceState,\n ServiceType,\n LaunchTemplateVersionFilterSensitiveLog,\n CreateLaunchTemplateVersionResultFilterSensitiveLog,\n CreateVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n CreateVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ServiceConnectivityType,\n TunnelInsideIpVersion,\n GatewayAssociationState,\n VpnStaticRouteSource,\n VpnState,\n TelemetryStatus,\n FleetStateCode,\n DeleteFleetErrorCode,\n LaunchTemplateErrorCode,\n DeleteQueuedReservedInstancesErrorCode,\n AsnState,\n IpamPoolCidrFailureCode,\n IpamPoolCidrState,\n AvailabilityZoneOptInStatus,\n AvailabilityZoneState,\n MetricType,\n PeriodType,\n StatisticType,\n CapacityBlockExtensionStatus,\n CallerRole,\n CapacityReservationBillingRequestStatus,\n ClientVpnConnectionStatusCode,\n AssociatedNetworkType,\n ClientVpnEndpointAttributeStatusCode,\n VpnTunnelOptionsSpecificationFilterSensitiveLog,\n VpnConnectionOptionsSpecificationFilterSensitiveLog,\n CreateVpnConnectionRequestFilterSensitiveLog,\n TunnelOptionFilterSensitiveLog,\n VpnConnectionOptionsFilterSensitiveLog,\n VpnConnectionFilterSensitiveLog,\n CreateVpnConnectionResultFilterSensitiveLog,\n DeleteVerifiedAccessTrustProviderResultFilterSensitiveLog,\n DescribeBundleTasksResultFilterSensitiveLog,\n VpnProtocol,\n ConversionTaskState,\n ReportState,\n ElasticGpuStatus,\n ElasticGpuState,\n FastLaunchResourceType,\n FastLaunchStateCode,\n FastSnapshotRestoreStateCode,\n FleetEventType,\n FleetActivityStatus,\n FpgaImageAttributeName,\n PermissionGroup,\n ProductCodeValues,\n FpgaImageStateCode,\n PaymentOption,\n ReservationState,\n ImageAttributeName,\n ArchitectureValues,\n BootModeValues,\n HypervisorType,\n ImageTypeValues,\n ImdsSupportValues,\n DeviceType,\n ImageState,\n TpmSupportValues,\n VirtualizationType,\n InstanceAttributeName,\n InstanceStateName,\n InstanceBootModeValues,\n InstanceLifecycleType,\n InstanceAutoRecoveryState,\n InstanceMetadataEndpointState,\n InstanceMetadataProtocolState,\n HttpTokensState,\n InstanceMetadataTagsState,\n InstanceMetadataOptionsState,\n MonitoringState,\n StatusName,\n StatusType,\n SummaryStatus,\n EventCode,\n LocationType,\n EbsOptimizedSupport,\n EbsEncryptionSupport,\n EbsNvmeSupport,\n InstanceTypeHypervisor,\n DiskType,\n InstanceStorageEncryptionSupport,\n EphemeralNvmeSupport,\n BandwidthWeightingType,\n EnaSupport,\n FlexibleEnaQueuesSupport,\n NitroEnclavesSupport,\n NitroTpmSupport,\n PhcSupport,\n PlacementGroupStrategy,\n ArchitectureType,\n SupportedAdditionalProcessorFeature,\n BootModeType,\n RootDeviceType,\n UsageClassType,\n DiskImageDescriptionFilterSensitiveLog,\n ImportInstanceVolumeDetailItemFilterSensitiveLog,\n ImportInstanceTaskDetailsFilterSensitiveLog,\n ImportVolumeTaskDetailsFilterSensitiveLog,\n ConversionTaskFilterSensitiveLog,\n DescribeConversionTasksResultFilterSensitiveLog,\n SnapshotDetailFilterSensitiveLog,\n ImportImageTaskFilterSensitiveLog,\n DescribeImportImageTasksResultFilterSensitiveLog,\n SnapshotTaskDetailFilterSensitiveLog,\n ImportSnapshotTaskFilterSensitiveLog,\n DescribeImportSnapshotTasksResultFilterSensitiveLog,\n DescribeLaunchTemplateVersionsResultFilterSensitiveLog,\n LockState,\n MoveStatus,\n FindingsFound,\n AnalysisStatus,\n NetworkInterfaceAttribute,\n OfferingClassType,\n OfferingTypeValues,\n RIProductDescription,\n RecurringChargeFrequency,\n Scope,\n ReservedInstanceState,\n ServiceLinkVirtualInterfaceConfigurationState,\n SnapshotAttributeName,\n TieringOperationStatus,\n EventType,\n ExcessCapacityTerminationPolicy,\n OnDemandAllocationStrategy,\n ReplacementStrategy,\n SpotInstanceState,\n VerifiedAccessLogDeliveryStatusCode,\n VolumeAttributeName,\n VolumeModificationState,\n VolumeStatusName,\n VolumeStatusInfoStatus,\n VpcAttributeName,\n VpcBlockPublicAccessExclusionsAllowed,\n InternetGatewayBlockMode,\n ManagedBy,\n VpcBlockPublicAccessState,\n SpotFleetLaunchSpecificationFilterSensitiveLog,\n SpotFleetRequestConfigDataFilterSensitiveLog,\n SpotFleetRequestConfigFilterSensitiveLog,\n DescribeSpotFleetRequestsResponseFilterSensitiveLog,\n LaunchSpecificationFilterSensitiveLog,\n SpotInstanceRequestFilterSensitiveLog,\n DescribeSpotInstanceRequestsResultFilterSensitiveLog,\n DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog,\n DescribeVpnConnectionsResultFilterSensitiveLog,\n DetachVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ImageBlockPublicAccessDisabledState,\n RouteServerPropagationState,\n SnapshotBlockPublicAccessState,\n TransitGatewayPropagationState,\n ImageBlockPublicAccessEnabledState,\n ClientCertificateRevocationListStatusCode,\n UnlimitedSupportedInstanceFamily,\n PartitionLoadFrequency,\n EkPubKeyFormat,\n EkPubKeyType,\n IpamComplianceStatus,\n IpamOverlapStatus,\n IpamAddressHistoryResourceType,\n IpamDiscoveryFailureCode,\n IpamPublicAddressType,\n IpamPublicAddressAssociationStatus,\n IpamPublicAddressAwsService,\n IpamResourceCidrIpSource,\n IpamNetworkInterfaceAttachmentStatus,\n IpamResourceType,\n IpamManagementState,\n RouteServerRouteInstallationStatus,\n RouteServerRouteStatus,\n VerifiedAccessInstanceUserTrustProviderClientConfigurationFilterSensitiveLog,\n ExportVerifiedAccessInstanceClientConfigurationResultFilterSensitiveLog,\n GetInstanceTpmEkPubResultFilterSensitiveLog,\n GetLaunchTemplateDataResultFilterSensitiveLog,\n GetPasswordDataResultFilterSensitiveLog,\n LockMode,\n ModifyAvailabilityZoneOptInStatus,\n OperationType,\n UnsuccessfulInstanceCreditSpecificationErrorCode,\n DefaultInstanceMetadataEndpointState,\n MetadataDefaultHttpTokensState,\n DefaultInstanceMetadataTagsState,\n HostTenancy,\n TargetStorageTier,\n TrafficMirrorFilterRuleField,\n TrafficMirrorSessionField,\n VpcTenancy,\n Status,\n VerificationMethod,\n ReportInstanceReasonCodes,\n ReportStatusType,\n GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog,\n ImageDiskContainerFilterSensitiveLog,\n ImportImageRequestFilterSensitiveLog,\n ImportImageResultFilterSensitiveLog,\n DiskImageDetailFilterSensitiveLog,\n DiskImageFilterSensitiveLog,\n UserDataFilterSensitiveLog,\n ImportInstanceLaunchSpecificationFilterSensitiveLog,\n ImportInstanceRequestFilterSensitiveLog,\n ImportInstanceResultFilterSensitiveLog,\n SnapshotDiskContainerFilterSensitiveLog,\n ImportSnapshotRequestFilterSensitiveLog,\n ImportSnapshotResultFilterSensitiveLog,\n ImportVolumeRequestFilterSensitiveLog,\n ImportVolumeResultFilterSensitiveLog,\n ModifyVerifiedAccessNativeApplicationOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog,\n ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog,\n ModifyVpnConnectionResultFilterSensitiveLog,\n ModifyVpnConnectionOptionsResultFilterSensitiveLog,\n ModifyVpnTunnelCertificateResultFilterSensitiveLog,\n ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog,\n ModifyVpnTunnelOptionsRequestFilterSensitiveLog,\n ModifyVpnTunnelOptionsResultFilterSensitiveLog,\n ReportInstanceStatusRequestFilterSensitiveLog,\n ResetFpgaImageAttributeName,\n ResetImageAttributeName,\n MembershipType,\n RequestSpotFleetRequestFilterSensitiveLog,\n RequestSpotLaunchSpecificationFilterSensitiveLog,\n RequestSpotInstancesRequestFilterSensitiveLog,\n RequestSpotInstancesResultFilterSensitiveLog,\n RunInstancesRequestFilterSensitiveLog,\n ScheduledInstancesLaunchSpecificationFilterSensitiveLog,\n RunScheduledInstancesRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2016-11-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultEC2HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"EC2\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultECRHttpAuthSchemeProvider = exports.defaultECRHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultECRHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultECRHttpAuthSchemeParametersProvider = defaultECRHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ecr\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultECRHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultECRHttpAuthSchemeProvider = defaultECRHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst B = \"required\", C = \"fn\", D = \"argv\", E = \"ref\", F = \"url\", G = \"properties\", H = \"headers\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = \"aws\", j = \"aws-us-gov\", k = { [B]: false, \"type\": \"String\" }, l = { [B]: true, \"default\": false, \"type\": \"Boolean\" }, m = { [E]: \"Endpoint\" }, n = { [C]: c, [D]: [{ [E]: \"UseFIPS\" }, true] }, o = { [C]: c, [D]: [{ [E]: \"UseDualStack\" }, true] }, p = {}, q = { [C]: \"getAttr\", [D]: [{ [E]: g }, \"supportsFIPS\"] }, r = { [C]: c, [D]: [true, { [C]: \"getAttr\", [D]: [{ [E]: g }, \"supportsDualStack\"] }] }, s = { [C]: \"getAttr\", [D]: [{ [E]: g }, \"name\"] }, t = { [F]: \"https://ecr-fips.{Region}.api.aws\", [G]: {}, [H]: {} }, u = { [F]: \"https://ecr-fips.{Region}.amazonaws.com\", [G]: {}, [H]: {} }, v = { [F]: \"https://ecr.{Region}.api.aws\", [G]: {}, [H]: {} }, w = [n], x = [o], y = [{ [E]: \"Region\" }], z = [{ [C]: h, [D]: [i, s] }], A = [{ [C]: h, [D]: [j, s] }];\nconst _data = { version: \"1.0\", parameters: { Region: k, UseDualStack: l, UseFIPS: l, Endpoint: k }, rules: [{ conditions: [{ [C]: b, [D]: [m] }], rules: [{ conditions: w, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: x, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { [F]: m, [G]: p, [H]: p }, type: e }], type: f }, { conditions: [{ [C]: b, [D]: y }], rules: [{ conditions: [{ [C]: \"aws.partition\", [D]: y, assign: g }], rules: [{ conditions: [n, o], rules: [{ conditions: [{ [C]: c, [D]: [a, q] }, r], rules: [{ conditions: z, endpoint: t, type: e }, { conditions: A, endpoint: t, type: e }, { endpoint: { [F]: \"https://api.ecr-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: w, rules: [{ conditions: [{ [C]: c, [D]: [q, a] }], rules: [{ conditions: [{ [C]: h, [D]: [s, i] }], endpoint: u, type: e }, { conditions: [{ [C]: h, [D]: [s, j] }], endpoint: u, type: e }, { endpoint: { [F]: \"https://api.ecr-fips.{Region}.{PartitionResult#dnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: x, rules: [{ conditions: [r], rules: [{ conditions: z, endpoint: v, type: e }, { conditions: [{ [C]: h, [D]: [\"aws-cn\", s] }], endpoint: { [F]: \"https://ecr.{Region}.api.amazonwebservices.com.cn\", [G]: p, [H]: p }, type: e }, { conditions: A, endpoint: v, type: e }, { endpoint: { [F]: \"https://api.ecr.{Region}.{PartitionResult#dualStackDnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { [F]: \"https://api.ecr.{Region}.{PartitionResult#dnsSuffix}\", [G]: p, [H]: p }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n BatchCheckLayerAvailabilityCommand: () => BatchCheckLayerAvailabilityCommand,\n BatchDeleteImageCommand: () => BatchDeleteImageCommand,\n BatchGetImageCommand: () => BatchGetImageCommand,\n BatchGetRepositoryScanningConfigurationCommand: () => BatchGetRepositoryScanningConfigurationCommand,\n CompleteLayerUploadCommand: () => CompleteLayerUploadCommand,\n CreatePullThroughCacheRuleCommand: () => CreatePullThroughCacheRuleCommand,\n CreateRepositoryCommand: () => CreateRepositoryCommand,\n CreateRepositoryCreationTemplateCommand: () => CreateRepositoryCreationTemplateCommand,\n DeleteLifecyclePolicyCommand: () => DeleteLifecyclePolicyCommand,\n DeletePullThroughCacheRuleCommand: () => DeletePullThroughCacheRuleCommand,\n DeleteRegistryPolicyCommand: () => DeleteRegistryPolicyCommand,\n DeleteRepositoryCommand: () => DeleteRepositoryCommand,\n DeleteRepositoryCreationTemplateCommand: () => DeleteRepositoryCreationTemplateCommand,\n DeleteRepositoryPolicyCommand: () => DeleteRepositoryPolicyCommand,\n DescribeImageReplicationStatusCommand: () => DescribeImageReplicationStatusCommand,\n DescribeImageScanFindingsCommand: () => DescribeImageScanFindingsCommand,\n DescribeImagesCommand: () => DescribeImagesCommand,\n DescribePullThroughCacheRulesCommand: () => DescribePullThroughCacheRulesCommand,\n DescribeRegistryCommand: () => DescribeRegistryCommand,\n DescribeRepositoriesCommand: () => DescribeRepositoriesCommand,\n DescribeRepositoryCreationTemplatesCommand: () => DescribeRepositoryCreationTemplatesCommand,\n ECR: () => ECR,\n ECRClient: () => ECRClient,\n ECRServiceException: () => ECRServiceException,\n EmptyUploadException: () => EmptyUploadException,\n EncryptionType: () => EncryptionType,\n FindingSeverity: () => FindingSeverity,\n GetAccountSettingCommand: () => GetAccountSettingCommand,\n GetAuthorizationTokenCommand: () => GetAuthorizationTokenCommand,\n GetDownloadUrlForLayerCommand: () => GetDownloadUrlForLayerCommand,\n GetLifecyclePolicyCommand: () => GetLifecyclePolicyCommand,\n GetLifecyclePolicyPreviewCommand: () => GetLifecyclePolicyPreviewCommand,\n GetRegistryPolicyCommand: () => GetRegistryPolicyCommand,\n GetRegistryScanningConfigurationCommand: () => GetRegistryScanningConfigurationCommand,\n GetRepositoryPolicyCommand: () => GetRepositoryPolicyCommand,\n ImageActionType: () => ImageActionType,\n ImageAlreadyExistsException: () => ImageAlreadyExistsException,\n ImageDigestDoesNotMatchException: () => ImageDigestDoesNotMatchException,\n ImageFailureCode: () => ImageFailureCode,\n ImageNotFoundException: () => ImageNotFoundException,\n ImageTagAlreadyExistsException: () => ImageTagAlreadyExistsException,\n ImageTagMutability: () => ImageTagMutability,\n ImageTagMutabilityExclusionFilterType: () => ImageTagMutabilityExclusionFilterType,\n InitiateLayerUploadCommand: () => InitiateLayerUploadCommand,\n InvalidLayerException: () => InvalidLayerException,\n InvalidLayerPartException: () => InvalidLayerPartException,\n InvalidParameterException: () => InvalidParameterException,\n InvalidTagParameterException: () => InvalidTagParameterException,\n KmsException: () => KmsException,\n LayerAlreadyExistsException: () => LayerAlreadyExistsException,\n LayerAvailability: () => LayerAvailability,\n LayerFailureCode: () => LayerFailureCode,\n LayerInaccessibleException: () => LayerInaccessibleException,\n LayerPartTooSmallException: () => LayerPartTooSmallException,\n LayersNotFoundException: () => LayersNotFoundException,\n LifecyclePolicyNotFoundException: () => LifecyclePolicyNotFoundException,\n LifecyclePolicyPreviewInProgressException: () => LifecyclePolicyPreviewInProgressException,\n LifecyclePolicyPreviewNotFoundException: () => LifecyclePolicyPreviewNotFoundException,\n LifecyclePolicyPreviewStatus: () => LifecyclePolicyPreviewStatus,\n LimitExceededException: () => LimitExceededException,\n ListImagesCommand: () => ListImagesCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n PullThroughCacheRuleAlreadyExistsException: () => PullThroughCacheRuleAlreadyExistsException,\n PullThroughCacheRuleNotFoundException: () => PullThroughCacheRuleNotFoundException,\n PutAccountSettingCommand: () => PutAccountSettingCommand,\n PutImageCommand: () => PutImageCommand,\n PutImageScanningConfigurationCommand: () => PutImageScanningConfigurationCommand,\n PutImageTagMutabilityCommand: () => PutImageTagMutabilityCommand,\n PutLifecyclePolicyCommand: () => PutLifecyclePolicyCommand,\n PutRegistryPolicyCommand: () => PutRegistryPolicyCommand,\n PutRegistryScanningConfigurationCommand: () => PutRegistryScanningConfigurationCommand,\n PutReplicationConfigurationCommand: () => PutReplicationConfigurationCommand,\n RCTAppliedFor: () => RCTAppliedFor,\n ReferencedImagesNotFoundException: () => ReferencedImagesNotFoundException,\n RegistryPolicyNotFoundException: () => RegistryPolicyNotFoundException,\n ReplicationStatus: () => ReplicationStatus,\n RepositoryAlreadyExistsException: () => RepositoryAlreadyExistsException,\n RepositoryFilterType: () => RepositoryFilterType,\n RepositoryNotEmptyException: () => RepositoryNotEmptyException,\n RepositoryNotFoundException: () => RepositoryNotFoundException,\n RepositoryPolicyNotFoundException: () => RepositoryPolicyNotFoundException,\n ScanFrequency: () => ScanFrequency,\n ScanNotFoundException: () => ScanNotFoundException,\n ScanStatus: () => ScanStatus,\n ScanType: () => ScanType,\n ScanningConfigurationFailureCode: () => ScanningConfigurationFailureCode,\n ScanningRepositoryFilterType: () => ScanningRepositoryFilterType,\n SecretNotFoundException: () => SecretNotFoundException,\n ServerException: () => ServerException,\n SetRepositoryPolicyCommand: () => SetRepositoryPolicyCommand,\n StartImageScanCommand: () => StartImageScanCommand,\n StartLifecyclePolicyPreviewCommand: () => StartLifecyclePolicyPreviewCommand,\n TagResourceCommand: () => TagResourceCommand,\n TagStatus: () => TagStatus,\n TemplateAlreadyExistsException: () => TemplateAlreadyExistsException,\n TemplateNotFoundException: () => TemplateNotFoundException,\n TooManyTagsException: () => TooManyTagsException,\n UnableToAccessSecretException: () => UnableToAccessSecretException,\n UnableToDecryptSecretValueException: () => UnableToDecryptSecretValueException,\n UnableToGetUpstreamImageException: () => UnableToGetUpstreamImageException,\n UnableToGetUpstreamLayerException: () => UnableToGetUpstreamLayerException,\n UnsupportedImageTypeException: () => UnsupportedImageTypeException,\n UnsupportedUpstreamRegistryException: () => UnsupportedUpstreamRegistryException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdatePullThroughCacheRuleCommand: () => UpdatePullThroughCacheRuleCommand,\n UpdateRepositoryCreationTemplateCommand: () => UpdateRepositoryCreationTemplateCommand,\n UploadLayerPartCommand: () => UploadLayerPartCommand,\n UploadNotFoundException: () => UploadNotFoundException,\n UpstreamRegistry: () => UpstreamRegistry,\n ValidatePullThroughCacheRuleCommand: () => ValidatePullThroughCacheRuleCommand,\n ValidationException: () => ValidationException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeImageScanFindings: () => paginateDescribeImageScanFindings,\n paginateDescribeImages: () => paginateDescribeImages,\n paginateDescribePullThroughCacheRules: () => paginateDescribePullThroughCacheRules,\n paginateDescribeRepositories: () => paginateDescribeRepositories,\n paginateDescribeRepositoryCreationTemplates: () => paginateDescribeRepositoryCreationTemplates,\n paginateGetLifecyclePolicyPreview: () => paginateGetLifecyclePolicyPreview,\n paginateListImages: () => paginateListImages,\n waitForImageScanComplete: () => waitForImageScanComplete,\n waitForLifecyclePolicyPreviewComplete: () => waitForLifecyclePolicyPreviewComplete,\n waitUntilImageScanComplete: () => waitUntilImageScanComplete,\n waitUntilLifecyclePolicyPreviewComplete: () => waitUntilLifecyclePolicyPreviewComplete\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/ECRClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ecr\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/ECRClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/ECRClient.ts\nvar ECRClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"ECRClient\");\n }\n /**\n * The resolved configuration of ECRClient class. This is resolved and normalized from the {@link ECRClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultECRHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/ECR.ts\n\n\n// src/commands/BatchCheckLayerAvailabilityCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/ECRServiceException.ts\n\nvar ECRServiceException = class _ECRServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"ECRServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _ECRServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar LayerFailureCode = {\n InvalidLayerDigest: \"InvalidLayerDigest\",\n MissingLayerDigest: \"MissingLayerDigest\"\n};\nvar LayerAvailability = {\n AVAILABLE: \"AVAILABLE\",\n UNAVAILABLE: \"UNAVAILABLE\"\n};\nvar InvalidParameterException = class _InvalidParameterException extends ECRServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar RepositoryNotFoundException = class _RepositoryNotFoundException extends ECRServiceException {\n static {\n __name(this, \"RepositoryNotFoundException\");\n }\n name = \"RepositoryNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryNotFoundException.prototype);\n }\n};\nvar ServerException = class _ServerException extends ECRServiceException {\n static {\n __name(this, \"ServerException\");\n }\n name = \"ServerException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServerException.prototype);\n }\n};\nvar ImageFailureCode = {\n ImageNotFound: \"ImageNotFound\",\n ImageReferencedByManifestList: \"ImageReferencedByManifestList\",\n ImageTagDoesNotMatchDigest: \"ImageTagDoesNotMatchDigest\",\n InvalidImageDigest: \"InvalidImageDigest\",\n InvalidImageTag: \"InvalidImageTag\",\n KmsError: \"KmsError\",\n MissingDigestAndTag: \"MissingDigestAndTag\",\n UpstreamAccessDenied: \"UpstreamAccessDenied\",\n UpstreamTooManyRequests: \"UpstreamTooManyRequests\",\n UpstreamUnavailable: \"UpstreamUnavailable\"\n};\nvar LimitExceededException = class _LimitExceededException extends ECRServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar UnableToGetUpstreamImageException = class _UnableToGetUpstreamImageException extends ECRServiceException {\n static {\n __name(this, \"UnableToGetUpstreamImageException\");\n }\n name = \"UnableToGetUpstreamImageException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToGetUpstreamImageException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToGetUpstreamImageException.prototype);\n }\n};\nvar ScanningConfigurationFailureCode = {\n REPOSITORY_NOT_FOUND: \"REPOSITORY_NOT_FOUND\"\n};\nvar ScanningRepositoryFilterType = {\n WILDCARD: \"WILDCARD\"\n};\nvar ScanFrequency = {\n CONTINUOUS_SCAN: \"CONTINUOUS_SCAN\",\n MANUAL: \"MANUAL\",\n SCAN_ON_PUSH: \"SCAN_ON_PUSH\"\n};\nvar ValidationException = class _ValidationException extends ECRServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n }\n};\nvar EmptyUploadException = class _EmptyUploadException extends ECRServiceException {\n static {\n __name(this, \"EmptyUploadException\");\n }\n name = \"EmptyUploadException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EmptyUploadException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EmptyUploadException.prototype);\n }\n};\nvar InvalidLayerException = class _InvalidLayerException extends ECRServiceException {\n static {\n __name(this, \"InvalidLayerException\");\n }\n name = \"InvalidLayerException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLayerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLayerException.prototype);\n }\n};\nvar KmsException = class _KmsException extends ECRServiceException {\n static {\n __name(this, \"KmsException\");\n }\n name = \"KmsException\";\n $fault = \"client\";\n /**\n *

The error code returned by KMS.

\n * @public\n */\n kmsError;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsException.prototype);\n this.kmsError = opts.kmsError;\n }\n};\nvar LayerAlreadyExistsException = class _LayerAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"LayerAlreadyExistsException\");\n }\n name = \"LayerAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayerAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayerAlreadyExistsException.prototype);\n }\n};\nvar LayerPartTooSmallException = class _LayerPartTooSmallException extends ECRServiceException {\n static {\n __name(this, \"LayerPartTooSmallException\");\n }\n name = \"LayerPartTooSmallException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayerPartTooSmallException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayerPartTooSmallException.prototype);\n }\n};\nvar UploadNotFoundException = class _UploadNotFoundException extends ECRServiceException {\n static {\n __name(this, \"UploadNotFoundException\");\n }\n name = \"UploadNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UploadNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UploadNotFoundException.prototype);\n }\n};\nvar UpstreamRegistry = {\n AzureContainerRegistry: \"azure-container-registry\",\n DockerHub: \"docker-hub\",\n Ecr: \"ecr\",\n EcrPublic: \"ecr-public\",\n GitHubContainerRegistry: \"github-container-registry\",\n GitLabContainerRegistry: \"gitlab-container-registry\",\n K8s: \"k8s\",\n Quay: \"quay\"\n};\nvar PullThroughCacheRuleAlreadyExistsException = class _PullThroughCacheRuleAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"PullThroughCacheRuleAlreadyExistsException\");\n }\n name = \"PullThroughCacheRuleAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PullThroughCacheRuleAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PullThroughCacheRuleAlreadyExistsException.prototype);\n }\n};\nvar SecretNotFoundException = class _SecretNotFoundException extends ECRServiceException {\n static {\n __name(this, \"SecretNotFoundException\");\n }\n name = \"SecretNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SecretNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SecretNotFoundException.prototype);\n }\n};\nvar UnableToAccessSecretException = class _UnableToAccessSecretException extends ECRServiceException {\n static {\n __name(this, \"UnableToAccessSecretException\");\n }\n name = \"UnableToAccessSecretException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToAccessSecretException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToAccessSecretException.prototype);\n }\n};\nvar UnableToDecryptSecretValueException = class _UnableToDecryptSecretValueException extends ECRServiceException {\n static {\n __name(this, \"UnableToDecryptSecretValueException\");\n }\n name = \"UnableToDecryptSecretValueException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToDecryptSecretValueException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToDecryptSecretValueException.prototype);\n }\n};\nvar UnsupportedUpstreamRegistryException = class _UnsupportedUpstreamRegistryException extends ECRServiceException {\n static {\n __name(this, \"UnsupportedUpstreamRegistryException\");\n }\n name = \"UnsupportedUpstreamRegistryException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedUpstreamRegistryException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedUpstreamRegistryException.prototype);\n }\n};\nvar EncryptionType = {\n AES256: \"AES256\",\n KMS: \"KMS\",\n KMS_DSSE: \"KMS_DSSE\"\n};\nvar ImageTagMutability = {\n IMMUTABLE: \"IMMUTABLE\",\n IMMUTABLE_WITH_EXCLUSION: \"IMMUTABLE_WITH_EXCLUSION\",\n MUTABLE: \"MUTABLE\",\n MUTABLE_WITH_EXCLUSION: \"MUTABLE_WITH_EXCLUSION\"\n};\nvar ImageTagMutabilityExclusionFilterType = {\n WILDCARD: \"WILDCARD\"\n};\nvar InvalidTagParameterException = class _InvalidTagParameterException extends ECRServiceException {\n static {\n __name(this, \"InvalidTagParameterException\");\n }\n name = \"InvalidTagParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTagParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTagParameterException.prototype);\n }\n};\nvar RepositoryAlreadyExistsException = class _RepositoryAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"RepositoryAlreadyExistsException\");\n }\n name = \"RepositoryAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryAlreadyExistsException.prototype);\n }\n};\nvar TooManyTagsException = class _TooManyTagsException extends ECRServiceException {\n static {\n __name(this, \"TooManyTagsException\");\n }\n name = \"TooManyTagsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsException.prototype);\n }\n};\nvar RCTAppliedFor = {\n PULL_THROUGH_CACHE: \"PULL_THROUGH_CACHE\",\n REPLICATION: \"REPLICATION\"\n};\nvar TemplateAlreadyExistsException = class _TemplateAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"TemplateAlreadyExistsException\");\n }\n name = \"TemplateAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TemplateAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TemplateAlreadyExistsException.prototype);\n }\n};\nvar LifecyclePolicyNotFoundException = class _LifecyclePolicyNotFoundException extends ECRServiceException {\n static {\n __name(this, \"LifecyclePolicyNotFoundException\");\n }\n name = \"LifecyclePolicyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LifecyclePolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LifecyclePolicyNotFoundException.prototype);\n }\n};\nvar PullThroughCacheRuleNotFoundException = class _PullThroughCacheRuleNotFoundException extends ECRServiceException {\n static {\n __name(this, \"PullThroughCacheRuleNotFoundException\");\n }\n name = \"PullThroughCacheRuleNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PullThroughCacheRuleNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PullThroughCacheRuleNotFoundException.prototype);\n }\n};\nvar RegistryPolicyNotFoundException = class _RegistryPolicyNotFoundException extends ECRServiceException {\n static {\n __name(this, \"RegistryPolicyNotFoundException\");\n }\n name = \"RegistryPolicyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegistryPolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegistryPolicyNotFoundException.prototype);\n }\n};\nvar RepositoryNotEmptyException = class _RepositoryNotEmptyException extends ECRServiceException {\n static {\n __name(this, \"RepositoryNotEmptyException\");\n }\n name = \"RepositoryNotEmptyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryNotEmptyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryNotEmptyException.prototype);\n }\n};\nvar TemplateNotFoundException = class _TemplateNotFoundException extends ECRServiceException {\n static {\n __name(this, \"TemplateNotFoundException\");\n }\n name = \"TemplateNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TemplateNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TemplateNotFoundException.prototype);\n }\n};\nvar RepositoryPolicyNotFoundException = class _RepositoryPolicyNotFoundException extends ECRServiceException {\n static {\n __name(this, \"RepositoryPolicyNotFoundException\");\n }\n name = \"RepositoryPolicyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RepositoryPolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RepositoryPolicyNotFoundException.prototype);\n }\n};\nvar ReplicationStatus = {\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar ImageNotFoundException = class _ImageNotFoundException extends ECRServiceException {\n static {\n __name(this, \"ImageNotFoundException\");\n }\n name = \"ImageNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageNotFoundException.prototype);\n }\n};\nvar TagStatus = {\n ANY: \"ANY\",\n TAGGED: \"TAGGED\",\n UNTAGGED: \"UNTAGGED\"\n};\nvar FindingSeverity = {\n CRITICAL: \"CRITICAL\",\n HIGH: \"HIGH\",\n INFORMATIONAL: \"INFORMATIONAL\",\n LOW: \"LOW\",\n MEDIUM: \"MEDIUM\",\n UNDEFINED: \"UNDEFINED\"\n};\nvar ScanStatus = {\n ACTIVE: \"ACTIVE\",\n COMPLETE: \"COMPLETE\",\n FAILED: \"FAILED\",\n FINDINGS_UNAVAILABLE: \"FINDINGS_UNAVAILABLE\",\n IN_PROGRESS: \"IN_PROGRESS\",\n LIMIT_EXCEEDED: \"LIMIT_EXCEEDED\",\n PENDING: \"PENDING\",\n SCAN_ELIGIBILITY_EXPIRED: \"SCAN_ELIGIBILITY_EXPIRED\",\n UNSUPPORTED_IMAGE: \"UNSUPPORTED_IMAGE\"\n};\nvar ScanNotFoundException = class _ScanNotFoundException extends ECRServiceException {\n static {\n __name(this, \"ScanNotFoundException\");\n }\n name = \"ScanNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ScanNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ScanNotFoundException.prototype);\n }\n};\nvar RepositoryFilterType = {\n PREFIX_MATCH: \"PREFIX_MATCH\"\n};\nvar LayerInaccessibleException = class _LayerInaccessibleException extends ECRServiceException {\n static {\n __name(this, \"LayerInaccessibleException\");\n }\n name = \"LayerInaccessibleException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayerInaccessibleException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayerInaccessibleException.prototype);\n }\n};\nvar LayersNotFoundException = class _LayersNotFoundException extends ECRServiceException {\n static {\n __name(this, \"LayersNotFoundException\");\n }\n name = \"LayersNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LayersNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LayersNotFoundException.prototype);\n }\n};\nvar UnableToGetUpstreamLayerException = class _UnableToGetUpstreamLayerException extends ECRServiceException {\n static {\n __name(this, \"UnableToGetUpstreamLayerException\");\n }\n name = \"UnableToGetUpstreamLayerException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnableToGetUpstreamLayerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnableToGetUpstreamLayerException.prototype);\n }\n};\nvar ImageActionType = {\n EXPIRE: \"EXPIRE\"\n};\nvar LifecyclePolicyPreviewStatus = {\n COMPLETE: \"COMPLETE\",\n EXPIRED: \"EXPIRED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar LifecyclePolicyPreviewNotFoundException = class _LifecyclePolicyPreviewNotFoundException extends ECRServiceException {\n static {\n __name(this, \"LifecyclePolicyPreviewNotFoundException\");\n }\n name = \"LifecyclePolicyPreviewNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LifecyclePolicyPreviewNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LifecyclePolicyPreviewNotFoundException.prototype);\n }\n};\nvar ScanType = {\n BASIC: \"BASIC\",\n ENHANCED: \"ENHANCED\"\n};\nvar ImageAlreadyExistsException = class _ImageAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"ImageAlreadyExistsException\");\n }\n name = \"ImageAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageAlreadyExistsException.prototype);\n }\n};\nvar ImageDigestDoesNotMatchException = class _ImageDigestDoesNotMatchException extends ECRServiceException {\n static {\n __name(this, \"ImageDigestDoesNotMatchException\");\n }\n name = \"ImageDigestDoesNotMatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageDigestDoesNotMatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageDigestDoesNotMatchException.prototype);\n }\n};\nvar ImageTagAlreadyExistsException = class _ImageTagAlreadyExistsException extends ECRServiceException {\n static {\n __name(this, \"ImageTagAlreadyExistsException\");\n }\n name = \"ImageTagAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ImageTagAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ImageTagAlreadyExistsException.prototype);\n }\n};\nvar ReferencedImagesNotFoundException = class _ReferencedImagesNotFoundException extends ECRServiceException {\n static {\n __name(this, \"ReferencedImagesNotFoundException\");\n }\n name = \"ReferencedImagesNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ReferencedImagesNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ReferencedImagesNotFoundException.prototype);\n }\n};\nvar UnsupportedImageTypeException = class _UnsupportedImageTypeException extends ECRServiceException {\n static {\n __name(this, \"UnsupportedImageTypeException\");\n }\n name = \"UnsupportedImageTypeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedImageTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedImageTypeException.prototype);\n }\n};\nvar LifecyclePolicyPreviewInProgressException = class _LifecyclePolicyPreviewInProgressException extends ECRServiceException {\n static {\n __name(this, \"LifecyclePolicyPreviewInProgressException\");\n }\n name = \"LifecyclePolicyPreviewInProgressException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LifecyclePolicyPreviewInProgressException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LifecyclePolicyPreviewInProgressException.prototype);\n }\n};\nvar InvalidLayerPartException = class _InvalidLayerPartException extends ECRServiceException {\n static {\n __name(this, \"InvalidLayerPartException\");\n }\n name = \"InvalidLayerPartException\";\n $fault = \"client\";\n /**\n *

The registry ID associated with the exception.

\n * @public\n */\n registryId;\n /**\n *

The repository name associated with the exception.

\n * @public\n */\n repositoryName;\n /**\n *

The upload ID associated with the exception.

\n * @public\n */\n uploadId;\n /**\n *

The last valid byte received from the layer part upload that is associated with the\n * exception.

\n * @public\n */\n lastValidByteReceived;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLayerPartException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLayerPartException.prototype);\n this.registryId = opts.registryId;\n this.repositoryName = opts.repositoryName;\n this.uploadId = opts.uploadId;\n this.lastValidByteReceived = opts.lastValidByteReceived;\n }\n};\n\n// src/protocols/Aws_json1_1.ts\nvar se_BatchCheckLayerAvailabilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchCheckLayerAvailability\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchCheckLayerAvailabilityCommand\");\nvar se_BatchDeleteImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchDeleteImage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchDeleteImageCommand\");\nvar se_BatchGetImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetImage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetImageCommand\");\nvar se_BatchGetRepositoryScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetRepositoryScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetRepositoryScanningConfigurationCommand\");\nvar se_CompleteLayerUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CompleteLayerUpload\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CompleteLayerUploadCommand\");\nvar se_CreatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreatePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePullThroughCacheRuleCommand\");\nvar se_CreateRepositoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateRepository\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRepositoryCommand\");\nvar se_CreateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateRepositoryCreationTemplate\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRepositoryCreationTemplateCommand\");\nvar se_DeleteLifecyclePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteLifecyclePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLifecyclePolicyCommand\");\nvar se_DeletePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeletePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePullThroughCacheRuleCommand\");\nvar se_DeleteRegistryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRegistryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRegistryPolicyCommand\");\nvar se_DeleteRepositoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRepository\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRepositoryCommand\");\nvar se_DeleteRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRepositoryCreationTemplate\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRepositoryCreationTemplateCommand\");\nvar se_DeleteRepositoryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteRepositoryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRepositoryPolicyCommand\");\nvar se_DescribeImageReplicationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeImageReplicationStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImageReplicationStatusCommand\");\nvar se_DescribeImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeImages\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImagesCommand\");\nvar se_DescribeImageScanFindingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeImageScanFindings\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeImageScanFindingsCommand\");\nvar se_DescribePullThroughCacheRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePullThroughCacheRules\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePullThroughCacheRulesCommand\");\nvar se_DescribeRegistryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeRegistry\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRegistryCommand\");\nvar se_DescribeRepositoriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeRepositories\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRepositoriesCommand\");\nvar se_DescribeRepositoryCreationTemplatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeRepositoryCreationTemplates\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRepositoryCreationTemplatesCommand\");\nvar se_GetAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountSettingCommand\");\nvar se_GetAuthorizationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAuthorizationToken\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAuthorizationTokenCommand\");\nvar se_GetDownloadUrlForLayerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDownloadUrlForLayer\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDownloadUrlForLayerCommand\");\nvar se_GetLifecyclePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLifecyclePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLifecyclePolicyCommand\");\nvar se_GetLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetLifecyclePolicyPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLifecyclePolicyPreviewCommand\");\nvar se_GetRegistryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRegistryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRegistryPolicyCommand\");\nvar se_GetRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRegistryScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRegistryScanningConfigurationCommand\");\nvar se_GetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRepositoryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRepositoryPolicyCommand\");\nvar se_InitiateLayerUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"InitiateLayerUpload\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_InitiateLayerUploadCommand\");\nvar se_ListImagesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListImages\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListImagesCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_PutAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountSettingCommand\");\nvar se_PutImageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutImage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutImageCommand\");\nvar se_PutImageScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutImageScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutImageScanningConfigurationCommand\");\nvar se_PutImageTagMutabilityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutImageTagMutability\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutImageTagMutabilityCommand\");\nvar se_PutLifecyclePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutLifecyclePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutLifecyclePolicyCommand\");\nvar se_PutRegistryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutRegistryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRegistryPolicyCommand\");\nvar se_PutRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutRegistryScanningConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRegistryScanningConfigurationCommand\");\nvar se_PutReplicationConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutReplicationConfiguration\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutReplicationConfigurationCommand\");\nvar se_SetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SetRepositoryPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetRepositoryPolicyCommand\");\nvar se_StartImageScanCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartImageScan\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartImageScanCommand\");\nvar se_StartLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartLifecyclePolicyPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartLifecyclePolicyPreviewCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdatePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdatePullThroughCacheRuleCommand\");\nvar se_UpdateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateRepositoryCreationTemplate\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateRepositoryCreationTemplateCommand\");\nvar se_UploadLayerPartCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UploadLayerPart\");\n let body;\n body = JSON.stringify(se_UploadLayerPartRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadLayerPartCommand\");\nvar se_ValidatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ValidatePullThroughCacheRule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ValidatePullThroughCacheRuleCommand\");\nvar de_BatchCheckLayerAvailabilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchCheckLayerAvailabilityCommand\");\nvar de_BatchDeleteImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchDeleteImageCommand\");\nvar de_BatchGetImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetImageCommand\");\nvar de_BatchGetRepositoryScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetRepositoryScanningConfigurationCommand\");\nvar de_CompleteLayerUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CompleteLayerUploadCommand\");\nvar de_CreatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreatePullThroughCacheRuleResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePullThroughCacheRuleCommand\");\nvar de_CreateRepositoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateRepositoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRepositoryCommand\");\nvar de_CreateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateRepositoryCreationTemplateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRepositoryCreationTemplateCommand\");\nvar de_DeleteLifecyclePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLifecyclePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLifecyclePolicyCommand\");\nvar de_DeletePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeletePullThroughCacheRuleResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeletePullThroughCacheRuleCommand\");\nvar de_DeleteRegistryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRegistryPolicyCommand\");\nvar de_DeleteRepositoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRepositoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRepositoryCommand\");\nvar de_DeleteRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRepositoryCreationTemplateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRepositoryCreationTemplateCommand\");\nvar de_DeleteRepositoryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRepositoryPolicyCommand\");\nvar de_DescribeImageReplicationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImageReplicationStatusCommand\");\nvar de_DescribeImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImagesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImagesCommand\");\nvar de_DescribeImageScanFindingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeImageScanFindingsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeImageScanFindingsCommand\");\nvar de_DescribePullThroughCacheRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribePullThroughCacheRulesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePullThroughCacheRulesCommand\");\nvar de_DescribeRegistryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRegistryCommand\");\nvar de_DescribeRepositoriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRepositoriesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRepositoriesCommand\");\nvar de_DescribeRepositoryCreationTemplatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRepositoryCreationTemplatesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRepositoryCreationTemplatesCommand\");\nvar de_GetAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountSettingCommand\");\nvar de_GetAuthorizationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetAuthorizationTokenResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAuthorizationTokenCommand\");\nvar de_GetDownloadUrlForLayerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDownloadUrlForLayerCommand\");\nvar de_GetLifecyclePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetLifecyclePolicyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLifecyclePolicyCommand\");\nvar de_GetLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetLifecyclePolicyPreviewResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLifecyclePolicyPreviewCommand\");\nvar de_GetRegistryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRegistryPolicyCommand\");\nvar de_GetRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRegistryScanningConfigurationCommand\");\nvar de_GetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRepositoryPolicyCommand\");\nvar de_InitiateLayerUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_InitiateLayerUploadCommand\");\nvar de_ListImagesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListImagesCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_PutAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountSettingCommand\");\nvar de_PutImageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutImageCommand\");\nvar de_PutImageScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutImageScanningConfigurationCommand\");\nvar de_PutImageTagMutabilityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutImageTagMutabilityCommand\");\nvar de_PutLifecyclePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutLifecyclePolicyCommand\");\nvar de_PutRegistryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutRegistryPolicyCommand\");\nvar de_PutRegistryScanningConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutRegistryScanningConfigurationCommand\");\nvar de_PutReplicationConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutReplicationConfigurationCommand\");\nvar de_SetRepositoryPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetRepositoryPolicyCommand\");\nvar de_StartImageScanCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartImageScanCommand\");\nvar de_StartLifecyclePolicyPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartLifecyclePolicyPreviewCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdatePullThroughCacheRuleResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdatePullThroughCacheRuleCommand\");\nvar de_UpdateRepositoryCreationTemplateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateRepositoryCreationTemplateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateRepositoryCreationTemplateCommand\");\nvar de_UploadLayerPartCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadLayerPartCommand\");\nvar de_ValidatePullThroughCacheRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ValidatePullThroughCacheRuleCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidParameterException\":\n case \"com.amazonaws.ecr#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"RepositoryNotFoundException\":\n case \"com.amazonaws.ecr#RepositoryNotFoundException\":\n throw await de_RepositoryNotFoundExceptionRes(parsedOutput, context);\n case \"ServerException\":\n case \"com.amazonaws.ecr#ServerException\":\n throw await de_ServerExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.ecr#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"UnableToGetUpstreamImageException\":\n case \"com.amazonaws.ecr#UnableToGetUpstreamImageException\":\n throw await de_UnableToGetUpstreamImageExceptionRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.ecr#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"EmptyUploadException\":\n case \"com.amazonaws.ecr#EmptyUploadException\":\n throw await de_EmptyUploadExceptionRes(parsedOutput, context);\n case \"InvalidLayerException\":\n case \"com.amazonaws.ecr#InvalidLayerException\":\n throw await de_InvalidLayerExceptionRes(parsedOutput, context);\n case \"KmsException\":\n case \"com.amazonaws.ecr#KmsException\":\n throw await de_KmsExceptionRes(parsedOutput, context);\n case \"LayerAlreadyExistsException\":\n case \"com.amazonaws.ecr#LayerAlreadyExistsException\":\n throw await de_LayerAlreadyExistsExceptionRes(parsedOutput, context);\n case \"LayerPartTooSmallException\":\n case \"com.amazonaws.ecr#LayerPartTooSmallException\":\n throw await de_LayerPartTooSmallExceptionRes(parsedOutput, context);\n case \"UploadNotFoundException\":\n case \"com.amazonaws.ecr#UploadNotFoundException\":\n throw await de_UploadNotFoundExceptionRes(parsedOutput, context);\n case \"PullThroughCacheRuleAlreadyExistsException\":\n case \"com.amazonaws.ecr#PullThroughCacheRuleAlreadyExistsException\":\n throw await de_PullThroughCacheRuleAlreadyExistsExceptionRes(parsedOutput, context);\n case \"SecretNotFoundException\":\n case \"com.amazonaws.ecr#SecretNotFoundException\":\n throw await de_SecretNotFoundExceptionRes(parsedOutput, context);\n case \"UnableToAccessSecretException\":\n case \"com.amazonaws.ecr#UnableToAccessSecretException\":\n throw await de_UnableToAccessSecretExceptionRes(parsedOutput, context);\n case \"UnableToDecryptSecretValueException\":\n case \"com.amazonaws.ecr#UnableToDecryptSecretValueException\":\n throw await de_UnableToDecryptSecretValueExceptionRes(parsedOutput, context);\n case \"UnsupportedUpstreamRegistryException\":\n case \"com.amazonaws.ecr#UnsupportedUpstreamRegistryException\":\n throw await de_UnsupportedUpstreamRegistryExceptionRes(parsedOutput, context);\n case \"InvalidTagParameterException\":\n case \"com.amazonaws.ecr#InvalidTagParameterException\":\n throw await de_InvalidTagParameterExceptionRes(parsedOutput, context);\n case \"RepositoryAlreadyExistsException\":\n case \"com.amazonaws.ecr#RepositoryAlreadyExistsException\":\n throw await de_RepositoryAlreadyExistsExceptionRes(parsedOutput, context);\n case \"TooManyTagsException\":\n case \"com.amazonaws.ecr#TooManyTagsException\":\n throw await de_TooManyTagsExceptionRes(parsedOutput, context);\n case \"TemplateAlreadyExistsException\":\n case \"com.amazonaws.ecr#TemplateAlreadyExistsException\":\n throw await de_TemplateAlreadyExistsExceptionRes(parsedOutput, context);\n case \"LifecyclePolicyNotFoundException\":\n case \"com.amazonaws.ecr#LifecyclePolicyNotFoundException\":\n throw await de_LifecyclePolicyNotFoundExceptionRes(parsedOutput, context);\n case \"PullThroughCacheRuleNotFoundException\":\n case \"com.amazonaws.ecr#PullThroughCacheRuleNotFoundException\":\n throw await de_PullThroughCacheRuleNotFoundExceptionRes(parsedOutput, context);\n case \"RegistryPolicyNotFoundException\":\n case \"com.amazonaws.ecr#RegistryPolicyNotFoundException\":\n throw await de_RegistryPolicyNotFoundExceptionRes(parsedOutput, context);\n case \"RepositoryNotEmptyException\":\n case \"com.amazonaws.ecr#RepositoryNotEmptyException\":\n throw await de_RepositoryNotEmptyExceptionRes(parsedOutput, context);\n case \"TemplateNotFoundException\":\n case \"com.amazonaws.ecr#TemplateNotFoundException\":\n throw await de_TemplateNotFoundExceptionRes(parsedOutput, context);\n case \"RepositoryPolicyNotFoundException\":\n case \"com.amazonaws.ecr#RepositoryPolicyNotFoundException\":\n throw await de_RepositoryPolicyNotFoundExceptionRes(parsedOutput, context);\n case \"ImageNotFoundException\":\n case \"com.amazonaws.ecr#ImageNotFoundException\":\n throw await de_ImageNotFoundExceptionRes(parsedOutput, context);\n case \"ScanNotFoundException\":\n case \"com.amazonaws.ecr#ScanNotFoundException\":\n throw await de_ScanNotFoundExceptionRes(parsedOutput, context);\n case \"LayerInaccessibleException\":\n case \"com.amazonaws.ecr#LayerInaccessibleException\":\n throw await de_LayerInaccessibleExceptionRes(parsedOutput, context);\n case \"LayersNotFoundException\":\n case \"com.amazonaws.ecr#LayersNotFoundException\":\n throw await de_LayersNotFoundExceptionRes(parsedOutput, context);\n case \"UnableToGetUpstreamLayerException\":\n case \"com.amazonaws.ecr#UnableToGetUpstreamLayerException\":\n throw await de_UnableToGetUpstreamLayerExceptionRes(parsedOutput, context);\n case \"LifecyclePolicyPreviewNotFoundException\":\n case \"com.amazonaws.ecr#LifecyclePolicyPreviewNotFoundException\":\n throw await de_LifecyclePolicyPreviewNotFoundExceptionRes(parsedOutput, context);\n case \"ImageAlreadyExistsException\":\n case \"com.amazonaws.ecr#ImageAlreadyExistsException\":\n throw await de_ImageAlreadyExistsExceptionRes(parsedOutput, context);\n case \"ImageDigestDoesNotMatchException\":\n case \"com.amazonaws.ecr#ImageDigestDoesNotMatchException\":\n throw await de_ImageDigestDoesNotMatchExceptionRes(parsedOutput, context);\n case \"ImageTagAlreadyExistsException\":\n case \"com.amazonaws.ecr#ImageTagAlreadyExistsException\":\n throw await de_ImageTagAlreadyExistsExceptionRes(parsedOutput, context);\n case \"ReferencedImagesNotFoundException\":\n case \"com.amazonaws.ecr#ReferencedImagesNotFoundException\":\n throw await de_ReferencedImagesNotFoundExceptionRes(parsedOutput, context);\n case \"UnsupportedImageTypeException\":\n case \"com.amazonaws.ecr#UnsupportedImageTypeException\":\n throw await de_UnsupportedImageTypeExceptionRes(parsedOutput, context);\n case \"LifecyclePolicyPreviewInProgressException\":\n case \"com.amazonaws.ecr#LifecyclePolicyPreviewInProgressException\":\n throw await de_LifecyclePolicyPreviewInProgressExceptionRes(parsedOutput, context);\n case \"InvalidLayerPartException\":\n case \"com.amazonaws.ecr#InvalidLayerPartException\":\n throw await de_InvalidLayerPartExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_EmptyUploadExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new EmptyUploadException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EmptyUploadExceptionRes\");\nvar de_ImageAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageAlreadyExistsExceptionRes\");\nvar de_ImageDigestDoesNotMatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageDigestDoesNotMatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageDigestDoesNotMatchExceptionRes\");\nvar de_ImageNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageNotFoundExceptionRes\");\nvar de_ImageTagAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ImageTagAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ImageTagAlreadyExistsExceptionRes\");\nvar de_InvalidLayerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidLayerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLayerExceptionRes\");\nvar de_InvalidLayerPartExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidLayerPartException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLayerPartExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_InvalidTagParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTagParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTagParameterExceptionRes\");\nvar de_KmsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsExceptionRes\");\nvar de_LayerAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayerAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayerAlreadyExistsExceptionRes\");\nvar de_LayerInaccessibleExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayerInaccessibleException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayerInaccessibleExceptionRes\");\nvar de_LayerPartTooSmallExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayerPartTooSmallException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayerPartTooSmallExceptionRes\");\nvar de_LayersNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LayersNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LayersNotFoundExceptionRes\");\nvar de_LifecyclePolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LifecyclePolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LifecyclePolicyNotFoundExceptionRes\");\nvar de_LifecyclePolicyPreviewInProgressExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LifecyclePolicyPreviewInProgressException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LifecyclePolicyPreviewInProgressExceptionRes\");\nvar de_LifecyclePolicyPreviewNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LifecyclePolicyPreviewNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LifecyclePolicyPreviewNotFoundExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_PullThroughCacheRuleAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PullThroughCacheRuleAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PullThroughCacheRuleAlreadyExistsExceptionRes\");\nvar de_PullThroughCacheRuleNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PullThroughCacheRuleNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PullThroughCacheRuleNotFoundExceptionRes\");\nvar de_ReferencedImagesNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ReferencedImagesNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ReferencedImagesNotFoundExceptionRes\");\nvar de_RegistryPolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RegistryPolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RegistryPolicyNotFoundExceptionRes\");\nvar de_RepositoryAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryAlreadyExistsExceptionRes\");\nvar de_RepositoryNotEmptyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryNotEmptyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryNotEmptyExceptionRes\");\nvar de_RepositoryNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryNotFoundExceptionRes\");\nvar de_RepositoryPolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new RepositoryPolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RepositoryPolicyNotFoundExceptionRes\");\nvar de_ScanNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ScanNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ScanNotFoundExceptionRes\");\nvar de_SecretNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SecretNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SecretNotFoundExceptionRes\");\nvar de_ServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServerExceptionRes\");\nvar de_TemplateAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TemplateAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TemplateAlreadyExistsExceptionRes\");\nvar de_TemplateNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TemplateNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TemplateNotFoundExceptionRes\");\nvar de_TooManyTagsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTagsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsExceptionRes\");\nvar de_UnableToAccessSecretExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToAccessSecretException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToAccessSecretExceptionRes\");\nvar de_UnableToDecryptSecretValueExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToDecryptSecretValueException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToDecryptSecretValueExceptionRes\");\nvar de_UnableToGetUpstreamImageExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToGetUpstreamImageException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToGetUpstreamImageExceptionRes\");\nvar de_UnableToGetUpstreamLayerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnableToGetUpstreamLayerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnableToGetUpstreamLayerExceptionRes\");\nvar de_UnsupportedImageTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedImageTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedImageTypeExceptionRes\");\nvar de_UnsupportedUpstreamRegistryExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedUpstreamRegistryException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedUpstreamRegistryExceptionRes\");\nvar de_UploadNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UploadNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UploadNotFoundExceptionRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar se_UploadLayerPartRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n layerPartBlob: context.base64Encoder,\n partFirstByte: [],\n partLastByte: [],\n registryId: [],\n repositoryName: [],\n uploadId: []\n });\n}, \"se_UploadLayerPartRequest\");\nvar de_AuthorizationData = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n authorizationToken: import_smithy_client.expectString,\n expiresAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expiresAt\"),\n proxyEndpoint: import_smithy_client.expectString\n });\n}, \"de_AuthorizationData\");\nvar de_AuthorizationDataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AuthorizationData(entry, context);\n });\n return retVal;\n}, \"de_AuthorizationDataList\");\nvar de_AwsEcrContainerImageDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n architecture: import_smithy_client.expectString,\n author: import_smithy_client.expectString,\n imageHash: import_smithy_client.expectString,\n imageTags: import_smithy_client._json,\n inUseCount: import_smithy_client.expectLong,\n lastInUseAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastInUseAt\"),\n platform: import_smithy_client.expectString,\n pushedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"pushedAt\"),\n registry: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_AwsEcrContainerImageDetails\");\nvar de_CreatePullThroughCacheRuleResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n upstreamRegistry: import_smithy_client.expectString,\n upstreamRegistryUrl: import_smithy_client.expectString,\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_CreatePullThroughCacheRuleResponse\");\nvar de_CreateRepositoryCreationTemplateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplate: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplate(_, context), \"repositoryCreationTemplate\")\n });\n}, \"de_CreateRepositoryCreationTemplateResponse\");\nvar de_CreateRepositoryResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n repository: /* @__PURE__ */ __name((_) => de_Repository(_, context), \"repository\")\n });\n}, \"de_CreateRepositoryResponse\");\nvar de_CvssScore = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n baseScore: import_smithy_client.limitedParseDouble,\n scoringVector: import_smithy_client.expectString,\n source: import_smithy_client.expectString,\n version: import_smithy_client.expectString\n });\n}, \"de_CvssScore\");\nvar de_CvssScoreDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n adjustments: import_smithy_client._json,\n score: import_smithy_client.limitedParseDouble,\n scoreSource: import_smithy_client.expectString,\n scoringVector: import_smithy_client.expectString,\n version: import_smithy_client.expectString\n });\n}, \"de_CvssScoreDetails\");\nvar de_CvssScoreList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CvssScore(entry, context);\n });\n return retVal;\n}, \"de_CvssScoreList\");\nvar de_DeleteLifecyclePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastEvaluatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastEvaluatedAt\"),\n lifecyclePolicyText: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_DeleteLifecyclePolicyResponse\");\nvar de_DeletePullThroughCacheRuleResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n upstreamRegistryUrl: import_smithy_client.expectString,\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_DeletePullThroughCacheRuleResponse\");\nvar de_DeleteRepositoryCreationTemplateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplate: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplate(_, context), \"repositoryCreationTemplate\")\n });\n}, \"de_DeleteRepositoryCreationTemplateResponse\");\nvar de_DeleteRepositoryResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n repository: /* @__PURE__ */ __name((_) => de_Repository(_, context), \"repository\")\n });\n}, \"de_DeleteRepositoryResponse\");\nvar de_DescribeImageScanFindingsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n imageId: import_smithy_client._json,\n imageScanFindings: /* @__PURE__ */ __name((_) => de_ImageScanFindings(_, context), \"imageScanFindings\"),\n imageScanStatus: import_smithy_client._json,\n nextToken: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_DescribeImageScanFindingsResponse\");\nvar de_DescribeImagesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n imageDetails: /* @__PURE__ */ __name((_) => de_ImageDetailList(_, context), \"imageDetails\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeImagesResponse\");\nvar de_DescribePullThroughCacheRulesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n pullThroughCacheRules: /* @__PURE__ */ __name((_) => de_PullThroughCacheRuleList(_, context), \"pullThroughCacheRules\")\n });\n}, \"de_DescribePullThroughCacheRulesResponse\");\nvar de_DescribeRepositoriesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n repositories: /* @__PURE__ */ __name((_) => de_RepositoryList(_, context), \"repositories\")\n });\n}, \"de_DescribeRepositoriesResponse\");\nvar de_DescribeRepositoryCreationTemplatesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplates: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplateList(_, context), \"repositoryCreationTemplates\")\n });\n}, \"de_DescribeRepositoryCreationTemplatesResponse\");\nvar de_EnhancedImageScanFinding = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n awsAccountId: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n exploitAvailable: import_smithy_client.expectString,\n findingArn: import_smithy_client.expectString,\n firstObservedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"firstObservedAt\"),\n fixAvailable: import_smithy_client.expectString,\n lastObservedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastObservedAt\"),\n packageVulnerabilityDetails: /* @__PURE__ */ __name((_) => de_PackageVulnerabilityDetails(_, context), \"packageVulnerabilityDetails\"),\n remediation: import_smithy_client._json,\n resources: /* @__PURE__ */ __name((_) => de_ResourceList(_, context), \"resources\"),\n score: import_smithy_client.limitedParseDouble,\n scoreDetails: /* @__PURE__ */ __name((_) => de_ScoreDetails(_, context), \"scoreDetails\"),\n severity: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n title: import_smithy_client.expectString,\n type: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_EnhancedImageScanFinding\");\nvar de_EnhancedImageScanFindingList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_EnhancedImageScanFinding(entry, context);\n });\n return retVal;\n}, \"de_EnhancedImageScanFindingList\");\nvar de_GetAuthorizationTokenResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n authorizationData: /* @__PURE__ */ __name((_) => de_AuthorizationDataList(_, context), \"authorizationData\")\n });\n}, \"de_GetAuthorizationTokenResponse\");\nvar de_GetLifecyclePolicyPreviewResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lifecyclePolicyText: import_smithy_client.expectString,\n nextToken: import_smithy_client.expectString,\n previewResults: /* @__PURE__ */ __name((_) => de_LifecyclePolicyPreviewResultList(_, context), \"previewResults\"),\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n summary: import_smithy_client._json\n });\n}, \"de_GetLifecyclePolicyPreviewResponse\");\nvar de_GetLifecyclePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastEvaluatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastEvaluatedAt\"),\n lifecyclePolicyText: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_GetLifecyclePolicyResponse\");\nvar de_ImageDetail = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n artifactMediaType: import_smithy_client.expectString,\n imageDigest: import_smithy_client.expectString,\n imageManifestMediaType: import_smithy_client.expectString,\n imagePushedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imagePushedAt\"),\n imageScanFindingsSummary: /* @__PURE__ */ __name((_) => de_ImageScanFindingsSummary(_, context), \"imageScanFindingsSummary\"),\n imageScanStatus: import_smithy_client._json,\n imageSizeInBytes: import_smithy_client.expectLong,\n imageTags: import_smithy_client._json,\n lastRecordedPullTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastRecordedPullTime\"),\n registryId: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString\n });\n}, \"de_ImageDetail\");\nvar de_ImageDetailList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ImageDetail(entry, context);\n });\n return retVal;\n}, \"de_ImageDetailList\");\nvar de_ImageScanFindings = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n enhancedFindings: /* @__PURE__ */ __name((_) => de_EnhancedImageScanFindingList(_, context), \"enhancedFindings\"),\n findingSeverityCounts: import_smithy_client._json,\n findings: import_smithy_client._json,\n imageScanCompletedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imageScanCompletedAt\"),\n vulnerabilitySourceUpdatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vulnerabilitySourceUpdatedAt\")\n });\n}, \"de_ImageScanFindings\");\nvar de_ImageScanFindingsSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n findingSeverityCounts: import_smithy_client._json,\n imageScanCompletedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imageScanCompletedAt\"),\n vulnerabilitySourceUpdatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vulnerabilitySourceUpdatedAt\")\n });\n}, \"de_ImageScanFindingsSummary\");\nvar de_LifecyclePolicyPreviewResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n action: import_smithy_client._json,\n appliedRulePriority: import_smithy_client.expectInt32,\n imageDigest: import_smithy_client.expectString,\n imagePushedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"imagePushedAt\"),\n imageTags: import_smithy_client._json\n });\n}, \"de_LifecyclePolicyPreviewResult\");\nvar de_LifecyclePolicyPreviewResultList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_LifecyclePolicyPreviewResult(entry, context);\n });\n return retVal;\n}, \"de_LifecyclePolicyPreviewResultList\");\nvar de_PackageVulnerabilityDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n cvss: /* @__PURE__ */ __name((_) => de_CvssScoreList(_, context), \"cvss\"),\n referenceUrls: import_smithy_client._json,\n relatedVulnerabilities: import_smithy_client._json,\n source: import_smithy_client.expectString,\n sourceUrl: import_smithy_client.expectString,\n vendorCreatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vendorCreatedAt\"),\n vendorSeverity: import_smithy_client.expectString,\n vendorUpdatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"vendorUpdatedAt\"),\n vulnerabilityId: import_smithy_client.expectString,\n vulnerablePackages: import_smithy_client._json\n });\n}, \"de_PackageVulnerabilityDetails\");\nvar de_PullThroughCacheRule = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\"),\n upstreamRegistry: import_smithy_client.expectString,\n upstreamRegistryUrl: import_smithy_client.expectString,\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_PullThroughCacheRule\");\nvar de_PullThroughCacheRuleList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_PullThroughCacheRule(entry, context);\n });\n return retVal;\n}, \"de_PullThroughCacheRuleList\");\nvar de_Repository = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n encryptionConfiguration: import_smithy_client._json,\n imageScanningConfiguration: import_smithy_client._json,\n imageTagMutability: import_smithy_client.expectString,\n imageTagMutabilityExclusionFilters: import_smithy_client._json,\n registryId: import_smithy_client.expectString,\n repositoryArn: import_smithy_client.expectString,\n repositoryName: import_smithy_client.expectString,\n repositoryUri: import_smithy_client.expectString\n });\n}, \"de_Repository\");\nvar de_RepositoryCreationTemplate = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n appliedFor: import_smithy_client._json,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n customRoleArn: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n encryptionConfiguration: import_smithy_client._json,\n imageTagMutability: import_smithy_client.expectString,\n imageTagMutabilityExclusionFilters: import_smithy_client._json,\n lifecyclePolicy: import_smithy_client.expectString,\n prefix: import_smithy_client.expectString,\n repositoryPolicy: import_smithy_client.expectString,\n resourceTags: import_smithy_client._json,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_RepositoryCreationTemplate\");\nvar de_RepositoryCreationTemplateList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_RepositoryCreationTemplate(entry, context);\n });\n return retVal;\n}, \"de_RepositoryCreationTemplateList\");\nvar de_RepositoryList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Repository(entry, context);\n });\n return retVal;\n}, \"de_RepositoryList\");\nvar de_Resource = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n details: /* @__PURE__ */ __name((_) => de_ResourceDetails(_, context), \"details\"),\n id: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n type: import_smithy_client.expectString\n });\n}, \"de_Resource\");\nvar de_ResourceDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n awsEcrContainerImage: /* @__PURE__ */ __name((_) => de_AwsEcrContainerImageDetails(_, context), \"awsEcrContainerImage\")\n });\n}, \"de_ResourceDetails\");\nvar de_ResourceList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Resource(entry, context);\n });\n return retVal;\n}, \"de_ResourceList\");\nvar de_ScoreDetails = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n cvss: /* @__PURE__ */ __name((_) => de_CvssScoreDetails(_, context), \"cvss\")\n });\n}, \"de_ScoreDetails\");\nvar de_UpdatePullThroughCacheRuleResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n credentialArn: import_smithy_client.expectString,\n customRoleArn: import_smithy_client.expectString,\n ecrRepositoryPrefix: import_smithy_client.expectString,\n registryId: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\"),\n upstreamRepositoryPrefix: import_smithy_client.expectString\n });\n}, \"de_UpdatePullThroughCacheRuleResponse\");\nvar de_UpdateRepositoryCreationTemplateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n registryId: import_smithy_client.expectString,\n repositoryCreationTemplate: /* @__PURE__ */ __name((_) => de_RepositoryCreationTemplate(_, context), \"repositoryCreationTemplate\")\n });\n}, \"de_UpdateRepositoryCreationTemplateResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(ECRServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AmazonEC2ContainerRegistry_V20150921.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/BatchCheckLayerAvailabilityCommand.ts\nvar BatchCheckLayerAvailabilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchCheckLayerAvailability\", {}).n(\"ECRClient\", \"BatchCheckLayerAvailabilityCommand\").f(void 0, void 0).ser(se_BatchCheckLayerAvailabilityCommand).de(de_BatchCheckLayerAvailabilityCommand).build() {\n static {\n __name(this, \"BatchCheckLayerAvailabilityCommand\");\n }\n};\n\n// src/commands/BatchDeleteImageCommand.ts\n\n\n\nvar BatchDeleteImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchDeleteImage\", {}).n(\"ECRClient\", \"BatchDeleteImageCommand\").f(void 0, void 0).ser(se_BatchDeleteImageCommand).de(de_BatchDeleteImageCommand).build() {\n static {\n __name(this, \"BatchDeleteImageCommand\");\n }\n};\n\n// src/commands/BatchGetImageCommand.ts\n\n\n\nvar BatchGetImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchGetImage\", {}).n(\"ECRClient\", \"BatchGetImageCommand\").f(void 0, void 0).ser(se_BatchGetImageCommand).de(de_BatchGetImageCommand).build() {\n static {\n __name(this, \"BatchGetImageCommand\");\n }\n};\n\n// src/commands/BatchGetRepositoryScanningConfigurationCommand.ts\n\n\n\nvar BatchGetRepositoryScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"BatchGetRepositoryScanningConfiguration\", {}).n(\"ECRClient\", \"BatchGetRepositoryScanningConfigurationCommand\").f(void 0, void 0).ser(se_BatchGetRepositoryScanningConfigurationCommand).de(de_BatchGetRepositoryScanningConfigurationCommand).build() {\n static {\n __name(this, \"BatchGetRepositoryScanningConfigurationCommand\");\n }\n};\n\n// src/commands/CompleteLayerUploadCommand.ts\n\n\n\nvar CompleteLayerUploadCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CompleteLayerUpload\", {}).n(\"ECRClient\", \"CompleteLayerUploadCommand\").f(void 0, void 0).ser(se_CompleteLayerUploadCommand).de(de_CompleteLayerUploadCommand).build() {\n static {\n __name(this, \"CompleteLayerUploadCommand\");\n }\n};\n\n// src/commands/CreatePullThroughCacheRuleCommand.ts\n\n\n\nvar CreatePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CreatePullThroughCacheRule\", {}).n(\"ECRClient\", \"CreatePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_CreatePullThroughCacheRuleCommand).de(de_CreatePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"CreatePullThroughCacheRuleCommand\");\n }\n};\n\n// src/commands/CreateRepositoryCommand.ts\n\n\n\nvar CreateRepositoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CreateRepository\", {}).n(\"ECRClient\", \"CreateRepositoryCommand\").f(void 0, void 0).ser(se_CreateRepositoryCommand).de(de_CreateRepositoryCommand).build() {\n static {\n __name(this, \"CreateRepositoryCommand\");\n }\n};\n\n// src/commands/CreateRepositoryCreationTemplateCommand.ts\n\n\n\nvar CreateRepositoryCreationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"CreateRepositoryCreationTemplate\", {}).n(\"ECRClient\", \"CreateRepositoryCreationTemplateCommand\").f(void 0, void 0).ser(se_CreateRepositoryCreationTemplateCommand).de(de_CreateRepositoryCreationTemplateCommand).build() {\n static {\n __name(this, \"CreateRepositoryCreationTemplateCommand\");\n }\n};\n\n// src/commands/DeleteLifecyclePolicyCommand.ts\n\n\n\nvar DeleteLifecyclePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteLifecyclePolicy\", {}).n(\"ECRClient\", \"DeleteLifecyclePolicyCommand\").f(void 0, void 0).ser(se_DeleteLifecyclePolicyCommand).de(de_DeleteLifecyclePolicyCommand).build() {\n static {\n __name(this, \"DeleteLifecyclePolicyCommand\");\n }\n};\n\n// src/commands/DeletePullThroughCacheRuleCommand.ts\n\n\n\nvar DeletePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeletePullThroughCacheRule\", {}).n(\"ECRClient\", \"DeletePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_DeletePullThroughCacheRuleCommand).de(de_DeletePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"DeletePullThroughCacheRuleCommand\");\n }\n};\n\n// src/commands/DeleteRegistryPolicyCommand.ts\n\n\n\nvar DeleteRegistryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRegistryPolicy\", {}).n(\"ECRClient\", \"DeleteRegistryPolicyCommand\").f(void 0, void 0).ser(se_DeleteRegistryPolicyCommand).de(de_DeleteRegistryPolicyCommand).build() {\n static {\n __name(this, \"DeleteRegistryPolicyCommand\");\n }\n};\n\n// src/commands/DeleteRepositoryCommand.ts\n\n\n\nvar DeleteRepositoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRepository\", {}).n(\"ECRClient\", \"DeleteRepositoryCommand\").f(void 0, void 0).ser(se_DeleteRepositoryCommand).de(de_DeleteRepositoryCommand).build() {\n static {\n __name(this, \"DeleteRepositoryCommand\");\n }\n};\n\n// src/commands/DeleteRepositoryCreationTemplateCommand.ts\n\n\n\nvar DeleteRepositoryCreationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRepositoryCreationTemplate\", {}).n(\"ECRClient\", \"DeleteRepositoryCreationTemplateCommand\").f(void 0, void 0).ser(se_DeleteRepositoryCreationTemplateCommand).de(de_DeleteRepositoryCreationTemplateCommand).build() {\n static {\n __name(this, \"DeleteRepositoryCreationTemplateCommand\");\n }\n};\n\n// src/commands/DeleteRepositoryPolicyCommand.ts\n\n\n\nvar DeleteRepositoryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DeleteRepositoryPolicy\", {}).n(\"ECRClient\", \"DeleteRepositoryPolicyCommand\").f(void 0, void 0).ser(se_DeleteRepositoryPolicyCommand).de(de_DeleteRepositoryPolicyCommand).build() {\n static {\n __name(this, \"DeleteRepositoryPolicyCommand\");\n }\n};\n\n// src/commands/DescribeImageReplicationStatusCommand.ts\n\n\n\nvar DescribeImageReplicationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeImageReplicationStatus\", {}).n(\"ECRClient\", \"DescribeImageReplicationStatusCommand\").f(void 0, void 0).ser(se_DescribeImageReplicationStatusCommand).de(de_DescribeImageReplicationStatusCommand).build() {\n static {\n __name(this, \"DescribeImageReplicationStatusCommand\");\n }\n};\n\n// src/commands/DescribeImageScanFindingsCommand.ts\n\n\n\nvar DescribeImageScanFindingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeImageScanFindings\", {}).n(\"ECRClient\", \"DescribeImageScanFindingsCommand\").f(void 0, void 0).ser(se_DescribeImageScanFindingsCommand).de(de_DescribeImageScanFindingsCommand).build() {\n static {\n __name(this, \"DescribeImageScanFindingsCommand\");\n }\n};\n\n// src/commands/DescribeImagesCommand.ts\n\n\n\nvar DescribeImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeImages\", {}).n(\"ECRClient\", \"DescribeImagesCommand\").f(void 0, void 0).ser(se_DescribeImagesCommand).de(de_DescribeImagesCommand).build() {\n static {\n __name(this, \"DescribeImagesCommand\");\n }\n};\n\n// src/commands/DescribePullThroughCacheRulesCommand.ts\n\n\n\nvar DescribePullThroughCacheRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribePullThroughCacheRules\", {}).n(\"ECRClient\", \"DescribePullThroughCacheRulesCommand\").f(void 0, void 0).ser(se_DescribePullThroughCacheRulesCommand).de(de_DescribePullThroughCacheRulesCommand).build() {\n static {\n __name(this, \"DescribePullThroughCacheRulesCommand\");\n }\n};\n\n// src/commands/DescribeRegistryCommand.ts\n\n\n\nvar DescribeRegistryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeRegistry\", {}).n(\"ECRClient\", \"DescribeRegistryCommand\").f(void 0, void 0).ser(se_DescribeRegistryCommand).de(de_DescribeRegistryCommand).build() {\n static {\n __name(this, \"DescribeRegistryCommand\");\n }\n};\n\n// src/commands/DescribeRepositoriesCommand.ts\n\n\n\nvar DescribeRepositoriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeRepositories\", {}).n(\"ECRClient\", \"DescribeRepositoriesCommand\").f(void 0, void 0).ser(se_DescribeRepositoriesCommand).de(de_DescribeRepositoriesCommand).build() {\n static {\n __name(this, \"DescribeRepositoriesCommand\");\n }\n};\n\n// src/commands/DescribeRepositoryCreationTemplatesCommand.ts\n\n\n\nvar DescribeRepositoryCreationTemplatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"DescribeRepositoryCreationTemplates\", {}).n(\"ECRClient\", \"DescribeRepositoryCreationTemplatesCommand\").f(void 0, void 0).ser(se_DescribeRepositoryCreationTemplatesCommand).de(de_DescribeRepositoryCreationTemplatesCommand).build() {\n static {\n __name(this, \"DescribeRepositoryCreationTemplatesCommand\");\n }\n};\n\n// src/commands/GetAccountSettingCommand.ts\n\n\n\nvar GetAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetAccountSetting\", {}).n(\"ECRClient\", \"GetAccountSettingCommand\").f(void 0, void 0).ser(se_GetAccountSettingCommand).de(de_GetAccountSettingCommand).build() {\n static {\n __name(this, \"GetAccountSettingCommand\");\n }\n};\n\n// src/commands/GetAuthorizationTokenCommand.ts\n\n\n\nvar GetAuthorizationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetAuthorizationToken\", {}).n(\"ECRClient\", \"GetAuthorizationTokenCommand\").f(void 0, void 0).ser(se_GetAuthorizationTokenCommand).de(de_GetAuthorizationTokenCommand).build() {\n static {\n __name(this, \"GetAuthorizationTokenCommand\");\n }\n};\n\n// src/commands/GetDownloadUrlForLayerCommand.ts\n\n\n\nvar GetDownloadUrlForLayerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetDownloadUrlForLayer\", {}).n(\"ECRClient\", \"GetDownloadUrlForLayerCommand\").f(void 0, void 0).ser(se_GetDownloadUrlForLayerCommand).de(de_GetDownloadUrlForLayerCommand).build() {\n static {\n __name(this, \"GetDownloadUrlForLayerCommand\");\n }\n};\n\n// src/commands/GetLifecyclePolicyCommand.ts\n\n\n\nvar GetLifecyclePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetLifecyclePolicy\", {}).n(\"ECRClient\", \"GetLifecyclePolicyCommand\").f(void 0, void 0).ser(se_GetLifecyclePolicyCommand).de(de_GetLifecyclePolicyCommand).build() {\n static {\n __name(this, \"GetLifecyclePolicyCommand\");\n }\n};\n\n// src/commands/GetLifecyclePolicyPreviewCommand.ts\n\n\n\nvar GetLifecyclePolicyPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetLifecyclePolicyPreview\", {}).n(\"ECRClient\", \"GetLifecyclePolicyPreviewCommand\").f(void 0, void 0).ser(se_GetLifecyclePolicyPreviewCommand).de(de_GetLifecyclePolicyPreviewCommand).build() {\n static {\n __name(this, \"GetLifecyclePolicyPreviewCommand\");\n }\n};\n\n// src/commands/GetRegistryPolicyCommand.ts\n\n\n\nvar GetRegistryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetRegistryPolicy\", {}).n(\"ECRClient\", \"GetRegistryPolicyCommand\").f(void 0, void 0).ser(se_GetRegistryPolicyCommand).de(de_GetRegistryPolicyCommand).build() {\n static {\n __name(this, \"GetRegistryPolicyCommand\");\n }\n};\n\n// src/commands/GetRegistryScanningConfigurationCommand.ts\n\n\n\nvar GetRegistryScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetRegistryScanningConfiguration\", {}).n(\"ECRClient\", \"GetRegistryScanningConfigurationCommand\").f(void 0, void 0).ser(se_GetRegistryScanningConfigurationCommand).de(de_GetRegistryScanningConfigurationCommand).build() {\n static {\n __name(this, \"GetRegistryScanningConfigurationCommand\");\n }\n};\n\n// src/commands/GetRepositoryPolicyCommand.ts\n\n\n\nvar GetRepositoryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"GetRepositoryPolicy\", {}).n(\"ECRClient\", \"GetRepositoryPolicyCommand\").f(void 0, void 0).ser(se_GetRepositoryPolicyCommand).de(de_GetRepositoryPolicyCommand).build() {\n static {\n __name(this, \"GetRepositoryPolicyCommand\");\n }\n};\n\n// src/commands/InitiateLayerUploadCommand.ts\n\n\n\nvar InitiateLayerUploadCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"InitiateLayerUpload\", {}).n(\"ECRClient\", \"InitiateLayerUploadCommand\").f(void 0, void 0).ser(se_InitiateLayerUploadCommand).de(de_InitiateLayerUploadCommand).build() {\n static {\n __name(this, \"InitiateLayerUploadCommand\");\n }\n};\n\n// src/commands/ListImagesCommand.ts\n\n\n\nvar ListImagesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"ListImages\", {}).n(\"ECRClient\", \"ListImagesCommand\").f(void 0, void 0).ser(se_ListImagesCommand).de(de_ListImagesCommand).build() {\n static {\n __name(this, \"ListImagesCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"ListTagsForResource\", {}).n(\"ECRClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/PutAccountSettingCommand.ts\n\n\n\nvar PutAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutAccountSetting\", {}).n(\"ECRClient\", \"PutAccountSettingCommand\").f(void 0, void 0).ser(se_PutAccountSettingCommand).de(de_PutAccountSettingCommand).build() {\n static {\n __name(this, \"PutAccountSettingCommand\");\n }\n};\n\n// src/commands/PutImageCommand.ts\n\n\n\nvar PutImageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutImage\", {}).n(\"ECRClient\", \"PutImageCommand\").f(void 0, void 0).ser(se_PutImageCommand).de(de_PutImageCommand).build() {\n static {\n __name(this, \"PutImageCommand\");\n }\n};\n\n// src/commands/PutImageScanningConfigurationCommand.ts\n\n\n\nvar PutImageScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutImageScanningConfiguration\", {}).n(\"ECRClient\", \"PutImageScanningConfigurationCommand\").f(void 0, void 0).ser(se_PutImageScanningConfigurationCommand).de(de_PutImageScanningConfigurationCommand).build() {\n static {\n __name(this, \"PutImageScanningConfigurationCommand\");\n }\n};\n\n// src/commands/PutImageTagMutabilityCommand.ts\n\n\n\nvar PutImageTagMutabilityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutImageTagMutability\", {}).n(\"ECRClient\", \"PutImageTagMutabilityCommand\").f(void 0, void 0).ser(se_PutImageTagMutabilityCommand).de(de_PutImageTagMutabilityCommand).build() {\n static {\n __name(this, \"PutImageTagMutabilityCommand\");\n }\n};\n\n// src/commands/PutLifecyclePolicyCommand.ts\n\n\n\nvar PutLifecyclePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutLifecyclePolicy\", {}).n(\"ECRClient\", \"PutLifecyclePolicyCommand\").f(void 0, void 0).ser(se_PutLifecyclePolicyCommand).de(de_PutLifecyclePolicyCommand).build() {\n static {\n __name(this, \"PutLifecyclePolicyCommand\");\n }\n};\n\n// src/commands/PutRegistryPolicyCommand.ts\n\n\n\nvar PutRegistryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutRegistryPolicy\", {}).n(\"ECRClient\", \"PutRegistryPolicyCommand\").f(void 0, void 0).ser(se_PutRegistryPolicyCommand).de(de_PutRegistryPolicyCommand).build() {\n static {\n __name(this, \"PutRegistryPolicyCommand\");\n }\n};\n\n// src/commands/PutRegistryScanningConfigurationCommand.ts\n\n\n\nvar PutRegistryScanningConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutRegistryScanningConfiguration\", {}).n(\"ECRClient\", \"PutRegistryScanningConfigurationCommand\").f(void 0, void 0).ser(se_PutRegistryScanningConfigurationCommand).de(de_PutRegistryScanningConfigurationCommand).build() {\n static {\n __name(this, \"PutRegistryScanningConfigurationCommand\");\n }\n};\n\n// src/commands/PutReplicationConfigurationCommand.ts\n\n\n\nvar PutReplicationConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"PutReplicationConfiguration\", {}).n(\"ECRClient\", \"PutReplicationConfigurationCommand\").f(void 0, void 0).ser(se_PutReplicationConfigurationCommand).de(de_PutReplicationConfigurationCommand).build() {\n static {\n __name(this, \"PutReplicationConfigurationCommand\");\n }\n};\n\n// src/commands/SetRepositoryPolicyCommand.ts\n\n\n\nvar SetRepositoryPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"SetRepositoryPolicy\", {}).n(\"ECRClient\", \"SetRepositoryPolicyCommand\").f(void 0, void 0).ser(se_SetRepositoryPolicyCommand).de(de_SetRepositoryPolicyCommand).build() {\n static {\n __name(this, \"SetRepositoryPolicyCommand\");\n }\n};\n\n// src/commands/StartImageScanCommand.ts\n\n\n\nvar StartImageScanCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"StartImageScan\", {}).n(\"ECRClient\", \"StartImageScanCommand\").f(void 0, void 0).ser(se_StartImageScanCommand).de(de_StartImageScanCommand).build() {\n static {\n __name(this, \"StartImageScanCommand\");\n }\n};\n\n// src/commands/StartLifecyclePolicyPreviewCommand.ts\n\n\n\nvar StartLifecyclePolicyPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"StartLifecyclePolicyPreview\", {}).n(\"ECRClient\", \"StartLifecyclePolicyPreviewCommand\").f(void 0, void 0).ser(se_StartLifecyclePolicyPreviewCommand).de(de_StartLifecyclePolicyPreviewCommand).build() {\n static {\n __name(this, \"StartLifecyclePolicyPreviewCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"TagResource\", {}).n(\"ECRClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UntagResource\", {}).n(\"ECRClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdatePullThroughCacheRuleCommand.ts\n\n\n\nvar UpdatePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UpdatePullThroughCacheRule\", {}).n(\"ECRClient\", \"UpdatePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_UpdatePullThroughCacheRuleCommand).de(de_UpdatePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"UpdatePullThroughCacheRuleCommand\");\n }\n};\n\n// src/commands/UpdateRepositoryCreationTemplateCommand.ts\n\n\n\nvar UpdateRepositoryCreationTemplateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UpdateRepositoryCreationTemplate\", {}).n(\"ECRClient\", \"UpdateRepositoryCreationTemplateCommand\").f(void 0, void 0).ser(se_UpdateRepositoryCreationTemplateCommand).de(de_UpdateRepositoryCreationTemplateCommand).build() {\n static {\n __name(this, \"UpdateRepositoryCreationTemplateCommand\");\n }\n};\n\n// src/commands/UploadLayerPartCommand.ts\n\n\n\nvar UploadLayerPartCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"UploadLayerPart\", {}).n(\"ECRClient\", \"UploadLayerPartCommand\").f(void 0, void 0).ser(se_UploadLayerPartCommand).de(de_UploadLayerPartCommand).build() {\n static {\n __name(this, \"UploadLayerPartCommand\");\n }\n};\n\n// src/commands/ValidatePullThroughCacheRuleCommand.ts\n\n\n\nvar ValidatePullThroughCacheRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerRegistry_V20150921\", \"ValidatePullThroughCacheRule\", {}).n(\"ECRClient\", \"ValidatePullThroughCacheRuleCommand\").f(void 0, void 0).ser(se_ValidatePullThroughCacheRuleCommand).de(de_ValidatePullThroughCacheRuleCommand).build() {\n static {\n __name(this, \"ValidatePullThroughCacheRuleCommand\");\n }\n};\n\n// src/ECR.ts\nvar commands = {\n BatchCheckLayerAvailabilityCommand,\n BatchDeleteImageCommand,\n BatchGetImageCommand,\n BatchGetRepositoryScanningConfigurationCommand,\n CompleteLayerUploadCommand,\n CreatePullThroughCacheRuleCommand,\n CreateRepositoryCommand,\n CreateRepositoryCreationTemplateCommand,\n DeleteLifecyclePolicyCommand,\n DeletePullThroughCacheRuleCommand,\n DeleteRegistryPolicyCommand,\n DeleteRepositoryCommand,\n DeleteRepositoryCreationTemplateCommand,\n DeleteRepositoryPolicyCommand,\n DescribeImageReplicationStatusCommand,\n DescribeImagesCommand,\n DescribeImageScanFindingsCommand,\n DescribePullThroughCacheRulesCommand,\n DescribeRegistryCommand,\n DescribeRepositoriesCommand,\n DescribeRepositoryCreationTemplatesCommand,\n GetAccountSettingCommand,\n GetAuthorizationTokenCommand,\n GetDownloadUrlForLayerCommand,\n GetLifecyclePolicyCommand,\n GetLifecyclePolicyPreviewCommand,\n GetRegistryPolicyCommand,\n GetRegistryScanningConfigurationCommand,\n GetRepositoryPolicyCommand,\n InitiateLayerUploadCommand,\n ListImagesCommand,\n ListTagsForResourceCommand,\n PutAccountSettingCommand,\n PutImageCommand,\n PutImageScanningConfigurationCommand,\n PutImageTagMutabilityCommand,\n PutLifecyclePolicyCommand,\n PutRegistryPolicyCommand,\n PutRegistryScanningConfigurationCommand,\n PutReplicationConfigurationCommand,\n SetRepositoryPolicyCommand,\n StartImageScanCommand,\n StartLifecyclePolicyPreviewCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdatePullThroughCacheRuleCommand,\n UpdateRepositoryCreationTemplateCommand,\n UploadLayerPartCommand,\n ValidatePullThroughCacheRuleCommand\n};\nvar ECR = class extends ECRClient {\n static {\n __name(this, \"ECR\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, ECR);\n\n// src/pagination/DescribeImageScanFindingsPaginator.ts\n\nvar paginateDescribeImageScanFindings = (0, import_core.createPaginator)(ECRClient, DescribeImageScanFindingsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeImagesPaginator.ts\n\nvar paginateDescribeImages = (0, import_core.createPaginator)(ECRClient, DescribeImagesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribePullThroughCacheRulesPaginator.ts\n\nvar paginateDescribePullThroughCacheRules = (0, import_core.createPaginator)(ECRClient, DescribePullThroughCacheRulesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeRepositoriesPaginator.ts\n\nvar paginateDescribeRepositories = (0, import_core.createPaginator)(ECRClient, DescribeRepositoriesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/DescribeRepositoryCreationTemplatesPaginator.ts\n\nvar paginateDescribeRepositoryCreationTemplates = (0, import_core.createPaginator)(ECRClient, DescribeRepositoryCreationTemplatesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/GetLifecyclePolicyPreviewPaginator.ts\n\nvar paginateGetLifecyclePolicyPreview = (0, import_core.createPaginator)(ECRClient, GetLifecyclePolicyPreviewCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListImagesPaginator.ts\n\nvar paginateListImages = (0, import_core.createPaginator)(ECRClient, ListImagesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/waiters/waitForImageScanComplete.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeImageScanFindingsCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.imageScanStatus.status;\n }, \"returnComparator\");\n if (returnComparator() === \"COMPLETE\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.imageScanStatus.status;\n }, \"returnComparator\");\n if (returnComparator() === \"FAILED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForImageScanComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForImageScanComplete\");\nvar waitUntilImageScanComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilImageScanComplete\");\n\n// src/waiters/waitForLifecyclePolicyPreviewComplete.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetLifecyclePolicyPreviewCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.status;\n }, \"returnComparator\");\n if (returnComparator() === \"COMPLETE\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.status;\n }, \"returnComparator\");\n if (returnComparator() === \"FAILED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLifecyclePolicyPreviewComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForLifecyclePolicyPreviewComplete\");\nvar waitUntilLifecyclePolicyPreviewComplete = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLifecyclePolicyPreviewComplete\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ECRServiceException,\n __Client,\n ECRClient,\n ECR,\n $Command,\n BatchCheckLayerAvailabilityCommand,\n BatchDeleteImageCommand,\n BatchGetImageCommand,\n BatchGetRepositoryScanningConfigurationCommand,\n CompleteLayerUploadCommand,\n CreatePullThroughCacheRuleCommand,\n CreateRepositoryCommand,\n CreateRepositoryCreationTemplateCommand,\n DeleteLifecyclePolicyCommand,\n DeletePullThroughCacheRuleCommand,\n DeleteRegistryPolicyCommand,\n DeleteRepositoryCommand,\n DeleteRepositoryCreationTemplateCommand,\n DeleteRepositoryPolicyCommand,\n DescribeImageReplicationStatusCommand,\n DescribeImageScanFindingsCommand,\n DescribeImagesCommand,\n DescribePullThroughCacheRulesCommand,\n DescribeRegistryCommand,\n DescribeRepositoriesCommand,\n DescribeRepositoryCreationTemplatesCommand,\n GetAccountSettingCommand,\n GetAuthorizationTokenCommand,\n GetDownloadUrlForLayerCommand,\n GetLifecyclePolicyCommand,\n GetLifecyclePolicyPreviewCommand,\n GetRegistryPolicyCommand,\n GetRegistryScanningConfigurationCommand,\n GetRepositoryPolicyCommand,\n InitiateLayerUploadCommand,\n ListImagesCommand,\n ListTagsForResourceCommand,\n PutAccountSettingCommand,\n PutImageCommand,\n PutImageScanningConfigurationCommand,\n PutImageTagMutabilityCommand,\n PutLifecyclePolicyCommand,\n PutRegistryPolicyCommand,\n PutRegistryScanningConfigurationCommand,\n PutReplicationConfigurationCommand,\n SetRepositoryPolicyCommand,\n StartImageScanCommand,\n StartLifecyclePolicyPreviewCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdatePullThroughCacheRuleCommand,\n UpdateRepositoryCreationTemplateCommand,\n UploadLayerPartCommand,\n ValidatePullThroughCacheRuleCommand,\n paginateDescribeImageScanFindings,\n paginateDescribeImages,\n paginateDescribePullThroughCacheRules,\n paginateDescribeRepositories,\n paginateDescribeRepositoryCreationTemplates,\n paginateGetLifecyclePolicyPreview,\n paginateListImages,\n waitForImageScanComplete,\n waitUntilImageScanComplete,\n waitForLifecyclePolicyPreviewComplete,\n waitUntilLifecyclePolicyPreviewComplete,\n LayerFailureCode,\n LayerAvailability,\n InvalidParameterException,\n RepositoryNotFoundException,\n ServerException,\n ImageFailureCode,\n LimitExceededException,\n UnableToGetUpstreamImageException,\n ScanningConfigurationFailureCode,\n ScanningRepositoryFilterType,\n ScanFrequency,\n ValidationException,\n EmptyUploadException,\n InvalidLayerException,\n KmsException,\n LayerAlreadyExistsException,\n LayerPartTooSmallException,\n UploadNotFoundException,\n UpstreamRegistry,\n PullThroughCacheRuleAlreadyExistsException,\n SecretNotFoundException,\n UnableToAccessSecretException,\n UnableToDecryptSecretValueException,\n UnsupportedUpstreamRegistryException,\n EncryptionType,\n ImageTagMutability,\n ImageTagMutabilityExclusionFilterType,\n InvalidTagParameterException,\n RepositoryAlreadyExistsException,\n TooManyTagsException,\n RCTAppliedFor,\n TemplateAlreadyExistsException,\n LifecyclePolicyNotFoundException,\n PullThroughCacheRuleNotFoundException,\n RegistryPolicyNotFoundException,\n RepositoryNotEmptyException,\n TemplateNotFoundException,\n RepositoryPolicyNotFoundException,\n ReplicationStatus,\n ImageNotFoundException,\n TagStatus,\n FindingSeverity,\n ScanStatus,\n ScanNotFoundException,\n RepositoryFilterType,\n LayerInaccessibleException,\n LayersNotFoundException,\n UnableToGetUpstreamLayerException,\n ImageActionType,\n LifecyclePolicyPreviewStatus,\n LifecyclePolicyPreviewNotFoundException,\n ScanType,\n ImageAlreadyExistsException,\n ImageDigestDoesNotMatchException,\n ImageTagAlreadyExistsException,\n ReferencedImagesNotFoundException,\n UnsupportedImageTypeException,\n LifecyclePolicyPreviewInProgressException,\n InvalidLayerPartException\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2015-09-21\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultECRHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"ECR\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultECSHttpAuthSchemeProvider = exports.defaultECSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultECSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultECSHttpAuthSchemeParametersProvider = defaultECSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ecs\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultECSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultECSHttpAuthSchemeProvider = defaultECSHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://ecs.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n AgentUpdateStatus: () => AgentUpdateStatus,\n ApplicationProtocol: () => ApplicationProtocol,\n AssignPublicIp: () => AssignPublicIp,\n AttributeLimitExceededException: () => AttributeLimitExceededException,\n AvailabilityZoneRebalancing: () => AvailabilityZoneRebalancing,\n BlockedException: () => BlockedException,\n CPUArchitecture: () => CPUArchitecture,\n CapacityProviderField: () => CapacityProviderField,\n CapacityProviderStatus: () => CapacityProviderStatus,\n CapacityProviderUpdateStatus: () => CapacityProviderUpdateStatus,\n ClientException: () => ClientException,\n ClusterContainsContainerInstancesException: () => ClusterContainsContainerInstancesException,\n ClusterContainsServicesException: () => ClusterContainsServicesException,\n ClusterContainsTasksException: () => ClusterContainsTasksException,\n ClusterField: () => ClusterField,\n ClusterNotFoundException: () => ClusterNotFoundException,\n ClusterSettingName: () => ClusterSettingName,\n Compatibility: () => Compatibility,\n ConflictException: () => ConflictException,\n Connectivity: () => Connectivity,\n ContainerCondition: () => ContainerCondition,\n ContainerInstanceField: () => ContainerInstanceField,\n ContainerInstanceStatus: () => ContainerInstanceStatus,\n CreateCapacityProviderCommand: () => CreateCapacityProviderCommand,\n CreateClusterCommand: () => CreateClusterCommand,\n CreateServiceCommand: () => CreateServiceCommand,\n CreateTaskSetCommand: () => CreateTaskSetCommand,\n DeleteAccountSettingCommand: () => DeleteAccountSettingCommand,\n DeleteAttributesCommand: () => DeleteAttributesCommand,\n DeleteCapacityProviderCommand: () => DeleteCapacityProviderCommand,\n DeleteClusterCommand: () => DeleteClusterCommand,\n DeleteServiceCommand: () => DeleteServiceCommand,\n DeleteTaskDefinitionsCommand: () => DeleteTaskDefinitionsCommand,\n DeleteTaskSetCommand: () => DeleteTaskSetCommand,\n DeploymentControllerType: () => DeploymentControllerType,\n DeploymentRolloutState: () => DeploymentRolloutState,\n DeregisterContainerInstanceCommand: () => DeregisterContainerInstanceCommand,\n DeregisterTaskDefinitionCommand: () => DeregisterTaskDefinitionCommand,\n DescribeCapacityProvidersCommand: () => DescribeCapacityProvidersCommand,\n DescribeClustersCommand: () => DescribeClustersCommand,\n DescribeContainerInstancesCommand: () => DescribeContainerInstancesCommand,\n DescribeServiceDeploymentsCommand: () => DescribeServiceDeploymentsCommand,\n DescribeServiceRevisionsCommand: () => DescribeServiceRevisionsCommand,\n DescribeServicesCommand: () => DescribeServicesCommand,\n DescribeTaskDefinitionCommand: () => DescribeTaskDefinitionCommand,\n DescribeTaskSetsCommand: () => DescribeTaskSetsCommand,\n DescribeTasksCommand: () => DescribeTasksCommand,\n DesiredStatus: () => DesiredStatus,\n DeviceCgroupPermission: () => DeviceCgroupPermission,\n DiscoverPollEndpointCommand: () => DiscoverPollEndpointCommand,\n EBSResourceType: () => EBSResourceType,\n ECS: () => ECS,\n ECSClient: () => ECSClient,\n ECSServiceException: () => ECSServiceException,\n EFSAuthorizationConfigIAM: () => EFSAuthorizationConfigIAM,\n EFSTransitEncryption: () => EFSTransitEncryption,\n EnvironmentFileType: () => EnvironmentFileType,\n ExecuteCommandCommand: () => ExecuteCommandCommand,\n ExecuteCommandLogging: () => ExecuteCommandLogging,\n ExecuteCommandResponseFilterSensitiveLog: () => ExecuteCommandResponseFilterSensitiveLog,\n FirelensConfigurationType: () => FirelensConfigurationType,\n GetTaskProtectionCommand: () => GetTaskProtectionCommand,\n HealthStatus: () => HealthStatus,\n InstanceHealthCheckState: () => InstanceHealthCheckState,\n InstanceHealthCheckType: () => InstanceHealthCheckType,\n InvalidParameterException: () => InvalidParameterException,\n IpcMode: () => IpcMode,\n LaunchType: () => LaunchType,\n LimitExceededException: () => LimitExceededException,\n ListAccountSettingsCommand: () => ListAccountSettingsCommand,\n ListAttributesCommand: () => ListAttributesCommand,\n ListClustersCommand: () => ListClustersCommand,\n ListContainerInstancesCommand: () => ListContainerInstancesCommand,\n ListServiceDeploymentsCommand: () => ListServiceDeploymentsCommand,\n ListServicesByNamespaceCommand: () => ListServicesByNamespaceCommand,\n ListServicesCommand: () => ListServicesCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTaskDefinitionFamiliesCommand: () => ListTaskDefinitionFamiliesCommand,\n ListTaskDefinitionsCommand: () => ListTaskDefinitionsCommand,\n ListTasksCommand: () => ListTasksCommand,\n LogDriver: () => LogDriver,\n ManagedAgentName: () => ManagedAgentName,\n ManagedDraining: () => ManagedDraining,\n ManagedScalingStatus: () => ManagedScalingStatus,\n ManagedTerminationProtection: () => ManagedTerminationProtection,\n MissingVersionException: () => MissingVersionException,\n NamespaceNotFoundException: () => NamespaceNotFoundException,\n NetworkMode: () => NetworkMode,\n NoUpdateAvailableException: () => NoUpdateAvailableException,\n OSFamily: () => OSFamily,\n PidMode: () => PidMode,\n PlacementConstraintType: () => PlacementConstraintType,\n PlacementStrategyType: () => PlacementStrategyType,\n PlatformDeviceType: () => PlatformDeviceType,\n PlatformTaskDefinitionIncompatibilityException: () => PlatformTaskDefinitionIncompatibilityException,\n PlatformUnknownException: () => PlatformUnknownException,\n PropagateTags: () => PropagateTags,\n ProxyConfigurationType: () => ProxyConfigurationType,\n PutAccountSettingCommand: () => PutAccountSettingCommand,\n PutAccountSettingDefaultCommand: () => PutAccountSettingDefaultCommand,\n PutAttributesCommand: () => PutAttributesCommand,\n PutClusterCapacityProvidersCommand: () => PutClusterCapacityProvidersCommand,\n RegisterContainerInstanceCommand: () => RegisterContainerInstanceCommand,\n RegisterTaskDefinitionCommand: () => RegisterTaskDefinitionCommand,\n ResourceInUseException: () => ResourceInUseException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ResourceType: () => ResourceType,\n RunTaskCommand: () => RunTaskCommand,\n ScaleUnit: () => ScaleUnit,\n SchedulingStrategy: () => SchedulingStrategy,\n Scope: () => Scope,\n ServerException: () => ServerException,\n ServiceDeploymentNotFoundException: () => ServiceDeploymentNotFoundException,\n ServiceDeploymentRollbackMonitorsStatus: () => ServiceDeploymentRollbackMonitorsStatus,\n ServiceDeploymentStatus: () => ServiceDeploymentStatus,\n ServiceField: () => ServiceField,\n ServiceNotActiveException: () => ServiceNotActiveException,\n ServiceNotFoundException: () => ServiceNotFoundException,\n SessionFilterSensitiveLog: () => SessionFilterSensitiveLog,\n SettingName: () => SettingName,\n SettingType: () => SettingType,\n SortOrder: () => SortOrder,\n StabilityStatus: () => StabilityStatus,\n StartTaskCommand: () => StartTaskCommand,\n StopServiceDeploymentCommand: () => StopServiceDeploymentCommand,\n StopServiceDeploymentStopType: () => StopServiceDeploymentStopType,\n StopTaskCommand: () => StopTaskCommand,\n SubmitAttachmentStateChangesCommand: () => SubmitAttachmentStateChangesCommand,\n SubmitContainerStateChangeCommand: () => SubmitContainerStateChangeCommand,\n SubmitTaskStateChangeCommand: () => SubmitTaskStateChangeCommand,\n TagResourceCommand: () => TagResourceCommand,\n TargetNotConnectedException: () => TargetNotConnectedException,\n TargetNotFoundException: () => TargetNotFoundException,\n TargetType: () => TargetType,\n TaskDefinitionFamilyStatus: () => TaskDefinitionFamilyStatus,\n TaskDefinitionField: () => TaskDefinitionField,\n TaskDefinitionPlacementConstraintType: () => TaskDefinitionPlacementConstraintType,\n TaskDefinitionStatus: () => TaskDefinitionStatus,\n TaskField: () => TaskField,\n TaskFilesystemType: () => TaskFilesystemType,\n TaskSetField: () => TaskSetField,\n TaskSetNotFoundException: () => TaskSetNotFoundException,\n TaskStopCode: () => TaskStopCode,\n TransportProtocol: () => TransportProtocol,\n UlimitName: () => UlimitName,\n UnsupportedFeatureException: () => UnsupportedFeatureException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateCapacityProviderCommand: () => UpdateCapacityProviderCommand,\n UpdateClusterCommand: () => UpdateClusterCommand,\n UpdateClusterSettingsCommand: () => UpdateClusterSettingsCommand,\n UpdateContainerAgentCommand: () => UpdateContainerAgentCommand,\n UpdateContainerInstancesStateCommand: () => UpdateContainerInstancesStateCommand,\n UpdateInProgressException: () => UpdateInProgressException,\n UpdateServiceCommand: () => UpdateServiceCommand,\n UpdateServicePrimaryTaskSetCommand: () => UpdateServicePrimaryTaskSetCommand,\n UpdateTaskProtectionCommand: () => UpdateTaskProtectionCommand,\n UpdateTaskSetCommand: () => UpdateTaskSetCommand,\n VersionConsistency: () => VersionConsistency,\n __Client: () => import_smithy_client.Client,\n paginateListAccountSettings: () => paginateListAccountSettings,\n paginateListAttributes: () => paginateListAttributes,\n paginateListClusters: () => paginateListClusters,\n paginateListContainerInstances: () => paginateListContainerInstances,\n paginateListServices: () => paginateListServices,\n paginateListServicesByNamespace: () => paginateListServicesByNamespace,\n paginateListTaskDefinitionFamilies: () => paginateListTaskDefinitionFamilies,\n paginateListTaskDefinitions: () => paginateListTaskDefinitions,\n paginateListTasks: () => paginateListTasks,\n waitForServicesInactive: () => waitForServicesInactive,\n waitForServicesStable: () => waitForServicesStable,\n waitForTasksRunning: () => waitForTasksRunning,\n waitForTasksStopped: () => waitForTasksStopped,\n waitUntilServicesInactive: () => waitUntilServicesInactive,\n waitUntilServicesStable: () => waitUntilServicesStable,\n waitUntilTasksRunning: () => waitUntilTasksRunning,\n waitUntilTasksStopped: () => waitUntilTasksStopped\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/ECSClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ecs\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/ECSClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/ECSClient.ts\nvar ECSClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"ECSClient\");\n }\n /**\n * The resolved configuration of ECSClient class. This is resolved and normalized from the {@link ECSClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultECSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/ECS.ts\n\n\n// src/commands/CreateCapacityProviderCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/ECSServiceException.ts\n\nvar ECSServiceException = class _ECSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"ECSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _ECSServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AccessDeniedException = class _AccessDeniedException extends ECSServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n }\n};\nvar AgentUpdateStatus = {\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n STAGED: \"STAGED\",\n STAGING: \"STAGING\",\n UPDATED: \"UPDATED\",\n UPDATING: \"UPDATING\"\n};\nvar ClientException = class _ClientException extends ECSServiceException {\n static {\n __name(this, \"ClientException\");\n }\n name = \"ClientException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClientException.prototype);\n }\n};\nvar ManagedDraining = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ManagedScalingStatus = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar ManagedTerminationProtection = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar CapacityProviderStatus = {\n ACTIVE: \"ACTIVE\",\n INACTIVE: \"INACTIVE\"\n};\nvar CapacityProviderUpdateStatus = {\n DELETE_COMPLETE: \"DELETE_COMPLETE\",\n DELETE_FAILED: \"DELETE_FAILED\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n UPDATE_COMPLETE: \"UPDATE_COMPLETE\",\n UPDATE_FAILED: \"UPDATE_FAILED\",\n UPDATE_IN_PROGRESS: \"UPDATE_IN_PROGRESS\"\n};\nvar InvalidParameterException = class _InvalidParameterException extends ECSServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends ECSServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar ServerException = class _ServerException extends ECSServiceException {\n static {\n __name(this, \"ServerException\");\n }\n name = \"ServerException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServerException.prototype);\n }\n};\nvar UpdateInProgressException = class _UpdateInProgressException extends ECSServiceException {\n static {\n __name(this, \"UpdateInProgressException\");\n }\n name = \"UpdateInProgressException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UpdateInProgressException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UpdateInProgressException.prototype);\n }\n};\nvar ExecuteCommandLogging = {\n DEFAULT: \"DEFAULT\",\n NONE: \"NONE\",\n OVERRIDE: \"OVERRIDE\"\n};\nvar ClusterSettingName = {\n CONTAINER_INSIGHTS: \"containerInsights\"\n};\nvar NamespaceNotFoundException = class _NamespaceNotFoundException extends ECSServiceException {\n static {\n __name(this, \"NamespaceNotFoundException\");\n }\n name = \"NamespaceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NamespaceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NamespaceNotFoundException.prototype);\n }\n};\nvar ClusterNotFoundException = class _ClusterNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ClusterNotFoundException\");\n }\n name = \"ClusterNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterNotFoundException.prototype);\n }\n};\nvar AvailabilityZoneRebalancing = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar DeploymentControllerType = {\n CODE_DEPLOY: \"CODE_DEPLOY\",\n ECS: \"ECS\",\n EXTERNAL: \"EXTERNAL\"\n};\nvar LaunchType = {\n EC2: \"EC2\",\n EXTERNAL: \"EXTERNAL\",\n FARGATE: \"FARGATE\"\n};\nvar AssignPublicIp = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar PlacementConstraintType = {\n DISTINCT_INSTANCE: \"distinctInstance\",\n MEMBER_OF: \"memberOf\"\n};\nvar PlacementStrategyType = {\n BINPACK: \"binpack\",\n RANDOM: \"random\",\n SPREAD: \"spread\"\n};\nvar PropagateTags = {\n NONE: \"NONE\",\n SERVICE: \"SERVICE\",\n TASK_DEFINITION: \"TASK_DEFINITION\"\n};\nvar SchedulingStrategy = {\n DAEMON: \"DAEMON\",\n REPLICA: \"REPLICA\"\n};\nvar LogDriver = {\n AWSFIRELENS: \"awsfirelens\",\n AWSLOGS: \"awslogs\",\n FLUENTD: \"fluentd\",\n GELF: \"gelf\",\n JOURNALD: \"journald\",\n JSON_FILE: \"json-file\",\n SPLUNK: \"splunk\",\n SYSLOG: \"syslog\"\n};\nvar TaskFilesystemType = {\n EXT3: \"ext3\",\n EXT4: \"ext4\",\n NTFS: \"ntfs\",\n XFS: \"xfs\"\n};\nvar EBSResourceType = {\n VOLUME: \"volume\"\n};\nvar DeploymentRolloutState = {\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar ScaleUnit = {\n PERCENT: \"PERCENT\"\n};\nvar StabilityStatus = {\n STABILIZING: \"STABILIZING\",\n STEADY_STATE: \"STEADY_STATE\"\n};\nvar PlatformTaskDefinitionIncompatibilityException = class _PlatformTaskDefinitionIncompatibilityException extends ECSServiceException {\n static {\n __name(this, \"PlatformTaskDefinitionIncompatibilityException\");\n }\n name = \"PlatformTaskDefinitionIncompatibilityException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PlatformTaskDefinitionIncompatibilityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PlatformTaskDefinitionIncompatibilityException.prototype);\n }\n};\nvar PlatformUnknownException = class _PlatformUnknownException extends ECSServiceException {\n static {\n __name(this, \"PlatformUnknownException\");\n }\n name = \"PlatformUnknownException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PlatformUnknownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PlatformUnknownException.prototype);\n }\n};\nvar UnsupportedFeatureException = class _UnsupportedFeatureException extends ECSServiceException {\n static {\n __name(this, \"UnsupportedFeatureException\");\n }\n name = \"UnsupportedFeatureException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedFeatureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedFeatureException.prototype);\n }\n};\nvar ServiceNotActiveException = class _ServiceNotActiveException extends ECSServiceException {\n static {\n __name(this, \"ServiceNotActiveException\");\n }\n name = \"ServiceNotActiveException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceNotActiveException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceNotActiveException.prototype);\n }\n};\nvar ServiceNotFoundException = class _ServiceNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ServiceNotFoundException\");\n }\n name = \"ServiceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceNotFoundException.prototype);\n }\n};\nvar SettingName = {\n AWSVPC_TRUNKING: \"awsvpcTrunking\",\n CONTAINER_INSIGHTS: \"containerInsights\",\n CONTAINER_INSTANCE_LONG_ARN_FORMAT: \"containerInstanceLongArnFormat\",\n DEFAULT_LOG_DRIVER_MODE: \"defaultLogDriverMode\",\n FARGATE_FIPS_MODE: \"fargateFIPSMode\",\n FARGATE_TASK_RETIREMENT_WAIT_PERIOD: \"fargateTaskRetirementWaitPeriod\",\n GUARD_DUTY_ACTIVATE: \"guardDutyActivate\",\n SERVICE_LONG_ARN_FORMAT: \"serviceLongArnFormat\",\n TAG_RESOURCE_AUTHORIZATION: \"tagResourceAuthorization\",\n TASK_LONG_ARN_FORMAT: \"taskLongArnFormat\"\n};\nvar SettingType = {\n AWS_MANAGED: \"aws_managed\",\n USER: \"user\"\n};\nvar TargetType = {\n CONTAINER_INSTANCE: \"container-instance\"\n};\nvar TargetNotFoundException = class _TargetNotFoundException extends ECSServiceException {\n static {\n __name(this, \"TargetNotFoundException\");\n }\n name = \"TargetNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetNotFoundException.prototype);\n }\n};\nvar ClusterContainsContainerInstancesException = class _ClusterContainsContainerInstancesException extends ECSServiceException {\n static {\n __name(this, \"ClusterContainsContainerInstancesException\");\n }\n name = \"ClusterContainsContainerInstancesException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterContainsContainerInstancesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterContainsContainerInstancesException.prototype);\n }\n};\nvar ClusterContainsServicesException = class _ClusterContainsServicesException extends ECSServiceException {\n static {\n __name(this, \"ClusterContainsServicesException\");\n }\n name = \"ClusterContainsServicesException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterContainsServicesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterContainsServicesException.prototype);\n }\n};\nvar ClusterContainsTasksException = class _ClusterContainsTasksException extends ECSServiceException {\n static {\n __name(this, \"ClusterContainsTasksException\");\n }\n name = \"ClusterContainsTasksException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ClusterContainsTasksException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ClusterContainsTasksException.prototype);\n }\n};\nvar Compatibility = {\n EC2: \"EC2\",\n EXTERNAL: \"EXTERNAL\",\n FARGATE: \"FARGATE\"\n};\nvar ContainerCondition = {\n COMPLETE: \"COMPLETE\",\n HEALTHY: \"HEALTHY\",\n START: \"START\",\n SUCCESS: \"SUCCESS\"\n};\nvar EnvironmentFileType = {\n S3: \"s3\"\n};\nvar FirelensConfigurationType = {\n FLUENTBIT: \"fluentbit\",\n FLUENTD: \"fluentd\"\n};\nvar DeviceCgroupPermission = {\n MKNOD: \"mknod\",\n READ: \"read\",\n WRITE: \"write\"\n};\nvar ApplicationProtocol = {\n GRPC: \"grpc\",\n HTTP: \"http\",\n HTTP2: \"http2\"\n};\nvar TransportProtocol = {\n TCP: \"tcp\",\n UDP: \"udp\"\n};\nvar ResourceType = {\n GPU: \"GPU\",\n INFERENCE_ACCELERATOR: \"InferenceAccelerator\"\n};\nvar UlimitName = {\n CORE: \"core\",\n CPU: \"cpu\",\n DATA: \"data\",\n FSIZE: \"fsize\",\n LOCKS: \"locks\",\n MEMLOCK: \"memlock\",\n MSGQUEUE: \"msgqueue\",\n NICE: \"nice\",\n NOFILE: \"nofile\",\n NPROC: \"nproc\",\n RSS: \"rss\",\n RTPRIO: \"rtprio\",\n RTTIME: \"rttime\",\n SIGPENDING: \"sigpending\",\n STACK: \"stack\"\n};\nvar VersionConsistency = {\n DISABLED: \"disabled\",\n ENABLED: \"enabled\"\n};\nvar IpcMode = {\n HOST: \"host\",\n NONE: \"none\",\n TASK: \"task\"\n};\nvar NetworkMode = {\n AWSVPC: \"awsvpc\",\n BRIDGE: \"bridge\",\n HOST: \"host\",\n NONE: \"none\"\n};\nvar PidMode = {\n HOST: \"host\",\n TASK: \"task\"\n};\nvar TaskDefinitionPlacementConstraintType = {\n MEMBER_OF: \"memberOf\"\n};\nvar ProxyConfigurationType = {\n APPMESH: \"APPMESH\"\n};\nvar CPUArchitecture = {\n ARM64: \"ARM64\",\n X86_64: \"X86_64\"\n};\nvar OSFamily = {\n LINUX: \"LINUX\",\n WINDOWS_SERVER_2004_CORE: \"WINDOWS_SERVER_2004_CORE\",\n WINDOWS_SERVER_2016_FULL: \"WINDOWS_SERVER_2016_FULL\",\n WINDOWS_SERVER_2019_CORE: \"WINDOWS_SERVER_2019_CORE\",\n WINDOWS_SERVER_2019_FULL: \"WINDOWS_SERVER_2019_FULL\",\n WINDOWS_SERVER_2022_CORE: \"WINDOWS_SERVER_2022_CORE\",\n WINDOWS_SERVER_2022_FULL: \"WINDOWS_SERVER_2022_FULL\",\n WINDOWS_SERVER_20H2_CORE: \"WINDOWS_SERVER_20H2_CORE\"\n};\nvar TaskDefinitionStatus = {\n ACTIVE: \"ACTIVE\",\n DELETE_IN_PROGRESS: \"DELETE_IN_PROGRESS\",\n INACTIVE: \"INACTIVE\"\n};\nvar Scope = {\n SHARED: \"shared\",\n TASK: \"task\"\n};\nvar EFSAuthorizationConfigIAM = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar EFSTransitEncryption = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar TaskSetNotFoundException = class _TaskSetNotFoundException extends ECSServiceException {\n static {\n __name(this, \"TaskSetNotFoundException\");\n }\n name = \"TaskSetNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TaskSetNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TaskSetNotFoundException.prototype);\n }\n};\nvar InstanceHealthCheckState = {\n IMPAIRED: \"IMPAIRED\",\n INITIALIZING: \"INITIALIZING\",\n INSUFFICIENT_DATA: \"INSUFFICIENT_DATA\",\n OK: \"OK\"\n};\nvar InstanceHealthCheckType = {\n CONTAINER_RUNTIME: \"CONTAINER_RUNTIME\"\n};\nvar CapacityProviderField = {\n TAGS: \"TAGS\"\n};\nvar ClusterField = {\n ATTACHMENTS: \"ATTACHMENTS\",\n CONFIGURATIONS: \"CONFIGURATIONS\",\n SETTINGS: \"SETTINGS\",\n STATISTICS: \"STATISTICS\",\n TAGS: \"TAGS\"\n};\nvar ContainerInstanceField = {\n CONTAINER_INSTANCE_HEALTH: \"CONTAINER_INSTANCE_HEALTH\",\n TAGS: \"TAGS\"\n};\nvar ServiceDeploymentRollbackMonitorsStatus = {\n DISABLED: \"DISABLED\",\n MONITORING: \"MONITORING\",\n MONITORING_COMPLETE: \"MONITORING_COMPLETE\",\n TRIGGERED: \"TRIGGERED\"\n};\nvar ServiceDeploymentStatus = {\n IN_PROGRESS: \"IN_PROGRESS\",\n PENDING: \"PENDING\",\n ROLLBACK_FAILED: \"ROLLBACK_FAILED\",\n ROLLBACK_IN_PROGRESS: \"ROLLBACK_IN_PROGRESS\",\n ROLLBACK_REQUESTED: \"ROLLBACK_REQUESTED\",\n ROLLBACK_SUCCESSFUL: \"ROLLBACK_SUCCESSFUL\",\n STOPPED: \"STOPPED\",\n STOP_REQUESTED: \"STOP_REQUESTED\",\n SUCCESSFUL: \"SUCCESSFUL\"\n};\nvar ServiceField = {\n TAGS: \"TAGS\"\n};\nvar TaskDefinitionField = {\n TAGS: \"TAGS\"\n};\nvar TaskField = {\n TAGS: \"TAGS\"\n};\nvar Connectivity = {\n CONNECTED: \"CONNECTED\",\n DISCONNECTED: \"DISCONNECTED\"\n};\nvar HealthStatus = {\n HEALTHY: \"HEALTHY\",\n UNHEALTHY: \"UNHEALTHY\",\n UNKNOWN: \"UNKNOWN\"\n};\nvar ManagedAgentName = {\n ExecuteCommandAgent: \"ExecuteCommandAgent\"\n};\nvar TaskStopCode = {\n ESSENTIAL_CONTAINER_EXITED: \"EssentialContainerExited\",\n SERVICE_SCHEDULER_INITIATED: \"ServiceSchedulerInitiated\",\n SPOT_INTERRUPTION: \"SpotInterruption\",\n TASK_FAILED_TO_START: \"TaskFailedToStart\",\n TERMINATION_NOTICE: \"TerminationNotice\",\n USER_INITIATED: \"UserInitiated\"\n};\nvar TaskSetField = {\n TAGS: \"TAGS\"\n};\nvar TargetNotConnectedException = class _TargetNotConnectedException extends ECSServiceException {\n static {\n __name(this, \"TargetNotConnectedException\");\n }\n name = \"TargetNotConnectedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetNotConnectedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetNotConnectedException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar ContainerInstanceStatus = {\n ACTIVE: \"ACTIVE\",\n DEREGISTERING: \"DEREGISTERING\",\n DRAINING: \"DRAINING\",\n REGISTERING: \"REGISTERING\",\n REGISTRATION_FAILED: \"REGISTRATION_FAILED\"\n};\nvar TaskDefinitionFamilyStatus = {\n ACTIVE: \"ACTIVE\",\n ALL: \"ALL\",\n INACTIVE: \"INACTIVE\"\n};\nvar SortOrder = {\n ASC: \"ASC\",\n DESC: \"DESC\"\n};\nvar DesiredStatus = {\n PENDING: \"PENDING\",\n RUNNING: \"RUNNING\",\n STOPPED: \"STOPPED\"\n};\nvar AttributeLimitExceededException = class _AttributeLimitExceededException extends ECSServiceException {\n static {\n __name(this, \"AttributeLimitExceededException\");\n }\n name = \"AttributeLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AttributeLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AttributeLimitExceededException.prototype);\n }\n};\nvar ResourceInUseException = class _ResourceInUseException extends ECSServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n }\n};\nvar PlatformDeviceType = {\n GPU: \"GPU\"\n};\nvar BlockedException = class _BlockedException extends ECSServiceException {\n static {\n __name(this, \"BlockedException\");\n }\n name = \"BlockedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BlockedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BlockedException.prototype);\n }\n};\nvar ConflictException = class _ConflictException extends ECSServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n *

The existing task ARNs which are already associated with the\n * \t\t\t\tclientToken.

\n * @public\n */\n resourceIds;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n this.resourceIds = opts.resourceIds;\n }\n};\nvar ServiceDeploymentNotFoundException = class _ServiceDeploymentNotFoundException extends ECSServiceException {\n static {\n __name(this, \"ServiceDeploymentNotFoundException\");\n }\n name = \"ServiceDeploymentNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceDeploymentNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceDeploymentNotFoundException.prototype);\n }\n};\nvar StopServiceDeploymentStopType = {\n ABORT: \"ABORT\",\n ROLLBACK: \"ROLLBACK\"\n};\nvar SessionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.tokenValue && { tokenValue: import_smithy_client.SENSITIVE_STRING }\n}), \"SessionFilterSensitiveLog\");\nvar ExecuteCommandResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.session && { session: SessionFilterSensitiveLog(obj.session) }\n}), \"ExecuteCommandResponseFilterSensitiveLog\");\n\n// src/models/models_1.ts\nvar MissingVersionException = class _MissingVersionException extends ECSServiceException {\n static {\n __name(this, \"MissingVersionException\");\n }\n name = \"MissingVersionException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MissingVersionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MissingVersionException.prototype);\n }\n};\nvar NoUpdateAvailableException = class _NoUpdateAvailableException extends ECSServiceException {\n static {\n __name(this, \"NoUpdateAvailableException\");\n }\n name = \"NoUpdateAvailableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoUpdateAvailableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoUpdateAvailableException.prototype);\n }\n};\n\n// src/protocols/Aws_json1_1.ts\nvar se_CreateCapacityProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateCapacityProvider\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCapacityProviderCommand\");\nvar se_CreateClusterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateCluster\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateClusterCommand\");\nvar se_CreateServiceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateService\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateServiceCommand\");\nvar se_CreateTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateTaskSet\");\n let body;\n body = JSON.stringify(se_CreateTaskSetRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTaskSetCommand\");\nvar se_DeleteAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountSettingCommand\");\nvar se_DeleteAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAttributes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAttributesCommand\");\nvar se_DeleteCapacityProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteCapacityProvider\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCapacityProviderCommand\");\nvar se_DeleteClusterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteCluster\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteClusterCommand\");\nvar se_DeleteServiceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteService\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServiceCommand\");\nvar se_DeleteTaskDefinitionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteTaskDefinitions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTaskDefinitionsCommand\");\nvar se_DeleteTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteTaskSet\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTaskSetCommand\");\nvar se_DeregisterContainerInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterContainerInstance\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterContainerInstanceCommand\");\nvar se_DeregisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterTaskDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTaskDefinitionCommand\");\nvar se_DescribeCapacityProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeCapacityProviders\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityProvidersCommand\");\nvar se_DescribeClustersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeClusters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeClustersCommand\");\nvar se_DescribeContainerInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeContainerInstances\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeContainerInstancesCommand\");\nvar se_DescribeServiceDeploymentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeServiceDeployments\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServiceDeploymentsCommand\");\nvar se_DescribeServiceRevisionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeServiceRevisions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServiceRevisionsCommand\");\nvar se_DescribeServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeServices\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeServicesCommand\");\nvar se_DescribeTaskDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTaskDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTaskDefinitionCommand\");\nvar se_DescribeTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTasksCommand\");\nvar se_DescribeTaskSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeTaskSets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTaskSetsCommand\");\nvar se_DiscoverPollEndpointCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DiscoverPollEndpoint\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DiscoverPollEndpointCommand\");\nvar se_ExecuteCommandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ExecuteCommand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ExecuteCommandCommand\");\nvar se_GetTaskProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetTaskProtection\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTaskProtectionCommand\");\nvar se_ListAccountSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAccountSettings\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAccountSettingsCommand\");\nvar se_ListAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAttributes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttributesCommand\");\nvar se_ListClustersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListClusters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListClustersCommand\");\nvar se_ListContainerInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListContainerInstances\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListContainerInstancesCommand\");\nvar se_ListServiceDeploymentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListServiceDeployments\");\n let body;\n body = JSON.stringify(se_ListServiceDeploymentsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServiceDeploymentsCommand\");\nvar se_ListServicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListServices\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServicesCommand\");\nvar se_ListServicesByNamespaceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListServicesByNamespace\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServicesByNamespaceCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTaskDefinitionFamiliesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTaskDefinitionFamilies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTaskDefinitionFamiliesCommand\");\nvar se_ListTaskDefinitionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTaskDefinitions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTaskDefinitionsCommand\");\nvar se_ListTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTasksCommand\");\nvar se_PutAccountSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountSettingCommand\");\nvar se_PutAccountSettingDefaultCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAccountSettingDefault\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAccountSettingDefaultCommand\");\nvar se_PutAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutAttributes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutAttributesCommand\");\nvar se_PutClusterCapacityProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutClusterCapacityProviders\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutClusterCapacityProvidersCommand\");\nvar se_RegisterContainerInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterContainerInstance\");\n let body;\n body = JSON.stringify(se_RegisterContainerInstanceRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterContainerInstanceCommand\");\nvar se_RegisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterTaskDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTaskDefinitionCommand\");\nvar se_RunTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RunTask\");\n let body;\n body = JSON.stringify(se_RunTaskRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RunTaskCommand\");\nvar se_StartTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartTaskCommand\");\nvar se_StopServiceDeploymentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopServiceDeployment\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopServiceDeploymentCommand\");\nvar se_StopTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopTaskCommand\");\nvar se_SubmitAttachmentStateChangesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SubmitAttachmentStateChanges\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SubmitAttachmentStateChangesCommand\");\nvar se_SubmitContainerStateChangeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SubmitContainerStateChange\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SubmitContainerStateChangeCommand\");\nvar se_SubmitTaskStateChangeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SubmitTaskStateChange\");\n let body;\n body = JSON.stringify(se_SubmitTaskStateChangeRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SubmitTaskStateChangeCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateCapacityProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateCapacityProvider\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateCapacityProviderCommand\");\nvar se_UpdateClusterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateCluster\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateClusterCommand\");\nvar se_UpdateClusterSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateClusterSettings\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateClusterSettingsCommand\");\nvar se_UpdateContainerAgentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateContainerAgent\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateContainerAgentCommand\");\nvar se_UpdateContainerInstancesStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateContainerInstancesState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateContainerInstancesStateCommand\");\nvar se_UpdateServiceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateService\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServiceCommand\");\nvar se_UpdateServicePrimaryTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateServicePrimaryTaskSet\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServicePrimaryTaskSetCommand\");\nvar se_UpdateTaskProtectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateTaskProtection\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateTaskProtectionCommand\");\nvar se_UpdateTaskSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateTaskSet\");\n let body;\n body = JSON.stringify(se_UpdateTaskSetRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateTaskSetCommand\");\nvar de_CreateCapacityProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCapacityProviderCommand\");\nvar de_CreateClusterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateClusterCommand\");\nvar de_CreateServiceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateServiceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateServiceCommand\");\nvar de_CreateTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTaskSetCommand\");\nvar de_DeleteAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteAccountSettingCommand\");\nvar de_DeleteAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteAttributesCommand\");\nvar de_DeleteCapacityProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCapacityProviderCommand\");\nvar de_DeleteClusterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteClusterCommand\");\nvar de_DeleteServiceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteServiceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteServiceCommand\");\nvar de_DeleteTaskDefinitionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTaskDefinitionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTaskDefinitionsCommand\");\nvar de_DeleteTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTaskSetCommand\");\nvar de_DeregisterContainerInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterContainerInstanceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterContainerInstanceCommand\");\nvar de_DeregisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTaskDefinitionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTaskDefinitionCommand\");\nvar de_DescribeCapacityProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityProvidersCommand\");\nvar de_DescribeClustersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeClustersCommand\");\nvar de_DescribeContainerInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeContainerInstancesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeContainerInstancesCommand\");\nvar de_DescribeServiceDeploymentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServiceDeploymentsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServiceDeploymentsCommand\");\nvar de_DescribeServiceRevisionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServiceRevisionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServiceRevisionsCommand\");\nvar de_DescribeServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeServicesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeServicesCommand\");\nvar de_DescribeTaskDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTaskDefinitionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTaskDefinitionCommand\");\nvar de_DescribeTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTasksResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTasksCommand\");\nvar de_DescribeTaskSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTaskSetsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTaskSetsCommand\");\nvar de_DiscoverPollEndpointCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DiscoverPollEndpointCommand\");\nvar de_ExecuteCommandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ExecuteCommandCommand\");\nvar de_GetTaskProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetTaskProtectionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTaskProtectionCommand\");\nvar de_ListAccountSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAccountSettingsCommand\");\nvar de_ListAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttributesCommand\");\nvar de_ListClustersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListClustersCommand\");\nvar de_ListContainerInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListContainerInstancesCommand\");\nvar de_ListServiceDeploymentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListServiceDeploymentsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServiceDeploymentsCommand\");\nvar de_ListServicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServicesCommand\");\nvar de_ListServicesByNamespaceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServicesByNamespaceCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTaskDefinitionFamiliesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTaskDefinitionFamiliesCommand\");\nvar de_ListTaskDefinitionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTaskDefinitionsCommand\");\nvar de_ListTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTasksCommand\");\nvar de_PutAccountSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountSettingCommand\");\nvar de_PutAccountSettingDefaultCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAccountSettingDefaultCommand\");\nvar de_PutAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutAttributesCommand\");\nvar de_PutClusterCapacityProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutClusterCapacityProvidersCommand\");\nvar de_RegisterContainerInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RegisterContainerInstanceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterContainerInstanceCommand\");\nvar de_RegisterTaskDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTaskDefinitionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTaskDefinitionCommand\");\nvar de_RunTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RunTaskResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RunTaskCommand\");\nvar de_StartTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartTaskResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartTaskCommand\");\nvar de_StopServiceDeploymentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopServiceDeploymentCommand\");\nvar de_StopTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopTaskResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopTaskCommand\");\nvar de_SubmitAttachmentStateChangesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SubmitAttachmentStateChangesCommand\");\nvar de_SubmitContainerStateChangeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SubmitContainerStateChangeCommand\");\nvar de_SubmitTaskStateChangeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SubmitTaskStateChangeCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateCapacityProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateCapacityProviderCommand\");\nvar de_UpdateClusterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateClusterCommand\");\nvar de_UpdateClusterSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateClusterSettingsCommand\");\nvar de_UpdateContainerAgentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateContainerAgentResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateContainerAgentCommand\");\nvar de_UpdateContainerInstancesStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateContainerInstancesStateResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateContainerInstancesStateCommand\");\nvar de_UpdateServiceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateServiceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateServiceCommand\");\nvar de_UpdateServicePrimaryTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateServicePrimaryTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateServicePrimaryTaskSetCommand\");\nvar de_UpdateTaskProtectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateTaskProtectionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateTaskProtectionCommand\");\nvar de_UpdateTaskSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateTaskSetResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateTaskSetCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ClientException\":\n case \"com.amazonaws.ecs#ClientException\":\n throw await de_ClientExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.ecs#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.ecs#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"ServerException\":\n case \"com.amazonaws.ecs#ServerException\":\n throw await de_ServerExceptionRes(parsedOutput, context);\n case \"UpdateInProgressException\":\n case \"com.amazonaws.ecs#UpdateInProgressException\":\n throw await de_UpdateInProgressExceptionRes(parsedOutput, context);\n case \"NamespaceNotFoundException\":\n case \"com.amazonaws.ecs#NamespaceNotFoundException\":\n throw await de_NamespaceNotFoundExceptionRes(parsedOutput, context);\n case \"AccessDeniedException\":\n case \"com.amazonaws.ecs#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"ClusterNotFoundException\":\n case \"com.amazonaws.ecs#ClusterNotFoundException\":\n throw await de_ClusterNotFoundExceptionRes(parsedOutput, context);\n case \"PlatformTaskDefinitionIncompatibilityException\":\n case \"com.amazonaws.ecs#PlatformTaskDefinitionIncompatibilityException\":\n throw await de_PlatformTaskDefinitionIncompatibilityExceptionRes(parsedOutput, context);\n case \"PlatformUnknownException\":\n case \"com.amazonaws.ecs#PlatformUnknownException\":\n throw await de_PlatformUnknownExceptionRes(parsedOutput, context);\n case \"UnsupportedFeatureException\":\n case \"com.amazonaws.ecs#UnsupportedFeatureException\":\n throw await de_UnsupportedFeatureExceptionRes(parsedOutput, context);\n case \"ServiceNotActiveException\":\n case \"com.amazonaws.ecs#ServiceNotActiveException\":\n throw await de_ServiceNotActiveExceptionRes(parsedOutput, context);\n case \"ServiceNotFoundException\":\n case \"com.amazonaws.ecs#ServiceNotFoundException\":\n throw await de_ServiceNotFoundExceptionRes(parsedOutput, context);\n case \"TargetNotFoundException\":\n case \"com.amazonaws.ecs#TargetNotFoundException\":\n throw await de_TargetNotFoundExceptionRes(parsedOutput, context);\n case \"ClusterContainsContainerInstancesException\":\n case \"com.amazonaws.ecs#ClusterContainsContainerInstancesException\":\n throw await de_ClusterContainsContainerInstancesExceptionRes(parsedOutput, context);\n case \"ClusterContainsServicesException\":\n case \"com.amazonaws.ecs#ClusterContainsServicesException\":\n throw await de_ClusterContainsServicesExceptionRes(parsedOutput, context);\n case \"ClusterContainsTasksException\":\n case \"com.amazonaws.ecs#ClusterContainsTasksException\":\n throw await de_ClusterContainsTasksExceptionRes(parsedOutput, context);\n case \"TaskSetNotFoundException\":\n case \"com.amazonaws.ecs#TaskSetNotFoundException\":\n throw await de_TaskSetNotFoundExceptionRes(parsedOutput, context);\n case \"TargetNotConnectedException\":\n case \"com.amazonaws.ecs#TargetNotConnectedException\":\n throw await de_TargetNotConnectedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.ecs#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"AttributeLimitExceededException\":\n case \"com.amazonaws.ecs#AttributeLimitExceededException\":\n throw await de_AttributeLimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceInUseException\":\n case \"com.amazonaws.ecs#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"BlockedException\":\n case \"com.amazonaws.ecs#BlockedException\":\n throw await de_BlockedExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.ecs#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"ServiceDeploymentNotFoundException\":\n case \"com.amazonaws.ecs#ServiceDeploymentNotFoundException\":\n throw await de_ServiceDeploymentNotFoundExceptionRes(parsedOutput, context);\n case \"MissingVersionException\":\n case \"com.amazonaws.ecs#MissingVersionException\":\n throw await de_MissingVersionExceptionRes(parsedOutput, context);\n case \"NoUpdateAvailableException\":\n case \"com.amazonaws.ecs#NoUpdateAvailableException\":\n throw await de_NoUpdateAvailableExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AttributeLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AttributeLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AttributeLimitExceededExceptionRes\");\nvar de_BlockedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new BlockedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_BlockedExceptionRes\");\nvar de_ClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClientExceptionRes\");\nvar de_ClusterContainsContainerInstancesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterContainsContainerInstancesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterContainsContainerInstancesExceptionRes\");\nvar de_ClusterContainsServicesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterContainsServicesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterContainsServicesExceptionRes\");\nvar de_ClusterContainsTasksExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterContainsTasksException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterContainsTasksExceptionRes\");\nvar de_ClusterNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ClusterNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ClusterNotFoundExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MissingVersionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MissingVersionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MissingVersionExceptionRes\");\nvar de_NamespaceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NamespaceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NamespaceNotFoundExceptionRes\");\nvar de_NoUpdateAvailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NoUpdateAvailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NoUpdateAvailableExceptionRes\");\nvar de_PlatformTaskDefinitionIncompatibilityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PlatformTaskDefinitionIncompatibilityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PlatformTaskDefinitionIncompatibilityExceptionRes\");\nvar de_PlatformUnknownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PlatformUnknownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PlatformUnknownExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServerExceptionRes\");\nvar de_ServiceDeploymentNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceDeploymentNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceDeploymentNotFoundExceptionRes\");\nvar de_ServiceNotActiveExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceNotActiveException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceNotActiveExceptionRes\");\nvar de_ServiceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceNotFoundExceptionRes\");\nvar de_TargetNotConnectedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetNotConnectedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetNotConnectedExceptionRes\");\nvar de_TargetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetNotFoundExceptionRes\");\nvar de_TaskSetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TaskSetNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TaskSetNotFoundExceptionRes\");\nvar de_UnsupportedFeatureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedFeatureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedFeatureExceptionRes\");\nvar de_UpdateInProgressExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UpdateInProgressException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UpdateInProgressExceptionRes\");\nvar se_CreatedAt = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n after: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"after\"),\n before: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"before\")\n });\n}, \"se_CreatedAt\");\nvar se_CreateTaskSetRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n capacityProviderStrategy: import_smithy_client._json,\n clientToken: [],\n cluster: [],\n externalId: [],\n launchType: [],\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n platformVersion: [],\n scale: /* @__PURE__ */ __name((_) => se_Scale(_, context), \"scale\"),\n service: [],\n serviceRegistries: import_smithy_client._json,\n tags: import_smithy_client._json,\n taskDefinition: []\n });\n}, \"se_CreateTaskSetRequest\");\nvar se_ListServiceDeploymentsRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n cluster: [],\n createdAt: /* @__PURE__ */ __name((_) => se_CreatedAt(_, context), \"createdAt\"),\n maxResults: [],\n nextToken: [],\n service: [],\n status: import_smithy_client._json\n });\n}, \"se_ListServiceDeploymentsRequest\");\nvar se_RegisterContainerInstanceRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n attributes: import_smithy_client._json,\n cluster: [],\n containerInstanceArn: [],\n instanceIdentityDocument: [],\n instanceIdentityDocumentSignature: [],\n platformDevices: import_smithy_client._json,\n tags: import_smithy_client._json,\n totalResources: /* @__PURE__ */ __name((_) => se_Resources(_, context), \"totalResources\"),\n versionInfo: import_smithy_client._json\n });\n}, \"se_RegisterContainerInstanceRequest\");\nvar se_Resource = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n doubleValue: import_smithy_client.serializeFloat,\n integerValue: [],\n longValue: [],\n name: [],\n stringSetValue: import_smithy_client._json,\n type: []\n });\n}, \"se_Resource\");\nvar se_Resources = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_Resource(entry, context);\n });\n}, \"se_Resources\");\nvar se_RunTaskRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n capacityProviderStrategy: import_smithy_client._json,\n clientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n cluster: [],\n count: [],\n enableECSManagedTags: [],\n enableExecuteCommand: [],\n group: [],\n launchType: [],\n networkConfiguration: import_smithy_client._json,\n overrides: import_smithy_client._json,\n placementConstraints: import_smithy_client._json,\n placementStrategy: import_smithy_client._json,\n platformVersion: [],\n propagateTags: [],\n referenceId: [],\n startedBy: [],\n tags: import_smithy_client._json,\n taskDefinition: [],\n volumeConfigurations: import_smithy_client._json\n });\n}, \"se_RunTaskRequest\");\nvar se_Scale = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n unit: [],\n value: import_smithy_client.serializeFloat\n });\n}, \"se_Scale\");\nvar se_SubmitTaskStateChangeRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n attachments: import_smithy_client._json,\n cluster: [],\n containers: import_smithy_client._json,\n executionStoppedAt: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"executionStoppedAt\"),\n managedAgents: import_smithy_client._json,\n pullStartedAt: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"pullStartedAt\"),\n pullStoppedAt: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"pullStoppedAt\"),\n reason: [],\n status: [],\n task: []\n });\n}, \"se_SubmitTaskStateChangeRequest\");\nvar se_UpdateTaskSetRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n cluster: [],\n scale: /* @__PURE__ */ __name((_) => se_Scale(_, context), \"scale\"),\n service: [],\n taskSet: []\n });\n}, \"se_UpdateTaskSetRequest\");\nvar de_Container = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerArn: import_smithy_client.expectString,\n cpu: import_smithy_client.expectString,\n exitCode: import_smithy_client.expectInt32,\n gpuIds: import_smithy_client._json,\n healthStatus: import_smithy_client.expectString,\n image: import_smithy_client.expectString,\n imageDigest: import_smithy_client.expectString,\n lastStatus: import_smithy_client.expectString,\n managedAgents: /* @__PURE__ */ __name((_) => de_ManagedAgents(_, context), \"managedAgents\"),\n memory: import_smithy_client.expectString,\n memoryReservation: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n networkBindings: import_smithy_client._json,\n networkInterfaces: import_smithy_client._json,\n reason: import_smithy_client.expectString,\n runtimeId: import_smithy_client.expectString,\n taskArn: import_smithy_client.expectString\n });\n}, \"de_Container\");\nvar de_ContainerInstance = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n agentConnected: import_smithy_client.expectBoolean,\n agentUpdateStatus: import_smithy_client.expectString,\n attachments: import_smithy_client._json,\n attributes: import_smithy_client._json,\n capacityProviderName: import_smithy_client.expectString,\n containerInstanceArn: import_smithy_client.expectString,\n ec2InstanceId: import_smithy_client.expectString,\n healthStatus: /* @__PURE__ */ __name((_) => de_ContainerInstanceHealthStatus(_, context), \"healthStatus\"),\n pendingTasksCount: import_smithy_client.expectInt32,\n registeredAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"registeredAt\"),\n registeredResources: /* @__PURE__ */ __name((_) => de_Resources(_, context), \"registeredResources\"),\n remainingResources: /* @__PURE__ */ __name((_) => de_Resources(_, context), \"remainingResources\"),\n runningTasksCount: import_smithy_client.expectInt32,\n status: import_smithy_client.expectString,\n statusReason: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n version: import_smithy_client.expectLong,\n versionInfo: import_smithy_client._json\n });\n}, \"de_ContainerInstance\");\nvar de_ContainerInstanceHealthStatus = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n details: /* @__PURE__ */ __name((_) => de_InstanceHealthCheckResultList(_, context), \"details\"),\n overallStatus: import_smithy_client.expectString\n });\n}, \"de_ContainerInstanceHealthStatus\");\nvar de_ContainerInstances = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ContainerInstance(entry, context);\n });\n return retVal;\n}, \"de_ContainerInstances\");\nvar de_Containers = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Container(entry, context);\n });\n return retVal;\n}, \"de_Containers\");\nvar de_CreateServiceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n service: /* @__PURE__ */ __name((_) => de_Service(_, context), \"service\")\n });\n}, \"de_CreateServiceResponse\");\nvar de_CreateTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_CreateTaskSetResponse\");\nvar de_DeleteServiceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n service: /* @__PURE__ */ __name((_) => de_Service(_, context), \"service\")\n });\n}, \"de_DeleteServiceResponse\");\nvar de_DeleteTaskDefinitionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n taskDefinitions: /* @__PURE__ */ __name((_) => de_TaskDefinitionList(_, context), \"taskDefinitions\")\n });\n}, \"de_DeleteTaskDefinitionsResponse\");\nvar de_DeleteTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_DeleteTaskSetResponse\");\nvar de_Deployment = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n capacityProviderStrategy: import_smithy_client._json,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n desiredCount: import_smithy_client.expectInt32,\n failedTasks: import_smithy_client.expectInt32,\n fargateEphemeralStorage: import_smithy_client._json,\n id: import_smithy_client.expectString,\n launchType: import_smithy_client.expectString,\n networkConfiguration: import_smithy_client._json,\n pendingCount: import_smithy_client.expectInt32,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n rolloutState: import_smithy_client.expectString,\n rolloutStateReason: import_smithy_client.expectString,\n runningCount: import_smithy_client.expectInt32,\n serviceConnectConfiguration: import_smithy_client._json,\n serviceConnectResources: import_smithy_client._json,\n status: import_smithy_client.expectString,\n taskDefinition: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\"),\n volumeConfigurations: import_smithy_client._json,\n vpcLatticeConfigurations: import_smithy_client._json\n });\n}, \"de_Deployment\");\nvar de_Deployments = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Deployment(entry, context);\n });\n return retVal;\n}, \"de_Deployments\");\nvar de_DeregisterContainerInstanceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstance: /* @__PURE__ */ __name((_) => de_ContainerInstance(_, context), \"containerInstance\")\n });\n}, \"de_DeregisterContainerInstanceResponse\");\nvar de_DeregisterTaskDefinitionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskDefinition: /* @__PURE__ */ __name((_) => de_TaskDefinition(_, context), \"taskDefinition\")\n });\n}, \"de_DeregisterTaskDefinitionResponse\");\nvar de_DescribeContainerInstancesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstances: /* @__PURE__ */ __name((_) => de_ContainerInstances(_, context), \"containerInstances\"),\n failures: import_smithy_client._json\n });\n}, \"de_DescribeContainerInstancesResponse\");\nvar de_DescribeServiceDeploymentsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n serviceDeployments: /* @__PURE__ */ __name((_) => de_ServiceDeployments(_, context), \"serviceDeployments\")\n });\n}, \"de_DescribeServiceDeploymentsResponse\");\nvar de_DescribeServiceRevisionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n serviceRevisions: /* @__PURE__ */ __name((_) => de_ServiceRevisions(_, context), \"serviceRevisions\")\n });\n}, \"de_DescribeServiceRevisionsResponse\");\nvar de_DescribeServicesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n services: /* @__PURE__ */ __name((_) => de_Services(_, context), \"services\")\n });\n}, \"de_DescribeServicesResponse\");\nvar de_DescribeTaskDefinitionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n tags: import_smithy_client._json,\n taskDefinition: /* @__PURE__ */ __name((_) => de_TaskDefinition(_, context), \"taskDefinition\")\n });\n}, \"de_DescribeTaskDefinitionResponse\");\nvar de_DescribeTaskSetsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n taskSets: /* @__PURE__ */ __name((_) => de_TaskSets(_, context), \"taskSets\")\n });\n}, \"de_DescribeTaskSetsResponse\");\nvar de_DescribeTasksResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n tasks: /* @__PURE__ */ __name((_) => de_Tasks(_, context), \"tasks\")\n });\n}, \"de_DescribeTasksResponse\");\nvar de_GetTaskProtectionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n protectedTasks: /* @__PURE__ */ __name((_) => de_ProtectedTasks(_, context), \"protectedTasks\")\n });\n}, \"de_GetTaskProtectionResponse\");\nvar de_InstanceHealthCheckResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastStatusChange: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastStatusChange\"),\n lastUpdated: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastUpdated\"),\n status: import_smithy_client.expectString,\n type: import_smithy_client.expectString\n });\n}, \"de_InstanceHealthCheckResult\");\nvar de_InstanceHealthCheckResultList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceHealthCheckResult(entry, context);\n });\n return retVal;\n}, \"de_InstanceHealthCheckResultList\");\nvar de_ListServiceDeploymentsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n serviceDeployments: /* @__PURE__ */ __name((_) => de_ServiceDeploymentsBrief(_, context), \"serviceDeployments\")\n });\n}, \"de_ListServiceDeploymentsResponse\");\nvar de_ManagedAgent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n lastStartedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"lastStartedAt\"),\n lastStatus: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n reason: import_smithy_client.expectString\n });\n}, \"de_ManagedAgent\");\nvar de_ManagedAgents = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ManagedAgent(entry, context);\n });\n return retVal;\n}, \"de_ManagedAgents\");\nvar de_ProtectedTask = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n expirationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"expirationDate\"),\n protectionEnabled: import_smithy_client.expectBoolean,\n taskArn: import_smithy_client.expectString\n });\n}, \"de_ProtectedTask\");\nvar de_ProtectedTasks = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ProtectedTask(entry, context);\n });\n return retVal;\n}, \"de_ProtectedTasks\");\nvar de_RegisterContainerInstanceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstance: /* @__PURE__ */ __name((_) => de_ContainerInstance(_, context), \"containerInstance\")\n });\n}, \"de_RegisterContainerInstanceResponse\");\nvar de_RegisterTaskDefinitionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n tags: import_smithy_client._json,\n taskDefinition: /* @__PURE__ */ __name((_) => de_TaskDefinition(_, context), \"taskDefinition\")\n });\n}, \"de_RegisterTaskDefinitionResponse\");\nvar de_Resource = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n doubleValue: import_smithy_client.limitedParseDouble,\n integerValue: import_smithy_client.expectInt32,\n longValue: import_smithy_client.expectLong,\n name: import_smithy_client.expectString,\n stringSetValue: import_smithy_client._json,\n type: import_smithy_client.expectString\n });\n}, \"de_Resource\");\nvar de_Resources = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Resource(entry, context);\n });\n return retVal;\n}, \"de_Resources\");\nvar de_Rollback = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n reason: import_smithy_client.expectString,\n serviceRevisionArn: import_smithy_client.expectString,\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\")\n });\n}, \"de_Rollback\");\nvar de_RunTaskResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n tasks: /* @__PURE__ */ __name((_) => de_Tasks(_, context), \"tasks\")\n });\n}, \"de_RunTaskResponse\");\nvar de_Scale = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n unit: import_smithy_client.expectString,\n value: import_smithy_client.limitedParseDouble\n });\n}, \"de_Scale\");\nvar de_Service = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n availabilityZoneRebalancing: import_smithy_client.expectString,\n capacityProviderStrategy: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n createdBy: import_smithy_client.expectString,\n deploymentConfiguration: import_smithy_client._json,\n deploymentController: import_smithy_client._json,\n deployments: /* @__PURE__ */ __name((_) => de_Deployments(_, context), \"deployments\"),\n desiredCount: import_smithy_client.expectInt32,\n enableECSManagedTags: import_smithy_client.expectBoolean,\n enableExecuteCommand: import_smithy_client.expectBoolean,\n events: /* @__PURE__ */ __name((_) => de_ServiceEvents(_, context), \"events\"),\n healthCheckGracePeriodSeconds: import_smithy_client.expectInt32,\n launchType: import_smithy_client.expectString,\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n pendingCount: import_smithy_client.expectInt32,\n placementConstraints: import_smithy_client._json,\n placementStrategy: import_smithy_client._json,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n propagateTags: import_smithy_client.expectString,\n roleArn: import_smithy_client.expectString,\n runningCount: import_smithy_client.expectInt32,\n schedulingStrategy: import_smithy_client.expectString,\n serviceArn: import_smithy_client.expectString,\n serviceName: import_smithy_client.expectString,\n serviceRegistries: import_smithy_client._json,\n status: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n taskDefinition: import_smithy_client.expectString,\n taskSets: /* @__PURE__ */ __name((_) => de_TaskSets(_, context), \"taskSets\")\n });\n}, \"de_Service\");\nvar de_ServiceDeployment = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n alarms: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n deploymentCircuitBreaker: import_smithy_client._json,\n deploymentConfiguration: import_smithy_client._json,\n finishedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"finishedAt\"),\n rollback: /* @__PURE__ */ __name((_) => de_Rollback(_, context), \"rollback\"),\n serviceArn: import_smithy_client.expectString,\n serviceDeploymentArn: import_smithy_client.expectString,\n sourceServiceRevisions: import_smithy_client._json,\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\"),\n status: import_smithy_client.expectString,\n statusReason: import_smithy_client.expectString,\n stoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stoppedAt\"),\n targetServiceRevision: import_smithy_client._json,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_ServiceDeployment\");\nvar de_ServiceDeploymentBrief = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n clusterArn: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n finishedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"finishedAt\"),\n serviceArn: import_smithy_client.expectString,\n serviceDeploymentArn: import_smithy_client.expectString,\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\"),\n status: import_smithy_client.expectString,\n statusReason: import_smithy_client.expectString,\n targetServiceRevisionArn: import_smithy_client.expectString\n });\n}, \"de_ServiceDeploymentBrief\");\nvar de_ServiceDeployments = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceDeployment(entry, context);\n });\n return retVal;\n}, \"de_ServiceDeployments\");\nvar de_ServiceDeploymentsBrief = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceDeploymentBrief(entry, context);\n });\n return retVal;\n}, \"de_ServiceDeploymentsBrief\");\nvar de_ServiceEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n id: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n}, \"de_ServiceEvent\");\nvar de_ServiceEvents = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceEvent(entry, context);\n });\n return retVal;\n}, \"de_ServiceEvents\");\nvar de_ServiceRevision = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n capacityProviderStrategy: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n containerImages: import_smithy_client._json,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n fargateEphemeralStorage: import_smithy_client._json,\n guardDutyEnabled: import_smithy_client.expectBoolean,\n launchType: import_smithy_client.expectString,\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n serviceArn: import_smithy_client.expectString,\n serviceConnectConfiguration: import_smithy_client._json,\n serviceRegistries: import_smithy_client._json,\n serviceRevisionArn: import_smithy_client.expectString,\n taskDefinition: import_smithy_client.expectString,\n volumeConfigurations: import_smithy_client._json,\n vpcLatticeConfigurations: import_smithy_client._json\n });\n}, \"de_ServiceRevision\");\nvar de_ServiceRevisions = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceRevision(entry, context);\n });\n return retVal;\n}, \"de_ServiceRevisions\");\nvar de_Services = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Service(entry, context);\n });\n return retVal;\n}, \"de_Services\");\nvar de_StartTaskResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n tasks: /* @__PURE__ */ __name((_) => de_Tasks(_, context), \"tasks\")\n });\n}, \"de_StartTaskResponse\");\nvar de_StopTaskResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n task: /* @__PURE__ */ __name((_) => de_Task(_, context), \"task\")\n });\n}, \"de_StopTaskResponse\");\nvar de_Task = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n attachments: import_smithy_client._json,\n attributes: import_smithy_client._json,\n availabilityZone: import_smithy_client.expectString,\n capacityProviderName: import_smithy_client.expectString,\n clusterArn: import_smithy_client.expectString,\n connectivity: import_smithy_client.expectString,\n connectivityAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"connectivityAt\"),\n containerInstanceArn: import_smithy_client.expectString,\n containers: /* @__PURE__ */ __name((_) => de_Containers(_, context), \"containers\"),\n cpu: import_smithy_client.expectString,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n desiredStatus: import_smithy_client.expectString,\n enableExecuteCommand: import_smithy_client.expectBoolean,\n ephemeralStorage: import_smithy_client._json,\n executionStoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"executionStoppedAt\"),\n fargateEphemeralStorage: import_smithy_client._json,\n group: import_smithy_client.expectString,\n healthStatus: import_smithy_client.expectString,\n inferenceAccelerators: import_smithy_client._json,\n lastStatus: import_smithy_client.expectString,\n launchType: import_smithy_client.expectString,\n memory: import_smithy_client.expectString,\n overrides: import_smithy_client._json,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n pullStartedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"pullStartedAt\"),\n pullStoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"pullStoppedAt\"),\n startedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startedAt\"),\n startedBy: import_smithy_client.expectString,\n stopCode: import_smithy_client.expectString,\n stoppedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stoppedAt\"),\n stoppedReason: import_smithy_client.expectString,\n stoppingAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stoppingAt\"),\n tags: import_smithy_client._json,\n taskArn: import_smithy_client.expectString,\n taskDefinitionArn: import_smithy_client.expectString,\n version: import_smithy_client.expectLong\n });\n}, \"de_Task\");\nvar de_TaskDefinition = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n compatibilities: import_smithy_client._json,\n containerDefinitions: import_smithy_client._json,\n cpu: import_smithy_client.expectString,\n deregisteredAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"deregisteredAt\"),\n enableFaultInjection: import_smithy_client.expectBoolean,\n ephemeralStorage: import_smithy_client._json,\n executionRoleArn: import_smithy_client.expectString,\n family: import_smithy_client.expectString,\n inferenceAccelerators: import_smithy_client._json,\n ipcMode: import_smithy_client.expectString,\n memory: import_smithy_client.expectString,\n networkMode: import_smithy_client.expectString,\n pidMode: import_smithy_client.expectString,\n placementConstraints: import_smithy_client._json,\n proxyConfiguration: import_smithy_client._json,\n registeredAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"registeredAt\"),\n registeredBy: import_smithy_client.expectString,\n requiresAttributes: import_smithy_client._json,\n requiresCompatibilities: import_smithy_client._json,\n revision: import_smithy_client.expectInt32,\n runtimePlatform: import_smithy_client._json,\n status: import_smithy_client.expectString,\n taskDefinitionArn: import_smithy_client.expectString,\n taskRoleArn: import_smithy_client.expectString,\n volumes: import_smithy_client._json\n });\n}, \"de_TaskDefinition\");\nvar de_TaskDefinitionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TaskDefinition(entry, context);\n });\n return retVal;\n}, \"de_TaskDefinitionList\");\nvar de_Tasks = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Task(entry, context);\n });\n return retVal;\n}, \"de_Tasks\");\nvar de_TaskSet = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n capacityProviderStrategy: import_smithy_client._json,\n clusterArn: import_smithy_client.expectString,\n computedDesiredCount: import_smithy_client.expectInt32,\n createdAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"createdAt\"),\n externalId: import_smithy_client.expectString,\n fargateEphemeralStorage: import_smithy_client._json,\n id: import_smithy_client.expectString,\n launchType: import_smithy_client.expectString,\n loadBalancers: import_smithy_client._json,\n networkConfiguration: import_smithy_client._json,\n pendingCount: import_smithy_client.expectInt32,\n platformFamily: import_smithy_client.expectString,\n platformVersion: import_smithy_client.expectString,\n runningCount: import_smithy_client.expectInt32,\n scale: /* @__PURE__ */ __name((_) => de_Scale(_, context), \"scale\"),\n serviceArn: import_smithy_client.expectString,\n serviceRegistries: import_smithy_client._json,\n stabilityStatus: import_smithy_client.expectString,\n stabilityStatusAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stabilityStatusAt\"),\n startedBy: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n tags: import_smithy_client._json,\n taskDefinition: import_smithy_client.expectString,\n taskSetArn: import_smithy_client.expectString,\n updatedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updatedAt\")\n });\n}, \"de_TaskSet\");\nvar de_TaskSets = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_TaskSet(entry, context);\n });\n return retVal;\n}, \"de_TaskSets\");\nvar de_UpdateContainerAgentResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstance: /* @__PURE__ */ __name((_) => de_ContainerInstance(_, context), \"containerInstance\")\n });\n}, \"de_UpdateContainerAgentResponse\");\nvar de_UpdateContainerInstancesStateResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n containerInstances: /* @__PURE__ */ __name((_) => de_ContainerInstances(_, context), \"containerInstances\"),\n failures: import_smithy_client._json\n });\n}, \"de_UpdateContainerInstancesStateResponse\");\nvar de_UpdateServicePrimaryTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_UpdateServicePrimaryTaskSetResponse\");\nvar de_UpdateServiceResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n service: /* @__PURE__ */ __name((_) => de_Service(_, context), \"service\")\n });\n}, \"de_UpdateServiceResponse\");\nvar de_UpdateTaskProtectionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n failures: import_smithy_client._json,\n protectedTasks: /* @__PURE__ */ __name((_) => de_ProtectedTasks(_, context), \"protectedTasks\")\n });\n}, \"de_UpdateTaskProtectionResponse\");\nvar de_UpdateTaskSetResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n taskSet: /* @__PURE__ */ __name((_) => de_TaskSet(_, context), \"taskSet\")\n });\n}, \"de_UpdateTaskSetResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(ECSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AmazonEC2ContainerServiceV20141113.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CreateCapacityProviderCommand.ts\nvar CreateCapacityProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateCapacityProvider\", {}).n(\"ECSClient\", \"CreateCapacityProviderCommand\").f(void 0, void 0).ser(se_CreateCapacityProviderCommand).de(de_CreateCapacityProviderCommand).build() {\n static {\n __name(this, \"CreateCapacityProviderCommand\");\n }\n};\n\n// src/commands/CreateClusterCommand.ts\n\n\n\nvar CreateClusterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateCluster\", {}).n(\"ECSClient\", \"CreateClusterCommand\").f(void 0, void 0).ser(se_CreateClusterCommand).de(de_CreateClusterCommand).build() {\n static {\n __name(this, \"CreateClusterCommand\");\n }\n};\n\n// src/commands/CreateServiceCommand.ts\n\n\n\nvar CreateServiceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateService\", {}).n(\"ECSClient\", \"CreateServiceCommand\").f(void 0, void 0).ser(se_CreateServiceCommand).de(de_CreateServiceCommand).build() {\n static {\n __name(this, \"CreateServiceCommand\");\n }\n};\n\n// src/commands/CreateTaskSetCommand.ts\n\n\n\nvar CreateTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"CreateTaskSet\", {}).n(\"ECSClient\", \"CreateTaskSetCommand\").f(void 0, void 0).ser(se_CreateTaskSetCommand).de(de_CreateTaskSetCommand).build() {\n static {\n __name(this, \"CreateTaskSetCommand\");\n }\n};\n\n// src/commands/DeleteAccountSettingCommand.ts\n\n\n\nvar DeleteAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteAccountSetting\", {}).n(\"ECSClient\", \"DeleteAccountSettingCommand\").f(void 0, void 0).ser(se_DeleteAccountSettingCommand).de(de_DeleteAccountSettingCommand).build() {\n static {\n __name(this, \"DeleteAccountSettingCommand\");\n }\n};\n\n// src/commands/DeleteAttributesCommand.ts\n\n\n\nvar DeleteAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteAttributes\", {}).n(\"ECSClient\", \"DeleteAttributesCommand\").f(void 0, void 0).ser(se_DeleteAttributesCommand).de(de_DeleteAttributesCommand).build() {\n static {\n __name(this, \"DeleteAttributesCommand\");\n }\n};\n\n// src/commands/DeleteCapacityProviderCommand.ts\n\n\n\nvar DeleteCapacityProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteCapacityProvider\", {}).n(\"ECSClient\", \"DeleteCapacityProviderCommand\").f(void 0, void 0).ser(se_DeleteCapacityProviderCommand).de(de_DeleteCapacityProviderCommand).build() {\n static {\n __name(this, \"DeleteCapacityProviderCommand\");\n }\n};\n\n// src/commands/DeleteClusterCommand.ts\n\n\n\nvar DeleteClusterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteCluster\", {}).n(\"ECSClient\", \"DeleteClusterCommand\").f(void 0, void 0).ser(se_DeleteClusterCommand).de(de_DeleteClusterCommand).build() {\n static {\n __name(this, \"DeleteClusterCommand\");\n }\n};\n\n// src/commands/DeleteServiceCommand.ts\n\n\n\nvar DeleteServiceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteService\", {}).n(\"ECSClient\", \"DeleteServiceCommand\").f(void 0, void 0).ser(se_DeleteServiceCommand).de(de_DeleteServiceCommand).build() {\n static {\n __name(this, \"DeleteServiceCommand\");\n }\n};\n\n// src/commands/DeleteTaskDefinitionsCommand.ts\n\n\n\nvar DeleteTaskDefinitionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteTaskDefinitions\", {}).n(\"ECSClient\", \"DeleteTaskDefinitionsCommand\").f(void 0, void 0).ser(se_DeleteTaskDefinitionsCommand).de(de_DeleteTaskDefinitionsCommand).build() {\n static {\n __name(this, \"DeleteTaskDefinitionsCommand\");\n }\n};\n\n// src/commands/DeleteTaskSetCommand.ts\n\n\n\nvar DeleteTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeleteTaskSet\", {}).n(\"ECSClient\", \"DeleteTaskSetCommand\").f(void 0, void 0).ser(se_DeleteTaskSetCommand).de(de_DeleteTaskSetCommand).build() {\n static {\n __name(this, \"DeleteTaskSetCommand\");\n }\n};\n\n// src/commands/DeregisterContainerInstanceCommand.ts\n\n\n\nvar DeregisterContainerInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeregisterContainerInstance\", {}).n(\"ECSClient\", \"DeregisterContainerInstanceCommand\").f(void 0, void 0).ser(se_DeregisterContainerInstanceCommand).de(de_DeregisterContainerInstanceCommand).build() {\n static {\n __name(this, \"DeregisterContainerInstanceCommand\");\n }\n};\n\n// src/commands/DeregisterTaskDefinitionCommand.ts\n\n\n\nvar DeregisterTaskDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DeregisterTaskDefinition\", {}).n(\"ECSClient\", \"DeregisterTaskDefinitionCommand\").f(void 0, void 0).ser(se_DeregisterTaskDefinitionCommand).de(de_DeregisterTaskDefinitionCommand).build() {\n static {\n __name(this, \"DeregisterTaskDefinitionCommand\");\n }\n};\n\n// src/commands/DescribeCapacityProvidersCommand.ts\n\n\n\nvar DescribeCapacityProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeCapacityProviders\", {}).n(\"ECSClient\", \"DescribeCapacityProvidersCommand\").f(void 0, void 0).ser(se_DescribeCapacityProvidersCommand).de(de_DescribeCapacityProvidersCommand).build() {\n static {\n __name(this, \"DescribeCapacityProvidersCommand\");\n }\n};\n\n// src/commands/DescribeClustersCommand.ts\n\n\n\nvar DescribeClustersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeClusters\", {}).n(\"ECSClient\", \"DescribeClustersCommand\").f(void 0, void 0).ser(se_DescribeClustersCommand).de(de_DescribeClustersCommand).build() {\n static {\n __name(this, \"DescribeClustersCommand\");\n }\n};\n\n// src/commands/DescribeContainerInstancesCommand.ts\n\n\n\nvar DescribeContainerInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeContainerInstances\", {}).n(\"ECSClient\", \"DescribeContainerInstancesCommand\").f(void 0, void 0).ser(se_DescribeContainerInstancesCommand).de(de_DescribeContainerInstancesCommand).build() {\n static {\n __name(this, \"DescribeContainerInstancesCommand\");\n }\n};\n\n// src/commands/DescribeServiceDeploymentsCommand.ts\n\n\n\nvar DescribeServiceDeploymentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeServiceDeployments\", {}).n(\"ECSClient\", \"DescribeServiceDeploymentsCommand\").f(void 0, void 0).ser(se_DescribeServiceDeploymentsCommand).de(de_DescribeServiceDeploymentsCommand).build() {\n static {\n __name(this, \"DescribeServiceDeploymentsCommand\");\n }\n};\n\n// src/commands/DescribeServiceRevisionsCommand.ts\n\n\n\nvar DescribeServiceRevisionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeServiceRevisions\", {}).n(\"ECSClient\", \"DescribeServiceRevisionsCommand\").f(void 0, void 0).ser(se_DescribeServiceRevisionsCommand).de(de_DescribeServiceRevisionsCommand).build() {\n static {\n __name(this, \"DescribeServiceRevisionsCommand\");\n }\n};\n\n// src/commands/DescribeServicesCommand.ts\n\n\n\nvar DescribeServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeServices\", {}).n(\"ECSClient\", \"DescribeServicesCommand\").f(void 0, void 0).ser(se_DescribeServicesCommand).de(de_DescribeServicesCommand).build() {\n static {\n __name(this, \"DescribeServicesCommand\");\n }\n};\n\n// src/commands/DescribeTaskDefinitionCommand.ts\n\n\n\nvar DescribeTaskDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeTaskDefinition\", {}).n(\"ECSClient\", \"DescribeTaskDefinitionCommand\").f(void 0, void 0).ser(se_DescribeTaskDefinitionCommand).de(de_DescribeTaskDefinitionCommand).build() {\n static {\n __name(this, \"DescribeTaskDefinitionCommand\");\n }\n};\n\n// src/commands/DescribeTasksCommand.ts\n\n\n\nvar DescribeTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeTasks\", {}).n(\"ECSClient\", \"DescribeTasksCommand\").f(void 0, void 0).ser(se_DescribeTasksCommand).de(de_DescribeTasksCommand).build() {\n static {\n __name(this, \"DescribeTasksCommand\");\n }\n};\n\n// src/commands/DescribeTaskSetsCommand.ts\n\n\n\nvar DescribeTaskSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DescribeTaskSets\", {}).n(\"ECSClient\", \"DescribeTaskSetsCommand\").f(void 0, void 0).ser(se_DescribeTaskSetsCommand).de(de_DescribeTaskSetsCommand).build() {\n static {\n __name(this, \"DescribeTaskSetsCommand\");\n }\n};\n\n// src/commands/DiscoverPollEndpointCommand.ts\n\n\n\nvar DiscoverPollEndpointCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"DiscoverPollEndpoint\", {}).n(\"ECSClient\", \"DiscoverPollEndpointCommand\").f(void 0, void 0).ser(se_DiscoverPollEndpointCommand).de(de_DiscoverPollEndpointCommand).build() {\n static {\n __name(this, \"DiscoverPollEndpointCommand\");\n }\n};\n\n// src/commands/ExecuteCommandCommand.ts\n\n\n\nvar ExecuteCommandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ExecuteCommand\", {}).n(\"ECSClient\", \"ExecuteCommandCommand\").f(void 0, ExecuteCommandResponseFilterSensitiveLog).ser(se_ExecuteCommandCommand).de(de_ExecuteCommandCommand).build() {\n static {\n __name(this, \"ExecuteCommandCommand\");\n }\n};\n\n// src/commands/GetTaskProtectionCommand.ts\n\n\n\nvar GetTaskProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"GetTaskProtection\", {}).n(\"ECSClient\", \"GetTaskProtectionCommand\").f(void 0, void 0).ser(se_GetTaskProtectionCommand).de(de_GetTaskProtectionCommand).build() {\n static {\n __name(this, \"GetTaskProtectionCommand\");\n }\n};\n\n// src/commands/ListAccountSettingsCommand.ts\n\n\n\nvar ListAccountSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListAccountSettings\", {}).n(\"ECSClient\", \"ListAccountSettingsCommand\").f(void 0, void 0).ser(se_ListAccountSettingsCommand).de(de_ListAccountSettingsCommand).build() {\n static {\n __name(this, \"ListAccountSettingsCommand\");\n }\n};\n\n// src/commands/ListAttributesCommand.ts\n\n\n\nvar ListAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListAttributes\", {}).n(\"ECSClient\", \"ListAttributesCommand\").f(void 0, void 0).ser(se_ListAttributesCommand).de(de_ListAttributesCommand).build() {\n static {\n __name(this, \"ListAttributesCommand\");\n }\n};\n\n// src/commands/ListClustersCommand.ts\n\n\n\nvar ListClustersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListClusters\", {}).n(\"ECSClient\", \"ListClustersCommand\").f(void 0, void 0).ser(se_ListClustersCommand).de(de_ListClustersCommand).build() {\n static {\n __name(this, \"ListClustersCommand\");\n }\n};\n\n// src/commands/ListContainerInstancesCommand.ts\n\n\n\nvar ListContainerInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListContainerInstances\", {}).n(\"ECSClient\", \"ListContainerInstancesCommand\").f(void 0, void 0).ser(se_ListContainerInstancesCommand).de(de_ListContainerInstancesCommand).build() {\n static {\n __name(this, \"ListContainerInstancesCommand\");\n }\n};\n\n// src/commands/ListServiceDeploymentsCommand.ts\n\n\n\nvar ListServiceDeploymentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListServiceDeployments\", {}).n(\"ECSClient\", \"ListServiceDeploymentsCommand\").f(void 0, void 0).ser(se_ListServiceDeploymentsCommand).de(de_ListServiceDeploymentsCommand).build() {\n static {\n __name(this, \"ListServiceDeploymentsCommand\");\n }\n};\n\n// src/commands/ListServicesByNamespaceCommand.ts\n\n\n\nvar ListServicesByNamespaceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListServicesByNamespace\", {}).n(\"ECSClient\", \"ListServicesByNamespaceCommand\").f(void 0, void 0).ser(se_ListServicesByNamespaceCommand).de(de_ListServicesByNamespaceCommand).build() {\n static {\n __name(this, \"ListServicesByNamespaceCommand\");\n }\n};\n\n// src/commands/ListServicesCommand.ts\n\n\n\nvar ListServicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListServices\", {}).n(\"ECSClient\", \"ListServicesCommand\").f(void 0, void 0).ser(se_ListServicesCommand).de(de_ListServicesCommand).build() {\n static {\n __name(this, \"ListServicesCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTagsForResource\", {}).n(\"ECSClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTaskDefinitionFamiliesCommand.ts\n\n\n\nvar ListTaskDefinitionFamiliesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTaskDefinitionFamilies\", {}).n(\"ECSClient\", \"ListTaskDefinitionFamiliesCommand\").f(void 0, void 0).ser(se_ListTaskDefinitionFamiliesCommand).de(de_ListTaskDefinitionFamiliesCommand).build() {\n static {\n __name(this, \"ListTaskDefinitionFamiliesCommand\");\n }\n};\n\n// src/commands/ListTaskDefinitionsCommand.ts\n\n\n\nvar ListTaskDefinitionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTaskDefinitions\", {}).n(\"ECSClient\", \"ListTaskDefinitionsCommand\").f(void 0, void 0).ser(se_ListTaskDefinitionsCommand).de(de_ListTaskDefinitionsCommand).build() {\n static {\n __name(this, \"ListTaskDefinitionsCommand\");\n }\n};\n\n// src/commands/ListTasksCommand.ts\n\n\n\nvar ListTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"ListTasks\", {}).n(\"ECSClient\", \"ListTasksCommand\").f(void 0, void 0).ser(se_ListTasksCommand).de(de_ListTasksCommand).build() {\n static {\n __name(this, \"ListTasksCommand\");\n }\n};\n\n// src/commands/PutAccountSettingCommand.ts\n\n\n\nvar PutAccountSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutAccountSetting\", {}).n(\"ECSClient\", \"PutAccountSettingCommand\").f(void 0, void 0).ser(se_PutAccountSettingCommand).de(de_PutAccountSettingCommand).build() {\n static {\n __name(this, \"PutAccountSettingCommand\");\n }\n};\n\n// src/commands/PutAccountSettingDefaultCommand.ts\n\n\n\nvar PutAccountSettingDefaultCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutAccountSettingDefault\", {}).n(\"ECSClient\", \"PutAccountSettingDefaultCommand\").f(void 0, void 0).ser(se_PutAccountSettingDefaultCommand).de(de_PutAccountSettingDefaultCommand).build() {\n static {\n __name(this, \"PutAccountSettingDefaultCommand\");\n }\n};\n\n// src/commands/PutAttributesCommand.ts\n\n\n\nvar PutAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutAttributes\", {}).n(\"ECSClient\", \"PutAttributesCommand\").f(void 0, void 0).ser(se_PutAttributesCommand).de(de_PutAttributesCommand).build() {\n static {\n __name(this, \"PutAttributesCommand\");\n }\n};\n\n// src/commands/PutClusterCapacityProvidersCommand.ts\n\n\n\nvar PutClusterCapacityProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"PutClusterCapacityProviders\", {}).n(\"ECSClient\", \"PutClusterCapacityProvidersCommand\").f(void 0, void 0).ser(se_PutClusterCapacityProvidersCommand).de(de_PutClusterCapacityProvidersCommand).build() {\n static {\n __name(this, \"PutClusterCapacityProvidersCommand\");\n }\n};\n\n// src/commands/RegisterContainerInstanceCommand.ts\n\n\n\nvar RegisterContainerInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"RegisterContainerInstance\", {}).n(\"ECSClient\", \"RegisterContainerInstanceCommand\").f(void 0, void 0).ser(se_RegisterContainerInstanceCommand).de(de_RegisterContainerInstanceCommand).build() {\n static {\n __name(this, \"RegisterContainerInstanceCommand\");\n }\n};\n\n// src/commands/RegisterTaskDefinitionCommand.ts\n\n\n\nvar RegisterTaskDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"RegisterTaskDefinition\", {}).n(\"ECSClient\", \"RegisterTaskDefinitionCommand\").f(void 0, void 0).ser(se_RegisterTaskDefinitionCommand).de(de_RegisterTaskDefinitionCommand).build() {\n static {\n __name(this, \"RegisterTaskDefinitionCommand\");\n }\n};\n\n// src/commands/RunTaskCommand.ts\n\n\n\nvar RunTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"RunTask\", {}).n(\"ECSClient\", \"RunTaskCommand\").f(void 0, void 0).ser(se_RunTaskCommand).de(de_RunTaskCommand).build() {\n static {\n __name(this, \"RunTaskCommand\");\n }\n};\n\n// src/commands/StartTaskCommand.ts\n\n\n\nvar StartTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"StartTask\", {}).n(\"ECSClient\", \"StartTaskCommand\").f(void 0, void 0).ser(se_StartTaskCommand).de(de_StartTaskCommand).build() {\n static {\n __name(this, \"StartTaskCommand\");\n }\n};\n\n// src/commands/StopServiceDeploymentCommand.ts\n\n\n\nvar StopServiceDeploymentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"StopServiceDeployment\", {}).n(\"ECSClient\", \"StopServiceDeploymentCommand\").f(void 0, void 0).ser(se_StopServiceDeploymentCommand).de(de_StopServiceDeploymentCommand).build() {\n static {\n __name(this, \"StopServiceDeploymentCommand\");\n }\n};\n\n// src/commands/StopTaskCommand.ts\n\n\n\nvar StopTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"StopTask\", {}).n(\"ECSClient\", \"StopTaskCommand\").f(void 0, void 0).ser(se_StopTaskCommand).de(de_StopTaskCommand).build() {\n static {\n __name(this, \"StopTaskCommand\");\n }\n};\n\n// src/commands/SubmitAttachmentStateChangesCommand.ts\n\n\n\nvar SubmitAttachmentStateChangesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"SubmitAttachmentStateChanges\", {}).n(\"ECSClient\", \"SubmitAttachmentStateChangesCommand\").f(void 0, void 0).ser(se_SubmitAttachmentStateChangesCommand).de(de_SubmitAttachmentStateChangesCommand).build() {\n static {\n __name(this, \"SubmitAttachmentStateChangesCommand\");\n }\n};\n\n// src/commands/SubmitContainerStateChangeCommand.ts\n\n\n\nvar SubmitContainerStateChangeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"SubmitContainerStateChange\", {}).n(\"ECSClient\", \"SubmitContainerStateChangeCommand\").f(void 0, void 0).ser(se_SubmitContainerStateChangeCommand).de(de_SubmitContainerStateChangeCommand).build() {\n static {\n __name(this, \"SubmitContainerStateChangeCommand\");\n }\n};\n\n// src/commands/SubmitTaskStateChangeCommand.ts\n\n\n\nvar SubmitTaskStateChangeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"SubmitTaskStateChange\", {}).n(\"ECSClient\", \"SubmitTaskStateChangeCommand\").f(void 0, void 0).ser(se_SubmitTaskStateChangeCommand).de(de_SubmitTaskStateChangeCommand).build() {\n static {\n __name(this, \"SubmitTaskStateChangeCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"TagResource\", {}).n(\"ECSClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UntagResource\", {}).n(\"ECSClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateCapacityProviderCommand.ts\n\n\n\nvar UpdateCapacityProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateCapacityProvider\", {}).n(\"ECSClient\", \"UpdateCapacityProviderCommand\").f(void 0, void 0).ser(se_UpdateCapacityProviderCommand).de(de_UpdateCapacityProviderCommand).build() {\n static {\n __name(this, \"UpdateCapacityProviderCommand\");\n }\n};\n\n// src/commands/UpdateClusterCommand.ts\n\n\n\nvar UpdateClusterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateCluster\", {}).n(\"ECSClient\", \"UpdateClusterCommand\").f(void 0, void 0).ser(se_UpdateClusterCommand).de(de_UpdateClusterCommand).build() {\n static {\n __name(this, \"UpdateClusterCommand\");\n }\n};\n\n// src/commands/UpdateClusterSettingsCommand.ts\n\n\n\nvar UpdateClusterSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateClusterSettings\", {}).n(\"ECSClient\", \"UpdateClusterSettingsCommand\").f(void 0, void 0).ser(se_UpdateClusterSettingsCommand).de(de_UpdateClusterSettingsCommand).build() {\n static {\n __name(this, \"UpdateClusterSettingsCommand\");\n }\n};\n\n// src/commands/UpdateContainerAgentCommand.ts\n\n\n\nvar UpdateContainerAgentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateContainerAgent\", {}).n(\"ECSClient\", \"UpdateContainerAgentCommand\").f(void 0, void 0).ser(se_UpdateContainerAgentCommand).de(de_UpdateContainerAgentCommand).build() {\n static {\n __name(this, \"UpdateContainerAgentCommand\");\n }\n};\n\n// src/commands/UpdateContainerInstancesStateCommand.ts\n\n\n\nvar UpdateContainerInstancesStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateContainerInstancesState\", {}).n(\"ECSClient\", \"UpdateContainerInstancesStateCommand\").f(void 0, void 0).ser(se_UpdateContainerInstancesStateCommand).de(de_UpdateContainerInstancesStateCommand).build() {\n static {\n __name(this, \"UpdateContainerInstancesStateCommand\");\n }\n};\n\n// src/commands/UpdateServiceCommand.ts\n\n\n\nvar UpdateServiceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateService\", {}).n(\"ECSClient\", \"UpdateServiceCommand\").f(void 0, void 0).ser(se_UpdateServiceCommand).de(de_UpdateServiceCommand).build() {\n static {\n __name(this, \"UpdateServiceCommand\");\n }\n};\n\n// src/commands/UpdateServicePrimaryTaskSetCommand.ts\n\n\n\nvar UpdateServicePrimaryTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateServicePrimaryTaskSet\", {}).n(\"ECSClient\", \"UpdateServicePrimaryTaskSetCommand\").f(void 0, void 0).ser(se_UpdateServicePrimaryTaskSetCommand).de(de_UpdateServicePrimaryTaskSetCommand).build() {\n static {\n __name(this, \"UpdateServicePrimaryTaskSetCommand\");\n }\n};\n\n// src/commands/UpdateTaskProtectionCommand.ts\n\n\n\nvar UpdateTaskProtectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateTaskProtection\", {}).n(\"ECSClient\", \"UpdateTaskProtectionCommand\").f(void 0, void 0).ser(se_UpdateTaskProtectionCommand).de(de_UpdateTaskProtectionCommand).build() {\n static {\n __name(this, \"UpdateTaskProtectionCommand\");\n }\n};\n\n// src/commands/UpdateTaskSetCommand.ts\n\n\n\nvar UpdateTaskSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonEC2ContainerServiceV20141113\", \"UpdateTaskSet\", {}).n(\"ECSClient\", \"UpdateTaskSetCommand\").f(void 0, void 0).ser(se_UpdateTaskSetCommand).de(de_UpdateTaskSetCommand).build() {\n static {\n __name(this, \"UpdateTaskSetCommand\");\n }\n};\n\n// src/ECS.ts\nvar commands = {\n CreateCapacityProviderCommand,\n CreateClusterCommand,\n CreateServiceCommand,\n CreateTaskSetCommand,\n DeleteAccountSettingCommand,\n DeleteAttributesCommand,\n DeleteCapacityProviderCommand,\n DeleteClusterCommand,\n DeleteServiceCommand,\n DeleteTaskDefinitionsCommand,\n DeleteTaskSetCommand,\n DeregisterContainerInstanceCommand,\n DeregisterTaskDefinitionCommand,\n DescribeCapacityProvidersCommand,\n DescribeClustersCommand,\n DescribeContainerInstancesCommand,\n DescribeServiceDeploymentsCommand,\n DescribeServiceRevisionsCommand,\n DescribeServicesCommand,\n DescribeTaskDefinitionCommand,\n DescribeTasksCommand,\n DescribeTaskSetsCommand,\n DiscoverPollEndpointCommand,\n ExecuteCommandCommand,\n GetTaskProtectionCommand,\n ListAccountSettingsCommand,\n ListAttributesCommand,\n ListClustersCommand,\n ListContainerInstancesCommand,\n ListServiceDeploymentsCommand,\n ListServicesCommand,\n ListServicesByNamespaceCommand,\n ListTagsForResourceCommand,\n ListTaskDefinitionFamiliesCommand,\n ListTaskDefinitionsCommand,\n ListTasksCommand,\n PutAccountSettingCommand,\n PutAccountSettingDefaultCommand,\n PutAttributesCommand,\n PutClusterCapacityProvidersCommand,\n RegisterContainerInstanceCommand,\n RegisterTaskDefinitionCommand,\n RunTaskCommand,\n StartTaskCommand,\n StopServiceDeploymentCommand,\n StopTaskCommand,\n SubmitAttachmentStateChangesCommand,\n SubmitContainerStateChangeCommand,\n SubmitTaskStateChangeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateCapacityProviderCommand,\n UpdateClusterCommand,\n UpdateClusterSettingsCommand,\n UpdateContainerAgentCommand,\n UpdateContainerInstancesStateCommand,\n UpdateServiceCommand,\n UpdateServicePrimaryTaskSetCommand,\n UpdateTaskProtectionCommand,\n UpdateTaskSetCommand\n};\nvar ECS = class extends ECSClient {\n static {\n __name(this, \"ECS\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, ECS);\n\n// src/pagination/ListAccountSettingsPaginator.ts\n\nvar paginateListAccountSettings = (0, import_core.createPaginator)(ECSClient, ListAccountSettingsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAttributesPaginator.ts\n\nvar paginateListAttributes = (0, import_core.createPaginator)(ECSClient, ListAttributesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListClustersPaginator.ts\n\nvar paginateListClusters = (0, import_core.createPaginator)(ECSClient, ListClustersCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListContainerInstancesPaginator.ts\n\nvar paginateListContainerInstances = (0, import_core.createPaginator)(ECSClient, ListContainerInstancesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListServicesByNamespacePaginator.ts\n\nvar paginateListServicesByNamespace = (0, import_core.createPaginator)(ECSClient, ListServicesByNamespaceCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListServicesPaginator.ts\n\nvar paginateListServices = (0, import_core.createPaginator)(ECSClient, ListServicesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTaskDefinitionFamiliesPaginator.ts\n\nvar paginateListTaskDefinitionFamilies = (0, import_core.createPaginator)(ECSClient, ListTaskDefinitionFamiliesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTaskDefinitionsPaginator.ts\n\nvar paginateListTaskDefinitions = (0, import_core.createPaginator)(ECSClient, ListTaskDefinitionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListTasksPaginator.ts\n\nvar paginateListTasks = (0, import_core.createPaginator)(ECSClient, ListTasksCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/waiters/waitForServicesInactive.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeServicesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.failures);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.reason;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"MISSING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.services);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"INACTIVE\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForServicesInactive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForServicesInactive\");\nvar waitUntilServicesInactive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilServicesInactive\");\n\n// src/waiters/waitForServicesStable.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeServicesCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.failures);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.reason;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"MISSING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.services);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"DRAINING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.services);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.status;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"INACTIVE\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const filterRes_2 = result.services.filter((element_1) => {\n return !(element_1.deployments.length == 1 && element_1.runningCount == element_1.desiredCount);\n });\n return filterRes_2.length == 0;\n }, \"returnComparator\");\n if (returnComparator() == true) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForServicesStable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForServicesStable\");\nvar waitUntilServicesStable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilServicesStable\");\n\n// src/waiters/waitForTasksRunning.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.tasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.lastStatus;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"STOPPED\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.failures);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.reason;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"MISSING\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.tasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.lastStatus;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"RUNNING\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTasksRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForTasksRunning\");\nvar waitUntilTasksRunning = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTasksRunning\");\n\n// src/waiters/waitForTasksStopped.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTasksCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.tasks);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.lastStatus;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"STOPPED\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTasksStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForTasksStopped\");\nvar waitUntilTasksStopped = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 6, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTasksStopped\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ECSServiceException,\n __Client,\n ECSClient,\n ECS,\n $Command,\n CreateCapacityProviderCommand,\n CreateClusterCommand,\n CreateServiceCommand,\n CreateTaskSetCommand,\n DeleteAccountSettingCommand,\n DeleteAttributesCommand,\n DeleteCapacityProviderCommand,\n DeleteClusterCommand,\n DeleteServiceCommand,\n DeleteTaskDefinitionsCommand,\n DeleteTaskSetCommand,\n DeregisterContainerInstanceCommand,\n DeregisterTaskDefinitionCommand,\n DescribeCapacityProvidersCommand,\n DescribeClustersCommand,\n DescribeContainerInstancesCommand,\n DescribeServiceDeploymentsCommand,\n DescribeServiceRevisionsCommand,\n DescribeServicesCommand,\n DescribeTaskDefinitionCommand,\n DescribeTaskSetsCommand,\n DescribeTasksCommand,\n DiscoverPollEndpointCommand,\n ExecuteCommandCommand,\n GetTaskProtectionCommand,\n ListAccountSettingsCommand,\n ListAttributesCommand,\n ListClustersCommand,\n ListContainerInstancesCommand,\n ListServiceDeploymentsCommand,\n ListServicesByNamespaceCommand,\n ListServicesCommand,\n ListTagsForResourceCommand,\n ListTaskDefinitionFamiliesCommand,\n ListTaskDefinitionsCommand,\n ListTasksCommand,\n PutAccountSettingCommand,\n PutAccountSettingDefaultCommand,\n PutAttributesCommand,\n PutClusterCapacityProvidersCommand,\n RegisterContainerInstanceCommand,\n RegisterTaskDefinitionCommand,\n RunTaskCommand,\n StartTaskCommand,\n StopServiceDeploymentCommand,\n StopTaskCommand,\n SubmitAttachmentStateChangesCommand,\n SubmitContainerStateChangeCommand,\n SubmitTaskStateChangeCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateCapacityProviderCommand,\n UpdateClusterCommand,\n UpdateClusterSettingsCommand,\n UpdateContainerAgentCommand,\n UpdateContainerInstancesStateCommand,\n UpdateServiceCommand,\n UpdateServicePrimaryTaskSetCommand,\n UpdateTaskProtectionCommand,\n UpdateTaskSetCommand,\n paginateListAccountSettings,\n paginateListAttributes,\n paginateListClusters,\n paginateListContainerInstances,\n paginateListServicesByNamespace,\n paginateListServices,\n paginateListTaskDefinitionFamilies,\n paginateListTaskDefinitions,\n paginateListTasks,\n waitForServicesInactive,\n waitUntilServicesInactive,\n waitForServicesStable,\n waitUntilServicesStable,\n waitForTasksRunning,\n waitUntilTasksRunning,\n waitForTasksStopped,\n waitUntilTasksStopped,\n AccessDeniedException,\n AgentUpdateStatus,\n ClientException,\n ManagedDraining,\n ManagedScalingStatus,\n ManagedTerminationProtection,\n CapacityProviderStatus,\n CapacityProviderUpdateStatus,\n InvalidParameterException,\n LimitExceededException,\n ServerException,\n UpdateInProgressException,\n ExecuteCommandLogging,\n ClusterSettingName,\n NamespaceNotFoundException,\n ClusterNotFoundException,\n AvailabilityZoneRebalancing,\n DeploymentControllerType,\n LaunchType,\n AssignPublicIp,\n PlacementConstraintType,\n PlacementStrategyType,\n PropagateTags,\n SchedulingStrategy,\n LogDriver,\n TaskFilesystemType,\n EBSResourceType,\n DeploymentRolloutState,\n ScaleUnit,\n StabilityStatus,\n PlatformTaskDefinitionIncompatibilityException,\n PlatformUnknownException,\n UnsupportedFeatureException,\n ServiceNotActiveException,\n ServiceNotFoundException,\n SettingName,\n SettingType,\n TargetType,\n TargetNotFoundException,\n ClusterContainsContainerInstancesException,\n ClusterContainsServicesException,\n ClusterContainsTasksException,\n Compatibility,\n ContainerCondition,\n EnvironmentFileType,\n FirelensConfigurationType,\n DeviceCgroupPermission,\n ApplicationProtocol,\n TransportProtocol,\n ResourceType,\n UlimitName,\n VersionConsistency,\n IpcMode,\n NetworkMode,\n PidMode,\n TaskDefinitionPlacementConstraintType,\n ProxyConfigurationType,\n CPUArchitecture,\n OSFamily,\n TaskDefinitionStatus,\n Scope,\n EFSAuthorizationConfigIAM,\n EFSTransitEncryption,\n TaskSetNotFoundException,\n InstanceHealthCheckState,\n InstanceHealthCheckType,\n CapacityProviderField,\n ClusterField,\n ContainerInstanceField,\n ServiceDeploymentRollbackMonitorsStatus,\n ServiceDeploymentStatus,\n ServiceField,\n TaskDefinitionField,\n TaskField,\n Connectivity,\n HealthStatus,\n ManagedAgentName,\n TaskStopCode,\n TaskSetField,\n TargetNotConnectedException,\n ResourceNotFoundException,\n ContainerInstanceStatus,\n TaskDefinitionFamilyStatus,\n SortOrder,\n DesiredStatus,\n AttributeLimitExceededException,\n ResourceInUseException,\n PlatformDeviceType,\n BlockedException,\n ConflictException,\n ServiceDeploymentNotFoundException,\n StopServiceDeploymentStopType,\n SessionFilterSensitiveLog,\n ExecuteCommandResponseFilterSensitiveLog,\n MissingVersionException,\n NoUpdateAvailableException\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-11-13\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultECSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"ECS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultElasticLoadBalancingV2HttpAuthSchemeProvider = exports.defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider = defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"elasticloadbalancing\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultElasticLoadBalancingV2HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultElasticLoadBalancingV2HttpAuthSchemeProvider = defaultElasticLoadBalancingV2HttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://elasticloadbalancing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://elasticloadbalancing.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://elasticloadbalancing-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://elasticloadbalancing.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://elasticloadbalancing.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ALPNPolicyNotSupportedException: () => ALPNPolicyNotSupportedException,\n ActionTypeEnum: () => ActionTypeEnum,\n AddListenerCertificatesCommand: () => AddListenerCertificatesCommand,\n AddTagsCommand: () => AddTagsCommand,\n AddTrustStoreRevocationsCommand: () => AddTrustStoreRevocationsCommand,\n AdvertiseTrustStoreCaNamesEnum: () => AdvertiseTrustStoreCaNamesEnum,\n AllocationIdNotFoundException: () => AllocationIdNotFoundException,\n AnomalyResultEnum: () => AnomalyResultEnum,\n AuthenticateCognitoActionConditionalBehaviorEnum: () => AuthenticateCognitoActionConditionalBehaviorEnum,\n AuthenticateOidcActionConditionalBehaviorEnum: () => AuthenticateOidcActionConditionalBehaviorEnum,\n AvailabilityZoneNotSupportedException: () => AvailabilityZoneNotSupportedException,\n CaCertificatesBundleNotFoundException: () => CaCertificatesBundleNotFoundException,\n CapacityDecreaseRequestsLimitExceededException: () => CapacityDecreaseRequestsLimitExceededException,\n CapacityReservationPendingException: () => CapacityReservationPendingException,\n CapacityReservationStateEnum: () => CapacityReservationStateEnum,\n CapacityUnitsLimitExceededException: () => CapacityUnitsLimitExceededException,\n CertificateNotFoundException: () => CertificateNotFoundException,\n CreateListenerCommand: () => CreateListenerCommand,\n CreateLoadBalancerCommand: () => CreateLoadBalancerCommand,\n CreateRuleCommand: () => CreateRuleCommand,\n CreateTargetGroupCommand: () => CreateTargetGroupCommand,\n CreateTrustStoreCommand: () => CreateTrustStoreCommand,\n DeleteAssociationSameAccountException: () => DeleteAssociationSameAccountException,\n DeleteListenerCommand: () => DeleteListenerCommand,\n DeleteLoadBalancerCommand: () => DeleteLoadBalancerCommand,\n DeleteRuleCommand: () => DeleteRuleCommand,\n DeleteSharedTrustStoreAssociationCommand: () => DeleteSharedTrustStoreAssociationCommand,\n DeleteTargetGroupCommand: () => DeleteTargetGroupCommand,\n DeleteTrustStoreCommand: () => DeleteTrustStoreCommand,\n DeregisterTargetsCommand: () => DeregisterTargetsCommand,\n DescribeAccountLimitsCommand: () => DescribeAccountLimitsCommand,\n DescribeCapacityReservationCommand: () => DescribeCapacityReservationCommand,\n DescribeListenerAttributesCommand: () => DescribeListenerAttributesCommand,\n DescribeListenerCertificatesCommand: () => DescribeListenerCertificatesCommand,\n DescribeListenersCommand: () => DescribeListenersCommand,\n DescribeLoadBalancerAttributesCommand: () => DescribeLoadBalancerAttributesCommand,\n DescribeLoadBalancersCommand: () => DescribeLoadBalancersCommand,\n DescribeRulesCommand: () => DescribeRulesCommand,\n DescribeSSLPoliciesCommand: () => DescribeSSLPoliciesCommand,\n DescribeTagsCommand: () => DescribeTagsCommand,\n DescribeTargetGroupAttributesCommand: () => DescribeTargetGroupAttributesCommand,\n DescribeTargetGroupsCommand: () => DescribeTargetGroupsCommand,\n DescribeTargetHealthCommand: () => DescribeTargetHealthCommand,\n DescribeTargetHealthInputIncludeEnum: () => DescribeTargetHealthInputIncludeEnum,\n DescribeTrustStoreAssociationsCommand: () => DescribeTrustStoreAssociationsCommand,\n DescribeTrustStoreRevocationsCommand: () => DescribeTrustStoreRevocationsCommand,\n DescribeTrustStoresCommand: () => DescribeTrustStoresCommand,\n DuplicateListenerException: () => DuplicateListenerException,\n DuplicateLoadBalancerNameException: () => DuplicateLoadBalancerNameException,\n DuplicateTagKeysException: () => DuplicateTagKeysException,\n DuplicateTargetGroupNameException: () => DuplicateTargetGroupNameException,\n DuplicateTrustStoreNameException: () => DuplicateTrustStoreNameException,\n ElasticLoadBalancingV2: () => ElasticLoadBalancingV2,\n ElasticLoadBalancingV2Client: () => ElasticLoadBalancingV2Client,\n ElasticLoadBalancingV2ServiceException: () => ElasticLoadBalancingV2ServiceException,\n EnablePrefixForIpv6SourceNatEnum: () => EnablePrefixForIpv6SourceNatEnum,\n EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum: () => EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum,\n GetResourcePolicyCommand: () => GetResourcePolicyCommand,\n GetTrustStoreCaCertificatesBundleCommand: () => GetTrustStoreCaCertificatesBundleCommand,\n GetTrustStoreRevocationContentCommand: () => GetTrustStoreRevocationContentCommand,\n HealthUnavailableException: () => HealthUnavailableException,\n IncompatibleProtocolsException: () => IncompatibleProtocolsException,\n InsufficientCapacityException: () => InsufficientCapacityException,\n InvalidCaCertificatesBundleException: () => InvalidCaCertificatesBundleException,\n InvalidConfigurationRequestException: () => InvalidConfigurationRequestException,\n InvalidLoadBalancerActionException: () => InvalidLoadBalancerActionException,\n InvalidRevocationContentException: () => InvalidRevocationContentException,\n InvalidSchemeException: () => InvalidSchemeException,\n InvalidSecurityGroupException: () => InvalidSecurityGroupException,\n InvalidSubnetException: () => InvalidSubnetException,\n InvalidTargetException: () => InvalidTargetException,\n IpAddressType: () => IpAddressType,\n ListenerNotFoundException: () => ListenerNotFoundException,\n LoadBalancerNotFoundException: () => LoadBalancerNotFoundException,\n LoadBalancerSchemeEnum: () => LoadBalancerSchemeEnum,\n LoadBalancerStateEnum: () => LoadBalancerStateEnum,\n LoadBalancerTypeEnum: () => LoadBalancerTypeEnum,\n MitigationInEffectEnum: () => MitigationInEffectEnum,\n ModifyCapacityReservationCommand: () => ModifyCapacityReservationCommand,\n ModifyIpPoolsCommand: () => ModifyIpPoolsCommand,\n ModifyListenerAttributesCommand: () => ModifyListenerAttributesCommand,\n ModifyListenerCommand: () => ModifyListenerCommand,\n ModifyLoadBalancerAttributesCommand: () => ModifyLoadBalancerAttributesCommand,\n ModifyRuleCommand: () => ModifyRuleCommand,\n ModifyTargetGroupAttributesCommand: () => ModifyTargetGroupAttributesCommand,\n ModifyTargetGroupCommand: () => ModifyTargetGroupCommand,\n ModifyTrustStoreCommand: () => ModifyTrustStoreCommand,\n OperationNotPermittedException: () => OperationNotPermittedException,\n PriorRequestNotCompleteException: () => PriorRequestNotCompleteException,\n PriorityInUseException: () => PriorityInUseException,\n ProtocolEnum: () => ProtocolEnum,\n RedirectActionStatusCodeEnum: () => RedirectActionStatusCodeEnum,\n RegisterTargetsCommand: () => RegisterTargetsCommand,\n RemoveIpamPoolEnum: () => RemoveIpamPoolEnum,\n RemoveListenerCertificatesCommand: () => RemoveListenerCertificatesCommand,\n RemoveTagsCommand: () => RemoveTagsCommand,\n RemoveTrustStoreRevocationsCommand: () => RemoveTrustStoreRevocationsCommand,\n ResourceInUseException: () => ResourceInUseException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RevocationContentNotFoundException: () => RevocationContentNotFoundException,\n RevocationIdNotFoundException: () => RevocationIdNotFoundException,\n RevocationType: () => RevocationType,\n RuleNotFoundException: () => RuleNotFoundException,\n SSLPolicyNotFoundException: () => SSLPolicyNotFoundException,\n SetIpAddressTypeCommand: () => SetIpAddressTypeCommand,\n SetRulePrioritiesCommand: () => SetRulePrioritiesCommand,\n SetSecurityGroupsCommand: () => SetSecurityGroupsCommand,\n SetSubnetsCommand: () => SetSubnetsCommand,\n SubnetNotFoundException: () => SubnetNotFoundException,\n TargetAdministrativeOverrideReasonEnum: () => TargetAdministrativeOverrideReasonEnum,\n TargetAdministrativeOverrideStateEnum: () => TargetAdministrativeOverrideStateEnum,\n TargetGroupAssociationLimitException: () => TargetGroupAssociationLimitException,\n TargetGroupIpAddressTypeEnum: () => TargetGroupIpAddressTypeEnum,\n TargetGroupNotFoundException: () => TargetGroupNotFoundException,\n TargetHealthReasonEnum: () => TargetHealthReasonEnum,\n TargetHealthStateEnum: () => TargetHealthStateEnum,\n TargetTypeEnum: () => TargetTypeEnum,\n TooManyActionsException: () => TooManyActionsException,\n TooManyCertificatesException: () => TooManyCertificatesException,\n TooManyListenersException: () => TooManyListenersException,\n TooManyLoadBalancersException: () => TooManyLoadBalancersException,\n TooManyRegistrationsForTargetIdException: () => TooManyRegistrationsForTargetIdException,\n TooManyRulesException: () => TooManyRulesException,\n TooManyTagsException: () => TooManyTagsException,\n TooManyTargetGroupsException: () => TooManyTargetGroupsException,\n TooManyTargetsException: () => TooManyTargetsException,\n TooManyTrustStoreRevocationEntriesException: () => TooManyTrustStoreRevocationEntriesException,\n TooManyTrustStoresException: () => TooManyTrustStoresException,\n TooManyUniqueTargetGroupsPerLoadBalancerException: () => TooManyUniqueTargetGroupsPerLoadBalancerException,\n TrustStoreAssociationNotFoundException: () => TrustStoreAssociationNotFoundException,\n TrustStoreAssociationStatusEnum: () => TrustStoreAssociationStatusEnum,\n TrustStoreInUseException: () => TrustStoreInUseException,\n TrustStoreNotFoundException: () => TrustStoreNotFoundException,\n TrustStoreNotReadyException: () => TrustStoreNotReadyException,\n TrustStoreStatus: () => TrustStoreStatus,\n UnsupportedProtocolException: () => UnsupportedProtocolException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeListenerCertificates: () => paginateDescribeListenerCertificates,\n paginateDescribeListeners: () => paginateDescribeListeners,\n paginateDescribeLoadBalancers: () => paginateDescribeLoadBalancers,\n paginateDescribeRules: () => paginateDescribeRules,\n paginateDescribeTargetGroups: () => paginateDescribeTargetGroups,\n paginateDescribeTrustStoreAssociations: () => paginateDescribeTrustStoreAssociations,\n paginateDescribeTrustStoreRevocations: () => paginateDescribeTrustStoreRevocations,\n paginateDescribeTrustStores: () => paginateDescribeTrustStores,\n waitForLoadBalancerAvailable: () => waitForLoadBalancerAvailable,\n waitForLoadBalancerExists: () => waitForLoadBalancerExists,\n waitForLoadBalancersDeleted: () => waitForLoadBalancersDeleted,\n waitForTargetDeregistered: () => waitForTargetDeregistered,\n waitForTargetInService: () => waitForTargetInService,\n waitUntilLoadBalancerAvailable: () => waitUntilLoadBalancerAvailable,\n waitUntilLoadBalancerExists: () => waitUntilLoadBalancerExists,\n waitUntilLoadBalancersDeleted: () => waitUntilLoadBalancersDeleted,\n waitUntilTargetDeregistered: () => waitUntilTargetDeregistered,\n waitUntilTargetInService: () => waitUntilTargetInService\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/ElasticLoadBalancingV2Client.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"elasticloadbalancing\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/ElasticLoadBalancingV2Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/ElasticLoadBalancingV2Client.ts\nvar ElasticLoadBalancingV2Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"ElasticLoadBalancingV2Client\");\n }\n /**\n * The resolved configuration of ElasticLoadBalancingV2Client class. This is resolved and normalized from the {@link ElasticLoadBalancingV2ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultElasticLoadBalancingV2HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/ElasticLoadBalancingV2.ts\n\n\n// src/commands/AddListenerCertificatesCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_query.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/ElasticLoadBalancingV2ServiceException.ts\n\nvar ElasticLoadBalancingV2ServiceException = class _ElasticLoadBalancingV2ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"ElasticLoadBalancingV2ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _ElasticLoadBalancingV2ServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AuthenticateCognitoActionConditionalBehaviorEnum = {\n ALLOW: \"allow\",\n AUTHENTICATE: \"authenticate\",\n DENY: \"deny\"\n};\nvar AuthenticateOidcActionConditionalBehaviorEnum = {\n ALLOW: \"allow\",\n AUTHENTICATE: \"authenticate\",\n DENY: \"deny\"\n};\nvar RedirectActionStatusCodeEnum = {\n HTTP_301: \"HTTP_301\",\n HTTP_302: \"HTTP_302\"\n};\nvar ActionTypeEnum = {\n AUTHENTICATE_COGNITO: \"authenticate-cognito\",\n AUTHENTICATE_OIDC: \"authenticate-oidc\",\n FIXED_RESPONSE: \"fixed-response\",\n FORWARD: \"forward\",\n REDIRECT: \"redirect\"\n};\nvar CertificateNotFoundException = class _CertificateNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CertificateNotFoundException\");\n }\n name = \"CertificateNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CertificateNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CertificateNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ListenerNotFoundException = class _ListenerNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ListenerNotFoundException\");\n }\n name = \"ListenerNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ListenerNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ListenerNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyCertificatesException = class _TooManyCertificatesException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyCertificatesException\");\n }\n name = \"TooManyCertificatesException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyCertificatesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyCertificatesException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DuplicateTagKeysException = class _DuplicateTagKeysException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateTagKeysException\");\n }\n name = \"DuplicateTagKeysException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateTagKeysException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateTagKeysException.prototype);\n this.Message = opts.Message;\n }\n};\nvar LoadBalancerNotFoundException = class _LoadBalancerNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"LoadBalancerNotFoundException\");\n }\n name = \"LoadBalancerNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LoadBalancerNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LoadBalancerNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RuleNotFoundException = class _RuleNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"RuleNotFoundException\");\n }\n name = \"RuleNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RuleNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RuleNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetGroupNotFoundException = class _TargetGroupNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TargetGroupNotFoundException\");\n }\n name = \"TargetGroupNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetGroupNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetGroupNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTagsException = class _TooManyTagsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTagsException\");\n }\n name = \"TooManyTagsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreNotFoundException = class _TrustStoreNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreNotFoundException\");\n }\n name = \"TrustStoreNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RevocationType = {\n CRL: \"CRL\"\n};\nvar InvalidRevocationContentException = class _InvalidRevocationContentException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidRevocationContentException\");\n }\n name = \"InvalidRevocationContentException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRevocationContentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRevocationContentException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RevocationContentNotFoundException = class _RevocationContentNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"RevocationContentNotFoundException\");\n }\n name = \"RevocationContentNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RevocationContentNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RevocationContentNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTrustStoreRevocationEntriesException = class _TooManyTrustStoreRevocationEntriesException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTrustStoreRevocationEntriesException\");\n }\n name = \"TooManyTrustStoreRevocationEntriesException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrustStoreRevocationEntriesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrustStoreRevocationEntriesException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetAdministrativeOverrideReasonEnum = {\n INTERNAL_ERROR: \"AdministrativeOverride.Unknown\",\n NO_OVERRIDE_ENGAGED: \"AdministrativeOverride.NoOverride\",\n ZONAL_SHIFT_DELEGATED_TO_DNS: \"AdministrativeOverride.ZonalShiftDelegatedToDns\",\n ZONAL_SHIFT_ENGAGED: \"AdministrativeOverride.ZonalShiftActive\"\n};\nvar TargetAdministrativeOverrideStateEnum = {\n NO_OVERRIDE: \"no_override\",\n UNKNOWN: \"unknown\",\n ZONAL_SHIFT_ACTIVE: \"zonal_shift_active\",\n ZONAL_SHIFT_DELEGATED_TO_DNS: \"zonal_shift_delegated_to_dns\"\n};\nvar AdvertiseTrustStoreCaNamesEnum = {\n off: \"off\",\n on: \"on\"\n};\nvar AllocationIdNotFoundException = class _AllocationIdNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"AllocationIdNotFoundException\");\n }\n name = \"AllocationIdNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AllocationIdNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AllocationIdNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ALPNPolicyNotSupportedException = class _ALPNPolicyNotSupportedException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ALPNPolicyNotSupportedException\");\n }\n name = \"ALPNPolicyNotSupportedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ALPNPolicyNotSupportedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ALPNPolicyNotSupportedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar MitigationInEffectEnum = {\n NO: \"no\",\n YES: \"yes\"\n};\nvar AnomalyResultEnum = {\n ANOMALOUS: \"anomalous\",\n NORMAL: \"normal\"\n};\nvar AvailabilityZoneNotSupportedException = class _AvailabilityZoneNotSupportedException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"AvailabilityZoneNotSupportedException\");\n }\n name = \"AvailabilityZoneNotSupportedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AvailabilityZoneNotSupportedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AvailabilityZoneNotSupportedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CaCertificatesBundleNotFoundException = class _CaCertificatesBundleNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CaCertificatesBundleNotFoundException\");\n }\n name = \"CaCertificatesBundleNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CaCertificatesBundleNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CaCertificatesBundleNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CapacityDecreaseRequestsLimitExceededException = class _CapacityDecreaseRequestsLimitExceededException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CapacityDecreaseRequestsLimitExceededException\");\n }\n name = \"CapacityDecreaseRequestsLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CapacityDecreaseRequestsLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CapacityDecreaseRequestsLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CapacityReservationPendingException = class _CapacityReservationPendingException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CapacityReservationPendingException\");\n }\n name = \"CapacityReservationPendingException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CapacityReservationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CapacityReservationPendingException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CapacityReservationStateEnum = {\n FAILED: \"failed\",\n PENDING: \"pending\",\n PROVISIONED: \"provisioned\",\n REBALANCING: \"rebalancing\"\n};\nvar CapacityUnitsLimitExceededException = class _CapacityUnitsLimitExceededException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"CapacityUnitsLimitExceededException\");\n }\n name = \"CapacityUnitsLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CapacityUnitsLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CapacityUnitsLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreAssociationStatusEnum = {\n ACTIVE: \"active\",\n REMOVED: \"removed\"\n};\nvar ProtocolEnum = {\n GENEVE: \"GENEVE\",\n HTTP: \"HTTP\",\n HTTPS: \"HTTPS\",\n TCP: \"TCP\",\n TCP_UDP: \"TCP_UDP\",\n TLS: \"TLS\",\n UDP: \"UDP\"\n};\nvar DuplicateListenerException = class _DuplicateListenerException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateListenerException\");\n }\n name = \"DuplicateListenerException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateListenerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateListenerException.prototype);\n this.Message = opts.Message;\n }\n};\nvar IncompatibleProtocolsException = class _IncompatibleProtocolsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"IncompatibleProtocolsException\");\n }\n name = \"IncompatibleProtocolsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncompatibleProtocolsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncompatibleProtocolsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidConfigurationRequestException = class _InvalidConfigurationRequestException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidConfigurationRequestException\");\n }\n name = \"InvalidConfigurationRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidConfigurationRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidConfigurationRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidLoadBalancerActionException = class _InvalidLoadBalancerActionException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidLoadBalancerActionException\");\n }\n name = \"InvalidLoadBalancerActionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLoadBalancerActionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLoadBalancerActionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SSLPolicyNotFoundException = class _SSLPolicyNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"SSLPolicyNotFoundException\");\n }\n name = \"SSLPolicyNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SSLPolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SSLPolicyNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetGroupAssociationLimitException = class _TargetGroupAssociationLimitException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TargetGroupAssociationLimitException\");\n }\n name = \"TargetGroupAssociationLimitException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetGroupAssociationLimitException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetGroupAssociationLimitException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyActionsException = class _TooManyActionsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyActionsException\");\n }\n name = \"TooManyActionsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyActionsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyActionsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyListenersException = class _TooManyListenersException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyListenersException\");\n }\n name = \"TooManyListenersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyListenersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyListenersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyRegistrationsForTargetIdException = class _TooManyRegistrationsForTargetIdException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyRegistrationsForTargetIdException\");\n }\n name = \"TooManyRegistrationsForTargetIdException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRegistrationsForTargetIdException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRegistrationsForTargetIdException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTargetsException = class _TooManyTargetsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTargetsException\");\n }\n name = \"TooManyTargetsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTargetsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTargetsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyUniqueTargetGroupsPerLoadBalancerException = class _TooManyUniqueTargetGroupsPerLoadBalancerException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyUniqueTargetGroupsPerLoadBalancerException\");\n }\n name = \"TooManyUniqueTargetGroupsPerLoadBalancerException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyUniqueTargetGroupsPerLoadBalancerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyUniqueTargetGroupsPerLoadBalancerException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreNotReadyException = class _TrustStoreNotReadyException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreNotReadyException\");\n }\n name = \"TrustStoreNotReadyException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreNotReadyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreNotReadyException.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedProtocolException = class _UnsupportedProtocolException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"UnsupportedProtocolException\");\n }\n name = \"UnsupportedProtocolException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedProtocolException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedProtocolException.prototype);\n this.Message = opts.Message;\n }\n};\nvar EnablePrefixForIpv6SourceNatEnum = {\n OFF: \"off\",\n ON: \"on\"\n};\nvar IpAddressType = {\n DUALSTACK: \"dualstack\",\n DUALSTACK_WITHOUT_PUBLIC_IPV4: \"dualstack-without-public-ipv4\",\n IPV4: \"ipv4\"\n};\nvar LoadBalancerSchemeEnum = {\n INTERNAL: \"internal\",\n INTERNET_FACING: \"internet-facing\"\n};\nvar LoadBalancerTypeEnum = {\n APPLICATION: \"application\",\n GATEWAY: \"gateway\",\n NETWORK: \"network\"\n};\nvar LoadBalancerStateEnum = {\n ACTIVE: \"active\",\n ACTIVE_IMPAIRED: \"active_impaired\",\n FAILED: \"failed\",\n PROVISIONING: \"provisioning\"\n};\nvar DuplicateLoadBalancerNameException = class _DuplicateLoadBalancerNameException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateLoadBalancerNameException\");\n }\n name = \"DuplicateLoadBalancerNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateLoadBalancerNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateLoadBalancerNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidSchemeException = class _InvalidSchemeException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidSchemeException\");\n }\n name = \"InvalidSchemeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSchemeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSchemeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidSecurityGroupException = class _InvalidSecurityGroupException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidSecurityGroupException\");\n }\n name = \"InvalidSecurityGroupException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSecurityGroupException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSecurityGroupException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidSubnetException = class _InvalidSubnetException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidSubnetException\");\n }\n name = \"InvalidSubnetException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSubnetException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSubnetException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OperationNotPermittedException = class _OperationNotPermittedException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"OperationNotPermittedException\");\n }\n name = \"OperationNotPermittedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OperationNotPermittedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OperationNotPermittedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceInUseException = class _ResourceInUseException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SubnetNotFoundException = class _SubnetNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"SubnetNotFoundException\");\n }\n name = \"SubnetNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SubnetNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SubnetNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyLoadBalancersException = class _TooManyLoadBalancersException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyLoadBalancersException\");\n }\n name = \"TooManyLoadBalancersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyLoadBalancersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyLoadBalancersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PriorityInUseException = class _PriorityInUseException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"PriorityInUseException\");\n }\n name = \"PriorityInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PriorityInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PriorityInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyRulesException = class _TooManyRulesException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyRulesException\");\n }\n name = \"TooManyRulesException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRulesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRulesException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTargetGroupsException = class _TooManyTargetGroupsException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTargetGroupsException\");\n }\n name = \"TooManyTargetGroupsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTargetGroupsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTargetGroupsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetGroupIpAddressTypeEnum = {\n IPV4: \"ipv4\",\n IPV6: \"ipv6\"\n};\nvar TargetTypeEnum = {\n ALB: \"alb\",\n INSTANCE: \"instance\",\n IP: \"ip\",\n LAMBDA: \"lambda\"\n};\nvar DuplicateTargetGroupNameException = class _DuplicateTargetGroupNameException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateTargetGroupNameException\");\n }\n name = \"DuplicateTargetGroupNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateTargetGroupNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateTargetGroupNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreStatus = {\n ACTIVE: \"ACTIVE\",\n CREATING: \"CREATING\"\n};\nvar DuplicateTrustStoreNameException = class _DuplicateTrustStoreNameException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DuplicateTrustStoreNameException\");\n }\n name = \"DuplicateTrustStoreNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateTrustStoreNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateTrustStoreNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidCaCertificatesBundleException = class _InvalidCaCertificatesBundleException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidCaCertificatesBundleException\");\n }\n name = \"InvalidCaCertificatesBundleException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCaCertificatesBundleException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCaCertificatesBundleException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TooManyTrustStoresException = class _TooManyTrustStoresException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TooManyTrustStoresException\");\n }\n name = \"TooManyTrustStoresException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrustStoresException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrustStoresException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DeleteAssociationSameAccountException = class _DeleteAssociationSameAccountException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"DeleteAssociationSameAccountException\");\n }\n name = \"DeleteAssociationSameAccountException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DeleteAssociationSameAccountException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DeleteAssociationSameAccountException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreAssociationNotFoundException = class _TrustStoreAssociationNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreAssociationNotFoundException\");\n }\n name = \"TrustStoreAssociationNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreAssociationNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreAssociationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TrustStoreInUseException = class _TrustStoreInUseException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"TrustStoreInUseException\");\n }\n name = \"TrustStoreInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrustStoreInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrustStoreInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTargetException = class _InvalidTargetException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InvalidTargetException\");\n }\n name = \"InvalidTargetException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTargetException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTargetException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DescribeTargetHealthInputIncludeEnum = {\n ALL: \"All\",\n ANOMALY: \"AnomalyDetection\"\n};\nvar TargetHealthReasonEnum = {\n DEREGISTRATION_IN_PROGRESS: \"Target.DeregistrationInProgress\",\n FAILED_HEALTH_CHECKS: \"Target.FailedHealthChecks\",\n HEALTH_CHECK_DISABLED: \"Target.HealthCheckDisabled\",\n INITIAL_HEALTH_CHECKING: \"Elb.InitialHealthChecking\",\n INTERNAL_ERROR: \"Elb.InternalError\",\n INVALID_STATE: \"Target.InvalidState\",\n IP_UNUSABLE: \"Target.IpUnusable\",\n NOT_IN_USE: \"Target.NotInUse\",\n NOT_REGISTERED: \"Target.NotRegistered\",\n REGISTRATION_IN_PROGRESS: \"Elb.RegistrationInProgress\",\n RESPONSE_CODE_MISMATCH: \"Target.ResponseCodeMismatch\",\n TIMEOUT: \"Target.Timeout\"\n};\nvar TargetHealthStateEnum = {\n DRAINING: \"draining\",\n HEALTHY: \"healthy\",\n INITIAL: \"initial\",\n UNAVAILABLE: \"unavailable\",\n UNHEALTHY: \"unhealthy\",\n UNHEALTHY_DRAINING: \"unhealthy.draining\",\n UNUSED: \"unused\"\n};\nvar HealthUnavailableException = class _HealthUnavailableException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"HealthUnavailableException\");\n }\n name = \"HealthUnavailableException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthUnavailableException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthUnavailableException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RevocationIdNotFoundException = class _RevocationIdNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"RevocationIdNotFoundException\");\n }\n name = \"RevocationIdNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RevocationIdNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RevocationIdNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InsufficientCapacityException = class _InsufficientCapacityException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"InsufficientCapacityException\");\n }\n name = \"InsufficientCapacityException\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InsufficientCapacityException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InsufficientCapacityException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PriorRequestNotCompleteException = class _PriorRequestNotCompleteException extends ElasticLoadBalancingV2ServiceException {\n static {\n __name(this, \"PriorRequestNotCompleteException\");\n }\n name = \"PriorRequestNotCompleteException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PriorRequestNotCompleteException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PriorRequestNotCompleteException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RemoveIpamPoolEnum = {\n ipv4: \"ipv4\"\n};\nvar EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum = {\n off: \"off\",\n on: \"on\"\n};\n\n// src/protocols/Aws_query.ts\nvar se_AddListenerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddListenerCertificatesInput(input, context),\n [_A]: _ALC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddListenerCertificatesCommand\");\nvar se_AddTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddTagsInput(input, context),\n [_A]: _AT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddTagsCommand\");\nvar se_AddTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddTrustStoreRevocationsInput(input, context),\n [_A]: _ATSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddTrustStoreRevocationsCommand\");\nvar se_CreateListenerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateListenerInput(input, context),\n [_A]: _CL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateListenerCommand\");\nvar se_CreateLoadBalancerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLoadBalancerInput(input, context),\n [_A]: _CLB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLoadBalancerCommand\");\nvar se_CreateRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRuleInput(input, context),\n [_A]: _CR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRuleCommand\");\nvar se_CreateTargetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTargetGroupInput(input, context),\n [_A]: _CTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTargetGroupCommand\");\nvar se_CreateTrustStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateTrustStoreInput(input, context),\n [_A]: _CTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateTrustStoreCommand\");\nvar se_DeleteListenerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteListenerInput(input, context),\n [_A]: _DL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteListenerCommand\");\nvar se_DeleteLoadBalancerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLoadBalancerInput(input, context),\n [_A]: _DLB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLoadBalancerCommand\");\nvar se_DeleteRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRuleInput(input, context),\n [_A]: _DR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRuleCommand\");\nvar se_DeleteSharedTrustStoreAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSharedTrustStoreAssociationInput(input, context),\n [_A]: _DSTSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSharedTrustStoreAssociationCommand\");\nvar se_DeleteTargetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTargetGroupInput(input, context),\n [_A]: _DTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTargetGroupCommand\");\nvar se_DeleteTrustStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteTrustStoreInput(input, context),\n [_A]: _DTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteTrustStoreCommand\");\nvar se_DeregisterTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeregisterTargetsInput(input, context),\n [_A]: _DT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTargetsCommand\");\nvar se_DescribeAccountLimitsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeAccountLimitsInput(input, context),\n [_A]: _DAL,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAccountLimitsCommand\");\nvar se_DescribeCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeCapacityReservationInput(input, context),\n [_A]: _DCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCapacityReservationCommand\");\nvar se_DescribeListenerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeListenerAttributesInput(input, context),\n [_A]: _DLA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeListenerAttributesCommand\");\nvar se_DescribeListenerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeListenerCertificatesInput(input, context),\n [_A]: _DLC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeListenerCertificatesCommand\");\nvar se_DescribeListenersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeListenersInput(input, context),\n [_A]: _DLe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeListenersCommand\");\nvar se_DescribeLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLoadBalancerAttributesInput(input, context),\n [_A]: _DLBA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLoadBalancerAttributesCommand\");\nvar se_DescribeLoadBalancersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeLoadBalancersInput(input, context),\n [_A]: _DLBe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeLoadBalancersCommand\");\nvar se_DescribeRulesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeRulesInput(input, context),\n [_A]: _DRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeRulesCommand\");\nvar se_DescribeSSLPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeSSLPoliciesInput(input, context),\n [_A]: _DSSLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSSLPoliciesCommand\");\nvar se_DescribeTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTagsInput(input, context),\n [_A]: _DTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTagsCommand\");\nvar se_DescribeTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTargetGroupAttributesInput(input, context),\n [_A]: _DTGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTargetGroupAttributesCommand\");\nvar se_DescribeTargetGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTargetGroupsInput(input, context),\n [_A]: _DTGe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTargetGroupsCommand\");\nvar se_DescribeTargetHealthCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTargetHealthInput(input, context),\n [_A]: _DTH,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTargetHealthCommand\");\nvar se_DescribeTrustStoreAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrustStoreAssociationsInput(input, context),\n [_A]: _DTSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrustStoreAssociationsCommand\");\nvar se_DescribeTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrustStoreRevocationsInput(input, context),\n [_A]: _DTSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrustStoreRevocationsCommand\");\nvar se_DescribeTrustStoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DescribeTrustStoresInput(input, context),\n [_A]: _DTSe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeTrustStoresCommand\");\nvar se_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetResourcePolicyInput(input, context),\n [_A]: _GRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePolicyCommand\");\nvar se_GetTrustStoreCaCertificatesBundleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTrustStoreCaCertificatesBundleInput(input, context),\n [_A]: _GTSCCB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTrustStoreCaCertificatesBundleCommand\");\nvar se_GetTrustStoreRevocationContentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetTrustStoreRevocationContentInput(input, context),\n [_A]: _GTSRC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetTrustStoreRevocationContentCommand\");\nvar se_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyCapacityReservationInput(input, context),\n [_A]: _MCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyCapacityReservationCommand\");\nvar se_ModifyIpPoolsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyIpPoolsInput(input, context),\n [_A]: _MIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyIpPoolsCommand\");\nvar se_ModifyListenerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyListenerInput(input, context),\n [_A]: _ML,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyListenerCommand\");\nvar se_ModifyListenerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyListenerAttributesInput(input, context),\n [_A]: _MLA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyListenerAttributesCommand\");\nvar se_ModifyLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyLoadBalancerAttributesInput(input, context),\n [_A]: _MLBA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyLoadBalancerAttributesCommand\");\nvar se_ModifyRuleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyRuleInput(input, context),\n [_A]: _MR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyRuleCommand\");\nvar se_ModifyTargetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTargetGroupInput(input, context),\n [_A]: _MTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTargetGroupCommand\");\nvar se_ModifyTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTargetGroupAttributesInput(input, context),\n [_A]: _MTGA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTargetGroupAttributesCommand\");\nvar se_ModifyTrustStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ModifyTrustStoreInput(input, context),\n [_A]: _MTS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyTrustStoreCommand\");\nvar se_RegisterTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RegisterTargetsInput(input, context),\n [_A]: _RT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTargetsCommand\");\nvar se_RemoveListenerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveListenerCertificatesInput(input, context),\n [_A]: _RLC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveListenerCertificatesCommand\");\nvar se_RemoveTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveTagsInput(input, context),\n [_A]: _RTe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveTagsCommand\");\nvar se_RemoveTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveTrustStoreRevocationsInput(input, context),\n [_A]: _RTSR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveTrustStoreRevocationsCommand\");\nvar se_SetIpAddressTypeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetIpAddressTypeInput(input, context),\n [_A]: _SIAT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetIpAddressTypeCommand\");\nvar se_SetRulePrioritiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetRulePrioritiesInput(input, context),\n [_A]: _SRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetRulePrioritiesCommand\");\nvar se_SetSecurityGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetSecurityGroupsInput(input, context),\n [_A]: _SSG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetSecurityGroupsCommand\");\nvar se_SetSubnetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetSubnetsInput(input, context),\n [_A]: _SS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetSubnetsCommand\");\nvar de_AddListenerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AddListenerCertificatesOutput(data.AddListenerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddListenerCertificatesCommand\");\nvar de_AddTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AddTagsOutput(data.AddTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddTagsCommand\");\nvar de_AddTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AddTrustStoreRevocationsOutput(data.AddTrustStoreRevocationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddTrustStoreRevocationsCommand\");\nvar de_CreateListenerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateListenerOutput(data.CreateListenerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateListenerCommand\");\nvar de_CreateLoadBalancerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLoadBalancerOutput(data.CreateLoadBalancerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLoadBalancerCommand\");\nvar de_CreateRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRuleOutput(data.CreateRuleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRuleCommand\");\nvar de_CreateTargetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTargetGroupOutput(data.CreateTargetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTargetGroupCommand\");\nvar de_CreateTrustStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateTrustStoreOutput(data.CreateTrustStoreResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateTrustStoreCommand\");\nvar de_DeleteListenerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteListenerOutput(data.DeleteListenerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteListenerCommand\");\nvar de_DeleteLoadBalancerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteLoadBalancerOutput(data.DeleteLoadBalancerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteLoadBalancerCommand\");\nvar de_DeleteRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteRuleOutput(data.DeleteRuleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteRuleCommand\");\nvar de_DeleteSharedTrustStoreAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSharedTrustStoreAssociationOutput(data.DeleteSharedTrustStoreAssociationResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSharedTrustStoreAssociationCommand\");\nvar de_DeleteTargetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTargetGroupOutput(data.DeleteTargetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTargetGroupCommand\");\nvar de_DeleteTrustStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteTrustStoreOutput(data.DeleteTrustStoreResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteTrustStoreCommand\");\nvar de_DeregisterTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeregisterTargetsOutput(data.DeregisterTargetsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTargetsCommand\");\nvar de_DescribeAccountLimitsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAccountLimitsOutput(data.DescribeAccountLimitsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAccountLimitsCommand\");\nvar de_DescribeCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCapacityReservationOutput(data.DescribeCapacityReservationResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCapacityReservationCommand\");\nvar de_DescribeListenerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeListenerAttributesOutput(data.DescribeListenerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeListenerAttributesCommand\");\nvar de_DescribeListenerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeListenerCertificatesOutput(data.DescribeListenerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeListenerCertificatesCommand\");\nvar de_DescribeListenersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeListenersOutput(data.DescribeListenersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeListenersCommand\");\nvar de_DescribeLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLoadBalancerAttributesOutput(data.DescribeLoadBalancerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLoadBalancerAttributesCommand\");\nvar de_DescribeLoadBalancersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeLoadBalancersOutput(data.DescribeLoadBalancersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeLoadBalancersCommand\");\nvar de_DescribeRulesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeRulesOutput(data.DescribeRulesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeRulesCommand\");\nvar de_DescribeSSLPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSSLPoliciesOutput(data.DescribeSSLPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSSLPoliciesCommand\");\nvar de_DescribeTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTagsOutput(data.DescribeTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTagsCommand\");\nvar de_DescribeTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTargetGroupAttributesOutput(data.DescribeTargetGroupAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTargetGroupAttributesCommand\");\nvar de_DescribeTargetGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTargetGroupsOutput(data.DescribeTargetGroupsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTargetGroupsCommand\");\nvar de_DescribeTargetHealthCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTargetHealthOutput(data.DescribeTargetHealthResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTargetHealthCommand\");\nvar de_DescribeTrustStoreAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrustStoreAssociationsOutput(data.DescribeTrustStoreAssociationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrustStoreAssociationsCommand\");\nvar de_DescribeTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrustStoreRevocationsOutput(data.DescribeTrustStoreRevocationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrustStoreRevocationsCommand\");\nvar de_DescribeTrustStoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DescribeTrustStoresOutput(data.DescribeTrustStoresResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeTrustStoresCommand\");\nvar de_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetResourcePolicyOutput(data.GetResourcePolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePolicyCommand\");\nvar de_GetTrustStoreCaCertificatesBundleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTrustStoreCaCertificatesBundleOutput(data.GetTrustStoreCaCertificatesBundleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTrustStoreCaCertificatesBundleCommand\");\nvar de_GetTrustStoreRevocationContentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetTrustStoreRevocationContentOutput(data.GetTrustStoreRevocationContentResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetTrustStoreRevocationContentCommand\");\nvar de_ModifyCapacityReservationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyCapacityReservationOutput(data.ModifyCapacityReservationResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyCapacityReservationCommand\");\nvar de_ModifyIpPoolsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyIpPoolsOutput(data.ModifyIpPoolsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyIpPoolsCommand\");\nvar de_ModifyListenerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyListenerOutput(data.ModifyListenerResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyListenerCommand\");\nvar de_ModifyListenerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyListenerAttributesOutput(data.ModifyListenerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyListenerAttributesCommand\");\nvar de_ModifyLoadBalancerAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyLoadBalancerAttributesOutput(data.ModifyLoadBalancerAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyLoadBalancerAttributesCommand\");\nvar de_ModifyRuleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyRuleOutput(data.ModifyRuleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyRuleCommand\");\nvar de_ModifyTargetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTargetGroupOutput(data.ModifyTargetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTargetGroupCommand\");\nvar de_ModifyTargetGroupAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTargetGroupAttributesOutput(data.ModifyTargetGroupAttributesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTargetGroupAttributesCommand\");\nvar de_ModifyTrustStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ModifyTrustStoreOutput(data.ModifyTrustStoreResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyTrustStoreCommand\");\nvar de_RegisterTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RegisterTargetsOutput(data.RegisterTargetsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTargetsCommand\");\nvar de_RemoveListenerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RemoveListenerCertificatesOutput(data.RemoveListenerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveListenerCertificatesCommand\");\nvar de_RemoveTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RemoveTagsOutput(data.RemoveTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveTagsCommand\");\nvar de_RemoveTrustStoreRevocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_RemoveTrustStoreRevocationsOutput(data.RemoveTrustStoreRevocationsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveTrustStoreRevocationsCommand\");\nvar de_SetIpAddressTypeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetIpAddressTypeOutput(data.SetIpAddressTypeResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetIpAddressTypeCommand\");\nvar de_SetRulePrioritiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetRulePrioritiesOutput(data.SetRulePrioritiesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetRulePrioritiesCommand\");\nvar de_SetSecurityGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetSecurityGroupsOutput(data.SetSecurityGroupsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetSecurityGroupsCommand\");\nvar de_SetSubnetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SetSubnetsOutput(data.SetSubnetsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SetSubnetsCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CertificateNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#CertificateNotFoundException\":\n throw await de_CertificateNotFoundExceptionRes(parsedOutput, context);\n case \"ListenerNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#ListenerNotFoundException\":\n throw await de_ListenerNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyCertificates\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyCertificatesException\":\n throw await de_TooManyCertificatesExceptionRes(parsedOutput, context);\n case \"DuplicateTagKeys\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateTagKeysException\":\n throw await de_DuplicateTagKeysExceptionRes(parsedOutput, context);\n case \"LoadBalancerNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#LoadBalancerNotFoundException\":\n throw await de_LoadBalancerNotFoundExceptionRes(parsedOutput, context);\n case \"RuleNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#RuleNotFoundException\":\n throw await de_RuleNotFoundExceptionRes(parsedOutput, context);\n case \"TargetGroupNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#TargetGroupNotFoundException\":\n throw await de_TargetGroupNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyTags\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTagsException\":\n throw await de_TooManyTagsExceptionRes(parsedOutput, context);\n case \"TrustStoreNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreNotFoundException\":\n throw await de_TrustStoreNotFoundExceptionRes(parsedOutput, context);\n case \"InvalidRevocationContent\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidRevocationContentException\":\n throw await de_InvalidRevocationContentExceptionRes(parsedOutput, context);\n case \"RevocationContentNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#RevocationContentNotFoundException\":\n throw await de_RevocationContentNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyTrustStoreRevocationEntries\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTrustStoreRevocationEntriesException\":\n throw await de_TooManyTrustStoreRevocationEntriesExceptionRes(parsedOutput, context);\n case \"ALPNPolicyNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#ALPNPolicyNotSupportedException\":\n throw await de_ALPNPolicyNotSupportedExceptionRes(parsedOutput, context);\n case \"DuplicateListener\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateListenerException\":\n throw await de_DuplicateListenerExceptionRes(parsedOutput, context);\n case \"IncompatibleProtocols\":\n case \"com.amazonaws.elasticloadbalancingv2#IncompatibleProtocolsException\":\n throw await de_IncompatibleProtocolsExceptionRes(parsedOutput, context);\n case \"InvalidConfigurationRequest\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidConfigurationRequestException\":\n throw await de_InvalidConfigurationRequestExceptionRes(parsedOutput, context);\n case \"InvalidLoadBalancerAction\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidLoadBalancerActionException\":\n throw await de_InvalidLoadBalancerActionExceptionRes(parsedOutput, context);\n case \"SSLPolicyNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#SSLPolicyNotFoundException\":\n throw await de_SSLPolicyNotFoundExceptionRes(parsedOutput, context);\n case \"TargetGroupAssociationLimit\":\n case \"com.amazonaws.elasticloadbalancingv2#TargetGroupAssociationLimitException\":\n throw await de_TargetGroupAssociationLimitExceptionRes(parsedOutput, context);\n case \"TooManyActions\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyActionsException\":\n throw await de_TooManyActionsExceptionRes(parsedOutput, context);\n case \"TooManyListeners\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyListenersException\":\n throw await de_TooManyListenersExceptionRes(parsedOutput, context);\n case \"TooManyRegistrationsForTargetId\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyRegistrationsForTargetIdException\":\n throw await de_TooManyRegistrationsForTargetIdExceptionRes(parsedOutput, context);\n case \"TooManyTargets\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTargetsException\":\n throw await de_TooManyTargetsExceptionRes(parsedOutput, context);\n case \"TooManyUniqueTargetGroupsPerLoadBalancer\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyUniqueTargetGroupsPerLoadBalancerException\":\n throw await de_TooManyUniqueTargetGroupsPerLoadBalancerExceptionRes(parsedOutput, context);\n case \"TrustStoreNotReady\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreNotReadyException\":\n throw await de_TrustStoreNotReadyExceptionRes(parsedOutput, context);\n case \"UnsupportedProtocol\":\n case \"com.amazonaws.elasticloadbalancingv2#UnsupportedProtocolException\":\n throw await de_UnsupportedProtocolExceptionRes(parsedOutput, context);\n case \"AllocationIdNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#AllocationIdNotFoundException\":\n throw await de_AllocationIdNotFoundExceptionRes(parsedOutput, context);\n case \"AvailabilityZoneNotSupported\":\n case \"com.amazonaws.elasticloadbalancingv2#AvailabilityZoneNotSupportedException\":\n throw await de_AvailabilityZoneNotSupportedExceptionRes(parsedOutput, context);\n case \"DuplicateLoadBalancerName\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateLoadBalancerNameException\":\n throw await de_DuplicateLoadBalancerNameExceptionRes(parsedOutput, context);\n case \"InvalidScheme\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidSchemeException\":\n throw await de_InvalidSchemeExceptionRes(parsedOutput, context);\n case \"InvalidSecurityGroup\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidSecurityGroupException\":\n throw await de_InvalidSecurityGroupExceptionRes(parsedOutput, context);\n case \"InvalidSubnet\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidSubnetException\":\n throw await de_InvalidSubnetExceptionRes(parsedOutput, context);\n case \"OperationNotPermitted\":\n case \"com.amazonaws.elasticloadbalancingv2#OperationNotPermittedException\":\n throw await de_OperationNotPermittedExceptionRes(parsedOutput, context);\n case \"ResourceInUse\":\n case \"com.amazonaws.elasticloadbalancingv2#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"SubnetNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#SubnetNotFoundException\":\n throw await de_SubnetNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyLoadBalancers\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyLoadBalancersException\":\n throw await de_TooManyLoadBalancersExceptionRes(parsedOutput, context);\n case \"PriorityInUse\":\n case \"com.amazonaws.elasticloadbalancingv2#PriorityInUseException\":\n throw await de_PriorityInUseExceptionRes(parsedOutput, context);\n case \"TooManyRules\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyRulesException\":\n throw await de_TooManyRulesExceptionRes(parsedOutput, context);\n case \"TooManyTargetGroups\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTargetGroupsException\":\n throw await de_TooManyTargetGroupsExceptionRes(parsedOutput, context);\n case \"DuplicateTargetGroupName\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateTargetGroupNameException\":\n throw await de_DuplicateTargetGroupNameExceptionRes(parsedOutput, context);\n case \"CaCertificatesBundleNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#CaCertificatesBundleNotFoundException\":\n throw await de_CaCertificatesBundleNotFoundExceptionRes(parsedOutput, context);\n case \"DuplicateTrustStoreName\":\n case \"com.amazonaws.elasticloadbalancingv2#DuplicateTrustStoreNameException\":\n throw await de_DuplicateTrustStoreNameExceptionRes(parsedOutput, context);\n case \"InvalidCaCertificatesBundle\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidCaCertificatesBundleException\":\n throw await de_InvalidCaCertificatesBundleExceptionRes(parsedOutput, context);\n case \"TooManyTrustStores\":\n case \"com.amazonaws.elasticloadbalancingv2#TooManyTrustStoresException\":\n throw await de_TooManyTrustStoresExceptionRes(parsedOutput, context);\n case \"AssociationNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreAssociationNotFoundException\":\n throw await de_TrustStoreAssociationNotFoundExceptionRes(parsedOutput, context);\n case \"DeleteAssociationSameAccount\":\n case \"com.amazonaws.elasticloadbalancingv2#DeleteAssociationSameAccountException\":\n throw await de_DeleteAssociationSameAccountExceptionRes(parsedOutput, context);\n case \"TrustStoreInUse\":\n case \"com.amazonaws.elasticloadbalancingv2#TrustStoreInUseException\":\n throw await de_TrustStoreInUseExceptionRes(parsedOutput, context);\n case \"InvalidTarget\":\n case \"com.amazonaws.elasticloadbalancingv2#InvalidTargetException\":\n throw await de_InvalidTargetExceptionRes(parsedOutput, context);\n case \"HealthUnavailable\":\n case \"com.amazonaws.elasticloadbalancingv2#HealthUnavailableException\":\n throw await de_HealthUnavailableExceptionRes(parsedOutput, context);\n case \"RevocationIdNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#RevocationIdNotFoundException\":\n throw await de_RevocationIdNotFoundExceptionRes(parsedOutput, context);\n case \"ResourceNotFound\":\n case \"com.amazonaws.elasticloadbalancingv2#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"CapacityDecreaseRequestLimitExceeded\":\n case \"com.amazonaws.elasticloadbalancingv2#CapacityDecreaseRequestsLimitExceededException\":\n throw await de_CapacityDecreaseRequestsLimitExceededExceptionRes(parsedOutput, context);\n case \"CapacityReservationPending\":\n case \"com.amazonaws.elasticloadbalancingv2#CapacityReservationPendingException\":\n throw await de_CapacityReservationPendingExceptionRes(parsedOutput, context);\n case \"CapacityUnitsLimitExceeded\":\n case \"com.amazonaws.elasticloadbalancingv2#CapacityUnitsLimitExceededException\":\n throw await de_CapacityUnitsLimitExceededExceptionRes(parsedOutput, context);\n case \"InsufficientCapacity\":\n case \"com.amazonaws.elasticloadbalancingv2#InsufficientCapacityException\":\n throw await de_InsufficientCapacityExceptionRes(parsedOutput, context);\n case \"PriorRequestNotComplete\":\n case \"com.amazonaws.elasticloadbalancingv2#PriorRequestNotCompleteException\":\n throw await de_PriorRequestNotCompleteExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AllocationIdNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_AllocationIdNotFoundException(body.Error, context);\n const exception = new AllocationIdNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AllocationIdNotFoundExceptionRes\");\nvar de_ALPNPolicyNotSupportedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ALPNPolicyNotSupportedException(body.Error, context);\n const exception = new ALPNPolicyNotSupportedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ALPNPolicyNotSupportedExceptionRes\");\nvar de_AvailabilityZoneNotSupportedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_AvailabilityZoneNotSupportedException(body.Error, context);\n const exception = new AvailabilityZoneNotSupportedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AvailabilityZoneNotSupportedExceptionRes\");\nvar de_CaCertificatesBundleNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CaCertificatesBundleNotFoundException(body.Error, context);\n const exception = new CaCertificatesBundleNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CaCertificatesBundleNotFoundExceptionRes\");\nvar de_CapacityDecreaseRequestsLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CapacityDecreaseRequestsLimitExceededException(body.Error, context);\n const exception = new CapacityDecreaseRequestsLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CapacityDecreaseRequestsLimitExceededExceptionRes\");\nvar de_CapacityReservationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CapacityReservationPendingException(body.Error, context);\n const exception = new CapacityReservationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CapacityReservationPendingExceptionRes\");\nvar de_CapacityUnitsLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CapacityUnitsLimitExceededException(body.Error, context);\n const exception = new CapacityUnitsLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CapacityUnitsLimitExceededExceptionRes\");\nvar de_CertificateNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CertificateNotFoundException(body.Error, context);\n const exception = new CertificateNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CertificateNotFoundExceptionRes\");\nvar de_DeleteAssociationSameAccountExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DeleteAssociationSameAccountException(body.Error, context);\n const exception = new DeleteAssociationSameAccountException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DeleteAssociationSameAccountExceptionRes\");\nvar de_DuplicateListenerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateListenerException(body.Error, context);\n const exception = new DuplicateListenerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateListenerExceptionRes\");\nvar de_DuplicateLoadBalancerNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateLoadBalancerNameException(body.Error, context);\n const exception = new DuplicateLoadBalancerNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateLoadBalancerNameExceptionRes\");\nvar de_DuplicateTagKeysExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateTagKeysException(body.Error, context);\n const exception = new DuplicateTagKeysException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateTagKeysExceptionRes\");\nvar de_DuplicateTargetGroupNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateTargetGroupNameException(body.Error, context);\n const exception = new DuplicateTargetGroupNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateTargetGroupNameExceptionRes\");\nvar de_DuplicateTrustStoreNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateTrustStoreNameException(body.Error, context);\n const exception = new DuplicateTrustStoreNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateTrustStoreNameExceptionRes\");\nvar de_HealthUnavailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_HealthUnavailableException(body.Error, context);\n const exception = new HealthUnavailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HealthUnavailableExceptionRes\");\nvar de_IncompatibleProtocolsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IncompatibleProtocolsException(body.Error, context);\n const exception = new IncompatibleProtocolsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncompatibleProtocolsExceptionRes\");\nvar de_InsufficientCapacityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InsufficientCapacityException(body.Error, context);\n const exception = new InsufficientCapacityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InsufficientCapacityExceptionRes\");\nvar de_InvalidCaCertificatesBundleExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidCaCertificatesBundleException(body.Error, context);\n const exception = new InvalidCaCertificatesBundleException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCaCertificatesBundleExceptionRes\");\nvar de_InvalidConfigurationRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidConfigurationRequestException(body.Error, context);\n const exception = new InvalidConfigurationRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidConfigurationRequestExceptionRes\");\nvar de_InvalidLoadBalancerActionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidLoadBalancerActionException(body.Error, context);\n const exception = new InvalidLoadBalancerActionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLoadBalancerActionExceptionRes\");\nvar de_InvalidRevocationContentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidRevocationContentException(body.Error, context);\n const exception = new InvalidRevocationContentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRevocationContentExceptionRes\");\nvar de_InvalidSchemeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidSchemeException(body.Error, context);\n const exception = new InvalidSchemeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSchemeExceptionRes\");\nvar de_InvalidSecurityGroupExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidSecurityGroupException(body.Error, context);\n const exception = new InvalidSecurityGroupException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSecurityGroupExceptionRes\");\nvar de_InvalidSubnetExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidSubnetException(body.Error, context);\n const exception = new InvalidSubnetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidSubnetExceptionRes\");\nvar de_InvalidTargetExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidTargetException(body.Error, context);\n const exception = new InvalidTargetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTargetExceptionRes\");\nvar de_ListenerNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ListenerNotFoundException(body.Error, context);\n const exception = new ListenerNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ListenerNotFoundExceptionRes\");\nvar de_LoadBalancerNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_LoadBalancerNotFoundException(body.Error, context);\n const exception = new LoadBalancerNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LoadBalancerNotFoundExceptionRes\");\nvar de_OperationNotPermittedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OperationNotPermittedException(body.Error, context);\n const exception = new OperationNotPermittedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OperationNotPermittedExceptionRes\");\nvar de_PriorityInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PriorityInUseException(body.Error, context);\n const exception = new PriorityInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PriorityInUseExceptionRes\");\nvar de_PriorRequestNotCompleteExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PriorRequestNotCompleteException(body.Error, context);\n const exception = new PriorRequestNotCompleteException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PriorRequestNotCompleteExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ResourceInUseException(body.Error, context);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ResourceNotFoundException(body.Error, context);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_RevocationContentNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RevocationContentNotFoundException(body.Error, context);\n const exception = new RevocationContentNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RevocationContentNotFoundExceptionRes\");\nvar de_RevocationIdNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RevocationIdNotFoundException(body.Error, context);\n const exception = new RevocationIdNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RevocationIdNotFoundExceptionRes\");\nvar de_RuleNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RuleNotFoundException(body.Error, context);\n const exception = new RuleNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RuleNotFoundExceptionRes\");\nvar de_SSLPolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_SSLPolicyNotFoundException(body.Error, context);\n const exception = new SSLPolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SSLPolicyNotFoundExceptionRes\");\nvar de_SubnetNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_SubnetNotFoundException(body.Error, context);\n const exception = new SubnetNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SubnetNotFoundExceptionRes\");\nvar de_TargetGroupAssociationLimitExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TargetGroupAssociationLimitException(body.Error, context);\n const exception = new TargetGroupAssociationLimitException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetGroupAssociationLimitExceptionRes\");\nvar de_TargetGroupNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TargetGroupNotFoundException(body.Error, context);\n const exception = new TargetGroupNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetGroupNotFoundExceptionRes\");\nvar de_TooManyActionsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyActionsException(body.Error, context);\n const exception = new TooManyActionsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyActionsExceptionRes\");\nvar de_TooManyCertificatesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyCertificatesException(body.Error, context);\n const exception = new TooManyCertificatesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyCertificatesExceptionRes\");\nvar de_TooManyListenersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyListenersException(body.Error, context);\n const exception = new TooManyListenersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyListenersExceptionRes\");\nvar de_TooManyLoadBalancersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyLoadBalancersException(body.Error, context);\n const exception = new TooManyLoadBalancersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyLoadBalancersExceptionRes\");\nvar de_TooManyRegistrationsForTargetIdExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyRegistrationsForTargetIdException(body.Error, context);\n const exception = new TooManyRegistrationsForTargetIdException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyRegistrationsForTargetIdExceptionRes\");\nvar de_TooManyRulesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyRulesException(body.Error, context);\n const exception = new TooManyRulesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyRulesExceptionRes\");\nvar de_TooManyTagsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTagsException(body.Error, context);\n const exception = new TooManyTagsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsExceptionRes\");\nvar de_TooManyTargetGroupsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTargetGroupsException(body.Error, context);\n const exception = new TooManyTargetGroupsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTargetGroupsExceptionRes\");\nvar de_TooManyTargetsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTargetsException(body.Error, context);\n const exception = new TooManyTargetsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTargetsExceptionRes\");\nvar de_TooManyTrustStoreRevocationEntriesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTrustStoreRevocationEntriesException(body.Error, context);\n const exception = new TooManyTrustStoreRevocationEntriesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTrustStoreRevocationEntriesExceptionRes\");\nvar de_TooManyTrustStoresExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyTrustStoresException(body.Error, context);\n const exception = new TooManyTrustStoresException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTrustStoresExceptionRes\");\nvar de_TooManyUniqueTargetGroupsPerLoadBalancerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TooManyUniqueTargetGroupsPerLoadBalancerException(body.Error, context);\n const exception = new TooManyUniqueTargetGroupsPerLoadBalancerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyUniqueTargetGroupsPerLoadBalancerExceptionRes\");\nvar de_TrustStoreAssociationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreAssociationNotFoundException(body.Error, context);\n const exception = new TrustStoreAssociationNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreAssociationNotFoundExceptionRes\");\nvar de_TrustStoreInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreInUseException(body.Error, context);\n const exception = new TrustStoreInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreInUseExceptionRes\");\nvar de_TrustStoreNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreNotFoundException(body.Error, context);\n const exception = new TrustStoreNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreNotFoundExceptionRes\");\nvar de_TrustStoreNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_TrustStoreNotReadyException(body.Error, context);\n const exception = new TrustStoreNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TrustStoreNotReadyExceptionRes\");\nvar de_UnsupportedProtocolExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_UnsupportedProtocolException(body.Error, context);\n const exception = new UnsupportedProtocolException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedProtocolExceptionRes\");\nvar se_Action = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_AOC] != null) {\n const memberEntries = se_AuthenticateOidcActionConfig(input[_AOC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticateOidcConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ACC] != null) {\n const memberEntries = se_AuthenticateCognitoActionConfig(input[_ACC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticateCognitoConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_O] != null) {\n entries[_O] = input[_O];\n }\n if (input[_RC] != null) {\n const memberEntries = se_RedirectActionConfig(input[_RC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RedirectConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FRC] != null) {\n const memberEntries = se_FixedResponseActionConfig(input[_FRC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `FixedResponseConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_FC] != null) {\n const memberEntries = se_ForwardActionConfig(input[_FC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ForwardConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_Action\");\nvar se_Actions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Action(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_Actions\");\nvar se_AddListenerCertificatesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AddListenerCertificatesInput\");\nvar se_AddTagsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n const memberEntries = se_ResourceArns(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AddTagsInput\");\nvar se_AddTrustStoreRevocationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RCe] != null) {\n const memberEntries = se_RevocationContents(input[_RCe], context);\n if (input[_RCe]?.length === 0) {\n entries.RevocationContents = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RevocationContents.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AddTrustStoreRevocationsInput\");\nvar se_AlpnPolicyName = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_AlpnPolicyName\");\nvar se_AuthenticateCognitoActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n Object.keys(input).filter((key) => input[key] != null).forEach((key) => {\n entries[`entry.${counter}.key`] = key;\n entries[`entry.${counter}.value`] = input[key];\n counter++;\n });\n return entries;\n}, \"se_AuthenticateCognitoActionAuthenticationRequestExtraParams\");\nvar se_AuthenticateCognitoActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UPA] != null) {\n entries[_UPA] = input[_UPA];\n }\n if (input[_UPCI] != null) {\n entries[_UPCI] = input[_UPCI];\n }\n if (input[_UPD] != null) {\n entries[_UPD] = input[_UPD];\n }\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_AREP] != null) {\n const memberEntries = se_AuthenticateCognitoActionAuthenticationRequestExtraParams(input[_AREP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticationRequestExtraParams.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OUR] != null) {\n entries[_OUR] = input[_OUR];\n }\n return entries;\n}, \"se_AuthenticateCognitoActionConfig\");\nvar se_AuthenticateOidcActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n Object.keys(input).filter((key) => input[key] != null).forEach((key) => {\n entries[`entry.${counter}.key`] = key;\n entries[`entry.${counter}.value`] = input[key];\n counter++;\n });\n return entries;\n}, \"se_AuthenticateOidcActionAuthenticationRequestExtraParams\");\nvar se_AuthenticateOidcActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_I] != null) {\n entries[_I] = input[_I];\n }\n if (input[_AE] != null) {\n entries[_AE] = input[_AE];\n }\n if (input[_TE] != null) {\n entries[_TE] = input[_TE];\n }\n if (input[_UIE] != null) {\n entries[_UIE] = input[_UIE];\n }\n if (input[_CI] != null) {\n entries[_CI] = input[_CI];\n }\n if (input[_CS] != null) {\n entries[_CS] = input[_CS];\n }\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_ST] != null) {\n entries[_ST] = input[_ST];\n }\n if (input[_AREP] != null) {\n const memberEntries = se_AuthenticateOidcActionAuthenticationRequestExtraParams(input[_AREP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AuthenticationRequestExtraParams.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_OUR] != null) {\n entries[_OUR] = input[_OUR];\n }\n if (input[_UECS] != null) {\n entries[_UECS] = input[_UECS];\n }\n return entries;\n}, \"se_AuthenticateOidcActionConfig\");\nvar se_Certificate = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_ID] != null) {\n entries[_ID] = input[_ID];\n }\n return entries;\n}, \"se_Certificate\");\nvar se_CertificateList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Certificate(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_CertificateList\");\nvar se_CreateListenerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DA] != null) {\n const memberEntries = se_Actions(input[_DA], context);\n if (input[_DA]?.length === 0) {\n entries.DefaultActions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DefaultActions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AP] != null) {\n const memberEntries = se_AlpnPolicyName(input[_AP], context);\n if (input[_AP]?.length === 0) {\n entries.AlpnPolicy = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AlpnPolicy.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MA] != null) {\n const memberEntries = se_MutualAuthenticationAttributes(input[_MA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MutualAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateListenerInput\");\nvar se_CreateLoadBalancerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_Su] != null) {\n const memberEntries = se_Subnets(input[_Su], context);\n if (input[_Su]?.length === 0) {\n entries.Subnets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Subnets.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SM] != null) {\n const memberEntries = se_SubnetMappings(input[_SM], context);\n if (input[_SM]?.length === 0) {\n entries.SubnetMappings = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetMappings.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroups(input[_SG], context);\n if (input[_SG]?.length === 0) {\n entries.SecurityGroups = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroups.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Sc] != null) {\n entries[_Sc] = input[_Sc];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_T] != null) {\n entries[_T] = input[_T];\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_COIP] != null) {\n entries[_COIP] = input[_COIP];\n }\n if (input[_EPFISN] != null) {\n entries[_EPFISN] = input[_EPFISN];\n }\n if (input[_IP] != null) {\n const memberEntries = se_IpamPools(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamPools.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateLoadBalancerInput\");\nvar se_CreateRuleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_Co] != null) {\n const memberEntries = se_RuleConditionList(input[_Co], context);\n if (input[_Co]?.length === 0) {\n entries.Conditions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Conditions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n if (input[_Ac] != null) {\n const memberEntries = se_Actions(input[_Ac], context);\n if (input[_Ac]?.length === 0) {\n entries.Actions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Actions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRuleInput\");\nvar se_CreateTargetGroupInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_PV] != null) {\n entries[_PV] = input[_PV];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n if (input[_HCP] != null) {\n entries[_HCP] = input[_HCP];\n }\n if (input[_HCPe] != null) {\n entries[_HCPe] = input[_HCPe];\n }\n if (input[_HCE] != null) {\n entries[_HCE] = input[_HCE];\n }\n if (input[_HCPea] != null) {\n entries[_HCPea] = input[_HCPea];\n }\n if (input[_HCIS] != null) {\n entries[_HCIS] = input[_HCIS];\n }\n if (input[_HCTS] != null) {\n entries[_HCTS] = input[_HCTS];\n }\n if (input[_HTC] != null) {\n entries[_HTC] = input[_HTC];\n }\n if (input[_UTC] != null) {\n entries[_UTC] = input[_UTC];\n }\n if (input[_M] != null) {\n const memberEntries = se_Matcher(input[_M], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Matcher.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TT] != null) {\n entries[_TT] = input[_TT];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n return entries;\n}, \"se_CreateTargetGroupInput\");\nvar se_CreateTrustStoreInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_CCBSB] != null) {\n entries[_CCBSB] = input[_CCBSB];\n }\n if (input[_CCBSK] != null) {\n entries[_CCBSK] = input[_CCBSK];\n }\n if (input[_CCBSOV] != null) {\n entries[_CCBSOV] = input[_CCBSOV];\n }\n if (input[_Ta] != null) {\n const memberEntries = se_TagList(input[_Ta], context);\n if (input[_Ta]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateTrustStoreInput\");\nvar se_DeleteListenerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n return entries;\n}, \"se_DeleteListenerInput\");\nvar se_DeleteLoadBalancerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n return entries;\n}, \"se_DeleteLoadBalancerInput\");\nvar se_DeleteRuleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n return entries;\n}, \"se_DeleteRuleInput\");\nvar se_DeleteSharedTrustStoreAssociationInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_DeleteSharedTrustStoreAssociationInput\");\nvar se_DeleteTargetGroupInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n return entries;\n}, \"se_DeleteTargetGroupInput\");\nvar se_DeleteTrustStoreInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n return entries;\n}, \"se_DeleteTrustStoreInput\");\nvar se_DeregisterTargetsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_Tar] != null) {\n const memberEntries = se_TargetDescriptions(input[_Tar], context);\n if (input[_Tar]?.length === 0) {\n entries.Targets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Targets.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DeregisterTargetsInput\");\nvar se_DescribeAccountLimitsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeAccountLimitsInput\");\nvar se_DescribeCapacityReservationInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n return entries;\n}, \"se_DescribeCapacityReservationInput\");\nvar se_DescribeListenerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n return entries;\n}, \"se_DescribeListenerAttributesInput\");\nvar se_DescribeListenerCertificatesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeListenerCertificatesInput\");\nvar se_DescribeListenersInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_LAi] != null) {\n const memberEntries = se_ListenerArns(input[_LAi], context);\n if (input[_LAi]?.length === 0) {\n entries.ListenerArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ListenerArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeListenersInput\");\nvar se_DescribeLoadBalancerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n return entries;\n}, \"se_DescribeLoadBalancerAttributesInput\");\nvar se_DescribeLoadBalancersInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBAo] != null) {\n const memberEntries = se_LoadBalancerArns(input[_LBAo], context);\n if (input[_LBAo]?.length === 0) {\n entries.LoadBalancerArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `LoadBalancerArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Na] != null) {\n const memberEntries = se_LoadBalancerNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeLoadBalancersInput\");\nvar se_DescribeRulesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_RAul] != null) {\n const memberEntries = se_RuleArns(input[_RAul], context);\n if (input[_RAul]?.length === 0) {\n entries.RuleArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RuleArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeRulesInput\");\nvar se_DescribeSSLPoliciesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Na] != null) {\n const memberEntries = se_SslPolicyNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n if (input[_LBT] != null) {\n entries[_LBT] = input[_LBT];\n }\n return entries;\n}, \"se_DescribeSSLPoliciesInput\");\nvar se_DescribeTagsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n const memberEntries = se_ResourceArns(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeTagsInput\");\nvar se_DescribeTargetGroupAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n return entries;\n}, \"se_DescribeTargetGroupAttributesInput\");\nvar se_DescribeTargetGroupsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_TGAa] != null) {\n const memberEntries = se_TargetGroupArns(input[_TGAa], context);\n if (input[_TGAa]?.length === 0) {\n entries.TargetGroupArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroupArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Na] != null) {\n const memberEntries = se_TargetGroupNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTargetGroupsInput\");\nvar se_DescribeTargetHealthInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_Tar] != null) {\n const memberEntries = se_TargetDescriptions(input[_Tar], context);\n if (input[_Tar]?.length === 0) {\n entries.Targets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Targets.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_In] != null) {\n const memberEntries = se_ListOfDescribeTargetHealthIncludeOptions(input[_In], context);\n if (input[_In]?.length === 0) {\n entries.Include = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Include.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_DescribeTargetHealthInput\");\nvar se_DescribeTrustStoreAssociationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTrustStoreAssociationsInput\");\nvar se_DescribeTrustStoreRevocationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RI] != null) {\n const memberEntries = se_RevocationIds(input[_RI], context);\n if (input[_RI]?.length === 0) {\n entries.RevocationIds = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RevocationIds.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTrustStoreRevocationsInput\");\nvar se_DescribeTrustStoresInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSAr] != null) {\n const memberEntries = se_TrustStoreArns(input[_TSAr], context);\n if (input[_TSAr]?.length === 0) {\n entries.TrustStoreArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TrustStoreArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Na] != null) {\n const memberEntries = se_TrustStoreNames(input[_Na], context);\n if (input[_Na]?.length === 0) {\n entries.Names = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Names.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ma] != null) {\n entries[_Ma] = input[_Ma];\n }\n if (input[_PS] != null) {\n entries[_PS] = input[_PS];\n }\n return entries;\n}, \"se_DescribeTrustStoresInput\");\nvar se_FixedResponseActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MB] != null) {\n entries[_MB] = input[_MB];\n }\n if (input[_SC] != null) {\n entries[_SC] = input[_SC];\n }\n if (input[_CT] != null) {\n entries[_CT] = input[_CT];\n }\n return entries;\n}, \"se_FixedResponseActionConfig\");\nvar se_ForwardActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TG] != null) {\n const memberEntries = se_TargetGroupList(input[_TG], context);\n if (input[_TG]?.length === 0) {\n entries.TargetGroups = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroups.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TGSC] != null) {\n const memberEntries = se_TargetGroupStickinessConfig(input[_TGSC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TargetGroupStickinessConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ForwardActionConfig\");\nvar se_GetResourcePolicyInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAe] != null) {\n entries[_RAe] = input[_RAe];\n }\n return entries;\n}, \"se_GetResourcePolicyInput\");\nvar se_GetTrustStoreCaCertificatesBundleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n return entries;\n}, \"se_GetTrustStoreCaCertificatesBundleInput\");\nvar se_GetTrustStoreRevocationContentInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RIe] != null) {\n entries[_RIe] = input[_RIe];\n }\n return entries;\n}, \"se_GetTrustStoreRevocationContentInput\");\nvar se_HostHeaderConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_HostHeaderConditionConfig\");\nvar se_HttpHeaderConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HHN] != null) {\n entries[_HHN] = input[_HHN];\n }\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_HttpHeaderConditionConfig\");\nvar se_HttpRequestMethodConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_HttpRequestMethodConditionConfig\");\nvar se_IpamPools = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IIPI] != null) {\n entries[_IIPI] = input[_IIPI];\n }\n return entries;\n}, \"se_IpamPools\");\nvar se_ListenerArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ListenerArns\");\nvar se_ListenerAttribute = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_ListenerAttribute\");\nvar se_ListenerAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ListenerAttribute(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ListenerAttributes\");\nvar se_ListOfDescribeTargetHealthIncludeOptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ListOfDescribeTargetHealthIncludeOptions\");\nvar se_ListOfString = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ListOfString\");\nvar se_LoadBalancerArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LoadBalancerArns\");\nvar se_LoadBalancerAttribute = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_LoadBalancerAttribute\");\nvar se_LoadBalancerAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_LoadBalancerAttribute(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_LoadBalancerAttributes\");\nvar se_LoadBalancerNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_LoadBalancerNames\");\nvar se_Matcher = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_HC] != null) {\n entries[_HC] = input[_HC];\n }\n if (input[_GC] != null) {\n entries[_GC] = input[_GC];\n }\n return entries;\n}, \"se_Matcher\");\nvar se_MinimumLoadBalancerCapacity = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CU] != null) {\n entries[_CU] = input[_CU];\n }\n return entries;\n}, \"se_MinimumLoadBalancerCapacity\");\nvar se_ModifyCapacityReservationInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_MLBC] != null) {\n const memberEntries = se_MinimumLoadBalancerCapacity(input[_MLBC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MinimumLoadBalancerCapacity.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RCR] != null) {\n entries[_RCR] = input[_RCR];\n }\n return entries;\n}, \"se_ModifyCapacityReservationInput\");\nvar se_ModifyIpPoolsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_IP] != null) {\n const memberEntries = se_IpamPools(input[_IP], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `IpamPools.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RIP] != null) {\n const memberEntries = se_RemoveIpamPools(input[_RIP], context);\n if (input[_RIP]?.length === 0) {\n entries.RemoveIpamPools = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RemoveIpamPools.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyIpPoolsInput\");\nvar se_ModifyListenerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_At] != null) {\n const memberEntries = se_ListenerAttributes(input[_At], context);\n if (input[_At]?.length === 0) {\n entries.Attributes = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attributes.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyListenerAttributesInput\");\nvar se_ModifyListenerInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_SP] != null) {\n entries[_SP] = input[_SP];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DA] != null) {\n const memberEntries = se_Actions(input[_DA], context);\n if (input[_DA]?.length === 0) {\n entries.DefaultActions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `DefaultActions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AP] != null) {\n const memberEntries = se_AlpnPolicyName(input[_AP], context);\n if (input[_AP]?.length === 0) {\n entries.AlpnPolicy = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `AlpnPolicy.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MA] != null) {\n const memberEntries = se_MutualAuthenticationAttributes(input[_MA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `MutualAuthentication.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyListenerInput\");\nvar se_ModifyLoadBalancerAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_At] != null) {\n const memberEntries = se_LoadBalancerAttributes(input[_At], context);\n if (input[_At]?.length === 0) {\n entries.Attributes = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attributes.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyLoadBalancerAttributesInput\");\nvar se_ModifyRuleInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Co] != null) {\n const memberEntries = se_RuleConditionList(input[_Co], context);\n if (input[_Co]?.length === 0) {\n entries.Conditions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Conditions.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_Ac] != null) {\n const memberEntries = se_Actions(input[_Ac], context);\n if (input[_Ac]?.length === 0) {\n entries.Actions = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Actions.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyRuleInput\");\nvar se_ModifyTargetGroupAttributesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_At] != null) {\n const memberEntries = se_TargetGroupAttributes(input[_At], context);\n if (input[_At]?.length === 0) {\n entries.Attributes = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Attributes.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyTargetGroupAttributesInput\");\nvar se_ModifyTargetGroupInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_HCP] != null) {\n entries[_HCP] = input[_HCP];\n }\n if (input[_HCPe] != null) {\n entries[_HCPe] = input[_HCPe];\n }\n if (input[_HCPea] != null) {\n entries[_HCPea] = input[_HCPea];\n }\n if (input[_HCE] != null) {\n entries[_HCE] = input[_HCE];\n }\n if (input[_HCIS] != null) {\n entries[_HCIS] = input[_HCIS];\n }\n if (input[_HCTS] != null) {\n entries[_HCTS] = input[_HCTS];\n }\n if (input[_HTC] != null) {\n entries[_HTC] = input[_HTC];\n }\n if (input[_UTC] != null) {\n entries[_UTC] = input[_UTC];\n }\n if (input[_M] != null) {\n const memberEntries = se_Matcher(input[_M], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Matcher.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ModifyTargetGroupInput\");\nvar se_ModifyTrustStoreInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_CCBSB] != null) {\n entries[_CCBSB] = input[_CCBSB];\n }\n if (input[_CCBSK] != null) {\n entries[_CCBSK] = input[_CCBSK];\n }\n if (input[_CCBSOV] != null) {\n entries[_CCBSOV] = input[_CCBSOV];\n }\n return entries;\n}, \"se_ModifyTrustStoreInput\");\nvar se_MutualAuthenticationAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Mo] != null) {\n entries[_Mo] = input[_Mo];\n }\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_ICCE] != null) {\n entries[_ICCE] = input[_ICCE];\n }\n if (input[_TSAS] != null) {\n entries[_TSAS] = input[_TSAS];\n }\n if (input[_ATSCN] != null) {\n entries[_ATSCN] = input[_ATSCN];\n }\n return entries;\n}, \"se_MutualAuthenticationAttributes\");\nvar se_PathPatternConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_PathPatternConditionConfig\");\nvar se_QueryStringConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_QueryStringKeyValuePairList(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_QueryStringConditionConfig\");\nvar se_QueryStringKeyValuePair = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_QueryStringKeyValuePair\");\nvar se_QueryStringKeyValuePairList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_QueryStringKeyValuePair(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_QueryStringKeyValuePairList\");\nvar se_RedirectActionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_H] != null) {\n entries[_H] = input[_H];\n }\n if (input[_Pa] != null) {\n entries[_Pa] = input[_Pa];\n }\n if (input[_Q] != null) {\n entries[_Q] = input[_Q];\n }\n if (input[_SC] != null) {\n entries[_SC] = input[_SC];\n }\n return entries;\n}, \"se_RedirectActionConfig\");\nvar se_RegisterTargetsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_Tar] != null) {\n const memberEntries = se_TargetDescriptions(input[_Tar], context);\n if (input[_Tar]?.length === 0) {\n entries.Targets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Targets.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RegisterTargetsInput\");\nvar se_RemoveIpamPools = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RemoveIpamPools\");\nvar se_RemoveListenerCertificatesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LA] != null) {\n entries[_LA] = input[_LA];\n }\n if (input[_C] != null) {\n const memberEntries = se_CertificateList(input[_C], context);\n if (input[_C]?.length === 0) {\n entries.Certificates = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Certificates.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RemoveListenerCertificatesInput\");\nvar se_RemoveTagsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n const memberEntries = se_ResourceArns(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TK] != null) {\n const memberEntries = se_TagKeys(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RemoveTagsInput\");\nvar se_RemoveTrustStoreRevocationsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TSA] != null) {\n entries[_TSA] = input[_TSA];\n }\n if (input[_RI] != null) {\n const memberEntries = se_RevocationIds(input[_RI], context);\n if (input[_RI]?.length === 0) {\n entries.RevocationIds = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RevocationIds.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RemoveTrustStoreRevocationsInput\");\nvar se_ResourceArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceArns\");\nvar se_RevocationContent = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SB] != null) {\n entries[_SB] = input[_SB];\n }\n if (input[_SK] != null) {\n entries[_SK] = input[_SK];\n }\n if (input[_SOV] != null) {\n entries[_SOV] = input[_SOV];\n }\n if (input[_RTev] != null) {\n entries[_RTev] = input[_RTev];\n }\n return entries;\n}, \"se_RevocationContent\");\nvar se_RevocationContents = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RevocationContent(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RevocationContents\");\nvar se_RevocationIds = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RevocationIds\");\nvar se_RuleArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_RuleArns\");\nvar se_RuleCondition = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_F] != null) {\n entries[_F] = input[_F];\n }\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HHC] != null) {\n const memberEntries = se_HostHeaderConditionConfig(input[_HHC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HostHeaderConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PPC] != null) {\n const memberEntries = se_PathPatternConditionConfig(input[_PPC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PathPatternConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HHCt] != null) {\n const memberEntries = se_HttpHeaderConditionConfig(input[_HHCt], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HttpHeaderConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_QSC] != null) {\n const memberEntries = se_QueryStringConditionConfig(input[_QSC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `QueryStringConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_HRMC] != null) {\n const memberEntries = se_HttpRequestMethodConditionConfig(input[_HRMC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `HttpRequestMethodConfig.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SIC] != null) {\n const memberEntries = se_SourceIpConditionConfig(input[_SIC], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SourceIpConfig.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_RuleCondition\");\nvar se_RuleConditionList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RuleCondition(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RuleConditionList\");\nvar se_RulePriorityList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_RulePriorityPair(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_RulePriorityList\");\nvar se_RulePriorityPair = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RAu] != null) {\n entries[_RAu] = input[_RAu];\n }\n if (input[_Pr] != null) {\n entries[_Pr] = input[_Pr];\n }\n return entries;\n}, \"se_RulePriorityPair\");\nvar se_SecurityGroups = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SecurityGroups\");\nvar se_SetIpAddressTypeInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n return entries;\n}, \"se_SetIpAddressTypeInput\");\nvar se_SetRulePrioritiesInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RP] != null) {\n const memberEntries = se_RulePriorityList(input[_RP], context);\n if (input[_RP]?.length === 0) {\n entries.RulePriorities = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `RulePriorities.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SetRulePrioritiesInput\");\nvar se_SetSecurityGroupsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_SG] != null) {\n const memberEntries = se_SecurityGroups(input[_SG], context);\n if (input[_SG]?.length === 0) {\n entries.SecurityGroups = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SecurityGroups.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_ESGIROPLT] != null) {\n entries[_ESGIROPLT] = input[_ESGIROPLT];\n }\n return entries;\n}, \"se_SetSecurityGroupsInput\");\nvar se_SetSubnetsInput = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_LBA] != null) {\n entries[_LBA] = input[_LBA];\n }\n if (input[_Su] != null) {\n const memberEntries = se_Subnets(input[_Su], context);\n if (input[_Su]?.length === 0) {\n entries.Subnets = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Subnets.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_SM] != null) {\n const memberEntries = se_SubnetMappings(input[_SM], context);\n if (input[_SM]?.length === 0) {\n entries.SubnetMappings = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `SubnetMappings.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_IAT] != null) {\n entries[_IAT] = input[_IAT];\n }\n if (input[_EPFISN] != null) {\n entries[_EPFISN] = input[_EPFISN];\n }\n return entries;\n}, \"se_SetSubnetsInput\");\nvar se_SourceIpConditionConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Va] != null) {\n const memberEntries = se_ListOfString(input[_Va], context);\n if (input[_Va]?.length === 0) {\n entries.Values = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Values.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_SourceIpConditionConfig\");\nvar se_SslPolicyNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SslPolicyNames\");\nvar se_SubnetMapping = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_AI] != null) {\n entries[_AI] = input[_AI];\n }\n if (input[_PIPA] != null) {\n entries[_PIPA] = input[_PIPA];\n }\n if (input[_IPA] != null) {\n entries[_IPA] = input[_IPA];\n }\n if (input[_SNIP] != null) {\n entries[_SNIP] = input[_SNIP];\n }\n return entries;\n}, \"se_SubnetMapping\");\nvar se_SubnetMappings = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_SubnetMapping(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_SubnetMappings\");\nvar se_Subnets = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_Subnets\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_Tag\");\nvar se_TagKeys = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TagKeys\");\nvar se_TagList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TagList\");\nvar se_TargetDescription = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Id] != null) {\n entries[_Id] = input[_Id];\n }\n if (input[_Po] != null) {\n entries[_Po] = input[_Po];\n }\n if (input[_AZ] != null) {\n entries[_AZ] = input[_AZ];\n }\n return entries;\n}, \"se_TargetDescription\");\nvar se_TargetDescriptions = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetDescription(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetDescriptions\");\nvar se_TargetGroupArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TargetGroupArns\");\nvar se_TargetGroupAttribute = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Val] != null) {\n entries[_Val] = input[_Val];\n }\n return entries;\n}, \"se_TargetGroupAttribute\");\nvar se_TargetGroupAttributes = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetGroupAttribute(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetGroupAttributes\");\nvar se_TargetGroupList = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_TargetGroupTuple(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_TargetGroupList\");\nvar se_TargetGroupNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TargetGroupNames\");\nvar se_TargetGroupStickinessConfig = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_E] != null) {\n entries[_E] = input[_E];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_TargetGroupStickinessConfig\");\nvar se_TargetGroupTuple = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TGA] != null) {\n entries[_TGA] = input[_TGA];\n }\n if (input[_W] != null) {\n entries[_W] = input[_W];\n }\n return entries;\n}, \"se_TargetGroupTuple\");\nvar se_TrustStoreArns = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrustStoreArns\");\nvar se_TrustStoreNames = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_TrustStoreNames\");\nvar de_Action = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_TGA] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_TGA]);\n }\n if (output[_AOC] != null) {\n contents[_AOC] = de_AuthenticateOidcActionConfig(output[_AOC], context);\n }\n if (output[_ACC] != null) {\n contents[_ACC] = de_AuthenticateCognitoActionConfig(output[_ACC], context);\n }\n if (output[_O] != null) {\n contents[_O] = (0, import_smithy_client.strictParseInt32)(output[_O]);\n }\n if (output[_RC] != null) {\n contents[_RC] = de_RedirectActionConfig(output[_RC], context);\n }\n if (output[_FRC] != null) {\n contents[_FRC] = de_FixedResponseActionConfig(output[_FRC], context);\n }\n if (output[_FC] != null) {\n contents[_FC] = de_ForwardActionConfig(output[_FC], context);\n }\n return contents;\n}, \"de_Action\");\nvar de_Actions = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Action(entry, context);\n });\n}, \"de_Actions\");\nvar de_AddListenerCertificatesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Certificates === \"\") {\n contents[_C] = [];\n } else if (output[_C] != null && output[_C][_m] != null) {\n contents[_C] = de_CertificateList((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context);\n }\n return contents;\n}, \"de_AddListenerCertificatesOutput\");\nvar de_AddTagsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_AddTagsOutput\");\nvar de_AddTrustStoreRevocationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStoreRevocations === \"\") {\n contents[_TSR] = [];\n } else if (output[_TSR] != null && output[_TSR][_m] != null) {\n contents[_TSR] = de_TrustStoreRevocations((0, import_smithy_client.getArrayIfSingleItem)(output[_TSR][_m]), context);\n }\n return contents;\n}, \"de_AddTrustStoreRevocationsOutput\");\nvar de_AdministrativeOverride = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n return contents;\n}, \"de_AdministrativeOverride\");\nvar de_AllocationIdNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_AllocationIdNotFoundException\");\nvar de_AlpnPolicyName = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AlpnPolicyName\");\nvar de_ALPNPolicyNotSupportedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ALPNPolicyNotSupportedException\");\nvar de_AnomalyDetection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_MIE] != null) {\n contents[_MIE] = (0, import_smithy_client.expectString)(output[_MIE]);\n }\n return contents;\n}, \"de_AnomalyDetection\");\nvar de_AuthenticateCognitoActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_AuthenticateCognitoActionAuthenticationRequestExtraParams\");\nvar de_AuthenticateCognitoActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UPA] != null) {\n contents[_UPA] = (0, import_smithy_client.expectString)(output[_UPA]);\n }\n if (output[_UPCI] != null) {\n contents[_UPCI] = (0, import_smithy_client.expectString)(output[_UPCI]);\n }\n if (output[_UPD] != null) {\n contents[_UPD] = (0, import_smithy_client.expectString)(output[_UPD]);\n }\n if (output[_SCN] != null) {\n contents[_SCN] = (0, import_smithy_client.expectString)(output[_SCN]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.strictParseLong)(output[_ST]);\n }\n if (output.AuthenticationRequestExtraParams === \"\") {\n contents[_AREP] = {};\n } else if (output[_AREP] != null && output[_AREP][_e] != null) {\n contents[_AREP] = de_AuthenticateCognitoActionAuthenticationRequestExtraParams(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_AREP][_e]),\n context\n );\n }\n if (output[_OUR] != null) {\n contents[_OUR] = (0, import_smithy_client.expectString)(output[_OUR]);\n }\n return contents;\n}, \"de_AuthenticateCognitoActionConfig\");\nvar de_AuthenticateOidcActionAuthenticationRequestExtraParams = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_AuthenticateOidcActionAuthenticationRequestExtraParams\");\nvar de_AuthenticateOidcActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_AE] != null) {\n contents[_AE] = (0, import_smithy_client.expectString)(output[_AE]);\n }\n if (output[_TE] != null) {\n contents[_TE] = (0, import_smithy_client.expectString)(output[_TE]);\n }\n if (output[_UIE] != null) {\n contents[_UIE] = (0, import_smithy_client.expectString)(output[_UIE]);\n }\n if (output[_CI] != null) {\n contents[_CI] = (0, import_smithy_client.expectString)(output[_CI]);\n }\n if (output[_CS] != null) {\n contents[_CS] = (0, import_smithy_client.expectString)(output[_CS]);\n }\n if (output[_SCN] != null) {\n contents[_SCN] = (0, import_smithy_client.expectString)(output[_SCN]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.strictParseLong)(output[_ST]);\n }\n if (output.AuthenticationRequestExtraParams === \"\") {\n contents[_AREP] = {};\n } else if (output[_AREP] != null && output[_AREP][_e] != null) {\n contents[_AREP] = de_AuthenticateOidcActionAuthenticationRequestExtraParams(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_AREP][_e]),\n context\n );\n }\n if (output[_OUR] != null) {\n contents[_OUR] = (0, import_smithy_client.expectString)(output[_OUR]);\n }\n if (output[_UECS] != null) {\n contents[_UECS] = (0, import_smithy_client.parseBoolean)(output[_UECS]);\n }\n return contents;\n}, \"de_AuthenticateOidcActionConfig\");\nvar de_AvailabilityZone = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ZN] != null) {\n contents[_ZN] = (0, import_smithy_client.expectString)(output[_ZN]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.LoadBalancerAddresses === \"\") {\n contents[_LBAoa] = [];\n } else if (output[_LBAoa] != null && output[_LBAoa][_m] != null) {\n contents[_LBAoa] = de_LoadBalancerAddresses((0, import_smithy_client.getArrayIfSingleItem)(output[_LBAoa][_m]), context);\n }\n if (output.SourceNatIpv6Prefixes === \"\") {\n contents[_SNIPo] = [];\n } else if (output[_SNIPo] != null && output[_SNIPo][_m] != null) {\n contents[_SNIPo] = de_SourceNatIpv6Prefixes((0, import_smithy_client.getArrayIfSingleItem)(output[_SNIPo][_m]), context);\n }\n return contents;\n}, \"de_AvailabilityZone\");\nvar de_AvailabilityZoneNotSupportedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_AvailabilityZoneNotSupportedException\");\nvar de_AvailabilityZones = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AvailabilityZone(entry, context);\n });\n}, \"de_AvailabilityZones\");\nvar de_CaCertificatesBundleNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CaCertificatesBundleNotFoundException\");\nvar de_CapacityDecreaseRequestsLimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CapacityDecreaseRequestsLimitExceededException\");\nvar de_CapacityReservationPendingException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CapacityReservationPendingException\");\nvar de_CapacityReservationStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Cod] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_Cod]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_CapacityReservationStatus\");\nvar de_CapacityUnitsLimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CapacityUnitsLimitExceededException\");\nvar de_Certificate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CA] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_CA]);\n }\n if (output[_ID] != null) {\n contents[_ID] = (0, import_smithy_client.parseBoolean)(output[_ID]);\n }\n return contents;\n}, \"de_Certificate\");\nvar de_CertificateList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Certificate(entry, context);\n });\n}, \"de_CertificateList\");\nvar de_CertificateNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CertificateNotFoundException\");\nvar de_Cipher = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.strictParseInt32)(output[_Pr]);\n }\n return contents;\n}, \"de_Cipher\");\nvar de_Ciphers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Cipher(entry, context);\n });\n}, \"de_Ciphers\");\nvar de_CreateListenerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Listeners === \"\") {\n contents[_L] = [];\n } else if (output[_L] != null && output[_L][_m] != null) {\n contents[_L] = de_Listeners((0, import_smithy_client.getArrayIfSingleItem)(output[_L][_m]), context);\n }\n return contents;\n}, \"de_CreateListenerOutput\");\nvar de_CreateLoadBalancerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.LoadBalancers === \"\") {\n contents[_LB] = [];\n } else if (output[_LB] != null && output[_LB][_m] != null) {\n contents[_LB] = de_LoadBalancers((0, import_smithy_client.getArrayIfSingleItem)(output[_LB][_m]), context);\n }\n return contents;\n}, \"de_CreateLoadBalancerOutput\");\nvar de_CreateRuleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n return contents;\n}, \"de_CreateRuleOutput\");\nvar de_CreateTargetGroupOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n return contents;\n}, \"de_CreateTargetGroupOutput\");\nvar de_CreateTrustStoreOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStores === \"\") {\n contents[_TS] = [];\n } else if (output[_TS] != null && output[_TS][_m] != null) {\n contents[_TS] = de_TrustStores((0, import_smithy_client.getArrayIfSingleItem)(output[_TS][_m]), context);\n }\n return contents;\n}, \"de_CreateTrustStoreOutput\");\nvar de_DeleteAssociationSameAccountException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DeleteAssociationSameAccountException\");\nvar de_DeleteListenerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteListenerOutput\");\nvar de_DeleteLoadBalancerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteLoadBalancerOutput\");\nvar de_DeleteRuleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteRuleOutput\");\nvar de_DeleteSharedTrustStoreAssociationOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteSharedTrustStoreAssociationOutput\");\nvar de_DeleteTargetGroupOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteTargetGroupOutput\");\nvar de_DeleteTrustStoreOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeleteTrustStoreOutput\");\nvar de_DeregisterTargetsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_DeregisterTargetsOutput\");\nvar de_DescribeAccountLimitsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Limits === \"\") {\n contents[_Li] = [];\n } else if (output[_Li] != null && output[_Li][_m] != null) {\n contents[_Li] = de_Limits((0, import_smithy_client.getArrayIfSingleItem)(output[_Li][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeAccountLimitsOutput\");\nvar de_DescribeCapacityReservationOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LMT] != null) {\n contents[_LMT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LMT]));\n }\n if (output[_DRR] != null) {\n contents[_DRR] = (0, import_smithy_client.strictParseInt32)(output[_DRR]);\n }\n if (output[_MLBC] != null) {\n contents[_MLBC] = de_MinimumLoadBalancerCapacity(output[_MLBC], context);\n }\n if (output.CapacityReservationState === \"\") {\n contents[_CRS] = [];\n } else if (output[_CRS] != null && output[_CRS][_m] != null) {\n contents[_CRS] = de_ZonalCapacityReservationStates((0, import_smithy_client.getArrayIfSingleItem)(output[_CRS][_m]), context);\n }\n return contents;\n}, \"de_DescribeCapacityReservationOutput\");\nvar de_DescribeListenerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_ListenerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_DescribeListenerAttributesOutput\");\nvar de_DescribeListenerCertificatesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Certificates === \"\") {\n contents[_C] = [];\n } else if (output[_C] != null && output[_C][_m] != null) {\n contents[_C] = de_CertificateList((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeListenerCertificatesOutput\");\nvar de_DescribeListenersOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Listeners === \"\") {\n contents[_L] = [];\n } else if (output[_L] != null && output[_L][_m] != null) {\n contents[_L] = de_Listeners((0, import_smithy_client.getArrayIfSingleItem)(output[_L][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeListenersOutput\");\nvar de_DescribeLoadBalancerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_LoadBalancerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_DescribeLoadBalancerAttributesOutput\");\nvar de_DescribeLoadBalancersOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.LoadBalancers === \"\") {\n contents[_LB] = [];\n } else if (output[_LB] != null && output[_LB][_m] != null) {\n contents[_LB] = de_LoadBalancers((0, import_smithy_client.getArrayIfSingleItem)(output[_LB][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeLoadBalancersOutput\");\nvar de_DescribeRulesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeRulesOutput\");\nvar de_DescribeSSLPoliciesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SslPolicies === \"\") {\n contents[_SPs] = [];\n } else if (output[_SPs] != null && output[_SPs][_m] != null) {\n contents[_SPs] = de_SslPolicies((0, import_smithy_client.getArrayIfSingleItem)(output[_SPs][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeSSLPoliciesOutput\");\nvar de_DescribeTagsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TagDescriptions === \"\") {\n contents[_TD] = [];\n } else if (output[_TD] != null && output[_TD][_m] != null) {\n contents[_TD] = de_TagDescriptions((0, import_smithy_client.getArrayIfSingleItem)(output[_TD][_m]), context);\n }\n return contents;\n}, \"de_DescribeTagsOutput\");\nvar de_DescribeTargetGroupAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_TargetGroupAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_DescribeTargetGroupAttributesOutput\");\nvar de_DescribeTargetGroupsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTargetGroupsOutput\");\nvar de_DescribeTargetHealthOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetHealthDescriptions === \"\") {\n contents[_THD] = [];\n } else if (output[_THD] != null && output[_THD][_m] != null) {\n contents[_THD] = de_TargetHealthDescriptions((0, import_smithy_client.getArrayIfSingleItem)(output[_THD][_m]), context);\n }\n return contents;\n}, \"de_DescribeTargetHealthOutput\");\nvar de_DescribeTrustStoreAssociationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStoreAssociations === \"\") {\n contents[_TSAru] = [];\n } else if (output[_TSAru] != null && output[_TSAru][_m] != null) {\n contents[_TSAru] = de_TrustStoreAssociations((0, import_smithy_client.getArrayIfSingleItem)(output[_TSAru][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTrustStoreAssociationsOutput\");\nvar de_DescribeTrustStoreRevocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_RIe] != null) {\n contents[_RIe] = (0, import_smithy_client.strictParseLong)(output[_RIe]);\n }\n if (output[_RTev] != null) {\n contents[_RTev] = (0, import_smithy_client.expectString)(output[_RTev]);\n }\n if (output[_NORE] != null) {\n contents[_NORE] = (0, import_smithy_client.strictParseLong)(output[_NORE]);\n }\n return contents;\n}, \"de_DescribeTrustStoreRevocation\");\nvar de_DescribeTrustStoreRevocationResponse = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DescribeTrustStoreRevocation(entry, context);\n });\n}, \"de_DescribeTrustStoreRevocationResponse\");\nvar de_DescribeTrustStoreRevocationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStoreRevocations === \"\") {\n contents[_TSR] = [];\n } else if (output[_TSR] != null && output[_TSR][_m] != null) {\n contents[_TSR] = de_DescribeTrustStoreRevocationResponse((0, import_smithy_client.getArrayIfSingleItem)(output[_TSR][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTrustStoreRevocationsOutput\");\nvar de_DescribeTrustStoresOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStores === \"\") {\n contents[_TS] = [];\n } else if (output[_TS] != null && output[_TS][_m] != null) {\n contents[_TS] = de_TrustStores((0, import_smithy_client.getArrayIfSingleItem)(output[_TS][_m]), context);\n }\n if (output[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(output[_NM]);\n }\n return contents;\n}, \"de_DescribeTrustStoresOutput\");\nvar de_DuplicateListenerException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateListenerException\");\nvar de_DuplicateLoadBalancerNameException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateLoadBalancerNameException\");\nvar de_DuplicateTagKeysException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateTagKeysException\");\nvar de_DuplicateTargetGroupNameException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateTargetGroupNameException\");\nvar de_DuplicateTrustStoreNameException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_DuplicateTrustStoreNameException\");\nvar de_FixedResponseActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MB] != null) {\n contents[_MB] = (0, import_smithy_client.expectString)(output[_MB]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n return contents;\n}, \"de_FixedResponseActionConfig\");\nvar de_ForwardActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroupList((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n if (output[_TGSC] != null) {\n contents[_TGSC] = de_TargetGroupStickinessConfig(output[_TGSC], context);\n }\n return contents;\n}, \"de_ForwardActionConfig\");\nvar de_GetResourcePolicyOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Pol] != null) {\n contents[_Pol] = (0, import_smithy_client.expectString)(output[_Pol]);\n }\n return contents;\n}, \"de_GetResourcePolicyOutput\");\nvar de_GetTrustStoreCaCertificatesBundleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_Lo]);\n }\n return contents;\n}, \"de_GetTrustStoreCaCertificatesBundleOutput\");\nvar de_GetTrustStoreRevocationContentOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_Lo]);\n }\n return contents;\n}, \"de_GetTrustStoreRevocationContentOutput\");\nvar de_HealthUnavailableException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_HealthUnavailableException\");\nvar de_HostHeaderConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_HostHeaderConditionConfig\");\nvar de_HttpHeaderConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HHN] != null) {\n contents[_HHN] = (0, import_smithy_client.expectString)(output[_HHN]);\n }\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_HttpHeaderConditionConfig\");\nvar de_HttpRequestMethodConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_HttpRequestMethodConditionConfig\");\nvar de_IncompatibleProtocolsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_IncompatibleProtocolsException\");\nvar de_InsufficientCapacityException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InsufficientCapacityException\");\nvar de_InvalidCaCertificatesBundleException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidCaCertificatesBundleException\");\nvar de_InvalidConfigurationRequestException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidConfigurationRequestException\");\nvar de_InvalidLoadBalancerActionException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidLoadBalancerActionException\");\nvar de_InvalidRevocationContentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidRevocationContentException\");\nvar de_InvalidSchemeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidSchemeException\");\nvar de_InvalidSecurityGroupException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidSecurityGroupException\");\nvar de_InvalidSubnetException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidSubnetException\");\nvar de_InvalidTargetException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_InvalidTargetException\");\nvar de_IpamPools = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IIPI] != null) {\n contents[_IIPI] = (0, import_smithy_client.expectString)(output[_IIPI]);\n }\n return contents;\n}, \"de_IpamPools\");\nvar de_Limit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Max] != null) {\n contents[_Max] = (0, import_smithy_client.expectString)(output[_Max]);\n }\n return contents;\n}, \"de_Limit\");\nvar de_Limits = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Limit(entry, context);\n });\n}, \"de_Limits\");\nvar de_Listener = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LA] != null) {\n contents[_LA] = (0, import_smithy_client.expectString)(output[_LA]);\n }\n if (output[_LBA] != null) {\n contents[_LBA] = (0, import_smithy_client.expectString)(output[_LBA]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_Po]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Certificates === \"\") {\n contents[_C] = [];\n } else if (output[_C] != null && output[_C][_m] != null) {\n contents[_C] = de_CertificateList((0, import_smithy_client.getArrayIfSingleItem)(output[_C][_m]), context);\n }\n if (output[_SP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_SP]);\n }\n if (output.DefaultActions === \"\") {\n contents[_DA] = [];\n } else if (output[_DA] != null && output[_DA][_m] != null) {\n contents[_DA] = de_Actions((0, import_smithy_client.getArrayIfSingleItem)(output[_DA][_m]), context);\n }\n if (output.AlpnPolicy === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_m] != null) {\n contents[_AP] = de_AlpnPolicyName((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_m]), context);\n }\n if (output[_MA] != null) {\n contents[_MA] = de_MutualAuthenticationAttributes(output[_MA], context);\n }\n return contents;\n}, \"de_Listener\");\nvar de_ListenerAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_ListenerAttribute\");\nvar de_ListenerAttributes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ListenerAttribute(entry, context);\n });\n}, \"de_ListenerAttributes\");\nvar de_ListenerNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ListenerNotFoundException\");\nvar de_Listeners = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Listener(entry, context);\n });\n}, \"de_Listeners\");\nvar de_ListOfString = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ListOfString\");\nvar de_LoadBalancer = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LBA] != null) {\n contents[_LBA] = (0, import_smithy_client.expectString)(output[_LBA]);\n }\n if (output[_DNSN] != null) {\n contents[_DNSN] = (0, import_smithy_client.expectString)(output[_DNSN]);\n }\n if (output[_CHZI] != null) {\n contents[_CHZI] = (0, import_smithy_client.expectString)(output[_CHZI]);\n }\n if (output[_CTr] != null) {\n contents[_CTr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CTr]));\n }\n if (output[_LBN] != null) {\n contents[_LBN] = (0, import_smithy_client.expectString)(output[_LBN]);\n }\n if (output[_Sc] != null) {\n contents[_Sc] = (0, import_smithy_client.expectString)(output[_Sc]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_St] != null) {\n contents[_St] = de_LoadBalancerState(output[_St], context);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output.AvailabilityZones === \"\") {\n contents[_AZv] = [];\n } else if (output[_AZv] != null && output[_AZv][_m] != null) {\n contents[_AZv] = de_AvailabilityZones((0, import_smithy_client.getArrayIfSingleItem)(output[_AZv][_m]), context);\n }\n if (output.SecurityGroups === \"\") {\n contents[_SG] = [];\n } else if (output[_SG] != null && output[_SG][_m] != null) {\n contents[_SG] = de_SecurityGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_SG][_m]), context);\n }\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n if (output[_COIP] != null) {\n contents[_COIP] = (0, import_smithy_client.expectString)(output[_COIP]);\n }\n if (output[_ESGIROPLT] != null) {\n contents[_ESGIROPLT] = (0, import_smithy_client.expectString)(output[_ESGIROPLT]);\n }\n if (output[_EPFISN] != null) {\n contents[_EPFISN] = (0, import_smithy_client.expectString)(output[_EPFISN]);\n }\n if (output[_IP] != null) {\n contents[_IP] = de_IpamPools(output[_IP], context);\n }\n return contents;\n}, \"de_LoadBalancer\");\nvar de_LoadBalancerAddress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IA] != null) {\n contents[_IA] = (0, import_smithy_client.expectString)(output[_IA]);\n }\n if (output[_AI] != null) {\n contents[_AI] = (0, import_smithy_client.expectString)(output[_AI]);\n }\n if (output[_PIPA] != null) {\n contents[_PIPA] = (0, import_smithy_client.expectString)(output[_PIPA]);\n }\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.expectString)(output[_IPA]);\n }\n return contents;\n}, \"de_LoadBalancerAddress\");\nvar de_LoadBalancerAddresses = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadBalancerAddress(entry, context);\n });\n}, \"de_LoadBalancerAddresses\");\nvar de_LoadBalancerArns = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_LoadBalancerArns\");\nvar de_LoadBalancerAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_LoadBalancerAttribute\");\nvar de_LoadBalancerAttributes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadBalancerAttribute(entry, context);\n });\n}, \"de_LoadBalancerAttributes\");\nvar de_LoadBalancerNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_LoadBalancerNotFoundException\");\nvar de_LoadBalancers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LoadBalancer(entry, context);\n });\n}, \"de_LoadBalancers\");\nvar de_LoadBalancerState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Cod] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_Cod]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_LoadBalancerState\");\nvar de_Matcher = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HC] != null) {\n contents[_HC] = (0, import_smithy_client.expectString)(output[_HC]);\n }\n if (output[_GC] != null) {\n contents[_GC] = (0, import_smithy_client.expectString)(output[_GC]);\n }\n return contents;\n}, \"de_Matcher\");\nvar de_MinimumLoadBalancerCapacity = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CU] != null) {\n contents[_CU] = (0, import_smithy_client.strictParseInt32)(output[_CU]);\n }\n return contents;\n}, \"de_MinimumLoadBalancerCapacity\");\nvar de_ModifyCapacityReservationOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LMT] != null) {\n contents[_LMT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LMT]));\n }\n if (output[_DRR] != null) {\n contents[_DRR] = (0, import_smithy_client.strictParseInt32)(output[_DRR]);\n }\n if (output[_MLBC] != null) {\n contents[_MLBC] = de_MinimumLoadBalancerCapacity(output[_MLBC], context);\n }\n if (output.CapacityReservationState === \"\") {\n contents[_CRS] = [];\n } else if (output[_CRS] != null && output[_CRS][_m] != null) {\n contents[_CRS] = de_ZonalCapacityReservationStates((0, import_smithy_client.getArrayIfSingleItem)(output[_CRS][_m]), context);\n }\n return contents;\n}, \"de_ModifyCapacityReservationOutput\");\nvar de_ModifyIpPoolsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = de_IpamPools(output[_IP], context);\n }\n return contents;\n}, \"de_ModifyIpPoolsOutput\");\nvar de_ModifyListenerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_ListenerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_ModifyListenerAttributesOutput\");\nvar de_ModifyListenerOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Listeners === \"\") {\n contents[_L] = [];\n } else if (output[_L] != null && output[_L][_m] != null) {\n contents[_L] = de_Listeners((0, import_smithy_client.getArrayIfSingleItem)(output[_L][_m]), context);\n }\n return contents;\n}, \"de_ModifyListenerOutput\");\nvar de_ModifyLoadBalancerAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_LoadBalancerAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_ModifyLoadBalancerAttributesOutput\");\nvar de_ModifyRuleOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n return contents;\n}, \"de_ModifyRuleOutput\");\nvar de_ModifyTargetGroupAttributesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Attributes === \"\") {\n contents[_At] = [];\n } else if (output[_At] != null && output[_At][_m] != null) {\n contents[_At] = de_TargetGroupAttributes((0, import_smithy_client.getArrayIfSingleItem)(output[_At][_m]), context);\n }\n return contents;\n}, \"de_ModifyTargetGroupAttributesOutput\");\nvar de_ModifyTargetGroupOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TargetGroups === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_m] != null) {\n contents[_TG] = de_TargetGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_m]), context);\n }\n return contents;\n}, \"de_ModifyTargetGroupOutput\");\nvar de_ModifyTrustStoreOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.TrustStores === \"\") {\n contents[_TS] = [];\n } else if (output[_TS] != null && output[_TS][_m] != null) {\n contents[_TS] = de_TrustStores((0, import_smithy_client.getArrayIfSingleItem)(output[_TS][_m]), context);\n }\n return contents;\n}, \"de_ModifyTrustStoreOutput\");\nvar de_MutualAuthenticationAttributes = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mo] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_Mo]);\n }\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_ICCE] != null) {\n contents[_ICCE] = (0, import_smithy_client.parseBoolean)(output[_ICCE]);\n }\n if (output[_TSAS] != null) {\n contents[_TSAS] = (0, import_smithy_client.expectString)(output[_TSAS]);\n }\n if (output[_ATSCN] != null) {\n contents[_ATSCN] = (0, import_smithy_client.expectString)(output[_ATSCN]);\n }\n return contents;\n}, \"de_MutualAuthenticationAttributes\");\nvar de_OperationNotPermittedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_OperationNotPermittedException\");\nvar de_PathPatternConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_PathPatternConditionConfig\");\nvar de_PriorityInUseException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_PriorityInUseException\");\nvar de_PriorRequestNotCompleteException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_PriorRequestNotCompleteException\");\nvar de_QueryStringConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_QueryStringKeyValuePairList((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_QueryStringConditionConfig\");\nvar de_QueryStringKeyValuePair = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_QueryStringKeyValuePair\");\nvar de_QueryStringKeyValuePairList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_QueryStringKeyValuePair(entry, context);\n });\n}, \"de_QueryStringKeyValuePairList\");\nvar de_RedirectActionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.expectString)(output[_Po]);\n }\n if (output[_H] != null) {\n contents[_H] = (0, import_smithy_client.expectString)(output[_H]);\n }\n if (output[_Pa] != null) {\n contents[_Pa] = (0, import_smithy_client.expectString)(output[_Pa]);\n }\n if (output[_Q] != null) {\n contents[_Q] = (0, import_smithy_client.expectString)(output[_Q]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n return contents;\n}, \"de_RedirectActionConfig\");\nvar de_RegisterTargetsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RegisterTargetsOutput\");\nvar de_RemoveListenerCertificatesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RemoveListenerCertificatesOutput\");\nvar de_RemoveTagsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RemoveTagsOutput\");\nvar de_RemoveTrustStoreRevocationsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_RemoveTrustStoreRevocationsOutput\");\nvar de_ResourceInUseException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ResourceInUseException\");\nvar de_ResourceNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ResourceNotFoundException\");\nvar de_RevocationContentNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_RevocationContentNotFoundException\");\nvar de_RevocationIdNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_RevocationIdNotFoundException\");\nvar de_Rule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RAu] != null) {\n contents[_RAu] = (0, import_smithy_client.expectString)(output[_RAu]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n if (output.Conditions === \"\") {\n contents[_Co] = [];\n } else if (output[_Co] != null && output[_Co][_m] != null) {\n contents[_Co] = de_RuleConditionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Co][_m]), context);\n }\n if (output.Actions === \"\") {\n contents[_Ac] = [];\n } else if (output[_Ac] != null && output[_Ac][_m] != null) {\n contents[_Ac] = de_Actions((0, import_smithy_client.getArrayIfSingleItem)(output[_Ac][_m]), context);\n }\n if (output[_ID] != null) {\n contents[_ID] = (0, import_smithy_client.parseBoolean)(output[_ID]);\n }\n return contents;\n}, \"de_Rule\");\nvar de_RuleCondition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_F] != null) {\n contents[_F] = (0, import_smithy_client.expectString)(output[_F]);\n }\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n if (output[_HHC] != null) {\n contents[_HHC] = de_HostHeaderConditionConfig(output[_HHC], context);\n }\n if (output[_PPC] != null) {\n contents[_PPC] = de_PathPatternConditionConfig(output[_PPC], context);\n }\n if (output[_HHCt] != null) {\n contents[_HHCt] = de_HttpHeaderConditionConfig(output[_HHCt], context);\n }\n if (output[_QSC] != null) {\n contents[_QSC] = de_QueryStringConditionConfig(output[_QSC], context);\n }\n if (output[_HRMC] != null) {\n contents[_HRMC] = de_HttpRequestMethodConditionConfig(output[_HRMC], context);\n }\n if (output[_SIC] != null) {\n contents[_SIC] = de_SourceIpConditionConfig(output[_SIC], context);\n }\n return contents;\n}, \"de_RuleCondition\");\nvar de_RuleConditionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RuleCondition(entry, context);\n });\n}, \"de_RuleConditionList\");\nvar de_RuleNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_RuleNotFoundException\");\nvar de_Rules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Rule(entry, context);\n });\n}, \"de_Rules\");\nvar de_SecurityGroups = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SecurityGroups\");\nvar de_SetIpAddressTypeOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n return contents;\n}, \"de_SetIpAddressTypeOutput\");\nvar de_SetRulePrioritiesOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rules === \"\") {\n contents[_Ru] = [];\n } else if (output[_Ru] != null && output[_Ru][_m] != null) {\n contents[_Ru] = de_Rules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru][_m]), context);\n }\n return contents;\n}, \"de_SetRulePrioritiesOutput\");\nvar de_SetSecurityGroupsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SecurityGroupIds === \"\") {\n contents[_SGI] = [];\n } else if (output[_SGI] != null && output[_SGI][_m] != null) {\n contents[_SGI] = de_SecurityGroups((0, import_smithy_client.getArrayIfSingleItem)(output[_SGI][_m]), context);\n }\n if (output[_ESGIROPLT] != null) {\n contents[_ESGIROPLT] = (0, import_smithy_client.expectString)(output[_ESGIROPLT]);\n }\n return contents;\n}, \"de_SetSecurityGroupsOutput\");\nvar de_SetSubnetsOutput = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AvailabilityZones === \"\") {\n contents[_AZv] = [];\n } else if (output[_AZv] != null && output[_AZv][_m] != null) {\n contents[_AZv] = de_AvailabilityZones((0, import_smithy_client.getArrayIfSingleItem)(output[_AZv][_m]), context);\n }\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n if (output[_EPFISN] != null) {\n contents[_EPFISN] = (0, import_smithy_client.expectString)(output[_EPFISN]);\n }\n return contents;\n}, \"de_SetSubnetsOutput\");\nvar de_SourceIpConditionConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Values === \"\") {\n contents[_Va] = [];\n } else if (output[_Va] != null && output[_Va][_m] != null) {\n contents[_Va] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_Va][_m]), context);\n }\n return contents;\n}, \"de_SourceIpConditionConfig\");\nvar de_SourceNatIpv6Prefixes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SourceNatIpv6Prefixes\");\nvar de_SslPolicies = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SslPolicy(entry, context);\n });\n}, \"de_SslPolicies\");\nvar de_SslPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SslProtocols === \"\") {\n contents[_SPsl] = [];\n } else if (output[_SPsl] != null && output[_SPsl][_m] != null) {\n contents[_SPsl] = de_SslProtocols((0, import_smithy_client.getArrayIfSingleItem)(output[_SPsl][_m]), context);\n }\n if (output.Ciphers === \"\") {\n contents[_Ci] = [];\n } else if (output[_Ci] != null && output[_Ci][_m] != null) {\n contents[_Ci] = de_Ciphers((0, import_smithy_client.getArrayIfSingleItem)(output[_Ci][_m]), context);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output.SupportedLoadBalancerTypes === \"\") {\n contents[_SLBT] = [];\n } else if (output[_SLBT] != null && output[_SLBT][_m] != null) {\n contents[_SLBT] = de_ListOfString((0, import_smithy_client.getArrayIfSingleItem)(output[_SLBT][_m]), context);\n }\n return contents;\n}, \"de_SslPolicy\");\nvar de_SSLPolicyNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_SSLPolicyNotFoundException\");\nvar de_SslProtocols = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_SslProtocols\");\nvar de_SubnetNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_SubnetNotFoundException\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RAe] != null) {\n contents[_RAe] = (0, import_smithy_client.expectString)(output[_RAe]);\n }\n if (output.Tags === \"\") {\n contents[_Ta] = [];\n } else if (output[_Ta] != null && output[_Ta][_m] != null) {\n contents[_Ta] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta][_m]), context);\n }\n return contents;\n}, \"de_TagDescription\");\nvar de_TagDescriptions = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TagDescription(entry, context);\n });\n}, \"de_TagDescriptions\");\nvar de_TagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagList\");\nvar de_TargetDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_Po]);\n }\n if (output[_AZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_AZ]);\n }\n return contents;\n}, \"de_TargetDescription\");\nvar de_TargetGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TGA] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_TGA]);\n }\n if (output[_TGN] != null) {\n contents[_TGN] = (0, import_smithy_client.expectString)(output[_TGN]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Po] != null) {\n contents[_Po] = (0, import_smithy_client.strictParseInt32)(output[_Po]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_HCP] != null) {\n contents[_HCP] = (0, import_smithy_client.expectString)(output[_HCP]);\n }\n if (output[_HCPe] != null) {\n contents[_HCPe] = (0, import_smithy_client.expectString)(output[_HCPe]);\n }\n if (output[_HCE] != null) {\n contents[_HCE] = (0, import_smithy_client.parseBoolean)(output[_HCE]);\n }\n if (output[_HCIS] != null) {\n contents[_HCIS] = (0, import_smithy_client.strictParseInt32)(output[_HCIS]);\n }\n if (output[_HCTS] != null) {\n contents[_HCTS] = (0, import_smithy_client.strictParseInt32)(output[_HCTS]);\n }\n if (output[_HTC] != null) {\n contents[_HTC] = (0, import_smithy_client.strictParseInt32)(output[_HTC]);\n }\n if (output[_UTC] != null) {\n contents[_UTC] = (0, import_smithy_client.strictParseInt32)(output[_UTC]);\n }\n if (output[_HCPea] != null) {\n contents[_HCPea] = (0, import_smithy_client.expectString)(output[_HCPea]);\n }\n if (output[_M] != null) {\n contents[_M] = de_Matcher(output[_M], context);\n }\n if (output.LoadBalancerArns === \"\") {\n contents[_LBAo] = [];\n } else if (output[_LBAo] != null && output[_LBAo][_m] != null) {\n contents[_LBAo] = de_LoadBalancerArns((0, import_smithy_client.getArrayIfSingleItem)(output[_LBAo][_m]), context);\n }\n if (output[_TT] != null) {\n contents[_TT] = (0, import_smithy_client.expectString)(output[_TT]);\n }\n if (output[_PV] != null) {\n contents[_PV] = (0, import_smithy_client.expectString)(output[_PV]);\n }\n if (output[_IAT] != null) {\n contents[_IAT] = (0, import_smithy_client.expectString)(output[_IAT]);\n }\n return contents;\n}, \"de_TargetGroup\");\nvar de_TargetGroupAssociationLimitException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TargetGroupAssociationLimitException\");\nvar de_TargetGroupAttribute = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Val] != null) {\n contents[_Val] = (0, import_smithy_client.expectString)(output[_Val]);\n }\n return contents;\n}, \"de_TargetGroupAttribute\");\nvar de_TargetGroupAttributes = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroupAttribute(entry, context);\n });\n}, \"de_TargetGroupAttributes\");\nvar de_TargetGroupList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroupTuple(entry, context);\n });\n}, \"de_TargetGroupList\");\nvar de_TargetGroupNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TargetGroupNotFoundException\");\nvar de_TargetGroups = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGroup(entry, context);\n });\n}, \"de_TargetGroups\");\nvar de_TargetGroupStickinessConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client.parseBoolean)(output[_E]);\n }\n if (output[_DS] != null) {\n contents[_DS] = (0, import_smithy_client.strictParseInt32)(output[_DS]);\n }\n return contents;\n}, \"de_TargetGroupStickinessConfig\");\nvar de_TargetGroupTuple = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TGA] != null) {\n contents[_TGA] = (0, import_smithy_client.expectString)(output[_TGA]);\n }\n if (output[_W] != null) {\n contents[_W] = (0, import_smithy_client.strictParseInt32)(output[_W]);\n }\n return contents;\n}, \"de_TargetGroupTuple\");\nvar de_TargetHealth = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n return contents;\n}, \"de_TargetHealth\");\nvar de_TargetHealthDescription = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Targ] != null) {\n contents[_Targ] = de_TargetDescription(output[_Targ], context);\n }\n if (output[_HCPe] != null) {\n contents[_HCPe] = (0, import_smithy_client.expectString)(output[_HCPe]);\n }\n if (output[_TH] != null) {\n contents[_TH] = de_TargetHealth(output[_TH], context);\n }\n if (output[_AD] != null) {\n contents[_AD] = de_AnomalyDetection(output[_AD], context);\n }\n if (output[_AO] != null) {\n contents[_AO] = de_AdministrativeOverride(output[_AO], context);\n }\n return contents;\n}, \"de_TargetHealthDescription\");\nvar de_TargetHealthDescriptions = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetHealthDescription(entry, context);\n });\n}, \"de_TargetHealthDescriptions\");\nvar de_TooManyActionsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyActionsException\");\nvar de_TooManyCertificatesException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyCertificatesException\");\nvar de_TooManyListenersException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyListenersException\");\nvar de_TooManyLoadBalancersException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyLoadBalancersException\");\nvar de_TooManyRegistrationsForTargetIdException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyRegistrationsForTargetIdException\");\nvar de_TooManyRulesException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyRulesException\");\nvar de_TooManyTagsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTagsException\");\nvar de_TooManyTargetGroupsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTargetGroupsException\");\nvar de_TooManyTargetsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTargetsException\");\nvar de_TooManyTrustStoreRevocationEntriesException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTrustStoreRevocationEntriesException\");\nvar de_TooManyTrustStoresException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyTrustStoresException\");\nvar de_TooManyUniqueTargetGroupsPerLoadBalancerException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TooManyUniqueTargetGroupsPerLoadBalancerException\");\nvar de_TrustStore = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_Sta] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_Sta]);\n }\n if (output[_NOCC] != null) {\n contents[_NOCC] = (0, import_smithy_client.strictParseInt32)(output[_NOCC]);\n }\n if (output[_TRE] != null) {\n contents[_TRE] = (0, import_smithy_client.strictParseLong)(output[_TRE]);\n }\n return contents;\n}, \"de_TrustStore\");\nvar de_TrustStoreAssociation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RAe] != null) {\n contents[_RAe] = (0, import_smithy_client.expectString)(output[_RAe]);\n }\n return contents;\n}, \"de_TrustStoreAssociation\");\nvar de_TrustStoreAssociationNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreAssociationNotFoundException\");\nvar de_TrustStoreAssociations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrustStoreAssociation(entry, context);\n });\n}, \"de_TrustStoreAssociations\");\nvar de_TrustStoreInUseException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreInUseException\");\nvar de_TrustStoreNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreNotFoundException\");\nvar de_TrustStoreNotReadyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_TrustStoreNotReadyException\");\nvar de_TrustStoreRevocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TSA] != null) {\n contents[_TSA] = (0, import_smithy_client.expectString)(output[_TSA]);\n }\n if (output[_RIe] != null) {\n contents[_RIe] = (0, import_smithy_client.strictParseLong)(output[_RIe]);\n }\n if (output[_RTev] != null) {\n contents[_RTev] = (0, import_smithy_client.expectString)(output[_RTev]);\n }\n if (output[_NORE] != null) {\n contents[_NORE] = (0, import_smithy_client.strictParseLong)(output[_NORE]);\n }\n return contents;\n}, \"de_TrustStoreRevocation\");\nvar de_TrustStoreRevocations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrustStoreRevocation(entry, context);\n });\n}, \"de_TrustStoreRevocations\");\nvar de_TrustStores = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrustStore(entry, context);\n });\n}, \"de_TrustStores\");\nvar de_UnsupportedProtocolException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_UnsupportedProtocolException\");\nvar de_ZonalCapacityReservationState = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = de_CapacityReservationStatus(output[_St], context);\n }\n if (output[_AZ] != null) {\n contents[_AZ] = (0, import_smithy_client.expectString)(output[_AZ]);\n }\n if (output[_ECU] != null) {\n contents[_ECU] = (0, import_smithy_client.strictParseFloat)(output[_ECU]);\n }\n return contents;\n}, \"de_ZonalCapacityReservationState\");\nvar de_ZonalCapacityReservationStates = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ZonalCapacityReservationState(entry, context);\n });\n}, \"de_ZonalCapacityReservationStates\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(ElasticLoadBalancingV2ServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2015-12-01\";\nvar _A = \"Action\";\nvar _ACC = \"AuthenticateCognitoConfig\";\nvar _AD = \"AnomalyDetection\";\nvar _AE = \"AuthorizationEndpoint\";\nvar _AI = \"AllocationId\";\nvar _ALC = \"AddListenerCertificates\";\nvar _AO = \"AdministrativeOverride\";\nvar _AOC = \"AuthenticateOidcConfig\";\nvar _AP = \"AlpnPolicy\";\nvar _AREP = \"AuthenticationRequestExtraParams\";\nvar _AT = \"AddTags\";\nvar _ATSCN = \"AdvertiseTrustStoreCaNames\";\nvar _ATSR = \"AddTrustStoreRevocations\";\nvar _AZ = \"AvailabilityZone\";\nvar _AZv = \"AvailabilityZones\";\nvar _Ac = \"Actions\";\nvar _At = \"Attributes\";\nvar _C = \"Certificates\";\nvar _CA = \"CertificateArn\";\nvar _CCBSB = \"CaCertificatesBundleS3Bucket\";\nvar _CCBSK = \"CaCertificatesBundleS3Key\";\nvar _CCBSOV = \"CaCertificatesBundleS3ObjectVersion\";\nvar _CHZI = \"CanonicalHostedZoneId\";\nvar _CI = \"ClientId\";\nvar _CL = \"CreateListener\";\nvar _CLB = \"CreateLoadBalancer\";\nvar _COIP = \"CustomerOwnedIpv4Pool\";\nvar _CR = \"CreateRule\";\nvar _CRS = \"CapacityReservationState\";\nvar _CS = \"ClientSecret\";\nvar _CT = \"ContentType\";\nvar _CTG = \"CreateTargetGroup\";\nvar _CTS = \"CreateTrustStore\";\nvar _CTr = \"CreatedTime\";\nvar _CU = \"CapacityUnits\";\nvar _Ci = \"Ciphers\";\nvar _Co = \"Conditions\";\nvar _Cod = \"Code\";\nvar _D = \"Description\";\nvar _DA = \"DefaultActions\";\nvar _DAL = \"DescribeAccountLimits\";\nvar _DCR = \"DescribeCapacityReservation\";\nvar _DL = \"DeleteListener\";\nvar _DLA = \"DescribeListenerAttributes\";\nvar _DLB = \"DeleteLoadBalancer\";\nvar _DLBA = \"DescribeLoadBalancerAttributes\";\nvar _DLBe = \"DescribeLoadBalancers\";\nvar _DLC = \"DescribeListenerCertificates\";\nvar _DLe = \"DescribeListeners\";\nvar _DNSN = \"DNSName\";\nvar _DR = \"DeleteRule\";\nvar _DRR = \"DecreaseRequestsRemaining\";\nvar _DRe = \"DescribeRules\";\nvar _DS = \"DurationSeconds\";\nvar _DSSLP = \"DescribeSSLPolicies\";\nvar _DSTSA = \"DeleteSharedTrustStoreAssociation\";\nvar _DT = \"DeregisterTargets\";\nvar _DTG = \"DeleteTargetGroup\";\nvar _DTGA = \"DescribeTargetGroupAttributes\";\nvar _DTGe = \"DescribeTargetGroups\";\nvar _DTH = \"DescribeTargetHealth\";\nvar _DTS = \"DeleteTrustStore\";\nvar _DTSA = \"DescribeTrustStoreAssociations\";\nvar _DTSR = \"DescribeTrustStoreRevocations\";\nvar _DTSe = \"DescribeTrustStores\";\nvar _DTe = \"DescribeTags\";\nvar _E = \"Enabled\";\nvar _ECU = \"EffectiveCapacityUnits\";\nvar _EPFISN = \"EnablePrefixForIpv6SourceNat\";\nvar _ESGIROPLT = \"EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic\";\nvar _F = \"Field\";\nvar _FC = \"ForwardConfig\";\nvar _FRC = \"FixedResponseConfig\";\nvar _GC = \"GrpcCode\";\nvar _GRP = \"GetResourcePolicy\";\nvar _GTSCCB = \"GetTrustStoreCaCertificatesBundle\";\nvar _GTSRC = \"GetTrustStoreRevocationContent\";\nvar _H = \"Host\";\nvar _HC = \"HttpCode\";\nvar _HCE = \"HealthCheckEnabled\";\nvar _HCIS = \"HealthCheckIntervalSeconds\";\nvar _HCP = \"HealthCheckProtocol\";\nvar _HCPe = \"HealthCheckPort\";\nvar _HCPea = \"HealthCheckPath\";\nvar _HCTS = \"HealthCheckTimeoutSeconds\";\nvar _HHC = \"HostHeaderConfig\";\nvar _HHCt = \"HttpHeaderConfig\";\nvar _HHN = \"HttpHeaderName\";\nvar _HRMC = \"HttpRequestMethodConfig\";\nvar _HTC = \"HealthyThresholdCount\";\nvar _I = \"Issuer\";\nvar _IA = \"IpAddress\";\nvar _IAT = \"IpAddressType\";\nvar _ICCE = \"IgnoreClientCertificateExpiry\";\nvar _ID = \"IsDefault\";\nvar _IIPI = \"Ipv4IpamPoolId\";\nvar _IP = \"IpamPools\";\nvar _IPA = \"IPv6Address\";\nvar _Id = \"Id\";\nvar _In = \"Include\";\nvar _K = \"Key\";\nvar _L = \"Listeners\";\nvar _LA = \"ListenerArn\";\nvar _LAi = \"ListenerArns\";\nvar _LB = \"LoadBalancers\";\nvar _LBA = \"LoadBalancerArn\";\nvar _LBAo = \"LoadBalancerArns\";\nvar _LBAoa = \"LoadBalancerAddresses\";\nvar _LBN = \"LoadBalancerName\";\nvar _LBT = \"LoadBalancerType\";\nvar _LMT = \"LastModifiedTime\";\nvar _Li = \"Limits\";\nvar _Lo = \"Location\";\nvar _M = \"Matcher\";\nvar _MA = \"MutualAuthentication\";\nvar _MB = \"MessageBody\";\nvar _MCR = \"ModifyCapacityReservation\";\nvar _MIE = \"MitigationInEffect\";\nvar _MIP = \"ModifyIpPools\";\nvar _ML = \"ModifyListener\";\nvar _MLA = \"ModifyListenerAttributes\";\nvar _MLBA = \"ModifyLoadBalancerAttributes\";\nvar _MLBC = \"MinimumLoadBalancerCapacity\";\nvar _MR = \"ModifyRule\";\nvar _MTG = \"ModifyTargetGroup\";\nvar _MTGA = \"ModifyTargetGroupAttributes\";\nvar _MTS = \"ModifyTrustStore\";\nvar _Ma = \"Marker\";\nvar _Max = \"Max\";\nvar _Me = \"Message\";\nvar _Mo = \"Mode\";\nvar _N = \"Name\";\nvar _NM = \"NextMarker\";\nvar _NOCC = \"NumberOfCaCertificates\";\nvar _NORE = \"NumberOfRevokedEntries\";\nvar _Na = \"Names\";\nvar _O = \"Order\";\nvar _OI = \"OutpostId\";\nvar _OUR = \"OnUnauthenticatedRequest\";\nvar _P = \"Protocol\";\nvar _PIPA = \"PrivateIPv4Address\";\nvar _PPC = \"PathPatternConfig\";\nvar _PS = \"PageSize\";\nvar _PV = \"ProtocolVersion\";\nvar _Pa = \"Path\";\nvar _Po = \"Port\";\nvar _Pol = \"Policy\";\nvar _Pr = \"Priority\";\nvar _Q = \"Query\";\nvar _QSC = \"QueryStringConfig\";\nvar _R = \"Reason\";\nvar _RA = \"ResourceArns\";\nvar _RAe = \"ResourceArn\";\nvar _RAu = \"RuleArn\";\nvar _RAul = \"RuleArns\";\nvar _RC = \"RedirectConfig\";\nvar _RCR = \"ResetCapacityReservation\";\nvar _RCe = \"RevocationContents\";\nvar _RI = \"RevocationIds\";\nvar _RIP = \"RemoveIpamPools\";\nvar _RIe = \"RevocationId\";\nvar _RLC = \"RemoveListenerCertificates\";\nvar _RP = \"RulePriorities\";\nvar _RT = \"RegisterTargets\";\nvar _RTSR = \"RemoveTrustStoreRevocations\";\nvar _RTe = \"RemoveTags\";\nvar _RTev = \"RevocationType\";\nvar _Re = \"Result\";\nvar _Ru = \"Rules\";\nvar _S = \"Scope\";\nvar _SB = \"S3Bucket\";\nvar _SC = \"StatusCode\";\nvar _SCN = \"SessionCookieName\";\nvar _SG = \"SecurityGroups\";\nvar _SGI = \"SecurityGroupIds\";\nvar _SI = \"SubnetId\";\nvar _SIAT = \"SetIpAddressType\";\nvar _SIC = \"SourceIpConfig\";\nvar _SK = \"S3Key\";\nvar _SLBT = \"SupportedLoadBalancerTypes\";\nvar _SM = \"SubnetMappings\";\nvar _SNIP = \"SourceNatIpv6Prefix\";\nvar _SNIPo = \"SourceNatIpv6Prefixes\";\nvar _SOV = \"S3ObjectVersion\";\nvar _SP = \"SslPolicy\";\nvar _SPs = \"SslPolicies\";\nvar _SPsl = \"SslProtocols\";\nvar _SRP = \"SetRulePriorities\";\nvar _SS = \"SetSubnets\";\nvar _SSG = \"SetSecurityGroups\";\nvar _ST = \"SessionTimeout\";\nvar _Sc = \"Scheme\";\nvar _St = \"State\";\nvar _Sta = \"Status\";\nvar _Su = \"Subnets\";\nvar _T = \"Type\";\nvar _TD = \"TagDescriptions\";\nvar _TE = \"TokenEndpoint\";\nvar _TG = \"TargetGroups\";\nvar _TGA = \"TargetGroupArn\";\nvar _TGAa = \"TargetGroupArns\";\nvar _TGN = \"TargetGroupName\";\nvar _TGSC = \"TargetGroupStickinessConfig\";\nvar _TH = \"TargetHealth\";\nvar _THD = \"TargetHealthDescriptions\";\nvar _TK = \"TagKeys\";\nvar _TRE = \"TotalRevokedEntries\";\nvar _TS = \"TrustStores\";\nvar _TSA = \"TrustStoreArn\";\nvar _TSAS = \"TrustStoreAssociationStatus\";\nvar _TSAr = \"TrustStoreArns\";\nvar _TSAru = \"TrustStoreAssociations\";\nvar _TSR = \"TrustStoreRevocations\";\nvar _TT = \"TargetType\";\nvar _Ta = \"Tags\";\nvar _Tar = \"Targets\";\nvar _Targ = \"Target\";\nvar _UECS = \"UseExistingClientSecret\";\nvar _UIE = \"UserInfoEndpoint\";\nvar _UPA = \"UserPoolArn\";\nvar _UPCI = \"UserPoolClientId\";\nvar _UPD = \"UserPoolDomain\";\nvar _UTC = \"UnhealthyThresholdCount\";\nvar _V = \"Version\";\nvar _VI = \"VpcId\";\nvar _Va = \"Values\";\nvar _Val = \"Value\";\nvar _W = \"Weight\";\nvar _ZN = \"ZoneName\";\nvar _e = \"entry\";\nvar _m = \"member\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/commands/AddListenerCertificatesCommand.ts\nvar AddListenerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"AddListenerCertificates\", {}).n(\"ElasticLoadBalancingV2Client\", \"AddListenerCertificatesCommand\").f(void 0, void 0).ser(se_AddListenerCertificatesCommand).de(de_AddListenerCertificatesCommand).build() {\n static {\n __name(this, \"AddListenerCertificatesCommand\");\n }\n};\n\n// src/commands/AddTagsCommand.ts\n\n\n\nvar AddTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"AddTags\", {}).n(\"ElasticLoadBalancingV2Client\", \"AddTagsCommand\").f(void 0, void 0).ser(se_AddTagsCommand).de(de_AddTagsCommand).build() {\n static {\n __name(this, \"AddTagsCommand\");\n }\n};\n\n// src/commands/AddTrustStoreRevocationsCommand.ts\n\n\n\nvar AddTrustStoreRevocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"AddTrustStoreRevocations\", {}).n(\"ElasticLoadBalancingV2Client\", \"AddTrustStoreRevocationsCommand\").f(void 0, void 0).ser(se_AddTrustStoreRevocationsCommand).de(de_AddTrustStoreRevocationsCommand).build() {\n static {\n __name(this, \"AddTrustStoreRevocationsCommand\");\n }\n};\n\n// src/commands/CreateListenerCommand.ts\n\n\n\nvar CreateListenerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateListener\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateListenerCommand\").f(void 0, void 0).ser(se_CreateListenerCommand).de(de_CreateListenerCommand).build() {\n static {\n __name(this, \"CreateListenerCommand\");\n }\n};\n\n// src/commands/CreateLoadBalancerCommand.ts\n\n\n\nvar CreateLoadBalancerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateLoadBalancer\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateLoadBalancerCommand\").f(void 0, void 0).ser(se_CreateLoadBalancerCommand).de(de_CreateLoadBalancerCommand).build() {\n static {\n __name(this, \"CreateLoadBalancerCommand\");\n }\n};\n\n// src/commands/CreateRuleCommand.ts\n\n\n\nvar CreateRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateRule\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateRuleCommand\").f(void 0, void 0).ser(se_CreateRuleCommand).de(de_CreateRuleCommand).build() {\n static {\n __name(this, \"CreateRuleCommand\");\n }\n};\n\n// src/commands/CreateTargetGroupCommand.ts\n\n\n\nvar CreateTargetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateTargetGroup\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateTargetGroupCommand\").f(void 0, void 0).ser(se_CreateTargetGroupCommand).de(de_CreateTargetGroupCommand).build() {\n static {\n __name(this, \"CreateTargetGroupCommand\");\n }\n};\n\n// src/commands/CreateTrustStoreCommand.ts\n\n\n\nvar CreateTrustStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"CreateTrustStore\", {}).n(\"ElasticLoadBalancingV2Client\", \"CreateTrustStoreCommand\").f(void 0, void 0).ser(se_CreateTrustStoreCommand).de(de_CreateTrustStoreCommand).build() {\n static {\n __name(this, \"CreateTrustStoreCommand\");\n }\n};\n\n// src/commands/DeleteListenerCommand.ts\n\n\n\nvar DeleteListenerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteListener\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteListenerCommand\").f(void 0, void 0).ser(se_DeleteListenerCommand).de(de_DeleteListenerCommand).build() {\n static {\n __name(this, \"DeleteListenerCommand\");\n }\n};\n\n// src/commands/DeleteLoadBalancerCommand.ts\n\n\n\nvar DeleteLoadBalancerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteLoadBalancer\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteLoadBalancerCommand\").f(void 0, void 0).ser(se_DeleteLoadBalancerCommand).de(de_DeleteLoadBalancerCommand).build() {\n static {\n __name(this, \"DeleteLoadBalancerCommand\");\n }\n};\n\n// src/commands/DeleteRuleCommand.ts\n\n\n\nvar DeleteRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteRule\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteRuleCommand\").f(void 0, void 0).ser(se_DeleteRuleCommand).de(de_DeleteRuleCommand).build() {\n static {\n __name(this, \"DeleteRuleCommand\");\n }\n};\n\n// src/commands/DeleteSharedTrustStoreAssociationCommand.ts\n\n\n\nvar DeleteSharedTrustStoreAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteSharedTrustStoreAssociation\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteSharedTrustStoreAssociationCommand\").f(void 0, void 0).ser(se_DeleteSharedTrustStoreAssociationCommand).de(de_DeleteSharedTrustStoreAssociationCommand).build() {\n static {\n __name(this, \"DeleteSharedTrustStoreAssociationCommand\");\n }\n};\n\n// src/commands/DeleteTargetGroupCommand.ts\n\n\n\nvar DeleteTargetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteTargetGroup\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteTargetGroupCommand\").f(void 0, void 0).ser(se_DeleteTargetGroupCommand).de(de_DeleteTargetGroupCommand).build() {\n static {\n __name(this, \"DeleteTargetGroupCommand\");\n }\n};\n\n// src/commands/DeleteTrustStoreCommand.ts\n\n\n\nvar DeleteTrustStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeleteTrustStore\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeleteTrustStoreCommand\").f(void 0, void 0).ser(se_DeleteTrustStoreCommand).de(de_DeleteTrustStoreCommand).build() {\n static {\n __name(this, \"DeleteTrustStoreCommand\");\n }\n};\n\n// src/commands/DeregisterTargetsCommand.ts\n\n\n\nvar DeregisterTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DeregisterTargets\", {}).n(\"ElasticLoadBalancingV2Client\", \"DeregisterTargetsCommand\").f(void 0, void 0).ser(se_DeregisterTargetsCommand).de(de_DeregisterTargetsCommand).build() {\n static {\n __name(this, \"DeregisterTargetsCommand\");\n }\n};\n\n// src/commands/DescribeAccountLimitsCommand.ts\n\n\n\nvar DescribeAccountLimitsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeAccountLimits\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeAccountLimitsCommand\").f(void 0, void 0).ser(se_DescribeAccountLimitsCommand).de(de_DescribeAccountLimitsCommand).build() {\n static {\n __name(this, \"DescribeAccountLimitsCommand\");\n }\n};\n\n// src/commands/DescribeCapacityReservationCommand.ts\n\n\n\nvar DescribeCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeCapacityReservation\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeCapacityReservationCommand\").f(void 0, void 0).ser(se_DescribeCapacityReservationCommand).de(de_DescribeCapacityReservationCommand).build() {\n static {\n __name(this, \"DescribeCapacityReservationCommand\");\n }\n};\n\n// src/commands/DescribeListenerAttributesCommand.ts\n\n\n\nvar DescribeListenerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeListenerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeListenerAttributesCommand\").f(void 0, void 0).ser(se_DescribeListenerAttributesCommand).de(de_DescribeListenerAttributesCommand).build() {\n static {\n __name(this, \"DescribeListenerAttributesCommand\");\n }\n};\n\n// src/commands/DescribeListenerCertificatesCommand.ts\n\n\n\nvar DescribeListenerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeListenerCertificates\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeListenerCertificatesCommand\").f(void 0, void 0).ser(se_DescribeListenerCertificatesCommand).de(de_DescribeListenerCertificatesCommand).build() {\n static {\n __name(this, \"DescribeListenerCertificatesCommand\");\n }\n};\n\n// src/commands/DescribeListenersCommand.ts\n\n\n\nvar DescribeListenersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeListeners\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeListenersCommand\").f(void 0, void 0).ser(se_DescribeListenersCommand).de(de_DescribeListenersCommand).build() {\n static {\n __name(this, \"DescribeListenersCommand\");\n }\n};\n\n// src/commands/DescribeLoadBalancerAttributesCommand.ts\n\n\n\nvar DescribeLoadBalancerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeLoadBalancerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeLoadBalancerAttributesCommand\").f(void 0, void 0).ser(se_DescribeLoadBalancerAttributesCommand).de(de_DescribeLoadBalancerAttributesCommand).build() {\n static {\n __name(this, \"DescribeLoadBalancerAttributesCommand\");\n }\n};\n\n// src/commands/DescribeLoadBalancersCommand.ts\n\n\n\nvar DescribeLoadBalancersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeLoadBalancers\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeLoadBalancersCommand\").f(void 0, void 0).ser(se_DescribeLoadBalancersCommand).de(de_DescribeLoadBalancersCommand).build() {\n static {\n __name(this, \"DescribeLoadBalancersCommand\");\n }\n};\n\n// src/commands/DescribeRulesCommand.ts\n\n\n\nvar DescribeRulesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeRules\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeRulesCommand\").f(void 0, void 0).ser(se_DescribeRulesCommand).de(de_DescribeRulesCommand).build() {\n static {\n __name(this, \"DescribeRulesCommand\");\n }\n};\n\n// src/commands/DescribeSSLPoliciesCommand.ts\n\n\n\nvar DescribeSSLPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeSSLPolicies\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeSSLPoliciesCommand\").f(void 0, void 0).ser(se_DescribeSSLPoliciesCommand).de(de_DescribeSSLPoliciesCommand).build() {\n static {\n __name(this, \"DescribeSSLPoliciesCommand\");\n }\n};\n\n// src/commands/DescribeTagsCommand.ts\n\n\n\nvar DescribeTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTags\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTagsCommand\").f(void 0, void 0).ser(se_DescribeTagsCommand).de(de_DescribeTagsCommand).build() {\n static {\n __name(this, \"DescribeTagsCommand\");\n }\n};\n\n// src/commands/DescribeTargetGroupAttributesCommand.ts\n\n\n\nvar DescribeTargetGroupAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTargetGroupAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTargetGroupAttributesCommand\").f(void 0, void 0).ser(se_DescribeTargetGroupAttributesCommand).de(de_DescribeTargetGroupAttributesCommand).build() {\n static {\n __name(this, \"DescribeTargetGroupAttributesCommand\");\n }\n};\n\n// src/commands/DescribeTargetGroupsCommand.ts\n\n\n\nvar DescribeTargetGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTargetGroups\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTargetGroupsCommand\").f(void 0, void 0).ser(se_DescribeTargetGroupsCommand).de(de_DescribeTargetGroupsCommand).build() {\n static {\n __name(this, \"DescribeTargetGroupsCommand\");\n }\n};\n\n// src/commands/DescribeTargetHealthCommand.ts\n\n\n\nvar DescribeTargetHealthCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTargetHealth\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTargetHealthCommand\").f(void 0, void 0).ser(se_DescribeTargetHealthCommand).de(de_DescribeTargetHealthCommand).build() {\n static {\n __name(this, \"DescribeTargetHealthCommand\");\n }\n};\n\n// src/commands/DescribeTrustStoreAssociationsCommand.ts\n\n\n\nvar DescribeTrustStoreAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTrustStoreAssociations\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTrustStoreAssociationsCommand\").f(void 0, void 0).ser(se_DescribeTrustStoreAssociationsCommand).de(de_DescribeTrustStoreAssociationsCommand).build() {\n static {\n __name(this, \"DescribeTrustStoreAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeTrustStoreRevocationsCommand.ts\n\n\n\nvar DescribeTrustStoreRevocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTrustStoreRevocations\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTrustStoreRevocationsCommand\").f(void 0, void 0).ser(se_DescribeTrustStoreRevocationsCommand).de(de_DescribeTrustStoreRevocationsCommand).build() {\n static {\n __name(this, \"DescribeTrustStoreRevocationsCommand\");\n }\n};\n\n// src/commands/DescribeTrustStoresCommand.ts\n\n\n\nvar DescribeTrustStoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"DescribeTrustStores\", {}).n(\"ElasticLoadBalancingV2Client\", \"DescribeTrustStoresCommand\").f(void 0, void 0).ser(se_DescribeTrustStoresCommand).de(de_DescribeTrustStoresCommand).build() {\n static {\n __name(this, \"DescribeTrustStoresCommand\");\n }\n};\n\n// src/commands/GetResourcePolicyCommand.ts\n\n\n\nvar GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"GetResourcePolicy\", {}).n(\"ElasticLoadBalancingV2Client\", \"GetResourcePolicyCommand\").f(void 0, void 0).ser(se_GetResourcePolicyCommand).de(de_GetResourcePolicyCommand).build() {\n static {\n __name(this, \"GetResourcePolicyCommand\");\n }\n};\n\n// src/commands/GetTrustStoreCaCertificatesBundleCommand.ts\n\n\n\nvar GetTrustStoreCaCertificatesBundleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"GetTrustStoreCaCertificatesBundle\", {}).n(\"ElasticLoadBalancingV2Client\", \"GetTrustStoreCaCertificatesBundleCommand\").f(void 0, void 0).ser(se_GetTrustStoreCaCertificatesBundleCommand).de(de_GetTrustStoreCaCertificatesBundleCommand).build() {\n static {\n __name(this, \"GetTrustStoreCaCertificatesBundleCommand\");\n }\n};\n\n// src/commands/GetTrustStoreRevocationContentCommand.ts\n\n\n\nvar GetTrustStoreRevocationContentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"GetTrustStoreRevocationContent\", {}).n(\"ElasticLoadBalancingV2Client\", \"GetTrustStoreRevocationContentCommand\").f(void 0, void 0).ser(se_GetTrustStoreRevocationContentCommand).de(de_GetTrustStoreRevocationContentCommand).build() {\n static {\n __name(this, \"GetTrustStoreRevocationContentCommand\");\n }\n};\n\n// src/commands/ModifyCapacityReservationCommand.ts\n\n\n\nvar ModifyCapacityReservationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyCapacityReservation\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyCapacityReservationCommand\").f(void 0, void 0).ser(se_ModifyCapacityReservationCommand).de(de_ModifyCapacityReservationCommand).build() {\n static {\n __name(this, \"ModifyCapacityReservationCommand\");\n }\n};\n\n// src/commands/ModifyIpPoolsCommand.ts\n\n\n\nvar ModifyIpPoolsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyIpPools\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyIpPoolsCommand\").f(void 0, void 0).ser(se_ModifyIpPoolsCommand).de(de_ModifyIpPoolsCommand).build() {\n static {\n __name(this, \"ModifyIpPoolsCommand\");\n }\n};\n\n// src/commands/ModifyListenerAttributesCommand.ts\n\n\n\nvar ModifyListenerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyListenerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyListenerAttributesCommand\").f(void 0, void 0).ser(se_ModifyListenerAttributesCommand).de(de_ModifyListenerAttributesCommand).build() {\n static {\n __name(this, \"ModifyListenerAttributesCommand\");\n }\n};\n\n// src/commands/ModifyListenerCommand.ts\n\n\n\nvar ModifyListenerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyListener\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyListenerCommand\").f(void 0, void 0).ser(se_ModifyListenerCommand).de(de_ModifyListenerCommand).build() {\n static {\n __name(this, \"ModifyListenerCommand\");\n }\n};\n\n// src/commands/ModifyLoadBalancerAttributesCommand.ts\n\n\n\nvar ModifyLoadBalancerAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyLoadBalancerAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyLoadBalancerAttributesCommand\").f(void 0, void 0).ser(se_ModifyLoadBalancerAttributesCommand).de(de_ModifyLoadBalancerAttributesCommand).build() {\n static {\n __name(this, \"ModifyLoadBalancerAttributesCommand\");\n }\n};\n\n// src/commands/ModifyRuleCommand.ts\n\n\n\nvar ModifyRuleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyRule\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyRuleCommand\").f(void 0, void 0).ser(se_ModifyRuleCommand).de(de_ModifyRuleCommand).build() {\n static {\n __name(this, \"ModifyRuleCommand\");\n }\n};\n\n// src/commands/ModifyTargetGroupAttributesCommand.ts\n\n\n\nvar ModifyTargetGroupAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyTargetGroupAttributes\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyTargetGroupAttributesCommand\").f(void 0, void 0).ser(se_ModifyTargetGroupAttributesCommand).de(de_ModifyTargetGroupAttributesCommand).build() {\n static {\n __name(this, \"ModifyTargetGroupAttributesCommand\");\n }\n};\n\n// src/commands/ModifyTargetGroupCommand.ts\n\n\n\nvar ModifyTargetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyTargetGroup\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyTargetGroupCommand\").f(void 0, void 0).ser(se_ModifyTargetGroupCommand).de(de_ModifyTargetGroupCommand).build() {\n static {\n __name(this, \"ModifyTargetGroupCommand\");\n }\n};\n\n// src/commands/ModifyTrustStoreCommand.ts\n\n\n\nvar ModifyTrustStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"ModifyTrustStore\", {}).n(\"ElasticLoadBalancingV2Client\", \"ModifyTrustStoreCommand\").f(void 0, void 0).ser(se_ModifyTrustStoreCommand).de(de_ModifyTrustStoreCommand).build() {\n static {\n __name(this, \"ModifyTrustStoreCommand\");\n }\n};\n\n// src/commands/RegisterTargetsCommand.ts\n\n\n\nvar RegisterTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RegisterTargets\", {}).n(\"ElasticLoadBalancingV2Client\", \"RegisterTargetsCommand\").f(void 0, void 0).ser(se_RegisterTargetsCommand).de(de_RegisterTargetsCommand).build() {\n static {\n __name(this, \"RegisterTargetsCommand\");\n }\n};\n\n// src/commands/RemoveListenerCertificatesCommand.ts\n\n\n\nvar RemoveListenerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RemoveListenerCertificates\", {}).n(\"ElasticLoadBalancingV2Client\", \"RemoveListenerCertificatesCommand\").f(void 0, void 0).ser(se_RemoveListenerCertificatesCommand).de(de_RemoveListenerCertificatesCommand).build() {\n static {\n __name(this, \"RemoveListenerCertificatesCommand\");\n }\n};\n\n// src/commands/RemoveTagsCommand.ts\n\n\n\nvar RemoveTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RemoveTags\", {}).n(\"ElasticLoadBalancingV2Client\", \"RemoveTagsCommand\").f(void 0, void 0).ser(se_RemoveTagsCommand).de(de_RemoveTagsCommand).build() {\n static {\n __name(this, \"RemoveTagsCommand\");\n }\n};\n\n// src/commands/RemoveTrustStoreRevocationsCommand.ts\n\n\n\nvar RemoveTrustStoreRevocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"RemoveTrustStoreRevocations\", {}).n(\"ElasticLoadBalancingV2Client\", \"RemoveTrustStoreRevocationsCommand\").f(void 0, void 0).ser(se_RemoveTrustStoreRevocationsCommand).de(de_RemoveTrustStoreRevocationsCommand).build() {\n static {\n __name(this, \"RemoveTrustStoreRevocationsCommand\");\n }\n};\n\n// src/commands/SetIpAddressTypeCommand.ts\n\n\n\nvar SetIpAddressTypeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetIpAddressType\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetIpAddressTypeCommand\").f(void 0, void 0).ser(se_SetIpAddressTypeCommand).de(de_SetIpAddressTypeCommand).build() {\n static {\n __name(this, \"SetIpAddressTypeCommand\");\n }\n};\n\n// src/commands/SetRulePrioritiesCommand.ts\n\n\n\nvar SetRulePrioritiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetRulePriorities\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetRulePrioritiesCommand\").f(void 0, void 0).ser(se_SetRulePrioritiesCommand).de(de_SetRulePrioritiesCommand).build() {\n static {\n __name(this, \"SetRulePrioritiesCommand\");\n }\n};\n\n// src/commands/SetSecurityGroupsCommand.ts\n\n\n\nvar SetSecurityGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetSecurityGroups\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetSecurityGroupsCommand\").f(void 0, void 0).ser(se_SetSecurityGroupsCommand).de(de_SetSecurityGroupsCommand).build() {\n static {\n __name(this, \"SetSecurityGroupsCommand\");\n }\n};\n\n// src/commands/SetSubnetsCommand.ts\n\n\n\nvar SetSubnetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"ElasticLoadBalancing_v10\", \"SetSubnets\", {}).n(\"ElasticLoadBalancingV2Client\", \"SetSubnetsCommand\").f(void 0, void 0).ser(se_SetSubnetsCommand).de(de_SetSubnetsCommand).build() {\n static {\n __name(this, \"SetSubnetsCommand\");\n }\n};\n\n// src/ElasticLoadBalancingV2.ts\nvar commands = {\n AddListenerCertificatesCommand,\n AddTagsCommand,\n AddTrustStoreRevocationsCommand,\n CreateListenerCommand,\n CreateLoadBalancerCommand,\n CreateRuleCommand,\n CreateTargetGroupCommand,\n CreateTrustStoreCommand,\n DeleteListenerCommand,\n DeleteLoadBalancerCommand,\n DeleteRuleCommand,\n DeleteSharedTrustStoreAssociationCommand,\n DeleteTargetGroupCommand,\n DeleteTrustStoreCommand,\n DeregisterTargetsCommand,\n DescribeAccountLimitsCommand,\n DescribeCapacityReservationCommand,\n DescribeListenerAttributesCommand,\n DescribeListenerCertificatesCommand,\n DescribeListenersCommand,\n DescribeLoadBalancerAttributesCommand,\n DescribeLoadBalancersCommand,\n DescribeRulesCommand,\n DescribeSSLPoliciesCommand,\n DescribeTagsCommand,\n DescribeTargetGroupAttributesCommand,\n DescribeTargetGroupsCommand,\n DescribeTargetHealthCommand,\n DescribeTrustStoreAssociationsCommand,\n DescribeTrustStoreRevocationsCommand,\n DescribeTrustStoresCommand,\n GetResourcePolicyCommand,\n GetTrustStoreCaCertificatesBundleCommand,\n GetTrustStoreRevocationContentCommand,\n ModifyCapacityReservationCommand,\n ModifyIpPoolsCommand,\n ModifyListenerCommand,\n ModifyListenerAttributesCommand,\n ModifyLoadBalancerAttributesCommand,\n ModifyRuleCommand,\n ModifyTargetGroupCommand,\n ModifyTargetGroupAttributesCommand,\n ModifyTrustStoreCommand,\n RegisterTargetsCommand,\n RemoveListenerCertificatesCommand,\n RemoveTagsCommand,\n RemoveTrustStoreRevocationsCommand,\n SetIpAddressTypeCommand,\n SetRulePrioritiesCommand,\n SetSecurityGroupsCommand,\n SetSubnetsCommand\n};\nvar ElasticLoadBalancingV2 = class extends ElasticLoadBalancingV2Client {\n static {\n __name(this, \"ElasticLoadBalancingV2\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, ElasticLoadBalancingV2);\n\n// src/pagination/DescribeListenerCertificatesPaginator.ts\n\nvar paginateDescribeListenerCertificates = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeListenerCertificatesCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeListenersPaginator.ts\n\nvar paginateDescribeListeners = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeListenersCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeLoadBalancersPaginator.ts\n\nvar paginateDescribeLoadBalancers = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeLoadBalancersCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeRulesPaginator.ts\n\nvar paginateDescribeRules = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeRulesCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeTargetGroupsPaginator.ts\n\nvar paginateDescribeTargetGroups = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTargetGroupsCommand, \"Marker\", \"NextMarker\", \"\");\n\n// src/pagination/DescribeTrustStoreAssociationsPaginator.ts\n\nvar paginateDescribeTrustStoreAssociations = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTrustStoreAssociationsCommand, \"Marker\", \"NextMarker\", \"PageSize\");\n\n// src/pagination/DescribeTrustStoreRevocationsPaginator.ts\n\nvar paginateDescribeTrustStoreRevocations = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTrustStoreRevocationsCommand, \"Marker\", \"NextMarker\", \"PageSize\");\n\n// src/pagination/DescribeTrustStoresPaginator.ts\n\nvar paginateDescribeTrustStores = (0, import_core.createPaginator)(ElasticLoadBalancingV2Client, DescribeTrustStoresCommand, \"Marker\", \"NextMarker\", \"PageSize\");\n\n// src/waiters/waitForLoadBalancerAvailable.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeLoadBalancersCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.LoadBalancers);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"active\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.LoadBalancers);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n for (const anyStringEq_4 of returnComparator()) {\n if (anyStringEq_4 == \"provisioning\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"LoadBalancerNotFoundException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLoadBalancerAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForLoadBalancerAvailable\");\nvar waitUntilLoadBalancerAvailable = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLoadBalancerAvailable\");\n\n// src/waiters/waitForLoadBalancerExists.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeLoadBalancersCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"LoadBalancerNotFoundException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLoadBalancerExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForLoadBalancerExists\");\nvar waitUntilLoadBalancerExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLoadBalancerExists\");\n\n// src/waiters/waitForLoadBalancersDeleted.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeLoadBalancersCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.LoadBalancers);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.State.Code;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"active\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"LoadBalancerNotFoundException\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForLoadBalancersDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForLoadBalancersDeleted\");\nvar waitUntilLoadBalancersDeleted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilLoadBalancersDeleted\");\n\n// src/waiters/waitForTargetDeregistered.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTargetHealthCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.TargetHealthDescriptions);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.TargetHealth.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"unused\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidTargetException\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTargetDeregistered = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForTargetDeregistered\");\nvar waitUntilTargetDeregistered = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTargetDeregistered\");\n\n// src/waiters/waitForTargetInService.ts\n\nvar checkState5 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new DescribeTargetHealthCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n const flat_1 = [].concat(...result.TargetHealthDescriptions);\n const projection_3 = flat_1.map((element_2) => {\n return element_2.TargetHealth.State;\n });\n return projection_3;\n }, \"returnComparator\");\n let allStringEq_5 = returnComparator().length > 0;\n for (const element_4 of returnComparator()) {\n allStringEq_5 = allStringEq_5 && element_4 == \"healthy\";\n }\n if (allStringEq_5) {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvalidInstance\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForTargetInService = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n}, \"waitForTargetInService\");\nvar waitUntilTargetInService = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 15, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilTargetInService\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ElasticLoadBalancingV2ServiceException,\n __Client,\n ElasticLoadBalancingV2Client,\n ElasticLoadBalancingV2,\n $Command,\n AddListenerCertificatesCommand,\n AddTagsCommand,\n AddTrustStoreRevocationsCommand,\n CreateListenerCommand,\n CreateLoadBalancerCommand,\n CreateRuleCommand,\n CreateTargetGroupCommand,\n CreateTrustStoreCommand,\n DeleteListenerCommand,\n DeleteLoadBalancerCommand,\n DeleteRuleCommand,\n DeleteSharedTrustStoreAssociationCommand,\n DeleteTargetGroupCommand,\n DeleteTrustStoreCommand,\n DeregisterTargetsCommand,\n DescribeAccountLimitsCommand,\n DescribeCapacityReservationCommand,\n DescribeListenerAttributesCommand,\n DescribeListenerCertificatesCommand,\n DescribeListenersCommand,\n DescribeLoadBalancerAttributesCommand,\n DescribeLoadBalancersCommand,\n DescribeRulesCommand,\n DescribeSSLPoliciesCommand,\n DescribeTagsCommand,\n DescribeTargetGroupAttributesCommand,\n DescribeTargetGroupsCommand,\n DescribeTargetHealthCommand,\n DescribeTrustStoreAssociationsCommand,\n DescribeTrustStoreRevocationsCommand,\n DescribeTrustStoresCommand,\n GetResourcePolicyCommand,\n GetTrustStoreCaCertificatesBundleCommand,\n GetTrustStoreRevocationContentCommand,\n ModifyCapacityReservationCommand,\n ModifyIpPoolsCommand,\n ModifyListenerAttributesCommand,\n ModifyListenerCommand,\n ModifyLoadBalancerAttributesCommand,\n ModifyRuleCommand,\n ModifyTargetGroupAttributesCommand,\n ModifyTargetGroupCommand,\n ModifyTrustStoreCommand,\n RegisterTargetsCommand,\n RemoveListenerCertificatesCommand,\n RemoveTagsCommand,\n RemoveTrustStoreRevocationsCommand,\n SetIpAddressTypeCommand,\n SetRulePrioritiesCommand,\n SetSecurityGroupsCommand,\n SetSubnetsCommand,\n paginateDescribeListenerCertificates,\n paginateDescribeListeners,\n paginateDescribeLoadBalancers,\n paginateDescribeRules,\n paginateDescribeTargetGroups,\n paginateDescribeTrustStoreAssociations,\n paginateDescribeTrustStoreRevocations,\n paginateDescribeTrustStores,\n waitForLoadBalancerAvailable,\n waitUntilLoadBalancerAvailable,\n waitForLoadBalancerExists,\n waitUntilLoadBalancerExists,\n waitForLoadBalancersDeleted,\n waitUntilLoadBalancersDeleted,\n waitForTargetDeregistered,\n waitUntilTargetDeregistered,\n waitForTargetInService,\n waitUntilTargetInService,\n AuthenticateCognitoActionConditionalBehaviorEnum,\n AuthenticateOidcActionConditionalBehaviorEnum,\n RedirectActionStatusCodeEnum,\n ActionTypeEnum,\n CertificateNotFoundException,\n ListenerNotFoundException,\n TooManyCertificatesException,\n DuplicateTagKeysException,\n LoadBalancerNotFoundException,\n RuleNotFoundException,\n TargetGroupNotFoundException,\n TooManyTagsException,\n TrustStoreNotFoundException,\n RevocationType,\n InvalidRevocationContentException,\n RevocationContentNotFoundException,\n TooManyTrustStoreRevocationEntriesException,\n TargetAdministrativeOverrideReasonEnum,\n TargetAdministrativeOverrideStateEnum,\n AdvertiseTrustStoreCaNamesEnum,\n AllocationIdNotFoundException,\n ALPNPolicyNotSupportedException,\n MitigationInEffectEnum,\n AnomalyResultEnum,\n AvailabilityZoneNotSupportedException,\n CaCertificatesBundleNotFoundException,\n CapacityDecreaseRequestsLimitExceededException,\n CapacityReservationPendingException,\n CapacityReservationStateEnum,\n CapacityUnitsLimitExceededException,\n TrustStoreAssociationStatusEnum,\n ProtocolEnum,\n DuplicateListenerException,\n IncompatibleProtocolsException,\n InvalidConfigurationRequestException,\n InvalidLoadBalancerActionException,\n SSLPolicyNotFoundException,\n TargetGroupAssociationLimitException,\n TooManyActionsException,\n TooManyListenersException,\n TooManyRegistrationsForTargetIdException,\n TooManyTargetsException,\n TooManyUniqueTargetGroupsPerLoadBalancerException,\n TrustStoreNotReadyException,\n UnsupportedProtocolException,\n EnablePrefixForIpv6SourceNatEnum,\n IpAddressType,\n LoadBalancerSchemeEnum,\n LoadBalancerTypeEnum,\n LoadBalancerStateEnum,\n DuplicateLoadBalancerNameException,\n InvalidSchemeException,\n InvalidSecurityGroupException,\n InvalidSubnetException,\n OperationNotPermittedException,\n ResourceInUseException,\n SubnetNotFoundException,\n TooManyLoadBalancersException,\n PriorityInUseException,\n TooManyRulesException,\n TooManyTargetGroupsException,\n TargetGroupIpAddressTypeEnum,\n TargetTypeEnum,\n DuplicateTargetGroupNameException,\n TrustStoreStatus,\n DuplicateTrustStoreNameException,\n InvalidCaCertificatesBundleException,\n TooManyTrustStoresException,\n DeleteAssociationSameAccountException,\n TrustStoreAssociationNotFoundException,\n TrustStoreInUseException,\n InvalidTargetException,\n DescribeTargetHealthInputIncludeEnum,\n TargetHealthReasonEnum,\n TargetHealthStateEnum,\n HealthUnavailableException,\n RevocationIdNotFoundException,\n ResourceNotFoundException,\n InsufficientCapacityException,\n PriorRequestNotCompleteException,\n RemoveIpamPoolEnum,\n EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2015-12-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultElasticLoadBalancingV2HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Elastic Load Balancing v2\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultIAMHttpAuthSchemeProvider = exports.defaultIAMHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultIAMHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultIAMHttpAuthSchemeParametersProvider = defaultIAMHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"iam\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultIAMHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultIAMHttpAuthSchemeProvider = defaultIAMHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst H = \"required\", I = \"fn\", J = \"argv\", K = \"ref\", L = \"properties\", M = \"headers\", N = \"authSchemes\", O = \"name\", P = \"signingRegion\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = \"sigv4\", j = { [H]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [H]: false, \"type\": \"String\" }, l = { [K]: \"Endpoint\" }, m = { [I]: c, [J]: [{ [K]: \"UseFIPS\" }, true] }, n = { [I]: c, [J]: [{ [K]: \"UseDualStack\" }, true] }, o = {}, p = { [I]: h, [J]: [{ [I]: \"getAttr\", [J]: [{ [K]: g }, \"name\"] }, \"aws\"] }, q = { [I]: \"getAttr\", [J]: [{ [K]: g }, \"name\"] }, r = { [I]: c, [J]: [{ [K]: \"UseFIPS\" }, false] }, s = { [N]: [{ [O]: i, [P]: \"us-east-1\" }] }, t = { [I]: h, [J]: [q, \"aws-cn\"] }, u = { [N]: [{ [O]: i, [P]: \"cn-north-1\" }] }, v = { [I]: c, [J]: [{ [K]: \"UseDualStack\" }, false] }, w = { [I]: h, [J]: [q, \"aws-us-gov\"] }, x = { \"url\": \"https://iam.us-gov.api.aws\", [L]: { [N]: [{ [O]: i, [P]: \"us-gov-west-1\" }] }, [M]: {} }, y = { \"url\": \"https://iam.us-gov.amazonaws.com\", [L]: { [N]: [{ [O]: i, [P]: \"us-gov-west-1\" }] }, [M]: {} }, z = { [I]: h, [J]: [q, \"aws-iso\"] }, A = { [N]: [{ [O]: i, [P]: \"us-iso-east-1\" }] }, B = { [I]: h, [J]: [q, \"aws-iso-b\"] }, C = { [N]: [{ [O]: i, [P]: \"us-isob-east-1\" }] }, D = { [I]: \"getAttr\", [J]: [{ [K]: g }, \"supportsFIPS\"] }, E = { [I]: c, [J]: [true, { [I]: \"getAttr\", [J]: [{ [K]: g }, \"supportsDualStack\"] }] }, F = { [N]: [{ [O]: i, [P]: \"{PartitionResult#implicitGlobalRegion}\" }] }, G = [{ [K]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { UseDualStack: j, UseFIPS: j, Endpoint: k, Region: k }, rules: [{ conditions: [{ [I]: b, [J]: [l] }], rules: [{ conditions: [m], error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { rules: [{ conditions: [n], error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: l, [L]: o, [M]: o }, type: e }], type: f }], type: f }, { rules: [{ conditions: [{ [I]: b, [J]: G }], rules: [{ conditions: [{ [I]: \"aws.partition\", [J]: G, assign: g }], rules: [{ conditions: [p, r, n], endpoint: { url: \"https://iam.global.api.aws\", [L]: s, [M]: o }, type: e }, { conditions: [p, m, n], endpoint: { url: \"https://iam-fips.global.api.aws\", [L]: s, [M]: o }, type: e }, { conditions: [t, r, n], endpoint: { url: \"https://iam.global.api.amazonwebservices.com.cn\", [L]: u, [M]: o }, type: e }, { conditions: [t, r, v], endpoint: { url: \"https://iam.cn-north-1.amazonaws.com.cn\", [L]: u, [M]: o }, type: e }, { conditions: [w, r, n], endpoint: x, type: e }, { conditions: [w, m, n], endpoint: x, type: e }, { conditions: [w, r, v], endpoint: y, type: e }, { conditions: [w, m, v], endpoint: y, type: e }, { conditions: [z, r, v], endpoint: { url: \"https://iam.us-iso-east-1.c2s.ic.gov\", [L]: A, [M]: o }, type: e }, { conditions: [z, m, v], endpoint: { url: \"https://iam-fips.us-iso-east-1.c2s.ic.gov\", [L]: A, [M]: o }, type: e }, { conditions: [B, r, v], endpoint: { url: \"https://iam.us-isob-east-1.sc2s.sgov.gov\", [L]: C, [M]: o }, type: e }, { conditions: [B, m, v], endpoint: { url: \"https://iam-fips.us-isob-east-1.sc2s.sgov.gov\", [L]: C, [M]: o }, type: e }, { conditions: [{ [I]: h, [J]: [q, \"aws-iso-e\"] }, r, v], endpoint: { url: \"https://iam.eu-isoe-west-1.cloud.adc-e.uk\", [L]: { [N]: [{ [O]: i, [P]: \"eu-isoe-west-1\" }] }, [M]: o }, type: e }, { conditions: [{ [I]: h, [J]: [q, \"aws-iso-f\"] }, r, v], endpoint: { url: \"https://iam.us-isof-south-1.csp.hci.ic.gov\", [L]: { [N]: [{ [O]: i, [P]: \"us-isof-south-1\" }] }, [M]: o }, type: e }, { conditions: [{ [I]: h, [J]: [q, \"aws-eusc\"] }, r, v], endpoint: { url: \"https://iam.eusc-de-east-1.amazonaws.eu\", [L]: { [N]: [{ [O]: i, [P]: \"eusc-de-east-1\" }] }, [M]: o }, type: e }, { conditions: [m, n], rules: [{ conditions: [{ [I]: c, [J]: [a, D] }, E], rules: [{ endpoint: { url: \"https://iam-fips.{PartitionResult#dualStackDnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: [m, v], rules: [{ conditions: [{ [I]: c, [J]: [D, a] }], rules: [{ endpoint: { url: \"https://iam-fips.{PartitionResult#dnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: [r, n], rules: [{ conditions: [E], rules: [{ endpoint: { url: \"https://iam.{PartitionResult#dualStackDnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://iam.{PartitionResult#dnsSuffix}\", [L]: F, [M]: o }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }], type: f }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessAdvisorUsageGranularityType: () => AccessAdvisorUsageGranularityType,\n AccessKeyFilterSensitiveLog: () => AccessKeyFilterSensitiveLog,\n AccountNotManagementOrDelegatedAdministratorException: () => AccountNotManagementOrDelegatedAdministratorException,\n AddClientIDToOpenIDConnectProviderCommand: () => AddClientIDToOpenIDConnectProviderCommand,\n AddRoleToInstanceProfileCommand: () => AddRoleToInstanceProfileCommand,\n AddUserToGroupCommand: () => AddUserToGroupCommand,\n AssertionEncryptionModeType: () => AssertionEncryptionModeType,\n AssignmentStatusType: () => AssignmentStatusType,\n AttachGroupPolicyCommand: () => AttachGroupPolicyCommand,\n AttachRolePolicyCommand: () => AttachRolePolicyCommand,\n AttachUserPolicyCommand: () => AttachUserPolicyCommand,\n CallerIsNotManagementAccountException: () => CallerIsNotManagementAccountException,\n ChangePasswordCommand: () => ChangePasswordCommand,\n ChangePasswordRequestFilterSensitiveLog: () => ChangePasswordRequestFilterSensitiveLog,\n ConcurrentModificationException: () => ConcurrentModificationException,\n ContextKeyTypeEnum: () => ContextKeyTypeEnum,\n CreateAccessKeyCommand: () => CreateAccessKeyCommand,\n CreateAccessKeyResponseFilterSensitiveLog: () => CreateAccessKeyResponseFilterSensitiveLog,\n CreateAccountAliasCommand: () => CreateAccountAliasCommand,\n CreateGroupCommand: () => CreateGroupCommand,\n CreateInstanceProfileCommand: () => CreateInstanceProfileCommand,\n CreateLoginProfileCommand: () => CreateLoginProfileCommand,\n CreateLoginProfileRequestFilterSensitiveLog: () => CreateLoginProfileRequestFilterSensitiveLog,\n CreateOpenIDConnectProviderCommand: () => CreateOpenIDConnectProviderCommand,\n CreatePolicyCommand: () => CreatePolicyCommand,\n CreatePolicyVersionCommand: () => CreatePolicyVersionCommand,\n CreateRoleCommand: () => CreateRoleCommand,\n CreateSAMLProviderCommand: () => CreateSAMLProviderCommand,\n CreateSAMLProviderRequestFilterSensitiveLog: () => CreateSAMLProviderRequestFilterSensitiveLog,\n CreateServiceLinkedRoleCommand: () => CreateServiceLinkedRoleCommand,\n CreateServiceSpecificCredentialCommand: () => CreateServiceSpecificCredentialCommand,\n CreateServiceSpecificCredentialResponseFilterSensitiveLog: () => CreateServiceSpecificCredentialResponseFilterSensitiveLog,\n CreateUserCommand: () => CreateUserCommand,\n CreateVirtualMFADeviceCommand: () => CreateVirtualMFADeviceCommand,\n CreateVirtualMFADeviceResponseFilterSensitiveLog: () => CreateVirtualMFADeviceResponseFilterSensitiveLog,\n CredentialReportExpiredException: () => CredentialReportExpiredException,\n CredentialReportNotPresentException: () => CredentialReportNotPresentException,\n CredentialReportNotReadyException: () => CredentialReportNotReadyException,\n DeactivateMFADeviceCommand: () => DeactivateMFADeviceCommand,\n DeleteAccessKeyCommand: () => DeleteAccessKeyCommand,\n DeleteAccountAliasCommand: () => DeleteAccountAliasCommand,\n DeleteAccountPasswordPolicyCommand: () => DeleteAccountPasswordPolicyCommand,\n DeleteConflictException: () => DeleteConflictException,\n DeleteGroupCommand: () => DeleteGroupCommand,\n DeleteGroupPolicyCommand: () => DeleteGroupPolicyCommand,\n DeleteInstanceProfileCommand: () => DeleteInstanceProfileCommand,\n DeleteLoginProfileCommand: () => DeleteLoginProfileCommand,\n DeleteOpenIDConnectProviderCommand: () => DeleteOpenIDConnectProviderCommand,\n DeletePolicyCommand: () => DeletePolicyCommand,\n DeletePolicyVersionCommand: () => DeletePolicyVersionCommand,\n DeleteRoleCommand: () => DeleteRoleCommand,\n DeleteRolePermissionsBoundaryCommand: () => DeleteRolePermissionsBoundaryCommand,\n DeleteRolePolicyCommand: () => DeleteRolePolicyCommand,\n DeleteSAMLProviderCommand: () => DeleteSAMLProviderCommand,\n DeleteSSHPublicKeyCommand: () => DeleteSSHPublicKeyCommand,\n DeleteServerCertificateCommand: () => DeleteServerCertificateCommand,\n DeleteServiceLinkedRoleCommand: () => DeleteServiceLinkedRoleCommand,\n DeleteServiceSpecificCredentialCommand: () => DeleteServiceSpecificCredentialCommand,\n DeleteSigningCertificateCommand: () => DeleteSigningCertificateCommand,\n DeleteUserCommand: () => DeleteUserCommand,\n DeleteUserPermissionsBoundaryCommand: () => DeleteUserPermissionsBoundaryCommand,\n DeleteUserPolicyCommand: () => DeleteUserPolicyCommand,\n DeleteVirtualMFADeviceCommand: () => DeleteVirtualMFADeviceCommand,\n DeletionTaskStatusType: () => DeletionTaskStatusType,\n DetachGroupPolicyCommand: () => DetachGroupPolicyCommand,\n DetachRolePolicyCommand: () => DetachRolePolicyCommand,\n DetachUserPolicyCommand: () => DetachUserPolicyCommand,\n DisableOrganizationsRootCredentialsManagementCommand: () => DisableOrganizationsRootCredentialsManagementCommand,\n DisableOrganizationsRootSessionsCommand: () => DisableOrganizationsRootSessionsCommand,\n DuplicateCertificateException: () => DuplicateCertificateException,\n DuplicateSSHPublicKeyException: () => DuplicateSSHPublicKeyException,\n EnableMFADeviceCommand: () => EnableMFADeviceCommand,\n EnableOrganizationsRootCredentialsManagementCommand: () => EnableOrganizationsRootCredentialsManagementCommand,\n EnableOrganizationsRootSessionsCommand: () => EnableOrganizationsRootSessionsCommand,\n EncodingType: () => EncodingType,\n EntityAlreadyExistsException: () => EntityAlreadyExistsException,\n EntityTemporarilyUnmodifiableException: () => EntityTemporarilyUnmodifiableException,\n EntityType: () => EntityType,\n FeatureType: () => FeatureType,\n GenerateCredentialReportCommand: () => GenerateCredentialReportCommand,\n GenerateOrganizationsAccessReportCommand: () => GenerateOrganizationsAccessReportCommand,\n GenerateServiceLastAccessedDetailsCommand: () => GenerateServiceLastAccessedDetailsCommand,\n GetAccessKeyLastUsedCommand: () => GetAccessKeyLastUsedCommand,\n GetAccountAuthorizationDetailsCommand: () => GetAccountAuthorizationDetailsCommand,\n GetAccountPasswordPolicyCommand: () => GetAccountPasswordPolicyCommand,\n GetAccountSummaryCommand: () => GetAccountSummaryCommand,\n GetContextKeysForCustomPolicyCommand: () => GetContextKeysForCustomPolicyCommand,\n GetContextKeysForPrincipalPolicyCommand: () => GetContextKeysForPrincipalPolicyCommand,\n GetCredentialReportCommand: () => GetCredentialReportCommand,\n GetGroupCommand: () => GetGroupCommand,\n GetGroupPolicyCommand: () => GetGroupPolicyCommand,\n GetInstanceProfileCommand: () => GetInstanceProfileCommand,\n GetLoginProfileCommand: () => GetLoginProfileCommand,\n GetMFADeviceCommand: () => GetMFADeviceCommand,\n GetOpenIDConnectProviderCommand: () => GetOpenIDConnectProviderCommand,\n GetOrganizationsAccessReportCommand: () => GetOrganizationsAccessReportCommand,\n GetPolicyCommand: () => GetPolicyCommand,\n GetPolicyVersionCommand: () => GetPolicyVersionCommand,\n GetRoleCommand: () => GetRoleCommand,\n GetRolePolicyCommand: () => GetRolePolicyCommand,\n GetSAMLProviderCommand: () => GetSAMLProviderCommand,\n GetSSHPublicKeyCommand: () => GetSSHPublicKeyCommand,\n GetServerCertificateCommand: () => GetServerCertificateCommand,\n GetServiceLastAccessedDetailsCommand: () => GetServiceLastAccessedDetailsCommand,\n GetServiceLastAccessedDetailsWithEntitiesCommand: () => GetServiceLastAccessedDetailsWithEntitiesCommand,\n GetServiceLinkedRoleDeletionStatusCommand: () => GetServiceLinkedRoleDeletionStatusCommand,\n GetUserCommand: () => GetUserCommand,\n GetUserPolicyCommand: () => GetUserPolicyCommand,\n GlobalEndpointTokenVersion: () => GlobalEndpointTokenVersion,\n IAM: () => IAM,\n IAMClient: () => IAMClient,\n IAMServiceException: () => IAMServiceException,\n InvalidAuthenticationCodeException: () => InvalidAuthenticationCodeException,\n InvalidCertificateException: () => InvalidCertificateException,\n InvalidInputException: () => InvalidInputException,\n InvalidPublicKeyException: () => InvalidPublicKeyException,\n InvalidUserTypeException: () => InvalidUserTypeException,\n JobStatusType: () => JobStatusType,\n KeyPairMismatchException: () => KeyPairMismatchException,\n LimitExceededException: () => LimitExceededException,\n ListAccessKeysCommand: () => ListAccessKeysCommand,\n ListAccountAliasesCommand: () => ListAccountAliasesCommand,\n ListAttachedGroupPoliciesCommand: () => ListAttachedGroupPoliciesCommand,\n ListAttachedRolePoliciesCommand: () => ListAttachedRolePoliciesCommand,\n ListAttachedUserPoliciesCommand: () => ListAttachedUserPoliciesCommand,\n ListEntitiesForPolicyCommand: () => ListEntitiesForPolicyCommand,\n ListGroupPoliciesCommand: () => ListGroupPoliciesCommand,\n ListGroupsCommand: () => ListGroupsCommand,\n ListGroupsForUserCommand: () => ListGroupsForUserCommand,\n ListInstanceProfileTagsCommand: () => ListInstanceProfileTagsCommand,\n ListInstanceProfilesCommand: () => ListInstanceProfilesCommand,\n ListInstanceProfilesForRoleCommand: () => ListInstanceProfilesForRoleCommand,\n ListMFADeviceTagsCommand: () => ListMFADeviceTagsCommand,\n ListMFADevicesCommand: () => ListMFADevicesCommand,\n ListOpenIDConnectProviderTagsCommand: () => ListOpenIDConnectProviderTagsCommand,\n ListOpenIDConnectProvidersCommand: () => ListOpenIDConnectProvidersCommand,\n ListOrganizationsFeaturesCommand: () => ListOrganizationsFeaturesCommand,\n ListPoliciesCommand: () => ListPoliciesCommand,\n ListPoliciesGrantingServiceAccessCommand: () => ListPoliciesGrantingServiceAccessCommand,\n ListPolicyTagsCommand: () => ListPolicyTagsCommand,\n ListPolicyVersionsCommand: () => ListPolicyVersionsCommand,\n ListRolePoliciesCommand: () => ListRolePoliciesCommand,\n ListRoleTagsCommand: () => ListRoleTagsCommand,\n ListRolesCommand: () => ListRolesCommand,\n ListSAMLProviderTagsCommand: () => ListSAMLProviderTagsCommand,\n ListSAMLProvidersCommand: () => ListSAMLProvidersCommand,\n ListSSHPublicKeysCommand: () => ListSSHPublicKeysCommand,\n ListServerCertificateTagsCommand: () => ListServerCertificateTagsCommand,\n ListServerCertificatesCommand: () => ListServerCertificatesCommand,\n ListServiceSpecificCredentialsCommand: () => ListServiceSpecificCredentialsCommand,\n ListSigningCertificatesCommand: () => ListSigningCertificatesCommand,\n ListUserPoliciesCommand: () => ListUserPoliciesCommand,\n ListUserTagsCommand: () => ListUserTagsCommand,\n ListUsersCommand: () => ListUsersCommand,\n ListVirtualMFADevicesCommand: () => ListVirtualMFADevicesCommand,\n ListVirtualMFADevicesResponseFilterSensitiveLog: () => ListVirtualMFADevicesResponseFilterSensitiveLog,\n MalformedCertificateException: () => MalformedCertificateException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n NoSuchEntityException: () => NoSuchEntityException,\n OpenIdIdpCommunicationErrorException: () => OpenIdIdpCommunicationErrorException,\n OrganizationNotFoundException: () => OrganizationNotFoundException,\n OrganizationNotInAllFeaturesModeException: () => OrganizationNotInAllFeaturesModeException,\n PasswordPolicyViolationException: () => PasswordPolicyViolationException,\n PermissionsBoundaryAttachmentType: () => PermissionsBoundaryAttachmentType,\n PolicyEvaluationDecisionType: () => PolicyEvaluationDecisionType,\n PolicyEvaluationException: () => PolicyEvaluationException,\n PolicyNotAttachableException: () => PolicyNotAttachableException,\n PolicyOwnerEntityType: () => PolicyOwnerEntityType,\n PolicyScopeType: () => PolicyScopeType,\n PolicySourceType: () => PolicySourceType,\n PolicyType: () => PolicyType,\n PolicyUsageType: () => PolicyUsageType,\n PutGroupPolicyCommand: () => PutGroupPolicyCommand,\n PutRolePermissionsBoundaryCommand: () => PutRolePermissionsBoundaryCommand,\n PutRolePolicyCommand: () => PutRolePolicyCommand,\n PutUserPermissionsBoundaryCommand: () => PutUserPermissionsBoundaryCommand,\n PutUserPolicyCommand: () => PutUserPolicyCommand,\n RemoveClientIDFromOpenIDConnectProviderCommand: () => RemoveClientIDFromOpenIDConnectProviderCommand,\n RemoveRoleFromInstanceProfileCommand: () => RemoveRoleFromInstanceProfileCommand,\n RemoveUserFromGroupCommand: () => RemoveUserFromGroupCommand,\n ReportFormatType: () => ReportFormatType,\n ReportGenerationLimitExceededException: () => ReportGenerationLimitExceededException,\n ReportStateType: () => ReportStateType,\n ResetServiceSpecificCredentialCommand: () => ResetServiceSpecificCredentialCommand,\n ResetServiceSpecificCredentialResponseFilterSensitiveLog: () => ResetServiceSpecificCredentialResponseFilterSensitiveLog,\n ResyncMFADeviceCommand: () => ResyncMFADeviceCommand,\n ServiceAccessNotEnabledException: () => ServiceAccessNotEnabledException,\n ServiceFailureException: () => ServiceFailureException,\n ServiceNotSupportedException: () => ServiceNotSupportedException,\n ServiceSpecificCredentialFilterSensitiveLog: () => ServiceSpecificCredentialFilterSensitiveLog,\n SetDefaultPolicyVersionCommand: () => SetDefaultPolicyVersionCommand,\n SetSecurityTokenServicePreferencesCommand: () => SetSecurityTokenServicePreferencesCommand,\n SimulateCustomPolicyCommand: () => SimulateCustomPolicyCommand,\n SimulatePrincipalPolicyCommand: () => SimulatePrincipalPolicyCommand,\n SortKeyType: () => SortKeyType,\n StatusType: () => StatusType,\n SummaryKeyType: () => SummaryKeyType,\n TagInstanceProfileCommand: () => TagInstanceProfileCommand,\n TagMFADeviceCommand: () => TagMFADeviceCommand,\n TagOpenIDConnectProviderCommand: () => TagOpenIDConnectProviderCommand,\n TagPolicyCommand: () => TagPolicyCommand,\n TagRoleCommand: () => TagRoleCommand,\n TagSAMLProviderCommand: () => TagSAMLProviderCommand,\n TagServerCertificateCommand: () => TagServerCertificateCommand,\n TagUserCommand: () => TagUserCommand,\n UnmodifiableEntityException: () => UnmodifiableEntityException,\n UnrecognizedPublicKeyEncodingException: () => UnrecognizedPublicKeyEncodingException,\n UntagInstanceProfileCommand: () => UntagInstanceProfileCommand,\n UntagMFADeviceCommand: () => UntagMFADeviceCommand,\n UntagOpenIDConnectProviderCommand: () => UntagOpenIDConnectProviderCommand,\n UntagPolicyCommand: () => UntagPolicyCommand,\n UntagRoleCommand: () => UntagRoleCommand,\n UntagSAMLProviderCommand: () => UntagSAMLProviderCommand,\n UntagServerCertificateCommand: () => UntagServerCertificateCommand,\n UntagUserCommand: () => UntagUserCommand,\n UpdateAccessKeyCommand: () => UpdateAccessKeyCommand,\n UpdateAccountPasswordPolicyCommand: () => UpdateAccountPasswordPolicyCommand,\n UpdateAssumeRolePolicyCommand: () => UpdateAssumeRolePolicyCommand,\n UpdateGroupCommand: () => UpdateGroupCommand,\n UpdateLoginProfileCommand: () => UpdateLoginProfileCommand,\n UpdateLoginProfileRequestFilterSensitiveLog: () => UpdateLoginProfileRequestFilterSensitiveLog,\n UpdateOpenIDConnectProviderThumbprintCommand: () => UpdateOpenIDConnectProviderThumbprintCommand,\n UpdateRoleCommand: () => UpdateRoleCommand,\n UpdateRoleDescriptionCommand: () => UpdateRoleDescriptionCommand,\n UpdateSAMLProviderCommand: () => UpdateSAMLProviderCommand,\n UpdateSAMLProviderRequestFilterSensitiveLog: () => UpdateSAMLProviderRequestFilterSensitiveLog,\n UpdateSSHPublicKeyCommand: () => UpdateSSHPublicKeyCommand,\n UpdateServerCertificateCommand: () => UpdateServerCertificateCommand,\n UpdateServiceSpecificCredentialCommand: () => UpdateServiceSpecificCredentialCommand,\n UpdateSigningCertificateCommand: () => UpdateSigningCertificateCommand,\n UpdateUserCommand: () => UpdateUserCommand,\n UploadSSHPublicKeyCommand: () => UploadSSHPublicKeyCommand,\n UploadServerCertificateCommand: () => UploadServerCertificateCommand,\n UploadServerCertificateRequestFilterSensitiveLog: () => UploadServerCertificateRequestFilterSensitiveLog,\n UploadSigningCertificateCommand: () => UploadSigningCertificateCommand,\n VirtualMFADeviceFilterSensitiveLog: () => VirtualMFADeviceFilterSensitiveLog,\n __Client: () => import_smithy_client.Client,\n paginateGetAccountAuthorizationDetails: () => paginateGetAccountAuthorizationDetails,\n paginateGetGroup: () => paginateGetGroup,\n paginateListAccessKeys: () => paginateListAccessKeys,\n paginateListAccountAliases: () => paginateListAccountAliases,\n paginateListAttachedGroupPolicies: () => paginateListAttachedGroupPolicies,\n paginateListAttachedRolePolicies: () => paginateListAttachedRolePolicies,\n paginateListAttachedUserPolicies: () => paginateListAttachedUserPolicies,\n paginateListEntitiesForPolicy: () => paginateListEntitiesForPolicy,\n paginateListGroupPolicies: () => paginateListGroupPolicies,\n paginateListGroups: () => paginateListGroups,\n paginateListGroupsForUser: () => paginateListGroupsForUser,\n paginateListInstanceProfileTags: () => paginateListInstanceProfileTags,\n paginateListInstanceProfiles: () => paginateListInstanceProfiles,\n paginateListInstanceProfilesForRole: () => paginateListInstanceProfilesForRole,\n paginateListMFADeviceTags: () => paginateListMFADeviceTags,\n paginateListMFADevices: () => paginateListMFADevices,\n paginateListOpenIDConnectProviderTags: () => paginateListOpenIDConnectProviderTags,\n paginateListPolicies: () => paginateListPolicies,\n paginateListPolicyTags: () => paginateListPolicyTags,\n paginateListPolicyVersions: () => paginateListPolicyVersions,\n paginateListRolePolicies: () => paginateListRolePolicies,\n paginateListRoleTags: () => paginateListRoleTags,\n paginateListRoles: () => paginateListRoles,\n paginateListSAMLProviderTags: () => paginateListSAMLProviderTags,\n paginateListSSHPublicKeys: () => paginateListSSHPublicKeys,\n paginateListServerCertificateTags: () => paginateListServerCertificateTags,\n paginateListServerCertificates: () => paginateListServerCertificates,\n paginateListSigningCertificates: () => paginateListSigningCertificates,\n paginateListUserPolicies: () => paginateListUserPolicies,\n paginateListUserTags: () => paginateListUserTags,\n paginateListUsers: () => paginateListUsers,\n paginateListVirtualMFADevices: () => paginateListVirtualMFADevices,\n paginateSimulateCustomPolicy: () => paginateSimulateCustomPolicy,\n paginateSimulatePrincipalPolicy: () => paginateSimulatePrincipalPolicy,\n waitForInstanceProfileExists: () => waitForInstanceProfileExists,\n waitForPolicyExists: () => waitForPolicyExists,\n waitForRoleExists: () => waitForRoleExists,\n waitForUserExists: () => waitForUserExists,\n waitUntilInstanceProfileExists: () => waitUntilInstanceProfileExists,\n waitUntilPolicyExists: () => waitUntilPolicyExists,\n waitUntilRoleExists: () => waitUntilRoleExists,\n waitUntilUserExists: () => waitUntilUserExists\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/IAMClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"iam\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/IAMClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/IAMClient.ts\nvar IAMClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"IAMClient\");\n }\n /**\n * The resolved configuration of IAMClient class. This is resolved and normalized from the {@link IAMClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultIAMHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/IAM.ts\n\n\n// src/commands/AddClientIDToOpenIDConnectProviderCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_query.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/IAMServiceException.ts\n\nvar IAMServiceException = class _IAMServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"IAMServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _IAMServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AccessAdvisorUsageGranularityType = {\n ACTION_LEVEL: \"ACTION_LEVEL\",\n SERVICE_LEVEL: \"SERVICE_LEVEL\"\n};\nvar StatusType = {\n Active: \"Active\",\n Inactive: \"Inactive\"\n};\nvar AccountNotManagementOrDelegatedAdministratorException = class _AccountNotManagementOrDelegatedAdministratorException extends IAMServiceException {\n static {\n __name(this, \"AccountNotManagementOrDelegatedAdministratorException\");\n }\n name = \"AccountNotManagementOrDelegatedAdministratorException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccountNotManagementOrDelegatedAdministratorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccountNotManagementOrDelegatedAdministratorException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInputException = class _InvalidInputException extends IAMServiceException {\n static {\n __name(this, \"InvalidInputException\");\n }\n name = \"InvalidInputException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInputException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInputException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends IAMServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar NoSuchEntityException = class _NoSuchEntityException extends IAMServiceException {\n static {\n __name(this, \"NoSuchEntityException\");\n }\n name = \"NoSuchEntityException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchEntityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchEntityException.prototype);\n }\n};\nvar ServiceFailureException = class _ServiceFailureException extends IAMServiceException {\n static {\n __name(this, \"ServiceFailureException\");\n }\n name = \"ServiceFailureException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceFailureException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceFailureException.prototype);\n }\n};\nvar EntityAlreadyExistsException = class _EntityAlreadyExistsException extends IAMServiceException {\n static {\n __name(this, \"EntityAlreadyExistsException\");\n }\n name = \"EntityAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EntityAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EntityAlreadyExistsException.prototype);\n }\n};\nvar UnmodifiableEntityException = class _UnmodifiableEntityException extends IAMServiceException {\n static {\n __name(this, \"UnmodifiableEntityException\");\n }\n name = \"UnmodifiableEntityException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnmodifiableEntityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnmodifiableEntityException.prototype);\n }\n};\nvar AssertionEncryptionModeType = {\n Allowed: \"Allowed\",\n Required: \"Required\"\n};\nvar AssignmentStatusType = {\n Any: \"Any\",\n Assigned: \"Assigned\",\n Unassigned: \"Unassigned\"\n};\nvar PermissionsBoundaryAttachmentType = {\n Policy: \"PermissionsBoundaryPolicy\"\n};\nvar PolicyNotAttachableException = class _PolicyNotAttachableException extends IAMServiceException {\n static {\n __name(this, \"PolicyNotAttachableException\");\n }\n name = \"PolicyNotAttachableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PolicyNotAttachableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PolicyNotAttachableException.prototype);\n }\n};\nvar EntityTemporarilyUnmodifiableException = class _EntityTemporarilyUnmodifiableException extends IAMServiceException {\n static {\n __name(this, \"EntityTemporarilyUnmodifiableException\");\n }\n name = \"EntityTemporarilyUnmodifiableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EntityTemporarilyUnmodifiableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EntityTemporarilyUnmodifiableException.prototype);\n }\n};\nvar InvalidUserTypeException = class _InvalidUserTypeException extends IAMServiceException {\n static {\n __name(this, \"InvalidUserTypeException\");\n }\n name = \"InvalidUserTypeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidUserTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidUserTypeException.prototype);\n }\n};\nvar PasswordPolicyViolationException = class _PasswordPolicyViolationException extends IAMServiceException {\n static {\n __name(this, \"PasswordPolicyViolationException\");\n }\n name = \"PasswordPolicyViolationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PasswordPolicyViolationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PasswordPolicyViolationException.prototype);\n }\n};\nvar ConcurrentModificationException = class _ConcurrentModificationException extends IAMServiceException {\n static {\n __name(this, \"ConcurrentModificationException\");\n }\n name = \"ConcurrentModificationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModificationException.prototype);\n }\n};\nvar OpenIdIdpCommunicationErrorException = class _OpenIdIdpCommunicationErrorException extends IAMServiceException {\n static {\n __name(this, \"OpenIdIdpCommunicationErrorException\");\n }\n name = \"OpenIdIdpCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpenIdIdpCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpenIdIdpCommunicationErrorException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends IAMServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar ServiceNotSupportedException = class _ServiceNotSupportedException extends IAMServiceException {\n static {\n __name(this, \"ServiceNotSupportedException\");\n }\n name = \"ServiceNotSupportedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceNotSupportedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceNotSupportedException.prototype);\n }\n};\nvar DeleteConflictException = class _DeleteConflictException extends IAMServiceException {\n static {\n __name(this, \"DeleteConflictException\");\n }\n name = \"DeleteConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DeleteConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DeleteConflictException.prototype);\n }\n};\nvar FeatureType = {\n ROOT_CREDENTIALS_MANAGEMENT: \"RootCredentialsManagement\",\n ROOT_SESSIONS: \"RootSessions\"\n};\nvar OrganizationNotFoundException = class _OrganizationNotFoundException extends IAMServiceException {\n static {\n __name(this, \"OrganizationNotFoundException\");\n }\n name = \"OrganizationNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OrganizationNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OrganizationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OrganizationNotInAllFeaturesModeException = class _OrganizationNotInAllFeaturesModeException extends IAMServiceException {\n static {\n __name(this, \"OrganizationNotInAllFeaturesModeException\");\n }\n name = \"OrganizationNotInAllFeaturesModeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OrganizationNotInAllFeaturesModeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OrganizationNotInAllFeaturesModeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceAccessNotEnabledException = class _ServiceAccessNotEnabledException extends IAMServiceException {\n static {\n __name(this, \"ServiceAccessNotEnabledException\");\n }\n name = \"ServiceAccessNotEnabledException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceAccessNotEnabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceAccessNotEnabledException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAuthenticationCodeException = class _InvalidAuthenticationCodeException extends IAMServiceException {\n static {\n __name(this, \"InvalidAuthenticationCodeException\");\n }\n name = \"InvalidAuthenticationCodeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAuthenticationCodeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAuthenticationCodeException.prototype);\n }\n};\nvar CallerIsNotManagementAccountException = class _CallerIsNotManagementAccountException extends IAMServiceException {\n static {\n __name(this, \"CallerIsNotManagementAccountException\");\n }\n name = \"CallerIsNotManagementAccountException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CallerIsNotManagementAccountException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CallerIsNotManagementAccountException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ReportStateType = {\n COMPLETE: \"COMPLETE\",\n INPROGRESS: \"INPROGRESS\",\n STARTED: \"STARTED\"\n};\nvar ReportGenerationLimitExceededException = class _ReportGenerationLimitExceededException extends IAMServiceException {\n static {\n __name(this, \"ReportGenerationLimitExceededException\");\n }\n name = \"ReportGenerationLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ReportGenerationLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ReportGenerationLimitExceededException.prototype);\n }\n};\nvar EntityType = {\n AWSManagedPolicy: \"AWSManagedPolicy\",\n Group: \"Group\",\n LocalManagedPolicy: \"LocalManagedPolicy\",\n Role: \"Role\",\n User: \"User\"\n};\nvar SummaryKeyType = {\n AccessKeysPerUserQuota: \"AccessKeysPerUserQuota\",\n AccountAccessKeysPresent: \"AccountAccessKeysPresent\",\n AccountMFAEnabled: \"AccountMFAEnabled\",\n AccountPasswordPresent: \"AccountPasswordPresent\",\n AccountSigningCertificatesPresent: \"AccountSigningCertificatesPresent\",\n AttachedPoliciesPerGroupQuota: \"AttachedPoliciesPerGroupQuota\",\n AttachedPoliciesPerRoleQuota: \"AttachedPoliciesPerRoleQuota\",\n AttachedPoliciesPerUserQuota: \"AttachedPoliciesPerUserQuota\",\n GlobalEndpointTokenVersion: \"GlobalEndpointTokenVersion\",\n GroupPolicySizeQuota: \"GroupPolicySizeQuota\",\n Groups: \"Groups\",\n GroupsPerUserQuota: \"GroupsPerUserQuota\",\n GroupsQuota: \"GroupsQuota\",\n MFADevices: \"MFADevices\",\n MFADevicesInUse: \"MFADevicesInUse\",\n Policies: \"Policies\",\n PoliciesQuota: \"PoliciesQuota\",\n PolicySizeQuota: \"PolicySizeQuota\",\n PolicyVersionsInUse: \"PolicyVersionsInUse\",\n PolicyVersionsInUseQuota: \"PolicyVersionsInUseQuota\",\n ServerCertificates: \"ServerCertificates\",\n ServerCertificatesQuota: \"ServerCertificatesQuota\",\n SigningCertificatesPerUserQuota: \"SigningCertificatesPerUserQuota\",\n UserPolicySizeQuota: \"UserPolicySizeQuota\",\n Users: \"Users\",\n UsersQuota: \"UsersQuota\",\n VersionsPerPolicyQuota: \"VersionsPerPolicyQuota\"\n};\nvar CredentialReportExpiredException = class _CredentialReportExpiredException extends IAMServiceException {\n static {\n __name(this, \"CredentialReportExpiredException\");\n }\n name = \"CredentialReportExpiredException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CredentialReportExpiredException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CredentialReportExpiredException.prototype);\n }\n};\nvar CredentialReportNotPresentException = class _CredentialReportNotPresentException extends IAMServiceException {\n static {\n __name(this, \"CredentialReportNotPresentException\");\n }\n name = \"CredentialReportNotPresentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CredentialReportNotPresentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CredentialReportNotPresentException.prototype);\n }\n};\nvar CredentialReportNotReadyException = class _CredentialReportNotReadyException extends IAMServiceException {\n static {\n __name(this, \"CredentialReportNotReadyException\");\n }\n name = \"CredentialReportNotReadyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CredentialReportNotReadyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CredentialReportNotReadyException.prototype);\n }\n};\nvar ReportFormatType = {\n text_csv: \"text/csv\"\n};\nvar SortKeyType = {\n LAST_AUTHENTICATED_TIME_ASCENDING: \"LAST_AUTHENTICATED_TIME_ASCENDING\",\n LAST_AUTHENTICATED_TIME_DESCENDING: \"LAST_AUTHENTICATED_TIME_DESCENDING\",\n SERVICE_NAMESPACE_ASCENDING: \"SERVICE_NAMESPACE_ASCENDING\",\n SERVICE_NAMESPACE_DESCENDING: \"SERVICE_NAMESPACE_DESCENDING\"\n};\nvar JobStatusType = {\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\"\n};\nvar PolicyOwnerEntityType = {\n GROUP: \"GROUP\",\n ROLE: \"ROLE\",\n USER: \"USER\"\n};\nvar DeletionTaskStatusType = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n NOT_STARTED: \"NOT_STARTED\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar EncodingType = {\n PEM: \"PEM\",\n SSH: \"SSH\"\n};\nvar UnrecognizedPublicKeyEncodingException = class _UnrecognizedPublicKeyEncodingException extends IAMServiceException {\n static {\n __name(this, \"UnrecognizedPublicKeyEncodingException\");\n }\n name = \"UnrecognizedPublicKeyEncodingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnrecognizedPublicKeyEncodingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnrecognizedPublicKeyEncodingException.prototype);\n }\n};\nvar PolicyUsageType = {\n PermissionsBoundary: \"PermissionsBoundary\",\n PermissionsPolicy: \"PermissionsPolicy\"\n};\nvar PolicyScopeType = {\n AWS: \"AWS\",\n All: \"All\",\n Local: \"Local\"\n};\nvar PolicyType = {\n INLINE: \"INLINE\",\n MANAGED: \"MANAGED\"\n};\nvar GlobalEndpointTokenVersion = {\n v1Token: \"v1Token\",\n v2Token: \"v2Token\"\n};\nvar PolicyEvaluationException = class _PolicyEvaluationException extends IAMServiceException {\n static {\n __name(this, \"PolicyEvaluationException\");\n }\n name = \"PolicyEvaluationException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PolicyEvaluationException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _PolicyEvaluationException.prototype);\n }\n};\nvar ContextKeyTypeEnum = {\n BINARY: \"binary\",\n BINARY_LIST: \"binaryList\",\n BOOLEAN: \"boolean\",\n BOOLEAN_LIST: \"booleanList\",\n DATE: \"date\",\n DATE_LIST: \"dateList\",\n IP: \"ip\",\n IP_LIST: \"ipList\",\n NUMERIC: \"numeric\",\n NUMERIC_LIST: \"numericList\",\n STRING: \"string\",\n STRING_LIST: \"stringList\"\n};\nvar AccessKeyFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING }\n}), \"AccessKeyFilterSensitiveLog\");\nvar ChangePasswordRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OldPassword && { OldPassword: import_smithy_client.SENSITIVE_STRING },\n ...obj.NewPassword && { NewPassword: import_smithy_client.SENSITIVE_STRING }\n}), \"ChangePasswordRequestFilterSensitiveLog\");\nvar CreateAccessKeyResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AccessKey && { AccessKey: AccessKeyFilterSensitiveLog(obj.AccessKey) }\n}), \"CreateAccessKeyResponseFilterSensitiveLog\");\nvar CreateLoginProfileRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Password && { Password: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateLoginProfileRequestFilterSensitiveLog\");\nvar CreateSAMLProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AddPrivateKey && { AddPrivateKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateSAMLProviderRequestFilterSensitiveLog\");\nvar ServiceSpecificCredentialFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServicePassword && { ServicePassword: import_smithy_client.SENSITIVE_STRING }\n}), \"ServiceSpecificCredentialFilterSensitiveLog\");\nvar CreateServiceSpecificCredentialResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServiceSpecificCredential && {\n ServiceSpecificCredential: ServiceSpecificCredentialFilterSensitiveLog(obj.ServiceSpecificCredential)\n }\n}), \"CreateServiceSpecificCredentialResponseFilterSensitiveLog\");\nvar VirtualMFADeviceFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Base32StringSeed && { Base32StringSeed: import_smithy_client.SENSITIVE_STRING },\n ...obj.QRCodePNG && { QRCodePNG: import_smithy_client.SENSITIVE_STRING }\n}), \"VirtualMFADeviceFilterSensitiveLog\");\nvar CreateVirtualMFADeviceResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VirtualMFADevice && { VirtualMFADevice: VirtualMFADeviceFilterSensitiveLog(obj.VirtualMFADevice) }\n}), \"CreateVirtualMFADeviceResponseFilterSensitiveLog\");\nvar ListVirtualMFADevicesResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.VirtualMFADevices && {\n VirtualMFADevices: obj.VirtualMFADevices.map((item) => VirtualMFADeviceFilterSensitiveLog(item))\n }\n}), \"ListVirtualMFADevicesResponseFilterSensitiveLog\");\nvar ResetServiceSpecificCredentialResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServiceSpecificCredential && {\n ServiceSpecificCredential: ServiceSpecificCredentialFilterSensitiveLog(obj.ServiceSpecificCredential)\n }\n}), \"ResetServiceSpecificCredentialResponseFilterSensitiveLog\");\n\n// src/models/models_1.ts\n\nvar PolicyEvaluationDecisionType = {\n ALLOWED: \"allowed\",\n EXPLICIT_DENY: \"explicitDeny\",\n IMPLICIT_DENY: \"implicitDeny\"\n};\nvar PolicySourceType = {\n AWS_MANAGED: \"aws-managed\",\n GROUP: \"group\",\n NONE: \"none\",\n RESOURCE: \"resource\",\n ROLE: \"role\",\n USER: \"user\",\n USER_MANAGED: \"user-managed\"\n};\nvar KeyPairMismatchException = class _KeyPairMismatchException extends IAMServiceException {\n static {\n __name(this, \"KeyPairMismatchException\");\n }\n name = \"KeyPairMismatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeyPairMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeyPairMismatchException.prototype);\n }\n};\nvar MalformedCertificateException = class _MalformedCertificateException extends IAMServiceException {\n static {\n __name(this, \"MalformedCertificateException\");\n }\n name = \"MalformedCertificateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedCertificateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedCertificateException.prototype);\n }\n};\nvar DuplicateCertificateException = class _DuplicateCertificateException extends IAMServiceException {\n static {\n __name(this, \"DuplicateCertificateException\");\n }\n name = \"DuplicateCertificateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateCertificateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateCertificateException.prototype);\n }\n};\nvar InvalidCertificateException = class _InvalidCertificateException extends IAMServiceException {\n static {\n __name(this, \"InvalidCertificateException\");\n }\n name = \"InvalidCertificateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCertificateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCertificateException.prototype);\n }\n};\nvar DuplicateSSHPublicKeyException = class _DuplicateSSHPublicKeyException extends IAMServiceException {\n static {\n __name(this, \"DuplicateSSHPublicKeyException\");\n }\n name = \"DuplicateSSHPublicKeyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateSSHPublicKeyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateSSHPublicKeyException.prototype);\n }\n};\nvar InvalidPublicKeyException = class _InvalidPublicKeyException extends IAMServiceException {\n static {\n __name(this, \"InvalidPublicKeyException\");\n }\n name = \"InvalidPublicKeyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPublicKeyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPublicKeyException.prototype);\n }\n};\nvar UpdateLoginProfileRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Password && { Password: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateLoginProfileRequestFilterSensitiveLog\");\nvar UpdateSAMLProviderRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AddPrivateKey && { AddPrivateKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateSAMLProviderRequestFilterSensitiveLog\");\nvar UploadServerCertificateRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PrivateKey && { PrivateKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadServerCertificateRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_query.ts\nvar se_AddClientIDToOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddClientIDToOpenIDConnectProviderRequest(input, context),\n [_A]: _ACIDTOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddClientIDToOpenIDConnectProviderCommand\");\nvar se_AddRoleToInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddRoleToInstanceProfileRequest(input, context),\n [_A]: _ARTIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddRoleToInstanceProfileCommand\");\nvar se_AddUserToGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AddUserToGroupRequest(input, context),\n [_A]: _AUTG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddUserToGroupCommand\");\nvar se_AttachGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachGroupPolicyRequest(input, context),\n [_A]: _AGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachGroupPolicyCommand\");\nvar se_AttachRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachRolePolicyRequest(input, context),\n [_A]: _ARP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachRolePolicyCommand\");\nvar se_AttachUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AttachUserPolicyRequest(input, context),\n [_A]: _AUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AttachUserPolicyCommand\");\nvar se_ChangePasswordCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ChangePasswordRequest(input, context),\n [_A]: _CP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ChangePasswordCommand\");\nvar se_CreateAccessKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateAccessKeyRequest(input, context),\n [_A]: _CAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAccessKeyCommand\");\nvar se_CreateAccountAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateAccountAliasRequest(input, context),\n [_A]: _CAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAccountAliasCommand\");\nvar se_CreateGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateGroupRequest(input, context),\n [_A]: _CG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateGroupCommand\");\nvar se_CreateInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateInstanceProfileRequest(input, context),\n [_A]: _CIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateInstanceProfileCommand\");\nvar se_CreateLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateLoginProfileRequest(input, context),\n [_A]: _CLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateLoginProfileCommand\");\nvar se_CreateOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateOpenIDConnectProviderRequest(input, context),\n [_A]: _COIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateOpenIDConnectProviderCommand\");\nvar se_CreatePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePolicyRequest(input, context),\n [_A]: _CPr,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePolicyCommand\");\nvar se_CreatePolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreatePolicyVersionRequest(input, context),\n [_A]: _CPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePolicyVersionCommand\");\nvar se_CreateRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateRoleRequest(input, context),\n [_A]: _CR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateRoleCommand\");\nvar se_CreateSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateSAMLProviderRequest(input, context),\n [_A]: _CSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSAMLProviderCommand\");\nvar se_CreateServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateServiceLinkedRoleRequest(input, context),\n [_A]: _CSLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateServiceLinkedRoleCommand\");\nvar se_CreateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateServiceSpecificCredentialRequest(input, context),\n [_A]: _CSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateServiceSpecificCredentialCommand\");\nvar se_CreateUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateUserRequest(input, context),\n [_A]: _CU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateUserCommand\");\nvar se_CreateVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_CreateVirtualMFADeviceRequest(input, context),\n [_A]: _CVMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateVirtualMFADeviceCommand\");\nvar se_DeactivateMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeactivateMFADeviceRequest(input, context),\n [_A]: _DMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeactivateMFADeviceCommand\");\nvar se_DeleteAccessKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteAccessKeyRequest(input, context),\n [_A]: _DAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccessKeyCommand\");\nvar se_DeleteAccountAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteAccountAliasRequest(input, context),\n [_A]: _DAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountAliasCommand\");\nvar se_DeleteAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _DAPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAccountPasswordPolicyCommand\");\nvar se_DeleteGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteGroupRequest(input, context),\n [_A]: _DG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteGroupCommand\");\nvar se_DeleteGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteGroupPolicyRequest(input, context),\n [_A]: _DGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteGroupPolicyCommand\");\nvar se_DeleteInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteInstanceProfileRequest(input, context),\n [_A]: _DIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInstanceProfileCommand\");\nvar se_DeleteLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteLoginProfileRequest(input, context),\n [_A]: _DLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteLoginProfileCommand\");\nvar se_DeleteOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteOpenIDConnectProviderRequest(input, context),\n [_A]: _DOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteOpenIDConnectProviderCommand\");\nvar se_DeletePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePolicyRequest(input, context),\n [_A]: _DP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePolicyCommand\");\nvar se_DeletePolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeletePolicyVersionRequest(input, context),\n [_A]: _DPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePolicyVersionCommand\");\nvar se_DeleteRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRoleRequest(input, context),\n [_A]: _DR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRoleCommand\");\nvar se_DeleteRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRolePermissionsBoundaryRequest(input, context),\n [_A]: _DRPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRolePermissionsBoundaryCommand\");\nvar se_DeleteRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteRolePolicyRequest(input, context),\n [_A]: _DRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteRolePolicyCommand\");\nvar se_DeleteSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSAMLProviderRequest(input, context),\n [_A]: _DSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSAMLProviderCommand\");\nvar se_DeleteServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteServerCertificateRequest(input, context),\n [_A]: _DSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServerCertificateCommand\");\nvar se_DeleteServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteServiceLinkedRoleRequest(input, context),\n [_A]: _DSLR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServiceLinkedRoleCommand\");\nvar se_DeleteServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteServiceSpecificCredentialRequest(input, context),\n [_A]: _DSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteServiceSpecificCredentialCommand\");\nvar se_DeleteSigningCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSigningCertificateRequest(input, context),\n [_A]: _DSCe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSigningCertificateCommand\");\nvar se_DeleteSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteSSHPublicKeyRequest(input, context),\n [_A]: _DSSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSSHPublicKeyCommand\");\nvar se_DeleteUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteUserRequest(input, context),\n [_A]: _DU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteUserCommand\");\nvar se_DeleteUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteUserPermissionsBoundaryRequest(input, context),\n [_A]: _DUPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteUserPermissionsBoundaryCommand\");\nvar se_DeleteUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteUserPolicyRequest(input, context),\n [_A]: _DUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteUserPolicyCommand\");\nvar se_DeleteVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DeleteVirtualMFADeviceRequest(input, context),\n [_A]: _DVMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteVirtualMFADeviceCommand\");\nvar se_DetachGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachGroupPolicyRequest(input, context),\n [_A]: _DGPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachGroupPolicyCommand\");\nvar se_DetachRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachRolePolicyRequest(input, context),\n [_A]: _DRPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachRolePolicyCommand\");\nvar se_DetachUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DetachUserPolicyRequest(input, context),\n [_A]: _DUPe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DetachUserPolicyCommand\");\nvar se_DisableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableOrganizationsRootCredentialsManagementRequest(input, context),\n [_A]: _DORCM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableOrganizationsRootCredentialsManagementCommand\");\nvar se_DisableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DisableOrganizationsRootSessionsRequest(input, context),\n [_A]: _DORS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableOrganizationsRootSessionsCommand\");\nvar se_EnableMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableMFADeviceRequest(input, context),\n [_A]: _EMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableMFADeviceCommand\");\nvar se_EnableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableOrganizationsRootCredentialsManagementRequest(input, context),\n [_A]: _EORCM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableOrganizationsRootCredentialsManagementCommand\");\nvar se_EnableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_EnableOrganizationsRootSessionsRequest(input, context),\n [_A]: _EORS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableOrganizationsRootSessionsCommand\");\nvar se_GenerateCredentialReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GCR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateCredentialReportCommand\");\nvar se_GenerateOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GenerateOrganizationsAccessReportRequest(input, context),\n [_A]: _GOAR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateOrganizationsAccessReportCommand\");\nvar se_GenerateServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GenerateServiceLastAccessedDetailsRequest(input, context),\n [_A]: _GSLAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateServiceLastAccessedDetailsCommand\");\nvar se_GetAccessKeyLastUsedCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAccessKeyLastUsedRequest(input, context),\n [_A]: _GAKLU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccessKeyLastUsedCommand\");\nvar se_GetAccountAuthorizationDetailsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAccountAuthorizationDetailsRequest(input, context),\n [_A]: _GAAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountAuthorizationDetailsCommand\");\nvar se_GetAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GAPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountPasswordPolicyCommand\");\nvar se_GetAccountSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GAS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccountSummaryCommand\");\nvar se_GetContextKeysForCustomPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetContextKeysForCustomPolicyRequest(input, context),\n [_A]: _GCKFCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetContextKeysForCustomPolicyCommand\");\nvar se_GetContextKeysForPrincipalPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetContextKeysForPrincipalPolicyRequest(input, context),\n [_A]: _GCKFPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetContextKeysForPrincipalPolicyCommand\");\nvar se_GetCredentialReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n const body = buildFormUrlencodedString({\n [_A]: _GCRe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCredentialReportCommand\");\nvar se_GetGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetGroupRequest(input, context),\n [_A]: _GG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetGroupCommand\");\nvar se_GetGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetGroupPolicyRequest(input, context),\n [_A]: _GGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetGroupPolicyCommand\");\nvar se_GetInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetInstanceProfileRequest(input, context),\n [_A]: _GIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInstanceProfileCommand\");\nvar se_GetLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetLoginProfileRequest(input, context),\n [_A]: _GLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetLoginProfileCommand\");\nvar se_GetMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetMFADeviceRequest(input, context),\n [_A]: _GMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMFADeviceCommand\");\nvar se_GetOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetOpenIDConnectProviderRequest(input, context),\n [_A]: _GOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpenIDConnectProviderCommand\");\nvar se_GetOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetOrganizationsAccessReportRequest(input, context),\n [_A]: _GOARe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOrganizationsAccessReportCommand\");\nvar se_GetPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetPolicyRequest(input, context),\n [_A]: _GP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPolicyCommand\");\nvar se_GetPolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetPolicyVersionRequest(input, context),\n [_A]: _GPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPolicyVersionCommand\");\nvar se_GetRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRoleRequest(input, context),\n [_A]: _GR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRoleCommand\");\nvar se_GetRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetRolePolicyRequest(input, context),\n [_A]: _GRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRolePolicyCommand\");\nvar se_GetSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSAMLProviderRequest(input, context),\n [_A]: _GSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSAMLProviderCommand\");\nvar se_GetServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServerCertificateRequest(input, context),\n [_A]: _GSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServerCertificateCommand\");\nvar se_GetServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServiceLastAccessedDetailsRequest(input, context),\n [_A]: _GSLADe,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceLastAccessedDetailsCommand\");\nvar se_GetServiceLastAccessedDetailsWithEntitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServiceLastAccessedDetailsWithEntitiesRequest(input, context),\n [_A]: _GSLADWE,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceLastAccessedDetailsWithEntitiesCommand\");\nvar se_GetServiceLinkedRoleDeletionStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetServiceLinkedRoleDeletionStatusRequest(input, context),\n [_A]: _GSLRDS,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceLinkedRoleDeletionStatusCommand\");\nvar se_GetSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSSHPublicKeyRequest(input, context),\n [_A]: _GSSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSSHPublicKeyCommand\");\nvar se_GetUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetUserRequest(input, context),\n [_A]: _GU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetUserCommand\");\nvar se_GetUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetUserPolicyRequest(input, context),\n [_A]: _GUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetUserPolicyCommand\");\nvar se_ListAccessKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAccessKeysRequest(input, context),\n [_A]: _LAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAccessKeysCommand\");\nvar se_ListAccountAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAccountAliasesRequest(input, context),\n [_A]: _LAA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAccountAliasesCommand\");\nvar se_ListAttachedGroupPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAttachedGroupPoliciesRequest(input, context),\n [_A]: _LAGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttachedGroupPoliciesCommand\");\nvar se_ListAttachedRolePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAttachedRolePoliciesRequest(input, context),\n [_A]: _LARP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttachedRolePoliciesCommand\");\nvar se_ListAttachedUserPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListAttachedUserPoliciesRequest(input, context),\n [_A]: _LAUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAttachedUserPoliciesCommand\");\nvar se_ListEntitiesForPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListEntitiesForPolicyRequest(input, context),\n [_A]: _LEFP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListEntitiesForPolicyCommand\");\nvar se_ListGroupPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListGroupPoliciesRequest(input, context),\n [_A]: _LGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGroupPoliciesCommand\");\nvar se_ListGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListGroupsRequest(input, context),\n [_A]: _LG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGroupsCommand\");\nvar se_ListGroupsForUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListGroupsForUserRequest(input, context),\n [_A]: _LGFU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGroupsForUserCommand\");\nvar se_ListInstanceProfilesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListInstanceProfilesRequest(input, context),\n [_A]: _LIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInstanceProfilesCommand\");\nvar se_ListInstanceProfilesForRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListInstanceProfilesForRoleRequest(input, context),\n [_A]: _LIPFR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInstanceProfilesForRoleCommand\");\nvar se_ListInstanceProfileTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListInstanceProfileTagsRequest(input, context),\n [_A]: _LIPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInstanceProfileTagsCommand\");\nvar se_ListMFADevicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListMFADevicesRequest(input, context),\n [_A]: _LMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListMFADevicesCommand\");\nvar se_ListMFADeviceTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListMFADeviceTagsRequest(input, context),\n [_A]: _LMFADT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListMFADeviceTagsCommand\");\nvar se_ListOpenIDConnectProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListOpenIDConnectProvidersRequest(input, context),\n [_A]: _LOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpenIDConnectProvidersCommand\");\nvar se_ListOpenIDConnectProviderTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListOpenIDConnectProviderTagsRequest(input, context),\n [_A]: _LOIDCPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpenIDConnectProviderTagsCommand\");\nvar se_ListOrganizationsFeaturesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListOrganizationsFeaturesRequest(input, context),\n [_A]: _LOF,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOrganizationsFeaturesCommand\");\nvar se_ListPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPoliciesRequest(input, context),\n [_A]: _LP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPoliciesCommand\");\nvar se_ListPoliciesGrantingServiceAccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPoliciesGrantingServiceAccessRequest(input, context),\n [_A]: _LPGSA,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPoliciesGrantingServiceAccessCommand\");\nvar se_ListPolicyTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPolicyTagsRequest(input, context),\n [_A]: _LPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPolicyTagsCommand\");\nvar se_ListPolicyVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListPolicyVersionsRequest(input, context),\n [_A]: _LPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListPolicyVersionsCommand\");\nvar se_ListRolePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListRolePoliciesRequest(input, context),\n [_A]: _LRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRolePoliciesCommand\");\nvar se_ListRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListRolesRequest(input, context),\n [_A]: _LR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRolesCommand\");\nvar se_ListRoleTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListRoleTagsRequest(input, context),\n [_A]: _LRT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRoleTagsCommand\");\nvar se_ListSAMLProvidersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSAMLProvidersRequest(input, context),\n [_A]: _LSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSAMLProvidersCommand\");\nvar se_ListSAMLProviderTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSAMLProviderTagsRequest(input, context),\n [_A]: _LSAMLPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSAMLProviderTagsCommand\");\nvar se_ListServerCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListServerCertificatesRequest(input, context),\n [_A]: _LSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServerCertificatesCommand\");\nvar se_ListServerCertificateTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListServerCertificateTagsRequest(input, context),\n [_A]: _LSCT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServerCertificateTagsCommand\");\nvar se_ListServiceSpecificCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListServiceSpecificCredentialsRequest(input, context),\n [_A]: _LSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListServiceSpecificCredentialsCommand\");\nvar se_ListSigningCertificatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSigningCertificatesRequest(input, context),\n [_A]: _LSCi,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSigningCertificatesCommand\");\nvar se_ListSSHPublicKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListSSHPublicKeysRequest(input, context),\n [_A]: _LSSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSSHPublicKeysCommand\");\nvar se_ListUserPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListUserPoliciesRequest(input, context),\n [_A]: _LUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListUserPoliciesCommand\");\nvar se_ListUsersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListUsersRequest(input, context),\n [_A]: _LU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListUsersCommand\");\nvar se_ListUserTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListUserTagsRequest(input, context),\n [_A]: _LUT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListUserTagsCommand\");\nvar se_ListVirtualMFADevicesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ListVirtualMFADevicesRequest(input, context),\n [_A]: _LVMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListVirtualMFADevicesCommand\");\nvar se_PutGroupPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutGroupPolicyRequest(input, context),\n [_A]: _PGP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutGroupPolicyCommand\");\nvar se_PutRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutRolePermissionsBoundaryRequest(input, context),\n [_A]: _PRPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRolePermissionsBoundaryCommand\");\nvar se_PutRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutRolePolicyRequest(input, context),\n [_A]: _PRP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutRolePolicyCommand\");\nvar se_PutUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutUserPermissionsBoundaryRequest(input, context),\n [_A]: _PUPB,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutUserPermissionsBoundaryCommand\");\nvar se_PutUserPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_PutUserPolicyRequest(input, context),\n [_A]: _PUP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutUserPolicyCommand\");\nvar se_RemoveClientIDFromOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveClientIDFromOpenIDConnectProviderRequest(input, context),\n [_A]: _RCIDFOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveClientIDFromOpenIDConnectProviderCommand\");\nvar se_RemoveRoleFromInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveRoleFromInstanceProfileRequest(input, context),\n [_A]: _RRFIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveRoleFromInstanceProfileCommand\");\nvar se_RemoveUserFromGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_RemoveUserFromGroupRequest(input, context),\n [_A]: _RUFG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveUserFromGroupCommand\");\nvar se_ResetServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResetServiceSpecificCredentialRequest(input, context),\n [_A]: _RSSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetServiceSpecificCredentialCommand\");\nvar se_ResyncMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_ResyncMFADeviceRequest(input, context),\n [_A]: _RMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResyncMFADeviceCommand\");\nvar se_SetDefaultPolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetDefaultPolicyVersionRequest(input, context),\n [_A]: _SDPV,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetDefaultPolicyVersionCommand\");\nvar se_SetSecurityTokenServicePreferencesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SetSecurityTokenServicePreferencesRequest(input, context),\n [_A]: _SSTSP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SetSecurityTokenServicePreferencesCommand\");\nvar se_SimulateCustomPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SimulateCustomPolicyRequest(input, context),\n [_A]: _SCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SimulateCustomPolicyCommand\");\nvar se_SimulatePrincipalPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_SimulatePrincipalPolicyRequest(input, context),\n [_A]: _SPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SimulatePrincipalPolicyCommand\");\nvar se_TagInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagInstanceProfileRequest(input, context),\n [_A]: _TIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagInstanceProfileCommand\");\nvar se_TagMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagMFADeviceRequest(input, context),\n [_A]: _TMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagMFADeviceCommand\");\nvar se_TagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagOpenIDConnectProviderRequest(input, context),\n [_A]: _TOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagOpenIDConnectProviderCommand\");\nvar se_TagPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagPolicyRequest(input, context),\n [_A]: _TP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagPolicyCommand\");\nvar se_TagRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagRoleRequest(input, context),\n [_A]: _TR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagRoleCommand\");\nvar se_TagSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagSAMLProviderRequest(input, context),\n [_A]: _TSAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagSAMLProviderCommand\");\nvar se_TagServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagServerCertificateRequest(input, context),\n [_A]: _TSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagServerCertificateCommand\");\nvar se_TagUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_TagUserRequest(input, context),\n [_A]: _TU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagUserCommand\");\nvar se_UntagInstanceProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagInstanceProfileRequest(input, context),\n [_A]: _UIP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagInstanceProfileCommand\");\nvar se_UntagMFADeviceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagMFADeviceRequest(input, context),\n [_A]: _UMFAD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagMFADeviceCommand\");\nvar se_UntagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagOpenIDConnectProviderRequest(input, context),\n [_A]: _UOIDCP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagOpenIDConnectProviderCommand\");\nvar se_UntagPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagPolicyRequest(input, context),\n [_A]: _UP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagPolicyCommand\");\nvar se_UntagRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagRoleRequest(input, context),\n [_A]: _UR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagRoleCommand\");\nvar se_UntagSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagSAMLProviderRequest(input, context),\n [_A]: _USAMLP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagSAMLProviderCommand\");\nvar se_UntagServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagServerCertificateRequest(input, context),\n [_A]: _USC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagServerCertificateCommand\");\nvar se_UntagUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UntagUserRequest(input, context),\n [_A]: _UU,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagUserCommand\");\nvar se_UpdateAccessKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateAccessKeyRequest(input, context),\n [_A]: _UAK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAccessKeyCommand\");\nvar se_UpdateAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateAccountPasswordPolicyRequest(input, context),\n [_A]: _UAPP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAccountPasswordPolicyCommand\");\nvar se_UpdateAssumeRolePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateAssumeRolePolicyRequest(input, context),\n [_A]: _UARP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAssumeRolePolicyCommand\");\nvar se_UpdateGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateGroupRequest(input, context),\n [_A]: _UG,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateGroupCommand\");\nvar se_UpdateLoginProfileCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateLoginProfileRequest(input, context),\n [_A]: _ULP,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateLoginProfileCommand\");\nvar se_UpdateOpenIDConnectProviderThumbprintCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateOpenIDConnectProviderThumbprintRequest(input, context),\n [_A]: _UOIDCPT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateOpenIDConnectProviderThumbprintCommand\");\nvar se_UpdateRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateRoleRequest(input, context),\n [_A]: _URp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateRoleCommand\");\nvar se_UpdateRoleDescriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateRoleDescriptionRequest(input, context),\n [_A]: _URD,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateRoleDescriptionCommand\");\nvar se_UpdateSAMLProviderCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSAMLProviderRequest(input, context),\n [_A]: _USAMLPp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSAMLProviderCommand\");\nvar se_UpdateServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateServerCertificateRequest(input, context),\n [_A]: _USCp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServerCertificateCommand\");\nvar se_UpdateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateServiceSpecificCredentialRequest(input, context),\n [_A]: _USSC,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServiceSpecificCredentialCommand\");\nvar se_UpdateSigningCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSigningCertificateRequest(input, context),\n [_A]: _USCpd,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSigningCertificateCommand\");\nvar se_UpdateSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateSSHPublicKeyRequest(input, context),\n [_A]: _USSHPK,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSSHPublicKeyCommand\");\nvar se_UpdateUserCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UpdateUserRequest(input, context),\n [_A]: _UUp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateUserCommand\");\nvar se_UploadServerCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UploadServerCertificateRequest(input, context),\n [_A]: _USCpl,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadServerCertificateCommand\");\nvar se_UploadSigningCertificateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UploadSigningCertificateRequest(input, context),\n [_A]: _USCplo,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadSigningCertificateCommand\");\nvar se_UploadSSHPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_UploadSSHPublicKeyRequest(input, context),\n [_A]: _USSHPKp,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UploadSSHPublicKeyCommand\");\nvar de_AddClientIDToOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AddClientIDToOpenIDConnectProviderCommand\");\nvar de_AddRoleToInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AddRoleToInstanceProfileCommand\");\nvar de_AddUserToGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AddUserToGroupCommand\");\nvar de_AttachGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachGroupPolicyCommand\");\nvar de_AttachRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachRolePolicyCommand\");\nvar de_AttachUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_AttachUserPolicyCommand\");\nvar de_ChangePasswordCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ChangePasswordCommand\");\nvar de_CreateAccessKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateAccessKeyResponse(data.CreateAccessKeyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateAccessKeyCommand\");\nvar de_CreateAccountAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateAccountAliasCommand\");\nvar de_CreateGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateGroupResponse(data.CreateGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateGroupCommand\");\nvar de_CreateInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateInstanceProfileResponse(data.CreateInstanceProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateInstanceProfileCommand\");\nvar de_CreateLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateLoginProfileResponse(data.CreateLoginProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateLoginProfileCommand\");\nvar de_CreateOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateOpenIDConnectProviderResponse(data.CreateOpenIDConnectProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateOpenIDConnectProviderCommand\");\nvar de_CreatePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePolicyResponse(data.CreatePolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePolicyCommand\");\nvar de_CreatePolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreatePolicyVersionResponse(data.CreatePolicyVersionResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePolicyVersionCommand\");\nvar de_CreateRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateRoleResponse(data.CreateRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateRoleCommand\");\nvar de_CreateSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateSAMLProviderResponse(data.CreateSAMLProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSAMLProviderCommand\");\nvar de_CreateServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateServiceLinkedRoleResponse(data.CreateServiceLinkedRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateServiceLinkedRoleCommand\");\nvar de_CreateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateServiceSpecificCredentialResponse(data.CreateServiceSpecificCredentialResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateServiceSpecificCredentialCommand\");\nvar de_CreateUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateUserResponse(data.CreateUserResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateUserCommand\");\nvar de_CreateVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_CreateVirtualMFADeviceResponse(data.CreateVirtualMFADeviceResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateVirtualMFADeviceCommand\");\nvar de_DeactivateMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeactivateMFADeviceCommand\");\nvar de_DeleteAccessKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccessKeyCommand\");\nvar de_DeleteAccountAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccountAliasCommand\");\nvar de_DeleteAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAccountPasswordPolicyCommand\");\nvar de_DeleteGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteGroupCommand\");\nvar de_DeleteGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteGroupPolicyCommand\");\nvar de_DeleteInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteInstanceProfileCommand\");\nvar de_DeleteLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteLoginProfileCommand\");\nvar de_DeleteOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteOpenIDConnectProviderCommand\");\nvar de_DeletePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeletePolicyCommand\");\nvar de_DeletePolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeletePolicyVersionCommand\");\nvar de_DeleteRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRoleCommand\");\nvar de_DeleteRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRolePermissionsBoundaryCommand\");\nvar de_DeleteRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteRolePolicyCommand\");\nvar de_DeleteSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSAMLProviderCommand\");\nvar de_DeleteServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteServerCertificateCommand\");\nvar de_DeleteServiceLinkedRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DeleteServiceLinkedRoleResponse(data.DeleteServiceLinkedRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteServiceLinkedRoleCommand\");\nvar de_DeleteServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteServiceSpecificCredentialCommand\");\nvar de_DeleteSigningCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSigningCertificateCommand\");\nvar de_DeleteSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteSSHPublicKeyCommand\");\nvar de_DeleteUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteUserCommand\");\nvar de_DeleteUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteUserPermissionsBoundaryCommand\");\nvar de_DeleteUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteUserPolicyCommand\");\nvar de_DeleteVirtualMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteVirtualMFADeviceCommand\");\nvar de_DetachGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachGroupPolicyCommand\");\nvar de_DetachRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachRolePolicyCommand\");\nvar de_DetachUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DetachUserPolicyCommand\");\nvar de_DisableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableOrganizationsRootCredentialsManagementResponse(\n data.DisableOrganizationsRootCredentialsManagementResult,\n context\n );\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableOrganizationsRootCredentialsManagementCommand\");\nvar de_DisableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DisableOrganizationsRootSessionsResponse(data.DisableOrganizationsRootSessionsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisableOrganizationsRootSessionsCommand\");\nvar de_EnableMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableMFADeviceCommand\");\nvar de_EnableOrganizationsRootCredentialsManagementCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableOrganizationsRootCredentialsManagementResponse(\n data.EnableOrganizationsRootCredentialsManagementResult,\n context\n );\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableOrganizationsRootCredentialsManagementCommand\");\nvar de_EnableOrganizationsRootSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_EnableOrganizationsRootSessionsResponse(data.EnableOrganizationsRootSessionsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EnableOrganizationsRootSessionsCommand\");\nvar de_GenerateCredentialReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GenerateCredentialReportResponse(data.GenerateCredentialReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateCredentialReportCommand\");\nvar de_GenerateOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GenerateOrganizationsAccessReportResponse(data.GenerateOrganizationsAccessReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateOrganizationsAccessReportCommand\");\nvar de_GenerateServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GenerateServiceLastAccessedDetailsResponse(data.GenerateServiceLastAccessedDetailsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateServiceLastAccessedDetailsCommand\");\nvar de_GetAccessKeyLastUsedCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccessKeyLastUsedResponse(data.GetAccessKeyLastUsedResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccessKeyLastUsedCommand\");\nvar de_GetAccountAuthorizationDetailsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccountAuthorizationDetailsResponse(data.GetAccountAuthorizationDetailsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountAuthorizationDetailsCommand\");\nvar de_GetAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccountPasswordPolicyResponse(data.GetAccountPasswordPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountPasswordPolicyCommand\");\nvar de_GetAccountSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccountSummaryResponse(data.GetAccountSummaryResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccountSummaryCommand\");\nvar de_GetContextKeysForCustomPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetContextKeysForPolicyResponse(data.GetContextKeysForCustomPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetContextKeysForCustomPolicyCommand\");\nvar de_GetContextKeysForPrincipalPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetContextKeysForPolicyResponse(data.GetContextKeysForPrincipalPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetContextKeysForPrincipalPolicyCommand\");\nvar de_GetCredentialReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCredentialReportResponse(data.GetCredentialReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCredentialReportCommand\");\nvar de_GetGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetGroupResponse(data.GetGroupResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetGroupCommand\");\nvar de_GetGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetGroupPolicyResponse(data.GetGroupPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetGroupPolicyCommand\");\nvar de_GetInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetInstanceProfileResponse(data.GetInstanceProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInstanceProfileCommand\");\nvar de_GetLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetLoginProfileResponse(data.GetLoginProfileResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetLoginProfileCommand\");\nvar de_GetMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetMFADeviceResponse(data.GetMFADeviceResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMFADeviceCommand\");\nvar de_GetOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetOpenIDConnectProviderResponse(data.GetOpenIDConnectProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpenIDConnectProviderCommand\");\nvar de_GetOrganizationsAccessReportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetOrganizationsAccessReportResponse(data.GetOrganizationsAccessReportResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOrganizationsAccessReportCommand\");\nvar de_GetPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetPolicyResponse(data.GetPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPolicyCommand\");\nvar de_GetPolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetPolicyVersionResponse(data.GetPolicyVersionResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPolicyVersionCommand\");\nvar de_GetRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRoleResponse(data.GetRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRoleCommand\");\nvar de_GetRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetRolePolicyResponse(data.GetRolePolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRolePolicyCommand\");\nvar de_GetSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSAMLProviderResponse(data.GetSAMLProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSAMLProviderCommand\");\nvar de_GetServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServerCertificateResponse(data.GetServerCertificateResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServerCertificateCommand\");\nvar de_GetServiceLastAccessedDetailsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceLastAccessedDetailsResponse(data.GetServiceLastAccessedDetailsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceLastAccessedDetailsCommand\");\nvar de_GetServiceLastAccessedDetailsWithEntitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceLastAccessedDetailsWithEntitiesResponse(\n data.GetServiceLastAccessedDetailsWithEntitiesResult,\n context\n );\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceLastAccessedDetailsWithEntitiesCommand\");\nvar de_GetServiceLinkedRoleDeletionStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceLinkedRoleDeletionStatusResponse(data.GetServiceLinkedRoleDeletionStatusResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceLinkedRoleDeletionStatusCommand\");\nvar de_GetSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSSHPublicKeyResponse(data.GetSSHPublicKeyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSSHPublicKeyCommand\");\nvar de_GetUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetUserResponse(data.GetUserResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetUserCommand\");\nvar de_GetUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetUserPolicyResponse(data.GetUserPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetUserPolicyCommand\");\nvar de_ListAccessKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAccessKeysResponse(data.ListAccessKeysResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAccessKeysCommand\");\nvar de_ListAccountAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAccountAliasesResponse(data.ListAccountAliasesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAccountAliasesCommand\");\nvar de_ListAttachedGroupPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAttachedGroupPoliciesResponse(data.ListAttachedGroupPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttachedGroupPoliciesCommand\");\nvar de_ListAttachedRolePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAttachedRolePoliciesResponse(data.ListAttachedRolePoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttachedRolePoliciesCommand\");\nvar de_ListAttachedUserPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListAttachedUserPoliciesResponse(data.ListAttachedUserPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAttachedUserPoliciesCommand\");\nvar de_ListEntitiesForPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListEntitiesForPolicyResponse(data.ListEntitiesForPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListEntitiesForPolicyCommand\");\nvar de_ListGroupPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListGroupPoliciesResponse(data.ListGroupPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGroupPoliciesCommand\");\nvar de_ListGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListGroupsResponse(data.ListGroupsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGroupsCommand\");\nvar de_ListGroupsForUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListGroupsForUserResponse(data.ListGroupsForUserResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGroupsForUserCommand\");\nvar de_ListInstanceProfilesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListInstanceProfilesResponse(data.ListInstanceProfilesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInstanceProfilesCommand\");\nvar de_ListInstanceProfilesForRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListInstanceProfilesForRoleResponse(data.ListInstanceProfilesForRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInstanceProfilesForRoleCommand\");\nvar de_ListInstanceProfileTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListInstanceProfileTagsResponse(data.ListInstanceProfileTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInstanceProfileTagsCommand\");\nvar de_ListMFADevicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListMFADevicesResponse(data.ListMFADevicesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListMFADevicesCommand\");\nvar de_ListMFADeviceTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListMFADeviceTagsResponse(data.ListMFADeviceTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListMFADeviceTagsCommand\");\nvar de_ListOpenIDConnectProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListOpenIDConnectProvidersResponse(data.ListOpenIDConnectProvidersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpenIDConnectProvidersCommand\");\nvar de_ListOpenIDConnectProviderTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListOpenIDConnectProviderTagsResponse(data.ListOpenIDConnectProviderTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpenIDConnectProviderTagsCommand\");\nvar de_ListOrganizationsFeaturesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListOrganizationsFeaturesResponse(data.ListOrganizationsFeaturesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOrganizationsFeaturesCommand\");\nvar de_ListPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPoliciesResponse(data.ListPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPoliciesCommand\");\nvar de_ListPoliciesGrantingServiceAccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPoliciesGrantingServiceAccessResponse(data.ListPoliciesGrantingServiceAccessResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPoliciesGrantingServiceAccessCommand\");\nvar de_ListPolicyTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPolicyTagsResponse(data.ListPolicyTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPolicyTagsCommand\");\nvar de_ListPolicyVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListPolicyVersionsResponse(data.ListPolicyVersionsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListPolicyVersionsCommand\");\nvar de_ListRolePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListRolePoliciesResponse(data.ListRolePoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRolePoliciesCommand\");\nvar de_ListRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListRolesResponse(data.ListRolesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRolesCommand\");\nvar de_ListRoleTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListRoleTagsResponse(data.ListRoleTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRoleTagsCommand\");\nvar de_ListSAMLProvidersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSAMLProvidersResponse(data.ListSAMLProvidersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSAMLProvidersCommand\");\nvar de_ListSAMLProviderTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSAMLProviderTagsResponse(data.ListSAMLProviderTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSAMLProviderTagsCommand\");\nvar de_ListServerCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListServerCertificatesResponse(data.ListServerCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServerCertificatesCommand\");\nvar de_ListServerCertificateTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListServerCertificateTagsResponse(data.ListServerCertificateTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServerCertificateTagsCommand\");\nvar de_ListServiceSpecificCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListServiceSpecificCredentialsResponse(data.ListServiceSpecificCredentialsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListServiceSpecificCredentialsCommand\");\nvar de_ListSigningCertificatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSigningCertificatesResponse(data.ListSigningCertificatesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSigningCertificatesCommand\");\nvar de_ListSSHPublicKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListSSHPublicKeysResponse(data.ListSSHPublicKeysResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSSHPublicKeysCommand\");\nvar de_ListUserPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListUserPoliciesResponse(data.ListUserPoliciesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListUserPoliciesCommand\");\nvar de_ListUsersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListUsersResponse(data.ListUsersResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListUsersCommand\");\nvar de_ListUserTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListUserTagsResponse(data.ListUserTagsResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListUserTagsCommand\");\nvar de_ListVirtualMFADevicesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ListVirtualMFADevicesResponse(data.ListVirtualMFADevicesResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListVirtualMFADevicesCommand\");\nvar de_PutGroupPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutGroupPolicyCommand\");\nvar de_PutRolePermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutRolePermissionsBoundaryCommand\");\nvar de_PutRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutRolePolicyCommand\");\nvar de_PutUserPermissionsBoundaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutUserPermissionsBoundaryCommand\");\nvar de_PutUserPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutUserPolicyCommand\");\nvar de_RemoveClientIDFromOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RemoveClientIDFromOpenIDConnectProviderCommand\");\nvar de_RemoveRoleFromInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RemoveRoleFromInstanceProfileCommand\");\nvar de_RemoveUserFromGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RemoveUserFromGroupCommand\");\nvar de_ResetServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_ResetServiceSpecificCredentialResponse(data.ResetServiceSpecificCredentialResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetServiceSpecificCredentialCommand\");\nvar de_ResyncMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_ResyncMFADeviceCommand\");\nvar de_SetDefaultPolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SetDefaultPolicyVersionCommand\");\nvar de_SetSecurityTokenServicePreferencesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_SetSecurityTokenServicePreferencesCommand\");\nvar de_SimulateCustomPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SimulatePolicyResponse(data.SimulateCustomPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SimulateCustomPolicyCommand\");\nvar de_SimulatePrincipalPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_SimulatePolicyResponse(data.SimulatePrincipalPolicyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SimulatePrincipalPolicyCommand\");\nvar de_TagInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagInstanceProfileCommand\");\nvar de_TagMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagMFADeviceCommand\");\nvar de_TagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagOpenIDConnectProviderCommand\");\nvar de_TagPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagPolicyCommand\");\nvar de_TagRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagRoleCommand\");\nvar de_TagSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagSAMLProviderCommand\");\nvar de_TagServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagServerCertificateCommand\");\nvar de_TagUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagUserCommand\");\nvar de_UntagInstanceProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagInstanceProfileCommand\");\nvar de_UntagMFADeviceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagMFADeviceCommand\");\nvar de_UntagOpenIDConnectProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagOpenIDConnectProviderCommand\");\nvar de_UntagPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagPolicyCommand\");\nvar de_UntagRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagRoleCommand\");\nvar de_UntagSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagSAMLProviderCommand\");\nvar de_UntagServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagServerCertificateCommand\");\nvar de_UntagUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagUserCommand\");\nvar de_UpdateAccessKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAccessKeyCommand\");\nvar de_UpdateAccountPasswordPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAccountPasswordPolicyCommand\");\nvar de_UpdateAssumeRolePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAssumeRolePolicyCommand\");\nvar de_UpdateGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateGroupCommand\");\nvar de_UpdateLoginProfileCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateLoginProfileCommand\");\nvar de_UpdateOpenIDConnectProviderThumbprintCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateOpenIDConnectProviderThumbprintCommand\");\nvar de_UpdateRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateRoleResponse(data.UpdateRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateRoleCommand\");\nvar de_UpdateRoleDescriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateRoleDescriptionResponse(data.UpdateRoleDescriptionResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateRoleDescriptionCommand\");\nvar de_UpdateSAMLProviderCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UpdateSAMLProviderResponse(data.UpdateSAMLProviderResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSAMLProviderCommand\");\nvar de_UpdateServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateServerCertificateCommand\");\nvar de_UpdateServiceSpecificCredentialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateServiceSpecificCredentialCommand\");\nvar de_UpdateSigningCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateSigningCertificateCommand\");\nvar de_UpdateSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateSSHPublicKeyCommand\");\nvar de_UpdateUserCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateUserCommand\");\nvar de_UploadServerCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UploadServerCertificateResponse(data.UploadServerCertificateResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadServerCertificateCommand\");\nvar de_UploadSigningCertificateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UploadSigningCertificateResponse(data.UploadSigningCertificateResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadSigningCertificateCommand\");\nvar de_UploadSSHPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_UploadSSHPublicKeyResponse(data.UploadSSHPublicKeyResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UploadSSHPublicKeyCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidInput\":\n case \"com.amazonaws.iam#InvalidInputException\":\n throw await de_InvalidInputExceptionRes(parsedOutput, context);\n case \"LimitExceeded\":\n case \"com.amazonaws.iam#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NoSuchEntity\":\n case \"com.amazonaws.iam#NoSuchEntityException\":\n throw await de_NoSuchEntityExceptionRes(parsedOutput, context);\n case \"ServiceFailure\":\n case \"com.amazonaws.iam#ServiceFailureException\":\n throw await de_ServiceFailureExceptionRes(parsedOutput, context);\n case \"EntityAlreadyExists\":\n case \"com.amazonaws.iam#EntityAlreadyExistsException\":\n throw await de_EntityAlreadyExistsExceptionRes(parsedOutput, context);\n case \"UnmodifiableEntity\":\n case \"com.amazonaws.iam#UnmodifiableEntityException\":\n throw await de_UnmodifiableEntityExceptionRes(parsedOutput, context);\n case \"PolicyNotAttachable\":\n case \"com.amazonaws.iam#PolicyNotAttachableException\":\n throw await de_PolicyNotAttachableExceptionRes(parsedOutput, context);\n case \"EntityTemporarilyUnmodifiable\":\n case \"com.amazonaws.iam#EntityTemporarilyUnmodifiableException\":\n throw await de_EntityTemporarilyUnmodifiableExceptionRes(parsedOutput, context);\n case \"InvalidUserType\":\n case \"com.amazonaws.iam#InvalidUserTypeException\":\n throw await de_InvalidUserTypeExceptionRes(parsedOutput, context);\n case \"PasswordPolicyViolation\":\n case \"com.amazonaws.iam#PasswordPolicyViolationException\":\n throw await de_PasswordPolicyViolationExceptionRes(parsedOutput, context);\n case \"ConcurrentModification\":\n case \"com.amazonaws.iam#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"OpenIdIdpCommunicationError\":\n case \"com.amazonaws.iam#OpenIdIdpCommunicationErrorException\":\n throw await de_OpenIdIdpCommunicationErrorExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.iam#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"NotSupportedService\":\n case \"com.amazonaws.iam#ServiceNotSupportedException\":\n throw await de_ServiceNotSupportedExceptionRes(parsedOutput, context);\n case \"DeleteConflict\":\n case \"com.amazonaws.iam#DeleteConflictException\":\n throw await de_DeleteConflictExceptionRes(parsedOutput, context);\n case \"AccountNotManagementOrDelegatedAdministratorException\":\n case \"com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException\":\n throw await de_AccountNotManagementOrDelegatedAdministratorExceptionRes(parsedOutput, context);\n case \"OrganizationNotFoundException\":\n case \"com.amazonaws.iam#OrganizationNotFoundException\":\n throw await de_OrganizationNotFoundExceptionRes(parsedOutput, context);\n case \"OrganizationNotInAllFeaturesModeException\":\n case \"com.amazonaws.iam#OrganizationNotInAllFeaturesModeException\":\n throw await de_OrganizationNotInAllFeaturesModeExceptionRes(parsedOutput, context);\n case \"ServiceAccessNotEnabledException\":\n case \"com.amazonaws.iam#ServiceAccessNotEnabledException\":\n throw await de_ServiceAccessNotEnabledExceptionRes(parsedOutput, context);\n case \"InvalidAuthenticationCode\":\n case \"com.amazonaws.iam#InvalidAuthenticationCodeException\":\n throw await de_InvalidAuthenticationCodeExceptionRes(parsedOutput, context);\n case \"CallerIsNotManagementAccountException\":\n case \"com.amazonaws.iam#CallerIsNotManagementAccountException\":\n throw await de_CallerIsNotManagementAccountExceptionRes(parsedOutput, context);\n case \"ReportGenerationLimitExceeded\":\n case \"com.amazonaws.iam#ReportGenerationLimitExceededException\":\n throw await de_ReportGenerationLimitExceededExceptionRes(parsedOutput, context);\n case \"ReportExpired\":\n case \"com.amazonaws.iam#CredentialReportExpiredException\":\n throw await de_CredentialReportExpiredExceptionRes(parsedOutput, context);\n case \"ReportInProgress\":\n case \"com.amazonaws.iam#CredentialReportNotReadyException\":\n throw await de_CredentialReportNotReadyExceptionRes(parsedOutput, context);\n case \"ReportNotPresent\":\n case \"com.amazonaws.iam#CredentialReportNotPresentException\":\n throw await de_CredentialReportNotPresentExceptionRes(parsedOutput, context);\n case \"UnrecognizedPublicKeyEncoding\":\n case \"com.amazonaws.iam#UnrecognizedPublicKeyEncodingException\":\n throw await de_UnrecognizedPublicKeyEncodingExceptionRes(parsedOutput, context);\n case \"PolicyEvaluation\":\n case \"com.amazonaws.iam#PolicyEvaluationException\":\n throw await de_PolicyEvaluationExceptionRes(parsedOutput, context);\n case \"KeyPairMismatch\":\n case \"com.amazonaws.iam#KeyPairMismatchException\":\n throw await de_KeyPairMismatchExceptionRes(parsedOutput, context);\n case \"MalformedCertificate\":\n case \"com.amazonaws.iam#MalformedCertificateException\":\n throw await de_MalformedCertificateExceptionRes(parsedOutput, context);\n case \"DuplicateCertificate\":\n case \"com.amazonaws.iam#DuplicateCertificateException\":\n throw await de_DuplicateCertificateExceptionRes(parsedOutput, context);\n case \"InvalidCertificate\":\n case \"com.amazonaws.iam#InvalidCertificateException\":\n throw await de_InvalidCertificateExceptionRes(parsedOutput, context);\n case \"DuplicateSSHPublicKey\":\n case \"com.amazonaws.iam#DuplicateSSHPublicKeyException\":\n throw await de_DuplicateSSHPublicKeyExceptionRes(parsedOutput, context);\n case \"InvalidPublicKey\":\n case \"com.amazonaws.iam#InvalidPublicKeyException\":\n throw await de_InvalidPublicKeyExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccountNotManagementOrDelegatedAdministratorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_AccountNotManagementOrDelegatedAdministratorException(body.Error, context);\n const exception = new AccountNotManagementOrDelegatedAdministratorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccountNotManagementOrDelegatedAdministratorExceptionRes\");\nvar de_CallerIsNotManagementAccountExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CallerIsNotManagementAccountException(body.Error, context);\n const exception = new CallerIsNotManagementAccountException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CallerIsNotManagementAccountExceptionRes\");\nvar de_ConcurrentModificationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ConcurrentModificationException(body.Error, context);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConcurrentModificationExceptionRes\");\nvar de_CredentialReportExpiredExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CredentialReportExpiredException(body.Error, context);\n const exception = new CredentialReportExpiredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CredentialReportExpiredExceptionRes\");\nvar de_CredentialReportNotPresentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CredentialReportNotPresentException(body.Error, context);\n const exception = new CredentialReportNotPresentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CredentialReportNotPresentExceptionRes\");\nvar de_CredentialReportNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_CredentialReportNotReadyException(body.Error, context);\n const exception = new CredentialReportNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CredentialReportNotReadyExceptionRes\");\nvar de_DeleteConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DeleteConflictException(body.Error, context);\n const exception = new DeleteConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DeleteConflictExceptionRes\");\nvar de_DuplicateCertificateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateCertificateException(body.Error, context);\n const exception = new DuplicateCertificateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateCertificateExceptionRes\");\nvar de_DuplicateSSHPublicKeyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_DuplicateSSHPublicKeyException(body.Error, context);\n const exception = new DuplicateSSHPublicKeyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateSSHPublicKeyExceptionRes\");\nvar de_EntityAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_EntityAlreadyExistsException(body.Error, context);\n const exception = new EntityAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EntityAlreadyExistsExceptionRes\");\nvar de_EntityTemporarilyUnmodifiableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_EntityTemporarilyUnmodifiableException(body.Error, context);\n const exception = new EntityTemporarilyUnmodifiableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EntityTemporarilyUnmodifiableExceptionRes\");\nvar de_InvalidAuthenticationCodeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidAuthenticationCodeException(body.Error, context);\n const exception = new InvalidAuthenticationCodeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAuthenticationCodeExceptionRes\");\nvar de_InvalidCertificateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidCertificateException(body.Error, context);\n const exception = new InvalidCertificateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCertificateExceptionRes\");\nvar de_InvalidInputExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidInputException(body.Error, context);\n const exception = new InvalidInputException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInputExceptionRes\");\nvar de_InvalidPublicKeyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidPublicKeyException(body.Error, context);\n const exception = new InvalidPublicKeyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPublicKeyExceptionRes\");\nvar de_InvalidUserTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidUserTypeException(body.Error, context);\n const exception = new InvalidUserTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidUserTypeExceptionRes\");\nvar de_KeyPairMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_KeyPairMismatchException(body.Error, context);\n const exception = new KeyPairMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KeyPairMismatchExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_LimitExceededException(body.Error, context);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedCertificateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedCertificateException(body.Error, context);\n const exception = new MalformedCertificateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedCertificateExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_NoSuchEntityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_NoSuchEntityException(body.Error, context);\n const exception = new NoSuchEntityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NoSuchEntityExceptionRes\");\nvar de_OpenIdIdpCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OpenIdIdpCommunicationErrorException(body.Error, context);\n const exception = new OpenIdIdpCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpenIdIdpCommunicationErrorExceptionRes\");\nvar de_OrganizationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OrganizationNotFoundException(body.Error, context);\n const exception = new OrganizationNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OrganizationNotFoundExceptionRes\");\nvar de_OrganizationNotInAllFeaturesModeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_OrganizationNotInAllFeaturesModeException(body.Error, context);\n const exception = new OrganizationNotInAllFeaturesModeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OrganizationNotInAllFeaturesModeExceptionRes\");\nvar de_PasswordPolicyViolationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PasswordPolicyViolationException(body.Error, context);\n const exception = new PasswordPolicyViolationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PasswordPolicyViolationExceptionRes\");\nvar de_PolicyEvaluationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PolicyEvaluationException(body.Error, context);\n const exception = new PolicyEvaluationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PolicyEvaluationExceptionRes\");\nvar de_PolicyNotAttachableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PolicyNotAttachableException(body.Error, context);\n const exception = new PolicyNotAttachableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PolicyNotAttachableExceptionRes\");\nvar de_ReportGenerationLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ReportGenerationLimitExceededException(body.Error, context);\n const exception = new ReportGenerationLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ReportGenerationLimitExceededExceptionRes\");\nvar de_ServiceAccessNotEnabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ServiceAccessNotEnabledException(body.Error, context);\n const exception = new ServiceAccessNotEnabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceAccessNotEnabledExceptionRes\");\nvar de_ServiceFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ServiceFailureException(body.Error, context);\n const exception = new ServiceFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceFailureExceptionRes\");\nvar de_ServiceNotSupportedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ServiceNotSupportedException(body.Error, context);\n const exception = new ServiceNotSupportedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceNotSupportedExceptionRes\");\nvar de_UnmodifiableEntityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_UnmodifiableEntityException(body.Error, context);\n const exception = new UnmodifiableEntityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnmodifiableEntityExceptionRes\");\nvar de_UnrecognizedPublicKeyEncodingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_UnrecognizedPublicKeyEncodingException(body.Error, context);\n const exception = new UnrecognizedPublicKeyEncodingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnrecognizedPublicKeyEncodingExceptionRes\");\nvar se_ActionNameListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ActionNameListType\");\nvar se_AddClientIDToOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_CID] != null) {\n entries[_CID] = input[_CID];\n }\n return entries;\n}, \"se_AddClientIDToOpenIDConnectProviderRequest\");\nvar se_AddRoleToInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_AddRoleToInstanceProfileRequest\");\nvar se_AddUserToGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_AddUserToGroupRequest\");\nvar se_AttachGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_AttachGroupPolicyRequest\");\nvar se_AttachRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_AttachRolePolicyRequest\");\nvar se_AttachUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_AttachUserPolicyRequest\");\nvar se_ChangePasswordRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OP] != null) {\n entries[_OP] = input[_OP];\n }\n if (input[_NP] != null) {\n entries[_NP] = input[_NP];\n }\n return entries;\n}, \"se_ChangePasswordRequest\");\nvar se_clientIDListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_clientIDListType\");\nvar se_ContextEntry = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_CKN] != null) {\n entries[_CKN] = input[_CKN];\n }\n if (input[_CKV] != null) {\n const memberEntries = se_ContextKeyValueListType(input[_CKV], context);\n if (input[_CKV]?.length === 0) {\n entries.ContextKeyValues = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ContextKeyValues.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_CKT] != null) {\n entries[_CKT] = input[_CKT];\n }\n return entries;\n}, \"se_ContextEntry\");\nvar se_ContextEntryListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ContextEntry(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ContextEntryListType\");\nvar se_ContextKeyValueListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ContextKeyValueListType\");\nvar se_CreateAccessKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_CreateAccessKeyRequest\");\nvar se_CreateAccountAliasRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AA] != null) {\n entries[_AA] = input[_AA];\n }\n return entries;\n}, \"se_CreateAccountAliasRequest\");\nvar se_CreateGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_CreateGroupRequest\");\nvar se_CreateInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateInstanceProfileRequest\");\nvar se_CreateLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_Pa] != null) {\n entries[_Pa] = input[_Pa];\n }\n if (input[_PRR] != null) {\n entries[_PRR] = input[_PRR];\n }\n return entries;\n}, \"se_CreateLoginProfileRequest\");\nvar se_CreateOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_U] != null) {\n entries[_U] = input[_U];\n }\n if (input[_CIDL] != null) {\n const memberEntries = se_clientIDListType(input[_CIDL], context);\n if (input[_CIDL]?.length === 0) {\n entries.ClientIDList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ClientIDList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TL] != null) {\n const memberEntries = se_thumbprintListType(input[_TL], context);\n if (input[_TL]?.length === 0) {\n entries.ThumbprintList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ThumbprintList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateOpenIDConnectProviderRequest\");\nvar se_CreatePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreatePolicyRequest\");\nvar se_CreatePolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n if (input[_SAD] != null) {\n entries[_SAD] = input[_SAD];\n }\n return entries;\n}, \"se_CreatePolicyVersionRequest\");\nvar se_CreateRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_ARPD] != null) {\n entries[_ARPD] = input[_ARPD];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_MSD] != null) {\n entries[_MSD] = input[_MSD];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateRoleRequest\");\nvar se_CreateSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLMD] != null) {\n entries[_SAMLMD] = input[_SAMLMD];\n }\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AEM] != null) {\n entries[_AEM] = input[_AEM];\n }\n if (input[_APK] != null) {\n entries[_APK] = input[_APK];\n }\n return entries;\n}, \"se_CreateSAMLProviderRequest\");\nvar se_CreateServiceLinkedRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AWSSN] != null) {\n entries[_AWSSN] = input[_AWSSN];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_CS] != null) {\n entries[_CS] = input[_CS];\n }\n return entries;\n}, \"se_CreateServiceLinkedRoleRequest\");\nvar se_CreateServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n return entries;\n}, \"se_CreateServiceSpecificCredentialRequest\");\nvar se_CreateUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateUserRequest\");\nvar se_CreateVirtualMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_VMFADN] != null) {\n entries[_VMFADN] = input[_VMFADN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_CreateVirtualMFADeviceRequest\");\nvar se_DeactivateMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n return entries;\n}, \"se_DeactivateMFADeviceRequest\");\nvar se_DeleteAccessKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n return entries;\n}, \"se_DeleteAccessKeyRequest\");\nvar se_DeleteAccountAliasRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AA] != null) {\n entries[_AA] = input[_AA];\n }\n return entries;\n}, \"se_DeleteAccountAliasRequest\");\nvar se_DeleteGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_DeleteGroupPolicyRequest\");\nvar se_DeleteGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n return entries;\n}, \"se_DeleteGroupRequest\");\nvar se_DeleteInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n return entries;\n}, \"se_DeleteInstanceProfileRequest\");\nvar se_DeleteLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_DeleteLoginProfileRequest\");\nvar se_DeleteOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n return entries;\n}, \"se_DeleteOpenIDConnectProviderRequest\");\nvar se_DeletePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DeletePolicyRequest\");\nvar se_DeletePolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_DeletePolicyVersionRequest\");\nvar se_DeleteRolePermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_DeleteRolePermissionsBoundaryRequest\");\nvar se_DeleteRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_DeleteRolePolicyRequest\");\nvar se_DeleteRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_DeleteRoleRequest\");\nvar se_DeleteSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n return entries;\n}, \"se_DeleteSAMLProviderRequest\");\nvar se_DeleteServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n return entries;\n}, \"se_DeleteServerCertificateRequest\");\nvar se_DeleteServiceLinkedRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_DeleteServiceLinkedRoleRequest\");\nvar se_DeleteServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSCI] != null) {\n entries[_SSCI] = input[_SSCI];\n }\n return entries;\n}, \"se_DeleteServiceSpecificCredentialRequest\");\nvar se_DeleteSigningCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_CI] != null) {\n entries[_CI] = input[_CI];\n }\n return entries;\n}, \"se_DeleteSigningCertificateRequest\");\nvar se_DeleteSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKI] != null) {\n entries[_SSHPKI] = input[_SSHPKI];\n }\n return entries;\n}, \"se_DeleteSSHPublicKeyRequest\");\nvar se_DeleteUserPermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_DeleteUserPermissionsBoundaryRequest\");\nvar se_DeleteUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_DeleteUserPolicyRequest\");\nvar se_DeleteUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_DeleteUserRequest\");\nvar se_DeleteVirtualMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n return entries;\n}, \"se_DeleteVirtualMFADeviceRequest\");\nvar se_DetachGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DetachGroupPolicyRequest\");\nvar se_DetachRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DetachRolePolicyRequest\");\nvar se_DetachUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_DetachUserPolicyRequest\");\nvar se_DisableOrganizationsRootCredentialsManagementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_DisableOrganizationsRootCredentialsManagementRequest\");\nvar se_DisableOrganizationsRootSessionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_DisableOrganizationsRootSessionsRequest\");\nvar se_EnableMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_AC] != null) {\n entries[_AC] = input[_AC];\n }\n if (input[_ACu] != null) {\n entries[_ACu] = input[_ACu];\n }\n return entries;\n}, \"se_EnableMFADeviceRequest\");\nvar se_EnableOrganizationsRootCredentialsManagementRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_EnableOrganizationsRootCredentialsManagementRequest\");\nvar se_EnableOrganizationsRootSessionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_EnableOrganizationsRootSessionsRequest\");\nvar se_entityListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_entityListType\");\nvar se_GenerateOrganizationsAccessReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EP] != null) {\n entries[_EP] = input[_EP];\n }\n if (input[_OPI] != null) {\n entries[_OPI] = input[_OPI];\n }\n return entries;\n}, \"se_GenerateOrganizationsAccessReportRequest\");\nvar se_GenerateServiceLastAccessedDetailsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_G] != null) {\n entries[_G] = input[_G];\n }\n return entries;\n}, \"se_GenerateServiceLastAccessedDetailsRequest\");\nvar se_GetAccessKeyLastUsedRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n return entries;\n}, \"se_GetAccessKeyLastUsedRequest\");\nvar se_GetAccountAuthorizationDetailsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_F] != null) {\n const memberEntries = se_entityListType(input[_F], context);\n if (input[_F]?.length === 0) {\n entries.Filter = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Filter.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_GetAccountAuthorizationDetailsRequest\");\nvar se_GetContextKeysForCustomPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetContextKeysForCustomPolicyRequest\");\nvar se_GetContextKeysForPrincipalPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSA] != null) {\n entries[_PSA] = input[_PSA];\n }\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetContextKeysForPrincipalPolicyRequest\");\nvar se_GetGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_GetGroupPolicyRequest\");\nvar se_GetGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_GetGroupRequest\");\nvar se_GetInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n return entries;\n}, \"se_GetInstanceProfileRequest\");\nvar se_GetLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_GetLoginProfileRequest\");\nvar se_GetMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_GetMFADeviceRequest\");\nvar se_GetOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n return entries;\n}, \"se_GetOpenIDConnectProviderRequest\");\nvar se_GetOrganizationsAccessReportRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_JI] != null) {\n entries[_JI] = input[_JI];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_SK] != null) {\n entries[_SK] = input[_SK];\n }\n return entries;\n}, \"se_GetOrganizationsAccessReportRequest\");\nvar se_GetPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n return entries;\n}, \"se_GetPolicyRequest\");\nvar se_GetPolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_GetPolicyVersionRequest\");\nvar se_GetRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_GetRolePolicyRequest\");\nvar se_GetRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_GetRoleRequest\");\nvar se_GetSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n return entries;\n}, \"se_GetSAMLProviderRequest\");\nvar se_GetServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n return entries;\n}, \"se_GetServerCertificateRequest\");\nvar se_GetServiceLastAccessedDetailsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_JI] != null) {\n entries[_JI] = input[_JI];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_GetServiceLastAccessedDetailsRequest\");\nvar se_GetServiceLastAccessedDetailsWithEntitiesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_JI] != null) {\n entries[_JI] = input[_JI];\n }\n if (input[_SNer] != null) {\n entries[_SNer] = input[_SNer];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_GetServiceLastAccessedDetailsWithEntitiesRequest\");\nvar se_GetServiceLinkedRoleDeletionStatusRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DTI] != null) {\n entries[_DTI] = input[_DTI];\n }\n return entries;\n}, \"se_GetServiceLinkedRoleDeletionStatusRequest\");\nvar se_GetSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKI] != null) {\n entries[_SSHPKI] = input[_SSHPKI];\n }\n if (input[_E] != null) {\n entries[_E] = input[_E];\n }\n return entries;\n}, \"se_GetSSHPublicKeyRequest\");\nvar se_GetUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n return entries;\n}, \"se_GetUserPolicyRequest\");\nvar se_GetUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_GetUserRequest\");\nvar se_ListAccessKeysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAccessKeysRequest\");\nvar se_ListAccountAliasesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAccountAliasesRequest\");\nvar se_ListAttachedGroupPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAttachedGroupPoliciesRequest\");\nvar se_ListAttachedRolePoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAttachedRolePoliciesRequest\");\nvar se_ListAttachedUserPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListAttachedUserPoliciesRequest\");\nvar se_ListEntitiesForPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_EF] != null) {\n entries[_EF] = input[_EF];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_PUF] != null) {\n entries[_PUF] = input[_PUF];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListEntitiesForPolicyRequest\");\nvar se_ListGroupPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListGroupPoliciesRequest\");\nvar se_ListGroupsForUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListGroupsForUserRequest\");\nvar se_ListGroupsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListGroupsRequest\");\nvar se_ListInstanceProfilesForRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListInstanceProfilesForRoleRequest\");\nvar se_ListInstanceProfilesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListInstanceProfilesRequest\");\nvar se_ListInstanceProfileTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListInstanceProfileTagsRequest\");\nvar se_ListMFADevicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListMFADevicesRequest\");\nvar se_ListMFADeviceTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListMFADeviceTagsRequest\");\nvar se_ListOpenIDConnectProvidersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_ListOpenIDConnectProvidersRequest\");\nvar se_ListOpenIDConnectProviderTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListOpenIDConnectProviderTagsRequest\");\nvar se_ListOrganizationsFeaturesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_ListOrganizationsFeaturesRequest\");\nvar se_ListPoliciesGrantingServiceAccessRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_Ar] != null) {\n entries[_Ar] = input[_Ar];\n }\n if (input[_SNerv] != null) {\n const memberEntries = se_serviceNamespaceListType(input[_SNerv], context);\n if (input[_SNerv]?.length === 0) {\n entries.ServiceNamespaces = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ServiceNamespaces.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_ListPoliciesGrantingServiceAccessRequest\");\nvar se_ListPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_S] != null) {\n entries[_S] = input[_S];\n }\n if (input[_OA] != null) {\n entries[_OA] = input[_OA];\n }\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_PUF] != null) {\n entries[_PUF] = input[_PUF];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListPoliciesRequest\");\nvar se_ListPolicyTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListPolicyTagsRequest\");\nvar se_ListPolicyVersionsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListPolicyVersionsRequest\");\nvar se_ListRolePoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListRolePoliciesRequest\");\nvar se_ListRolesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListRolesRequest\");\nvar se_ListRoleTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListRoleTagsRequest\");\nvar se_ListSAMLProvidersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_ListSAMLProvidersRequest\");\nvar se_ListSAMLProviderTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListSAMLProviderTagsRequest\");\nvar se_ListServerCertificatesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListServerCertificatesRequest\");\nvar se_ListServerCertificateTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListServerCertificateTagsRequest\");\nvar se_ListServiceSpecificCredentialsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n return entries;\n}, \"se_ListServiceSpecificCredentialsRequest\");\nvar se_ListSigningCertificatesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListSigningCertificatesRequest\");\nvar se_ListSSHPublicKeysRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListSSHPublicKeysRequest\");\nvar se_ListUserPoliciesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListUserPoliciesRequest\");\nvar se_ListUsersRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PP] != null) {\n entries[_PP] = input[_PP];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListUsersRequest\");\nvar se_ListUserTagsRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListUserTagsRequest\");\nvar se_ListVirtualMFADevicesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AS] != null) {\n entries[_AS] = input[_AS];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n return entries;\n}, \"se_ListVirtualMFADevicesRequest\");\nvar se_PutGroupPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_PutGroupPolicyRequest\");\nvar se_PutRolePermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n return entries;\n}, \"se_PutRolePermissionsBoundaryRequest\");\nvar se_PutRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_PutRolePolicyRequest\");\nvar se_PutUserPermissionsBoundaryRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PB] != null) {\n entries[_PB] = input[_PB];\n }\n return entries;\n}, \"se_PutUserPermissionsBoundaryRequest\");\nvar se_PutUserPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_PN] != null) {\n entries[_PN] = input[_PN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_PutUserPolicyRequest\");\nvar se_RemoveClientIDFromOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_CID] != null) {\n entries[_CID] = input[_CID];\n }\n return entries;\n}, \"se_RemoveClientIDFromOpenIDConnectProviderRequest\");\nvar se_RemoveRoleFromInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n return entries;\n}, \"se_RemoveRoleFromInstanceProfileRequest\");\nvar se_RemoveUserFromGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n return entries;\n}, \"se_RemoveUserFromGroupRequest\");\nvar se_ResetServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSCI] != null) {\n entries[_SSCI] = input[_SSCI];\n }\n return entries;\n}, \"se_ResetServiceSpecificCredentialRequest\");\nvar se_ResourceNameListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_ResourceNameListType\");\nvar se_ResyncMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_AC] != null) {\n entries[_AC] = input[_AC];\n }\n if (input[_ACu] != null) {\n entries[_ACu] = input[_ACu];\n }\n return entries;\n}, \"se_ResyncMFADeviceRequest\");\nvar se_serviceNamespaceListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_serviceNamespaceListType\");\nvar se_SetDefaultPolicyVersionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_VI] != null) {\n entries[_VI] = input[_VI];\n }\n return entries;\n}, \"se_SetDefaultPolicyVersionRequest\");\nvar se_SetSecurityTokenServicePreferencesRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GETV] != null) {\n entries[_GETV] = input[_GETV];\n }\n return entries;\n}, \"se_SetSecurityTokenServicePreferencesRequest\");\nvar se_SimulateCustomPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PBPIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PBPIL], context);\n if (input[_PBPIL]?.length === 0) {\n entries.PermissionsBoundaryPolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PermissionsBoundaryPolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AN] != null) {\n const memberEntries = se_ActionNameListType(input[_AN], context);\n if (input[_AN]?.length === 0) {\n entries.ActionNames = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ActionNames.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RA] != null) {\n const memberEntries = se_ResourceNameListType(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RP] != null) {\n entries[_RP] = input[_RP];\n }\n if (input[_RO] != null) {\n entries[_RO] = input[_RO];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_CE] != null) {\n const memberEntries = se_ContextEntryListType(input[_CE], context);\n if (input[_CE]?.length === 0) {\n entries.ContextEntries = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ContextEntries.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RHO] != null) {\n entries[_RHO] = input[_RHO];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_SimulateCustomPolicyRequest\");\nvar se_SimulatePrincipalPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PSA] != null) {\n entries[_PSA] = input[_PSA];\n }\n if (input[_PIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PIL], context);\n if (input[_PIL]?.length === 0) {\n entries.PolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_PBPIL] != null) {\n const memberEntries = se_SimulationPolicyListType(input[_PBPIL], context);\n if (input[_PBPIL]?.length === 0) {\n entries.PermissionsBoundaryPolicyInputList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PermissionsBoundaryPolicyInputList.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_AN] != null) {\n const memberEntries = se_ActionNameListType(input[_AN], context);\n if (input[_AN]?.length === 0) {\n entries.ActionNames = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ActionNames.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RA] != null) {\n const memberEntries = se_ResourceNameListType(input[_RA], context);\n if (input[_RA]?.length === 0) {\n entries.ResourceArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ResourceArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RP] != null) {\n entries[_RP] = input[_RP];\n }\n if (input[_RO] != null) {\n entries[_RO] = input[_RO];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n if (input[_CE] != null) {\n const memberEntries = se_ContextEntryListType(input[_CE], context);\n if (input[_CE]?.length === 0) {\n entries.ContextEntries = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ContextEntries.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_RHO] != null) {\n entries[_RHO] = input[_RHO];\n }\n if (input[_MI] != null) {\n entries[_MI] = input[_MI];\n }\n if (input[_M] != null) {\n entries[_M] = input[_M];\n }\n return entries;\n}, \"se_SimulatePrincipalPolicyRequest\");\nvar se_SimulationPolicyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_SimulationPolicyListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_TagInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagInstanceProfileRequest\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar se_TagMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagMFADeviceRequest\");\nvar se_TagOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagOpenIDConnectProviderRequest\");\nvar se_TagPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagPolicyRequest\");\nvar se_TagRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagRoleRequest\");\nvar se_TagSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagSAMLProviderRequest\");\nvar se_TagServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagServerCertificateRequest\");\nvar se_TagUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_TagUserRequest\");\nvar se_thumbprintListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_thumbprintListType\");\nvar se_UntagInstanceProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_IPN] != null) {\n entries[_IPN] = input[_IPN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagInstanceProfileRequest\");\nvar se_UntagMFADeviceRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SNe] != null) {\n entries[_SNe] = input[_SNe];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagMFADeviceRequest\");\nvar se_UntagOpenIDConnectProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagOpenIDConnectProviderRequest\");\nvar se_UntagPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PA] != null) {\n entries[_PA] = input[_PA];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagPolicyRequest\");\nvar se_UntagRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagRoleRequest\");\nvar se_UntagSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagSAMLProviderRequest\");\nvar se_UntagServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagServerCertificateRequest\");\nvar se_UntagUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_TK] != null) {\n const memberEntries = se_tagKeyListType(input[_TK], context);\n if (input[_TK]?.length === 0) {\n entries.TagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TagKeys.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UntagUserRequest\");\nvar se_UpdateAccessKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateAccessKeyRequest\");\nvar se_UpdateAccountPasswordPolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_MPL] != null) {\n entries[_MPL] = input[_MPL];\n }\n if (input[_RS] != null) {\n entries[_RS] = input[_RS];\n }\n if (input[_RNe] != null) {\n entries[_RNe] = input[_RNe];\n }\n if (input[_RUC] != null) {\n entries[_RUC] = input[_RUC];\n }\n if (input[_RLC] != null) {\n entries[_RLC] = input[_RLC];\n }\n if (input[_AUTCP] != null) {\n entries[_AUTCP] = input[_AUTCP];\n }\n if (input[_MPA] != null) {\n entries[_MPA] = input[_MPA];\n }\n if (input[_PRPa] != null) {\n entries[_PRPa] = input[_PRPa];\n }\n if (input[_HE] != null) {\n entries[_HE] = input[_HE];\n }\n return entries;\n}, \"se_UpdateAccountPasswordPolicyRequest\");\nvar se_UpdateAssumeRolePolicyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_PD] != null) {\n entries[_PD] = input[_PD];\n }\n return entries;\n}, \"se_UpdateAssumeRolePolicyRequest\");\nvar se_UpdateGroupRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_GN] != null) {\n entries[_GN] = input[_GN];\n }\n if (input[_NPe] != null) {\n entries[_NPe] = input[_NPe];\n }\n if (input[_NGN] != null) {\n entries[_NGN] = input[_NGN];\n }\n return entries;\n}, \"se_UpdateGroupRequest\");\nvar se_UpdateLoginProfileRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_Pa] != null) {\n entries[_Pa] = input[_Pa];\n }\n if (input[_PRR] != null) {\n entries[_PRR] = input[_PRR];\n }\n return entries;\n}, \"se_UpdateLoginProfileRequest\");\nvar se_UpdateOpenIDConnectProviderThumbprintRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_OIDCPA] != null) {\n entries[_OIDCPA] = input[_OIDCPA];\n }\n if (input[_TL] != null) {\n const memberEntries = se_thumbprintListType(input[_TL], context);\n if (input[_TL]?.length === 0) {\n entries.ThumbprintList = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ThumbprintList.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UpdateOpenIDConnectProviderThumbprintRequest\");\nvar se_UpdateRoleDescriptionRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n return entries;\n}, \"se_UpdateRoleDescriptionRequest\");\nvar se_UpdateRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RN] != null) {\n entries[_RN] = input[_RN];\n }\n if (input[_D] != null) {\n entries[_D] = input[_D];\n }\n if (input[_MSD] != null) {\n entries[_MSD] = input[_MSD];\n }\n return entries;\n}, \"se_UpdateRoleRequest\");\nvar se_UpdateSAMLProviderRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SAMLMD] != null) {\n entries[_SAMLMD] = input[_SAMLMD];\n }\n if (input[_SAMLPA] != null) {\n entries[_SAMLPA] = input[_SAMLPA];\n }\n if (input[_AEM] != null) {\n entries[_AEM] = input[_AEM];\n }\n if (input[_APK] != null) {\n entries[_APK] = input[_APK];\n }\n if (input[_RPK] != null) {\n entries[_RPK] = input[_RPK];\n }\n return entries;\n}, \"se_UpdateSAMLProviderRequest\");\nvar se_UpdateServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_NPe] != null) {\n entries[_NPe] = input[_NPe];\n }\n if (input[_NSCN] != null) {\n entries[_NSCN] = input[_NSCN];\n }\n return entries;\n}, \"se_UpdateServerCertificateRequest\");\nvar se_UpdateServiceSpecificCredentialRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSCI] != null) {\n entries[_SSCI] = input[_SSCI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateServiceSpecificCredentialRequest\");\nvar se_UpdateSigningCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_CI] != null) {\n entries[_CI] = input[_CI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateSigningCertificateRequest\");\nvar se_UpdateSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKI] != null) {\n entries[_SSHPKI] = input[_SSHPKI];\n }\n if (input[_St] != null) {\n entries[_St] = input[_St];\n }\n return entries;\n}, \"se_UpdateSSHPublicKeyRequest\");\nvar se_UpdateUserRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_NPe] != null) {\n entries[_NPe] = input[_NPe];\n }\n if (input[_NUN] != null) {\n entries[_NUN] = input[_NUN];\n }\n return entries;\n}, \"se_UpdateUserRequest\");\nvar se_UploadServerCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_SCN] != null) {\n entries[_SCN] = input[_SCN];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n if (input[_PK] != null) {\n entries[_PK] = input[_PK];\n }\n if (input[_CC] != null) {\n entries[_CC] = input[_CC];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_UploadServerCertificateRequest\");\nvar se_UploadSigningCertificateRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_CB] != null) {\n entries[_CB] = input[_CB];\n }\n return entries;\n}, \"se_UploadSigningCertificateRequest\");\nvar se_UploadSSHPublicKeyRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_UN] != null) {\n entries[_UN] = input[_UN];\n }\n if (input[_SSHPKB] != null) {\n entries[_SSHPKB] = input[_SSHPKB];\n }\n return entries;\n}, \"se_UploadSSHPublicKeyRequest\");\nvar de_AccessDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_SNer] != null) {\n contents[_SNer] = (0, import_smithy_client.expectString)(output[_SNer]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output[_EP] != null) {\n contents[_EP] = (0, import_smithy_client.expectString)(output[_EP]);\n }\n if (output[_LAT] != null) {\n contents[_LAT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LAT]));\n }\n if (output[_TAE] != null) {\n contents[_TAE] = (0, import_smithy_client.strictParseInt32)(output[_TAE]);\n }\n return contents;\n}, \"de_AccessDetail\");\nvar de_AccessDetails = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessDetail(entry, context);\n });\n}, \"de_AccessDetails\");\nvar de_AccessKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_AccessKey\");\nvar de_AccessKeyLastUsed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LUD] != null) {\n contents[_LUD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUD]));\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_AccessKeyLastUsed\");\nvar de_AccessKeyMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_AccessKeyMetadata\");\nvar de_accessKeyMetadataListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AccessKeyMetadata(entry, context);\n });\n}, \"de_accessKeyMetadataListType\");\nvar de_accountAliasListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_accountAliasListType\");\nvar de_AccountNotManagementOrDelegatedAdministratorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_AccountNotManagementOrDelegatedAdministratorException\");\nvar de_ArnListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ArnListType\");\nvar de_AttachedPermissionsBoundary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PBT] != null) {\n contents[_PBT] = (0, import_smithy_client.expectString)(output[_PBT]);\n }\n if (output[_PBA] != null) {\n contents[_PBA] = (0, import_smithy_client.expectString)(output[_PBA]);\n }\n return contents;\n}, \"de_AttachedPermissionsBoundary\");\nvar de_attachedPoliciesListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AttachedPolicy(entry, context);\n });\n}, \"de_attachedPoliciesListType\");\nvar de_AttachedPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PA] != null) {\n contents[_PA] = (0, import_smithy_client.expectString)(output[_PA]);\n }\n return contents;\n}, \"de_AttachedPolicy\");\nvar de_CallerIsNotManagementAccountException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_CallerIsNotManagementAccountException\");\nvar de_certificateListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SigningCertificate(entry, context);\n });\n}, \"de_certificateListType\");\nvar de_CertificationMapType = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_CertificationMapType\");\nvar de_clientIDListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_clientIDListType\");\nvar de_ConcurrentModificationException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ConcurrentModificationException\");\nvar de_ContextKeyNamesResultListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ContextKeyNamesResultListType\");\nvar de_CreateAccessKeyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AK] != null) {\n contents[_AK] = de_AccessKey(output[_AK], context);\n }\n return contents;\n}, \"de_CreateAccessKeyResponse\");\nvar de_CreateGroupResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gr] != null) {\n contents[_Gr] = de_Group(output[_Gr], context);\n }\n return contents;\n}, \"de_CreateGroupResponse\");\nvar de_CreateInstanceProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = de_InstanceProfile(output[_IP], context);\n }\n return contents;\n}, \"de_CreateInstanceProfileResponse\");\nvar de_CreateLoginProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LPo] != null) {\n contents[_LPo] = de_LoginProfile(output[_LPo], context);\n }\n return contents;\n}, \"de_CreateLoginProfileResponse\");\nvar de_CreateOpenIDConnectProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OIDCPA] != null) {\n contents[_OIDCPA] = (0, import_smithy_client.expectString)(output[_OIDCPA]);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_CreateOpenIDConnectProviderResponse\");\nvar de_CreatePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Po] != null) {\n contents[_Po] = de_Policy(output[_Po], context);\n }\n return contents;\n}, \"de_CreatePolicyResponse\");\nvar de_CreatePolicyVersionResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PV] != null) {\n contents[_PV] = de_PolicyVersion(output[_PV], context);\n }\n return contents;\n}, \"de_CreatePolicyVersionResponse\");\nvar de_CreateRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_CreateRoleResponse\");\nvar de_CreateSAMLProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SAMLPA] != null) {\n contents[_SAMLPA] = (0, import_smithy_client.expectString)(output[_SAMLPA]);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_CreateSAMLProviderResponse\");\nvar de_CreateServiceLinkedRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_CreateServiceLinkedRoleResponse\");\nvar de_CreateServiceSpecificCredentialResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSC] != null) {\n contents[_SSC] = de_ServiceSpecificCredential(output[_SSC], context);\n }\n return contents;\n}, \"de_CreateServiceSpecificCredentialResponse\");\nvar de_CreateUserResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Us] != null) {\n contents[_Us] = de_User(output[_Us], context);\n }\n return contents;\n}, \"de_CreateUserResponse\");\nvar de_CreateVirtualMFADeviceResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_VMFAD] != null) {\n contents[_VMFAD] = de_VirtualMFADevice(output[_VMFAD], context);\n }\n return contents;\n}, \"de_CreateVirtualMFADeviceResponse\");\nvar de_CredentialReportExpiredException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_CredentialReportExpiredException\");\nvar de_CredentialReportNotPresentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_CredentialReportNotPresentException\");\nvar de_CredentialReportNotReadyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_CredentialReportNotReadyException\");\nvar de_DeleteConflictException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_DeleteConflictException\");\nvar de_DeleteServiceLinkedRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DTI] != null) {\n contents[_DTI] = (0, import_smithy_client.expectString)(output[_DTI]);\n }\n return contents;\n}, \"de_DeleteServiceLinkedRoleResponse\");\nvar de_DeletionTaskFailureReasonType = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output.RoleUsageList === \"\") {\n contents[_RUL] = [];\n } else if (output[_RUL] != null && output[_RUL][_me] != null) {\n contents[_RUL] = de_RoleUsageListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RUL][_me]), context);\n }\n return contents;\n}, \"de_DeletionTaskFailureReasonType\");\nvar de_DisableOrganizationsRootCredentialsManagementResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_DisableOrganizationsRootCredentialsManagementResponse\");\nvar de_DisableOrganizationsRootSessionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_DisableOrganizationsRootSessionsResponse\");\nvar de_DuplicateCertificateException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_DuplicateCertificateException\");\nvar de_DuplicateSSHPublicKeyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_DuplicateSSHPublicKeyException\");\nvar de_EnableOrganizationsRootCredentialsManagementResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_EnableOrganizationsRootCredentialsManagementResponse\");\nvar de_EnableOrganizationsRootSessionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_EnableOrganizationsRootSessionsResponse\");\nvar de_EntityAlreadyExistsException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_EntityAlreadyExistsException\");\nvar de_EntityDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EI] != null) {\n contents[_EI] = de_EntityInfo(output[_EI], context);\n }\n if (output[_LA] != null) {\n contents[_LA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LA]));\n }\n return contents;\n}, \"de_EntityDetails\");\nvar de_entityDetailsListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EntityDetails(entry, context);\n });\n}, \"de_entityDetailsListType\");\nvar de_EntityInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Ty] != null) {\n contents[_Ty] = (0, import_smithy_client.expectString)(output[_Ty]);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_EntityInfo\");\nvar de_EntityTemporarilyUnmodifiableException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_EntityTemporarilyUnmodifiableException\");\nvar de_ErrorDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n return contents;\n}, \"de_ErrorDetails\");\nvar de_EvalDecisionDetailsType = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.expectString)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_EvalDecisionDetailsType\");\nvar de_EvaluationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EAN] != null) {\n contents[_EAN] = (0, import_smithy_client.expectString)(output[_EAN]);\n }\n if (output[_ERN] != null) {\n contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]);\n }\n if (output[_ED] != null) {\n contents[_ED] = (0, import_smithy_client.expectString)(output[_ED]);\n }\n if (output.MatchedStatements === \"\") {\n contents[_MS] = [];\n } else if (output[_MS] != null && output[_MS][_me] != null) {\n contents[_MS] = de_StatementListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MS][_me]), context);\n }\n if (output.MissingContextValues === \"\") {\n contents[_MCV] = [];\n } else if (output[_MCV] != null && output[_MCV][_me] != null) {\n contents[_MCV] = de_ContextKeyNamesResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MCV][_me]), context);\n }\n if (output[_ODD] != null) {\n contents[_ODD] = de_OrganizationsDecisionDetail(output[_ODD], context);\n }\n if (output[_PBDD] != null) {\n contents[_PBDD] = de_PermissionsBoundaryDecisionDetail(output[_PBDD], context);\n }\n if (output.EvalDecisionDetails === \"\") {\n contents[_EDD] = {};\n } else if (output[_EDD] != null && output[_EDD][_e] != null) {\n contents[_EDD] = de_EvalDecisionDetailsType((0, import_smithy_client.getArrayIfSingleItem)(output[_EDD][_e]), context);\n }\n if (output.ResourceSpecificResults === \"\") {\n contents[_RSR] = [];\n } else if (output[_RSR] != null && output[_RSR][_me] != null) {\n contents[_RSR] = de_ResourceSpecificResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RSR][_me]), context);\n }\n return contents;\n}, \"de_EvaluationResult\");\nvar de_EvaluationResultsListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_EvaluationResult(entry, context);\n });\n}, \"de_EvaluationResultsListType\");\nvar de_FeaturesListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_FeaturesListType\");\nvar de_GenerateCredentialReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Sta] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_Sta]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n return contents;\n}, \"de_GenerateCredentialReportResponse\");\nvar de_GenerateOrganizationsAccessReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JI] != null) {\n contents[_JI] = (0, import_smithy_client.expectString)(output[_JI]);\n }\n return contents;\n}, \"de_GenerateOrganizationsAccessReportResponse\");\nvar de_GenerateServiceLastAccessedDetailsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JI] != null) {\n contents[_JI] = (0, import_smithy_client.expectString)(output[_JI]);\n }\n return contents;\n}, \"de_GenerateServiceLastAccessedDetailsResponse\");\nvar de_GetAccessKeyLastUsedResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_AKLU] != null) {\n contents[_AKLU] = de_AccessKeyLastUsed(output[_AKLU], context);\n }\n return contents;\n}, \"de_GetAccessKeyLastUsedResponse\");\nvar de_GetAccountAuthorizationDetailsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.UserDetailList === \"\") {\n contents[_UDL] = [];\n } else if (output[_UDL] != null && output[_UDL][_me] != null) {\n contents[_UDL] = de_userDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_UDL][_me]), context);\n }\n if (output.GroupDetailList === \"\") {\n contents[_GDL] = [];\n } else if (output[_GDL] != null && output[_GDL][_me] != null) {\n contents[_GDL] = de_groupDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_GDL][_me]), context);\n }\n if (output.RoleDetailList === \"\") {\n contents[_RDL] = [];\n } else if (output[_RDL] != null && output[_RDL][_me] != null) {\n contents[_RDL] = de_roleDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RDL][_me]), context);\n }\n if (output.Policies === \"\") {\n contents[_Pol] = [];\n } else if (output[_Pol] != null && output[_Pol][_me] != null) {\n contents[_Pol] = de_ManagedPolicyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Pol][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_GetAccountAuthorizationDetailsResponse\");\nvar de_GetAccountPasswordPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PPa] != null) {\n contents[_PPa] = de_PasswordPolicy(output[_PPa], context);\n }\n return contents;\n}, \"de_GetAccountPasswordPolicyResponse\");\nvar de_GetAccountSummaryResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SummaryMap === \"\") {\n contents[_SM] = {};\n } else if (output[_SM] != null && output[_SM][_e] != null) {\n contents[_SM] = de_summaryMapType((0, import_smithy_client.getArrayIfSingleItem)(output[_SM][_e]), context);\n }\n return contents;\n}, \"de_GetAccountSummaryResponse\");\nvar de_GetContextKeysForPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ContextKeyNames === \"\") {\n contents[_CKNo] = [];\n } else if (output[_CKNo] != null && output[_CKNo][_me] != null) {\n contents[_CKNo] = de_ContextKeyNamesResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_CKNo][_me]), context);\n }\n return contents;\n}, \"de_GetContextKeysForPolicyResponse\");\nvar de_GetCredentialReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Co] != null) {\n contents[_Co] = context.base64Decoder(output[_Co]);\n }\n if (output[_RF] != null) {\n contents[_RF] = (0, import_smithy_client.expectString)(output[_RF]);\n }\n if (output[_GT] != null) {\n contents[_GT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_GT]));\n }\n return contents;\n}, \"de_GetCredentialReportResponse\");\nvar de_GetGroupPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_GetGroupPolicyResponse\");\nvar de_GetGroupResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gr] != null) {\n contents[_Gr] = de_Group(output[_Gr], context);\n }\n if (output.Users === \"\") {\n contents[_Use] = [];\n } else if (output[_Use] != null && output[_Use][_me] != null) {\n contents[_Use] = de_userListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Use][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_GetGroupResponse\");\nvar de_GetInstanceProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = de_InstanceProfile(output[_IP], context);\n }\n return contents;\n}, \"de_GetInstanceProfileResponse\");\nvar de_GetLoginProfileResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LPo] != null) {\n contents[_LPo] = de_LoginProfile(output[_LPo], context);\n }\n return contents;\n}, \"de_GetLoginProfileResponse\");\nvar de_GetMFADeviceResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SNe] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_SNe]);\n }\n if (output[_EDn] != null) {\n contents[_EDn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_EDn]));\n }\n if (output.Certifications === \"\") {\n contents[_Ce] = {};\n } else if (output[_Ce] != null && output[_Ce][_e] != null) {\n contents[_Ce] = de_CertificationMapType((0, import_smithy_client.getArrayIfSingleItem)(output[_Ce][_e]), context);\n }\n return contents;\n}, \"de_GetMFADeviceResponse\");\nvar de_GetOpenIDConnectProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_U] != null) {\n contents[_U] = (0, import_smithy_client.expectString)(output[_U]);\n }\n if (output.ClientIDList === \"\") {\n contents[_CIDL] = [];\n } else if (output[_CIDL] != null && output[_CIDL][_me] != null) {\n contents[_CIDL] = de_clientIDListType((0, import_smithy_client.getArrayIfSingleItem)(output[_CIDL][_me]), context);\n }\n if (output.ThumbprintList === \"\") {\n contents[_TL] = [];\n } else if (output[_TL] != null && output[_TL][_me] != null) {\n contents[_TL] = de_thumbprintListType((0, import_smithy_client.getArrayIfSingleItem)(output[_TL][_me]), context);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_GetOpenIDConnectProviderResponse\");\nvar de_GetOrganizationsAccessReportResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JS] != null) {\n contents[_JS] = (0, import_smithy_client.expectString)(output[_JS]);\n }\n if (output[_JCD] != null) {\n contents[_JCD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCD]));\n }\n if (output[_JCDo] != null) {\n contents[_JCDo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCDo]));\n }\n if (output[_NOSA] != null) {\n contents[_NOSA] = (0, import_smithy_client.strictParseInt32)(output[_NOSA]);\n }\n if (output[_NOSNA] != null) {\n contents[_NOSNA] = (0, import_smithy_client.strictParseInt32)(output[_NOSNA]);\n }\n if (output.AccessDetails === \"\") {\n contents[_AD] = [];\n } else if (output[_AD] != null && output[_AD][_me] != null) {\n contents[_AD] = de_AccessDetails((0, import_smithy_client.getArrayIfSingleItem)(output[_AD][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n if (output[_EDr] != null) {\n contents[_EDr] = de_ErrorDetails(output[_EDr], context);\n }\n return contents;\n}, \"de_GetOrganizationsAccessReportResponse\");\nvar de_GetPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Po] != null) {\n contents[_Po] = de_Policy(output[_Po], context);\n }\n return contents;\n}, \"de_GetPolicyResponse\");\nvar de_GetPolicyVersionResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PV] != null) {\n contents[_PV] = de_PolicyVersion(output[_PV], context);\n }\n return contents;\n}, \"de_GetPolicyVersionResponse\");\nvar de_GetRolePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_GetRolePolicyResponse\");\nvar de_GetRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_GetRoleResponse\");\nvar de_GetSAMLProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SAMLPUUID] != null) {\n contents[_SAMLPUUID] = (0, import_smithy_client.expectString)(output[_SAMLPUUID]);\n }\n if (output[_SAMLMD] != null) {\n contents[_SAMLMD] = (0, import_smithy_client.expectString)(output[_SAMLMD]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_VU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_VU]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_AEM] != null) {\n contents[_AEM] = (0, import_smithy_client.expectString)(output[_AEM]);\n }\n if (output.PrivateKeyList === \"\") {\n contents[_PKL] = [];\n } else if (output[_PKL] != null && output[_PKL][_me] != null) {\n contents[_PKL] = de_privateKeyList((0, import_smithy_client.getArrayIfSingleItem)(output[_PKL][_me]), context);\n }\n return contents;\n}, \"de_GetSAMLProviderResponse\");\nvar de_GetServerCertificateResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SC] != null) {\n contents[_SC] = de_ServerCertificate(output[_SC], context);\n }\n return contents;\n}, \"de_GetServerCertificateResponse\");\nvar de_GetServiceLastAccessedDetailsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JS] != null) {\n contents[_JS] = (0, import_smithy_client.expectString)(output[_JS]);\n }\n if (output[_JT] != null) {\n contents[_JT] = (0, import_smithy_client.expectString)(output[_JT]);\n }\n if (output[_JCD] != null) {\n contents[_JCD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCD]));\n }\n if (output.ServicesLastAccessed === \"\") {\n contents[_SLA] = [];\n } else if (output[_SLA] != null && output[_SLA][_me] != null) {\n contents[_SLA] = de_ServicesLastAccessed((0, import_smithy_client.getArrayIfSingleItem)(output[_SLA][_me]), context);\n }\n if (output[_JCDo] != null) {\n contents[_JCDo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCDo]));\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n return contents;\n}, \"de_GetServiceLastAccessedDetailsResponse\");\nvar de_GetServiceLastAccessedDetailsWithEntitiesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_JS] != null) {\n contents[_JS] = (0, import_smithy_client.expectString)(output[_JS]);\n }\n if (output[_JCD] != null) {\n contents[_JCD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCD]));\n }\n if (output[_JCDo] != null) {\n contents[_JCDo] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_JCDo]));\n }\n if (output.EntityDetailsList === \"\") {\n contents[_EDL] = [];\n } else if (output[_EDL] != null && output[_EDL][_me] != null) {\n contents[_EDL] = de_entityDetailsListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EDL][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n return contents;\n}, \"de_GetServiceLastAccessedDetailsWithEntitiesResponse\");\nvar de_GetServiceLinkedRoleDeletionStatusResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_Re] != null) {\n contents[_Re] = de_DeletionTaskFailureReasonType(output[_Re], context);\n }\n return contents;\n}, \"de_GetServiceLinkedRoleDeletionStatusResponse\");\nvar de_GetSSHPublicKeyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSHPK] != null) {\n contents[_SSHPK] = de_SSHPublicKey(output[_SSHPK], context);\n }\n return contents;\n}, \"de_GetSSHPublicKeyResponse\");\nvar de_GetUserPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_GetUserPolicyResponse\");\nvar de_GetUserResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Us] != null) {\n contents[_Us] = de_User(output[_Us], context);\n }\n return contents;\n}, \"de_GetUserResponse\");\nvar de_Group = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_GI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_GI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_Group\");\nvar de_GroupDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_GI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_GI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.GroupPolicyList === \"\") {\n contents[_GPL] = [];\n } else if (output[_GPL] != null && output[_GPL][_me] != null) {\n contents[_GPL] = de_policyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_GPL][_me]), context);\n }\n if (output.AttachedManagedPolicies === \"\") {\n contents[_AMP] = [];\n } else if (output[_AMP] != null && output[_AMP][_me] != null) {\n contents[_AMP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AMP][_me]), context);\n }\n return contents;\n}, \"de_GroupDetail\");\nvar de_groupDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GroupDetail(entry, context);\n });\n}, \"de_groupDetailListType\");\nvar de_groupListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Group(entry, context);\n });\n}, \"de_groupListType\");\nvar de_groupNameListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_groupNameListType\");\nvar de_InstanceProfile = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_IPN] != null) {\n contents[_IPN] = (0, import_smithy_client.expectString)(output[_IPN]);\n }\n if (output[_IPI] != null) {\n contents[_IPI] = (0, import_smithy_client.expectString)(output[_IPI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.Roles === \"\") {\n contents[_Rol] = [];\n } else if (output[_Rol] != null && output[_Rol][_me] != null) {\n contents[_Rol] = de_roleListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Rol][_me]), context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_InstanceProfile\");\nvar de_instanceProfileListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceProfile(entry, context);\n });\n}, \"de_instanceProfileListType\");\nvar de_InvalidAuthenticationCodeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidAuthenticationCodeException\");\nvar de_InvalidCertificateException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidCertificateException\");\nvar de_InvalidInputException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidInputException\");\nvar de_InvalidPublicKeyException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidPublicKeyException\");\nvar de_InvalidUserTypeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidUserTypeException\");\nvar de_KeyPairMismatchException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_KeyPairMismatchException\");\nvar de_LimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_LimitExceededException\");\nvar de_ListAccessKeysResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AccessKeyMetadata === \"\") {\n contents[_AKM] = [];\n } else if (output[_AKM] != null && output[_AKM][_me] != null) {\n contents[_AKM] = de_accessKeyMetadataListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AKM][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAccessKeysResponse\");\nvar de_ListAccountAliasesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AccountAliases === \"\") {\n contents[_AAc] = [];\n } else if (output[_AAc] != null && output[_AAc][_me] != null) {\n contents[_AAc] = de_accountAliasListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AAc][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAccountAliasesResponse\");\nvar de_ListAttachedGroupPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AttachedPolicies === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_me] != null) {\n contents[_AP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAttachedGroupPoliciesResponse\");\nvar de_ListAttachedRolePoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AttachedPolicies === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_me] != null) {\n contents[_AP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAttachedRolePoliciesResponse\");\nvar de_ListAttachedUserPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.AttachedPolicies === \"\") {\n contents[_AP] = [];\n } else if (output[_AP] != null && output[_AP][_me] != null) {\n contents[_AP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AP][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListAttachedUserPoliciesResponse\");\nvar de_ListEntitiesForPolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyGroups === \"\") {\n contents[_PG] = [];\n } else if (output[_PG] != null && output[_PG][_me] != null) {\n contents[_PG] = de_PolicyGroupListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PG][_me]), context);\n }\n if (output.PolicyUsers === \"\") {\n contents[_PU] = [];\n } else if (output[_PU] != null && output[_PU][_me] != null) {\n contents[_PU] = de_PolicyUserListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PU][_me]), context);\n }\n if (output.PolicyRoles === \"\") {\n contents[_PR] = [];\n } else if (output[_PR] != null && output[_PR][_me] != null) {\n contents[_PR] = de_PolicyRoleListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PR][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListEntitiesForPolicyResponse\");\nvar de_ListGroupPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyNames === \"\") {\n contents[_PNo] = [];\n } else if (output[_PNo] != null && output[_PNo][_me] != null) {\n contents[_PNo] = de_policyNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PNo][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListGroupPoliciesResponse\");\nvar de_ListGroupsForUserResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Groups === \"\") {\n contents[_Gro] = [];\n } else if (output[_Gro] != null && output[_Gro][_me] != null) {\n contents[_Gro] = de_groupListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Gro][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListGroupsForUserResponse\");\nvar de_ListGroupsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Groups === \"\") {\n contents[_Gro] = [];\n } else if (output[_Gro] != null && output[_Gro][_me] != null) {\n contents[_Gro] = de_groupListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Gro][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListGroupsResponse\");\nvar de_ListInstanceProfilesForRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.InstanceProfiles === \"\") {\n contents[_IPn] = [];\n } else if (output[_IPn] != null && output[_IPn][_me] != null) {\n contents[_IPn] = de_instanceProfileListType((0, import_smithy_client.getArrayIfSingleItem)(output[_IPn][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListInstanceProfilesForRoleResponse\");\nvar de_ListInstanceProfilesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.InstanceProfiles === \"\") {\n contents[_IPn] = [];\n } else if (output[_IPn] != null && output[_IPn][_me] != null) {\n contents[_IPn] = de_instanceProfileListType((0, import_smithy_client.getArrayIfSingleItem)(output[_IPn][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListInstanceProfilesResponse\");\nvar de_ListInstanceProfileTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListInstanceProfileTagsResponse\");\nvar de_ListMFADevicesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.MFADevices === \"\") {\n contents[_MFAD] = [];\n } else if (output[_MFAD] != null && output[_MFAD][_me] != null) {\n contents[_MFAD] = de_mfaDeviceListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MFAD][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListMFADevicesResponse\");\nvar de_ListMFADeviceTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListMFADeviceTagsResponse\");\nvar de_ListOpenIDConnectProvidersResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.OpenIDConnectProviderList === \"\") {\n contents[_OIDCPL] = [];\n } else if (output[_OIDCPL] != null && output[_OIDCPL][_me] != null) {\n contents[_OIDCPL] = de_OpenIDConnectProviderListType((0, import_smithy_client.getArrayIfSingleItem)(output[_OIDCPL][_me]), context);\n }\n return contents;\n}, \"de_ListOpenIDConnectProvidersResponse\");\nvar de_ListOpenIDConnectProviderTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListOpenIDConnectProviderTagsResponse\");\nvar de_ListOrganizationsFeaturesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OI] != null) {\n contents[_OI] = (0, import_smithy_client.expectString)(output[_OI]);\n }\n if (output.EnabledFeatures === \"\") {\n contents[_EFn] = [];\n } else if (output[_EFn] != null && output[_EFn][_me] != null) {\n contents[_EFn] = de_FeaturesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_EFn][_me]), context);\n }\n return contents;\n}, \"de_ListOrganizationsFeaturesResponse\");\nvar de_ListPoliciesGrantingServiceAccessEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SNer] != null) {\n contents[_SNer] = (0, import_smithy_client.expectString)(output[_SNer]);\n }\n if (output.Policies === \"\") {\n contents[_Pol] = [];\n } else if (output[_Pol] != null && output[_Pol][_me] != null) {\n contents[_Pol] = de_policyGrantingServiceAccessListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Pol][_me]), context);\n }\n return contents;\n}, \"de_ListPoliciesGrantingServiceAccessEntry\");\nvar de_ListPoliciesGrantingServiceAccessResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PoliciesGrantingServiceAccess === \"\") {\n contents[_PGSA] = [];\n } else if (output[_PGSA] != null && output[_PGSA][_me] != null) {\n contents[_PGSA] = de_listPolicyGrantingServiceAccessResponseListType(\n (0, import_smithy_client.getArrayIfSingleItem)(output[_PGSA][_me]),\n context\n );\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPoliciesGrantingServiceAccessResponse\");\nvar de_ListPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Policies === \"\") {\n contents[_Pol] = [];\n } else if (output[_Pol] != null && output[_Pol][_me] != null) {\n contents[_Pol] = de_policyListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Pol][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPoliciesResponse\");\nvar de_listPolicyGrantingServiceAccessResponseListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ListPoliciesGrantingServiceAccessEntry(entry, context);\n });\n}, \"de_listPolicyGrantingServiceAccessResponseListType\");\nvar de_ListPolicyTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPolicyTagsResponse\");\nvar de_ListPolicyVersionsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Versions === \"\") {\n contents[_Ve] = [];\n } else if (output[_Ve] != null && output[_Ve][_me] != null) {\n contents[_Ve] = de_policyDocumentVersionListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Ve][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListPolicyVersionsResponse\");\nvar de_ListRolePoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyNames === \"\") {\n contents[_PNo] = [];\n } else if (output[_PNo] != null && output[_PNo][_me] != null) {\n contents[_PNo] = de_policyNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PNo][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListRolePoliciesResponse\");\nvar de_ListRolesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Roles === \"\") {\n contents[_Rol] = [];\n } else if (output[_Rol] != null && output[_Rol][_me] != null) {\n contents[_Rol] = de_roleListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Rol][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListRolesResponse\");\nvar de_ListRoleTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListRoleTagsResponse\");\nvar de_ListSAMLProvidersResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SAMLProviderList === \"\") {\n contents[_SAMLPL] = [];\n } else if (output[_SAMLPL] != null && output[_SAMLPL][_me] != null) {\n contents[_SAMLPL] = de_SAMLProviderListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SAMLPL][_me]), context);\n }\n return contents;\n}, \"de_ListSAMLProvidersResponse\");\nvar de_ListSAMLProviderTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListSAMLProviderTagsResponse\");\nvar de_ListServerCertificatesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ServerCertificateMetadataList === \"\") {\n contents[_SCML] = [];\n } else if (output[_SCML] != null && output[_SCML][_me] != null) {\n contents[_SCML] = de_serverCertificateMetadataListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SCML][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListServerCertificatesResponse\");\nvar de_ListServerCertificateTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListServerCertificateTagsResponse\");\nvar de_ListServiceSpecificCredentialsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.ServiceSpecificCredentials === \"\") {\n contents[_SSCe] = [];\n } else if (output[_SSCe] != null && output[_SSCe][_me] != null) {\n contents[_SSCe] = de_ServiceSpecificCredentialsListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SSCe][_me]), context);\n }\n return contents;\n}, \"de_ListServiceSpecificCredentialsResponse\");\nvar de_ListSigningCertificatesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Certificates === \"\") {\n contents[_Cer] = [];\n } else if (output[_Cer] != null && output[_Cer][_me] != null) {\n contents[_Cer] = de_certificateListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Cer][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListSigningCertificatesResponse\");\nvar de_ListSSHPublicKeysResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.SSHPublicKeys === \"\") {\n contents[_SSHPKu] = [];\n } else if (output[_SSHPKu] != null && output[_SSHPKu][_me] != null) {\n contents[_SSHPKu] = de_SSHPublicKeyListType((0, import_smithy_client.getArrayIfSingleItem)(output[_SSHPKu][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListSSHPublicKeysResponse\");\nvar de_ListUserPoliciesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.PolicyNames === \"\") {\n contents[_PNo] = [];\n } else if (output[_PNo] != null && output[_PNo][_me] != null) {\n contents[_PNo] = de_policyNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PNo][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListUserPoliciesResponse\");\nvar de_ListUsersResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Users === \"\") {\n contents[_Use] = [];\n } else if (output[_Use] != null && output[_Use][_me] != null) {\n contents[_Use] = de_userListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Use][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListUsersResponse\");\nvar de_ListUserTagsResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListUserTagsResponse\");\nvar de_ListVirtualMFADevicesResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.VirtualMFADevices === \"\") {\n contents[_VMFADi] = [];\n } else if (output[_VMFADi] != null && output[_VMFADi][_me] != null) {\n contents[_VMFADi] = de_virtualMFADeviceListType((0, import_smithy_client.getArrayIfSingleItem)(output[_VMFADi][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_ListVirtualMFADevicesResponse\");\nvar de_LoginProfile = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_PRR] != null) {\n contents[_PRR] = (0, import_smithy_client.parseBoolean)(output[_PRR]);\n }\n return contents;\n}, \"de_LoginProfile\");\nvar de_MalformedCertificateException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedCertificateException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_ManagedPolicyDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_DVI] != null) {\n contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]);\n }\n if (output[_ACt] != null) {\n contents[_ACt] = (0, import_smithy_client.strictParseInt32)(output[_ACt]);\n }\n if (output[_PBUC] != null) {\n contents[_PBUC] = (0, import_smithy_client.strictParseInt32)(output[_PBUC]);\n }\n if (output[_IA] != null) {\n contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_UD] != null) {\n contents[_UD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UD]));\n }\n if (output.PolicyVersionList === \"\") {\n contents[_PVL] = [];\n } else if (output[_PVL] != null && output[_PVL][_me] != null) {\n contents[_PVL] = de_policyDocumentVersionListType((0, import_smithy_client.getArrayIfSingleItem)(output[_PVL][_me]), context);\n }\n return contents;\n}, \"de_ManagedPolicyDetail\");\nvar de_ManagedPolicyDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ManagedPolicyDetail(entry, context);\n });\n}, \"de_ManagedPolicyDetailListType\");\nvar de_MFADevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SNe] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_SNe]);\n }\n if (output[_EDn] != null) {\n contents[_EDn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_EDn]));\n }\n return contents;\n}, \"de_MFADevice\");\nvar de_mfaDeviceListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MFADevice(entry, context);\n });\n}, \"de_mfaDeviceListType\");\nvar de_NoSuchEntityException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_NoSuchEntityException\");\nvar de_OpenIDConnectProviderListEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_OpenIDConnectProviderListEntry\");\nvar de_OpenIDConnectProviderListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_OpenIDConnectProviderListEntry(entry, context);\n });\n}, \"de_OpenIDConnectProviderListType\");\nvar de_OpenIdIdpCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_OpenIdIdpCommunicationErrorException\");\nvar de_OrganizationNotFoundException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_OrganizationNotFoundException\");\nvar de_OrganizationNotInAllFeaturesModeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_OrganizationNotInAllFeaturesModeException\");\nvar de_OrganizationsDecisionDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ABO] != null) {\n contents[_ABO] = (0, import_smithy_client.parseBoolean)(output[_ABO]);\n }\n return contents;\n}, \"de_OrganizationsDecisionDetail\");\nvar de_PasswordPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MPL] != null) {\n contents[_MPL] = (0, import_smithy_client.strictParseInt32)(output[_MPL]);\n }\n if (output[_RS] != null) {\n contents[_RS] = (0, import_smithy_client.parseBoolean)(output[_RS]);\n }\n if (output[_RNe] != null) {\n contents[_RNe] = (0, import_smithy_client.parseBoolean)(output[_RNe]);\n }\n if (output[_RUC] != null) {\n contents[_RUC] = (0, import_smithy_client.parseBoolean)(output[_RUC]);\n }\n if (output[_RLC] != null) {\n contents[_RLC] = (0, import_smithy_client.parseBoolean)(output[_RLC]);\n }\n if (output[_AUTCP] != null) {\n contents[_AUTCP] = (0, import_smithy_client.parseBoolean)(output[_AUTCP]);\n }\n if (output[_EPx] != null) {\n contents[_EPx] = (0, import_smithy_client.parseBoolean)(output[_EPx]);\n }\n if (output[_MPA] != null) {\n contents[_MPA] = (0, import_smithy_client.strictParseInt32)(output[_MPA]);\n }\n if (output[_PRPa] != null) {\n contents[_PRPa] = (0, import_smithy_client.strictParseInt32)(output[_PRPa]);\n }\n if (output[_HE] != null) {\n contents[_HE] = (0, import_smithy_client.parseBoolean)(output[_HE]);\n }\n return contents;\n}, \"de_PasswordPolicy\");\nvar de_PasswordPolicyViolationException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PasswordPolicyViolationException\");\nvar de_PermissionsBoundaryDecisionDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ABPB] != null) {\n contents[_ABPB] = (0, import_smithy_client.parseBoolean)(output[_ABPB]);\n }\n return contents;\n}, \"de_PermissionsBoundaryDecisionDetail\");\nvar de_Policy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PI] != null) {\n contents[_PI] = (0, import_smithy_client.expectString)(output[_PI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_DVI] != null) {\n contents[_DVI] = (0, import_smithy_client.expectString)(output[_DVI]);\n }\n if (output[_ACt] != null) {\n contents[_ACt] = (0, import_smithy_client.strictParseInt32)(output[_ACt]);\n }\n if (output[_PBUC] != null) {\n contents[_PBUC] = (0, import_smithy_client.strictParseInt32)(output[_PBUC]);\n }\n if (output[_IA] != null) {\n contents[_IA] = (0, import_smithy_client.parseBoolean)(output[_IA]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_UD] != null) {\n contents[_UD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UD]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_Policy\");\nvar de_PolicyDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PD] != null) {\n contents[_PD] = (0, import_smithy_client.expectString)(output[_PD]);\n }\n return contents;\n}, \"de_PolicyDetail\");\nvar de_policyDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyDetail(entry, context);\n });\n}, \"de_policyDetailListType\");\nvar de_policyDocumentVersionListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyVersion(entry, context);\n });\n}, \"de_policyDocumentVersionListType\");\nvar de_PolicyEvaluationException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PolicyEvaluationException\");\nvar de_PolicyGrantingServiceAccess = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.expectString)(output[_PN]);\n }\n if (output[_PT] != null) {\n contents[_PT] = (0, import_smithy_client.expectString)(output[_PT]);\n }\n if (output[_PA] != null) {\n contents[_PA] = (0, import_smithy_client.expectString)(output[_PA]);\n }\n if (output[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(output[_ET]);\n }\n if (output[_EN] != null) {\n contents[_EN] = (0, import_smithy_client.expectString)(output[_EN]);\n }\n return contents;\n}, \"de_PolicyGrantingServiceAccess\");\nvar de_policyGrantingServiceAccessListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyGrantingServiceAccess(entry, context);\n });\n}, \"de_policyGrantingServiceAccessListType\");\nvar de_PolicyGroup = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_GN] != null) {\n contents[_GN] = (0, import_smithy_client.expectString)(output[_GN]);\n }\n if (output[_GI] != null) {\n contents[_GI] = (0, import_smithy_client.expectString)(output[_GI]);\n }\n return contents;\n}, \"de_PolicyGroup\");\nvar de_PolicyGroupListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyGroup(entry, context);\n });\n}, \"de_PolicyGroupListType\");\nvar de_policyListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Policy(entry, context);\n });\n}, \"de_policyListType\");\nvar de_policyNameListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_policyNameListType\");\nvar de_PolicyNotAttachableException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PolicyNotAttachableException\");\nvar de_PolicyRole = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n return contents;\n}, \"de_PolicyRole\");\nvar de_PolicyRoleListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyRole(entry, context);\n });\n}, \"de_PolicyRoleListType\");\nvar de_PolicyUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n return contents;\n}, \"de_PolicyUser\");\nvar de_PolicyUserListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_PolicyUser(entry, context);\n });\n}, \"de_PolicyUserListType\");\nvar de_PolicyVersion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Do] != null) {\n contents[_Do] = (0, import_smithy_client.expectString)(output[_Do]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_IDV] != null) {\n contents[_IDV] = (0, import_smithy_client.parseBoolean)(output[_IDV]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_PolicyVersion\");\nvar de_Position = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_L] != null) {\n contents[_L] = (0, import_smithy_client.strictParseInt32)(output[_L]);\n }\n if (output[_Col] != null) {\n contents[_Col] = (0, import_smithy_client.strictParseInt32)(output[_Col]);\n }\n return contents;\n}, \"de_Position\");\nvar de_privateKeyList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SAMLPrivateKey(entry, context);\n });\n}, \"de_privateKeyList\");\nvar de_ReportGenerationLimitExceededException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ReportGenerationLimitExceededException\");\nvar de_ResetServiceSpecificCredentialResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSC] != null) {\n contents[_SSC] = de_ServiceSpecificCredential(output[_SSC], context);\n }\n return contents;\n}, \"de_ResetServiceSpecificCredentialResponse\");\nvar de_ResourceSpecificResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ERN] != null) {\n contents[_ERN] = (0, import_smithy_client.expectString)(output[_ERN]);\n }\n if (output[_ERD] != null) {\n contents[_ERD] = (0, import_smithy_client.expectString)(output[_ERD]);\n }\n if (output.MatchedStatements === \"\") {\n contents[_MS] = [];\n } else if (output[_MS] != null && output[_MS][_me] != null) {\n contents[_MS] = de_StatementListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MS][_me]), context);\n }\n if (output.MissingContextValues === \"\") {\n contents[_MCV] = [];\n } else if (output[_MCV] != null && output[_MCV][_me] != null) {\n contents[_MCV] = de_ContextKeyNamesResultListType((0, import_smithy_client.getArrayIfSingleItem)(output[_MCV][_me]), context);\n }\n if (output.EvalDecisionDetails === \"\") {\n contents[_EDD] = {};\n } else if (output[_EDD] != null && output[_EDD][_e] != null) {\n contents[_EDD] = de_EvalDecisionDetailsType((0, import_smithy_client.getArrayIfSingleItem)(output[_EDD][_e]), context);\n }\n if (output[_PBDD] != null) {\n contents[_PBDD] = de_PermissionsBoundaryDecisionDetail(output[_PBDD], context);\n }\n return contents;\n}, \"de_ResourceSpecificResult\");\nvar de_ResourceSpecificResultListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceSpecificResult(entry, context);\n });\n}, \"de_ResourceSpecificResultListType\");\nvar de_Role = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_ARPD] != null) {\n contents[_ARPD] = (0, import_smithy_client.expectString)(output[_ARPD]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_MSD] != null) {\n contents[_MSD] = (0, import_smithy_client.strictParseInt32)(output[_MSD]);\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_RLU] != null) {\n contents[_RLU] = de_RoleLastUsed(output[_RLU], context);\n }\n return contents;\n}, \"de_Role\");\nvar de_RoleDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(output[_RN]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_ARPD] != null) {\n contents[_ARPD] = (0, import_smithy_client.expectString)(output[_ARPD]);\n }\n if (output.InstanceProfileList === \"\") {\n contents[_IPL] = [];\n } else if (output[_IPL] != null && output[_IPL][_me] != null) {\n contents[_IPL] = de_instanceProfileListType((0, import_smithy_client.getArrayIfSingleItem)(output[_IPL][_me]), context);\n }\n if (output.RolePolicyList === \"\") {\n contents[_RPL] = [];\n } else if (output[_RPL] != null && output[_RPL][_me] != null) {\n contents[_RPL] = de_policyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_RPL][_me]), context);\n }\n if (output.AttachedManagedPolicies === \"\") {\n contents[_AMP] = [];\n } else if (output[_AMP] != null && output[_AMP][_me] != null) {\n contents[_AMP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AMP][_me]), context);\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n if (output[_RLU] != null) {\n contents[_RLU] = de_RoleLastUsed(output[_RLU], context);\n }\n return contents;\n}, \"de_RoleDetail\");\nvar de_roleDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RoleDetail(entry, context);\n });\n}, \"de_roleDetailListType\");\nvar de_RoleLastUsed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LUD] != null) {\n contents[_LUD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LUD]));\n }\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n return contents;\n}, \"de_RoleLastUsed\");\nvar de_roleListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Role(entry, context);\n });\n}, \"de_roleListType\");\nvar de_RoleUsageListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RoleUsageType(entry, context);\n });\n}, \"de_RoleUsageListType\");\nvar de_RoleUsageType = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_R] != null) {\n contents[_R] = (0, import_smithy_client.expectString)(output[_R]);\n }\n if (output.Resources === \"\") {\n contents[_Res] = [];\n } else if (output[_Res] != null && output[_Res][_me] != null) {\n contents[_Res] = de_ArnListType((0, import_smithy_client.getArrayIfSingleItem)(output[_Res][_me]), context);\n }\n return contents;\n}, \"de_RoleUsageType\");\nvar de_SAMLPrivateKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_KI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_KI]);\n }\n if (output[_Ti] != null) {\n contents[_Ti] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ti]));\n }\n return contents;\n}, \"de_SAMLPrivateKey\");\nvar de_SAMLProviderListEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_VU] != null) {\n contents[_VU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_VU]));\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n return contents;\n}, \"de_SAMLProviderListEntry\");\nvar de_SAMLProviderListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SAMLProviderListEntry(entry, context);\n });\n}, \"de_SAMLProviderListType\");\nvar de_ServerCertificate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SCM] != null) {\n contents[_SCM] = de_ServerCertificateMetadata(output[_SCM], context);\n }\n if (output[_CB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_CB]);\n }\n if (output[_CC] != null) {\n contents[_CC] = (0, import_smithy_client.expectString)(output[_CC]);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_ServerCertificate\");\nvar de_ServerCertificateMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_SCN] != null) {\n contents[_SCN] = (0, import_smithy_client.expectString)(output[_SCN]);\n }\n if (output[_SCI] != null) {\n contents[_SCI] = (0, import_smithy_client.expectString)(output[_SCI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n if (output[_Ex] != null) {\n contents[_Ex] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ex]));\n }\n return contents;\n}, \"de_ServerCertificateMetadata\");\nvar de_serverCertificateMetadataListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServerCertificateMetadata(entry, context);\n });\n}, \"de_serverCertificateMetadataListType\");\nvar de_ServiceAccessNotEnabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n return contents;\n}, \"de_ServiceAccessNotEnabledException\");\nvar de_ServiceFailureException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ServiceFailureException\");\nvar de_ServiceLastAccessed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_LA] != null) {\n contents[_LA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LA]));\n }\n if (output[_SNer] != null) {\n contents[_SNer] = (0, import_smithy_client.expectString)(output[_SNer]);\n }\n if (output[_LAE] != null) {\n contents[_LAE] = (0, import_smithy_client.expectString)(output[_LAE]);\n }\n if (output[_LAR] != null) {\n contents[_LAR] = (0, import_smithy_client.expectString)(output[_LAR]);\n }\n if (output[_TAE] != null) {\n contents[_TAE] = (0, import_smithy_client.strictParseInt32)(output[_TAE]);\n }\n if (output.TrackedActionsLastAccessed === \"\") {\n contents[_TALA] = [];\n } else if (output[_TALA] != null && output[_TALA][_me] != null) {\n contents[_TALA] = de_TrackedActionsLastAccessed((0, import_smithy_client.getArrayIfSingleItem)(output[_TALA][_me]), context);\n }\n return contents;\n}, \"de_ServiceLastAccessed\");\nvar de_ServiceNotSupportedException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ServiceNotSupportedException\");\nvar de_ServicesLastAccessed = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceLastAccessed(entry, context);\n });\n}, \"de_ServicesLastAccessed\");\nvar de_ServiceSpecificCredential = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n if (output[_SUN] != null) {\n contents[_SUN] = (0, import_smithy_client.expectString)(output[_SUN]);\n }\n if (output[_SP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_SP]);\n }\n if (output[_SSCI] != null) {\n contents[_SSCI] = (0, import_smithy_client.expectString)(output[_SSCI]);\n }\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n return contents;\n}, \"de_ServiceSpecificCredential\");\nvar de_ServiceSpecificCredentialMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_SUN] != null) {\n contents[_SUN] = (0, import_smithy_client.expectString)(output[_SUN]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_SSCI] != null) {\n contents[_SSCI] = (0, import_smithy_client.expectString)(output[_SSCI]);\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n return contents;\n}, \"de_ServiceSpecificCredentialMetadata\");\nvar de_ServiceSpecificCredentialsListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServiceSpecificCredentialMetadata(entry, context);\n });\n}, \"de_ServiceSpecificCredentialsListType\");\nvar de_SigningCertificate = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_CI] != null) {\n contents[_CI] = (0, import_smithy_client.expectString)(output[_CI]);\n }\n if (output[_CB] != null) {\n contents[_CB] = (0, import_smithy_client.expectString)(output[_CB]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n return contents;\n}, \"de_SigningCertificate\");\nvar de_SimulatePolicyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.EvaluationResults === \"\") {\n contents[_ER] = [];\n } else if (output[_ER] != null && output[_ER][_me] != null) {\n contents[_ER] = de_EvaluationResultsListType((0, import_smithy_client.getArrayIfSingleItem)(output[_ER][_me]), context);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(output[_M]);\n }\n return contents;\n}, \"de_SimulatePolicyResponse\");\nvar de_SSHPublicKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SSHPKI] != null) {\n contents[_SSHPKI] = (0, import_smithy_client.expectString)(output[_SSHPKI]);\n }\n if (output[_Fi] != null) {\n contents[_Fi] = (0, import_smithy_client.expectString)(output[_Fi]);\n }\n if (output[_SSHPKB] != null) {\n contents[_SSHPKB] = (0, import_smithy_client.expectString)(output[_SSHPKB]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n return contents;\n}, \"de_SSHPublicKey\");\nvar de_SSHPublicKeyListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_SSHPublicKeyMetadata(entry, context);\n });\n}, \"de_SSHPublicKeyListType\");\nvar de_SSHPublicKeyMetadata = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_SSHPKI] != null) {\n contents[_SSHPKI] = (0, import_smithy_client.expectString)(output[_SSHPKI]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output[_UDp] != null) {\n contents[_UDp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_UDp]));\n }\n return contents;\n}, \"de_SSHPublicKeyMetadata\");\nvar de_Statement = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SPI] != null) {\n contents[_SPI] = (0, import_smithy_client.expectString)(output[_SPI]);\n }\n if (output[_SPT] != null) {\n contents[_SPT] = (0, import_smithy_client.expectString)(output[_SPT]);\n }\n if (output[_SPt] != null) {\n contents[_SPt] = de_Position(output[_SPt], context);\n }\n if (output[_EPn] != null) {\n contents[_EPn] = de_Position(output[_EPn], context);\n }\n return contents;\n}, \"de_Statement\");\nvar de_StatementListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Statement(entry, context);\n });\n}, \"de_StatementListType\");\nvar de_summaryMapType = /* @__PURE__ */ __name((output, context) => {\n return output.reduce((acc, pair) => {\n if (pair[\"value\"] === null) {\n return acc;\n }\n acc[pair[\"key\"]] = (0, import_smithy_client.strictParseInt32)(pair[\"value\"]);\n return acc;\n }, {});\n}, \"de_summaryMapType\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Va] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_Va]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_tagListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_tagListType\");\nvar de_thumbprintListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_thumbprintListType\");\nvar de_TrackedActionLastAccessed = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ANc] != null) {\n contents[_ANc] = (0, import_smithy_client.expectString)(output[_ANc]);\n }\n if (output[_LAEa] != null) {\n contents[_LAEa] = (0, import_smithy_client.expectString)(output[_LAEa]);\n }\n if (output[_LATa] != null) {\n contents[_LATa] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LATa]));\n }\n if (output[_LARa] != null) {\n contents[_LARa] = (0, import_smithy_client.expectString)(output[_LARa]);\n }\n return contents;\n}, \"de_TrackedActionLastAccessed\");\nvar de_TrackedActionsLastAccessed = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrackedActionLastAccessed(entry, context);\n });\n}, \"de_TrackedActionsLastAccessed\");\nvar de_UnmodifiableEntityException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_UnmodifiableEntityException\");\nvar de_UnrecognizedPublicKeyEncodingException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_UnrecognizedPublicKeyEncodingException\");\nvar de_UpdateRoleDescriptionResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = de_Role(output[_Ro], context);\n }\n return contents;\n}, \"de_UpdateRoleDescriptionResponse\");\nvar de_UpdateRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_UpdateRoleResponse\");\nvar de_UpdateSAMLProviderResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SAMLPA] != null) {\n contents[_SAMLPA] = (0, import_smithy_client.expectString)(output[_SAMLPA]);\n }\n return contents;\n}, \"de_UpdateSAMLProviderResponse\");\nvar de_UploadServerCertificateResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SCM] != null) {\n contents[_SCM] = de_ServerCertificateMetadata(output[_SCM], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_UploadServerCertificateResponse\");\nvar de_UploadSigningCertificateResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Cert] != null) {\n contents[_Cert] = de_SigningCertificate(output[_Cert], context);\n }\n return contents;\n}, \"de_UploadSigningCertificateResponse\");\nvar de_UploadSSHPublicKeyResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSHPK] != null) {\n contents[_SSHPK] = de_SSHPublicKey(output[_SSHPK], context);\n }\n return contents;\n}, \"de_UploadSSHPublicKeyResponse\");\nvar de_User = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_PLU] != null) {\n contents[_PLU] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_PLU]));\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_User\");\nvar de_UserDetail = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_UN] != null) {\n contents[_UN] = (0, import_smithy_client.expectString)(output[_UN]);\n }\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output.UserPolicyList === \"\") {\n contents[_UPL] = [];\n } else if (output[_UPL] != null && output[_UPL][_me] != null) {\n contents[_UPL] = de_policyDetailListType((0, import_smithy_client.getArrayIfSingleItem)(output[_UPL][_me]), context);\n }\n if (output.GroupList === \"\") {\n contents[_GL] = [];\n } else if (output[_GL] != null && output[_GL][_me] != null) {\n contents[_GL] = de_groupNameListType((0, import_smithy_client.getArrayIfSingleItem)(output[_GL][_me]), context);\n }\n if (output.AttachedManagedPolicies === \"\") {\n contents[_AMP] = [];\n } else if (output[_AMP] != null && output[_AMP][_me] != null) {\n contents[_AMP] = de_attachedPoliciesListType((0, import_smithy_client.getArrayIfSingleItem)(output[_AMP][_me]), context);\n }\n if (output[_PB] != null) {\n contents[_PB] = de_AttachedPermissionsBoundary(output[_PB], context);\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_UserDetail\");\nvar de_userDetailListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_UserDetail(entry, context);\n });\n}, \"de_userDetailListType\");\nvar de_userListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_User(entry, context);\n });\n}, \"de_userListType\");\nvar de_VirtualMFADevice = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SNe] != null) {\n contents[_SNe] = (0, import_smithy_client.expectString)(output[_SNe]);\n }\n if (output[_BSS] != null) {\n contents[_BSS] = context.base64Decoder(output[_BSS]);\n }\n if (output[_QRCPNG] != null) {\n contents[_QRCPNG] = context.base64Decoder(output[_QRCPNG]);\n }\n if (output[_Us] != null) {\n contents[_Us] = de_User(output[_Us], context);\n }\n if (output[_EDn] != null) {\n contents[_EDn] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_EDn]));\n }\n if (output.Tags === \"\") {\n contents[_T] = [];\n } else if (output[_T] != null && output[_T][_me] != null) {\n contents[_T] = de_tagListType((0, import_smithy_client.getArrayIfSingleItem)(output[_T][_me]), context);\n }\n return contents;\n}, \"de_VirtualMFADevice\");\nvar de_virtualMFADeviceListType = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VirtualMFADevice(entry, context);\n });\n}, \"de_virtualMFADeviceListType\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(IAMServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2010-05-08\";\nvar _A = \"Action\";\nvar _AA = \"AccountAlias\";\nvar _AAc = \"AccountAliases\";\nvar _ABO = \"AllowedByOrganizations\";\nvar _ABPB = \"AllowedByPermissionsBoundary\";\nvar _AC = \"AuthenticationCode1\";\nvar _ACIDTOIDCP = \"AddClientIDToOpenIDConnectProvider\";\nvar _ACt = \"AttachmentCount\";\nvar _ACu = \"AuthenticationCode2\";\nvar _AD = \"AccessDetails\";\nvar _AEM = \"AssertionEncryptionMode\";\nvar _AGP = \"AttachGroupPolicy\";\nvar _AK = \"AccessKey\";\nvar _AKI = \"AccessKeyId\";\nvar _AKLU = \"AccessKeyLastUsed\";\nvar _AKM = \"AccessKeyMetadata\";\nvar _AMP = \"AttachedManagedPolicies\";\nvar _AN = \"ActionNames\";\nvar _ANc = \"ActionName\";\nvar _AP = \"AttachedPolicies\";\nvar _APK = \"AddPrivateKey\";\nvar _ARP = \"AttachRolePolicy\";\nvar _ARPD = \"AssumeRolePolicyDocument\";\nvar _ARTIP = \"AddRoleToInstanceProfile\";\nvar _AS = \"AssignmentStatus\";\nvar _AUP = \"AttachUserPolicy\";\nvar _AUTCP = \"AllowUsersToChangePassword\";\nvar _AUTG = \"AddUserToGroup\";\nvar _AWSSN = \"AWSServiceName\";\nvar _Ar = \"Arn\";\nvar _BSS = \"Base32StringSeed\";\nvar _C = \"Code\";\nvar _CA = \"CallerArn\";\nvar _CAA = \"CreateAccountAlias\";\nvar _CAK = \"CreateAccessKey\";\nvar _CB = \"CertificateBody\";\nvar _CC = \"CertificateChain\";\nvar _CD = \"CreateDate\";\nvar _CE = \"ContextEntries\";\nvar _CG = \"CreateGroup\";\nvar _CI = \"CertificateId\";\nvar _CID = \"ClientID\";\nvar _CIDL = \"ClientIDList\";\nvar _CIP = \"CreateInstanceProfile\";\nvar _CKN = \"ContextKeyName\";\nvar _CKNo = \"ContextKeyNames\";\nvar _CKT = \"ContextKeyType\";\nvar _CKV = \"ContextKeyValues\";\nvar _CLP = \"CreateLoginProfile\";\nvar _COIDCP = \"CreateOpenIDConnectProvider\";\nvar _CP = \"ChangePassword\";\nvar _CPV = \"CreatePolicyVersion\";\nvar _CPr = \"CreatePolicy\";\nvar _CR = \"CreateRole\";\nvar _CS = \"CustomSuffix\";\nvar _CSAMLP = \"CreateSAMLProvider\";\nvar _CSLR = \"CreateServiceLinkedRole\";\nvar _CSSC = \"CreateServiceSpecificCredential\";\nvar _CU = \"CreateUser\";\nvar _CVMFAD = \"CreateVirtualMFADevice\";\nvar _Ce = \"Certifications\";\nvar _Cer = \"Certificates\";\nvar _Cert = \"Certificate\";\nvar _Co = \"Content\";\nvar _Col = \"Column\";\nvar _D = \"Description\";\nvar _DAA = \"DeleteAccountAlias\";\nvar _DAK = \"DeleteAccessKey\";\nvar _DAPP = \"DeleteAccountPasswordPolicy\";\nvar _DG = \"DeleteGroup\";\nvar _DGP = \"DeleteGroupPolicy\";\nvar _DGPe = \"DetachGroupPolicy\";\nvar _DIP = \"DeleteInstanceProfile\";\nvar _DLP = \"DeleteLoginProfile\";\nvar _DMFAD = \"DeactivateMFADevice\";\nvar _DOIDCP = \"DeleteOpenIDConnectProvider\";\nvar _DORCM = \"DisableOrganizationsRootCredentialsManagement\";\nvar _DORS = \"DisableOrganizationsRootSessions\";\nvar _DP = \"DeletePolicy\";\nvar _DPV = \"DeletePolicyVersion\";\nvar _DR = \"DeleteRole\";\nvar _DRP = \"DeleteRolePolicy\";\nvar _DRPB = \"DeleteRolePermissionsBoundary\";\nvar _DRPe = \"DetachRolePolicy\";\nvar _DSAMLP = \"DeleteSAMLProvider\";\nvar _DSC = \"DeleteServerCertificate\";\nvar _DSCe = \"DeleteSigningCertificate\";\nvar _DSLR = \"DeleteServiceLinkedRole\";\nvar _DSSC = \"DeleteServiceSpecificCredential\";\nvar _DSSHPK = \"DeleteSSHPublicKey\";\nvar _DTI = \"DeletionTaskId\";\nvar _DU = \"DeleteUser\";\nvar _DUP = \"DeleteUserPolicy\";\nvar _DUPB = \"DeleteUserPermissionsBoundary\";\nvar _DUPe = \"DetachUserPolicy\";\nvar _DVI = \"DefaultVersionId\";\nvar _DVMFAD = \"DeleteVirtualMFADevice\";\nvar _Do = \"Document\";\nvar _E = \"Encoding\";\nvar _EAN = \"EvalActionName\";\nvar _ED = \"EvalDecision\";\nvar _EDD = \"EvalDecisionDetails\";\nvar _EDL = \"EntityDetailsList\";\nvar _EDn = \"EnableDate\";\nvar _EDr = \"ErrorDetails\";\nvar _EF = \"EntityFilter\";\nvar _EFn = \"EnabledFeatures\";\nvar _EI = \"EntityInfo\";\nvar _EMFAD = \"EnableMFADevice\";\nvar _EN = \"EntityName\";\nvar _EORCM = \"EnableOrganizationsRootCredentialsManagement\";\nvar _EORS = \"EnableOrganizationsRootSessions\";\nvar _EP = \"EntityPath\";\nvar _EPn = \"EndPosition\";\nvar _EPx = \"ExpirePasswords\";\nvar _ER = \"EvaluationResults\";\nvar _ERD = \"EvalResourceDecision\";\nvar _ERN = \"EvalResourceName\";\nvar _ET = \"EntityType\";\nvar _Er = \"Error\";\nvar _Ex = \"Expiration\";\nvar _F = \"Filter\";\nvar _Fi = \"Fingerprint\";\nvar _G = \"Granularity\";\nvar _GAAD = \"GetAccountAuthorizationDetails\";\nvar _GAKLU = \"GetAccessKeyLastUsed\";\nvar _GAPP = \"GetAccountPasswordPolicy\";\nvar _GAS = \"GetAccountSummary\";\nvar _GCKFCP = \"GetContextKeysForCustomPolicy\";\nvar _GCKFPP = \"GetContextKeysForPrincipalPolicy\";\nvar _GCR = \"GenerateCredentialReport\";\nvar _GCRe = \"GetCredentialReport\";\nvar _GDL = \"GroupDetailList\";\nvar _GETV = \"GlobalEndpointTokenVersion\";\nvar _GG = \"GetGroup\";\nvar _GGP = \"GetGroupPolicy\";\nvar _GI = \"GroupId\";\nvar _GIP = \"GetInstanceProfile\";\nvar _GL = \"GroupList\";\nvar _GLP = \"GetLoginProfile\";\nvar _GMFAD = \"GetMFADevice\";\nvar _GN = \"GroupName\";\nvar _GOAR = \"GenerateOrganizationsAccessReport\";\nvar _GOARe = \"GetOrganizationsAccessReport\";\nvar _GOIDCP = \"GetOpenIDConnectProvider\";\nvar _GP = \"GetPolicy\";\nvar _GPL = \"GroupPolicyList\";\nvar _GPV = \"GetPolicyVersion\";\nvar _GR = \"GetRole\";\nvar _GRP = \"GetRolePolicy\";\nvar _GSAMLP = \"GetSAMLProvider\";\nvar _GSC = \"GetServerCertificate\";\nvar _GSLAD = \"GenerateServiceLastAccessedDetails\";\nvar _GSLADWE = \"GetServiceLastAccessedDetailsWithEntities\";\nvar _GSLADe = \"GetServiceLastAccessedDetails\";\nvar _GSLRDS = \"GetServiceLinkedRoleDeletionStatus\";\nvar _GSSHPK = \"GetSSHPublicKey\";\nvar _GT = \"GeneratedTime\";\nvar _GU = \"GetUser\";\nvar _GUP = \"GetUserPolicy\";\nvar _Gr = \"Group\";\nvar _Gro = \"Groups\";\nvar _HE = \"HardExpiry\";\nvar _I = \"Id\";\nvar _IA = \"IsAttachable\";\nvar _IDV = \"IsDefaultVersion\";\nvar _IP = \"InstanceProfile\";\nvar _IPI = \"InstanceProfileId\";\nvar _IPL = \"InstanceProfileList\";\nvar _IPN = \"InstanceProfileName\";\nvar _IPn = \"InstanceProfiles\";\nvar _IT = \"IsTruncated\";\nvar _JCD = \"JobCreationDate\";\nvar _JCDo = \"JobCompletionDate\";\nvar _JI = \"JobId\";\nvar _JS = \"JobStatus\";\nvar _JT = \"JobType\";\nvar _K = \"Key\";\nvar _KI = \"KeyId\";\nvar _L = \"Line\";\nvar _LA = \"LastAuthenticated\";\nvar _LAA = \"ListAccountAliases\";\nvar _LAE = \"LastAuthenticatedEntity\";\nvar _LAEa = \"LastAccessedEntity\";\nvar _LAGP = \"ListAttachedGroupPolicies\";\nvar _LAK = \"ListAccessKeys\";\nvar _LAR = \"LastAuthenticatedRegion\";\nvar _LARP = \"ListAttachedRolePolicies\";\nvar _LARa = \"LastAccessedRegion\";\nvar _LAT = \"LastAuthenticatedTime\";\nvar _LATa = \"LastAccessedTime\";\nvar _LAUP = \"ListAttachedUserPolicies\";\nvar _LEFP = \"ListEntitiesForPolicy\";\nvar _LG = \"ListGroups\";\nvar _LGFU = \"ListGroupsForUser\";\nvar _LGP = \"ListGroupPolicies\";\nvar _LIP = \"ListInstanceProfiles\";\nvar _LIPFR = \"ListInstanceProfilesForRole\";\nvar _LIPT = \"ListInstanceProfileTags\";\nvar _LMFAD = \"ListMFADevices\";\nvar _LMFADT = \"ListMFADeviceTags\";\nvar _LOF = \"ListOrganizationsFeatures\";\nvar _LOIDCP = \"ListOpenIDConnectProviders\";\nvar _LOIDCPT = \"ListOpenIDConnectProviderTags\";\nvar _LP = \"ListPolicies\";\nvar _LPGSA = \"ListPoliciesGrantingServiceAccess\";\nvar _LPT = \"ListPolicyTags\";\nvar _LPV = \"ListPolicyVersions\";\nvar _LPo = \"LoginProfile\";\nvar _LR = \"ListRoles\";\nvar _LRP = \"ListRolePolicies\";\nvar _LRT = \"ListRoleTags\";\nvar _LSAMLP = \"ListSAMLProviders\";\nvar _LSAMLPT = \"ListSAMLProviderTags\";\nvar _LSC = \"ListServerCertificates\";\nvar _LSCT = \"ListServerCertificateTags\";\nvar _LSCi = \"ListSigningCertificates\";\nvar _LSSC = \"ListServiceSpecificCredentials\";\nvar _LSSHPK = \"ListSSHPublicKeys\";\nvar _LU = \"ListUsers\";\nvar _LUD = \"LastUsedDate\";\nvar _LUP = \"ListUserPolicies\";\nvar _LUT = \"ListUserTags\";\nvar _LVMFAD = \"ListVirtualMFADevices\";\nvar _M = \"Marker\";\nvar _MCV = \"MissingContextValues\";\nvar _MFAD = \"MFADevices\";\nvar _MI = \"MaxItems\";\nvar _MPA = \"MaxPasswordAge\";\nvar _MPL = \"MinimumPasswordLength\";\nvar _MS = \"MatchedStatements\";\nvar _MSD = \"MaxSessionDuration\";\nvar _Me = \"Message\";\nvar _N = \"Name\";\nvar _NGN = \"NewGroupName\";\nvar _NOSA = \"NumberOfServicesAccessible\";\nvar _NOSNA = \"NumberOfServicesNotAccessed\";\nvar _NP = \"NewPassword\";\nvar _NPe = \"NewPath\";\nvar _NSCN = \"NewServerCertificateName\";\nvar _NUN = \"NewUserName\";\nvar _OA = \"OnlyAttached\";\nvar _ODD = \"OrganizationsDecisionDetail\";\nvar _OI = \"OrganizationId\";\nvar _OIDCPA = \"OpenIDConnectProviderArn\";\nvar _OIDCPL = \"OpenIDConnectProviderList\";\nvar _OP = \"OldPassword\";\nvar _OPI = \"OrganizationsPolicyId\";\nvar _P = \"Path\";\nvar _PA = \"PolicyArn\";\nvar _PB = \"PermissionsBoundary\";\nvar _PBA = \"PermissionsBoundaryArn\";\nvar _PBDD = \"PermissionsBoundaryDecisionDetail\";\nvar _PBPIL = \"PermissionsBoundaryPolicyInputList\";\nvar _PBT = \"PermissionsBoundaryType\";\nvar _PBUC = \"PermissionsBoundaryUsageCount\";\nvar _PD = \"PolicyDocument\";\nvar _PG = \"PolicyGroups\";\nvar _PGP = \"PutGroupPolicy\";\nvar _PGSA = \"PoliciesGrantingServiceAccess\";\nvar _PI = \"PolicyId\";\nvar _PIL = \"PolicyInputList\";\nvar _PK = \"PrivateKey\";\nvar _PKL = \"PrivateKeyList\";\nvar _PLU = \"PasswordLastUsed\";\nvar _PN = \"PolicyName\";\nvar _PNo = \"PolicyNames\";\nvar _PP = \"PathPrefix\";\nvar _PPa = \"PasswordPolicy\";\nvar _PR = \"PolicyRoles\";\nvar _PRP = \"PutRolePolicy\";\nvar _PRPB = \"PutRolePermissionsBoundary\";\nvar _PRPa = \"PasswordReusePrevention\";\nvar _PRR = \"PasswordResetRequired\";\nvar _PSA = \"PolicySourceArn\";\nvar _PT = \"PolicyType\";\nvar _PU = \"PolicyUsers\";\nvar _PUF = \"PolicyUsageFilter\";\nvar _PUP = \"PutUserPolicy\";\nvar _PUPB = \"PutUserPermissionsBoundary\";\nvar _PV = \"PolicyVersion\";\nvar _PVL = \"PolicyVersionList\";\nvar _Pa = \"Password\";\nvar _Po = \"Policy\";\nvar _Pol = \"Policies\";\nvar _QRCPNG = \"QRCodePNG\";\nvar _R = \"Region\";\nvar _RA = \"ResourceArns\";\nvar _RCIDFOIDCP = \"RemoveClientIDFromOpenIDConnectProvider\";\nvar _RDL = \"RoleDetailList\";\nvar _RF = \"ReportFormat\";\nvar _RHO = \"ResourceHandlingOption\";\nvar _RI = \"RoleId\";\nvar _RLC = \"RequireLowercaseCharacters\";\nvar _RLU = \"RoleLastUsed\";\nvar _RMFAD = \"ResyncMFADevice\";\nvar _RN = \"RoleName\";\nvar _RNe = \"RequireNumbers\";\nvar _RO = \"ResourceOwner\";\nvar _RP = \"ResourcePolicy\";\nvar _RPK = \"RemovePrivateKey\";\nvar _RPL = \"RolePolicyList\";\nvar _RRFIP = \"RemoveRoleFromInstanceProfile\";\nvar _RS = \"RequireSymbols\";\nvar _RSR = \"ResourceSpecificResults\";\nvar _RSSC = \"ResetServiceSpecificCredential\";\nvar _RUC = \"RequireUppercaseCharacters\";\nvar _RUFG = \"RemoveUserFromGroup\";\nvar _RUL = \"RoleUsageList\";\nvar _Re = \"Reason\";\nvar _Res = \"Resources\";\nvar _Ro = \"Role\";\nvar _Rol = \"Roles\";\nvar _S = \"Scope\";\nvar _SAD = \"SetAsDefault\";\nvar _SAK = \"SecretAccessKey\";\nvar _SAMLMD = \"SAMLMetadataDocument\";\nvar _SAMLPA = \"SAMLProviderArn\";\nvar _SAMLPL = \"SAMLProviderList\";\nvar _SAMLPUUID = \"SAMLProviderUUID\";\nvar _SC = \"ServerCertificate\";\nvar _SCI = \"ServerCertificateId\";\nvar _SCM = \"ServerCertificateMetadata\";\nvar _SCML = \"ServerCertificateMetadataList\";\nvar _SCN = \"ServerCertificateName\";\nvar _SCP = \"SimulateCustomPolicy\";\nvar _SDPV = \"SetDefaultPolicyVersion\";\nvar _SK = \"SortKey\";\nvar _SLA = \"ServicesLastAccessed\";\nvar _SM = \"SummaryMap\";\nvar _SN = \"ServiceName\";\nvar _SNe = \"SerialNumber\";\nvar _SNer = \"ServiceNamespace\";\nvar _SNerv = \"ServiceNamespaces\";\nvar _SP = \"ServicePassword\";\nvar _SPI = \"SourcePolicyId\";\nvar _SPP = \"SimulatePrincipalPolicy\";\nvar _SPT = \"SourcePolicyType\";\nvar _SPt = \"StartPosition\";\nvar _SSC = \"ServiceSpecificCredential\";\nvar _SSCI = \"ServiceSpecificCredentialId\";\nvar _SSCe = \"ServiceSpecificCredentials\";\nvar _SSHPK = \"SSHPublicKey\";\nvar _SSHPKB = \"SSHPublicKeyBody\";\nvar _SSHPKI = \"SSHPublicKeyId\";\nvar _SSHPKu = \"SSHPublicKeys\";\nvar _SSTSP = \"SetSecurityTokenServicePreferences\";\nvar _SUN = \"ServiceUserName\";\nvar _St = \"Status\";\nvar _Sta = \"State\";\nvar _T = \"Tags\";\nvar _TAE = \"TotalAuthenticatedEntities\";\nvar _TALA = \"TrackedActionsLastAccessed\";\nvar _TIP = \"TagInstanceProfile\";\nvar _TK = \"TagKeys\";\nvar _TL = \"ThumbprintList\";\nvar _TMFAD = \"TagMFADevice\";\nvar _TOIDCP = \"TagOpenIDConnectProvider\";\nvar _TP = \"TagPolicy\";\nvar _TR = \"TagRole\";\nvar _TSAMLP = \"TagSAMLProvider\";\nvar _TSC = \"TagServerCertificate\";\nvar _TU = \"TagUser\";\nvar _Ti = \"Timestamp\";\nvar _Ty = \"Type\";\nvar _U = \"Url\";\nvar _UAK = \"UpdateAccessKey\";\nvar _UAPP = \"UpdateAccountPasswordPolicy\";\nvar _UARP = \"UpdateAssumeRolePolicy\";\nvar _UD = \"UpdateDate\";\nvar _UDL = \"UserDetailList\";\nvar _UDp = \"UploadDate\";\nvar _UG = \"UpdateGroup\";\nvar _UI = \"UserId\";\nvar _UIP = \"UntagInstanceProfile\";\nvar _ULP = \"UpdateLoginProfile\";\nvar _UMFAD = \"UntagMFADevice\";\nvar _UN = \"UserName\";\nvar _UOIDCP = \"UntagOpenIDConnectProvider\";\nvar _UOIDCPT = \"UpdateOpenIDConnectProviderThumbprint\";\nvar _UP = \"UntagPolicy\";\nvar _UPL = \"UserPolicyList\";\nvar _UR = \"UntagRole\";\nvar _URD = \"UpdateRoleDescription\";\nvar _URp = \"UpdateRole\";\nvar _USAMLP = \"UntagSAMLProvider\";\nvar _USAMLPp = \"UpdateSAMLProvider\";\nvar _USC = \"UntagServerCertificate\";\nvar _USCp = \"UpdateServerCertificate\";\nvar _USCpd = \"UpdateSigningCertificate\";\nvar _USCpl = \"UploadServerCertificate\";\nvar _USCplo = \"UploadSigningCertificate\";\nvar _USSC = \"UpdateServiceSpecificCredential\";\nvar _USSHPK = \"UpdateSSHPublicKey\";\nvar _USSHPKp = \"UploadSSHPublicKey\";\nvar _UU = \"UntagUser\";\nvar _UUp = \"UpdateUser\";\nvar _Us = \"User\";\nvar _Use = \"Users\";\nvar _V = \"Version\";\nvar _VI = \"VersionId\";\nvar _VMFAD = \"VirtualMFADevice\";\nvar _VMFADN = \"VirtualMFADeviceName\";\nvar _VMFADi = \"VirtualMFADevices\";\nvar _VU = \"ValidUntil\";\nvar _Va = \"Value\";\nvar _Ve = \"Versions\";\nvar _e = \"entry\";\nvar _m = \"message\";\nvar _me = \"member\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/commands/AddClientIDToOpenIDConnectProviderCommand.ts\nvar AddClientIDToOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AddClientIDToOpenIDConnectProvider\", {}).n(\"IAMClient\", \"AddClientIDToOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_AddClientIDToOpenIDConnectProviderCommand).de(de_AddClientIDToOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"AddClientIDToOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/AddRoleToInstanceProfileCommand.ts\n\n\n\nvar AddRoleToInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AddRoleToInstanceProfile\", {}).n(\"IAMClient\", \"AddRoleToInstanceProfileCommand\").f(void 0, void 0).ser(se_AddRoleToInstanceProfileCommand).de(de_AddRoleToInstanceProfileCommand).build() {\n static {\n __name(this, \"AddRoleToInstanceProfileCommand\");\n }\n};\n\n// src/commands/AddUserToGroupCommand.ts\n\n\n\nvar AddUserToGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AddUserToGroup\", {}).n(\"IAMClient\", \"AddUserToGroupCommand\").f(void 0, void 0).ser(se_AddUserToGroupCommand).de(de_AddUserToGroupCommand).build() {\n static {\n __name(this, \"AddUserToGroupCommand\");\n }\n};\n\n// src/commands/AttachGroupPolicyCommand.ts\n\n\n\nvar AttachGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AttachGroupPolicy\", {}).n(\"IAMClient\", \"AttachGroupPolicyCommand\").f(void 0, void 0).ser(se_AttachGroupPolicyCommand).de(de_AttachGroupPolicyCommand).build() {\n static {\n __name(this, \"AttachGroupPolicyCommand\");\n }\n};\n\n// src/commands/AttachRolePolicyCommand.ts\n\n\n\nvar AttachRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AttachRolePolicy\", {}).n(\"IAMClient\", \"AttachRolePolicyCommand\").f(void 0, void 0).ser(se_AttachRolePolicyCommand).de(de_AttachRolePolicyCommand).build() {\n static {\n __name(this, \"AttachRolePolicyCommand\");\n }\n};\n\n// src/commands/AttachUserPolicyCommand.ts\n\n\n\nvar AttachUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"AttachUserPolicy\", {}).n(\"IAMClient\", \"AttachUserPolicyCommand\").f(void 0, void 0).ser(se_AttachUserPolicyCommand).de(de_AttachUserPolicyCommand).build() {\n static {\n __name(this, \"AttachUserPolicyCommand\");\n }\n};\n\n// src/commands/ChangePasswordCommand.ts\n\n\n\nvar ChangePasswordCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ChangePassword\", {}).n(\"IAMClient\", \"ChangePasswordCommand\").f(ChangePasswordRequestFilterSensitiveLog, void 0).ser(se_ChangePasswordCommand).de(de_ChangePasswordCommand).build() {\n static {\n __name(this, \"ChangePasswordCommand\");\n }\n};\n\n// src/commands/CreateAccessKeyCommand.ts\n\n\n\nvar CreateAccessKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateAccessKey\", {}).n(\"IAMClient\", \"CreateAccessKeyCommand\").f(void 0, CreateAccessKeyResponseFilterSensitiveLog).ser(se_CreateAccessKeyCommand).de(de_CreateAccessKeyCommand).build() {\n static {\n __name(this, \"CreateAccessKeyCommand\");\n }\n};\n\n// src/commands/CreateAccountAliasCommand.ts\n\n\n\nvar CreateAccountAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateAccountAlias\", {}).n(\"IAMClient\", \"CreateAccountAliasCommand\").f(void 0, void 0).ser(se_CreateAccountAliasCommand).de(de_CreateAccountAliasCommand).build() {\n static {\n __name(this, \"CreateAccountAliasCommand\");\n }\n};\n\n// src/commands/CreateGroupCommand.ts\n\n\n\nvar CreateGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateGroup\", {}).n(\"IAMClient\", \"CreateGroupCommand\").f(void 0, void 0).ser(se_CreateGroupCommand).de(de_CreateGroupCommand).build() {\n static {\n __name(this, \"CreateGroupCommand\");\n }\n};\n\n// src/commands/CreateInstanceProfileCommand.ts\n\n\n\nvar CreateInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateInstanceProfile\", {}).n(\"IAMClient\", \"CreateInstanceProfileCommand\").f(void 0, void 0).ser(se_CreateInstanceProfileCommand).de(de_CreateInstanceProfileCommand).build() {\n static {\n __name(this, \"CreateInstanceProfileCommand\");\n }\n};\n\n// src/commands/CreateLoginProfileCommand.ts\n\n\n\nvar CreateLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateLoginProfile\", {}).n(\"IAMClient\", \"CreateLoginProfileCommand\").f(CreateLoginProfileRequestFilterSensitiveLog, void 0).ser(se_CreateLoginProfileCommand).de(de_CreateLoginProfileCommand).build() {\n static {\n __name(this, \"CreateLoginProfileCommand\");\n }\n};\n\n// src/commands/CreateOpenIDConnectProviderCommand.ts\n\n\n\nvar CreateOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateOpenIDConnectProvider\", {}).n(\"IAMClient\", \"CreateOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_CreateOpenIDConnectProviderCommand).de(de_CreateOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"CreateOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/CreatePolicyCommand.ts\n\n\n\nvar CreatePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreatePolicy\", {}).n(\"IAMClient\", \"CreatePolicyCommand\").f(void 0, void 0).ser(se_CreatePolicyCommand).de(de_CreatePolicyCommand).build() {\n static {\n __name(this, \"CreatePolicyCommand\");\n }\n};\n\n// src/commands/CreatePolicyVersionCommand.ts\n\n\n\nvar CreatePolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreatePolicyVersion\", {}).n(\"IAMClient\", \"CreatePolicyVersionCommand\").f(void 0, void 0).ser(se_CreatePolicyVersionCommand).de(de_CreatePolicyVersionCommand).build() {\n static {\n __name(this, \"CreatePolicyVersionCommand\");\n }\n};\n\n// src/commands/CreateRoleCommand.ts\n\n\n\nvar CreateRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateRole\", {}).n(\"IAMClient\", \"CreateRoleCommand\").f(void 0, void 0).ser(se_CreateRoleCommand).de(de_CreateRoleCommand).build() {\n static {\n __name(this, \"CreateRoleCommand\");\n }\n};\n\n// src/commands/CreateSAMLProviderCommand.ts\n\n\n\nvar CreateSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateSAMLProvider\", {}).n(\"IAMClient\", \"CreateSAMLProviderCommand\").f(CreateSAMLProviderRequestFilterSensitiveLog, void 0).ser(se_CreateSAMLProviderCommand).de(de_CreateSAMLProviderCommand).build() {\n static {\n __name(this, \"CreateSAMLProviderCommand\");\n }\n};\n\n// src/commands/CreateServiceLinkedRoleCommand.ts\n\n\n\nvar CreateServiceLinkedRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateServiceLinkedRole\", {}).n(\"IAMClient\", \"CreateServiceLinkedRoleCommand\").f(void 0, void 0).ser(se_CreateServiceLinkedRoleCommand).de(de_CreateServiceLinkedRoleCommand).build() {\n static {\n __name(this, \"CreateServiceLinkedRoleCommand\");\n }\n};\n\n// src/commands/CreateServiceSpecificCredentialCommand.ts\n\n\n\nvar CreateServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateServiceSpecificCredential\", {}).n(\"IAMClient\", \"CreateServiceSpecificCredentialCommand\").f(void 0, CreateServiceSpecificCredentialResponseFilterSensitiveLog).ser(se_CreateServiceSpecificCredentialCommand).de(de_CreateServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"CreateServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/CreateUserCommand.ts\n\n\n\nvar CreateUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateUser\", {}).n(\"IAMClient\", \"CreateUserCommand\").f(void 0, void 0).ser(se_CreateUserCommand).de(de_CreateUserCommand).build() {\n static {\n __name(this, \"CreateUserCommand\");\n }\n};\n\n// src/commands/CreateVirtualMFADeviceCommand.ts\n\n\n\nvar CreateVirtualMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"CreateVirtualMFADevice\", {}).n(\"IAMClient\", \"CreateVirtualMFADeviceCommand\").f(void 0, CreateVirtualMFADeviceResponseFilterSensitiveLog).ser(se_CreateVirtualMFADeviceCommand).de(de_CreateVirtualMFADeviceCommand).build() {\n static {\n __name(this, \"CreateVirtualMFADeviceCommand\");\n }\n};\n\n// src/commands/DeactivateMFADeviceCommand.ts\n\n\n\nvar DeactivateMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeactivateMFADevice\", {}).n(\"IAMClient\", \"DeactivateMFADeviceCommand\").f(void 0, void 0).ser(se_DeactivateMFADeviceCommand).de(de_DeactivateMFADeviceCommand).build() {\n static {\n __name(this, \"DeactivateMFADeviceCommand\");\n }\n};\n\n// src/commands/DeleteAccessKeyCommand.ts\n\n\n\nvar DeleteAccessKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteAccessKey\", {}).n(\"IAMClient\", \"DeleteAccessKeyCommand\").f(void 0, void 0).ser(se_DeleteAccessKeyCommand).de(de_DeleteAccessKeyCommand).build() {\n static {\n __name(this, \"DeleteAccessKeyCommand\");\n }\n};\n\n// src/commands/DeleteAccountAliasCommand.ts\n\n\n\nvar DeleteAccountAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteAccountAlias\", {}).n(\"IAMClient\", \"DeleteAccountAliasCommand\").f(void 0, void 0).ser(se_DeleteAccountAliasCommand).de(de_DeleteAccountAliasCommand).build() {\n static {\n __name(this, \"DeleteAccountAliasCommand\");\n }\n};\n\n// src/commands/DeleteAccountPasswordPolicyCommand.ts\n\n\n\nvar DeleteAccountPasswordPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteAccountPasswordPolicy\", {}).n(\"IAMClient\", \"DeleteAccountPasswordPolicyCommand\").f(void 0, void 0).ser(se_DeleteAccountPasswordPolicyCommand).de(de_DeleteAccountPasswordPolicyCommand).build() {\n static {\n __name(this, \"DeleteAccountPasswordPolicyCommand\");\n }\n};\n\n// src/commands/DeleteGroupCommand.ts\n\n\n\nvar DeleteGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteGroup\", {}).n(\"IAMClient\", \"DeleteGroupCommand\").f(void 0, void 0).ser(se_DeleteGroupCommand).de(de_DeleteGroupCommand).build() {\n static {\n __name(this, \"DeleteGroupCommand\");\n }\n};\n\n// src/commands/DeleteGroupPolicyCommand.ts\n\n\n\nvar DeleteGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteGroupPolicy\", {}).n(\"IAMClient\", \"DeleteGroupPolicyCommand\").f(void 0, void 0).ser(se_DeleteGroupPolicyCommand).de(de_DeleteGroupPolicyCommand).build() {\n static {\n __name(this, \"DeleteGroupPolicyCommand\");\n }\n};\n\n// src/commands/DeleteInstanceProfileCommand.ts\n\n\n\nvar DeleteInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteInstanceProfile\", {}).n(\"IAMClient\", \"DeleteInstanceProfileCommand\").f(void 0, void 0).ser(se_DeleteInstanceProfileCommand).de(de_DeleteInstanceProfileCommand).build() {\n static {\n __name(this, \"DeleteInstanceProfileCommand\");\n }\n};\n\n// src/commands/DeleteLoginProfileCommand.ts\n\n\n\nvar DeleteLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteLoginProfile\", {}).n(\"IAMClient\", \"DeleteLoginProfileCommand\").f(void 0, void 0).ser(se_DeleteLoginProfileCommand).de(de_DeleteLoginProfileCommand).build() {\n static {\n __name(this, \"DeleteLoginProfileCommand\");\n }\n};\n\n// src/commands/DeleteOpenIDConnectProviderCommand.ts\n\n\n\nvar DeleteOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteOpenIDConnectProvider\", {}).n(\"IAMClient\", \"DeleteOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_DeleteOpenIDConnectProviderCommand).de(de_DeleteOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"DeleteOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/DeletePolicyCommand.ts\n\n\n\nvar DeletePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeletePolicy\", {}).n(\"IAMClient\", \"DeletePolicyCommand\").f(void 0, void 0).ser(se_DeletePolicyCommand).de(de_DeletePolicyCommand).build() {\n static {\n __name(this, \"DeletePolicyCommand\");\n }\n};\n\n// src/commands/DeletePolicyVersionCommand.ts\n\n\n\nvar DeletePolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeletePolicyVersion\", {}).n(\"IAMClient\", \"DeletePolicyVersionCommand\").f(void 0, void 0).ser(se_DeletePolicyVersionCommand).de(de_DeletePolicyVersionCommand).build() {\n static {\n __name(this, \"DeletePolicyVersionCommand\");\n }\n};\n\n// src/commands/DeleteRoleCommand.ts\n\n\n\nvar DeleteRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteRole\", {}).n(\"IAMClient\", \"DeleteRoleCommand\").f(void 0, void 0).ser(se_DeleteRoleCommand).de(de_DeleteRoleCommand).build() {\n static {\n __name(this, \"DeleteRoleCommand\");\n }\n};\n\n// src/commands/DeleteRolePermissionsBoundaryCommand.ts\n\n\n\nvar DeleteRolePermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteRolePermissionsBoundary\", {}).n(\"IAMClient\", \"DeleteRolePermissionsBoundaryCommand\").f(void 0, void 0).ser(se_DeleteRolePermissionsBoundaryCommand).de(de_DeleteRolePermissionsBoundaryCommand).build() {\n static {\n __name(this, \"DeleteRolePermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/DeleteRolePolicyCommand.ts\n\n\n\nvar DeleteRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteRolePolicy\", {}).n(\"IAMClient\", \"DeleteRolePolicyCommand\").f(void 0, void 0).ser(se_DeleteRolePolicyCommand).de(de_DeleteRolePolicyCommand).build() {\n static {\n __name(this, \"DeleteRolePolicyCommand\");\n }\n};\n\n// src/commands/DeleteSAMLProviderCommand.ts\n\n\n\nvar DeleteSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteSAMLProvider\", {}).n(\"IAMClient\", \"DeleteSAMLProviderCommand\").f(void 0, void 0).ser(se_DeleteSAMLProviderCommand).de(de_DeleteSAMLProviderCommand).build() {\n static {\n __name(this, \"DeleteSAMLProviderCommand\");\n }\n};\n\n// src/commands/DeleteServerCertificateCommand.ts\n\n\n\nvar DeleteServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteServerCertificate\", {}).n(\"IAMClient\", \"DeleteServerCertificateCommand\").f(void 0, void 0).ser(se_DeleteServerCertificateCommand).de(de_DeleteServerCertificateCommand).build() {\n static {\n __name(this, \"DeleteServerCertificateCommand\");\n }\n};\n\n// src/commands/DeleteServiceLinkedRoleCommand.ts\n\n\n\nvar DeleteServiceLinkedRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteServiceLinkedRole\", {}).n(\"IAMClient\", \"DeleteServiceLinkedRoleCommand\").f(void 0, void 0).ser(se_DeleteServiceLinkedRoleCommand).de(de_DeleteServiceLinkedRoleCommand).build() {\n static {\n __name(this, \"DeleteServiceLinkedRoleCommand\");\n }\n};\n\n// src/commands/DeleteServiceSpecificCredentialCommand.ts\n\n\n\nvar DeleteServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteServiceSpecificCredential\", {}).n(\"IAMClient\", \"DeleteServiceSpecificCredentialCommand\").f(void 0, void 0).ser(se_DeleteServiceSpecificCredentialCommand).de(de_DeleteServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"DeleteServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/DeleteSigningCertificateCommand.ts\n\n\n\nvar DeleteSigningCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteSigningCertificate\", {}).n(\"IAMClient\", \"DeleteSigningCertificateCommand\").f(void 0, void 0).ser(se_DeleteSigningCertificateCommand).de(de_DeleteSigningCertificateCommand).build() {\n static {\n __name(this, \"DeleteSigningCertificateCommand\");\n }\n};\n\n// src/commands/DeleteSSHPublicKeyCommand.ts\n\n\n\nvar DeleteSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteSSHPublicKey\", {}).n(\"IAMClient\", \"DeleteSSHPublicKeyCommand\").f(void 0, void 0).ser(se_DeleteSSHPublicKeyCommand).de(de_DeleteSSHPublicKeyCommand).build() {\n static {\n __name(this, \"DeleteSSHPublicKeyCommand\");\n }\n};\n\n// src/commands/DeleteUserCommand.ts\n\n\n\nvar DeleteUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteUser\", {}).n(\"IAMClient\", \"DeleteUserCommand\").f(void 0, void 0).ser(se_DeleteUserCommand).de(de_DeleteUserCommand).build() {\n static {\n __name(this, \"DeleteUserCommand\");\n }\n};\n\n// src/commands/DeleteUserPermissionsBoundaryCommand.ts\n\n\n\nvar DeleteUserPermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteUserPermissionsBoundary\", {}).n(\"IAMClient\", \"DeleteUserPermissionsBoundaryCommand\").f(void 0, void 0).ser(se_DeleteUserPermissionsBoundaryCommand).de(de_DeleteUserPermissionsBoundaryCommand).build() {\n static {\n __name(this, \"DeleteUserPermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/DeleteUserPolicyCommand.ts\n\n\n\nvar DeleteUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteUserPolicy\", {}).n(\"IAMClient\", \"DeleteUserPolicyCommand\").f(void 0, void 0).ser(se_DeleteUserPolicyCommand).de(de_DeleteUserPolicyCommand).build() {\n static {\n __name(this, \"DeleteUserPolicyCommand\");\n }\n};\n\n// src/commands/DeleteVirtualMFADeviceCommand.ts\n\n\n\nvar DeleteVirtualMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DeleteVirtualMFADevice\", {}).n(\"IAMClient\", \"DeleteVirtualMFADeviceCommand\").f(void 0, void 0).ser(se_DeleteVirtualMFADeviceCommand).de(de_DeleteVirtualMFADeviceCommand).build() {\n static {\n __name(this, \"DeleteVirtualMFADeviceCommand\");\n }\n};\n\n// src/commands/DetachGroupPolicyCommand.ts\n\n\n\nvar DetachGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DetachGroupPolicy\", {}).n(\"IAMClient\", \"DetachGroupPolicyCommand\").f(void 0, void 0).ser(se_DetachGroupPolicyCommand).de(de_DetachGroupPolicyCommand).build() {\n static {\n __name(this, \"DetachGroupPolicyCommand\");\n }\n};\n\n// src/commands/DetachRolePolicyCommand.ts\n\n\n\nvar DetachRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DetachRolePolicy\", {}).n(\"IAMClient\", \"DetachRolePolicyCommand\").f(void 0, void 0).ser(se_DetachRolePolicyCommand).de(de_DetachRolePolicyCommand).build() {\n static {\n __name(this, \"DetachRolePolicyCommand\");\n }\n};\n\n// src/commands/DetachUserPolicyCommand.ts\n\n\n\nvar DetachUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DetachUserPolicy\", {}).n(\"IAMClient\", \"DetachUserPolicyCommand\").f(void 0, void 0).ser(se_DetachUserPolicyCommand).de(de_DetachUserPolicyCommand).build() {\n static {\n __name(this, \"DetachUserPolicyCommand\");\n }\n};\n\n// src/commands/DisableOrganizationsRootCredentialsManagementCommand.ts\n\n\n\nvar DisableOrganizationsRootCredentialsManagementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DisableOrganizationsRootCredentialsManagement\", {}).n(\"IAMClient\", \"DisableOrganizationsRootCredentialsManagementCommand\").f(void 0, void 0).ser(se_DisableOrganizationsRootCredentialsManagementCommand).de(de_DisableOrganizationsRootCredentialsManagementCommand).build() {\n static {\n __name(this, \"DisableOrganizationsRootCredentialsManagementCommand\");\n }\n};\n\n// src/commands/DisableOrganizationsRootSessionsCommand.ts\n\n\n\nvar DisableOrganizationsRootSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"DisableOrganizationsRootSessions\", {}).n(\"IAMClient\", \"DisableOrganizationsRootSessionsCommand\").f(void 0, void 0).ser(se_DisableOrganizationsRootSessionsCommand).de(de_DisableOrganizationsRootSessionsCommand).build() {\n static {\n __name(this, \"DisableOrganizationsRootSessionsCommand\");\n }\n};\n\n// src/commands/EnableMFADeviceCommand.ts\n\n\n\nvar EnableMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"EnableMFADevice\", {}).n(\"IAMClient\", \"EnableMFADeviceCommand\").f(void 0, void 0).ser(se_EnableMFADeviceCommand).de(de_EnableMFADeviceCommand).build() {\n static {\n __name(this, \"EnableMFADeviceCommand\");\n }\n};\n\n// src/commands/EnableOrganizationsRootCredentialsManagementCommand.ts\n\n\n\nvar EnableOrganizationsRootCredentialsManagementCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"EnableOrganizationsRootCredentialsManagement\", {}).n(\"IAMClient\", \"EnableOrganizationsRootCredentialsManagementCommand\").f(void 0, void 0).ser(se_EnableOrganizationsRootCredentialsManagementCommand).de(de_EnableOrganizationsRootCredentialsManagementCommand).build() {\n static {\n __name(this, \"EnableOrganizationsRootCredentialsManagementCommand\");\n }\n};\n\n// src/commands/EnableOrganizationsRootSessionsCommand.ts\n\n\n\nvar EnableOrganizationsRootSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"EnableOrganizationsRootSessions\", {}).n(\"IAMClient\", \"EnableOrganizationsRootSessionsCommand\").f(void 0, void 0).ser(se_EnableOrganizationsRootSessionsCommand).de(de_EnableOrganizationsRootSessionsCommand).build() {\n static {\n __name(this, \"EnableOrganizationsRootSessionsCommand\");\n }\n};\n\n// src/commands/GenerateCredentialReportCommand.ts\n\n\n\nvar GenerateCredentialReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GenerateCredentialReport\", {}).n(\"IAMClient\", \"GenerateCredentialReportCommand\").f(void 0, void 0).ser(se_GenerateCredentialReportCommand).de(de_GenerateCredentialReportCommand).build() {\n static {\n __name(this, \"GenerateCredentialReportCommand\");\n }\n};\n\n// src/commands/GenerateOrganizationsAccessReportCommand.ts\n\n\n\nvar GenerateOrganizationsAccessReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GenerateOrganizationsAccessReport\", {}).n(\"IAMClient\", \"GenerateOrganizationsAccessReportCommand\").f(void 0, void 0).ser(se_GenerateOrganizationsAccessReportCommand).de(de_GenerateOrganizationsAccessReportCommand).build() {\n static {\n __name(this, \"GenerateOrganizationsAccessReportCommand\");\n }\n};\n\n// src/commands/GenerateServiceLastAccessedDetailsCommand.ts\n\n\n\nvar GenerateServiceLastAccessedDetailsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GenerateServiceLastAccessedDetails\", {}).n(\"IAMClient\", \"GenerateServiceLastAccessedDetailsCommand\").f(void 0, void 0).ser(se_GenerateServiceLastAccessedDetailsCommand).de(de_GenerateServiceLastAccessedDetailsCommand).build() {\n static {\n __name(this, \"GenerateServiceLastAccessedDetailsCommand\");\n }\n};\n\n// src/commands/GetAccessKeyLastUsedCommand.ts\n\n\n\nvar GetAccessKeyLastUsedCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccessKeyLastUsed\", {}).n(\"IAMClient\", \"GetAccessKeyLastUsedCommand\").f(void 0, void 0).ser(se_GetAccessKeyLastUsedCommand).de(de_GetAccessKeyLastUsedCommand).build() {\n static {\n __name(this, \"GetAccessKeyLastUsedCommand\");\n }\n};\n\n// src/commands/GetAccountAuthorizationDetailsCommand.ts\n\n\n\nvar GetAccountAuthorizationDetailsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccountAuthorizationDetails\", {}).n(\"IAMClient\", \"GetAccountAuthorizationDetailsCommand\").f(void 0, void 0).ser(se_GetAccountAuthorizationDetailsCommand).de(de_GetAccountAuthorizationDetailsCommand).build() {\n static {\n __name(this, \"GetAccountAuthorizationDetailsCommand\");\n }\n};\n\n// src/commands/GetAccountPasswordPolicyCommand.ts\n\n\n\nvar GetAccountPasswordPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccountPasswordPolicy\", {}).n(\"IAMClient\", \"GetAccountPasswordPolicyCommand\").f(void 0, void 0).ser(se_GetAccountPasswordPolicyCommand).de(de_GetAccountPasswordPolicyCommand).build() {\n static {\n __name(this, \"GetAccountPasswordPolicyCommand\");\n }\n};\n\n// src/commands/GetAccountSummaryCommand.ts\n\n\n\nvar GetAccountSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetAccountSummary\", {}).n(\"IAMClient\", \"GetAccountSummaryCommand\").f(void 0, void 0).ser(se_GetAccountSummaryCommand).de(de_GetAccountSummaryCommand).build() {\n static {\n __name(this, \"GetAccountSummaryCommand\");\n }\n};\n\n// src/commands/GetContextKeysForCustomPolicyCommand.ts\n\n\n\nvar GetContextKeysForCustomPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetContextKeysForCustomPolicy\", {}).n(\"IAMClient\", \"GetContextKeysForCustomPolicyCommand\").f(void 0, void 0).ser(se_GetContextKeysForCustomPolicyCommand).de(de_GetContextKeysForCustomPolicyCommand).build() {\n static {\n __name(this, \"GetContextKeysForCustomPolicyCommand\");\n }\n};\n\n// src/commands/GetContextKeysForPrincipalPolicyCommand.ts\n\n\n\nvar GetContextKeysForPrincipalPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetContextKeysForPrincipalPolicy\", {}).n(\"IAMClient\", \"GetContextKeysForPrincipalPolicyCommand\").f(void 0, void 0).ser(se_GetContextKeysForPrincipalPolicyCommand).de(de_GetContextKeysForPrincipalPolicyCommand).build() {\n static {\n __name(this, \"GetContextKeysForPrincipalPolicyCommand\");\n }\n};\n\n// src/commands/GetCredentialReportCommand.ts\n\n\n\nvar GetCredentialReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetCredentialReport\", {}).n(\"IAMClient\", \"GetCredentialReportCommand\").f(void 0, void 0).ser(se_GetCredentialReportCommand).de(de_GetCredentialReportCommand).build() {\n static {\n __name(this, \"GetCredentialReportCommand\");\n }\n};\n\n// src/commands/GetGroupCommand.ts\n\n\n\nvar GetGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetGroup\", {}).n(\"IAMClient\", \"GetGroupCommand\").f(void 0, void 0).ser(se_GetGroupCommand).de(de_GetGroupCommand).build() {\n static {\n __name(this, \"GetGroupCommand\");\n }\n};\n\n// src/commands/GetGroupPolicyCommand.ts\n\n\n\nvar GetGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetGroupPolicy\", {}).n(\"IAMClient\", \"GetGroupPolicyCommand\").f(void 0, void 0).ser(se_GetGroupPolicyCommand).de(de_GetGroupPolicyCommand).build() {\n static {\n __name(this, \"GetGroupPolicyCommand\");\n }\n};\n\n// src/commands/GetInstanceProfileCommand.ts\n\n\n\nvar GetInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetInstanceProfile\", {}).n(\"IAMClient\", \"GetInstanceProfileCommand\").f(void 0, void 0).ser(se_GetInstanceProfileCommand).de(de_GetInstanceProfileCommand).build() {\n static {\n __name(this, \"GetInstanceProfileCommand\");\n }\n};\n\n// src/commands/GetLoginProfileCommand.ts\n\n\n\nvar GetLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetLoginProfile\", {}).n(\"IAMClient\", \"GetLoginProfileCommand\").f(void 0, void 0).ser(se_GetLoginProfileCommand).de(de_GetLoginProfileCommand).build() {\n static {\n __name(this, \"GetLoginProfileCommand\");\n }\n};\n\n// src/commands/GetMFADeviceCommand.ts\n\n\n\nvar GetMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetMFADevice\", {}).n(\"IAMClient\", \"GetMFADeviceCommand\").f(void 0, void 0).ser(se_GetMFADeviceCommand).de(de_GetMFADeviceCommand).build() {\n static {\n __name(this, \"GetMFADeviceCommand\");\n }\n};\n\n// src/commands/GetOpenIDConnectProviderCommand.ts\n\n\n\nvar GetOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetOpenIDConnectProvider\", {}).n(\"IAMClient\", \"GetOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_GetOpenIDConnectProviderCommand).de(de_GetOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"GetOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/GetOrganizationsAccessReportCommand.ts\n\n\n\nvar GetOrganizationsAccessReportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetOrganizationsAccessReport\", {}).n(\"IAMClient\", \"GetOrganizationsAccessReportCommand\").f(void 0, void 0).ser(se_GetOrganizationsAccessReportCommand).de(de_GetOrganizationsAccessReportCommand).build() {\n static {\n __name(this, \"GetOrganizationsAccessReportCommand\");\n }\n};\n\n// src/commands/GetPolicyCommand.ts\n\n\n\nvar GetPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetPolicy\", {}).n(\"IAMClient\", \"GetPolicyCommand\").f(void 0, void 0).ser(se_GetPolicyCommand).de(de_GetPolicyCommand).build() {\n static {\n __name(this, \"GetPolicyCommand\");\n }\n};\n\n// src/commands/GetPolicyVersionCommand.ts\n\n\n\nvar GetPolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetPolicyVersion\", {}).n(\"IAMClient\", \"GetPolicyVersionCommand\").f(void 0, void 0).ser(se_GetPolicyVersionCommand).de(de_GetPolicyVersionCommand).build() {\n static {\n __name(this, \"GetPolicyVersionCommand\");\n }\n};\n\n// src/commands/GetRoleCommand.ts\n\n\n\nvar GetRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetRole\", {}).n(\"IAMClient\", \"GetRoleCommand\").f(void 0, void 0).ser(se_GetRoleCommand).de(de_GetRoleCommand).build() {\n static {\n __name(this, \"GetRoleCommand\");\n }\n};\n\n// src/commands/GetRolePolicyCommand.ts\n\n\n\nvar GetRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetRolePolicy\", {}).n(\"IAMClient\", \"GetRolePolicyCommand\").f(void 0, void 0).ser(se_GetRolePolicyCommand).de(de_GetRolePolicyCommand).build() {\n static {\n __name(this, \"GetRolePolicyCommand\");\n }\n};\n\n// src/commands/GetSAMLProviderCommand.ts\n\n\n\nvar GetSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetSAMLProvider\", {}).n(\"IAMClient\", \"GetSAMLProviderCommand\").f(void 0, void 0).ser(se_GetSAMLProviderCommand).de(de_GetSAMLProviderCommand).build() {\n static {\n __name(this, \"GetSAMLProviderCommand\");\n }\n};\n\n// src/commands/GetServerCertificateCommand.ts\n\n\n\nvar GetServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServerCertificate\", {}).n(\"IAMClient\", \"GetServerCertificateCommand\").f(void 0, void 0).ser(se_GetServerCertificateCommand).de(de_GetServerCertificateCommand).build() {\n static {\n __name(this, \"GetServerCertificateCommand\");\n }\n};\n\n// src/commands/GetServiceLastAccessedDetailsCommand.ts\n\n\n\nvar GetServiceLastAccessedDetailsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServiceLastAccessedDetails\", {}).n(\"IAMClient\", \"GetServiceLastAccessedDetailsCommand\").f(void 0, void 0).ser(se_GetServiceLastAccessedDetailsCommand).de(de_GetServiceLastAccessedDetailsCommand).build() {\n static {\n __name(this, \"GetServiceLastAccessedDetailsCommand\");\n }\n};\n\n// src/commands/GetServiceLastAccessedDetailsWithEntitiesCommand.ts\n\n\n\nvar GetServiceLastAccessedDetailsWithEntitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServiceLastAccessedDetailsWithEntities\", {}).n(\"IAMClient\", \"GetServiceLastAccessedDetailsWithEntitiesCommand\").f(void 0, void 0).ser(se_GetServiceLastAccessedDetailsWithEntitiesCommand).de(de_GetServiceLastAccessedDetailsWithEntitiesCommand).build() {\n static {\n __name(this, \"GetServiceLastAccessedDetailsWithEntitiesCommand\");\n }\n};\n\n// src/commands/GetServiceLinkedRoleDeletionStatusCommand.ts\n\n\n\nvar GetServiceLinkedRoleDeletionStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetServiceLinkedRoleDeletionStatus\", {}).n(\"IAMClient\", \"GetServiceLinkedRoleDeletionStatusCommand\").f(void 0, void 0).ser(se_GetServiceLinkedRoleDeletionStatusCommand).de(de_GetServiceLinkedRoleDeletionStatusCommand).build() {\n static {\n __name(this, \"GetServiceLinkedRoleDeletionStatusCommand\");\n }\n};\n\n// src/commands/GetSSHPublicKeyCommand.ts\n\n\n\nvar GetSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetSSHPublicKey\", {}).n(\"IAMClient\", \"GetSSHPublicKeyCommand\").f(void 0, void 0).ser(se_GetSSHPublicKeyCommand).de(de_GetSSHPublicKeyCommand).build() {\n static {\n __name(this, \"GetSSHPublicKeyCommand\");\n }\n};\n\n// src/commands/GetUserCommand.ts\n\n\n\nvar GetUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetUser\", {}).n(\"IAMClient\", \"GetUserCommand\").f(void 0, void 0).ser(se_GetUserCommand).de(de_GetUserCommand).build() {\n static {\n __name(this, \"GetUserCommand\");\n }\n};\n\n// src/commands/GetUserPolicyCommand.ts\n\n\n\nvar GetUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"GetUserPolicy\", {}).n(\"IAMClient\", \"GetUserPolicyCommand\").f(void 0, void 0).ser(se_GetUserPolicyCommand).de(de_GetUserPolicyCommand).build() {\n static {\n __name(this, \"GetUserPolicyCommand\");\n }\n};\n\n// src/commands/ListAccessKeysCommand.ts\n\n\n\nvar ListAccessKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAccessKeys\", {}).n(\"IAMClient\", \"ListAccessKeysCommand\").f(void 0, void 0).ser(se_ListAccessKeysCommand).de(de_ListAccessKeysCommand).build() {\n static {\n __name(this, \"ListAccessKeysCommand\");\n }\n};\n\n// src/commands/ListAccountAliasesCommand.ts\n\n\n\nvar ListAccountAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAccountAliases\", {}).n(\"IAMClient\", \"ListAccountAliasesCommand\").f(void 0, void 0).ser(se_ListAccountAliasesCommand).de(de_ListAccountAliasesCommand).build() {\n static {\n __name(this, \"ListAccountAliasesCommand\");\n }\n};\n\n// src/commands/ListAttachedGroupPoliciesCommand.ts\n\n\n\nvar ListAttachedGroupPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAttachedGroupPolicies\", {}).n(\"IAMClient\", \"ListAttachedGroupPoliciesCommand\").f(void 0, void 0).ser(se_ListAttachedGroupPoliciesCommand).de(de_ListAttachedGroupPoliciesCommand).build() {\n static {\n __name(this, \"ListAttachedGroupPoliciesCommand\");\n }\n};\n\n// src/commands/ListAttachedRolePoliciesCommand.ts\n\n\n\nvar ListAttachedRolePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAttachedRolePolicies\", {}).n(\"IAMClient\", \"ListAttachedRolePoliciesCommand\").f(void 0, void 0).ser(se_ListAttachedRolePoliciesCommand).de(de_ListAttachedRolePoliciesCommand).build() {\n static {\n __name(this, \"ListAttachedRolePoliciesCommand\");\n }\n};\n\n// src/commands/ListAttachedUserPoliciesCommand.ts\n\n\n\nvar ListAttachedUserPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListAttachedUserPolicies\", {}).n(\"IAMClient\", \"ListAttachedUserPoliciesCommand\").f(void 0, void 0).ser(se_ListAttachedUserPoliciesCommand).de(de_ListAttachedUserPoliciesCommand).build() {\n static {\n __name(this, \"ListAttachedUserPoliciesCommand\");\n }\n};\n\n// src/commands/ListEntitiesForPolicyCommand.ts\n\n\n\nvar ListEntitiesForPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListEntitiesForPolicy\", {}).n(\"IAMClient\", \"ListEntitiesForPolicyCommand\").f(void 0, void 0).ser(se_ListEntitiesForPolicyCommand).de(de_ListEntitiesForPolicyCommand).build() {\n static {\n __name(this, \"ListEntitiesForPolicyCommand\");\n }\n};\n\n// src/commands/ListGroupPoliciesCommand.ts\n\n\n\nvar ListGroupPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListGroupPolicies\", {}).n(\"IAMClient\", \"ListGroupPoliciesCommand\").f(void 0, void 0).ser(se_ListGroupPoliciesCommand).de(de_ListGroupPoliciesCommand).build() {\n static {\n __name(this, \"ListGroupPoliciesCommand\");\n }\n};\n\n// src/commands/ListGroupsCommand.ts\n\n\n\nvar ListGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListGroups\", {}).n(\"IAMClient\", \"ListGroupsCommand\").f(void 0, void 0).ser(se_ListGroupsCommand).de(de_ListGroupsCommand).build() {\n static {\n __name(this, \"ListGroupsCommand\");\n }\n};\n\n// src/commands/ListGroupsForUserCommand.ts\n\n\n\nvar ListGroupsForUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListGroupsForUser\", {}).n(\"IAMClient\", \"ListGroupsForUserCommand\").f(void 0, void 0).ser(se_ListGroupsForUserCommand).de(de_ListGroupsForUserCommand).build() {\n static {\n __name(this, \"ListGroupsForUserCommand\");\n }\n};\n\n// src/commands/ListInstanceProfilesCommand.ts\n\n\n\nvar ListInstanceProfilesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListInstanceProfiles\", {}).n(\"IAMClient\", \"ListInstanceProfilesCommand\").f(void 0, void 0).ser(se_ListInstanceProfilesCommand).de(de_ListInstanceProfilesCommand).build() {\n static {\n __name(this, \"ListInstanceProfilesCommand\");\n }\n};\n\n// src/commands/ListInstanceProfilesForRoleCommand.ts\n\n\n\nvar ListInstanceProfilesForRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListInstanceProfilesForRole\", {}).n(\"IAMClient\", \"ListInstanceProfilesForRoleCommand\").f(void 0, void 0).ser(se_ListInstanceProfilesForRoleCommand).de(de_ListInstanceProfilesForRoleCommand).build() {\n static {\n __name(this, \"ListInstanceProfilesForRoleCommand\");\n }\n};\n\n// src/commands/ListInstanceProfileTagsCommand.ts\n\n\n\nvar ListInstanceProfileTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListInstanceProfileTags\", {}).n(\"IAMClient\", \"ListInstanceProfileTagsCommand\").f(void 0, void 0).ser(se_ListInstanceProfileTagsCommand).de(de_ListInstanceProfileTagsCommand).build() {\n static {\n __name(this, \"ListInstanceProfileTagsCommand\");\n }\n};\n\n// src/commands/ListMFADevicesCommand.ts\n\n\n\nvar ListMFADevicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListMFADevices\", {}).n(\"IAMClient\", \"ListMFADevicesCommand\").f(void 0, void 0).ser(se_ListMFADevicesCommand).de(de_ListMFADevicesCommand).build() {\n static {\n __name(this, \"ListMFADevicesCommand\");\n }\n};\n\n// src/commands/ListMFADeviceTagsCommand.ts\n\n\n\nvar ListMFADeviceTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListMFADeviceTags\", {}).n(\"IAMClient\", \"ListMFADeviceTagsCommand\").f(void 0, void 0).ser(se_ListMFADeviceTagsCommand).de(de_ListMFADeviceTagsCommand).build() {\n static {\n __name(this, \"ListMFADeviceTagsCommand\");\n }\n};\n\n// src/commands/ListOpenIDConnectProvidersCommand.ts\n\n\n\nvar ListOpenIDConnectProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListOpenIDConnectProviders\", {}).n(\"IAMClient\", \"ListOpenIDConnectProvidersCommand\").f(void 0, void 0).ser(se_ListOpenIDConnectProvidersCommand).de(de_ListOpenIDConnectProvidersCommand).build() {\n static {\n __name(this, \"ListOpenIDConnectProvidersCommand\");\n }\n};\n\n// src/commands/ListOpenIDConnectProviderTagsCommand.ts\n\n\n\nvar ListOpenIDConnectProviderTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListOpenIDConnectProviderTags\", {}).n(\"IAMClient\", \"ListOpenIDConnectProviderTagsCommand\").f(void 0, void 0).ser(se_ListOpenIDConnectProviderTagsCommand).de(de_ListOpenIDConnectProviderTagsCommand).build() {\n static {\n __name(this, \"ListOpenIDConnectProviderTagsCommand\");\n }\n};\n\n// src/commands/ListOrganizationsFeaturesCommand.ts\n\n\n\nvar ListOrganizationsFeaturesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListOrganizationsFeatures\", {}).n(\"IAMClient\", \"ListOrganizationsFeaturesCommand\").f(void 0, void 0).ser(se_ListOrganizationsFeaturesCommand).de(de_ListOrganizationsFeaturesCommand).build() {\n static {\n __name(this, \"ListOrganizationsFeaturesCommand\");\n }\n};\n\n// src/commands/ListPoliciesCommand.ts\n\n\n\nvar ListPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPolicies\", {}).n(\"IAMClient\", \"ListPoliciesCommand\").f(void 0, void 0).ser(se_ListPoliciesCommand).de(de_ListPoliciesCommand).build() {\n static {\n __name(this, \"ListPoliciesCommand\");\n }\n};\n\n// src/commands/ListPoliciesGrantingServiceAccessCommand.ts\n\n\n\nvar ListPoliciesGrantingServiceAccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPoliciesGrantingServiceAccess\", {}).n(\"IAMClient\", \"ListPoliciesGrantingServiceAccessCommand\").f(void 0, void 0).ser(se_ListPoliciesGrantingServiceAccessCommand).de(de_ListPoliciesGrantingServiceAccessCommand).build() {\n static {\n __name(this, \"ListPoliciesGrantingServiceAccessCommand\");\n }\n};\n\n// src/commands/ListPolicyTagsCommand.ts\n\n\n\nvar ListPolicyTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPolicyTags\", {}).n(\"IAMClient\", \"ListPolicyTagsCommand\").f(void 0, void 0).ser(se_ListPolicyTagsCommand).de(de_ListPolicyTagsCommand).build() {\n static {\n __name(this, \"ListPolicyTagsCommand\");\n }\n};\n\n// src/commands/ListPolicyVersionsCommand.ts\n\n\n\nvar ListPolicyVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListPolicyVersions\", {}).n(\"IAMClient\", \"ListPolicyVersionsCommand\").f(void 0, void 0).ser(se_ListPolicyVersionsCommand).de(de_ListPolicyVersionsCommand).build() {\n static {\n __name(this, \"ListPolicyVersionsCommand\");\n }\n};\n\n// src/commands/ListRolePoliciesCommand.ts\n\n\n\nvar ListRolePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListRolePolicies\", {}).n(\"IAMClient\", \"ListRolePoliciesCommand\").f(void 0, void 0).ser(se_ListRolePoliciesCommand).de(de_ListRolePoliciesCommand).build() {\n static {\n __name(this, \"ListRolePoliciesCommand\");\n }\n};\n\n// src/commands/ListRolesCommand.ts\n\n\n\nvar ListRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListRoles\", {}).n(\"IAMClient\", \"ListRolesCommand\").f(void 0, void 0).ser(se_ListRolesCommand).de(de_ListRolesCommand).build() {\n static {\n __name(this, \"ListRolesCommand\");\n }\n};\n\n// src/commands/ListRoleTagsCommand.ts\n\n\n\nvar ListRoleTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListRoleTags\", {}).n(\"IAMClient\", \"ListRoleTagsCommand\").f(void 0, void 0).ser(se_ListRoleTagsCommand).de(de_ListRoleTagsCommand).build() {\n static {\n __name(this, \"ListRoleTagsCommand\");\n }\n};\n\n// src/commands/ListSAMLProvidersCommand.ts\n\n\n\nvar ListSAMLProvidersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSAMLProviders\", {}).n(\"IAMClient\", \"ListSAMLProvidersCommand\").f(void 0, void 0).ser(se_ListSAMLProvidersCommand).de(de_ListSAMLProvidersCommand).build() {\n static {\n __name(this, \"ListSAMLProvidersCommand\");\n }\n};\n\n// src/commands/ListSAMLProviderTagsCommand.ts\n\n\n\nvar ListSAMLProviderTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSAMLProviderTags\", {}).n(\"IAMClient\", \"ListSAMLProviderTagsCommand\").f(void 0, void 0).ser(se_ListSAMLProviderTagsCommand).de(de_ListSAMLProviderTagsCommand).build() {\n static {\n __name(this, \"ListSAMLProviderTagsCommand\");\n }\n};\n\n// src/commands/ListServerCertificatesCommand.ts\n\n\n\nvar ListServerCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListServerCertificates\", {}).n(\"IAMClient\", \"ListServerCertificatesCommand\").f(void 0, void 0).ser(se_ListServerCertificatesCommand).de(de_ListServerCertificatesCommand).build() {\n static {\n __name(this, \"ListServerCertificatesCommand\");\n }\n};\n\n// src/commands/ListServerCertificateTagsCommand.ts\n\n\n\nvar ListServerCertificateTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListServerCertificateTags\", {}).n(\"IAMClient\", \"ListServerCertificateTagsCommand\").f(void 0, void 0).ser(se_ListServerCertificateTagsCommand).de(de_ListServerCertificateTagsCommand).build() {\n static {\n __name(this, \"ListServerCertificateTagsCommand\");\n }\n};\n\n// src/commands/ListServiceSpecificCredentialsCommand.ts\n\n\n\nvar ListServiceSpecificCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListServiceSpecificCredentials\", {}).n(\"IAMClient\", \"ListServiceSpecificCredentialsCommand\").f(void 0, void 0).ser(se_ListServiceSpecificCredentialsCommand).de(de_ListServiceSpecificCredentialsCommand).build() {\n static {\n __name(this, \"ListServiceSpecificCredentialsCommand\");\n }\n};\n\n// src/commands/ListSigningCertificatesCommand.ts\n\n\n\nvar ListSigningCertificatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSigningCertificates\", {}).n(\"IAMClient\", \"ListSigningCertificatesCommand\").f(void 0, void 0).ser(se_ListSigningCertificatesCommand).de(de_ListSigningCertificatesCommand).build() {\n static {\n __name(this, \"ListSigningCertificatesCommand\");\n }\n};\n\n// src/commands/ListSSHPublicKeysCommand.ts\n\n\n\nvar ListSSHPublicKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListSSHPublicKeys\", {}).n(\"IAMClient\", \"ListSSHPublicKeysCommand\").f(void 0, void 0).ser(se_ListSSHPublicKeysCommand).de(de_ListSSHPublicKeysCommand).build() {\n static {\n __name(this, \"ListSSHPublicKeysCommand\");\n }\n};\n\n// src/commands/ListUserPoliciesCommand.ts\n\n\n\nvar ListUserPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListUserPolicies\", {}).n(\"IAMClient\", \"ListUserPoliciesCommand\").f(void 0, void 0).ser(se_ListUserPoliciesCommand).de(de_ListUserPoliciesCommand).build() {\n static {\n __name(this, \"ListUserPoliciesCommand\");\n }\n};\n\n// src/commands/ListUsersCommand.ts\n\n\n\nvar ListUsersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListUsers\", {}).n(\"IAMClient\", \"ListUsersCommand\").f(void 0, void 0).ser(se_ListUsersCommand).de(de_ListUsersCommand).build() {\n static {\n __name(this, \"ListUsersCommand\");\n }\n};\n\n// src/commands/ListUserTagsCommand.ts\n\n\n\nvar ListUserTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListUserTags\", {}).n(\"IAMClient\", \"ListUserTagsCommand\").f(void 0, void 0).ser(se_ListUserTagsCommand).de(de_ListUserTagsCommand).build() {\n static {\n __name(this, \"ListUserTagsCommand\");\n }\n};\n\n// src/commands/ListVirtualMFADevicesCommand.ts\n\n\n\nvar ListVirtualMFADevicesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ListVirtualMFADevices\", {}).n(\"IAMClient\", \"ListVirtualMFADevicesCommand\").f(void 0, ListVirtualMFADevicesResponseFilterSensitiveLog).ser(se_ListVirtualMFADevicesCommand).de(de_ListVirtualMFADevicesCommand).build() {\n static {\n __name(this, \"ListVirtualMFADevicesCommand\");\n }\n};\n\n// src/commands/PutGroupPolicyCommand.ts\n\n\n\nvar PutGroupPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutGroupPolicy\", {}).n(\"IAMClient\", \"PutGroupPolicyCommand\").f(void 0, void 0).ser(se_PutGroupPolicyCommand).de(de_PutGroupPolicyCommand).build() {\n static {\n __name(this, \"PutGroupPolicyCommand\");\n }\n};\n\n// src/commands/PutRolePermissionsBoundaryCommand.ts\n\n\n\nvar PutRolePermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutRolePermissionsBoundary\", {}).n(\"IAMClient\", \"PutRolePermissionsBoundaryCommand\").f(void 0, void 0).ser(se_PutRolePermissionsBoundaryCommand).de(de_PutRolePermissionsBoundaryCommand).build() {\n static {\n __name(this, \"PutRolePermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/PutRolePolicyCommand.ts\n\n\n\nvar PutRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutRolePolicy\", {}).n(\"IAMClient\", \"PutRolePolicyCommand\").f(void 0, void 0).ser(se_PutRolePolicyCommand).de(de_PutRolePolicyCommand).build() {\n static {\n __name(this, \"PutRolePolicyCommand\");\n }\n};\n\n// src/commands/PutUserPermissionsBoundaryCommand.ts\n\n\n\nvar PutUserPermissionsBoundaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutUserPermissionsBoundary\", {}).n(\"IAMClient\", \"PutUserPermissionsBoundaryCommand\").f(void 0, void 0).ser(se_PutUserPermissionsBoundaryCommand).de(de_PutUserPermissionsBoundaryCommand).build() {\n static {\n __name(this, \"PutUserPermissionsBoundaryCommand\");\n }\n};\n\n// src/commands/PutUserPolicyCommand.ts\n\n\n\nvar PutUserPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"PutUserPolicy\", {}).n(\"IAMClient\", \"PutUserPolicyCommand\").f(void 0, void 0).ser(se_PutUserPolicyCommand).de(de_PutUserPolicyCommand).build() {\n static {\n __name(this, \"PutUserPolicyCommand\");\n }\n};\n\n// src/commands/RemoveClientIDFromOpenIDConnectProviderCommand.ts\n\n\n\nvar RemoveClientIDFromOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"RemoveClientIDFromOpenIDConnectProvider\", {}).n(\"IAMClient\", \"RemoveClientIDFromOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_RemoveClientIDFromOpenIDConnectProviderCommand).de(de_RemoveClientIDFromOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"RemoveClientIDFromOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/RemoveRoleFromInstanceProfileCommand.ts\n\n\n\nvar RemoveRoleFromInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"RemoveRoleFromInstanceProfile\", {}).n(\"IAMClient\", \"RemoveRoleFromInstanceProfileCommand\").f(void 0, void 0).ser(se_RemoveRoleFromInstanceProfileCommand).de(de_RemoveRoleFromInstanceProfileCommand).build() {\n static {\n __name(this, \"RemoveRoleFromInstanceProfileCommand\");\n }\n};\n\n// src/commands/RemoveUserFromGroupCommand.ts\n\n\n\nvar RemoveUserFromGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"RemoveUserFromGroup\", {}).n(\"IAMClient\", \"RemoveUserFromGroupCommand\").f(void 0, void 0).ser(se_RemoveUserFromGroupCommand).de(de_RemoveUserFromGroupCommand).build() {\n static {\n __name(this, \"RemoveUserFromGroupCommand\");\n }\n};\n\n// src/commands/ResetServiceSpecificCredentialCommand.ts\n\n\n\nvar ResetServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ResetServiceSpecificCredential\", {}).n(\"IAMClient\", \"ResetServiceSpecificCredentialCommand\").f(void 0, ResetServiceSpecificCredentialResponseFilterSensitiveLog).ser(se_ResetServiceSpecificCredentialCommand).de(de_ResetServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"ResetServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/ResyncMFADeviceCommand.ts\n\n\n\nvar ResyncMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"ResyncMFADevice\", {}).n(\"IAMClient\", \"ResyncMFADeviceCommand\").f(void 0, void 0).ser(se_ResyncMFADeviceCommand).de(de_ResyncMFADeviceCommand).build() {\n static {\n __name(this, \"ResyncMFADeviceCommand\");\n }\n};\n\n// src/commands/SetDefaultPolicyVersionCommand.ts\n\n\n\nvar SetDefaultPolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SetDefaultPolicyVersion\", {}).n(\"IAMClient\", \"SetDefaultPolicyVersionCommand\").f(void 0, void 0).ser(se_SetDefaultPolicyVersionCommand).de(de_SetDefaultPolicyVersionCommand).build() {\n static {\n __name(this, \"SetDefaultPolicyVersionCommand\");\n }\n};\n\n// src/commands/SetSecurityTokenServicePreferencesCommand.ts\n\n\n\nvar SetSecurityTokenServicePreferencesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SetSecurityTokenServicePreferences\", {}).n(\"IAMClient\", \"SetSecurityTokenServicePreferencesCommand\").f(void 0, void 0).ser(se_SetSecurityTokenServicePreferencesCommand).de(de_SetSecurityTokenServicePreferencesCommand).build() {\n static {\n __name(this, \"SetSecurityTokenServicePreferencesCommand\");\n }\n};\n\n// src/commands/SimulateCustomPolicyCommand.ts\n\n\n\nvar SimulateCustomPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SimulateCustomPolicy\", {}).n(\"IAMClient\", \"SimulateCustomPolicyCommand\").f(void 0, void 0).ser(se_SimulateCustomPolicyCommand).de(de_SimulateCustomPolicyCommand).build() {\n static {\n __name(this, \"SimulateCustomPolicyCommand\");\n }\n};\n\n// src/commands/SimulatePrincipalPolicyCommand.ts\n\n\n\nvar SimulatePrincipalPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"SimulatePrincipalPolicy\", {}).n(\"IAMClient\", \"SimulatePrincipalPolicyCommand\").f(void 0, void 0).ser(se_SimulatePrincipalPolicyCommand).de(de_SimulatePrincipalPolicyCommand).build() {\n static {\n __name(this, \"SimulatePrincipalPolicyCommand\");\n }\n};\n\n// src/commands/TagInstanceProfileCommand.ts\n\n\n\nvar TagInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagInstanceProfile\", {}).n(\"IAMClient\", \"TagInstanceProfileCommand\").f(void 0, void 0).ser(se_TagInstanceProfileCommand).de(de_TagInstanceProfileCommand).build() {\n static {\n __name(this, \"TagInstanceProfileCommand\");\n }\n};\n\n// src/commands/TagMFADeviceCommand.ts\n\n\n\nvar TagMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagMFADevice\", {}).n(\"IAMClient\", \"TagMFADeviceCommand\").f(void 0, void 0).ser(se_TagMFADeviceCommand).de(de_TagMFADeviceCommand).build() {\n static {\n __name(this, \"TagMFADeviceCommand\");\n }\n};\n\n// src/commands/TagOpenIDConnectProviderCommand.ts\n\n\n\nvar TagOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagOpenIDConnectProvider\", {}).n(\"IAMClient\", \"TagOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_TagOpenIDConnectProviderCommand).de(de_TagOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"TagOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/TagPolicyCommand.ts\n\n\n\nvar TagPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagPolicy\", {}).n(\"IAMClient\", \"TagPolicyCommand\").f(void 0, void 0).ser(se_TagPolicyCommand).de(de_TagPolicyCommand).build() {\n static {\n __name(this, \"TagPolicyCommand\");\n }\n};\n\n// src/commands/TagRoleCommand.ts\n\n\n\nvar TagRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagRole\", {}).n(\"IAMClient\", \"TagRoleCommand\").f(void 0, void 0).ser(se_TagRoleCommand).de(de_TagRoleCommand).build() {\n static {\n __name(this, \"TagRoleCommand\");\n }\n};\n\n// src/commands/TagSAMLProviderCommand.ts\n\n\n\nvar TagSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagSAMLProvider\", {}).n(\"IAMClient\", \"TagSAMLProviderCommand\").f(void 0, void 0).ser(se_TagSAMLProviderCommand).de(de_TagSAMLProviderCommand).build() {\n static {\n __name(this, \"TagSAMLProviderCommand\");\n }\n};\n\n// src/commands/TagServerCertificateCommand.ts\n\n\n\nvar TagServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagServerCertificate\", {}).n(\"IAMClient\", \"TagServerCertificateCommand\").f(void 0, void 0).ser(se_TagServerCertificateCommand).de(de_TagServerCertificateCommand).build() {\n static {\n __name(this, \"TagServerCertificateCommand\");\n }\n};\n\n// src/commands/TagUserCommand.ts\n\n\n\nvar TagUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"TagUser\", {}).n(\"IAMClient\", \"TagUserCommand\").f(void 0, void 0).ser(se_TagUserCommand).de(de_TagUserCommand).build() {\n static {\n __name(this, \"TagUserCommand\");\n }\n};\n\n// src/commands/UntagInstanceProfileCommand.ts\n\n\n\nvar UntagInstanceProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagInstanceProfile\", {}).n(\"IAMClient\", \"UntagInstanceProfileCommand\").f(void 0, void 0).ser(se_UntagInstanceProfileCommand).de(de_UntagInstanceProfileCommand).build() {\n static {\n __name(this, \"UntagInstanceProfileCommand\");\n }\n};\n\n// src/commands/UntagMFADeviceCommand.ts\n\n\n\nvar UntagMFADeviceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagMFADevice\", {}).n(\"IAMClient\", \"UntagMFADeviceCommand\").f(void 0, void 0).ser(se_UntagMFADeviceCommand).de(de_UntagMFADeviceCommand).build() {\n static {\n __name(this, \"UntagMFADeviceCommand\");\n }\n};\n\n// src/commands/UntagOpenIDConnectProviderCommand.ts\n\n\n\nvar UntagOpenIDConnectProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagOpenIDConnectProvider\", {}).n(\"IAMClient\", \"UntagOpenIDConnectProviderCommand\").f(void 0, void 0).ser(se_UntagOpenIDConnectProviderCommand).de(de_UntagOpenIDConnectProviderCommand).build() {\n static {\n __name(this, \"UntagOpenIDConnectProviderCommand\");\n }\n};\n\n// src/commands/UntagPolicyCommand.ts\n\n\n\nvar UntagPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagPolicy\", {}).n(\"IAMClient\", \"UntagPolicyCommand\").f(void 0, void 0).ser(se_UntagPolicyCommand).de(de_UntagPolicyCommand).build() {\n static {\n __name(this, \"UntagPolicyCommand\");\n }\n};\n\n// src/commands/UntagRoleCommand.ts\n\n\n\nvar UntagRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagRole\", {}).n(\"IAMClient\", \"UntagRoleCommand\").f(void 0, void 0).ser(se_UntagRoleCommand).de(de_UntagRoleCommand).build() {\n static {\n __name(this, \"UntagRoleCommand\");\n }\n};\n\n// src/commands/UntagSAMLProviderCommand.ts\n\n\n\nvar UntagSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagSAMLProvider\", {}).n(\"IAMClient\", \"UntagSAMLProviderCommand\").f(void 0, void 0).ser(se_UntagSAMLProviderCommand).de(de_UntagSAMLProviderCommand).build() {\n static {\n __name(this, \"UntagSAMLProviderCommand\");\n }\n};\n\n// src/commands/UntagServerCertificateCommand.ts\n\n\n\nvar UntagServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagServerCertificate\", {}).n(\"IAMClient\", \"UntagServerCertificateCommand\").f(void 0, void 0).ser(se_UntagServerCertificateCommand).de(de_UntagServerCertificateCommand).build() {\n static {\n __name(this, \"UntagServerCertificateCommand\");\n }\n};\n\n// src/commands/UntagUserCommand.ts\n\n\n\nvar UntagUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UntagUser\", {}).n(\"IAMClient\", \"UntagUserCommand\").f(void 0, void 0).ser(se_UntagUserCommand).de(de_UntagUserCommand).build() {\n static {\n __name(this, \"UntagUserCommand\");\n }\n};\n\n// src/commands/UpdateAccessKeyCommand.ts\n\n\n\nvar UpdateAccessKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateAccessKey\", {}).n(\"IAMClient\", \"UpdateAccessKeyCommand\").f(void 0, void 0).ser(se_UpdateAccessKeyCommand).de(de_UpdateAccessKeyCommand).build() {\n static {\n __name(this, \"UpdateAccessKeyCommand\");\n }\n};\n\n// src/commands/UpdateAccountPasswordPolicyCommand.ts\n\n\n\nvar UpdateAccountPasswordPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateAccountPasswordPolicy\", {}).n(\"IAMClient\", \"UpdateAccountPasswordPolicyCommand\").f(void 0, void 0).ser(se_UpdateAccountPasswordPolicyCommand).de(de_UpdateAccountPasswordPolicyCommand).build() {\n static {\n __name(this, \"UpdateAccountPasswordPolicyCommand\");\n }\n};\n\n// src/commands/UpdateAssumeRolePolicyCommand.ts\n\n\n\nvar UpdateAssumeRolePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateAssumeRolePolicy\", {}).n(\"IAMClient\", \"UpdateAssumeRolePolicyCommand\").f(void 0, void 0).ser(se_UpdateAssumeRolePolicyCommand).de(de_UpdateAssumeRolePolicyCommand).build() {\n static {\n __name(this, \"UpdateAssumeRolePolicyCommand\");\n }\n};\n\n// src/commands/UpdateGroupCommand.ts\n\n\n\nvar UpdateGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateGroup\", {}).n(\"IAMClient\", \"UpdateGroupCommand\").f(void 0, void 0).ser(se_UpdateGroupCommand).de(de_UpdateGroupCommand).build() {\n static {\n __name(this, \"UpdateGroupCommand\");\n }\n};\n\n// src/commands/UpdateLoginProfileCommand.ts\n\n\n\nvar UpdateLoginProfileCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateLoginProfile\", {}).n(\"IAMClient\", \"UpdateLoginProfileCommand\").f(UpdateLoginProfileRequestFilterSensitiveLog, void 0).ser(se_UpdateLoginProfileCommand).de(de_UpdateLoginProfileCommand).build() {\n static {\n __name(this, \"UpdateLoginProfileCommand\");\n }\n};\n\n// src/commands/UpdateOpenIDConnectProviderThumbprintCommand.ts\n\n\n\nvar UpdateOpenIDConnectProviderThumbprintCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateOpenIDConnectProviderThumbprint\", {}).n(\"IAMClient\", \"UpdateOpenIDConnectProviderThumbprintCommand\").f(void 0, void 0).ser(se_UpdateOpenIDConnectProviderThumbprintCommand).de(de_UpdateOpenIDConnectProviderThumbprintCommand).build() {\n static {\n __name(this, \"UpdateOpenIDConnectProviderThumbprintCommand\");\n }\n};\n\n// src/commands/UpdateRoleCommand.ts\n\n\n\nvar UpdateRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateRole\", {}).n(\"IAMClient\", \"UpdateRoleCommand\").f(void 0, void 0).ser(se_UpdateRoleCommand).de(de_UpdateRoleCommand).build() {\n static {\n __name(this, \"UpdateRoleCommand\");\n }\n};\n\n// src/commands/UpdateRoleDescriptionCommand.ts\n\n\n\nvar UpdateRoleDescriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateRoleDescription\", {}).n(\"IAMClient\", \"UpdateRoleDescriptionCommand\").f(void 0, void 0).ser(se_UpdateRoleDescriptionCommand).de(de_UpdateRoleDescriptionCommand).build() {\n static {\n __name(this, \"UpdateRoleDescriptionCommand\");\n }\n};\n\n// src/commands/UpdateSAMLProviderCommand.ts\n\n\n\nvar UpdateSAMLProviderCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateSAMLProvider\", {}).n(\"IAMClient\", \"UpdateSAMLProviderCommand\").f(UpdateSAMLProviderRequestFilterSensitiveLog, void 0).ser(se_UpdateSAMLProviderCommand).de(de_UpdateSAMLProviderCommand).build() {\n static {\n __name(this, \"UpdateSAMLProviderCommand\");\n }\n};\n\n// src/commands/UpdateServerCertificateCommand.ts\n\n\n\nvar UpdateServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateServerCertificate\", {}).n(\"IAMClient\", \"UpdateServerCertificateCommand\").f(void 0, void 0).ser(se_UpdateServerCertificateCommand).de(de_UpdateServerCertificateCommand).build() {\n static {\n __name(this, \"UpdateServerCertificateCommand\");\n }\n};\n\n// src/commands/UpdateServiceSpecificCredentialCommand.ts\n\n\n\nvar UpdateServiceSpecificCredentialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateServiceSpecificCredential\", {}).n(\"IAMClient\", \"UpdateServiceSpecificCredentialCommand\").f(void 0, void 0).ser(se_UpdateServiceSpecificCredentialCommand).de(de_UpdateServiceSpecificCredentialCommand).build() {\n static {\n __name(this, \"UpdateServiceSpecificCredentialCommand\");\n }\n};\n\n// src/commands/UpdateSigningCertificateCommand.ts\n\n\n\nvar UpdateSigningCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateSigningCertificate\", {}).n(\"IAMClient\", \"UpdateSigningCertificateCommand\").f(void 0, void 0).ser(se_UpdateSigningCertificateCommand).de(de_UpdateSigningCertificateCommand).build() {\n static {\n __name(this, \"UpdateSigningCertificateCommand\");\n }\n};\n\n// src/commands/UpdateSSHPublicKeyCommand.ts\n\n\n\nvar UpdateSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateSSHPublicKey\", {}).n(\"IAMClient\", \"UpdateSSHPublicKeyCommand\").f(void 0, void 0).ser(se_UpdateSSHPublicKeyCommand).de(de_UpdateSSHPublicKeyCommand).build() {\n static {\n __name(this, \"UpdateSSHPublicKeyCommand\");\n }\n};\n\n// src/commands/UpdateUserCommand.ts\n\n\n\nvar UpdateUserCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UpdateUser\", {}).n(\"IAMClient\", \"UpdateUserCommand\").f(void 0, void 0).ser(se_UpdateUserCommand).de(de_UpdateUserCommand).build() {\n static {\n __name(this, \"UpdateUserCommand\");\n }\n};\n\n// src/commands/UploadServerCertificateCommand.ts\n\n\n\nvar UploadServerCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UploadServerCertificate\", {}).n(\"IAMClient\", \"UploadServerCertificateCommand\").f(UploadServerCertificateRequestFilterSensitiveLog, void 0).ser(se_UploadServerCertificateCommand).de(de_UploadServerCertificateCommand).build() {\n static {\n __name(this, \"UploadServerCertificateCommand\");\n }\n};\n\n// src/commands/UploadSigningCertificateCommand.ts\n\n\n\nvar UploadSigningCertificateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UploadSigningCertificate\", {}).n(\"IAMClient\", \"UploadSigningCertificateCommand\").f(void 0, void 0).ser(se_UploadSigningCertificateCommand).de(de_UploadSigningCertificateCommand).build() {\n static {\n __name(this, \"UploadSigningCertificateCommand\");\n }\n};\n\n// src/commands/UploadSSHPublicKeyCommand.ts\n\n\n\nvar UploadSSHPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSIdentityManagementV20100508\", \"UploadSSHPublicKey\", {}).n(\"IAMClient\", \"UploadSSHPublicKeyCommand\").f(void 0, void 0).ser(se_UploadSSHPublicKeyCommand).de(de_UploadSSHPublicKeyCommand).build() {\n static {\n __name(this, \"UploadSSHPublicKeyCommand\");\n }\n};\n\n// src/IAM.ts\nvar commands = {\n AddClientIDToOpenIDConnectProviderCommand,\n AddRoleToInstanceProfileCommand,\n AddUserToGroupCommand,\n AttachGroupPolicyCommand,\n AttachRolePolicyCommand,\n AttachUserPolicyCommand,\n ChangePasswordCommand,\n CreateAccessKeyCommand,\n CreateAccountAliasCommand,\n CreateGroupCommand,\n CreateInstanceProfileCommand,\n CreateLoginProfileCommand,\n CreateOpenIDConnectProviderCommand,\n CreatePolicyCommand,\n CreatePolicyVersionCommand,\n CreateRoleCommand,\n CreateSAMLProviderCommand,\n CreateServiceLinkedRoleCommand,\n CreateServiceSpecificCredentialCommand,\n CreateUserCommand,\n CreateVirtualMFADeviceCommand,\n DeactivateMFADeviceCommand,\n DeleteAccessKeyCommand,\n DeleteAccountAliasCommand,\n DeleteAccountPasswordPolicyCommand,\n DeleteGroupCommand,\n DeleteGroupPolicyCommand,\n DeleteInstanceProfileCommand,\n DeleteLoginProfileCommand,\n DeleteOpenIDConnectProviderCommand,\n DeletePolicyCommand,\n DeletePolicyVersionCommand,\n DeleteRoleCommand,\n DeleteRolePermissionsBoundaryCommand,\n DeleteRolePolicyCommand,\n DeleteSAMLProviderCommand,\n DeleteServerCertificateCommand,\n DeleteServiceLinkedRoleCommand,\n DeleteServiceSpecificCredentialCommand,\n DeleteSigningCertificateCommand,\n DeleteSSHPublicKeyCommand,\n DeleteUserCommand,\n DeleteUserPermissionsBoundaryCommand,\n DeleteUserPolicyCommand,\n DeleteVirtualMFADeviceCommand,\n DetachGroupPolicyCommand,\n DetachRolePolicyCommand,\n DetachUserPolicyCommand,\n DisableOrganizationsRootCredentialsManagementCommand,\n DisableOrganizationsRootSessionsCommand,\n EnableMFADeviceCommand,\n EnableOrganizationsRootCredentialsManagementCommand,\n EnableOrganizationsRootSessionsCommand,\n GenerateCredentialReportCommand,\n GenerateOrganizationsAccessReportCommand,\n GenerateServiceLastAccessedDetailsCommand,\n GetAccessKeyLastUsedCommand,\n GetAccountAuthorizationDetailsCommand,\n GetAccountPasswordPolicyCommand,\n GetAccountSummaryCommand,\n GetContextKeysForCustomPolicyCommand,\n GetContextKeysForPrincipalPolicyCommand,\n GetCredentialReportCommand,\n GetGroupCommand,\n GetGroupPolicyCommand,\n GetInstanceProfileCommand,\n GetLoginProfileCommand,\n GetMFADeviceCommand,\n GetOpenIDConnectProviderCommand,\n GetOrganizationsAccessReportCommand,\n GetPolicyCommand,\n GetPolicyVersionCommand,\n GetRoleCommand,\n GetRolePolicyCommand,\n GetSAMLProviderCommand,\n GetServerCertificateCommand,\n GetServiceLastAccessedDetailsCommand,\n GetServiceLastAccessedDetailsWithEntitiesCommand,\n GetServiceLinkedRoleDeletionStatusCommand,\n GetSSHPublicKeyCommand,\n GetUserCommand,\n GetUserPolicyCommand,\n ListAccessKeysCommand,\n ListAccountAliasesCommand,\n ListAttachedGroupPoliciesCommand,\n ListAttachedRolePoliciesCommand,\n ListAttachedUserPoliciesCommand,\n ListEntitiesForPolicyCommand,\n ListGroupPoliciesCommand,\n ListGroupsCommand,\n ListGroupsForUserCommand,\n ListInstanceProfilesCommand,\n ListInstanceProfilesForRoleCommand,\n ListInstanceProfileTagsCommand,\n ListMFADevicesCommand,\n ListMFADeviceTagsCommand,\n ListOpenIDConnectProvidersCommand,\n ListOpenIDConnectProviderTagsCommand,\n ListOrganizationsFeaturesCommand,\n ListPoliciesCommand,\n ListPoliciesGrantingServiceAccessCommand,\n ListPolicyTagsCommand,\n ListPolicyVersionsCommand,\n ListRolePoliciesCommand,\n ListRolesCommand,\n ListRoleTagsCommand,\n ListSAMLProvidersCommand,\n ListSAMLProviderTagsCommand,\n ListServerCertificatesCommand,\n ListServerCertificateTagsCommand,\n ListServiceSpecificCredentialsCommand,\n ListSigningCertificatesCommand,\n ListSSHPublicKeysCommand,\n ListUserPoliciesCommand,\n ListUsersCommand,\n ListUserTagsCommand,\n ListVirtualMFADevicesCommand,\n PutGroupPolicyCommand,\n PutRolePermissionsBoundaryCommand,\n PutRolePolicyCommand,\n PutUserPermissionsBoundaryCommand,\n PutUserPolicyCommand,\n RemoveClientIDFromOpenIDConnectProviderCommand,\n RemoveRoleFromInstanceProfileCommand,\n RemoveUserFromGroupCommand,\n ResetServiceSpecificCredentialCommand,\n ResyncMFADeviceCommand,\n SetDefaultPolicyVersionCommand,\n SetSecurityTokenServicePreferencesCommand,\n SimulateCustomPolicyCommand,\n SimulatePrincipalPolicyCommand,\n TagInstanceProfileCommand,\n TagMFADeviceCommand,\n TagOpenIDConnectProviderCommand,\n TagPolicyCommand,\n TagRoleCommand,\n TagSAMLProviderCommand,\n TagServerCertificateCommand,\n TagUserCommand,\n UntagInstanceProfileCommand,\n UntagMFADeviceCommand,\n UntagOpenIDConnectProviderCommand,\n UntagPolicyCommand,\n UntagRoleCommand,\n UntagSAMLProviderCommand,\n UntagServerCertificateCommand,\n UntagUserCommand,\n UpdateAccessKeyCommand,\n UpdateAccountPasswordPolicyCommand,\n UpdateAssumeRolePolicyCommand,\n UpdateGroupCommand,\n UpdateLoginProfileCommand,\n UpdateOpenIDConnectProviderThumbprintCommand,\n UpdateRoleCommand,\n UpdateRoleDescriptionCommand,\n UpdateSAMLProviderCommand,\n UpdateServerCertificateCommand,\n UpdateServiceSpecificCredentialCommand,\n UpdateSigningCertificateCommand,\n UpdateSSHPublicKeyCommand,\n UpdateUserCommand,\n UploadServerCertificateCommand,\n UploadSigningCertificateCommand,\n UploadSSHPublicKeyCommand\n};\nvar IAM = class extends IAMClient {\n static {\n __name(this, \"IAM\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, IAM);\n\n// src/pagination/GetAccountAuthorizationDetailsPaginator.ts\n\nvar paginateGetAccountAuthorizationDetails = (0, import_core.createPaginator)(IAMClient, GetAccountAuthorizationDetailsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/GetGroupPaginator.ts\n\nvar paginateGetGroup = (0, import_core.createPaginator)(IAMClient, GetGroupCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAccessKeysPaginator.ts\n\nvar paginateListAccessKeys = (0, import_core.createPaginator)(IAMClient, ListAccessKeysCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAccountAliasesPaginator.ts\n\nvar paginateListAccountAliases = (0, import_core.createPaginator)(IAMClient, ListAccountAliasesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAttachedGroupPoliciesPaginator.ts\n\nvar paginateListAttachedGroupPolicies = (0, import_core.createPaginator)(IAMClient, ListAttachedGroupPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAttachedRolePoliciesPaginator.ts\n\nvar paginateListAttachedRolePolicies = (0, import_core.createPaginator)(IAMClient, ListAttachedRolePoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListAttachedUserPoliciesPaginator.ts\n\nvar paginateListAttachedUserPolicies = (0, import_core.createPaginator)(IAMClient, ListAttachedUserPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListEntitiesForPolicyPaginator.ts\n\nvar paginateListEntitiesForPolicy = (0, import_core.createPaginator)(IAMClient, ListEntitiesForPolicyCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListGroupPoliciesPaginator.ts\n\nvar paginateListGroupPolicies = (0, import_core.createPaginator)(IAMClient, ListGroupPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListGroupsForUserPaginator.ts\n\nvar paginateListGroupsForUser = (0, import_core.createPaginator)(IAMClient, ListGroupsForUserCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListGroupsPaginator.ts\n\nvar paginateListGroups = (0, import_core.createPaginator)(IAMClient, ListGroupsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListInstanceProfileTagsPaginator.ts\n\nvar paginateListInstanceProfileTags = (0, import_core.createPaginator)(IAMClient, ListInstanceProfileTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListInstanceProfilesForRolePaginator.ts\n\nvar paginateListInstanceProfilesForRole = (0, import_core.createPaginator)(IAMClient, ListInstanceProfilesForRoleCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListInstanceProfilesPaginator.ts\n\nvar paginateListInstanceProfiles = (0, import_core.createPaginator)(IAMClient, ListInstanceProfilesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListMFADeviceTagsPaginator.ts\n\nvar paginateListMFADeviceTags = (0, import_core.createPaginator)(IAMClient, ListMFADeviceTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListMFADevicesPaginator.ts\n\nvar paginateListMFADevices = (0, import_core.createPaginator)(IAMClient, ListMFADevicesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListOpenIDConnectProviderTagsPaginator.ts\n\nvar paginateListOpenIDConnectProviderTags = (0, import_core.createPaginator)(IAMClient, ListOpenIDConnectProviderTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListPoliciesPaginator.ts\n\nvar paginateListPolicies = (0, import_core.createPaginator)(IAMClient, ListPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListPolicyTagsPaginator.ts\n\nvar paginateListPolicyTags = (0, import_core.createPaginator)(IAMClient, ListPolicyTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListPolicyVersionsPaginator.ts\n\nvar paginateListPolicyVersions = (0, import_core.createPaginator)(IAMClient, ListPolicyVersionsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListRolePoliciesPaginator.ts\n\nvar paginateListRolePolicies = (0, import_core.createPaginator)(IAMClient, ListRolePoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListRoleTagsPaginator.ts\n\nvar paginateListRoleTags = (0, import_core.createPaginator)(IAMClient, ListRoleTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListRolesPaginator.ts\n\nvar paginateListRoles = (0, import_core.createPaginator)(IAMClient, ListRolesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListSAMLProviderTagsPaginator.ts\n\nvar paginateListSAMLProviderTags = (0, import_core.createPaginator)(IAMClient, ListSAMLProviderTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListSSHPublicKeysPaginator.ts\n\nvar paginateListSSHPublicKeys = (0, import_core.createPaginator)(IAMClient, ListSSHPublicKeysCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListServerCertificateTagsPaginator.ts\n\nvar paginateListServerCertificateTags = (0, import_core.createPaginator)(IAMClient, ListServerCertificateTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListServerCertificatesPaginator.ts\n\nvar paginateListServerCertificates = (0, import_core.createPaginator)(IAMClient, ListServerCertificatesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListSigningCertificatesPaginator.ts\n\nvar paginateListSigningCertificates = (0, import_core.createPaginator)(IAMClient, ListSigningCertificatesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListUserPoliciesPaginator.ts\n\nvar paginateListUserPolicies = (0, import_core.createPaginator)(IAMClient, ListUserPoliciesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListUserTagsPaginator.ts\n\nvar paginateListUserTags = (0, import_core.createPaginator)(IAMClient, ListUserTagsCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListUsersPaginator.ts\n\nvar paginateListUsers = (0, import_core.createPaginator)(IAMClient, ListUsersCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/ListVirtualMFADevicesPaginator.ts\n\nvar paginateListVirtualMFADevices = (0, import_core.createPaginator)(IAMClient, ListVirtualMFADevicesCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/SimulateCustomPolicyPaginator.ts\n\nvar paginateSimulateCustomPolicy = (0, import_core.createPaginator)(IAMClient, SimulateCustomPolicyCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/pagination/SimulatePrincipalPolicyPaginator.ts\n\nvar paginateSimulatePrincipalPolicy = (0, import_core.createPaginator)(IAMClient, SimulatePrincipalPolicyCommand, \"Marker\", \"Marker\", \"MaxItems\");\n\n// src/waiters/waitForInstanceProfileExists.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetInstanceProfileCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForInstanceProfileExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForInstanceProfileExists\");\nvar waitUntilInstanceProfileExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilInstanceProfileExists\");\n\n// src/waiters/waitForPolicyExists.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetPolicyCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForPolicyExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForPolicyExists\");\nvar waitUntilPolicyExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilPolicyExists\");\n\n// src/waiters/waitForRoleExists.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetRoleCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForRoleExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForRoleExists\");\nvar waitUntilRoleExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilRoleExists\");\n\n// src/waiters/waitForUserExists.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetUserCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NoSuchEntityException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForUserExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForUserExists\");\nvar waitUntilUserExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilUserExists\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n IAMServiceException,\n __Client,\n IAMClient,\n IAM,\n $Command,\n AddClientIDToOpenIDConnectProviderCommand,\n AddRoleToInstanceProfileCommand,\n AddUserToGroupCommand,\n AttachGroupPolicyCommand,\n AttachRolePolicyCommand,\n AttachUserPolicyCommand,\n ChangePasswordCommand,\n CreateAccessKeyCommand,\n CreateAccountAliasCommand,\n CreateGroupCommand,\n CreateInstanceProfileCommand,\n CreateLoginProfileCommand,\n CreateOpenIDConnectProviderCommand,\n CreatePolicyCommand,\n CreatePolicyVersionCommand,\n CreateRoleCommand,\n CreateSAMLProviderCommand,\n CreateServiceLinkedRoleCommand,\n CreateServiceSpecificCredentialCommand,\n CreateUserCommand,\n CreateVirtualMFADeviceCommand,\n DeactivateMFADeviceCommand,\n DeleteAccessKeyCommand,\n DeleteAccountAliasCommand,\n DeleteAccountPasswordPolicyCommand,\n DeleteGroupCommand,\n DeleteGroupPolicyCommand,\n DeleteInstanceProfileCommand,\n DeleteLoginProfileCommand,\n DeleteOpenIDConnectProviderCommand,\n DeletePolicyCommand,\n DeletePolicyVersionCommand,\n DeleteRoleCommand,\n DeleteRolePermissionsBoundaryCommand,\n DeleteRolePolicyCommand,\n DeleteSAMLProviderCommand,\n DeleteSSHPublicKeyCommand,\n DeleteServerCertificateCommand,\n DeleteServiceLinkedRoleCommand,\n DeleteServiceSpecificCredentialCommand,\n DeleteSigningCertificateCommand,\n DeleteUserCommand,\n DeleteUserPermissionsBoundaryCommand,\n DeleteUserPolicyCommand,\n DeleteVirtualMFADeviceCommand,\n DetachGroupPolicyCommand,\n DetachRolePolicyCommand,\n DetachUserPolicyCommand,\n DisableOrganizationsRootCredentialsManagementCommand,\n DisableOrganizationsRootSessionsCommand,\n EnableMFADeviceCommand,\n EnableOrganizationsRootCredentialsManagementCommand,\n EnableOrganizationsRootSessionsCommand,\n GenerateCredentialReportCommand,\n GenerateOrganizationsAccessReportCommand,\n GenerateServiceLastAccessedDetailsCommand,\n GetAccessKeyLastUsedCommand,\n GetAccountAuthorizationDetailsCommand,\n GetAccountPasswordPolicyCommand,\n GetAccountSummaryCommand,\n GetContextKeysForCustomPolicyCommand,\n GetContextKeysForPrincipalPolicyCommand,\n GetCredentialReportCommand,\n GetGroupCommand,\n GetGroupPolicyCommand,\n GetInstanceProfileCommand,\n GetLoginProfileCommand,\n GetMFADeviceCommand,\n GetOpenIDConnectProviderCommand,\n GetOrganizationsAccessReportCommand,\n GetPolicyCommand,\n GetPolicyVersionCommand,\n GetRoleCommand,\n GetRolePolicyCommand,\n GetSAMLProviderCommand,\n GetSSHPublicKeyCommand,\n GetServerCertificateCommand,\n GetServiceLastAccessedDetailsCommand,\n GetServiceLastAccessedDetailsWithEntitiesCommand,\n GetServiceLinkedRoleDeletionStatusCommand,\n GetUserCommand,\n GetUserPolicyCommand,\n ListAccessKeysCommand,\n ListAccountAliasesCommand,\n ListAttachedGroupPoliciesCommand,\n ListAttachedRolePoliciesCommand,\n ListAttachedUserPoliciesCommand,\n ListEntitiesForPolicyCommand,\n ListGroupPoliciesCommand,\n ListGroupsCommand,\n ListGroupsForUserCommand,\n ListInstanceProfileTagsCommand,\n ListInstanceProfilesCommand,\n ListInstanceProfilesForRoleCommand,\n ListMFADeviceTagsCommand,\n ListMFADevicesCommand,\n ListOpenIDConnectProviderTagsCommand,\n ListOpenIDConnectProvidersCommand,\n ListOrganizationsFeaturesCommand,\n ListPoliciesCommand,\n ListPoliciesGrantingServiceAccessCommand,\n ListPolicyTagsCommand,\n ListPolicyVersionsCommand,\n ListRolePoliciesCommand,\n ListRoleTagsCommand,\n ListRolesCommand,\n ListSAMLProviderTagsCommand,\n ListSAMLProvidersCommand,\n ListSSHPublicKeysCommand,\n ListServerCertificateTagsCommand,\n ListServerCertificatesCommand,\n ListServiceSpecificCredentialsCommand,\n ListSigningCertificatesCommand,\n ListUserPoliciesCommand,\n ListUserTagsCommand,\n ListUsersCommand,\n ListVirtualMFADevicesCommand,\n PutGroupPolicyCommand,\n PutRolePermissionsBoundaryCommand,\n PutRolePolicyCommand,\n PutUserPermissionsBoundaryCommand,\n PutUserPolicyCommand,\n RemoveClientIDFromOpenIDConnectProviderCommand,\n RemoveRoleFromInstanceProfileCommand,\n RemoveUserFromGroupCommand,\n ResetServiceSpecificCredentialCommand,\n ResyncMFADeviceCommand,\n SetDefaultPolicyVersionCommand,\n SetSecurityTokenServicePreferencesCommand,\n SimulateCustomPolicyCommand,\n SimulatePrincipalPolicyCommand,\n TagInstanceProfileCommand,\n TagMFADeviceCommand,\n TagOpenIDConnectProviderCommand,\n TagPolicyCommand,\n TagRoleCommand,\n TagSAMLProviderCommand,\n TagServerCertificateCommand,\n TagUserCommand,\n UntagInstanceProfileCommand,\n UntagMFADeviceCommand,\n UntagOpenIDConnectProviderCommand,\n UntagPolicyCommand,\n UntagRoleCommand,\n UntagSAMLProviderCommand,\n UntagServerCertificateCommand,\n UntagUserCommand,\n UpdateAccessKeyCommand,\n UpdateAccountPasswordPolicyCommand,\n UpdateAssumeRolePolicyCommand,\n UpdateGroupCommand,\n UpdateLoginProfileCommand,\n UpdateOpenIDConnectProviderThumbprintCommand,\n UpdateRoleCommand,\n UpdateRoleDescriptionCommand,\n UpdateSAMLProviderCommand,\n UpdateSSHPublicKeyCommand,\n UpdateServerCertificateCommand,\n UpdateServiceSpecificCredentialCommand,\n UpdateSigningCertificateCommand,\n UpdateUserCommand,\n UploadSSHPublicKeyCommand,\n UploadServerCertificateCommand,\n UploadSigningCertificateCommand,\n paginateGetAccountAuthorizationDetails,\n paginateGetGroup,\n paginateListAccessKeys,\n paginateListAccountAliases,\n paginateListAttachedGroupPolicies,\n paginateListAttachedRolePolicies,\n paginateListAttachedUserPolicies,\n paginateListEntitiesForPolicy,\n paginateListGroupPolicies,\n paginateListGroupsForUser,\n paginateListGroups,\n paginateListInstanceProfileTags,\n paginateListInstanceProfilesForRole,\n paginateListInstanceProfiles,\n paginateListMFADeviceTags,\n paginateListMFADevices,\n paginateListOpenIDConnectProviderTags,\n paginateListPolicies,\n paginateListPolicyTags,\n paginateListPolicyVersions,\n paginateListRolePolicies,\n paginateListRoleTags,\n paginateListRoles,\n paginateListSAMLProviderTags,\n paginateListSSHPublicKeys,\n paginateListServerCertificateTags,\n paginateListServerCertificates,\n paginateListSigningCertificates,\n paginateListUserPolicies,\n paginateListUserTags,\n paginateListUsers,\n paginateListVirtualMFADevices,\n paginateSimulateCustomPolicy,\n paginateSimulatePrincipalPolicy,\n waitForInstanceProfileExists,\n waitUntilInstanceProfileExists,\n waitForPolicyExists,\n waitUntilPolicyExists,\n waitForRoleExists,\n waitUntilRoleExists,\n waitForUserExists,\n waitUntilUserExists,\n AccessAdvisorUsageGranularityType,\n StatusType,\n AccountNotManagementOrDelegatedAdministratorException,\n InvalidInputException,\n LimitExceededException,\n NoSuchEntityException,\n ServiceFailureException,\n EntityAlreadyExistsException,\n UnmodifiableEntityException,\n AssertionEncryptionModeType,\n AssignmentStatusType,\n PermissionsBoundaryAttachmentType,\n PolicyNotAttachableException,\n EntityTemporarilyUnmodifiableException,\n InvalidUserTypeException,\n PasswordPolicyViolationException,\n ConcurrentModificationException,\n OpenIdIdpCommunicationErrorException,\n MalformedPolicyDocumentException,\n ServiceNotSupportedException,\n DeleteConflictException,\n FeatureType,\n OrganizationNotFoundException,\n OrganizationNotInAllFeaturesModeException,\n ServiceAccessNotEnabledException,\n InvalidAuthenticationCodeException,\n CallerIsNotManagementAccountException,\n ReportStateType,\n ReportGenerationLimitExceededException,\n EntityType,\n SummaryKeyType,\n CredentialReportExpiredException,\n CredentialReportNotPresentException,\n CredentialReportNotReadyException,\n ReportFormatType,\n SortKeyType,\n JobStatusType,\n PolicyOwnerEntityType,\n DeletionTaskStatusType,\n EncodingType,\n UnrecognizedPublicKeyEncodingException,\n PolicyUsageType,\n PolicyScopeType,\n PolicyType,\n GlobalEndpointTokenVersion,\n PolicyEvaluationException,\n ContextKeyTypeEnum,\n AccessKeyFilterSensitiveLog,\n ChangePasswordRequestFilterSensitiveLog,\n CreateAccessKeyResponseFilterSensitiveLog,\n CreateLoginProfileRequestFilterSensitiveLog,\n CreateSAMLProviderRequestFilterSensitiveLog,\n ServiceSpecificCredentialFilterSensitiveLog,\n CreateServiceSpecificCredentialResponseFilterSensitiveLog,\n VirtualMFADeviceFilterSensitiveLog,\n CreateVirtualMFADeviceResponseFilterSensitiveLog,\n ListVirtualMFADevicesResponseFilterSensitiveLog,\n ResetServiceSpecificCredentialResponseFilterSensitiveLog,\n PolicyEvaluationDecisionType,\n PolicySourceType,\n KeyPairMismatchException,\n MalformedCertificateException,\n DuplicateCertificateException,\n InvalidCertificateException,\n DuplicateSSHPublicKeyException,\n InvalidPublicKeyException,\n UpdateLoginProfileRequestFilterSensitiveLog,\n UpdateSAMLProviderRequestFilterSensitiveLog,\n UploadServerCertificateRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2010-05-08\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultIAMHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"IAM\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultKMSHttpAuthSchemeProvider = exports.defaultKMSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultKMSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultKMSHttpAuthSchemeParametersProvider = defaultKMSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"kms\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultKMSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultKMSHttpAuthSchemeProvider = defaultKMSHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://kms-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://kms.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AlgorithmSpec: () => AlgorithmSpec,\n AlreadyExistsException: () => AlreadyExistsException,\n CancelKeyDeletionCommand: () => CancelKeyDeletionCommand,\n CloudHsmClusterInUseException: () => CloudHsmClusterInUseException,\n CloudHsmClusterInvalidConfigurationException: () => CloudHsmClusterInvalidConfigurationException,\n CloudHsmClusterNotActiveException: () => CloudHsmClusterNotActiveException,\n CloudHsmClusterNotFoundException: () => CloudHsmClusterNotFoundException,\n CloudHsmClusterNotRelatedException: () => CloudHsmClusterNotRelatedException,\n ConflictException: () => ConflictException,\n ConnectCustomKeyStoreCommand: () => ConnectCustomKeyStoreCommand,\n ConnectionErrorCodeType: () => ConnectionErrorCodeType,\n ConnectionStateType: () => ConnectionStateType,\n CreateAliasCommand: () => CreateAliasCommand,\n CreateCustomKeyStoreCommand: () => CreateCustomKeyStoreCommand,\n CreateCustomKeyStoreRequestFilterSensitiveLog: () => CreateCustomKeyStoreRequestFilterSensitiveLog,\n CreateGrantCommand: () => CreateGrantCommand,\n CreateKeyCommand: () => CreateKeyCommand,\n CustomKeyStoreHasCMKsException: () => CustomKeyStoreHasCMKsException,\n CustomKeyStoreInvalidStateException: () => CustomKeyStoreInvalidStateException,\n CustomKeyStoreNameInUseException: () => CustomKeyStoreNameInUseException,\n CustomKeyStoreNotFoundException: () => CustomKeyStoreNotFoundException,\n CustomKeyStoreType: () => CustomKeyStoreType,\n CustomKeyStoresListEntryFilterSensitiveLog: () => CustomKeyStoresListEntryFilterSensitiveLog,\n CustomerMasterKeySpec: () => CustomerMasterKeySpec,\n DataKeyPairSpec: () => DataKeyPairSpec,\n DataKeySpec: () => DataKeySpec,\n DecryptCommand: () => DecryptCommand,\n DecryptResponseFilterSensitiveLog: () => DecryptResponseFilterSensitiveLog,\n DeleteAliasCommand: () => DeleteAliasCommand,\n DeleteCustomKeyStoreCommand: () => DeleteCustomKeyStoreCommand,\n DeleteImportedKeyMaterialCommand: () => DeleteImportedKeyMaterialCommand,\n DependencyTimeoutException: () => DependencyTimeoutException,\n DeriveSharedSecretCommand: () => DeriveSharedSecretCommand,\n DeriveSharedSecretResponseFilterSensitiveLog: () => DeriveSharedSecretResponseFilterSensitiveLog,\n DescribeCustomKeyStoresCommand: () => DescribeCustomKeyStoresCommand,\n DescribeCustomKeyStoresResponseFilterSensitiveLog: () => DescribeCustomKeyStoresResponseFilterSensitiveLog,\n DescribeKeyCommand: () => DescribeKeyCommand,\n DisableKeyCommand: () => DisableKeyCommand,\n DisableKeyRotationCommand: () => DisableKeyRotationCommand,\n DisabledException: () => DisabledException,\n DisconnectCustomKeyStoreCommand: () => DisconnectCustomKeyStoreCommand,\n DryRunOperationException: () => DryRunOperationException,\n EnableKeyCommand: () => EnableKeyCommand,\n EnableKeyRotationCommand: () => EnableKeyRotationCommand,\n EncryptCommand: () => EncryptCommand,\n EncryptRequestFilterSensitiveLog: () => EncryptRequestFilterSensitiveLog,\n EncryptionAlgorithmSpec: () => EncryptionAlgorithmSpec,\n ExpirationModelType: () => ExpirationModelType,\n ExpiredImportTokenException: () => ExpiredImportTokenException,\n GenerateDataKeyCommand: () => GenerateDataKeyCommand,\n GenerateDataKeyPairCommand: () => GenerateDataKeyPairCommand,\n GenerateDataKeyPairResponseFilterSensitiveLog: () => GenerateDataKeyPairResponseFilterSensitiveLog,\n GenerateDataKeyPairWithoutPlaintextCommand: () => GenerateDataKeyPairWithoutPlaintextCommand,\n GenerateDataKeyResponseFilterSensitiveLog: () => GenerateDataKeyResponseFilterSensitiveLog,\n GenerateDataKeyWithoutPlaintextCommand: () => GenerateDataKeyWithoutPlaintextCommand,\n GenerateMacCommand: () => GenerateMacCommand,\n GenerateMacRequestFilterSensitiveLog: () => GenerateMacRequestFilterSensitiveLog,\n GenerateRandomCommand: () => GenerateRandomCommand,\n GenerateRandomResponseFilterSensitiveLog: () => GenerateRandomResponseFilterSensitiveLog,\n GetKeyPolicyCommand: () => GetKeyPolicyCommand,\n GetKeyRotationStatusCommand: () => GetKeyRotationStatusCommand,\n GetParametersForImportCommand: () => GetParametersForImportCommand,\n GetParametersForImportResponseFilterSensitiveLog: () => GetParametersForImportResponseFilterSensitiveLog,\n GetPublicKeyCommand: () => GetPublicKeyCommand,\n GrantOperation: () => GrantOperation,\n ImportKeyMaterialCommand: () => ImportKeyMaterialCommand,\n IncorrectKeyException: () => IncorrectKeyException,\n IncorrectKeyMaterialException: () => IncorrectKeyMaterialException,\n IncorrectTrustAnchorException: () => IncorrectTrustAnchorException,\n InvalidAliasNameException: () => InvalidAliasNameException,\n InvalidArnException: () => InvalidArnException,\n InvalidCiphertextException: () => InvalidCiphertextException,\n InvalidGrantIdException: () => InvalidGrantIdException,\n InvalidGrantTokenException: () => InvalidGrantTokenException,\n InvalidImportTokenException: () => InvalidImportTokenException,\n InvalidKeyUsageException: () => InvalidKeyUsageException,\n InvalidMarkerException: () => InvalidMarkerException,\n KMS: () => KMS,\n KMSClient: () => KMSClient,\n KMSInternalException: () => KMSInternalException,\n KMSInvalidMacException: () => KMSInvalidMacException,\n KMSInvalidSignatureException: () => KMSInvalidSignatureException,\n KMSInvalidStateException: () => KMSInvalidStateException,\n KMSServiceException: () => KMSServiceException,\n KeyAgreementAlgorithmSpec: () => KeyAgreementAlgorithmSpec,\n KeyEncryptionMechanism: () => KeyEncryptionMechanism,\n KeyManagerType: () => KeyManagerType,\n KeySpec: () => KeySpec,\n KeyState: () => KeyState,\n KeyUnavailableException: () => KeyUnavailableException,\n KeyUsageType: () => KeyUsageType,\n LimitExceededException: () => LimitExceededException,\n ListAliasesCommand: () => ListAliasesCommand,\n ListGrantsCommand: () => ListGrantsCommand,\n ListKeyPoliciesCommand: () => ListKeyPoliciesCommand,\n ListKeyRotationsCommand: () => ListKeyRotationsCommand,\n ListKeysCommand: () => ListKeysCommand,\n ListResourceTagsCommand: () => ListResourceTagsCommand,\n ListRetirableGrantsCommand: () => ListRetirableGrantsCommand,\n MacAlgorithmSpec: () => MacAlgorithmSpec,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n MessageType: () => MessageType,\n MultiRegionKeyType: () => MultiRegionKeyType,\n NotFoundException: () => NotFoundException,\n OriginType: () => OriginType,\n PutKeyPolicyCommand: () => PutKeyPolicyCommand,\n ReEncryptCommand: () => ReEncryptCommand,\n ReplicateKeyCommand: () => ReplicateKeyCommand,\n RetireGrantCommand: () => RetireGrantCommand,\n RevokeGrantCommand: () => RevokeGrantCommand,\n RotateKeyOnDemandCommand: () => RotateKeyOnDemandCommand,\n RotationType: () => RotationType,\n ScheduleKeyDeletionCommand: () => ScheduleKeyDeletionCommand,\n SignCommand: () => SignCommand,\n SignRequestFilterSensitiveLog: () => SignRequestFilterSensitiveLog,\n SigningAlgorithmSpec: () => SigningAlgorithmSpec,\n TagException: () => TagException,\n TagResourceCommand: () => TagResourceCommand,\n UnsupportedOperationException: () => UnsupportedOperationException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateAliasCommand: () => UpdateAliasCommand,\n UpdateCustomKeyStoreCommand: () => UpdateCustomKeyStoreCommand,\n UpdateCustomKeyStoreRequestFilterSensitiveLog: () => UpdateCustomKeyStoreRequestFilterSensitiveLog,\n UpdateKeyDescriptionCommand: () => UpdateKeyDescriptionCommand,\n UpdatePrimaryRegionCommand: () => UpdatePrimaryRegionCommand,\n VerifyCommand: () => VerifyCommand,\n VerifyMacCommand: () => VerifyMacCommand,\n VerifyMacRequestFilterSensitiveLog: () => VerifyMacRequestFilterSensitiveLog,\n VerifyRequestFilterSensitiveLog: () => VerifyRequestFilterSensitiveLog,\n WrappingKeySpec: () => WrappingKeySpec,\n XksKeyAlreadyInUseException: () => XksKeyAlreadyInUseException,\n XksKeyInvalidConfigurationException: () => XksKeyInvalidConfigurationException,\n XksKeyNotFoundException: () => XksKeyNotFoundException,\n XksProxyAuthenticationCredentialTypeFilterSensitiveLog: () => XksProxyAuthenticationCredentialTypeFilterSensitiveLog,\n XksProxyConfigurationTypeFilterSensitiveLog: () => XksProxyConfigurationTypeFilterSensitiveLog,\n XksProxyConnectivityType: () => XksProxyConnectivityType,\n XksProxyIncorrectAuthenticationCredentialException: () => XksProxyIncorrectAuthenticationCredentialException,\n XksProxyInvalidConfigurationException: () => XksProxyInvalidConfigurationException,\n XksProxyInvalidResponseException: () => XksProxyInvalidResponseException,\n XksProxyUriEndpointInUseException: () => XksProxyUriEndpointInUseException,\n XksProxyUriInUseException: () => XksProxyUriInUseException,\n XksProxyUriUnreachableException: () => XksProxyUriUnreachableException,\n XksProxyVpcEndpointServiceInUseException: () => XksProxyVpcEndpointServiceInUseException,\n XksProxyVpcEndpointServiceInvalidConfigurationException: () => XksProxyVpcEndpointServiceInvalidConfigurationException,\n XksProxyVpcEndpointServiceNotFoundException: () => XksProxyVpcEndpointServiceNotFoundException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeCustomKeyStores: () => paginateDescribeCustomKeyStores,\n paginateListAliases: () => paginateListAliases,\n paginateListGrants: () => paginateListGrants,\n paginateListKeyPolicies: () => paginateListKeyPolicies,\n paginateListKeyRotations: () => paginateListKeyRotations,\n paginateListKeys: () => paginateListKeys,\n paginateListResourceTags: () => paginateListResourceTags,\n paginateListRetirableGrants: () => paginateListRetirableGrants\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/KMSClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"kms\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/KMSClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/KMSClient.ts\nvar KMSClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"KMSClient\");\n }\n /**\n * The resolved configuration of KMSClient class. This is resolved and normalized from the {@link KMSClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultKMSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/KMS.ts\n\n\n// src/commands/CancelKeyDeletionCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/KMSServiceException.ts\n\nvar KMSServiceException = class _KMSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"KMSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _KMSServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar AlgorithmSpec = {\n RSAES_OAEP_SHA_1: \"RSAES_OAEP_SHA_1\",\n RSAES_OAEP_SHA_256: \"RSAES_OAEP_SHA_256\",\n RSAES_PKCS1_V1_5: \"RSAES_PKCS1_V1_5\",\n RSA_AES_KEY_WRAP_SHA_1: \"RSA_AES_KEY_WRAP_SHA_1\",\n RSA_AES_KEY_WRAP_SHA_256: \"RSA_AES_KEY_WRAP_SHA_256\",\n SM2PKE: \"SM2PKE\"\n};\nvar AlreadyExistsException = class _AlreadyExistsException extends KMSServiceException {\n static {\n __name(this, \"AlreadyExistsException\");\n }\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AlreadyExistsException.prototype);\n }\n};\nvar DependencyTimeoutException = class _DependencyTimeoutException extends KMSServiceException {\n static {\n __name(this, \"DependencyTimeoutException\");\n }\n name = \"DependencyTimeoutException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DependencyTimeoutException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _DependencyTimeoutException.prototype);\n }\n};\nvar InvalidArnException = class _InvalidArnException extends KMSServiceException {\n static {\n __name(this, \"InvalidArnException\");\n }\n name = \"InvalidArnException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidArnException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidArnException.prototype);\n }\n};\nvar KMSInternalException = class _KMSInternalException extends KMSServiceException {\n static {\n __name(this, \"KMSInternalException\");\n }\n name = \"KMSInternalException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInternalException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInternalException.prototype);\n }\n};\nvar KMSInvalidStateException = class _KMSInvalidStateException extends KMSServiceException {\n static {\n __name(this, \"KMSInvalidStateException\");\n }\n name = \"KMSInvalidStateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidStateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidStateException.prototype);\n }\n};\nvar NotFoundException = class _NotFoundException extends KMSServiceException {\n static {\n __name(this, \"NotFoundException\");\n }\n name = \"NotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotFoundException.prototype);\n }\n};\nvar CloudHsmClusterInUseException = class _CloudHsmClusterInUseException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterInUseException\");\n }\n name = \"CloudHsmClusterInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterInUseException.prototype);\n }\n};\nvar CloudHsmClusterInvalidConfigurationException = class _CloudHsmClusterInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterInvalidConfigurationException\");\n }\n name = \"CloudHsmClusterInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterInvalidConfigurationException.prototype);\n }\n};\nvar CloudHsmClusterNotActiveException = class _CloudHsmClusterNotActiveException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterNotActiveException\");\n }\n name = \"CloudHsmClusterNotActiveException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterNotActiveException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterNotActiveException.prototype);\n }\n};\nvar CloudHsmClusterNotFoundException = class _CloudHsmClusterNotFoundException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterNotFoundException\");\n }\n name = \"CloudHsmClusterNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterNotFoundException.prototype);\n }\n};\nvar CloudHsmClusterNotRelatedException = class _CloudHsmClusterNotRelatedException extends KMSServiceException {\n static {\n __name(this, \"CloudHsmClusterNotRelatedException\");\n }\n name = \"CloudHsmClusterNotRelatedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CloudHsmClusterNotRelatedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CloudHsmClusterNotRelatedException.prototype);\n }\n};\nvar ConflictException = class _ConflictException extends KMSServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar CustomKeyStoreInvalidStateException = class _CustomKeyStoreInvalidStateException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreInvalidStateException\");\n }\n name = \"CustomKeyStoreInvalidStateException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreInvalidStateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreInvalidStateException.prototype);\n }\n};\nvar CustomKeyStoreNotFoundException = class _CustomKeyStoreNotFoundException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreNotFoundException\");\n }\n name = \"CustomKeyStoreNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreNotFoundException.prototype);\n }\n};\nvar ConnectionErrorCodeType = {\n CLUSTER_NOT_FOUND: \"CLUSTER_NOT_FOUND\",\n INSUFFICIENT_CLOUDHSM_HSMS: \"INSUFFICIENT_CLOUDHSM_HSMS\",\n INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET: \"INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET\",\n INTERNAL_ERROR: \"INTERNAL_ERROR\",\n INVALID_CREDENTIALS: \"INVALID_CREDENTIALS\",\n NETWORK_ERRORS: \"NETWORK_ERRORS\",\n SUBNET_NOT_FOUND: \"SUBNET_NOT_FOUND\",\n USER_LOCKED_OUT: \"USER_LOCKED_OUT\",\n USER_LOGGED_IN: \"USER_LOGGED_IN\",\n USER_NOT_FOUND: \"USER_NOT_FOUND\",\n XKS_PROXY_ACCESS_DENIED: \"XKS_PROXY_ACCESS_DENIED\",\n XKS_PROXY_INVALID_CONFIGURATION: \"XKS_PROXY_INVALID_CONFIGURATION\",\n XKS_PROXY_INVALID_RESPONSE: \"XKS_PROXY_INVALID_RESPONSE\",\n XKS_PROXY_INVALID_TLS_CONFIGURATION: \"XKS_PROXY_INVALID_TLS_CONFIGURATION\",\n XKS_PROXY_NOT_REACHABLE: \"XKS_PROXY_NOT_REACHABLE\",\n XKS_PROXY_TIMED_OUT: \"XKS_PROXY_TIMED_OUT\",\n XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION: \"XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION\",\n XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND: \"XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND\"\n};\nvar ConnectionStateType = {\n CONNECTED: \"CONNECTED\",\n CONNECTING: \"CONNECTING\",\n DISCONNECTED: \"DISCONNECTED\",\n DISCONNECTING: \"DISCONNECTING\",\n FAILED: \"FAILED\"\n};\nvar InvalidAliasNameException = class _InvalidAliasNameException extends KMSServiceException {\n static {\n __name(this, \"InvalidAliasNameException\");\n }\n name = \"InvalidAliasNameException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAliasNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAliasNameException.prototype);\n }\n};\nvar LimitExceededException = class _LimitExceededException extends KMSServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n }\n};\nvar CustomKeyStoreType = {\n AWS_CLOUDHSM: \"AWS_CLOUDHSM\",\n EXTERNAL_KEY_STORE: \"EXTERNAL_KEY_STORE\"\n};\nvar XksProxyConnectivityType = {\n PUBLIC_ENDPOINT: \"PUBLIC_ENDPOINT\",\n VPC_ENDPOINT_SERVICE: \"VPC_ENDPOINT_SERVICE\"\n};\nvar CustomKeyStoreNameInUseException = class _CustomKeyStoreNameInUseException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreNameInUseException\");\n }\n name = \"CustomKeyStoreNameInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreNameInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreNameInUseException.prototype);\n }\n};\nvar IncorrectTrustAnchorException = class _IncorrectTrustAnchorException extends KMSServiceException {\n static {\n __name(this, \"IncorrectTrustAnchorException\");\n }\n name = \"IncorrectTrustAnchorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncorrectTrustAnchorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncorrectTrustAnchorException.prototype);\n }\n};\nvar XksProxyIncorrectAuthenticationCredentialException = class _XksProxyIncorrectAuthenticationCredentialException extends KMSServiceException {\n static {\n __name(this, \"XksProxyIncorrectAuthenticationCredentialException\");\n }\n name = \"XksProxyIncorrectAuthenticationCredentialException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyIncorrectAuthenticationCredentialException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyIncorrectAuthenticationCredentialException.prototype);\n }\n};\nvar XksProxyInvalidConfigurationException = class _XksProxyInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"XksProxyInvalidConfigurationException\");\n }\n name = \"XksProxyInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyInvalidConfigurationException.prototype);\n }\n};\nvar XksProxyInvalidResponseException = class _XksProxyInvalidResponseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyInvalidResponseException\");\n }\n name = \"XksProxyInvalidResponseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyInvalidResponseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyInvalidResponseException.prototype);\n }\n};\nvar XksProxyUriEndpointInUseException = class _XksProxyUriEndpointInUseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyUriEndpointInUseException\");\n }\n name = \"XksProxyUriEndpointInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyUriEndpointInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyUriEndpointInUseException.prototype);\n }\n};\nvar XksProxyUriInUseException = class _XksProxyUriInUseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyUriInUseException\");\n }\n name = \"XksProxyUriInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyUriInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyUriInUseException.prototype);\n }\n};\nvar XksProxyUriUnreachableException = class _XksProxyUriUnreachableException extends KMSServiceException {\n static {\n __name(this, \"XksProxyUriUnreachableException\");\n }\n name = \"XksProxyUriUnreachableException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyUriUnreachableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyUriUnreachableException.prototype);\n }\n};\nvar XksProxyVpcEndpointServiceInUseException = class _XksProxyVpcEndpointServiceInUseException extends KMSServiceException {\n static {\n __name(this, \"XksProxyVpcEndpointServiceInUseException\");\n }\n name = \"XksProxyVpcEndpointServiceInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyVpcEndpointServiceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyVpcEndpointServiceInUseException.prototype);\n }\n};\nvar XksProxyVpcEndpointServiceInvalidConfigurationException = class _XksProxyVpcEndpointServiceInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"XksProxyVpcEndpointServiceInvalidConfigurationException\");\n }\n name = \"XksProxyVpcEndpointServiceInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyVpcEndpointServiceInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyVpcEndpointServiceInvalidConfigurationException.prototype);\n }\n};\nvar XksProxyVpcEndpointServiceNotFoundException = class _XksProxyVpcEndpointServiceNotFoundException extends KMSServiceException {\n static {\n __name(this, \"XksProxyVpcEndpointServiceNotFoundException\");\n }\n name = \"XksProxyVpcEndpointServiceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksProxyVpcEndpointServiceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksProxyVpcEndpointServiceNotFoundException.prototype);\n }\n};\nvar GrantOperation = {\n CreateGrant: \"CreateGrant\",\n Decrypt: \"Decrypt\",\n DeriveSharedSecret: \"DeriveSharedSecret\",\n DescribeKey: \"DescribeKey\",\n Encrypt: \"Encrypt\",\n GenerateDataKey: \"GenerateDataKey\",\n GenerateDataKeyPair: \"GenerateDataKeyPair\",\n GenerateDataKeyPairWithoutPlaintext: \"GenerateDataKeyPairWithoutPlaintext\",\n GenerateDataKeyWithoutPlaintext: \"GenerateDataKeyWithoutPlaintext\",\n GenerateMac: \"GenerateMac\",\n GetPublicKey: \"GetPublicKey\",\n ReEncryptFrom: \"ReEncryptFrom\",\n ReEncryptTo: \"ReEncryptTo\",\n RetireGrant: \"RetireGrant\",\n Sign: \"Sign\",\n Verify: \"Verify\",\n VerifyMac: \"VerifyMac\"\n};\nvar DisabledException = class _DisabledException extends KMSServiceException {\n static {\n __name(this, \"DisabledException\");\n }\n name = \"DisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DisabledException.prototype);\n }\n};\nvar DryRunOperationException = class _DryRunOperationException extends KMSServiceException {\n static {\n __name(this, \"DryRunOperationException\");\n }\n name = \"DryRunOperationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DryRunOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DryRunOperationException.prototype);\n }\n};\nvar InvalidGrantTokenException = class _InvalidGrantTokenException extends KMSServiceException {\n static {\n __name(this, \"InvalidGrantTokenException\");\n }\n name = \"InvalidGrantTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantTokenException.prototype);\n }\n};\nvar CustomerMasterKeySpec = {\n ECC_NIST_P256: \"ECC_NIST_P256\",\n ECC_NIST_P384: \"ECC_NIST_P384\",\n ECC_NIST_P521: \"ECC_NIST_P521\",\n ECC_SECG_P256K1: \"ECC_SECG_P256K1\",\n HMAC_224: \"HMAC_224\",\n HMAC_256: \"HMAC_256\",\n HMAC_384: \"HMAC_384\",\n HMAC_512: \"HMAC_512\",\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\",\n SYMMETRIC_DEFAULT: \"SYMMETRIC_DEFAULT\"\n};\nvar KeySpec = {\n ECC_NIST_P256: \"ECC_NIST_P256\",\n ECC_NIST_P384: \"ECC_NIST_P384\",\n ECC_NIST_P521: \"ECC_NIST_P521\",\n ECC_SECG_P256K1: \"ECC_SECG_P256K1\",\n HMAC_224: \"HMAC_224\",\n HMAC_256: \"HMAC_256\",\n HMAC_384: \"HMAC_384\",\n HMAC_512: \"HMAC_512\",\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\",\n SYMMETRIC_DEFAULT: \"SYMMETRIC_DEFAULT\"\n};\nvar KeyUsageType = {\n ENCRYPT_DECRYPT: \"ENCRYPT_DECRYPT\",\n GENERATE_VERIFY_MAC: \"GENERATE_VERIFY_MAC\",\n KEY_AGREEMENT: \"KEY_AGREEMENT\",\n SIGN_VERIFY: \"SIGN_VERIFY\"\n};\nvar OriginType = {\n AWS_CLOUDHSM: \"AWS_CLOUDHSM\",\n AWS_KMS: \"AWS_KMS\",\n EXTERNAL: \"EXTERNAL\",\n EXTERNAL_KEY_STORE: \"EXTERNAL_KEY_STORE\"\n};\nvar EncryptionAlgorithmSpec = {\n RSAES_OAEP_SHA_1: \"RSAES_OAEP_SHA_1\",\n RSAES_OAEP_SHA_256: \"RSAES_OAEP_SHA_256\",\n SM2PKE: \"SM2PKE\",\n SYMMETRIC_DEFAULT: \"SYMMETRIC_DEFAULT\"\n};\nvar ExpirationModelType = {\n KEY_MATERIAL_DOES_NOT_EXPIRE: \"KEY_MATERIAL_DOES_NOT_EXPIRE\",\n KEY_MATERIAL_EXPIRES: \"KEY_MATERIAL_EXPIRES\"\n};\nvar KeyAgreementAlgorithmSpec = {\n ECDH: \"ECDH\"\n};\nvar KeyManagerType = {\n AWS: \"AWS\",\n CUSTOMER: \"CUSTOMER\"\n};\nvar KeyState = {\n Creating: \"Creating\",\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n PendingDeletion: \"PendingDeletion\",\n PendingImport: \"PendingImport\",\n PendingReplicaDeletion: \"PendingReplicaDeletion\",\n Unavailable: \"Unavailable\",\n Updating: \"Updating\"\n};\nvar MacAlgorithmSpec = {\n HMAC_SHA_224: \"HMAC_SHA_224\",\n HMAC_SHA_256: \"HMAC_SHA_256\",\n HMAC_SHA_384: \"HMAC_SHA_384\",\n HMAC_SHA_512: \"HMAC_SHA_512\"\n};\nvar MultiRegionKeyType = {\n PRIMARY: \"PRIMARY\",\n REPLICA: \"REPLICA\"\n};\nvar SigningAlgorithmSpec = {\n ECDSA_SHA_256: \"ECDSA_SHA_256\",\n ECDSA_SHA_384: \"ECDSA_SHA_384\",\n ECDSA_SHA_512: \"ECDSA_SHA_512\",\n RSASSA_PKCS1_V1_5_SHA_256: \"RSASSA_PKCS1_V1_5_SHA_256\",\n RSASSA_PKCS1_V1_5_SHA_384: \"RSASSA_PKCS1_V1_5_SHA_384\",\n RSASSA_PKCS1_V1_5_SHA_512: \"RSASSA_PKCS1_V1_5_SHA_512\",\n RSASSA_PSS_SHA_256: \"RSASSA_PSS_SHA_256\",\n RSASSA_PSS_SHA_384: \"RSASSA_PSS_SHA_384\",\n RSASSA_PSS_SHA_512: \"RSASSA_PSS_SHA_512\",\n SM2DSA: \"SM2DSA\"\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends KMSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar TagException = class _TagException extends KMSServiceException {\n static {\n __name(this, \"TagException\");\n }\n name = \"TagException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TagException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TagException.prototype);\n }\n};\nvar UnsupportedOperationException = class _UnsupportedOperationException extends KMSServiceException {\n static {\n __name(this, \"UnsupportedOperationException\");\n }\n name = \"UnsupportedOperationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedOperationException.prototype);\n }\n};\nvar XksKeyAlreadyInUseException = class _XksKeyAlreadyInUseException extends KMSServiceException {\n static {\n __name(this, \"XksKeyAlreadyInUseException\");\n }\n name = \"XksKeyAlreadyInUseException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksKeyAlreadyInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksKeyAlreadyInUseException.prototype);\n }\n};\nvar XksKeyInvalidConfigurationException = class _XksKeyInvalidConfigurationException extends KMSServiceException {\n static {\n __name(this, \"XksKeyInvalidConfigurationException\");\n }\n name = \"XksKeyInvalidConfigurationException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksKeyInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksKeyInvalidConfigurationException.prototype);\n }\n};\nvar XksKeyNotFoundException = class _XksKeyNotFoundException extends KMSServiceException {\n static {\n __name(this, \"XksKeyNotFoundException\");\n }\n name = \"XksKeyNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"XksKeyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _XksKeyNotFoundException.prototype);\n }\n};\nvar CustomKeyStoreHasCMKsException = class _CustomKeyStoreHasCMKsException extends KMSServiceException {\n static {\n __name(this, \"CustomKeyStoreHasCMKsException\");\n }\n name = \"CustomKeyStoreHasCMKsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomKeyStoreHasCMKsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomKeyStoreHasCMKsException.prototype);\n }\n};\nvar DataKeyPairSpec = {\n ECC_NIST_P256: \"ECC_NIST_P256\",\n ECC_NIST_P384: \"ECC_NIST_P384\",\n ECC_NIST_P521: \"ECC_NIST_P521\",\n ECC_SECG_P256K1: \"ECC_SECG_P256K1\",\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\"\n};\nvar DataKeySpec = {\n AES_128: \"AES_128\",\n AES_256: \"AES_256\"\n};\nvar KeyEncryptionMechanism = {\n RSAES_OAEP_SHA_256: \"RSAES_OAEP_SHA_256\"\n};\nvar IncorrectKeyException = class _IncorrectKeyException extends KMSServiceException {\n static {\n __name(this, \"IncorrectKeyException\");\n }\n name = \"IncorrectKeyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncorrectKeyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncorrectKeyException.prototype);\n }\n};\nvar InvalidCiphertextException = class _InvalidCiphertextException extends KMSServiceException {\n static {\n __name(this, \"InvalidCiphertextException\");\n }\n name = \"InvalidCiphertextException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCiphertextException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCiphertextException.prototype);\n }\n};\nvar InvalidKeyUsageException = class _InvalidKeyUsageException extends KMSServiceException {\n static {\n __name(this, \"InvalidKeyUsageException\");\n }\n name = \"InvalidKeyUsageException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeyUsageException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeyUsageException.prototype);\n }\n};\nvar KeyUnavailableException = class _KeyUnavailableException extends KMSServiceException {\n static {\n __name(this, \"KeyUnavailableException\");\n }\n name = \"KeyUnavailableException\";\n $fault = \"server\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeyUnavailableException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeyUnavailableException.prototype);\n }\n};\nvar InvalidMarkerException = class _InvalidMarkerException extends KMSServiceException {\n static {\n __name(this, \"InvalidMarkerException\");\n }\n name = \"InvalidMarkerException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidMarkerException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidMarkerException.prototype);\n }\n};\nvar ExpiredImportTokenException = class _ExpiredImportTokenException extends KMSServiceException {\n static {\n __name(this, \"ExpiredImportTokenException\");\n }\n name = \"ExpiredImportTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredImportTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredImportTokenException.prototype);\n }\n};\nvar WrappingKeySpec = {\n RSA_2048: \"RSA_2048\",\n RSA_3072: \"RSA_3072\",\n RSA_4096: \"RSA_4096\",\n SM2: \"SM2\"\n};\nvar IncorrectKeyMaterialException = class _IncorrectKeyMaterialException extends KMSServiceException {\n static {\n __name(this, \"IncorrectKeyMaterialException\");\n }\n name = \"IncorrectKeyMaterialException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncorrectKeyMaterialException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncorrectKeyMaterialException.prototype);\n }\n};\nvar InvalidImportTokenException = class _InvalidImportTokenException extends KMSServiceException {\n static {\n __name(this, \"InvalidImportTokenException\");\n }\n name = \"InvalidImportTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidImportTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidImportTokenException.prototype);\n }\n};\nvar InvalidGrantIdException = class _InvalidGrantIdException extends KMSServiceException {\n static {\n __name(this, \"InvalidGrantIdException\");\n }\n name = \"InvalidGrantIdException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantIdException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantIdException.prototype);\n }\n};\nvar KMSInvalidMacException = class _KMSInvalidMacException extends KMSServiceException {\n static {\n __name(this, \"KMSInvalidMacException\");\n }\n name = \"KMSInvalidMacException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidMacException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidMacException.prototype);\n }\n};\nvar KMSInvalidSignatureException = class _KMSInvalidSignatureException extends KMSServiceException {\n static {\n __name(this, \"KMSInvalidSignatureException\");\n }\n name = \"KMSInvalidSignatureException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidSignatureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidSignatureException.prototype);\n }\n};\nvar RotationType = {\n AUTOMATIC: \"AUTOMATIC\",\n ON_DEMAND: \"ON_DEMAND\"\n};\nvar MessageType = {\n DIGEST: \"DIGEST\",\n RAW: \"RAW\"\n};\nvar XksProxyAuthenticationCredentialTypeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AccessKeyId && { AccessKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.RawSecretAccessKey && { RawSecretAccessKey: import_smithy_client.SENSITIVE_STRING }\n}), \"XksProxyAuthenticationCredentialTypeFilterSensitiveLog\");\nvar CreateCustomKeyStoreRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyStorePassword && { KeyStorePassword: import_smithy_client.SENSITIVE_STRING },\n ...obj.XksProxyAuthenticationCredential && {\n XksProxyAuthenticationCredential: XksProxyAuthenticationCredentialTypeFilterSensitiveLog(\n obj.XksProxyAuthenticationCredential\n )\n }\n}), \"CreateCustomKeyStoreRequestFilterSensitiveLog\");\nvar XksProxyConfigurationTypeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AccessKeyId && { AccessKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"XksProxyConfigurationTypeFilterSensitiveLog\");\nvar CustomKeyStoresListEntryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.XksProxyConfiguration && {\n XksProxyConfiguration: XksProxyConfigurationTypeFilterSensitiveLog(obj.XksProxyConfiguration)\n }\n}), \"CustomKeyStoresListEntryFilterSensitiveLog\");\nvar DecryptResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"DecryptResponseFilterSensitiveLog\");\nvar DeriveSharedSecretResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SharedSecret && { SharedSecret: import_smithy_client.SENSITIVE_STRING }\n}), \"DeriveSharedSecretResponseFilterSensitiveLog\");\nvar DescribeCustomKeyStoresResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.CustomKeyStores && {\n CustomKeyStores: obj.CustomKeyStores.map((item) => CustomKeyStoresListEntryFilterSensitiveLog(item))\n }\n}), \"DescribeCustomKeyStoresResponseFilterSensitiveLog\");\nvar EncryptRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"EncryptRequestFilterSensitiveLog\");\nvar GenerateDataKeyResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateDataKeyResponseFilterSensitiveLog\");\nvar GenerateDataKeyPairResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PrivateKeyPlaintext && { PrivateKeyPlaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateDataKeyPairResponseFilterSensitiveLog\");\nvar GenerateMacRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateMacRequestFilterSensitiveLog\");\nvar GenerateRandomResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Plaintext && { Plaintext: import_smithy_client.SENSITIVE_STRING }\n}), \"GenerateRandomResponseFilterSensitiveLog\");\nvar GetParametersForImportResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.PublicKey && { PublicKey: import_smithy_client.SENSITIVE_STRING }\n}), \"GetParametersForImportResponseFilterSensitiveLog\");\nvar SignRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"SignRequestFilterSensitiveLog\");\nvar UpdateCustomKeyStoreRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyStorePassword && { KeyStorePassword: import_smithy_client.SENSITIVE_STRING },\n ...obj.XksProxyAuthenticationCredential && {\n XksProxyAuthenticationCredential: XksProxyAuthenticationCredentialTypeFilterSensitiveLog(\n obj.XksProxyAuthenticationCredential\n )\n }\n}), \"UpdateCustomKeyStoreRequestFilterSensitiveLog\");\nvar VerifyRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"VerifyRequestFilterSensitiveLog\");\nvar VerifyMacRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"VerifyMacRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_CancelKeyDeletionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelKeyDeletion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelKeyDeletionCommand\");\nvar se_ConnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ConnectCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ConnectCustomKeyStoreCommand\");\nvar se_CreateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAliasCommand\");\nvar se_CreateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateCustomKeyStoreCommand\");\nvar se_CreateGrantCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateGrant\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateGrantCommand\");\nvar se_CreateKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateKeyCommand\");\nvar se_DecryptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Decrypt\");\n let body;\n body = JSON.stringify(se_DecryptRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DecryptCommand\");\nvar se_DeleteAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAliasCommand\");\nvar se_DeleteCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteCustomKeyStoreCommand\");\nvar se_DeleteImportedKeyMaterialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteImportedKeyMaterial\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteImportedKeyMaterialCommand\");\nvar se_DeriveSharedSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeriveSharedSecret\");\n let body;\n body = JSON.stringify(se_DeriveSharedSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeriveSharedSecretCommand\");\nvar se_DescribeCustomKeyStoresCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeCustomKeyStores\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeCustomKeyStoresCommand\");\nvar se_DescribeKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeKeyCommand\");\nvar se_DisableKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisableKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableKeyCommand\");\nvar se_DisableKeyRotationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisableKeyRotation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisableKeyRotationCommand\");\nvar se_DisconnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisconnectCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisconnectCustomKeyStoreCommand\");\nvar se_EnableKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"EnableKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableKeyCommand\");\nvar se_EnableKeyRotationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"EnableKeyRotation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EnableKeyRotationCommand\");\nvar se_EncryptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Encrypt\");\n let body;\n body = JSON.stringify(se_EncryptRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_EncryptCommand\");\nvar se_GenerateDataKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKey\");\n let body;\n body = JSON.stringify(se_GenerateDataKeyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyCommand\");\nvar se_GenerateDataKeyPairCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKeyPair\");\n let body;\n body = JSON.stringify(se_GenerateDataKeyPairRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyPairCommand\");\nvar se_GenerateDataKeyPairWithoutPlaintextCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKeyPairWithoutPlaintext\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyPairWithoutPlaintextCommand\");\nvar se_GenerateDataKeyWithoutPlaintextCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateDataKeyWithoutPlaintext\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateDataKeyWithoutPlaintextCommand\");\nvar se_GenerateMacCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateMac\");\n let body;\n body = JSON.stringify(se_GenerateMacRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateMacCommand\");\nvar se_GenerateRandomCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GenerateRandom\");\n let body;\n body = JSON.stringify(se_GenerateRandomRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GenerateRandomCommand\");\nvar se_GetKeyPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetKeyPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetKeyPolicyCommand\");\nvar se_GetKeyRotationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetKeyRotationStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetKeyRotationStatusCommand\");\nvar se_GetParametersForImportCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParametersForImport\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParametersForImportCommand\");\nvar se_GetPublicKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPublicKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPublicKeyCommand\");\nvar se_ImportKeyMaterialCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ImportKeyMaterial\");\n let body;\n body = JSON.stringify(se_ImportKeyMaterialRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ImportKeyMaterialCommand\");\nvar se_ListAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAliases\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAliasesCommand\");\nvar se_ListGrantsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListGrants\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListGrantsCommand\");\nvar se_ListKeyPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListKeyPolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListKeyPoliciesCommand\");\nvar se_ListKeyRotationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListKeyRotations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListKeyRotationsCommand\");\nvar se_ListKeysCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListKeys\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListKeysCommand\");\nvar se_ListResourceTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceTags\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceTagsCommand\");\nvar se_ListRetirableGrantsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListRetirableGrants\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListRetirableGrantsCommand\");\nvar se_PutKeyPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutKeyPolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutKeyPolicyCommand\");\nvar se_ReEncryptCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ReEncrypt\");\n let body;\n body = JSON.stringify(se_ReEncryptRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReEncryptCommand\");\nvar se_ReplicateKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ReplicateKey\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplicateKeyCommand\");\nvar se_RetireGrantCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RetireGrant\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RetireGrantCommand\");\nvar se_RevokeGrantCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RevokeGrant\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RevokeGrantCommand\");\nvar se_RotateKeyOnDemandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RotateKeyOnDemand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RotateKeyOnDemandCommand\");\nvar se_ScheduleKeyDeletionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ScheduleKeyDeletion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ScheduleKeyDeletionCommand\");\nvar se_SignCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Sign\");\n let body;\n body = JSON.stringify(se_SignRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SignCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAliasCommand\");\nvar se_UpdateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateCustomKeyStore\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateCustomKeyStoreCommand\");\nvar se_UpdateKeyDescriptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateKeyDescription\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateKeyDescriptionCommand\");\nvar se_UpdatePrimaryRegionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdatePrimaryRegion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdatePrimaryRegionCommand\");\nvar se_VerifyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"Verify\");\n let body;\n body = JSON.stringify(se_VerifyRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_VerifyCommand\");\nvar se_VerifyMacCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"VerifyMac\");\n let body;\n body = JSON.stringify(se_VerifyMacRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_VerifyMacCommand\");\nvar de_CancelKeyDeletionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelKeyDeletionCommand\");\nvar de_ConnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ConnectCustomKeyStoreCommand\");\nvar de_CreateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_CreateAliasCommand\");\nvar de_CreateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateCustomKeyStoreCommand\");\nvar de_CreateGrantCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateGrantCommand\");\nvar de_CreateKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateKeyCommand\");\nvar de_DecryptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DecryptResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DecryptCommand\");\nvar de_DeleteAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteAliasCommand\");\nvar de_DeleteCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteCustomKeyStoreCommand\");\nvar de_DeleteImportedKeyMaterialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DeleteImportedKeyMaterialCommand\");\nvar de_DeriveSharedSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeriveSharedSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeriveSharedSecretCommand\");\nvar de_DescribeCustomKeyStoresCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeCustomKeyStoresResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeCustomKeyStoresCommand\");\nvar de_DescribeKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeKeyCommand\");\nvar de_DisableKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisableKeyCommand\");\nvar de_DisableKeyRotationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_DisableKeyRotationCommand\");\nvar de_DisconnectCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisconnectCustomKeyStoreCommand\");\nvar de_EnableKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableKeyCommand\");\nvar de_EnableKeyRotationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_EnableKeyRotationCommand\");\nvar de_EncryptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_EncryptResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_EncryptCommand\");\nvar de_GenerateDataKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyCommand\");\nvar de_GenerateDataKeyPairCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyPairResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyPairCommand\");\nvar de_GenerateDataKeyPairWithoutPlaintextCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyPairWithoutPlaintextResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyPairWithoutPlaintextCommand\");\nvar de_GenerateDataKeyWithoutPlaintextCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateDataKeyWithoutPlaintextResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateDataKeyWithoutPlaintextCommand\");\nvar de_GenerateMacCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateMacResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateMacCommand\");\nvar de_GenerateRandomCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GenerateRandomResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GenerateRandomCommand\");\nvar de_GetKeyPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetKeyPolicyCommand\");\nvar de_GetKeyRotationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetKeyRotationStatusResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetKeyRotationStatusCommand\");\nvar de_GetParametersForImportCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParametersForImportResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParametersForImportCommand\");\nvar de_GetPublicKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetPublicKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPublicKeyCommand\");\nvar de_ImportKeyMaterialCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ImportKeyMaterialCommand\");\nvar de_ListAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListAliasesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAliasesCommand\");\nvar de_ListGrantsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListGrantsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListGrantsCommand\");\nvar de_ListKeyPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListKeyPoliciesCommand\");\nvar de_ListKeyRotationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListKeyRotationsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListKeyRotationsCommand\");\nvar de_ListKeysCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListKeysCommand\");\nvar de_ListResourceTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceTagsCommand\");\nvar de_ListRetirableGrantsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListGrantsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListRetirableGrantsCommand\");\nvar de_PutKeyPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_PutKeyPolicyCommand\");\nvar de_ReEncryptCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ReEncryptResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReEncryptCommand\");\nvar de_ReplicateKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ReplicateKeyResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplicateKeyCommand\");\nvar de_RetireGrantCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RetireGrantCommand\");\nvar de_RevokeGrantCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_RevokeGrantCommand\");\nvar de_RotateKeyOnDemandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RotateKeyOnDemandCommand\");\nvar de_ScheduleKeyDeletionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ScheduleKeyDeletionResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ScheduleKeyDeletionCommand\");\nvar de_SignCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_SignResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SignCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateAliasCommand\");\nvar de_UpdateCustomKeyStoreCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateCustomKeyStoreCommand\");\nvar de_UpdateKeyDescriptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdateKeyDescriptionCommand\");\nvar de_UpdatePrimaryRegionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UpdatePrimaryRegionCommand\");\nvar de_VerifyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_VerifyCommand\");\nvar de_VerifyMacCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_VerifyMacCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"DependencyTimeoutException\":\n case \"com.amazonaws.kms#DependencyTimeoutException\":\n throw await de_DependencyTimeoutExceptionRes(parsedOutput, context);\n case \"InvalidArnException\":\n case \"com.amazonaws.kms#InvalidArnException\":\n throw await de_InvalidArnExceptionRes(parsedOutput, context);\n case \"KMSInternalException\":\n case \"com.amazonaws.kms#KMSInternalException\":\n throw await de_KMSInternalExceptionRes(parsedOutput, context);\n case \"KMSInvalidStateException\":\n case \"com.amazonaws.kms#KMSInvalidStateException\":\n throw await de_KMSInvalidStateExceptionRes(parsedOutput, context);\n case \"NotFoundException\":\n case \"com.amazonaws.kms#NotFoundException\":\n throw await de_NotFoundExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterInvalidConfigurationException\":\n case \"com.amazonaws.kms#CloudHsmClusterInvalidConfigurationException\":\n throw await de_CloudHsmClusterInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterNotActiveException\":\n case \"com.amazonaws.kms#CloudHsmClusterNotActiveException\":\n throw await de_CloudHsmClusterNotActiveExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreInvalidStateException\":\n case \"com.amazonaws.kms#CustomKeyStoreInvalidStateException\":\n throw await de_CustomKeyStoreInvalidStateExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreNotFoundException\":\n case \"com.amazonaws.kms#CustomKeyStoreNotFoundException\":\n throw await de_CustomKeyStoreNotFoundExceptionRes(parsedOutput, context);\n case \"AlreadyExistsException\":\n case \"com.amazonaws.kms#AlreadyExistsException\":\n throw await de_AlreadyExistsExceptionRes(parsedOutput, context);\n case \"InvalidAliasNameException\":\n case \"com.amazonaws.kms#InvalidAliasNameException\":\n throw await de_InvalidAliasNameExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.kms#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterInUseException\":\n case \"com.amazonaws.kms#CloudHsmClusterInUseException\":\n throw await de_CloudHsmClusterInUseExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterNotFoundException\":\n case \"com.amazonaws.kms#CloudHsmClusterNotFoundException\":\n throw await de_CloudHsmClusterNotFoundExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreNameInUseException\":\n case \"com.amazonaws.kms#CustomKeyStoreNameInUseException\":\n throw await de_CustomKeyStoreNameInUseExceptionRes(parsedOutput, context);\n case \"IncorrectTrustAnchorException\":\n case \"com.amazonaws.kms#IncorrectTrustAnchorException\":\n throw await de_IncorrectTrustAnchorExceptionRes(parsedOutput, context);\n case \"XksProxyIncorrectAuthenticationCredentialException\":\n case \"com.amazonaws.kms#XksProxyIncorrectAuthenticationCredentialException\":\n throw await de_XksProxyIncorrectAuthenticationCredentialExceptionRes(parsedOutput, context);\n case \"XksProxyInvalidConfigurationException\":\n case \"com.amazonaws.kms#XksProxyInvalidConfigurationException\":\n throw await de_XksProxyInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"XksProxyInvalidResponseException\":\n case \"com.amazonaws.kms#XksProxyInvalidResponseException\":\n throw await de_XksProxyInvalidResponseExceptionRes(parsedOutput, context);\n case \"XksProxyUriEndpointInUseException\":\n case \"com.amazonaws.kms#XksProxyUriEndpointInUseException\":\n throw await de_XksProxyUriEndpointInUseExceptionRes(parsedOutput, context);\n case \"XksProxyUriInUseException\":\n case \"com.amazonaws.kms#XksProxyUriInUseException\":\n throw await de_XksProxyUriInUseExceptionRes(parsedOutput, context);\n case \"XksProxyUriUnreachableException\":\n case \"com.amazonaws.kms#XksProxyUriUnreachableException\":\n throw await de_XksProxyUriUnreachableExceptionRes(parsedOutput, context);\n case \"XksProxyVpcEndpointServiceInUseException\":\n case \"com.amazonaws.kms#XksProxyVpcEndpointServiceInUseException\":\n throw await de_XksProxyVpcEndpointServiceInUseExceptionRes(parsedOutput, context);\n case \"XksProxyVpcEndpointServiceInvalidConfigurationException\":\n case \"com.amazonaws.kms#XksProxyVpcEndpointServiceInvalidConfigurationException\":\n throw await de_XksProxyVpcEndpointServiceInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"XksProxyVpcEndpointServiceNotFoundException\":\n case \"com.amazonaws.kms#XksProxyVpcEndpointServiceNotFoundException\":\n throw await de_XksProxyVpcEndpointServiceNotFoundExceptionRes(parsedOutput, context);\n case \"DisabledException\":\n case \"com.amazonaws.kms#DisabledException\":\n throw await de_DisabledExceptionRes(parsedOutput, context);\n case \"DryRunOperationException\":\n case \"com.amazonaws.kms#DryRunOperationException\":\n throw await de_DryRunOperationExceptionRes(parsedOutput, context);\n case \"InvalidGrantTokenException\":\n case \"com.amazonaws.kms#InvalidGrantTokenException\":\n throw await de_InvalidGrantTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.kms#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"TagException\":\n case \"com.amazonaws.kms#TagException\":\n throw await de_TagExceptionRes(parsedOutput, context);\n case \"UnsupportedOperationException\":\n case \"com.amazonaws.kms#UnsupportedOperationException\":\n throw await de_UnsupportedOperationExceptionRes(parsedOutput, context);\n case \"XksKeyAlreadyInUseException\":\n case \"com.amazonaws.kms#XksKeyAlreadyInUseException\":\n throw await de_XksKeyAlreadyInUseExceptionRes(parsedOutput, context);\n case \"XksKeyInvalidConfigurationException\":\n case \"com.amazonaws.kms#XksKeyInvalidConfigurationException\":\n throw await de_XksKeyInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"XksKeyNotFoundException\":\n case \"com.amazonaws.kms#XksKeyNotFoundException\":\n throw await de_XksKeyNotFoundExceptionRes(parsedOutput, context);\n case \"IncorrectKeyException\":\n case \"com.amazonaws.kms#IncorrectKeyException\":\n throw await de_IncorrectKeyExceptionRes(parsedOutput, context);\n case \"InvalidCiphertextException\":\n case \"com.amazonaws.kms#InvalidCiphertextException\":\n throw await de_InvalidCiphertextExceptionRes(parsedOutput, context);\n case \"InvalidKeyUsageException\":\n case \"com.amazonaws.kms#InvalidKeyUsageException\":\n throw await de_InvalidKeyUsageExceptionRes(parsedOutput, context);\n case \"KeyUnavailableException\":\n case \"com.amazonaws.kms#KeyUnavailableException\":\n throw await de_KeyUnavailableExceptionRes(parsedOutput, context);\n case \"CustomKeyStoreHasCMKsException\":\n case \"com.amazonaws.kms#CustomKeyStoreHasCMKsException\":\n throw await de_CustomKeyStoreHasCMKsExceptionRes(parsedOutput, context);\n case \"InvalidMarkerException\":\n case \"com.amazonaws.kms#InvalidMarkerException\":\n throw await de_InvalidMarkerExceptionRes(parsedOutput, context);\n case \"ExpiredImportTokenException\":\n case \"com.amazonaws.kms#ExpiredImportTokenException\":\n throw await de_ExpiredImportTokenExceptionRes(parsedOutput, context);\n case \"IncorrectKeyMaterialException\":\n case \"com.amazonaws.kms#IncorrectKeyMaterialException\":\n throw await de_IncorrectKeyMaterialExceptionRes(parsedOutput, context);\n case \"InvalidImportTokenException\":\n case \"com.amazonaws.kms#InvalidImportTokenException\":\n throw await de_InvalidImportTokenExceptionRes(parsedOutput, context);\n case \"InvalidGrantIdException\":\n case \"com.amazonaws.kms#InvalidGrantIdException\":\n throw await de_InvalidGrantIdExceptionRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.kms#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"CloudHsmClusterNotRelatedException\":\n case \"com.amazonaws.kms#CloudHsmClusterNotRelatedException\":\n throw await de_CloudHsmClusterNotRelatedExceptionRes(parsedOutput, context);\n case \"KMSInvalidSignatureException\":\n case \"com.amazonaws.kms#KMSInvalidSignatureException\":\n throw await de_KMSInvalidSignatureExceptionRes(parsedOutput, context);\n case \"KMSInvalidMacException\":\n case \"com.amazonaws.kms#KMSInvalidMacException\":\n throw await de_KMSInvalidMacExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AlreadyExistsExceptionRes\");\nvar de_CloudHsmClusterInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterInUseExceptionRes\");\nvar de_CloudHsmClusterInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterInvalidConfigurationExceptionRes\");\nvar de_CloudHsmClusterNotActiveExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterNotActiveException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterNotActiveExceptionRes\");\nvar de_CloudHsmClusterNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterNotFoundExceptionRes\");\nvar de_CloudHsmClusterNotRelatedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CloudHsmClusterNotRelatedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CloudHsmClusterNotRelatedExceptionRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_CustomKeyStoreHasCMKsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreHasCMKsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreHasCMKsExceptionRes\");\nvar de_CustomKeyStoreInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreInvalidStateExceptionRes\");\nvar de_CustomKeyStoreNameInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreNameInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreNameInUseExceptionRes\");\nvar de_CustomKeyStoreNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomKeyStoreNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomKeyStoreNotFoundExceptionRes\");\nvar de_DependencyTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DependencyTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DependencyTimeoutExceptionRes\");\nvar de_DisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DisabledExceptionRes\");\nvar de_DryRunOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DryRunOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DryRunOperationExceptionRes\");\nvar de_ExpiredImportTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExpiredImportTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExpiredImportTokenExceptionRes\");\nvar de_IncorrectKeyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncorrectKeyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncorrectKeyExceptionRes\");\nvar de_IncorrectKeyMaterialExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncorrectKeyMaterialException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncorrectKeyMaterialExceptionRes\");\nvar de_IncorrectTrustAnchorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncorrectTrustAnchorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncorrectTrustAnchorExceptionRes\");\nvar de_InvalidAliasNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAliasNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAliasNameExceptionRes\");\nvar de_InvalidArnExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidArnException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidArnExceptionRes\");\nvar de_InvalidCiphertextExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidCiphertextException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCiphertextExceptionRes\");\nvar de_InvalidGrantIdExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidGrantIdException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidGrantIdExceptionRes\");\nvar de_InvalidGrantTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidGrantTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidGrantTokenExceptionRes\");\nvar de_InvalidImportTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidImportTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidImportTokenExceptionRes\");\nvar de_InvalidKeyUsageExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidKeyUsageException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidKeyUsageExceptionRes\");\nvar de_InvalidMarkerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidMarkerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidMarkerExceptionRes\");\nvar de_KeyUnavailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KeyUnavailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KeyUnavailableExceptionRes\");\nvar de_KMSInternalExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInternalException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInternalExceptionRes\");\nvar de_KMSInvalidMacExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInvalidMacException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInvalidMacExceptionRes\");\nvar de_KMSInvalidSignatureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInvalidSignatureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInvalidSignatureExceptionRes\");\nvar de_KMSInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KMSInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KMSInvalidStateExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_NotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new NotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_NotFoundExceptionRes\");\nvar de_TagExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TagException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TagExceptionRes\");\nvar de_UnsupportedOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedOperationExceptionRes\");\nvar de_XksKeyAlreadyInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksKeyAlreadyInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksKeyAlreadyInUseExceptionRes\");\nvar de_XksKeyInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksKeyInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksKeyInvalidConfigurationExceptionRes\");\nvar de_XksKeyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksKeyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksKeyNotFoundExceptionRes\");\nvar de_XksProxyIncorrectAuthenticationCredentialExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyIncorrectAuthenticationCredentialException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyIncorrectAuthenticationCredentialExceptionRes\");\nvar de_XksProxyInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyInvalidConfigurationExceptionRes\");\nvar de_XksProxyInvalidResponseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyInvalidResponseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyInvalidResponseExceptionRes\");\nvar de_XksProxyUriEndpointInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyUriEndpointInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyUriEndpointInUseExceptionRes\");\nvar de_XksProxyUriInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyUriInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyUriInUseExceptionRes\");\nvar de_XksProxyUriUnreachableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyUriUnreachableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyUriUnreachableExceptionRes\");\nvar de_XksProxyVpcEndpointServiceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyVpcEndpointServiceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyVpcEndpointServiceInUseExceptionRes\");\nvar de_XksProxyVpcEndpointServiceInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyVpcEndpointServiceInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyVpcEndpointServiceInvalidConfigurationExceptionRes\");\nvar de_XksProxyVpcEndpointServiceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new XksProxyVpcEndpointServiceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_XksProxyVpcEndpointServiceNotFoundExceptionRes\");\nvar se_DecryptRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n CiphertextBlob: context.base64Encoder,\n DryRun: [],\n EncryptionAlgorithm: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_DecryptRequest\");\nvar se_DeriveSharedSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyAgreementAlgorithm: [],\n KeyId: [],\n PublicKey: context.base64Encoder,\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_DeriveSharedSecretRequest\");\nvar se_EncryptRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n EncryptionAlgorithm: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Plaintext: context.base64Encoder\n });\n}, \"se_EncryptRequest\");\nvar se_GenerateDataKeyPairRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n KeyPairSpec: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_GenerateDataKeyPairRequest\");\nvar se_GenerateDataKeyRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n EncryptionContext: import_smithy_client._json,\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n KeySpec: [],\n NumberOfBytes: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_GenerateDataKeyRequest\");\nvar se_GenerateMacRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n MacAlgorithm: [],\n Message: context.base64Encoder\n });\n}, \"se_GenerateMacRequest\");\nvar se_GenerateRandomRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n CustomKeyStoreId: [],\n NumberOfBytes: [],\n Recipient: /* @__PURE__ */ __name((_) => se_RecipientInfo(_, context), \"Recipient\")\n });\n}, \"se_GenerateRandomRequest\");\nvar se_ImportKeyMaterialRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n EncryptedKeyMaterial: context.base64Encoder,\n ExpirationModel: [],\n ImportToken: context.base64Encoder,\n KeyId: [],\n ValidTo: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ValidTo\")\n });\n}, \"se_ImportKeyMaterialRequest\");\nvar se_RecipientInfo = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AttestationDocument: context.base64Encoder,\n KeyEncryptionAlgorithm: []\n });\n}, \"se_RecipientInfo\");\nvar se_ReEncryptRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n CiphertextBlob: context.base64Encoder,\n DestinationEncryptionAlgorithm: [],\n DestinationEncryptionContext: import_smithy_client._json,\n DestinationKeyId: [],\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n SourceEncryptionAlgorithm: [],\n SourceEncryptionContext: import_smithy_client._json,\n SourceKeyId: []\n });\n}, \"se_ReEncryptRequest\");\nvar se_SignRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Message: context.base64Encoder,\n MessageType: [],\n SigningAlgorithm: []\n });\n}, \"se_SignRequest\");\nvar se_VerifyMacRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Mac: context.base64Encoder,\n MacAlgorithm: [],\n Message: context.base64Encoder\n });\n}, \"se_VerifyMacRequest\");\nvar se_VerifyRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DryRun: [],\n GrantTokens: import_smithy_client._json,\n KeyId: [],\n Message: context.base64Encoder,\n MessageType: [],\n Signature: context.base64Encoder,\n SigningAlgorithm: []\n });\n}, \"se_VerifyRequest\");\nvar de_AliasList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AliasListEntry(entry, context);\n });\n return retVal;\n}, \"de_AliasList\");\nvar de_AliasListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AliasArn: import_smithy_client.expectString,\n AliasName: import_smithy_client.expectString,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n LastUpdatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastUpdatedDate\"),\n TargetKeyId: import_smithy_client.expectString\n });\n}, \"de_AliasListEntry\");\nvar de_CreateKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyMetadata: /* @__PURE__ */ __name((_) => de_KeyMetadata(_, context), \"KeyMetadata\")\n });\n}, \"de_CreateKeyResponse\");\nvar de_CustomKeyStoresList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CustomKeyStoresListEntry(entry, context);\n });\n return retVal;\n}, \"de_CustomKeyStoresList\");\nvar de_CustomKeyStoresListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CloudHsmClusterId: import_smithy_client.expectString,\n ConnectionErrorCode: import_smithy_client.expectString,\n ConnectionState: import_smithy_client.expectString,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n CustomKeyStoreId: import_smithy_client.expectString,\n CustomKeyStoreName: import_smithy_client.expectString,\n CustomKeyStoreType: import_smithy_client.expectString,\n TrustAnchorCertificate: import_smithy_client.expectString,\n XksProxyConfiguration: import_smithy_client._json\n });\n}, \"de_CustomKeyStoresListEntry\");\nvar de_DecryptResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n EncryptionAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n Plaintext: context.base64Decoder\n });\n}, \"de_DecryptResponse\");\nvar de_DeriveSharedSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n KeyAgreementAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n KeyOrigin: import_smithy_client.expectString,\n SharedSecret: context.base64Decoder\n });\n}, \"de_DeriveSharedSecretResponse\");\nvar de_DescribeCustomKeyStoresResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CustomKeyStores: /* @__PURE__ */ __name((_) => de_CustomKeyStoresList(_, context), \"CustomKeyStores\"),\n NextMarker: import_smithy_client.expectString,\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_DescribeCustomKeyStoresResponse\");\nvar de_DescribeKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyMetadata: /* @__PURE__ */ __name((_) => de_KeyMetadata(_, context), \"KeyMetadata\")\n });\n}, \"de_DescribeKeyResponse\");\nvar de_EncryptResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n EncryptionAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString\n });\n}, \"de_EncryptResponse\");\nvar de_GenerateDataKeyPairResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n KeyId: import_smithy_client.expectString,\n KeyPairSpec: import_smithy_client.expectString,\n PrivateKeyCiphertextBlob: context.base64Decoder,\n PrivateKeyPlaintext: context.base64Decoder,\n PublicKey: context.base64Decoder\n });\n}, \"de_GenerateDataKeyPairResponse\");\nvar de_GenerateDataKeyPairWithoutPlaintextResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n KeyPairSpec: import_smithy_client.expectString,\n PrivateKeyCiphertextBlob: context.base64Decoder,\n PublicKey: context.base64Decoder\n });\n}, \"de_GenerateDataKeyPairWithoutPlaintextResponse\");\nvar de_GenerateDataKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n CiphertextForRecipient: context.base64Decoder,\n KeyId: import_smithy_client.expectString,\n Plaintext: context.base64Decoder\n });\n}, \"de_GenerateDataKeyResponse\");\nvar de_GenerateDataKeyWithoutPlaintextResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n KeyId: import_smithy_client.expectString\n });\n}, \"de_GenerateDataKeyWithoutPlaintextResponse\");\nvar de_GenerateMacResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n Mac: context.base64Decoder,\n MacAlgorithm: import_smithy_client.expectString\n });\n}, \"de_GenerateMacResponse\");\nvar de_GenerateRandomResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextForRecipient: context.base64Decoder,\n Plaintext: context.base64Decoder\n });\n}, \"de_GenerateRandomResponse\");\nvar de_GetKeyRotationStatusResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n KeyRotationEnabled: import_smithy_client.expectBoolean,\n NextRotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"NextRotationDate\"),\n OnDemandRotationStartDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"OnDemandRotationStartDate\"),\n RotationPeriodInDays: import_smithy_client.expectInt32\n });\n}, \"de_GetKeyRotationStatusResponse\");\nvar de_GetParametersForImportResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ImportToken: context.base64Decoder,\n KeyId: import_smithy_client.expectString,\n ParametersValidTo: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ParametersValidTo\"),\n PublicKey: context.base64Decoder\n });\n}, \"de_GetParametersForImportResponse\");\nvar de_GetPublicKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CustomerMasterKeySpec: import_smithy_client.expectString,\n EncryptionAlgorithms: import_smithy_client._json,\n KeyAgreementAlgorithms: import_smithy_client._json,\n KeyId: import_smithy_client.expectString,\n KeySpec: import_smithy_client.expectString,\n KeyUsage: import_smithy_client.expectString,\n PublicKey: context.base64Decoder,\n SigningAlgorithms: import_smithy_client._json\n });\n}, \"de_GetPublicKeyResponse\");\nvar de_GrantList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_GrantListEntry(entry, context);\n });\n return retVal;\n}, \"de_GrantList\");\nvar de_GrantListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Constraints: import_smithy_client._json,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n GrantId: import_smithy_client.expectString,\n GranteePrincipal: import_smithy_client.expectString,\n IssuingAccount: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Operations: import_smithy_client._json,\n RetiringPrincipal: import_smithy_client.expectString\n });\n}, \"de_GrantListEntry\");\nvar de_KeyMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AWSAccountId: import_smithy_client.expectString,\n Arn: import_smithy_client.expectString,\n CloudHsmClusterId: import_smithy_client.expectString,\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n CustomKeyStoreId: import_smithy_client.expectString,\n CustomerMasterKeySpec: import_smithy_client.expectString,\n DeletionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionDate\"),\n Description: import_smithy_client.expectString,\n Enabled: import_smithy_client.expectBoolean,\n EncryptionAlgorithms: import_smithy_client._json,\n ExpirationModel: import_smithy_client.expectString,\n KeyAgreementAlgorithms: import_smithy_client._json,\n KeyId: import_smithy_client.expectString,\n KeyManager: import_smithy_client.expectString,\n KeySpec: import_smithy_client.expectString,\n KeyState: import_smithy_client.expectString,\n KeyUsage: import_smithy_client.expectString,\n MacAlgorithms: import_smithy_client._json,\n MultiRegion: import_smithy_client.expectBoolean,\n MultiRegionConfiguration: import_smithy_client._json,\n Origin: import_smithy_client.expectString,\n PendingDeletionWindowInDays: import_smithy_client.expectInt32,\n SigningAlgorithms: import_smithy_client._json,\n ValidTo: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ValidTo\"),\n XksKeyConfiguration: import_smithy_client._json\n });\n}, \"de_KeyMetadata\");\nvar de_ListAliasesResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Aliases: /* @__PURE__ */ __name((_) => de_AliasList(_, context), \"Aliases\"),\n NextMarker: import_smithy_client.expectString,\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_ListAliasesResponse\");\nvar de_ListGrantsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Grants: /* @__PURE__ */ __name((_) => de_GrantList(_, context), \"Grants\"),\n NextMarker: import_smithy_client.expectString,\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_ListGrantsResponse\");\nvar de_ListKeyRotationsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextMarker: import_smithy_client.expectString,\n Rotations: /* @__PURE__ */ __name((_) => de_RotationsList(_, context), \"Rotations\"),\n Truncated: import_smithy_client.expectBoolean\n });\n}, \"de_ListKeyRotationsResponse\");\nvar de_ReEncryptResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CiphertextBlob: context.base64Decoder,\n DestinationEncryptionAlgorithm: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n SourceEncryptionAlgorithm: import_smithy_client.expectString,\n SourceKeyId: import_smithy_client.expectString\n });\n}, \"de_ReEncryptResponse\");\nvar de_ReplicateKeyResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ReplicaKeyMetadata: /* @__PURE__ */ __name((_) => de_KeyMetadata(_, context), \"ReplicaKeyMetadata\"),\n ReplicaPolicy: import_smithy_client.expectString,\n ReplicaTags: import_smithy_client._json\n });\n}, \"de_ReplicateKeyResponse\");\nvar de_RotationsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_RotationsListEntry(entry, context);\n });\n return retVal;\n}, \"de_RotationsList\");\nvar de_RotationsListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n RotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RotationDate\"),\n RotationType: import_smithy_client.expectString\n });\n}, \"de_RotationsListEntry\");\nvar de_ScheduleKeyDeletionResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DeletionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionDate\"),\n KeyId: import_smithy_client.expectString,\n KeyState: import_smithy_client.expectString,\n PendingWindowInDays: import_smithy_client.expectInt32\n });\n}, \"de_ScheduleKeyDeletionResponse\");\nvar de_SignResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KeyId: import_smithy_client.expectString,\n Signature: context.base64Decoder,\n SigningAlgorithm: import_smithy_client.expectString\n });\n}, \"de_SignResponse\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(KMSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `TrentService.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CancelKeyDeletionCommand.ts\nvar CancelKeyDeletionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CancelKeyDeletion\", {}).n(\"KMSClient\", \"CancelKeyDeletionCommand\").f(void 0, void 0).ser(se_CancelKeyDeletionCommand).de(de_CancelKeyDeletionCommand).build() {\n static {\n __name(this, \"CancelKeyDeletionCommand\");\n }\n};\n\n// src/commands/ConnectCustomKeyStoreCommand.ts\n\n\n\nvar ConnectCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ConnectCustomKeyStore\", {}).n(\"KMSClient\", \"ConnectCustomKeyStoreCommand\").f(void 0, void 0).ser(se_ConnectCustomKeyStoreCommand).de(de_ConnectCustomKeyStoreCommand).build() {\n static {\n __name(this, \"ConnectCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/CreateAliasCommand.ts\n\n\n\nvar CreateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateAlias\", {}).n(\"KMSClient\", \"CreateAliasCommand\").f(void 0, void 0).ser(se_CreateAliasCommand).de(de_CreateAliasCommand).build() {\n static {\n __name(this, \"CreateAliasCommand\");\n }\n};\n\n// src/commands/CreateCustomKeyStoreCommand.ts\n\n\n\nvar CreateCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateCustomKeyStore\", {}).n(\"KMSClient\", \"CreateCustomKeyStoreCommand\").f(CreateCustomKeyStoreRequestFilterSensitiveLog, void 0).ser(se_CreateCustomKeyStoreCommand).de(de_CreateCustomKeyStoreCommand).build() {\n static {\n __name(this, \"CreateCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/CreateGrantCommand.ts\n\n\n\nvar CreateGrantCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateGrant\", {}).n(\"KMSClient\", \"CreateGrantCommand\").f(void 0, void 0).ser(se_CreateGrantCommand).de(de_CreateGrantCommand).build() {\n static {\n __name(this, \"CreateGrantCommand\");\n }\n};\n\n// src/commands/CreateKeyCommand.ts\n\n\n\nvar CreateKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"CreateKey\", {}).n(\"KMSClient\", \"CreateKeyCommand\").f(void 0, void 0).ser(se_CreateKeyCommand).de(de_CreateKeyCommand).build() {\n static {\n __name(this, \"CreateKeyCommand\");\n }\n};\n\n// src/commands/DecryptCommand.ts\n\n\n\nvar DecryptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Decrypt\", {}).n(\"KMSClient\", \"DecryptCommand\").f(void 0, DecryptResponseFilterSensitiveLog).ser(se_DecryptCommand).de(de_DecryptCommand).build() {\n static {\n __name(this, \"DecryptCommand\");\n }\n};\n\n// src/commands/DeleteAliasCommand.ts\n\n\n\nvar DeleteAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeleteAlias\", {}).n(\"KMSClient\", \"DeleteAliasCommand\").f(void 0, void 0).ser(se_DeleteAliasCommand).de(de_DeleteAliasCommand).build() {\n static {\n __name(this, \"DeleteAliasCommand\");\n }\n};\n\n// src/commands/DeleteCustomKeyStoreCommand.ts\n\n\n\nvar DeleteCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeleteCustomKeyStore\", {}).n(\"KMSClient\", \"DeleteCustomKeyStoreCommand\").f(void 0, void 0).ser(se_DeleteCustomKeyStoreCommand).de(de_DeleteCustomKeyStoreCommand).build() {\n static {\n __name(this, \"DeleteCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/DeleteImportedKeyMaterialCommand.ts\n\n\n\nvar DeleteImportedKeyMaterialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeleteImportedKeyMaterial\", {}).n(\"KMSClient\", \"DeleteImportedKeyMaterialCommand\").f(void 0, void 0).ser(se_DeleteImportedKeyMaterialCommand).de(de_DeleteImportedKeyMaterialCommand).build() {\n static {\n __name(this, \"DeleteImportedKeyMaterialCommand\");\n }\n};\n\n// src/commands/DeriveSharedSecretCommand.ts\n\n\n\nvar DeriveSharedSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DeriveSharedSecret\", {}).n(\"KMSClient\", \"DeriveSharedSecretCommand\").f(void 0, DeriveSharedSecretResponseFilterSensitiveLog).ser(se_DeriveSharedSecretCommand).de(de_DeriveSharedSecretCommand).build() {\n static {\n __name(this, \"DeriveSharedSecretCommand\");\n }\n};\n\n// src/commands/DescribeCustomKeyStoresCommand.ts\n\n\n\nvar DescribeCustomKeyStoresCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DescribeCustomKeyStores\", {}).n(\"KMSClient\", \"DescribeCustomKeyStoresCommand\").f(void 0, DescribeCustomKeyStoresResponseFilterSensitiveLog).ser(se_DescribeCustomKeyStoresCommand).de(de_DescribeCustomKeyStoresCommand).build() {\n static {\n __name(this, \"DescribeCustomKeyStoresCommand\");\n }\n};\n\n// src/commands/DescribeKeyCommand.ts\n\n\n\nvar DescribeKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DescribeKey\", {}).n(\"KMSClient\", \"DescribeKeyCommand\").f(void 0, void 0).ser(se_DescribeKeyCommand).de(de_DescribeKeyCommand).build() {\n static {\n __name(this, \"DescribeKeyCommand\");\n }\n};\n\n// src/commands/DisableKeyCommand.ts\n\n\n\nvar DisableKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DisableKey\", {}).n(\"KMSClient\", \"DisableKeyCommand\").f(void 0, void 0).ser(se_DisableKeyCommand).de(de_DisableKeyCommand).build() {\n static {\n __name(this, \"DisableKeyCommand\");\n }\n};\n\n// src/commands/DisableKeyRotationCommand.ts\n\n\n\nvar DisableKeyRotationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DisableKeyRotation\", {}).n(\"KMSClient\", \"DisableKeyRotationCommand\").f(void 0, void 0).ser(se_DisableKeyRotationCommand).de(de_DisableKeyRotationCommand).build() {\n static {\n __name(this, \"DisableKeyRotationCommand\");\n }\n};\n\n// src/commands/DisconnectCustomKeyStoreCommand.ts\n\n\n\nvar DisconnectCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"DisconnectCustomKeyStore\", {}).n(\"KMSClient\", \"DisconnectCustomKeyStoreCommand\").f(void 0, void 0).ser(se_DisconnectCustomKeyStoreCommand).de(de_DisconnectCustomKeyStoreCommand).build() {\n static {\n __name(this, \"DisconnectCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/EnableKeyCommand.ts\n\n\n\nvar EnableKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"EnableKey\", {}).n(\"KMSClient\", \"EnableKeyCommand\").f(void 0, void 0).ser(se_EnableKeyCommand).de(de_EnableKeyCommand).build() {\n static {\n __name(this, \"EnableKeyCommand\");\n }\n};\n\n// src/commands/EnableKeyRotationCommand.ts\n\n\n\nvar EnableKeyRotationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"EnableKeyRotation\", {}).n(\"KMSClient\", \"EnableKeyRotationCommand\").f(void 0, void 0).ser(se_EnableKeyRotationCommand).de(de_EnableKeyRotationCommand).build() {\n static {\n __name(this, \"EnableKeyRotationCommand\");\n }\n};\n\n// src/commands/EncryptCommand.ts\n\n\n\nvar EncryptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Encrypt\", {}).n(\"KMSClient\", \"EncryptCommand\").f(EncryptRequestFilterSensitiveLog, void 0).ser(se_EncryptCommand).de(de_EncryptCommand).build() {\n static {\n __name(this, \"EncryptCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyCommand.ts\n\n\n\nvar GenerateDataKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKey\", {}).n(\"KMSClient\", \"GenerateDataKeyCommand\").f(void 0, GenerateDataKeyResponseFilterSensitiveLog).ser(se_GenerateDataKeyCommand).de(de_GenerateDataKeyCommand).build() {\n static {\n __name(this, \"GenerateDataKeyCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyPairCommand.ts\n\n\n\nvar GenerateDataKeyPairCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKeyPair\", {}).n(\"KMSClient\", \"GenerateDataKeyPairCommand\").f(void 0, GenerateDataKeyPairResponseFilterSensitiveLog).ser(se_GenerateDataKeyPairCommand).de(de_GenerateDataKeyPairCommand).build() {\n static {\n __name(this, \"GenerateDataKeyPairCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyPairWithoutPlaintextCommand.ts\n\n\n\nvar GenerateDataKeyPairWithoutPlaintextCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKeyPairWithoutPlaintext\", {}).n(\"KMSClient\", \"GenerateDataKeyPairWithoutPlaintextCommand\").f(void 0, void 0).ser(se_GenerateDataKeyPairWithoutPlaintextCommand).de(de_GenerateDataKeyPairWithoutPlaintextCommand).build() {\n static {\n __name(this, \"GenerateDataKeyPairWithoutPlaintextCommand\");\n }\n};\n\n// src/commands/GenerateDataKeyWithoutPlaintextCommand.ts\n\n\n\nvar GenerateDataKeyWithoutPlaintextCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateDataKeyWithoutPlaintext\", {}).n(\"KMSClient\", \"GenerateDataKeyWithoutPlaintextCommand\").f(void 0, void 0).ser(se_GenerateDataKeyWithoutPlaintextCommand).de(de_GenerateDataKeyWithoutPlaintextCommand).build() {\n static {\n __name(this, \"GenerateDataKeyWithoutPlaintextCommand\");\n }\n};\n\n// src/commands/GenerateMacCommand.ts\n\n\n\nvar GenerateMacCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateMac\", {}).n(\"KMSClient\", \"GenerateMacCommand\").f(GenerateMacRequestFilterSensitiveLog, void 0).ser(se_GenerateMacCommand).de(de_GenerateMacCommand).build() {\n static {\n __name(this, \"GenerateMacCommand\");\n }\n};\n\n// src/commands/GenerateRandomCommand.ts\n\n\n\nvar GenerateRandomCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GenerateRandom\", {}).n(\"KMSClient\", \"GenerateRandomCommand\").f(void 0, GenerateRandomResponseFilterSensitiveLog).ser(se_GenerateRandomCommand).de(de_GenerateRandomCommand).build() {\n static {\n __name(this, \"GenerateRandomCommand\");\n }\n};\n\n// src/commands/GetKeyPolicyCommand.ts\n\n\n\nvar GetKeyPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetKeyPolicy\", {}).n(\"KMSClient\", \"GetKeyPolicyCommand\").f(void 0, void 0).ser(se_GetKeyPolicyCommand).de(de_GetKeyPolicyCommand).build() {\n static {\n __name(this, \"GetKeyPolicyCommand\");\n }\n};\n\n// src/commands/GetKeyRotationStatusCommand.ts\n\n\n\nvar GetKeyRotationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetKeyRotationStatus\", {}).n(\"KMSClient\", \"GetKeyRotationStatusCommand\").f(void 0, void 0).ser(se_GetKeyRotationStatusCommand).de(de_GetKeyRotationStatusCommand).build() {\n static {\n __name(this, \"GetKeyRotationStatusCommand\");\n }\n};\n\n// src/commands/GetParametersForImportCommand.ts\n\n\n\nvar GetParametersForImportCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetParametersForImport\", {}).n(\"KMSClient\", \"GetParametersForImportCommand\").f(void 0, GetParametersForImportResponseFilterSensitiveLog).ser(se_GetParametersForImportCommand).de(de_GetParametersForImportCommand).build() {\n static {\n __name(this, \"GetParametersForImportCommand\");\n }\n};\n\n// src/commands/GetPublicKeyCommand.ts\n\n\n\nvar GetPublicKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"GetPublicKey\", {}).n(\"KMSClient\", \"GetPublicKeyCommand\").f(void 0, void 0).ser(se_GetPublicKeyCommand).de(de_GetPublicKeyCommand).build() {\n static {\n __name(this, \"GetPublicKeyCommand\");\n }\n};\n\n// src/commands/ImportKeyMaterialCommand.ts\n\n\n\nvar ImportKeyMaterialCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ImportKeyMaterial\", {}).n(\"KMSClient\", \"ImportKeyMaterialCommand\").f(void 0, void 0).ser(se_ImportKeyMaterialCommand).de(de_ImportKeyMaterialCommand).build() {\n static {\n __name(this, \"ImportKeyMaterialCommand\");\n }\n};\n\n// src/commands/ListAliasesCommand.ts\n\n\n\nvar ListAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListAliases\", {}).n(\"KMSClient\", \"ListAliasesCommand\").f(void 0, void 0).ser(se_ListAliasesCommand).de(de_ListAliasesCommand).build() {\n static {\n __name(this, \"ListAliasesCommand\");\n }\n};\n\n// src/commands/ListGrantsCommand.ts\n\n\n\nvar ListGrantsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListGrants\", {}).n(\"KMSClient\", \"ListGrantsCommand\").f(void 0, void 0).ser(se_ListGrantsCommand).de(de_ListGrantsCommand).build() {\n static {\n __name(this, \"ListGrantsCommand\");\n }\n};\n\n// src/commands/ListKeyPoliciesCommand.ts\n\n\n\nvar ListKeyPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListKeyPolicies\", {}).n(\"KMSClient\", \"ListKeyPoliciesCommand\").f(void 0, void 0).ser(se_ListKeyPoliciesCommand).de(de_ListKeyPoliciesCommand).build() {\n static {\n __name(this, \"ListKeyPoliciesCommand\");\n }\n};\n\n// src/commands/ListKeyRotationsCommand.ts\n\n\n\nvar ListKeyRotationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListKeyRotations\", {}).n(\"KMSClient\", \"ListKeyRotationsCommand\").f(void 0, void 0).ser(se_ListKeyRotationsCommand).de(de_ListKeyRotationsCommand).build() {\n static {\n __name(this, \"ListKeyRotationsCommand\");\n }\n};\n\n// src/commands/ListKeysCommand.ts\n\n\n\nvar ListKeysCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListKeys\", {}).n(\"KMSClient\", \"ListKeysCommand\").f(void 0, void 0).ser(se_ListKeysCommand).de(de_ListKeysCommand).build() {\n static {\n __name(this, \"ListKeysCommand\");\n }\n};\n\n// src/commands/ListResourceTagsCommand.ts\n\n\n\nvar ListResourceTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListResourceTags\", {}).n(\"KMSClient\", \"ListResourceTagsCommand\").f(void 0, void 0).ser(se_ListResourceTagsCommand).de(de_ListResourceTagsCommand).build() {\n static {\n __name(this, \"ListResourceTagsCommand\");\n }\n};\n\n// src/commands/ListRetirableGrantsCommand.ts\n\n\n\nvar ListRetirableGrantsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ListRetirableGrants\", {}).n(\"KMSClient\", \"ListRetirableGrantsCommand\").f(void 0, void 0).ser(se_ListRetirableGrantsCommand).de(de_ListRetirableGrantsCommand).build() {\n static {\n __name(this, \"ListRetirableGrantsCommand\");\n }\n};\n\n// src/commands/PutKeyPolicyCommand.ts\n\n\n\nvar PutKeyPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"PutKeyPolicy\", {}).n(\"KMSClient\", \"PutKeyPolicyCommand\").f(void 0, void 0).ser(se_PutKeyPolicyCommand).de(de_PutKeyPolicyCommand).build() {\n static {\n __name(this, \"PutKeyPolicyCommand\");\n }\n};\n\n// src/commands/ReEncryptCommand.ts\n\n\n\nvar ReEncryptCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ReEncrypt\", {}).n(\"KMSClient\", \"ReEncryptCommand\").f(void 0, void 0).ser(se_ReEncryptCommand).de(de_ReEncryptCommand).build() {\n static {\n __name(this, \"ReEncryptCommand\");\n }\n};\n\n// src/commands/ReplicateKeyCommand.ts\n\n\n\nvar ReplicateKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ReplicateKey\", {}).n(\"KMSClient\", \"ReplicateKeyCommand\").f(void 0, void 0).ser(se_ReplicateKeyCommand).de(de_ReplicateKeyCommand).build() {\n static {\n __name(this, \"ReplicateKeyCommand\");\n }\n};\n\n// src/commands/RetireGrantCommand.ts\n\n\n\nvar RetireGrantCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"RetireGrant\", {}).n(\"KMSClient\", \"RetireGrantCommand\").f(void 0, void 0).ser(se_RetireGrantCommand).de(de_RetireGrantCommand).build() {\n static {\n __name(this, \"RetireGrantCommand\");\n }\n};\n\n// src/commands/RevokeGrantCommand.ts\n\n\n\nvar RevokeGrantCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"RevokeGrant\", {}).n(\"KMSClient\", \"RevokeGrantCommand\").f(void 0, void 0).ser(se_RevokeGrantCommand).de(de_RevokeGrantCommand).build() {\n static {\n __name(this, \"RevokeGrantCommand\");\n }\n};\n\n// src/commands/RotateKeyOnDemandCommand.ts\n\n\n\nvar RotateKeyOnDemandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"RotateKeyOnDemand\", {}).n(\"KMSClient\", \"RotateKeyOnDemandCommand\").f(void 0, void 0).ser(se_RotateKeyOnDemandCommand).de(de_RotateKeyOnDemandCommand).build() {\n static {\n __name(this, \"RotateKeyOnDemandCommand\");\n }\n};\n\n// src/commands/ScheduleKeyDeletionCommand.ts\n\n\n\nvar ScheduleKeyDeletionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"ScheduleKeyDeletion\", {}).n(\"KMSClient\", \"ScheduleKeyDeletionCommand\").f(void 0, void 0).ser(se_ScheduleKeyDeletionCommand).de(de_ScheduleKeyDeletionCommand).build() {\n static {\n __name(this, \"ScheduleKeyDeletionCommand\");\n }\n};\n\n// src/commands/SignCommand.ts\n\n\n\nvar SignCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Sign\", {}).n(\"KMSClient\", \"SignCommand\").f(SignRequestFilterSensitiveLog, void 0).ser(se_SignCommand).de(de_SignCommand).build() {\n static {\n __name(this, \"SignCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"TagResource\", {}).n(\"KMSClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UntagResource\", {}).n(\"KMSClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateAliasCommand.ts\n\n\n\nvar UpdateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdateAlias\", {}).n(\"KMSClient\", \"UpdateAliasCommand\").f(void 0, void 0).ser(se_UpdateAliasCommand).de(de_UpdateAliasCommand).build() {\n static {\n __name(this, \"UpdateAliasCommand\");\n }\n};\n\n// src/commands/UpdateCustomKeyStoreCommand.ts\n\n\n\nvar UpdateCustomKeyStoreCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdateCustomKeyStore\", {}).n(\"KMSClient\", \"UpdateCustomKeyStoreCommand\").f(UpdateCustomKeyStoreRequestFilterSensitiveLog, void 0).ser(se_UpdateCustomKeyStoreCommand).de(de_UpdateCustomKeyStoreCommand).build() {\n static {\n __name(this, \"UpdateCustomKeyStoreCommand\");\n }\n};\n\n// src/commands/UpdateKeyDescriptionCommand.ts\n\n\n\nvar UpdateKeyDescriptionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdateKeyDescription\", {}).n(\"KMSClient\", \"UpdateKeyDescriptionCommand\").f(void 0, void 0).ser(se_UpdateKeyDescriptionCommand).de(de_UpdateKeyDescriptionCommand).build() {\n static {\n __name(this, \"UpdateKeyDescriptionCommand\");\n }\n};\n\n// src/commands/UpdatePrimaryRegionCommand.ts\n\n\n\nvar UpdatePrimaryRegionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"UpdatePrimaryRegion\", {}).n(\"KMSClient\", \"UpdatePrimaryRegionCommand\").f(void 0, void 0).ser(se_UpdatePrimaryRegionCommand).de(de_UpdatePrimaryRegionCommand).build() {\n static {\n __name(this, \"UpdatePrimaryRegionCommand\");\n }\n};\n\n// src/commands/VerifyCommand.ts\n\n\n\nvar VerifyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"Verify\", {}).n(\"KMSClient\", \"VerifyCommand\").f(VerifyRequestFilterSensitiveLog, void 0).ser(se_VerifyCommand).de(de_VerifyCommand).build() {\n static {\n __name(this, \"VerifyCommand\");\n }\n};\n\n// src/commands/VerifyMacCommand.ts\n\n\n\nvar VerifyMacCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"TrentService\", \"VerifyMac\", {}).n(\"KMSClient\", \"VerifyMacCommand\").f(VerifyMacRequestFilterSensitiveLog, void 0).ser(se_VerifyMacCommand).de(de_VerifyMacCommand).build() {\n static {\n __name(this, \"VerifyMacCommand\");\n }\n};\n\n// src/KMS.ts\nvar commands = {\n CancelKeyDeletionCommand,\n ConnectCustomKeyStoreCommand,\n CreateAliasCommand,\n CreateCustomKeyStoreCommand,\n CreateGrantCommand,\n CreateKeyCommand,\n DecryptCommand,\n DeleteAliasCommand,\n DeleteCustomKeyStoreCommand,\n DeleteImportedKeyMaterialCommand,\n DeriveSharedSecretCommand,\n DescribeCustomKeyStoresCommand,\n DescribeKeyCommand,\n DisableKeyCommand,\n DisableKeyRotationCommand,\n DisconnectCustomKeyStoreCommand,\n EnableKeyCommand,\n EnableKeyRotationCommand,\n EncryptCommand,\n GenerateDataKeyCommand,\n GenerateDataKeyPairCommand,\n GenerateDataKeyPairWithoutPlaintextCommand,\n GenerateDataKeyWithoutPlaintextCommand,\n GenerateMacCommand,\n GenerateRandomCommand,\n GetKeyPolicyCommand,\n GetKeyRotationStatusCommand,\n GetParametersForImportCommand,\n GetPublicKeyCommand,\n ImportKeyMaterialCommand,\n ListAliasesCommand,\n ListGrantsCommand,\n ListKeyPoliciesCommand,\n ListKeyRotationsCommand,\n ListKeysCommand,\n ListResourceTagsCommand,\n ListRetirableGrantsCommand,\n PutKeyPolicyCommand,\n ReEncryptCommand,\n ReplicateKeyCommand,\n RetireGrantCommand,\n RevokeGrantCommand,\n RotateKeyOnDemandCommand,\n ScheduleKeyDeletionCommand,\n SignCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCustomKeyStoreCommand,\n UpdateKeyDescriptionCommand,\n UpdatePrimaryRegionCommand,\n VerifyCommand,\n VerifyMacCommand\n};\nvar KMS = class extends KMSClient {\n static {\n __name(this, \"KMS\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, KMS);\n\n// src/pagination/DescribeCustomKeyStoresPaginator.ts\n\nvar paginateDescribeCustomKeyStores = (0, import_core.createPaginator)(KMSClient, DescribeCustomKeyStoresCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListAliasesPaginator.ts\n\nvar paginateListAliases = (0, import_core.createPaginator)(KMSClient, ListAliasesCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListGrantsPaginator.ts\n\nvar paginateListGrants = (0, import_core.createPaginator)(KMSClient, ListGrantsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListKeyPoliciesPaginator.ts\n\nvar paginateListKeyPolicies = (0, import_core.createPaginator)(KMSClient, ListKeyPoliciesCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListKeyRotationsPaginator.ts\n\nvar paginateListKeyRotations = (0, import_core.createPaginator)(KMSClient, ListKeyRotationsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListKeysPaginator.ts\n\nvar paginateListKeys = (0, import_core.createPaginator)(KMSClient, ListKeysCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListResourceTagsPaginator.ts\n\nvar paginateListResourceTags = (0, import_core.createPaginator)(KMSClient, ListResourceTagsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n\n// src/pagination/ListRetirableGrantsPaginator.ts\n\nvar paginateListRetirableGrants = (0, import_core.createPaginator)(KMSClient, ListRetirableGrantsCommand, \"Marker\", \"NextMarker\", \"Limit\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n KMSServiceException,\n __Client,\n KMSClient,\n KMS,\n $Command,\n CancelKeyDeletionCommand,\n ConnectCustomKeyStoreCommand,\n CreateAliasCommand,\n CreateCustomKeyStoreCommand,\n CreateGrantCommand,\n CreateKeyCommand,\n DecryptCommand,\n DeleteAliasCommand,\n DeleteCustomKeyStoreCommand,\n DeleteImportedKeyMaterialCommand,\n DeriveSharedSecretCommand,\n DescribeCustomKeyStoresCommand,\n DescribeKeyCommand,\n DisableKeyCommand,\n DisableKeyRotationCommand,\n DisconnectCustomKeyStoreCommand,\n EnableKeyCommand,\n EnableKeyRotationCommand,\n EncryptCommand,\n GenerateDataKeyCommand,\n GenerateDataKeyPairCommand,\n GenerateDataKeyPairWithoutPlaintextCommand,\n GenerateDataKeyWithoutPlaintextCommand,\n GenerateMacCommand,\n GenerateRandomCommand,\n GetKeyPolicyCommand,\n GetKeyRotationStatusCommand,\n GetParametersForImportCommand,\n GetPublicKeyCommand,\n ImportKeyMaterialCommand,\n ListAliasesCommand,\n ListGrantsCommand,\n ListKeyPoliciesCommand,\n ListKeyRotationsCommand,\n ListKeysCommand,\n ListResourceTagsCommand,\n ListRetirableGrantsCommand,\n PutKeyPolicyCommand,\n ReEncryptCommand,\n ReplicateKeyCommand,\n RetireGrantCommand,\n RevokeGrantCommand,\n RotateKeyOnDemandCommand,\n ScheduleKeyDeletionCommand,\n SignCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCustomKeyStoreCommand,\n UpdateKeyDescriptionCommand,\n UpdatePrimaryRegionCommand,\n VerifyCommand,\n VerifyMacCommand,\n paginateDescribeCustomKeyStores,\n paginateListAliases,\n paginateListGrants,\n paginateListKeyPolicies,\n paginateListKeyRotations,\n paginateListKeys,\n paginateListResourceTags,\n paginateListRetirableGrants,\n AlgorithmSpec,\n AlreadyExistsException,\n DependencyTimeoutException,\n InvalidArnException,\n KMSInternalException,\n KMSInvalidStateException,\n NotFoundException,\n CloudHsmClusterInUseException,\n CloudHsmClusterInvalidConfigurationException,\n CloudHsmClusterNotActiveException,\n CloudHsmClusterNotFoundException,\n CloudHsmClusterNotRelatedException,\n ConflictException,\n CustomKeyStoreInvalidStateException,\n CustomKeyStoreNotFoundException,\n ConnectionErrorCodeType,\n ConnectionStateType,\n InvalidAliasNameException,\n LimitExceededException,\n CustomKeyStoreType,\n XksProxyConnectivityType,\n CustomKeyStoreNameInUseException,\n IncorrectTrustAnchorException,\n XksProxyIncorrectAuthenticationCredentialException,\n XksProxyInvalidConfigurationException,\n XksProxyInvalidResponseException,\n XksProxyUriEndpointInUseException,\n XksProxyUriInUseException,\n XksProxyUriUnreachableException,\n XksProxyVpcEndpointServiceInUseException,\n XksProxyVpcEndpointServiceInvalidConfigurationException,\n XksProxyVpcEndpointServiceNotFoundException,\n GrantOperation,\n DisabledException,\n DryRunOperationException,\n InvalidGrantTokenException,\n CustomerMasterKeySpec,\n KeySpec,\n KeyUsageType,\n OriginType,\n EncryptionAlgorithmSpec,\n ExpirationModelType,\n KeyAgreementAlgorithmSpec,\n KeyManagerType,\n KeyState,\n MacAlgorithmSpec,\n MultiRegionKeyType,\n SigningAlgorithmSpec,\n MalformedPolicyDocumentException,\n TagException,\n UnsupportedOperationException,\n XksKeyAlreadyInUseException,\n XksKeyInvalidConfigurationException,\n XksKeyNotFoundException,\n CustomKeyStoreHasCMKsException,\n DataKeyPairSpec,\n DataKeySpec,\n KeyEncryptionMechanism,\n IncorrectKeyException,\n InvalidCiphertextException,\n InvalidKeyUsageException,\n KeyUnavailableException,\n InvalidMarkerException,\n ExpiredImportTokenException,\n WrappingKeySpec,\n IncorrectKeyMaterialException,\n InvalidImportTokenException,\n InvalidGrantIdException,\n KMSInvalidMacException,\n KMSInvalidSignatureException,\n RotationType,\n MessageType,\n XksProxyAuthenticationCredentialTypeFilterSensitiveLog,\n CreateCustomKeyStoreRequestFilterSensitiveLog,\n XksProxyConfigurationTypeFilterSensitiveLog,\n CustomKeyStoresListEntryFilterSensitiveLog,\n DecryptResponseFilterSensitiveLog,\n DeriveSharedSecretResponseFilterSensitiveLog,\n DescribeCustomKeyStoresResponseFilterSensitiveLog,\n EncryptRequestFilterSensitiveLog,\n GenerateDataKeyResponseFilterSensitiveLog,\n GenerateDataKeyPairResponseFilterSensitiveLog,\n GenerateMacRequestFilterSensitiveLog,\n GenerateRandomResponseFilterSensitiveLog,\n GetParametersForImportResponseFilterSensitiveLog,\n SignRequestFilterSensitiveLog,\n UpdateCustomKeyStoreRequestFilterSensitiveLog,\n VerifyRequestFilterSensitiveLog,\n VerifyMacRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-11-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultKMSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"KMS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultLambdaHttpAuthSchemeProvider = exports.defaultLambdaHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultLambdaHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultLambdaHttpAuthSchemeParametersProvider = defaultLambdaHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"lambda\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultLambdaHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultLambdaHttpAuthSchemeProvider = defaultLambdaHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst s = \"required\", t = \"fn\", u = \"argv\", v = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [s]: false, \"type\": \"String\" }, i = { [s]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [v]: \"Endpoint\" }, k = { [t]: c, [u]: [{ [v]: \"UseFIPS\" }, true] }, l = { [t]: c, [u]: [{ [v]: \"UseDualStack\" }, true] }, m = {}, n = { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsFIPS\"] }, o = { [t]: c, [u]: [true, { [t]: \"getAttr\", [u]: [{ [v]: g }, \"supportsDualStack\"] }] }, p = [k], q = [l], r = [{ [v]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [t]: b, [u]: [j] }], rules: [{ conditions: p, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: q, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [t]: b, [u]: r }], rules: [{ conditions: [{ [t]: \"aws.partition\", [u]: r, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [t]: c, [u]: [a, n] }, o], rules: [{ endpoint: { url: \"https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: p, rules: [{ conditions: [{ [t]: c, [u]: [n, a] }], rules: [{ endpoint: { url: \"https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [o], rules: [{ endpoint: { url: \"https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://lambda.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AddLayerVersionPermissionCommand: () => AddLayerVersionPermissionCommand,\n AddPermissionCommand: () => AddPermissionCommand,\n ApplicationLogLevel: () => ApplicationLogLevel,\n Architecture: () => Architecture,\n CodeSigningConfigNotFoundException: () => CodeSigningConfigNotFoundException,\n CodeSigningPolicy: () => CodeSigningPolicy,\n CodeStorageExceededException: () => CodeStorageExceededException,\n CodeVerificationFailedException: () => CodeVerificationFailedException,\n CreateAliasCommand: () => CreateAliasCommand,\n CreateCodeSigningConfigCommand: () => CreateCodeSigningConfigCommand,\n CreateEventSourceMappingCommand: () => CreateEventSourceMappingCommand,\n CreateFunctionCommand: () => CreateFunctionCommand,\n CreateFunctionRequestFilterSensitiveLog: () => CreateFunctionRequestFilterSensitiveLog,\n CreateFunctionUrlConfigCommand: () => CreateFunctionUrlConfigCommand,\n DeleteAliasCommand: () => DeleteAliasCommand,\n DeleteCodeSigningConfigCommand: () => DeleteCodeSigningConfigCommand,\n DeleteEventSourceMappingCommand: () => DeleteEventSourceMappingCommand,\n DeleteFunctionCodeSigningConfigCommand: () => DeleteFunctionCodeSigningConfigCommand,\n DeleteFunctionCommand: () => DeleteFunctionCommand,\n DeleteFunctionConcurrencyCommand: () => DeleteFunctionConcurrencyCommand,\n DeleteFunctionEventInvokeConfigCommand: () => DeleteFunctionEventInvokeConfigCommand,\n DeleteFunctionUrlConfigCommand: () => DeleteFunctionUrlConfigCommand,\n DeleteLayerVersionCommand: () => DeleteLayerVersionCommand,\n DeleteProvisionedConcurrencyConfigCommand: () => DeleteProvisionedConcurrencyConfigCommand,\n EC2AccessDeniedException: () => EC2AccessDeniedException,\n EC2ThrottledException: () => EC2ThrottledException,\n EC2UnexpectedException: () => EC2UnexpectedException,\n EFSIOException: () => EFSIOException,\n EFSMountConnectivityException: () => EFSMountConnectivityException,\n EFSMountFailureException: () => EFSMountFailureException,\n EFSMountTimeoutException: () => EFSMountTimeoutException,\n ENILimitReachedException: () => ENILimitReachedException,\n EndPointType: () => EndPointType,\n EnvironmentErrorFilterSensitiveLog: () => EnvironmentErrorFilterSensitiveLog,\n EnvironmentFilterSensitiveLog: () => EnvironmentFilterSensitiveLog,\n EnvironmentResponseFilterSensitiveLog: () => EnvironmentResponseFilterSensitiveLog,\n EventSourceMappingMetric: () => EventSourceMappingMetric,\n EventSourcePosition: () => EventSourcePosition,\n FullDocument: () => FullDocument,\n FunctionCodeFilterSensitiveLog: () => FunctionCodeFilterSensitiveLog,\n FunctionConfigurationFilterSensitiveLog: () => FunctionConfigurationFilterSensitiveLog,\n FunctionResponseType: () => FunctionResponseType,\n FunctionUrlAuthType: () => FunctionUrlAuthType,\n FunctionVersion: () => FunctionVersion,\n GetAccountSettingsCommand: () => GetAccountSettingsCommand,\n GetAliasCommand: () => GetAliasCommand,\n GetCodeSigningConfigCommand: () => GetCodeSigningConfigCommand,\n GetEventSourceMappingCommand: () => GetEventSourceMappingCommand,\n GetFunctionCodeSigningConfigCommand: () => GetFunctionCodeSigningConfigCommand,\n GetFunctionCommand: () => GetFunctionCommand,\n GetFunctionConcurrencyCommand: () => GetFunctionConcurrencyCommand,\n GetFunctionConfigurationCommand: () => GetFunctionConfigurationCommand,\n GetFunctionEventInvokeConfigCommand: () => GetFunctionEventInvokeConfigCommand,\n GetFunctionRecursionConfigCommand: () => GetFunctionRecursionConfigCommand,\n GetFunctionResponseFilterSensitiveLog: () => GetFunctionResponseFilterSensitiveLog,\n GetFunctionUrlConfigCommand: () => GetFunctionUrlConfigCommand,\n GetLayerVersionByArnCommand: () => GetLayerVersionByArnCommand,\n GetLayerVersionCommand: () => GetLayerVersionCommand,\n GetLayerVersionPolicyCommand: () => GetLayerVersionPolicyCommand,\n GetPolicyCommand: () => GetPolicyCommand,\n GetProvisionedConcurrencyConfigCommand: () => GetProvisionedConcurrencyConfigCommand,\n GetRuntimeManagementConfigCommand: () => GetRuntimeManagementConfigCommand,\n ImageConfigErrorFilterSensitiveLog: () => ImageConfigErrorFilterSensitiveLog,\n ImageConfigResponseFilterSensitiveLog: () => ImageConfigResponseFilterSensitiveLog,\n InvalidCodeSignatureException: () => InvalidCodeSignatureException,\n InvalidParameterValueException: () => InvalidParameterValueException,\n InvalidRequestContentException: () => InvalidRequestContentException,\n InvalidRuntimeException: () => InvalidRuntimeException,\n InvalidSecurityGroupIDException: () => InvalidSecurityGroupIDException,\n InvalidSubnetIDException: () => InvalidSubnetIDException,\n InvalidZipFileException: () => InvalidZipFileException,\n InvocationRequestFilterSensitiveLog: () => InvocationRequestFilterSensitiveLog,\n InvocationResponseFilterSensitiveLog: () => InvocationResponseFilterSensitiveLog,\n InvocationType: () => InvocationType,\n InvokeAsyncCommand: () => InvokeAsyncCommand,\n InvokeAsyncRequestFilterSensitiveLog: () => InvokeAsyncRequestFilterSensitiveLog,\n InvokeCommand: () => InvokeCommand,\n InvokeMode: () => InvokeMode,\n InvokeResponseStreamUpdateFilterSensitiveLog: () => InvokeResponseStreamUpdateFilterSensitiveLog,\n InvokeWithResponseStreamCommand: () => InvokeWithResponseStreamCommand,\n InvokeWithResponseStreamRequestFilterSensitiveLog: () => InvokeWithResponseStreamRequestFilterSensitiveLog,\n InvokeWithResponseStreamResponseEvent: () => InvokeWithResponseStreamResponseEvent,\n InvokeWithResponseStreamResponseEventFilterSensitiveLog: () => InvokeWithResponseStreamResponseEventFilterSensitiveLog,\n InvokeWithResponseStreamResponseFilterSensitiveLog: () => InvokeWithResponseStreamResponseFilterSensitiveLog,\n KMSAccessDeniedException: () => KMSAccessDeniedException,\n KMSDisabledException: () => KMSDisabledException,\n KMSInvalidStateException: () => KMSInvalidStateException,\n KMSNotFoundException: () => KMSNotFoundException,\n Lambda: () => Lambda,\n LambdaClient: () => LambdaClient,\n LambdaServiceException: () => LambdaServiceException,\n LastUpdateStatus: () => LastUpdateStatus,\n LastUpdateStatusReasonCode: () => LastUpdateStatusReasonCode,\n LayerVersionContentInputFilterSensitiveLog: () => LayerVersionContentInputFilterSensitiveLog,\n ListAliasesCommand: () => ListAliasesCommand,\n ListCodeSigningConfigsCommand: () => ListCodeSigningConfigsCommand,\n ListEventSourceMappingsCommand: () => ListEventSourceMappingsCommand,\n ListFunctionEventInvokeConfigsCommand: () => ListFunctionEventInvokeConfigsCommand,\n ListFunctionUrlConfigsCommand: () => ListFunctionUrlConfigsCommand,\n ListFunctionsByCodeSigningConfigCommand: () => ListFunctionsByCodeSigningConfigCommand,\n ListFunctionsCommand: () => ListFunctionsCommand,\n ListFunctionsResponseFilterSensitiveLog: () => ListFunctionsResponseFilterSensitiveLog,\n ListLayerVersionsCommand: () => ListLayerVersionsCommand,\n ListLayersCommand: () => ListLayersCommand,\n ListProvisionedConcurrencyConfigsCommand: () => ListProvisionedConcurrencyConfigsCommand,\n ListTagsCommand: () => ListTagsCommand,\n ListVersionsByFunctionCommand: () => ListVersionsByFunctionCommand,\n ListVersionsByFunctionResponseFilterSensitiveLog: () => ListVersionsByFunctionResponseFilterSensitiveLog,\n LogFormat: () => LogFormat,\n LogType: () => LogType,\n PackageType: () => PackageType,\n PolicyLengthExceededException: () => PolicyLengthExceededException,\n PreconditionFailedException: () => PreconditionFailedException,\n ProvisionedConcurrencyConfigNotFoundException: () => ProvisionedConcurrencyConfigNotFoundException,\n ProvisionedConcurrencyStatusEnum: () => ProvisionedConcurrencyStatusEnum,\n PublishLayerVersionCommand: () => PublishLayerVersionCommand,\n PublishLayerVersionRequestFilterSensitiveLog: () => PublishLayerVersionRequestFilterSensitiveLog,\n PublishVersionCommand: () => PublishVersionCommand,\n PutFunctionCodeSigningConfigCommand: () => PutFunctionCodeSigningConfigCommand,\n PutFunctionConcurrencyCommand: () => PutFunctionConcurrencyCommand,\n PutFunctionEventInvokeConfigCommand: () => PutFunctionEventInvokeConfigCommand,\n PutFunctionRecursionConfigCommand: () => PutFunctionRecursionConfigCommand,\n PutProvisionedConcurrencyConfigCommand: () => PutProvisionedConcurrencyConfigCommand,\n PutRuntimeManagementConfigCommand: () => PutRuntimeManagementConfigCommand,\n RecursiveInvocationException: () => RecursiveInvocationException,\n RecursiveLoop: () => RecursiveLoop,\n RemoveLayerVersionPermissionCommand: () => RemoveLayerVersionPermissionCommand,\n RemovePermissionCommand: () => RemovePermissionCommand,\n RequestTooLargeException: () => RequestTooLargeException,\n ResourceConflictException: () => ResourceConflictException,\n ResourceInUseException: () => ResourceInUseException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ResourceNotReadyException: () => ResourceNotReadyException,\n ResponseStreamingInvocationType: () => ResponseStreamingInvocationType,\n Runtime: () => Runtime,\n RuntimeVersionConfigFilterSensitiveLog: () => RuntimeVersionConfigFilterSensitiveLog,\n RuntimeVersionErrorFilterSensitiveLog: () => RuntimeVersionErrorFilterSensitiveLog,\n ServiceException: () => ServiceException,\n SnapStartApplyOn: () => SnapStartApplyOn,\n SnapStartException: () => SnapStartException,\n SnapStartNotReadyException: () => SnapStartNotReadyException,\n SnapStartOptimizationStatus: () => SnapStartOptimizationStatus,\n SnapStartTimeoutException: () => SnapStartTimeoutException,\n SourceAccessType: () => SourceAccessType,\n State: () => State,\n StateReasonCode: () => StateReasonCode,\n SubnetIPAddressLimitReachedException: () => SubnetIPAddressLimitReachedException,\n SystemLogLevel: () => SystemLogLevel,\n TagResourceCommand: () => TagResourceCommand,\n ThrottleReason: () => ThrottleReason,\n TooManyRequestsException: () => TooManyRequestsException,\n TracingMode: () => TracingMode,\n UnsupportedMediaTypeException: () => UnsupportedMediaTypeException,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateAliasCommand: () => UpdateAliasCommand,\n UpdateCodeSigningConfigCommand: () => UpdateCodeSigningConfigCommand,\n UpdateEventSourceMappingCommand: () => UpdateEventSourceMappingCommand,\n UpdateFunctionCodeCommand: () => UpdateFunctionCodeCommand,\n UpdateFunctionCodeRequestFilterSensitiveLog: () => UpdateFunctionCodeRequestFilterSensitiveLog,\n UpdateFunctionConfigurationCommand: () => UpdateFunctionConfigurationCommand,\n UpdateFunctionConfigurationRequestFilterSensitiveLog: () => UpdateFunctionConfigurationRequestFilterSensitiveLog,\n UpdateFunctionEventInvokeConfigCommand: () => UpdateFunctionEventInvokeConfigCommand,\n UpdateFunctionUrlConfigCommand: () => UpdateFunctionUrlConfigCommand,\n UpdateRuntimeOn: () => UpdateRuntimeOn,\n __Client: () => import_smithy_client.Client,\n paginateListAliases: () => paginateListAliases,\n paginateListCodeSigningConfigs: () => paginateListCodeSigningConfigs,\n paginateListEventSourceMappings: () => paginateListEventSourceMappings,\n paginateListFunctionEventInvokeConfigs: () => paginateListFunctionEventInvokeConfigs,\n paginateListFunctionUrlConfigs: () => paginateListFunctionUrlConfigs,\n paginateListFunctions: () => paginateListFunctions,\n paginateListFunctionsByCodeSigningConfig: () => paginateListFunctionsByCodeSigningConfig,\n paginateListLayerVersions: () => paginateListLayerVersions,\n paginateListLayers: () => paginateListLayers,\n paginateListProvisionedConcurrencyConfigs: () => paginateListProvisionedConcurrencyConfigs,\n paginateListVersionsByFunction: () => paginateListVersionsByFunction,\n waitForFunctionActive: () => waitForFunctionActive,\n waitForFunctionActiveV2: () => waitForFunctionActiveV2,\n waitForFunctionExists: () => waitForFunctionExists,\n waitForFunctionUpdated: () => waitForFunctionUpdated,\n waitForFunctionUpdatedV2: () => waitForFunctionUpdatedV2,\n waitForPublishedVersionActive: () => waitForPublishedVersionActive,\n waitUntilFunctionActive: () => waitUntilFunctionActive,\n waitUntilFunctionActiveV2: () => waitUntilFunctionActiveV2,\n waitUntilFunctionExists: () => waitUntilFunctionExists,\n waitUntilFunctionUpdated: () => waitUntilFunctionUpdated,\n waitUntilFunctionUpdatedV2: () => waitUntilFunctionUpdatedV2,\n waitUntilPublishedVersionActive: () => waitUntilPublishedVersionActive\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/LambdaClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_eventstream_serde_config_resolver = require(\"@smithy/eventstream-serde-config-resolver\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"lambda\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/LambdaClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/LambdaClient.ts\nvar LambdaClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"LambdaClient\");\n }\n /**\n * The resolved configuration of LambdaClient class. This is resolved and normalized from the {@link LambdaClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_eventstream_serde_config_resolver.resolveEventStreamSerdeConfig)(_config_6);\n const _config_8 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_7);\n const _config_9 = resolveRuntimeExtensions(_config_8, configuration?.extensions || []);\n this.config = _config_9;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultLambdaHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/Lambda.ts\n\n\n// src/commands/AddLayerVersionPermissionCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\n\n// src/models/LambdaServiceException.ts\n\nvar LambdaServiceException = class _LambdaServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"LambdaServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _LambdaServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\n\nvar InvalidParameterValueException = class _InvalidParameterValueException extends LambdaServiceException {\n static {\n __name(this, \"InvalidParameterValueException\");\n }\n name = \"InvalidParameterValueException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterValueException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterValueException.prototype);\n this.Type = opts.Type;\n }\n};\nvar PolicyLengthExceededException = class _PolicyLengthExceededException extends LambdaServiceException {\n static {\n __name(this, \"PolicyLengthExceededException\");\n }\n name = \"PolicyLengthExceededException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PolicyLengthExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PolicyLengthExceededException.prototype);\n this.Type = opts.Type;\n }\n};\nvar PreconditionFailedException = class _PreconditionFailedException extends LambdaServiceException {\n static {\n __name(this, \"PreconditionFailedException\");\n }\n name = \"PreconditionFailedException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PreconditionFailedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PreconditionFailedException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResourceConflictException = class _ResourceConflictException extends LambdaServiceException {\n static {\n __name(this, \"ResourceConflictException\");\n }\n name = \"ResourceConflictException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceConflictException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar ServiceException = class _ServiceException extends LambdaServiceException {\n static {\n __name(this, \"ServiceException\");\n }\n name = \"ServiceException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar ThrottleReason = {\n CallerRateLimitExceeded: \"CallerRateLimitExceeded\",\n ConcurrentInvocationLimitExceeded: \"ConcurrentInvocationLimitExceeded\",\n ConcurrentSnapshotCreateLimitExceeded: \"ConcurrentSnapshotCreateLimitExceeded\",\n FunctionInvocationRateLimitExceeded: \"FunctionInvocationRateLimitExceeded\",\n ReservedFunctionConcurrentInvocationLimitExceeded: \"ReservedFunctionConcurrentInvocationLimitExceeded\",\n ReservedFunctionInvocationRateLimitExceeded: \"ReservedFunctionInvocationRateLimitExceeded\"\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends LambdaServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n *

The number of seconds the caller should wait before retrying.

\n * @public\n */\n retryAfterSeconds;\n Type;\n Reason;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n this.retryAfterSeconds = opts.retryAfterSeconds;\n this.Type = opts.Type;\n this.Reason = opts.Reason;\n }\n};\nvar FunctionUrlAuthType = {\n AWS_IAM: \"AWS_IAM\",\n NONE: \"NONE\"\n};\nvar ApplicationLogLevel = {\n Debug: \"DEBUG\",\n Error: \"ERROR\",\n Fatal: \"FATAL\",\n Info: \"INFO\",\n Trace: \"TRACE\",\n Warn: \"WARN\"\n};\nvar Architecture = {\n arm64: \"arm64\",\n x86_64: \"x86_64\"\n};\nvar CodeSigningPolicy = {\n Enforce: \"Enforce\",\n Warn: \"Warn\"\n};\nvar FullDocument = {\n Default: \"Default\",\n UpdateLookup: \"UpdateLookup\"\n};\nvar FunctionResponseType = {\n ReportBatchItemFailures: \"ReportBatchItemFailures\"\n};\nvar EventSourceMappingMetric = {\n EventCount: \"EventCount\"\n};\nvar EndPointType = {\n KAFKA_BOOTSTRAP_SERVERS: \"KAFKA_BOOTSTRAP_SERVERS\"\n};\nvar SourceAccessType = {\n BASIC_AUTH: \"BASIC_AUTH\",\n CLIENT_CERTIFICATE_TLS_AUTH: \"CLIENT_CERTIFICATE_TLS_AUTH\",\n SASL_SCRAM_256_AUTH: \"SASL_SCRAM_256_AUTH\",\n SASL_SCRAM_512_AUTH: \"SASL_SCRAM_512_AUTH\",\n SERVER_ROOT_CA_CERTIFICATE: \"SERVER_ROOT_CA_CERTIFICATE\",\n VIRTUAL_HOST: \"VIRTUAL_HOST\",\n VPC_SECURITY_GROUP: \"VPC_SECURITY_GROUP\",\n VPC_SUBNET: \"VPC_SUBNET\"\n};\nvar EventSourcePosition = {\n AT_TIMESTAMP: \"AT_TIMESTAMP\",\n LATEST: \"LATEST\",\n TRIM_HORIZON: \"TRIM_HORIZON\"\n};\nvar CodeSigningConfigNotFoundException = class _CodeSigningConfigNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"CodeSigningConfigNotFoundException\");\n }\n name = \"CodeSigningConfigNotFoundException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CodeSigningConfigNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CodeSigningConfigNotFoundException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar CodeStorageExceededException = class _CodeStorageExceededException extends LambdaServiceException {\n static {\n __name(this, \"CodeStorageExceededException\");\n }\n name = \"CodeStorageExceededException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CodeStorageExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CodeStorageExceededException.prototype);\n this.Type = opts.Type;\n }\n};\nvar CodeVerificationFailedException = class _CodeVerificationFailedException extends LambdaServiceException {\n static {\n __name(this, \"CodeVerificationFailedException\");\n }\n name = \"CodeVerificationFailedException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CodeVerificationFailedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CodeVerificationFailedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar LogFormat = {\n Json: \"JSON\",\n Text: \"Text\"\n};\nvar SystemLogLevel = {\n Debug: \"DEBUG\",\n Info: \"INFO\",\n Warn: \"WARN\"\n};\nvar PackageType = {\n Image: \"Image\",\n Zip: \"Zip\"\n};\nvar Runtime = {\n dotnet6: \"dotnet6\",\n dotnet8: \"dotnet8\",\n dotnetcore10: \"dotnetcore1.0\",\n dotnetcore20: \"dotnetcore2.0\",\n dotnetcore21: \"dotnetcore2.1\",\n dotnetcore31: \"dotnetcore3.1\",\n go1x: \"go1.x\",\n java11: \"java11\",\n java17: \"java17\",\n java21: \"java21\",\n java8: \"java8\",\n java8al2: \"java8.al2\",\n nodejs: \"nodejs\",\n nodejs10x: \"nodejs10.x\",\n nodejs12x: \"nodejs12.x\",\n nodejs14x: \"nodejs14.x\",\n nodejs16x: \"nodejs16.x\",\n nodejs18x: \"nodejs18.x\",\n nodejs20x: \"nodejs20.x\",\n nodejs22x: \"nodejs22.x\",\n nodejs43: \"nodejs4.3\",\n nodejs43edge: \"nodejs4.3-edge\",\n nodejs610: \"nodejs6.10\",\n nodejs810: \"nodejs8.10\",\n provided: \"provided\",\n providedal2: \"provided.al2\",\n providedal2023: \"provided.al2023\",\n python27: \"python2.7\",\n python310: \"python3.10\",\n python311: \"python3.11\",\n python312: \"python3.12\",\n python313: \"python3.13\",\n python36: \"python3.6\",\n python37: \"python3.7\",\n python38: \"python3.8\",\n python39: \"python3.9\",\n ruby25: \"ruby2.5\",\n ruby27: \"ruby2.7\",\n ruby32: \"ruby3.2\",\n ruby33: \"ruby3.3\",\n ruby34: \"ruby3.4\"\n};\nvar SnapStartApplyOn = {\n None: \"None\",\n PublishedVersions: \"PublishedVersions\"\n};\nvar TracingMode = {\n Active: \"Active\",\n PassThrough: \"PassThrough\"\n};\nvar LastUpdateStatus = {\n Failed: \"Failed\",\n InProgress: \"InProgress\",\n Successful: \"Successful\"\n};\nvar LastUpdateStatusReasonCode = {\n DisabledKMSKey: \"DisabledKMSKey\",\n EFSIOError: \"EFSIOError\",\n EFSMountConnectivityError: \"EFSMountConnectivityError\",\n EFSMountFailure: \"EFSMountFailure\",\n EFSMountTimeout: \"EFSMountTimeout\",\n EniLimitExceeded: \"EniLimitExceeded\",\n FunctionError: \"FunctionError\",\n ImageAccessDenied: \"ImageAccessDenied\",\n ImageDeleted: \"ImageDeleted\",\n InsufficientRolePermissions: \"InsufficientRolePermissions\",\n InternalError: \"InternalError\",\n InvalidConfiguration: \"InvalidConfiguration\",\n InvalidImage: \"InvalidImage\",\n InvalidRuntime: \"InvalidRuntime\",\n InvalidSecurityGroup: \"InvalidSecurityGroup\",\n InvalidStateKMSKey: \"InvalidStateKMSKey\",\n InvalidSubnet: \"InvalidSubnet\",\n InvalidZipFileException: \"InvalidZipFileException\",\n KMSKeyAccessDenied: \"KMSKeyAccessDenied\",\n KMSKeyNotFound: \"KMSKeyNotFound\",\n SubnetOutOfIPAddresses: \"SubnetOutOfIPAddresses\"\n};\nvar SnapStartOptimizationStatus = {\n Off: \"Off\",\n On: \"On\"\n};\nvar State = {\n Active: \"Active\",\n Failed: \"Failed\",\n Inactive: \"Inactive\",\n Pending: \"Pending\"\n};\nvar StateReasonCode = {\n Creating: \"Creating\",\n DisabledKMSKey: \"DisabledKMSKey\",\n EFSIOError: \"EFSIOError\",\n EFSMountConnectivityError: \"EFSMountConnectivityError\",\n EFSMountFailure: \"EFSMountFailure\",\n EFSMountTimeout: \"EFSMountTimeout\",\n EniLimitExceeded: \"EniLimitExceeded\",\n FunctionError: \"FunctionError\",\n Idle: \"Idle\",\n ImageAccessDenied: \"ImageAccessDenied\",\n ImageDeleted: \"ImageDeleted\",\n InsufficientRolePermissions: \"InsufficientRolePermissions\",\n InternalError: \"InternalError\",\n InvalidConfiguration: \"InvalidConfiguration\",\n InvalidImage: \"InvalidImage\",\n InvalidRuntime: \"InvalidRuntime\",\n InvalidSecurityGroup: \"InvalidSecurityGroup\",\n InvalidStateKMSKey: \"InvalidStateKMSKey\",\n InvalidSubnet: \"InvalidSubnet\",\n InvalidZipFileException: \"InvalidZipFileException\",\n KMSKeyAccessDenied: \"KMSKeyAccessDenied\",\n KMSKeyNotFound: \"KMSKeyNotFound\",\n Restoring: \"Restoring\",\n SubnetOutOfIPAddresses: \"SubnetOutOfIPAddresses\"\n};\nvar InvalidCodeSignatureException = class _InvalidCodeSignatureException extends LambdaServiceException {\n static {\n __name(this, \"InvalidCodeSignatureException\");\n }\n name = \"InvalidCodeSignatureException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCodeSignatureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCodeSignatureException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvokeMode = {\n BUFFERED: \"BUFFERED\",\n RESPONSE_STREAM: \"RESPONSE_STREAM\"\n};\nvar ResourceInUseException = class _ResourceInUseException extends LambdaServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar RecursiveLoop = {\n Allow: \"Allow\",\n Terminate: \"Terminate\"\n};\nvar ProvisionedConcurrencyStatusEnum = {\n FAILED: \"FAILED\",\n IN_PROGRESS: \"IN_PROGRESS\",\n READY: \"READY\"\n};\nvar ProvisionedConcurrencyConfigNotFoundException = class _ProvisionedConcurrencyConfigNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"ProvisionedConcurrencyConfigNotFoundException\");\n }\n name = \"ProvisionedConcurrencyConfigNotFoundException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ProvisionedConcurrencyConfigNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ProvisionedConcurrencyConfigNotFoundException.prototype);\n this.Type = opts.Type;\n }\n};\nvar UpdateRuntimeOn = {\n Auto: \"Auto\",\n FunctionUpdate: \"FunctionUpdate\",\n Manual: \"Manual\"\n};\nvar EC2AccessDeniedException = class _EC2AccessDeniedException extends LambdaServiceException {\n static {\n __name(this, \"EC2AccessDeniedException\");\n }\n name = \"EC2AccessDeniedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EC2AccessDeniedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _EC2AccessDeniedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EC2ThrottledException = class _EC2ThrottledException extends LambdaServiceException {\n static {\n __name(this, \"EC2ThrottledException\");\n }\n name = \"EC2ThrottledException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EC2ThrottledException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _EC2ThrottledException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EC2UnexpectedException = class _EC2UnexpectedException extends LambdaServiceException {\n static {\n __name(this, \"EC2UnexpectedException\");\n }\n name = \"EC2UnexpectedException\";\n $fault = \"server\";\n Type;\n Message;\n EC2ErrorCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EC2UnexpectedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _EC2UnexpectedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n this.EC2ErrorCode = opts.EC2ErrorCode;\n }\n};\nvar EFSIOException = class _EFSIOException extends LambdaServiceException {\n static {\n __name(this, \"EFSIOException\");\n }\n name = \"EFSIOException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSIOException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSIOException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EFSMountConnectivityException = class _EFSMountConnectivityException extends LambdaServiceException {\n static {\n __name(this, \"EFSMountConnectivityException\");\n }\n name = \"EFSMountConnectivityException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSMountConnectivityException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSMountConnectivityException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EFSMountFailureException = class _EFSMountFailureException extends LambdaServiceException {\n static {\n __name(this, \"EFSMountFailureException\");\n }\n name = \"EFSMountFailureException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSMountFailureException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSMountFailureException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar EFSMountTimeoutException = class _EFSMountTimeoutException extends LambdaServiceException {\n static {\n __name(this, \"EFSMountTimeoutException\");\n }\n name = \"EFSMountTimeoutException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EFSMountTimeoutException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EFSMountTimeoutException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar ENILimitReachedException = class _ENILimitReachedException extends LambdaServiceException {\n static {\n __name(this, \"ENILimitReachedException\");\n }\n name = \"ENILimitReachedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ENILimitReachedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ENILimitReachedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidRequestContentException = class _InvalidRequestContentException extends LambdaServiceException {\n static {\n __name(this, \"InvalidRequestContentException\");\n }\n name = \"InvalidRequestContentException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestContentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestContentException.prototype);\n this.Type = opts.Type;\n }\n};\nvar InvalidRuntimeException = class _InvalidRuntimeException extends LambdaServiceException {\n static {\n __name(this, \"InvalidRuntimeException\");\n }\n name = \"InvalidRuntimeException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRuntimeException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRuntimeException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidSecurityGroupIDException = class _InvalidSecurityGroupIDException extends LambdaServiceException {\n static {\n __name(this, \"InvalidSecurityGroupIDException\");\n }\n name = \"InvalidSecurityGroupIDException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSecurityGroupIDException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSecurityGroupIDException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidSubnetIDException = class _InvalidSubnetIDException extends LambdaServiceException {\n static {\n __name(this, \"InvalidSubnetIDException\");\n }\n name = \"InvalidSubnetIDException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSubnetIDException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSubnetIDException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvalidZipFileException = class _InvalidZipFileException extends LambdaServiceException {\n static {\n __name(this, \"InvalidZipFileException\");\n }\n name = \"InvalidZipFileException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidZipFileException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidZipFileException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar InvocationType = {\n DryRun: \"DryRun\",\n Event: \"Event\",\n RequestResponse: \"RequestResponse\"\n};\nvar LogType = {\n None: \"None\",\n Tail: \"Tail\"\n};\nvar KMSAccessDeniedException = class _KMSAccessDeniedException extends LambdaServiceException {\n static {\n __name(this, \"KMSAccessDeniedException\");\n }\n name = \"KMSAccessDeniedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSAccessDeniedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSAccessDeniedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar KMSDisabledException = class _KMSDisabledException extends LambdaServiceException {\n static {\n __name(this, \"KMSDisabledException\");\n }\n name = \"KMSDisabledException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSDisabledException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSDisabledException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar KMSInvalidStateException = class _KMSInvalidStateException extends LambdaServiceException {\n static {\n __name(this, \"KMSInvalidStateException\");\n }\n name = \"KMSInvalidStateException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSInvalidStateException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSInvalidStateException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar KMSNotFoundException = class _KMSNotFoundException extends LambdaServiceException {\n static {\n __name(this, \"KMSNotFoundException\");\n }\n name = \"KMSNotFoundException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KMSNotFoundException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _KMSNotFoundException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar RecursiveInvocationException = class _RecursiveInvocationException extends LambdaServiceException {\n static {\n __name(this, \"RecursiveInvocationException\");\n }\n name = \"RecursiveInvocationException\";\n $fault = \"client\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n *

The exception message.

\n * @public\n */\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RecursiveInvocationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RecursiveInvocationException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar RequestTooLargeException = class _RequestTooLargeException extends LambdaServiceException {\n static {\n __name(this, \"RequestTooLargeException\");\n }\n name = \"RequestTooLargeException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RequestTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RequestTooLargeException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResourceNotReadyException = class _ResourceNotReadyException extends LambdaServiceException {\n static {\n __name(this, \"ResourceNotReadyException\");\n }\n name = \"ResourceNotReadyException\";\n $fault = \"server\";\n /**\n *

The exception type.

\n * @public\n */\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotReadyException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotReadyException.prototype);\n this.Type = opts.Type;\n }\n};\nvar SnapStartException = class _SnapStartException extends LambdaServiceException {\n static {\n __name(this, \"SnapStartException\");\n }\n name = \"SnapStartException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SnapStartException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SnapStartException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar SnapStartNotReadyException = class _SnapStartNotReadyException extends LambdaServiceException {\n static {\n __name(this, \"SnapStartNotReadyException\");\n }\n name = \"SnapStartNotReadyException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SnapStartNotReadyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SnapStartNotReadyException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar SnapStartTimeoutException = class _SnapStartTimeoutException extends LambdaServiceException {\n static {\n __name(this, \"SnapStartTimeoutException\");\n }\n name = \"SnapStartTimeoutException\";\n $fault = \"client\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SnapStartTimeoutException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SnapStartTimeoutException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar SubnetIPAddressLimitReachedException = class _SubnetIPAddressLimitReachedException extends LambdaServiceException {\n static {\n __name(this, \"SubnetIPAddressLimitReachedException\");\n }\n name = \"SubnetIPAddressLimitReachedException\";\n $fault = \"server\";\n Type;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SubnetIPAddressLimitReachedException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _SubnetIPAddressLimitReachedException.prototype);\n this.Type = opts.Type;\n this.Message = opts.Message;\n }\n};\nvar UnsupportedMediaTypeException = class _UnsupportedMediaTypeException extends LambdaServiceException {\n static {\n __name(this, \"UnsupportedMediaTypeException\");\n }\n name = \"UnsupportedMediaTypeException\";\n $fault = \"client\";\n Type;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedMediaTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedMediaTypeException.prototype);\n this.Type = opts.Type;\n }\n};\nvar ResponseStreamingInvocationType = {\n DryRun: \"DryRun\",\n RequestResponse: \"RequestResponse\"\n};\nvar InvokeWithResponseStreamResponseEvent;\n((InvokeWithResponseStreamResponseEvent3) => {\n InvokeWithResponseStreamResponseEvent3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.PayloadChunk !== void 0) return visitor.PayloadChunk(value.PayloadChunk);\n if (value.InvokeComplete !== void 0) return visitor.InvokeComplete(value.InvokeComplete);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(InvokeWithResponseStreamResponseEvent || (InvokeWithResponseStreamResponseEvent = {}));\nvar FunctionVersion = {\n ALL: \"ALL\"\n};\nvar FunctionCodeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ZipFile && { ZipFile: import_smithy_client.SENSITIVE_STRING }\n}), \"FunctionCodeFilterSensitiveLog\");\nvar EnvironmentFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Variables && { Variables: import_smithy_client.SENSITIVE_STRING }\n}), \"EnvironmentFilterSensitiveLog\");\nvar CreateFunctionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Code && { Code: FunctionCodeFilterSensitiveLog(obj.Code) },\n ...obj.Environment && { Environment: EnvironmentFilterSensitiveLog(obj.Environment) }\n}), \"CreateFunctionRequestFilterSensitiveLog\");\nvar EnvironmentErrorFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"EnvironmentErrorFilterSensitiveLog\");\nvar EnvironmentResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Variables && { Variables: import_smithy_client.SENSITIVE_STRING },\n ...obj.Error && { Error: EnvironmentErrorFilterSensitiveLog(obj.Error) }\n}), \"EnvironmentResponseFilterSensitiveLog\");\nvar ImageConfigErrorFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"ImageConfigErrorFilterSensitiveLog\");\nvar ImageConfigResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Error && { Error: ImageConfigErrorFilterSensitiveLog(obj.Error) }\n}), \"ImageConfigResponseFilterSensitiveLog\");\nvar RuntimeVersionErrorFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Message && { Message: import_smithy_client.SENSITIVE_STRING }\n}), \"RuntimeVersionErrorFilterSensitiveLog\");\nvar RuntimeVersionConfigFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Error && { Error: RuntimeVersionErrorFilterSensitiveLog(obj.Error) }\n}), \"RuntimeVersionConfigFilterSensitiveLog\");\nvar FunctionConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Environment && { Environment: EnvironmentResponseFilterSensitiveLog(obj.Environment) },\n ...obj.ImageConfigResponse && {\n ImageConfigResponse: ImageConfigResponseFilterSensitiveLog(obj.ImageConfigResponse)\n },\n ...obj.RuntimeVersionConfig && {\n RuntimeVersionConfig: RuntimeVersionConfigFilterSensitiveLog(obj.RuntimeVersionConfig)\n }\n}), \"FunctionConfigurationFilterSensitiveLog\");\nvar GetFunctionResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Configuration && { Configuration: FunctionConfigurationFilterSensitiveLog(obj.Configuration) }\n}), \"GetFunctionResponseFilterSensitiveLog\");\nvar InvocationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvocationRequestFilterSensitiveLog\");\nvar InvocationResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvocationResponseFilterSensitiveLog\");\nvar InvokeAsyncRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"InvokeAsyncRequestFilterSensitiveLog\");\nvar InvokeWithResponseStreamRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvokeWithResponseStreamRequestFilterSensitiveLog\");\nvar InvokeResponseStreamUpdateFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"InvokeResponseStreamUpdateFilterSensitiveLog\");\nvar InvokeWithResponseStreamResponseEventFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.PayloadChunk !== void 0)\n return { PayloadChunk: InvokeResponseStreamUpdateFilterSensitiveLog(obj.PayloadChunk) };\n if (obj.InvokeComplete !== void 0) return { InvokeComplete: obj.InvokeComplete };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"InvokeWithResponseStreamResponseEventFilterSensitiveLog\");\nvar InvokeWithResponseStreamResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.EventStream && { EventStream: \"STREAMING_CONTENT\" }\n}), \"InvokeWithResponseStreamResponseFilterSensitiveLog\");\nvar ListFunctionsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Functions && { Functions: obj.Functions.map((item) => FunctionConfigurationFilterSensitiveLog(item)) }\n}), \"ListFunctionsResponseFilterSensitiveLog\");\nvar ListVersionsByFunctionResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Versions && { Versions: obj.Versions.map((item) => FunctionConfigurationFilterSensitiveLog(item)) }\n}), \"ListVersionsByFunctionResponseFilterSensitiveLog\");\nvar LayerVersionContentInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ZipFile && { ZipFile: import_smithy_client.SENSITIVE_STRING }\n}), \"LayerVersionContentInputFilterSensitiveLog\");\nvar PublishLayerVersionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Content && { Content: LayerVersionContentInputFilterSensitiveLog(obj.Content) }\n}), \"PublishLayerVersionRequestFilterSensitiveLog\");\nvar UpdateFunctionCodeRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ZipFile && { ZipFile: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateFunctionCodeRequestFilterSensitiveLog\");\nvar UpdateFunctionConfigurationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Environment && { Environment: EnvironmentFilterSensitiveLog(obj.Environment) }\n}), \"UpdateFunctionConfigurationRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar se_AddLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n const query = (0, import_smithy_client.map)({\n [_RI]: [, input[_RI]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Action: [],\n OrganizationId: [],\n Principal: [],\n StatementId: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_AddLayerVersionPermissionCommand\");\nvar se_AddPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/policy\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Action: [],\n EventSourceToken: [],\n FunctionUrlAuthType: [],\n Principal: [],\n PrincipalOrgID: [],\n RevisionId: [],\n SourceAccount: [],\n SourceArn: [],\n StatementId: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_AddPermissionCommand\");\nvar se_CreateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Description: [],\n FunctionVersion: [],\n Name: [],\n RoutingConfig: /* @__PURE__ */ __name((_) => se_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateAliasCommand\");\nvar se_CreateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2020-04-22/code-signing-configs\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AllowedPublishers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"AllowedPublishers\"),\n CodeSigningPolicies: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CodeSigningPolicies\"),\n Description: [],\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateCodeSigningConfigCommand\");\nvar se_CreateEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/event-source-mappings\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AmazonManagedKafkaEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"AmazonManagedKafkaEventSourceConfig\"),\n BatchSize: [],\n BisectBatchOnFunctionError: [],\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n DocumentDBEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DocumentDBEventSourceConfig\"),\n Enabled: [],\n EventSourceArn: [],\n FilterCriteria: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FilterCriteria\"),\n FunctionName: [],\n FunctionResponseTypes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FunctionResponseTypes\"),\n KMSKeyArn: [],\n MaximumBatchingWindowInSeconds: [],\n MaximumRecordAgeInSeconds: [],\n MaximumRetryAttempts: [],\n MetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"MetricsConfig\"),\n ParallelizationFactor: [],\n ProvisionedPollerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ProvisionedPollerConfig\"),\n Queues: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Queues\"),\n ScalingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ScalingConfig\"),\n SelfManagedEventSource: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SelfManagedEventSource\"),\n SelfManagedKafkaEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SelfManagedKafkaEventSourceConfig\"),\n SourceAccessConfigurations: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SourceAccessConfigurations\"),\n StartingPosition: [],\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"StartingPositionTimestamp\"),\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\"),\n Topics: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Topics\"),\n TumblingWindowInSeconds: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateEventSourceMappingCommand\");\nvar se_CreateFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Architectures: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Architectures\"),\n Code: /* @__PURE__ */ __name((_) => se_FunctionCode(_, context), \"Code\"),\n CodeSigningConfigArn: [],\n DeadLetterConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DeadLetterConfig\"),\n Description: [],\n Environment: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Environment\"),\n EphemeralStorage: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"EphemeralStorage\"),\n FileSystemConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FileSystemConfigs\"),\n FunctionName: [],\n Handler: [],\n ImageConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ImageConfig\"),\n KMSKeyArn: [],\n Layers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Layers\"),\n LoggingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"LoggingConfig\"),\n MemorySize: [],\n PackageType: [],\n Publish: [],\n Role: [],\n Runtime: [],\n SnapStart: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SnapStart\"),\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\"),\n Timeout: [],\n TracingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"TracingConfig\"),\n VpcConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"VpcConfig\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateFunctionCommand\");\nvar se_CreateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AuthType: [],\n Cors: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Cors\"),\n InvokeMode: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateFunctionUrlConfigCommand\");\nvar se_DeleteAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases/{Name}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteAliasCommand\");\nvar se_DeleteCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteCodeSigningConfigCommand\");\nvar se_DeleteEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/event-source-mappings/{UUID}\");\n b.p(\"UUID\", () => input.UUID, \"{UUID}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteEventSourceMappingCommand\");\nvar se_DeleteFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteFunctionCommand\");\nvar se_DeleteFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-06-30/functions/{FunctionName}/code-signing-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteFunctionCodeSigningConfigCommand\");\nvar se_DeleteFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2017-10-31/functions/{FunctionName}/concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteFunctionConcurrencyCommand\");\nvar se_DeleteFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteFunctionEventInvokeConfigCommand\");\nvar se_DeleteFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteFunctionUrlConfigCommand\");\nvar se_DeleteLayerVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteLayerVersionCommand\");\nvar se_DeleteProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, (0, import_smithy_client.expectNonNull)(input[_Q], `Qualifier`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteProvisionedConcurrencyConfigCommand\");\nvar se_GetAccountSettingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2016-08-19/account-settings\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetAccountSettingsCommand\");\nvar se_GetAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases/{Name}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetAliasCommand\");\nvar se_GetCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetCodeSigningConfigCommand\");\nvar se_GetEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/event-source-mappings/{UUID}\");\n b.p(\"UUID\", () => input.UUID, \"{UUID}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetEventSourceMappingCommand\");\nvar se_GetFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionCommand\");\nvar se_GetFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-06-30/functions/{FunctionName}/code-signing-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionCodeSigningConfigCommand\");\nvar se_GetFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionConcurrencyCommand\");\nvar se_GetFunctionConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/configuration\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionConfigurationCommand\");\nvar se_GetFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionEventInvokeConfigCommand\");\nvar se_GetFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2024-08-31/functions/{FunctionName}/recursion-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetFunctionRecursionConfigCommand\");\nvar se_GetFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetFunctionUrlConfigCommand\");\nvar se_GetLayerVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetLayerVersionCommand\");\nvar se_GetLayerVersionByArnCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers\");\n const query = (0, import_smithy_client.map)({\n [_f]: [, \"LayerVersion\"],\n [_A]: [, (0, import_smithy_client.expectNonNull)(input[_A], `Arn`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetLayerVersionByArnCommand\");\nvar se_GetLayerVersionPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetLayerVersionPolicyCommand\");\nvar se_GetPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/policy\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetPolicyCommand\");\nvar se_GetProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, (0, import_smithy_client.expectNonNull)(input[_Q], `Qualifier`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetProvisionedConcurrencyConfigCommand\");\nvar se_GetRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-07-20/functions/{FunctionName}/runtime-management-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRuntimeManagementConfigCommand\");\nvar se_InvokeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n [_xait]: input[_IT],\n [_xalt]: input[_LT],\n [_xacc]: input[_CC]\n });\n b.bp(\"/2015-03-31/functions/{FunctionName}/invocations\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n if (input.Payload !== void 0) {\n body = input.Payload;\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_InvokeCommand\");\nvar se_InvokeAsyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/octet-stream\"\n };\n b.bp(\"/2014-11-13/functions/{FunctionName}/invoke-async\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n if (input.InvokeArgs !== void 0) {\n body = input.InvokeArgs;\n }\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_InvokeAsyncCommand\");\nvar se_InvokeWithResponseStreamCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n [_xait]: input[_IT],\n [_xalt]: input[_LT],\n [_xacc]: input[_CC]\n });\n b.bp(\"/2021-11-15/functions/{FunctionName}/response-streaming-invocations\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n if (input.Payload !== void 0) {\n body = input.Payload;\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_InvokeWithResponseStreamCommand\");\nvar se_ListAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_FV]: [, input[_FV]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAliasesCommand\");\nvar se_ListCodeSigningConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs\");\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCodeSigningConfigsCommand\");\nvar se_ListEventSourceMappingsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/event-source-mappings\");\n const query = (0, import_smithy_client.map)({\n [_ESA]: [, input[_ESA]],\n [_FN]: [, input[_FN]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListEventSourceMappingsCommand\");\nvar se_ListFunctionEventInvokeConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config/list\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionEventInvokeConfigsCommand\");\nvar se_ListFunctionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions\");\n const query = (0, import_smithy_client.map)({\n [_MR]: [, input[_MR]],\n [_FV]: [, input[_FV]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionsCommand\");\nvar se_ListFunctionsByCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}/functions\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionsByCodeSigningConfigCommand\");\nvar se_ListFunctionUrlConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2021-10-31/functions/{FunctionName}/urls\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListFunctionUrlConfigsCommand\");\nvar se_ListLayersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers\");\n const query = (0, import_smithy_client.map)({\n [_CR]: [, input[_CR]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_CA]: [, input[_CA]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListLayersCommand\");\nvar se_ListLayerVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n const query = (0, import_smithy_client.map)({\n [_CR]: [, input[_CR]],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_CA]: [, input[_CA]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListLayerVersionsCommand\");\nvar se_ListProvisionedConcurrencyConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_L]: [, \"ALL\"],\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListProvisionedConcurrencyConfigsCommand\");\nvar se_ListTagsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2017-03-31/tags/{Resource}\");\n b.p(\"Resource\", () => input.Resource, \"{Resource}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsCommand\");\nvar se_ListVersionsByFunctionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/versions\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_M]: [, input[_M]],\n [_MI]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListVersionsByFunctionCommand\");\nvar se_PublishLayerVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2018-10-31/layers/{LayerName}/versions\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n CompatibleArchitectures: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CompatibleArchitectures\"),\n CompatibleRuntimes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CompatibleRuntimes\"),\n Content: /* @__PURE__ */ __name((_) => se_LayerVersionContentInput(_, context), \"Content\"),\n Description: [],\n LicenseInfo: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_PublishLayerVersionCommand\");\nvar se_PublishVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/versions\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n CodeSha256: [],\n Description: [],\n RevisionId: []\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_PublishVersionCommand\");\nvar se_PutFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2020-06-30/functions/{FunctionName}/code-signing-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n CodeSigningConfigArn: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutFunctionCodeSigningConfigCommand\");\nvar se_PutFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2017-10-31/functions/{FunctionName}/concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n ReservedConcurrentExecutions: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutFunctionConcurrencyCommand\");\nvar se_PutFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n MaximumEventAgeInSeconds: [],\n MaximumRetryAttempts: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutFunctionEventInvokeConfigCommand\");\nvar se_PutFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2024-08-31/functions/{FunctionName}/recursion-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n RecursiveLoop: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_PutFunctionRecursionConfigCommand\");\nvar se_PutProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2019-09-30/functions/{FunctionName}/provisioned-concurrency\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, (0, import_smithy_client.expectNonNull)(input[_Q], `Qualifier`)]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n ProvisionedConcurrentExecutions: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutProvisionedConcurrencyConfigCommand\");\nvar se_PutRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2021-07-20/functions/{FunctionName}/runtime-management-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n RuntimeVersionArn: [],\n UpdateRuntimeOn: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutRuntimeManagementConfigCommand\");\nvar se_RemoveLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy/{StatementId}\");\n b.p(\"LayerName\", () => input.LayerName, \"{LayerName}\", false);\n b.p(\"VersionNumber\", () => input.VersionNumber.toString(), \"{VersionNumber}\", false);\n b.p(\"StatementId\", () => input.StatementId, \"{StatementId}\", false);\n const query = (0, import_smithy_client.map)({\n [_RI]: [, input[_RI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RemoveLayerVersionPermissionCommand\");\nvar se_RemovePermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2015-03-31/functions/{FunctionName}/policy/{StatementId}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"StatementId\", () => input.StatementId, \"{StatementId}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]],\n [_RI]: [, input[_RI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RemovePermissionCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2017-03-31/tags/{Resource}\");\n b.p(\"Resource\", () => input.Resource, \"{Resource}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Tags: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Tags\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2017-03-31/tags/{Resource}\");\n b.p(\"Resource\", () => input.Resource, \"{Resource}\", false);\n const query = (0, import_smithy_client.map)({\n [_tK]: [(0, import_smithy_client.expectNonNull)(input.TagKeys, `TagKeys`) != null, () => input[_TK] || []]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UntagResourceCommand\");\nvar se_UpdateAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/aliases/{Name}\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Description: [],\n FunctionVersion: [],\n RevisionId: [],\n RoutingConfig: /* @__PURE__ */ __name((_) => se_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateAliasCommand\");\nvar se_UpdateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2020-04-22/code-signing-configs/{CodeSigningConfigArn}\");\n b.p(\"CodeSigningConfigArn\", () => input.CodeSigningConfigArn, \"{CodeSigningConfigArn}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AllowedPublishers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"AllowedPublishers\"),\n CodeSigningPolicies: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"CodeSigningPolicies\"),\n Description: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateCodeSigningConfigCommand\");\nvar se_UpdateEventSourceMappingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/event-source-mappings/{UUID}\");\n b.p(\"UUID\", () => input.UUID, \"{UUID}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n BatchSize: [],\n BisectBatchOnFunctionError: [],\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n DocumentDBEventSourceConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DocumentDBEventSourceConfig\"),\n Enabled: [],\n FilterCriteria: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FilterCriteria\"),\n FunctionName: [],\n FunctionResponseTypes: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FunctionResponseTypes\"),\n KMSKeyArn: [],\n MaximumBatchingWindowInSeconds: [],\n MaximumRecordAgeInSeconds: [],\n MaximumRetryAttempts: [],\n MetricsConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"MetricsConfig\"),\n ParallelizationFactor: [],\n ProvisionedPollerConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ProvisionedPollerConfig\"),\n ScalingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ScalingConfig\"),\n SourceAccessConfigurations: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SourceAccessConfigurations\"),\n TumblingWindowInSeconds: []\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateEventSourceMappingCommand\");\nvar se_UpdateFunctionCodeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/code\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n Architectures: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Architectures\"),\n DryRun: [],\n ImageUri: [],\n Publish: [],\n RevisionId: [],\n S3Bucket: [],\n S3Key: [],\n S3ObjectVersion: [],\n SourceKMSKeyArn: [],\n ZipFile: /* @__PURE__ */ __name((_) => context.base64Encoder(_), \"ZipFile\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateFunctionCodeCommand\");\nvar se_UpdateFunctionConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2015-03-31/functions/{FunctionName}/configuration\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n DeadLetterConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DeadLetterConfig\"),\n Description: [],\n Environment: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Environment\"),\n EphemeralStorage: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"EphemeralStorage\"),\n FileSystemConfigs: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"FileSystemConfigs\"),\n Handler: [],\n ImageConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"ImageConfig\"),\n KMSKeyArn: [],\n Layers: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Layers\"),\n LoggingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"LoggingConfig\"),\n MemorySize: [],\n RevisionId: [],\n Role: [],\n Runtime: [],\n SnapStart: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"SnapStart\"),\n Timeout: [],\n TracingConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"TracingConfig\"),\n VpcConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"VpcConfig\")\n })\n );\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateFunctionConfigurationCommand\");\nvar se_UpdateFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2019-09-25/functions/{FunctionName}/event-invoke-config\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n DestinationConfig: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"DestinationConfig\"),\n MaximumEventAgeInSeconds: [],\n MaximumRetryAttempts: []\n })\n );\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateFunctionEventInvokeConfigCommand\");\nvar se_UpdateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/2021-10-31/functions/{FunctionName}/url\");\n b.p(\"FunctionName\", () => input.FunctionName, \"{FunctionName}\", false);\n const query = (0, import_smithy_client.map)({\n [_Q]: [, input[_Q]]\n });\n let body;\n body = JSON.stringify(\n (0, import_smithy_client.take)(input, {\n AuthType: [],\n Cors: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)(_), \"Cors\"),\n InvokeMode: []\n })\n );\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateFunctionUrlConfigCommand\");\nvar de_AddLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n RevisionId: import_smithy_client.expectString,\n Statement: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AddLayerVersionPermissionCommand\");\nvar de_AddPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Statement: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_AddPermissionCommand\");\nvar de_CreateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateAliasCommand\");\nvar de_CreateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateCodeSigningConfigCommand\");\nvar de_CreateEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateEventSourceMappingCommand\");\nvar de_CreateFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateFunctionCommand\");\nvar de_CreateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AuthType: import_smithy_client.expectString,\n Cors: import_smithy_client._json,\n CreationTime: import_smithy_client.expectString,\n FunctionArn: import_smithy_client.expectString,\n FunctionUrl: import_smithy_client.expectString,\n InvokeMode: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateFunctionUrlConfigCommand\");\nvar de_DeleteAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteAliasCommand\");\nvar de_DeleteCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteCodeSigningConfigCommand\");\nvar de_DeleteEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_DeleteEventSourceMappingCommand\");\nvar de_DeleteFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionCommand\");\nvar de_DeleteFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionCodeSigningConfigCommand\");\nvar de_DeleteFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionConcurrencyCommand\");\nvar de_DeleteFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionEventInvokeConfigCommand\");\nvar de_DeleteFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteFunctionUrlConfigCommand\");\nvar de_DeleteLayerVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteLayerVersionCommand\");\nvar de_DeleteProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteProvisionedConcurrencyConfigCommand\");\nvar de_GetAccountSettingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AccountLimit: import_smithy_client._json,\n AccountUsage: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetAccountSettingsCommand\");\nvar de_GetAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetAliasCommand\");\nvar de_GetCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetCodeSigningConfigCommand\");\nvar de_GetEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetEventSourceMappingCommand\");\nvar de_GetFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Code: import_smithy_client._json,\n Concurrency: import_smithy_client._json,\n Configuration: import_smithy_client._json,\n Tags: import_smithy_client._json,\n TagsError: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionCommand\");\nvar de_GetFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfigArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionCodeSigningConfigCommand\");\nvar de_GetFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n ReservedConcurrentExecutions: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionConcurrencyCommand\");\nvar de_GetFunctionConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionConfigurationCommand\");\nvar de_GetFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionEventInvokeConfigCommand\");\nvar de_GetFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n RecursiveLoop: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionRecursionConfigCommand\");\nvar de_GetFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AuthType: import_smithy_client.expectString,\n Cors: import_smithy_client._json,\n CreationTime: import_smithy_client.expectString,\n FunctionArn: import_smithy_client.expectString,\n FunctionUrl: import_smithy_client.expectString,\n InvokeMode: import_smithy_client.expectString,\n LastModifiedTime: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetFunctionUrlConfigCommand\");\nvar de_GetLayerVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CompatibleArchitectures: import_smithy_client._json,\n CompatibleRuntimes: import_smithy_client._json,\n Content: import_smithy_client._json,\n CreatedDate: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LayerArn: import_smithy_client.expectString,\n LayerVersionArn: import_smithy_client.expectString,\n LicenseInfo: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetLayerVersionCommand\");\nvar de_GetLayerVersionByArnCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CompatibleArchitectures: import_smithy_client._json,\n CompatibleRuntimes: import_smithy_client._json,\n Content: import_smithy_client._json,\n CreatedDate: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LayerArn: import_smithy_client.expectString,\n LayerVersionArn: import_smithy_client.expectString,\n LicenseInfo: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetLayerVersionByArnCommand\");\nvar de_GetLayerVersionPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Policy: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetLayerVersionPolicyCommand\");\nvar de_GetPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Policy: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetPolicyCommand\");\nvar de_GetProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AllocatedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n AvailableProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n LastModified: import_smithy_client.expectString,\n RequestedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n Status: import_smithy_client.expectString,\n StatusReason: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetProvisionedConcurrencyConfigCommand\");\nvar de_GetRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionArn: import_smithy_client.expectString,\n RuntimeVersionArn: import_smithy_client.expectString,\n UpdateRuntimeOn: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRuntimeManagementConfigCommand\");\nvar de_InvokeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_FE]: [, output.headers[_xafe]],\n [_LR]: [, output.headers[_xalr]],\n [_EV]: [, output.headers[_xaev]]\n });\n const data = await (0, import_smithy_client.collectBody)(output.body, context);\n contents.Payload = data;\n (0, import_smithy_client.map)(contents, {\n StatusCode: [, output.statusCode]\n });\n return contents;\n}, \"de_InvokeCommand\");\nvar de_InvokeAsyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n (0, import_smithy_client.map)(contents, {\n Status: [, output.statusCode]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_InvokeAsyncCommand\");\nvar de_InvokeWithResponseStreamCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_EV]: [, output.headers[_xaev]],\n [_RSCT]: [, output.headers[_ct]]\n });\n const data = output.body;\n contents.EventStream = de_InvokeWithResponseStreamResponseEvent(data, context);\n (0, import_smithy_client.map)(contents, {\n StatusCode: [, output.statusCode]\n });\n return contents;\n}, \"de_InvokeWithResponseStreamCommand\");\nvar de_ListAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Aliases: /* @__PURE__ */ __name((_) => de_AliasList(_, context), \"Aliases\"),\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAliasesCommand\");\nvar de_ListCodeSigningConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfigs: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListCodeSigningConfigsCommand\");\nvar de_ListEventSourceMappingsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n EventSourceMappings: /* @__PURE__ */ __name((_) => de_EventSourceMappingsList(_, context), \"EventSourceMappings\"),\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListEventSourceMappingsCommand\");\nvar de_ListFunctionEventInvokeConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionEventInvokeConfigs: /* @__PURE__ */ __name((_) => de_FunctionEventInvokeConfigList(_, context), \"FunctionEventInvokeConfigs\"),\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionEventInvokeConfigsCommand\");\nvar de_ListFunctionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Functions: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionsCommand\");\nvar de_ListFunctionsByCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionArns: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionsByCodeSigningConfigCommand\");\nvar de_ListFunctionUrlConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionUrlConfigs: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListFunctionUrlConfigsCommand\");\nvar de_ListLayersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Layers: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListLayersCommand\");\nvar de_ListLayerVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n LayerVersions: import_smithy_client._json,\n NextMarker: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListLayerVersionsCommand\");\nvar de_ListProvisionedConcurrencyConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n NextMarker: import_smithy_client.expectString,\n ProvisionedConcurrencyConfigs: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListProvisionedConcurrencyConfigsCommand\");\nvar de_ListTagsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Tags: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListTagsCommand\");\nvar de_ListVersionsByFunctionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n NextMarker: import_smithy_client.expectString,\n Versions: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListVersionsByFunctionCommand\");\nvar de_PublishLayerVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CompatibleArchitectures: import_smithy_client._json,\n CompatibleRuntimes: import_smithy_client._json,\n Content: import_smithy_client._json,\n CreatedDate: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LayerArn: import_smithy_client.expectString,\n LayerVersionArn: import_smithy_client.expectString,\n LicenseInfo: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PublishLayerVersionCommand\");\nvar de_PublishVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PublishVersionCommand\");\nvar de_PutFunctionCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfigArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionCodeSigningConfigCommand\");\nvar de_PutFunctionConcurrencyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n ReservedConcurrentExecutions: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionConcurrencyCommand\");\nvar de_PutFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionEventInvokeConfigCommand\");\nvar de_PutFunctionRecursionConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n RecursiveLoop: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutFunctionRecursionConfigCommand\");\nvar de_PutProvisionedConcurrencyConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AllocatedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n AvailableProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n LastModified: import_smithy_client.expectString,\n RequestedProvisionedConcurrentExecutions: import_smithy_client.expectInt32,\n Status: import_smithy_client.expectString,\n StatusReason: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutProvisionedConcurrencyConfigCommand\");\nvar de_PutRuntimeManagementConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n FunctionArn: import_smithy_client.expectString,\n RuntimeVersionArn: import_smithy_client.expectString,\n UpdateRuntimeOn: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_PutRuntimeManagementConfigCommand\");\nvar de_RemoveLayerVersionPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RemoveLayerVersionPermissionCommand\");\nvar de_RemovePermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RemovePermissionCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateAliasCommand\");\nvar de_UpdateCodeSigningConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n CodeSigningConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateCodeSigningConfigCommand\");\nvar de_UpdateEventSourceMappingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 202 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateEventSourceMappingCommand\");\nvar de_UpdateFunctionCodeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionCodeCommand\");\nvar de_UpdateFunctionConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n Architectures: import_smithy_client._json,\n CodeSha256: import_smithy_client.expectString,\n CodeSize: import_smithy_client.expectLong,\n DeadLetterConfig: import_smithy_client._json,\n Description: import_smithy_client.expectString,\n Environment: import_smithy_client._json,\n EphemeralStorage: import_smithy_client._json,\n FileSystemConfigs: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionName: import_smithy_client.expectString,\n Handler: import_smithy_client.expectString,\n ImageConfigResponse: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: import_smithy_client.expectString,\n LastUpdateStatus: import_smithy_client.expectString,\n LastUpdateStatusReason: import_smithy_client.expectString,\n LastUpdateStatusReasonCode: import_smithy_client.expectString,\n Layers: import_smithy_client._json,\n LoggingConfig: import_smithy_client._json,\n MasterArn: import_smithy_client.expectString,\n MemorySize: import_smithy_client.expectInt32,\n PackageType: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n Role: import_smithy_client.expectString,\n Runtime: import_smithy_client.expectString,\n RuntimeVersionConfig: import_smithy_client._json,\n SigningJobArn: import_smithy_client.expectString,\n SigningProfileVersionArn: import_smithy_client.expectString,\n SnapStart: import_smithy_client._json,\n State: import_smithy_client.expectString,\n StateReason: import_smithy_client.expectString,\n StateReasonCode: import_smithy_client.expectString,\n Timeout: import_smithy_client.expectInt32,\n TracingConfig: import_smithy_client._json,\n Version: import_smithy_client.expectString,\n VpcConfig: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionConfigurationCommand\");\nvar de_UpdateFunctionEventInvokeConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionEventInvokeConfigCommand\");\nvar de_UpdateFunctionUrlConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n AuthType: import_smithy_client.expectString,\n Cors: import_smithy_client._json,\n CreationTime: import_smithy_client.expectString,\n FunctionArn: import_smithy_client.expectString,\n FunctionUrl: import_smithy_client.expectString,\n InvokeMode: import_smithy_client.expectString,\n LastModifiedTime: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_UpdateFunctionUrlConfigCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidParameterValueException\":\n case \"com.amazonaws.lambda#InvalidParameterValueException\":\n throw await de_InvalidParameterValueExceptionRes(parsedOutput, context);\n case \"PolicyLengthExceededException\":\n case \"com.amazonaws.lambda#PolicyLengthExceededException\":\n throw await de_PolicyLengthExceededExceptionRes(parsedOutput, context);\n case \"PreconditionFailedException\":\n case \"com.amazonaws.lambda#PreconditionFailedException\":\n throw await de_PreconditionFailedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.lambda#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.lambda#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ServiceException\":\n case \"com.amazonaws.lambda#ServiceException\":\n throw await de_ServiceExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.lambda#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"CodeSigningConfigNotFoundException\":\n case \"com.amazonaws.lambda#CodeSigningConfigNotFoundException\":\n throw await de_CodeSigningConfigNotFoundExceptionRes(parsedOutput, context);\n case \"CodeStorageExceededException\":\n case \"com.amazonaws.lambda#CodeStorageExceededException\":\n throw await de_CodeStorageExceededExceptionRes(parsedOutput, context);\n case \"CodeVerificationFailedException\":\n case \"com.amazonaws.lambda#CodeVerificationFailedException\":\n throw await de_CodeVerificationFailedExceptionRes(parsedOutput, context);\n case \"InvalidCodeSignatureException\":\n case \"com.amazonaws.lambda#InvalidCodeSignatureException\":\n throw await de_InvalidCodeSignatureExceptionRes(parsedOutput, context);\n case \"ResourceInUseException\":\n case \"com.amazonaws.lambda#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"ProvisionedConcurrencyConfigNotFoundException\":\n case \"com.amazonaws.lambda#ProvisionedConcurrencyConfigNotFoundException\":\n throw await de_ProvisionedConcurrencyConfigNotFoundExceptionRes(parsedOutput, context);\n case \"EC2AccessDeniedException\":\n case \"com.amazonaws.lambda#EC2AccessDeniedException\":\n throw await de_EC2AccessDeniedExceptionRes(parsedOutput, context);\n case \"EC2ThrottledException\":\n case \"com.amazonaws.lambda#EC2ThrottledException\":\n throw await de_EC2ThrottledExceptionRes(parsedOutput, context);\n case \"EC2UnexpectedException\":\n case \"com.amazonaws.lambda#EC2UnexpectedException\":\n throw await de_EC2UnexpectedExceptionRes(parsedOutput, context);\n case \"EFSIOException\":\n case \"com.amazonaws.lambda#EFSIOException\":\n throw await de_EFSIOExceptionRes(parsedOutput, context);\n case \"EFSMountConnectivityException\":\n case \"com.amazonaws.lambda#EFSMountConnectivityException\":\n throw await de_EFSMountConnectivityExceptionRes(parsedOutput, context);\n case \"EFSMountFailureException\":\n case \"com.amazonaws.lambda#EFSMountFailureException\":\n throw await de_EFSMountFailureExceptionRes(parsedOutput, context);\n case \"EFSMountTimeoutException\":\n case \"com.amazonaws.lambda#EFSMountTimeoutException\":\n throw await de_EFSMountTimeoutExceptionRes(parsedOutput, context);\n case \"ENILimitReachedException\":\n case \"com.amazonaws.lambda#ENILimitReachedException\":\n throw await de_ENILimitReachedExceptionRes(parsedOutput, context);\n case \"InvalidRequestContentException\":\n case \"com.amazonaws.lambda#InvalidRequestContentException\":\n throw await de_InvalidRequestContentExceptionRes(parsedOutput, context);\n case \"InvalidRuntimeException\":\n case \"com.amazonaws.lambda#InvalidRuntimeException\":\n throw await de_InvalidRuntimeExceptionRes(parsedOutput, context);\n case \"InvalidSecurityGroupIDException\":\n case \"com.amazonaws.lambda#InvalidSecurityGroupIDException\":\n throw await de_InvalidSecurityGroupIDExceptionRes(parsedOutput, context);\n case \"InvalidSubnetIDException\":\n case \"com.amazonaws.lambda#InvalidSubnetIDException\":\n throw await de_InvalidSubnetIDExceptionRes(parsedOutput, context);\n case \"InvalidZipFileException\":\n case \"com.amazonaws.lambda#InvalidZipFileException\":\n throw await de_InvalidZipFileExceptionRes(parsedOutput, context);\n case \"KMSAccessDeniedException\":\n case \"com.amazonaws.lambda#KMSAccessDeniedException\":\n throw await de_KMSAccessDeniedExceptionRes(parsedOutput, context);\n case \"KMSDisabledException\":\n case \"com.amazonaws.lambda#KMSDisabledException\":\n throw await de_KMSDisabledExceptionRes(parsedOutput, context);\n case \"KMSInvalidStateException\":\n case \"com.amazonaws.lambda#KMSInvalidStateException\":\n throw await de_KMSInvalidStateExceptionRes(parsedOutput, context);\n case \"KMSNotFoundException\":\n case \"com.amazonaws.lambda#KMSNotFoundException\":\n throw await de_KMSNotFoundExceptionRes(parsedOutput, context);\n case \"RecursiveInvocationException\":\n case \"com.amazonaws.lambda#RecursiveInvocationException\":\n throw await de_RecursiveInvocationExceptionRes(parsedOutput, context);\n case \"RequestTooLargeException\":\n case \"com.amazonaws.lambda#RequestTooLargeException\":\n throw await de_RequestTooLargeExceptionRes(parsedOutput, context);\n case \"ResourceNotReadyException\":\n case \"com.amazonaws.lambda#ResourceNotReadyException\":\n throw await de_ResourceNotReadyExceptionRes(parsedOutput, context);\n case \"SnapStartException\":\n case \"com.amazonaws.lambda#SnapStartException\":\n throw await de_SnapStartExceptionRes(parsedOutput, context);\n case \"SnapStartNotReadyException\":\n case \"com.amazonaws.lambda#SnapStartNotReadyException\":\n throw await de_SnapStartNotReadyExceptionRes(parsedOutput, context);\n case \"SnapStartTimeoutException\":\n case \"com.amazonaws.lambda#SnapStartTimeoutException\":\n throw await de_SnapStartTimeoutExceptionRes(parsedOutput, context);\n case \"SubnetIPAddressLimitReachedException\":\n case \"com.amazonaws.lambda#SubnetIPAddressLimitReachedException\":\n throw await de_SubnetIPAddressLimitReachedExceptionRes(parsedOutput, context);\n case \"UnsupportedMediaTypeException\":\n case \"com.amazonaws.lambda#UnsupportedMediaTypeException\":\n throw await de_UnsupportedMediaTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(LambdaServiceException);\nvar de_CodeSigningConfigNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new CodeSigningConfigNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_CodeSigningConfigNotFoundExceptionRes\");\nvar de_CodeStorageExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new CodeStorageExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_CodeStorageExceededExceptionRes\");\nvar de_CodeVerificationFailedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new CodeVerificationFailedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_CodeVerificationFailedExceptionRes\");\nvar de_EC2AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EC2AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EC2AccessDeniedExceptionRes\");\nvar de_EC2ThrottledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EC2ThrottledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EC2ThrottledExceptionRes\");\nvar de_EC2UnexpectedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n EC2ErrorCode: import_smithy_client.expectString,\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EC2UnexpectedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EC2UnexpectedExceptionRes\");\nvar de_EFSIOExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSIOException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSIOExceptionRes\");\nvar de_EFSMountConnectivityExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSMountConnectivityException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSMountConnectivityExceptionRes\");\nvar de_EFSMountFailureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSMountFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSMountFailureExceptionRes\");\nvar de_EFSMountTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new EFSMountTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EFSMountTimeoutExceptionRes\");\nvar de_ENILimitReachedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ENILimitReachedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ENILimitReachedExceptionRes\");\nvar de_InvalidCodeSignatureExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidCodeSignatureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidCodeSignatureExceptionRes\");\nvar de_InvalidParameterValueExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidParameterValueException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidParameterValueExceptionRes\");\nvar de_InvalidRequestContentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestContentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestContentExceptionRes\");\nvar de_InvalidRuntimeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRuntimeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRuntimeExceptionRes\");\nvar de_InvalidSecurityGroupIDExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidSecurityGroupIDException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidSecurityGroupIDExceptionRes\");\nvar de_InvalidSubnetIDExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidSubnetIDException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidSubnetIDExceptionRes\");\nvar de_InvalidZipFileExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidZipFileException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidZipFileExceptionRes\");\nvar de_KMSAccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSAccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSAccessDeniedExceptionRes\");\nvar de_KMSDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSDisabledExceptionRes\");\nvar de_KMSInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSInvalidStateExceptionRes\");\nvar de_KMSNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new KMSNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_KMSNotFoundExceptionRes\");\nvar de_PolicyLengthExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new PolicyLengthExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_PolicyLengthExceededExceptionRes\");\nvar de_PreconditionFailedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new PreconditionFailedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_PreconditionFailedExceptionRes\");\nvar de_ProvisionedConcurrencyConfigNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ProvisionedConcurrencyConfigNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ProvisionedConcurrencyConfigNotFoundExceptionRes\");\nvar de_RecursiveInvocationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new RecursiveInvocationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_RecursiveInvocationExceptionRes\");\nvar de_RequestTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new RequestTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_RequestTooLargeExceptionRes\");\nvar de_ResourceConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceConflictExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ResourceNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotReadyExceptionRes\");\nvar de_ServiceExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ServiceExceptionRes\");\nvar de_SnapStartExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SnapStartException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SnapStartExceptionRes\");\nvar de_SnapStartNotReadyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SnapStartNotReadyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SnapStartNotReadyExceptionRes\");\nvar de_SnapStartTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SnapStartTimeoutException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SnapStartTimeoutExceptionRes\");\nvar de_SubnetIPAddressLimitReachedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Message: import_smithy_client.expectString,\n Type: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new SubnetIPAddressLimitReachedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SubnetIPAddressLimitReachedExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({\n [_rAS]: [, parsedOutput.headers[_ra]]\n });\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Reason: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnsupportedMediaTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n Type: import_smithy_client.expectString,\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedMediaTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedMediaTypeExceptionRes\");\nvar de_InvokeWithResponseStreamResponseEvent = /* @__PURE__ */ __name((output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"PayloadChunk\"] != null) {\n return {\n PayloadChunk: await de_InvokeResponseStreamUpdate_event(event[\"PayloadChunk\"], context)\n };\n }\n if (event[\"InvokeComplete\"] != null) {\n return {\n InvokeComplete: await de_InvokeWithResponseStreamCompleteEvent_event(event[\"InvokeComplete\"], context)\n };\n }\n return { $unknown: output };\n });\n}, \"de_InvokeWithResponseStreamResponseEvent\");\nvar de_InvokeResponseStreamUpdate_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n contents.Payload = output.body;\n return contents;\n}, \"de_InvokeResponseStreamUpdate_event\");\nvar de_InvokeWithResponseStreamCompleteEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n Object.assign(contents, (0, import_smithy_client._json)(data));\n return contents;\n}, \"de_InvokeWithResponseStreamCompleteEvent_event\");\nvar se_AdditionalVersionWeights = /* @__PURE__ */ __name((input, context) => {\n return Object.entries(input).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, import_smithy_client.serializeFloat)(value);\n return acc;\n }, {});\n}, \"se_AdditionalVersionWeights\");\nvar se_AliasRoutingConfiguration = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AdditionalVersionWeights: /* @__PURE__ */ __name((_) => se_AdditionalVersionWeights(_, context), \"AdditionalVersionWeights\")\n });\n}, \"se_AliasRoutingConfiguration\");\nvar se_FunctionCode = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ImageUri: [],\n S3Bucket: [],\n S3Key: [],\n S3ObjectVersion: [],\n SourceKMSKeyArn: [],\n ZipFile: context.base64Encoder\n });\n}, \"se_FunctionCode\");\nvar se_LayerVersionContentInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n S3Bucket: [],\n S3Key: [],\n S3ObjectVersion: [],\n ZipFile: context.base64Encoder\n });\n}, \"se_LayerVersionContentInput\");\nvar de_AdditionalVersionWeights = /* @__PURE__ */ __name((output, context) => {\n return Object.entries(output).reduce((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n acc[key] = (0, import_smithy_client.limitedParseDouble)(value);\n return acc;\n }, {});\n}, \"de_AdditionalVersionWeights\");\nvar de_AliasConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AliasArn: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n FunctionVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n RevisionId: import_smithy_client.expectString,\n RoutingConfig: /* @__PURE__ */ __name((_) => de_AliasRoutingConfiguration(_, context), \"RoutingConfig\")\n });\n}, \"de_AliasConfiguration\");\nvar de_AliasList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AliasConfiguration(entry, context);\n });\n return retVal;\n}, \"de_AliasList\");\nvar de_AliasRoutingConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AdditionalVersionWeights: /* @__PURE__ */ __name((_) => de_AdditionalVersionWeights(_, context), \"AdditionalVersionWeights\")\n });\n}, \"de_AliasRoutingConfiguration\");\nvar de_EventSourceMappingConfiguration = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AmazonManagedKafkaEventSourceConfig: import_smithy_client._json,\n BatchSize: import_smithy_client.expectInt32,\n BisectBatchOnFunctionError: import_smithy_client.expectBoolean,\n DestinationConfig: import_smithy_client._json,\n DocumentDBEventSourceConfig: import_smithy_client._json,\n EventSourceArn: import_smithy_client.expectString,\n EventSourceMappingArn: import_smithy_client.expectString,\n FilterCriteria: import_smithy_client._json,\n FilterCriteriaError: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n FunctionResponseTypes: import_smithy_client._json,\n KMSKeyArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n LastProcessingResult: import_smithy_client.expectString,\n MaximumBatchingWindowInSeconds: import_smithy_client.expectInt32,\n MaximumRecordAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32,\n MetricsConfig: import_smithy_client._json,\n ParallelizationFactor: import_smithy_client.expectInt32,\n ProvisionedPollerConfig: import_smithy_client._json,\n Queues: import_smithy_client._json,\n ScalingConfig: import_smithy_client._json,\n SelfManagedEventSource: import_smithy_client._json,\n SelfManagedKafkaEventSourceConfig: import_smithy_client._json,\n SourceAccessConfigurations: import_smithy_client._json,\n StartingPosition: import_smithy_client.expectString,\n StartingPositionTimestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartingPositionTimestamp\"),\n State: import_smithy_client.expectString,\n StateTransitionReason: import_smithy_client.expectString,\n Topics: import_smithy_client._json,\n TumblingWindowInSeconds: import_smithy_client.expectInt32,\n UUID: import_smithy_client.expectString\n });\n}, \"de_EventSourceMappingConfiguration\");\nvar de_EventSourceMappingsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_EventSourceMappingConfiguration(entry, context);\n });\n return retVal;\n}, \"de_EventSourceMappingsList\");\nvar de_FunctionEventInvokeConfig = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DestinationConfig: import_smithy_client._json,\n FunctionArn: import_smithy_client.expectString,\n LastModified: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModified\"),\n MaximumEventAgeInSeconds: import_smithy_client.expectInt32,\n MaximumRetryAttempts: import_smithy_client.expectInt32\n });\n}, \"de_FunctionEventInvokeConfig\");\nvar de_FunctionEventInvokeConfigList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_FunctionEventInvokeConfig(entry, context);\n });\n return retVal;\n}, \"de_FunctionEventInvokeConfigList\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _A = \"Arn\";\nvar _CA = \"CompatibleArchitecture\";\nvar _CC = \"ClientContext\";\nvar _CR = \"CompatibleRuntime\";\nvar _ESA = \"EventSourceArn\";\nvar _EV = \"ExecutedVersion\";\nvar _FE = \"FunctionError\";\nvar _FN = \"FunctionName\";\nvar _FV = \"FunctionVersion\";\nvar _IT = \"InvocationType\";\nvar _L = \"List\";\nvar _LR = \"LogResult\";\nvar _LT = \"LogType\";\nvar _M = \"Marker\";\nvar _MI = \"MaxItems\";\nvar _MR = \"MasterRegion\";\nvar _Q = \"Qualifier\";\nvar _RI = \"RevisionId\";\nvar _RSCT = \"ResponseStreamContentType\";\nvar _TK = \"TagKeys\";\nvar _ct = \"content-type\";\nvar _f = \"find\";\nvar _rAS = \"retryAfterSeconds\";\nvar _ra = \"retry-after\";\nvar _tK = \"tagKeys\";\nvar _xacc = \"x-amz-client-context\";\nvar _xaev = \"x-amz-executed-version\";\nvar _xafe = \"x-amz-function-error\";\nvar _xait = \"x-amz-invocation-type\";\nvar _xalr = \"x-amz-log-result\";\nvar _xalt = \"x-amz-log-type\";\n\n// src/commands/AddLayerVersionPermissionCommand.ts\nvar AddLayerVersionPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"AddLayerVersionPermission\", {}).n(\"LambdaClient\", \"AddLayerVersionPermissionCommand\").f(void 0, void 0).ser(se_AddLayerVersionPermissionCommand).de(de_AddLayerVersionPermissionCommand).build() {\n static {\n __name(this, \"AddLayerVersionPermissionCommand\");\n }\n};\n\n// src/commands/AddPermissionCommand.ts\n\n\n\nvar AddPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"AddPermission\", {}).n(\"LambdaClient\", \"AddPermissionCommand\").f(void 0, void 0).ser(se_AddPermissionCommand).de(de_AddPermissionCommand).build() {\n static {\n __name(this, \"AddPermissionCommand\");\n }\n};\n\n// src/commands/CreateAliasCommand.ts\n\n\n\nvar CreateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateAlias\", {}).n(\"LambdaClient\", \"CreateAliasCommand\").f(void 0, void 0).ser(se_CreateAliasCommand).de(de_CreateAliasCommand).build() {\n static {\n __name(this, \"CreateAliasCommand\");\n }\n};\n\n// src/commands/CreateCodeSigningConfigCommand.ts\n\n\n\nvar CreateCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateCodeSigningConfig\", {}).n(\"LambdaClient\", \"CreateCodeSigningConfigCommand\").f(void 0, void 0).ser(se_CreateCodeSigningConfigCommand).de(de_CreateCodeSigningConfigCommand).build() {\n static {\n __name(this, \"CreateCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/CreateEventSourceMappingCommand.ts\n\n\n\nvar CreateEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateEventSourceMapping\", {}).n(\"LambdaClient\", \"CreateEventSourceMappingCommand\").f(void 0, void 0).ser(se_CreateEventSourceMappingCommand).de(de_CreateEventSourceMappingCommand).build() {\n static {\n __name(this, \"CreateEventSourceMappingCommand\");\n }\n};\n\n// src/commands/CreateFunctionCommand.ts\n\n\n\nvar CreateFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateFunction\", {}).n(\"LambdaClient\", \"CreateFunctionCommand\").f(CreateFunctionRequestFilterSensitiveLog, FunctionConfigurationFilterSensitiveLog).ser(se_CreateFunctionCommand).de(de_CreateFunctionCommand).build() {\n static {\n __name(this, \"CreateFunctionCommand\");\n }\n};\n\n// src/commands/CreateFunctionUrlConfigCommand.ts\n\n\n\nvar CreateFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"CreateFunctionUrlConfig\", {}).n(\"LambdaClient\", \"CreateFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_CreateFunctionUrlConfigCommand).de(de_CreateFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"CreateFunctionUrlConfigCommand\");\n }\n};\n\n// src/commands/DeleteAliasCommand.ts\n\n\n\nvar DeleteAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteAlias\", {}).n(\"LambdaClient\", \"DeleteAliasCommand\").f(void 0, void 0).ser(se_DeleteAliasCommand).de(de_DeleteAliasCommand).build() {\n static {\n __name(this, \"DeleteAliasCommand\");\n }\n};\n\n// src/commands/DeleteCodeSigningConfigCommand.ts\n\n\n\nvar DeleteCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteCodeSigningConfig\", {}).n(\"LambdaClient\", \"DeleteCodeSigningConfigCommand\").f(void 0, void 0).ser(se_DeleteCodeSigningConfigCommand).de(de_DeleteCodeSigningConfigCommand).build() {\n static {\n __name(this, \"DeleteCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/DeleteEventSourceMappingCommand.ts\n\n\n\nvar DeleteEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteEventSourceMapping\", {}).n(\"LambdaClient\", \"DeleteEventSourceMappingCommand\").f(void 0, void 0).ser(se_DeleteEventSourceMappingCommand).de(de_DeleteEventSourceMappingCommand).build() {\n static {\n __name(this, \"DeleteEventSourceMappingCommand\");\n }\n};\n\n// src/commands/DeleteFunctionCodeSigningConfigCommand.ts\n\n\n\nvar DeleteFunctionCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionCodeSigningConfig\", {}).n(\"LambdaClient\", \"DeleteFunctionCodeSigningConfigCommand\").f(void 0, void 0).ser(se_DeleteFunctionCodeSigningConfigCommand).de(de_DeleteFunctionCodeSigningConfigCommand).build() {\n static {\n __name(this, \"DeleteFunctionCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/DeleteFunctionCommand.ts\n\n\n\nvar DeleteFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunction\", {}).n(\"LambdaClient\", \"DeleteFunctionCommand\").f(void 0, void 0).ser(se_DeleteFunctionCommand).de(de_DeleteFunctionCommand).build() {\n static {\n __name(this, \"DeleteFunctionCommand\");\n }\n};\n\n// src/commands/DeleteFunctionConcurrencyCommand.ts\n\n\n\nvar DeleteFunctionConcurrencyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionConcurrency\", {}).n(\"LambdaClient\", \"DeleteFunctionConcurrencyCommand\").f(void 0, void 0).ser(se_DeleteFunctionConcurrencyCommand).de(de_DeleteFunctionConcurrencyCommand).build() {\n static {\n __name(this, \"DeleteFunctionConcurrencyCommand\");\n }\n};\n\n// src/commands/DeleteFunctionEventInvokeConfigCommand.ts\n\n\n\nvar DeleteFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"DeleteFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_DeleteFunctionEventInvokeConfigCommand).de(de_DeleteFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"DeleteFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/DeleteFunctionUrlConfigCommand.ts\n\n\n\nvar DeleteFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteFunctionUrlConfig\", {}).n(\"LambdaClient\", \"DeleteFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_DeleteFunctionUrlConfigCommand).de(de_DeleteFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"DeleteFunctionUrlConfigCommand\");\n }\n};\n\n// src/commands/DeleteLayerVersionCommand.ts\n\n\n\nvar DeleteLayerVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteLayerVersion\", {}).n(\"LambdaClient\", \"DeleteLayerVersionCommand\").f(void 0, void 0).ser(se_DeleteLayerVersionCommand).de(de_DeleteLayerVersionCommand).build() {\n static {\n __name(this, \"DeleteLayerVersionCommand\");\n }\n};\n\n// src/commands/DeleteProvisionedConcurrencyConfigCommand.ts\n\n\n\nvar DeleteProvisionedConcurrencyConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"DeleteProvisionedConcurrencyConfig\", {}).n(\"LambdaClient\", \"DeleteProvisionedConcurrencyConfigCommand\").f(void 0, void 0).ser(se_DeleteProvisionedConcurrencyConfigCommand).de(de_DeleteProvisionedConcurrencyConfigCommand).build() {\n static {\n __name(this, \"DeleteProvisionedConcurrencyConfigCommand\");\n }\n};\n\n// src/commands/GetAccountSettingsCommand.ts\n\n\n\nvar GetAccountSettingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetAccountSettings\", {}).n(\"LambdaClient\", \"GetAccountSettingsCommand\").f(void 0, void 0).ser(se_GetAccountSettingsCommand).de(de_GetAccountSettingsCommand).build() {\n static {\n __name(this, \"GetAccountSettingsCommand\");\n }\n};\n\n// src/commands/GetAliasCommand.ts\n\n\n\nvar GetAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetAlias\", {}).n(\"LambdaClient\", \"GetAliasCommand\").f(void 0, void 0).ser(se_GetAliasCommand).de(de_GetAliasCommand).build() {\n static {\n __name(this, \"GetAliasCommand\");\n }\n};\n\n// src/commands/GetCodeSigningConfigCommand.ts\n\n\n\nvar GetCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetCodeSigningConfig\", {}).n(\"LambdaClient\", \"GetCodeSigningConfigCommand\").f(void 0, void 0).ser(se_GetCodeSigningConfigCommand).de(de_GetCodeSigningConfigCommand).build() {\n static {\n __name(this, \"GetCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/GetEventSourceMappingCommand.ts\n\n\n\nvar GetEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetEventSourceMapping\", {}).n(\"LambdaClient\", \"GetEventSourceMappingCommand\").f(void 0, void 0).ser(se_GetEventSourceMappingCommand).de(de_GetEventSourceMappingCommand).build() {\n static {\n __name(this, \"GetEventSourceMappingCommand\");\n }\n};\n\n// src/commands/GetFunctionCodeSigningConfigCommand.ts\n\n\n\nvar GetFunctionCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionCodeSigningConfig\", {}).n(\"LambdaClient\", \"GetFunctionCodeSigningConfigCommand\").f(void 0, void 0).ser(se_GetFunctionCodeSigningConfigCommand).de(de_GetFunctionCodeSigningConfigCommand).build() {\n static {\n __name(this, \"GetFunctionCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/GetFunctionCommand.ts\n\n\n\nvar GetFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunction\", {}).n(\"LambdaClient\", \"GetFunctionCommand\").f(void 0, GetFunctionResponseFilterSensitiveLog).ser(se_GetFunctionCommand).de(de_GetFunctionCommand).build() {\n static {\n __name(this, \"GetFunctionCommand\");\n }\n};\n\n// src/commands/GetFunctionConcurrencyCommand.ts\n\n\n\nvar GetFunctionConcurrencyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionConcurrency\", {}).n(\"LambdaClient\", \"GetFunctionConcurrencyCommand\").f(void 0, void 0).ser(se_GetFunctionConcurrencyCommand).de(de_GetFunctionConcurrencyCommand).build() {\n static {\n __name(this, \"GetFunctionConcurrencyCommand\");\n }\n};\n\n// src/commands/GetFunctionConfigurationCommand.ts\n\n\n\nvar GetFunctionConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionConfiguration\", {}).n(\"LambdaClient\", \"GetFunctionConfigurationCommand\").f(void 0, FunctionConfigurationFilterSensitiveLog).ser(se_GetFunctionConfigurationCommand).de(de_GetFunctionConfigurationCommand).build() {\n static {\n __name(this, \"GetFunctionConfigurationCommand\");\n }\n};\n\n// src/commands/GetFunctionEventInvokeConfigCommand.ts\n\n\n\nvar GetFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"GetFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_GetFunctionEventInvokeConfigCommand).de(de_GetFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"GetFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/GetFunctionRecursionConfigCommand.ts\n\n\n\nvar GetFunctionRecursionConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionRecursionConfig\", {}).n(\"LambdaClient\", \"GetFunctionRecursionConfigCommand\").f(void 0, void 0).ser(se_GetFunctionRecursionConfigCommand).de(de_GetFunctionRecursionConfigCommand).build() {\n static {\n __name(this, \"GetFunctionRecursionConfigCommand\");\n }\n};\n\n// src/commands/GetFunctionUrlConfigCommand.ts\n\n\n\nvar GetFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetFunctionUrlConfig\", {}).n(\"LambdaClient\", \"GetFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_GetFunctionUrlConfigCommand).de(de_GetFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"GetFunctionUrlConfigCommand\");\n }\n};\n\n// src/commands/GetLayerVersionByArnCommand.ts\n\n\n\nvar GetLayerVersionByArnCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetLayerVersionByArn\", {}).n(\"LambdaClient\", \"GetLayerVersionByArnCommand\").f(void 0, void 0).ser(se_GetLayerVersionByArnCommand).de(de_GetLayerVersionByArnCommand).build() {\n static {\n __name(this, \"GetLayerVersionByArnCommand\");\n }\n};\n\n// src/commands/GetLayerVersionCommand.ts\n\n\n\nvar GetLayerVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetLayerVersion\", {}).n(\"LambdaClient\", \"GetLayerVersionCommand\").f(void 0, void 0).ser(se_GetLayerVersionCommand).de(de_GetLayerVersionCommand).build() {\n static {\n __name(this, \"GetLayerVersionCommand\");\n }\n};\n\n// src/commands/GetLayerVersionPolicyCommand.ts\n\n\n\nvar GetLayerVersionPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetLayerVersionPolicy\", {}).n(\"LambdaClient\", \"GetLayerVersionPolicyCommand\").f(void 0, void 0).ser(se_GetLayerVersionPolicyCommand).de(de_GetLayerVersionPolicyCommand).build() {\n static {\n __name(this, \"GetLayerVersionPolicyCommand\");\n }\n};\n\n// src/commands/GetPolicyCommand.ts\n\n\n\nvar GetPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetPolicy\", {}).n(\"LambdaClient\", \"GetPolicyCommand\").f(void 0, void 0).ser(se_GetPolicyCommand).de(de_GetPolicyCommand).build() {\n static {\n __name(this, \"GetPolicyCommand\");\n }\n};\n\n// src/commands/GetProvisionedConcurrencyConfigCommand.ts\n\n\n\nvar GetProvisionedConcurrencyConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetProvisionedConcurrencyConfig\", {}).n(\"LambdaClient\", \"GetProvisionedConcurrencyConfigCommand\").f(void 0, void 0).ser(se_GetProvisionedConcurrencyConfigCommand).de(de_GetProvisionedConcurrencyConfigCommand).build() {\n static {\n __name(this, \"GetProvisionedConcurrencyConfigCommand\");\n }\n};\n\n// src/commands/GetRuntimeManagementConfigCommand.ts\n\n\n\nvar GetRuntimeManagementConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"GetRuntimeManagementConfig\", {}).n(\"LambdaClient\", \"GetRuntimeManagementConfigCommand\").f(void 0, void 0).ser(se_GetRuntimeManagementConfigCommand).de(de_GetRuntimeManagementConfigCommand).build() {\n static {\n __name(this, \"GetRuntimeManagementConfigCommand\");\n }\n};\n\n// src/commands/InvokeAsyncCommand.ts\n\n\n\nvar InvokeAsyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"InvokeAsync\", {}).n(\"LambdaClient\", \"InvokeAsyncCommand\").f(InvokeAsyncRequestFilterSensitiveLog, void 0).ser(se_InvokeAsyncCommand).de(de_InvokeAsyncCommand).build() {\n static {\n __name(this, \"InvokeAsyncCommand\");\n }\n};\n\n// src/commands/InvokeCommand.ts\n\n\n\nvar InvokeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"Invoke\", {}).n(\"LambdaClient\", \"InvokeCommand\").f(InvocationRequestFilterSensitiveLog, InvocationResponseFilterSensitiveLog).ser(se_InvokeCommand).de(de_InvokeCommand).build() {\n static {\n __name(this, \"InvokeCommand\");\n }\n};\n\n// src/commands/InvokeWithResponseStreamCommand.ts\n\n\n\nvar InvokeWithResponseStreamCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"InvokeWithResponseStream\", {\n /**\n * @internal\n */\n eventStream: {\n output: true\n }\n}).n(\"LambdaClient\", \"InvokeWithResponseStreamCommand\").f(InvokeWithResponseStreamRequestFilterSensitiveLog, InvokeWithResponseStreamResponseFilterSensitiveLog).ser(se_InvokeWithResponseStreamCommand).de(de_InvokeWithResponseStreamCommand).build() {\n static {\n __name(this, \"InvokeWithResponseStreamCommand\");\n }\n};\n\n// src/commands/ListAliasesCommand.ts\n\n\n\nvar ListAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListAliases\", {}).n(\"LambdaClient\", \"ListAliasesCommand\").f(void 0, void 0).ser(se_ListAliasesCommand).de(de_ListAliasesCommand).build() {\n static {\n __name(this, \"ListAliasesCommand\");\n }\n};\n\n// src/commands/ListCodeSigningConfigsCommand.ts\n\n\n\nvar ListCodeSigningConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListCodeSigningConfigs\", {}).n(\"LambdaClient\", \"ListCodeSigningConfigsCommand\").f(void 0, void 0).ser(se_ListCodeSigningConfigsCommand).de(de_ListCodeSigningConfigsCommand).build() {\n static {\n __name(this, \"ListCodeSigningConfigsCommand\");\n }\n};\n\n// src/commands/ListEventSourceMappingsCommand.ts\n\n\n\nvar ListEventSourceMappingsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListEventSourceMappings\", {}).n(\"LambdaClient\", \"ListEventSourceMappingsCommand\").f(void 0, void 0).ser(se_ListEventSourceMappingsCommand).de(de_ListEventSourceMappingsCommand).build() {\n static {\n __name(this, \"ListEventSourceMappingsCommand\");\n }\n};\n\n// src/commands/ListFunctionEventInvokeConfigsCommand.ts\n\n\n\nvar ListFunctionEventInvokeConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctionEventInvokeConfigs\", {}).n(\"LambdaClient\", \"ListFunctionEventInvokeConfigsCommand\").f(void 0, void 0).ser(se_ListFunctionEventInvokeConfigsCommand).de(de_ListFunctionEventInvokeConfigsCommand).build() {\n static {\n __name(this, \"ListFunctionEventInvokeConfigsCommand\");\n }\n};\n\n// src/commands/ListFunctionsByCodeSigningConfigCommand.ts\n\n\n\nvar ListFunctionsByCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctionsByCodeSigningConfig\", {}).n(\"LambdaClient\", \"ListFunctionsByCodeSigningConfigCommand\").f(void 0, void 0).ser(se_ListFunctionsByCodeSigningConfigCommand).de(de_ListFunctionsByCodeSigningConfigCommand).build() {\n static {\n __name(this, \"ListFunctionsByCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/ListFunctionsCommand.ts\n\n\n\nvar ListFunctionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctions\", {}).n(\"LambdaClient\", \"ListFunctionsCommand\").f(void 0, ListFunctionsResponseFilterSensitiveLog).ser(se_ListFunctionsCommand).de(de_ListFunctionsCommand).build() {\n static {\n __name(this, \"ListFunctionsCommand\");\n }\n};\n\n// src/commands/ListFunctionUrlConfigsCommand.ts\n\n\n\nvar ListFunctionUrlConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListFunctionUrlConfigs\", {}).n(\"LambdaClient\", \"ListFunctionUrlConfigsCommand\").f(void 0, void 0).ser(se_ListFunctionUrlConfigsCommand).de(de_ListFunctionUrlConfigsCommand).build() {\n static {\n __name(this, \"ListFunctionUrlConfigsCommand\");\n }\n};\n\n// src/commands/ListLayersCommand.ts\n\n\n\nvar ListLayersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListLayers\", {}).n(\"LambdaClient\", \"ListLayersCommand\").f(void 0, void 0).ser(se_ListLayersCommand).de(de_ListLayersCommand).build() {\n static {\n __name(this, \"ListLayersCommand\");\n }\n};\n\n// src/commands/ListLayerVersionsCommand.ts\n\n\n\nvar ListLayerVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListLayerVersions\", {}).n(\"LambdaClient\", \"ListLayerVersionsCommand\").f(void 0, void 0).ser(se_ListLayerVersionsCommand).de(de_ListLayerVersionsCommand).build() {\n static {\n __name(this, \"ListLayerVersionsCommand\");\n }\n};\n\n// src/commands/ListProvisionedConcurrencyConfigsCommand.ts\n\n\n\nvar ListProvisionedConcurrencyConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListProvisionedConcurrencyConfigs\", {}).n(\"LambdaClient\", \"ListProvisionedConcurrencyConfigsCommand\").f(void 0, void 0).ser(se_ListProvisionedConcurrencyConfigsCommand).de(de_ListProvisionedConcurrencyConfigsCommand).build() {\n static {\n __name(this, \"ListProvisionedConcurrencyConfigsCommand\");\n }\n};\n\n// src/commands/ListTagsCommand.ts\n\n\n\nvar ListTagsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListTags\", {}).n(\"LambdaClient\", \"ListTagsCommand\").f(void 0, void 0).ser(se_ListTagsCommand).de(de_ListTagsCommand).build() {\n static {\n __name(this, \"ListTagsCommand\");\n }\n};\n\n// src/commands/ListVersionsByFunctionCommand.ts\n\n\n\nvar ListVersionsByFunctionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"ListVersionsByFunction\", {}).n(\"LambdaClient\", \"ListVersionsByFunctionCommand\").f(void 0, ListVersionsByFunctionResponseFilterSensitiveLog).ser(se_ListVersionsByFunctionCommand).de(de_ListVersionsByFunctionCommand).build() {\n static {\n __name(this, \"ListVersionsByFunctionCommand\");\n }\n};\n\n// src/commands/PublishLayerVersionCommand.ts\n\n\n\nvar PublishLayerVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PublishLayerVersion\", {}).n(\"LambdaClient\", \"PublishLayerVersionCommand\").f(PublishLayerVersionRequestFilterSensitiveLog, void 0).ser(se_PublishLayerVersionCommand).de(de_PublishLayerVersionCommand).build() {\n static {\n __name(this, \"PublishLayerVersionCommand\");\n }\n};\n\n// src/commands/PublishVersionCommand.ts\n\n\n\nvar PublishVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PublishVersion\", {}).n(\"LambdaClient\", \"PublishVersionCommand\").f(void 0, FunctionConfigurationFilterSensitiveLog).ser(se_PublishVersionCommand).de(de_PublishVersionCommand).build() {\n static {\n __name(this, \"PublishVersionCommand\");\n }\n};\n\n// src/commands/PutFunctionCodeSigningConfigCommand.ts\n\n\n\nvar PutFunctionCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionCodeSigningConfig\", {}).n(\"LambdaClient\", \"PutFunctionCodeSigningConfigCommand\").f(void 0, void 0).ser(se_PutFunctionCodeSigningConfigCommand).de(de_PutFunctionCodeSigningConfigCommand).build() {\n static {\n __name(this, \"PutFunctionCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/PutFunctionConcurrencyCommand.ts\n\n\n\nvar PutFunctionConcurrencyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionConcurrency\", {}).n(\"LambdaClient\", \"PutFunctionConcurrencyCommand\").f(void 0, void 0).ser(se_PutFunctionConcurrencyCommand).de(de_PutFunctionConcurrencyCommand).build() {\n static {\n __name(this, \"PutFunctionConcurrencyCommand\");\n }\n};\n\n// src/commands/PutFunctionEventInvokeConfigCommand.ts\n\n\n\nvar PutFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"PutFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_PutFunctionEventInvokeConfigCommand).de(de_PutFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"PutFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/PutFunctionRecursionConfigCommand.ts\n\n\n\nvar PutFunctionRecursionConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutFunctionRecursionConfig\", {}).n(\"LambdaClient\", \"PutFunctionRecursionConfigCommand\").f(void 0, void 0).ser(se_PutFunctionRecursionConfigCommand).de(de_PutFunctionRecursionConfigCommand).build() {\n static {\n __name(this, \"PutFunctionRecursionConfigCommand\");\n }\n};\n\n// src/commands/PutProvisionedConcurrencyConfigCommand.ts\n\n\n\nvar PutProvisionedConcurrencyConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutProvisionedConcurrencyConfig\", {}).n(\"LambdaClient\", \"PutProvisionedConcurrencyConfigCommand\").f(void 0, void 0).ser(se_PutProvisionedConcurrencyConfigCommand).de(de_PutProvisionedConcurrencyConfigCommand).build() {\n static {\n __name(this, \"PutProvisionedConcurrencyConfigCommand\");\n }\n};\n\n// src/commands/PutRuntimeManagementConfigCommand.ts\n\n\n\nvar PutRuntimeManagementConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"PutRuntimeManagementConfig\", {}).n(\"LambdaClient\", \"PutRuntimeManagementConfigCommand\").f(void 0, void 0).ser(se_PutRuntimeManagementConfigCommand).de(de_PutRuntimeManagementConfigCommand).build() {\n static {\n __name(this, \"PutRuntimeManagementConfigCommand\");\n }\n};\n\n// src/commands/RemoveLayerVersionPermissionCommand.ts\n\n\n\nvar RemoveLayerVersionPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"RemoveLayerVersionPermission\", {}).n(\"LambdaClient\", \"RemoveLayerVersionPermissionCommand\").f(void 0, void 0).ser(se_RemoveLayerVersionPermissionCommand).de(de_RemoveLayerVersionPermissionCommand).build() {\n static {\n __name(this, \"RemoveLayerVersionPermissionCommand\");\n }\n};\n\n// src/commands/RemovePermissionCommand.ts\n\n\n\nvar RemovePermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"RemovePermission\", {}).n(\"LambdaClient\", \"RemovePermissionCommand\").f(void 0, void 0).ser(se_RemovePermissionCommand).de(de_RemovePermissionCommand).build() {\n static {\n __name(this, \"RemovePermissionCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"TagResource\", {}).n(\"LambdaClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UntagResource\", {}).n(\"LambdaClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateAliasCommand.ts\n\n\n\nvar UpdateAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateAlias\", {}).n(\"LambdaClient\", \"UpdateAliasCommand\").f(void 0, void 0).ser(se_UpdateAliasCommand).de(de_UpdateAliasCommand).build() {\n static {\n __name(this, \"UpdateAliasCommand\");\n }\n};\n\n// src/commands/UpdateCodeSigningConfigCommand.ts\n\n\n\nvar UpdateCodeSigningConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateCodeSigningConfig\", {}).n(\"LambdaClient\", \"UpdateCodeSigningConfigCommand\").f(void 0, void 0).ser(se_UpdateCodeSigningConfigCommand).de(de_UpdateCodeSigningConfigCommand).build() {\n static {\n __name(this, \"UpdateCodeSigningConfigCommand\");\n }\n};\n\n// src/commands/UpdateEventSourceMappingCommand.ts\n\n\n\nvar UpdateEventSourceMappingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateEventSourceMapping\", {}).n(\"LambdaClient\", \"UpdateEventSourceMappingCommand\").f(void 0, void 0).ser(se_UpdateEventSourceMappingCommand).de(de_UpdateEventSourceMappingCommand).build() {\n static {\n __name(this, \"UpdateEventSourceMappingCommand\");\n }\n};\n\n// src/commands/UpdateFunctionCodeCommand.ts\n\n\n\nvar UpdateFunctionCodeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionCode\", {}).n(\"LambdaClient\", \"UpdateFunctionCodeCommand\").f(UpdateFunctionCodeRequestFilterSensitiveLog, FunctionConfigurationFilterSensitiveLog).ser(se_UpdateFunctionCodeCommand).de(de_UpdateFunctionCodeCommand).build() {\n static {\n __name(this, \"UpdateFunctionCodeCommand\");\n }\n};\n\n// src/commands/UpdateFunctionConfigurationCommand.ts\n\n\n\nvar UpdateFunctionConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionConfiguration\", {}).n(\"LambdaClient\", \"UpdateFunctionConfigurationCommand\").f(UpdateFunctionConfigurationRequestFilterSensitiveLog, FunctionConfigurationFilterSensitiveLog).ser(se_UpdateFunctionConfigurationCommand).de(de_UpdateFunctionConfigurationCommand).build() {\n static {\n __name(this, \"UpdateFunctionConfigurationCommand\");\n }\n};\n\n// src/commands/UpdateFunctionEventInvokeConfigCommand.ts\n\n\n\nvar UpdateFunctionEventInvokeConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionEventInvokeConfig\", {}).n(\"LambdaClient\", \"UpdateFunctionEventInvokeConfigCommand\").f(void 0, void 0).ser(se_UpdateFunctionEventInvokeConfigCommand).de(de_UpdateFunctionEventInvokeConfigCommand).build() {\n static {\n __name(this, \"UpdateFunctionEventInvokeConfigCommand\");\n }\n};\n\n// src/commands/UpdateFunctionUrlConfigCommand.ts\n\n\n\nvar UpdateFunctionUrlConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSGirApiService\", \"UpdateFunctionUrlConfig\", {}).n(\"LambdaClient\", \"UpdateFunctionUrlConfigCommand\").f(void 0, void 0).ser(se_UpdateFunctionUrlConfigCommand).de(de_UpdateFunctionUrlConfigCommand).build() {\n static {\n __name(this, \"UpdateFunctionUrlConfigCommand\");\n }\n};\n\n// src/Lambda.ts\nvar commands = {\n AddLayerVersionPermissionCommand,\n AddPermissionCommand,\n CreateAliasCommand,\n CreateCodeSigningConfigCommand,\n CreateEventSourceMappingCommand,\n CreateFunctionCommand,\n CreateFunctionUrlConfigCommand,\n DeleteAliasCommand,\n DeleteCodeSigningConfigCommand,\n DeleteEventSourceMappingCommand,\n DeleteFunctionCommand,\n DeleteFunctionCodeSigningConfigCommand,\n DeleteFunctionConcurrencyCommand,\n DeleteFunctionEventInvokeConfigCommand,\n DeleteFunctionUrlConfigCommand,\n DeleteLayerVersionCommand,\n DeleteProvisionedConcurrencyConfigCommand,\n GetAccountSettingsCommand,\n GetAliasCommand,\n GetCodeSigningConfigCommand,\n GetEventSourceMappingCommand,\n GetFunctionCommand,\n GetFunctionCodeSigningConfigCommand,\n GetFunctionConcurrencyCommand,\n GetFunctionConfigurationCommand,\n GetFunctionEventInvokeConfigCommand,\n GetFunctionRecursionConfigCommand,\n GetFunctionUrlConfigCommand,\n GetLayerVersionCommand,\n GetLayerVersionByArnCommand,\n GetLayerVersionPolicyCommand,\n GetPolicyCommand,\n GetProvisionedConcurrencyConfigCommand,\n GetRuntimeManagementConfigCommand,\n InvokeCommand,\n InvokeAsyncCommand,\n InvokeWithResponseStreamCommand,\n ListAliasesCommand,\n ListCodeSigningConfigsCommand,\n ListEventSourceMappingsCommand,\n ListFunctionEventInvokeConfigsCommand,\n ListFunctionsCommand,\n ListFunctionsByCodeSigningConfigCommand,\n ListFunctionUrlConfigsCommand,\n ListLayersCommand,\n ListLayerVersionsCommand,\n ListProvisionedConcurrencyConfigsCommand,\n ListTagsCommand,\n ListVersionsByFunctionCommand,\n PublishLayerVersionCommand,\n PublishVersionCommand,\n PutFunctionCodeSigningConfigCommand,\n PutFunctionConcurrencyCommand,\n PutFunctionEventInvokeConfigCommand,\n PutFunctionRecursionConfigCommand,\n PutProvisionedConcurrencyConfigCommand,\n PutRuntimeManagementConfigCommand,\n RemoveLayerVersionPermissionCommand,\n RemovePermissionCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCodeSigningConfigCommand,\n UpdateEventSourceMappingCommand,\n UpdateFunctionCodeCommand,\n UpdateFunctionConfigurationCommand,\n UpdateFunctionEventInvokeConfigCommand,\n UpdateFunctionUrlConfigCommand\n};\nvar Lambda = class extends LambdaClient {\n static {\n __name(this, \"Lambda\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, Lambda);\n\n// src/pagination/ListAliasesPaginator.ts\n\nvar paginateListAliases = (0, import_core.createPaginator)(LambdaClient, ListAliasesCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListCodeSigningConfigsPaginator.ts\n\nvar paginateListCodeSigningConfigs = (0, import_core.createPaginator)(LambdaClient, ListCodeSigningConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListEventSourceMappingsPaginator.ts\n\nvar paginateListEventSourceMappings = (0, import_core.createPaginator)(LambdaClient, ListEventSourceMappingsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionEventInvokeConfigsPaginator.ts\n\nvar paginateListFunctionEventInvokeConfigs = (0, import_core.createPaginator)(LambdaClient, ListFunctionEventInvokeConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionUrlConfigsPaginator.ts\n\nvar paginateListFunctionUrlConfigs = (0, import_core.createPaginator)(LambdaClient, ListFunctionUrlConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionsByCodeSigningConfigPaginator.ts\n\nvar paginateListFunctionsByCodeSigningConfig = (0, import_core.createPaginator)(LambdaClient, ListFunctionsByCodeSigningConfigCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListFunctionsPaginator.ts\n\nvar paginateListFunctions = (0, import_core.createPaginator)(LambdaClient, ListFunctionsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListLayerVersionsPaginator.ts\n\nvar paginateListLayerVersions = (0, import_core.createPaginator)(LambdaClient, ListLayerVersionsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListLayersPaginator.ts\n\nvar paginateListLayers = (0, import_core.createPaginator)(LambdaClient, ListLayersCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListProvisionedConcurrencyConfigsPaginator.ts\n\nvar paginateListProvisionedConcurrencyConfigs = (0, import_core.createPaginator)(LambdaClient, ListProvisionedConcurrencyConfigsCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListVersionsByFunctionPaginator.ts\n\nvar paginateListVersionsByFunction = (0, import_core.createPaginator)(LambdaClient, ListVersionsByFunctionCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/waiters/waitForFunctionActive.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionConfigurationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Active\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForFunctionActive\");\nvar waitUntilFunctionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionActive\");\n\n// src/waiters/waitForFunctionActiveV2.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Active\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionActiveV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForFunctionActiveV2\");\nvar waitUntilFunctionActiveV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionActiveV2\");\n\n// src/waiters/waitForFunctionExists.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"ResourceNotFoundException\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForFunctionExists\");\nvar waitUntilFunctionExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionExists\");\n\n// src/waiters/waitForFunctionUpdated.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionConfigurationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Successful\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionUpdated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForFunctionUpdated\");\nvar waitUntilFunctionUpdated = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionUpdated\");\n\n// src/waiters/waitForFunctionUpdatedV2.ts\n\nvar checkState5 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Successful\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Configuration.LastUpdateStatus;\n }, \"returnComparator\");\n if (returnComparator() === \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForFunctionUpdatedV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n}, \"waitForFunctionUpdatedV2\");\nvar waitUntilFunctionUpdatedV2 = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 1, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState5);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilFunctionUpdatedV2\");\n\n// src/waiters/waitForPublishedVersionActive.ts\n\nvar checkState6 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetFunctionConfigurationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Active\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.State;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForPublishedVersionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n}, \"waitForPublishedVersionActive\");\nvar waitUntilPublishedVersionActive = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState6);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilPublishedVersionActive\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n LambdaServiceException,\n __Client,\n LambdaClient,\n Lambda,\n $Command,\n AddLayerVersionPermissionCommand,\n AddPermissionCommand,\n CreateAliasCommand,\n CreateCodeSigningConfigCommand,\n CreateEventSourceMappingCommand,\n CreateFunctionCommand,\n CreateFunctionUrlConfigCommand,\n DeleteAliasCommand,\n DeleteCodeSigningConfigCommand,\n DeleteEventSourceMappingCommand,\n DeleteFunctionCodeSigningConfigCommand,\n DeleteFunctionCommand,\n DeleteFunctionConcurrencyCommand,\n DeleteFunctionEventInvokeConfigCommand,\n DeleteFunctionUrlConfigCommand,\n DeleteLayerVersionCommand,\n DeleteProvisionedConcurrencyConfigCommand,\n GetAccountSettingsCommand,\n GetAliasCommand,\n GetCodeSigningConfigCommand,\n GetEventSourceMappingCommand,\n GetFunctionCodeSigningConfigCommand,\n GetFunctionCommand,\n GetFunctionConcurrencyCommand,\n GetFunctionConfigurationCommand,\n GetFunctionEventInvokeConfigCommand,\n GetFunctionRecursionConfigCommand,\n GetFunctionUrlConfigCommand,\n GetLayerVersionByArnCommand,\n GetLayerVersionCommand,\n GetLayerVersionPolicyCommand,\n GetPolicyCommand,\n GetProvisionedConcurrencyConfigCommand,\n GetRuntimeManagementConfigCommand,\n InvokeAsyncCommand,\n InvokeCommand,\n InvokeWithResponseStreamCommand,\n ListAliasesCommand,\n ListCodeSigningConfigsCommand,\n ListEventSourceMappingsCommand,\n ListFunctionEventInvokeConfigsCommand,\n ListFunctionUrlConfigsCommand,\n ListFunctionsByCodeSigningConfigCommand,\n ListFunctionsCommand,\n ListLayerVersionsCommand,\n ListLayersCommand,\n ListProvisionedConcurrencyConfigsCommand,\n ListTagsCommand,\n ListVersionsByFunctionCommand,\n PublishLayerVersionCommand,\n PublishVersionCommand,\n PutFunctionCodeSigningConfigCommand,\n PutFunctionConcurrencyCommand,\n PutFunctionEventInvokeConfigCommand,\n PutFunctionRecursionConfigCommand,\n PutProvisionedConcurrencyConfigCommand,\n PutRuntimeManagementConfigCommand,\n RemoveLayerVersionPermissionCommand,\n RemovePermissionCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateAliasCommand,\n UpdateCodeSigningConfigCommand,\n UpdateEventSourceMappingCommand,\n UpdateFunctionCodeCommand,\n UpdateFunctionConfigurationCommand,\n UpdateFunctionEventInvokeConfigCommand,\n UpdateFunctionUrlConfigCommand,\n paginateListAliases,\n paginateListCodeSigningConfigs,\n paginateListEventSourceMappings,\n paginateListFunctionEventInvokeConfigs,\n paginateListFunctionUrlConfigs,\n paginateListFunctionsByCodeSigningConfig,\n paginateListFunctions,\n paginateListLayerVersions,\n paginateListLayers,\n paginateListProvisionedConcurrencyConfigs,\n paginateListVersionsByFunction,\n waitForFunctionActive,\n waitUntilFunctionActive,\n waitForFunctionActiveV2,\n waitUntilFunctionActiveV2,\n waitForFunctionExists,\n waitUntilFunctionExists,\n waitForFunctionUpdated,\n waitUntilFunctionUpdated,\n waitForFunctionUpdatedV2,\n waitUntilFunctionUpdatedV2,\n waitForPublishedVersionActive,\n waitUntilPublishedVersionActive,\n InvalidParameterValueException,\n PolicyLengthExceededException,\n PreconditionFailedException,\n ResourceConflictException,\n ResourceNotFoundException,\n ServiceException,\n ThrottleReason,\n TooManyRequestsException,\n FunctionUrlAuthType,\n ApplicationLogLevel,\n Architecture,\n CodeSigningPolicy,\n FullDocument,\n FunctionResponseType,\n EventSourceMappingMetric,\n EndPointType,\n SourceAccessType,\n EventSourcePosition,\n CodeSigningConfigNotFoundException,\n CodeStorageExceededException,\n CodeVerificationFailedException,\n LogFormat,\n SystemLogLevel,\n PackageType,\n Runtime,\n SnapStartApplyOn,\n TracingMode,\n LastUpdateStatus,\n LastUpdateStatusReasonCode,\n SnapStartOptimizationStatus,\n State,\n StateReasonCode,\n InvalidCodeSignatureException,\n InvokeMode,\n ResourceInUseException,\n RecursiveLoop,\n ProvisionedConcurrencyStatusEnum,\n ProvisionedConcurrencyConfigNotFoundException,\n UpdateRuntimeOn,\n EC2AccessDeniedException,\n EC2ThrottledException,\n EC2UnexpectedException,\n EFSIOException,\n EFSMountConnectivityException,\n EFSMountFailureException,\n EFSMountTimeoutException,\n ENILimitReachedException,\n InvalidRequestContentException,\n InvalidRuntimeException,\n InvalidSecurityGroupIDException,\n InvalidSubnetIDException,\n InvalidZipFileException,\n InvocationType,\n LogType,\n KMSAccessDeniedException,\n KMSDisabledException,\n KMSInvalidStateException,\n KMSNotFoundException,\n RecursiveInvocationException,\n RequestTooLargeException,\n ResourceNotReadyException,\n SnapStartException,\n SnapStartNotReadyException,\n SnapStartTimeoutException,\n SubnetIPAddressLimitReachedException,\n UnsupportedMediaTypeException,\n ResponseStreamingInvocationType,\n InvokeWithResponseStreamResponseEvent,\n FunctionVersion,\n FunctionCodeFilterSensitiveLog,\n EnvironmentFilterSensitiveLog,\n CreateFunctionRequestFilterSensitiveLog,\n EnvironmentErrorFilterSensitiveLog,\n EnvironmentResponseFilterSensitiveLog,\n ImageConfigErrorFilterSensitiveLog,\n ImageConfigResponseFilterSensitiveLog,\n RuntimeVersionErrorFilterSensitiveLog,\n RuntimeVersionConfigFilterSensitiveLog,\n FunctionConfigurationFilterSensitiveLog,\n GetFunctionResponseFilterSensitiveLog,\n InvocationRequestFilterSensitiveLog,\n InvocationResponseFilterSensitiveLog,\n InvokeAsyncRequestFilterSensitiveLog,\n InvokeWithResponseStreamRequestFilterSensitiveLog,\n InvokeResponseStreamUpdateFilterSensitiveLog,\n InvokeWithResponseStreamResponseEventFilterSensitiveLog,\n InvokeWithResponseStreamResponseFilterSensitiveLog,\n ListFunctionsResponseFilterSensitiveLog,\n ListVersionsByFunctionResponseFilterSensitiveLog,\n LayerVersionContentInputFilterSensitiveLog,\n PublishLayerVersionRequestFilterSensitiveLog,\n UpdateFunctionCodeRequestFilterSensitiveLog,\n UpdateFunctionConfigurationRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst eventstream_serde_node_1 = require(\"@smithy/eventstream-serde-node\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventstream_serde_node_1.eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2015-03-31\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultLambdaHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Lambda\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultRoute53HttpAuthSchemeProvider = exports.defaultRoute53HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultRoute53HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultRoute53HttpAuthSchemeParametersProvider = defaultRoute53HttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"route53\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultRoute53HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultRoute53HttpAuthSchemeProvider = defaultRoute53HttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst C = \"required\", D = \"fn\", E = \"argv\", F = \"ref\", G = \"authSchemes\", H = \"signingName\", I = \"signingRegion\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = \"sigv4\", j = \"route53\", k = { [C]: false, \"type\": \"String\" }, l = { [C]: true, \"default\": false, \"type\": \"Boolean\" }, m = { [F]: \"Endpoint\" }, n = { [D]: c, [E]: [{ [F]: \"UseFIPS\" }, true] }, o = { [D]: c, [E]: [{ [F]: \"UseDualStack\" }, true] }, p = {}, q = { [D]: h, [E]: [{ [D]: \"getAttr\", [E]: [{ [F]: g }, \"name\"] }, \"aws\"] }, r = { [D]: \"getAttr\", [E]: [{ [F]: g }, \"name\"] }, s = { [D]: c, [E]: [{ [F]: \"UseFIPS\" }, false] }, t = { [D]: c, [E]: [{ [F]: \"UseDualStack\" }, false] }, u = { [G]: [{ \"name\": i, [H]: j, [I]: \"us-east-1\" }] }, v = { [D]: h, [E]: [r, \"aws-us-gov\"] }, w = { \"url\": \"https://route53.us-gov.amazonaws.com\", \"properties\": { [G]: [{ \"name\": i, [H]: j, [I]: \"us-gov-west-1\" }] }, \"headers\": {} }, x = { [D]: \"getAttr\", [E]: [{ [F]: g }, \"supportsFIPS\"] }, y = { [D]: c, [E]: [true, { [D]: \"getAttr\", [E]: [{ [F]: g }, \"supportsDualStack\"] }] }, z = [n], A = [o], B = [{ [F]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: k, UseDualStack: l, UseFIPS: l, Endpoint: k }, rules: [{ conditions: [{ [D]: b, [E]: [m] }], rules: [{ conditions: z, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: A, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: m, properties: p, headers: p }, type: e }], type: f }, { conditions: [{ [D]: b, [E]: B }], rules: [{ conditions: [{ [D]: \"aws.partition\", [E]: B, assign: g }], rules: [{ conditions: [q, s, t], endpoint: { url: \"https://route53.amazonaws.com\", properties: u, headers: p }, type: e }, { conditions: [q, n, t], endpoint: { url: \"https://route53-fips.amazonaws.com\", properties: u, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-cn\"] }, s, t], endpoint: { url: \"https://route53.amazonaws.com.cn\", properties: { [G]: [{ name: i, [H]: j, [I]: \"cn-northwest-1\" }] }, headers: p }, type: e }, { conditions: [v, s, t], endpoint: w, type: e }, { conditions: [v, n, t], endpoint: w, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso\"] }, s, t], endpoint: { url: \"https://route53.c2s.ic.gov\", properties: { [G]: [{ name: i, [H]: j, [I]: \"us-iso-east-1\" }] }, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso-b\"] }, s, t], endpoint: { url: \"https://route53.sc2s.sgov.gov\", properties: { [G]: [{ name: i, [H]: j, [I]: \"us-isob-east-1\" }] }, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso-e\"] }, s, t], endpoint: { url: \"https://route53.cloud.adc-e.uk\", properties: { [G]: [{ name: i, [H]: j, [I]: \"eu-isoe-west-1\" }] }, headers: p }, type: e }, { conditions: [{ [D]: h, [E]: [r, \"aws-iso-f\"] }, s, t], endpoint: { url: \"https://route53.csp.hci.ic.gov\", properties: { [G]: [{ name: i, [H]: j, [I]: \"us-isof-south-1\" }] }, headers: p }, type: e }, { conditions: [n, o], rules: [{ conditions: [{ [D]: c, [E]: [a, x] }, y], rules: [{ endpoint: { url: \"https://route53-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: p, headers: p }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: z, rules: [{ conditions: [{ [D]: c, [E]: [x, a] }], rules: [{ endpoint: { url: \"https://route53-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: p, headers: p }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: A, rules: [{ conditions: [y], rules: [{ endpoint: { url: \"https://route53.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: p, headers: p }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://route53.{Region}.{PartitionResult#dnsSuffix}\", properties: p, headers: p }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccountLimitType: () => AccountLimitType,\n ActivateKeySigningKeyCommand: () => ActivateKeySigningKeyCommand,\n AssociateVPCWithHostedZoneCommand: () => AssociateVPCWithHostedZoneCommand,\n ChangeAction: () => ChangeAction,\n ChangeCidrCollectionCommand: () => ChangeCidrCollectionCommand,\n ChangeResourceRecordSetsCommand: () => ChangeResourceRecordSetsCommand,\n ChangeStatus: () => ChangeStatus,\n ChangeTagsForResourceCommand: () => ChangeTagsForResourceCommand,\n CidrBlockInUseException: () => CidrBlockInUseException,\n CidrCollectionAlreadyExistsException: () => CidrCollectionAlreadyExistsException,\n CidrCollectionChangeAction: () => CidrCollectionChangeAction,\n CidrCollectionInUseException: () => CidrCollectionInUseException,\n CidrCollectionVersionMismatchException: () => CidrCollectionVersionMismatchException,\n CloudWatchRegion: () => CloudWatchRegion,\n ComparisonOperator: () => ComparisonOperator,\n ConcurrentModification: () => ConcurrentModification,\n ConflictingDomainExists: () => ConflictingDomainExists,\n ConflictingTypes: () => ConflictingTypes,\n CreateCidrCollectionCommand: () => CreateCidrCollectionCommand,\n CreateHealthCheckCommand: () => CreateHealthCheckCommand,\n CreateHostedZoneCommand: () => CreateHostedZoneCommand,\n CreateKeySigningKeyCommand: () => CreateKeySigningKeyCommand,\n CreateQueryLoggingConfigCommand: () => CreateQueryLoggingConfigCommand,\n CreateReusableDelegationSetCommand: () => CreateReusableDelegationSetCommand,\n CreateTrafficPolicyCommand: () => CreateTrafficPolicyCommand,\n CreateTrafficPolicyInstanceCommand: () => CreateTrafficPolicyInstanceCommand,\n CreateTrafficPolicyVersionCommand: () => CreateTrafficPolicyVersionCommand,\n CreateVPCAssociationAuthorizationCommand: () => CreateVPCAssociationAuthorizationCommand,\n DNSSECNotFound: () => DNSSECNotFound,\n DeactivateKeySigningKeyCommand: () => DeactivateKeySigningKeyCommand,\n DelegationSetAlreadyCreated: () => DelegationSetAlreadyCreated,\n DelegationSetAlreadyReusable: () => DelegationSetAlreadyReusable,\n DelegationSetInUse: () => DelegationSetInUse,\n DelegationSetNotAvailable: () => DelegationSetNotAvailable,\n DelegationSetNotReusable: () => DelegationSetNotReusable,\n DeleteCidrCollectionCommand: () => DeleteCidrCollectionCommand,\n DeleteHealthCheckCommand: () => DeleteHealthCheckCommand,\n DeleteHostedZoneCommand: () => DeleteHostedZoneCommand,\n DeleteKeySigningKeyCommand: () => DeleteKeySigningKeyCommand,\n DeleteQueryLoggingConfigCommand: () => DeleteQueryLoggingConfigCommand,\n DeleteReusableDelegationSetCommand: () => DeleteReusableDelegationSetCommand,\n DeleteTrafficPolicyCommand: () => DeleteTrafficPolicyCommand,\n DeleteTrafficPolicyInstanceCommand: () => DeleteTrafficPolicyInstanceCommand,\n DeleteVPCAssociationAuthorizationCommand: () => DeleteVPCAssociationAuthorizationCommand,\n DisableHostedZoneDNSSECCommand: () => DisableHostedZoneDNSSECCommand,\n DisassociateVPCFromHostedZoneCommand: () => DisassociateVPCFromHostedZoneCommand,\n EnableHostedZoneDNSSECCommand: () => EnableHostedZoneDNSSECCommand,\n GetAccountLimitCommand: () => GetAccountLimitCommand,\n GetChangeCommand: () => GetChangeCommand,\n GetCheckerIpRangesCommand: () => GetCheckerIpRangesCommand,\n GetDNSSECCommand: () => GetDNSSECCommand,\n GetGeoLocationCommand: () => GetGeoLocationCommand,\n GetHealthCheckCommand: () => GetHealthCheckCommand,\n GetHealthCheckCountCommand: () => GetHealthCheckCountCommand,\n GetHealthCheckLastFailureReasonCommand: () => GetHealthCheckLastFailureReasonCommand,\n GetHealthCheckStatusCommand: () => GetHealthCheckStatusCommand,\n GetHostedZoneCommand: () => GetHostedZoneCommand,\n GetHostedZoneCountCommand: () => GetHostedZoneCountCommand,\n GetHostedZoneLimitCommand: () => GetHostedZoneLimitCommand,\n GetQueryLoggingConfigCommand: () => GetQueryLoggingConfigCommand,\n GetReusableDelegationSetCommand: () => GetReusableDelegationSetCommand,\n GetReusableDelegationSetLimitCommand: () => GetReusableDelegationSetLimitCommand,\n GetTrafficPolicyCommand: () => GetTrafficPolicyCommand,\n GetTrafficPolicyInstanceCommand: () => GetTrafficPolicyInstanceCommand,\n GetTrafficPolicyInstanceCountCommand: () => GetTrafficPolicyInstanceCountCommand,\n HealthCheckAlreadyExists: () => HealthCheckAlreadyExists,\n HealthCheckInUse: () => HealthCheckInUse,\n HealthCheckRegion: () => HealthCheckRegion,\n HealthCheckType: () => HealthCheckType,\n HealthCheckVersionMismatch: () => HealthCheckVersionMismatch,\n HostedZoneAlreadyExists: () => HostedZoneAlreadyExists,\n HostedZoneLimitType: () => HostedZoneLimitType,\n HostedZoneNotEmpty: () => HostedZoneNotEmpty,\n HostedZoneNotFound: () => HostedZoneNotFound,\n HostedZoneNotPrivate: () => HostedZoneNotPrivate,\n HostedZonePartiallyDelegated: () => HostedZonePartiallyDelegated,\n HostedZoneType: () => HostedZoneType,\n IncompatibleVersion: () => IncompatibleVersion,\n InsufficientCloudWatchLogsResourcePolicy: () => InsufficientCloudWatchLogsResourcePolicy,\n InsufficientDataHealthStatus: () => InsufficientDataHealthStatus,\n InvalidArgument: () => InvalidArgument,\n InvalidChangeBatch: () => InvalidChangeBatch,\n InvalidDomainName: () => InvalidDomainName,\n InvalidInput: () => InvalidInput,\n InvalidKMSArn: () => InvalidKMSArn,\n InvalidKeySigningKeyName: () => InvalidKeySigningKeyName,\n InvalidKeySigningKeyStatus: () => InvalidKeySigningKeyStatus,\n InvalidPaginationToken: () => InvalidPaginationToken,\n InvalidSigningStatus: () => InvalidSigningStatus,\n InvalidTrafficPolicyDocument: () => InvalidTrafficPolicyDocument,\n InvalidVPCId: () => InvalidVPCId,\n KeySigningKeyAlreadyExists: () => KeySigningKeyAlreadyExists,\n KeySigningKeyInParentDSRecord: () => KeySigningKeyInParentDSRecord,\n KeySigningKeyInUse: () => KeySigningKeyInUse,\n KeySigningKeyWithActiveStatusNotFound: () => KeySigningKeyWithActiveStatusNotFound,\n LastVPCAssociation: () => LastVPCAssociation,\n LimitsExceeded: () => LimitsExceeded,\n ListCidrBlocksCommand: () => ListCidrBlocksCommand,\n ListCidrCollectionsCommand: () => ListCidrCollectionsCommand,\n ListCidrLocationsCommand: () => ListCidrLocationsCommand,\n ListGeoLocationsCommand: () => ListGeoLocationsCommand,\n ListHealthChecksCommand: () => ListHealthChecksCommand,\n ListHostedZonesByNameCommand: () => ListHostedZonesByNameCommand,\n ListHostedZonesByVPCCommand: () => ListHostedZonesByVPCCommand,\n ListHostedZonesCommand: () => ListHostedZonesCommand,\n ListQueryLoggingConfigsCommand: () => ListQueryLoggingConfigsCommand,\n ListResourceRecordSetsCommand: () => ListResourceRecordSetsCommand,\n ListReusableDelegationSetsCommand: () => ListReusableDelegationSetsCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n ListTagsForResourcesCommand: () => ListTagsForResourcesCommand,\n ListTrafficPoliciesCommand: () => ListTrafficPoliciesCommand,\n ListTrafficPolicyInstancesByHostedZoneCommand: () => ListTrafficPolicyInstancesByHostedZoneCommand,\n ListTrafficPolicyInstancesByPolicyCommand: () => ListTrafficPolicyInstancesByPolicyCommand,\n ListTrafficPolicyInstancesCommand: () => ListTrafficPolicyInstancesCommand,\n ListTrafficPolicyVersionsCommand: () => ListTrafficPolicyVersionsCommand,\n ListVPCAssociationAuthorizationsCommand: () => ListVPCAssociationAuthorizationsCommand,\n NoSuchChange: () => NoSuchChange,\n NoSuchCidrCollectionException: () => NoSuchCidrCollectionException,\n NoSuchCidrLocationException: () => NoSuchCidrLocationException,\n NoSuchCloudWatchLogsLogGroup: () => NoSuchCloudWatchLogsLogGroup,\n NoSuchDelegationSet: () => NoSuchDelegationSet,\n NoSuchGeoLocation: () => NoSuchGeoLocation,\n NoSuchHealthCheck: () => NoSuchHealthCheck,\n NoSuchHostedZone: () => NoSuchHostedZone,\n NoSuchKeySigningKey: () => NoSuchKeySigningKey,\n NoSuchQueryLoggingConfig: () => NoSuchQueryLoggingConfig,\n NoSuchTrafficPolicy: () => NoSuchTrafficPolicy,\n NoSuchTrafficPolicyInstance: () => NoSuchTrafficPolicyInstance,\n NotAuthorizedException: () => NotAuthorizedException,\n PriorRequestNotComplete: () => PriorRequestNotComplete,\n PublicZoneVPCAssociation: () => PublicZoneVPCAssociation,\n QueryLoggingConfigAlreadyExists: () => QueryLoggingConfigAlreadyExists,\n RRType: () => RRType,\n ResettableElementName: () => ResettableElementName,\n ResourceRecordSetFailover: () => ResourceRecordSetFailover,\n ResourceRecordSetRegion: () => ResourceRecordSetRegion,\n ReusableDelegationSetLimitType: () => ReusableDelegationSetLimitType,\n Route53: () => Route53,\n Route53Client: () => Route53Client,\n Route53ServiceException: () => Route53ServiceException,\n Statistic: () => Statistic,\n TagResourceType: () => TagResourceType,\n TestDNSAnswerCommand: () => TestDNSAnswerCommand,\n ThrottlingException: () => ThrottlingException,\n TooManyHealthChecks: () => TooManyHealthChecks,\n TooManyHostedZones: () => TooManyHostedZones,\n TooManyKeySigningKeys: () => TooManyKeySigningKeys,\n TooManyTrafficPolicies: () => TooManyTrafficPolicies,\n TooManyTrafficPolicyInstances: () => TooManyTrafficPolicyInstances,\n TooManyTrafficPolicyVersionsForCurrentPolicy: () => TooManyTrafficPolicyVersionsForCurrentPolicy,\n TooManyVPCAssociationAuthorizations: () => TooManyVPCAssociationAuthorizations,\n TrafficPolicyAlreadyExists: () => TrafficPolicyAlreadyExists,\n TrafficPolicyInUse: () => TrafficPolicyInUse,\n TrafficPolicyInstanceAlreadyExists: () => TrafficPolicyInstanceAlreadyExists,\n UpdateHealthCheckCommand: () => UpdateHealthCheckCommand,\n UpdateHostedZoneCommentCommand: () => UpdateHostedZoneCommentCommand,\n UpdateTrafficPolicyCommentCommand: () => UpdateTrafficPolicyCommentCommand,\n UpdateTrafficPolicyInstanceCommand: () => UpdateTrafficPolicyInstanceCommand,\n VPCAssociationAuthorizationNotFound: () => VPCAssociationAuthorizationNotFound,\n VPCAssociationNotFound: () => VPCAssociationNotFound,\n VPCRegion: () => VPCRegion,\n __Client: () => import_smithy_client.Client,\n paginateListCidrBlocks: () => paginateListCidrBlocks,\n paginateListCidrCollections: () => paginateListCidrCollections,\n paginateListCidrLocations: () => paginateListCidrLocations,\n paginateListHealthChecks: () => paginateListHealthChecks,\n paginateListHostedZones: () => paginateListHostedZones,\n paginateListQueryLoggingConfigs: () => paginateListQueryLoggingConfigs,\n waitForResourceRecordSetsChanged: () => waitForResourceRecordSetsChanged,\n waitUntilResourceRecordSetsChanged: () => waitUntilResourceRecordSetsChanged\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/Route53Client.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"route53\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/Route53Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/Route53Client.ts\nvar Route53Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"Route53Client\");\n }\n /**\n * The resolved configuration of Route53Client class. This is resolved and normalized from the {@link Route53ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultRoute53HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/Route53.ts\n\n\n// src/commands/ActivateKeySigningKeyCommand.ts\nvar import_middleware_sdk_route53 = require(\"@aws-sdk/middleware-sdk-route53\");\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_restXml.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\n\n\n\n// src/models/Route53ServiceException.ts\n\nvar Route53ServiceException = class _Route53ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"Route53ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _Route53ServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccountLimitType = {\n MAX_HEALTH_CHECKS_BY_OWNER: \"MAX_HEALTH_CHECKS_BY_OWNER\",\n MAX_HOSTED_ZONES_BY_OWNER: \"MAX_HOSTED_ZONES_BY_OWNER\",\n MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: \"MAX_REUSABLE_DELEGATION_SETS_BY_OWNER\",\n MAX_TRAFFIC_POLICIES_BY_OWNER: \"MAX_TRAFFIC_POLICIES_BY_OWNER\",\n MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: \"MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER\"\n};\nvar ChangeStatus = {\n INSYNC: \"INSYNC\",\n PENDING: \"PENDING\"\n};\nvar ConcurrentModification = class _ConcurrentModification extends Route53ServiceException {\n static {\n __name(this, \"ConcurrentModification\");\n }\n name = \"ConcurrentModification\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConcurrentModification\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConcurrentModification.prototype);\n }\n};\nvar InvalidInput = class _InvalidInput extends Route53ServiceException {\n static {\n __name(this, \"InvalidInput\");\n }\n name = \"InvalidInput\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInput\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInput.prototype);\n }\n};\nvar InvalidKeySigningKeyStatus = class _InvalidKeySigningKeyStatus extends Route53ServiceException {\n static {\n __name(this, \"InvalidKeySigningKeyStatus\");\n }\n name = \"InvalidKeySigningKeyStatus\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeySigningKeyStatus\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeySigningKeyStatus.prototype);\n }\n};\nvar InvalidKMSArn = class _InvalidKMSArn extends Route53ServiceException {\n static {\n __name(this, \"InvalidKMSArn\");\n }\n name = \"InvalidKMSArn\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKMSArn\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKMSArn.prototype);\n }\n};\nvar InvalidSigningStatus = class _InvalidSigningStatus extends Route53ServiceException {\n static {\n __name(this, \"InvalidSigningStatus\");\n }\n name = \"InvalidSigningStatus\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSigningStatus\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSigningStatus.prototype);\n }\n};\nvar NoSuchKeySigningKey = class _NoSuchKeySigningKey extends Route53ServiceException {\n static {\n __name(this, \"NoSuchKeySigningKey\");\n }\n name = \"NoSuchKeySigningKey\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchKeySigningKey\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchKeySigningKey.prototype);\n }\n};\nvar CloudWatchRegion = {\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ap_southeast_7: \"ap-southeast-7\",\n ca_central_1: \"ca-central-1\",\n ca_west_1: \"ca-west-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n mx_central_1: \"mx-central-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_iso_east_1: \"us-iso-east-1\",\n us_iso_west_1: \"us-iso-west-1\",\n us_isob_east_1: \"us-isob-east-1\",\n us_isof_east_1: \"us-isof-east-1\",\n us_isof_south_1: \"us-isof-south-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar VPCRegion = {\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ap_southeast_7: \"ap-southeast-7\",\n ca_central_1: \"ca-central-1\",\n ca_west_1: \"ca-west-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n mx_central_1: \"mx-central-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_iso_east_1: \"us-iso-east-1\",\n us_iso_west_1: \"us-iso-west-1\",\n us_isob_east_1: \"us-isob-east-1\",\n us_isof_east_1: \"us-isof-east-1\",\n us_isof_south_1: \"us-isof-south-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar ConflictingDomainExists = class _ConflictingDomainExists extends Route53ServiceException {\n static {\n __name(this, \"ConflictingDomainExists\");\n }\n name = \"ConflictingDomainExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictingDomainExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictingDomainExists.prototype);\n }\n};\nvar InvalidVPCId = class _InvalidVPCId extends Route53ServiceException {\n static {\n __name(this, \"InvalidVPCId\");\n }\n name = \"InvalidVPCId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidVPCId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidVPCId.prototype);\n }\n};\nvar LimitsExceeded = class _LimitsExceeded extends Route53ServiceException {\n static {\n __name(this, \"LimitsExceeded\");\n }\n name = \"LimitsExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitsExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitsExceeded.prototype);\n }\n};\nvar NoSuchHostedZone = class _NoSuchHostedZone extends Route53ServiceException {\n static {\n __name(this, \"NoSuchHostedZone\");\n }\n name = \"NoSuchHostedZone\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchHostedZone\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchHostedZone.prototype);\n }\n};\nvar NotAuthorizedException = class _NotAuthorizedException extends Route53ServiceException {\n static {\n __name(this, \"NotAuthorizedException\");\n }\n name = \"NotAuthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotAuthorizedException.prototype);\n }\n};\nvar PriorRequestNotComplete = class _PriorRequestNotComplete extends Route53ServiceException {\n static {\n __name(this, \"PriorRequestNotComplete\");\n }\n name = \"PriorRequestNotComplete\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PriorRequestNotComplete\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PriorRequestNotComplete.prototype);\n }\n};\nvar PublicZoneVPCAssociation = class _PublicZoneVPCAssociation extends Route53ServiceException {\n static {\n __name(this, \"PublicZoneVPCAssociation\");\n }\n name = \"PublicZoneVPCAssociation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PublicZoneVPCAssociation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PublicZoneVPCAssociation.prototype);\n }\n};\nvar CidrCollectionChangeAction = {\n DELETE_IF_EXISTS: \"DELETE_IF_EXISTS\",\n PUT: \"PUT\"\n};\nvar CidrBlockInUseException = class _CidrBlockInUseException extends Route53ServiceException {\n static {\n __name(this, \"CidrBlockInUseException\");\n }\n name = \"CidrBlockInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrBlockInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrBlockInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CidrCollectionVersionMismatchException = class _CidrCollectionVersionMismatchException extends Route53ServiceException {\n static {\n __name(this, \"CidrCollectionVersionMismatchException\");\n }\n name = \"CidrCollectionVersionMismatchException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrCollectionVersionMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrCollectionVersionMismatchException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NoSuchCidrCollectionException = class _NoSuchCidrCollectionException extends Route53ServiceException {\n static {\n __name(this, \"NoSuchCidrCollectionException\");\n }\n name = \"NoSuchCidrCollectionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchCidrCollectionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchCidrCollectionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ChangeAction = {\n CREATE: \"CREATE\",\n DELETE: \"DELETE\",\n UPSERT: \"UPSERT\"\n};\nvar ResourceRecordSetFailover = {\n PRIMARY: \"PRIMARY\",\n SECONDARY: \"SECONDARY\"\n};\nvar ResourceRecordSetRegion = {\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ap_southeast_7: \"ap-southeast-7\",\n ca_central_1: \"ca-central-1\",\n ca_west_1: \"ca-west-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n mx_central_1: \"mx-central-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar RRType = {\n A: \"A\",\n AAAA: \"AAAA\",\n CAA: \"CAA\",\n CNAME: \"CNAME\",\n DS: \"DS\",\n HTTPS: \"HTTPS\",\n MX: \"MX\",\n NAPTR: \"NAPTR\",\n NS: \"NS\",\n PTR: \"PTR\",\n SOA: \"SOA\",\n SPF: \"SPF\",\n SRV: \"SRV\",\n SSHFP: \"SSHFP\",\n SVCB: \"SVCB\",\n TLSA: \"TLSA\",\n TXT: \"TXT\"\n};\nvar InvalidChangeBatch = class _InvalidChangeBatch extends Route53ServiceException {\n static {\n __name(this, \"InvalidChangeBatch\");\n }\n name = \"InvalidChangeBatch\";\n $fault = \"client\";\n /**\n *

\n * @public\n */\n messages;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidChangeBatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidChangeBatch.prototype);\n this.messages = opts.messages;\n }\n};\nvar NoSuchHealthCheck = class _NoSuchHealthCheck extends Route53ServiceException {\n static {\n __name(this, \"NoSuchHealthCheck\");\n }\n name = \"NoSuchHealthCheck\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchHealthCheck\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchHealthCheck.prototype);\n }\n};\nvar TagResourceType = {\n healthcheck: \"healthcheck\",\n hostedzone: \"hostedzone\"\n};\nvar ThrottlingException = class _ThrottlingException extends Route53ServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n }\n};\nvar CidrCollectionAlreadyExistsException = class _CidrCollectionAlreadyExistsException extends Route53ServiceException {\n static {\n __name(this, \"CidrCollectionAlreadyExistsException\");\n }\n name = \"CidrCollectionAlreadyExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrCollectionAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrCollectionAlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InsufficientDataHealthStatus = {\n Healthy: \"Healthy\",\n LastKnownStatus: \"LastKnownStatus\",\n Unhealthy: \"Unhealthy\"\n};\nvar HealthCheckRegion = {\n ap_northeast_1: \"ap-northeast-1\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n eu_west_1: \"eu-west-1\",\n sa_east_1: \"sa-east-1\",\n us_east_1: \"us-east-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar HealthCheckType = {\n CALCULATED: \"CALCULATED\",\n CLOUDWATCH_METRIC: \"CLOUDWATCH_METRIC\",\n HTTP: \"HTTP\",\n HTTPS: \"HTTPS\",\n HTTPS_STR_MATCH: \"HTTPS_STR_MATCH\",\n HTTP_STR_MATCH: \"HTTP_STR_MATCH\",\n RECOVERY_CONTROL: \"RECOVERY_CONTROL\",\n TCP: \"TCP\"\n};\nvar ComparisonOperator = {\n GreaterThanOrEqualToThreshold: \"GreaterThanOrEqualToThreshold\",\n GreaterThanThreshold: \"GreaterThanThreshold\",\n LessThanOrEqualToThreshold: \"LessThanOrEqualToThreshold\",\n LessThanThreshold: \"LessThanThreshold\"\n};\nvar Statistic = {\n Average: \"Average\",\n Maximum: \"Maximum\",\n Minimum: \"Minimum\",\n SampleCount: \"SampleCount\",\n Sum: \"Sum\"\n};\nvar HealthCheckAlreadyExists = class _HealthCheckAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"HealthCheckAlreadyExists\");\n }\n name = \"HealthCheckAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthCheckAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthCheckAlreadyExists.prototype);\n }\n};\nvar TooManyHealthChecks = class _TooManyHealthChecks extends Route53ServiceException {\n static {\n __name(this, \"TooManyHealthChecks\");\n }\n name = \"TooManyHealthChecks\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyHealthChecks\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyHealthChecks.prototype);\n }\n};\nvar DelegationSetNotAvailable = class _DelegationSetNotAvailable extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetNotAvailable\");\n }\n name = \"DelegationSetNotAvailable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetNotAvailable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetNotAvailable.prototype);\n }\n};\nvar DelegationSetNotReusable = class _DelegationSetNotReusable extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetNotReusable\");\n }\n name = \"DelegationSetNotReusable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetNotReusable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetNotReusable.prototype);\n }\n};\nvar HostedZoneAlreadyExists = class _HostedZoneAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneAlreadyExists\");\n }\n name = \"HostedZoneAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneAlreadyExists.prototype);\n }\n};\nvar InvalidDomainName = class _InvalidDomainName extends Route53ServiceException {\n static {\n __name(this, \"InvalidDomainName\");\n }\n name = \"InvalidDomainName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDomainName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDomainName.prototype);\n }\n};\nvar NoSuchDelegationSet = class _NoSuchDelegationSet extends Route53ServiceException {\n static {\n __name(this, \"NoSuchDelegationSet\");\n }\n name = \"NoSuchDelegationSet\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchDelegationSet\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchDelegationSet.prototype);\n }\n};\nvar TooManyHostedZones = class _TooManyHostedZones extends Route53ServiceException {\n static {\n __name(this, \"TooManyHostedZones\");\n }\n name = \"TooManyHostedZones\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyHostedZones\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyHostedZones.prototype);\n }\n};\nvar InvalidArgument = class _InvalidArgument extends Route53ServiceException {\n static {\n __name(this, \"InvalidArgument\");\n }\n name = \"InvalidArgument\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidArgument\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidArgument.prototype);\n }\n};\nvar InvalidKeySigningKeyName = class _InvalidKeySigningKeyName extends Route53ServiceException {\n static {\n __name(this, \"InvalidKeySigningKeyName\");\n }\n name = \"InvalidKeySigningKeyName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeySigningKeyName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeySigningKeyName.prototype);\n }\n};\nvar KeySigningKeyAlreadyExists = class _KeySigningKeyAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyAlreadyExists\");\n }\n name = \"KeySigningKeyAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyAlreadyExists.prototype);\n }\n};\nvar TooManyKeySigningKeys = class _TooManyKeySigningKeys extends Route53ServiceException {\n static {\n __name(this, \"TooManyKeySigningKeys\");\n }\n name = \"TooManyKeySigningKeys\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyKeySigningKeys\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyKeySigningKeys.prototype);\n }\n};\nvar InsufficientCloudWatchLogsResourcePolicy = class _InsufficientCloudWatchLogsResourcePolicy extends Route53ServiceException {\n static {\n __name(this, \"InsufficientCloudWatchLogsResourcePolicy\");\n }\n name = \"InsufficientCloudWatchLogsResourcePolicy\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InsufficientCloudWatchLogsResourcePolicy\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InsufficientCloudWatchLogsResourcePolicy.prototype);\n }\n};\nvar NoSuchCloudWatchLogsLogGroup = class _NoSuchCloudWatchLogsLogGroup extends Route53ServiceException {\n static {\n __name(this, \"NoSuchCloudWatchLogsLogGroup\");\n }\n name = \"NoSuchCloudWatchLogsLogGroup\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchCloudWatchLogsLogGroup\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchCloudWatchLogsLogGroup.prototype);\n }\n};\nvar QueryLoggingConfigAlreadyExists = class _QueryLoggingConfigAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"QueryLoggingConfigAlreadyExists\");\n }\n name = \"QueryLoggingConfigAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"QueryLoggingConfigAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _QueryLoggingConfigAlreadyExists.prototype);\n }\n};\nvar DelegationSetAlreadyCreated = class _DelegationSetAlreadyCreated extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetAlreadyCreated\");\n }\n name = \"DelegationSetAlreadyCreated\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetAlreadyCreated\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetAlreadyCreated.prototype);\n }\n};\nvar DelegationSetAlreadyReusable = class _DelegationSetAlreadyReusable extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetAlreadyReusable\");\n }\n name = \"DelegationSetAlreadyReusable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetAlreadyReusable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetAlreadyReusable.prototype);\n }\n};\nvar HostedZoneNotFound = class _HostedZoneNotFound extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneNotFound\");\n }\n name = \"HostedZoneNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneNotFound.prototype);\n }\n};\nvar InvalidTrafficPolicyDocument = class _InvalidTrafficPolicyDocument extends Route53ServiceException {\n static {\n __name(this, \"InvalidTrafficPolicyDocument\");\n }\n name = \"InvalidTrafficPolicyDocument\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTrafficPolicyDocument\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTrafficPolicyDocument.prototype);\n }\n};\nvar TooManyTrafficPolicies = class _TooManyTrafficPolicies extends Route53ServiceException {\n static {\n __name(this, \"TooManyTrafficPolicies\");\n }\n name = \"TooManyTrafficPolicies\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrafficPolicies\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrafficPolicies.prototype);\n }\n};\nvar TrafficPolicyAlreadyExists = class _TrafficPolicyAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"TrafficPolicyAlreadyExists\");\n }\n name = \"TrafficPolicyAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrafficPolicyAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrafficPolicyAlreadyExists.prototype);\n }\n};\nvar NoSuchTrafficPolicy = class _NoSuchTrafficPolicy extends Route53ServiceException {\n static {\n __name(this, \"NoSuchTrafficPolicy\");\n }\n name = \"NoSuchTrafficPolicy\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchTrafficPolicy\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchTrafficPolicy.prototype);\n }\n};\nvar TooManyTrafficPolicyInstances = class _TooManyTrafficPolicyInstances extends Route53ServiceException {\n static {\n __name(this, \"TooManyTrafficPolicyInstances\");\n }\n name = \"TooManyTrafficPolicyInstances\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrafficPolicyInstances\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrafficPolicyInstances.prototype);\n }\n};\nvar TrafficPolicyInstanceAlreadyExists = class _TrafficPolicyInstanceAlreadyExists extends Route53ServiceException {\n static {\n __name(this, \"TrafficPolicyInstanceAlreadyExists\");\n }\n name = \"TrafficPolicyInstanceAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrafficPolicyInstanceAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrafficPolicyInstanceAlreadyExists.prototype);\n }\n};\nvar TooManyTrafficPolicyVersionsForCurrentPolicy = class _TooManyTrafficPolicyVersionsForCurrentPolicy extends Route53ServiceException {\n static {\n __name(this, \"TooManyTrafficPolicyVersionsForCurrentPolicy\");\n }\n name = \"TooManyTrafficPolicyVersionsForCurrentPolicy\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTrafficPolicyVersionsForCurrentPolicy\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTrafficPolicyVersionsForCurrentPolicy.prototype);\n }\n};\nvar TooManyVPCAssociationAuthorizations = class _TooManyVPCAssociationAuthorizations extends Route53ServiceException {\n static {\n __name(this, \"TooManyVPCAssociationAuthorizations\");\n }\n name = \"TooManyVPCAssociationAuthorizations\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyVPCAssociationAuthorizations\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyVPCAssociationAuthorizations.prototype);\n }\n};\nvar KeySigningKeyInParentDSRecord = class _KeySigningKeyInParentDSRecord extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyInParentDSRecord\");\n }\n name = \"KeySigningKeyInParentDSRecord\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyInParentDSRecord\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyInParentDSRecord.prototype);\n }\n};\nvar KeySigningKeyInUse = class _KeySigningKeyInUse extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyInUse\");\n }\n name = \"KeySigningKeyInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyInUse.prototype);\n }\n};\nvar CidrCollectionInUseException = class _CidrCollectionInUseException extends Route53ServiceException {\n static {\n __name(this, \"CidrCollectionInUseException\");\n }\n name = \"CidrCollectionInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CidrCollectionInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CidrCollectionInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HealthCheckInUse = class _HealthCheckInUse extends Route53ServiceException {\n static {\n __name(this, \"HealthCheckInUse\");\n }\n name = \"HealthCheckInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthCheckInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthCheckInUse.prototype);\n }\n};\nvar HostedZoneNotEmpty = class _HostedZoneNotEmpty extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneNotEmpty\");\n }\n name = \"HostedZoneNotEmpty\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneNotEmpty\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneNotEmpty.prototype);\n }\n};\nvar NoSuchQueryLoggingConfig = class _NoSuchQueryLoggingConfig extends Route53ServiceException {\n static {\n __name(this, \"NoSuchQueryLoggingConfig\");\n }\n name = \"NoSuchQueryLoggingConfig\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchQueryLoggingConfig\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchQueryLoggingConfig.prototype);\n }\n};\nvar DelegationSetInUse = class _DelegationSetInUse extends Route53ServiceException {\n static {\n __name(this, \"DelegationSetInUse\");\n }\n name = \"DelegationSetInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DelegationSetInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DelegationSetInUse.prototype);\n }\n};\nvar TrafficPolicyInUse = class _TrafficPolicyInUse extends Route53ServiceException {\n static {\n __name(this, \"TrafficPolicyInUse\");\n }\n name = \"TrafficPolicyInUse\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TrafficPolicyInUse\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TrafficPolicyInUse.prototype);\n }\n};\nvar NoSuchTrafficPolicyInstance = class _NoSuchTrafficPolicyInstance extends Route53ServiceException {\n static {\n __name(this, \"NoSuchTrafficPolicyInstance\");\n }\n name = \"NoSuchTrafficPolicyInstance\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchTrafficPolicyInstance\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchTrafficPolicyInstance.prototype);\n }\n};\nvar VPCAssociationAuthorizationNotFound = class _VPCAssociationAuthorizationNotFound extends Route53ServiceException {\n static {\n __name(this, \"VPCAssociationAuthorizationNotFound\");\n }\n name = \"VPCAssociationAuthorizationNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"VPCAssociationAuthorizationNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _VPCAssociationAuthorizationNotFound.prototype);\n }\n};\nvar DNSSECNotFound = class _DNSSECNotFound extends Route53ServiceException {\n static {\n __name(this, \"DNSSECNotFound\");\n }\n name = \"DNSSECNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DNSSECNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DNSSECNotFound.prototype);\n }\n};\nvar LastVPCAssociation = class _LastVPCAssociation extends Route53ServiceException {\n static {\n __name(this, \"LastVPCAssociation\");\n }\n name = \"LastVPCAssociation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LastVPCAssociation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LastVPCAssociation.prototype);\n }\n};\nvar VPCAssociationNotFound = class _VPCAssociationNotFound extends Route53ServiceException {\n static {\n __name(this, \"VPCAssociationNotFound\");\n }\n name = \"VPCAssociationNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"VPCAssociationNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _VPCAssociationNotFound.prototype);\n }\n};\nvar HostedZonePartiallyDelegated = class _HostedZonePartiallyDelegated extends Route53ServiceException {\n static {\n __name(this, \"HostedZonePartiallyDelegated\");\n }\n name = \"HostedZonePartiallyDelegated\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZonePartiallyDelegated\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZonePartiallyDelegated.prototype);\n }\n};\nvar KeySigningKeyWithActiveStatusNotFound = class _KeySigningKeyWithActiveStatusNotFound extends Route53ServiceException {\n static {\n __name(this, \"KeySigningKeyWithActiveStatusNotFound\");\n }\n name = \"KeySigningKeyWithActiveStatusNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KeySigningKeyWithActiveStatusNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KeySigningKeyWithActiveStatusNotFound.prototype);\n }\n};\nvar NoSuchChange = class _NoSuchChange extends Route53ServiceException {\n static {\n __name(this, \"NoSuchChange\");\n }\n name = \"NoSuchChange\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchChange\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchChange.prototype);\n }\n};\nvar NoSuchGeoLocation = class _NoSuchGeoLocation extends Route53ServiceException {\n static {\n __name(this, \"NoSuchGeoLocation\");\n }\n name = \"NoSuchGeoLocation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchGeoLocation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchGeoLocation.prototype);\n }\n};\nvar IncompatibleVersion = class _IncompatibleVersion extends Route53ServiceException {\n static {\n __name(this, \"IncompatibleVersion\");\n }\n name = \"IncompatibleVersion\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncompatibleVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncompatibleVersion.prototype);\n }\n};\nvar HostedZoneLimitType = {\n MAX_RRSETS_BY_ZONE: \"MAX_RRSETS_BY_ZONE\",\n MAX_VPCS_ASSOCIATED_BY_ZONE: \"MAX_VPCS_ASSOCIATED_BY_ZONE\"\n};\nvar HostedZoneNotPrivate = class _HostedZoneNotPrivate extends Route53ServiceException {\n static {\n __name(this, \"HostedZoneNotPrivate\");\n }\n name = \"HostedZoneNotPrivate\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HostedZoneNotPrivate\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HostedZoneNotPrivate.prototype);\n }\n};\nvar ReusableDelegationSetLimitType = {\n MAX_ZONES_BY_REUSABLE_DELEGATION_SET: \"MAX_ZONES_BY_REUSABLE_DELEGATION_SET\"\n};\nvar NoSuchCidrLocationException = class _NoSuchCidrLocationException extends Route53ServiceException {\n static {\n __name(this, \"NoSuchCidrLocationException\");\n }\n name = \"NoSuchCidrLocationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchCidrLocationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchCidrLocationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HostedZoneType = {\n PRIVATE_HOSTED_ZONE: \"PrivateHostedZone\"\n};\nvar InvalidPaginationToken = class _InvalidPaginationToken extends Route53ServiceException {\n static {\n __name(this, \"InvalidPaginationToken\");\n }\n name = \"InvalidPaginationToken\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPaginationToken\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPaginationToken.prototype);\n }\n};\nvar HealthCheckVersionMismatch = class _HealthCheckVersionMismatch extends Route53ServiceException {\n static {\n __name(this, \"HealthCheckVersionMismatch\");\n }\n name = \"HealthCheckVersionMismatch\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HealthCheckVersionMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HealthCheckVersionMismatch.prototype);\n }\n};\nvar ResettableElementName = {\n ChildHealthChecks: \"ChildHealthChecks\",\n FullyQualifiedDomainName: \"FullyQualifiedDomainName\",\n Regions: \"Regions\",\n ResourcePath: \"ResourcePath\"\n};\nvar ConflictingTypes = class _ConflictingTypes extends Route53ServiceException {\n static {\n __name(this, \"ConflictingTypes\");\n }\n name = \"ConflictingTypes\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictingTypes\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictingTypes.prototype);\n }\n};\n\n// src/protocols/Aws_restXml.ts\nvar se_ActivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/keysigningkey/{HostedZoneId}/{Name}/activate\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ActivateKeySigningKeyCommand\");\nvar se_AssociateVPCWithHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/associatevpc\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_AVPCWHZR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AVPCC, input[_C]).n(_C));\n }\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_AssociateVPCWithHostedZoneCommand\");\nvar se_ChangeCidrCollectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/cidrcollection/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CCCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.lc(input, \"Changes\", \"Changes\", () => se_CidrCollectionChanges(input[_Ch], context));\n if (input[_CV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CV, String(input[_CV])).n(_CV));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ChangeCidrCollectionCommand\");\nvar se_ChangeResourceRecordSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/rrset\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CRRSR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CB] != null) {\n bn.c(se_ChangeBatch(input[_CB], context).n(_CB));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ChangeResourceRecordSetsCommand\");\nvar se_ChangeTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/tags/{ResourceType}/{ResourceId}\");\n b.p(\"ResourceType\", () => input.ResourceType, \"{ResourceType}\", false);\n b.p(\"ResourceId\", () => input.ResourceId, \"{ResourceId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTFRR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.lc(input, \"AddTags\", \"AddTags\", () => se_TagList(input[_AT], context));\n bn.lc(input, \"RemoveTagKeys\", \"RemoveTagKeys\", () => se_TagKeyList(input[_RTK], context));\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ChangeTagsForResourceCommand\");\nvar se_CreateCidrCollectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/cidrcollection\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CCCRr);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CN, input[_CR]).n(_CR));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CNo, input[_N]).n(_N));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateCidrCollectionCommand\");\nvar se_CreateHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/healthcheck\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CHCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HCN, input[_CR]).n(_CR));\n }\n if (input[_HCC] != null) {\n bn.c(se_HealthCheckConfig(input[_HCC], context).n(_HCC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateHealthCheckCommand\");\nvar se_CreateHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CHZR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_No, input[_CR]).n(_CR));\n }\n if (input[_DSI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_DSI]).n(_DSI));\n }\n if (input[_HZC] != null) {\n bn.c(se_HostedZoneConfig(input[_HZC], context).n(_HZC));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DNSN, input[_N]).n(_N));\n }\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateHostedZoneCommand\");\nvar se_CreateKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/keysigningkey\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CKSKR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_No, input[_CR]).n(_CR));\n }\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n if (input[_KMSA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKS, input[_KMSA]).n(_KMSA));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKN, input[_N]).n(_N));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKSi, input[_S]).n(_S));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateKeySigningKeyCommand\");\nvar se_CreateQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/queryloggingconfig\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CQLCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.cc(input, _CWLLGA);\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateQueryLoggingConfigCommand\");\nvar se_CreateReusableDelegationSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/delegationset\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CRDSR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_CR] != null) {\n bn.c(import_xml_builder.XmlNode.of(_No, input[_CR]).n(_CR));\n }\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateReusableDelegationSetCommand\");\nvar se_CreateTrafficPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicy\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTPR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPC, input[_C]).n(_C));\n }\n if (input[_D] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPD, input[_D]).n(_D));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPN, input[_N]).n(_N));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTrafficPolicyCommand\");\nvar se_CreateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicyinstance\");\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTPIR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DNSN, input[_N]).n(_N));\n }\n if (input[_TTL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TTL, String(input[_TTL])).n(_TTL));\n }\n bn.cc(input, _TPI);\n if (input[_TPV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPV, String(input[_TPV])).n(_TPV));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTrafficPolicyInstanceCommand\");\nvar se_CreateTrafficPolicyVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicy/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CTPVR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPC, input[_C]).n(_C));\n }\n if (input[_D] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPD, input[_D]).n(_D));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTrafficPolicyVersionCommand\");\nvar se_CreateVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/authorizevpcassociation\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_CVPCAAR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateVPCAssociationAuthorizationCommand\");\nvar se_DeactivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/keysigningkey/{HostedZoneId}/{Name}/deactivate\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DeactivateKeySigningKeyCommand\");\nvar se_DeleteCidrCollectionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteCidrCollectionCommand\");\nvar se_DeleteHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteHealthCheckCommand\");\nvar se_DeleteHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteHostedZoneCommand\");\nvar se_DeleteKeySigningKeyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/keysigningkey/{HostedZoneId}/{Name}\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n b.p(\"Name\", () => input.Name, \"{Name}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteKeySigningKeyCommand\");\nvar se_DeleteQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/queryloggingconfig/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteQueryLoggingConfigCommand\");\nvar se_DeleteReusableDelegationSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/delegationset/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteReusableDelegationSetCommand\");\nvar se_DeleteTrafficPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicy/{Id}/{Version}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n b.p(\"Version\", () => input.Version.toString(), \"{Version}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteTrafficPolicyCommand\");\nvar se_DeleteTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstance/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteTrafficPolicyInstanceCommand\");\nvar se_DeleteVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/deauthorizevpcassociation\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_DVPCAAR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteVPCAssociationAuthorizationCommand\");\nvar se_DisableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/disable-dnssec\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DisableHostedZoneDNSSECCommand\");\nvar se_DisassociateVPCFromHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/disassociatevpc\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_DVPCFHZR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DVPCC, input[_C]).n(_C));\n }\n if (input[_VPC] != null) {\n bn.c(se_VPC(input[_VPC], context).n(_VPC));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_DisassociateVPCFromHostedZoneCommand\");\nvar se_EnableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/enable-dnssec\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_EnableHostedZoneDNSSECCommand\");\nvar se_GetAccountLimitCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/accountlimit/{Type}\");\n b.p(\"Type\", () => input.Type, \"{Type}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetAccountLimitCommand\");\nvar se_GetChangeCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/change/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetChangeCommand\");\nvar se_GetCheckerIpRangesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/checkeripranges\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetCheckerIpRangesCommand\");\nvar se_GetDNSSECCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/dnssec\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetDNSSECCommand\");\nvar se_GetGeoLocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/geolocation\");\n const query = (0, import_smithy_client.map)({\n [_c]: [, input[_CC]],\n [_co]: [, input[_CCo]],\n [_s]: [, input[_SC]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetGeoLocationCommand\");\nvar se_GetHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckCommand\");\nvar se_GetHealthCheckCountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheckcount\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckCountCommand\");\nvar se_GetHealthCheckLastFailureReasonCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckLastFailureReasonCommand\");\nvar se_GetHealthCheckStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}/status\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHealthCheckStatusCommand\");\nvar se_GetHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHostedZoneCommand\");\nvar se_GetHostedZoneCountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonecount\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHostedZoneCountCommand\");\nvar se_GetHostedZoneLimitCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonelimit/{HostedZoneId}/{Type}\");\n b.p(\"Type\", () => input.Type, \"{Type}\", false);\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetHostedZoneLimitCommand\");\nvar se_GetQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/queryloggingconfig/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetQueryLoggingConfigCommand\");\nvar se_GetReusableDelegationSetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/delegationset/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetReusableDelegationSetCommand\");\nvar se_GetReusableDelegationSetLimitCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/reusabledelegationsetlimit/{DelegationSetId}/{Type}\");\n b.p(\"Type\", () => input.Type, \"{Type}\", false);\n b.p(\"DelegationSetId\", () => input.DelegationSetId, \"{DelegationSetId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetReusableDelegationSetLimitCommand\");\nvar se_GetTrafficPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicy/{Id}/{Version}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n b.p(\"Version\", () => input.Version.toString(), \"{Version}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetTrafficPolicyCommand\");\nvar se_GetTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstance/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetTrafficPolicyInstanceCommand\");\nvar se_GetTrafficPolicyInstanceCountCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstancecount\");\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_GetTrafficPolicyInstanceCountCommand\");\nvar se_ListCidrBlocksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection/{CollectionId}/cidrblocks\");\n b.p(\"CollectionId\", () => input.CollectionId, \"{CollectionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, input[_LN]],\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCidrBlocksCommand\");\nvar se_ListCidrCollectionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection\");\n const query = (0, import_smithy_client.map)({\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCidrCollectionsCommand\");\nvar se_ListCidrLocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/cidrcollection/{CollectionId}\");\n b.p(\"CollectionId\", () => input.CollectionId, \"{CollectionId}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListCidrLocationsCommand\");\nvar se_ListGeoLocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/geolocations\");\n const query = (0, import_smithy_client.map)({\n [_st]: [, input[_SCC]],\n [_sta]: [, input[_SCCt]],\n [_star]: [, input[_SSC]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListGeoLocationsCommand\");\nvar se_ListHealthChecksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/healthcheck\");\n const query = (0, import_smithy_client.map)({\n [_mar]: [, input[_M]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHealthChecksCommand\");\nvar se_ListHostedZonesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone\");\n const query = (0, import_smithy_client.map)({\n [_mar]: [, input[_M]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_d]: [, input[_DSI]],\n [_h]: [, input[_HZT]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHostedZonesCommand\");\nvar se_ListHostedZonesByNameCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonesbyname\");\n const query = (0, import_smithy_client.map)({\n [_dn]: [, input[_DNSN]],\n [_ho]: [, input[_HZI]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHostedZonesByNameCommand\");\nvar se_ListHostedZonesByVPCCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzonesbyvpc\");\n const query = (0, import_smithy_client.map)({\n [_v]: [, (0, import_smithy_client.expectNonNull)(input[_VPCI], `VPCId`)],\n [_vp]: [, (0, import_smithy_client.expectNonNull)(input[_VPCR], `VPCRegion`)],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()],\n [_n]: [, input[_NT]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListHostedZonesByVPCCommand\");\nvar se_ListQueryLoggingConfigsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/queryloggingconfig\");\n const query = (0, import_smithy_client.map)({\n [_ho]: [, input[_HZI]],\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListQueryLoggingConfigsCommand\");\nvar se_ListResourceRecordSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/rrset\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n const query = (0, import_smithy_client.map)({\n [_na]: [, input[_SRN]],\n [_t]: [, input[_SRT]],\n [_i]: [, input[_SRI]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListResourceRecordSetsCommand\");\nvar se_ListReusableDelegationSetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/delegationset\");\n const query = (0, import_smithy_client.map)({\n [_mar]: [, input[_M]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListReusableDelegationSetsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/tags/{ResourceType}/{ResourceId}\");\n b.p(\"ResourceType\", () => input.ResourceType, \"{ResourceType}\", false);\n b.p(\"ResourceId\", () => input.ResourceId, \"{ResourceId}\", false);\n let body;\n b.m(\"GET\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsForResourceCommand\");\nvar se_ListTagsForResourcesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/tags/{ResourceType}\");\n b.p(\"ResourceType\", () => input.ResourceType, \"{ResourceType}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_LTFRR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n bn.lc(input, \"ResourceIds\", \"ResourceIds\", () => se_TagResourceIdList(input[_RIe], context));\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_ListTagsForResourcesCommand\");\nvar se_ListTrafficPoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicies\");\n const query = (0, import_smithy_client.map)({\n [_tr]: [, input[_TPIM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPoliciesCommand\");\nvar se_ListTrafficPolicyInstancesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstances\");\n const query = (0, import_smithy_client.map)({\n [_ho]: [, input[_HZIM]],\n [_tra]: [, input[_TPINM]],\n [_traf]: [, input[_TPITM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyInstancesCommand\");\nvar se_ListTrafficPolicyInstancesByHostedZoneCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstances/hostedzone\");\n const query = (0, import_smithy_client.map)({\n [_id]: [, (0, import_smithy_client.expectNonNull)(input[_HZI], `HostedZoneId`)],\n [_tra]: [, input[_TPINM]],\n [_traf]: [, input[_TPITM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyInstancesByHostedZoneCommand\");\nvar se_ListTrafficPolicyInstancesByPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicyinstances/trafficpolicy\");\n const query = (0, import_smithy_client.map)({\n [_id]: [, (0, import_smithy_client.expectNonNull)(input[_TPI], `TrafficPolicyId`)],\n [_ver]: [\n (0, import_smithy_client.expectNonNull)(input.TrafficPolicyVersion, `TrafficPolicyVersion`) != null,\n () => input[_TPV].toString()\n ],\n [_ho]: [, input[_HZIM]],\n [_tra]: [, input[_TPINM]],\n [_traf]: [, input[_TPITM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyInstancesByPolicyCommand\");\nvar se_ListTrafficPolicyVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/trafficpolicies/{Id}/versions\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n const query = (0, import_smithy_client.map)({\n [_traff]: [, input[_TPVM]],\n [_ma]: [() => input.MaxItems !== void 0, () => input[_MI].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListTrafficPolicyVersionsCommand\");\nvar se_ListVPCAssociationAuthorizationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/hostedzone/{HostedZoneId}/authorizevpcassociation\");\n b.p(\"HostedZoneId\", () => input.HostedZoneId, \"{HostedZoneId}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, input[_NT]],\n [_m]: [() => input.MaxResults !== void 0, () => input[_MR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListVPCAssociationAuthorizationsCommand\");\nvar se_TestDNSAnswerCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/2013-04-01/testdnsanswer\");\n const query = (0, import_smithy_client.map)({\n [_ho]: [, (0, import_smithy_client.expectNonNull)(input[_HZI], `HostedZoneId`)],\n [_r]: [, (0, import_smithy_client.expectNonNull)(input[_RN], `RecordName`)],\n [_re]: [, (0, import_smithy_client.expectNonNull)(input[_RT], `RecordType`)],\n [_res]: [, input[_RIP]],\n [_e]: [, input[_EDNSCSIP]],\n [_ed]: [, input[_EDNSCSM]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_TestDNSAnswerCommand\");\nvar se_UpdateHealthCheckCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/healthcheck/{HealthCheckId}\");\n b.p(\"HealthCheckId\", () => input.HealthCheckId, \"{HealthCheckId}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UHCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_AI] != null) {\n bn.c(se_AlarmIdentifier(input[_AI], context).n(_AI));\n }\n bn.lc(input, \"ChildHealthChecks\", \"ChildHealthChecks\", () => se_ChildHealthCheckList(input[_CHC], context));\n if (input[_Di] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Di, String(input[_Di])).n(_Di));\n }\n if (input[_ESNI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESNI, String(input[_ESNI])).n(_ESNI));\n }\n if (input[_FT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FT, String(input[_FT])).n(_FT));\n }\n bn.cc(input, _FQDN);\n if (input[_HCV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HCV, String(input[_HCV])).n(_HCV));\n }\n if (input[_HT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HT, String(input[_HT])).n(_HT));\n }\n bn.cc(input, _IPA);\n bn.cc(input, _IDHS);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_I, String(input[_I])).n(_I));\n }\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, String(input[_P])).n(_P));\n }\n bn.lc(input, \"Regions\", \"Regions\", () => se_HealthCheckRegionList(input[_R], context));\n bn.lc(input, \"ResetElements\", \"ResetElements\", () => se_ResettableElementNameList(input[_RE], context));\n bn.cc(input, _RP);\n bn.cc(input, _SS);\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateHealthCheckCommand\");\nvar se_UpdateHostedZoneCommentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/hostedzone/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UHZCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RD, input[_C]).n(_C));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateHostedZoneCommentCommand\");\nvar se_UpdateTrafficPolicyCommentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicy/{Id}/{Version}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n b.p(\"Version\", () => input.Version.toString(), \"{Version}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UTPCR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPC, input[_C]).n(_C));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateTrafficPolicyCommentCommand\");\nvar se_UpdateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/xml\"\n };\n b.bp(\"/2013-04-01/trafficpolicyinstance/{Id}\");\n b.p(\"Id\", () => input.Id, \"{Id}\", false);\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_UTPIR);\n bn.a(\"xmlns\", \"https://route53.amazonaws.com/doc/2013-04-01/\");\n if (input[_TTL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TTL, String(input[_TTL])).n(_TTL));\n }\n bn.cc(input, _TPI);\n if (input[_TPV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TPV, String(input[_TPV])).n(_TPV));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_UpdateTrafficPolicyInstanceCommand\");\nvar de_ActivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_ActivateKeySigningKeyCommand\");\nvar de_AssociateVPCWithHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_AssociateVPCWithHostedZoneCommand\");\nvar de_ChangeCidrCollectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(data[_Id]);\n }\n return contents;\n}, \"de_ChangeCidrCollectionCommand\");\nvar de_ChangeResourceRecordSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_ChangeResourceRecordSetsCommand\");\nvar de_ChangeTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_ChangeTagsForResourceCommand\");\nvar de_CreateCidrCollectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Co] != null) {\n contents[_Co] = de_CidrCollection(data[_Co], context);\n }\n return contents;\n}, \"de_CreateCidrCollectionCommand\");\nvar de_CreateHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HC] != null) {\n contents[_HC] = de_HealthCheck(data[_HC], context);\n }\n return contents;\n}, \"de_CreateHealthCheckCommand\");\nvar de_CreateHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n if (data[_HZ] != null) {\n contents[_HZ] = de_HostedZone(data[_HZ], context);\n }\n if (data[_VPC] != null) {\n contents[_VPC] = de_VPC(data[_VPC], context);\n }\n return contents;\n}, \"de_CreateHostedZoneCommand\");\nvar de_CreateKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n if (data[_KSK] != null) {\n contents[_KSK] = de_KeySigningKey(data[_KSK], context);\n }\n return contents;\n}, \"de_CreateKeySigningKeyCommand\");\nvar de_CreateQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_QLC] != null) {\n contents[_QLC] = de_QueryLoggingConfig(data[_QLC], context);\n }\n return contents;\n}, \"de_CreateQueryLoggingConfigCommand\");\nvar de_CreateReusableDelegationSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n return contents;\n}, \"de_CreateReusableDelegationSetCommand\");\nvar de_CreateTrafficPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_CreateTrafficPolicyCommand\");\nvar de_CreateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIr] != null) {\n contents[_TPIr] = de_TrafficPolicyInstance(data[_TPIr], context);\n }\n return contents;\n}, \"de_CreateTrafficPolicyInstanceCommand\");\nvar de_CreateTrafficPolicyVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 201 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_l]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_CreateTrafficPolicyVersionCommand\");\nvar de_CreateVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(data[_HZI]);\n }\n if (data[_VPC] != null) {\n contents[_VPC] = de_VPC(data[_VPC], context);\n }\n return contents;\n}, \"de_CreateVPCAssociationAuthorizationCommand\");\nvar de_DeactivateKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DeactivateKeySigningKeyCommand\");\nvar de_DeleteCidrCollectionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteCidrCollectionCommand\");\nvar de_DeleteHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteHealthCheckCommand\");\nvar de_DeleteHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DeleteHostedZoneCommand\");\nvar de_DeleteKeySigningKeyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DeleteKeySigningKeyCommand\");\nvar de_DeleteQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteQueryLoggingConfigCommand\");\nvar de_DeleteReusableDelegationSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteReusableDelegationSetCommand\");\nvar de_DeleteTrafficPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteTrafficPolicyCommand\");\nvar de_DeleteTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteTrafficPolicyInstanceCommand\");\nvar de_DeleteVPCAssociationAuthorizationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteVPCAssociationAuthorizationCommand\");\nvar de_DisableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DisableHostedZoneDNSSECCommand\");\nvar de_DisassociateVPCFromHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_DisassociateVPCFromHostedZoneCommand\");\nvar de_EnableHostedZoneDNSSECCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_EnableHostedZoneDNSSECCommand\");\nvar de_GetAccountLimitCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseLong)(data[_Cou]);\n }\n if (data[_Li] != null) {\n contents[_Li] = de_AccountLimit(data[_Li], context);\n }\n return contents;\n}, \"de_GetAccountLimitCommand\");\nvar de_GetChangeCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CI] != null) {\n contents[_CI] = de_ChangeInfo(data[_CI], context);\n }\n return contents;\n}, \"de_GetChangeCommand\");\nvar de_GetCheckerIpRangesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CheckerIpRanges === \"\") {\n contents[_CIR] = [];\n } else if (data[_CIR] != null && data[_CIR][_me] != null) {\n contents[_CIR] = de_CheckerIpRanges((0, import_smithy_client.getArrayIfSingleItem)(data[_CIR][_me]), context);\n }\n return contents;\n}, \"de_GetCheckerIpRangesCommand\");\nvar de_GetDNSSECCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.KeySigningKeys === \"\") {\n contents[_KSKe] = [];\n } else if (data[_KSKe] != null && data[_KSKe][_me] != null) {\n contents[_KSKe] = de_KeySigningKeys((0, import_smithy_client.getArrayIfSingleItem)(data[_KSKe][_me]), context);\n }\n if (data[_S] != null) {\n contents[_S] = de_DNSSECStatus(data[_S], context);\n }\n return contents;\n}, \"de_GetDNSSECCommand\");\nvar de_GetGeoLocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_GLD] != null) {\n contents[_GLD] = de_GeoLocationDetails(data[_GLD], context);\n }\n return contents;\n}, \"de_GetGeoLocationCommand\");\nvar de_GetHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HC] != null) {\n contents[_HC] = de_HealthCheck(data[_HC], context);\n }\n return contents;\n}, \"de_GetHealthCheckCommand\");\nvar de_GetHealthCheckCountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HCCe] != null) {\n contents[_HCCe] = (0, import_smithy_client.strictParseLong)(data[_HCCe]);\n }\n return contents;\n}, \"de_GetHealthCheckCountCommand\");\nvar de_GetHealthCheckLastFailureReasonCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HealthCheckObservations === \"\") {\n contents[_HCO] = [];\n } else if (data[_HCO] != null && data[_HCO][_HCOe] != null) {\n contents[_HCO] = de_HealthCheckObservations((0, import_smithy_client.getArrayIfSingleItem)(data[_HCO][_HCOe]), context);\n }\n return contents;\n}, \"de_GetHealthCheckLastFailureReasonCommand\");\nvar de_GetHealthCheckStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HealthCheckObservations === \"\") {\n contents[_HCO] = [];\n } else if (data[_HCO] != null && data[_HCO][_HCOe] != null) {\n contents[_HCO] = de_HealthCheckObservations((0, import_smithy_client.getArrayIfSingleItem)(data[_HCO][_HCOe]), context);\n }\n return contents;\n}, \"de_GetHealthCheckStatusCommand\");\nvar de_GetHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n if (data[_HZ] != null) {\n contents[_HZ] = de_HostedZone(data[_HZ], context);\n }\n if (data.VPCs === \"\") {\n contents[_VPCs] = [];\n } else if (data[_VPCs] != null && data[_VPCs][_VPC] != null) {\n contents[_VPCs] = de_VPCs((0, import_smithy_client.getArrayIfSingleItem)(data[_VPCs][_VPC]), context);\n }\n return contents;\n}, \"de_GetHostedZoneCommand\");\nvar de_GetHostedZoneCountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZCo] != null) {\n contents[_HZCo] = (0, import_smithy_client.strictParseLong)(data[_HZCo]);\n }\n return contents;\n}, \"de_GetHostedZoneCountCommand\");\nvar de_GetHostedZoneLimitCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseLong)(data[_Cou]);\n }\n if (data[_Li] != null) {\n contents[_Li] = de_HostedZoneLimit(data[_Li], context);\n }\n return contents;\n}, \"de_GetHostedZoneLimitCommand\");\nvar de_GetQueryLoggingConfigCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_QLC] != null) {\n contents[_QLC] = de_QueryLoggingConfig(data[_QLC], context);\n }\n return contents;\n}, \"de_GetQueryLoggingConfigCommand\");\nvar de_GetReusableDelegationSetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DS] != null) {\n contents[_DS] = de_DelegationSet(data[_DS], context);\n }\n return contents;\n}, \"de_GetReusableDelegationSetCommand\");\nvar de_GetReusableDelegationSetLimitCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Cou] != null) {\n contents[_Cou] = (0, import_smithy_client.strictParseLong)(data[_Cou]);\n }\n if (data[_Li] != null) {\n contents[_Li] = de_ReusableDelegationSetLimit(data[_Li], context);\n }\n return contents;\n}, \"de_GetReusableDelegationSetLimitCommand\");\nvar de_GetTrafficPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_GetTrafficPolicyCommand\");\nvar de_GetTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIr] != null) {\n contents[_TPIr] = de_TrafficPolicyInstance(data[_TPIr], context);\n }\n return contents;\n}, \"de_GetTrafficPolicyInstanceCommand\");\nvar de_GetTrafficPolicyInstanceCountCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIC] != null) {\n contents[_TPIC] = (0, import_smithy_client.strictParseInt32)(data[_TPIC]);\n }\n return contents;\n}, \"de_GetTrafficPolicyInstanceCountCommand\");\nvar de_ListCidrBlocksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CidrBlocks === \"\") {\n contents[_CBi] = [];\n } else if (data[_CBi] != null && data[_CBi][_me] != null) {\n contents[_CBi] = de_CidrBlockSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_CBi][_me]), context);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListCidrBlocksCommand\");\nvar de_ListCidrCollectionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CidrCollections === \"\") {\n contents[_CCi] = [];\n } else if (data[_CCi] != null && data[_CCi][_me] != null) {\n contents[_CCi] = de_CollectionSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_CCi][_me]), context);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListCidrCollectionsCommand\");\nvar de_ListCidrLocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.CidrLocations === \"\") {\n contents[_CL] = [];\n } else if (data[_CL] != null && data[_CL][_me] != null) {\n contents[_CL] = de_LocationSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_CL][_me]), context);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListCidrLocationsCommand\");\nvar de_ListGeoLocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.GeoLocationDetailsList === \"\") {\n contents[_GLDL] = [];\n } else if (data[_GLDL] != null && data[_GLDL][_GLD] != null) {\n contents[_GLDL] = de_GeoLocationDetailsList((0, import_smithy_client.getArrayIfSingleItem)(data[_GLDL][_GLD]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NCC] != null) {\n contents[_NCC] = (0, import_smithy_client.expectString)(data[_NCC]);\n }\n if (data[_NCCe] != null) {\n contents[_NCCe] = (0, import_smithy_client.expectString)(data[_NCCe]);\n }\n if (data[_NSC] != null) {\n contents[_NSC] = (0, import_smithy_client.expectString)(data[_NSC]);\n }\n return contents;\n}, \"de_ListGeoLocationsCommand\");\nvar de_ListHealthChecksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HealthChecks === \"\") {\n contents[_HCe] = [];\n } else if (data[_HCe] != null && data[_HCe][_HC] != null) {\n contents[_HCe] = de_HealthChecks((0, import_smithy_client.getArrayIfSingleItem)(data[_HCe][_HC]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n return contents;\n}, \"de_ListHealthChecksCommand\");\nvar de_ListHostedZonesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HostedZones === \"\") {\n contents[_HZo] = [];\n } else if (data[_HZo] != null && data[_HZo][_HZ] != null) {\n contents[_HZo] = de_HostedZones((0, import_smithy_client.getArrayIfSingleItem)(data[_HZo][_HZ]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n return contents;\n}, \"de_ListHostedZonesCommand\");\nvar de_ListHostedZonesByNameCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_DNSN] != null) {\n contents[_DNSN] = (0, import_smithy_client.expectString)(data[_DNSN]);\n }\n if (data[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(data[_HZI]);\n }\n if (data.HostedZones === \"\") {\n contents[_HZo] = [];\n } else if (data[_HZo] != null && data[_HZo][_HZ] != null) {\n contents[_HZo] = de_HostedZones((0, import_smithy_client.getArrayIfSingleItem)(data[_HZo][_HZ]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NDNSN] != null) {\n contents[_NDNSN] = (0, import_smithy_client.expectString)(data[_NDNSN]);\n }\n if (data[_NHZI] != null) {\n contents[_NHZI] = (0, import_smithy_client.expectString)(data[_NHZI]);\n }\n return contents;\n}, \"de_ListHostedZonesByNameCommand\");\nvar de_ListHostedZonesByVPCCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.HostedZoneSummaries === \"\") {\n contents[_HZS] = [];\n } else if (data[_HZS] != null && data[_HZS][_HZSo] != null) {\n contents[_HZS] = de_HostedZoneSummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_HZS][_HZSo]), context);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n return contents;\n}, \"de_ListHostedZonesByVPCCommand\");\nvar de_ListQueryLoggingConfigsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n if (data.QueryLoggingConfigs === \"\") {\n contents[_QLCu] = [];\n } else if (data[_QLCu] != null && data[_QLCu][_QLC] != null) {\n contents[_QLCu] = de_QueryLoggingConfigs((0, import_smithy_client.getArrayIfSingleItem)(data[_QLCu][_QLC]), context);\n }\n return contents;\n}, \"de_ListQueryLoggingConfigsCommand\");\nvar de_ListResourceRecordSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NRI] != null) {\n contents[_NRI] = (0, import_smithy_client.expectString)(data[_NRI]);\n }\n if (data[_NRN] != null) {\n contents[_NRN] = (0, import_smithy_client.expectString)(data[_NRN]);\n }\n if (data[_NRT] != null) {\n contents[_NRT] = (0, import_smithy_client.expectString)(data[_NRT]);\n }\n if (data.ResourceRecordSets === \"\") {\n contents[_RRS] = [];\n } else if (data[_RRS] != null && data[_RRS][_RRSe] != null) {\n contents[_RRS] = de_ResourceRecordSets((0, import_smithy_client.getArrayIfSingleItem)(data[_RRS][_RRSe]), context);\n }\n return contents;\n}, \"de_ListResourceRecordSetsCommand\");\nvar de_ListReusableDelegationSetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.DelegationSets === \"\") {\n contents[_DSe] = [];\n } else if (data[_DSe] != null && data[_DSe][_DS] != null) {\n contents[_DSe] = de_DelegationSets((0, import_smithy_client.getArrayIfSingleItem)(data[_DSe][_DS]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n return contents;\n}, \"de_ListReusableDelegationSetsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_RTS] != null) {\n contents[_RTS] = de_ResourceTagSet(data[_RTS], context);\n }\n return contents;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ListTagsForResourcesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data.ResourceTagSets === \"\") {\n contents[_RTSe] = [];\n } else if (data[_RTSe] != null && data[_RTSe][_RTS] != null) {\n contents[_RTSe] = de_ResourceTagSetList((0, import_smithy_client.getArrayIfSingleItem)(data[_RTSe][_RTS]), context);\n }\n return contents;\n}, \"de_ListTagsForResourcesCommand\");\nvar de_ListTrafficPoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPIM] != null) {\n contents[_TPIM] = (0, import_smithy_client.expectString)(data[_TPIM]);\n }\n if (data.TrafficPolicySummaries === \"\") {\n contents[_TPS] = [];\n } else if (data[_TPS] != null && data[_TPS][_TPSr] != null) {\n contents[_TPS] = de_TrafficPolicySummaries((0, import_smithy_client.getArrayIfSingleItem)(data[_TPS][_TPSr]), context);\n }\n return contents;\n}, \"de_ListTrafficPoliciesCommand\");\nvar de_ListTrafficPolicyInstancesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZIM] != null) {\n contents[_HZIM] = (0, import_smithy_client.expectString)(data[_HZIM]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPINM] != null) {\n contents[_TPINM] = (0, import_smithy_client.expectString)(data[_TPINM]);\n }\n if (data[_TPITM] != null) {\n contents[_TPITM] = (0, import_smithy_client.expectString)(data[_TPITM]);\n }\n if (data.TrafficPolicyInstances === \"\") {\n contents[_TPIra] = [];\n } else if (data[_TPIra] != null && data[_TPIra][_TPIr] != null) {\n contents[_TPIra] = de_TrafficPolicyInstances((0, import_smithy_client.getArrayIfSingleItem)(data[_TPIra][_TPIr]), context);\n }\n return contents;\n}, \"de_ListTrafficPolicyInstancesCommand\");\nvar de_ListTrafficPolicyInstancesByHostedZoneCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPINM] != null) {\n contents[_TPINM] = (0, import_smithy_client.expectString)(data[_TPINM]);\n }\n if (data[_TPITM] != null) {\n contents[_TPITM] = (0, import_smithy_client.expectString)(data[_TPITM]);\n }\n if (data.TrafficPolicyInstances === \"\") {\n contents[_TPIra] = [];\n } else if (data[_TPIra] != null && data[_TPIra][_TPIr] != null) {\n contents[_TPIra] = de_TrafficPolicyInstances((0, import_smithy_client.getArrayIfSingleItem)(data[_TPIra][_TPIr]), context);\n }\n return contents;\n}, \"de_ListTrafficPolicyInstancesByHostedZoneCommand\");\nvar de_ListTrafficPolicyInstancesByPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZIM] != null) {\n contents[_HZIM] = (0, import_smithy_client.expectString)(data[_HZIM]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data[_TPINM] != null) {\n contents[_TPINM] = (0, import_smithy_client.expectString)(data[_TPINM]);\n }\n if (data[_TPITM] != null) {\n contents[_TPITM] = (0, import_smithy_client.expectString)(data[_TPITM]);\n }\n if (data.TrafficPolicyInstances === \"\") {\n contents[_TPIra] = [];\n } else if (data[_TPIra] != null && data[_TPIra][_TPIr] != null) {\n contents[_TPIra] = de_TrafficPolicyInstances((0, import_smithy_client.getArrayIfSingleItem)(data[_TPIra][_TPIr]), context);\n }\n return contents;\n}, \"de_ListTrafficPolicyInstancesByPolicyCommand\");\nvar de_ListTrafficPolicyVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_MI] != null) {\n contents[_MI] = (0, import_smithy_client.strictParseInt32)(data[_MI]);\n }\n if (data.TrafficPolicies === \"\") {\n contents[_TPr] = [];\n } else if (data[_TPr] != null && data[_TPr][_TP] != null) {\n contents[_TPr] = de_TrafficPolicies((0, import_smithy_client.getArrayIfSingleItem)(data[_TPr][_TP]), context);\n }\n if (data[_TPVM] != null) {\n contents[_TPVM] = (0, import_smithy_client.expectString)(data[_TPVM]);\n }\n return contents;\n}, \"de_ListTrafficPolicyVersionsCommand\");\nvar de_ListVPCAssociationAuthorizationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(data[_HZI]);\n }\n if (data[_NT] != null) {\n contents[_NT] = (0, import_smithy_client.expectString)(data[_NT]);\n }\n if (data.VPCs === \"\") {\n contents[_VPCs] = [];\n } else if (data[_VPCs] != null && data[_VPCs][_VPC] != null) {\n contents[_VPCs] = de_VPCs((0, import_smithy_client.getArrayIfSingleItem)(data[_VPCs][_VPC]), context);\n }\n return contents;\n}, \"de_ListVPCAssociationAuthorizationsCommand\");\nvar de_TestDNSAnswerCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Na] != null) {\n contents[_Na] = (0, import_smithy_client.expectString)(data[_Na]);\n }\n if (data[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(data[_Pr]);\n }\n if (data.RecordData === \"\") {\n contents[_RDe] = [];\n } else if (data[_RDe] != null && data[_RDe][_RDE] != null) {\n contents[_RDe] = de_RecordData((0, import_smithy_client.getArrayIfSingleItem)(data[_RDe][_RDE]), context);\n }\n if (data[_RN] != null) {\n contents[_RN] = (0, import_smithy_client.expectString)(data[_RN]);\n }\n if (data[_RT] != null) {\n contents[_RT] = (0, import_smithy_client.expectString)(data[_RT]);\n }\n if (data[_RC] != null) {\n contents[_RC] = (0, import_smithy_client.expectString)(data[_RC]);\n }\n return contents;\n}, \"de_TestDNSAnswerCommand\");\nvar de_UpdateHealthCheckCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HC] != null) {\n contents[_HC] = de_HealthCheck(data[_HC], context);\n }\n return contents;\n}, \"de_UpdateHealthCheckCommand\");\nvar de_UpdateHostedZoneCommentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_HZ] != null) {\n contents[_HZ] = de_HostedZone(data[_HZ], context);\n }\n return contents;\n}, \"de_UpdateHostedZoneCommentCommand\");\nvar de_UpdateTrafficPolicyCommentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TP] != null) {\n contents[_TP] = de_TrafficPolicy(data[_TP], context);\n }\n return contents;\n}, \"de_UpdateTrafficPolicyCommentCommand\");\nvar de_UpdateTrafficPolicyInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseXmlBody)(output.body, context)), \"body\");\n if (data[_TPIr] != null) {\n contents[_TPIr] = de_TrafficPolicyInstance(data[_TPIr], context);\n }\n return contents;\n}, \"de_UpdateTrafficPolicyInstanceCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestXmlErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModification\":\n case \"com.amazonaws.route53#ConcurrentModification\":\n throw await de_ConcurrentModificationRes(parsedOutput, context);\n case \"InvalidInput\":\n case \"com.amazonaws.route53#InvalidInput\":\n throw await de_InvalidInputRes(parsedOutput, context);\n case \"InvalidKMSArn\":\n case \"com.amazonaws.route53#InvalidKMSArn\":\n throw await de_InvalidKMSArnRes(parsedOutput, context);\n case \"InvalidKeySigningKeyStatus\":\n case \"com.amazonaws.route53#InvalidKeySigningKeyStatus\":\n throw await de_InvalidKeySigningKeyStatusRes(parsedOutput, context);\n case \"InvalidSigningStatus\":\n case \"com.amazonaws.route53#InvalidSigningStatus\":\n throw await de_InvalidSigningStatusRes(parsedOutput, context);\n case \"NoSuchKeySigningKey\":\n case \"com.amazonaws.route53#NoSuchKeySigningKey\":\n throw await de_NoSuchKeySigningKeyRes(parsedOutput, context);\n case \"ConflictingDomainExists\":\n case \"com.amazonaws.route53#ConflictingDomainExists\":\n throw await de_ConflictingDomainExistsRes(parsedOutput, context);\n case \"InvalidVPCId\":\n case \"com.amazonaws.route53#InvalidVPCId\":\n throw await de_InvalidVPCIdRes(parsedOutput, context);\n case \"LimitsExceeded\":\n case \"com.amazonaws.route53#LimitsExceeded\":\n throw await de_LimitsExceededRes(parsedOutput, context);\n case \"NoSuchHostedZone\":\n case \"com.amazonaws.route53#NoSuchHostedZone\":\n throw await de_NoSuchHostedZoneRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.route53#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PriorRequestNotComplete\":\n case \"com.amazonaws.route53#PriorRequestNotComplete\":\n throw await de_PriorRequestNotCompleteRes(parsedOutput, context);\n case \"PublicZoneVPCAssociation\":\n case \"com.amazonaws.route53#PublicZoneVPCAssociation\":\n throw await de_PublicZoneVPCAssociationRes(parsedOutput, context);\n case \"CidrBlockInUseException\":\n case \"com.amazonaws.route53#CidrBlockInUseException\":\n throw await de_CidrBlockInUseExceptionRes(parsedOutput, context);\n case \"CidrCollectionVersionMismatchException\":\n case \"com.amazonaws.route53#CidrCollectionVersionMismatchException\":\n throw await de_CidrCollectionVersionMismatchExceptionRes(parsedOutput, context);\n case \"NoSuchCidrCollectionException\":\n case \"com.amazonaws.route53#NoSuchCidrCollectionException\":\n throw await de_NoSuchCidrCollectionExceptionRes(parsedOutput, context);\n case \"InvalidChangeBatch\":\n case \"com.amazonaws.route53#InvalidChangeBatch\":\n throw await de_InvalidChangeBatchRes(parsedOutput, context);\n case \"NoSuchHealthCheck\":\n case \"com.amazonaws.route53#NoSuchHealthCheck\":\n throw await de_NoSuchHealthCheckRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.route53#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"CidrCollectionAlreadyExistsException\":\n case \"com.amazonaws.route53#CidrCollectionAlreadyExistsException\":\n throw await de_CidrCollectionAlreadyExistsExceptionRes(parsedOutput, context);\n case \"HealthCheckAlreadyExists\":\n case \"com.amazonaws.route53#HealthCheckAlreadyExists\":\n throw await de_HealthCheckAlreadyExistsRes(parsedOutput, context);\n case \"TooManyHealthChecks\":\n case \"com.amazonaws.route53#TooManyHealthChecks\":\n throw await de_TooManyHealthChecksRes(parsedOutput, context);\n case \"DelegationSetNotAvailable\":\n case \"com.amazonaws.route53#DelegationSetNotAvailable\":\n throw await de_DelegationSetNotAvailableRes(parsedOutput, context);\n case \"DelegationSetNotReusable\":\n case \"com.amazonaws.route53#DelegationSetNotReusable\":\n throw await de_DelegationSetNotReusableRes(parsedOutput, context);\n case \"HostedZoneAlreadyExists\":\n case \"com.amazonaws.route53#HostedZoneAlreadyExists\":\n throw await de_HostedZoneAlreadyExistsRes(parsedOutput, context);\n case \"InvalidDomainName\":\n case \"com.amazonaws.route53#InvalidDomainName\":\n throw await de_InvalidDomainNameRes(parsedOutput, context);\n case \"NoSuchDelegationSet\":\n case \"com.amazonaws.route53#NoSuchDelegationSet\":\n throw await de_NoSuchDelegationSetRes(parsedOutput, context);\n case \"TooManyHostedZones\":\n case \"com.amazonaws.route53#TooManyHostedZones\":\n throw await de_TooManyHostedZonesRes(parsedOutput, context);\n case \"InvalidArgument\":\n case \"com.amazonaws.route53#InvalidArgument\":\n throw await de_InvalidArgumentRes(parsedOutput, context);\n case \"InvalidKeySigningKeyName\":\n case \"com.amazonaws.route53#InvalidKeySigningKeyName\":\n throw await de_InvalidKeySigningKeyNameRes(parsedOutput, context);\n case \"KeySigningKeyAlreadyExists\":\n case \"com.amazonaws.route53#KeySigningKeyAlreadyExists\":\n throw await de_KeySigningKeyAlreadyExistsRes(parsedOutput, context);\n case \"TooManyKeySigningKeys\":\n case \"com.amazonaws.route53#TooManyKeySigningKeys\":\n throw await de_TooManyKeySigningKeysRes(parsedOutput, context);\n case \"InsufficientCloudWatchLogsResourcePolicy\":\n case \"com.amazonaws.route53#InsufficientCloudWatchLogsResourcePolicy\":\n throw await de_InsufficientCloudWatchLogsResourcePolicyRes(parsedOutput, context);\n case \"NoSuchCloudWatchLogsLogGroup\":\n case \"com.amazonaws.route53#NoSuchCloudWatchLogsLogGroup\":\n throw await de_NoSuchCloudWatchLogsLogGroupRes(parsedOutput, context);\n case \"QueryLoggingConfigAlreadyExists\":\n case \"com.amazonaws.route53#QueryLoggingConfigAlreadyExists\":\n throw await de_QueryLoggingConfigAlreadyExistsRes(parsedOutput, context);\n case \"DelegationSetAlreadyCreated\":\n case \"com.amazonaws.route53#DelegationSetAlreadyCreated\":\n throw await de_DelegationSetAlreadyCreatedRes(parsedOutput, context);\n case \"DelegationSetAlreadyReusable\":\n case \"com.amazonaws.route53#DelegationSetAlreadyReusable\":\n throw await de_DelegationSetAlreadyReusableRes(parsedOutput, context);\n case \"HostedZoneNotFound\":\n case \"com.amazonaws.route53#HostedZoneNotFound\":\n throw await de_HostedZoneNotFoundRes(parsedOutput, context);\n case \"InvalidTrafficPolicyDocument\":\n case \"com.amazonaws.route53#InvalidTrafficPolicyDocument\":\n throw await de_InvalidTrafficPolicyDocumentRes(parsedOutput, context);\n case \"TooManyTrafficPolicies\":\n case \"com.amazonaws.route53#TooManyTrafficPolicies\":\n throw await de_TooManyTrafficPoliciesRes(parsedOutput, context);\n case \"TrafficPolicyAlreadyExists\":\n case \"com.amazonaws.route53#TrafficPolicyAlreadyExists\":\n throw await de_TrafficPolicyAlreadyExistsRes(parsedOutput, context);\n case \"NoSuchTrafficPolicy\":\n case \"com.amazonaws.route53#NoSuchTrafficPolicy\":\n throw await de_NoSuchTrafficPolicyRes(parsedOutput, context);\n case \"TooManyTrafficPolicyInstances\":\n case \"com.amazonaws.route53#TooManyTrafficPolicyInstances\":\n throw await de_TooManyTrafficPolicyInstancesRes(parsedOutput, context);\n case \"TrafficPolicyInstanceAlreadyExists\":\n case \"com.amazonaws.route53#TrafficPolicyInstanceAlreadyExists\":\n throw await de_TrafficPolicyInstanceAlreadyExistsRes(parsedOutput, context);\n case \"TooManyTrafficPolicyVersionsForCurrentPolicy\":\n case \"com.amazonaws.route53#TooManyTrafficPolicyVersionsForCurrentPolicy\":\n throw await de_TooManyTrafficPolicyVersionsForCurrentPolicyRes(parsedOutput, context);\n case \"TooManyVPCAssociationAuthorizations\":\n case \"com.amazonaws.route53#TooManyVPCAssociationAuthorizations\":\n throw await de_TooManyVPCAssociationAuthorizationsRes(parsedOutput, context);\n case \"KeySigningKeyInParentDSRecord\":\n case \"com.amazonaws.route53#KeySigningKeyInParentDSRecord\":\n throw await de_KeySigningKeyInParentDSRecordRes(parsedOutput, context);\n case \"KeySigningKeyInUse\":\n case \"com.amazonaws.route53#KeySigningKeyInUse\":\n throw await de_KeySigningKeyInUseRes(parsedOutput, context);\n case \"CidrCollectionInUseException\":\n case \"com.amazonaws.route53#CidrCollectionInUseException\":\n throw await de_CidrCollectionInUseExceptionRes(parsedOutput, context);\n case \"HealthCheckInUse\":\n case \"com.amazonaws.route53#HealthCheckInUse\":\n throw await de_HealthCheckInUseRes(parsedOutput, context);\n case \"HostedZoneNotEmpty\":\n case \"com.amazonaws.route53#HostedZoneNotEmpty\":\n throw await de_HostedZoneNotEmptyRes(parsedOutput, context);\n case \"NoSuchQueryLoggingConfig\":\n case \"com.amazonaws.route53#NoSuchQueryLoggingConfig\":\n throw await de_NoSuchQueryLoggingConfigRes(parsedOutput, context);\n case \"DelegationSetInUse\":\n case \"com.amazonaws.route53#DelegationSetInUse\":\n throw await de_DelegationSetInUseRes(parsedOutput, context);\n case \"TrafficPolicyInUse\":\n case \"com.amazonaws.route53#TrafficPolicyInUse\":\n throw await de_TrafficPolicyInUseRes(parsedOutput, context);\n case \"NoSuchTrafficPolicyInstance\":\n case \"com.amazonaws.route53#NoSuchTrafficPolicyInstance\":\n throw await de_NoSuchTrafficPolicyInstanceRes(parsedOutput, context);\n case \"VPCAssociationAuthorizationNotFound\":\n case \"com.amazonaws.route53#VPCAssociationAuthorizationNotFound\":\n throw await de_VPCAssociationAuthorizationNotFoundRes(parsedOutput, context);\n case \"DNSSECNotFound\":\n case \"com.amazonaws.route53#DNSSECNotFound\":\n throw await de_DNSSECNotFoundRes(parsedOutput, context);\n case \"LastVPCAssociation\":\n case \"com.amazonaws.route53#LastVPCAssociation\":\n throw await de_LastVPCAssociationRes(parsedOutput, context);\n case \"VPCAssociationNotFound\":\n case \"com.amazonaws.route53#VPCAssociationNotFound\":\n throw await de_VPCAssociationNotFoundRes(parsedOutput, context);\n case \"HostedZonePartiallyDelegated\":\n case \"com.amazonaws.route53#HostedZonePartiallyDelegated\":\n throw await de_HostedZonePartiallyDelegatedRes(parsedOutput, context);\n case \"KeySigningKeyWithActiveStatusNotFound\":\n case \"com.amazonaws.route53#KeySigningKeyWithActiveStatusNotFound\":\n throw await de_KeySigningKeyWithActiveStatusNotFoundRes(parsedOutput, context);\n case \"NoSuchChange\":\n case \"com.amazonaws.route53#NoSuchChange\":\n throw await de_NoSuchChangeRes(parsedOutput, context);\n case \"NoSuchGeoLocation\":\n case \"com.amazonaws.route53#NoSuchGeoLocation\":\n throw await de_NoSuchGeoLocationRes(parsedOutput, context);\n case \"IncompatibleVersion\":\n case \"com.amazonaws.route53#IncompatibleVersion\":\n throw await de_IncompatibleVersionRes(parsedOutput, context);\n case \"HostedZoneNotPrivate\":\n case \"com.amazonaws.route53#HostedZoneNotPrivate\":\n throw await de_HostedZoneNotPrivateRes(parsedOutput, context);\n case \"NoSuchCidrLocationException\":\n case \"com.amazonaws.route53#NoSuchCidrLocationException\":\n throw await de_NoSuchCidrLocationExceptionRes(parsedOutput, context);\n case \"InvalidPaginationToken\":\n case \"com.amazonaws.route53#InvalidPaginationToken\":\n throw await de_InvalidPaginationTokenRes(parsedOutput, context);\n case \"HealthCheckVersionMismatch\":\n case \"com.amazonaws.route53#HealthCheckVersionMismatch\":\n throw await de_HealthCheckVersionMismatchRes(parsedOutput, context);\n case \"ConflictingTypes\":\n case \"com.amazonaws.route53#ConflictingTypes\":\n throw await de_ConflictingTypesRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(Route53ServiceException);\nvar de_CidrBlockInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrBlockInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrBlockInUseExceptionRes\");\nvar de_CidrCollectionAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrCollectionAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrCollectionAlreadyExistsExceptionRes\");\nvar de_CidrCollectionInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrCollectionInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrCollectionInUseExceptionRes\");\nvar de_CidrCollectionVersionMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new CidrCollectionVersionMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_CidrCollectionVersionMismatchExceptionRes\");\nvar de_ConcurrentModificationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ConcurrentModification({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ConcurrentModificationRes\");\nvar de_ConflictingDomainExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ConflictingDomainExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ConflictingDomainExistsRes\");\nvar de_ConflictingTypesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ConflictingTypes({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ConflictingTypesRes\");\nvar de_DelegationSetAlreadyCreatedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetAlreadyCreated({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetAlreadyCreatedRes\");\nvar de_DelegationSetAlreadyReusableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetAlreadyReusable({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetAlreadyReusableRes\");\nvar de_DelegationSetInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetInUseRes\");\nvar de_DelegationSetNotAvailableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetNotAvailable({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetNotAvailableRes\");\nvar de_DelegationSetNotReusableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DelegationSetNotReusable({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DelegationSetNotReusableRes\");\nvar de_DNSSECNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new DNSSECNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_DNSSECNotFoundRes\");\nvar de_HealthCheckAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HealthCheckAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HealthCheckAlreadyExistsRes\");\nvar de_HealthCheckInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HealthCheckInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HealthCheckInUseRes\");\nvar de_HealthCheckVersionMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HealthCheckVersionMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HealthCheckVersionMismatchRes\");\nvar de_HostedZoneAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneAlreadyExistsRes\");\nvar de_HostedZoneNotEmptyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneNotEmpty({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneNotEmptyRes\");\nvar de_HostedZoneNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneNotFoundRes\");\nvar de_HostedZoneNotPrivateRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZoneNotPrivate({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZoneNotPrivateRes\");\nvar de_HostedZonePartiallyDelegatedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new HostedZonePartiallyDelegated({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_HostedZonePartiallyDelegatedRes\");\nvar de_IncompatibleVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new IncompatibleVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_IncompatibleVersionRes\");\nvar de_InsufficientCloudWatchLogsResourcePolicyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InsufficientCloudWatchLogsResourcePolicy({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InsufficientCloudWatchLogsResourcePolicyRes\");\nvar de_InvalidArgumentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidArgument({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidArgumentRes\");\nvar de_InvalidChangeBatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n if (data.messages === \"\") {\n contents[_mess] = [];\n } else if (data[_mess] != null && data[_mess][_Me] != null) {\n contents[_mess] = de_ErrorMessages((0, import_smithy_client.getArrayIfSingleItem)(data[_mess][_Me]), context);\n }\n const exception = new InvalidChangeBatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidChangeBatchRes\");\nvar de_InvalidDomainNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidDomainName({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidDomainNameRes\");\nvar de_InvalidInputRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidInput({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidInputRes\");\nvar de_InvalidKeySigningKeyNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidKeySigningKeyName({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidKeySigningKeyNameRes\");\nvar de_InvalidKeySigningKeyStatusRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidKeySigningKeyStatus({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidKeySigningKeyStatusRes\");\nvar de_InvalidKMSArnRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidKMSArn({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidKMSArnRes\");\nvar de_InvalidPaginationTokenRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidPaginationToken({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidPaginationTokenRes\");\nvar de_InvalidSigningStatusRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidSigningStatus({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidSigningStatusRes\");\nvar de_InvalidTrafficPolicyDocumentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidTrafficPolicyDocument({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidTrafficPolicyDocumentRes\");\nvar de_InvalidVPCIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new InvalidVPCId({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_InvalidVPCIdRes\");\nvar de_KeySigningKeyAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyAlreadyExistsRes\");\nvar de_KeySigningKeyInParentDSRecordRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyInParentDSRecord({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyInParentDSRecordRes\");\nvar de_KeySigningKeyInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyInUseRes\");\nvar de_KeySigningKeyWithActiveStatusNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new KeySigningKeyWithActiveStatusNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_KeySigningKeyWithActiveStatusNotFoundRes\");\nvar de_LastVPCAssociationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new LastVPCAssociation({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_LastVPCAssociationRes\");\nvar de_LimitsExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new LimitsExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_LimitsExceededRes\");\nvar de_NoSuchChangeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchChange({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchChangeRes\");\nvar de_NoSuchCidrCollectionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new NoSuchCidrCollectionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchCidrCollectionExceptionRes\");\nvar de_NoSuchCidrLocationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(data[_Me]);\n }\n const exception = new NoSuchCidrLocationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchCidrLocationExceptionRes\");\nvar de_NoSuchCloudWatchLogsLogGroupRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchCloudWatchLogsLogGroup({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchCloudWatchLogsLogGroupRes\");\nvar de_NoSuchDelegationSetRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchDelegationSet({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchDelegationSetRes\");\nvar de_NoSuchGeoLocationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchGeoLocation({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchGeoLocationRes\");\nvar de_NoSuchHealthCheckRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchHealthCheck({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchHealthCheckRes\");\nvar de_NoSuchHostedZoneRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchHostedZone({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchHostedZoneRes\");\nvar de_NoSuchKeySigningKeyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchKeySigningKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchKeySigningKeyRes\");\nvar de_NoSuchQueryLoggingConfigRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchQueryLoggingConfig({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchQueryLoggingConfigRes\");\nvar de_NoSuchTrafficPolicyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchTrafficPolicy({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchTrafficPolicyRes\");\nvar de_NoSuchTrafficPolicyInstanceRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NoSuchTrafficPolicyInstance({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NoSuchTrafficPolicyInstanceRes\");\nvar de_NotAuthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new NotAuthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_NotAuthorizedExceptionRes\");\nvar de_PriorRequestNotCompleteRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new PriorRequestNotComplete({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_PriorRequestNotCompleteRes\");\nvar de_PublicZoneVPCAssociationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new PublicZoneVPCAssociation({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_PublicZoneVPCAssociationRes\");\nvar de_QueryLoggingConfigAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new QueryLoggingConfigAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_QueryLoggingConfigAlreadyExistsRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TooManyHealthChecksRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyHealthChecks({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyHealthChecksRes\");\nvar de_TooManyHostedZonesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyHostedZones({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyHostedZonesRes\");\nvar de_TooManyKeySigningKeysRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyKeySigningKeys({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyKeySigningKeysRes\");\nvar de_TooManyTrafficPoliciesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyTrafficPolicies({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyTrafficPoliciesRes\");\nvar de_TooManyTrafficPolicyInstancesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyTrafficPolicyInstances({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyTrafficPolicyInstancesRes\");\nvar de_TooManyTrafficPolicyVersionsForCurrentPolicyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyTrafficPolicyVersionsForCurrentPolicy({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyTrafficPolicyVersionsForCurrentPolicyRes\");\nvar de_TooManyVPCAssociationAuthorizationsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TooManyVPCAssociationAuthorizations({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TooManyVPCAssociationAuthorizationsRes\");\nvar de_TrafficPolicyAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TrafficPolicyAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TrafficPolicyAlreadyExistsRes\");\nvar de_TrafficPolicyInstanceAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TrafficPolicyInstanceAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TrafficPolicyInstanceAlreadyExistsRes\");\nvar de_TrafficPolicyInUseRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new TrafficPolicyInUse({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_TrafficPolicyInUseRes\");\nvar de_VPCAssociationAuthorizationNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new VPCAssociationAuthorizationNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_VPCAssociationAuthorizationNotFoundRes\");\nvar de_VPCAssociationNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body.Error;\n if (data[_mes] != null) {\n contents[_mes] = (0, import_smithy_client.expectString)(data[_mes]);\n }\n const exception = new VPCAssociationNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body.Error);\n}, \"de_VPCAssociationNotFoundRes\");\nvar se_AlarmIdentifier = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AI);\n if (input[_Re] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CWR, input[_Re]).n(_Re));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AN, input[_N]).n(_N));\n }\n return bn;\n}, \"se_AlarmIdentifier\");\nvar se_AliasTarget = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ATl);\n if (input[_HZI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RI, input[_HZI]).n(_HZI));\n }\n bn.cc(input, _DNSN);\n if (input[_ETH] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AHE, String(input[_ETH])).n(_ETH));\n }\n return bn;\n}, \"se_AliasTarget\");\nvar se_Change = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Cha);\n if (input[_A] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CA, input[_A]).n(_A));\n }\n if (input[_RRSe] != null) {\n bn.c(se_ResourceRecordSet(input[_RRSe], context).n(_RRSe));\n }\n return bn;\n}, \"se_Change\");\nvar se_ChangeBatch = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CB);\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RD, input[_C]).n(_C));\n }\n bn.lc(input, \"Changes\", \"Changes\", () => se_Changes(input[_Ch], context));\n return bn;\n}, \"se_ChangeBatch\");\nvar se_Changes = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Change(entry, context);\n return n.n(_Cha);\n });\n}, \"se_Changes\");\nvar se_ChildHealthCheckList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_HCI, entry);\n return n.n(_CHCh);\n });\n}, \"se_ChildHealthCheckList\");\nvar se_CidrCollectionChange = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CCC);\n if (input[_LN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CLNDNA, input[_LN]).n(_LN));\n }\n if (input[_A] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CCCA, input[_A]).n(_A));\n }\n bn.lc(input, \"CidrList\", \"CidrList\", () => se_CidrList(input[_CLi], context));\n return bn;\n}, \"se_CidrCollectionChange\");\nvar se_CidrCollectionChanges = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_CidrCollectionChange(entry, context);\n return n.n(_me);\n });\n}, \"se_CidrCollectionChanges\");\nvar se_CidrList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_Ci, entry);\n return n.n(_Ci);\n });\n}, \"se_CidrList\");\nvar se_CidrRoutingConfig = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CRC);\n if (input[_CIo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_UUID, input[_CIo]).n(_CIo));\n }\n if (input[_LN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_CLNDA, input[_LN]).n(_LN));\n }\n return bn;\n}, \"se_CidrRoutingConfig\");\nvar se_Coordinates = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Coo);\n bn.cc(input, _La);\n bn.cc(input, _Lo);\n return bn;\n}, \"se_Coordinates\");\nvar se_GeoLocation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_GL);\n if (input[_CC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_GLCC, input[_CC]).n(_CC));\n }\n if (input[_CCo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_GLCCe, input[_CCo]).n(_CCo));\n }\n if (input[_SC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_GLSC, input[_SC]).n(_SC));\n }\n return bn;\n}, \"se_GeoLocation\");\nvar se_GeoProximityLocation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_GPL);\n bn.cc(input, _AWSR);\n bn.cc(input, _LZG);\n if (input[_Coo] != null) {\n bn.c(se_Coordinates(input[_Coo], context).n(_Coo));\n }\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_B, String(input[_B])).n(_B));\n }\n return bn;\n}, \"se_GeoProximityLocation\");\nvar se_HealthCheckConfig = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_HCC);\n bn.cc(input, _IPA);\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, String(input[_P])).n(_P));\n }\n if (input[_T] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HCT, input[_T]).n(_T));\n }\n bn.cc(input, _RP);\n bn.cc(input, _FQDN);\n bn.cc(input, _SS);\n if (input[_RIeq] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RIeq, String(input[_RIeq])).n(_RIeq));\n }\n if (input[_FT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FT, String(input[_FT])).n(_FT));\n }\n if (input[_ML] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ML, String(input[_ML])).n(_ML));\n }\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_I, String(input[_I])).n(_I));\n }\n if (input[_Di] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Di, String(input[_Di])).n(_Di));\n }\n if (input[_HT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_HT, String(input[_HT])).n(_HT));\n }\n bn.lc(input, \"ChildHealthChecks\", \"ChildHealthChecks\", () => se_ChildHealthCheckList(input[_CHC], context));\n if (input[_ESNI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESNI, String(input[_ESNI])).n(_ESNI));\n }\n bn.lc(input, \"Regions\", \"Regions\", () => se_HealthCheckRegionList(input[_R], context));\n if (input[_AI] != null) {\n bn.c(se_AlarmIdentifier(input[_AI], context).n(_AI));\n }\n bn.cc(input, _IDHS);\n bn.cc(input, _RCA);\n return bn;\n}, \"se_HealthCheckConfig\");\nvar se_HealthCheckRegionList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_HCR, entry);\n return n.n(_Re);\n });\n}, \"se_HealthCheckRegionList\");\nvar se_HostedZoneConfig = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_HZC);\n if (input[_C] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RD, input[_C]).n(_C));\n }\n if (input[_PZ] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IPZ, String(input[_PZ])).n(_PZ));\n }\n return bn;\n}, \"se_HostedZoneConfig\");\nvar se_ResettableElementNameList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_REN, entry);\n return n.n(_REN);\n });\n}, \"se_ResettableElementNameList\");\nvar se_ResourceRecord = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RR);\n if (input[_V] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RDa, input[_V]).n(_V));\n }\n return bn;\n}, \"se_ResourceRecord\");\nvar se_ResourceRecords = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ResourceRecord(entry, context);\n return n.n(_RR);\n });\n}, \"se_ResourceRecords\");\nvar se_ResourceRecordSet = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRSe);\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DNSN, input[_N]).n(_N));\n }\n if (input[_T] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRT, input[_T]).n(_T));\n }\n if (input[_SI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSI, input[_SI]).n(_SI));\n }\n if (input[_W] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSW, String(input[_W])).n(_W));\n }\n if (input[_Re] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSR, input[_Re]).n(_Re));\n }\n if (input[_GL] != null) {\n bn.c(se_GeoLocation(input[_GL], context).n(_GL));\n }\n if (input[_F] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSF, input[_F]).n(_F));\n }\n if (input[_MVA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRSMVA, String(input[_MVA])).n(_MVA));\n }\n if (input[_TTL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TTL, String(input[_TTL])).n(_TTL));\n }\n bn.lc(input, \"ResourceRecords\", \"ResourceRecords\", () => se_ResourceRecords(input[_RRe], context));\n if (input[_ATl] != null) {\n bn.c(se_AliasTarget(input[_ATl], context).n(_ATl));\n }\n bn.cc(input, _HCI);\n bn.cc(input, _TPII);\n if (input[_CRC] != null) {\n bn.c(se_CidrRoutingConfig(input[_CRC], context).n(_CRC));\n }\n if (input[_GPL] != null) {\n bn.c(se_GeoProximityLocation(input[_GPL], context).n(_GPL));\n }\n return bn;\n}, \"se_ResourceRecordSet\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Ta);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TK, input[_K]).n(_K));\n }\n if (input[_V] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TV, input[_V]).n(_V));\n }\n return bn;\n}, \"se_Tag\");\nvar se_TagKeyList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_TK, entry);\n return n.n(_K);\n });\n}, \"se_TagKeyList\");\nvar se_TagList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Tag(entry, context);\n return n.n(_Ta);\n });\n}, \"se_TagList\");\nvar se_TagResourceIdList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_TRI, entry);\n return n.n(_RI);\n });\n}, \"se_TagResourceIdList\");\nvar se_VPC = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_VPC);\n bn.cc(input, _VPCR);\n bn.cc(input, _VPCI);\n return bn;\n}, \"se_VPC\");\nvar de_AccountLimit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_V]);\n }\n return contents;\n}, \"de_AccountLimit\");\nvar de_AlarmIdentifier = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n return contents;\n}, \"de_AlarmIdentifier\");\nvar de_AliasTarget = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_DNSN] != null) {\n contents[_DNSN] = (0, import_smithy_client.expectString)(output[_DNSN]);\n }\n if (output[_ETH] != null) {\n contents[_ETH] = (0, import_smithy_client.parseBoolean)(output[_ETH]);\n }\n return contents;\n}, \"de_AliasTarget\");\nvar de_ChangeInfo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_SA] != null) {\n contents[_SA] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_SA]));\n }\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n return contents;\n}, \"de_ChangeInfo\");\nvar de_CheckerIpRanges = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_CheckerIpRanges\");\nvar de_ChildHealthCheckList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ChildHealthCheckList\");\nvar de_CidrBlockSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CidrBlockSummary(entry, context);\n });\n}, \"de_CidrBlockSummaries\");\nvar de_CidrBlockSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CBid] != null) {\n contents[_CBid] = (0, import_smithy_client.expectString)(output[_CBid]);\n }\n if (output[_LN] != null) {\n contents[_LN] = (0, import_smithy_client.expectString)(output[_LN]);\n }\n return contents;\n}, \"de_CidrBlockSummary\");\nvar de_CidrCollection = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Ve] != null) {\n contents[_Ve] = (0, import_smithy_client.strictParseLong)(output[_Ve]);\n }\n return contents;\n}, \"de_CidrCollection\");\nvar de_CidrRoutingConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CIo] != null) {\n contents[_CIo] = (0, import_smithy_client.expectString)(output[_CIo]);\n }\n if (output[_LN] != null) {\n contents[_LN] = (0, import_smithy_client.expectString)(output[_LN]);\n }\n return contents;\n}, \"de_CidrRoutingConfig\");\nvar de_CloudWatchAlarmConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EP] != null) {\n contents[_EP] = (0, import_smithy_client.strictParseInt32)(output[_EP]);\n }\n if (output[_Th] != null) {\n contents[_Th] = (0, import_smithy_client.strictParseFloat)(output[_Th]);\n }\n if (output[_CO] != null) {\n contents[_CO] = (0, import_smithy_client.expectString)(output[_CO]);\n }\n if (output[_Pe] != null) {\n contents[_Pe] = (0, import_smithy_client.strictParseInt32)(output[_Pe]);\n }\n if (output[_MN] != null) {\n contents[_MN] = (0, import_smithy_client.expectString)(output[_MN]);\n }\n if (output[_Nam] != null) {\n contents[_Nam] = (0, import_smithy_client.expectString)(output[_Nam]);\n }\n if (output[_St] != null) {\n contents[_St] = (0, import_smithy_client.expectString)(output[_St]);\n }\n if (output.Dimensions === \"\") {\n contents[_Dim] = [];\n } else if (output[_Dim] != null && output[_Dim][_Dime] != null) {\n contents[_Dim] = de_DimensionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Dim][_Dime]), context);\n }\n return contents;\n}, \"de_CloudWatchAlarmConfiguration\");\nvar de_CollectionSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CollectionSummary(entry, context);\n });\n}, \"de_CollectionSummaries\");\nvar de_CollectionSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Ve] != null) {\n contents[_Ve] = (0, import_smithy_client.strictParseLong)(output[_Ve]);\n }\n return contents;\n}, \"de_CollectionSummary\");\nvar de_Coordinates = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_La] != null) {\n contents[_La] = (0, import_smithy_client.expectString)(output[_La]);\n }\n if (output[_Lo] != null) {\n contents[_Lo] = (0, import_smithy_client.expectString)(output[_Lo]);\n }\n return contents;\n}, \"de_Coordinates\");\nvar de_DelegationSet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_CR] != null) {\n contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]);\n }\n if (output.NameServers === \"\") {\n contents[_NS] = [];\n } else if (output[_NS] != null && output[_NS][_NSa] != null) {\n contents[_NS] = de_DelegationSetNameServers((0, import_smithy_client.getArrayIfSingleItem)(output[_NS][_NSa]), context);\n }\n return contents;\n}, \"de_DelegationSet\");\nvar de_DelegationSetNameServers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_DelegationSetNameServers\");\nvar de_DelegationSets = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DelegationSet(entry, context);\n });\n}, \"de_DelegationSets\");\nvar de_Dimension = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_V]);\n }\n return contents;\n}, \"de_Dimension\");\nvar de_DimensionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Dimension(entry, context);\n });\n}, \"de_DimensionList\");\nvar de_DNSSECStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSe] != null) {\n contents[_SSe] = (0, import_smithy_client.expectString)(output[_SSe]);\n }\n if (output[_SM] != null) {\n contents[_SM] = (0, import_smithy_client.expectString)(output[_SM]);\n }\n return contents;\n}, \"de_DNSSECStatus\");\nvar de_ErrorMessages = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ErrorMessages\");\nvar de_GeoLocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CC] != null) {\n contents[_CC] = (0, import_smithy_client.expectString)(output[_CC]);\n }\n if (output[_CCo] != null) {\n contents[_CCo] = (0, import_smithy_client.expectString)(output[_CCo]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n return contents;\n}, \"de_GeoLocation\");\nvar de_GeoLocationDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CC] != null) {\n contents[_CC] = (0, import_smithy_client.expectString)(output[_CC]);\n }\n if (output[_CNon] != null) {\n contents[_CNon] = (0, import_smithy_client.expectString)(output[_CNon]);\n }\n if (output[_CCo] != null) {\n contents[_CCo] = (0, import_smithy_client.expectString)(output[_CCo]);\n }\n if (output[_CNou] != null) {\n contents[_CNou] = (0, import_smithy_client.expectString)(output[_CNou]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_SN] != null) {\n contents[_SN] = (0, import_smithy_client.expectString)(output[_SN]);\n }\n return contents;\n}, \"de_GeoLocationDetails\");\nvar de_GeoLocationDetailsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_GeoLocationDetails(entry, context);\n });\n}, \"de_GeoLocationDetailsList\");\nvar de_GeoProximityLocation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AWSR] != null) {\n contents[_AWSR] = (0, import_smithy_client.expectString)(output[_AWSR]);\n }\n if (output[_LZG] != null) {\n contents[_LZG] = (0, import_smithy_client.expectString)(output[_LZG]);\n }\n if (output[_Coo] != null) {\n contents[_Coo] = de_Coordinates(output[_Coo], context);\n }\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.strictParseInt32)(output[_B]);\n }\n return contents;\n}, \"de_GeoProximityLocation\");\nvar de_HealthCheck = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_CR] != null) {\n contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]);\n }\n if (output[_LS] != null) {\n contents[_LS] = de_LinkedService(output[_LS], context);\n }\n if (output[_HCC] != null) {\n contents[_HCC] = de_HealthCheckConfig(output[_HCC], context);\n }\n if (output[_HCV] != null) {\n contents[_HCV] = (0, import_smithy_client.strictParseLong)(output[_HCV]);\n }\n if (output[_CWAC] != null) {\n contents[_CWAC] = de_CloudWatchAlarmConfiguration(output[_CWAC], context);\n }\n return contents;\n}, \"de_HealthCheck\");\nvar de_HealthCheckConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.expectString)(output[_IPA]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.strictParseInt32)(output[_P]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_RP] != null) {\n contents[_RP] = (0, import_smithy_client.expectString)(output[_RP]);\n }\n if (output[_FQDN] != null) {\n contents[_FQDN] = (0, import_smithy_client.expectString)(output[_FQDN]);\n }\n if (output[_SS] != null) {\n contents[_SS] = (0, import_smithy_client.expectString)(output[_SS]);\n }\n if (output[_RIeq] != null) {\n contents[_RIeq] = (0, import_smithy_client.strictParseInt32)(output[_RIeq]);\n }\n if (output[_FT] != null) {\n contents[_FT] = (0, import_smithy_client.strictParseInt32)(output[_FT]);\n }\n if (output[_ML] != null) {\n contents[_ML] = (0, import_smithy_client.parseBoolean)(output[_ML]);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.parseBoolean)(output[_I]);\n }\n if (output[_Di] != null) {\n contents[_Di] = (0, import_smithy_client.parseBoolean)(output[_Di]);\n }\n if (output[_HT] != null) {\n contents[_HT] = (0, import_smithy_client.strictParseInt32)(output[_HT]);\n }\n if (output.ChildHealthChecks === \"\") {\n contents[_CHC] = [];\n } else if (output[_CHC] != null && output[_CHC][_CHCh] != null) {\n contents[_CHC] = de_ChildHealthCheckList((0, import_smithy_client.getArrayIfSingleItem)(output[_CHC][_CHCh]), context);\n }\n if (output[_ESNI] != null) {\n contents[_ESNI] = (0, import_smithy_client.parseBoolean)(output[_ESNI]);\n }\n if (output.Regions === \"\") {\n contents[_R] = [];\n } else if (output[_R] != null && output[_R][_Re] != null) {\n contents[_R] = de_HealthCheckRegionList((0, import_smithy_client.getArrayIfSingleItem)(output[_R][_Re]), context);\n }\n if (output[_AI] != null) {\n contents[_AI] = de_AlarmIdentifier(output[_AI], context);\n }\n if (output[_IDHS] != null) {\n contents[_IDHS] = (0, import_smithy_client.expectString)(output[_IDHS]);\n }\n if (output[_RCA] != null) {\n contents[_RCA] = (0, import_smithy_client.expectString)(output[_RCA]);\n }\n return contents;\n}, \"de_HealthCheckConfig\");\nvar de_HealthCheckObservation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.expectString)(output[_IPA]);\n }\n if (output[_SR] != null) {\n contents[_SR] = de_StatusReport(output[_SR], context);\n }\n return contents;\n}, \"de_HealthCheckObservation\");\nvar de_HealthCheckObservations = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HealthCheckObservation(entry, context);\n });\n}, \"de_HealthCheckObservations\");\nvar de_HealthCheckRegionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_HealthCheckRegionList\");\nvar de_HealthChecks = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HealthCheck(entry, context);\n });\n}, \"de_HealthChecks\");\nvar de_HostedZone = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_CR] != null) {\n contents[_CR] = (0, import_smithy_client.expectString)(output[_CR]);\n }\n if (output[_Con] != null) {\n contents[_Con] = de_HostedZoneConfig(output[_Con], context);\n }\n if (output[_RRSC] != null) {\n contents[_RRSC] = (0, import_smithy_client.strictParseLong)(output[_RRSC]);\n }\n if (output[_LS] != null) {\n contents[_LS] = de_LinkedService(output[_LS], context);\n }\n return contents;\n}, \"de_HostedZone\");\nvar de_HostedZoneConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n if (output[_PZ] != null) {\n contents[_PZ] = (0, import_smithy_client.parseBoolean)(output[_PZ]);\n }\n return contents;\n}, \"de_HostedZoneConfig\");\nvar de_HostedZoneLimit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_V]);\n }\n return contents;\n}, \"de_HostedZoneLimit\");\nvar de_HostedZoneOwner = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OA] != null) {\n contents[_OA] = (0, import_smithy_client.expectString)(output[_OA]);\n }\n if (output[_OS] != null) {\n contents[_OS] = (0, import_smithy_client.expectString)(output[_OS]);\n }\n return contents;\n}, \"de_HostedZoneOwner\");\nvar de_HostedZones = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostedZone(entry, context);\n });\n}, \"de_HostedZones\");\nvar de_HostedZoneSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_HostedZoneSummary(entry, context);\n });\n}, \"de_HostedZoneSummaries\");\nvar de_HostedZoneSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_O] != null) {\n contents[_O] = de_HostedZoneOwner(output[_O], context);\n }\n return contents;\n}, \"de_HostedZoneSummary\");\nvar de_KeySigningKey = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_KA] != null) {\n contents[_KA] = (0, import_smithy_client.expectString)(output[_KA]);\n }\n if (output[_Fl] != null) {\n contents[_Fl] = (0, import_smithy_client.strictParseInt32)(output[_Fl]);\n }\n if (output[_SAM] != null) {\n contents[_SAM] = (0, import_smithy_client.expectString)(output[_SAM]);\n }\n if (output[_SAT] != null) {\n contents[_SAT] = (0, import_smithy_client.strictParseInt32)(output[_SAT]);\n }\n if (output[_DAM] != null) {\n contents[_DAM] = (0, import_smithy_client.expectString)(output[_DAM]);\n }\n if (output[_DAT] != null) {\n contents[_DAT] = (0, import_smithy_client.strictParseInt32)(output[_DAT]);\n }\n if (output[_KT] != null) {\n contents[_KT] = (0, import_smithy_client.strictParseInt32)(output[_KT]);\n }\n if (output[_DV] != null) {\n contents[_DV] = (0, import_smithy_client.expectString)(output[_DV]);\n }\n if (output[_PK] != null) {\n contents[_PK] = (0, import_smithy_client.expectString)(output[_PK]);\n }\n if (output[_DSR] != null) {\n contents[_DSR] = (0, import_smithy_client.expectString)(output[_DSR]);\n }\n if (output[_DNSKEYR] != null) {\n contents[_DNSKEYR] = (0, import_smithy_client.expectString)(output[_DNSKEYR]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_SM] != null) {\n contents[_SM] = (0, import_smithy_client.expectString)(output[_SM]);\n }\n if (output[_CD] != null) {\n contents[_CD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CD]));\n }\n if (output[_LMD] != null) {\n contents[_LMD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LMD]));\n }\n return contents;\n}, \"de_KeySigningKey\");\nvar de_KeySigningKeys = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_KeySigningKey(entry, context);\n });\n}, \"de_KeySigningKeys\");\nvar de_LinkedService = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SP] != null) {\n contents[_SP] = (0, import_smithy_client.expectString)(output[_SP]);\n }\n if (output[_De] != null) {\n contents[_De] = (0, import_smithy_client.expectString)(output[_De]);\n }\n return contents;\n}, \"de_LinkedService\");\nvar de_LocationSummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LocationSummary(entry, context);\n });\n}, \"de_LocationSummaries\");\nvar de_LocationSummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_LN] != null) {\n contents[_LN] = (0, import_smithy_client.expectString)(output[_LN]);\n }\n return contents;\n}, \"de_LocationSummary\");\nvar de_QueryLoggingConfig = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_CWLLGA] != null) {\n contents[_CWLLGA] = (0, import_smithy_client.expectString)(output[_CWLLGA]);\n }\n return contents;\n}, \"de_QueryLoggingConfig\");\nvar de_QueryLoggingConfigs = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_QueryLoggingConfig(entry, context);\n });\n}, \"de_QueryLoggingConfigs\");\nvar de_RecordData = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_RecordData\");\nvar de_ResourceRecord = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_V]);\n }\n return contents;\n}, \"de_ResourceRecord\");\nvar de_ResourceRecords = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceRecord(entry, context);\n });\n}, \"de_ResourceRecords\");\nvar de_ResourceRecordSet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n if (output[_W] != null) {\n contents[_W] = (0, import_smithy_client.strictParseLong)(output[_W]);\n }\n if (output[_Re] != null) {\n contents[_Re] = (0, import_smithy_client.expectString)(output[_Re]);\n }\n if (output[_GL] != null) {\n contents[_GL] = de_GeoLocation(output[_GL], context);\n }\n if (output[_F] != null) {\n contents[_F] = (0, import_smithy_client.expectString)(output[_F]);\n }\n if (output[_MVA] != null) {\n contents[_MVA] = (0, import_smithy_client.parseBoolean)(output[_MVA]);\n }\n if (output[_TTL] != null) {\n contents[_TTL] = (0, import_smithy_client.strictParseLong)(output[_TTL]);\n }\n if (output.ResourceRecords === \"\") {\n contents[_RRe] = [];\n } else if (output[_RRe] != null && output[_RRe][_RR] != null) {\n contents[_RRe] = de_ResourceRecords((0, import_smithy_client.getArrayIfSingleItem)(output[_RRe][_RR]), context);\n }\n if (output[_ATl] != null) {\n contents[_ATl] = de_AliasTarget(output[_ATl], context);\n }\n if (output[_HCI] != null) {\n contents[_HCI] = (0, import_smithy_client.expectString)(output[_HCI]);\n }\n if (output[_TPII] != null) {\n contents[_TPII] = (0, import_smithy_client.expectString)(output[_TPII]);\n }\n if (output[_CRC] != null) {\n contents[_CRC] = de_CidrRoutingConfig(output[_CRC], context);\n }\n if (output[_GPL] != null) {\n contents[_GPL] = de_GeoProximityLocation(output[_GPL], context);\n }\n return contents;\n}, \"de_ResourceRecordSet\");\nvar de_ResourceRecordSets = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceRecordSet(entry, context);\n });\n}, \"de_ResourceRecordSets\");\nvar de_ResourceTagSet = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RTe] != null) {\n contents[_RTe] = (0, import_smithy_client.expectString)(output[_RTe]);\n }\n if (output[_RI] != null) {\n contents[_RI] = (0, import_smithy_client.expectString)(output[_RI]);\n }\n if (output.Tags === \"\") {\n contents[_Tag] = [];\n } else if (output[_Tag] != null && output[_Tag][_Ta] != null) {\n contents[_Tag] = de_TagList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tag][_Ta]), context);\n }\n return contents;\n}, \"de_ResourceTagSet\");\nvar de_ResourceTagSetList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceTagSet(entry, context);\n });\n}, \"de_ResourceTagSetList\");\nvar de_ReusableDelegationSetLimit = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.strictParseLong)(output[_V]);\n }\n return contents;\n}, \"de_ReusableDelegationSetLimit\");\nvar de_StatusReport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CT]));\n }\n return contents;\n}, \"de_StatusReport\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_V] != null) {\n contents[_V] = (0, import_smithy_client.expectString)(output[_V]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagList\");\nvar de_TrafficPolicies = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficPolicy(entry, context);\n });\n}, \"de_TrafficPolicies\");\nvar de_TrafficPolicy = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_Ve] != null) {\n contents[_Ve] = (0, import_smithy_client.strictParseInt32)(output[_Ve]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(output[_D]);\n }\n if (output[_C] != null) {\n contents[_C] = (0, import_smithy_client.expectString)(output[_C]);\n }\n return contents;\n}, \"de_TrafficPolicy\");\nvar de_TrafficPolicyInstance = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_HZI] != null) {\n contents[_HZI] = (0, import_smithy_client.expectString)(output[_HZI]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_TTL] != null) {\n contents[_TTL] = (0, import_smithy_client.strictParseLong)(output[_TTL]);\n }\n if (output[_Sta] != null) {\n contents[_Sta] = (0, import_smithy_client.expectString)(output[_Sta]);\n }\n if (output[_Me] != null) {\n contents[_Me] = (0, import_smithy_client.expectString)(output[_Me]);\n }\n if (output[_TPI] != null) {\n contents[_TPI] = (0, import_smithy_client.expectString)(output[_TPI]);\n }\n if (output[_TPV] != null) {\n contents[_TPV] = (0, import_smithy_client.strictParseInt32)(output[_TPV]);\n }\n if (output[_TPT] != null) {\n contents[_TPT] = (0, import_smithy_client.expectString)(output[_TPT]);\n }\n return contents;\n}, \"de_TrafficPolicyInstance\");\nvar de_TrafficPolicyInstances = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficPolicyInstance(entry, context);\n });\n}, \"de_TrafficPolicyInstances\");\nvar de_TrafficPolicySummaries = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TrafficPolicySummary(entry, context);\n });\n}, \"de_TrafficPolicySummaries\");\nvar de_TrafficPolicySummary = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Id] != null) {\n contents[_Id] = (0, import_smithy_client.expectString)(output[_Id]);\n }\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_T] != null) {\n contents[_T] = (0, import_smithy_client.expectString)(output[_T]);\n }\n if (output[_LV] != null) {\n contents[_LV] = (0, import_smithy_client.strictParseInt32)(output[_LV]);\n }\n if (output[_TPCr] != null) {\n contents[_TPCr] = (0, import_smithy_client.strictParseInt32)(output[_TPCr]);\n }\n return contents;\n}, \"de_TrafficPolicySummary\");\nvar de_VPC = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_VPCR] != null) {\n contents[_VPCR] = (0, import_smithy_client.expectString)(output[_VPCR]);\n }\n if (output[_VPCI] != null) {\n contents[_VPCI] = (0, import_smithy_client.expectString)(output[_VPCI]);\n }\n return contents;\n}, \"de_VPC\");\nvar de_VPCs = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_VPC(entry, context);\n });\n}, \"de_VPCs\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _A = \"Action\";\nvar _AHE = \"AliasHealthEnabled\";\nvar _AI = \"AlarmIdentifier\";\nvar _AN = \"AlarmName\";\nvar _AT = \"AddTags\";\nvar _ATl = \"AliasTarget\";\nvar _AVPCC = \"AssociateVPCComment\";\nvar _AVPCWHZR = \"AssociateVPCWithHostedZoneRequest\";\nvar _AWSR = \"AWSRegion\";\nvar _Ar = \"Arn\";\nvar _B = \"Bias\";\nvar _C = \"Comment\";\nvar _CA = \"ChangeAction\";\nvar _CB = \"ChangeBatch\";\nvar _CBi = \"CidrBlocks\";\nvar _CBid = \"CidrBlock\";\nvar _CC = \"ContinentCode\";\nvar _CCC = \"CidrCollectionChange\";\nvar _CCCA = \"CidrCollectionChangeAction\";\nvar _CCCR = \"ChangeCidrCollectionRequest\";\nvar _CCCRr = \"CreateCidrCollectionRequest\";\nvar _CCi = \"CidrCollections\";\nvar _CCo = \"CountryCode\";\nvar _CD = \"CreatedDate\";\nvar _CHC = \"ChildHealthChecks\";\nvar _CHCR = \"CreateHealthCheckRequest\";\nvar _CHCh = \"ChildHealthCheck\";\nvar _CHZR = \"CreateHostedZoneRequest\";\nvar _CI = \"ChangeInfo\";\nvar _CIR = \"CheckerIpRanges\";\nvar _CIo = \"CollectionId\";\nvar _CKSKR = \"CreateKeySigningKeyRequest\";\nvar _CL = \"CidrLocations\";\nvar _CLNDA = \"CidrLocationNameDefaultAllowed\";\nvar _CLNDNA = \"CidrLocationNameDefaultNotAllowed\";\nvar _CLi = \"CidrList\";\nvar _CN = \"CidrNonce\";\nvar _CNo = \"CollectionName\";\nvar _CNon = \"ContinentName\";\nvar _CNou = \"CountryName\";\nvar _CO = \"ComparisonOperator\";\nvar _CQLCR = \"CreateQueryLoggingConfigRequest\";\nvar _CR = \"CallerReference\";\nvar _CRC = \"CidrRoutingConfig\";\nvar _CRDSR = \"CreateReusableDelegationSetRequest\";\nvar _CRRSR = \"ChangeResourceRecordSetsRequest\";\nvar _CT = \"CheckedTime\";\nvar _CTFRR = \"ChangeTagsForResourceRequest\";\nvar _CTPIR = \"CreateTrafficPolicyInstanceRequest\";\nvar _CTPR = \"CreateTrafficPolicyRequest\";\nvar _CTPVR = \"CreateTrafficPolicyVersionRequest\";\nvar _CV = \"CollectionVersion\";\nvar _CVPCAAR = \"CreateVPCAssociationAuthorizationRequest\";\nvar _CWAC = \"CloudWatchAlarmConfiguration\";\nvar _CWLLGA = \"CloudWatchLogsLogGroupArn\";\nvar _CWR = \"CloudWatchRegion\";\nvar _Ch = \"Changes\";\nvar _Cha = \"Change\";\nvar _Ci = \"Cidr\";\nvar _Co = \"Collection\";\nvar _Con = \"Config\";\nvar _Coo = \"Coordinates\";\nvar _Cou = \"Count\";\nvar _D = \"Document\";\nvar _DAM = \"DigestAlgorithmMnemonic\";\nvar _DAT = \"DigestAlgorithmType\";\nvar _DNSKEYR = \"DNSKEYRecord\";\nvar _DNSN = \"DNSName\";\nvar _DS = \"DelegationSet\";\nvar _DSI = \"DelegationSetId\";\nvar _DSR = \"DSRecord\";\nvar _DSe = \"DelegationSets\";\nvar _DV = \"DigestValue\";\nvar _DVPCAAR = \"DeleteVPCAssociationAuthorizationRequest\";\nvar _DVPCC = \"DisassociateVPCComment\";\nvar _DVPCFHZR = \"DisassociateVPCFromHostedZoneRequest\";\nvar _De = \"Description\";\nvar _Di = \"Disabled\";\nvar _Dim = \"Dimensions\";\nvar _Dime = \"Dimension\";\nvar _EDNSCSIP = \"EDNS0ClientSubnetIP\";\nvar _EDNSCSM = \"EDNS0ClientSubnetMask\";\nvar _EP = \"EvaluationPeriods\";\nvar _ESNI = \"EnableSNI\";\nvar _ETH = \"EvaluateTargetHealth\";\nvar _F = \"Failover\";\nvar _FQDN = \"FullyQualifiedDomainName\";\nvar _FT = \"FailureThreshold\";\nvar _Fl = \"Flag\";\nvar _GL = \"GeoLocation\";\nvar _GLCC = \"GeoLocationContinentCode\";\nvar _GLCCe = \"GeoLocationCountryCode\";\nvar _GLD = \"GeoLocationDetails\";\nvar _GLDL = \"GeoLocationDetailsList\";\nvar _GLSC = \"GeoLocationSubdivisionCode\";\nvar _GPL = \"GeoProximityLocation\";\nvar _HC = \"HealthCheck\";\nvar _HCC = \"HealthCheckConfig\";\nvar _HCCe = \"HealthCheckCount\";\nvar _HCI = \"HealthCheckId\";\nvar _HCN = \"HealthCheckNonce\";\nvar _HCO = \"HealthCheckObservations\";\nvar _HCOe = \"HealthCheckObservation\";\nvar _HCR = \"HealthCheckRegion\";\nvar _HCT = \"HealthCheckType\";\nvar _HCV = \"HealthCheckVersion\";\nvar _HCe = \"HealthChecks\";\nvar _HT = \"HealthThreshold\";\nvar _HZ = \"HostedZone\";\nvar _HZC = \"HostedZoneConfig\";\nvar _HZCo = \"HostedZoneCount\";\nvar _HZI = \"HostedZoneId\";\nvar _HZIM = \"HostedZoneIdMarker\";\nvar _HZS = \"HostedZoneSummaries\";\nvar _HZSo = \"HostedZoneSummary\";\nvar _HZT = \"HostedZoneType\";\nvar _HZo = \"HostedZones\";\nvar _I = \"Inverted\";\nvar _IDHS = \"InsufficientDataHealthStatus\";\nvar _IPA = \"IPAddress\";\nvar _IPZ = \"IsPrivateZone\";\nvar _IT = \"IsTruncated\";\nvar _Id = \"Id\";\nvar _K = \"Key\";\nvar _KA = \"KmsArn\";\nvar _KMSA = \"KeyManagementServiceArn\";\nvar _KSK = \"KeySigningKey\";\nvar _KSKe = \"KeySigningKeys\";\nvar _KT = \"KeyTag\";\nvar _L = \"Location\";\nvar _LMD = \"LastModifiedDate\";\nvar _LN = \"LocationName\";\nvar _LS = \"LinkedService\";\nvar _LTFRR = \"ListTagsForResourcesRequest\";\nvar _LV = \"LatestVersion\";\nvar _LZG = \"LocalZoneGroup\";\nvar _La = \"Latitude\";\nvar _Li = \"Limit\";\nvar _Lo = \"Longitude\";\nvar _M = \"Marker\";\nvar _MI = \"MaxItems\";\nvar _ML = \"MeasureLatency\";\nvar _MN = \"MetricName\";\nvar _MR = \"MaxResults\";\nvar _MVA = \"MultiValueAnswer\";\nvar _Me = \"Message\";\nvar _N = \"Name\";\nvar _NCC = \"NextContinentCode\";\nvar _NCCe = \"NextCountryCode\";\nvar _NDNSN = \"NextDNSName\";\nvar _NHZI = \"NextHostedZoneId\";\nvar _NM = \"NextMarker\";\nvar _NRI = \"NextRecordIdentifier\";\nvar _NRN = \"NextRecordName\";\nvar _NRT = \"NextRecordType\";\nvar _NS = \"NameServers\";\nvar _NSC = \"NextSubdivisionCode\";\nvar _NSa = \"NameServer\";\nvar _NT = \"NextToken\";\nvar _Na = \"Nameserver\";\nvar _Nam = \"Namespace\";\nvar _No = \"Nonce\";\nvar _O = \"Owner\";\nvar _OA = \"OwningAccount\";\nvar _OS = \"OwningService\";\nvar _P = \"Port\";\nvar _PK = \"PublicKey\";\nvar _PZ = \"PrivateZone\";\nvar _Pe = \"Period\";\nvar _Pr = \"Protocol\";\nvar _QLC = \"QueryLoggingConfig\";\nvar _QLCu = \"QueryLoggingConfigs\";\nvar _R = \"Regions\";\nvar _RC = \"ResponseCode\";\nvar _RCA = \"RoutingControlArn\";\nvar _RD = \"ResourceDescription\";\nvar _RDE = \"RecordDataEntry\";\nvar _RDa = \"RData\";\nvar _RDe = \"RecordData\";\nvar _RE = \"ResetElements\";\nvar _REN = \"ResettableElementName\";\nvar _RI = \"ResourceId\";\nvar _RIP = \"ResolverIP\";\nvar _RIe = \"ResourceIds\";\nvar _RIeq = \"RequestInterval\";\nvar _RN = \"RecordName\";\nvar _RP = \"ResourcePath\";\nvar _RR = \"ResourceRecord\";\nvar _RRS = \"ResourceRecordSets\";\nvar _RRSC = \"ResourceRecordSetCount\";\nvar _RRSF = \"ResourceRecordSetFailover\";\nvar _RRSI = \"ResourceRecordSetIdentifier\";\nvar _RRSMVA = \"ResourceRecordSetMultiValueAnswer\";\nvar _RRSR = \"ResourceRecordSetRegion\";\nvar _RRSW = \"ResourceRecordSetWeight\";\nvar _RRSe = \"ResourceRecordSet\";\nvar _RRT = \"RRType\";\nvar _RRe = \"ResourceRecords\";\nvar _RT = \"RecordType\";\nvar _RTK = \"RemoveTagKeys\";\nvar _RTS = \"ResourceTagSet\";\nvar _RTSe = \"ResourceTagSets\";\nvar _RTe = \"ResourceType\";\nvar _Re = \"Region\";\nvar _S = \"Status\";\nvar _SA = \"SubmittedAt\";\nvar _SAM = \"SigningAlgorithmMnemonic\";\nvar _SAT = \"SigningAlgorithmType\";\nvar _SC = \"SubdivisionCode\";\nvar _SCC = \"StartContinentCode\";\nvar _SCCt = \"StartCountryCode\";\nvar _SI = \"SetIdentifier\";\nvar _SKN = \"SigningKeyName\";\nvar _SKS = \"SigningKeyString\";\nvar _SKSi = \"SigningKeyStatus\";\nvar _SM = \"StatusMessage\";\nvar _SN = \"SubdivisionName\";\nvar _SP = \"ServicePrincipal\";\nvar _SR = \"StatusReport\";\nvar _SRI = \"StartRecordIdentifier\";\nvar _SRN = \"StartRecordName\";\nvar _SRT = \"StartRecordType\";\nvar _SS = \"SearchString\";\nvar _SSC = \"StartSubdivisionCode\";\nvar _SSe = \"ServeSignature\";\nvar _St = \"Statistic\";\nvar _Sta = \"State\";\nvar _T = \"Type\";\nvar _TK = \"TagKey\";\nvar _TP = \"TrafficPolicy\";\nvar _TPC = \"TrafficPolicyComment\";\nvar _TPCr = \"TrafficPolicyCount\";\nvar _TPD = \"TrafficPolicyDocument\";\nvar _TPI = \"TrafficPolicyId\";\nvar _TPIC = \"TrafficPolicyInstanceCount\";\nvar _TPII = \"TrafficPolicyInstanceId\";\nvar _TPIM = \"TrafficPolicyIdMarker\";\nvar _TPINM = \"TrafficPolicyInstanceNameMarker\";\nvar _TPITM = \"TrafficPolicyInstanceTypeMarker\";\nvar _TPIr = \"TrafficPolicyInstance\";\nvar _TPIra = \"TrafficPolicyInstances\";\nvar _TPN = \"TrafficPolicyName\";\nvar _TPS = \"TrafficPolicySummaries\";\nvar _TPSr = \"TrafficPolicySummary\";\nvar _TPT = \"TrafficPolicyType\";\nvar _TPV = \"TrafficPolicyVersion\";\nvar _TPVM = \"TrafficPolicyVersionMarker\";\nvar _TPr = \"TrafficPolicies\";\nvar _TRI = \"TagResourceId\";\nvar _TTL = \"TTL\";\nvar _TV = \"TagValue\";\nvar _Ta = \"Tag\";\nvar _Tag = \"Tags\";\nvar _Th = \"Threshold\";\nvar _UHCR = \"UpdateHealthCheckRequest\";\nvar _UHZCR = \"UpdateHostedZoneCommentRequest\";\nvar _UTPCR = \"UpdateTrafficPolicyCommentRequest\";\nvar _UTPIR = \"UpdateTrafficPolicyInstanceRequest\";\nvar _UUID = \"UUID\";\nvar _V = \"Value\";\nvar _VPC = \"VPC\";\nvar _VPCI = \"VPCId\";\nvar _VPCR = \"VPCRegion\";\nvar _VPCs = \"VPCs\";\nvar _Ve = \"Version\";\nvar _W = \"Weight\";\nvar _c = \"continentcode\";\nvar _co = \"countrycode\";\nvar _d = \"delegationsetid\";\nvar _dn = \"dnsname\";\nvar _e = \"edns0clientsubnetip\";\nvar _ed = \"edns0clientsubnetmask\";\nvar _h = \"hostedzonetype\";\nvar _ho = \"hostedzoneid\";\nvar _i = \"identifier\";\nvar _id = \"id\";\nvar _l = \"location\";\nvar _m = \"maxresults\";\nvar _ma = \"maxitems\";\nvar _mar = \"marker\";\nvar _me = \"member\";\nvar _mes = \"message\";\nvar _mess = \"messages\";\nvar _n = \"nexttoken\";\nvar _na = \"name\";\nvar _r = \"recordname\";\nvar _re = \"recordtype\";\nvar _res = \"resolverip\";\nvar _s = \"subdivisioncode\";\nvar _st = \"startcontinentcode\";\nvar _sta = \"startcountrycode\";\nvar _star = \"startsubdivisioncode\";\nvar _t = \"type\";\nvar _tr = \"trafficpolicyid\";\nvar _tra = \"trafficpolicyinstancename\";\nvar _traf = \"trafficpolicyinstancetype\";\nvar _traff = \"trafficpolicyversion\";\nvar _v = \"vpcid\";\nvar _ve = '';\nvar _ver = \"version\";\nvar _vp = \"vpcregion\";\n\n// src/commands/ActivateKeySigningKeyCommand.ts\nvar ActivateKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route53.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ActivateKeySigningKey\", {}).n(\"Route53Client\", \"ActivateKeySigningKeyCommand\").f(void 0, void 0).ser(se_ActivateKeySigningKeyCommand).de(de_ActivateKeySigningKeyCommand).build() {\n static {\n __name(this, \"ActivateKeySigningKeyCommand\");\n }\n};\n\n// src/commands/AssociateVPCWithHostedZoneCommand.ts\nvar import_middleware_sdk_route532 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar AssociateVPCWithHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route532.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"AssociateVPCWithHostedZone\", {}).n(\"Route53Client\", \"AssociateVPCWithHostedZoneCommand\").f(void 0, void 0).ser(se_AssociateVPCWithHostedZoneCommand).de(de_AssociateVPCWithHostedZoneCommand).build() {\n static {\n __name(this, \"AssociateVPCWithHostedZoneCommand\");\n }\n};\n\n// src/commands/ChangeCidrCollectionCommand.ts\nvar import_middleware_sdk_route533 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ChangeCidrCollectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route533.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ChangeCidrCollection\", {}).n(\"Route53Client\", \"ChangeCidrCollectionCommand\").f(void 0, void 0).ser(se_ChangeCidrCollectionCommand).de(de_ChangeCidrCollectionCommand).build() {\n static {\n __name(this, \"ChangeCidrCollectionCommand\");\n }\n};\n\n// src/commands/ChangeResourceRecordSetsCommand.ts\nvar import_middleware_sdk_route534 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ChangeResourceRecordSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route534.getChangeResourceRecordSetsPlugin)(config),\n (0, import_middleware_sdk_route534.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ChangeResourceRecordSets\", {}).n(\"Route53Client\", \"ChangeResourceRecordSetsCommand\").f(void 0, void 0).ser(se_ChangeResourceRecordSetsCommand).de(de_ChangeResourceRecordSetsCommand).build() {\n static {\n __name(this, \"ChangeResourceRecordSetsCommand\");\n }\n};\n\n// src/commands/ChangeTagsForResourceCommand.ts\n\n\n\nvar ChangeTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ChangeTagsForResource\", {}).n(\"Route53Client\", \"ChangeTagsForResourceCommand\").f(void 0, void 0).ser(se_ChangeTagsForResourceCommand).de(de_ChangeTagsForResourceCommand).build() {\n static {\n __name(this, \"ChangeTagsForResourceCommand\");\n }\n};\n\n// src/commands/CreateCidrCollectionCommand.ts\n\n\n\nvar CreateCidrCollectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"CreateCidrCollection\", {}).n(\"Route53Client\", \"CreateCidrCollectionCommand\").f(void 0, void 0).ser(se_CreateCidrCollectionCommand).de(de_CreateCidrCollectionCommand).build() {\n static {\n __name(this, \"CreateCidrCollectionCommand\");\n }\n};\n\n// src/commands/CreateHealthCheckCommand.ts\n\n\n\nvar CreateHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"CreateHealthCheck\", {}).n(\"Route53Client\", \"CreateHealthCheckCommand\").f(void 0, void 0).ser(se_CreateHealthCheckCommand).de(de_CreateHealthCheckCommand).build() {\n static {\n __name(this, \"CreateHealthCheckCommand\");\n }\n};\n\n// src/commands/CreateHostedZoneCommand.ts\nvar import_middleware_sdk_route535 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route535.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateHostedZone\", {}).n(\"Route53Client\", \"CreateHostedZoneCommand\").f(void 0, void 0).ser(se_CreateHostedZoneCommand).de(de_CreateHostedZoneCommand).build() {\n static {\n __name(this, \"CreateHostedZoneCommand\");\n }\n};\n\n// src/commands/CreateKeySigningKeyCommand.ts\nvar import_middleware_sdk_route536 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route536.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateKeySigningKey\", {}).n(\"Route53Client\", \"CreateKeySigningKeyCommand\").f(void 0, void 0).ser(se_CreateKeySigningKeyCommand).de(de_CreateKeySigningKeyCommand).build() {\n static {\n __name(this, \"CreateKeySigningKeyCommand\");\n }\n};\n\n// src/commands/CreateQueryLoggingConfigCommand.ts\nvar import_middleware_sdk_route537 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateQueryLoggingConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route537.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateQueryLoggingConfig\", {}).n(\"Route53Client\", \"CreateQueryLoggingConfigCommand\").f(void 0, void 0).ser(se_CreateQueryLoggingConfigCommand).de(de_CreateQueryLoggingConfigCommand).build() {\n static {\n __name(this, \"CreateQueryLoggingConfigCommand\");\n }\n};\n\n// src/commands/CreateReusableDelegationSetCommand.ts\nvar import_middleware_sdk_route538 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateReusableDelegationSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route538.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateReusableDelegationSet\", {}).n(\"Route53Client\", \"CreateReusableDelegationSetCommand\").f(void 0, void 0).ser(se_CreateReusableDelegationSetCommand).de(de_CreateReusableDelegationSetCommand).build() {\n static {\n __name(this, \"CreateReusableDelegationSetCommand\");\n }\n};\n\n// src/commands/CreateTrafficPolicyCommand.ts\n\n\n\nvar CreateTrafficPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"CreateTrafficPolicy\", {}).n(\"Route53Client\", \"CreateTrafficPolicyCommand\").f(void 0, void 0).ser(se_CreateTrafficPolicyCommand).de(de_CreateTrafficPolicyCommand).build() {\n static {\n __name(this, \"CreateTrafficPolicyCommand\");\n }\n};\n\n// src/commands/CreateTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route539 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route539.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateTrafficPolicyInstance\", {}).n(\"Route53Client\", \"CreateTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_CreateTrafficPolicyInstanceCommand).de(de_CreateTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"CreateTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/commands/CreateTrafficPolicyVersionCommand.ts\nvar import_middleware_sdk_route5310 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateTrafficPolicyVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5310.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateTrafficPolicyVersion\", {}).n(\"Route53Client\", \"CreateTrafficPolicyVersionCommand\").f(void 0, void 0).ser(se_CreateTrafficPolicyVersionCommand).de(de_CreateTrafficPolicyVersionCommand).build() {\n static {\n __name(this, \"CreateTrafficPolicyVersionCommand\");\n }\n};\n\n// src/commands/CreateVPCAssociationAuthorizationCommand.ts\nvar import_middleware_sdk_route5311 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar CreateVPCAssociationAuthorizationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5311.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"CreateVPCAssociationAuthorization\", {}).n(\"Route53Client\", \"CreateVPCAssociationAuthorizationCommand\").f(void 0, void 0).ser(se_CreateVPCAssociationAuthorizationCommand).de(de_CreateVPCAssociationAuthorizationCommand).build() {\n static {\n __name(this, \"CreateVPCAssociationAuthorizationCommand\");\n }\n};\n\n// src/commands/DeactivateKeySigningKeyCommand.ts\nvar import_middleware_sdk_route5312 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeactivateKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5312.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeactivateKeySigningKey\", {}).n(\"Route53Client\", \"DeactivateKeySigningKeyCommand\").f(void 0, void 0).ser(se_DeactivateKeySigningKeyCommand).de(de_DeactivateKeySigningKeyCommand).build() {\n static {\n __name(this, \"DeactivateKeySigningKeyCommand\");\n }\n};\n\n// src/commands/DeleteCidrCollectionCommand.ts\nvar import_middleware_sdk_route5313 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteCidrCollectionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5313.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteCidrCollection\", {}).n(\"Route53Client\", \"DeleteCidrCollectionCommand\").f(void 0, void 0).ser(se_DeleteCidrCollectionCommand).de(de_DeleteCidrCollectionCommand).build() {\n static {\n __name(this, \"DeleteCidrCollectionCommand\");\n }\n};\n\n// src/commands/DeleteHealthCheckCommand.ts\n\n\n\nvar DeleteHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteHealthCheck\", {}).n(\"Route53Client\", \"DeleteHealthCheckCommand\").f(void 0, void 0).ser(se_DeleteHealthCheckCommand).de(de_DeleteHealthCheckCommand).build() {\n static {\n __name(this, \"DeleteHealthCheckCommand\");\n }\n};\n\n// src/commands/DeleteHostedZoneCommand.ts\nvar import_middleware_sdk_route5314 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5314.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteHostedZone\", {}).n(\"Route53Client\", \"DeleteHostedZoneCommand\").f(void 0, void 0).ser(se_DeleteHostedZoneCommand).de(de_DeleteHostedZoneCommand).build() {\n static {\n __name(this, \"DeleteHostedZoneCommand\");\n }\n};\n\n// src/commands/DeleteKeySigningKeyCommand.ts\nvar import_middleware_sdk_route5315 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteKeySigningKeyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5315.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteKeySigningKey\", {}).n(\"Route53Client\", \"DeleteKeySigningKeyCommand\").f(void 0, void 0).ser(se_DeleteKeySigningKeyCommand).de(de_DeleteKeySigningKeyCommand).build() {\n static {\n __name(this, \"DeleteKeySigningKeyCommand\");\n }\n};\n\n// src/commands/DeleteQueryLoggingConfigCommand.ts\nvar import_middleware_sdk_route5316 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteQueryLoggingConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5316.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteQueryLoggingConfig\", {}).n(\"Route53Client\", \"DeleteQueryLoggingConfigCommand\").f(void 0, void 0).ser(se_DeleteQueryLoggingConfigCommand).de(de_DeleteQueryLoggingConfigCommand).build() {\n static {\n __name(this, \"DeleteQueryLoggingConfigCommand\");\n }\n};\n\n// src/commands/DeleteReusableDelegationSetCommand.ts\nvar import_middleware_sdk_route5317 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteReusableDelegationSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5317.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteReusableDelegationSet\", {}).n(\"Route53Client\", \"DeleteReusableDelegationSetCommand\").f(void 0, void 0).ser(se_DeleteReusableDelegationSetCommand).de(de_DeleteReusableDelegationSetCommand).build() {\n static {\n __name(this, \"DeleteReusableDelegationSetCommand\");\n }\n};\n\n// src/commands/DeleteTrafficPolicyCommand.ts\nvar import_middleware_sdk_route5318 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteTrafficPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5318.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteTrafficPolicy\", {}).n(\"Route53Client\", \"DeleteTrafficPolicyCommand\").f(void 0, void 0).ser(se_DeleteTrafficPolicyCommand).de(de_DeleteTrafficPolicyCommand).build() {\n static {\n __name(this, \"DeleteTrafficPolicyCommand\");\n }\n};\n\n// src/commands/DeleteTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route5319 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5319.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteTrafficPolicyInstance\", {}).n(\"Route53Client\", \"DeleteTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_DeleteTrafficPolicyInstanceCommand).de(de_DeleteTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"DeleteTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/commands/DeleteVPCAssociationAuthorizationCommand.ts\nvar import_middleware_sdk_route5320 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DeleteVPCAssociationAuthorizationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5320.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DeleteVPCAssociationAuthorization\", {}).n(\"Route53Client\", \"DeleteVPCAssociationAuthorizationCommand\").f(void 0, void 0).ser(se_DeleteVPCAssociationAuthorizationCommand).de(de_DeleteVPCAssociationAuthorizationCommand).build() {\n static {\n __name(this, \"DeleteVPCAssociationAuthorizationCommand\");\n }\n};\n\n// src/commands/DisableHostedZoneDNSSECCommand.ts\nvar import_middleware_sdk_route5321 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DisableHostedZoneDNSSECCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5321.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DisableHostedZoneDNSSEC\", {}).n(\"Route53Client\", \"DisableHostedZoneDNSSECCommand\").f(void 0, void 0).ser(se_DisableHostedZoneDNSSECCommand).de(de_DisableHostedZoneDNSSECCommand).build() {\n static {\n __name(this, \"DisableHostedZoneDNSSECCommand\");\n }\n};\n\n// src/commands/DisassociateVPCFromHostedZoneCommand.ts\nvar import_middleware_sdk_route5322 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar DisassociateVPCFromHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5322.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"DisassociateVPCFromHostedZone\", {}).n(\"Route53Client\", \"DisassociateVPCFromHostedZoneCommand\").f(void 0, void 0).ser(se_DisassociateVPCFromHostedZoneCommand).de(de_DisassociateVPCFromHostedZoneCommand).build() {\n static {\n __name(this, \"DisassociateVPCFromHostedZoneCommand\");\n }\n};\n\n// src/commands/EnableHostedZoneDNSSECCommand.ts\nvar import_middleware_sdk_route5323 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar EnableHostedZoneDNSSECCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5323.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"EnableHostedZoneDNSSEC\", {}).n(\"Route53Client\", \"EnableHostedZoneDNSSECCommand\").f(void 0, void 0).ser(se_EnableHostedZoneDNSSECCommand).de(de_EnableHostedZoneDNSSECCommand).build() {\n static {\n __name(this, \"EnableHostedZoneDNSSECCommand\");\n }\n};\n\n// src/commands/GetAccountLimitCommand.ts\n\n\n\nvar GetAccountLimitCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetAccountLimit\", {}).n(\"Route53Client\", \"GetAccountLimitCommand\").f(void 0, void 0).ser(se_GetAccountLimitCommand).de(de_GetAccountLimitCommand).build() {\n static {\n __name(this, \"GetAccountLimitCommand\");\n }\n};\n\n// src/commands/GetChangeCommand.ts\nvar import_middleware_sdk_route5324 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetChangeCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5324.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetChange\", {}).n(\"Route53Client\", \"GetChangeCommand\").f(void 0, void 0).ser(se_GetChangeCommand).de(de_GetChangeCommand).build() {\n static {\n __name(this, \"GetChangeCommand\");\n }\n};\n\n// src/commands/GetCheckerIpRangesCommand.ts\n\n\n\nvar GetCheckerIpRangesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetCheckerIpRanges\", {}).n(\"Route53Client\", \"GetCheckerIpRangesCommand\").f(void 0, void 0).ser(se_GetCheckerIpRangesCommand).de(de_GetCheckerIpRangesCommand).build() {\n static {\n __name(this, \"GetCheckerIpRangesCommand\");\n }\n};\n\n// src/commands/GetDNSSECCommand.ts\nvar import_middleware_sdk_route5325 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetDNSSECCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5325.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetDNSSEC\", {}).n(\"Route53Client\", \"GetDNSSECCommand\").f(void 0, void 0).ser(se_GetDNSSECCommand).de(de_GetDNSSECCommand).build() {\n static {\n __name(this, \"GetDNSSECCommand\");\n }\n};\n\n// src/commands/GetGeoLocationCommand.ts\n\n\n\nvar GetGeoLocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetGeoLocation\", {}).n(\"Route53Client\", \"GetGeoLocationCommand\").f(void 0, void 0).ser(se_GetGeoLocationCommand).de(de_GetGeoLocationCommand).build() {\n static {\n __name(this, \"GetGeoLocationCommand\");\n }\n};\n\n// src/commands/GetHealthCheckCommand.ts\n\n\n\nvar GetHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheck\", {}).n(\"Route53Client\", \"GetHealthCheckCommand\").f(void 0, void 0).ser(se_GetHealthCheckCommand).de(de_GetHealthCheckCommand).build() {\n static {\n __name(this, \"GetHealthCheckCommand\");\n }\n};\n\n// src/commands/GetHealthCheckCountCommand.ts\n\n\n\nvar GetHealthCheckCountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheckCount\", {}).n(\"Route53Client\", \"GetHealthCheckCountCommand\").f(void 0, void 0).ser(se_GetHealthCheckCountCommand).de(de_GetHealthCheckCountCommand).build() {\n static {\n __name(this, \"GetHealthCheckCountCommand\");\n }\n};\n\n// src/commands/GetHealthCheckLastFailureReasonCommand.ts\n\n\n\nvar GetHealthCheckLastFailureReasonCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheckLastFailureReason\", {}).n(\"Route53Client\", \"GetHealthCheckLastFailureReasonCommand\").f(void 0, void 0).ser(se_GetHealthCheckLastFailureReasonCommand).de(de_GetHealthCheckLastFailureReasonCommand).build() {\n static {\n __name(this, \"GetHealthCheckLastFailureReasonCommand\");\n }\n};\n\n// src/commands/GetHealthCheckStatusCommand.ts\n\n\n\nvar GetHealthCheckStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHealthCheckStatus\", {}).n(\"Route53Client\", \"GetHealthCheckStatusCommand\").f(void 0, void 0).ser(se_GetHealthCheckStatusCommand).de(de_GetHealthCheckStatusCommand).build() {\n static {\n __name(this, \"GetHealthCheckStatusCommand\");\n }\n};\n\n// src/commands/GetHostedZoneCommand.ts\nvar import_middleware_sdk_route5326 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5326.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetHostedZone\", {}).n(\"Route53Client\", \"GetHostedZoneCommand\").f(void 0, void 0).ser(se_GetHostedZoneCommand).de(de_GetHostedZoneCommand).build() {\n static {\n __name(this, \"GetHostedZoneCommand\");\n }\n};\n\n// src/commands/GetHostedZoneCountCommand.ts\n\n\n\nvar GetHostedZoneCountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetHostedZoneCount\", {}).n(\"Route53Client\", \"GetHostedZoneCountCommand\").f(void 0, void 0).ser(se_GetHostedZoneCountCommand).de(de_GetHostedZoneCountCommand).build() {\n static {\n __name(this, \"GetHostedZoneCountCommand\");\n }\n};\n\n// src/commands/GetHostedZoneLimitCommand.ts\nvar import_middleware_sdk_route5327 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetHostedZoneLimitCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5327.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetHostedZoneLimit\", {}).n(\"Route53Client\", \"GetHostedZoneLimitCommand\").f(void 0, void 0).ser(se_GetHostedZoneLimitCommand).de(de_GetHostedZoneLimitCommand).build() {\n static {\n __name(this, \"GetHostedZoneLimitCommand\");\n }\n};\n\n// src/commands/GetQueryLoggingConfigCommand.ts\nvar import_middleware_sdk_route5328 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetQueryLoggingConfigCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5328.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetQueryLoggingConfig\", {}).n(\"Route53Client\", \"GetQueryLoggingConfigCommand\").f(void 0, void 0).ser(se_GetQueryLoggingConfigCommand).de(de_GetQueryLoggingConfigCommand).build() {\n static {\n __name(this, \"GetQueryLoggingConfigCommand\");\n }\n};\n\n// src/commands/GetReusableDelegationSetCommand.ts\nvar import_middleware_sdk_route5329 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetReusableDelegationSetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5329.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetReusableDelegationSet\", {}).n(\"Route53Client\", \"GetReusableDelegationSetCommand\").f(void 0, void 0).ser(se_GetReusableDelegationSetCommand).de(de_GetReusableDelegationSetCommand).build() {\n static {\n __name(this, \"GetReusableDelegationSetCommand\");\n }\n};\n\n// src/commands/GetReusableDelegationSetLimitCommand.ts\nvar import_middleware_sdk_route5330 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetReusableDelegationSetLimitCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5330.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetReusableDelegationSetLimit\", {}).n(\"Route53Client\", \"GetReusableDelegationSetLimitCommand\").f(void 0, void 0).ser(se_GetReusableDelegationSetLimitCommand).de(de_GetReusableDelegationSetLimitCommand).build() {\n static {\n __name(this, \"GetReusableDelegationSetLimitCommand\");\n }\n};\n\n// src/commands/GetTrafficPolicyCommand.ts\nvar import_middleware_sdk_route5331 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetTrafficPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5331.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetTrafficPolicy\", {}).n(\"Route53Client\", \"GetTrafficPolicyCommand\").f(void 0, void 0).ser(se_GetTrafficPolicyCommand).de(de_GetTrafficPolicyCommand).build() {\n static {\n __name(this, \"GetTrafficPolicyCommand\");\n }\n};\n\n// src/commands/GetTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route5332 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar GetTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5332.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"GetTrafficPolicyInstance\", {}).n(\"Route53Client\", \"GetTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_GetTrafficPolicyInstanceCommand).de(de_GetTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"GetTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/commands/GetTrafficPolicyInstanceCountCommand.ts\n\n\n\nvar GetTrafficPolicyInstanceCountCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"GetTrafficPolicyInstanceCount\", {}).n(\"Route53Client\", \"GetTrafficPolicyInstanceCountCommand\").f(void 0, void 0).ser(se_GetTrafficPolicyInstanceCountCommand).de(de_GetTrafficPolicyInstanceCountCommand).build() {\n static {\n __name(this, \"GetTrafficPolicyInstanceCountCommand\");\n }\n};\n\n// src/commands/ListCidrBlocksCommand.ts\n\n\n\nvar ListCidrBlocksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListCidrBlocks\", {}).n(\"Route53Client\", \"ListCidrBlocksCommand\").f(void 0, void 0).ser(se_ListCidrBlocksCommand).de(de_ListCidrBlocksCommand).build() {\n static {\n __name(this, \"ListCidrBlocksCommand\");\n }\n};\n\n// src/commands/ListCidrCollectionsCommand.ts\n\n\n\nvar ListCidrCollectionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListCidrCollections\", {}).n(\"Route53Client\", \"ListCidrCollectionsCommand\").f(void 0, void 0).ser(se_ListCidrCollectionsCommand).de(de_ListCidrCollectionsCommand).build() {\n static {\n __name(this, \"ListCidrCollectionsCommand\");\n }\n};\n\n// src/commands/ListCidrLocationsCommand.ts\n\n\n\nvar ListCidrLocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListCidrLocations\", {}).n(\"Route53Client\", \"ListCidrLocationsCommand\").f(void 0, void 0).ser(se_ListCidrLocationsCommand).de(de_ListCidrLocationsCommand).build() {\n static {\n __name(this, \"ListCidrLocationsCommand\");\n }\n};\n\n// src/commands/ListGeoLocationsCommand.ts\n\n\n\nvar ListGeoLocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListGeoLocations\", {}).n(\"Route53Client\", \"ListGeoLocationsCommand\").f(void 0, void 0).ser(se_ListGeoLocationsCommand).de(de_ListGeoLocationsCommand).build() {\n static {\n __name(this, \"ListGeoLocationsCommand\");\n }\n};\n\n// src/commands/ListHealthChecksCommand.ts\n\n\n\nvar ListHealthChecksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListHealthChecks\", {}).n(\"Route53Client\", \"ListHealthChecksCommand\").f(void 0, void 0).ser(se_ListHealthChecksCommand).de(de_ListHealthChecksCommand).build() {\n static {\n __name(this, \"ListHealthChecksCommand\");\n }\n};\n\n// src/commands/ListHostedZonesByNameCommand.ts\nvar import_middleware_sdk_route5333 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListHostedZonesByNameCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5333.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListHostedZonesByName\", {}).n(\"Route53Client\", \"ListHostedZonesByNameCommand\").f(void 0, void 0).ser(se_ListHostedZonesByNameCommand).de(de_ListHostedZonesByNameCommand).build() {\n static {\n __name(this, \"ListHostedZonesByNameCommand\");\n }\n};\n\n// src/commands/ListHostedZonesByVPCCommand.ts\n\n\n\nvar ListHostedZonesByVPCCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListHostedZonesByVPC\", {}).n(\"Route53Client\", \"ListHostedZonesByVPCCommand\").f(void 0, void 0).ser(se_ListHostedZonesByVPCCommand).de(de_ListHostedZonesByVPCCommand).build() {\n static {\n __name(this, \"ListHostedZonesByVPCCommand\");\n }\n};\n\n// src/commands/ListHostedZonesCommand.ts\nvar import_middleware_sdk_route5334 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListHostedZonesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5334.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListHostedZones\", {}).n(\"Route53Client\", \"ListHostedZonesCommand\").f(void 0, void 0).ser(se_ListHostedZonesCommand).de(de_ListHostedZonesCommand).build() {\n static {\n __name(this, \"ListHostedZonesCommand\");\n }\n};\n\n// src/commands/ListQueryLoggingConfigsCommand.ts\nvar import_middleware_sdk_route5335 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListQueryLoggingConfigsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5335.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListQueryLoggingConfigs\", {}).n(\"Route53Client\", \"ListQueryLoggingConfigsCommand\").f(void 0, void 0).ser(se_ListQueryLoggingConfigsCommand).de(de_ListQueryLoggingConfigsCommand).build() {\n static {\n __name(this, \"ListQueryLoggingConfigsCommand\");\n }\n};\n\n// src/commands/ListResourceRecordSetsCommand.ts\nvar import_middleware_sdk_route5336 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListResourceRecordSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5336.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListResourceRecordSets\", {}).n(\"Route53Client\", \"ListResourceRecordSetsCommand\").f(void 0, void 0).ser(se_ListResourceRecordSetsCommand).de(de_ListResourceRecordSetsCommand).build() {\n static {\n __name(this, \"ListResourceRecordSetsCommand\");\n }\n};\n\n// src/commands/ListReusableDelegationSetsCommand.ts\n\n\n\nvar ListReusableDelegationSetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListReusableDelegationSets\", {}).n(\"Route53Client\", \"ListReusableDelegationSetsCommand\").f(void 0, void 0).ser(se_ListReusableDelegationSetsCommand).de(de_ListReusableDelegationSetsCommand).build() {\n static {\n __name(this, \"ListReusableDelegationSetsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTagsForResource\", {}).n(\"Route53Client\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ListTagsForResourcesCommand.ts\n\n\n\nvar ListTagsForResourcesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTagsForResources\", {}).n(\"Route53Client\", \"ListTagsForResourcesCommand\").f(void 0, void 0).ser(se_ListTagsForResourcesCommand).de(de_ListTagsForResourcesCommand).build() {\n static {\n __name(this, \"ListTagsForResourcesCommand\");\n }\n};\n\n// src/commands/ListTrafficPoliciesCommand.ts\n\n\n\nvar ListTrafficPoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicies\", {}).n(\"Route53Client\", \"ListTrafficPoliciesCommand\").f(void 0, void 0).ser(se_ListTrafficPoliciesCommand).de(de_ListTrafficPoliciesCommand).build() {\n static {\n __name(this, \"ListTrafficPoliciesCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyInstancesByHostedZoneCommand.ts\nvar import_middleware_sdk_route5337 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListTrafficPolicyInstancesByHostedZoneCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5337.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyInstancesByHostedZone\", {}).n(\"Route53Client\", \"ListTrafficPolicyInstancesByHostedZoneCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyInstancesByHostedZoneCommand).de(de_ListTrafficPolicyInstancesByHostedZoneCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyInstancesByHostedZoneCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyInstancesByPolicyCommand.ts\n\n\n\nvar ListTrafficPolicyInstancesByPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyInstancesByPolicy\", {}).n(\"Route53Client\", \"ListTrafficPolicyInstancesByPolicyCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyInstancesByPolicyCommand).de(de_ListTrafficPolicyInstancesByPolicyCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyInstancesByPolicyCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyInstancesCommand.ts\n\n\n\nvar ListTrafficPolicyInstancesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyInstances\", {}).n(\"Route53Client\", \"ListTrafficPolicyInstancesCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyInstancesCommand).de(de_ListTrafficPolicyInstancesCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyInstancesCommand\");\n }\n};\n\n// src/commands/ListTrafficPolicyVersionsCommand.ts\nvar import_middleware_sdk_route5338 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListTrafficPolicyVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5338.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListTrafficPolicyVersions\", {}).n(\"Route53Client\", \"ListTrafficPolicyVersionsCommand\").f(void 0, void 0).ser(se_ListTrafficPolicyVersionsCommand).de(de_ListTrafficPolicyVersionsCommand).build() {\n static {\n __name(this, \"ListTrafficPolicyVersionsCommand\");\n }\n};\n\n// src/commands/ListVPCAssociationAuthorizationsCommand.ts\nvar import_middleware_sdk_route5339 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar ListVPCAssociationAuthorizationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5339.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"ListVPCAssociationAuthorizations\", {}).n(\"Route53Client\", \"ListVPCAssociationAuthorizationsCommand\").f(void 0, void 0).ser(se_ListVPCAssociationAuthorizationsCommand).de(de_ListVPCAssociationAuthorizationsCommand).build() {\n static {\n __name(this, \"ListVPCAssociationAuthorizationsCommand\");\n }\n};\n\n// src/commands/TestDNSAnswerCommand.ts\nvar import_middleware_sdk_route5340 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar TestDNSAnswerCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5340.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"TestDNSAnswer\", {}).n(\"Route53Client\", \"TestDNSAnswerCommand\").f(void 0, void 0).ser(se_TestDNSAnswerCommand).de(de_TestDNSAnswerCommand).build() {\n static {\n __name(this, \"TestDNSAnswerCommand\");\n }\n};\n\n// src/commands/UpdateHealthCheckCommand.ts\n\n\n\nvar UpdateHealthCheckCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateHealthCheck\", {}).n(\"Route53Client\", \"UpdateHealthCheckCommand\").f(void 0, void 0).ser(se_UpdateHealthCheckCommand).de(de_UpdateHealthCheckCommand).build() {\n static {\n __name(this, \"UpdateHealthCheckCommand\");\n }\n};\n\n// src/commands/UpdateHostedZoneCommentCommand.ts\nvar import_middleware_sdk_route5341 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar UpdateHostedZoneCommentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5341.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateHostedZoneComment\", {}).n(\"Route53Client\", \"UpdateHostedZoneCommentCommand\").f(void 0, void 0).ser(se_UpdateHostedZoneCommentCommand).de(de_UpdateHostedZoneCommentCommand).build() {\n static {\n __name(this, \"UpdateHostedZoneCommentCommand\");\n }\n};\n\n// src/commands/UpdateTrafficPolicyCommentCommand.ts\nvar import_middleware_sdk_route5342 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar UpdateTrafficPolicyCommentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5342.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateTrafficPolicyComment\", {}).n(\"Route53Client\", \"UpdateTrafficPolicyCommentCommand\").f(void 0, void 0).ser(se_UpdateTrafficPolicyCommentCommand).de(de_UpdateTrafficPolicyCommentCommand).build() {\n static {\n __name(this, \"UpdateTrafficPolicyCommentCommand\");\n }\n};\n\n// src/commands/UpdateTrafficPolicyInstanceCommand.ts\nvar import_middleware_sdk_route5343 = require(\"@aws-sdk/middleware-sdk-route53\");\n\n\n\nvar UpdateTrafficPolicyInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_route5343.getIdNormalizerPlugin)(config)\n ];\n}).s(\"AWSDnsV20130401\", \"UpdateTrafficPolicyInstance\", {}).n(\"Route53Client\", \"UpdateTrafficPolicyInstanceCommand\").f(void 0, void 0).ser(se_UpdateTrafficPolicyInstanceCommand).de(de_UpdateTrafficPolicyInstanceCommand).build() {\n static {\n __name(this, \"UpdateTrafficPolicyInstanceCommand\");\n }\n};\n\n// src/Route53.ts\nvar commands = {\n ActivateKeySigningKeyCommand,\n AssociateVPCWithHostedZoneCommand,\n ChangeCidrCollectionCommand,\n ChangeResourceRecordSetsCommand,\n ChangeTagsForResourceCommand,\n CreateCidrCollectionCommand,\n CreateHealthCheckCommand,\n CreateHostedZoneCommand,\n CreateKeySigningKeyCommand,\n CreateQueryLoggingConfigCommand,\n CreateReusableDelegationSetCommand,\n CreateTrafficPolicyCommand,\n CreateTrafficPolicyInstanceCommand,\n CreateTrafficPolicyVersionCommand,\n CreateVPCAssociationAuthorizationCommand,\n DeactivateKeySigningKeyCommand,\n DeleteCidrCollectionCommand,\n DeleteHealthCheckCommand,\n DeleteHostedZoneCommand,\n DeleteKeySigningKeyCommand,\n DeleteQueryLoggingConfigCommand,\n DeleteReusableDelegationSetCommand,\n DeleteTrafficPolicyCommand,\n DeleteTrafficPolicyInstanceCommand,\n DeleteVPCAssociationAuthorizationCommand,\n DisableHostedZoneDNSSECCommand,\n DisassociateVPCFromHostedZoneCommand,\n EnableHostedZoneDNSSECCommand,\n GetAccountLimitCommand,\n GetChangeCommand,\n GetCheckerIpRangesCommand,\n GetDNSSECCommand,\n GetGeoLocationCommand,\n GetHealthCheckCommand,\n GetHealthCheckCountCommand,\n GetHealthCheckLastFailureReasonCommand,\n GetHealthCheckStatusCommand,\n GetHostedZoneCommand,\n GetHostedZoneCountCommand,\n GetHostedZoneLimitCommand,\n GetQueryLoggingConfigCommand,\n GetReusableDelegationSetCommand,\n GetReusableDelegationSetLimitCommand,\n GetTrafficPolicyCommand,\n GetTrafficPolicyInstanceCommand,\n GetTrafficPolicyInstanceCountCommand,\n ListCidrBlocksCommand,\n ListCidrCollectionsCommand,\n ListCidrLocationsCommand,\n ListGeoLocationsCommand,\n ListHealthChecksCommand,\n ListHostedZonesCommand,\n ListHostedZonesByNameCommand,\n ListHostedZonesByVPCCommand,\n ListQueryLoggingConfigsCommand,\n ListResourceRecordSetsCommand,\n ListReusableDelegationSetsCommand,\n ListTagsForResourceCommand,\n ListTagsForResourcesCommand,\n ListTrafficPoliciesCommand,\n ListTrafficPolicyInstancesCommand,\n ListTrafficPolicyInstancesByHostedZoneCommand,\n ListTrafficPolicyInstancesByPolicyCommand,\n ListTrafficPolicyVersionsCommand,\n ListVPCAssociationAuthorizationsCommand,\n TestDNSAnswerCommand,\n UpdateHealthCheckCommand,\n UpdateHostedZoneCommentCommand,\n UpdateTrafficPolicyCommentCommand,\n UpdateTrafficPolicyInstanceCommand\n};\nvar Route53 = class extends Route53Client {\n static {\n __name(this, \"Route53\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, Route53);\n\n// src/pagination/ListCidrBlocksPaginator.ts\n\nvar paginateListCidrBlocks = (0, import_core.createPaginator)(Route53Client, ListCidrBlocksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCidrCollectionsPaginator.ts\n\nvar paginateListCidrCollections = (0, import_core.createPaginator)(Route53Client, ListCidrCollectionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCidrLocationsPaginator.ts\n\nvar paginateListCidrLocations = (0, import_core.createPaginator)(Route53Client, ListCidrLocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListHealthChecksPaginator.ts\n\nvar paginateListHealthChecks = (0, import_core.createPaginator)(Route53Client, ListHealthChecksCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListHostedZonesPaginator.ts\n\nvar paginateListHostedZones = (0, import_core.createPaginator)(Route53Client, ListHostedZonesCommand, \"Marker\", \"NextMarker\", \"MaxItems\");\n\n// src/pagination/ListQueryLoggingConfigsPaginator.ts\n\nvar paginateListQueryLoggingConfigs = (0, import_core.createPaginator)(Route53Client, ListQueryLoggingConfigsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForResourceRecordSetsChanged.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetChangeCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.ChangeInfo.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"INSYNC\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForResourceRecordSetsChanged = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForResourceRecordSetsChanged\");\nvar waitUntilResourceRecordSetsChanged = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 30, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilResourceRecordSetsChanged\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n Route53ServiceException,\n __Client,\n Route53Client,\n Route53,\n $Command,\n ActivateKeySigningKeyCommand,\n AssociateVPCWithHostedZoneCommand,\n ChangeCidrCollectionCommand,\n ChangeResourceRecordSetsCommand,\n ChangeTagsForResourceCommand,\n CreateCidrCollectionCommand,\n CreateHealthCheckCommand,\n CreateHostedZoneCommand,\n CreateKeySigningKeyCommand,\n CreateQueryLoggingConfigCommand,\n CreateReusableDelegationSetCommand,\n CreateTrafficPolicyCommand,\n CreateTrafficPolicyInstanceCommand,\n CreateTrafficPolicyVersionCommand,\n CreateVPCAssociationAuthorizationCommand,\n DeactivateKeySigningKeyCommand,\n DeleteCidrCollectionCommand,\n DeleteHealthCheckCommand,\n DeleteHostedZoneCommand,\n DeleteKeySigningKeyCommand,\n DeleteQueryLoggingConfigCommand,\n DeleteReusableDelegationSetCommand,\n DeleteTrafficPolicyCommand,\n DeleteTrafficPolicyInstanceCommand,\n DeleteVPCAssociationAuthorizationCommand,\n DisableHostedZoneDNSSECCommand,\n DisassociateVPCFromHostedZoneCommand,\n EnableHostedZoneDNSSECCommand,\n GetAccountLimitCommand,\n GetChangeCommand,\n GetCheckerIpRangesCommand,\n GetDNSSECCommand,\n GetGeoLocationCommand,\n GetHealthCheckCommand,\n GetHealthCheckCountCommand,\n GetHealthCheckLastFailureReasonCommand,\n GetHealthCheckStatusCommand,\n GetHostedZoneCommand,\n GetHostedZoneCountCommand,\n GetHostedZoneLimitCommand,\n GetQueryLoggingConfigCommand,\n GetReusableDelegationSetCommand,\n GetReusableDelegationSetLimitCommand,\n GetTrafficPolicyCommand,\n GetTrafficPolicyInstanceCommand,\n GetTrafficPolicyInstanceCountCommand,\n ListCidrBlocksCommand,\n ListCidrCollectionsCommand,\n ListCidrLocationsCommand,\n ListGeoLocationsCommand,\n ListHealthChecksCommand,\n ListHostedZonesByNameCommand,\n ListHostedZonesByVPCCommand,\n ListHostedZonesCommand,\n ListQueryLoggingConfigsCommand,\n ListResourceRecordSetsCommand,\n ListReusableDelegationSetsCommand,\n ListTagsForResourceCommand,\n ListTagsForResourcesCommand,\n ListTrafficPoliciesCommand,\n ListTrafficPolicyInstancesByHostedZoneCommand,\n ListTrafficPolicyInstancesByPolicyCommand,\n ListTrafficPolicyInstancesCommand,\n ListTrafficPolicyVersionsCommand,\n ListVPCAssociationAuthorizationsCommand,\n TestDNSAnswerCommand,\n UpdateHealthCheckCommand,\n UpdateHostedZoneCommentCommand,\n UpdateTrafficPolicyCommentCommand,\n UpdateTrafficPolicyInstanceCommand,\n paginateListCidrBlocks,\n paginateListCidrCollections,\n paginateListCidrLocations,\n paginateListHealthChecks,\n paginateListHostedZones,\n paginateListQueryLoggingConfigs,\n waitForResourceRecordSetsChanged,\n waitUntilResourceRecordSetsChanged,\n AccountLimitType,\n ChangeStatus,\n ConcurrentModification,\n InvalidInput,\n InvalidKeySigningKeyStatus,\n InvalidKMSArn,\n InvalidSigningStatus,\n NoSuchKeySigningKey,\n CloudWatchRegion,\n VPCRegion,\n ConflictingDomainExists,\n InvalidVPCId,\n LimitsExceeded,\n NoSuchHostedZone,\n NotAuthorizedException,\n PriorRequestNotComplete,\n PublicZoneVPCAssociation,\n CidrCollectionChangeAction,\n CidrBlockInUseException,\n CidrCollectionVersionMismatchException,\n NoSuchCidrCollectionException,\n ChangeAction,\n ResourceRecordSetFailover,\n ResourceRecordSetRegion,\n RRType,\n InvalidChangeBatch,\n NoSuchHealthCheck,\n TagResourceType,\n ThrottlingException,\n CidrCollectionAlreadyExistsException,\n InsufficientDataHealthStatus,\n HealthCheckRegion,\n HealthCheckType,\n ComparisonOperator,\n Statistic,\n HealthCheckAlreadyExists,\n TooManyHealthChecks,\n DelegationSetNotAvailable,\n DelegationSetNotReusable,\n HostedZoneAlreadyExists,\n InvalidDomainName,\n NoSuchDelegationSet,\n TooManyHostedZones,\n InvalidArgument,\n InvalidKeySigningKeyName,\n KeySigningKeyAlreadyExists,\n TooManyKeySigningKeys,\n InsufficientCloudWatchLogsResourcePolicy,\n NoSuchCloudWatchLogsLogGroup,\n QueryLoggingConfigAlreadyExists,\n DelegationSetAlreadyCreated,\n DelegationSetAlreadyReusable,\n HostedZoneNotFound,\n InvalidTrafficPolicyDocument,\n TooManyTrafficPolicies,\n TrafficPolicyAlreadyExists,\n NoSuchTrafficPolicy,\n TooManyTrafficPolicyInstances,\n TrafficPolicyInstanceAlreadyExists,\n TooManyTrafficPolicyVersionsForCurrentPolicy,\n TooManyVPCAssociationAuthorizations,\n KeySigningKeyInParentDSRecord,\n KeySigningKeyInUse,\n CidrCollectionInUseException,\n HealthCheckInUse,\n HostedZoneNotEmpty,\n NoSuchQueryLoggingConfig,\n DelegationSetInUse,\n TrafficPolicyInUse,\n NoSuchTrafficPolicyInstance,\n VPCAssociationAuthorizationNotFound,\n DNSSECNotFound,\n LastVPCAssociation,\n VPCAssociationNotFound,\n HostedZonePartiallyDelegated,\n KeySigningKeyWithActiveStatusNotFound,\n NoSuchChange,\n NoSuchGeoLocation,\n IncompatibleVersion,\n HostedZoneLimitType,\n HostedZoneNotPrivate,\n ReusableDelegationSetLimitType,\n NoSuchCidrLocationException,\n HostedZoneType,\n InvalidPaginationToken,\n HealthCheckVersionMismatch,\n ResettableElementName,\n ConflictingTypes\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2013-04-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultRoute53HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Route 53\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultS3HttpAuthSchemeProvider = exports.defaultS3HttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst signature_v4_multi_region_1 = require(\"@aws-sdk/signature-v4-multi-region\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst endpointResolver_1 = require(\"../endpoint/endpointResolver\");\nconst createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {\n if (!input) {\n throw new Error(`Could not find \\`input\\` for \\`defaultEndpointRuleSetHttpAuthSchemeParametersProvider\\``);\n }\n const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);\n const instructionsFn = (0, util_middleware_1.getSmithyContext)(context)?.commandInstance?.constructor\n ?.getEndpointParameterInstructions;\n if (!instructionsFn) {\n throw new Error(`getEndpointParameterInstructions() is not defined on \\`${context.commandName}\\``);\n }\n const endpointParameters = await (0, middleware_endpoint_1.resolveParams)(input, { getEndpointParameterInstructions: instructionsFn }, config);\n return Object.assign(defaultParameters, endpointParameters);\n};\nconst _defaultS3HttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultS3HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultS3HttpAuthSchemeParametersProvider);\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"s3\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createAwsAuthSigv4aHttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4a\",\n signingProperties: {\n name: \"s3\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {\n const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {\n const endpoint = defaultEndpointResolver(authParameters);\n const authSchemes = endpoint.properties?.authSchemes;\n if (!authSchemes) {\n return defaultHttpAuthSchemeResolver(authParameters);\n }\n const options = [];\n for (const scheme of authSchemes) {\n const { name: resolvedName, properties = {}, ...rest } = scheme;\n const name = resolvedName.toLowerCase();\n if (resolvedName !== name) {\n console.warn(`HttpAuthScheme has been normalized with lowercasing: \\`${resolvedName}\\` to \\`${name}\\``);\n }\n let schemeId;\n if (name === \"sigv4a\") {\n schemeId = \"aws.auth#sigv4a\";\n const sigv4Present = authSchemes.find((s) => {\n const name = s.name.toLowerCase();\n return name !== \"sigv4a\" && name.startsWith(\"sigv4\");\n });\n if (signature_v4_multi_region_1.SignatureV4MultiRegion.sigv4aDependency() === \"none\" && sigv4Present) {\n continue;\n }\n }\n else if (name.startsWith(\"sigv4\")) {\n schemeId = \"aws.auth#sigv4\";\n }\n else {\n throw new Error(`Unknown HttpAuthScheme found in \\`@smithy.rules#endpointRuleSet\\`: \\`${name}\\``);\n }\n const createOption = createHttpAuthOptionFunctions[schemeId];\n if (!createOption) {\n throw new Error(`Could not find HttpAuthOption create function for \\`${schemeId}\\``);\n }\n const option = createOption(authParameters);\n option.schemeId = schemeId;\n option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };\n options.push(option);\n }\n return options;\n };\n return endpointRuleSetHttpAuthSchemeProvider;\n};\nconst _defaultS3HttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultS3HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(endpointResolver_1.defaultEndpointResolver, _defaultS3HttpAuthSchemeProvider, {\n \"aws.auth#sigv4\": createAwsAuthSigv4HttpAuthOption,\n \"aws.auth#sigv4a\": createAwsAuthSigv4aHttpAuthOption,\n});\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4AConfig)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\n \"Accelerate\",\n \"Bucket\",\n \"DisableAccessPoints\",\n \"DisableMultiRegionAccessPoints\",\n \"DisableS3ExpressSessionAuth\",\n \"Endpoint\",\n \"ForcePathStyle\",\n \"Region\",\n \"UseArnRegion\",\n \"UseDualStack\",\n \"UseFIPS\",\n \"UseGlobalEndpoint\",\n \"UseObjectLambdaEndpoint\",\n \"UseS3ExpressControlEndpoint\",\n ],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst cp = \"required\", cq = \"type\", cr = \"rules\", cs = \"conditions\", ct = \"fn\", cu = \"argv\", cv = \"ref\", cw = \"assign\", cx = \"url\", cy = \"properties\", cz = \"backend\", cA = \"authSchemes\", cB = \"disableDoubleEncoding\", cC = \"signingName\", cD = \"signingRegion\", cE = \"headers\", cF = \"signingRegionSet\";\nconst a = 6, b = false, c = true, d = \"isSet\", e = \"booleanEquals\", f = \"error\", g = \"aws.partition\", h = \"stringEquals\", i = \"getAttr\", j = \"name\", k = \"substring\", l = \"bucketSuffix\", m = \"parseURL\", n = \"endpoint\", o = \"tree\", p = \"aws.isVirtualHostableS3Bucket\", q = \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", r = \"not\", s = \"accessPointSuffix\", t = \"{url#scheme}://{url#authority}{url#path}\", u = \"hardwareType\", v = \"regionPrefix\", w = \"bucketAliasSuffix\", x = \"outpostId\", y = \"isValidHostLabel\", z = \"sigv4a\", A = \"s3-outposts\", B = \"s3\", C = \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", D = \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", E = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", F = \"aws.parseArn\", G = \"bucketArn\", H = \"arnType\", I = \"\", J = \"s3-object-lambda\", K = \"accesspoint\", L = \"accessPointName\", M = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", N = \"mrapPartition\", O = \"outpostType\", P = \"arnPrefix\", Q = \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", R = \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", S = \"https://s3.{partitionResult#dnsSuffix}\", T = { [cp]: false, [cq]: \"String\" }, U = { [cp]: true, \"default\": false, [cq]: \"Boolean\" }, V = { [cp]: false, [cq]: \"Boolean\" }, W = { [ct]: e, [cu]: [{ [cv]: \"Accelerate\" }, true] }, X = { [ct]: e, [cu]: [{ [cv]: \"UseFIPS\" }, true] }, Y = { [ct]: e, [cu]: [{ [cv]: \"UseDualStack\" }, true] }, Z = { [ct]: d, [cu]: [{ [cv]: \"Endpoint\" }] }, aa = { [ct]: g, [cu]: [{ [cv]: \"Region\" }], [cw]: \"partitionResult\" }, ab = { [ct]: h, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"partitionResult\" }, j] }, \"aws-cn\"] }, ac = { [ct]: d, [cu]: [{ [cv]: \"Bucket\" }] }, ad = { [cv]: \"Bucket\" }, ae = { [cs]: [Y], [f]: \"S3Express does not support Dual-stack.\", [cq]: f }, af = { [cs]: [W], [f]: \"S3Express does not support S3 Accelerate.\", [cq]: f }, ag = { [cs]: [Z, { [ct]: m, [cu]: [{ [cv]: \"Endpoint\" }], [cw]: \"url\" }], [cr]: [{ [cs]: [{ [ct]: d, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }] }, { [ct]: e, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }, true] }], [cr]: [{ [cs]: [{ [ct]: e, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"url\" }, \"isIp\"] }, true] }], [cr]: [{ [cs]: [{ [ct]: \"uriEncode\", [cu]: [ad], [cw]: \"uri_encoded_bucket\" }], [cr]: [{ [n]: { [cx]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: p, [cu]: [ad, false] }], [cr]: [{ [n]: { [cx]: q, [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [cq]: f }], [cq]: o }, { [cs]: [{ [ct]: e, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"url\" }, \"isIp\"] }, true] }], [cr]: [{ [cs]: [{ [ct]: \"uriEncode\", [cu]: [ad], [cw]: \"uri_encoded_bucket\" }], [cr]: [{ [n]: { [cx]: \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: p, [cu]: [ad, false] }], [cr]: [{ [n]: { [cx]: q, [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], [cq]: o }, { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [cq]: f }], [cq]: o }, ah = { [ct]: m, [cu]: [{ [cv]: \"Endpoint\" }], [cw]: \"url\" }, ai = { [ct]: e, [cu]: [{ [ct]: i, [cu]: [{ [cv]: \"url\" }, \"isIp\"] }, true] }, aj = { [cv]: \"url\" }, ak = { [ct]: \"uriEncode\", [cu]: [ad], [cw]: \"uri_encoded_bucket\" }, al = { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, am = {}, an = { [ct]: p, [cu]: [ad, false] }, ao = { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [cq]: f }, ap = { [ct]: d, [cu]: [{ [cv]: \"UseS3ExpressControlEndpoint\" }] }, aq = { [ct]: e, [cu]: [{ [cv]: \"UseS3ExpressControlEndpoint\" }, true] }, ar = { [ct]: r, [cu]: [Z] }, as = { [f]: \"Unrecognized S3Express bucket name format.\", [cq]: f }, at = { [ct]: r, [cu]: [ac] }, au = { [cv]: u }, av = { [cs]: [ar], [f]: \"Expected a endpoint to be specified but no endpoint was found\", [cq]: f }, aw = { [cA]: [{ [cB]: true, [j]: z, [cC]: A, [cF]: [\"*\"] }, { [cB]: true, [j]: \"sigv4\", [cC]: A, [cD]: \"{Region}\" }] }, ax = { [ct]: e, [cu]: [{ [cv]: \"ForcePathStyle\" }, false] }, ay = { [cv]: \"ForcePathStyle\" }, az = { [ct]: e, [cu]: [{ [cv]: \"Accelerate\" }, false] }, aA = { [ct]: h, [cu]: [{ [cv]: \"Region\" }, \"aws-global\"] }, aB = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"us-east-1\" }] }, aC = { [ct]: r, [cu]: [aA] }, aD = { [ct]: e, [cu]: [{ [cv]: \"UseGlobalEndpoint\" }, true] }, aE = { [cx]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"{Region}\" }] }, [cE]: {} }, aF = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"{Region}\" }] }, aG = { [ct]: e, [cu]: [{ [cv]: \"UseGlobalEndpoint\" }, false] }, aH = { [ct]: e, [cu]: [{ [cv]: \"UseDualStack\" }, false] }, aI = { [cx]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aJ = { [ct]: e, [cu]: [{ [cv]: \"UseFIPS\" }, false] }, aK = { [cx]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aL = { [cx]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aM = { [ct]: e, [cu]: [{ [ct]: i, [cu]: [aj, \"isIp\"] }, false] }, aN = { [cx]: C, [cy]: aF, [cE]: {} }, aO = { [cx]: q, [cy]: aF, [cE]: {} }, aP = { [n]: aO, [cq]: n }, aQ = { [cx]: D, [cy]: aF, [cE]: {} }, aR = { [cx]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, aS = { [f]: \"Invalid region: region was not a valid DNS name.\", [cq]: f }, aT = { [cv]: G }, aU = { [cv]: H }, aV = { [ct]: i, [cu]: [aT, \"service\"] }, aW = { [cv]: L }, aX = { [cs]: [Y], [f]: \"S3 Object Lambda does not support Dual-stack\", [cq]: f }, aY = { [cs]: [W], [f]: \"S3 Object Lambda does not support S3 Accelerate\", [cq]: f }, aZ = { [cs]: [{ [ct]: d, [cu]: [{ [cv]: \"DisableAccessPoints\" }] }, { [ct]: e, [cu]: [{ [cv]: \"DisableAccessPoints\" }, true] }], [f]: \"Access points are not supported for this operation\", [cq]: f }, ba = { [cs]: [{ [ct]: d, [cu]: [{ [cv]: \"UseArnRegion\" }] }, { [ct]: e, [cu]: [{ [cv]: \"UseArnRegion\" }, false] }, { [ct]: r, [cu]: [{ [ct]: h, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }, \"{Region}\"] }] }], [f]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [cq]: f }, bb = { [ct]: i, [cu]: [{ [cv]: \"bucketPartition\" }, j] }, bc = { [ct]: i, [cu]: [aT, \"accountId\"] }, bd = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: J, [cD]: \"{bucketArn#region}\" }] }, be = { [f]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [cq]: f }, bf = { [f]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [cq]: f }, bg = { [f]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [cq]: f }, bh = { [f]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [cq]: f }, bi = { [f]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [cq]: f }, bj = { [f]: \"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\", [cq]: f }, bk = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: B, [cD]: \"{bucketArn#region}\" }] }, bl = { [cA]: [{ [cB]: true, [j]: z, [cC]: A, [cF]: [\"*\"] }, { [cB]: true, [j]: \"sigv4\", [cC]: A, [cD]: \"{bucketArn#region}\" }] }, bm = { [ct]: F, [cu]: [ad] }, bn = { [cx]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bo = { [cx]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bp = { [cx]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bq = { [cx]: Q, [cy]: aF, [cE]: {} }, br = { [cx]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aF, [cE]: {} }, bs = { [cv]: \"UseObjectLambdaEndpoint\" }, bt = { [cA]: [{ [cB]: true, [j]: \"sigv4\", [cC]: J, [cD]: \"{Region}\" }] }, bu = { [cx]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bv = { [cx]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bw = { [cx]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bx = { [cx]: t, [cy]: aF, [cE]: {} }, by = { [cx]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [cy]: aF, [cE]: {} }, bz = [{ [cv]: \"Region\" }], bA = [{ [cv]: \"Endpoint\" }], bB = [ad], bC = [Y], bD = [W], bE = [Z, ah], bF = [{ [ct]: d, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }] }, { [ct]: e, [cu]: [{ [cv]: \"DisableS3ExpressSessionAuth\" }, true] }], bG = [ak], bH = [an], bI = [aa], bJ = [X], bK = [{ [ct]: k, [cu]: [ad, 6, 14, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 14, 16, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bL = [{ [cs]: [X], [n]: { [cx]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: {} }, [cq]: n }, { [n]: { [cx]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: {} }, [cq]: n }], bM = [{ [ct]: k, [cu]: [ad, 6, 15, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 15, 17, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bN = [{ [ct]: k, [cu]: [ad, 6, 19, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 19, 21, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bO = [{ [ct]: k, [cu]: [ad, 6, 20, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 20, 22, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bP = [{ [ct]: k, [cu]: [ad, 6, 26, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 26, 28, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bQ = [{ [cs]: [X], [n]: { [cx]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }, { [n]: { [cx]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}\", [cy]: { [cz]: \"S3Express\", [cA]: [{ [cB]: true, [j]: \"sigv4-s3express\", [cC]: \"s3express\", [cD]: \"{Region}\" }] }, [cE]: {} }, [cq]: n }], bR = [ad, 0, 7, true], bS = [{ [ct]: k, [cu]: [ad, 7, 15, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 15, 17, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bT = [{ [ct]: k, [cu]: [ad, 7, 16, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 16, 18, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bU = [{ [ct]: k, [cu]: [ad, 7, 20, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 20, 22, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bV = [{ [ct]: k, [cu]: [ad, 7, 21, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 21, 23, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bW = [{ [ct]: k, [cu]: [ad, 7, 27, true], [cw]: \"s3expressAvailabilityZoneId\" }, { [ct]: k, [cu]: [ad, 27, 29, true], [cw]: \"s3expressAvailabilityZoneDelim\" }, { [ct]: h, [cu]: [{ [cv]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bX = [ac], bY = [{ [ct]: y, [cu]: [{ [cv]: x }, false] }], bZ = [{ [ct]: h, [cu]: [{ [cv]: v }, \"beta\"] }], ca = [\"*\"], cb = [{ [ct]: y, [cu]: [{ [cv]: \"Region\" }, false] }], cc = [{ [ct]: h, [cu]: [{ [cv]: \"Region\" }, \"us-east-1\"] }], cd = [{ [ct]: h, [cu]: [aU, K] }], ce = [{ [ct]: i, [cu]: [aT, \"resourceId[1]\"], [cw]: L }, { [ct]: r, [cu]: [{ [ct]: h, [cu]: [aW, I] }] }], cf = [aT, \"resourceId[1]\"], cg = [{ [ct]: r, [cu]: [{ [ct]: h, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }, I] }] }], ch = [{ [ct]: r, [cu]: [{ [ct]: d, [cu]: [{ [ct]: i, [cu]: [aT, \"resourceId[2]\"] }] }] }], ci = [aT, \"resourceId[2]\"], cj = [{ [ct]: g, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }], [cw]: \"bucketPartition\" }], ck = [{ [ct]: h, [cu]: [bb, { [ct]: i, [cu]: [{ [cv]: \"partitionResult\" }, j] }] }], cl = [{ [ct]: y, [cu]: [{ [ct]: i, [cu]: [aT, \"region\"] }, true] }], cm = [{ [ct]: y, [cu]: [bc, false] }], cn = [{ [ct]: y, [cu]: [aW, false] }], co = [{ [ct]: y, [cu]: [{ [cv]: \"Region\" }, true] }];\nconst _data = { version: \"1.0\", parameters: { Bucket: T, Region: T, UseFIPS: U, UseDualStack: U, Endpoint: T, ForcePathStyle: U, Accelerate: U, UseGlobalEndpoint: U, UseObjectLambdaEndpoint: V, Key: T, Prefix: T, CopySource: T, DisableAccessPoints: V, DisableMultiRegionAccessPoints: U, UseArnRegion: V, UseS3ExpressControlEndpoint: V, DisableS3ExpressSessionAuth: V }, [cr]: [{ [cs]: [{ [ct]: d, [cu]: bz }], [cr]: [{ [cs]: [W, X], error: \"Accelerate cannot be used with FIPS\", [cq]: f }, { [cs]: [Y, Z], error: \"Cannot set dual-stack in combination with a custom endpoint.\", [cq]: f }, { [cs]: [Z, X], error: \"A custom endpoint cannot be combined with FIPS\", [cq]: f }, { [cs]: [Z, W], error: \"A custom endpoint cannot be combined with S3 Accelerate\", [cq]: f }, { [cs]: [X, aa, ab], error: \"Partition does not support FIPS\", [cq]: f }, { [cs]: [ac, { [ct]: k, [cu]: [ad, 0, a, c], [cw]: l }, { [ct]: h, [cu]: [{ [cv]: l }, \"--x-s3\"] }], [cr]: [ae, af, ag, { [cs]: [ap, aq], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: [ak, ar], [cr]: [{ [cs]: bJ, endpoint: { [cx]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: al, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: al, [cE]: am }, [cq]: n }], [cq]: o }], [cq]: o }], [cq]: o }, { [cs]: bH, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: bF, [cr]: [{ [cs]: bK, [cr]: bL, [cq]: o }, { [cs]: bM, [cr]: bL, [cq]: o }, { [cs]: bN, [cr]: bL, [cq]: o }, { [cs]: bO, [cr]: bL, [cq]: o }, { [cs]: bP, [cr]: bL, [cq]: o }, as], [cq]: o }, { [cs]: bK, [cr]: bQ, [cq]: o }, { [cs]: bM, [cr]: bQ, [cq]: o }, { [cs]: bN, [cr]: bQ, [cq]: o }, { [cs]: bO, [cr]: bQ, [cq]: o }, { [cs]: bP, [cr]: bQ, [cq]: o }, as], [cq]: o }], [cq]: o }, ao], [cq]: o }, { [cs]: [ac, { [ct]: k, [cu]: bR, [cw]: s }, { [ct]: h, [cu]: [{ [cv]: s }, \"--xa-s3\"] }], [cr]: [ae, af, ag, { [cs]: bH, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: bF, [cr]: [{ [cs]: bS, [cr]: bL, [cq]: o }, { [cs]: bT, [cr]: bL, [cq]: o }, { [cs]: bU, [cr]: bL, [cq]: o }, { [cs]: bV, [cr]: bL, [cq]: o }, { [cs]: bW, [cr]: bL, [cq]: o }, as], [cq]: o }, { [cs]: bS, [cr]: bQ, [cq]: o }, { [cs]: bT, [cr]: bQ, [cq]: o }, { [cs]: bU, [cr]: bQ, [cq]: o }, { [cs]: bV, [cr]: bQ, [cq]: o }, { [cs]: bW, [cr]: bQ, [cq]: o }, as], [cq]: o }], [cq]: o }, ao], [cq]: o }, { [cs]: [at, ap, aq], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: bE, endpoint: { [cx]: t, [cy]: al, [cE]: am }, [cq]: n }, { [cs]: bJ, endpoint: { [cx]: \"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://s3express-control.{Region}.{partitionResult#dnsSuffix}\", [cy]: al, [cE]: am }, [cq]: n }], [cq]: o }], [cq]: o }, { [cs]: [ac, { [ct]: k, [cu]: [ad, 49, 50, c], [cw]: u }, { [ct]: k, [cu]: [ad, 8, 12, c], [cw]: v }, { [ct]: k, [cu]: bR, [cw]: w }, { [ct]: k, [cu]: [ad, 32, 49, c], [cw]: x }, { [ct]: g, [cu]: bz, [cw]: \"regionPartition\" }, { [ct]: h, [cu]: [{ [cv]: w }, \"--op-s3\"] }], [cr]: [{ [cs]: bY, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [au, \"e\"] }], [cr]: [{ [cs]: bZ, [cr]: [av, { [cs]: bE, endpoint: { [cx]: \"https://{Bucket}.ec2.{url#authority}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { endpoint: { [cx]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { [cs]: [{ [ct]: h, [cu]: [au, \"o\"] }], [cr]: [{ [cs]: bZ, [cr]: [av, { [cs]: bE, endpoint: { [cx]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { endpoint: { [cx]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cy]: aw, [cE]: am }, [cq]: n }], [cq]: o }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [cq]: f }], [cq]: o }, { [cs]: bX, [cr]: [{ [cs]: [Z, { [ct]: r, [cu]: [{ [ct]: d, [cu]: [{ [ct]: m, [cu]: bA }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [cq]: f }, { [cs]: [ax, an], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: cb, [cr]: [{ [cs]: [W, ab], error: \"S3 Accelerate cannot be used in this region\", [cq]: f }, { [cs]: [Y, X, az, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, X, az, ar, aC, aD], [cr]: [{ endpoint: aE, [cq]: n }], [cq]: o }, { [cs]: [Y, X, az, ar, aC, aG], endpoint: aE, [cq]: n }, { [cs]: [aH, X, az, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, X, az, ar, aC, aD], [cr]: [{ endpoint: aI, [cq]: n }], [cq]: o }, { [cs]: [aH, X, az, ar, aC, aG], endpoint: aI, [cq]: n }, { [cs]: [Y, aJ, W, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, aJ, W, ar, aC, aD], [cr]: [{ endpoint: aK, [cq]: n }], [cq]: o }, { [cs]: [Y, aJ, W, ar, aC, aG], endpoint: aK, [cq]: n }, { [cs]: [Y, aJ, az, ar, aA], endpoint: { [cx]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, aJ, az, ar, aC, aD], [cr]: [{ endpoint: aL, [cq]: n }], [cq]: o }, { [cs]: [Y, aJ, az, ar, aC, aG], endpoint: aL, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, ai, aA], endpoint: { [cx]: C, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, aM, aA], endpoint: { [cx]: q, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, ai, aC, aD], [cr]: [{ [cs]: cc, endpoint: aN, [cq]: n }, { endpoint: aN, [cq]: n }], [cq]: o }, { [cs]: [aH, aJ, az, Z, ah, aM, aC, aD], [cr]: [{ [cs]: cc, endpoint: aO, [cq]: n }, aP], [cq]: o }, { [cs]: [aH, aJ, az, Z, ah, ai, aC, aG], endpoint: aN, [cq]: n }, { [cs]: [aH, aJ, az, Z, ah, aM, aC, aG], endpoint: aO, [cq]: n }, { [cs]: [aH, aJ, W, ar, aA], endpoint: { [cx]: D, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, W, ar, aC, aD], [cr]: [{ [cs]: cc, endpoint: aQ, [cq]: n }, { endpoint: aQ, [cq]: n }], [cq]: o }, { [cs]: [aH, aJ, W, ar, aC, aG], endpoint: aQ, [cq]: n }, { [cs]: [aH, aJ, az, ar, aA], endpoint: { [cx]: E, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, aJ, az, ar, aC, aD], [cr]: [{ [cs]: cc, endpoint: { [cx]: E, [cy]: aF, [cE]: am }, [cq]: n }, { endpoint: aR, [cq]: n }], [cq]: o }, { [cs]: [aH, aJ, az, ar, aC, aG], endpoint: aR, [cq]: n }], [cq]: o }, aS], [cq]: o }], [cq]: o }, { [cs]: [Z, ah, { [ct]: h, [cu]: [{ [ct]: i, [cu]: [aj, \"scheme\"] }, \"http\"] }, { [ct]: p, [cu]: [ad, c] }, ax, aJ, aH, az], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: cb, [cr]: [aP], [cq]: o }, aS], [cq]: o }], [cq]: o }, { [cs]: [ax, { [ct]: F, [cu]: bB, [cw]: G }], [cr]: [{ [cs]: [{ [ct]: i, [cu]: [aT, \"resourceId[0]\"], [cw]: H }, { [ct]: r, [cu]: [{ [ct]: h, [cu]: [aU, I] }] }], [cr]: [{ [cs]: [{ [ct]: h, [cu]: [aV, J] }], [cr]: [{ [cs]: cd, [cr]: [{ [cs]: ce, [cr]: [aX, aY, { [cs]: cg, [cr]: [aZ, { [cs]: ch, [cr]: [ba, { [cs]: cj, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: ck, [cr]: [{ [cs]: cl, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [bc, I] }], error: \"Invalid ARN: Missing account id\", [cq]: f }, { [cs]: cm, [cr]: [{ [cs]: cn, [cr]: [{ [cs]: bE, endpoint: { [cx]: M, [cy]: bd, [cE]: am }, [cq]: n }, { [cs]: bJ, endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bd, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bd, [cE]: am }, [cq]: n }], [cq]: o }, be], [cq]: o }, bf], [cq]: o }, bg], [cq]: o }, bh], [cq]: o }], [cq]: o }], [cq]: o }, bi], [cq]: o }, { error: \"Invalid ARN: bucket ARN is missing a region\", [cq]: f }], [cq]: o }, bj], [cq]: o }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [cq]: f }], [cq]: o }, { [cs]: cd, [cr]: [{ [cs]: ce, [cr]: [{ [cs]: cg, [cr]: [{ [cs]: cd, [cr]: [{ [cs]: cg, [cr]: [aZ, { [cs]: ch, [cr]: [ba, { [cs]: cj, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [bb, \"{partitionResult#name}\"] }], [cr]: [{ [cs]: cl, [cr]: [{ [cs]: [{ [ct]: h, [cu]: [aV, B] }], [cr]: [{ [cs]: cm, [cr]: [{ [cs]: cn, [cr]: [{ [cs]: bD, error: \"Access Points do not support S3 Accelerate\", [cq]: f }, { [cs]: [X, Y], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [X, aH], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [aJ, Y], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH, Z, ah], endpoint: { [cx]: M, [cy]: bk, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH], endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bk, [cE]: am }, [cq]: n }], [cq]: o }, be], [cq]: o }, bf], [cq]: o }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [cq]: f }], [cq]: o }, bg], [cq]: o }, bh], [cq]: o }], [cq]: o }], [cq]: o }, bi], [cq]: o }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: y, [cu]: [aW, c] }], [cr]: [{ [cs]: bC, error: \"S3 MRAP does not support dual-stack\", [cq]: f }, { [cs]: bJ, error: \"S3 MRAP does not support FIPS\", [cq]: f }, { [cs]: bD, error: \"S3 MRAP does not support S3 Accelerate\", [cq]: f }, { [cs]: [{ [ct]: e, [cu]: [{ [cv]: \"DisableMultiRegionAccessPoints\" }, c] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [cq]: f }, { [cs]: [{ [ct]: g, [cu]: bz, [cw]: N }], [cr]: [{ [cs]: [{ [ct]: h, [cu]: [{ [ct]: i, [cu]: [{ [cv]: N }, j] }, { [ct]: i, [cu]: [aT, \"partition\"] }] }], [cr]: [{ endpoint: { [cx]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [cy]: { [cA]: [{ [cB]: c, name: z, [cC]: B, [cF]: ca }] }, [cE]: am }, [cq]: n }], [cq]: o }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [cq]: f }], [cq]: o }], [cq]: o }, { error: \"Invalid Access Point Name\", [cq]: f }], [cq]: o }, bj], [cq]: o }, { [cs]: [{ [ct]: h, [cu]: [aV, A] }], [cr]: [{ [cs]: bC, error: \"S3 Outposts does not support Dual-stack\", [cq]: f }, { [cs]: bJ, error: \"S3 Outposts does not support FIPS\", [cq]: f }, { [cs]: bD, error: \"S3 Outposts does not support S3 Accelerate\", [cq]: f }, { [cs]: [{ [ct]: d, [cu]: [{ [ct]: i, [cu]: [aT, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [cq]: f }, { [cs]: [{ [ct]: i, [cu]: cf, [cw]: x }], [cr]: [{ [cs]: bY, [cr]: [ba, { [cs]: cj, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: ck, [cr]: [{ [cs]: cl, [cr]: [{ [cs]: cm, [cr]: [{ [cs]: [{ [ct]: i, [cu]: ci, [cw]: O }], [cr]: [{ [cs]: [{ [ct]: i, [cu]: [aT, \"resourceId[3]\"], [cw]: L }], [cr]: [{ [cs]: [{ [ct]: h, [cu]: [{ [cv]: O }, K] }], [cr]: [{ [cs]: bE, endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [cy]: bl, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cy]: bl, [cE]: am }, [cq]: n }], [cq]: o }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: expected an access point name\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: Expected a 4-component resource\", [cq]: f }], [cq]: o }, bf], [cq]: o }, bg], [cq]: o }, bh], [cq]: o }], [cq]: o }], [cq]: o }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: The Outpost Id was not set\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [cq]: f }], [cq]: o }, { error: \"Invalid ARN: No ARN type specified\", [cq]: f }], [cq]: o }, { [cs]: [{ [ct]: k, [cu]: [ad, 0, 4, b], [cw]: P }, { [ct]: h, [cu]: [{ [cv]: P }, \"arn:\"] }, { [ct]: r, [cu]: [{ [ct]: d, [cu]: [bm] }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [cq]: f }, { [cs]: [{ [ct]: e, [cu]: [ay, c] }, bm], error: \"Path-style addressing cannot be used with ARN buckets\", [cq]: f }, { [cs]: bG, [cr]: [{ [cs]: bI, [cr]: [{ [cs]: [az], [cr]: [{ [cs]: [Y, ar, X, aA], endpoint: { [cx]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, ar, X, aC, aD], [cr]: [{ endpoint: bn, [cq]: n }], [cq]: o }, { [cs]: [Y, ar, X, aC, aG], endpoint: bn, [cq]: n }, { [cs]: [aH, ar, X, aA], endpoint: { [cx]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, ar, X, aC, aD], [cr]: [{ endpoint: bo, [cq]: n }], [cq]: o }, { [cs]: [aH, ar, X, aC, aG], endpoint: bo, [cq]: n }, { [cs]: [Y, ar, aJ, aA], endpoint: { [cx]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [Y, ar, aJ, aC, aD], [cr]: [{ endpoint: bp, [cq]: n }], [cq]: o }, { [cs]: [Y, ar, aJ, aC, aG], endpoint: bp, [cq]: n }, { [cs]: [aH, Z, ah, aJ, aA], endpoint: { [cx]: Q, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, Z, ah, aJ, aC, aD], [cr]: [{ [cs]: cc, endpoint: bq, [cq]: n }, { endpoint: bq, [cq]: n }], [cq]: o }, { [cs]: [aH, Z, ah, aJ, aC, aG], endpoint: bq, [cq]: n }, { [cs]: [aH, ar, aJ, aA], endpoint: { [cx]: R, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aH, ar, aJ, aC, aD], [cr]: [{ [cs]: cc, endpoint: { [cx]: R, [cy]: aF, [cE]: am }, [cq]: n }, { endpoint: br, [cq]: n }], [cq]: o }, { [cs]: [aH, ar, aJ, aC, aG], endpoint: br, [cq]: n }], [cq]: o }, { error: \"Path-style addressing cannot be used with S3 Accelerate\", [cq]: f }], [cq]: o }], [cq]: o }], [cq]: o }, { [cs]: [{ [ct]: d, [cu]: [bs] }, { [ct]: e, [cu]: [bs, c] }], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: co, [cr]: [aX, aY, { [cs]: bE, endpoint: { [cx]: t, [cy]: bt, [cE]: am }, [cq]: n }, { [cs]: bJ, endpoint: { [cx]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [cy]: bt, [cE]: am }, [cq]: n }, { endpoint: { [cx]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [cy]: bt, [cE]: am }, [cq]: n }], [cq]: o }, aS], [cq]: o }], [cq]: o }, { [cs]: [at], [cr]: [{ [cs]: bI, [cr]: [{ [cs]: co, [cr]: [{ [cs]: [X, Y, ar, aA], endpoint: { [cx]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [X, Y, ar, aC, aD], [cr]: [{ endpoint: bu, [cq]: n }], [cq]: o }, { [cs]: [X, Y, ar, aC, aG], endpoint: bu, [cq]: n }, { [cs]: [X, aH, ar, aA], endpoint: { [cx]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [X, aH, ar, aC, aD], [cr]: [{ endpoint: bv, [cq]: n }], [cq]: o }, { [cs]: [X, aH, ar, aC, aG], endpoint: bv, [cq]: n }, { [cs]: [aJ, Y, ar, aA], endpoint: { [cx]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aJ, Y, ar, aC, aD], [cr]: [{ endpoint: bw, [cq]: n }], [cq]: o }, { [cs]: [aJ, Y, ar, aC, aG], endpoint: bw, [cq]: n }, { [cs]: [aJ, aH, Z, ah, aA], endpoint: { [cx]: t, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH, Z, ah, aC, aD], [cr]: [{ [cs]: cc, endpoint: bx, [cq]: n }, { endpoint: bx, [cq]: n }], [cq]: o }, { [cs]: [aJ, aH, Z, ah, aC, aG], endpoint: bx, [cq]: n }, { [cs]: [aJ, aH, ar, aA], endpoint: { [cx]: S, [cy]: aB, [cE]: am }, [cq]: n }, { [cs]: [aJ, aH, ar, aC, aD], [cr]: [{ [cs]: cc, endpoint: { [cx]: S, [cy]: aF, [cE]: am }, [cq]: n }, { endpoint: by, [cq]: n }], [cq]: o }, { [cs]: [aJ, aH, ar, aC, aG], endpoint: by, [cq]: n }], [cq]: o }, aS], [cq]: o }], [cq]: o }], [cq]: o }, { error: \"A region must be set when sending requests to S3.\", [cq]: f }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AbortMultipartUploadCommand: () => AbortMultipartUploadCommand,\n AnalyticsFilter: () => AnalyticsFilter,\n AnalyticsS3ExportFileFormat: () => AnalyticsS3ExportFileFormat,\n ArchiveStatus: () => ArchiveStatus,\n BucketAccelerateStatus: () => BucketAccelerateStatus,\n BucketAlreadyExists: () => BucketAlreadyExists,\n BucketAlreadyOwnedByYou: () => BucketAlreadyOwnedByYou,\n BucketCannedACL: () => BucketCannedACL,\n BucketLocationConstraint: () => BucketLocationConstraint,\n BucketLogsPermission: () => BucketLogsPermission,\n BucketType: () => BucketType,\n BucketVersioningStatus: () => BucketVersioningStatus,\n ChecksumAlgorithm: () => ChecksumAlgorithm,\n ChecksumMode: () => ChecksumMode,\n ChecksumType: () => ChecksumType,\n CompleteMultipartUploadCommand: () => CompleteMultipartUploadCommand,\n CompleteMultipartUploadOutputFilterSensitiveLog: () => CompleteMultipartUploadOutputFilterSensitiveLog,\n CompleteMultipartUploadRequestFilterSensitiveLog: () => CompleteMultipartUploadRequestFilterSensitiveLog,\n CompressionType: () => CompressionType,\n CopyObjectCommand: () => CopyObjectCommand,\n CopyObjectOutputFilterSensitiveLog: () => CopyObjectOutputFilterSensitiveLog,\n CopyObjectRequestFilterSensitiveLog: () => CopyObjectRequestFilterSensitiveLog,\n CreateBucketCommand: () => CreateBucketCommand,\n CreateBucketMetadataConfigurationCommand: () => CreateBucketMetadataConfigurationCommand,\n CreateBucketMetadataTableConfigurationCommand: () => CreateBucketMetadataTableConfigurationCommand,\n CreateMultipartUploadCommand: () => CreateMultipartUploadCommand,\n CreateMultipartUploadOutputFilterSensitiveLog: () => CreateMultipartUploadOutputFilterSensitiveLog,\n CreateMultipartUploadRequestFilterSensitiveLog: () => CreateMultipartUploadRequestFilterSensitiveLog,\n CreateSessionCommand: () => CreateSessionCommand,\n CreateSessionOutputFilterSensitiveLog: () => CreateSessionOutputFilterSensitiveLog,\n CreateSessionRequestFilterSensitiveLog: () => CreateSessionRequestFilterSensitiveLog,\n DataRedundancy: () => DataRedundancy,\n DeleteBucketAnalyticsConfigurationCommand: () => DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCommand: () => DeleteBucketCommand,\n DeleteBucketCorsCommand: () => DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand: () => DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand: () => DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand: () => DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand: () => DeleteBucketLifecycleCommand,\n DeleteBucketMetadataConfigurationCommand: () => DeleteBucketMetadataConfigurationCommand,\n DeleteBucketMetadataTableConfigurationCommand: () => DeleteBucketMetadataTableConfigurationCommand,\n DeleteBucketMetricsConfigurationCommand: () => DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand: () => DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand: () => DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand: () => DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand: () => DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand: () => DeleteBucketWebsiteCommand,\n DeleteMarkerReplicationStatus: () => DeleteMarkerReplicationStatus,\n DeleteObjectCommand: () => DeleteObjectCommand,\n DeleteObjectTaggingCommand: () => DeleteObjectTaggingCommand,\n DeleteObjectsCommand: () => DeleteObjectsCommand,\n DeletePublicAccessBlockCommand: () => DeletePublicAccessBlockCommand,\n EncodingType: () => EncodingType,\n EncryptionFilterSensitiveLog: () => EncryptionFilterSensitiveLog,\n EncryptionTypeMismatch: () => EncryptionTypeMismatch,\n Event: () => Event,\n ExistingObjectReplicationStatus: () => ExistingObjectReplicationStatus,\n ExpirationState: () => ExpirationState,\n ExpirationStatus: () => ExpirationStatus,\n ExpressionType: () => ExpressionType,\n FileHeaderInfo: () => FileHeaderInfo,\n FilterRuleName: () => FilterRuleName,\n GetBucketAccelerateConfigurationCommand: () => GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand: () => GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand: () => GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand: () => GetBucketCorsCommand,\n GetBucketEncryptionCommand: () => GetBucketEncryptionCommand,\n GetBucketEncryptionOutputFilterSensitiveLog: () => GetBucketEncryptionOutputFilterSensitiveLog,\n GetBucketIntelligentTieringConfigurationCommand: () => GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand: () => GetBucketInventoryConfigurationCommand,\n GetBucketInventoryConfigurationOutputFilterSensitiveLog: () => GetBucketInventoryConfigurationOutputFilterSensitiveLog,\n GetBucketLifecycleConfigurationCommand: () => GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand: () => GetBucketLocationCommand,\n GetBucketLoggingCommand: () => GetBucketLoggingCommand,\n GetBucketMetadataConfigurationCommand: () => GetBucketMetadataConfigurationCommand,\n GetBucketMetadataTableConfigurationCommand: () => GetBucketMetadataTableConfigurationCommand,\n GetBucketMetricsConfigurationCommand: () => GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand: () => GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand: () => GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand: () => GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand: () => GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand: () => GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand: () => GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand: () => GetBucketTaggingCommand,\n GetBucketVersioningCommand: () => GetBucketVersioningCommand,\n GetBucketWebsiteCommand: () => GetBucketWebsiteCommand,\n GetObjectAclCommand: () => GetObjectAclCommand,\n GetObjectAttributesCommand: () => GetObjectAttributesCommand,\n GetObjectAttributesRequestFilterSensitiveLog: () => GetObjectAttributesRequestFilterSensitiveLog,\n GetObjectCommand: () => GetObjectCommand,\n GetObjectLegalHoldCommand: () => GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand: () => GetObjectLockConfigurationCommand,\n GetObjectOutputFilterSensitiveLog: () => GetObjectOutputFilterSensitiveLog,\n GetObjectRequestFilterSensitiveLog: () => GetObjectRequestFilterSensitiveLog,\n GetObjectRetentionCommand: () => GetObjectRetentionCommand,\n GetObjectTaggingCommand: () => GetObjectTaggingCommand,\n GetObjectTorrentCommand: () => GetObjectTorrentCommand,\n GetObjectTorrentOutputFilterSensitiveLog: () => GetObjectTorrentOutputFilterSensitiveLog,\n GetPublicAccessBlockCommand: () => GetPublicAccessBlockCommand,\n HeadBucketCommand: () => HeadBucketCommand,\n HeadObjectCommand: () => HeadObjectCommand,\n HeadObjectOutputFilterSensitiveLog: () => HeadObjectOutputFilterSensitiveLog,\n HeadObjectRequestFilterSensitiveLog: () => HeadObjectRequestFilterSensitiveLog,\n IdempotencyParameterMismatch: () => IdempotencyParameterMismatch,\n IntelligentTieringAccessTier: () => IntelligentTieringAccessTier,\n IntelligentTieringStatus: () => IntelligentTieringStatus,\n InvalidObjectState: () => InvalidObjectState,\n InvalidRequest: () => InvalidRequest,\n InvalidWriteOffset: () => InvalidWriteOffset,\n InventoryConfigurationFilterSensitiveLog: () => InventoryConfigurationFilterSensitiveLog,\n InventoryConfigurationState: () => InventoryConfigurationState,\n InventoryDestinationFilterSensitiveLog: () => InventoryDestinationFilterSensitiveLog,\n InventoryEncryptionFilterSensitiveLog: () => InventoryEncryptionFilterSensitiveLog,\n InventoryFormat: () => InventoryFormat,\n InventoryFrequency: () => InventoryFrequency,\n InventoryIncludedObjectVersions: () => InventoryIncludedObjectVersions,\n InventoryOptionalField: () => InventoryOptionalField,\n InventoryS3BucketDestinationFilterSensitiveLog: () => InventoryS3BucketDestinationFilterSensitiveLog,\n JSONType: () => JSONType,\n ListBucketAnalyticsConfigurationsCommand: () => ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand: () => ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand: () => ListBucketInventoryConfigurationsCommand,\n ListBucketInventoryConfigurationsOutputFilterSensitiveLog: () => ListBucketInventoryConfigurationsOutputFilterSensitiveLog,\n ListBucketMetricsConfigurationsCommand: () => ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand: () => ListBucketsCommand,\n ListDirectoryBucketsCommand: () => ListDirectoryBucketsCommand,\n ListMultipartUploadsCommand: () => ListMultipartUploadsCommand,\n ListObjectVersionsCommand: () => ListObjectVersionsCommand,\n ListObjectsCommand: () => ListObjectsCommand,\n ListObjectsV2Command: () => ListObjectsV2Command,\n ListPartsCommand: () => ListPartsCommand,\n ListPartsRequestFilterSensitiveLog: () => ListPartsRequestFilterSensitiveLog,\n LocationType: () => LocationType,\n MFADelete: () => MFADelete,\n MFADeleteStatus: () => MFADeleteStatus,\n MetadataDirective: () => MetadataDirective,\n MetricsFilter: () => MetricsFilter,\n MetricsStatus: () => MetricsStatus,\n NoSuchBucket: () => NoSuchBucket,\n NoSuchKey: () => NoSuchKey,\n NoSuchUpload: () => NoSuchUpload,\n NotFound: () => NotFound,\n ObjectAlreadyInActiveTierError: () => ObjectAlreadyInActiveTierError,\n ObjectAttributes: () => ObjectAttributes,\n ObjectCannedACL: () => ObjectCannedACL,\n ObjectLockEnabled: () => ObjectLockEnabled,\n ObjectLockLegalHoldStatus: () => ObjectLockLegalHoldStatus,\n ObjectLockMode: () => ObjectLockMode,\n ObjectLockRetentionMode: () => ObjectLockRetentionMode,\n ObjectNotInActiveTierError: () => ObjectNotInActiveTierError,\n ObjectOwnership: () => ObjectOwnership,\n ObjectStorageClass: () => ObjectStorageClass,\n ObjectVersionStorageClass: () => ObjectVersionStorageClass,\n OptionalObjectAttributes: () => OptionalObjectAttributes,\n OutputLocationFilterSensitiveLog: () => OutputLocationFilterSensitiveLog,\n OwnerOverride: () => OwnerOverride,\n PartitionDateSource: () => PartitionDateSource,\n Payer: () => Payer,\n Permission: () => Permission,\n Protocol: () => Protocol,\n PutBucketAccelerateConfigurationCommand: () => PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand: () => PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand: () => PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand: () => PutBucketCorsCommand,\n PutBucketEncryptionCommand: () => PutBucketEncryptionCommand,\n PutBucketEncryptionRequestFilterSensitiveLog: () => PutBucketEncryptionRequestFilterSensitiveLog,\n PutBucketIntelligentTieringConfigurationCommand: () => PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand: () => PutBucketInventoryConfigurationCommand,\n PutBucketInventoryConfigurationRequestFilterSensitiveLog: () => PutBucketInventoryConfigurationRequestFilterSensitiveLog,\n PutBucketLifecycleConfigurationCommand: () => PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand: () => PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand: () => PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand: () => PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand: () => PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand: () => PutBucketPolicyCommand,\n PutBucketReplicationCommand: () => PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand: () => PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand: () => PutBucketTaggingCommand,\n PutBucketVersioningCommand: () => PutBucketVersioningCommand,\n PutBucketWebsiteCommand: () => PutBucketWebsiteCommand,\n PutObjectAclCommand: () => PutObjectAclCommand,\n PutObjectCommand: () => PutObjectCommand,\n PutObjectLegalHoldCommand: () => PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand: () => PutObjectLockConfigurationCommand,\n PutObjectOutputFilterSensitiveLog: () => PutObjectOutputFilterSensitiveLog,\n PutObjectRequestFilterSensitiveLog: () => PutObjectRequestFilterSensitiveLog,\n PutObjectRetentionCommand: () => PutObjectRetentionCommand,\n PutObjectTaggingCommand: () => PutObjectTaggingCommand,\n PutPublicAccessBlockCommand: () => PutPublicAccessBlockCommand,\n QuoteFields: () => QuoteFields,\n RenameObjectCommand: () => RenameObjectCommand,\n ReplicaModificationsStatus: () => ReplicaModificationsStatus,\n ReplicationRuleStatus: () => ReplicationRuleStatus,\n ReplicationStatus: () => ReplicationStatus,\n ReplicationTimeStatus: () => ReplicationTimeStatus,\n RequestCharged: () => RequestCharged,\n RequestPayer: () => RequestPayer,\n RestoreObjectCommand: () => RestoreObjectCommand,\n RestoreObjectRequestFilterSensitiveLog: () => RestoreObjectRequestFilterSensitiveLog,\n RestoreRequestFilterSensitiveLog: () => RestoreRequestFilterSensitiveLog,\n RestoreRequestType: () => RestoreRequestType,\n S3: () => S3,\n S3Client: () => S3Client,\n S3LocationFilterSensitiveLog: () => S3LocationFilterSensitiveLog,\n S3ServiceException: () => S3ServiceException,\n S3TablesBucketType: () => S3TablesBucketType,\n SSEKMSFilterSensitiveLog: () => SSEKMSFilterSensitiveLog,\n SelectObjectContentCommand: () => SelectObjectContentCommand,\n SelectObjectContentEventStream: () => SelectObjectContentEventStream,\n SelectObjectContentEventStreamFilterSensitiveLog: () => SelectObjectContentEventStreamFilterSensitiveLog,\n SelectObjectContentOutputFilterSensitiveLog: () => SelectObjectContentOutputFilterSensitiveLog,\n SelectObjectContentRequestFilterSensitiveLog: () => SelectObjectContentRequestFilterSensitiveLog,\n ServerSideEncryption: () => ServerSideEncryption,\n ServerSideEncryptionByDefaultFilterSensitiveLog: () => ServerSideEncryptionByDefaultFilterSensitiveLog,\n ServerSideEncryptionConfigurationFilterSensitiveLog: () => ServerSideEncryptionConfigurationFilterSensitiveLog,\n ServerSideEncryptionRuleFilterSensitiveLog: () => ServerSideEncryptionRuleFilterSensitiveLog,\n SessionCredentialsFilterSensitiveLog: () => SessionCredentialsFilterSensitiveLog,\n SessionMode: () => SessionMode,\n SseKmsEncryptedObjectsStatus: () => SseKmsEncryptedObjectsStatus,\n StorageClass: () => StorageClass,\n StorageClassAnalysisSchemaVersion: () => StorageClassAnalysisSchemaVersion,\n TableSseAlgorithm: () => TableSseAlgorithm,\n TaggingDirective: () => TaggingDirective,\n Tier: () => Tier,\n TooManyParts: () => TooManyParts,\n TransitionDefaultMinimumObjectSize: () => TransitionDefaultMinimumObjectSize,\n TransitionStorageClass: () => TransitionStorageClass,\n Type: () => Type,\n UpdateBucketMetadataInventoryTableConfigurationCommand: () => UpdateBucketMetadataInventoryTableConfigurationCommand,\n UpdateBucketMetadataJournalTableConfigurationCommand: () => UpdateBucketMetadataJournalTableConfigurationCommand,\n UploadPartCommand: () => UploadPartCommand,\n UploadPartCopyCommand: () => UploadPartCopyCommand,\n UploadPartCopyOutputFilterSensitiveLog: () => UploadPartCopyOutputFilterSensitiveLog,\n UploadPartCopyRequestFilterSensitiveLog: () => UploadPartCopyRequestFilterSensitiveLog,\n UploadPartOutputFilterSensitiveLog: () => UploadPartOutputFilterSensitiveLog,\n UploadPartRequestFilterSensitiveLog: () => UploadPartRequestFilterSensitiveLog,\n WriteGetObjectResponseCommand: () => WriteGetObjectResponseCommand,\n WriteGetObjectResponseRequestFilterSensitiveLog: () => WriteGetObjectResponseRequestFilterSensitiveLog,\n __Client: () => import_smithy_client.Client,\n paginateListBuckets: () => paginateListBuckets,\n paginateListDirectoryBuckets: () => paginateListDirectoryBuckets,\n paginateListObjectsV2: () => paginateListObjectsV2,\n paginateListParts: () => paginateListParts,\n waitForBucketExists: () => waitForBucketExists,\n waitForBucketNotExists: () => waitForBucketNotExists,\n waitForObjectExists: () => waitForObjectExists,\n waitForObjectNotExists: () => waitForObjectNotExists,\n waitUntilBucketExists: () => waitUntilBucketExists,\n waitUntilBucketNotExists: () => waitUntilBucketNotExists,\n waitUntilObjectExists: () => waitUntilObjectExists,\n waitUntilObjectNotExists: () => waitUntilObjectNotExists\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/S3Client.ts\nvar import_middleware_expect_continue = require(\"@aws-sdk/middleware-expect-continue\");\nvar import_middleware_flexible_checksums = require(\"@aws-sdk/middleware-flexible-checksums\");\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_sdk_s32 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_eventstream_serde_config_resolver = require(\"@smithy/eventstream-serde-config-resolver\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\n\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/commands/CreateSessionCommand.ts\nvar import_middleware_sdk_s3 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n forcePathStyle: options.forcePathStyle ?? false,\n useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n defaultSigningName: \"s3\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n DisableS3ExpressSessionAuth: { type: \"clientContextParams\", name: \"disableS3ExpressSessionAuth\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/models/models_0.ts\n\n\n// src/models/S3ServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar S3ServiceException = class _S3ServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"S3ServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _S3ServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar RequestCharged = {\n requester: \"requester\"\n};\nvar RequestPayer = {\n requester: \"requester\"\n};\nvar NoSuchUpload = class _NoSuchUpload extends S3ServiceException {\n static {\n __name(this, \"NoSuchUpload\");\n }\n name = \"NoSuchUpload\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchUpload\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchUpload.prototype);\n }\n};\nvar BucketAccelerateStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\"\n};\nvar Type = {\n AmazonCustomerByEmail: \"AmazonCustomerByEmail\",\n CanonicalUser: \"CanonicalUser\",\n Group: \"Group\"\n};\nvar Permission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n READ_ACP: \"READ_ACP\",\n WRITE: \"WRITE\",\n WRITE_ACP: \"WRITE_ACP\"\n};\nvar OwnerOverride = {\n Destination: \"Destination\"\n};\nvar ChecksumType = {\n COMPOSITE: \"COMPOSITE\",\n FULL_OBJECT: \"FULL_OBJECT\"\n};\nvar ServerSideEncryption = {\n AES256: \"AES256\",\n aws_fsx: \"aws:fsx\",\n aws_kms: \"aws:kms\",\n aws_kms_dsse: \"aws:kms:dsse\"\n};\nvar ObjectCannedACL = {\n authenticated_read: \"authenticated-read\",\n aws_exec_read: \"aws-exec-read\",\n bucket_owner_full_control: \"bucket-owner-full-control\",\n bucket_owner_read: \"bucket-owner-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\"\n};\nvar ChecksumAlgorithm = {\n CRC32: \"CRC32\",\n CRC32C: \"CRC32C\",\n CRC64NVME: \"CRC64NVME\",\n SHA1: \"SHA1\",\n SHA256: \"SHA256\"\n};\nvar MetadataDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\"\n};\nvar ObjectLockLegalHoldStatus = {\n OFF: \"OFF\",\n ON: \"ON\"\n};\nvar ObjectLockMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\"\n};\nvar StorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n EXPRESS_ONEZONE: \"EXPRESS_ONEZONE\",\n FSX_OPENZFS: \"FSX_OPENZFS\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\"\n};\nvar TaggingDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\"\n};\nvar ObjectNotInActiveTierError = class _ObjectNotInActiveTierError extends S3ServiceException {\n static {\n __name(this, \"ObjectNotInActiveTierError\");\n }\n name = \"ObjectNotInActiveTierError\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ObjectNotInActiveTierError.prototype);\n }\n};\nvar BucketAlreadyExists = class _BucketAlreadyExists extends S3ServiceException {\n static {\n __name(this, \"BucketAlreadyExists\");\n }\n name = \"BucketAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BucketAlreadyExists.prototype);\n }\n};\nvar BucketAlreadyOwnedByYou = class _BucketAlreadyOwnedByYou extends S3ServiceException {\n static {\n __name(this, \"BucketAlreadyOwnedByYou\");\n }\n name = \"BucketAlreadyOwnedByYou\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _BucketAlreadyOwnedByYou.prototype);\n }\n};\nvar BucketCannedACL = {\n authenticated_read: \"authenticated-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\"\n};\nvar DataRedundancy = {\n SingleAvailabilityZone: \"SingleAvailabilityZone\",\n SingleLocalZone: \"SingleLocalZone\"\n};\nvar BucketType = {\n Directory: \"Directory\"\n};\nvar LocationType = {\n AvailabilityZone: \"AvailabilityZone\",\n LocalZone: \"LocalZone\"\n};\nvar BucketLocationConstraint = {\n EU: \"EU\",\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ap_southeast_4: \"ap-southeast-4\",\n ap_southeast_5: \"ap-southeast-5\",\n ca_central_1: \"ca-central-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_central_2: \"eu-central-2\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n il_central_1: \"il-central-1\",\n me_central_1: \"me-central-1\",\n me_south_1: \"me-south-1\",\n sa_east_1: \"sa-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\"\n};\nvar ObjectOwnership = {\n BucketOwnerEnforced: \"BucketOwnerEnforced\",\n BucketOwnerPreferred: \"BucketOwnerPreferred\",\n ObjectWriter: \"ObjectWriter\"\n};\nvar InventoryConfigurationState = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar TableSseAlgorithm = {\n AES256: \"AES256\",\n aws_kms: \"aws:kms\"\n};\nvar ExpirationState = {\n DISABLED: \"DISABLED\",\n ENABLED: \"ENABLED\"\n};\nvar SessionMode = {\n ReadOnly: \"ReadOnly\",\n ReadWrite: \"ReadWrite\"\n};\nvar NoSuchBucket = class _NoSuchBucket extends S3ServiceException {\n static {\n __name(this, \"NoSuchBucket\");\n }\n name = \"NoSuchBucket\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchBucket\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchBucket.prototype);\n }\n};\nvar AnalyticsFilter;\n((AnalyticsFilter2) => {\n AnalyticsFilter2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Prefix !== void 0) return visitor.Prefix(value.Prefix);\n if (value.Tag !== void 0) return visitor.Tag(value.Tag);\n if (value.And !== void 0) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nvar AnalyticsS3ExportFileFormat = {\n CSV: \"CSV\"\n};\nvar StorageClassAnalysisSchemaVersion = {\n V_1: \"V_1\"\n};\nvar IntelligentTieringStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar IntelligentTieringAccessTier = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\"\n};\nvar InventoryFormat = {\n CSV: \"CSV\",\n ORC: \"ORC\",\n Parquet: \"Parquet\"\n};\nvar InventoryIncludedObjectVersions = {\n All: \"All\",\n Current: \"Current\"\n};\nvar InventoryOptionalField = {\n BucketKeyStatus: \"BucketKeyStatus\",\n ChecksumAlgorithm: \"ChecksumAlgorithm\",\n ETag: \"ETag\",\n EncryptionStatus: \"EncryptionStatus\",\n IntelligentTieringAccessTier: \"IntelligentTieringAccessTier\",\n IsMultipartUploaded: \"IsMultipartUploaded\",\n LastModifiedDate: \"LastModifiedDate\",\n ObjectAccessControlList: \"ObjectAccessControlList\",\n ObjectLockLegalHoldStatus: \"ObjectLockLegalHoldStatus\",\n ObjectLockMode: \"ObjectLockMode\",\n ObjectLockRetainUntilDate: \"ObjectLockRetainUntilDate\",\n ObjectOwner: \"ObjectOwner\",\n ReplicationStatus: \"ReplicationStatus\",\n Size: \"Size\",\n StorageClass: \"StorageClass\"\n};\nvar InventoryFrequency = {\n Daily: \"Daily\",\n Weekly: \"Weekly\"\n};\nvar TransitionStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n STANDARD_IA: \"STANDARD_IA\"\n};\nvar ExpirationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar TransitionDefaultMinimumObjectSize = {\n all_storage_classes_128K: \"all_storage_classes_128K\",\n varies_by_storage_class: \"varies_by_storage_class\"\n};\nvar BucketLogsPermission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n WRITE: \"WRITE\"\n};\nvar PartitionDateSource = {\n DeliveryTime: \"DeliveryTime\",\n EventTime: \"EventTime\"\n};\nvar S3TablesBucketType = {\n aws: \"aws\",\n customer: \"customer\"\n};\nvar MetricsFilter;\n((MetricsFilter2) => {\n MetricsFilter2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Prefix !== void 0) return visitor.Prefix(value.Prefix);\n if (value.Tag !== void 0) return visitor.Tag(value.Tag);\n if (value.AccessPointArn !== void 0) return visitor.AccessPointArn(value.AccessPointArn);\n if (value.And !== void 0) return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(MetricsFilter || (MetricsFilter = {}));\nvar Event = {\n s3_IntelligentTiering: \"s3:IntelligentTiering\",\n s3_LifecycleExpiration_: \"s3:LifecycleExpiration:*\",\n s3_LifecycleExpiration_Delete: \"s3:LifecycleExpiration:Delete\",\n s3_LifecycleExpiration_DeleteMarkerCreated: \"s3:LifecycleExpiration:DeleteMarkerCreated\",\n s3_LifecycleTransition: \"s3:LifecycleTransition\",\n s3_ObjectAcl_Put: \"s3:ObjectAcl:Put\",\n s3_ObjectCreated_: \"s3:ObjectCreated:*\",\n s3_ObjectCreated_CompleteMultipartUpload: \"s3:ObjectCreated:CompleteMultipartUpload\",\n s3_ObjectCreated_Copy: \"s3:ObjectCreated:Copy\",\n s3_ObjectCreated_Post: \"s3:ObjectCreated:Post\",\n s3_ObjectCreated_Put: \"s3:ObjectCreated:Put\",\n s3_ObjectRemoved_: \"s3:ObjectRemoved:*\",\n s3_ObjectRemoved_Delete: \"s3:ObjectRemoved:Delete\",\n s3_ObjectRemoved_DeleteMarkerCreated: \"s3:ObjectRemoved:DeleteMarkerCreated\",\n s3_ObjectRestore_: \"s3:ObjectRestore:*\",\n s3_ObjectRestore_Completed: \"s3:ObjectRestore:Completed\",\n s3_ObjectRestore_Delete: \"s3:ObjectRestore:Delete\",\n s3_ObjectRestore_Post: \"s3:ObjectRestore:Post\",\n s3_ObjectTagging_: \"s3:ObjectTagging:*\",\n s3_ObjectTagging_Delete: \"s3:ObjectTagging:Delete\",\n s3_ObjectTagging_Put: \"s3:ObjectTagging:Put\",\n s3_ReducedRedundancyLostObject: \"s3:ReducedRedundancyLostObject\",\n s3_Replication_: \"s3:Replication:*\",\n s3_Replication_OperationFailedReplication: \"s3:Replication:OperationFailedReplication\",\n s3_Replication_OperationMissedThreshold: \"s3:Replication:OperationMissedThreshold\",\n s3_Replication_OperationNotTracked: \"s3:Replication:OperationNotTracked\",\n s3_Replication_OperationReplicatedAfterThreshold: \"s3:Replication:OperationReplicatedAfterThreshold\"\n};\nvar FilterRuleName = {\n prefix: \"prefix\",\n suffix: \"suffix\"\n};\nvar DeleteMarkerReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar MetricsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ReplicationTimeStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ExistingObjectReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ReplicaModificationsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar SseKmsEncryptedObjectsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar ReplicationRuleStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar Payer = {\n BucketOwner: \"BucketOwner\",\n Requester: \"Requester\"\n};\nvar MFADeleteStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar BucketVersioningStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\"\n};\nvar Protocol = {\n http: \"http\",\n https: \"https\"\n};\nvar ReplicationStatus = {\n COMPLETE: \"COMPLETE\",\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n REPLICA: \"REPLICA\"\n};\nvar ChecksumMode = {\n ENABLED: \"ENABLED\"\n};\nvar InvalidObjectState = class _InvalidObjectState extends S3ServiceException {\n static {\n __name(this, \"InvalidObjectState\");\n }\n name = \"InvalidObjectState\";\n $fault = \"client\";\n StorageClass;\n AccessTier;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidObjectState\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidObjectState.prototype);\n this.StorageClass = opts.StorageClass;\n this.AccessTier = opts.AccessTier;\n }\n};\nvar NoSuchKey = class _NoSuchKey extends S3ServiceException {\n static {\n __name(this, \"NoSuchKey\");\n }\n name = \"NoSuchKey\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NoSuchKey\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NoSuchKey.prototype);\n }\n};\nvar ObjectAttributes = {\n CHECKSUM: \"Checksum\",\n ETAG: \"ETag\",\n OBJECT_PARTS: \"ObjectParts\",\n OBJECT_SIZE: \"ObjectSize\",\n STORAGE_CLASS: \"StorageClass\"\n};\nvar ObjectLockEnabled = {\n Enabled: \"Enabled\"\n};\nvar ObjectLockRetentionMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\"\n};\nvar NotFound = class _NotFound extends S3ServiceException {\n static {\n __name(this, \"NotFound\");\n }\n name = \"NotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"NotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _NotFound.prototype);\n }\n};\nvar ArchiveStatus = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\"\n};\nvar EncodingType = {\n url: \"url\"\n};\nvar CompleteMultipartUploadOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"CompleteMultipartUploadOutputFilterSensitiveLog\");\nvar CompleteMultipartUploadRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CompleteMultipartUploadRequestFilterSensitiveLog\");\nvar CopyObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CopyObjectOutputFilterSensitiveLog\");\nvar CopyObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING },\n ...obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CopyObjectRequestFilterSensitiveLog\");\nvar CreateMultipartUploadOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateMultipartUploadOutputFilterSensitiveLog\");\nvar CreateMultipartUploadRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateMultipartUploadRequestFilterSensitiveLog\");\nvar SessionCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SessionToken && { SessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"SessionCredentialsFilterSensitiveLog\");\nvar CreateSessionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING },\n ...obj.Credentials && { Credentials: SessionCredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"CreateSessionOutputFilterSensitiveLog\");\nvar CreateSessionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateSessionRequestFilterSensitiveLog\");\nvar ServerSideEncryptionByDefaultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KMSMasterKeyID && { KMSMasterKeyID: import_smithy_client.SENSITIVE_STRING }\n}), \"ServerSideEncryptionByDefaultFilterSensitiveLog\");\nvar ServerSideEncryptionRuleFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefaultFilterSensitiveLog(\n obj.ApplyServerSideEncryptionByDefault\n )\n }\n}), \"ServerSideEncryptionRuleFilterSensitiveLog\");\nvar ServerSideEncryptionConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Rules && { Rules: obj.Rules.map((item) => ServerSideEncryptionRuleFilterSensitiveLog(item)) }\n}), \"ServerSideEncryptionConfigurationFilterSensitiveLog\");\nvar GetBucketEncryptionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(\n obj.ServerSideEncryptionConfiguration\n )\n }\n}), \"GetBucketEncryptionOutputFilterSensitiveLog\");\nvar SSEKMSFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KeyId && { KeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"SSEKMSFilterSensitiveLog\");\nvar InventoryEncryptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMS && { SSEKMS: SSEKMSFilterSensitiveLog(obj.SSEKMS) }\n}), \"InventoryEncryptionFilterSensitiveLog\");\nvar InventoryS3BucketDestinationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Encryption && { Encryption: InventoryEncryptionFilterSensitiveLog(obj.Encryption) }\n}), \"InventoryS3BucketDestinationFilterSensitiveLog\");\nvar InventoryDestinationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestinationFilterSensitiveLog(obj.S3BucketDestination)\n }\n}), \"InventoryDestinationFilterSensitiveLog\");\nvar InventoryConfigurationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Destination && { Destination: InventoryDestinationFilterSensitiveLog(obj.Destination) }\n}), \"InventoryConfigurationFilterSensitiveLog\");\nvar GetBucketInventoryConfigurationOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration)\n }\n}), \"GetBucketInventoryConfigurationOutputFilterSensitiveLog\");\nvar GetObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"GetObjectOutputFilterSensitiveLog\");\nvar GetObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"GetObjectRequestFilterSensitiveLog\");\nvar GetObjectAttributesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"GetObjectAttributesRequestFilterSensitiveLog\");\nvar GetObjectTorrentOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"GetObjectTorrentOutputFilterSensitiveLog\");\nvar HeadObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"HeadObjectOutputFilterSensitiveLog\");\nvar HeadObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"HeadObjectRequestFilterSensitiveLog\");\nvar ListBucketInventoryConfigurationsOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map(\n (item) => InventoryConfigurationFilterSensitiveLog(item)\n )\n }\n}), \"ListBucketInventoryConfigurationsOutputFilterSensitiveLog\");\n\n// src/protocols/Aws_restXml.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/models_1.ts\n\nvar ObjectStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n EXPRESS_ONEZONE: \"EXPRESS_ONEZONE\",\n FSX_OPENZFS: \"FSX_OPENZFS\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\"\n};\nvar OptionalObjectAttributes = {\n RESTORE_STATUS: \"RestoreStatus\"\n};\nvar ObjectVersionStorageClass = {\n STANDARD: \"STANDARD\"\n};\nvar MFADelete = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\"\n};\nvar EncryptionTypeMismatch = class _EncryptionTypeMismatch extends S3ServiceException {\n static {\n __name(this, \"EncryptionTypeMismatch\");\n }\n name = \"EncryptionTypeMismatch\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EncryptionTypeMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EncryptionTypeMismatch.prototype);\n }\n};\nvar InvalidRequest = class _InvalidRequest extends S3ServiceException {\n static {\n __name(this, \"InvalidRequest\");\n }\n name = \"InvalidRequest\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequest\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequest.prototype);\n }\n};\nvar InvalidWriteOffset = class _InvalidWriteOffset extends S3ServiceException {\n static {\n __name(this, \"InvalidWriteOffset\");\n }\n name = \"InvalidWriteOffset\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidWriteOffset\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidWriteOffset.prototype);\n }\n};\nvar TooManyParts = class _TooManyParts extends S3ServiceException {\n static {\n __name(this, \"TooManyParts\");\n }\n name = \"TooManyParts\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyParts\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyParts.prototype);\n }\n};\nvar IdempotencyParameterMismatch = class _IdempotencyParameterMismatch extends S3ServiceException {\n static {\n __name(this, \"IdempotencyParameterMismatch\");\n }\n name = \"IdempotencyParameterMismatch\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IdempotencyParameterMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IdempotencyParameterMismatch.prototype);\n }\n};\nvar ObjectAlreadyInActiveTierError = class _ObjectAlreadyInActiveTierError extends S3ServiceException {\n static {\n __name(this, \"ObjectAlreadyInActiveTierError\");\n }\n name = \"ObjectAlreadyInActiveTierError\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ObjectAlreadyInActiveTierError.prototype);\n }\n};\nvar Tier = {\n Bulk: \"Bulk\",\n Expedited: \"Expedited\",\n Standard: \"Standard\"\n};\nvar ExpressionType = {\n SQL: \"SQL\"\n};\nvar CompressionType = {\n BZIP2: \"BZIP2\",\n GZIP: \"GZIP\",\n NONE: \"NONE\"\n};\nvar FileHeaderInfo = {\n IGNORE: \"IGNORE\",\n NONE: \"NONE\",\n USE: \"USE\"\n};\nvar JSONType = {\n DOCUMENT: \"DOCUMENT\",\n LINES: \"LINES\"\n};\nvar QuoteFields = {\n ALWAYS: \"ALWAYS\",\n ASNEEDED: \"ASNEEDED\"\n};\nvar RestoreRequestType = {\n SELECT: \"SELECT\"\n};\nvar SelectObjectContentEventStream;\n((SelectObjectContentEventStream3) => {\n SelectObjectContentEventStream3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Records !== void 0) return visitor.Records(value.Records);\n if (value.Stats !== void 0) return visitor.Stats(value.Stats);\n if (value.Progress !== void 0) return visitor.Progress(value.Progress);\n if (value.Cont !== void 0) return visitor.Cont(value.Cont);\n if (value.End !== void 0) return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nvar ListPartsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"ListPartsRequestFilterSensitiveLog\");\nvar PutBucketEncryptionRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(\n obj.ServerSideEncryptionConfiguration\n )\n }\n}), \"PutBucketEncryptionRequestFilterSensitiveLog\");\nvar PutBucketInventoryConfigurationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration)\n }\n}), \"PutBucketInventoryConfigurationRequestFilterSensitiveLog\");\nvar PutObjectOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"PutObjectOutputFilterSensitiveLog\");\nvar PutObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING },\n ...obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: import_smithy_client.SENSITIVE_STRING }\n}), \"PutObjectRequestFilterSensitiveLog\");\nvar EncryptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.KMSKeyId && { KMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"EncryptionFilterSensitiveLog\");\nvar S3LocationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Encryption && { Encryption: EncryptionFilterSensitiveLog(obj.Encryption) }\n}), \"S3LocationFilterSensitiveLog\");\nvar OutputLocationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.S3 && { S3: S3LocationFilterSensitiveLog(obj.S3) }\n}), \"OutputLocationFilterSensitiveLog\");\nvar RestoreRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OutputLocation && { OutputLocation: OutputLocationFilterSensitiveLog(obj.OutputLocation) }\n}), \"RestoreRequestFilterSensitiveLog\");\nvar RestoreObjectRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.RestoreRequest && { RestoreRequest: RestoreRequestFilterSensitiveLog(obj.RestoreRequest) }\n}), \"RestoreObjectRequestFilterSensitiveLog\");\nvar SelectObjectContentEventStreamFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.Records !== void 0) return { Records: obj.Records };\n if (obj.Stats !== void 0) return { Stats: obj.Stats };\n if (obj.Progress !== void 0) return { Progress: obj.Progress };\n if (obj.Cont !== void 0) return { Cont: obj.Cont };\n if (obj.End !== void 0) return { End: obj.End };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"SelectObjectContentEventStreamFilterSensitiveLog\");\nvar SelectObjectContentOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: \"STREAMING_CONTENT\" }\n}), \"SelectObjectContentOutputFilterSensitiveLog\");\nvar SelectObjectContentRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"SelectObjectContentRequestFilterSensitiveLog\");\nvar UploadPartOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartOutputFilterSensitiveLog\");\nvar UploadPartRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartRequestFilterSensitiveLog\");\nvar UploadPartCopyOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartCopyOutputFilterSensitiveLog\");\nvar UploadPartCopyRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSECustomerKey && { SSECustomerKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: import_smithy_client.SENSITIVE_STRING }\n}), \"UploadPartCopyRequestFilterSensitiveLog\");\nvar WriteGetObjectResponseRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SSEKMSKeyId && { SSEKMSKeyId: import_smithy_client.SENSITIVE_STRING }\n}), \"WriteGetObjectResponseRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restXml.ts\nvar se_AbortMultipartUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaimit]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMIT]), () => (0, import_smithy_client.dateToUtcString)(input[_IMIT]).toString()]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"AbortMultipartUpload\"],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_AbortMultipartUploadCommand\");\nvar se_CompleteMultipartUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xacc]: input[_CCRC],\n [_xacc_]: input[_CCRCC],\n [_xacc__]: input[_CCRCNVME],\n [_xacs]: input[_CSHA],\n [_xacs_]: input[_CSHAh],\n [_xact]: input[_CT],\n [_xamos]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_MOS]), () => input[_MOS].toString()],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_im]: input[_IM],\n [_inm]: input[_INM],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n let contents;\n if (input.MultipartUpload !== void 0) {\n contents = se_CompletedMultipartUpload(input.MultipartUpload, context);\n contents = contents.n(\"CompleteMultipartUpload\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CompleteMultipartUploadCommand\");\nvar se_CopyObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n [_xaa]: input[_ACL],\n [_cc]: input[_CC],\n [_xaca]: input[_CA],\n [_cd]: input[_CD],\n [_ce]: input[_CE],\n [_cl]: input[_CL],\n [_ct]: input[_CTo],\n [_xacs__]: input[_CS],\n [_xacsim]: input[_CSIM],\n [_xacsims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIMS]).toString()],\n [_xacsinm]: input[_CSINM],\n [_xacsius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIUS]).toString()],\n [_e]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagwa]: input[_GWACP],\n [_xamd]: input[_MD],\n [_xatd]: input[_TD],\n [_xasse]: input[_SSE],\n [_xasc]: input[_SC],\n [_xawrl]: input[_WRL],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()],\n [_xacssseca]: input[_CSSSECA],\n [_xacssseck]: input[_CSSSECK],\n [_xacssseckm]: input[_CSSSECKMD],\n [_xarp]: input[_RP],\n [_xat]: input[_T],\n [_xaolm]: input[_OLM],\n [_xaolrud]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]), () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()],\n [_xaollh]: input[_OLLHS],\n [_xaebo]: input[_EBO],\n [_xasebo]: input[_ESBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"CopyObject\"]\n });\n let body;\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CopyObjectCommand\");\nvar se_CreateBucketCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaa]: input[_ACL],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagw]: input[_GW],\n [_xagwa]: input[_GWACP],\n [_xabole]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLEFB]), () => input[_OLEFB].toString()],\n [_xaoo]: input[_OO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n let contents;\n if (input.CreateBucketConfiguration !== void 0) {\n contents = se_CreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).b(body);\n return b.build();\n}, \"se_CreateBucketCommand\");\nvar se_CreateBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mC]: [, \"\"]\n });\n let body;\n let contents;\n if (input.MetadataConfiguration !== void 0) {\n contents = se_MetadataConfiguration(input.MetadataConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateBucketMetadataConfigurationCommand\");\nvar se_CreateBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mT]: [, \"\"]\n });\n let body;\n let contents;\n if (input.MetadataTableConfiguration !== void 0) {\n contents = se_MetadataTableConfiguration(input.MetadataTableConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateBucketMetadataTableConfigurationCommand\");\nvar se_CreateMultipartUploadCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n [_xaa]: input[_ACL],\n [_cc]: input[_CC],\n [_cd]: input[_CD],\n [_ce]: input[_CE],\n [_cl]: input[_CL],\n [_ct]: input[_CTo],\n [_e]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagwa]: input[_GWACP],\n [_xasse]: input[_SSE],\n [_xasc]: input[_SC],\n [_xawrl]: input[_WRL],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()],\n [_xarp]: input[_RP],\n [_xat]: input[_T],\n [_xaolm]: input[_OLM],\n [_xaolrud]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]), () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()],\n [_xaollh]: input[_OLLHS],\n [_xaebo]: input[_EBO],\n [_xaca]: input[_CA],\n [_xact]: input[_CT]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_u]: [, \"\"]\n });\n let body;\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateMultipartUploadCommand\");\nvar se_CreateSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xacsm]: input[_SM],\n [_xasse]: input[_SSE],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_s]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_CreateSessionCommand\");\nvar se_DeleteBucketCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n b.m(\"DELETE\").h(headers).b(body);\n return b.build();\n}, \"se_DeleteBucketCommand\");\nvar se_DeleteBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketAnalyticsConfigurationCommand\");\nvar se_DeleteBucketCorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_c]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketCorsCommand\");\nvar se_DeleteBucketEncryptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_en]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketEncryptionCommand\");\nvar se_DeleteBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketIntelligentTieringConfigurationCommand\");\nvar se_DeleteBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketInventoryConfigurationCommand\");\nvar se_DeleteBucketLifecycleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketLifecycleCommand\");\nvar se_DeleteBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mC]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketMetadataConfigurationCommand\");\nvar se_DeleteBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mT]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketMetadataTableConfigurationCommand\");\nvar se_DeleteBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketMetricsConfigurationCommand\");\nvar se_DeleteBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_oC]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketOwnershipControlsCommand\");\nvar se_DeleteBucketPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_p]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketPolicyCommand\");\nvar se_DeleteBucketReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_r]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketReplicationCommand\");\nvar se_DeleteBucketTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketTaggingCommand\");\nvar se_DeleteBucketWebsiteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_w]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteBucketWebsiteCommand\");\nvar se_DeleteObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xam]: input[_MFA],\n [_xarp]: input[_RP],\n [_xabgr]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BGR]), () => input[_BGR].toString()],\n [_xaebo]: input[_EBO],\n [_im]: input[_IM],\n [_xaimlmt]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMLMT]), () => (0, import_smithy_client.dateToUtcString)(input[_IMLMT]).toString()],\n [_xaims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMS]), () => input[_IMS].toString()]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"DeleteObject\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteObjectCommand\");\nvar se_DeleteObjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xam]: input[_MFA],\n [_xarp]: input[_RP],\n [_xabgr]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BGR]), () => input[_BGR].toString()],\n [_xaebo]: input[_EBO],\n [_xasca]: input[_CA]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_d]: [, \"\"]\n });\n let body;\n let contents;\n if (input.Delete !== void 0) {\n contents = se_Delete(input.Delete, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteObjectsCommand\");\nvar se_DeleteObjectTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeleteObjectTaggingCommand\");\nvar se_DeletePublicAccessBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pAB]: [, \"\"]\n });\n let body;\n b.m(\"DELETE\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_DeletePublicAccessBlockCommand\");\nvar se_GetBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ac]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketAccelerateConfigurationCommand\");\nvar se_GetBucketAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketAclCommand\");\nvar se_GetBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_xi]: [, \"GetBucketAnalyticsConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketAnalyticsConfigurationCommand\");\nvar se_GetBucketCorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_c]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketCorsCommand\");\nvar se_GetBucketEncryptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_en]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketEncryptionCommand\");\nvar se_GetBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_xi]: [, \"GetBucketIntelligentTieringConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketIntelligentTieringConfigurationCommand\");\nvar se_GetBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_xi]: [, \"GetBucketInventoryConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketInventoryConfigurationCommand\");\nvar se_GetBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketLifecycleConfigurationCommand\");\nvar se_GetBucketLocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_lo]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketLocationCommand\");\nvar se_GetBucketLoggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_log]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketLoggingCommand\");\nvar se_GetBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mC]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketMetadataConfigurationCommand\");\nvar se_GetBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mT]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketMetadataTableConfigurationCommand\");\nvar se_GetBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_xi]: [, \"GetBucketMetricsConfiguration\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketMetricsConfigurationCommand\");\nvar se_GetBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketNotificationConfigurationCommand\");\nvar se_GetBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_oC]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketOwnershipControlsCommand\");\nvar se_GetBucketPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_p]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketPolicyCommand\");\nvar se_GetBucketPolicyStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pS]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketPolicyStatusCommand\");\nvar se_GetBucketReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_r]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketReplicationCommand\");\nvar se_GetBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_rP]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketRequestPaymentCommand\");\nvar se_GetBucketTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketTaggingCommand\");\nvar se_GetBucketVersioningCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_v]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketVersioningCommand\");\nvar se_GetBucketWebsiteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_w]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetBucketWebsiteCommand\");\nvar se_GetObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_im]: input[_IM],\n [_ims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMSf]), () => (0, import_smithy_client.dateToUtcString)(input[_IMSf]).toString()],\n [_inm]: input[_INM],\n [_ius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IUS]), () => (0, import_smithy_client.dateToUtcString)(input[_IUS]).toString()],\n [_ra]: input[_R],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xacm]: input[_CM]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"GetObject\"],\n [_rcc]: [, input[_RCC]],\n [_rcd]: [, input[_RCD]],\n [_rce]: [, input[_RCE]],\n [_rcl]: [, input[_RCL]],\n [_rct]: [, input[_RCT]],\n [_re]: [() => input.ResponseExpires !== void 0, () => (0, import_smithy_client.dateToUtcString)(input[_RE]).toString()],\n [_vI]: [, input[_VI]],\n [_pN]: [() => input.PartNumber !== void 0, () => input[_PN].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectCommand\");\nvar se_GetObjectAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectAclCommand\");\nvar se_GetObjectAttributesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xamp]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_MP]), () => input[_MP].toString()],\n [_xapnm]: input[_PNM],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaoa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OA]), () => (input[_OA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_at]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectAttributesCommand\");\nvar se_GetObjectLegalHoldCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_lh]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectLegalHoldCommand\");\nvar se_GetObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ol]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectLockConfigurationCommand\");\nvar se_GetObjectRetentionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_ret]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectRetentionCommand\");\nvar se_GetObjectTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectTaggingCommand\");\nvar se_GetObjectTorrentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_to]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetObjectTorrentCommand\");\nvar se_GetPublicAccessBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pAB]: [, \"\"]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetPublicAccessBlockCommand\");\nvar se_HeadBucketCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n b.m(\"HEAD\").h(headers).b(body);\n return b.build();\n}, \"se_HeadBucketCommand\");\nvar se_HeadObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_im]: input[_IM],\n [_ims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IMSf]), () => (0, import_smithy_client.dateToUtcString)(input[_IMSf]).toString()],\n [_inm]: input[_INM],\n [_ius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_IUS]), () => (0, import_smithy_client.dateToUtcString)(input[_IUS]).toString()],\n [_ra]: input[_R],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xacm]: input[_CM]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_rcc]: [, input[_RCC]],\n [_rcd]: [, input[_RCD]],\n [_rce]: [, input[_RCE]],\n [_rcl]: [, input[_RCL]],\n [_rct]: [, input[_RCT]],\n [_re]: [() => input.ResponseExpires !== void 0, () => (0, import_smithy_client.dateToUtcString)(input[_RE]).toString()],\n [_vI]: [, input[_VI]],\n [_pN]: [() => input.PartNumber !== void 0, () => input[_PN].toString()]\n });\n let body;\n b.m(\"HEAD\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_HeadObjectCommand\");\nvar se_ListBucketAnalyticsConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_xi]: [, \"ListBucketAnalyticsConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketAnalyticsConfigurationsCommand\");\nvar se_ListBucketIntelligentTieringConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_xi]: [, \"ListBucketIntelligentTieringConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketIntelligentTieringConfigurationsCommand\");\nvar se_ListBucketInventoryConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_xi]: [, \"ListBucketInventoryConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketInventoryConfigurationsCommand\");\nvar se_ListBucketMetricsConfigurationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_xi]: [, \"ListBucketMetricsConfigurations\"],\n [_ct_]: [, input[_CTon]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketMetricsConfigurationsCommand\");\nvar se_ListBucketsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/\");\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"ListBuckets\"],\n [_mb]: [() => input.MaxBuckets !== void 0, () => input[_MB].toString()],\n [_ct_]: [, input[_CTon]],\n [_pr]: [, input[_P]],\n [_br]: [, input[_BR]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListBucketsCommand\");\nvar se_ListDirectoryBucketsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = {};\n b.bp(\"/\");\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"ListDirectoryBuckets\"],\n [_ct_]: [, input[_CTon]],\n [_mdb]: [() => input.MaxDirectoryBuckets !== void 0, () => input[_MDB].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListDirectoryBucketsCommand\");\nvar se_ListMultipartUploadsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_u]: [, \"\"],\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_km]: [, input[_KM]],\n [_mu]: [() => input.MaxUploads !== void 0, () => input[_MU].toString()],\n [_pr]: [, input[_P]],\n [_uim]: [, input[_UIM]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListMultipartUploadsCommand\");\nvar se_ListObjectsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaooa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OOA]), () => (input[_OOA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_ma]: [, input[_M]],\n [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n [_pr]: [, input[_P]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListObjectsCommand\");\nvar se_ListObjectsV2Command = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xaooa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OOA]), () => (input[_OOA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_lt]: [, \"2\"],\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n [_pr]: [, input[_P]],\n [_ct_]: [, input[_CTon]],\n [_fo]: [() => input.FetchOwner !== void 0, () => input[_FO].toString()],\n [_sa]: [, input[_SA]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListObjectsV2Command\");\nvar se_ListObjectVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP],\n [_xaooa]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OOA]), () => (input[_OOA] || []).map(import_smithy_client.quoteHeader).join(\", \")]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ver]: [, \"\"],\n [_de]: [, input[_D]],\n [_et]: [, input[_ET]],\n [_km]: [, input[_KM]],\n [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n [_pr]: [, input[_P]],\n [_vim]: [, input[_VIM]]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListObjectVersionsCommand\");\nvar se_ListPartsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"ListParts\"],\n [_mp]: [() => input.MaxParts !== void 0, () => input[_MP].toString()],\n [_pnm]: [, input[_PNM]],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListPartsCommand\");\nvar se_PutBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO],\n [_xasca]: input[_CA]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ac]: [, \"\"]\n });\n let body;\n let contents;\n if (input.AccelerateConfiguration !== void 0) {\n contents = se_AccelerateConfiguration(input.AccelerateConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketAccelerateConfigurationCommand\");\nvar se_PutBucketAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaa]: input[_ACL],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagw]: input[_GW],\n [_xagwa]: input[_GWACP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"]\n });\n let body;\n let contents;\n if (input.AccessControlPolicy !== void 0) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketAclCommand\");\nvar se_PutBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_a]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.AnalyticsConfiguration !== void 0) {\n contents = se_AnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketAnalyticsConfigurationCommand\");\nvar se_PutBucketCorsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_c]: [, \"\"]\n });\n let body;\n let contents;\n if (input.CORSConfiguration !== void 0) {\n contents = se_CORSConfiguration(input.CORSConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketCorsCommand\");\nvar se_PutBucketEncryptionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_en]: [, \"\"]\n });\n let body;\n let contents;\n if (input.ServerSideEncryptionConfiguration !== void 0) {\n contents = se_ServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketEncryptionCommand\");\nvar se_PutBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_it]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.IntelligentTieringConfiguration !== void 0) {\n contents = se_IntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketIntelligentTieringConfigurationCommand\");\nvar se_PutBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_in]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.InventoryConfiguration !== void 0) {\n contents = se_InventoryConfiguration(input.InventoryConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketInventoryConfigurationCommand\");\nvar se_PutBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO],\n [_xatdmos]: input[_TDMOS]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_l]: [, \"\"]\n });\n let body;\n let contents;\n if (input.LifecycleConfiguration !== void 0) {\n contents = se_BucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n contents = contents.n(\"LifecycleConfiguration\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketLifecycleConfigurationCommand\");\nvar se_PutBucketLoggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_log]: [, \"\"]\n });\n let body;\n let contents;\n if (input.BucketLoggingStatus !== void 0) {\n contents = se_BucketLoggingStatus(input.BucketLoggingStatus, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketLoggingCommand\");\nvar se_PutBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_m]: [, \"\"],\n [_i]: [, (0, import_smithy_client.expectNonNull)(input[_I], `Id`)]\n });\n let body;\n let contents;\n if (input.MetricsConfiguration !== void 0) {\n contents = se_MetricsConfiguration(input.MetricsConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketMetricsConfigurationCommand\");\nvar se_PutBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaebo]: input[_EBO],\n [_xasdv]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SDV]), () => input[_SDV].toString()]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_n]: [, \"\"]\n });\n let body;\n let contents;\n if (input.NotificationConfiguration !== void 0) {\n contents = se_NotificationConfiguration(input.NotificationConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketNotificationConfigurationCommand\");\nvar se_PutBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xaebo]: input[_EBO],\n [_xasca]: input[_CA]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_oC]: [, \"\"]\n });\n let body;\n let contents;\n if (input.OwnershipControls !== void 0) {\n contents = se_OwnershipControls(input.OwnershipControls, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketOwnershipControlsCommand\");\nvar se_PutBucketPolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"text/plain\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xacrsba]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CRSBA]), () => input[_CRSBA].toString()],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_p]: [, \"\"]\n });\n let body;\n let contents;\n if (input.Policy !== void 0) {\n contents = input.Policy;\n body = contents;\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketPolicyCommand\");\nvar se_PutBucketReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xabolt]: input[_To],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_r]: [, \"\"]\n });\n let body;\n let contents;\n if (input.ReplicationConfiguration !== void 0) {\n contents = se_ReplicationConfiguration(input.ReplicationConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketReplicationCommand\");\nvar se_PutBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_rP]: [, \"\"]\n });\n let body;\n let contents;\n if (input.RequestPaymentConfiguration !== void 0) {\n contents = se_RequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketRequestPaymentCommand\");\nvar se_PutBucketTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"]\n });\n let body;\n let contents;\n if (input.Tagging !== void 0) {\n contents = se_Tagging(input.Tagging, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketTaggingCommand\");\nvar se_PutBucketVersioningCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xam]: input[_MFA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_v]: [, \"\"]\n });\n let body;\n let contents;\n if (input.VersioningConfiguration !== void 0) {\n contents = se_VersioningConfiguration(input.VersioningConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketVersioningCommand\");\nvar se_PutBucketWebsiteCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_w]: [, \"\"]\n });\n let body;\n let contents;\n if (input.WebsiteConfiguration !== void 0) {\n contents = se_WebsiteConfiguration(input.WebsiteConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutBucketWebsiteCommand\");\nvar se_PutObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n [_ct]: input[_CTo] || \"application/octet-stream\",\n [_xaa]: input[_ACL],\n [_cc]: input[_CC],\n [_cd]: input[_CD],\n [_ce]: input[_CE],\n [_cl]: input[_CL],\n [_cl_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CLo]), () => input[_CLo].toString()],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xacc]: input[_CCRC],\n [_xacc_]: input[_CCRCC],\n [_xacc__]: input[_CCRCNVME],\n [_xacs]: input[_CSHA],\n [_xacs_]: input[_CSHAh],\n [_e]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_im]: input[_IM],\n [_inm]: input[_INM],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagwa]: input[_GWACP],\n [_xawob]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_WOB]), () => input[_WOB].toString()],\n [_xasse]: input[_SSE],\n [_xasc]: input[_SC],\n [_xawrl]: input[_WRL],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xasseakki]: input[_SSEKMSKI],\n [_xassec]: input[_SSEKMSEC],\n [_xassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()],\n [_xarp]: input[_RP],\n [_xat]: input[_T],\n [_xaolm]: input[_OLM],\n [_xaolrud]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]), () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()],\n [_xaollh]: input[_OLLHS],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"PutObject\"]\n });\n let body;\n let contents;\n if (input.Body !== void 0) {\n contents = input.Body;\n body = contents;\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectCommand\");\nvar se_PutObjectAclCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xaa]: input[_ACL],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xagfc]: input[_GFC],\n [_xagr]: input[_GR],\n [_xagra]: input[_GRACP],\n [_xagw]: input[_GW],\n [_xagwa]: input[_GWACP],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_acl]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.AccessControlPolicy !== void 0) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectAclCommand\");\nvar se_PutObjectLegalHoldCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_lh]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.LegalHold !== void 0) {\n contents = se_ObjectLockLegalHold(input.LegalHold, context);\n contents = contents.n(\"LegalHold\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectLegalHoldCommand\");\nvar se_PutObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_xabolt]: input[_To],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_ol]: [, \"\"]\n });\n let body;\n let contents;\n if (input.ObjectLockConfiguration !== void 0) {\n contents = se_ObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectLockConfigurationCommand\");\nvar se_PutObjectRetentionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_xabgr]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BGR]), () => input[_BGR].toString()],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_ret]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.Retention !== void 0) {\n contents = se_ObjectLockRetention(input.Retention, context);\n contents = contents.n(\"Retention\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectRetentionCommand\");\nvar se_PutObjectTaggingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO],\n [_xarp]: input[_RP]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_t]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.Tagging !== void 0) {\n contents = se_Tagging(input.Tagging, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutObjectTaggingCommand\");\nvar se_PutPublicAccessBlockCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_pAB]: [, \"\"]\n });\n let body;\n let contents;\n if (input.PublicAccessBlockConfiguration !== void 0) {\n contents = se_PublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_PutPublicAccessBlockCommand\");\nvar se_RenameObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xars]: input[_RS],\n [_im]: input[_DIM],\n [_inm]: input[_DINM],\n [_ims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_DIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_DIMS]).toString()],\n [_ius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_DIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_DIUS]).toString()],\n [_xarsim]: input[_SIM],\n [_xarsinm]: input[_SINM],\n [_xarsims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_SIMS]).toString()],\n [_xarsius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_SIUS]).toString()],\n [_xact_]: input[_CTl] ?? (0, import_uuid.v4)()\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_rO]: [, \"\"]\n });\n let body;\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RenameObjectCommand\");\nvar se_RestoreObjectCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xarp]: input[_RP],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_res]: [, \"\"],\n [_vI]: [, input[_VI]]\n });\n let body;\n let contents;\n if (input.RestoreRequest !== void 0) {\n contents = se_RestoreRequest(input.RestoreRequest, context);\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_RestoreObjectCommand\");\nvar se_SelectObjectContentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_se]: [, \"\"],\n [_st]: [, \"2\"]\n });\n let body;\n body = _ve;\n const bn = new import_xml_builder.XmlNode(_SOCR);\n bn.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n bn.cc(input, _Ex);\n bn.cc(input, _ETx);\n if (input[_IS] != null) {\n bn.c(se_InputSerialization(input[_IS], context).n(_IS));\n }\n if (input[_OS] != null) {\n bn.c(se_OutputSerialization(input[_OS], context).n(_OS));\n }\n if (input[_RPe] != null) {\n bn.c(se_RequestProgress(input[_RPe], context).n(_RPe));\n }\n if (input[_SR] != null) {\n bn.c(se_ScanRange(input[_SR], context).n(_SR));\n }\n body += bn.toString();\n b.m(\"POST\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_SelectObjectContentCommand\");\nvar se_UpdateBucketMetadataInventoryTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mIT]: [, \"\"]\n });\n let body;\n let contents;\n if (input.InventoryTableConfiguration !== void 0) {\n contents = se_InventoryTableConfigurationUpdates(input.InventoryTableConfiguration, context);\n contents = contents.n(\"InventoryTableConfiguration\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateBucketMetadataInventoryTableConfigurationCommand\");\nvar se_UpdateBucketMetadataJournalTableConfigurationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = (0, import_smithy_client.map)({\n [_mJT]: [, \"\"]\n });\n let body;\n let contents;\n if (input.JournalTableConfiguration !== void 0) {\n contents = se_JournalTableConfigurationUpdates(input.JournalTableConfiguration, context);\n contents = contents.n(\"JournalTableConfiguration\");\n body = _ve;\n contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UpdateBucketMetadataJournalTableConfigurationCommand\");\nvar se_UploadPartCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n [_cl_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CLo]), () => input[_CLo].toString()],\n [_cm]: input[_CMD],\n [_xasca]: input[_CA],\n [_xacc]: input[_CCRC],\n [_xacc_]: input[_CCRCC],\n [_xacc__]: input[_CCRCNVME],\n [_xacs]: input[_CSHA],\n [_xacs_]: input[_CSHAh],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"UploadPart\"],\n [_pN]: [(0, import_smithy_client.expectNonNull)(input.PartNumber, `PartNumber`) != null, () => input[_PN].toString()],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n let contents;\n if (input.Body !== void 0) {\n contents = input.Body;\n body = contents;\n }\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UploadPartCommand\");\nvar se_UploadPartCopyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xacs__]: input[_CS],\n [_xacsim]: input[_CSIM],\n [_xacsims]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIMS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIMS]).toString()],\n [_xacsinm]: input[_CSINM],\n [_xacsius]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CSIUS]), () => (0, import_smithy_client.dateToUtcString)(input[_CSIUS]).toString()],\n [_xacsr]: input[_CSR],\n [_xasseca]: input[_SSECA],\n [_xasseck]: input[_SSECK],\n [_xasseckm]: input[_SSECKMD],\n [_xacssseca]: input[_CSSSECA],\n [_xacssseck]: input[_CSSSECK],\n [_xacssseckm]: input[_CSSSECKMD],\n [_xarp]: input[_RP],\n [_xaebo]: input[_EBO],\n [_xasebo]: input[_ESBO]\n });\n b.bp(\"/{Key+}\");\n b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n const query = (0, import_smithy_client.map)({\n [_xi]: [, \"UploadPartCopy\"],\n [_pN]: [(0, import_smithy_client.expectNonNull)(input.PartNumber, `PartNumber`) != null, () => input[_PN].toString()],\n [_uI]: [, (0, import_smithy_client.expectNonNull)(input[_UI], `UploadId`)]\n });\n let body;\n b.m(\"PUT\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_UploadPartCopyCommand\");\nvar se_WriteGetObjectResponseCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core2.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\",\n ...input.Metadata !== void 0 && Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {}),\n \"content-type\": \"application/octet-stream\",\n [_xarr]: input[_RR],\n [_xart]: input[_RT],\n [_xafs]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_SCt]), () => input[_SCt].toString()],\n [_xafec]: input[_EC],\n [_xafem]: input[_EM],\n [_xafhar]: input[_AR],\n [_xafhcc]: input[_CC],\n [_xafhcd]: input[_CD],\n [_xafhce]: input[_CE],\n [_xafhcl]: input[_CL],\n [_cl_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_CLo]), () => input[_CLo].toString()],\n [_xafhcr]: input[_CR],\n [_xafhct]: input[_CTo],\n [_xafhxacc]: input[_CCRC],\n [_xafhxacc_]: input[_CCRCC],\n [_xafhxacc__]: input[_CCRCNVME],\n [_xafhxacs]: input[_CSHA],\n [_xafhxacs_]: input[_CSHAh],\n [_xafhxadm]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_DM]), () => input[_DM].toString()],\n [_xafhe]: input[_ETa],\n [_xafhe_]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_E]), () => (0, import_smithy_client.dateToUtcString)(input[_E]).toString()],\n [_xafhxae]: input[_Exp],\n [_xafhlm]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_LM]), () => (0, import_smithy_client.dateToUtcString)(input[_LM]).toString()],\n [_xafhxamm]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_MM]), () => input[_MM].toString()],\n [_xafhxaolm]: input[_OLM],\n [_xafhxaollh]: input[_OLLHS],\n [_xafhxaolrud]: [\n () => (0, import_smithy_client.isSerializableHeaderValue)(input[_OLRUD]),\n () => (0, import_smithy_client.serializeDateTime)(input[_OLRUD]).toString()\n ],\n [_xafhxampc]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_PC]), () => input[_PC].toString()],\n [_xafhxars]: input[_RSe],\n [_xafhxarc]: input[_RC],\n [_xafhxar]: input[_Re],\n [_xafhxasse]: input[_SSE],\n [_xafhxasseca]: input[_SSECA],\n [_xafhxasseakki]: input[_SSEKMSKI],\n [_xafhxasseckm]: input[_SSECKMD],\n [_xafhxasc]: input[_SC],\n [_xafhxatc]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_TC]), () => input[_TC].toString()],\n [_xafhxavi]: input[_VI],\n [_xafhxassebke]: [() => (0, import_smithy_client.isSerializableHeaderValue)(input[_BKE]), () => input[_BKE].toString()]\n });\n b.bp(\"/WriteGetObjectResponse\");\n let body;\n let contents;\n if (input.Body !== void 0) {\n contents = input.Body;\n body = contents;\n }\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"{RequestRoute}.\" + resolvedHostname;\n if (input.RequestRoute === void 0) {\n throw new Error(\"Empty value provided for input host prefix: RequestRoute.\");\n }\n resolvedHostname = resolvedHostname.replace(\"{RequestRoute}\", input.RequestRoute);\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n b.hn(resolvedHostname);\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_WriteGetObjectResponseCommand\");\nvar de_AbortMultipartUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_AbortMultipartUploadCommand\");\nvar de_CompleteMultipartUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_Exp]: [, output.headers[_xae]],\n [_SSE]: [, output.headers[_xasse]],\n [_VI]: [, output.headers[_xavi]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(data[_CCRC]);\n }\n if (data[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(data[_CCRCC]);\n }\n if (data[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(data[_CCRCNVME]);\n }\n if (data[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(data[_CSHA]);\n }\n if (data[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(data[_CSHAh]);\n }\n if (data[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(data[_CT]);\n }\n if (data[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(data[_ETa]);\n }\n if (data[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(data[_K]);\n }\n if (data[_L] != null) {\n contents[_L] = (0, import_smithy_client.expectString)(data[_L]);\n }\n return contents;\n}, \"de_CompleteMultipartUploadCommand\");\nvar de_CopyObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_Exp]: [, output.headers[_xae]],\n [_CSVI]: [, output.headers[_xacsvi]],\n [_VI]: [, output.headers[_xavi]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.CopyObjectResult = de_CopyObjectResult(data, context);\n return contents;\n}, \"de_CopyObjectCommand\");\nvar de_CreateBucketCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_L]: [, output.headers[_lo]],\n [_BA]: [, output.headers[_xaba]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_CreateBucketCommand\");\nvar de_CreateBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_CreateBucketMetadataConfigurationCommand\");\nvar de_CreateBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_CreateBucketMetadataTableConfigurationCommand\");\nvar de_CreateMultipartUploadCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_AD]: [\n () => void 0 !== output.headers[_xaad],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_xaad]))\n ],\n [_ARI]: [, output.headers[_xaari]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]],\n [_CA]: [, output.headers[_xaca]],\n [_CT]: [, output.headers[_xact]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(data[_K]);\n }\n if (data[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(data[_UI]);\n }\n return contents;\n}, \"de_CreateMultipartUploadCommand\");\nvar de_CreateSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_SSE]: [, output.headers[_xasse]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_C] != null) {\n contents[_C] = de_SessionCredentials(data[_C], context);\n }\n return contents;\n}, \"de_CreateSessionCommand\");\nvar de_DeleteBucketCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketCommand\");\nvar de_DeleteBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketAnalyticsConfigurationCommand\");\nvar de_DeleteBucketCorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketCorsCommand\");\nvar de_DeleteBucketEncryptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketEncryptionCommand\");\nvar de_DeleteBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketIntelligentTieringConfigurationCommand\");\nvar de_DeleteBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketInventoryConfigurationCommand\");\nvar de_DeleteBucketLifecycleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketLifecycleCommand\");\nvar de_DeleteBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketMetadataConfigurationCommand\");\nvar de_DeleteBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketMetadataTableConfigurationCommand\");\nvar de_DeleteBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketMetricsConfigurationCommand\");\nvar de_DeleteBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketOwnershipControlsCommand\");\nvar de_DeleteBucketPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketPolicyCommand\");\nvar de_DeleteBucketReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketReplicationCommand\");\nvar de_DeleteBucketTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketTaggingCommand\");\nvar de_DeleteBucketWebsiteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteBucketWebsiteCommand\");\nvar de_DeleteObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_VI]: [, output.headers[_xavi]],\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteObjectCommand\");\nvar de_DeleteObjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Deleted === \"\") {\n contents[_De] = [];\n } else if (data[_De] != null) {\n contents[_De] = de_DeletedObjects((0, import_smithy_client.getArrayIfSingleItem)(data[_De]), context);\n }\n if (data.Error === \"\") {\n contents[_Err] = [];\n } else if (data[_Er] != null) {\n contents[_Err] = de_Errors((0, import_smithy_client.getArrayIfSingleItem)(data[_Er]), context);\n }\n return contents;\n}, \"de_DeleteObjectsCommand\");\nvar de_DeleteObjectTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_VI]: [, output.headers[_xavi]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeleteObjectTaggingCommand\");\nvar de_DeletePublicAccessBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_DeletePublicAccessBlockCommand\");\nvar de_GetBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(data[_S]);\n }\n return contents;\n}, \"de_GetBucketAccelerateConfigurationCommand\");\nvar de_GetBucketAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents[_Gr] = [];\n } else if (data[_ACLc] != null && data[_ACLc][_G] != null) {\n contents[_Gr] = de_Grants((0, import_smithy_client.getArrayIfSingleItem)(data[_ACLc][_G]), context);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n return contents;\n}, \"de_GetBucketAclCommand\");\nvar de_GetBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.AnalyticsConfiguration = de_AnalyticsConfiguration(data, context);\n return contents;\n}, \"de_GetBucketAnalyticsConfigurationCommand\");\nvar de_GetBucketCorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CORSRule === \"\") {\n contents[_CORSRu] = [];\n } else if (data[_CORSR] != null) {\n contents[_CORSRu] = de_CORSRules((0, import_smithy_client.getArrayIfSingleItem)(data[_CORSR]), context);\n }\n return contents;\n}, \"de_GetBucketCorsCommand\");\nvar de_GetBucketEncryptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.ServerSideEncryptionConfiguration = de_ServerSideEncryptionConfiguration(data, context);\n return contents;\n}, \"de_GetBucketEncryptionCommand\");\nvar de_GetBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.IntelligentTieringConfiguration = de_IntelligentTieringConfiguration(data, context);\n return contents;\n}, \"de_GetBucketIntelligentTieringConfigurationCommand\");\nvar de_GetBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.InventoryConfiguration = de_InventoryConfiguration(data, context);\n return contents;\n}, \"de_GetBucketInventoryConfigurationCommand\");\nvar de_GetBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_TDMOS]: [, output.headers[_xatdmos]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Rule === \"\") {\n contents[_Rul] = [];\n } else if (data[_Ru] != null) {\n contents[_Rul] = de_LifecycleRules((0, import_smithy_client.getArrayIfSingleItem)(data[_Ru]), context);\n }\n return contents;\n}, \"de_GetBucketLifecycleConfigurationCommand\");\nvar de_GetBucketLocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_LC] != null) {\n contents[_LC] = (0, import_smithy_client.expectString)(data[_LC]);\n }\n return contents;\n}, \"de_GetBucketLocationCommand\");\nvar de_GetBucketLoggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_LE] != null) {\n contents[_LE] = de_LoggingEnabled(data[_LE], context);\n }\n return contents;\n}, \"de_GetBucketLoggingCommand\");\nvar de_GetBucketMetadataConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.GetBucketMetadataConfigurationResult = de_GetBucketMetadataConfigurationResult(data, context);\n return contents;\n}, \"de_GetBucketMetadataConfigurationCommand\");\nvar de_GetBucketMetadataTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.GetBucketMetadataTableConfigurationResult = de_GetBucketMetadataTableConfigurationResult(data, context);\n return contents;\n}, \"de_GetBucketMetadataTableConfigurationCommand\");\nvar de_GetBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.MetricsConfiguration = de_MetricsConfiguration(data, context);\n return contents;\n}, \"de_GetBucketMetricsConfigurationCommand\");\nvar de_GetBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_EBC] != null) {\n contents[_EBC] = de_EventBridgeConfiguration(data[_EBC], context);\n }\n if (data.CloudFunctionConfiguration === \"\") {\n contents[_LFC] = [];\n } else if (data[_CFC] != null) {\n contents[_LFC] = de_LambdaFunctionConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_CFC]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents[_QCu] = [];\n } else if (data[_QC] != null) {\n contents[_QCu] = de_QueueConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_QC]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents[_TCop] = [];\n } else if (data[_TCo] != null) {\n contents[_TCop] = de_TopicConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_TCo]), context);\n }\n return contents;\n}, \"de_GetBucketNotificationConfigurationCommand\");\nvar de_GetBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.OwnershipControls = de_OwnershipControls(data, context);\n return contents;\n}, \"de_GetBucketOwnershipControlsCommand\");\nvar de_GetBucketPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = await collectBodyString(output.body, context);\n contents.Policy = (0, import_smithy_client.expectString)(data);\n return contents;\n}, \"de_GetBucketPolicyCommand\");\nvar de_GetBucketPolicyStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.PolicyStatus = de_PolicyStatus(data, context);\n return contents;\n}, \"de_GetBucketPolicyStatusCommand\");\nvar de_GetBucketReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.ReplicationConfiguration = de_ReplicationConfiguration(data, context);\n return contents;\n}, \"de_GetBucketReplicationCommand\");\nvar de_GetBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Pa] != null) {\n contents[_Pa] = (0, import_smithy_client.expectString)(data[_Pa]);\n }\n return contents;\n}, \"de_GetBucketRequestPaymentCommand\");\nvar de_GetBucketTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents[_TS] = [];\n } else if (data[_TS] != null && data[_TS][_Ta] != null) {\n contents[_TS] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(data[_TS][_Ta]), context);\n }\n return contents;\n}, \"de_GetBucketTaggingCommand\");\nvar de_GetBucketVersioningCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_MDf] != null) {\n contents[_MFAD] = (0, import_smithy_client.expectString)(data[_MDf]);\n }\n if (data[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(data[_S]);\n }\n return contents;\n}, \"de_GetBucketVersioningCommand\");\nvar de_GetBucketWebsiteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_ED] != null) {\n contents[_ED] = de_ErrorDocument(data[_ED], context);\n }\n if (data[_ID] != null) {\n contents[_ID] = de_IndexDocument(data[_ID], context);\n }\n if (data[_RART] != null) {\n contents[_RART] = de_RedirectAllRequestsTo(data[_RART], context);\n }\n if (data.RoutingRules === \"\") {\n contents[_RRo] = [];\n } else if (data[_RRo] != null && data[_RRo][_RRou] != null) {\n contents[_RRo] = de_RoutingRules((0, import_smithy_client.getArrayIfSingleItem)(data[_RRo][_RRou]), context);\n }\n return contents;\n}, \"de_GetBucketWebsiteCommand\");\nvar de_GetObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_AR]: [, output.headers[_ar]],\n [_Exp]: [, output.headers[_xae]],\n [_Re]: [, output.headers[_xar]],\n [_LM]: [() => void 0 !== output.headers[_lm], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_lm]))],\n [_CLo]: [() => void 0 !== output.headers[_cl_], () => (0, import_smithy_client.strictParseLong)(output.headers[_cl_])],\n [_ETa]: [, output.headers[_eta]],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_CT]: [, output.headers[_xact]],\n [_MM]: [() => void 0 !== output.headers[_xamm], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xamm])],\n [_VI]: [, output.headers[_xavi]],\n [_CC]: [, output.headers[_cc]],\n [_CD]: [, output.headers[_cd]],\n [_CE]: [, output.headers[_ce]],\n [_CL]: [, output.headers[_cl]],\n [_CR]: [, output.headers[_cr]],\n [_CTo]: [, output.headers[_ct]],\n [_E]: [() => void 0 !== output.headers[_e], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_e]))],\n [_ES]: [, output.headers[_ex]],\n [_WRL]: [, output.headers[_xawrl]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_SC]: [, output.headers[_xasc]],\n [_RC]: [, output.headers[_xarc]],\n [_RSe]: [, output.headers[_xars_]],\n [_PC]: [() => void 0 !== output.headers[_xampc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xampc])],\n [_TC]: [() => void 0 !== output.headers[_xatc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xatc])],\n [_OLM]: [, output.headers[_xaolm]],\n [_OLRUD]: [\n () => void 0 !== output.headers[_xaolrud],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output.headers[_xaolrud]))\n ],\n [_OLLHS]: [, output.headers[_xaollh]],\n Metadata: [\n ,\n Object.keys(output.headers).filter((header) => header.startsWith(\"x-amz-meta-\")).reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {})\n ]\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n}, \"de_GetObjectCommand\");\nvar de_GetObjectAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents[_Gr] = [];\n } else if (data[_ACLc] != null && data[_ACLc][_G] != null) {\n contents[_Gr] = de_Grants((0, import_smithy_client.getArrayIfSingleItem)(data[_ACLc][_G]), context);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n return contents;\n}, \"de_GetObjectAclCommand\");\nvar de_GetObjectAttributesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_LM]: [() => void 0 !== output.headers[_lm], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_lm]))],\n [_VI]: [, output.headers[_xavi]],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_Ch] != null) {\n contents[_Ch] = de_Checksum(data[_Ch], context);\n }\n if (data[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(data[_ETa]);\n }\n if (data[_OP] != null) {\n contents[_OP] = de_GetObjectAttributesParts(data[_OP], context);\n }\n if (data[_OSb] != null) {\n contents[_OSb] = (0, import_smithy_client.strictParseLong)(data[_OSb]);\n }\n if (data[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(data[_SC]);\n }\n return contents;\n}, \"de_GetObjectAttributesCommand\");\nvar de_GetObjectLegalHoldCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.LegalHold = de_ObjectLockLegalHold(data, context);\n return contents;\n}, \"de_GetObjectLegalHoldCommand\");\nvar de_GetObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.ObjectLockConfiguration = de_ObjectLockConfiguration(data, context);\n return contents;\n}, \"de_GetObjectLockConfigurationCommand\");\nvar de_GetObjectRetentionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.Retention = de_ObjectLockRetention(data, context);\n return contents;\n}, \"de_GetObjectRetentionCommand\");\nvar de_GetObjectTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_VI]: [, output.headers[_xavi]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents[_TS] = [];\n } else if (data[_TS] != null && data[_TS][_Ta] != null) {\n contents[_TS] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(data[_TS][_Ta]), context);\n }\n return contents;\n}, \"de_GetObjectTaggingCommand\");\nvar de_GetObjectTorrentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n}, \"de_GetObjectTorrentCommand\");\nvar de_GetPublicAccessBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.PublicAccessBlockConfiguration = de_PublicAccessBlockConfiguration(data, context);\n return contents;\n}, \"de_GetPublicAccessBlockCommand\");\nvar de_HeadBucketCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_BA]: [, output.headers[_xaba]],\n [_BLT]: [, output.headers[_xablt]],\n [_BLN]: [, output.headers[_xabln]],\n [_BR]: [, output.headers[_xabr]],\n [_APA]: [() => void 0 !== output.headers[_xaapa], () => (0, import_smithy_client.parseBoolean)(output.headers[_xaapa])]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_HeadBucketCommand\");\nvar de_HeadObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_DM]: [() => void 0 !== output.headers[_xadm], () => (0, import_smithy_client.parseBoolean)(output.headers[_xadm])],\n [_AR]: [, output.headers[_ar]],\n [_Exp]: [, output.headers[_xae]],\n [_Re]: [, output.headers[_xar]],\n [_AS]: [, output.headers[_xaas]],\n [_LM]: [() => void 0 !== output.headers[_lm], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_lm]))],\n [_CLo]: [() => void 0 !== output.headers[_cl_], () => (0, import_smithy_client.strictParseLong)(output.headers[_cl_])],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_CT]: [, output.headers[_xact]],\n [_ETa]: [, output.headers[_eta]],\n [_MM]: [() => void 0 !== output.headers[_xamm], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xamm])],\n [_VI]: [, output.headers[_xavi]],\n [_CC]: [, output.headers[_cc]],\n [_CD]: [, output.headers[_cd]],\n [_CE]: [, output.headers[_ce]],\n [_CL]: [, output.headers[_cl]],\n [_CTo]: [, output.headers[_ct]],\n [_CR]: [, output.headers[_cr]],\n [_E]: [() => void 0 !== output.headers[_e], () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_e]))],\n [_ES]: [, output.headers[_ex]],\n [_WRL]: [, output.headers[_xawrl]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_SC]: [, output.headers[_xasc]],\n [_RC]: [, output.headers[_xarc]],\n [_RSe]: [, output.headers[_xars_]],\n [_PC]: [() => void 0 !== output.headers[_xampc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xampc])],\n [_TC]: [() => void 0 !== output.headers[_xatc], () => (0, import_smithy_client.strictParseInt32)(output.headers[_xatc])],\n [_OLM]: [, output.headers[_xaolm]],\n [_OLRUD]: [\n () => void 0 !== output.headers[_xaolrud],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output.headers[_xaolrud]))\n ],\n [_OLLHS]: [, output.headers[_xaollh]],\n Metadata: [\n ,\n Object.keys(output.headers).filter((header) => header.startsWith(\"x-amz-meta-\")).reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {})\n ]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_HeadObjectCommand\");\nvar de_ListBucketAnalyticsConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.AnalyticsConfiguration === \"\") {\n contents[_ACLn] = [];\n } else if (data[_AC] != null) {\n contents[_ACLn] = de_AnalyticsConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_AC]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketAnalyticsConfigurationsCommand\");\nvar de_ListBucketIntelligentTieringConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents[_ITCL] = [];\n } else if (data[_ITC] != null) {\n contents[_ITCL] = de_IntelligentTieringConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_ITC]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketIntelligentTieringConfigurationsCommand\");\nvar de_ListBucketInventoryConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data.InventoryConfiguration === \"\") {\n contents[_ICL] = [];\n } else if (data[_IC] != null) {\n contents[_ICL] = de_InventoryConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_IC]), context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketInventoryConfigurationsCommand\");\nvar de_ListBucketMetricsConfigurationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data.MetricsConfiguration === \"\") {\n contents[_MCL] = [];\n } else if (data[_MC] != null) {\n contents[_MCL] = de_MetricsConfigurationList((0, import_smithy_client.getArrayIfSingleItem)(data[_MC]), context);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n return contents;\n}, \"de_ListBucketMetricsConfigurationsCommand\");\nvar de_ListBucketsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Buckets === \"\") {\n contents[_Bu] = [];\n } else if (data[_Bu] != null && data[_Bu][_B] != null) {\n contents[_Bu] = de_Buckets((0, import_smithy_client.getArrayIfSingleItem)(data[_Bu][_B]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n return contents;\n}, \"de_ListBucketsCommand\");\nvar de_ListDirectoryBucketsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.Buckets === \"\") {\n contents[_Bu] = [];\n } else if (data[_Bu] != null && data[_Bu][_B] != null) {\n contents[_Bu] = de_Buckets((0, import_smithy_client.getArrayIfSingleItem)(data[_Bu][_B]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n return contents;\n}, \"de_ListDirectoryBucketsCommand\");\nvar de_ListMultipartUploadsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_KM] != null) {\n contents[_KM] = (0, import_smithy_client.expectString)(data[_KM]);\n }\n if (data[_MU] != null) {\n contents[_MU] = (0, import_smithy_client.strictParseInt32)(data[_MU]);\n }\n if (data[_NKM] != null) {\n contents[_NKM] = (0, import_smithy_client.expectString)(data[_NKM]);\n }\n if (data[_NUIM] != null) {\n contents[_NUIM] = (0, import_smithy_client.expectString)(data[_NUIM]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n if (data[_UIM] != null) {\n contents[_UIM] = (0, import_smithy_client.expectString)(data[_UIM]);\n }\n if (data.Upload === \"\") {\n contents[_Up] = [];\n } else if (data[_U] != null) {\n contents[_Up] = de_MultipartUploadList((0, import_smithy_client.getArrayIfSingleItem)(data[_U]), context);\n }\n return contents;\n}, \"de_ListMultipartUploadsCommand\");\nvar de_ListObjectsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data.Contents === \"\") {\n contents[_Co] = [];\n } else if (data[_Co] != null) {\n contents[_Co] = de_ObjectList((0, import_smithy_client.getArrayIfSingleItem)(data[_Co]), context);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_M] != null) {\n contents[_M] = (0, import_smithy_client.expectString)(data[_M]);\n }\n if (data[_MK] != null) {\n contents[_MK] = (0, import_smithy_client.strictParseInt32)(data[_MK]);\n }\n if (data[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(data[_N]);\n }\n if (data[_NM] != null) {\n contents[_NM] = (0, import_smithy_client.expectString)(data[_NM]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n return contents;\n}, \"de_ListObjectsCommand\");\nvar de_ListObjectsV2Command = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data.Contents === \"\") {\n contents[_Co] = [];\n } else if (data[_Co] != null) {\n contents[_Co] = de_ObjectList((0, import_smithy_client.getArrayIfSingleItem)(data[_Co]), context);\n }\n if (data[_CTon] != null) {\n contents[_CTon] = (0, import_smithy_client.expectString)(data[_CTon]);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_KC] != null) {\n contents[_KC] = (0, import_smithy_client.strictParseInt32)(data[_KC]);\n }\n if (data[_MK] != null) {\n contents[_MK] = (0, import_smithy_client.strictParseInt32)(data[_MK]);\n }\n if (data[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(data[_N]);\n }\n if (data[_NCT] != null) {\n contents[_NCT] = (0, import_smithy_client.expectString)(data[_NCT]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n if (data[_SA] != null) {\n contents[_SA] = (0, import_smithy_client.expectString)(data[_SA]);\n }\n return contents;\n}, \"de_ListObjectsV2Command\");\nvar de_ListObjectVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents[_CP] = [];\n } else if (data[_CP] != null) {\n contents[_CP] = de_CommonPrefixList((0, import_smithy_client.getArrayIfSingleItem)(data[_CP]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents[_DMe] = [];\n } else if (data[_DM] != null) {\n contents[_DMe] = de_DeleteMarkers((0, import_smithy_client.getArrayIfSingleItem)(data[_DM]), context);\n }\n if (data[_D] != null) {\n contents[_D] = (0, import_smithy_client.expectString)(data[_D]);\n }\n if (data[_ET] != null) {\n contents[_ET] = (0, import_smithy_client.expectString)(data[_ET]);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_KM] != null) {\n contents[_KM] = (0, import_smithy_client.expectString)(data[_KM]);\n }\n if (data[_MK] != null) {\n contents[_MK] = (0, import_smithy_client.strictParseInt32)(data[_MK]);\n }\n if (data[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(data[_N]);\n }\n if (data[_NKM] != null) {\n contents[_NKM] = (0, import_smithy_client.expectString)(data[_NKM]);\n }\n if (data[_NVIM] != null) {\n contents[_NVIM] = (0, import_smithy_client.expectString)(data[_NVIM]);\n }\n if (data[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(data[_P]);\n }\n if (data[_VIM] != null) {\n contents[_VIM] = (0, import_smithy_client.expectString)(data[_VIM]);\n }\n if (data.Version === \"\") {\n contents[_Ve] = [];\n } else if (data[_V] != null) {\n contents[_Ve] = de_ObjectVersionList((0, import_smithy_client.getArrayIfSingleItem)(data[_V]), context);\n }\n return contents;\n}, \"de_ListObjectVersionsCommand\");\nvar de_ListPartsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_AD]: [\n () => void 0 !== output.headers[_xaad],\n () => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc7231DateTime)(output.headers[_xaad]))\n ],\n [_ARI]: [, output.headers[_xaari]],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context)), \"body\");\n if (data[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(data[_B]);\n }\n if (data[_CA] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(data[_CA]);\n }\n if (data[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(data[_CT]);\n }\n if (data[_In] != null) {\n contents[_In] = de_Initiator(data[_In], context);\n }\n if (data[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(data[_IT]);\n }\n if (data[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(data[_K]);\n }\n if (data[_MP] != null) {\n contents[_MP] = (0, import_smithy_client.strictParseInt32)(data[_MP]);\n }\n if (data[_NPNM] != null) {\n contents[_NPNM] = (0, import_smithy_client.expectString)(data[_NPNM]);\n }\n if (data[_O] != null) {\n contents[_O] = de_Owner(data[_O], context);\n }\n if (data[_PNM] != null) {\n contents[_PNM] = (0, import_smithy_client.expectString)(data[_PNM]);\n }\n if (data.Part === \"\") {\n contents[_Part] = [];\n } else if (data[_Par] != null) {\n contents[_Part] = de_Parts((0, import_smithy_client.getArrayIfSingleItem)(data[_Par]), context);\n }\n if (data[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(data[_SC]);\n }\n if (data[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(data[_UI]);\n }\n return contents;\n}, \"de_ListPartsCommand\");\nvar de_PutBucketAccelerateConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketAccelerateConfigurationCommand\");\nvar de_PutBucketAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketAclCommand\");\nvar de_PutBucketAnalyticsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketAnalyticsConfigurationCommand\");\nvar de_PutBucketCorsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketCorsCommand\");\nvar de_PutBucketEncryptionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketEncryptionCommand\");\nvar de_PutBucketIntelligentTieringConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketIntelligentTieringConfigurationCommand\");\nvar de_PutBucketInventoryConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketInventoryConfigurationCommand\");\nvar de_PutBucketLifecycleConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_TDMOS]: [, output.headers[_xatdmos]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketLifecycleConfigurationCommand\");\nvar de_PutBucketLoggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketLoggingCommand\");\nvar de_PutBucketMetricsConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketMetricsConfigurationCommand\");\nvar de_PutBucketNotificationConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketNotificationConfigurationCommand\");\nvar de_PutBucketOwnershipControlsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketOwnershipControlsCommand\");\nvar de_PutBucketPolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketPolicyCommand\");\nvar de_PutBucketReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketReplicationCommand\");\nvar de_PutBucketRequestPaymentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketRequestPaymentCommand\");\nvar de_PutBucketTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketTaggingCommand\");\nvar de_PutBucketVersioningCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketVersioningCommand\");\nvar de_PutBucketWebsiteCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutBucketWebsiteCommand\");\nvar de_PutObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_Exp]: [, output.headers[_xae]],\n [_ETa]: [, output.headers[_eta]],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_CT]: [, output.headers[_xact]],\n [_SSE]: [, output.headers[_xasse]],\n [_VI]: [, output.headers[_xavi]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_SSEKMSEC]: [, output.headers[_xassec]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_Si]: [() => void 0 !== output.headers[_xaos], () => (0, import_smithy_client.strictParseLong)(output.headers[_xaos])],\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectCommand\");\nvar de_PutObjectAclCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectAclCommand\");\nvar de_PutObjectLegalHoldCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectLegalHoldCommand\");\nvar de_PutObjectLockConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectLockConfigurationCommand\");\nvar de_PutObjectRetentionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectRetentionCommand\");\nvar de_PutObjectTaggingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_VI]: [, output.headers[_xavi]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutObjectTaggingCommand\");\nvar de_PutPublicAccessBlockCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_PutPublicAccessBlockCommand\");\nvar de_RenameObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RenameObjectCommand\");\nvar de_RestoreObjectCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_RC]: [, output.headers[_xarc]],\n [_ROP]: [, output.headers[_xarop]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_RestoreObjectCommand\");\nvar de_SelectObjectContentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = output.body;\n contents.Payload = de_SelectObjectContentEventStream(data, context);\n return contents;\n}, \"de_SelectObjectContentCommand\");\nvar de_UpdateBucketMetadataInventoryTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UpdateBucketMetadataInventoryTableConfigurationCommand\");\nvar de_UpdateBucketMetadataJournalTableConfigurationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UpdateBucketMetadataJournalTableConfigurationCommand\");\nvar de_UploadPartCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_SSE]: [, output.headers[_xasse]],\n [_ETa]: [, output.headers[_eta]],\n [_CCRC]: [, output.headers[_xacc]],\n [_CCRCC]: [, output.headers[_xacc_]],\n [_CCRCNVME]: [, output.headers[_xacc__]],\n [_CSHA]: [, output.headers[_xacs]],\n [_CSHAh]: [, output.headers[_xacs_]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_UploadPartCommand\");\nvar de_UploadPartCopyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output),\n [_CSVI]: [, output.headers[_xacsvi]],\n [_SSE]: [, output.headers[_xasse]],\n [_SSECA]: [, output.headers[_xasseca]],\n [_SSECKMD]: [, output.headers[_xasseckm]],\n [_SSEKMSKI]: [, output.headers[_xasseakki]],\n [_BKE]: [() => void 0 !== output.headers[_xassebke], () => (0, import_smithy_client.parseBoolean)(output.headers[_xassebke])],\n [_RC]: [, output.headers[_xarc]]\n });\n const data = (0, import_smithy_client.expectObject)(await (0, import_core.parseXmlBody)(output.body, context));\n contents.CopyPartResult = de_CopyPartResult(data, context);\n return contents;\n}, \"de_UploadPartCopyCommand\");\nvar de_WriteGetObjectResponseCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_WriteGetObjectResponseCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core.loadRestXmlErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchUpload\":\n case \"com.amazonaws.s3#NoSuchUpload\":\n throw await de_NoSuchUploadRes(parsedOutput, context);\n case \"ObjectNotInActiveTierError\":\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\":\n throw await de_ObjectNotInActiveTierErrorRes(parsedOutput, context);\n case \"BucketAlreadyExists\":\n case \"com.amazonaws.s3#BucketAlreadyExists\":\n throw await de_BucketAlreadyExistsRes(parsedOutput, context);\n case \"BucketAlreadyOwnedByYou\":\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\":\n throw await de_BucketAlreadyOwnedByYouRes(parsedOutput, context);\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await de_NoSuchBucketRes(parsedOutput, context);\n case \"InvalidObjectState\":\n case \"com.amazonaws.s3#InvalidObjectState\":\n throw await de_InvalidObjectStateRes(parsedOutput, context);\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await de_NotFoundRes(parsedOutput, context);\n case \"EncryptionTypeMismatch\":\n case \"com.amazonaws.s3#EncryptionTypeMismatch\":\n throw await de_EncryptionTypeMismatchRes(parsedOutput, context);\n case \"InvalidRequest\":\n case \"com.amazonaws.s3#InvalidRequest\":\n throw await de_InvalidRequestRes(parsedOutput, context);\n case \"InvalidWriteOffset\":\n case \"com.amazonaws.s3#InvalidWriteOffset\":\n throw await de_InvalidWriteOffsetRes(parsedOutput, context);\n case \"TooManyParts\":\n case \"com.amazonaws.s3#TooManyParts\":\n throw await de_TooManyPartsRes(parsedOutput, context);\n case \"IdempotencyParameterMismatch\":\n case \"com.amazonaws.s3#IdempotencyParameterMismatch\":\n throw await de_IdempotencyParameterMismatchRes(parsedOutput, context);\n case \"ObjectAlreadyInActiveTierError\":\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\":\n throw await de_ObjectAlreadyInActiveTierErrorRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(S3ServiceException);\nvar de_BucketAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_BucketAlreadyExistsRes\");\nvar de_BucketAlreadyOwnedByYouRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyOwnedByYou({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_BucketAlreadyOwnedByYouRes\");\nvar de_EncryptionTypeMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new EncryptionTypeMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_EncryptionTypeMismatchRes\");\nvar de_IdempotencyParameterMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new IdempotencyParameterMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_IdempotencyParameterMismatchRes\");\nvar de_InvalidObjectStateRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n if (data[_AT] != null) {\n contents[_AT] = (0, import_smithy_client.expectString)(data[_AT]);\n }\n if (data[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(data[_SC]);\n }\n const exception = new InvalidObjectState({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidObjectStateRes\");\nvar de_InvalidRequestRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new InvalidRequest({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestRes\");\nvar de_InvalidWriteOffsetRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new InvalidWriteOffset({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidWriteOffsetRes\");\nvar de_NoSuchBucketRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NoSuchBucket({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NoSuchBucketRes\");\nvar de_NoSuchKeyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NoSuchKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NoSuchKeyRes\");\nvar de_NoSuchUploadRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NoSuchUpload({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NoSuchUploadRes\");\nvar de_NotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new NotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_NotFoundRes\");\nvar de_ObjectAlreadyInActiveTierErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new ObjectAlreadyInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ObjectAlreadyInActiveTierErrorRes\");\nvar de_ObjectNotInActiveTierErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new ObjectNotInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ObjectNotInActiveTierErrorRes\");\nvar de_TooManyPartsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const exception = new TooManyParts({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyPartsRes\");\nvar de_SelectObjectContentEventStream = /* @__PURE__ */ __name((output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"Records\"] != null) {\n return {\n Records: await de_RecordsEvent_event(event[\"Records\"], context)\n };\n }\n if (event[\"Stats\"] != null) {\n return {\n Stats: await de_StatsEvent_event(event[\"Stats\"], context)\n };\n }\n if (event[\"Progress\"] != null) {\n return {\n Progress: await de_ProgressEvent_event(event[\"Progress\"], context)\n };\n }\n if (event[\"Cont\"] != null) {\n return {\n Cont: await de_ContinuationEvent_event(event[\"Cont\"], context)\n };\n }\n if (event[\"End\"] != null) {\n return {\n End: await de_EndEvent_event(event[\"End\"], context)\n };\n }\n return { $unknown: event };\n });\n}, \"de_SelectObjectContentEventStream\");\nvar de_ContinuationEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n Object.assign(contents, de_ContinuationEvent(data, context));\n return contents;\n}, \"de_ContinuationEvent_event\");\nvar de_EndEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n Object.assign(contents, de_EndEvent(data, context));\n return contents;\n}, \"de_EndEvent_event\");\nvar de_ProgressEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n contents.Details = de_Progress(data, context);\n return contents;\n}, \"de_ProgressEvent_event\");\nvar de_RecordsEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n contents.Payload = output.body;\n return contents;\n}, \"de_RecordsEvent_event\");\nvar de_StatsEvent_event = /* @__PURE__ */ __name(async (output, context) => {\n const contents = {};\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n contents.Details = de_Stats(data, context);\n return contents;\n}, \"de_StatsEvent_event\");\nvar se_AbortIncompleteMultipartUpload = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AIMU);\n if (input[_DAI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DAI, String(input[_DAI])).n(_DAI));\n }\n return bn;\n}, \"se_AbortIncompleteMultipartUpload\");\nvar se_AccelerateConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ACc);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BAS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_AccelerateConfiguration\");\nvar se_AccessControlPolicy = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ACP);\n bn.lc(input, \"Grants\", \"AccessControlList\", () => se_Grants(input[_Gr], context));\n if (input[_O] != null) {\n bn.c(se_Owner(input[_O], context).n(_O));\n }\n return bn;\n}, \"se_AccessControlPolicy\");\nvar se_AccessControlTranslation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ACT);\n if (input[_O] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OOw, input[_O]).n(_O));\n }\n return bn;\n}, \"se_AccessControlTranslation\");\nvar se_AllowedHeaders = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_AH, entry);\n return n.n(_me);\n });\n}, \"se_AllowedHeaders\");\nvar se_AllowedMethods = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_AM, entry);\n return n.n(_me);\n });\n}, \"se_AllowedMethods\");\nvar se_AllowedOrigins = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_AO, entry);\n return n.n(_me);\n });\n}, \"se_AllowedOrigins\");\nvar se_AnalyticsAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_AnalyticsAndOperator\");\nvar se_AnalyticsConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AI, input[_I]).n(_I));\n }\n if (input[_F] != null) {\n bn.c(se_AnalyticsFilter(input[_F], context).n(_F));\n }\n if (input[_SCA] != null) {\n bn.c(se_StorageClassAnalysis(input[_SCA], context).n(_SCA));\n }\n return bn;\n}, \"se_AnalyticsConfiguration\");\nvar se_AnalyticsExportDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AED);\n if (input[_SBD] != null) {\n bn.c(se_AnalyticsS3BucketDestination(input[_SBD], context).n(_SBD));\n }\n return bn;\n}, \"se_AnalyticsExportDestination\");\nvar se_AnalyticsFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_AF);\n AnalyticsFilter.visit(input, {\n Prefix: /* @__PURE__ */ __name((value) => {\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, value).n(_P));\n }\n }, \"Prefix\"),\n Tag: /* @__PURE__ */ __name((value) => {\n if (input[_Ta] != null) {\n bn.c(se_Tag(value, context).n(_Ta));\n }\n }, \"Tag\"),\n And: /* @__PURE__ */ __name((value) => {\n if (input[_A] != null) {\n bn.c(se_AnalyticsAndOperator(value, context).n(_A));\n }\n }, \"And\"),\n _: /* @__PURE__ */ __name((name, value) => {\n if (!(value instanceof import_xml_builder.XmlNode || value instanceof import_xml_builder.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bn.c(new import_xml_builder.XmlNode(name).c(value));\n }, \"_\")\n });\n return bn;\n}, \"se_AnalyticsFilter\");\nvar se_AnalyticsS3BucketDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ASBD);\n if (input[_Fo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ASEFF, input[_Fo]).n(_Fo));\n }\n if (input[_BAI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AIc, input[_BAI]).n(_BAI));\n }\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BN, input[_B]).n(_B));\n }\n bn.cc(input, _P);\n return bn;\n}, \"se_AnalyticsS3BucketDestination\");\nvar se_BucketInfo = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_BI);\n bn.cc(input, _DR);\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BT, input[_Ty]).n(_Ty));\n }\n return bn;\n}, \"se_BucketInfo\");\nvar se_BucketLifecycleConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_BLC);\n bn.l(input, \"Rules\", \"Rule\", () => se_LifecycleRules(input[_Rul], context));\n return bn;\n}, \"se_BucketLifecycleConfiguration\");\nvar se_BucketLoggingStatus = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_BLS);\n if (input[_LE] != null) {\n bn.c(se_LoggingEnabled(input[_LE], context).n(_LE));\n }\n return bn;\n}, \"se_BucketLoggingStatus\");\nvar se_CompletedMultipartUpload = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CMU);\n bn.l(input, \"Parts\", \"Part\", () => se_CompletedPartList(input[_Part], context));\n return bn;\n}, \"se_CompletedMultipartUpload\");\nvar se_CompletedPart = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CPo);\n bn.cc(input, _ETa);\n bn.cc(input, _CCRC);\n bn.cc(input, _CCRCC);\n bn.cc(input, _CCRCNVME);\n bn.cc(input, _CSHA);\n bn.cc(input, _CSHAh);\n if (input[_PN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_PN, String(input[_PN])).n(_PN));\n }\n return bn;\n}, \"se_CompletedPart\");\nvar se_CompletedPartList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_CompletedPart(entry, context);\n return n.n(_me);\n });\n}, \"se_CompletedPartList\");\nvar se_Condition = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Con);\n bn.cc(input, _HECRE);\n bn.cc(input, _KPE);\n return bn;\n}, \"se_Condition\");\nvar se_CORSConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CORSC);\n bn.l(input, \"CORSRules\", \"CORSRule\", () => se_CORSRules(input[_CORSRu], context));\n return bn;\n}, \"se_CORSConfiguration\");\nvar se_CORSRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CORSR);\n bn.cc(input, _ID_);\n bn.l(input, \"AllowedHeaders\", \"AllowedHeader\", () => se_AllowedHeaders(input[_AHl], context));\n bn.l(input, \"AllowedMethods\", \"AllowedMethod\", () => se_AllowedMethods(input[_AMl], context));\n bn.l(input, \"AllowedOrigins\", \"AllowedOrigin\", () => se_AllowedOrigins(input[_AOl], context));\n bn.l(input, \"ExposeHeaders\", \"ExposeHeader\", () => se_ExposeHeaders(input[_EH], context));\n if (input[_MAS] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MAS, String(input[_MAS])).n(_MAS));\n }\n return bn;\n}, \"se_CORSRule\");\nvar se_CORSRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_CORSRule(entry, context);\n return n.n(_me);\n });\n}, \"se_CORSRules\");\nvar se_CreateBucketConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CBC);\n if (input[_LC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BLCu, input[_LC]).n(_LC));\n }\n if (input[_L] != null) {\n bn.c(se_LocationInfo(input[_L], context).n(_L));\n }\n if (input[_B] != null) {\n bn.c(se_BucketInfo(input[_B], context).n(_B));\n }\n bn.lc(input, \"Tags\", \"Tags\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_CreateBucketConfiguration\");\nvar se_CSVInput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CSVIn);\n bn.cc(input, _FHI);\n bn.cc(input, _Com);\n bn.cc(input, _QEC);\n bn.cc(input, _RD);\n bn.cc(input, _FD);\n bn.cc(input, _QCuo);\n if (input[_AQRD] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AQRD, String(input[_AQRD])).n(_AQRD));\n }\n return bn;\n}, \"se_CSVInput\");\nvar se_CSVOutput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_CSVO);\n bn.cc(input, _QF);\n bn.cc(input, _QEC);\n bn.cc(input, _RD);\n bn.cc(input, _FD);\n bn.cc(input, _QCuo);\n return bn;\n}, \"se_CSVOutput\");\nvar se_DefaultRetention = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_DRe);\n if (input[_Mo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OLRM, input[_Mo]).n(_Mo));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_Y] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Y, String(input[_Y])).n(_Y));\n }\n return bn;\n}, \"se_DefaultRetention\");\nvar se_Delete = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Del);\n bn.l(input, \"Objects\", \"Object\", () => se_ObjectIdentifierList(input[_Ob], context));\n if (input[_Q] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Q, String(input[_Q])).n(_Q));\n }\n return bn;\n}, \"se_Delete\");\nvar se_DeleteMarkerReplication = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_DMR);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_DMRS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_DeleteMarkerReplication\");\nvar se_Destination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Des);\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BN, input[_B]).n(_B));\n }\n if (input[_Ac] != null) {\n bn.c(import_xml_builder.XmlNode.of(_AIc, input[_Ac]).n(_Ac));\n }\n bn.cc(input, _SC);\n if (input[_ACT] != null) {\n bn.c(se_AccessControlTranslation(input[_ACT], context).n(_ACT));\n }\n if (input[_ECn] != null) {\n bn.c(se_EncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n if (input[_RTe] != null) {\n bn.c(se_ReplicationTime(input[_RTe], context).n(_RTe));\n }\n if (input[_Me] != null) {\n bn.c(se_Metrics(input[_Me], context).n(_Me));\n }\n return bn;\n}, \"se_Destination\");\nvar se_Encryption = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_En);\n if (input[_ETn] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSE, input[_ETn]).n(_ETn));\n }\n if (input[_KMSKI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSEKMSKI, input[_KMSKI]).n(_KMSKI));\n }\n bn.cc(input, _KMSC);\n return bn;\n}, \"se_Encryption\");\nvar se_EncryptionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ECn);\n bn.cc(input, _RKKID);\n return bn;\n}, \"se_EncryptionConfiguration\");\nvar se_ErrorDocument = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ED);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OK, input[_K]).n(_K));\n }\n return bn;\n}, \"se_ErrorDocument\");\nvar se_EventBridgeConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_EBC);\n return bn;\n}, \"se_EventBridgeConfiguration\");\nvar se_EventList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_Ev, entry);\n return n.n(_me);\n });\n}, \"se_EventList\");\nvar se_ExistingObjectReplication = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_EOR);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_EORS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_ExistingObjectReplication\");\nvar se_ExposeHeaders = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_EHx, entry);\n return n.n(_me);\n });\n}, \"se_ExposeHeaders\");\nvar se_FilterRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_FR);\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FRN, input[_N]).n(_N));\n }\n if (input[_Va] != null) {\n bn.c(import_xml_builder.XmlNode.of(_FRV, input[_Va]).n(_Va));\n }\n return bn;\n}, \"se_FilterRule\");\nvar se_FilterRuleList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_FilterRule(entry, context);\n return n.n(_me);\n });\n}, \"se_FilterRuleList\");\nvar se_GlacierJobParameters = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_GJP);\n bn.cc(input, _Ti);\n return bn;\n}, \"se_GlacierJobParameters\");\nvar se_Grant = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_G);\n if (input[_Gra] != null) {\n const n = se_Grantee(input[_Gra], context).n(_Gra);\n n.a(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bn.c(n);\n }\n bn.cc(input, _Pe);\n return bn;\n}, \"se_Grant\");\nvar se_Grantee = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Gra);\n bn.cc(input, _DN);\n bn.cc(input, _EA);\n bn.cc(input, _ID_);\n bn.cc(input, _URI);\n bn.a(\"xsi:type\", input[_Ty]);\n return bn;\n}, \"se_Grantee\");\nvar se_Grants = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Grant(entry, context);\n return n.n(_G);\n });\n}, \"se_Grants\");\nvar se_IndexDocument = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ID);\n bn.cc(input, _Su);\n return bn;\n}, \"se_IndexDocument\");\nvar se_InputSerialization = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IS);\n if (input[_CSV] != null) {\n bn.c(se_CSVInput(input[_CSV], context).n(_CSV));\n }\n bn.cc(input, _CTom);\n if (input[_JSON] != null) {\n bn.c(se_JSONInput(input[_JSON], context).n(_JSON));\n }\n if (input[_Parq] != null) {\n bn.c(se_ParquetInput(input[_Parq], context).n(_Parq));\n }\n return bn;\n}, \"se_InputSerialization\");\nvar se_IntelligentTieringAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_IntelligentTieringAndOperator\");\nvar se_IntelligentTieringConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITI, input[_I]).n(_I));\n }\n if (input[_F] != null) {\n bn.c(se_IntelligentTieringFilter(input[_F], context).n(_F));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITS, input[_S]).n(_S));\n }\n bn.l(input, \"Tierings\", \"Tiering\", () => se_TieringList(input[_Tie], context));\n return bn;\n}, \"se_IntelligentTieringConfiguration\");\nvar se_IntelligentTieringFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITF);\n bn.cc(input, _P);\n if (input[_Ta] != null) {\n bn.c(se_Tag(input[_Ta], context).n(_Ta));\n }\n if (input[_A] != null) {\n bn.c(se_IntelligentTieringAndOperator(input[_A], context).n(_A));\n }\n return bn;\n}, \"se_IntelligentTieringFilter\");\nvar se_InventoryConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IC);\n if (input[_Des] != null) {\n bn.c(se_InventoryDestination(input[_Des], context).n(_Des));\n }\n if (input[_IE] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IE, String(input[_IE])).n(_IE));\n }\n if (input[_F] != null) {\n bn.c(se_InventoryFilter(input[_F], context).n(_F));\n }\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_II, input[_I]).n(_I));\n }\n if (input[_IOV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IIOV, input[_IOV]).n(_IOV));\n }\n bn.lc(input, \"OptionalFields\", \"OptionalFields\", () => se_InventoryOptionalFields(input[_OF], context));\n if (input[_Sc] != null) {\n bn.c(se_InventorySchedule(input[_Sc], context).n(_Sc));\n }\n return bn;\n}, \"se_InventoryConfiguration\");\nvar se_InventoryDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IDn);\n if (input[_SBD] != null) {\n bn.c(se_InventoryS3BucketDestination(input[_SBD], context).n(_SBD));\n }\n return bn;\n}, \"se_InventoryDestination\");\nvar se_InventoryEncryption = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IEn);\n if (input[_SSES] != null) {\n bn.c(se_SSES3(input[_SSES], context).n(_SS));\n }\n if (input[_SSEKMS] != null) {\n bn.c(se_SSEKMS(input[_SSEKMS], context).n(_SK));\n }\n return bn;\n}, \"se_InventoryEncryption\");\nvar se_InventoryFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_IF);\n bn.cc(input, _P);\n return bn;\n}, \"se_InventoryFilter\");\nvar se_InventoryOptionalFields = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = import_xml_builder.XmlNode.of(_IOF, entry);\n return n.n(_Fi);\n });\n}, \"se_InventoryOptionalFields\");\nvar se_InventoryS3BucketDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ISBD);\n bn.cc(input, _AIc);\n if (input[_B] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BN, input[_B]).n(_B));\n }\n if (input[_Fo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IFn, input[_Fo]).n(_Fo));\n }\n bn.cc(input, _P);\n if (input[_En] != null) {\n bn.c(se_InventoryEncryption(input[_En], context).n(_En));\n }\n return bn;\n}, \"se_InventoryS3BucketDestination\");\nvar se_InventorySchedule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ISn);\n if (input[_Fr] != null) {\n bn.c(import_xml_builder.XmlNode.of(_IFnv, input[_Fr]).n(_Fr));\n }\n return bn;\n}, \"se_InventorySchedule\");\nvar se_InventoryTableConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITCn);\n if (input[_CSo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ICS, input[_CSo]).n(_CSo));\n }\n if (input[_ECn] != null) {\n bn.c(se_MetadataTableEncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n return bn;\n}, \"se_InventoryTableConfiguration\");\nvar se_InventoryTableConfigurationUpdates = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ITCU);\n if (input[_CSo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ICS, input[_CSo]).n(_CSo));\n }\n if (input[_ECn] != null) {\n bn.c(se_MetadataTableEncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n return bn;\n}, \"se_InventoryTableConfigurationUpdates\");\nvar se_JournalTableConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JTC);\n if (input[_REe] != null) {\n bn.c(se_RecordExpiration(input[_REe], context).n(_REe));\n }\n if (input[_ECn] != null) {\n bn.c(se_MetadataTableEncryptionConfiguration(input[_ECn], context).n(_ECn));\n }\n return bn;\n}, \"se_JournalTableConfiguration\");\nvar se_JournalTableConfigurationUpdates = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JTCU);\n if (input[_REe] != null) {\n bn.c(se_RecordExpiration(input[_REe], context).n(_REe));\n }\n return bn;\n}, \"se_JournalTableConfigurationUpdates\");\nvar se_JSONInput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JSONI);\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_JSONT, input[_Ty]).n(_Ty));\n }\n return bn;\n}, \"se_JSONInput\");\nvar se_JSONOutput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_JSONO);\n bn.cc(input, _RD);\n return bn;\n}, \"se_JSONOutput\");\nvar se_LambdaFunctionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LFCa);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_NI, input[_I]).n(_I));\n }\n if (input[_LFA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LFA, input[_LFA]).n(_CF));\n }\n bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n if (input[_F] != null) {\n bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_LambdaFunctionConfiguration\");\nvar se_LambdaFunctionConfigurationList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_LambdaFunctionConfiguration(entry, context);\n return n.n(_me);\n });\n}, \"se_LambdaFunctionConfigurationList\");\nvar se_LifecycleExpiration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LEi);\n if (input[_Dat] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Dat, (0, import_smithy_client.serializeDateTime)(input[_Dat]).toString()).n(_Dat));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_EODM] != null) {\n bn.c(import_xml_builder.XmlNode.of(_EODM, String(input[_EODM])).n(_EODM));\n }\n return bn;\n}, \"se_LifecycleExpiration\");\nvar se_LifecycleRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LR);\n if (input[_Exp] != null) {\n bn.c(se_LifecycleExpiration(input[_Exp], context).n(_Exp));\n }\n bn.cc(input, _ID_);\n bn.cc(input, _P);\n if (input[_F] != null) {\n bn.c(se_LifecycleRuleFilter(input[_F], context).n(_F));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESx, input[_S]).n(_S));\n }\n bn.l(input, \"Transitions\", \"Transition\", () => se_TransitionList(input[_Tr], context));\n bn.l(\n input,\n \"NoncurrentVersionTransitions\",\n \"NoncurrentVersionTransition\",\n () => se_NoncurrentVersionTransitionList(input[_NVT], context)\n );\n if (input[_NVE] != null) {\n bn.c(se_NoncurrentVersionExpiration(input[_NVE], context).n(_NVE));\n }\n if (input[_AIMU] != null) {\n bn.c(se_AbortIncompleteMultipartUpload(input[_AIMU], context).n(_AIMU));\n }\n return bn;\n}, \"se_LifecycleRule\");\nvar se_LifecycleRuleAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LRAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n if (input[_OSGT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSGTB, String(input[_OSGT])).n(_OSGT));\n }\n if (input[_OSLT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSLTB, String(input[_OSLT])).n(_OSLT));\n }\n return bn;\n}, \"se_LifecycleRuleAndOperator\");\nvar se_LifecycleRuleFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LRF);\n bn.cc(input, _P);\n if (input[_Ta] != null) {\n bn.c(se_Tag(input[_Ta], context).n(_Ta));\n }\n if (input[_OSGT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSGTB, String(input[_OSGT])).n(_OSGT));\n }\n if (input[_OSLT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OSLTB, String(input[_OSLT])).n(_OSLT));\n }\n if (input[_A] != null) {\n bn.c(se_LifecycleRuleAndOperator(input[_A], context).n(_A));\n }\n return bn;\n}, \"se_LifecycleRuleFilter\");\nvar se_LifecycleRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_LifecycleRule(entry, context);\n return n.n(_me);\n });\n}, \"se_LifecycleRules\");\nvar se_LocationInfo = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LI);\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LT, input[_Ty]).n(_Ty));\n }\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LNAS, input[_N]).n(_N));\n }\n return bn;\n}, \"se_LocationInfo\");\nvar se_LoggingEnabled = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_LE);\n bn.cc(input, _TB);\n bn.lc(input, \"TargetGrants\", \"TargetGrants\", () => se_TargetGrants(input[_TG], context));\n bn.cc(input, _TP);\n if (input[_TOKF] != null) {\n bn.c(se_TargetObjectKeyFormat(input[_TOKF], context).n(_TOKF));\n }\n return bn;\n}, \"se_LoggingEnabled\");\nvar se_MetadataConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MCe);\n if (input[_JTC] != null) {\n bn.c(se_JournalTableConfiguration(input[_JTC], context).n(_JTC));\n }\n if (input[_ITCn] != null) {\n bn.c(se_InventoryTableConfiguration(input[_ITCn], context).n(_ITCn));\n }\n return bn;\n}, \"se_MetadataConfiguration\");\nvar se_MetadataEntry = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_ME);\n if (input[_N] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MKe, input[_N]).n(_N));\n }\n if (input[_Va] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MV, input[_Va]).n(_Va));\n }\n return bn;\n}, \"se_MetadataEntry\");\nvar se_MetadataTableConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MTC);\n if (input[_STD] != null) {\n bn.c(se_S3TablesDestination(input[_STD], context).n(_STD));\n }\n return bn;\n}, \"se_MetadataTableConfiguration\");\nvar se_MetadataTableEncryptionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MTEC);\n if (input[_SAs] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TSA, input[_SAs]).n(_SAs));\n }\n bn.cc(input, _KKA);\n return bn;\n}, \"se_MetadataTableEncryptionConfiguration\");\nvar se_Metrics = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Me);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MS, input[_S]).n(_S));\n }\n if (input[_ETv] != null) {\n bn.c(se_ReplicationTimeValue(input[_ETv], context).n(_ETv));\n }\n return bn;\n}, \"se_Metrics\");\nvar se_MetricsAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n bn.cc(input, _APAc);\n return bn;\n}, \"se_MetricsAndOperator\");\nvar se_MetricsConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MI, input[_I]).n(_I));\n }\n if (input[_F] != null) {\n bn.c(se_MetricsFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_MetricsConfiguration\");\nvar se_MetricsFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_MF);\n MetricsFilter.visit(input, {\n Prefix: /* @__PURE__ */ __name((value) => {\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_P, value).n(_P));\n }\n }, \"Prefix\"),\n Tag: /* @__PURE__ */ __name((value) => {\n if (input[_Ta] != null) {\n bn.c(se_Tag(value, context).n(_Ta));\n }\n }, \"Tag\"),\n AccessPointArn: /* @__PURE__ */ __name((value) => {\n if (input[_APAc] != null) {\n bn.c(import_xml_builder.XmlNode.of(_APAc, value).n(_APAc));\n }\n }, \"AccessPointArn\"),\n And: /* @__PURE__ */ __name((value) => {\n if (input[_A] != null) {\n bn.c(se_MetricsAndOperator(value, context).n(_A));\n }\n }, \"And\"),\n _: /* @__PURE__ */ __name((name, value) => {\n if (!(value instanceof import_xml_builder.XmlNode || value instanceof import_xml_builder.XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bn.c(new import_xml_builder.XmlNode(name).c(value));\n }, \"_\")\n });\n return bn;\n}, \"se_MetricsFilter\");\nvar se_NoncurrentVersionExpiration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NVE);\n if (input[_ND] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_ND])).n(_ND));\n }\n if (input[_NNV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_VC, String(input[_NNV])).n(_NNV));\n }\n return bn;\n}, \"se_NoncurrentVersionExpiration\");\nvar se_NoncurrentVersionTransition = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NVTo);\n if (input[_ND] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_ND])).n(_ND));\n }\n if (input[_SC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TSC, input[_SC]).n(_SC));\n }\n if (input[_NNV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_VC, String(input[_NNV])).n(_NNV));\n }\n return bn;\n}, \"se_NoncurrentVersionTransition\");\nvar se_NoncurrentVersionTransitionList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_NoncurrentVersionTransition(entry, context);\n return n.n(_me);\n });\n}, \"se_NoncurrentVersionTransitionList\");\nvar se_NotificationConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NC);\n bn.l(input, \"TopicConfigurations\", \"TopicConfiguration\", () => se_TopicConfigurationList(input[_TCop], context));\n bn.l(input, \"QueueConfigurations\", \"QueueConfiguration\", () => se_QueueConfigurationList(input[_QCu], context));\n bn.l(\n input,\n \"LambdaFunctionConfigurations\",\n \"CloudFunctionConfiguration\",\n () => se_LambdaFunctionConfigurationList(input[_LFC], context)\n );\n if (input[_EBC] != null) {\n bn.c(se_EventBridgeConfiguration(input[_EBC], context).n(_EBC));\n }\n return bn;\n}, \"se_NotificationConfiguration\");\nvar se_NotificationConfigurationFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_NCF);\n if (input[_K] != null) {\n bn.c(se_S3KeyFilter(input[_K], context).n(_SKe));\n }\n return bn;\n}, \"se_NotificationConfigurationFilter\");\nvar se_ObjectIdentifier = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OI);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OK, input[_K]).n(_K));\n }\n if (input[_VI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OVI, input[_VI]).n(_VI));\n }\n bn.cc(input, _ETa);\n if (input[_LMT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LMT, (0, import_smithy_client.dateToUtcString)(input[_LMT]).toString()).n(_LMT));\n }\n if (input[_Si] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Si, String(input[_Si])).n(_Si));\n }\n return bn;\n}, \"se_ObjectIdentifier\");\nvar se_ObjectIdentifierList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ObjectIdentifier(entry, context);\n return n.n(_me);\n });\n}, \"se_ObjectIdentifierList\");\nvar se_ObjectLockConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLC);\n bn.cc(input, _OLE);\n if (input[_Ru] != null) {\n bn.c(se_ObjectLockRule(input[_Ru], context).n(_Ru));\n }\n return bn;\n}, \"se_ObjectLockConfiguration\");\nvar se_ObjectLockLegalHold = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLLH);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OLLHS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_ObjectLockLegalHold\");\nvar se_ObjectLockRetention = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLR);\n if (input[_Mo] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OLRM, input[_Mo]).n(_Mo));\n }\n if (input[_RUD] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Dat, (0, import_smithy_client.serializeDateTime)(input[_RUD]).toString()).n(_RUD));\n }\n return bn;\n}, \"se_ObjectLockRetention\");\nvar se_ObjectLockRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OLRb);\n if (input[_DRe] != null) {\n bn.c(se_DefaultRetention(input[_DRe], context).n(_DRe));\n }\n return bn;\n}, \"se_ObjectLockRule\");\nvar se_OutputLocation = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OL);\n if (input[_S_] != null) {\n bn.c(se_S3Location(input[_S_], context).n(_S_));\n }\n return bn;\n}, \"se_OutputLocation\");\nvar se_OutputSerialization = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OS);\n if (input[_CSV] != null) {\n bn.c(se_CSVOutput(input[_CSV], context).n(_CSV));\n }\n if (input[_JSON] != null) {\n bn.c(se_JSONOutput(input[_JSON], context).n(_JSON));\n }\n return bn;\n}, \"se_OutputSerialization\");\nvar se_Owner = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_O);\n bn.cc(input, _DN);\n bn.cc(input, _ID_);\n return bn;\n}, \"se_Owner\");\nvar se_OwnershipControls = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OC);\n bn.l(input, \"Rules\", \"Rule\", () => se_OwnershipControlsRules(input[_Rul], context));\n return bn;\n}, \"se_OwnershipControls\");\nvar se_OwnershipControlsRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_OCR);\n bn.cc(input, _OO);\n return bn;\n}, \"se_OwnershipControlsRule\");\nvar se_OwnershipControlsRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_OwnershipControlsRule(entry, context);\n return n.n(_me);\n });\n}, \"se_OwnershipControlsRules\");\nvar se_ParquetInput = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_PI);\n return bn;\n}, \"se_ParquetInput\");\nvar se_PartitionedPrefix = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_PP);\n bn.cc(input, _PDS);\n return bn;\n}, \"se_PartitionedPrefix\");\nvar se_PublicAccessBlockConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_PABC);\n if (input[_BPA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_BPA])).n(_BPA));\n }\n if (input[_IPA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_IPA])).n(_IPA));\n }\n if (input[_BPP] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_BPP])).n(_BPP));\n }\n if (input[_RPB] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Se, String(input[_RPB])).n(_RPB));\n }\n return bn;\n}, \"se_PublicAccessBlockConfiguration\");\nvar se_QueueConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_QC);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_NI, input[_I]).n(_I));\n }\n if (input[_QA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_QA, input[_QA]).n(_Qu));\n }\n bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n if (input[_F] != null) {\n bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_QueueConfiguration\");\nvar se_QueueConfigurationList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_QueueConfiguration(entry, context);\n return n.n(_me);\n });\n}, \"se_QueueConfigurationList\");\nvar se_RecordExpiration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_REe);\n if (input[_Exp] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ESxp, input[_Exp]).n(_Exp));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RED, String(input[_Da])).n(_Da));\n }\n return bn;\n}, \"se_RecordExpiration\");\nvar se_Redirect = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Red);\n bn.cc(input, _HN);\n bn.cc(input, _HRC);\n bn.cc(input, _Pr);\n bn.cc(input, _RKPW);\n bn.cc(input, _RKW);\n return bn;\n}, \"se_Redirect\");\nvar se_RedirectAllRequestsTo = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RART);\n bn.cc(input, _HN);\n bn.cc(input, _Pr);\n return bn;\n}, \"se_RedirectAllRequestsTo\");\nvar se_ReplicaModifications = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RM);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RMS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_ReplicaModifications\");\nvar se_ReplicationConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RCe);\n bn.cc(input, _Ro);\n bn.l(input, \"Rules\", \"Rule\", () => se_ReplicationRules(input[_Rul], context));\n return bn;\n}, \"se_ReplicationConfiguration\");\nvar se_ReplicationRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRe);\n bn.cc(input, _ID_);\n if (input[_Pri] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Pri, String(input[_Pri])).n(_Pri));\n }\n bn.cc(input, _P);\n if (input[_F] != null) {\n bn.c(se_ReplicationRuleFilter(input[_F], context).n(_F));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRS, input[_S]).n(_S));\n }\n if (input[_SSC] != null) {\n bn.c(se_SourceSelectionCriteria(input[_SSC], context).n(_SSC));\n }\n if (input[_EOR] != null) {\n bn.c(se_ExistingObjectReplication(input[_EOR], context).n(_EOR));\n }\n if (input[_Des] != null) {\n bn.c(se_Destination(input[_Des], context).n(_Des));\n }\n if (input[_DMR] != null) {\n bn.c(se_DeleteMarkerReplication(input[_DMR], context).n(_DMR));\n }\n return bn;\n}, \"se_ReplicationRule\");\nvar se_ReplicationRuleAndOperator = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRAO);\n bn.cc(input, _P);\n bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n return bn;\n}, \"se_ReplicationRuleAndOperator\");\nvar se_ReplicationRuleFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRF);\n bn.cc(input, _P);\n if (input[_Ta] != null) {\n bn.c(se_Tag(input[_Ta], context).n(_Ta));\n }\n if (input[_A] != null) {\n bn.c(se_ReplicationRuleAndOperator(input[_A], context).n(_A));\n }\n return bn;\n}, \"se_ReplicationRuleFilter\");\nvar se_ReplicationRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ReplicationRule(entry, context);\n return n.n(_me);\n });\n}, \"se_ReplicationRules\");\nvar se_ReplicationTime = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RTe);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RTS, input[_S]).n(_S));\n }\n if (input[_Tim] != null) {\n bn.c(se_ReplicationTimeValue(input[_Tim], context).n(_Tim));\n }\n return bn;\n}, \"se_ReplicationTime\");\nvar se_ReplicationTimeValue = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RTV);\n if (input[_Mi] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Mi, String(input[_Mi])).n(_Mi));\n }\n return bn;\n}, \"se_ReplicationTimeValue\");\nvar se_RequestPaymentConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RPC);\n bn.cc(input, _Pa);\n return bn;\n}, \"se_RequestPaymentConfiguration\");\nvar se_RequestProgress = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RPe);\n if (input[_Ena] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ERP, String(input[_Ena])).n(_Ena));\n }\n return bn;\n}, \"se_RequestProgress\");\nvar se_RestoreRequest = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRes);\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_GJP] != null) {\n bn.c(se_GlacierJobParameters(input[_GJP], context).n(_GJP));\n }\n if (input[_Ty] != null) {\n bn.c(import_xml_builder.XmlNode.of(_RRT, input[_Ty]).n(_Ty));\n }\n bn.cc(input, _Ti);\n bn.cc(input, _Desc);\n if (input[_SP] != null) {\n bn.c(se_SelectParameters(input[_SP], context).n(_SP));\n }\n if (input[_OL] != null) {\n bn.c(se_OutputLocation(input[_OL], context).n(_OL));\n }\n return bn;\n}, \"se_RestoreRequest\");\nvar se_RoutingRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_RRou);\n if (input[_Con] != null) {\n bn.c(se_Condition(input[_Con], context).n(_Con));\n }\n if (input[_Red] != null) {\n bn.c(se_Redirect(input[_Red], context).n(_Red));\n }\n return bn;\n}, \"se_RoutingRule\");\nvar se_RoutingRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_RoutingRule(entry, context);\n return n.n(_RRou);\n });\n}, \"se_RoutingRules\");\nvar se_S3KeyFilter = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SKF);\n bn.l(input, \"FilterRules\", \"FilterRule\", () => se_FilterRuleList(input[_FRi], context));\n return bn;\n}, \"se_S3KeyFilter\");\nvar se_S3Location = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SL);\n bn.cc(input, _BN);\n if (input[_P] != null) {\n bn.c(import_xml_builder.XmlNode.of(_LP, input[_P]).n(_P));\n }\n if (input[_En] != null) {\n bn.c(se_Encryption(input[_En], context).n(_En));\n }\n if (input[_CACL] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OCACL, input[_CACL]).n(_CACL));\n }\n bn.lc(input, \"AccessControlList\", \"AccessControlList\", () => se_Grants(input[_ACLc], context));\n if (input[_T] != null) {\n bn.c(se_Tagging(input[_T], context).n(_T));\n }\n bn.lc(input, \"UserMetadata\", \"UserMetadata\", () => se_UserMetadata(input[_UM], context));\n bn.cc(input, _SC);\n return bn;\n}, \"se_S3Location\");\nvar se_S3TablesDestination = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_STD);\n if (input[_TBA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_STBA, input[_TBA]).n(_TBA));\n }\n if (input[_TN] != null) {\n bn.c(import_xml_builder.XmlNode.of(_STN, input[_TN]).n(_TN));\n }\n return bn;\n}, \"se_S3TablesDestination\");\nvar se_ScanRange = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SR);\n if (input[_St] != null) {\n bn.c(import_xml_builder.XmlNode.of(_St, String(input[_St])).n(_St));\n }\n if (input[_End] != null) {\n bn.c(import_xml_builder.XmlNode.of(_End, String(input[_End])).n(_End));\n }\n return bn;\n}, \"se_ScanRange\");\nvar se_SelectParameters = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SP);\n if (input[_IS] != null) {\n bn.c(se_InputSerialization(input[_IS], context).n(_IS));\n }\n bn.cc(input, _ETx);\n bn.cc(input, _Ex);\n if (input[_OS] != null) {\n bn.c(se_OutputSerialization(input[_OS], context).n(_OS));\n }\n return bn;\n}, \"se_SelectParameters\");\nvar se_ServerSideEncryptionByDefault = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSEBD);\n if (input[_SSEA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSE, input[_SSEA]).n(_SSEA));\n }\n if (input[_KMSMKID] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSEKMSKI, input[_KMSMKID]).n(_KMSMKID));\n }\n return bn;\n}, \"se_ServerSideEncryptionByDefault\");\nvar se_ServerSideEncryptionConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSEC);\n bn.l(input, \"Rules\", \"Rule\", () => se_ServerSideEncryptionRules(input[_Rul], context));\n return bn;\n}, \"se_ServerSideEncryptionConfiguration\");\nvar se_ServerSideEncryptionRule = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSER);\n if (input[_ASSEBD] != null) {\n bn.c(se_ServerSideEncryptionByDefault(input[_ASSEBD], context).n(_ASSEBD));\n }\n if (input[_BKE] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BKE, String(input[_BKE])).n(_BKE));\n }\n return bn;\n}, \"se_ServerSideEncryptionRule\");\nvar se_ServerSideEncryptionRules = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_ServerSideEncryptionRule(entry, context);\n return n.n(_me);\n });\n}, \"se_ServerSideEncryptionRules\");\nvar se_SimplePrefix = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SPi);\n return bn;\n}, \"se_SimplePrefix\");\nvar se_SourceSelectionCriteria = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SSC);\n if (input[_SKEO] != null) {\n bn.c(se_SseKmsEncryptedObjects(input[_SKEO], context).n(_SKEO));\n }\n if (input[_RM] != null) {\n bn.c(se_ReplicaModifications(input[_RM], context).n(_RM));\n }\n return bn;\n}, \"se_SourceSelectionCriteria\");\nvar se_SSEKMS = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SK);\n if (input[_KI] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SSEKMSKI, input[_KI]).n(_KI));\n }\n return bn;\n}, \"se_SSEKMS\");\nvar se_SseKmsEncryptedObjects = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SKEO);\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SKEOS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_SseKmsEncryptedObjects\");\nvar se_SSES3 = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SS);\n return bn;\n}, \"se_SSES3\");\nvar se_StorageClassAnalysis = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SCA);\n if (input[_DE] != null) {\n bn.c(se_StorageClassAnalysisDataExport(input[_DE], context).n(_DE));\n }\n return bn;\n}, \"se_StorageClassAnalysis\");\nvar se_StorageClassAnalysisDataExport = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_SCADE);\n if (input[_OSV] != null) {\n bn.c(import_xml_builder.XmlNode.of(_SCASV, input[_OSV]).n(_OSV));\n }\n if (input[_Des] != null) {\n bn.c(se_AnalyticsExportDestination(input[_Des], context).n(_Des));\n }\n return bn;\n}, \"se_StorageClassAnalysisDataExport\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Ta);\n if (input[_K] != null) {\n bn.c(import_xml_builder.XmlNode.of(_OK, input[_K]).n(_K));\n }\n bn.cc(input, _Va);\n return bn;\n}, \"se_Tag\");\nvar se_Tagging = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_T);\n bn.lc(input, \"TagSet\", \"TagSet\", () => se_TagSet(input[_TS], context));\n return bn;\n}, \"se_Tagging\");\nvar se_TagSet = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Tag(entry, context);\n return n.n(_Ta);\n });\n}, \"se_TagSet\");\nvar se_TargetGrant = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_TGa);\n if (input[_Gra] != null) {\n const n = se_Grantee(input[_Gra], context).n(_Gra);\n n.a(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bn.c(n);\n }\n if (input[_Pe] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BLP, input[_Pe]).n(_Pe));\n }\n return bn;\n}, \"se_TargetGrant\");\nvar se_TargetGrants = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_TargetGrant(entry, context);\n return n.n(_G);\n });\n}, \"se_TargetGrants\");\nvar se_TargetObjectKeyFormat = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_TOKF);\n if (input[_SPi] != null) {\n bn.c(se_SimplePrefix(input[_SPi], context).n(_SPi));\n }\n if (input[_PP] != null) {\n bn.c(se_PartitionedPrefix(input[_PP], context).n(_PP));\n }\n return bn;\n}, \"se_TargetObjectKeyFormat\");\nvar se_Tiering = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Tier);\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITD, String(input[_Da])).n(_Da));\n }\n if (input[_AT] != null) {\n bn.c(import_xml_builder.XmlNode.of(_ITAT, input[_AT]).n(_AT));\n }\n return bn;\n}, \"se_Tiering\");\nvar se_TieringList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Tiering(entry, context);\n return n.n(_me);\n });\n}, \"se_TieringList\");\nvar se_TopicConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_TCo);\n if (input[_I] != null) {\n bn.c(import_xml_builder.XmlNode.of(_NI, input[_I]).n(_I));\n }\n if (input[_TA] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TA, input[_TA]).n(_Top));\n }\n bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n if (input[_F] != null) {\n bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n }\n return bn;\n}, \"se_TopicConfiguration\");\nvar se_TopicConfigurationList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_TopicConfiguration(entry, context);\n return n.n(_me);\n });\n}, \"se_TopicConfigurationList\");\nvar se_Transition = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_Tra);\n if (input[_Dat] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Dat, (0, import_smithy_client.serializeDateTime)(input[_Dat]).toString()).n(_Dat));\n }\n if (input[_Da] != null) {\n bn.c(import_xml_builder.XmlNode.of(_Da, String(input[_Da])).n(_Da));\n }\n if (input[_SC] != null) {\n bn.c(import_xml_builder.XmlNode.of(_TSC, input[_SC]).n(_SC));\n }\n return bn;\n}, \"se_Transition\");\nvar se_TransitionList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_Transition(entry, context);\n return n.n(_me);\n });\n}, \"se_TransitionList\");\nvar se_UserMetadata = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n const n = se_MetadataEntry(entry, context);\n return n.n(_ME);\n });\n}, \"se_UserMetadata\");\nvar se_VersioningConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_VCe);\n if (input[_MFAD] != null) {\n bn.c(import_xml_builder.XmlNode.of(_MFAD, input[_MFAD]).n(_MDf));\n }\n if (input[_S] != null) {\n bn.c(import_xml_builder.XmlNode.of(_BVS, input[_S]).n(_S));\n }\n return bn;\n}, \"se_VersioningConfiguration\");\nvar se_WebsiteConfiguration = /* @__PURE__ */ __name((input, context) => {\n const bn = new import_xml_builder.XmlNode(_WC);\n if (input[_ED] != null) {\n bn.c(se_ErrorDocument(input[_ED], context).n(_ED));\n }\n if (input[_ID] != null) {\n bn.c(se_IndexDocument(input[_ID], context).n(_ID));\n }\n if (input[_RART] != null) {\n bn.c(se_RedirectAllRequestsTo(input[_RART], context).n(_RART));\n }\n bn.lc(input, \"RoutingRules\", \"RoutingRules\", () => se_RoutingRules(input[_RRo], context));\n return bn;\n}, \"se_WebsiteConfiguration\");\nvar de_AbortIncompleteMultipartUpload = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DAI] != null) {\n contents[_DAI] = (0, import_smithy_client.strictParseInt32)(output[_DAI]);\n }\n return contents;\n}, \"de_AbortIncompleteMultipartUpload\");\nvar de_AccessControlTranslation = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_O] != null) {\n contents[_O] = (0, import_smithy_client.expectString)(output[_O]);\n }\n return contents;\n}, \"de_AccessControlTranslation\");\nvar de_AllowedHeaders = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedHeaders\");\nvar de_AllowedMethods = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedMethods\");\nvar de_AllowedOrigins = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_AllowedOrigins\");\nvar de_AnalyticsAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n return contents;\n}, \"de_AnalyticsAndOperator\");\nvar de_AnalyticsConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output.Filter === \"\") {\n } else if (output[_F] != null) {\n contents[_F] = de_AnalyticsFilter((0, import_smithy_client.expectUnion)(output[_F]), context);\n }\n if (output[_SCA] != null) {\n contents[_SCA] = de_StorageClassAnalysis(output[_SCA], context);\n }\n return contents;\n}, \"de_AnalyticsConfiguration\");\nvar de_AnalyticsConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_AnalyticsConfiguration(entry, context);\n });\n}, \"de_AnalyticsConfigurationList\");\nvar de_AnalyticsExportDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SBD] != null) {\n contents[_SBD] = de_AnalyticsS3BucketDestination(output[_SBD], context);\n }\n return contents;\n}, \"de_AnalyticsExportDestination\");\nvar de_AnalyticsFilter = /* @__PURE__ */ __name((output, context) => {\n if (output[_P] != null) {\n return {\n Prefix: (0, import_smithy_client.expectString)(output[_P])\n };\n }\n if (output[_Ta] != null) {\n return {\n Tag: de_Tag(output[_Ta], context)\n };\n }\n if (output[_A] != null) {\n return {\n And: de_AnalyticsAndOperator(output[_A], context)\n };\n }\n return { $unknown: Object.entries(output)[0] };\n}, \"de_AnalyticsFilter\");\nvar de_AnalyticsS3BucketDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Fo] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_Fo]);\n }\n if (output[_BAI] != null) {\n contents[_BAI] = (0, import_smithy_client.expectString)(output[_BAI]);\n }\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_B]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_AnalyticsS3BucketDestination\");\nvar de_Bucket = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_CDr] != null) {\n contents[_CDr] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_CDr]));\n }\n if (output[_BR] != null) {\n contents[_BR] = (0, import_smithy_client.expectString)(output[_BR]);\n }\n if (output[_BA] != null) {\n contents[_BA] = (0, import_smithy_client.expectString)(output[_BA]);\n }\n return contents;\n}, \"de_Bucket\");\nvar de_Buckets = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Bucket(entry, context);\n });\n}, \"de_Buckets\");\nvar de_Checksum = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n return contents;\n}, \"de_Checksum\");\nvar de_ChecksumAlgorithmList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ChecksumAlgorithmList\");\nvar de_CommonPrefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_CommonPrefix\");\nvar de_CommonPrefixList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CommonPrefix(entry, context);\n });\n}, \"de_CommonPrefixList\");\nvar de_Condition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HECRE] != null) {\n contents[_HECRE] = (0, import_smithy_client.expectString)(output[_HECRE]);\n }\n if (output[_KPE] != null) {\n contents[_KPE] = (0, import_smithy_client.expectString)(output[_KPE]);\n }\n return contents;\n}, \"de_Condition\");\nvar de_ContinuationEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_ContinuationEvent\");\nvar de_CopyObjectResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_CopyObjectResult\");\nvar de_CopyPartResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_CopyPartResult\");\nvar de_CORSRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output.AllowedHeader === \"\") {\n contents[_AHl] = [];\n } else if (output[_AH] != null) {\n contents[_AHl] = de_AllowedHeaders((0, import_smithy_client.getArrayIfSingleItem)(output[_AH]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents[_AMl] = [];\n } else if (output[_AM] != null) {\n contents[_AMl] = de_AllowedMethods((0, import_smithy_client.getArrayIfSingleItem)(output[_AM]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents[_AOl] = [];\n } else if (output[_AO] != null) {\n contents[_AOl] = de_AllowedOrigins((0, import_smithy_client.getArrayIfSingleItem)(output[_AO]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents[_EH] = [];\n } else if (output[_EHx] != null) {\n contents[_EH] = de_ExposeHeaders((0, import_smithy_client.getArrayIfSingleItem)(output[_EHx]), context);\n }\n if (output[_MAS] != null) {\n contents[_MAS] = (0, import_smithy_client.strictParseInt32)(output[_MAS]);\n }\n return contents;\n}, \"de_CORSRule\");\nvar de_CORSRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_CORSRule(entry, context);\n });\n}, \"de_CORSRules\");\nvar de_DefaultRetention = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mo] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_Mo]);\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_Y] != null) {\n contents[_Y] = (0, import_smithy_client.strictParseInt32)(output[_Y]);\n }\n return contents;\n}, \"de_DefaultRetention\");\nvar de_DeletedObject = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_DM] != null) {\n contents[_DM] = (0, import_smithy_client.parseBoolean)(output[_DM]);\n }\n if (output[_DMVI] != null) {\n contents[_DMVI] = (0, import_smithy_client.expectString)(output[_DMVI]);\n }\n return contents;\n}, \"de_DeletedObject\");\nvar de_DeletedObjects = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeletedObject(entry, context);\n });\n}, \"de_DeletedObjects\");\nvar de_DeleteMarkerEntry = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_IL] != null) {\n contents[_IL] = (0, import_smithy_client.parseBoolean)(output[_IL]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n return contents;\n}, \"de_DeleteMarkerEntry\");\nvar de_DeleteMarkerReplication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_DeleteMarkerReplication\");\nvar de_DeleteMarkers = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_DeleteMarkerEntry(entry, context);\n });\n}, \"de_DeleteMarkers\");\nvar de_Destination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_B]);\n }\n if (output[_Ac] != null) {\n contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_ACT] != null) {\n contents[_ACT] = de_AccessControlTranslation(output[_ACT], context);\n }\n if (output[_ECn] != null) {\n contents[_ECn] = de_EncryptionConfiguration(output[_ECn], context);\n }\n if (output[_RTe] != null) {\n contents[_RTe] = de_ReplicationTime(output[_RTe], context);\n }\n if (output[_Me] != null) {\n contents[_Me] = de_Metrics(output[_Me], context);\n }\n return contents;\n}, \"de_Destination\");\nvar de_DestinationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TBT] != null) {\n contents[_TBT] = (0, import_smithy_client.expectString)(output[_TBT]);\n }\n if (output[_TBA] != null) {\n contents[_TBA] = (0, import_smithy_client.expectString)(output[_TBA]);\n }\n if (output[_TNa] != null) {\n contents[_TNa] = (0, import_smithy_client.expectString)(output[_TNa]);\n }\n return contents;\n}, \"de_DestinationResult\");\nvar de_EncryptionConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_RKKID] != null) {\n contents[_RKKID] = (0, import_smithy_client.expectString)(output[_RKKID]);\n }\n return contents;\n}, \"de_EncryptionConfiguration\");\nvar de_EndEvent = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_EndEvent\");\nvar de__Error = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_Cod] != null) {\n contents[_Cod] = (0, import_smithy_client.expectString)(output[_Cod]);\n }\n if (output[_Mes] != null) {\n contents[_Mes] = (0, import_smithy_client.expectString)(output[_Mes]);\n }\n return contents;\n}, \"de__Error\");\nvar de_ErrorDetails = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_EC] != null) {\n contents[_EC] = (0, import_smithy_client.expectString)(output[_EC]);\n }\n if (output[_EM] != null) {\n contents[_EM] = (0, import_smithy_client.expectString)(output[_EM]);\n }\n return contents;\n}, \"de_ErrorDetails\");\nvar de_ErrorDocument = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n return contents;\n}, \"de_ErrorDocument\");\nvar de_Errors = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de__Error(entry, context);\n });\n}, \"de_Errors\");\nvar de_EventBridgeConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_EventBridgeConfiguration\");\nvar de_EventList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_EventList\");\nvar de_ExistingObjectReplication = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_ExistingObjectReplication\");\nvar de_ExposeHeaders = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_ExposeHeaders\");\nvar de_FilterRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_N] != null) {\n contents[_N] = (0, import_smithy_client.expectString)(output[_N]);\n }\n if (output[_Va] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_Va]);\n }\n return contents;\n}, \"de_FilterRule\");\nvar de_FilterRuleList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_FilterRule(entry, context);\n });\n}, \"de_FilterRuleList\");\nvar de_GetBucketMetadataConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MCR] != null) {\n contents[_MCR] = de_MetadataConfigurationResult(output[_MCR], context);\n }\n return contents;\n}, \"de_GetBucketMetadataConfigurationResult\");\nvar de_GetBucketMetadataTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_MTCR] != null) {\n contents[_MTCR] = de_MetadataTableConfigurationResult(output[_MTCR], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n return contents;\n}, \"de_GetBucketMetadataTableConfigurationResult\");\nvar de_GetObjectAttributesParts = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PC] != null) {\n contents[_TPC] = (0, import_smithy_client.strictParseInt32)(output[_PC]);\n }\n if (output[_PNM] != null) {\n contents[_PNM] = (0, import_smithy_client.expectString)(output[_PNM]);\n }\n if (output[_NPNM] != null) {\n contents[_NPNM] = (0, import_smithy_client.expectString)(output[_NPNM]);\n }\n if (output[_MP] != null) {\n contents[_MP] = (0, import_smithy_client.strictParseInt32)(output[_MP]);\n }\n if (output[_IT] != null) {\n contents[_IT] = (0, import_smithy_client.parseBoolean)(output[_IT]);\n }\n if (output.Part === \"\") {\n contents[_Part] = [];\n } else if (output[_Par] != null) {\n contents[_Part] = de_PartsList((0, import_smithy_client.getArrayIfSingleItem)(output[_Par]), context);\n }\n return contents;\n}, \"de_GetObjectAttributesParts\");\nvar de_Grant = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gra] != null) {\n contents[_Gra] = de_Grantee(output[_Gra], context);\n }\n if (output[_Pe] != null) {\n contents[_Pe] = (0, import_smithy_client.expectString)(output[_Pe]);\n }\n return contents;\n}, \"de_Grant\");\nvar de_Grantee = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_DN]);\n }\n if (output[_EA] != null) {\n contents[_EA] = (0, import_smithy_client.expectString)(output[_EA]);\n }\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_URI] != null) {\n contents[_URI] = (0, import_smithy_client.expectString)(output[_URI]);\n }\n if (output[_x] != null) {\n contents[_Ty] = (0, import_smithy_client.expectString)(output[_x]);\n }\n return contents;\n}, \"de_Grantee\");\nvar de_Grants = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Grant(entry, context);\n });\n}, \"de_Grants\");\nvar de_IndexDocument = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Su] != null) {\n contents[_Su] = (0, import_smithy_client.expectString)(output[_Su]);\n }\n return contents;\n}, \"de_IndexDocument\");\nvar de_Initiator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_DN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_DN]);\n }\n return contents;\n}, \"de_Initiator\");\nvar de_IntelligentTieringAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n return contents;\n}, \"de_IntelligentTieringAndOperator\");\nvar de_IntelligentTieringConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_F] != null) {\n contents[_F] = de_IntelligentTieringFilter(output[_F], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output.Tiering === \"\") {\n contents[_Tie] = [];\n } else if (output[_Tier] != null) {\n contents[_Tie] = de_TieringList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tier]), context);\n }\n return contents;\n}, \"de_IntelligentTieringConfiguration\");\nvar de_IntelligentTieringConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_IntelligentTieringConfiguration(entry, context);\n });\n}, \"de_IntelligentTieringConfigurationList\");\nvar de_IntelligentTieringFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Ta] != null) {\n contents[_Ta] = de_Tag(output[_Ta], context);\n }\n if (output[_A] != null) {\n contents[_A] = de_IntelligentTieringAndOperator(output[_A], context);\n }\n return contents;\n}, \"de_IntelligentTieringFilter\");\nvar de_InventoryConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Des] != null) {\n contents[_Des] = de_InventoryDestination(output[_Des], context);\n }\n if (output[_IE] != null) {\n contents[_IE] = (0, import_smithy_client.parseBoolean)(output[_IE]);\n }\n if (output[_F] != null) {\n contents[_F] = de_InventoryFilter(output[_F], context);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_IOV] != null) {\n contents[_IOV] = (0, import_smithy_client.expectString)(output[_IOV]);\n }\n if (output.OptionalFields === \"\") {\n contents[_OF] = [];\n } else if (output[_OF] != null && output[_OF][_Fi] != null) {\n contents[_OF] = de_InventoryOptionalFields((0, import_smithy_client.getArrayIfSingleItem)(output[_OF][_Fi]), context);\n }\n if (output[_Sc] != null) {\n contents[_Sc] = de_InventorySchedule(output[_Sc], context);\n }\n return contents;\n}, \"de_InventoryConfiguration\");\nvar de_InventoryConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_InventoryConfiguration(entry, context);\n });\n}, \"de_InventoryConfigurationList\");\nvar de_InventoryDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SBD] != null) {\n contents[_SBD] = de_InventoryS3BucketDestination(output[_SBD], context);\n }\n return contents;\n}, \"de_InventoryDestination\");\nvar de_InventoryEncryption = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SS] != null) {\n contents[_SSES] = de_SSES3(output[_SS], context);\n }\n if (output[_SK] != null) {\n contents[_SSEKMS] = de_SSEKMS(output[_SK], context);\n }\n return contents;\n}, \"de_InventoryEncryption\");\nvar de_InventoryFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n return contents;\n}, \"de_InventoryFilter\");\nvar de_InventoryOptionalFields = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return (0, import_smithy_client.expectString)(entry);\n });\n}, \"de_InventoryOptionalFields\");\nvar de_InventoryS3BucketDestination = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AIc] != null) {\n contents[_AIc] = (0, import_smithy_client.expectString)(output[_AIc]);\n }\n if (output[_B] != null) {\n contents[_B] = (0, import_smithy_client.expectString)(output[_B]);\n }\n if (output[_Fo] != null) {\n contents[_Fo] = (0, import_smithy_client.expectString)(output[_Fo]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_En] != null) {\n contents[_En] = de_InventoryEncryption(output[_En], context);\n }\n return contents;\n}, \"de_InventoryS3BucketDestination\");\nvar de_InventorySchedule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Fr] != null) {\n contents[_Fr] = (0, import_smithy_client.expectString)(output[_Fr]);\n }\n return contents;\n}, \"de_InventorySchedule\");\nvar de_InventoryTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_CSo] != null) {\n contents[_CSo] = (0, import_smithy_client.expectString)(output[_CSo]);\n }\n if (output[_TSa] != null) {\n contents[_TSa] = (0, import_smithy_client.expectString)(output[_TSa]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n if (output[_TN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]);\n }\n if (output[_TAa] != null) {\n contents[_TAa] = (0, import_smithy_client.expectString)(output[_TAa]);\n }\n return contents;\n}, \"de_InventoryTableConfigurationResult\");\nvar de_JournalTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TSa] != null) {\n contents[_TSa] = (0, import_smithy_client.expectString)(output[_TSa]);\n }\n if (output[_Er] != null) {\n contents[_Er] = de_ErrorDetails(output[_Er], context);\n }\n if (output[_TN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]);\n }\n if (output[_TAa] != null) {\n contents[_TAa] = (0, import_smithy_client.expectString)(output[_TAa]);\n }\n if (output[_REe] != null) {\n contents[_REe] = de_RecordExpiration(output[_REe], context);\n }\n return contents;\n}, \"de_JournalTableConfigurationResult\");\nvar de_LambdaFunctionConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_CF] != null) {\n contents[_LFA] = (0, import_smithy_client.expectString)(output[_CF]);\n }\n if (output.Event === \"\") {\n contents[_Eve] = [];\n } else if (output[_Ev] != null) {\n contents[_Eve] = de_EventList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ev]), context);\n }\n if (output[_F] != null) {\n contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n }\n return contents;\n}, \"de_LambdaFunctionConfiguration\");\nvar de_LambdaFunctionConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LambdaFunctionConfiguration(entry, context);\n });\n}, \"de_LambdaFunctionConfigurationList\");\nvar de_LifecycleExpiration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Dat] != null) {\n contents[_Dat] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Dat]));\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_EODM] != null) {\n contents[_EODM] = (0, import_smithy_client.parseBoolean)(output[_EODM]);\n }\n return contents;\n}, \"de_LifecycleExpiration\");\nvar de_LifecycleRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Exp] != null) {\n contents[_Exp] = de_LifecycleExpiration(output[_Exp], context);\n }\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_F] != null) {\n contents[_F] = de_LifecycleRuleFilter(output[_F], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output.Transition === \"\") {\n contents[_Tr] = [];\n } else if (output[_Tra] != null) {\n contents[_Tr] = de_TransitionList((0, import_smithy_client.getArrayIfSingleItem)(output[_Tra]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents[_NVT] = [];\n } else if (output[_NVTo] != null) {\n contents[_NVT] = de_NoncurrentVersionTransitionList((0, import_smithy_client.getArrayIfSingleItem)(output[_NVTo]), context);\n }\n if (output[_NVE] != null) {\n contents[_NVE] = de_NoncurrentVersionExpiration(output[_NVE], context);\n }\n if (output[_AIMU] != null) {\n contents[_AIMU] = de_AbortIncompleteMultipartUpload(output[_AIMU], context);\n }\n return contents;\n}, \"de_LifecycleRule\");\nvar de_LifecycleRuleAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n if (output[_OSGT] != null) {\n contents[_OSGT] = (0, import_smithy_client.strictParseLong)(output[_OSGT]);\n }\n if (output[_OSLT] != null) {\n contents[_OSLT] = (0, import_smithy_client.strictParseLong)(output[_OSLT]);\n }\n return contents;\n}, \"de_LifecycleRuleAndOperator\");\nvar de_LifecycleRuleFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Ta] != null) {\n contents[_Ta] = de_Tag(output[_Ta], context);\n }\n if (output[_OSGT] != null) {\n contents[_OSGT] = (0, import_smithy_client.strictParseLong)(output[_OSGT]);\n }\n if (output[_OSLT] != null) {\n contents[_OSLT] = (0, import_smithy_client.strictParseLong)(output[_OSLT]);\n }\n if (output[_A] != null) {\n contents[_A] = de_LifecycleRuleAndOperator(output[_A], context);\n }\n return contents;\n}, \"de_LifecycleRuleFilter\");\nvar de_LifecycleRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_LifecycleRule(entry, context);\n });\n}, \"de_LifecycleRules\");\nvar de_LoggingEnabled = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TB] != null) {\n contents[_TB] = (0, import_smithy_client.expectString)(output[_TB]);\n }\n if (output.TargetGrants === \"\") {\n contents[_TG] = [];\n } else if (output[_TG] != null && output[_TG][_G] != null) {\n contents[_TG] = de_TargetGrants((0, import_smithy_client.getArrayIfSingleItem)(output[_TG][_G]), context);\n }\n if (output[_TP] != null) {\n contents[_TP] = (0, import_smithy_client.expectString)(output[_TP]);\n }\n if (output[_TOKF] != null) {\n contents[_TOKF] = de_TargetObjectKeyFormat(output[_TOKF], context);\n }\n return contents;\n}, \"de_LoggingEnabled\");\nvar de_MetadataConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DRes] != null) {\n contents[_DRes] = de_DestinationResult(output[_DRes], context);\n }\n if (output[_JTCR] != null) {\n contents[_JTCR] = de_JournalTableConfigurationResult(output[_JTCR], context);\n }\n if (output[_ITCR] != null) {\n contents[_ITCR] = de_InventoryTableConfigurationResult(output[_ITCR], context);\n }\n return contents;\n}, \"de_MetadataConfigurationResult\");\nvar de_MetadataTableConfigurationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_STDR] != null) {\n contents[_STDR] = de_S3TablesDestinationResult(output[_STDR], context);\n }\n return contents;\n}, \"de_MetadataTableConfigurationResult\");\nvar de_Metrics = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ETv] != null) {\n contents[_ETv] = de_ReplicationTimeValue(output[_ETv], context);\n }\n return contents;\n}, \"de_Metrics\");\nvar de_MetricsAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n if (output[_APAc] != null) {\n contents[_APAc] = (0, import_smithy_client.expectString)(output[_APAc]);\n }\n return contents;\n}, \"de_MetricsAndOperator\");\nvar de_MetricsConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output.Filter === \"\") {\n } else if (output[_F] != null) {\n contents[_F] = de_MetricsFilter((0, import_smithy_client.expectUnion)(output[_F]), context);\n }\n return contents;\n}, \"de_MetricsConfiguration\");\nvar de_MetricsConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MetricsConfiguration(entry, context);\n });\n}, \"de_MetricsConfigurationList\");\nvar de_MetricsFilter = /* @__PURE__ */ __name((output, context) => {\n if (output[_P] != null) {\n return {\n Prefix: (0, import_smithy_client.expectString)(output[_P])\n };\n }\n if (output[_Ta] != null) {\n return {\n Tag: de_Tag(output[_Ta], context)\n };\n }\n if (output[_APAc] != null) {\n return {\n AccessPointArn: (0, import_smithy_client.expectString)(output[_APAc])\n };\n }\n if (output[_A] != null) {\n return {\n And: de_MetricsAndOperator(output[_A], context)\n };\n }\n return { $unknown: Object.entries(output)[0] };\n}, \"de_MetricsFilter\");\nvar de_MultipartUpload = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Ini] != null) {\n contents[_Ini] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Ini]));\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_In] != null) {\n contents[_In] = de_Initiator(output[_In], context);\n }\n if (output[_CA] != null) {\n contents[_CA] = (0, import_smithy_client.expectString)(output[_CA]);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n return contents;\n}, \"de_MultipartUpload\");\nvar de_MultipartUploadList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_MultipartUpload(entry, context);\n });\n}, \"de_MultipartUploadList\");\nvar de_NoncurrentVersionExpiration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ND] != null) {\n contents[_ND] = (0, import_smithy_client.strictParseInt32)(output[_ND]);\n }\n if (output[_NNV] != null) {\n contents[_NNV] = (0, import_smithy_client.strictParseInt32)(output[_NNV]);\n }\n return contents;\n}, \"de_NoncurrentVersionExpiration\");\nvar de_NoncurrentVersionTransition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ND] != null) {\n contents[_ND] = (0, import_smithy_client.strictParseInt32)(output[_ND]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_NNV] != null) {\n contents[_NNV] = (0, import_smithy_client.strictParseInt32)(output[_NNV]);\n }\n return contents;\n}, \"de_NoncurrentVersionTransition\");\nvar de_NoncurrentVersionTransitionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_NoncurrentVersionTransition(entry, context);\n });\n}, \"de_NoncurrentVersionTransitionList\");\nvar de_NotificationConfigurationFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SKe] != null) {\n contents[_K] = de_S3KeyFilter(output[_SKe], context);\n }\n return contents;\n}, \"de_NotificationConfigurationFilter\");\nvar de__Object = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents[_CA] = [];\n } else if (output[_CA] != null) {\n contents[_CA] = de_ChecksumAlgorithmList((0, import_smithy_client.getArrayIfSingleItem)(output[_CA]), context);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_RSes] != null) {\n contents[_RSes] = de_RestoreStatus(output[_RSes], context);\n }\n return contents;\n}, \"de__Object\");\nvar de_ObjectList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de__Object(entry, context);\n });\n}, \"de_ObjectList\");\nvar de_ObjectLockConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OLE] != null) {\n contents[_OLE] = (0, import_smithy_client.expectString)(output[_OLE]);\n }\n if (output[_Ru] != null) {\n contents[_Ru] = de_ObjectLockRule(output[_Ru], context);\n }\n return contents;\n}, \"de_ObjectLockConfiguration\");\nvar de_ObjectLockLegalHold = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_ObjectLockLegalHold\");\nvar de_ObjectLockRetention = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mo] != null) {\n contents[_Mo] = (0, import_smithy_client.expectString)(output[_Mo]);\n }\n if (output[_RUD] != null) {\n contents[_RUD] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_RUD]));\n }\n return contents;\n}, \"de_ObjectLockRetention\");\nvar de_ObjectLockRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DRe] != null) {\n contents[_DRe] = de_DefaultRetention(output[_DRe], context);\n }\n return contents;\n}, \"de_ObjectLockRule\");\nvar de_ObjectPart = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_PN]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_ObjectPart\");\nvar de_ObjectVersion = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents[_CA] = [];\n } else if (output[_CA] != null) {\n contents[_CA] = de_ChecksumAlgorithmList((0, import_smithy_client.getArrayIfSingleItem)(output[_CA]), context);\n }\n if (output[_CT] != null) {\n contents[_CT] = (0, import_smithy_client.expectString)(output[_CT]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_VI] != null) {\n contents[_VI] = (0, import_smithy_client.expectString)(output[_VI]);\n }\n if (output[_IL] != null) {\n contents[_IL] = (0, import_smithy_client.parseBoolean)(output[_IL]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_O] != null) {\n contents[_O] = de_Owner(output[_O], context);\n }\n if (output[_RSes] != null) {\n contents[_RSes] = de_RestoreStatus(output[_RSes], context);\n }\n return contents;\n}, \"de_ObjectVersion\");\nvar de_ObjectVersionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ObjectVersion(entry, context);\n });\n}, \"de_ObjectVersionList\");\nvar de_Owner = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DN] != null) {\n contents[_DN] = (0, import_smithy_client.expectString)(output[_DN]);\n }\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n return contents;\n}, \"de_Owner\");\nvar de_OwnershipControls = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents[_Rul] = [];\n } else if (output[_Ru] != null) {\n contents[_Rul] = de_OwnershipControlsRules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru]), context);\n }\n return contents;\n}, \"de_OwnershipControls\");\nvar de_OwnershipControlsRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OO] != null) {\n contents[_OO] = (0, import_smithy_client.expectString)(output[_OO]);\n }\n return contents;\n}, \"de_OwnershipControlsRule\");\nvar de_OwnershipControlsRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_OwnershipControlsRule(entry, context);\n });\n}, \"de_OwnershipControlsRules\");\nvar de_Part = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PN] != null) {\n contents[_PN] = (0, import_smithy_client.strictParseInt32)(output[_PN]);\n }\n if (output[_LM] != null) {\n contents[_LM] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_LM]));\n }\n if (output[_ETa] != null) {\n contents[_ETa] = (0, import_smithy_client.expectString)(output[_ETa]);\n }\n if (output[_Si] != null) {\n contents[_Si] = (0, import_smithy_client.strictParseLong)(output[_Si]);\n }\n if (output[_CCRC] != null) {\n contents[_CCRC] = (0, import_smithy_client.expectString)(output[_CCRC]);\n }\n if (output[_CCRCC] != null) {\n contents[_CCRCC] = (0, import_smithy_client.expectString)(output[_CCRCC]);\n }\n if (output[_CCRCNVME] != null) {\n contents[_CCRCNVME] = (0, import_smithy_client.expectString)(output[_CCRCNVME]);\n }\n if (output[_CSHA] != null) {\n contents[_CSHA] = (0, import_smithy_client.expectString)(output[_CSHA]);\n }\n if (output[_CSHAh] != null) {\n contents[_CSHAh] = (0, import_smithy_client.expectString)(output[_CSHAh]);\n }\n return contents;\n}, \"de_Part\");\nvar de_PartitionedPrefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_PDS] != null) {\n contents[_PDS] = (0, import_smithy_client.expectString)(output[_PDS]);\n }\n return contents;\n}, \"de_PartitionedPrefix\");\nvar de_Parts = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Part(entry, context);\n });\n}, \"de_Parts\");\nvar de_PartsList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ObjectPart(entry, context);\n });\n}, \"de_PartsList\");\nvar de_PolicyStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IP] != null) {\n contents[_IP] = (0, import_smithy_client.parseBoolean)(output[_IP]);\n }\n return contents;\n}, \"de_PolicyStatus\");\nvar de_Progress = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_BS] != null) {\n contents[_BS] = (0, import_smithy_client.strictParseLong)(output[_BS]);\n }\n if (output[_BP] != null) {\n contents[_BP] = (0, import_smithy_client.strictParseLong)(output[_BP]);\n }\n if (output[_BRy] != null) {\n contents[_BRy] = (0, import_smithy_client.strictParseLong)(output[_BRy]);\n }\n return contents;\n}, \"de_Progress\");\nvar de_PublicAccessBlockConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_BPA] != null) {\n contents[_BPA] = (0, import_smithy_client.parseBoolean)(output[_BPA]);\n }\n if (output[_IPA] != null) {\n contents[_IPA] = (0, import_smithy_client.parseBoolean)(output[_IPA]);\n }\n if (output[_BPP] != null) {\n contents[_BPP] = (0, import_smithy_client.parseBoolean)(output[_BPP]);\n }\n if (output[_RPB] != null) {\n contents[_RPB] = (0, import_smithy_client.parseBoolean)(output[_RPB]);\n }\n return contents;\n}, \"de_PublicAccessBlockConfiguration\");\nvar de_QueueConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_Qu] != null) {\n contents[_QA] = (0, import_smithy_client.expectString)(output[_Qu]);\n }\n if (output.Event === \"\") {\n contents[_Eve] = [];\n } else if (output[_Ev] != null) {\n contents[_Eve] = de_EventList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ev]), context);\n }\n if (output[_F] != null) {\n contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n }\n return contents;\n}, \"de_QueueConfiguration\");\nvar de_QueueConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_QueueConfiguration(entry, context);\n });\n}, \"de_QueueConfigurationList\");\nvar de_RecordExpiration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Exp] != null) {\n contents[_Exp] = (0, import_smithy_client.expectString)(output[_Exp]);\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n return contents;\n}, \"de_RecordExpiration\");\nvar de_Redirect = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HN] != null) {\n contents[_HN] = (0, import_smithy_client.expectString)(output[_HN]);\n }\n if (output[_HRC] != null) {\n contents[_HRC] = (0, import_smithy_client.expectString)(output[_HRC]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n if (output[_RKPW] != null) {\n contents[_RKPW] = (0, import_smithy_client.expectString)(output[_RKPW]);\n }\n if (output[_RKW] != null) {\n contents[_RKW] = (0, import_smithy_client.expectString)(output[_RKW]);\n }\n return contents;\n}, \"de_Redirect\");\nvar de_RedirectAllRequestsTo = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_HN] != null) {\n contents[_HN] = (0, import_smithy_client.expectString)(output[_HN]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n return contents;\n}, \"de_RedirectAllRequestsTo\");\nvar de_ReplicaModifications = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_ReplicaModifications\");\nvar de_ReplicationConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ro] != null) {\n contents[_Ro] = (0, import_smithy_client.expectString)(output[_Ro]);\n }\n if (output.Rule === \"\") {\n contents[_Rul] = [];\n } else if (output[_Ru] != null) {\n contents[_Rul] = de_ReplicationRules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru]), context);\n }\n return contents;\n}, \"de_ReplicationConfiguration\");\nvar de_ReplicationRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ID_] != null) {\n contents[_ID_] = (0, import_smithy_client.expectString)(output[_ID_]);\n }\n if (output[_Pri] != null) {\n contents[_Pri] = (0, import_smithy_client.strictParseInt32)(output[_Pri]);\n }\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_F] != null) {\n contents[_F] = de_ReplicationRuleFilter(output[_F], context);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_SSC] != null) {\n contents[_SSC] = de_SourceSelectionCriteria(output[_SSC], context);\n }\n if (output[_EOR] != null) {\n contents[_EOR] = de_ExistingObjectReplication(output[_EOR], context);\n }\n if (output[_Des] != null) {\n contents[_Des] = de_Destination(output[_Des], context);\n }\n if (output[_DMR] != null) {\n contents[_DMR] = de_DeleteMarkerReplication(output[_DMR], context);\n }\n return contents;\n}, \"de_ReplicationRule\");\nvar de_ReplicationRuleAndOperator = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output.Tag === \"\") {\n contents[_Tag] = [];\n } else if (output[_Ta] != null) {\n contents[_Tag] = de_TagSet((0, import_smithy_client.getArrayIfSingleItem)(output[_Ta]), context);\n }\n return contents;\n}, \"de_ReplicationRuleAndOperator\");\nvar de_ReplicationRuleFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_P] != null) {\n contents[_P] = (0, import_smithy_client.expectString)(output[_P]);\n }\n if (output[_Ta] != null) {\n contents[_Ta] = de_Tag(output[_Ta], context);\n }\n if (output[_A] != null) {\n contents[_A] = de_ReplicationRuleAndOperator(output[_A], context);\n }\n return contents;\n}, \"de_ReplicationRuleFilter\");\nvar de_ReplicationRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ReplicationRule(entry, context);\n });\n}, \"de_ReplicationRules\");\nvar de_ReplicationTime = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_Tim] != null) {\n contents[_Tim] = de_ReplicationTimeValue(output[_Tim], context);\n }\n return contents;\n}, \"de_ReplicationTime\");\nvar de_ReplicationTimeValue = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Mi] != null) {\n contents[_Mi] = (0, import_smithy_client.strictParseInt32)(output[_Mi]);\n }\n return contents;\n}, \"de_ReplicationTimeValue\");\nvar de_RestoreStatus = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_IRIP] != null) {\n contents[_IRIP] = (0, import_smithy_client.parseBoolean)(output[_IRIP]);\n }\n if (output[_REDe] != null) {\n contents[_REDe] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_REDe]));\n }\n return contents;\n}, \"de_RestoreStatus\");\nvar de_RoutingRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Con] != null) {\n contents[_Con] = de_Condition(output[_Con], context);\n }\n if (output[_Red] != null) {\n contents[_Red] = de_Redirect(output[_Red], context);\n }\n return contents;\n}, \"de_RoutingRule\");\nvar de_RoutingRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_RoutingRule(entry, context);\n });\n}, \"de_RoutingRules\");\nvar de_S3KeyFilter = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.FilterRule === \"\") {\n contents[_FRi] = [];\n } else if (output[_FR] != null) {\n contents[_FRi] = de_FilterRuleList((0, import_smithy_client.getArrayIfSingleItem)(output[_FR]), context);\n }\n return contents;\n}, \"de_S3KeyFilter\");\nvar de_S3TablesDestinationResult = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_TBA] != null) {\n contents[_TBA] = (0, import_smithy_client.expectString)(output[_TBA]);\n }\n if (output[_TN] != null) {\n contents[_TN] = (0, import_smithy_client.expectString)(output[_TN]);\n }\n if (output[_TAa] != null) {\n contents[_TAa] = (0, import_smithy_client.expectString)(output[_TAa]);\n }\n if (output[_TNa] != null) {\n contents[_TNa] = (0, import_smithy_client.expectString)(output[_TNa]);\n }\n return contents;\n}, \"de_S3TablesDestinationResult\");\nvar de_ServerSideEncryptionByDefault = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SSEA] != null) {\n contents[_SSEA] = (0, import_smithy_client.expectString)(output[_SSEA]);\n }\n if (output[_KMSMKID] != null) {\n contents[_KMSMKID] = (0, import_smithy_client.expectString)(output[_KMSMKID]);\n }\n return contents;\n}, \"de_ServerSideEncryptionByDefault\");\nvar de_ServerSideEncryptionConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents[_Rul] = [];\n } else if (output[_Ru] != null) {\n contents[_Rul] = de_ServerSideEncryptionRules((0, import_smithy_client.getArrayIfSingleItem)(output[_Ru]), context);\n }\n return contents;\n}, \"de_ServerSideEncryptionConfiguration\");\nvar de_ServerSideEncryptionRule = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ASSEBD] != null) {\n contents[_ASSEBD] = de_ServerSideEncryptionByDefault(output[_ASSEBD], context);\n }\n if (output[_BKE] != null) {\n contents[_BKE] = (0, import_smithy_client.parseBoolean)(output[_BKE]);\n }\n return contents;\n}, \"de_ServerSideEncryptionRule\");\nvar de_ServerSideEncryptionRules = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_ServerSideEncryptionRule(entry, context);\n });\n}, \"de_ServerSideEncryptionRules\");\nvar de_SessionCredentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.expectString)(output[_ST]);\n }\n if (output[_Exp] != null) {\n contents[_Exp] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Exp]));\n }\n return contents;\n}, \"de_SessionCredentials\");\nvar de_SimplePrefix = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_SimplePrefix\");\nvar de_SourceSelectionCriteria = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SKEO] != null) {\n contents[_SKEO] = de_SseKmsEncryptedObjects(output[_SKEO], context);\n }\n if (output[_RM] != null) {\n contents[_RM] = de_ReplicaModifications(output[_RM], context);\n }\n return contents;\n}, \"de_SourceSelectionCriteria\");\nvar de_SSEKMS = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_KI] != null) {\n contents[_KI] = (0, import_smithy_client.expectString)(output[_KI]);\n }\n return contents;\n}, \"de_SSEKMS\");\nvar de_SseKmsEncryptedObjects = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n return contents;\n}, \"de_SseKmsEncryptedObjects\");\nvar de_SSES3 = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n return contents;\n}, \"de_SSES3\");\nvar de_Stats = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_BS] != null) {\n contents[_BS] = (0, import_smithy_client.strictParseLong)(output[_BS]);\n }\n if (output[_BP] != null) {\n contents[_BP] = (0, import_smithy_client.strictParseLong)(output[_BP]);\n }\n if (output[_BRy] != null) {\n contents[_BRy] = (0, import_smithy_client.strictParseLong)(output[_BRy]);\n }\n return contents;\n}, \"de_Stats\");\nvar de_StorageClassAnalysis = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DE] != null) {\n contents[_DE] = de_StorageClassAnalysisDataExport(output[_DE], context);\n }\n return contents;\n}, \"de_StorageClassAnalysis\");\nvar de_StorageClassAnalysisDataExport = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_OSV] != null) {\n contents[_OSV] = (0, import_smithy_client.expectString)(output[_OSV]);\n }\n if (output[_Des] != null) {\n contents[_Des] = de_AnalyticsExportDestination(output[_Des], context);\n }\n return contents;\n}, \"de_StorageClassAnalysisDataExport\");\nvar de_Tag = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_K] != null) {\n contents[_K] = (0, import_smithy_client.expectString)(output[_K]);\n }\n if (output[_Va] != null) {\n contents[_Va] = (0, import_smithy_client.expectString)(output[_Va]);\n }\n return contents;\n}, \"de_Tag\");\nvar de_TagSet = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tag(entry, context);\n });\n}, \"de_TagSet\");\nvar de_TargetGrant = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Gra] != null) {\n contents[_Gra] = de_Grantee(output[_Gra], context);\n }\n if (output[_Pe] != null) {\n contents[_Pe] = (0, import_smithy_client.expectString)(output[_Pe]);\n }\n return contents;\n}, \"de_TargetGrant\");\nvar de_TargetGrants = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TargetGrant(entry, context);\n });\n}, \"de_TargetGrants\");\nvar de_TargetObjectKeyFormat = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_SPi] != null) {\n contents[_SPi] = de_SimplePrefix(output[_SPi], context);\n }\n if (output[_PP] != null) {\n contents[_PP] = de_PartitionedPrefix(output[_PP], context);\n }\n return contents;\n}, \"de_TargetObjectKeyFormat\");\nvar de_Tiering = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_AT] != null) {\n contents[_AT] = (0, import_smithy_client.expectString)(output[_AT]);\n }\n return contents;\n}, \"de_Tiering\");\nvar de_TieringList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Tiering(entry, context);\n });\n}, \"de_TieringList\");\nvar de_TopicConfiguration = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_Top] != null) {\n contents[_TA] = (0, import_smithy_client.expectString)(output[_Top]);\n }\n if (output.Event === \"\") {\n contents[_Eve] = [];\n } else if (output[_Ev] != null) {\n contents[_Eve] = de_EventList((0, import_smithy_client.getArrayIfSingleItem)(output[_Ev]), context);\n }\n if (output[_F] != null) {\n contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n }\n return contents;\n}, \"de_TopicConfiguration\");\nvar de_TopicConfigurationList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_TopicConfiguration(entry, context);\n });\n}, \"de_TopicConfigurationList\");\nvar de_Transition = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Dat] != null) {\n contents[_Dat] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_Dat]));\n }\n if (output[_Da] != null) {\n contents[_Da] = (0, import_smithy_client.strictParseInt32)(output[_Da]);\n }\n if (output[_SC] != null) {\n contents[_SC] = (0, import_smithy_client.expectString)(output[_SC]);\n }\n return contents;\n}, \"de_Transition\");\nvar de_TransitionList = /* @__PURE__ */ __name((output, context) => {\n return (output || []).filter((e) => e != null).map((entry) => {\n return de_Transition(entry, context);\n });\n}, \"de_TransitionList\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\nvar _A = \"And\";\nvar _AAO = \"AnalyticsAndOperator\";\nvar _AC = \"AnalyticsConfiguration\";\nvar _ACL = \"ACL\";\nvar _ACLc = \"AccessControlList\";\nvar _ACLn = \"AnalyticsConfigurationList\";\nvar _ACP = \"AccessControlPolicy\";\nvar _ACT = \"AccessControlTranslation\";\nvar _ACc = \"AccelerateConfiguration\";\nvar _AD = \"AbortDate\";\nvar _AED = \"AnalyticsExportDestination\";\nvar _AF = \"AnalyticsFilter\";\nvar _AH = \"AllowedHeader\";\nvar _AHl = \"AllowedHeaders\";\nvar _AI = \"AnalyticsId\";\nvar _AIMU = \"AbortIncompleteMultipartUpload\";\nvar _AIc = \"AccountId\";\nvar _AKI = \"AccessKeyId\";\nvar _AM = \"AllowedMethod\";\nvar _AMl = \"AllowedMethods\";\nvar _AO = \"AllowedOrigin\";\nvar _AOl = \"AllowedOrigins\";\nvar _APA = \"AccessPointAlias\";\nvar _APAc = \"AccessPointArn\";\nvar _AQRD = \"AllowQuotedRecordDelimiter\";\nvar _AR = \"AcceptRanges\";\nvar _ARI = \"AbortRuleId\";\nvar _AS = \"ArchiveStatus\";\nvar _ASBD = \"AnalyticsS3BucketDestination\";\nvar _ASEFF = \"AnalyticsS3ExportFileFormat\";\nvar _ASSEBD = \"ApplyServerSideEncryptionByDefault\";\nvar _AT = \"AccessTier\";\nvar _Ac = \"Account\";\nvar _B = \"Bucket\";\nvar _BA = \"BucketArn\";\nvar _BAI = \"BucketAccountId\";\nvar _BAS = \"BucketAccelerateStatus\";\nvar _BGR = \"BypassGovernanceRetention\";\nvar _BI = \"BucketInfo\";\nvar _BKE = \"BucketKeyEnabled\";\nvar _BLC = \"BucketLifecycleConfiguration\";\nvar _BLCu = \"BucketLocationConstraint\";\nvar _BLN = \"BucketLocationName\";\nvar _BLP = \"BucketLogsPermission\";\nvar _BLS = \"BucketLoggingStatus\";\nvar _BLT = \"BucketLocationType\";\nvar _BN = \"BucketName\";\nvar _BP = \"BytesProcessed\";\nvar _BPA = \"BlockPublicAcls\";\nvar _BPP = \"BlockPublicPolicy\";\nvar _BR = \"BucketRegion\";\nvar _BRy = \"BytesReturned\";\nvar _BS = \"BytesScanned\";\nvar _BT = \"BucketType\";\nvar _BVS = \"BucketVersioningStatus\";\nvar _Bu = \"Buckets\";\nvar _C = \"Credentials\";\nvar _CA = \"ChecksumAlgorithm\";\nvar _CACL = \"CannedACL\";\nvar _CBC = \"CreateBucketConfiguration\";\nvar _CC = \"CacheControl\";\nvar _CCRC = \"ChecksumCRC32\";\nvar _CCRCC = \"ChecksumCRC32C\";\nvar _CCRCNVME = \"ChecksumCRC64NVME\";\nvar _CD = \"ContentDisposition\";\nvar _CDr = \"CreationDate\";\nvar _CE = \"ContentEncoding\";\nvar _CF = \"CloudFunction\";\nvar _CFC = \"CloudFunctionConfiguration\";\nvar _CL = \"ContentLanguage\";\nvar _CLo = \"ContentLength\";\nvar _CM = \"ChecksumMode\";\nvar _CMD = \"ContentMD5\";\nvar _CMU = \"CompletedMultipartUpload\";\nvar _CORSC = \"CORSConfiguration\";\nvar _CORSR = \"CORSRule\";\nvar _CORSRu = \"CORSRules\";\nvar _CP = \"CommonPrefixes\";\nvar _CPo = \"CompletedPart\";\nvar _CR = \"ContentRange\";\nvar _CRSBA = \"ConfirmRemoveSelfBucketAccess\";\nvar _CS = \"CopySource\";\nvar _CSHA = \"ChecksumSHA1\";\nvar _CSHAh = \"ChecksumSHA256\";\nvar _CSIM = \"CopySourceIfMatch\";\nvar _CSIMS = \"CopySourceIfModifiedSince\";\nvar _CSINM = \"CopySourceIfNoneMatch\";\nvar _CSIUS = \"CopySourceIfUnmodifiedSince\";\nvar _CSR = \"CopySourceRange\";\nvar _CSSSECA = \"CopySourceSSECustomerAlgorithm\";\nvar _CSSSECK = \"CopySourceSSECustomerKey\";\nvar _CSSSECKMD = \"CopySourceSSECustomerKeyMD5\";\nvar _CSV = \"CSV\";\nvar _CSVI = \"CopySourceVersionId\";\nvar _CSVIn = \"CSVInput\";\nvar _CSVO = \"CSVOutput\";\nvar _CSo = \"ConfigurationState\";\nvar _CT = \"ChecksumType\";\nvar _CTl = \"ClientToken\";\nvar _CTo = \"ContentType\";\nvar _CTom = \"CompressionType\";\nvar _CTon = \"ContinuationToken\";\nvar _Ch = \"Checksum\";\nvar _Co = \"Contents\";\nvar _Cod = \"Code\";\nvar _Com = \"Comments\";\nvar _Con = \"Condition\";\nvar _D = \"Delimiter\";\nvar _DAI = \"DaysAfterInitiation\";\nvar _DE = \"DataExport\";\nvar _DIM = \"DestinationIfMatch\";\nvar _DIMS = \"DestinationIfModifiedSince\";\nvar _DINM = \"DestinationIfNoneMatch\";\nvar _DIUS = \"DestinationIfUnmodifiedSince\";\nvar _DM = \"DeleteMarker\";\nvar _DMR = \"DeleteMarkerReplication\";\nvar _DMRS = \"DeleteMarkerReplicationStatus\";\nvar _DMVI = \"DeleteMarkerVersionId\";\nvar _DMe = \"DeleteMarkers\";\nvar _DN = \"DisplayName\";\nvar _DR = \"DataRedundancy\";\nvar _DRe = \"DefaultRetention\";\nvar _DRes = \"DestinationResult\";\nvar _Da = \"Days\";\nvar _Dat = \"Date\";\nvar _De = \"Deleted\";\nvar _Del = \"Delete\";\nvar _Des = \"Destination\";\nvar _Desc = \"Description\";\nvar _E = \"Expires\";\nvar _EA = \"EmailAddress\";\nvar _EBC = \"EventBridgeConfiguration\";\nvar _EBO = \"ExpectedBucketOwner\";\nvar _EC = \"ErrorCode\";\nvar _ECn = \"EncryptionConfiguration\";\nvar _ED = \"ErrorDocument\";\nvar _EH = \"ExposeHeaders\";\nvar _EHx = \"ExposeHeader\";\nvar _EM = \"ErrorMessage\";\nvar _EODM = \"ExpiredObjectDeleteMarker\";\nvar _EOR = \"ExistingObjectReplication\";\nvar _EORS = \"ExistingObjectReplicationStatus\";\nvar _ERP = \"EnableRequestProgress\";\nvar _ES = \"ExpiresString\";\nvar _ESBO = \"ExpectedSourceBucketOwner\";\nvar _ESx = \"ExpirationStatus\";\nvar _ESxp = \"ExpirationState\";\nvar _ET = \"EncodingType\";\nvar _ETa = \"ETag\";\nvar _ETn = \"EncryptionType\";\nvar _ETv = \"EventThreshold\";\nvar _ETx = \"ExpressionType\";\nvar _En = \"Encryption\";\nvar _Ena = \"Enabled\";\nvar _End = \"End\";\nvar _Er = \"Error\";\nvar _Err = \"Errors\";\nvar _Ev = \"Event\";\nvar _Eve = \"Events\";\nvar _Ex = \"Expression\";\nvar _Exp = \"Expiration\";\nvar _F = \"Filter\";\nvar _FD = \"FieldDelimiter\";\nvar _FHI = \"FileHeaderInfo\";\nvar _FO = \"FetchOwner\";\nvar _FR = \"FilterRule\";\nvar _FRN = \"FilterRuleName\";\nvar _FRV = \"FilterRuleValue\";\nvar _FRi = \"FilterRules\";\nvar _Fi = \"Field\";\nvar _Fo = \"Format\";\nvar _Fr = \"Frequency\";\nvar _G = \"Grant\";\nvar _GFC = \"GrantFullControl\";\nvar _GJP = \"GlacierJobParameters\";\nvar _GR = \"GrantRead\";\nvar _GRACP = \"GrantReadACP\";\nvar _GW = \"GrantWrite\";\nvar _GWACP = \"GrantWriteACP\";\nvar _Gr = \"Grants\";\nvar _Gra = \"Grantee\";\nvar _HECRE = \"HttpErrorCodeReturnedEquals\";\nvar _HN = \"HostName\";\nvar _HRC = \"HttpRedirectCode\";\nvar _I = \"Id\";\nvar _IC = \"InventoryConfiguration\";\nvar _ICL = \"InventoryConfigurationList\";\nvar _ICS = \"InventoryConfigurationState\";\nvar _ID = \"IndexDocument\";\nvar _ID_ = \"ID\";\nvar _IDn = \"InventoryDestination\";\nvar _IE = \"IsEnabled\";\nvar _IEn = \"InventoryEncryption\";\nvar _IF = \"InventoryFilter\";\nvar _IFn = \"InventoryFormat\";\nvar _IFnv = \"InventoryFrequency\";\nvar _II = \"InventoryId\";\nvar _IIOV = \"InventoryIncludedObjectVersions\";\nvar _IL = \"IsLatest\";\nvar _IM = \"IfMatch\";\nvar _IMIT = \"IfMatchInitiatedTime\";\nvar _IMLMT = \"IfMatchLastModifiedTime\";\nvar _IMS = \"IfMatchSize\";\nvar _IMSf = \"IfModifiedSince\";\nvar _INM = \"IfNoneMatch\";\nvar _IOF = \"InventoryOptionalField\";\nvar _IOV = \"IncludedObjectVersions\";\nvar _IP = \"IsPublic\";\nvar _IPA = \"IgnorePublicAcls\";\nvar _IRIP = \"IsRestoreInProgress\";\nvar _IS = \"InputSerialization\";\nvar _ISBD = \"InventoryS3BucketDestination\";\nvar _ISn = \"InventorySchedule\";\nvar _IT = \"IsTruncated\";\nvar _ITAO = \"IntelligentTieringAndOperator\";\nvar _ITAT = \"IntelligentTieringAccessTier\";\nvar _ITC = \"IntelligentTieringConfiguration\";\nvar _ITCL = \"IntelligentTieringConfigurationList\";\nvar _ITCR = \"InventoryTableConfigurationResult\";\nvar _ITCU = \"InventoryTableConfigurationUpdates\";\nvar _ITCn = \"InventoryTableConfiguration\";\nvar _ITD = \"IntelligentTieringDays\";\nvar _ITF = \"IntelligentTieringFilter\";\nvar _ITI = \"IntelligentTieringId\";\nvar _ITS = \"IntelligentTieringStatus\";\nvar _IUS = \"IfUnmodifiedSince\";\nvar _In = \"Initiator\";\nvar _Ini = \"Initiated\";\nvar _JSON = \"JSON\";\nvar _JSONI = \"JSONInput\";\nvar _JSONO = \"JSONOutput\";\nvar _JSONT = \"JSONType\";\nvar _JTC = \"JournalTableConfiguration\";\nvar _JTCR = \"JournalTableConfigurationResult\";\nvar _JTCU = \"JournalTableConfigurationUpdates\";\nvar _K = \"Key\";\nvar _KC = \"KeyCount\";\nvar _KI = \"KeyId\";\nvar _KKA = \"KmsKeyArn\";\nvar _KM = \"KeyMarker\";\nvar _KMSC = \"KMSContext\";\nvar _KMSKI = \"KMSKeyId\";\nvar _KMSMKID = \"KMSMasterKeyID\";\nvar _KPE = \"KeyPrefixEquals\";\nvar _L = \"Location\";\nvar _LC = \"LocationConstraint\";\nvar _LE = \"LoggingEnabled\";\nvar _LEi = \"LifecycleExpiration\";\nvar _LFA = \"LambdaFunctionArn\";\nvar _LFC = \"LambdaFunctionConfigurations\";\nvar _LFCa = \"LambdaFunctionConfiguration\";\nvar _LI = \"LocationInfo\";\nvar _LM = \"LastModified\";\nvar _LMT = \"LastModifiedTime\";\nvar _LNAS = \"LocationNameAsString\";\nvar _LP = \"LocationPrefix\";\nvar _LR = \"LifecycleRule\";\nvar _LRAO = \"LifecycleRuleAndOperator\";\nvar _LRF = \"LifecycleRuleFilter\";\nvar _LT = \"LocationType\";\nvar _M = \"Marker\";\nvar _MAO = \"MetricsAndOperator\";\nvar _MAS = \"MaxAgeSeconds\";\nvar _MB = \"MaxBuckets\";\nvar _MC = \"MetricsConfiguration\";\nvar _MCL = \"MetricsConfigurationList\";\nvar _MCR = \"MetadataConfigurationResult\";\nvar _MCe = \"MetadataConfiguration\";\nvar _MD = \"MetadataDirective\";\nvar _MDB = \"MaxDirectoryBuckets\";\nvar _MDf = \"MfaDelete\";\nvar _ME = \"MetadataEntry\";\nvar _MF = \"MetricsFilter\";\nvar _MFA = \"MFA\";\nvar _MFAD = \"MFADelete\";\nvar _MI = \"MetricsId\";\nvar _MK = \"MaxKeys\";\nvar _MKe = \"MetadataKey\";\nvar _MM = \"MissingMeta\";\nvar _MOS = \"MpuObjectSize\";\nvar _MP = \"MaxParts\";\nvar _MS = \"MetricsStatus\";\nvar _MTC = \"MetadataTableConfiguration\";\nvar _MTCR = \"MetadataTableConfigurationResult\";\nvar _MTEC = \"MetadataTableEncryptionConfiguration\";\nvar _MU = \"MaxUploads\";\nvar _MV = \"MetadataValue\";\nvar _Me = \"Metrics\";\nvar _Mes = \"Message\";\nvar _Mi = \"Minutes\";\nvar _Mo = \"Mode\";\nvar _N = \"Name\";\nvar _NC = \"NotificationConfiguration\";\nvar _NCF = \"NotificationConfigurationFilter\";\nvar _NCT = \"NextContinuationToken\";\nvar _ND = \"NoncurrentDays\";\nvar _NI = \"NotificationId\";\nvar _NKM = \"NextKeyMarker\";\nvar _NM = \"NextMarker\";\nvar _NNV = \"NewerNoncurrentVersions\";\nvar _NPNM = \"NextPartNumberMarker\";\nvar _NUIM = \"NextUploadIdMarker\";\nvar _NVE = \"NoncurrentVersionExpiration\";\nvar _NVIM = \"NextVersionIdMarker\";\nvar _NVT = \"NoncurrentVersionTransitions\";\nvar _NVTo = \"NoncurrentVersionTransition\";\nvar _O = \"Owner\";\nvar _OA = \"ObjectAttributes\";\nvar _OC = \"OwnershipControls\";\nvar _OCACL = \"ObjectCannedACL\";\nvar _OCR = \"OwnershipControlsRule\";\nvar _OF = \"OptionalFields\";\nvar _OI = \"ObjectIdentifier\";\nvar _OK = \"ObjectKey\";\nvar _OL = \"OutputLocation\";\nvar _OLC = \"ObjectLockConfiguration\";\nvar _OLE = \"ObjectLockEnabled\";\nvar _OLEFB = \"ObjectLockEnabledForBucket\";\nvar _OLLH = \"ObjectLockLegalHold\";\nvar _OLLHS = \"ObjectLockLegalHoldStatus\";\nvar _OLM = \"ObjectLockMode\";\nvar _OLR = \"ObjectLockRetention\";\nvar _OLRM = \"ObjectLockRetentionMode\";\nvar _OLRUD = \"ObjectLockRetainUntilDate\";\nvar _OLRb = \"ObjectLockRule\";\nvar _OO = \"ObjectOwnership\";\nvar _OOA = \"OptionalObjectAttributes\";\nvar _OOw = \"OwnerOverride\";\nvar _OP = \"ObjectParts\";\nvar _OS = \"OutputSerialization\";\nvar _OSGT = \"ObjectSizeGreaterThan\";\nvar _OSGTB = \"ObjectSizeGreaterThanBytes\";\nvar _OSLT = \"ObjectSizeLessThan\";\nvar _OSLTB = \"ObjectSizeLessThanBytes\";\nvar _OSV = \"OutputSchemaVersion\";\nvar _OSb = \"ObjectSize\";\nvar _OVI = \"ObjectVersionId\";\nvar _Ob = \"Objects\";\nvar _P = \"Prefix\";\nvar _PABC = \"PublicAccessBlockConfiguration\";\nvar _PC = \"PartsCount\";\nvar _PDS = \"PartitionDateSource\";\nvar _PI = \"ParquetInput\";\nvar _PN = \"PartNumber\";\nvar _PNM = \"PartNumberMarker\";\nvar _PP = \"PartitionedPrefix\";\nvar _Pa = \"Payer\";\nvar _Par = \"Part\";\nvar _Parq = \"Parquet\";\nvar _Part = \"Parts\";\nvar _Pe = \"Permission\";\nvar _Pr = \"Protocol\";\nvar _Pri = \"Priority\";\nvar _Q = \"Quiet\";\nvar _QA = \"QueueArn\";\nvar _QC = \"QueueConfiguration\";\nvar _QCu = \"QueueConfigurations\";\nvar _QCuo = \"QuoteCharacter\";\nvar _QEC = \"QuoteEscapeCharacter\";\nvar _QF = \"QuoteFields\";\nvar _Qu = \"Queue\";\nvar _R = \"Range\";\nvar _RART = \"RedirectAllRequestsTo\";\nvar _RC = \"RequestCharged\";\nvar _RCC = \"ResponseCacheControl\";\nvar _RCD = \"ResponseContentDisposition\";\nvar _RCE = \"ResponseContentEncoding\";\nvar _RCL = \"ResponseContentLanguage\";\nvar _RCT = \"ResponseContentType\";\nvar _RCe = \"ReplicationConfiguration\";\nvar _RD = \"RecordDelimiter\";\nvar _RE = \"ResponseExpires\";\nvar _RED = \"RecordExpirationDays\";\nvar _REDe = \"RestoreExpiryDate\";\nvar _REe = \"RecordExpiration\";\nvar _RKKID = \"ReplicaKmsKeyID\";\nvar _RKPW = \"ReplaceKeyPrefixWith\";\nvar _RKW = \"ReplaceKeyWith\";\nvar _RM = \"ReplicaModifications\";\nvar _RMS = \"ReplicaModificationsStatus\";\nvar _ROP = \"RestoreOutputPath\";\nvar _RP = \"RequestPayer\";\nvar _RPB = \"RestrictPublicBuckets\";\nvar _RPC = \"RequestPaymentConfiguration\";\nvar _RPe = \"RequestProgress\";\nvar _RR = \"RequestRoute\";\nvar _RRAO = \"ReplicationRuleAndOperator\";\nvar _RRF = \"ReplicationRuleFilter\";\nvar _RRS = \"ReplicationRuleStatus\";\nvar _RRT = \"RestoreRequestType\";\nvar _RRe = \"ReplicationRule\";\nvar _RRes = \"RestoreRequest\";\nvar _RRo = \"RoutingRules\";\nvar _RRou = \"RoutingRule\";\nvar _RS = \"RenameSource\";\nvar _RSe = \"ReplicationStatus\";\nvar _RSes = \"RestoreStatus\";\nvar _RT = \"RequestToken\";\nvar _RTS = \"ReplicationTimeStatus\";\nvar _RTV = \"ReplicationTimeValue\";\nvar _RTe = \"ReplicationTime\";\nvar _RUD = \"RetainUntilDate\";\nvar _Re = \"Restore\";\nvar _Red = \"Redirect\";\nvar _Ro = \"Role\";\nvar _Ru = \"Rule\";\nvar _Rul = \"Rules\";\nvar _S = \"Status\";\nvar _SA = \"StartAfter\";\nvar _SAK = \"SecretAccessKey\";\nvar _SAs = \"SseAlgorithm\";\nvar _SBD = \"S3BucketDestination\";\nvar _SC = \"StorageClass\";\nvar _SCA = \"StorageClassAnalysis\";\nvar _SCADE = \"StorageClassAnalysisDataExport\";\nvar _SCASV = \"StorageClassAnalysisSchemaVersion\";\nvar _SCt = \"StatusCode\";\nvar _SDV = \"SkipDestinationValidation\";\nvar _SIM = \"SourceIfMatch\";\nvar _SIMS = \"SourceIfModifiedSince\";\nvar _SINM = \"SourceIfNoneMatch\";\nvar _SIUS = \"SourceIfUnmodifiedSince\";\nvar _SK = \"SSE-KMS\";\nvar _SKEO = \"SseKmsEncryptedObjects\";\nvar _SKEOS = \"SseKmsEncryptedObjectsStatus\";\nvar _SKF = \"S3KeyFilter\";\nvar _SKe = \"S3Key\";\nvar _SL = \"S3Location\";\nvar _SM = \"SessionMode\";\nvar _SOCR = \"SelectObjectContentRequest\";\nvar _SP = \"SelectParameters\";\nvar _SPi = \"SimplePrefix\";\nvar _SR = \"ScanRange\";\nvar _SS = \"SSE-S3\";\nvar _SSC = \"SourceSelectionCriteria\";\nvar _SSE = \"ServerSideEncryption\";\nvar _SSEA = \"SSEAlgorithm\";\nvar _SSEBD = \"ServerSideEncryptionByDefault\";\nvar _SSEC = \"ServerSideEncryptionConfiguration\";\nvar _SSECA = \"SSECustomerAlgorithm\";\nvar _SSECK = \"SSECustomerKey\";\nvar _SSECKMD = \"SSECustomerKeyMD5\";\nvar _SSEKMS = \"SSEKMS\";\nvar _SSEKMSEC = \"SSEKMSEncryptionContext\";\nvar _SSEKMSKI = \"SSEKMSKeyId\";\nvar _SSER = \"ServerSideEncryptionRule\";\nvar _SSES = \"SSES3\";\nvar _ST = \"SessionToken\";\nvar _STBA = \"S3TablesBucketArn\";\nvar _STD = \"S3TablesDestination\";\nvar _STDR = \"S3TablesDestinationResult\";\nvar _STN = \"S3TablesName\";\nvar _S_ = \"S3\";\nvar _Sc = \"Schedule\";\nvar _Se = \"Setting\";\nvar _Si = \"Size\";\nvar _St = \"Start\";\nvar _Su = \"Suffix\";\nvar _T = \"Tagging\";\nvar _TA = \"TopicArn\";\nvar _TAa = \"TableArn\";\nvar _TB = \"TargetBucket\";\nvar _TBA = \"TableBucketArn\";\nvar _TBT = \"TableBucketType\";\nvar _TC = \"TagCount\";\nvar _TCo = \"TopicConfiguration\";\nvar _TCop = \"TopicConfigurations\";\nvar _TD = \"TaggingDirective\";\nvar _TDMOS = \"TransitionDefaultMinimumObjectSize\";\nvar _TG = \"TargetGrants\";\nvar _TGa = \"TargetGrant\";\nvar _TN = \"TableName\";\nvar _TNa = \"TableNamespace\";\nvar _TOKF = \"TargetObjectKeyFormat\";\nvar _TP = \"TargetPrefix\";\nvar _TPC = \"TotalPartsCount\";\nvar _TS = \"TagSet\";\nvar _TSA = \"TableSseAlgorithm\";\nvar _TSC = \"TransitionStorageClass\";\nvar _TSa = \"TableStatus\";\nvar _Ta = \"Tag\";\nvar _Tag = \"Tags\";\nvar _Ti = \"Tier\";\nvar _Tie = \"Tierings\";\nvar _Tier = \"Tiering\";\nvar _Tim = \"Time\";\nvar _To = \"Token\";\nvar _Top = \"Topic\";\nvar _Tr = \"Transitions\";\nvar _Tra = \"Transition\";\nvar _Ty = \"Type\";\nvar _U = \"Upload\";\nvar _UI = \"UploadId\";\nvar _UIM = \"UploadIdMarker\";\nvar _UM = \"UserMetadata\";\nvar _URI = \"URI\";\nvar _Up = \"Uploads\";\nvar _V = \"Version\";\nvar _VC = \"VersionCount\";\nvar _VCe = \"VersioningConfiguration\";\nvar _VI = \"VersionId\";\nvar _VIM = \"VersionIdMarker\";\nvar _Va = \"Value\";\nvar _Ve = \"Versions\";\nvar _WC = \"WebsiteConfiguration\";\nvar _WOB = \"WriteOffsetBytes\";\nvar _WRL = \"WebsiteRedirectLocation\";\nvar _Y = \"Years\";\nvar _a = \"analytics\";\nvar _ac = \"accelerate\";\nvar _acl = \"acl\";\nvar _ar = \"accept-ranges\";\nvar _at = \"attributes\";\nvar _br = \"bucket-region\";\nvar _c = \"cors\";\nvar _cc = \"cache-control\";\nvar _cd = \"content-disposition\";\nvar _ce = \"content-encoding\";\nvar _cl = \"content-language\";\nvar _cl_ = \"content-length\";\nvar _cm = \"content-md5\";\nvar _cr = \"content-range\";\nvar _ct = \"content-type\";\nvar _ct_ = \"continuation-token\";\nvar _d = \"delete\";\nvar _de = \"delimiter\";\nvar _e = \"expires\";\nvar _en = \"encryption\";\nvar _et = \"encoding-type\";\nvar _eta = \"etag\";\nvar _ex = \"expiresstring\";\nvar _fo = \"fetch-owner\";\nvar _i = \"id\";\nvar _im = \"if-match\";\nvar _ims = \"if-modified-since\";\nvar _in = \"inventory\";\nvar _inm = \"if-none-match\";\nvar _it = \"intelligent-tiering\";\nvar _ius = \"if-unmodified-since\";\nvar _km = \"key-marker\";\nvar _l = \"lifecycle\";\nvar _lh = \"legal-hold\";\nvar _lm = \"last-modified\";\nvar _lo = \"location\";\nvar _log = \"logging\";\nvar _lt = \"list-type\";\nvar _m = \"metrics\";\nvar _mC = \"metadataConfiguration\";\nvar _mIT = \"metadataInventoryTable\";\nvar _mJT = \"metadataJournalTable\";\nvar _mT = \"metadataTable\";\nvar _ma = \"marker\";\nvar _mb = \"max-buckets\";\nvar _mdb = \"max-directory-buckets\";\nvar _me = \"member\";\nvar _mk = \"max-keys\";\nvar _mp = \"max-parts\";\nvar _mu = \"max-uploads\";\nvar _n = \"notification\";\nvar _oC = \"ownershipControls\";\nvar _ol = \"object-lock\";\nvar _p = \"policy\";\nvar _pAB = \"publicAccessBlock\";\nvar _pN = \"partNumber\";\nvar _pS = \"policyStatus\";\nvar _pnm = \"part-number-marker\";\nvar _pr = \"prefix\";\nvar _r = \"replication\";\nvar _rO = \"renameObject\";\nvar _rP = \"requestPayment\";\nvar _ra = \"range\";\nvar _rcc = \"response-cache-control\";\nvar _rcd = \"response-content-disposition\";\nvar _rce = \"response-content-encoding\";\nvar _rcl = \"response-content-language\";\nvar _rct = \"response-content-type\";\nvar _re = \"response-expires\";\nvar _res = \"restore\";\nvar _ret = \"retention\";\nvar _s = \"session\";\nvar _sa = \"start-after\";\nvar _se = \"select\";\nvar _st = \"select-type\";\nvar _t = \"tagging\";\nvar _to = \"torrent\";\nvar _u = \"uploads\";\nvar _uI = \"uploadId\";\nvar _uim = \"upload-id-marker\";\nvar _v = \"versioning\";\nvar _vI = \"versionId\";\nvar _ve = '';\nvar _ver = \"versions\";\nvar _vim = \"version-id-marker\";\nvar _w = \"website\";\nvar _x = \"xsi:type\";\nvar _xaa = \"x-amz-acl\";\nvar _xaad = \"x-amz-abort-date\";\nvar _xaapa = \"x-amz-access-point-alias\";\nvar _xaari = \"x-amz-abort-rule-id\";\nvar _xaas = \"x-amz-archive-status\";\nvar _xaba = \"x-amz-bucket-arn\";\nvar _xabgr = \"x-amz-bypass-governance-retention\";\nvar _xabln = \"x-amz-bucket-location-name\";\nvar _xablt = \"x-amz-bucket-location-type\";\nvar _xabole = \"x-amz-bucket-object-lock-enabled\";\nvar _xabolt = \"x-amz-bucket-object-lock-token\";\nvar _xabr = \"x-amz-bucket-region\";\nvar _xaca = \"x-amz-checksum-algorithm\";\nvar _xacc = \"x-amz-checksum-crc32\";\nvar _xacc_ = \"x-amz-checksum-crc32c\";\nvar _xacc__ = \"x-amz-checksum-crc64nvme\";\nvar _xacm = \"x-amz-checksum-mode\";\nvar _xacrsba = \"x-amz-confirm-remove-self-bucket-access\";\nvar _xacs = \"x-amz-checksum-sha1\";\nvar _xacs_ = \"x-amz-checksum-sha256\";\nvar _xacs__ = \"x-amz-copy-source\";\nvar _xacsim = \"x-amz-copy-source-if-match\";\nvar _xacsims = \"x-amz-copy-source-if-modified-since\";\nvar _xacsinm = \"x-amz-copy-source-if-none-match\";\nvar _xacsius = \"x-amz-copy-source-if-unmodified-since\";\nvar _xacsm = \"x-amz-create-session-mode\";\nvar _xacsr = \"x-amz-copy-source-range\";\nvar _xacssseca = \"x-amz-copy-source-server-side-encryption-customer-algorithm\";\nvar _xacssseck = \"x-amz-copy-source-server-side-encryption-customer-key\";\nvar _xacssseckm = \"x-amz-copy-source-server-side-encryption-customer-key-md5\";\nvar _xacsvi = \"x-amz-copy-source-version-id\";\nvar _xact = \"x-amz-checksum-type\";\nvar _xact_ = \"x-amz-client-token\";\nvar _xadm = \"x-amz-delete-marker\";\nvar _xae = \"x-amz-expiration\";\nvar _xaebo = \"x-amz-expected-bucket-owner\";\nvar _xafec = \"x-amz-fwd-error-code\";\nvar _xafem = \"x-amz-fwd-error-message\";\nvar _xafhar = \"x-amz-fwd-header-accept-ranges\";\nvar _xafhcc = \"x-amz-fwd-header-cache-control\";\nvar _xafhcd = \"x-amz-fwd-header-content-disposition\";\nvar _xafhce = \"x-amz-fwd-header-content-encoding\";\nvar _xafhcl = \"x-amz-fwd-header-content-language\";\nvar _xafhcr = \"x-amz-fwd-header-content-range\";\nvar _xafhct = \"x-amz-fwd-header-content-type\";\nvar _xafhe = \"x-amz-fwd-header-etag\";\nvar _xafhe_ = \"x-amz-fwd-header-expires\";\nvar _xafhlm = \"x-amz-fwd-header-last-modified\";\nvar _xafhxacc = \"x-amz-fwd-header-x-amz-checksum-crc32\";\nvar _xafhxacc_ = \"x-amz-fwd-header-x-amz-checksum-crc32c\";\nvar _xafhxacc__ = \"x-amz-fwd-header-x-amz-checksum-crc64nvme\";\nvar _xafhxacs = \"x-amz-fwd-header-x-amz-checksum-sha1\";\nvar _xafhxacs_ = \"x-amz-fwd-header-x-amz-checksum-sha256\";\nvar _xafhxadm = \"x-amz-fwd-header-x-amz-delete-marker\";\nvar _xafhxae = \"x-amz-fwd-header-x-amz-expiration\";\nvar _xafhxamm = \"x-amz-fwd-header-x-amz-missing-meta\";\nvar _xafhxampc = \"x-amz-fwd-header-x-amz-mp-parts-count\";\nvar _xafhxaollh = \"x-amz-fwd-header-x-amz-object-lock-legal-hold\";\nvar _xafhxaolm = \"x-amz-fwd-header-x-amz-object-lock-mode\";\nvar _xafhxaolrud = \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\";\nvar _xafhxar = \"x-amz-fwd-header-x-amz-restore\";\nvar _xafhxarc = \"x-amz-fwd-header-x-amz-request-charged\";\nvar _xafhxars = \"x-amz-fwd-header-x-amz-replication-status\";\nvar _xafhxasc = \"x-amz-fwd-header-x-amz-storage-class\";\nvar _xafhxasse = \"x-amz-fwd-header-x-amz-server-side-encryption\";\nvar _xafhxasseakki = \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\";\nvar _xafhxassebke = \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\";\nvar _xafhxasseca = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\";\nvar _xafhxasseckm = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5\";\nvar _xafhxatc = \"x-amz-fwd-header-x-amz-tagging-count\";\nvar _xafhxavi = \"x-amz-fwd-header-x-amz-version-id\";\nvar _xafs = \"x-amz-fwd-status\";\nvar _xagfc = \"x-amz-grant-full-control\";\nvar _xagr = \"x-amz-grant-read\";\nvar _xagra = \"x-amz-grant-read-acp\";\nvar _xagw = \"x-amz-grant-write\";\nvar _xagwa = \"x-amz-grant-write-acp\";\nvar _xaimit = \"x-amz-if-match-initiated-time\";\nvar _xaimlmt = \"x-amz-if-match-last-modified-time\";\nvar _xaims = \"x-amz-if-match-size\";\nvar _xam = \"x-amz-mfa\";\nvar _xamd = \"x-amz-metadata-directive\";\nvar _xamm = \"x-amz-missing-meta\";\nvar _xamos = \"x-amz-mp-object-size\";\nvar _xamp = \"x-amz-max-parts\";\nvar _xampc = \"x-amz-mp-parts-count\";\nvar _xaoa = \"x-amz-object-attributes\";\nvar _xaollh = \"x-amz-object-lock-legal-hold\";\nvar _xaolm = \"x-amz-object-lock-mode\";\nvar _xaolrud = \"x-amz-object-lock-retain-until-date\";\nvar _xaoo = \"x-amz-object-ownership\";\nvar _xaooa = \"x-amz-optional-object-attributes\";\nvar _xaos = \"x-amz-object-size\";\nvar _xapnm = \"x-amz-part-number-marker\";\nvar _xar = \"x-amz-restore\";\nvar _xarc = \"x-amz-request-charged\";\nvar _xarop = \"x-amz-restore-output-path\";\nvar _xarp = \"x-amz-request-payer\";\nvar _xarr = \"x-amz-request-route\";\nvar _xars = \"x-amz-rename-source\";\nvar _xars_ = \"x-amz-replication-status\";\nvar _xarsim = \"x-amz-rename-source-if-match\";\nvar _xarsims = \"x-amz-rename-source-if-modified-since\";\nvar _xarsinm = \"x-amz-rename-source-if-none-match\";\nvar _xarsius = \"x-amz-rename-source-if-unmodified-since\";\nvar _xart = \"x-amz-request-token\";\nvar _xasc = \"x-amz-storage-class\";\nvar _xasca = \"x-amz-sdk-checksum-algorithm\";\nvar _xasdv = \"x-amz-skip-destination-validation\";\nvar _xasebo = \"x-amz-source-expected-bucket-owner\";\nvar _xasse = \"x-amz-server-side-encryption\";\nvar _xasseakki = \"x-amz-server-side-encryption-aws-kms-key-id\";\nvar _xassebke = \"x-amz-server-side-encryption-bucket-key-enabled\";\nvar _xassec = \"x-amz-server-side-encryption-context\";\nvar _xasseca = \"x-amz-server-side-encryption-customer-algorithm\";\nvar _xasseck = \"x-amz-server-side-encryption-customer-key\";\nvar _xasseckm = \"x-amz-server-side-encryption-customer-key-md5\";\nvar _xat = \"x-amz-tagging\";\nvar _xatc = \"x-amz-tagging-count\";\nvar _xatd = \"x-amz-tagging-directive\";\nvar _xatdmos = \"x-amz-transition-default-minimum-object-size\";\nvar _xavi = \"x-amz-version-id\";\nvar _xawob = \"x-amz-write-offset-bytes\";\nvar _xawrl = \"x-amz-website-redirect-location\";\nvar _xi = \"x-id\";\n\n// src/commands/CreateSessionCommand.ts\nvar CreateSessionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s3.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CreateSession\", {}).n(\"S3Client\", \"CreateSessionCommand\").f(CreateSessionRequestFilterSensitiveLog, CreateSessionOutputFilterSensitiveLog).ser(se_CreateSessionCommand).de(de_CreateSessionCommand).build() {\n static {\n __name(this, \"CreateSessionCommand\");\n }\n};\n\n// src/S3Client.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\n\n\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/S3Client.ts\nvar S3Client = class extends import_smithy_client.Client {\n static {\n __name(this, \"S3Client\");\n }\n /**\n * The resolved configuration of S3Client class. This is resolved and normalized from the {@link S3ClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_flexible_checksums.resolveFlexibleChecksumsConfig)(_config_2);\n const _config_4 = (0, import_middleware_retry.resolveRetryConfig)(_config_3);\n const _config_5 = (0, import_config_resolver.resolveRegionConfig)(_config_4);\n const _config_6 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_5);\n const _config_7 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_6);\n const _config_8 = (0, import_eventstream_serde_config_resolver.resolveEventStreamSerdeConfig)(_config_7);\n const _config_9 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_8);\n const _config_10 = (0, import_middleware_sdk_s32.resolveS3Config)(_config_9, { session: [() => this, CreateSessionCommand] });\n const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []);\n this.config = _config_11;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core3.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultS3HttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core3.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n \"aws.auth#sigv4a\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core3.getHttpSigningPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getValidateBucketNamePlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_expect_continue.getAddExpectContinuePlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getRegionRedirectMiddlewarePlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getS3ExpressPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_sdk_s32.getS3ExpressHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/S3.ts\n\n\n// src/commands/AbortMultipartUploadCommand.ts\nvar import_middleware_sdk_s33 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar AbortMultipartUploadCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s33.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"AbortMultipartUpload\", {}).n(\"S3Client\", \"AbortMultipartUploadCommand\").f(void 0, void 0).ser(se_AbortMultipartUploadCommand).de(de_AbortMultipartUploadCommand).build() {\n static {\n __name(this, \"AbortMultipartUploadCommand\");\n }\n};\n\n// src/commands/CompleteMultipartUploadCommand.ts\nvar import_middleware_sdk_s34 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_middleware_ssec = require(\"@aws-sdk/middleware-ssec\");\n\n\n\nvar CompleteMultipartUploadCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s34.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CompleteMultipartUpload\", {}).n(\"S3Client\", \"CompleteMultipartUploadCommand\").f(CompleteMultipartUploadRequestFilterSensitiveLog, CompleteMultipartUploadOutputFilterSensitiveLog).ser(se_CompleteMultipartUploadCommand).de(de_CompleteMultipartUploadCommand).build() {\n static {\n __name(this, \"CompleteMultipartUploadCommand\");\n }\n};\n\n// src/commands/CopyObjectCommand.ts\nvar import_middleware_sdk_s35 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar CopyObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" },\n CopySource: { type: \"contextParams\", name: \"CopySource\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s35.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CopyObject\", {}).n(\"S3Client\", \"CopyObjectCommand\").f(CopyObjectRequestFilterSensitiveLog, CopyObjectOutputFilterSensitiveLog).ser(se_CopyObjectCommand).de(de_CopyObjectCommand).build() {\n static {\n __name(this, \"CopyObjectCommand\");\n }\n};\n\n// src/commands/CreateBucketCommand.ts\nvar import_middleware_location_constraint = require(\"@aws-sdk/middleware-location-constraint\");\nvar import_middleware_sdk_s36 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar CreateBucketCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n DisableAccessPoints: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s36.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_location_constraint.getLocationConstraintPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CreateBucket\", {}).n(\"S3Client\", \"CreateBucketCommand\").f(void 0, void 0).ser(se_CreateBucketCommand).de(de_CreateBucketCommand).build() {\n static {\n __name(this, \"CreateBucketCommand\");\n }\n};\n\n// src/commands/CreateBucketMetadataConfigurationCommand.ts\n\n\n\n\nvar CreateBucketMetadataConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"CreateBucketMetadataConfiguration\", {}).n(\"S3Client\", \"CreateBucketMetadataConfigurationCommand\").f(void 0, void 0).ser(se_CreateBucketMetadataConfigurationCommand).de(de_CreateBucketMetadataConfigurationCommand).build() {\n static {\n __name(this, \"CreateBucketMetadataConfigurationCommand\");\n }\n};\n\n// src/commands/CreateBucketMetadataTableConfigurationCommand.ts\n\n\n\n\nvar CreateBucketMetadataTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"CreateBucketMetadataTableConfiguration\", {}).n(\"S3Client\", \"CreateBucketMetadataTableConfigurationCommand\").f(void 0, void 0).ser(se_CreateBucketMetadataTableConfigurationCommand).de(de_CreateBucketMetadataTableConfigurationCommand).build() {\n static {\n __name(this, \"CreateBucketMetadataTableConfigurationCommand\");\n }\n};\n\n// src/commands/CreateMultipartUploadCommand.ts\nvar import_middleware_sdk_s37 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar CreateMultipartUploadCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s37.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"CreateMultipartUpload\", {}).n(\"S3Client\", \"CreateMultipartUploadCommand\").f(CreateMultipartUploadRequestFilterSensitiveLog, CreateMultipartUploadOutputFilterSensitiveLog).ser(se_CreateMultipartUploadCommand).de(de_CreateMultipartUploadCommand).build() {\n static {\n __name(this, \"CreateMultipartUploadCommand\");\n }\n};\n\n// src/commands/DeleteBucketAnalyticsConfigurationCommand.ts\n\n\n\nvar DeleteBucketAnalyticsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketAnalyticsConfiguration\", {}).n(\"S3Client\", \"DeleteBucketAnalyticsConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketAnalyticsConfigurationCommand).de(de_DeleteBucketAnalyticsConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketAnalyticsConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketCommand.ts\n\n\n\nvar DeleteBucketCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucket\", {}).n(\"S3Client\", \"DeleteBucketCommand\").f(void 0, void 0).ser(se_DeleteBucketCommand).de(de_DeleteBucketCommand).build() {\n static {\n __name(this, \"DeleteBucketCommand\");\n }\n};\n\n// src/commands/DeleteBucketCorsCommand.ts\n\n\n\nvar DeleteBucketCorsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketCors\", {}).n(\"S3Client\", \"DeleteBucketCorsCommand\").f(void 0, void 0).ser(se_DeleteBucketCorsCommand).de(de_DeleteBucketCorsCommand).build() {\n static {\n __name(this, \"DeleteBucketCorsCommand\");\n }\n};\n\n// src/commands/DeleteBucketEncryptionCommand.ts\n\n\n\nvar DeleteBucketEncryptionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketEncryption\", {}).n(\"S3Client\", \"DeleteBucketEncryptionCommand\").f(void 0, void 0).ser(se_DeleteBucketEncryptionCommand).de(de_DeleteBucketEncryptionCommand).build() {\n static {\n __name(this, \"DeleteBucketEncryptionCommand\");\n }\n};\n\n// src/commands/DeleteBucketIntelligentTieringConfigurationCommand.ts\n\n\n\nvar DeleteBucketIntelligentTieringConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketIntelligentTieringConfiguration\", {}).n(\"S3Client\", \"DeleteBucketIntelligentTieringConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketIntelligentTieringConfigurationCommand).de(de_DeleteBucketIntelligentTieringConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketIntelligentTieringConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketInventoryConfigurationCommand.ts\n\n\n\nvar DeleteBucketInventoryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketInventoryConfiguration\", {}).n(\"S3Client\", \"DeleteBucketInventoryConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketInventoryConfigurationCommand).de(de_DeleteBucketInventoryConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketInventoryConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketLifecycleCommand.ts\n\n\n\nvar DeleteBucketLifecycleCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketLifecycle\", {}).n(\"S3Client\", \"DeleteBucketLifecycleCommand\").f(void 0, void 0).ser(se_DeleteBucketLifecycleCommand).de(de_DeleteBucketLifecycleCommand).build() {\n static {\n __name(this, \"DeleteBucketLifecycleCommand\");\n }\n};\n\n// src/commands/DeleteBucketMetadataConfigurationCommand.ts\n\n\n\nvar DeleteBucketMetadataConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketMetadataConfiguration\", {}).n(\"S3Client\", \"DeleteBucketMetadataConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketMetadataConfigurationCommand).de(de_DeleteBucketMetadataConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketMetadataConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketMetadataTableConfigurationCommand.ts\n\n\n\nvar DeleteBucketMetadataTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketMetadataTableConfiguration\", {}).n(\"S3Client\", \"DeleteBucketMetadataTableConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketMetadataTableConfigurationCommand).de(de_DeleteBucketMetadataTableConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketMetadataTableConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketMetricsConfigurationCommand.ts\n\n\n\nvar DeleteBucketMetricsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketMetricsConfiguration\", {}).n(\"S3Client\", \"DeleteBucketMetricsConfigurationCommand\").f(void 0, void 0).ser(se_DeleteBucketMetricsConfigurationCommand).de(de_DeleteBucketMetricsConfigurationCommand).build() {\n static {\n __name(this, \"DeleteBucketMetricsConfigurationCommand\");\n }\n};\n\n// src/commands/DeleteBucketOwnershipControlsCommand.ts\n\n\n\nvar DeleteBucketOwnershipControlsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketOwnershipControls\", {}).n(\"S3Client\", \"DeleteBucketOwnershipControlsCommand\").f(void 0, void 0).ser(se_DeleteBucketOwnershipControlsCommand).de(de_DeleteBucketOwnershipControlsCommand).build() {\n static {\n __name(this, \"DeleteBucketOwnershipControlsCommand\");\n }\n};\n\n// src/commands/DeleteBucketPolicyCommand.ts\n\n\n\nvar DeleteBucketPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketPolicy\", {}).n(\"S3Client\", \"DeleteBucketPolicyCommand\").f(void 0, void 0).ser(se_DeleteBucketPolicyCommand).de(de_DeleteBucketPolicyCommand).build() {\n static {\n __name(this, \"DeleteBucketPolicyCommand\");\n }\n};\n\n// src/commands/DeleteBucketReplicationCommand.ts\n\n\n\nvar DeleteBucketReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketReplication\", {}).n(\"S3Client\", \"DeleteBucketReplicationCommand\").f(void 0, void 0).ser(se_DeleteBucketReplicationCommand).de(de_DeleteBucketReplicationCommand).build() {\n static {\n __name(this, \"DeleteBucketReplicationCommand\");\n }\n};\n\n// src/commands/DeleteBucketTaggingCommand.ts\n\n\n\nvar DeleteBucketTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketTagging\", {}).n(\"S3Client\", \"DeleteBucketTaggingCommand\").f(void 0, void 0).ser(se_DeleteBucketTaggingCommand).de(de_DeleteBucketTaggingCommand).build() {\n static {\n __name(this, \"DeleteBucketTaggingCommand\");\n }\n};\n\n// src/commands/DeleteBucketWebsiteCommand.ts\n\n\n\nvar DeleteBucketWebsiteCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeleteBucketWebsite\", {}).n(\"S3Client\", \"DeleteBucketWebsiteCommand\").f(void 0, void 0).ser(se_DeleteBucketWebsiteCommand).de(de_DeleteBucketWebsiteCommand).build() {\n static {\n __name(this, \"DeleteBucketWebsiteCommand\");\n }\n};\n\n// src/commands/DeleteObjectCommand.ts\nvar import_middleware_sdk_s38 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar DeleteObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s38.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"DeleteObject\", {}).n(\"S3Client\", \"DeleteObjectCommand\").f(void 0, void 0).ser(se_DeleteObjectCommand).de(de_DeleteObjectCommand).build() {\n static {\n __name(this, \"DeleteObjectCommand\");\n }\n};\n\n// src/commands/DeleteObjectsCommand.ts\n\nvar import_middleware_sdk_s39 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar DeleteObjectsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s39.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"DeleteObjects\", {}).n(\"S3Client\", \"DeleteObjectsCommand\").f(void 0, void 0).ser(se_DeleteObjectsCommand).de(de_DeleteObjectsCommand).build() {\n static {\n __name(this, \"DeleteObjectsCommand\");\n }\n};\n\n// src/commands/DeleteObjectTaggingCommand.ts\nvar import_middleware_sdk_s310 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar DeleteObjectTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s310.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"DeleteObjectTagging\", {}).n(\"S3Client\", \"DeleteObjectTaggingCommand\").f(void 0, void 0).ser(se_DeleteObjectTaggingCommand).de(de_DeleteObjectTaggingCommand).build() {\n static {\n __name(this, \"DeleteObjectTaggingCommand\");\n }\n};\n\n// src/commands/DeletePublicAccessBlockCommand.ts\n\n\n\nvar DeletePublicAccessBlockCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"DeletePublicAccessBlock\", {}).n(\"S3Client\", \"DeletePublicAccessBlockCommand\").f(void 0, void 0).ser(se_DeletePublicAccessBlockCommand).de(de_DeletePublicAccessBlockCommand).build() {\n static {\n __name(this, \"DeletePublicAccessBlockCommand\");\n }\n};\n\n// src/commands/GetBucketAccelerateConfigurationCommand.ts\nvar import_middleware_sdk_s311 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketAccelerateConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s311.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketAccelerateConfiguration\", {}).n(\"S3Client\", \"GetBucketAccelerateConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketAccelerateConfigurationCommand).de(de_GetBucketAccelerateConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketAccelerateConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketAclCommand.ts\nvar import_middleware_sdk_s312 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s312.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketAcl\", {}).n(\"S3Client\", \"GetBucketAclCommand\").f(void 0, void 0).ser(se_GetBucketAclCommand).de(de_GetBucketAclCommand).build() {\n static {\n __name(this, \"GetBucketAclCommand\");\n }\n};\n\n// src/commands/GetBucketAnalyticsConfigurationCommand.ts\nvar import_middleware_sdk_s313 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketAnalyticsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s313.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketAnalyticsConfiguration\", {}).n(\"S3Client\", \"GetBucketAnalyticsConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketAnalyticsConfigurationCommand).de(de_GetBucketAnalyticsConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketAnalyticsConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketCorsCommand.ts\nvar import_middleware_sdk_s314 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketCorsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s314.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketCors\", {}).n(\"S3Client\", \"GetBucketCorsCommand\").f(void 0, void 0).ser(se_GetBucketCorsCommand).de(de_GetBucketCorsCommand).build() {\n static {\n __name(this, \"GetBucketCorsCommand\");\n }\n};\n\n// src/commands/GetBucketEncryptionCommand.ts\nvar import_middleware_sdk_s315 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketEncryptionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s315.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketEncryption\", {}).n(\"S3Client\", \"GetBucketEncryptionCommand\").f(void 0, GetBucketEncryptionOutputFilterSensitiveLog).ser(se_GetBucketEncryptionCommand).de(de_GetBucketEncryptionCommand).build() {\n static {\n __name(this, \"GetBucketEncryptionCommand\");\n }\n};\n\n// src/commands/GetBucketIntelligentTieringConfigurationCommand.ts\nvar import_middleware_sdk_s316 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketIntelligentTieringConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s316.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketIntelligentTieringConfiguration\", {}).n(\"S3Client\", \"GetBucketIntelligentTieringConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketIntelligentTieringConfigurationCommand).de(de_GetBucketIntelligentTieringConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketIntelligentTieringConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketInventoryConfigurationCommand.ts\nvar import_middleware_sdk_s317 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketInventoryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s317.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketInventoryConfiguration\", {}).n(\"S3Client\", \"GetBucketInventoryConfigurationCommand\").f(void 0, GetBucketInventoryConfigurationOutputFilterSensitiveLog).ser(se_GetBucketInventoryConfigurationCommand).de(de_GetBucketInventoryConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketInventoryConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketLifecycleConfigurationCommand.ts\nvar import_middleware_sdk_s318 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketLifecycleConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s318.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketLifecycleConfiguration\", {}).n(\"S3Client\", \"GetBucketLifecycleConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketLifecycleConfigurationCommand).de(de_GetBucketLifecycleConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketLifecycleConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketLocationCommand.ts\nvar import_middleware_sdk_s319 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketLocationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s319.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketLocation\", {}).n(\"S3Client\", \"GetBucketLocationCommand\").f(void 0, void 0).ser(se_GetBucketLocationCommand).de(de_GetBucketLocationCommand).build() {\n static {\n __name(this, \"GetBucketLocationCommand\");\n }\n};\n\n// src/commands/GetBucketLoggingCommand.ts\nvar import_middleware_sdk_s320 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketLoggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s320.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketLogging\", {}).n(\"S3Client\", \"GetBucketLoggingCommand\").f(void 0, void 0).ser(se_GetBucketLoggingCommand).de(de_GetBucketLoggingCommand).build() {\n static {\n __name(this, \"GetBucketLoggingCommand\");\n }\n};\n\n// src/commands/GetBucketMetadataConfigurationCommand.ts\nvar import_middleware_sdk_s321 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketMetadataConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s321.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketMetadataConfiguration\", {}).n(\"S3Client\", \"GetBucketMetadataConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketMetadataConfigurationCommand).de(de_GetBucketMetadataConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketMetadataConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketMetadataTableConfigurationCommand.ts\nvar import_middleware_sdk_s322 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketMetadataTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s322.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketMetadataTableConfiguration\", {}).n(\"S3Client\", \"GetBucketMetadataTableConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketMetadataTableConfigurationCommand).de(de_GetBucketMetadataTableConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketMetadataTableConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketMetricsConfigurationCommand.ts\nvar import_middleware_sdk_s323 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketMetricsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s323.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketMetricsConfiguration\", {}).n(\"S3Client\", \"GetBucketMetricsConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketMetricsConfigurationCommand).de(de_GetBucketMetricsConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketMetricsConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketNotificationConfigurationCommand.ts\nvar import_middleware_sdk_s324 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketNotificationConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s324.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketNotificationConfiguration\", {}).n(\"S3Client\", \"GetBucketNotificationConfigurationCommand\").f(void 0, void 0).ser(se_GetBucketNotificationConfigurationCommand).de(de_GetBucketNotificationConfigurationCommand).build() {\n static {\n __name(this, \"GetBucketNotificationConfigurationCommand\");\n }\n};\n\n// src/commands/GetBucketOwnershipControlsCommand.ts\nvar import_middleware_sdk_s325 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketOwnershipControlsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s325.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketOwnershipControls\", {}).n(\"S3Client\", \"GetBucketOwnershipControlsCommand\").f(void 0, void 0).ser(se_GetBucketOwnershipControlsCommand).de(de_GetBucketOwnershipControlsCommand).build() {\n static {\n __name(this, \"GetBucketOwnershipControlsCommand\");\n }\n};\n\n// src/commands/GetBucketPolicyCommand.ts\nvar import_middleware_sdk_s326 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s326.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketPolicy\", {}).n(\"S3Client\", \"GetBucketPolicyCommand\").f(void 0, void 0).ser(se_GetBucketPolicyCommand).de(de_GetBucketPolicyCommand).build() {\n static {\n __name(this, \"GetBucketPolicyCommand\");\n }\n};\n\n// src/commands/GetBucketPolicyStatusCommand.ts\nvar import_middleware_sdk_s327 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketPolicyStatusCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s327.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketPolicyStatus\", {}).n(\"S3Client\", \"GetBucketPolicyStatusCommand\").f(void 0, void 0).ser(se_GetBucketPolicyStatusCommand).de(de_GetBucketPolicyStatusCommand).build() {\n static {\n __name(this, \"GetBucketPolicyStatusCommand\");\n }\n};\n\n// src/commands/GetBucketReplicationCommand.ts\nvar import_middleware_sdk_s328 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s328.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketReplication\", {}).n(\"S3Client\", \"GetBucketReplicationCommand\").f(void 0, void 0).ser(se_GetBucketReplicationCommand).de(de_GetBucketReplicationCommand).build() {\n static {\n __name(this, \"GetBucketReplicationCommand\");\n }\n};\n\n// src/commands/GetBucketRequestPaymentCommand.ts\nvar import_middleware_sdk_s329 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketRequestPaymentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s329.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketRequestPayment\", {}).n(\"S3Client\", \"GetBucketRequestPaymentCommand\").f(void 0, void 0).ser(se_GetBucketRequestPaymentCommand).de(de_GetBucketRequestPaymentCommand).build() {\n static {\n __name(this, \"GetBucketRequestPaymentCommand\");\n }\n};\n\n// src/commands/GetBucketTaggingCommand.ts\nvar import_middleware_sdk_s330 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s330.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketTagging\", {}).n(\"S3Client\", \"GetBucketTaggingCommand\").f(void 0, void 0).ser(se_GetBucketTaggingCommand).de(de_GetBucketTaggingCommand).build() {\n static {\n __name(this, \"GetBucketTaggingCommand\");\n }\n};\n\n// src/commands/GetBucketVersioningCommand.ts\nvar import_middleware_sdk_s331 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketVersioningCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s331.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketVersioning\", {}).n(\"S3Client\", \"GetBucketVersioningCommand\").f(void 0, void 0).ser(se_GetBucketVersioningCommand).de(de_GetBucketVersioningCommand).build() {\n static {\n __name(this, \"GetBucketVersioningCommand\");\n }\n};\n\n// src/commands/GetBucketWebsiteCommand.ts\nvar import_middleware_sdk_s332 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetBucketWebsiteCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s332.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetBucketWebsite\", {}).n(\"S3Client\", \"GetBucketWebsiteCommand\").f(void 0, void 0).ser(se_GetBucketWebsiteCommand).de(de_GetBucketWebsiteCommand).build() {\n static {\n __name(this, \"GetBucketWebsiteCommand\");\n }\n};\n\n// src/commands/GetObjectAclCommand.ts\nvar import_middleware_sdk_s333 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s333.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectAcl\", {}).n(\"S3Client\", \"GetObjectAclCommand\").f(void 0, void 0).ser(se_GetObjectAclCommand).de(de_GetObjectAclCommand).build() {\n static {\n __name(this, \"GetObjectAclCommand\");\n }\n};\n\n// src/commands/GetObjectAttributesCommand.ts\nvar import_middleware_sdk_s334 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar GetObjectAttributesCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s334.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectAttributes\", {}).n(\"S3Client\", \"GetObjectAttributesCommand\").f(GetObjectAttributesRequestFilterSensitiveLog, void 0).ser(se_GetObjectAttributesCommand).de(de_GetObjectAttributesCommand).build() {\n static {\n __name(this, \"GetObjectAttributesCommand\");\n }\n};\n\n// src/commands/GetObjectCommand.ts\n\nvar import_middleware_sdk_s335 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar GetObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestChecksumRequired: false,\n requestValidationModeMember: \"ChecksumMode\",\n responseAlgorithms: [\"CRC64NVME\", \"CRC32\", \"CRC32C\", \"SHA256\", \"SHA1\"]\n }),\n (0, import_middleware_ssec.getSsecPlugin)(config),\n (0, import_middleware_sdk_s335.getS3ExpiresMiddlewarePlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObject\", {}).n(\"S3Client\", \"GetObjectCommand\").f(GetObjectRequestFilterSensitiveLog, GetObjectOutputFilterSensitiveLog).ser(se_GetObjectCommand).de(de_GetObjectCommand).build() {\n static {\n __name(this, \"GetObjectCommand\");\n }\n};\n\n// src/commands/GetObjectLegalHoldCommand.ts\nvar import_middleware_sdk_s336 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectLegalHoldCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s336.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectLegalHold\", {}).n(\"S3Client\", \"GetObjectLegalHoldCommand\").f(void 0, void 0).ser(se_GetObjectLegalHoldCommand).de(de_GetObjectLegalHoldCommand).build() {\n static {\n __name(this, \"GetObjectLegalHoldCommand\");\n }\n};\n\n// src/commands/GetObjectLockConfigurationCommand.ts\nvar import_middleware_sdk_s337 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectLockConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s337.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectLockConfiguration\", {}).n(\"S3Client\", \"GetObjectLockConfigurationCommand\").f(void 0, void 0).ser(se_GetObjectLockConfigurationCommand).de(de_GetObjectLockConfigurationCommand).build() {\n static {\n __name(this, \"GetObjectLockConfigurationCommand\");\n }\n};\n\n// src/commands/GetObjectRetentionCommand.ts\nvar import_middleware_sdk_s338 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectRetentionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s338.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectRetention\", {}).n(\"S3Client\", \"GetObjectRetentionCommand\").f(void 0, void 0).ser(se_GetObjectRetentionCommand).de(de_GetObjectRetentionCommand).build() {\n static {\n __name(this, \"GetObjectRetentionCommand\");\n }\n};\n\n// src/commands/GetObjectTaggingCommand.ts\nvar import_middleware_sdk_s339 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetObjectTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s339.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetObjectTagging\", {}).n(\"S3Client\", \"GetObjectTaggingCommand\").f(void 0, void 0).ser(se_GetObjectTaggingCommand).de(de_GetObjectTaggingCommand).build() {\n static {\n __name(this, \"GetObjectTaggingCommand\");\n }\n};\n\n// src/commands/GetObjectTorrentCommand.ts\n\n\n\nvar GetObjectTorrentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"GetObjectTorrent\", {}).n(\"S3Client\", \"GetObjectTorrentCommand\").f(void 0, GetObjectTorrentOutputFilterSensitiveLog).ser(se_GetObjectTorrentCommand).de(de_GetObjectTorrentCommand).build() {\n static {\n __name(this, \"GetObjectTorrentCommand\");\n }\n};\n\n// src/commands/GetPublicAccessBlockCommand.ts\nvar import_middleware_sdk_s340 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar GetPublicAccessBlockCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s340.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"GetPublicAccessBlock\", {}).n(\"S3Client\", \"GetPublicAccessBlockCommand\").f(void 0, void 0).ser(se_GetPublicAccessBlockCommand).de(de_GetPublicAccessBlockCommand).build() {\n static {\n __name(this, \"GetPublicAccessBlockCommand\");\n }\n};\n\n// src/commands/HeadBucketCommand.ts\nvar import_middleware_sdk_s341 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar HeadBucketCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s341.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"HeadBucket\", {}).n(\"S3Client\", \"HeadBucketCommand\").f(void 0, void 0).ser(se_HeadBucketCommand).de(de_HeadBucketCommand).build() {\n static {\n __name(this, \"HeadBucketCommand\");\n }\n};\n\n// src/commands/HeadObjectCommand.ts\nvar import_middleware_sdk_s342 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar HeadObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s342.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config),\n (0, import_middleware_sdk_s342.getS3ExpiresMiddlewarePlugin)(config)\n ];\n}).s(\"AmazonS3\", \"HeadObject\", {}).n(\"S3Client\", \"HeadObjectCommand\").f(HeadObjectRequestFilterSensitiveLog, HeadObjectOutputFilterSensitiveLog).ser(se_HeadObjectCommand).de(de_HeadObjectCommand).build() {\n static {\n __name(this, \"HeadObjectCommand\");\n }\n};\n\n// src/commands/ListBucketAnalyticsConfigurationsCommand.ts\nvar import_middleware_sdk_s343 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketAnalyticsConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s343.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketAnalyticsConfigurations\", {}).n(\"S3Client\", \"ListBucketAnalyticsConfigurationsCommand\").f(void 0, void 0).ser(se_ListBucketAnalyticsConfigurationsCommand).de(de_ListBucketAnalyticsConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketAnalyticsConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketIntelligentTieringConfigurationsCommand.ts\nvar import_middleware_sdk_s344 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketIntelligentTieringConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s344.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketIntelligentTieringConfigurations\", {}).n(\"S3Client\", \"ListBucketIntelligentTieringConfigurationsCommand\").f(void 0, void 0).ser(se_ListBucketIntelligentTieringConfigurationsCommand).de(de_ListBucketIntelligentTieringConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketIntelligentTieringConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketInventoryConfigurationsCommand.ts\nvar import_middleware_sdk_s345 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketInventoryConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s345.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketInventoryConfigurations\", {}).n(\"S3Client\", \"ListBucketInventoryConfigurationsCommand\").f(void 0, ListBucketInventoryConfigurationsOutputFilterSensitiveLog).ser(se_ListBucketInventoryConfigurationsCommand).de(de_ListBucketInventoryConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketInventoryConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketMetricsConfigurationsCommand.ts\nvar import_middleware_sdk_s346 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketMetricsConfigurationsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s346.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBucketMetricsConfigurations\", {}).n(\"S3Client\", \"ListBucketMetricsConfigurationsCommand\").f(void 0, void 0).ser(se_ListBucketMetricsConfigurationsCommand).de(de_ListBucketMetricsConfigurationsCommand).build() {\n static {\n __name(this, \"ListBucketMetricsConfigurationsCommand\");\n }\n};\n\n// src/commands/ListBucketsCommand.ts\nvar import_middleware_sdk_s347 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListBucketsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s347.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListBuckets\", {}).n(\"S3Client\", \"ListBucketsCommand\").f(void 0, void 0).ser(se_ListBucketsCommand).de(de_ListBucketsCommand).build() {\n static {\n __name(this, \"ListBucketsCommand\");\n }\n};\n\n// src/commands/ListDirectoryBucketsCommand.ts\nvar import_middleware_sdk_s348 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListDirectoryBucketsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s348.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListDirectoryBuckets\", {}).n(\"S3Client\", \"ListDirectoryBucketsCommand\").f(void 0, void 0).ser(se_ListDirectoryBucketsCommand).de(de_ListDirectoryBucketsCommand).build() {\n static {\n __name(this, \"ListDirectoryBucketsCommand\");\n }\n};\n\n// src/commands/ListMultipartUploadsCommand.ts\nvar import_middleware_sdk_s349 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListMultipartUploadsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s349.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListMultipartUploads\", {}).n(\"S3Client\", \"ListMultipartUploadsCommand\").f(void 0, void 0).ser(se_ListMultipartUploadsCommand).de(de_ListMultipartUploadsCommand).build() {\n static {\n __name(this, \"ListMultipartUploadsCommand\");\n }\n};\n\n// src/commands/ListObjectsCommand.ts\nvar import_middleware_sdk_s350 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListObjectsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s350.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListObjects\", {}).n(\"S3Client\", \"ListObjectsCommand\").f(void 0, void 0).ser(se_ListObjectsCommand).de(de_ListObjectsCommand).build() {\n static {\n __name(this, \"ListObjectsCommand\");\n }\n};\n\n// src/commands/ListObjectsV2Command.ts\nvar import_middleware_sdk_s351 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListObjectsV2Command = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s351.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListObjectsV2\", {}).n(\"S3Client\", \"ListObjectsV2Command\").f(void 0, void 0).ser(se_ListObjectsV2Command).de(de_ListObjectsV2Command).build() {\n static {\n __name(this, \"ListObjectsV2Command\");\n }\n};\n\n// src/commands/ListObjectVersionsCommand.ts\nvar import_middleware_sdk_s352 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar ListObjectVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Prefix: { type: \"contextParams\", name: \"Prefix\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s352.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListObjectVersions\", {}).n(\"S3Client\", \"ListObjectVersionsCommand\").f(void 0, void 0).ser(se_ListObjectVersionsCommand).de(de_ListObjectVersionsCommand).build() {\n static {\n __name(this, \"ListObjectVersionsCommand\");\n }\n};\n\n// src/commands/ListPartsCommand.ts\nvar import_middleware_sdk_s353 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar ListPartsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s353.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"ListParts\", {}).n(\"S3Client\", \"ListPartsCommand\").f(ListPartsRequestFilterSensitiveLog, void 0).ser(se_ListPartsCommand).de(de_ListPartsCommand).build() {\n static {\n __name(this, \"ListPartsCommand\");\n }\n};\n\n// src/commands/PutBucketAccelerateConfigurationCommand.ts\n\n\n\n\nvar PutBucketAccelerateConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketAccelerateConfiguration\", {}).n(\"S3Client\", \"PutBucketAccelerateConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketAccelerateConfigurationCommand).de(de_PutBucketAccelerateConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketAccelerateConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketAclCommand.ts\n\n\n\n\nvar PutBucketAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketAcl\", {}).n(\"S3Client\", \"PutBucketAclCommand\").f(void 0, void 0).ser(se_PutBucketAclCommand).de(de_PutBucketAclCommand).build() {\n static {\n __name(this, \"PutBucketAclCommand\");\n }\n};\n\n// src/commands/PutBucketAnalyticsConfigurationCommand.ts\n\n\n\nvar PutBucketAnalyticsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketAnalyticsConfiguration\", {}).n(\"S3Client\", \"PutBucketAnalyticsConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketAnalyticsConfigurationCommand).de(de_PutBucketAnalyticsConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketAnalyticsConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketCorsCommand.ts\n\n\n\n\nvar PutBucketCorsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketCors\", {}).n(\"S3Client\", \"PutBucketCorsCommand\").f(void 0, void 0).ser(se_PutBucketCorsCommand).de(de_PutBucketCorsCommand).build() {\n static {\n __name(this, \"PutBucketCorsCommand\");\n }\n};\n\n// src/commands/PutBucketEncryptionCommand.ts\n\n\n\n\nvar PutBucketEncryptionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketEncryption\", {}).n(\"S3Client\", \"PutBucketEncryptionCommand\").f(PutBucketEncryptionRequestFilterSensitiveLog, void 0).ser(se_PutBucketEncryptionCommand).de(de_PutBucketEncryptionCommand).build() {\n static {\n __name(this, \"PutBucketEncryptionCommand\");\n }\n};\n\n// src/commands/PutBucketIntelligentTieringConfigurationCommand.ts\n\n\n\nvar PutBucketIntelligentTieringConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketIntelligentTieringConfiguration\", {}).n(\"S3Client\", \"PutBucketIntelligentTieringConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketIntelligentTieringConfigurationCommand).de(de_PutBucketIntelligentTieringConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketIntelligentTieringConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketInventoryConfigurationCommand.ts\n\n\n\nvar PutBucketInventoryConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketInventoryConfiguration\", {}).n(\"S3Client\", \"PutBucketInventoryConfigurationCommand\").f(PutBucketInventoryConfigurationRequestFilterSensitiveLog, void 0).ser(se_PutBucketInventoryConfigurationCommand).de(de_PutBucketInventoryConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketInventoryConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketLifecycleConfigurationCommand.ts\n\nvar import_middleware_sdk_s354 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutBucketLifecycleConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s354.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutBucketLifecycleConfiguration\", {}).n(\"S3Client\", \"PutBucketLifecycleConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketLifecycleConfigurationCommand).de(de_PutBucketLifecycleConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketLifecycleConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketLoggingCommand.ts\n\n\n\n\nvar PutBucketLoggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketLogging\", {}).n(\"S3Client\", \"PutBucketLoggingCommand\").f(void 0, void 0).ser(se_PutBucketLoggingCommand).de(de_PutBucketLoggingCommand).build() {\n static {\n __name(this, \"PutBucketLoggingCommand\");\n }\n};\n\n// src/commands/PutBucketMetricsConfigurationCommand.ts\n\n\n\nvar PutBucketMetricsConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketMetricsConfiguration\", {}).n(\"S3Client\", \"PutBucketMetricsConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketMetricsConfigurationCommand).de(de_PutBucketMetricsConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketMetricsConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketNotificationConfigurationCommand.ts\n\n\n\nvar PutBucketNotificationConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"PutBucketNotificationConfiguration\", {}).n(\"S3Client\", \"PutBucketNotificationConfigurationCommand\").f(void 0, void 0).ser(se_PutBucketNotificationConfigurationCommand).de(de_PutBucketNotificationConfigurationCommand).build() {\n static {\n __name(this, \"PutBucketNotificationConfigurationCommand\");\n }\n};\n\n// src/commands/PutBucketOwnershipControlsCommand.ts\n\n\n\n\nvar PutBucketOwnershipControlsCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketOwnershipControls\", {}).n(\"S3Client\", \"PutBucketOwnershipControlsCommand\").f(void 0, void 0).ser(se_PutBucketOwnershipControlsCommand).de(de_PutBucketOwnershipControlsCommand).build() {\n static {\n __name(this, \"PutBucketOwnershipControlsCommand\");\n }\n};\n\n// src/commands/PutBucketPolicyCommand.ts\n\n\n\n\nvar PutBucketPolicyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketPolicy\", {}).n(\"S3Client\", \"PutBucketPolicyCommand\").f(void 0, void 0).ser(se_PutBucketPolicyCommand).de(de_PutBucketPolicyCommand).build() {\n static {\n __name(this, \"PutBucketPolicyCommand\");\n }\n};\n\n// src/commands/PutBucketReplicationCommand.ts\n\n\n\n\nvar PutBucketReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketReplication\", {}).n(\"S3Client\", \"PutBucketReplicationCommand\").f(void 0, void 0).ser(se_PutBucketReplicationCommand).de(de_PutBucketReplicationCommand).build() {\n static {\n __name(this, \"PutBucketReplicationCommand\");\n }\n};\n\n// src/commands/PutBucketRequestPaymentCommand.ts\n\n\n\n\nvar PutBucketRequestPaymentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketRequestPayment\", {}).n(\"S3Client\", \"PutBucketRequestPaymentCommand\").f(void 0, void 0).ser(se_PutBucketRequestPaymentCommand).de(de_PutBucketRequestPaymentCommand).build() {\n static {\n __name(this, \"PutBucketRequestPaymentCommand\");\n }\n};\n\n// src/commands/PutBucketTaggingCommand.ts\n\n\n\n\nvar PutBucketTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketTagging\", {}).n(\"S3Client\", \"PutBucketTaggingCommand\").f(void 0, void 0).ser(se_PutBucketTaggingCommand).de(de_PutBucketTaggingCommand).build() {\n static {\n __name(this, \"PutBucketTaggingCommand\");\n }\n};\n\n// src/commands/PutBucketVersioningCommand.ts\n\n\n\n\nvar PutBucketVersioningCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketVersioning\", {}).n(\"S3Client\", \"PutBucketVersioningCommand\").f(void 0, void 0).ser(se_PutBucketVersioningCommand).de(de_PutBucketVersioningCommand).build() {\n static {\n __name(this, \"PutBucketVersioningCommand\");\n }\n};\n\n// src/commands/PutBucketWebsiteCommand.ts\n\n\n\n\nvar PutBucketWebsiteCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutBucketWebsite\", {}).n(\"S3Client\", \"PutBucketWebsiteCommand\").f(void 0, void 0).ser(se_PutBucketWebsiteCommand).de(de_PutBucketWebsiteCommand).build() {\n static {\n __name(this, \"PutBucketWebsiteCommand\");\n }\n};\n\n// src/commands/PutObjectAclCommand.ts\n\nvar import_middleware_sdk_s355 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectAclCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s355.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectAcl\", {}).n(\"S3Client\", \"PutObjectAclCommand\").f(void 0, void 0).ser(se_PutObjectAclCommand).de(de_PutObjectAclCommand).build() {\n static {\n __name(this, \"PutObjectAclCommand\");\n }\n};\n\n// src/commands/PutObjectCommand.ts\n\nvar import_middleware_sdk_s356 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar PutObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n }),\n (0, import_middleware_sdk_s356.getCheckContentLengthHeaderPlugin)(config),\n (0, import_middleware_sdk_s356.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObject\", {}).n(\"S3Client\", \"PutObjectCommand\").f(PutObjectRequestFilterSensitiveLog, PutObjectOutputFilterSensitiveLog).ser(se_PutObjectCommand).de(de_PutObjectCommand).build() {\n static {\n __name(this, \"PutObjectCommand\");\n }\n};\n\n// src/commands/PutObjectLegalHoldCommand.ts\n\nvar import_middleware_sdk_s357 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectLegalHoldCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s357.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectLegalHold\", {}).n(\"S3Client\", \"PutObjectLegalHoldCommand\").f(void 0, void 0).ser(se_PutObjectLegalHoldCommand).de(de_PutObjectLegalHoldCommand).build() {\n static {\n __name(this, \"PutObjectLegalHoldCommand\");\n }\n};\n\n// src/commands/PutObjectLockConfigurationCommand.ts\n\nvar import_middleware_sdk_s358 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectLockConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s358.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectLockConfiguration\", {}).n(\"S3Client\", \"PutObjectLockConfigurationCommand\").f(void 0, void 0).ser(se_PutObjectLockConfigurationCommand).de(de_PutObjectLockConfigurationCommand).build() {\n static {\n __name(this, \"PutObjectLockConfigurationCommand\");\n }\n};\n\n// src/commands/PutObjectRetentionCommand.ts\n\nvar import_middleware_sdk_s359 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectRetentionCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s359.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectRetention\", {}).n(\"S3Client\", \"PutObjectRetentionCommand\").f(void 0, void 0).ser(se_PutObjectRetentionCommand).de(de_PutObjectRetentionCommand).build() {\n static {\n __name(this, \"PutObjectRetentionCommand\");\n }\n};\n\n// src/commands/PutObjectTaggingCommand.ts\n\nvar import_middleware_sdk_s360 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar PutObjectTaggingCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n }),\n (0, import_middleware_sdk_s360.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"PutObjectTagging\", {}).n(\"S3Client\", \"PutObjectTaggingCommand\").f(void 0, void 0).ser(se_PutObjectTaggingCommand).de(de_PutObjectTaggingCommand).build() {\n static {\n __name(this, \"PutObjectTaggingCommand\");\n }\n};\n\n// src/commands/PutPublicAccessBlockCommand.ts\n\n\n\n\nvar PutPublicAccessBlockCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"PutPublicAccessBlock\", {}).n(\"S3Client\", \"PutPublicAccessBlockCommand\").f(void 0, void 0).ser(se_PutPublicAccessBlockCommand).de(de_PutPublicAccessBlockCommand).build() {\n static {\n __name(this, \"PutPublicAccessBlockCommand\");\n }\n};\n\n// src/commands/RenameObjectCommand.ts\nvar import_middleware_sdk_s361 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar RenameObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s361.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"RenameObject\", {}).n(\"S3Client\", \"RenameObjectCommand\").f(void 0, void 0).ser(se_RenameObjectCommand).de(de_RenameObjectCommand).build() {\n static {\n __name(this, \"RenameObjectCommand\");\n }\n};\n\n// src/commands/RestoreObjectCommand.ts\n\nvar import_middleware_sdk_s362 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\nvar RestoreObjectCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n }),\n (0, import_middleware_sdk_s362.getThrow200ExceptionsPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"RestoreObject\", {}).n(\"S3Client\", \"RestoreObjectCommand\").f(RestoreObjectRequestFilterSensitiveLog, void 0).ser(se_RestoreObjectCommand).de(de_RestoreObjectCommand).build() {\n static {\n __name(this, \"RestoreObjectCommand\");\n }\n};\n\n// src/commands/SelectObjectContentCommand.ts\nvar import_middleware_sdk_s363 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar SelectObjectContentCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s363.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"SelectObjectContent\", {\n /**\n * @internal\n */\n eventStream: {\n output: true\n }\n}).n(\"S3Client\", \"SelectObjectContentCommand\").f(SelectObjectContentRequestFilterSensitiveLog, SelectObjectContentOutputFilterSensitiveLog).ser(se_SelectObjectContentCommand).de(de_SelectObjectContentCommand).build() {\n static {\n __name(this, \"SelectObjectContentCommand\");\n }\n};\n\n// src/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.ts\n\n\n\n\nvar UpdateBucketMetadataInventoryTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"UpdateBucketMetadataInventoryTableConfiguration\", {}).n(\"S3Client\", \"UpdateBucketMetadataInventoryTableConfigurationCommand\").f(void 0, void 0).ser(se_UpdateBucketMetadataInventoryTableConfigurationCommand).de(de_UpdateBucketMetadataInventoryTableConfigurationCommand).build() {\n static {\n __name(this, \"UpdateBucketMetadataInventoryTableConfigurationCommand\");\n }\n};\n\n// src/commands/UpdateBucketMetadataJournalTableConfigurationCommand.ts\n\n\n\n\nvar UpdateBucketMetadataJournalTableConfigurationCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseS3ExpressControlEndpoint: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: true\n })\n ];\n}).s(\"AmazonS3\", \"UpdateBucketMetadataJournalTableConfiguration\", {}).n(\"S3Client\", \"UpdateBucketMetadataJournalTableConfigurationCommand\").f(void 0, void 0).ser(se_UpdateBucketMetadataJournalTableConfigurationCommand).de(de_UpdateBucketMetadataJournalTableConfigurationCommand).build() {\n static {\n __name(this, \"UpdateBucketMetadataJournalTableConfigurationCommand\");\n }\n};\n\n// src/commands/UploadPartCommand.ts\n\nvar import_middleware_sdk_s364 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar UploadPartCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n Key: { type: \"contextParams\", name: \"Key\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_flexible_checksums.getFlexibleChecksumsPlugin)(config, {\n requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n requestChecksumRequired: false\n }),\n (0, import_middleware_sdk_s364.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"UploadPart\", {}).n(\"S3Client\", \"UploadPartCommand\").f(UploadPartRequestFilterSensitiveLog, UploadPartOutputFilterSensitiveLog).ser(se_UploadPartCommand).de(de_UploadPartCommand).build() {\n static {\n __name(this, \"UploadPartCommand\");\n }\n};\n\n// src/commands/UploadPartCopyCommand.ts\nvar import_middleware_sdk_s365 = require(\"@aws-sdk/middleware-sdk-s3\");\n\n\n\n\nvar UploadPartCopyCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()),\n (0, import_middleware_sdk_s365.getThrow200ExceptionsPlugin)(config),\n (0, import_middleware_ssec.getSsecPlugin)(config)\n ];\n}).s(\"AmazonS3\", \"UploadPartCopy\", {}).n(\"S3Client\", \"UploadPartCopyCommand\").f(UploadPartCopyRequestFilterSensitiveLog, UploadPartCopyOutputFilterSensitiveLog).ser(se_UploadPartCopyCommand).de(de_UploadPartCopyCommand).build() {\n static {\n __name(this, \"UploadPartCopyCommand\");\n }\n};\n\n// src/commands/WriteGetObjectResponseCommand.ts\n\n\n\nvar WriteGetObjectResponseCommand = class extends import_smithy_client.Command.classBuilder().ep({\n ...commonParams,\n UseObjectLambdaEndpoint: { type: \"staticContextParams\", value: true }\n}).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonS3\", \"WriteGetObjectResponse\", {}).n(\"S3Client\", \"WriteGetObjectResponseCommand\").f(WriteGetObjectResponseRequestFilterSensitiveLog, void 0).ser(se_WriteGetObjectResponseCommand).de(de_WriteGetObjectResponseCommand).build() {\n static {\n __name(this, \"WriteGetObjectResponseCommand\");\n }\n};\n\n// src/S3.ts\nvar commands = {\n AbortMultipartUploadCommand,\n CompleteMultipartUploadCommand,\n CopyObjectCommand,\n CreateBucketCommand,\n CreateBucketMetadataConfigurationCommand,\n CreateBucketMetadataTableConfigurationCommand,\n CreateMultipartUploadCommand,\n CreateSessionCommand,\n DeleteBucketCommand,\n DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand,\n DeleteBucketMetadataConfigurationCommand,\n DeleteBucketMetadataTableConfigurationCommand,\n DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand,\n DeleteObjectCommand,\n DeleteObjectsCommand,\n DeleteObjectTaggingCommand,\n DeletePublicAccessBlockCommand,\n GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand,\n GetBucketEncryptionCommand,\n GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand,\n GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand,\n GetBucketLoggingCommand,\n GetBucketMetadataConfigurationCommand,\n GetBucketMetadataTableConfigurationCommand,\n GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand,\n GetBucketVersioningCommand,\n GetBucketWebsiteCommand,\n GetObjectCommand,\n GetObjectAclCommand,\n GetObjectAttributesCommand,\n GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand,\n GetObjectRetentionCommand,\n GetObjectTaggingCommand,\n GetObjectTorrentCommand,\n GetPublicAccessBlockCommand,\n HeadBucketCommand,\n HeadObjectCommand,\n ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand,\n ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand,\n ListDirectoryBucketsCommand,\n ListMultipartUploadsCommand,\n ListObjectsCommand,\n ListObjectsV2Command,\n ListObjectVersionsCommand,\n ListPartsCommand,\n PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand,\n PutBucketEncryptionCommand,\n PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand,\n PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand,\n PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand,\n PutBucketVersioningCommand,\n PutBucketWebsiteCommand,\n PutObjectCommand,\n PutObjectAclCommand,\n PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand,\n PutObjectRetentionCommand,\n PutObjectTaggingCommand,\n PutPublicAccessBlockCommand,\n RenameObjectCommand,\n RestoreObjectCommand,\n SelectObjectContentCommand,\n UpdateBucketMetadataInventoryTableConfigurationCommand,\n UpdateBucketMetadataJournalTableConfigurationCommand,\n UploadPartCommand,\n UploadPartCopyCommand,\n WriteGetObjectResponseCommand\n};\nvar S3 = class extends S3Client {\n static {\n __name(this, \"S3\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, S3);\n\n// src/pagination/ListBucketsPaginator.ts\nvar import_core4 = require(\"@smithy/core\");\nvar paginateListBuckets = (0, import_core4.createPaginator)(S3Client, ListBucketsCommand, \"ContinuationToken\", \"ContinuationToken\", \"MaxBuckets\");\n\n// src/pagination/ListDirectoryBucketsPaginator.ts\nvar import_core5 = require(\"@smithy/core\");\nvar paginateListDirectoryBuckets = (0, import_core5.createPaginator)(S3Client, ListDirectoryBucketsCommand, \"ContinuationToken\", \"ContinuationToken\", \"MaxDirectoryBuckets\");\n\n// src/pagination/ListObjectsV2Paginator.ts\nvar import_core6 = require(\"@smithy/core\");\nvar paginateListObjectsV2 = (0, import_core6.createPaginator)(S3Client, ListObjectsV2Command, \"ContinuationToken\", \"NextContinuationToken\", \"MaxKeys\");\n\n// src/pagination/ListPartsPaginator.ts\nvar import_core7 = require(\"@smithy/core\");\nvar paginateListParts = (0, import_core7.createPaginator)(S3Client, ListPartsCommand, \"PartNumberMarker\", \"NextPartNumberMarker\", \"MaxParts\");\n\n// src/waiters/waitForBucketExists.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForBucketExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForBucketExists\");\nvar waitUntilBucketExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilBucketExists\");\n\n// src/waiters/waitForBucketNotExists.ts\n\nvar checkState2 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForBucketNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n}, \"waitForBucketNotExists\");\nvar waitUntilBucketNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState2);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilBucketNotExists\");\n\n// src/waiters/waitForObjectExists.ts\n\nvar checkState3 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForObjectExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n}, \"waitForObjectExists\");\nvar waitUntilObjectExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState3);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilObjectExists\");\n\n// src/waiters/waitForObjectNotExists.ts\n\nvar checkState4 = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForObjectNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n}, \"waitForObjectNotExists\");\nvar waitUntilObjectNotExists = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState4);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilObjectNotExists\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n S3ServiceException,\n __Client,\n S3Client,\n S3,\n $Command,\n AbortMultipartUploadCommand,\n CompleteMultipartUploadCommand,\n CopyObjectCommand,\n CreateBucketCommand,\n CreateBucketMetadataConfigurationCommand,\n CreateBucketMetadataTableConfigurationCommand,\n CreateMultipartUploadCommand,\n CreateSessionCommand,\n DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCommand,\n DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand,\n DeleteBucketMetadataConfigurationCommand,\n DeleteBucketMetadataTableConfigurationCommand,\n DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand,\n DeleteObjectCommand,\n DeleteObjectTaggingCommand,\n DeleteObjectsCommand,\n DeletePublicAccessBlockCommand,\n GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand,\n GetBucketEncryptionCommand,\n GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand,\n GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand,\n GetBucketLoggingCommand,\n GetBucketMetadataConfigurationCommand,\n GetBucketMetadataTableConfigurationCommand,\n GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand,\n GetBucketVersioningCommand,\n GetBucketWebsiteCommand,\n GetObjectAclCommand,\n GetObjectAttributesCommand,\n GetObjectCommand,\n GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand,\n GetObjectRetentionCommand,\n GetObjectTaggingCommand,\n GetObjectTorrentCommand,\n GetPublicAccessBlockCommand,\n HeadBucketCommand,\n HeadObjectCommand,\n ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand,\n ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand,\n ListDirectoryBucketsCommand,\n ListMultipartUploadsCommand,\n ListObjectVersionsCommand,\n ListObjectsCommand,\n ListObjectsV2Command,\n ListPartsCommand,\n PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand,\n PutBucketEncryptionCommand,\n PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand,\n PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand,\n PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand,\n PutBucketVersioningCommand,\n PutBucketWebsiteCommand,\n PutObjectAclCommand,\n PutObjectCommand,\n PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand,\n PutObjectRetentionCommand,\n PutObjectTaggingCommand,\n PutPublicAccessBlockCommand,\n RenameObjectCommand,\n RestoreObjectCommand,\n SelectObjectContentCommand,\n UpdateBucketMetadataInventoryTableConfigurationCommand,\n UpdateBucketMetadataJournalTableConfigurationCommand,\n UploadPartCommand,\n UploadPartCopyCommand,\n WriteGetObjectResponseCommand,\n paginateListBuckets,\n paginateListDirectoryBuckets,\n paginateListObjectsV2,\n paginateListParts,\n waitForBucketExists,\n waitUntilBucketExists,\n waitForBucketNotExists,\n waitUntilBucketNotExists,\n waitForObjectExists,\n waitUntilObjectExists,\n waitForObjectNotExists,\n waitUntilObjectNotExists,\n RequestCharged,\n RequestPayer,\n NoSuchUpload,\n BucketAccelerateStatus,\n Type,\n Permission,\n OwnerOverride,\n ChecksumType,\n ServerSideEncryption,\n ObjectCannedACL,\n ChecksumAlgorithm,\n MetadataDirective,\n ObjectLockLegalHoldStatus,\n ObjectLockMode,\n StorageClass,\n TaggingDirective,\n ObjectNotInActiveTierError,\n BucketAlreadyExists,\n BucketAlreadyOwnedByYou,\n BucketCannedACL,\n DataRedundancy,\n BucketType,\n LocationType,\n BucketLocationConstraint,\n ObjectOwnership,\n InventoryConfigurationState,\n TableSseAlgorithm,\n ExpirationState,\n SessionMode,\n NoSuchBucket,\n AnalyticsFilter,\n AnalyticsS3ExportFileFormat,\n StorageClassAnalysisSchemaVersion,\n IntelligentTieringStatus,\n IntelligentTieringAccessTier,\n InventoryFormat,\n InventoryIncludedObjectVersions,\n InventoryOptionalField,\n InventoryFrequency,\n TransitionStorageClass,\n ExpirationStatus,\n TransitionDefaultMinimumObjectSize,\n BucketLogsPermission,\n PartitionDateSource,\n S3TablesBucketType,\n MetricsFilter,\n Event,\n FilterRuleName,\n DeleteMarkerReplicationStatus,\n MetricsStatus,\n ReplicationTimeStatus,\n ExistingObjectReplicationStatus,\n ReplicaModificationsStatus,\n SseKmsEncryptedObjectsStatus,\n ReplicationRuleStatus,\n Payer,\n MFADeleteStatus,\n BucketVersioningStatus,\n Protocol,\n ReplicationStatus,\n ChecksumMode,\n InvalidObjectState,\n NoSuchKey,\n ObjectAttributes,\n ObjectLockEnabled,\n ObjectLockRetentionMode,\n NotFound,\n ArchiveStatus,\n EncodingType,\n CompleteMultipartUploadOutputFilterSensitiveLog,\n CompleteMultipartUploadRequestFilterSensitiveLog,\n CopyObjectOutputFilterSensitiveLog,\n CopyObjectRequestFilterSensitiveLog,\n CreateMultipartUploadOutputFilterSensitiveLog,\n CreateMultipartUploadRequestFilterSensitiveLog,\n SessionCredentialsFilterSensitiveLog,\n CreateSessionOutputFilterSensitiveLog,\n CreateSessionRequestFilterSensitiveLog,\n ServerSideEncryptionByDefaultFilterSensitiveLog,\n ServerSideEncryptionRuleFilterSensitiveLog,\n ServerSideEncryptionConfigurationFilterSensitiveLog,\n GetBucketEncryptionOutputFilterSensitiveLog,\n SSEKMSFilterSensitiveLog,\n InventoryEncryptionFilterSensitiveLog,\n InventoryS3BucketDestinationFilterSensitiveLog,\n InventoryDestinationFilterSensitiveLog,\n InventoryConfigurationFilterSensitiveLog,\n GetBucketInventoryConfigurationOutputFilterSensitiveLog,\n GetObjectOutputFilterSensitiveLog,\n GetObjectRequestFilterSensitiveLog,\n GetObjectAttributesRequestFilterSensitiveLog,\n GetObjectTorrentOutputFilterSensitiveLog,\n HeadObjectOutputFilterSensitiveLog,\n HeadObjectRequestFilterSensitiveLog,\n ListBucketInventoryConfigurationsOutputFilterSensitiveLog,\n ObjectStorageClass,\n OptionalObjectAttributes,\n ObjectVersionStorageClass,\n MFADelete,\n EncryptionTypeMismatch,\n InvalidRequest,\n InvalidWriteOffset,\n TooManyParts,\n IdempotencyParameterMismatch,\n ObjectAlreadyInActiveTierError,\n Tier,\n ExpressionType,\n CompressionType,\n FileHeaderInfo,\n JSONType,\n QuoteFields,\n RestoreRequestType,\n SelectObjectContentEventStream,\n ListPartsRequestFilterSensitiveLog,\n PutBucketEncryptionRequestFilterSensitiveLog,\n PutBucketInventoryConfigurationRequestFilterSensitiveLog,\n PutObjectOutputFilterSensitiveLog,\n PutObjectRequestFilterSensitiveLog,\n EncryptionFilterSensitiveLog,\n S3LocationFilterSensitiveLog,\n OutputLocationFilterSensitiveLog,\n RestoreRequestFilterSensitiveLog,\n RestoreObjectRequestFilterSensitiveLog,\n SelectObjectContentEventStreamFilterSensitiveLog,\n SelectObjectContentOutputFilterSensitiveLog,\n SelectObjectContentRequestFilterSensitiveLog,\n UploadPartOutputFilterSensitiveLog,\n UploadPartRequestFilterSensitiveLog,\n UploadPartCopyOutputFilterSensitiveLog,\n UploadPartCopyRequestFilterSensitiveLog,\n WriteGetObjectResponseRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst middleware_bucket_endpoint_1 = require(\"@aws-sdk/middleware-bucket-endpoint\");\nconst middleware_flexible_checksums_1 = require(\"@aws-sdk/middleware-flexible-checksums\");\nconst middleware_sdk_s3_1 = require(\"@aws-sdk/middleware-sdk-s3\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst eventstream_serde_node_1 = require(\"@smithy/eventstream-serde-node\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst hash_stream_node_1 = require(\"@smithy/hash-stream-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n disableS3ExpressSessionAuth: config?.disableS3ExpressSessionAuth ?? (0, node_config_provider_1.loadConfig)(middleware_sdk_s3_1.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS, loaderConfig),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventstream_serde_node_1.eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n md5: config?.md5 ?? hash_node_1.Hash.bind(null, \"md5\"),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestChecksumCalculation: config?.requestChecksumCalculation ??\n (0, node_config_provider_1.loadConfig)(middleware_flexible_checksums_1.NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS, loaderConfig),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n responseChecksumValidation: config?.responseChecksumValidation ??\n (0, node_config_provider_1.loadConfig)(middleware_flexible_checksums_1.NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS, loaderConfig),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha1: config?.sha1 ?? hash_node_1.Hash.bind(null, \"sha1\"),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n sigv4aSigningRegionSet: config?.sigv4aSigningRegionSet ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_SIGV4A_CONFIG_OPTIONS, loaderConfig),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n streamHasher: config?.streamHasher ?? hash_stream_node_1.readableStreamHasher,\n useArnRegion: config?.useArnRegion ?? (0, node_config_provider_1.loadConfig)(middleware_bucket_endpoint_1.NODE_USE_ARN_REGION_CONFIG_OPTIONS, loaderConfig),\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst signature_v4_multi_region_1 = require(\"@aws-sdk/signature-v4-multi-region\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2006-03-01\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? util_stream_1.getAwsChunkedEncodingStream,\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultS3HttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"aws.auth#sigv4a\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4a\"),\n signer: new core_1.AwsSdkSigV4ASigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n sdkStreamMixin: config?.sdkStreamMixin ?? util_stream_1.sdkStreamMixin,\n serviceId: config?.serviceId ?? \"S3\",\n signerConstructor: config?.signerConstructor ?? signature_v4_multi_region_1.SignatureV4MultiRegion,\n signingEscapePath: config?.signingEscapePath ?? false,\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n useArnRegion: config?.useArnRegion ?? undefined,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSecretsManagerHttpAuthSchemeProvider = exports.defaultSecretsManagerHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSecretsManagerHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSecretsManagerHttpAuthSchemeParametersProvider = defaultSecretsManagerHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"secretsmanager\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultSecretsManagerHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSecretsManagerHttpAuthSchemeProvider = defaultSecretsManagerHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst y = \"required\", z = \"fn\", A = \"argv\", B = \"ref\", C = \"properties\", D = \"headers\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"stringEquals\", i = { [y]: false, \"type\": \"String\" }, j = { [y]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [B]: \"Endpoint\" }, l = { [z]: c, [A]: [{ [B]: \"UseFIPS\" }, true] }, m = { [z]: c, [A]: [{ [B]: \"UseDualStack\" }, true] }, n = {}, o = { [z]: \"getAttr\", [A]: [{ [B]: g }, \"supportsFIPS\"] }, p = { [z]: c, [A]: [true, { [z]: \"getAttr\", [A]: [{ [B]: g }, \"supportsDualStack\"] }] }, q = { [z]: \"getAttr\", [A]: [{ [B]: g }, \"name\"] }, r = { \"url\": \"https://secretsmanager-fips.{Region}.amazonaws.com\", [C]: {}, [D]: {} }, s = { \"url\": \"https://secretsmanager.{Region}.amazonaws.com\", [C]: {}, [D]: {} }, t = [l], u = [m], v = [{ [B]: \"Region\" }], w = [{ [z]: h, [A]: [\"aws\", q] }], x = [{ [z]: h, [A]: [\"aws-us-gov\", q] }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [z]: b, [A]: [k] }], rules: [{ conditions: t, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: u, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, [C]: n, [D]: n }, type: e }], type: f }, { conditions: [{ [z]: b, [A]: v }], rules: [{ conditions: [{ [z]: \"aws.partition\", [A]: v, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [z]: c, [A]: [a, o] }, p], rules: [{ conditions: w, endpoint: r, type: e }, { conditions: x, endpoint: r, type: e }, { endpoint: { url: \"https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: t, rules: [{ conditions: [{ [z]: c, [A]: [o, a] }], rules: [{ endpoint: { url: \"https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: u, rules: [{ conditions: [p], rules: [{ conditions: w, endpoint: s, type: e }, { conditions: [{ [z]: h, [A]: [\"aws-cn\", q] }], endpoint: { url: \"https://secretsmanager.{Region}.amazonaws.com.cn\", [C]: n, [D]: n }, type: e }, { conditions: x, endpoint: s, type: e }, { endpoint: { url: \"https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}\", [C]: n, [D]: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n BatchGetSecretValueCommand: () => BatchGetSecretValueCommand,\n BatchGetSecretValueResponseFilterSensitiveLog: () => BatchGetSecretValueResponseFilterSensitiveLog,\n CancelRotateSecretCommand: () => CancelRotateSecretCommand,\n CreateSecretCommand: () => CreateSecretCommand,\n CreateSecretRequestFilterSensitiveLog: () => CreateSecretRequestFilterSensitiveLog,\n DecryptionFailure: () => DecryptionFailure,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeleteSecretCommand: () => DeleteSecretCommand,\n DescribeSecretCommand: () => DescribeSecretCommand,\n EncryptionFailure: () => EncryptionFailure,\n FilterNameStringType: () => FilterNameStringType,\n GetRandomPasswordCommand: () => GetRandomPasswordCommand,\n GetRandomPasswordResponseFilterSensitiveLog: () => GetRandomPasswordResponseFilterSensitiveLog,\n GetResourcePolicyCommand: () => GetResourcePolicyCommand,\n GetSecretValueCommand: () => GetSecretValueCommand,\n GetSecretValueResponseFilterSensitiveLog: () => GetSecretValueResponseFilterSensitiveLog,\n InternalServiceError: () => InternalServiceError,\n InvalidNextTokenException: () => InvalidNextTokenException,\n InvalidParameterException: () => InvalidParameterException,\n InvalidRequestException: () => InvalidRequestException,\n LimitExceededException: () => LimitExceededException,\n ListSecretVersionIdsCommand: () => ListSecretVersionIdsCommand,\n ListSecretsCommand: () => ListSecretsCommand,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PreconditionNotMetException: () => PreconditionNotMetException,\n PublicPolicyException: () => PublicPolicyException,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n PutSecretValueCommand: () => PutSecretValueCommand,\n PutSecretValueRequestFilterSensitiveLog: () => PutSecretValueRequestFilterSensitiveLog,\n RemoveRegionsFromReplicationCommand: () => RemoveRegionsFromReplicationCommand,\n ReplicateSecretToRegionsCommand: () => ReplicateSecretToRegionsCommand,\n ResourceExistsException: () => ResourceExistsException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RestoreSecretCommand: () => RestoreSecretCommand,\n RotateSecretCommand: () => RotateSecretCommand,\n SecretValueEntryFilterSensitiveLog: () => SecretValueEntryFilterSensitiveLog,\n SecretsManager: () => SecretsManager,\n SecretsManagerClient: () => SecretsManagerClient,\n SecretsManagerServiceException: () => SecretsManagerServiceException,\n SortOrderType: () => SortOrderType,\n StatusType: () => StatusType,\n StopReplicationToReplicaCommand: () => StopReplicationToReplicaCommand,\n TagResourceCommand: () => TagResourceCommand,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateSecretCommand: () => UpdateSecretCommand,\n UpdateSecretRequestFilterSensitiveLog: () => UpdateSecretRequestFilterSensitiveLog,\n UpdateSecretVersionStageCommand: () => UpdateSecretVersionStageCommand,\n ValidateResourcePolicyCommand: () => ValidateResourcePolicyCommand,\n __Client: () => import_smithy_client.Client,\n paginateBatchGetSecretValue: () => paginateBatchGetSecretValue,\n paginateListSecretVersionIds: () => paginateListSecretVersionIds,\n paginateListSecrets: () => paginateListSecrets\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SecretsManagerClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"secretsmanager\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SecretsManagerClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SecretsManagerClient.ts\nvar SecretsManagerClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SecretsManagerClient\");\n }\n /**\n * The resolved configuration of SecretsManagerClient class. This is resolved and normalized from the {@link SecretsManagerClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSecretsManagerHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SecretsManager.ts\n\n\n// src/commands/BatchGetSecretValueCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SecretsManagerServiceException.ts\n\nvar SecretsManagerServiceException = class _SecretsManagerServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SecretsManagerServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SecretsManagerServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar FilterNameStringType = {\n all: \"all\",\n description: \"description\",\n name: \"name\",\n owning_service: \"owning-service\",\n primary_region: \"primary-region\",\n tag_key: \"tag-key\",\n tag_value: \"tag-value\"\n};\nvar DecryptionFailure = class _DecryptionFailure extends SecretsManagerServiceException {\n static {\n __name(this, \"DecryptionFailure\");\n }\n name = \"DecryptionFailure\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DecryptionFailure\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DecryptionFailure.prototype);\n this.Message = opts.Message;\n }\n};\nvar InternalServiceError = class _InternalServiceError extends SecretsManagerServiceException {\n static {\n __name(this, \"InternalServiceError\");\n }\n name = \"InternalServiceError\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServiceError\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServiceError.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidNextTokenException = class _InvalidNextTokenException extends SecretsManagerServiceException {\n static {\n __name(this, \"InvalidNextTokenException\");\n }\n name = \"InvalidNextTokenException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidNextTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidNextTokenException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidParameterException = class _InvalidParameterException extends SecretsManagerServiceException {\n static {\n __name(this, \"InvalidParameterException\");\n }\n name = \"InvalidParameterException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameterException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SecretsManagerServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SecretsManagerServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar StatusType = {\n Failed: \"Failed\",\n InProgress: \"InProgress\",\n InSync: \"InSync\"\n};\nvar EncryptionFailure = class _EncryptionFailure extends SecretsManagerServiceException {\n static {\n __name(this, \"EncryptionFailure\");\n }\n name = \"EncryptionFailure\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"EncryptionFailure\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _EncryptionFailure.prototype);\n this.Message = opts.Message;\n }\n};\nvar LimitExceededException = class _LimitExceededException extends SecretsManagerServiceException {\n static {\n __name(this, \"LimitExceededException\");\n }\n name = \"LimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _LimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends SecretsManagerServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n this.Message = opts.Message;\n }\n};\nvar PreconditionNotMetException = class _PreconditionNotMetException extends SecretsManagerServiceException {\n static {\n __name(this, \"PreconditionNotMetException\");\n }\n name = \"PreconditionNotMetException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PreconditionNotMetException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PreconditionNotMetException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceExistsException = class _ResourceExistsException extends SecretsManagerServiceException {\n static {\n __name(this, \"ResourceExistsException\");\n }\n name = \"ResourceExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SortOrderType = {\n asc: \"asc\",\n desc: \"desc\"\n};\nvar PublicPolicyException = class _PublicPolicyException extends SecretsManagerServiceException {\n static {\n __name(this, \"PublicPolicyException\");\n }\n name = \"PublicPolicyException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PublicPolicyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PublicPolicyException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SecretValueEntryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"SecretValueEntryFilterSensitiveLog\");\nvar BatchGetSecretValueResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretValues && { SecretValues: obj.SecretValues.map((item) => SecretValueEntryFilterSensitiveLog(item)) }\n}), \"BatchGetSecretValueResponseFilterSensitiveLog\");\nvar CreateSecretRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateSecretRequestFilterSensitiveLog\");\nvar GetRandomPasswordResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.RandomPassword && { RandomPassword: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRandomPasswordResponseFilterSensitiveLog\");\nvar GetSecretValueResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"GetSecretValueResponseFilterSensitiveLog\");\nvar PutSecretValueRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING },\n ...obj.RotationToken && { RotationToken: import_smithy_client.SENSITIVE_STRING }\n}), \"PutSecretValueRequestFilterSensitiveLog\");\nvar UpdateSecretRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretBinary && { SecretBinary: import_smithy_client.SENSITIVE_STRING },\n ...obj.SecretString && { SecretString: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateSecretRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\nvar se_BatchGetSecretValueCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"BatchGetSecretValue\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_BatchGetSecretValueCommand\");\nvar se_CancelRotateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelRotateSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelRotateSecretCommand\");\nvar se_CreateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateSecret\");\n let body;\n body = JSON.stringify(se_CreateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateSecretCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeleteSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteSecretCommand\");\nvar se_DescribeSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSecretCommand\");\nvar se_GetRandomPasswordCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetRandomPassword\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetRandomPasswordCommand\");\nvar se_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePolicyCommand\");\nvar se_GetSecretValueCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetSecretValue\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSecretValueCommand\");\nvar se_ListSecretsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSecrets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSecretsCommand\");\nvar se_ListSecretVersionIdsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListSecretVersionIds\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListSecretVersionIdsCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_PutSecretValueCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutSecretValue\");\n let body;\n body = JSON.stringify(se_PutSecretValueRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutSecretValueCommand\");\nvar se_RemoveRegionsFromReplicationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RemoveRegionsFromReplication\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveRegionsFromReplicationCommand\");\nvar se_ReplicateSecretToRegionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ReplicateSecretToRegions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ReplicateSecretToRegionsCommand\");\nvar se_RestoreSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RestoreSecret\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RestoreSecretCommand\");\nvar se_RotateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RotateSecret\");\n let body;\n body = JSON.stringify(se_RotateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RotateSecretCommand\");\nvar se_StopReplicationToReplicaCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopReplicationToReplica\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopReplicationToReplicaCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateSecretCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateSecret\");\n let body;\n body = JSON.stringify(se_UpdateSecretRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecretCommand\");\nvar se_UpdateSecretVersionStageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateSecretVersionStage\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateSecretVersionStageCommand\");\nvar se_ValidateResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ValidateResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ValidateResourcePolicyCommand\");\nvar de_BatchGetSecretValueCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_BatchGetSecretValueResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_BatchGetSecretValueCommand\");\nvar de_CancelRotateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelRotateSecretCommand\");\nvar de_CreateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateSecretCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeleteSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DeleteSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteSecretCommand\");\nvar de_DescribeSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSecretResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSecretCommand\");\nvar de_GetRandomPasswordCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetRandomPasswordCommand\");\nvar de_GetResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePolicyCommand\");\nvar de_GetSecretValueCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetSecretValueResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSecretValueCommand\");\nvar de_ListSecretsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListSecretsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSecretsCommand\");\nvar de_ListSecretVersionIdsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListSecretVersionIdsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListSecretVersionIdsCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_PutSecretValueCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutSecretValueCommand\");\nvar de_RemoveRegionsFromReplicationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RemoveRegionsFromReplicationResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveRegionsFromReplicationCommand\");\nvar de_ReplicateSecretToRegionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ReplicateSecretToRegionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ReplicateSecretToRegionsCommand\");\nvar de_RestoreSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RestoreSecretCommand\");\nvar de_RotateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RotateSecretCommand\");\nvar de_StopReplicationToReplicaCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopReplicationToReplicaCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n await (0, import_smithy_client.collectBody)(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output)\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateSecretCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecretCommand\");\nvar de_UpdateSecretVersionStageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateSecretVersionStageCommand\");\nvar de_ValidateResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ValidateResourcePolicyCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"DecryptionFailure\":\n case \"com.amazonaws.secretsmanager#DecryptionFailure\":\n throw await de_DecryptionFailureRes(parsedOutput, context);\n case \"InternalServiceError\":\n case \"com.amazonaws.secretsmanager#InternalServiceError\":\n throw await de_InternalServiceErrorRes(parsedOutput, context);\n case \"InvalidNextTokenException\":\n case \"com.amazonaws.secretsmanager#InvalidNextTokenException\":\n throw await de_InvalidNextTokenExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.secretsmanager#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.secretsmanager#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.secretsmanager#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"EncryptionFailure\":\n case \"com.amazonaws.secretsmanager#EncryptionFailure\":\n throw await de_EncryptionFailureRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.secretsmanager#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocumentException\":\n case \"com.amazonaws.secretsmanager#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.secretsmanager#PreconditionNotMetException\":\n throw await de_PreconditionNotMetExceptionRes(parsedOutput, context);\n case \"ResourceExistsException\":\n case \"com.amazonaws.secretsmanager#ResourceExistsException\":\n throw await de_ResourceExistsExceptionRes(parsedOutput, context);\n case \"PublicPolicyException\":\n case \"com.amazonaws.secretsmanager#PublicPolicyException\":\n throw await de_PublicPolicyExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_DecryptionFailureRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DecryptionFailure({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DecryptionFailureRes\");\nvar de_EncryptionFailureRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new EncryptionFailure({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_EncryptionFailureRes\");\nvar de_InternalServiceErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InternalServiceError({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InternalServiceErrorRes\");\nvar de_InvalidNextTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidNextTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNextTokenExceptionRes\");\nvar de_InvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParameterExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_LimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_LimitExceededExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PreconditionNotMetExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PreconditionNotMetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PreconditionNotMetExceptionRes\");\nvar de_PublicPolicyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PublicPolicyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PublicPolicyExceptionRes\");\nvar de_ResourceExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceExistsExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar se_CreateSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AddReplicaRegions: import_smithy_client._json,\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n ForceOverwriteReplicaSecret: [],\n KmsKeyId: [],\n Name: [],\n SecretBinary: context.base64Encoder,\n SecretString: [],\n Tags: import_smithy_client._json\n });\n}, \"se_CreateSecretRequest\");\nvar se_PutSecretValueRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n RotationToken: [],\n SecretBinary: context.base64Encoder,\n SecretId: [],\n SecretString: [],\n VersionStages: import_smithy_client._json\n });\n}, \"se_PutSecretValueRequest\");\nvar se_RotateSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n RotateImmediately: [],\n RotationLambdaARN: [],\n RotationRules: import_smithy_client._json,\n SecretId: []\n });\n}, \"se_RotateSecretRequest\");\nvar se_UpdateSecretRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientRequestToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n KmsKeyId: [],\n SecretBinary: context.base64Encoder,\n SecretId: [],\n SecretString: []\n });\n}, \"se_UpdateSecretRequest\");\nvar de_BatchGetSecretValueResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Errors: import_smithy_client._json,\n NextToken: import_smithy_client.expectString,\n SecretValues: /* @__PURE__ */ __name((_) => de_SecretValuesType(_, context), \"SecretValues\")\n });\n}, \"de_BatchGetSecretValueResponse\");\nvar de_CreateSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\"),\n VersionId: import_smithy_client.expectString\n });\n}, \"de_CreateSecretResponse\");\nvar de_DeleteSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n DeletionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionDate\"),\n Name: import_smithy_client.expectString\n });\n}, \"de_DeleteSecretResponse\");\nvar de_DescribeSecretResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DeletedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletedDate\"),\n Description: import_smithy_client.expectString,\n KmsKeyId: import_smithy_client.expectString,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n LastChangedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastChangedDate\"),\n LastRotatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastRotatedDate\"),\n Name: import_smithy_client.expectString,\n NextRotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"NextRotationDate\"),\n OwningService: import_smithy_client.expectString,\n PrimaryRegion: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\"),\n RotationEnabled: import_smithy_client.expectBoolean,\n RotationLambdaARN: import_smithy_client.expectString,\n RotationRules: import_smithy_client._json,\n Tags: import_smithy_client._json,\n VersionIdsToStages: import_smithy_client._json\n });\n}, \"de_DescribeSecretResponse\");\nvar de_GetSecretValueResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Name: import_smithy_client.expectString,\n SecretBinary: context.base64Decoder,\n SecretString: import_smithy_client.expectString,\n VersionId: import_smithy_client.expectString,\n VersionStages: import_smithy_client._json\n });\n}, \"de_GetSecretValueResponse\");\nvar de_ListSecretsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n SecretList: /* @__PURE__ */ __name((_) => de_SecretListType(_, context), \"SecretList\")\n });\n}, \"de_ListSecretsResponse\");\nvar de_ListSecretVersionIdsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n NextToken: import_smithy_client.expectString,\n Versions: /* @__PURE__ */ __name((_) => de_SecretVersionsListType(_, context), \"Versions\")\n });\n}, \"de_ListSecretVersionIdsResponse\");\nvar de_RemoveRegionsFromReplicationResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\")\n });\n}, \"de_RemoveRegionsFromReplicationResponse\");\nvar de_ReplicateSecretToRegionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n ReplicationStatus: /* @__PURE__ */ __name((_) => de_ReplicationStatusListType(_, context), \"ReplicationStatus\")\n });\n}, \"de_ReplicateSecretToRegionsResponse\");\nvar de_ReplicationStatusListType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ReplicationStatusType(entry, context);\n });\n return retVal;\n}, \"de_ReplicationStatusListType\");\nvar de_ReplicationStatusType = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n KmsKeyId: import_smithy_client.expectString,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n Region: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusMessage: import_smithy_client.expectString\n });\n}, \"de_ReplicationStatusType\");\nvar de_SecretListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DeletedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletedDate\"),\n Description: import_smithy_client.expectString,\n KmsKeyId: import_smithy_client.expectString,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n LastChangedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastChangedDate\"),\n LastRotatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastRotatedDate\"),\n Name: import_smithy_client.expectString,\n NextRotationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"NextRotationDate\"),\n OwningService: import_smithy_client.expectString,\n PrimaryRegion: import_smithy_client.expectString,\n RotationEnabled: import_smithy_client.expectBoolean,\n RotationLambdaARN: import_smithy_client.expectString,\n RotationRules: import_smithy_client._json,\n SecretVersionsToStages: import_smithy_client._json,\n Tags: import_smithy_client._json\n });\n}, \"de_SecretListEntry\");\nvar de_SecretListType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SecretListEntry(entry, context);\n });\n return retVal;\n}, \"de_SecretListType\");\nvar de_SecretValueEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Name: import_smithy_client.expectString,\n SecretBinary: context.base64Decoder,\n SecretString: import_smithy_client.expectString,\n VersionId: import_smithy_client.expectString,\n VersionStages: import_smithy_client._json\n });\n}, \"de_SecretValueEntry\");\nvar de_SecretValuesType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SecretValueEntry(entry, context);\n });\n return retVal;\n}, \"de_SecretValuesType\");\nvar de_SecretVersionsListEntry = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n KmsKeyIds: import_smithy_client._json,\n LastAccessedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAccessedDate\"),\n VersionId: import_smithy_client.expectString,\n VersionStages: import_smithy_client._json\n });\n}, \"de_SecretVersionsListEntry\");\nvar de_SecretVersionsListType = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_SecretVersionsListEntry(entry, context);\n });\n return retVal;\n}, \"de_SecretVersionsListType\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SecretsManagerServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `secretsmanager.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/BatchGetSecretValueCommand.ts\nvar BatchGetSecretValueCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"BatchGetSecretValue\", {}).n(\"SecretsManagerClient\", \"BatchGetSecretValueCommand\").f(void 0, BatchGetSecretValueResponseFilterSensitiveLog).ser(se_BatchGetSecretValueCommand).de(de_BatchGetSecretValueCommand).build() {\n static {\n __name(this, \"BatchGetSecretValueCommand\");\n }\n};\n\n// src/commands/CancelRotateSecretCommand.ts\n\n\n\nvar CancelRotateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"CancelRotateSecret\", {}).n(\"SecretsManagerClient\", \"CancelRotateSecretCommand\").f(void 0, void 0).ser(se_CancelRotateSecretCommand).de(de_CancelRotateSecretCommand).build() {\n static {\n __name(this, \"CancelRotateSecretCommand\");\n }\n};\n\n// src/commands/CreateSecretCommand.ts\n\n\n\nvar CreateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"CreateSecret\", {}).n(\"SecretsManagerClient\", \"CreateSecretCommand\").f(CreateSecretRequestFilterSensitiveLog, void 0).ser(se_CreateSecretCommand).de(de_CreateSecretCommand).build() {\n static {\n __name(this, \"CreateSecretCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"DeleteResourcePolicy\", {}).n(\"SecretsManagerClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeleteSecretCommand.ts\n\n\n\nvar DeleteSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"DeleteSecret\", {}).n(\"SecretsManagerClient\", \"DeleteSecretCommand\").f(void 0, void 0).ser(se_DeleteSecretCommand).de(de_DeleteSecretCommand).build() {\n static {\n __name(this, \"DeleteSecretCommand\");\n }\n};\n\n// src/commands/DescribeSecretCommand.ts\n\n\n\nvar DescribeSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"DescribeSecret\", {}).n(\"SecretsManagerClient\", \"DescribeSecretCommand\").f(void 0, void 0).ser(se_DescribeSecretCommand).de(de_DescribeSecretCommand).build() {\n static {\n __name(this, \"DescribeSecretCommand\");\n }\n};\n\n// src/commands/GetRandomPasswordCommand.ts\n\n\n\nvar GetRandomPasswordCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"GetRandomPassword\", {}).n(\"SecretsManagerClient\", \"GetRandomPasswordCommand\").f(void 0, GetRandomPasswordResponseFilterSensitiveLog).ser(se_GetRandomPasswordCommand).de(de_GetRandomPasswordCommand).build() {\n static {\n __name(this, \"GetRandomPasswordCommand\");\n }\n};\n\n// src/commands/GetResourcePolicyCommand.ts\n\n\n\nvar GetResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"GetResourcePolicy\", {}).n(\"SecretsManagerClient\", \"GetResourcePolicyCommand\").f(void 0, void 0).ser(se_GetResourcePolicyCommand).de(de_GetResourcePolicyCommand).build() {\n static {\n __name(this, \"GetResourcePolicyCommand\");\n }\n};\n\n// src/commands/GetSecretValueCommand.ts\n\n\n\nvar GetSecretValueCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"GetSecretValue\", {}).n(\"SecretsManagerClient\", \"GetSecretValueCommand\").f(void 0, GetSecretValueResponseFilterSensitiveLog).ser(se_GetSecretValueCommand).de(de_GetSecretValueCommand).build() {\n static {\n __name(this, \"GetSecretValueCommand\");\n }\n};\n\n// src/commands/ListSecretsCommand.ts\n\n\n\nvar ListSecretsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ListSecrets\", {}).n(\"SecretsManagerClient\", \"ListSecretsCommand\").f(void 0, void 0).ser(se_ListSecretsCommand).de(de_ListSecretsCommand).build() {\n static {\n __name(this, \"ListSecretsCommand\");\n }\n};\n\n// src/commands/ListSecretVersionIdsCommand.ts\n\n\n\nvar ListSecretVersionIdsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ListSecretVersionIds\", {}).n(\"SecretsManagerClient\", \"ListSecretVersionIdsCommand\").f(void 0, void 0).ser(se_ListSecretVersionIdsCommand).de(de_ListSecretVersionIdsCommand).build() {\n static {\n __name(this, \"ListSecretVersionIdsCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"PutResourcePolicy\", {}).n(\"SecretsManagerClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/PutSecretValueCommand.ts\n\n\n\nvar PutSecretValueCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"PutSecretValue\", {}).n(\"SecretsManagerClient\", \"PutSecretValueCommand\").f(PutSecretValueRequestFilterSensitiveLog, void 0).ser(se_PutSecretValueCommand).de(de_PutSecretValueCommand).build() {\n static {\n __name(this, \"PutSecretValueCommand\");\n }\n};\n\n// src/commands/RemoveRegionsFromReplicationCommand.ts\n\n\n\nvar RemoveRegionsFromReplicationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"RemoveRegionsFromReplication\", {}).n(\"SecretsManagerClient\", \"RemoveRegionsFromReplicationCommand\").f(void 0, void 0).ser(se_RemoveRegionsFromReplicationCommand).de(de_RemoveRegionsFromReplicationCommand).build() {\n static {\n __name(this, \"RemoveRegionsFromReplicationCommand\");\n }\n};\n\n// src/commands/ReplicateSecretToRegionsCommand.ts\n\n\n\nvar ReplicateSecretToRegionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ReplicateSecretToRegions\", {}).n(\"SecretsManagerClient\", \"ReplicateSecretToRegionsCommand\").f(void 0, void 0).ser(se_ReplicateSecretToRegionsCommand).de(de_ReplicateSecretToRegionsCommand).build() {\n static {\n __name(this, \"ReplicateSecretToRegionsCommand\");\n }\n};\n\n// src/commands/RestoreSecretCommand.ts\n\n\n\nvar RestoreSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"RestoreSecret\", {}).n(\"SecretsManagerClient\", \"RestoreSecretCommand\").f(void 0, void 0).ser(se_RestoreSecretCommand).de(de_RestoreSecretCommand).build() {\n static {\n __name(this, \"RestoreSecretCommand\");\n }\n};\n\n// src/commands/RotateSecretCommand.ts\n\n\n\nvar RotateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"RotateSecret\", {}).n(\"SecretsManagerClient\", \"RotateSecretCommand\").f(void 0, void 0).ser(se_RotateSecretCommand).de(de_RotateSecretCommand).build() {\n static {\n __name(this, \"RotateSecretCommand\");\n }\n};\n\n// src/commands/StopReplicationToReplicaCommand.ts\n\n\n\nvar StopReplicationToReplicaCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"StopReplicationToReplica\", {}).n(\"SecretsManagerClient\", \"StopReplicationToReplicaCommand\").f(void 0, void 0).ser(se_StopReplicationToReplicaCommand).de(de_StopReplicationToReplicaCommand).build() {\n static {\n __name(this, \"StopReplicationToReplicaCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"TagResource\", {}).n(\"SecretsManagerClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"UntagResource\", {}).n(\"SecretsManagerClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateSecretCommand.ts\n\n\n\nvar UpdateSecretCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"UpdateSecret\", {}).n(\"SecretsManagerClient\", \"UpdateSecretCommand\").f(UpdateSecretRequestFilterSensitiveLog, void 0).ser(se_UpdateSecretCommand).de(de_UpdateSecretCommand).build() {\n static {\n __name(this, \"UpdateSecretCommand\");\n }\n};\n\n// src/commands/UpdateSecretVersionStageCommand.ts\n\n\n\nvar UpdateSecretVersionStageCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"UpdateSecretVersionStage\", {}).n(\"SecretsManagerClient\", \"UpdateSecretVersionStageCommand\").f(void 0, void 0).ser(se_UpdateSecretVersionStageCommand).de(de_UpdateSecretVersionStageCommand).build() {\n static {\n __name(this, \"UpdateSecretVersionStageCommand\");\n }\n};\n\n// src/commands/ValidateResourcePolicyCommand.ts\n\n\n\nvar ValidateResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"secretsmanager\", \"ValidateResourcePolicy\", {}).n(\"SecretsManagerClient\", \"ValidateResourcePolicyCommand\").f(void 0, void 0).ser(se_ValidateResourcePolicyCommand).de(de_ValidateResourcePolicyCommand).build() {\n static {\n __name(this, \"ValidateResourcePolicyCommand\");\n }\n};\n\n// src/SecretsManager.ts\nvar commands = {\n BatchGetSecretValueCommand,\n CancelRotateSecretCommand,\n CreateSecretCommand,\n DeleteResourcePolicyCommand,\n DeleteSecretCommand,\n DescribeSecretCommand,\n GetRandomPasswordCommand,\n GetResourcePolicyCommand,\n GetSecretValueCommand,\n ListSecretsCommand,\n ListSecretVersionIdsCommand,\n PutResourcePolicyCommand,\n PutSecretValueCommand,\n RemoveRegionsFromReplicationCommand,\n ReplicateSecretToRegionsCommand,\n RestoreSecretCommand,\n RotateSecretCommand,\n StopReplicationToReplicaCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateSecretCommand,\n UpdateSecretVersionStageCommand,\n ValidateResourcePolicyCommand\n};\nvar SecretsManager = class extends SecretsManagerClient {\n static {\n __name(this, \"SecretsManager\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SecretsManager);\n\n// src/pagination/BatchGetSecretValuePaginator.ts\n\nvar paginateBatchGetSecretValue = (0, import_core.createPaginator)(SecretsManagerClient, BatchGetSecretValueCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListSecretVersionIdsPaginator.ts\n\nvar paginateListSecretVersionIds = (0, import_core.createPaginator)(SecretsManagerClient, ListSecretVersionIdsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListSecretsPaginator.ts\n\nvar paginateListSecrets = (0, import_core.createPaginator)(SecretsManagerClient, ListSecretsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SecretsManagerServiceException,\n __Client,\n SecretsManagerClient,\n SecretsManager,\n $Command,\n BatchGetSecretValueCommand,\n CancelRotateSecretCommand,\n CreateSecretCommand,\n DeleteResourcePolicyCommand,\n DeleteSecretCommand,\n DescribeSecretCommand,\n GetRandomPasswordCommand,\n GetResourcePolicyCommand,\n GetSecretValueCommand,\n ListSecretVersionIdsCommand,\n ListSecretsCommand,\n PutResourcePolicyCommand,\n PutSecretValueCommand,\n RemoveRegionsFromReplicationCommand,\n ReplicateSecretToRegionsCommand,\n RestoreSecretCommand,\n RotateSecretCommand,\n StopReplicationToReplicaCommand,\n TagResourceCommand,\n UntagResourceCommand,\n UpdateSecretCommand,\n UpdateSecretVersionStageCommand,\n ValidateResourcePolicyCommand,\n paginateBatchGetSecretValue,\n paginateListSecretVersionIds,\n paginateListSecrets,\n FilterNameStringType,\n DecryptionFailure,\n InternalServiceError,\n InvalidNextTokenException,\n InvalidParameterException,\n InvalidRequestException,\n ResourceNotFoundException,\n StatusType,\n EncryptionFailure,\n LimitExceededException,\n MalformedPolicyDocumentException,\n PreconditionNotMetException,\n ResourceExistsException,\n SortOrderType,\n PublicPolicyException,\n SecretValueEntryFilterSensitiveLog,\n BatchGetSecretValueResponseFilterSensitiveLog,\n CreateSecretRequestFilterSensitiveLog,\n GetRandomPasswordResponseFilterSensitiveLog,\n GetSecretValueResponseFilterSensitiveLog,\n PutSecretValueRequestFilterSensitiveLog,\n UpdateSecretRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2017-10-17\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSecretsManagerHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"Secrets Manager\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSFNHttpAuthSchemeProvider = exports.defaultSFNHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSFNHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSFNHttpAuthSchemeParametersProvider = defaultSFNHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"states\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultSFNHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSFNHttpAuthSchemeProvider = defaultSFNHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst t = \"required\", u = \"fn\", v = \"argv\", w = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = { [t]: false, \"type\": \"String\" }, i = { [t]: true, \"default\": false, \"type\": \"Boolean\" }, j = { [w]: \"Endpoint\" }, k = { [u]: c, [v]: [{ [w]: \"UseFIPS\" }, true] }, l = { [u]: c, [v]: [{ [w]: \"UseDualStack\" }, true] }, m = {}, n = { [w]: \"Region\" }, o = { [u]: \"getAttr\", [v]: [{ [w]: g }, \"supportsFIPS\"] }, p = { [u]: c, [v]: [true, { [u]: \"getAttr\", [v]: [{ [w]: g }, \"supportsDualStack\"] }] }, q = [k], r = [l], s = [n];\nconst _data = { version: \"1.0\", parameters: { Region: h, UseDualStack: i, UseFIPS: i, Endpoint: h }, rules: [{ conditions: [{ [u]: b, [v]: [j] }], rules: [{ conditions: q, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: r, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: j, properties: m, headers: m }, type: e }], type: f }, { conditions: [{ [u]: b, [v]: s }], rules: [{ conditions: [{ [u]: \"aws.partition\", [v]: s, assign: g }], rules: [{ conditions: [k, l], rules: [{ conditions: [{ [u]: c, [v]: [a, o] }, p], rules: [{ endpoint: { url: \"https://states-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: q, rules: [{ conditions: [{ [u]: c, [v]: [o, a] }], rules: [{ conditions: [{ [u]: \"stringEquals\", [v]: [n, \"us-gov-west-1\"] }], endpoint: { url: \"https://states.us-gov-west-1.amazonaws.com\", properties: m, headers: m }, type: e }, { endpoint: { url: \"https://states-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [p], rules: [{ endpoint: { url: \"https://states.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: m, headers: m }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://states.{Region}.{PartitionResult#dnsSuffix}\", properties: m, headers: m }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ActivityAlreadyExists: () => ActivityAlreadyExists,\n ActivityDoesNotExist: () => ActivityDoesNotExist,\n ActivityFailedEventDetailsFilterSensitiveLog: () => ActivityFailedEventDetailsFilterSensitiveLog,\n ActivityLimitExceeded: () => ActivityLimitExceeded,\n ActivityScheduleFailedEventDetailsFilterSensitiveLog: () => ActivityScheduleFailedEventDetailsFilterSensitiveLog,\n ActivityScheduledEventDetailsFilterSensitiveLog: () => ActivityScheduledEventDetailsFilterSensitiveLog,\n ActivitySucceededEventDetailsFilterSensitiveLog: () => ActivitySucceededEventDetailsFilterSensitiveLog,\n ActivityTimedOutEventDetailsFilterSensitiveLog: () => ActivityTimedOutEventDetailsFilterSensitiveLog,\n ActivityWorkerLimitExceeded: () => ActivityWorkerLimitExceeded,\n ConflictException: () => ConflictException,\n CreateActivityCommand: () => CreateActivityCommand,\n CreateStateMachineAliasCommand: () => CreateStateMachineAliasCommand,\n CreateStateMachineAliasInputFilterSensitiveLog: () => CreateStateMachineAliasInputFilterSensitiveLog,\n CreateStateMachineCommand: () => CreateStateMachineCommand,\n CreateStateMachineInputFilterSensitiveLog: () => CreateStateMachineInputFilterSensitiveLog,\n DeleteActivityCommand: () => DeleteActivityCommand,\n DeleteStateMachineAliasCommand: () => DeleteStateMachineAliasCommand,\n DeleteStateMachineCommand: () => DeleteStateMachineCommand,\n DeleteStateMachineVersionCommand: () => DeleteStateMachineVersionCommand,\n DescribeActivityCommand: () => DescribeActivityCommand,\n DescribeExecutionCommand: () => DescribeExecutionCommand,\n DescribeExecutionOutputFilterSensitiveLog: () => DescribeExecutionOutputFilterSensitiveLog,\n DescribeMapRunCommand: () => DescribeMapRunCommand,\n DescribeStateMachineAliasCommand: () => DescribeStateMachineAliasCommand,\n DescribeStateMachineAliasOutputFilterSensitiveLog: () => DescribeStateMachineAliasOutputFilterSensitiveLog,\n DescribeStateMachineCommand: () => DescribeStateMachineCommand,\n DescribeStateMachineForExecutionCommand: () => DescribeStateMachineForExecutionCommand,\n DescribeStateMachineForExecutionOutputFilterSensitiveLog: () => DescribeStateMachineForExecutionOutputFilterSensitiveLog,\n DescribeStateMachineOutputFilterSensitiveLog: () => DescribeStateMachineOutputFilterSensitiveLog,\n EncryptionType: () => EncryptionType,\n EvaluationFailedEventDetailsFilterSensitiveLog: () => EvaluationFailedEventDetailsFilterSensitiveLog,\n ExecutionAbortedEventDetailsFilterSensitiveLog: () => ExecutionAbortedEventDetailsFilterSensitiveLog,\n ExecutionAlreadyExists: () => ExecutionAlreadyExists,\n ExecutionDoesNotExist: () => ExecutionDoesNotExist,\n ExecutionFailedEventDetailsFilterSensitiveLog: () => ExecutionFailedEventDetailsFilterSensitiveLog,\n ExecutionLimitExceeded: () => ExecutionLimitExceeded,\n ExecutionNotRedrivable: () => ExecutionNotRedrivable,\n ExecutionRedriveFilter: () => ExecutionRedriveFilter,\n ExecutionRedriveStatus: () => ExecutionRedriveStatus,\n ExecutionStartedEventDetailsFilterSensitiveLog: () => ExecutionStartedEventDetailsFilterSensitiveLog,\n ExecutionStatus: () => ExecutionStatus,\n ExecutionSucceededEventDetailsFilterSensitiveLog: () => ExecutionSucceededEventDetailsFilterSensitiveLog,\n ExecutionTimedOutEventDetailsFilterSensitiveLog: () => ExecutionTimedOutEventDetailsFilterSensitiveLog,\n GetActivityTaskCommand: () => GetActivityTaskCommand,\n GetActivityTaskOutputFilterSensitiveLog: () => GetActivityTaskOutputFilterSensitiveLog,\n GetExecutionHistoryCommand: () => GetExecutionHistoryCommand,\n GetExecutionHistoryOutputFilterSensitiveLog: () => GetExecutionHistoryOutputFilterSensitiveLog,\n HistoryEventFilterSensitiveLog: () => HistoryEventFilterSensitiveLog,\n HistoryEventType: () => HistoryEventType,\n IncludedData: () => IncludedData,\n InspectionDataFilterSensitiveLog: () => InspectionDataFilterSensitiveLog,\n InspectionLevel: () => InspectionLevel,\n InvalidArn: () => InvalidArn,\n InvalidDefinition: () => InvalidDefinition,\n InvalidEncryptionConfiguration: () => InvalidEncryptionConfiguration,\n InvalidExecutionInput: () => InvalidExecutionInput,\n InvalidLoggingConfiguration: () => InvalidLoggingConfiguration,\n InvalidName: () => InvalidName,\n InvalidOutput: () => InvalidOutput,\n InvalidToken: () => InvalidToken,\n InvalidTracingConfiguration: () => InvalidTracingConfiguration,\n KmsAccessDeniedException: () => KmsAccessDeniedException,\n KmsInvalidStateException: () => KmsInvalidStateException,\n KmsKeyState: () => KmsKeyState,\n KmsThrottlingException: () => KmsThrottlingException,\n LambdaFunctionFailedEventDetailsFilterSensitiveLog: () => LambdaFunctionFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog: () => LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduledEventDetailsFilterSensitiveLog: () => LambdaFunctionScheduledEventDetailsFilterSensitiveLog,\n LambdaFunctionStartFailedEventDetailsFilterSensitiveLog: () => LambdaFunctionStartFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionSucceededEventDetailsFilterSensitiveLog: () => LambdaFunctionSucceededEventDetailsFilterSensitiveLog,\n LambdaFunctionTimedOutEventDetailsFilterSensitiveLog: () => LambdaFunctionTimedOutEventDetailsFilterSensitiveLog,\n ListActivitiesCommand: () => ListActivitiesCommand,\n ListExecutionsCommand: () => ListExecutionsCommand,\n ListMapRunsCommand: () => ListMapRunsCommand,\n ListStateMachineAliasesCommand: () => ListStateMachineAliasesCommand,\n ListStateMachineVersionsCommand: () => ListStateMachineVersionsCommand,\n ListStateMachinesCommand: () => ListStateMachinesCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n LogLevel: () => LogLevel,\n MapRunFailedEventDetailsFilterSensitiveLog: () => MapRunFailedEventDetailsFilterSensitiveLog,\n MapRunStatus: () => MapRunStatus,\n MissingRequiredParameter: () => MissingRequiredParameter,\n PublishStateMachineVersionCommand: () => PublishStateMachineVersionCommand,\n PublishStateMachineVersionInputFilterSensitiveLog: () => PublishStateMachineVersionInputFilterSensitiveLog,\n RedriveExecutionCommand: () => RedriveExecutionCommand,\n ResourceNotFound: () => ResourceNotFound,\n SFN: () => SFN,\n SFNClient: () => SFNClient,\n SFNServiceException: () => SFNServiceException,\n SendTaskFailureCommand: () => SendTaskFailureCommand,\n SendTaskFailureInputFilterSensitiveLog: () => SendTaskFailureInputFilterSensitiveLog,\n SendTaskHeartbeatCommand: () => SendTaskHeartbeatCommand,\n SendTaskSuccessCommand: () => SendTaskSuccessCommand,\n SendTaskSuccessInputFilterSensitiveLog: () => SendTaskSuccessInputFilterSensitiveLog,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n StartExecutionCommand: () => StartExecutionCommand,\n StartExecutionInputFilterSensitiveLog: () => StartExecutionInputFilterSensitiveLog,\n StartSyncExecutionCommand: () => StartSyncExecutionCommand,\n StartSyncExecutionInputFilterSensitiveLog: () => StartSyncExecutionInputFilterSensitiveLog,\n StartSyncExecutionOutputFilterSensitiveLog: () => StartSyncExecutionOutputFilterSensitiveLog,\n StateEnteredEventDetailsFilterSensitiveLog: () => StateEnteredEventDetailsFilterSensitiveLog,\n StateExitedEventDetailsFilterSensitiveLog: () => StateExitedEventDetailsFilterSensitiveLog,\n StateMachineAlreadyExists: () => StateMachineAlreadyExists,\n StateMachineDeleting: () => StateMachineDeleting,\n StateMachineDoesNotExist: () => StateMachineDoesNotExist,\n StateMachineLimitExceeded: () => StateMachineLimitExceeded,\n StateMachineStatus: () => StateMachineStatus,\n StateMachineType: () => StateMachineType,\n StateMachineTypeNotSupported: () => StateMachineTypeNotSupported,\n StopExecutionCommand: () => StopExecutionCommand,\n StopExecutionInputFilterSensitiveLog: () => StopExecutionInputFilterSensitiveLog,\n SyncExecutionStatus: () => SyncExecutionStatus,\n TagResourceCommand: () => TagResourceCommand,\n TaskDoesNotExist: () => TaskDoesNotExist,\n TaskFailedEventDetailsFilterSensitiveLog: () => TaskFailedEventDetailsFilterSensitiveLog,\n TaskScheduledEventDetailsFilterSensitiveLog: () => TaskScheduledEventDetailsFilterSensitiveLog,\n TaskStartFailedEventDetailsFilterSensitiveLog: () => TaskStartFailedEventDetailsFilterSensitiveLog,\n TaskSubmitFailedEventDetailsFilterSensitiveLog: () => TaskSubmitFailedEventDetailsFilterSensitiveLog,\n TaskSubmittedEventDetailsFilterSensitiveLog: () => TaskSubmittedEventDetailsFilterSensitiveLog,\n TaskSucceededEventDetailsFilterSensitiveLog: () => TaskSucceededEventDetailsFilterSensitiveLog,\n TaskTimedOut: () => TaskTimedOut,\n TaskTimedOutEventDetailsFilterSensitiveLog: () => TaskTimedOutEventDetailsFilterSensitiveLog,\n TestExecutionStatus: () => TestExecutionStatus,\n TestStateCommand: () => TestStateCommand,\n TestStateInputFilterSensitiveLog: () => TestStateInputFilterSensitiveLog,\n TestStateOutputFilterSensitiveLog: () => TestStateOutputFilterSensitiveLog,\n TooManyTags: () => TooManyTags,\n UntagResourceCommand: () => UntagResourceCommand,\n UpdateMapRunCommand: () => UpdateMapRunCommand,\n UpdateStateMachineAliasCommand: () => UpdateStateMachineAliasCommand,\n UpdateStateMachineAliasInputFilterSensitiveLog: () => UpdateStateMachineAliasInputFilterSensitiveLog,\n UpdateStateMachineCommand: () => UpdateStateMachineCommand,\n UpdateStateMachineInputFilterSensitiveLog: () => UpdateStateMachineInputFilterSensitiveLog,\n ValidateStateMachineDefinitionCommand: () => ValidateStateMachineDefinitionCommand,\n ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog: () => ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog,\n ValidateStateMachineDefinitionInputFilterSensitiveLog: () => ValidateStateMachineDefinitionInputFilterSensitiveLog,\n ValidateStateMachineDefinitionOutputFilterSensitiveLog: () => ValidateStateMachineDefinitionOutputFilterSensitiveLog,\n ValidateStateMachineDefinitionResultCode: () => ValidateStateMachineDefinitionResultCode,\n ValidateStateMachineDefinitionSeverity: () => ValidateStateMachineDefinitionSeverity,\n ValidationException: () => ValidationException,\n ValidationExceptionReason: () => ValidationExceptionReason,\n __Client: () => import_smithy_client.Client,\n paginateGetExecutionHistory: () => paginateGetExecutionHistory,\n paginateListActivities: () => paginateListActivities,\n paginateListExecutions: () => paginateListExecutions,\n paginateListMapRuns: () => paginateListMapRuns,\n paginateListStateMachines: () => paginateListStateMachines\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SFNClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"states\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SFNClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SFNClient.ts\nvar SFNClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SFNClient\");\n }\n /**\n * The resolved configuration of SFNClient class. This is resolved and normalized from the {@link SFNClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSFNHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SFN.ts\n\n\n// src/commands/CreateActivityCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_0.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/models_0.ts\n\n\n// src/models/SFNServiceException.ts\n\nvar SFNServiceException = class _SFNServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SFNServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SFNServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar ActivityAlreadyExists = class _ActivityAlreadyExists extends SFNServiceException {\n static {\n __name(this, \"ActivityAlreadyExists\");\n }\n name = \"ActivityAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityAlreadyExists.prototype);\n }\n};\nvar ActivityDoesNotExist = class _ActivityDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"ActivityDoesNotExist\");\n }\n name = \"ActivityDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityDoesNotExist.prototype);\n }\n};\nvar ActivityLimitExceeded = class _ActivityLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"ActivityLimitExceeded\");\n }\n name = \"ActivityLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityLimitExceeded.prototype);\n }\n};\nvar ActivityWorkerLimitExceeded = class _ActivityWorkerLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"ActivityWorkerLimitExceeded\");\n }\n name = \"ActivityWorkerLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ActivityWorkerLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ActivityWorkerLimitExceeded.prototype);\n }\n};\nvar EncryptionType = {\n AWS_OWNED_KEY: \"AWS_OWNED_KEY\",\n CUSTOMER_MANAGED_KMS_KEY: \"CUSTOMER_MANAGED_KMS_KEY\"\n};\nvar InvalidEncryptionConfiguration = class _InvalidEncryptionConfiguration extends SFNServiceException {\n static {\n __name(this, \"InvalidEncryptionConfiguration\");\n }\n name = \"InvalidEncryptionConfiguration\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidEncryptionConfiguration\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidEncryptionConfiguration.prototype);\n }\n};\nvar InvalidName = class _InvalidName extends SFNServiceException {\n static {\n __name(this, \"InvalidName\");\n }\n name = \"InvalidName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidName.prototype);\n }\n};\nvar KmsAccessDeniedException = class _KmsAccessDeniedException extends SFNServiceException {\n static {\n __name(this, \"KmsAccessDeniedException\");\n }\n name = \"KmsAccessDeniedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsAccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsAccessDeniedException.prototype);\n }\n};\nvar KmsThrottlingException = class _KmsThrottlingException extends SFNServiceException {\n static {\n __name(this, \"KmsThrottlingException\");\n }\n name = \"KmsThrottlingException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsThrottlingException.prototype);\n }\n};\nvar TooManyTags = class _TooManyTags extends SFNServiceException {\n static {\n __name(this, \"TooManyTags\");\n }\n name = \"TooManyTags\";\n $fault = \"client\";\n resourceName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTags\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTags.prototype);\n this.resourceName = opts.resourceName;\n }\n};\nvar ConflictException = class _ConflictException extends SFNServiceException {\n static {\n __name(this, \"ConflictException\");\n }\n name = \"ConflictException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ConflictException.prototype);\n }\n};\nvar LogLevel = {\n ALL: \"ALL\",\n ERROR: \"ERROR\",\n FATAL: \"FATAL\",\n OFF: \"OFF\"\n};\nvar StateMachineType = {\n EXPRESS: \"EXPRESS\",\n STANDARD: \"STANDARD\"\n};\nvar InvalidArn = class _InvalidArn extends SFNServiceException {\n static {\n __name(this, \"InvalidArn\");\n }\n name = \"InvalidArn\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidArn\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidArn.prototype);\n }\n};\nvar InvalidDefinition = class _InvalidDefinition extends SFNServiceException {\n static {\n __name(this, \"InvalidDefinition\");\n }\n name = \"InvalidDefinition\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDefinition\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDefinition.prototype);\n }\n};\nvar InvalidLoggingConfiguration = class _InvalidLoggingConfiguration extends SFNServiceException {\n static {\n __name(this, \"InvalidLoggingConfiguration\");\n }\n name = \"InvalidLoggingConfiguration\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidLoggingConfiguration\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidLoggingConfiguration.prototype);\n }\n};\nvar InvalidTracingConfiguration = class _InvalidTracingConfiguration extends SFNServiceException {\n static {\n __name(this, \"InvalidTracingConfiguration\");\n }\n name = \"InvalidTracingConfiguration\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTracingConfiguration\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTracingConfiguration.prototype);\n }\n};\nvar StateMachineAlreadyExists = class _StateMachineAlreadyExists extends SFNServiceException {\n static {\n __name(this, \"StateMachineAlreadyExists\");\n }\n name = \"StateMachineAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineAlreadyExists.prototype);\n }\n};\nvar StateMachineDeleting = class _StateMachineDeleting extends SFNServiceException {\n static {\n __name(this, \"StateMachineDeleting\");\n }\n name = \"StateMachineDeleting\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineDeleting\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineDeleting.prototype);\n }\n};\nvar StateMachineLimitExceeded = class _StateMachineLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"StateMachineLimitExceeded\");\n }\n name = \"StateMachineLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineLimitExceeded.prototype);\n }\n};\nvar StateMachineTypeNotSupported = class _StateMachineTypeNotSupported extends SFNServiceException {\n static {\n __name(this, \"StateMachineTypeNotSupported\");\n }\n name = \"StateMachineTypeNotSupported\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineTypeNotSupported\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineTypeNotSupported.prototype);\n }\n};\nvar ValidationExceptionReason = {\n API_DOES_NOT_SUPPORT_LABELED_ARNS: \"API_DOES_NOT_SUPPORT_LABELED_ARNS\",\n CANNOT_UPDATE_COMPLETED_MAP_RUN: \"CANNOT_UPDATE_COMPLETED_MAP_RUN\",\n INVALID_ROUTING_CONFIGURATION: \"INVALID_ROUTING_CONFIGURATION\",\n MISSING_REQUIRED_PARAMETER: \"MISSING_REQUIRED_PARAMETER\"\n};\nvar ValidationException = class _ValidationException extends SFNServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n /**\n *

The input does not satisfy the constraints specified by an Amazon Web Services service.

\n * @public\n */\n reason;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n this.reason = opts.reason;\n }\n};\nvar ResourceNotFound = class _ResourceNotFound extends SFNServiceException {\n static {\n __name(this, \"ResourceNotFound\");\n }\n name = \"ResourceNotFound\";\n $fault = \"client\";\n resourceName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFound.prototype);\n this.resourceName = opts.resourceName;\n }\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends SFNServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n }\n};\nvar IncludedData = {\n ALL_DATA: \"ALL_DATA\",\n METADATA_ONLY: \"METADATA_ONLY\"\n};\nvar ExecutionRedriveStatus = {\n NOT_REDRIVABLE: \"NOT_REDRIVABLE\",\n REDRIVABLE: \"REDRIVABLE\",\n REDRIVABLE_BY_MAP_RUN: \"REDRIVABLE_BY_MAP_RUN\"\n};\nvar ExecutionStatus = {\n ABORTED: \"ABORTED\",\n FAILED: \"FAILED\",\n PENDING_REDRIVE: \"PENDING_REDRIVE\",\n RUNNING: \"RUNNING\",\n SUCCEEDED: \"SUCCEEDED\",\n TIMED_OUT: \"TIMED_OUT\"\n};\nvar ExecutionDoesNotExist = class _ExecutionDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"ExecutionDoesNotExist\");\n }\n name = \"ExecutionDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionDoesNotExist.prototype);\n }\n};\nvar KmsKeyState = {\n CREATING: \"CREATING\",\n DISABLED: \"DISABLED\",\n PENDING_DELETION: \"PENDING_DELETION\",\n PENDING_IMPORT: \"PENDING_IMPORT\",\n UNAVAILABLE: \"UNAVAILABLE\"\n};\nvar KmsInvalidStateException = class _KmsInvalidStateException extends SFNServiceException {\n static {\n __name(this, \"KmsInvalidStateException\");\n }\n name = \"KmsInvalidStateException\";\n $fault = \"client\";\n /**\n *

Current status of the KMS; key. For example: DISABLED, PENDING_DELETION, PENDING_IMPORT, UNAVAILABLE, CREATING.

\n * @public\n */\n kmsKeyState;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"KmsInvalidStateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _KmsInvalidStateException.prototype);\n this.kmsKeyState = opts.kmsKeyState;\n }\n};\nvar MapRunStatus = {\n ABORTED: \"ABORTED\",\n FAILED: \"FAILED\",\n RUNNING: \"RUNNING\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar StateMachineStatus = {\n ACTIVE: \"ACTIVE\",\n DELETING: \"DELETING\"\n};\nvar StateMachineDoesNotExist = class _StateMachineDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"StateMachineDoesNotExist\");\n }\n name = \"StateMachineDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StateMachineDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StateMachineDoesNotExist.prototype);\n }\n};\nvar HistoryEventType = {\n ActivityFailed: \"ActivityFailed\",\n ActivityScheduleFailed: \"ActivityScheduleFailed\",\n ActivityScheduled: \"ActivityScheduled\",\n ActivityStarted: \"ActivityStarted\",\n ActivitySucceeded: \"ActivitySucceeded\",\n ActivityTimedOut: \"ActivityTimedOut\",\n ChoiceStateEntered: \"ChoiceStateEntered\",\n ChoiceStateExited: \"ChoiceStateExited\",\n EvaluationFailed: \"EvaluationFailed\",\n ExecutionAborted: \"ExecutionAborted\",\n ExecutionFailed: \"ExecutionFailed\",\n ExecutionRedriven: \"ExecutionRedriven\",\n ExecutionStarted: \"ExecutionStarted\",\n ExecutionSucceeded: \"ExecutionSucceeded\",\n ExecutionTimedOut: \"ExecutionTimedOut\",\n FailStateEntered: \"FailStateEntered\",\n LambdaFunctionFailed: \"LambdaFunctionFailed\",\n LambdaFunctionScheduleFailed: \"LambdaFunctionScheduleFailed\",\n LambdaFunctionScheduled: \"LambdaFunctionScheduled\",\n LambdaFunctionStartFailed: \"LambdaFunctionStartFailed\",\n LambdaFunctionStarted: \"LambdaFunctionStarted\",\n LambdaFunctionSucceeded: \"LambdaFunctionSucceeded\",\n LambdaFunctionTimedOut: \"LambdaFunctionTimedOut\",\n MapIterationAborted: \"MapIterationAborted\",\n MapIterationFailed: \"MapIterationFailed\",\n MapIterationStarted: \"MapIterationStarted\",\n MapIterationSucceeded: \"MapIterationSucceeded\",\n MapRunAborted: \"MapRunAborted\",\n MapRunFailed: \"MapRunFailed\",\n MapRunRedriven: \"MapRunRedriven\",\n MapRunStarted: \"MapRunStarted\",\n MapRunSucceeded: \"MapRunSucceeded\",\n MapStateAborted: \"MapStateAborted\",\n MapStateEntered: \"MapStateEntered\",\n MapStateExited: \"MapStateExited\",\n MapStateFailed: \"MapStateFailed\",\n MapStateStarted: \"MapStateStarted\",\n MapStateSucceeded: \"MapStateSucceeded\",\n ParallelStateAborted: \"ParallelStateAborted\",\n ParallelStateEntered: \"ParallelStateEntered\",\n ParallelStateExited: \"ParallelStateExited\",\n ParallelStateFailed: \"ParallelStateFailed\",\n ParallelStateStarted: \"ParallelStateStarted\",\n ParallelStateSucceeded: \"ParallelStateSucceeded\",\n PassStateEntered: \"PassStateEntered\",\n PassStateExited: \"PassStateExited\",\n SucceedStateEntered: \"SucceedStateEntered\",\n SucceedStateExited: \"SucceedStateExited\",\n TaskFailed: \"TaskFailed\",\n TaskScheduled: \"TaskScheduled\",\n TaskStartFailed: \"TaskStartFailed\",\n TaskStarted: \"TaskStarted\",\n TaskStateAborted: \"TaskStateAborted\",\n TaskStateEntered: \"TaskStateEntered\",\n TaskStateExited: \"TaskStateExited\",\n TaskSubmitFailed: \"TaskSubmitFailed\",\n TaskSubmitted: \"TaskSubmitted\",\n TaskSucceeded: \"TaskSucceeded\",\n TaskTimedOut: \"TaskTimedOut\",\n WaitStateAborted: \"WaitStateAborted\",\n WaitStateEntered: \"WaitStateEntered\",\n WaitStateExited: \"WaitStateExited\"\n};\nvar InvalidToken = class _InvalidToken extends SFNServiceException {\n static {\n __name(this, \"InvalidToken\");\n }\n name = \"InvalidToken\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidToken\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidToken.prototype);\n }\n};\nvar ExecutionRedriveFilter = {\n NOT_REDRIVEN: \"NOT_REDRIVEN\",\n REDRIVEN: \"REDRIVEN\"\n};\nvar ExecutionLimitExceeded = class _ExecutionLimitExceeded extends SFNServiceException {\n static {\n __name(this, \"ExecutionLimitExceeded\");\n }\n name = \"ExecutionLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionLimitExceeded.prototype);\n }\n};\nvar ExecutionNotRedrivable = class _ExecutionNotRedrivable extends SFNServiceException {\n static {\n __name(this, \"ExecutionNotRedrivable\");\n }\n name = \"ExecutionNotRedrivable\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionNotRedrivable\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionNotRedrivable.prototype);\n }\n};\nvar TaskDoesNotExist = class _TaskDoesNotExist extends SFNServiceException {\n static {\n __name(this, \"TaskDoesNotExist\");\n }\n name = \"TaskDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TaskDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TaskDoesNotExist.prototype);\n }\n};\nvar TaskTimedOut = class _TaskTimedOut extends SFNServiceException {\n static {\n __name(this, \"TaskTimedOut\");\n }\n name = \"TaskTimedOut\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TaskTimedOut\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TaskTimedOut.prototype);\n }\n};\nvar InvalidOutput = class _InvalidOutput extends SFNServiceException {\n static {\n __name(this, \"InvalidOutput\");\n }\n name = \"InvalidOutput\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOutput\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOutput.prototype);\n }\n};\nvar ExecutionAlreadyExists = class _ExecutionAlreadyExists extends SFNServiceException {\n static {\n __name(this, \"ExecutionAlreadyExists\");\n }\n name = \"ExecutionAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExecutionAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExecutionAlreadyExists.prototype);\n }\n};\nvar InvalidExecutionInput = class _InvalidExecutionInput extends SFNServiceException {\n static {\n __name(this, \"InvalidExecutionInput\");\n }\n name = \"InvalidExecutionInput\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidExecutionInput\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidExecutionInput.prototype);\n }\n};\nvar SyncExecutionStatus = {\n FAILED: \"FAILED\",\n SUCCEEDED: \"SUCCEEDED\",\n TIMED_OUT: \"TIMED_OUT\"\n};\nvar InspectionLevel = {\n DEBUG: \"DEBUG\",\n INFO: \"INFO\",\n TRACE: \"TRACE\"\n};\nvar TestExecutionStatus = {\n CAUGHT_ERROR: \"CAUGHT_ERROR\",\n FAILED: \"FAILED\",\n RETRIABLE: \"RETRIABLE\",\n SUCCEEDED: \"SUCCEEDED\"\n};\nvar MissingRequiredParameter = class _MissingRequiredParameter extends SFNServiceException {\n static {\n __name(this, \"MissingRequiredParameter\");\n }\n name = \"MissingRequiredParameter\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MissingRequiredParameter\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MissingRequiredParameter.prototype);\n }\n};\nvar ValidateStateMachineDefinitionSeverity = {\n ERROR: \"ERROR\",\n WARNING: \"WARNING\"\n};\nvar ValidateStateMachineDefinitionResultCode = {\n FAIL: \"FAIL\",\n OK: \"OK\"\n};\nvar ActivityFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityFailedEventDetailsFilterSensitiveLog\");\nvar ActivityScheduledEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityScheduledEventDetailsFilterSensitiveLog\");\nvar ActivityScheduleFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityScheduleFailedEventDetailsFilterSensitiveLog\");\nvar ActivitySucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivitySucceededEventDetailsFilterSensitiveLog\");\nvar ActivityTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ActivityTimedOutEventDetailsFilterSensitiveLog\");\nvar CreateStateMachineInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.versionDescription && { versionDescription: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateStateMachineInputFilterSensitiveLog\");\nvar CreateStateMachineAliasInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateStateMachineAliasInputFilterSensitiveLog\");\nvar DescribeExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING },\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.redriveStatusReason && { redriveStatusReason: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeExecutionOutputFilterSensitiveLog\");\nvar DescribeStateMachineOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING },\n ...obj.variableReferences && { variableReferences: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeStateMachineOutputFilterSensitiveLog\");\nvar DescribeStateMachineAliasOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeStateMachineAliasOutputFilterSensitiveLog\");\nvar DescribeStateMachineForExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.variableReferences && { variableReferences: import_smithy_client.SENSITIVE_STRING }\n}), \"DescribeStateMachineForExecutionOutputFilterSensitiveLog\");\nvar GetActivityTaskOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"GetActivityTaskOutputFilterSensitiveLog\");\nvar EvaluationFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.location && { location: import_smithy_client.SENSITIVE_STRING }\n}), \"EvaluationFailedEventDetailsFilterSensitiveLog\");\nvar ExecutionAbortedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionAbortedEventDetailsFilterSensitiveLog\");\nvar ExecutionFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionFailedEventDetailsFilterSensitiveLog\");\nvar ExecutionStartedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionStartedEventDetailsFilterSensitiveLog\");\nvar ExecutionSucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionSucceededEventDetailsFilterSensitiveLog\");\nvar ExecutionTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"ExecutionTimedOutEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionFailedEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionScheduledEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionScheduledEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionStartFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionStartFailedEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionSucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionSucceededEventDetailsFilterSensitiveLog\");\nvar LambdaFunctionTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"LambdaFunctionTimedOutEventDetailsFilterSensitiveLog\");\nvar MapRunFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"MapRunFailedEventDetailsFilterSensitiveLog\");\nvar StateEnteredEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"StateEnteredEventDetailsFilterSensitiveLog\");\nvar StateExitedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING },\n ...obj.assignedVariables && { assignedVariables: import_smithy_client.SENSITIVE_STRING }\n}), \"StateExitedEventDetailsFilterSensitiveLog\");\nvar TaskFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskFailedEventDetailsFilterSensitiveLog\");\nvar TaskScheduledEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.parameters && { parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskScheduledEventDetailsFilterSensitiveLog\");\nvar TaskStartFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskStartFailedEventDetailsFilterSensitiveLog\");\nvar TaskSubmitFailedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskSubmitFailedEventDetailsFilterSensitiveLog\");\nvar TaskSubmittedEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskSubmittedEventDetailsFilterSensitiveLog\");\nvar TaskSucceededEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskSucceededEventDetailsFilterSensitiveLog\");\nvar TaskTimedOutEventDetailsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"TaskTimedOutEventDetailsFilterSensitiveLog\");\nvar HistoryEventFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.activityFailedEventDetails && {\n activityFailedEventDetails: ActivityFailedEventDetailsFilterSensitiveLog(obj.activityFailedEventDetails)\n },\n ...obj.activityScheduleFailedEventDetails && {\n activityScheduleFailedEventDetails: ActivityScheduleFailedEventDetailsFilterSensitiveLog(\n obj.activityScheduleFailedEventDetails\n )\n },\n ...obj.activityScheduledEventDetails && {\n activityScheduledEventDetails: ActivityScheduledEventDetailsFilterSensitiveLog(obj.activityScheduledEventDetails)\n },\n ...obj.activitySucceededEventDetails && {\n activitySucceededEventDetails: ActivitySucceededEventDetailsFilterSensitiveLog(obj.activitySucceededEventDetails)\n },\n ...obj.activityTimedOutEventDetails && {\n activityTimedOutEventDetails: ActivityTimedOutEventDetailsFilterSensitiveLog(obj.activityTimedOutEventDetails)\n },\n ...obj.taskFailedEventDetails && {\n taskFailedEventDetails: TaskFailedEventDetailsFilterSensitiveLog(obj.taskFailedEventDetails)\n },\n ...obj.taskScheduledEventDetails && {\n taskScheduledEventDetails: TaskScheduledEventDetailsFilterSensitiveLog(obj.taskScheduledEventDetails)\n },\n ...obj.taskStartFailedEventDetails && {\n taskStartFailedEventDetails: TaskStartFailedEventDetailsFilterSensitiveLog(obj.taskStartFailedEventDetails)\n },\n ...obj.taskSubmitFailedEventDetails && {\n taskSubmitFailedEventDetails: TaskSubmitFailedEventDetailsFilterSensitiveLog(obj.taskSubmitFailedEventDetails)\n },\n ...obj.taskSubmittedEventDetails && {\n taskSubmittedEventDetails: TaskSubmittedEventDetailsFilterSensitiveLog(obj.taskSubmittedEventDetails)\n },\n ...obj.taskSucceededEventDetails && {\n taskSucceededEventDetails: TaskSucceededEventDetailsFilterSensitiveLog(obj.taskSucceededEventDetails)\n },\n ...obj.taskTimedOutEventDetails && {\n taskTimedOutEventDetails: TaskTimedOutEventDetailsFilterSensitiveLog(obj.taskTimedOutEventDetails)\n },\n ...obj.executionFailedEventDetails && {\n executionFailedEventDetails: ExecutionFailedEventDetailsFilterSensitiveLog(obj.executionFailedEventDetails)\n },\n ...obj.executionStartedEventDetails && {\n executionStartedEventDetails: ExecutionStartedEventDetailsFilterSensitiveLog(obj.executionStartedEventDetails)\n },\n ...obj.executionSucceededEventDetails && {\n executionSucceededEventDetails: ExecutionSucceededEventDetailsFilterSensitiveLog(\n obj.executionSucceededEventDetails\n )\n },\n ...obj.executionAbortedEventDetails && {\n executionAbortedEventDetails: ExecutionAbortedEventDetailsFilterSensitiveLog(obj.executionAbortedEventDetails)\n },\n ...obj.executionTimedOutEventDetails && {\n executionTimedOutEventDetails: ExecutionTimedOutEventDetailsFilterSensitiveLog(obj.executionTimedOutEventDetails)\n },\n ...obj.lambdaFunctionFailedEventDetails && {\n lambdaFunctionFailedEventDetails: LambdaFunctionFailedEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionFailedEventDetails\n )\n },\n ...obj.lambdaFunctionScheduleFailedEventDetails && {\n lambdaFunctionScheduleFailedEventDetails: LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionScheduleFailedEventDetails\n )\n },\n ...obj.lambdaFunctionScheduledEventDetails && {\n lambdaFunctionScheduledEventDetails: LambdaFunctionScheduledEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionScheduledEventDetails\n )\n },\n ...obj.lambdaFunctionStartFailedEventDetails && {\n lambdaFunctionStartFailedEventDetails: LambdaFunctionStartFailedEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionStartFailedEventDetails\n )\n },\n ...obj.lambdaFunctionSucceededEventDetails && {\n lambdaFunctionSucceededEventDetails: LambdaFunctionSucceededEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionSucceededEventDetails\n )\n },\n ...obj.lambdaFunctionTimedOutEventDetails && {\n lambdaFunctionTimedOutEventDetails: LambdaFunctionTimedOutEventDetailsFilterSensitiveLog(\n obj.lambdaFunctionTimedOutEventDetails\n )\n },\n ...obj.stateEnteredEventDetails && {\n stateEnteredEventDetails: StateEnteredEventDetailsFilterSensitiveLog(obj.stateEnteredEventDetails)\n },\n ...obj.stateExitedEventDetails && {\n stateExitedEventDetails: StateExitedEventDetailsFilterSensitiveLog(obj.stateExitedEventDetails)\n },\n ...obj.mapRunFailedEventDetails && {\n mapRunFailedEventDetails: MapRunFailedEventDetailsFilterSensitiveLog(obj.mapRunFailedEventDetails)\n },\n ...obj.evaluationFailedEventDetails && {\n evaluationFailedEventDetails: EvaluationFailedEventDetailsFilterSensitiveLog(obj.evaluationFailedEventDetails)\n }\n}), \"HistoryEventFilterSensitiveLog\");\nvar GetExecutionHistoryOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.events && { events: obj.events.map((item) => HistoryEventFilterSensitiveLog(item)) }\n}), \"GetExecutionHistoryOutputFilterSensitiveLog\");\nvar PublishStateMachineVersionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"PublishStateMachineVersionInputFilterSensitiveLog\");\nvar SendTaskFailureInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"SendTaskFailureInputFilterSensitiveLog\");\nvar SendTaskSuccessInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"SendTaskSuccessInputFilterSensitiveLog\");\nvar StartExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"StartExecutionInputFilterSensitiveLog\");\nvar StartSyncExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING }\n}), \"StartSyncExecutionInputFilterSensitiveLog\");\nvar StartSyncExecutionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING }\n}), \"StartSyncExecutionOutputFilterSensitiveLog\");\nvar StopExecutionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING }\n}), \"StopExecutionInputFilterSensitiveLog\");\nvar TestStateInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.variables && { variables: import_smithy_client.SENSITIVE_STRING }\n}), \"TestStateInputFilterSensitiveLog\");\nvar InspectionDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.input && { input: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterArguments && { afterArguments: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterInputPath && { afterInputPath: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterParameters && { afterParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.result && { result: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterResultSelector && { afterResultSelector: import_smithy_client.SENSITIVE_STRING },\n ...obj.afterResultPath && { afterResultPath: import_smithy_client.SENSITIVE_STRING },\n ...obj.variables && { variables: import_smithy_client.SENSITIVE_STRING }\n}), \"InspectionDataFilterSensitiveLog\");\nvar TestStateOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.output && { output: import_smithy_client.SENSITIVE_STRING },\n ...obj.error && { error: import_smithy_client.SENSITIVE_STRING },\n ...obj.cause && { cause: import_smithy_client.SENSITIVE_STRING },\n ...obj.inspectionData && { inspectionData: import_smithy_client.SENSITIVE_STRING }\n}), \"TestStateOutputFilterSensitiveLog\");\nvar UpdateStateMachineInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING },\n ...obj.versionDescription && { versionDescription: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateStateMachineInputFilterSensitiveLog\");\nvar UpdateStateMachineAliasInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.description && { description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateStateMachineAliasInputFilterSensitiveLog\");\nvar ValidateStateMachineDefinitionInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.definition && { definition: import_smithy_client.SENSITIVE_STRING }\n}), \"ValidateStateMachineDefinitionInputFilterSensitiveLog\");\nvar ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.code && { code: import_smithy_client.SENSITIVE_STRING },\n ...obj.message && { message: import_smithy_client.SENSITIVE_STRING },\n ...obj.location && { location: import_smithy_client.SENSITIVE_STRING }\n}), \"ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog\");\nvar ValidateStateMachineDefinitionOutputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.diagnostics && {\n diagnostics: obj.diagnostics.map((item) => ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog(item))\n }\n}), \"ValidateStateMachineDefinitionOutputFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_0.ts\nvar se_CreateActivityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateActivity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateActivityCommand\");\nvar se_CreateStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateStateMachineCommand\");\nvar se_CreateStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateStateMachineAliasCommand\");\nvar se_DeleteActivityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteActivity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteActivityCommand\");\nvar se_DeleteStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteStateMachineCommand\");\nvar se_DeleteStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteStateMachineAliasCommand\");\nvar se_DeleteStateMachineVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteStateMachineVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteStateMachineVersionCommand\");\nvar se_DescribeActivityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeActivity\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeActivityCommand\");\nvar se_DescribeExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeExecutionCommand\");\nvar se_DescribeMapRunCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMapRun\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMapRunCommand\");\nvar se_DescribeStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStateMachineCommand\");\nvar se_DescribeStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStateMachineAliasCommand\");\nvar se_DescribeStateMachineForExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeStateMachineForExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeStateMachineForExecutionCommand\");\nvar se_GetActivityTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetActivityTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetActivityTaskCommand\");\nvar se_GetExecutionHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetExecutionHistory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetExecutionHistoryCommand\");\nvar se_ListActivitiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListActivities\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListActivitiesCommand\");\nvar se_ListExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListExecutionsCommand\");\nvar se_ListMapRunsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListMapRuns\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListMapRunsCommand\");\nvar se_ListStateMachineAliasesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListStateMachineAliases\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListStateMachineAliasesCommand\");\nvar se_ListStateMachinesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListStateMachines\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListStateMachinesCommand\");\nvar se_ListStateMachineVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListStateMachineVersions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListStateMachineVersionsCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_PublishStateMachineVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PublishStateMachineVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PublishStateMachineVersionCommand\");\nvar se_RedriveExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RedriveExecution\");\n let body;\n body = JSON.stringify(se_RedriveExecutionInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RedriveExecutionCommand\");\nvar se_SendTaskFailureCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendTaskFailure\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendTaskFailureCommand\");\nvar se_SendTaskHeartbeatCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendTaskHeartbeat\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendTaskHeartbeatCommand\");\nvar se_SendTaskSuccessCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendTaskSuccess\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendTaskSuccessCommand\");\nvar se_StartExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartExecutionCommand\");\nvar se_StartSyncExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSyncExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"sync-\" + resolvedHostname;\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return buildHttpRpcRequest(context, headers, \"/\", resolvedHostname, body);\n}, \"se_StartSyncExecutionCommand\");\nvar se_StopExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopExecutionCommand\");\nvar se_TagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TagResourceCommand\");\nvar se_TestStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TestState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"sync-\" + resolvedHostname;\n if (!(0, import_protocol_http.isValidHostname)(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return buildHttpRpcRequest(context, headers, \"/\", resolvedHostname, body);\n}, \"se_TestStateCommand\");\nvar se_UntagResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UntagResourceCommand\");\nvar se_UpdateMapRunCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMapRun\");\n let body;\n body = JSON.stringify(se_UpdateMapRunInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMapRunCommand\");\nvar se_UpdateStateMachineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateStateMachine\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateStateMachineCommand\");\nvar se_UpdateStateMachineAliasCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateStateMachineAlias\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateStateMachineAliasCommand\");\nvar se_ValidateStateMachineDefinitionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ValidateStateMachineDefinition\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ValidateStateMachineDefinitionCommand\");\nvar de_CreateActivityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateActivityOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateActivityCommand\");\nvar de_CreateStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateStateMachineOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateStateMachineCommand\");\nvar de_CreateStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateStateMachineAliasOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateStateMachineAliasCommand\");\nvar de_DeleteActivityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteActivityCommand\");\nvar de_DeleteStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteStateMachineCommand\");\nvar de_DeleteStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteStateMachineAliasCommand\");\nvar de_DeleteStateMachineVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteStateMachineVersionCommand\");\nvar de_DescribeActivityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeActivityOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeActivityCommand\");\nvar de_DescribeExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeExecutionCommand\");\nvar de_DescribeMapRunCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMapRunOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMapRunCommand\");\nvar de_DescribeStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStateMachineOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStateMachineCommand\");\nvar de_DescribeStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStateMachineAliasOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStateMachineAliasCommand\");\nvar de_DescribeStateMachineForExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeStateMachineForExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeStateMachineForExecutionCommand\");\nvar de_GetActivityTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetActivityTaskCommand\");\nvar de_GetExecutionHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetExecutionHistoryOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetExecutionHistoryCommand\");\nvar de_ListActivitiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListActivitiesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListActivitiesCommand\");\nvar de_ListExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListExecutionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListExecutionsCommand\");\nvar de_ListMapRunsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListMapRunsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListMapRunsCommand\");\nvar de_ListStateMachineAliasesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListStateMachineAliasesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListStateMachineAliasesCommand\");\nvar de_ListStateMachinesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListStateMachinesOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListStateMachinesCommand\");\nvar de_ListStateMachineVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListStateMachineVersionsOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListStateMachineVersionsCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_PublishStateMachineVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_PublishStateMachineVersionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PublishStateMachineVersionCommand\");\nvar de_RedriveExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_RedriveExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RedriveExecutionCommand\");\nvar de_SendTaskFailureCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendTaskFailureCommand\");\nvar de_SendTaskHeartbeatCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendTaskHeartbeatCommand\");\nvar de_SendTaskSuccessCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendTaskSuccessCommand\");\nvar de_StartExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartExecutionCommand\");\nvar de_StartSyncExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StartSyncExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSyncExecutionCommand\");\nvar de_StopExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_StopExecutionOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopExecutionCommand\");\nvar de_TagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TagResourceCommand\");\nvar de_TestStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TestStateCommand\");\nvar de_UntagResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UntagResourceCommand\");\nvar de_UpdateMapRunCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMapRunCommand\");\nvar de_UpdateStateMachineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateStateMachineOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateStateMachineCommand\");\nvar de_UpdateStateMachineAliasCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateStateMachineAliasOutput(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateStateMachineAliasCommand\");\nvar de_ValidateStateMachineDefinitionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ValidateStateMachineDefinitionCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"ActivityAlreadyExists\":\n case \"com.amazonaws.sfn#ActivityAlreadyExists\":\n throw await de_ActivityAlreadyExistsRes(parsedOutput, context);\n case \"ActivityLimitExceeded\":\n case \"com.amazonaws.sfn#ActivityLimitExceeded\":\n throw await de_ActivityLimitExceededRes(parsedOutput, context);\n case \"InvalidEncryptionConfiguration\":\n case \"com.amazonaws.sfn#InvalidEncryptionConfiguration\":\n throw await de_InvalidEncryptionConfigurationRes(parsedOutput, context);\n case \"InvalidName\":\n case \"com.amazonaws.sfn#InvalidName\":\n throw await de_InvalidNameRes(parsedOutput, context);\n case \"KmsAccessDeniedException\":\n case \"com.amazonaws.sfn#KmsAccessDeniedException\":\n throw await de_KmsAccessDeniedExceptionRes(parsedOutput, context);\n case \"KmsThrottlingException\":\n case \"com.amazonaws.sfn#KmsThrottlingException\":\n throw await de_KmsThrottlingExceptionRes(parsedOutput, context);\n case \"TooManyTags\":\n case \"com.amazonaws.sfn#TooManyTags\":\n throw await de_TooManyTagsRes(parsedOutput, context);\n case \"ConflictException\":\n case \"com.amazonaws.sfn#ConflictException\":\n throw await de_ConflictExceptionRes(parsedOutput, context);\n case \"InvalidArn\":\n case \"com.amazonaws.sfn#InvalidArn\":\n throw await de_InvalidArnRes(parsedOutput, context);\n case \"InvalidDefinition\":\n case \"com.amazonaws.sfn#InvalidDefinition\":\n throw await de_InvalidDefinitionRes(parsedOutput, context);\n case \"InvalidLoggingConfiguration\":\n case \"com.amazonaws.sfn#InvalidLoggingConfiguration\":\n throw await de_InvalidLoggingConfigurationRes(parsedOutput, context);\n case \"InvalidTracingConfiguration\":\n case \"com.amazonaws.sfn#InvalidTracingConfiguration\":\n throw await de_InvalidTracingConfigurationRes(parsedOutput, context);\n case \"StateMachineAlreadyExists\":\n case \"com.amazonaws.sfn#StateMachineAlreadyExists\":\n throw await de_StateMachineAlreadyExistsRes(parsedOutput, context);\n case \"StateMachineDeleting\":\n case \"com.amazonaws.sfn#StateMachineDeleting\":\n throw await de_StateMachineDeletingRes(parsedOutput, context);\n case \"StateMachineLimitExceeded\":\n case \"com.amazonaws.sfn#StateMachineLimitExceeded\":\n throw await de_StateMachineLimitExceededRes(parsedOutput, context);\n case \"StateMachineTypeNotSupported\":\n case \"com.amazonaws.sfn#StateMachineTypeNotSupported\":\n throw await de_StateMachineTypeNotSupportedRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.sfn#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"ResourceNotFound\":\n case \"com.amazonaws.sfn#ResourceNotFound\":\n throw await de_ResourceNotFoundRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.sfn#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"ActivityDoesNotExist\":\n case \"com.amazonaws.sfn#ActivityDoesNotExist\":\n throw await de_ActivityDoesNotExistRes(parsedOutput, context);\n case \"ExecutionDoesNotExist\":\n case \"com.amazonaws.sfn#ExecutionDoesNotExist\":\n throw await de_ExecutionDoesNotExistRes(parsedOutput, context);\n case \"KmsInvalidStateException\":\n case \"com.amazonaws.sfn#KmsInvalidStateException\":\n throw await de_KmsInvalidStateExceptionRes(parsedOutput, context);\n case \"StateMachineDoesNotExist\":\n case \"com.amazonaws.sfn#StateMachineDoesNotExist\":\n throw await de_StateMachineDoesNotExistRes(parsedOutput, context);\n case \"ActivityWorkerLimitExceeded\":\n case \"com.amazonaws.sfn#ActivityWorkerLimitExceeded\":\n throw await de_ActivityWorkerLimitExceededRes(parsedOutput, context);\n case \"InvalidToken\":\n case \"com.amazonaws.sfn#InvalidToken\":\n throw await de_InvalidTokenRes(parsedOutput, context);\n case \"ExecutionLimitExceeded\":\n case \"com.amazonaws.sfn#ExecutionLimitExceeded\":\n throw await de_ExecutionLimitExceededRes(parsedOutput, context);\n case \"ExecutionNotRedrivable\":\n case \"com.amazonaws.sfn#ExecutionNotRedrivable\":\n throw await de_ExecutionNotRedrivableRes(parsedOutput, context);\n case \"TaskDoesNotExist\":\n case \"com.amazonaws.sfn#TaskDoesNotExist\":\n throw await de_TaskDoesNotExistRes(parsedOutput, context);\n case \"TaskTimedOut\":\n case \"com.amazonaws.sfn#TaskTimedOut\":\n throw await de_TaskTimedOutRes(parsedOutput, context);\n case \"InvalidOutput\":\n case \"com.amazonaws.sfn#InvalidOutput\":\n throw await de_InvalidOutputRes(parsedOutput, context);\n case \"ExecutionAlreadyExists\":\n case \"com.amazonaws.sfn#ExecutionAlreadyExists\":\n throw await de_ExecutionAlreadyExistsRes(parsedOutput, context);\n case \"InvalidExecutionInput\":\n case \"com.amazonaws.sfn#InvalidExecutionInput\":\n throw await de_InvalidExecutionInputRes(parsedOutput, context);\n case \"MissingRequiredParameter\":\n case \"com.amazonaws.sfn#MissingRequiredParameter\":\n throw await de_MissingRequiredParameterRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ActivityAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityAlreadyExistsRes\");\nvar de_ActivityDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityDoesNotExistRes\");\nvar de_ActivityLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityLimitExceededRes\");\nvar de_ActivityWorkerLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ActivityWorkerLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ActivityWorkerLimitExceededRes\");\nvar de_ConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ConflictExceptionRes\");\nvar de_ExecutionAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionAlreadyExistsRes\");\nvar de_ExecutionDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionDoesNotExistRes\");\nvar de_ExecutionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionLimitExceededRes\");\nvar de_ExecutionNotRedrivableRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ExecutionNotRedrivable({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExecutionNotRedrivableRes\");\nvar de_InvalidArnRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidArn({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidArnRes\");\nvar de_InvalidDefinitionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDefinition({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDefinitionRes\");\nvar de_InvalidEncryptionConfigurationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidEncryptionConfiguration({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidEncryptionConfigurationRes\");\nvar de_InvalidExecutionInputRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidExecutionInput({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidExecutionInputRes\");\nvar de_InvalidLoggingConfigurationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidLoggingConfiguration({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidLoggingConfigurationRes\");\nvar de_InvalidNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidName({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNameRes\");\nvar de_InvalidOutputRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOutput({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOutputRes\");\nvar de_InvalidTokenRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidToken({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTokenRes\");\nvar de_InvalidTracingConfigurationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTracingConfiguration({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTracingConfigurationRes\");\nvar de_KmsAccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsAccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsAccessDeniedExceptionRes\");\nvar de_KmsInvalidStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsInvalidStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsInvalidStateExceptionRes\");\nvar de_KmsThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new KmsThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_KmsThrottlingExceptionRes\");\nvar de_MissingRequiredParameterRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MissingRequiredParameter({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MissingRequiredParameterRes\");\nvar de_ResourceNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_StateMachineAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineAlreadyExistsRes\");\nvar de_StateMachineDeletingRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineDeleting({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineDeletingRes\");\nvar de_StateMachineDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineDoesNotExistRes\");\nvar de_StateMachineLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineLimitExceededRes\");\nvar de_StateMachineTypeNotSupportedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StateMachineTypeNotSupported({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StateMachineTypeNotSupportedRes\");\nvar de_TaskDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TaskDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TaskDoesNotExistRes\");\nvar de_TaskTimedOutRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TaskTimedOut({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TaskTimedOutRes\");\nvar de_TooManyTagsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTags({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar se_RedriveExecutionInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n clientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n executionArn: []\n });\n}, \"se_RedriveExecutionInput\");\nvar se_UpdateMapRunInput = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n mapRunArn: [],\n maxConcurrency: [],\n toleratedFailureCount: [],\n toleratedFailurePercentage: import_smithy_client.serializeFloat\n });\n}, \"se_UpdateMapRunInput\");\nvar de_ActivityList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ActivityListItem(entry, context);\n });\n return retVal;\n}, \"de_ActivityList\");\nvar de_ActivityListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityArn: import_smithy_client.expectString,\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n name: import_smithy_client.expectString\n });\n}, \"de_ActivityListItem\");\nvar de_CreateActivityOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityArn: import_smithy_client.expectString,\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\")\n });\n}, \"de_CreateActivityOutput\");\nvar de_CreateStateMachineAliasOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineAliasArn: import_smithy_client.expectString\n });\n}, \"de_CreateStateMachineAliasOutput\");\nvar de_CreateStateMachineOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineArn: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString\n });\n}, \"de_CreateStateMachineOutput\");\nvar de_DescribeActivityOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityArn: import_smithy_client.expectString,\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n encryptionConfiguration: import_smithy_client._json,\n name: import_smithy_client.expectString\n });\n}, \"de_DescribeActivityOutput\");\nvar de_DescribeExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n cause: import_smithy_client.expectString,\n error: import_smithy_client.expectString,\n executionArn: import_smithy_client.expectString,\n input: import_smithy_client.expectString,\n inputDetails: import_smithy_client._json,\n mapRunArn: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n output: import_smithy_client.expectString,\n outputDetails: import_smithy_client._json,\n redriveCount: import_smithy_client.expectInt32,\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\"),\n redriveStatus: import_smithy_client.expectString,\n redriveStatusReason: import_smithy_client.expectString,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineAliasArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\"),\n traceHeader: import_smithy_client.expectString\n });\n}, \"de_DescribeExecutionOutput\");\nvar de_DescribeMapRunOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n executionCounts: import_smithy_client._json,\n itemCounts: import_smithy_client._json,\n mapRunArn: import_smithy_client.expectString,\n maxConcurrency: import_smithy_client.expectInt32,\n redriveCount: import_smithy_client.expectInt32,\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\"),\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\"),\n toleratedFailureCount: import_smithy_client.expectLong,\n toleratedFailurePercentage: import_smithy_client.limitedParseFloat32\n });\n}, \"de_DescribeMapRunOutput\");\nvar de_DescribeStateMachineAliasOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n description: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n routingConfiguration: import_smithy_client._json,\n stateMachineAliasArn: import_smithy_client.expectString,\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\")\n });\n}, \"de_DescribeStateMachineAliasOutput\");\nvar de_DescribeStateMachineForExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n definition: import_smithy_client.expectString,\n encryptionConfiguration: import_smithy_client._json,\n label: import_smithy_client.expectString,\n loggingConfiguration: import_smithy_client._json,\n mapRunArn: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n revisionId: import_smithy_client.expectString,\n roleArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n tracingConfiguration: import_smithy_client._json,\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\"),\n variableReferences: import_smithy_client._json\n });\n}, \"de_DescribeStateMachineForExecutionOutput\");\nvar de_DescribeStateMachineOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n definition: import_smithy_client.expectString,\n description: import_smithy_client.expectString,\n encryptionConfiguration: import_smithy_client._json,\n label: import_smithy_client.expectString,\n loggingConfiguration: import_smithy_client._json,\n name: import_smithy_client.expectString,\n revisionId: import_smithy_client.expectString,\n roleArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n tracingConfiguration: import_smithy_client._json,\n type: import_smithy_client.expectString,\n variableReferences: import_smithy_client._json\n });\n}, \"de_DescribeStateMachineOutput\");\nvar de_ExecutionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ExecutionListItem(entry, context);\n });\n return retVal;\n}, \"de_ExecutionList\");\nvar de_ExecutionListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n itemCount: import_smithy_client.expectInt32,\n mapRunArn: import_smithy_client.expectString,\n name: import_smithy_client.expectString,\n redriveCount: import_smithy_client.expectInt32,\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\"),\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineAliasArn: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\")\n });\n}, \"de_ExecutionListItem\");\nvar de_GetExecutionHistoryOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n events: /* @__PURE__ */ __name((_) => de_HistoryEventList(_, context), \"events\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_GetExecutionHistoryOutput\");\nvar de_HistoryEvent = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activityFailedEventDetails: import_smithy_client._json,\n activityScheduleFailedEventDetails: import_smithy_client._json,\n activityScheduledEventDetails: import_smithy_client._json,\n activityStartedEventDetails: import_smithy_client._json,\n activitySucceededEventDetails: import_smithy_client._json,\n activityTimedOutEventDetails: import_smithy_client._json,\n evaluationFailedEventDetails: import_smithy_client._json,\n executionAbortedEventDetails: import_smithy_client._json,\n executionFailedEventDetails: import_smithy_client._json,\n executionRedrivenEventDetails: import_smithy_client._json,\n executionStartedEventDetails: import_smithy_client._json,\n executionSucceededEventDetails: import_smithy_client._json,\n executionTimedOutEventDetails: import_smithy_client._json,\n id: import_smithy_client.expectLong,\n lambdaFunctionFailedEventDetails: import_smithy_client._json,\n lambdaFunctionScheduleFailedEventDetails: import_smithy_client._json,\n lambdaFunctionScheduledEventDetails: import_smithy_client._json,\n lambdaFunctionStartFailedEventDetails: import_smithy_client._json,\n lambdaFunctionSucceededEventDetails: import_smithy_client._json,\n lambdaFunctionTimedOutEventDetails: import_smithy_client._json,\n mapIterationAbortedEventDetails: import_smithy_client._json,\n mapIterationFailedEventDetails: import_smithy_client._json,\n mapIterationStartedEventDetails: import_smithy_client._json,\n mapIterationSucceededEventDetails: import_smithy_client._json,\n mapRunFailedEventDetails: import_smithy_client._json,\n mapRunRedrivenEventDetails: import_smithy_client._json,\n mapRunStartedEventDetails: import_smithy_client._json,\n mapStateStartedEventDetails: import_smithy_client._json,\n previousEventId: import_smithy_client.expectLong,\n stateEnteredEventDetails: import_smithy_client._json,\n stateExitedEventDetails: import_smithy_client._json,\n taskFailedEventDetails: import_smithy_client._json,\n taskScheduledEventDetails: import_smithy_client._json,\n taskStartFailedEventDetails: import_smithy_client._json,\n taskStartedEventDetails: import_smithy_client._json,\n taskSubmitFailedEventDetails: import_smithy_client._json,\n taskSubmittedEventDetails: import_smithy_client._json,\n taskSucceededEventDetails: import_smithy_client._json,\n taskTimedOutEventDetails: import_smithy_client._json,\n timestamp: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"timestamp\"),\n type: import_smithy_client.expectString\n });\n}, \"de_HistoryEvent\");\nvar de_HistoryEventList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_HistoryEvent(entry, context);\n });\n return retVal;\n}, \"de_HistoryEventList\");\nvar de_ListActivitiesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n activities: /* @__PURE__ */ __name((_) => de_ActivityList(_, context), \"activities\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListActivitiesOutput\");\nvar de_ListExecutionsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executions: /* @__PURE__ */ __name((_) => de_ExecutionList(_, context), \"executions\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListExecutionsOutput\");\nvar de_ListMapRunsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n mapRuns: /* @__PURE__ */ __name((_) => de_MapRunList(_, context), \"mapRuns\"),\n nextToken: import_smithy_client.expectString\n });\n}, \"de_ListMapRunsOutput\");\nvar de_ListStateMachineAliasesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n stateMachineAliases: /* @__PURE__ */ __name((_) => de_StateMachineAliasList(_, context), \"stateMachineAliases\")\n });\n}, \"de_ListStateMachineAliasesOutput\");\nvar de_ListStateMachinesOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n stateMachines: /* @__PURE__ */ __name((_) => de_StateMachineList(_, context), \"stateMachines\")\n });\n}, \"de_ListStateMachinesOutput\");\nvar de_ListStateMachineVersionsOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n nextToken: import_smithy_client.expectString,\n stateMachineVersions: /* @__PURE__ */ __name((_) => de_StateMachineVersionList(_, context), \"stateMachineVersions\")\n });\n}, \"de_ListStateMachineVersionsOutput\");\nvar de_MapRunList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MapRunListItem(entry, context);\n });\n return retVal;\n}, \"de_MapRunList\");\nvar de_MapRunListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n mapRunArn: import_smithy_client.expectString,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineArn: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\")\n });\n}, \"de_MapRunListItem\");\nvar de_PublishStateMachineVersionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineVersionArn: import_smithy_client.expectString\n });\n}, \"de_PublishStateMachineVersionOutput\");\nvar de_RedriveExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n redriveDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"redriveDate\")\n });\n}, \"de_RedriveExecutionOutput\");\nvar de_StartExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n executionArn: import_smithy_client.expectString,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\")\n });\n}, \"de_StartExecutionOutput\");\nvar de_StartSyncExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n billingDetails: import_smithy_client._json,\n cause: import_smithy_client.expectString,\n error: import_smithy_client.expectString,\n executionArn: import_smithy_client.expectString,\n input: import_smithy_client.expectString,\n inputDetails: import_smithy_client._json,\n name: import_smithy_client.expectString,\n output: import_smithy_client.expectString,\n outputDetails: import_smithy_client._json,\n startDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"startDate\"),\n stateMachineArn: import_smithy_client.expectString,\n status: import_smithy_client.expectString,\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\"),\n traceHeader: import_smithy_client.expectString\n });\n}, \"de_StartSyncExecutionOutput\");\nvar de_StateMachineAliasList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StateMachineAliasListItem(entry, context);\n });\n return retVal;\n}, \"de_StateMachineAliasList\");\nvar de_StateMachineAliasListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineAliasArn: import_smithy_client.expectString\n });\n}, \"de_StateMachineAliasListItem\");\nvar de_StateMachineList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StateMachineListItem(entry, context);\n });\n return retVal;\n}, \"de_StateMachineList\");\nvar de_StateMachineListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n name: import_smithy_client.expectString,\n stateMachineArn: import_smithy_client.expectString,\n type: import_smithy_client.expectString\n });\n}, \"de_StateMachineListItem\");\nvar de_StateMachineVersionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StateMachineVersionListItem(entry, context);\n });\n return retVal;\n}, \"de_StateMachineVersionList\");\nvar de_StateMachineVersionListItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n creationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"creationDate\"),\n stateMachineVersionArn: import_smithy_client.expectString\n });\n}, \"de_StateMachineVersionListItem\");\nvar de_StopExecutionOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n stopDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"stopDate\")\n });\n}, \"de_StopExecutionOutput\");\nvar de_UpdateStateMachineAliasOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\")\n });\n}, \"de_UpdateStateMachineAliasOutput\");\nvar de_UpdateStateMachineOutput = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n revisionId: import_smithy_client.expectString,\n stateMachineVersionArn: import_smithy_client.expectString,\n updateDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"updateDate\")\n });\n}, \"de_UpdateStateMachineOutput\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SFNServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.0\",\n \"x-amz-target\": `AWSStepFunctions.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/CreateActivityCommand.ts\nvar CreateActivityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"CreateActivity\", {}).n(\"SFNClient\", \"CreateActivityCommand\").f(void 0, void 0).ser(se_CreateActivityCommand).de(de_CreateActivityCommand).build() {\n static {\n __name(this, \"CreateActivityCommand\");\n }\n};\n\n// src/commands/CreateStateMachineAliasCommand.ts\n\n\n\nvar CreateStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"CreateStateMachineAlias\", {}).n(\"SFNClient\", \"CreateStateMachineAliasCommand\").f(CreateStateMachineAliasInputFilterSensitiveLog, void 0).ser(se_CreateStateMachineAliasCommand).de(de_CreateStateMachineAliasCommand).build() {\n static {\n __name(this, \"CreateStateMachineAliasCommand\");\n }\n};\n\n// src/commands/CreateStateMachineCommand.ts\n\n\n\nvar CreateStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"CreateStateMachine\", {}).n(\"SFNClient\", \"CreateStateMachineCommand\").f(CreateStateMachineInputFilterSensitiveLog, void 0).ser(se_CreateStateMachineCommand).de(de_CreateStateMachineCommand).build() {\n static {\n __name(this, \"CreateStateMachineCommand\");\n }\n};\n\n// src/commands/DeleteActivityCommand.ts\n\n\n\nvar DeleteActivityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteActivity\", {}).n(\"SFNClient\", \"DeleteActivityCommand\").f(void 0, void 0).ser(se_DeleteActivityCommand).de(de_DeleteActivityCommand).build() {\n static {\n __name(this, \"DeleteActivityCommand\");\n }\n};\n\n// src/commands/DeleteStateMachineAliasCommand.ts\n\n\n\nvar DeleteStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteStateMachineAlias\", {}).n(\"SFNClient\", \"DeleteStateMachineAliasCommand\").f(void 0, void 0).ser(se_DeleteStateMachineAliasCommand).de(de_DeleteStateMachineAliasCommand).build() {\n static {\n __name(this, \"DeleteStateMachineAliasCommand\");\n }\n};\n\n// src/commands/DeleteStateMachineCommand.ts\n\n\n\nvar DeleteStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteStateMachine\", {}).n(\"SFNClient\", \"DeleteStateMachineCommand\").f(void 0, void 0).ser(se_DeleteStateMachineCommand).de(de_DeleteStateMachineCommand).build() {\n static {\n __name(this, \"DeleteStateMachineCommand\");\n }\n};\n\n// src/commands/DeleteStateMachineVersionCommand.ts\n\n\n\nvar DeleteStateMachineVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DeleteStateMachineVersion\", {}).n(\"SFNClient\", \"DeleteStateMachineVersionCommand\").f(void 0, void 0).ser(se_DeleteStateMachineVersionCommand).de(de_DeleteStateMachineVersionCommand).build() {\n static {\n __name(this, \"DeleteStateMachineVersionCommand\");\n }\n};\n\n// src/commands/DescribeActivityCommand.ts\n\n\n\nvar DescribeActivityCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeActivity\", {}).n(\"SFNClient\", \"DescribeActivityCommand\").f(void 0, void 0).ser(se_DescribeActivityCommand).de(de_DescribeActivityCommand).build() {\n static {\n __name(this, \"DescribeActivityCommand\");\n }\n};\n\n// src/commands/DescribeExecutionCommand.ts\n\n\n\nvar DescribeExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeExecution\", {}).n(\"SFNClient\", \"DescribeExecutionCommand\").f(void 0, DescribeExecutionOutputFilterSensitiveLog).ser(se_DescribeExecutionCommand).de(de_DescribeExecutionCommand).build() {\n static {\n __name(this, \"DescribeExecutionCommand\");\n }\n};\n\n// src/commands/DescribeMapRunCommand.ts\n\n\n\nvar DescribeMapRunCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeMapRun\", {}).n(\"SFNClient\", \"DescribeMapRunCommand\").f(void 0, void 0).ser(se_DescribeMapRunCommand).de(de_DescribeMapRunCommand).build() {\n static {\n __name(this, \"DescribeMapRunCommand\");\n }\n};\n\n// src/commands/DescribeStateMachineAliasCommand.ts\n\n\n\nvar DescribeStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeStateMachineAlias\", {}).n(\"SFNClient\", \"DescribeStateMachineAliasCommand\").f(void 0, DescribeStateMachineAliasOutputFilterSensitiveLog).ser(se_DescribeStateMachineAliasCommand).de(de_DescribeStateMachineAliasCommand).build() {\n static {\n __name(this, \"DescribeStateMachineAliasCommand\");\n }\n};\n\n// src/commands/DescribeStateMachineCommand.ts\n\n\n\nvar DescribeStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeStateMachine\", {}).n(\"SFNClient\", \"DescribeStateMachineCommand\").f(void 0, DescribeStateMachineOutputFilterSensitiveLog).ser(se_DescribeStateMachineCommand).de(de_DescribeStateMachineCommand).build() {\n static {\n __name(this, \"DescribeStateMachineCommand\");\n }\n};\n\n// src/commands/DescribeStateMachineForExecutionCommand.ts\n\n\n\nvar DescribeStateMachineForExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"DescribeStateMachineForExecution\", {}).n(\"SFNClient\", \"DescribeStateMachineForExecutionCommand\").f(void 0, DescribeStateMachineForExecutionOutputFilterSensitiveLog).ser(se_DescribeStateMachineForExecutionCommand).de(de_DescribeStateMachineForExecutionCommand).build() {\n static {\n __name(this, \"DescribeStateMachineForExecutionCommand\");\n }\n};\n\n// src/commands/GetActivityTaskCommand.ts\n\n\n\nvar GetActivityTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"GetActivityTask\", {}).n(\"SFNClient\", \"GetActivityTaskCommand\").f(void 0, GetActivityTaskOutputFilterSensitiveLog).ser(se_GetActivityTaskCommand).de(de_GetActivityTaskCommand).build() {\n static {\n __name(this, \"GetActivityTaskCommand\");\n }\n};\n\n// src/commands/GetExecutionHistoryCommand.ts\n\n\n\nvar GetExecutionHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"GetExecutionHistory\", {}).n(\"SFNClient\", \"GetExecutionHistoryCommand\").f(void 0, GetExecutionHistoryOutputFilterSensitiveLog).ser(se_GetExecutionHistoryCommand).de(de_GetExecutionHistoryCommand).build() {\n static {\n __name(this, \"GetExecutionHistoryCommand\");\n }\n};\n\n// src/commands/ListActivitiesCommand.ts\n\n\n\nvar ListActivitiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListActivities\", {}).n(\"SFNClient\", \"ListActivitiesCommand\").f(void 0, void 0).ser(se_ListActivitiesCommand).de(de_ListActivitiesCommand).build() {\n static {\n __name(this, \"ListActivitiesCommand\");\n }\n};\n\n// src/commands/ListExecutionsCommand.ts\n\n\n\nvar ListExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListExecutions\", {}).n(\"SFNClient\", \"ListExecutionsCommand\").f(void 0, void 0).ser(se_ListExecutionsCommand).de(de_ListExecutionsCommand).build() {\n static {\n __name(this, \"ListExecutionsCommand\");\n }\n};\n\n// src/commands/ListMapRunsCommand.ts\n\n\n\nvar ListMapRunsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListMapRuns\", {}).n(\"SFNClient\", \"ListMapRunsCommand\").f(void 0, void 0).ser(se_ListMapRunsCommand).de(de_ListMapRunsCommand).build() {\n static {\n __name(this, \"ListMapRunsCommand\");\n }\n};\n\n// src/commands/ListStateMachineAliasesCommand.ts\n\n\n\nvar ListStateMachineAliasesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListStateMachineAliases\", {}).n(\"SFNClient\", \"ListStateMachineAliasesCommand\").f(void 0, void 0).ser(se_ListStateMachineAliasesCommand).de(de_ListStateMachineAliasesCommand).build() {\n static {\n __name(this, \"ListStateMachineAliasesCommand\");\n }\n};\n\n// src/commands/ListStateMachinesCommand.ts\n\n\n\nvar ListStateMachinesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListStateMachines\", {}).n(\"SFNClient\", \"ListStateMachinesCommand\").f(void 0, void 0).ser(se_ListStateMachinesCommand).de(de_ListStateMachinesCommand).build() {\n static {\n __name(this, \"ListStateMachinesCommand\");\n }\n};\n\n// src/commands/ListStateMachineVersionsCommand.ts\n\n\n\nvar ListStateMachineVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListStateMachineVersions\", {}).n(\"SFNClient\", \"ListStateMachineVersionsCommand\").f(void 0, void 0).ser(se_ListStateMachineVersionsCommand).de(de_ListStateMachineVersionsCommand).build() {\n static {\n __name(this, \"ListStateMachineVersionsCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ListTagsForResource\", {}).n(\"SFNClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/PublishStateMachineVersionCommand.ts\n\n\n\nvar PublishStateMachineVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"PublishStateMachineVersion\", {}).n(\"SFNClient\", \"PublishStateMachineVersionCommand\").f(PublishStateMachineVersionInputFilterSensitiveLog, void 0).ser(se_PublishStateMachineVersionCommand).de(de_PublishStateMachineVersionCommand).build() {\n static {\n __name(this, \"PublishStateMachineVersionCommand\");\n }\n};\n\n// src/commands/RedriveExecutionCommand.ts\n\n\n\nvar RedriveExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"RedriveExecution\", {}).n(\"SFNClient\", \"RedriveExecutionCommand\").f(void 0, void 0).ser(se_RedriveExecutionCommand).de(de_RedriveExecutionCommand).build() {\n static {\n __name(this, \"RedriveExecutionCommand\");\n }\n};\n\n// src/commands/SendTaskFailureCommand.ts\n\n\n\nvar SendTaskFailureCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"SendTaskFailure\", {}).n(\"SFNClient\", \"SendTaskFailureCommand\").f(SendTaskFailureInputFilterSensitiveLog, void 0).ser(se_SendTaskFailureCommand).de(de_SendTaskFailureCommand).build() {\n static {\n __name(this, \"SendTaskFailureCommand\");\n }\n};\n\n// src/commands/SendTaskHeartbeatCommand.ts\n\n\n\nvar SendTaskHeartbeatCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"SendTaskHeartbeat\", {}).n(\"SFNClient\", \"SendTaskHeartbeatCommand\").f(void 0, void 0).ser(se_SendTaskHeartbeatCommand).de(de_SendTaskHeartbeatCommand).build() {\n static {\n __name(this, \"SendTaskHeartbeatCommand\");\n }\n};\n\n// src/commands/SendTaskSuccessCommand.ts\n\n\n\nvar SendTaskSuccessCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"SendTaskSuccess\", {}).n(\"SFNClient\", \"SendTaskSuccessCommand\").f(SendTaskSuccessInputFilterSensitiveLog, void 0).ser(se_SendTaskSuccessCommand).de(de_SendTaskSuccessCommand).build() {\n static {\n __name(this, \"SendTaskSuccessCommand\");\n }\n};\n\n// src/commands/StartExecutionCommand.ts\n\n\n\nvar StartExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"StartExecution\", {}).n(\"SFNClient\", \"StartExecutionCommand\").f(StartExecutionInputFilterSensitiveLog, void 0).ser(se_StartExecutionCommand).de(de_StartExecutionCommand).build() {\n static {\n __name(this, \"StartExecutionCommand\");\n }\n};\n\n// src/commands/StartSyncExecutionCommand.ts\n\n\n\nvar StartSyncExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"StartSyncExecution\", {}).n(\"SFNClient\", \"StartSyncExecutionCommand\").f(StartSyncExecutionInputFilterSensitiveLog, StartSyncExecutionOutputFilterSensitiveLog).ser(se_StartSyncExecutionCommand).de(de_StartSyncExecutionCommand).build() {\n static {\n __name(this, \"StartSyncExecutionCommand\");\n }\n};\n\n// src/commands/StopExecutionCommand.ts\n\n\n\nvar StopExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"StopExecution\", {}).n(\"SFNClient\", \"StopExecutionCommand\").f(StopExecutionInputFilterSensitiveLog, void 0).ser(se_StopExecutionCommand).de(de_StopExecutionCommand).build() {\n static {\n __name(this, \"StopExecutionCommand\");\n }\n};\n\n// src/commands/TagResourceCommand.ts\n\n\n\nvar TagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"TagResource\", {}).n(\"SFNClient\", \"TagResourceCommand\").f(void 0, void 0).ser(se_TagResourceCommand).de(de_TagResourceCommand).build() {\n static {\n __name(this, \"TagResourceCommand\");\n }\n};\n\n// src/commands/TestStateCommand.ts\n\n\n\nvar TestStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"TestState\", {}).n(\"SFNClient\", \"TestStateCommand\").f(TestStateInputFilterSensitiveLog, TestStateOutputFilterSensitiveLog).ser(se_TestStateCommand).de(de_TestStateCommand).build() {\n static {\n __name(this, \"TestStateCommand\");\n }\n};\n\n// src/commands/UntagResourceCommand.ts\n\n\n\nvar UntagResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UntagResource\", {}).n(\"SFNClient\", \"UntagResourceCommand\").f(void 0, void 0).ser(se_UntagResourceCommand).de(de_UntagResourceCommand).build() {\n static {\n __name(this, \"UntagResourceCommand\");\n }\n};\n\n// src/commands/UpdateMapRunCommand.ts\n\n\n\nvar UpdateMapRunCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UpdateMapRun\", {}).n(\"SFNClient\", \"UpdateMapRunCommand\").f(void 0, void 0).ser(se_UpdateMapRunCommand).de(de_UpdateMapRunCommand).build() {\n static {\n __name(this, \"UpdateMapRunCommand\");\n }\n};\n\n// src/commands/UpdateStateMachineAliasCommand.ts\n\n\n\nvar UpdateStateMachineAliasCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UpdateStateMachineAlias\", {}).n(\"SFNClient\", \"UpdateStateMachineAliasCommand\").f(UpdateStateMachineAliasInputFilterSensitiveLog, void 0).ser(se_UpdateStateMachineAliasCommand).de(de_UpdateStateMachineAliasCommand).build() {\n static {\n __name(this, \"UpdateStateMachineAliasCommand\");\n }\n};\n\n// src/commands/UpdateStateMachineCommand.ts\n\n\n\nvar UpdateStateMachineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"UpdateStateMachine\", {}).n(\"SFNClient\", \"UpdateStateMachineCommand\").f(UpdateStateMachineInputFilterSensitiveLog, void 0).ser(se_UpdateStateMachineCommand).de(de_UpdateStateMachineCommand).build() {\n static {\n __name(this, \"UpdateStateMachineCommand\");\n }\n};\n\n// src/commands/ValidateStateMachineDefinitionCommand.ts\n\n\n\nvar ValidateStateMachineDefinitionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSStepFunctions\", \"ValidateStateMachineDefinition\", {}).n(\"SFNClient\", \"ValidateStateMachineDefinitionCommand\").f(ValidateStateMachineDefinitionInputFilterSensitiveLog, ValidateStateMachineDefinitionOutputFilterSensitiveLog).ser(se_ValidateStateMachineDefinitionCommand).de(de_ValidateStateMachineDefinitionCommand).build() {\n static {\n __name(this, \"ValidateStateMachineDefinitionCommand\");\n }\n};\n\n// src/SFN.ts\nvar commands = {\n CreateActivityCommand,\n CreateStateMachineCommand,\n CreateStateMachineAliasCommand,\n DeleteActivityCommand,\n DeleteStateMachineCommand,\n DeleteStateMachineAliasCommand,\n DeleteStateMachineVersionCommand,\n DescribeActivityCommand,\n DescribeExecutionCommand,\n DescribeMapRunCommand,\n DescribeStateMachineCommand,\n DescribeStateMachineAliasCommand,\n DescribeStateMachineForExecutionCommand,\n GetActivityTaskCommand,\n GetExecutionHistoryCommand,\n ListActivitiesCommand,\n ListExecutionsCommand,\n ListMapRunsCommand,\n ListStateMachineAliasesCommand,\n ListStateMachinesCommand,\n ListStateMachineVersionsCommand,\n ListTagsForResourceCommand,\n PublishStateMachineVersionCommand,\n RedriveExecutionCommand,\n SendTaskFailureCommand,\n SendTaskHeartbeatCommand,\n SendTaskSuccessCommand,\n StartExecutionCommand,\n StartSyncExecutionCommand,\n StopExecutionCommand,\n TagResourceCommand,\n TestStateCommand,\n UntagResourceCommand,\n UpdateMapRunCommand,\n UpdateStateMachineCommand,\n UpdateStateMachineAliasCommand,\n ValidateStateMachineDefinitionCommand\n};\nvar SFN = class extends SFNClient {\n static {\n __name(this, \"SFN\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SFN);\n\n// src/pagination/GetExecutionHistoryPaginator.ts\n\nvar paginateGetExecutionHistory = (0, import_core.createPaginator)(SFNClient, GetExecutionHistoryCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListActivitiesPaginator.ts\n\nvar paginateListActivities = (0, import_core.createPaginator)(SFNClient, ListActivitiesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListExecutionsPaginator.ts\n\nvar paginateListExecutions = (0, import_core.createPaginator)(SFNClient, ListExecutionsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListMapRunsPaginator.ts\n\nvar paginateListMapRuns = (0, import_core.createPaginator)(SFNClient, ListMapRunsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListStateMachinesPaginator.ts\n\nvar paginateListStateMachines = (0, import_core.createPaginator)(SFNClient, ListStateMachinesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SFNServiceException,\n __Client,\n SFNClient,\n SFN,\n $Command,\n CreateActivityCommand,\n CreateStateMachineAliasCommand,\n CreateStateMachineCommand,\n DeleteActivityCommand,\n DeleteStateMachineAliasCommand,\n DeleteStateMachineCommand,\n DeleteStateMachineVersionCommand,\n DescribeActivityCommand,\n DescribeExecutionCommand,\n DescribeMapRunCommand,\n DescribeStateMachineAliasCommand,\n DescribeStateMachineCommand,\n DescribeStateMachineForExecutionCommand,\n GetActivityTaskCommand,\n GetExecutionHistoryCommand,\n ListActivitiesCommand,\n ListExecutionsCommand,\n ListMapRunsCommand,\n ListStateMachineAliasesCommand,\n ListStateMachineVersionsCommand,\n ListStateMachinesCommand,\n ListTagsForResourceCommand,\n PublishStateMachineVersionCommand,\n RedriveExecutionCommand,\n SendTaskFailureCommand,\n SendTaskHeartbeatCommand,\n SendTaskSuccessCommand,\n StartExecutionCommand,\n StartSyncExecutionCommand,\n StopExecutionCommand,\n TagResourceCommand,\n TestStateCommand,\n UntagResourceCommand,\n UpdateMapRunCommand,\n UpdateStateMachineAliasCommand,\n UpdateStateMachineCommand,\n ValidateStateMachineDefinitionCommand,\n paginateGetExecutionHistory,\n paginateListActivities,\n paginateListExecutions,\n paginateListMapRuns,\n paginateListStateMachines,\n ActivityAlreadyExists,\n ActivityDoesNotExist,\n ActivityLimitExceeded,\n ActivityWorkerLimitExceeded,\n EncryptionType,\n InvalidEncryptionConfiguration,\n InvalidName,\n KmsAccessDeniedException,\n KmsThrottlingException,\n TooManyTags,\n ConflictException,\n LogLevel,\n StateMachineType,\n InvalidArn,\n InvalidDefinition,\n InvalidLoggingConfiguration,\n InvalidTracingConfiguration,\n StateMachineAlreadyExists,\n StateMachineDeleting,\n StateMachineLimitExceeded,\n StateMachineTypeNotSupported,\n ValidationExceptionReason,\n ValidationException,\n ResourceNotFound,\n ServiceQuotaExceededException,\n IncludedData,\n ExecutionRedriveStatus,\n ExecutionStatus,\n ExecutionDoesNotExist,\n KmsKeyState,\n KmsInvalidStateException,\n MapRunStatus,\n StateMachineStatus,\n StateMachineDoesNotExist,\n HistoryEventType,\n InvalidToken,\n ExecutionRedriveFilter,\n ExecutionLimitExceeded,\n ExecutionNotRedrivable,\n TaskDoesNotExist,\n TaskTimedOut,\n InvalidOutput,\n ExecutionAlreadyExists,\n InvalidExecutionInput,\n SyncExecutionStatus,\n InspectionLevel,\n TestExecutionStatus,\n MissingRequiredParameter,\n ValidateStateMachineDefinitionSeverity,\n ValidateStateMachineDefinitionResultCode,\n ActivityFailedEventDetailsFilterSensitiveLog,\n ActivityScheduledEventDetailsFilterSensitiveLog,\n ActivityScheduleFailedEventDetailsFilterSensitiveLog,\n ActivitySucceededEventDetailsFilterSensitiveLog,\n ActivityTimedOutEventDetailsFilterSensitiveLog,\n CreateStateMachineInputFilterSensitiveLog,\n CreateStateMachineAliasInputFilterSensitiveLog,\n DescribeExecutionOutputFilterSensitiveLog,\n DescribeStateMachineOutputFilterSensitiveLog,\n DescribeStateMachineAliasOutputFilterSensitiveLog,\n DescribeStateMachineForExecutionOutputFilterSensitiveLog,\n GetActivityTaskOutputFilterSensitiveLog,\n EvaluationFailedEventDetailsFilterSensitiveLog,\n ExecutionAbortedEventDetailsFilterSensitiveLog,\n ExecutionFailedEventDetailsFilterSensitiveLog,\n ExecutionStartedEventDetailsFilterSensitiveLog,\n ExecutionSucceededEventDetailsFilterSensitiveLog,\n ExecutionTimedOutEventDetailsFilterSensitiveLog,\n LambdaFunctionFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduledEventDetailsFilterSensitiveLog,\n LambdaFunctionScheduleFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionStartFailedEventDetailsFilterSensitiveLog,\n LambdaFunctionSucceededEventDetailsFilterSensitiveLog,\n LambdaFunctionTimedOutEventDetailsFilterSensitiveLog,\n MapRunFailedEventDetailsFilterSensitiveLog,\n StateEnteredEventDetailsFilterSensitiveLog,\n StateExitedEventDetailsFilterSensitiveLog,\n TaskFailedEventDetailsFilterSensitiveLog,\n TaskScheduledEventDetailsFilterSensitiveLog,\n TaskStartFailedEventDetailsFilterSensitiveLog,\n TaskSubmitFailedEventDetailsFilterSensitiveLog,\n TaskSubmittedEventDetailsFilterSensitiveLog,\n TaskSucceededEventDetailsFilterSensitiveLog,\n TaskTimedOutEventDetailsFilterSensitiveLog,\n HistoryEventFilterSensitiveLog,\n GetExecutionHistoryOutputFilterSensitiveLog,\n PublishStateMachineVersionInputFilterSensitiveLog,\n SendTaskFailureInputFilterSensitiveLog,\n SendTaskSuccessInputFilterSensitiveLog,\n StartExecutionInputFilterSensitiveLog,\n StartSyncExecutionInputFilterSensitiveLog,\n StartSyncExecutionOutputFilterSensitiveLog,\n StopExecutionInputFilterSensitiveLog,\n TestStateInputFilterSensitiveLog,\n InspectionDataFilterSensitiveLog,\n TestStateOutputFilterSensitiveLog,\n UpdateStateMachineInputFilterSensitiveLog,\n UpdateStateMachineAliasInputFilterSensitiveLog,\n ValidateStateMachineDefinitionInputFilterSensitiveLog,\n ValidateStateMachineDefinitionDiagnosticFilterSensitiveLog,\n ValidateStateMachineDefinitionOutputFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2016-11-23\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSFNHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SFN\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSMHttpAuthSchemeProvider = exports.defaultSSMHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSMHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSMHttpAuthSchemeParametersProvider = defaultSSMHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"ssm\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nconst defaultSSMHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSMHttpAuthSchemeProvider = defaultSSMHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://ssm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://ssm.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://ssm-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://ssm.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://ssm.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AccessDeniedException: () => AccessDeniedException,\n AccessRequestStatus: () => AccessRequestStatus,\n AddTagsToResourceCommand: () => AddTagsToResourceCommand,\n AlreadyExistsException: () => AlreadyExistsException,\n AssociateOpsItemRelatedItemCommand: () => AssociateOpsItemRelatedItemCommand,\n AssociatedInstances: () => AssociatedInstances,\n AssociationAlreadyExists: () => AssociationAlreadyExists,\n AssociationComplianceSeverity: () => AssociationComplianceSeverity,\n AssociationDescriptionFilterSensitiveLog: () => AssociationDescriptionFilterSensitiveLog,\n AssociationDoesNotExist: () => AssociationDoesNotExist,\n AssociationExecutionDoesNotExist: () => AssociationExecutionDoesNotExist,\n AssociationExecutionFilterKey: () => AssociationExecutionFilterKey,\n AssociationExecutionTargetsFilterKey: () => AssociationExecutionTargetsFilterKey,\n AssociationFilterKey: () => AssociationFilterKey,\n AssociationFilterOperatorType: () => AssociationFilterOperatorType,\n AssociationLimitExceeded: () => AssociationLimitExceeded,\n AssociationStatusName: () => AssociationStatusName,\n AssociationSyncCompliance: () => AssociationSyncCompliance,\n AssociationVersionInfoFilterSensitiveLog: () => AssociationVersionInfoFilterSensitiveLog,\n AssociationVersionLimitExceeded: () => AssociationVersionLimitExceeded,\n AttachmentHashType: () => AttachmentHashType,\n AttachmentsSourceKey: () => AttachmentsSourceKey,\n AutomationDefinitionNotApprovedException: () => AutomationDefinitionNotApprovedException,\n AutomationDefinitionNotFoundException: () => AutomationDefinitionNotFoundException,\n AutomationDefinitionVersionNotFoundException: () => AutomationDefinitionVersionNotFoundException,\n AutomationExecutionFilterKey: () => AutomationExecutionFilterKey,\n AutomationExecutionLimitExceededException: () => AutomationExecutionLimitExceededException,\n AutomationExecutionNotFoundException: () => AutomationExecutionNotFoundException,\n AutomationExecutionStatus: () => AutomationExecutionStatus,\n AutomationStepNotFoundException: () => AutomationStepNotFoundException,\n AutomationSubtype: () => AutomationSubtype,\n AutomationType: () => AutomationType,\n BaselineOverrideFilterSensitiveLog: () => BaselineOverrideFilterSensitiveLog,\n CalendarState: () => CalendarState,\n CancelCommandCommand: () => CancelCommandCommand,\n CancelMaintenanceWindowExecutionCommand: () => CancelMaintenanceWindowExecutionCommand,\n CommandFilterKey: () => CommandFilterKey,\n CommandFilterSensitiveLog: () => CommandFilterSensitiveLog,\n CommandInvocationStatus: () => CommandInvocationStatus,\n CommandPluginStatus: () => CommandPluginStatus,\n CommandStatus: () => CommandStatus,\n ComplianceQueryOperatorType: () => ComplianceQueryOperatorType,\n ComplianceSeverity: () => ComplianceSeverity,\n ComplianceStatus: () => ComplianceStatus,\n ComplianceTypeCountLimitExceededException: () => ComplianceTypeCountLimitExceededException,\n ComplianceUploadType: () => ComplianceUploadType,\n ConnectionStatus: () => ConnectionStatus,\n CreateActivationCommand: () => CreateActivationCommand,\n CreateAssociationBatchCommand: () => CreateAssociationBatchCommand,\n CreateAssociationBatchRequestEntryFilterSensitiveLog: () => CreateAssociationBatchRequestEntryFilterSensitiveLog,\n CreateAssociationBatchRequestFilterSensitiveLog: () => CreateAssociationBatchRequestFilterSensitiveLog,\n CreateAssociationBatchResultFilterSensitiveLog: () => CreateAssociationBatchResultFilterSensitiveLog,\n CreateAssociationCommand: () => CreateAssociationCommand,\n CreateAssociationRequestFilterSensitiveLog: () => CreateAssociationRequestFilterSensitiveLog,\n CreateAssociationResultFilterSensitiveLog: () => CreateAssociationResultFilterSensitiveLog,\n CreateDocumentCommand: () => CreateDocumentCommand,\n CreateMaintenanceWindowCommand: () => CreateMaintenanceWindowCommand,\n CreateMaintenanceWindowRequestFilterSensitiveLog: () => CreateMaintenanceWindowRequestFilterSensitiveLog,\n CreateOpsItemCommand: () => CreateOpsItemCommand,\n CreateOpsMetadataCommand: () => CreateOpsMetadataCommand,\n CreatePatchBaselineCommand: () => CreatePatchBaselineCommand,\n CreatePatchBaselineRequestFilterSensitiveLog: () => CreatePatchBaselineRequestFilterSensitiveLog,\n CreateResourceDataSyncCommand: () => CreateResourceDataSyncCommand,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n CustomSchemaCountLimitExceededException: () => CustomSchemaCountLimitExceededException,\n DeleteActivationCommand: () => DeleteActivationCommand,\n DeleteAssociationCommand: () => DeleteAssociationCommand,\n DeleteDocumentCommand: () => DeleteDocumentCommand,\n DeleteInventoryCommand: () => DeleteInventoryCommand,\n DeleteMaintenanceWindowCommand: () => DeleteMaintenanceWindowCommand,\n DeleteOpsItemCommand: () => DeleteOpsItemCommand,\n DeleteOpsMetadataCommand: () => DeleteOpsMetadataCommand,\n DeleteParameterCommand: () => DeleteParameterCommand,\n DeleteParametersCommand: () => DeleteParametersCommand,\n DeletePatchBaselineCommand: () => DeletePatchBaselineCommand,\n DeleteResourceDataSyncCommand: () => DeleteResourceDataSyncCommand,\n DeleteResourcePolicyCommand: () => DeleteResourcePolicyCommand,\n DeregisterManagedInstanceCommand: () => DeregisterManagedInstanceCommand,\n DeregisterPatchBaselineForPatchGroupCommand: () => DeregisterPatchBaselineForPatchGroupCommand,\n DeregisterTargetFromMaintenanceWindowCommand: () => DeregisterTargetFromMaintenanceWindowCommand,\n DeregisterTaskFromMaintenanceWindowCommand: () => DeregisterTaskFromMaintenanceWindowCommand,\n DescribeActivationsCommand: () => DescribeActivationsCommand,\n DescribeActivationsFilterKeys: () => DescribeActivationsFilterKeys,\n DescribeAssociationCommand: () => DescribeAssociationCommand,\n DescribeAssociationExecutionTargetsCommand: () => DescribeAssociationExecutionTargetsCommand,\n DescribeAssociationExecutionsCommand: () => DescribeAssociationExecutionsCommand,\n DescribeAssociationResultFilterSensitiveLog: () => DescribeAssociationResultFilterSensitiveLog,\n DescribeAutomationExecutionsCommand: () => DescribeAutomationExecutionsCommand,\n DescribeAutomationStepExecutionsCommand: () => DescribeAutomationStepExecutionsCommand,\n DescribeAvailablePatchesCommand: () => DescribeAvailablePatchesCommand,\n DescribeDocumentCommand: () => DescribeDocumentCommand,\n DescribeDocumentPermissionCommand: () => DescribeDocumentPermissionCommand,\n DescribeEffectiveInstanceAssociationsCommand: () => DescribeEffectiveInstanceAssociationsCommand,\n DescribeEffectivePatchesForPatchBaselineCommand: () => DescribeEffectivePatchesForPatchBaselineCommand,\n DescribeInstanceAssociationsStatusCommand: () => DescribeInstanceAssociationsStatusCommand,\n DescribeInstanceInformationCommand: () => DescribeInstanceInformationCommand,\n DescribeInstanceInformationResultFilterSensitiveLog: () => DescribeInstanceInformationResultFilterSensitiveLog,\n DescribeInstancePatchStatesCommand: () => DescribeInstancePatchStatesCommand,\n DescribeInstancePatchStatesForPatchGroupCommand: () => DescribeInstancePatchStatesForPatchGroupCommand,\n DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog: () => DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog,\n DescribeInstancePatchStatesResultFilterSensitiveLog: () => DescribeInstancePatchStatesResultFilterSensitiveLog,\n DescribeInstancePatchesCommand: () => DescribeInstancePatchesCommand,\n DescribeInstancePropertiesCommand: () => DescribeInstancePropertiesCommand,\n DescribeInstancePropertiesResultFilterSensitiveLog: () => DescribeInstancePropertiesResultFilterSensitiveLog,\n DescribeInventoryDeletionsCommand: () => DescribeInventoryDeletionsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsCommand: () => DescribeMaintenanceWindowExecutionTaskInvocationsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog: () => DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog,\n DescribeMaintenanceWindowExecutionTasksCommand: () => DescribeMaintenanceWindowExecutionTasksCommand,\n DescribeMaintenanceWindowExecutionsCommand: () => DescribeMaintenanceWindowExecutionsCommand,\n DescribeMaintenanceWindowScheduleCommand: () => DescribeMaintenanceWindowScheduleCommand,\n DescribeMaintenanceWindowTargetsCommand: () => DescribeMaintenanceWindowTargetsCommand,\n DescribeMaintenanceWindowTargetsResultFilterSensitiveLog: () => DescribeMaintenanceWindowTargetsResultFilterSensitiveLog,\n DescribeMaintenanceWindowTasksCommand: () => DescribeMaintenanceWindowTasksCommand,\n DescribeMaintenanceWindowTasksResultFilterSensitiveLog: () => DescribeMaintenanceWindowTasksResultFilterSensitiveLog,\n DescribeMaintenanceWindowsCommand: () => DescribeMaintenanceWindowsCommand,\n DescribeMaintenanceWindowsForTargetCommand: () => DescribeMaintenanceWindowsForTargetCommand,\n DescribeMaintenanceWindowsResultFilterSensitiveLog: () => DescribeMaintenanceWindowsResultFilterSensitiveLog,\n DescribeOpsItemsCommand: () => DescribeOpsItemsCommand,\n DescribeParametersCommand: () => DescribeParametersCommand,\n DescribePatchBaselinesCommand: () => DescribePatchBaselinesCommand,\n DescribePatchGroupStateCommand: () => DescribePatchGroupStateCommand,\n DescribePatchGroupsCommand: () => DescribePatchGroupsCommand,\n DescribePatchPropertiesCommand: () => DescribePatchPropertiesCommand,\n DescribeSessionsCommand: () => DescribeSessionsCommand,\n DisassociateOpsItemRelatedItemCommand: () => DisassociateOpsItemRelatedItemCommand,\n DocumentAlreadyExists: () => DocumentAlreadyExists,\n DocumentFilterKey: () => DocumentFilterKey,\n DocumentFormat: () => DocumentFormat,\n DocumentHashType: () => DocumentHashType,\n DocumentLimitExceeded: () => DocumentLimitExceeded,\n DocumentMetadataEnum: () => DocumentMetadataEnum,\n DocumentParameterType: () => DocumentParameterType,\n DocumentPermissionLimit: () => DocumentPermissionLimit,\n DocumentPermissionType: () => DocumentPermissionType,\n DocumentReviewAction: () => DocumentReviewAction,\n DocumentReviewCommentType: () => DocumentReviewCommentType,\n DocumentStatus: () => DocumentStatus,\n DocumentType: () => DocumentType,\n DocumentVersionLimitExceeded: () => DocumentVersionLimitExceeded,\n DoesNotExistException: () => DoesNotExistException,\n DuplicateDocumentContent: () => DuplicateDocumentContent,\n DuplicateDocumentVersionName: () => DuplicateDocumentVersionName,\n DuplicateInstanceId: () => DuplicateInstanceId,\n ExecutionInputs: () => ExecutionInputs,\n ExecutionMode: () => ExecutionMode,\n ExecutionPreview: () => ExecutionPreview,\n ExecutionPreviewStatus: () => ExecutionPreviewStatus,\n ExternalAlarmState: () => ExternalAlarmState,\n FailedCreateAssociationFilterSensitiveLog: () => FailedCreateAssociationFilterSensitiveLog,\n Fault: () => Fault,\n FeatureNotAvailableException: () => FeatureNotAvailableException,\n GetAccessTokenCommand: () => GetAccessTokenCommand,\n GetAccessTokenResponseFilterSensitiveLog: () => GetAccessTokenResponseFilterSensitiveLog,\n GetAutomationExecutionCommand: () => GetAutomationExecutionCommand,\n GetCalendarStateCommand: () => GetCalendarStateCommand,\n GetCommandInvocationCommand: () => GetCommandInvocationCommand,\n GetConnectionStatusCommand: () => GetConnectionStatusCommand,\n GetDefaultPatchBaselineCommand: () => GetDefaultPatchBaselineCommand,\n GetDeployablePatchSnapshotForInstanceCommand: () => GetDeployablePatchSnapshotForInstanceCommand,\n GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog: () => GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog,\n GetDocumentCommand: () => GetDocumentCommand,\n GetExecutionPreviewCommand: () => GetExecutionPreviewCommand,\n GetInventoryCommand: () => GetInventoryCommand,\n GetInventorySchemaCommand: () => GetInventorySchemaCommand,\n GetMaintenanceWindowCommand: () => GetMaintenanceWindowCommand,\n GetMaintenanceWindowExecutionCommand: () => GetMaintenanceWindowExecutionCommand,\n GetMaintenanceWindowExecutionTaskCommand: () => GetMaintenanceWindowExecutionTaskCommand,\n GetMaintenanceWindowExecutionTaskInvocationCommand: () => GetMaintenanceWindowExecutionTaskInvocationCommand,\n GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog: () => GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog,\n GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog: () => GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog,\n GetMaintenanceWindowResultFilterSensitiveLog: () => GetMaintenanceWindowResultFilterSensitiveLog,\n GetMaintenanceWindowTaskCommand: () => GetMaintenanceWindowTaskCommand,\n GetMaintenanceWindowTaskResultFilterSensitiveLog: () => GetMaintenanceWindowTaskResultFilterSensitiveLog,\n GetOpsItemCommand: () => GetOpsItemCommand,\n GetOpsMetadataCommand: () => GetOpsMetadataCommand,\n GetOpsSummaryCommand: () => GetOpsSummaryCommand,\n GetParameterCommand: () => GetParameterCommand,\n GetParameterHistoryCommand: () => GetParameterHistoryCommand,\n GetParameterHistoryResultFilterSensitiveLog: () => GetParameterHistoryResultFilterSensitiveLog,\n GetParameterResultFilterSensitiveLog: () => GetParameterResultFilterSensitiveLog,\n GetParametersByPathCommand: () => GetParametersByPathCommand,\n GetParametersByPathResultFilterSensitiveLog: () => GetParametersByPathResultFilterSensitiveLog,\n GetParametersCommand: () => GetParametersCommand,\n GetParametersResultFilterSensitiveLog: () => GetParametersResultFilterSensitiveLog,\n GetPatchBaselineCommand: () => GetPatchBaselineCommand,\n GetPatchBaselineForPatchGroupCommand: () => GetPatchBaselineForPatchGroupCommand,\n GetPatchBaselineResultFilterSensitiveLog: () => GetPatchBaselineResultFilterSensitiveLog,\n GetResourcePoliciesCommand: () => GetResourcePoliciesCommand,\n GetServiceSettingCommand: () => GetServiceSettingCommand,\n HierarchyLevelLimitExceededException: () => HierarchyLevelLimitExceededException,\n HierarchyTypeMismatchException: () => HierarchyTypeMismatchException,\n IdempotentParameterMismatch: () => IdempotentParameterMismatch,\n ImpactType: () => ImpactType,\n IncompatiblePolicyException: () => IncompatiblePolicyException,\n InstanceInfoFilterSensitiveLog: () => InstanceInfoFilterSensitiveLog,\n InstanceInformationFilterKey: () => InstanceInformationFilterKey,\n InstanceInformationFilterSensitiveLog: () => InstanceInformationFilterSensitiveLog,\n InstancePatchStateFilterSensitiveLog: () => InstancePatchStateFilterSensitiveLog,\n InstancePatchStateOperatorType: () => InstancePatchStateOperatorType,\n InstancePropertyFilterKey: () => InstancePropertyFilterKey,\n InstancePropertyFilterOperator: () => InstancePropertyFilterOperator,\n InstancePropertyFilterSensitiveLog: () => InstancePropertyFilterSensitiveLog,\n InternalServerError: () => InternalServerError,\n InvalidActivation: () => InvalidActivation,\n InvalidActivationId: () => InvalidActivationId,\n InvalidAggregatorException: () => InvalidAggregatorException,\n InvalidAllowedPatternException: () => InvalidAllowedPatternException,\n InvalidAssociation: () => InvalidAssociation,\n InvalidAssociationVersion: () => InvalidAssociationVersion,\n InvalidAutomationExecutionParametersException: () => InvalidAutomationExecutionParametersException,\n InvalidAutomationSignalException: () => InvalidAutomationSignalException,\n InvalidAutomationStatusUpdateException: () => InvalidAutomationStatusUpdateException,\n InvalidCommandId: () => InvalidCommandId,\n InvalidDeleteInventoryParametersException: () => InvalidDeleteInventoryParametersException,\n InvalidDeletionIdException: () => InvalidDeletionIdException,\n InvalidDocument: () => InvalidDocument,\n InvalidDocumentContent: () => InvalidDocumentContent,\n InvalidDocumentOperation: () => InvalidDocumentOperation,\n InvalidDocumentSchemaVersion: () => InvalidDocumentSchemaVersion,\n InvalidDocumentType: () => InvalidDocumentType,\n InvalidDocumentVersion: () => InvalidDocumentVersion,\n InvalidFilter: () => InvalidFilter,\n InvalidFilterKey: () => InvalidFilterKey,\n InvalidFilterOption: () => InvalidFilterOption,\n InvalidFilterValue: () => InvalidFilterValue,\n InvalidInstanceId: () => InvalidInstanceId,\n InvalidInstanceInformationFilterValue: () => InvalidInstanceInformationFilterValue,\n InvalidInstancePropertyFilterValue: () => InvalidInstancePropertyFilterValue,\n InvalidInventoryGroupException: () => InvalidInventoryGroupException,\n InvalidInventoryItemContextException: () => InvalidInventoryItemContextException,\n InvalidInventoryRequestException: () => InvalidInventoryRequestException,\n InvalidItemContentException: () => InvalidItemContentException,\n InvalidKeyId: () => InvalidKeyId,\n InvalidNextToken: () => InvalidNextToken,\n InvalidNotificationConfig: () => InvalidNotificationConfig,\n InvalidOptionException: () => InvalidOptionException,\n InvalidOutputFolder: () => InvalidOutputFolder,\n InvalidOutputLocation: () => InvalidOutputLocation,\n InvalidParameters: () => InvalidParameters,\n InvalidPermissionType: () => InvalidPermissionType,\n InvalidPluginName: () => InvalidPluginName,\n InvalidPolicyAttributeException: () => InvalidPolicyAttributeException,\n InvalidPolicyTypeException: () => InvalidPolicyTypeException,\n InvalidResourceId: () => InvalidResourceId,\n InvalidResourceType: () => InvalidResourceType,\n InvalidResultAttributeException: () => InvalidResultAttributeException,\n InvalidRole: () => InvalidRole,\n InvalidSchedule: () => InvalidSchedule,\n InvalidTag: () => InvalidTag,\n InvalidTarget: () => InvalidTarget,\n InvalidTargetMaps: () => InvalidTargetMaps,\n InvalidTypeNameException: () => InvalidTypeNameException,\n InvalidUpdate: () => InvalidUpdate,\n InventoryAttributeDataType: () => InventoryAttributeDataType,\n InventoryDeletionStatus: () => InventoryDeletionStatus,\n InventoryQueryOperatorType: () => InventoryQueryOperatorType,\n InventorySchemaDeleteOption: () => InventorySchemaDeleteOption,\n InvocationDoesNotExist: () => InvocationDoesNotExist,\n ItemContentMismatchException: () => ItemContentMismatchException,\n ItemSizeLimitExceededException: () => ItemSizeLimitExceededException,\n LabelParameterVersionCommand: () => LabelParameterVersionCommand,\n LastResourceDataSyncStatus: () => LastResourceDataSyncStatus,\n ListAssociationVersionsCommand: () => ListAssociationVersionsCommand,\n ListAssociationVersionsResultFilterSensitiveLog: () => ListAssociationVersionsResultFilterSensitiveLog,\n ListAssociationsCommand: () => ListAssociationsCommand,\n ListCommandInvocationsCommand: () => ListCommandInvocationsCommand,\n ListCommandsCommand: () => ListCommandsCommand,\n ListCommandsResultFilterSensitiveLog: () => ListCommandsResultFilterSensitiveLog,\n ListComplianceItemsCommand: () => ListComplianceItemsCommand,\n ListComplianceSummariesCommand: () => ListComplianceSummariesCommand,\n ListDocumentMetadataHistoryCommand: () => ListDocumentMetadataHistoryCommand,\n ListDocumentVersionsCommand: () => ListDocumentVersionsCommand,\n ListDocumentsCommand: () => ListDocumentsCommand,\n ListInventoryEntriesCommand: () => ListInventoryEntriesCommand,\n ListNodesCommand: () => ListNodesCommand,\n ListNodesResultFilterSensitiveLog: () => ListNodesResultFilterSensitiveLog,\n ListNodesSummaryCommand: () => ListNodesSummaryCommand,\n ListOpsItemEventsCommand: () => ListOpsItemEventsCommand,\n ListOpsItemRelatedItemsCommand: () => ListOpsItemRelatedItemsCommand,\n ListOpsMetadataCommand: () => ListOpsMetadataCommand,\n ListResourceComplianceSummariesCommand: () => ListResourceComplianceSummariesCommand,\n ListResourceDataSyncCommand: () => ListResourceDataSyncCommand,\n ListTagsForResourceCommand: () => ListTagsForResourceCommand,\n MaintenanceWindowExecutionStatus: () => MaintenanceWindowExecutionStatus,\n MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog: () => MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog,\n MaintenanceWindowIdentityFilterSensitiveLog: () => MaintenanceWindowIdentityFilterSensitiveLog,\n MaintenanceWindowLambdaParametersFilterSensitiveLog: () => MaintenanceWindowLambdaParametersFilterSensitiveLog,\n MaintenanceWindowResourceType: () => MaintenanceWindowResourceType,\n MaintenanceWindowRunCommandParametersFilterSensitiveLog: () => MaintenanceWindowRunCommandParametersFilterSensitiveLog,\n MaintenanceWindowStepFunctionsParametersFilterSensitiveLog: () => MaintenanceWindowStepFunctionsParametersFilterSensitiveLog,\n MaintenanceWindowTargetFilterSensitiveLog: () => MaintenanceWindowTargetFilterSensitiveLog,\n MaintenanceWindowTaskCutoffBehavior: () => MaintenanceWindowTaskCutoffBehavior,\n MaintenanceWindowTaskFilterSensitiveLog: () => MaintenanceWindowTaskFilterSensitiveLog,\n MaintenanceWindowTaskInvocationParametersFilterSensitiveLog: () => MaintenanceWindowTaskInvocationParametersFilterSensitiveLog,\n MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog: () => MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog,\n MaintenanceWindowTaskType: () => MaintenanceWindowTaskType,\n MalformedResourcePolicyDocumentException: () => MalformedResourcePolicyDocumentException,\n ManagedStatus: () => ManagedStatus,\n MaxDocumentSizeExceeded: () => MaxDocumentSizeExceeded,\n ModifyDocumentPermissionCommand: () => ModifyDocumentPermissionCommand,\n NodeAggregatorType: () => NodeAggregatorType,\n NodeAttributeName: () => NodeAttributeName,\n NodeFilterKey: () => NodeFilterKey,\n NodeFilterOperatorType: () => NodeFilterOperatorType,\n NodeFilterSensitiveLog: () => NodeFilterSensitiveLog,\n NodeType: () => NodeType,\n NodeTypeFilterSensitiveLog: () => NodeTypeFilterSensitiveLog,\n NodeTypeName: () => NodeTypeName,\n NotificationEvent: () => NotificationEvent,\n NotificationType: () => NotificationType,\n OperatingSystem: () => OperatingSystem,\n OpsFilterOperatorType: () => OpsFilterOperatorType,\n OpsItemAccessDeniedException: () => OpsItemAccessDeniedException,\n OpsItemAlreadyExistsException: () => OpsItemAlreadyExistsException,\n OpsItemConflictException: () => OpsItemConflictException,\n OpsItemDataType: () => OpsItemDataType,\n OpsItemEventFilterKey: () => OpsItemEventFilterKey,\n OpsItemEventFilterOperator: () => OpsItemEventFilterOperator,\n OpsItemFilterKey: () => OpsItemFilterKey,\n OpsItemFilterOperator: () => OpsItemFilterOperator,\n OpsItemInvalidParameterException: () => OpsItemInvalidParameterException,\n OpsItemLimitExceededException: () => OpsItemLimitExceededException,\n OpsItemNotFoundException: () => OpsItemNotFoundException,\n OpsItemRelatedItemAlreadyExistsException: () => OpsItemRelatedItemAlreadyExistsException,\n OpsItemRelatedItemAssociationNotFoundException: () => OpsItemRelatedItemAssociationNotFoundException,\n OpsItemRelatedItemsFilterKey: () => OpsItemRelatedItemsFilterKey,\n OpsItemRelatedItemsFilterOperator: () => OpsItemRelatedItemsFilterOperator,\n OpsItemStatus: () => OpsItemStatus,\n OpsMetadataAlreadyExistsException: () => OpsMetadataAlreadyExistsException,\n OpsMetadataInvalidArgumentException: () => OpsMetadataInvalidArgumentException,\n OpsMetadataKeyLimitExceededException: () => OpsMetadataKeyLimitExceededException,\n OpsMetadataLimitExceededException: () => OpsMetadataLimitExceededException,\n OpsMetadataNotFoundException: () => OpsMetadataNotFoundException,\n OpsMetadataTooManyUpdatesException: () => OpsMetadataTooManyUpdatesException,\n ParameterAlreadyExists: () => ParameterAlreadyExists,\n ParameterFilterSensitiveLog: () => ParameterFilterSensitiveLog,\n ParameterHistoryFilterSensitiveLog: () => ParameterHistoryFilterSensitiveLog,\n ParameterLimitExceeded: () => ParameterLimitExceeded,\n ParameterMaxVersionLimitExceeded: () => ParameterMaxVersionLimitExceeded,\n ParameterNotFound: () => ParameterNotFound,\n ParameterPatternMismatchException: () => ParameterPatternMismatchException,\n ParameterTier: () => ParameterTier,\n ParameterType: () => ParameterType,\n ParameterVersionLabelLimitExceeded: () => ParameterVersionLabelLimitExceeded,\n ParameterVersionNotFound: () => ParameterVersionNotFound,\n ParametersFilterKey: () => ParametersFilterKey,\n PatchAction: () => PatchAction,\n PatchComplianceDataState: () => PatchComplianceDataState,\n PatchComplianceLevel: () => PatchComplianceLevel,\n PatchComplianceStatus: () => PatchComplianceStatus,\n PatchDeploymentStatus: () => PatchDeploymentStatus,\n PatchFilterKey: () => PatchFilterKey,\n PatchOperationType: () => PatchOperationType,\n PatchProperty: () => PatchProperty,\n PatchSet: () => PatchSet,\n PatchSourceFilterSensitiveLog: () => PatchSourceFilterSensitiveLog,\n PingStatus: () => PingStatus,\n PlatformType: () => PlatformType,\n PoliciesLimitExceededException: () => PoliciesLimitExceededException,\n PutComplianceItemsCommand: () => PutComplianceItemsCommand,\n PutInventoryCommand: () => PutInventoryCommand,\n PutParameterCommand: () => PutParameterCommand,\n PutParameterRequestFilterSensitiveLog: () => PutParameterRequestFilterSensitiveLog,\n PutResourcePolicyCommand: () => PutResourcePolicyCommand,\n RebootOption: () => RebootOption,\n RegisterDefaultPatchBaselineCommand: () => RegisterDefaultPatchBaselineCommand,\n RegisterPatchBaselineForPatchGroupCommand: () => RegisterPatchBaselineForPatchGroupCommand,\n RegisterTargetWithMaintenanceWindowCommand: () => RegisterTargetWithMaintenanceWindowCommand,\n RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog: () => RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog,\n RegisterTaskWithMaintenanceWindowCommand: () => RegisterTaskWithMaintenanceWindowCommand,\n RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog: () => RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog,\n RemoveTagsFromResourceCommand: () => RemoveTagsFromResourceCommand,\n ResetServiceSettingCommand: () => ResetServiceSettingCommand,\n ResourceDataSyncAlreadyExistsException: () => ResourceDataSyncAlreadyExistsException,\n ResourceDataSyncConflictException: () => ResourceDataSyncConflictException,\n ResourceDataSyncCountExceededException: () => ResourceDataSyncCountExceededException,\n ResourceDataSyncInvalidConfigurationException: () => ResourceDataSyncInvalidConfigurationException,\n ResourceDataSyncNotFoundException: () => ResourceDataSyncNotFoundException,\n ResourceDataSyncS3Format: () => ResourceDataSyncS3Format,\n ResourceInUseException: () => ResourceInUseException,\n ResourceLimitExceededException: () => ResourceLimitExceededException,\n ResourceNotFoundException: () => ResourceNotFoundException,\n ResourcePolicyConflictException: () => ResourcePolicyConflictException,\n ResourcePolicyInvalidParameterException: () => ResourcePolicyInvalidParameterException,\n ResourcePolicyLimitExceededException: () => ResourcePolicyLimitExceededException,\n ResourcePolicyNotFoundException: () => ResourcePolicyNotFoundException,\n ResourceType: () => ResourceType,\n ResourceTypeForTagging: () => ResourceTypeForTagging,\n ResumeSessionCommand: () => ResumeSessionCommand,\n ReviewStatus: () => ReviewStatus,\n SSM: () => SSM,\n SSMClient: () => SSMClient,\n SSMServiceException: () => SSMServiceException,\n SendAutomationSignalCommand: () => SendAutomationSignalCommand,\n SendCommandCommand: () => SendCommandCommand,\n SendCommandRequestFilterSensitiveLog: () => SendCommandRequestFilterSensitiveLog,\n SendCommandResultFilterSensitiveLog: () => SendCommandResultFilterSensitiveLog,\n ServiceQuotaExceededException: () => ServiceQuotaExceededException,\n ServiceSettingNotFound: () => ServiceSettingNotFound,\n SessionFilterKey: () => SessionFilterKey,\n SessionState: () => SessionState,\n SessionStatus: () => SessionStatus,\n SignalType: () => SignalType,\n SourceType: () => SourceType,\n StartAccessRequestCommand: () => StartAccessRequestCommand,\n StartAssociationsOnceCommand: () => StartAssociationsOnceCommand,\n StartAutomationExecutionCommand: () => StartAutomationExecutionCommand,\n StartChangeRequestExecutionCommand: () => StartChangeRequestExecutionCommand,\n StartExecutionPreviewCommand: () => StartExecutionPreviewCommand,\n StartSessionCommand: () => StartSessionCommand,\n StatusUnchanged: () => StatusUnchanged,\n StepExecutionFilterKey: () => StepExecutionFilterKey,\n StopAutomationExecutionCommand: () => StopAutomationExecutionCommand,\n StopType: () => StopType,\n SubTypeCountLimitExceededException: () => SubTypeCountLimitExceededException,\n TargetInUseException: () => TargetInUseException,\n TargetNotConnected: () => TargetNotConnected,\n TerminateSessionCommand: () => TerminateSessionCommand,\n ThrottlingException: () => ThrottlingException,\n TooManyTagsError: () => TooManyTagsError,\n TooManyUpdates: () => TooManyUpdates,\n TotalSizeLimitExceededException: () => TotalSizeLimitExceededException,\n UnlabelParameterVersionCommand: () => UnlabelParameterVersionCommand,\n UnsupportedCalendarException: () => UnsupportedCalendarException,\n UnsupportedFeatureRequiredException: () => UnsupportedFeatureRequiredException,\n UnsupportedInventoryItemContextException: () => UnsupportedInventoryItemContextException,\n UnsupportedInventorySchemaVersionException: () => UnsupportedInventorySchemaVersionException,\n UnsupportedOperatingSystem: () => UnsupportedOperatingSystem,\n UnsupportedOperationException: () => UnsupportedOperationException,\n UnsupportedParameterType: () => UnsupportedParameterType,\n UnsupportedPlatformType: () => UnsupportedPlatformType,\n UpdateAssociationCommand: () => UpdateAssociationCommand,\n UpdateAssociationRequestFilterSensitiveLog: () => UpdateAssociationRequestFilterSensitiveLog,\n UpdateAssociationResultFilterSensitiveLog: () => UpdateAssociationResultFilterSensitiveLog,\n UpdateAssociationStatusCommand: () => UpdateAssociationStatusCommand,\n UpdateAssociationStatusResultFilterSensitiveLog: () => UpdateAssociationStatusResultFilterSensitiveLog,\n UpdateDocumentCommand: () => UpdateDocumentCommand,\n UpdateDocumentDefaultVersionCommand: () => UpdateDocumentDefaultVersionCommand,\n UpdateDocumentMetadataCommand: () => UpdateDocumentMetadataCommand,\n UpdateMaintenanceWindowCommand: () => UpdateMaintenanceWindowCommand,\n UpdateMaintenanceWindowRequestFilterSensitiveLog: () => UpdateMaintenanceWindowRequestFilterSensitiveLog,\n UpdateMaintenanceWindowResultFilterSensitiveLog: () => UpdateMaintenanceWindowResultFilterSensitiveLog,\n UpdateMaintenanceWindowTargetCommand: () => UpdateMaintenanceWindowTargetCommand,\n UpdateMaintenanceWindowTargetRequestFilterSensitiveLog: () => UpdateMaintenanceWindowTargetRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTargetResultFilterSensitiveLog: () => UpdateMaintenanceWindowTargetResultFilterSensitiveLog,\n UpdateMaintenanceWindowTaskCommand: () => UpdateMaintenanceWindowTaskCommand,\n UpdateMaintenanceWindowTaskRequestFilterSensitiveLog: () => UpdateMaintenanceWindowTaskRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTaskResultFilterSensitiveLog: () => UpdateMaintenanceWindowTaskResultFilterSensitiveLog,\n UpdateManagedInstanceRoleCommand: () => UpdateManagedInstanceRoleCommand,\n UpdateOpsItemCommand: () => UpdateOpsItemCommand,\n UpdateOpsMetadataCommand: () => UpdateOpsMetadataCommand,\n UpdatePatchBaselineCommand: () => UpdatePatchBaselineCommand,\n UpdatePatchBaselineRequestFilterSensitiveLog: () => UpdatePatchBaselineRequestFilterSensitiveLog,\n UpdatePatchBaselineResultFilterSensitiveLog: () => UpdatePatchBaselineResultFilterSensitiveLog,\n UpdateResourceDataSyncCommand: () => UpdateResourceDataSyncCommand,\n UpdateServiceSettingCommand: () => UpdateServiceSettingCommand,\n ValidationException: () => ValidationException,\n __Client: () => import_smithy_client.Client,\n paginateDescribeActivations: () => paginateDescribeActivations,\n paginateDescribeAssociationExecutionTargets: () => paginateDescribeAssociationExecutionTargets,\n paginateDescribeAssociationExecutions: () => paginateDescribeAssociationExecutions,\n paginateDescribeAutomationExecutions: () => paginateDescribeAutomationExecutions,\n paginateDescribeAutomationStepExecutions: () => paginateDescribeAutomationStepExecutions,\n paginateDescribeAvailablePatches: () => paginateDescribeAvailablePatches,\n paginateDescribeEffectiveInstanceAssociations: () => paginateDescribeEffectiveInstanceAssociations,\n paginateDescribeEffectivePatchesForPatchBaseline: () => paginateDescribeEffectivePatchesForPatchBaseline,\n paginateDescribeInstanceAssociationsStatus: () => paginateDescribeInstanceAssociationsStatus,\n paginateDescribeInstanceInformation: () => paginateDescribeInstanceInformation,\n paginateDescribeInstancePatchStates: () => paginateDescribeInstancePatchStates,\n paginateDescribeInstancePatchStatesForPatchGroup: () => paginateDescribeInstancePatchStatesForPatchGroup,\n paginateDescribeInstancePatches: () => paginateDescribeInstancePatches,\n paginateDescribeInstanceProperties: () => paginateDescribeInstanceProperties,\n paginateDescribeInventoryDeletions: () => paginateDescribeInventoryDeletions,\n paginateDescribeMaintenanceWindowExecutionTaskInvocations: () => paginateDescribeMaintenanceWindowExecutionTaskInvocations,\n paginateDescribeMaintenanceWindowExecutionTasks: () => paginateDescribeMaintenanceWindowExecutionTasks,\n paginateDescribeMaintenanceWindowExecutions: () => paginateDescribeMaintenanceWindowExecutions,\n paginateDescribeMaintenanceWindowSchedule: () => paginateDescribeMaintenanceWindowSchedule,\n paginateDescribeMaintenanceWindowTargets: () => paginateDescribeMaintenanceWindowTargets,\n paginateDescribeMaintenanceWindowTasks: () => paginateDescribeMaintenanceWindowTasks,\n paginateDescribeMaintenanceWindows: () => paginateDescribeMaintenanceWindows,\n paginateDescribeMaintenanceWindowsForTarget: () => paginateDescribeMaintenanceWindowsForTarget,\n paginateDescribeOpsItems: () => paginateDescribeOpsItems,\n paginateDescribeParameters: () => paginateDescribeParameters,\n paginateDescribePatchBaselines: () => paginateDescribePatchBaselines,\n paginateDescribePatchGroups: () => paginateDescribePatchGroups,\n paginateDescribePatchProperties: () => paginateDescribePatchProperties,\n paginateDescribeSessions: () => paginateDescribeSessions,\n paginateGetInventory: () => paginateGetInventory,\n paginateGetInventorySchema: () => paginateGetInventorySchema,\n paginateGetOpsSummary: () => paginateGetOpsSummary,\n paginateGetParameterHistory: () => paginateGetParameterHistory,\n paginateGetParametersByPath: () => paginateGetParametersByPath,\n paginateGetResourcePolicies: () => paginateGetResourcePolicies,\n paginateListAssociationVersions: () => paginateListAssociationVersions,\n paginateListAssociations: () => paginateListAssociations,\n paginateListCommandInvocations: () => paginateListCommandInvocations,\n paginateListCommands: () => paginateListCommands,\n paginateListComplianceItems: () => paginateListComplianceItems,\n paginateListComplianceSummaries: () => paginateListComplianceSummaries,\n paginateListDocumentVersions: () => paginateListDocumentVersions,\n paginateListDocuments: () => paginateListDocuments,\n paginateListNodes: () => paginateListNodes,\n paginateListNodesSummary: () => paginateListNodesSummary,\n paginateListOpsItemEvents: () => paginateListOpsItemEvents,\n paginateListOpsItemRelatedItems: () => paginateListOpsItemRelatedItems,\n paginateListOpsMetadata: () => paginateListOpsMetadata,\n paginateListResourceComplianceSummaries: () => paginateListResourceComplianceSummaries,\n paginateListResourceDataSync: () => paginateListResourceDataSync,\n waitForCommandExecuted: () => waitForCommandExecuted,\n waitUntilCommandExecuted: () => waitUntilCommandExecuted\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSMClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"ssm\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSMClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSMClient.ts\nvar SSMClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSMClient\");\n }\n /**\n * The resolved configuration of SSMClient class. This is resolved and normalized from the {@link SSMClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSMHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSM.ts\n\n\n// src/commands/AddTagsToResourceCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/protocols/Aws_json1_1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar import_uuid = require(\"uuid\");\n\n// src/models/models_0.ts\n\n\n// src/models/SSMServiceException.ts\n\nvar SSMServiceException = class _SSMServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSMServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSMServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSMServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AccessRequestStatus = {\n APPROVED: \"Approved\",\n EXPIRED: \"Expired\",\n PENDING: \"Pending\",\n REJECTED: \"Rejected\",\n REVOKED: \"Revoked\"\n};\nvar ResourceTypeForTagging = {\n ASSOCIATION: \"Association\",\n AUTOMATION: \"Automation\",\n DOCUMENT: \"Document\",\n MAINTENANCE_WINDOW: \"MaintenanceWindow\",\n MANAGED_INSTANCE: \"ManagedInstance\",\n OPSMETADATA: \"OpsMetadata\",\n OPS_ITEM: \"OpsItem\",\n PARAMETER: \"Parameter\",\n PATCH_BASELINE: \"PatchBaseline\"\n};\nvar InternalServerError = class _InternalServerError extends SSMServiceException {\n static {\n __name(this, \"InternalServerError\");\n }\n name = \"InternalServerError\";\n $fault = \"server\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerError\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerError.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidResourceId = class _InvalidResourceId extends SSMServiceException {\n static {\n __name(this, \"InvalidResourceId\");\n }\n name = \"InvalidResourceId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidResourceId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidResourceId.prototype);\n }\n};\nvar InvalidResourceType = class _InvalidResourceType extends SSMServiceException {\n static {\n __name(this, \"InvalidResourceType\");\n }\n name = \"InvalidResourceType\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidResourceType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidResourceType.prototype);\n }\n};\nvar TooManyTagsError = class _TooManyTagsError extends SSMServiceException {\n static {\n __name(this, \"TooManyTagsError\");\n }\n name = \"TooManyTagsError\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyTagsError\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyTagsError.prototype);\n }\n};\nvar TooManyUpdates = class _TooManyUpdates extends SSMServiceException {\n static {\n __name(this, \"TooManyUpdates\");\n }\n name = \"TooManyUpdates\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyUpdates\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyUpdates.prototype);\n this.Message = opts.Message;\n }\n};\nvar ExternalAlarmState = {\n ALARM: \"ALARM\",\n UNKNOWN: \"UNKNOWN\"\n};\nvar AlreadyExistsException = class _AlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"AlreadyExistsException\");\n }\n name = \"AlreadyExistsException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AlreadyExistsException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemConflictException = class _OpsItemConflictException extends SSMServiceException {\n static {\n __name(this, \"OpsItemConflictException\");\n }\n name = \"OpsItemConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemInvalidParameterException = class _OpsItemInvalidParameterException extends SSMServiceException {\n static {\n __name(this, \"OpsItemInvalidParameterException\");\n }\n name = \"OpsItemInvalidParameterException\";\n $fault = \"client\";\n ParameterNames;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemInvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemInvalidParameterException.prototype);\n this.ParameterNames = opts.ParameterNames;\n this.Message = opts.Message;\n }\n};\nvar OpsItemLimitExceededException = class _OpsItemLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"OpsItemLimitExceededException\");\n }\n name = \"OpsItemLimitExceededException\";\n $fault = \"client\";\n ResourceTypes;\n Limit;\n LimitType;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemLimitExceededException.prototype);\n this.ResourceTypes = opts.ResourceTypes;\n this.Limit = opts.Limit;\n this.LimitType = opts.LimitType;\n this.Message = opts.Message;\n }\n};\nvar OpsItemNotFoundException = class _OpsItemNotFoundException extends SSMServiceException {\n static {\n __name(this, \"OpsItemNotFoundException\");\n }\n name = \"OpsItemNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemRelatedItemAlreadyExistsException = class _OpsItemRelatedItemAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"OpsItemRelatedItemAlreadyExistsException\");\n }\n name = \"OpsItemRelatedItemAlreadyExistsException\";\n $fault = \"client\";\n Message;\n ResourceUri;\n OpsItemId;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemRelatedItemAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemRelatedItemAlreadyExistsException.prototype);\n this.Message = opts.Message;\n this.ResourceUri = opts.ResourceUri;\n this.OpsItemId = opts.OpsItemId;\n }\n};\nvar DuplicateInstanceId = class _DuplicateInstanceId extends SSMServiceException {\n static {\n __name(this, \"DuplicateInstanceId\");\n }\n name = \"DuplicateInstanceId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateInstanceId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateInstanceId.prototype);\n }\n};\nvar InvalidCommandId = class _InvalidCommandId extends SSMServiceException {\n static {\n __name(this, \"InvalidCommandId\");\n }\n name = \"InvalidCommandId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidCommandId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidCommandId.prototype);\n }\n};\nvar InvalidInstanceId = class _InvalidInstanceId extends SSMServiceException {\n static {\n __name(this, \"InvalidInstanceId\");\n }\n name = \"InvalidInstanceId\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInstanceId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInstanceId.prototype);\n this.Message = opts.Message;\n }\n};\nvar DoesNotExistException = class _DoesNotExistException extends SSMServiceException {\n static {\n __name(this, \"DoesNotExistException\");\n }\n name = \"DoesNotExistException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DoesNotExistException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DoesNotExistException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidParameters = class _InvalidParameters extends SSMServiceException {\n static {\n __name(this, \"InvalidParameters\");\n }\n name = \"InvalidParameters\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidParameters\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidParameters.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationAlreadyExists = class _AssociationAlreadyExists extends SSMServiceException {\n static {\n __name(this, \"AssociationAlreadyExists\");\n }\n name = \"AssociationAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationAlreadyExists.prototype);\n }\n};\nvar AssociationLimitExceeded = class _AssociationLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"AssociationLimitExceeded\");\n }\n name = \"AssociationLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationLimitExceeded.prototype);\n }\n};\nvar AssociationComplianceSeverity = {\n Critical: \"CRITICAL\",\n High: \"HIGH\",\n Low: \"LOW\",\n Medium: \"MEDIUM\",\n Unspecified: \"UNSPECIFIED\"\n};\nvar AssociationSyncCompliance = {\n Auto: \"AUTO\",\n Manual: \"MANUAL\"\n};\nvar AssociationStatusName = {\n Failed: \"Failed\",\n Pending: \"Pending\",\n Success: \"Success\"\n};\nvar InvalidDocument = class _InvalidDocument extends SSMServiceException {\n static {\n __name(this, \"InvalidDocument\");\n }\n name = \"InvalidDocument\";\n $fault = \"client\";\n /**\n *

The SSM document doesn't exist or the document isn't available to the user. This exception\n * can be issued by various API operations.

\n * @public\n */\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocument\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocument.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidDocumentVersion = class _InvalidDocumentVersion extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentVersion\");\n }\n name = \"InvalidDocumentVersion\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentVersion.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidOutputLocation = class _InvalidOutputLocation extends SSMServiceException {\n static {\n __name(this, \"InvalidOutputLocation\");\n }\n name = \"InvalidOutputLocation\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOutputLocation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOutputLocation.prototype);\n }\n};\nvar InvalidSchedule = class _InvalidSchedule extends SSMServiceException {\n static {\n __name(this, \"InvalidSchedule\");\n }\n name = \"InvalidSchedule\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidSchedule\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidSchedule.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTag = class _InvalidTag extends SSMServiceException {\n static {\n __name(this, \"InvalidTag\");\n }\n name = \"InvalidTag\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTag\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTag.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTarget = class _InvalidTarget extends SSMServiceException {\n static {\n __name(this, \"InvalidTarget\");\n }\n name = \"InvalidTarget\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTarget\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTarget.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTargetMaps = class _InvalidTargetMaps extends SSMServiceException {\n static {\n __name(this, \"InvalidTargetMaps\");\n }\n name = \"InvalidTargetMaps\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTargetMaps\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTargetMaps.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedPlatformType = class _UnsupportedPlatformType extends SSMServiceException {\n static {\n __name(this, \"UnsupportedPlatformType\");\n }\n name = \"UnsupportedPlatformType\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedPlatformType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedPlatformType.prototype);\n this.Message = opts.Message;\n }\n};\nvar Fault = {\n Client: \"Client\",\n Server: \"Server\",\n Unknown: \"Unknown\"\n};\nvar AttachmentsSourceKey = {\n AttachmentReference: \"AttachmentReference\",\n S3FileUrl: \"S3FileUrl\",\n SourceUrl: \"SourceUrl\"\n};\nvar DocumentFormat = {\n JSON: \"JSON\",\n TEXT: \"TEXT\",\n YAML: \"YAML\"\n};\nvar DocumentType = {\n ApplicationConfiguration: \"ApplicationConfiguration\",\n ApplicationConfigurationSchema: \"ApplicationConfigurationSchema\",\n AutoApprovalPolicy: \"AutoApprovalPolicy\",\n Automation: \"Automation\",\n ChangeCalendar: \"ChangeCalendar\",\n ChangeTemplate: \"Automation.ChangeTemplate\",\n CloudFormation: \"CloudFormation\",\n Command: \"Command\",\n ConformancePackTemplate: \"ConformancePackTemplate\",\n DeploymentStrategy: \"DeploymentStrategy\",\n ManualApprovalPolicy: \"ManualApprovalPolicy\",\n Package: \"Package\",\n Policy: \"Policy\",\n ProblemAnalysis: \"ProblemAnalysis\",\n ProblemAnalysisTemplate: \"ProblemAnalysisTemplate\",\n QuickSetup: \"QuickSetup\",\n Session: \"Session\"\n};\nvar DocumentHashType = {\n SHA1: \"Sha1\",\n SHA256: \"Sha256\"\n};\nvar DocumentParameterType = {\n String: \"String\",\n StringList: \"StringList\"\n};\nvar PlatformType = {\n LINUX: \"Linux\",\n MACOS: \"MacOS\",\n WINDOWS: \"Windows\"\n};\nvar ReviewStatus = {\n APPROVED: \"APPROVED\",\n NOT_REVIEWED: \"NOT_REVIEWED\",\n PENDING: \"PENDING\",\n REJECTED: \"REJECTED\"\n};\nvar DocumentStatus = {\n Active: \"Active\",\n Creating: \"Creating\",\n Deleting: \"Deleting\",\n Failed: \"Failed\",\n Updating: \"Updating\"\n};\nvar DocumentAlreadyExists = class _DocumentAlreadyExists extends SSMServiceException {\n static {\n __name(this, \"DocumentAlreadyExists\");\n }\n name = \"DocumentAlreadyExists\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentAlreadyExists.prototype);\n this.Message = opts.Message;\n }\n};\nvar DocumentLimitExceeded = class _DocumentLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"DocumentLimitExceeded\");\n }\n name = \"DocumentLimitExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentLimitExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidDocumentContent = class _InvalidDocumentContent extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentContent\");\n }\n name = \"InvalidDocumentContent\";\n $fault = \"client\";\n /**\n *

A description of the validation error.

\n * @public\n */\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentContent\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentContent.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidDocumentSchemaVersion = class _InvalidDocumentSchemaVersion extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentSchemaVersion\");\n }\n name = \"InvalidDocumentSchemaVersion\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentSchemaVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentSchemaVersion.prototype);\n this.Message = opts.Message;\n }\n};\nvar MaxDocumentSizeExceeded = class _MaxDocumentSizeExceeded extends SSMServiceException {\n static {\n __name(this, \"MaxDocumentSizeExceeded\");\n }\n name = \"MaxDocumentSizeExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MaxDocumentSizeExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MaxDocumentSizeExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar IdempotentParameterMismatch = class _IdempotentParameterMismatch extends SSMServiceException {\n static {\n __name(this, \"IdempotentParameterMismatch\");\n }\n name = \"IdempotentParameterMismatch\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IdempotentParameterMismatch\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IdempotentParameterMismatch.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceLimitExceededException = class _ResourceLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ResourceLimitExceededException\");\n }\n name = \"ResourceLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemDataType = {\n SEARCHABLE_STRING: \"SearchableString\",\n STRING: \"String\"\n};\nvar OpsItemAccessDeniedException = class _OpsItemAccessDeniedException extends SSMServiceException {\n static {\n __name(this, \"OpsItemAccessDeniedException\");\n }\n name = \"OpsItemAccessDeniedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemAccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemAccessDeniedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsItemAlreadyExistsException = class _OpsItemAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"OpsItemAlreadyExistsException\");\n }\n name = \"OpsItemAlreadyExistsException\";\n $fault = \"client\";\n Message;\n OpsItemId;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemAlreadyExistsException.prototype);\n this.Message = opts.Message;\n this.OpsItemId = opts.OpsItemId;\n }\n};\nvar OpsMetadataAlreadyExistsException = class _OpsMetadataAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataAlreadyExistsException\");\n }\n name = \"OpsMetadataAlreadyExistsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataAlreadyExistsException.prototype);\n }\n};\nvar OpsMetadataInvalidArgumentException = class _OpsMetadataInvalidArgumentException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataInvalidArgumentException\");\n }\n name = \"OpsMetadataInvalidArgumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataInvalidArgumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataInvalidArgumentException.prototype);\n }\n};\nvar OpsMetadataLimitExceededException = class _OpsMetadataLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataLimitExceededException\");\n }\n name = \"OpsMetadataLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataLimitExceededException.prototype);\n }\n};\nvar OpsMetadataTooManyUpdatesException = class _OpsMetadataTooManyUpdatesException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataTooManyUpdatesException\");\n }\n name = \"OpsMetadataTooManyUpdatesException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataTooManyUpdatesException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataTooManyUpdatesException.prototype);\n }\n};\nvar PatchComplianceLevel = {\n Critical: \"CRITICAL\",\n High: \"HIGH\",\n Informational: \"INFORMATIONAL\",\n Low: \"LOW\",\n Medium: \"MEDIUM\",\n Unspecified: \"UNSPECIFIED\"\n};\nvar PatchFilterKey = {\n AdvisoryId: \"ADVISORY_ID\",\n Arch: \"ARCH\",\n BugzillaId: \"BUGZILLA_ID\",\n CVEId: \"CVE_ID\",\n Classification: \"CLASSIFICATION\",\n Epoch: \"EPOCH\",\n MsrcSeverity: \"MSRC_SEVERITY\",\n Name: \"NAME\",\n PatchId: \"PATCH_ID\",\n PatchSet: \"PATCH_SET\",\n Priority: \"PRIORITY\",\n Product: \"PRODUCT\",\n ProductFamily: \"PRODUCT_FAMILY\",\n Release: \"RELEASE\",\n Repository: \"REPOSITORY\",\n Section: \"SECTION\",\n Security: \"SECURITY\",\n Severity: \"SEVERITY\",\n Version: \"VERSION\"\n};\nvar PatchComplianceStatus = {\n Compliant: \"COMPLIANT\",\n NonCompliant: \"NON_COMPLIANT\"\n};\nvar OperatingSystem = {\n AlmaLinux: \"ALMA_LINUX\",\n AmazonLinux: \"AMAZON_LINUX\",\n AmazonLinux2: \"AMAZON_LINUX_2\",\n AmazonLinux2022: \"AMAZON_LINUX_2022\",\n AmazonLinux2023: \"AMAZON_LINUX_2023\",\n CentOS: \"CENTOS\",\n Debian: \"DEBIAN\",\n MacOS: \"MACOS\",\n OracleLinux: \"ORACLE_LINUX\",\n Raspbian: \"RASPBIAN\",\n RedhatEnterpriseLinux: \"REDHAT_ENTERPRISE_LINUX\",\n Rocky_Linux: \"ROCKY_LINUX\",\n Suse: \"SUSE\",\n Ubuntu: \"UBUNTU\",\n Windows: \"WINDOWS\"\n};\nvar PatchAction = {\n AllowAsDependency: \"ALLOW_AS_DEPENDENCY\",\n Block: \"BLOCK\"\n};\nvar ResourceDataSyncS3Format = {\n JSON_SERDE: \"JsonSerDe\"\n};\nvar ResourceDataSyncAlreadyExistsException = class _ResourceDataSyncAlreadyExistsException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncAlreadyExistsException\");\n }\n name = \"ResourceDataSyncAlreadyExistsException\";\n $fault = \"client\";\n SyncName;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncAlreadyExistsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncAlreadyExistsException.prototype);\n this.SyncName = opts.SyncName;\n }\n};\nvar ResourceDataSyncCountExceededException = class _ResourceDataSyncCountExceededException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncCountExceededException\");\n }\n name = \"ResourceDataSyncCountExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncCountExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncCountExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceDataSyncInvalidConfigurationException = class _ResourceDataSyncInvalidConfigurationException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncInvalidConfigurationException\");\n }\n name = \"ResourceDataSyncInvalidConfigurationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncInvalidConfigurationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncInvalidConfigurationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidActivation = class _InvalidActivation extends SSMServiceException {\n static {\n __name(this, \"InvalidActivation\");\n }\n name = \"InvalidActivation\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidActivation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidActivation.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidActivationId = class _InvalidActivationId extends SSMServiceException {\n static {\n __name(this, \"InvalidActivationId\");\n }\n name = \"InvalidActivationId\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidActivationId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidActivationId.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationDoesNotExist = class _AssociationDoesNotExist extends SSMServiceException {\n static {\n __name(this, \"AssociationDoesNotExist\");\n }\n name = \"AssociationDoesNotExist\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationDoesNotExist.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociatedInstances = class _AssociatedInstances extends SSMServiceException {\n static {\n __name(this, \"AssociatedInstances\");\n }\n name = \"AssociatedInstances\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociatedInstances\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociatedInstances.prototype);\n }\n};\nvar InvalidDocumentOperation = class _InvalidDocumentOperation extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentOperation\");\n }\n name = \"InvalidDocumentOperation\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentOperation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentOperation.prototype);\n this.Message = opts.Message;\n }\n};\nvar InventorySchemaDeleteOption = {\n DELETE_SCHEMA: \"DeleteSchema\",\n DISABLE_SCHEMA: \"DisableSchema\"\n};\nvar InvalidDeleteInventoryParametersException = class _InvalidDeleteInventoryParametersException extends SSMServiceException {\n static {\n __name(this, \"InvalidDeleteInventoryParametersException\");\n }\n name = \"InvalidDeleteInventoryParametersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDeleteInventoryParametersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDeleteInventoryParametersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInventoryRequestException = class _InvalidInventoryRequestException extends SSMServiceException {\n static {\n __name(this, \"InvalidInventoryRequestException\");\n }\n name = \"InvalidInventoryRequestException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInventoryRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInventoryRequestException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidOptionException = class _InvalidOptionException extends SSMServiceException {\n static {\n __name(this, \"InvalidOptionException\");\n }\n name = \"InvalidOptionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOptionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOptionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidTypeNameException = class _InvalidTypeNameException extends SSMServiceException {\n static {\n __name(this, \"InvalidTypeNameException\");\n }\n name = \"InvalidTypeNameException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidTypeNameException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidTypeNameException.prototype);\n this.Message = opts.Message;\n }\n};\nvar OpsMetadataNotFoundException = class _OpsMetadataNotFoundException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataNotFoundException\");\n }\n name = \"OpsMetadataNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataNotFoundException.prototype);\n }\n};\nvar ParameterNotFound = class _ParameterNotFound extends SSMServiceException {\n static {\n __name(this, \"ParameterNotFound\");\n }\n name = \"ParameterNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterNotFound.prototype);\n }\n};\nvar ResourceInUseException = class _ResourceInUseException extends SSMServiceException {\n static {\n __name(this, \"ResourceInUseException\");\n }\n name = \"ResourceInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceDataSyncNotFoundException = class _ResourceDataSyncNotFoundException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncNotFoundException\");\n }\n name = \"ResourceDataSyncNotFoundException\";\n $fault = \"client\";\n SyncName;\n SyncType;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncNotFoundException.prototype);\n this.SyncName = opts.SyncName;\n this.SyncType = opts.SyncType;\n this.Message = opts.Message;\n }\n};\nvar MalformedResourcePolicyDocumentException = class _MalformedResourcePolicyDocumentException extends SSMServiceException {\n static {\n __name(this, \"MalformedResourcePolicyDocumentException\");\n }\n name = \"MalformedResourcePolicyDocumentException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedResourcePolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedResourcePolicyDocumentException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSMServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourcePolicyConflictException = class _ResourcePolicyConflictException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyConflictException\");\n }\n name = \"ResourcePolicyConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ResourcePolicyInvalidParameterException = class _ResourcePolicyInvalidParameterException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyInvalidParameterException\");\n }\n name = \"ResourcePolicyInvalidParameterException\";\n $fault = \"client\";\n ParameterNames;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyInvalidParameterException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyInvalidParameterException.prototype);\n this.ParameterNames = opts.ParameterNames;\n this.Message = opts.Message;\n }\n};\nvar ResourcePolicyNotFoundException = class _ResourcePolicyNotFoundException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyNotFoundException\");\n }\n name = \"ResourcePolicyNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar TargetInUseException = class _TargetInUseException extends SSMServiceException {\n static {\n __name(this, \"TargetInUseException\");\n }\n name = \"TargetInUseException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetInUseException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetInUseException.prototype);\n this.Message = opts.Message;\n }\n};\nvar DescribeActivationsFilterKeys = {\n ACTIVATION_IDS: \"ActivationIds\",\n DEFAULT_INSTANCE_NAME: \"DefaultInstanceName\",\n IAM_ROLE: \"IamRole\"\n};\nvar InvalidFilter = class _InvalidFilter extends SSMServiceException {\n static {\n __name(this, \"InvalidFilter\");\n }\n name = \"InvalidFilter\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilter\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilter.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidNextToken = class _InvalidNextToken extends SSMServiceException {\n static {\n __name(this, \"InvalidNextToken\");\n }\n name = \"InvalidNextToken\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidNextToken\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidNextToken.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAssociationVersion = class _InvalidAssociationVersion extends SSMServiceException {\n static {\n __name(this, \"InvalidAssociationVersion\");\n }\n name = \"InvalidAssociationVersion\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAssociationVersion\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAssociationVersion.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationExecutionFilterKey = {\n CreatedTime: \"CreatedTime\",\n ExecutionId: \"ExecutionId\",\n Status: \"Status\"\n};\nvar AssociationFilterOperatorType = {\n Equal: \"EQUAL\",\n GreaterThan: \"GREATER_THAN\",\n LessThan: \"LESS_THAN\"\n};\nvar AssociationExecutionDoesNotExist = class _AssociationExecutionDoesNotExist extends SSMServiceException {\n static {\n __name(this, \"AssociationExecutionDoesNotExist\");\n }\n name = \"AssociationExecutionDoesNotExist\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationExecutionDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationExecutionDoesNotExist.prototype);\n this.Message = opts.Message;\n }\n};\nvar AssociationExecutionTargetsFilterKey = {\n ResourceId: \"ResourceId\",\n ResourceType: \"ResourceType\",\n Status: \"Status\"\n};\nvar AutomationExecutionFilterKey = {\n AUTOMATION_SUBTYPE: \"AutomationSubtype\",\n AUTOMATION_TYPE: \"AutomationType\",\n CURRENT_ACTION: \"CurrentAction\",\n DOCUMENT_NAME_PREFIX: \"DocumentNamePrefix\",\n EXECUTION_ID: \"ExecutionId\",\n EXECUTION_STATUS: \"ExecutionStatus\",\n OPS_ITEM_ID: \"OpsItemId\",\n PARENT_EXECUTION_ID: \"ParentExecutionId\",\n START_TIME_AFTER: \"StartTimeAfter\",\n START_TIME_BEFORE: \"StartTimeBefore\",\n TAG_KEY: \"TagKey\",\n TARGET_RESOURCE_GROUP: \"TargetResourceGroup\"\n};\nvar AutomationExecutionStatus = {\n APPROVED: \"Approved\",\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n CHANGE_CALENDAR_OVERRIDE_APPROVED: \"ChangeCalendarOverrideApproved\",\n CHANGE_CALENDAR_OVERRIDE_REJECTED: \"ChangeCalendarOverrideRejected\",\n COMPLETED_WITH_FAILURE: \"CompletedWithFailure\",\n COMPLETED_WITH_SUCCESS: \"CompletedWithSuccess\",\n EXITED: \"Exited\",\n FAILED: \"Failed\",\n INPROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n PENDING_APPROVAL: \"PendingApproval\",\n PENDING_CHANGE_CALENDAR_OVERRIDE: \"PendingChangeCalendarOverride\",\n REJECTED: \"Rejected\",\n RUNBOOK_INPROGRESS: \"RunbookInProgress\",\n SCHEDULED: \"Scheduled\",\n SUCCESS: \"Success\",\n TIMEDOUT: \"TimedOut\",\n WAITING: \"Waiting\"\n};\nvar AutomationSubtype = {\n AccessRequest: \"AccessRequest\",\n ChangeRequest: \"ChangeRequest\"\n};\nvar AutomationType = {\n CrossAccount: \"CrossAccount\",\n Local: \"Local\"\n};\nvar ExecutionMode = {\n Auto: \"Auto\",\n Interactive: \"Interactive\"\n};\nvar InvalidFilterKey = class _InvalidFilterKey extends SSMServiceException {\n static {\n __name(this, \"InvalidFilterKey\");\n }\n name = \"InvalidFilterKey\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilterKey\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilterKey.prototype);\n }\n};\nvar InvalidFilterValue = class _InvalidFilterValue extends SSMServiceException {\n static {\n __name(this, \"InvalidFilterValue\");\n }\n name = \"InvalidFilterValue\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilterValue\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilterValue.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationExecutionNotFoundException = class _AutomationExecutionNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationExecutionNotFoundException\");\n }\n name = \"AutomationExecutionNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationExecutionNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationExecutionNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar StepExecutionFilterKey = {\n ACTION: \"Action\",\n PARENT_STEP_EXECUTION_ID: \"ParentStepExecutionId\",\n PARENT_STEP_ITERATION: \"ParentStepIteration\",\n PARENT_STEP_ITERATOR_VALUE: \"ParentStepIteratorValue\",\n START_TIME_AFTER: \"StartTimeAfter\",\n START_TIME_BEFORE: \"StartTimeBefore\",\n STEP_EXECUTION_ID: \"StepExecutionId\",\n STEP_EXECUTION_STATUS: \"StepExecutionStatus\",\n STEP_NAME: \"StepName\"\n};\nvar DocumentPermissionType = {\n SHARE: \"Share\"\n};\nvar InvalidPermissionType = class _InvalidPermissionType extends SSMServiceException {\n static {\n __name(this, \"InvalidPermissionType\");\n }\n name = \"InvalidPermissionType\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPermissionType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPermissionType.prototype);\n this.Message = opts.Message;\n }\n};\nvar PatchDeploymentStatus = {\n Approved: \"APPROVED\",\n ExplicitApproved: \"EXPLICIT_APPROVED\",\n ExplicitRejected: \"EXPLICIT_REJECTED\",\n PendingApproval: \"PENDING_APPROVAL\"\n};\nvar UnsupportedOperatingSystem = class _UnsupportedOperatingSystem extends SSMServiceException {\n static {\n __name(this, \"UnsupportedOperatingSystem\");\n }\n name = \"UnsupportedOperatingSystem\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedOperatingSystem\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedOperatingSystem.prototype);\n this.Message = opts.Message;\n }\n};\nvar InstanceInformationFilterKey = {\n ACTIVATION_IDS: \"ActivationIds\",\n AGENT_VERSION: \"AgentVersion\",\n ASSOCIATION_STATUS: \"AssociationStatus\",\n IAM_ROLE: \"IamRole\",\n INSTANCE_IDS: \"InstanceIds\",\n PING_STATUS: \"PingStatus\",\n PLATFORM_TYPES: \"PlatformTypes\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar PingStatus = {\n CONNECTION_LOST: \"ConnectionLost\",\n INACTIVE: \"Inactive\",\n ONLINE: \"Online\"\n};\nvar ResourceType = {\n EC2_INSTANCE: \"EC2Instance\",\n MANAGED_INSTANCE: \"ManagedInstance\"\n};\nvar SourceType = {\n AWS_EC2_INSTANCE: \"AWS::EC2::Instance\",\n AWS_IOT_THING: \"AWS::IoT::Thing\",\n AWS_SSM_MANAGEDINSTANCE: \"AWS::SSM::ManagedInstance\"\n};\nvar InvalidInstanceInformationFilterValue = class _InvalidInstanceInformationFilterValue extends SSMServiceException {\n static {\n __name(this, \"InvalidInstanceInformationFilterValue\");\n }\n name = \"InvalidInstanceInformationFilterValue\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInstanceInformationFilterValue\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInstanceInformationFilterValue.prototype);\n }\n};\nvar PatchComplianceDataState = {\n AvailableSecurityUpdate: \"AVAILABLE_SECURITY_UPDATE\",\n Failed: \"FAILED\",\n Installed: \"INSTALLED\",\n InstalledOther: \"INSTALLED_OTHER\",\n InstalledPendingReboot: \"INSTALLED_PENDING_REBOOT\",\n InstalledRejected: \"INSTALLED_REJECTED\",\n Missing: \"MISSING\",\n NotApplicable: \"NOT_APPLICABLE\"\n};\nvar PatchOperationType = {\n INSTALL: \"Install\",\n SCAN: \"Scan\"\n};\nvar RebootOption = {\n NO_REBOOT: \"NoReboot\",\n REBOOT_IF_NEEDED: \"RebootIfNeeded\"\n};\nvar InstancePatchStateOperatorType = {\n EQUAL: \"Equal\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InstancePropertyFilterOperator = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InstancePropertyFilterKey = {\n ACTIVATION_IDS: \"ActivationIds\",\n AGENT_VERSION: \"AgentVersion\",\n ASSOCIATION_STATUS: \"AssociationStatus\",\n DOCUMENT_NAME: \"DocumentName\",\n IAM_ROLE: \"IamRole\",\n INSTANCE_IDS: \"InstanceIds\",\n PING_STATUS: \"PingStatus\",\n PLATFORM_TYPES: \"PlatformTypes\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar InvalidInstancePropertyFilterValue = class _InvalidInstancePropertyFilterValue extends SSMServiceException {\n static {\n __name(this, \"InvalidInstancePropertyFilterValue\");\n }\n name = \"InvalidInstancePropertyFilterValue\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInstancePropertyFilterValue\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInstancePropertyFilterValue.prototype);\n }\n};\nvar InventoryDeletionStatus = {\n COMPLETE: \"Complete\",\n IN_PROGRESS: \"InProgress\"\n};\nvar InvalidDeletionIdException = class _InvalidDeletionIdException extends SSMServiceException {\n static {\n __name(this, \"InvalidDeletionIdException\");\n }\n name = \"InvalidDeletionIdException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDeletionIdException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDeletionIdException.prototype);\n this.Message = opts.Message;\n }\n};\nvar MaintenanceWindowExecutionStatus = {\n Cancelled: \"CANCELLED\",\n Cancelling: \"CANCELLING\",\n Failed: \"FAILED\",\n InProgress: \"IN_PROGRESS\",\n Pending: \"PENDING\",\n SkippedOverlapping: \"SKIPPED_OVERLAPPING\",\n Success: \"SUCCESS\",\n TimedOut: \"TIMED_OUT\"\n};\nvar MaintenanceWindowTaskType = {\n Automation: \"AUTOMATION\",\n Lambda: \"LAMBDA\",\n RunCommand: \"RUN_COMMAND\",\n StepFunctions: \"STEP_FUNCTIONS\"\n};\nvar CreateAssociationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateAssociationRequestFilterSensitiveLog\");\nvar AssociationDescriptionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"AssociationDescriptionFilterSensitiveLog\");\nvar CreateAssociationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"CreateAssociationResultFilterSensitiveLog\");\nvar CreateAssociationBatchRequestEntryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateAssociationBatchRequestEntryFilterSensitiveLog\");\nvar CreateAssociationBatchRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Entries && {\n Entries: obj.Entries.map((item) => CreateAssociationBatchRequestEntryFilterSensitiveLog(item))\n }\n}), \"CreateAssociationBatchRequestFilterSensitiveLog\");\nvar FailedCreateAssociationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Entry && { Entry: CreateAssociationBatchRequestEntryFilterSensitiveLog(obj.Entry) }\n}), \"FailedCreateAssociationFilterSensitiveLog\");\nvar CreateAssociationBatchResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Successful && { Successful: obj.Successful.map((item) => AssociationDescriptionFilterSensitiveLog(item)) },\n ...obj.Failed && { Failed: obj.Failed.map((item) => FailedCreateAssociationFilterSensitiveLog(item)) }\n}), \"CreateAssociationBatchResultFilterSensitiveLog\");\nvar CreateMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"CreateMaintenanceWindowRequestFilterSensitiveLog\");\nvar PatchSourceFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Configuration && { Configuration: import_smithy_client.SENSITIVE_STRING }\n}), \"PatchSourceFilterSensitiveLog\");\nvar CreatePatchBaselineRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"CreatePatchBaselineRequestFilterSensitiveLog\");\nvar DescribeAssociationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"DescribeAssociationResultFilterSensitiveLog\");\nvar InstanceInformationFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.IPAddress && { IPAddress: import_smithy_client.SENSITIVE_STRING }\n}), \"InstanceInformationFilterSensitiveLog\");\nvar DescribeInstanceInformationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstanceInformationList && {\n InstanceInformationList: obj.InstanceInformationList.map((item) => InstanceInformationFilterSensitiveLog(item))\n }\n}), \"DescribeInstanceInformationResultFilterSensitiveLog\");\nvar InstancePatchStateFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING }\n}), \"InstancePatchStateFilterSensitiveLog\");\nvar DescribeInstancePatchStatesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstancePatchStates && {\n InstancePatchStates: obj.InstancePatchStates.map((item) => InstancePatchStateFilterSensitiveLog(item))\n }\n}), \"DescribeInstancePatchStatesResultFilterSensitiveLog\");\nvar DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstancePatchStates && {\n InstancePatchStates: obj.InstancePatchStates.map((item) => InstancePatchStateFilterSensitiveLog(item))\n }\n}), \"DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog\");\nvar InstancePropertyFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.IPAddress && { IPAddress: import_smithy_client.SENSITIVE_STRING }\n}), \"InstancePropertyFilterSensitiveLog\");\nvar DescribeInstancePropertiesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.InstanceProperties && {\n InstanceProperties: obj.InstanceProperties.map((item) => InstancePropertyFilterSensitiveLog(item))\n }\n}), \"DescribeInstancePropertiesResultFilterSensitiveLog\");\nvar MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog\");\nvar DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WindowExecutionTaskInvocationIdentities && {\n WindowExecutionTaskInvocationIdentities: obj.WindowExecutionTaskInvocationIdentities.map(\n (item) => MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog(item)\n )\n }\n}), \"DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog\");\nvar MaintenanceWindowIdentityFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowIdentityFilterSensitiveLog\");\nvar DescribeMaintenanceWindowsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WindowIdentities && {\n WindowIdentities: obj.WindowIdentities.map((item) => MaintenanceWindowIdentityFilterSensitiveLog(item))\n }\n}), \"DescribeMaintenanceWindowsResultFilterSensitiveLog\");\n\n// src/models/models_1.ts\n\nvar MaintenanceWindowResourceType = {\n Instance: \"INSTANCE\",\n ResourceGroup: \"RESOURCE_GROUP\"\n};\nvar MaintenanceWindowTaskCutoffBehavior = {\n CancelTask: \"CANCEL_TASK\",\n ContinueTask: \"CONTINUE_TASK\"\n};\nvar OpsItemFilterKey = {\n ACCESS_REQUEST_APPROVER_ARN: \"AccessRequestByApproverArn\",\n ACCESS_REQUEST_APPROVER_ID: \"AccessRequestByApproverId\",\n ACCESS_REQUEST_IS_REPLICA: \"AccessRequestByIsReplica\",\n ACCESS_REQUEST_REQUESTER_ARN: \"AccessRequestByRequesterArn\",\n ACCESS_REQUEST_REQUESTER_ID: \"AccessRequestByRequesterId\",\n ACCESS_REQUEST_SOURCE_ACCOUNT_ID: \"AccessRequestBySourceAccountId\",\n ACCESS_REQUEST_SOURCE_OPS_ITEM_ID: \"AccessRequestBySourceOpsItemId\",\n ACCESS_REQUEST_SOURCE_REGION: \"AccessRequestBySourceRegion\",\n ACCESS_REQUEST_TARGET_RESOURCE_ID: \"AccessRequestByTargetResourceId\",\n ACCOUNT_ID: \"AccountId\",\n ACTUAL_END_TIME: \"ActualEndTime\",\n ACTUAL_START_TIME: \"ActualStartTime\",\n AUTOMATION_ID: \"AutomationId\",\n CATEGORY: \"Category\",\n CHANGE_REQUEST_APPROVER_ARN: \"ChangeRequestByApproverArn\",\n CHANGE_REQUEST_APPROVER_NAME: \"ChangeRequestByApproverName\",\n CHANGE_REQUEST_REQUESTER_ARN: \"ChangeRequestByRequesterArn\",\n CHANGE_REQUEST_REQUESTER_NAME: \"ChangeRequestByRequesterName\",\n CHANGE_REQUEST_TARGETS_RESOURCE_GROUP: \"ChangeRequestByTargetsResourceGroup\",\n CHANGE_REQUEST_TEMPLATE: \"ChangeRequestByTemplate\",\n CREATED_BY: \"CreatedBy\",\n CREATED_TIME: \"CreatedTime\",\n INSIGHT_TYPE: \"InsightByType\",\n LAST_MODIFIED_TIME: \"LastModifiedTime\",\n OPERATIONAL_DATA: \"OperationalData\",\n OPERATIONAL_DATA_KEY: \"OperationalDataKey\",\n OPERATIONAL_DATA_VALUE: \"OperationalDataValue\",\n OPSITEM_ID: \"OpsItemId\",\n OPSITEM_TYPE: \"OpsItemType\",\n PLANNED_END_TIME: \"PlannedEndTime\",\n PLANNED_START_TIME: \"PlannedStartTime\",\n PRIORITY: \"Priority\",\n RESOURCE_ID: \"ResourceId\",\n SEVERITY: \"Severity\",\n SOURCE: \"Source\",\n STATUS: \"Status\",\n TITLE: \"Title\"\n};\nvar OpsItemFilterOperator = {\n CONTAINS: \"Contains\",\n EQUAL: \"Equal\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\"\n};\nvar OpsItemStatus = {\n APPROVED: \"Approved\",\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n CHANGE_CALENDAR_OVERRIDE_APPROVED: \"ChangeCalendarOverrideApproved\",\n CHANGE_CALENDAR_OVERRIDE_REJECTED: \"ChangeCalendarOverrideRejected\",\n CLOSED: \"Closed\",\n COMPLETED_WITH_FAILURE: \"CompletedWithFailure\",\n COMPLETED_WITH_SUCCESS: \"CompletedWithSuccess\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n OPEN: \"Open\",\n PENDING: \"Pending\",\n PENDING_APPROVAL: \"PendingApproval\",\n PENDING_CHANGE_CALENDAR_OVERRIDE: \"PendingChangeCalendarOverride\",\n REJECTED: \"Rejected\",\n RESOLVED: \"Resolved\",\n REVOKED: \"Revoked\",\n RUNBOOK_IN_PROGRESS: \"RunbookInProgress\",\n SCHEDULED: \"Scheduled\",\n TIMED_OUT: \"TimedOut\"\n};\nvar ParametersFilterKey = {\n KEY_ID: \"KeyId\",\n NAME: \"Name\",\n TYPE: \"Type\"\n};\nvar ParameterTier = {\n ADVANCED: \"Advanced\",\n INTELLIGENT_TIERING: \"Intelligent-Tiering\",\n STANDARD: \"Standard\"\n};\nvar ParameterType = {\n SECURE_STRING: \"SecureString\",\n STRING: \"String\",\n STRING_LIST: \"StringList\"\n};\nvar InvalidFilterOption = class _InvalidFilterOption extends SSMServiceException {\n static {\n __name(this, \"InvalidFilterOption\");\n }\n name = \"InvalidFilterOption\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidFilterOption\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidFilterOption.prototype);\n }\n};\nvar PatchSet = {\n Application: \"APPLICATION\",\n Os: \"OS\"\n};\nvar PatchProperty = {\n PatchClassification: \"CLASSIFICATION\",\n PatchMsrcSeverity: \"MSRC_SEVERITY\",\n PatchPriority: \"PRIORITY\",\n PatchProductFamily: \"PRODUCT_FAMILY\",\n PatchSeverity: \"SEVERITY\",\n Product: \"PRODUCT\"\n};\nvar SessionFilterKey = {\n INVOKED_AFTER: \"InvokedAfter\",\n INVOKED_BEFORE: \"InvokedBefore\",\n OWNER: \"Owner\",\n SESSION_ID: \"SessionId\",\n STATUS: \"Status\",\n TARGET_ID: \"Target\"\n};\nvar SessionState = {\n ACTIVE: \"Active\",\n HISTORY: \"History\"\n};\nvar SessionStatus = {\n CONNECTED: \"Connected\",\n CONNECTING: \"Connecting\",\n DISCONNECTED: \"Disconnected\",\n FAILED: \"Failed\",\n TERMINATED: \"Terminated\",\n TERMINATING: \"Terminating\"\n};\nvar OpsItemRelatedItemAssociationNotFoundException = class _OpsItemRelatedItemAssociationNotFoundException extends SSMServiceException {\n static {\n __name(this, \"OpsItemRelatedItemAssociationNotFoundException\");\n }\n name = \"OpsItemRelatedItemAssociationNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsItemRelatedItemAssociationNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsItemRelatedItemAssociationNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ThrottlingException = class _ThrottlingException extends SSMServiceException {\n static {\n __name(this, \"ThrottlingException\");\n }\n name = \"ThrottlingException\";\n $fault = \"client\";\n Message;\n /**\n *

The quota code recognized by the Amazon Web Services Service Quotas service.

\n * @public\n */\n QuotaCode;\n /**\n *

The code for the Amazon Web Services service that owns the quota.

\n * @public\n */\n ServiceCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ThrottlingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ThrottlingException.prototype);\n this.Message = opts.Message;\n this.QuotaCode = opts.QuotaCode;\n this.ServiceCode = opts.ServiceCode;\n }\n};\nvar ValidationException = class _ValidationException extends SSMServiceException {\n static {\n __name(this, \"ValidationException\");\n }\n name = \"ValidationException\";\n $fault = \"client\";\n Message;\n /**\n *

The reason code for the invalid request.

\n * @public\n */\n ReasonCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ValidationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ValidationException.prototype);\n this.Message = opts.Message;\n this.ReasonCode = opts.ReasonCode;\n }\n};\nvar CalendarState = {\n CLOSED: \"CLOSED\",\n OPEN: \"OPEN\"\n};\nvar InvalidDocumentType = class _InvalidDocumentType extends SSMServiceException {\n static {\n __name(this, \"InvalidDocumentType\");\n }\n name = \"InvalidDocumentType\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidDocumentType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidDocumentType.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedCalendarException = class _UnsupportedCalendarException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedCalendarException\");\n }\n name = \"UnsupportedCalendarException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedCalendarException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedCalendarException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CommandInvocationStatus = {\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n DELAYED: \"Delayed\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar InvalidPluginName = class _InvalidPluginName extends SSMServiceException {\n static {\n __name(this, \"InvalidPluginName\");\n }\n name = \"InvalidPluginName\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPluginName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPluginName.prototype);\n }\n};\nvar InvocationDoesNotExist = class _InvocationDoesNotExist extends SSMServiceException {\n static {\n __name(this, \"InvocationDoesNotExist\");\n }\n name = \"InvocationDoesNotExist\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvocationDoesNotExist\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvocationDoesNotExist.prototype);\n }\n};\nvar ConnectionStatus = {\n CONNECTED: \"connected\",\n NOT_CONNECTED: \"notconnected\"\n};\nvar UnsupportedFeatureRequiredException = class _UnsupportedFeatureRequiredException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedFeatureRequiredException\");\n }\n name = \"UnsupportedFeatureRequiredException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedFeatureRequiredException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedFeatureRequiredException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AttachmentHashType = {\n SHA256: \"Sha256\"\n};\nvar ImpactType = {\n MUTATING: \"Mutating\",\n NON_MUTATING: \"NonMutating\",\n UNDETERMINED: \"Undetermined\"\n};\nvar ExecutionPreview;\n((ExecutionPreview2) => {\n ExecutionPreview2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Automation !== void 0) return visitor.Automation(value.Automation);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(ExecutionPreview || (ExecutionPreview = {}));\nvar ExecutionPreviewStatus = {\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\"\n};\nvar InventoryQueryOperatorType = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n EXISTS: \"Exists\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InvalidAggregatorException = class _InvalidAggregatorException extends SSMServiceException {\n static {\n __name(this, \"InvalidAggregatorException\");\n }\n name = \"InvalidAggregatorException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAggregatorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAggregatorException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInventoryGroupException = class _InvalidInventoryGroupException extends SSMServiceException {\n static {\n __name(this, \"InvalidInventoryGroupException\");\n }\n name = \"InvalidInventoryGroupException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInventoryGroupException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInventoryGroupException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidResultAttributeException = class _InvalidResultAttributeException extends SSMServiceException {\n static {\n __name(this, \"InvalidResultAttributeException\");\n }\n name = \"InvalidResultAttributeException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidResultAttributeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidResultAttributeException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InventoryAttributeDataType = {\n NUMBER: \"number\",\n STRING: \"string\"\n};\nvar NotificationEvent = {\n ALL: \"All\",\n CANCELLED: \"Cancelled\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar NotificationType = {\n Command: \"Command\",\n Invocation: \"Invocation\"\n};\nvar OpsFilterOperatorType = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n EXISTS: \"Exists\",\n GREATER_THAN: \"GreaterThan\",\n LESS_THAN: \"LessThan\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar InvalidKeyId = class _InvalidKeyId extends SSMServiceException {\n static {\n __name(this, \"InvalidKeyId\");\n }\n name = \"InvalidKeyId\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidKeyId\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidKeyId.prototype);\n }\n};\nvar ParameterVersionNotFound = class _ParameterVersionNotFound extends SSMServiceException {\n static {\n __name(this, \"ParameterVersionNotFound\");\n }\n name = \"ParameterVersionNotFound\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterVersionNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterVersionNotFound.prototype);\n }\n};\nvar ServiceSettingNotFound = class _ServiceSettingNotFound extends SSMServiceException {\n static {\n __name(this, \"ServiceSettingNotFound\");\n }\n name = \"ServiceSettingNotFound\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceSettingNotFound\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceSettingNotFound.prototype);\n this.Message = opts.Message;\n }\n};\nvar ParameterVersionLabelLimitExceeded = class _ParameterVersionLabelLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"ParameterVersionLabelLimitExceeded\");\n }\n name = \"ParameterVersionLabelLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterVersionLabelLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterVersionLabelLimitExceeded.prototype);\n }\n};\nvar AssociationFilterKey = {\n AssociationId: \"AssociationId\",\n AssociationName: \"AssociationName\",\n InstanceId: \"InstanceId\",\n LastExecutedAfter: \"LastExecutedAfter\",\n LastExecutedBefore: \"LastExecutedBefore\",\n Name: \"Name\",\n ResourceGroupName: \"ResourceGroupName\",\n Status: \"AssociationStatusName\"\n};\nvar CommandFilterKey = {\n DOCUMENT_NAME: \"DocumentName\",\n EXECUTION_STAGE: \"ExecutionStage\",\n INVOKED_AFTER: \"InvokedAfter\",\n INVOKED_BEFORE: \"InvokedBefore\",\n STATUS: \"Status\"\n};\nvar CommandPluginStatus = {\n CANCELLED: \"Cancelled\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar CommandStatus = {\n CANCELLED: \"Cancelled\",\n CANCELLING: \"Cancelling\",\n FAILED: \"Failed\",\n IN_PROGRESS: \"InProgress\",\n PENDING: \"Pending\",\n SUCCESS: \"Success\",\n TIMED_OUT: \"TimedOut\"\n};\nvar ComplianceQueryOperatorType = {\n BeginWith: \"BEGIN_WITH\",\n Equal: \"EQUAL\",\n GreaterThan: \"GREATER_THAN\",\n LessThan: \"LESS_THAN\",\n NotEqual: \"NOT_EQUAL\"\n};\nvar ComplianceSeverity = {\n Critical: \"CRITICAL\",\n High: \"HIGH\",\n Informational: \"INFORMATIONAL\",\n Low: \"LOW\",\n Medium: \"MEDIUM\",\n Unspecified: \"UNSPECIFIED\"\n};\nvar ComplianceStatus = {\n Compliant: \"COMPLIANT\",\n NonCompliant: \"NON_COMPLIANT\"\n};\nvar DocumentMetadataEnum = {\n DocumentReviews: \"DocumentReviews\"\n};\nvar DocumentReviewCommentType = {\n Comment: \"Comment\"\n};\nvar DocumentFilterKey = {\n DocumentType: \"DocumentType\",\n Name: \"Name\",\n Owner: \"Owner\",\n PlatformTypes: \"PlatformTypes\"\n};\nvar NodeFilterKey = {\n ACCOUNT_ID: \"AccountId\",\n AGENT_TYPE: \"AgentType\",\n AGENT_VERSION: \"AgentVersion\",\n COMPUTER_NAME: \"ComputerName\",\n INSTANCE_ID: \"InstanceId\",\n INSTANCE_STATUS: \"InstanceStatus\",\n IP_ADDRESS: \"IpAddress\",\n MANAGED_STATUS: \"ManagedStatus\",\n ORGANIZATIONAL_UNIT_ID: \"OrganizationalUnitId\",\n ORGANIZATIONAL_UNIT_PATH: \"OrganizationalUnitPath\",\n PLATFORM_NAME: \"PlatformName\",\n PLATFORM_TYPE: \"PlatformType\",\n PLATFORM_VERSION: \"PlatformVersion\",\n REGION: \"Region\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar NodeFilterOperatorType = {\n BEGIN_WITH: \"BeginWith\",\n EQUAL: \"Equal\",\n NOT_EQUAL: \"NotEqual\"\n};\nvar ManagedStatus = {\n ALL: \"All\",\n MANAGED: \"Managed\",\n UNMANAGED: \"Unmanaged\"\n};\nvar NodeType;\n((NodeType2) => {\n NodeType2.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Instance !== void 0) return visitor.Instance(value.Instance);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(NodeType || (NodeType = {}));\nvar UnsupportedOperationException = class _UnsupportedOperationException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedOperationException\");\n }\n name = \"UnsupportedOperationException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedOperationException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedOperationException.prototype);\n this.Message = opts.Message;\n }\n};\nvar NodeAggregatorType = {\n COUNT: \"Count\"\n};\nvar NodeAttributeName = {\n AGENT_VERSION: \"AgentVersion\",\n PLATFORM_NAME: \"PlatformName\",\n PLATFORM_TYPE: \"PlatformType\",\n PLATFORM_VERSION: \"PlatformVersion\",\n REGION: \"Region\",\n RESOURCE_TYPE: \"ResourceType\"\n};\nvar NodeTypeName = {\n INSTANCE: \"Instance\"\n};\nvar OpsItemEventFilterKey = {\n OPSITEM_ID: \"OpsItemId\"\n};\nvar OpsItemEventFilterOperator = {\n EQUAL: \"Equal\"\n};\nvar OpsItemRelatedItemsFilterKey = {\n ASSOCIATION_ID: \"AssociationId\",\n RESOURCE_TYPE: \"ResourceType\",\n RESOURCE_URI: \"ResourceUri\"\n};\nvar OpsItemRelatedItemsFilterOperator = {\n EQUAL: \"Equal\"\n};\nvar LastResourceDataSyncStatus = {\n FAILED: \"Failed\",\n INPROGRESS: \"InProgress\",\n SUCCESSFUL: \"Successful\"\n};\nvar DocumentPermissionLimit = class _DocumentPermissionLimit extends SSMServiceException {\n static {\n __name(this, \"DocumentPermissionLimit\");\n }\n name = \"DocumentPermissionLimit\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentPermissionLimit\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentPermissionLimit.prototype);\n this.Message = opts.Message;\n }\n};\nvar ComplianceTypeCountLimitExceededException = class _ComplianceTypeCountLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ComplianceTypeCountLimitExceededException\");\n }\n name = \"ComplianceTypeCountLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ComplianceTypeCountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ComplianceTypeCountLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidItemContentException = class _InvalidItemContentException extends SSMServiceException {\n static {\n __name(this, \"InvalidItemContentException\");\n }\n name = \"InvalidItemContentException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidItemContentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidItemContentException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar ItemSizeLimitExceededException = class _ItemSizeLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ItemSizeLimitExceededException\");\n }\n name = \"ItemSizeLimitExceededException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ItemSizeLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ItemSizeLimitExceededException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar ComplianceUploadType = {\n Complete: \"COMPLETE\",\n Partial: \"PARTIAL\"\n};\nvar TotalSizeLimitExceededException = class _TotalSizeLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"TotalSizeLimitExceededException\");\n }\n name = \"TotalSizeLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TotalSizeLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TotalSizeLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar CustomSchemaCountLimitExceededException = class _CustomSchemaCountLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"CustomSchemaCountLimitExceededException\");\n }\n name = \"CustomSchemaCountLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"CustomSchemaCountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _CustomSchemaCountLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidInventoryItemContextException = class _InvalidInventoryItemContextException extends SSMServiceException {\n static {\n __name(this, \"InvalidInventoryItemContextException\");\n }\n name = \"InvalidInventoryItemContextException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidInventoryItemContextException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidInventoryItemContextException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ItemContentMismatchException = class _ItemContentMismatchException extends SSMServiceException {\n static {\n __name(this, \"ItemContentMismatchException\");\n }\n name = \"ItemContentMismatchException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ItemContentMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ItemContentMismatchException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar SubTypeCountLimitExceededException = class _SubTypeCountLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"SubTypeCountLimitExceededException\");\n }\n name = \"SubTypeCountLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SubTypeCountLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SubTypeCountLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar UnsupportedInventoryItemContextException = class _UnsupportedInventoryItemContextException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedInventoryItemContextException\");\n }\n name = \"UnsupportedInventoryItemContextException\";\n $fault = \"client\";\n TypeName;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedInventoryItemContextException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedInventoryItemContextException.prototype);\n this.TypeName = opts.TypeName;\n this.Message = opts.Message;\n }\n};\nvar UnsupportedInventorySchemaVersionException = class _UnsupportedInventorySchemaVersionException extends SSMServiceException {\n static {\n __name(this, \"UnsupportedInventorySchemaVersionException\");\n }\n name = \"UnsupportedInventorySchemaVersionException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedInventorySchemaVersionException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedInventorySchemaVersionException.prototype);\n this.Message = opts.Message;\n }\n};\nvar HierarchyLevelLimitExceededException = class _HierarchyLevelLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"HierarchyLevelLimitExceededException\");\n }\n name = \"HierarchyLevelLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HierarchyLevelLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HierarchyLevelLimitExceededException.prototype);\n }\n};\nvar HierarchyTypeMismatchException = class _HierarchyTypeMismatchException extends SSMServiceException {\n static {\n __name(this, \"HierarchyTypeMismatchException\");\n }\n name = \"HierarchyTypeMismatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"HierarchyTypeMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _HierarchyTypeMismatchException.prototype);\n }\n};\nvar IncompatiblePolicyException = class _IncompatiblePolicyException extends SSMServiceException {\n static {\n __name(this, \"IncompatiblePolicyException\");\n }\n name = \"IncompatiblePolicyException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IncompatiblePolicyException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IncompatiblePolicyException.prototype);\n }\n};\nvar InvalidAllowedPatternException = class _InvalidAllowedPatternException extends SSMServiceException {\n static {\n __name(this, \"InvalidAllowedPatternException\");\n }\n name = \"InvalidAllowedPatternException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAllowedPatternException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAllowedPatternException.prototype);\n }\n};\nvar InvalidPolicyAttributeException = class _InvalidPolicyAttributeException extends SSMServiceException {\n static {\n __name(this, \"InvalidPolicyAttributeException\");\n }\n name = \"InvalidPolicyAttributeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPolicyAttributeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPolicyAttributeException.prototype);\n }\n};\nvar InvalidPolicyTypeException = class _InvalidPolicyTypeException extends SSMServiceException {\n static {\n __name(this, \"InvalidPolicyTypeException\");\n }\n name = \"InvalidPolicyTypeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidPolicyTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidPolicyTypeException.prototype);\n }\n};\nvar ParameterAlreadyExists = class _ParameterAlreadyExists extends SSMServiceException {\n static {\n __name(this, \"ParameterAlreadyExists\");\n }\n name = \"ParameterAlreadyExists\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterAlreadyExists\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterAlreadyExists.prototype);\n }\n};\nvar ParameterLimitExceeded = class _ParameterLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"ParameterLimitExceeded\");\n }\n name = \"ParameterLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterLimitExceeded.prototype);\n }\n};\nvar ParameterMaxVersionLimitExceeded = class _ParameterMaxVersionLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"ParameterMaxVersionLimitExceeded\");\n }\n name = \"ParameterMaxVersionLimitExceeded\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterMaxVersionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterMaxVersionLimitExceeded.prototype);\n }\n};\nvar ParameterPatternMismatchException = class _ParameterPatternMismatchException extends SSMServiceException {\n static {\n __name(this, \"ParameterPatternMismatchException\");\n }\n name = \"ParameterPatternMismatchException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ParameterPatternMismatchException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ParameterPatternMismatchException.prototype);\n }\n};\nvar PoliciesLimitExceededException = class _PoliciesLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"PoliciesLimitExceededException\");\n }\n name = \"PoliciesLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PoliciesLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PoliciesLimitExceededException.prototype);\n }\n};\nvar UnsupportedParameterType = class _UnsupportedParameterType extends SSMServiceException {\n static {\n __name(this, \"UnsupportedParameterType\");\n }\n name = \"UnsupportedParameterType\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedParameterType\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedParameterType.prototype);\n }\n};\nvar ResourcePolicyLimitExceededException = class _ResourcePolicyLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"ResourcePolicyLimitExceededException\");\n }\n name = \"ResourcePolicyLimitExceededException\";\n $fault = \"client\";\n Limit;\n LimitType;\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourcePolicyLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourcePolicyLimitExceededException.prototype);\n this.Limit = opts.Limit;\n this.LimitType = opts.LimitType;\n this.Message = opts.Message;\n }\n};\nvar MaintenanceWindowTargetFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowTargetFilterSensitiveLog\");\nvar DescribeMaintenanceWindowTargetsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Targets && { Targets: obj.Targets.map((item) => MaintenanceWindowTargetFilterSensitiveLog(item)) }\n}), \"DescribeMaintenanceWindowTargetsResultFilterSensitiveLog\");\nvar MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Values && { Values: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog\");\nvar MaintenanceWindowTaskFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowTaskFilterSensitiveLog\");\nvar DescribeMaintenanceWindowTasksResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Tasks && { Tasks: obj.Tasks.map((item) => MaintenanceWindowTaskFilterSensitiveLog(item)) }\n}), \"DescribeMaintenanceWindowTasksResultFilterSensitiveLog\");\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.SessionToken && { SessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar GetAccessTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetAccessTokenResponseFilterSensitiveLog\");\nvar BaselineOverrideFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"BaselineOverrideFilterSensitiveLog\");\nvar GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj\n}), \"GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog\");\nvar GetMaintenanceWindowResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowResultFilterSensitiveLog\");\nvar GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog\");\nvar GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog\");\nvar MaintenanceWindowLambdaParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Payload && { Payload: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowLambdaParametersFilterSensitiveLog\");\nvar MaintenanceWindowRunCommandParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowRunCommandParametersFilterSensitiveLog\");\nvar MaintenanceWindowStepFunctionsParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Input && { Input: import_smithy_client.SENSITIVE_STRING }\n}), \"MaintenanceWindowStepFunctionsParametersFilterSensitiveLog\");\nvar MaintenanceWindowTaskInvocationParametersFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.RunCommand && { RunCommand: MaintenanceWindowRunCommandParametersFilterSensitiveLog(obj.RunCommand) },\n ...obj.StepFunctions && {\n StepFunctions: MaintenanceWindowStepFunctionsParametersFilterSensitiveLog(obj.StepFunctions)\n },\n ...obj.Lambda && { Lambda: MaintenanceWindowLambdaParametersFilterSensitiveLog(obj.Lambda) }\n}), \"MaintenanceWindowTaskInvocationParametersFilterSensitiveLog\");\nvar GetMaintenanceWindowTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"GetMaintenanceWindowTaskResultFilterSensitiveLog\");\nvar ParameterFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Value && { Value: import_smithy_client.SENSITIVE_STRING }\n}), \"ParameterFilterSensitiveLog\");\nvar GetParameterResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameter && { Parameter: ParameterFilterSensitiveLog(obj.Parameter) }\n}), \"GetParameterResultFilterSensitiveLog\");\nvar ParameterHistoryFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Value && { Value: import_smithy_client.SENSITIVE_STRING }\n}), \"ParameterHistoryFilterSensitiveLog\");\nvar GetParameterHistoryResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: obj.Parameters.map((item) => ParameterHistoryFilterSensitiveLog(item)) }\n}), \"GetParameterHistoryResultFilterSensitiveLog\");\nvar GetParametersResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: obj.Parameters.map((item) => ParameterFilterSensitiveLog(item)) }\n}), \"GetParametersResultFilterSensitiveLog\");\nvar GetParametersByPathResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: obj.Parameters.map((item) => ParameterFilterSensitiveLog(item)) }\n}), \"GetParametersByPathResultFilterSensitiveLog\");\nvar GetPatchBaselineResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"GetPatchBaselineResultFilterSensitiveLog\");\nvar AssociationVersionInfoFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"AssociationVersionInfoFilterSensitiveLog\");\nvar ListAssociationVersionsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationVersions && {\n AssociationVersions: obj.AssociationVersions.map((item) => AssociationVersionInfoFilterSensitiveLog(item))\n }\n}), \"ListAssociationVersionsResultFilterSensitiveLog\");\nvar CommandFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"CommandFilterSensitiveLog\");\nvar ListCommandsResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Commands && { Commands: obj.Commands.map((item) => CommandFilterSensitiveLog(item)) }\n}), \"ListCommandsResultFilterSensitiveLog\");\nvar InstanceInfoFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.IpAddress && { IpAddress: import_smithy_client.SENSITIVE_STRING }\n}), \"InstanceInfoFilterSensitiveLog\");\nvar NodeTypeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {\n if (obj.Instance !== void 0) return { Instance: InstanceInfoFilterSensitiveLog(obj.Instance) };\n if (obj.$unknown !== void 0) return { [obj.$unknown[0]]: \"UNKNOWN\" };\n}, \"NodeTypeFilterSensitiveLog\");\nvar NodeFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.NodeType && { NodeType: NodeTypeFilterSensitiveLog(obj.NodeType) }\n}), \"NodeFilterSensitiveLog\");\nvar ListNodesResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Nodes && { Nodes: obj.Nodes.map((item) => NodeFilterSensitiveLog(item)) }\n}), \"ListNodesResultFilterSensitiveLog\");\nvar PutParameterRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Value && { Value: import_smithy_client.SENSITIVE_STRING }\n}), \"PutParameterRequestFilterSensitiveLog\");\n\n// src/models/models_2.ts\n\nvar FeatureNotAvailableException = class _FeatureNotAvailableException extends SSMServiceException {\n static {\n __name(this, \"FeatureNotAvailableException\");\n }\n name = \"FeatureNotAvailableException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"FeatureNotAvailableException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _FeatureNotAvailableException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationStepNotFoundException = class _AutomationStepNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationStepNotFoundException\");\n }\n name = \"AutomationStepNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationStepNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationStepNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAutomationSignalException = class _InvalidAutomationSignalException extends SSMServiceException {\n static {\n __name(this, \"InvalidAutomationSignalException\");\n }\n name = \"InvalidAutomationSignalException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAutomationSignalException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAutomationSignalException.prototype);\n this.Message = opts.Message;\n }\n};\nvar SignalType = {\n APPROVE: \"Approve\",\n REJECT: \"Reject\",\n RESUME: \"Resume\",\n REVOKE: \"Revoke\",\n START_STEP: \"StartStep\",\n STOP_STEP: \"StopStep\"\n};\nvar InvalidNotificationConfig = class _InvalidNotificationConfig extends SSMServiceException {\n static {\n __name(this, \"InvalidNotificationConfig\");\n }\n name = \"InvalidNotificationConfig\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidNotificationConfig\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidNotificationConfig.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidOutputFolder = class _InvalidOutputFolder extends SSMServiceException {\n static {\n __name(this, \"InvalidOutputFolder\");\n }\n name = \"InvalidOutputFolder\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidOutputFolder\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidOutputFolder.prototype);\n }\n};\nvar InvalidRole = class _InvalidRole extends SSMServiceException {\n static {\n __name(this, \"InvalidRole\");\n }\n name = \"InvalidRole\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRole\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRole.prototype);\n this.Message = opts.Message;\n }\n};\nvar ServiceQuotaExceededException = class _ServiceQuotaExceededException extends SSMServiceException {\n static {\n __name(this, \"ServiceQuotaExceededException\");\n }\n name = \"ServiceQuotaExceededException\";\n $fault = \"client\";\n Message;\n /**\n *

The unique ID of the resource referenced in the failed request.

\n * @public\n */\n ResourceId;\n /**\n *

The resource type of the resource referenced in the failed request.

\n * @public\n */\n ResourceType;\n /**\n *

The quota code recognized by the Amazon Web Services Service Quotas service.

\n * @public\n */\n QuotaCode;\n /**\n *

The code for the Amazon Web Services service that owns the quota.

\n * @public\n */\n ServiceCode;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ServiceQuotaExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ServiceQuotaExceededException.prototype);\n this.Message = opts.Message;\n this.ResourceId = opts.ResourceId;\n this.ResourceType = opts.ResourceType;\n this.QuotaCode = opts.QuotaCode;\n this.ServiceCode = opts.ServiceCode;\n }\n};\nvar InvalidAssociation = class _InvalidAssociation extends SSMServiceException {\n static {\n __name(this, \"InvalidAssociation\");\n }\n name = \"InvalidAssociation\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAssociation\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAssociation.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationDefinitionNotFoundException = class _AutomationDefinitionNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationDefinitionNotFoundException\");\n }\n name = \"AutomationDefinitionNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationDefinitionNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationDefinitionNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationDefinitionVersionNotFoundException = class _AutomationDefinitionVersionNotFoundException extends SSMServiceException {\n static {\n __name(this, \"AutomationDefinitionVersionNotFoundException\");\n }\n name = \"AutomationDefinitionVersionNotFoundException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationDefinitionVersionNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationDefinitionVersionNotFoundException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationExecutionLimitExceededException = class _AutomationExecutionLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"AutomationExecutionLimitExceededException\");\n }\n name = \"AutomationExecutionLimitExceededException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationExecutionLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationExecutionLimitExceededException.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAutomationExecutionParametersException = class _InvalidAutomationExecutionParametersException extends SSMServiceException {\n static {\n __name(this, \"InvalidAutomationExecutionParametersException\");\n }\n name = \"InvalidAutomationExecutionParametersException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAutomationExecutionParametersException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAutomationExecutionParametersException.prototype);\n this.Message = opts.Message;\n }\n};\nvar AutomationDefinitionNotApprovedException = class _AutomationDefinitionNotApprovedException extends SSMServiceException {\n static {\n __name(this, \"AutomationDefinitionNotApprovedException\");\n }\n name = \"AutomationDefinitionNotApprovedException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AutomationDefinitionNotApprovedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AutomationDefinitionNotApprovedException.prototype);\n this.Message = opts.Message;\n }\n};\nvar ExecutionInputs;\n((ExecutionInputs3) => {\n ExecutionInputs3.visit = /* @__PURE__ */ __name((value, visitor) => {\n if (value.Automation !== void 0) return visitor.Automation(value.Automation);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n }, \"visit\");\n})(ExecutionInputs || (ExecutionInputs = {}));\nvar TargetNotConnected = class _TargetNotConnected extends SSMServiceException {\n static {\n __name(this, \"TargetNotConnected\");\n }\n name = \"TargetNotConnected\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TargetNotConnected\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TargetNotConnected.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidAutomationStatusUpdateException = class _InvalidAutomationStatusUpdateException extends SSMServiceException {\n static {\n __name(this, \"InvalidAutomationStatusUpdateException\");\n }\n name = \"InvalidAutomationStatusUpdateException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAutomationStatusUpdateException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAutomationStatusUpdateException.prototype);\n this.Message = opts.Message;\n }\n};\nvar StopType = {\n CANCEL: \"Cancel\",\n COMPLETE: \"Complete\"\n};\nvar AssociationVersionLimitExceeded = class _AssociationVersionLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"AssociationVersionLimitExceeded\");\n }\n name = \"AssociationVersionLimitExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AssociationVersionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AssociationVersionLimitExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar InvalidUpdate = class _InvalidUpdate extends SSMServiceException {\n static {\n __name(this, \"InvalidUpdate\");\n }\n name = \"InvalidUpdate\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidUpdate\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidUpdate.prototype);\n this.Message = opts.Message;\n }\n};\nvar StatusUnchanged = class _StatusUnchanged extends SSMServiceException {\n static {\n __name(this, \"StatusUnchanged\");\n }\n name = \"StatusUnchanged\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"StatusUnchanged\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _StatusUnchanged.prototype);\n }\n};\nvar DocumentVersionLimitExceeded = class _DocumentVersionLimitExceeded extends SSMServiceException {\n static {\n __name(this, \"DocumentVersionLimitExceeded\");\n }\n name = \"DocumentVersionLimitExceeded\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DocumentVersionLimitExceeded\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DocumentVersionLimitExceeded.prototype);\n this.Message = opts.Message;\n }\n};\nvar DuplicateDocumentContent = class _DuplicateDocumentContent extends SSMServiceException {\n static {\n __name(this, \"DuplicateDocumentContent\");\n }\n name = \"DuplicateDocumentContent\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateDocumentContent\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateDocumentContent.prototype);\n this.Message = opts.Message;\n }\n};\nvar DuplicateDocumentVersionName = class _DuplicateDocumentVersionName extends SSMServiceException {\n static {\n __name(this, \"DuplicateDocumentVersionName\");\n }\n name = \"DuplicateDocumentVersionName\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"DuplicateDocumentVersionName\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _DuplicateDocumentVersionName.prototype);\n this.Message = opts.Message;\n }\n};\nvar DocumentReviewAction = {\n Approve: \"Approve\",\n Reject: \"Reject\",\n SendForReview: \"SendForReview\",\n UpdateReview: \"UpdateReview\"\n};\nvar OpsMetadataKeyLimitExceededException = class _OpsMetadataKeyLimitExceededException extends SSMServiceException {\n static {\n __name(this, \"OpsMetadataKeyLimitExceededException\");\n }\n name = \"OpsMetadataKeyLimitExceededException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"OpsMetadataKeyLimitExceededException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _OpsMetadataKeyLimitExceededException.prototype);\n }\n};\nvar ResourceDataSyncConflictException = class _ResourceDataSyncConflictException extends SSMServiceException {\n static {\n __name(this, \"ResourceDataSyncConflictException\");\n }\n name = \"ResourceDataSyncConflictException\";\n $fault = \"client\";\n Message;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceDataSyncConflictException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceDataSyncConflictException.prototype);\n this.Message = opts.Message;\n }\n};\nvar RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog\");\nvar RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog\");\nvar SendCommandRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"SendCommandRequestFilterSensitiveLog\");\nvar SendCommandResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Command && { Command: CommandFilterSensitiveLog(obj.Command) }\n}), \"SendCommandResultFilterSensitiveLog\");\nvar UpdateAssociationRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Parameters && { Parameters: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateAssociationRequestFilterSensitiveLog\");\nvar UpdateAssociationResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"UpdateAssociationResultFilterSensitiveLog\");\nvar UpdateAssociationStatusResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.AssociationDescription && {\n AssociationDescription: AssociationDescriptionFilterSensitiveLog(obj.AssociationDescription)\n }\n}), \"UpdateAssociationStatusResultFilterSensitiveLog\");\nvar UpdateMaintenanceWindowRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowRequestFilterSensitiveLog\");\nvar UpdateMaintenanceWindowResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowResultFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTargetRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTargetRequestFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTargetResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.OwnerInformation && { OwnerInformation: import_smithy_client.SENSITIVE_STRING },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTargetResultFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTaskRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTaskRequestFilterSensitiveLog\");\nvar UpdateMaintenanceWindowTaskResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.TaskParameters && { TaskParameters: import_smithy_client.SENSITIVE_STRING },\n ...obj.TaskInvocationParameters && {\n TaskInvocationParameters: MaintenanceWindowTaskInvocationParametersFilterSensitiveLog(obj.TaskInvocationParameters)\n },\n ...obj.Description && { Description: import_smithy_client.SENSITIVE_STRING }\n}), \"UpdateMaintenanceWindowTaskResultFilterSensitiveLog\");\nvar UpdatePatchBaselineRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"UpdatePatchBaselineRequestFilterSensitiveLog\");\nvar UpdatePatchBaselineResultFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Sources && { Sources: obj.Sources.map((item) => PatchSourceFilterSensitiveLog(item)) }\n}), \"UpdatePatchBaselineResultFilterSensitiveLog\");\n\n// src/protocols/Aws_json1_1.ts\nvar se_AddTagsToResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"AddTagsToResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AddTagsToResourceCommand\");\nvar se_AssociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"AssociateOpsItemRelatedItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssociateOpsItemRelatedItemCommand\");\nvar se_CancelCommandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelCommand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelCommandCommand\");\nvar se_CancelMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CancelMaintenanceWindowExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CancelMaintenanceWindowExecutionCommand\");\nvar se_CreateActivationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateActivation\");\n let body;\n body = JSON.stringify(se_CreateActivationRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateActivationCommand\");\nvar se_CreateAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAssociationCommand\");\nvar se_CreateAssociationBatchCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateAssociationBatch\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateAssociationBatchCommand\");\nvar se_CreateDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateDocumentCommand\");\nvar se_CreateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateMaintenanceWindow\");\n let body;\n body = JSON.stringify(se_CreateMaintenanceWindowRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateMaintenanceWindowCommand\");\nvar se_CreateOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateOpsItem\");\n let body;\n body = JSON.stringify(se_CreateOpsItemRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateOpsItemCommand\");\nvar se_CreateOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateOpsMetadataCommand\");\nvar se_CreatePatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreatePatchBaseline\");\n let body;\n body = JSON.stringify(se_CreatePatchBaselineRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreatePatchBaselineCommand\");\nvar se_CreateResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"CreateResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_CreateResourceDataSyncCommand\");\nvar se_DeleteActivationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteActivation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteActivationCommand\");\nvar se_DeleteAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteAssociationCommand\");\nvar se_DeleteDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteDocumentCommand\");\nvar se_DeleteInventoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteInventory\");\n let body;\n body = JSON.stringify(se_DeleteInventoryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteInventoryCommand\");\nvar se_DeleteMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteMaintenanceWindowCommand\");\nvar se_DeleteOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteOpsItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteOpsItemCommand\");\nvar se_DeleteOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteOpsMetadataCommand\");\nvar se_DeleteParameterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteParameter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteParameterCommand\");\nvar se_DeleteParametersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteParameters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteParametersCommand\");\nvar se_DeletePatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeletePatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeletePatchBaselineCommand\");\nvar se_DeleteResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourceDataSyncCommand\");\nvar se_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeleteResourcePolicyCommand\");\nvar se_DeregisterManagedInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterManagedInstance\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterManagedInstanceCommand\");\nvar se_DeregisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterPatchBaselineForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterPatchBaselineForPatchGroupCommand\");\nvar se_DeregisterTargetFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterTargetFromMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTargetFromMaintenanceWindowCommand\");\nvar se_DeregisterTaskFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DeregisterTaskFromMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DeregisterTaskFromMaintenanceWindowCommand\");\nvar se_DescribeActivationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeActivations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeActivationsCommand\");\nvar se_DescribeAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAssociationCommand\");\nvar se_DescribeAssociationExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAssociationExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAssociationExecutionsCommand\");\nvar se_DescribeAssociationExecutionTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAssociationExecutionTargets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAssociationExecutionTargetsCommand\");\nvar se_DescribeAutomationExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAutomationExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAutomationExecutionsCommand\");\nvar se_DescribeAutomationStepExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAutomationStepExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAutomationStepExecutionsCommand\");\nvar se_DescribeAvailablePatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeAvailablePatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeAvailablePatchesCommand\");\nvar se_DescribeDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDocumentCommand\");\nvar se_DescribeDocumentPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeDocumentPermission\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeDocumentPermissionCommand\");\nvar se_DescribeEffectiveInstanceAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeEffectiveInstanceAssociations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeEffectiveInstanceAssociationsCommand\");\nvar se_DescribeEffectivePatchesForPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeEffectivePatchesForPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeEffectivePatchesForPatchBaselineCommand\");\nvar se_DescribeInstanceAssociationsStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstanceAssociationsStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceAssociationsStatusCommand\");\nvar se_DescribeInstanceInformationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstanceInformation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstanceInformationCommand\");\nvar se_DescribeInstancePatchesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstancePatches\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePatchesCommand\");\nvar se_DescribeInstancePatchStatesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstancePatchStates\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePatchStatesCommand\");\nvar se_DescribeInstancePatchStatesForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstancePatchStatesForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePatchStatesForPatchGroupCommand\");\nvar se_DescribeInstancePropertiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInstanceProperties\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInstancePropertiesCommand\");\nvar se_DescribeInventoryDeletionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeInventoryDeletions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeInventoryDeletionsCommand\");\nvar se_DescribeMaintenanceWindowExecutionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowExecutions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowExecutionsCommand\");\nvar se_DescribeMaintenanceWindowExecutionTaskInvocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowExecutionTaskInvocations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowExecutionTaskInvocationsCommand\");\nvar se_DescribeMaintenanceWindowExecutionTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowExecutionTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowExecutionTasksCommand\");\nvar se_DescribeMaintenanceWindowsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindows\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowsCommand\");\nvar se_DescribeMaintenanceWindowScheduleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowSchedule\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowScheduleCommand\");\nvar se_DescribeMaintenanceWindowsForTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowsForTarget\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowsForTargetCommand\");\nvar se_DescribeMaintenanceWindowTargetsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowTargets\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowTargetsCommand\");\nvar se_DescribeMaintenanceWindowTasksCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeMaintenanceWindowTasks\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeMaintenanceWindowTasksCommand\");\nvar se_DescribeOpsItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeOpsItems\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeOpsItemsCommand\");\nvar se_DescribeParametersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeParameters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeParametersCommand\");\nvar se_DescribePatchBaselinesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchBaselines\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchBaselinesCommand\");\nvar se_DescribePatchGroupsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchGroups\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchGroupsCommand\");\nvar se_DescribePatchGroupStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchGroupState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchGroupStateCommand\");\nvar se_DescribePatchPropertiesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribePatchProperties\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribePatchPropertiesCommand\");\nvar se_DescribeSessionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DescribeSessions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DescribeSessionsCommand\");\nvar se_DisassociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"DisassociateOpsItemRelatedItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DisassociateOpsItemRelatedItemCommand\");\nvar se_GetAccessTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAccessToken\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccessTokenCommand\");\nvar se_GetAutomationExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetAutomationExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAutomationExecutionCommand\");\nvar se_GetCalendarStateCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetCalendarState\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCalendarStateCommand\");\nvar se_GetCommandInvocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetCommandInvocation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCommandInvocationCommand\");\nvar se_GetConnectionStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetConnectionStatus\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetConnectionStatusCommand\");\nvar se_GetDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDefaultPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDefaultPatchBaselineCommand\");\nvar se_GetDeployablePatchSnapshotForInstanceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDeployablePatchSnapshotForInstance\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDeployablePatchSnapshotForInstanceCommand\");\nvar se_GetDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetDocumentCommand\");\nvar se_GetExecutionPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetExecutionPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetExecutionPreviewCommand\");\nvar se_GetInventoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetInventory\");\n let body;\n body = JSON.stringify(se_GetInventoryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInventoryCommand\");\nvar se_GetInventorySchemaCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetInventorySchema\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetInventorySchemaCommand\");\nvar se_GetMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowCommand\");\nvar se_GetMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowExecutionCommand\");\nvar se_GetMaintenanceWindowExecutionTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowExecutionTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowExecutionTaskCommand\");\nvar se_GetMaintenanceWindowExecutionTaskInvocationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowExecutionTaskInvocation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowExecutionTaskInvocationCommand\");\nvar se_GetMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetMaintenanceWindowTask\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetMaintenanceWindowTaskCommand\");\nvar se_GetOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpsItem\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpsItemCommand\");\nvar se_GetOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpsMetadataCommand\");\nvar se_GetOpsSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetOpsSummary\");\n let body;\n body = JSON.stringify(se_GetOpsSummaryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetOpsSummaryCommand\");\nvar se_GetParameterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParameter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParameterCommand\");\nvar se_GetParameterHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParameterHistory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParameterHistoryCommand\");\nvar se_GetParametersCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParameters\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParametersCommand\");\nvar se_GetParametersByPathCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetParametersByPath\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetParametersByPathCommand\");\nvar se_GetPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPatchBaselineCommand\");\nvar se_GetPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetPatchBaselineForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetPatchBaselineForPatchGroupCommand\");\nvar se_GetResourcePoliciesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetResourcePolicies\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetResourcePoliciesCommand\");\nvar se_GetServiceSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"GetServiceSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetServiceSettingCommand\");\nvar se_LabelParameterVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"LabelParameterVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_LabelParameterVersionCommand\");\nvar se_ListAssociationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAssociations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAssociationsCommand\");\nvar se_ListAssociationVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListAssociationVersions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListAssociationVersionsCommand\");\nvar se_ListCommandInvocationsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCommandInvocations\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCommandInvocationsCommand\");\nvar se_ListCommandsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListCommands\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListCommandsCommand\");\nvar se_ListComplianceItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListComplianceItems\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListComplianceItemsCommand\");\nvar se_ListComplianceSummariesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListComplianceSummaries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListComplianceSummariesCommand\");\nvar se_ListDocumentMetadataHistoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListDocumentMetadataHistory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListDocumentMetadataHistoryCommand\");\nvar se_ListDocumentsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListDocuments\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListDocumentsCommand\");\nvar se_ListDocumentVersionsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListDocumentVersions\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListDocumentVersionsCommand\");\nvar se_ListInventoryEntriesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListInventoryEntries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListInventoryEntriesCommand\");\nvar se_ListNodesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListNodes\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListNodesCommand\");\nvar se_ListNodesSummaryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListNodesSummary\");\n let body;\n body = JSON.stringify(se_ListNodesSummaryRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListNodesSummaryCommand\");\nvar se_ListOpsItemEventsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListOpsItemEvents\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpsItemEventsCommand\");\nvar se_ListOpsItemRelatedItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListOpsItemRelatedItems\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpsItemRelatedItemsCommand\");\nvar se_ListOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListOpsMetadataCommand\");\nvar se_ListResourceComplianceSummariesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceComplianceSummaries\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceComplianceSummariesCommand\");\nvar se_ListResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListResourceDataSyncCommand\");\nvar se_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ListTagsForResourceCommand\");\nvar se_ModifyDocumentPermissionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ModifyDocumentPermission\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ModifyDocumentPermissionCommand\");\nvar se_PutComplianceItemsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutComplianceItems\");\n let body;\n body = JSON.stringify(se_PutComplianceItemsRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutComplianceItemsCommand\");\nvar se_PutInventoryCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutInventory\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutInventoryCommand\");\nvar se_PutParameterCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutParameter\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutParameterCommand\");\nvar se_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"PutResourcePolicy\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_PutResourcePolicyCommand\");\nvar se_RegisterDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterDefaultPatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterDefaultPatchBaselineCommand\");\nvar se_RegisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterPatchBaselineForPatchGroup\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterPatchBaselineForPatchGroupCommand\");\nvar se_RegisterTargetWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterTargetWithMaintenanceWindow\");\n let body;\n body = JSON.stringify(se_RegisterTargetWithMaintenanceWindowRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTargetWithMaintenanceWindowCommand\");\nvar se_RegisterTaskWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RegisterTaskWithMaintenanceWindow\");\n let body;\n body = JSON.stringify(se_RegisterTaskWithMaintenanceWindowRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RegisterTaskWithMaintenanceWindowCommand\");\nvar se_RemoveTagsFromResourceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"RemoveTagsFromResource\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_RemoveTagsFromResourceCommand\");\nvar se_ResetServiceSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ResetServiceSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResetServiceSettingCommand\");\nvar se_ResumeSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"ResumeSession\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_ResumeSessionCommand\");\nvar se_SendAutomationSignalCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendAutomationSignal\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendAutomationSignalCommand\");\nvar se_SendCommandCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"SendCommand\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_SendCommandCommand\");\nvar se_StartAccessRequestCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartAccessRequest\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartAccessRequestCommand\");\nvar se_StartAssociationsOnceCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartAssociationsOnce\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartAssociationsOnceCommand\");\nvar se_StartAutomationExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartAutomationExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartAutomationExecutionCommand\");\nvar se_StartChangeRequestExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartChangeRequestExecution\");\n let body;\n body = JSON.stringify(se_StartChangeRequestExecutionRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartChangeRequestExecutionCommand\");\nvar se_StartExecutionPreviewCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartExecutionPreview\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartExecutionPreviewCommand\");\nvar se_StartSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StartSession\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StartSessionCommand\");\nvar se_StopAutomationExecutionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"StopAutomationExecution\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_StopAutomationExecutionCommand\");\nvar se_TerminateSessionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"TerminateSession\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_TerminateSessionCommand\");\nvar se_UnlabelParameterVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UnlabelParameterVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UnlabelParameterVersionCommand\");\nvar se_UpdateAssociationCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAssociation\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAssociationCommand\");\nvar se_UpdateAssociationStatusCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateAssociationStatus\");\n let body;\n body = JSON.stringify(se_UpdateAssociationStatusRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateAssociationStatusCommand\");\nvar se_UpdateDocumentCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDocument\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDocumentCommand\");\nvar se_UpdateDocumentDefaultVersionCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDocumentDefaultVersion\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDocumentDefaultVersionCommand\");\nvar se_UpdateDocumentMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateDocumentMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateDocumentMetadataCommand\");\nvar se_UpdateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMaintenanceWindow\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMaintenanceWindowCommand\");\nvar se_UpdateMaintenanceWindowTargetCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMaintenanceWindowTarget\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMaintenanceWindowTargetCommand\");\nvar se_UpdateMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateMaintenanceWindowTask\");\n let body;\n body = JSON.stringify(se_UpdateMaintenanceWindowTaskRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateMaintenanceWindowTaskCommand\");\nvar se_UpdateManagedInstanceRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateManagedInstanceRole\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateManagedInstanceRoleCommand\");\nvar se_UpdateOpsItemCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateOpsItem\");\n let body;\n body = JSON.stringify(se_UpdateOpsItemRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateOpsItemCommand\");\nvar se_UpdateOpsMetadataCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateOpsMetadata\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateOpsMetadataCommand\");\nvar se_UpdatePatchBaselineCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdatePatchBaseline\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdatePatchBaselineCommand\");\nvar se_UpdateResourceDataSyncCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateResourceDataSync\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateResourceDataSyncCommand\");\nvar se_UpdateServiceSettingCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = sharedHeaders(\"UpdateServiceSetting\");\n let body;\n body = JSON.stringify((0, import_smithy_client._json)(input));\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_UpdateServiceSettingCommand\");\nvar de_AddTagsToResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AddTagsToResourceCommand\");\nvar de_AssociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssociateOpsItemRelatedItemCommand\");\nvar de_CancelCommandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelCommandCommand\");\nvar de_CancelMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CancelMaintenanceWindowExecutionCommand\");\nvar de_CreateActivationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateActivationCommand\");\nvar de_CreateAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateAssociationCommand\");\nvar de_CreateAssociationBatchCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateAssociationBatchResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateAssociationBatchCommand\");\nvar de_CreateDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_CreateDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateDocumentCommand\");\nvar de_CreateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateMaintenanceWindowCommand\");\nvar de_CreateOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateOpsItemCommand\");\nvar de_CreateOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateOpsMetadataCommand\");\nvar de_CreatePatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreatePatchBaselineCommand\");\nvar de_CreateResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_CreateResourceDataSyncCommand\");\nvar de_DeleteActivationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteActivationCommand\");\nvar de_DeleteAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteAssociationCommand\");\nvar de_DeleteDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteDocumentCommand\");\nvar de_DeleteInventoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteInventoryCommand\");\nvar de_DeleteMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteMaintenanceWindowCommand\");\nvar de_DeleteOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteOpsItemCommand\");\nvar de_DeleteOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteOpsMetadataCommand\");\nvar de_DeleteParameterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteParameterCommand\");\nvar de_DeleteParametersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteParametersCommand\");\nvar de_DeletePatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeletePatchBaselineCommand\");\nvar de_DeleteResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourceDataSyncCommand\");\nvar de_DeleteResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeleteResourcePolicyCommand\");\nvar de_DeregisterManagedInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterManagedInstanceCommand\");\nvar de_DeregisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterPatchBaselineForPatchGroupCommand\");\nvar de_DeregisterTargetFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTargetFromMaintenanceWindowCommand\");\nvar de_DeregisterTaskFromMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DeregisterTaskFromMaintenanceWindowCommand\");\nvar de_DescribeActivationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeActivationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeActivationsCommand\");\nvar de_DescribeAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAssociationCommand\");\nvar de_DescribeAssociationExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAssociationExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAssociationExecutionsCommand\");\nvar de_DescribeAssociationExecutionTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAssociationExecutionTargetsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAssociationExecutionTargetsCommand\");\nvar de_DescribeAutomationExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAutomationExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAutomationExecutionsCommand\");\nvar de_DescribeAutomationStepExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAutomationStepExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAutomationStepExecutionsCommand\");\nvar de_DescribeAvailablePatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeAvailablePatchesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeAvailablePatchesCommand\");\nvar de_DescribeDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDocumentCommand\");\nvar de_DescribeDocumentPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeDocumentPermissionCommand\");\nvar de_DescribeEffectiveInstanceAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeEffectiveInstanceAssociationsCommand\");\nvar de_DescribeEffectivePatchesForPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeEffectivePatchesForPatchBaselineResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeEffectivePatchesForPatchBaselineCommand\");\nvar de_DescribeInstanceAssociationsStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceAssociationsStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceAssociationsStatusCommand\");\nvar de_DescribeInstanceInformationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstanceInformationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstanceInformationCommand\");\nvar de_DescribeInstancePatchesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePatchesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePatchesCommand\");\nvar de_DescribeInstancePatchStatesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePatchStatesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePatchStatesCommand\");\nvar de_DescribeInstancePatchStatesForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePatchStatesForPatchGroupResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePatchStatesForPatchGroupCommand\");\nvar de_DescribeInstancePropertiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInstancePropertiesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInstancePropertiesCommand\");\nvar de_DescribeInventoryDeletionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeInventoryDeletionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeInventoryDeletionsCommand\");\nvar de_DescribeMaintenanceWindowExecutionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMaintenanceWindowExecutionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowExecutionsCommand\");\nvar de_DescribeMaintenanceWindowExecutionTaskInvocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMaintenanceWindowExecutionTaskInvocationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowExecutionTaskInvocationsCommand\");\nvar de_DescribeMaintenanceWindowExecutionTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeMaintenanceWindowExecutionTasksResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowExecutionTasksCommand\");\nvar de_DescribeMaintenanceWindowsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowsCommand\");\nvar de_DescribeMaintenanceWindowScheduleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowScheduleCommand\");\nvar de_DescribeMaintenanceWindowsForTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowsForTargetCommand\");\nvar de_DescribeMaintenanceWindowTargetsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowTargetsCommand\");\nvar de_DescribeMaintenanceWindowTasksCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeMaintenanceWindowTasksCommand\");\nvar de_DescribeOpsItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeOpsItemsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeOpsItemsCommand\");\nvar de_DescribeParametersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeParametersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeParametersCommand\");\nvar de_DescribePatchBaselinesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchBaselinesCommand\");\nvar de_DescribePatchGroupsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchGroupsCommand\");\nvar de_DescribePatchGroupStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchGroupStateCommand\");\nvar de_DescribePatchPropertiesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribePatchPropertiesCommand\");\nvar de_DescribeSessionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_DescribeSessionsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DescribeSessionsCommand\");\nvar de_DisassociateOpsItemRelatedItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DisassociateOpsItemRelatedItemCommand\");\nvar de_GetAccessTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetAccessTokenResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccessTokenCommand\");\nvar de_GetAutomationExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetAutomationExecutionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAutomationExecutionCommand\");\nvar de_GetCalendarStateCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCalendarStateCommand\");\nvar de_GetCommandInvocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCommandInvocationCommand\");\nvar de_GetConnectionStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetConnectionStatusCommand\");\nvar de_GetDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDefaultPatchBaselineCommand\");\nvar de_GetDeployablePatchSnapshotForInstanceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDeployablePatchSnapshotForInstanceCommand\");\nvar de_GetDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetDocumentCommand\");\nvar de_GetExecutionPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetExecutionPreviewResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetExecutionPreviewCommand\");\nvar de_GetInventoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInventoryCommand\");\nvar de_GetInventorySchemaCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetInventorySchemaCommand\");\nvar de_GetMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowCommand\");\nvar de_GetMaintenanceWindowExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowExecutionResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowExecutionCommand\");\nvar de_GetMaintenanceWindowExecutionTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowExecutionTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowExecutionTaskCommand\");\nvar de_GetMaintenanceWindowExecutionTaskInvocationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowExecutionTaskInvocationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowExecutionTaskInvocationCommand\");\nvar de_GetMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetMaintenanceWindowTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetMaintenanceWindowTaskCommand\");\nvar de_GetOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetOpsItemResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpsItemCommand\");\nvar de_GetOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpsMetadataCommand\");\nvar de_GetOpsSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetOpsSummaryCommand\");\nvar de_GetParameterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParameterResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParameterCommand\");\nvar de_GetParameterHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParameterHistoryResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParameterHistoryCommand\");\nvar de_GetParametersCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParametersResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParametersCommand\");\nvar de_GetParametersByPathCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetParametersByPathResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetParametersByPathCommand\");\nvar de_GetPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetPatchBaselineResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPatchBaselineCommand\");\nvar de_GetPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetPatchBaselineForPatchGroupCommand\");\nvar de_GetResourcePoliciesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetResourcePoliciesCommand\");\nvar de_GetServiceSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_GetServiceSettingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetServiceSettingCommand\");\nvar de_LabelParameterVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_LabelParameterVersionCommand\");\nvar de_ListAssociationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListAssociationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAssociationsCommand\");\nvar de_ListAssociationVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListAssociationVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListAssociationVersionsCommand\");\nvar de_ListCommandInvocationsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListCommandInvocationsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCommandInvocationsCommand\");\nvar de_ListCommandsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListCommandsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListCommandsCommand\");\nvar de_ListComplianceItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListComplianceItemsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListComplianceItemsCommand\");\nvar de_ListComplianceSummariesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListComplianceSummariesCommand\");\nvar de_ListDocumentMetadataHistoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListDocumentMetadataHistoryResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListDocumentMetadataHistoryCommand\");\nvar de_ListDocumentsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListDocumentsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListDocumentsCommand\");\nvar de_ListDocumentVersionsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListDocumentVersionsResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListDocumentVersionsCommand\");\nvar de_ListInventoryEntriesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListInventoryEntriesCommand\");\nvar de_ListNodesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListNodesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListNodesCommand\");\nvar de_ListNodesSummaryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListNodesSummaryCommand\");\nvar de_ListOpsItemEventsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListOpsItemEventsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpsItemEventsCommand\");\nvar de_ListOpsItemRelatedItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListOpsItemRelatedItemsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpsItemRelatedItemsCommand\");\nvar de_ListOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListOpsMetadataResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListOpsMetadataCommand\");\nvar de_ListResourceComplianceSummariesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListResourceComplianceSummariesResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceComplianceSummariesCommand\");\nvar de_ListResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ListResourceDataSyncResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListResourceDataSyncCommand\");\nvar de_ListTagsForResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ListTagsForResourceCommand\");\nvar de_ModifyDocumentPermissionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ModifyDocumentPermissionCommand\");\nvar de_PutComplianceItemsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutComplianceItemsCommand\");\nvar de_PutInventoryCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutInventoryCommand\");\nvar de_PutParameterCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutParameterCommand\");\nvar de_PutResourcePolicyCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_PutResourcePolicyCommand\");\nvar de_RegisterDefaultPatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterDefaultPatchBaselineCommand\");\nvar de_RegisterPatchBaselineForPatchGroupCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterPatchBaselineForPatchGroupCommand\");\nvar de_RegisterTargetWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTargetWithMaintenanceWindowCommand\");\nvar de_RegisterTaskWithMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RegisterTaskWithMaintenanceWindowCommand\");\nvar de_RemoveTagsFromResourceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_RemoveTagsFromResourceCommand\");\nvar de_ResetServiceSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_ResetServiceSettingResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResetServiceSettingCommand\");\nvar de_ResumeSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_ResumeSessionCommand\");\nvar de_SendAutomationSignalCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendAutomationSignalCommand\");\nvar de_SendCommandCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_SendCommandResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_SendCommandCommand\");\nvar de_StartAccessRequestCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartAccessRequestCommand\");\nvar de_StartAssociationsOnceCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartAssociationsOnceCommand\");\nvar de_StartAutomationExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartAutomationExecutionCommand\");\nvar de_StartChangeRequestExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartChangeRequestExecutionCommand\");\nvar de_StartExecutionPreviewCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartExecutionPreviewCommand\");\nvar de_StartSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StartSessionCommand\");\nvar de_StopAutomationExecutionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_StopAutomationExecutionCommand\");\nvar de_TerminateSessionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_TerminateSessionCommand\");\nvar de_UnlabelParameterVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UnlabelParameterVersionCommand\");\nvar de_UpdateAssociationCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateAssociationResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateAssociationCommand\");\nvar de_UpdateAssociationStatusCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateAssociationStatusResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateAssociationStatusCommand\");\nvar de_UpdateDocumentCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateDocumentResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDocumentCommand\");\nvar de_UpdateDocumentDefaultVersionCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDocumentDefaultVersionCommand\");\nvar de_UpdateDocumentMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateDocumentMetadataCommand\");\nvar de_UpdateMaintenanceWindowCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMaintenanceWindowCommand\");\nvar de_UpdateMaintenanceWindowTargetCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMaintenanceWindowTargetCommand\");\nvar de_UpdateMaintenanceWindowTaskCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdateMaintenanceWindowTaskResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateMaintenanceWindowTaskCommand\");\nvar de_UpdateManagedInstanceRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateManagedInstanceRoleCommand\");\nvar de_UpdateOpsItemCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateOpsItemCommand\");\nvar de_UpdateOpsMetadataCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateOpsMetadataCommand\");\nvar de_UpdatePatchBaselineCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = de_UpdatePatchBaselineResult(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdatePatchBaselineCommand\");\nvar de_UpdateResourceDataSyncCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateResourceDataSyncCommand\");\nvar de_UpdateServiceSettingCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core2.parseJsonBody)(output.body, context);\n let contents = {};\n contents = (0, import_smithy_client._json)(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_UpdateServiceSettingCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalServerError\":\n case \"com.amazonaws.ssm#InternalServerError\":\n throw await de_InternalServerErrorRes(parsedOutput, context);\n case \"InvalidResourceId\":\n case \"com.amazonaws.ssm#InvalidResourceId\":\n throw await de_InvalidResourceIdRes(parsedOutput, context);\n case \"InvalidResourceType\":\n case \"com.amazonaws.ssm#InvalidResourceType\":\n throw await de_InvalidResourceTypeRes(parsedOutput, context);\n case \"TooManyTagsError\":\n case \"com.amazonaws.ssm#TooManyTagsError\":\n throw await de_TooManyTagsErrorRes(parsedOutput, context);\n case \"TooManyUpdates\":\n case \"com.amazonaws.ssm#TooManyUpdates\":\n throw await de_TooManyUpdatesRes(parsedOutput, context);\n case \"OpsItemConflictException\":\n case \"com.amazonaws.ssm#OpsItemConflictException\":\n throw await de_OpsItemConflictExceptionRes(parsedOutput, context);\n case \"OpsItemInvalidParameterException\":\n case \"com.amazonaws.ssm#OpsItemInvalidParameterException\":\n throw await de_OpsItemInvalidParameterExceptionRes(parsedOutput, context);\n case \"OpsItemLimitExceededException\":\n case \"com.amazonaws.ssm#OpsItemLimitExceededException\":\n throw await de_OpsItemLimitExceededExceptionRes(parsedOutput, context);\n case \"OpsItemNotFoundException\":\n case \"com.amazonaws.ssm#OpsItemNotFoundException\":\n throw await de_OpsItemNotFoundExceptionRes(parsedOutput, context);\n case \"OpsItemRelatedItemAlreadyExistsException\":\n case \"com.amazonaws.ssm#OpsItemRelatedItemAlreadyExistsException\":\n throw await de_OpsItemRelatedItemAlreadyExistsExceptionRes(parsedOutput, context);\n case \"DuplicateInstanceId\":\n case \"com.amazonaws.ssm#DuplicateInstanceId\":\n throw await de_DuplicateInstanceIdRes(parsedOutput, context);\n case \"InvalidCommandId\":\n case \"com.amazonaws.ssm#InvalidCommandId\":\n throw await de_InvalidCommandIdRes(parsedOutput, context);\n case \"InvalidInstanceId\":\n case \"com.amazonaws.ssm#InvalidInstanceId\":\n throw await de_InvalidInstanceIdRes(parsedOutput, context);\n case \"DoesNotExistException\":\n case \"com.amazonaws.ssm#DoesNotExistException\":\n throw await de_DoesNotExistExceptionRes(parsedOutput, context);\n case \"InvalidParameters\":\n case \"com.amazonaws.ssm#InvalidParameters\":\n throw await de_InvalidParametersRes(parsedOutput, context);\n case \"AssociationAlreadyExists\":\n case \"com.amazonaws.ssm#AssociationAlreadyExists\":\n throw await de_AssociationAlreadyExistsRes(parsedOutput, context);\n case \"AssociationLimitExceeded\":\n case \"com.amazonaws.ssm#AssociationLimitExceeded\":\n throw await de_AssociationLimitExceededRes(parsedOutput, context);\n case \"InvalidDocument\":\n case \"com.amazonaws.ssm#InvalidDocument\":\n throw await de_InvalidDocumentRes(parsedOutput, context);\n case \"InvalidDocumentVersion\":\n case \"com.amazonaws.ssm#InvalidDocumentVersion\":\n throw await de_InvalidDocumentVersionRes(parsedOutput, context);\n case \"InvalidOutputLocation\":\n case \"com.amazonaws.ssm#InvalidOutputLocation\":\n throw await de_InvalidOutputLocationRes(parsedOutput, context);\n case \"InvalidSchedule\":\n case \"com.amazonaws.ssm#InvalidSchedule\":\n throw await de_InvalidScheduleRes(parsedOutput, context);\n case \"InvalidTag\":\n case \"com.amazonaws.ssm#InvalidTag\":\n throw await de_InvalidTagRes(parsedOutput, context);\n case \"InvalidTarget\":\n case \"com.amazonaws.ssm#InvalidTarget\":\n throw await de_InvalidTargetRes(parsedOutput, context);\n case \"InvalidTargetMaps\":\n case \"com.amazonaws.ssm#InvalidTargetMaps\":\n throw await de_InvalidTargetMapsRes(parsedOutput, context);\n case \"UnsupportedPlatformType\":\n case \"com.amazonaws.ssm#UnsupportedPlatformType\":\n throw await de_UnsupportedPlatformTypeRes(parsedOutput, context);\n case \"DocumentAlreadyExists\":\n case \"com.amazonaws.ssm#DocumentAlreadyExists\":\n throw await de_DocumentAlreadyExistsRes(parsedOutput, context);\n case \"DocumentLimitExceeded\":\n case \"com.amazonaws.ssm#DocumentLimitExceeded\":\n throw await de_DocumentLimitExceededRes(parsedOutput, context);\n case \"InvalidDocumentContent\":\n case \"com.amazonaws.ssm#InvalidDocumentContent\":\n throw await de_InvalidDocumentContentRes(parsedOutput, context);\n case \"InvalidDocumentSchemaVersion\":\n case \"com.amazonaws.ssm#InvalidDocumentSchemaVersion\":\n throw await de_InvalidDocumentSchemaVersionRes(parsedOutput, context);\n case \"MaxDocumentSizeExceeded\":\n case \"com.amazonaws.ssm#MaxDocumentSizeExceeded\":\n throw await de_MaxDocumentSizeExceededRes(parsedOutput, context);\n case \"IdempotentParameterMismatch\":\n case \"com.amazonaws.ssm#IdempotentParameterMismatch\":\n throw await de_IdempotentParameterMismatchRes(parsedOutput, context);\n case \"ResourceLimitExceededException\":\n case \"com.amazonaws.ssm#ResourceLimitExceededException\":\n throw await de_ResourceLimitExceededExceptionRes(parsedOutput, context);\n case \"OpsItemAccessDeniedException\":\n case \"com.amazonaws.ssm#OpsItemAccessDeniedException\":\n throw await de_OpsItemAccessDeniedExceptionRes(parsedOutput, context);\n case \"OpsItemAlreadyExistsException\":\n case \"com.amazonaws.ssm#OpsItemAlreadyExistsException\":\n throw await de_OpsItemAlreadyExistsExceptionRes(parsedOutput, context);\n case \"OpsMetadataAlreadyExistsException\":\n case \"com.amazonaws.ssm#OpsMetadataAlreadyExistsException\":\n throw await de_OpsMetadataAlreadyExistsExceptionRes(parsedOutput, context);\n case \"OpsMetadataInvalidArgumentException\":\n case \"com.amazonaws.ssm#OpsMetadataInvalidArgumentException\":\n throw await de_OpsMetadataInvalidArgumentExceptionRes(parsedOutput, context);\n case \"OpsMetadataLimitExceededException\":\n case \"com.amazonaws.ssm#OpsMetadataLimitExceededException\":\n throw await de_OpsMetadataLimitExceededExceptionRes(parsedOutput, context);\n case \"OpsMetadataTooManyUpdatesException\":\n case \"com.amazonaws.ssm#OpsMetadataTooManyUpdatesException\":\n throw await de_OpsMetadataTooManyUpdatesExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncAlreadyExistsException\":\n case \"com.amazonaws.ssm#ResourceDataSyncAlreadyExistsException\":\n throw await de_ResourceDataSyncAlreadyExistsExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncCountExceededException\":\n case \"com.amazonaws.ssm#ResourceDataSyncCountExceededException\":\n throw await de_ResourceDataSyncCountExceededExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncInvalidConfigurationException\":\n case \"com.amazonaws.ssm#ResourceDataSyncInvalidConfigurationException\":\n throw await de_ResourceDataSyncInvalidConfigurationExceptionRes(parsedOutput, context);\n case \"InvalidActivation\":\n case \"com.amazonaws.ssm#InvalidActivation\":\n throw await de_InvalidActivationRes(parsedOutput, context);\n case \"InvalidActivationId\":\n case \"com.amazonaws.ssm#InvalidActivationId\":\n throw await de_InvalidActivationIdRes(parsedOutput, context);\n case \"AssociationDoesNotExist\":\n case \"com.amazonaws.ssm#AssociationDoesNotExist\":\n throw await de_AssociationDoesNotExistRes(parsedOutput, context);\n case \"AssociatedInstances\":\n case \"com.amazonaws.ssm#AssociatedInstances\":\n throw await de_AssociatedInstancesRes(parsedOutput, context);\n case \"InvalidDocumentOperation\":\n case \"com.amazonaws.ssm#InvalidDocumentOperation\":\n throw await de_InvalidDocumentOperationRes(parsedOutput, context);\n case \"InvalidDeleteInventoryParametersException\":\n case \"com.amazonaws.ssm#InvalidDeleteInventoryParametersException\":\n throw await de_InvalidDeleteInventoryParametersExceptionRes(parsedOutput, context);\n case \"InvalidInventoryRequestException\":\n case \"com.amazonaws.ssm#InvalidInventoryRequestException\":\n throw await de_InvalidInventoryRequestExceptionRes(parsedOutput, context);\n case \"InvalidOptionException\":\n case \"com.amazonaws.ssm#InvalidOptionException\":\n throw await de_InvalidOptionExceptionRes(parsedOutput, context);\n case \"InvalidTypeNameException\":\n case \"com.amazonaws.ssm#InvalidTypeNameException\":\n throw await de_InvalidTypeNameExceptionRes(parsedOutput, context);\n case \"OpsMetadataNotFoundException\":\n case \"com.amazonaws.ssm#OpsMetadataNotFoundException\":\n throw await de_OpsMetadataNotFoundExceptionRes(parsedOutput, context);\n case \"ParameterNotFound\":\n case \"com.amazonaws.ssm#ParameterNotFound\":\n throw await de_ParameterNotFoundRes(parsedOutput, context);\n case \"ResourceInUseException\":\n case \"com.amazonaws.ssm#ResourceInUseException\":\n throw await de_ResourceInUseExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncNotFoundException\":\n case \"com.amazonaws.ssm#ResourceDataSyncNotFoundException\":\n throw await de_ResourceDataSyncNotFoundExceptionRes(parsedOutput, context);\n case \"MalformedResourcePolicyDocumentException\":\n case \"com.amazonaws.ssm#MalformedResourcePolicyDocumentException\":\n throw await de_MalformedResourcePolicyDocumentExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.ssm#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ResourcePolicyConflictException\":\n case \"com.amazonaws.ssm#ResourcePolicyConflictException\":\n throw await de_ResourcePolicyConflictExceptionRes(parsedOutput, context);\n case \"ResourcePolicyInvalidParameterException\":\n case \"com.amazonaws.ssm#ResourcePolicyInvalidParameterException\":\n throw await de_ResourcePolicyInvalidParameterExceptionRes(parsedOutput, context);\n case \"ResourcePolicyNotFoundException\":\n case \"com.amazonaws.ssm#ResourcePolicyNotFoundException\":\n throw await de_ResourcePolicyNotFoundExceptionRes(parsedOutput, context);\n case \"TargetInUseException\":\n case \"com.amazonaws.ssm#TargetInUseException\":\n throw await de_TargetInUseExceptionRes(parsedOutput, context);\n case \"InvalidFilter\":\n case \"com.amazonaws.ssm#InvalidFilter\":\n throw await de_InvalidFilterRes(parsedOutput, context);\n case \"InvalidNextToken\":\n case \"com.amazonaws.ssm#InvalidNextToken\":\n throw await de_InvalidNextTokenRes(parsedOutput, context);\n case \"InvalidAssociationVersion\":\n case \"com.amazonaws.ssm#InvalidAssociationVersion\":\n throw await de_InvalidAssociationVersionRes(parsedOutput, context);\n case \"AssociationExecutionDoesNotExist\":\n case \"com.amazonaws.ssm#AssociationExecutionDoesNotExist\":\n throw await de_AssociationExecutionDoesNotExistRes(parsedOutput, context);\n case \"InvalidFilterKey\":\n case \"com.amazonaws.ssm#InvalidFilterKey\":\n throw await de_InvalidFilterKeyRes(parsedOutput, context);\n case \"InvalidFilterValue\":\n case \"com.amazonaws.ssm#InvalidFilterValue\":\n throw await de_InvalidFilterValueRes(parsedOutput, context);\n case \"AutomationExecutionNotFoundException\":\n case \"com.amazonaws.ssm#AutomationExecutionNotFoundException\":\n throw await de_AutomationExecutionNotFoundExceptionRes(parsedOutput, context);\n case \"InvalidPermissionType\":\n case \"com.amazonaws.ssm#InvalidPermissionType\":\n throw await de_InvalidPermissionTypeRes(parsedOutput, context);\n case \"UnsupportedOperatingSystem\":\n case \"com.amazonaws.ssm#UnsupportedOperatingSystem\":\n throw await de_UnsupportedOperatingSystemRes(parsedOutput, context);\n case \"InvalidInstanceInformationFilterValue\":\n case \"com.amazonaws.ssm#InvalidInstanceInformationFilterValue\":\n throw await de_InvalidInstanceInformationFilterValueRes(parsedOutput, context);\n case \"InvalidInstancePropertyFilterValue\":\n case \"com.amazonaws.ssm#InvalidInstancePropertyFilterValue\":\n throw await de_InvalidInstancePropertyFilterValueRes(parsedOutput, context);\n case \"InvalidDeletionIdException\":\n case \"com.amazonaws.ssm#InvalidDeletionIdException\":\n throw await de_InvalidDeletionIdExceptionRes(parsedOutput, context);\n case \"InvalidFilterOption\":\n case \"com.amazonaws.ssm#InvalidFilterOption\":\n throw await de_InvalidFilterOptionRes(parsedOutput, context);\n case \"OpsItemRelatedItemAssociationNotFoundException\":\n case \"com.amazonaws.ssm#OpsItemRelatedItemAssociationNotFoundException\":\n throw await de_OpsItemRelatedItemAssociationNotFoundExceptionRes(parsedOutput, context);\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssm#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"ThrottlingException\":\n case \"com.amazonaws.ssm#ThrottlingException\":\n throw await de_ThrottlingExceptionRes(parsedOutput, context);\n case \"ValidationException\":\n case \"com.amazonaws.ssm#ValidationException\":\n throw await de_ValidationExceptionRes(parsedOutput, context);\n case \"InvalidDocumentType\":\n case \"com.amazonaws.ssm#InvalidDocumentType\":\n throw await de_InvalidDocumentTypeRes(parsedOutput, context);\n case \"UnsupportedCalendarException\":\n case \"com.amazonaws.ssm#UnsupportedCalendarException\":\n throw await de_UnsupportedCalendarExceptionRes(parsedOutput, context);\n case \"InvalidPluginName\":\n case \"com.amazonaws.ssm#InvalidPluginName\":\n throw await de_InvalidPluginNameRes(parsedOutput, context);\n case \"InvocationDoesNotExist\":\n case \"com.amazonaws.ssm#InvocationDoesNotExist\":\n throw await de_InvocationDoesNotExistRes(parsedOutput, context);\n case \"UnsupportedFeatureRequiredException\":\n case \"com.amazonaws.ssm#UnsupportedFeatureRequiredException\":\n throw await de_UnsupportedFeatureRequiredExceptionRes(parsedOutput, context);\n case \"InvalidAggregatorException\":\n case \"com.amazonaws.ssm#InvalidAggregatorException\":\n throw await de_InvalidAggregatorExceptionRes(parsedOutput, context);\n case \"InvalidInventoryGroupException\":\n case \"com.amazonaws.ssm#InvalidInventoryGroupException\":\n throw await de_InvalidInventoryGroupExceptionRes(parsedOutput, context);\n case \"InvalidResultAttributeException\":\n case \"com.amazonaws.ssm#InvalidResultAttributeException\":\n throw await de_InvalidResultAttributeExceptionRes(parsedOutput, context);\n case \"InvalidKeyId\":\n case \"com.amazonaws.ssm#InvalidKeyId\":\n throw await de_InvalidKeyIdRes(parsedOutput, context);\n case \"ParameterVersionNotFound\":\n case \"com.amazonaws.ssm#ParameterVersionNotFound\":\n throw await de_ParameterVersionNotFoundRes(parsedOutput, context);\n case \"ServiceSettingNotFound\":\n case \"com.amazonaws.ssm#ServiceSettingNotFound\":\n throw await de_ServiceSettingNotFoundRes(parsedOutput, context);\n case \"ParameterVersionLabelLimitExceeded\":\n case \"com.amazonaws.ssm#ParameterVersionLabelLimitExceeded\":\n throw await de_ParameterVersionLabelLimitExceededRes(parsedOutput, context);\n case \"UnsupportedOperationException\":\n case \"com.amazonaws.ssm#UnsupportedOperationException\":\n throw await de_UnsupportedOperationExceptionRes(parsedOutput, context);\n case \"DocumentPermissionLimit\":\n case \"com.amazonaws.ssm#DocumentPermissionLimit\":\n throw await de_DocumentPermissionLimitRes(parsedOutput, context);\n case \"ComplianceTypeCountLimitExceededException\":\n case \"com.amazonaws.ssm#ComplianceTypeCountLimitExceededException\":\n throw await de_ComplianceTypeCountLimitExceededExceptionRes(parsedOutput, context);\n case \"InvalidItemContentException\":\n case \"com.amazonaws.ssm#InvalidItemContentException\":\n throw await de_InvalidItemContentExceptionRes(parsedOutput, context);\n case \"ItemSizeLimitExceededException\":\n case \"com.amazonaws.ssm#ItemSizeLimitExceededException\":\n throw await de_ItemSizeLimitExceededExceptionRes(parsedOutput, context);\n case \"TotalSizeLimitExceededException\":\n case \"com.amazonaws.ssm#TotalSizeLimitExceededException\":\n throw await de_TotalSizeLimitExceededExceptionRes(parsedOutput, context);\n case \"CustomSchemaCountLimitExceededException\":\n case \"com.amazonaws.ssm#CustomSchemaCountLimitExceededException\":\n throw await de_CustomSchemaCountLimitExceededExceptionRes(parsedOutput, context);\n case \"InvalidInventoryItemContextException\":\n case \"com.amazonaws.ssm#InvalidInventoryItemContextException\":\n throw await de_InvalidInventoryItemContextExceptionRes(parsedOutput, context);\n case \"ItemContentMismatchException\":\n case \"com.amazonaws.ssm#ItemContentMismatchException\":\n throw await de_ItemContentMismatchExceptionRes(parsedOutput, context);\n case \"SubTypeCountLimitExceededException\":\n case \"com.amazonaws.ssm#SubTypeCountLimitExceededException\":\n throw await de_SubTypeCountLimitExceededExceptionRes(parsedOutput, context);\n case \"UnsupportedInventoryItemContextException\":\n case \"com.amazonaws.ssm#UnsupportedInventoryItemContextException\":\n throw await de_UnsupportedInventoryItemContextExceptionRes(parsedOutput, context);\n case \"UnsupportedInventorySchemaVersionException\":\n case \"com.amazonaws.ssm#UnsupportedInventorySchemaVersionException\":\n throw await de_UnsupportedInventorySchemaVersionExceptionRes(parsedOutput, context);\n case \"HierarchyLevelLimitExceededException\":\n case \"com.amazonaws.ssm#HierarchyLevelLimitExceededException\":\n throw await de_HierarchyLevelLimitExceededExceptionRes(parsedOutput, context);\n case \"HierarchyTypeMismatchException\":\n case \"com.amazonaws.ssm#HierarchyTypeMismatchException\":\n throw await de_HierarchyTypeMismatchExceptionRes(parsedOutput, context);\n case \"IncompatiblePolicyException\":\n case \"com.amazonaws.ssm#IncompatiblePolicyException\":\n throw await de_IncompatiblePolicyExceptionRes(parsedOutput, context);\n case \"InvalidAllowedPatternException\":\n case \"com.amazonaws.ssm#InvalidAllowedPatternException\":\n throw await de_InvalidAllowedPatternExceptionRes(parsedOutput, context);\n case \"InvalidPolicyAttributeException\":\n case \"com.amazonaws.ssm#InvalidPolicyAttributeException\":\n throw await de_InvalidPolicyAttributeExceptionRes(parsedOutput, context);\n case \"InvalidPolicyTypeException\":\n case \"com.amazonaws.ssm#InvalidPolicyTypeException\":\n throw await de_InvalidPolicyTypeExceptionRes(parsedOutput, context);\n case \"ParameterAlreadyExists\":\n case \"com.amazonaws.ssm#ParameterAlreadyExists\":\n throw await de_ParameterAlreadyExistsRes(parsedOutput, context);\n case \"ParameterLimitExceeded\":\n case \"com.amazonaws.ssm#ParameterLimitExceeded\":\n throw await de_ParameterLimitExceededRes(parsedOutput, context);\n case \"ParameterMaxVersionLimitExceeded\":\n case \"com.amazonaws.ssm#ParameterMaxVersionLimitExceeded\":\n throw await de_ParameterMaxVersionLimitExceededRes(parsedOutput, context);\n case \"ParameterPatternMismatchException\":\n case \"com.amazonaws.ssm#ParameterPatternMismatchException\":\n throw await de_ParameterPatternMismatchExceptionRes(parsedOutput, context);\n case \"PoliciesLimitExceededException\":\n case \"com.amazonaws.ssm#PoliciesLimitExceededException\":\n throw await de_PoliciesLimitExceededExceptionRes(parsedOutput, context);\n case \"UnsupportedParameterType\":\n case \"com.amazonaws.ssm#UnsupportedParameterType\":\n throw await de_UnsupportedParameterTypeRes(parsedOutput, context);\n case \"ResourcePolicyLimitExceededException\":\n case \"com.amazonaws.ssm#ResourcePolicyLimitExceededException\":\n throw await de_ResourcePolicyLimitExceededExceptionRes(parsedOutput, context);\n case \"AlreadyExistsException\":\n case \"com.amazonaws.ssm#AlreadyExistsException\":\n throw await de_AlreadyExistsExceptionRes(parsedOutput, context);\n case \"FeatureNotAvailableException\":\n case \"com.amazonaws.ssm#FeatureNotAvailableException\":\n throw await de_FeatureNotAvailableExceptionRes(parsedOutput, context);\n case \"AutomationStepNotFoundException\":\n case \"com.amazonaws.ssm#AutomationStepNotFoundException\":\n throw await de_AutomationStepNotFoundExceptionRes(parsedOutput, context);\n case \"InvalidAutomationSignalException\":\n case \"com.amazonaws.ssm#InvalidAutomationSignalException\":\n throw await de_InvalidAutomationSignalExceptionRes(parsedOutput, context);\n case \"InvalidNotificationConfig\":\n case \"com.amazonaws.ssm#InvalidNotificationConfig\":\n throw await de_InvalidNotificationConfigRes(parsedOutput, context);\n case \"InvalidOutputFolder\":\n case \"com.amazonaws.ssm#InvalidOutputFolder\":\n throw await de_InvalidOutputFolderRes(parsedOutput, context);\n case \"InvalidRole\":\n case \"com.amazonaws.ssm#InvalidRole\":\n throw await de_InvalidRoleRes(parsedOutput, context);\n case \"ServiceQuotaExceededException\":\n case \"com.amazonaws.ssm#ServiceQuotaExceededException\":\n throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);\n case \"InvalidAssociation\":\n case \"com.amazonaws.ssm#InvalidAssociation\":\n throw await de_InvalidAssociationRes(parsedOutput, context);\n case \"AutomationDefinitionNotFoundException\":\n case \"com.amazonaws.ssm#AutomationDefinitionNotFoundException\":\n throw await de_AutomationDefinitionNotFoundExceptionRes(parsedOutput, context);\n case \"AutomationDefinitionVersionNotFoundException\":\n case \"com.amazonaws.ssm#AutomationDefinitionVersionNotFoundException\":\n throw await de_AutomationDefinitionVersionNotFoundExceptionRes(parsedOutput, context);\n case \"AutomationExecutionLimitExceededException\":\n case \"com.amazonaws.ssm#AutomationExecutionLimitExceededException\":\n throw await de_AutomationExecutionLimitExceededExceptionRes(parsedOutput, context);\n case \"InvalidAutomationExecutionParametersException\":\n case \"com.amazonaws.ssm#InvalidAutomationExecutionParametersException\":\n throw await de_InvalidAutomationExecutionParametersExceptionRes(parsedOutput, context);\n case \"AutomationDefinitionNotApprovedException\":\n case \"com.amazonaws.ssm#AutomationDefinitionNotApprovedException\":\n throw await de_AutomationDefinitionNotApprovedExceptionRes(parsedOutput, context);\n case \"TargetNotConnected\":\n case \"com.amazonaws.ssm#TargetNotConnected\":\n throw await de_TargetNotConnectedRes(parsedOutput, context);\n case \"InvalidAutomationStatusUpdateException\":\n case \"com.amazonaws.ssm#InvalidAutomationStatusUpdateException\":\n throw await de_InvalidAutomationStatusUpdateExceptionRes(parsedOutput, context);\n case \"AssociationVersionLimitExceeded\":\n case \"com.amazonaws.ssm#AssociationVersionLimitExceeded\":\n throw await de_AssociationVersionLimitExceededRes(parsedOutput, context);\n case \"InvalidUpdate\":\n case \"com.amazonaws.ssm#InvalidUpdate\":\n throw await de_InvalidUpdateRes(parsedOutput, context);\n case \"StatusUnchanged\":\n case \"com.amazonaws.ssm#StatusUnchanged\":\n throw await de_StatusUnchangedRes(parsedOutput, context);\n case \"DocumentVersionLimitExceeded\":\n case \"com.amazonaws.ssm#DocumentVersionLimitExceeded\":\n throw await de_DocumentVersionLimitExceededRes(parsedOutput, context);\n case \"DuplicateDocumentContent\":\n case \"com.amazonaws.ssm#DuplicateDocumentContent\":\n throw await de_DuplicateDocumentContentRes(parsedOutput, context);\n case \"DuplicateDocumentVersionName\":\n case \"com.amazonaws.ssm#DuplicateDocumentVersionName\":\n throw await de_DuplicateDocumentVersionNameRes(parsedOutput, context);\n case \"OpsMetadataKeyLimitExceededException\":\n case \"com.amazonaws.ssm#OpsMetadataKeyLimitExceededException\":\n throw await de_OpsMetadataKeyLimitExceededExceptionRes(parsedOutput, context);\n case \"ResourceDataSyncConflictException\":\n case \"com.amazonaws.ssm#ResourceDataSyncConflictException\":\n throw await de_ResourceDataSyncConflictExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AlreadyExistsExceptionRes\");\nvar de_AssociatedInstancesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociatedInstances({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociatedInstancesRes\");\nvar de_AssociationAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationAlreadyExistsRes\");\nvar de_AssociationDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationDoesNotExistRes\");\nvar de_AssociationExecutionDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationExecutionDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationExecutionDoesNotExistRes\");\nvar de_AssociationLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationLimitExceededRes\");\nvar de_AssociationVersionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AssociationVersionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AssociationVersionLimitExceededRes\");\nvar de_AutomationDefinitionNotApprovedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationDefinitionNotApprovedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationDefinitionNotApprovedExceptionRes\");\nvar de_AutomationDefinitionNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationDefinitionNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationDefinitionNotFoundExceptionRes\");\nvar de_AutomationDefinitionVersionNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationDefinitionVersionNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationDefinitionVersionNotFoundExceptionRes\");\nvar de_AutomationExecutionLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationExecutionLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationExecutionLimitExceededExceptionRes\");\nvar de_AutomationExecutionNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationExecutionNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationExecutionNotFoundExceptionRes\");\nvar de_AutomationStepNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new AutomationStepNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_AutomationStepNotFoundExceptionRes\");\nvar de_ComplianceTypeCountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ComplianceTypeCountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ComplianceTypeCountLimitExceededExceptionRes\");\nvar de_CustomSchemaCountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new CustomSchemaCountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_CustomSchemaCountLimitExceededExceptionRes\");\nvar de_DocumentAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentAlreadyExistsRes\");\nvar de_DocumentLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentLimitExceededRes\");\nvar de_DocumentPermissionLimitRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentPermissionLimit({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentPermissionLimitRes\");\nvar de_DocumentVersionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DocumentVersionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DocumentVersionLimitExceededRes\");\nvar de_DoesNotExistExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DoesNotExistException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DoesNotExistExceptionRes\");\nvar de_DuplicateDocumentContentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DuplicateDocumentContent({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateDocumentContentRes\");\nvar de_DuplicateDocumentVersionNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DuplicateDocumentVersionName({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateDocumentVersionNameRes\");\nvar de_DuplicateInstanceIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new DuplicateInstanceId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_DuplicateInstanceIdRes\");\nvar de_FeatureNotAvailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new FeatureNotAvailableException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_FeatureNotAvailableExceptionRes\");\nvar de_HierarchyLevelLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HierarchyLevelLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HierarchyLevelLimitExceededExceptionRes\");\nvar de_HierarchyTypeMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new HierarchyTypeMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_HierarchyTypeMismatchExceptionRes\");\nvar de_IdempotentParameterMismatchRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IdempotentParameterMismatch({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IdempotentParameterMismatchRes\");\nvar de_IncompatiblePolicyExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new IncompatiblePolicyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IncompatiblePolicyExceptionRes\");\nvar de_InternalServerErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InternalServerError({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InternalServerErrorRes\");\nvar de_InvalidActivationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidActivation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidActivationRes\");\nvar de_InvalidActivationIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidActivationId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidActivationIdRes\");\nvar de_InvalidAggregatorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAggregatorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAggregatorExceptionRes\");\nvar de_InvalidAllowedPatternExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAllowedPatternException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAllowedPatternExceptionRes\");\nvar de_InvalidAssociationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAssociation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAssociationRes\");\nvar de_InvalidAssociationVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAssociationVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAssociationVersionRes\");\nvar de_InvalidAutomationExecutionParametersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAutomationExecutionParametersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAutomationExecutionParametersExceptionRes\");\nvar de_InvalidAutomationSignalExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAutomationSignalException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAutomationSignalExceptionRes\");\nvar de_InvalidAutomationStatusUpdateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidAutomationStatusUpdateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAutomationStatusUpdateExceptionRes\");\nvar de_InvalidCommandIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidCommandId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidCommandIdRes\");\nvar de_InvalidDeleteInventoryParametersExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDeleteInventoryParametersException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDeleteInventoryParametersExceptionRes\");\nvar de_InvalidDeletionIdExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDeletionIdException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDeletionIdExceptionRes\");\nvar de_InvalidDocumentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocument({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentRes\");\nvar de_InvalidDocumentContentRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentContent({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentContentRes\");\nvar de_InvalidDocumentOperationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentOperation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentOperationRes\");\nvar de_InvalidDocumentSchemaVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentSchemaVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentSchemaVersionRes\");\nvar de_InvalidDocumentTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentTypeRes\");\nvar de_InvalidDocumentVersionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidDocumentVersion({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidDocumentVersionRes\");\nvar de_InvalidFilterRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilter({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterRes\");\nvar de_InvalidFilterKeyRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilterKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterKeyRes\");\nvar de_InvalidFilterOptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilterOption({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterOptionRes\");\nvar de_InvalidFilterValueRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidFilterValue({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidFilterValueRes\");\nvar de_InvalidInstanceIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInstanceId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInstanceIdRes\");\nvar de_InvalidInstanceInformationFilterValueRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInstanceInformationFilterValue({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInstanceInformationFilterValueRes\");\nvar de_InvalidInstancePropertyFilterValueRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInstancePropertyFilterValue({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInstancePropertyFilterValueRes\");\nvar de_InvalidInventoryGroupExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInventoryGroupException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInventoryGroupExceptionRes\");\nvar de_InvalidInventoryItemContextExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInventoryItemContextException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInventoryItemContextExceptionRes\");\nvar de_InvalidInventoryRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidInventoryRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidInventoryRequestExceptionRes\");\nvar de_InvalidItemContentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidItemContentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidItemContentExceptionRes\");\nvar de_InvalidKeyIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidKeyId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidKeyIdRes\");\nvar de_InvalidNextTokenRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidNextToken({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNextTokenRes\");\nvar de_InvalidNotificationConfigRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidNotificationConfig({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidNotificationConfigRes\");\nvar de_InvalidOptionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOptionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOptionExceptionRes\");\nvar de_InvalidOutputFolderRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOutputFolder({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOutputFolderRes\");\nvar de_InvalidOutputLocationRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidOutputLocation({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidOutputLocationRes\");\nvar de_InvalidParametersRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidParameters({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidParametersRes\");\nvar de_InvalidPermissionTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPermissionType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPermissionTypeRes\");\nvar de_InvalidPluginNameRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPluginName({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPluginNameRes\");\nvar de_InvalidPolicyAttributeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPolicyAttributeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPolicyAttributeExceptionRes\");\nvar de_InvalidPolicyTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidPolicyTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidPolicyTypeExceptionRes\");\nvar de_InvalidResourceIdRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidResourceId({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidResourceIdRes\");\nvar de_InvalidResourceTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidResourceType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidResourceTypeRes\");\nvar de_InvalidResultAttributeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidResultAttributeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidResultAttributeExceptionRes\");\nvar de_InvalidRoleRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidRole({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidRoleRes\");\nvar de_InvalidScheduleRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidSchedule({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidScheduleRes\");\nvar de_InvalidTagRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTag({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTagRes\");\nvar de_InvalidTargetRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTarget({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTargetRes\");\nvar de_InvalidTargetMapsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTargetMaps({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTargetMapsRes\");\nvar de_InvalidTypeNameExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidTypeNameException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidTypeNameExceptionRes\");\nvar de_InvalidUpdateRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvalidUpdate({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidUpdateRes\");\nvar de_InvocationDoesNotExistRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new InvocationDoesNotExist({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvocationDoesNotExistRes\");\nvar de_ItemContentMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ItemContentMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ItemContentMismatchExceptionRes\");\nvar de_ItemSizeLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ItemSizeLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ItemSizeLimitExceededExceptionRes\");\nvar de_MalformedResourcePolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MalformedResourcePolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedResourcePolicyDocumentExceptionRes\");\nvar de_MaxDocumentSizeExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new MaxDocumentSizeExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MaxDocumentSizeExceededRes\");\nvar de_OpsItemAccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemAccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemAccessDeniedExceptionRes\");\nvar de_OpsItemAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemAlreadyExistsExceptionRes\");\nvar de_OpsItemConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemConflictExceptionRes\");\nvar de_OpsItemInvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemInvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemInvalidParameterExceptionRes\");\nvar de_OpsItemLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemLimitExceededExceptionRes\");\nvar de_OpsItemNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemNotFoundExceptionRes\");\nvar de_OpsItemRelatedItemAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemRelatedItemAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemRelatedItemAlreadyExistsExceptionRes\");\nvar de_OpsItemRelatedItemAssociationNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsItemRelatedItemAssociationNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsItemRelatedItemAssociationNotFoundExceptionRes\");\nvar de_OpsMetadataAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataAlreadyExistsExceptionRes\");\nvar de_OpsMetadataInvalidArgumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataInvalidArgumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataInvalidArgumentExceptionRes\");\nvar de_OpsMetadataKeyLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataKeyLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataKeyLimitExceededExceptionRes\");\nvar de_OpsMetadataLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataLimitExceededExceptionRes\");\nvar de_OpsMetadataNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataNotFoundExceptionRes\");\nvar de_OpsMetadataTooManyUpdatesExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new OpsMetadataTooManyUpdatesException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_OpsMetadataTooManyUpdatesExceptionRes\");\nvar de_ParameterAlreadyExistsRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterAlreadyExistsRes\");\nvar de_ParameterLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterLimitExceededRes\");\nvar de_ParameterMaxVersionLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterMaxVersionLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterMaxVersionLimitExceededRes\");\nvar de_ParameterNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterNotFoundRes\");\nvar de_ParameterPatternMismatchExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterPatternMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterPatternMismatchExceptionRes\");\nvar de_ParameterVersionLabelLimitExceededRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterVersionLabelLimitExceeded({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterVersionLabelLimitExceededRes\");\nvar de_ParameterVersionNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ParameterVersionNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ParameterVersionNotFoundRes\");\nvar de_PoliciesLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new PoliciesLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PoliciesLimitExceededExceptionRes\");\nvar de_ResourceDataSyncAlreadyExistsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncAlreadyExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncAlreadyExistsExceptionRes\");\nvar de_ResourceDataSyncConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncConflictExceptionRes\");\nvar de_ResourceDataSyncCountExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncCountExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncCountExceededExceptionRes\");\nvar de_ResourceDataSyncInvalidConfigurationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncInvalidConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncInvalidConfigurationExceptionRes\");\nvar de_ResourceDataSyncNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceDataSyncNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceDataSyncNotFoundExceptionRes\");\nvar de_ResourceInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceInUseExceptionRes\");\nvar de_ResourceLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceLimitExceededExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_ResourcePolicyConflictExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyConflictExceptionRes\");\nvar de_ResourcePolicyInvalidParameterExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyInvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyInvalidParameterExceptionRes\");\nvar de_ResourcePolicyLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyLimitExceededExceptionRes\");\nvar de_ResourcePolicyNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ResourcePolicyNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ResourcePolicyNotFoundExceptionRes\");\nvar de_ServiceQuotaExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceQuotaExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceQuotaExceededExceptionRes\");\nvar de_ServiceSettingNotFoundRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ServiceSettingNotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ServiceSettingNotFoundRes\");\nvar de_StatusUnchangedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new StatusUnchanged({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_StatusUnchangedRes\");\nvar de_SubTypeCountLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new SubTypeCountLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_SubTypeCountLimitExceededExceptionRes\");\nvar de_TargetInUseExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetInUseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetInUseExceptionRes\");\nvar de_TargetNotConnectedRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TargetNotConnected({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TargetNotConnectedRes\");\nvar de_ThrottlingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ThrottlingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ThrottlingExceptionRes\");\nvar de_TooManyTagsErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyTagsError({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyTagsErrorRes\");\nvar de_TooManyUpdatesRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TooManyUpdates({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TooManyUpdatesRes\");\nvar de_TotalSizeLimitExceededExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new TotalSizeLimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_TotalSizeLimitExceededExceptionRes\");\nvar de_UnsupportedCalendarExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedCalendarException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedCalendarExceptionRes\");\nvar de_UnsupportedFeatureRequiredExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedFeatureRequiredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedFeatureRequiredExceptionRes\");\nvar de_UnsupportedInventoryItemContextExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedInventoryItemContextException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedInventoryItemContextExceptionRes\");\nvar de_UnsupportedInventorySchemaVersionExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedInventorySchemaVersionException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedInventorySchemaVersionExceptionRes\");\nvar de_UnsupportedOperatingSystemRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedOperatingSystem({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedOperatingSystemRes\");\nvar de_UnsupportedOperationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedOperationExceptionRes\");\nvar de_UnsupportedParameterTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedParameterType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedParameterTypeRes\");\nvar de_UnsupportedPlatformTypeRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new UnsupportedPlatformType({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_UnsupportedPlatformTypeRes\");\nvar de_ValidationExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = (0, import_smithy_client._json)(body);\n const exception = new ValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ValidationExceptionRes\");\nvar se_AssociationStatus = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AdditionalInfo: [],\n Date: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"Date\"),\n Message: [],\n Name: []\n });\n}, \"se_AssociationStatus\");\nvar se_ComplianceExecutionSummary = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ExecutionId: [],\n ExecutionTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ExecutionTime\"),\n ExecutionType: []\n });\n}, \"se_ComplianceExecutionSummary\");\nvar se_CreateActivationRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n DefaultInstanceName: [],\n Description: [],\n ExpirationDate: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ExpirationDate\"),\n IamRole: [],\n RegistrationLimit: [],\n RegistrationMetadata: import_smithy_client._json,\n Tags: import_smithy_client._json\n });\n}, \"se_CreateActivationRequest\");\nvar se_CreateMaintenanceWindowRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AllowUnassociatedTargets: [],\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Cutoff: [],\n Description: [],\n Duration: [],\n EndDate: [],\n Name: [],\n Schedule: [],\n ScheduleOffset: [],\n ScheduleTimezone: [],\n StartDate: [],\n Tags: import_smithy_client._json\n });\n}, \"se_CreateMaintenanceWindowRequest\");\nvar se_CreateOpsItemRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AccountId: [],\n ActualEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualStartTime\"),\n Category: [],\n Description: [],\n Notifications: import_smithy_client._json,\n OperationalData: import_smithy_client._json,\n OpsItemType: [],\n PlannedEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedStartTime\"),\n Priority: [],\n RelatedOpsItems: import_smithy_client._json,\n Severity: [],\n Source: [],\n Tags: import_smithy_client._json,\n Title: []\n });\n}, \"se_CreateOpsItemRequest\");\nvar se_CreatePatchBaselineRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ApprovalRules: import_smithy_client._json,\n ApprovedPatches: import_smithy_client._json,\n ApprovedPatchesComplianceLevel: [],\n ApprovedPatchesEnableNonSecurity: [],\n AvailableSecurityUpdatesComplianceStatus: [],\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n GlobalFilters: import_smithy_client._json,\n Name: [],\n OperatingSystem: [],\n RejectedPatches: import_smithy_client._json,\n RejectedPatchesAction: [],\n Sources: import_smithy_client._json,\n Tags: import_smithy_client._json\n });\n}, \"se_CreatePatchBaselineRequest\");\nvar se_DeleteInventoryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n DryRun: [],\n SchemaDeleteOption: [],\n TypeName: []\n });\n}, \"se_DeleteInventoryRequest\");\nvar se_GetInventoryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_InventoryAggregatorList(_, context), \"Aggregators\"),\n Filters: import_smithy_client._json,\n MaxResults: [],\n NextToken: [],\n ResultAttributes: import_smithy_client._json\n });\n}, \"se_GetInventoryRequest\");\nvar se_GetOpsSummaryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_OpsAggregatorList(_, context), \"Aggregators\"),\n Filters: import_smithy_client._json,\n MaxResults: [],\n NextToken: [],\n ResultAttributes: import_smithy_client._json,\n SyncName: []\n });\n}, \"se_GetOpsSummaryRequest\");\nvar se_InventoryAggregator = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_InventoryAggregatorList(_, context), \"Aggregators\"),\n Expression: [],\n Groups: import_smithy_client._json\n });\n}, \"se_InventoryAggregator\");\nvar se_InventoryAggregatorList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_InventoryAggregator(entry, context);\n });\n}, \"se_InventoryAggregatorList\");\nvar se_ListNodesSummaryRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Aggregators: /* @__PURE__ */ __name((_) => se_NodeAggregatorList(_, context), \"Aggregators\"),\n Filters: import_smithy_client._json,\n MaxResults: [],\n NextToken: [],\n SyncName: []\n });\n}, \"se_ListNodesSummaryRequest\");\nvar se_MaintenanceWindowLambdaParameters = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientContext: [],\n Payload: context.base64Encoder,\n Qualifier: []\n });\n}, \"se_MaintenanceWindowLambdaParameters\");\nvar se_MaintenanceWindowTaskInvocationParameters = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n Automation: import_smithy_client._json,\n Lambda: /* @__PURE__ */ __name((_) => se_MaintenanceWindowLambdaParameters(_, context), \"Lambda\"),\n RunCommand: import_smithy_client._json,\n StepFunctions: import_smithy_client._json\n });\n}, \"se_MaintenanceWindowTaskInvocationParameters\");\nvar se_NodeAggregator = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AggregatorType: [],\n Aggregators: /* @__PURE__ */ __name((_) => se_NodeAggregatorList(_, context), \"Aggregators\"),\n AttributeName: [],\n TypeName: []\n });\n}, \"se_NodeAggregator\");\nvar se_NodeAggregatorList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_NodeAggregator(entry, context);\n });\n}, \"se_NodeAggregatorList\");\nvar se_OpsAggregator = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AggregatorType: [],\n Aggregators: /* @__PURE__ */ __name((_) => se_OpsAggregatorList(_, context), \"Aggregators\"),\n AttributeName: [],\n Filters: import_smithy_client._json,\n TypeName: [],\n Values: import_smithy_client._json\n });\n}, \"se_OpsAggregator\");\nvar se_OpsAggregatorList = /* @__PURE__ */ __name((input, context) => {\n return input.filter((e) => e != null).map((entry) => {\n return se_OpsAggregator(entry, context);\n });\n}, \"se_OpsAggregatorList\");\nvar se_PutComplianceItemsRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ComplianceType: [],\n ExecutionSummary: /* @__PURE__ */ __name((_) => se_ComplianceExecutionSummary(_, context), \"ExecutionSummary\"),\n ItemContentHash: [],\n Items: import_smithy_client._json,\n ResourceId: [],\n ResourceType: [],\n UploadType: []\n });\n}, \"se_PutComplianceItemsRequest\");\nvar se_RegisterTargetWithMaintenanceWindowRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n Description: [],\n Name: [],\n OwnerInformation: [],\n ResourceType: [],\n Targets: import_smithy_client._json,\n WindowId: []\n });\n}, \"se_RegisterTargetWithMaintenanceWindowRequest\");\nvar se_RegisterTaskWithMaintenanceWindowRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AlarmConfiguration: import_smithy_client._json,\n ClientToken: [true, (_) => _ ?? (0, import_uuid.v4)()],\n CutoffBehavior: [],\n Description: [],\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: [],\n MaxErrors: [],\n Name: [],\n Priority: [],\n ServiceRoleArn: [],\n Targets: import_smithy_client._json,\n TaskArn: [],\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => se_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n TaskType: [],\n WindowId: []\n });\n}, \"se_RegisterTaskWithMaintenanceWindowRequest\");\nvar se_StartChangeRequestExecutionRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AutoApprove: [],\n ChangeDetails: [],\n ChangeRequestName: [],\n ClientToken: [],\n DocumentName: [],\n DocumentVersion: [],\n Parameters: import_smithy_client._json,\n Runbooks: import_smithy_client._json,\n ScheduledEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ScheduledEndTime\"),\n ScheduledTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ScheduledTime\"),\n Tags: import_smithy_client._json\n });\n}, \"se_StartChangeRequestExecutionRequest\");\nvar se_UpdateAssociationStatusRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AssociationStatus: /* @__PURE__ */ __name((_) => se_AssociationStatus(_, context), \"AssociationStatus\"),\n InstanceId: [],\n Name: []\n });\n}, \"se_UpdateAssociationStatusRequest\");\nvar se_UpdateMaintenanceWindowTaskRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n AlarmConfiguration: import_smithy_client._json,\n CutoffBehavior: [],\n Description: [],\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: [],\n MaxErrors: [],\n Name: [],\n Priority: [],\n Replace: [],\n ServiceRoleArn: [],\n Targets: import_smithy_client._json,\n TaskArn: [],\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => se_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n WindowId: [],\n WindowTaskId: []\n });\n}, \"se_UpdateMaintenanceWindowTaskRequest\");\nvar se_UpdateOpsItemRequest = /* @__PURE__ */ __name((input, context) => {\n return (0, import_smithy_client.take)(input, {\n ActualEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"ActualStartTime\"),\n Category: [],\n Description: [],\n Notifications: import_smithy_client._json,\n OperationalData: import_smithy_client._json,\n OperationalDataToDelete: import_smithy_client._json,\n OpsItemArn: [],\n OpsItemId: [],\n PlannedEndTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => _.getTime() / 1e3, \"PlannedStartTime\"),\n Priority: [],\n RelatedOpsItems: import_smithy_client._json,\n Severity: [],\n Status: [],\n Title: []\n });\n}, \"se_UpdateOpsItemRequest\");\nvar de_Activation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationId: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DefaultInstanceName: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n ExpirationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExpirationDate\"),\n Expired: import_smithy_client.expectBoolean,\n IamRole: import_smithy_client.expectString,\n RegistrationLimit: import_smithy_client.expectInt32,\n RegistrationsCount: import_smithy_client.expectInt32,\n Tags: import_smithy_client._json\n });\n}, \"de_Activation\");\nvar de_ActivationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Activation(entry, context);\n });\n return retVal;\n}, \"de_ActivationList\");\nvar de_Association = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n InstanceId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n Name: import_smithy_client.expectString,\n Overview: import_smithy_client._json,\n ScheduleExpression: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n TargetMaps: import_smithy_client._json,\n Targets: import_smithy_client._json\n });\n}, \"de_Association\");\nvar de_AssociationDescription = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n ApplyOnlyAtCronInterval: import_smithy_client.expectBoolean,\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n AutomationTargetParameterName: import_smithy_client.expectString,\n CalendarNames: import_smithy_client._json,\n ComplianceSeverity: import_smithy_client.expectString,\n Date: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"Date\"),\n DocumentVersion: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n InstanceId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n LastSuccessfulExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulExecutionDate\"),\n LastUpdateAssociationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastUpdateAssociationDate\"),\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n OutputLocation: import_smithy_client._json,\n Overview: import_smithy_client._json,\n Parameters: import_smithy_client._json,\n ScheduleExpression: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n Status: /* @__PURE__ */ __name((_) => de_AssociationStatus(_, context), \"Status\"),\n SyncCompliance: import_smithy_client.expectString,\n TargetLocations: import_smithy_client._json,\n TargetMaps: import_smithy_client._json,\n Targets: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_AssociationDescription\");\nvar de_AssociationDescriptionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationDescription(entry, context);\n });\n return retVal;\n}, \"de_AssociationDescriptionList\");\nvar de_AssociationExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n AssociationId: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n DetailedStatus: import_smithy_client.expectString,\n ExecutionId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n ResourceCountByStatus: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_AssociationExecution\");\nvar de_AssociationExecutionsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationExecution(entry, context);\n });\n return retVal;\n}, \"de_AssociationExecutionsList\");\nvar de_AssociationExecutionTarget = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n DetailedStatus: import_smithy_client.expectString,\n ExecutionId: import_smithy_client.expectString,\n LastExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastExecutionDate\"),\n OutputSource: import_smithy_client._json,\n ResourceId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_AssociationExecutionTarget\");\nvar de_AssociationExecutionTargetsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationExecutionTarget(entry, context);\n });\n return retVal;\n}, \"de_AssociationExecutionTargetsList\");\nvar de_AssociationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Association(entry, context);\n });\n return retVal;\n}, \"de_AssociationList\");\nvar de_AssociationStatus = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AdditionalInfo: import_smithy_client.expectString,\n Date: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"Date\"),\n Message: import_smithy_client.expectString,\n Name: import_smithy_client.expectString\n });\n}, \"de_AssociationStatus\");\nvar de_AssociationVersionInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApplyOnlyAtCronInterval: import_smithy_client.expectBoolean,\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n CalendarNames: import_smithy_client._json,\n ComplianceSeverity: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DocumentVersion: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n OutputLocation: import_smithy_client._json,\n Parameters: import_smithy_client._json,\n ScheduleExpression: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n SyncCompliance: import_smithy_client.expectString,\n TargetLocations: import_smithy_client._json,\n TargetMaps: import_smithy_client._json,\n Targets: import_smithy_client._json\n });\n}, \"de_AssociationVersionInfo\");\nvar de_AssociationVersionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AssociationVersionInfo(entry, context);\n });\n return retVal;\n}, \"de_AssociationVersionList\");\nvar de_AutomationExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n AssociationId: import_smithy_client.expectString,\n AutomationExecutionId: import_smithy_client.expectString,\n AutomationExecutionStatus: import_smithy_client.expectString,\n AutomationSubtype: import_smithy_client.expectString,\n ChangeRequestName: import_smithy_client.expectString,\n CurrentAction: import_smithy_client.expectString,\n CurrentStepName: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ExecutedBy: import_smithy_client.expectString,\n ExecutionEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionEndTime\"),\n ExecutionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionStartTime\"),\n FailureMessage: import_smithy_client.expectString,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Mode: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n Outputs: import_smithy_client._json,\n Parameters: import_smithy_client._json,\n ParentAutomationExecutionId: import_smithy_client.expectString,\n ProgressCounters: import_smithy_client._json,\n ResolvedTargets: import_smithy_client._json,\n Runbooks: import_smithy_client._json,\n ScheduledTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ScheduledTime\"),\n StepExecutions: /* @__PURE__ */ __name((_) => de_StepExecutionList(_, context), \"StepExecutions\"),\n StepExecutionsTruncated: import_smithy_client.expectBoolean,\n Target: import_smithy_client.expectString,\n TargetLocations: import_smithy_client._json,\n TargetLocationsURL: import_smithy_client.expectString,\n TargetMaps: import_smithy_client._json,\n TargetParameterName: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json,\n Variables: import_smithy_client._json\n });\n}, \"de_AutomationExecution\");\nvar de_AutomationExecutionMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n AssociationId: import_smithy_client.expectString,\n AutomationExecutionId: import_smithy_client.expectString,\n AutomationExecutionStatus: import_smithy_client.expectString,\n AutomationSubtype: import_smithy_client.expectString,\n AutomationType: import_smithy_client.expectString,\n ChangeRequestName: import_smithy_client.expectString,\n CurrentAction: import_smithy_client.expectString,\n CurrentStepName: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ExecutedBy: import_smithy_client.expectString,\n ExecutionEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionEndTime\"),\n ExecutionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionStartTime\"),\n FailureMessage: import_smithy_client.expectString,\n LogFile: import_smithy_client.expectString,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Mode: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n Outputs: import_smithy_client._json,\n ParentAutomationExecutionId: import_smithy_client.expectString,\n ResolvedTargets: import_smithy_client._json,\n Runbooks: import_smithy_client._json,\n ScheduledTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ScheduledTime\"),\n Target: import_smithy_client.expectString,\n TargetLocationsURL: import_smithy_client.expectString,\n TargetMaps: import_smithy_client._json,\n TargetParameterName: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_AutomationExecutionMetadata\");\nvar de_AutomationExecutionMetadataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_AutomationExecutionMetadata(entry, context);\n });\n return retVal;\n}, \"de_AutomationExecutionMetadataList\");\nvar de_Command = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n CloudWatchOutputConfig: import_smithy_client._json,\n CommandId: import_smithy_client.expectString,\n Comment: import_smithy_client.expectString,\n CompletedCount: import_smithy_client.expectInt32,\n DeliveryTimedOutCount: import_smithy_client.expectInt32,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ErrorCount: import_smithy_client.expectInt32,\n ExpiresAfter: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExpiresAfter\"),\n InstanceIds: import_smithy_client._json,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n NotificationConfig: import_smithy_client._json,\n OutputS3BucketName: import_smithy_client.expectString,\n OutputS3KeyPrefix: import_smithy_client.expectString,\n OutputS3Region: import_smithy_client.expectString,\n Parameters: import_smithy_client._json,\n RequestedDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RequestedDateTime\"),\n ServiceRole: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TargetCount: import_smithy_client.expectInt32,\n Targets: import_smithy_client._json,\n TimeoutSeconds: import_smithy_client.expectInt32,\n TriggeredAlarms: import_smithy_client._json\n });\n}, \"de_Command\");\nvar de_CommandInvocation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CloudWatchOutputConfig: import_smithy_client._json,\n CommandId: import_smithy_client.expectString,\n CommandPlugins: /* @__PURE__ */ __name((_) => de_CommandPluginList(_, context), \"CommandPlugins\"),\n Comment: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n InstanceName: import_smithy_client.expectString,\n NotificationConfig: import_smithy_client._json,\n RequestedDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RequestedDateTime\"),\n ServiceRole: import_smithy_client.expectString,\n StandardErrorUrl: import_smithy_client.expectString,\n StandardOutputUrl: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TraceOutput: import_smithy_client.expectString\n });\n}, \"de_CommandInvocation\");\nvar de_CommandInvocationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CommandInvocation(entry, context);\n });\n return retVal;\n}, \"de_CommandInvocationList\");\nvar de_CommandList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Command(entry, context);\n });\n return retVal;\n}, \"de_CommandList\");\nvar de_CommandPlugin = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Name: import_smithy_client.expectString,\n Output: import_smithy_client.expectString,\n OutputS3BucketName: import_smithy_client.expectString,\n OutputS3KeyPrefix: import_smithy_client.expectString,\n OutputS3Region: import_smithy_client.expectString,\n ResponseCode: import_smithy_client.expectInt32,\n ResponseFinishDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ResponseFinishDateTime\"),\n ResponseStartDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ResponseStartDateTime\"),\n StandardErrorUrl: import_smithy_client.expectString,\n StandardOutputUrl: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString\n });\n}, \"de_CommandPlugin\");\nvar de_CommandPluginList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_CommandPlugin(entry, context);\n });\n return retVal;\n}, \"de_CommandPluginList\");\nvar de_ComplianceExecutionSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ExecutionId: import_smithy_client.expectString,\n ExecutionTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionTime\"),\n ExecutionType: import_smithy_client.expectString\n });\n}, \"de_ComplianceExecutionSummary\");\nvar de_ComplianceItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ComplianceType: import_smithy_client.expectString,\n Details: import_smithy_client._json,\n ExecutionSummary: /* @__PURE__ */ __name((_) => de_ComplianceExecutionSummary(_, context), \"ExecutionSummary\"),\n Id: import_smithy_client.expectString,\n ResourceId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n Severity: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n Title: import_smithy_client.expectString\n });\n}, \"de_ComplianceItem\");\nvar de_ComplianceItemList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ComplianceItem(entry, context);\n });\n return retVal;\n}, \"de_ComplianceItemList\");\nvar de_CreateAssociationBatchResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Failed: import_smithy_client._json,\n Successful: /* @__PURE__ */ __name((_) => de_AssociationDescriptionList(_, context), \"Successful\")\n });\n}, \"de_CreateAssociationBatchResult\");\nvar de_CreateAssociationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_CreateAssociationResult\");\nvar de_CreateDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentDescription: /* @__PURE__ */ __name((_) => de_DocumentDescription(_, context), \"DocumentDescription\")\n });\n}, \"de_CreateDocumentResult\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AccessKeyId: import_smithy_client.expectString,\n ExpirationTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExpirationTime\"),\n SecretAccessKey: import_smithy_client.expectString,\n SessionToken: import_smithy_client.expectString\n });\n}, \"de_Credentials\");\nvar de_DescribeActivationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationList: /* @__PURE__ */ __name((_) => de_ActivationList(_, context), \"ActivationList\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeActivationsResult\");\nvar de_DescribeAssociationExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationExecutions: /* @__PURE__ */ __name((_) => de_AssociationExecutionsList(_, context), \"AssociationExecutions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeAssociationExecutionsResult\");\nvar de_DescribeAssociationExecutionTargetsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationExecutionTargets: /* @__PURE__ */ __name((_) => de_AssociationExecutionTargetsList(_, context), \"AssociationExecutionTargets\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeAssociationExecutionTargetsResult\");\nvar de_DescribeAssociationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_DescribeAssociationResult\");\nvar de_DescribeAutomationExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AutomationExecutionMetadataList: /* @__PURE__ */ __name((_) => de_AutomationExecutionMetadataList(_, context), \"AutomationExecutionMetadataList\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeAutomationExecutionsResult\");\nvar de_DescribeAutomationStepExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n StepExecutions: /* @__PURE__ */ __name((_) => de_StepExecutionList(_, context), \"StepExecutions\")\n });\n}, \"de_DescribeAutomationStepExecutionsResult\");\nvar de_DescribeAvailablePatchesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Patches: /* @__PURE__ */ __name((_) => de_PatchList(_, context), \"Patches\")\n });\n}, \"de_DescribeAvailablePatchesResult\");\nvar de_DescribeDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Document: /* @__PURE__ */ __name((_) => de_DocumentDescription(_, context), \"Document\")\n });\n}, \"de_DescribeDocumentResult\");\nvar de_DescribeEffectivePatchesForPatchBaselineResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EffectivePatches: /* @__PURE__ */ __name((_) => de_EffectivePatchList(_, context), \"EffectivePatches\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeEffectivePatchesForPatchBaselineResult\");\nvar de_DescribeInstanceAssociationsStatusResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstanceAssociationStatusInfos: /* @__PURE__ */ __name((_) => de_InstanceAssociationStatusInfos(_, context), \"InstanceAssociationStatusInfos\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstanceAssociationsStatusResult\");\nvar de_DescribeInstanceInformationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstanceInformationList: /* @__PURE__ */ __name((_) => de_InstanceInformationList(_, context), \"InstanceInformationList\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstanceInformationResult\");\nvar de_DescribeInstancePatchesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Patches: /* @__PURE__ */ __name((_) => de_PatchComplianceDataList(_, context), \"Patches\")\n });\n}, \"de_DescribeInstancePatchesResult\");\nvar de_DescribeInstancePatchStatesForPatchGroupResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstancePatchStates: /* @__PURE__ */ __name((_) => de_InstancePatchStatesList(_, context), \"InstancePatchStates\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstancePatchStatesForPatchGroupResult\");\nvar de_DescribeInstancePatchStatesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstancePatchStates: /* @__PURE__ */ __name((_) => de_InstancePatchStateList(_, context), \"InstancePatchStates\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstancePatchStatesResult\");\nvar de_DescribeInstancePropertiesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InstanceProperties: /* @__PURE__ */ __name((_) => de_InstanceProperties(_, context), \"InstanceProperties\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInstancePropertiesResult\");\nvar de_DescribeInventoryDeletionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InventoryDeletions: /* @__PURE__ */ __name((_) => de_InventoryDeletionsList(_, context), \"InventoryDeletions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_DescribeInventoryDeletionsResult\");\nvar de_DescribeMaintenanceWindowExecutionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n WindowExecutions: /* @__PURE__ */ __name((_) => de_MaintenanceWindowExecutionList(_, context), \"WindowExecutions\")\n });\n}, \"de_DescribeMaintenanceWindowExecutionsResult\");\nvar de_DescribeMaintenanceWindowExecutionTaskInvocationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n WindowExecutionTaskInvocationIdentities: /* @__PURE__ */ __name((_) => de_MaintenanceWindowExecutionTaskInvocationIdentityList(_, context), \"WindowExecutionTaskInvocationIdentities\")\n });\n}, \"de_DescribeMaintenanceWindowExecutionTaskInvocationsResult\");\nvar de_DescribeMaintenanceWindowExecutionTasksResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n WindowExecutionTaskIdentities: /* @__PURE__ */ __name((_) => de_MaintenanceWindowExecutionTaskIdentityList(_, context), \"WindowExecutionTaskIdentities\")\n });\n}, \"de_DescribeMaintenanceWindowExecutionTasksResult\");\nvar de_DescribeOpsItemsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n OpsItemSummaries: /* @__PURE__ */ __name((_) => de_OpsItemSummaries(_, context), \"OpsItemSummaries\")\n });\n}, \"de_DescribeOpsItemsResponse\");\nvar de_DescribeParametersResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterMetadataList(_, context), \"Parameters\")\n });\n}, \"de_DescribeParametersResult\");\nvar de_DescribeSessionsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Sessions: /* @__PURE__ */ __name((_) => de_SessionList(_, context), \"Sessions\")\n });\n}, \"de_DescribeSessionsResponse\");\nvar de_DocumentDescription = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovedVersion: import_smithy_client.expectString,\n AttachmentsInformation: import_smithy_client._json,\n Author: import_smithy_client.expectString,\n Category: import_smithy_client._json,\n CategoryEnum: import_smithy_client._json,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DefaultVersion: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentType: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Hash: import_smithy_client.expectString,\n HashType: import_smithy_client.expectString,\n LatestVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Owner: import_smithy_client.expectString,\n Parameters: import_smithy_client._json,\n PendingReviewVersion: import_smithy_client.expectString,\n PlatformTypes: import_smithy_client._json,\n Requires: import_smithy_client._json,\n ReviewInformation: /* @__PURE__ */ __name((_) => de_ReviewInformationList(_, context), \"ReviewInformation\"),\n ReviewStatus: import_smithy_client.expectString,\n SchemaVersion: import_smithy_client.expectString,\n Sha1: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusInformation: import_smithy_client.expectString,\n Tags: import_smithy_client._json,\n TargetType: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_DocumentDescription\");\nvar de_DocumentIdentifier = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Author: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentType: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Owner: import_smithy_client.expectString,\n PlatformTypes: import_smithy_client._json,\n Requires: import_smithy_client._json,\n ReviewStatus: import_smithy_client.expectString,\n SchemaVersion: import_smithy_client.expectString,\n Tags: import_smithy_client._json,\n TargetType: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_DocumentIdentifier\");\nvar de_DocumentIdentifierList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DocumentIdentifier(entry, context);\n });\n return retVal;\n}, \"de_DocumentIdentifierList\");\nvar de_DocumentMetadataResponseInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ReviewerResponse: /* @__PURE__ */ __name((_) => de_DocumentReviewerResponseList(_, context), \"ReviewerResponse\")\n });\n}, \"de_DocumentMetadataResponseInfo\");\nvar de_DocumentReviewerResponseList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DocumentReviewerResponseSource(entry, context);\n });\n return retVal;\n}, \"de_DocumentReviewerResponseList\");\nvar de_DocumentReviewerResponseSource = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Comment: import_smithy_client._json,\n CreateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreateTime\"),\n ReviewStatus: import_smithy_client.expectString,\n Reviewer: import_smithy_client.expectString,\n UpdatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"UpdatedTime\")\n });\n}, \"de_DocumentReviewerResponseSource\");\nvar de_DocumentVersionInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n IsDefaultVersion: import_smithy_client.expectBoolean,\n Name: import_smithy_client.expectString,\n ReviewStatus: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusInformation: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_DocumentVersionInfo\");\nvar de_DocumentVersionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_DocumentVersionInfo(entry, context);\n });\n return retVal;\n}, \"de_DocumentVersionList\");\nvar de_EffectivePatch = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Patch: /* @__PURE__ */ __name((_) => de_Patch(_, context), \"Patch\"),\n PatchStatus: /* @__PURE__ */ __name((_) => de_PatchStatus(_, context), \"PatchStatus\")\n });\n}, \"de_EffectivePatch\");\nvar de_EffectivePatchList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_EffectivePatch(entry, context);\n });\n return retVal;\n}, \"de_EffectivePatchList\");\nvar de_GetAccessTokenResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AccessRequestStatus: import_smithy_client.expectString,\n Credentials: /* @__PURE__ */ __name((_) => de_Credentials(_, context), \"Credentials\")\n });\n}, \"de_GetAccessTokenResponse\");\nvar de_GetAutomationExecutionResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AutomationExecution: /* @__PURE__ */ __name((_) => de_AutomationExecution(_, context), \"AutomationExecution\")\n });\n}, \"de_GetAutomationExecutionResult\");\nvar de_GetDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AttachmentsContent: import_smithy_client._json,\n Content: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n DisplayName: import_smithy_client.expectString,\n DocumentFormat: import_smithy_client.expectString,\n DocumentType: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Requires: import_smithy_client._json,\n ReviewStatus: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusInformation: import_smithy_client.expectString,\n VersionName: import_smithy_client.expectString\n });\n}, \"de_GetDocumentResult\");\nvar de_GetExecutionPreviewResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndedAt: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndedAt\"),\n ExecutionPreview: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)((0, import_core2.awsExpectUnion)(_)), \"ExecutionPreview\"),\n ExecutionPreviewId: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n StatusMessage: import_smithy_client.expectString\n });\n}, \"de_GetExecutionPreviewResponse\");\nvar de_GetMaintenanceWindowExecutionResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskIds: import_smithy_client._json,\n WindowExecutionId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowExecutionResult\");\nvar de_GetMaintenanceWindowExecutionTaskInvocationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n ExecutionId: import_smithy_client.expectString,\n InvocationId: import_smithy_client.expectString,\n OwnerInformation: import_smithy_client.expectString,\n Parameters: import_smithy_client.expectString,\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskType: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString,\n WindowTargetId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowExecutionTaskInvocationResult\");\nvar de_GetMaintenanceWindowExecutionTaskResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Priority: import_smithy_client.expectInt32,\n ServiceRole: import_smithy_client.expectString,\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskArn: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskParameters: import_smithy_client._json,\n TriggeredAlarms: import_smithy_client._json,\n Type: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowExecutionTaskResult\");\nvar de_GetMaintenanceWindowResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AllowUnassociatedTargets: import_smithy_client.expectBoolean,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Cutoff: import_smithy_client.expectInt32,\n Description: import_smithy_client.expectString,\n Duration: import_smithy_client.expectInt32,\n Enabled: import_smithy_client.expectBoolean,\n EndDate: import_smithy_client.expectString,\n ModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ModifiedDate\"),\n Name: import_smithy_client.expectString,\n NextExecutionTime: import_smithy_client.expectString,\n Schedule: import_smithy_client.expectString,\n ScheduleOffset: import_smithy_client.expectInt32,\n ScheduleTimezone: import_smithy_client.expectString,\n StartDate: import_smithy_client.expectString,\n WindowId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowResult\");\nvar de_GetMaintenanceWindowTaskResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n CutoffBehavior: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Priority: import_smithy_client.expectInt32,\n ServiceRoleArn: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TaskArn: import_smithy_client.expectString,\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => de_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n TaskType: import_smithy_client.expectString,\n WindowId: import_smithy_client.expectString,\n WindowTaskId: import_smithy_client.expectString\n });\n}, \"de_GetMaintenanceWindowTaskResult\");\nvar de_GetOpsItemResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n OpsItem: /* @__PURE__ */ __name((_) => de_OpsItem(_, context), \"OpsItem\")\n });\n}, \"de_GetOpsItemResponse\");\nvar de_GetParameterHistoryResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterHistoryList(_, context), \"Parameters\")\n });\n}, \"de_GetParameterHistoryResult\");\nvar de_GetParameterResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Parameter: /* @__PURE__ */ __name((_) => de_Parameter(_, context), \"Parameter\")\n });\n}, \"de_GetParameterResult\");\nvar de_GetParametersByPathResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterList(_, context), \"Parameters\")\n });\n}, \"de_GetParametersByPathResult\");\nvar de_GetParametersResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n InvalidParameters: import_smithy_client._json,\n Parameters: /* @__PURE__ */ __name((_) => de_ParameterList(_, context), \"Parameters\")\n });\n}, \"de_GetParametersResult\");\nvar de_GetPatchBaselineResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovalRules: import_smithy_client._json,\n ApprovedPatches: import_smithy_client._json,\n ApprovedPatchesComplianceLevel: import_smithy_client.expectString,\n ApprovedPatchesEnableNonSecurity: import_smithy_client.expectBoolean,\n AvailableSecurityUpdatesComplianceStatus: import_smithy_client.expectString,\n BaselineId: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Description: import_smithy_client.expectString,\n GlobalFilters: import_smithy_client._json,\n ModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ModifiedDate\"),\n Name: import_smithy_client.expectString,\n OperatingSystem: import_smithy_client.expectString,\n PatchGroups: import_smithy_client._json,\n RejectedPatches: import_smithy_client._json,\n RejectedPatchesAction: import_smithy_client.expectString,\n Sources: import_smithy_client._json\n });\n}, \"de_GetPatchBaselineResult\");\nvar de_GetServiceSettingResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ServiceSetting: /* @__PURE__ */ __name((_) => de_ServiceSetting(_, context), \"ServiceSetting\")\n });\n}, \"de_GetServiceSettingResult\");\nvar de_InstanceAssociationStatusInfo = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationName: import_smithy_client.expectString,\n AssociationVersion: import_smithy_client.expectString,\n DetailedStatus: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n ErrorCode: import_smithy_client.expectString,\n ExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionDate\"),\n ExecutionSummary: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n OutputUrl: import_smithy_client._json,\n Status: import_smithy_client.expectString\n });\n}, \"de_InstanceAssociationStatusInfo\");\nvar de_InstanceAssociationStatusInfos = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceAssociationStatusInfo(entry, context);\n });\n return retVal;\n}, \"de_InstanceAssociationStatusInfos\");\nvar de_InstanceInformation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationId: import_smithy_client.expectString,\n AgentVersion: import_smithy_client.expectString,\n AssociationOverview: import_smithy_client._json,\n AssociationStatus: import_smithy_client.expectString,\n ComputerName: import_smithy_client.expectString,\n IPAddress: import_smithy_client.expectString,\n IamRole: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n IsLatestVersion: import_smithy_client.expectBoolean,\n LastAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAssociationExecutionDate\"),\n LastPingDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastPingDateTime\"),\n LastSuccessfulAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulAssociationExecutionDate\"),\n Name: import_smithy_client.expectString,\n PingStatus: import_smithy_client.expectString,\n PlatformName: import_smithy_client.expectString,\n PlatformType: import_smithy_client.expectString,\n PlatformVersion: import_smithy_client.expectString,\n RegistrationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RegistrationDate\"),\n ResourceType: import_smithy_client.expectString,\n SourceId: import_smithy_client.expectString,\n SourceType: import_smithy_client.expectString\n });\n}, \"de_InstanceInformation\");\nvar de_InstanceInformationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceInformation(entry, context);\n });\n return retVal;\n}, \"de_InstanceInformationList\");\nvar de_InstancePatchState = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AvailableSecurityUpdateCount: import_smithy_client.expectInt32,\n BaselineId: import_smithy_client.expectString,\n CriticalNonCompliantCount: import_smithy_client.expectInt32,\n FailedCount: import_smithy_client.expectInt32,\n InstallOverrideList: import_smithy_client.expectString,\n InstalledCount: import_smithy_client.expectInt32,\n InstalledOtherCount: import_smithy_client.expectInt32,\n InstalledPendingRebootCount: import_smithy_client.expectInt32,\n InstalledRejectedCount: import_smithy_client.expectInt32,\n InstanceId: import_smithy_client.expectString,\n LastNoRebootInstallOperationTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastNoRebootInstallOperationTime\"),\n MissingCount: import_smithy_client.expectInt32,\n NotApplicableCount: import_smithy_client.expectInt32,\n Operation: import_smithy_client.expectString,\n OperationEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"OperationEndTime\"),\n OperationStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"OperationStartTime\"),\n OtherNonCompliantCount: import_smithy_client.expectInt32,\n OwnerInformation: import_smithy_client.expectString,\n PatchGroup: import_smithy_client.expectString,\n RebootOption: import_smithy_client.expectString,\n SecurityNonCompliantCount: import_smithy_client.expectInt32,\n SnapshotId: import_smithy_client.expectString,\n UnreportedNotApplicableCount: import_smithy_client.expectInt32\n });\n}, \"de_InstancePatchState\");\nvar de_InstancePatchStateList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstancePatchState(entry, context);\n });\n return retVal;\n}, \"de_InstancePatchStateList\");\nvar de_InstancePatchStatesList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstancePatchState(entry, context);\n });\n return retVal;\n}, \"de_InstancePatchStatesList\");\nvar de_InstanceProperties = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InstanceProperty(entry, context);\n });\n return retVal;\n}, \"de_InstanceProperties\");\nvar de_InstanceProperty = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActivationId: import_smithy_client.expectString,\n AgentVersion: import_smithy_client.expectString,\n Architecture: import_smithy_client.expectString,\n AssociationOverview: import_smithy_client._json,\n AssociationStatus: import_smithy_client.expectString,\n ComputerName: import_smithy_client.expectString,\n IPAddress: import_smithy_client.expectString,\n IamRole: import_smithy_client.expectString,\n InstanceId: import_smithy_client.expectString,\n InstanceRole: import_smithy_client.expectString,\n InstanceState: import_smithy_client.expectString,\n InstanceType: import_smithy_client.expectString,\n KeyName: import_smithy_client.expectString,\n LastAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastAssociationExecutionDate\"),\n LastPingDateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastPingDateTime\"),\n LastSuccessfulAssociationExecutionDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulAssociationExecutionDate\"),\n LaunchTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LaunchTime\"),\n Name: import_smithy_client.expectString,\n PingStatus: import_smithy_client.expectString,\n PlatformName: import_smithy_client.expectString,\n PlatformType: import_smithy_client.expectString,\n PlatformVersion: import_smithy_client.expectString,\n RegistrationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"RegistrationDate\"),\n ResourceType: import_smithy_client.expectString,\n SourceId: import_smithy_client.expectString,\n SourceType: import_smithy_client.expectString\n });\n}, \"de_InstanceProperty\");\nvar de_InventoryDeletionsList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_InventoryDeletionStatusItem(entry, context);\n });\n return retVal;\n}, \"de_InventoryDeletionsList\");\nvar de_InventoryDeletionStatusItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DeletionId: import_smithy_client.expectString,\n DeletionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"DeletionStartTime\"),\n DeletionSummary: import_smithy_client._json,\n LastStatus: import_smithy_client.expectString,\n LastStatusMessage: import_smithy_client.expectString,\n LastStatusUpdateTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastStatusUpdateTime\"),\n TypeName: import_smithy_client.expectString\n });\n}, \"de_InventoryDeletionStatusItem\");\nvar de_ListAssociationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Associations: /* @__PURE__ */ __name((_) => de_AssociationList(_, context), \"Associations\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListAssociationsResult\");\nvar de_ListAssociationVersionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationVersions: /* @__PURE__ */ __name((_) => de_AssociationVersionList(_, context), \"AssociationVersions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListAssociationVersionsResult\");\nvar de_ListCommandInvocationsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CommandInvocations: /* @__PURE__ */ __name((_) => de_CommandInvocationList(_, context), \"CommandInvocations\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListCommandInvocationsResult\");\nvar de_ListCommandsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Commands: /* @__PURE__ */ __name((_) => de_CommandList(_, context), \"Commands\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListCommandsResult\");\nvar de_ListComplianceItemsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ComplianceItems: /* @__PURE__ */ __name((_) => de_ComplianceItemList(_, context), \"ComplianceItems\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListComplianceItemsResult\");\nvar de_ListDocumentMetadataHistoryResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Author: import_smithy_client.expectString,\n DocumentVersion: import_smithy_client.expectString,\n Metadata: /* @__PURE__ */ __name((_) => de_DocumentMetadataResponseInfo(_, context), \"Metadata\"),\n Name: import_smithy_client.expectString,\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListDocumentMetadataHistoryResponse\");\nvar de_ListDocumentsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentIdentifiers: /* @__PURE__ */ __name((_) => de_DocumentIdentifierList(_, context), \"DocumentIdentifiers\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListDocumentsResult\");\nvar de_ListDocumentVersionsResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentVersions: /* @__PURE__ */ __name((_) => de_DocumentVersionList(_, context), \"DocumentVersions\"),\n NextToken: import_smithy_client.expectString\n });\n}, \"de_ListDocumentVersionsResult\");\nvar de_ListNodesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Nodes: /* @__PURE__ */ __name((_) => de_NodeList(_, context), \"Nodes\")\n });\n}, \"de_ListNodesResult\");\nvar de_ListOpsItemEventsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Summaries: /* @__PURE__ */ __name((_) => de_OpsItemEventSummaries(_, context), \"Summaries\")\n });\n}, \"de_ListOpsItemEventsResponse\");\nvar de_ListOpsItemRelatedItemsResponse = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n Summaries: /* @__PURE__ */ __name((_) => de_OpsItemRelatedItemSummaries(_, context), \"Summaries\")\n });\n}, \"de_ListOpsItemRelatedItemsResponse\");\nvar de_ListOpsMetadataResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n OpsMetadataList: /* @__PURE__ */ __name((_) => de_OpsMetadataList(_, context), \"OpsMetadataList\")\n });\n}, \"de_ListOpsMetadataResult\");\nvar de_ListResourceComplianceSummariesResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n ResourceComplianceSummaryItems: /* @__PURE__ */ __name((_) => de_ResourceComplianceSummaryItemList(_, context), \"ResourceComplianceSummaryItems\")\n });\n}, \"de_ListResourceComplianceSummariesResult\");\nvar de_ListResourceDataSyncResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n NextToken: import_smithy_client.expectString,\n ResourceDataSyncItems: /* @__PURE__ */ __name((_) => de_ResourceDataSyncItemList(_, context), \"ResourceDataSyncItems\")\n });\n}, \"de_ListResourceDataSyncResult\");\nvar de_MaintenanceWindowExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString,\n WindowId: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowExecution\");\nvar de_MaintenanceWindowExecutionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MaintenanceWindowExecution(entry, context);\n });\n return retVal;\n}, \"de_MaintenanceWindowExecutionList\");\nvar de_MaintenanceWindowExecutionTaskIdentity = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskArn: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskType: import_smithy_client.expectString,\n TriggeredAlarms: import_smithy_client._json,\n WindowExecutionId: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowExecutionTaskIdentity\");\nvar de_MaintenanceWindowExecutionTaskIdentityList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MaintenanceWindowExecutionTaskIdentity(entry, context);\n });\n return retVal;\n}, \"de_MaintenanceWindowExecutionTaskIdentityList\");\nvar de_MaintenanceWindowExecutionTaskInvocationIdentity = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n EndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndTime\"),\n ExecutionId: import_smithy_client.expectString,\n InvocationId: import_smithy_client.expectString,\n OwnerInformation: import_smithy_client.expectString,\n Parameters: import_smithy_client.expectString,\n StartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartTime\"),\n Status: import_smithy_client.expectString,\n StatusDetails: import_smithy_client.expectString,\n TaskExecutionId: import_smithy_client.expectString,\n TaskType: import_smithy_client.expectString,\n WindowExecutionId: import_smithy_client.expectString,\n WindowTargetId: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowExecutionTaskInvocationIdentity\");\nvar de_MaintenanceWindowExecutionTaskInvocationIdentityList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_MaintenanceWindowExecutionTaskInvocationIdentity(entry, context);\n });\n return retVal;\n}, \"de_MaintenanceWindowExecutionTaskInvocationIdentityList\");\nvar de_MaintenanceWindowLambdaParameters = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ClientContext: import_smithy_client.expectString,\n Payload: context.base64Decoder,\n Qualifier: import_smithy_client.expectString\n });\n}, \"de_MaintenanceWindowLambdaParameters\");\nvar de_MaintenanceWindowTaskInvocationParameters = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Automation: import_smithy_client._json,\n Lambda: /* @__PURE__ */ __name((_) => de_MaintenanceWindowLambdaParameters(_, context), \"Lambda\"),\n RunCommand: import_smithy_client._json,\n StepFunctions: import_smithy_client._json\n });\n}, \"de_MaintenanceWindowTaskInvocationParameters\");\nvar de_Node = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CaptureTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CaptureTime\"),\n Id: import_smithy_client.expectString,\n NodeType: /* @__PURE__ */ __name((_) => (0, import_smithy_client._json)((0, import_core2.awsExpectUnion)(_)), \"NodeType\"),\n Owner: import_smithy_client._json,\n Region: import_smithy_client.expectString\n });\n}, \"de_Node\");\nvar de_NodeList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Node(entry, context);\n });\n return retVal;\n}, \"de_NodeList\");\nvar de_OpsItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActualEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualStartTime\"),\n Category: import_smithy_client.expectString,\n CreatedBy: import_smithy_client.expectString,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n Description: import_smithy_client.expectString,\n LastModifiedBy: import_smithy_client.expectString,\n LastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedTime\"),\n Notifications: import_smithy_client._json,\n OperationalData: import_smithy_client._json,\n OpsItemArn: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n OpsItemType: import_smithy_client.expectString,\n PlannedEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedStartTime\"),\n Priority: import_smithy_client.expectInt32,\n RelatedOpsItems: import_smithy_client._json,\n Severity: import_smithy_client.expectString,\n Source: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n Title: import_smithy_client.expectString,\n Version: import_smithy_client.expectString\n });\n}, \"de_OpsItem\");\nvar de_OpsItemEventSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsItemEventSummary(entry, context);\n });\n return retVal;\n}, \"de_OpsItemEventSummaries\");\nvar de_OpsItemEventSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreatedBy: import_smithy_client._json,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n Detail: import_smithy_client.expectString,\n DetailType: import_smithy_client.expectString,\n EventId: import_smithy_client.expectString,\n OpsItemId: import_smithy_client.expectString,\n Source: import_smithy_client.expectString\n });\n}, \"de_OpsItemEventSummary\");\nvar de_OpsItemRelatedItemSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsItemRelatedItemSummary(entry, context);\n });\n return retVal;\n}, \"de_OpsItemRelatedItemSummaries\");\nvar de_OpsItemRelatedItemSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationId: import_smithy_client.expectString,\n AssociationType: import_smithy_client.expectString,\n CreatedBy: import_smithy_client._json,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n LastModifiedBy: import_smithy_client._json,\n LastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedTime\"),\n OpsItemId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n ResourceUri: import_smithy_client.expectString\n });\n}, \"de_OpsItemRelatedItemSummary\");\nvar de_OpsItemSummaries = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsItemSummary(entry, context);\n });\n return retVal;\n}, \"de_OpsItemSummaries\");\nvar de_OpsItemSummary = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ActualEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualEndTime\"),\n ActualStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ActualStartTime\"),\n Category: import_smithy_client.expectString,\n CreatedBy: import_smithy_client.expectString,\n CreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedTime\"),\n LastModifiedBy: import_smithy_client.expectString,\n LastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedTime\"),\n OperationalData: import_smithy_client._json,\n OpsItemId: import_smithy_client.expectString,\n OpsItemType: import_smithy_client.expectString,\n PlannedEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedEndTime\"),\n PlannedStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"PlannedStartTime\"),\n Priority: import_smithy_client.expectInt32,\n Severity: import_smithy_client.expectString,\n Source: import_smithy_client.expectString,\n Status: import_smithy_client.expectString,\n Title: import_smithy_client.expectString\n });\n}, \"de_OpsItemSummary\");\nvar de_OpsMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CreationDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreationDate\"),\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n OpsMetadataArn: import_smithy_client.expectString,\n ResourceId: import_smithy_client.expectString\n });\n}, \"de_OpsMetadata\");\nvar de_OpsMetadataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_OpsMetadata(entry, context);\n });\n return retVal;\n}, \"de_OpsMetadataList\");\nvar de_Parameter = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n DataType: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n Name: import_smithy_client.expectString,\n Selector: import_smithy_client.expectString,\n SourceResult: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n Value: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n}, \"de_Parameter\");\nvar de_ParameterHistory = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AllowedPattern: import_smithy_client.expectString,\n DataType: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n Labels: import_smithy_client._json,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Policies: import_smithy_client._json,\n Tier: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n Value: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n}, \"de_ParameterHistory\");\nvar de_ParameterHistoryList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ParameterHistory(entry, context);\n });\n return retVal;\n}, \"de_ParameterHistoryList\");\nvar de_ParameterList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Parameter(entry, context);\n });\n return retVal;\n}, \"de_ParameterList\");\nvar de_ParameterMetadata = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n AllowedPattern: import_smithy_client.expectString,\n DataType: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n KeyId: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Policies: import_smithy_client._json,\n Tier: import_smithy_client.expectString,\n Type: import_smithy_client.expectString,\n Version: import_smithy_client.expectLong\n });\n}, \"de_ParameterMetadata\");\nvar de_ParameterMetadataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ParameterMetadata(entry, context);\n });\n return retVal;\n}, \"de_ParameterMetadataList\");\nvar de_Patch = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AdvisoryIds: import_smithy_client._json,\n Arch: import_smithy_client.expectString,\n BugzillaIds: import_smithy_client._json,\n CVEIds: import_smithy_client._json,\n Classification: import_smithy_client.expectString,\n ContentUrl: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n Epoch: import_smithy_client.expectInt32,\n Id: import_smithy_client.expectString,\n KbNumber: import_smithy_client.expectString,\n Language: import_smithy_client.expectString,\n MsrcNumber: import_smithy_client.expectString,\n MsrcSeverity: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Product: import_smithy_client.expectString,\n ProductFamily: import_smithy_client.expectString,\n Release: import_smithy_client.expectString,\n ReleaseDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ReleaseDate\"),\n Repository: import_smithy_client.expectString,\n Severity: import_smithy_client.expectString,\n Title: import_smithy_client.expectString,\n Vendor: import_smithy_client.expectString,\n Version: import_smithy_client.expectString\n });\n}, \"de_Patch\");\nvar de_PatchComplianceData = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n CVEIds: import_smithy_client.expectString,\n Classification: import_smithy_client.expectString,\n InstalledTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"InstalledTime\"),\n KBId: import_smithy_client.expectString,\n Severity: import_smithy_client.expectString,\n State: import_smithy_client.expectString,\n Title: import_smithy_client.expectString\n });\n}, \"de_PatchComplianceData\");\nvar de_PatchComplianceDataList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_PatchComplianceData(entry, context);\n });\n return retVal;\n}, \"de_PatchComplianceDataList\");\nvar de_PatchList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Patch(entry, context);\n });\n return retVal;\n}, \"de_PatchList\");\nvar de_PatchStatus = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovalDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ApprovalDate\"),\n ComplianceLevel: import_smithy_client.expectString,\n DeploymentStatus: import_smithy_client.expectString\n });\n}, \"de_PatchStatus\");\nvar de_ResetServiceSettingResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ServiceSetting: /* @__PURE__ */ __name((_) => de_ServiceSetting(_, context), \"ServiceSetting\")\n });\n}, \"de_ResetServiceSettingResult\");\nvar de_ResourceComplianceSummaryItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ComplianceType: import_smithy_client.expectString,\n CompliantSummary: import_smithy_client._json,\n ExecutionSummary: /* @__PURE__ */ __name((_) => de_ComplianceExecutionSummary(_, context), \"ExecutionSummary\"),\n NonCompliantSummary: import_smithy_client._json,\n OverallSeverity: import_smithy_client.expectString,\n ResourceId: import_smithy_client.expectString,\n ResourceType: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_ResourceComplianceSummaryItem\");\nvar de_ResourceComplianceSummaryItemList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceComplianceSummaryItem(entry, context);\n });\n return retVal;\n}, \"de_ResourceComplianceSummaryItemList\");\nvar de_ResourceDataSyncItem = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n LastStatus: import_smithy_client.expectString,\n LastSuccessfulSyncTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSuccessfulSyncTime\"),\n LastSyncStatusMessage: import_smithy_client.expectString,\n LastSyncTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastSyncTime\"),\n S3Destination: import_smithy_client._json,\n SyncCreatedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"SyncCreatedTime\"),\n SyncLastModifiedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"SyncLastModifiedTime\"),\n SyncName: import_smithy_client.expectString,\n SyncSource: import_smithy_client._json,\n SyncType: import_smithy_client.expectString\n });\n}, \"de_ResourceDataSyncItem\");\nvar de_ResourceDataSyncItemList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ResourceDataSyncItem(entry, context);\n });\n return retVal;\n}, \"de_ResourceDataSyncItemList\");\nvar de_ReviewInformation = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ReviewedTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ReviewedTime\"),\n Reviewer: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_ReviewInformation\");\nvar de_ReviewInformationList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_ReviewInformation(entry, context);\n });\n return retVal;\n}, \"de_ReviewInformationList\");\nvar de_SendCommandResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Command: /* @__PURE__ */ __name((_) => de_Command(_, context), \"Command\")\n });\n}, \"de_SendCommandResult\");\nvar de_ServiceSetting = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ARN: import_smithy_client.expectString,\n LastModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"LastModifiedDate\"),\n LastModifiedUser: import_smithy_client.expectString,\n SettingId: import_smithy_client.expectString,\n SettingValue: import_smithy_client.expectString,\n Status: import_smithy_client.expectString\n });\n}, \"de_ServiceSetting\");\nvar de_Session = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Details: import_smithy_client.expectString,\n DocumentName: import_smithy_client.expectString,\n EndDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"EndDate\"),\n MaxSessionDuration: import_smithy_client.expectString,\n OutputUrl: import_smithy_client._json,\n Owner: import_smithy_client.expectString,\n Reason: import_smithy_client.expectString,\n SessionId: import_smithy_client.expectString,\n StartDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"StartDate\"),\n Status: import_smithy_client.expectString,\n Target: import_smithy_client.expectString\n });\n}, \"de_Session\");\nvar de_SessionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_Session(entry, context);\n });\n return retVal;\n}, \"de_SessionList\");\nvar de_StepExecution = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n Action: import_smithy_client.expectString,\n ExecutionEndTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionEndTime\"),\n ExecutionStartTime: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ExecutionStartTime\"),\n FailureDetails: import_smithy_client._json,\n FailureMessage: import_smithy_client.expectString,\n Inputs: import_smithy_client._json,\n IsCritical: import_smithy_client.expectBoolean,\n IsEnd: import_smithy_client.expectBoolean,\n MaxAttempts: import_smithy_client.expectInt32,\n NextStep: import_smithy_client.expectString,\n OnFailure: import_smithy_client.expectString,\n Outputs: import_smithy_client._json,\n OverriddenParameters: import_smithy_client._json,\n ParentStepDetails: import_smithy_client._json,\n Response: import_smithy_client.expectString,\n ResponseCode: import_smithy_client.expectString,\n StepExecutionId: import_smithy_client.expectString,\n StepName: import_smithy_client.expectString,\n StepStatus: import_smithy_client.expectString,\n TargetLocation: import_smithy_client._json,\n Targets: import_smithy_client._json,\n TimeoutSeconds: import_smithy_client.expectLong,\n TriggeredAlarms: import_smithy_client._json,\n ValidNextSteps: import_smithy_client._json\n });\n}, \"de_StepExecution\");\nvar de_StepExecutionList = /* @__PURE__ */ __name((output, context) => {\n const retVal = (output || []).filter((e) => e != null).map((entry) => {\n return de_StepExecution(entry, context);\n });\n return retVal;\n}, \"de_StepExecutionList\");\nvar de_UpdateAssociationResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_UpdateAssociationResult\");\nvar de_UpdateAssociationStatusResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AssociationDescription: /* @__PURE__ */ __name((_) => de_AssociationDescription(_, context), \"AssociationDescription\")\n });\n}, \"de_UpdateAssociationStatusResult\");\nvar de_UpdateDocumentResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n DocumentDescription: /* @__PURE__ */ __name((_) => de_DocumentDescription(_, context), \"DocumentDescription\")\n });\n}, \"de_UpdateDocumentResult\");\nvar de_UpdateMaintenanceWindowTaskResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n AlarmConfiguration: import_smithy_client._json,\n CutoffBehavior: import_smithy_client.expectString,\n Description: import_smithy_client.expectString,\n LoggingInfo: import_smithy_client._json,\n MaxConcurrency: import_smithy_client.expectString,\n MaxErrors: import_smithy_client.expectString,\n Name: import_smithy_client.expectString,\n Priority: import_smithy_client.expectInt32,\n ServiceRoleArn: import_smithy_client.expectString,\n Targets: import_smithy_client._json,\n TaskArn: import_smithy_client.expectString,\n TaskInvocationParameters: /* @__PURE__ */ __name((_) => de_MaintenanceWindowTaskInvocationParameters(_, context), \"TaskInvocationParameters\"),\n TaskParameters: import_smithy_client._json,\n WindowId: import_smithy_client.expectString,\n WindowTaskId: import_smithy_client.expectString\n });\n}, \"de_UpdateMaintenanceWindowTaskResult\");\nvar de_UpdatePatchBaselineResult = /* @__PURE__ */ __name((output, context) => {\n return (0, import_smithy_client.take)(output, {\n ApprovalRules: import_smithy_client._json,\n ApprovedPatches: import_smithy_client._json,\n ApprovedPatchesComplianceLevel: import_smithy_client.expectString,\n ApprovedPatchesEnableNonSecurity: import_smithy_client.expectBoolean,\n AvailableSecurityUpdatesComplianceStatus: import_smithy_client.expectString,\n BaselineId: import_smithy_client.expectString,\n CreatedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"CreatedDate\"),\n Description: import_smithy_client.expectString,\n GlobalFilters: import_smithy_client._json,\n ModifiedDate: /* @__PURE__ */ __name((_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_))), \"ModifiedDate\"),\n Name: import_smithy_client.expectString,\n OperatingSystem: import_smithy_client.expectString,\n RejectedPatches: import_smithy_client._json,\n RejectedPatchesAction: import_smithy_client.expectString,\n Sources: import_smithy_client._json\n });\n}, \"de_UpdatePatchBaselineResult\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSMServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AmazonSSM.${operation}`\n };\n}\n__name(sharedHeaders, \"sharedHeaders\");\n\n// src/commands/AddTagsToResourceCommand.ts\nvar AddTagsToResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"AddTagsToResource\", {}).n(\"SSMClient\", \"AddTagsToResourceCommand\").f(void 0, void 0).ser(se_AddTagsToResourceCommand).de(de_AddTagsToResourceCommand).build() {\n static {\n __name(this, \"AddTagsToResourceCommand\");\n }\n};\n\n// src/commands/AssociateOpsItemRelatedItemCommand.ts\n\n\n\nvar AssociateOpsItemRelatedItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"AssociateOpsItemRelatedItem\", {}).n(\"SSMClient\", \"AssociateOpsItemRelatedItemCommand\").f(void 0, void 0).ser(se_AssociateOpsItemRelatedItemCommand).de(de_AssociateOpsItemRelatedItemCommand).build() {\n static {\n __name(this, \"AssociateOpsItemRelatedItemCommand\");\n }\n};\n\n// src/commands/CancelCommandCommand.ts\n\n\n\nvar CancelCommandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CancelCommand\", {}).n(\"SSMClient\", \"CancelCommandCommand\").f(void 0, void 0).ser(se_CancelCommandCommand).de(de_CancelCommandCommand).build() {\n static {\n __name(this, \"CancelCommandCommand\");\n }\n};\n\n// src/commands/CancelMaintenanceWindowExecutionCommand.ts\n\n\n\nvar CancelMaintenanceWindowExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CancelMaintenanceWindowExecution\", {}).n(\"SSMClient\", \"CancelMaintenanceWindowExecutionCommand\").f(void 0, void 0).ser(se_CancelMaintenanceWindowExecutionCommand).de(de_CancelMaintenanceWindowExecutionCommand).build() {\n static {\n __name(this, \"CancelMaintenanceWindowExecutionCommand\");\n }\n};\n\n// src/commands/CreateActivationCommand.ts\n\n\n\nvar CreateActivationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateActivation\", {}).n(\"SSMClient\", \"CreateActivationCommand\").f(void 0, void 0).ser(se_CreateActivationCommand).de(de_CreateActivationCommand).build() {\n static {\n __name(this, \"CreateActivationCommand\");\n }\n};\n\n// src/commands/CreateAssociationBatchCommand.ts\n\n\n\nvar CreateAssociationBatchCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateAssociationBatch\", {}).n(\"SSMClient\", \"CreateAssociationBatchCommand\").f(CreateAssociationBatchRequestFilterSensitiveLog, CreateAssociationBatchResultFilterSensitiveLog).ser(se_CreateAssociationBatchCommand).de(de_CreateAssociationBatchCommand).build() {\n static {\n __name(this, \"CreateAssociationBatchCommand\");\n }\n};\n\n// src/commands/CreateAssociationCommand.ts\n\n\n\nvar CreateAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateAssociation\", {}).n(\"SSMClient\", \"CreateAssociationCommand\").f(CreateAssociationRequestFilterSensitiveLog, CreateAssociationResultFilterSensitiveLog).ser(se_CreateAssociationCommand).de(de_CreateAssociationCommand).build() {\n static {\n __name(this, \"CreateAssociationCommand\");\n }\n};\n\n// src/commands/CreateDocumentCommand.ts\n\n\n\nvar CreateDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateDocument\", {}).n(\"SSMClient\", \"CreateDocumentCommand\").f(void 0, void 0).ser(se_CreateDocumentCommand).de(de_CreateDocumentCommand).build() {\n static {\n __name(this, \"CreateDocumentCommand\");\n }\n};\n\n// src/commands/CreateMaintenanceWindowCommand.ts\n\n\n\nvar CreateMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateMaintenanceWindow\", {}).n(\"SSMClient\", \"CreateMaintenanceWindowCommand\").f(CreateMaintenanceWindowRequestFilterSensitiveLog, void 0).ser(se_CreateMaintenanceWindowCommand).de(de_CreateMaintenanceWindowCommand).build() {\n static {\n __name(this, \"CreateMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/CreateOpsItemCommand.ts\n\n\n\nvar CreateOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateOpsItem\", {}).n(\"SSMClient\", \"CreateOpsItemCommand\").f(void 0, void 0).ser(se_CreateOpsItemCommand).de(de_CreateOpsItemCommand).build() {\n static {\n __name(this, \"CreateOpsItemCommand\");\n }\n};\n\n// src/commands/CreateOpsMetadataCommand.ts\n\n\n\nvar CreateOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateOpsMetadata\", {}).n(\"SSMClient\", \"CreateOpsMetadataCommand\").f(void 0, void 0).ser(se_CreateOpsMetadataCommand).de(de_CreateOpsMetadataCommand).build() {\n static {\n __name(this, \"CreateOpsMetadataCommand\");\n }\n};\n\n// src/commands/CreatePatchBaselineCommand.ts\n\n\n\nvar CreatePatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreatePatchBaseline\", {}).n(\"SSMClient\", \"CreatePatchBaselineCommand\").f(CreatePatchBaselineRequestFilterSensitiveLog, void 0).ser(se_CreatePatchBaselineCommand).de(de_CreatePatchBaselineCommand).build() {\n static {\n __name(this, \"CreatePatchBaselineCommand\");\n }\n};\n\n// src/commands/CreateResourceDataSyncCommand.ts\n\n\n\nvar CreateResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"CreateResourceDataSync\", {}).n(\"SSMClient\", \"CreateResourceDataSyncCommand\").f(void 0, void 0).ser(se_CreateResourceDataSyncCommand).de(de_CreateResourceDataSyncCommand).build() {\n static {\n __name(this, \"CreateResourceDataSyncCommand\");\n }\n};\n\n// src/commands/DeleteActivationCommand.ts\n\n\n\nvar DeleteActivationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteActivation\", {}).n(\"SSMClient\", \"DeleteActivationCommand\").f(void 0, void 0).ser(se_DeleteActivationCommand).de(de_DeleteActivationCommand).build() {\n static {\n __name(this, \"DeleteActivationCommand\");\n }\n};\n\n// src/commands/DeleteAssociationCommand.ts\n\n\n\nvar DeleteAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteAssociation\", {}).n(\"SSMClient\", \"DeleteAssociationCommand\").f(void 0, void 0).ser(se_DeleteAssociationCommand).de(de_DeleteAssociationCommand).build() {\n static {\n __name(this, \"DeleteAssociationCommand\");\n }\n};\n\n// src/commands/DeleteDocumentCommand.ts\n\n\n\nvar DeleteDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteDocument\", {}).n(\"SSMClient\", \"DeleteDocumentCommand\").f(void 0, void 0).ser(se_DeleteDocumentCommand).de(de_DeleteDocumentCommand).build() {\n static {\n __name(this, \"DeleteDocumentCommand\");\n }\n};\n\n// src/commands/DeleteInventoryCommand.ts\n\n\n\nvar DeleteInventoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteInventory\", {}).n(\"SSMClient\", \"DeleteInventoryCommand\").f(void 0, void 0).ser(se_DeleteInventoryCommand).de(de_DeleteInventoryCommand).build() {\n static {\n __name(this, \"DeleteInventoryCommand\");\n }\n};\n\n// src/commands/DeleteMaintenanceWindowCommand.ts\n\n\n\nvar DeleteMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteMaintenanceWindow\", {}).n(\"SSMClient\", \"DeleteMaintenanceWindowCommand\").f(void 0, void 0).ser(se_DeleteMaintenanceWindowCommand).de(de_DeleteMaintenanceWindowCommand).build() {\n static {\n __name(this, \"DeleteMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/DeleteOpsItemCommand.ts\n\n\n\nvar DeleteOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteOpsItem\", {}).n(\"SSMClient\", \"DeleteOpsItemCommand\").f(void 0, void 0).ser(se_DeleteOpsItemCommand).de(de_DeleteOpsItemCommand).build() {\n static {\n __name(this, \"DeleteOpsItemCommand\");\n }\n};\n\n// src/commands/DeleteOpsMetadataCommand.ts\n\n\n\nvar DeleteOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteOpsMetadata\", {}).n(\"SSMClient\", \"DeleteOpsMetadataCommand\").f(void 0, void 0).ser(se_DeleteOpsMetadataCommand).de(de_DeleteOpsMetadataCommand).build() {\n static {\n __name(this, \"DeleteOpsMetadataCommand\");\n }\n};\n\n// src/commands/DeleteParameterCommand.ts\n\n\n\nvar DeleteParameterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteParameter\", {}).n(\"SSMClient\", \"DeleteParameterCommand\").f(void 0, void 0).ser(se_DeleteParameterCommand).de(de_DeleteParameterCommand).build() {\n static {\n __name(this, \"DeleteParameterCommand\");\n }\n};\n\n// src/commands/DeleteParametersCommand.ts\n\n\n\nvar DeleteParametersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteParameters\", {}).n(\"SSMClient\", \"DeleteParametersCommand\").f(void 0, void 0).ser(se_DeleteParametersCommand).de(de_DeleteParametersCommand).build() {\n static {\n __name(this, \"DeleteParametersCommand\");\n }\n};\n\n// src/commands/DeletePatchBaselineCommand.ts\n\n\n\nvar DeletePatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeletePatchBaseline\", {}).n(\"SSMClient\", \"DeletePatchBaselineCommand\").f(void 0, void 0).ser(se_DeletePatchBaselineCommand).de(de_DeletePatchBaselineCommand).build() {\n static {\n __name(this, \"DeletePatchBaselineCommand\");\n }\n};\n\n// src/commands/DeleteResourceDataSyncCommand.ts\n\n\n\nvar DeleteResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteResourceDataSync\", {}).n(\"SSMClient\", \"DeleteResourceDataSyncCommand\").f(void 0, void 0).ser(se_DeleteResourceDataSyncCommand).de(de_DeleteResourceDataSyncCommand).build() {\n static {\n __name(this, \"DeleteResourceDataSyncCommand\");\n }\n};\n\n// src/commands/DeleteResourcePolicyCommand.ts\n\n\n\nvar DeleteResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeleteResourcePolicy\", {}).n(\"SSMClient\", \"DeleteResourcePolicyCommand\").f(void 0, void 0).ser(se_DeleteResourcePolicyCommand).de(de_DeleteResourcePolicyCommand).build() {\n static {\n __name(this, \"DeleteResourcePolicyCommand\");\n }\n};\n\n// src/commands/DeregisterManagedInstanceCommand.ts\n\n\n\nvar DeregisterManagedInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterManagedInstance\", {}).n(\"SSMClient\", \"DeregisterManagedInstanceCommand\").f(void 0, void 0).ser(se_DeregisterManagedInstanceCommand).de(de_DeregisterManagedInstanceCommand).build() {\n static {\n __name(this, \"DeregisterManagedInstanceCommand\");\n }\n};\n\n// src/commands/DeregisterPatchBaselineForPatchGroupCommand.ts\n\n\n\nvar DeregisterPatchBaselineForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterPatchBaselineForPatchGroup\", {}).n(\"SSMClient\", \"DeregisterPatchBaselineForPatchGroupCommand\").f(void 0, void 0).ser(se_DeregisterPatchBaselineForPatchGroupCommand).de(de_DeregisterPatchBaselineForPatchGroupCommand).build() {\n static {\n __name(this, \"DeregisterPatchBaselineForPatchGroupCommand\");\n }\n};\n\n// src/commands/DeregisterTargetFromMaintenanceWindowCommand.ts\n\n\n\nvar DeregisterTargetFromMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterTargetFromMaintenanceWindow\", {}).n(\"SSMClient\", \"DeregisterTargetFromMaintenanceWindowCommand\").f(void 0, void 0).ser(se_DeregisterTargetFromMaintenanceWindowCommand).de(de_DeregisterTargetFromMaintenanceWindowCommand).build() {\n static {\n __name(this, \"DeregisterTargetFromMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/DeregisterTaskFromMaintenanceWindowCommand.ts\n\n\n\nvar DeregisterTaskFromMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DeregisterTaskFromMaintenanceWindow\", {}).n(\"SSMClient\", \"DeregisterTaskFromMaintenanceWindowCommand\").f(void 0, void 0).ser(se_DeregisterTaskFromMaintenanceWindowCommand).de(de_DeregisterTaskFromMaintenanceWindowCommand).build() {\n static {\n __name(this, \"DeregisterTaskFromMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/DescribeActivationsCommand.ts\n\n\n\nvar DescribeActivationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeActivations\", {}).n(\"SSMClient\", \"DescribeActivationsCommand\").f(void 0, void 0).ser(se_DescribeActivationsCommand).de(de_DescribeActivationsCommand).build() {\n static {\n __name(this, \"DescribeActivationsCommand\");\n }\n};\n\n// src/commands/DescribeAssociationCommand.ts\n\n\n\nvar DescribeAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAssociation\", {}).n(\"SSMClient\", \"DescribeAssociationCommand\").f(void 0, DescribeAssociationResultFilterSensitiveLog).ser(se_DescribeAssociationCommand).de(de_DescribeAssociationCommand).build() {\n static {\n __name(this, \"DescribeAssociationCommand\");\n }\n};\n\n// src/commands/DescribeAssociationExecutionsCommand.ts\n\n\n\nvar DescribeAssociationExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAssociationExecutions\", {}).n(\"SSMClient\", \"DescribeAssociationExecutionsCommand\").f(void 0, void 0).ser(se_DescribeAssociationExecutionsCommand).de(de_DescribeAssociationExecutionsCommand).build() {\n static {\n __name(this, \"DescribeAssociationExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeAssociationExecutionTargetsCommand.ts\n\n\n\nvar DescribeAssociationExecutionTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAssociationExecutionTargets\", {}).n(\"SSMClient\", \"DescribeAssociationExecutionTargetsCommand\").f(void 0, void 0).ser(se_DescribeAssociationExecutionTargetsCommand).de(de_DescribeAssociationExecutionTargetsCommand).build() {\n static {\n __name(this, \"DescribeAssociationExecutionTargetsCommand\");\n }\n};\n\n// src/commands/DescribeAutomationExecutionsCommand.ts\n\n\n\nvar DescribeAutomationExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAutomationExecutions\", {}).n(\"SSMClient\", \"DescribeAutomationExecutionsCommand\").f(void 0, void 0).ser(se_DescribeAutomationExecutionsCommand).de(de_DescribeAutomationExecutionsCommand).build() {\n static {\n __name(this, \"DescribeAutomationExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeAutomationStepExecutionsCommand.ts\n\n\n\nvar DescribeAutomationStepExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAutomationStepExecutions\", {}).n(\"SSMClient\", \"DescribeAutomationStepExecutionsCommand\").f(void 0, void 0).ser(se_DescribeAutomationStepExecutionsCommand).de(de_DescribeAutomationStepExecutionsCommand).build() {\n static {\n __name(this, \"DescribeAutomationStepExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeAvailablePatchesCommand.ts\n\n\n\nvar DescribeAvailablePatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeAvailablePatches\", {}).n(\"SSMClient\", \"DescribeAvailablePatchesCommand\").f(void 0, void 0).ser(se_DescribeAvailablePatchesCommand).de(de_DescribeAvailablePatchesCommand).build() {\n static {\n __name(this, \"DescribeAvailablePatchesCommand\");\n }\n};\n\n// src/commands/DescribeDocumentCommand.ts\n\n\n\nvar DescribeDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeDocument\", {}).n(\"SSMClient\", \"DescribeDocumentCommand\").f(void 0, void 0).ser(se_DescribeDocumentCommand).de(de_DescribeDocumentCommand).build() {\n static {\n __name(this, \"DescribeDocumentCommand\");\n }\n};\n\n// src/commands/DescribeDocumentPermissionCommand.ts\n\n\n\nvar DescribeDocumentPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeDocumentPermission\", {}).n(\"SSMClient\", \"DescribeDocumentPermissionCommand\").f(void 0, void 0).ser(se_DescribeDocumentPermissionCommand).de(de_DescribeDocumentPermissionCommand).build() {\n static {\n __name(this, \"DescribeDocumentPermissionCommand\");\n }\n};\n\n// src/commands/DescribeEffectiveInstanceAssociationsCommand.ts\n\n\n\nvar DescribeEffectiveInstanceAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeEffectiveInstanceAssociations\", {}).n(\"SSMClient\", \"DescribeEffectiveInstanceAssociationsCommand\").f(void 0, void 0).ser(se_DescribeEffectiveInstanceAssociationsCommand).de(de_DescribeEffectiveInstanceAssociationsCommand).build() {\n static {\n __name(this, \"DescribeEffectiveInstanceAssociationsCommand\");\n }\n};\n\n// src/commands/DescribeEffectivePatchesForPatchBaselineCommand.ts\n\n\n\nvar DescribeEffectivePatchesForPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeEffectivePatchesForPatchBaseline\", {}).n(\"SSMClient\", \"DescribeEffectivePatchesForPatchBaselineCommand\").f(void 0, void 0).ser(se_DescribeEffectivePatchesForPatchBaselineCommand).de(de_DescribeEffectivePatchesForPatchBaselineCommand).build() {\n static {\n __name(this, \"DescribeEffectivePatchesForPatchBaselineCommand\");\n }\n};\n\n// src/commands/DescribeInstanceAssociationsStatusCommand.ts\n\n\n\nvar DescribeInstanceAssociationsStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstanceAssociationsStatus\", {}).n(\"SSMClient\", \"DescribeInstanceAssociationsStatusCommand\").f(void 0, void 0).ser(se_DescribeInstanceAssociationsStatusCommand).de(de_DescribeInstanceAssociationsStatusCommand).build() {\n static {\n __name(this, \"DescribeInstanceAssociationsStatusCommand\");\n }\n};\n\n// src/commands/DescribeInstanceInformationCommand.ts\n\n\n\nvar DescribeInstanceInformationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstanceInformation\", {}).n(\"SSMClient\", \"DescribeInstanceInformationCommand\").f(void 0, DescribeInstanceInformationResultFilterSensitiveLog).ser(se_DescribeInstanceInformationCommand).de(de_DescribeInstanceInformationCommand).build() {\n static {\n __name(this, \"DescribeInstanceInformationCommand\");\n }\n};\n\n// src/commands/DescribeInstancePatchesCommand.ts\n\n\n\nvar DescribeInstancePatchesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstancePatches\", {}).n(\"SSMClient\", \"DescribeInstancePatchesCommand\").f(void 0, void 0).ser(se_DescribeInstancePatchesCommand).de(de_DescribeInstancePatchesCommand).build() {\n static {\n __name(this, \"DescribeInstancePatchesCommand\");\n }\n};\n\n// src/commands/DescribeInstancePatchStatesCommand.ts\n\n\n\nvar DescribeInstancePatchStatesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstancePatchStates\", {}).n(\"SSMClient\", \"DescribeInstancePatchStatesCommand\").f(void 0, DescribeInstancePatchStatesResultFilterSensitiveLog).ser(se_DescribeInstancePatchStatesCommand).de(de_DescribeInstancePatchStatesCommand).build() {\n static {\n __name(this, \"DescribeInstancePatchStatesCommand\");\n }\n};\n\n// src/commands/DescribeInstancePatchStatesForPatchGroupCommand.ts\n\n\n\nvar DescribeInstancePatchStatesForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstancePatchStatesForPatchGroup\", {}).n(\"SSMClient\", \"DescribeInstancePatchStatesForPatchGroupCommand\").f(void 0, DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog).ser(se_DescribeInstancePatchStatesForPatchGroupCommand).de(de_DescribeInstancePatchStatesForPatchGroupCommand).build() {\n static {\n __name(this, \"DescribeInstancePatchStatesForPatchGroupCommand\");\n }\n};\n\n// src/commands/DescribeInstancePropertiesCommand.ts\n\n\n\nvar DescribeInstancePropertiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInstanceProperties\", {}).n(\"SSMClient\", \"DescribeInstancePropertiesCommand\").f(void 0, DescribeInstancePropertiesResultFilterSensitiveLog).ser(se_DescribeInstancePropertiesCommand).de(de_DescribeInstancePropertiesCommand).build() {\n static {\n __name(this, \"DescribeInstancePropertiesCommand\");\n }\n};\n\n// src/commands/DescribeInventoryDeletionsCommand.ts\n\n\n\nvar DescribeInventoryDeletionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeInventoryDeletions\", {}).n(\"SSMClient\", \"DescribeInventoryDeletionsCommand\").f(void 0, void 0).ser(se_DescribeInventoryDeletionsCommand).de(de_DescribeInventoryDeletionsCommand).build() {\n static {\n __name(this, \"DescribeInventoryDeletionsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowExecutionsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowExecutionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowExecutions\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowExecutionsCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowExecutionsCommand).de(de_DescribeMaintenanceWindowExecutionsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowExecutionsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowExecutionTaskInvocationsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowExecutionTaskInvocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowExecutionTaskInvocations\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowExecutionTaskInvocationsCommand\").f(void 0, DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowExecutionTaskInvocationsCommand).de(de_DescribeMaintenanceWindowExecutionTaskInvocationsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowExecutionTaskInvocationsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowExecutionTasksCommand.ts\n\n\n\nvar DescribeMaintenanceWindowExecutionTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowExecutionTasks\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowExecutionTasksCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowExecutionTasksCommand).de(de_DescribeMaintenanceWindowExecutionTasksCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowExecutionTasksCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowScheduleCommand.ts\n\n\n\nvar DescribeMaintenanceWindowScheduleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowSchedule\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowScheduleCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowScheduleCommand).de(de_DescribeMaintenanceWindowScheduleCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowScheduleCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindows\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowsCommand\").f(void 0, DescribeMaintenanceWindowsResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowsCommand).de(de_DescribeMaintenanceWindowsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowsForTargetCommand.ts\n\n\n\nvar DescribeMaintenanceWindowsForTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowsForTarget\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowsForTargetCommand\").f(void 0, void 0).ser(se_DescribeMaintenanceWindowsForTargetCommand).de(de_DescribeMaintenanceWindowsForTargetCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowsForTargetCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowTargetsCommand.ts\n\n\n\nvar DescribeMaintenanceWindowTargetsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowTargets\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowTargetsCommand\").f(void 0, DescribeMaintenanceWindowTargetsResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowTargetsCommand).de(de_DescribeMaintenanceWindowTargetsCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowTargetsCommand\");\n }\n};\n\n// src/commands/DescribeMaintenanceWindowTasksCommand.ts\n\n\n\nvar DescribeMaintenanceWindowTasksCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeMaintenanceWindowTasks\", {}).n(\"SSMClient\", \"DescribeMaintenanceWindowTasksCommand\").f(void 0, DescribeMaintenanceWindowTasksResultFilterSensitiveLog).ser(se_DescribeMaintenanceWindowTasksCommand).de(de_DescribeMaintenanceWindowTasksCommand).build() {\n static {\n __name(this, \"DescribeMaintenanceWindowTasksCommand\");\n }\n};\n\n// src/commands/DescribeOpsItemsCommand.ts\n\n\n\nvar DescribeOpsItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeOpsItems\", {}).n(\"SSMClient\", \"DescribeOpsItemsCommand\").f(void 0, void 0).ser(se_DescribeOpsItemsCommand).de(de_DescribeOpsItemsCommand).build() {\n static {\n __name(this, \"DescribeOpsItemsCommand\");\n }\n};\n\n// src/commands/DescribeParametersCommand.ts\n\n\n\nvar DescribeParametersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeParameters\", {}).n(\"SSMClient\", \"DescribeParametersCommand\").f(void 0, void 0).ser(se_DescribeParametersCommand).de(de_DescribeParametersCommand).build() {\n static {\n __name(this, \"DescribeParametersCommand\");\n }\n};\n\n// src/commands/DescribePatchBaselinesCommand.ts\n\n\n\nvar DescribePatchBaselinesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchBaselines\", {}).n(\"SSMClient\", \"DescribePatchBaselinesCommand\").f(void 0, void 0).ser(se_DescribePatchBaselinesCommand).de(de_DescribePatchBaselinesCommand).build() {\n static {\n __name(this, \"DescribePatchBaselinesCommand\");\n }\n};\n\n// src/commands/DescribePatchGroupsCommand.ts\n\n\n\nvar DescribePatchGroupsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchGroups\", {}).n(\"SSMClient\", \"DescribePatchGroupsCommand\").f(void 0, void 0).ser(se_DescribePatchGroupsCommand).de(de_DescribePatchGroupsCommand).build() {\n static {\n __name(this, \"DescribePatchGroupsCommand\");\n }\n};\n\n// src/commands/DescribePatchGroupStateCommand.ts\n\n\n\nvar DescribePatchGroupStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchGroupState\", {}).n(\"SSMClient\", \"DescribePatchGroupStateCommand\").f(void 0, void 0).ser(se_DescribePatchGroupStateCommand).de(de_DescribePatchGroupStateCommand).build() {\n static {\n __name(this, \"DescribePatchGroupStateCommand\");\n }\n};\n\n// src/commands/DescribePatchPropertiesCommand.ts\n\n\n\nvar DescribePatchPropertiesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribePatchProperties\", {}).n(\"SSMClient\", \"DescribePatchPropertiesCommand\").f(void 0, void 0).ser(se_DescribePatchPropertiesCommand).de(de_DescribePatchPropertiesCommand).build() {\n static {\n __name(this, \"DescribePatchPropertiesCommand\");\n }\n};\n\n// src/commands/DescribeSessionsCommand.ts\n\n\n\nvar DescribeSessionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DescribeSessions\", {}).n(\"SSMClient\", \"DescribeSessionsCommand\").f(void 0, void 0).ser(se_DescribeSessionsCommand).de(de_DescribeSessionsCommand).build() {\n static {\n __name(this, \"DescribeSessionsCommand\");\n }\n};\n\n// src/commands/DisassociateOpsItemRelatedItemCommand.ts\n\n\n\nvar DisassociateOpsItemRelatedItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"DisassociateOpsItemRelatedItem\", {}).n(\"SSMClient\", \"DisassociateOpsItemRelatedItemCommand\").f(void 0, void 0).ser(se_DisassociateOpsItemRelatedItemCommand).de(de_DisassociateOpsItemRelatedItemCommand).build() {\n static {\n __name(this, \"DisassociateOpsItemRelatedItemCommand\");\n }\n};\n\n// src/commands/GetAccessTokenCommand.ts\n\n\n\nvar GetAccessTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetAccessToken\", {}).n(\"SSMClient\", \"GetAccessTokenCommand\").f(void 0, GetAccessTokenResponseFilterSensitiveLog).ser(se_GetAccessTokenCommand).de(de_GetAccessTokenCommand).build() {\n static {\n __name(this, \"GetAccessTokenCommand\");\n }\n};\n\n// src/commands/GetAutomationExecutionCommand.ts\n\n\n\nvar GetAutomationExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetAutomationExecution\", {}).n(\"SSMClient\", \"GetAutomationExecutionCommand\").f(void 0, void 0).ser(se_GetAutomationExecutionCommand).de(de_GetAutomationExecutionCommand).build() {\n static {\n __name(this, \"GetAutomationExecutionCommand\");\n }\n};\n\n// src/commands/GetCalendarStateCommand.ts\n\n\n\nvar GetCalendarStateCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetCalendarState\", {}).n(\"SSMClient\", \"GetCalendarStateCommand\").f(void 0, void 0).ser(se_GetCalendarStateCommand).de(de_GetCalendarStateCommand).build() {\n static {\n __name(this, \"GetCalendarStateCommand\");\n }\n};\n\n// src/commands/GetCommandInvocationCommand.ts\n\n\n\nvar GetCommandInvocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetCommandInvocation\", {}).n(\"SSMClient\", \"GetCommandInvocationCommand\").f(void 0, void 0).ser(se_GetCommandInvocationCommand).de(de_GetCommandInvocationCommand).build() {\n static {\n __name(this, \"GetCommandInvocationCommand\");\n }\n};\n\n// src/commands/GetConnectionStatusCommand.ts\n\n\n\nvar GetConnectionStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetConnectionStatus\", {}).n(\"SSMClient\", \"GetConnectionStatusCommand\").f(void 0, void 0).ser(se_GetConnectionStatusCommand).de(de_GetConnectionStatusCommand).build() {\n static {\n __name(this, \"GetConnectionStatusCommand\");\n }\n};\n\n// src/commands/GetDefaultPatchBaselineCommand.ts\n\n\n\nvar GetDefaultPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetDefaultPatchBaseline\", {}).n(\"SSMClient\", \"GetDefaultPatchBaselineCommand\").f(void 0, void 0).ser(se_GetDefaultPatchBaselineCommand).de(de_GetDefaultPatchBaselineCommand).build() {\n static {\n __name(this, \"GetDefaultPatchBaselineCommand\");\n }\n};\n\n// src/commands/GetDeployablePatchSnapshotForInstanceCommand.ts\n\n\n\nvar GetDeployablePatchSnapshotForInstanceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetDeployablePatchSnapshotForInstance\", {}).n(\"SSMClient\", \"GetDeployablePatchSnapshotForInstanceCommand\").f(GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog, void 0).ser(se_GetDeployablePatchSnapshotForInstanceCommand).de(de_GetDeployablePatchSnapshotForInstanceCommand).build() {\n static {\n __name(this, \"GetDeployablePatchSnapshotForInstanceCommand\");\n }\n};\n\n// src/commands/GetDocumentCommand.ts\n\n\n\nvar GetDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetDocument\", {}).n(\"SSMClient\", \"GetDocumentCommand\").f(void 0, void 0).ser(se_GetDocumentCommand).de(de_GetDocumentCommand).build() {\n static {\n __name(this, \"GetDocumentCommand\");\n }\n};\n\n// src/commands/GetExecutionPreviewCommand.ts\n\n\n\nvar GetExecutionPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetExecutionPreview\", {}).n(\"SSMClient\", \"GetExecutionPreviewCommand\").f(void 0, void 0).ser(se_GetExecutionPreviewCommand).de(de_GetExecutionPreviewCommand).build() {\n static {\n __name(this, \"GetExecutionPreviewCommand\");\n }\n};\n\n// src/commands/GetInventoryCommand.ts\n\n\n\nvar GetInventoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetInventory\", {}).n(\"SSMClient\", \"GetInventoryCommand\").f(void 0, void 0).ser(se_GetInventoryCommand).de(de_GetInventoryCommand).build() {\n static {\n __name(this, \"GetInventoryCommand\");\n }\n};\n\n// src/commands/GetInventorySchemaCommand.ts\n\n\n\nvar GetInventorySchemaCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetInventorySchema\", {}).n(\"SSMClient\", \"GetInventorySchemaCommand\").f(void 0, void 0).ser(se_GetInventorySchemaCommand).de(de_GetInventorySchemaCommand).build() {\n static {\n __name(this, \"GetInventorySchemaCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowCommand.ts\n\n\n\nvar GetMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindow\", {}).n(\"SSMClient\", \"GetMaintenanceWindowCommand\").f(void 0, GetMaintenanceWindowResultFilterSensitiveLog).ser(se_GetMaintenanceWindowCommand).de(de_GetMaintenanceWindowCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowExecutionCommand.ts\n\n\n\nvar GetMaintenanceWindowExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowExecution\", {}).n(\"SSMClient\", \"GetMaintenanceWindowExecutionCommand\").f(void 0, void 0).ser(se_GetMaintenanceWindowExecutionCommand).de(de_GetMaintenanceWindowExecutionCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowExecutionCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowExecutionTaskCommand.ts\n\n\n\nvar GetMaintenanceWindowExecutionTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowExecutionTask\", {}).n(\"SSMClient\", \"GetMaintenanceWindowExecutionTaskCommand\").f(void 0, GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog).ser(se_GetMaintenanceWindowExecutionTaskCommand).de(de_GetMaintenanceWindowExecutionTaskCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowExecutionTaskCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowExecutionTaskInvocationCommand.ts\n\n\n\nvar GetMaintenanceWindowExecutionTaskInvocationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowExecutionTaskInvocation\", {}).n(\"SSMClient\", \"GetMaintenanceWindowExecutionTaskInvocationCommand\").f(void 0, GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog).ser(se_GetMaintenanceWindowExecutionTaskInvocationCommand).de(de_GetMaintenanceWindowExecutionTaskInvocationCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowExecutionTaskInvocationCommand\");\n }\n};\n\n// src/commands/GetMaintenanceWindowTaskCommand.ts\n\n\n\nvar GetMaintenanceWindowTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetMaintenanceWindowTask\", {}).n(\"SSMClient\", \"GetMaintenanceWindowTaskCommand\").f(void 0, GetMaintenanceWindowTaskResultFilterSensitiveLog).ser(se_GetMaintenanceWindowTaskCommand).de(de_GetMaintenanceWindowTaskCommand).build() {\n static {\n __name(this, \"GetMaintenanceWindowTaskCommand\");\n }\n};\n\n// src/commands/GetOpsItemCommand.ts\n\n\n\nvar GetOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetOpsItem\", {}).n(\"SSMClient\", \"GetOpsItemCommand\").f(void 0, void 0).ser(se_GetOpsItemCommand).de(de_GetOpsItemCommand).build() {\n static {\n __name(this, \"GetOpsItemCommand\");\n }\n};\n\n// src/commands/GetOpsMetadataCommand.ts\n\n\n\nvar GetOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetOpsMetadata\", {}).n(\"SSMClient\", \"GetOpsMetadataCommand\").f(void 0, void 0).ser(se_GetOpsMetadataCommand).de(de_GetOpsMetadataCommand).build() {\n static {\n __name(this, \"GetOpsMetadataCommand\");\n }\n};\n\n// src/commands/GetOpsSummaryCommand.ts\n\n\n\nvar GetOpsSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetOpsSummary\", {}).n(\"SSMClient\", \"GetOpsSummaryCommand\").f(void 0, void 0).ser(se_GetOpsSummaryCommand).de(de_GetOpsSummaryCommand).build() {\n static {\n __name(this, \"GetOpsSummaryCommand\");\n }\n};\n\n// src/commands/GetParameterCommand.ts\n\n\n\nvar GetParameterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParameter\", {}).n(\"SSMClient\", \"GetParameterCommand\").f(void 0, GetParameterResultFilterSensitiveLog).ser(se_GetParameterCommand).de(de_GetParameterCommand).build() {\n static {\n __name(this, \"GetParameterCommand\");\n }\n};\n\n// src/commands/GetParameterHistoryCommand.ts\n\n\n\nvar GetParameterHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParameterHistory\", {}).n(\"SSMClient\", \"GetParameterHistoryCommand\").f(void 0, GetParameterHistoryResultFilterSensitiveLog).ser(se_GetParameterHistoryCommand).de(de_GetParameterHistoryCommand).build() {\n static {\n __name(this, \"GetParameterHistoryCommand\");\n }\n};\n\n// src/commands/GetParametersByPathCommand.ts\n\n\n\nvar GetParametersByPathCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParametersByPath\", {}).n(\"SSMClient\", \"GetParametersByPathCommand\").f(void 0, GetParametersByPathResultFilterSensitiveLog).ser(se_GetParametersByPathCommand).de(de_GetParametersByPathCommand).build() {\n static {\n __name(this, \"GetParametersByPathCommand\");\n }\n};\n\n// src/commands/GetParametersCommand.ts\n\n\n\nvar GetParametersCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetParameters\", {}).n(\"SSMClient\", \"GetParametersCommand\").f(void 0, GetParametersResultFilterSensitiveLog).ser(se_GetParametersCommand).de(de_GetParametersCommand).build() {\n static {\n __name(this, \"GetParametersCommand\");\n }\n};\n\n// src/commands/GetPatchBaselineCommand.ts\n\n\n\nvar GetPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetPatchBaseline\", {}).n(\"SSMClient\", \"GetPatchBaselineCommand\").f(void 0, GetPatchBaselineResultFilterSensitiveLog).ser(se_GetPatchBaselineCommand).de(de_GetPatchBaselineCommand).build() {\n static {\n __name(this, \"GetPatchBaselineCommand\");\n }\n};\n\n// src/commands/GetPatchBaselineForPatchGroupCommand.ts\n\n\n\nvar GetPatchBaselineForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetPatchBaselineForPatchGroup\", {}).n(\"SSMClient\", \"GetPatchBaselineForPatchGroupCommand\").f(void 0, void 0).ser(se_GetPatchBaselineForPatchGroupCommand).de(de_GetPatchBaselineForPatchGroupCommand).build() {\n static {\n __name(this, \"GetPatchBaselineForPatchGroupCommand\");\n }\n};\n\n// src/commands/GetResourcePoliciesCommand.ts\n\n\n\nvar GetResourcePoliciesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetResourcePolicies\", {}).n(\"SSMClient\", \"GetResourcePoliciesCommand\").f(void 0, void 0).ser(se_GetResourcePoliciesCommand).de(de_GetResourcePoliciesCommand).build() {\n static {\n __name(this, \"GetResourcePoliciesCommand\");\n }\n};\n\n// src/commands/GetServiceSettingCommand.ts\n\n\n\nvar GetServiceSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"GetServiceSetting\", {}).n(\"SSMClient\", \"GetServiceSettingCommand\").f(void 0, void 0).ser(se_GetServiceSettingCommand).de(de_GetServiceSettingCommand).build() {\n static {\n __name(this, \"GetServiceSettingCommand\");\n }\n};\n\n// src/commands/LabelParameterVersionCommand.ts\n\n\n\nvar LabelParameterVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"LabelParameterVersion\", {}).n(\"SSMClient\", \"LabelParameterVersionCommand\").f(void 0, void 0).ser(se_LabelParameterVersionCommand).de(de_LabelParameterVersionCommand).build() {\n static {\n __name(this, \"LabelParameterVersionCommand\");\n }\n};\n\n// src/commands/ListAssociationsCommand.ts\n\n\n\nvar ListAssociationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListAssociations\", {}).n(\"SSMClient\", \"ListAssociationsCommand\").f(void 0, void 0).ser(se_ListAssociationsCommand).de(de_ListAssociationsCommand).build() {\n static {\n __name(this, \"ListAssociationsCommand\");\n }\n};\n\n// src/commands/ListAssociationVersionsCommand.ts\n\n\n\nvar ListAssociationVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListAssociationVersions\", {}).n(\"SSMClient\", \"ListAssociationVersionsCommand\").f(void 0, ListAssociationVersionsResultFilterSensitiveLog).ser(se_ListAssociationVersionsCommand).de(de_ListAssociationVersionsCommand).build() {\n static {\n __name(this, \"ListAssociationVersionsCommand\");\n }\n};\n\n// src/commands/ListCommandInvocationsCommand.ts\n\n\n\nvar ListCommandInvocationsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListCommandInvocations\", {}).n(\"SSMClient\", \"ListCommandInvocationsCommand\").f(void 0, void 0).ser(se_ListCommandInvocationsCommand).de(de_ListCommandInvocationsCommand).build() {\n static {\n __name(this, \"ListCommandInvocationsCommand\");\n }\n};\n\n// src/commands/ListCommandsCommand.ts\n\n\n\nvar ListCommandsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListCommands\", {}).n(\"SSMClient\", \"ListCommandsCommand\").f(void 0, ListCommandsResultFilterSensitiveLog).ser(se_ListCommandsCommand).de(de_ListCommandsCommand).build() {\n static {\n __name(this, \"ListCommandsCommand\");\n }\n};\n\n// src/commands/ListComplianceItemsCommand.ts\n\n\n\nvar ListComplianceItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListComplianceItems\", {}).n(\"SSMClient\", \"ListComplianceItemsCommand\").f(void 0, void 0).ser(se_ListComplianceItemsCommand).de(de_ListComplianceItemsCommand).build() {\n static {\n __name(this, \"ListComplianceItemsCommand\");\n }\n};\n\n// src/commands/ListComplianceSummariesCommand.ts\n\n\n\nvar ListComplianceSummariesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListComplianceSummaries\", {}).n(\"SSMClient\", \"ListComplianceSummariesCommand\").f(void 0, void 0).ser(se_ListComplianceSummariesCommand).de(de_ListComplianceSummariesCommand).build() {\n static {\n __name(this, \"ListComplianceSummariesCommand\");\n }\n};\n\n// src/commands/ListDocumentMetadataHistoryCommand.ts\n\n\n\nvar ListDocumentMetadataHistoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListDocumentMetadataHistory\", {}).n(\"SSMClient\", \"ListDocumentMetadataHistoryCommand\").f(void 0, void 0).ser(se_ListDocumentMetadataHistoryCommand).de(de_ListDocumentMetadataHistoryCommand).build() {\n static {\n __name(this, \"ListDocumentMetadataHistoryCommand\");\n }\n};\n\n// src/commands/ListDocumentsCommand.ts\n\n\n\nvar ListDocumentsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListDocuments\", {}).n(\"SSMClient\", \"ListDocumentsCommand\").f(void 0, void 0).ser(se_ListDocumentsCommand).de(de_ListDocumentsCommand).build() {\n static {\n __name(this, \"ListDocumentsCommand\");\n }\n};\n\n// src/commands/ListDocumentVersionsCommand.ts\n\n\n\nvar ListDocumentVersionsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListDocumentVersions\", {}).n(\"SSMClient\", \"ListDocumentVersionsCommand\").f(void 0, void 0).ser(se_ListDocumentVersionsCommand).de(de_ListDocumentVersionsCommand).build() {\n static {\n __name(this, \"ListDocumentVersionsCommand\");\n }\n};\n\n// src/commands/ListInventoryEntriesCommand.ts\n\n\n\nvar ListInventoryEntriesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListInventoryEntries\", {}).n(\"SSMClient\", \"ListInventoryEntriesCommand\").f(void 0, void 0).ser(se_ListInventoryEntriesCommand).de(de_ListInventoryEntriesCommand).build() {\n static {\n __name(this, \"ListInventoryEntriesCommand\");\n }\n};\n\n// src/commands/ListNodesCommand.ts\n\n\n\nvar ListNodesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListNodes\", {}).n(\"SSMClient\", \"ListNodesCommand\").f(void 0, ListNodesResultFilterSensitiveLog).ser(se_ListNodesCommand).de(de_ListNodesCommand).build() {\n static {\n __name(this, \"ListNodesCommand\");\n }\n};\n\n// src/commands/ListNodesSummaryCommand.ts\n\n\n\nvar ListNodesSummaryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListNodesSummary\", {}).n(\"SSMClient\", \"ListNodesSummaryCommand\").f(void 0, void 0).ser(se_ListNodesSummaryCommand).de(de_ListNodesSummaryCommand).build() {\n static {\n __name(this, \"ListNodesSummaryCommand\");\n }\n};\n\n// src/commands/ListOpsItemEventsCommand.ts\n\n\n\nvar ListOpsItemEventsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListOpsItemEvents\", {}).n(\"SSMClient\", \"ListOpsItemEventsCommand\").f(void 0, void 0).ser(se_ListOpsItemEventsCommand).de(de_ListOpsItemEventsCommand).build() {\n static {\n __name(this, \"ListOpsItemEventsCommand\");\n }\n};\n\n// src/commands/ListOpsItemRelatedItemsCommand.ts\n\n\n\nvar ListOpsItemRelatedItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListOpsItemRelatedItems\", {}).n(\"SSMClient\", \"ListOpsItemRelatedItemsCommand\").f(void 0, void 0).ser(se_ListOpsItemRelatedItemsCommand).de(de_ListOpsItemRelatedItemsCommand).build() {\n static {\n __name(this, \"ListOpsItemRelatedItemsCommand\");\n }\n};\n\n// src/commands/ListOpsMetadataCommand.ts\n\n\n\nvar ListOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListOpsMetadata\", {}).n(\"SSMClient\", \"ListOpsMetadataCommand\").f(void 0, void 0).ser(se_ListOpsMetadataCommand).de(de_ListOpsMetadataCommand).build() {\n static {\n __name(this, \"ListOpsMetadataCommand\");\n }\n};\n\n// src/commands/ListResourceComplianceSummariesCommand.ts\n\n\n\nvar ListResourceComplianceSummariesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListResourceComplianceSummaries\", {}).n(\"SSMClient\", \"ListResourceComplianceSummariesCommand\").f(void 0, void 0).ser(se_ListResourceComplianceSummariesCommand).de(de_ListResourceComplianceSummariesCommand).build() {\n static {\n __name(this, \"ListResourceComplianceSummariesCommand\");\n }\n};\n\n// src/commands/ListResourceDataSyncCommand.ts\n\n\n\nvar ListResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListResourceDataSync\", {}).n(\"SSMClient\", \"ListResourceDataSyncCommand\").f(void 0, void 0).ser(se_ListResourceDataSyncCommand).de(de_ListResourceDataSyncCommand).build() {\n static {\n __name(this, \"ListResourceDataSyncCommand\");\n }\n};\n\n// src/commands/ListTagsForResourceCommand.ts\n\n\n\nvar ListTagsForResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ListTagsForResource\", {}).n(\"SSMClient\", \"ListTagsForResourceCommand\").f(void 0, void 0).ser(se_ListTagsForResourceCommand).de(de_ListTagsForResourceCommand).build() {\n static {\n __name(this, \"ListTagsForResourceCommand\");\n }\n};\n\n// src/commands/ModifyDocumentPermissionCommand.ts\n\n\n\nvar ModifyDocumentPermissionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ModifyDocumentPermission\", {}).n(\"SSMClient\", \"ModifyDocumentPermissionCommand\").f(void 0, void 0).ser(se_ModifyDocumentPermissionCommand).de(de_ModifyDocumentPermissionCommand).build() {\n static {\n __name(this, \"ModifyDocumentPermissionCommand\");\n }\n};\n\n// src/commands/PutComplianceItemsCommand.ts\n\n\n\nvar PutComplianceItemsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutComplianceItems\", {}).n(\"SSMClient\", \"PutComplianceItemsCommand\").f(void 0, void 0).ser(se_PutComplianceItemsCommand).de(de_PutComplianceItemsCommand).build() {\n static {\n __name(this, \"PutComplianceItemsCommand\");\n }\n};\n\n// src/commands/PutInventoryCommand.ts\n\n\n\nvar PutInventoryCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutInventory\", {}).n(\"SSMClient\", \"PutInventoryCommand\").f(void 0, void 0).ser(se_PutInventoryCommand).de(de_PutInventoryCommand).build() {\n static {\n __name(this, \"PutInventoryCommand\");\n }\n};\n\n// src/commands/PutParameterCommand.ts\n\n\n\nvar PutParameterCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutParameter\", {}).n(\"SSMClient\", \"PutParameterCommand\").f(PutParameterRequestFilterSensitiveLog, void 0).ser(se_PutParameterCommand).de(de_PutParameterCommand).build() {\n static {\n __name(this, \"PutParameterCommand\");\n }\n};\n\n// src/commands/PutResourcePolicyCommand.ts\n\n\n\nvar PutResourcePolicyCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"PutResourcePolicy\", {}).n(\"SSMClient\", \"PutResourcePolicyCommand\").f(void 0, void 0).ser(se_PutResourcePolicyCommand).de(de_PutResourcePolicyCommand).build() {\n static {\n __name(this, \"PutResourcePolicyCommand\");\n }\n};\n\n// src/commands/RegisterDefaultPatchBaselineCommand.ts\n\n\n\nvar RegisterDefaultPatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterDefaultPatchBaseline\", {}).n(\"SSMClient\", \"RegisterDefaultPatchBaselineCommand\").f(void 0, void 0).ser(se_RegisterDefaultPatchBaselineCommand).de(de_RegisterDefaultPatchBaselineCommand).build() {\n static {\n __name(this, \"RegisterDefaultPatchBaselineCommand\");\n }\n};\n\n// src/commands/RegisterPatchBaselineForPatchGroupCommand.ts\n\n\n\nvar RegisterPatchBaselineForPatchGroupCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterPatchBaselineForPatchGroup\", {}).n(\"SSMClient\", \"RegisterPatchBaselineForPatchGroupCommand\").f(void 0, void 0).ser(se_RegisterPatchBaselineForPatchGroupCommand).de(de_RegisterPatchBaselineForPatchGroupCommand).build() {\n static {\n __name(this, \"RegisterPatchBaselineForPatchGroupCommand\");\n }\n};\n\n// src/commands/RegisterTargetWithMaintenanceWindowCommand.ts\n\n\n\nvar RegisterTargetWithMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterTargetWithMaintenanceWindow\", {}).n(\"SSMClient\", \"RegisterTargetWithMaintenanceWindowCommand\").f(RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog, void 0).ser(se_RegisterTargetWithMaintenanceWindowCommand).de(de_RegisterTargetWithMaintenanceWindowCommand).build() {\n static {\n __name(this, \"RegisterTargetWithMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/RegisterTaskWithMaintenanceWindowCommand.ts\n\n\n\nvar RegisterTaskWithMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RegisterTaskWithMaintenanceWindow\", {}).n(\"SSMClient\", \"RegisterTaskWithMaintenanceWindowCommand\").f(RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog, void 0).ser(se_RegisterTaskWithMaintenanceWindowCommand).de(de_RegisterTaskWithMaintenanceWindowCommand).build() {\n static {\n __name(this, \"RegisterTaskWithMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/RemoveTagsFromResourceCommand.ts\n\n\n\nvar RemoveTagsFromResourceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"RemoveTagsFromResource\", {}).n(\"SSMClient\", \"RemoveTagsFromResourceCommand\").f(void 0, void 0).ser(se_RemoveTagsFromResourceCommand).de(de_RemoveTagsFromResourceCommand).build() {\n static {\n __name(this, \"RemoveTagsFromResourceCommand\");\n }\n};\n\n// src/commands/ResetServiceSettingCommand.ts\n\n\n\nvar ResetServiceSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ResetServiceSetting\", {}).n(\"SSMClient\", \"ResetServiceSettingCommand\").f(void 0, void 0).ser(se_ResetServiceSettingCommand).de(de_ResetServiceSettingCommand).build() {\n static {\n __name(this, \"ResetServiceSettingCommand\");\n }\n};\n\n// src/commands/ResumeSessionCommand.ts\n\n\n\nvar ResumeSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"ResumeSession\", {}).n(\"SSMClient\", \"ResumeSessionCommand\").f(void 0, void 0).ser(se_ResumeSessionCommand).de(de_ResumeSessionCommand).build() {\n static {\n __name(this, \"ResumeSessionCommand\");\n }\n};\n\n// src/commands/SendAutomationSignalCommand.ts\n\n\n\nvar SendAutomationSignalCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"SendAutomationSignal\", {}).n(\"SSMClient\", \"SendAutomationSignalCommand\").f(void 0, void 0).ser(se_SendAutomationSignalCommand).de(de_SendAutomationSignalCommand).build() {\n static {\n __name(this, \"SendAutomationSignalCommand\");\n }\n};\n\n// src/commands/SendCommandCommand.ts\n\n\n\nvar SendCommandCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"SendCommand\", {}).n(\"SSMClient\", \"SendCommandCommand\").f(SendCommandRequestFilterSensitiveLog, SendCommandResultFilterSensitiveLog).ser(se_SendCommandCommand).de(de_SendCommandCommand).build() {\n static {\n __name(this, \"SendCommandCommand\");\n }\n};\n\n// src/commands/StartAccessRequestCommand.ts\n\n\n\nvar StartAccessRequestCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartAccessRequest\", {}).n(\"SSMClient\", \"StartAccessRequestCommand\").f(void 0, void 0).ser(se_StartAccessRequestCommand).de(de_StartAccessRequestCommand).build() {\n static {\n __name(this, \"StartAccessRequestCommand\");\n }\n};\n\n// src/commands/StartAssociationsOnceCommand.ts\n\n\n\nvar StartAssociationsOnceCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartAssociationsOnce\", {}).n(\"SSMClient\", \"StartAssociationsOnceCommand\").f(void 0, void 0).ser(se_StartAssociationsOnceCommand).de(de_StartAssociationsOnceCommand).build() {\n static {\n __name(this, \"StartAssociationsOnceCommand\");\n }\n};\n\n// src/commands/StartAutomationExecutionCommand.ts\n\n\n\nvar StartAutomationExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartAutomationExecution\", {}).n(\"SSMClient\", \"StartAutomationExecutionCommand\").f(void 0, void 0).ser(se_StartAutomationExecutionCommand).de(de_StartAutomationExecutionCommand).build() {\n static {\n __name(this, \"StartAutomationExecutionCommand\");\n }\n};\n\n// src/commands/StartChangeRequestExecutionCommand.ts\n\n\n\nvar StartChangeRequestExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartChangeRequestExecution\", {}).n(\"SSMClient\", \"StartChangeRequestExecutionCommand\").f(void 0, void 0).ser(se_StartChangeRequestExecutionCommand).de(de_StartChangeRequestExecutionCommand).build() {\n static {\n __name(this, \"StartChangeRequestExecutionCommand\");\n }\n};\n\n// src/commands/StartExecutionPreviewCommand.ts\n\n\n\nvar StartExecutionPreviewCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartExecutionPreview\", {}).n(\"SSMClient\", \"StartExecutionPreviewCommand\").f(void 0, void 0).ser(se_StartExecutionPreviewCommand).de(de_StartExecutionPreviewCommand).build() {\n static {\n __name(this, \"StartExecutionPreviewCommand\");\n }\n};\n\n// src/commands/StartSessionCommand.ts\n\n\n\nvar StartSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StartSession\", {}).n(\"SSMClient\", \"StartSessionCommand\").f(void 0, void 0).ser(se_StartSessionCommand).de(de_StartSessionCommand).build() {\n static {\n __name(this, \"StartSessionCommand\");\n }\n};\n\n// src/commands/StopAutomationExecutionCommand.ts\n\n\n\nvar StopAutomationExecutionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"StopAutomationExecution\", {}).n(\"SSMClient\", \"StopAutomationExecutionCommand\").f(void 0, void 0).ser(se_StopAutomationExecutionCommand).de(de_StopAutomationExecutionCommand).build() {\n static {\n __name(this, \"StopAutomationExecutionCommand\");\n }\n};\n\n// src/commands/TerminateSessionCommand.ts\n\n\n\nvar TerminateSessionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"TerminateSession\", {}).n(\"SSMClient\", \"TerminateSessionCommand\").f(void 0, void 0).ser(se_TerminateSessionCommand).de(de_TerminateSessionCommand).build() {\n static {\n __name(this, \"TerminateSessionCommand\");\n }\n};\n\n// src/commands/UnlabelParameterVersionCommand.ts\n\n\n\nvar UnlabelParameterVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UnlabelParameterVersion\", {}).n(\"SSMClient\", \"UnlabelParameterVersionCommand\").f(void 0, void 0).ser(se_UnlabelParameterVersionCommand).de(de_UnlabelParameterVersionCommand).build() {\n static {\n __name(this, \"UnlabelParameterVersionCommand\");\n }\n};\n\n// src/commands/UpdateAssociationCommand.ts\n\n\n\nvar UpdateAssociationCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateAssociation\", {}).n(\"SSMClient\", \"UpdateAssociationCommand\").f(UpdateAssociationRequestFilterSensitiveLog, UpdateAssociationResultFilterSensitiveLog).ser(se_UpdateAssociationCommand).de(de_UpdateAssociationCommand).build() {\n static {\n __name(this, \"UpdateAssociationCommand\");\n }\n};\n\n// src/commands/UpdateAssociationStatusCommand.ts\n\n\n\nvar UpdateAssociationStatusCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateAssociationStatus\", {}).n(\"SSMClient\", \"UpdateAssociationStatusCommand\").f(void 0, UpdateAssociationStatusResultFilterSensitiveLog).ser(se_UpdateAssociationStatusCommand).de(de_UpdateAssociationStatusCommand).build() {\n static {\n __name(this, \"UpdateAssociationStatusCommand\");\n }\n};\n\n// src/commands/UpdateDocumentCommand.ts\n\n\n\nvar UpdateDocumentCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateDocument\", {}).n(\"SSMClient\", \"UpdateDocumentCommand\").f(void 0, void 0).ser(se_UpdateDocumentCommand).de(de_UpdateDocumentCommand).build() {\n static {\n __name(this, \"UpdateDocumentCommand\");\n }\n};\n\n// src/commands/UpdateDocumentDefaultVersionCommand.ts\n\n\n\nvar UpdateDocumentDefaultVersionCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateDocumentDefaultVersion\", {}).n(\"SSMClient\", \"UpdateDocumentDefaultVersionCommand\").f(void 0, void 0).ser(se_UpdateDocumentDefaultVersionCommand).de(de_UpdateDocumentDefaultVersionCommand).build() {\n static {\n __name(this, \"UpdateDocumentDefaultVersionCommand\");\n }\n};\n\n// src/commands/UpdateDocumentMetadataCommand.ts\n\n\n\nvar UpdateDocumentMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateDocumentMetadata\", {}).n(\"SSMClient\", \"UpdateDocumentMetadataCommand\").f(void 0, void 0).ser(se_UpdateDocumentMetadataCommand).de(de_UpdateDocumentMetadataCommand).build() {\n static {\n __name(this, \"UpdateDocumentMetadataCommand\");\n }\n};\n\n// src/commands/UpdateMaintenanceWindowCommand.ts\n\n\n\nvar UpdateMaintenanceWindowCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateMaintenanceWindow\", {}).n(\"SSMClient\", \"UpdateMaintenanceWindowCommand\").f(UpdateMaintenanceWindowRequestFilterSensitiveLog, UpdateMaintenanceWindowResultFilterSensitiveLog).ser(se_UpdateMaintenanceWindowCommand).de(de_UpdateMaintenanceWindowCommand).build() {\n static {\n __name(this, \"UpdateMaintenanceWindowCommand\");\n }\n};\n\n// src/commands/UpdateMaintenanceWindowTargetCommand.ts\n\n\n\nvar UpdateMaintenanceWindowTargetCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateMaintenanceWindowTarget\", {}).n(\"SSMClient\", \"UpdateMaintenanceWindowTargetCommand\").f(UpdateMaintenanceWindowTargetRequestFilterSensitiveLog, UpdateMaintenanceWindowTargetResultFilterSensitiveLog).ser(se_UpdateMaintenanceWindowTargetCommand).de(de_UpdateMaintenanceWindowTargetCommand).build() {\n static {\n __name(this, \"UpdateMaintenanceWindowTargetCommand\");\n }\n};\n\n// src/commands/UpdateMaintenanceWindowTaskCommand.ts\n\n\n\nvar UpdateMaintenanceWindowTaskCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateMaintenanceWindowTask\", {}).n(\"SSMClient\", \"UpdateMaintenanceWindowTaskCommand\").f(UpdateMaintenanceWindowTaskRequestFilterSensitiveLog, UpdateMaintenanceWindowTaskResultFilterSensitiveLog).ser(se_UpdateMaintenanceWindowTaskCommand).de(de_UpdateMaintenanceWindowTaskCommand).build() {\n static {\n __name(this, \"UpdateMaintenanceWindowTaskCommand\");\n }\n};\n\n// src/commands/UpdateManagedInstanceRoleCommand.ts\n\n\n\nvar UpdateManagedInstanceRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateManagedInstanceRole\", {}).n(\"SSMClient\", \"UpdateManagedInstanceRoleCommand\").f(void 0, void 0).ser(se_UpdateManagedInstanceRoleCommand).de(de_UpdateManagedInstanceRoleCommand).build() {\n static {\n __name(this, \"UpdateManagedInstanceRoleCommand\");\n }\n};\n\n// src/commands/UpdateOpsItemCommand.ts\n\n\n\nvar UpdateOpsItemCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateOpsItem\", {}).n(\"SSMClient\", \"UpdateOpsItemCommand\").f(void 0, void 0).ser(se_UpdateOpsItemCommand).de(de_UpdateOpsItemCommand).build() {\n static {\n __name(this, \"UpdateOpsItemCommand\");\n }\n};\n\n// src/commands/UpdateOpsMetadataCommand.ts\n\n\n\nvar UpdateOpsMetadataCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateOpsMetadata\", {}).n(\"SSMClient\", \"UpdateOpsMetadataCommand\").f(void 0, void 0).ser(se_UpdateOpsMetadataCommand).de(de_UpdateOpsMetadataCommand).build() {\n static {\n __name(this, \"UpdateOpsMetadataCommand\");\n }\n};\n\n// src/commands/UpdatePatchBaselineCommand.ts\n\n\n\nvar UpdatePatchBaselineCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdatePatchBaseline\", {}).n(\"SSMClient\", \"UpdatePatchBaselineCommand\").f(UpdatePatchBaselineRequestFilterSensitiveLog, UpdatePatchBaselineResultFilterSensitiveLog).ser(se_UpdatePatchBaselineCommand).de(de_UpdatePatchBaselineCommand).build() {\n static {\n __name(this, \"UpdatePatchBaselineCommand\");\n }\n};\n\n// src/commands/UpdateResourceDataSyncCommand.ts\n\n\n\nvar UpdateResourceDataSyncCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateResourceDataSync\", {}).n(\"SSMClient\", \"UpdateResourceDataSyncCommand\").f(void 0, void 0).ser(se_UpdateResourceDataSyncCommand).de(de_UpdateResourceDataSyncCommand).build() {\n static {\n __name(this, \"UpdateResourceDataSyncCommand\");\n }\n};\n\n// src/commands/UpdateServiceSettingCommand.ts\n\n\n\nvar UpdateServiceSettingCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command3, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command3.getEndpointParameterInstructions())\n ];\n}).s(\"AmazonSSM\", \"UpdateServiceSetting\", {}).n(\"SSMClient\", \"UpdateServiceSettingCommand\").f(void 0, void 0).ser(se_UpdateServiceSettingCommand).de(de_UpdateServiceSettingCommand).build() {\n static {\n __name(this, \"UpdateServiceSettingCommand\");\n }\n};\n\n// src/SSM.ts\nvar commands = {\n AddTagsToResourceCommand,\n AssociateOpsItemRelatedItemCommand,\n CancelCommandCommand,\n CancelMaintenanceWindowExecutionCommand,\n CreateActivationCommand,\n CreateAssociationCommand,\n CreateAssociationBatchCommand,\n CreateDocumentCommand,\n CreateMaintenanceWindowCommand,\n CreateOpsItemCommand,\n CreateOpsMetadataCommand,\n CreatePatchBaselineCommand,\n CreateResourceDataSyncCommand,\n DeleteActivationCommand,\n DeleteAssociationCommand,\n DeleteDocumentCommand,\n DeleteInventoryCommand,\n DeleteMaintenanceWindowCommand,\n DeleteOpsItemCommand,\n DeleteOpsMetadataCommand,\n DeleteParameterCommand,\n DeleteParametersCommand,\n DeletePatchBaselineCommand,\n DeleteResourceDataSyncCommand,\n DeleteResourcePolicyCommand,\n DeregisterManagedInstanceCommand,\n DeregisterPatchBaselineForPatchGroupCommand,\n DeregisterTargetFromMaintenanceWindowCommand,\n DeregisterTaskFromMaintenanceWindowCommand,\n DescribeActivationsCommand,\n DescribeAssociationCommand,\n DescribeAssociationExecutionsCommand,\n DescribeAssociationExecutionTargetsCommand,\n DescribeAutomationExecutionsCommand,\n DescribeAutomationStepExecutionsCommand,\n DescribeAvailablePatchesCommand,\n DescribeDocumentCommand,\n DescribeDocumentPermissionCommand,\n DescribeEffectiveInstanceAssociationsCommand,\n DescribeEffectivePatchesForPatchBaselineCommand,\n DescribeInstanceAssociationsStatusCommand,\n DescribeInstanceInformationCommand,\n DescribeInstancePatchesCommand,\n DescribeInstancePatchStatesCommand,\n DescribeInstancePatchStatesForPatchGroupCommand,\n DescribeInstancePropertiesCommand,\n DescribeInventoryDeletionsCommand,\n DescribeMaintenanceWindowExecutionsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsCommand,\n DescribeMaintenanceWindowExecutionTasksCommand,\n DescribeMaintenanceWindowsCommand,\n DescribeMaintenanceWindowScheduleCommand,\n DescribeMaintenanceWindowsForTargetCommand,\n DescribeMaintenanceWindowTargetsCommand,\n DescribeMaintenanceWindowTasksCommand,\n DescribeOpsItemsCommand,\n DescribeParametersCommand,\n DescribePatchBaselinesCommand,\n DescribePatchGroupsCommand,\n DescribePatchGroupStateCommand,\n DescribePatchPropertiesCommand,\n DescribeSessionsCommand,\n DisassociateOpsItemRelatedItemCommand,\n GetAccessTokenCommand,\n GetAutomationExecutionCommand,\n GetCalendarStateCommand,\n GetCommandInvocationCommand,\n GetConnectionStatusCommand,\n GetDefaultPatchBaselineCommand,\n GetDeployablePatchSnapshotForInstanceCommand,\n GetDocumentCommand,\n GetExecutionPreviewCommand,\n GetInventoryCommand,\n GetInventorySchemaCommand,\n GetMaintenanceWindowCommand,\n GetMaintenanceWindowExecutionCommand,\n GetMaintenanceWindowExecutionTaskCommand,\n GetMaintenanceWindowExecutionTaskInvocationCommand,\n GetMaintenanceWindowTaskCommand,\n GetOpsItemCommand,\n GetOpsMetadataCommand,\n GetOpsSummaryCommand,\n GetParameterCommand,\n GetParameterHistoryCommand,\n GetParametersCommand,\n GetParametersByPathCommand,\n GetPatchBaselineCommand,\n GetPatchBaselineForPatchGroupCommand,\n GetResourcePoliciesCommand,\n GetServiceSettingCommand,\n LabelParameterVersionCommand,\n ListAssociationsCommand,\n ListAssociationVersionsCommand,\n ListCommandInvocationsCommand,\n ListCommandsCommand,\n ListComplianceItemsCommand,\n ListComplianceSummariesCommand,\n ListDocumentMetadataHistoryCommand,\n ListDocumentsCommand,\n ListDocumentVersionsCommand,\n ListInventoryEntriesCommand,\n ListNodesCommand,\n ListNodesSummaryCommand,\n ListOpsItemEventsCommand,\n ListOpsItemRelatedItemsCommand,\n ListOpsMetadataCommand,\n ListResourceComplianceSummariesCommand,\n ListResourceDataSyncCommand,\n ListTagsForResourceCommand,\n ModifyDocumentPermissionCommand,\n PutComplianceItemsCommand,\n PutInventoryCommand,\n PutParameterCommand,\n PutResourcePolicyCommand,\n RegisterDefaultPatchBaselineCommand,\n RegisterPatchBaselineForPatchGroupCommand,\n RegisterTargetWithMaintenanceWindowCommand,\n RegisterTaskWithMaintenanceWindowCommand,\n RemoveTagsFromResourceCommand,\n ResetServiceSettingCommand,\n ResumeSessionCommand,\n SendAutomationSignalCommand,\n SendCommandCommand,\n StartAccessRequestCommand,\n StartAssociationsOnceCommand,\n StartAutomationExecutionCommand,\n StartChangeRequestExecutionCommand,\n StartExecutionPreviewCommand,\n StartSessionCommand,\n StopAutomationExecutionCommand,\n TerminateSessionCommand,\n UnlabelParameterVersionCommand,\n UpdateAssociationCommand,\n UpdateAssociationStatusCommand,\n UpdateDocumentCommand,\n UpdateDocumentDefaultVersionCommand,\n UpdateDocumentMetadataCommand,\n UpdateMaintenanceWindowCommand,\n UpdateMaintenanceWindowTargetCommand,\n UpdateMaintenanceWindowTaskCommand,\n UpdateManagedInstanceRoleCommand,\n UpdateOpsItemCommand,\n UpdateOpsMetadataCommand,\n UpdatePatchBaselineCommand,\n UpdateResourceDataSyncCommand,\n UpdateServiceSettingCommand\n};\nvar SSM = class extends SSMClient {\n static {\n __name(this, \"SSM\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSM);\n\n// src/pagination/DescribeActivationsPaginator.ts\n\nvar paginateDescribeActivations = (0, import_core.createPaginator)(SSMClient, DescribeActivationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAssociationExecutionTargetsPaginator.ts\n\nvar paginateDescribeAssociationExecutionTargets = (0, import_core.createPaginator)(SSMClient, DescribeAssociationExecutionTargetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAssociationExecutionsPaginator.ts\n\nvar paginateDescribeAssociationExecutions = (0, import_core.createPaginator)(SSMClient, DescribeAssociationExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAutomationExecutionsPaginator.ts\n\nvar paginateDescribeAutomationExecutions = (0, import_core.createPaginator)(SSMClient, DescribeAutomationExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAutomationStepExecutionsPaginator.ts\n\nvar paginateDescribeAutomationStepExecutions = (0, import_core.createPaginator)(SSMClient, DescribeAutomationStepExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeAvailablePatchesPaginator.ts\n\nvar paginateDescribeAvailablePatches = (0, import_core.createPaginator)(SSMClient, DescribeAvailablePatchesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeEffectiveInstanceAssociationsPaginator.ts\n\nvar paginateDescribeEffectiveInstanceAssociations = (0, import_core.createPaginator)(SSMClient, DescribeEffectiveInstanceAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeEffectivePatchesForPatchBaselinePaginator.ts\n\nvar paginateDescribeEffectivePatchesForPatchBaseline = (0, import_core.createPaginator)(SSMClient, DescribeEffectivePatchesForPatchBaselineCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceAssociationsStatusPaginator.ts\n\nvar paginateDescribeInstanceAssociationsStatus = (0, import_core.createPaginator)(SSMClient, DescribeInstanceAssociationsStatusCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstanceInformationPaginator.ts\n\nvar paginateDescribeInstanceInformation = (0, import_core.createPaginator)(SSMClient, DescribeInstanceInformationCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePatchStatesForPatchGroupPaginator.ts\n\nvar paginateDescribeInstancePatchStatesForPatchGroup = (0, import_core.createPaginator)(SSMClient, DescribeInstancePatchStatesForPatchGroupCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePatchStatesPaginator.ts\n\nvar paginateDescribeInstancePatchStates = (0, import_core.createPaginator)(SSMClient, DescribeInstancePatchStatesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePatchesPaginator.ts\n\nvar paginateDescribeInstancePatches = (0, import_core.createPaginator)(SSMClient, DescribeInstancePatchesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInstancePropertiesPaginator.ts\n\nvar paginateDescribeInstanceProperties = (0, import_core.createPaginator)(SSMClient, DescribeInstancePropertiesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeInventoryDeletionsPaginator.ts\n\nvar paginateDescribeInventoryDeletions = (0, import_core.createPaginator)(SSMClient, DescribeInventoryDeletionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowExecutionTaskInvocationsPaginator.ts\n\nvar paginateDescribeMaintenanceWindowExecutionTaskInvocations = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowExecutionTaskInvocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowExecutionTasksPaginator.ts\n\nvar paginateDescribeMaintenanceWindowExecutionTasks = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowExecutionTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowExecutionsPaginator.ts\n\nvar paginateDescribeMaintenanceWindowExecutions = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowExecutionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowSchedulePaginator.ts\n\nvar paginateDescribeMaintenanceWindowSchedule = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowScheduleCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowTargetsPaginator.ts\n\nvar paginateDescribeMaintenanceWindowTargets = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowTargetsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowTasksPaginator.ts\n\nvar paginateDescribeMaintenanceWindowTasks = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowTasksCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowsForTargetPaginator.ts\n\nvar paginateDescribeMaintenanceWindowsForTarget = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowsForTargetCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeMaintenanceWindowsPaginator.ts\n\nvar paginateDescribeMaintenanceWindows = (0, import_core.createPaginator)(SSMClient, DescribeMaintenanceWindowsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeOpsItemsPaginator.ts\n\nvar paginateDescribeOpsItems = (0, import_core.createPaginator)(SSMClient, DescribeOpsItemsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeParametersPaginator.ts\n\nvar paginateDescribeParameters = (0, import_core.createPaginator)(SSMClient, DescribeParametersCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePatchBaselinesPaginator.ts\n\nvar paginateDescribePatchBaselines = (0, import_core.createPaginator)(SSMClient, DescribePatchBaselinesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePatchGroupsPaginator.ts\n\nvar paginateDescribePatchGroups = (0, import_core.createPaginator)(SSMClient, DescribePatchGroupsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribePatchPropertiesPaginator.ts\n\nvar paginateDescribePatchProperties = (0, import_core.createPaginator)(SSMClient, DescribePatchPropertiesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/DescribeSessionsPaginator.ts\n\nvar paginateDescribeSessions = (0, import_core.createPaginator)(SSMClient, DescribeSessionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetInventoryPaginator.ts\n\nvar paginateGetInventory = (0, import_core.createPaginator)(SSMClient, GetInventoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetInventorySchemaPaginator.ts\n\nvar paginateGetInventorySchema = (0, import_core.createPaginator)(SSMClient, GetInventorySchemaCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetOpsSummaryPaginator.ts\n\nvar paginateGetOpsSummary = (0, import_core.createPaginator)(SSMClient, GetOpsSummaryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetParameterHistoryPaginator.ts\n\nvar paginateGetParameterHistory = (0, import_core.createPaginator)(SSMClient, GetParameterHistoryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetParametersByPathPaginator.ts\n\nvar paginateGetParametersByPath = (0, import_core.createPaginator)(SSMClient, GetParametersByPathCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/GetResourcePoliciesPaginator.ts\n\nvar paginateGetResourcePolicies = (0, import_core.createPaginator)(SSMClient, GetResourcePoliciesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListAssociationVersionsPaginator.ts\n\nvar paginateListAssociationVersions = (0, import_core.createPaginator)(SSMClient, ListAssociationVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListAssociationsPaginator.ts\n\nvar paginateListAssociations = (0, import_core.createPaginator)(SSMClient, ListAssociationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCommandInvocationsPaginator.ts\n\nvar paginateListCommandInvocations = (0, import_core.createPaginator)(SSMClient, ListCommandInvocationsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListCommandsPaginator.ts\n\nvar paginateListCommands = (0, import_core.createPaginator)(SSMClient, ListCommandsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListComplianceItemsPaginator.ts\n\nvar paginateListComplianceItems = (0, import_core.createPaginator)(SSMClient, ListComplianceItemsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListComplianceSummariesPaginator.ts\n\nvar paginateListComplianceSummaries = (0, import_core.createPaginator)(SSMClient, ListComplianceSummariesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListDocumentVersionsPaginator.ts\n\nvar paginateListDocumentVersions = (0, import_core.createPaginator)(SSMClient, ListDocumentVersionsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListDocumentsPaginator.ts\n\nvar paginateListDocuments = (0, import_core.createPaginator)(SSMClient, ListDocumentsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListNodesPaginator.ts\n\nvar paginateListNodes = (0, import_core.createPaginator)(SSMClient, ListNodesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListNodesSummaryPaginator.ts\n\nvar paginateListNodesSummary = (0, import_core.createPaginator)(SSMClient, ListNodesSummaryCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListOpsItemEventsPaginator.ts\n\nvar paginateListOpsItemEvents = (0, import_core.createPaginator)(SSMClient, ListOpsItemEventsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListOpsItemRelatedItemsPaginator.ts\n\nvar paginateListOpsItemRelatedItems = (0, import_core.createPaginator)(SSMClient, ListOpsItemRelatedItemsCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListOpsMetadataPaginator.ts\n\nvar paginateListOpsMetadata = (0, import_core.createPaginator)(SSMClient, ListOpsMetadataCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListResourceComplianceSummariesPaginator.ts\n\nvar paginateListResourceComplianceSummaries = (0, import_core.createPaginator)(SSMClient, ListResourceComplianceSummariesCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/pagination/ListResourceDataSyncPaginator.ts\n\nvar paginateListResourceDataSync = (0, import_core.createPaginator)(SSMClient, ListResourceDataSyncCommand, \"NextToken\", \"NextToken\", \"MaxResults\");\n\n// src/waiters/waitForCommandExecuted.ts\nvar import_util_waiter = require(\"@smithy/util-waiter\");\nvar checkState = /* @__PURE__ */ __name(async (client, input) => {\n let reason;\n try {\n const result = await client.send(new GetCommandInvocationCommand(input));\n reason = result;\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Pending\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"InProgress\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Delayed\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Success\") {\n return { state: import_util_waiter.WaiterState.SUCCESS, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Cancelled\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"TimedOut\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Failed\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n try {\n const returnComparator = /* @__PURE__ */ __name(() => {\n return result.Status;\n }, \"returnComparator\");\n if (returnComparator() === \"Cancelling\") {\n return { state: import_util_waiter.WaiterState.FAILURE, reason };\n }\n } catch (e) {\n }\n } catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"InvocationDoesNotExist\") {\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n }\n }\n return { state: import_util_waiter.WaiterState.RETRY, reason };\n}, \"checkState\");\nvar waitForCommandExecuted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n}, \"waitForCommandExecuted\");\nvar waitUntilCommandExecuted = /* @__PURE__ */ __name(async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await (0, import_util_waiter.createWaiter)({ ...serviceDefaults, ...params }, input, checkState);\n return (0, import_util_waiter.checkExceptions)(result);\n}, \"waitUntilCommandExecuted\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSMServiceException,\n __Client,\n SSMClient,\n SSM,\n $Command,\n AddTagsToResourceCommand,\n AssociateOpsItemRelatedItemCommand,\n CancelCommandCommand,\n CancelMaintenanceWindowExecutionCommand,\n CreateActivationCommand,\n CreateAssociationBatchCommand,\n CreateAssociationCommand,\n CreateDocumentCommand,\n CreateMaintenanceWindowCommand,\n CreateOpsItemCommand,\n CreateOpsMetadataCommand,\n CreatePatchBaselineCommand,\n CreateResourceDataSyncCommand,\n DeleteActivationCommand,\n DeleteAssociationCommand,\n DeleteDocumentCommand,\n DeleteInventoryCommand,\n DeleteMaintenanceWindowCommand,\n DeleteOpsItemCommand,\n DeleteOpsMetadataCommand,\n DeleteParameterCommand,\n DeleteParametersCommand,\n DeletePatchBaselineCommand,\n DeleteResourceDataSyncCommand,\n DeleteResourcePolicyCommand,\n DeregisterManagedInstanceCommand,\n DeregisterPatchBaselineForPatchGroupCommand,\n DeregisterTargetFromMaintenanceWindowCommand,\n DeregisterTaskFromMaintenanceWindowCommand,\n DescribeActivationsCommand,\n DescribeAssociationCommand,\n DescribeAssociationExecutionTargetsCommand,\n DescribeAssociationExecutionsCommand,\n DescribeAutomationExecutionsCommand,\n DescribeAutomationStepExecutionsCommand,\n DescribeAvailablePatchesCommand,\n DescribeDocumentCommand,\n DescribeDocumentPermissionCommand,\n DescribeEffectiveInstanceAssociationsCommand,\n DescribeEffectivePatchesForPatchBaselineCommand,\n DescribeInstanceAssociationsStatusCommand,\n DescribeInstanceInformationCommand,\n DescribeInstancePatchStatesCommand,\n DescribeInstancePatchStatesForPatchGroupCommand,\n DescribeInstancePatchesCommand,\n DescribeInstancePropertiesCommand,\n DescribeInventoryDeletionsCommand,\n DescribeMaintenanceWindowExecutionTaskInvocationsCommand,\n DescribeMaintenanceWindowExecutionTasksCommand,\n DescribeMaintenanceWindowExecutionsCommand,\n DescribeMaintenanceWindowScheduleCommand,\n DescribeMaintenanceWindowTargetsCommand,\n DescribeMaintenanceWindowTasksCommand,\n DescribeMaintenanceWindowsCommand,\n DescribeMaintenanceWindowsForTargetCommand,\n DescribeOpsItemsCommand,\n DescribeParametersCommand,\n DescribePatchBaselinesCommand,\n DescribePatchGroupStateCommand,\n DescribePatchGroupsCommand,\n DescribePatchPropertiesCommand,\n DescribeSessionsCommand,\n DisassociateOpsItemRelatedItemCommand,\n GetAccessTokenCommand,\n GetAutomationExecutionCommand,\n GetCalendarStateCommand,\n GetCommandInvocationCommand,\n GetConnectionStatusCommand,\n GetDefaultPatchBaselineCommand,\n GetDeployablePatchSnapshotForInstanceCommand,\n GetDocumentCommand,\n GetExecutionPreviewCommand,\n GetInventoryCommand,\n GetInventorySchemaCommand,\n GetMaintenanceWindowCommand,\n GetMaintenanceWindowExecutionCommand,\n GetMaintenanceWindowExecutionTaskCommand,\n GetMaintenanceWindowExecutionTaskInvocationCommand,\n GetMaintenanceWindowTaskCommand,\n GetOpsItemCommand,\n GetOpsMetadataCommand,\n GetOpsSummaryCommand,\n GetParameterCommand,\n GetParameterHistoryCommand,\n GetParametersByPathCommand,\n GetParametersCommand,\n GetPatchBaselineCommand,\n GetPatchBaselineForPatchGroupCommand,\n GetResourcePoliciesCommand,\n GetServiceSettingCommand,\n LabelParameterVersionCommand,\n ListAssociationVersionsCommand,\n ListAssociationsCommand,\n ListCommandInvocationsCommand,\n ListCommandsCommand,\n ListComplianceItemsCommand,\n ListComplianceSummariesCommand,\n ListDocumentMetadataHistoryCommand,\n ListDocumentVersionsCommand,\n ListDocumentsCommand,\n ListInventoryEntriesCommand,\n ListNodesCommand,\n ListNodesSummaryCommand,\n ListOpsItemEventsCommand,\n ListOpsItemRelatedItemsCommand,\n ListOpsMetadataCommand,\n ListResourceComplianceSummariesCommand,\n ListResourceDataSyncCommand,\n ListTagsForResourceCommand,\n ModifyDocumentPermissionCommand,\n PutComplianceItemsCommand,\n PutInventoryCommand,\n PutParameterCommand,\n PutResourcePolicyCommand,\n RegisterDefaultPatchBaselineCommand,\n RegisterPatchBaselineForPatchGroupCommand,\n RegisterTargetWithMaintenanceWindowCommand,\n RegisterTaskWithMaintenanceWindowCommand,\n RemoveTagsFromResourceCommand,\n ResetServiceSettingCommand,\n ResumeSessionCommand,\n SendAutomationSignalCommand,\n SendCommandCommand,\n StartAccessRequestCommand,\n StartAssociationsOnceCommand,\n StartAutomationExecutionCommand,\n StartChangeRequestExecutionCommand,\n StartExecutionPreviewCommand,\n StartSessionCommand,\n StopAutomationExecutionCommand,\n TerminateSessionCommand,\n UnlabelParameterVersionCommand,\n UpdateAssociationCommand,\n UpdateAssociationStatusCommand,\n UpdateDocumentCommand,\n UpdateDocumentDefaultVersionCommand,\n UpdateDocumentMetadataCommand,\n UpdateMaintenanceWindowCommand,\n UpdateMaintenanceWindowTargetCommand,\n UpdateMaintenanceWindowTaskCommand,\n UpdateManagedInstanceRoleCommand,\n UpdateOpsItemCommand,\n UpdateOpsMetadataCommand,\n UpdatePatchBaselineCommand,\n UpdateResourceDataSyncCommand,\n UpdateServiceSettingCommand,\n paginateDescribeActivations,\n paginateDescribeAssociationExecutionTargets,\n paginateDescribeAssociationExecutions,\n paginateDescribeAutomationExecutions,\n paginateDescribeAutomationStepExecutions,\n paginateDescribeAvailablePatches,\n paginateDescribeEffectiveInstanceAssociations,\n paginateDescribeEffectivePatchesForPatchBaseline,\n paginateDescribeInstanceAssociationsStatus,\n paginateDescribeInstanceInformation,\n paginateDescribeInstancePatchStatesForPatchGroup,\n paginateDescribeInstancePatchStates,\n paginateDescribeInstancePatches,\n paginateDescribeInstanceProperties,\n paginateDescribeInventoryDeletions,\n paginateDescribeMaintenanceWindowExecutionTaskInvocations,\n paginateDescribeMaintenanceWindowExecutionTasks,\n paginateDescribeMaintenanceWindowExecutions,\n paginateDescribeMaintenanceWindowSchedule,\n paginateDescribeMaintenanceWindowTargets,\n paginateDescribeMaintenanceWindowTasks,\n paginateDescribeMaintenanceWindowsForTarget,\n paginateDescribeMaintenanceWindows,\n paginateDescribeOpsItems,\n paginateDescribeParameters,\n paginateDescribePatchBaselines,\n paginateDescribePatchGroups,\n paginateDescribePatchProperties,\n paginateDescribeSessions,\n paginateGetInventory,\n paginateGetInventorySchema,\n paginateGetOpsSummary,\n paginateGetParameterHistory,\n paginateGetParametersByPath,\n paginateGetResourcePolicies,\n paginateListAssociationVersions,\n paginateListAssociations,\n paginateListCommandInvocations,\n paginateListCommands,\n paginateListComplianceItems,\n paginateListComplianceSummaries,\n paginateListDocumentVersions,\n paginateListDocuments,\n paginateListNodes,\n paginateListNodesSummary,\n paginateListOpsItemEvents,\n paginateListOpsItemRelatedItems,\n paginateListOpsMetadata,\n paginateListResourceComplianceSummaries,\n paginateListResourceDataSync,\n waitForCommandExecuted,\n waitUntilCommandExecuted,\n AccessDeniedException,\n AccessRequestStatus,\n ResourceTypeForTagging,\n InternalServerError,\n InvalidResourceId,\n InvalidResourceType,\n TooManyTagsError,\n TooManyUpdates,\n ExternalAlarmState,\n AlreadyExistsException,\n OpsItemConflictException,\n OpsItemInvalidParameterException,\n OpsItemLimitExceededException,\n OpsItemNotFoundException,\n OpsItemRelatedItemAlreadyExistsException,\n DuplicateInstanceId,\n InvalidCommandId,\n InvalidInstanceId,\n DoesNotExistException,\n InvalidParameters,\n AssociationAlreadyExists,\n AssociationLimitExceeded,\n AssociationComplianceSeverity,\n AssociationSyncCompliance,\n AssociationStatusName,\n InvalidDocument,\n InvalidDocumentVersion,\n InvalidOutputLocation,\n InvalidSchedule,\n InvalidTag,\n InvalidTarget,\n InvalidTargetMaps,\n UnsupportedPlatformType,\n Fault,\n AttachmentsSourceKey,\n DocumentFormat,\n DocumentType,\n DocumentHashType,\n DocumentParameterType,\n PlatformType,\n ReviewStatus,\n DocumentStatus,\n DocumentAlreadyExists,\n DocumentLimitExceeded,\n InvalidDocumentContent,\n InvalidDocumentSchemaVersion,\n MaxDocumentSizeExceeded,\n IdempotentParameterMismatch,\n ResourceLimitExceededException,\n OpsItemDataType,\n OpsItemAccessDeniedException,\n OpsItemAlreadyExistsException,\n OpsMetadataAlreadyExistsException,\n OpsMetadataInvalidArgumentException,\n OpsMetadataLimitExceededException,\n OpsMetadataTooManyUpdatesException,\n PatchComplianceLevel,\n PatchFilterKey,\n PatchComplianceStatus,\n OperatingSystem,\n PatchAction,\n ResourceDataSyncS3Format,\n ResourceDataSyncAlreadyExistsException,\n ResourceDataSyncCountExceededException,\n ResourceDataSyncInvalidConfigurationException,\n InvalidActivation,\n InvalidActivationId,\n AssociationDoesNotExist,\n AssociatedInstances,\n InvalidDocumentOperation,\n InventorySchemaDeleteOption,\n InvalidDeleteInventoryParametersException,\n InvalidInventoryRequestException,\n InvalidOptionException,\n InvalidTypeNameException,\n OpsMetadataNotFoundException,\n ParameterNotFound,\n ResourceInUseException,\n ResourceDataSyncNotFoundException,\n MalformedResourcePolicyDocumentException,\n ResourceNotFoundException,\n ResourcePolicyConflictException,\n ResourcePolicyInvalidParameterException,\n ResourcePolicyNotFoundException,\n TargetInUseException,\n DescribeActivationsFilterKeys,\n InvalidFilter,\n InvalidNextToken,\n InvalidAssociationVersion,\n AssociationExecutionFilterKey,\n AssociationFilterOperatorType,\n AssociationExecutionDoesNotExist,\n AssociationExecutionTargetsFilterKey,\n AutomationExecutionFilterKey,\n AutomationExecutionStatus,\n AutomationSubtype,\n AutomationType,\n ExecutionMode,\n InvalidFilterKey,\n InvalidFilterValue,\n AutomationExecutionNotFoundException,\n StepExecutionFilterKey,\n DocumentPermissionType,\n InvalidPermissionType,\n PatchDeploymentStatus,\n UnsupportedOperatingSystem,\n InstanceInformationFilterKey,\n PingStatus,\n ResourceType,\n SourceType,\n InvalidInstanceInformationFilterValue,\n PatchComplianceDataState,\n PatchOperationType,\n RebootOption,\n InstancePatchStateOperatorType,\n InstancePropertyFilterOperator,\n InstancePropertyFilterKey,\n InvalidInstancePropertyFilterValue,\n InventoryDeletionStatus,\n InvalidDeletionIdException,\n MaintenanceWindowExecutionStatus,\n MaintenanceWindowTaskType,\n CreateAssociationRequestFilterSensitiveLog,\n AssociationDescriptionFilterSensitiveLog,\n CreateAssociationResultFilterSensitiveLog,\n CreateAssociationBatchRequestEntryFilterSensitiveLog,\n CreateAssociationBatchRequestFilterSensitiveLog,\n FailedCreateAssociationFilterSensitiveLog,\n CreateAssociationBatchResultFilterSensitiveLog,\n CreateMaintenanceWindowRequestFilterSensitiveLog,\n PatchSourceFilterSensitiveLog,\n CreatePatchBaselineRequestFilterSensitiveLog,\n DescribeAssociationResultFilterSensitiveLog,\n InstanceInformationFilterSensitiveLog,\n DescribeInstanceInformationResultFilterSensitiveLog,\n InstancePatchStateFilterSensitiveLog,\n DescribeInstancePatchStatesResultFilterSensitiveLog,\n DescribeInstancePatchStatesForPatchGroupResultFilterSensitiveLog,\n InstancePropertyFilterSensitiveLog,\n DescribeInstancePropertiesResultFilterSensitiveLog,\n MaintenanceWindowExecutionTaskInvocationIdentityFilterSensitiveLog,\n DescribeMaintenanceWindowExecutionTaskInvocationsResultFilterSensitiveLog,\n MaintenanceWindowIdentityFilterSensitiveLog,\n DescribeMaintenanceWindowsResultFilterSensitiveLog,\n MaintenanceWindowResourceType,\n MaintenanceWindowTaskCutoffBehavior,\n OpsItemFilterKey,\n OpsItemFilterOperator,\n OpsItemStatus,\n ParametersFilterKey,\n ParameterTier,\n ParameterType,\n InvalidFilterOption,\n PatchSet,\n PatchProperty,\n SessionFilterKey,\n SessionState,\n SessionStatus,\n OpsItemRelatedItemAssociationNotFoundException,\n ThrottlingException,\n ValidationException,\n CalendarState,\n InvalidDocumentType,\n UnsupportedCalendarException,\n CommandInvocationStatus,\n InvalidPluginName,\n InvocationDoesNotExist,\n ConnectionStatus,\n UnsupportedFeatureRequiredException,\n AttachmentHashType,\n ImpactType,\n ExecutionPreview,\n ExecutionPreviewStatus,\n InventoryQueryOperatorType,\n InvalidAggregatorException,\n InvalidInventoryGroupException,\n InvalidResultAttributeException,\n InventoryAttributeDataType,\n NotificationEvent,\n NotificationType,\n OpsFilterOperatorType,\n InvalidKeyId,\n ParameterVersionNotFound,\n ServiceSettingNotFound,\n ParameterVersionLabelLimitExceeded,\n AssociationFilterKey,\n CommandFilterKey,\n CommandPluginStatus,\n CommandStatus,\n ComplianceQueryOperatorType,\n ComplianceSeverity,\n ComplianceStatus,\n DocumentMetadataEnum,\n DocumentReviewCommentType,\n DocumentFilterKey,\n NodeFilterKey,\n NodeFilterOperatorType,\n ManagedStatus,\n NodeType,\n UnsupportedOperationException,\n NodeAggregatorType,\n NodeAttributeName,\n NodeTypeName,\n OpsItemEventFilterKey,\n OpsItemEventFilterOperator,\n OpsItemRelatedItemsFilterKey,\n OpsItemRelatedItemsFilterOperator,\n LastResourceDataSyncStatus,\n DocumentPermissionLimit,\n ComplianceTypeCountLimitExceededException,\n InvalidItemContentException,\n ItemSizeLimitExceededException,\n ComplianceUploadType,\n TotalSizeLimitExceededException,\n CustomSchemaCountLimitExceededException,\n InvalidInventoryItemContextException,\n ItemContentMismatchException,\n SubTypeCountLimitExceededException,\n UnsupportedInventoryItemContextException,\n UnsupportedInventorySchemaVersionException,\n HierarchyLevelLimitExceededException,\n HierarchyTypeMismatchException,\n IncompatiblePolicyException,\n InvalidAllowedPatternException,\n InvalidPolicyAttributeException,\n InvalidPolicyTypeException,\n ParameterAlreadyExists,\n ParameterLimitExceeded,\n ParameterMaxVersionLimitExceeded,\n ParameterPatternMismatchException,\n PoliciesLimitExceededException,\n UnsupportedParameterType,\n ResourcePolicyLimitExceededException,\n MaintenanceWindowTargetFilterSensitiveLog,\n DescribeMaintenanceWindowTargetsResultFilterSensitiveLog,\n MaintenanceWindowTaskParameterValueExpressionFilterSensitiveLog,\n MaintenanceWindowTaskFilterSensitiveLog,\n DescribeMaintenanceWindowTasksResultFilterSensitiveLog,\n CredentialsFilterSensitiveLog,\n GetAccessTokenResponseFilterSensitiveLog,\n BaselineOverrideFilterSensitiveLog,\n GetDeployablePatchSnapshotForInstanceRequestFilterSensitiveLog,\n GetMaintenanceWindowResultFilterSensitiveLog,\n GetMaintenanceWindowExecutionTaskResultFilterSensitiveLog,\n GetMaintenanceWindowExecutionTaskInvocationResultFilterSensitiveLog,\n MaintenanceWindowLambdaParametersFilterSensitiveLog,\n MaintenanceWindowRunCommandParametersFilterSensitiveLog,\n MaintenanceWindowStepFunctionsParametersFilterSensitiveLog,\n MaintenanceWindowTaskInvocationParametersFilterSensitiveLog,\n GetMaintenanceWindowTaskResultFilterSensitiveLog,\n ParameterFilterSensitiveLog,\n GetParameterResultFilterSensitiveLog,\n ParameterHistoryFilterSensitiveLog,\n GetParameterHistoryResultFilterSensitiveLog,\n GetParametersResultFilterSensitiveLog,\n GetParametersByPathResultFilterSensitiveLog,\n GetPatchBaselineResultFilterSensitiveLog,\n AssociationVersionInfoFilterSensitiveLog,\n ListAssociationVersionsResultFilterSensitiveLog,\n CommandFilterSensitiveLog,\n ListCommandsResultFilterSensitiveLog,\n InstanceInfoFilterSensitiveLog,\n NodeTypeFilterSensitiveLog,\n NodeFilterSensitiveLog,\n ListNodesResultFilterSensitiveLog,\n PutParameterRequestFilterSensitiveLog,\n FeatureNotAvailableException,\n AutomationStepNotFoundException,\n InvalidAutomationSignalException,\n SignalType,\n InvalidNotificationConfig,\n InvalidOutputFolder,\n InvalidRole,\n ServiceQuotaExceededException,\n InvalidAssociation,\n AutomationDefinitionNotFoundException,\n AutomationDefinitionVersionNotFoundException,\n AutomationExecutionLimitExceededException,\n InvalidAutomationExecutionParametersException,\n AutomationDefinitionNotApprovedException,\n ExecutionInputs,\n TargetNotConnected,\n InvalidAutomationStatusUpdateException,\n StopType,\n AssociationVersionLimitExceeded,\n InvalidUpdate,\n StatusUnchanged,\n DocumentVersionLimitExceeded,\n DuplicateDocumentContent,\n DuplicateDocumentVersionName,\n DocumentReviewAction,\n OpsMetadataKeyLimitExceededException,\n ResourceDataSyncConflictException,\n RegisterTargetWithMaintenanceWindowRequestFilterSensitiveLog,\n RegisterTaskWithMaintenanceWindowRequestFilterSensitiveLog,\n SendCommandRequestFilterSensitiveLog,\n SendCommandResultFilterSensitiveLog,\n UpdateAssociationRequestFilterSensitiveLog,\n UpdateAssociationResultFilterSensitiveLog,\n UpdateAssociationStatusResultFilterSensitiveLog,\n UpdateMaintenanceWindowRequestFilterSensitiveLog,\n UpdateMaintenanceWindowResultFilterSensitiveLog,\n UpdateMaintenanceWindowTargetRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTargetResultFilterSensitiveLog,\n UpdateMaintenanceWindowTaskRequestFilterSensitiveLog,\n UpdateMaintenanceWindowTaskResultFilterSensitiveLog,\n UpdatePatchBaselineRequestFilterSensitiveLog,\n UpdatePatchBaselineResultFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2014-11-06\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSMHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSM\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n randomUUID: _crypto.default.randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithSAML\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithSAMLCommand: () => AssumeRoleWithSAMLCommand,\n AssumeRoleWithSAMLRequestFilterSensitiveLog: () => AssumeRoleWithSAMLRequestFilterSensitiveLog,\n AssumeRoleWithSAMLResponseFilterSensitiveLog: () => AssumeRoleWithSAMLResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n AssumeRootCommand: () => AssumeRootCommand,\n AssumeRootResponseFilterSensitiveLog: () => AssumeRootResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters10.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n DecodeAuthorizationMessageCommand: () => DecodeAuthorizationMessageCommand,\n ExpiredTokenException: () => ExpiredTokenException,\n GetAccessKeyInfoCommand: () => GetAccessKeyInfoCommand,\n GetCallerIdentityCommand: () => GetCallerIdentityCommand,\n GetFederationTokenCommand: () => GetFederationTokenCommand,\n GetFederationTokenResponseFilterSensitiveLog: () => GetFederationTokenResponseFilterSensitiveLog,\n GetSessionTokenCommand: () => GetSessionTokenCommand,\n GetSessionTokenResponseFilterSensitiveLog: () => GetSessionTokenResponseFilterSensitiveLog,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidAuthorizationMessageException: () => InvalidAuthorizationMessageException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././STSClient\"), module.exports);\n\n// src/STS.ts\n\n\n// src/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/models/models_0.ts\n\n\n// src/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\nvar InvalidAuthorizationMessageException = class _InvalidAuthorizationMessageException extends STSServiceException {\n static {\n __name(this, \"InvalidAuthorizationMessageException\");\n }\n name = \"InvalidAuthorizationMessageException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidAuthorizationMessageException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidAuthorizationMessageException.prototype);\n }\n};\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar AssumeRoleWithSAMLRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SAMLAssertion && { SAMLAssertion: import_smithy_client.SENSITIVE_STRING }\n}), \"AssumeRoleWithSAMLRequestFilterSensitiveLog\");\nvar AssumeRoleWithSAMLResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithSAMLResponseFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar AssumeRootResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRootResponseFilterSensitiveLog\");\nvar GetFederationTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetFederationTokenResponseFilterSensitiveLog\");\nvar GetSessionTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"GetSessionTokenResponseFilterSensitiveLog\");\n\n// src/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithSAMLRequest(input, context),\n [_A]: _ARWSAML,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithSAMLCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar se_AssumeRootCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRootRequest(input, context),\n [_A]: _ARs,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRootCommand\");\nvar se_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_DecodeAuthorizationMessageRequest(input, context),\n [_A]: _DAM,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_DecodeAuthorizationMessageCommand\");\nvar se_GetAccessKeyInfoCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetAccessKeyInfoRequest(input, context),\n [_A]: _GAKI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetAccessKeyInfoCommand\");\nvar se_GetCallerIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetCallerIdentityRequest(input, context),\n [_A]: _GCI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetCallerIdentityCommand\");\nvar se_GetFederationTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetFederationTokenRequest(input, context),\n [_A]: _GFT,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetFederationTokenCommand\");\nvar se_GetSessionTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_GetSessionTokenRequest(input, context),\n [_A]: _GST,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_GetSessionTokenCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithSAMLCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithSAMLResponse(data.AssumeRoleWithSAMLResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithSAMLCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRootCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRootResponse(data.AssumeRootResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRootCommand\");\nvar de_DecodeAuthorizationMessageCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_DecodeAuthorizationMessageResponse(data.DecodeAuthorizationMessageResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_DecodeAuthorizationMessageCommand\");\nvar de_GetAccessKeyInfoCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetAccessKeyInfoResponse(data.GetAccessKeyInfoResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetAccessKeyInfoCommand\");\nvar de_GetCallerIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetCallerIdentityResponse(data.GetCallerIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetCallerIdentityCommand\");\nvar de_GetFederationTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetFederationTokenResponse(data.GetFederationTokenResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetFederationTokenCommand\");\nvar de_GetSessionTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_GetSessionTokenResponse(data.GetSessionTokenResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_GetSessionTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"InvalidAuthorizationMessageException\":\n case \"com.amazonaws.sts#InvalidAuthorizationMessageException\":\n throw await de_InvalidAuthorizationMessageExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidAuthorizationMessageExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidAuthorizationMessageException(body.Error, context);\n const exception = new InvalidAuthorizationMessageException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidAuthorizationMessageExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithSAMLRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_SAMLA] != null) {\n entries[_SAMLA] = input[_SAMLA];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithSAMLRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_AssumeRootRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_TP] != null) {\n entries[_TP] = input[_TP];\n }\n if (input[_TPA] != null) {\n const memberEntries = se_PolicyDescriptorType(input[_TPA], context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TaskPolicyArn.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRootRequest\");\nvar se_DecodeAuthorizationMessageRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_EM] != null) {\n entries[_EM] = input[_EM];\n }\n return entries;\n}, \"se_DecodeAuthorizationMessageRequest\");\nvar se_GetAccessKeyInfoRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_AKI] != null) {\n entries[_AKI] = input[_AKI];\n }\n return entries;\n}, \"se_GetAccessKeyInfoRequest\");\nvar se_GetCallerIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n return entries;\n}, \"se_GetCallerIdentityRequest\");\nvar se_GetFederationTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_N] != null) {\n entries[_N] = input[_N];\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_GetFederationTokenRequest\");\nvar se_GetSessionTokenRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n return entries;\n}, \"se_GetSessionTokenRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAro] != null) {\n entries[_PAro] = input[_PAro];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithSAMLResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n if (output[_S] != null) {\n contents[_S] = (0, import_smithy_client.expectString)(output[_S]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client.expectString)(output[_ST]);\n }\n if (output[_I] != null) {\n contents[_I] = (0, import_smithy_client.expectString)(output[_I]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]);\n }\n if (output[_NQ] != null) {\n contents[_NQ] = (0, import_smithy_client.expectString)(output[_NQ]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithSAMLResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_AssumeRootResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRootResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client.expectString)(output[_SAK]);\n }\n if (output[_STe] != null) {\n contents[_STe] = (0, import_smithy_client.expectString)(output[_STe]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_DecodeAuthorizationMessageResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_DM] != null) {\n contents[_DM] = (0, import_smithy_client.expectString)(output[_DM]);\n }\n return contents;\n}, \"de_DecodeAuthorizationMessageResponse\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_FederatedUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_FUI] != null) {\n contents[_FUI] = (0, import_smithy_client.expectString)(output[_FUI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_FederatedUser\");\nvar de_GetAccessKeyInfoResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_Ac] != null) {\n contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]);\n }\n return contents;\n}, \"de_GetAccessKeyInfoResponse\");\nvar de_GetCallerIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_UI] != null) {\n contents[_UI] = (0, import_smithy_client.expectString)(output[_UI]);\n }\n if (output[_Ac] != null) {\n contents[_Ac] = (0, import_smithy_client.expectString)(output[_Ac]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_GetCallerIdentityResponse\");\nvar de_GetFederationTokenResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_FU] != null) {\n contents[_FU] = de_FederatedUser(output[_FU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client.strictParseInt32)(output[_PPS]);\n }\n return contents;\n}, \"de_GetFederationTokenResponse\");\nvar de_GetSessionTokenResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n return contents;\n}, \"de_GetSessionTokenResponse\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidAuthorizationMessageException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidAuthorizationMessageException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWSAML = \"AssumeRoleWithSAML\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _ARs = \"AssumeRoot\";\nvar _Ac = \"Account\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DAM = \"DecodeAuthorizationMessage\";\nvar _DM = \"DecodedMessage\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _EM = \"EncodedMessage\";\nvar _FU = \"FederatedUser\";\nvar _FUI = \"FederatedUserId\";\nvar _GAKI = \"GetAccessKeyInfo\";\nvar _GCI = \"GetCallerIdentity\";\nvar _GFT = \"GetFederationToken\";\nvar _GST = \"GetSessionToken\";\nvar _I = \"Issuer\";\nvar _K = \"Key\";\nvar _N = \"Name\";\nvar _NQ = \"NameQualifier\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"PrincipalArn\";\nvar _PAro = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _S = \"Subject\";\nvar _SAK = \"SecretAccessKey\";\nvar _SAMLA = \"SAMLAssertion\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SubjectType\";\nvar _STe = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TP = \"TargetPrincipal\";\nvar _TPA = \"TaskPolicyArn\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _UI = \"UserId\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/commands/AssumeRoleWithSAMLCommand.ts\n\n\n\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithSAMLCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithSAML\", {}).n(\"STSClient\", \"AssumeRoleWithSAMLCommand\").f(AssumeRoleWithSAMLRequestFilterSensitiveLog, AssumeRoleWithSAMLResponseFilterSensitiveLog).ser(se_AssumeRoleWithSAMLCommand).de(de_AssumeRoleWithSAMLCommand).build() {\n static {\n __name(this, \"AssumeRoleWithSAMLCommand\");\n }\n};\n\n// src/commands/AssumeRoleWithWebIdentityCommand.ts\n\n\n\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters3.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/commands/AssumeRootCommand.ts\n\n\n\nvar import_EndpointParameters4 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRootCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters4.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoot\", {}).n(\"STSClient\", \"AssumeRootCommand\").f(void 0, AssumeRootResponseFilterSensitiveLog).ser(se_AssumeRootCommand).de(de_AssumeRootCommand).build() {\n static {\n __name(this, \"AssumeRootCommand\");\n }\n};\n\n// src/commands/DecodeAuthorizationMessageCommand.ts\n\n\n\nvar import_EndpointParameters5 = require(\"./endpoint/EndpointParameters\");\nvar DecodeAuthorizationMessageCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters5.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"DecodeAuthorizationMessage\", {}).n(\"STSClient\", \"DecodeAuthorizationMessageCommand\").f(void 0, void 0).ser(se_DecodeAuthorizationMessageCommand).de(de_DecodeAuthorizationMessageCommand).build() {\n static {\n __name(this, \"DecodeAuthorizationMessageCommand\");\n }\n};\n\n// src/commands/GetAccessKeyInfoCommand.ts\n\n\n\nvar import_EndpointParameters6 = require(\"./endpoint/EndpointParameters\");\nvar GetAccessKeyInfoCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters6.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetAccessKeyInfo\", {}).n(\"STSClient\", \"GetAccessKeyInfoCommand\").f(void 0, void 0).ser(se_GetAccessKeyInfoCommand).de(de_GetAccessKeyInfoCommand).build() {\n static {\n __name(this, \"GetAccessKeyInfoCommand\");\n }\n};\n\n// src/commands/GetCallerIdentityCommand.ts\n\n\n\nvar import_EndpointParameters7 = require(\"./endpoint/EndpointParameters\");\nvar GetCallerIdentityCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters7.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetCallerIdentity\", {}).n(\"STSClient\", \"GetCallerIdentityCommand\").f(void 0, void 0).ser(se_GetCallerIdentityCommand).de(de_GetCallerIdentityCommand).build() {\n static {\n __name(this, \"GetCallerIdentityCommand\");\n }\n};\n\n// src/commands/GetFederationTokenCommand.ts\n\n\n\nvar import_EndpointParameters8 = require(\"./endpoint/EndpointParameters\");\nvar GetFederationTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters8.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetFederationToken\", {}).n(\"STSClient\", \"GetFederationTokenCommand\").f(void 0, GetFederationTokenResponseFilterSensitiveLog).ser(se_GetFederationTokenCommand).de(de_GetFederationTokenCommand).build() {\n static {\n __name(this, \"GetFederationTokenCommand\");\n }\n};\n\n// src/commands/GetSessionTokenCommand.ts\n\n\n\nvar import_EndpointParameters9 = require(\"./endpoint/EndpointParameters\");\nvar GetSessionTokenCommand = class extends import_smithy_client.Command.classBuilder().ep(import_EndpointParameters9.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"GetSessionToken\", {}).n(\"STSClient\", \"GetSessionTokenCommand\").f(void 0, GetSessionTokenResponseFilterSensitiveLog).ser(se_GetSessionTokenCommand).de(de_GetSessionTokenCommand).build() {\n static {\n __name(this, \"GetSessionTokenCommand\");\n }\n};\n\n// src/STS.ts\nvar import_STSClient = require(\"././STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithSAMLCommand,\n AssumeRoleWithWebIdentityCommand,\n AssumeRootCommand,\n DecodeAuthorizationMessageCommand,\n GetAccessKeyInfoCommand,\n GetCallerIdentityCommand,\n GetFederationTokenCommand,\n GetSessionTokenCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, STS);\n\n// src/index.ts\nvar import_EndpointParameters10 = require(\"./endpoint/EndpointParameters\");\n\n// src/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"././STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n STSServiceException,\n __Client,\n STSClient,\n STS,\n $Command,\n AssumeRoleCommand,\n AssumeRoleWithSAMLCommand,\n AssumeRoleWithWebIdentityCommand,\n AssumeRootCommand,\n DecodeAuthorizationMessageCommand,\n GetAccessKeyInfoCommand,\n GetCallerIdentityCommand,\n GetFederationTokenCommand,\n GetSessionTokenCommand,\n ExpiredTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n IDPCommunicationErrorException,\n InvalidAuthorizationMessageException,\n CredentialsFilterSensitiveLog,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithSAMLRequestFilterSensitiveLog,\n AssumeRoleWithSAMLResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n AssumeRootResponseFilterSensitiveLog,\n GetFederationTokenResponseFilterSensitiveLog,\n GetSessionTokenResponseFilterSensitiveLog,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n decorateDefaultCredentialProvider\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? credential_provider_node_1.defaultProvider,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await (0, credential_provider_node_1.defaultProvider)(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client2.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== void 0) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadCognitoIdentity.ts\nvar loadCognitoIdentity_exports = {};\n__export(loadCognitoIdentity_exports, {\n CognitoIdentityClient: () => import_client_cognito_identity.CognitoIdentityClient,\n GetCredentialsForIdentityCommand: () => import_client_cognito_identity.GetCredentialsForIdentityCommand,\n GetIdCommand: () => import_client_cognito_identity.GetIdCommand\n});\nvar import_client_cognito_identity;\nvar init_loadCognitoIdentity = __esm({\n \"src/loadCognitoIdentity.ts\"() {\n \"use strict\";\n import_client_cognito_identity = require(\"@aws-sdk/client-cognito-identity\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromCognitoIdentity: () => fromCognitoIdentity,\n fromCognitoIdentityPool: () => fromCognitoIdentityPool\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromCognitoIdentity.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\n\n// src/resolveLogins.ts\nfunction resolveLogins(logins) {\n return Promise.all(\n Object.keys(logins).reduce((arr, name) => {\n const tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n } else {\n arr.push(tokenOrProvider().then((token) => [name, token]));\n }\n return arr;\n }, [])\n ).then(\n (resolvedPairs) => resolvedPairs.reduce((logins2, [key, value]) => {\n logins2[key] = value;\n return logins2;\n }, {})\n );\n}\n__name(resolveLogins, \"resolveLogins\");\n\n// src/fromCognitoIdentity.ts\nfunction fromCognitoIdentity(parameters) {\n return async (awsIdentityProperties) => {\n parameters.logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const { GetCredentialsForIdentityCommand: GetCredentialsForIdentityCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));\n const fromConfigs = /* @__PURE__ */ __name((property) => parameters.clientConfig?.[property] ?? parameters.parentClientConfig?.[property] ?? awsIdentityProperties?.callerClientConfig?.[property], \"fromConfigs\");\n const {\n Credentials: {\n AccessKeyId = throwOnMissingAccessKeyId(parameters.logger),\n Expiration,\n SecretKey = throwOnMissingSecretKey(parameters.logger),\n SessionToken\n } = throwOnMissingCredentials(parameters.logger)\n } = await (parameters.client ?? new CognitoIdentityClient2(\n Object.assign({}, parameters.clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\")\n })\n )).send(\n new GetCredentialsForIdentityCommand2({\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId,\n Logins: parameters.logins ? await resolveLogins(parameters.logins) : void 0\n })\n );\n return {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration\n };\n };\n}\n__name(fromCognitoIdentity, \"fromCognitoIdentity\");\nfunction throwOnMissingAccessKeyId(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no access key ID\", { logger });\n}\n__name(throwOnMissingAccessKeyId, \"throwOnMissingAccessKeyId\");\nfunction throwOnMissingCredentials(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no credentials\", { logger });\n}\n__name(throwOnMissingCredentials, \"throwOnMissingCredentials\");\nfunction throwOnMissingSecretKey(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no secret key\", { logger });\n}\n__name(throwOnMissingSecretKey, \"throwOnMissingSecretKey\");\n\n// src/fromCognitoIdentityPool.ts\n\n\n// src/IndexedDbStorage.ts\nvar STORE_NAME = \"IdentityIds\";\nvar IndexedDbStorage = class {\n constructor(dbName = \"aws:cognito-identity-ids\") {\n this.dbName = dbName;\n }\n static {\n __name(this, \"IndexedDbStorage\");\n }\n getItem(key) {\n return this.withObjectStore(\"readonly\", (store) => {\n const req = store.get(key);\n return new Promise((resolve) => {\n req.onerror = () => resolve(null);\n req.onsuccess = () => resolve(req.result ? req.result.value : null);\n });\n }).catch(() => null);\n }\n removeItem(key) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.delete(key);\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n setItem(id, value) {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.put({ id, value });\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n req.onsuccess = () => resolve();\n });\n });\n }\n getDb() {\n const openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise((resolve, reject) => {\n openDbRequest.onsuccess = () => {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = () => {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = () => {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = () => {\n const db = openDbRequest.result;\n db.onerror = () => {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n }\n withObjectStore(mode, action) {\n return this.getDb().then((db) => {\n const tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = () => db.close();\n return new Promise((resolve, reject) => {\n tx.onerror = () => reject(tx.error);\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch((err) => {\n db.close();\n throw err;\n });\n });\n }\n};\n\n// src/InMemoryStorage.ts\nvar InMemoryStorage = class {\n constructor(store = {}) {\n this.store = store;\n }\n static {\n __name(this, \"InMemoryStorage\");\n }\n getItem(key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n }\n removeItem(key) {\n delete this.store[key];\n }\n setItem(key, value) {\n this.store[key] = value;\n }\n};\n\n// src/localStorage.ts\nvar inMemoryStorage = new InMemoryStorage();\nfunction localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n__name(localStorage, \"localStorage\");\n\n// src/fromCognitoIdentityPool.ts\nfunction fromCognitoIdentityPool({\n accountId,\n cache = localStorage(),\n client,\n clientConfig,\n customRoleArn,\n identityPoolId,\n logins,\n userIdentifier = !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : void 0,\n logger,\n parentClientConfig\n}) {\n logger?.debug(\"@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity\");\n const cacheKey = userIdentifier ? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}` : void 0;\n let provider = /* @__PURE__ */ __name(async (awsIdentityProperties) => {\n const { GetIdCommand: GetIdCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));\n const fromConfigs = /* @__PURE__ */ __name((property) => clientConfig?.[property] ?? parentClientConfig?.[property] ?? awsIdentityProperties?.callerClientConfig?.[property], \"fromConfigs\");\n const _client = client ?? new CognitoIdentityClient2(\n Object.assign({}, clientConfig ?? {}, {\n region: fromConfigs(\"region\"),\n profile: fromConfigs(\"profile\")\n })\n );\n let identityId = cacheKey && await cache.getItem(cacheKey);\n if (!identityId) {\n const { IdentityId = throwOnMissingId(logger) } = await _client.send(\n new GetIdCommand2({\n AccountId: accountId,\n IdentityPoolId: identityPoolId,\n Logins: logins ? await resolveLogins(logins) : void 0\n })\n );\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(() => {\n });\n }\n }\n provider = fromCognitoIdentity({\n client: _client,\n customRoleArn,\n logins,\n identityId\n });\n return provider(awsIdentityProperties);\n }, \"provider\");\n return (awsIdentityProperties) => provider(awsIdentityProperties).catch(async (err) => {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(() => {\n });\n }\n throw err;\n });\n}\n__name(fromCognitoIdentityPool, \"fromCognitoIdentityPool\");\nfunction throwOnMissingId(logger) {\n throw new import_property_provider.CredentialsProviderError(\"Response from Amazon Cognito contained no identity ID\", { logger });\n}\n__name(throwOnMissingId, \"throwOnMissingId\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromCognitoIdentity,\n fromCognitoIdentityPool\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.propertyProviderChain = exports.createCredentialChain = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst createCredentialChain = (...credentialProviders) => {\n let expireAfter = -1;\n const baseFunction = async (awsIdentityProperties) => {\n const credentials = await (0, exports.propertyProviderChain)(...credentialProviders)(awsIdentityProperties);\n if (!credentials.expiration && expireAfter !== -1) {\n credentials.expiration = new Date(Date.now() + expireAfter);\n }\n return credentials;\n };\n const withOptions = Object.assign(baseFunction, {\n expireAfter(milliseconds) {\n if (milliseconds < 5 * 60_000) {\n throw new Error(\"@aws-sdk/credential-providers - createCredentialChain(...).expireAfter(ms) may not be called with a duration lower than five minutes.\");\n }\n expireAfter = milliseconds;\n return withOptions;\n },\n });\n return withOptions;\n};\nexports.createCredentialChain = createCredentialChain;\nconst propertyProviderChain = (...providers) => async (awsIdentityProperties) => {\n if (providers.length === 0) {\n throw new property_provider_1.ProviderError(\"No providers in chain\");\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n const credentials = await provider(awsIdentityProperties);\n return credentials;\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\nexports.propertyProviderChain = propertyProviderChain;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentity = void 0;\nconst credential_provider_cognito_identity_1 = require(\"@aws-sdk/credential-provider-cognito-identity\");\nconst fromCognitoIdentity = (options) => (0, credential_provider_cognito_identity_1.fromCognitoIdentity)({\n ...options,\n});\nexports.fromCognitoIdentity = fromCognitoIdentity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCognitoIdentityPool = void 0;\nconst credential_provider_cognito_identity_1 = require(\"@aws-sdk/credential-provider-cognito-identity\");\nconst fromCognitoIdentityPool = (options) => (0, credential_provider_cognito_identity_1.fromCognitoIdentityPool)({\n ...options,\n});\nexports.fromCognitoIdentityPool = fromCognitoIdentityPool;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromContainerMetadata = void 0;\nconst credential_provider_imds_1 = require(\"@smithy/credential-provider-imds\");\nconst fromContainerMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromContainerMetadata\");\n return (0, credential_provider_imds_1.fromContainerMetadata)(init);\n};\nexports.fromContainerMetadata = fromContainerMetadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = void 0;\nconst credential_provider_env_1 = require(\"@aws-sdk/credential-provider-env\");\nconst fromEnv = (init) => (0, credential_provider_env_1.fromEnv)(init);\nexports.fromEnv = fromEnv;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromIni = void 0;\nconst credential_provider_ini_1 = require(\"@aws-sdk/credential-provider-ini\");\nconst fromIni = (init = {}) => (0, credential_provider_ini_1.fromIni)({\n ...init,\n});\nexports.fromIni = fromIni;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromInstanceMetadata = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst credential_provider_imds_1 = require(\"@smithy/credential-provider-imds\");\nconst fromInstanceMetadata = (init) => {\n init?.logger?.debug(\"@smithy/credential-provider-imds\", \"fromInstanceMetadata\");\n return async () => (0, credential_provider_imds_1.fromInstanceMetadata)(init)().then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_IMDS\", \"0\"));\n};\nexports.fromInstanceMetadata = fromInstanceMetadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromNodeProviderChain = void 0;\nconst credential_provider_node_1 = require(\"@aws-sdk/credential-provider-node\");\nconst fromNodeProviderChain = (init = {}) => (0, credential_provider_node_1.defaultProvider)({\n ...init,\n});\nexports.fromNodeProviderChain = fromNodeProviderChain;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromProcess = void 0;\nconst credential_provider_process_1 = require(\"@aws-sdk/credential-provider-process\");\nconst fromProcess = (init) => (0, credential_provider_process_1.fromProcess)(init);\nexports.fromProcess = fromProcess;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSSO = void 0;\nconst credential_provider_sso_1 = require(\"@aws-sdk/credential-provider-sso\");\nconst fromSSO = (init = {}) => {\n return (0, credential_provider_sso_1.fromSSO)({ ...init });\n};\nexports.fromSSO = fromSSO;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTemporaryCredentials = void 0;\nconst core_1 = require(\"@smithy/core\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nconst fromTemporaryCredentials = (options, credentialDefaultProvider, regionProvider) => {\n let stsClient;\n return async (awsIdentityProperties = {}) => {\n const { callerClientConfig } = awsIdentityProperties;\n const profile = options.clientConfig?.profile ?? callerClientConfig?.profile;\n const logger = options.logger ?? callerClientConfig?.logger;\n logger?.debug(\"@aws-sdk/credential-providers - fromTemporaryCredentials (STS)\");\n const params = { ...options.params, RoleSessionName: options.params.RoleSessionName ?? \"aws-sdk-js-\" + Date.now() };\n if (params?.SerialNumber) {\n if (!options.mfaCodeProvider) {\n throw new property_provider_1.CredentialsProviderError(`Temporary credential requires multi-factor authentication, but no MFA code callback was provided.`, {\n tryNextLink: false,\n logger,\n });\n }\n params.TokenCode = await options.mfaCodeProvider(params?.SerialNumber);\n }\n const { AssumeRoleCommand, STSClient } = await Promise.resolve().then(() => __importStar(require(\"./loadSts\")));\n if (!stsClient) {\n const defaultCredentialsOrError = typeof credentialDefaultProvider === \"function\" ? credentialDefaultProvider() : undefined;\n const credentialSources = [\n options.masterCredentials,\n options.clientConfig?.credentials,\n void callerClientConfig?.credentials,\n callerClientConfig?.credentialDefaultProvider?.(),\n defaultCredentialsOrError,\n ];\n let credentialSource = \"STS client default credentials\";\n if (credentialSources[0]) {\n credentialSource = \"options.masterCredentials\";\n }\n else if (credentialSources[1]) {\n credentialSource = \"options.clientConfig.credentials\";\n }\n else if (credentialSources[2]) {\n credentialSource = \"caller client's credentials\";\n throw new Error(\"fromTemporaryCredentials recursion in callerClientConfig.credentials\");\n }\n else if (credentialSources[3]) {\n credentialSource = \"caller client's credentialDefaultProvider\";\n }\n else if (credentialSources[4]) {\n credentialSource = \"AWS SDK default credentials\";\n }\n const regionSources = [\n options.clientConfig?.region,\n callerClientConfig?.region,\n await regionProvider?.({\n profile,\n }),\n ASSUME_ROLE_DEFAULT_REGION,\n ];\n let regionSource = \"default partition's default region\";\n if (regionSources[0]) {\n regionSource = \"options.clientConfig.region\";\n }\n else if (regionSources[1]) {\n regionSource = \"caller client's region\";\n }\n else if (regionSources[2]) {\n regionSource = \"file or env region\";\n }\n const requestHandlerSources = [\n filterRequestHandler(options.clientConfig?.requestHandler),\n filterRequestHandler(callerClientConfig?.requestHandler),\n ];\n let requestHandlerSource = \"STS default requestHandler\";\n if (requestHandlerSources[0]) {\n requestHandlerSource = \"options.clientConfig.requestHandler\";\n }\n else if (requestHandlerSources[1]) {\n requestHandlerSource = \"caller client's requestHandler\";\n }\n logger?.debug?.(`@aws-sdk/credential-providers - fromTemporaryCredentials STS client init with ` +\n `${regionSource}=${await (0, core_1.normalizeProvider)(coalesce(regionSources))()}, ${credentialSource}, ${requestHandlerSource}.`);\n stsClient = new STSClient({\n ...options.clientConfig,\n credentials: coalesce(credentialSources),\n logger,\n profile,\n region: coalesce(regionSources),\n requestHandler: coalesce(requestHandlerSources),\n });\n }\n if (options.clientPlugins) {\n for (const plugin of options.clientPlugins) {\n stsClient.middlewareStack.use(plugin);\n }\n }\n const { Credentials } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new property_provider_1.CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`, {\n logger,\n });\n }\n return {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n credentialScope: Credentials.CredentialScope,\n };\n };\n};\nexports.fromTemporaryCredentials = fromTemporaryCredentials;\nconst filterRequestHandler = (requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\" ? undefined : requestHandler;\n};\nconst coalesce = (args) => {\n for (const item of args) {\n if (item !== undefined) {\n return item;\n }\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTemporaryCredentials = void 0;\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst fromNodeProviderChain_1 = require(\"./fromNodeProviderChain\");\nconst fromTemporaryCredentials_base_1 = require(\"./fromTemporaryCredentials.base\");\nconst fromTemporaryCredentials = (options) => {\n return (0, fromTemporaryCredentials_base_1.fromTemporaryCredentials)(options, fromNodeProviderChain_1.fromNodeProviderChain, async ({ profile = process.env.AWS_PROFILE }) => (0, node_config_provider_1.loadConfig)({\n environmentVariableSelector: (env) => env.AWS_REGION,\n configFileSelector: (profileData) => {\n return profileData.region;\n },\n default: () => undefined,\n }, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, profile })());\n};\nexports.fromTemporaryCredentials = fromTemporaryCredentials;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst fromTokenFile = (init = {}) => (0, credential_provider_web_identity_1.fromTokenFile)({\n ...init,\n});\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst fromWebToken = (init) => (0, credential_provider_web_identity_1.fromWebToken)({\n ...init,\n});\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./createCredentialChain\"), exports);\ntslib_1.__exportStar(require(\"./fromCognitoIdentity\"), exports);\ntslib_1.__exportStar(require(\"./fromCognitoIdentityPool\"), exports);\ntslib_1.__exportStar(require(\"./fromContainerMetadata\"), exports);\nvar credential_provider_http_1 = require(\"@aws-sdk/credential-provider-http\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return credential_provider_http_1.fromHttp; } });\ntslib_1.__exportStar(require(\"./fromEnv\"), exports);\ntslib_1.__exportStar(require(\"./fromIni\"), exports);\ntslib_1.__exportStar(require(\"./fromInstanceMetadata\"), exports);\ntslib_1.__exportStar(require(\"./fromNodeProviderChain\"), exports);\ntslib_1.__exportStar(require(\"./fromProcess\"), exports);\ntslib_1.__exportStar(require(\"./fromSSO\"), exports);\ntslib_1.__exportStar(require(\"./fromTemporaryCredentials\"), exports);\ntslib_1.__exportStar(require(\"./fromTokenFile\"), exports);\ntslib_1.__exportStar(require(\"./fromWebToken\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.AssumeRoleCommand = void 0;\nconst sts_1 = require(\"@aws-sdk/nested-clients/sts\");\nObject.defineProperty(exports, \"AssumeRoleCommand\", { enumerable: true, get: function () { return sts_1.AssumeRoleCommand; } });\nObject.defineProperty(exports, \"STSClient\", { enumerable: true, get: function () { return sts_1.STSClient; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOHttpAuthSchemeProvider = exports.defaultSSOHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"awsssoportal\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"GetRoleCredentials\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccountRoles\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"ListAccounts\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n case \"Logout\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://portal.sso.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n GetRoleCredentialsCommand: () => GetRoleCredentialsCommand,\n GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog,\n InvalidRequestException: () => InvalidRequestException,\n ListAccountRolesCommand: () => ListAccountRolesCommand,\n ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsCommand: () => ListAccountsCommand,\n ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog,\n LogoutCommand: () => LogoutCommand,\n LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog,\n ResourceNotFoundException: () => ResourceNotFoundException,\n RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog,\n SSO: () => SSO,\n SSOClient: () => SSOClient,\n SSOServiceException: () => SSOServiceException,\n TooManyRequestsException: () => TooManyRequestsException,\n UnauthorizedException: () => UnauthorizedException,\n __Client: () => import_smithy_client.Client,\n paginateListAccountRoles: () => paginateListAccountRoles,\n paginateListAccounts: () => paginateListAccounts\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SSOClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\n\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"awsssoportal\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/SSOClient.ts\nvar import_runtimeConfig = require(\"././runtimeConfig\");\n\n// src/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/SSOClient.ts\nvar SSOClient = class extends import_smithy_client.Client {\n static {\n __name(this, \"SSOClient\");\n }\n /**\n * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/SSO.ts\n\n\n// src/commands/GetRoleCredentialsCommand.ts\n\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\n\n\n// src/models/models_0.ts\n\n\n// src/models/SSOServiceException.ts\n\nvar SSOServiceException = class _SSOServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"SSOServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOServiceException.prototype);\n }\n};\n\n// src/models/models_0.ts\nvar InvalidRequestException = class _InvalidRequestException extends SSOServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n }\n};\nvar ResourceNotFoundException = class _ResourceNotFoundException extends SSOServiceException {\n static {\n __name(this, \"ResourceNotFoundException\");\n }\n name = \"ResourceNotFoundException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ResourceNotFoundException.prototype);\n }\n};\nvar TooManyRequestsException = class _TooManyRequestsException extends SSOServiceException {\n static {\n __name(this, \"TooManyRequestsException\");\n }\n name = \"TooManyRequestsException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _TooManyRequestsException.prototype);\n }\n};\nvar UnauthorizedException = class _UnauthorizedException extends SSOServiceException {\n static {\n __name(this, \"UnauthorizedException\");\n }\n name = \"UnauthorizedException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedException.prototype);\n }\n};\nvar GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"GetRoleCredentialsRequestFilterSensitiveLog\");\nvar RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.secretAccessKey && { secretAccessKey: import_smithy_client.SENSITIVE_STRING },\n ...obj.sessionToken && { sessionToken: import_smithy_client.SENSITIVE_STRING }\n}), \"RoleCredentialsFilterSensitiveLog\");\nvar GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) }\n}), \"GetRoleCredentialsResponseFilterSensitiveLog\");\nvar ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountRolesRequestFilterSensitiveLog\");\nvar ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"ListAccountsRequestFilterSensitiveLog\");\nvar LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client.SENSITIVE_STRING }\n}), \"LogoutRequestFilterSensitiveLog\");\n\n// src/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\n\n\nvar se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/federation/credentials\");\n const query = (0, import_smithy_client.map)({\n [_rn]: [, (0, import_smithy_client.expectNonNull)(input[_rN], `roleName`)],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_GetRoleCredentialsCommand\");\nvar se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/roles\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()],\n [_ai]: [, (0, import_smithy_client.expectNonNull)(input[_aI], `accountId`)]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountRolesCommand\");\nvar se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/assignment/accounts\");\n const query = (0, import_smithy_client.map)({\n [_nt]: [, input[_nT]],\n [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()]\n });\n let body;\n b.m(\"GET\").h(headers).q(query).b(body);\n return b.build();\n}, \"se_ListAccountsCommand\");\nvar se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core.requestBuilder)(input, context);\n const headers = (0, import_smithy_client.map)({}, import_smithy_client.isSerializableHeaderValue, {\n [_xasbt]: input[_aT]\n });\n b.bp(\"/logout\");\n let body;\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_LogoutCommand\");\nvar de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n roleCredentials: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_GetRoleCredentialsCommand\");\nvar de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n nextToken: import_smithy_client.expectString,\n roleList: import_smithy_client._json\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountRolesCommand\");\nvar de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client.take)(data, {\n accountList: import_smithy_client._json,\n nextToken: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_ListAccountsCommand\");\nvar de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client.map)({\n $metadata: deserializeMetadata(output)\n });\n await (0, import_smithy_client.collectBody)(output.body, context);\n return contents;\n}, \"de_LogoutCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client.withBaseException)(SSOServiceException);\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ResourceNotFoundExceptionRes\");\nvar de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_TooManyRequestsExceptionRes\");\nvar de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client.take)(data, {\n message: import_smithy_client.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar _aI = \"accountId\";\nvar _aT = \"accessToken\";\nvar _ai = \"account_id\";\nvar _mR = \"maxResults\";\nvar _mr = \"max_result\";\nvar _nT = \"nextToken\";\nvar _nt = \"next_token\";\nvar _rN = \"roleName\";\nvar _rn = \"role_name\";\nvar _xasbt = \"x-amz-sso_bearer_token\";\n\n// src/commands/GetRoleCredentialsCommand.ts\nvar GetRoleCredentialsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"GetRoleCredentials\", {}).n(\"SSOClient\", \"GetRoleCredentialsCommand\").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() {\n static {\n __name(this, \"GetRoleCredentialsCommand\");\n }\n};\n\n// src/commands/ListAccountRolesCommand.ts\n\n\n\nvar ListAccountRolesCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccountRoles\", {}).n(\"SSOClient\", \"ListAccountRolesCommand\").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() {\n static {\n __name(this, \"ListAccountRolesCommand\");\n }\n};\n\n// src/commands/ListAccountsCommand.ts\n\n\n\nvar ListAccountsCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"ListAccounts\", {}).n(\"SSOClient\", \"ListAccountsCommand\").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() {\n static {\n __name(this, \"ListAccountsCommand\");\n }\n};\n\n// src/commands/LogoutCommand.ts\n\n\n\nvar LogoutCommand = class extends import_smithy_client.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"SWBPortalService\", \"Logout\", {}).n(\"SSOClient\", \"LogoutCommand\").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() {\n static {\n __name(this, \"LogoutCommand\");\n }\n};\n\n// src/SSO.ts\nvar commands = {\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand\n};\nvar SSO = class extends SSOClient {\n static {\n __name(this, \"SSO\");\n }\n};\n(0, import_smithy_client.createAggregatedClient)(commands, SSO);\n\n// src/pagination/ListAccountRolesPaginator.ts\n\nvar paginateListAccountRoles = (0, import_core.createPaginator)(SSOClient, ListAccountRolesCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n\n// src/pagination/ListAccountsPaginator.ts\n\nvar paginateListAccounts = (0, import_core.createPaginator)(SSOClient, ListAccountsCommand, \"nextToken\", \"nextToken\", \"maxResults\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SSOServiceException,\n __Client,\n SSOClient,\n SSO,\n $Command,\n GetRoleCredentialsCommand,\n ListAccountRolesCommand,\n ListAccountsCommand,\n LogoutCommand,\n paginateListAccountRoles,\n paginateListAccounts,\n InvalidRequestException,\n ResourceNotFoundException,\n TooManyRequestsException,\n UnauthorizedException,\n GetRoleCredentialsRequestFilterSensitiveLog,\n RoleCredentialsFilterSensitiveLog,\n GetRoleCredentialsResponseFilterSensitiveLog,\n ListAccountRolesRequestFilterSensitiveLog,\n ListAccountsRequestFilterSensitiveLog,\n LogoutRequestFilterSensitiveLog\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID,\n ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE,\n ENV_EXPIRATION: () => ENV_EXPIRATION,\n ENV_KEY: () => ENV_KEY,\n ENV_SECRET: () => ENV_SECRET,\n ENV_SESSION: () => ENV_SESSION,\n fromEnv: () => fromEnv\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnv.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nvar ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nvar ENV_SESSION = \"AWS_SESSION_TOKEN\";\nvar ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nvar ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nvar ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nvar fromEnv = /* @__PURE__ */ __name((init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n const credentials = {\n accessKeyId,\n secretAccessKey,\n ...sessionToken && { sessionToken },\n ...expiry && { expiration: new Date(expiry) },\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS\", \"g\");\n return credentials;\n }\n throw new import_property_provider.CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n}, \"fromEnv\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_KEY,\n ENV_SECRET,\n ENV_SESSION,\n ENV_EXPIRATION,\n ENV_CREDENTIAL_SCOPE,\n ENV_ACCOUNT_ID,\n fromEnv\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUrl = void 0;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst LOOPBACK_CIDR_IPv4 = \"127.0.0.0/8\";\nconst LOOPBACK_CIDR_IPv6 = \"::1/128\";\nconst ECS_CONTAINER_HOST = \"169.254.170.2\";\nconst EKS_CONTAINER_HOST_IPv4 = \"169.254.170.23\";\nconst EKS_CONTAINER_HOST_IPv6 = \"[fd00:ec2::23]\";\nconst checkUrl = (url, logger) => {\n if (url.protocol === \"https:\") {\n return;\n }\n if (url.hostname === ECS_CONTAINER_HOST ||\n url.hostname === EKS_CONTAINER_HOST_IPv4 ||\n url.hostname === EKS_CONTAINER_HOST_IPv6) {\n return;\n }\n if (url.hostname.includes(\"[\")) {\n if (url.hostname === \"[::1]\" || url.hostname === \"[0000:0000:0000:0000:0000:0000:0000:0001]\") {\n return;\n }\n }\n else {\n if (url.hostname === \"localhost\") {\n return;\n }\n const ipComponents = url.hostname.split(\".\");\n const inRange = (component) => {\n const num = parseInt(component, 10);\n return 0 <= num && num <= 255;\n };\n if (ipComponents[0] === \"127\" &&\n inRange(ipComponents[1]) &&\n inRange(ipComponents[2]) &&\n inRange(ipComponents[3]) &&\n ipComponents.length === 4) {\n return;\n }\n }\n throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:\n - loopback CIDR 127.0.0.0/8 or [::1/128]\n - ECS container host 169.254.170.2\n - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });\n};\nexports.checkUrl = checkUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nconst tslib_1 = require(\"tslib\");\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst promises_1 = tslib_1.__importDefault(require(\"fs/promises\"));\nconst checkUrl_1 = require(\"./checkUrl\");\nconst requestHelpers_1 = require(\"./requestHelpers\");\nconst retry_wrapper_1 = require(\"./retry-wrapper\");\nconst AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst DEFAULT_LINK_LOCAL_HOST = \"http://169.254.170.2\";\nconst AWS_CONTAINER_CREDENTIALS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = \"AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE\";\nconst AWS_CONTAINER_AUTHORIZATION_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromHttp = (options = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-http - fromHttp\");\n let host;\n const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];\n const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];\n const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];\n const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];\n const warn = options.logger?.constructor?.name === \"NoOpLogger\" || !options.logger ? console.warn : options.logger.warn;\n if (relative && full) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.\");\n warn(\"awsContainerCredentialsFullUri will take precedence.\");\n }\n if (token && tokenFile) {\n warn(\"@aws-sdk/credential-provider-http: \" +\n \"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.\");\n warn(\"awsContainerAuthorizationToken will take precedence.\");\n }\n if (full) {\n host = full;\n }\n else if (relative) {\n host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.\nSet AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });\n }\n const url = new URL(host);\n (0, checkUrl_1.checkUrl)(url, options.logger);\n const requestHandler = new node_http_handler_1.NodeHttpHandler({\n requestTimeout: options.timeout ?? 1000,\n connectionTimeout: options.timeout ?? 1000,\n });\n return (0, retry_wrapper_1.retryWrapper)(async () => {\n const request = (0, requestHelpers_1.createGetRequest)(url);\n if (token) {\n request.headers.Authorization = token;\n }\n else if (tokenFile) {\n request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString();\n }\n try {\n const result = await requestHandler.handle(request);\n return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, \"CREDENTIALS_HTTP\", \"z\"));\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });\n }\n }, options.maxRetries ?? 3, options.timeout ?? 1000);\n};\nexports.fromHttp = fromHttp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGetRequest = createGetRequest;\nexports.getCredentials = getCredentials;\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_stream_1 = require(\"@smithy/util-stream\");\nfunction createGetRequest(url) {\n return new protocol_http_1.HttpRequest({\n protocol: url.protocol,\n hostname: url.hostname,\n port: Number(url.port),\n path: url.pathname,\n query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {\n acc[k] = v;\n return acc;\n }, {}),\n fragment: url.hash,\n });\n}\nasync function getCredentials(response, logger) {\n const stream = (0, util_stream_1.sdkStreamMixin)(response.body);\n const str = await stream.transformToString();\n if (response.statusCode === 200) {\n const parsed = JSON.parse(str);\n if (typeof parsed.AccessKeyId !== \"string\" ||\n typeof parsed.SecretAccessKey !== \"string\" ||\n typeof parsed.Token !== \"string\" ||\n typeof parsed.Expiration !== \"string\") {\n throw new property_provider_1.CredentialsProviderError(\"HTTP credential provider response not of the required format, an object matching: \" +\n \"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }\", { logger });\n }\n return {\n accessKeyId: parsed.AccessKeyId,\n secretAccessKey: parsed.SecretAccessKey,\n sessionToken: parsed.Token,\n expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration),\n };\n }\n if (response.statusCode >= 400 && response.statusCode < 500) {\n let parsedBody = {};\n try {\n parsedBody = JSON.parse(str);\n }\n catch (e) { }\n throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {\n Code: parsedBody.Code,\n Message: parsedBody.Message,\n });\n }\n throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWrapper = void 0;\nconst retryWrapper = (toRetry, maxRetries, delayMs) => {\n return async () => {\n for (let i = 0; i < maxRetries; ++i) {\n try {\n return await toRetry();\n }\n catch (e) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n }\n return await toRetry();\n };\n};\nexports.retryWrapper = retryWrapper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHttp = void 0;\nvar fromHttp_1 = require(\"./fromHttp/fromHttp\");\nObject.defineProperty(exports, \"fromHttp\", { enumerable: true, get: function () { return fromHttp_1.fromHttp; } });\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromIni: () => fromIni\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromIni.ts\n\n\n// src/resolveProfileData.ts\n\n\n// src/resolveAssumeRoleCredentials.ts\n\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveCredentialSource.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger) => {\n const sourceProvidersMap = {\n EcsContainer: /* @__PURE__ */ __name(async (options) => {\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is EcsContainer\");\n return async () => (0, import_property_provider.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);\n }, \"EcsContainer\"),\n Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata\");\n const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n return async () => fromInstanceMetadata(options)().then(setNamedProvider);\n }, \"Ec2InstanceMetadata\"),\n Environment: /* @__PURE__ */ __name(async (options) => {\n logger?.debug(\"@aws-sdk/credential-provider-ini - credential_source is Environment\");\n const { fromEnv } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-env\")));\n return async () => fromEnv(options)().then(setNamedProvider);\n }, \"Environment\")\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource];\n } else {\n throw new import_property_provider.CredentialsProviderError(\n `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,\n { logger }\n );\n }\n}, \"resolveCredentialSource\");\nvar setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_NAMED_PROVIDER\", \"p\"), \"setNamedProvider\");\n\n// src/resolveAssumeRoleCredentials.ts\nvar isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = \"default\", logger } = {}) => {\n return Boolean(arg) && typeof arg === \"object\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));\n}, \"isAssumeRoleProfile\");\nvar isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withSourceProfile = typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\n if (withSourceProfile) {\n logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);\n }\n return withSourceProfile;\n}, \"isAssumeRoleWithSourceProfile\");\nvar isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {\n const withProviderProfile = typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\n if (withProviderProfile) {\n logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);\n }\n return withProviderProfile;\n}, \"isCredentialSourceProfile\");\nvar resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {\n options.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)\");\n const profileData = profiles[profileName];\n const { source_profile, region } = profileData;\n if (!options.roleAssumer) {\n const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sts\")));\n options.roleAssumer = getDefaultRoleAssumer(\n {\n ...options.clientConfig,\n credentialProviderLogger: options.logger,\n parentClientConfig: {\n ...options?.parentClientConfig,\n region: region ?? options?.parentClientConfig?.region\n }\n },\n options.clientPlugins\n );\n }\n if (source_profile && source_profile in visitedProfiles) {\n throw new import_property_provider.CredentialsProviderError(\n `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(\", \"),\n { logger: options.logger }\n );\n }\n options.logger?.debug(\n `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`\n );\n const sourceCredsProvider = source_profile ? resolveProfileData(\n source_profile,\n profiles,\n options,\n {\n ...visitedProfiles,\n [source_profile]: true\n },\n isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})\n ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();\n if (isCredentialSourceWithoutRoleArn(profileData)) {\n return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\"));\n } else {\n const params = {\n RoleArn: profileData.role_arn,\n RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: profileData.external_id,\n DurationSeconds: parseInt(profileData.duration_seconds || \"3600\", 10)\n };\n const { mfa_serial } = profileData;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,\n { logger: options.logger, tryNextLink: false }\n );\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SOURCE_PROFILE\", \"o\")\n );\n }\n}, \"resolveAssumeRoleCredentials\");\nvar isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {\n return !section.role_arn && !!section.credential_source;\n}, \"isCredentialSourceWithoutRoleArn\");\n\n// src/resolveProcessCredentials.ts\n\nvar isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.credential_process === \"string\", \"isProcessProfile\");\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\"))).then(\n ({ fromProcess }) => fromProcess({\n ...options,\n profile\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_PROCESS\", \"v\"))\n), \"resolveProcessCredentials\");\n\n// src/resolveSsoCredentials.ts\n\nvar resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO({\n profile,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n clientConfig: options.clientConfig\n })().then((creds) => {\n if (profileData.sso_session) {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO\", \"r\");\n } else {\n return (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_SSO_LEGACY\", \"t\");\n }\n });\n}, \"resolveSsoCredentials\");\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveStaticCredentials.ts\n\nvar isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.aws_access_key_id === \"string\" && typeof arg.aws_secret_access_key === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 && [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1, \"isStaticCredsProfile\");\nvar resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope },\n ...profile.aws_account_id && { accountId: profile.aws_account_id }\n };\n return (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n}, \"resolveStaticCredentials\");\n\n// src/resolveWebIdentityCredentials.ts\n\nvar isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === \"object\" && typeof arg.web_identity_token_file === \"string\" && typeof arg.role_arn === \"string\" && [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1, \"isWebIdentityProfile\");\nvar resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\"))).then(\n ({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig\n })().then((creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\"))\n), \"resolveWebIdentityCredentials\");\n\n// src/resolveProfileData.ts\nvar resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {\n return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);\n }\n if (isStaticCredsProfile(data)) {\n return resolveStaticCredentials(data, options);\n }\n if (isWebIdentityProfile(data)) {\n return resolveWebIdentityCredentials(data, options);\n }\n if (isProcessProfile(data)) {\n return resolveProcessCredentials(options, profileName);\n }\n if (isSsoProfile(data)) {\n return await resolveSsoCredentials(profileName, data, options);\n }\n throw new import_property_provider.CredentialsProviderError(\n `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,\n { logger: options.logger }\n );\n}, \"resolveProfileData\");\n\n// src/fromIni.ts\nvar fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/credential-provider-ini - fromIni\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProfileData(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: _init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init\n );\n}, \"fromIni\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromIni\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n credentialsTreatedAsExpired: () => credentialsTreatedAsExpired,\n credentialsWillNeedRefresh: () => credentialsWillNeedRefresh,\n defaultProvider: () => defaultProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultProvider.ts\nvar import_credential_provider_env = require(\"@aws-sdk/credential-provider-env\");\n\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/remoteProvider.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nvar remoteProvider = /* @__PURE__ */ __name(async (init) => {\n const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM(require(\"@smithy/credential-provider-imds\")));\n if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata\");\n const { fromHttp } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-http\")));\n return (0, import_property_provider.chain)(fromHttp(init), fromContainerMetadata(init));\n }\n if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== \"false\") {\n return async () => {\n throw new import_property_provider.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\", { logger: init.logger });\n };\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata\");\n return fromInstanceMetadata(init);\n}, \"remoteProvider\");\n\n// src/defaultProvider.ts\nvar multipleCredentialSourceWarningEmitted = false;\nvar defaultProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(\n async () => {\n const profile = init.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE];\n if (profile) {\n const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET];\n if (envStaticCredentialsAreSet) {\n if (!multipleCredentialSourceWarningEmitted) {\n const warnFn = init.logger?.warn && init.logger?.constructor?.name !== \"NoOpLogger\" ? init.logger.warn : console.warn;\n warnFn(\n `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:\n Multiple credential sources detected: \n Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.\n This SDK will proceed with the AWS_PROFILE value.\n \n However, a future version may change this behavior to prefer the ENV static credentials.\n Please ensure that your environment only sets either the AWS_PROFILE or the\n AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.\n`\n );\n multipleCredentialSourceWarningEmitted = true;\n }\n }\n throw new import_property_provider.CredentialsProviderError(\"AWS_PROFILE is set, skipping fromEnv provider.\", {\n logger: init.logger,\n tryNextLink: true\n });\n }\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromEnv\");\n return (0, import_credential_provider_env.fromEnv)(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n throw new import_property_provider.CredentialsProviderError(\n \"Skipping SSO provider in default chain (inputs do not include SSO fields).\",\n { logger: init.logger }\n );\n }\n const { fromSSO } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-sso\")));\n return fromSSO(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromIni\");\n const { fromIni } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-ini\")));\n return fromIni(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromProcess\");\n const { fromProcess } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-process\")));\n return fromProcess(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile\");\n const { fromTokenFile } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/credential-provider-web-identity\")));\n return fromTokenFile(init)();\n },\n async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-node - defaultProvider::remoteProvider\");\n return (await remoteProvider(init))();\n },\n async () => {\n throw new import_property_provider.CredentialsProviderError(\"Could not load credentials from any providers\", {\n tryNextLink: false,\n logger: init.logger\n });\n }\n ),\n credentialsTreatedAsExpired,\n credentialsWillNeedRefresh\n), \"defaultProvider\");\nvar credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0, \"credentialsWillNeedRefresh\");\nvar credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials) => credentials?.expiration !== void 0 && credentials.expiration.getTime() - Date.now() < 3e5, \"credentialsTreatedAsExpired\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n defaultProvider,\n credentialsWillNeedRefresh,\n credentialsTreatedAsExpired\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromProcess: () => fromProcess\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromProcess.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\n\n// src/resolveProcessCredentials.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_child_process = require(\"child_process\");\nvar import_util = require(\"util\");\n\n// src/getValidatedProcessCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = /* @__PURE__ */ new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n let accountId = data.AccountId;\n if (!accountId && profiles?.[profileName]?.aws_account_id) {\n accountId = profiles[profileName].aws_account_id;\n }\n const credentials = {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...data.SessionToken && { sessionToken: data.SessionToken },\n ...data.Expiration && { expiration: new Date(data.Expiration) },\n ...data.CredentialScope && { credentialScope: data.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_PROCESS\", \"w\");\n return credentials;\n}, \"getValidatedProcessCredentials\");\n\n// src/resolveProcessCredentials.ts\nvar resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== void 0) {\n const execPromise = (0, import_util.promisify)(import_child_process.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n } catch {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return getValidatedProcessCredentials(profileName, data, profiles);\n } catch (error) {\n throw new import_property_provider.CredentialsProviderError(error.message, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger });\n }\n } else {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {\n logger\n });\n }\n}, \"resolveProcessCredentials\");\n\n// src/fromProcess.ts\nvar fromProcess = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-process - fromProcess\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n return resolveProcessCredentials(\n (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n }),\n profiles,\n init.logger\n );\n}, \"fromProcess\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromProcess\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/loadSso.ts\nvar loadSso_exports = {};\n__export(loadSso_exports, {\n GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand,\n SSOClient: () => import_client_sso.SSOClient\n});\nvar import_client_sso;\nvar init_loadSso = __esm({\n \"src/loadSso.ts\"() {\n \"use strict\";\n import_client_sso = require(\"@aws-sdk/client-sso\");\n }\n});\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSSO: () => fromSSO,\n isSsoProfile: () => isSsoProfile,\n validateSsoProfile: () => validateSsoProfile\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSSO.ts\n\n\n\n// src/isSsoProfile.ts\nvar isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === \"string\" || typeof arg.sso_account_id === \"string\" || typeof arg.sso_session === \"string\" || typeof arg.sso_region === \"string\" || typeof arg.sso_role_name === \"string\"), \"isSsoProfile\");\n\n// src/resolveSSOCredentials.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_token_providers = require(\"@aws-sdk/token-providers\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nvar resolveSSOCredentials = /* @__PURE__ */ __name(async ({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig,\n parentClientConfig,\n profile,\n logger\n}) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await (0, import_token_providers.fromSso)({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString()\n };\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n } else {\n try {\n token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const { accessToken } = token;\n const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));\n const sso = ssoClient || new SSOClient2(\n Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion\n })\n );\n let ssoResp;\n try {\n ssoResp = await sso.send(\n new GetRoleCredentialsCommand2({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken\n })\n );\n } catch (e) {\n throw new import_property_provider.CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const {\n roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}\n } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new import_property_provider.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...credentialScope && { credentialScope },\n ...accountId && { accountId }\n };\n if (ssoSession) {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO\", \"s\");\n } else {\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n}, \"resolveSSOCredentials\");\n\n// src/validateSsoProfile.ts\n\nvar validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new import_property_provider.CredentialsProviderError(\n `Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\n \", \"\n )}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,\n { tryNextLink: false, logger }\n );\n }\n return profile;\n}, \"validateSsoProfile\");\n\n// src/fromSSO.ts\nvar fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(\n profile,\n init.logger\n );\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new import_property_provider.CredentialsProviderError(\n 'Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"',\n { tryNextLink: false, logger: init.logger }\n );\n } else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName\n });\n }\n}, \"fromSSO\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSSO,\n isSsoProfile,\n validateSsoProfile\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst client_1 = require(\"@aws-sdk/core/client\");\nconst property_provider_1 = require(\"@smithy/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromTokenFile\");\n const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];\n const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];\n const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\", {\n logger: init.logger,\n });\n }\n const credentials = await (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {\n (0, client_1.setCredentialFeature)(credentials, \"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN\", \"h\");\n }\n return credentials;\n};\nexports.fromTokenFile = fromTokenFile;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst fromWebToken = (init) => async (awsIdentityProperties) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-web-identity - fromWebToken\");\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;\n let { roleAssumerWithWebIdentity } = init;\n if (!roleAssumerWithWebIdentity) {\n const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar(require(\"@aws-sdk/nested-clients/sts\")));\n roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({\n ...init.clientConfig,\n credentialProviderLogger: init.logger,\n parentClientConfig: {\n ...awsIdentityProperties?.callerClientConfig,\n ...init.parentClientConfig,\n },\n }, init.clientPlugins);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"././fromTokenFile\"), module.exports);\n__reExport(index_exports, require(\"././fromWebToken\"), module.exports);\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromTokenFile,\n fromWebToken\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = {\n profile: config?.profile,\n logger: clientSharedValues.logger,\n };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromEnvSigningName: () => fromEnvSigningName,\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromEnvSigningName.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_httpAuthSchemes = require(\"@aws-sdk/core/httpAuthSchemes\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar fromEnvSigningName = /* @__PURE__ */ __name(({ logger, signingName } = {}) => async () => {\n logger?.debug?.(\"@aws-sdk/token-providers - fromEnvSigningName\");\n if (!signingName) {\n throw new import_property_provider.TokenProviderError(\"Please pass 'signingName' to compute environment variable key\", { logger });\n }\n const bearerTokenKey = (0, import_httpAuthSchemes.getBearerTokenEnvKey)(signingName);\n if (!(bearerTokenKey in process.env)) {\n throw new import_property_provider.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });\n }\n const token = { token: process.env[bearerTokenKey] };\n (0, import_client.setTokenFeature)(token, \"BEARER_SERVICE_ENV_VARS\", \"3\");\n return token;\n}, \"fromEnvSigningName\");\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\n\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromEnvSigningName,\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveDefaultAwsRegionalEndpointsConfig: () => resolveDefaultAwsRegionalEndpointsConfig,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n toEndpointV1: () => toEndpointV1,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n description: \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveDefaultAwsRegionalEndpointsConfig.ts\nvar import_url_parser = require(\"@smithy/url-parser\");\nvar resolveDefaultAwsRegionalEndpointsConfig = /* @__PURE__ */ __name((input) => {\n if (typeof input.endpointProvider !== \"function\") {\n throw new Error(\"@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client.\");\n }\n const { endpoint } = input;\n if (endpoint === void 0) {\n input.endpoint = async () => {\n return toEndpointV1(\n input.endpointProvider(\n {\n Region: typeof input.region === \"function\" ? await input.region() : input.region,\n UseDualStack: typeof input.useDualstackEndpoint === \"function\" ? await input.useDualstackEndpoint() : input.useDualstackEndpoint,\n UseFIPS: typeof input.useFipsEndpoint === \"function\" ? await input.useFipsEndpoint() : input.useFipsEndpoint,\n Endpoint: void 0\n },\n { logger: input.logger }\n )\n );\n };\n }\n return input;\n}, \"resolveDefaultAwsRegionalEndpointsConfig\");\nvar toEndpointV1 = /* @__PURE__ */ __name((endpoint) => (0, import_url_parser.parseUrl)(endpoint.url), \"toEndpointV1\");\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveDefaultAwsRegionalEndpointsConfig,\n toEndpointV1,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n MetadataService: () => MetadataService\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/MetadataService.ts\nvar import_node_config_provider = require(\"@smithy/node-config-provider\");\nvar import_node_http_handler = require(\"@smithy/node-http-handler\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_util_stream = require(\"@smithy/util-stream\");\n\n// src/ConfigLoaders.ts\nvar ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nvar CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nvar ENDPOINT_SELECTORS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[ENV_ENDPOINT_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[CONFIG_ENDPOINT_NAME], \"configFileSelector\"),\n default: \"http://169.254.169.254\" /* IPv4 */\n};\nvar ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nvar CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nvar ENDPOINT_MODE_SELECTORS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[ENV_ENDPOINT_MODE_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[CONFIG_ENDPOINT_MODE_NAME], \"configFileSelector\"),\n default: \"IPv4\" /* IPv4 */\n};\nvar AWS_EC2_METADATA_V1_DISABLED = \"AWS_EC2_METADATA_V1_DISABLED\";\nvar PROFILE_AWS_EC2_METADATA_V1_DISABLED = \"ec2_metadata_v1_disabled\";\nvar IMDSv1_DISABLED_SELECTORS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[AWS_EC2_METADATA_V1_DISABLED] ? env[AWS_EC2_METADATA_V1_DISABLED] !== \"false\" : void 0, \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED] ? profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED] !== \"false\" : void 0, \"configFileSelector\"),\n default: false\n};\n\n// src/MetadataService.ts\nvar MetadataService = class {\n static {\n __name(this, \"MetadataService\");\n }\n disableFetchToken;\n config;\n /**\n * Creates a new MetadataService object with a given set of options.\n */\n constructor(options = {}) {\n this.config = (async () => {\n const profile = options?.profile || process.env.AWS_PROFILE;\n return {\n endpoint: options.endpoint ?? await (0, import_node_config_provider.loadConfig)(ENDPOINT_SELECTORS, { profile })(),\n httpOptions: {\n timeout: options?.httpOptions?.timeout || 0\n },\n ec2MetadataV1Disabled: options?.ec2MetadataV1Disabled ?? await (0, import_node_config_provider.loadConfig)(IMDSv1_DISABLED_SELECTORS, { profile })()\n };\n })();\n this.disableFetchToken = options?.disableFetchToken || false;\n }\n async request(path, options) {\n const { endpoint, ec2MetadataV1Disabled, httpOptions } = await this.config;\n const handler = new import_node_http_handler.NodeHttpHandler({\n requestTimeout: httpOptions?.timeout,\n connectionTimeout: httpOptions?.timeout\n });\n const endpointUrl = new URL(endpoint);\n const headers = options.headers || {};\n if (this.disableFetchToken && ec2MetadataV1Disabled) {\n throw new Error(\"IMDSv1 is disabled and fetching token is disabled, cannot make the request.\");\n }\n if (!this.disableFetchToken) {\n try {\n headers[\"x-aws-ec2-metadata-token\"] = await this.fetchMetadataToken();\n } catch (err) {\n if (ec2MetadataV1Disabled) {\n throw err;\n }\n }\n }\n const request = new import_protocol_http.HttpRequest({\n method: options.method || \"GET\",\n // Default to GET if no method is specified\n headers,\n hostname: endpointUrl.hostname,\n path: endpointUrl.pathname + path,\n protocol: endpointUrl.protocol\n });\n try {\n const { response } = await handler.handle(request, {});\n if (response.statusCode === 200 && response.body) {\n return (0, import_util_stream.sdkStreamMixin)(response.body).transformToString();\n } else {\n throw new Error(`Request failed with status code ${response.statusCode}`);\n }\n } catch (error) {\n throw new Error(`Error making request to the metadata service: ${error}`);\n }\n }\n async fetchMetadataToken() {\n const { endpoint, httpOptions } = await this.config;\n const handler = new import_node_http_handler.NodeHttpHandler({\n requestTimeout: httpOptions?.timeout,\n connectionTimeout: httpOptions?.timeout\n });\n const endpointUrl = new URL(endpoint);\n const tokenRequest = new import_protocol_http.HttpRequest({\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\"\n // 6 hours;\n },\n hostname: endpointUrl.hostname,\n path: \"/latest/api/token\",\n protocol: endpointUrl.protocol\n });\n try {\n const { response } = await handler.handle(tokenRequest, {});\n if (response.statusCode === 200 && response.body) {\n return (0, import_util_stream.sdkStreamMixin)(response.body).transformToString();\n } else {\n throw new Error(`Failed to fetch metadata token with status code ${response.statusCode}`);\n }\n } catch (error) {\n if (error?.statusCode === 400) {\n throw new Error(`Error fetching metadata token: ${error}`);\n } else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n this.disableFetchToken = true;\n throw new Error(`Error fetching metadata token: ${error}. disableFetchToken is enabled`);\n }\n throw new Error(`Error fetching metadata token: ${error}`);\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n MetadataService\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n Upload: () => Upload\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/Upload.ts\nvar import_client_s3 = require(\"@aws-sdk/client-s3\");\nvar import_abort_controller = require(\"@smithy/abort-controller\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar import_events = require(\"events\");\n\n// src/bytelength.ts\nvar import_buffer = require(\"buffer\");\nvar import_runtimeConfig = require(\"././runtimeConfig\");\nvar byteLength = /* @__PURE__ */ __name((input) => {\n if (input === null || input === void 0) return 0;\n if (typeof input === \"string\") {\n return import_buffer.Buffer.byteLength(input);\n }\n if (typeof input.byteLength === \"number\") {\n return input.byteLength;\n } else if (typeof input.length === \"number\") {\n return input.length;\n } else if (typeof input.size === \"number\") {\n return input.size;\n } else if (typeof input.path === \"string\") {\n try {\n return import_runtimeConfig.ClientDefaultValues.lstatSync(input.path).size;\n } catch (error) {\n return void 0;\n }\n }\n return void 0;\n}, \"byteLength\");\n\n// src/chunker.ts\n\nvar import_stream = require(\"stream\");\n\n// src/chunks/getChunkStream.ts\n\nasync function* getChunkStream(data, partSize, getNextData) {\n let partNumber = 1;\n const currentBuffer = { chunks: [], length: 0 };\n for await (const datum of getNextData(data)) {\n currentBuffer.chunks.push(datum);\n currentBuffer.length += datum.byteLength;\n while (currentBuffer.length > partSize) {\n const dataChunk = currentBuffer.chunks.length > 1 ? import_buffer.Buffer.concat(currentBuffer.chunks) : currentBuffer.chunks[0];\n yield {\n partNumber,\n data: dataChunk.subarray(0, partSize)\n };\n currentBuffer.chunks = [dataChunk.subarray(partSize)];\n currentBuffer.length = currentBuffer.chunks[0].byteLength;\n partNumber += 1;\n }\n }\n yield {\n partNumber,\n data: currentBuffer.chunks.length !== 1 ? import_buffer.Buffer.concat(currentBuffer.chunks) : currentBuffer.chunks[0],\n lastPart: true\n };\n}\n__name(getChunkStream, \"getChunkStream\");\n\n// src/chunks/getChunkUint8Array.ts\nasync function* getChunkUint8Array(data, partSize) {\n let partNumber = 1;\n let startByte = 0;\n let endByte = partSize;\n while (endByte < data.byteLength) {\n yield {\n partNumber,\n data: data.subarray(startByte, endByte)\n };\n partNumber += 1;\n startByte = endByte;\n endByte = startByte + partSize;\n }\n yield {\n partNumber,\n data: data.subarray(startByte),\n lastPart: true\n };\n}\n__name(getChunkUint8Array, \"getChunkUint8Array\");\n\n// src/chunks/getDataReadable.ts\n\nasync function* getDataReadable(data) {\n for await (const chunk of data) {\n if (import_buffer.Buffer.isBuffer(chunk) || chunk instanceof Uint8Array) {\n yield chunk;\n } else {\n yield import_buffer.Buffer.from(chunk);\n }\n }\n}\n__name(getDataReadable, \"getDataReadable\");\n\n// src/chunks/getDataReadableStream.ts\n\nasync function* getDataReadableStream(data) {\n const reader = data.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n return;\n }\n if (import_buffer.Buffer.isBuffer(value) || value instanceof Uint8Array) {\n yield value;\n } else {\n yield import_buffer.Buffer.from(value);\n }\n }\n } catch (e) {\n throw e;\n } finally {\n reader.releaseLock();\n }\n}\n__name(getDataReadableStream, \"getDataReadableStream\");\n\n// src/chunker.ts\nvar getChunk = /* @__PURE__ */ __name((data, partSize) => {\n if (data instanceof Uint8Array) {\n return getChunkUint8Array(data, partSize);\n }\n if (data instanceof import_stream.Readable) {\n return getChunkStream(data, partSize, getDataReadable);\n }\n if (data instanceof String || typeof data === \"string\") {\n return getChunkUint8Array(import_buffer.Buffer.from(data), partSize);\n }\n if (typeof data.stream === \"function\") {\n return getChunkStream(data.stream(), partSize, getDataReadableStream);\n }\n if (data instanceof ReadableStream) {\n return getChunkStream(data, partSize, getDataReadableStream);\n }\n throw new Error(\n \"Body Data is unsupported format, expected data to be one of: string | Uint8Array | Buffer | Readable | ReadableStream | Blob;.\"\n );\n}, \"getChunk\");\n\n// src/Upload.ts\nvar Upload = class _Upload extends import_events.EventEmitter {\n static {\n __name(this, \"Upload\");\n }\n /**\n * @internal\n * modified in testing only.\n */\n static MIN_PART_SIZE = 1024 * 1024 * 5;\n /**\n * S3 multipart upload does not allow more than 10,000 parts.\n */\n MAX_PARTS = 1e4;\n // Defaults.\n queueSize = 4;\n partSize = _Upload.MIN_PART_SIZE;\n leavePartsOnError = false;\n tags = [];\n client;\n params;\n // used for reporting progress.\n totalBytes;\n bytesUploadedSoFar;\n // used in the upload.\n abortController;\n concurrentUploaders = [];\n createMultiPartPromise;\n abortMultipartUploadCommand = null;\n uploadedParts = [];\n uploadEnqueuedPartsCount = 0;\n /**\n * Last UploadId if the upload was done with MultipartUpload and not PutObject.\n */\n uploadId;\n uploadEvent;\n isMultiPart = true;\n singleUploadResult;\n sent = false;\n constructor(options) {\n super();\n this.queueSize = options.queueSize || this.queueSize;\n this.partSize = options.partSize || this.partSize;\n this.leavePartsOnError = options.leavePartsOnError || this.leavePartsOnError;\n this.tags = options.tags || this.tags;\n this.client = options.client;\n this.params = options.params;\n this.__validateInput();\n this.totalBytes = byteLength(this.params.Body);\n this.bytesUploadedSoFar = 0;\n this.abortController = options.abortController ?? new import_abort_controller.AbortController();\n }\n async abort() {\n this.abortController.abort();\n }\n async done() {\n if (this.sent) {\n throw new Error(\n \"@aws-sdk/lib-storage: this instance of Upload has already executed .done(). Create a new instance.\"\n );\n }\n this.sent = true;\n return await Promise.race([this.__doMultipartUpload(), this.__abortTimeout(this.abortController.signal)]);\n }\n on(event, listener) {\n this.uploadEvent = event;\n return super.on(event, listener);\n }\n async __uploadUsingPut(dataPart) {\n this.isMultiPart = false;\n const params = { ...this.params, Body: dataPart.data };\n const clientConfig = this.client.config;\n const requestHandler = clientConfig.requestHandler;\n const eventEmitter = requestHandler instanceof import_events.EventEmitter ? requestHandler : null;\n const uploadEventListener = /* @__PURE__ */ __name((event) => {\n this.bytesUploadedSoFar = event.loaded;\n this.totalBytes = event.total;\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }, \"uploadEventListener\");\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n const resolved = await Promise.all([this.client.send(new import_client_s3.PutObjectCommand(params)), clientConfig?.endpoint?.()]);\n const putResult = resolved[0];\n let endpoint = resolved[1];\n if (!endpoint) {\n endpoint = (0, import_middleware_endpoint.toEndpointV1)(\n await (0, import_middleware_endpoint.getEndpointFromInstructions)(params, import_client_s3.PutObjectCommand, {\n ...clientConfig\n })\n );\n }\n if (!endpoint) {\n throw new Error('Could not resolve endpoint from S3 \"client.config.endpoint()\" nor EndpointsV2.');\n }\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n const locationKey = this.params.Key.split(\"/\").map((segment) => (0, import_smithy_client.extendedEncodeURIComponent)(segment)).join(\"/\");\n const locationBucket = (0, import_smithy_client.extendedEncodeURIComponent)(this.params.Bucket);\n const Location = (() => {\n const endpointHostnameIncludesBucket = endpoint.hostname.startsWith(`${locationBucket}.`);\n const forcePathStyle = this.client.config.forcePathStyle;\n const optionalPort = endpoint.port ? `:${endpoint.port}` : ``;\n if (forcePathStyle) {\n return `${endpoint.protocol}//${endpoint.hostname}${optionalPort}/${locationBucket}/${locationKey}`;\n }\n if (endpointHostnameIncludesBucket) {\n return `${endpoint.protocol}//${endpoint.hostname}${optionalPort}/${locationKey}`;\n }\n return `${endpoint.protocol}//${locationBucket}.${endpoint.hostname}${optionalPort}/${locationKey}`;\n })();\n this.singleUploadResult = {\n ...putResult,\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n Location\n };\n const totalSize = byteLength(dataPart.data);\n this.__notifyProgress({\n loaded: totalSize,\n total: totalSize,\n part: 1,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }\n async __createMultipartUpload() {\n const requestChecksumCalculation = await this.client.config.requestChecksumCalculation();\n if (!this.createMultiPartPromise) {\n const createCommandParams = { ...this.params, Body: void 0 };\n if (requestChecksumCalculation === \"WHEN_SUPPORTED\") {\n createCommandParams.ChecksumAlgorithm = this.params.ChecksumAlgorithm || import_client_s3.ChecksumAlgorithm.CRC32;\n }\n this.createMultiPartPromise = this.client.send(new import_client_s3.CreateMultipartUploadCommand(createCommandParams)).then((createMpuResponse) => {\n this.abortMultipartUploadCommand = new import_client_s3.AbortMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: createMpuResponse.UploadId\n });\n return createMpuResponse;\n });\n }\n return this.createMultiPartPromise;\n }\n async __doConcurrentUpload(dataFeeder) {\n for await (const dataPart of dataFeeder) {\n if (this.uploadEnqueuedPartsCount > this.MAX_PARTS) {\n throw new Error(\n `Exceeded ${this.MAX_PARTS} parts in multipart upload to Bucket: ${this.params.Bucket} Key: ${this.params.Key}.`\n );\n }\n if (this.abortController.signal.aborted) {\n return;\n }\n if (dataPart.partNumber === 1 && dataPart.lastPart) {\n return await this.__uploadUsingPut(dataPart);\n }\n if (!this.uploadId) {\n const { UploadId } = await this.__createMultipartUpload();\n this.uploadId = UploadId;\n if (this.abortController.signal.aborted) {\n return;\n }\n }\n const partSize = byteLength(dataPart.data) || 0;\n const requestHandler = this.client.config.requestHandler;\n const eventEmitter = requestHandler instanceof import_events.EventEmitter ? requestHandler : null;\n let lastSeenBytes = 0;\n const uploadEventListener = /* @__PURE__ */ __name((event, request) => {\n const requestPartSize = Number(request.query[\"partNumber\"]) || -1;\n if (requestPartSize !== dataPart.partNumber) {\n return;\n }\n if (event.total && partSize) {\n this.bytesUploadedSoFar += event.loaded - lastSeenBytes;\n lastSeenBytes = event.loaded;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }, \"uploadEventListener\");\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n this.uploadEnqueuedPartsCount += 1;\n const partResult = await this.client.send(\n new import_client_s3.UploadPartCommand({\n ...this.params,\n // dataPart.data is chunked into a non-streaming buffer\n // so the ContentLength from the input should not be used for MPU.\n ContentLength: void 0,\n UploadId: this.uploadId,\n Body: dataPart.data,\n PartNumber: dataPart.partNumber\n })\n );\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n if (this.abortController.signal.aborted) {\n return;\n }\n if (!partResult.ETag) {\n throw new Error(\n `Part ${dataPart.partNumber} is missing ETag in UploadPart response. Missing Bucket CORS configuration for ETag header?`\n );\n }\n this.uploadedParts.push({\n PartNumber: dataPart.partNumber,\n ETag: partResult.ETag,\n ...partResult.ChecksumCRC32 && { ChecksumCRC32: partResult.ChecksumCRC32 },\n ...partResult.ChecksumCRC32C && { ChecksumCRC32C: partResult.ChecksumCRC32C },\n ...partResult.ChecksumSHA1 && { ChecksumSHA1: partResult.ChecksumSHA1 },\n ...partResult.ChecksumSHA256 && { ChecksumSHA256: partResult.ChecksumSHA256 }\n });\n if (eventEmitter === null) {\n this.bytesUploadedSoFar += partSize;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket\n });\n }\n }\n async __doMultipartUpload() {\n const dataFeeder = getChunk(this.params.Body, this.partSize);\n const concurrentUploaderFailures = [];\n for (let index = 0; index < this.queueSize; index++) {\n const currentUpload = this.__doConcurrentUpload(dataFeeder).catch((err) => {\n concurrentUploaderFailures.push(err);\n });\n this.concurrentUploaders.push(currentUpload);\n }\n await Promise.all(this.concurrentUploaders);\n if (concurrentUploaderFailures.length >= 1) {\n await this.markUploadAsAborted();\n throw concurrentUploaderFailures[0];\n }\n if (this.abortController.signal.aborted) {\n await this.markUploadAsAborted();\n throw Object.assign(new Error(\"Upload aborted.\"), { name: \"AbortError\" });\n }\n let result;\n if (this.isMultiPart) {\n this.uploadedParts.sort((a, b) => a.PartNumber - b.PartNumber);\n const uploadCompleteParams = {\n ...this.params,\n Body: void 0,\n UploadId: this.uploadId,\n MultipartUpload: {\n Parts: this.uploadedParts\n }\n };\n result = await this.client.send(new import_client_s3.CompleteMultipartUploadCommand(uploadCompleteParams));\n if (typeof result?.Location === \"string\" && result.Location.includes(\"%2F\")) {\n result.Location = result.Location.replace(/%2F/g, \"/\");\n }\n } else {\n result = this.singleUploadResult;\n }\n this.abortMultipartUploadCommand = null;\n if (this.tags.length) {\n await this.client.send(\n new import_client_s3.PutObjectTaggingCommand({\n ...this.params,\n Tagging: {\n TagSet: this.tags\n }\n })\n );\n }\n return result;\n }\n /**\n * Abort the last multipart upload in progress\n * if we know the upload id, the user did not specify to leave the parts, and\n * we have a prepared AbortMultipartUpload command.\n */\n async markUploadAsAborted() {\n if (this.uploadId && !this.leavePartsOnError && null !== this.abortMultipartUploadCommand) {\n await this.client.send(this.abortMultipartUploadCommand);\n this.abortMultipartUploadCommand = null;\n }\n }\n __notifyProgress(progress) {\n if (this.uploadEvent) {\n this.emit(this.uploadEvent, progress);\n }\n }\n async __abortTimeout(abortSignal) {\n return new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Upload aborted.\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n });\n }\n __validateInput() {\n if (!this.params) {\n throw new Error(`InputError: Upload requires params to be passed to upload.`);\n }\n if (!this.client) {\n throw new Error(`InputError: Upload requires a AWS client to do uploads with.`);\n }\n if (this.partSize < _Upload.MIN_PART_SIZE) {\n throw new Error(\n `EntityTooSmall: Your proposed upload partsize [${this.partSize}] is smaller than the minimum allowed size [${_Upload.MIN_PART_SIZE}] (5MB)`\n );\n }\n if (this.queueSize < 1) {\n throw new Error(`Queue size: Must have at least one uploading queue.`);\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n Upload\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientDefaultValues = void 0;\nconst fs_1 = require(\"fs\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nexports.ClientDefaultValues = {\n ...runtimeConfig_shared_1.ClientSharedValues,\n runtime: \"node\",\n lstatSync: fs_1.lstatSync,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientSharedValues = void 0;\nexports.ClientSharedValues = {\n lstatSync: () => { },\n};\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME: () => NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME,\n NODE_USE_ARN_REGION_CONFIG_OPTIONS: () => NODE_USE_ARN_REGION_CONFIG_OPTIONS,\n NODE_USE_ARN_REGION_ENV_NAME: () => NODE_USE_ARN_REGION_ENV_NAME,\n NODE_USE_ARN_REGION_INI_NAME: () => NODE_USE_ARN_REGION_INI_NAME,\n bucketEndpointMiddleware: () => bucketEndpointMiddleware,\n bucketEndpointMiddlewareOptions: () => bucketEndpointMiddlewareOptions,\n bucketHostname: () => bucketHostname,\n getArnResources: () => getArnResources,\n getBucketEndpointPlugin: () => getBucketEndpointPlugin,\n getSuffixForArnEndpoint: () => getSuffixForArnEndpoint,\n resolveBucketEndpointConfig: () => resolveBucketEndpointConfig,\n validateAccountId: () => validateAccountId,\n validateDNSHostLabel: () => validateDNSHostLabel,\n validateNoDualstack: () => validateNoDualstack,\n validateNoFIPS: () => validateNoFIPS,\n validateOutpostService: () => validateOutpostService,\n validatePartition: () => validatePartition,\n validateRegion: () => validateRegion\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/NodeDisableMultiregionAccessPointConfigOptions.ts\nvar import_util_config_provider = require(\"@smithy/util-config-provider\");\nvar NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = \"AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS\";\nvar NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = \"s3_disable_multiregion_access_points\";\nvar NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => (0, import_util_config_provider.booleanSelector)(env, NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME, import_util_config_provider.SelectorType.ENV), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => (0, import_util_config_provider.booleanSelector)(profile, NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME, import_util_config_provider.SelectorType.CONFIG), \"configFileSelector\"),\n default: false\n};\n\n// src/NodeUseArnRegionConfigOptions.ts\n\nvar NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nvar NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\nvar NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => (0, import_util_config_provider.booleanSelector)(env, NODE_USE_ARN_REGION_ENV_NAME, import_util_config_provider.SelectorType.ENV), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => (0, import_util_config_provider.booleanSelector)(profile, NODE_USE_ARN_REGION_INI_NAME, import_util_config_provider.SelectorType.CONFIG), \"configFileSelector\"),\n /**\n * useArnRegion has specific behavior when undefined instead of false.\n * We therefore use undefined as the default value instead of false.\n */\n default: void 0\n};\n\n// src/bucketEndpointMiddleware.ts\nvar import_util_arn_parser = require(\"@aws-sdk/util-arn-parser\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/bucketHostnameUtils.ts\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\nvar DOT_PATTERN = /\\./;\nvar S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nvar S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\\.amazonaws\\.com$/;\nvar AWS_PARTITION_SUFFIX = \"amazonaws.com\";\nvar isBucketNameOptions = /* @__PURE__ */ __name((options) => typeof options.bucketName === \"string\", \"isBucketNameOptions\");\nvar isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), \"isDnsCompatibleBucketName\");\nvar getRegionalSuffix = /* @__PURE__ */ __name((hostname) => {\n const parts = hostname.match(S3_HOSTNAME_PATTERN);\n return [parts[4], hostname.replace(new RegExp(`^${parts[0]}`), \"\")];\n}, \"getRegionalSuffix\");\nvar getSuffix = /* @__PURE__ */ __name((hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [\"us-east-1\", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname), \"getSuffix\");\nvar getSuffixForArnEndpoint = /* @__PURE__ */ __name((hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [hostname.replace(`.${AWS_PARTITION_SUFFIX}`, \"\"), AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname), \"getSuffixForArnEndpoint\");\nvar validateArnEndpointOptions = /* @__PURE__ */ __name((options) => {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n}, \"validateArnEndpointOptions\");\nvar validateService = /* @__PURE__ */ __name((service) => {\n if (service !== \"s3\" && service !== \"s3-outposts\" && service !== \"s3-object-lambda\") {\n throw new Error(\"Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component\");\n }\n}, \"validateService\");\nvar validateS3Service = /* @__PURE__ */ __name((service) => {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n}, \"validateS3Service\");\nvar validateOutpostService = /* @__PURE__ */ __name((service) => {\n if (service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3-posts' in Outpost ARN service component\");\n }\n}, \"validateOutpostService\");\nvar validatePartition = /* @__PURE__ */ __name((partition, options) => {\n if (partition !== options.clientPartition) {\n throw new Error(`Partition in ARN is incompatible, got \"${partition}\" but expected \"${options.clientPartition}\"`);\n }\n}, \"validatePartition\");\nvar validateRegion = /* @__PURE__ */ __name((region, options) => {\n}, \"validateRegion\");\nvar validateRegionalClient = /* @__PURE__ */ __name((region) => {\n if ([\"s3-external-1\", \"aws-global\"].includes(region)) {\n throw new Error(`Client region ${region} is not regional`);\n }\n}, \"validateRegionalClient\");\nvar validateAccountId = /* @__PURE__ */ __name((accountId) => {\n if (!/[0-9]{12}/.exec(accountId)) {\n throw new Error(\"Access point ARN accountID does not match regex '[0-9]{12}'\");\n }\n}, \"validateAccountId\");\nvar validateDNSHostLabel = /* @__PURE__ */ __name((label, options = { tlsCompatible: true }) => {\n if (label.length >= 64 || !/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(label) || /(\\d+\\.){3}\\d+/.test(label) || /[.-]{2}/.test(label) || options?.tlsCompatible && DOT_PATTERN.test(label)) {\n throw new Error(`Invalid DNS label ${label}`);\n }\n}, \"validateDNSHostLabel\");\nvar validateCustomEndpoint = /* @__PURE__ */ __name((options) => {\n if (options.isCustomEndpoint) {\n if (options.dualstackEndpoint) throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (options.accelerateEndpoint) throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n}, \"validateCustomEndpoint\");\nvar getArnResources = /* @__PURE__ */ __name((resource) => {\n const delimiter = resource.includes(\":\") ? \":\" : \"/\";\n const [resourceType, ...rest] = resource.split(delimiter);\n if (resourceType === \"accesspoint\") {\n if (rest.length !== 1 || rest[0] === \"\") {\n throw new Error(`Access Point ARN should have one resource accesspoint${delimiter}{accesspointname}`);\n }\n return { accesspointName: rest[0] };\n } else if (resourceType === \"outpost\") {\n if (!rest[0] || rest[1] !== \"accesspoint\" || !rest[2] || rest.length !== 3) {\n throw new Error(\n `Outpost ARN should have resource outpost${delimiter}{outpostId}${delimiter}accesspoint${delimiter}{accesspointName}`\n );\n }\n const [outpostId, _, accesspointName] = rest;\n return { outpostId, accesspointName };\n } else {\n throw new Error(`ARN resource should begin with 'accesspoint${delimiter}' or 'outpost${delimiter}'`);\n }\n}, \"getArnResources\");\nvar validateNoDualstack = /* @__PURE__ */ __name((dualstackEndpoint) => {\n}, \"validateNoDualstack\");\nvar validateNoFIPS = /* @__PURE__ */ __name((useFipsEndpoint) => {\n if (useFipsEndpoint) throw new Error(`FIPS region is not supported with Outpost.`);\n}, \"validateNoFIPS\");\nvar validateMrapAlias = /* @__PURE__ */ __name((name) => {\n try {\n name.split(\".\").forEach((label) => {\n validateDNSHostLabel(label);\n });\n } catch (e) {\n throw new Error(`\"${name}\" is not a DNS compatible name.`);\n }\n}, \"validateMrapAlias\");\n\n// src/bucketHostname.ts\nvar bucketHostname = /* @__PURE__ */ __name((options) => {\n validateCustomEndpoint(options);\n return isBucketNameOptions(options) ? (\n // Construct endpoint when bucketName is a string referring to a bucket name\n getEndpointFromBucketName(options)\n ) : (\n // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point\n getEndpointFromArn(options)\n );\n}, \"bucketHostname\");\nvar getEndpointFromBucketName = /* @__PURE__ */ __name(({\n accelerateEndpoint = false,\n clientRegion: region,\n baseHostname,\n bucketName,\n dualstackEndpoint = false,\n fipsEndpoint = false,\n pathStyleEndpoint = false,\n tlsCompatible = true,\n isCustomEndpoint = false\n}) => {\n const [clientRegion, hostnameSuffix] = isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname);\n if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || tlsCompatible && DOT_PATTERN.test(bucketName)) {\n return {\n bucketEndpoint: false,\n hostname: dualstackEndpoint ? `s3.dualstack.${clientRegion}.${hostnameSuffix}` : baseHostname\n };\n }\n if (accelerateEndpoint) {\n baseHostname = `s3-accelerate${dualstackEndpoint ? \".dualstack\" : \"\"}.${hostnameSuffix}`;\n } else if (dualstackEndpoint) {\n baseHostname = `s3.dualstack.${clientRegion}.${hostnameSuffix}`;\n }\n return {\n bucketEndpoint: true,\n hostname: `${bucketName}.${baseHostname}`\n };\n}, \"getEndpointFromBucketName\");\nvar getEndpointFromArn = /* @__PURE__ */ __name((options) => {\n const { isCustomEndpoint, baseHostname, clientRegion } = options;\n const hostnameSuffix = isCustomEndpoint ? baseHostname : getSuffixForArnEndpoint(baseHostname)[1];\n const {\n pathStyleEndpoint,\n accelerateEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n bucketName,\n clientPartition = \"aws\"\n } = options;\n validateArnEndpointOptions({ pathStyleEndpoint, accelerateEndpoint, tlsCompatible });\n const { service, partition, accountId, region, resource } = bucketName;\n validateService(service);\n validatePartition(partition, { clientPartition });\n validateAccountId(accountId);\n const { accesspointName, outpostId } = getArnResources(resource);\n if (service === \"s3-object-lambda\") {\n return getEndpointFromObjectLambdaArn({ ...options, tlsCompatible, bucketName, accesspointName, hostnameSuffix });\n }\n if (region === \"\") {\n return getEndpointFromMRAPArn({ ...options, clientRegion, mrapAlias: accesspointName, hostnameSuffix });\n }\n if (outpostId) {\n return getEndpointFromOutpostArn({ ...options, clientRegion, outpostId, accesspointName, hostnameSuffix });\n }\n return getEndpointFromAccessPointArn({ ...options, clientRegion, accesspointName, hostnameSuffix });\n}, \"getEndpointFromArn\");\nvar getEndpointFromObjectLambdaArn = /* @__PURE__ */ __name(({\n dualstackEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n useArnRegion,\n clientRegion,\n clientSigningRegion = clientRegion,\n accesspointName,\n bucketName,\n hostnameSuffix\n}) => {\n const { accountId, region, service } = bucketName;\n validateRegionalClient(clientRegion);\n const DNSHostLabel = `${accesspointName}-${accountId}`;\n validateDNSHostLabel(DNSHostLabel, { tlsCompatible });\n const endpointRegion = useArnRegion ? region : clientRegion;\n const signingRegion = useArnRegion ? region : clientSigningRegion;\n return {\n bucketEndpoint: true,\n hostname: `${DNSHostLabel}.${service}${fipsEndpoint ? \"-fips\" : \"\"}.${endpointRegion}.${hostnameSuffix}`,\n signingRegion,\n signingService: service\n };\n}, \"getEndpointFromObjectLambdaArn\");\nvar getEndpointFromMRAPArn = /* @__PURE__ */ __name(({\n disableMultiregionAccessPoints,\n dualstackEndpoint = false,\n isCustomEndpoint,\n mrapAlias,\n hostnameSuffix\n}) => {\n if (disableMultiregionAccessPoints === true) {\n throw new Error(\"SDK is attempting to use a MRAP ARN. Please enable to feature.\");\n }\n validateMrapAlias(mrapAlias);\n return {\n bucketEndpoint: true,\n hostname: `${mrapAlias}${isCustomEndpoint ? \"\" : `.accesspoint.s3-global`}.${hostnameSuffix}`,\n signingRegion: \"*\"\n };\n}, \"getEndpointFromMRAPArn\");\nvar getEndpointFromOutpostArn = /* @__PURE__ */ __name(({\n useArnRegion,\n clientRegion,\n clientSigningRegion = clientRegion,\n bucketName,\n outpostId,\n dualstackEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n accesspointName,\n isCustomEndpoint,\n hostnameSuffix\n}) => {\n validateRegionalClient(clientRegion);\n const DNSHostLabel = `${accesspointName}-${bucketName.accountId}`;\n validateDNSHostLabel(DNSHostLabel, { tlsCompatible });\n const endpointRegion = useArnRegion ? bucketName.region : clientRegion;\n const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;\n validateOutpostService(bucketName.service);\n validateDNSHostLabel(outpostId, { tlsCompatible });\n validateNoFIPS(fipsEndpoint);\n const hostnamePrefix = `${DNSHostLabel}.${outpostId}`;\n return {\n bucketEndpoint: true,\n hostname: `${hostnamePrefix}${isCustomEndpoint ? \"\" : `.s3-outposts.${endpointRegion}`}.${hostnameSuffix}`,\n signingRegion,\n signingService: \"s3-outposts\"\n };\n}, \"getEndpointFromOutpostArn\");\nvar getEndpointFromAccessPointArn = /* @__PURE__ */ __name(({\n useArnRegion,\n clientRegion,\n clientSigningRegion = clientRegion,\n bucketName,\n dualstackEndpoint = false,\n fipsEndpoint = false,\n tlsCompatible = true,\n accesspointName,\n isCustomEndpoint,\n hostnameSuffix\n}) => {\n validateRegionalClient(clientRegion);\n const hostnamePrefix = `${accesspointName}-${bucketName.accountId}`;\n validateDNSHostLabel(hostnamePrefix, { tlsCompatible });\n const endpointRegion = useArnRegion ? bucketName.region : clientRegion;\n const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;\n validateS3Service(bucketName.service);\n return {\n bucketEndpoint: true,\n hostname: `${hostnamePrefix}${isCustomEndpoint ? \"\" : `.s3-accesspoint${fipsEndpoint ? \"-fips\" : \"\"}${dualstackEndpoint ? \".dualstack\" : \"\"}.${endpointRegion}`}.${hostnameSuffix}`,\n signingRegion\n };\n}, \"getEndpointFromAccessPointArn\");\n\n// src/bucketEndpointMiddleware.ts\nvar bucketEndpointMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { Bucket: bucketName } = args.input;\n let replaceBucketInPath = options.bucketEndpoint;\n const request = args.request;\n if (import_protocol_http.HttpRequest.isInstance(request)) {\n if (options.bucketEndpoint) {\n request.hostname = bucketName;\n } else if ((0, import_util_arn_parser.validate)(bucketName)) {\n const bucketArn = (0, import_util_arn_parser.parse)(bucketName);\n const clientRegion = await options.region();\n const useDualstackEndpoint = await options.useDualstackEndpoint();\n const useFipsEndpoint = await options.useFipsEndpoint();\n const { partition, signingRegion = clientRegion } = await options.regionInfoProvider(clientRegion, { useDualstackEndpoint, useFipsEndpoint }) || {};\n const useArnRegion = await options.useArnRegion();\n const {\n hostname,\n bucketEndpoint,\n signingRegion: modifiedSigningRegion,\n signingService\n } = bucketHostname({\n bucketName: bucketArn,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: useDualstackEndpoint,\n fipsEndpoint: useFipsEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n useArnRegion,\n clientPartition: partition,\n clientSigningRegion: signingRegion,\n clientRegion,\n isCustomEndpoint: options.isCustomEndpoint,\n disableMultiregionAccessPoints: await options.disableMultiregionAccessPoints()\n });\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n } else {\n const clientRegion = await options.region();\n const dualstackEndpoint = await options.useDualstackEndpoint();\n const fipsEndpoint = await options.useFipsEndpoint();\n const { hostname, bucketEndpoint } = bucketHostname({\n bucketName,\n clientRegion,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint,\n fipsEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n isCustomEndpoint: options.isCustomEndpoint\n });\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n }\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n }\n return next({ ...args, request });\n}, \"bucketEndpointMiddleware\");\nvar bucketEndpointMiddlewareOptions = {\n tags: [\"BUCKET_ENDPOINT\"],\n name: \"bucketEndpointMiddleware\",\n relation: \"before\",\n toMiddleware: \"hostHeaderMiddleware\",\n override: true\n};\nvar getBucketEndpointPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getBucketEndpointPlugin\");\n\n// src/configurations.ts\nfunction resolveBucketEndpointConfig(input) {\n const {\n bucketEndpoint = false,\n forcePathStyle = false,\n useAccelerateEndpoint = false,\n // useArnRegion has specific behavior when undefined instead of false.\n useArnRegion,\n disableMultiregionAccessPoints = false\n } = input;\n return Object.assign(input, {\n bucketEndpoint,\n forcePathStyle,\n useAccelerateEndpoint,\n useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : () => Promise.resolve(useArnRegion),\n disableMultiregionAccessPoints: typeof disableMultiregionAccessPoints === \"function\" ? disableMultiregionAccessPoints : () => Promise.resolve(disableMultiregionAccessPoints)\n });\n}\n__name(resolveBucketEndpointConfig, \"resolveBucketEndpointConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getArnResources,\n getSuffixForArnEndpoint,\n validateOutpostService,\n validatePartition,\n validateAccountId,\n validateRegion,\n validateDNSHostLabel,\n validateNoDualstack,\n validateNoFIPS,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME,\n NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS,\n NODE_USE_ARN_REGION_ENV_NAME,\n NODE_USE_ARN_REGION_INI_NAME,\n NODE_USE_ARN_REGION_CONFIG_OPTIONS,\n bucketEndpointMiddleware,\n bucketEndpointMiddlewareOptions,\n getBucketEndpointPlugin,\n bucketHostname,\n resolveBucketEndpointConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addExpectContinueMiddleware: () => addExpectContinueMiddleware,\n addExpectContinueMiddlewareOptions: () => addExpectContinueMiddlewareOptions,\n getAddExpectContinuePlugin: () => getAddExpectContinuePlugin\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction addExpectContinueMiddleware(options) {\n return (next) => async (args) => {\n const { request } = args;\n if (import_protocol_http.HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n if (options.requestHandler?.constructor?.name !== \"FetchHttpHandler\") {\n request.headers = {\n ...request.headers,\n Expect: \"100-continue\"\n };\n }\n }\n return next({\n ...args,\n request\n });\n };\n}\n__name(addExpectContinueMiddleware, \"addExpectContinueMiddleware\");\nvar addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true\n};\nvar getAddExpectContinuePlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getAddExpectContinuePlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n addExpectContinueMiddlewareOptions,\n getAddExpectContinuePlugin,\n addExpectContinueMiddleware\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCrc32ChecksumAlgorithmFunction = void 0;\nconst tslib_1 = require(\"tslib\");\nconst crc32_1 = require(\"@aws-crypto/crc32\");\nconst util_1 = require(\"@aws-crypto/util\");\nconst zlib = tslib_1.__importStar(require(\"zlib\"));\nclass NodeCrc32 {\n checksum = 0;\n update(data) {\n this.checksum = zlib.crc32(data, this.checksum);\n }\n async digest() {\n return (0, util_1.numToUint8)(this.checksum);\n }\n reset() {\n this.checksum = 0;\n }\n}\nconst getCrc32ChecksumAlgorithmFunction = () => {\n if (typeof zlib.crc32 === \"undefined\") {\n return crc32_1.AwsCrc32;\n }\n return NodeCrc32;\n};\nexports.getCrc32ChecksumAlgorithmFunction = getCrc32ChecksumAlgorithmFunction;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n CONFIG_REQUEST_CHECKSUM_CALCULATION: () => CONFIG_REQUEST_CHECKSUM_CALCULATION,\n CONFIG_RESPONSE_CHECKSUM_VALIDATION: () => CONFIG_RESPONSE_CHECKSUM_VALIDATION,\n ChecksumAlgorithm: () => ChecksumAlgorithm,\n ChecksumLocation: () => ChecksumLocation,\n DEFAULT_CHECKSUM_ALGORITHM: () => DEFAULT_CHECKSUM_ALGORITHM,\n DEFAULT_REQUEST_CHECKSUM_CALCULATION: () => DEFAULT_REQUEST_CHECKSUM_CALCULATION,\n DEFAULT_RESPONSE_CHECKSUM_VALIDATION: () => DEFAULT_RESPONSE_CHECKSUM_VALIDATION,\n ENV_REQUEST_CHECKSUM_CALCULATION: () => ENV_REQUEST_CHECKSUM_CALCULATION,\n ENV_RESPONSE_CHECKSUM_VALIDATION: () => ENV_RESPONSE_CHECKSUM_VALIDATION,\n NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS: () => NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,\n NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS: () => NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,\n RequestChecksumCalculation: () => RequestChecksumCalculation,\n ResponseChecksumValidation: () => ResponseChecksumValidation,\n crc64NvmeCrtContainer: () => crc64NvmeCrtContainer,\n flexibleChecksumsMiddleware: () => flexibleChecksumsMiddleware,\n flexibleChecksumsMiddlewareOptions: () => flexibleChecksumsMiddlewareOptions,\n getFlexibleChecksumsPlugin: () => getFlexibleChecksumsPlugin,\n resolveFlexibleChecksumsConfig: () => resolveFlexibleChecksumsConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/constants.ts\nvar RequestChecksumCalculation = {\n /**\n * When set, a checksum will be calculated for all request payloads of operations\n * modeled with the {@link httpChecksum} trait where `requestChecksumRequired` is `true`\n * AND/OR a `requestAlgorithmMember` is modeled.\n * {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}\n */\n WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n /**\n * When set, a checksum will only be calculated for request payloads of operations\n * modeled with the {@link httpChecksum} trait where `requestChecksumRequired` is `true`\n * OR where a `requestAlgorithmMember` is modeled and the user sets it.\n * {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}\n */\n WHEN_REQUIRED: \"WHEN_REQUIRED\"\n};\nvar DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nvar ResponseChecksumValidation = {\n /**\n * When set, checksum validation MUST be performed on all response payloads of operations\n * modeled with the {@link httpChecksum} trait where `responseAlgorithms` is modeled,\n * except when no modeled checksum algorithms are supported by an SDK.\n * {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}\n */\n WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n /**\n * When set, checksum validation MUST NOT be performed on response payloads of operations UNLESS\n * the SDK supports the modeled checksum algorithms AND the user has set the `requestValidationModeMember` to `ENABLED`.\n * It is currently impossible to model an operation as requiring a response checksum,\n * but this setting leaves the door open for future updates.\n */\n WHEN_REQUIRED: \"WHEN_REQUIRED\"\n};\nvar DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nvar ChecksumAlgorithm = /* @__PURE__ */ ((ChecksumAlgorithm3) => {\n ChecksumAlgorithm3[\"MD5\"] = \"MD5\";\n ChecksumAlgorithm3[\"CRC32\"] = \"CRC32\";\n ChecksumAlgorithm3[\"CRC32C\"] = \"CRC32C\";\n ChecksumAlgorithm3[\"CRC64NVME\"] = \"CRC64NVME\";\n ChecksumAlgorithm3[\"SHA1\"] = \"SHA1\";\n ChecksumAlgorithm3[\"SHA256\"] = \"SHA256\";\n return ChecksumAlgorithm3;\n})(ChecksumAlgorithm || {});\nvar ChecksumLocation = /* @__PURE__ */ ((ChecksumLocation2) => {\n ChecksumLocation2[\"HEADER\"] = \"header\";\n ChecksumLocation2[\"TRAILER\"] = \"trailer\";\n return ChecksumLocation2;\n})(ChecksumLocation || {});\nvar DEFAULT_CHECKSUM_ALGORITHM = \"CRC32\" /* CRC32 */;\n\n// src/stringUnionSelector.ts\nvar stringUnionSelector = /* @__PURE__ */ __name((obj, key, union, type) => {\n if (!(key in obj)) return void 0;\n const value = obj[key].toUpperCase();\n if (!Object.values(union).includes(value)) {\n throw new TypeError(`Cannot load ${type} '${key}'. Expected one of ${Object.values(union)}, got '${obj[key]}'.`);\n }\n return value;\n}, \"stringUnionSelector\");\n\n// src/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.ts\nvar ENV_REQUEST_CHECKSUM_CALCULATION = \"AWS_REQUEST_CHECKSUM_CALCULATION\";\nvar CONFIG_REQUEST_CHECKSUM_CALCULATION = \"request_checksum_calculation\";\nvar NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => stringUnionSelector(env, ENV_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, \"env\" /* ENV */), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, \"shared config entry\" /* CONFIG */), \"configFileSelector\"),\n default: DEFAULT_REQUEST_CHECKSUM_CALCULATION\n};\n\n// src/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.ts\nvar ENV_RESPONSE_CHECKSUM_VALIDATION = \"AWS_RESPONSE_CHECKSUM_VALIDATION\";\nvar CONFIG_RESPONSE_CHECKSUM_VALIDATION = \"response_checksum_validation\";\nvar NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => stringUnionSelector(env, ENV_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, \"env\" /* ENV */), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, \"shared config entry\" /* CONFIG */), \"configFileSelector\"),\n default: DEFAULT_RESPONSE_CHECKSUM_VALIDATION\n};\n\n// src/crc64-nvme-crt-container.ts\nvar crc64NvmeCrtContainer = {\n CrtCrc64Nvme: null\n};\n\n// src/flexibleChecksumsMiddleware.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_util_stream = require(\"@smithy/util-stream\");\n\n// src/types.ts\nvar CLIENT_SUPPORTED_ALGORITHMS = [\n \"CRC32\" /* CRC32 */,\n \"CRC32C\" /* CRC32C */,\n \"CRC64NVME\" /* CRC64NVME */,\n \"SHA1\" /* SHA1 */,\n \"SHA256\" /* SHA256 */\n];\nvar PRIORITY_ORDER_ALGORITHMS = [\n \"SHA256\" /* SHA256 */,\n \"SHA1\" /* SHA1 */,\n \"CRC32\" /* CRC32 */,\n \"CRC32C\" /* CRC32C */,\n \"CRC64NVME\" /* CRC64NVME */\n];\n\n// src/getChecksumAlgorithmForRequest.ts\nvar getChecksumAlgorithmForRequest = /* @__PURE__ */ __name((input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {\n if (!requestAlgorithmMember) {\n return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired ? DEFAULT_CHECKSUM_ALGORITHM : void 0;\n }\n if (!input[requestAlgorithmMember]) {\n return void 0;\n }\n const checksumAlgorithm = input[requestAlgorithmMember];\n if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {\n throw new Error(\n `The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client. Select one of ${CLIENT_SUPPORTED_ALGORITHMS}.`\n );\n }\n return checksumAlgorithm;\n}, \"getChecksumAlgorithmForRequest\");\n\n// src/getChecksumLocationName.ts\nvar getChecksumLocationName = /* @__PURE__ */ __name((algorithm) => algorithm === \"MD5\" /* MD5 */ ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`, \"getChecksumLocationName\");\n\n// src/hasHeader.ts\nvar hasHeader = /* @__PURE__ */ __name((header, headers) => {\n const soughtHeader = header.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n}, \"hasHeader\");\n\n// src/hasHeaderWithPrefix.ts\nvar hasHeaderWithPrefix = /* @__PURE__ */ __name((headerPrefix, headers) => {\n const soughtHeaderPrefix = headerPrefix.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) {\n return true;\n }\n }\n return false;\n}, \"hasHeaderWithPrefix\");\n\n// src/isStreaming.ts\nvar import_is_array_buffer = require(\"@smithy/is-array-buffer\");\nvar isStreaming = /* @__PURE__ */ __name((body) => body !== void 0 && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !(0, import_is_array_buffer.isArrayBuffer)(body), \"isStreaming\");\n\n// src/selectChecksumAlgorithmFunction.ts\nvar import_crc32c = require(\"@aws-crypto/crc32c\");\nvar import_getCrc32ChecksumAlgorithmFunction = require(\"././getCrc32ChecksumAlgorithmFunction\");\nvar selectChecksumAlgorithmFunction = /* @__PURE__ */ __name((checksumAlgorithm, config) => {\n switch (checksumAlgorithm) {\n case \"MD5\" /* MD5 */:\n return config.md5;\n case \"CRC32\" /* CRC32 */:\n return (0, import_getCrc32ChecksumAlgorithmFunction.getCrc32ChecksumAlgorithmFunction)();\n case \"CRC32C\" /* CRC32C */:\n return import_crc32c.AwsCrc32c;\n case \"CRC64NVME\" /* CRC64NVME */:\n if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== \"function\") {\n throw new Error(\n `Please check whether you have installed the \"@aws-sdk/crc64-nvme-crt\" package explicitly. \nYou must also register the package by calling [require(\"@aws-sdk/crc64-nvme-crt\");] or an ESM equivalent such as [import \"@aws-sdk/crc64-nvme-crt\";]. \nFor more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`\n );\n }\n return crc64NvmeCrtContainer.CrtCrc64Nvme;\n case \"SHA1\" /* SHA1 */:\n return config.sha1;\n case \"SHA256\" /* SHA256 */:\n return config.sha256;\n default:\n throw new Error(`Unsupported checksum algorithm: ${checksumAlgorithm}`);\n }\n}, \"selectChecksumAlgorithmFunction\");\n\n// src/stringHasher.ts\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar stringHasher = /* @__PURE__ */ __name((checksumAlgorithmFn, body) => {\n const hash = new checksumAlgorithmFn();\n hash.update((0, import_util_utf8.toUint8Array)(body || \"\"));\n return hash.digest();\n}, \"stringHasher\");\n\n// src/flexibleChecksumsMiddleware.ts\nvar flexibleChecksumsMiddlewareOptions = {\n name: \"flexibleChecksumsMiddleware\",\n step: \"build\",\n tags: [\"BODY_CHECKSUM\"],\n override: true\n};\nvar flexibleChecksumsMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n if (hasHeaderWithPrefix(\"x-amz-checksum-\", args.request.headers)) {\n return next(args);\n }\n const { request, input } = args;\n const { body: requestBody, headers } = request;\n const { base64Encoder, streamHasher } = config;\n const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n const requestChecksumCalculation = await config.requestChecksumCalculation();\n const requestAlgorithmMemberName = requestAlgorithmMember?.name;\n const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;\n if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {\n if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {\n input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;\n if (requestAlgorithmMemberHttpHeader) {\n headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;\n }\n }\n }\n const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {\n requestChecksumRequired,\n requestAlgorithmMember: requestAlgorithmMember?.name,\n requestChecksumCalculation\n });\n let updatedBody = requestBody;\n let updatedHeaders = headers;\n if (checksumAlgorithm) {\n switch (checksumAlgorithm) {\n case \"CRC32\" /* CRC32 */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32\", \"U\");\n break;\n case \"CRC32C\" /* CRC32C */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32C\", \"V\");\n break;\n case \"CRC64NVME\" /* CRC64NVME */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC64\", \"W\");\n break;\n case \"SHA1\" /* SHA1 */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA1\", \"X\");\n break;\n case \"SHA256\" /* SHA256 */:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA256\", \"Y\");\n break;\n }\n const checksumLocationName = getChecksumLocationName(checksumAlgorithm);\n const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);\n if (isStreaming(requestBody)) {\n const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n updatedBody = getAwsChunkedEncodingStream(\n typeof config.requestStreamBufferSize === \"number\" && config.requestStreamBufferSize >= 8 * 1024 ? (0, import_util_stream.createBufferedReadable)(requestBody, config.requestStreamBufferSize, context.logger) : requestBody,\n {\n base64Encoder,\n bodyLengthChecker,\n checksumLocationName,\n checksumAlgorithmFn,\n streamHasher\n }\n );\n updatedHeaders = {\n ...headers,\n \"content-encoding\": headers[\"content-encoding\"] ? `${headers[\"content-encoding\"]},aws-chunked` : \"aws-chunked\",\n \"transfer-encoding\": \"chunked\",\n \"x-amz-decoded-content-length\": headers[\"content-length\"],\n \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n \"x-amz-trailer\": checksumLocationName\n };\n delete updatedHeaders[\"content-length\"];\n } else if (!hasHeader(checksumLocationName, headers)) {\n const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);\n updatedHeaders = {\n ...headers,\n [checksumLocationName]: base64Encoder(rawChecksum)\n };\n }\n }\n const result = await next({\n ...args,\n request: {\n ...request,\n headers: updatedHeaders,\n body: updatedBody\n }\n });\n return result;\n}, \"flexibleChecksumsMiddleware\");\n\n// src/flexibleChecksumsInputMiddleware.ts\n\nvar flexibleChecksumsInputMiddlewareOptions = {\n name: \"flexibleChecksumsInputMiddleware\",\n toMiddleware: \"serializerMiddleware\",\n relation: \"before\",\n tags: [\"BODY_CHECKSUM\"],\n override: true\n};\nvar flexibleChecksumsInputMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {\n const input = args.input;\n const { requestValidationModeMember } = middlewareConfig;\n const requestChecksumCalculation = await config.requestChecksumCalculation();\n const responseChecksumValidation = await config.responseChecksumValidation();\n switch (requestChecksumCalculation) {\n case RequestChecksumCalculation.WHEN_REQUIRED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED\", \"a\");\n break;\n case RequestChecksumCalculation.WHEN_SUPPORTED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED\", \"Z\");\n break;\n }\n switch (responseChecksumValidation) {\n case ResponseChecksumValidation.WHEN_REQUIRED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED\", \"c\");\n break;\n case ResponseChecksumValidation.WHEN_SUPPORTED:\n (0, import_core.setFeature)(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED\", \"b\");\n break;\n }\n if (requestValidationModeMember && !input[requestValidationModeMember]) {\n if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {\n input[requestValidationModeMember] = \"ENABLED\";\n }\n }\n return next(args);\n}, \"flexibleChecksumsInputMiddleware\");\n\n// src/flexibleChecksumsResponseMiddleware.ts\n\n\n// src/getChecksumAlgorithmListForResponse.ts\nvar getChecksumAlgorithmListForResponse = /* @__PURE__ */ __name((responseAlgorithms = []) => {\n const validChecksumAlgorithms = [];\n for (const algorithm of PRIORITY_ORDER_ALGORITHMS) {\n if (!responseAlgorithms.includes(algorithm) || !CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {\n continue;\n }\n validChecksumAlgorithms.push(algorithm);\n }\n return validChecksumAlgorithms;\n}, \"getChecksumAlgorithmListForResponse\");\n\n// src/isChecksumWithPartNumber.ts\nvar isChecksumWithPartNumber = /* @__PURE__ */ __name((checksum) => {\n const lastHyphenIndex = checksum.lastIndexOf(\"-\");\n if (lastHyphenIndex !== -1) {\n const numberPart = checksum.slice(lastHyphenIndex + 1);\n if (!numberPart.startsWith(\"0\")) {\n const number = parseInt(numberPart, 10);\n if (!isNaN(number) && number >= 1 && number <= 1e4) {\n return true;\n }\n }\n }\n return false;\n}, \"isChecksumWithPartNumber\");\n\n// src/validateChecksumFromResponse.ts\n\n\n// src/getChecksum.ts\nvar getChecksum = /* @__PURE__ */ __name(async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body)), \"getChecksum\");\n\n// src/validateChecksumFromResponse.ts\nvar validateChecksumFromResponse = /* @__PURE__ */ __name(async (response, { config, responseAlgorithms, logger }) => {\n const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);\n const { body: responseBody, headers: responseHeaders } = response;\n for (const algorithm of checksumAlgorithms) {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = responseHeaders[responseHeader];\n if (checksumFromResponse) {\n let checksumAlgorithmFn;\n try {\n checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);\n } catch (error) {\n if (algorithm === \"CRC64NVME\" /* CRC64NVME */) {\n logger?.warn(`Skipping ${\"CRC64NVME\" /* CRC64NVME */} checksum validation: ${error.message}`);\n continue;\n }\n throw error;\n }\n const { base64Encoder } = config;\n if (isStreaming(responseBody)) {\n response.body = (0, import_util_stream.createChecksumStream)({\n expectedChecksum: checksumFromResponse,\n checksumSourceLocation: responseHeader,\n checksum: new checksumAlgorithmFn(),\n source: responseBody,\n base64Encoder\n });\n return;\n }\n const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder });\n if (checksum === checksumFromResponse) {\n break;\n }\n throw new Error(\n `Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\" in response header \"${responseHeader}\".`\n );\n }\n }\n}, \"validateChecksumFromResponse\");\n\n// src/flexibleChecksumsResponseMiddleware.ts\nvar flexibleChecksumsResponseMiddlewareOptions = {\n name: \"flexibleChecksumsResponseMiddleware\",\n toMiddleware: \"deserializerMiddleware\",\n relation: \"after\",\n tags: [\"BODY_CHECKSUM\"],\n override: true\n};\nvar flexibleChecksumsResponseMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const input = args.input;\n const result = await next(args);\n const response = result.response;\n const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n const { clientName, commandName } = context;\n const isS3WholeObjectMultipartGetResponseChecksum = clientName === \"S3Client\" && commandName === \"GetObjectCommand\" && getChecksumAlgorithmListForResponse(responseAlgorithms).every((algorithm) => {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = response.headers[responseHeader];\n return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);\n });\n if (isS3WholeObjectMultipartGetResponseChecksum) {\n return result;\n }\n await validateChecksumFromResponse(response, {\n config,\n responseAlgorithms,\n logger: context.logger\n });\n }\n return result;\n}, \"flexibleChecksumsResponseMiddleware\");\n\n// src/getFlexibleChecksumsPlugin.ts\nvar getFlexibleChecksumsPlugin = /* @__PURE__ */ __name((config, middlewareConfig) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);\n clientStack.addRelativeTo(\n flexibleChecksumsInputMiddleware(config, middlewareConfig),\n flexibleChecksumsInputMiddlewareOptions\n );\n clientStack.addRelativeTo(\n flexibleChecksumsResponseMiddleware(config, middlewareConfig),\n flexibleChecksumsResponseMiddlewareOptions\n );\n }, \"applyToStack\")\n}), \"getFlexibleChecksumsPlugin\");\n\n// src/resolveFlexibleChecksumsConfig.ts\nvar import_util_middleware = require(\"@smithy/util-middleware\");\nvar resolveFlexibleChecksumsConfig = /* @__PURE__ */ __name((input) => {\n const { requestChecksumCalculation, responseChecksumValidation, requestStreamBufferSize } = input;\n return Object.assign(input, {\n requestChecksumCalculation: (0, import_util_middleware.normalizeProvider)(requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION),\n responseChecksumValidation: (0, import_util_middleware.normalizeProvider)(responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION),\n requestStreamBufferSize: Number(requestStreamBufferSize ?? 0)\n });\n}, \"resolveFlexibleChecksumsConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ENV_REQUEST_CHECKSUM_CALCULATION,\n CONFIG_REQUEST_CHECKSUM_CALCULATION,\n NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,\n ENV_RESPONSE_CHECKSUM_VALIDATION,\n CONFIG_RESPONSE_CHECKSUM_VALIDATION,\n NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,\n RequestChecksumCalculation,\n DEFAULT_REQUEST_CHECKSUM_CALCULATION,\n ResponseChecksumValidation,\n DEFAULT_RESPONSE_CHECKSUM_VALIDATION,\n ChecksumAlgorithm,\n ChecksumLocation,\n DEFAULT_CHECKSUM_ALGORITHM,\n crc64NvmeCrtContainer,\n flexibleChecksumsMiddlewareOptions,\n flexibleChecksumsMiddleware,\n getFlexibleChecksumsPlugin,\n resolveFlexibleChecksumsConfig\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getHostHeaderPlugin: () => getHostHeaderPlugin,\n hostHeaderMiddleware: () => hostHeaderMiddleware,\n hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions,\n resolveHostHeaderConfig: () => resolveHostHeaderConfig\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\n__name(resolveHostHeaderConfig, \"resolveHostHeaderConfig\");\nvar hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n } else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null) host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n}, \"hostHeaderMiddleware\");\nvar hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true\n};\nvar getHostHeaderPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getHostHeaderPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n hostHeaderMiddleware,\n hostHeaderMiddlewareOptions,\n getHostHeaderPlugin,\n resolveHostHeaderConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLocationConstraintPlugin: () => getLocationConstraintPlugin,\n locationConstraintMiddleware: () => locationConstraintMiddleware,\n locationConstraintMiddlewareOptions: () => locationConstraintMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\nfunction locationConstraintMiddleware(options) {\n return (next) => async (args) => {\n const { CreateBucketConfiguration } = args.input;\n const region = await options.region();\n if (!CreateBucketConfiguration?.LocationConstraint && !CreateBucketConfiguration?.Location) {\n args = {\n ...args,\n input: {\n ...args.input,\n CreateBucketConfiguration: region === \"us-east-1\" ? void 0 : { LocationConstraint: region }\n }\n };\n }\n return next(args);\n };\n}\n__name(locationConstraintMiddleware, \"locationConstraintMiddleware\");\nvar locationConstraintMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"LOCATION_CONSTRAINT\", \"CREATE_BUCKET_CONFIGURATION\"],\n name: \"locationConstraintMiddleware\",\n override: true\n};\nvar getLocationConstraintPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(locationConstraintMiddleware(config), locationConstraintMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLocationConstraintPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n locationConstraintMiddlewareOptions,\n getLocationConstraintPlugin,\n locationConstraintMiddleware\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getLoggerPlugin: () => getLoggerPlugin,\n loggerMiddleware: () => loggerMiddleware,\n loggerMiddlewareOptions: () => loggerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/loggerMiddleware.ts\nvar loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata\n });\n return response;\n } catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata\n });\n throw error;\n }\n}, \"loggerMiddleware\");\nvar loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true\n};\nvar getLoggerPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getLoggerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n loggerMiddleware,\n loggerMiddlewareOptions,\n getLoggerPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin: () => getRecursionDetectionPlugin,\n recursionDetectionMiddleware: () => recursionDetectionMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nvar recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request) || options.runtime !== \"node\") {\n return next(args);\n }\n const traceIdHeader = Object.keys(request.headers ?? {}).find((h) => h.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME;\n if (request.headers.hasOwnProperty(traceIdHeader)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0, \"nonEmptyString\");\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request\n });\n}, \"recursionDetectionMiddleware\");\nvar addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\"\n};\nvar getRecursionDetectionPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRecursionDetectionPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n recursionDetectionMiddleware,\n addRecursionDetectionMiddlewareOptions,\n getRecursionDetectionPlugin\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n copySnapshotPresignedUrlMiddleware: () => copySnapshotPresignedUrlMiddleware,\n copySnapshotPresignedUrlMiddlewareOptions: () => copySnapshotPresignedUrlMiddlewareOptions,\n getCopySnapshotPresignedUrlPlugin: () => getCopySnapshotPresignedUrlPlugin\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_util_format_url = require(\"@aws-sdk/util-format-url\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar version = \"2016-11-15\";\nfunction copySnapshotPresignedUrlMiddleware(options) {\n return (next, context) => async (args) => {\n const { input } = args;\n if (!input.PresignedUrl) {\n const destinationRegion = await options.region();\n const endpoint = await (0, import_middleware_endpoint.getEndpointFromInstructions)(\n input,\n {\n /**\n * Replication of {@link CopySnapshotCommand} in EC2.\n * Not imported due to circular dependency.\n */\n getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n };\n }\n },\n {\n ...options,\n region: input.SourceRegion\n }\n );\n const resolvedEndpoint = typeof options.endpoint === \"function\" ? await options.endpoint() : (0, import_middleware_endpoint.toEndpointV1)(endpoint);\n const requestToSign = new import_protocol_http.HttpRequest({\n ...resolvedEndpoint,\n protocol: \"https\",\n headers: {\n host: resolvedEndpoint.hostname\n },\n query: {\n // Values must be string instead of e.g. boolean\n // because we need to sign the serialized form.\n ...Object.entries(input).reduce((acc, [k, v]) => {\n acc[k] = String(v ?? \"\");\n return acc;\n }, {}),\n Action: \"CopySnapshot\",\n Version: version,\n DestinationRegion: destinationRegion\n }\n });\n const signer = new import_signature_v4.SignatureV4({\n credentials: options.credentials,\n region: input.SourceRegion,\n service: \"ec2\",\n sha256: options.sha256,\n uriEscapePath: options.signingEscapePath\n });\n const presignedRequest = await signer.presign(requestToSign, {\n expiresIn: 3600\n });\n args = {\n ...args,\n input: {\n ...args.input,\n DestinationRegion: destinationRegion,\n PresignedUrl: (0, import_util_format_url.formatUrl)(presignedRequest)\n }\n };\n if (import_protocol_http.HttpRequest.isInstance(args.request)) {\n const { request } = args;\n if (!(request.body ?? \"\").includes(\"DestinationRegion=\")) {\n request.body += `&DestinationRegion=${destinationRegion}`;\n }\n if (!(request.body ?? \"\").includes(\"PresignedUrl=\")) {\n request.body += `&PresignedUrl=${(0, import_smithy_client.extendedEncodeURIComponent)(args.input.PresignedUrl)}`;\n }\n }\n }\n return next(args);\n };\n}\n__name(copySnapshotPresignedUrlMiddleware, \"copySnapshotPresignedUrlMiddleware\");\nvar copySnapshotPresignedUrlMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"CROSS_REGION_PRESIGNED_URL\"],\n name: \"crossRegionPresignedUrlMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"endpointV2Middleware\"\n};\nvar getCopySnapshotPresignedUrlPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(copySnapshotPresignedUrlMiddleware(config), copySnapshotPresignedUrlMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getCopySnapshotPresignedUrlPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n copySnapshotPresignedUrlMiddlewareOptions,\n getCopySnapshotPresignedUrlPlugin,\n copySnapshotPresignedUrlMiddleware\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n changeResourceRecordSetsMiddleware: () => changeResourceRecordSetsMiddleware,\n changeResourceRecordSetsMiddlewareOptions: () => changeResourceRecordSetsMiddlewareOptions,\n getChangeResourceRecordSetsPlugin: () => getChangeResourceRecordSetsPlugin,\n getIdNormalizerPlugin: () => getIdNormalizerPlugin,\n idNormalizerMiddleware: () => idNormalizerMiddleware,\n idNormalizerMiddlewareOptions: () => idNormalizerMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/constants.ts\nvar IDENTIFIER_PREFIX_PATTERN = /^\\/(hostedzone|change|delegationset)\\//;\n\n// src/change-resource-record-sets.ts\nfunction changeResourceRecordSetsMiddleware() {\n return (next) => async (args) => {\n const { ChangeBatch } = args.input;\n const Changes = [];\n for (const change of ChangeBatch.Changes) {\n const { AliasTarget } = change.ResourceRecordSet;\n if (AliasTarget) {\n Changes.push({\n ...change,\n ResourceRecordSet: {\n ...change.ResourceRecordSet,\n AliasTarget: {\n ...AliasTarget,\n HostedZoneId: AliasTarget.HostedZoneId.replace(IDENTIFIER_PREFIX_PATTERN, \"\")\n }\n }\n });\n } else {\n Changes.push(change);\n }\n }\n return next({\n ...args,\n input: {\n ...args.input,\n ChangeBatch: {\n ...ChangeBatch,\n Changes\n }\n }\n });\n };\n}\n__name(changeResourceRecordSetsMiddleware, \"changeResourceRecordSetsMiddleware\");\nvar changeResourceRecordSetsMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"ROUTE53_IDS\", \"CHANGE_RESOURCE_RECORD_SETS\"],\n name: \"changeResourceRecordSetsMiddleware\",\n override: true\n};\nvar getChangeResourceRecordSetsPlugin = /* @__PURE__ */ __name((unused) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(changeResourceRecordSetsMiddleware(), changeResourceRecordSetsMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getChangeResourceRecordSetsPlugin\");\n\n// src/id-normalizer.ts\nvar IDENTIFIER_PARAMETERS = [\"DelegationSetId\", \"HostedZoneId\", \"Id\"];\nfunction idNormalizerMiddleware() {\n return (next) => async (args) => {\n const input = { ...args.input };\n for (const paramName of IDENTIFIER_PARAMETERS) {\n const param = input[paramName];\n if (param) {\n input[paramName] = param.replace(IDENTIFIER_PREFIX_PATTERN, \"\");\n }\n }\n return next({\n ...args,\n input\n });\n };\n}\n__name(idNormalizerMiddleware, \"idNormalizerMiddleware\");\nvar idNormalizerMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"ROUTE53_IDS\"],\n name: \"idNormalizerMiddleware\",\n override: true\n};\nvar getIdNormalizerPlugin = /* @__PURE__ */ __name((unused) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(idNormalizerMiddleware(), idNormalizerMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getIdNormalizerPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n changeResourceRecordSetsMiddlewareOptions,\n getChangeResourceRecordSetsPlugin,\n changeResourceRecordSetsMiddleware,\n idNormalizerMiddlewareOptions,\n getIdNormalizerPlugin,\n idNormalizerMiddleware\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS: () => NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,\n S3ExpressIdentityCache: () => S3ExpressIdentityCache,\n S3ExpressIdentityCacheEntry: () => S3ExpressIdentityCacheEntry,\n S3ExpressIdentityProviderImpl: () => S3ExpressIdentityProviderImpl,\n SignatureV4S3Express: () => SignatureV4S3Express,\n checkContentLengthHeader: () => checkContentLengthHeader,\n checkContentLengthHeaderMiddlewareOptions: () => checkContentLengthHeaderMiddlewareOptions,\n getCheckContentLengthHeaderPlugin: () => getCheckContentLengthHeaderPlugin,\n getRegionRedirectMiddlewarePlugin: () => getRegionRedirectMiddlewarePlugin,\n getS3ExpiresMiddlewarePlugin: () => getS3ExpiresMiddlewarePlugin,\n getS3ExpressHttpSigningPlugin: () => getS3ExpressHttpSigningPlugin,\n getS3ExpressPlugin: () => getS3ExpressPlugin,\n getThrow200ExceptionsPlugin: () => getThrow200ExceptionsPlugin,\n getValidateBucketNamePlugin: () => getValidateBucketNamePlugin,\n regionRedirectEndpointMiddleware: () => regionRedirectEndpointMiddleware,\n regionRedirectEndpointMiddlewareOptions: () => regionRedirectEndpointMiddlewareOptions,\n regionRedirectMiddleware: () => regionRedirectMiddleware,\n regionRedirectMiddlewareOptions: () => regionRedirectMiddlewareOptions,\n resolveS3Config: () => resolveS3Config,\n s3ExpiresMiddleware: () => s3ExpiresMiddleware,\n s3ExpiresMiddlewareOptions: () => s3ExpiresMiddlewareOptions,\n s3ExpressHttpSigningMiddleware: () => s3ExpressHttpSigningMiddleware,\n s3ExpressHttpSigningMiddlewareOptions: () => s3ExpressHttpSigningMiddlewareOptions,\n s3ExpressMiddleware: () => s3ExpressMiddleware,\n s3ExpressMiddlewareOptions: () => s3ExpressMiddlewareOptions,\n throw200ExceptionsMiddleware: () => throw200ExceptionsMiddleware,\n throw200ExceptionsMiddlewareOptions: () => throw200ExceptionsMiddlewareOptions,\n validateBucketNameMiddleware: () => validateBucketNameMiddleware,\n validateBucketNameMiddlewareOptions: () => validateBucketNameMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/check-content-length-header.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nvar DECODED_CONTENT_LENGTH_HEADER = \"x-amz-decoded-content-length\";\nfunction checkContentLengthHeader() {\n return (next, context) => async (args) => {\n const { request } = args;\n if (import_protocol_http.HttpRequest.isInstance(request)) {\n if (!(CONTENT_LENGTH_HEADER in request.headers) && !(DECODED_CONTENT_LENGTH_HEADER in request.headers)) {\n const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;\n if (typeof context?.logger?.warn === \"function\" && !(context.logger instanceof import_smithy_client.NoOpLogger)) {\n context.logger.warn(message);\n } else {\n console.warn(message);\n }\n }\n }\n return next({ ...args });\n };\n}\n__name(checkContentLengthHeader, \"checkContentLengthHeader\");\nvar checkContentLengthHeaderMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"CHECK_CONTENT_LENGTH_HEADER\"],\n name: \"getCheckContentLengthHeaderPlugin\",\n override: true\n};\nvar getCheckContentLengthHeaderPlugin = /* @__PURE__ */ __name((unused) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getCheckContentLengthHeaderPlugin\");\n\n// src/region-redirect-endpoint-middleware.ts\nvar regionRedirectEndpointMiddleware = /* @__PURE__ */ __name((config) => {\n return (next, context) => async (args) => {\n const originalRegion = await config.region();\n const regionProviderRef = config.region;\n let unlock = /* @__PURE__ */ __name(() => {\n }, \"unlock\");\n if (context.__s3RegionRedirect) {\n Object.defineProperty(config, \"region\", {\n writable: false,\n value: /* @__PURE__ */ __name(async () => {\n return context.__s3RegionRedirect;\n }, \"value\")\n });\n unlock = /* @__PURE__ */ __name(() => Object.defineProperty(config, \"region\", {\n writable: true,\n value: regionProviderRef\n }), \"unlock\");\n }\n try {\n const result = await next(args);\n if (context.__s3RegionRedirect) {\n unlock();\n const region = await config.region();\n if (originalRegion !== region) {\n throw new Error(\"Region was not restored following S3 region redirect.\");\n }\n }\n return result;\n } catch (e) {\n unlock();\n throw e;\n }\n };\n}, \"regionRedirectEndpointMiddleware\");\nvar regionRedirectEndpointMiddlewareOptions = {\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectEndpointMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"endpointV2Middleware\"\n};\n\n// src/region-redirect-middleware.ts\nfunction regionRedirectMiddleware(clientConfig) {\n return (next, context) => async (args) => {\n try {\n return await next(args);\n } catch (err) {\n if (clientConfig.followRegionRedirects) {\n if (err?.$metadata?.httpStatusCode === 301 || // err.name === \"PermanentRedirect\" && --> removing the error name check, as that allows for HEAD operations (which have the 301 status code, but not the same error name) to be covered for region redirection as well\n err?.$metadata?.httpStatusCode === 400 && err?.name === \"IllegalLocationConstraintException\") {\n try {\n const actualRegion = err.$response.headers[\"x-amz-bucket-region\"];\n context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);\n context.__s3RegionRedirect = actualRegion;\n } catch (e) {\n throw new Error(\"Region redirect failed: \" + e);\n }\n return next(args);\n }\n }\n throw err;\n }\n };\n}\n__name(regionRedirectMiddleware, \"regionRedirectMiddleware\");\nvar regionRedirectMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectMiddleware\",\n override: true\n};\nvar getRegionRedirectMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);\n clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getRegionRedirectMiddlewarePlugin\");\n\n// src/s3-expires-middleware.ts\n\n\nvar s3ExpiresMiddleware = /* @__PURE__ */ __name((config) => {\n return (next, context) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (import_protocol_http.HttpResponse.isInstance(response)) {\n if (response.headers.expires) {\n response.headers.expiresstring = response.headers.expires;\n try {\n (0, import_smithy_client.parseRfc7231DateTime)(response.headers.expires);\n } catch (e) {\n context.logger?.warn(\n `AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e}`\n );\n delete response.headers.expires;\n }\n }\n }\n return result;\n };\n}, \"s3ExpiresMiddleware\");\nvar s3ExpiresMiddlewareOptions = {\n tags: [\"S3\"],\n name: \"s3ExpiresMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\"\n};\nvar getS3ExpiresMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(s3ExpiresMiddleware(clientConfig), s3ExpiresMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getS3ExpiresMiddlewarePlugin\");\n\n// src/s3-express/classes/S3ExpressIdentityCache.ts\nvar S3ExpressIdentityCache = class _S3ExpressIdentityCache {\n constructor(data = {}) {\n this.data = data;\n }\n static {\n __name(this, \"S3ExpressIdentityCache\");\n }\n lastPurgeTime = Date.now();\n static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 3e4;\n get(key) {\n const entry = this.data[key];\n if (!entry) {\n return;\n }\n return entry;\n }\n set(key, entry) {\n this.data[key] = entry;\n return entry;\n }\n delete(key) {\n delete this.data[key];\n }\n async purgeExpired() {\n const now = Date.now();\n if (this.lastPurgeTime + _S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {\n return;\n }\n for (const key in this.data) {\n const entry = this.data[key];\n if (!entry.isRefreshing) {\n const credential = await entry.identity;\n if (credential.expiration) {\n if (credential.expiration.getTime() < now) {\n delete this.data[key];\n }\n }\n }\n }\n }\n};\n\n// src/s3-express/classes/S3ExpressIdentityCacheEntry.ts\nvar S3ExpressIdentityCacheEntry = class {\n /**\n * @param identity - stored identity.\n * @param accessed - timestamp of last access in epoch ms.\n * @param isRefreshing - this key is currently in the process of being refreshed (background).\n */\n constructor(_identity, isRefreshing = false, accessed = Date.now()) {\n this._identity = _identity;\n this.isRefreshing = isRefreshing;\n this.accessed = accessed;\n }\n static {\n __name(this, \"S3ExpressIdentityCacheEntry\");\n }\n get identity() {\n this.accessed = Date.now();\n return this._identity;\n }\n};\n\n// src/s3-express/classes/S3ExpressIdentityProviderImpl.ts\nvar S3ExpressIdentityProviderImpl = class _S3ExpressIdentityProviderImpl {\n constructor(createSessionFn, cache = new S3ExpressIdentityCache()) {\n this.createSessionFn = createSessionFn;\n this.cache = cache;\n }\n static {\n __name(this, \"S3ExpressIdentityProviderImpl\");\n }\n static REFRESH_WINDOW_MS = 6e4;\n async getS3ExpressIdentity(awsIdentity, identityProperties) {\n const key = identityProperties.Bucket;\n const { cache } = this;\n const entry = cache.get(key);\n if (entry) {\n return entry.identity.then((identity) => {\n const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now();\n if (isExpired) {\n return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n }\n const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + _S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS;\n if (isExpiringSoon && !entry.isRefreshing) {\n entry.isRefreshing = true;\n this.getIdentity(key).then((id) => {\n cache.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id)));\n });\n }\n return identity;\n });\n }\n return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n }\n async getIdentity(key) {\n await this.cache.purgeExpired().catch((error) => {\n console.warn(\"Error while clearing expired entries in S3ExpressIdentityCache: \\n\" + error);\n });\n const session = await this.createSessionFn(key);\n if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) {\n throw new Error(\"s3#createSession response credential missing AccessKeyId or SecretAccessKey.\");\n }\n const identity = {\n accessKeyId: session.Credentials.AccessKeyId,\n secretAccessKey: session.Credentials.SecretAccessKey,\n sessionToken: session.Credentials.SessionToken,\n expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : void 0\n };\n return identity;\n }\n};\n\n// src/s3-express/classes/SignatureV4S3Express.ts\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\n\n// src/s3-express/constants.ts\nvar import_util_config_provider = require(\"@smithy/util-config-provider\");\nvar S3_EXPRESS_BUCKET_TYPE = \"Directory\";\nvar S3_EXPRESS_BACKEND = \"S3Express\";\nvar S3_EXPRESS_AUTH_SCHEME = \"sigv4-s3express\";\nvar SESSION_TOKEN_QUERY_PARAM = \"X-Amz-S3session-Token\";\nvar SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase();\nvar NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = \"AWS_S3_DISABLE_EXPRESS_SESSION_AUTH\";\nvar NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = \"s3_disable_express_session_auth\";\nvar NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => (0, import_util_config_provider.booleanSelector)(env, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, import_util_config_provider.SelectorType.ENV), \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => (0, import_util_config_provider.booleanSelector)(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, import_util_config_provider.SelectorType.CONFIG), \"configFileSelector\"),\n default: false\n};\n\n// src/s3-express/classes/SignatureV4S3Express.ts\nvar SignatureV4S3Express = class extends import_signature_v4.SignatureV4 {\n static {\n __name(this, \"SignatureV4S3Express\");\n }\n /**\n * Signs with alternate provided credentials instead of those provided in the\n * constructor.\n *\n * Additionally omits the credential sessionToken and assigns it to the\n * alternate header field for S3 Express.\n */\n async signWithCredentials(requestToSign, credentials, options) {\n const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n requestToSign.headers[SESSION_TOKEN_HEADER] = credentials.sessionToken;\n const privateAccess = this;\n setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n return privateAccess.signRequest(requestToSign, options ?? {});\n }\n /**\n * Similar to {@link SignatureV4S3Express#signWithCredentials} but for presigning.\n */\n async presignWithCredentials(requestToSign, credentials, options) {\n const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n delete requestToSign.headers[SESSION_TOKEN_HEADER];\n requestToSign.headers[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n requestToSign.query = requestToSign.query ?? {};\n requestToSign.query[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n const privateAccess = this;\n setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n return this.presign(requestToSign, options);\n }\n};\nfunction getCredentialsWithoutSessionToken(credentials) {\n const credentialsWithoutSessionToken = {\n accessKeyId: credentials.accessKeyId,\n secretAccessKey: credentials.secretAccessKey,\n expiration: credentials.expiration\n };\n return credentialsWithoutSessionToken;\n}\n__name(getCredentialsWithoutSessionToken, \"getCredentialsWithoutSessionToken\");\nfunction setSingleOverride(privateAccess, credentialsWithoutSessionToken) {\n const id = setTimeout(() => {\n throw new Error(\"SignatureV4S3Express credential override was created but not called.\");\n }, 10);\n const currentCredentialProvider = privateAccess.credentialProvider;\n const overrideCredentialsProviderOnce = /* @__PURE__ */ __name(() => {\n clearTimeout(id);\n privateAccess.credentialProvider = currentCredentialProvider;\n return Promise.resolve(credentialsWithoutSessionToken);\n }, \"overrideCredentialsProviderOnce\");\n privateAccess.credentialProvider = overrideCredentialsProviderOnce;\n}\n__name(setSingleOverride, \"setSingleOverride\");\n\n// src/s3-express/functions/s3ExpressMiddleware.ts\nvar import_core = require(\"@aws-sdk/core\");\n\nvar s3ExpressMiddleware = /* @__PURE__ */ __name((options) => {\n return (next, context) => async (args) => {\n if (context.endpointV2) {\n const endpoint = context.endpointV2;\n const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME;\n const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND || endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE;\n if (isS3ExpressBucket) {\n (0, import_core.setFeature)(context, \"S3_EXPRESS_BUCKET\", \"J\");\n context.isS3ExpressBucket = true;\n }\n if (isS3ExpressAuth) {\n const requestBucket = args.input.Bucket;\n if (requestBucket) {\n const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(\n await options.credentials(),\n {\n Bucket: requestBucket\n }\n );\n context.s3ExpressIdentity = s3ExpressIdentity;\n if (import_protocol_http.HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) {\n args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken;\n }\n }\n }\n }\n return next(args);\n };\n}, \"s3ExpressMiddleware\");\nvar s3ExpressMiddlewareOptions = {\n name: \"s3ExpressMiddleware\",\n step: \"build\",\n tags: [\"S3\", \"S3_EXPRESS\"],\n override: true\n};\nvar getS3ExpressPlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getS3ExpressPlugin\");\n\n// src/s3-express/functions/s3ExpressHttpSigningMiddleware.ts\nvar import_core2 = require(\"@smithy/core\");\n\nvar import_util_middleware = require(\"@smithy/util-middleware\");\n\n// src/s3-express/functions/signS3Express.ts\nvar signS3Express = /* @__PURE__ */ __name(async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => {\n const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {});\n if (signedRequest.headers[\"X-Amz-Security-Token\"] || signedRequest.headers[\"x-amz-security-token\"]) {\n throw new Error(\"X-Amz-Security-Token must not be set for s3-express requests.\");\n }\n return signedRequest;\n}, \"signS3Express\");\n\n// src/s3-express/functions/s3ExpressHttpSigningMiddleware.ts\nvar defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error) => {\n throw error;\n}, \"defaultErrorHandler\");\nvar defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => {\n}, \"defaultSuccessHandler\");\nvar s3ExpressHttpSigningMiddlewareOptions = import_core2.httpSigningMiddlewareOptions;\nvar s3ExpressHttpSigningMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => {\n if (!import_protocol_http.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = (0, import_util_middleware.getSmithyContext)(context);\n const scheme = smithyContext.selectedHttpAuthScheme;\n if (!scheme) {\n throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n }\n const {\n httpAuthOption: { signingProperties = {} },\n identity,\n signer\n } = scheme;\n let request;\n if (context.s3ExpressIdentity) {\n request = await signS3Express(\n context.s3ExpressIdentity,\n signingProperties,\n args.request,\n await config.signer()\n );\n } else {\n request = await signer.sign(args.request, identity, signingProperties);\n }\n const output = await next({\n ...args,\n request\n }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n return output;\n}, \"s3ExpressHttpSigningMiddleware\");\nvar getS3ExpressHttpSigningPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(\n s3ExpressHttpSigningMiddleware(config),\n import_core2.httpSigningMiddlewareOptions\n );\n }, \"applyToStack\")\n}), \"getS3ExpressHttpSigningPlugin\");\n\n// src/s3Configuration.ts\nvar resolveS3Config = /* @__PURE__ */ __name((input, {\n session\n}) => {\n const [s3ClientProvider, CreateSessionCommandCtor] = session;\n const {\n forcePathStyle,\n useAccelerateEndpoint,\n disableMultiregionAccessPoints,\n followRegionRedirects,\n s3ExpressIdentityProvider,\n bucketEndpoint\n } = input;\n return Object.assign(input, {\n forcePathStyle: forcePathStyle ?? false,\n useAccelerateEndpoint: useAccelerateEndpoint ?? false,\n disableMultiregionAccessPoints: disableMultiregionAccessPoints ?? false,\n followRegionRedirects: followRegionRedirects ?? false,\n s3ExpressIdentityProvider: s3ExpressIdentityProvider ?? new S3ExpressIdentityProviderImpl(\n async (key) => s3ClientProvider().send(\n new CreateSessionCommandCtor({\n Bucket: key\n })\n )\n ),\n bucketEndpoint: bucketEndpoint ?? false\n });\n}, \"resolveS3Config\");\n\n// src/throw-200-exceptions.ts\n\nvar import_util_stream = require(\"@smithy/util-stream\");\nvar THROW_IF_EMPTY_BODY = {\n CopyObjectCommand: true,\n UploadPartCopyCommand: true,\n CompleteMultipartUploadCommand: true\n};\nvar MAX_BYTES_TO_INSPECT = 3e3;\nvar throw200ExceptionsMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (!import_protocol_http.HttpResponse.isInstance(response)) {\n return result;\n }\n const { statusCode, body: sourceBody } = response;\n if (statusCode < 200 || statusCode >= 300) {\n return result;\n }\n const isSplittableStream = typeof sourceBody?.stream === \"function\" || typeof sourceBody?.pipe === \"function\" || typeof sourceBody?.tee === \"function\";\n if (!isSplittableStream) {\n return result;\n }\n let bodyCopy = sourceBody;\n let body = sourceBody;\n if (sourceBody && typeof sourceBody === \"object\" && !(sourceBody instanceof Uint8Array)) {\n [bodyCopy, body] = await (0, import_util_stream.splitStream)(sourceBody);\n }\n response.body = body;\n const bodyBytes = await collectBody(bodyCopy, {\n streamCollector: /* @__PURE__ */ __name(async (stream) => {\n return (0, import_util_stream.headStream)(stream, MAX_BYTES_TO_INSPECT);\n }, \"streamCollector\")\n });\n if (typeof bodyCopy?.destroy === \"function\") {\n bodyCopy.destroy();\n }\n const bodyStringTail = config.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16));\n if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) {\n const err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyStringTail && bodyStringTail.endsWith(\"
\")) {\n response.statusCode = 400;\n }\n return result;\n}, \"throw200ExceptionsMiddleware\");\nvar collectBody = /* @__PURE__ */ __name((streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n}, \"collectBody\");\nvar throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true\n};\nvar getThrow200ExceptionsPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getThrow200ExceptionsPlugin\");\n\n// src/validate-bucket-name.ts\nvar import_util_arn_parser = require(\"@aws-sdk/util-arn-parser\");\n\n// src/bucket-endpoint-middleware.ts\nfunction bucketEndpointMiddleware(options) {\n return (next, context) => async (args) => {\n if (options.bucketEndpoint) {\n const endpoint = context.endpointV2;\n if (endpoint) {\n const bucket = args.input.Bucket;\n if (typeof bucket === \"string\") {\n try {\n const bucketEndpointUrl = new URL(bucket);\n context.endpointV2 = {\n ...endpoint,\n url: bucketEndpointUrl\n };\n } catch (e) {\n const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`;\n if (context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(warning);\n } else {\n context.logger?.warn?.(warning);\n }\n throw e;\n }\n }\n }\n }\n return next(args);\n };\n}\n__name(bucketEndpointMiddleware, \"bucketEndpointMiddleware\");\nvar bucketEndpointMiddlewareOptions = {\n name: \"bucketEndpointMiddleware\",\n override: true,\n relation: \"after\",\n toMiddleware: \"endpointV2Middleware\"\n};\n\n// src/validate-bucket-name.ts\nfunction validateBucketNameMiddleware({ bucketEndpoint }) {\n return (next) => async (args) => {\n const {\n input: { Bucket }\n } = args;\n if (!bucketEndpoint && typeof Bucket === \"string\" && !(0, import_util_arn_parser.validate)(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return next({ ...args });\n };\n}\n__name(validateBucketNameMiddleware, \"validateBucketNameMiddleware\");\nvar validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true\n};\nvar getValidateBucketNamePlugin = /* @__PURE__ */ __name((options) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions);\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getValidateBucketNamePlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n checkContentLengthHeaderMiddlewareOptions,\n getCheckContentLengthHeaderPlugin,\n checkContentLengthHeader,\n regionRedirectEndpointMiddleware,\n regionRedirectEndpointMiddlewareOptions,\n regionRedirectMiddlewareOptions,\n getRegionRedirectMiddlewarePlugin,\n regionRedirectMiddleware,\n s3ExpiresMiddleware,\n s3ExpiresMiddlewareOptions,\n getS3ExpiresMiddlewarePlugin,\n S3ExpressIdentityCache,\n S3ExpressIdentityCacheEntry,\n S3ExpressIdentityProviderImpl,\n SignatureV4S3Express,\n NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,\n getS3ExpressPlugin,\n s3ExpressMiddleware,\n s3ExpressMiddlewareOptions,\n getS3ExpressHttpSigningPlugin,\n s3ExpressHttpSigningMiddleware,\n s3ExpressHttpSigningMiddlewareOptions,\n resolveS3Config,\n throw200ExceptionsMiddleware,\n throw200ExceptionsMiddlewareOptions,\n getThrow200ExceptionsPlugin,\n validateBucketNameMiddlewareOptions,\n getValidateBucketNamePlugin,\n validateBucketNameMiddleware\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./submodules/client/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/httpAuthSchemes/index\"), exports);\ntslib_1.__exportStar(require(\"./submodules/protocols/index\"), exports);\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/client/index.ts\nvar index_exports = {};\n__export(index_exports, {\n emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion,\n setCredentialFeature: () => setCredentialFeature,\n setFeature: () => setFeature,\n setTokenFeature: () => setTokenFeature,\n state: () => state\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/client/emitWarningIfUnsupportedVersion.ts\nvar state = {\n warningEmitted: false\n};\nvar emitWarningIfUnsupportedVersion = /* @__PURE__ */ __name((version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 18) {\n state.warningEmitted = true;\n process.emitWarning(\n `NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js 16.x on January 6, 2025.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/74kJMmI`\n );\n }\n}, \"emitWarningIfUnsupportedVersion\");\n\n// src/submodules/client/setCredentialFeature.ts\nfunction setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n__name(setCredentialFeature, \"setCredentialFeature\");\n\n// src/submodules/client/setFeature.ts\nfunction setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {}\n };\n } else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n__name(setFeature, \"setFeature\");\n\n// src/submodules/client/setTokenFeature.ts\nfunction setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n__name(setTokenFeature, \"setTokenFeature\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n emitWarningIfUnsupportedVersion,\n setCredentialFeature,\n setFeature,\n setTokenFeature,\n state\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/httpAuthSchemes/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AWSSDKSigV4Signer: () => AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer: () => AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey: () => getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config,\n validateSigningProperties: () => validateSigningProperties\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar import_protocol_http2 = require(\"@smithy/protocol-http\");\n\n// src/submodules/httpAuthSchemes/utils/getDateHeader.ts\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar getDateHeader = /* @__PURE__ */ __name((response) => import_protocol_http.HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : void 0, \"getDateHeader\");\n\n// src/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.ts\nvar getSkewCorrectedDate = /* @__PURE__ */ __name((systemClockOffset) => new Date(Date.now() + systemClockOffset), \"getSkewCorrectedDate\");\n\n// src/submodules/httpAuthSchemes/utils/isClockSkewed.ts\nvar isClockSkewed = /* @__PURE__ */ __name((clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5, \"isClockSkewed\");\n\n// src/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.ts\nvar getUpdatedSystemClockOffset = /* @__PURE__ */ __name((clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n}, \"getUpdatedSystemClockOffset\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts\nvar throwSigningPropertyError = /* @__PURE__ */ __name((name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n}, \"throwSigningPropertyError\");\nvar validateSigningProperties = /* @__PURE__ */ __name(async (signingProperties) => {\n const context = throwSigningPropertyError(\n \"context\",\n signingProperties.context\n );\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\n \"signer\",\n config.signer\n );\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName\n };\n}, \"validateSigningProperties\");\nvar AwsSdkSigV4Signer = class {\n static {\n __name(this, \"AwsSdkSigV4Signer\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http2.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion,\n signingService: signingName\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const initialSystemClockOffset = config.systemClockOffset;\n config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n if (clockSkewCorrected && error.$metadata) {\n error.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n};\nvar AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n\n// src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.ts\nvar import_protocol_http3 = require(\"@smithy/protocol-http\");\nvar AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer {\n static {\n __name(this, \"AwsSdkSigV4ASigner\");\n }\n async sign(httpRequest, identity, signingProperties) {\n if (!import_protocol_http3.HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(\n signingProperties\n );\n const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(\",\");\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: multiRegionOverride,\n signingService: signingName\n });\n return signedRequest;\n }\n};\n\n// src/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.ts\nvar getArrayForCommaSeparatedString = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.length > 0 ? str.split(\",\").map((item) => item.trim()) : [], \"getArrayForCommaSeparatedString\");\n\n// src/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.ts\nvar getBearerTokenEnvKey = /* @__PURE__ */ __name((signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\\s-]/g, \"_\").toUpperCase()}`, \"getBearerTokenEnvKey\");\n\n// src/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.ts\nvar NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = \"AWS_AUTH_SCHEME_PREFERENCE\";\nvar NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = \"auth_scheme_preference\";\nvar NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = {\n /**\n * Retrieves auth scheme preference from environment variables\n * @param env - Node process environment object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n environmentVariableSelector: /* @__PURE__ */ __name((env, options) => {\n if (options?.signingName) {\n const bearerTokenKey = getBearerTokenEnvKey(options.signingName);\n if (bearerTokenKey in env) return [\"httpBearerAuth\"];\n }\n if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env)) return void 0;\n return getArrayForCommaSeparatedString(env[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]);\n }, \"environmentVariableSelector\"),\n /**\n * Retrieves auth scheme preference from config file\n * @param profile - Config profile object\n * @returns Array of auth scheme strings if preference is set, undefined otherwise\n */\n configFileSelector: /* @__PURE__ */ __name((profile) => {\n if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) return void 0;\n return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]);\n }, \"configFileSelector\"),\n /**\n * Default auth scheme preference if not specified in environment or config\n */\n default: []\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.ts\nvar import_core = require(\"@smithy/core\");\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar resolveAwsSdkSigV4AConfig = /* @__PURE__ */ __name((config) => {\n config.sigv4aSigningRegionSet = (0, import_core.normalizeProvider)(config.sigv4aSigningRegionSet);\n return config;\n}, \"resolveAwsSdkSigV4AConfig\");\nvar NODE_SIGV4A_CONFIG_OPTIONS = {\n environmentVariableSelector(env) {\n if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n tryNextLink: true\n });\n },\n configFileSelector(profile) {\n if (profile.sigv4a_signing_region_set) {\n return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n }\n throw new import_property_provider.ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n tryNextLink: true\n });\n },\n default: void 0\n};\n\n// src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar import_core2 = require(\"@smithy/core\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\nvar resolveAwsSdkSigV4Config = /* @__PURE__ */ __name((config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = void 0;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n resolvedCredentials = /* @__PURE__ */ __name(async (options) => boundProvider(options).then(\n (creds) => (0, import_client.setCredentialFeature)(creds, \"CREDENTIALS_CODE\", \"e\")\n ), \"resolvedCredentials\");\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n } else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true\n });\n config.credentials = inputCredentials;\n const {\n // Default for signingEscapePath\n signingEscapePath = true,\n // Default for systemClockOffset\n systemClockOffset = config.systemClockOffset || 0,\n // No default for sha256 since it is platform dependent\n sha256\n } = config;\n let signer;\n if (config.signer) {\n signer = (0, import_core2.normalizeProvider)(config.signer);\n } else if (config.regionInfoProvider) {\n signer = /* @__PURE__ */ __name(() => (0, import_core2.normalizeProvider)(config.region)().then(\n async (region) => [\n await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint()\n }) || {},\n region\n ]\n ).then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }), \"signer\");\n } else {\n signer = /* @__PURE__ */ __name(async (authScheme) => {\n authScheme = Object.assign(\n {},\n {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await (0, import_core2.normalizeProvider)(config.region)(),\n properties: {}\n },\n authScheme\n );\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath\n };\n const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4;\n return new SignerCtor(params);\n }, \"signer\");\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer\n });\n return resolvedConfig;\n}, \"resolveAwsSdkSigV4Config\");\nvar resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, {\n credentials,\n credentialDefaultProvider\n}) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = (0, import_core2.memoizeIdentityProvider)(credentials, import_core2.isIdentityExpired, import_core2.doesIdentityRequireRefresh);\n } else {\n credentialsProvider = credentials;\n }\n } else {\n if (credentialDefaultProvider) {\n credentialsProvider = (0, import_core2.normalizeProvider)(\n credentialDefaultProvider(\n Object.assign({}, config, {\n parentClientConfig: config\n })\n )\n );\n } else {\n credentialsProvider = /* @__PURE__ */ __name(async () => {\n throw new Error(\n \"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\"\n );\n }, \"credentialsProvider\");\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\n__name(normalizeCredentialProvider, \"normalizeCredentialProvider\");\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = /* @__PURE__ */ __name(async (options) => credentialsProvider({ ...options, callerClientConfig: config }), \"fn\");\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n__name(bindCallerConfig, \"bindCallerConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AWSSDKSigV4Signer,\n AwsSdkSigV4ASigner,\n AwsSdkSigV4Signer,\n NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,\n NODE_SIGV4A_CONFIG_OPTIONS,\n getBearerTokenEnvKey,\n resolveAWSSDKSigV4Config,\n resolveAwsSdkSigV4AConfig,\n resolveAwsSdkSigV4Config,\n validateSigningProperties\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/protocols/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AwsEc2QueryProtocol: () => AwsEc2QueryProtocol,\n AwsJson1_0Protocol: () => AwsJson1_0Protocol,\n AwsJson1_1Protocol: () => AwsJson1_1Protocol,\n AwsJsonRpcProtocol: () => AwsJsonRpcProtocol,\n AwsQueryProtocol: () => AwsQueryProtocol,\n AwsRestJsonProtocol: () => AwsRestJsonProtocol,\n AwsRestXmlProtocol: () => AwsRestXmlProtocol,\n JsonCodec: () => JsonCodec,\n JsonShapeDeserializer: () => JsonShapeDeserializer,\n JsonShapeSerializer: () => JsonShapeSerializer,\n XmlCodec: () => XmlCodec,\n XmlShapeDeserializer: () => XmlShapeDeserializer,\n XmlShapeSerializer: () => XmlShapeSerializer,\n _toBool: () => _toBool,\n _toNum: () => _toNum,\n _toStr: () => _toStr,\n awsExpectUnion: () => awsExpectUnion,\n loadRestJsonErrorCode: () => loadRestJsonErrorCode,\n loadRestXmlErrorCode: () => loadRestXmlErrorCode,\n parseJsonBody: () => parseJsonBody,\n parseJsonErrorBody: () => parseJsonErrorBody,\n parseXmlBody: () => parseXmlBody,\n parseXmlErrorBody: () => parseXmlErrorBody\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/protocols/coercing-serializers.ts\nvar _toStr = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\" || typeof val === \"bigint\") {\n const warning = new Error(`Received number ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n if (typeof val === \"boolean\") {\n const warning = new Error(`Received boolean ${val} where a string was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return String(val);\n }\n return val;\n}, \"_toStr\");\nvar _toBool = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"number\") {\n }\n if (typeof val === \"string\") {\n const lowercase = val.toLowerCase();\n if (val !== \"\" && lowercase !== \"false\" && lowercase !== \"true\") {\n const warning = new Error(`Received string \"${val}\" where a boolean was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n }\n return val !== \"\" && lowercase !== \"false\";\n }\n return val;\n}, \"_toBool\");\nvar _toNum = /* @__PURE__ */ __name((val) => {\n if (val == null) {\n return val;\n }\n if (typeof val === \"boolean\") {\n }\n if (typeof val === \"string\") {\n const num = Number(val);\n if (num.toString() !== val) {\n const warning = new Error(`Received string \"${val}\" where a number was expected.`);\n warning.name = \"Warning\";\n console.warn(warning);\n return val;\n }\n return num;\n }\n return val;\n}, \"_toNum\");\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar import_protocols = require(\"@smithy/core/protocols\");\nvar import_schema3 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/ConfigurableSerdeContext.ts\nvar SerdeContextConfig = class {\n static {\n __name(this, \"SerdeContextConfig\");\n }\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar import_schema = require(\"@smithy/core/schema\");\nvar import_serde2 = require(\"@smithy/core/serde\");\nvar import_util_base64 = require(\"@smithy/util-base64\");\n\n// src/submodules/protocols/json/jsonReviver.ts\nvar import_serde = require(\"@smithy/core/serde\");\nfunction jsonReviver(key, value, context) {\n if (context?.source) {\n const numericString = context.source;\n if (typeof value === \"number\") {\n if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER || numericString !== String(value)) {\n const isFractional = numericString.includes(\".\");\n if (isFractional) {\n return new import_serde.NumericValue(numericString, \"bigDecimal\");\n } else {\n return BigInt(numericString);\n }\n }\n }\n }\n return value;\n}\n__name(jsonReviver, \"jsonReviver\");\n\n// src/submodules/protocols/common.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar collectBodyString = /* @__PURE__ */ __name((streamBody, context) => (0, import_smithy_client.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)), \"collectBodyString\");\n\n// src/submodules/protocols/json/parseJsonBody.ts\nvar parseJsonBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n try {\n return JSON.parse(encoded);\n } catch (e) {\n if (e?.name === \"SyntaxError\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n }\n return {};\n}), \"parseJsonBody\");\nvar parseJsonErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseJsonBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n}, \"parseJsonErrorBody\");\nvar loadRestJsonErrorCode = /* @__PURE__ */ __name((output, data) => {\n const findKey = /* @__PURE__ */ __name((object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()), \"findKey\");\n const sanitizeErrorCode = /* @__PURE__ */ __name((rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n }, \"sanitizeErrorCode\");\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== void 0) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data && typeof data === \"object\") {\n const codeKey = findKey(data, \"code\");\n if (codeKey && data[codeKey] !== void 0) {\n return sanitizeErrorCode(data[codeKey]);\n }\n if (data[\"__type\"] !== void 0) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n }\n}, \"loadRestJsonErrorCode\");\n\n// src/submodules/protocols/json/JsonShapeDeserializer.ts\nvar JsonShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeDeserializer\");\n }\n async read(schema, data) {\n return this._read(\n schema,\n typeof data === \"string\" ? JSON.parse(data, jsonReviver) : await parseJsonBody(data, this.serdeContext)\n );\n }\n readObject(schema, data) {\n return this._read(schema, data);\n }\n _read(schema, value) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._read(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._read(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const deserializedValue = this._read(memberSchema, value[fromKey]);\n if (deserializedValue != null) {\n out[memberName] = deserializedValue;\n }\n }\n return out;\n }\n if (ns.isBlobSchema() && typeof value === \"string\") {\n return (0, import_util_base64.fromBase64)(value);\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde2.LazyJsonString.from(value);\n }\n }\n if (ns.isTimestampSchema()) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema.SCHEMA.TIMESTAMP_DATE_TIME:\n return (0, import_serde2.parseRfc3339DateTimeWithOffset)(value);\n case import_schema.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde2.parseRfc7231DateTime)(value);\n case import_schema.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return (0, import_serde2.parseEpochTimestamp)(value);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", value);\n return new Date(value);\n }\n }\n if (ns.isBigIntegerSchema() && (typeof value === \"number\" || typeof value === \"string\")) {\n return BigInt(value);\n }\n if (ns.isBigDecimalSchema() && value != void 0) {\n if (value instanceof import_serde2.NumericValue) {\n return value;\n }\n return new import_serde2.NumericValue(String(value), \"bigDecimal\");\n }\n if (ns.isNumericSchema() && typeof value === \"string\") {\n switch (value) {\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n case \"NaN\":\n return NaN;\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar import_schema2 = require(\"@smithy/core/schema\");\nvar import_serde4 = require(\"@smithy/core/serde\");\nvar import_serde5 = require(\"@smithy/core/serde\");\n\n// src/submodules/protocols/json/jsonReplacer.ts\nvar import_serde3 = require(\"@smithy/core/serde\");\nvar NUMERIC_CONTROL_CHAR = String.fromCharCode(925);\nvar JsonReplacer = class {\n static {\n __name(this, \"JsonReplacer\");\n }\n /**\n * Stores placeholder key to true serialized value lookup.\n */\n values = /* @__PURE__ */ new Map();\n counter = 0;\n stage = 0;\n /**\n * Creates a jsonReplacer function that reserves big integer and big decimal values\n * for later replacement.\n */\n createReplacer() {\n if (this.stage === 1) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer already created.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 1;\n return (key, value) => {\n if (value instanceof import_serde3.NumericValue) {\n const v = `${NUMERIC_CONTROL_CHAR + +\"nv\" + this.counter++}_` + value.string;\n this.values.set(`\"${v}\"`, value.string);\n return v;\n }\n if (typeof value === \"bigint\") {\n const s = value.toString();\n const v = `${NUMERIC_CONTROL_CHAR + \"b\" + this.counter++}_` + s;\n this.values.set(`\"${v}\"`, s);\n return v;\n }\n return value;\n };\n }\n /**\n * Replaces placeholder keys with their true values.\n */\n replaceInJson(json) {\n if (this.stage === 0) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer not created yet.\");\n }\n if (this.stage === 2) {\n throw new Error(\"@aws-sdk/core/protocols - JsonReplacer exhausted.\");\n }\n this.stage = 2;\n if (this.counter === 0) {\n return json;\n }\n for (const [key, value] of this.values) {\n json = json.replace(key, value);\n }\n return json;\n }\n};\n\n// src/submodules/protocols/json/JsonShapeSerializer.ts\nvar JsonShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonShapeSerializer\");\n }\n buffer;\n rootSchema;\n write(schema, value) {\n this.rootSchema = import_schema2.NormalizedSchema.of(schema);\n this.buffer = this._write(this.rootSchema, value);\n }\n flush() {\n if (this.rootSchema?.isStructSchema() || this.rootSchema?.isDocumentSchema()) {\n const replacer = new JsonReplacer();\n return replacer.replaceInJson(JSON.stringify(this.buffer, replacer.createReplacer(), 0));\n }\n return this.buffer;\n }\n _write(schema, value, container) {\n const isObject = value !== null && typeof value === \"object\";\n const ns = import_schema2.NormalizedSchema.of(schema);\n if (ns.isListSchema() && Array.isArray(value)) {\n const listMember = ns.getValueSchema();\n const out = [];\n const sparse = !!ns.getMergedTraits().sparse;\n for (const item of value) {\n if (sparse || item != null) {\n out.push(this._write(listMember, item));\n }\n }\n return out;\n } else if (ns.isMapSchema() && isObject) {\n const mapMember = ns.getValueSchema();\n const out = {};\n const sparse = !!ns.getMergedTraits().sparse;\n for (const [_k, _v] of Object.entries(value)) {\n if (sparse || _v != null) {\n out[_k] = this._write(mapMember, _v);\n }\n }\n return out;\n } else if (ns.isStructSchema() && isObject) {\n const out = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;\n const serializableValue = this._write(memberSchema, value[memberName], ns);\n if (serializableValue !== void 0) {\n out[targetKey] = serializableValue;\n }\n }\n return out;\n }\n if (value === null && container?.isStructSchema()) {\n return void 0;\n }\n if (ns.isBlobSchema() && (value instanceof Uint8Array || typeof value === \"string\")) {\n if (ns === this.rootSchema) {\n return value;\n }\n if (!this.serdeContext?.base64Encoder) {\n throw new Error(\"Missing base64Encoder in serdeContext\");\n }\n return this.serdeContext?.base64Encoder(value);\n }\n if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema2.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema2.SCHEMA.TIMESTAMP_DATE_TIME:\n return value.toISOString().replace(\".000Z\", \"Z\");\n case import_schema2.SCHEMA.TIMESTAMP_HTTP_DATE:\n return (0, import_serde4.dateToUtcString)(value);\n case import_schema2.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n return value.getTime() / 1e3;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n return value.getTime() / 1e3;\n }\n }\n if (ns.isNumericSchema() && typeof value === \"number\") {\n if (Math.abs(value) === Infinity || isNaN(value)) {\n return String(value);\n }\n }\n const mediaType = ns.getMergedTraits().mediaType;\n if (ns.isStringSchema() && typeof value === \"string\" && mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n return import_serde5.LazyJsonString.from(value);\n }\n }\n return value;\n }\n};\n\n// src/submodules/protocols/json/JsonCodec.ts\nvar JsonCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"JsonCodec\");\n }\n createSerializer() {\n const serializer = new JsonShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new JsonShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/json/AwsJsonRpcProtocol.ts\nvar AwsJsonRpcProtocol = class extends import_protocols.RpcProtocol {\n static {\n __name(this, \"AwsJsonRpcProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n this.codec = new JsonCodec({\n timestampFormat: {\n useTrait: true,\n default: import_schema3.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n jsonName: false\n });\n this.serializer = this.codec.createSerializer();\n this.deserializer = this.codec.createDeserializer();\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-amz-json-${this.getJsonRpcVersion()}`,\n \"x-amz-target\": (this.getJsonRpcVersion() === \"1.0\" ? `JsonRpc10.` : `JsonProtocol.`) + import_schema3.NormalizedSchema.of(operationSchema).getName()\n });\n if ((0, import_schema3.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"{}\";\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n getPayloadCodec() {\n return this.codec;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema3.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema3.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema3.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_0Protocol.ts\nvar AwsJson1_0Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_0Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_0\";\n }\n getJsonRpcVersion() {\n return \"1.0\";\n }\n};\n\n// src/submodules/protocols/json/AwsJson1_1Protocol.ts\nvar AwsJson1_1Protocol = class extends AwsJsonRpcProtocol {\n static {\n __name(this, \"AwsJson1_1Protocol\");\n }\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n }\n getShapeId() {\n return \"aws.protocols#awsJson1_1\";\n }\n getJsonRpcVersion() {\n return \"1.1\";\n }\n};\n\n// src/submodules/protocols/json/AwsRestJsonProtocol.ts\nvar import_protocols2 = require(\"@smithy/core/protocols\");\nvar import_schema4 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser2 = require(\"@smithy/util-body-length-browser\");\nvar AwsRestJsonProtocol = class extends import_protocols2.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestJsonProtocol\");\n }\n serializer;\n deserializer;\n codec;\n constructor({ defaultNamespace }) {\n super({\n defaultNamespace\n });\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema4.SCHEMA.TIMESTAMP_EPOCH_SECONDS\n },\n httpBindings: true,\n jsonName: true\n };\n this.codec = new JsonCodec(settings);\n this.serializer = new import_protocols2.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols2.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getShapeId() {\n return \"aws.protocols#restJson1\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n setSerdeContext(serdeContext) {\n this.codec.setSerdeContext(serdeContext);\n super.setSerdeContext(serdeContext);\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const inputSchema = import_schema4.NormalizedSchema.of(operationSchema.input);\n const members = inputSchema.getMemberSchemas();\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/json\";\n }\n } else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/json\";\n }\n }\n }\n if (request.headers[\"content-type\"] && !request.body) {\n request.body = \"{}\";\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser2.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema4.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema4.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema4.NormalizedSchema.of(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().jsonName ?? name;\n output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n\n// src/submodules/protocols/json/awsExpectUnion.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar awsExpectUnion = /* @__PURE__ */ __name((value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\" && \"__type\" in value) {\n delete value.__type;\n }\n return (0, import_smithy_client2.expectUnion)(value);\n}, \"awsExpectUnion\");\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar import_protocols5 = require(\"@smithy/core/protocols\");\nvar import_schema7 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser3 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/XmlShapeDeserializer.ts\nvar import_protocols3 = require(\"@smithy/core/protocols\");\nvar import_schema5 = require(\"@smithy/core/schema\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_fast_xml_parser = require(\"fast-xml-parser\");\nvar XmlShapeDeserializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n this.stringDeserializer = new import_protocols3.FromStringShapeDeserializer(settings);\n }\n static {\n __name(this, \"XmlShapeDeserializer\");\n }\n stringDeserializer;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.stringDeserializer.setSerdeContext(serdeContext);\n }\n /**\n * @param schema - describing the data.\n * @param bytes - serialized data.\n * @param key - used by AwsQuery to step one additional depth into the object before reading it.\n */\n read(schema, bytes, key) {\n const ns = import_schema5.NormalizedSchema.of(schema);\n const memberSchemas = ns.getMemberSchemas();\n const isEventPayload = ns.isStructSchema() && ns.isMemberSchema() && !!Object.values(memberSchemas).find((memberNs) => {\n return !!memberNs.getMemberTraits().eventPayload;\n });\n if (isEventPayload) {\n const output = {};\n const memberName = Object.keys(memberSchemas)[0];\n const eventMemberSchema = memberSchemas[memberName];\n if (eventMemberSchema.isBlobSchema()) {\n output[memberName] = bytes;\n } else {\n output[memberName] = this.read(memberSchemas[memberName], bytes);\n }\n return output;\n }\n const xmlString = (this.serdeContext?.utf8Encoder ?? import_util_utf8.toUtf8)(bytes);\n const parsedObject = this.parseXml(xmlString);\n return this.readSchema(schema, key ? parsedObject[key] : parsedObject);\n }\n readSchema(_schema, value) {\n const ns = import_schema5.NormalizedSchema.of(_schema);\n const traits = ns.getMergedTraits();\n if (ns.isListSchema() && !Array.isArray(value)) {\n return this.readSchema(ns, [value]);\n }\n if (value == null) {\n return value;\n }\n if (typeof value === \"object\") {\n const sparse = !!traits.sparse;\n const flat = !!traits.xmlFlattened;\n if (ns.isListSchema()) {\n const listValue = ns.getValueSchema();\n const buffer2 = [];\n const sourceKey = listValue.getMergedTraits().xmlName ?? \"member\";\n const source = flat ? value : (value[0] ?? value)[sourceKey];\n const sourceArray = Array.isArray(source) ? source : [source];\n for (const v of sourceArray) {\n if (v != null || sparse) {\n buffer2.push(this.readSchema(listValue, v));\n }\n }\n return buffer2;\n }\n const buffer = {};\n if (ns.isMapSchema()) {\n const keyNs = ns.getKeySchema();\n const memberNs = ns.getValueSchema();\n let entries;\n if (flat) {\n entries = Array.isArray(value) ? value : [value];\n } else {\n entries = Array.isArray(value.entry) ? value.entry : [value.entry];\n }\n const keyProperty = keyNs.getMergedTraits().xmlName ?? \"key\";\n const valueProperty = memberNs.getMergedTraits().xmlName ?? \"value\";\n for (const entry of entries) {\n const key = entry[keyProperty];\n const value2 = entry[valueProperty];\n if (value2 != null || sparse) {\n buffer[key] = this.readSchema(memberNs, value2);\n }\n }\n return buffer;\n }\n if (ns.isStructSchema()) {\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMergedTraits();\n const xmlObjectKey = !memberTraits.httpPayload ? memberSchema.getMemberTraits().xmlName ?? memberName : memberTraits.xmlName ?? memberSchema.getName();\n if (value[xmlObjectKey] != null) {\n buffer[memberName] = this.readSchema(memberSchema, value[xmlObjectKey]);\n }\n }\n return buffer;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n throw new Error(`@aws-sdk/core/protocols - xml deserializer unhandled schema type for ${ns.getName(true)}`);\n }\n if (ns.isListSchema()) {\n return [];\n }\n if (ns.isMapSchema() || ns.isStructSchema()) {\n return {};\n }\n return this.stringDeserializer.read(ns, value);\n }\n parseXml(xml) {\n if (xml.length) {\n const parser = new import_fast_xml_parser.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(xml, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: xml\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n }\n};\n\n// src/submodules/protocols/query/QueryShapeSerializer.ts\nvar import_protocols4 = require(\"@smithy/core/protocols\");\nvar import_schema6 = require(\"@smithy/core/schema\");\nvar import_serde6 = require(\"@smithy/core/serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_util_base642 = require(\"@smithy/util-base64\");\nvar QueryShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"QueryShapeSerializer\");\n }\n buffer;\n write(schema, value, prefix = \"\") {\n if (this.buffer === void 0) {\n this.buffer = \"\";\n }\n const ns = import_schema6.NormalizedSchema.of(schema);\n if (prefix && !prefix.endsWith(\".\")) {\n prefix += \".\";\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\" || value instanceof Uint8Array) {\n this.writeKey(prefix);\n this.writeValue((this.serdeContext?.base64Encoder ?? import_util_base642.toBase64)(value));\n }\n } else if (ns.isBooleanSchema() || ns.isNumericSchema() || ns.isStringSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigIntegerSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(String(value));\n }\n } else if (ns.isBigDecimalSchema()) {\n if (value != null) {\n this.writeKey(prefix);\n this.writeValue(value instanceof import_serde6.NumericValue ? value.string : String(value));\n }\n } else if (ns.isTimestampSchema()) {\n if (value instanceof Date) {\n this.writeKey(prefix);\n const format = (0, import_protocols4.determineTimestampFormat)(ns, this.settings);\n switch (format) {\n case import_schema6.SCHEMA.TIMESTAMP_DATE_TIME:\n this.writeValue(value.toISOString().replace(\".000Z\", \"Z\"));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_HTTP_DATE:\n this.writeValue((0, import_smithy_client4.dateToUtcString)(value));\n break;\n case import_schema6.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n this.writeValue(String(value.getTime() / 1e3));\n break;\n }\n }\n } else if (ns.isDocumentSchema()) {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unsupported document type ${ns.getName(true)}`);\n } else if (ns.isListSchema()) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n if (this.settings.serializeEmptyLists) {\n this.writeKey(prefix);\n this.writeValue(\"\");\n }\n } else {\n const member = ns.getValueSchema();\n const flat = this.settings.flattenLists || ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const item of value) {\n if (item == null) {\n continue;\n }\n const suffix = this.getKey(\"member\", member.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}` : `${prefix}${suffix}.${i}`;\n this.write(member, item, key);\n ++i;\n }\n }\n }\n } else if (ns.isMapSchema()) {\n if (value && typeof value === \"object\") {\n const keySchema = ns.getKeySchema();\n const memberSchema = ns.getValueSchema();\n const flat = ns.getMergedTraits().xmlFlattened;\n let i = 1;\n for (const [k, v] of Object.entries(value)) {\n if (v == null) {\n continue;\n }\n const keySuffix = this.getKey(\"key\", keySchema.getMergedTraits().xmlName);\n const key = flat ? `${prefix}${i}.${keySuffix}` : `${prefix}entry.${i}.${keySuffix}`;\n const valueSuffix = this.getKey(\"value\", memberSchema.getMergedTraits().xmlName);\n const valueKey = flat ? `${prefix}${i}.${valueSuffix}` : `${prefix}entry.${i}.${valueSuffix}`;\n this.write(keySchema, k, key);\n this.write(memberSchema, v, valueKey);\n ++i;\n }\n }\n } else if (ns.isStructSchema()) {\n if (value && typeof value === \"object\") {\n for (const [memberName, member] of ns.structIterator()) {\n if (value[memberName] == null) {\n continue;\n }\n const suffix = this.getKey(memberName, member.getMergedTraits().xmlName);\n const key = `${prefix}${suffix}`;\n this.write(member, value[memberName], key);\n }\n }\n } else if (ns.isUnitSchema()) {\n } else {\n throw new Error(`@aws-sdk/core/protocols - QuerySerializer unrecognized schema type ${ns.getName(true)}`);\n }\n }\n flush() {\n if (this.buffer === void 0) {\n throw new Error(\"@aws-sdk/core/protocols - QuerySerializer cannot flush with nothing written to buffer.\");\n }\n const str = this.buffer;\n delete this.buffer;\n return str;\n }\n getKey(memberName, xmlName) {\n const key = xmlName ?? memberName;\n if (this.settings.capitalizeKeys) {\n return key[0].toUpperCase() + key.slice(1);\n }\n return key;\n }\n writeKey(key) {\n if (key.endsWith(\".\")) {\n key = key.slice(0, key.length - 1);\n }\n this.buffer += `&${(0, import_protocols4.extendedEncodeURIComponent)(key)}=`;\n }\n writeValue(value) {\n this.buffer += (0, import_protocols4.extendedEncodeURIComponent)(value);\n }\n};\n\n// src/submodules/protocols/query/AwsQueryProtocol.ts\nvar AwsQueryProtocol = class extends import_protocols5.RpcProtocol {\n constructor(options) {\n super({\n defaultNamespace: options.defaultNamespace\n });\n this.options = options;\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema7.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: false,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace,\n serializeEmptyLists: true\n };\n this.serializer = new QueryShapeSerializer(settings);\n this.deserializer = new XmlShapeDeserializer(settings);\n }\n static {\n __name(this, \"AwsQueryProtocol\");\n }\n serializer;\n deserializer;\n getShapeId() {\n return \"aws.protocols#awsQuery\";\n }\n setSerdeContext(serdeContext) {\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n }\n getPayloadCodec() {\n throw new Error(\"AWSQuery protocol has no payload codec.\");\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n if (!request.path.endsWith(\"/\")) {\n request.path += \"/\";\n }\n Object.assign(request.headers, {\n \"content-type\": `application/x-www-form-urlencoded`\n });\n if ((0, import_schema7.deref)(operationSchema.input) === \"unit\" || !request.body) {\n request.body = \"\";\n }\n request.body = `Action=${operationSchema.name.split(\"#\")[1]}&Version=${this.options.version}` + request.body;\n if (request.body.endsWith(\"&\")) {\n request.body = request.body.slice(-1);\n }\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser3.calculateBodyLength)(request.body));\n } catch (e) {\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = import_schema7.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes2 = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes2.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(import_schema7.SCHEMA.DOCUMENT, bytes2));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const awsQueryResultKey = ns.isStructSchema() && this.useNestedResult() ? operationSchema.name.split(\"#\")[1] + \"Result\" : void 0;\n const bytes = await (0, import_protocols5.collectBody)(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes, awsQueryResultKey));\n }\n const output = {\n $metadata: this.deserializeMetadata(response),\n ...dataObject\n };\n return output;\n }\n /**\n * EC2 Query overrides this.\n */\n useNestedResult() {\n return true;\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = this.loadQueryErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const errorDataSource = this.loadQueryError(dataObject);\n const registry = import_schema7.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.find(\n (schema) => import_schema7.NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName\n );\n if (!errorSchema) {\n errorSchema = registry.getSchema(errorIdentifier);\n }\n } catch (e) {\n const baseExceptionSchema = import_schema7.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), errorDataSource);\n }\n throw new Error(errorName);\n }\n const ns = import_schema7.NormalizedSchema.of(errorSchema);\n const message = this.loadQueryErrorMessage(dataObject);\n const exception = new errorSchema.ctor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = errorDataSource[target] ?? dataObject[target];\n output[name] = this.deserializer.readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n /**\n * The variations in the error and error message locations are attributed to\n * divergence between AWS Query and EC2 Query behavior.\n */\n loadQueryErrorCode(output, data) {\n const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;\n if (code !== void 0) {\n return code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n }\n loadQueryError(data) {\n return data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error;\n }\n loadQueryErrorMessage(data) {\n const errorData = this.loadQueryError(data);\n return errorData?.message ?? errorData?.Message ?? data.message ?? data.Message ?? \"Unknown\";\n }\n};\n\n// src/submodules/protocols/query/AwsEc2QueryProtocol.ts\nvar AwsEc2QueryProtocol = class extends AwsQueryProtocol {\n constructor(options) {\n super(options);\n this.options = options;\n const ec2Settings = {\n capitalizeKeys: true,\n flattenLists: true,\n serializeEmptyLists: false\n };\n Object.assign(this.serializer.settings, ec2Settings);\n }\n static {\n __name(this, \"AwsEc2QueryProtocol\");\n }\n /**\n * EC2 Query reads XResponse.XResult instead of XResponse directly.\n */\n useNestedResult() {\n return false;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar import_protocols6 = require(\"@smithy/core/protocols\");\nvar import_schema9 = require(\"@smithy/core/schema\");\nvar import_util_body_length_browser4 = require(\"@smithy/util-body-length-browser\");\n\n// src/submodules/protocols/xml/parseXmlBody.ts\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_fast_xml_parser2 = require(\"fast-xml-parser\");\nvar parseXmlBody = /* @__PURE__ */ __name((streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new import_fast_xml_parser2.XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: /* @__PURE__ */ __name((_, val) => val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : void 0, \"tagValueProcessor\")\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n let parsedObj;\n try {\n parsedObj = parser.parse(encoded, true);\n } catch (e) {\n if (e && typeof e === \"object\") {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: encoded\n });\n }\n throw e;\n }\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return (0, import_smithy_client5.getValueFromTextNode)(parsedObjToReturn);\n }\n return {};\n}), \"parseXmlBody\");\nvar parseXmlErrorBody = /* @__PURE__ */ __name(async (errorBody, context) => {\n const value = await parseXmlBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n}, \"parseXmlErrorBody\");\nvar loadRestXmlErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data?.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (data?.Code !== void 0) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadRestXmlErrorCode\");\n\n// src/submodules/protocols/xml/XmlShapeSerializer.ts\nvar import_xml_builder = require(\"@aws-sdk/xml-builder\");\nvar import_schema8 = require(\"@smithy/core/schema\");\nvar import_serde7 = require(\"@smithy/core/serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\nvar import_util_base643 = require(\"@smithy/util-base64\");\nvar XmlShapeSerializer = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlShapeSerializer\");\n }\n stringBuffer;\n byteBuffer;\n buffer;\n write(schema, value) {\n const ns = import_schema8.NormalizedSchema.of(schema);\n if (ns.isStringSchema() && typeof value === \"string\") {\n this.stringBuffer = value;\n } else if (ns.isBlobSchema()) {\n this.byteBuffer = \"byteLength\" in value ? value : (this.serdeContext?.base64Decoder ?? import_util_base643.fromBase64)(value);\n } else {\n this.buffer = this.writeStruct(ns, value, void 0);\n const traits = ns.getMergedTraits();\n if (traits.httpPayload && !traits.xmlName) {\n this.buffer.withName(ns.getName());\n }\n }\n }\n flush() {\n if (this.byteBuffer !== void 0) {\n const bytes = this.byteBuffer;\n delete this.byteBuffer;\n return bytes;\n }\n if (this.stringBuffer !== void 0) {\n const str = this.stringBuffer;\n delete this.stringBuffer;\n return str;\n }\n const buffer = this.buffer;\n if (this.settings.xmlNamespace) {\n if (!buffer?.attributes?.[\"xmlns\"]) {\n buffer.addAttribute(\"xmlns\", this.settings.xmlNamespace);\n }\n }\n delete this.buffer;\n return buffer.toString();\n }\n writeStruct(ns, value, parentXmlns) {\n const traits = ns.getMergedTraits();\n const name = ns.isMemberSchema() && !traits.httpPayload ? ns.getMemberTraits().xmlName ?? ns.getMemberName() : traits.xmlName ?? ns.getName();\n if (!name || !ns.isStructSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write struct with empty name or non-struct, schema=${ns.getName(\n true\n )}.`\n );\n }\n const structXmlNode = import_xml_builder.XmlNode.of(name);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n structXmlNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const val = value[memberName];\n if (val != null) {\n if (memberSchema.getMergedTraits().xmlAttribute) {\n structXmlNode.addAttribute(\n memberSchema.getMergedTraits().xmlName ?? memberName,\n this.writeSimple(memberSchema, val)\n );\n continue;\n }\n if (memberSchema.isListSchema()) {\n this.writeList(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isMapSchema()) {\n this.writeMap(memberSchema, val, structXmlNode, xmlns);\n } else if (memberSchema.isStructSchema()) {\n structXmlNode.addChildNode(this.writeStruct(memberSchema, val, xmlns));\n } else {\n const memberNode = import_xml_builder.XmlNode.of(memberSchema.getMergedTraits().xmlName ?? memberSchema.getMemberName());\n this.writeSimpleInto(memberSchema, val, memberNode, xmlns);\n structXmlNode.addChildNode(memberNode);\n }\n }\n }\n return structXmlNode;\n }\n writeList(listMember, array, container, parentXmlns) {\n if (!listMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member list: ${listMember.getName(true)}`\n );\n }\n const listTraits = listMember.getMergedTraits();\n const listValueSchema = listMember.getValueSchema();\n const listValueTraits = listValueSchema.getMergedTraits();\n const sparse = !!listValueTraits.sparse;\n const flat = !!listTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(listMember, parentXmlns);\n const writeItem = /* @__PURE__ */ __name((container2, value) => {\n if (listValueSchema.isListSchema()) {\n this.writeList(listValueSchema, Array.isArray(value) ? value : [value], container2, xmlns);\n } else if (listValueSchema.isMapSchema()) {\n this.writeMap(listValueSchema, value, container2, xmlns);\n } else if (listValueSchema.isStructSchema()) {\n const struct = this.writeStruct(listValueSchema, value, xmlns);\n container2.addChildNode(\n struct.withName(flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\")\n );\n } else {\n const listItemNode = import_xml_builder.XmlNode.of(\n flat ? listTraits.xmlName ?? listMember.getMemberName() : listValueTraits.xmlName ?? \"member\"\n );\n this.writeSimpleInto(listValueSchema, value, listItemNode, xmlns);\n container2.addChildNode(listItemNode);\n }\n }, \"writeItem\");\n if (flat) {\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(container, value);\n }\n }\n } else {\n const listNode = import_xml_builder.XmlNode.of(listTraits.xmlName ?? listMember.getMemberName());\n if (xmlns) {\n listNode.addAttribute(xmlnsAttr, xmlns);\n }\n for (const value of array) {\n if (sparse || value != null) {\n writeItem(listNode, value);\n }\n }\n container.addChildNode(listNode);\n }\n }\n writeMap(mapMember, map, container, parentXmlns, containerIsMap = false) {\n if (!mapMember.isMemberSchema()) {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, cannot write non-member map: ${mapMember.getName(true)}`\n );\n }\n const mapTraits = mapMember.getMergedTraits();\n const mapKeySchema = mapMember.getKeySchema();\n const mapKeyTraits = mapKeySchema.getMergedTraits();\n const keyTag = mapKeyTraits.xmlName ?? \"key\";\n const mapValueSchema = mapMember.getValueSchema();\n const mapValueTraits = mapValueSchema.getMergedTraits();\n const valueTag = mapValueTraits.xmlName ?? \"value\";\n const sparse = !!mapValueTraits.sparse;\n const flat = !!mapTraits.xmlFlattened;\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(mapMember, parentXmlns);\n const addKeyValue = /* @__PURE__ */ __name((entry, key, val) => {\n const keyNode = import_xml_builder.XmlNode.of(keyTag, key);\n const [keyXmlnsAttr, keyXmlns] = this.getXmlnsAttribute(mapKeySchema, xmlns);\n if (keyXmlns) {\n keyNode.addAttribute(keyXmlnsAttr, keyXmlns);\n }\n entry.addChildNode(keyNode);\n let valueNode = import_xml_builder.XmlNode.of(valueTag);\n if (mapValueSchema.isListSchema()) {\n this.writeList(mapValueSchema, val, valueNode, xmlns);\n } else if (mapValueSchema.isMapSchema()) {\n this.writeMap(mapValueSchema, val, valueNode, xmlns, true);\n } else if (mapValueSchema.isStructSchema()) {\n valueNode = this.writeStruct(mapValueSchema, val, xmlns);\n } else {\n this.writeSimpleInto(mapValueSchema, val, valueNode, xmlns);\n }\n entry.addChildNode(valueNode);\n }, \"addKeyValue\");\n if (flat) {\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n addKeyValue(entry, key, val);\n container.addChildNode(entry);\n }\n }\n } else {\n let mapNode;\n if (!containerIsMap) {\n mapNode = import_xml_builder.XmlNode.of(mapTraits.xmlName ?? mapMember.getMemberName());\n if (xmlns) {\n mapNode.addAttribute(xmlnsAttr, xmlns);\n }\n container.addChildNode(mapNode);\n }\n for (const [key, val] of Object.entries(map)) {\n if (sparse || val != null) {\n const entry = import_xml_builder.XmlNode.of(\"entry\");\n addKeyValue(entry, key, val);\n (containerIsMap ? container : mapNode).addChildNode(entry);\n }\n }\n }\n }\n writeSimple(_schema, value) {\n if (null === value) {\n throw new Error(\"@aws-sdk/core/protocols - (XML serializer) cannot write null value.\");\n }\n const ns = import_schema8.NormalizedSchema.of(_schema);\n let nodeContents = null;\n if (value && typeof value === \"object\") {\n if (ns.isBlobSchema()) {\n nodeContents = (this.serdeContext?.base64Encoder ?? import_util_base643.toBase64)(value);\n } else if (ns.isTimestampSchema() && value instanceof Date) {\n const options = this.settings.timestampFormat;\n const format = options.useTrait ? ns.getSchema() === import_schema8.SCHEMA.TIMESTAMP_DEFAULT ? options.default : ns.getSchema() ?? options.default : options.default;\n switch (format) {\n case import_schema8.SCHEMA.TIMESTAMP_DATE_TIME:\n nodeContents = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case import_schema8.SCHEMA.TIMESTAMP_HTTP_DATE:\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n case import_schema8.SCHEMA.TIMESTAMP_EPOCH_SECONDS:\n nodeContents = String(value.getTime() / 1e3);\n break;\n default:\n console.warn(\"Missing timestamp format, using http date\", value);\n nodeContents = (0, import_smithy_client6.dateToUtcString)(value);\n break;\n }\n } else if (ns.isBigDecimalSchema() && value) {\n if (value instanceof import_serde7.NumericValue) {\n return value.string;\n }\n return String(value);\n } else if (ns.isMapSchema() || ns.isListSchema()) {\n throw new Error(\n \"@aws-sdk/core/protocols - xml serializer, cannot call _write() on List/Map schema, call writeList or writeMap() instead.\"\n );\n } else {\n throw new Error(\n `@aws-sdk/core/protocols - xml serializer, unhandled schema type for object value and schema: ${ns.getName(\n true\n )}`\n );\n }\n }\n if (ns.isStringSchema() || ns.isBooleanSchema() || ns.isNumericSchema() || ns.isBigIntegerSchema() || ns.isBigDecimalSchema()) {\n nodeContents = String(value);\n }\n if (nodeContents === null) {\n throw new Error(`Unhandled schema-value pair ${ns.getName(true)}=${value}`);\n }\n return nodeContents;\n }\n writeSimpleInto(_schema, value, into, parentXmlns) {\n const nodeContents = this.writeSimple(_schema, value);\n const ns = import_schema8.NormalizedSchema.of(_schema);\n const content = new import_xml_builder.XmlText(nodeContents);\n const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);\n if (xmlns) {\n into.addAttribute(xmlnsAttr, xmlns);\n }\n into.addChildNode(content);\n }\n getXmlnsAttribute(ns, parentXmlns) {\n const traits = ns.getMergedTraits();\n const [prefix, xmlns] = traits.xmlNamespace ?? [];\n if (xmlns && xmlns !== parentXmlns) {\n return [prefix ? `xmlns:${prefix}` : \"xmlns\", xmlns];\n }\n return [void 0, void 0];\n }\n};\n\n// src/submodules/protocols/xml/XmlCodec.ts\nvar XmlCodec = class extends SerdeContextConfig {\n constructor(settings) {\n super();\n this.settings = settings;\n }\n static {\n __name(this, \"XmlCodec\");\n }\n createSerializer() {\n const serializer = new XmlShapeSerializer(this.settings);\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new XmlShapeDeserializer(this.settings);\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n};\n\n// src/submodules/protocols/xml/AwsRestXmlProtocol.ts\nvar AwsRestXmlProtocol = class extends import_protocols6.HttpBindingProtocol {\n static {\n __name(this, \"AwsRestXmlProtocol\");\n }\n codec;\n serializer;\n deserializer;\n constructor(options) {\n super(options);\n const settings = {\n timestampFormat: {\n useTrait: true,\n default: import_schema9.SCHEMA.TIMESTAMP_DATE_TIME\n },\n httpBindings: true,\n xmlNamespace: options.xmlNamespace,\n serviceNamespace: options.defaultNamespace\n };\n this.codec = new XmlCodec(settings);\n this.serializer = new import_protocols6.HttpInterceptingShapeSerializer(this.codec.createSerializer(), settings);\n this.deserializer = new import_protocols6.HttpInterceptingShapeDeserializer(this.codec.createDeserializer(), settings);\n }\n getPayloadCodec() {\n return this.codec;\n }\n getShapeId() {\n return \"aws.protocols#restXml\";\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n const ns = import_schema9.NormalizedSchema.of(operationSchema.input);\n const members = ns.getMemberSchemas();\n request.path = String(request.path).split(\"/\").filter((segment) => {\n return segment !== \"{Bucket}\";\n }).join(\"/\") || \"/\";\n if (!request.headers[\"content-type\"]) {\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n request.headers[\"content-type\"] = mediaType;\n } else if (httpPayloadMember.isStringSchema()) {\n request.headers[\"content-type\"] = \"text/plain\";\n } else if (httpPayloadMember.isBlobSchema()) {\n request.headers[\"content-type\"] = \"application/octet-stream\";\n } else {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n } else if (!ns.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && httpPrefixHeaders === void 0;\n });\n if (hasBody) {\n request.headers[\"content-type\"] = \"application/xml\";\n }\n }\n }\n if (request.headers[\"content-type\"] === \"application/xml\") {\n if (typeof request.body === \"string\") {\n request.body = '' + request.body;\n }\n }\n if (request.body) {\n try {\n request.headers[\"content-length\"] = String((0, import_util_body_length_browser4.calculateBodyLength)(request.body));\n } catch (e) {\n }\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorIdentifier = loadRestXmlErrorCode(response, dataObject) ?? \"Unknown\";\n let namespace = this.options.defaultNamespace;\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [namespace, errorName] = errorIdentifier.split(\"#\");\n }\n const registry = import_schema9.TypeRegistry.for(namespace);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorIdentifier);\n } catch (e) {\n const baseExceptionSchema = import_schema9.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace).getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = baseExceptionSchema.ctor;\n throw Object.assign(new ErrorCtor(errorName), dataObject);\n }\n throw new Error(errorName);\n }\n const ns = import_schema9.NormalizedSchema.of(errorSchema);\n const message = dataObject.Error?.message ?? dataObject.Error?.Message ?? dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new errorSchema.ctor(message);\n await this.deserializeHttpMessage(errorSchema, context, response, dataObject);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n const target = member.getMergedTraits().xmlName ?? name;\n const value = dataObject.Error?.[target] ?? dataObject[target];\n output[name] = this.codec.createDeserializer().readSchema(member, value);\n }\n Object.assign(exception, {\n $metadata: metadata,\n $response: response,\n $fault: ns.getMergedTraits().error,\n message,\n ...output\n });\n throw exception;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AwsEc2QueryProtocol,\n AwsJson1_0Protocol,\n AwsJson1_1Protocol,\n AwsJsonRpcProtocol,\n AwsQueryProtocol,\n AwsRestJsonProtocol,\n AwsRestXmlProtocol,\n JsonCodec,\n JsonShapeDeserializer,\n JsonShapeSerializer,\n XmlCodec,\n XmlShapeDeserializer,\n XmlShapeSerializer,\n _toBool,\n _toNum,\n _toStr,\n awsExpectUnion,\n loadRestJsonErrorCode,\n loadRestXmlErrorCode,\n parseJsonBody,\n parseJsonErrorBody,\n parseXmlBody,\n parseXmlErrorBody\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n getSsecPlugin: () => getSsecPlugin,\n isValidBase64EncodedSSECustomerKey: () => isValidBase64EncodedSSECustomerKey,\n ssecMiddleware: () => ssecMiddleware,\n ssecMiddlewareOptions: () => ssecMiddlewareOptions\n});\nmodule.exports = __toCommonJS(index_exports);\nfunction ssecMiddleware(options) {\n return (next) => async (args) => {\n const input = { ...args.input };\n const properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\"\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\"\n }\n ];\n for (const prop of properties) {\n const value = input[prop.target];\n if (value) {\n let valueForHash;\n if (typeof value === \"string\") {\n if (isValidBase64EncodedSSECustomerKey(value, options)) {\n valueForHash = options.base64Decoder(value);\n } else {\n valueForHash = options.utf8Decoder(value);\n input[prop.target] = options.base64Encoder(valueForHash);\n }\n } else {\n valueForHash = ArrayBuffer.isView(value) ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength) : new Uint8Array(value);\n input[prop.target] = options.base64Encoder(valueForHash);\n }\n const hash = new options.md5();\n hash.update(valueForHash);\n input[prop.hash] = options.base64Encoder(await hash.digest());\n }\n }\n return next({\n ...args,\n input\n });\n };\n}\n__name(ssecMiddleware, \"ssecMiddleware\");\nvar ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true\n};\nvar getSsecPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getSsecPlugin\");\nfunction isValidBase64EncodedSSECustomerKey(str, options) {\n const base64Regex = /^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\n if (!base64Regex.test(str)) return false;\n try {\n const decodedBytes = options.base64Decoder(str);\n return decodedBytes.length === 32;\n } catch {\n return false;\n }\n}\n__name(isValidBase64EncodedSSECustomerKey, \"isValidBase64EncodedSSECustomerKey\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n ssecMiddlewareOptions,\n getSsecPlugin,\n ssecMiddleware,\n isValidBase64EncodedSSECustomerKey\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID,\n getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,\n getUserAgentPlugin: () => getUserAgentPlugin,\n resolveUserAgentConfig: () => resolveUserAgentConfig,\n userAgentMiddleware: () => userAgentMiddleware\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/configurations.ts\nvar import_core = require(\"@smithy/core\");\nvar DEFAULT_UA_APP_ID = void 0;\nfunction isValidUserAgentAppId(appId) {\n if (appId === void 0) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\n__name(isValidUserAgentAppId, \"isValidUserAgentAppId\");\nfunction resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = (0, import_core.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: /* @__PURE__ */ __name(async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n } else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n }, \"userAgentAppId\")\n });\n}\n__name(resolveUserAgentConfig, \"resolveUserAgentConfig\");\n\n// src/user-agent-middleware.ts\nvar import_util_endpoints = require(\"@aws-sdk/util-endpoints\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\n\n// src/check-features.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nasync function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n (0, import_core2.setFeature)(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_STANDARD\", \"E\");\n }\n } else {\n (0, import_core2.setFeature)(context, \"RETRY_MODE_LEGACY\", \"D\");\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n (0, import_core2.setFeature)(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n (0, import_core2.setFeature)(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n (0, import_core2.setFeature)(context, key, value);\n }\n }\n}\n__name(checkFeatures, \"checkFeatures\");\n\n// src/constants.ts\nvar USER_AGENT = \"user-agent\";\nvar X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nvar SPACE = \" \";\nvar UA_NAME_SEPARATOR = \"/\";\nvar UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nvar UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nvar UA_ESCAPE_CHAR = \"-\";\n\n// src/encode-features.ts\nvar BYTE_LIMIT = 1024;\nfunction encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n } else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n__name(encodeFeatures, \"encodeFeatures\");\n\n// src/user-agent-middleware.ts\nvar userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {\n const { request } = args;\n if (!import_protocol_http.HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(\n `m/${encodeFeatures(\n Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features)\n )}`\n );\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n }\n const prefix = (0, import_util_endpoints.getUserAgentPrefix)();\n const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n } else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request\n });\n}, \"userAgentMiddleware\");\nvar escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {\n const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n}, \"escapeUserAgent\");\nvar getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true\n};\nvar getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({\n applyToStack: /* @__PURE__ */ __name((clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n }, \"applyToStack\")\n}), \"getUserAgentPlugin\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n DEFAULT_UA_APP_ID,\n resolveUserAgentConfig,\n userAgentMiddleware,\n getUserAgentMiddlewareOptions,\n getUserAgentPlugin\n});\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.defaultSSOOIDCHttpAuthSchemeProvider = exports.defaultSSOOIDCHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSSOOIDCHttpAuthSchemeParametersProvider = defaultSSOOIDCHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sso-oauth\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"CreateToken\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSSOOIDCHttpAuthSchemeProvider = defaultSSOOIDCHttpAuthSchemeProvider;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config);\n return Object.assign(config_0, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst u = \"required\", v = \"fn\", w = \"argv\", x = \"ref\";\nconst a = true, b = \"isSet\", c = \"booleanEquals\", d = \"error\", e = \"endpoint\", f = \"tree\", g = \"PartitionResult\", h = \"getAttr\", i = { [u]: false, \"type\": \"String\" }, j = { [u]: true, \"default\": false, \"type\": \"Boolean\" }, k = { [x]: \"Endpoint\" }, l = { [v]: c, [w]: [{ [x]: \"UseFIPS\" }, true] }, m = { [v]: c, [w]: [{ [x]: \"UseDualStack\" }, true] }, n = {}, o = { [v]: h, [w]: [{ [x]: g }, \"supportsFIPS\"] }, p = { [x]: g }, q = { [v]: c, [w]: [true, { [v]: h, [w]: [p, \"supportsDualStack\"] }] }, r = [l], s = [m], t = [{ [x]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: i, UseDualStack: j, UseFIPS: j, Endpoint: i }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: d }, { conditions: s, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e }], type: f }, { conditions: [{ [v]: b, [w]: t }], rules: [{ conditions: [{ [v]: \"aws.partition\", [w]: t, assign: g }], rules: [{ conditions: [l, m], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: d }], type: f }, { conditions: r, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: \"stringEquals\", [w]: [{ [v]: h, [w]: [p, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://oidc.{Region}.amazonaws.com\", properties: n, headers: n }, type: e }, { endpoint: { url: \"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: d }], type: f }, { conditions: s, rules: [{ conditions: [q], rules: [{ endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: n, headers: n }, type: e }], type: f }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: d }], type: f }, { endpoint: { url: \"https://oidc.{Region}.{PartitionResult#dnsSuffix}\", properties: n, headers: n }, type: e }], type: f }], type: f }, { error: \"Invalid Configuration: Missing Region\", type: d }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sso-oidc/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $Command: () => import_smithy_client6.Command,\n AccessDeniedException: () => AccessDeniedException,\n AuthorizationPendingException: () => AuthorizationPendingException,\n CreateTokenCommand: () => CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n InternalServerException: () => InternalServerException,\n InvalidClientException: () => InvalidClientException,\n InvalidGrantException: () => InvalidGrantException,\n InvalidRequestException: () => InvalidRequestException,\n InvalidScopeException: () => InvalidScopeException,\n SSOOIDC: () => SSOOIDC,\n SSOOIDCClient: () => SSOOIDCClient,\n SSOOIDCServiceException: () => SSOOIDCServiceException,\n SlowDownException: () => SlowDownException,\n UnauthorizedClientException: () => UnauthorizedClientException,\n UnsupportedGrantTypeException: () => UnsupportedGrantTypeException,\n __Client: () => import_smithy_client2.Client\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_middleware_host_header = require(\"@aws-sdk/middleware-host-header\");\nvar import_middleware_logger = require(\"@aws-sdk/middleware-logger\");\nvar import_middleware_recursion_detection = require(\"@aws-sdk/middleware-recursion-detection\");\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar import_config_resolver = require(\"@smithy/config-resolver\");\nvar import_core = require(\"@smithy/core\");\nvar import_middleware_content_length = require(\"@smithy/middleware-content-length\");\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_retry = require(\"@smithy/middleware-retry\");\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\nvar import_httpAuthSchemeProvider = require(\"./auth/httpAuthSchemeProvider\");\n\n// src/submodules/sso-oidc/endpoint/EndpointParameters.ts\nvar resolveClientEndpointParameters = /* @__PURE__ */ __name((options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"sso-oauth\"\n });\n}, \"resolveClientEndpointParameters\");\nvar commonParams = {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" }\n};\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar import_runtimeConfig = require(\"./runtimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar import_region_config_resolver = require(\"@aws-sdk/region-config-resolver\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.ts\nvar getHttpAuthExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n } else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n }\n };\n}, \"getHttpAuthExtensionConfiguration\");\nvar resolveHttpAuthRuntimeConfig = /* @__PURE__ */ __name((config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials()\n };\n}, \"resolveHttpAuthRuntimeConfig\");\n\n// src/submodules/sso-oidc/runtimeExtensions.ts\nvar resolveRuntimeExtensions = /* @__PURE__ */ __name((runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign(\n (0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig),\n (0, import_smithy_client.getDefaultExtensionConfiguration)(runtimeConfig),\n (0, import_protocol_http.getHttpHandlerExtensionConfiguration)(runtimeConfig),\n getHttpAuthExtensionConfiguration(runtimeConfig)\n );\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(\n runtimeConfig,\n (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration),\n (0, import_smithy_client.resolveDefaultRuntimeConfig)(extensionConfiguration),\n (0, import_protocol_http.resolveHttpHandlerRuntimeConfig)(extensionConfiguration),\n resolveHttpAuthRuntimeConfig(extensionConfiguration)\n );\n}, \"resolveRuntimeExtensions\");\n\n// src/submodules/sso-oidc/SSOOIDCClient.ts\nvar SSOOIDCClient = class extends import_smithy_client2.Client {\n static {\n __name(this, \"SSOOIDCClient\");\n }\n /**\n * The resolved configuration of SSOOIDCClient class. This is resolved and normalized from the {@link SSOOIDCClientConfig | constructor configuration interface}.\n */\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, import_runtimeConfig.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, import_middleware_retry.resolveRetryConfig)(_config_2);\n const _config_4 = (0, import_config_resolver.resolveRegionConfig)(_config_3);\n const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, import_httpAuthSchemeProvider.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_retry.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use(\n (0, import_core.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider.defaultSSOOIDCHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials\n }), \"identityProviderConfigProvider\")\n })\n );\n this.middlewareStack.use((0, import_core.getHttpSigningPlugin)(this.config));\n }\n /**\n * Destroy underlying resources, like sockets. It's usually not necessary to do this.\n * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed.\n * Otherwise, sockets might stay open for quite a long time before the server terminates them.\n */\n destroy() {\n super.destroy();\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar import_smithy_client7 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sso-oidc/models/SSOOIDCServiceException.ts\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client3.ServiceException {\n static {\n __name(this, \"SSOOIDCServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype);\n }\n};\n\n// src/submodules/sso-oidc/models/models_0.ts\nvar AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException {\n static {\n __name(this, \"AccessDeniedException\");\n }\n name = \"AccessDeniedException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be access_denied.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AccessDeniedException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AccessDeniedException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException {\n static {\n __name(this, \"AuthorizationPendingException\");\n }\n name = \"AuthorizationPendingException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * authorization_pending.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"AuthorizationPendingException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _AuthorizationPendingException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar CreateTokenRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.clientSecret && { clientSecret: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.codeVerifier && { codeVerifier: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenRequestFilterSensitiveLog\");\nvar CreateTokenResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.accessToken && { accessToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.refreshToken && { refreshToken: import_smithy_client4.SENSITIVE_STRING },\n ...obj.idToken && { idToken: import_smithy_client4.SENSITIVE_STRING }\n}), \"CreateTokenResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be expired_token.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InternalServerException = class _InternalServerException extends SSOOIDCServiceException {\n static {\n __name(this, \"InternalServerException\");\n }\n name = \"InternalServerException\";\n $fault = \"server\";\n /**\n *

Single error code. For this exception the value will be server_error.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InternalServerException\",\n $fault: \"server\",\n ...opts\n });\n Object.setPrototypeOf(this, _InternalServerException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidClientException\");\n }\n name = \"InvalidClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidGrantException\");\n }\n name = \"InvalidGrantException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_grant.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidGrantException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidGrantException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidRequestException\");\n }\n name = \"InvalidRequestException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * invalid_request.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidRequestException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException {\n static {\n __name(this, \"InvalidScopeException\");\n }\n name = \"InvalidScopeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be invalid_scope.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidScopeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidScopeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar SlowDownException = class _SlowDownException extends SSOOIDCServiceException {\n static {\n __name(this, \"SlowDownException\");\n }\n name = \"SlowDownException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be slow_down.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"SlowDownException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _SlowDownException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnauthorizedClientException\");\n }\n name = \"UnauthorizedClientException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unauthorized_client.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnauthorizedClientException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnauthorizedClientException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\nvar UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException {\n static {\n __name(this, \"UnsupportedGrantTypeException\");\n }\n name = \"UnsupportedGrantTypeException\";\n $fault = \"client\";\n /**\n *

Single error code. For this exception the value will be\n * unsupported_grant_type.

\n * @public\n */\n error;\n /**\n *

Human-readable text providing additional information, used to assist the client developer\n * in understanding the error that occurred.

\n * @public\n */\n error_description;\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"UnsupportedGrantTypeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype);\n this.error = opts.error;\n this.error_description = opts.error_description;\n }\n};\n\n// src/submodules/sso-oidc/protocols/Aws_restJson1.ts\nvar import_core2 = require(\"@aws-sdk/core\");\nvar import_core3 = require(\"@smithy/core\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar se_CreateTokenCommand = /* @__PURE__ */ __name(async (input, context) => {\n const b = (0, import_core3.requestBuilder)(input, context);\n const headers = {\n \"content-type\": \"application/json\"\n };\n b.bp(\"/token\");\n let body;\n body = JSON.stringify(\n (0, import_smithy_client5.take)(input, {\n clientId: [],\n clientSecret: [],\n code: [],\n codeVerifier: [],\n deviceCode: [],\n grantType: [],\n redirectUri: [],\n refreshToken: [],\n scope: /* @__PURE__ */ __name((_) => (0, import_smithy_client5._json)(_), \"scope\")\n })\n );\n b.m(\"POST\").h(headers).b(body);\n return b.build();\n}, \"se_CreateTokenCommand\");\nvar de_CreateTokenCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const contents = (0, import_smithy_client5.map)({\n $metadata: deserializeMetadata(output)\n });\n const data = (0, import_smithy_client5.expectNonNull)((0, import_smithy_client5.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), \"body\");\n const doc = (0, import_smithy_client5.take)(data, {\n accessToken: import_smithy_client5.expectString,\n expiresIn: import_smithy_client5.expectInt32,\n idToken: import_smithy_client5.expectString,\n refreshToken: import_smithy_client5.expectString,\n tokenType: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n return contents;\n}, \"de_CreateTokenCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core2.parseJsonErrorBody)(output.body, context)\n };\n const errorCode = (0, import_core2.loadRestJsonErrorCode)(output, parsedOutput.body);\n switch (errorCode) {\n case \"AccessDeniedException\":\n case \"com.amazonaws.ssooidc#AccessDeniedException\":\n throw await de_AccessDeniedExceptionRes(parsedOutput, context);\n case \"AuthorizationPendingException\":\n case \"com.amazonaws.ssooidc#AuthorizationPendingException\":\n throw await de_AuthorizationPendingExceptionRes(parsedOutput, context);\n case \"ExpiredTokenException\":\n case \"com.amazonaws.ssooidc#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"InternalServerException\":\n case \"com.amazonaws.ssooidc#InternalServerException\":\n throw await de_InternalServerExceptionRes(parsedOutput, context);\n case \"InvalidClientException\":\n case \"com.amazonaws.ssooidc#InvalidClientException\":\n throw await de_InvalidClientExceptionRes(parsedOutput, context);\n case \"InvalidGrantException\":\n case \"com.amazonaws.ssooidc#InvalidGrantException\":\n throw await de_InvalidGrantExceptionRes(parsedOutput, context);\n case \"InvalidRequestException\":\n case \"com.amazonaws.ssooidc#InvalidRequestException\":\n throw await de_InvalidRequestExceptionRes(parsedOutput, context);\n case \"InvalidScopeException\":\n case \"com.amazonaws.ssooidc#InvalidScopeException\":\n throw await de_InvalidScopeExceptionRes(parsedOutput, context);\n case \"SlowDownException\":\n case \"com.amazonaws.ssooidc#SlowDownException\":\n throw await de_SlowDownExceptionRes(parsedOutput, context);\n case \"UnauthorizedClientException\":\n case \"com.amazonaws.ssooidc#UnauthorizedClientException\":\n throw await de_UnauthorizedClientExceptionRes(parsedOutput, context);\n case \"UnsupportedGrantTypeException\":\n case \"com.amazonaws.ssooidc#UnsupportedGrantTypeException\":\n throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar throwDefaultError = (0, import_smithy_client5.withBaseException)(SSOOIDCServiceException);\nvar de_AccessDeniedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AccessDeniedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AccessDeniedExceptionRes\");\nvar de_AuthorizationPendingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new AuthorizationPendingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_AuthorizationPendingExceptionRes\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_InternalServerExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InternalServerException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InternalServerExceptionRes\");\nvar de_InvalidClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidClientExceptionRes\");\nvar de_InvalidGrantExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidGrantException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidGrantExceptionRes\");\nvar de_InvalidRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidRequestExceptionRes\");\nvar de_InvalidScopeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new InvalidScopeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_InvalidScopeExceptionRes\");\nvar de_SlowDownExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new SlowDownException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_SlowDownExceptionRes\");\nvar de_UnauthorizedClientExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnauthorizedClientException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnauthorizedClientExceptionRes\");\nvar de_UnsupportedGrantTypeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const contents = (0, import_smithy_client5.map)({});\n const data = parsedOutput.body;\n const doc = (0, import_smithy_client5.take)(data, {\n error: import_smithy_client5.expectString,\n error_description: import_smithy_client5.expectString\n });\n Object.assign(contents, doc);\n const exception = new UnsupportedGrantTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents\n });\n return (0, import_smithy_client5.decorateServiceException)(exception, parsedOutput.body);\n}, \"de_UnsupportedGrantTypeExceptionRes\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\n\n// src/submodules/sso-oidc/commands/CreateTokenCommand.ts\nvar CreateTokenCommand = class extends import_smithy_client6.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSSOOIDCService\", \"CreateToken\", {}).n(\"SSOOIDCClient\", \"CreateTokenCommand\").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() {\n static {\n __name(this, \"CreateTokenCommand\");\n }\n};\n\n// src/submodules/sso-oidc/SSOOIDC.ts\nvar commands = {\n CreateTokenCommand\n};\nvar SSOOIDC = class extends SSOOIDCClient {\n static {\n __name(this, \"SSOOIDC\");\n }\n};\n(0, import_smithy_client7.createAggregatedClient)(commands, SSOOIDC);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $Command,\n AccessDeniedException,\n AuthorizationPendingException,\n CreateTokenCommand,\n CreateTokenRequestFilterSensitiveLog,\n CreateTokenResponseFilterSensitiveLog,\n ExpiredTokenException,\n InternalServerException,\n InvalidClientException,\n InvalidGrantException,\n InvalidRequestException,\n InvalidScopeException,\n SSOOIDC,\n SSOOIDCClient,\n SSOOIDCServiceException,\n SlowDownException,\n UnauthorizedClientException,\n UnsupportedGrantTypeException,\n __Client\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2019-06-10\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSSOOIDCHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"SSO OIDC\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STSClient = exports.__Client = void 0;\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_recursion_detection_1 = require(\"@aws-sdk/middleware-recursion-detection\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_1 = require(\"@smithy/core\");\nconst middleware_content_length_1 = require(\"@smithy/middleware-content-length\");\nconst middleware_endpoint_1 = require(\"@smithy/middleware-endpoint\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nObject.defineProperty(exports, \"__Client\", { enumerable: true, get: function () { return smithy_client_1.Client; } });\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst EndpointParameters_1 = require(\"./endpoint/EndpointParameters\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nconst runtimeExtensions_1 = require(\"./runtimeExtensions\");\nclass STSClient extends smithy_client_1.Client {\n config;\n constructor(...[configuration]) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration || {});\n super(_config_0);\n this.initConfig = _config_0;\n const _config_1 = (0, EndpointParameters_1.resolveClientEndpointParameters)(_config_0);\n const _config_2 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, config_resolver_1.resolveRegionConfig)(_config_3);\n const _config_5 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_4);\n const _config_6 = (0, middleware_endpoint_1.resolveEndpointConfig)(_config_5);\n const _config_7 = (0, httpAuthSchemeProvider_1.resolveHttpAuthSchemeConfig)(_config_6);\n const _config_8 = (0, runtimeExtensions_1.resolveRuntimeExtensions)(_config_7, configuration?.extensions || []);\n this.config = _config_8;\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_recursion_detection_1.getRecursionDetectionPlugin)(this.config));\n this.middlewareStack.use((0, core_1.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, {\n httpAuthSchemeParametersProvider: httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeParametersProvider,\n identityProviderConfigProvider: async (config) => new core_1.DefaultIdentityProviderConfig({\n \"aws.auth#sigv4\": config.credentials,\n }),\n }));\n this.middlewareStack.use((0, core_1.getHttpSigningPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.STSClient = STSClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthRuntimeConfig = exports.getHttpAuthExtensionConfiguration = void 0;\nconst getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n let _credentials = runtimeConfig.credentials;\n return {\n setHttpAuthScheme(httpAuthScheme) {\n const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n if (index === -1) {\n _httpAuthSchemes.push(httpAuthScheme);\n }\n else {\n _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n }\n },\n httpAuthSchemes() {\n return _httpAuthSchemes;\n },\n setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n _httpAuthSchemeProvider = httpAuthSchemeProvider;\n },\n httpAuthSchemeProvider() {\n return _httpAuthSchemeProvider;\n },\n setCredentials(credentials) {\n _credentials = credentials;\n },\n credentials() {\n return _credentials;\n },\n };\n};\nexports.getHttpAuthExtensionConfiguration = getHttpAuthExtensionConfiguration;\nconst resolveHttpAuthRuntimeConfig = (config) => {\n return {\n httpAuthSchemes: config.httpAuthSchemes(),\n httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n credentials: config.credentials(),\n };\n};\nexports.resolveHttpAuthRuntimeConfig = resolveHttpAuthRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveHttpAuthSchemeConfig = exports.resolveStsAuthConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_middleware_1 = require(\"@smithy/util-middleware\");\nconst STSClient_1 = require(\"../STSClient\");\nconst defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {\n return {\n operation: (0, util_middleware_1.getSmithyContext)(context).operation,\n region: (await (0, util_middleware_1.normalizeProvider)(config.region)()) ||\n (() => {\n throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n })(),\n };\n};\nexports.defaultSTSHttpAuthSchemeParametersProvider = defaultSTSHttpAuthSchemeParametersProvider;\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n return {\n schemeId: \"aws.auth#sigv4\",\n signingProperties: {\n name: \"sts\",\n region: authParameters.region,\n },\n propertiesExtractor: (config, context) => ({\n signingProperties: {\n config,\n context,\n },\n }),\n };\n}\nfunction createSmithyApiNoAuthHttpAuthOption(authParameters) {\n return {\n schemeId: \"smithy.api#noAuth\",\n };\n}\nconst defaultSTSHttpAuthSchemeProvider = (authParameters) => {\n const options = [];\n switch (authParameters.operation) {\n case \"AssumeRoleWithWebIdentity\": {\n options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));\n break;\n }\n default: {\n options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n }\n }\n return options;\n};\nexports.defaultSTSHttpAuthSchemeProvider = defaultSTSHttpAuthSchemeProvider;\nconst resolveStsAuthConfig = (input) => Object.assign(input, {\n stsClientCtor: STSClient_1.STSClient,\n});\nexports.resolveStsAuthConfig = resolveStsAuthConfig;\nconst resolveHttpAuthSchemeConfig = (config) => {\n const config_0 = (0, exports.resolveStsAuthConfig)(config);\n const config_1 = (0, core_1.resolveAwsSdkSigV4Config)(config_0);\n return Object.assign(config_1, {\n authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []),\n });\n};\nexports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.commonParams = exports.resolveClientEndpointParameters = void 0;\nconst resolveClientEndpointParameters = (options) => {\n return Object.assign(options, {\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n defaultSigningName: \"sts\",\n });\n};\nexports.resolveClientEndpointParameters = resolveClientEndpointParameters;\nexports.commonParams = {\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultEndpointResolver = void 0;\nconst util_endpoints_1 = require(\"@aws-sdk/util-endpoints\");\nconst util_endpoints_2 = require(\"@smithy/util-endpoints\");\nconst ruleset_1 = require(\"./ruleset\");\nconst cache = new util_endpoints_2.EndpointCache({\n size: 50,\n params: [\"Endpoint\", \"Region\", \"UseDualStack\", \"UseFIPS\", \"UseGlobalEndpoint\"],\n});\nconst defaultEndpointResolver = (endpointParams, context = {}) => {\n return cache.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n }));\n};\nexports.defaultEndpointResolver = defaultEndpointResolver;\nutil_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ruleSet = void 0;\nconst F = \"required\", G = \"type\", H = \"fn\", I = \"argv\", J = \"ref\";\nconst a = false, b = true, c = \"booleanEquals\", d = \"stringEquals\", e = \"sigv4\", f = \"sts\", g = \"us-east-1\", h = \"endpoint\", i = \"https://sts.{Region}.{PartitionResult#dnsSuffix}\", j = \"tree\", k = \"error\", l = \"getAttr\", m = { [F]: false, [G]: \"String\" }, n = { [F]: true, \"default\": false, [G]: \"Boolean\" }, o = { [J]: \"Endpoint\" }, p = { [H]: \"isSet\", [I]: [{ [J]: \"Region\" }] }, q = { [J]: \"Region\" }, r = { [H]: \"aws.partition\", [I]: [q], \"assign\": \"PartitionResult\" }, s = { [J]: \"UseFIPS\" }, t = { [J]: \"UseDualStack\" }, u = { \"url\": \"https://sts.amazonaws.com\", \"properties\": { \"authSchemes\": [{ \"name\": e, \"signingName\": f, \"signingRegion\": g }] }, \"headers\": {} }, v = {}, w = { \"conditions\": [{ [H]: d, [I]: [q, \"aws-global\"] }], [h]: u, [G]: h }, x = { [H]: c, [I]: [s, true] }, y = { [H]: c, [I]: [t, true] }, z = { [H]: l, [I]: [{ [J]: \"PartitionResult\" }, \"supportsFIPS\"] }, A = { [J]: \"PartitionResult\" }, B = { [H]: c, [I]: [true, { [H]: l, [I]: [A, \"supportsDualStack\"] }] }, C = [{ [H]: \"isSet\", [I]: [o] }], D = [x], E = [y];\nconst _data = { version: \"1.0\", parameters: { Region: m, UseDualStack: n, UseFIPS: n, Endpoint: m, UseGlobalEndpoint: n }, rules: [{ conditions: [{ [H]: c, [I]: [{ [J]: \"UseGlobalEndpoint\" }, b] }, { [H]: \"not\", [I]: C }, p, r, { [H]: c, [I]: [s, a] }, { [H]: c, [I]: [t, a] }], rules: [{ conditions: [{ [H]: d, [I]: [q, \"ap-northeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-south-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"ap-southeast-2\"] }], endpoint: u, [G]: h }, w, { conditions: [{ [H]: d, [I]: [q, \"ca-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-central-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-north-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"eu-west-3\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"sa-east-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, g] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-east-2\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-1\"] }], endpoint: u, [G]: h }, { conditions: [{ [H]: d, [I]: [q, \"us-west-2\"] }], endpoint: u, [G]: h }, { endpoint: { url: i, properties: { authSchemes: [{ name: e, signingName: f, signingRegion: \"{Region}\" }] }, headers: v }, [G]: h }], [G]: j }, { conditions: C, rules: [{ conditions: D, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", [G]: k }, { conditions: E, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", [G]: k }, { endpoint: { url: o, properties: v, headers: v }, [G]: h }], [G]: j }, { conditions: [p], rules: [{ conditions: [r], rules: [{ conditions: [x, y], rules: [{ conditions: [{ [H]: c, [I]: [b, z] }, B], rules: [{ endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", [G]: k }], [G]: j }, { conditions: D, rules: [{ conditions: [{ [H]: c, [I]: [z, b] }], rules: [{ conditions: [{ [H]: d, [I]: [{ [H]: l, [I]: [A, \"name\"] }, \"aws-us-gov\"] }], endpoint: { url: \"https://sts.{Region}.amazonaws.com\", properties: v, headers: v }, [G]: h }, { endpoint: { url: \"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"FIPS is enabled but this partition does not support FIPS\", [G]: k }], [G]: j }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: \"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: v, headers: v }, [G]: h }], [G]: j }, { error: \"DualStack is enabled but this partition does not support DualStack\", [G]: k }], [G]: j }, w, { endpoint: { url: i, properties: v, headers: v }, [G]: h }], [G]: j }], [G]: j }, { error: \"Invalid Configuration: Missing Region\", [G]: k }] };\nexports.ruleSet = _data;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/submodules/sts/index.ts\nvar index_exports = {};\n__export(index_exports, {\n AssumeRoleCommand: () => AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters: () => import_EndpointParameters3.ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog,\n ExpiredTokenException: () => ExpiredTokenException,\n IDPCommunicationErrorException: () => IDPCommunicationErrorException,\n IDPRejectedClaimException: () => IDPRejectedClaimException,\n InvalidIdentityTokenException: () => InvalidIdentityTokenException,\n MalformedPolicyDocumentException: () => MalformedPolicyDocumentException,\n PackedPolicyTooLargeException: () => PackedPolicyTooLargeException,\n RegionDisabledException: () => RegionDisabledException,\n STS: () => STS,\n STSServiceException: () => STSServiceException,\n decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider,\n getDefaultRoleAssumer: () => getDefaultRoleAssumer2,\n getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2\n});\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./STSClient\"), module.exports);\n\n// src/submodules/sts/STS.ts\nvar import_smithy_client6 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar import_middleware_endpoint = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde = require(\"@smithy/middleware-serde\");\nvar import_smithy_client4 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/models/models_0.ts\nvar import_smithy_client2 = require(\"@smithy/smithy-client\");\n\n// src/submodules/sts/models/STSServiceException.ts\nvar import_smithy_client = require(\"@smithy/smithy-client\");\nvar STSServiceException = class _STSServiceException extends import_smithy_client.ServiceException {\n static {\n __name(this, \"STSServiceException\");\n }\n /**\n * @internal\n */\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, _STSServiceException.prototype);\n }\n};\n\n// src/submodules/sts/models/models_0.ts\nvar CredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client2.SENSITIVE_STRING }\n}), \"CredentialsFilterSensitiveLog\");\nvar AssumeRoleResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleResponseFilterSensitiveLog\");\nvar ExpiredTokenException = class _ExpiredTokenException extends STSServiceException {\n static {\n __name(this, \"ExpiredTokenException\");\n }\n name = \"ExpiredTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"ExpiredTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _ExpiredTokenException.prototype);\n }\n};\nvar MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException {\n static {\n __name(this, \"MalformedPolicyDocumentException\");\n }\n name = \"MalformedPolicyDocumentException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"MalformedPolicyDocumentException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype);\n }\n};\nvar PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException {\n static {\n __name(this, \"PackedPolicyTooLargeException\");\n }\n name = \"PackedPolicyTooLargeException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"PackedPolicyTooLargeException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype);\n }\n};\nvar RegionDisabledException = class _RegionDisabledException extends STSServiceException {\n static {\n __name(this, \"RegionDisabledException\");\n }\n name = \"RegionDisabledException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"RegionDisabledException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _RegionDisabledException.prototype);\n }\n};\nvar IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException {\n static {\n __name(this, \"IDPRejectedClaimException\");\n }\n name = \"IDPRejectedClaimException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPRejectedClaimException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype);\n }\n};\nvar InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException {\n static {\n __name(this, \"InvalidIdentityTokenException\");\n }\n name = \"InvalidIdentityTokenException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"InvalidIdentityTokenException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype);\n }\n};\nvar AssumeRoleWithWebIdentityRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client2.SENSITIVE_STRING }\n}), \"AssumeRoleWithWebIdentityRequestFilterSensitiveLog\");\nvar AssumeRoleWithWebIdentityResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({\n ...obj,\n ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }\n}), \"AssumeRoleWithWebIdentityResponseFilterSensitiveLog\");\nvar IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException {\n static {\n __name(this, \"IDPCommunicationErrorException\");\n }\n name = \"IDPCommunicationErrorException\";\n $fault = \"client\";\n /**\n * @internal\n */\n constructor(opts) {\n super({\n name: \"IDPCommunicationErrorException\",\n $fault: \"client\",\n ...opts\n });\n Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype);\n }\n};\n\n// src/submodules/sts/protocols/Aws_query.ts\nvar import_core = require(\"@aws-sdk/core\");\nvar import_protocol_http = require(\"@smithy/protocol-http\");\nvar import_smithy_client3 = require(\"@smithy/smithy-client\");\nvar se_AssumeRoleCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleRequest(input, context),\n [_A]: _AR,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleCommand\");\nvar se_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (input, context) => {\n const headers = SHARED_HEADERS;\n let body;\n body = buildFormUrlencodedString({\n ...se_AssumeRoleWithWebIdentityRequest(input, context),\n [_A]: _ARWWI,\n [_V]: _\n });\n return buildHttpRpcRequest(context, headers, \"/\", void 0, body);\n}, \"se_AssumeRoleWithWebIdentityCommand\");\nvar de_AssumeRoleCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleResponse(data.AssumeRoleResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleCommand\");\nvar de_AssumeRoleWithWebIdentityCommand = /* @__PURE__ */ __name(async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CommandError(output, context);\n }\n const data = await (0, import_core.parseXmlBody)(output.body, context);\n let contents = {};\n contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents\n };\n return response;\n}, \"de_AssumeRoleWithWebIdentityCommand\");\nvar de_CommandError = /* @__PURE__ */ __name(async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await (0, import_core.parseXmlErrorBody)(output.body, context)\n };\n const errorCode = loadQueryErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExpiredTokenException\":\n case \"com.amazonaws.sts#ExpiredTokenException\":\n throw await de_ExpiredTokenExceptionRes(parsedOutput, context);\n case \"MalformedPolicyDocument\":\n case \"com.amazonaws.sts#MalformedPolicyDocumentException\":\n throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);\n case \"PackedPolicyTooLarge\":\n case \"com.amazonaws.sts#PackedPolicyTooLargeException\":\n throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context);\n case \"RegionDisabledException\":\n case \"com.amazonaws.sts#RegionDisabledException\":\n throw await de_RegionDisabledExceptionRes(parsedOutput, context);\n case \"IDPCommunicationError\":\n case \"com.amazonaws.sts#IDPCommunicationErrorException\":\n throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context);\n case \"IDPRejectedClaim\":\n case \"com.amazonaws.sts#IDPRejectedClaimException\":\n throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context);\n case \"InvalidIdentityToken\":\n case \"com.amazonaws.sts#InvalidIdentityTokenException\":\n throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody: parsedBody.Error,\n errorCode\n });\n }\n}, \"de_CommandError\");\nvar de_ExpiredTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_ExpiredTokenException(body.Error, context);\n const exception = new ExpiredTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_ExpiredTokenExceptionRes\");\nvar de_IDPCommunicationErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPCommunicationErrorException(body.Error, context);\n const exception = new IDPCommunicationErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPCommunicationErrorExceptionRes\");\nvar de_IDPRejectedClaimExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_IDPRejectedClaimException(body.Error, context);\n const exception = new IDPRejectedClaimException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_IDPRejectedClaimExceptionRes\");\nvar de_InvalidIdentityTokenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_InvalidIdentityTokenException(body.Error, context);\n const exception = new InvalidIdentityTokenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_InvalidIdentityTokenExceptionRes\");\nvar de_MalformedPolicyDocumentExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_MalformedPolicyDocumentException(body.Error, context);\n const exception = new MalformedPolicyDocumentException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_MalformedPolicyDocumentExceptionRes\");\nvar de_PackedPolicyTooLargeExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_PackedPolicyTooLargeException(body.Error, context);\n const exception = new PackedPolicyTooLargeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_PackedPolicyTooLargeExceptionRes\");\nvar de_RegionDisabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = de_RegionDisabledException(body.Error, context);\n const exception = new RegionDisabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized\n });\n return (0, import_smithy_client3.decorateServiceException)(exception, body);\n}, \"de_RegionDisabledExceptionRes\");\nvar se_AssumeRoleRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n if (input[_T] != null) {\n const memberEntries = se_tagListType(input[_T], context);\n if (input[_T]?.length === 0) {\n entries.Tags = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `Tags.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_TTK] != null) {\n const memberEntries = se_tagKeyListType(input[_TTK], context);\n if (input[_TTK]?.length === 0) {\n entries.TransitiveTagKeys = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `TransitiveTagKeys.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_EI] != null) {\n entries[_EI] = input[_EI];\n }\n if (input[_SN] != null) {\n entries[_SN] = input[_SN];\n }\n if (input[_TC] != null) {\n entries[_TC] = input[_TC];\n }\n if (input[_SI] != null) {\n entries[_SI] = input[_SI];\n }\n if (input[_PC] != null) {\n const memberEntries = se_ProvidedContextsListType(input[_PC], context);\n if (input[_PC]?.length === 0) {\n entries.ProvidedContexts = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `ProvidedContexts.${key}`;\n entries[loc] = value;\n });\n }\n return entries;\n}, \"se_AssumeRoleRequest\");\nvar se_AssumeRoleWithWebIdentityRequest = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_RA] != null) {\n entries[_RA] = input[_RA];\n }\n if (input[_RSN] != null) {\n entries[_RSN] = input[_RSN];\n }\n if (input[_WIT] != null) {\n entries[_WIT] = input[_WIT];\n }\n if (input[_PI] != null) {\n entries[_PI] = input[_PI];\n }\n if (input[_PA] != null) {\n const memberEntries = se_policyDescriptorListType(input[_PA], context);\n if (input[_PA]?.length === 0) {\n entries.PolicyArns = [];\n }\n Object.entries(memberEntries).forEach(([key, value]) => {\n const loc = `PolicyArns.${key}`;\n entries[loc] = value;\n });\n }\n if (input[_P] != null) {\n entries[_P] = input[_P];\n }\n if (input[_DS] != null) {\n entries[_DS] = input[_DS];\n }\n return entries;\n}, \"se_AssumeRoleWithWebIdentityRequest\");\nvar se_policyDescriptorListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_PolicyDescriptorType(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_policyDescriptorListType\");\nvar se_PolicyDescriptorType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_a] != null) {\n entries[_a] = input[_a];\n }\n return entries;\n}, \"se_PolicyDescriptorType\");\nvar se_ProvidedContext = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_PAr] != null) {\n entries[_PAr] = input[_PAr];\n }\n if (input[_CA] != null) {\n entries[_CA] = input[_CA];\n }\n return entries;\n}, \"se_ProvidedContext\");\nvar se_ProvidedContextsListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_ProvidedContext(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_ProvidedContextsListType\");\nvar se_Tag = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n if (input[_K] != null) {\n entries[_K] = input[_K];\n }\n if (input[_Va] != null) {\n entries[_Va] = input[_Va];\n }\n return entries;\n}, \"se_Tag\");\nvar se_tagKeyListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n entries[`member.${counter}`] = entry;\n counter++;\n }\n return entries;\n}, \"se_tagKeyListType\");\nvar se_tagListType = /* @__PURE__ */ __name((input, context) => {\n const entries = {};\n let counter = 1;\n for (const entry of input) {\n if (entry === null) {\n continue;\n }\n const memberEntries = se_Tag(entry, context);\n Object.entries(memberEntries).forEach(([key, value]) => {\n entries[`member.${counter}.${key}`] = value;\n });\n counter++;\n }\n return entries;\n}, \"se_tagListType\");\nvar de_AssumedRoleUser = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_ARI] != null) {\n contents[_ARI] = (0, import_smithy_client3.expectString)(output[_ARI]);\n }\n if (output[_Ar] != null) {\n contents[_Ar] = (0, import_smithy_client3.expectString)(output[_Ar]);\n }\n return contents;\n}, \"de_AssumedRoleUser\");\nvar de_AssumeRoleResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleResponse\");\nvar de_AssumeRoleWithWebIdentityResponse = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_C] != null) {\n contents[_C] = de_Credentials(output[_C], context);\n }\n if (output[_SFWIT] != null) {\n contents[_SFWIT] = (0, import_smithy_client3.expectString)(output[_SFWIT]);\n }\n if (output[_ARU] != null) {\n contents[_ARU] = de_AssumedRoleUser(output[_ARU], context);\n }\n if (output[_PPS] != null) {\n contents[_PPS] = (0, import_smithy_client3.strictParseInt32)(output[_PPS]);\n }\n if (output[_Pr] != null) {\n contents[_Pr] = (0, import_smithy_client3.expectString)(output[_Pr]);\n }\n if (output[_Au] != null) {\n contents[_Au] = (0, import_smithy_client3.expectString)(output[_Au]);\n }\n if (output[_SI] != null) {\n contents[_SI] = (0, import_smithy_client3.expectString)(output[_SI]);\n }\n return contents;\n}, \"de_AssumeRoleWithWebIdentityResponse\");\nvar de_Credentials = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_AKI] != null) {\n contents[_AKI] = (0, import_smithy_client3.expectString)(output[_AKI]);\n }\n if (output[_SAK] != null) {\n contents[_SAK] = (0, import_smithy_client3.expectString)(output[_SAK]);\n }\n if (output[_ST] != null) {\n contents[_ST] = (0, import_smithy_client3.expectString)(output[_ST]);\n }\n if (output[_E] != null) {\n contents[_E] = (0, import_smithy_client3.expectNonNull)((0, import_smithy_client3.parseRfc3339DateTimeWithOffset)(output[_E]));\n }\n return contents;\n}, \"de_Credentials\");\nvar de_ExpiredTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_ExpiredTokenException\");\nvar de_IDPCommunicationErrorException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPCommunicationErrorException\");\nvar de_IDPRejectedClaimException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_IDPRejectedClaimException\");\nvar de_InvalidIdentityTokenException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_InvalidIdentityTokenException\");\nvar de_MalformedPolicyDocumentException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_MalformedPolicyDocumentException\");\nvar de_PackedPolicyTooLargeException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_PackedPolicyTooLargeException\");\nvar de_RegionDisabledException = /* @__PURE__ */ __name((output, context) => {\n const contents = {};\n if (output[_m] != null) {\n contents[_m] = (0, import_smithy_client3.expectString)(output[_m]);\n }\n return contents;\n}, \"de_RegionDisabledException\");\nvar deserializeMetadata = /* @__PURE__ */ __name((output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"]\n}), \"deserializeMetadata\");\nvar throwDefaultError = (0, import_smithy_client3.withBaseException)(STSServiceException);\nvar buildHttpRpcRequest = /* @__PURE__ */ __name(async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers\n };\n if (resolvedHostname !== void 0) {\n contents.hostname = resolvedHostname;\n }\n if (body !== void 0) {\n contents.body = body;\n }\n return new import_protocol_http.HttpRequest(contents);\n}, \"buildHttpRpcRequest\");\nvar SHARED_HEADERS = {\n \"content-type\": \"application/x-www-form-urlencoded\"\n};\nvar _ = \"2011-06-15\";\nvar _A = \"Action\";\nvar _AKI = \"AccessKeyId\";\nvar _AR = \"AssumeRole\";\nvar _ARI = \"AssumedRoleId\";\nvar _ARU = \"AssumedRoleUser\";\nvar _ARWWI = \"AssumeRoleWithWebIdentity\";\nvar _Ar = \"Arn\";\nvar _Au = \"Audience\";\nvar _C = \"Credentials\";\nvar _CA = \"ContextAssertion\";\nvar _DS = \"DurationSeconds\";\nvar _E = \"Expiration\";\nvar _EI = \"ExternalId\";\nvar _K = \"Key\";\nvar _P = \"Policy\";\nvar _PA = \"PolicyArns\";\nvar _PAr = \"ProviderArn\";\nvar _PC = \"ProvidedContexts\";\nvar _PI = \"ProviderId\";\nvar _PPS = \"PackedPolicySize\";\nvar _Pr = \"Provider\";\nvar _RA = \"RoleArn\";\nvar _RSN = \"RoleSessionName\";\nvar _SAK = \"SecretAccessKey\";\nvar _SFWIT = \"SubjectFromWebIdentityToken\";\nvar _SI = \"SourceIdentity\";\nvar _SN = \"SerialNumber\";\nvar _ST = \"SessionToken\";\nvar _T = \"Tags\";\nvar _TC = \"TokenCode\";\nvar _TTK = \"TransitiveTagKeys\";\nvar _V = \"Version\";\nvar _Va = \"Value\";\nvar _WIT = \"WebIdentityToken\";\nvar _a = \"arn\";\nvar _m = \"message\";\nvar buildFormUrlencodedString = /* @__PURE__ */ __name((formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client3.extendedEncodeURIComponent)(key) + \"=\" + (0, import_smithy_client3.extendedEncodeURIComponent)(value)).join(\"&\"), \"buildFormUrlencodedString\");\nvar loadQueryErrorCode = /* @__PURE__ */ __name((output, data) => {\n if (data.Error?.Code !== void 0) {\n return data.Error.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n}, \"loadQueryErrorCode\");\n\n// src/submodules/sts/commands/AssumeRoleCommand.ts\nvar AssumeRoleCommand = class extends import_smithy_client4.Command.classBuilder().ep(import_EndpointParameters.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {}).n(\"STSClient\", \"AssumeRoleCommand\").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() {\n static {\n __name(this, \"AssumeRoleCommand\");\n }\n};\n\n// src/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.ts\nvar import_middleware_endpoint2 = require(\"@smithy/middleware-endpoint\");\nvar import_middleware_serde2 = require(\"@smithy/middleware-serde\");\nvar import_smithy_client5 = require(\"@smithy/smithy-client\");\nvar import_EndpointParameters2 = require(\"./endpoint/EndpointParameters\");\nvar AssumeRoleWithWebIdentityCommand = class extends import_smithy_client5.Command.classBuilder().ep(import_EndpointParameters2.commonParams).m(function(Command, cs, config, o) {\n return [\n (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize),\n (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())\n ];\n}).s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {}).n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() {\n static {\n __name(this, \"AssumeRoleWithWebIdentityCommand\");\n }\n};\n\n// src/submodules/sts/STS.ts\nvar import_STSClient = require(\"./STSClient\");\nvar commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand\n};\nvar STS = class extends import_STSClient.STSClient {\n static {\n __name(this, \"STS\");\n }\n};\n(0, import_smithy_client6.createAggregatedClient)(commands, STS);\n\n// src/submodules/sts/index.ts\nvar import_EndpointParameters3 = require(\"./endpoint/EndpointParameters\");\n\n// src/submodules/sts/defaultStsRoleAssumers.ts\nvar import_client = require(\"@aws-sdk/core/client\");\nvar ASSUME_ROLE_DEFAULT_REGION = \"us-east-1\";\nvar getAccountIdFromAssumedRoleUser = /* @__PURE__ */ __name((assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return void 0;\n}, \"getAccountIdFromAssumedRoleUser\");\nvar resolveRegion = /* @__PURE__ */ __name(async (_region, _parentRegion, credentialProviderLogger) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n credentialProviderLogger?.debug?.(\n \"@aws-sdk/client-sts::resolveRegion\",\n \"accepting first of:\",\n `${region} (provider)`,\n `${parentRegion} (parent client)`,\n `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`\n );\n return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION;\n}, \"resolveRegion\");\nvar getDefaultRoleAssumer = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n // A hack to make sts client uses the credential in current closure.\n credentialDefaultProvider: /* @__PURE__ */ __name(() => async () => closureSourceCreds, \"credentialDefaultProvider\"),\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n}, \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity = /* @__PURE__ */ __name((stsOptions, STSClient3) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const {\n logger = stsOptions?.parentClientConfig?.logger,\n region,\n requestHandler = stsOptions?.parentClientConfig?.requestHandler,\n credentialProviderLogger\n } = stsOptions;\n const resolvedRegion = await resolveRegion(\n region,\n stsOptions?.parentClientConfig?.region,\n credentialProviderLogger\n );\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient3({\n profile: stsOptions?.parentClientConfig?.profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : void 0,\n logger\n });\n }\n const { Credentials: Credentials2, AssumedRoleUser: AssumedRoleUser2 } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials2 || !Credentials2.AccessKeyId || !Credentials2.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser2);\n const credentials = {\n accessKeyId: Credentials2.AccessKeyId,\n secretAccessKey: Credentials2.SecretAccessKey,\n sessionToken: Credentials2.SessionToken,\n expiration: Credentials2.Expiration,\n // TODO(credentialScope): access normally when shape is updated.\n ...Credentials2.CredentialScope && { credentialScope: Credentials2.CredentialScope },\n ...accountId && { accountId }\n };\n if (accountId) {\n (0, import_client.setCredentialFeature)(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n (0, import_client.setCredentialFeature)(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n}, \"getDefaultRoleAssumerWithWebIdentity\");\nvar isH2 = /* @__PURE__ */ __name((requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n}, \"isH2\");\n\n// src/submodules/sts/defaultRoleAssumers.ts\nvar import_STSClient2 = require(\"./STSClient\");\nvar getCustomizableStsClientCtor = /* @__PURE__ */ __name((baseCtor, customizations) => {\n if (!customizations) return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n static {\n __name(this, \"CustomizableSTSClient\");\n }\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n}, \"getCustomizableStsClientCtor\");\nvar getDefaultRoleAssumer2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumer\");\nvar getDefaultRoleAssumerWithWebIdentity2 = /* @__PURE__ */ __name((stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(import_STSClient2.STSClient, stsPlugins)), \"getDefaultRoleAssumerWithWebIdentity\");\nvar decorateDefaultCredentialProvider = /* @__PURE__ */ __name((provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer2(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input),\n ...input\n}), \"decorateDefaultCredentialProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AssumeRoleCommand,\n AssumeRoleResponseFilterSensitiveLog,\n AssumeRoleWithWebIdentityCommand,\n AssumeRoleWithWebIdentityRequestFilterSensitiveLog,\n AssumeRoleWithWebIdentityResponseFilterSensitiveLog,\n ClientInputEndpointParameters,\n CredentialsFilterSensitiveLog,\n ExpiredTokenException,\n IDPCommunicationErrorException,\n IDPRejectedClaimException,\n InvalidIdentityTokenException,\n MalformedPolicyDocumentException,\n PackedPolicyTooLargeException,\n RegionDisabledException,\n STS,\n STSServiceException,\n decorateDefaultCredentialProvider,\n getDefaultRoleAssumer,\n getDefaultRoleAssumerWithWebIdentity,\n ...require(\"./STSClient\")\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../../../package.json\"));\nconst core_1 = require(\"@aws-sdk/core\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst config_resolver_1 = require(\"@smithy/config-resolver\");\nconst core_2 = require(\"@smithy/core\");\nconst hash_node_1 = require(\"@smithy/hash-node\");\nconst middleware_retry_1 = require(\"@smithy/middleware-retry\");\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_body_length_node_1 = require(\"@smithy/util-body-length-node\");\nconst util_retry_1 = require(\"@smithy/util-retry\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@smithy/util-defaults-mode-node\");\nconst smithy_client_2 = require(\"@smithy/smithy-client\");\nconst getRuntimeConfig = (config) => {\n (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version);\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n (0, core_1.emitWarningIfUnsupportedVersion)(process.version);\n const loaderConfig = { profile: config?.profile, logger: clientSharedValues.logger };\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n authSchemePreference: config?.authSchemePreference ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),\n bodyLengthChecker: config?.bodyLengthChecker ?? util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\") ||\n (async (idProps) => await config.credentialDefaultProvider(idProps?.__config || {})()),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n maxAttempts: config?.maxAttempts ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),\n region: config?.region ??\n (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),\n requestHandler: node_http_handler_1.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),\n retryMode: config?.retryMode ??\n (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE,\n }, config),\n sha256: config?.sha256 ?? hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: config?.streamCollector ?? node_http_handler_1.streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n useFipsEndpoint: config?.useFipsEndpoint ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),\n userAgentAppId: config?.userAgentAppId ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst core_1 = require(\"@aws-sdk/core\");\nconst core_2 = require(\"@smithy/core\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst url_parser_1 = require(\"@smithy/url-parser\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst httpAuthSchemeProvider_1 = require(\"./auth/httpAuthSchemeProvider\");\nconst endpointResolver_1 = require(\"./endpoint/endpointResolver\");\nconst getRuntimeConfig = (config) => {\n return {\n apiVersion: \"2011-06-15\",\n base64Decoder: config?.base64Decoder ?? util_base64_1.fromBase64,\n base64Encoder: config?.base64Encoder ?? util_base64_1.toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? endpointResolver_1.defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? httpAuthSchemeProvider_1.defaultSTSHttpAuthSchemeProvider,\n httpAuthSchemes: config?.httpAuthSchemes ?? [\n {\n schemeId: \"aws.auth#sigv4\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n signer: new core_1.AwsSdkSigV4Signer(),\n },\n {\n schemeId: \"smithy.api#noAuth\",\n identityProvider: (ipc) => ipc.getIdentityProvider(\"smithy.api#noAuth\") || (async () => ({})),\n signer: new core_2.NoAuthSigner(),\n },\n ],\n logger: config?.logger ?? new smithy_client_1.NoOpLogger(),\n serviceId: config?.serviceId ?? \"STS\",\n urlParser: config?.urlParser ?? url_parser_1.parseUrl,\n utf8Decoder: config?.utf8Decoder ?? util_utf8_1.fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? util_utf8_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRuntimeExtensions = void 0;\nconst region_config_resolver_1 = require(\"@aws-sdk/region-config-resolver\");\nconst protocol_http_1 = require(\"@smithy/protocol-http\");\nconst smithy_client_1 = require(\"@smithy/smithy-client\");\nconst httpAuthExtensionConfiguration_1 = require(\"./auth/httpAuthExtensionConfiguration\");\nconst resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = Object.assign((0, region_config_resolver_1.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, smithy_client_1.getDefaultExtensionConfiguration)(runtimeConfig), (0, protocol_http_1.getHttpHandlerExtensionConfiguration)(runtimeConfig), (0, httpAuthExtensionConfiguration_1.getHttpAuthExtensionConfiguration)(runtimeConfig));\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return Object.assign(runtimeConfig, (0, region_config_resolver_1.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, smithy_client_1.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, protocol_http_1.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), (0, httpAuthExtensionConfiguration_1.resolveHttpAuthRuntimeConfig)(extensionConfiguration));\n};\nexports.resolveRuntimeExtensions = resolveRuntimeExtensions;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS,\n NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS,\n REGION_ENV_NAME: () => REGION_ENV_NAME,\n REGION_INI_NAME: () => REGION_INI_NAME,\n getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration,\n resolveRegionConfig: () => resolveRegionConfig\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/extensions/index.ts\nvar getAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n }\n };\n}, \"getAwsRegionExtensionConfiguration\");\nvar resolveAwsRegionExtensionConfiguration = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region()\n };\n}, \"resolveAwsRegionExtensionConfiguration\");\n\n// src/regionConfig/config.ts\nvar REGION_ENV_NAME = \"AWS_REGION\";\nvar REGION_INI_NAME = \"region\";\nvar NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env) => env[REGION_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], \"configFileSelector\"),\n default: /* @__PURE__ */ __name(() => {\n throw new Error(\"Region is missing\");\n }, \"default\")\n};\nvar NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\"\n};\n\n// src/regionConfig/isFipsRegion.ts\nvar isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\")), \"isFipsRegion\");\n\n// src/regionConfig/getRealRegion.ts\nvar getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? [\"fips-aws-global\", \"aws-fips\"].includes(region) ? \"us-east-1\" : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\") : region, \"getRealRegion\");\n\n// src/regionConfig/resolveRegionConfig.ts\nvar resolveRegionConfig = /* @__PURE__ */ __name((input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: /* @__PURE__ */ __name(async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n }, \"region\"),\n useFipsEndpoint: /* @__PURE__ */ __name(async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n }, \"useFipsEndpoint\")\n });\n}, \"resolveRegionConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n getAwsRegionExtensionConfiguration,\n resolveAwsRegionExtensionConfiguration,\n REGION_ENV_NAME,\n REGION_INI_NAME,\n NODE_REGION_CONFIG_OPTIONS,\n NODE_REGION_CONFIG_FILE_OPTIONS,\n resolveRegionConfig\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n SignatureV4MultiRegion: () => SignatureV4MultiRegion,\n signatureV4CrtContainer: () => signatureV4CrtContainer\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/SignatureV4MultiRegion.ts\nvar import_middleware_sdk_s3 = require(\"@aws-sdk/middleware-sdk-s3\");\nvar import_signature_v4 = require(\"@smithy/signature-v4\");\n\n// src/signature-v4-crt-container.ts\nvar signatureV4CrtContainer = {\n CrtSignerV4: null\n};\n\n// src/SignatureV4MultiRegion.ts\nvar SignatureV4MultiRegion = class {\n static {\n __name(this, \"SignatureV4MultiRegion\");\n }\n sigv4aSigner;\n sigv4Signer;\n signerOptions;\n static sigv4aDependency() {\n if (typeof signatureV4CrtContainer.CrtSignerV4 === \"function\") {\n return \"crt\";\n } else if (typeof import_signature_v4.signatureV4aContainer.SignatureV4a === \"function\") {\n return \"js\";\n }\n return \"none\";\n }\n constructor(options) {\n this.sigv4Signer = new import_middleware_sdk_s3.SignatureV4S3Express(options);\n this.signerOptions = options;\n }\n async sign(requestToSign, options = {}) {\n if (options.signingRegion === \"*\") {\n return this.getSigv4aSigner().sign(requestToSign, options);\n }\n return this.sigv4Signer.sign(requestToSign, options);\n }\n /**\n * Sign with alternate credentials to the ones provided in the constructor.\n * Note: This is only supported for SigV4a when using the CRT implementation.\n */\n async signWithCredentials(requestToSign, credentials, options = {}) {\n if (options.signingRegion === \"*\") {\n const signer = this.getSigv4aSigner();\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n return signer.signWithCredentials(requestToSign, credentials, options);\n } else {\n throw new Error(\n `signWithCredentials with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`\n );\n }\n }\n return this.sigv4Signer.signWithCredentials(requestToSign, credentials, options);\n }\n /**\n * Presign a request.\n * Note: This is only supported for SigV4a when using the CRT implementation.\n */\n async presign(originalRequest, options = {}) {\n if (options.signingRegion === \"*\") {\n const signer = this.getSigv4aSigner();\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n if (CrtSignerV4 && signer instanceof CrtSignerV4) {\n return signer.presign(originalRequest, options);\n } else {\n throw new Error(\n `presign with signingRegion '*' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`\n );\n }\n }\n return this.sigv4Signer.presign(originalRequest, options);\n }\n async presignWithCredentials(originalRequest, credentials, options = {}) {\n if (options.signingRegion === \"*\") {\n throw new Error(\"Method presignWithCredentials is not supported for [signingRegion=*].\");\n }\n return this.sigv4Signer.presignWithCredentials(originalRequest, credentials, options);\n }\n getSigv4aSigner() {\n if (!this.sigv4aSigner) {\n const CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n const JsSigV4aSigner = import_signature_v4.signatureV4aContainer.SignatureV4a;\n if (this.signerOptions.runtime === \"node\") {\n if (!CrtSignerV4 && !JsSigV4aSigner) {\n throw new Error(\n \"Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\"\n );\n }\n if (CrtSignerV4 && typeof CrtSignerV4 === \"function\") {\n this.sigv4aSigner = new CrtSignerV4({\n ...this.signerOptions,\n signingAlgorithm: 1\n });\n } else if (JsSigV4aSigner && typeof JsSigV4aSigner === \"function\") {\n this.sigv4aSigner = new JsSigV4aSigner({\n ...this.signerOptions\n });\n } else {\n throw new Error(\n \"Available SigV4a implementation is not a valid constructor. Please ensure you've properly imported @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a.For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\"\n );\n }\n } else {\n if (!JsSigV4aSigner || typeof JsSigV4aSigner !== \"function\") {\n throw new Error(\n \"JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a\"\n );\n }\n this.sigv4aSigner = new JsSigV4aSigner({\n ...this.signerOptions\n });\n }\n }\n return this.sigv4aSigner;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n SignatureV4MultiRegion,\n signatureV4CrtContainer\n});\n\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n fromSso: () => fromSso,\n fromStatic: () => fromStatic,\n nodeProvider: () => nodeProvider\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/fromSso.ts\n\n\n\n// src/constants.ts\nvar EXPIRE_WINDOW_MS = 5 * 60 * 1e3;\nvar REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n\n// src/getSsoOidcClient.ts\nvar getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = new SSOOIDCClient(\n Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger\n })\n );\n return ssoOidcClient;\n}, \"getSsoOidcClient\");\n\n// src/getNewSsoOidcToken.ts\nvar getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await Promise.resolve().then(() => __toESM(require(\"@aws-sdk/nested-clients/sso-oidc\")));\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(\n new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\"\n })\n );\n}, \"getNewSsoOidcToken\");\n\n// src/validateTokenExpiry.ts\nvar import_property_provider = require(\"@smithy/property-provider\");\nvar validateTokenExpiry = /* @__PURE__ */ __name((token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new import_property_provider.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n}, \"validateTokenExpiry\");\n\n// src/validateTokenKey.ts\n\nvar validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new import_property_provider.TokenProviderError(\n `Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`,\n false\n );\n }\n}, \"validateTokenKey\");\n\n// src/writeSSOTokenToFile.ts\nvar import_shared_ini_file_loader = require(\"@smithy/shared-ini-file-loader\");\nvar import_fs = require(\"fs\");\nvar { writeFile } = import_fs.promises;\nvar writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {\n const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n}, \"writeSSOTokenToFile\");\n\n// src/fromSso.ts\nvar lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);\nvar fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig\n }\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);\n const profileName = (0, import_shared_ini_file_loader.getProfileName)({\n profile: init.profile ?? callerClientConfig?.profile\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n } else if (!profile[\"sso_session\"]) {\n throw new import_property_provider.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' could not be found in shared credentials file.`,\n false\n );\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new import_property_provider.TokenProviderError(\n `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`,\n false\n );\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName);\n } catch (e) {\n throw new import_property_provider.TokenProviderError(\n `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`,\n false\n );\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken\n });\n } catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration\n };\n } catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n}, \"fromSso\");\n\n// src/fromStatic.ts\n\nvar fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {\n logger?.debug(\"@aws-sdk/token-providers - fromStatic\");\n if (!token || !token.token) {\n throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);\n }\n return token;\n}, \"fromStatic\");\n\n// src/nodeProvider.ts\n\nvar nodeProvider = /* @__PURE__ */ __name((init = {}) => (0, import_property_provider.memoize)(\n (0, import_property_provider.chain)(fromSso(init), async () => {\n throw new import_property_provider.TokenProviderError(\"Could not load token from any providers\", false);\n }),\n (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5,\n (token) => token.expiration !== void 0\n), \"nodeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fromSso,\n fromStatic,\n nodeProvider\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n build: () => build,\n parse: () => parse,\n validate: () => validate\n});\nmodule.exports = __toCommonJS(index_exports);\nvar validate = /* @__PURE__ */ __name((str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6, \"validate\");\nvar parse = /* @__PURE__ */ __name((arn) => {\n const segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\") throw new Error(\"Malformed ARN\");\n const [\n ,\n //Skip \"arn\" literal\n partition,\n service,\n region,\n accountId,\n ...resource\n ] = segments;\n return {\n partition,\n service,\n region,\n accountId,\n resource: resource.join(\":\")\n };\n}, \"parse\");\nvar build = /* @__PURE__ */ __name((arnObject) => {\n const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n}, \"build\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n validate,\n parse,\n build\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n ConditionObject: () => import_util_endpoints.ConditionObject,\n DeprecatedObject: () => import_util_endpoints.DeprecatedObject,\n EndpointError: () => import_util_endpoints.EndpointError,\n EndpointObject: () => import_util_endpoints.EndpointObject,\n EndpointObjectHeaders: () => import_util_endpoints.EndpointObjectHeaders,\n EndpointObjectProperties: () => import_util_endpoints.EndpointObjectProperties,\n EndpointParams: () => import_util_endpoints.EndpointParams,\n EndpointResolverOptions: () => import_util_endpoints.EndpointResolverOptions,\n EndpointRuleObject: () => import_util_endpoints.EndpointRuleObject,\n ErrorRuleObject: () => import_util_endpoints.ErrorRuleObject,\n EvaluateOptions: () => import_util_endpoints.EvaluateOptions,\n Expression: () => import_util_endpoints.Expression,\n FunctionArgv: () => import_util_endpoints.FunctionArgv,\n FunctionObject: () => import_util_endpoints.FunctionObject,\n FunctionReturn: () => import_util_endpoints.FunctionReturn,\n ParameterObject: () => import_util_endpoints.ParameterObject,\n ReferenceObject: () => import_util_endpoints.ReferenceObject,\n ReferenceRecord: () => import_util_endpoints.ReferenceRecord,\n RuleSetObject: () => import_util_endpoints.RuleSetObject,\n RuleSetRules: () => import_util_endpoints.RuleSetRules,\n TreeRuleObject: () => import_util_endpoints.TreeRuleObject,\n awsEndpointFunctions: () => awsEndpointFunctions,\n getUserAgentPrefix: () => getUserAgentPrefix,\n isIpAddress: () => import_util_endpoints.isIpAddress,\n partition: () => partition,\n resolveEndpoint: () => import_util_endpoints.resolveEndpoint,\n setPartitionInfo: () => setPartitionInfo,\n useDefaultPartitionInfo: () => useDefaultPartitionInfo\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/aws.ts\n\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\n\n\n// src/lib/isIpAddress.ts\nvar import_util_endpoints = require(\"@smithy/util-endpoints\");\n\n// src/lib/aws/isVirtualHostableS3Bucket.ts\nvar isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!(0, import_util_endpoints.isValidHostLabel)(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if ((0, import_util_endpoints.isIpAddress)(value)) {\n return false;\n }\n return true;\n}, \"isVirtualHostableS3Bucket\");\n\n// src/lib/aws/parseArn.ts\nvar ARN_DELIMITER = \":\";\nvar RESOURCE_DELIMITER = \"/\";\nvar parseArn = /* @__PURE__ */ __name((value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6) return null;\n const [arn, partition2, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition2 === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\") return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition: partition2,\n service,\n region,\n accountId,\n resourceId\n };\n}, \"parseArn\");\n\n// src/lib/aws/partitions.json\nvar partitions_default = {\n partitions: [{\n id: \"aws\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-east-1\",\n name: \"aws\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"af-south-1\": {\n description: \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n description: \"Asia Pacific (Hong Kong)\"\n },\n \"ap-northeast-1\": {\n description: \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n description: \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n description: \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n description: \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n description: \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n description: \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n description: \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n description: \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n description: \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n description: \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-7\": {\n description: \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n description: \"AWS Standard global region\"\n },\n \"ca-central-1\": {\n description: \"Canada (Central)\"\n },\n \"ca-west-1\": {\n description: \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n description: \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n description: \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n description: \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n description: \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n description: \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n description: \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n description: \"Europe (London)\"\n },\n \"eu-west-3\": {\n description: \"Europe (Paris)\"\n },\n \"il-central-1\": {\n description: \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n description: \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n description: \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n description: \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n description: \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n description: \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n description: \"US East (Ohio)\"\n },\n \"us-west-1\": {\n description: \"US West (N. California)\"\n },\n \"us-west-2\": {\n description: \"US West (Oregon)\"\n }\n }\n }, {\n id: \"aws-cn\",\n outputs: {\n dnsSuffix: \"amazonaws.com.cn\",\n dualStackDnsSuffix: \"api.amazonwebservices.com.cn\",\n implicitGlobalRegion: \"cn-northwest-1\",\n name: \"aws-cn\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-cn-global\": {\n description: \"AWS China global region\"\n },\n \"cn-north-1\": {\n description: \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n description: \"China (Ningxia)\"\n }\n }\n }, {\n id: \"aws-us-gov\",\n outputs: {\n dnsSuffix: \"amazonaws.com\",\n dualStackDnsSuffix: \"api.aws\",\n implicitGlobalRegion: \"us-gov-west-1\",\n name: \"aws-us-gov\",\n supportsDualStack: true,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-us-gov-global\": {\n description: \"AWS GovCloud (US) global region\"\n },\n \"us-gov-east-1\": {\n description: \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n description: \"AWS GovCloud (US-West)\"\n }\n }\n }, {\n id: \"aws-iso\",\n outputs: {\n dnsSuffix: \"c2s.ic.gov\",\n dualStackDnsSuffix: \"c2s.ic.gov\",\n implicitGlobalRegion: \"us-iso-east-1\",\n name: \"aws-iso\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-global\": {\n description: \"AWS ISO (US) global region\"\n },\n \"us-iso-east-1\": {\n description: \"US ISO East\"\n },\n \"us-iso-west-1\": {\n description: \"US ISO WEST\"\n }\n }\n }, {\n id: \"aws-iso-b\",\n outputs: {\n dnsSuffix: \"sc2s.sgov.gov\",\n dualStackDnsSuffix: \"sc2s.sgov.gov\",\n implicitGlobalRegion: \"us-isob-east-1\",\n name: \"aws-iso-b\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-b-global\": {\n description: \"AWS ISOB (US) global region\"\n },\n \"us-isob-east-1\": {\n description: \"US ISOB East (Ohio)\"\n }\n }\n }, {\n id: \"aws-iso-e\",\n outputs: {\n dnsSuffix: \"cloud.adc-e.uk\",\n dualStackDnsSuffix: \"cloud.adc-e.uk\",\n implicitGlobalRegion: \"eu-isoe-west-1\",\n name: \"aws-iso-e\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-e-global\": {\n description: \"AWS ISOE (Europe) global region\"\n },\n \"eu-isoe-west-1\": {\n description: \"EU ISOE West\"\n }\n }\n }, {\n id: \"aws-iso-f\",\n outputs: {\n dnsSuffix: \"csp.hci.ic.gov\",\n dualStackDnsSuffix: \"csp.hci.ic.gov\",\n implicitGlobalRegion: \"us-isof-south-1\",\n name: \"aws-iso-f\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"aws-iso-f-global\": {\n description: \"AWS ISOF global region\"\n },\n \"us-isof-east-1\": {\n description: \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n description: \"US ISOF SOUTH\"\n }\n }\n }, {\n id: \"aws-eusc\",\n outputs: {\n dnsSuffix: \"amazonaws.eu\",\n dualStackDnsSuffix: \"amazonaws.eu\",\n implicitGlobalRegion: \"eusc-de-east-1\",\n name: \"aws-eusc\",\n supportsDualStack: false,\n supportsFIPS: true\n },\n regionRegex: \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n regions: {\n \"eusc-de-east-1\": {\n description: \"EU (Germany)\"\n }\n }\n }],\n version: \"1.1\"\n};\n\n// src/lib/aws/partition.ts\nvar selectedPartitionsInfo = partitions_default;\nvar selectedUserAgentPrefix = \"\";\nvar partition = /* @__PURE__ */ __name((value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition2 of partitions) {\n const { regions, outputs } = partition2;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData\n };\n }\n }\n }\n for (const partition2 of partitions) {\n const { regionRegex, outputs } = partition2;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\n \"Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.\"\n );\n }\n return {\n ...DEFAULT_PARTITION.outputs\n };\n}, \"partition\");\nvar setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n}, \"setPartitionInfo\");\nvar useDefaultPartitionInfo = /* @__PURE__ */ __name(() => {\n setPartitionInfo(partitions_default, \"\");\n}, \"useDefaultPartitionInfo\");\nvar getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, \"getUserAgentPrefix\");\n\n// src/aws.ts\nvar awsEndpointFunctions = {\n isVirtualHostableS3Bucket,\n parseArn,\n partition\n};\nimport_util_endpoints.customEndpointFunctions.aws = awsEndpointFunctions;\n\n// src/resolveEndpoint.ts\n\n\n// src/types/EndpointError.ts\n\n\n// src/types/EndpointRuleObject.ts\n\n\n// src/types/ErrorRuleObject.ts\n\n\n// src/types/RuleSetObject.ts\n\n\n// src/types/TreeRuleObject.ts\n\n\n// src/types/shared.ts\n\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n awsEndpointFunctions,\n partition,\n setPartitionInfo,\n useDefaultPartitionInfo,\n getUserAgentPrefix,\n isIpAddress,\n resolveEndpoint,\n EndpointError\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n formatUrl: () => formatUrl\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_querystring_builder = require(\"@smithy/querystring-builder\");\nfunction formatUrl(request) {\n const { port, query } = request;\n let { protocol, path, hostname } = request;\n if (protocol && protocol.slice(-1) !== \":\") {\n protocol += \":\";\n }\n if (port) {\n hostname += `:${port}`;\n }\n if (path && path.charAt(0) !== \"/\") {\n path = `/${path}`;\n }\n let queryString = query ? (0, import_querystring_builder.buildQueryString)(query) : \"\";\n if (queryString && queryString[0] !== \"?\") {\n queryString = `?${queryString}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n let fragment = \"\";\n if (request.fragment) {\n fragment = `#${request.fragment}`;\n }\n return `${protocol}//${auth}${hostname}${path}${queryString}${fragment}`;\n}\n__name(formatUrl, \"formatUrl\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n formatUrl\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS,\n UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME,\n createDefaultUserAgentProvider: () => createDefaultUserAgentProvider,\n crtAvailability: () => crtAvailability,\n defaultUserAgent: () => defaultUserAgent\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/defaultUserAgent.ts\nvar import_os = require(\"os\");\nvar import_process = require(\"process\");\n\n// src/crt-availability.ts\nvar crtAvailability = {\n isCrtAvailable: false\n};\n\n// src/is-crt-available.ts\nvar isCrtAvailable = /* @__PURE__ */ __name(() => {\n if (crtAvailability.isCrtAvailable) {\n return [\"md/crt-avail\"];\n }\n return null;\n}, \"isCrtAvailable\");\n\n// src/defaultUserAgent.ts\nvar createDefaultUserAgentProvider = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => {\n return async (config) => {\n const sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // ua-metadata\n [\"ua\", \"2.1\"],\n // os-metadata\n [`os/${(0, import_os.platform)()}`, (0, import_os.release)()],\n // language-metadata\n // ECMAScript edition doesn't matter in JS, so no version needed.\n [\"lang/js\"],\n [\"md/nodejs\", `${import_process.versions.node}`]\n ];\n const crtAvailable = isCrtAvailable();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (import_process.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]);\n }\n const appId = await config?.userAgentAppId?.();\n const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n return resolvedUserAgent;\n };\n}, \"createDefaultUserAgentProvider\");\nvar defaultUserAgent = createDefaultUserAgentProvider;\n\n// src/nodeAppIdConfigOptions.ts\nvar import_middleware_user_agent = require(\"@aws-sdk/middleware-user-agent\");\nvar UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nvar UA_APP_ID_INI_NAME = \"sdk_ua_app_id\";\nvar UA_APP_ID_INI_NAME_DEPRECATED = \"sdk-ua-app-id\";\nvar NODE_APP_ID_CONFIG_OPTIONS = {\n environmentVariableSelector: /* @__PURE__ */ __name((env2) => env2[UA_APP_ID_ENV_NAME], \"environmentVariableSelector\"),\n configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], \"configFileSelector\"),\n default: import_middleware_user_agent.DEFAULT_UA_APP_ID\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n crtAvailability,\n createDefaultUserAgentProvider,\n defaultUserAgent,\n UA_APP_ID_ENV_NAME,\n UA_APP_ID_INI_NAME,\n NODE_APP_ID_CONFIG_OPTIONS\n});\n\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n XmlNode: () => XmlNode,\n XmlText: () => XmlText\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/escape-attribute.ts\nfunction escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n__name(escapeAttribute, \"escapeAttribute\");\n\n// src/escape-element.ts\nfunction escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\").replace(/\\r/g, \" \").replace(/\\n/g, \" \").replace(/\\u0085/g, \"…\").replace(/\\u2028/, \"
\");\n}\n__name(escapeElement, \"escapeElement\");\n\n// src/XmlText.ts\nvar XmlText = class {\n constructor(value) {\n this.value = value;\n }\n static {\n __name(this, \"XmlText\");\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n};\n\n// src/XmlNode.ts\nvar XmlNode = class _XmlNode {\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n }\n static {\n __name(this, \"XmlNode\");\n }\n attributes = {};\n static of(name, childText, withName) {\n const node = new _XmlNode(name);\n if (childText !== void 0) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== void 0) {\n node.withName(withName);\n }\n return node;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#withName(string)} for codegen brevity.\n */\n n(name) {\n this.name = name;\n return this;\n }\n /**\n * @internal\n * Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.\n */\n c(child) {\n this.children.push(child);\n return this;\n }\n /**\n * @internal\n * Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.\n */\n a(name, value) {\n if (value != null) {\n this.attributes[name] = value;\n }\n return this;\n }\n /**\n * Create a child node.\n * Used in serialization of string fields.\n * @internal\n */\n cc(input, field, withName = field) {\n if (input[field] != null) {\n const node = _XmlNode.of(field, input[field]).withName(withName);\n this.c(node);\n }\n }\n /**\n * Creates list child nodes.\n * @internal\n */\n l(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n nodes.map((node) => {\n node.withName(memberName);\n this.c(node);\n });\n }\n }\n /**\n * Creates list child nodes with container.\n * @internal\n */\n lc(input, listName, memberName, valueProvider) {\n if (input[listName] != null) {\n const nodes = valueProvider();\n const containerNode = new _XmlNode(memberName);\n nodes.map((node) => {\n containerNode.c(node);\n });\n this.c(containerNode);\n }\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (attribute != null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`;\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n XmlNode,\n XmlText\n});\n\n","'use strict';\n\nconst PROTECTED_KEYS = {\n REQUEST_ID: Symbol.for(\"_AWS_LAMBDA_REQUEST_ID\"),\n X_RAY_TRACE_ID: Symbol.for(\"_AWS_LAMBDA_X_RAY_TRACE_ID\"),\n TENANT_ID: Symbol.for(\"_AWS_LAMBDA_TENANT_ID\"),\n};\nconst NO_GLOBAL_AWS_LAMBDA = [\"true\", \"1\"].includes(process.env?.AWS_LAMBDA_NODEJS_NO_GLOBAL_AWSLAMBDA ?? \"\");\nif (!NO_GLOBAL_AWS_LAMBDA) {\n globalThis.awslambda = globalThis.awslambda || {};\n}\nclass InvokeStoreBase {\n static PROTECTED_KEYS = PROTECTED_KEYS;\n isProtectedKey(key) {\n return Object.values(PROTECTED_KEYS).includes(key);\n }\n getRequestId() {\n return this.get(PROTECTED_KEYS.REQUEST_ID) ?? \"-\";\n }\n getXRayTraceId() {\n return this.get(PROTECTED_KEYS.X_RAY_TRACE_ID);\n }\n getTenantId() {\n return this.get(PROTECTED_KEYS.TENANT_ID);\n }\n}\nclass InvokeStoreSingle extends InvokeStoreBase {\n currentContext;\n getContext() {\n return this.currentContext;\n }\n hasContext() {\n return this.currentContext !== undefined;\n }\n get(key) {\n return this.currentContext?.[key];\n }\n set(key, value) {\n if (this.isProtectedKey(key)) {\n throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`);\n }\n this.currentContext = this.currentContext || {};\n this.currentContext[key] = value;\n }\n run(context, fn) {\n this.currentContext = context;\n return fn();\n }\n}\nclass InvokeStoreMulti extends InvokeStoreBase {\n als;\n static async create() {\n const instance = new InvokeStoreMulti();\n const asyncHooks = await import('node:async_hooks');\n instance.als = new asyncHooks.AsyncLocalStorage();\n return instance;\n }\n getContext() {\n return this.als.getStore();\n }\n hasContext() {\n return this.als.getStore() !== undefined;\n }\n get(key) {\n return this.als.getStore()?.[key];\n }\n set(key, value) {\n if (this.isProtectedKey(key)) {\n throw new Error(`Cannot modify protected Lambda context field: ${String(key)}`);\n }\n const store = this.als.getStore();\n if (!store) {\n throw new Error(\"No context available\");\n }\n store[key] = value;\n }\n run(context, fn) {\n return this.als.run(context, fn);\n }\n}\nexports.InvokeStore = void 0;\n(function (InvokeStore) {\n let instance = null;\n async function getInstanceAsync(forceInvokeStoreMulti) {\n if (!instance) {\n instance = (async () => {\n const isMulti = forceInvokeStoreMulti === true || \"AWS_LAMBDA_MAX_CONCURRENCY\" in process.env;\n const newInstance = isMulti\n ? await InvokeStoreMulti.create()\n : new InvokeStoreSingle();\n if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda?.InvokeStore) {\n return globalThis.awslambda.InvokeStore;\n }\n else if (!NO_GLOBAL_AWS_LAMBDA && globalThis.awslambda) {\n globalThis.awslambda.InvokeStore = newInstance;\n return newInstance;\n }\n else {\n return newInstance;\n }\n })();\n }\n return instance;\n }\n InvokeStore.getInstanceAsync = getInstanceAsync;\n InvokeStore._testing = process.env.AWS_LAMBDA_BENCHMARK_MODE === \"1\"\n ? {\n reset: () => {\n instance = null;\n if (globalThis.awslambda?.InvokeStore) {\n delete globalThis.awslambda.InvokeStore;\n }\n globalThis.awslambda = { InvokeStore: undefined };\n },\n }\n : undefined;\n})(exports.InvokeStore || (exports.InvokeStore = {}));\n\nexports.InvokeStoreBase = InvokeStoreBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Database = void 0;\nconst entity_1 = require(\"./entity\");\nconst relationship_1 = require(\"./relationship\");\nclass Database {\n static entitiesOnly(entities) {\n return new Database(entities, relationship_1.NO_RELATIONSHIPS);\n }\n constructor(entities, relationships) {\n this.idCtr = 0;\n this.schema = {\n ...entities,\n ...relationships({\n relationship: (fromKey, toKey) => (0, relationship_1.relationshipCollection)((id) => this.get(fromKey, id), (id) => this.get(toKey, id)),\n }),\n };\n }\n id() {\n return `${this.idCtr++}`;\n }\n /**\n * Allocate an ID and store\n */\n allocate(key, entity) {\n return this.store(key, this.e(entity));\n }\n /**\n * Store with a preallocated ID\n */\n store(key, entity) {\n const coll = this.schema[key];\n coll.add(entity);\n return entity;\n }\n /**\n * Get an entity by key\n */\n get(key, id) {\n const coll = this.schema[key];\n const ret = coll.entities.get(typeof id === 'string' ? id : id.$ref);\n if (!ret) {\n throw new Error(`No such ${String(key)}: ${id}`);\n }\n return ret;\n }\n /**\n * All entities of a given type\n */\n all(key) {\n const coll = this.schema[key];\n return Array.from(coll.entities.values());\n }\n /**\n * Lookup an entity by index\n */\n lookup(key, index, lookup, value) {\n const coll = this.schema[key];\n const ids = coll.indexes[index].lookups[lookup](value);\n return addOnlyMethod(ids.map((id) => coll.entities.get(id)), `${String(key)} with ${String(index)} ${String(lookup)} ${JSON.stringify(value)}`);\n }\n /**\n * Allocate an ID and store if the entity does not yet exist\n */\n findOrAllocate(key, index, lookup, entity) {\n const res = this.lookup(key, index, lookup, entity[index]);\n if (res.length) {\n return res.only();\n }\n return this.allocate(key, entity);\n }\n link(key, from, to, attributes) {\n const col = this.schema[key];\n col.add(from, to, attributes);\n }\n /**\n * Follow a link\n */\n follow(key, from) {\n const col = this.schema[key];\n const toLinks = col.forward.get(from.$id) ?? [];\n const ret = toLinks.map((i) => ({ entity: col.toColl(i.$id), ...removeId(i) }));\n return addOnlyMethod(ret, `${String(key)} from ${from}`);\n }\n /**\n * Follow incoming links backwards\n */\n incoming(key, to) {\n const col = this.schema[key];\n const fromIds = col.backward.get(to.$id) ?? [];\n const ret = fromIds.map((i) => ({ entity: col.fromColl(i.$id), ...removeId(i) }));\n return addOnlyMethod(ret, `${String(key)} to ${to}`);\n }\n e(entity) {\n return {\n $id: this.id(),\n ...entity,\n };\n }\n /**\n * Turn the current database collection into something that can be stored.\n */\n save() {\n return {\n idCtr: this.idCtr,\n schema: dehydrate(this.schema),\n };\n function dehydrate(x) {\n if ((0, entity_1.isEntityCollection)(x)) {\n return x.dehydrate();\n }\n if ((0, relationship_1.isRelationshipCollection)(x)) {\n return x.dehydrate();\n }\n if (Array.isArray(x)) {\n return x.map(dehydrate);\n }\n if (!!x && typeof x === 'object') {\n return Object.fromEntries(Object.entries(x).map(([k, v]) => [k, dehydrate(v)]));\n }\n return x;\n }\n }\n load(db) {\n this.idCtr = db.idCtr;\n hydrate(this.schema, db.schema);\n function hydrate(proto, x) {\n if ((0, entity_1.isEntityCollection)(proto)) {\n proto.hydrateFrom(x);\n }\n if ((0, relationship_1.isRelationshipCollection)(proto)) {\n proto.hydrateFrom(x);\n }\n if (Array.isArray(x)) {\n x.forEach(hydrate);\n }\n if (!!proto && typeof proto === 'object' && !!x && typeof x === 'object') {\n for (const [k, v] of Object.entries(proto)) {\n const dehydratedData = x[k];\n if (dehydratedData !== undefined) {\n // May be missing if this is from a database created from an old version of the schema\n hydrate(v, dehydratedData);\n }\n }\n }\n }\n }\n}\nexports.Database = Database;\nfunction removeId(x) {\n const ret = { ...x };\n delete ret.$id;\n return ret;\n}\nfunction addOnlyMethod(xs, description) {\n return Object.defineProperties(xs, {\n only: {\n enumerable: false,\n value: () => {\n if (xs.length !== 1) {\n throw new Error(`Expected exactly 1 ${description}, found ${xs.length}`);\n }\n return xs[0];\n },\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVHO0FBQ3ZHLGlEQU13QjtBQVN4QixNQUFhLFFBQVE7SUFDWixNQUFNLENBQUMsWUFBWSxDQUFvQixRQUFZO1FBQ3hELE9BQU8sSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLCtCQUFnQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUtELFlBQVksUUFBWSxFQUFFLGFBQWtEO1FBRnBFLFVBQUssR0FBRyxDQUFDLENBQUM7UUFHaEIsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsUUFBUTtZQUNYLEdBQUcsYUFBYSxDQUFDO2dCQUNmLFlBQVksRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUMvQixJQUFBLHFDQUFzQixFQUNwQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQzdCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDNUI7YUFDSixDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxFQUFFO1FBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVEsQ0FBcUIsR0FBTSxFQUFFLE1BQWdDO1FBQzFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBcUIsR0FBTSxFQUFFLE1BQXlCO1FBQ2hFLE1BQU0sSUFBSSxHQUEwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBUSxDQUFD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LENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztTQUNGO0tBQ0YsQ0FBUSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgRW50aXR5Q29sbGVjdGlvbiwgRW50aXR5SW5kZXgsIGlzRW50aXR5Q29sbGVjdGlvbiwgUGxhaW4sIFJlZmVyZW5jZSB9IGZyb20gJy4vZW50aXR5JztcbmltcG9ydCB7XG4gIGlzUmVsYXRpb25zaGlwQ29sbGVjdGlvbixcbiAgTk9fUkVMQVRJT05TSElQUyxcbiAgUmVsYXRpb25zaGlwLFxuICByZWxhdGlvbnNoaXBDb2xsZWN0aW9uLFxuICBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uLFxufSBmcm9tICcuL3JlbGF0aW9uc2hpcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRpb25zaGlwc0J1aWxkZXI8RVMgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgcmVsYXRpb25zaGlwPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+KFxuICAgIGZyb21LZXk6IEtleXNGb3I8RVMsIEVudGl0eUNvbGxlY3Rpb248UlsnZnJvbSddLCBhbnk+PixcbiAgICB0b0tleTogS2V5c0ZvcjxFUywgRW50aXR5Q29sbGVjdGlvbjxSWyd0byddLCBhbnk+PixcbiAgKTogUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxSPjtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlPEVTIGV4dGVuZHMgb2JqZWN0LCBSUyBleHRlbmRzIG9iamVjdD4ge1xuICBwdWJsaWMgc3RhdGljIGVudGl0aWVzT25seTxFUyBleHRlbmRzIG9iamVjdD4oZW50aXRpZXM6IEVTKTogRGF0YWJhc2U8RVMsIHt9PiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhYmFzZShlbnRpdGllcywgTk9fUkVMQVRJT05TSElQUyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYTogRVMgJiBSUztcbiAgcHJpdmF0ZSBpZEN0ciA9IDA7XG5cbiAgY29uc3RydWN0b3IoZW50aXRpZXM6IEVTLCByZWxhdGlvbnNoaXBzOiAoeDogUmVsYXRpb25zaGlwc0J1aWxkZXI8RVM+KSA9PiBSUykge1xuICAgIHRoaXMuc2NoZW1hID0ge1xuICAgICAgLi4uZW50aXRpZXMsXG4gICAgICAuLi5yZWxhdGlvbnNoaXBzKHtcbiAgICAgICAgcmVsYXRpb25zaGlwOiAoZnJvbUtleSwgdG9LZXkpID0+XG4gICAgICAgICAgcmVsYXRpb25zaGlwQ29sbGVjdGlvbihcbiAgICAgICAgICAgIChpZCkgPT4gdGhpcy5nZXQoZnJvbUtleSwgaWQpLFxuICAgICAgICAgICAgKGlkKSA9PiB0aGlzLmdldCh0b0tleSwgaWQpLFxuICAgICAgICAgICksXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGlkKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmlkQ3RyKyt9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvY2F0ZSBhbiBJRCBhbmQgc3RvcmVcbiAgICovXG4gIHB1YmxpYyBhbGxvY2F0ZTxLIGV4dGVuZHMga2V5b2YgRVM+KGtleTogSywgZW50aXR5OiBQbGFpbjxFbnRpdHlUeXBlPEVTW0tdPj4pOiBFbnRpdHlUeXBlPEVTW0tdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUoa2V5LCB0aGlzLmUoZW50aXR5KSk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcmUgd2l0aCBhIHByZWFsbG9jYXRlZCBJRFxuICAgKi9cbiAgcHVibGljIHN0b3JlPEsgZXh0ZW5kcyBrZXlvZiBFUz4oa2V5OiBLLCBlbnRpdHk6IEVudGl0eVR5cGU8RVNbS10+KTogRW50aXR5VHlwZTxFU1tLXT4ge1xuICAgIGNvbnN0IGNvbGw6IEVudGl0eUNvbGxlY3Rpb248YW55PiA9IHRoaXMuc2NoZW1hW2tleV0gYXMgYW55O1xuICAgIGNvbGwuYWRkKGVudGl0eSk7XG4gICAgcmV0dXJuIGVudGl0eSBhcyBhbnk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGVudGl0eSBieSBrZXlcbiAgICovXG4gIHB1YmxpYyBnZXQ8SyBleHRlbmRzIGtleW9mIEVTPihrZXk6IEssIGlkOiBzdHJpbmcgfCBSZWZlcmVuY2U8RW50aXR5VHlwZTxFU1tLXT4+KTogRW50aXR5VHlwZTxFU1tLXT4ge1xuICAgIGNvbnN0IGNvbGw6IEVudGl0eUNvbGxlY3Rpb248YW55PiA9IHRoaXMuc2NoZW1hW2tleV0gYXMgYW55O1xuICAgIGNvbnN0IHJldCA9IGNvbGwuZW50aXRpZXMuZ2V0KHR5cGVvZiBpZCA9PT0gJ3N0cmluZycgPyBpZCA6IGlkLiRyZWYpO1xuICAgIGlmICghcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggJHtTdHJpbmcoa2V5KX06ICR7aWR9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGVudGl0aWVzIG9mIGEgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgcHVibGljIGFsbDxLIGV4dGVuZHMga2V5b2YgRVM+KGtleTogSyk6IEFycmF5PEVudGl0eVR5cGU8RVNbS10+PiB7XG4gICAgY29uc3QgY29sbDogRW50aXR5Q29sbGVjdGlvbjxhbnk+ID0gdGhpcy5zY2hlbWFba2V5XSBhcyBhbnk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oY29sbC5lbnRpdGllcy52YWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9va3VwIGFuIGVudGl0eSBieSBpbmRleFxuICAgKi9cbiAgcHVibGljIGxvb2t1cDxLIGV4dGVuZHMga2V5b2YgRVMsIEkgZXh0ZW5kcyBJbmRleE5hbWVzT2Y8RVNbS10+PihcbiAgICBrZXk6IEssXG4gICAgaW5kZXg6IEksXG4gICAgbG9va3VwOiBJbmRleE9mPEVTW0tdLCBJPlsnbG9va3VwcyddLFxuICAgIHZhbHVlOiBJbmRleE9mPEVTW0tdLCBJPlsndmFsdWVUeXBlJ10sXG4gICk6IFJpY2hSZWFkb25seUFycmF5PEVudGl0eVR5cGU8RVNbS10+PiB7XG4gICAgY29uc3QgY29sbDogRW50aXR5Q29sbGVjdGlvbjxhbnk+ID0gdGhpcy5zY2hlbWFba2V5XSBhcyBhbnk7XG4gICAgY29uc3QgaWRzID0gKGNvbGwuaW5kZXhlcyBhcyBhbnkpW2luZGV4XS5sb29rdXBzW2xvb2t1cF0odmFsdWUpO1xuICAgIHJldHVybiBhZGRPbmx5TWV0aG9kKFxuICAgICAgaWRzLm1hcCgoaWQ6IHN0cmluZykgPT4gY29sbC5lbnRpdGllcy5nZXQoaWQpKSxcbiAgICAgIGAke1N0cmluZyhrZXkpfSB3aXRoICR7U3RyaW5nKGluZGV4KX0gJHtTdHJpbmcobG9va3VwKX0gJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRlIGFuIElEIGFuZCBzdG9yZSBpZiB0aGUgZW50aXR5IGRvZXMgbm90IHlldCBleGlzdFxuICAgKi9cbiAgcHVibGljIGZpbmRPckFsbG9jYXRlPEsgZXh0ZW5kcyBrZXlvZiBFUywgSSBleHRlbmRzIGtleW9mIFBsYWluPEVudGl0eVR5cGU8RVNbS10+PiAmIEluZGV4TmFtZXNPZjxFU1tLXT4+KFxuICAgIGtleTogSyxcbiAgICBpbmRleDogSSxcbiAgICBsb29rdXA6IEluZGV4T2Y8RVNbS10sIEk+Wydsb29rdXBzJ10sXG4gICAgZW50aXR5OiBQbGFpbjxFbnRpdHlUeXBlPEVTW0tdPj4sXG4gICk6IEVudGl0eVR5cGU8RVNbS10+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmxvb2t1cChrZXksIGluZGV4LCBsb29rdXAsIGVudGl0eVtpbmRleF0pO1xuICAgIGlmIChyZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmVzLm9ubHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWxsb2NhdGUoa2V5LCBlbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZCBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBlbnRpdGllc1xuICAgKlxuICAgKiBPdmVybG9hZCB0byBhY2NvdW50IGZvciB3aGV0aGVyIHdlIGhhdmUgYXR0cmlidXRlcyBvciBub3QuXG4gICAqL1xuICBwdWJsaWMgbGluazxLIGV4dGVuZHMgUmVsV0F0dHJzPFJTPj4oXG4gICAga2V5OiBLLFxuICAgIGZyb206IFJlbFR5cGU8UlNbS10+Wydmcm9tJ10sXG4gICAgdG86IFJlbFR5cGU8UlNbS10+Wyd0byddLFxuICAgIGF0dHJpYnV0ZXM6IFJlbFR5cGU8UlNbS10+WydhdHRyJ10sXG4gICk6IHZvaWQ7XG4gIHB1YmxpYyBsaW5rPEsgZXh0ZW5kcyBSZWxXb0F0dHJzPFJTPj4oa2V5OiBLLCBmcm9tOiBSZWxUeXBlPFJTW0tdPlsnZnJvbSddLCB0bzogUmVsVHlwZTxSU1tLXT5bJ3RvJ10pOiB2b2lkO1xuICBwdWJsaWMgbGluazxLIGV4dGVuZHMga2V5b2YgUlM+KFxuICAgIGtleTogSyxcbiAgICBmcm9tOiBSZWxUeXBlPFJTW0tdPlsnZnJvbSddLFxuICAgIHRvOiBSZWxUeXBlPFJTW0tdPlsndG8nXSxcbiAgICBhdHRyaWJ1dGVzPzogUmVsVHlwZTxSU1tLXT5bJ2F0dHInXSxcbiAgKSB7XG4gICAgY29uc3QgY29sOiBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uPGFueT4gPSB0aGlzLnNjaGVtYVtrZXldIGFzIGFueTtcbiAgICBjb2wuYWRkKGZyb20sIHRvLCBhdHRyaWJ1dGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2xsb3cgYSBsaW5rXG4gICAqL1xuICBwdWJsaWMgZm9sbG93PEsgZXh0ZW5kcyBrZXlvZiBSUz4oXG4gICAga2V5OiBLLFxuICAgIGZyb206IFJlbFR5cGU8UlNbS10+Wydmcm9tJ10sXG4gICk6IFJpY2hSZWFkb25seUFycmF5PExpbms8UmVsVHlwZTxSU1tLXT5bJ3RvJ10sIFJlbFR5cGU8UlNbS10+WydhdHRyJ10+PiB7XG4gICAgY29uc3QgY29sOiBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uPGFueT4gPSB0aGlzLnNjaGVtYVtrZXldIGFzIGFueTtcbiAgICBjb25zdCB0b0xpbmtzID0gY29sLmZvcndhcmQuZ2V0KGZyb20uJGlkKSA/PyBbXTtcbiAgICBjb25zdCByZXQgPSB0b0xpbmtzLm1hcCgoaSkgPT4gKHsgZW50aXR5OiBjb2wudG9Db2xsKGkuJGlkKSwgLi4ucmVtb3ZlSWQoaSkgfSBhcyBhbnkpKTtcblxuICAgIHJldHVybiBhZGRPbmx5TWV0aG9kKHJldCwgYCR7U3RyaW5nKGtleSl9IGZyb20gJHtmcm9tfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvbGxvdyBpbmNvbWluZyBsaW5rcyBiYWNrd2FyZHNcbiAgICovXG4gIHB1YmxpYyBpbmNvbWluZzxLIGV4dGVuZHMga2V5b2YgUlM+KFxuICAgIGtleTogSyxcbiAgICB0bzogUmVsVHlwZTxSU1tLXT5bJ3RvJ10sXG4gICk6IFJpY2hSZWFkb25seUFycmF5PExpbms8UmVsVHlwZTxSU1tLXT5bJ2Zyb20nXSwgUmVsVHlwZTxSU1tLXT5bJ2F0dHInXT4+IHtcbiAgICBjb25zdCBjb2w6IFJlbGF0aW9uc2hpcENvbGxlY3Rpb248YW55PiA9IHRoaXMuc2NoZW1hW2tleV0gYXMgYW55O1xuICAgIGNvbnN0IGZyb21JZHMgPSBjb2wuYmFja3dhcmQuZ2V0KHRvLiRpZCkgPz8gW107XG4gICAgY29uc3QgcmV0ID0gZnJvbUlkcy5tYXAoKGkpID0+ICh7IGVudGl0eTogY29sLmZyb21Db2xsKGkuJGlkKSwgLi4ucmVtb3ZlSWQoaSkgfSBhcyBhbnkpKTtcblxuICAgIHJldHVybiBhZGRPbmx5TWV0aG9kKHJldCwgYCR7U3RyaW5nKGtleSl9IHRvICR7dG99YCk7XG4gIH1cblxuICBwdWJsaWMgZTxFIGV4dGVuZHMgRW50aXR5PihlbnRpdHk6IFBsYWluPEU+KTogRSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpZDogdGhpcy5pZCgpLFxuICAgICAgLi4uZW50aXR5LFxuICAgIH0gYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIFR1cm4gdGhlIGN1cnJlbnQgZGF0YWJhc2UgY29sbGVjdGlvbiBpbnRvIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBzdG9yZWQuXG4gICAqL1xuICBwdWJsaWMgc2F2ZSgpOiBEZWh5ZHJhdGVkRGF0YWJhc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpZEN0cjogdGhpcy5pZEN0cixcbiAgICAgIHNjaGVtYTogZGVoeWRyYXRlKHRoaXMuc2NoZW1hKSxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZGVoeWRyYXRlKHg6IHVua25vd24pOiBhbnkge1xuICAgICAgaWYgKGlzRW50aXR5Q29sbGVjdGlvbih4KSkge1xuICAgICAgICByZXR1cm4geC5kZWh5ZHJhdGUoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1JlbGF0aW9uc2hpcENvbGxlY3Rpb24oeCkpIHtcbiAgICAgICAgcmV0dXJuIHguZGVoeWRyYXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh4KSkge1xuICAgICAgICByZXR1cm4geC5tYXAoZGVoeWRyYXRlKTtcbiAgICAgIH1cbiAgICAgIGlmICghIXggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoeCkubWFwKChbaywgdl0pID0+IFtrLCBkZWh5ZHJhdGUodildKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4geDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZChkYjogRGVoeWRyYXRlZERhdGFiYXNlKSB7XG4gICAgdGhpcy5pZEN0ciA9IGRiLmlkQ3RyO1xuICAgIGh5ZHJhdGUodGhpcy5zY2hlbWEsIGRiLnNjaGVtYSk7XG5cbiAgICBmdW5jdGlvbiBoeWRyYXRlKHByb3RvOiB1bmtub3duLCB4OiB1bmtub3duKTogdm9pZCB7XG4gICAgICBpZiAoaXNFbnRpdHlDb2xsZWN0aW9uKHByb3RvKSkge1xuICAgICAgICBwcm90by5oeWRyYXRlRnJvbSh4KTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1JlbGF0aW9uc2hpcENvbGxlY3Rpb24ocHJvdG8pKSB7XG4gICAgICAgIHByb3RvLmh5ZHJhdGVGcm9tKHgpO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoeCkpIHtcbiAgICAgICAgeC5mb3JFYWNoKGh5ZHJhdGUpO1xuICAgICAgfVxuICAgICAgaWYgKCEhcHJvdG8gJiYgdHlwZW9mIHByb3RvID09PSAnb2JqZWN0JyAmJiAhIXggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHByb3RvKSkge1xuICAgICAgICAgIGNvbnN0IGRlaHlkcmF0ZWREYXRhID0gKHggYXMgYW55KVtrXTtcbiAgICAgICAgICBpZiAoZGVoeWRyYXRlZERhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gTWF5IGJlIG1pc3NpbmcgaWYgdGhpcyBpcyBmcm9tIGEgZGF0YWJhc2UgY3JlYXRlZCBmcm9tIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBzY2hlbWFcbiAgICAgICAgICAgIGh5ZHJhdGUodiwgZGVoeWRyYXRlZERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgRGVoeWRyYXRlZERhdGFiYXNlIHtcbiAgcmVhZG9ubHkgaWRDdHI6IG51bWJlcjtcbiAgcmVhZG9ubHkgc2NoZW1hOiBhbnk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUlkPEEgZXh0ZW5kcyBvYmplY3Q+KHg6IEEpOiBPbWl0PEEsICckaWQnPiB7XG4gIGNvbnN0IHJldCA9IHsgLi4ueCB9O1xuICBkZWxldGUgKHJldCBhcyBhbnkpLiRpZDtcbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IHR5cGUgTGluazxFLCBBPiA9IHsgcmVhZG9ubHkgZW50aXR5OiBFIH0gJiBBO1xuXG50eXBlIFJlbFdBdHRyczxSUz4gPSB7IFtLIGluIGtleW9mIFJTXToge30gZXh0ZW5kcyBSZWxUeXBlPFJTW0tdPlsnYXR0ciddID8gbmV2ZXIgOiBLIH1ba2V5b2YgUlNdO1xudHlwZSBSZWxXb0F0dHJzPFJTPiA9IHsgW0sgaW4ga2V5b2YgUlNdOiB7fSBleHRlbmRzIFJlbFR5cGU8UlNbS10+WydhdHRyJ10gPyBLIDogbmV2ZXIgfVtrZXlvZiBSU107XG5cbi8vIE5lY2Vzc2FyeSBiZWNhdXNlIHRoaXMgdHlwZSBtaWdodCBiZSBhIHVuaW9uXG50eXBlIEluZGV4TmFtZXNPZjxBPiA9IEEgZXh0ZW5kcyBFbnRpdHlDb2xsZWN0aW9uPGFueT4gPyBLZXlzT2ZVbmlvbjxBWydpbmRleGVzJ10+IDogbmV2ZXI7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxudHlwZSBJbmRleE9mPEVDLCBJIGV4dGVuZHMgSW5kZXhOYW1lc09mPEVDPj4gPVxuICBFQyBleHRlbmRzIEVudGl0eUNvbGxlY3Rpb248YW55PlxuICA/IEVDWydpbmRleGVzJ11bSV0gZXh0ZW5kcyBFbnRpdHlJbmRleDxhbnksIGluZmVyIEluZGV4VHlwZT5cbiAgICA/IHtcbiAgICAgICAgdmFsdWVUeXBlOiBJbmRleFR5cGU7XG4gICAgICAgIGxvb2t1cHM6IGtleW9mIEVDWydpbmRleGVzJ11bSV1bJ2xvb2t1cHMnXTtcbiAgICAgIH1cbiAgICA6IG5ldmVyXG4gIDogbmV2ZXI7XG5cbnR5cGUgRW50aXR5VHlwZTxBPiA9IEEgZXh0ZW5kcyBFbnRpdHlDb2xsZWN0aW9uPGluZmVyIEI+ID8gQiA6IG5ldmVyO1xuXG50eXBlIFJlbFR5cGU8QT4gPSBBIGV4dGVuZHMgUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxpbmZlciBSPiA/IFIgOiBuZXZlcjtcblxudHlwZSBSZXNvbHZlVW5pb248VD4gPSBUIGV4dGVuZHMgVCA/IFQgOiBuZXZlcjtcblxudHlwZSBLZXlzT2ZVbmlvbjxUPiA9IGtleW9mIFJlc29sdmVVbmlvbjxUPjtcblxuZXhwb3J0IHR5cGUgRW50aXRpZXNPZjxEQj4gPSBEQiBleHRlbmRzIERhdGFiYXNlPGluZmVyIEVTLCBhbnk+ID8geyBbayBpbiBrZXlvZiBFU106IEVudGl0eVR5cGU8RVNba10+IH0gOiB7fTtcblxuZXhwb3J0IGludGVyZmFjZSBSaWNoUmVhZG9ubHlBcnJheTxBPiBleHRlbmRzIFJlYWRvbmx5QXJyYXk8QT4ge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSBmaXJzdCBhbmQgb25seSBlbGVtZW50LCB0aHJvd2luZyBpZiB0aGVyZSBhcmUgIT0gMSBlbGVtZW50c1xuICAgKi9cbiAgb25seSgpOiBBO1xufVxuXG5mdW5jdGlvbiBhZGRPbmx5TWV0aG9kPEE+KHhzOiBBW10sIGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBSaWNoUmVhZG9ubHlBcnJheTxBPiB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh4cywge1xuICAgIG9ubHk6IHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6ICgpID0+IHtcbiAgICAgICAgaWYgKHhzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgZXhhY3RseSAxICR7ZGVzY3JpcHRpb259LCBmb3VuZCAke3hzLmxlbmd0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geHNbMF07XG4gICAgICB9LFxuICAgIH0sXG4gIH0pIGFzIGFueTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGtleXMgb2YgYW4gb2JqZWN0IHRoYXQgbWFwIHRvIGEgcGFydGljdWxhciB0eXBlXG4gKi9cbnR5cGUgS2V5c0ZvcjxPIGV4dGVuZHMgb2JqZWN0LCBUPiA9IHsgW2sgaW4ga2V5b2YgT106IE9ba10gZXh0ZW5kcyBUID8gayA6IG5ldmVyIH1ba2V5b2YgT107XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.optionalCmp = exports.numberCmp = exports.stringCmp = exports.ref = exports.isEntityCollection = exports.calculatedIndex = exports.fieldIndex = exports.entityCollection = void 0;\nconst sorted_map_1 = require(\"./sorted-map\");\nfunction entityCollection() {\n const entities = new Map();\n const _indexes = {};\n function add(x) {\n entities.set(x.$id, x);\n for (const index of Object.values(_indexes)) {\n // FIXME: why can't we type this?\n index.add(x);\n }\n }\n return {\n type: 'entities',\n entities,\n indexes: _indexes,\n add,\n dehydrate: () => ({\n type: 'entities',\n entities: Array.from(validatePlainObjects(entities).values()),\n }),\n hydrateFrom: (x) => {\n entities.clear();\n for (const e of Object.values(x.entities)) {\n add(e);\n }\n },\n index(indexes) {\n // This limitation exists purely because I couldn't type it otherwise.\n // Declaring a return type of `EntityCollection` would make a lot\n // of our other type inspection code stop working (the union is hard to pick\n // apart). Since adding indexes in multiple goes is not really a use case,\n // the simpler solution is just to type it as if we replaced all indexes\n // and add a runtime check to make sure the types aren't lying.\n if (Object.keys(_indexes).length > 0) {\n throw new Error('You may only call .index() once on a new collection');\n }\n Object.assign(_indexes, indexes);\n return this;\n },\n };\n}\nexports.entityCollection = entityCollection;\n/**\n * An index that uses the value of an entity's field\n */\nfunction fieldIndex(propName, comparator) {\n return calculatedIndex((x) => x[propName], comparator);\n}\nexports.fieldIndex = fieldIndex;\n/**\n * An index that is calculated based on a function applied to an entity\n */\nfunction calculatedIndex(fn, comparator) {\n const index = [];\n return {\n add: (x) => sorted_map_1.sortedMap.add(index, comparator, fn(x), x.$id),\n lookups: {\n equals: (value) => sorted_map_1.sortedMap.findAll(index, comparator, value),\n },\n index,\n };\n}\nexports.calculatedIndex = calculatedIndex;\nfunction isEntityCollection(x) {\n return typeof x === 'object' && !!x && x.type === 'entities';\n}\nexports.isEntityCollection = isEntityCollection;\nfunction validatePlainObjects(xs) {\n for (const x of xs.values()) {\n if (x.constructor !== Object) {\n throw new Error(`Entities should be plain-text objects, got instance of ${x.constructor}`);\n }\n }\n return xs;\n}\nfunction ref(x) {\n return typeof x === 'string' ? { $ref: x } : { $ref: x.$id };\n}\nexports.ref = ref;\n/**\n * Determines whether two strings are equivalent in the current or specified locale.\n */\nfunction stringCmp(a, b) {\n return a.localeCompare(b);\n}\nexports.stringCmp = stringCmp;\n/**\n * Determines whether two numbers are equivalent.\n */\nfunction numberCmp(a, b) {\n return a - b;\n}\nexports.numberCmp = numberCmp;\n/**\n * Creates a comparator to determine equivalent of two values, using a given comparator, but allows values to be optional.\n *\n * @param frontOrder If `true`, returns so that undefined values are ordered at the front. If `false`, undefined values are ordered at the back.\n */\nfunction optionalCmp(cmp, frontOrder = true) {\n return (a, b) => {\n if (a == undefined && b != undefined) {\n return frontOrder ? -1 : 1;\n }\n if (a != undefined && b == undefined) {\n return frontOrder ? 1 : -1;\n }\n if (a == undefined && b == undefined) {\n return 0;\n }\n return cmp(a, b);\n };\n}\nexports.optionalCmp = optionalCmp;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBeUQ7QUE0RXpELFNBQWdCLGdCQUFnQjtJQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQ3RDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUVwQixTQUFTLEdBQUcsQ0FBQyxDQUFJO1FBQ2YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQyxpQ0FBaUM7WUFDaEMsS0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsUUFBUTtRQUNSLE9BQU8sRUFBRSxRQUFlO1FBQ3hCLEdBQUc7UUFDSCxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNoQixJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM5RCxDQUFDO1FBQ0YsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakIsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3pDLEdBQUcsQ0FBQyxDQUFRLENBQUMsQ0FBQzthQUNmO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPO1lBQ1gsc0VBQXNFO1lBQ3RFLDRFQUE0RTtZQUM1RSw0RUFBNEU7WUFDNUUsMEVBQTBFO1lB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U0FBUyxFQUFFO1lBQ3BDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxTQUFTLEVBQUU7WUFDcEMsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE9BQU8sR0FBRyxDQUFDLENBQUUsRUFBRSxDQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7QUFDSixDQUFDO0FBZEQsa0NBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzb3J0ZWRNYXAsIFNvcnRlZE11bHRpTWFwIH0gZnJvbSAnLi9zb3J0ZWQtbWFwJztcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHkge1xuICByZWFkb25seSAkaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGxhaW48RSBleHRlbmRzIEVudGl0eT4gPSBPbWl0PEUsICckaWQnPjtcblxudHlwZSBJbmRleGVzPEEgZXh0ZW5kcyBFbnRpdHk+ID0geyBbSyBpbiBQcm9wZXJ0eUtleV06IEVudGl0eUluZGV4PEEsIGFueT4gfTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDb2xsZWN0aW9uPEEgZXh0ZW5kcyBFbnRpdHksIEkgZXh0ZW5kcyBJbmRleGVzPEVudGl0eT4gPSB7fT4ge1xuICByZWFkb25seSB0eXBlOiAnZW50aXRpZXMnO1xuICByZWFkb25seSBlbnRpdGllczogTWFwPHN0cmluZywgQT47XG4gIHJlYWRvbmx5IGluZGV4ZXM6IEk7XG5cbiAgYWRkKHg6IEEpOiB2b2lkO1xuICBkZWh5ZHJhdGUoKTogYW55O1xuICBoeWRyYXRlRnJvbSh4OiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGQgaW5kZXhlcyB0byB0aGlzIGNvbGxlY3Rpb25cbiAgICpcbiAgICogQ3JlYXRpbmcgYW4gaW5kZXhlZCBjb2xsZWN0aW9uIGlzIGEgdHdvLXN0ZXAgb3BlcmF0aW9uIHNvIHRoYXQgd2UgY2FuIHNwZWNpZnkgdGhlXG4gICAqIEVudGl0eSB0eXBlLCBidXQgaW5mZXIgdGhlIGluZGV4IHR5cGVzIChUeXBlU2NyaXB0IGRvZXMgbm90IGFsbG93IGJvdGggc3BlY2lmeWluZyBBTkRcbiAgICogaW5mZXJyaW5nIGdlbmVyaWMgYXJndW1lbnRzIGluIGEgc2luZ2xlIGNhbGwpLlxuICAgKi9cbiAgaW5kZXg8SUkgZXh0ZW5kcyBJbmRleGVzPEE+PihpbmRleGVzOiBJSSk6IEVudGl0eUNvbGxlY3Rpb248QSwgSUk+O1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgaW5kZXggb2JqZWN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUluZGV4PEEgZXh0ZW5kcyBFbnRpdHksIEluZGV4VHlwZT4ge1xuICAvKipcbiAgICogVGhlIGxvb2t1cHMgdGhhdCB0aGUgaW5kZXhlZCBmaWVsZCB0eXBlIGFmZm9yZHNcbiAgICpcbiAgICogRm9yIGV4YW1wbGUsICdlcXVhbHMnLCAnbGVzc1RoYW4nLCAncHJlZml4JywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwczogSW5kZXhMb29rdXBzPEluZGV4VHlwZT47XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBkYXRhIHN0b3JlXG4gICAqL1xuICByZWFkb25seSBpbmRleDogU29ydGVkTXVsdGlNYXA8SW5kZXhUeXBlLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBZGQgYW4gZW50aXR5IHRvIHRoZSBpbmRleFxuICAgKi9cbiAgYWRkKHg6IEEpOiB2b2lkO1xufVxuXG4vKipcbiAqIE1hcCBhIHR5cGUgdGhlIHR5cGVzIG9mIGxvb2t1cHMgd2UgY2FuIGRvIG9uIHRoYXQgdHlwZVxuICovXG5leHBvcnQgdHlwZSBJbmRleExvb2t1cHM8UD4gPSBbUF0gZXh0ZW5kcyBbc3RyaW5nXVxuICA/IFN0cmluZ0luZGV4TG9va3Vwc1xuICA6IFtQXSBleHRlbmRzIFtzdHJpbmcgfCB1bmRlZmluZWRdXG4gID8gT3B0aW9uYWxTdHJpbmdJbmRleExvb2t1cHNcbiAgOiB7fTtcblxuLyoqXG4gKiBBbGwgdGhlIGxvb2t1cHMgb24gJ3N0cmluZycgdHlwZXNcbiAqXG4gKiBXZSBjdXJyZW50bHkgb25seSBoYXZlICdlcXVhbHMnIGJ1dCB3ZSBjb3VsZCBoYXZlIG1vcmUgOilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdJbmRleExvb2t1cHMge1xuICBlcXVhbHMoeDogc3RyaW5nKTogc3RyaW5nW107XG59XG5cbi8qKlxuICogQWxsIHRoZSBsb29rdXBzIG9uICdzdHJpbmcgfCB1bmRlZmluZWQnIHR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxTdHJpbmdJbmRleExvb2t1cHMge1xuICBlcXVhbHMoeDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlDb2xsZWN0aW9uPEEgZXh0ZW5kcyBFbnRpdHk+KCk6IEVudGl0eUNvbGxlY3Rpb248QSwge30+IHtcbiAgY29uc3QgZW50aXRpZXMgPSBuZXcgTWFwPHN0cmluZywgQT4oKTtcbiAgY29uc3QgX2luZGV4ZXMgPSB7fTtcblxuICBmdW5jdGlvbiBhZGQoeDogQSkge1xuICAgIGVudGl0aWVzLnNldCh4LiRpZCwgeCk7XG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBPYmplY3QudmFsdWVzKF9pbmRleGVzKSkge1xuICAgICAgLy8gRklYTUU6IHdoeSBjYW4ndCB3ZSB0eXBlIHRoaXM/XG4gICAgICAoaW5kZXggYXMgYW55KS5hZGQoeCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZW50aXRpZXMnLFxuICAgIGVudGl0aWVzLFxuICAgIGluZGV4ZXM6IF9pbmRleGVzIGFzIGFueSxcbiAgICBhZGQsXG4gICAgZGVoeWRyYXRlOiAoKSA9PiAoe1xuICAgICAgdHlwZTogJ2VudGl0aWVzJyxcbiAgICAgIGVudGl0aWVzOiBBcnJheS5mcm9tKHZhbGlkYXRlUGxhaW5PYmplY3RzKGVudGl0aWVzKS52YWx1ZXMoKSksXG4gICAgfSksXG4gICAgaHlkcmF0ZUZyb206ICh4KSA9PiB7XG4gICAgICBlbnRpdGllcy5jbGVhcigpO1xuICAgICAgZm9yIChjb25zdCBlIG9mIE9iamVjdC52YWx1ZXMoeC5lbnRpdGllcykpIHtcbiAgICAgICAgYWRkKGUgYXMgYW55KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGluZGV4KGluZGV4ZXMpIHtcbiAgICAgIC8vIFRoaXMgbGltaXRhdGlvbiBleGlzdHMgcHVyZWx5IGJlY2F1c2UgSSBjb3VsZG4ndCB0eXBlIGl0IG90aGVyd2lzZS5cbiAgICAgIC8vIERlY2xhcmluZyBhIHJldHVybiB0eXBlIG9mIGBFbnRpdHlDb2xsZWN0aW9uPEEsIEkgfCBJST5gIHdvdWxkIG1ha2UgYSBsb3RcbiAgICAgIC8vIG9mIG91ciBvdGhlciB0eXBlIGluc3BlY3Rpb24gY29kZSBzdG9wIHdvcmtpbmcgKHRoZSB1bmlvbiBpcyBoYXJkIHRvIHBpY2tcbiAgICAgIC8vIGFwYXJ0KS4gU2luY2UgYWRkaW5nIGluZGV4ZXMgaW4gbXVsdGlwbGUgZ29lcyBpcyBub3QgcmVhbGx5IGEgdXNlIGNhc2UsXG4gICAgICAvLyB0aGUgc2ltcGxlciBzb2x1dGlvbiBpcyBqdXN0IHRvIHR5cGUgaXQgYXMgaWYgd2UgcmVwbGFjZWQgYWxsIGluZGV4ZXNcbiAgICAgIC8vIGFuZCBhZGQgYSBydW50aW1lIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgdHlwZXMgYXJlbid0IGx5aW5nLlxuICAgICAgaWYgKE9iamVjdC5rZXlzKF9pbmRleGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG1heSBvbmx5IGNhbGwgLmluZGV4KCkgb25jZSBvbiBhIG5ldyBjb2xsZWN0aW9uJyk7XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKF9pbmRleGVzLCBpbmRleGVzKTtcbiAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIEFuIGluZGV4IHRoYXQgdXNlcyB0aGUgdmFsdWUgb2YgYW4gZW50aXR5J3MgZmllbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkSW5kZXg8QSBleHRlbmRzIEVudGl0eSwgUCBleHRlbmRzIGtleW9mIEE+KFxuICBwcm9wTmFtZTogUCxcbiAgY29tcGFyYXRvcjogc29ydGVkTWFwLkNvbXBhcmF0b3I8QVtQXT4sXG4pOiBFbnRpdHlJbmRleDxBLCBBW1BdPiB7XG4gIHJldHVybiBjYWxjdWxhdGVkSW5kZXgoKHgpID0+IHhbcHJvcE5hbWVdLCBjb21wYXJhdG9yKTtcbn1cblxuLyoqXG4gKiBBbiBpbmRleCB0aGF0IGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gYSBmdW5jdGlvbiBhcHBsaWVkIHRvIGFuIGVudGl0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlZEluZGV4PEEgZXh0ZW5kcyBFbnRpdHksIEI+KGZuOiAoeDogQSkgPT4gQiwgY29tcGFyYXRvcjogc29ydGVkTWFwLkNvbXBhcmF0b3I8Qj4pIHtcbiAgY29uc3QgaW5kZXg6IFNvcnRlZE11bHRpTWFwPEIsIHN0cmluZz4gPSBbXTtcbiAgcmV0dXJuIHtcbiAgICBhZGQ6ICh4OiBBKSA9PiBzb3J0ZWRNYXAuYWRkKGluZGV4LCBjb21wYXJhdG9yLCBmbih4KSwgeC4kaWQpLFxuICAgIGxvb2t1cHM6IHtcbiAgICAgIGVxdWFsczogKHZhbHVlOiBCKSA9PiBzb3J0ZWRNYXAuZmluZEFsbChpbmRleCwgY29tcGFyYXRvciwgdmFsdWUpLFxuICAgIH0gYXMgYW55LFxuICAgIGluZGV4LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlDb2xsZWN0aW9uKHg6IHVua25vd24pOiB4IGlzIEVudGl0eUNvbGxlY3Rpb248YW55PiB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgISF4ICYmICh4IGFzIGFueSkudHlwZSA9PT0gJ2VudGl0aWVzJztcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQbGFpbk9iamVjdHM8QSBleHRlbmRzIG9iamVjdD4oeHM6IE1hcDxzdHJpbmcsIEE+KTogTWFwPHN0cmluZywgQT4ge1xuICBmb3IgKGNvbnN0IHggb2YgeHMudmFsdWVzKCkpIHtcbiAgICBpZiAoeC5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVudGl0aWVzIHNob3VsZCBiZSBwbGFpbi10ZXh0IG9iamVjdHMsIGdvdCBpbnN0YW5jZSBvZiAke3guY29uc3RydWN0b3J9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB4cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2U8RSBleHRlbmRzIEVudGl0eT4ge1xuICByZWFkb25seSAkcmVmOiBFWyckaWQnXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZjxFIGV4dGVuZHMgRW50aXR5Pih4OiBFIHwgc3RyaW5nKTogUmVmZXJlbmNlPEU+IHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnc3RyaW5nJyA/IHsgJHJlZjogeCB9IDogeyAkcmVmOiB4LiRpZCB9O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0d28gc3RyaW5ncyBhcmUgZXF1aXZhbGVudCBpbiB0aGUgY3VycmVudCBvciBzcGVjaWZpZWQgbG9jYWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nQ21wKGE6IHN0cmluZywgYjogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdHdvIG51bWJlcnMgYXJlIGVxdWl2YWxlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJDbXAoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gYSAtIGI7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBhcmF0b3IgdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnQgb2YgdHdvIHZhbHVlcywgdXNpbmcgYSBnaXZlbiBjb21wYXJhdG9yLCBidXQgYWxsb3dzIHZhbHVlcyB0byBiZSBvcHRpb25hbC5cbiAqXG4gKiBAcGFyYW0gZnJvbnRPcmRlciBJZiBgdHJ1ZWAsIHJldHVybnMgc28gdGhhdCB1bmRlZmluZWQgdmFsdWVzIGFyZSBvcmRlcmVkIGF0IHRoZSBmcm9udC4gSWYgYGZhbHNlYCwgdW5kZWZpbmVkIHZhbHVlcyBhcmUgb3JkZXJlZCBhdCB0aGUgYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbmFsQ21wPEE+KGNtcDogKGE6IEEsIGI6IEEpID0+IG51bWJlciwgZnJvbnRPcmRlciA9IHRydWUpIHtcbiAgcmV0dXJuIChhOiBBIHwgdW5kZWZpbmVkLCBiOiBBIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKGEgPT0gdW5kZWZpbmVkICYmIGIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJvbnRPcmRlciA/IC0xIDogMTtcbiAgICB9XG4gICAgaWYgKGEgIT0gdW5kZWZpbmVkICYmIGIgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJvbnRPcmRlciA/IDEgOiAtMTtcbiAgICB9XG4gICAgaWYgKGEgPT0gdW5kZWZpbmVkICYmIGIgPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gY21wKGEhLCBiISk7XG4gIH07XG59XG4iXX0=","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./entity\"), exports);\n__exportStar(require(\"./relationship\"), exports);\n__exportStar(require(\"./database\"), exports);\n__exportStar(require(\"./invariant\"), exports);\n__exportStar(require(\"./result\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QixpREFBK0I7QUFDL0IsNkNBQTJCO0FBQzNCLDhDQUE0QjtBQUM1QiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL3JlbGF0aW9uc2hpcCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFiYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW52YXJpYW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdWx0JztcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.impliesU = exports.implies = exports.evolutionInvariant = void 0;\nfunction evolutionInvariant(description, pred) {\n // TODO: Find a way\n Array.isArray(description);\n Array.isArray(pred);\n}\nexports.evolutionInvariant = evolutionInvariant;\nfunction implies(x, y) {\n return !x || y;\n}\nexports.implies = implies;\n/**\n * Implies, but treats 'undefined' as 'false'\n */\nfunction impliesU(x, y) {\n return !x || !!y;\n}\nexports.impliesU = impliesU;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YXJpYW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludmFyaWFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxTQUFnQixrQkFBa0IsQ0FBSSxXQUFtQixFQUFFLElBQStCO0lBQ3hGLG1CQUFtQjtJQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUpELGdEQUlDO0FBRUQsU0FBZ0IsT0FBTyxDQUFDLENBQVUsRUFBRSxDQUFVO0lBQzVDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFGRCwwQkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLENBQXNCLEVBQUUsQ0FBc0I7SUFDckUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEludmFyaWFudCA9IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEV2b2x1dGlvbkludmFyaWFudFByZWQ8QT4gPSAocHJldmlvdXM6IEEsIGN1cnJlbnQ6IEEpID0+IGJvb2xlYW47XG5cbmV4cG9ydCBmdW5jdGlvbiBldm9sdXRpb25JbnZhcmlhbnQ8QT4oZGVzY3JpcHRpb246IHN0cmluZywgcHJlZDogRXZvbHV0aW9uSW52YXJpYW50UHJlZDxBPik6IEludmFyaWFudCB7XG4gIC8vIFRPRE86IEZpbmQgYSB3YXlcbiAgQXJyYXkuaXNBcnJheShkZXNjcmlwdGlvbik7XG4gIEFycmF5LmlzQXJyYXkocHJlZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbXBsaWVzKHg6IGJvb2xlYW4sIHk6IGJvb2xlYW4pIHtcbiAgcmV0dXJuICF4IHx8IHk7XG59XG5cbi8qKlxuICogSW1wbGllcywgYnV0IHRyZWF0cyAndW5kZWZpbmVkJyBhcyAnZmFsc2UnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbXBsaWVzVSh4OiBib29sZWFuIHwgdW5kZWZpbmVkLCB5OiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiAheCB8fCAhIXk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isRelationshipCollection = exports.relationshipCollection = exports.NO_RELATIONSHIPS = void 0;\nconst NO_RELATIONSHIPS = () => ({});\nexports.NO_RELATIONSHIPS = NO_RELATIONSHIPS;\nfunction relationshipCollection(fromField, toField) {\n const forward = new Map();\n const backward = new Map();\n function add(fromId, toId, attrs) {\n let f = forward.get(fromId);\n if (!f) {\n f = [];\n forward.set(fromId, f);\n }\n let b = backward.get(toId);\n if (!b) {\n b = [];\n backward.set(toId, b);\n }\n // Behaves like a set, only add new relationship if it is structurally distinct\n const forwardRel = { $id: toId, ...attrs };\n const forwardRelStr = JSON.stringify(forwardRel);\n const existingRelationship = f.find((x) => JSON.stringify(x) === forwardRelStr);\n if (!existingRelationship) {\n f.push(forwardRel);\n b.push({ $id: fromId, ...attrs });\n }\n }\n return {\n type: 'rel',\n fromColl: fromField,\n toColl: toField,\n forward,\n backward,\n add(from, to, attributes) {\n add(from.$id, to.$id, attributes);\n },\n dehydrate() {\n return {\n type: 'rel',\n forward: Object.fromEntries(forward.entries()),\n };\n },\n hydrateFrom(x) {\n forward.clear();\n backward.clear();\n for (const [fromId, targets] of Object.entries(x.forward)) {\n for (const target of targets) {\n add(fromId, target.$id, removeId(target));\n }\n }\n },\n };\n}\nexports.relationshipCollection = relationshipCollection;\nfunction isRelationshipCollection(x) {\n return typeof x === 'object' && !!x && x.type === 'rel';\n}\nexports.isRelationshipCollection = isRelationshipCollection;\nfunction removeId(x) {\n const ret = { ...x };\n delete ret.$id;\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zaGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlbGF0aW9uc2hpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2Qk8sTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQTlCLFFBQUEsZ0JBQWdCLG9CQUFjO0FBRTNDLFNBQWdCLHNCQUFzQixDQUNwQyxTQUF3QixFQUN4QixPQUFvQjtJQUVwQixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztJQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztJQUVwRCxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsSUFBWSxFQUFFLEtBQVU7UUFDbkQsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ04sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ04sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNQLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsK0VBQStFO1FBQy9FLE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLGFBQWEsQ0FBQyxDQUFDO1FBRWhGLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUs7UUFDWCxRQUFRLEVBQUUsU0FBUztRQUNuQixNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU87UUFDUCxRQUFRO1FBQ1IsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFVLEVBQUUsVUFBZTtZQUMzQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxTQUFTO1lBQ1AsT0FBTztnQkFDTCxJQUFJLEVBQUUsS0FBSztnQkFDWCxPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDL0MsQ0FBQztRQUNKLENBQUM7UUFDRCxXQUFXLENBQUMsQ0FBTTtZQUNoQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWpCLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUEwQixFQUFFO29CQUMvQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUJBQzNDO2FBQ0Y7UUFDSCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF4REQsd0RBd0RDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsQ0FBVTtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQVMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0FBQ25FLENBQUM7QUFGRCw0REFFQztBQUVELFNBQVMsUUFBUSxDQUFtQixDQUFJO0lBQ3RDLE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNyQixPQUFRLEdBQVcsQ0FBQyxHQUFHLENBQUM7SUFDeEIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlDb2xsZWN0aW9uIH0gZnJvbSAnLi9lbnRpdHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbGF0aW9uc2hpcDxGcm9tIGV4dGVuZHMgRW50aXR5LCBUbyBleHRlbmRzIEVudGl0eSwgQXR0cmlidXRlcyA9IHt9PiB7XG4gIHJlYWRvbmx5IGZyb206IEZyb207XG4gIHJlYWRvbmx5IHRvOiBUbztcbiAgcmVhZG9ubHkgYXR0cjogQXR0cmlidXRlcztcbn1cblxudHlwZSBGcm9tR2V0dGVyPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+ID0gKGlkOiBzdHJpbmcpID0+IFJbJ2Zyb20nXTtcbnR5cGUgVG9HZXR0ZXI8UiBleHRlbmRzIFJlbGF0aW9uc2hpcDxhbnksIGFueSwgYW55Pj4gPSAoaWQ6IHN0cmluZykgPT4gUlsndG8nXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbnNoaXBDb2xsZWN0aW9uPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ3JlbCc7XG4gIHJlYWRvbmx5IGZyb21Db2xsOiBGcm9tR2V0dGVyPFI+O1xuICByZWFkb25seSB0b0NvbGw6IFRvR2V0dGVyPFI+O1xuICByZWFkb25seSBmb3J3YXJkOiBNYXA8c3RyaW5nLCBSZWw8UlsnYXR0ciddPltdPjtcbiAgcmVhZG9ubHkgYmFja3dhcmQ6IE1hcDxzdHJpbmcsIFJlbDxSWydhdHRyJ10+W10+O1xuXG4gIGFkZChmcm9tOiBSWydmcm9tJ10sIHRvOiBSWyd0byddLCBhdHRyaWJ1dGVzOiBSWydhdHRyJ10pOiB2b2lkO1xuICBkZWh5ZHJhdGUoKTogYW55O1xuICBoeWRyYXRlRnJvbSh4OiBhbnkpOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBSZWw8QXR0cmlidXRlcz4gPSB7IHJlYWRvbmx5ICRpZDogc3RyaW5nIH0gJiBBdHRyaWJ1dGVzO1xuXG5leHBvcnQgdHlwZSBLZXlGb3JFbnRpdHlDb2xsZWN0aW9uPFMsIEUgZXh0ZW5kcyBFbnRpdHk+ID0ge1xuICBbSyBpbiBrZXlvZiBTXTogU1tLXSBleHRlbmRzIEVudGl0eUNvbGxlY3Rpb248RT4gPyBLIDogbmV2ZXI7XG59W2tleW9mIFNdO1xuXG5leHBvcnQgY29uc3QgTk9fUkVMQVRJT05TSElQUyA9ICgpID0+ICh7fSk7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxhdGlvbnNoaXBDb2xsZWN0aW9uPFIgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8YW55LCBhbnksIGFueT4+KFxuICBmcm9tRmllbGQ6IEZyb21HZXR0ZXI8Uj4sXG4gIHRvRmllbGQ6IFRvR2V0dGVyPFI+LFxuKTogUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxSPiB7XG4gIGNvbnN0IGZvcndhcmQgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8UmVsPGFueT4+PigpO1xuICBjb25zdCBiYWNrd2FyZCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxSZWw8YW55Pj4+KCk7XG5cbiAgZnVuY3Rpb24gYWRkKGZyb21JZDogc3RyaW5nLCB0b0lkOiBzdHJpbmcsIGF0dHJzOiBhbnkpIHtcbiAgICBsZXQgZiA9IGZvcndhcmQuZ2V0KGZyb21JZCk7XG4gICAgaWYgKCFmKSB7XG4gICAgICBmID0gW107XG4gICAgICBmb3J3YXJkLnNldChmcm9tSWQsIGYpO1xuICAgIH1cbiAgICBsZXQgYiA9IGJhY2t3YXJkLmdldCh0b0lkKTtcbiAgICBpZiAoIWIpIHtcbiAgICAgIGIgPSBbXTtcbiAgICAgIGJhY2t3YXJkLnNldCh0b0lkLCBiKTtcbiAgICB9XG5cbiAgICAvLyBCZWhhdmVzIGxpa2UgYSBzZXQsIG9ubHkgYWRkIG5ldyByZWxhdGlvbnNoaXAgaWYgaXQgaXMgc3RydWN0dXJhbGx5IGRpc3RpbmN0XG4gICAgY29uc3QgZm9yd2FyZFJlbCA9IHsgJGlkOiB0b0lkLCAuLi5hdHRycyB9O1xuICAgIGNvbnN0IGZvcndhcmRSZWxTdHIgPSBKU09OLnN0cmluZ2lmeShmb3J3YXJkUmVsKTtcbiAgICBjb25zdCBleGlzdGluZ1JlbGF0aW9uc2hpcCA9IGYuZmluZCgoeCkgPT4gSlNPTi5zdHJpbmdpZnkoeCkgPT09IGZvcndhcmRSZWxTdHIpO1xuXG4gICAgaWYgKCFleGlzdGluZ1JlbGF0aW9uc2hpcCkge1xuICAgICAgZi5wdXNoKGZvcndhcmRSZWwpO1xuICAgICAgYi5wdXNoKHsgJGlkOiBmcm9tSWQsIC4uLmF0dHJzIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3JlbCcsXG4gICAgZnJvbUNvbGw6IGZyb21GaWVsZCxcbiAgICB0b0NvbGw6IHRvRmllbGQsXG4gICAgZm9yd2FyZCxcbiAgICBiYWNrd2FyZCxcbiAgICBhZGQoZnJvbTogRW50aXR5LCB0bzogRW50aXR5LCBhdHRyaWJ1dGVzOiBhbnkpIHtcbiAgICAgIGFkZChmcm9tLiRpZCwgdG8uJGlkLCBhdHRyaWJ1dGVzKTtcbiAgICB9LFxuICAgIGRlaHlkcmF0ZSgpOiBhbnkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ3JlbCcsXG4gICAgICAgIGZvcndhcmQ6IE9iamVjdC5mcm9tRW50cmllcyhmb3J3YXJkLmVudHJpZXMoKSksXG4gICAgICB9O1xuICAgIH0sXG4gICAgaHlkcmF0ZUZyb20oeDogYW55KTogdm9pZCB7XG4gICAgICBmb3J3YXJkLmNsZWFyKCk7XG4gICAgICBiYWNrd2FyZC5jbGVhcigpO1xuXG4gICAgICBmb3IgKGNvbnN0IFtmcm9tSWQsIHRhcmdldHNdIG9mIE9iamVjdC5lbnRyaWVzKHguZm9yd2FyZCkpIHtcbiAgICAgICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0cyBhcyBBcnJheTxSZWw8YW55Pj4pIHtcbiAgICAgICAgICBhZGQoZnJvbUlkLCB0YXJnZXQuJGlkLCByZW1vdmVJZCh0YXJnZXQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlbGF0aW9uc2hpcENvbGxlY3Rpb24oeDogdW5rbm93bik6IHggaXMgUmVsYXRpb25zaGlwQ29sbGVjdGlvbjxhbnk+IHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAhIXggJiYgKHggYXMgYW55KS50eXBlID09PSAncmVsJztcbn1cblxuZnVuY3Rpb24gcmVtb3ZlSWQ8QSBleHRlbmRzIG9iamVjdD4oeDogQSk6IE9taXQ8QSwgJyRpZCc+IHtcbiAgY29uc3QgcmV0ID0geyAuLi54IH07XG4gIGRlbGV0ZSAocmV0IGFzIGFueSkuJGlkO1xuICByZXR1cm4gcmV0O1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.liftUndefined = exports.liftResult = exports.locateFailure = exports.chain = exports.using = exports.tryCatch = exports.assertSuccess = exports.errorFrom = exports.errorMessage = exports.unpackOr = exports.unpack = exports.isSuccess = exports.isFailure = exports.failure = void 0;\n// Ensures you must use `fail()` to construct an instance of type Failure\nconst errorSym = Symbol('error');\nfunction mkLocate(prefix) {\n const ret = (error) => failure(`${prefix}: ${error}`);\n ret.in = (prefix2) => mkLocate(`${prefix}: ${prefix2}`);\n ret.locate = locateFailure(prefix);\n return ret;\n}\nfunction failure(error) {\n return { [errorSym]: error };\n}\nexports.failure = failure;\nfailure.in = (prefix) => mkLocate(prefix);\nfailure.locate = (x) => x;\nfunction isFailure(x) {\n return !!x && typeof x === 'object' && x[errorSym];\n}\nexports.isFailure = isFailure;\nfunction isSuccess(x) {\n return !isFailure(x);\n}\nexports.isSuccess = isSuccess;\nfunction unpack(x) {\n if (isFailure(x)) {\n throw new Error(`unpack: ${x[errorSym]}`);\n }\n return x;\n}\nexports.unpack = unpack;\nfunction unpackOr(x, def) {\n return (isFailure(x) ? def : x);\n}\nexports.unpackOr = unpackOr;\nfunction errorMessage(x) {\n return x[errorSym];\n}\nexports.errorMessage = errorMessage;\nfunction errorFrom(x) {\n return new Error(errorMessage(x));\n}\nexports.errorFrom = errorFrom;\nfunction assertSuccess(x) {\n if (isFailure(x)) {\n throw errorFrom(x);\n }\n}\nexports.assertSuccess = assertSuccess;\nfunction tryCatch(failOrBlock, maybeBlock) {\n const block = (maybeBlock ?? failOrBlock);\n const f = (maybeBlock ? failOrBlock : failure);\n try {\n return block();\n }\n catch (e) {\n return f(`Error: ${e.message}\\n${e.stack}`);\n }\n}\nexports.tryCatch = tryCatch;\nfunction using(value, block) {\n if (isFailure(value)) {\n return value;\n }\n return block(value);\n}\nexports.using = using;\nfunction chain(value, ...fns) {\n for (const fn of fns) {\n if (isFailure(value)) {\n return value;\n }\n value = fn(value);\n }\n return value;\n}\nexports.chain = chain;\n/* eslint-enable prettier/prettier */\n/**\n * Make a function that will prepend a prefix to error messages\n *\n * This is one way to be specific about the location where errors originate, by prefixing\n * errors as the call stack unwinds.\n *\n * A different method is to pass in a modified failure function using `failure.in(...)`,\n * to build the error message as the call stack deepens.\n */\nfunction locateFailure(prefix) {\n return (x) => (isFailure(x) ? failure(`${prefix}: ${x[errorSym]}`) : x);\n}\nexports.locateFailure = locateFailure;\nfunction liftResult(xs) {\n const failures = Array.isArray(xs) ? xs.filter(isFailure) : Object.values(xs).filter(isFailure);\n if (failures.length > 0) {\n return failure(failures.map(errorMessage).join(', '));\n }\n return xs;\n}\nexports.liftResult = liftResult;\nfunction liftUndefined(valueOrFunction) {\n if (typeof valueOrFunction === 'function') {\n return (...args) => {\n const value = valueOrFunction(...args);\n return value !== undefined ? value : failure('value is undefined');\n };\n }\n return valueOrFunction !== undefined ? valueOrFunction : failure('value is undefined');\n}\nexports.liftUndefined = liftUndefined;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBeUU7QUFDekUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBYWpDLFNBQVMsUUFBUSxDQUFDLE1BQWM7SUFDOUIsTUFBTSxHQUFHLEdBQVMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUlELFNBQWdCLE9BQU8sQ0FBQyxLQUFhO0lBQ25DLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFGRCwwQkFFQztBQUNELE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsRCxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUksQ0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFeEMsU0FBZ0IsU0FBUyxDQUFJLENBQVk7SUFDdkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSyxDQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsU0FBUyxDQUFJLENBQVk7SUFDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFD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O0lBQ2hHLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDdkIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN2RDtJQUNELE9BQU8sRUFBUyxDQUFDO0FBQ25CLENBQUM7QUFSRCxnQ0FRQztBQU9ELFNBQWdCLGFBQWEsQ0FBQyxlQUFvQjtJQUNoRCxJQUFJLE9BQU8sZUFBZSxLQUFLLFVBQVUsRUFBRTtRQUN6QyxPQUFPLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRTtZQUN4QixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2QyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDO0tBQ0g7SUFDRCxPQUFPLGVBQWUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDekYsQ0FBQztBQVJELHNDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRW5zdXJlcyB5b3UgbXVzdCB1c2UgYGZhaWwoKWAgdG8gY29uc3RydWN0IGFuIGluc3RhbmNlIG9mIHR5cGUgRmFpbHVyZVxuY29uc3QgZXJyb3JTeW0gPSBTeW1ib2woJ2Vycm9yJyk7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdDxBPiA9IEEgfCBGYWlsdXJlO1xuZXhwb3J0IGludGVyZmFjZSBGYWlsdXJlIHtcbiAgcmVhZG9ubHkgW2Vycm9yU3ltXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZhaWwge1xuICAoZXJyb3I6IHN0cmluZyk6IEZhaWx1cmU7XG4gIGluKHByZWZpeDogc3RyaW5nKTogRmFpbDtcbiAgbG9jYXRlPEE+KHg6IFJlc3VsdDxBPik6IFJlc3VsdDxBPjtcbn1cblxuZnVuY3Rpb24gbWtMb2NhdGUocHJlZml4OiBzdHJpbmcpOiBGYWlsIHtcbiAgY29uc3QgcmV0OiBGYWlsID0gKGVycm9yOiBzdHJpbmcpID0+IGZhaWx1cmUoYCR7cHJlZml4fTogJHtlcnJvcn1gKTtcbiAgcmV0LmluID0gKHByZWZpeDI6IHN0cmluZykgPT4gbWtMb2NhdGUoYCR7cHJlZml4fTogJHtwcmVmaXgyfWApO1xuICByZXQubG9jYXRlID0gbG9jYXRlRmFpbHVyZShwcmVmaXgpO1xuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIGZhaWx1cmUgZXh0ZW5kcyBGYWlsIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWlsdXJlKGVycm9yOiBzdHJpbmcpOiBGYWlsdXJlIHtcbiAgcmV0dXJuIHsgW2Vycm9yU3ltXTogZXJyb3IgfTtcbn1cbmZhaWx1cmUuaW4gPSAocHJlZml4OiBzdHJpbmcpID0+IG1rTG9jYXRlKHByZWZpeCk7XG5mYWlsdXJlLmxvY2F0ZSA9IDxBPih4OiBSZXN1bHQ8QT4pID0+IHg7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZhaWx1cmU8QT4oeDogUmVzdWx0PEE+KTogeCBpcyBGYWlsdXJlIHtcbiAgcmV0dXJuICEheCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgKHggYXMgYW55KVtlcnJvclN5bV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1Y2Nlc3M8QT4oeDogUmVzdWx0PEE+KTogeCBpcyBBIHtcbiAgcmV0dXJuICFpc0ZhaWx1cmUoeCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnBhY2s8QT4oeDogUmVzdWx0PEE+KTogQSB7XG4gIGlmIChpc0ZhaWx1cmUoeCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVucGFjazogJHt4W2Vycm9yU3ltXX1gKTtcbiAgfVxuICByZXR1cm4geDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucGFja09yPEEsIEI+KHg6IFJlc3VsdDxBPiwgZGVmOiBCKTogQiBleHRlbmRzIEEgPyBBIDogQSB8IEIge1xuICByZXR1cm4gKGlzRmFpbHVyZSh4KSA/IGRlZiA6IHgpIGFzIGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVycm9yTWVzc2FnZSh4OiBGYWlsdXJlKTogc3RyaW5nIHtcbiAgcmV0dXJuIHhbZXJyb3JTeW1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JGcm9tKHg6IEZhaWx1cmUpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKHgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFN1Y2Nlc3M8QT4oeDogUmVzdWx0PEE+KTogYXNzZXJ0cyB4IGlzIEE7XG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U3VjY2Vzcyh4OiBGYWlsdXJlKTogbmV2ZXI7XG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U3VjY2Vzcyh4OiBGYWlsdXJlKTogdm9pZCB7XG4gIGlmIChpc0ZhaWx1cmUoeCkpIHtcbiAgICB0aHJvdyBlcnJvckZyb20oeCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoPEE+KGJsb2NrOiAoKSA9PiBBKTogUmVzdWx0PEE+O1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoPEE+KGZhaWxGbjogRmFpbCwgYmxvY2s6ICgpID0+IEEpOiBSZXN1bHQ8QT47XG5leHBvcnQgZnVuY3Rpb24gdHJ5Q2F0Y2g8QT4oZmFpbE9yQmxvY2s6IEZhaWwgfCAoKCkgPT4gQSksIG1heWJlQmxvY2s/OiAoKSA9PiBBKTogUmVzdWx0PEE+IHtcbiAgY29uc3QgYmxvY2s6ICgpID0+IEEgPSAobWF5YmVCbG9jayA/PyBmYWlsT3JCbG9jaykgYXMgYW55O1xuICBjb25zdCBmOiBGYWlsID0gKG1heWJlQmxvY2sgPyBmYWlsT3JCbG9jayA6IGZhaWx1cmUpIGFzIGFueTtcblxuICB0cnkge1xuICAgIHJldHVybiBibG9jaygpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICByZXR1cm4gZihgRXJyb3I6ICR7ZS5tZXNzYWdlfVxcbiR7ZS5zdGFja31gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNpbmc8QSwgQj4odmFsdWU6IFJlc3VsdDxBPiwgYmxvY2s6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4pOiBSZXN1bHQ8Qj4ge1xuICBpZiAoaXNGYWlsdXJlKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gYmxvY2sodmFsdWUpO1xufVxuXG4vKipcbiAqIExpa2UgJ3VzaW5nJywgYnV0IGNhbiB0YWtlIGFueSBudW1iZXIgb2YgZnVuY3Rpb25zXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQj4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4pOiBSZXN1bHQ8Qj47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQiwgQz4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4sIGIxOiAoeDogQikgPT4gUmVzdWx0PEM+KTogUmVzdWx0PEM+O1xuZXhwb3J0IGZ1bmN0aW9uIGNoYWluPEEsIEIsIEMsIEQ+KHZhbHVlOiBSZXN1bHQ8QT4sIGIwOiAoeDogQSkgPT4gUmVzdWx0PEI+LCBiMTogKHg6IEIpID0+IFJlc3VsdDxDPiwgYjI6ICh4OiBDKSA9PiBSZXN1bHQ8RD4pOiBSZXN1bHQ8RD47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQiwgQywgRCwgRT4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4sIGIxOiAoeDogQikgPT4gUmVzdWx0PEM+LCBiMjogKHg6IEMpID0+IFJlc3VsdDxEPiwgYjM6ICh4OiBEKSA9PiBSZXN1bHQ8RT4pOiBSZXN1bHQ8RT47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW48QSwgQiwgQywgRCwgRSwgRj4odmFsdWU6IFJlc3VsdDxBPiwgYjA6ICh4OiBBKSA9PiBSZXN1bHQ8Qj4sIGIxOiAoeDogQikgPT4gUmVzdWx0PEM+LCBiMjogKHg6IEMpID0+IFJlc3VsdDxEPiwgYjM6ICh4OiBEKSA9PiBSZXN1bHQ8RT4sIGI0OiAoeDogRSkgPT4gUmVzdWx0PEY+KTogUmVzdWx0PEY+O1xuZXhwb3J0IGZ1bmN0aW9uIGNoYWluPEEsIEIsIEMsIEQsIEUsIEYsIEc+KHZhbHVlOiBSZXN1bHQ8QT4sIGIwOiAoeDogQSkgPT4gUmVzdWx0PEI+LCBiMTogKHg6IEIpID0+IFJlc3VsdDxDPiwgYjI6ICh4OiBDKSA9PiBSZXN1bHQ8RD4sIGIzOiAoeDogRCkgPT4gUmVzdWx0PEU+LCBiNDogKHg6IEUpID0+IFJlc3VsdDxGPiwgYjU6ICh4OiBGKSA9PiBSZXN1bHQ8Rz4pOiBSZXN1bHQ8Rz47XG5leHBvcnQgZnVuY3Rpb24gY2hhaW4odmFsdWU6IFJlc3VsdDxhbnk+LCAuLi5mbnM6IEFycmF5PCh4OiBhbnkpID0+IFJlc3VsdDxhbnk+Pik6IFJlc3VsdDxhbnk+IHtcbiAgZm9yIChjb25zdCBmbiBvZiBmbnMpIHtcbiAgICBpZiAoaXNGYWlsdXJlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICB2YWx1ZSA9IGZuKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG4vKiBlc2xpbnQtZW5hYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG5cbi8qKlxuICogTWFrZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBwcmVwZW5kIGEgcHJlZml4IHRvIGVycm9yIG1lc3NhZ2VzXG4gKlxuICogVGhpcyBpcyBvbmUgd2F5IHRvIGJlIHNwZWNpZmljIGFib3V0IHRoZSBsb2NhdGlvbiB3aGVyZSBlcnJvcnMgb3JpZ2luYXRlLCBieSBwcmVmaXhpbmdcbiAqIGVycm9ycyBhcyB0aGUgY2FsbCBzdGFjayB1bndpbmRzLlxuICpcbiAqIEEgZGlmZmVyZW50IG1ldGhvZCBpcyB0byBwYXNzIGluIGEgbW9kaWZpZWQgZmFpbHVyZSBmdW5jdGlvbiB1c2luZyBgZmFpbHVyZS5pbiguLi4pYCxcbiAqIHRvIGJ1aWxkIHRoZSBlcnJvciBtZXNzYWdlIGFzIHRoZSBjYWxsIHN0YWNrIGRlZXBlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhdGVGYWlsdXJlKHByZWZpeDogc3RyaW5nKSB7XG4gIHJldHVybiA8QT4oeDogUmVzdWx0PEE+KTogUmVzdWx0PEE+ID0+IChpc0ZhaWx1cmUoeCkgPyBmYWlsdXJlKGAke3ByZWZpeH06ICR7eFtlcnJvclN5bV19YCkgOiB4KTtcbn1cblxuZXhwb3J0IHR5cGUgRmFpbHVyZXMgPSBBcnJheTxGYWlsdXJlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxpZnRSZXN1bHQ8QT4oeHM6IFJlY29yZDxzdHJpbmcsIFJlc3VsdDxBPj4pOiBSZXN1bHQ8UmVjb3JkPHN0cmluZywgQT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGxpZnRSZXN1bHQ8QT4oeHM6IEFycmF5PFJlc3VsdDxBPj4pOiBSZXN1bHQ8QXJyYXk8QT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGxpZnRSZXN1bHQ8QT4oXG4gIHhzOiBSZWNvcmQ8c3RyaW5nLCBSZXN1bHQ8QT4+IHwgQXJyYXk8UmVzdWx0PEE+Pixcbik6IFJlc3VsdDxSZWNvcmQ8c3RyaW5nLCBBPj4gfCBSZXN1bHQ8QXJyYXk8QT4+IHtcbiAgY29uc3QgZmFpbHVyZXMgPSBBcnJheS5pc0FycmF5KHhzKSA/IHhzLmZpbHRlcihpc0ZhaWx1cmUpIDogT2JqZWN0LnZhbHVlcyh4cykuZmlsdGVyKGlzRmFpbHVyZSk7XG4gIGlmIChmYWlsdXJlcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGZhaWx1cmUoZmFpbHVyZXMubWFwKGVycm9yTWVzc2FnZSkuam9pbignLCAnKSk7XG4gIH1cbiAgcmV0dXJuIHhzIGFzIGFueTtcbn1cblxuLyoqXG4gKiBMaWZ0IGEgdmFsdWUgdGhhdCBjYW4gYmUgJ3VuZGVmaW5lZCcgdG8gYSByZXN1bHQsIG9yIGEgZnVuY3Rpb24gdGhhdCBjYW4gcmV0dXJuIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpZnRVbmRlZmluZWQ8QT4odjogQSB8IHVuZGVmaW5lZCk6IFJlc3VsdDxOb25OdWxsYWJsZTxBPj47XG5leHBvcnQgZnVuY3Rpb24gbGlmdFVuZGVmaW5lZDxBLCBGIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBBPih2OiBGKTogKHg6IFBhcmFtZXRlcnM8Rj4pID0+IFJlc3VsdDxOb25OdWxsYWJsZTxBPj47XG5leHBvcnQgZnVuY3Rpb24gbGlmdFVuZGVmaW5lZCh2YWx1ZU9yRnVuY3Rpb246IGFueSk6IGFueSB7XG4gIGlmICh0eXBlb2YgdmFsdWVPckZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZU9yRnVuY3Rpb24oLi4uYXJncyk7XG4gICAgICByZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogZmFpbHVyZSgndmFsdWUgaXMgdW5kZWZpbmVkJyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gdmFsdWVPckZ1bmN0aW9uICE9PSB1bmRlZmluZWQgPyB2YWx1ZU9yRnVuY3Rpb24gOiBmYWlsdXJlKCd2YWx1ZSBpcyB1bmRlZmluZWQnKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortedMap = void 0;\n/**\n * A sorted map that may contain the same key multiple times\n *\n * Stored as a sorted array of [key, value] pairs, using binary search to locate\n * entries.\n */\nvar sortedMap;\n(function (sortedMap) {\n function add(map, cmp, key, value) {\n const i = lowerBound(map, cmp, key);\n map.splice(i, 0, [key, value]);\n }\n sortedMap.add = add;\n function find(map, cmp, key) {\n const i = lowerBound(map, cmp, key);\n if (i === map.length) {\n return undefined;\n }\n const [foundKey, value] = map[i];\n return cmp(foundKey, key) === 0 ? value : undefined;\n }\n sortedMap.find = find;\n function findAll(map, cmp, key) {\n let i = lowerBound(map, cmp, key);\n const ret = [];\n while (i < map.length && cmp(map[i][0], key) === 0) {\n ret.push(map[i][1]);\n i += 1;\n }\n return ret;\n }\n sortedMap.findAll = findAll;\n /**\n * Return the index to the first element in the the sorted map\n *\n * @see https://en.cppreference.com/w/cpp/algorithm/lower_bound#Version_2\n */\n function lowerBound(map, cmp, key) {\n let first = 0;\n let count = map.length;\n while (count > 0) {\n let it = first;\n let step = Math.floor(count / 2);\n it += step;\n if (cmp(map[it][0], key) < 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n }\n})(sortedMap = exports.sortedMap || (exports.sortedMap = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVkLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zb3J0ZWQtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7OztHQUtHO0FBQ0gsSUFBaUIsU0FBUyxDQXNEekI7QUF0REQsV0FBaUIsU0FBUztJQUd4QixTQUFnQixHQUFHLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU0sRUFBRSxLQUFRO1FBQ3ZGLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFIZSxhQUFHLE1BR2xCLENBQUE7SUFFRCxTQUFnQixJQUFJLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU07UUFDOUUsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNwQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3RELENBQUM7SUFSZSxjQUFJLE9BUW5CLENBQUE7SUFFRCxTQUFnQixPQUFPLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU07UUFDakYsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFbEMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDUjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQVZlLGlCQUFPLFVBVXRCLENBQUE7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxVQUFVLENBQU8sR0FBeUIsRUFBRSxHQUFrQixFQUFFLEdBQU07UUFDN0UsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUV2QixPQUFPLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQ2YsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakMsRUFBRSxJQUFJLElBQUksQ0FBQztZQUVYLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDYixLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQzthQUNuQjtpQkFBTTtnQkFDTCxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUMsRUF0RGdCLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBc0R6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNvcnRlZE11bHRpTWFwPEEsIEI+ID0gQXJyYXk8W0EsIEJdPjtcblxuLyoqXG4gKiBBIHNvcnRlZCBtYXAgdGhhdCBtYXkgY29udGFpbiB0aGUgc2FtZSBrZXkgbXVsdGlwbGUgdGltZXNcbiAqXG4gKiBTdG9yZWQgYXMgYSBzb3J0ZWQgYXJyYXkgb2YgW2tleSwgdmFsdWVdIHBhaXJzLCB1c2luZyBiaW5hcnkgc2VhcmNoIHRvIGxvY2F0ZVxuICogZW50cmllcy5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBzb3J0ZWRNYXAge1xuICBleHBvcnQgdHlwZSBDb21wYXJhdG9yPEE+ID0gKGE6IEEsIGI6IEEpID0+IG51bWJlcjtcblxuICBleHBvcnQgZnVuY3Rpb24gYWRkPEEsIEI+KG1hcDogU29ydGVkTXVsdGlNYXA8QSwgQj4sIGNtcDogQ29tcGFyYXRvcjxBPiwga2V5OiBBLCB2YWx1ZTogQikge1xuICAgIGNvbnN0IGkgPSBsb3dlckJvdW5kKG1hcCwgY21wLCBrZXkpO1xuICAgIG1hcC5zcGxpY2UoaSwgMCwgW2tleSwgdmFsdWVdKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBmaW5kPEEsIEI+KG1hcDogU29ydGVkTXVsdGlNYXA8QSwgQj4sIGNtcDogQ29tcGFyYXRvcjxBPiwga2V5OiBBKTogQiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaSA9IGxvd2VyQm91bmQobWFwLCBjbXAsIGtleSk7XG4gICAgaWYgKGkgPT09IG1hcC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgW2ZvdW5kS2V5LCB2YWx1ZV0gPSBtYXBbaV07XG4gICAgcmV0dXJuIGNtcChmb3VuZEtleSwga2V5KSA9PT0gMCA/IHZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbGw8QSwgQj4obWFwOiBTb3J0ZWRNdWx0aU1hcDxBLCBCPiwgY21wOiBDb21wYXJhdG9yPEE+LCBrZXk6IEEpOiBCW10ge1xuICAgIGxldCBpID0gbG93ZXJCb3VuZChtYXAsIGNtcCwga2V5KTtcblxuICAgIGNvbnN0IHJldCA9IFtdO1xuICAgIHdoaWxlIChpIDwgbWFwLmxlbmd0aCAmJiBjbXAobWFwW2ldWzBdLCBrZXkpID09PSAwKSB7XG4gICAgICByZXQucHVzaChtYXBbaV1bMV0pO1xuICAgICAgaSArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBpbmRleCB0byB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgdGhlIHNvcnRlZCBtYXBcbiAgICpcbiAgICogQHNlZSBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvYWxnb3JpdGhtL2xvd2VyX2JvdW5kI1ZlcnNpb25fMlxuICAgKi9cbiAgZnVuY3Rpb24gbG93ZXJCb3VuZDxBLCBCPihtYXA6IFNvcnRlZE11bHRpTWFwPEEsIEI+LCBjbXA6IENvbXBhcmF0b3I8QT4sIGtleTogQSk6IG51bWJlciB7XG4gICAgbGV0IGZpcnN0ID0gMDtcbiAgICBsZXQgY291bnQgPSBtYXAubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGNvdW50ID4gMCkge1xuICAgICAgbGV0IGl0ID0gZmlyc3Q7XG4gICAgICBsZXQgc3RlcCA9IE1hdGguZmxvb3IoY291bnQgLyAyKTtcbiAgICAgIGl0ICs9IHN0ZXA7XG5cbiAgICAgIGlmIChjbXAobWFwW2l0XVswXSwga2V5KSA8IDApIHtcbiAgICAgICAgZmlyc3QgPSArK2l0O1xuICAgICAgICBjb3VudCAtPSBzdGVwICsgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvdW50ID0gc3RlcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3Q7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n}\nfunction readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n }\n catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n}\nexports.readdir = readdir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n settings.fs.lstat(path, (lstatError, lstat) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat);\n return;\n }\n settings.fs.stat(path, (statError, stat) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat);\n return;\n }\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat);\n });\n });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n const lstat = settings.fs.lstatSync(path);\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat;\n }\n try {\n const stat = settings.fs.statSync(path);\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n return stat;\n }\n catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat;\n }\n throw error;\n }\n}\nexports.read = read;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n callback(null, entries);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => { },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit('error', error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n}\nexports.default = StreamProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n}\nexports.default = SyncProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit('end');\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error('The reader is already destroyed');\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on('entry', callback);\n }\n onError(callback) {\n this._emitter.once('error', callback);\n }\n onEnd(callback) {\n this._emitter.once('end', callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, undefined);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, undefined);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit('error', error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit('entry', entry);\n }\n}\nexports.default = AsyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n if (a === '') {\n return b;\n }\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n }\n catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n}\nexports.default = SyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, undefined);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n createTokenAuth: () => createTokenAuth\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/auth.js\nvar REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nvar REGEX_IS_INSTALLATION = /^ghs_/;\nvar REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token,\n tokenType\n };\n}\n\n// pkg/dist-src/with-authorization-prefix.js\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n\n// pkg/dist-src/hook.js\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(\n route,\n parameters\n );\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\n// pkg/dist-src/index.js\nvar createTokenAuth = function createTokenAuth2(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\n \"[@octokit/auth-token] Token passed to createTokenAuth is not a string\"\n );\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n createTokenAuth\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar index_exports = {};\n__export(index_exports, {\n Octokit: () => Octokit\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_universal_user_agent = require(\"universal-user-agent\");\nvar import_before_after_hook = require(\"before-after-hook\");\nvar import_request = require(\"@octokit/request\");\nvar import_graphql = require(\"@octokit/graphql\");\nvar import_auth_token = require(\"@octokit/auth-token\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"5.2.1\";\n\n// pkg/dist-src/index.js\nvar noop = () => {\n};\nvar consoleWarn = console.warn.bind(console);\nvar consoleError = console.error.bind(console);\nvar userAgentTrail = `octokit-core.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`;\nvar Octokit = class {\n static {\n this.VERSION = VERSION;\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(\n Object.assign(\n {},\n defaults,\n options,\n options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null\n )\n );\n }\n };\n return OctokitWithDefaults;\n }\n static {\n this.plugins = [];\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n const currentPlugins = this.plugins;\n const NewOctokit = class extends this {\n static {\n this.plugins = currentPlugins.concat(\n newPlugins.filter((plugin) => !currentPlugins.includes(plugin))\n );\n }\n };\n return NewOctokit;\n }\n constructor(options = {}) {\n const hook = new import_before_after_hook.Collection();\n const requestDefaults = {\n baseUrl: import_request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n };\n requestDefaults.headers[\"user-agent\"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = import_request.request.defaults(requestDefaults);\n this.graphql = (0, import_graphql.withCustomRequest)(this.request).defaults(requestDefaults);\n this.log = Object.assign(\n {\n debug: noop,\n info: noop,\n warn: consoleWarn,\n error: consoleError\n },\n options.log\n );\n this.hook = hook;\n if (!options.authStrategy) {\n if (!options.auth) {\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n const auth = (0, import_auth_token.createTokenAuth)(options.auth);\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(\n Object.assign(\n {\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n },\n options.auth\n )\n );\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n const classConstructor = this.constructor;\n for (let i = 0; i < classConstructor.plugins.length; ++i) {\n Object.assign(this, classConstructor.plugins[i](this, options));\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n Octokit\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n endpoint: () => endpoint\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/defaults.js\nvar import_universal_user_agent = require(\"universal-user-agent\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"9.0.6\";\n\n// pkg/dist-src/defaults.js\nvar userAgent = `octokit-endpoint.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`;\nvar DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\"\n }\n};\n\n// pkg/dist-src/util/lowercase-keys.js\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\n// pkg/dist-src/util/is-plain-object.js\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\n\n// pkg/dist-src/util/merge-deep.js\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n\n// pkg/dist-src/util/remove-undefined-properties.js\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === void 0) {\n delete obj[key];\n }\n }\n return obj;\n}\n\n// pkg/dist-src/merge.js\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n } else {\n options = Object.assign({}, route);\n }\n options.headers = lowercaseKeys(options.headers);\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n if (options.url === \"/graphql\") {\n if (defaults && defaults.mediaType.previews?.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(\n (preview) => !mergedOptions.mediaType.previews.includes(preview)\n ).concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, \"\"));\n }\n return mergedOptions;\n}\n\n// pkg/dist-src/util/add-query-parameters.js\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return url + separator + names.map((name) => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\n// pkg/dist-src/util/extract-url-variable-names.js\nvar urlVariableRegex = /\\{[^{}}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/(?:^\\W+)|(?:(? a.concat(b), []);\n}\n\n// pkg/dist-src/util/omit.js\nfunction omit(object, keysToOmit) {\n const result = { __proto__: null };\n for (const key of Object.keys(object)) {\n if (keysToOmit.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n return result;\n}\n\n// pkg/dist-src/util/url-template.js\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n }).join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== void 0 && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(\n encodeValue(operator, value, isKeyOperator(operator) ? key : \"\")\n );\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n result.push(\n encodeValue(operator, value2, isKeyOperator(operator) ? key : \"\")\n );\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n tmp.push(encodeValue(operator, value2));\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n template = template.replace(\n /\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g,\n function(_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function(variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n }\n );\n if (template === \"/\") {\n return template;\n } else {\n return template.replace(/\\/$/, \"\");\n }\n}\n\n// pkg/dist-src/parse.js\nfunction parse(options) {\n let method = options.method.toUpperCase();\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\"\n ]);\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n headers.accept = headers.accept.split(/,/).map(\n (format) => format.replace(\n /application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/,\n `application/vnd$1$2.${options.mediaType.format}`\n )\n ).join(\",\");\n }\n if (url.endsWith(\"/graphql\")) {\n if (options.mediaType.previews?.length) {\n const previewsFromAcceptHeader = headers.accept.match(/(? {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n }\n }\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n }\n }\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n return Object.assign(\n { method, url, headers },\n typeof body !== \"undefined\" ? { body } : null,\n options.request ? { request: options.request } : null\n );\n}\n\n// pkg/dist-src/endpoint-with-defaults.js\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS2 = merge(oldDefaults, newDefaults);\n const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2);\n return Object.assign(endpoint2, {\n DEFAULTS: DEFAULTS2,\n defaults: withDefaults.bind(null, DEFAULTS2),\n merge: merge.bind(null, DEFAULTS2),\n parse\n });\n}\n\n// pkg/dist-src/index.js\nvar endpoint = withDefaults(null, DEFAULTS);\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n endpoint\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar index_exports = {};\n__export(index_exports, {\n GraphqlResponseError: () => GraphqlResponseError,\n graphql: () => graphql2,\n withCustomRequest: () => withCustomRequest\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_request3 = require(\"@octokit/request\");\nvar import_universal_user_agent = require(\"universal-user-agent\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"7.1.1\";\n\n// pkg/dist-src/with-defaults.js\nvar import_request2 = require(\"@octokit/request\");\n\n// pkg/dist-src/graphql.js\nvar import_request = require(\"@octokit/request\");\n\n// pkg/dist-src/error.js\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\n` + data.errors.map((e) => ` - ${e.message}`).join(\"\\n\");\n}\nvar GraphqlResponseError = class extends Error {\n constructor(request2, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request2;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\";\n this.errors = response.errors;\n this.data = response.data;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n};\n\n// pkg/dist-src/graphql.js\nvar NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\"\n];\nvar FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nvar GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request2, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(\n new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`)\n );\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(\n new Error(\n `[@octokit/graphql] \"${key}\" cannot be used as variable name`\n )\n );\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(\n parsedOptions\n ).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request2(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlResponseError(\n requestOptions,\n headers,\n response.data\n );\n }\n return response.data.data;\n });\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(request2, newDefaults) {\n const newRequest = request2.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: newRequest.endpoint\n });\n}\n\n// pkg/dist-src/index.js\nvar graphql2 = withDefaults(import_request3.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n GraphqlResponseError,\n graphql,\n withCustomRequest\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n composePaginateRest: () => composePaginateRest,\n isPaginatingEndpoint: () => isPaginatingEndpoint,\n paginateRest: () => paginateRest,\n paginatingEndpoints: () => paginatingEndpoints\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/version.js\nvar VERSION = \"9.2.2\";\n\n// pkg/dist-src/normalize-paginated-list-response.js\nfunction normalizePaginatedListResponse(response) {\n if (!response.data) {\n return {\n ...response,\n data: []\n };\n }\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n\n// pkg/dist-src/iterator.js\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n try {\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n url = ((normalizedResponse.headers.link || \"\").match(\n /<([^<>]+)>;\\s*rel=\"next\"/\n ) || [])[1];\n return { value: normalizedResponse };\n } catch (error) {\n if (error.status !== 409)\n throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n })\n };\n}\n\n// pkg/dist-src/paginate.js\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = void 0;\n }\n return gather(\n octokit,\n [],\n iterator(octokit, route, parameters)[Symbol.asyncIterator](),\n mapFn\n );\n}\nfunction gather(octokit, results, iterator2, mapFn) {\n return iterator2.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(\n mapFn ? mapFn(result.value, done) : result.value.data\n );\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator2, mapFn);\n });\n}\n\n// pkg/dist-src/compose-paginate.js\nvar composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\n// pkg/dist-src/generated/paginating-endpoints.js\nvar paginatingEndpoints = [\n \"GET /advisories\",\n \"GET /app/hook/deliveries\",\n \"GET /app/installation-requests\",\n \"GET /app/installations\",\n \"GET /assignments/{assignment_id}/accepted_assignments\",\n \"GET /classrooms\",\n \"GET /classrooms/{classroom_id}/assignments\",\n \"GET /enterprises/{enterprise}/dependabot/alerts\",\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /licenses\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/cache/usage-by-repository\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/actions/variables\",\n \"GET /orgs/{org}/actions/variables/{name}/repositories\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/code-scanning/alerts\",\n \"GET /orgs/{org}/codespaces\",\n \"GET /orgs/{org}/codespaces/secrets\",\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/copilot/billing/seats\",\n \"GET /orgs/{org}/dependabot/alerts\",\n \"GET /orgs/{org}/dependabot/secrets\",\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/members/{username}/codespaces\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/organization-roles/{role_id}/teams\",\n \"GET /orgs/{org}/organization-roles/{role_id}/users\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/packages\",\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n \"GET /orgs/{org}/personal-access-token-requests\",\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\",\n \"GET /orgs/{org}/personal-access-tokens\",\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/properties/values\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/rulesets\",\n \"GET /orgs/{org}/rulesets/rule-suites\",\n \"GET /orgs/{org}/secret-scanning/alerts\",\n \"GET /orgs/{org}/security-advisories\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/caches\",\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\",\n \"GET /repos/{owner}/{repo}/actions/organization-variables\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/variables\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/activity\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/codespaces\",\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\",\n \"GET /repos/{owner}/{repo}/codespaces/secrets\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/status\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/dependabot/alerts\",\n \"GET /repos/{owner}/{repo}/dependabot/secrets\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/environments\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\",\n \"GET /repos/{owner}/{repo}/rules/branches/{branch}\",\n \"GET /repos/{owner}/{repo}/rulesets\",\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\",\n \"GET /repos/{owner}/{repo}/security-advisories\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repos/{owner}/{repo}/topics\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/codespaces\",\n \"GET /user/codespaces/secrets\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/packages\",\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/social_accounts\",\n \"GET /user/ssh_signing_keys\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/packages\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/social_accounts\",\n \"GET /users/{username}/ssh_signing_keys\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\"\n];\n\n// pkg/dist-src/paginating-endpoints.js\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n// pkg/dist-src/index.js\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n composePaginateRest,\n isPaginatingEndpoint,\n paginateRest,\n paginatingEndpoints\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n legacyRestEndpointMethods: () => legacyRestEndpointMethods,\n restEndpointMethods: () => restEndpointMethods\n});\nmodule.exports = __toCommonJS(dist_src_exports);\n\n// pkg/dist-src/version.js\nvar VERSION = \"10.4.1\";\n\n// pkg/dist-src/generated/endpoints.js\nvar Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\n \"POST /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n addCustomLabelsToSelfHostedRunnerForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n approveWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"\n ],\n createEnvironmentVariable: [\n \"POST /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n createOrgVariable: [\"POST /orgs/{org}/actions/variables\"],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\"\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\"\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\"\n ],\n createRepoVariable: [\"POST /repos/{owner}/{repo}/actions/variables\"],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"\n ],\n deleteActionsCacheById: [\n \"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"\n ],\n deleteActionsCacheByKey: [\n \"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n deleteEnvironmentVariable: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteOrgVariable: [\"DELETE /orgs/{org}/actions/variables/{name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n deleteRepoVariable: [\n \"DELETE /repos/{owner}/{repo}/actions/variables/{name}\"\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\"\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"\n ],\n downloadWorkflowRunAttemptLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"\n ],\n forceCancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel\"\n ],\n generateRunnerJitconfigForOrg: [\n \"POST /orgs/{org}/actions/runners/generate-jitconfig\"\n ],\n generateRunnerJitconfigForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig\"\n ],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\n \"GET /orgs/{org}/actions/cache/usage-by-repository\"\n ],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\"\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getCustomOidcSubClaimForRepo: [\n \"GET /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n getEnvironmentVariable: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/workflow\"\n ],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\"\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\"\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getOrgVariable: [\"GET /orgs/{org}/actions/variables/{name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] }\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getRepoVariable: [\"GET /repos/{owner}/{repo}/actions/variables/{name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"\n ],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"\n ],\n listEnvironmentVariables: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/variables\"\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"\n ],\n listJobsForWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"\n ],\n listLabelsForSelfHostedRunnerForOrg: [\n \"GET /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n listLabelsForSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listOrgVariables: [\"GET /orgs/{org}/actions/variables\"],\n listRepoOrganizationSecrets: [\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\"\n ],\n listRepoOrganizationVariables: [\n \"GET /repos/{owner}/{repo}/actions/organization-variables\"\n ],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoVariables: [\"GET /repos/{owner}/{repo}/actions/variables\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\"\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n listSelectedReposForOrgVariable: [\n \"GET /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\"\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"\n ],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgVariable: [\n \"DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n reviewCustomGatesForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule\"\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\"\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n setCustomLabelsForSelfHostedRunnerForOrg: [\n \"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n setCustomLabelsForSelfHostedRunnerForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n setCustomOidcSubClaimForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/workflow\"\n ],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\"\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\"\n ],\n setWorkflowAccessToRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n updateEnvironmentVariable: [\n \"PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}\"\n ],\n updateOrgVariable: [\"PATCH /orgs/{org}/actions/variables/{name}\"],\n updateRepoVariable: [\n \"PATCH /repos/{owner}/{repo}/actions/variables/{name}\"\n ]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\"\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\"\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\"\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\"\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\"\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsDone: [\"DELETE /notifications/threads/{thread_id}\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\"\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"] }\n ],\n addRepoToInstallationForAuthenticatedUser: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\"\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\"\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\"\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\"\n ],\n listInstallationRequestsForAuthenticatedApp: [\n \"GET /app/installation-requests\"\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\"\n ],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\n \"POST /app/hook/deliveries/{delivery_id}/attempts\"\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"] }\n ],\n removeRepoFromInstallationForAuthenticatedUser: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\"\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\"\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\"\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\"\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\"\n ]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\n \"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"\n ],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } }\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"\n ],\n getCodeqlDatabase: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}\"\n ],\n getDefaultSetup: [\"GET /repos/{owner}/{repo}/code-scanning/default-setup\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n {},\n { renamed: [\"codeScanning\", \"listAlertInstances\"] }\n ],\n listCodeqlDatabases: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases\"\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"\n ],\n updateDefaultSetup: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/default-setup\"\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n checkPermissionsForDevcontainer: [\n \"GET /repos/{owner}/{repo}/codespaces/permissions_check\"\n ],\n codespaceMachinesForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/machines\"\n ],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}\"\n ],\n createWithPrForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"\n ],\n createWithRepoForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/codespaces\"\n ],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\n \"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/codespaces/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n deleteSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}\"\n ],\n exportForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/exports\"\n ],\n getCodespacesForUserInOrg: [\n \"GET /orgs/{org}/members/{username}/codespaces\"\n ],\n getExportDetailsForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/exports/{export_id}\"\n ],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/codespaces/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/codespaces/secrets/{secret_name}\"],\n getPublicKeyForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/public-key\"\n ],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n getSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}\"\n ],\n listDevcontainersInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\"\n ],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\n \"GET /orgs/{org}/codespaces\",\n {},\n { renamedParameters: { org_id: \"org\" } }\n ],\n listInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/codespaces/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n preFlightWithRepoForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/new\"\n ],\n publishForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/publish\"\n ],\n removeRepositoryForSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n repoMachinesForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/machines\"\n ],\n setRepositoriesForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\n \"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"\n ],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n copilot: {\n addCopilotSeatsForTeams: [\n \"POST /orgs/{org}/copilot/billing/selected_teams\"\n ],\n addCopilotSeatsForUsers: [\n \"POST /orgs/{org}/copilot/billing/selected_users\"\n ],\n cancelCopilotSeatAssignmentForTeams: [\n \"DELETE /orgs/{org}/copilot/billing/selected_teams\"\n ],\n cancelCopilotSeatAssignmentForUsers: [\n \"DELETE /orgs/{org}/copilot/billing/selected_users\"\n ],\n getCopilotOrganizationDetails: [\"GET /orgs/{org}/copilot/billing\"],\n getCopilotSeatDetailsForUser: [\n \"GET /orgs/{org}/members/{username}/copilot\"\n ],\n listCopilotSeats: [\"GET /orgs/{org}/copilot/billing/seats\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n getAlert: [\"GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/dependabot/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/dependabot/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/dependabot/alerts\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"\n ]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\n \"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"\n ],\n diffRange: [\n \"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"\n ],\n exportSbom: [\"GET /repos/{owner}/{repo}/dependency-graph/sbom\"]\n },\n emojis: { get: [\"GET /emojis\"] },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] }\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\"\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] }\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] }\n ]\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n checkUserCanBeAssignedToIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}\"\n ],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } }\n ]\n },\n meta: {\n get: [\"GET /meta\"],\n getAllVersions: [\"GET /versions\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\n \"DELETE /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import\"\n }\n ],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\"\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\"\n ],\n getCommitAuthors: [\n \"GET /repos/{owner}/{repo}/import/authors\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors\"\n }\n ],\n getImportStatus: [\n \"GET /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status\"\n }\n ],\n getLargeFiles: [\n \"GET /repos/{owner}/{repo}/import/large_files\",\n {},\n {\n deprecated: \"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files\"\n }\n ],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/repositories\"\n ],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n {},\n { renamed: [\"migrations\", \"listReposForAuthenticatedUser\"] }\n ],\n mapCommitAuthor: [\n \"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\",\n {},\n {\n deprecated: \"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author\"\n }\n ],\n setLfsPreference: [\n \"PATCH /repos/{owner}/{repo}/import/lfs\",\n {},\n {\n deprecated: \"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference\"\n }\n ],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\n \"PUT /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import\"\n }\n ],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n updateImport: [\n \"PATCH /repos/{owner}/{repo}/import\",\n {},\n {\n deprecated: \"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import\"\n }\n ]\n },\n oidc: {\n getOidcCustomSubTemplateForOrg: [\n \"GET /orgs/{org}/actions/oidc/customization/sub\"\n ],\n updateOidcCustomSubTemplateForOrg: [\n \"PUT /orgs/{org}/actions/oidc/customization/sub\"\n ]\n },\n orgs: {\n addSecurityManagerTeam: [\n \"PUT /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n assignTeamToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n assignUserToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\"\n ],\n createCustomOrganizationRole: [\"POST /orgs/{org}/organization-roles\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createOrUpdateCustomProperties: [\"PATCH /orgs/{org}/properties/schema\"],\n createOrUpdateCustomPropertiesValuesForRepos: [\n \"PATCH /orgs/{org}/properties/values\"\n ],\n createOrUpdateCustomProperty: [\n \"PUT /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n delete: [\"DELETE /orgs/{org}\"],\n deleteCustomOrganizationRole: [\n \"DELETE /orgs/{org}/organization-roles/{role_id}\"\n ],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n enableOrDisableSecurityProductOnAllOrgRepos: [\n \"POST /orgs/{org}/{security_product}/{enablement}\"\n ],\n get: [\"GET /orgs/{org}\"],\n getAllCustomProperties: [\"GET /orgs/{org}/properties/schema\"],\n getCustomProperty: [\n \"GET /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getOrgRole: [\"GET /orgs/{org}/organization-roles/{role_id}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomPropertiesValuesForRepos: [\"GET /orgs/{org}/properties/values\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOrgRoleTeams: [\"GET /orgs/{org}/organization-roles/{role_id}/teams\"],\n listOrgRoleUsers: [\"GET /orgs/{org}/organization-roles/{role_id}/users\"],\n listOrgRoles: [\"GET /orgs/{org}/organization-roles\"],\n listOrganizationFineGrainedPermissions: [\n \"GET /orgs/{org}/organization-fine-grained-permissions\"\n ],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPatGrantRepositories: [\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\"\n ],\n listPatGrantRequestRepositories: [\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\"\n ],\n listPatGrantRequests: [\"GET /orgs/{org}/personal-access-token-requests\"],\n listPatGrants: [\"GET /orgs/{org}/personal-access-tokens\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listSecurityManagerTeams: [\"GET /orgs/{org}/security-managers\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n patchCustomOrganizationRole: [\n \"PATCH /orgs/{org}/organization-roles/{role_id}\"\n ],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeCustomProperty: [\n \"DELETE /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\"\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\"\n ],\n removeSecurityManagerTeam: [\n \"DELETE /orgs/{org}/security-managers/teams/{team_slug}\"\n ],\n reviewPatGrantRequest: [\n \"POST /orgs/{org}/personal-access-token-requests/{pat_request_id}\"\n ],\n reviewPatGrantRequestsInBulk: [\n \"POST /orgs/{org}/personal-access-token-requests\"\n ],\n revokeAllOrgRolesTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}\"\n ],\n revokeAllOrgRolesUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}\"\n ],\n revokeOrgRoleTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n revokeOrgRoleUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\"\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\"\n ],\n updatePatAccess: [\"POST /orgs/{org}/personal-access-tokens/{pat_id}\"],\n updatePatAccesses: [\"POST /orgs/{org}/personal-access-tokens\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\"\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n deletePackageForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}\"\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n {},\n { renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"] }\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n {},\n {\n renamed: [\n \"packages\",\n \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"\n ]\n }\n ],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\"\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\"\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\"\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n listDockerMigrationConflictingPackagesForAuthenticatedUser: [\n \"GET /user/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForOrganization: [\n \"GET /orgs/{org}/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForUser: [\n \"GET /users/{username}/docker/conflicts\"\n ],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\"\n ],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\"\n ],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ]\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n createForRelease: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForRelease: [\n \"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n listForRelease: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ]\n },\n repos: {\n acceptInvitation: [\n \"PATCH /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"] }\n ],\n acceptInvitationForAuthenticatedUser: [\n \"PATCH /user/repository_invitations/{invitation_id}\"\n ],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n cancelPagesDeployment: [\n \"POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel\"\n ],\n checkAutomatedSecurityFixes: [\n \"GET /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\n \"GET /repos/{owner}/{repo}/compare/{basehead}\"\n ],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentBranchPolicy: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n createDeploymentProtectionRule: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateCustomPropertiesValues: [\n \"PATCH /repos/{owner}/{repo}/properties/values\"\n ],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createOrgRuleset: [\"POST /orgs/{org}/rulesets\"],\n createPagesDeployment: [\"POST /repos/{owner}/{repo}/pages/deployments\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createRepoRuleset: [\"POST /repos/{owner}/{repo}/rulesets\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\"\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\n \"DELETE /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"] }\n ],\n declineInvitationForAuthenticatedUser: [\n \"DELETE /user/repository_invitations/{invitation_id}\"\n ],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"\n ],\n deleteDeploymentBranchPolicy: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n deleteOrgRuleset: [\"DELETE /orgs/{org}/rulesets/{ruleset_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n deleteRepoRuleset: [\"DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n deleteTagProtection: [\n \"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n disableDeploymentProtectionRule: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n disablePrivateVulnerabilityReporting: [\n \"DELETE /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] }\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n enablePrivateVulnerabilityReporting: [\n \"PUT /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n generateReleaseNotes: [\n \"POST /repos/{owner}/{repo}/releases/generate-notes\"\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n getAllDeploymentProtectionRules: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"\n ],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"\n ],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n getBranchRules: [\"GET /repos/{owner}/{repo}/rules/branches/{branch}\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getCustomDeploymentProtectionRule: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n getCustomPropertiesValues: [\"GET /repos/{owner}/{repo}/properties/values\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentBranchPolicy: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getOrgRuleSuite: [\"GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}\"],\n getOrgRuleSuites: [\"GET /orgs/{org}/rulesets/rule-suites\"],\n getOrgRuleset: [\"GET /orgs/{org}/rulesets/{ruleset_id}\"],\n getOrgRulesets: [\"GET /orgs/{org}/rulesets\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesDeployment: [\n \"GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}\"\n ],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getRepoRuleSuite: [\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}\"\n ],\n getRepoRuleSuites: [\"GET /repos/{owner}/{repo}/rulesets/rule-suites\"],\n getRepoRuleset: [\"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n getRepoRulesets: [\"GET /repos/{owner}/{repo}/rulesets\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n getWebhookDelivery: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n listActivities: [\"GET /repos/{owner}/{repo}/activity\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listCustomDeploymentRuleIntegrations: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\"\n ],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentBranchPolicies: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"\n ],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\"\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateDeploymentBranchPolicy: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n updateOrgRuleset: [\"PUT /orgs/{org}/rulesets/{ruleset_id}\"],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n updateRepoRuleset: [\"PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] }\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" }\n ]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ]\n },\n securityAdvisories: {\n createFork: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks\"\n ],\n createPrivateVulnerabilityReport: [\n \"POST /repos/{owner}/{repo}/security-advisories/reports\"\n ],\n createRepositoryAdvisory: [\n \"POST /repos/{owner}/{repo}/security-advisories\"\n ],\n createRepositoryAdvisoryCveRequest: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve\"\n ],\n getGlobalAdvisory: [\"GET /advisories/{ghsa_id}\"],\n getRepositoryAdvisory: [\n \"GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ],\n listGlobalAdvisories: [\"GET /advisories\"],\n listOrgRepositoryAdvisories: [\"GET /orgs/{org}/security-advisories\"],\n listRepositoryAdvisories: [\"GET /repos/{owner}/{repo}/security-advisories\"],\n updateRepositoryAdvisory: [\n \"PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\"\n ],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\n \"POST /user/emails\",\n {},\n { renamed: [\"users\", \"addEmailForAuthenticatedUser\"] }\n ],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n addSocialAccountForAuthenticatedUser: [\"POST /user/social_accounts\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\n \"POST /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"] }\n ],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\n \"POST /user/keys\",\n {},\n { renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"] }\n ],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n createSshSigningKeyForAuthenticatedUser: [\"POST /user/ssh_signing_keys\"],\n deleteEmailForAuthenticated: [\n \"DELETE /user/emails\",\n {},\n { renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"] }\n ],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\n \"DELETE /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"] }\n ],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\n \"DELETE /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"] }\n ],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n deleteSocialAccountForAuthenticatedUser: [\"DELETE /user/social_accounts\"],\n deleteSshSigningKeyForAuthenticatedUser: [\n \"DELETE /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\n \"GET /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"] }\n ],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\n \"GET /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"] }\n ],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n getSshSigningKeyForAuthenticatedUser: [\n \"GET /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\n \"GET /user/blocks\",\n {},\n { renamed: [\"users\", \"listBlockedByAuthenticatedUser\"] }\n ],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\n \"GET /user/emails\",\n {},\n { renamed: [\"users\", \"listEmailsForAuthenticatedUser\"] }\n ],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\n \"GET /user/following\",\n {},\n { renamed: [\"users\", \"listFollowedByAuthenticatedUser\"] }\n ],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\n \"GET /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"] }\n ],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\n \"GET /user/public_emails\",\n {},\n { renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"] }\n ],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\n \"GET /user/keys\",\n {},\n { renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"] }\n ],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n listSocialAccountsForAuthenticatedUser: [\"GET /user/social_accounts\"],\n listSocialAccountsForUser: [\"GET /users/{username}/social_accounts\"],\n listSshSigningKeysForAuthenticatedUser: [\"GET /user/ssh_signing_keys\"],\n listSshSigningKeysForUser: [\"GET /users/{username}/ssh_signing_keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\n \"PATCH /user/email/visibility\",\n {},\n { renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"] }\n ],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\n \"PATCH /user/email/visibility\"\n ],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\nvar endpoints_default = Endpoints;\n\n// pkg/dist-src/endpoints-to-methods.js\nvar endpointMethodsMap = /* @__PURE__ */ new Map();\nfor (const [scope, endpoints] of Object.entries(endpoints_default)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign(\n {\n method,\n url\n },\n defaults\n );\n if (!endpointMethodsMap.has(scope)) {\n endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());\n }\n endpointMethodsMap.get(scope).set(methodName, {\n scope,\n methodName,\n endpointDefaults,\n decorations\n });\n }\n}\nvar handler = {\n has({ scope }, methodName) {\n return endpointMethodsMap.get(scope).has(methodName);\n },\n getOwnPropertyDescriptor(target, methodName) {\n return {\n value: this.get(target, methodName),\n // ensures method is in the cache\n configurable: true,\n writable: true,\n enumerable: true\n };\n },\n defineProperty(target, methodName, descriptor) {\n Object.defineProperty(target.cache, methodName, descriptor);\n return true;\n },\n deleteProperty(target, methodName) {\n delete target.cache[methodName];\n return true;\n },\n ownKeys({ scope }) {\n return [...endpointMethodsMap.get(scope).keys()];\n },\n set(target, methodName, value) {\n return target.cache[methodName] = value;\n },\n get({ octokit, scope, cache }, methodName) {\n if (cache[methodName]) {\n return cache[methodName];\n }\n const method = endpointMethodsMap.get(scope).get(methodName);\n if (!method) {\n return void 0;\n }\n const { endpointDefaults, decorations } = method;\n if (decorations) {\n cache[methodName] = decorate(\n octokit,\n scope,\n methodName,\n endpointDefaults,\n decorations\n );\n } else {\n cache[methodName] = octokit.request.defaults(endpointDefaults);\n }\n return cache[methodName];\n }\n};\nfunction endpointsToMethods(octokit) {\n const newMethods = {};\n for (const scope of endpointMethodsMap.keys()) {\n newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n function withDecorations(...args) {\n let options = requestWithDefaults.endpoint.merge(...args);\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: void 0\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(\n `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`\n );\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n const options2 = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(\n decorations.renamedParameters\n )) {\n if (name in options2) {\n octokit.log.warn(\n `\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`\n );\n if (!(alias in options2)) {\n options2[alias] = options2[name];\n }\n delete options2[name];\n }\n }\n return requestWithDefaults(options2);\n }\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\n// pkg/dist-src/index.js\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n ...api,\n rest: api\n };\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n legacyRestEndpointMethods,\n restEndpointMethods\n});\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n RequestError: () => RequestError\n});\nmodule.exports = __toCommonJS(dist_src_exports);\nvar import_deprecation = require(\"deprecation\");\nvar import_once = __toESM(require(\"once\"));\nvar logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation));\nvar logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation));\nvar RequestError = class extends Error {\n constructor(message, statusCode, options) {\n super(message);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n }\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(\n /(? {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// pkg/dist-src/index.js\nvar dist_src_exports = {};\n__export(dist_src_exports, {\n request: () => request\n});\nmodule.exports = __toCommonJS(dist_src_exports);\nvar import_endpoint = require(\"@octokit/endpoint\");\nvar import_universal_user_agent = require(\"universal-user-agent\");\n\n// pkg/dist-src/version.js\nvar VERSION = \"8.4.1\";\n\n// pkg/dist-src/is-plain-object.js\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null)\n return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null)\n return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\n\n// pkg/dist-src/fetch-wrapper.js\nvar import_request_error = require(\"@octokit/request-error\");\n\n// pkg/dist-src/get-buffer-response.js\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\n// pkg/dist-src/fetch-wrapper.js\nfunction fetchWrapper(requestOptions) {\n var _a, _b, _c, _d;\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n const parseSuccessResponseBody = ((_a = requestOptions.request) == null ? void 0 : _a.parseSuccessResponseBody) !== false;\n if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n let { fetch } = globalThis;\n if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) {\n fetch = requestOptions.request.fetch;\n }\n if (!fetch) {\n throw new Error(\n \"fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing\"\n );\n }\n return fetch(requestOptions.url, {\n method: requestOptions.method,\n body: requestOptions.body,\n redirect: (_c = requestOptions.request) == null ? void 0 : _c.redirect,\n headers: requestOptions.headers,\n signal: (_d = requestOptions.request) == null ? void 0 : _d.signal,\n // duplex must be set if request.body is ReadableStream or Async Iterables.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.\n ...requestOptions.body && { duplex: \"half\" }\n }).then(async (response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^<>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(\n `[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`\n );\n }\n if (status === 204 || status === 205) {\n return;\n }\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new import_request_error.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: void 0\n },\n request: requestOptions\n });\n }\n if (status === 304) {\n throw new import_request_error.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new import_request_error.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n return parseSuccessResponseBody ? await getResponseData(response) : response.body;\n }).then((data) => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch((error) => {\n if (error instanceof import_request_error.RequestError)\n throw error;\n else if (error.name === \"AbortError\")\n throw error;\n let message = error.message;\n if (error.name === \"TypeError\" && \"cause\" in error) {\n if (error.cause instanceof Error) {\n message = error.cause.message;\n } else if (typeof error.cause === \"string\") {\n message = error.cause;\n }\n }\n throw new import_request_error.RequestError(message, 500, {\n request: requestOptions\n });\n });\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json().catch(() => response.text()).catch(() => \"\");\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBufferResponse(response);\n}\nfunction toErrorMessage(data) {\n if (typeof data === \"string\")\n return data;\n let suffix;\n if (\"documentation_url\" in data) {\n suffix = ` - ${data.documentation_url}`;\n } else {\n suffix = \"\";\n }\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}${suffix}`;\n }\n return `${data.message}${suffix}`;\n }\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint2 = oldEndpoint.defaults(newDefaults);\n const newApi = function(route, parameters) {\n const endpointOptions = endpoint2.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint2.parse(endpointOptions));\n }\n const request2 = (route2, parameters2) => {\n return fetchWrapper(\n endpoint2.parse(endpoint2.merge(route2, parameters2))\n );\n };\n Object.assign(request2, {\n endpoint: endpoint2,\n defaults: withDefaults.bind(null, endpoint2)\n });\n return endpointOptions.request.hook(request2, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint: endpoint2,\n defaults: withDefaults.bind(null, endpoint2)\n });\n}\n\n// pkg/dist-src/index.js\nvar request = withDefaults(import_endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`\n }\n});\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n request\n});\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n AbortController: () => AbortController,\n AbortHandler: () => import_types.AbortHandler,\n AbortSignal: () => AbortSignal,\n IAbortController: () => import_types.AbortController,\n IAbortSignal: () => import_types.AbortSignal\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/AbortController.ts\n\n\n// src/AbortSignal.ts\nvar import_types = require(\"@smithy/types\");\nvar AbortSignal = class {\n constructor() {\n this.onabort = null;\n this._aborted = false;\n Object.defineProperty(this, \"_aborted\", {\n value: false,\n writable: true\n });\n }\n static {\n __name(this, \"AbortSignal\");\n }\n /**\n * Whether the associated operation has already been cancelled.\n */\n get aborted() {\n return this._aborted;\n }\n /**\n * @internal\n */\n abort() {\n this._aborted = true;\n if (this.onabort) {\n this.onabort(this);\n this.onabort = null;\n }\n }\n};\n\n// src/AbortController.ts\nvar AbortController = class {\n constructor() {\n this.signal = new AbortSignal();\n }\n static {\n __name(this, \"AbortController\");\n }\n abort() {\n this.signal.abort();\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n AbortController,\n AbortSignal\n});\n\n","'use strict';\n\nvar utilConfigProvider = require('@smithy/util-config-provider');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilEndpoints = require('@smithy/util-endpoints');\n\nconst ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nconst CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nconst DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nconst NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: false,\n};\nconst nodeDualstackConfigSelectors = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: undefined,\n};\n\nconst ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nconst CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nconst DEFAULT_USE_FIPS_ENDPOINT = false;\nconst NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: false,\n};\nconst nodeFipsConfigSelectors = {\n environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),\n configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),\n default: undefined,\n};\n\nconst resolveCustomEndpointsConfig = (input) => {\n const { tls, endpoint, urlParser, useDualstackEndpoint } = input;\n return Object.assign(input, {\n tls: tls ?? true,\n endpoint: utilMiddleware.normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint),\n isCustomEndpoint: true,\n useDualstackEndpoint: utilMiddleware.normalizeProvider(useDualstackEndpoint ?? false),\n });\n};\n\nconst getEndpointFromRegion = async (input) => {\n const { tls = true } = input;\n const region = await input.region();\n const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n const useDualstackEndpoint = await input.useDualstackEndpoint();\n const useFipsEndpoint = await input.useFipsEndpoint();\n const { hostname } = (await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint })) ?? {};\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return input.urlParser(`${tls ? \"https:\" : \"http:\"}//${hostname}`);\n};\n\nconst resolveEndpointsConfig = (input) => {\n const useDualstackEndpoint = utilMiddleware.normalizeProvider(input.useDualstackEndpoint ?? false);\n const { endpoint, useFipsEndpoint, urlParser, tls } = input;\n return Object.assign(input, {\n tls: tls ?? true,\n endpoint: endpoint\n ? utilMiddleware.normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }),\n isCustomEndpoint: !!endpoint,\n useDualstackEndpoint,\n });\n};\n\nconst REGION_ENV_NAME = \"AWS_REGION\";\nconst REGION_INI_NAME = \"region\";\nconst NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[REGION_ENV_NAME],\n configFileSelector: (profile) => profile[REGION_INI_NAME],\n default: () => {\n throw new Error(\"Region is missing\");\n },\n};\nconst NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\n\nconst validRegions = new Set();\nconst checkRegion = (region, check = utilEndpoints.isValidHostLabel) => {\n if (!validRegions.has(region) && !check(region)) {\n if (region === \"*\") {\n console.warn(`@smithy/config-resolver WARN - Please use the caller region instead of \"*\". See \"sigv4a\" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.`);\n }\n else {\n throw new Error(`Region not accepted: region=\"${region}\" is not a valid hostname component.`);\n }\n }\n else {\n validRegions.add(region);\n }\n};\n\nconst isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n\nconst getRealRegion = (region) => isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n\nconst resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return Object.assign(input, {\n region: async () => {\n const providedRegion = typeof region === \"function\" ? await region() : region;\n const realRegion = getRealRegion(providedRegion);\n checkRegion(realRegion);\n return realRegion;\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n });\n};\n\nconst getHostnameFromVariants = (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => variants.find(({ tags }) => useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\"))?.hostname;\n\nconst getResolvedHostname = (resolvedRegion, { regionHostname, partitionHostname }) => regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\n\nconst getResolvedPartition = (region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? \"aws\";\n\nconst getResolvedSigningRegion = (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => {\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n const regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n const regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\n\nconst getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash, }) => {\n const partition = getResolvedPartition(region, { partitionHash });\n const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region;\n const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint };\n const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions);\n const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions);\n const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname });\n if (hostname === undefined) {\n throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`);\n }\n const signingRegion = getResolvedSigningRegion(hostname, {\n signingRegion: regionHash[resolvedRegion]?.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint,\n });\n return {\n partition,\n signingService,\n hostname,\n ...(signingRegion && { signingRegion }),\n ...(regionHash[resolvedRegion]?.signingService && {\n signingService: regionHash[resolvedRegion].signingService,\n }),\n };\n};\n\nexports.CONFIG_USE_DUALSTACK_ENDPOINT = CONFIG_USE_DUALSTACK_ENDPOINT;\nexports.CONFIG_USE_FIPS_ENDPOINT = CONFIG_USE_FIPS_ENDPOINT;\nexports.DEFAULT_USE_DUALSTACK_ENDPOINT = DEFAULT_USE_DUALSTACK_ENDPOINT;\nexports.DEFAULT_USE_FIPS_ENDPOINT = DEFAULT_USE_FIPS_ENDPOINT;\nexports.ENV_USE_DUALSTACK_ENDPOINT = ENV_USE_DUALSTACK_ENDPOINT;\nexports.ENV_USE_FIPS_ENDPOINT = ENV_USE_FIPS_ENDPOINT;\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = NODE_REGION_CONFIG_FILE_OPTIONS;\nexports.NODE_REGION_CONFIG_OPTIONS = NODE_REGION_CONFIG_OPTIONS;\nexports.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS;\nexports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS;\nexports.REGION_ENV_NAME = REGION_ENV_NAME;\nexports.REGION_INI_NAME = REGION_INI_NAME;\nexports.getRegionInfo = getRegionInfo;\nexports.nodeDualstackConfigSelectors = nodeDualstackConfigSelectors;\nexports.nodeFipsConfigSelectors = nodeFipsConfigSelectors;\nexports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;\nexports.resolveEndpointsConfig = resolveEndpointsConfig;\nexports.resolveRegionConfig = resolveRegionConfig;\n","'use strict';\n\nvar types = require('@smithy/types');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar protocols = require('@smithy/core/protocols');\n\nconst getSmithyContext = (context) => context[types.SMITHY_CONTEXT_KEY] || (context[types.SMITHY_CONTEXT_KEY] = {});\n\nconst resolveAuthOptions = (candidateAuthOptions, authSchemePreference) => {\n if (!authSchemePreference || authSchemePreference.length === 0) {\n return candidateAuthOptions;\n }\n const preferredAuthOptions = [];\n for (const preferredSchemeName of authSchemePreference) {\n for (const candidateAuthOption of candidateAuthOptions) {\n const candidateAuthSchemeName = candidateAuthOption.schemeId.split(\"#\")[1];\n if (candidateAuthSchemeName === preferredSchemeName) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n }\n for (const candidateAuthOption of candidateAuthOptions) {\n if (!preferredAuthOptions.find(({ schemeId }) => schemeId === candidateAuthOption.schemeId)) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n return preferredAuthOptions;\n};\n\nfunction convertHttpAuthSchemesToMap(httpAuthSchemes) {\n const map = new Map();\n for (const scheme of httpAuthSchemes) {\n map.set(scheme.schemeId, scheme);\n }\n return map;\n}\nconst httpAuthSchemeMiddleware = (config, mwOptions) => (next, context) => async (args) => {\n const options = config.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input));\n const authSchemePreference = config.authSchemePreference ? await config.authSchemePreference() : [];\n const resolvedOptions = resolveAuthOptions(options, authSchemePreference);\n const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes);\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const failureReasons = [];\n for (const option of resolvedOptions) {\n const scheme = authSchemes.get(option.schemeId);\n if (!scheme) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` was not enabled for this service.`);\n continue;\n }\n const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config));\n if (!identityProvider) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` did not have an IdentityProvider configured.`);\n continue;\n }\n const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {};\n option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties);\n option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties);\n smithyContext.selectedHttpAuthScheme = {\n httpAuthOption: option,\n identity: await identityProvider(option.identityProperties),\n signer: scheme.signer,\n };\n break;\n }\n if (!smithyContext.selectedHttpAuthScheme) {\n throw new Error(failureReasons.join(\"\\n\"));\n }\n return next(args);\n};\n\nconst httpAuthSchemeEndpointRuleSetMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"endpointV2Middleware\",\n};\nconst getHttpAuthSchemeEndpointRuleSetPlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeEndpointRuleSetMiddlewareOptions);\n },\n});\n\nconst httpAuthSchemeMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"serializerMiddleware\",\n};\nconst getHttpAuthSchemePlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeMiddlewareOptions);\n },\n});\n\nconst defaultErrorHandler = (signingProperties) => (error) => {\n throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nconst httpSigningMiddleware = (config) => (next, context) => async (args) => {\n if (!protocolHttp.HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const scheme = smithyContext.selectedHttpAuthScheme;\n if (!scheme) {\n throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n }\n const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n const output = await next({\n ...args,\n request: await signer.sign(args.request, identity, signingProperties),\n }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n return output;\n};\n\nconst httpSigningMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"HTTP_SIGNING\"],\n name: \"httpSigningMiddleware\",\n aliases: [\"apiKeyMiddleware\", \"tokenMiddleware\", \"awsAuthMiddleware\"],\n override: true,\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n};\nconst getHttpSigningPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpSigningMiddleware(), httpSigningMiddlewareOptions);\n },\n});\n\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n\nconst makePagedClientRequest = async (CommandCtor, client, input, withCommand = (_) => _, ...args) => {\n let command = new CommandCtor(input);\n command = withCommand(command) ?? command;\n return await client.send(command, ...args);\n};\nfunction createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) {\n return async function* paginateOperation(config, input, ...additionalArguments) {\n const _input = input;\n let token = config.startingToken ?? _input[inputTokenName];\n let hasNext = true;\n let page;\n while (hasNext) {\n _input[inputTokenName] = token;\n if (pageSizeTokenName) {\n _input[pageSizeTokenName] = _input[pageSizeTokenName] ?? config.pageSize;\n }\n if (config.client instanceof ClientCtor) {\n page = await makePagedClientRequest(CommandCtor, config.client, input, config.withCommand, ...additionalArguments);\n }\n else {\n throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`);\n }\n yield page;\n const prevToken = token;\n token = get(page, outputTokenName);\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n };\n}\nconst get = (fromObject, path) => {\n let cursor = fromObject;\n const pathComponents = path.split(\".\");\n for (const step of pathComponents) {\n if (!cursor || typeof cursor !== \"object\") {\n return undefined;\n }\n cursor = cursor[step];\n }\n return cursor;\n};\n\nfunction setFeature(context, feature, value) {\n if (!context.__smithy_context) {\n context.__smithy_context = {\n features: {},\n };\n }\n else if (!context.__smithy_context.features) {\n context.__smithy_context.features = {};\n }\n context.__smithy_context.features[feature] = value;\n}\n\nclass DefaultIdentityProviderConfig {\n authSchemes = new Map();\n constructor(config) {\n for (const key in config) {\n const value = config[key];\n if (value !== undefined) {\n this.authSchemes.set(key, value);\n }\n }\n }\n getIdentityProvider(schemeId) {\n return this.authSchemes.get(schemeId);\n }\n}\n\nclass HttpApiKeyAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n if (!signingProperties) {\n throw new Error(\"request could not be signed with `apiKey` since the `name` and `in` signer properties are missing\");\n }\n if (!signingProperties.name) {\n throw new Error(\"request could not be signed with `apiKey` since the `name` signer property is missing\");\n }\n if (!signingProperties.in) {\n throw new Error(\"request could not be signed with `apiKey` since the `in` signer property is missing\");\n }\n if (!identity.apiKey) {\n throw new Error(\"request could not be signed with `apiKey` since the `apiKey` is not defined\");\n }\n const clonedRequest = protocolHttp.HttpRequest.clone(httpRequest);\n if (signingProperties.in === types.HttpApiKeyAuthLocation.QUERY) {\n clonedRequest.query[signingProperties.name] = identity.apiKey;\n }\n else if (signingProperties.in === types.HttpApiKeyAuthLocation.HEADER) {\n clonedRequest.headers[signingProperties.name] = signingProperties.scheme\n ? `${signingProperties.scheme} ${identity.apiKey}`\n : identity.apiKey;\n }\n else {\n throw new Error(\"request can only be signed with `apiKey` locations `query` or `header`, \" +\n \"but found: `\" +\n signingProperties.in +\n \"`\");\n }\n return clonedRequest;\n }\n}\n\nclass HttpBearerAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n const clonedRequest = protocolHttp.HttpRequest.clone(httpRequest);\n if (!identity.token) {\n throw new Error(\"request could not be signed with `token` since the `token` is not defined\");\n }\n clonedRequest.headers[\"Authorization\"] = `Bearer ${identity.token}`;\n return clonedRequest;\n }\n}\n\nclass NoAuthSigner {\n async sign(httpRequest, identity, signingProperties) {\n return httpRequest;\n }\n}\n\nconst createIsIdentityExpiredFunction = (expirationMs) => function isIdentityExpired(identity) {\n return doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs;\n};\nconst EXPIRATION_MS = 300_000;\nconst isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS);\nconst doesIdentityRequireRefresh = (identity) => identity.expiration !== undefined;\nconst memoizeIdentityProvider = (provider, isExpired, requiresRefresh) => {\n if (provider === undefined) {\n return undefined;\n }\n const normalizedProvider = typeof provider !== \"function\" ? async () => Promise.resolve(provider) : provider;\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async (options) => {\n if (!pending) {\n pending = normalizedProvider(options);\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider(options);\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider(options);\n }\n if (isConstant) {\n return resolved;\n }\n if (!requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider(options);\n return resolved;\n }\n return resolved;\n };\n};\n\nexports.requestBuilder = protocols.requestBuilder;\nexports.DefaultIdentityProviderConfig = DefaultIdentityProviderConfig;\nexports.EXPIRATION_MS = EXPIRATION_MS;\nexports.HttpApiKeyAuthSigner = HttpApiKeyAuthSigner;\nexports.HttpBearerAuthSigner = HttpBearerAuthSigner;\nexports.NoAuthSigner = NoAuthSigner;\nexports.createIsIdentityExpiredFunction = createIsIdentityExpiredFunction;\nexports.createPaginator = createPaginator;\nexports.doesIdentityRequireRefresh = doesIdentityRequireRefresh;\nexports.getHttpAuthSchemeEndpointRuleSetPlugin = getHttpAuthSchemeEndpointRuleSetPlugin;\nexports.getHttpAuthSchemePlugin = getHttpAuthSchemePlugin;\nexports.getHttpSigningPlugin = getHttpSigningPlugin;\nexports.getSmithyContext = getSmithyContext;\nexports.httpAuthSchemeEndpointRuleSetMiddlewareOptions = httpAuthSchemeEndpointRuleSetMiddlewareOptions;\nexports.httpAuthSchemeMiddleware = httpAuthSchemeMiddleware;\nexports.httpAuthSchemeMiddlewareOptions = httpAuthSchemeMiddlewareOptions;\nexports.httpSigningMiddleware = httpSigningMiddleware;\nexports.httpSigningMiddlewareOptions = httpSigningMiddlewareOptions;\nexports.isIdentityExpired = isIdentityExpired;\nexports.memoizeIdentityProvider = memoizeIdentityProvider;\nexports.normalizeProvider = normalizeProvider;\nexports.setFeature = setFeature;\n","'use strict';\n\nvar serde = require('@smithy/core/serde');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar protocols = require('@smithy/core/protocols');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilBodyLengthBrowser = require('@smithy/util-body-length-browser');\nvar schema = require('@smithy/core/schema');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilBase64 = require('@smithy/util-base64');\n\nconst majorUint64 = 0;\nconst majorNegativeInt64 = 1;\nconst majorUnstructuredByteString = 2;\nconst majorUtf8String = 3;\nconst majorList = 4;\nconst majorMap = 5;\nconst majorTag = 6;\nconst majorSpecial = 7;\nconst specialFalse = 20;\nconst specialTrue = 21;\nconst specialNull = 22;\nconst specialUndefined = 23;\nconst extendedOneByte = 24;\nconst extendedFloat16 = 25;\nconst extendedFloat32 = 26;\nconst extendedFloat64 = 27;\nconst minorIndefinite = 31;\nfunction alloc(size) {\n return typeof Buffer !== \"undefined\" ? Buffer.alloc(size) : new Uint8Array(size);\n}\nconst tagSymbol = Symbol(\"@smithy/core/cbor::tagSymbol\");\nfunction tag(data) {\n data[tagSymbol] = true;\n return data;\n}\n\nconst USE_TEXT_DECODER = typeof TextDecoder !== \"undefined\";\nconst USE_BUFFER$1 = typeof Buffer !== \"undefined\";\nlet payload = alloc(0);\nlet dataView$1 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);\nconst textDecoder = USE_TEXT_DECODER ? new TextDecoder() : null;\nlet _offset = 0;\nfunction setPayload(bytes) {\n payload = bytes;\n dataView$1 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);\n}\nfunction decode(at, to) {\n if (at >= to) {\n throw new Error(\"unexpected end of (decode) payload.\");\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n switch (major) {\n case majorUint64:\n case majorNegativeInt64:\n case majorTag:\n let unsignedInt;\n let offset;\n if (minor < 24) {\n unsignedInt = minor;\n offset = 1;\n }\n else {\n switch (minor) {\n case extendedOneByte:\n case extendedFloat16:\n case extendedFloat32:\n case extendedFloat64:\n const countLength = minorValueToArgumentLength[minor];\n const countOffset = (countLength + 1);\n offset = countOffset;\n if (to - at < countOffset) {\n throw new Error(`countLength ${countLength} greater than remaining buf len.`);\n }\n const countIndex = at + 1;\n if (countLength === 1) {\n unsignedInt = payload[countIndex];\n }\n else if (countLength === 2) {\n unsignedInt = dataView$1.getUint16(countIndex);\n }\n else if (countLength === 4) {\n unsignedInt = dataView$1.getUint32(countIndex);\n }\n else {\n unsignedInt = dataView$1.getBigUint64(countIndex);\n }\n break;\n default:\n throw new Error(`unexpected minor value ${minor}.`);\n }\n }\n if (major === majorUint64) {\n _offset = offset;\n return castBigInt(unsignedInt);\n }\n else if (major === majorNegativeInt64) {\n let negativeInt;\n if (typeof unsignedInt === \"bigint\") {\n negativeInt = BigInt(-1) - unsignedInt;\n }\n else {\n negativeInt = -1 - unsignedInt;\n }\n _offset = offset;\n return castBigInt(negativeInt);\n }\n else {\n if (minor === 2 || minor === 3) {\n const length = decodeCount(at + offset, to);\n let b = BigInt(0);\n const start = at + offset + _offset;\n for (let i = start; i < start + length; ++i) {\n b = (b << BigInt(8)) | BigInt(payload[i]);\n }\n _offset = offset + _offset + length;\n return minor === 3 ? -b - BigInt(1) : b;\n }\n else if (minor === 4) {\n const decimalFraction = decode(at + offset, to);\n const [exponent, mantissa] = decimalFraction;\n const normalizer = mantissa < 0 ? -1 : 1;\n const mantissaStr = \"0\".repeat(Math.abs(exponent) + 1) + String(BigInt(normalizer) * BigInt(mantissa));\n let numericString;\n const sign = mantissa < 0 ? \"-\" : \"\";\n numericString =\n exponent === 0\n ? mantissaStr\n : mantissaStr.slice(0, mantissaStr.length + exponent) + \".\" + mantissaStr.slice(exponent);\n numericString = numericString.replace(/^0+/g, \"\");\n if (numericString === \"\") {\n numericString = \"0\";\n }\n if (numericString[0] === \".\") {\n numericString = \"0\" + numericString;\n }\n numericString = sign + numericString;\n _offset = offset + _offset;\n return serde.nv(numericString);\n }\n else {\n const value = decode(at + offset, to);\n const valueOffset = _offset;\n _offset = offset + valueOffset;\n return tag({ tag: castBigInt(unsignedInt), value });\n }\n }\n case majorUtf8String:\n case majorMap:\n case majorList:\n case majorUnstructuredByteString:\n if (minor === minorIndefinite) {\n switch (major) {\n case majorUtf8String:\n return decodeUtf8StringIndefinite(at, to);\n case majorMap:\n return decodeMapIndefinite(at, to);\n case majorList:\n return decodeListIndefinite(at, to);\n case majorUnstructuredByteString:\n return decodeUnstructuredByteStringIndefinite(at, to);\n }\n }\n else {\n switch (major) {\n case majorUtf8String:\n return decodeUtf8String(at, to);\n case majorMap:\n return decodeMap(at, to);\n case majorList:\n return decodeList(at, to);\n case majorUnstructuredByteString:\n return decodeUnstructuredByteString(at, to);\n }\n }\n default:\n return decodeSpecial(at, to);\n }\n}\nfunction bytesToUtf8(bytes, at, to) {\n if (USE_BUFFER$1 && bytes.constructor?.name === \"Buffer\") {\n return bytes.toString(\"utf-8\", at, to);\n }\n if (textDecoder) {\n return textDecoder.decode(bytes.subarray(at, to));\n }\n return utilUtf8.toUtf8(bytes.subarray(at, to));\n}\nfunction demote(bigInteger) {\n const num = Number(bigInteger);\n if (num < Number.MIN_SAFE_INTEGER || Number.MAX_SAFE_INTEGER < num) {\n console.warn(new Error(`@smithy/core/cbor - truncating BigInt(${bigInteger}) to ${num} with loss of precision.`));\n }\n return num;\n}\nconst minorValueToArgumentLength = {\n [extendedOneByte]: 1,\n [extendedFloat16]: 2,\n [extendedFloat32]: 4,\n [extendedFloat64]: 8,\n};\nfunction bytesToFloat16(a, b) {\n const sign = a >> 7;\n const exponent = (a & 0b0111_1100) >> 2;\n const fraction = ((a & 0b0000_0011) << 8) | b;\n const scalar = sign === 0 ? 1 : -1;\n let exponentComponent;\n let summation;\n if (exponent === 0b00000) {\n if (fraction === 0b00000_00000) {\n return 0;\n }\n else {\n exponentComponent = Math.pow(2, 1 - 15);\n summation = 0;\n }\n }\n else if (exponent === 0b11111) {\n if (fraction === 0b00000_00000) {\n return scalar * Infinity;\n }\n else {\n return NaN;\n }\n }\n else {\n exponentComponent = Math.pow(2, exponent - 15);\n summation = 1;\n }\n summation += fraction / 1024;\n return scalar * (exponentComponent * summation);\n}\nfunction decodeCount(at, to) {\n const minor = payload[at] & 0b0001_1111;\n if (minor < 24) {\n _offset = 1;\n return minor;\n }\n if (minor === extendedOneByte ||\n minor === extendedFloat16 ||\n minor === extendedFloat32 ||\n minor === extendedFloat64) {\n const countLength = minorValueToArgumentLength[minor];\n _offset = (countLength + 1);\n if (to - at < _offset) {\n throw new Error(`countLength ${countLength} greater than remaining buf len.`);\n }\n const countIndex = at + 1;\n if (countLength === 1) {\n return payload[countIndex];\n }\n else if (countLength === 2) {\n return dataView$1.getUint16(countIndex);\n }\n else if (countLength === 4) {\n return dataView$1.getUint32(countIndex);\n }\n return demote(dataView$1.getBigUint64(countIndex));\n }\n throw new Error(`unexpected minor value ${minor}.`);\n}\nfunction decodeUtf8String(at, to) {\n const length = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n if (to - at < length) {\n throw new Error(`string len ${length} greater than remaining buf len.`);\n }\n const value = bytesToUtf8(payload, at, at + length);\n _offset = offset + length;\n return value;\n}\nfunction decodeUtf8StringIndefinite(at, to) {\n at += 1;\n const vector = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n const data = alloc(vector.length);\n data.set(vector, 0);\n _offset = at - base + 2;\n return bytesToUtf8(data, 0, data.length);\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} in indefinite string.`);\n }\n if (minor === minorIndefinite) {\n throw new Error(\"nested indefinite string.\");\n }\n const bytes = decodeUnstructuredByteString(at, to);\n const length = _offset;\n at += length;\n for (let i = 0; i < bytes.length; ++i) {\n vector.push(bytes[i]);\n }\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeUnstructuredByteString(at, to) {\n const length = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n if (to - at < length) {\n throw new Error(`unstructured byte string len ${length} greater than remaining buf len.`);\n }\n const value = payload.subarray(at, at + length);\n _offset = offset + length;\n return value;\n}\nfunction decodeUnstructuredByteStringIndefinite(at, to) {\n at += 1;\n const vector = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n const data = alloc(vector.length);\n data.set(vector, 0);\n _offset = at - base + 2;\n return data;\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n const minor = payload[at] & 0b0001_1111;\n if (major !== majorUnstructuredByteString) {\n throw new Error(`unexpected major type ${major} in indefinite string.`);\n }\n if (minor === minorIndefinite) {\n throw new Error(\"nested indefinite string.\");\n }\n const bytes = decodeUnstructuredByteString(at, to);\n const length = _offset;\n at += length;\n for (let i = 0; i < bytes.length; ++i) {\n vector.push(bytes[i]);\n }\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeList(at, to) {\n const listDataLength = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n const base = at;\n const list = Array(listDataLength);\n for (let i = 0; i < listDataLength; ++i) {\n const item = decode(at, to);\n const itemOffset = _offset;\n list[i] = item;\n at += itemOffset;\n }\n _offset = offset + (at - base);\n return list;\n}\nfunction decodeListIndefinite(at, to) {\n at += 1;\n const list = [];\n for (const base = at; at < to;) {\n if (payload[at] === 0b1111_1111) {\n _offset = at - base + 2;\n return list;\n }\n const item = decode(at, to);\n const n = _offset;\n at += n;\n list.push(item);\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeMap(at, to) {\n const mapDataLength = decodeCount(at, to);\n const offset = _offset;\n at += offset;\n const base = at;\n const map = {};\n for (let i = 0; i < mapDataLength; ++i) {\n if (at >= to) {\n throw new Error(\"unexpected end of map payload.\");\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} for map key at index ${at}.`);\n }\n const key = decode(at, to);\n at += _offset;\n const value = decode(at, to);\n at += _offset;\n map[key] = value;\n }\n _offset = offset + (at - base);\n return map;\n}\nfunction decodeMapIndefinite(at, to) {\n at += 1;\n const base = at;\n const map = {};\n for (; at < to;) {\n if (at >= to) {\n throw new Error(\"unexpected end of map payload.\");\n }\n if (payload[at] === 0b1111_1111) {\n _offset = at - base + 2;\n return map;\n }\n const major = (payload[at] & 0b1110_0000) >> 5;\n if (major !== majorUtf8String) {\n throw new Error(`unexpected major type ${major} for map key.`);\n }\n const key = decode(at, to);\n at += _offset;\n const value = decode(at, to);\n at += _offset;\n map[key] = value;\n }\n throw new Error(\"expected break marker.\");\n}\nfunction decodeSpecial(at, to) {\n const minor = payload[at] & 0b0001_1111;\n switch (minor) {\n case specialTrue:\n case specialFalse:\n _offset = 1;\n return minor === specialTrue;\n case specialNull:\n _offset = 1;\n return null;\n case specialUndefined:\n _offset = 1;\n return null;\n case extendedFloat16:\n if (to - at < 3) {\n throw new Error(\"incomplete float16 at end of buf.\");\n }\n _offset = 3;\n return bytesToFloat16(payload[at + 1], payload[at + 2]);\n case extendedFloat32:\n if (to - at < 5) {\n throw new Error(\"incomplete float32 at end of buf.\");\n }\n _offset = 5;\n return dataView$1.getFloat32(at + 1);\n case extendedFloat64:\n if (to - at < 9) {\n throw new Error(\"incomplete float64 at end of buf.\");\n }\n _offset = 9;\n return dataView$1.getFloat64(at + 1);\n default:\n throw new Error(`unexpected minor value ${minor}.`);\n }\n}\nfunction castBigInt(bigInt) {\n if (typeof bigInt === \"number\") {\n return bigInt;\n }\n const num = Number(bigInt);\n if (Number.MIN_SAFE_INTEGER <= num && num <= Number.MAX_SAFE_INTEGER) {\n return num;\n }\n return bigInt;\n}\n\nconst USE_BUFFER = typeof Buffer !== \"undefined\";\nconst initialSize = 2048;\nlet data = alloc(initialSize);\nlet dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\nlet cursor = 0;\nfunction ensureSpace(bytes) {\n const remaining = data.byteLength - cursor;\n if (remaining < bytes) {\n if (cursor < 16_000_000) {\n resize(Math.max(data.byteLength * 4, data.byteLength + bytes));\n }\n else {\n resize(data.byteLength + bytes + 16_000_000);\n }\n }\n}\nfunction toUint8Array() {\n const out = alloc(cursor);\n out.set(data.subarray(0, cursor), 0);\n cursor = 0;\n return out;\n}\nfunction resize(size) {\n const old = data;\n data = alloc(size);\n if (old) {\n if (old.copy) {\n old.copy(data, 0, 0, old.byteLength);\n }\n else {\n data.set(old, 0);\n }\n }\n dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\n}\nfunction encodeHeader(major, value) {\n if (value < 24) {\n data[cursor++] = (major << 5) | value;\n }\n else if (value < 1 << 8) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = value;\n }\n else if (value < 1 << 16) {\n data[cursor++] = (major << 5) | extendedFloat16;\n dataView.setUint16(cursor, value);\n cursor += 2;\n }\n else if (value < 2 ** 32) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, value);\n cursor += 4;\n }\n else {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, typeof value === \"bigint\" ? value : BigInt(value));\n cursor += 8;\n }\n}\nfunction encode(_input) {\n const encodeStack = [_input];\n while (encodeStack.length) {\n const input = encodeStack.pop();\n ensureSpace(typeof input === \"string\" ? input.length * 4 : 64);\n if (typeof input === \"string\") {\n if (USE_BUFFER) {\n encodeHeader(majorUtf8String, Buffer.byteLength(input));\n cursor += data.write(input, cursor);\n }\n else {\n const bytes = utilUtf8.fromUtf8(input);\n encodeHeader(majorUtf8String, bytes.byteLength);\n data.set(bytes, cursor);\n cursor += bytes.byteLength;\n }\n continue;\n }\n else if (typeof input === \"number\") {\n if (Number.isInteger(input)) {\n const nonNegative = input >= 0;\n const major = nonNegative ? majorUint64 : majorNegativeInt64;\n const value = nonNegative ? input : -input - 1;\n if (value < 24) {\n data[cursor++] = (major << 5) | value;\n }\n else if (value < 256) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = value;\n }\n else if (value < 65536) {\n data[cursor++] = (major << 5) | extendedFloat16;\n data[cursor++] = value >> 8;\n data[cursor++] = value;\n }\n else if (value < 4294967296) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, value);\n cursor += 4;\n }\n else {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, BigInt(value));\n cursor += 8;\n }\n continue;\n }\n data[cursor++] = (majorSpecial << 5) | extendedFloat64;\n dataView.setFloat64(cursor, input);\n cursor += 8;\n continue;\n }\n else if (typeof input === \"bigint\") {\n const nonNegative = input >= 0;\n const major = nonNegative ? majorUint64 : majorNegativeInt64;\n const value = nonNegative ? input : -input - BigInt(1);\n const n = Number(value);\n if (n < 24) {\n data[cursor++] = (major << 5) | n;\n }\n else if (n < 256) {\n data[cursor++] = (major << 5) | 24;\n data[cursor++] = n;\n }\n else if (n < 65536) {\n data[cursor++] = (major << 5) | extendedFloat16;\n data[cursor++] = n >> 8;\n data[cursor++] = n & 0b1111_1111;\n }\n else if (n < 4294967296) {\n data[cursor++] = (major << 5) | extendedFloat32;\n dataView.setUint32(cursor, n);\n cursor += 4;\n }\n else if (value < BigInt(\"18446744073709551616\")) {\n data[cursor++] = (major << 5) | extendedFloat64;\n dataView.setBigUint64(cursor, value);\n cursor += 8;\n }\n else {\n const binaryBigInt = value.toString(2);\n const bigIntBytes = new Uint8Array(Math.ceil(binaryBigInt.length / 8));\n let b = value;\n let i = 0;\n while (bigIntBytes.byteLength - ++i >= 0) {\n bigIntBytes[bigIntBytes.byteLength - i] = Number(b & BigInt(255));\n b >>= BigInt(8);\n }\n ensureSpace(bigIntBytes.byteLength * 2);\n data[cursor++] = nonNegative ? 0b110_00010 : 0b110_00011;\n if (USE_BUFFER) {\n encodeHeader(majorUnstructuredByteString, Buffer.byteLength(bigIntBytes));\n }\n else {\n encodeHeader(majorUnstructuredByteString, bigIntBytes.byteLength);\n }\n data.set(bigIntBytes, cursor);\n cursor += bigIntBytes.byteLength;\n }\n continue;\n }\n else if (input === null) {\n data[cursor++] = (majorSpecial << 5) | specialNull;\n continue;\n }\n else if (typeof input === \"boolean\") {\n data[cursor++] = (majorSpecial << 5) | (input ? specialTrue : specialFalse);\n continue;\n }\n else if (typeof input === \"undefined\") {\n throw new Error(\"@smithy/core/cbor: client may not serialize undefined value.\");\n }\n else if (Array.isArray(input)) {\n for (let i = input.length - 1; i >= 0; --i) {\n encodeStack.push(input[i]);\n }\n encodeHeader(majorList, input.length);\n continue;\n }\n else if (typeof input.byteLength === \"number\") {\n ensureSpace(input.length * 2);\n encodeHeader(majorUnstructuredByteString, input.length);\n data.set(input, cursor);\n cursor += input.byteLength;\n continue;\n }\n else if (typeof input === \"object\") {\n if (input instanceof serde.NumericValue) {\n const decimalIndex = input.string.indexOf(\".\");\n const exponent = decimalIndex === -1 ? 0 : decimalIndex - input.string.length + 1;\n const mantissa = BigInt(input.string.replace(\".\", \"\"));\n data[cursor++] = 0b110_00100;\n encodeStack.push(mantissa);\n encodeStack.push(exponent);\n encodeHeader(majorList, 2);\n continue;\n }\n if (input[tagSymbol]) {\n if (\"tag\" in input && \"value\" in input) {\n encodeStack.push(input.value);\n encodeHeader(majorTag, input.tag);\n continue;\n }\n else {\n throw new Error(\"tag encountered with missing fields, need 'tag' and 'value', found: \" + JSON.stringify(input));\n }\n }\n const keys = Object.keys(input);\n for (let i = keys.length - 1; i >= 0; --i) {\n const key = keys[i];\n encodeStack.push(input[key]);\n encodeStack.push(key);\n }\n encodeHeader(majorMap, keys.length);\n continue;\n }\n throw new Error(`data type ${input?.constructor?.name ?? typeof input} not compatible for encoding.`);\n }\n}\n\nconst cbor = {\n deserialize(payload) {\n setPayload(payload);\n return decode(0, payload.length);\n },\n serialize(input) {\n try {\n encode(input);\n return toUint8Array();\n }\n catch (e) {\n toUint8Array();\n throw e;\n }\n },\n resizeEncodingBuffer(size) {\n resize(size);\n },\n};\n\nconst parseCborBody = (streamBody, context) => {\n return protocols.collectBody(streamBody, context).then(async (bytes) => {\n if (bytes.length) {\n try {\n return cbor.deserialize(bytes);\n }\n catch (e) {\n Object.defineProperty(e, \"$responseBodyText\", {\n value: context.utf8Encoder(bytes),\n });\n throw e;\n }\n }\n return {};\n });\n};\nconst dateToTag = (date) => {\n return tag({\n tag: 1,\n value: date.getTime() / 1000,\n });\n};\nconst parseCborErrorBody = async (errorBody, context) => {\n const value = await parseCborBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadSmithyRpcV2CborErrorCode = (output, data) => {\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n let codeKey;\n for (const key in data) {\n if (key.toLowerCase() === \"code\") {\n codeKey = key;\n break;\n }\n }\n if (codeKey && data[codeKey] !== undefined) {\n return sanitizeErrorCode(data[codeKey]);\n }\n};\nconst checkCborResponse = (response) => {\n if (String(response.headers[\"smithy-protocol\"]).toLowerCase() !== \"rpc-v2-cbor\") {\n throw new Error(\"Malformed RPCv2 CBOR response, status: \" + response.statusCode);\n }\n};\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const endpoint = await context.endpoint();\n const { hostname, protocol = \"https\", port, path: basePath } = endpoint;\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers: {\n ...headers,\n },\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n contents.headers[name] = endpoint.headers[name];\n }\n }\n if (body !== undefined) {\n contents.body = body;\n try {\n contents.headers[\"content-length\"] = String(utilBodyLengthBrowser.calculateBodyLength(body));\n }\n catch (e) { }\n }\n return new protocolHttp.HttpRequest(contents);\n};\n\nclass CborCodec extends protocols.SerdeContext {\n createSerializer() {\n const serializer = new CborShapeSerializer();\n serializer.setSerdeContext(this.serdeContext);\n return serializer;\n }\n createDeserializer() {\n const deserializer = new CborShapeDeserializer();\n deserializer.setSerdeContext(this.serdeContext);\n return deserializer;\n }\n}\nclass CborShapeSerializer extends protocols.SerdeContext {\n value;\n write(schema, value) {\n this.value = this.serialize(schema, value);\n }\n serialize(schema$1, source) {\n const ns = schema.NormalizedSchema.of(schema$1);\n if (source == null) {\n if (ns.isIdempotencyToken()) {\n return serde.generateIdempotencyToken();\n }\n return source;\n }\n if (ns.isBlobSchema()) {\n if (typeof source === \"string\") {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(source);\n }\n return source;\n }\n if (ns.isTimestampSchema()) {\n if (typeof source === \"number\" || typeof source === \"bigint\") {\n return dateToTag(new Date((Number(source) / 1000) | 0));\n }\n return dateToTag(source);\n }\n if (typeof source === \"function\" || typeof source === \"object\") {\n const sourceObject = source;\n if (ns.isListSchema() && Array.isArray(sourceObject)) {\n const sparse = !!ns.getMergedTraits().sparse;\n const newArray = [];\n let i = 0;\n for (const item of sourceObject) {\n const value = this.serialize(ns.getValueSchema(), item);\n if (value != null || sparse) {\n newArray[i++] = value;\n }\n }\n return newArray;\n }\n if (sourceObject instanceof Date) {\n return dateToTag(sourceObject);\n }\n const newObject = {};\n if (ns.isMapSchema()) {\n const sparse = !!ns.getMergedTraits().sparse;\n for (const key in sourceObject) {\n const value = this.serialize(ns.getValueSchema(), sourceObject[key]);\n if (value != null || sparse) {\n newObject[key] = value;\n }\n }\n }\n else if (ns.isStructSchema()) {\n for (const [key, memberSchema] of ns.structIterator()) {\n const value = this.serialize(memberSchema, sourceObject[key]);\n if (value != null) {\n newObject[key] = value;\n }\n }\n const isUnion = ns.isUnionSchema();\n if (isUnion && Array.isArray(sourceObject.$unknown)) {\n const [k, v] = sourceObject.$unknown;\n newObject[k] = v;\n }\n else if (typeof sourceObject.__type === \"string\") {\n for (const k in sourceObject) {\n if (!(k in newObject)) {\n newObject[k] = this.serialize(15, sourceObject[k]);\n }\n }\n }\n }\n else if (ns.isDocumentSchema()) {\n for (const key in sourceObject) {\n newObject[key] = this.serialize(ns.getValueSchema(), sourceObject[key]);\n }\n }\n else if (ns.isBigDecimalSchema()) {\n return sourceObject;\n }\n return newObject;\n }\n return source;\n }\n flush() {\n const buffer = cbor.serialize(this.value);\n this.value = undefined;\n return buffer;\n }\n}\nclass CborShapeDeserializer extends protocols.SerdeContext {\n read(schema, bytes) {\n const data = cbor.deserialize(bytes);\n return this.readValue(schema, data);\n }\n readValue(_schema, value) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isTimestampSchema()) {\n if (typeof value === \"number\") {\n return serde._parseEpochTimestamp(value);\n }\n if (typeof value === \"object\") {\n if (value.tag === 1 && \"value\" in value) {\n return serde._parseEpochTimestamp(value.value);\n }\n }\n }\n if (ns.isBlobSchema()) {\n if (typeof value === \"string\") {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(value);\n }\n return value;\n }\n if (typeof value === \"undefined\" ||\n typeof value === \"boolean\" ||\n typeof value === \"number\" ||\n typeof value === \"string\" ||\n typeof value === \"bigint\" ||\n typeof value === \"symbol\") {\n return value;\n }\n else if (typeof value === \"object\") {\n if (value === null) {\n return null;\n }\n if (\"byteLength\" in value) {\n return value;\n }\n if (value instanceof Date) {\n return value;\n }\n if (ns.isDocumentSchema()) {\n return value;\n }\n if (ns.isListSchema()) {\n const newArray = [];\n const memberSchema = ns.getValueSchema();\n for (const item of value) {\n const itemValue = this.readValue(memberSchema, item);\n newArray.push(itemValue);\n }\n return newArray;\n }\n const newObject = {};\n if (ns.isMapSchema()) {\n const targetSchema = ns.getValueSchema();\n for (const key in value) {\n const itemValue = this.readValue(targetSchema, value[key]);\n newObject[key] = itemValue;\n }\n }\n else if (ns.isStructSchema()) {\n const isUnion = ns.isUnionSchema();\n let keys;\n if (isUnion) {\n keys = new Set();\n for (const k in value) {\n if (k !== \"__type\") {\n keys.add(k);\n }\n }\n }\n for (const [key, memberSchema] of ns.structIterator()) {\n if (isUnion) {\n keys.delete(key);\n }\n if (value[key] != null) {\n newObject[key] = this.readValue(memberSchema, value[key]);\n }\n }\n if (isUnion && keys?.size === 1) {\n let newObjectEmpty = true;\n for (const _ in newObject) {\n newObjectEmpty = false;\n break;\n }\n if (newObjectEmpty) {\n const k = keys.values().next().value;\n newObject.$unknown = [k, value[k]];\n }\n }\n else if (typeof value.__type === \"string\") {\n for (const k in value) {\n if (!(k in newObject)) {\n newObject[k] = value[k];\n }\n }\n }\n }\n else if (value instanceof serde.NumericValue) {\n return value;\n }\n return newObject;\n }\n else {\n return value;\n }\n }\n}\n\nclass SmithyRpcV2CborProtocol extends protocols.RpcProtocol {\n codec = new CborCodec();\n serializer = this.codec.createSerializer();\n deserializer = this.codec.createDeserializer();\n constructor({ defaultNamespace, errorTypeRegistries, }) {\n super({ defaultNamespace, errorTypeRegistries });\n }\n getShapeId() {\n return \"smithy.protocols#rpcv2Cbor\";\n }\n getPayloadCodec() {\n return this.codec;\n }\n async serializeRequest(operationSchema, input, context) {\n const request = await super.serializeRequest(operationSchema, input, context);\n Object.assign(request.headers, {\n \"content-type\": this.getDefaultContentType(),\n \"smithy-protocol\": \"rpc-v2-cbor\",\n accept: this.getDefaultContentType(),\n });\n if (schema.deref(operationSchema.input) === \"unit\") {\n delete request.body;\n delete request.headers[\"content-type\"];\n }\n else {\n if (!request.body) {\n this.serializer.write(15, {});\n request.body = this.serializer.flush();\n }\n try {\n request.headers[\"content-length\"] = String(request.body.byteLength);\n }\n catch (e) { }\n }\n const { service, operation } = utilMiddleware.getSmithyContext(context);\n const path = `/service/${service}/operation/${operation}`;\n if (request.path.endsWith(\"/\")) {\n request.path += path.slice(1);\n }\n else {\n request.path += path;\n }\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n return super.deserializeResponse(operationSchema, context, response);\n }\n async handleError(operationSchema, context, response, dataObject, metadata) {\n const errorName = loadSmithyRpcV2CborErrorCode(response, dataObject) ?? \"Unknown\";\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode <= 500 ? \"client\" : \"server\",\n };\n let namespace = this.options.defaultNamespace;\n if (errorName.includes(\"#\")) {\n [namespace] = errorName.split(\"#\");\n }\n const registry = this.compositeErrorRegistry;\n const nsRegistry = schema.TypeRegistry.for(namespace);\n registry.copyFrom(nsRegistry);\n let errorSchema;\n try {\n errorSchema = registry.getSchema(errorName);\n }\n catch (e) {\n if (dataObject.Message) {\n dataObject.message = dataObject.Message;\n }\n const syntheticRegistry = schema.TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + namespace);\n registry.copyFrom(syntheticRegistry);\n const baseExceptionSchema = registry.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = registry.getErrorCtor(baseExceptionSchema);\n throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);\n }\n throw Object.assign(new Error(errorName), errorMetadata, dataObject);\n }\n const ns = schema.NormalizedSchema.of(errorSchema);\n const ErrorCtor = registry.getErrorCtor(errorSchema);\n const message = dataObject.message ?? dataObject.Message ?? \"Unknown\";\n const exception = new ErrorCtor(message);\n const output = {};\n for (const [name, member] of ns.structIterator()) {\n output[name] = this.deserializer.readValue(member, dataObject[name]);\n }\n throw Object.assign(exception, errorMetadata, {\n $fault: ns.getMergedTraits().error,\n message,\n }, output);\n }\n getDefaultContentType() {\n return \"application/cbor\";\n }\n}\n\nexports.CborCodec = CborCodec;\nexports.CborShapeDeserializer = CborShapeDeserializer;\nexports.CborShapeSerializer = CborShapeSerializer;\nexports.SmithyRpcV2CborProtocol = SmithyRpcV2CborProtocol;\nexports.buildHttpRpcRequest = buildHttpRpcRequest;\nexports.cbor = cbor;\nexports.checkCborResponse = checkCborResponse;\nexports.dateToTag = dateToTag;\nexports.loadSmithyRpcV2CborErrorCode = loadSmithyRpcV2CborErrorCode;\nexports.parseCborBody = parseCborBody;\nexports.parseCborErrorBody = parseCborErrorBody;\nexports.tag = tag;\nexports.tagSymbol = tagSymbol;\n","'use strict';\n\nvar urlParser = require('@smithy/url-parser');\n\nconst toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n const v1Endpoint = urlParser.parseUrl(endpoint.url);\n if (endpoint.headers) {\n v1Endpoint.headers = {};\n for (const name in endpoint.headers) {\n v1Endpoint.headers[name.toLowerCase()] = endpoint.headers[name].join(\", \");\n }\n }\n return v1Endpoint;\n }\n return endpoint;\n }\n return urlParser.parseUrl(endpoint);\n};\n\nexports.toEndpointV1 = toEndpointV1;\n","'use strict';\n\nvar utilStream = require('@smithy/util-stream');\nvar schema = require('@smithy/core/schema');\nvar serde = require('@smithy/core/serde');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\n\nconst collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return utilStream.Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return utilStream.Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return utilStream.Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n\nfunction extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nclass SerdeContext {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n\nclass HttpProtocol extends SerdeContext {\n options;\n compositeErrorRegistry;\n constructor(options) {\n super();\n this.options = options;\n this.compositeErrorRegistry = schema.TypeRegistry.for(options.defaultNamespace);\n for (const etr of options.errorTypeRegistries ?? []) {\n this.compositeErrorRegistry.copyFrom(etr);\n }\n }\n getRequestType() {\n return protocolHttp.HttpRequest;\n }\n getResponseType() {\n return protocolHttp.HttpResponse;\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n if (this.getPayloadCodec()) {\n this.getPayloadCodec().setSerdeContext(serdeContext);\n }\n }\n updateServiceEndpoint(request, endpoint) {\n if (\"url\" in endpoint) {\n request.protocol = endpoint.url.protocol;\n request.hostname = endpoint.url.hostname;\n request.port = endpoint.url.port ? Number(endpoint.url.port) : undefined;\n request.path = endpoint.url.pathname;\n request.fragment = endpoint.url.hash || void 0;\n request.username = endpoint.url.username || void 0;\n request.password = endpoint.url.password || void 0;\n if (!request.query) {\n request.query = {};\n }\n for (const [k, v] of endpoint.url.searchParams.entries()) {\n request.query[k] = v;\n }\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name].join(\", \");\n }\n }\n return request;\n }\n else {\n request.protocol = endpoint.protocol;\n request.hostname = endpoint.hostname;\n request.port = endpoint.port ? Number(endpoint.port) : undefined;\n request.path = endpoint.path;\n request.query = {\n ...endpoint.query,\n };\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name];\n }\n }\n return request;\n }\n }\n setHostPrefix(request, operationSchema, input) {\n if (this.serdeContext?.disableHostPrefix) {\n return;\n }\n const inputNs = schema.NormalizedSchema.of(operationSchema.input);\n const opTraits = schema.translateTraits(operationSchema.traits ?? {});\n if (opTraits.endpoint) {\n let hostPrefix = opTraits.endpoint?.[0];\n if (typeof hostPrefix === \"string\") {\n for (const [name, member] of inputNs.structIterator()) {\n if (!member.getMergedTraits().hostLabel) {\n continue;\n }\n const replacement = input[name];\n if (typeof replacement !== \"string\") {\n throw new Error(`@smithy/core/schema - ${name} in input must be a string as hostLabel.`);\n }\n hostPrefix = hostPrefix.replace(`{${name}}`, replacement);\n }\n request.hostname = hostPrefix + request.hostname;\n }\n }\n }\n deserializeMetadata(output) {\n return {\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n };\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.serializeEventStream({\n eventStream,\n requestSchema,\n initialRequest,\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.deserializeEventStream({\n response,\n responseSchema,\n initialResponseContainer,\n });\n }\n async loadEventStreamCapability() {\n const { EventStreamSerde } = await import('@smithy/core/event-streams');\n return new EventStreamSerde({\n marshaller: this.getEventStreamMarshaller(),\n serializer: this.serializer,\n deserializer: this.deserializer,\n serdeContext: this.serdeContext,\n defaultContentType: this.getDefaultContentType(),\n });\n }\n getDefaultContentType() {\n throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);\n }\n async deserializeHttpMessage(schema, context, response, arg4, arg5) {\n return [];\n }\n getEventStreamMarshaller() {\n const context = this.serdeContext;\n if (!context.eventStreamMarshaller) {\n throw new Error(\"@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext.\");\n }\n return context.eventStreamMarshaller;\n }\n}\n\nclass HttpBindingProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const input = _input && typeof _input === \"object\" ? _input : {};\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const payloadMemberNames = [];\n const payloadMemberSchemas = [];\n let hasNonHttpBindingMember = false;\n let payload;\n const request = new protocolHttp.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n const opTraits = schema.translateTraits(operationSchema.traits);\n if (opTraits.http) {\n request.method = opTraits.http[0];\n const [path, search] = opTraits.http[1].split(\"?\");\n if (request.path == \"/\") {\n request.path = path;\n }\n else {\n request.path += path;\n }\n const traitSearchParams = new URLSearchParams(search ?? \"\");\n for (const [key, value] of traitSearchParams) {\n query[key] = value;\n }\n }\n }\n for (const [memberName, memberNs] of ns.structIterator()) {\n const memberTraits = memberNs.getMergedTraits() ?? {};\n const inputMemberValue = input[memberName];\n if (inputMemberValue == null && !memberNs.isIdempotencyToken()) {\n if (memberTraits.httpLabel) {\n if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) {\n throw new Error(`No value provided for input HTTP label: ${memberName}.`);\n }\n }\n continue;\n }\n if (memberTraits.httpPayload) {\n const isStreaming = memberNs.isStreaming();\n if (isStreaming) {\n const isEventStream = memberNs.isStructSchema();\n if (isEventStream) {\n if (input[memberName]) {\n payload = await this.serializeEventStream({\n eventStream: input[memberName],\n requestSchema: ns,\n });\n }\n }\n else {\n payload = inputMemberValue;\n }\n }\n else {\n serializer.write(memberNs, inputMemberValue);\n payload = serializer.flush();\n }\n }\n else if (memberTraits.httpLabel) {\n serializer.write(memberNs, inputMemberValue);\n const replacement = serializer.flush();\n if (request.path.includes(`{${memberName}+}`)) {\n request.path = request.path.replace(`{${memberName}+}`, replacement.split(\"/\").map(extendedEncodeURIComponent).join(\"/\"));\n }\n else if (request.path.includes(`{${memberName}}`)) {\n request.path = request.path.replace(`{${memberName}}`, extendedEncodeURIComponent(replacement));\n }\n }\n else if (memberTraits.httpHeader) {\n serializer.write(memberNs, inputMemberValue);\n headers[memberTraits.httpHeader.toLowerCase()] = String(serializer.flush());\n }\n else if (typeof memberTraits.httpPrefixHeaders === \"string\") {\n for (const key in inputMemberValue) {\n const val = inputMemberValue[key];\n const amalgam = memberTraits.httpPrefixHeaders + key;\n serializer.write([memberNs.getValueSchema(), { httpHeader: amalgam }], val);\n headers[amalgam.toLowerCase()] = serializer.flush();\n }\n }\n else if (memberTraits.httpQuery || memberTraits.httpQueryParams) {\n this.serializeQuery(memberNs, inputMemberValue, query);\n }\n else {\n hasNonHttpBindingMember = true;\n payloadMemberNames.push(memberName);\n payloadMemberSchemas.push(memberNs);\n }\n }\n if (hasNonHttpBindingMember && input) {\n const [namespace, name] = (ns.getName(true) ?? \"#Unknown\").split(\"#\");\n const requiredMembers = ns.getSchema()[6];\n const payloadSchema = [\n 3,\n namespace,\n name,\n ns.getMergedTraits(),\n payloadMemberNames,\n payloadMemberSchemas,\n undefined,\n ];\n if (requiredMembers) {\n payloadSchema[6] = requiredMembers;\n }\n else {\n payloadSchema.pop();\n }\n serializer.write(payloadSchema, input);\n payload = serializer.flush();\n }\n request.headers = headers;\n request.query = query;\n request.body = payload;\n return request;\n }\n serializeQuery(ns, data, query) {\n const serializer = this.serializer;\n const traits = ns.getMergedTraits();\n if (traits.httpQueryParams) {\n for (const key in data) {\n if (!(key in query)) {\n const val = data[key];\n const valueSchema = ns.getValueSchema();\n Object.assign(valueSchema.getMergedTraits(), {\n ...traits,\n httpQuery: key,\n httpQueryParams: undefined,\n });\n this.serializeQuery(valueSchema, val, query);\n }\n }\n return;\n }\n if (ns.isListSchema()) {\n const sparse = !!ns.getMergedTraits().sparse;\n const buffer = [];\n for (const item of data) {\n serializer.write([ns.getValueSchema(), traits], item);\n const serializable = serializer.flush();\n if (sparse || serializable !== undefined) {\n buffer.push(serializable);\n }\n }\n query[traits.httpQuery] = buffer;\n }\n else {\n serializer.write([ns, traits], data);\n query[traits.httpQuery] = serializer.flush();\n }\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - HTTP Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const nonHttpBindingMembers = await this.deserializeHttpMessage(ns, context, response, dataObject);\n if (nonHttpBindingMembers.length) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n const dataFromBody = await deserializer.read(ns, bytes);\n for (const member of nonHttpBindingMembers) {\n if (dataFromBody[member] != null) {\n dataObject[member] = dataFromBody[member];\n }\n }\n }\n }\n else if (nonHttpBindingMembers.discardResponseBody) {\n await collectBody(response.body, context);\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n async deserializeHttpMessage(schema$1, context, response, arg4, arg5) {\n let dataObject;\n if (arg4 instanceof Set) {\n dataObject = arg5;\n }\n else {\n dataObject = arg4;\n }\n let discardResponseBody = true;\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(schema$1);\n const nonHttpBindingMembers = [];\n for (const [memberName, memberSchema] of ns.structIterator()) {\n const memberTraits = memberSchema.getMemberTraits();\n if (memberTraits.httpPayload) {\n discardResponseBody = false;\n const isStreaming = memberSchema.isStreaming();\n if (isStreaming) {\n const isEventStream = memberSchema.isStructSchema();\n if (isEventStream) {\n dataObject[memberName] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n });\n }\n else {\n dataObject[memberName] = utilStream.sdkStreamMixin(response.body);\n }\n }\n else if (response.body) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n dataObject[memberName] = await deserializer.read(memberSchema, bytes);\n }\n }\n }\n else if (memberTraits.httpHeader) {\n const key = String(memberTraits.httpHeader).toLowerCase();\n const value = response.headers[key];\n if (null != value) {\n if (memberSchema.isListSchema()) {\n const headerListValueSchema = memberSchema.getValueSchema();\n headerListValueSchema.getMergedTraits().httpHeader = key;\n let sections;\n if (headerListValueSchema.isTimestampSchema() &&\n headerListValueSchema.getSchema() === 4) {\n sections = serde.splitEvery(value, \",\", 2);\n }\n else {\n sections = serde.splitHeader(value);\n }\n const list = [];\n for (const section of sections) {\n list.push(await deserializer.read(headerListValueSchema, section.trim()));\n }\n dataObject[memberName] = list;\n }\n else {\n dataObject[memberName] = await deserializer.read(memberSchema, value);\n }\n }\n }\n else if (memberTraits.httpPrefixHeaders !== undefined) {\n dataObject[memberName] = {};\n for (const header in response.headers) {\n if (header.startsWith(memberTraits.httpPrefixHeaders)) {\n const value = response.headers[header];\n const valueSchema = memberSchema.getValueSchema();\n valueSchema.getMergedTraits().httpHeader = header;\n dataObject[memberName][header.slice(memberTraits.httpPrefixHeaders.length)] = await deserializer.read(valueSchema, value);\n }\n }\n }\n else if (memberTraits.httpResponseCode) {\n dataObject[memberName] = response.statusCode;\n }\n else {\n nonHttpBindingMembers.push(memberName);\n }\n }\n nonHttpBindingMembers.discardResponseBody = discardResponseBody;\n return nonHttpBindingMembers;\n }\n}\n\nclass RpcProtocol extends HttpProtocol {\n async serializeRequest(operationSchema, _input, context) {\n const serializer = this.serializer;\n const query = {};\n const headers = {};\n const endpoint = await context.endpoint();\n const ns = schema.NormalizedSchema.of(operationSchema?.input);\n const schema$1 = ns.getSchema();\n let payload;\n const input = _input && typeof _input === \"object\" ? _input : {};\n const request = new protocolHttp.HttpRequest({\n protocol: \"\",\n hostname: \"\",\n port: undefined,\n path: \"/\",\n fragment: undefined,\n query: query,\n headers: headers,\n body: undefined,\n });\n if (endpoint) {\n this.updateServiceEndpoint(request, endpoint);\n this.setHostPrefix(request, operationSchema, input);\n }\n if (input) {\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n if (input[eventStreamMember]) {\n const initialRequest = {};\n for (const [memberName, memberSchema] of ns.structIterator()) {\n if (memberName !== eventStreamMember && input[memberName]) {\n serializer.write(memberSchema, input[memberName]);\n initialRequest[memberName] = serializer.flush();\n }\n }\n payload = await this.serializeEventStream({\n eventStream: input[eventStreamMember],\n requestSchema: ns,\n initialRequest,\n });\n }\n }\n else {\n serializer.write(schema$1, input);\n payload = serializer.flush();\n }\n }\n request.headers = Object.assign(request.headers, headers);\n request.query = query;\n request.body = payload;\n request.method = \"POST\";\n return request;\n }\n async deserializeResponse(operationSchema, context, response) {\n const deserializer = this.deserializer;\n const ns = schema.NormalizedSchema.of(operationSchema.output);\n const dataObject = {};\n if (response.statusCode >= 300) {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(15, bytes));\n }\n await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response));\n throw new Error(\"@smithy/core/protocols - RPC Protocol error handler failed to throw.\");\n }\n for (const header in response.headers) {\n const value = response.headers[header];\n delete response.headers[header];\n response.headers[header.toLowerCase()] = value;\n }\n const eventStreamMember = ns.getEventStreamMember();\n if (eventStreamMember) {\n dataObject[eventStreamMember] = await this.deserializeEventStream({\n response,\n responseSchema: ns,\n initialResponseContainer: dataObject,\n });\n }\n else {\n const bytes = await collectBody(response.body, context);\n if (bytes.byteLength > 0) {\n Object.assign(dataObject, await deserializer.read(ns, bytes));\n }\n }\n dataObject.$metadata = this.deserializeMetadata(response);\n return dataObject;\n }\n}\n\nconst resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue == null || labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n\nfunction requestBuilder(input, context) {\n return new RequestBuilder(input, context);\n}\nclass RequestBuilder {\n input;\n context;\n query = {};\n method = \"\";\n headers = {};\n path = \"\";\n body = null;\n hostname = \"\";\n resolvePathStack = [];\n constructor(input, context) {\n this.input = input;\n this.context = context;\n }\n async build() {\n const { hostname, protocol = \"https\", port, path: basePath } = await this.context.endpoint();\n this.path = basePath;\n for (const resolvePath of this.resolvePathStack) {\n resolvePath(this.path);\n }\n return new protocolHttp.HttpRequest({\n protocol,\n hostname: this.hostname || hostname,\n port,\n method: this.method,\n path: this.path,\n query: this.query,\n body: this.body,\n headers: this.headers,\n });\n }\n hn(hostname) {\n this.hostname = hostname;\n return this;\n }\n bp(uriLabel) {\n this.resolvePathStack.push((basePath) => {\n this.path = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + uriLabel;\n });\n return this;\n }\n p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n this.resolvePathStack.push((path) => {\n this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);\n });\n return this;\n }\n h(headers) {\n this.headers = headers;\n return this;\n }\n q(query) {\n this.query = query;\n return this;\n }\n b(body) {\n this.body = body;\n return this;\n }\n m(method) {\n this.method = method;\n return this;\n }\n}\n\nfunction determineTimestampFormat(ns, settings) {\n if (settings.timestampFormat.useTrait) {\n if (ns.isTimestampSchema() &&\n (ns.getSchema() === 5 ||\n ns.getSchema() === 6 ||\n ns.getSchema() === 7)) {\n return ns.getSchema();\n }\n }\n const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits();\n const bindingFormat = settings.httpBindings\n ? typeof httpPrefixHeaders === \"string\" || Boolean(httpHeader)\n ? 6\n : Boolean(httpQuery) || Boolean(httpLabel)\n ? 5\n : undefined\n : undefined;\n return bindingFormat ?? settings.timestampFormat.default;\n}\n\nclass FromStringShapeDeserializer extends SerdeContext {\n settings;\n constructor(settings) {\n super();\n this.settings = settings;\n }\n read(_schema, data) {\n const ns = schema.NormalizedSchema.of(_schema);\n if (ns.isListSchema()) {\n return serde.splitHeader(data).map((item) => this.read(ns.getValueSchema(), item));\n }\n if (ns.isBlobSchema()) {\n return (this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(data);\n }\n if (ns.isTimestampSchema()) {\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n return serde._parseRfc3339DateTimeWithOffset(data);\n case 6:\n return serde._parseRfc7231DateTime(data);\n case 7:\n return serde._parseEpochTimestamp(data);\n default:\n console.warn(\"Missing timestamp format, parsing value with Date constructor:\", data);\n return new Date(data);\n }\n }\n if (ns.isStringSchema()) {\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = data;\n if (mediaType) {\n if (ns.getMergedTraits().httpHeader) {\n intermediateValue = this.base64ToUtf8(intermediateValue);\n }\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n return intermediateValue;\n }\n }\n if (ns.isNumericSchema()) {\n return Number(data);\n }\n if (ns.isBigIntegerSchema()) {\n return BigInt(data);\n }\n if (ns.isBigDecimalSchema()) {\n return new serde.NumericValue(data, \"bigDecimal\");\n }\n if (ns.isBooleanSchema()) {\n return String(data).toLowerCase() === \"true\";\n }\n return data;\n }\n base64ToUtf8(base64String) {\n return (this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8)((this.serdeContext?.base64Decoder ?? utilBase64.fromBase64)(base64String));\n }\n}\n\nclass HttpInterceptingShapeDeserializer extends SerdeContext {\n codecDeserializer;\n stringDeserializer;\n constructor(codecDeserializer, codecSettings) {\n super();\n this.codecDeserializer = codecDeserializer;\n this.stringDeserializer = new FromStringShapeDeserializer(codecSettings);\n }\n setSerdeContext(serdeContext) {\n this.stringDeserializer.setSerdeContext(serdeContext);\n this.codecDeserializer.setSerdeContext(serdeContext);\n this.serdeContext = serdeContext;\n }\n read(schema$1, data) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n const toString = this.serdeContext?.utf8Encoder ?? utilUtf8.toUtf8;\n if (traits.httpHeader || traits.httpResponseCode) {\n return this.stringDeserializer.read(ns, toString(data));\n }\n if (traits.httpPayload) {\n if (ns.isBlobSchema()) {\n const toBytes = this.serdeContext?.utf8Decoder ?? utilUtf8.fromUtf8;\n if (typeof data === \"string\") {\n return toBytes(data);\n }\n return data;\n }\n else if (ns.isStringSchema()) {\n if (\"byteLength\" in data) {\n return toString(data);\n }\n return data;\n }\n }\n return this.codecDeserializer.read(ns, data);\n }\n}\n\nclass ToStringShapeSerializer extends SerdeContext {\n settings;\n stringBuffer = \"\";\n constructor(settings) {\n super();\n this.settings = settings;\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n switch (typeof value) {\n case \"object\":\n if (value === null) {\n this.stringBuffer = \"null\";\n return;\n }\n if (ns.isTimestampSchema()) {\n if (!(value instanceof Date)) {\n throw new Error(`@smithy/core/protocols - received non-Date value ${value} when schema expected Date in ${ns.getName(true)}`);\n }\n const format = determineTimestampFormat(ns, this.settings);\n switch (format) {\n case 5:\n this.stringBuffer = value.toISOString().replace(\".000Z\", \"Z\");\n break;\n case 6:\n this.stringBuffer = serde.dateToUtcString(value);\n break;\n case 7:\n this.stringBuffer = String(value.getTime() / 1000);\n break;\n default:\n console.warn(\"Missing timestamp format, using epoch seconds\", value);\n this.stringBuffer = String(value.getTime() / 1000);\n }\n return;\n }\n if (ns.isBlobSchema() && \"byteLength\" in value) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(value);\n return;\n }\n if (ns.isListSchema() && Array.isArray(value)) {\n let buffer = \"\";\n for (const item of value) {\n this.write([ns.getValueSchema(), ns.getMergedTraits()], item);\n const headerItem = this.flush();\n const serialized = ns.getValueSchema().isTimestampSchema() ? headerItem : serde.quoteHeader(headerItem);\n if (buffer !== \"\") {\n buffer += \", \";\n }\n buffer += serialized;\n }\n this.stringBuffer = buffer;\n return;\n }\n this.stringBuffer = JSON.stringify(value, null, 2);\n break;\n case \"string\":\n const mediaType = ns.getMergedTraits().mediaType;\n let intermediateValue = value;\n if (mediaType) {\n const isJson = mediaType === \"application/json\" || mediaType.endsWith(\"+json\");\n if (isJson) {\n intermediateValue = serde.LazyJsonString.from(intermediateValue);\n }\n if (ns.getMergedTraits().httpHeader) {\n this.stringBuffer = (this.serdeContext?.base64Encoder ?? utilBase64.toBase64)(intermediateValue.toString());\n return;\n }\n }\n this.stringBuffer = value;\n break;\n default:\n if (ns.isIdempotencyToken()) {\n this.stringBuffer = serde.generateIdempotencyToken();\n }\n else {\n this.stringBuffer = String(value);\n }\n }\n }\n flush() {\n const buffer = this.stringBuffer;\n this.stringBuffer = \"\";\n return buffer;\n }\n}\n\nclass HttpInterceptingShapeSerializer {\n codecSerializer;\n stringSerializer;\n buffer;\n constructor(codecSerializer, codecSettings, stringSerializer = new ToStringShapeSerializer(codecSettings)) {\n this.codecSerializer = codecSerializer;\n this.stringSerializer = stringSerializer;\n }\n setSerdeContext(serdeContext) {\n this.codecSerializer.setSerdeContext(serdeContext);\n this.stringSerializer.setSerdeContext(serdeContext);\n }\n write(schema$1, value) {\n const ns = schema.NormalizedSchema.of(schema$1);\n const traits = ns.getMergedTraits();\n if (traits.httpHeader || traits.httpLabel || traits.httpQuery) {\n this.stringSerializer.write(ns, value);\n this.buffer = this.stringSerializer.flush();\n return;\n }\n return this.codecSerializer.write(ns, value);\n }\n flush() {\n if (this.buffer !== undefined) {\n const buffer = this.buffer;\n this.buffer = undefined;\n return buffer;\n }\n return this.codecSerializer.flush();\n }\n}\n\nexports.FromStringShapeDeserializer = FromStringShapeDeserializer;\nexports.HttpBindingProtocol = HttpBindingProtocol;\nexports.HttpInterceptingShapeDeserializer = HttpInterceptingShapeDeserializer;\nexports.HttpInterceptingShapeSerializer = HttpInterceptingShapeSerializer;\nexports.HttpProtocol = HttpProtocol;\nexports.RequestBuilder = RequestBuilder;\nexports.RpcProtocol = RpcProtocol;\nexports.SerdeContext = SerdeContext;\nexports.ToStringShapeSerializer = ToStringShapeSerializer;\nexports.collectBody = collectBody;\nexports.determineTimestampFormat = determineTimestampFormat;\nexports.extendedEncodeURIComponent = extendedEncodeURIComponent;\nexports.requestBuilder = requestBuilder;\nexports.resolvedPath = resolvedPath;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar endpoints = require('@smithy/core/endpoints');\n\nconst deref = (schemaRef) => {\n if (typeof schemaRef === \"function\") {\n return schemaRef();\n }\n return schemaRef;\n};\n\nconst operation = (namespace, name, traits, input, output) => ({\n name,\n namespace,\n traits,\n input,\n output,\n});\n\nconst schemaDeserializationMiddleware = (config) => (next, context) => async (args) => {\n const { response } = await next(args);\n const { operationSchema } = utilMiddleware.getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n try {\n const parsed = await config.protocol.deserializeResponse(operation(ns, n, t, i, o), {\n ...config,\n ...context,\n }, response);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n try {\n error.message += \"\\n \" + hint;\n }\n catch (e) {\n if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(hint);\n }\n else {\n context.logger?.warn?.(hint);\n }\n }\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n try {\n if (protocolHttp.HttpResponse.isInstance(response)) {\n const { headers = {} } = response;\n const headerEntries = Object.entries(headers);\n error.$metadata = {\n httpStatusCode: response.statusCode,\n requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n };\n }\n }\n catch (e) {\n }\n }\n throw error;\n }\n};\nconst findHeader = (pattern, headers) => {\n return (headers.find(([k]) => {\n return k.match(pattern);\n }) || [void 0, void 0])[1];\n};\n\nconst schemaSerializationMiddleware = (config) => (next, context) => async (args) => {\n const { operationSchema } = utilMiddleware.getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n const endpoint = context.endpointV2\n ? async () => endpoints.toEndpointV1(context.endpointV2)\n : config.endpoint;\n const request = await config.protocol.serializeRequest(operation(ns, n, t, i, o), args.input, {\n ...config,\n ...context,\n endpoint,\n });\n return next({\n ...args,\n request,\n });\n};\n\nconst deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSchemaSerdePlugin(config) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(schemaSerializationMiddleware(config), serializerMiddlewareOption);\n commandStack.add(schemaDeserializationMiddleware(config), deserializerMiddlewareOption);\n config.protocol.setSerdeContext(config);\n },\n };\n}\n\nclass Schema {\n name;\n namespace;\n traits;\n static assign(instance, values) {\n const schema = Object.assign(instance, values);\n return schema;\n }\n static [Symbol.hasInstance](lhs) {\n const isPrototype = this.prototype.isPrototypeOf(lhs);\n if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n const list = lhs;\n return list.symbol === this.symbol;\n }\n return isPrototype;\n }\n getName() {\n return this.namespace + \"#\" + this.name;\n }\n}\n\nclass ListSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/lis\");\n name;\n traits;\n valueSchema;\n symbol = ListSchema.symbol;\n}\nconst list = (namespace, name, traits, valueSchema) => Schema.assign(new ListSchema(), {\n name,\n namespace,\n traits,\n valueSchema,\n});\n\nclass MapSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/map\");\n name;\n traits;\n keySchema;\n valueSchema;\n symbol = MapSchema.symbol;\n}\nconst map = (namespace, name, traits, keySchema, valueSchema) => Schema.assign(new MapSchema(), {\n name,\n namespace,\n traits,\n keySchema,\n valueSchema,\n});\n\nclass OperationSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/ope\");\n name;\n traits;\n input;\n output;\n symbol = OperationSchema.symbol;\n}\nconst op = (namespace, name, traits, input, output) => Schema.assign(new OperationSchema(), {\n name,\n namespace,\n traits,\n input,\n output,\n});\n\nclass StructureSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/str\");\n name;\n traits;\n memberNames;\n memberList;\n symbol = StructureSchema.symbol;\n}\nconst struct = (namespace, name, traits, memberNames, memberList) => Schema.assign(new StructureSchema(), {\n name,\n namespace,\n traits,\n memberNames,\n memberList,\n});\n\nclass ErrorSchema extends StructureSchema {\n static symbol = Symbol.for(\"@smithy/err\");\n ctor;\n symbol = ErrorSchema.symbol;\n}\nconst error = (namespace, name, traits, memberNames, memberList, ctor) => Schema.assign(new ErrorSchema(), {\n name,\n namespace,\n traits,\n memberNames,\n memberList,\n ctor: null,\n});\n\nconst traitsCache = [];\nfunction translateTraits(indicator) {\n if (typeof indicator === \"object\") {\n return indicator;\n }\n indicator = indicator | 0;\n if (traitsCache[indicator]) {\n return traitsCache[indicator];\n }\n const traits = {};\n let i = 0;\n for (const trait of [\n \"httpLabel\",\n \"idempotent\",\n \"idempotencyToken\",\n \"sensitive\",\n \"httpPayload\",\n \"httpResponseCode\",\n \"httpQueryParams\",\n ]) {\n if (((indicator >> i++) & 1) === 1) {\n traits[trait] = 1;\n }\n }\n return (traitsCache[indicator] = traits);\n}\n\nconst anno = {\n it: Symbol.for(\"@smithy/nor-struct-it\"),\n ns: Symbol.for(\"@smithy/ns\"),\n};\nconst simpleSchemaCacheN = [];\nconst simpleSchemaCacheS = {};\nclass NormalizedSchema {\n ref;\n memberName;\n static symbol = Symbol.for(\"@smithy/nor\");\n symbol = NormalizedSchema.symbol;\n name;\n schema;\n _isMemberSchema;\n traits;\n memberTraits;\n normalizedTraits;\n constructor(ref, memberName) {\n this.ref = ref;\n this.memberName = memberName;\n const traitStack = [];\n let _ref = ref;\n let schema = ref;\n this._isMemberSchema = false;\n while (isMemberSchema(_ref)) {\n traitStack.push(_ref[1]);\n _ref = _ref[0];\n schema = deref(_ref);\n this._isMemberSchema = true;\n }\n if (traitStack.length > 0) {\n this.memberTraits = {};\n for (let i = traitStack.length - 1; i >= 0; --i) {\n const traitSet = traitStack[i];\n Object.assign(this.memberTraits, translateTraits(traitSet));\n }\n }\n else {\n this.memberTraits = 0;\n }\n if (schema instanceof NormalizedSchema) {\n const computedMemberTraits = this.memberTraits;\n Object.assign(this, schema);\n this.memberTraits = Object.assign({}, computedMemberTraits, schema.getMemberTraits(), this.getMemberTraits());\n this.normalizedTraits = void 0;\n this.memberName = memberName ?? schema.memberName;\n return;\n }\n this.schema = deref(schema);\n if (isStaticSchema(this.schema)) {\n this.name = `${this.schema[1]}#${this.schema[2]}`;\n this.traits = this.schema[3];\n }\n else {\n this.name = this.memberName ?? String(schema);\n this.traits = 0;\n }\n if (this._isMemberSchema && !memberName) {\n throw new Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(true)} missing member name.`);\n }\n }\n static [Symbol.hasInstance](lhs) {\n const isPrototype = this.prototype.isPrototypeOf(lhs);\n if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n const ns = lhs;\n return ns.symbol === this.symbol;\n }\n return isPrototype;\n }\n static of(ref) {\n const keyAble = typeof ref === \"function\" || (typeof ref === \"object\" && ref !== null);\n if (typeof ref === \"number\") {\n if (simpleSchemaCacheN[ref]) {\n return simpleSchemaCacheN[ref];\n }\n }\n else if (typeof ref === \"string\") {\n if (simpleSchemaCacheS[ref]) {\n return simpleSchemaCacheS[ref];\n }\n }\n else if (keyAble) {\n if (ref[anno.ns]) {\n return ref[anno.ns];\n }\n }\n const sc = deref(ref);\n if (sc instanceof NormalizedSchema) {\n return sc;\n }\n if (isMemberSchema(sc)) {\n const [ns, traits] = sc;\n if (ns instanceof NormalizedSchema) {\n Object.assign(ns.getMergedTraits(), translateTraits(traits));\n return ns;\n }\n throw new Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify(ref, null, 2)}.`);\n }\n const ns = new NormalizedSchema(sc);\n if (keyAble) {\n return (ref[anno.ns] = ns);\n }\n if (typeof sc === \"string\") {\n return (simpleSchemaCacheS[sc] = ns);\n }\n if (typeof sc === \"number\") {\n return (simpleSchemaCacheN[sc] = ns);\n }\n return ns;\n }\n getSchema() {\n const sc = this.schema;\n if (Array.isArray(sc) && sc[0] === 0) {\n return sc[4];\n }\n return sc;\n }\n getName(withNamespace = false) {\n const { name } = this;\n const short = !withNamespace && name && name.includes(\"#\");\n return short ? name.split(\"#\")[1] : name || undefined;\n }\n getMemberName() {\n return this.memberName;\n }\n isMemberSchema() {\n return this._isMemberSchema;\n }\n isListSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 64 && sc < 128\n : sc[0] === 1;\n }\n isMapSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 128 && sc <= 0b1111_1111\n : sc[0] === 2;\n }\n isStructSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n const id = sc[0];\n return (id === 3 ||\n id === -3 ||\n id === 4);\n }\n isUnionSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n return sc[0] === 4;\n }\n isBlobSchema() {\n const sc = this.getSchema();\n return sc === 21 || sc === 42;\n }\n isTimestampSchema() {\n const sc = this.getSchema();\n return (typeof sc === \"number\" &&\n sc >= 4 &&\n sc <= 7);\n }\n isUnitSchema() {\n return this.getSchema() === \"unit\";\n }\n isDocumentSchema() {\n return this.getSchema() === 15;\n }\n isStringSchema() {\n return this.getSchema() === 0;\n }\n isBooleanSchema() {\n return this.getSchema() === 2;\n }\n isNumericSchema() {\n return this.getSchema() === 1;\n }\n isBigIntegerSchema() {\n return this.getSchema() === 17;\n }\n isBigDecimalSchema() {\n return this.getSchema() === 19;\n }\n isStreaming() {\n const { streaming } = this.getMergedTraits();\n return !!streaming || this.getSchema() === 42;\n }\n isIdempotencyToken() {\n return !!this.getMergedTraits().idempotencyToken;\n }\n getMergedTraits() {\n return (this.normalizedTraits ??\n (this.normalizedTraits = {\n ...this.getOwnTraits(),\n ...this.getMemberTraits(),\n }));\n }\n getMemberTraits() {\n return translateTraits(this.memberTraits);\n }\n getOwnTraits() {\n return translateTraits(this.traits);\n }\n getKeySchema() {\n const [isDoc, isMap] = [this.isDocumentSchema(), this.isMapSchema()];\n if (!isDoc && !isMap) {\n throw new Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(true)}`);\n }\n const schema = this.getSchema();\n const memberSchema = isDoc\n ? 15\n : schema[4] ?? 0;\n return member([memberSchema, 0], \"key\");\n }\n getValueSchema() {\n const sc = this.getSchema();\n const [isDoc, isMap, isList] = [this.isDocumentSchema(), this.isMapSchema(), this.isListSchema()];\n const memberSchema = typeof sc === \"number\"\n ? 0b0011_1111 & sc\n : sc && typeof sc === \"object\" && (isMap || isList)\n ? sc[3 + sc[0]]\n : isDoc\n ? 15\n : void 0;\n if (memberSchema != null) {\n return member([memberSchema, 0], isMap ? \"value\" : \"member\");\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no value member.`);\n }\n getMemberSchema(memberName) {\n const struct = this.getSchema();\n if (this.isStructSchema() && struct[4].includes(memberName)) {\n const i = struct[4].indexOf(memberName);\n const memberSchema = struct[5][i];\n return member(isMemberSchema(memberSchema) ? memberSchema : [memberSchema, 0], memberName);\n }\n if (this.isDocumentSchema()) {\n return member([15, 0], memberName);\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no member=${memberName}.`);\n }\n getMemberSchemas() {\n const buffer = {};\n try {\n for (const [k, v] of this.structIterator()) {\n buffer[k] = v;\n }\n }\n catch (ignored) { }\n return buffer;\n }\n getEventStreamMember() {\n if (this.isStructSchema()) {\n for (const [memberName, memberSchema] of this.structIterator()) {\n if (memberSchema.isStreaming() && memberSchema.isStructSchema()) {\n return memberName;\n }\n }\n }\n return \"\";\n }\n *structIterator() {\n if (this.isUnitSchema()) {\n return;\n }\n if (!this.isStructSchema()) {\n throw new Error(\"@smithy/core/schema - cannot iterate non-struct schema.\");\n }\n const struct = this.getSchema();\n const z = struct[4].length;\n let it = struct[anno.it];\n if (it && z === it.length) {\n yield* it;\n return;\n }\n it = Array(z);\n for (let i = 0; i < z; ++i) {\n const k = struct[4][i];\n const v = member([struct[5][i], 0], k);\n yield (it[i] = [k, v]);\n }\n struct[anno.it] = it;\n }\n}\nfunction member(memberSchema, memberName) {\n if (memberSchema instanceof NormalizedSchema) {\n return Object.assign(memberSchema, {\n memberName,\n _isMemberSchema: true,\n });\n }\n const internalCtorAccess = NormalizedSchema;\n return new internalCtorAccess(memberSchema, memberName);\n}\nconst isMemberSchema = (sc) => Array.isArray(sc) && sc.length === 2;\nconst isStaticSchema = (sc) => Array.isArray(sc) && sc.length >= 5;\n\nclass SimpleSchema extends Schema {\n static symbol = Symbol.for(\"@smithy/sim\");\n name;\n schemaRef;\n traits;\n symbol = SimpleSchema.symbol;\n}\nconst sim = (namespace, name, schemaRef, traits) => Schema.assign(new SimpleSchema(), {\n name,\n namespace,\n traits,\n schemaRef,\n});\nconst simAdapter = (namespace, name, traits, schemaRef) => Schema.assign(new SimpleSchema(), {\n name,\n namespace,\n traits,\n schemaRef,\n});\n\nconst SCHEMA = {\n BLOB: 0b0001_0101,\n STREAMING_BLOB: 0b0010_1010,\n BOOLEAN: 0b0000_0010,\n STRING: 0b0000_0000,\n NUMERIC: 0b0000_0001,\n BIG_INTEGER: 0b0001_0001,\n BIG_DECIMAL: 0b0001_0011,\n DOCUMENT: 0b0000_1111,\n TIMESTAMP_DEFAULT: 0b0000_0100,\n TIMESTAMP_DATE_TIME: 0b0000_0101,\n TIMESTAMP_HTTP_DATE: 0b0000_0110,\n TIMESTAMP_EPOCH_SECONDS: 0b0000_0111,\n LIST_MODIFIER: 0b0100_0000,\n MAP_MODIFIER: 0b1000_0000,\n};\n\nclass TypeRegistry {\n namespace;\n schemas;\n exceptions;\n static registries = new Map();\n constructor(namespace, schemas = new Map(), exceptions = new Map()) {\n this.namespace = namespace;\n this.schemas = schemas;\n this.exceptions = exceptions;\n }\n static for(namespace) {\n if (!TypeRegistry.registries.has(namespace)) {\n TypeRegistry.registries.set(namespace, new TypeRegistry(namespace));\n }\n return TypeRegistry.registries.get(namespace);\n }\n copyFrom(other) {\n const { schemas, exceptions } = this;\n for (const [k, v] of other.schemas) {\n if (!schemas.has(k)) {\n schemas.set(k, v);\n }\n }\n for (const [k, v] of other.exceptions) {\n if (!exceptions.has(k)) {\n exceptions.set(k, v);\n }\n }\n }\n register(shapeId, schema) {\n const qualifiedName = this.normalizeShapeId(shapeId);\n for (const r of [this, TypeRegistry.for(qualifiedName.split(\"#\")[0])]) {\n r.schemas.set(qualifiedName, schema);\n }\n }\n getSchema(shapeId) {\n const id = this.normalizeShapeId(shapeId);\n if (!this.schemas.has(id)) {\n throw new Error(`@smithy/core/schema - schema not found for ${id}`);\n }\n return this.schemas.get(id);\n }\n registerError(es, ctor) {\n const $error = es;\n const ns = $error[1];\n for (const r of [this, TypeRegistry.for(ns)]) {\n r.schemas.set(ns + \"#\" + $error[2], $error);\n r.exceptions.set($error, ctor);\n }\n }\n getErrorCtor(es) {\n const $error = es;\n if (this.exceptions.has($error)) {\n return this.exceptions.get($error);\n }\n const registry = TypeRegistry.for($error[1]);\n return registry.exceptions.get($error);\n }\n getBaseException() {\n for (const exceptionKey of this.exceptions.keys()) {\n if (Array.isArray(exceptionKey)) {\n const [, ns, name] = exceptionKey;\n const id = ns + \"#\" + name;\n if (id.startsWith(\"smithy.ts.sdk.synthetic.\") && id.endsWith(\"ServiceException\")) {\n return exceptionKey;\n }\n }\n }\n return undefined;\n }\n find(predicate) {\n for (const schema of this.schemas.values()) {\n if (predicate(schema)) {\n return schema;\n }\n }\n return undefined;\n }\n clear() {\n this.schemas.clear();\n this.exceptions.clear();\n }\n normalizeShapeId(shapeId) {\n if (shapeId.includes(\"#\")) {\n return shapeId;\n }\n return this.namespace + \"#\" + shapeId;\n }\n}\n\nexports.ErrorSchema = ErrorSchema;\nexports.ListSchema = ListSchema;\nexports.MapSchema = MapSchema;\nexports.NormalizedSchema = NormalizedSchema;\nexports.OperationSchema = OperationSchema;\nexports.SCHEMA = SCHEMA;\nexports.Schema = Schema;\nexports.SimpleSchema = SimpleSchema;\nexports.StructureSchema = StructureSchema;\nexports.TypeRegistry = TypeRegistry;\nexports.deref = deref;\nexports.deserializerMiddlewareOption = deserializerMiddlewareOption;\nexports.error = error;\nexports.getSchemaSerdePlugin = getSchemaSerdePlugin;\nexports.isStaticSchema = isStaticSchema;\nexports.list = list;\nexports.map = map;\nexports.op = op;\nexports.operation = operation;\nexports.serializerMiddlewareOption = serializerMiddlewareOption;\nexports.sim = sim;\nexports.simAdapter = simAdapter;\nexports.simpleSchemaCacheN = simpleSchemaCacheN;\nexports.simpleSchemaCacheS = simpleSchemaCacheS;\nexports.struct = struct;\nexports.traitsCache = traitsCache;\nexports.translateTraits = translateTraits;\n","'use strict';\n\nvar uuid = require('@smithy/uuid');\n\nconst copyDocumentWithTransform = (source, schemaRef, transform = (_) => _) => source;\n\nconst parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nconst expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nconst expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nconst expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nconst expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nconst expectInt = expectLong;\nconst expectInt32 = (value) => expectSizedInt(value, 32);\nconst expectShort = (value) => expectSizedInt(value, 16);\nconst expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nconst expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nconst expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nconst expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nconst expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = [];\n for (const k in asObject) {\n if (asObject[k] != null) {\n setKeys.push(k);\n }\n }\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nconst strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nconst strictParseFloat = strictParseDouble;\nconst strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nconst limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nconst handleFloat = limitedParseDouble;\nconst limitedParseFloat = limitedParseDouble;\nconst limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nconst strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nconst strictParseInt = strictParseLong;\nconst strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nconst strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nconst strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nconst logger = {\n warn: console.warn,\n};\n\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nfunction dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nconst parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET$1 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nconst parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET$1.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nconst IMF_FIXDATE$1 = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE$1 = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME$1 = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nconst parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE$1.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE$1.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME$1.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nconst parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else if (typeof value === \"object\" && value.tag === 1) {\n valueAsDouble = value.value;\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n\nconst LazyJsonString = function LazyJsonString(val) {\n const str = Object.assign(new String(val), {\n deserializeJSON() {\n return JSON.parse(String(val));\n },\n toString() {\n return String(val);\n },\n toJSON() {\n return String(val);\n },\n });\n return str;\n};\nLazyJsonString.from = (object) => {\n if (object && typeof object === \"object\" && (object instanceof LazyJsonString || \"deserializeJSON\" in object)) {\n return object;\n }\n else if (typeof object === \"string\" || Object.getPrototypeOf(object) === String.prototype) {\n return LazyJsonString(String(object));\n }\n return LazyJsonString(JSON.stringify(object));\n};\nLazyJsonString.fromObject = LazyJsonString.from;\n\nfunction quoteHeader(part) {\n if (part.includes(\",\") || part.includes('\"')) {\n part = `\"${part.replace(/\"/g, '\\\\\"')}\"`;\n }\n return part;\n}\n\nconst ddd = `(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?`;\nconst mmm = `(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)`;\nconst time = `(\\\\d?\\\\d):(\\\\d{2}):(\\\\d{2})(?:\\\\.(\\\\d+))?`;\nconst date = `(\\\\d?\\\\d)`;\nconst year = `(\\\\d{4})`;\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d\\d)-(\\d\\d)[tT](\\d\\d):(\\d\\d):(\\d\\d)(\\.(\\d+))?(([-+]\\d\\d:\\d\\d)|[zZ])$/);\nconst IMF_FIXDATE = new RegExp(`^${ddd}, ${date} ${mmm} ${year} ${time} GMT$`);\nconst RFC_850_DATE = new RegExp(`^${ddd}, ${date}-${mmm}-(\\\\d\\\\d) ${time} GMT$`);\nconst ASC_TIME = new RegExp(`^${ddd} ${mmm} ( [1-9]|\\\\d\\\\d) ${time} ${year}$`);\nconst months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst _parseEpochTimestamp = (value) => {\n if (value == null) {\n return void 0;\n }\n let num = NaN;\n if (typeof value === \"number\") {\n num = value;\n }\n else if (typeof value === \"string\") {\n if (!/^-?\\d*\\.?\\d+$/.test(value)) {\n throw new TypeError(`parseEpochTimestamp - numeric string invalid.`);\n }\n num = Number.parseFloat(value);\n }\n else if (typeof value === \"object\" && value.tag === 1) {\n num = value.value;\n }\n if (isNaN(num) || Math.abs(num) === Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid finite numbers.\");\n }\n return new Date(Math.round(num * 1000));\n};\nconst _parseRfc3339DateTimeWithOffset = (value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC3339 timestamps must be strings\");\n }\n const matches = RFC3339_WITH_OFFSET.exec(value);\n if (!matches) {\n throw new TypeError(`Invalid RFC3339 timestamp format ${value}`);\n }\n const [, yearStr, monthStr, dayStr, hours, minutes, seconds, , ms, offsetStr] = matches;\n range(monthStr, 1, 12);\n range(dayStr, 1, 31);\n range(hours, 0, 23);\n range(minutes, 0, 59);\n range(seconds, 0, 60);\n const date = new Date(Date.UTC(Number(yearStr), Number(monthStr) - 1, Number(dayStr), Number(hours), Number(minutes), Number(seconds), Number(ms) ? Math.round(parseFloat(`0.${ms}`) * 1000) : 0));\n date.setUTCFullYear(Number(yearStr));\n if (offsetStr.toUpperCase() != \"Z\") {\n const [, sign, offsetH, offsetM] = /([+-])(\\d\\d):(\\d\\d)/.exec(offsetStr) || [void 0, \"+\", 0, 0];\n const scalar = sign === \"-\" ? 1 : -1;\n date.setTime(date.getTime() + scalar * (Number(offsetH) * 60 * 60 * 1000 + Number(offsetM) * 60 * 1000));\n }\n return date;\n};\nconst _parseRfc7231DateTime = (value) => {\n if (value == null) {\n return void 0;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC7231 timestamps must be strings.\");\n }\n let day;\n let month;\n let year;\n let hour;\n let minute;\n let second;\n let fraction;\n let matches;\n if ((matches = IMF_FIXDATE.exec(value))) {\n [, day, month, year, hour, minute, second, fraction] = matches;\n }\n else if ((matches = RFC_850_DATE.exec(value))) {\n [, day, month, year, hour, minute, second, fraction] = matches;\n year = (Number(year) + 1900).toString();\n }\n else if ((matches = ASC_TIME.exec(value))) {\n [, month, day, hour, minute, second, fraction, year] = matches;\n }\n if (year && second) {\n const timestamp = Date.UTC(Number(year), months.indexOf(month), Number(day), Number(hour), Number(minute), Number(second), fraction ? Math.round(parseFloat(`0.${fraction}`) * 1000) : 0);\n range(day, 1, 31);\n range(hour, 0, 23);\n range(minute, 0, 59);\n range(second, 0, 60);\n const date = new Date(timestamp);\n date.setUTCFullYear(Number(year));\n return date;\n }\n throw new TypeError(`Invalid RFC7231 date-time value ${value}.`);\n};\nfunction range(v, min, max) {\n const _v = Number(v);\n if (_v < min || _v > max) {\n throw new Error(`Value ${_v} out of range [${min}, ${max}]`);\n }\n}\n\nfunction splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n }\n else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\n\nconst splitHeader = (value) => {\n const z = value.length;\n const values = [];\n let withinQuotes = false;\n let prevChar = undefined;\n let anchor = 0;\n for (let i = 0; i < z; ++i) {\n const char = value[i];\n switch (char) {\n case `\"`:\n if (prevChar !== \"\\\\\") {\n withinQuotes = !withinQuotes;\n }\n break;\n case \",\":\n if (!withinQuotes) {\n values.push(value.slice(anchor, i));\n anchor = i + 1;\n }\n break;\n }\n prevChar = char;\n }\n values.push(value.slice(anchor));\n return values.map((v) => {\n v = v.trim();\n const z = v.length;\n if (z < 2) {\n return v;\n }\n if (v[0] === `\"` && v[z - 1] === `\"`) {\n v = v.slice(1, z - 1);\n }\n return v.replace(/\\\\\"/g, '\"');\n });\n};\n\nconst format = /^-?\\d*(\\.\\d+)?$/;\nclass NumericValue {\n string;\n type;\n constructor(string, type) {\n this.string = string;\n this.type = type;\n if (!format.test(string)) {\n throw new Error(`@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point \".\", and an optional negation prefix \"-\".`);\n }\n }\n toString() {\n return this.string;\n }\n static [Symbol.hasInstance](object) {\n if (!object || typeof object !== \"object\") {\n return false;\n }\n const _nv = object;\n return NumericValue.prototype.isPrototypeOf(object) || (_nv.type === \"bigDecimal\" && format.test(_nv.string));\n }\n}\nfunction nv(input) {\n return new NumericValue(String(input), \"bigDecimal\");\n}\n\nexports.generateIdempotencyToken = uuid.v4;\nexports.LazyJsonString = LazyJsonString;\nexports.NumericValue = NumericValue;\nexports._parseEpochTimestamp = _parseEpochTimestamp;\nexports._parseRfc3339DateTimeWithOffset = _parseRfc3339DateTimeWithOffset;\nexports._parseRfc7231DateTime = _parseRfc7231DateTime;\nexports.copyDocumentWithTransform = copyDocumentWithTransform;\nexports.dateToUtcString = dateToUtcString;\nexports.expectBoolean = expectBoolean;\nexports.expectByte = expectByte;\nexports.expectFloat32 = expectFloat32;\nexports.expectInt = expectInt;\nexports.expectInt32 = expectInt32;\nexports.expectLong = expectLong;\nexports.expectNonNull = expectNonNull;\nexports.expectNumber = expectNumber;\nexports.expectObject = expectObject;\nexports.expectShort = expectShort;\nexports.expectString = expectString;\nexports.expectUnion = expectUnion;\nexports.handleFloat = handleFloat;\nexports.limitedParseDouble = limitedParseDouble;\nexports.limitedParseFloat = limitedParseFloat;\nexports.limitedParseFloat32 = limitedParseFloat32;\nexports.logger = logger;\nexports.nv = nv;\nexports.parseBoolean = parseBoolean;\nexports.parseEpochTimestamp = parseEpochTimestamp;\nexports.parseRfc3339DateTime = parseRfc3339DateTime;\nexports.parseRfc3339DateTimeWithOffset = parseRfc3339DateTimeWithOffset;\nexports.parseRfc7231DateTime = parseRfc7231DateTime;\nexports.quoteHeader = quoteHeader;\nexports.splitEvery = splitEvery;\nexports.splitHeader = splitHeader;\nexports.strictParseByte = strictParseByte;\nexports.strictParseDouble = strictParseDouble;\nexports.strictParseFloat = strictParseFloat;\nexports.strictParseFloat32 = strictParseFloat32;\nexports.strictParseInt = strictParseInt;\nexports.strictParseInt32 = strictParseInt32;\nexports.strictParseLong = strictParseLong;\nexports.strictParseShort = strictParseShort;\n","'use strict';\n\nvar propertyProvider = require('@smithy/property-provider');\nvar url = require('url');\nvar buffer = require('buffer');\nvar http = require('http');\nvar nodeConfigProvider = require('@smithy/node-config-provider');\nvar urlParser = require('@smithy/url-parser');\n\nfunction httpRequest(options) {\n return new Promise((resolve, reject) => {\n const req = http.request({\n method: \"GET\",\n ...options,\n hostname: options.hostname?.replace(/^\\[(.+)\\]$/, \"$1\"),\n });\n req.on(\"error\", (err) => {\n reject(Object.assign(new propertyProvider.ProviderError(\"Unable to connect to instance metadata service\"), err));\n req.destroy();\n });\n req.on(\"timeout\", () => {\n reject(new propertyProvider.ProviderError(\"TimeoutError from instance metadata service\"));\n req.destroy();\n });\n req.on(\"response\", (res) => {\n const { statusCode = 400 } = res;\n if (statusCode < 200 || 300 <= statusCode) {\n reject(Object.assign(new propertyProvider.ProviderError(\"Error response received from instance metadata service\"), { statusCode }));\n req.destroy();\n }\n const chunks = [];\n res.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n res.on(\"end\", () => {\n resolve(buffer.Buffer.concat(chunks));\n req.destroy();\n });\n });\n req.end();\n });\n}\n\nconst isImdsCredentials = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.AccessKeyId === \"string\" &&\n typeof arg.SecretAccessKey === \"string\" &&\n typeof arg.Token === \"string\" &&\n typeof arg.Expiration === \"string\";\nconst fromImdsCredentials = (creds) => ({\n accessKeyId: creds.AccessKeyId,\n secretAccessKey: creds.SecretAccessKey,\n sessionToken: creds.Token,\n expiration: new Date(creds.Expiration),\n ...(creds.AccountId && { accountId: creds.AccountId }),\n});\n\nconst DEFAULT_TIMEOUT = 1000;\nconst DEFAULT_MAX_RETRIES = 0;\nconst providerConfigFromInit = ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT, }) => ({ maxRetries, timeout });\n\nconst retry = (toRetry, maxRetries) => {\n let promise = toRetry();\n for (let i = 0; i < maxRetries; i++) {\n promise = promise.catch(toRetry);\n }\n return promise;\n};\n\nconst ENV_CMDS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nconst ENV_CMDS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nconst ENV_CMDS_AUTH_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromContainerMetadata = (init = {}) => {\n const { timeout, maxRetries } = providerConfigFromInit(init);\n return () => retry(async () => {\n const requestOptions = await getCmdsUri({ logger: init.logger });\n const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));\n if (!isImdsCredentials(credsResponse)) {\n throw new propertyProvider.CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credsResponse);\n }, maxRetries);\n};\nconst requestFromEcsImds = async (timeout, options) => {\n if (process.env[ENV_CMDS_AUTH_TOKEN]) {\n options.headers = {\n ...options.headers,\n Authorization: process.env[ENV_CMDS_AUTH_TOKEN],\n };\n }\n const buffer = await httpRequest({\n ...options,\n timeout,\n });\n return buffer.toString();\n};\nconst CMDS_IP = \"169.254.170.2\";\nconst GREENGRASS_HOSTS = {\n localhost: true,\n \"127.0.0.1\": true,\n};\nconst GREENGRASS_PROTOCOLS = {\n \"http:\": true,\n \"https:\": true,\n};\nconst getCmdsUri = async ({ logger }) => {\n if (process.env[ENV_CMDS_RELATIVE_URI]) {\n return {\n hostname: CMDS_IP,\n path: process.env[ENV_CMDS_RELATIVE_URI],\n };\n }\n if (process.env[ENV_CMDS_FULL_URI]) {\n const parsed = url.parse(process.env[ENV_CMDS_FULL_URI]);\n if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {\n throw new propertyProvider.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {\n tryNextLink: false,\n logger,\n });\n }\n if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {\n throw new propertyProvider.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {\n tryNextLink: false,\n logger,\n });\n }\n return {\n ...parsed,\n port: parsed.port ? parseInt(parsed.port, 10) : undefined,\n };\n }\n throw new propertyProvider.CredentialsProviderError(\"The container metadata credential provider cannot be used unless\" +\n ` the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment` +\n \" variable is set\", {\n tryNextLink: false,\n logger,\n });\n};\n\nclass InstanceMetadataV1FallbackError extends propertyProvider.CredentialsProviderError {\n tryNextLink;\n name = \"InstanceMetadataV1FallbackError\";\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, InstanceMetadataV1FallbackError.prototype);\n }\n}\n\nexports.Endpoint = void 0;\n(function (Endpoint) {\n Endpoint[\"IPv4\"] = \"http://169.254.169.254\";\n Endpoint[\"IPv6\"] = \"http://[fd00:ec2::254]\";\n})(exports.Endpoint || (exports.Endpoint = {}));\n\nconst ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nconst CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nconst ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME],\n default: undefined,\n};\n\nvar EndpointMode;\n(function (EndpointMode) {\n EndpointMode[\"IPv4\"] = \"IPv4\";\n EndpointMode[\"IPv6\"] = \"IPv6\";\n})(EndpointMode || (EndpointMode = {}));\n\nconst ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nconst CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nconst ENDPOINT_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME],\n configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME],\n default: EndpointMode.IPv4,\n};\n\nconst getInstanceMetadataEndpoint = async () => urlParser.parseUrl((await getFromEndpointConfig()) || (await getFromEndpointModeConfig()));\nconst getFromEndpointConfig = async () => nodeConfigProvider.loadConfig(ENDPOINT_CONFIG_OPTIONS)();\nconst getFromEndpointModeConfig = async () => {\n const endpointMode = await nodeConfigProvider.loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS)();\n switch (endpointMode) {\n case EndpointMode.IPv4:\n return exports.Endpoint.IPv4;\n case EndpointMode.IPv6:\n return exports.Endpoint.IPv6;\n default:\n throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode)}`);\n }\n};\n\nconst STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;\nconst STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;\nconst STATIC_STABILITY_DOC_URL = \"https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html\";\nconst getExtendedInstanceMetadataCredentials = (credentials, logger) => {\n const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS +\n Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);\n const newExpiration = new Date(Date.now() + refreshInterval * 1000);\n logger.warn(\"Attempting credential expiration extension due to a credential service availability issue. A refresh of these \" +\n `credentials will be attempted after ${new Date(newExpiration)}.\\nFor more information, please visit: ` +\n STATIC_STABILITY_DOC_URL);\n const originalExpiration = credentials.originalExpiration ?? credentials.expiration;\n return {\n ...credentials,\n ...(originalExpiration ? { originalExpiration } : {}),\n expiration: newExpiration,\n };\n};\n\nconst staticStabilityProvider = (provider, options = {}) => {\n const logger = options?.logger || console;\n let pastCredentials;\n return async () => {\n let credentials;\n try {\n credentials = await provider();\n if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {\n credentials = getExtendedInstanceMetadataCredentials(credentials, logger);\n }\n }\n catch (e) {\n if (pastCredentials) {\n logger.warn(\"Credential renew failed: \", e);\n credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger);\n }\n else {\n throw e;\n }\n }\n pastCredentials = credentials;\n return credentials;\n };\n};\n\nconst IMDS_PATH = \"/latest/meta-data/iam/security-credentials/\";\nconst IMDS_TOKEN_PATH = \"/latest/api/token\";\nconst AWS_EC2_METADATA_V1_DISABLED = \"AWS_EC2_METADATA_V1_DISABLED\";\nconst PROFILE_AWS_EC2_METADATA_V1_DISABLED = \"ec2_metadata_v1_disabled\";\nconst X_AWS_EC2_METADATA_TOKEN = \"x-aws-ec2-metadata-token\";\nconst fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger });\nconst getInstanceMetadataProvider = (init = {}) => {\n let disableFetchToken = false;\n const { logger, profile } = init;\n const { timeout, maxRetries } = providerConfigFromInit(init);\n const getCredentials = async (maxRetries, options) => {\n const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null;\n if (isImdsV1Fallback) {\n let fallbackBlockedFromProfile = false;\n let fallbackBlockedFromProcessEnv = false;\n const configValue = await nodeConfigProvider.loadConfig({\n environmentVariableSelector: (env) => {\n const envValue = env[AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProcessEnv = !!envValue && envValue !== \"false\";\n if (envValue === undefined) {\n throw new propertyProvider.CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });\n }\n return fallbackBlockedFromProcessEnv;\n },\n configFileSelector: (profile) => {\n const profileValue = profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProfile = !!profileValue && profileValue !== \"false\";\n return fallbackBlockedFromProfile;\n },\n default: false,\n }, {\n profile,\n })();\n if (init.ec2MetadataV1Disabled || configValue) {\n const causes = [];\n if (init.ec2MetadataV1Disabled)\n causes.push(\"credential provider initialization (runtime option ec2MetadataV1Disabled)\");\n if (fallbackBlockedFromProfile)\n causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);\n if (fallbackBlockedFromProcessEnv)\n causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);\n throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(\", \")}].`);\n }\n }\n const imdsProfile = (await retry(async () => {\n let profile;\n try {\n profile = await getProfile(options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return profile;\n }, maxRetries)).trim();\n return retry(async () => {\n let creds;\n try {\n creds = await getCredentialsFromProfile(imdsProfile, options, init);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return creds;\n }, maxRetries);\n };\n return async () => {\n const endpoint = await getInstanceMetadataEndpoint();\n if (disableFetchToken) {\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (no token fetch)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n else {\n let token;\n try {\n token = (await getMetadataToken({ ...endpoint, timeout })).toString();\n }\n catch (error) {\n if (error?.statusCode === 400) {\n throw Object.assign(error, {\n message: \"EC2 Metadata token request returned error\",\n });\n }\n else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n disableFetchToken = true;\n }\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (initial)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n return getCredentials(maxRetries, {\n ...endpoint,\n headers: {\n [X_AWS_EC2_METADATA_TOKEN]: token,\n },\n timeout,\n });\n }\n };\n};\nconst getMetadataToken = async (options) => httpRequest({\n ...options,\n path: IMDS_TOKEN_PATH,\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\",\n },\n});\nconst getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString();\nconst getCredentialsFromProfile = async (profile, options, init) => {\n const credentialsResponse = JSON.parse((await httpRequest({\n ...options,\n path: IMDS_PATH + profile,\n })).toString());\n if (!isImdsCredentials(credentialsResponse)) {\n throw new propertyProvider.CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credentialsResponse);\n};\n\nexports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES;\nexports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;\nexports.ENV_CMDS_AUTH_TOKEN = ENV_CMDS_AUTH_TOKEN;\nexports.ENV_CMDS_FULL_URI = ENV_CMDS_FULL_URI;\nexports.ENV_CMDS_RELATIVE_URI = ENV_CMDS_RELATIVE_URI;\nexports.fromContainerMetadata = fromContainerMetadata;\nexports.fromInstanceMetadata = fromInstanceMetadata;\nexports.getInstanceMetadataEndpoint = getInstanceMetadataEndpoint;\nexports.httpRequest = httpRequest;\nexports.providerConfigFromInit = providerConfigFromInit;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n EventStreamCodec: () => EventStreamCodec,\n HeaderMarshaller: () => HeaderMarshaller,\n Int64: () => Int64,\n MessageDecoderStream: () => MessageDecoderStream,\n MessageEncoderStream: () => MessageEncoderStream,\n SmithyMessageDecoderStream: () => SmithyMessageDecoderStream,\n SmithyMessageEncoderStream: () => SmithyMessageEncoderStream\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamCodec.ts\nvar import_crc322 = require(\"@aws-crypto/crc32\");\n\n// src/HeaderMarshaller.ts\n\n\n// src/Int64.ts\nvar import_util_hex_encoding = require(\"@smithy/util-hex-encoding\");\nvar Int64 = class _Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static {\n __name(this, \"Int64\");\n }\n static fromNumber(number) {\n if (number > 9223372036854776e3 || number < -9223372036854776e3) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new _Int64(bytes);\n }\n /**\n * Called implicitly by infix arithmetic operators.\n */\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n return parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n};\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 255;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n__name(negate, \"negate\");\n\n// src/HeaderMarshaller.ts\nvar HeaderMarshaller = class {\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n static {\n __name(this, \"HeaderMarshaller\");\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]);\n case \"byte\":\n return Uint8Array.from([2 /* byte */, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3 /* short */);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4 /* integer */);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5 /* long */;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6 /* byteArray */);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7 /* string */);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8 /* timestamp */;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9 /* uuid */;\n uuidBytes.set((0, import_util_hex_encoding.fromHex)(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength))\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf())\n };\n position += 8;\n break;\n case 9 /* uuid */:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(0, 4))}-${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(4, 6))}-${(0, import_util_hex_encoding.toHex)(\n uuidBytes.subarray(6, 8)\n )}-${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(8, 10))}-${(0, import_util_hex_encoding.toHex)(uuidBytes.subarray(10))}`\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n};\nvar BOOLEAN_TAG = \"boolean\";\nvar BYTE_TAG = \"byte\";\nvar SHORT_TAG = \"short\";\nvar INT_TAG = \"integer\";\nvar LONG_TAG = \"long\";\nvar BINARY_TAG = \"binary\";\nvar STRING_TAG = \"string\";\nvar TIMESTAMP_TAG = \"timestamp\";\nvar UUID_TAG = \"uuid\";\nvar UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n\n// src/splitMessage.ts\nvar import_crc32 = require(\"@aws-crypto/crc32\");\nvar PRELUDE_MEMBER_LENGTH = 4;\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nvar CHECKSUM_LENGTH = 4;\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nfunction splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new import_crc32.Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(\n `The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`\n );\n }\n checksummer.update(\n new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH))\n );\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(\n `The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`\n );\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(\n buffer,\n byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength,\n messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)\n )\n };\n}\n__name(splitMessage, \"splitMessage\");\n\n// src/EventStreamCodec.ts\nvar EventStreamCodec = class {\n static {\n __name(this, \"EventStreamCodec\");\n }\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n }\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n }\n };\n }\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message.\n */\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new import_crc322.Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n /**\n * Convert a binary event stream message into a JavaScript object with an\n * opaque, binary body and tagged, parsed headers.\n */\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message header.\n */\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n};\n\n// src/MessageDecoderStream.ts\nvar MessageDecoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"MessageDecoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n};\n\n// src/MessageEncoderStream.ts\nvar MessageEncoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"MessageEncoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n};\n\n// src/SmithyMessageDecoderStream.ts\nvar SmithyMessageDecoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"SmithyMessageDecoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === void 0)\n continue;\n yield deserialized;\n }\n }\n};\n\n// src/SmithyMessageEncoderStream.ts\nvar SmithyMessageEncoderStream = class {\n constructor(options) {\n this.options = options;\n }\n static {\n __name(this, \"SmithyMessageEncoderStream\");\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n};\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EventStreamCodec,\n HeaderMarshaller,\n Int64,\n MessageDecoderStream,\n MessageEncoderStream,\n SmithyMessageDecoderStream,\n SmithyMessageEncoderStream\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n resolveEventStreamSerdeConfig: () => resolveEventStreamSerdeConfig\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamSerdeConfig.ts\nvar resolveEventStreamSerdeConfig = /* @__PURE__ */ __name((input) => Object.assign(input, {\n eventStreamMarshaller: input.eventStreamSerdeProvider(input)\n}), \"resolveEventStreamSerdeConfig\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n resolveEventStreamSerdeConfig\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n EventStreamMarshaller: () => EventStreamMarshaller,\n eventStreamSerdeProvider: () => eventStreamSerdeProvider\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamMarshaller.ts\nvar import_eventstream_serde_universal = require(\"@smithy/eventstream-serde-universal\");\nvar import_stream = require(\"stream\");\n\n// src/utils.ts\nasync function* readabletoIterable(readStream) {\n let streamEnded = false;\n let generationEnded = false;\n const records = new Array();\n readStream.on(\"error\", (err) => {\n if (!streamEnded) {\n streamEnded = true;\n }\n if (err) {\n throw err;\n }\n });\n readStream.on(\"data\", (data) => {\n records.push(data);\n });\n readStream.on(\"end\", () => {\n streamEnded = true;\n });\n while (!generationEnded) {\n const value = await new Promise((resolve) => setTimeout(() => resolve(records.shift()), 0));\n if (value) {\n yield value;\n }\n generationEnded = streamEnded && records.length === 0;\n }\n}\n__name(readabletoIterable, \"readabletoIterable\");\n\n// src/EventStreamMarshaller.ts\nvar EventStreamMarshaller = class {\n static {\n __name(this, \"EventStreamMarshaller\");\n }\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new import_eventstream_serde_universal.EventStreamMarshaller({\n utf8Decoder,\n utf8Encoder\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = typeof body[Symbol.asyncIterator] === \"function\" ? body : readabletoIterable(body);\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n return import_stream.Readable.from(this.universalMarshaller.serialize(input, serializer));\n }\n};\n\n// src/provider.ts\nvar eventStreamSerdeProvider = /* @__PURE__ */ __name((options) => new EventStreamMarshaller(options), \"eventStreamSerdeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EventStreamMarshaller,\n eventStreamSerdeProvider\n});\n\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n EventStreamMarshaller: () => EventStreamMarshaller,\n eventStreamSerdeProvider: () => eventStreamSerdeProvider\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/EventStreamMarshaller.ts\nvar import_eventstream_codec = require(\"@smithy/eventstream-codec\");\n\n// src/getChunkedStream.ts\nfunction getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = /* @__PURE__ */ __name((size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n }, \"allocateMessage\");\n const iterator = /* @__PURE__ */ __name(async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n } else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n } else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(\n 4 - currentMessagePendingLength,\n // remaining bytes to fill the messageLengthBuffer\n bytesRemaining\n // bytes left in chunk\n );\n messageLengthBuffer.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesForTotal),\n currentMessagePendingLength\n );\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(\n currentMessageTotalLength - currentMessagePendingLength,\n // number of bytes left to complete message\n chunkLength - currentOffset\n // number of bytes left in the original chunk\n );\n currentMessage.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesToWrite),\n currentMessagePendingLength\n );\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n }, \"iterator\");\n return {\n [Symbol.asyncIterator]: iterator\n };\n}\n__name(getChunkedStream, \"getChunkedStream\");\n\n// src/getUnmarshalledStream.ts\nfunction getMessageUnmarshaller(deserializer, toUtf8) {\n return async function(message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n } else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n } else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n } else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n__name(getMessageUnmarshaller, \"getMessageUnmarshaller\");\n\n// src/EventStreamMarshaller.ts\nvar EventStreamMarshaller = class {\n static {\n __name(this, \"EventStreamMarshaller\");\n }\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new import_eventstream_codec.EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new import_eventstream_codec.SmithyMessageDecoderStream({\n messageStream: new import_eventstream_codec.MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n // @ts-expect-error Type 'T' is not assignable to type 'Record'\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder)\n });\n }\n serialize(inputStream, serializer) {\n return new import_eventstream_codec.MessageEncoderStream({\n messageStream: new import_eventstream_codec.SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true\n });\n }\n};\n\n// src/provider.ts\nvar eventStreamSerdeProvider = /* @__PURE__ */ __name((options) => new EventStreamMarshaller(options), \"eventStreamSerdeProvider\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n EventStreamMarshaller,\n eventStreamSerdeProvider\n});\n\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar querystringBuilder = require('@smithy/querystring-builder');\nvar utilBase64 = require('@smithy/util-base64');\n\nfunction createRequest(url, requestOptions) {\n return new Request(url, requestOptions);\n}\n\nfunction requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n\nconst keepAliveSupport = {\n supported: undefined,\n};\nclass FetchHttpHandler {\n config;\n configProvider;\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new FetchHttpHandler(instanceOrOptions);\n }\n constructor(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then((opts) => opts || {});\n }\n else {\n this.config = options ?? {};\n this.configProvider = Promise.resolve(this.config);\n }\n if (keepAliveSupport.supported === undefined) {\n keepAliveSupport.supported = Boolean(typeof Request !== \"undefined\" && \"keepalive\" in createRequest(\"https://[::1]\"));\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal, requestTimeout: requestTimeout$1 } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = requestTimeout$1 ?? this.config.requestTimeout;\n const keepAlive = this.config.keepAlive === true;\n const credentials = this.config.credentials;\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n return Promise.reject(abortError);\n }\n let path = request.path;\n const queryString = querystringBuilder.buildQueryString(request.query || {});\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const { port, method } = request;\n const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions = {\n body,\n headers: new Headers(request.headers),\n method: method,\n credentials,\n };\n if (this.config?.cache) {\n requestOptions.cache = this.config.cache;\n }\n if (body) {\n requestOptions.duplex = \"half\";\n }\n if (typeof AbortController !== \"undefined\") {\n requestOptions.signal = abortSignal;\n }\n if (keepAliveSupport.supported) {\n requestOptions.keepalive = keepAlive;\n }\n if (typeof this.config.requestInit === \"function\") {\n Object.assign(requestOptions, this.config.requestInit(request));\n }\n let removeSignalEventListener = () => { };\n const fetchRequest = createRequest(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders = response.headers;\n const transformedHeaders = {};\n for (const pair of fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n const hasReadableStream = response.body != undefined;\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new protocolHttp.HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body,\n }),\n }));\n }\n return {\n response: new protocolHttp.HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise((resolve, reject) => {\n const onAbort = () => {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n removeSignalEventListener = () => signal.removeEventListener(\"abort\", onAbort);\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }));\n }\n return Promise.race(raceOfPromises).finally(removeSignalEventListener);\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n config[key] = value;\n return config;\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n\nconst streamCollector = async (stream) => {\n if ((typeof Blob === \"function\" && stream instanceof Blob) || stream.constructor?.name === \"Blob\") {\n if (Blob.prototype.arrayBuffer !== undefined) {\n return new Uint8Array(await stream.arrayBuffer());\n }\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = utilBase64.fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\");\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n\nexports.FetchHttpHandler = FetchHttpHandler;\nexports.keepAliveSupport = keepAliveSupport;\nexports.streamCollector = streamCollector;\n","'use strict';\n\nvar utilBufferFrom = require('@smithy/util-buffer-from');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar buffer = require('buffer');\nvar crypto = require('crypto');\n\nclass Hash {\n algorithmIdentifier;\n secret;\n hash;\n constructor(algorithmIdentifier, secret) {\n this.algorithmIdentifier = algorithmIdentifier;\n this.secret = secret;\n this.reset();\n }\n update(toHash, encoding) {\n this.hash.update(utilUtf8.toUint8Array(castSourceData(toHash, encoding)));\n }\n digest() {\n return Promise.resolve(this.hash.digest());\n }\n reset() {\n this.hash = this.secret\n ? crypto.createHmac(this.algorithmIdentifier, castSourceData(this.secret))\n : crypto.createHash(this.algorithmIdentifier);\n }\n}\nfunction castSourceData(toCast, encoding) {\n if (buffer.Buffer.isBuffer(toCast)) {\n return toCast;\n }\n if (typeof toCast === \"string\") {\n return utilBufferFrom.fromString(toCast, encoding);\n }\n if (ArrayBuffer.isView(toCast)) {\n return utilBufferFrom.fromArrayBuffer(toCast.buffer, toCast.byteOffset, toCast.byteLength);\n }\n return utilBufferFrom.fromArrayBuffer(toCast);\n}\n\nexports.Hash = Hash;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n fileStreamHasher: () => fileStreamHasher,\n readableStreamHasher: () => readableStreamHasher\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/fileStreamHasher.ts\nvar import_fs = require(\"fs\");\n\n// src/HashCalculator.ts\nvar import_util_utf8 = require(\"@smithy/util-utf8\");\nvar import_stream = require(\"stream\");\nvar HashCalculator = class extends import_stream.Writable {\n constructor(hash, options) {\n super(options);\n this.hash = hash;\n }\n static {\n __name(this, \"HashCalculator\");\n }\n _write(chunk, encoding, callback) {\n try {\n this.hash.update((0, import_util_utf8.toUint8Array)(chunk));\n } catch (err) {\n return callback(err);\n }\n callback();\n }\n};\n\n// src/fileStreamHasher.ts\nvar fileStreamHasher = /* @__PURE__ */ __name((hashCtor, fileStream) => new Promise((resolve, reject) => {\n if (!isReadStream(fileStream)) {\n reject(new Error(\"Unable to calculate hash for non-file streams.\"));\n return;\n }\n const fileStreamTee = (0, import_fs.createReadStream)(fileStream.path, {\n start: fileStream.start,\n end: fileStream.end\n });\n const hash = new hashCtor();\n const hashCalculator = new HashCalculator(hash);\n fileStreamTee.pipe(hashCalculator);\n fileStreamTee.on(\"error\", (err) => {\n hashCalculator.end();\n reject(err);\n });\n hashCalculator.on(\"error\", reject);\n hashCalculator.on(\"finish\", function() {\n hash.digest().then(resolve).catch(reject);\n });\n}), \"fileStreamHasher\");\nvar isReadStream = /* @__PURE__ */ __name((stream) => typeof stream.path === \"string\", \"isReadStream\");\n\n// src/readableStreamHasher.ts\nvar readableStreamHasher = /* @__PURE__ */ __name((hashCtor, readableStream) => {\n if (readableStream.readableFlowing !== null) {\n throw new Error(\"Unable to calculate hash for flowing readable stream\");\n }\n const hash = new hashCtor();\n const hashCalculator = new HashCalculator(hash);\n readableStream.pipe(hashCalculator);\n return new Promise((resolve, reject) => {\n readableStream.on(\"error\", (err) => {\n hashCalculator.end();\n reject(err);\n });\n hashCalculator.on(\"error\", reject);\n hashCalculator.on(\"finish\", () => {\n hash.digest().then(resolve).catch(reject);\n });\n });\n}, \"readableStreamHasher\");\n// Annotate the CommonJS export names for ESM import in node:\n\n0 && (module.exports = {\n fileStreamHasher,\n readableStreamHasher\n});\n\n","'use strict';\n\nconst isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n\nexports.isArrayBuffer = isArrayBuffer;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\n\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nconst contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nconst getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n\nexports.contentLengthMiddleware = contentLengthMiddleware;\nexports.contentLengthMiddlewareOptions = contentLengthMiddlewareOptions;\nexports.getContentLengthPlugin = getContentLengthPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointFromConfig = void 0;\nconst node_config_provider_1 = require(\"@smithy/node-config-provider\");\nconst getEndpointUrlConfig_1 = require(\"./getEndpointUrlConfig\");\nconst getEndpointFromConfig = async (serviceId) => (0, node_config_provider_1.loadConfig)((0, getEndpointUrlConfig_1.getEndpointUrlConfig)(serviceId ?? \"\"))();\nexports.getEndpointFromConfig = getEndpointFromConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointUrlConfig = void 0;\nconst shared_ini_file_loader_1 = require(\"@smithy/shared-ini-file-loader\");\nconst ENV_ENDPOINT_URL = \"AWS_ENDPOINT_URL\";\nconst CONFIG_ENDPOINT_URL = \"endpoint_url\";\nconst getEndpointUrlConfig = (serviceId) => ({\n environmentVariableSelector: (env) => {\n const serviceSuffixParts = serviceId.split(\" \").map((w) => w.toUpperCase());\n const serviceEndpointUrl = env[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join(\"_\")];\n if (serviceEndpointUrl)\n return serviceEndpointUrl;\n const endpointUrl = env[ENV_ENDPOINT_URL];\n if (endpointUrl)\n return endpointUrl;\n return undefined;\n },\n configFileSelector: (profile, config) => {\n if (config && profile.services) {\n const servicesSection = config[[\"services\", profile.services].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)];\n if (servicesSection) {\n const servicePrefixParts = serviceId.split(\" \").map((w) => w.toLowerCase());\n const endpointUrl = servicesSection[[servicePrefixParts.join(\"_\"), CONFIG_ENDPOINT_URL].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)];\n if (endpointUrl)\n return endpointUrl;\n }\n }\n const endpointUrl = profile[CONFIG_ENDPOINT_URL];\n if (endpointUrl)\n return endpointUrl;\n return undefined;\n },\n default: undefined,\n});\nexports.getEndpointUrlConfig = getEndpointUrlConfig;\n","'use strict';\n\nvar core = require('@smithy/core');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar getEndpointFromConfig = require('./adaptors/getEndpointFromConfig');\nvar urlParser = require('@smithy/url-parser');\nvar middlewareSerde = require('@smithy/middleware-serde');\n\nconst resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nconst isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nconst isArnBucketName = (bucketName) => {\n const [arn, partition, service, , , bucket] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = Boolean(isArn && partition && service && bucket);\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return isValidArn;\n};\n\nconst createConfigValueProvider = (configKey, canonicalEndpointParamKey, config, isClientContextParam = false) => {\n const configProvider = async () => {\n let configValue;\n if (isClientContextParam) {\n const clientContextParams = config.clientContextParams;\n const nestedValue = clientContextParams?.[configKey];\n configValue = nestedValue ?? config[configKey] ?? config[canonicalEndpointParamKey];\n }\n else {\n configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n }\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"credentialScope\" || canonicalEndpointParamKey === \"CredentialScope\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.credentialScope ?? credentials?.CredentialScope;\n return configValue;\n };\n }\n if (configKey === \"accountId\" || canonicalEndpointParamKey === \"AccountId\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.accountId ?? credentials?.AccountId;\n return configValue;\n };\n }\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n if (config.isCustomEndpoint === false) {\n return undefined;\n }\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n\nconst toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n const v1Endpoint = urlParser.parseUrl(endpoint.url);\n if (endpoint.headers) {\n v1Endpoint.headers = {};\n for (const [name, values] of Object.entries(endpoint.headers)) {\n v1Endpoint.headers[name.toLowerCase()] = values.join(\", \");\n }\n }\n return v1Endpoint;\n }\n return endpoint;\n }\n return urlParser.parseUrl(endpoint);\n};\n\nconst getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.isCustomEndpoint) {\n let endpointFromConfig;\n if (clientConfig.serviceConfiguredEndpoint) {\n endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n }\n else {\n endpointFromConfig = await getEndpointFromConfig.getEndpointFromConfig(clientConfig.serviceId);\n }\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\n clientConfig.isCustomEndpoint = true;\n }\n }\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n if (clientConfig.isCustomEndpoint && clientConfig.endpoint) {\n const customEndpoint = await clientConfig.endpoint();\n if (customEndpoint?.headers) {\n endpoint.headers ??= {};\n for (const [name, value] of Object.entries(customEndpoint.headers)) {\n endpoint.headers[name] = Array.isArray(value) ? value : [value];\n }\n }\n }\n return endpoint;\n};\nconst resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig, instruction.type !== \"builtInParams\")();\n break;\n case \"operationContextParams\":\n endpointParams[name] = instruction.get(commandInput);\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n\nconst endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n if (config.isCustomEndpoint) {\n core.setFeature(context, \"ENDPOINT_OVERRIDE\", \"N\");\n }\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n const smithyContext = utilMiddleware.getSmithyContext(context);\n const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption;\n if (httpAuthOption) {\n httpAuthOption.signingProperties = Object.assign(httpAuthOption.signingProperties || {}, {\n signing_region: authScheme.signingRegion,\n signingRegion: authScheme.signingRegion,\n signing_service: authScheme.signingName,\n signingName: authScheme.signingName,\n signingRegionSet: authScheme.signingRegionSet,\n }, authScheme.properties);\n }\n }\n return next({\n ...args,\n });\n };\n};\n\nconst endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: middlewareSerde.serializerMiddlewareOption.name,\n};\nconst getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n\nconst resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await utilMiddleware.normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n const resolvedConfig = Object.assign(input, {\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: utilMiddleware.normalizeProvider(useDualstackEndpoint ?? false),\n useFipsEndpoint: utilMiddleware.normalizeProvider(useFipsEndpoint ?? false),\n });\n let configuredEndpointPromise = undefined;\n resolvedConfig.serviceConfiguredEndpoint = async () => {\n if (input.serviceId && !configuredEndpointPromise) {\n configuredEndpointPromise = getEndpointFromConfig.getEndpointFromConfig(input.serviceId);\n }\n return configuredEndpointPromise;\n };\n return resolvedConfig;\n};\n\nconst resolveEndpointRequiredConfig = (input) => {\n const { endpoint } = input;\n if (endpoint === undefined) {\n input.endpoint = async () => {\n throw new Error(\"@smithy/middleware-endpoint: (default endpointRuleSet) endpoint is not set - you must configure an endpoint.\");\n };\n }\n return input;\n};\n\nexports.endpointMiddleware = endpointMiddleware;\nexports.endpointMiddlewareOptions = endpointMiddlewareOptions;\nexports.getEndpointFromInstructions = getEndpointFromInstructions;\nexports.getEndpointPlugin = getEndpointPlugin;\nexports.resolveEndpointConfig = resolveEndpointConfig;\nexports.resolveEndpointRequiredConfig = resolveEndpointRequiredConfig;\nexports.resolveParams = resolveParams;\nexports.toEndpointV1 = toEndpointV1;\n","'use strict';\n\nvar utilRetry = require('@smithy/util-retry');\nvar protocolHttp = require('@smithy/protocol-http');\nvar serviceErrorClassification = require('@smithy/service-error-classification');\nvar uuid = require('@smithy/uuid');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar smithyClient = require('@smithy/smithy-client');\nvar isStreamingPayload = require('./isStreamingPayload/isStreamingPayload');\nvar serde = require('@smithy/core/serde');\n\nconst asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n\nconst getDefaultRetryQuota = (initialRetryTokens, options) => {\n const MAX_CAPACITY = initialRetryTokens;\n const noRetryIncrement = utilRetry.NO_RETRY_INCREMENT;\n const retryCost = utilRetry.RETRY_COST;\n const timeoutRetryCost = utilRetry.TIMEOUT_RETRY_COST;\n let availableCapacity = initialRetryTokens;\n const getCapacityAmount = (error) => (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost);\n const hasRetryTokens = (error) => getCapacityAmount(error) <= availableCapacity;\n const retrieveRetryTokens = (error) => {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n const releaseRetryTokens = (capacityReleaseAmount) => {\n availableCapacity += capacityReleaseAmount ?? noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens,\n });\n};\n\nconst defaultDelayDecider = (delayBase, attempts) => Math.floor(Math.min(utilRetry.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n\nconst defaultRetryDecider = (error) => {\n if (!error) {\n return false;\n }\n return serviceErrorClassification.isRetryableByTrait(error) || serviceErrorClassification.isClockSkewError(error) || serviceErrorClassification.isThrottlingError(error) || serviceErrorClassification.isTransientError(error);\n};\n\nclass StandardRetryStrategy {\n maxAttemptsProvider;\n retryDecider;\n delayDecider;\n retryQuota;\n mode = utilRetry.RETRY_MODES.STANDARD;\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.retryDecider = options?.retryDecider ?? defaultRetryDecider;\n this.delayDecider = options?.delayDecider ?? defaultDelayDecider;\n this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(utilRetry.INITIAL_RETRY_TOKENS);\n }\n shouldRetry(error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n }\n async getMaxAttempts() {\n let maxAttempts;\n try {\n maxAttempts = await this.maxAttemptsProvider();\n }\n catch (error) {\n maxAttempts = utilRetry.DEFAULT_MAX_ATTEMPTS;\n }\n return maxAttempts;\n }\n async retry(next, args, options) {\n let retryTokenAmount;\n let attempts = 0;\n let totalDelay = 0;\n const maxAttempts = await this.getMaxAttempts();\n const { request } = args;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n request.headers[utilRetry.INVOCATION_ID_HEADER] = uuid.v4();\n }\n while (true) {\n try {\n if (protocolHttp.HttpRequest.isInstance(request)) {\n request.headers[utilRetry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n if (options?.beforeRequest) {\n await options.beforeRequest();\n }\n const { response, output } = await next(args);\n if (options?.afterRequest) {\n options.afterRequest(response);\n }\n this.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return { response, output };\n }\n catch (e) {\n const err = asSdkError(e);\n attempts++;\n if (this.shouldRetry(err, attempts, maxAttempts)) {\n retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\n const delayFromDecider = this.delayDecider(serviceErrorClassification.isThrottlingError(err) ? utilRetry.THROTTLING_RETRY_DELAY_BASE : utilRetry.DEFAULT_RETRY_DELAY_BASE, attempts);\n const delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\n const delay = Math.max(delayFromResponse || 0, delayFromDecider);\n totalDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n continue;\n }\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n }\n }\n }\n}\nconst getDelayFromRetryAfterHeader = (response) => {\n if (!protocolHttp.HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return retryAfterSeconds * 1000;\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n};\n\nclass AdaptiveRetryStrategy extends StandardRetryStrategy {\n rateLimiter;\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter, ...superOptions } = options ?? {};\n super(maxAttemptsProvider, superOptions);\n this.rateLimiter = rateLimiter ?? new utilRetry.DefaultRateLimiter();\n this.mode = utilRetry.RETRY_MODES.ADAPTIVE;\n }\n async retry(next, args) {\n return super.retry(next, args, {\n beforeRequest: async () => {\n return this.rateLimiter.getSendToken();\n },\n afterRequest: (response) => {\n this.rateLimiter.updateClientSendingRate(response);\n },\n });\n }\n}\n\nconst ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nconst CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nconst NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: utilRetry.DEFAULT_MAX_ATTEMPTS,\n};\nconst resolveRetryConfig = (input) => {\n const { retryStrategy, retryMode } = input;\n const maxAttempts = utilMiddleware.normalizeProvider(input.maxAttempts ?? utilRetry.DEFAULT_MAX_ATTEMPTS);\n let controller = retryStrategy\n ? Promise.resolve(retryStrategy)\n : undefined;\n const getDefault = async () => (await utilMiddleware.normalizeProvider(retryMode)()) === utilRetry.RETRY_MODES.ADAPTIVE\n ? new utilRetry.AdaptiveRetryStrategy(maxAttempts)\n : new utilRetry.StandardRetryStrategy(maxAttempts);\n return Object.assign(input, {\n maxAttempts,\n retryStrategy: () => (controller ??= getDefault()),\n });\n};\nconst ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nconst CONFIG_RETRY_MODE = \"retry_mode\";\nconst NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: utilRetry.DEFAULT_RETRY_MODE,\n};\n\nconst omitRetryHeadersMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (protocolHttp.HttpRequest.isInstance(request)) {\n delete request.headers[utilRetry.INVOCATION_ID_HEADER];\n delete request.headers[utilRetry.REQUEST_HEADER];\n }\n return next(args);\n};\nconst omitRetryHeadersMiddlewareOptions = {\n name: \"omitRetryHeadersMiddleware\",\n tags: [\"RETRY\", \"HEADERS\", \"OMIT_RETRY_HEADERS\"],\n relation: \"before\",\n toMiddleware: \"awsAuthMiddleware\",\n override: true,\n};\nconst getOmitRetryHeadersPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions);\n },\n});\n\nfunction parseRetryAfterHeader(response, logger) {\n if (!protocolHttp.HttpResponse.isInstance(response)) {\n return;\n }\n for (const header of Object.keys(response.headers)) {\n const h = header.toLowerCase();\n if (h === \"retry-after\") {\n const retryAfter = response.headers[header];\n let retryAfterSeconds = NaN;\n if (retryAfter.endsWith(\"GMT\")) {\n try {\n const date = serde.parseRfc7231DateTime(retryAfter);\n retryAfterSeconds = (date.getTime() - Date.now()) / 1000;\n }\n catch (e) {\n logger?.trace?.(\"Failed to parse retry-after header\");\n logger?.trace?.(e);\n }\n }\n else if (retryAfter.match(/ GMT, ((\\d+)|(\\d+\\.\\d+))$/)) {\n retryAfterSeconds = Number(retryAfter.match(/ GMT, ([\\d.]+)$/)?.[1]);\n }\n else if (retryAfter.match(/^((\\d+)|(\\d+\\.\\d+))$/)) {\n retryAfterSeconds = Number(retryAfter);\n }\n else if (Date.parse(retryAfter) >= Date.now()) {\n retryAfterSeconds = (Date.parse(retryAfter) - Date.now()) / 1000;\n }\n if (isNaN(retryAfterSeconds)) {\n return;\n }\n return new Date(Date.now() + retryAfterSeconds * 1000);\n }\n else if (h === \"x-amz-retry-after\") {\n const v = response.headers[header];\n const backoffMilliseconds = Number(v);\n if (isNaN(backoffMilliseconds)) {\n logger?.trace?.(`Failed to parse x-amz-retry-after=${v}`);\n return;\n }\n return new Date(Date.now() + backoffMilliseconds);\n }\n }\n}\nfunction getRetryAfterHint(response, logger) {\n return parseRetryAfterHeader(response, logger);\n}\n\nconst retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken((context[\"partition_id\"] ?? \"\") + (context.__retryLongPoll ? \":longpoll\" : \"\"));\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n const isRequest = protocolHttp.HttpRequest.isInstance(request);\n if (isRequest) {\n request.headers[utilRetry.INVOCATION_ID_HEADER] = uuid.v4();\n }\n while (true) {\n try {\n if (isRequest) {\n request.headers[utilRetry.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e, options.logger);\n lastError = asSdkError(e);\n if (isRequest && isStreamingPayload.isStreamingPayload(request)) {\n (context.logger instanceof smithyClient.NoOpLogger ? console : context.logger)?.warn(\"An error was encountered in a non-retryable streaming request.\");\n throw lastError;\n }\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (typeof refreshError.$backoff === \"number\") {\n await cooldown(refreshError.$backoff);\n }\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await cooldown(delay);\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode) {\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n }\n return retryStrategy.retry(next, args);\n }\n};\nconst cooldown = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error, logger) => {\n const errorInfo = {\n error,\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = parseRetryAfterHeader(error.$response, logger);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if (serviceErrorClassification.isThrottlingError(error))\n return \"THROTTLING\";\n if (serviceErrorClassification.isTransientError(error))\n return \"TRANSIENT\";\n if (serviceErrorClassification.isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nconst retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nconst getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\n\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\nexports.CONFIG_MAX_ATTEMPTS = CONFIG_MAX_ATTEMPTS;\nexports.CONFIG_RETRY_MODE = CONFIG_RETRY_MODE;\nexports.ENV_MAX_ATTEMPTS = ENV_MAX_ATTEMPTS;\nexports.ENV_RETRY_MODE = ENV_RETRY_MODE;\nexports.NODE_MAX_ATTEMPT_CONFIG_OPTIONS = NODE_MAX_ATTEMPT_CONFIG_OPTIONS;\nexports.NODE_RETRY_MODE_CONFIG_OPTIONS = NODE_RETRY_MODE_CONFIG_OPTIONS;\nexports.StandardRetryStrategy = StandardRetryStrategy;\nexports.defaultDelayDecider = defaultDelayDecider;\nexports.defaultRetryDecider = defaultRetryDecider;\nexports.getOmitRetryHeadersPlugin = getOmitRetryHeadersPlugin;\nexports.getRetryAfterHint = getRetryAfterHint;\nexports.getRetryPlugin = getRetryPlugin;\nexports.omitRetryHeadersMiddleware = omitRetryHeadersMiddleware;\nexports.omitRetryHeadersMiddlewareOptions = omitRetryHeadersMiddlewareOptions;\nexports.resolveRetryConfig = resolveRetryConfig;\nexports.retryMiddleware = retryMiddleware;\nexports.retryMiddlewareOptions = retryMiddlewareOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isStreamingPayload = void 0;\nconst stream_1 = require(\"stream\");\nconst isStreamingPayload = (request) => request?.body instanceof stream_1.Readable ||\n (typeof ReadableStream !== \"undefined\" && request?.body instanceof ReadableStream);\nexports.isStreamingPayload = isStreamingPayload;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar endpoints = require('@smithy/core/endpoints');\n\nconst deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n try {\n error.message += \"\\n \" + hint;\n }\n catch (e) {\n if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(hint);\n }\n else {\n context.logger?.warn?.(hint);\n }\n }\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n try {\n if (protocolHttp.HttpResponse.isInstance(response)) {\n const { headers = {} } = response;\n const headerEntries = Object.entries(headers);\n error.$metadata = {\n httpStatusCode: response.statusCode,\n requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n };\n }\n }\n catch (e) {\n }\n }\n throw error;\n }\n};\nconst findHeader = (pattern, headers) => {\n return (headers.find(([k]) => {\n return k.match(pattern);\n }) || [void 0, void 0])[1];\n};\n\nconst serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpointConfig = options;\n const endpoint = context.endpointV2\n ? async () => endpoints.toEndpointV1(context.endpointV2)\n : endpointConfig.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n\nconst deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n\nexports.deserializerMiddleware = deserializerMiddleware;\nexports.deserializerMiddlewareOption = deserializerMiddlewareOption;\nexports.getSerdePlugin = getSerdePlugin;\nexports.serializerMiddleware = serializerMiddleware;\nexports.serializerMiddlewareOption = serializerMiddlewareOption;\n","'use strict';\n\nconst getAllAliases = (name, aliases) => {\n const _aliases = [];\n if (name) {\n _aliases.push(name);\n }\n if (aliases) {\n for (const alias of aliases) {\n _aliases.push(alias);\n }\n }\n return _aliases;\n};\nconst getMiddlewareNameWithAliases = (name, aliases) => {\n return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n};\nconst constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n let identifyOnResolve = false;\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const aliases = getAllAliases(entry.name, entry.aliases);\n if (aliases.includes(toRemove)) {\n isRemoved = true;\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n for (const alias of getAllAliases(entry.name, entry.aliases)) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n toStack.identifyOnResolve?.(stack.identifyOnResolve());\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ` +\n `${getMiddlewareNameWithAliases(entry.name, entry.aliases)} ` +\n `middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expandedMiddlewareList) => {\n wholeList.push(...expandedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ` +\n `${toOverride.priority} priority in ${toOverride.step} step cannot ` +\n `be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ` +\n `${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ` +\n `${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} ` +\n `\"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name, aliases: _aliases } = entry;\n if (tags && tags.includes(toRemove)) {\n const aliases = getAllAliases(name, _aliases);\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false));\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n const step = mw.step ??\n mw.relation +\n \" \" +\n mw.toMiddleware;\n return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n });\n },\n identifyOnResolve(toggle) {\n if (typeof toggle === \"boolean\")\n identifyOnResolve = toggle;\n return identifyOnResolve;\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n if (identifyOnResolve) {\n console.log(stack.identify());\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n\nexports.constructStack = constructStack;\n","'use strict';\n\nvar propertyProvider = require('@smithy/property-provider');\nvar sharedIniFileLoader = require('@smithy/shared-ini-file-loader');\n\nfunction getSelectorName(functionString) {\n try {\n const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []));\n constants.delete(\"CONFIG\");\n constants.delete(\"CONFIG_PREFIX_SEPARATOR\");\n constants.delete(\"ENV\");\n return [...constants].join(\", \");\n }\n catch (e) {\n return functionString;\n }\n}\n\nconst fromEnv = (envVarSelector, options) => async () => {\n try {\n const config = envVarSelector(process.env, options);\n if (config === undefined) {\n throw new Error();\n }\n return config;\n }\n catch (e) {\n throw new propertyProvider.CredentialsProviderError(e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, { logger: options?.logger });\n }\n};\n\nconst fromSharedConfigFiles = (configSelector, { preferredFile = \"config\", ...init } = {}) => async () => {\n const profile = sharedIniFileLoader.getProfileName(init);\n const { configFile, credentialsFile } = await sharedIniFileLoader.loadSharedConfigFiles(init);\n const profileFromCredentials = credentialsFile[profile] || {};\n const profileFromConfig = configFile[profile] || {};\n const mergedProfile = preferredFile === \"config\"\n ? { ...profileFromCredentials, ...profileFromConfig }\n : { ...profileFromConfig, ...profileFromCredentials };\n try {\n const cfgFile = preferredFile === \"config\" ? configFile : credentialsFile;\n const configValue = configSelector(mergedProfile, cfgFile);\n if (configValue === undefined) {\n throw new Error();\n }\n return configValue;\n }\n catch (e) {\n throw new propertyProvider.CredentialsProviderError(e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, { logger: init.logger });\n }\n};\n\nconst isFunction = (func) => typeof func === \"function\";\nconst fromStatic = (defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : propertyProvider.fromStatic(defaultValue);\n\nconst loadConfig = ({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => {\n const { signingName, logger } = configuration;\n const envOptions = { signingName, logger };\n return propertyProvider.memoize(propertyProvider.chain(fromEnv(environmentVariableSelector, envOptions), fromSharedConfigFiles(configFileSelector, configuration), fromStatic(defaultValue)));\n};\n\nexports.loadConfig = loadConfig;\n","'use strict';\n\nvar protocolHttp = require('@smithy/protocol-http');\nvar querystringBuilder = require('@smithy/querystring-builder');\nvar node_https = require('node:https');\nvar node_stream = require('node:stream');\nvar http2 = require('node:http2');\n\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n\nconst getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name of Object.keys(headers)) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\n\nconst timing = {\n setTimeout: (cb, ms) => setTimeout(cb, ms),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n};\n\nconst DEFER_EVENT_LISTENER_TIME$2 = 1000;\nconst setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return -1;\n }\n const registerTimeout = (offset) => {\n const timeoutId = timing.setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs - offset);\n const doWithSocket = (socket) => {\n if (socket?.connecting) {\n socket.on(\"connect\", () => {\n timing.clearTimeout(timeoutId);\n });\n }\n else {\n timing.clearTimeout(timeoutId);\n }\n };\n if (request.socket) {\n doWithSocket(request.socket);\n }\n else {\n request.on(\"socket\", doWithSocket);\n }\n };\n if (timeoutInMs < 2000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME$2), DEFER_EVENT_LISTENER_TIME$2);\n};\n\nconst setRequestTimeout = (req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {\n if (timeoutInMs) {\n return timing.setTimeout(() => {\n let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? \"ERROR\" : \"WARN\"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;\n if (throwOnRequestTimeout) {\n const error = Object.assign(new Error(msg), {\n name: \"TimeoutError\",\n code: \"ETIMEDOUT\",\n });\n req.destroy(error);\n reject(error);\n }\n else {\n msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;\n logger?.warn?.(msg);\n }\n }, timeoutInMs);\n }\n return -1;\n};\n\nconst DEFER_EVENT_LISTENER_TIME$1 = 3000;\nconst setSocketKeepAlive = (request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME$1) => {\n if (keepAlive !== true) {\n return -1;\n }\n const registerListener = () => {\n if (request.socket) {\n request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n }\n else {\n request.on(\"socket\", (socket) => {\n socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n });\n }\n };\n if (deferTimeMs === 0) {\n registerListener();\n return 0;\n }\n return timing.setTimeout(registerListener, deferTimeMs);\n};\n\nconst DEFER_EVENT_LISTENER_TIME = 3000;\nconst setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n const registerTimeout = (offset) => {\n const timeout = timeoutInMs - offset;\n const onTimeout = () => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: \"TimeoutError\" }));\n };\n if (request.socket) {\n request.socket.setTimeout(timeout, onTimeout);\n request.on(\"close\", () => request.socket?.removeListener(\"timeout\", onTimeout));\n }\n else {\n request.setTimeout(timeout, onTimeout);\n }\n };\n if (0 < timeoutInMs && timeoutInMs < 6000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n};\n\nconst MIN_WAIT_TIME = 6_000;\nasync function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {\n const headers = request.headers ?? {};\n const expect = headers.Expect || headers.expect;\n let timeoutId = -1;\n let sendBody = true;\n if (!externalAgent && expect === \"100-continue\") {\n sendBody = await Promise.race([\n new Promise((resolve) => {\n timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));\n }),\n new Promise((resolve) => {\n httpRequest.on(\"continue\", () => {\n timing.clearTimeout(timeoutId);\n resolve(true);\n });\n httpRequest.on(\"response\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n httpRequest.on(\"error\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n }),\n ]);\n }\n if (sendBody) {\n writeBody(httpRequest, request.body);\n }\n}\nfunction writeBody(httpRequest, body) {\n if (body instanceof node_stream.Readable) {\n body.pipe(httpRequest);\n return;\n }\n if (body) {\n const isBuffer = Buffer.isBuffer(body);\n const isString = typeof body === \"string\";\n if (isBuffer || isString) {\n if (isBuffer && body.byteLength === 0) {\n httpRequest.end();\n }\n else {\n httpRequest.end(body);\n }\n return;\n }\n const uint8 = body;\n if (typeof uint8 === \"object\" &&\n uint8.buffer &&\n typeof uint8.byteOffset === \"number\" &&\n typeof uint8.byteLength === \"number\") {\n httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));\n return;\n }\n httpRequest.end(Buffer.from(body));\n return;\n }\n httpRequest.end();\n}\n\nconst DEFAULT_REQUEST_TIMEOUT = 0;\nlet hAgent = undefined;\nlet hRequest = undefined;\nclass NodeHttpHandler {\n config;\n configProvider;\n socketWarningTimestamp = 0;\n externalAgent = false;\n metadata = { handlerProtocol: \"http/1.1\" };\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttpHandler(instanceOrOptions);\n }\n static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {\n const { sockets, requests, maxSockets } = agent;\n if (typeof maxSockets !== \"number\" || maxSockets === Infinity) {\n return socketWarningTimestamp;\n }\n const interval = 15_000;\n if (Date.now() - interval < socketWarningTimestamp) {\n return socketWarningTimestamp;\n }\n if (sockets && requests) {\n for (const origin in sockets) {\n const socketsInUse = sockets[origin]?.length ?? 0;\n const requestsEnqueued = requests[origin]?.length ?? 0;\n if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {\n logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.\nSee https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html\nor increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`);\n return Date.now();\n }\n }\n }\n return socketWarningTimestamp;\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n destroy() {\n this.config?.httpAgent?.destroy();\n this.config?.httpsAgent?.destroy();\n }\n async handle(request, { abortSignal, requestTimeout } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const config = this.config;\n const isSSL = request.protocol === \"https:\";\n if (!isSSL && !this.config.httpAgent) {\n this.config.httpAgent = await this.config.httpAgentProvider();\n }\n return new Promise((_resolve, _reject) => {\n let writeRequestBodyPromise = undefined;\n const timeouts = [];\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n timeouts.forEach(timing.clearTimeout);\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n timeouts.forEach(timing.clearTimeout);\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const headers = request.headers ?? {};\n const expectContinue = (headers.Expect ?? headers.expect) === \"100-continue\";\n let agent = isSSL ? config.httpsAgent : config.httpAgent;\n if (expectContinue && !this.externalAgent) {\n agent = new (isSSL ? node_https.Agent : hAgent)({\n keepAlive: false,\n maxSockets: Infinity,\n });\n }\n timeouts.push(timing.setTimeout(() => {\n this.socketWarningTimestamp = NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, config.logger);\n }, config.socketAcquisitionWarningTimeout ?? (config.requestTimeout ?? 2000) + (config.connectionTimeout ?? 1000)));\n const queryString = querystringBuilder.buildQueryString(request.query || {});\n let auth = undefined;\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}`;\n }\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let hostname = request.hostname ?? \"\";\n if (hostname[0] === \"[\" && hostname.endsWith(\"]\")) {\n hostname = request.hostname.slice(1, -1);\n }\n else {\n hostname = request.hostname;\n }\n const nodeHttpsOptions = {\n headers: request.headers,\n host: hostname,\n method: request.method,\n path,\n port: request.port,\n agent,\n auth,\n };\n const requestFunc = isSSL ? node_https.request : hRequest;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new protocolHttp.HttpResponse({\n statusCode: res.statusCode || -1,\n reason: res.statusMessage,\n headers: getTransformedHeaders(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n if (abortSignal) {\n const onAbort = () => {\n req.destroy();\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;\n timeouts.push(setConnectionTimeout(req, reject, config.connectionTimeout));\n timeouts.push(setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, config.logger ?? console));\n timeouts.push(setSocketTimeout(req, reject, config.socketTimeout));\n const httpAgent = nodeHttpsOptions.agent;\n if (typeof httpAgent === \"object\" && \"keepAlive\" in httpAgent) {\n timeouts.push(setSocketKeepAlive(req, {\n keepAlive: httpAgent.keepAlive,\n keepAliveMsecs: httpAgent.keepAliveMsecs,\n }));\n }\n writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout, this.externalAgent).catch((e) => {\n timeouts.forEach(timing.clearTimeout);\n return _reject(e);\n });\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n resolveDefaultConfig(options) {\n const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger, } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n requestTimeout,\n socketTimeout,\n socketAcquisitionWarningTimeout,\n throwOnRequestTimeout,\n httpAgentProvider: async () => {\n const { Agent, request } = await import('node:http');\n hRequest = request;\n hAgent = Agent;\n if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpAgent;\n }\n return new hAgent({ keepAlive, maxSockets, ...httpAgent });\n },\n httpsAgent: (() => {\n if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpsAgent;\n }\n return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent });\n })(),\n logger,\n };\n }\n}\n\nconst ids = new Uint16Array(1);\nclass ClientHttp2SessionRef {\n id = ids[0]++;\n total = 0;\n max = 0;\n session;\n refs = 0;\n constructor(session) {\n session.unref();\n this.session = session;\n }\n retain() {\n if (this.session.destroyed) {\n throw new Error(\"@smithy/node-http-handler - cannot acquire reference to destroyed session.\");\n }\n this.refs += 1;\n this.total += 1;\n this.max = Math.max(this.refs, this.max);\n this.session.ref();\n }\n free() {\n if (this.session.destroyed) {\n return;\n }\n this.refs -= 1;\n if (this.refs === 0) {\n this.session.unref();\n }\n if (this.refs < 0) {\n throw new Error(\"@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement.\");\n }\n }\n deref() {\n return this.session;\n }\n destroy() {\n this.refs = 0;\n if (!this.session.destroyed) {\n this.session.destroy();\n }\n }\n useCount() {\n return this.refs;\n }\n}\n\nclass NodeHttp2ConnectionPool {\n sessions = [];\n maxConcurrency = 0;\n constructor(sessions) {\n this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session));\n }\n poll() {\n let cleanup = false;\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n cleanup = true;\n continue;\n }\n if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) {\n return session;\n }\n }\n if (cleanup) {\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n this.remove(session);\n }\n }\n }\n }\n offerLast(ref) {\n this.sessions.push(ref);\n }\n remove(ref) {\n const ix = this.sessions.indexOf(ref);\n if (ix > -1) {\n this.sessions.splice(ix, 1);\n }\n }\n [Symbol.iterator]() {\n return this.sessions[Symbol.iterator]();\n }\n setMaxConcurrency(maxConcurrency) {\n this.maxConcurrency = maxConcurrency;\n }\n destroy(ref) {\n this.remove(ref);\n ref.destroy();\n }\n}\n\nclass NodeHttp2ConnectionManager {\n config;\n connectionPools = new Map();\n constructor(config) {\n this.config = config;\n if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {\n throw new RangeError(\"maxConcurrency must be greater than zero.\");\n }\n }\n lease(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const pool = this.getPool(url);\n if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) {\n const available = pool.poll();\n if (available) {\n available.retain();\n return available;\n }\n }\n const ref = new ClientHttp2SessionRef(http2.connect(url));\n const session = ref.deref();\n if (this.config.maxConcurrency) {\n session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {\n if (err) {\n throw new Error(\"Fail to set maxConcurrentStreams to \" +\n this.config.maxConcurrency +\n \"when creating new session for \" +\n requestContext.destination.toString());\n }\n });\n }\n const destroySessionCb = () => {\n session.destroy();\n this.removeFromPool(url, ref);\n };\n session.on(\"goaway\", destroySessionCb);\n session.on(\"error\", destroySessionCb);\n session.on(\"frameError\", destroySessionCb);\n session.on(\"close\", () => this.removeFromPool(url, ref));\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb);\n }\n pool.offerLast(ref);\n ref.retain();\n return ref;\n }\n release(_requestContext, ref) {\n ref.free();\n }\n createIsolatedSession(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const ref = new ClientHttp2SessionRef(http2.connect(url));\n const session = ref.deref();\n session.settings({ maxConcurrentStreams: 1 });\n const destroySession = () => {\n session.destroy();\n };\n session.on(\"goaway\", destroySession);\n session.on(\"error\", destroySession);\n session.on(\"frameError\", destroySession);\n session.on(\"close\", destroySession);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, destroySession);\n }\n ref.retain();\n return ref;\n }\n destroy() {\n for (const [url, connectionPool] of this.connectionPools) {\n for (const session of [...connectionPool]) {\n session.destroy();\n }\n this.connectionPools.delete(url);\n }\n }\n setMaxConcurrentStreams(maxConcurrentStreams) {\n if (maxConcurrentStreams && maxConcurrentStreams <= 0) {\n throw new RangeError(\"maxConcurrentStreams must be greater than zero.\");\n }\n this.config.maxConcurrency = maxConcurrentStreams;\n for (const pool of this.connectionPools.values()) {\n pool.setMaxConcurrency(maxConcurrentStreams);\n }\n }\n setDisableConcurrentStreams(disableConcurrentStreams) {\n this.config.disableConcurrency = disableConcurrentStreams;\n }\n debug() {\n const pools = {};\n for (const [url, pool] of this.connectionPools) {\n const sessions = [];\n for (const ref of pool) {\n sessions.push({\n id: ref.id,\n active: ref.useCount(),\n maxConcurrent: ref.max,\n totalRequests: ref.total,\n });\n }\n pools[url] = { sessions };\n }\n return pools;\n }\n removeFromPool(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n }\n getPool(url) {\n if (!this.connectionPools.has(url)) {\n const pool = new NodeHttp2ConnectionPool();\n if (this.config.maxConcurrency) {\n pool.setMaxConcurrency(this.config.maxConcurrency);\n }\n this.connectionPools.set(url, pool);\n }\n return this.connectionPools.get(url);\n }\n getUrlString(request) {\n return request.destination.toString();\n }\n}\n\nclass NodeHttp2Handler {\n config;\n configProvider;\n metadata = { handlerProtocol: \"h2\" };\n connectionManager = new NodeHttp2ConnectionManager({});\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttp2Handler(instanceOrOptions);\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((opts) => {\n resolve(opts || {});\n })\n .catch(reject);\n }\n else {\n resolve(options || {});\n }\n });\n }\n destroy() {\n this.connectionManager.destroy();\n }\n async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n const { disableConcurrentStreams, maxConcurrentStreams } = this.config;\n this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);\n if (maxConcurrentStreams) {\n this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams);\n }\n }\n const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;\n const useIsolatedSession = disableConcurrentStreams || isEventStream;\n const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;\n return new Promise((_resolve, _reject) => {\n let fulfilled = false;\n let writeRequestBodyPromise = undefined;\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n fulfilled = true;\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const { hostname, method, port, protocol, query } = request;\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : \"\"}`;\n const requestContext = { destination: new URL(authority) };\n const connectConfig = {\n requestTimeout: this.config?.sessionTimeout,\n isEventStream,\n };\n const ref = useIsolatedSession\n ? this.connectionManager.createIsolatedSession(requestContext, connectConfig)\n : this.connectionManager.lease(requestContext, connectConfig);\n const session = ref.deref();\n const rejectWithDestroy = (err) => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n fulfilled = true;\n reject(err);\n };\n const queryString = querystringBuilder.buildQueryString(query ?? {});\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n const clientHttp2Stream = session.request({\n ...request.headers,\n [http2.constants.HTTP2_HEADER_PATH]: path,\n [http2.constants.HTTP2_HEADER_METHOD]: method,\n });\n if (effectiveRequestTimeout) {\n clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => {\n clientHttp2Stream.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n rejectWithDestroy(timeoutError);\n });\n }\n if (abortSignal) {\n const onAbort = () => {\n clientHttp2Stream.close();\n const abortError = buildAbortError(abortSignal);\n rejectWithDestroy(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n clientHttp2Stream.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n clientHttp2Stream.on(\"frameError\", (type, code, id) => {\n rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n clientHttp2Stream.on(\"error\", rejectWithDestroy);\n clientHttp2Stream.on(\"aborted\", () => {\n rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`));\n });\n clientHttp2Stream.on(\"response\", (headers) => {\n const httpResponse = new protocolHttp.HttpResponse({\n statusCode: headers[\":status\"] ?? -1,\n headers: getTransformedHeaders(headers),\n body: clientHttp2Stream,\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (useIsolatedSession) {\n session.close();\n }\n });\n clientHttp2Stream.on(\"close\", () => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n else {\n this.connectionManager.release(requestContext, ref);\n }\n if (!fulfilled) {\n rejectWithDestroy(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout);\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n\nclass Collector extends node_stream.Writable {\n bufferedBytes = [];\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\n\nconst streamCollector = (stream) => {\n if (isReadableStreamInstance(stream)) {\n return collectReadableStream(stream);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n });\n};\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\nasync function collectReadableStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\n\nexports.DEFAULT_REQUEST_TIMEOUT = DEFAULT_REQUEST_TIMEOUT;\nexports.NodeHttp2Handler = NodeHttp2Handler;\nexports.NodeHttpHandler = NodeHttpHandler;\nexports.streamCollector = streamCollector;\n","'use strict';\n\nclass ProviderError extends Error {\n name = \"ProviderError\";\n tryNextLink;\n constructor(message, options = true) {\n let logger;\n let tryNextLink = true;\n if (typeof options === \"boolean\") {\n logger = undefined;\n tryNextLink = options;\n }\n else if (options != null && typeof options === \"object\") {\n logger = options.logger;\n tryNextLink = options.tryNextLink ?? true;\n }\n super(message);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, ProviderError.prototype);\n logger?.debug?.(`@smithy/property-provider ${tryNextLink ? \"->\" : \"(!)\"} ${message}`);\n }\n static from(error, options = true) {\n return Object.assign(new this(error.message, options), error);\n }\n}\n\nclass CredentialsProviderError extends ProviderError {\n name = \"CredentialsProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\n\nclass TokenProviderError extends ProviderError {\n name = \"TokenProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n\nconst chain = (...providers) => async () => {\n if (providers.length === 0) {\n throw new ProviderError(\"No providers in chain\");\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n const credentials = await provider();\n return credentials;\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nconst fromStatic = (staticValue) => () => Promise.resolve(staticValue);\n\nconst memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n\nexports.CredentialsProviderError = CredentialsProviderError;\nexports.ProviderError = ProviderError;\nexports.TokenProviderError = TokenProviderError;\nexports.chain = chain;\nexports.fromStatic = fromStatic;\nexports.memoize = memoize;\n","'use strict';\n\nvar types = require('@smithy/types');\n\nconst getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n return {\n setHttpHandler(handler) {\n runtimeConfig.httpHandler = handler;\n },\n httpHandler() {\n return runtimeConfig.httpHandler;\n },\n updateHttpClientConfig(key, value) {\n runtimeConfig.httpHandler?.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return runtimeConfig.httpHandler.httpHandlerConfigs();\n },\n };\n};\nconst resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n\nclass Field {\n name;\n kind;\n values;\n constructor({ name, kind = types.FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n\nclass Fields {\n entries = {};\n encoding;\n constructor({ fields = [], encoding = \"utf-8\" }) {\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n\nclass HttpRequest {\n method;\n protocol;\n hostname;\n port;\n path;\n query;\n headers;\n username;\n password;\n fragment;\n body;\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static clone(request) {\n const cloned = new HttpRequest({\n ...request,\n headers: { ...request.headers },\n });\n if (cloned.query) {\n cloned.query = cloneQuery(cloned.query);\n }\n return cloned;\n }\n static isInstance(request) {\n if (!request) {\n return false;\n }\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n return HttpRequest.clone(this);\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n\nclass HttpResponse {\n statusCode;\n reason;\n headers;\n body;\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n\nfunction isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n\nexports.Field = Field;\nexports.Fields = Fields;\nexports.HttpRequest = HttpRequest;\nexports.HttpResponse = HttpResponse;\nexports.getHttpHandlerExtensionConfiguration = getHttpHandlerExtensionConfiguration;\nexports.isValidHostname = isValidHostname;\nexports.resolveHttpHandlerRuntimeConfig = resolveHttpHandlerRuntimeConfig;\n","'use strict';\n\nvar utilUriEscape = require('@smithy/util-uri-escape');\n\nfunction buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = utilUriEscape.escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${utilUriEscape.escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${utilUriEscape.escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n\nexports.buildQueryString = buildQueryString;\n","'use strict';\n\nfunction parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n\nexports.parseQueryString = parseQueryString;\n","'use strict';\n\nconst CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nconst THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nconst TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nconst TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\nconst NODEJS_NETWORK_ERROR_CODES = [\"EHOSTUNREACH\", \"ENETUNREACH\", \"ENOTFOUND\"];\n\nconst isRetryableByTrait = (error) => error?.$retryable !== undefined;\nconst isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nconst isClockSkewCorrectedError = (error) => error.$metadata?.clockSkewCorrected;\nconst isBrowserNetworkError = (error) => {\n const errorMessages = new Set([\n \"Failed to fetch\",\n \"NetworkError when attempting to fetch resource\",\n \"The Internet connection appears to be offline\",\n \"Load failed\",\n \"Network request failed\",\n ]);\n const isValid = error && error instanceof TypeError;\n if (!isValid) {\n return false;\n }\n return errorMessages.has(error.message);\n};\nconst isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nconst isTransientError = (error, depth = 0) => isRetryableByTrait(error) ||\n isClockSkewCorrectedError(error) ||\n TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n NODEJS_NETWORK_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||\n isBrowserNetworkError(error) ||\n isNodeJsHttp2TransientError(error) ||\n (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));\nconst isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\nfunction isNodeJsHttp2TransientError(error) {\n return error.code === \"ERR_HTTP2_STREAM_ERROR\" && error.message.includes(\"NGHTTP2_REFUSED_STREAM\");\n}\n\nexports.isBrowserNetworkError = isBrowserNetworkError;\nexports.isClockSkewCorrectedError = isClockSkewCorrectedError;\nexports.isClockSkewError = isClockSkewError;\nexports.isNodeJsHttp2TransientError = isNodeJsHttp2TransientError;\nexports.isRetryableByTrait = isRetryableByTrait;\nexports.isServerError = isServerError;\nexports.isThrottlingError = isThrottlingError;\nexports.isTransientError = isTransientError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHomeDir = void 0;\nconst os_1 = require(\"os\");\nconst path_1 = require(\"path\");\nconst homeDirCache = {};\nconst getHomeDirCacheKey = () => {\n if (process && process.geteuid) {\n return `${process.geteuid()}`;\n }\n return \"DEFAULT\";\n};\nconst getHomeDir = () => {\n const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env;\n if (HOME)\n return HOME;\n if (USERPROFILE)\n return USERPROFILE;\n if (HOMEPATH)\n return `${HOMEDRIVE}${HOMEPATH}`;\n const homeDirCacheKey = getHomeDirCacheKey();\n if (!homeDirCache[homeDirCacheKey])\n homeDirCache[homeDirCacheKey] = (0, os_1.homedir)();\n return homeDirCache[homeDirCacheKey];\n};\nexports.getHomeDir = getHomeDir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFilepath = void 0;\nconst crypto_1 = require(\"crypto\");\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nconst getSSOTokenFilepath = (id) => {\n const hasher = (0, crypto_1.createHash)(\"sha1\");\n const cacheName = hasher.update(id).digest(\"hex\");\n return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"sso\", \"cache\", `${cacheName}.json`);\n};\nexports.getSSOTokenFilepath = getSSOTokenFilepath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFromFile = exports.tokenIntercept = void 0;\nconst promises_1 = require(\"fs/promises\");\nconst getSSOTokenFilepath_1 = require(\"./getSSOTokenFilepath\");\nexports.tokenIntercept = {};\nconst getSSOTokenFromFile = async (id) => {\n if (exports.tokenIntercept[id]) {\n return exports.tokenIntercept[id];\n }\n const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id);\n const ssoTokenText = await (0, promises_1.readFile)(ssoTokenFilepath, \"utf8\");\n return JSON.parse(ssoTokenText);\n};\nexports.getSSOTokenFromFile = getSSOTokenFromFile;\n","'use strict';\n\nvar getHomeDir = require('./getHomeDir');\nvar getSSOTokenFilepath = require('./getSSOTokenFilepath');\nvar getSSOTokenFromFile = require('./getSSOTokenFromFile');\nvar path = require('path');\nvar types = require('@smithy/types');\nvar readFile = require('./readFile');\n\nconst ENV_PROFILE = \"AWS_PROFILE\";\nconst DEFAULT_PROFILE = \"default\";\nconst getProfileName = (init) => init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE;\n\nconst CONFIG_PREFIX_SEPARATOR = \".\";\n\nconst getConfigData = (data) => Object.entries(data)\n .filter(([key]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n if (indexOfSeparator === -1) {\n return false;\n }\n return Object.values(types.IniSectionType).includes(key.substring(0, indexOfSeparator));\n})\n .reduce((acc, [key, value]) => {\n const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n const updatedKey = key.substring(0, indexOfSeparator) === types.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key;\n acc[updatedKey] = value;\n return acc;\n}, {\n ...(data.default && { default: data.default }),\n});\n\nconst ENV_CONFIG_PATH = \"AWS_CONFIG_FILE\";\nconst getConfigFilepath = () => process.env[ENV_CONFIG_PATH] || path.join(getHomeDir.getHomeDir(), \".aws\", \"config\");\n\nconst ENV_CREDENTIALS_PATH = \"AWS_SHARED_CREDENTIALS_FILE\";\nconst getCredentialsFilepath = () => process.env[ENV_CREDENTIALS_PATH] || path.join(getHomeDir.getHomeDir(), \".aws\", \"credentials\");\n\nconst prefixKeyRegex = /^([\\w-]+)\\s([\"'])?([\\w-@\\+\\.%:/]+)\\2$/;\nconst profileNameBlockList = [\"__proto__\", \"profile __proto__\"];\nconst parseIni = (iniData) => {\n const map = {};\n let currentSection;\n let currentSubSection;\n for (const iniLine of iniData.split(/\\r?\\n/)) {\n const trimmedLine = iniLine.split(/(^|\\s)[;#]/)[0].trim();\n const isSection = trimmedLine[0] === \"[\" && trimmedLine[trimmedLine.length - 1] === \"]\";\n if (isSection) {\n currentSection = undefined;\n currentSubSection = undefined;\n const sectionName = trimmedLine.substring(1, trimmedLine.length - 1);\n const matches = prefixKeyRegex.exec(sectionName);\n if (matches) {\n const [, prefix, , name] = matches;\n if (Object.values(types.IniSectionType).includes(prefix)) {\n currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR);\n }\n }\n else {\n currentSection = sectionName;\n }\n if (profileNameBlockList.includes(sectionName)) {\n throw new Error(`Found invalid profile name \"${sectionName}\"`);\n }\n }\n else if (currentSection) {\n const indexOfEqualsSign = trimmedLine.indexOf(\"=\");\n if (![0, -1].includes(indexOfEqualsSign)) {\n const [name, value] = [\n trimmedLine.substring(0, indexOfEqualsSign).trim(),\n trimmedLine.substring(indexOfEqualsSign + 1).trim(),\n ];\n if (value === \"\") {\n currentSubSection = name;\n }\n else {\n if (currentSubSection && iniLine.trimStart() === iniLine) {\n currentSubSection = undefined;\n }\n map[currentSection] = map[currentSection] || {};\n const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name;\n map[currentSection][key] = value;\n }\n }\n }\n }\n return map;\n};\n\nconst swallowError$1 = () => ({});\nconst loadSharedConfigFiles = async (init = {}) => {\n const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init;\n const homeDir = getHomeDir.getHomeDir();\n const relativeHomeDirPrefix = \"~/\";\n let resolvedFilepath = filepath;\n if (filepath.startsWith(relativeHomeDirPrefix)) {\n resolvedFilepath = path.join(homeDir, filepath.slice(2));\n }\n let resolvedConfigFilepath = configFilepath;\n if (configFilepath.startsWith(relativeHomeDirPrefix)) {\n resolvedConfigFilepath = path.join(homeDir, configFilepath.slice(2));\n }\n const parsedFiles = await Promise.all([\n readFile.readFile(resolvedConfigFilepath, {\n ignoreCache: init.ignoreCache,\n })\n .then(parseIni)\n .then(getConfigData)\n .catch(swallowError$1),\n readFile.readFile(resolvedFilepath, {\n ignoreCache: init.ignoreCache,\n })\n .then(parseIni)\n .catch(swallowError$1),\n ]);\n return {\n configFile: parsedFiles[0],\n credentialsFile: parsedFiles[1],\n };\n};\n\nconst getSsoSessionData = (data) => Object.entries(data)\n .filter(([key]) => key.startsWith(types.IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR))\n .reduce((acc, [key, value]) => ({ ...acc, [key.substring(key.indexOf(CONFIG_PREFIX_SEPARATOR) + 1)]: value }), {});\n\nconst swallowError = () => ({});\nconst loadSsoSessionData = async (init = {}) => readFile.readFile(init.configFilepath ?? getConfigFilepath())\n .then(parseIni)\n .then(getSsoSessionData)\n .catch(swallowError);\n\nconst mergeConfigFiles = (...files) => {\n const merged = {};\n for (const file of files) {\n for (const [key, values] of Object.entries(file)) {\n if (merged[key] !== undefined) {\n Object.assign(merged[key], values);\n }\n else {\n merged[key] = values;\n }\n }\n }\n return merged;\n};\n\nconst parseKnownFiles = async (init) => {\n const parsedFiles = await loadSharedConfigFiles(init);\n return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile);\n};\n\nconst externalDataInterceptor = {\n getFileRecord() {\n return readFile.fileIntercept;\n },\n interceptFile(path, contents) {\n readFile.fileIntercept[path] = Promise.resolve(contents);\n },\n getTokenRecord() {\n return getSSOTokenFromFile.tokenIntercept;\n },\n interceptToken(id, contents) {\n getSSOTokenFromFile.tokenIntercept[id] = contents;\n },\n};\n\nexports.getSSOTokenFromFile = getSSOTokenFromFile.getSSOTokenFromFile;\nexports.readFile = readFile.readFile;\nexports.CONFIG_PREFIX_SEPARATOR = CONFIG_PREFIX_SEPARATOR;\nexports.DEFAULT_PROFILE = DEFAULT_PROFILE;\nexports.ENV_PROFILE = ENV_PROFILE;\nexports.externalDataInterceptor = externalDataInterceptor;\nexports.getProfileName = getProfileName;\nexports.loadSharedConfigFiles = loadSharedConfigFiles;\nexports.loadSsoSessionData = loadSsoSessionData;\nexports.parseKnownFiles = parseKnownFiles;\nObject.prototype.hasOwnProperty.call(getHomeDir, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: getHomeDir['__proto__']\n });\n\nObject.keys(getHomeDir).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = getHomeDir[k];\n});\nObject.prototype.hasOwnProperty.call(getSSOTokenFilepath, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: getSSOTokenFilepath['__proto__']\n });\n\nObject.keys(getSSOTokenFilepath).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = getSSOTokenFilepath[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readFile = exports.fileIntercept = exports.filePromises = void 0;\nconst promises_1 = require(\"node:fs/promises\");\nexports.filePromises = {};\nexports.fileIntercept = {};\nconst readFile = (path, options) => {\n if (exports.fileIntercept[path] !== undefined) {\n return exports.fileIntercept[path];\n }\n if (!exports.filePromises[path] || options?.ignoreCache) {\n exports.filePromises[path] = (0, promises_1.readFile)(path, \"utf8\");\n }\n return exports.filePromises[path];\n};\nexports.readFile = readFile;\n","'use strict';\n\nvar utilHexEncoding = require('@smithy/util-hex-encoding');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar isArrayBuffer = require('@smithy/is-array-buffer');\nvar protocolHttp = require('@smithy/protocol-http');\nvar utilMiddleware = require('@smithy/util-middleware');\nvar utilUriEscape = require('@smithy/util-uri-escape');\n\nconst ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nconst CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nconst AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nconst SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nconst EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nconst SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nconst TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nconst REGION_SET_PARAM = \"X-Amz-Region-Set\";\nconst AUTH_HEADER = \"authorization\";\nconst AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nconst DATE_HEADER = \"date\";\nconst GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nconst SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nconst SHA256_HEADER = \"x-amz-content-sha256\";\nconst TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nconst HOST_HEADER = \"host\";\nconst ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nconst PROXY_HEADER_PATTERN = /^proxy-/;\nconst SEC_HEADER_PATTERN = /^sec-/;\nconst UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nconst ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nconst ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nconst EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nconst UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nconst MAX_CACHE_SIZE = 50;\nconst KEY_TYPE_IDENTIFIER = \"aws4_request\";\nconst MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n\nconst signingKeyCache = {};\nconst cacheQueue = [];\nconst createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nconst getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${utilHexEncoding.toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nconst clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(utilUtf8.toUint8Array(data));\n return hash.digest();\n};\n\nconst getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\n\nconst getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer.isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(utilUtf8.toUint8Array(body));\n return utilHexEncoding.toHex(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n};\n\nclass HeaderFormatter {\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = utilUtf8.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = utilUtf8.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(utilHexEncoding.fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\nclass Int64 {\n bytes;\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9_223_372_036_854_775_807 || number < -9223372036854776e3) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(utilHexEncoding.toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n\nconst hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\n\nconst moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = protocolHttp.HttpRequest.clone(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if ((lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) ||\n options.hoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n\nconst prepareRequest = (request) => {\n request = protocolHttp.HttpRequest.clone(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n\nconst getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query)) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n const encodedKey = utilUriEscape.escapeUri(key);\n keys.push(encodedKey);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[encodedKey] = `${encodedKey}=${utilUriEscape.escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[encodedKey] = value\n .slice(0)\n .reduce((encoded, value) => encoded.concat([`${encodedKey}=${utilUriEscape.escapeUri(value)}`]), [])\n .sort()\n .join(\"&\");\n }\n }\n return keys\n .sort()\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n\nconst iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nconst toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n\nclass SignatureV4Base {\n service;\n regionProvider;\n credentialProvider;\n sha256;\n uriEscapePath;\n applyChecksum;\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = utilMiddleware.normalizeProvider(region);\n this.credentialProvider = utilMiddleware.normalizeProvider(credentials);\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest, algorithmIdentifier) {\n const hash = new this.sha256();\n hash.update(utilUtf8.toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${algorithmIdentifier}\n${longDate}\n${credentialScope}\n${utilHexEncoding.toHex(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if (pathSegment?.length === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n const doubleEncoded = utilUriEscape.escapeUri(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n formatDate(now) {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n }\n getCanonicalHeaderList(headers) {\n return Object.keys(headers).sort().join(\";\");\n }\n}\n\nclass SignatureV4 extends SignatureV4Base {\n headerFormatter = new HeaderFormatter();\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n super({\n applyChecksum,\n credentials,\n region,\n service,\n sha256,\n uriEscapePath,\n });\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, hoistableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = this.formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = this.getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else if (toSign.message) {\n return this.signMessage(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService, eventStreamCredentials, }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = this.formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = utilHexEncoding.toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, {\n signingDate,\n signingRegion: region,\n signingService,\n eventStreamCredentials,\n });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials }) {\n const promise = this.signEvent({\n headers: this.headerFormatter.format(signableMessage.message.headers),\n payload: signableMessage.message.body,\n }, {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature,\n eventStreamCredentials,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials, } = {}) {\n const credentials = eventStreamCredentials ?? (await this.credentialProvider());\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = this.formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(utilUtf8.toUint8Array(stringToSign));\n return utilHexEncoding.toHex(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = this.formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${this.getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest, ALGORITHM_IDENTIFIER);\n const hash = new this.sha256(await keyPromise);\n hash.update(utilUtf8.toUint8Array(stringToSign));\n return utilHexEncoding.toHex(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n}\n\nconst signatureV4aContainer = {\n SignatureV4a: null,\n};\n\nexports.ALGORITHM_IDENTIFIER = ALGORITHM_IDENTIFIER;\nexports.ALGORITHM_IDENTIFIER_V4A = ALGORITHM_IDENTIFIER_V4A;\nexports.ALGORITHM_QUERY_PARAM = ALGORITHM_QUERY_PARAM;\nexports.ALWAYS_UNSIGNABLE_HEADERS = ALWAYS_UNSIGNABLE_HEADERS;\nexports.AMZ_DATE_HEADER = AMZ_DATE_HEADER;\nexports.AMZ_DATE_QUERY_PARAM = AMZ_DATE_QUERY_PARAM;\nexports.AUTH_HEADER = AUTH_HEADER;\nexports.CREDENTIAL_QUERY_PARAM = CREDENTIAL_QUERY_PARAM;\nexports.DATE_HEADER = DATE_HEADER;\nexports.EVENT_ALGORITHM_IDENTIFIER = EVENT_ALGORITHM_IDENTIFIER;\nexports.EXPIRES_QUERY_PARAM = EXPIRES_QUERY_PARAM;\nexports.GENERATED_HEADERS = GENERATED_HEADERS;\nexports.HOST_HEADER = HOST_HEADER;\nexports.KEY_TYPE_IDENTIFIER = KEY_TYPE_IDENTIFIER;\nexports.MAX_CACHE_SIZE = MAX_CACHE_SIZE;\nexports.MAX_PRESIGNED_TTL = MAX_PRESIGNED_TTL;\nexports.PROXY_HEADER_PATTERN = PROXY_HEADER_PATTERN;\nexports.REGION_SET_PARAM = REGION_SET_PARAM;\nexports.SEC_HEADER_PATTERN = SEC_HEADER_PATTERN;\nexports.SHA256_HEADER = SHA256_HEADER;\nexports.SIGNATURE_HEADER = SIGNATURE_HEADER;\nexports.SIGNATURE_QUERY_PARAM = SIGNATURE_QUERY_PARAM;\nexports.SIGNED_HEADERS_QUERY_PARAM = SIGNED_HEADERS_QUERY_PARAM;\nexports.SignatureV4 = SignatureV4;\nexports.SignatureV4Base = SignatureV4Base;\nexports.TOKEN_HEADER = TOKEN_HEADER;\nexports.TOKEN_QUERY_PARAM = TOKEN_QUERY_PARAM;\nexports.UNSIGNABLE_PATTERNS = UNSIGNABLE_PATTERNS;\nexports.UNSIGNED_PAYLOAD = UNSIGNED_PAYLOAD;\nexports.clearCredentialCache = clearCredentialCache;\nexports.createScope = createScope;\nexports.getCanonicalHeaders = getCanonicalHeaders;\nexports.getCanonicalQuery = getCanonicalQuery;\nexports.getPayloadHash = getPayloadHash;\nexports.getSigningKey = getSigningKey;\nexports.hasHeader = hasHeader;\nexports.moveHeadersToQuery = moveHeadersToQuery;\nexports.prepareRequest = prepareRequest;\nexports.signatureV4aContainer = signatureV4aContainer;\n","'use strict';\n\nvar middlewareStack = require('@smithy/middleware-stack');\nvar types = require('@smithy/types');\nvar schema = require('@smithy/core/schema');\nvar serde = require('@smithy/core/serde');\nvar protocols = require('@smithy/core/protocols');\n\nclass Client {\n config;\n middlewareStack = middlewareStack.constructStack();\n initConfig;\n handlers;\n constructor(config) {\n this.config = config;\n const { protocol, protocolSettings } = config;\n if (protocolSettings) {\n if (typeof protocol === \"function\") {\n config.protocol = new protocol(protocolSettings);\n }\n }\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const useHandlerCache = options === undefined && this.config.cacheMiddleware === true;\n let handler;\n if (useHandlerCache) {\n if (!this.handlers) {\n this.handlers = new WeakMap();\n }\n const handlers = this.handlers;\n if (handlers.has(command.constructor)) {\n handler = handlers.get(command.constructor);\n }\n else {\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n handlers.set(command.constructor, handler);\n }\n }\n else {\n delete this.handlers;\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n }\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n this.config?.requestHandler?.destroy?.();\n delete this.handlers;\n }\n}\n\nconst SENSITIVE_STRING$1 = \"***SensitiveInformation***\";\nfunction schemaLogFilter(schema$1, data) {\n if (data == null) {\n return data;\n }\n const ns = schema.NormalizedSchema.of(schema$1);\n if (ns.getMergedTraits().sensitive) {\n return SENSITIVE_STRING$1;\n }\n if (ns.isListSchema()) {\n const isSensitive = !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING$1;\n }\n }\n else if (ns.isMapSchema()) {\n const isSensitive = !!ns.getKeySchema().getMergedTraits().sensitive || !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING$1;\n }\n }\n else if (ns.isStructSchema() && typeof data === \"object\") {\n const object = data;\n const newObject = {};\n for (const [member, memberNs] of ns.structIterator()) {\n if (object[member] != null) {\n newObject[member] = schemaLogFilter(memberNs, object[member]);\n }\n }\n return newObject;\n }\n return data;\n}\n\nclass Command {\n middlewareStack = middlewareStack.constructStack();\n schema;\n static classBuilder() {\n return new ClassBuilder();\n }\n resolveMiddlewareWithContext(clientStack, configuration, options, { middlewareFn, clientName, commandName, inputFilterSensitiveLog, outputFilterSensitiveLog, smithyContext, additionalContext, CommandCtor, }) {\n for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) {\n this.middlewareStack.use(mw);\n }\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog,\n outputFilterSensitiveLog,\n [types.SMITHY_CONTEXT_KEY]: {\n commandInstance: this,\n ...smithyContext,\n },\n ...additionalContext,\n };\n const { requestHandler } = configuration;\n let requestOptions = options ?? {};\n if (smithyContext.eventStream) {\n requestOptions = {\n isEventStream: true,\n ...requestOptions,\n };\n }\n return stack.resolve((request) => requestHandler.handle(request.request, requestOptions), handlerExecutionContext);\n }\n}\nclass ClassBuilder {\n _init = () => { };\n _ep = {};\n _middlewareFn = () => [];\n _commandName = \"\";\n _clientName = \"\";\n _additionalContext = {};\n _smithyContext = {};\n _inputFilterSensitiveLog = undefined;\n _outputFilterSensitiveLog = undefined;\n _serializer = null;\n _deserializer = null;\n _operationSchema;\n init(cb) {\n this._init = cb;\n }\n ep(endpointParameterInstructions) {\n this._ep = endpointParameterInstructions;\n return this;\n }\n m(middlewareSupplier) {\n this._middlewareFn = middlewareSupplier;\n return this;\n }\n s(service, operation, smithyContext = {}) {\n this._smithyContext = {\n service,\n operation,\n ...smithyContext,\n };\n return this;\n }\n c(additionalContext = {}) {\n this._additionalContext = additionalContext;\n return this;\n }\n n(clientName, commandName) {\n this._clientName = clientName;\n this._commandName = commandName;\n return this;\n }\n f(inputFilter = (_) => _, outputFilter = (_) => _) {\n this._inputFilterSensitiveLog = inputFilter;\n this._outputFilterSensitiveLog = outputFilter;\n return this;\n }\n ser(serializer) {\n this._serializer = serializer;\n return this;\n }\n de(deserializer) {\n this._deserializer = deserializer;\n return this;\n }\n sc(operation) {\n this._operationSchema = operation;\n this._smithyContext.operationSchema = operation;\n return this;\n }\n build() {\n const closure = this;\n let CommandRef;\n return (CommandRef = class extends Command {\n input;\n static getEndpointParameterInstructions() {\n return closure._ep;\n }\n constructor(...[input]) {\n super();\n this.input = input ?? {};\n closure._init(this);\n this.schema = closure._operationSchema;\n }\n resolveMiddleware(stack, configuration, options) {\n const op = closure._operationSchema;\n const input = op?.[4] ?? op?.input;\n const output = op?.[5] ?? op?.output;\n return this.resolveMiddlewareWithContext(stack, configuration, options, {\n CommandCtor: CommandRef,\n middlewareFn: closure._middlewareFn,\n clientName: closure._clientName,\n commandName: closure._commandName,\n inputFilterSensitiveLog: closure._inputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, input) : (_) => _),\n outputFilterSensitiveLog: closure._outputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, output) : (_) => _),\n smithyContext: closure._smithyContext,\n additionalContext: closure._additionalContext,\n });\n }\n serialize = closure._serializer;\n deserialize = closure._deserializer;\n });\n }\n}\n\nconst SENSITIVE_STRING = \"***SensitiveInformation***\";\n\nconst createAggregatedClient = (commands, Client, options) => {\n for (const [command, CommandCtor] of Object.entries(commands)) {\n const methodImpl = async function (args, optionsOrCb, cb) {\n const command = new CommandCtor(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expected http options but got ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n };\n const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, \"\");\n Client.prototype[methodName] = methodImpl;\n }\n const { paginators = {}, waiters = {} } = options ?? {};\n for (const [paginatorName, paginatorFn] of Object.entries(paginators)) {\n if (Client.prototype[paginatorName] === void 0) {\n Client.prototype[paginatorName] = function (commandInput = {}, paginationConfiguration, ...rest) {\n return paginatorFn({\n ...paginationConfiguration,\n client: this,\n }, commandInput, ...rest);\n };\n }\n }\n for (const [waiterName, waiterFn] of Object.entries(waiters)) {\n if (Client.prototype[waiterName] === void 0) {\n Client.prototype[waiterName] = async function (commandInput = {}, waiterConfiguration, ...rest) {\n let config = waiterConfiguration;\n if (typeof waiterConfiguration === \"number\") {\n config = {\n maxWaitTime: waiterConfiguration,\n };\n }\n return waiterFn({\n ...config,\n client: this,\n }, commandInput, ...rest);\n };\n }\n }\n};\n\nclass ServiceException extends Error {\n $fault;\n $response;\n $retryable;\n $metadata;\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n static isInstance(value) {\n if (!value)\n return false;\n const candidate = value;\n return (ServiceException.prototype.isPrototypeOf(candidate) ||\n (Boolean(candidate.$fault) &&\n Boolean(candidate.$metadata) &&\n (candidate.$fault === \"client\" || candidate.$fault === \"server\")));\n }\n static [Symbol.hasInstance](instance) {\n if (!instance)\n return false;\n const candidate = instance;\n if (this === ServiceException) {\n return ServiceException.isInstance(instance);\n }\n if (ServiceException.isInstance(instance)) {\n if (candidate.name && this.name) {\n return this.prototype.isPrototypeOf(instance) || candidate.name === this.name;\n }\n return this.prototype.isPrototypeOf(instance);\n }\n return false;\n }\n}\nconst decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n\nconst throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nconst withBaseException = (ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n\nconst loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n\nlet warningEmitted = false;\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 16) {\n warningEmitted = true;\n }\n};\n\nconst knownAlgorithms = Object.values(types.AlgorithmId);\nconst getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n for (const id in types.AlgorithmId) {\n const algorithmId = types.AlgorithmId[id];\n if (runtimeConfig[algorithmId] === undefined) {\n continue;\n }\n checksumAlgorithms.push({\n algorithmId: () => algorithmId,\n checksumConstructor: () => runtimeConfig[algorithmId],\n });\n }\n for (const [id, ChecksumCtor] of Object.entries(runtimeConfig.checksumAlgorithms ?? {})) {\n checksumAlgorithms.push({\n algorithmId: () => id,\n checksumConstructor: () => ChecksumCtor,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n runtimeConfig.checksumAlgorithms = runtimeConfig.checksumAlgorithms ?? {};\n const id = algo.algorithmId();\n const ctor = algo.checksumConstructor();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig.checksumAlgorithms[id.toUpperCase()] = ctor;\n }\n else {\n runtimeConfig.checksumAlgorithms[id] = ctor;\n }\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nconst resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n const id = checksumAlgorithm.algorithmId();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig[id] = checksumAlgorithm.checksumConstructor();\n }\n });\n return runtimeConfig;\n};\n\nconst getRetryConfiguration = (runtimeConfig) => {\n return {\n setRetryStrategy(retryStrategy) {\n runtimeConfig.retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return runtimeConfig.retryStrategy;\n },\n };\n};\nconst resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n const runtimeConfig = {};\n runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n return runtimeConfig;\n};\n\nconst getDefaultExtensionConfiguration = (runtimeConfig) => {\n return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig));\n};\nconst getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nconst resolveDefaultRuntimeConfig = (config) => {\n return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config));\n};\n\nconst getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n\nconst getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n\nconst isSerializableHeaderValue = (value) => {\n return value != null;\n};\n\nclass NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n\nfunction map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\nconst convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nconst take = (source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n }\n else if (customFilterPassed) {\n target[targetKey] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n\nconst serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\nconst serializeDateTime = (date) => date.toISOString().replace(\".000Z\", \"Z\");\n\nconst _json = (obj) => {\n if (obj == null) {\n return {};\n }\n if (Array.isArray(obj)) {\n return obj.filter((_) => _ != null).map(_json);\n }\n if (typeof obj === \"object\") {\n const target = {};\n for (const key of Object.keys(obj)) {\n if (obj[key] == null) {\n continue;\n }\n target[key] = _json(obj[key]);\n }\n return target;\n }\n return obj;\n};\n\nexports.collectBody = protocols.collectBody;\nexports.extendedEncodeURIComponent = protocols.extendedEncodeURIComponent;\nexports.resolvedPath = protocols.resolvedPath;\nexports.Client = Client;\nexports.Command = Command;\nexports.NoOpLogger = NoOpLogger;\nexports.SENSITIVE_STRING = SENSITIVE_STRING;\nexports.ServiceException = ServiceException;\nexports._json = _json;\nexports.convertMap = convertMap;\nexports.createAggregatedClient = createAggregatedClient;\nexports.decorateServiceException = decorateServiceException;\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\nexports.getArrayIfSingleItem = getArrayIfSingleItem;\nexports.getDefaultClientConfiguration = getDefaultClientConfiguration;\nexports.getDefaultExtensionConfiguration = getDefaultExtensionConfiguration;\nexports.getValueFromTextNode = getValueFromTextNode;\nexports.isSerializableHeaderValue = isSerializableHeaderValue;\nexports.loadConfigsForDefaultMode = loadConfigsForDefaultMode;\nexports.map = map;\nexports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;\nexports.serializeDateTime = serializeDateTime;\nexports.serializeFloat = serializeFloat;\nexports.take = take;\nexports.throwDefaultError = throwDefaultError;\nexports.withBaseException = withBaseException;\nObject.prototype.hasOwnProperty.call(serde, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: serde['__proto__']\n });\n\nObject.keys(serde).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = serde[k];\n});\n","'use strict';\n\nexports.HttpAuthLocation = void 0;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpAuthLocation || (exports.HttpAuthLocation = {}));\n\nexports.HttpApiKeyAuthLocation = void 0;\n(function (HttpApiKeyAuthLocation) {\n HttpApiKeyAuthLocation[\"HEADER\"] = \"header\";\n HttpApiKeyAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpApiKeyAuthLocation || (exports.HttpApiKeyAuthLocation = {}));\n\nexports.EndpointURLScheme = void 0;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(exports.EndpointURLScheme || (exports.EndpointURLScheme = {}));\n\nexports.AlgorithmId = void 0;\n(function (AlgorithmId) {\n AlgorithmId[\"MD5\"] = \"md5\";\n AlgorithmId[\"CRC32\"] = \"crc32\";\n AlgorithmId[\"CRC32C\"] = \"crc32c\";\n AlgorithmId[\"SHA1\"] = \"sha1\";\n AlgorithmId[\"SHA256\"] = \"sha256\";\n})(exports.AlgorithmId || (exports.AlgorithmId = {}));\nconst getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n if (runtimeConfig.sha256 !== undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.SHA256,\n checksumConstructor: () => runtimeConfig.sha256,\n });\n }\n if (runtimeConfig.md5 != undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.MD5,\n checksumConstructor: () => runtimeConfig.md5,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nconst resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n\nconst getDefaultClientConfiguration = (runtimeConfig) => {\n return getChecksumConfiguration(runtimeConfig);\n};\nconst resolveDefaultRuntimeConfig = (config) => {\n return resolveChecksumRuntimeConfig(config);\n};\n\nexports.FieldPosition = void 0;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(exports.FieldPosition || (exports.FieldPosition = {}));\n\nconst SMITHY_CONTEXT_KEY = \"__smithy_context\";\n\nexports.IniSectionType = void 0;\n(function (IniSectionType) {\n IniSectionType[\"PROFILE\"] = \"profile\";\n IniSectionType[\"SSO_SESSION\"] = \"sso-session\";\n IniSectionType[\"SERVICES\"] = \"services\";\n})(exports.IniSectionType || (exports.IniSectionType = {}));\n\nexports.RequestHandlerProtocol = void 0;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(exports.RequestHandlerProtocol || (exports.RequestHandlerProtocol = {}));\n\nexports.SMITHY_CONTEXT_KEY = SMITHY_CONTEXT_KEY;\nexports.getDefaultClientConfiguration = getDefaultClientConfiguration;\nexports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;\n","'use strict';\n\nvar querystringParser = require('@smithy/querystring-parser');\n\nconst parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = querystringParser.parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n\nexports.parseUrl = parseUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBase64 = void 0;\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;\nconst fromBase64 = (input) => {\n if ((input.length * 3) % 4 !== 0) {\n throw new TypeError(`Incorrect padding on base64 string.`);\n }\n if (!BASE64_REGEX.exec(input)) {\n throw new TypeError(`Invalid base64 string.`);\n }\n const buffer = (0, util_buffer_from_1.fromString)(input, \"base64\");\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n};\nexports.fromBase64 = fromBase64;\n","'use strict';\n\nvar fromBase64 = require('./fromBase64');\nvar toBase64 = require('./toBase64');\n\n\n\nObject.prototype.hasOwnProperty.call(fromBase64, '__proto__') &&\n\t!Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n\tObject.defineProperty(exports, '__proto__', {\n\t\tenumerable: true,\n\t\tvalue: fromBase64['__proto__']\n\t});\n\nObject.keys(fromBase64).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = fromBase64[k];\n});\nObject.prototype.hasOwnProperty.call(toBase64, '__proto__') &&\n\t!Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n\tObject.defineProperty(exports, '__proto__', {\n\t\tenumerable: true,\n\t\tvalue: toBase64['__proto__']\n\t});\n\nObject.keys(toBase64).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = toBase64[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = void 0;\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst toBase64 = (_input) => {\n let input;\n if (typeof _input === \"string\") {\n input = (0, util_utf8_1.fromUtf8)(_input);\n }\n else {\n input = _input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n }\n return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"base64\");\n};\nexports.toBase64 = toBase64;\n","'use strict';\n\nconst TEXT_ENCODER = typeof TextEncoder == \"function\" ? new TextEncoder() : null;\nconst calculateBodyLength = (body) => {\n if (typeof body === \"string\") {\n if (TEXT_ENCODER) {\n return TEXT_ENCODER.encode(body).byteLength;\n }\n let len = body.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n\nexports.calculateBodyLength = calculateBodyLength;\n","'use strict';\n\nvar node_fs = require('node:fs');\n\nconst calculateBodyLength = (body) => {\n if (!body) {\n return 0;\n }\n if (typeof body === \"string\") {\n return Buffer.byteLength(body);\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n else if (typeof body.start === \"number\" && typeof body.end === \"number\") {\n return body.end + 1 - body.start;\n }\n else if (body instanceof node_fs.ReadStream) {\n if (body.path != null) {\n return node_fs.lstatSync(body.path).size;\n }\n else if (typeof body.fd === \"number\") {\n return node_fs.fstatSync(body.fd).size;\n }\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n\nexports.calculateBodyLength = calculateBodyLength;\n","'use strict';\n\nvar isArrayBuffer = require('@smithy/is-array-buffer');\nvar buffer = require('buffer');\n\nconst fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n if (!isArrayBuffer.isArrayBuffer(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return buffer.Buffer.from(input, offset, length);\n};\nconst fromString = (input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? buffer.Buffer.from(input, encoding) : buffer.Buffer.from(input);\n};\n\nexports.fromArrayBuffer = fromArrayBuffer;\nexports.fromString = fromString;\n","'use strict';\n\nconst booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\n\nconst numberSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n const numberValue = parseInt(obj[key], 10);\n if (Number.isNaN(numberValue)) {\n throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`);\n }\n return numberValue;\n};\n\nexports.SelectorType = void 0;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(exports.SelectorType || (exports.SelectorType = {}));\n\nexports.booleanSelector = booleanSelector;\nexports.numberSelector = numberSelector;\n","'use strict';\n\nvar configResolver = require('@smithy/config-resolver');\nvar nodeConfigProvider = require('@smithy/node-config-provider');\nvar propertyProvider = require('@smithy/property-provider');\n\nconst AWS_EXECUTION_ENV = \"AWS_EXECUTION_ENV\";\nconst AWS_REGION_ENV = \"AWS_REGION\";\nconst AWS_DEFAULT_REGION_ENV = \"AWS_DEFAULT_REGION\";\nconst ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\nconst IMDS_REGION_PATH = \"/latest/meta-data/placement/region\";\n\nconst AWS_DEFAULTS_MODE_ENV = \"AWS_DEFAULTS_MODE\";\nconst AWS_DEFAULTS_MODE_CONFIG = \"defaults_mode\";\nconst NODE_DEFAULTS_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n return env[AWS_DEFAULTS_MODE_ENV];\n },\n configFileSelector: (profile) => {\n return profile[AWS_DEFAULTS_MODE_CONFIG];\n },\n default: \"legacy\",\n};\n\nconst resolveDefaultsModeConfig = ({ region = nodeConfigProvider.loadConfig(configResolver.NODE_REGION_CONFIG_OPTIONS), defaultsMode = nodeConfigProvider.loadConfig(NODE_DEFAULTS_MODE_CONFIG_OPTIONS), } = {}) => propertyProvider.memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return resolveNodeDefaultsModeAuto(region);\n case \"in-region\":\n case \"cross-region\":\n case \"mobile\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst resolveNodeDefaultsModeAuto = async (clientRegion) => {\n if (clientRegion) {\n const resolvedRegion = typeof clientRegion === \"function\" ? await clientRegion() : clientRegion;\n const inferredRegion = await inferPhysicalRegion();\n if (!inferredRegion) {\n return \"standard\";\n }\n if (resolvedRegion === inferredRegion) {\n return \"in-region\";\n }\n else {\n return \"cross-region\";\n }\n }\n return \"standard\";\n};\nconst inferPhysicalRegion = async () => {\n if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) {\n return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV];\n }\n if (!process.env[ENV_IMDS_DISABLED]) {\n try {\n const { getInstanceMetadataEndpoint, httpRequest } = await import('@smithy/credential-provider-imds');\n const endpoint = await getInstanceMetadataEndpoint();\n return (await httpRequest({ ...endpoint, path: IMDS_REGION_PATH })).toString();\n }\n catch (e) {\n }\n }\n};\n\nexports.resolveDefaultsModeConfig = resolveDefaultsModeConfig;\n","'use strict';\n\nvar types = require('@smithy/types');\n\nclass BinaryDecisionDiagram {\n nodes;\n root;\n conditions;\n results;\n constructor(bdd, root, conditions, results) {\n this.nodes = bdd;\n this.root = root;\n this.conditions = conditions;\n this.results = results;\n }\n static from(bdd, root, conditions, results) {\n return new BinaryDecisionDiagram(bdd, root, conditions, results);\n }\n}\n\nclass EndpointCache {\n capacity;\n data = new Map();\n parameters = [];\n constructor({ size, params }) {\n this.capacity = size ?? 50;\n if (params) {\n this.parameters = params;\n }\n }\n get(endpointParams, resolver) {\n const key = this.hash(endpointParams);\n if (key === false) {\n return resolver();\n }\n if (!this.data.has(key)) {\n if (this.data.size > this.capacity + 10) {\n const keys = this.data.keys();\n let i = 0;\n while (true) {\n const { value, done } = keys.next();\n this.data.delete(value);\n if (done || ++i > 10) {\n break;\n }\n }\n }\n this.data.set(key, resolver());\n }\n return this.data.get(key);\n }\n size() {\n return this.data.size;\n }\n hash(endpointParams) {\n let buffer = \"\";\n const { parameters } = this;\n if (parameters.length === 0) {\n return false;\n }\n for (const param of parameters) {\n const val = String(endpointParams[param] ?? \"\");\n if (val.includes(\"|;\")) {\n return false;\n }\n buffer += val + \"|;\";\n }\n return buffer;\n }\n}\n\nclass EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n\nconst debugId = \"endpoints\";\n\nfunction toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\n\nconst customEndpointFunctions = {};\n\nconst booleanEquals = (value1, value2) => value1 === value2;\n\nfunction coalesce(...args) {\n for (const arg of args) {\n if (arg != null) {\n return arg;\n }\n }\n return undefined;\n}\n\nconst getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\n\nconst getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n const i = parseInt(index);\n return acc[i < 0 ? acc.length + i : i];\n }\n return acc[index];\n}, value);\n\nconst isSet = (value) => value != null;\n\nconst VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nconst isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!isValidHostLabel(label)) {\n return false;\n }\n }\n return true;\n};\n\nfunction ite(condition, trueValue, falseValue) {\n return condition ? trueValue : falseValue;\n}\n\nconst not = (value) => !value;\n\nconst IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nconst isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n\nconst DEFAULT_PORTS = {\n [types.EndpointURLScheme.HTTP]: 80,\n [types.EndpointURLScheme.HTTPS]: 443,\n};\nconst parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(types.EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = isIpAddress(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\n\nfunction split(value, delimiter, limit) {\n if (limit === 1) {\n return [value];\n }\n if (value === \"\") {\n return [\"\"];\n }\n const parts = value.split(delimiter);\n if (limit === 0) {\n return parts;\n }\n return parts.slice(0, limit - 1).concat(parts.slice(1).join(delimiter));\n}\n\nconst stringEquals = (value1, value2) => value1 === value2;\n\nconst substring = (input, start, stop, reverse) => {\n if (input == null || start >= stop || input.length < stop || /[^\\u0000-\\u007f]/.test(input)) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\n\nconst uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst endpointFunctions = {\n booleanEquals,\n coalesce,\n getAttr,\n isSet,\n isValidHostLabel,\n ite,\n not,\n parseURL,\n split,\n stringEquals,\n substring,\n uriEncode,\n};\n\nconst evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const { referenceRecord, endpointParams } = options;\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push(getAttr((referenceRecord[refName] ?? endpointParams[refName]), attrName));\n }\n else {\n evaluatedTemplateArr.push((referenceRecord[parameterName] ?? endpointParams[parameterName]));\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n\nconst getReferenceValue = ({ ref }, options) => {\n return options.referenceRecord[ref] ?? options.endpointParams[ref];\n};\n\nconst evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return group$2.callFunction(obj, options);\n }\n else if (obj[\"ref\"]) {\n return getReferenceValue(obj, options);\n }\n throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\nconst callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = Array(argv.length);\n for (let i = 0; i < evaluatedArgs.length; ++i) {\n const arg = argv[i];\n if (typeof arg === \"boolean\" || typeof arg === \"number\") {\n evaluatedArgs[i] = arg;\n }\n else {\n evaluatedArgs[i] = group$2.evaluateExpression(arg, \"arg\", options);\n }\n }\n const namespaceSeparatorIndex = fn.indexOf(\".\");\n if (namespaceSeparatorIndex !== -1) {\n const namespaceFunctions = customEndpointFunctions[fn.slice(0, namespaceSeparatorIndex)];\n const customFunction = namespaceFunctions?.[fn.slice(namespaceSeparatorIndex + 1)];\n if (typeof customFunction === \"function\") {\n return customFunction(...evaluatedArgs);\n }\n }\n const callable = endpointFunctions[fn];\n if (typeof callable === \"function\") {\n return callable(...evaluatedArgs);\n }\n throw new Error(`function ${fn} not loaded in endpointFunctions.`);\n};\nconst group$2 = {\n evaluateExpression,\n callFunction,\n};\n\nconst evaluateCondition = (condition, options) => {\n const { assign } = condition;\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(condition, options);\n options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(condition)} = ${toDebugString(value)}`);\n const result = value === \"\" ? true : !!value;\n if (assign != null) {\n return { result, toAssign: { name: assign, value } };\n }\n return { result };\n};\n\nconst getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => {\n acc[headerKey] = headerVal.map((headerValEntry) => {\n const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n });\n return acc;\n}, {});\n\nconst getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => {\n acc[propertyKey] = group$1.getEndpointProperty(propertyVal, options);\n return acc;\n}, {});\nconst getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return evaluateTemplate(property, options);\n case \"object\":\n if (property === null) {\n throw new EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return group$1.getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\nconst group$1 = {\n getEndpointProperty,\n getEndpointProperties,\n};\n\nconst getEndpointUrl = (endpointUrl, options) => {\n const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n\nconst RESULT = 100_000_000;\nconst decideEndpoint = (bdd, options) => {\n const { nodes, root, results, conditions } = bdd;\n let ref = root;\n const referenceRecord = {};\n const closure = {\n referenceRecord,\n endpointParams: options.endpointParams,\n logger: options.logger,\n };\n while (ref !== 1 && ref !== -1 && ref < RESULT) {\n const node_i = 3 * (Math.abs(ref) - 1);\n const [condition_i, highRef, lowRef] = [nodes[node_i], nodes[node_i + 1], nodes[node_i + 2]];\n const [fn, argv, assign] = conditions[condition_i];\n const evaluation = evaluateCondition({ fn, assign, argv }, closure);\n if (evaluation.toAssign) {\n const { name, value } = evaluation.toAssign;\n referenceRecord[name] = value;\n }\n ref = ref >= 0 === evaluation.result ? highRef : lowRef;\n }\n if (ref >= RESULT) {\n const result = results[ref - RESULT];\n if (result[0] === -1) {\n const [, errorExpression] = result;\n throw new EndpointError(evaluateExpression(errorExpression, \"Error\", closure));\n }\n const [url, properties, headers] = result;\n return {\n url: getEndpointUrl(url, closure),\n properties: getEndpointProperties(properties, closure),\n headers: getEndpointHeaders(headers ?? {}, closure),\n };\n }\n throw new EndpointError(`No matching endpoint.`);\n};\n\nconst evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n const conditionOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord },\n };\n let didAssign = false;\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, conditionOptions);\n if (!result) {\n return { result };\n }\n if (toAssign) {\n didAssign = true;\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n conditionOptions.referenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n if (didAssign) {\n return { result: true, referenceRecord: conditionsReferenceRecord };\n }\n return { result: true };\n};\n\nconst evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = referenceRecord\n ? {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }\n : options;\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);\n const endpointToReturn = { url: getEndpointUrl(url, endpointRuleOptions) };\n if (headers != null) {\n endpointToReturn.headers = getEndpointHeaders(headers, endpointRuleOptions);\n }\n if (properties != null) {\n endpointToReturn.properties = getEndpointProperties(properties, endpointRuleOptions);\n }\n return endpointToReturn;\n};\n\nconst evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const errorRuleOptions = referenceRecord\n ? {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }\n : options;\n throw new EndpointError(evaluateExpression(error, \"Error\", errorRuleOptions));\n};\n\nconst evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = evaluateEndpointRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n evaluateErrorRule(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = group.evaluateTreeRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new EndpointError(`Rules evaluation failed`);\n};\nconst evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const treeRuleOptions = referenceRecord\n ? { ...options, referenceRecord: { ...options.referenceRecord, ...referenceRecord } }\n : options;\n return group.evaluateRules(rules, treeRuleOptions);\n};\nconst group = {\n evaluateRules,\n evaluateTreeRule,\n};\n\nconst resolveEndpoint = (ruleSetObject, options) => {\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n for (const paramKey in parameters) {\n const parameter = parameters[paramKey];\n const endpointParam = endpointParams[paramKey];\n if (endpointParam == null && parameter.default != null) {\n endpointParams[paramKey] = parameter.default;\n continue;\n }\n if (parameter.required && endpointParam == null) {\n throw new EndpointError(`Missing required parameter: '${paramKey}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n\nexports.BinaryDecisionDiagram = BinaryDecisionDiagram;\nexports.EndpointCache = EndpointCache;\nexports.EndpointError = EndpointError;\nexports.customEndpointFunctions = customEndpointFunctions;\nexports.decideEndpoint = decideEndpoint;\nexports.isIpAddress = isIpAddress;\nexports.isValidHostLabel = isValidHostLabel;\nexports.resolveEndpoint = resolveEndpoint;\n","'use strict';\n\nconst SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nfunction fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nfunction toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n\nexports.fromHex = fromHex;\nexports.toHex = toHex;\n","'use strict';\n\nvar types = require('@smithy/types');\n\nconst getSmithyContext = (context) => context[types.SMITHY_CONTEXT_KEY] || (context[types.SMITHY_CONTEXT_KEY] = {});\n\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n\nexports.getSmithyContext = getSmithyContext;\nexports.normalizeProvider = normalizeProvider;\n","'use strict';\n\nvar serviceErrorClassification = require('@smithy/service-error-classification');\n\nexports.RETRY_MODES = void 0;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(exports.RETRY_MODES || (exports.RETRY_MODES = {}));\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_RETRY_MODE = exports.RETRY_MODES.STANDARD;\n\nclass DefaultRateLimiter {\n static setTimeoutFn = setTimeout;\n beta;\n minCapacity;\n minFillRate;\n scaleConstant;\n smooth;\n enabled = false;\n availableTokens = 0;\n lastMaxRate = 0;\n measuredTxRate = 0;\n requestCount = 0;\n fillRate;\n lastThrottleTime;\n lastTimestamp = 0;\n lastTxRateBucket;\n maxCapacity;\n timeWindow = 0;\n constructor(options) {\n this.beta = options?.beta ?? 0.7;\n this.minCapacity = options?.minCapacity ?? 1;\n this.minFillRate = options?.minFillRate ?? 0.5;\n this.scaleConstant = options?.scaleConstant ?? 0.4;\n this.smooth = options?.smooth ?? 0.8;\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n const retryErrorInfo = response;\n const isThrottling = retryErrorInfo?.errorType === \"THROTTLING\" || serviceErrorClassification.isThrottlingError(retryErrorInfo?.error ?? response);\n if (isThrottling) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.availableTokens) {\n const delay = ((amount - this.availableTokens) / this.fillRate) * 1000;\n await new Promise((resolve) => DefaultRateLimiter.setTimeoutFn(resolve, delay));\n }\n this.availableTokens = this.availableTokens - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.availableTokens = Math.min(this.maxCapacity, this.availableTokens + fillAmount);\n this.lastTimestamp = timestamp;\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.availableTokens = Math.min(this.availableTokens, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\n\nconst DEFAULT_RETRY_DELAY_BASE = 100;\nconst MAXIMUM_RETRY_DELAY = 20 * 1000;\nconst THROTTLING_RETRY_DELAY_BASE = 500;\nconst INITIAL_RETRY_TOKENS = 500;\nconst RETRY_COST = 5;\nconst TIMEOUT_RETRY_COST = 10;\nconst NO_RETRY_INCREMENT = 1;\nconst INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nconst REQUEST_HEADER = \"amz-sdk-request\";\n\nclass Retry {\n static v2026 = typeof process !== \"undefined\" && process.env?.SMITHY_NEW_RETRIES_2026 === \"true\";\n static delay() {\n return Retry.v2026 ? 50 : 100;\n }\n static throttlingDelay() {\n return Retry.v2026 ? 1_000 : 500;\n }\n static cost() {\n return Retry.v2026 ? 14 : 5;\n }\n static throttlingCost() {\n return Retry.v2026 ? 5 : 10;\n }\n static modifiedCostType() {\n return Retry.v2026 ? \"THROTTLING\" : \"TRANSIENT\";\n }\n}\n\nclass DefaultRetryBackoffStrategy {\n x = Retry.delay();\n computeNextBackoffDelay(i) {\n const b = Math.random();\n const r = 2;\n const t_i = b * Math.min(this.x * r ** i, MAXIMUM_RETRY_DELAY);\n return Math.floor(t_i);\n }\n setDelayBase(delay) {\n this.x = delay;\n }\n}\n\nclass DefaultRetryToken {\n delay;\n count;\n cost;\n longPoll;\n constructor(delay, count, cost, longPoll) {\n this.delay = delay;\n this.count = count;\n this.cost = cost;\n this.longPoll = longPoll;\n }\n getRetryCount() {\n return this.count;\n }\n getRetryDelay() {\n return Math.min(MAXIMUM_RETRY_DELAY, this.delay);\n }\n getRetryCost() {\n return this.cost;\n }\n isLongPoll() {\n return this.longPoll;\n }\n}\n\nclass StandardRetryStrategy {\n mode = exports.RETRY_MODES.STANDARD;\n capacity = INITIAL_RETRY_TOKENS;\n retryBackoffStrategy;\n maxAttemptsProvider;\n baseDelay;\n constructor(arg1) {\n if (typeof arg1 === \"number\") {\n this.maxAttemptsProvider = async () => arg1;\n }\n else if (typeof arg1 === \"function\") {\n this.maxAttemptsProvider = arg1;\n }\n else if (arg1 && typeof arg1 === \"object\") {\n this.maxAttemptsProvider = async () => arg1.maxAttempts;\n this.baseDelay = arg1.baseDelay;\n this.retryBackoffStrategy = arg1.backoff;\n }\n this.maxAttemptsProvider ??= async () => DEFAULT_MAX_ATTEMPTS;\n this.baseDelay ??= Retry.delay();\n this.retryBackoffStrategy ??= new DefaultRetryBackoffStrategy();\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return new DefaultRetryToken(Retry.delay(), 0, undefined, Retry.v2026 && retryTokenScope.includes(\":longpoll\"));\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n const shouldRetry = this.shouldRetry(token, errorInfo, maxAttempts);\n if (shouldRetry || token.isLongPoll?.()) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? Retry.throttlingDelay() : this.baseDelay);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n let retryDelay = delayFromErrorType;\n if (errorInfo.retryAfterHint instanceof Date) {\n retryDelay = Math.max(delayFromErrorType, Math.min(errorInfo.retryAfterHint.getTime() - Date.now(), delayFromErrorType + 5_000));\n }\n if (!shouldRetry) {\n throw Object.assign(new Error(\"No retry token available\"), { $backoff: Retry.v2026 ? retryDelay : 0 });\n }\n else {\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n return new DefaultRetryToken(retryDelay, token.getRetryCount() + 1, capacityCost, token.isLongPoll?.() ?? false);\n }\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.min(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n return DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount() + 1;\n return (attempts < maxAttempts &&\n this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n getCapacityCost(errorType) {\n return errorType === Retry.modifiedCostType() ? Retry.throttlingCost() : Retry.cost();\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n async maxAttempts() {\n return this.maxAttemptsProvider();\n }\n}\n\nclass AdaptiveRetryStrategy {\n mode = exports.RETRY_MODES.ADAPTIVE;\n rateLimiter;\n standardRetryStrategy;\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = options\n ? new StandardRetryStrategy({\n maxAttempts: typeof maxAttemptsProvider === \"number\" ? maxAttemptsProvider : 3,\n ...options,\n })\n : new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n async maxAttemptsProvider() {\n return this.standardRetryStrategy.maxAttempts();\n }\n}\n\nclass ConfiguredRetryStrategy extends StandardRetryStrategy {\n computeNextBackoffDelay;\n constructor(maxAttempts, computeNextBackoffDelay = Retry.delay()) {\n super(typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts);\n if (typeof computeNextBackoffDelay === \"number\") {\n this.computeNextBackoffDelay = () => computeNextBackoffDelay;\n }\n else {\n this.computeNextBackoffDelay = computeNextBackoffDelay;\n }\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount());\n return token;\n }\n}\n\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\nexports.ConfiguredRetryStrategy = ConfiguredRetryStrategy;\nexports.DEFAULT_MAX_ATTEMPTS = DEFAULT_MAX_ATTEMPTS;\nexports.DEFAULT_RETRY_DELAY_BASE = DEFAULT_RETRY_DELAY_BASE;\nexports.DEFAULT_RETRY_MODE = DEFAULT_RETRY_MODE;\nexports.DefaultRateLimiter = DefaultRateLimiter;\nexports.INITIAL_RETRY_TOKENS = INITIAL_RETRY_TOKENS;\nexports.INVOCATION_ID_HEADER = INVOCATION_ID_HEADER;\nexports.MAXIMUM_RETRY_DELAY = MAXIMUM_RETRY_DELAY;\nexports.NO_RETRY_INCREMENT = NO_RETRY_INCREMENT;\nexports.REQUEST_HEADER = REQUEST_HEADER;\nexports.RETRY_COST = RETRY_COST;\nexports.Retry = Retry;\nexports.StandardRetryStrategy = StandardRetryStrategy;\nexports.THROTTLING_RETRY_DELAY_BASE = THROTTLING_RETRY_DELAY_BASE;\nexports.TIMEOUT_RETRY_COST = TIMEOUT_RETRY_COST;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ByteArrayCollector = void 0;\nclass ByteArrayCollector {\n allocByteArray;\n byteLength = 0;\n byteArrays = [];\n constructor(allocByteArray) {\n this.allocByteArray = allocByteArray;\n }\n push(byteArray) {\n this.byteArrays.push(byteArray);\n this.byteLength += byteArray.byteLength;\n }\n flush() {\n if (this.byteArrays.length === 1) {\n const bytes = this.byteArrays[0];\n this.reset();\n return bytes;\n }\n const aggregation = this.allocByteArray(this.byteLength);\n let cursor = 0;\n for (let i = 0; i < this.byteArrays.length; ++i) {\n const bytes = this.byteArrays[i];\n aggregation.set(bytes, cursor);\n cursor += bytes.byteLength;\n }\n this.reset();\n return aggregation;\n }\n reset() {\n this.byteArrays = [];\n this.byteLength = 0;\n }\n}\nexports.ByteArrayCollector = ByteArrayCollector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChecksumStream = void 0;\nconst ReadableStreamRef = typeof ReadableStream === \"function\" ? ReadableStream : function () { };\nclass ChecksumStream extends ReadableStreamRef {\n}\nexports.ChecksumStream = ChecksumStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChecksumStream = void 0;\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst stream_1 = require(\"stream\");\nclass ChecksumStream extends stream_1.Duplex {\n expectedChecksum;\n checksumSourceLocation;\n checksum;\n source;\n base64Encoder;\n pendingCallback = null;\n constructor({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) {\n super();\n if (typeof source.pipe === \"function\") {\n this.source = source;\n }\n else {\n throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n }\n this.base64Encoder = base64Encoder ?? util_base64_1.toBase64;\n this.expectedChecksum = expectedChecksum;\n this.checksum = checksum;\n this.checksumSourceLocation = checksumSourceLocation;\n this.source.pipe(this);\n }\n _read(size) {\n if (this.pendingCallback) {\n const callback = this.pendingCallback;\n this.pendingCallback = null;\n callback();\n }\n }\n _write(chunk, encoding, callback) {\n try {\n this.checksum.update(chunk);\n const canPushMore = this.push(chunk);\n if (!canPushMore) {\n this.pendingCallback = callback;\n return;\n }\n }\n catch (e) {\n return callback(e);\n }\n return callback();\n }\n async _final(callback) {\n try {\n const digest = await this.checksum.digest();\n const received = this.base64Encoder(digest);\n if (this.expectedChecksum !== received) {\n return callback(new Error(`Checksum mismatch: expected \"${this.expectedChecksum}\" but received \"${received}\"` +\n ` in response header \"${this.checksumSourceLocation}\".`));\n }\n }\n catch (e) {\n return callback(e);\n }\n this.push(null);\n return callback();\n }\n}\nexports.ChecksumStream = ChecksumStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createChecksumStream = void 0;\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst stream_type_check_1 = require(\"../stream-type-check\");\nconst ChecksumStream_browser_1 = require(\"./ChecksumStream.browser\");\nconst createChecksumStream = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) => {\n if (!(0, stream_type_check_1.isReadableStream)(source)) {\n throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n }\n const encoder = base64Encoder ?? util_base64_1.toBase64;\n if (typeof TransformStream !== \"function\") {\n throw new Error(\"@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.\");\n }\n const transform = new TransformStream({\n start() { },\n async transform(chunk, controller) {\n checksum.update(chunk);\n controller.enqueue(chunk);\n },\n async flush(controller) {\n const digest = await checksum.digest();\n const received = encoder(digest);\n if (expectedChecksum !== received) {\n const error = new Error(`Checksum mismatch: expected \"${expectedChecksum}\" but received \"${received}\"` +\n ` in response header \"${checksumSourceLocation}\".`);\n controller.error(error);\n }\n else {\n controller.terminate();\n }\n },\n });\n source.pipeThrough(transform);\n const readable = transform.readable;\n Object.setPrototypeOf(readable, ChecksumStream_browser_1.ChecksumStream.prototype);\n return readable;\n};\nexports.createChecksumStream = createChecksumStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createChecksumStream = createChecksumStream;\nconst stream_type_check_1 = require(\"../stream-type-check\");\nconst ChecksumStream_1 = require(\"./ChecksumStream\");\nconst createChecksumStream_browser_1 = require(\"./createChecksumStream.browser\");\nfunction createChecksumStream(init) {\n if (typeof ReadableStream === \"function\" && (0, stream_type_check_1.isReadableStream)(init.source)) {\n return (0, createChecksumStream_browser_1.createChecksumStream)(init);\n }\n return new ChecksumStream_1.ChecksumStream(init);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBufferedReadable = createBufferedReadable;\nconst node_stream_1 = require(\"node:stream\");\nconst ByteArrayCollector_1 = require(\"./ByteArrayCollector\");\nconst createBufferedReadableStream_1 = require(\"./createBufferedReadableStream\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nfunction createBufferedReadable(upstream, size, logger) {\n if ((0, stream_type_check_1.isReadableStream)(upstream)) {\n return (0, createBufferedReadableStream_1.createBufferedReadableStream)(upstream, size, logger);\n }\n const downstream = new node_stream_1.Readable({ read() { } });\n let streamBufferingLoggedWarning = false;\n let bytesSeen = 0;\n const buffers = [\n \"\",\n new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size)),\n new ByteArrayCollector_1.ByteArrayCollector((size) => Buffer.from(new Uint8Array(size))),\n ];\n let mode = -1;\n upstream.on(\"data\", (chunk) => {\n const chunkMode = (0, createBufferedReadableStream_1.modeOf)(chunk, true);\n if (mode !== chunkMode) {\n if (mode >= 0) {\n downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode));\n }\n mode = chunkMode;\n }\n if (mode === -1) {\n downstream.push(chunk);\n return;\n }\n const chunkSize = (0, createBufferedReadableStream_1.sizeOf)(chunk);\n bytesSeen += chunkSize;\n const bufferSize = (0, createBufferedReadableStream_1.sizeOf)(buffers[mode]);\n if (chunkSize >= size && bufferSize === 0) {\n downstream.push(chunk);\n }\n else {\n const newSize = (0, createBufferedReadableStream_1.merge)(buffers, mode, chunk);\n if (!streamBufferingLoggedWarning && bytesSeen > size * 2) {\n streamBufferingLoggedWarning = true;\n logger?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`);\n }\n if (newSize >= size) {\n downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode));\n }\n }\n });\n upstream.on(\"end\", () => {\n if (mode !== -1) {\n const remainder = (0, createBufferedReadableStream_1.flush)(buffers, mode);\n if ((0, createBufferedReadableStream_1.sizeOf)(remainder) > 0) {\n downstream.push(remainder);\n }\n }\n downstream.push(null);\n });\n return downstream;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBufferedReadable = void 0;\nexports.createBufferedReadableStream = createBufferedReadableStream;\nexports.merge = merge;\nexports.flush = flush;\nexports.sizeOf = sizeOf;\nexports.modeOf = modeOf;\nconst ByteArrayCollector_1 = require(\"./ByteArrayCollector\");\nfunction createBufferedReadableStream(upstream, size, logger) {\n const reader = upstream.getReader();\n let streamBufferingLoggedWarning = false;\n let bytesSeen = 0;\n const buffers = [\"\", new ByteArrayCollector_1.ByteArrayCollector((size) => new Uint8Array(size))];\n let mode = -1;\n const pull = async (controller) => {\n const { value, done } = await reader.read();\n const chunk = value;\n if (done) {\n if (mode !== -1) {\n const remainder = flush(buffers, mode);\n if (sizeOf(remainder) > 0) {\n controller.enqueue(remainder);\n }\n }\n controller.close();\n }\n else {\n const chunkMode = modeOf(chunk, false);\n if (mode !== chunkMode) {\n if (mode >= 0) {\n controller.enqueue(flush(buffers, mode));\n }\n mode = chunkMode;\n }\n if (mode === -1) {\n controller.enqueue(chunk);\n return;\n }\n const chunkSize = sizeOf(chunk);\n bytesSeen += chunkSize;\n const bufferSize = sizeOf(buffers[mode]);\n if (chunkSize >= size && bufferSize === 0) {\n controller.enqueue(chunk);\n }\n else {\n const newSize = merge(buffers, mode, chunk);\n if (!streamBufferingLoggedWarning && bytesSeen > size * 2) {\n streamBufferingLoggedWarning = true;\n logger?.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`);\n }\n if (newSize >= size) {\n controller.enqueue(flush(buffers, mode));\n }\n else {\n await pull(controller);\n }\n }\n }\n };\n return new ReadableStream({\n pull,\n });\n}\nexports.createBufferedReadable = createBufferedReadableStream;\nfunction merge(buffers, mode, chunk) {\n switch (mode) {\n case 0:\n buffers[0] += chunk;\n return sizeOf(buffers[0]);\n case 1:\n case 2:\n buffers[mode].push(chunk);\n return sizeOf(buffers[mode]);\n }\n}\nfunction flush(buffers, mode) {\n switch (mode) {\n case 0:\n const s = buffers[0];\n buffers[0] = \"\";\n return s;\n case 1:\n case 2:\n return buffers[mode].flush();\n }\n throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`);\n}\nfunction sizeOf(chunk) {\n return chunk?.byteLength ?? chunk?.length ?? 0;\n}\nfunction modeOf(chunk, allowBuffer = true) {\n if (allowBuffer && typeof Buffer !== \"undefined\" && chunk instanceof Buffer) {\n return 2;\n }\n if (chunk instanceof Uint8Array) {\n return 1;\n }\n if (typeof chunk === \"string\") {\n return 0;\n }\n return -1;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAwsChunkedEncodingStream = void 0;\nconst getAwsChunkedEncodingStream = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n bodyLengthChecker !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const reader = readableStream.getReader();\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await reader.read();\n if (done) {\n controller.enqueue(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n controller.enqueue(`\\r\\n`);\n }\n controller.close();\n }\n else {\n controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n }\n },\n });\n};\nexports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream;\nconst node_stream_1 = require(\"node:stream\");\nconst getAwsChunkedEncodingStream_browser_1 = require(\"./getAwsChunkedEncodingStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nfunction getAwsChunkedEncodingStream(stream, options) {\n const readable = stream;\n const readableStream = stream;\n if ((0, stream_type_check_1.isReadableStream)(readableStream)) {\n return (0, getAwsChunkedEncodingStream_browser_1.getAwsChunkedEncodingStream)(readableStream, options);\n }\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readable) : undefined;\n const awsChunkedEncodingStream = new node_stream_1.Readable({\n read: () => { },\n });\n readable.on(\"data\", (data) => {\n const length = bodyLengthChecker(data) || 0;\n if (length === 0) {\n return;\n }\n awsChunkedEncodingStream.push(`${length.toString(16)}\\r\\n`);\n awsChunkedEncodingStream.push(data);\n awsChunkedEncodingStream.push(\"\\r\\n\");\n });\n readable.on(\"end\", async () => {\n awsChunkedEncodingStream.push(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\\r\\n`);\n awsChunkedEncodingStream.push(`\\r\\n`);\n }\n awsChunkedEncodingStream.push(null);\n });\n return awsChunkedEncodingStream;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headStream = headStream;\nasync function headStream(stream, bytes) {\n let byteLengthCounter = 0;\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n byteLengthCounter += value?.byteLength ?? 0;\n }\n if (byteLengthCounter >= bytes) {\n break;\n }\n isDone = done;\n }\n reader.releaseLock();\n const collected = new Uint8Array(Math.min(bytes, byteLengthCounter));\n let offset = 0;\n for (const chunk of chunks) {\n if (chunk.byteLength > collected.byteLength - offset) {\n collected.set(chunk.subarray(0, collected.byteLength - offset), offset);\n break;\n }\n else {\n collected.set(chunk, offset);\n }\n offset += chunk.length;\n }\n return collected;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.headStream = void 0;\nconst stream_1 = require(\"stream\");\nconst headStream_browser_1 = require(\"./headStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nconst headStream = (stream, bytes) => {\n if ((0, stream_type_check_1.isReadableStream)(stream)) {\n return (0, headStream_browser_1.headStream)(stream, bytes);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n collector.limit = bytes;\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.buffers));\n resolve(bytes);\n });\n });\n};\nexports.headStream = headStream;\nclass Collector extends stream_1.Writable {\n buffers = [];\n limit = Infinity;\n bytesBuffered = 0;\n _write(chunk, encoding, callback) {\n this.buffers.push(chunk);\n this.bytesBuffered += chunk.byteLength ?? 0;\n if (this.bytesBuffered >= this.limit) {\n const excess = this.bytesBuffered - this.limit;\n const tailBuffer = this.buffers[this.buffers.length - 1];\n this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess);\n this.emit(\"finish\");\n }\n callback();\n }\n}\n","'use strict';\n\nvar utilBase64 = require('@smithy/util-base64');\nvar utilUtf8 = require('@smithy/util-utf8');\nvar ChecksumStream = require('./checksum/ChecksumStream');\nvar createChecksumStream = require('./checksum/createChecksumStream');\nvar createBufferedReadable = require('./createBufferedReadable');\nvar getAwsChunkedEncodingStream = require('./getAwsChunkedEncodingStream');\nvar headStream = require('./headStream');\nvar sdkStreamMixin = require('./sdk-stream-mixin');\nvar splitStream = require('./splitStream');\nvar streamTypeCheck = require('./stream-type-check');\n\nclass Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n if (typeof source === \"string\") {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(utilBase64.fromBase64(source));\n }\n return Uint8ArrayBlobAdapter.mutate(utilUtf8.fromUtf8(source));\n }\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return utilBase64.toBase64(this);\n }\n return utilUtf8.toUtf8(this);\n }\n}\n\nexports.isBlob = streamTypeCheck.isBlob;\nexports.isReadableStream = streamTypeCheck.isReadableStream;\nexports.Uint8ArrayBlobAdapter = Uint8ArrayBlobAdapter;\nObject.prototype.hasOwnProperty.call(ChecksumStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: ChecksumStream['__proto__']\n });\n\nObject.keys(ChecksumStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = ChecksumStream[k];\n});\nObject.prototype.hasOwnProperty.call(createChecksumStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: createChecksumStream['__proto__']\n });\n\nObject.keys(createChecksumStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = createChecksumStream[k];\n});\nObject.prototype.hasOwnProperty.call(createBufferedReadable, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: createBufferedReadable['__proto__']\n });\n\nObject.keys(createBufferedReadable).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = createBufferedReadable[k];\n});\nObject.prototype.hasOwnProperty.call(getAwsChunkedEncodingStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: getAwsChunkedEncodingStream['__proto__']\n });\n\nObject.keys(getAwsChunkedEncodingStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = getAwsChunkedEncodingStream[k];\n});\nObject.prototype.hasOwnProperty.call(headStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: headStream['__proto__']\n });\n\nObject.keys(headStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = headStream[k];\n});\nObject.prototype.hasOwnProperty.call(sdkStreamMixin, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: sdkStreamMixin['__proto__']\n });\n\nObject.keys(sdkStreamMixin).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = sdkStreamMixin[k];\n});\nObject.prototype.hasOwnProperty.call(splitStream, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: splitStream['__proto__']\n });\n\nObject.keys(splitStream).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = splitStream[k];\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sdkStreamMixin = void 0;\nconst fetch_http_handler_1 = require(\"@smithy/fetch-http-handler\");\nconst util_base64_1 = require(\"@smithy/util-base64\");\nconst util_hex_encoding_1 = require(\"@smithy/util-hex-encoding\");\nconst util_utf8_1 = require(\"@smithy/util-utf8\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n if (!isBlobInstance(stream) && !(0, stream_type_check_1.isReadableStream)(stream)) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await (0, fetch_http_handler_1.streamCollector)(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return (0, util_base64_1.toBase64)(buf);\n }\n else if (encoding === \"hex\") {\n return (0, util_hex_encoding_1.toHex)(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return (0, util_utf8_1.toUtf8)(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if ((0, stream_type_check_1.isReadableStream)(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nexports.sdkStreamMixin = sdkStreamMixin;\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sdkStreamMixin = void 0;\nconst node_http_handler_1 = require(\"@smithy/node-http-handler\");\nconst util_buffer_from_1 = require(\"@smithy/util-buffer-from\");\nconst stream_1 = require(\"stream\");\nconst sdk_stream_mixin_browser_1 = require(\"./sdk-stream-mixin.browser\");\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nconst sdkStreamMixin = (stream) => {\n if (!(stream instanceof stream_1.Readable)) {\n try {\n return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream);\n }\n catch (e) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`);\n }\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await (0, node_http_handler_1.streamCollector)(stream);\n };\n return Object.assign(stream, {\n transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === undefined || Buffer.isEncoding(encoding)) {\n return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding);\n }\n else {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buf);\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n if (stream.readableFlowing !== null) {\n throw new Error(\"The stream has been consumed by other callbacks.\");\n }\n if (typeof stream_1.Readable.toWeb !== \"function\") {\n throw new Error(\"Readable.toWeb() is not supported. Please ensure a polyfill is available.\");\n }\n transformed = true;\n return stream_1.Readable.toWeb(stream);\n },\n });\n};\nexports.sdkStreamMixin = sdkStreamMixin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitStream = splitStream;\nasync function splitStream(stream) {\n if (typeof stream.stream === \"function\") {\n stream = stream.stream();\n }\n const readableStream = stream;\n return readableStream.tee();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitStream = splitStream;\nconst stream_1 = require(\"stream\");\nconst splitStream_browser_1 = require(\"./splitStream.browser\");\nconst stream_type_check_1 = require(\"./stream-type-check\");\nasync function splitStream(stream) {\n if ((0, stream_type_check_1.isReadableStream)(stream) || (0, stream_type_check_1.isBlob)(stream)) {\n return (0, splitStream_browser_1.splitStream)(stream);\n }\n const stream1 = new stream_1.PassThrough();\n const stream2 = new stream_1.PassThrough();\n stream.pipe(stream1);\n stream.pipe(stream2);\n return [stream1, stream2];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBlob = exports.isReadableStream = void 0;\nconst isReadableStream = (stream) => typeof ReadableStream === \"function\" &&\n (stream?.constructor?.name === ReadableStream.name || stream instanceof ReadableStream);\nexports.isReadableStream = isReadableStream;\nconst isBlob = (blob) => {\n return typeof Blob === \"function\" && (blob?.constructor?.name === Blob.name || blob instanceof Blob);\n};\nexports.isBlob = isBlob;\n","'use strict';\n\nconst escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n\nconst escapeUriPath = (uri) => uri.split(\"/\").map(escapeUri).join(\"/\");\n\nexports.escapeUri = escapeUri;\nexports.escapeUriPath = escapeUriPath;\n","'use strict';\n\nvar utilBufferFrom = require('@smithy/util-buffer-from');\n\nconst fromUtf8 = (input) => {\n const buf = utilBufferFrom.fromString(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n\nconst toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n\nconst toUtf8 = (input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return utilBufferFrom.fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n};\n\nexports.fromUtf8 = fromUtf8;\nexports.toUint8Array = toUint8Array;\nexports.toUtf8 = toUtf8;\n","'use strict';\n\nconst getCircularReplacer = () => {\n const seen = new WeakSet();\n return (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return \"[Circular]\";\n }\n seen.add(value);\n }\n return value;\n };\n};\n\nconst sleep = (seconds) => {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n};\n\nconst waiterServiceDefaults = {\n minDelay: 2,\n maxDelay: 120,\n};\nexports.WaiterState = void 0;\n(function (WaiterState) {\n WaiterState[\"ABORTED\"] = \"ABORTED\";\n WaiterState[\"FAILURE\"] = \"FAILURE\";\n WaiterState[\"SUCCESS\"] = \"SUCCESS\";\n WaiterState[\"RETRY\"] = \"RETRY\";\n WaiterState[\"TIMEOUT\"] = \"TIMEOUT\";\n})(exports.WaiterState || (exports.WaiterState = {}));\nconst checkExceptions = (result) => {\n if (result.state === exports.WaiterState.ABORTED) {\n const abortError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Request was aborted\",\n }, getCircularReplacer())}`);\n abortError.name = \"AbortError\";\n throw abortError;\n }\n else if (result.state === exports.WaiterState.TIMEOUT) {\n const timeoutError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Waiter has timed out\",\n }, getCircularReplacer())}`);\n timeoutError.name = \"TimeoutError\";\n throw timeoutError;\n }\n else if (result.state !== exports.WaiterState.SUCCESS) {\n throw new Error(`${JSON.stringify(result, getCircularReplacer())}`);\n }\n return result;\n};\n\nconst exponentialBackoffWithJitter = (minDelay, maxDelay, attemptCeiling, attempt) => {\n if (attempt > attemptCeiling)\n return maxDelay;\n const delay = minDelay * 2 ** (attempt - 1);\n return randomInRange(minDelay, delay);\n};\nconst randomInRange = (min, max) => min + Math.random() * (max - min);\nconst runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => {\n const observedResponses = {};\n const { state, reason } = await acceptorChecks(client, input);\n if (reason) {\n const message = createMessageFromResponse(reason);\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n }\n if (state !== exports.WaiterState.RETRY) {\n return { state, reason, observedResponses };\n }\n let currentAttempt = 1;\n const waitUntil = Date.now() + maxWaitTime * 1000;\n const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1;\n while (true) {\n if (abortController?.signal?.aborted || abortSignal?.aborted) {\n const message = \"AbortController signal aborted.\";\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n return { state: exports.WaiterState.ABORTED, observedResponses };\n }\n const delay = exponentialBackoffWithJitter(minDelay, maxDelay, attemptCeiling, currentAttempt);\n if (Date.now() + delay * 1000 > waitUntil) {\n return { state: exports.WaiterState.TIMEOUT, observedResponses };\n }\n await sleep(delay);\n const { state, reason } = await acceptorChecks(client, input);\n if (reason) {\n const message = createMessageFromResponse(reason);\n observedResponses[message] |= 0;\n observedResponses[message] += 1;\n }\n if (state !== exports.WaiterState.RETRY) {\n return { state, reason, observedResponses };\n }\n currentAttempt += 1;\n }\n};\nconst createMessageFromResponse = (reason) => {\n if (reason?.$responseBodyText) {\n return `Deserialization error for body: ${reason.$responseBodyText}`;\n }\n if (reason?.$metadata?.httpStatusCode) {\n if (reason.$response || reason.message) {\n return `${reason.$response?.statusCode ?? reason.$metadata.httpStatusCode ?? \"Unknown\"}: ${reason.message}`;\n }\n return `${reason.$metadata.httpStatusCode}: OK`;\n }\n return String(reason?.message ?? JSON.stringify(reason, getCircularReplacer()) ?? \"Unknown\");\n};\n\nconst validateWaiterOptions = (options) => {\n if (options.maxWaitTime <= 0) {\n throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`);\n }\n else if (options.minDelay <= 0) {\n throw new Error(`WaiterConfiguration.minDelay must be greater than 0`);\n }\n else if (options.maxDelay <= 0) {\n throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`);\n }\n else if (options.maxWaitTime <= options.minDelay) {\n throw new Error(`WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n else if (options.maxDelay < options.minDelay) {\n throw new Error(`WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n};\n\nconst abortTimeout = (abortSignal) => {\n let onAbort;\n const promise = new Promise((resolve) => {\n onAbort = () => resolve({ state: exports.WaiterState.ABORTED });\n if (typeof abortSignal.addEventListener === \"function\") {\n abortSignal.addEventListener(\"abort\", onAbort);\n }\n else {\n abortSignal.onabort = onAbort;\n }\n });\n return {\n clearListener() {\n if (typeof abortSignal.removeEventListener === \"function\") {\n abortSignal.removeEventListener(\"abort\", onAbort);\n }\n },\n aborted: promise,\n };\n};\nconst createWaiter = async (options, input, acceptorChecks) => {\n const params = {\n ...waiterServiceDefaults,\n ...options,\n };\n validateWaiterOptions(params);\n const exitConditions = [runPolling(params, input, acceptorChecks)];\n const finalize = [];\n if (options.abortSignal) {\n const { aborted, clearListener } = abortTimeout(options.abortSignal);\n finalize.push(clearListener);\n exitConditions.push(aborted);\n }\n if (options.abortController?.signal) {\n const { aborted, clearListener } = abortTimeout(options.abortController.signal);\n finalize.push(clearListener);\n exitConditions.push(aborted);\n }\n return Promise.race(exitConditions).then((result) => {\n for (const fn of finalize) {\n fn();\n }\n return result;\n });\n};\n\nexports.checkExceptions = checkExceptions;\nexports.createWaiter = createWaiter;\nexports.waiterServiceDefaults = waiterServiceDefaults;\n","'use strict';\n\nvar randomUUID = require('./randomUUID');\n\nconst decimalToHex = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, \"0\"));\nconst v4 = () => {\n if (randomUUID.randomUUID) {\n return randomUUID.randomUUID();\n }\n const rnds = new Uint8Array(16);\n crypto.getRandomValues(rnds);\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n return (decimalToHex[rnds[0]] +\n decimalToHex[rnds[1]] +\n decimalToHex[rnds[2]] +\n decimalToHex[rnds[3]] +\n \"-\" +\n decimalToHex[rnds[4]] +\n decimalToHex[rnds[5]] +\n \"-\" +\n decimalToHex[rnds[6]] +\n decimalToHex[rnds[7]] +\n \"-\" +\n decimalToHex[rnds[8]] +\n decimalToHex[rnds[9]] +\n \"-\" +\n decimalToHex[rnds[10]] +\n decimalToHex[rnds[11]] +\n decimalToHex[rnds[12]] +\n decimalToHex[rnds[13]] +\n decimalToHex[rnds[14]] +\n decimalToHex[rnds[15]]);\n};\n\nexports.v4 = v4;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomUUID = void 0;\nconst tslib_1 = require(\"tslib\");\nconst crypto_1 = tslib_1.__importDefault(require(\"crypto\"));\nexports.randomUUID = crypto_1.default.randomUUID.bind(crypto_1.default);\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","/**\n * archiver-utils\n *\n * Copyright (c) 2012-2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-archiver/blob/master/LICENSE-MIT\n */\nvar fs = require('graceful-fs');\nvar path = require('path');\n\nvar flatten = require('lodash/flatten');\nvar difference = require('lodash/difference');\nvar union = require('lodash/union');\nvar isPlainObject = require('lodash/isPlainObject');\n\nvar glob = require('glob');\n\nvar file = module.exports = {};\n\nvar pathSeparatorRe = /[\\/\\\\]/g;\n\n// Process specified wildcard glob patterns or filenames against a\n// callback, excluding and uniquing files in the result set.\nvar processPatterns = function(patterns, fn) {\n // Filepaths to return.\n var result = [];\n // Iterate over flattened patterns array.\n flatten(patterns).forEach(function(pattern) {\n // If the first character is ! it should be omitted\n var exclusion = pattern.indexOf('!') === 0;\n // If the pattern is an exclusion, remove the !\n if (exclusion) { pattern = pattern.slice(1); }\n // Find all matching files for this pattern.\n var matches = fn(pattern);\n if (exclusion) {\n // If an exclusion, remove matching files.\n result = difference(result, matches);\n } else {\n // Otherwise add matching files.\n result = union(result, matches);\n }\n });\n return result;\n};\n\n// True if the file path exists.\nfile.exists = function() {\n var filepath = path.join.apply(path, arguments);\n return fs.existsSync(filepath);\n};\n\n// Return an array of all file paths that match the given wildcard patterns.\nfile.expand = function(...args) {\n // If the first argument is an options object, save those options to pass\n // into the File.prototype.glob.sync method.\n var options = isPlainObject(args[0]) ? args.shift() : {};\n // Use the first argument if it's an Array, otherwise convert the arguments\n // object to an array and use that.\n var patterns = Array.isArray(args[0]) ? args[0] : args;\n // Return empty set if there are no patterns or filepaths.\n if (patterns.length === 0) { return []; }\n // Return all matching filepaths.\n var matches = processPatterns(patterns, function(pattern) {\n // Find all matching files for this pattern.\n return glob.sync(pattern, options);\n });\n // Filter result set?\n if (options.filter) {\n matches = matches.filter(function(filepath) {\n filepath = path.join(options.cwd || '', filepath);\n try {\n if (typeof options.filter === 'function') {\n return options.filter(filepath);\n } else {\n // If the file is of the right type and exists, this should work.\n return fs.statSync(filepath)[options.filter]();\n }\n } catch(e) {\n // Otherwise, it's probably not the right type.\n return false;\n }\n });\n }\n return matches;\n};\n\n// Build a multi task \"files\" object dynamically.\nfile.expandMapping = function(patterns, destBase, options) {\n options = Object.assign({\n rename: function(destBase, destPath) {\n return path.join(destBase || '', destPath);\n }\n }, options);\n var files = [];\n var fileByDest = {};\n // Find all files matching pattern, using passed-in options.\n file.expand(options, patterns).forEach(function(src) {\n var destPath = src;\n // Flatten?\n if (options.flatten) {\n destPath = path.basename(destPath);\n }\n // Change the extension?\n if (options.ext) {\n destPath = destPath.replace(/(\\.[^\\/]*)?$/, options.ext);\n }\n // Generate destination filename.\n var dest = options.rename(destBase, destPath, options);\n // Prepend cwd to src path if necessary.\n if (options.cwd) { src = path.join(options.cwd, src); }\n // Normalize filepaths to be unix-style.\n dest = dest.replace(pathSeparatorRe, '/');\n src = src.replace(pathSeparatorRe, '/');\n // Map correct src path to dest path.\n if (fileByDest[dest]) {\n // If dest already exists, push this src onto that dest's src array.\n fileByDest[dest].src.push(src);\n } else {\n // Otherwise create a new src-dest file mapping object.\n files.push({\n src: [src],\n dest: dest,\n });\n // And store a reference for later use.\n fileByDest[dest] = files[files.length - 1];\n }\n });\n return files;\n};\n\n// reusing bits of grunt's multi-task source normalization\nfile.normalizeFilesArray = function(data) {\n var files = [];\n\n data.forEach(function(obj) {\n var prop;\n if ('src' in obj || 'dest' in obj) {\n files.push(obj);\n }\n });\n\n if (files.length === 0) {\n return [];\n }\n\n files = _(files).chain().forEach(function(obj) {\n if (!('src' in obj) || !obj.src) { return; }\n // Normalize .src properties to flattened array.\n if (Array.isArray(obj.src)) {\n obj.src = flatten(obj.src);\n } else {\n obj.src = [obj.src];\n }\n }).map(function(obj) {\n // Build options object, removing unwanted properties.\n var expandOptions = Object.assign({}, obj);\n delete expandOptions.src;\n delete expandOptions.dest;\n\n // Expand file mappings.\n if (obj.expand) {\n return file.expandMapping(obj.src, obj.dest, expandOptions).map(function(mapObj) {\n // Copy obj properties to result.\n var result = Object.assign({}, obj);\n // Make a clone of the orig obj available.\n result.orig = Object.assign({}, obj);\n // Set .src and .dest, processing both as templates.\n result.src = mapObj.src;\n result.dest = mapObj.dest;\n // Remove unwanted properties.\n ['expand', 'cwd', 'flatten', 'rename', 'ext'].forEach(function(prop) {\n delete result[prop];\n });\n return result;\n });\n }\n\n // Copy obj properties to result, adding an .orig property.\n var result = Object.assign({}, obj);\n // Make a clone of the orig obj available.\n result.orig = Object.assign({}, obj);\n\n if ('src' in result) {\n // Expose an expand-on-demand getter method as .src.\n Object.defineProperty(result, 'src', {\n enumerable: true,\n get: function fn() {\n var src;\n if (!('result' in fn)) {\n src = obj.src;\n // If src is an array, flatten it. Otherwise, make it into an array.\n src = Array.isArray(src) ? flatten(src) : [src];\n // Expand src files, memoizing result.\n fn.result = file.expand(expandOptions, src);\n }\n return fn.result;\n }\n });\n }\n\n if ('dest' in result) {\n result.dest = obj.dest;\n }\n\n return result;\n }).flatten().value();\n\n return files;\n};\n","/**\n * archiver-utils\n *\n * Copyright (c) 2015 Chris Talkington.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/archiver-utils/blob/master/LICENSE\n */\nvar fs = require('graceful-fs');\nvar path = require('path');\nvar isStream = require('is-stream');\nvar lazystream = require('lazystream');\nvar normalizePath = require('normalize-path');\nvar defaults = require('lodash/defaults');\n\nvar Stream = require('stream').Stream;\nvar PassThrough = require('readable-stream').PassThrough;\n\nvar utils = module.exports = {};\nutils.file = require('./file.js');\n\nutils.collectStream = function(source, callback) {\n var collection = [];\n var size = 0;\n\n source.on('error', callback);\n\n source.on('data', function(chunk) {\n collection.push(chunk);\n size += chunk.length;\n });\n\n source.on('end', function() {\n var buf = Buffer.alloc(size);\n var offset = 0;\n\n collection.forEach(function(data) {\n data.copy(buf, offset);\n offset += data.length;\n });\n\n callback(null, buf);\n });\n};\n\nutils.dateify = function(dateish) {\n dateish = dateish || new Date();\n\n if (dateish instanceof Date) {\n dateish = dateish;\n } else if (typeof dateish === 'string') {\n dateish = new Date(dateish);\n } else {\n dateish = new Date();\n }\n\n return dateish;\n};\n\n// this is slightly different from lodash version\nutils.defaults = function(object, source, guard) {\n var args = arguments;\n args[0] = args[0] || {};\n\n return defaults(...args);\n};\n\nutils.isStream = function(source) {\n return isStream(source);\n};\n\nutils.lazyReadStream = function(filepath) {\n return new lazystream.Readable(function() {\n return fs.createReadStream(filepath);\n });\n};\n\nutils.normalizeInputSource = function(source) {\n if (source === null) {\n return Buffer.alloc(0);\n } else if (typeof source === 'string') {\n return Buffer.from(source);\n } else if (utils.isStream(source)) {\n // Always pipe through a PassThrough stream to guarantee pausing the stream if it's already flowing,\n // since it will only be processed in a (distant) future iteration of the event loop, and will lose\n // data if already flowing now.\n return source.pipe(new PassThrough());\n }\n\n return source;\n};\n\nutils.sanitizePath = function(filepath) {\n return normalizePath(filepath, false).replace(/^\\w+:/, '').replace(/^(\\.\\.\\/|\\/)+/, '');\n};\n\nutils.trailingSlashIt = function(str) {\n return str.slice(-1) !== '/' ? str + '/' : str;\n};\n\nutils.unixifyPath = function(filepath) {\n return normalizePath(filepath, false).replace(/^\\w+:/, '');\n};\n\nutils.walkdir = function(dirpath, base, callback) {\n var results = [];\n\n if (typeof base === 'function') {\n callback = base;\n base = dirpath;\n }\n\n fs.readdir(dirpath, function(err, list) {\n var i = 0;\n var file;\n var filepath;\n\n if (err) {\n return callback(err);\n }\n\n (function next() {\n file = list[i++];\n\n if (!file) {\n return callback(null, results);\n }\n\n filepath = path.join(dirpath, file);\n\n fs.stat(filepath, function(err, stats) {\n results.push({\n path: filepath,\n relative: path.relative(base, filepath).replace(/\\\\/g, '/'),\n stats: stats\n });\n\n if (stats && stats.isDirectory()) {\n utils.walkdir(filepath, base, function(err, res) {\n\t if(err){\n\t return callback(err);\n\t }\n\n res.forEach(function(dirEntry) {\n results.push(dirEntry);\n });\n\t\t \n next(); \n });\n } else {\n next();\n }\n });\n })();\n });\n};\n","/**\n * Archiver Vending\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar Archiver = require('./lib/core');\n\nvar formats = {};\n\n/**\n * Dispenses a new Archiver instance.\n *\n * @constructor\n * @param {String} format The archive format to use.\n * @param {Object} options See [Archiver]{@link Archiver}\n * @return {Archiver}\n */\nvar vending = function(format, options) {\n return vending.create(format, options);\n};\n\n/**\n * Creates a new Archiver instance.\n *\n * @param {String} format The archive format to use.\n * @param {Object} options See [Archiver]{@link Archiver}\n * @return {Archiver}\n */\nvending.create = function(format, options) {\n if (formats[format]) {\n var instance = new Archiver(format, options);\n instance.setFormat(format);\n instance.setModule(new formats[format](options));\n\n return instance;\n } else {\n throw new Error('create(' + format + '): format not registered');\n }\n};\n\n/**\n * Registers a format for use with archiver.\n *\n * @param {String} format The name of the format.\n * @param {Function} module The function for archiver to interact with.\n * @return void\n */\nvending.registerFormat = function(format, module) {\n if (formats[format]) {\n throw new Error('register(' + format + '): format already registered');\n }\n\n if (typeof module !== 'function') {\n throw new Error('register(' + format + '): format module invalid');\n }\n\n if (typeof module.prototype.append !== 'function' || typeof module.prototype.finalize !== 'function') {\n throw new Error('register(' + format + '): format module missing methods');\n }\n\n formats[format] = module;\n};\n\n/**\n * Check if the format is already registered.\n * \n * @param {String} format the name of the format.\n * @return boolean\n */\nvending.isRegisteredFormat = function (format) {\n if (formats[format]) {\n return true;\n }\n \n return false;\n};\n\nvending.registerFormat('zip', require('./lib/plugins/zip'));\nvending.registerFormat('tar', require('./lib/plugins/tar'));\nvending.registerFormat('json', require('./lib/plugins/json'));\n\nmodule.exports = vending;","/**\n * Archiver Core\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar fs = require('fs');\nvar glob = require('readdir-glob');\nvar async = require('async');\nvar path = require('path');\nvar util = require('archiver-utils');\n\nvar inherits = require('util').inherits;\nvar ArchiverError = require('./error');\nvar Transform = require('readable-stream').Transform;\n\nvar win32 = process.platform === 'win32';\n\n/**\n * @constructor\n * @param {String} format The archive format to use.\n * @param {(CoreOptions|TransformOptions)} options See also {@link ZipOptions} and {@link TarOptions}.\n */\nvar Archiver = function(format, options) {\n if (!(this instanceof Archiver)) {\n return new Archiver(format, options);\n }\n\n if (typeof format !== 'string') {\n options = format;\n format = 'zip';\n }\n\n options = this.options = util.defaults(options, {\n highWaterMark: 1024 * 1024,\n statConcurrency: 4\n });\n\n Transform.call(this, options);\n\n this._format = false;\n this._module = false;\n this._pending = 0;\n this._pointer = 0;\n\n this._entriesCount = 0;\n this._entriesProcessedCount = 0;\n this._fsEntriesTotalBytes = 0;\n this._fsEntriesProcessedBytes = 0;\n\n this._queue = async.queue(this._onQueueTask.bind(this), 1);\n this._queue.drain(this._onQueueDrain.bind(this));\n\n this._statQueue = async.queue(this._onStatQueueTask.bind(this), options.statConcurrency);\n this._statQueue.drain(this._onQueueDrain.bind(this));\n\n this._state = {\n aborted: false,\n finalize: false,\n finalizing: false,\n finalized: false,\n modulePiped: false\n };\n\n this._streams = [];\n};\n\ninherits(Archiver, Transform);\n\n/**\n * Internal logic for `abort`.\n *\n * @private\n * @return void\n */\nArchiver.prototype._abort = function() {\n this._state.aborted = true;\n this._queue.kill();\n this._statQueue.kill();\n\n if (this._queue.idle()) {\n this._shutdown();\n }\n};\n\n/**\n * Internal helper for appending files.\n *\n * @private\n * @param {String} filepath The source filepath.\n * @param {EntryData} data The entry data.\n * @return void\n */\nArchiver.prototype._append = function(filepath, data) {\n data = data || {};\n\n var task = {\n source: null,\n filepath: filepath\n };\n\n if (!data.name) {\n data.name = filepath;\n }\n\n data.sourcePath = filepath;\n task.data = data;\n this._entriesCount++;\n\n if (data.stats && data.stats instanceof fs.Stats) {\n task = this._updateQueueTaskWithStats(task, data.stats);\n if (task) {\n if (data.stats.size) {\n this._fsEntriesTotalBytes += data.stats.size;\n }\n\n this._queue.push(task);\n }\n } else {\n this._statQueue.push(task);\n }\n};\n\n/**\n * Internal logic for `finalize`.\n *\n * @private\n * @return void\n */\nArchiver.prototype._finalize = function() {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n return;\n }\n\n this._state.finalizing = true;\n\n this._moduleFinalize();\n\n this._state.finalizing = false;\n this._state.finalized = true;\n};\n\n/**\n * Checks the various state variables to determine if we can `finalize`.\n *\n * @private\n * @return {Boolean}\n */\nArchiver.prototype._maybeFinalize = function() {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n return false;\n }\n\n if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) {\n this._finalize();\n return true;\n }\n\n return false;\n};\n\n/**\n * Appends an entry to the module.\n *\n * @private\n * @fires Archiver#entry\n * @param {(Buffer|Stream)} source\n * @param {EntryData} data\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._moduleAppend = function(source, data, callback) {\n if (this._state.aborted) {\n callback();\n return;\n }\n\n this._module.append(source, data, function(err) {\n this._task = null;\n\n if (this._state.aborted) {\n this._shutdown();\n return;\n }\n\n if (err) {\n this.emit('error', err);\n setImmediate(callback);\n return;\n }\n\n /**\n * Fires when the entry's input has been processed and appended to the archive.\n *\n * @event Archiver#entry\n * @type {EntryData}\n */\n this.emit('entry', data);\n this._entriesProcessedCount++;\n\n if (data.stats && data.stats.size) {\n this._fsEntriesProcessedBytes += data.stats.size;\n }\n\n /**\n * @event Archiver#progress\n * @type {ProgressData}\n */\n this.emit('progress', {\n entries: {\n total: this._entriesCount,\n processed: this._entriesProcessedCount\n },\n fs: {\n totalBytes: this._fsEntriesTotalBytes,\n processedBytes: this._fsEntriesProcessedBytes\n }\n });\n\n setImmediate(callback);\n }.bind(this));\n};\n\n/**\n * Finalizes the module.\n *\n * @private\n * @return void\n */\nArchiver.prototype._moduleFinalize = function() {\n if (typeof this._module.finalize === 'function') {\n this._module.finalize();\n } else if (typeof this._module.end === 'function') {\n this._module.end();\n } else {\n this.emit('error', new ArchiverError('NOENDMETHOD'));\n }\n};\n\n/**\n * Pipes the module to our internal stream with error bubbling.\n *\n * @private\n * @return void\n */\nArchiver.prototype._modulePipe = function() {\n this._module.on('error', this._onModuleError.bind(this));\n this._module.pipe(this);\n this._state.modulePiped = true;\n};\n\n/**\n * Determines if the current module supports a defined feature.\n *\n * @private\n * @param {String} key\n * @return {Boolean}\n */\nArchiver.prototype._moduleSupports = function(key) {\n if (!this._module.supports || !this._module.supports[key]) {\n return false;\n }\n\n return this._module.supports[key];\n};\n\n/**\n * Unpipes the module from our internal stream.\n *\n * @private\n * @return void\n */\nArchiver.prototype._moduleUnpipe = function() {\n this._module.unpipe(this);\n this._state.modulePiped = false;\n};\n\n/**\n * Normalizes entry data with fallbacks for key properties.\n *\n * @private\n * @param {Object} data\n * @param {fs.Stats} stats\n * @return {Object}\n */\nArchiver.prototype._normalizeEntryData = function(data, stats) {\n data = util.defaults(data, {\n type: 'file',\n name: null,\n date: null,\n mode: null,\n prefix: null,\n sourcePath: null,\n stats: false\n });\n\n if (stats && data.stats === false) {\n data.stats = stats;\n }\n\n var isDir = data.type === 'directory';\n\n if (data.name) {\n if (typeof data.prefix === 'string' && '' !== data.prefix) {\n data.name = data.prefix + '/' + data.name;\n data.prefix = null;\n }\n\n data.name = util.sanitizePath(data.name);\n\n if (data.type !== 'symlink' && data.name.slice(-1) === '/') {\n isDir = true;\n data.type = 'directory';\n } else if (isDir) {\n data.name += '/';\n }\n }\n\n // 511 === 0777; 493 === 0755; 438 === 0666; 420 === 0644\n if (typeof data.mode === 'number') {\n if (win32) {\n data.mode &= 511;\n } else {\n data.mode &= 4095\n }\n } else if (data.stats && data.mode === null) {\n if (win32) {\n data.mode = data.stats.mode & 511;\n } else {\n data.mode = data.stats.mode & 4095;\n }\n\n // stat isn't reliable on windows; force 0755 for dir\n if (win32 && isDir) {\n data.mode = 493;\n }\n } else if (data.mode === null) {\n data.mode = isDir ? 493 : 420;\n }\n\n if (data.stats && data.date === null) {\n data.date = data.stats.mtime;\n } else {\n data.date = util.dateify(data.date);\n }\n\n return data;\n};\n\n/**\n * Error listener that re-emits error on to our internal stream.\n *\n * @private\n * @param {Error} err\n * @return void\n */\nArchiver.prototype._onModuleError = function(err) {\n /**\n * @event Archiver#error\n * @type {ErrorData}\n */\n this.emit('error', err);\n};\n\n/**\n * Checks the various state variables after queue has drained to determine if\n * we need to `finalize`.\n *\n * @private\n * @return void\n */\nArchiver.prototype._onQueueDrain = function() {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n return;\n }\n\n if (this._state.finalize && this._pending === 0 && this._queue.idle() && this._statQueue.idle()) {\n this._finalize();\n }\n};\n\n/**\n * Appends each queue task to the module.\n *\n * @private\n * @param {Object} task\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._onQueueTask = function(task, callback) {\n var fullCallback = () => {\n if(task.data.callback) {\n task.data.callback();\n }\n callback();\n }\n\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n fullCallback();\n return;\n }\n\n this._task = task;\n this._moduleAppend(task.source, task.data, fullCallback);\n};\n\n/**\n * Performs a file stat and reinjects the task back into the queue.\n *\n * @private\n * @param {Object} task\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._onStatQueueTask = function(task, callback) {\n if (this._state.finalizing || this._state.finalized || this._state.aborted) {\n callback();\n return;\n }\n\n fs.lstat(task.filepath, function(err, stats) {\n if (this._state.aborted) {\n setImmediate(callback);\n return;\n }\n\n if (err) {\n this._entriesCount--;\n\n /**\n * @event Archiver#warning\n * @type {ErrorData}\n */\n this.emit('warning', err);\n setImmediate(callback);\n return;\n }\n\n task = this._updateQueueTaskWithStats(task, stats);\n\n if (task) {\n if (stats.size) {\n this._fsEntriesTotalBytes += stats.size;\n }\n\n this._queue.push(task);\n }\n\n setImmediate(callback);\n }.bind(this));\n};\n\n/**\n * Unpipes the module and ends our internal stream.\n *\n * @private\n * @return void\n */\nArchiver.prototype._shutdown = function() {\n this._moduleUnpipe();\n this.end();\n};\n\n/**\n * Tracks the bytes emitted by our internal stream.\n *\n * @private\n * @param {Buffer} chunk\n * @param {String} encoding\n * @param {Function} callback\n * @return void\n */\nArchiver.prototype._transform = function(chunk, encoding, callback) {\n if (chunk) {\n this._pointer += chunk.length;\n }\n\n callback(null, chunk);\n};\n\n/**\n * Updates and normalizes a queue task using stats data.\n *\n * @private\n * @param {Object} task\n * @param {fs.Stats} stats\n * @return {Object}\n */\nArchiver.prototype._updateQueueTaskWithStats = function(task, stats) {\n if (stats.isFile()) {\n task.data.type = 'file';\n task.data.sourceType = 'stream';\n task.source = util.lazyReadStream(task.filepath);\n } else if (stats.isDirectory() && this._moduleSupports('directory')) {\n task.data.name = util.trailingSlashIt(task.data.name);\n task.data.type = 'directory';\n task.data.sourcePath = util.trailingSlashIt(task.filepath);\n task.data.sourceType = 'buffer';\n task.source = Buffer.concat([]);\n } else if (stats.isSymbolicLink() && this._moduleSupports('symlink')) {\n var linkPath = fs.readlinkSync(task.filepath);\n var dirName = path.dirname(task.filepath);\n task.data.type = 'symlink';\n task.data.linkname = path.relative(dirName, path.resolve(dirName, linkPath));\n task.data.sourceType = 'buffer';\n task.source = Buffer.concat([]);\n } else {\n if (stats.isDirectory()) {\n this.emit('warning', new ArchiverError('DIRECTORYNOTSUPPORTED', task.data));\n } else if (stats.isSymbolicLink()) {\n this.emit('warning', new ArchiverError('SYMLINKNOTSUPPORTED', task.data));\n } else {\n this.emit('warning', new ArchiverError('ENTRYNOTSUPPORTED', task.data));\n }\n\n return null;\n }\n\n task.data = this._normalizeEntryData(task.data, stats);\n\n return task;\n};\n\n/**\n * Aborts the archiving process, taking a best-effort approach, by:\n *\n * - removing any pending queue tasks\n * - allowing any active queue workers to finish\n * - detaching internal module pipes\n * - ending both sides of the Transform stream\n *\n * It will NOT drain any remaining sources.\n *\n * @return {this}\n */\nArchiver.prototype.abort = function() {\n if (this._state.aborted || this._state.finalized) {\n return this;\n }\n\n this._abort();\n\n return this;\n};\n\n/**\n * Appends an input source (text string, buffer, or stream) to the instance.\n *\n * When the instance has received, processed, and emitted the input, the `entry`\n * event is fired.\n *\n * @fires Archiver#entry\n * @param {(Buffer|Stream|String)} source The input source.\n * @param {EntryData} data See also {@link ZipEntryData} and {@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.append = function(source, data) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n data = this._normalizeEntryData(data);\n\n if (typeof data.name !== 'string' || data.name.length === 0) {\n this.emit('error', new ArchiverError('ENTRYNAMEREQUIRED'));\n return this;\n }\n\n if (data.type === 'directory' && !this._moduleSupports('directory')) {\n this.emit('error', new ArchiverError('DIRECTORYNOTSUPPORTED', { name: data.name }));\n return this;\n }\n\n source = util.normalizeInputSource(source);\n\n if (Buffer.isBuffer(source)) {\n data.sourceType = 'buffer';\n } else if (util.isStream(source)) {\n data.sourceType = 'stream';\n } else {\n this.emit('error', new ArchiverError('INPUTSTEAMBUFFERREQUIRED', { name: data.name }));\n return this;\n }\n\n this._entriesCount++;\n this._queue.push({\n data: data,\n source: source\n });\n\n return this;\n};\n\n/**\n * Appends a directory and its files, recursively, given its dirpath.\n *\n * @param {String} dirpath The source directory path.\n * @param {String} destpath The destination path within the archive.\n * @param {(EntryData|Function)} data See also [ZipEntryData]{@link ZipEntryData} and\n * [TarEntryData]{@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.directory = function(dirpath, destpath, data) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n if (typeof dirpath !== 'string' || dirpath.length === 0) {\n this.emit('error', new ArchiverError('DIRECTORYDIRPATHREQUIRED'));\n return this;\n }\n\n this._pending++;\n\n if (destpath === false) {\n destpath = '';\n } else if (typeof destpath !== 'string'){\n destpath = dirpath;\n }\n\n var dataFunction = false;\n if (typeof data === 'function') {\n dataFunction = data;\n data = {};\n } else if (typeof data !== 'object') {\n data = {};\n }\n\n var globOptions = {\n stat: true,\n dot: true\n };\n\n function onGlobEnd() {\n this._pending--;\n this._maybeFinalize();\n }\n\n function onGlobError(err) {\n this.emit('error', err);\n }\n\n function onGlobMatch(match){\n globber.pause();\n\n var ignoreMatch = false;\n var entryData = Object.assign({}, data);\n entryData.name = match.relative;\n entryData.prefix = destpath;\n entryData.stats = match.stat;\n entryData.callback = globber.resume.bind(globber);\n\n try {\n if (dataFunction) {\n entryData = dataFunction(entryData);\n\n if (entryData === false) {\n ignoreMatch = true;\n } else if (typeof entryData !== 'object') {\n throw new ArchiverError('DIRECTORYFUNCTIONINVALIDDATA', { dirpath: dirpath });\n }\n }\n } catch(e) {\n this.emit('error', e);\n return;\n }\n\n if (ignoreMatch) {\n globber.resume();\n return;\n }\n\n this._append(match.absolute, entryData);\n }\n\n var globber = glob(dirpath, globOptions);\n globber.on('error', onGlobError.bind(this));\n globber.on('match', onGlobMatch.bind(this));\n globber.on('end', onGlobEnd.bind(this));\n\n return this;\n};\n\n/**\n * Appends a file given its filepath using a\n * [lazystream]{@link https://github.com/jpommerening/node-lazystream} wrapper to\n * prevent issues with open file limits.\n *\n * When the instance has received, processed, and emitted the file, the `entry`\n * event is fired.\n *\n * @param {String} filepath The source filepath.\n * @param {EntryData} data See also [ZipEntryData]{@link ZipEntryData} and\n * [TarEntryData]{@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.file = function(filepath, data) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n if (typeof filepath !== 'string' || filepath.length === 0) {\n this.emit('error', new ArchiverError('FILEFILEPATHREQUIRED'));\n return this;\n }\n\n this._append(filepath, data);\n\n return this;\n};\n\n/**\n * Appends multiple files that match a glob pattern.\n *\n * @param {String} pattern The [glob pattern]{@link https://github.com/isaacs/minimatch} to match.\n * @param {Object} options See [node-readdir-glob]{@link https://github.com/yqnn/node-readdir-glob#options}.\n * @param {EntryData} data See also [ZipEntryData]{@link ZipEntryData} and\n * [TarEntryData]{@link TarEntryData}.\n * @return {this}\n */\nArchiver.prototype.glob = function(pattern, options, data) {\n this._pending++;\n\n options = util.defaults(options, {\n stat: true,\n pattern: pattern\n });\n\n function onGlobEnd() {\n this._pending--;\n this._maybeFinalize();\n }\n\n function onGlobError(err) {\n this.emit('error', err);\n }\n\n function onGlobMatch(match){\n globber.pause();\n var entryData = Object.assign({}, data);\n entryData.callback = globber.resume.bind(globber);\n entryData.stats = match.stat;\n entryData.name = match.relative;\n\n this._append(match.absolute, entryData);\n }\n\n var globber = glob(options.cwd || '.', options);\n globber.on('error', onGlobError.bind(this));\n globber.on('match', onGlobMatch.bind(this));\n globber.on('end', onGlobEnd.bind(this));\n\n return this;\n};\n\n/**\n * Finalizes the instance and prevents further appending to the archive\n * structure (queue will continue til drained).\n *\n * The `end`, `close` or `finish` events on the destination stream may fire\n * right after calling this method so you should set listeners beforehand to\n * properly detect stream completion.\n *\n * @return {Promise}\n */\nArchiver.prototype.finalize = function() {\n if (this._state.aborted) {\n var abortedError = new ArchiverError('ABORTED');\n this.emit('error', abortedError);\n return Promise.reject(abortedError);\n }\n\n if (this._state.finalize) {\n var finalizingError = new ArchiverError('FINALIZING');\n this.emit('error', finalizingError);\n return Promise.reject(finalizingError);\n }\n\n this._state.finalize = true;\n\n if (this._pending === 0 && this._queue.idle() && this._statQueue.idle()) {\n this._finalize();\n }\n\n var self = this;\n\n return new Promise(function(resolve, reject) {\n var errored;\n\n self._module.on('end', function() {\n if (!errored) {\n resolve();\n }\n })\n\n self._module.on('error', function(err) {\n errored = true;\n reject(err);\n })\n })\n};\n\n/**\n * Sets the module format name used for archiving.\n *\n * @param {String} format The name of the format.\n * @return {this}\n */\nArchiver.prototype.setFormat = function(format) {\n if (this._format) {\n this.emit('error', new ArchiverError('FORMATSET'));\n return this;\n }\n\n this._format = format;\n\n return this;\n};\n\n/**\n * Sets the module used for archiving.\n *\n * @param {Function} module The function for archiver to interact with.\n * @return {this}\n */\nArchiver.prototype.setModule = function(module) {\n if (this._state.aborted) {\n this.emit('error', new ArchiverError('ABORTED'));\n return this;\n }\n\n if (this._state.module) {\n this.emit('error', new ArchiverError('MODULESET'));\n return this;\n }\n\n this._module = module;\n this._modulePipe();\n\n return this;\n};\n\n/**\n * Appends a symlink to the instance.\n *\n * This does NOT interact with filesystem and is used for programmatically creating symlinks.\n *\n * @param {String} filepath The symlink path (within archive).\n * @param {String} target The target path (within archive).\n * @param {Number} mode Sets the entry permissions.\n * @return {this}\n */\nArchiver.prototype.symlink = function(filepath, target, mode) {\n if (this._state.finalize || this._state.aborted) {\n this.emit('error', new ArchiverError('QUEUECLOSED'));\n return this;\n }\n\n if (typeof filepath !== 'string' || filepath.length === 0) {\n this.emit('error', new ArchiverError('SYMLINKFILEPATHREQUIRED'));\n return this;\n }\n\n if (typeof target !== 'string' || target.length === 0) {\n this.emit('error', new ArchiverError('SYMLINKTARGETREQUIRED', { filepath: filepath }));\n return this;\n }\n\n if (!this._moduleSupports('symlink')) {\n this.emit('error', new ArchiverError('SYMLINKNOTSUPPORTED', { filepath: filepath }));\n return this;\n }\n\n var data = {};\n data.type = 'symlink';\n data.name = filepath.replace(/\\\\/g, '/');\n data.linkname = target.replace(/\\\\/g, '/');\n data.sourceType = 'buffer';\n\n if (typeof mode === \"number\") {\n data.mode = mode;\n }\n\n this._entriesCount++;\n this._queue.push({\n data: data,\n source: Buffer.concat([])\n });\n\n return this;\n};\n\n/**\n * Returns the current length (in bytes) that has been emitted.\n *\n * @return {Number}\n */\nArchiver.prototype.pointer = function() {\n return this._pointer;\n};\n\n/**\n * Middleware-like helper that has yet to be fully implemented.\n *\n * @private\n * @param {Function} plugin\n * @return {this}\n */\nArchiver.prototype.use = function(plugin) {\n this._streams.push(plugin);\n return this;\n};\n\nmodule.exports = Archiver;\n\n/**\n * @typedef {Object} CoreOptions\n * @global\n * @property {Number} [statConcurrency=4] Sets the number of workers used to\n * process the internal fs stat queue.\n */\n\n/**\n * @typedef {Object} TransformOptions\n * @property {Boolean} [allowHalfOpen=true] If set to false, then the stream\n * will automatically end the readable side when the writable side ends and vice\n * versa.\n * @property {Boolean} [readableObjectMode=false] Sets objectMode for readable\n * side of the stream. Has no effect if objectMode is true.\n * @property {Boolean} [writableObjectMode=false] Sets objectMode for writable\n * side of the stream. Has no effect if objectMode is true.\n * @property {Boolean} [decodeStrings=true] Whether or not to decode strings\n * into Buffers before passing them to _write(). `Writable`\n * @property {String} [encoding=NULL] If specified, then buffers will be decoded\n * to strings using the specified encoding. `Readable`\n * @property {Number} [highWaterMark=16kb] The maximum number of bytes to store\n * in the internal buffer before ceasing to read from the underlying resource.\n * `Readable` `Writable`\n * @property {Boolean} [objectMode=false] Whether this stream should behave as a\n * stream of objects. Meaning that stream.read(n) returns a single value instead\n * of a Buffer of size n. `Readable` `Writable`\n */\n\n/**\n * @typedef {Object} EntryData\n * @property {String} name Sets the entry name including internal path.\n * @property {(String|Date)} [date=NOW()] Sets the entry date.\n * @property {Number} [mode=D:0755/F:0644] Sets the entry permissions.\n * @property {String} [prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @property {fs.Stats} [stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n */\n\n/**\n * @typedef {Object} ErrorData\n * @property {String} message The message of the error.\n * @property {String} code The error code assigned to this error.\n * @property {String} data Additional data provided for reporting or debugging (where available).\n */\n\n/**\n * @typedef {Object} ProgressData\n * @property {Object} entries\n * @property {Number} entries.total Number of entries that have been appended.\n * @property {Number} entries.processed Number of entries that have been processed.\n * @property {Object} fs\n * @property {Number} fs.totalBytes Number of bytes that have been appended. Calculated asynchronously and might not be accurate: it growth while entries are added. (based on fs.Stats)\n * @property {Number} fs.processedBytes Number of bytes that have been processed. (based on fs.Stats)\n */\n","/**\n * Archiver Core\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\n\nvar util = require('util');\n\nconst ERROR_CODES = {\n 'ABORTED': 'archive was aborted',\n 'DIRECTORYDIRPATHREQUIRED': 'diretory dirpath argument must be a non-empty string value',\n 'DIRECTORYFUNCTIONINVALIDDATA': 'invalid data returned by directory custom data function',\n 'ENTRYNAMEREQUIRED': 'entry name must be a non-empty string value',\n 'FILEFILEPATHREQUIRED': 'file filepath argument must be a non-empty string value',\n 'FINALIZING': 'archive already finalizing',\n 'QUEUECLOSED': 'queue closed',\n 'NOENDMETHOD': 'no suitable finalize/end method defined by module',\n 'DIRECTORYNOTSUPPORTED': 'support for directory entries not defined by module',\n 'FORMATSET': 'archive format already set',\n 'INPUTSTEAMBUFFERREQUIRED': 'input source must be valid Stream or Buffer instance',\n 'MODULESET': 'module already set',\n 'SYMLINKNOTSUPPORTED': 'support for symlink entries not defined by module',\n 'SYMLINKFILEPATHREQUIRED': 'symlink filepath argument must be a non-empty string value',\n 'SYMLINKTARGETREQUIRED': 'symlink target argument must be a non-empty string value',\n 'ENTRYNOTSUPPORTED': 'entry not supported'\n};\n\nfunction ArchiverError(code, data) {\n Error.captureStackTrace(this, this.constructor);\n //this.name = this.constructor.name;\n this.message = ERROR_CODES[code] || code;\n this.code = code;\n this.data = data;\n}\n\nutil.inherits(ArchiverError, Error);\n\nexports = module.exports = ArchiverError;","/**\n * JSON Format Plugin\n *\n * @module plugins/json\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar inherits = require('util').inherits;\nvar Transform = require('readable-stream').Transform;\n\nvar crc32 = require('buffer-crc32');\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @param {(JsonOptions|TransformOptions)} options\n */\nvar Json = function(options) {\n if (!(this instanceof Json)) {\n return new Json(options);\n }\n\n options = this.options = util.defaults(options, {});\n\n Transform.call(this, options);\n\n this.supports = {\n directory: true,\n symlink: true\n };\n\n this.files = [];\n};\n\ninherits(Json, Transform);\n\n/**\n * [_transform description]\n *\n * @private\n * @param {Buffer} chunk\n * @param {String} encoding\n * @param {Function} callback\n * @return void\n */\nJson.prototype._transform = function(chunk, encoding, callback) {\n callback(null, chunk);\n};\n\n/**\n * [_writeStringified description]\n *\n * @private\n * @return void\n */\nJson.prototype._writeStringified = function() {\n var fileString = JSON.stringify(this.files);\n this.write(fileString);\n};\n\n/**\n * [append description]\n *\n * @param {(Buffer|Stream)} source\n * @param {EntryData} data\n * @param {Function} callback\n * @return void\n */\nJson.prototype.append = function(source, data, callback) {\n var self = this;\n\n data.crc32 = 0;\n\n function onend(err, sourceBuffer) {\n if (err) {\n callback(err);\n return;\n }\n\n data.size = sourceBuffer.length || 0;\n data.crc32 = crc32.unsigned(sourceBuffer);\n\n self.files.push(data);\n\n callback(null, data);\n }\n\n if (data.sourceType === 'buffer') {\n onend(null, source);\n } else if (data.sourceType === 'stream') {\n util.collectStream(source, onend);\n }\n};\n\n/**\n * [finalize description]\n *\n * @return void\n */\nJson.prototype.finalize = function() {\n this._writeStringified();\n this.end();\n};\n\nmodule.exports = Json;\n\n/**\n * @typedef {Object} JsonOptions\n * @global\n */\n","/**\n * TAR Format Plugin\n *\n * @module plugins/tar\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar zlib = require('zlib');\n\nvar engine = require('tar-stream');\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @param {TarOptions} options\n */\nvar Tar = function(options) {\n if (!(this instanceof Tar)) {\n return new Tar(options);\n }\n\n options = this.options = util.defaults(options, {\n gzip: false\n });\n\n if (typeof options.gzipOptions !== 'object') {\n options.gzipOptions = {};\n }\n\n this.supports = {\n directory: true,\n symlink: true\n };\n\n this.engine = engine.pack(options);\n this.compressor = false;\n\n if (options.gzip) {\n this.compressor = zlib.createGzip(options.gzipOptions);\n this.compressor.on('error', this._onCompressorError.bind(this));\n }\n};\n\n/**\n * [_onCompressorError description]\n *\n * @private\n * @param {Error} err\n * @return void\n */\nTar.prototype._onCompressorError = function(err) {\n this.engine.emit('error', err);\n};\n\n/**\n * [append description]\n *\n * @param {(Buffer|Stream)} source\n * @param {TarEntryData} data\n * @param {Function} callback\n * @return void\n */\nTar.prototype.append = function(source, data, callback) {\n var self = this;\n\n data.mtime = data.date;\n\n function append(err, sourceBuffer) {\n if (err) {\n callback(err);\n return;\n }\n\n self.engine.entry(data, sourceBuffer, function(err) {\n callback(err, data);\n });\n }\n\n if (data.sourceType === 'buffer') {\n append(null, source);\n } else if (data.sourceType === 'stream' && data.stats) {\n data.size = data.stats.size;\n\n var entry = self.engine.entry(data, function(err) {\n callback(err, data);\n });\n\n source.pipe(entry);\n } else if (data.sourceType === 'stream') {\n util.collectStream(source, append);\n }\n};\n\n/**\n * [finalize description]\n *\n * @return void\n */\nTar.prototype.finalize = function() {\n this.engine.finalize();\n};\n\n/**\n * [on description]\n *\n * @return this.engine\n */\nTar.prototype.on = function() {\n return this.engine.on.apply(this.engine, arguments);\n};\n\n/**\n * [pipe description]\n *\n * @param {String} destination\n * @param {Object} options\n * @return this.engine\n */\nTar.prototype.pipe = function(destination, options) {\n if (this.compressor) {\n return this.engine.pipe.apply(this.engine, [this.compressor]).pipe(destination, options);\n } else {\n return this.engine.pipe.apply(this.engine, arguments);\n }\n};\n\n/**\n * [unpipe description]\n *\n * @return this.engine\n */\nTar.prototype.unpipe = function() {\n if (this.compressor) {\n return this.compressor.unpipe.apply(this.compressor, arguments);\n } else {\n return this.engine.unpipe.apply(this.engine, arguments);\n }\n};\n\nmodule.exports = Tar;\n\n/**\n * @typedef {Object} TarOptions\n * @global\n * @property {Boolean} [gzip=false] Compress the tar archive using gzip.\n * @property {Object} [gzipOptions] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n * to control compression.\n * @property {*} [*] See [tar-stream]{@link https://github.com/mafintosh/tar-stream} documentation for additional properties.\n */\n\n/**\n * @typedef {Object} TarEntryData\n * @global\n * @property {String} name Sets the entry name including internal path.\n * @property {(String|Date)} [date=NOW()] Sets the entry date.\n * @property {Number} [mode=D:0755/F:0644] Sets the entry permissions.\n * @property {String} [prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @property {fs.Stats} [stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n */\n\n/**\n * TarStream Module\n * @external TarStream\n * @see {@link https://github.com/mafintosh/tar-stream}\n */\n","/**\n * ZIP Format Plugin\n *\n * @module plugins/zip\n * @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}\n * @copyright (c) 2012-2014 Chris Talkington, contributors.\n */\nvar engine = require('zip-stream');\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @param {ZipOptions} [options]\n * @param {String} [options.comment] Sets the zip archive comment.\n * @param {Boolean} [options.forceLocalTime=false] Forces the archive to contain local file times instead of UTC.\n * @param {Boolean} [options.forceZip64=false] Forces the archive to contain ZIP64 headers.\n * @param {Boolean} [options.namePrependSlash=false] Prepends a forward slash to archive file paths.\n * @param {Boolean} [options.store=false] Sets the compression method to STORE.\n * @param {Object} [options.zlib] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n */\nvar Zip = function(options) {\n if (!(this instanceof Zip)) {\n return new Zip(options);\n }\n\n options = this.options = util.defaults(options, {\n comment: '',\n forceUTC: false,\n namePrependSlash: false,\n store: false\n });\n\n this.supports = {\n directory: true,\n symlink: true\n };\n\n this.engine = new engine(options);\n};\n\n/**\n * @param {(Buffer|Stream)} source\n * @param {ZipEntryData} data\n * @param {String} data.name Sets the entry name including internal path.\n * @param {(String|Date)} [data.date=NOW()] Sets the entry date.\n * @param {Number} [data.mode=D:0755/F:0644] Sets the entry permissions.\n * @param {String} [data.prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @param {fs.Stats} [data.stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n * @param {Boolean} [data.store=ZipOptions.store] Sets the compression method to STORE.\n * @param {Function} callback\n * @return void\n */\nZip.prototype.append = function(source, data, callback) {\n this.engine.entry(source, data, callback);\n};\n\n/**\n * @return void\n */\nZip.prototype.finalize = function() {\n this.engine.finalize();\n};\n\n/**\n * @return this.engine\n */\nZip.prototype.on = function() {\n return this.engine.on.apply(this.engine, arguments);\n};\n\n/**\n * @return this.engine\n */\nZip.prototype.pipe = function() {\n return this.engine.pipe.apply(this.engine, arguments);\n};\n\n/**\n * @return this.engine\n */\nZip.prototype.unpipe = function() {\n return this.engine.unpipe.apply(this.engine, arguments);\n};\n\nmodule.exports = Zip;\n\n/**\n * @typedef {Object} ZipOptions\n * @global\n * @property {String} [comment] Sets the zip archive comment.\n * @property {Boolean} [forceLocalTime=false] Forces the archive to contain local file times instead of UTC.\n * @property {Boolean} [forceZip64=false] Forces the archive to contain ZIP64 headers.\n * @prpperty {Boolean} [namePrependSlash=false] Prepends a forward slash to archive file paths.\n * @property {Boolean} [store=false] Sets the compression method to STORE.\n * @property {Object} [zlib] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n * to control compression.\n * @property {*} [*] See [zip-stream]{@link https://archiverjs.com/zip-stream/ZipStream.html} documentation for current list of properties.\n */\n\n/**\n * @typedef {Object} ZipEntryData\n * @global\n * @property {String} name Sets the entry name including internal path.\n * @property {(String|Date)} [date=NOW()] Sets the entry date.\n * @property {Number} [mode=D:0755/F:0644] Sets the entry permissions.\n * @property {Boolean} [namePrependSlash=ZipOptions.namePrependSlash] Prepends a forward slash to archive file paths.\n * @property {String} [prefix] Sets a path prefix for the entry name. Useful\n * when working with methods like `directory` or `glob`.\n * @property {fs.Stats} [stats] Sets the fs stat data for this entry allowing\n * for reduction of fs stat calls when stat data is already known.\n * @property {Boolean} [store=ZipOptions.store] Sets the compression method to STORE.\n */\n\n/**\n * ZipStream Module\n * @external ZipStream\n * @see {@link https://www.archiverjs.com/zip-stream/ZipStream.html}\n */\n","'use strict';\nconst regex = '[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]';\n\nconst astralRegex = options => options && options.exact ? new RegExp(`^${regex}$`) : new RegExp(regex, 'g');\n\nmodule.exports = astralRegex;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.async = {}));\n})(this, (function (exports) { 'use strict';\n\n /**\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {Function} fn - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @returns {Function} the partially-applied function\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n */\n function apply(fn, ...args) {\n return (...callArgs) => fn(...args,...callArgs);\n }\n\n function initialParams (fn) {\n return function (...args/*, callback*/) {\n var callback = args.pop();\n return fn.call(this, args, callback);\n };\n }\n\n /* istanbul ignore file */\n\n var hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;\n var hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\n var hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\n function fallback(fn) {\n setTimeout(fn, 0);\n }\n\n function wrap(defer) {\n return (fn, ...args) => defer(() => fn(...args));\n }\n\n var _defer$1;\n\n if (hasQueueMicrotask) {\n _defer$1 = queueMicrotask;\n } else if (hasSetImmediate) {\n _defer$1 = setImmediate;\n } else if (hasNextTick) {\n _defer$1 = process.nextTick;\n } else {\n _defer$1 = fallback;\n }\n\n var setImmediate$1 = wrap(_defer$1);\n\n /**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\n function asyncify(func) {\n if (isAsync(func)) {\n return function (...args/*, callback*/) {\n const callback = args.pop();\n const promise = func.apply(this, args);\n return handlePromise(promise, callback)\n }\n }\n\n return initialParams(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (result && typeof result.then === 'function') {\n return handlePromise(result, callback)\n } else {\n callback(null, result);\n }\n });\n }\n\n function handlePromise(promise, callback) {\n return promise.then(value => {\n invokeCallback(callback, null, value);\n }, err => {\n invokeCallback(callback, err && (err instanceof Error || err.message) ? err : new Error(err));\n });\n }\n\n function invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (err) {\n setImmediate$1(e => { throw e }, err);\n }\n }\n\n function isAsync(fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n }\n\n function isAsyncGenerator(fn) {\n return fn[Symbol.toStringTag] === 'AsyncGenerator';\n }\n\n function isAsyncIterable(obj) {\n return typeof obj[Symbol.asyncIterator] === 'function';\n }\n\n function wrapAsync(asyncFn) {\n if (typeof asyncFn !== 'function') throw new Error('expected a function')\n return isAsync(asyncFn) ? asyncify(asyncFn) : asyncFn;\n }\n\n // conditionally promisify a function.\n // only return a promise if a callback is omitted\n function awaitify (asyncFn, arity) {\n if (!arity) arity = asyncFn.length;\n if (!arity) throw new Error('arity is undefined')\n function awaitable (...args) {\n if (typeof args[arity - 1] === 'function') {\n return asyncFn.apply(this, args)\n }\n\n return new Promise((resolve, reject) => {\n args[arity - 1] = (err, ...cbArgs) => {\n if (err) return reject(err)\n resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]);\n };\n asyncFn.apply(this, args);\n })\n }\n\n return awaitable\n }\n\n function applyEach$1 (eachfn) {\n return function applyEach(fns, ...callArgs) {\n const go = awaitify(function (callback) {\n var that = this;\n return eachfn(fns, (fn, cb) => {\n wrapAsync(fn).apply(that, callArgs.concat(cb));\n }, callback);\n });\n return go;\n };\n }\n\n function _asyncMap(eachfn, arr, iteratee, callback) {\n arr = arr || [];\n var results = [];\n var counter = 0;\n var _iteratee = wrapAsync(iteratee);\n\n return eachfn(arr, (value, _, iterCb) => {\n var index = counter++;\n _iteratee(value, (err, v) => {\n results[index] = v;\n iterCb(err);\n });\n }, err => {\n callback(err, results);\n });\n }\n\n function isArrayLike(value) {\n return value &&\n typeof value.length === 'number' &&\n value.length >= 0 &&\n value.length % 1 === 0;\n }\n\n // A temporary value used to identify if the loop should be broken.\n // See #1064, #1293\n const breakLoop = {};\n\n function once(fn) {\n function wrapper (...args) {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n }\n Object.assign(wrapper, fn);\n return wrapper\n }\n\n function getIterator (coll) {\n return coll[Symbol.iterator] && coll[Symbol.iterator]();\n }\n\n function createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? {value: coll[i], key: i} : null;\n }\n }\n\n function createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done)\n return null;\n i++;\n return {value: item.value, key: i};\n }\n }\n\n function createObjectIterator(obj) {\n var okeys = obj ? Object.keys(obj) : [];\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? {value: obj[key], key} : null;\n };\n }\n\n function createIterator(coll) {\n if (isArrayLike(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = getIterator(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n }\n\n function onlyOnce(fn) {\n return function (...args) {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n };\n }\n\n // for async generators\n function asyncEachOfLimit(generator, limit, iteratee, callback) {\n let done = false;\n let canceled = false;\n let awaiting = false;\n let running = 0;\n let idx = 0;\n\n function replenish() {\n //console.log('replenish')\n if (running >= limit || awaiting || done) return\n //console.log('replenish awaiting')\n awaiting = true;\n generator.next().then(({value, done: iterDone}) => {\n //console.log('got value', value)\n if (canceled || done) return\n awaiting = false;\n if (iterDone) {\n done = true;\n if (running <= 0) {\n //console.log('done nextCb')\n callback(null);\n }\n return;\n }\n running++;\n iteratee(value, idx, iterateeCallback);\n idx++;\n replenish();\n }).catch(handleError);\n }\n\n function iterateeCallback(err, result) {\n //console.log('iterateeCallback')\n running -= 1;\n if (canceled) return\n if (err) return handleError(err)\n\n if (err === false) {\n done = true;\n canceled = true;\n return\n }\n\n if (result === breakLoop || (done && running <= 0)) {\n done = true;\n //console.log('done iterCb')\n return callback(null);\n }\n replenish();\n }\n\n function handleError(err) {\n if (canceled) return\n awaiting = false;\n done = true;\n callback(err);\n }\n\n replenish();\n }\n\n var eachOfLimit$2 = (limit) => {\n return (obj, iteratee, callback) => {\n callback = once(callback);\n if (limit <= 0) {\n throw new RangeError('concurrency limit cannot be less than 1')\n }\n if (!obj) {\n return callback(null);\n }\n if (isAsyncGenerator(obj)) {\n return asyncEachOfLimit(obj, limit, iteratee, callback)\n }\n if (isAsyncIterable(obj)) {\n return asyncEachOfLimit(obj[Symbol.asyncIterator](), limit, iteratee, callback)\n }\n var nextElem = createIterator(obj);\n var done = false;\n var canceled = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n if (canceled) return\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n }\n else if (err === false) {\n done = true;\n canceled = true;\n }\n else if (value === breakLoop || (done && running <= 0)) {\n done = true;\n return callback(null);\n }\n else if (!looping) {\n replenish();\n }\n }\n\n function replenish () {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, onlyOnce(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n };\n\n /**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachOfLimit(coll, limit, iteratee, callback) {\n return eachOfLimit$2(limit)(coll, wrapAsync(iteratee), callback);\n }\n\n var eachOfLimit$1 = awaitify(eachOfLimit, 4);\n\n // eachOf implementation optimized for array-likes\n function eachOfArrayLike(coll, iteratee, callback) {\n callback = once(callback);\n var index = 0,\n completed = 0,\n {length} = coll,\n canceled = false;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err === false) {\n canceled = true;\n }\n if (canceled === true) return\n if (err) {\n callback(err);\n } else if ((++completed === length) || value === breakLoop) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, onlyOnce(iteratorCallback));\n }\n }\n\n // a generic version of eachOf which can handle array, object, and iterator cases.\n function eachOfGeneric (coll, iteratee, callback) {\n return eachOfLimit$1(coll, Infinity, iteratee, callback);\n }\n\n /**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dev.json is a file containing a valid json object config for dev environment\n * // dev.json is a file containing a valid json object config for test environment\n * // prod.json is a file containing a valid json object config for prod environment\n * // invalid.json is a file with a malformed json object\n *\n * let configs = {}; //global variable\n * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'};\n * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'};\n *\n * // asynchronous function that reads a json file and parses the contents as json object\n * function parseFile(file, key, callback) {\n * fs.readFile(file, \"utf8\", function(err, data) {\n * if (err) return calback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }\n *\n * // Using callbacks\n * async.forEachOf(validConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * } else {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * // JSON parse error exception\n * } else {\n * console.log(configs);\n * }\n * });\n *\n * // Using Promises\n * async.forEachOf(validConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }).catch( err => {\n * console.error(err);\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * }).catch( err => {\n * console.error(err);\n * // JSON parse error exception\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.forEachOf(validConfigFileMap, parseFile);\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * //Error handing\n * async () => {\n * try {\n * let result = await async.forEachOf(invalidConfigFileMap, parseFile);\n * console.log(configs);\n * }\n * catch (err) {\n * console.log(err);\n * // JSON parse error exception\n * }\n * }\n *\n */\n function eachOf(coll, iteratee, callback) {\n var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric;\n return eachOfImplementation(coll, wrapAsync(iteratee), callback);\n }\n\n var eachOf$1 = awaitify(eachOf, 3);\n\n /**\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callbacks\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines).\n *\n * @name map\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n * // file4.txt does not exist\n *\n * const fileList = ['file1.txt','file2.txt','file3.txt'];\n * const withMissingFileList = ['file1.txt','file2.txt','file4.txt'];\n *\n * // asynchronous function that returns the file size in bytes\n * function getFileSizeInBytes(file, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * callback(null, stat.size);\n * });\n * }\n *\n * // Using callbacks\n * async.map(fileList, getFileSizeInBytes, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now an array of the file size in bytes for each file, e.g.\n * // [ 1000, 2000, 3000]\n * }\n * });\n *\n * // Error Handling\n * async.map(withMissingFileList, getFileSizeInBytes, function(err, results) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * } else {\n * console.log(results);\n * }\n * });\n *\n * // Using Promises\n * async.map(fileList, getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * // results is now an array of the file size in bytes for each file, e.g.\n * // [ 1000, 2000, 3000]\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.map(withMissingFileList, getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.map(fileList, getFileSizeInBytes);\n * console.log(results);\n * // results is now an array of the file size in bytes for each file, e.g.\n * // [ 1000, 2000, 3000]\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let results = await async.map(withMissingFileList, getFileSizeInBytes);\n * console.log(results);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function map (coll, iteratee, callback) {\n return _asyncMap(eachOf$1, coll, iteratee, callback)\n }\n var map$1 = awaitify(map, 3);\n\n /**\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, `fns`, then it will return a function which lets you pass in the\n * arguments as if it were a single function call. If more arguments are\n * provided, `callback` is required while `args` is still optional. The results\n * for each of the applied async functions are passed to the final callback\n * as an array.\n *\n * @name applyEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} fns - A collection of {@link AsyncFunction}s\n * to all call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {AsyncFunction} - Returns a function that takes no args other than\n * an optional callback, that is the result of applying the `args` to each\n * of the functions.\n * @example\n *\n * const appliedFn = async.applyEach([enableSearch, updateSchema], 'bucket')\n *\n * appliedFn((err, results) => {\n * // results[0] is the results for `enableSearch`\n * // results[1] is the results for `updateSchema`\n * });\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async (bucket) => async.applyEach([enableSearch, updateSchema], bucket)(),\n * callback\n * );\n */\n var applyEach = applyEach$1(map$1);\n\n /**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachOfSeries(coll, iteratee, callback) {\n return eachOfLimit$1(coll, 1, iteratee, callback)\n }\n var eachOfSeries$1 = awaitify(eachOfSeries, 3);\n\n /**\n * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapSeries (coll, iteratee, callback) {\n return _asyncMap(eachOfSeries$1, coll, iteratee, callback)\n }\n var mapSeries$1 = awaitify(mapSeries, 3);\n\n /**\n * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.applyEach]{@link module:ControlFlow.applyEach}\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} fns - A collection of {@link AsyncFunction}s to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {AsyncFunction} - A function, that when called, is the result of\n * appling the `args` to the list of functions. It takes no args, other than\n * a callback.\n */\n var applyEachSeries = applyEach$1(mapSeries$1);\n\n const PROMISE_SYMBOL = Symbol('promiseCallback');\n\n function promiseCallback () {\n let resolve, reject;\n function callback (err, ...args) {\n if (err) return reject(err)\n resolve(args.length > 1 ? args : args[0]);\n }\n\n callback[PROMISE_SYMBOL] = new Promise((res, rej) => {\n resolve = res,\n reject = rej;\n });\n\n return callback\n }\n\n /**\n * Determines the best order for running the {@link AsyncFunction}s in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the {@link AsyncFunction}s pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * {@link AsyncFunction}s also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the {@link AsyncFunction} itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns {Promise} a promise, if a callback is not passed\n * @example\n *\n * //Using Callbacks\n * async.auto({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * // once the file is written let's email a link to it...\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * if (err) {\n * console.log('err = ', err);\n * }\n * console.log('results = ', results);\n * // results = {\n * // get_data: ['data', 'converted to array']\n * // make_folder; 'folder',\n * // write_file: 'filename'\n * // email_link: { file: 'filename', email: 'user@example.com' }\n * // }\n * });\n *\n * //Using Promises\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * // once the file is written let's email a link to it...\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }).then(results => {\n * console.log('results = ', results);\n * // results = {\n * // get_data: ['data', 'converted to array']\n * // make_folder; 'folder',\n * // write_file: 'filename'\n * // email_link: { file: 'filename', email: 'user@example.com' }\n * // }\n * }).catch(err => {\n * console.log('err = ', err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.auto({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * // once the file is written let's email a link to it...\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * });\n * console.log('results = ', results);\n * // results = {\n * // get_data: ['data', 'converted to array']\n * // make_folder; 'folder',\n * // write_file: 'filename'\n * // email_link: { file: 'filename', email: 'user@example.com' }\n * // }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function auto(tasks, concurrency, callback) {\n if (typeof concurrency !== 'number') {\n // concurrency is optional, shift the args.\n callback = concurrency;\n concurrency = null;\n }\n callback = once(callback || promiseCallback());\n var numTasks = Object.keys(tasks).length;\n if (!numTasks) {\n return callback(null);\n }\n if (!concurrency) {\n concurrency = numTasks;\n }\n\n var results = {};\n var runningTasks = 0;\n var canceled = false;\n var hasError = false;\n\n var listeners = Object.create(null);\n\n var readyTasks = [];\n\n // for cycle detection:\n var readyToCheck = []; // tasks that have been identified as reachable\n // without the possibility of returning to an ancestor task\n var uncheckedDependencies = {};\n\n Object.keys(tasks).forEach(key => {\n var task = tasks[key];\n if (!Array.isArray(task)) {\n // no dependencies\n enqueueTask(key, [task]);\n readyToCheck.push(key);\n return;\n }\n\n var dependencies = task.slice(0, task.length - 1);\n var remainingDependencies = dependencies.length;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n readyToCheck.push(key);\n return;\n }\n uncheckedDependencies[key] = remainingDependencies;\n\n dependencies.forEach(dependencyName => {\n if (!tasks[dependencyName]) {\n throw new Error('async.auto task `' + key +\n '` has a non-existent dependency `' +\n dependencyName + '` in ' +\n dependencies.join(', '));\n }\n addListener(dependencyName, () => {\n remainingDependencies--;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n }\n });\n });\n });\n\n checkForDeadlocks();\n processQueue();\n\n function enqueueTask(key, task) {\n readyTasks.push(() => runTask(key, task));\n }\n\n function processQueue() {\n if (canceled) return\n if (readyTasks.length === 0 && runningTasks === 0) {\n return callback(null, results);\n }\n while(readyTasks.length && runningTasks < concurrency) {\n var run = readyTasks.shift();\n run();\n }\n\n }\n\n function addListener(taskName, fn) {\n var taskListeners = listeners[taskName];\n if (!taskListeners) {\n taskListeners = listeners[taskName] = [];\n }\n\n taskListeners.push(fn);\n }\n\n function taskComplete(taskName) {\n var taskListeners = listeners[taskName] || [];\n taskListeners.forEach(fn => fn());\n processQueue();\n }\n\n\n function runTask(key, task) {\n if (hasError) return;\n\n var taskCallback = onlyOnce((err, ...result) => {\n runningTasks--;\n if (err === false) {\n canceled = true;\n return\n }\n if (result.length < 2) {\n [result] = result;\n }\n if (err) {\n var safeResults = {};\n Object.keys(results).forEach(rkey => {\n safeResults[rkey] = results[rkey];\n });\n safeResults[key] = result;\n hasError = true;\n listeners = Object.create(null);\n if (canceled) return\n callback(err, safeResults);\n } else {\n results[key] = result;\n taskComplete(key);\n }\n });\n\n runningTasks++;\n var taskFn = wrapAsync(task[task.length - 1]);\n if (task.length > 1) {\n taskFn(results, taskCallback);\n } else {\n taskFn(taskCallback);\n }\n }\n\n function checkForDeadlocks() {\n // Kahn's algorithm\n // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm\n // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html\n var currentTask;\n var counter = 0;\n while (readyToCheck.length) {\n currentTask = readyToCheck.pop();\n counter++;\n getDependents(currentTask).forEach(dependent => {\n if (--uncheckedDependencies[dependent] === 0) {\n readyToCheck.push(dependent);\n }\n });\n }\n\n if (counter !== numTasks) {\n throw new Error(\n 'async.auto cannot execute tasks due to a recursive dependency'\n );\n }\n }\n\n function getDependents(taskName) {\n var result = [];\n Object.keys(tasks).forEach(key => {\n const task = tasks[key];\n if (Array.isArray(task) && task.indexOf(taskName) >= 0) {\n result.push(key);\n }\n });\n return result;\n }\n\n return callback[PROMISE_SYMBOL]\n }\n\n var FN_ARGS = /^(?:async\\s)?(?:function)?\\s*(?:\\w+\\s*)?\\(([^)]+)\\)(?:\\s*{)/;\n var ARROW_FN_ARGS = /^(?:async\\s)?\\s*(?:\\(\\s*)?((?:[^)=\\s]\\s*)*)(?:\\)\\s*)?=>/;\n var FN_ARG_SPLIT = /,/;\n var FN_ARG = /(=.+)?(\\s*)$/;\n\n function stripComments(string) {\n let stripped = '';\n let index = 0;\n let endBlockComment = string.indexOf('*/');\n while (index < string.length) {\n if (string[index] === '/' && string[index+1] === '/') {\n // inline comment\n let endIndex = string.indexOf('\\n', index);\n index = (endIndex === -1) ? string.length : endIndex;\n } else if ((endBlockComment !== -1) && (string[index] === '/') && (string[index+1] === '*')) {\n // block comment\n let endIndex = string.indexOf('*/', index);\n if (endIndex !== -1) {\n index = endIndex + 2;\n endBlockComment = string.indexOf('*/', index);\n } else {\n stripped += string[index];\n index++;\n }\n } else {\n stripped += string[index];\n index++;\n }\n }\n return stripped;\n }\n\n function parseParams(func) {\n const src = stripComments(func.toString());\n let match = src.match(FN_ARGS);\n if (!match) {\n match = src.match(ARROW_FN_ARGS);\n }\n if (!match) throw new Error('could not parse args in autoInject\\nSource:\\n' + src)\n let [, args] = match;\n return args\n .replace(/\\s/g, '')\n .split(FN_ARG_SPLIT)\n .map((arg) => arg.replace(FN_ARG, '').trim());\n }\n\n /**\n * A dependency-injected version of the [async.auto]{@link module:ControlFlow.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to [async.auto]{@link module:ControlFlow.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.auto]{@link module:ControlFlow.auto}\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is an {@link AsyncFunction} of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback, and a `results` object with any completed\n * task results, similar to `auto`.\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n */\n function autoInject(tasks, callback) {\n var newTasks = {};\n\n Object.keys(tasks).forEach(key => {\n var taskFn = tasks[key];\n var params;\n var fnIsAsync = isAsync(taskFn);\n var hasNoDeps =\n (!fnIsAsync && taskFn.length === 1) ||\n (fnIsAsync && taskFn.length === 0);\n\n if (Array.isArray(taskFn)) {\n params = [...taskFn];\n taskFn = params.pop();\n\n newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn);\n } else if (hasNoDeps) {\n // no dependencies, use the function as-is\n newTasks[key] = taskFn;\n } else {\n params = parseParams(taskFn);\n if ((taskFn.length === 0 && !fnIsAsync) && params.length === 0) {\n throw new Error(\"autoInject task functions require explicit parameters.\");\n }\n\n // remove callback param\n if (!fnIsAsync) params.pop();\n\n newTasks[key] = params.concat(newTask);\n }\n\n function newTask(results, taskCb) {\n var newArgs = params.map(name => results[name]);\n newArgs.push(taskCb);\n wrapAsync(taskFn)(...newArgs);\n }\n });\n\n return auto(newTasks, callback);\n }\n\n // Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation\n // used for queues. This implementation assumes that the node provided by the user can be modified\n // to adjust the next and last properties. We implement only the minimal functionality\n // for queue support.\n class DLL {\n constructor() {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n removeLink(node) {\n if (node.prev) node.prev.next = node.next;\n else this.head = node.next;\n if (node.next) node.next.prev = node.prev;\n else this.tail = node.prev;\n\n node.prev = node.next = null;\n this.length -= 1;\n return node;\n }\n\n empty () {\n while(this.head) this.shift();\n return this;\n }\n\n insertAfter(node, newNode) {\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next) node.next.prev = newNode;\n else this.tail = newNode;\n node.next = newNode;\n this.length += 1;\n }\n\n insertBefore(node, newNode) {\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev) node.prev.next = newNode;\n else this.head = newNode;\n node.prev = newNode;\n this.length += 1;\n }\n\n unshift(node) {\n if (this.head) this.insertBefore(this.head, node);\n else setInitial(this, node);\n }\n\n push(node) {\n if (this.tail) this.insertAfter(this.tail, node);\n else setInitial(this, node);\n }\n\n shift() {\n return this.head && this.removeLink(this.head);\n }\n\n pop() {\n return this.tail && this.removeLink(this.tail);\n }\n\n toArray() {\n return [...this]\n }\n\n *[Symbol.iterator] () {\n var cur = this.head;\n while (cur) {\n yield cur.data;\n cur = cur.next;\n }\n }\n\n remove (testFn) {\n var curr = this.head;\n while(curr) {\n var {next} = curr;\n if (testFn(curr)) {\n this.removeLink(curr);\n }\n curr = next;\n }\n return this;\n }\n }\n\n function setInitial(dll, node) {\n dll.length = 1;\n dll.head = dll.tail = node;\n }\n\n function queue$1(worker, concurrency, payload) {\n if (concurrency == null) {\n concurrency = 1;\n }\n else if(concurrency === 0) {\n throw new RangeError('Concurrency must not be zero');\n }\n\n var _worker = wrapAsync(worker);\n var numRunning = 0;\n var workersList = [];\n const events = {\n error: [],\n drain: [],\n saturated: [],\n unsaturated: [],\n empty: []\n };\n\n function on (event, handler) {\n events[event].push(handler);\n }\n\n function once (event, handler) {\n const handleAndRemove = (...args) => {\n off(event, handleAndRemove);\n handler(...args);\n };\n events[event].push(handleAndRemove);\n }\n\n function off (event, handler) {\n if (!event) return Object.keys(events).forEach(ev => events[ev] = [])\n if (!handler) return events[event] = []\n events[event] = events[event].filter(ev => ev !== handler);\n }\n\n function trigger (event, ...args) {\n events[event].forEach(handler => handler(...args));\n }\n\n var processingScheduled = false;\n function _insert(data, insertAtFront, rejectOnError, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n\n var res, rej;\n function promiseCallback (err, ...args) {\n // we don't care about the error, let the global error handler\n // deal with it\n if (err) return rejectOnError ? rej(err) : res()\n if (args.length <= 1) return res(args[0])\n res(args);\n }\n\n var item = q._createTaskItem(\n data,\n rejectOnError ? promiseCallback :\n (callback || promiseCallback)\n );\n\n if (insertAtFront) {\n q._tasks.unshift(item);\n } else {\n q._tasks.push(item);\n }\n\n if (!processingScheduled) {\n processingScheduled = true;\n setImmediate$1(() => {\n processingScheduled = false;\n q.process();\n });\n }\n\n if (rejectOnError || !callback) {\n return new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n })\n }\n }\n\n function _createCB(tasks) {\n return function (err, ...args) {\n numRunning -= 1;\n\n for (var i = 0, l = tasks.length; i < l; i++) {\n var task = tasks[i];\n\n var index = workersList.indexOf(task);\n if (index === 0) {\n workersList.shift();\n } else if (index > 0) {\n workersList.splice(index, 1);\n }\n\n task.callback(err, ...args);\n\n if (err != null) {\n trigger('error', err, task.data);\n }\n }\n\n if (numRunning <= (q.concurrency - q.buffer) ) {\n trigger('unsaturated');\n }\n\n if (q.idle()) {\n trigger('drain');\n }\n q.process();\n };\n }\n\n function _maybeDrain(data) {\n if (data.length === 0 && q.idle()) {\n // call drain immediately if there are no tasks\n setImmediate$1(() => trigger('drain'));\n return true\n }\n return false\n }\n\n const eventMethod = (name) => (handler) => {\n if (!handler) {\n return new Promise((resolve, reject) => {\n once(name, (err, data) => {\n if (err) return reject(err)\n resolve(data);\n });\n })\n }\n off(name);\n on(name, handler);\n\n };\n\n var isProcessing = false;\n var q = {\n _tasks: new DLL(),\n _createTaskItem (data, callback) {\n return {\n data,\n callback\n };\n },\n *[Symbol.iterator] () {\n yield* q._tasks[Symbol.iterator]();\n },\n concurrency,\n payload,\n buffer: concurrency / 4,\n started: false,\n paused: false,\n push (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, false, false, callback))\n }\n return _insert(data, false, false, callback);\n },\n pushAsync (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, false, true, callback))\n }\n return _insert(data, false, true, callback);\n },\n kill () {\n off();\n q._tasks.empty();\n },\n unshift (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, true, false, callback))\n }\n return _insert(data, true, false, callback);\n },\n unshiftAsync (data, callback) {\n if (Array.isArray(data)) {\n if (_maybeDrain(data)) return\n return data.map(datum => _insert(datum, true, true, callback))\n }\n return _insert(data, true, true, callback);\n },\n remove (testFn) {\n q._tasks.remove(testFn);\n },\n process () {\n // Avoid trying to start too many processing operations. This can occur\n // when callbacks resolve synchronously (#1267).\n if (isProcessing) {\n return;\n }\n isProcessing = true;\n while(!q.paused && numRunning < q.concurrency && q._tasks.length){\n var tasks = [], data = [];\n var l = q._tasks.length;\n if (q.payload) l = Math.min(l, q.payload);\n for (var i = 0; i < l; i++) {\n var node = q._tasks.shift();\n tasks.push(node);\n workersList.push(node);\n data.push(node.data);\n }\n\n numRunning += 1;\n\n if (q._tasks.length === 0) {\n trigger('empty');\n }\n\n if (numRunning === q.concurrency) {\n trigger('saturated');\n }\n\n var cb = onlyOnce(_createCB(tasks));\n _worker(data, cb);\n }\n isProcessing = false;\n },\n length () {\n return q._tasks.length;\n },\n running () {\n return numRunning;\n },\n workersList () {\n return workersList;\n },\n idle() {\n return q._tasks.length + numRunning === 0;\n },\n pause () {\n q.paused = true;\n },\n resume () {\n if (q.paused === false) { return; }\n q.paused = false;\n setImmediate$1(q.process);\n }\n };\n // define these as fixed properties, so people get useful errors when updating\n Object.defineProperties(q, {\n saturated: {\n writable: false,\n value: eventMethod('saturated')\n },\n unsaturated: {\n writable: false,\n value: eventMethod('unsaturated')\n },\n empty: {\n writable: false,\n value: eventMethod('empty')\n },\n drain: {\n writable: false,\n value: eventMethod('drain')\n },\n error: {\n writable: false,\n value: eventMethod('error')\n },\n });\n return q;\n }\n\n /**\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [`queue`]{@link module:ControlFlow.queue} passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An asynchronous function for processing an array\n * of queued tasks. Invoked with `(tasks, callback)`.\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {module:ControlFlow.QueueObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i {\n * console.log(result);\n * // 6000\n * // which is the sum of the file sizes of the three files\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.reduce(withMissingFileList, 0, getFileSizeInBytes)\n * .then( result => {\n * console.log(result);\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.reduce(fileList, 0, getFileSizeInBytes);\n * console.log(result);\n * // 6000\n * // which is the sum of the file sizes of the three files\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let result = await async.reduce(withMissingFileList, 0, getFileSizeInBytes);\n * console.log(result);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function reduce(coll, memo, iteratee, callback) {\n callback = once(callback);\n var _iteratee = wrapAsync(iteratee);\n return eachOfSeries$1(coll, (x, i, iterCb) => {\n _iteratee(memo, x, (err, v) => {\n memo = v;\n iterCb(err);\n });\n }, err => callback(err, memo));\n }\n var reduce$1 = awaitify(reduce, 4);\n\n /**\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * [compose]{@link module:ControlFlow.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.compose]{@link module:ControlFlow.compose}\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * User.get.bind(User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n */\n function seq(...functions) {\n var _functions = functions.map(wrapAsync);\n return function (...args) {\n var that = this;\n\n var cb = args[args.length - 1];\n if (typeof cb == 'function') {\n args.pop();\n } else {\n cb = promiseCallback();\n }\n\n reduce$1(_functions, args, (newargs, fn, iterCb) => {\n fn.apply(that, newargs.concat((err, ...nextargs) => {\n iterCb(err, nextargs);\n }));\n },\n (err, results) => cb(err, ...results));\n\n return cb[PROMISE_SYMBOL]\n };\n }\n\n /**\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * If the last argument to the composed function is not a function, a promise\n * is returned when you call it.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n */\n function compose(...args) {\n return seq(...args.reverse());\n }\n\n /**\n * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapLimit (coll, limit, iteratee, callback) {\n return _asyncMap(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var mapLimit$1 = awaitify(mapLimit, 4);\n\n /**\n * The same as [`concat`]{@link module:Collections.concat} but runs a maximum of `limit` async operations at a time.\n *\n * @name concatLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @alias flatMapLimit\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @returns A Promise, if no callback is passed\n */\n function concatLimit(coll, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return mapLimit$1(coll, limit, (val, iterCb) => {\n _iteratee(val, (err, ...args) => {\n if (err) return iterCb(err);\n return iterCb(err, args);\n });\n }, (err, mapResults) => {\n var result = [];\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n result = result.concat(...mapResults[i]);\n }\n }\n\n return callback(err, result);\n });\n }\n var concatLimit$1 = awaitify(concatLimit, 4);\n\n /**\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. The results array will be returned in\n * the original order of `coll` passed to the `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @alias flatMap\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @returns A Promise, if no callback is passed\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * let directoryList = ['dir1','dir2','dir3'];\n * let withMissingDirectoryList = ['dir1','dir2','dir3', 'dir4'];\n *\n * // Using callbacks\n * async.concat(directoryList, fs.readdir, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // [ 'file1.txt', 'file2.txt', 'file3.txt', 'file4.txt', file5.txt ]\n * }\n * });\n *\n * // Error Handling\n * async.concat(withMissingDirectoryList, fs.readdir, function(err, results) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4 does not exist\n * } else {\n * console.log(results);\n * }\n * });\n *\n * // Using Promises\n * async.concat(directoryList, fs.readdir)\n * .then(results => {\n * console.log(results);\n * // [ 'file1.txt', 'file2.txt', 'file3.txt', 'file4.txt', file5.txt ]\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.concat(withMissingDirectoryList, fs.readdir)\n * .then(results => {\n * console.log(results);\n * }).catch(err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4 does not exist\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.concat(directoryList, fs.readdir);\n * console.log(results);\n * // [ 'file1.txt', 'file2.txt', 'file3.txt', 'file4.txt', file5.txt ]\n * } catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let results = await async.concat(withMissingDirectoryList, fs.readdir);\n * console.log(results);\n * } catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4 does not exist\n * }\n * }\n *\n */\n function concat(coll, iteratee, callback) {\n return concatLimit$1(coll, Infinity, iteratee, callback)\n }\n var concat$1 = awaitify(concat, 3);\n\n /**\n * The same as [`concat`]{@link module:Collections.concat} but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @alias flatMapSeries\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`.\n * The iteratee should complete with an array an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @returns A Promise, if no callback is passed\n */\n function concatSeries(coll, iteratee, callback) {\n return concatLimit$1(coll, 1, iteratee, callback)\n }\n var concatSeries$1 = awaitify(concatSeries, 3);\n\n /**\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to\n * [`auto`]{@link module:ControlFlow.auto}.\n *\n * @name constant\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {AsyncFunction} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n */\n function constant$1(...args) {\n return function (...ignoredArgs/*, callback*/) {\n var callback = ignoredArgs.pop();\n return callback(null, ...args);\n };\n }\n\n function _createTester(check, getResult) {\n return (eachfn, arr, _iteratee, cb) => {\n var testPassed = false;\n var testResult;\n const iteratee = wrapAsync(_iteratee);\n eachfn(arr, (value, _, callback) => {\n iteratee(value, (err, result) => {\n if (err || err === false) return callback(err);\n\n if (check(result) && !testResult) {\n testPassed = true;\n testResult = getResult(true, value);\n return callback(null, breakLoop);\n }\n callback();\n });\n }, err => {\n if (err) return cb(err);\n cb(null, testPassed ? testResult : getResult(false));\n });\n };\n }\n\n /**\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * [`detectSeries`]{@link module:Collections.detectSeries}.\n *\n * @name detect\n * @static\n * @memberOf module:Collections\n * @method\n * @alias find\n * @category Collections\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * async.detect(['file3.txt','file2.txt','dir1/file1.txt'], fileExists,\n * function(err, result) {\n * console.log(result);\n * // dir1/file1.txt\n * // result now equals the first file in the list that exists\n * }\n *);\n *\n * // Using Promises\n * async.detect(['file3.txt','file2.txt','dir1/file1.txt'], fileExists)\n * .then(result => {\n * console.log(result);\n * // dir1/file1.txt\n * // result now equals the first file in the list that exists\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.detect(['file3.txt','file2.txt','dir1/file1.txt'], fileExists);\n * console.log(result);\n * // dir1/file1.txt\n * // result now equals the file in the list that exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function detect(coll, iteratee, callback) {\n return _createTester(bool => bool, (res, item) => item)(eachOf$1, coll, iteratee, callback)\n }\n var detect$1 = awaitify(detect, 3);\n\n /**\n * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findLimit\n * @category Collections\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function detectLimit(coll, limit, iteratee, callback) {\n return _createTester(bool => bool, (res, item) => item)(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var detectLimit$1 = awaitify(detectLimit, 4);\n\n /**\n * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findSeries\n * @category Collections\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function detectSeries(coll, iteratee, callback) {\n return _createTester(bool => bool, (res, item) => item)(eachOfLimit$2(1), coll, iteratee, callback)\n }\n\n var detectSeries$1 = awaitify(detectSeries, 3);\n\n function consoleFunc(name) {\n return (fn, ...args) => wrapAsync(fn)(...args, (err, ...resultArgs) => {\n /* istanbul ignore else */\n if (typeof console === 'object') {\n /* istanbul ignore else */\n if (err) {\n /* istanbul ignore else */\n if (console.error) {\n console.error(err);\n }\n } else if (console[name]) { /* istanbul ignore else */\n resultArgs.forEach(x => console[name](x));\n }\n }\n })\n }\n\n /**\n * Logs the result of an [`async` function]{@link AsyncFunction} to the\n * `console` using `console.dir` to display the properties of the resulting object.\n * Only works in Node.js or in browsers that support `console.dir` and\n * `console.error` (such as FF and Chrome).\n * If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name dir\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n */\n var dir = consoleFunc('dir');\n\n /**\n * The post-check version of [`whilst`]{@link module:ControlFlow.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `iteratee` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - A function which is called each time `test`\n * passes. Invoked with (callback).\n * @param {AsyncFunction} test - asynchronous truth test to perform after each\n * execution of `iteratee`. Invoked with (...args, callback), where `...args` are the\n * non-error args from the previous callback of `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped.\n * `callback` will be passed an error and any arguments passed to the final\n * `iteratee`'s callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if no callback is passed\n */\n function doWhilst(iteratee, test, callback) {\n callback = onlyOnce(callback);\n var _fn = wrapAsync(iteratee);\n var _test = wrapAsync(test);\n var results;\n\n function next(err, ...args) {\n if (err) return callback(err);\n if (err === false) return;\n results = args;\n _test(...args, check);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (err === false) return;\n if (!truth) return callback(null, ...results);\n _fn(next);\n }\n\n return check(null, true);\n }\n\n var doWhilst$1 = awaitify(doWhilst, 3);\n\n /**\n * Like ['doWhilst']{@link module:ControlFlow.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.doWhilst]{@link module:ControlFlow.doWhilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {AsyncFunction} test - asynchronous truth test to perform after each\n * execution of `iteratee`. Invoked with (...args, callback), where `...args` are the\n * non-error args from the previous callback of `iteratee`\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if no callback is passed\n */\n function doUntil(iteratee, test, callback) {\n const _test = wrapAsync(test);\n return doWhilst$1(iteratee, (...args) => {\n const cb = args.pop();\n _test(...args, (err, truth) => cb (err, !truth));\n }, callback);\n }\n\n function _withoutIndex(iteratee) {\n return (value, index, callback) => iteratee(value, callback);\n }\n\n /**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt'];\n * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt'];\n *\n * // asynchronous function that deletes a file\n * const deleteFile = function(file, callback) {\n * fs.unlink(file, callback);\n * };\n *\n * // Using callbacks\n * async.each(fileList, deleteFile, function(err) {\n * if( err ) {\n * console.log(err);\n * } else {\n * console.log('All files have been deleted successfully');\n * }\n * });\n *\n * // Error Handling\n * async.each(withMissingFileList, deleteFile, function(err){\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using Promises\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * await async.each(files, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * await async.each(withMissingFileList, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * }\n * }\n *\n */\n function eachLimit$2(coll, iteratee, callback) {\n return eachOf$1(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n }\n\n var each = awaitify(eachLimit$2, 3);\n\n /**\n * The same as [`each`]{@link module:Collections.each} but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfLimit`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachLimit(coll, limit, iteratee, callback) {\n return eachOfLimit$2(limit)(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n }\n var eachLimit$1 = awaitify(eachLimit, 4);\n\n /**\n * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time.\n *\n * Note, that unlike [`each`]{@link module:Collections.each}, this function applies iteratee to each item\n * in series and therefore the iteratee functions will complete in order.\n\n * @name eachSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfSeries`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\n function eachSeries(coll, iteratee, callback) {\n return eachLimit$1(coll, 1, iteratee, callback)\n }\n var eachSeries$1 = awaitify(eachSeries, 3);\n\n /**\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained. ES2017 `async` functions are returned as-is -- they are immune\n * to Zalgo's corrupting influences, as they always resolve on a later tick.\n *\n * @name ensureAsync\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {AsyncFunction} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n */\n function ensureAsync(fn) {\n if (isAsync(fn)) return fn;\n return function (...args/*, callback*/) {\n var callback = args.pop();\n var sync = true;\n args.push((...innerArgs) => {\n if (sync) {\n setImmediate$1(() => callback(...innerArgs));\n } else {\n callback(...innerArgs);\n }\n });\n fn.apply(this, args);\n sync = false;\n };\n }\n\n /**\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf module:Collections\n * @method\n * @alias all\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = ['dir1/file1.txt','dir2/file3.txt','dir3/file5.txt'];\n * const withMissingFileList = ['file1.txt','file2.txt','file4.txt'];\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.every(fileList, fileExists, function(err, result) {\n * console.log(result);\n * // true\n * // result is true since every file exists\n * });\n *\n * async.every(withMissingFileList, fileExists, function(err, result) {\n * console.log(result);\n * // false\n * // result is false since NOT every file exists\n * });\n *\n * // Using Promises\n * async.every(fileList, fileExists)\n * .then( result => {\n * console.log(result);\n * // true\n * // result is true since every file exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * async.every(withMissingFileList, fileExists)\n * .then( result => {\n * console.log(result);\n * // false\n * // result is false since NOT every file exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.every(fileList, fileExists);\n * console.log(result);\n * // true\n * // result is true since every file exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * async () => {\n * try {\n * let result = await async.every(withMissingFileList, fileExists);\n * console.log(result);\n * // false\n * // result is false since NOT every file exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function every(coll, iteratee, callback) {\n return _createTester(bool => !bool, res => !res)(eachOf$1, coll, iteratee, callback)\n }\n var every$1 = awaitify(every, 3);\n\n /**\n * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function everyLimit(coll, limit, iteratee, callback) {\n return _createTester(bool => !bool, res => !res)(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var everyLimit$1 = awaitify(everyLimit, 4);\n\n /**\n * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in series.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function everySeries(coll, iteratee, callback) {\n return _createTester(bool => !bool, res => !res)(eachOfSeries$1, coll, iteratee, callback)\n }\n var everySeries$1 = awaitify(everySeries, 3);\n\n function filterArray(eachfn, arr, iteratee, callback) {\n var truthValues = new Array(arr.length);\n eachfn(arr, (x, index, iterCb) => {\n iteratee(x, (err, v) => {\n truthValues[index] = !!v;\n iterCb(err);\n });\n }, err => {\n if (err) return callback(err);\n var results = [];\n for (var i = 0; i < arr.length; i++) {\n if (truthValues[i]) results.push(arr[i]);\n }\n callback(null, results);\n });\n }\n\n function filterGeneric(eachfn, coll, iteratee, callback) {\n var results = [];\n eachfn(coll, (x, index, iterCb) => {\n iteratee(x, (err, v) => {\n if (err) return iterCb(err);\n if (v) {\n results.push({index, value: x});\n }\n iterCb(err);\n });\n }, err => {\n if (err) return callback(err);\n callback(null, results\n .sort((a, b) => a.index - b.index)\n .map(v => v.value));\n });\n }\n\n function _filter(eachfn, coll, iteratee, callback) {\n var filter = isArrayLike(coll) ? filterArray : filterGeneric;\n return filter(eachfn, coll, wrapAsync(iteratee), callback);\n }\n\n /**\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf module:Collections\n * @method\n * @alias select\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n *\n * const files = ['dir1/file1.txt','dir2/file3.txt','dir3/file6.txt'];\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.filter(files, fileExists, function(err, results) {\n * if(err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // [ 'dir1/file1.txt', 'dir2/file3.txt' ]\n * // results is now an array of the existing files\n * }\n * });\n *\n * // Using Promises\n * async.filter(files, fileExists)\n * .then(results => {\n * console.log(results);\n * // [ 'dir1/file1.txt', 'dir2/file3.txt' ]\n * // results is now an array of the existing files\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.filter(files, fileExists);\n * console.log(results);\n * // [ 'dir1/file1.txt', 'dir2/file3.txt' ]\n * // results is now an array of the existing files\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function filter (coll, iteratee, callback) {\n return _filter(eachOf$1, coll, iteratee, callback)\n }\n var filter$1 = awaitify(filter, 3);\n\n /**\n * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback provided\n */\n function filterLimit (coll, limit, iteratee, callback) {\n return _filter(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var filterLimit$1 = awaitify(filterLimit, 4);\n\n /**\n * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n * @returns {Promise} a promise, if no callback provided\n */\n function filterSeries (coll, iteratee, callback) {\n return _filter(eachOfSeries$1, coll, iteratee, callback)\n }\n var filterSeries$1 = awaitify(filterSeries, 3);\n\n /**\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the callback then `errback` is called with the\n * error, and execution stops, otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} fn - an async function to call repeatedly.\n * Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @returns {Promise} a promise that rejects if an error occurs and an errback\n * is not passed\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n */\n function forever(fn, errback) {\n var done = onlyOnce(errback);\n var task = wrapAsync(ensureAsync(fn));\n\n function next(err) {\n if (err) return done(err);\n if (err === false) return;\n task(next);\n }\n return next();\n }\n var forever$1 = awaitify(forever, 2);\n\n /**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs a maximum of `limit` async operations at a time.\n *\n * @name groupByLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n * @returns {Promise} a promise, if no callback is passed\n */\n function groupByLimit(coll, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return mapLimit$1(coll, limit, (val, iterCb) => {\n _iteratee(val, (err, key) => {\n if (err) return iterCb(err);\n return iterCb(err, {key, val});\n });\n }, (err, mapResults) => {\n var result = {};\n // from MDN, handle object having an `hasOwnProperty` prop\n var {hasOwnProperty} = Object.prototype;\n\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n var {key} = mapResults[i];\n var {val} = mapResults[i];\n\n if (hasOwnProperty.call(result, key)) {\n result[key].push(val);\n } else {\n result[key] = [val];\n }\n }\n }\n\n return callback(err, result);\n });\n }\n\n var groupByLimit$1 = awaitify(groupByLimit, 4);\n\n /**\n * Returns a new object, where each value corresponds to an array of items, from\n * `coll`, that returned the corresponding key. That is, the keys of the object\n * correspond to the values passed to the `iteratee` callback.\n *\n * Note: Since this function applies the `iteratee` to each item in parallel,\n * there is no guarantee that the `iteratee` functions will complete in order.\n * However, the values for each key in the `result` will be in the same order as\n * the original `coll`. For Objects, the values will roughly be in the order of\n * the original Objects' keys (but this can vary across JavaScript engines).\n *\n * @name groupBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const files = ['dir1/file1.txt','dir2','dir4']\n *\n * // asynchronous function that detects file type as none, file, or directory\n * function detectFile(file, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(null, 'none');\n * }\n * callback(null, stat.isDirectory() ? 'directory' : 'file');\n * });\n * }\n *\n * //Using callbacks\n * async.groupBy(files, detectFile, function(err, result) {\n * if(err) {\n * console.log(err);\n * } else {\n *\t console.log(result);\n * // {\n * // file: [ 'dir1/file1.txt' ],\n * // none: [ 'dir4' ],\n * // directory: [ 'dir2']\n * // }\n * // result is object containing the files grouped by type\n * }\n * });\n *\n * // Using Promises\n * async.groupBy(files, detectFile)\n * .then( result => {\n * console.log(result);\n * // {\n * // file: [ 'dir1/file1.txt' ],\n * // none: [ 'dir4' ],\n * // directory: [ 'dir2']\n * // }\n * // result is object containing the files grouped by type\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.groupBy(files, detectFile);\n * console.log(result);\n * // {\n * // file: [ 'dir1/file1.txt' ],\n * // none: [ 'dir4' ],\n * // directory: [ 'dir2']\n * // }\n * // result is object containing the files grouped by type\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function groupBy (coll, iteratee, callback) {\n return groupByLimit$1(coll, Infinity, iteratee, callback)\n }\n\n /**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs only a single async operation at a time.\n *\n * @name groupBySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whose\n * properties are arrays of values which returned the corresponding key.\n * @returns {Promise} a promise, if no callback is passed\n */\n function groupBySeries (coll, iteratee, callback) {\n return groupByLimit$1(coll, 1, iteratee, callback)\n }\n\n /**\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n */\n var log = consoleFunc('log');\n\n /**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapValuesLimit(obj, limit, iteratee, callback) {\n callback = once(callback);\n var newObj = {};\n var _iteratee = wrapAsync(iteratee);\n return eachOfLimit$2(limit)(obj, (val, key, next) => {\n _iteratee(val, key, (err, result) => {\n if (err) return next(err);\n newObj[key] = result;\n next(err);\n });\n }, err => callback(err, newObj));\n }\n\n var mapValuesLimit$1 = awaitify(mapValuesLimit, 4);\n\n /**\n * A relative of [`map`]{@link module:Collections.map}, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n * // file4.txt does not exist\n *\n * const fileMap = {\n * f1: 'file1.txt',\n * f2: 'file2.txt',\n * f3: 'file3.txt'\n * };\n *\n * const withMissingFileMap = {\n * f1: 'file1.txt',\n * f2: 'file2.txt',\n * f3: 'file4.txt'\n * };\n *\n * // asynchronous function that returns the file size in bytes\n * function getFileSizeInBytes(file, key, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * callback(null, stat.size);\n * });\n * }\n *\n * // Using callbacks\n * async.mapValues(fileMap, getFileSizeInBytes, function(err, result) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(result);\n * // result is now a map of file size in bytes for each file, e.g.\n * // {\n * // f1: 1000,\n * // f2: 2000,\n * // f3: 3000\n * // }\n * }\n * });\n *\n * // Error handling\n * async.mapValues(withMissingFileMap, getFileSizeInBytes, function(err, result) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * } else {\n * console.log(result);\n * }\n * });\n *\n * // Using Promises\n * async.mapValues(fileMap, getFileSizeInBytes)\n * .then( result => {\n * console.log(result);\n * // result is now a map of file size in bytes for each file, e.g.\n * // {\n * // f1: 1000,\n * // f2: 2000,\n * // f3: 3000\n * // }\n * }).catch (err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.mapValues(withMissingFileMap, getFileSizeInBytes)\n * .then( result => {\n * console.log(result);\n * }).catch (err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.mapValues(fileMap, getFileSizeInBytes);\n * console.log(result);\n * // result is now a map of file size in bytes for each file, e.g.\n * // {\n * // f1: 1000,\n * // f2: 2000,\n * // f3: 3000\n * // }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * let result = await async.mapValues(withMissingFileMap, getFileSizeInBytes);\n * console.log(result);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function mapValues(obj, iteratee, callback) {\n return mapValuesLimit$1(obj, Infinity, iteratee, callback)\n }\n\n /**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback is passed\n */\n function mapValuesSeries(obj, iteratee, callback) {\n return mapValuesLimit$1(obj, 1, iteratee, callback)\n }\n\n /**\n * Caches the results of an async function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * **Note: if the async function errs, the result will not be cached and\n * subsequent calls will call the wrapped function.**\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {AsyncFunction} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n */\n function memoize(fn, hasher = v => v) {\n var memo = Object.create(null);\n var queues = Object.create(null);\n var _fn = wrapAsync(fn);\n var memoized = initialParams((args, callback) => {\n var key = hasher(...args);\n if (key in memo) {\n setImmediate$1(() => callback(null, ...memo[key]));\n } else if (key in queues) {\n queues[key].push(callback);\n } else {\n queues[key] = [callback];\n _fn(...args, (err, ...resultArgs) => {\n // #1465 don't memoize if an error occurred\n if (!err) {\n memo[key] = resultArgs;\n }\n var q = queues[key];\n delete queues[key];\n for (var i = 0, l = q.length; i < l; i++) {\n q[i](err, ...resultArgs);\n }\n });\n }\n });\n memoized.memo = memo;\n memoized.unmemoized = fn;\n return memoized;\n }\n\n /* istanbul ignore file */\n\n /**\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `process.nextTick`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.setImmediate]{@link module:Utils.setImmediate}\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n */\n var _defer;\n\n if (hasNextTick) {\n _defer = process.nextTick;\n } else if (hasSetImmediate) {\n _defer = setImmediate;\n } else {\n _defer = fallback;\n }\n\n var nextTick = wrap(_defer);\n\n var _parallel = awaitify((eachfn, tasks, callback) => {\n var results = isArrayLike(tasks) ? [] : {};\n\n eachfn(tasks, (task, key, taskCb) => {\n wrapAsync(task)((err, ...result) => {\n if (result.length < 2) {\n [result] = result;\n }\n results[key] = result;\n taskCb(err);\n });\n }, err => callback(err, results));\n }, 3);\n\n /**\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * **Hint:** Use [`reflect`]{@link module:Utils.reflect} to continue the\n * execution of other tasks when a task fails.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @returns {Promise} a promise, if a callback is not passed\n *\n * @example\n *\n * //Using Callbacks\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two'] even though\n * // the second function had a shorter timeout.\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two'] even though\n * // the second function had a shorter timeout.\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function parallel(tasks, callback) {\n return _parallel(eachOf$1, tasks, callback);\n }\n\n /**\n * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallelLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.parallel]{@link module:ControlFlow.parallel}\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n * @returns {Promise} a promise, if a callback is not passed\n */\n function parallelLimit(tasks, limit, callback) {\n return _parallel(eachOfLimit$2(limit), tasks, callback);\n }\n\n /**\n * A queue of tasks for the worker function to complete.\n * @typedef {Iterable} QueueObject\n * @memberOf module:ControlFlow\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with `queue.length()`.\n * @property {boolean} started - a boolean indicating whether or not any\n * items have been pushed and processed by the queue.\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with `queue.running()`.\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with `queue.workersList()`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with `queue.idle()`.\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {number} payload - an integer that specifies how many items are\n * passed to the worker function at a time. only applies if this is a\n * [cargo]{@link module:ControlFlow.cargo} object\n * @property {AsyncFunction} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with `queue.push(task, [callback])`,\n * @property {AsyncFunction} unshift - add a new task to the front of the `queue`.\n * Invoke with `queue.unshift(task, [callback])`.\n * @property {AsyncFunction} pushAsync - the same as `q.push`, except this returns\n * a promise that rejects if an error occurs.\n * @property {AsyncFunction} unshiftAsync - the same as `q.unshift`, except this returns\n * a promise that rejects if an error occurs.\n * @property {Function} remove - remove items from the queue that match a test\n * function. The test function will be passed an object with a `data` property,\n * and a `priority` property, if this is a\n * [priorityQueue]{@link module:ControlFlow.priorityQueue} object.\n * Invoked with `queue.remove(testFn)`, where `testFn` is of the form\n * `function ({data, priority}) {}` and returns a Boolean.\n * @property {Function} saturated - a function that sets a callback that is\n * called when the number of running workers hits the `concurrency` limit, and\n * further tasks will be queued. If the callback is omitted, `q.saturated()`\n * returns a promise for the next occurrence.\n * @property {Function} unsaturated - a function that sets a callback that is\n * called when the number of running workers is less than the `concurrency` &\n * `buffer` limits, and further tasks will not be queued. If the callback is\n * omitted, `q.unsaturated()` returns a promise for the next occurrence.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a function that sets a callback that is called\n * when the last item from the `queue` is given to a `worker`. If the callback\n * is omitted, `q.empty()` returns a promise for the next occurrence.\n * @property {Function} drain - a function that sets a callback that is called\n * when the last item from the `queue` has returned from the `worker`. If the\n * callback is omitted, `q.drain()` returns a promise for the next occurrence.\n * @property {Function} error - a function that sets a callback that is called\n * when a task errors. Has the signature `function(error, task)`. If the\n * callback is omitted, `error()` returns a promise that rejects on the next\n * error.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with `queue.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with `queue.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. No more tasks\n * should be pushed to the queue after calling this function. Invoke with `queue.kill()`.\n *\n * @example\n * const q = async.queue(worker, 2)\n * q.push(item1)\n * q.push(item2)\n * q.push(item3)\n * // queues are iterable, spread into an array to inspect\n * const items = [...q] // [item1, item2, item3]\n * // or use for of\n * for (let item of q) {\n * console.log(item)\n * }\n *\n * q.drain(() => {\n * console.log('all done')\n * })\n * // or\n * await q.drain()\n */\n\n /**\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`. Invoked with (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can be\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain(function() {\n * console.log('all items have been processed');\n * });\n * // or await the end\n * await q.drain()\n *\n * // assign an error callback\n * q.error(function(err, task) {\n * console.error('task experienced an error');\n * });\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * // callback is optional\n * q.push({name: 'bar'});\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n */\n function queue (worker, concurrency) {\n var _worker = wrapAsync(worker);\n return queue$1((items, cb) => {\n _worker(items[0], cb);\n }, concurrency, 1);\n }\n\n // Binary min-heap implementation used for priority queue.\n // Implementation is stable, i.e. push time is considered for equal priorities\n class Heap {\n constructor() {\n this.heap = [];\n this.pushCount = Number.MIN_SAFE_INTEGER;\n }\n\n get length() {\n return this.heap.length;\n }\n\n empty () {\n this.heap = [];\n return this;\n }\n\n percUp(index) {\n let p;\n\n while (index > 0 && smaller(this.heap[index], this.heap[p=parent(index)])) {\n let t = this.heap[index];\n this.heap[index] = this.heap[p];\n this.heap[p] = t;\n\n index = p;\n }\n }\n\n percDown(index) {\n let l;\n\n while ((l=leftChi(index)) < this.heap.length) {\n if (l+1 < this.heap.length && smaller(this.heap[l+1], this.heap[l])) {\n l = l+1;\n }\n\n if (smaller(this.heap[index], this.heap[l])) {\n break;\n }\n\n let t = this.heap[index];\n this.heap[index] = this.heap[l];\n this.heap[l] = t;\n\n index = l;\n }\n }\n\n push(node) {\n node.pushCount = ++this.pushCount;\n this.heap.push(node);\n this.percUp(this.heap.length-1);\n }\n\n unshift(node) {\n return this.heap.push(node);\n }\n\n shift() {\n let [top] = this.heap;\n\n this.heap[0] = this.heap[this.heap.length-1];\n this.heap.pop();\n this.percDown(0);\n\n return top;\n }\n\n toArray() {\n return [...this];\n }\n\n *[Symbol.iterator] () {\n for (let i = 0; i < this.heap.length; i++) {\n yield this.heap[i].data;\n }\n }\n\n remove (testFn) {\n let j = 0;\n for (let i = 0; i < this.heap.length; i++) {\n if (!testFn(this.heap[i])) {\n this.heap[j] = this.heap[i];\n j++;\n }\n }\n\n this.heap.splice(j);\n\n for (let i = parent(this.heap.length-1); i >= 0; i--) {\n this.percDown(i);\n }\n\n return this;\n }\n }\n\n function leftChi(i) {\n return (i<<1)+1;\n }\n\n function parent(i) {\n return ((i+1)>>1)-1;\n }\n\n function smaller(x, y) {\n if (x.priority !== y.priority) {\n return x.priority < y.priority;\n }\n else {\n return x.pushCount < y.pushCount;\n }\n }\n\n /**\n * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`.\n * Invoked with (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are three\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * `pushAsync(task, priority, [callback])` - the same as `priorityQueue.push`,\n * except this returns a promise that rejects if an error occurs.\n * * The `unshift` and `unshiftAsync` methods were removed.\n */\n function priorityQueue(worker, concurrency) {\n // Start with a normal queue\n var q = queue(worker, concurrency);\n\n var {\n push,\n pushAsync\n } = q;\n\n q._tasks = new Heap();\n q._createTaskItem = ({data, priority}, callback) => {\n return {\n data,\n priority,\n callback\n };\n };\n\n function createDataItems(tasks, priority) {\n if (!Array.isArray(tasks)) {\n return {data: tasks, priority};\n }\n return tasks.map(data => { return {data, priority}; });\n }\n\n // Override push to accept second parameter representing priority\n q.push = function(data, priority = 0, callback) {\n return push(createDataItems(data, priority), callback);\n };\n\n q.pushAsync = function(data, priority = 0, callback) {\n return pushAsync(createDataItems(data, priority), callback);\n };\n\n // Remove unshift functions\n delete q.unshift;\n delete q.unshiftAsync;\n\n return q;\n }\n\n /**\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any of the `tasks` complete or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array containing [async functions]{@link AsyncFunction}\n * to run. Each function can complete with an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n */\n function race(tasks, callback) {\n callback = once(callback);\n if (!Array.isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions'));\n if (!tasks.length) return callback();\n for (var i = 0, l = tasks.length; i < l; i++) {\n wrapAsync(tasks[i])(callback);\n }\n }\n\n var race$1 = awaitify(race, 2);\n\n /**\n * Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reduce]{@link module:Collections.reduce}\n * @alias foldr\n * @category Collection\n * @param {Array} array - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction.\n * The `iteratee` should complete with the next state of the reduction.\n * If the iteratee completes with an error, the reduction is stopped and the\n * main `callback` is immediately called with the error.\n * Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @returns {Promise} a promise, if no callback is passed\n */\n function reduceRight (array, memo, iteratee, callback) {\n var reversed = [...array].reverse();\n return reduce$1(reversed, memo, iteratee, callback);\n }\n\n /**\n * Wraps the async function in another function that always completes with a\n * result object, even when it errors.\n *\n * The result object has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n */\n function reflect(fn) {\n var _fn = wrapAsync(fn);\n return initialParams(function reflectOn(args, reflectCallback) {\n args.push((error, ...cbArgs) => {\n let retVal = {};\n if (error) {\n retVal.error = error;\n }\n if (cbArgs.length > 0){\n var value = cbArgs;\n if (cbArgs.length <= 1) {\n [value] = cbArgs;\n }\n retVal.value = value;\n }\n reflectCallback(null, retVal);\n });\n\n return _fn.apply(this, args);\n });\n }\n\n /**\n * A helper function that wraps an array or an object of functions with `reflect`.\n *\n * @name reflectAll\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.reflect]{@link module:Utils.reflect}\n * @category Util\n * @param {Array|Object|Iterable} tasks - The collection of\n * [async functions]{@link AsyncFunction} to wrap in `async.reflect`.\n * @returns {Array} Returns an array of async functions, each wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n *\n * // an example using an object instead of an array\n * let tasks = {\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * two: function(callback) {\n * callback('two');\n * },\n * three: function(callback) {\n * setTimeout(function() {\n * callback(null, 'three');\n * }, 100);\n * }\n * };\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results.one.value = 'one'\n * // results.two.error = 'two'\n * // results.three.value = 'three'\n * });\n */\n function reflectAll(tasks) {\n var results;\n if (Array.isArray(tasks)) {\n results = tasks.map(reflect);\n } else {\n results = {};\n Object.keys(tasks).forEach(key => {\n results[key] = reflect.call(this, tasks[key]);\n });\n }\n return results;\n }\n\n function reject$2(eachfn, arr, _iteratee, callback) {\n const iteratee = wrapAsync(_iteratee);\n return _filter(eachfn, arr, (value, cb) => {\n iteratee(value, (err, v) => {\n cb(err, !v);\n });\n }, callback);\n }\n\n /**\n * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n *\n * const fileList = ['dir1/file1.txt','dir2/file3.txt','dir3/file6.txt'];\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.reject(fileList, fileExists, function(err, results) {\n * // [ 'dir3/file6.txt' ]\n * // results now equals an array of the non-existing files\n * });\n *\n * // Using Promises\n * async.reject(fileList, fileExists)\n * .then( results => {\n * console.log(results);\n * // [ 'dir3/file6.txt' ]\n * // results now equals an array of the non-existing files\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let results = await async.reject(fileList, fileExists);\n * console.log(results);\n * // [ 'dir3/file6.txt' ]\n * // results now equals an array of the non-existing files\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function reject (coll, iteratee, callback) {\n return reject$2(eachOf$1, coll, iteratee, callback)\n }\n var reject$1 = awaitify(reject, 3);\n\n /**\n * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function rejectLimit (coll, limit, iteratee, callback) {\n return reject$2(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var rejectLimit$1 = awaitify(rejectLimit, 4);\n\n /**\n * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback is passed\n */\n function rejectSeries (coll, iteratee, callback) {\n return reject$2(eachOfSeries$1, coll, iteratee, callback)\n }\n var rejectSeries$1 = awaitify(rejectSeries, 3);\n\n function constant(value) {\n return function () {\n return value;\n }\n }\n\n /**\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @see [async.retryable]{@link module:ControlFlow.retryable}\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * `errorFilter` - An optional synchronous function that is invoked on\n * erroneous result. If it returns `true` the retry attempts will continue;\n * if the function returns `false` the retry flow is aborted with the current\n * attempt's error and result being returned to the final callback.\n * Invoked with (err).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {AsyncFunction} task - An async function to retry.\n * Invoked with (callback).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n * @returns {Promise} a promise if no callback provided\n *\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod only when error condition satisfies, all other\n * // errors will abort the retry control flow and return to final callback\n * async.retry({\n * errorFilter: function(err) {\n * return err.message === 'Temporary error'; // only retry on a specific error\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // to retry individual methods that are not as reliable within other\n * // control flow functions, use the `retryable` wrapper:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retryable(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n *\n */\n const DEFAULT_TIMES = 5;\n const DEFAULT_INTERVAL = 0;\n\n function retry(opts, task, callback) {\n var options = {\n times: DEFAULT_TIMES,\n intervalFunc: constant(DEFAULT_INTERVAL)\n };\n\n if (arguments.length < 3 && typeof opts === 'function') {\n callback = task || promiseCallback();\n task = opts;\n } else {\n parseTimes(options, opts);\n callback = callback || promiseCallback();\n }\n\n if (typeof task !== 'function') {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n\n var _task = wrapAsync(task);\n\n var attempt = 1;\n function retryAttempt() {\n _task((err, ...args) => {\n if (err === false) return\n if (err && attempt++ < options.times &&\n (typeof options.errorFilter != 'function' ||\n options.errorFilter(err))) {\n setTimeout(retryAttempt, options.intervalFunc(attempt - 1));\n } else {\n callback(err, ...args);\n }\n });\n }\n\n retryAttempt();\n return callback[PROMISE_SYMBOL]\n }\n\n function parseTimes(acc, t) {\n if (typeof t === 'object') {\n acc.times = +t.times || DEFAULT_TIMES;\n\n acc.intervalFunc = typeof t.interval === 'function' ?\n t.interval :\n constant(+t.interval || DEFAULT_INTERVAL);\n\n acc.errorFilter = t.errorFilter;\n } else if (typeof t === 'number' || typeof t === 'string') {\n acc.times = +t || DEFAULT_TIMES;\n } else {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n }\n\n /**\n * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method\n * wraps a task and makes it retryable, rather than immediately calling it\n * with retries.\n *\n * @name retryable\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.retry]{@link module:ControlFlow.retry}\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`, except for a `opts.arity` that\n * is the arity of the `task` function, defaulting to `task.length`\n * @param {AsyncFunction} task - the asynchronous function to wrap.\n * This function will be passed any arguments passed to the returned wrapper.\n * Invoked with (...args, callback).\n * @returns {AsyncFunction} The wrapped function, which when invoked, will\n * retry on an error, based on the parameters specified in `opts`.\n * This function will accept the same parameters as `task`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n */\n function retryable (opts, task) {\n if (!task) {\n task = opts;\n opts = null;\n }\n let arity = (opts && opts.arity) || task.length;\n if (isAsync(task)) {\n arity += 1;\n }\n var _task = wrapAsync(task);\n return initialParams((args, callback) => {\n if (args.length < arity - 1 || callback == null) {\n args.push(callback);\n callback = promiseCallback();\n }\n function taskFn(cb) {\n _task(...args, cb);\n }\n\n if (opts) retry(opts, taskFn, callback);\n else retry(taskFn, callback);\n\n return callback[PROMISE_SYMBOL]\n });\n }\n\n /**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @return {Promise} a promise, if no callback is passed\n * @example\n *\n * //Using Callbacks\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two']\n * });\n *\n * // an example using objects instead of arrays\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two']\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function series(tasks, callback) {\n return _parallel(eachOfSeries$1, tasks, callback);\n }\n\n /**\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf module:Collections\n * @method\n * @alias any\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * // asynchronous function that checks if a file exists\n * function fileExists(file, callback) {\n * fs.access(file, fs.constants.F_OK, (err) => {\n * callback(null, !err);\n * });\n * }\n *\n * // Using callbacks\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir3/file5.txt'], fileExists,\n * function(err, result) {\n * console.log(result);\n * // true\n * // result is true since some file in the list exists\n * }\n *);\n *\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir4/missing.txt'], fileExists,\n * function(err, result) {\n * console.log(result);\n * // false\n * // result is false since none of the files exists\n * }\n *);\n *\n * // Using Promises\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir3/file5.txt'], fileExists)\n * .then( result => {\n * console.log(result);\n * // true\n * // result is true since some file in the list exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * async.some(['dir1/missing.txt','dir2/missing.txt','dir4/missing.txt'], fileExists)\n * .then( result => {\n * console.log(result);\n * // false\n * // result is false since none of the files exists\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.some(['dir1/missing.txt','dir2/missing.txt','dir3/file5.txt'], fileExists);\n * console.log(result);\n * // true\n * // result is true since some file in the list exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * async () => {\n * try {\n * let result = await async.some(['dir1/missing.txt','dir2/missing.txt','dir4/missing.txt'], fileExists);\n * console.log(result);\n * // false\n * // result is false since none of the files exists\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function some(coll, iteratee, callback) {\n return _createTester(Boolean, res => res)(eachOf$1, coll, iteratee, callback)\n }\n var some$1 = awaitify(some, 3);\n\n /**\n * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anyLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function someLimit(coll, limit, iteratee, callback) {\n return _createTester(Boolean, res => res)(eachOfLimit$2(limit), coll, iteratee, callback)\n }\n var someLimit$1 = awaitify(someLimit, 4);\n\n /**\n * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anySeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in series.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n */\n function someSeries(coll, iteratee, callback) {\n return _createTester(Boolean, res => res)(eachOfSeries$1, coll, iteratee, callback)\n }\n var someSeries$1 = awaitify(someSeries, 3);\n\n /**\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a value to use as the sort criteria as\n * its `result`.\n * Invoked with (item, callback).\n * @param {Function} callback - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @returns {Promise} a promise, if no callback passed\n * @example\n *\n * // bigfile.txt is a file that is 251100 bytes in size\n * // mediumfile.txt is a file that is 11000 bytes in size\n * // smallfile.txt is a file that is 121 bytes in size\n *\n * // asynchronous function that returns the file size in bytes\n * function getFileSizeInBytes(file, callback) {\n * fs.stat(file, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * callback(null, stat.size);\n * });\n * }\n *\n * // Using callbacks\n * async.sortBy(['mediumfile.txt','smallfile.txt','bigfile.txt'], getFileSizeInBytes,\n * function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }\n * }\n * );\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy(['mediumfile.txt','smallfile.txt','bigfile.txt'], function(file, callback) {\n * getFileSizeInBytes(file, function(getFileSizeErr, fileSize) {\n * if (getFileSizeErr) return callback(getFileSizeErr);\n * callback(null, fileSize);\n * });\n * }, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }\n * }\n * );\n *\n * // descending order\n * async.sortBy(['bigfile.txt','mediumfile.txt','smallfile.txt'], function(file, callback) {\n * getFileSizeInBytes(file, function(getFileSizeErr, fileSize) {\n * if (getFileSizeErr) {\n * return callback(getFileSizeErr);\n * }\n * callback(null, fileSize * -1);\n * });\n * }, function(err, results) {\n * if (err) {\n * console.log(err);\n * } else {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'bigfile.txt', 'mediumfile.txt', 'smallfile.txt']\n * }\n * }\n * );\n *\n * // Error handling\n * async.sortBy(['mediumfile.txt','smallfile.txt','missingfile.txt'], getFileSizeInBytes,\n * function(err, results) {\n * if (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * } else {\n * console.log(results);\n * }\n * }\n * );\n *\n * // Using Promises\n * async.sortBy(['mediumfile.txt','smallfile.txt','bigfile.txt'], getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error handling\n * async.sortBy(['mediumfile.txt','smallfile.txt','missingfile.txt'], getFileSizeInBytes)\n * .then( results => {\n * console.log(results);\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * });\n *\n * // Using async/await\n * (async () => {\n * try {\n * let results = await async.sortBy(['bigfile.txt','mediumfile.txt','smallfile.txt'], getFileSizeInBytes);\n * console.log(results);\n * // results is now the original array of files sorted by\n * // file size (ascending by default), e.g.\n * // [ 'smallfile.txt', 'mediumfile.txt', 'bigfile.txt']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * })();\n *\n * // Error handling\n * async () => {\n * try {\n * let results = await async.sortBy(['missingfile.txt','mediumfile.txt','smallfile.txt'], getFileSizeInBytes);\n * console.log(results);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * }\n * }\n *\n */\n function sortBy (coll, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return map$1(coll, (x, iterCb) => {\n _iteratee(x, (err, criteria) => {\n if (err) return iterCb(err);\n iterCb(err, {value: x, criteria});\n });\n }, (err, results) => {\n if (err) return callback(err);\n callback(null, results.sort(comparator).map(v => v.value));\n });\n\n function comparator(left, right) {\n var a = left.criteria, b = right.criteria;\n return a < b ? -1 : a > b ? 1 : 0;\n }\n }\n var sortBy$1 = awaitify(sortBy, 3);\n\n /**\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} asyncFn - The async function to limit in time.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {AsyncFunction} Returns a wrapped function that can be used with any\n * of the control flow functions.\n * Invoke this function with the same parameters as you would `asyncFunc`.\n * @example\n *\n * function myFunction(foo, callback) {\n * doAsyncTask(foo, function(err, data) {\n * // handle errors\n * if (err) return callback(err);\n *\n * // do some stuff ...\n *\n * // return processed data\n * return callback(null, data);\n * });\n * }\n *\n * var wrapped = async.timeout(myFunction, 1000);\n *\n * // call `wrapped` as you would `myFunction`\n * wrapped({ bar: 'bar' }, function(err, data) {\n * // if `myFunction` takes < 1000 ms to execute, `err`\n * // and `data` will have their expected values\n *\n * // else `err` will be an Error with the code 'ETIMEDOUT'\n * });\n */\n function timeout(asyncFn, milliseconds, info) {\n var fn = wrapAsync(asyncFn);\n\n return initialParams((args, callback) => {\n var timedOut = false;\n var timer;\n\n function timeoutCallback() {\n var name = asyncFn.name || 'anonymous';\n var error = new Error('Callback function \"' + name + '\" timed out.');\n error.code = 'ETIMEDOUT';\n if (info) {\n error.info = info;\n }\n timedOut = true;\n callback(error);\n }\n\n args.push((...cbArgs) => {\n if (!timedOut) {\n callback(...cbArgs);\n clearTimeout(timer);\n }\n });\n\n // setup timer and call original function\n timer = setTimeout(timeoutCallback, milliseconds);\n fn(...args);\n });\n }\n\n function range(size) {\n var result = Array(size);\n while (size--) {\n result[size] = size;\n }\n return result;\n }\n\n /**\n * The same as [times]{@link module:ControlFlow.times} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name timesLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see [async.map]{@link module:Collections.map}.\n * @returns {Promise} a promise, if no callback is provided\n */\n function timesLimit(count, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n return mapLimit$1(range(count), limit, _iteratee, callback);\n }\n\n /**\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with [map]{@link module:Collections.map}.\n *\n * @name times\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n * @returns {Promise} a promise, if no callback is provided\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n */\n function times (n, iteratee, callback) {\n return timesLimit(n, Infinity, iteratee, callback)\n }\n\n /**\n * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n * @returns {Promise} a promise, if no callback is provided\n */\n function timesSeries (n, iteratee, callback) {\n return timesLimit(n, 1, iteratee, callback)\n }\n\n /**\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in parallel, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @returns {Promise} a promise, if no callback provided\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n *\n * // helper function that returns human-readable size format from bytes\n * function formatBytes(bytes, decimals = 2) {\n * // implementation not included for brevity\n * return humanReadbleFilesize;\n * }\n *\n * const fileList = ['file1.txt','file2.txt','file3.txt'];\n *\n * // asynchronous function that returns the file size, transformed to human-readable format\n * // e.g. 1024 bytes = 1KB, 1234 bytes = 1.21 KB, 1048576 bytes = 1MB, etc.\n * function transformFileSize(acc, value, key, callback) {\n * fs.stat(value, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * acc[key] = formatBytes(stat.size);\n * callback(null);\n * });\n * }\n *\n * // Using callbacks\n * async.transform(fileList, transformFileSize, function(err, result) {\n * if(err) {\n * console.log(err);\n * } else {\n * console.log(result);\n * // [ '1000 Bytes', '1.95 KB', '2.93 KB' ]\n * }\n * });\n *\n * // Using Promises\n * async.transform(fileList, transformFileSize)\n * .then(result => {\n * console.log(result);\n * // [ '1000 Bytes', '1.95 KB', '2.93 KB' ]\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * (async () => {\n * try {\n * let result = await async.transform(fileList, transformFileSize);\n * console.log(result);\n * // [ '1000 Bytes', '1.95 KB', '2.93 KB' ]\n * }\n * catch (err) {\n * console.log(err);\n * }\n * })();\n *\n * @example\n *\n * // file1.txt is a file that is 1000 bytes in size\n * // file2.txt is a file that is 2000 bytes in size\n * // file3.txt is a file that is 3000 bytes in size\n *\n * // helper function that returns human-readable size format from bytes\n * function formatBytes(bytes, decimals = 2) {\n * // implementation not included for brevity\n * return humanReadbleFilesize;\n * }\n *\n * const fileMap = { f1: 'file1.txt', f2: 'file2.txt', f3: 'file3.txt' };\n *\n * // asynchronous function that returns the file size, transformed to human-readable format\n * // e.g. 1024 bytes = 1KB, 1234 bytes = 1.21 KB, 1048576 bytes = 1MB, etc.\n * function transformFileSize(acc, value, key, callback) {\n * fs.stat(value, function(err, stat) {\n * if (err) {\n * return callback(err);\n * }\n * acc[key] = formatBytes(stat.size);\n * callback(null);\n * });\n * }\n *\n * // Using callbacks\n * async.transform(fileMap, transformFileSize, function(err, result) {\n * if(err) {\n * console.log(err);\n * } else {\n * console.log(result);\n * // { f1: '1000 Bytes', f2: '1.95 KB', f3: '2.93 KB' }\n * }\n * });\n *\n * // Using Promises\n * async.transform(fileMap, transformFileSize)\n * .then(result => {\n * console.log(result);\n * // { f1: '1000 Bytes', f2: '1.95 KB', f3: '2.93 KB' }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.transform(fileMap, transformFileSize);\n * console.log(result);\n * // { f1: '1000 Bytes', f2: '1.95 KB', f3: '2.93 KB' }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\n function transform (coll, accumulator, iteratee, callback) {\n if (arguments.length <= 3 && typeof accumulator === 'function') {\n callback = iteratee;\n iteratee = accumulator;\n accumulator = Array.isArray(coll) ? [] : {};\n }\n callback = once(callback || promiseCallback());\n var _iteratee = wrapAsync(iteratee);\n\n eachOf$1(coll, (v, k, cb) => {\n _iteratee(accumulator, v, k, cb);\n }, err => callback(err, accumulator));\n return callback[PROMISE_SYMBOL]\n }\n\n /**\n * It runs each task in series but stops whenever any of the functions were\n * successful. If one of the tasks were successful, the `callback` will be\n * passed the result of the successful task. If all tasks fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name tryEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing functions to\n * run, each function is passed a `callback(err, result)` it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback which is called when one\n * of the tasks has succeeded, or all have failed. It receives the `err` and\n * `result` arguments of the last attempt at completing the `task`. Invoked with\n * (err, results).\n * @returns {Promise} a promise, if no callback is passed\n * @example\n * async.tryEach([\n * function getDataFromFirstWebsite(callback) {\n * // Try getting the data from the first website\n * callback(err, data);\n * },\n * function getDataFromSecondWebsite(callback) {\n * // First website failed,\n * // Try getting the data from the backup website\n * callback(err, data);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * Now do something with the data.\n * });\n *\n */\n function tryEach(tasks, callback) {\n var error = null;\n var result;\n return eachSeries$1(tasks, (task, taskCb) => {\n wrapAsync(task)((err, ...args) => {\n if (err === false) return taskCb(err);\n\n if (args.length < 2) {\n [result] = args;\n } else {\n result = args;\n }\n error = err;\n taskCb(err ? null : {});\n });\n }, () => callback(error, result));\n }\n\n var tryEach$1 = awaitify(tryEach);\n\n /**\n * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.memoize]{@link module:Utils.memoize}\n * @category Util\n * @param {AsyncFunction} fn - the memoized function\n * @returns {AsyncFunction} a function that calls the original unmemoized function\n */\n function unmemoize(fn) {\n return (...args) => {\n return (fn.unmemoized || fn)(...args);\n };\n }\n\n /**\n * Repeatedly call `iteratee`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `iteratee`. Invoked with (callback).\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if no callback is passed\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function test(cb) { cb(null, count < 5); },\n * function iter(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n */\n function whilst(test, iteratee, callback) {\n callback = onlyOnce(callback);\n var _fn = wrapAsync(iteratee);\n var _test = wrapAsync(test);\n var results = [];\n\n function next(err, ...rest) {\n if (err) return callback(err);\n results = rest;\n if (err === false) return;\n _test(check);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (err === false) return;\n if (!truth) return callback(null, ...results);\n _fn(next);\n }\n\n return _test(check);\n }\n var whilst$1 = awaitify(whilst, 3);\n\n /**\n * Repeatedly call `iteratee` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `iteratee`'s callback.\n *\n * The inverse of [whilst]{@link module:ControlFlow.whilst}.\n *\n * @name until\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `iteratee`. Invoked with (callback).\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns {Promise} a promise, if a callback is not passed\n *\n * @example\n * const results = []\n * let finished = false\n * async.until(function test(cb) {\n * cb(null, finished)\n * }, function iter(next) {\n * fetchPage(url, (err, body) => {\n * if (err) return next(err)\n * results = results.concat(body.objects)\n * finished = !!body.next\n * next(err)\n * })\n * }, function done (err) {\n * // all pages have been fetched\n * })\n */\n function until(test, iteratee, callback) {\n const _test = wrapAsync(test);\n return whilst$1((cb) => _test((err, truth) => cb (err, !truth)), iteratee, callback);\n }\n\n /**\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array of [async functions]{@link AsyncFunction}\n * to run.\n * Each function should complete with any number of `result` values.\n * The `result` values will be passed as arguments, in order, to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n */\n function waterfall (tasks, callback) {\n callback = once(callback);\n if (!Array.isArray(tasks)) return callback(new Error('First argument to waterfall must be an array of functions'));\n if (!tasks.length) return callback();\n var taskIndex = 0;\n\n function nextTask(args) {\n var task = wrapAsync(tasks[taskIndex++]);\n task(...args, onlyOnce(next));\n }\n\n function next(err, ...args) {\n if (err === false) return\n if (err || taskIndex === tasks.length) {\n return callback(err, ...args);\n }\n nextTask(args);\n }\n\n nextTask([]);\n }\n\n var waterfall$1 = awaitify(waterfall);\n\n /**\n * An \"async function\" in the context of Async is an asynchronous function with\n * a variable number of parameters, with the final parameter being a callback.\n * (`function (arg1, arg2, ..., callback) {}`)\n * The final callback is of the form `callback(err, results...)`, which must be\n * called once the function is completed. The callback should be called with a\n * Error as its first argument to signal that an error occurred.\n * Otherwise, if no error occurred, it should be called with `null` as the first\n * argument, and any additional `result` arguments that may apply, to signal\n * successful completion.\n * The callback must be called exactly once, ideally on a later tick of the\n * JavaScript event loop.\n *\n * This type of function is also referred to as a \"Node-style async function\",\n * or a \"continuation passing-style function\" (CPS). Most of the methods of this\n * library are themselves CPS/Node-style async functions, or functions that\n * return CPS/Node-style async functions.\n *\n * Wherever we accept a Node-style async function, we also directly accept an\n * [ES2017 `async` function]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function}.\n * In this case, the `async` function will not be passed a final callback\n * argument, and any thrown error will be used as the `err` argument of the\n * implicit callback, and the return value will be used as the `result` value.\n * (i.e. a `rejected` of the returned Promise becomes the `err` callback\n * argument, and a `resolved` value becomes the `result`.)\n *\n * Note, due to JavaScript limitations, we can only detect native `async`\n * functions and not transpilied implementations.\n * Your environment must have `async`/`await` support for this to work.\n * (e.g. Node > v7.6, or a recent version of a modern browser).\n * If you are using `async` functions through a transpiler (e.g. Babel), you\n * must still wrap the function with [asyncify]{@link module:Utils.asyncify},\n * because the `async function` will be compiled to an ordinary function that\n * returns a promise.\n *\n * @typedef {Function} AsyncFunction\n * @static\n */\n\n\n var index = {\n apply,\n applyEach,\n applyEachSeries,\n asyncify,\n auto,\n autoInject,\n cargo: cargo$1,\n cargoQueue: cargo,\n compose,\n concat: concat$1,\n concatLimit: concatLimit$1,\n concatSeries: concatSeries$1,\n constant: constant$1,\n detect: detect$1,\n detectLimit: detectLimit$1,\n detectSeries: detectSeries$1,\n dir,\n doUntil,\n doWhilst: doWhilst$1,\n each,\n eachLimit: eachLimit$1,\n eachOf: eachOf$1,\n eachOfLimit: eachOfLimit$1,\n eachOfSeries: eachOfSeries$1,\n eachSeries: eachSeries$1,\n ensureAsync,\n every: every$1,\n everyLimit: everyLimit$1,\n everySeries: everySeries$1,\n filter: filter$1,\n filterLimit: filterLimit$1,\n filterSeries: filterSeries$1,\n forever: forever$1,\n groupBy,\n groupByLimit: groupByLimit$1,\n groupBySeries,\n log,\n map: map$1,\n mapLimit: mapLimit$1,\n mapSeries: mapSeries$1,\n mapValues,\n mapValuesLimit: mapValuesLimit$1,\n mapValuesSeries,\n memoize,\n nextTick,\n parallel,\n parallelLimit,\n priorityQueue,\n queue,\n race: race$1,\n reduce: reduce$1,\n reduceRight,\n reflect,\n reflectAll,\n reject: reject$1,\n rejectLimit: rejectLimit$1,\n rejectSeries: rejectSeries$1,\n retry,\n retryable,\n seq,\n series,\n setImmediate: setImmediate$1,\n some: some$1,\n someLimit: someLimit$1,\n someSeries: someSeries$1,\n sortBy: sortBy$1,\n timeout,\n times,\n timesLimit,\n timesSeries,\n transform,\n tryEach: tryEach$1,\n unmemoize,\n until,\n waterfall: waterfall$1,\n whilst: whilst$1,\n\n // aliases\n all: every$1,\n allLimit: everyLimit$1,\n allSeries: everySeries$1,\n any: some$1,\n anyLimit: someLimit$1,\n anySeries: someSeries$1,\n find: detect$1,\n findLimit: detectLimit$1,\n findSeries: detectSeries$1,\n flatMap: concat$1,\n flatMapLimit: concatLimit$1,\n flatMapSeries: concatSeries$1,\n forEach: each,\n forEachSeries: eachSeries$1,\n forEachLimit: eachLimit$1,\n forEachOf: eachOf$1,\n forEachOfSeries: eachOfSeries$1,\n forEachOfLimit: eachOfLimit$1,\n inject: reduce$1,\n foldl: reduce$1,\n foldr: reduceRight,\n select: filter$1,\n selectLimit: filterLimit$1,\n selectSeries: filterSeries$1,\n wrapSync: asyncify,\n during: whilst$1,\n doDuring: doWhilst$1\n };\n\n exports.all = every$1;\n exports.allLimit = everyLimit$1;\n exports.allSeries = everySeries$1;\n exports.any = some$1;\n exports.anyLimit = someLimit$1;\n exports.anySeries = someSeries$1;\n exports.apply = apply;\n exports.applyEach = applyEach;\n exports.applyEachSeries = applyEachSeries;\n exports.asyncify = asyncify;\n exports.auto = auto;\n exports.autoInject = autoInject;\n exports.cargo = cargo$1;\n exports.cargoQueue = cargo;\n exports.compose = compose;\n exports.concat = concat$1;\n exports.concatLimit = concatLimit$1;\n exports.concatSeries = concatSeries$1;\n exports.constant = constant$1;\n exports.default = index;\n exports.detect = detect$1;\n exports.detectLimit = detectLimit$1;\n exports.detectSeries = detectSeries$1;\n exports.dir = dir;\n exports.doDuring = doWhilst$1;\n exports.doUntil = doUntil;\n exports.doWhilst = doWhilst$1;\n exports.during = whilst$1;\n exports.each = each;\n exports.eachLimit = eachLimit$1;\n exports.eachOf = eachOf$1;\n exports.eachOfLimit = eachOfLimit$1;\n exports.eachOfSeries = eachOfSeries$1;\n exports.eachSeries = eachSeries$1;\n exports.ensureAsync = ensureAsync;\n exports.every = every$1;\n exports.everyLimit = everyLimit$1;\n exports.everySeries = everySeries$1;\n exports.filter = filter$1;\n exports.filterLimit = filterLimit$1;\n exports.filterSeries = filterSeries$1;\n exports.find = detect$1;\n exports.findLimit = detectLimit$1;\n exports.findSeries = detectSeries$1;\n exports.flatMap = concat$1;\n exports.flatMapLimit = concatLimit$1;\n exports.flatMapSeries = concatSeries$1;\n exports.foldl = reduce$1;\n exports.foldr = reduceRight;\n exports.forEach = each;\n exports.forEachLimit = eachLimit$1;\n exports.forEachOf = eachOf$1;\n exports.forEachOfLimit = eachOfLimit$1;\n exports.forEachOfSeries = eachOfSeries$1;\n exports.forEachSeries = eachSeries$1;\n exports.forever = forever$1;\n exports.groupBy = groupBy;\n exports.groupByLimit = groupByLimit$1;\n exports.groupBySeries = groupBySeries;\n exports.inject = reduce$1;\n exports.log = log;\n exports.map = map$1;\n exports.mapLimit = mapLimit$1;\n exports.mapSeries = mapSeries$1;\n exports.mapValues = mapValues;\n exports.mapValuesLimit = mapValuesLimit$1;\n exports.mapValuesSeries = mapValuesSeries;\n exports.memoize = memoize;\n exports.nextTick = nextTick;\n exports.parallel = parallel;\n exports.parallelLimit = parallelLimit;\n exports.priorityQueue = priorityQueue;\n exports.queue = queue;\n exports.race = race$1;\n exports.reduce = reduce$1;\n exports.reduceRight = reduceRight;\n exports.reflect = reflect;\n exports.reflectAll = reflectAll;\n exports.reject = reject$1;\n exports.rejectLimit = rejectLimit$1;\n exports.rejectSeries = rejectSeries$1;\n exports.retry = retry;\n exports.retryable = retryable;\n exports.select = filter$1;\n exports.selectLimit = filterLimit$1;\n exports.selectSeries = filterSeries$1;\n exports.seq = seq;\n exports.series = series;\n exports.setImmediate = setImmediate$1;\n exports.some = some$1;\n exports.someLimit = someLimit$1;\n exports.someSeries = someSeries$1;\n exports.sortBy = sortBy$1;\n exports.timeout = timeout;\n exports.times = times;\n exports.timesLimit = timesLimit;\n exports.timesSeries = timesSeries;\n exports.transform = transform;\n exports.tryEach = tryEach$1;\n exports.unmemoize = unmemoize;\n exports.until = until;\n exports.waterfall = waterfall$1;\n exports.whilst = whilst$1;\n exports.wrapSync = asyncify;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","function isBuffer (value) {\n return Buffer.isBuffer(value) || value instanceof Uint8Array\n}\n\nfunction isEncoding (encoding) {\n return Buffer.isEncoding(encoding)\n}\n\nfunction alloc (size, fill, encoding) {\n return Buffer.alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n return Buffer.allocUnsafe(size)\n}\n\nfunction allocUnsafeSlow (size) {\n return Buffer.allocUnsafeSlow(size)\n}\n\nfunction byteLength (string, encoding) {\n return Buffer.byteLength(string, encoding)\n}\n\nfunction compare (a, b) {\n return Buffer.compare(a, b)\n}\n\nfunction concat (buffers, totalLength) {\n return Buffer.concat(buffers, totalLength)\n}\n\nfunction copy (source, target, targetStart, start, end) {\n return toBuffer(source).copy(target, targetStart, start, end)\n}\n\nfunction equals (a, b) {\n return toBuffer(a).equals(b)\n}\n\nfunction fill (buffer, value, offset, end, encoding) {\n return toBuffer(buffer).fill(value, offset, end, encoding)\n}\n\nfunction from (value, encodingOrOffset, length) {\n return Buffer.from(value, encodingOrOffset, length)\n}\n\nfunction includes (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).includes(value, byteOffset, encoding)\n}\n\nfunction indexOf (buffer, value, byfeOffset, encoding) {\n return toBuffer(buffer).indexOf(value, byfeOffset, encoding)\n}\n\nfunction lastIndexOf (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding)\n}\n\nfunction swap16 (buffer) {\n return toBuffer(buffer).swap16()\n}\n\nfunction swap32 (buffer) {\n return toBuffer(buffer).swap32()\n}\n\nfunction swap64 (buffer) {\n return toBuffer(buffer).swap64()\n}\n\nfunction toBuffer (buffer) {\n if (Buffer.isBuffer(buffer)) return buffer\n return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n}\n\nfunction toString (buffer, encoding, start, end) {\n return toBuffer(buffer).toString(encoding, start, end)\n}\n\nfunction write (buffer, string, offset, length, encoding) {\n return toBuffer(buffer).write(string, offset, length, encoding)\n}\n\nfunction writeDoubleLE (buffer, value, offset) {\n return toBuffer(buffer).writeDoubleLE(value, offset)\n}\n\nfunction writeFloatLE (buffer, value, offset) {\n return toBuffer(buffer).writeFloatLE(value, offset)\n}\n\nfunction writeUInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeUInt32LE(value, offset)\n}\n\nfunction writeInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeInt32LE(value, offset)\n}\n\nfunction readDoubleLE (buffer, offset) {\n return toBuffer(buffer).readDoubleLE(offset)\n}\n\nfunction readFloatLE (buffer, offset) {\n return toBuffer(buffer).readFloatLE(offset)\n}\n\nfunction readUInt32LE (buffer, offset) {\n return toBuffer(buffer).readUInt32LE(offset)\n}\n\nfunction readInt32LE (buffer, offset) {\n return toBuffer(buffer).readInt32LE(offset)\n}\n\nfunction writeDoubleBE (buffer, value, offset) {\n return toBuffer(buffer).writeDoubleBE(value, offset)\n}\n\nfunction writeFloatBE (buffer, value, offset) {\n return toBuffer(buffer).writeFloatBE(value, offset)\n}\n\nfunction writeUInt32BE (buffer, value, offset) {\n return toBuffer(buffer).writeUInt32BE(value, offset)\n}\n\nfunction writeInt32BE (buffer, value, offset) {\n return toBuffer(buffer).writeInt32BE(value, offset)\n}\n\nfunction readDoubleBE (buffer, offset) {\n return toBuffer(buffer).readDoubleBE(offset)\n}\n\nfunction readFloatBE (buffer, offset) {\n return toBuffer(buffer).readFloatBE(offset)\n}\n\nfunction readUInt32BE (buffer, offset) {\n return toBuffer(buffer).readUInt32BE(offset)\n}\n\nfunction readInt32BE (buffer, offset) {\n return toBuffer(buffer).readInt32BE(offset)\n}\n\nmodule.exports = {\n isBuffer,\n isEncoding,\n alloc,\n allocUnsafe,\n allocUnsafeSlow,\n byteLength,\n compare,\n concat,\n copy,\n equals,\n fill,\n from,\n includes,\n indexOf,\n lastIndexOf,\n swap16,\n swap32,\n swap64,\n toBuffer,\n toString,\n write,\n writeDoubleLE,\n writeFloatLE,\n writeUInt32LE,\n writeInt32LE,\n readDoubleLE,\n readFloatLE,\n readUInt32LE,\n readInt32LE,\n writeDoubleBE,\n writeFloatBE,\n writeUInt32BE,\n writeInt32BE,\n readDoubleBE,\n readFloatBE,\n readUInt32BE,\n readInt32BE\n\n}\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var register = require(\"./lib/register\");\nvar addHook = require(\"./lib/add\");\nvar removeHook = require(\"./lib/remove\");\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind;\nvar bindable = bind.bind(bind);\n\nfunction bindApi(hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(\n null,\n name ? [state, name] : [state]\n );\n hook.api = { remove: removeHookRef };\n hook.remove = removeHookRef;\n [\"before\", \"error\", \"after\", \"wrap\"].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind];\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args);\n });\n}\n\nfunction HookSingular() {\n var singularHookName = \"h\";\n var singularHookState = {\n registry: {},\n };\n var singularHook = register.bind(null, singularHookState, singularHookName);\n bindApi(singularHook, singularHookState, singularHookName);\n return singularHook;\n}\n\nfunction HookCollection() {\n var state = {\n registry: {},\n };\n\n var hook = register.bind(null, state);\n bindApi(hook, state);\n\n return hook;\n}\n\nvar collectionHookDeprecationMessageDisplayed = false;\nfunction Hook() {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn(\n '[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4'\n );\n collectionHookDeprecationMessageDisplayed = true;\n }\n return HookCollection();\n}\n\nHook.Singular = HookSingular.bind();\nHook.Collection = HookCollection.bind();\n\nmodule.exports = Hook;\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook;\nmodule.exports.Singular = Hook.Singular;\nmodule.exports.Collection = Hook.Collection;\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","var balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m) return [str];\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n if (/\\$$/.test(m.pre)) { \n for (var k = 0; k < post.length; k++) {\n var expansion = pre+ '{' + m.body + '}' + post[k];\n expansions.push(expansion);\n }\n } else {\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = [];\n\n for (var j = 0; j < n.length; j++) {\n N.push.apply(N, expand(n[j], false));\n }\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n }\n\n return expansions;\n}\n\n","'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n let output = [];\n\n if (Array.isArray(input)) {\n for (const pattern of input) {\n const result = braces.create(pattern, options);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options));\n }\n\n if (options && options.expand === true && options.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n if (typeof input === 'string') {\n return stringify(braces.parse(input, options), options);\n }\n return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n\n let result = expand(input, options);\n\n // filter out empty strings if specified\n if (options.noempty === true) {\n result = result.filter(Boolean);\n }\n\n // filter out duplicates if specified\n if (options.nodupes === true) {\n result = [...new Set(result)];\n }\n\n return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n if (input === '' || input.length < 3) {\n return [input];\n }\n\n return options.expand !== true\n ? braces.compile(input, options)\n : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n","'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n const walk = (node, parent = {}) => {\n const invalidBlock = utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\n const invalid = invalidBlock === true || invalidNode === true;\n const prefix = options.escapeInvalid === true ? '\\\\' : '';\n let output = '';\n\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n\n if (node.isClose === true) {\n console.log('node.isClose', prefix, node.value);\n return prefix + node.value;\n }\n\n if (node.type === 'open') {\n return invalid ? prefix + node.value : '(';\n }\n\n if (node.type === 'close') {\n return invalid ? prefix + node.value : ')';\n }\n\n if (node.type === 'comma') {\n return node.prev.type === 'comma' ? '' : invalid ? node.value : '|';\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true });\n\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n\n if (node.nodes) {\n for (const child of node.nodes) {\n output += walk(child, node);\n }\n }\n\n return output;\n };\n\n return walk(ast);\n};\n\nmodule.exports = compile;\n","'use strict';\n\nmodule.exports = {\n MAX_LENGTH: 10000,\n\n // Digits\n CHAR_0: '0', /* 0 */\n CHAR_9: '9', /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 'A', /* A */\n CHAR_LOWERCASE_A: 'a', /* a */\n CHAR_UPPERCASE_Z: 'Z', /* Z */\n CHAR_LOWERCASE_Z: 'z', /* z */\n\n CHAR_LEFT_PARENTHESES: '(', /* ( */\n CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n CHAR_ASTERISK: '*', /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: '&', /* & */\n CHAR_AT: '@', /* @ */\n CHAR_BACKSLASH: '\\\\', /* \\ */\n CHAR_BACKTICK: '`', /* ` */\n CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n CHAR_COLON: ':', /* : */\n CHAR_COMMA: ',', /* , */\n CHAR_DOLLAR: '$', /* . */\n CHAR_DOT: '.', /* . */\n CHAR_DOUBLE_QUOTE: '\"', /* \" */\n CHAR_EQUAL: '=', /* = */\n CHAR_EXCLAMATION_MARK: '!', /* ! */\n CHAR_FORM_FEED: '\\f', /* \\f */\n CHAR_FORWARD_SLASH: '/', /* / */\n CHAR_HASH: '#', /* # */\n CHAR_HYPHEN_MINUS: '-', /* - */\n CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n CHAR_LEFT_CURLY_BRACE: '{', /* { */\n CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n CHAR_LINE_FEED: '\\n', /* \\n */\n CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n CHAR_PERCENT: '%', /* % */\n CHAR_PLUS: '+', /* + */\n CHAR_QUESTION_MARK: '?', /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n CHAR_SEMICOLON: ';', /* ; */\n CHAR_SINGLE_QUOTE: '\\'', /* ' */\n CHAR_SPACE: ' ', /* */\n CHAR_TAB: '\\t', /* \\t */\n CHAR_UNDERSCORE: '_', /* _ */\n CHAR_VERTICAL_LINE: '|', /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n","'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n const result = [];\n\n queue = [].concat(queue);\n stash = [].concat(stash);\n\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n }\n\n for (const item of queue) {\n if (Array.isArray(item)) {\n for (const value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);\n }\n }\n }\n return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit;\n\n const walk = (node, parent = {}) => {\n node.queue = [];\n\n let p = parent;\n let q = parent.queue;\n\n while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify(node, options)));\n return;\n }\n\n if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), ['{}']));\n return;\n }\n\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n\n if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n }\n\n let range = fill(...args, options);\n if (range.length === 0) {\n range = stringify(node, options);\n }\n\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n\n const enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n\n while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n\n for (let i = 0; i < node.nodes.length; i++) {\n const child = node.nodes[i];\n\n if (child.type === 'comma' && node.type === 'brace') {\n if (i === 1) queue.push('');\n queue.push('');\n continue;\n }\n\n if (child.type === 'close') {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n\n if (child.value && child.type !== 'open') {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n\n if (child.nodes) {\n walk(child, node);\n }\n }\n\n return queue;\n };\n\n return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n","'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n CHAR_BACKSLASH, /* \\ */\n CHAR_BACKTICK, /* ` */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n CHAR_DOUBLE_QUOTE, /* \" */\n CHAR_SINGLE_QUOTE, /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n const opts = options || {};\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n\n const ast = { type: 'root', input, nodes: [] };\n const stack = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n const length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n\n /**\n * Helpers\n */\n\n const advance = () => input[index++];\n const push = node => {\n if (node.type === 'text' && prev.type === 'dot') {\n prev.type = 'text';\n }\n\n if (prev && prev.type === 'text' && node.type === 'text') {\n prev.value += node.value;\n return;\n }\n\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n\n push({ type: 'bos' });\n\n while (index < length) {\n block = stack[stack.length - 1];\n value = advance();\n\n /**\n * Invalid chars\n */\n\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n\n /**\n * Escaped chars\n */\n\n if (value === CHAR_BACKSLASH) {\n push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n continue;\n }\n\n /**\n * Right square bracket (literal): ']'\n */\n\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push({ type: 'text', value: '\\\\' + value });\n continue;\n }\n\n /**\n * Left square bracket: '['\n */\n\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n\n let next;\n\n while (index < length && (next = advance())) {\n value += next;\n\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n\n if (brackets === 0) {\n break;\n }\n }\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push({ type: 'paren', nodes: [] });\n stack.push(block);\n push({ type: 'text', value });\n continue;\n }\n\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== 'paren') {\n push({ type: 'text', value });\n continue;\n }\n block = stack.pop();\n push({ type: 'text', value });\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Quotes: '|\"|`\n */\n\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n const open = value;\n let next;\n\n if (options.keepQuotes !== true) {\n value = '';\n }\n\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n\n if (next === open) {\n if (options.keepQuotes === true) value += next;\n break;\n }\n\n value += next;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Left curly brace: '{'\n */\n\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n\n const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n const brace = {\n type: 'brace',\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n\n block = push(brace);\n stack.push(block);\n push({ type: 'open', value });\n continue;\n }\n\n /**\n * Right curly brace: '}'\n */\n\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== 'brace') {\n push({ type: 'text', value });\n continue;\n }\n\n const type = 'close';\n block = stack.pop();\n block.close = true;\n\n push({ type, value });\n depth--;\n\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Comma: ','\n */\n\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n const open = block.nodes.shift();\n block.nodes = [open, { type: 'text', value: stringify(block) }];\n }\n\n push({ type: 'comma', value });\n block.commas++;\n continue;\n }\n\n /**\n * Dot: '.'\n */\n\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n const siblings = block.nodes;\n\n if (depth === 0 || siblings.length === 0) {\n push({ type: 'text', value });\n continue;\n }\n\n if (prev.type === 'dot') {\n block.range = [];\n prev.value += value;\n prev.type = 'range';\n\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = 'text';\n continue;\n }\n\n block.ranges++;\n block.args = [];\n continue;\n }\n\n if (prev.type === 'range') {\n siblings.pop();\n\n const before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n\n push({ type: 'dot', value });\n continue;\n }\n\n /**\n * Text\n */\n\n push({ type: 'text', value });\n }\n\n // Mark imbalanced braces and brackets as invalid\n do {\n block = stack.pop();\n\n if (block.type !== 'root') {\n block.nodes.forEach(node => {\n if (!node.nodes) {\n if (node.type === 'open') node.isOpen = true;\n if (node.type === 'close') node.isClose = true;\n if (!node.nodes) node.type = 'text';\n node.invalid = true;\n }\n });\n\n // get the location of the block on parent.nodes (block's siblings)\n const parent = stack[stack.length - 1];\n const index = parent.nodes.indexOf(block);\n // replace the (invalid) block with it's nodes\n parent.nodes.splice(index, 1, ...block.nodes);\n }\n } while (stack.length > 0);\n\n push({ type: 'eos' });\n return ast;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n const stringify = (node, parent = {}) => {\n const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\n let output = '';\n\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return '\\\\' + node.value;\n }\n return node.value;\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes) {\n for (const child of node.nodes) {\n output += stringify(child);\n }\n }\n return output;\n };\n\n return stringify(ast);\n};\n\n","'use strict';\n\nexports.isInteger = num => {\n if (typeof num === 'number') {\n return Number.isInteger(num);\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isInteger(Number(num));\n }\n return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n const node = block.nodes[n];\n if (!node) return;\n\n if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n if (node.escaped !== true) {\n node.value = '\\\\' + node.value;\n node.escaped = true;\n }\n }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n if (node.type !== 'brace') return false;\n if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n if (block.type !== 'brace') return false;\n if (block.invalid === true || block.dollar) return true;\n if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n if (node.type === 'open' || node.type === 'close') {\n return true;\n }\n return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n if (node.type === 'text') acc.push(node.value);\n if (node.type === 'range') node.type = 'text';\n return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n const result = [];\n\n const flat = arr => {\n for (let i = 0; i < arr.length; i++) {\n const ele = arr[i];\n\n if (Array.isArray(ele)) {\n flat(ele);\n continue;\n }\n\n if (ele !== undefined) {\n result.push(ele);\n }\n }\n return result;\n };\n\n flat(args);\n return result;\n};\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeFsHandler = exports.EVENTS = exports.isIBMi = exports.isFreeBSD = exports.isLinux = exports.isMacos = exports.isWindows = exports.IDENTITY_FN = exports.EMPTY_FN = exports.STR_CLOSE = exports.STR_END = exports.STR_DATA = void 0;\nconst fs_1 = require(\"fs\");\nconst promises_1 = require(\"fs/promises\");\nconst sysPath = require(\"path\");\nconst os_1 = require(\"os\");\nexports.STR_DATA = 'data';\nexports.STR_END = 'end';\nexports.STR_CLOSE = 'close';\nconst EMPTY_FN = () => { };\nexports.EMPTY_FN = EMPTY_FN;\nconst IDENTITY_FN = (val) => val;\nexports.IDENTITY_FN = IDENTITY_FN;\nconst pl = process.platform;\nexports.isWindows = pl === 'win32';\nexports.isMacos = pl === 'darwin';\nexports.isLinux = pl === 'linux';\nexports.isFreeBSD = pl === 'freebsd';\nexports.isIBMi = (0, os_1.type)() === 'OS400';\nexports.EVENTS = {\n ALL: 'all',\n READY: 'ready',\n ADD: 'add',\n CHANGE: 'change',\n ADD_DIR: 'addDir',\n UNLINK: 'unlink',\n UNLINK_DIR: 'unlinkDir',\n RAW: 'raw',\n ERROR: 'error',\n};\nconst EV = exports.EVENTS;\nconst THROTTLE_MODE_WATCH = 'watch';\nconst statMethods = { lstat: promises_1.lstat, stat: promises_1.stat };\nconst KEY_LISTENERS = 'listeners';\nconst KEY_ERR = 'errHandlers';\nconst KEY_RAW = 'rawEmitters';\nconst HANDLER_KEYS = [KEY_LISTENERS, KEY_ERR, KEY_RAW];\n// prettier-ignore\nconst binaryExtensions = new Set([\n '3dm', '3ds', '3g2', '3gp', '7z', 'a', 'aac', 'adp', 'afdesign', 'afphoto', 'afpub', 'ai',\n 'aif', 'aiff', 'alz', 'ape', 'apk', 'appimage', 'ar', 'arj', 'asf', 'au', 'avi',\n 'bak', 'baml', 'bh', 'bin', 'bk', 'bmp', 'btif', 'bz2', 'bzip2',\n 'cab', 'caf', 'cgm', 'class', 'cmx', 'cpio', 'cr2', 'cur', 'dat', 'dcm', 'deb', 'dex', 'djvu',\n 'dll', 'dmg', 'dng', 'doc', 'docm', 'docx', 'dot', 'dotm', 'dra', 'DS_Store', 'dsk', 'dts',\n 'dtshd', 'dvb', 'dwg', 'dxf',\n 'ecelp4800', 'ecelp7470', 'ecelp9600', 'egg', 'eol', 'eot', 'epub', 'exe',\n 'f4v', 'fbs', 'fh', 'fla', 'flac', 'flatpak', 'fli', 'flv', 'fpx', 'fst', 'fvt',\n 'g3', 'gh', 'gif', 'graffle', 'gz', 'gzip',\n 'h261', 'h263', 'h264', 'icns', 'ico', 'ief', 'img', 'ipa', 'iso',\n 'jar', 'jpeg', 'jpg', 'jpgv', 'jpm', 'jxr', 'key', 'ktx',\n 'lha', 'lib', 'lvp', 'lz', 'lzh', 'lzma', 'lzo',\n 'm3u', 'm4a', 'm4v', 'mar', 'mdi', 'mht', 'mid', 'midi', 'mj2', 'mka', 'mkv', 'mmr', 'mng',\n 'mobi', 'mov', 'movie', 'mp3',\n 'mp4', 'mp4a', 'mpeg', 'mpg', 'mpga', 'mxu',\n 'nef', 'npx', 'numbers', 'nupkg',\n 'o', 'odp', 'ods', 'odt', 'oga', 'ogg', 'ogv', 'otf', 'ott',\n 'pages', 'pbm', 'pcx', 'pdb', 'pdf', 'pea', 'pgm', 'pic', 'png', 'pnm', 'pot', 'potm',\n 'potx', 'ppa', 'ppam',\n 'ppm', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptm', 'pptx', 'psd', 'pya', 'pyc', 'pyo', 'pyv',\n 'qt',\n 'rar', 'ras', 'raw', 'resources', 'rgb', 'rip', 'rlc', 'rmf', 'rmvb', 'rpm', 'rtf', 'rz',\n 's3m', 's7z', 'scpt', 'sgi', 'shar', 'snap', 'sil', 'sketch', 'slk', 'smv', 'snk', 'so',\n 'stl', 'suo', 'sub', 'swf',\n 'tar', 'tbz', 'tbz2', 'tga', 'tgz', 'thmx', 'tif', 'tiff', 'tlz', 'ttc', 'ttf', 'txz',\n 'udf', 'uvh', 'uvi', 'uvm', 'uvp', 'uvs', 'uvu',\n 'viv', 'vob',\n 'war', 'wav', 'wax', 'wbmp', 'wdp', 'weba', 'webm', 'webp', 'whl', 'wim', 'wm', 'wma',\n 'wmv', 'wmx', 'woff', 'woff2', 'wrm', 'wvx',\n 'xbm', 'xif', 'xla', 'xlam', 'xls', 'xlsb', 'xlsm', 'xlsx', 'xlt', 'xltm', 'xltx', 'xm',\n 'xmind', 'xpi', 'xpm', 'xwd', 'xz',\n 'z', 'zip', 'zipx',\n]);\nconst isBinaryPath = (filePath) => binaryExtensions.has(sysPath.extname(filePath).slice(1).toLowerCase());\n// TODO: emit errors properly. Example: EMFILE on Macos.\nconst foreach = (val, fn) => {\n if (val instanceof Set) {\n val.forEach(fn);\n }\n else {\n fn(val);\n }\n};\nconst addAndConvert = (main, prop, item) => {\n let container = main[prop];\n if (!(container instanceof Set)) {\n main[prop] = container = new Set([container]);\n }\n container.add(item);\n};\nconst clearItem = (cont) => (key) => {\n const set = cont[key];\n if (set instanceof Set) {\n set.clear();\n }\n else {\n delete cont[key];\n }\n};\nconst delFromSet = (main, prop, item) => {\n const container = main[prop];\n if (container instanceof Set) {\n container.delete(item);\n }\n else if (container === item) {\n delete main[prop];\n }\n};\nconst isEmptySet = (val) => (val instanceof Set ? val.size === 0 : !val);\nconst FsWatchInstances = new Map();\n/**\n * Instantiates the fs_watch interface\n * @param path to be watched\n * @param options to be passed to fs_watch\n * @param listener main event handler\n * @param errHandler emits info about errors\n * @param emitRaw emits raw event data\n * @returns {NativeFsWatcher}\n */\nfunction createFsWatchInstance(path, options, listener, errHandler, emitRaw) {\n const handleEvent = (rawEvent, evPath) => {\n listener(path);\n emitRaw(rawEvent, evPath, { watchedPath: path });\n // emit based on events occurring for files from a directory's watcher in\n // case the file's watcher misses it (and rely on throttling to de-dupe)\n if (evPath && path !== evPath) {\n fsWatchBroadcast(sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath));\n }\n };\n try {\n return (0, fs_1.watch)(path, {\n persistent: options.persistent,\n }, handleEvent);\n }\n catch (error) {\n errHandler(error);\n return undefined;\n }\n}\n/**\n * Helper for passing fs_watch event data to a collection of listeners\n * @param fullPath absolute path bound to fs_watch instance\n */\nconst fsWatchBroadcast = (fullPath, listenerType, val1, val2, val3) => {\n const cont = FsWatchInstances.get(fullPath);\n if (!cont)\n return;\n foreach(cont[listenerType], (listener) => {\n listener(val1, val2, val3);\n });\n};\n/**\n * Instantiates the fs_watch interface or binds listeners\n * to an existing one covering the same file system entry\n * @param path\n * @param fullPath absolute path\n * @param options to be passed to fs_watch\n * @param handlers container for event listener functions\n */\nconst setFsWatchListener = (path, fullPath, options, handlers) => {\n const { listener, errHandler, rawEmitter } = handlers;\n let cont = FsWatchInstances.get(fullPath);\n let watcher;\n if (!options.persistent) {\n watcher = createFsWatchInstance(path, options, listener, errHandler, rawEmitter);\n if (!watcher)\n return;\n return watcher.close.bind(watcher);\n }\n if (cont) {\n addAndConvert(cont, KEY_LISTENERS, listener);\n addAndConvert(cont, KEY_ERR, errHandler);\n addAndConvert(cont, KEY_RAW, rawEmitter);\n }\n else {\n watcher = createFsWatchInstance(path, options, fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), errHandler, // no need to use broadcast here\n fsWatchBroadcast.bind(null, fullPath, KEY_RAW));\n if (!watcher)\n return;\n watcher.on(EV.ERROR, async (error) => {\n const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR);\n if (cont)\n cont.watcherUnusable = true; // documented since Node 10.4.1\n // Workaround for https://github.com/joyent/node/issues/4337\n if (exports.isWindows && error.code === 'EPERM') {\n try {\n const fd = await (0, promises_1.open)(path, 'r');\n await fd.close();\n broadcastErr(error);\n }\n catch (err) {\n // do nothing\n }\n }\n else {\n broadcastErr(error);\n }\n });\n cont = {\n listeners: listener,\n errHandlers: errHandler,\n rawEmitters: rawEmitter,\n watcher,\n };\n FsWatchInstances.set(fullPath, cont);\n }\n // const index = cont.listeners.indexOf(listener);\n // removes this instance's listeners and closes the underlying fs_watch\n // instance if there are no more listeners left\n return () => {\n delFromSet(cont, KEY_LISTENERS, listener);\n delFromSet(cont, KEY_ERR, errHandler);\n delFromSet(cont, KEY_RAW, rawEmitter);\n if (isEmptySet(cont.listeners)) {\n // Check to protect against issue gh-730.\n // if (cont.watcherUnusable) {\n cont.watcher.close();\n // }\n FsWatchInstances.delete(fullPath);\n HANDLER_KEYS.forEach(clearItem(cont));\n // @ts-ignore\n cont.watcher = undefined;\n Object.freeze(cont);\n }\n };\n};\n// fs_watchFile helpers\n// object to hold per-process fs_watchFile instances\n// (may be shared across chokidar FSWatcher instances)\nconst FsWatchFileInstances = new Map();\n/**\n * Instantiates the fs_watchFile interface or binds listeners\n * to an existing one covering the same file system entry\n * @param path to be watched\n * @param fullPath absolute path\n * @param options options to be passed to fs_watchFile\n * @param handlers container for event listener functions\n * @returns closer\n */\nconst setFsWatchFileListener = (path, fullPath, options, handlers) => {\n const { listener, rawEmitter } = handlers;\n let cont = FsWatchFileInstances.get(fullPath);\n // let listeners = new Set();\n // let rawEmitters = new Set();\n const copts = cont && cont.options;\n if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) {\n // \"Upgrade\" the watcher to persistence or a quicker interval.\n // This creates some unlikely edge case issues if the user mixes\n // settings in a very weird way, but solving for those cases\n // doesn't seem worthwhile for the added complexity.\n // listeners = cont.listeners;\n // rawEmitters = cont.rawEmitters;\n (0, fs_1.unwatchFile)(fullPath);\n cont = undefined;\n }\n if (cont) {\n addAndConvert(cont, KEY_LISTENERS, listener);\n addAndConvert(cont, KEY_RAW, rawEmitter);\n }\n else {\n // TODO\n // listeners.add(listener);\n // rawEmitters.add(rawEmitter);\n cont = {\n listeners: listener,\n rawEmitters: rawEmitter,\n options,\n watcher: (0, fs_1.watchFile)(fullPath, options, (curr, prev) => {\n foreach(cont.rawEmitters, (rawEmitter) => {\n rawEmitter(EV.CHANGE, fullPath, { curr, prev });\n });\n const currmtime = curr.mtimeMs;\n if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) {\n foreach(cont.listeners, (listener) => listener(path, curr));\n }\n }),\n };\n FsWatchFileInstances.set(fullPath, cont);\n }\n // const index = cont.listeners.indexOf(listener);\n // Removes this instance's listeners and closes the underlying fs_watchFile\n // instance if there are no more listeners left.\n return () => {\n delFromSet(cont, KEY_LISTENERS, listener);\n delFromSet(cont, KEY_RAW, rawEmitter);\n if (isEmptySet(cont.listeners)) {\n FsWatchFileInstances.delete(fullPath);\n (0, fs_1.unwatchFile)(fullPath);\n cont.options = cont.watcher = undefined;\n Object.freeze(cont);\n }\n };\n};\n/**\n * @mixin\n */\nclass NodeFsHandler {\n constructor(fsW) {\n this.fsw = fsW;\n this._boundHandleError = (error) => fsW._handleError(error);\n }\n /**\n * Watch file for changes with fs_watchFile or fs_watch.\n * @param path to file or dir\n * @param listener on fs change\n * @returns closer for the watcher instance\n */\n _watchWithNodeFs(path, listener) {\n const opts = this.fsw.options;\n const directory = sysPath.dirname(path);\n const basename = sysPath.basename(path);\n const parent = this.fsw._getWatchedDir(directory);\n parent.add(basename);\n const absolutePath = sysPath.resolve(path);\n const options = {\n persistent: opts.persistent,\n };\n if (!listener)\n listener = exports.EMPTY_FN;\n let closer;\n if (opts.usePolling) {\n const enableBin = opts.interval !== opts.binaryInterval;\n options.interval = enableBin && isBinaryPath(basename) ? opts.binaryInterval : opts.interval;\n closer = setFsWatchFileListener(path, absolutePath, options, {\n listener,\n rawEmitter: this.fsw._emitRaw,\n });\n }\n else {\n closer = setFsWatchListener(path, absolutePath, options, {\n listener,\n errHandler: this._boundHandleError,\n rawEmitter: this.fsw._emitRaw,\n });\n }\n return closer;\n }\n /**\n * Watch a file and emit add event if warranted.\n * @returns closer for the watcher instance\n */\n _handleFile(file, stats, initialAdd) {\n if (this.fsw.closed) {\n return;\n }\n const dirname = sysPath.dirname(file);\n const basename = sysPath.basename(file);\n const parent = this.fsw._getWatchedDir(dirname);\n // stats is always present\n let prevStats = stats;\n // if the file is already being watched, do nothing\n if (parent.has(basename))\n return;\n const listener = async (path, newStats) => {\n if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5))\n return;\n if (!newStats || newStats.mtimeMs === 0) {\n try {\n const newStats = await (0, promises_1.stat)(file);\n if (this.fsw.closed)\n return;\n // Check that change event was not fired because of changed only accessTime.\n const at = newStats.atimeMs;\n const mt = newStats.mtimeMs;\n if (!at || at <= mt || mt !== prevStats.mtimeMs) {\n this.fsw._emit(EV.CHANGE, file, newStats);\n }\n if ((exports.isMacos || exports.isLinux || exports.isFreeBSD) && prevStats.ino !== newStats.ino) {\n this.fsw._closeFile(path);\n prevStats = newStats;\n const closer = this._watchWithNodeFs(file, listener);\n if (closer)\n this.fsw._addPathCloser(path, closer);\n }\n else {\n prevStats = newStats;\n }\n }\n catch (error) {\n // Fix issues where mtime is null but file is still present\n this.fsw._remove(dirname, basename);\n }\n // add is about to be emitted if file not already tracked in parent\n }\n else if (parent.has(basename)) {\n // Check that change event was not fired because of changed only accessTime.\n const at = newStats.atimeMs;\n const mt = newStats.mtimeMs;\n if (!at || at <= mt || mt !== prevStats.mtimeMs) {\n this.fsw._emit(EV.CHANGE, file, newStats);\n }\n prevStats = newStats;\n }\n };\n // kick off the watcher\n const closer = this._watchWithNodeFs(file, listener);\n // emit an add event if we're supposed to\n if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) {\n if (!this.fsw._throttle(EV.ADD, file, 0))\n return;\n this.fsw._emit(EV.ADD, file, stats);\n }\n return closer;\n }\n /**\n * Handle symlinks encountered while reading a dir.\n * @param entry returned by readdirp\n * @param directory path of dir being read\n * @param path of this item\n * @param item basename of this item\n * @returns true if no more processing is needed for this entry.\n */\n async _handleSymlink(entry, directory, path, item) {\n if (this.fsw.closed) {\n return;\n }\n const full = entry.fullPath;\n const dir = this.fsw._getWatchedDir(directory);\n if (!this.fsw.options.followSymlinks) {\n // watch symlink directly (don't follow) and detect changes\n this.fsw._incrReadyCount();\n let linkPath;\n try {\n linkPath = await (0, promises_1.realpath)(path);\n }\n catch (e) {\n this.fsw._emitReady();\n return true;\n }\n if (this.fsw.closed)\n return;\n if (dir.has(item)) {\n if (this.fsw._symlinkPaths.get(full) !== linkPath) {\n this.fsw._symlinkPaths.set(full, linkPath);\n this.fsw._emit(EV.CHANGE, path, entry.stats);\n }\n }\n else {\n dir.add(item);\n this.fsw._symlinkPaths.set(full, linkPath);\n this.fsw._emit(EV.ADD, path, entry.stats);\n }\n this.fsw._emitReady();\n return true;\n }\n // don't follow the same symlink more than once\n if (this.fsw._symlinkPaths.has(full)) {\n return true;\n }\n this.fsw._symlinkPaths.set(full, true);\n }\n _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {\n // Normalize the directory name on Windows\n directory = sysPath.join(directory, '');\n throttler = this.fsw._throttle('readdir', directory, 1000);\n if (!throttler)\n return;\n const previous = this.fsw._getWatchedDir(wh.path);\n const current = new Set();\n let stream = this.fsw._readdirp(directory, {\n fileFilter: (entry) => wh.filterPath(entry),\n directoryFilter: (entry) => wh.filterDir(entry),\n });\n if (!stream)\n return;\n stream\n .on(exports.STR_DATA, async (entry) => {\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n const item = entry.path;\n let path = sysPath.join(directory, item);\n current.add(item);\n if (entry.stats.isSymbolicLink() &&\n (await this._handleSymlink(entry, directory, path, item))) {\n return;\n }\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n // Files that present in current directory snapshot\n // but absent in previous are added to watch list and\n // emit `add` event.\n if (item === target || (!target && !previous.has(item))) {\n this.fsw._incrReadyCount();\n // ensure relativeness of path is preserved in case of watcher reuse\n path = sysPath.join(dir, sysPath.relative(dir, path));\n this._addToNodeFs(path, initialAdd, wh, depth + 1);\n }\n })\n .on(EV.ERROR, this._boundHandleError);\n return new Promise((resolve, reject) => {\n if (!stream)\n return reject();\n stream.once(exports.STR_END, () => {\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n const wasThrottled = throttler ? throttler.clear() : false;\n resolve(undefined);\n // Files that absent in current directory snapshot\n // but present in previous emit `remove` event\n // and are removed from @watched[directory].\n previous\n .getChildren()\n .filter((item) => {\n return item !== directory && !current.has(item);\n })\n .forEach((item) => {\n this.fsw._remove(directory, item);\n });\n stream = undefined;\n // one more time for any missed in case changes came in extremely quickly\n if (wasThrottled)\n this._handleRead(directory, false, wh, target, dir, depth, throttler);\n });\n });\n }\n /**\n * Read directory to add / remove files from `@watched` list and re-read it on change.\n * @param dir fs path\n * @param stats\n * @param initialAdd\n * @param depth relative to user-supplied path\n * @param target child path targeted for watch\n * @param wh Common watch helpers for this path\n * @param realpath\n * @returns closer for the watcher instance.\n */\n async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) {\n const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir));\n const tracked = parentDir.has(sysPath.basename(dir));\n if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) {\n this.fsw._emit(EV.ADD_DIR, dir, stats);\n }\n // ensure dir is tracked (harmless if redundant)\n parentDir.add(sysPath.basename(dir));\n this.fsw._getWatchedDir(dir);\n let throttler;\n let closer;\n const oDepth = this.fsw.options.depth;\n if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) {\n if (!target) {\n await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler);\n if (this.fsw.closed)\n return;\n }\n closer = this._watchWithNodeFs(dir, (dirPath, stats) => {\n // if current directory is removed, do nothing\n if (stats && stats.mtimeMs === 0)\n return;\n this._handleRead(dirPath, false, wh, target, dir, depth, throttler);\n });\n }\n return closer;\n }\n /**\n * Handle added file, directory, or glob pattern.\n * Delegates call to _handleFile / _handleDir after checks.\n * @param path to file or ir\n * @param initialAdd was the file added at watch instantiation?\n * @param priorWh depth relative to user-supplied path\n * @param depth Child path actually targeted for watch\n * @param target Child path actually targeted for watch\n */\n async _addToNodeFs(path, initialAdd, priorWh, depth, target) {\n const ready = this.fsw._emitReady;\n if (this.fsw._isIgnored(path) || this.fsw.closed) {\n ready();\n return false;\n }\n const wh = this.fsw._getWatchHelpers(path);\n if (priorWh) {\n wh.filterPath = (entry) => priorWh.filterPath(entry);\n wh.filterDir = (entry) => priorWh.filterDir(entry);\n }\n // evaluate what is at the path we're being asked to watch\n try {\n const stats = await statMethods[wh.statMethod](wh.watchPath);\n if (this.fsw.closed)\n return;\n if (this.fsw._isIgnored(wh.watchPath, stats)) {\n ready();\n return false;\n }\n const follow = this.fsw.options.followSymlinks;\n let closer;\n if (stats.isDirectory()) {\n const absPath = sysPath.resolve(path);\n const targetPath = follow ? await (0, promises_1.realpath)(path) : path;\n if (this.fsw.closed)\n return;\n closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath);\n if (this.fsw.closed)\n return;\n // preserve this symlink's target path\n if (absPath !== targetPath && targetPath !== undefined) {\n this.fsw._symlinkPaths.set(absPath, targetPath);\n }\n }\n else if (stats.isSymbolicLink()) {\n const targetPath = follow ? await (0, promises_1.realpath)(path) : path;\n if (this.fsw.closed)\n return;\n const parent = sysPath.dirname(wh.watchPath);\n this.fsw._getWatchedDir(parent).add(wh.watchPath);\n this.fsw._emit(EV.ADD, wh.watchPath, stats);\n closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath);\n if (this.fsw.closed)\n return;\n // preserve this symlink's target path\n if (targetPath !== undefined) {\n this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath);\n }\n }\n else {\n closer = this._handleFile(wh.watchPath, stats, initialAdd);\n }\n ready();\n if (closer)\n this.fsw._addPathCloser(path, closer);\n return false;\n }\n catch (error) {\n if (this.fsw._handleError(error)) {\n ready();\n return path;\n }\n }\n }\n}\nexports.NodeFsHandler = NodeFsHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FSWatcher = exports.WatchHelper = void 0;\nexports.watch = watch;\n/*! chokidar - MIT License (c) 2012 Paul Miller (paulmillr.com) */\nconst fs_1 = require(\"fs\");\nconst promises_1 = require(\"fs/promises\");\nconst events_1 = require(\"events\");\nconst sysPath = require(\"path\");\nconst readdirp_1 = require(\"readdirp\");\nconst handler_js_1 = require(\"./handler.js\");\nconst SLASH = '/';\nconst SLASH_SLASH = '//';\nconst ONE_DOT = '.';\nconst TWO_DOTS = '..';\nconst STRING_TYPE = 'string';\nconst BACK_SLASH_RE = /\\\\/g;\nconst DOUBLE_SLASH_RE = /\\/\\//;\nconst DOT_RE = /\\..*\\.(sw[px])$|~$|\\.subl.*\\.tmp/;\nconst REPLACER_RE = /^\\.[/\\\\]/;\nfunction arrify(item) {\n return Array.isArray(item) ? item : [item];\n}\nconst isMatcherObject = (matcher) => typeof matcher === 'object' && matcher !== null && !(matcher instanceof RegExp);\nfunction createPattern(matcher) {\n if (typeof matcher === 'function')\n return matcher;\n if (typeof matcher === 'string')\n return (string) => matcher === string;\n if (matcher instanceof RegExp)\n return (string) => matcher.test(string);\n if (typeof matcher === 'object' && matcher !== null) {\n return (string) => {\n if (matcher.path === string)\n return true;\n if (matcher.recursive) {\n const relative = sysPath.relative(matcher.path, string);\n if (!relative) {\n return false;\n }\n return !relative.startsWith('..') && !sysPath.isAbsolute(relative);\n }\n return false;\n };\n }\n return () => false;\n}\nfunction normalizePath(path) {\n if (typeof path !== 'string')\n throw new Error('string expected');\n path = sysPath.normalize(path);\n path = path.replace(/\\\\/g, '/');\n let prepend = false;\n if (path.startsWith('//'))\n prepend = true;\n const DOUBLE_SLASH_RE = /\\/\\//;\n while (path.match(DOUBLE_SLASH_RE))\n path = path.replace(DOUBLE_SLASH_RE, '/');\n if (prepend)\n path = '/' + path;\n return path;\n}\nfunction matchPatterns(patterns, testString, stats) {\n const path = normalizePath(testString);\n for (let index = 0; index < patterns.length; index++) {\n const pattern = patterns[index];\n if (pattern(path, stats)) {\n return true;\n }\n }\n return false;\n}\nfunction anymatch(matchers, testString) {\n if (matchers == null) {\n throw new TypeError('anymatch: specify first argument');\n }\n // Early cache for matchers.\n const matchersArray = arrify(matchers);\n const patterns = matchersArray.map((matcher) => createPattern(matcher));\n if (testString == null) {\n return (testString, stats) => {\n return matchPatterns(patterns, testString, stats);\n };\n }\n return matchPatterns(patterns, testString);\n}\nconst unifyPaths = (paths_) => {\n const paths = arrify(paths_).flat();\n if (!paths.every((p) => typeof p === STRING_TYPE)) {\n throw new TypeError(`Non-string provided as watch path: ${paths}`);\n }\n return paths.map(normalizePathToUnix);\n};\n// If SLASH_SLASH occurs at the beginning of path, it is not replaced\n// because \"//StoragePC/DrivePool/Movies\" is a valid network path\nconst toUnix = (string) => {\n let str = string.replace(BACK_SLASH_RE, SLASH);\n let prepend = false;\n if (str.startsWith(SLASH_SLASH)) {\n prepend = true;\n }\n while (str.match(DOUBLE_SLASH_RE)) {\n str = str.replace(DOUBLE_SLASH_RE, SLASH);\n }\n if (prepend) {\n str = SLASH + str;\n }\n return str;\n};\n// Our version of upath.normalize\n// TODO: this is not equal to path-normalize module - investigate why\nconst normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path)));\n// TODO: refactor\nconst normalizeIgnored = (cwd = '') => (path) => {\n if (typeof path === 'string') {\n return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path));\n }\n else {\n return path;\n }\n};\nconst getAbsolutePath = (path, cwd) => {\n if (sysPath.isAbsolute(path)) {\n return path;\n }\n return sysPath.join(cwd, path);\n};\nconst EMPTY_SET = Object.freeze(new Set());\n/**\n * Directory entry.\n */\nclass DirEntry {\n constructor(dir, removeWatcher) {\n this.path = dir;\n this._removeWatcher = removeWatcher;\n this.items = new Set();\n }\n add(item) {\n const { items } = this;\n if (!items)\n return;\n if (item !== ONE_DOT && item !== TWO_DOTS)\n items.add(item);\n }\n async remove(item) {\n const { items } = this;\n if (!items)\n return;\n items.delete(item);\n if (items.size > 0)\n return;\n const dir = this.path;\n try {\n await (0, promises_1.readdir)(dir);\n }\n catch (err) {\n if (this._removeWatcher) {\n this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir));\n }\n }\n }\n has(item) {\n const { items } = this;\n if (!items)\n return;\n return items.has(item);\n }\n getChildren() {\n const { items } = this;\n if (!items)\n return [];\n return [...items.values()];\n }\n dispose() {\n this.items.clear();\n this.path = '';\n this._removeWatcher = handler_js_1.EMPTY_FN;\n this.items = EMPTY_SET;\n Object.freeze(this);\n }\n}\nconst STAT_METHOD_F = 'stat';\nconst STAT_METHOD_L = 'lstat';\nclass WatchHelper {\n constructor(path, follow, fsw) {\n this.fsw = fsw;\n const watchPath = path;\n this.path = path = path.replace(REPLACER_RE, '');\n this.watchPath = watchPath;\n this.fullWatchPath = sysPath.resolve(watchPath);\n this.dirParts = [];\n this.dirParts.forEach((parts) => {\n if (parts.length > 1)\n parts.pop();\n });\n this.followSymlinks = follow;\n this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L;\n }\n entryPath(entry) {\n return sysPath.join(this.watchPath, sysPath.relative(this.watchPath, entry.fullPath));\n }\n filterPath(entry) {\n const { stats } = entry;\n if (stats && stats.isSymbolicLink())\n return this.filterDir(entry);\n const resolvedPath = this.entryPath(entry);\n // TODO: what if stats is undefined? remove !\n return this.fsw._isntIgnored(resolvedPath, stats) && this.fsw._hasReadPermissions(stats);\n }\n filterDir(entry) {\n return this.fsw._isntIgnored(this.entryPath(entry), entry.stats);\n }\n}\nexports.WatchHelper = WatchHelper;\n/**\n * Watches files & directories for changes. Emitted events:\n * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error`\n *\n * new FSWatcher()\n * .add(directories)\n * .on('add', path => log('File', path, 'was added'))\n */\nclass FSWatcher extends events_1.EventEmitter {\n // Not indenting methods for history sake; for now.\n constructor(_opts = {}) {\n super();\n this.closed = false;\n this._closers = new Map();\n this._ignoredPaths = new Set();\n this._throttled = new Map();\n this._streams = new Set();\n this._symlinkPaths = new Map();\n this._watched = new Map();\n this._pendingWrites = new Map();\n this._pendingUnlinks = new Map();\n this._readyCount = 0;\n this._readyEmitted = false;\n const awf = _opts.awaitWriteFinish;\n const DEF_AWF = { stabilityThreshold: 2000, pollInterval: 100 };\n const opts = {\n // Defaults\n persistent: true,\n ignoreInitial: false,\n ignorePermissionErrors: false,\n interval: 100,\n binaryInterval: 300,\n followSymlinks: true,\n usePolling: false,\n // useAsync: false,\n atomic: true, // NOTE: overwritten later (depends on usePolling)\n ..._opts,\n // Change format\n ignored: _opts.ignored ? arrify(_opts.ignored) : arrify([]),\n awaitWriteFinish: awf === true ? DEF_AWF : typeof awf === 'object' ? { ...DEF_AWF, ...awf } : false,\n };\n // Always default to polling on IBM i because fs.watch() is not available on IBM i.\n if (handler_js_1.isIBMi)\n opts.usePolling = true;\n // Editor atomic write normalization enabled by default with fs.watch\n if (opts.atomic === undefined)\n opts.atomic = !opts.usePolling;\n // opts.atomic = typeof _opts.atomic === 'number' ? _opts.atomic : 100;\n // Global override. Useful for developers, who need to force polling for all\n // instances of chokidar, regardless of usage / dependency depth\n const envPoll = process.env.CHOKIDAR_USEPOLLING;\n if (envPoll !== undefined) {\n const envLower = envPoll.toLowerCase();\n if (envLower === 'false' || envLower === '0')\n opts.usePolling = false;\n else if (envLower === 'true' || envLower === '1')\n opts.usePolling = true;\n else\n opts.usePolling = !!envLower;\n }\n const envInterval = process.env.CHOKIDAR_INTERVAL;\n if (envInterval)\n opts.interval = Number.parseInt(envInterval, 10);\n // This is done to emit ready only once, but each 'add' will increase that?\n let readyCalls = 0;\n this._emitReady = () => {\n readyCalls++;\n if (readyCalls >= this._readyCount) {\n this._emitReady = handler_js_1.EMPTY_FN;\n this._readyEmitted = true;\n // use process.nextTick to allow time for listener to be bound\n process.nextTick(() => this.emit(handler_js_1.EVENTS.READY));\n }\n };\n this._emitRaw = (...args) => this.emit(handler_js_1.EVENTS.RAW, ...args);\n this._boundRemove = this._remove.bind(this);\n this.options = opts;\n this._nodeFsHandler = new handler_js_1.NodeFsHandler(this);\n // You’re frozen when your heart’s not open.\n Object.freeze(opts);\n }\n _addIgnoredPath(matcher) {\n if (isMatcherObject(matcher)) {\n // return early if we already have a deeply equal matcher object\n for (const ignored of this._ignoredPaths) {\n if (isMatcherObject(ignored) &&\n ignored.path === matcher.path &&\n ignored.recursive === matcher.recursive) {\n return;\n }\n }\n }\n this._ignoredPaths.add(matcher);\n }\n _removeIgnoredPath(matcher) {\n this._ignoredPaths.delete(matcher);\n // now find any matcher objects with the matcher as path\n if (typeof matcher === 'string') {\n for (const ignored of this._ignoredPaths) {\n // TODO (43081j): make this more efficient.\n // probably just make a `this._ignoredDirectories` or some\n // such thing.\n if (isMatcherObject(ignored) && ignored.path === matcher) {\n this._ignoredPaths.delete(ignored);\n }\n }\n }\n }\n // Public methods\n /**\n * Adds paths to be watched on an existing FSWatcher instance.\n * @param paths_ file or file list. Other arguments are unused\n */\n add(paths_, _origAdd, _internal) {\n const { cwd } = this.options;\n this.closed = false;\n this._closePromise = undefined;\n let paths = unifyPaths(paths_);\n if (cwd) {\n paths = paths.map((path) => {\n const absPath = getAbsolutePath(path, cwd);\n // Check `path` instead of `absPath` because the cwd portion can't be a glob\n return absPath;\n });\n }\n paths.forEach((path) => {\n this._removeIgnoredPath(path);\n });\n this._userIgnored = undefined;\n if (!this._readyCount)\n this._readyCount = 0;\n this._readyCount += paths.length;\n Promise.all(paths.map(async (path) => {\n const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, undefined, 0, _origAdd);\n if (res)\n this._emitReady();\n return res;\n })).then((results) => {\n if (this.closed)\n return;\n results.forEach((item) => {\n if (item)\n this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item));\n });\n });\n return this;\n }\n /**\n * Close watchers or start ignoring events from specified paths.\n */\n unwatch(paths_) {\n if (this.closed)\n return this;\n const paths = unifyPaths(paths_);\n const { cwd } = this.options;\n paths.forEach((path) => {\n // convert to absolute path unless relative path already matches\n if (!sysPath.isAbsolute(path) && !this._closers.has(path)) {\n if (cwd)\n path = sysPath.join(cwd, path);\n path = sysPath.resolve(path);\n }\n this._closePath(path);\n this._addIgnoredPath(path);\n if (this._watched.has(path)) {\n this._addIgnoredPath({\n path,\n recursive: true,\n });\n }\n // reset the cached userIgnored anymatch fn\n // to make ignoredPaths changes effective\n this._userIgnored = undefined;\n });\n return this;\n }\n /**\n * Close watchers and remove all listeners from watched paths.\n */\n close() {\n if (this._closePromise) {\n return this._closePromise;\n }\n this.closed = true;\n // Memory management.\n this.removeAllListeners();\n const closers = [];\n this._closers.forEach((closerList) => closerList.forEach((closer) => {\n const promise = closer();\n if (promise instanceof Promise)\n closers.push(promise);\n }));\n this._streams.forEach((stream) => stream.destroy());\n this._userIgnored = undefined;\n this._readyCount = 0;\n this._readyEmitted = false;\n this._watched.forEach((dirent) => dirent.dispose());\n this._closers.clear();\n this._watched.clear();\n this._streams.clear();\n this._symlinkPaths.clear();\n this._throttled.clear();\n this._closePromise = closers.length\n ? Promise.all(closers).then(() => undefined)\n : Promise.resolve();\n return this._closePromise;\n }\n /**\n * Expose list of watched paths\n * @returns for chaining\n */\n getWatched() {\n const watchList = {};\n this._watched.forEach((entry, dir) => {\n const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir;\n const index = key || ONE_DOT;\n watchList[index] = entry.getChildren().sort();\n });\n return watchList;\n }\n emitWithAll(event, args) {\n this.emit(event, ...args);\n if (event !== handler_js_1.EVENTS.ERROR)\n this.emit(handler_js_1.EVENTS.ALL, event, ...args);\n }\n // Common helpers\n // --------------\n /**\n * Normalize and emit events.\n * Calling _emit DOES NOT MEAN emit() would be called!\n * @param event Type of event\n * @param path File or directory path\n * @param stats arguments to be passed with event\n * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag\n */\n async _emit(event, path, stats) {\n if (this.closed)\n return;\n const opts = this.options;\n if (handler_js_1.isWindows)\n path = sysPath.normalize(path);\n if (opts.cwd)\n path = sysPath.relative(opts.cwd, path);\n const args = [path];\n if (stats != null)\n args.push(stats);\n const awf = opts.awaitWriteFinish;\n let pw;\n if (awf && (pw = this._pendingWrites.get(path))) {\n pw.lastChange = new Date();\n return this;\n }\n if (opts.atomic) {\n if (event === handler_js_1.EVENTS.UNLINK) {\n this._pendingUnlinks.set(path, [event, ...args]);\n setTimeout(() => {\n this._pendingUnlinks.forEach((entry, path) => {\n this.emit(...entry);\n this.emit(handler_js_1.EVENTS.ALL, ...entry);\n this._pendingUnlinks.delete(path);\n });\n }, typeof opts.atomic === 'number' ? opts.atomic : 100);\n return this;\n }\n if (event === handler_js_1.EVENTS.ADD && this._pendingUnlinks.has(path)) {\n event = handler_js_1.EVENTS.CHANGE;\n this._pendingUnlinks.delete(path);\n }\n }\n if (awf && (event === handler_js_1.EVENTS.ADD || event === handler_js_1.EVENTS.CHANGE) && this._readyEmitted) {\n const awfEmit = (err, stats) => {\n if (err) {\n event = handler_js_1.EVENTS.ERROR;\n args[0] = err;\n this.emitWithAll(event, args);\n }\n else if (stats) {\n // if stats doesn't exist the file must have been deleted\n if (args.length > 1) {\n args[1] = stats;\n }\n else {\n args.push(stats);\n }\n this.emitWithAll(event, args);\n }\n };\n this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit);\n return this;\n }\n if (event === handler_js_1.EVENTS.CHANGE) {\n const isThrottled = !this._throttle(handler_js_1.EVENTS.CHANGE, path, 50);\n if (isThrottled)\n return this;\n }\n if (opts.alwaysStat &&\n stats === undefined &&\n (event === handler_js_1.EVENTS.ADD || event === handler_js_1.EVENTS.ADD_DIR || event === handler_js_1.EVENTS.CHANGE)) {\n const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path;\n let stats;\n try {\n stats = await (0, promises_1.stat)(fullPath);\n }\n catch (err) {\n // do nothing\n }\n // Suppress event when fs_stat fails, to avoid sending undefined 'stat'\n if (!stats || this.closed)\n return;\n args.push(stats);\n }\n this.emitWithAll(event, args);\n return this;\n }\n /**\n * Common handler for errors\n * @returns The error if defined, otherwise the value of the FSWatcher instance's `closed` flag\n */\n _handleError(error) {\n const code = error && error.code;\n if (error &&\n code !== 'ENOENT' &&\n code !== 'ENOTDIR' &&\n (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES'))) {\n this.emit(handler_js_1.EVENTS.ERROR, error);\n }\n return error || this.closed;\n }\n /**\n * Helper utility for throttling\n * @param actionType type being throttled\n * @param path being acted upon\n * @param timeout duration of time to suppress duplicate actions\n * @returns tracking object or false if action should be suppressed\n */\n _throttle(actionType, path, timeout) {\n if (!this._throttled.has(actionType)) {\n this._throttled.set(actionType, new Map());\n }\n const action = this._throttled.get(actionType);\n if (!action)\n throw new Error('invalid throttle');\n const actionPath = action.get(path);\n if (actionPath) {\n actionPath.count++;\n return false;\n }\n // eslint-disable-next-line prefer-const\n let timeoutObject;\n const clear = () => {\n const item = action.get(path);\n const count = item ? item.count : 0;\n action.delete(path);\n clearTimeout(timeoutObject);\n if (item)\n clearTimeout(item.timeoutObject);\n return count;\n };\n timeoutObject = setTimeout(clear, timeout);\n const thr = { timeoutObject, clear, count: 0 };\n action.set(path, thr);\n return thr;\n }\n _incrReadyCount() {\n return this._readyCount++;\n }\n /**\n * Awaits write operation to finish.\n * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback.\n * @param path being acted upon\n * @param threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished\n * @param event\n * @param awfEmit Callback to be called when ready for event to be emitted.\n */\n _awaitWriteFinish(path, threshold, event, awfEmit) {\n const awf = this.options.awaitWriteFinish;\n if (typeof awf !== 'object')\n return;\n const pollInterval = awf.pollInterval;\n let timeoutHandler;\n let fullPath = path;\n if (this.options.cwd && !sysPath.isAbsolute(path)) {\n fullPath = sysPath.join(this.options.cwd, path);\n }\n const now = new Date();\n const writes = this._pendingWrites;\n function awaitWriteFinishFn(prevStat) {\n (0, fs_1.stat)(fullPath, (err, curStat) => {\n if (err || !writes.has(path)) {\n if (err && err.code !== 'ENOENT')\n awfEmit(err);\n return;\n }\n const now = Number(new Date());\n if (prevStat && curStat.size !== prevStat.size) {\n writes.get(path).lastChange = now;\n }\n const pw = writes.get(path);\n const df = now - pw.lastChange;\n if (df >= threshold) {\n writes.delete(path);\n awfEmit(undefined, curStat);\n }\n else {\n timeoutHandler = setTimeout(awaitWriteFinishFn, pollInterval, curStat);\n }\n });\n }\n if (!writes.has(path)) {\n writes.set(path, {\n lastChange: now,\n cancelWait: () => {\n writes.delete(path);\n clearTimeout(timeoutHandler);\n return event;\n },\n });\n timeoutHandler = setTimeout(awaitWriteFinishFn, pollInterval);\n }\n }\n /**\n * Determines whether user has asked to ignore this path.\n */\n _isIgnored(path, stats) {\n if (this.options.atomic && DOT_RE.test(path))\n return true;\n if (!this._userIgnored) {\n const { cwd } = this.options;\n const ign = this.options.ignored;\n const ignored = (ign || []).map(normalizeIgnored(cwd));\n const ignoredPaths = [...this._ignoredPaths];\n const list = [...ignoredPaths.map(normalizeIgnored(cwd)), ...ignored];\n this._userIgnored = anymatch(list, undefined);\n }\n return this._userIgnored(path, stats);\n }\n _isntIgnored(path, stat) {\n return !this._isIgnored(path, stat);\n }\n /**\n * Provides a set of common helpers and properties relating to symlink handling.\n * @param path file or directory pattern being watched\n */\n _getWatchHelpers(path) {\n return new WatchHelper(path, this.options.followSymlinks, this);\n }\n // Directory helpers\n // -----------------\n /**\n * Provides directory tracking objects\n * @param directory path of the directory\n */\n _getWatchedDir(directory) {\n const dir = sysPath.resolve(directory);\n if (!this._watched.has(dir))\n this._watched.set(dir, new DirEntry(dir, this._boundRemove));\n return this._watched.get(dir);\n }\n // File helpers\n // ------------\n /**\n * Check for read permissions: https://stackoverflow.com/a/11781404/1358405\n */\n _hasReadPermissions(stats) {\n if (this.options.ignorePermissionErrors)\n return true;\n return Boolean(Number(stats.mode) & 0o400);\n }\n /**\n * Handles emitting unlink events for\n * files and directories, and via recursion, for\n * files and directories within directories that are unlinked\n * @param directory within which the following item is located\n * @param item base path of item/directory\n */\n _remove(directory, item, isDirectory) {\n // if what is being deleted is a directory, get that directory's paths\n // for recursive deleting and cleaning of watched object\n // if it is not a directory, nestedDirectoryChildren will be empty array\n const path = sysPath.join(directory, item);\n const fullPath = sysPath.resolve(path);\n isDirectory =\n isDirectory != null ? isDirectory : this._watched.has(path) || this._watched.has(fullPath);\n // prevent duplicate handling in case of arriving here nearly simultaneously\n // via multiple paths (such as _handleFile and _handleDir)\n if (!this._throttle('remove', path, 100))\n return;\n // if the only watched file is removed, watch for its return\n if (!isDirectory && this._watched.size === 1) {\n this.add(directory, item, true);\n }\n // This will create a new entry in the watched object in either case\n // so we got to do the directory check beforehand\n const wp = this._getWatchedDir(path);\n const nestedDirectoryChildren = wp.getChildren();\n // Recursively remove children directories / files.\n nestedDirectoryChildren.forEach((nested) => this._remove(path, nested));\n // Check if item was on the watched list and remove it\n const parent = this._getWatchedDir(directory);\n const wasTracked = parent.has(item);\n parent.remove(item);\n // Fixes issue #1042 -> Relative paths were detected and added as symlinks\n // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612),\n // but never removed from the map in case the path was deleted.\n // This leads to an incorrect state if the path was recreated:\n // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553\n if (this._symlinkPaths.has(fullPath)) {\n this._symlinkPaths.delete(fullPath);\n }\n // If we wait for this file to be fully written, cancel the wait.\n let relPath = path;\n if (this.options.cwd)\n relPath = sysPath.relative(this.options.cwd, path);\n if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) {\n const event = this._pendingWrites.get(relPath).cancelWait();\n if (event === handler_js_1.EVENTS.ADD)\n return;\n }\n // The Entry will either be a directory that just got removed\n // or a bogus entry to a file, in either case we have to remove it\n this._watched.delete(path);\n this._watched.delete(fullPath);\n const eventName = isDirectory ? handler_js_1.EVENTS.UNLINK_DIR : handler_js_1.EVENTS.UNLINK;\n if (wasTracked && !this._isIgnored(path))\n this._emit(eventName, path);\n // Avoid conflicts if we later create another file with the same name\n this._closePath(path);\n }\n /**\n * Closes all watchers for a path\n */\n _closePath(path) {\n this._closeFile(path);\n const dir = sysPath.dirname(path);\n this._getWatchedDir(dir).remove(sysPath.basename(path));\n }\n /**\n * Closes only file-specific watchers\n */\n _closeFile(path) {\n const closers = this._closers.get(path);\n if (!closers)\n return;\n closers.forEach((closer) => closer());\n this._closers.delete(path);\n }\n _addPathCloser(path, closer) {\n if (!closer)\n return;\n let list = this._closers.get(path);\n if (!list) {\n list = [];\n this._closers.set(path, list);\n }\n list.push(closer);\n }\n _readdirp(root, opts) {\n if (this.closed)\n return;\n const options = { type: handler_js_1.EVENTS.ALL, alwaysStat: true, lstat: true, ...opts, depth: 0 };\n let stream = (0, readdirp_1.readdirp)(root, options);\n this._streams.add(stream);\n stream.once(handler_js_1.STR_CLOSE, () => {\n stream = undefined;\n });\n stream.once(handler_js_1.STR_END, () => {\n if (stream) {\n this._streams.delete(stream);\n stream = undefined;\n }\n });\n return stream;\n }\n}\nexports.FSWatcher = FSWatcher;\n/**\n * Instantiates watcher with paths to be tracked.\n * @param paths file / directory paths\n * @param options opts, such as `atomic`, `awaitWriteFinish`, `ignored`, and others\n * @returns an instance of FSWatcher for chaining.\n * @example\n * const watcher = watch('.').on('all', (event, path) => { console.log(event, path); });\n * watch('.', { atomic: true, awaitWriteFinish: true, ignored: (f, stats) => stats?.isFile() && !f.endsWith('.js') })\n */\nfunction watch(paths, options = {}) {\n const watcher = new FSWatcher(options);\n watcher.add(paths);\n return watcher;\n}\nexports.default = { watch, FSWatcher };\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar ArchiveEntry = module.exports = function() {};\n\nArchiveEntry.prototype.getName = function() {};\n\nArchiveEntry.prototype.getSize = function() {};\n\nArchiveEntry.prototype.getLastModifiedDate = function() {};\n\nArchiveEntry.prototype.isDirectory = function() {};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar inherits = require('util').inherits;\nvar isStream = require('is-stream');\nvar Transform = require('readable-stream').Transform;\n\nvar ArchiveEntry = require('./archive-entry');\nvar util = require('../util');\n\nvar ArchiveOutputStream = module.exports = function(options) {\n if (!(this instanceof ArchiveOutputStream)) {\n return new ArchiveOutputStream(options);\n }\n\n Transform.call(this, options);\n\n this.offset = 0;\n this._archive = {\n finish: false,\n finished: false,\n processing: false\n };\n};\n\ninherits(ArchiveOutputStream, Transform);\n\nArchiveOutputStream.prototype._appendBuffer = function(zae, source, callback) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._appendStream = function(zae, source, callback) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._emitErrorCallback = function(err) {\n if (err) {\n this.emit('error', err);\n }\n};\n\nArchiveOutputStream.prototype._finish = function(ae) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._normalizeEntry = function(ae) {\n // scaffold only\n};\n\nArchiveOutputStream.prototype._transform = function(chunk, encoding, callback) {\n callback(null, chunk);\n};\n\nArchiveOutputStream.prototype.entry = function(ae, source, callback) {\n source = source || null;\n\n if (typeof callback !== 'function') {\n callback = this._emitErrorCallback.bind(this);\n }\n\n if (!(ae instanceof ArchiveEntry)) {\n callback(new Error('not a valid instance of ArchiveEntry'));\n return;\n }\n\n if (this._archive.finish || this._archive.finished) {\n callback(new Error('unacceptable entry after finish'));\n return;\n }\n\n if (this._archive.processing) {\n callback(new Error('already processing an entry'));\n return;\n }\n\n this._archive.processing = true;\n this._normalizeEntry(ae);\n this._entry = ae;\n\n source = util.normalizeInputSource(source);\n\n if (Buffer.isBuffer(source)) {\n this._appendBuffer(ae, source, callback);\n } else if (isStream(source)) {\n this._appendStream(ae, source, callback);\n } else {\n this._archive.processing = false;\n callback(new Error('input source must be valid Stream or Buffer instance'));\n return;\n }\n\n return this;\n};\n\nArchiveOutputStream.prototype.finish = function() {\n if (this._archive.processing) {\n this._archive.finish = true;\n return;\n }\n\n this._finish();\n};\n\nArchiveOutputStream.prototype.getBytesWritten = function() {\n return this.offset;\n};\n\nArchiveOutputStream.prototype.write = function(chunk, cb) {\n if (chunk) {\n this.offset += chunk.length;\n }\n\n return Transform.prototype.write.call(this, chunk, cb);\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nmodule.exports = {\n WORD: 4,\n DWORD: 8,\n EMPTY: Buffer.alloc(0),\n\n SHORT: 2,\n SHORT_MASK: 0xffff,\n SHORT_SHIFT: 16,\n SHORT_ZERO: Buffer.from(Array(2)),\n LONG: 4,\n LONG_ZERO: Buffer.from(Array(4)),\n\n MIN_VERSION_INITIAL: 10,\n MIN_VERSION_DATA_DESCRIPTOR: 20,\n MIN_VERSION_ZIP64: 45,\n VERSION_MADEBY: 45,\n\n METHOD_STORED: 0,\n METHOD_DEFLATED: 8,\n\n PLATFORM_UNIX: 3,\n PLATFORM_FAT: 0,\n\n SIG_LFH: 0x04034b50,\n SIG_DD: 0x08074b50,\n SIG_CFH: 0x02014b50,\n SIG_EOCD: 0x06054b50,\n SIG_ZIP64_EOCD: 0x06064B50,\n SIG_ZIP64_EOCD_LOC: 0x07064B50,\n\n ZIP64_MAGIC_SHORT: 0xffff,\n ZIP64_MAGIC: 0xffffffff,\n ZIP64_EXTRA_ID: 0x0001,\n\n ZLIB_NO_COMPRESSION: 0,\n ZLIB_BEST_SPEED: 1,\n ZLIB_BEST_COMPRESSION: 9,\n ZLIB_DEFAULT_COMPRESSION: -1,\n\n MODE_MASK: 0xFFF,\n DEFAULT_FILE_MODE: 33188, // 010644 = -rw-r--r-- = S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH\n DEFAULT_DIR_MODE: 16877, // 040755 = drwxr-xr-x = S_IFDIR | S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH\n\n EXT_FILE_ATTR_DIR: 1106051088, // 010173200020 = drwxr-xr-x = (((S_IFDIR | 0755) << 16) | S_DOS_D)\n EXT_FILE_ATTR_FILE: 2175008800, // 020151000040 = -rw-r--r-- = (((S_IFREG | 0644) << 16) | S_DOS_A) >>> 0\n\n // Unix file types\n S_IFMT: 61440, // 0170000 type of file mask\n S_IFIFO: 4096, // 010000 named pipe (fifo)\n S_IFCHR: 8192, // 020000 character special\n S_IFDIR: 16384, // 040000 directory\n S_IFBLK: 24576, // 060000 block special\n S_IFREG: 32768, // 0100000 regular\n S_IFLNK: 40960, // 0120000 symbolic link\n S_IFSOCK: 49152, // 0140000 socket\n\n // DOS file type flags\n S_DOS_A: 32, // 040 Archive\n S_DOS_D: 16, // 020 Directory\n S_DOS_V: 8, // 010 Volume\n S_DOS_S: 4, // 04 System\n S_DOS_H: 2, // 02 Hidden\n S_DOS_R: 1 // 01 Read Only\n};\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar zipUtil = require('./util');\n\nvar DATA_DESCRIPTOR_FLAG = 1 << 3;\nvar ENCRYPTION_FLAG = 1 << 0;\nvar NUMBER_OF_SHANNON_FANO_TREES_FLAG = 1 << 2;\nvar SLIDING_DICTIONARY_SIZE_FLAG = 1 << 1;\nvar STRONG_ENCRYPTION_FLAG = 1 << 6;\nvar UFT8_NAMES_FLAG = 1 << 11;\n\nvar GeneralPurposeBit = module.exports = function() {\n if (!(this instanceof GeneralPurposeBit)) {\n return new GeneralPurposeBit();\n }\n\n this.descriptor = false;\n this.encryption = false;\n this.utf8 = false;\n this.numberOfShannonFanoTrees = 0;\n this.strongEncryption = false;\n this.slidingDictionarySize = 0;\n\n return this;\n};\n\nGeneralPurposeBit.prototype.encode = function() {\n return zipUtil.getShortBytes(\n (this.descriptor ? DATA_DESCRIPTOR_FLAG : 0) |\n (this.utf8 ? UFT8_NAMES_FLAG : 0) |\n (this.encryption ? ENCRYPTION_FLAG : 0) |\n (this.strongEncryption ? STRONG_ENCRYPTION_FLAG : 0)\n );\n};\n\nGeneralPurposeBit.prototype.parse = function(buf, offset) {\n var flag = zipUtil.getShortBytesValue(buf, offset);\n var gbp = new GeneralPurposeBit();\n\n gbp.useDataDescriptor((flag & DATA_DESCRIPTOR_FLAG) !== 0);\n gbp.useUTF8ForNames((flag & UFT8_NAMES_FLAG) !== 0);\n gbp.useStrongEncryption((flag & STRONG_ENCRYPTION_FLAG) !== 0);\n gbp.useEncryption((flag & ENCRYPTION_FLAG) !== 0);\n gbp.setSlidingDictionarySize((flag & SLIDING_DICTIONARY_SIZE_FLAG) !== 0 ? 8192 : 4096);\n gbp.setNumberOfShannonFanoTrees((flag & NUMBER_OF_SHANNON_FANO_TREES_FLAG) !== 0 ? 3 : 2);\n\n return gbp;\n};\n\nGeneralPurposeBit.prototype.setNumberOfShannonFanoTrees = function(n) {\n this.numberOfShannonFanoTrees = n;\n};\n\nGeneralPurposeBit.prototype.getNumberOfShannonFanoTrees = function() {\n return this.numberOfShannonFanoTrees;\n};\n\nGeneralPurposeBit.prototype.setSlidingDictionarySize = function(n) {\n this.slidingDictionarySize = n;\n};\n\nGeneralPurposeBit.prototype.getSlidingDictionarySize = function() {\n return this.slidingDictionarySize;\n};\n\nGeneralPurposeBit.prototype.useDataDescriptor = function(b) {\n this.descriptor = b;\n};\n\nGeneralPurposeBit.prototype.usesDataDescriptor = function() {\n return this.descriptor;\n};\n\nGeneralPurposeBit.prototype.useEncryption = function(b) {\n this.encryption = b;\n};\n\nGeneralPurposeBit.prototype.usesEncryption = function() {\n return this.encryption;\n};\n\nGeneralPurposeBit.prototype.useStrongEncryption = function(b) {\n this.strongEncryption = b;\n};\n\nGeneralPurposeBit.prototype.usesStrongEncryption = function() {\n return this.strongEncryption;\n};\n\nGeneralPurposeBit.prototype.useUTF8ForNames = function(b) {\n this.utf8 = b;\n};\n\nGeneralPurposeBit.prototype.usesUTF8ForNames = function() {\n return this.utf8;\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nmodule.exports = {\n /**\n * Bits used for permissions (and sticky bit)\n */\n PERM_MASK: 4095, // 07777\n\n /**\n * Bits used to indicate the filesystem object type.\n */\n FILE_TYPE_FLAG: 61440, // 0170000\n\n /**\n * Indicates symbolic links.\n */\n LINK_FLAG: 40960, // 0120000\n\n /**\n * Indicates plain files.\n */\n FILE_FLAG: 32768, // 0100000\n\n /**\n * Indicates directories.\n */\n DIR_FLAG: 16384, // 040000\n\n // ----------------------------------------------------------\n // somewhat arbitrary choices that are quite common for shared\n // installations\n // -----------------------------------------------------------\n\n /**\n * Default permissions for symbolic links.\n */\n DEFAULT_LINK_PERM: 511, // 0777\n\n /**\n * Default permissions for directories.\n */\n DEFAULT_DIR_PERM: 493, // 0755\n\n /**\n * Default permissions for plain files.\n */\n DEFAULT_FILE_PERM: 420 // 0644\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar util = module.exports = {};\n\nutil.dateToDos = function(d, forceLocalTime) {\n forceLocalTime = forceLocalTime || false;\n\n var year = forceLocalTime ? d.getFullYear() : d.getUTCFullYear();\n\n if (year < 1980) {\n return 2162688; // 1980-1-1 00:00:00\n } else if (year >= 2044) {\n return 2141175677; // 2043-12-31 23:59:58\n }\n\n var val = {\n year: year,\n month: forceLocalTime ? d.getMonth() : d.getUTCMonth(),\n date: forceLocalTime ? d.getDate() : d.getUTCDate(),\n hours: forceLocalTime ? d.getHours() : d.getUTCHours(),\n minutes: forceLocalTime ? d.getMinutes() : d.getUTCMinutes(),\n seconds: forceLocalTime ? d.getSeconds() : d.getUTCSeconds()\n };\n\n return ((val.year - 1980) << 25) | ((val.month + 1) << 21) | (val.date << 16) |\n (val.hours << 11) | (val.minutes << 5) | (val.seconds / 2);\n};\n\nutil.dosToDate = function(dos) {\n return new Date(((dos >> 25) & 0x7f) + 1980, ((dos >> 21) & 0x0f) - 1, (dos >> 16) & 0x1f, (dos >> 11) & 0x1f, (dos >> 5) & 0x3f, (dos & 0x1f) << 1);\n};\n\nutil.fromDosTime = function(buf) {\n return util.dosToDate(buf.readUInt32LE(0));\n};\n\nutil.getEightBytes = function(v) {\n var buf = Buffer.alloc(8);\n buf.writeUInt32LE(v % 0x0100000000, 0);\n buf.writeUInt32LE((v / 0x0100000000) | 0, 4);\n\n return buf;\n};\n\nutil.getShortBytes = function(v) {\n var buf = Buffer.alloc(2);\n buf.writeUInt16LE((v & 0xFFFF) >>> 0, 0);\n\n return buf;\n};\n\nutil.getShortBytesValue = function(buf, offset) {\n return buf.readUInt16LE(offset);\n};\n\nutil.getLongBytes = function(v) {\n var buf = Buffer.alloc(4);\n buf.writeUInt32LE((v & 0xFFFFFFFF) >>> 0, 0);\n\n return buf;\n};\n\nutil.getLongBytesValue = function(buf, offset) {\n return buf.readUInt32LE(offset);\n};\n\nutil.toDosTime = function(d) {\n return util.getLongBytes(util.dateToDos(d));\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar inherits = require('util').inherits;\nvar normalizePath = require('normalize-path');\n\nvar ArchiveEntry = require('../archive-entry');\nvar GeneralPurposeBit = require('./general-purpose-bit');\nvar UnixStat = require('./unix-stat');\n\nvar constants = require('./constants');\nvar zipUtil = require('./util');\n\nvar ZipArchiveEntry = module.exports = function(name) {\n if (!(this instanceof ZipArchiveEntry)) {\n return new ZipArchiveEntry(name);\n }\n\n ArchiveEntry.call(this);\n\n this.platform = constants.PLATFORM_FAT;\n this.method = -1;\n\n this.name = null;\n this.size = 0;\n this.csize = 0;\n this.gpb = new GeneralPurposeBit();\n this.crc = 0;\n this.time = -1;\n\n this.minver = constants.MIN_VERSION_INITIAL;\n this.mode = -1;\n this.extra = null;\n this.exattr = 0;\n this.inattr = 0;\n this.comment = null;\n\n if (name) {\n this.setName(name);\n }\n};\n\ninherits(ZipArchiveEntry, ArchiveEntry);\n\n/**\n * Returns the extra fields related to the entry.\n *\n * @returns {Buffer}\n */\nZipArchiveEntry.prototype.getCentralDirectoryExtra = function() {\n return this.getExtra();\n};\n\n/**\n * Returns the comment set for the entry.\n *\n * @returns {string}\n */\nZipArchiveEntry.prototype.getComment = function() {\n return this.comment !== null ? this.comment : '';\n};\n\n/**\n * Returns the compressed size of the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getCompressedSize = function() {\n return this.csize;\n};\n\n/**\n * Returns the CRC32 digest for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getCrc = function() {\n return this.crc;\n};\n\n/**\n * Returns the external file attributes for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getExternalAttributes = function() {\n return this.exattr;\n};\n\n/**\n * Returns the extra fields related to the entry.\n *\n * @returns {Buffer}\n */\nZipArchiveEntry.prototype.getExtra = function() {\n return this.extra !== null ? this.extra : constants.EMPTY;\n};\n\n/**\n * Returns the general purpose bits related to the entry.\n *\n * @returns {GeneralPurposeBit}\n */\nZipArchiveEntry.prototype.getGeneralPurposeBit = function() {\n return this.gpb;\n};\n\n/**\n * Returns the internal file attributes for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getInternalAttributes = function() {\n return this.inattr;\n};\n\n/**\n * Returns the last modified date of the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getLastModifiedDate = function() {\n return this.getTime();\n};\n\n/**\n * Returns the extra fields related to the entry.\n *\n * @returns {Buffer}\n */\nZipArchiveEntry.prototype.getLocalFileDataExtra = function() {\n return this.getExtra();\n};\n\n/**\n * Returns the compression method used on the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getMethod = function() {\n return this.method;\n};\n\n/**\n * Returns the filename of the entry.\n *\n * @returns {string}\n */\nZipArchiveEntry.prototype.getName = function() {\n return this.name;\n};\n\n/**\n * Returns the platform on which the entry was made.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getPlatform = function() {\n return this.platform;\n};\n\n/**\n * Returns the size of the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getSize = function() {\n return this.size;\n};\n\n/**\n * Returns a date object representing the last modified date of the entry.\n *\n * @returns {number|Date}\n */\nZipArchiveEntry.prototype.getTime = function() {\n return this.time !== -1 ? zipUtil.dosToDate(this.time) : -1;\n};\n\n/**\n * Returns the DOS timestamp for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getTimeDos = function() {\n return this.time !== -1 ? this.time : 0;\n};\n\n/**\n * Returns the UNIX file permissions for the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getUnixMode = function() {\n return this.platform !== constants.PLATFORM_UNIX ? 0 : ((this.getExternalAttributes() >> constants.SHORT_SHIFT) & constants.SHORT_MASK);\n};\n\n/**\n * Returns the version of ZIP needed to extract the entry.\n *\n * @returns {number}\n */\nZipArchiveEntry.prototype.getVersionNeededToExtract = function() {\n return this.minver;\n};\n\n/**\n * Sets the comment of the entry.\n *\n * @param comment\n */\nZipArchiveEntry.prototype.setComment = function(comment) {\n if (Buffer.byteLength(comment) !== comment.length) {\n this.getGeneralPurposeBit().useUTF8ForNames(true);\n }\n\n this.comment = comment;\n};\n\n/**\n * Sets the compressed size of the entry.\n *\n * @param size\n */\nZipArchiveEntry.prototype.setCompressedSize = function(size) {\n if (size < 0) {\n throw new Error('invalid entry compressed size');\n }\n\n this.csize = size;\n};\n\n/**\n * Sets the checksum of the entry.\n *\n * @param crc\n */\nZipArchiveEntry.prototype.setCrc = function(crc) {\n if (crc < 0) {\n throw new Error('invalid entry crc32');\n }\n\n this.crc = crc;\n};\n\n/**\n * Sets the external file attributes of the entry.\n *\n * @param attr\n */\nZipArchiveEntry.prototype.setExternalAttributes = function(attr) {\n this.exattr = attr >>> 0;\n};\n\n/**\n * Sets the extra fields related to the entry.\n *\n * @param extra\n */\nZipArchiveEntry.prototype.setExtra = function(extra) {\n this.extra = extra;\n};\n\n/**\n * Sets the general purpose bits related to the entry.\n *\n * @param gpb\n */\nZipArchiveEntry.prototype.setGeneralPurposeBit = function(gpb) {\n if (!(gpb instanceof GeneralPurposeBit)) {\n throw new Error('invalid entry GeneralPurposeBit');\n }\n\n this.gpb = gpb;\n};\n\n/**\n * Sets the internal file attributes of the entry.\n *\n * @param attr\n */\nZipArchiveEntry.prototype.setInternalAttributes = function(attr) {\n this.inattr = attr;\n};\n\n/**\n * Sets the compression method of the entry.\n *\n * @param method\n */\nZipArchiveEntry.prototype.setMethod = function(method) {\n if (method < 0) {\n throw new Error('invalid entry compression method');\n }\n\n this.method = method;\n};\n\n/**\n * Sets the name of the entry.\n *\n * @param name\n * @param prependSlash\n */\nZipArchiveEntry.prototype.setName = function(name, prependSlash = false) {\n name = normalizePath(name, false)\n .replace(/^\\w+:/, '')\n .replace(/^(\\.\\.\\/|\\/)+/, '');\n\n if (prependSlash) {\n name = `/${name}`;\n }\n\n if (Buffer.byteLength(name) !== name.length) {\n this.getGeneralPurposeBit().useUTF8ForNames(true);\n }\n\n this.name = name;\n};\n\n/**\n * Sets the platform on which the entry was made.\n *\n * @param platform\n */\nZipArchiveEntry.prototype.setPlatform = function(platform) {\n this.platform = platform;\n};\n\n/**\n * Sets the size of the entry.\n *\n * @param size\n */\nZipArchiveEntry.prototype.setSize = function(size) {\n if (size < 0) {\n throw new Error('invalid entry size');\n }\n\n this.size = size;\n};\n\n/**\n * Sets the time of the entry.\n *\n * @param time\n * @param forceLocalTime\n */\nZipArchiveEntry.prototype.setTime = function(time, forceLocalTime) {\n if (!(time instanceof Date)) {\n throw new Error('invalid entry time');\n }\n\n this.time = zipUtil.dateToDos(time, forceLocalTime);\n};\n\n/**\n * Sets the UNIX file permissions for the entry.\n *\n * @param mode\n */\nZipArchiveEntry.prototype.setUnixMode = function(mode) {\n mode |= this.isDirectory() ? constants.S_IFDIR : constants.S_IFREG;\n\n var extattr = 0;\n extattr |= (mode << constants.SHORT_SHIFT) | (this.isDirectory() ? constants.S_DOS_D : constants.S_DOS_A);\n\n this.setExternalAttributes(extattr);\n this.mode = mode & constants.MODE_MASK;\n this.platform = constants.PLATFORM_UNIX;\n};\n\n/**\n * Sets the version of ZIP needed to extract this entry.\n *\n * @param minver\n */\nZipArchiveEntry.prototype.setVersionNeededToExtract = function(minver) {\n this.minver = minver;\n};\n\n/**\n * Returns true if this entry represents a directory.\n *\n * @returns {boolean}\n */\nZipArchiveEntry.prototype.isDirectory = function() {\n return this.getName().slice(-1) === '/';\n};\n\n/**\n * Returns true if this entry represents a unix symlink,\n * in which case the entry's content contains the target path\n * for the symlink.\n *\n * @returns {boolean}\n */\nZipArchiveEntry.prototype.isUnixSymlink = function() {\n return (this.getUnixMode() & UnixStat.FILE_TYPE_FLAG) === UnixStat.LINK_FLAG;\n};\n\n/**\n * Returns true if this entry is using the ZIP64 extension of ZIP.\n *\n * @returns {boolean}\n */\nZipArchiveEntry.prototype.isZip64 = function() {\n return this.csize > constants.ZIP64_MAGIC || this.size > constants.ZIP64_MAGIC;\n};\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar inherits = require('util').inherits;\nvar crc32 = require('crc-32');\nvar {CRC32Stream} = require('crc32-stream');\nvar {DeflateCRC32Stream} = require('crc32-stream');\n\nvar ArchiveOutputStream = require('../archive-output-stream');\nvar ZipArchiveEntry = require('./zip-archive-entry');\nvar GeneralPurposeBit = require('./general-purpose-bit');\n\nvar constants = require('./constants');\nvar util = require('../../util');\nvar zipUtil = require('./util');\n\nvar ZipArchiveOutputStream = module.exports = function(options) {\n if (!(this instanceof ZipArchiveOutputStream)) {\n return new ZipArchiveOutputStream(options);\n }\n\n options = this.options = this._defaults(options);\n\n ArchiveOutputStream.call(this, options);\n\n this._entry = null;\n this._entries = [];\n this._archive = {\n centralLength: 0,\n centralOffset: 0,\n comment: '',\n finish: false,\n finished: false,\n processing: false,\n forceZip64: options.forceZip64,\n forceLocalTime: options.forceLocalTime\n };\n};\n\ninherits(ZipArchiveOutputStream, ArchiveOutputStream);\n\nZipArchiveOutputStream.prototype._afterAppend = function(ae) {\n this._entries.push(ae);\n\n if (ae.getGeneralPurposeBit().usesDataDescriptor()) {\n this._writeDataDescriptor(ae);\n }\n\n this._archive.processing = false;\n this._entry = null;\n\n if (this._archive.finish && !this._archive.finished) {\n this._finish();\n }\n};\n\nZipArchiveOutputStream.prototype._appendBuffer = function(ae, source, callback) {\n if (source.length === 0) {\n ae.setMethod(constants.METHOD_STORED);\n }\n\n var method = ae.getMethod();\n\n if (method === constants.METHOD_STORED) {\n ae.setSize(source.length);\n ae.setCompressedSize(source.length);\n ae.setCrc(crc32.buf(source) >>> 0);\n }\n\n this._writeLocalFileHeader(ae);\n\n if (method === constants.METHOD_STORED) {\n this.write(source);\n this._afterAppend(ae);\n callback(null, ae);\n return;\n } else if (method === constants.METHOD_DEFLATED) {\n this._smartStream(ae, callback).end(source);\n return;\n } else {\n callback(new Error('compression method ' + method + ' not implemented'));\n return;\n }\n};\n\nZipArchiveOutputStream.prototype._appendStream = function(ae, source, callback) {\n ae.getGeneralPurposeBit().useDataDescriptor(true);\n ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR);\n\n this._writeLocalFileHeader(ae);\n\n var smart = this._smartStream(ae, callback);\n source.once('error', function(err) {\n smart.emit('error', err);\n smart.end();\n })\n source.pipe(smart);\n};\n\nZipArchiveOutputStream.prototype._defaults = function(o) {\n if (typeof o !== 'object') {\n o = {};\n }\n\n if (typeof o.zlib !== 'object') {\n o.zlib = {};\n }\n\n if (typeof o.zlib.level !== 'number') {\n o.zlib.level = constants.ZLIB_BEST_SPEED;\n }\n\n o.forceZip64 = !!o.forceZip64;\n o.forceLocalTime = !!o.forceLocalTime;\n\n return o;\n};\n\nZipArchiveOutputStream.prototype._finish = function() {\n this._archive.centralOffset = this.offset;\n\n this._entries.forEach(function(ae) {\n this._writeCentralFileHeader(ae);\n }.bind(this));\n\n this._archive.centralLength = this.offset - this._archive.centralOffset;\n\n if (this.isZip64()) {\n this._writeCentralDirectoryZip64();\n }\n\n this._writeCentralDirectoryEnd();\n\n this._archive.processing = false;\n this._archive.finish = true;\n this._archive.finished = true;\n this.end();\n};\n\nZipArchiveOutputStream.prototype._normalizeEntry = function(ae) {\n if (ae.getMethod() === -1) {\n ae.setMethod(constants.METHOD_DEFLATED);\n }\n\n if (ae.getMethod() === constants.METHOD_DEFLATED) {\n ae.getGeneralPurposeBit().useDataDescriptor(true);\n ae.setVersionNeededToExtract(constants.MIN_VERSION_DATA_DESCRIPTOR);\n }\n\n if (ae.getTime() === -1) {\n ae.setTime(new Date(), this._archive.forceLocalTime);\n }\n\n ae._offsets = {\n file: 0,\n data: 0,\n contents: 0,\n };\n};\n\nZipArchiveOutputStream.prototype._smartStream = function(ae, callback) {\n var deflate = ae.getMethod() === constants.METHOD_DEFLATED;\n var process = deflate ? new DeflateCRC32Stream(this.options.zlib) : new CRC32Stream();\n var error = null;\n\n function handleStuff() {\n var digest = process.digest().readUInt32BE(0);\n ae.setCrc(digest);\n ae.setSize(process.size());\n ae.setCompressedSize(process.size(true));\n this._afterAppend(ae);\n callback(error, ae);\n }\n\n process.once('end', handleStuff.bind(this));\n process.once('error', function(err) {\n error = err;\n });\n\n process.pipe(this, { end: false });\n\n return process;\n};\n\nZipArchiveOutputStream.prototype._writeCentralDirectoryEnd = function() {\n var records = this._entries.length;\n var size = this._archive.centralLength;\n var offset = this._archive.centralOffset;\n\n if (this.isZip64()) {\n records = constants.ZIP64_MAGIC_SHORT;\n size = constants.ZIP64_MAGIC;\n offset = constants.ZIP64_MAGIC;\n }\n\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_EOCD));\n\n // disk numbers\n this.write(constants.SHORT_ZERO);\n this.write(constants.SHORT_ZERO);\n\n // number of entries\n this.write(zipUtil.getShortBytes(records));\n this.write(zipUtil.getShortBytes(records));\n\n // length and location of CD\n this.write(zipUtil.getLongBytes(size));\n this.write(zipUtil.getLongBytes(offset));\n\n // archive comment\n var comment = this.getComment();\n var commentLength = Buffer.byteLength(comment);\n this.write(zipUtil.getShortBytes(commentLength));\n this.write(comment);\n};\n\nZipArchiveOutputStream.prototype._writeCentralDirectoryZip64 = function() {\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD));\n\n // size of the ZIP64 EOCD record\n this.write(zipUtil.getEightBytes(44));\n\n // version made by\n this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64));\n\n // version to extract\n this.write(zipUtil.getShortBytes(constants.MIN_VERSION_ZIP64));\n\n // disk numbers\n this.write(constants.LONG_ZERO);\n this.write(constants.LONG_ZERO);\n\n // number of entries\n this.write(zipUtil.getEightBytes(this._entries.length));\n this.write(zipUtil.getEightBytes(this._entries.length));\n\n // length and location of CD\n this.write(zipUtil.getEightBytes(this._archive.centralLength));\n this.write(zipUtil.getEightBytes(this._archive.centralOffset));\n\n // extensible data sector\n // not implemented at this time\n\n // end of central directory locator\n this.write(zipUtil.getLongBytes(constants.SIG_ZIP64_EOCD_LOC));\n\n // disk number holding the ZIP64 EOCD record\n this.write(constants.LONG_ZERO);\n\n // relative offset of the ZIP64 EOCD record\n this.write(zipUtil.getEightBytes(this._archive.centralOffset + this._archive.centralLength));\n\n // total number of disks\n this.write(zipUtil.getLongBytes(1));\n};\n\nZipArchiveOutputStream.prototype._writeCentralFileHeader = function(ae) {\n var gpb = ae.getGeneralPurposeBit();\n var method = ae.getMethod();\n var fileOffset = ae._offsets.file;\n\n var size = ae.getSize();\n var compressedSize = ae.getCompressedSize();\n\n if (ae.isZip64() || fileOffset > constants.ZIP64_MAGIC) {\n size = constants.ZIP64_MAGIC;\n compressedSize = constants.ZIP64_MAGIC;\n fileOffset = constants.ZIP64_MAGIC;\n\n ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64);\n\n var extraBuf = Buffer.concat([\n zipUtil.getShortBytes(constants.ZIP64_EXTRA_ID),\n zipUtil.getShortBytes(24),\n zipUtil.getEightBytes(ae.getSize()),\n zipUtil.getEightBytes(ae.getCompressedSize()),\n zipUtil.getEightBytes(ae._offsets.file)\n ], 28);\n\n ae.setExtra(extraBuf);\n }\n\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_CFH));\n\n // version made by\n this.write(zipUtil.getShortBytes((ae.getPlatform() << 8) | constants.VERSION_MADEBY));\n\n // version to extract and general bit flag\n this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract()));\n this.write(gpb.encode());\n\n // compression method\n this.write(zipUtil.getShortBytes(method));\n\n // datetime\n this.write(zipUtil.getLongBytes(ae.getTimeDos()));\n\n // crc32 checksum\n this.write(zipUtil.getLongBytes(ae.getCrc()));\n\n // sizes\n this.write(zipUtil.getLongBytes(compressedSize));\n this.write(zipUtil.getLongBytes(size));\n\n var name = ae.getName();\n var comment = ae.getComment();\n var extra = ae.getCentralDirectoryExtra();\n\n if (gpb.usesUTF8ForNames()) {\n name = Buffer.from(name);\n comment = Buffer.from(comment);\n }\n\n // name length\n this.write(zipUtil.getShortBytes(name.length));\n\n // extra length\n this.write(zipUtil.getShortBytes(extra.length));\n\n // comments length\n this.write(zipUtil.getShortBytes(comment.length));\n\n // disk number start\n this.write(constants.SHORT_ZERO);\n\n // internal attributes\n this.write(zipUtil.getShortBytes(ae.getInternalAttributes()));\n\n // external attributes\n this.write(zipUtil.getLongBytes(ae.getExternalAttributes()));\n\n // relative offset of LFH\n this.write(zipUtil.getLongBytes(fileOffset));\n\n // name\n this.write(name);\n\n // extra\n this.write(extra);\n\n // comment\n this.write(comment);\n};\n\nZipArchiveOutputStream.prototype._writeDataDescriptor = function(ae) {\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_DD));\n\n // crc32 checksum\n this.write(zipUtil.getLongBytes(ae.getCrc()));\n\n // sizes\n if (ae.isZip64()) {\n this.write(zipUtil.getEightBytes(ae.getCompressedSize()));\n this.write(zipUtil.getEightBytes(ae.getSize()));\n } else {\n this.write(zipUtil.getLongBytes(ae.getCompressedSize()));\n this.write(zipUtil.getLongBytes(ae.getSize()));\n }\n};\n\nZipArchiveOutputStream.prototype._writeLocalFileHeader = function(ae) {\n var gpb = ae.getGeneralPurposeBit();\n var method = ae.getMethod();\n var name = ae.getName();\n var extra = ae.getLocalFileDataExtra();\n\n if (ae.isZip64()) {\n gpb.useDataDescriptor(true);\n ae.setVersionNeededToExtract(constants.MIN_VERSION_ZIP64);\n }\n\n if (gpb.usesUTF8ForNames()) {\n name = Buffer.from(name);\n }\n\n ae._offsets.file = this.offset;\n\n // signature\n this.write(zipUtil.getLongBytes(constants.SIG_LFH));\n\n // version to extract and general bit flag\n this.write(zipUtil.getShortBytes(ae.getVersionNeededToExtract()));\n this.write(gpb.encode());\n\n // compression method\n this.write(zipUtil.getShortBytes(method));\n\n // datetime\n this.write(zipUtil.getLongBytes(ae.getTimeDos()));\n\n ae._offsets.data = this.offset;\n\n // crc32 checksum and sizes\n if (gpb.usesDataDescriptor()) {\n this.write(constants.LONG_ZERO);\n this.write(constants.LONG_ZERO);\n this.write(constants.LONG_ZERO);\n } else {\n this.write(zipUtil.getLongBytes(ae.getCrc()));\n this.write(zipUtil.getLongBytes(ae.getCompressedSize()));\n this.write(zipUtil.getLongBytes(ae.getSize()));\n }\n\n // name length\n this.write(zipUtil.getShortBytes(name.length));\n\n // extra length\n this.write(zipUtil.getShortBytes(extra.length));\n\n // name\n this.write(name);\n\n // extra\n this.write(extra);\n\n ae._offsets.contents = this.offset;\n};\n\nZipArchiveOutputStream.prototype.getComment = function(comment) {\n return this._archive.comment !== null ? this._archive.comment : '';\n};\n\nZipArchiveOutputStream.prototype.isZip64 = function() {\n return this._archive.forceZip64 || this._entries.length > constants.ZIP64_MAGIC_SHORT || this._archive.centralLength > constants.ZIP64_MAGIC || this._archive.centralOffset > constants.ZIP64_MAGIC;\n};\n\nZipArchiveOutputStream.prototype.setComment = function(comment) {\n this._archive.comment = comment;\n};\n","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nmodule.exports = {\n ArchiveEntry: require('./archivers/archive-entry'),\n ZipArchiveEntry: require('./archivers/zip/zip-archive-entry'),\n ArchiveOutputStream: require('./archivers/archive-output-stream'),\n ZipArchiveOutputStream: require('./archivers/zip/zip-archive-output-stream')\n};","/**\n * node-compress-commons\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT\n */\nvar Stream = require('stream').Stream;\nvar PassThrough = require('readable-stream').PassThrough;\nvar isStream = require('is-stream');\n\nvar util = module.exports = {};\n\nutil.normalizeInputSource = function(source) {\n if (source === null) {\n return Buffer.alloc(0);\n } else if (typeof source === 'string') {\n return Buffer.from(source);\n } else if (isStream(source) && !source._readableState) {\n var normalized = new PassThrough();\n source.pipe(normalized);\n\n return normalized;\n }\n\n return source;\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tif(typeof DO_NOT_EXPORT_CRC === 'undefined') {\n\t\tif('object' === typeof exports) {\n\t\t\tfactory(exports);\n\t\t} else if ('function' === typeof define && define.amd) {\n\t\t\tdefine(function () {\n\t\t\t\tvar module = {};\n\t\t\t\tfactory(module);\n\t\t\t\treturn module;\n\t\t\t});\n\t\t} else {\n\t\t\tfactory(CRC32 = {});\n\t\t}\n\t} else {\n\t\tfactory(CRC32 = {});\n\t}\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.2';\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B, seed) {\n\tvar C = seed ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\n// $FlowIgnore\nCRC32.bstr = crc32_bstr;\n// $FlowIgnore\nCRC32.buf = crc32_buf;\n// $FlowIgnore\nCRC32.str = crc32_str;\n}));\n","/**\n * node-crc32-stream\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-crc32-stream/blob/master/LICENSE-MIT\n */\n\n 'use strict';\n\nconst {Transform} = require('readable-stream');\n\nconst crc32 = require('crc-32');\n\nclass CRC32Stream extends Transform {\n constructor(options) {\n super(options);\n this.checksum = Buffer.allocUnsafe(4);\n this.checksum.writeInt32BE(0, 0);\n\n this.rawSize = 0;\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk) {\n this.checksum = crc32.buf(chunk, this.checksum) >>> 0;\n this.rawSize += chunk.length;\n }\n\n callback(null, chunk);\n }\n\n digest(encoding) {\n const checksum = Buffer.allocUnsafe(4);\n checksum.writeUInt32BE(this.checksum >>> 0, 0);\n return encoding ? checksum.toString(encoding) : checksum;\n }\n\n hex() {\n return this.digest('hex').toUpperCase();\n }\n\n size() {\n return this.rawSize;\n }\n}\n\nmodule.exports = CRC32Stream;\n","/**\n * node-crc32-stream\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-crc32-stream/blob/master/LICENSE-MIT\n */\n\n'use strict';\n\nconst {DeflateRaw} = require('zlib');\n\nconst crc32 = require('crc-32');\n\nclass DeflateCRC32Stream extends DeflateRaw {\n constructor(options) {\n super(options);\n\n this.checksum = Buffer.allocUnsafe(4);\n this.checksum.writeInt32BE(0, 0);\n\n this.rawSize = 0;\n this.compressedSize = 0;\n }\n\n push(chunk, encoding) {\n if (chunk) {\n this.compressedSize += chunk.length;\n }\n\n return super.push(chunk, encoding);\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk) {\n this.checksum = crc32.buf(chunk, this.checksum) >>> 0;\n this.rawSize += chunk.length;\n }\n\n super._transform(chunk, encoding, callback)\n }\n\n digest(encoding) {\n const checksum = Buffer.allocUnsafe(4);\n checksum.writeUInt32BE(this.checksum >>> 0, 0);\n return encoding ? checksum.toString(encoding) : checksum;\n }\n\n hex() {\n return this.digest('hex').toUpperCase();\n }\n\n size(compressed = false) {\n if (compressed) {\n return this.compressedSize;\n } else {\n return this.rawSize;\n }\n }\n}\n\nmodule.exports = DeflateCRC32Stream;\n","/**\n * node-crc32-stream\n *\n * Copyright (c) 2014 Chris Talkington, contributors.\n * Licensed under the MIT license.\n * https://github.com/archiverjs/node-crc32-stream/blob/master/LICENSE-MIT\n */\n\n'use strict';\n\nmodule.exports = {\n CRC32Stream: require('./crc32-stream'),\n DeflateCRC32Stream: require('./deflate-crc32-stream')\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","module.exports = class FixedFIFO {\n constructor (hwm) {\n if (!(hwm > 0) || ((hwm - 1) & hwm) !== 0) throw new Error('Max size for a FixedFIFO should be a power of two')\n this.buffer = new Array(hwm)\n this.mask = hwm - 1\n this.top = 0\n this.btm = 0\n this.next = null\n }\n\n clear () {\n this.top = this.btm = 0\n this.next = null\n this.buffer.fill(undefined)\n }\n\n push (data) {\n if (this.buffer[this.top] !== undefined) return false\n this.buffer[this.top] = data\n this.top = (this.top + 1) & this.mask\n return true\n }\n\n shift () {\n const last = this.buffer[this.btm]\n if (last === undefined) return undefined\n this.buffer[this.btm] = undefined\n this.btm = (this.btm + 1) & this.mask\n return last\n }\n\n peek () {\n return this.buffer[this.btm]\n }\n\n isEmpty () {\n return this.buffer[this.btm] === undefined\n }\n}\n","const FixedFIFO = require('./fixed-size')\n\nmodule.exports = class FastFIFO {\n constructor (hwm) {\n this.hwm = hwm || 16\n this.head = new FixedFIFO(this.hwm)\n this.tail = this.head\n this.length = 0\n }\n\n clear () {\n this.head = this.tail\n this.head.clear()\n this.length = 0\n }\n\n push (val) {\n this.length++\n if (!this.head.push(val)) {\n const prev = this.head\n this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length)\n this.head.push(val)\n }\n }\n\n shift () {\n if (this.length !== 0) this.length--\n const val = this.tail.shift()\n if (val === undefined && this.tail.next) {\n const next = this.tail.next\n this.tail.next = null\n this.tail = next\n return this.tail.shift()\n }\n\n return val\n }\n\n peek () {\n const val = this.tail.peek()\n if (val === undefined && this.tail.next) return this.tail.next.peek()\n return val\n }\n\n isEmpty () {\n return this.length === 0\n }\n}\n","\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, async_1.default, options);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n FastGlob.glob = FastGlob;\n FastGlob.globSync = sync;\n FastGlob.globStream = stream;\n FastGlob.async = FastGlob;\n function sync(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, sync_1.default, options);\n return utils.array.flatten(works);\n }\n FastGlob.sync = sync;\n function stream(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, stream_1.default, options);\n /**\n * The stream returned by the provider cannot work with an asynchronous iterator.\n * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n * This affects performance (+25%). I don't see best solution right now.\n */\n return utils.stream.merge(works);\n }\n FastGlob.stream = stream;\n function generateTasks(source, options) {\n assertPatternsInput(source);\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n return taskManager.generate(patterns, settings);\n }\n FastGlob.generateTasks = generateTasks;\n function isDynamicPattern(source, options) {\n assertPatternsInput(source);\n const settings = new settings_1.default(options);\n return utils.pattern.isDynamicPattern(source, settings);\n }\n FastGlob.isDynamicPattern = isDynamicPattern;\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escape(source);\n }\n FastGlob.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPathToPattern(source);\n }\n FastGlob.convertPathToPattern = convertPathToPattern;\n let posix;\n (function (posix) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapePosixPath(source);\n }\n posix.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPosixPathToPattern(source);\n }\n posix.convertPathToPattern = convertPathToPattern;\n })(posix = FastGlob.posix || (FastGlob.posix = {}));\n let win32;\n (function (win32) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapeWindowsPath(source);\n }\n win32.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertWindowsPathToPattern(source);\n }\n win32.convertPathToPattern = convertPathToPattern;\n })(win32 = FastGlob.win32 || (FastGlob.win32 = {}));\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n const source = [].concat(input);\n const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n }\n}\nmodule.exports = FastGlob;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(input, settings) {\n const patterns = processPatterns(input, settings);\n const ignore = processPatterns(settings.ignore, settings);\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\nfunction processPatterns(input, settings) {\n let patterns = input;\n /**\n * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry\n * and some problems with the micromatch package (see fast-glob issues: #365, #394).\n *\n * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown\n * in matching in the case of a large set of patterns after expansion.\n */\n if (settings.braceExpansion) {\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n }\n /**\n * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used\n * at any nesting level.\n *\n * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change\n * the pattern in the filter before creating a regular expression. There is no need to change the patterns\n * in the application. Only on the input.\n */\n if (settings.baseNameMatch) {\n patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`);\n }\n /**\n * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion.\n */\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n}\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n /*\n * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n */\n if ('.' in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n }\n else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n }\n else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new async_1.default(this._settings);\n }\n async read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = await this.api(root, task, options);\n return entries.map((entry) => options.transform(entry));\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n /**\n * Avoid unnecessary depth calculations when it doesn't matter.\n */\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split('/').length;\n if (basePath === '') {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split('/').length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n}\nexports.default = DeepFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = new Map();\n }\n getFilter(positive, negative) {\n const [absoluteNegative, relativeNegative] = utils.pattern.partitionAbsoluteAndRelative(negative);\n const patterns = {\n positive: {\n all: utils.pattern.convertPatternsToRe(positive, this._micromatchOptions)\n },\n negative: {\n absolute: utils.pattern.convertPatternsToRe(absoluteNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })),\n relative: utils.pattern.convertPatternsToRe(relativeNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }))\n }\n };\n return (entry) => this._filter(entry, patterns);\n }\n _filter(entry, patterns) {\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n const isMatched = this._isMatchToPatternsSet(filepath, patterns, entry.dirent.isDirectory());\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(filepath);\n }\n return isMatched;\n }\n _isDuplicateEntry(filepath) {\n return this.index.has(filepath);\n }\n _createIndexRecord(filepath) {\n this.index.set(filepath, undefined);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isMatchToPatternsSet(filepath, patterns, isDirectory) {\n const isMatched = this._isMatchToPatterns(filepath, patterns.positive.all, isDirectory);\n if (!isMatched) {\n return false;\n }\n const isMatchedByRelativeNegative = this._isMatchToPatterns(filepath, patterns.negative.relative, isDirectory);\n if (isMatchedByRelativeNegative) {\n return false;\n }\n const isMatchedByAbsoluteNegative = this._isMatchToAbsoluteNegative(filepath, patterns.negative.absolute, isDirectory);\n if (isMatchedByAbsoluteNegative) {\n return false;\n }\n return true;\n }\n _isMatchToAbsoluteNegative(filepath, patternsRe, isDirectory) {\n if (patternsRe.length === 0) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n return this._isMatchToPatterns(fullpath, patternsRe, isDirectory);\n }\n _isMatchToPatterns(filepath, patternsRe, isDirectory) {\n if (patternsRe.length === 0) {\n return false;\n }\n // Trying to match files and directories by patterns.\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n // A pattern with a trailling slash can be used for directory matching.\n // To apply such pattern, we need to add a tralling slash to the path.\n if (!isMatched && isDirectory) {\n return utils.pattern.matchAny(filepath + '/', patternsRe);\n }\n return isMatched;\n }\n}\nexports.default = EntryFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n}\nexports.default = ErrorFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n for (const pattern of this._patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n}\nexports.default = Matcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split('/');\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n /**\n * In this case, the pattern has a globstar and we must read all directories unconditionally,\n * but only if the level has reached the end of the first group.\n *\n * fixtures/{a,b}/**\n * ^ true/false ^ always true\n */\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n}\nexports.default = PartialMatcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === '.' ? '' : task.base;\n return {\n basePath,\n pathSegmentSeparator: '/',\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n}\nexports.default = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const source = this.api(root, task, options);\n const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n source\n .once('error', (error) => destination.emit('error', error))\n .on('data', (entry) => destination.emit('data', options.transform(entry)))\n .once('end', () => destination.emit('end'));\n destination\n .once('close', () => source.destroy());\n return destination;\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = this.api(root, task, options);\n return entries.map(options.transform);\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += '/';\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n}\nexports.default = EntryTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nconst stream_1 = require(\"./stream\");\nclass ReaderAsync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkAsync = fsWalk.walk;\n this._readerStream = new stream_1.default(this._settings);\n }\n dynamic(root, options) {\n return new Promise((resolve, reject) => {\n this._walkAsync(root, options, (error, entries) => {\n if (error === null) {\n resolve(entries);\n }\n else {\n reject(error);\n }\n });\n });\n }\n async static(patterns, options) {\n const entries = [];\n const stream = this._readerStream.static(patterns, options);\n // After #235, replace it with an asynchronous iterator.\n return new Promise((resolve, reject) => {\n stream.once('error', reject);\n stream.on('data', (entry) => entries.push(entry));\n stream.once('end', () => resolve(entries));\n });\n }\n}\nexports.default = ReaderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root, options) {\n return this._walkStream(root, options);\n }\n static(patterns, options) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options)\n .then((entry) => {\n if (entry !== null && options.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n })\n .catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options) {\n return this._getStat(filepath)\n .then((stats) => this._makeEntry(stats, pattern))\n .catch((error) => {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve(stats) : reject(error);\n });\n });\n }\n}\nexports.default = ReaderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root, options) {\n return this._walkSync(root, options);\n }\n static(patterns, options) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options);\n if (entry === null || !options.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n }\n catch (error) {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n}\nexports.default = ReaderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n lstatSync: fs.lstatSync,\n stat: fs.stat,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n // Remove the cast to the array in the next major (#404).\n this.ignore = [].concat(this.ignore);\n }\n _getValue(option, value) {\n return option === undefined ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n }\n else {\n result[groupIndex].push(item);\n }\n }\n return result;\n}\nexports.splitWhen = splitWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst IS_WINDOWS_PLATFORM = os.platform() === 'win32';\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\n/**\n * All non-escaped special characters.\n * Posix: ()*?[]{|}, !+@ before (, ! at the beginning, \\\\ before non-special characters.\n * Windows: (){}[], !+@ before (, ! at the beginning.\n */\nconst POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\nconst WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()[\\]{}]|^!|[!+@](?=\\())/g;\n/**\n * The device path (\\\\.\\ or \\\\?\\).\n * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths\n */\nconst DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n/**\n * All backslashes except those escaping special characters.\n * Windows: !()+@{}\n * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\n */\nconst WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@[\\]{}])/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction removeLeadingDotSegment(entry) {\n // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (entry.charAt(0) === '.') {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === '/' || secondCharactery === '\\\\') {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\nexports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\nfunction escapeWindowsPath(pattern) {\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapeWindowsPath = escapeWindowsPath;\nfunction escapePosixPath(pattern) {\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapePosixPath = escapePosixPath;\nexports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\nfunction convertWindowsPathToPattern(filepath) {\n return escapeWindowsPath(filepath)\n .replace(DOS_DEVICE_PATH_RE, '//$1')\n .replace(WINDOWS_BACKSLASHES_RE, '/');\n}\nexports.convertWindowsPathToPattern = convertWindowsPathToPattern;\nfunction convertPosixPathToPattern(filepath) {\n return escapePosixPath(filepath);\n}\nexports.convertPosixPathToPattern = convertPosixPathToPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAbsolute = exports.partitionAbsoluteAndRelative = exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\nconst BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n/**\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\n * The latter is due to the presence of the device path at the beginning of the UNC path.\n */\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\nfunction isStaticPattern(pattern, options = {}) {\n return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n /**\n * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n * An empty string cannot be a dynamic pattern.\n * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n */\n if (pattern === '') {\n return false;\n }\n /**\n * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n * filepath directly (without read directory).\n */\n if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {\n return true;\n }\n return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction hasBraceExpansion(pattern) {\n const openingBraceIndex = pattern.indexOf('{');\n if (openingBraceIndex === -1) {\n return false;\n }\n const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);\n if (closingBraceIndex === -1) {\n return false;\n }\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n}\nfunction convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n const basename = path.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n const patterns = micromatch.braces(pattern, { expand: true, nodupes: true, keepEscaping: true });\n /**\n * Sort the patterns by length so that the same depth patterns are processed side by side.\n * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']`\n */\n patterns.sort((a, b) => a.length - b.length);\n /**\n * Micromatch can return an empty string in the case of patterns like `{a,}`.\n */\n return patterns.filter((pattern) => pattern !== '');\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n /**\n * The scan method returns an empty array in some cases.\n * See micromatch/picomatch#58 for more details.\n */\n if (parts.length === 0) {\n parts = [pattern];\n }\n /**\n * The scan method does not return an empty part for the pattern with a forward slash.\n * This is another part of micromatch/picomatch#58.\n */\n if (parts[0].startsWith('/')) {\n parts[0] = parts[0].slice(1);\n parts.unshift('');\n }\n return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n/**\n * This package only works with forward slashes as a path separator.\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\n */\nfunction removeDuplicateSlashes(pattern) {\n return pattern.replace(DOUBLE_SLASH_RE, '/');\n}\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\nfunction partitionAbsoluteAndRelative(patterns) {\n const absolute = [];\n const relative = [];\n for (const pattern of patterns) {\n if (isAbsolute(pattern)) {\n absolute.push(pattern);\n }\n else {\n relative.push(pattern);\n }\n }\n return [absolute, relative];\n}\nexports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;\nfunction isAbsolute(pattern) {\n return path.isAbsolute(pattern);\n}\nexports.isAbsolute = isAbsolute;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once('error', (error) => mergedStream.emit('error', error));\n });\n mergedStream.once('close', () => propagateCloseEventToSources(streams));\n mergedStream.once('end', () => propagateCloseEventToSources(streams));\n return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit('close'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n return input === '';\n}\nexports.isEmpty = isEmpty;\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n};\n\nfunction Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node only if it is not an attribute\n if (this.isAttribute(key)) {\n val += '';\n }\n } else if (jObj[key] === null) {\n // null attribute should be ignored by the attribute list, but should not cause the tag closing\n if (this.isAttribute(key)) {\n val += '';\n } else if (key[0] === '?') {\n val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n } else {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n }\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n if(this.options.oneListGroup){\n const result = this.j2x(item, level + 1);\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr\n }\n }else{\n listTagVal += this.processTextOrObjNode(item, key, level)\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, '', level);\n }\n }\n }\n if(this.options.oneListGroup){\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n val = this.options.attributeValueProcessor(attrName, '' + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return ' ' + attrName;\n } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if(val === \"\"){\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n }else{\n\n let tagEndExp = '' + val + tagEndExp );\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `` + this.newLine;\n }else {\n return (\n this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n val +\n this.indentate(level) + tagEndExp );\n }\n }\n}\n\nBuilder.prototype.closeTag = function(key){\n let closeTag = \"\";\n if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n }else if(this.options.suppressEmptyNode){ //empty\n closeTag = \"/\";\n }else{\n closeTag = `>` + this.newLine;\n }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `` + this.newLine;\n }else if(key[0] === \"?\") {//PI tag\n return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n }else{\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n \n if( textValue === ''){\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }else{\n return this.indentate(level) + '<' + key + attrStr + '>' +\n textValue +\n ' 0 && this.options.processEntities){\n for (let i=0; i 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n if(tagName === undefined) continue;\n\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName\n else newJPath = `${jPath}.${tagName}`;\n\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += ``;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + ``;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n }\n isPreviousElementTag = true;\n }\n\n return xmlStr;\n}\n\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n}\n\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if(!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\nmodule.exports = toXml;\n","const util = require('../util');\n\n//TODO: handle comments\nfunction readDocType(xmlData, i){\n \n const entities = {};\n if( xmlData[i + 3] === 'O' &&\n xmlData[i + 4] === 'C' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'Y' &&\n xmlData[i + 7] === 'P' &&\n xmlData[i + 8] === 'E')\n { \n i = i+9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for(;i') { //Read tag content\n if(comment){\n if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n comment = false;\n angleBracketsCount--;\n }\n }else{\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n }else if( xmlData[i] === '['){\n hasBody = true;\n }else{\n exp += xmlData[i];\n }\n }\n if(angleBracketsCount !== 0){\n throw new Error(`Unclosed DOCTYPE`);\n }\n }else{\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n //External entities are not supported\n // \n\n //Parameter entities are not supported\n // \n\n //Internal entities are supported\n // \n \n //read EntityName\n let entityName = \"\";\n for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n // if(xmlData[i] === \" \") continue;\n // else \n entityName += xmlData[i];\n }\n entityName = entityName.trim();\n if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n //read Entity Value\n const startChar = xmlData[i++];\n let val = \"\"\n for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n val += xmlData[i];\n }\n return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === '-' &&\n xmlData[i+3] === '-') return true\n return false\n}\nfunction isEntity(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'N' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'I' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'Y') return true\n return false\n}\nfunction isElement(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'L' &&\n xmlData[i+4] === 'E' &&\n xmlData[i+5] === 'M' &&\n xmlData[i+6] === 'E' &&\n xmlData[i+7] === 'N' &&\n xmlData[i+8] === 'T') return true\n return false\n}\n\nfunction isAttlist(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'A' &&\n xmlData[i+3] === 'T' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'L' &&\n xmlData[i+6] === 'I' &&\n xmlData[i+7] === 'S' &&\n xmlData[i+8] === 'T') return true\n return false\n}\nfunction isNotation(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'N' &&\n xmlData[i+3] === 'O' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'A' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'I' &&\n xmlData[i+8] === 'O' &&\n xmlData[i+9] === 'N') return true\n return false\n}\n\nfunction validateEntityName(name){\n if (util.isName(name))\n\treturn name;\n else\n throw new Error(`Invalid entity name ${name}`);\n}\n\nmodule.exports = readDocType;\n","\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs){\n return tagName\n },\n // skipEmptyListItem: false\n};\n \nconst buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;","'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\n\n// const regx =\n// '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n// .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n constructor(options){\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 16)) },\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n }\n\n}\n\nfunction addExternalEntities(externalEntities){\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n val : externalEntities[ent]\n }\n }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== undefined) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n if(!escapeEntities) val = this.replaceEntitiesValue(val);\n \n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(this.options.trimValues){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if(aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== undefined) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs\n }\n}\n\nconst parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(this.options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n if(currentNode){\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n\n //check if last tag of nested tag was unpaired tag\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n throw new Error(`Unpaired tag can not be used as closing tag: `);\n }\n let propIndex = 0\n if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n this.tagsNodeStack.pop();\n }else{\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n\n currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n\n let tagData = readTagExp(xmlData,i, false, \"?>\");\n if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n }else{\n \n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n \n if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n\n }\n\n\n i = tagData.closeIndex + 1;\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n if(this.options.commentPropName){\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n }\n i = endIndex;\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const result = readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if(val == undefined) val = \"\";\n\n //cdata should be set even if it is 0 length string\n if(this.options.cdataPropName){\n currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n }else{\n currentNode.add(this.options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n let tagName= result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n\n //check if last tag was unpaired tag\n const lastTag = currentNode;\n if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n //self-closing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i = result.closeIndex;\n }\n //unpaired tag\n else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n \n i = result.closeIndex;\n }\n //normal tag\n else{\n //read until closing tag is found\n const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n i = result.i;\n tagContent = result.tagContent;\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if(tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n \n this.addChild(currentNode, childNode, jPath)\n }else{\n //selfClosing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n \n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n }\n //opening tag\n else{\n const childNode = new xmlNode( tagName);\n this.tagsNodeStack.push(currentNode);\n \n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n if(result === false){\n }else if(typeof result === \"string\"){\n childNode.tagname = result\n currentNode.addChild(childNode);\n }else{\n currentNode.addChild(childNode);\n }\n}\n\nconst replaceEntitiesValue = function(val){\n\n if(this.options.processEntities){\n for(let entityName in this.docTypeEntities){\n const entity = this.docTypeEntities[entityName];\n val = val.replace( entity.regx, entity.val);\n }\n for(let entityName in this.lastEntities){\n const entity = this.lastEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n if(this.options.htmlEntities){\n for(let entityName in this.htmlEntities){\n const entity = this.htmlEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n }\n val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) { //store previously collected data as textNode\n if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n \n textData = this.parseTextData(textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode);\n\n if (textData !== undefined && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if( allNodesExp === stopNodeExp || jPath === stopNodeExp ) return true;\n }\n return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if(closingChar[1]){\n if(xmlData[index + 1] === closingChar[1]){\n return {\n data: tagExp,\n index: index\n }\n }\n }else{\n return {\n data: tagExp,\n index: index\n }\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n if(!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n\n const rawTagName = tagName;\n if(removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n rawTagName: rawTagName,\n }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n const startIndex = i;\n // Starting at 1 since we already have an open tag\n let openTagCount = 1;\n\n for (; i < xmlData.length; i++) {\n if( xmlData[i] === \"<\"){ \n if (xmlData[i+1] === \"/\") {//close tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n if(closeTagName === tagName){\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i : closeIndex\n }\n }\n }\n i=closeIndex;\n } else if(xmlData[i+1] === '?') { \n const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 3) === '!--') { \n const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 2) === '![') { \n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i=closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, '>')\n\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n openTagCount++;\n }\n i=tagData.closeIndex;\n }\n }\n }\n }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n\nmodule.exports = OrderedObjParser;\n","const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n \n constructor(options){\n this.externalEntities = {};\n this.options = buildOptions(options);\n \n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value){\n if(value.indexOf(\"&\") !== -1){\n throw new Error(\"Entity value can't have '&'\")\n }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for ' '\")\n }else if(value === \"&\"){\n throw new Error(\"An entity with value '&' is not permitted\");\n }else{\n this.externalEntities[key] = value;\n }\n }\n}\n\nmodule.exports = XMLParser;","'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj[\":@\"]){\n assignAttributes( val, tagObj[\":@\"], newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \":@\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n \n if (propCount === 0) {\n return true;\n }\n\n if (\n propCount === 1 &&\n (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n ) {\n return true;\n }\n\n return false;\n}\nexports.prettify = prettify;\n","'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[\":@\"] = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if(key === \"__proto__\") key = \"#__proto__\";\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;","'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, _concurrency) {\n if (typeof context === 'function') {\n _concurrency = worker\n worker = context\n context = null\n }\n\n if (!(_concurrency >= 1)) {\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\n }\n\n var cache = reusify(Task)\n var queueHead = null\n var queueTail = null\n var _running = 0\n var errorHandler = null\n\n var self = {\n push: push,\n drain: noop,\n saturated: noop,\n pause: pause,\n paused: false,\n\n get concurrency () {\n return _concurrency\n },\n set concurrency (value) {\n if (!(value >= 1)) {\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\n }\n _concurrency = value\n\n if (self.paused) return\n for (; queueHead && _running < _concurrency;) {\n _running++\n release()\n }\n },\n\n running: running,\n resume: resume,\n idle: idle,\n length: length,\n getQueue: getQueue,\n unshift: unshift,\n empty: noop,\n kill: kill,\n killAndDrain: killAndDrain,\n error: error\n }\n\n return self\n\n function running () {\n return _running\n }\n\n function pause () {\n self.paused = true\n }\n\n function length () {\n var current = queueHead\n var counter = 0\n\n while (current) {\n current = current.next\n counter++\n }\n\n return counter\n }\n\n function getQueue () {\n var current = queueHead\n var tasks = []\n\n while (current) {\n tasks.push(current.value)\n current = current.next\n }\n\n return tasks\n }\n\n function resume () {\n if (!self.paused) return\n self.paused = false\n if (queueHead === null) {\n _running++\n release()\n return\n }\n for (; queueHead && _running < _concurrency;) {\n _running++\n release()\n }\n }\n\n function idle () {\n return _running === 0 && self.length() === 0\n }\n\n function push (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running >= _concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current\n queueTail = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function unshift (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running >= _concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead\n queueHead = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function release (holder) {\n if (holder) {\n cache.release(holder)\n }\n var next = queueHead\n if (next && _running <= _concurrency) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null\n }\n queueHead = next.next\n next.next = null\n worker.call(context, next.value, next.worked)\n if (queueTail === null) {\n self.empty()\n }\n } else {\n _running--\n }\n } else if (--_running === 0) {\n self.drain()\n }\n }\n\n function kill () {\n queueHead = null\n queueTail = null\n self.drain = noop\n }\n\n function killAndDrain () {\n queueHead = null\n queueTail = null\n self.drain()\n self.drain = noop\n }\n\n function error (handler) {\n errorHandler = handler\n }\n}\n\nfunction noop () {}\n\nfunction Task () {\n this.value = null\n this.callback = noop\n this.next = null\n this.release = noop\n this.context = null\n this.errorHandler = null\n\n var self = this\n\n this.worked = function worked (err, result) {\n var callback = self.callback\n var errorHandler = self.errorHandler\n var val = self.value\n self.value = null\n self.callback = noop\n if (self.errorHandler) {\n errorHandler(err, val)\n }\n callback.call(self.context, err, result)\n self.release(self)\n }\n}\n\nfunction queueAsPromised (context, worker, _concurrency) {\n if (typeof context === 'function') {\n _concurrency = worker\n worker = context\n context = null\n }\n\n function asyncWrapper (arg, cb) {\n worker.call(this, arg)\n .then(function (res) {\n cb(null, res)\n }, cb)\n }\n\n var queue = fastqueue(context, asyncWrapper, _concurrency)\n\n var pushCb = queue.push\n var unshiftCb = queue.unshift\n\n queue.push = push\n queue.unshift = unshift\n queue.drained = drained\n\n return queue\n\n function push (value) {\n var p = new Promise(function (resolve, reject) {\n pushCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function unshift (value) {\n var p = new Promise(function (resolve, reject) {\n unshiftCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function drained () {\n var p = new Promise(function (resolve) {\n process.nextTick(function () {\n if (queue.idle()) {\n resolve()\n } else {\n var previousDrain = queue.drain\n queue.drain = function () {\n if (typeof previousDrain === 'function') previousDrain()\n resolve()\n queue.drain = previousDrain\n }\n }\n })\n })\n\n return p\n }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n","/*!\n * fill-range \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === '-') value = value.slice(1);\n if (value === '0') return false;\n while (value[++index] === '0');\n return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n if (typeof start === 'string' || typeof end === 'string') {\n return true;\n }\n return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === '-' ? '-' : '';\n if (dash) input = input.slice(1);\n input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n let negative = input[0] === '-' ? '-' : '';\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = '0' + input;\n return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options, maxLen) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n let prefix = options.capture ? '' : '?:';\n let positives = '';\n let negatives = '';\n let result;\n\n if (parts.positives.length) {\n positives = parts.positives.map(v => toMaxLen(String(v), maxLen)).join('|');\n }\n\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.map(v => toMaxLen(String(v), maxLen)).join('|')})`;\n }\n\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n\n if (options.wrap) {\n return `(${prefix}${result})`;\n }\n\n return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options });\n }\n\n let start = String.fromCharCode(a);\n if (a === b) return start;\n\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n if (Array.isArray(start)) {\n let wrap = options.wrap === true;\n let prefix = options.capture ? '' : '?:';\n return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n }\n return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n};\n\nconst invalidStep = (step, options) => {\n if (options.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n let a = Number(start);\n let b = Number(end);\n\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n\n // fix negative zero\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify(start, end, options) === false;\n let format = options.transform || transform(toNumber);\n\n if (options.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n }\n\n let parts = { negatives: [], positives: [] };\n let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n if (options.toRegex === true && step > 1) {\n push(a);\n } else {\n range.push(pad(format(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return step > 1\n ? toSequence(parts, options, maxLen)\n : toRegex(range, null, { wrap: false, ...options });\n }\n\n return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n return invalidRange(start, end, options);\n }\n\n let format = options.transform || (val => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n\n if (options.toRegex && step === 1) {\n return toRange(min, max, false, options);\n }\n\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n range.push(format(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return toRegex(range, null, { wrap: false, options });\n }\n\n return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options);\n }\n\n if (typeof step === 'function') {\n return fill(start, end, 1, { transform: step });\n }\n\n if (isObject(step)) {\n return fill(start, end, 0, step);\n }\n\n let opts = { ...options };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n\n if (!isNumber(step)) {\n if (step != null && !isObject(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdirsSync = require('../mkdirs').mkdirsSync\nconst utimesMillisSync = require('../util/utimes').utimesMillisSync\nconst stat = require('../util/stat')\n\nfunction copySync (src, dest, opts) {\n if (typeof opts === 'function') {\n opts = { filter: opts }\n }\n\n opts = opts || {}\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n process.emitWarning(\n 'Using the preserveTimestamps option in 32-bit node is not recommended;\\n\\n' +\n '\\tsee https://github.com/jprichardson/node-fs-extra/issues/269',\n 'Warning', 'fs-extra-WARN0002'\n )\n }\n\n const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts)\n stat.checkParentPathsSync(src, srcStat, dest, 'copy')\n if (opts.filter && !opts.filter(src, dest)) return\n const destParent = path.dirname(dest)\n if (!fs.existsSync(destParent)) mkdirsSync(destParent)\n return getStats(destStat, src, dest, opts)\n}\n\nfunction getStats (destStat, src, dest, opts) {\n const statSync = opts.dereference ? fs.statSync : fs.lstatSync\n const srcStat = statSync(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)\n else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)\n throw new Error(`Unknown file: ${src}`)\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts) {\n if (!destStat) return copyFile(srcStat, src, dest, opts)\n return mayCopyFile(srcStat, src, dest, opts)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts) {\n if (opts.overwrite) {\n fs.unlinkSync(dest)\n return copyFile(srcStat, src, dest, opts)\n } else if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nfunction copyFile (srcStat, src, dest, opts) {\n fs.copyFileSync(src, dest)\n if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest)\n return setDestMode(dest, srcStat.mode)\n}\n\nfunction handleTimestamps (srcMode, src, dest) {\n // Make sure the file is writable before setting the timestamp\n // otherwise open fails with EPERM when invoked with 'r+'\n // (through utimes call)\n if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode)\n return setDestTimestamps(src, dest)\n}\n\nfunction fileIsNotWritable (srcMode) {\n return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode) {\n return setDestMode(dest, srcMode | 0o200)\n}\n\nfunction setDestMode (dest, srcMode) {\n return fs.chmodSync(dest, srcMode)\n}\n\nfunction setDestTimestamps (src, dest) {\n // The initial srcStat.atime cannot be trusted\n // because it is modified by the read(2) system call\n // (See https://nodejs.org/api/fs.html#fs_stat_time_values)\n const updatedSrcStat = fs.statSync(src)\n return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime)\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts) {\n if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts)\n return copyDir(src, dest, opts)\n}\n\nfunction mkDirAndCopy (srcMode, src, dest, opts) {\n fs.mkdirSync(dest)\n copyDir(src, dest, opts)\n return setDestMode(dest, srcMode)\n}\n\nfunction copyDir (src, dest, opts) {\n const dir = fs.opendirSync(src)\n\n try {\n let dirent\n\n while ((dirent = dir.readSync()) !== null) {\n copyDirItem(dirent.name, src, dest, opts)\n }\n } finally {\n dir.closeSync()\n }\n}\n\nfunction copyDirItem (item, src, dest, opts) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n if (opts.filter && !opts.filter(srcItem, destItem)) return\n const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts)\n return getStats(destStat, srcItem, destItem, opts)\n}\n\nfunction onLink (destStat, src, dest, opts) {\n let resolvedSrc = fs.readlinkSync(src)\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (!destStat) {\n return fs.symlinkSync(resolvedSrc, dest)\n } else {\n let resolvedDest\n try {\n resolvedDest = fs.readlinkSync(dest)\n } catch (err) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)\n throw err\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n // If both symlinks resolve to the same target, they are still distinct symlinks\n // that can be copied/overwritten. Only check subdirectory constraints when\n // the resolved paths are different.\n if (resolvedSrc !== resolvedDest) {\n if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // prevent copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n }\n return copyLink(resolvedSrc, dest)\n }\n}\n\nfunction copyLink (resolvedSrc, dest) {\n fs.unlinkSync(dest)\n return fs.symlinkSync(resolvedSrc, dest)\n}\n\nmodule.exports = copySync\n","'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst { mkdirs } = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst { utimesMillis } = require('../util/utimes')\nconst stat = require('../util/stat')\nconst { asyncIteratorConcurrentProcess } = require('../util/async')\n\nasync function copy (src, dest, opts = {}) {\n if (typeof opts === 'function') {\n opts = { filter: opts }\n }\n\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n process.emitWarning(\n 'Using the preserveTimestamps option in 32-bit node is not recommended;\\n\\n' +\n '\\tsee https://github.com/jprichardson/node-fs-extra/issues/269',\n 'Warning', 'fs-extra-WARN0001'\n )\n }\n\n const { srcStat, destStat } = await stat.checkPaths(src, dest, 'copy', opts)\n\n await stat.checkParentPaths(src, srcStat, dest, 'copy')\n\n const include = await runFilter(src, dest, opts)\n\n if (!include) return\n\n // check if the parent of dest exists, and create it if it doesn't exist\n const destParent = path.dirname(dest)\n const dirExists = await pathExists(destParent)\n if (!dirExists) {\n await mkdirs(destParent)\n }\n\n await getStatsAndPerformCopy(destStat, src, dest, opts)\n}\n\nasync function runFilter (src, dest, opts) {\n if (!opts.filter) return true\n return opts.filter(src, dest)\n}\n\nasync function getStatsAndPerformCopy (destStat, src, dest, opts) {\n const statFn = opts.dereference ? fs.stat : fs.lstat\n const srcStat = await statFn(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n\n if (\n srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()\n ) return onFile(srcStat, destStat, src, dest, opts)\n\n if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)\n if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)\n throw new Error(`Unknown file: ${src}`)\n}\n\nasync function onFile (srcStat, destStat, src, dest, opts) {\n if (!destStat) return copyFile(srcStat, src, dest, opts)\n\n if (opts.overwrite) {\n await fs.unlink(dest)\n return copyFile(srcStat, src, dest, opts)\n }\n if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nasync function copyFile (srcStat, src, dest, opts) {\n await fs.copyFile(src, dest)\n if (opts.preserveTimestamps) {\n // Make sure the file is writable before setting the timestamp\n // otherwise open fails with EPERM when invoked with 'r+'\n // (through utimes call)\n if (fileIsNotWritable(srcStat.mode)) {\n await makeFileWritable(dest, srcStat.mode)\n }\n\n // Set timestamps and mode correspondingly\n\n // Note that The initial srcStat.atime cannot be trusted\n // because it is modified by the read(2) system call\n // (See https://nodejs.org/api/fs.html#fs_stat_time_values)\n const updatedSrcStat = await fs.stat(src)\n await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime)\n }\n\n return fs.chmod(dest, srcStat.mode)\n}\n\nfunction fileIsNotWritable (srcMode) {\n return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode) {\n return fs.chmod(dest, srcMode | 0o200)\n}\n\nasync function onDir (srcStat, destStat, src, dest, opts) {\n // the dest directory might not exist, create it\n if (!destStat) {\n await fs.mkdir(dest)\n }\n\n // iterate through the files in the current directory to copy everything\n await asyncIteratorConcurrentProcess(await fs.opendir(src), async (item) => {\n const srcItem = path.join(src, item.name)\n const destItem = path.join(dest, item.name)\n\n const include = await runFilter(srcItem, destItem, opts)\n // only copy the item if it matches the filter function\n if (include) {\n const { destStat } = await stat.checkPaths(srcItem, destItem, 'copy', opts)\n // If the item is a copyable file, `getStatsAndPerformCopy` will copy it\n // If the item is a directory, `getStatsAndPerformCopy` will call `onDir` recursively\n await getStatsAndPerformCopy(destStat, srcItem, destItem, opts)\n }\n })\n\n if (!destStat) {\n await fs.chmod(dest, srcStat.mode)\n }\n}\n\nasync function onLink (destStat, src, dest, opts) {\n let resolvedSrc = await fs.readlink(src)\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n if (!destStat) {\n return fs.symlink(resolvedSrc, dest)\n }\n\n let resolvedDest = null\n try {\n resolvedDest = await fs.readlink(dest)\n } catch (e) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (e.code === 'EINVAL' || e.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest)\n throw e\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n // If both symlinks resolve to the same target, they are still distinct symlinks\n // that can be copied/overwritten. Only check subdirectory constraints when\n // the resolved paths are different.\n if (resolvedSrc !== resolvedDest) {\n if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // do not copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n }\n\n // copy the link\n await fs.unlink(dest)\n return fs.symlink(resolvedSrc, dest)\n}\n\nmodule.exports = copy\n","'use strict'\n\nconst u = require('universalify').fromPromise\nmodule.exports = {\n copy: u(require('./copy')),\n copySync: require('./copy-sync')\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst remove = require('../remove')\n\nconst emptyDir = u(async function emptyDir (dir) {\n let items\n try {\n items = await fs.readdir(dir)\n } catch {\n return mkdir.mkdirs(dir)\n }\n\n return Promise.all(items.map(item => remove.remove(path.join(dir, item))))\n})\n\nfunction emptyDirSync (dir) {\n let items\n try {\n items = fs.readdirSync(dir)\n } catch {\n return mkdir.mkdirsSync(dir)\n }\n\n items.forEach(item => {\n item = path.join(dir, item)\n remove.removeSync(item)\n })\n}\n\nmodule.exports = {\n emptyDirSync,\n emptydirSync: emptyDirSync,\n emptyDir,\n emptydir: emptyDir\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\nconst mkdir = require('../mkdirs')\n\nasync function createFile (file) {\n let stats\n try {\n stats = await fs.stat(file)\n } catch { }\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n\n let dirStats = null\n try {\n dirStats = await fs.stat(dir)\n } catch (err) {\n // if the directory doesn't exist, make it\n if (err.code === 'ENOENT') {\n await mkdir.mkdirs(dir)\n await fs.writeFile(file, '')\n return\n } else {\n throw err\n }\n }\n\n if (dirStats.isDirectory()) {\n await fs.writeFile(file, '')\n } else {\n // parent is not a directory\n // This is just to cause an internal ENOTDIR error to be thrown\n await fs.readdir(dir)\n }\n}\n\nfunction createFileSync (file) {\n let stats\n try {\n stats = fs.statSync(file)\n } catch { }\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n try {\n if (!fs.statSync(dir).isDirectory()) {\n // parent is not a directory\n // This is just to cause an internal ENOTDIR error to be thrown\n fs.readdirSync(dir)\n }\n } catch (err) {\n // If the stat call above failed because the directory doesn't exist, create it\n if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir)\n else throw err\n }\n\n fs.writeFileSync(file, '')\n}\n\nmodule.exports = {\n createFile: u(createFile),\n createFileSync\n}\n","'use strict'\n\nconst { createFile, createFileSync } = require('./file')\nconst { createLink, createLinkSync } = require('./link')\nconst { createSymlink, createSymlinkSync } = require('./symlink')\n\nmodule.exports = {\n // file\n createFile,\n createFileSync,\n ensureFile: createFile,\n ensureFileSync: createFileSync,\n // link\n createLink,\n createLinkSync,\n ensureLink: createLink,\n ensureLinkSync: createLinkSync,\n // symlink\n createSymlink,\n createSymlinkSync,\n ensureSymlink: createSymlink,\n ensureSymlinkSync: createSymlinkSync\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\nconst mkdir = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst { areIdentical } = require('../util/stat')\n\nasync function createLink (srcpath, dstpath) {\n let dstStat\n try {\n dstStat = await fs.lstat(dstpath)\n } catch {\n // ignore error\n }\n\n let srcStat\n try {\n srcStat = await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n if (dstStat && areIdentical(srcStat, dstStat)) return\n\n const dir = path.dirname(dstpath)\n\n const dirExists = await pathExists(dir)\n\n if (!dirExists) {\n await mkdir.mkdirs(dir)\n }\n\n await fs.link(srcpath, dstpath)\n}\n\nfunction createLinkSync (srcpath, dstpath) {\n let dstStat\n try {\n dstStat = fs.lstatSync(dstpath)\n } catch {}\n\n try {\n const srcStat = fs.lstatSync(srcpath)\n if (dstStat && areIdentical(srcStat, dstStat)) return\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n const dir = path.dirname(dstpath)\n const dirExists = fs.existsSync(dir)\n if (dirExists) return fs.linkSync(srcpath, dstpath)\n mkdir.mkdirsSync(dir)\n\n return fs.linkSync(srcpath, dstpath)\n}\n\nmodule.exports = {\n createLink: u(createLink),\n createLinkSync\n}\n","'use strict'\n\nconst path = require('path')\nconst fs = require('../fs')\nconst { pathExists } = require('../path-exists')\n\nconst u = require('universalify').fromPromise\n\n/**\n * Function that returns two types of paths, one relative to symlink, and one\n * relative to the current working directory. Checks if path is absolute or\n * relative. If the path is relative, this function checks if the path is\n * relative to symlink or relative to current working directory. This is an\n * initiative to find a smarter `srcpath` to supply when building symlinks.\n * This allows you to determine which path to use out of one of three possible\n * types of source paths. The first is an absolute path. This is detected by\n * `path.isAbsolute()`. When an absolute path is provided, it is checked to\n * see if it exists. If it does it's used, if not an error is returned\n * (callback)/ thrown (sync). The other two options for `srcpath` are a\n * relative url. By default Node's `fs.symlink` works by creating a symlink\n * using `dstpath` and expects the `srcpath` to be relative to the newly\n * created symlink. If you provide a `srcpath` that does not exist on the file\n * system it results in a broken symlink. To minimize this, the function\n * checks to see if the 'relative to symlink' source file exists, and if it\n * does it will use it. If it does not, it checks if there's a file that\n * exists that is relative to the current working directory, if does its used.\n * This preserves the expectations of the original fs.symlink spec and adds\n * the ability to pass in `relative to current working direcotry` paths.\n */\n\nasync function symlinkPaths (srcpath, dstpath) {\n if (path.isAbsolute(srcpath)) {\n try {\n await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n throw err\n }\n\n return {\n toCwd: srcpath,\n toDst: srcpath\n }\n }\n\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n\n const exists = await pathExists(relativeToDst)\n if (exists) {\n return {\n toCwd: relativeToDst,\n toDst: srcpath\n }\n }\n\n try {\n await fs.lstat(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n throw err\n }\n\n return {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n }\n}\n\nfunction symlinkPathsSync (srcpath, dstpath) {\n if (path.isAbsolute(srcpath)) {\n const exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('absolute srcpath does not exist')\n return {\n toCwd: srcpath,\n toDst: srcpath\n }\n }\n\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n const exists = fs.existsSync(relativeToDst)\n if (exists) {\n return {\n toCwd: relativeToDst,\n toDst: srcpath\n }\n }\n\n const srcExists = fs.existsSync(srcpath)\n if (!srcExists) throw new Error('relative srcpath does not exist')\n return {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n }\n}\n\nmodule.exports = {\n symlinkPaths: u(symlinkPaths),\n symlinkPathsSync\n}\n","'use strict'\n\nconst fs = require('../fs')\nconst u = require('universalify').fromPromise\n\nasync function symlinkType (srcpath, type) {\n if (type) return type\n\n let stats\n try {\n stats = await fs.lstat(srcpath)\n } catch {\n return 'file'\n }\n\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nfunction symlinkTypeSync (srcpath, type) {\n if (type) return type\n\n let stats\n try {\n stats = fs.lstatSync(srcpath)\n } catch {\n return 'file'\n }\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nmodule.exports = {\n symlinkType: u(symlinkType),\n symlinkTypeSync\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst path = require('path')\nconst fs = require('../fs')\n\nconst { mkdirs, mkdirsSync } = require('../mkdirs')\n\nconst { symlinkPaths, symlinkPathsSync } = require('./symlink-paths')\nconst { symlinkType, symlinkTypeSync } = require('./symlink-type')\n\nconst { pathExists } = require('../path-exists')\n\nconst { areIdentical } = require('../util/stat')\n\nasync function createSymlink (srcpath, dstpath, type) {\n let stats\n try {\n stats = await fs.lstat(dstpath)\n } catch { }\n\n if (stats && stats.isSymbolicLink()) {\n // When srcpath is relative, resolve it relative to dstpath's directory\n // (standard symlink behavior) or fall back to cwd if that doesn't exist\n let srcStat\n if (path.isAbsolute(srcpath)) {\n srcStat = await fs.stat(srcpath)\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n try {\n srcStat = await fs.stat(relativeToDst)\n } catch {\n srcStat = await fs.stat(srcpath)\n }\n }\n\n const dstStat = await fs.stat(dstpath)\n if (areIdentical(srcStat, dstStat)) return\n }\n\n const relative = await symlinkPaths(srcpath, dstpath)\n srcpath = relative.toDst\n const toType = await symlinkType(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n\n if (!(await pathExists(dir))) {\n await mkdirs(dir)\n }\n\n return fs.symlink(srcpath, dstpath, toType)\n}\n\nfunction createSymlinkSync (srcpath, dstpath, type) {\n let stats\n try {\n stats = fs.lstatSync(dstpath)\n } catch { }\n if (stats && stats.isSymbolicLink()) {\n // When srcpath is relative, resolve it relative to dstpath's directory\n // (standard symlink behavior) or fall back to cwd if that doesn't exist\n let srcStat\n if (path.isAbsolute(srcpath)) {\n srcStat = fs.statSync(srcpath)\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n try {\n srcStat = fs.statSync(relativeToDst)\n } catch {\n srcStat = fs.statSync(srcpath)\n }\n }\n\n const dstStat = fs.statSync(dstpath)\n if (areIdentical(srcStat, dstStat)) return\n }\n\n const relative = symlinkPathsSync(srcpath, dstpath)\n srcpath = relative.toDst\n type = symlinkTypeSync(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n const exists = fs.existsSync(dir)\n if (exists) return fs.symlinkSync(srcpath, dstpath, type)\n mkdirsSync(dir)\n return fs.symlinkSync(srcpath, dstpath, type)\n}\n\nmodule.exports = {\n createSymlink: u(createSymlink),\n createSymlinkSync\n}\n","'use strict'\n// This is adapted from https://github.com/normalize/mz\n// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\n\nconst api = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'close',\n 'copyFile',\n 'cp',\n 'fchmod',\n 'fchown',\n 'fdatasync',\n 'fstat',\n 'fsync',\n 'ftruncate',\n 'futimes',\n 'glob',\n 'lchmod',\n 'lchown',\n 'lutimes',\n 'link',\n 'lstat',\n 'mkdir',\n 'mkdtemp',\n 'open',\n 'opendir',\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'rename',\n 'rm',\n 'rmdir',\n 'stat',\n 'statfs',\n 'symlink',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile'\n].filter(key => {\n // Some commands are not available on some systems. Ex:\n // fs.cp was added in Node.js v16.7.0\n // fs.statfs was added in Node v19.6.0, v18.15.0\n // fs.glob was added in Node.js v22.0.0\n // fs.lchown is not available on at least some Linux\n return typeof fs[key] === 'function'\n})\n\n// Export cloned fs:\nObject.assign(exports, fs)\n\n// Universalify async methods:\napi.forEach(method => {\n exports[method] = u(fs[method])\n})\n\n// We differ from mz/fs in that we still ship the old, broken, fs.exists()\n// since we are a drop-in replacement for the native module\nexports.exists = function (filename, callback) {\n if (typeof callback === 'function') {\n return fs.exists(filename, callback)\n }\n return new Promise(resolve => {\n return fs.exists(filename, resolve)\n })\n}\n\n// fs.read(), fs.write(), fs.readv(), & fs.writev() need special treatment due to multiple callback args\n\nexports.read = function (fd, buffer, offset, length, position, callback) {\n if (typeof callback === 'function') {\n return fs.read(fd, buffer, offset, length, position, callback)\n }\n return new Promise((resolve, reject) => {\n fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffer })\n })\n })\n}\n\n// Function signature can be\n// fs.write(fd, buffer[, offset[, length[, position]]], callback)\n// OR\n// fs.write(fd, string[, position[, encoding]], callback)\n// We need to handle both cases, so we use ...args\nexports.write = function (fd, buffer, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.write(fd, buffer, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffer })\n })\n })\n}\n\n// Function signature is\n// s.readv(fd, buffers[, position], callback)\n// We need to handle the optional arg, so we use ...args\nexports.readv = function (fd, buffers, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.readv(fd, buffers, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.readv(fd, buffers, ...args, (err, bytesRead, buffers) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffers })\n })\n })\n}\n\n// Function signature is\n// s.writev(fd, buffers[, position], callback)\n// We need to handle the optional arg, so we use ...args\nexports.writev = function (fd, buffers, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.writev(fd, buffers, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffers })\n })\n })\n}\n\n// fs.realpath.native sometimes not available if fs is monkey-patched\nif (typeof fs.realpath.native === 'function') {\n exports.realpath.native = u(fs.realpath.native)\n} else {\n process.emitWarning(\n 'fs.realpath.native is not a function. Is fs being monkey-patched?',\n 'Warning', 'fs-extra-WARN0003'\n )\n}\n","'use strict'\n\nmodule.exports = {\n // Export promiseified graceful-fs:\n ...require('./fs'),\n // Export extra methods:\n ...require('./copy'),\n ...require('./empty'),\n ...require('./ensure'),\n ...require('./json'),\n ...require('./mkdirs'),\n ...require('./move'),\n ...require('./output-file'),\n ...require('./path-exists'),\n ...require('./remove')\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst jsonFile = require('./jsonfile')\n\njsonFile.outputJson = u(require('./output-json'))\njsonFile.outputJsonSync = require('./output-json-sync')\n// aliases\njsonFile.outputJSON = jsonFile.outputJson\njsonFile.outputJSONSync = jsonFile.outputJsonSync\njsonFile.writeJSON = jsonFile.writeJson\njsonFile.writeJSONSync = jsonFile.writeJsonSync\njsonFile.readJSON = jsonFile.readJson\njsonFile.readJSONSync = jsonFile.readJsonSync\n\nmodule.exports = jsonFile\n","'use strict'\n\nconst jsonFile = require('jsonfile')\n\nmodule.exports = {\n // jsonfile exports\n readJson: jsonFile.readFile,\n readJsonSync: jsonFile.readFileSync,\n writeJson: jsonFile.writeFile,\n writeJsonSync: jsonFile.writeFileSync\n}\n","'use strict'\n\nconst { stringify } = require('jsonfile/utils')\nconst { outputFileSync } = require('../output-file')\n\nfunction outputJsonSync (file, data, options) {\n const str = stringify(data, options)\n\n outputFileSync(file, str, options)\n}\n\nmodule.exports = outputJsonSync\n","'use strict'\n\nconst { stringify } = require('jsonfile/utils')\nconst { outputFile } = require('../output-file')\n\nasync function outputJson (file, data, options = {}) {\n const str = stringify(data, options)\n\n await outputFile(file, str, options)\n}\n\nmodule.exports = outputJson\n","'use strict'\nconst u = require('universalify').fromPromise\nconst { makeDir: _makeDir, makeDirSync } = require('./make-dir')\nconst makeDir = u(_makeDir)\n\nmodule.exports = {\n mkdirs: makeDir,\n mkdirsSync: makeDirSync,\n // alias\n mkdirp: makeDir,\n mkdirpSync: makeDirSync,\n ensureDir: makeDir,\n ensureDirSync: makeDirSync\n}\n","'use strict'\nconst fs = require('../fs')\nconst { checkPath } = require('./utils')\n\nconst getMode = options => {\n const defaults = { mode: 0o777 }\n if (typeof options === 'number') return options\n return ({ ...defaults, ...options }).mode\n}\n\nmodule.exports.makeDir = async (dir, options) => {\n checkPath(dir)\n\n return fs.mkdir(dir, {\n mode: getMode(options),\n recursive: true\n })\n}\n\nmodule.exports.makeDirSync = (dir, options) => {\n checkPath(dir)\n\n return fs.mkdirSync(dir, {\n mode: getMode(options),\n recursive: true\n })\n}\n","// Adapted from https://github.com/sindresorhus/make-dir\n// Copyright (c) Sindre Sorhus (sindresorhus.com)\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict'\nconst path = require('path')\n\n// https://github.com/nodejs/node/issues/8987\n// https://github.com/libuv/libuv/pull/1088\nmodule.exports.checkPath = function checkPath (pth) {\n if (process.platform === 'win32') {\n const pathHasInvalidWinCharacters = /[<>:\"|?*]/.test(pth.replace(path.parse(pth).root, ''))\n\n if (pathHasInvalidWinCharacters) {\n const error = new Error(`Path contains invalid characters: ${pth}`)\n error.code = 'EINVAL'\n throw error\n }\n }\n}\n","'use strict'\n\nconst u = require('universalify').fromPromise\nmodule.exports = {\n move: u(require('./move')),\n moveSync: require('./move-sync')\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copySync = require('../copy').copySync\nconst removeSync = require('../remove').removeSync\nconst mkdirpSync = require('../mkdirs').mkdirpSync\nconst stat = require('../util/stat')\n\nfunction moveSync (src, dest, opts) {\n opts = opts || {}\n const overwrite = opts.overwrite || opts.clobber || false\n\n const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, 'move', opts)\n stat.checkParentPathsSync(src, srcStat, dest, 'move')\n if (!isParentRoot(dest)) mkdirpSync(path.dirname(dest))\n return doRename(src, dest, overwrite, isChangingCase)\n}\n\nfunction isParentRoot (dest) {\n const parent = path.dirname(dest)\n const parsedPath = path.parse(parent)\n return parsedPath.root === parent\n}\n\nfunction doRename (src, dest, overwrite, isChangingCase) {\n if (isChangingCase) return rename(src, dest, overwrite)\n if (overwrite) {\n removeSync(dest)\n return rename(src, dest, overwrite)\n }\n if (fs.existsSync(dest)) throw new Error('dest already exists.')\n return rename(src, dest, overwrite)\n}\n\nfunction rename (src, dest, overwrite) {\n try {\n fs.renameSync(src, dest)\n } catch (err) {\n if (err.code !== 'EXDEV') throw err\n return moveAcrossDevice(src, dest, overwrite)\n }\n}\n\nfunction moveAcrossDevice (src, dest, overwrite) {\n const opts = {\n overwrite,\n errorOnExist: true,\n preserveTimestamps: true\n }\n copySync(src, dest, opts)\n return removeSync(src)\n}\n\nmodule.exports = moveSync\n","'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst { copy } = require('../copy')\nconst { remove } = require('../remove')\nconst { mkdirp } = require('../mkdirs')\nconst { pathExists } = require('../path-exists')\nconst stat = require('../util/stat')\n\nasync function move (src, dest, opts = {}) {\n const overwrite = opts.overwrite || opts.clobber || false\n\n const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, 'move', opts)\n\n await stat.checkParentPaths(src, srcStat, dest, 'move')\n\n // If the parent of dest is not root, make sure it exists before proceeding\n const destParent = path.dirname(dest)\n const parsedParentPath = path.parse(destParent)\n if (parsedParentPath.root !== destParent) {\n await mkdirp(destParent)\n }\n\n return doRename(src, dest, overwrite, isChangingCase)\n}\n\nasync function doRename (src, dest, overwrite, isChangingCase) {\n if (!isChangingCase) {\n if (overwrite) {\n await remove(dest)\n } else if (await pathExists(dest)) {\n throw new Error('dest already exists.')\n }\n }\n\n try {\n // Try w/ rename first, and try copy + remove if EXDEV\n await fs.rename(src, dest)\n } catch (err) {\n if (err.code !== 'EXDEV') {\n throw err\n }\n await moveAcrossDevice(src, dest, overwrite)\n }\n}\n\nasync function moveAcrossDevice (src, dest, overwrite) {\n const opts = {\n overwrite,\n errorOnExist: true,\n preserveTimestamps: true\n }\n\n await copy(src, dest, opts)\n return remove(src)\n}\n\nmodule.exports = move\n","'use strict'\n\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nasync function outputFile (file, data, encoding = 'utf-8') {\n const dir = path.dirname(file)\n\n if (!(await pathExists(dir))) {\n await mkdir.mkdirs(dir)\n }\n\n return fs.writeFile(file, data, encoding)\n}\n\nfunction outputFileSync (file, ...args) {\n const dir = path.dirname(file)\n if (!fs.existsSync(dir)) {\n mkdir.mkdirsSync(dir)\n }\n\n fs.writeFileSync(file, ...args)\n}\n\nmodule.exports = {\n outputFile: u(outputFile),\n outputFileSync\n}\n","'use strict'\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\n\nfunction pathExists (path) {\n return fs.access(path).then(() => true).catch(() => false)\n}\n\nmodule.exports = {\n pathExists: u(pathExists),\n pathExistsSync: fs.existsSync\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst u = require('universalify').fromCallback\n\nfunction remove (path, callback) {\n fs.rm(path, { recursive: true, force: true }, callback)\n}\n\nfunction removeSync (path) {\n fs.rmSync(path, { recursive: true, force: true })\n}\n\nmodule.exports = {\n remove: u(remove),\n removeSync\n}\n","'use strict'\n\n// https://github.com/jprichardson/node-fs-extra/issues/1056\n// Performing parallel operations on each item of an async iterator is\n// surprisingly hard; you need to have handlers in place to avoid getting an\n// UnhandledPromiseRejectionWarning.\n// NOTE: This function does not presently handle return values, only errors\nasync function asyncIteratorConcurrentProcess (iterator, fn) {\n const promises = []\n for await (const item of iterator) {\n promises.push(\n fn(item).then(\n () => null,\n (err) => err ?? new Error('unknown error')\n )\n )\n }\n await Promise.all(\n promises.map((promise) =>\n promise.then((possibleErr) => {\n if (possibleErr !== null) throw possibleErr\n })\n )\n )\n}\n\nmodule.exports = {\n asyncIteratorConcurrentProcess\n}\n","'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst u = require('universalify').fromPromise\n\nfunction getStats (src, dest, opts) {\n const statFunc = opts.dereference\n ? (file) => fs.stat(file, { bigint: true })\n : (file) => fs.lstat(file, { bigint: true })\n return Promise.all([\n statFunc(src),\n statFunc(dest).catch(err => {\n if (err.code === 'ENOENT') return null\n throw err\n })\n ]).then(([srcStat, destStat]) => ({ srcStat, destStat }))\n}\n\nfunction getStatsSync (src, dest, opts) {\n let destStat\n const statFunc = opts.dereference\n ? (file) => fs.statSync(file, { bigint: true })\n : (file) => fs.lstatSync(file, { bigint: true })\n const srcStat = statFunc(src)\n try {\n destStat = statFunc(dest)\n } catch (err) {\n if (err.code === 'ENOENT') return { srcStat, destStat: null }\n throw err\n }\n return { srcStat, destStat }\n}\n\nasync function checkPaths (src, dest, funcName, opts) {\n const { srcStat, destStat } = await getStats(src, dest, opts)\n if (destStat) {\n if (areIdentical(srcStat, destStat)) {\n const srcBaseName = path.basename(src)\n const destBaseName = path.basename(dest)\n if (funcName === 'move' &&\n srcBaseName !== destBaseName &&\n srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {\n return { srcStat, destStat, isChangingCase: true }\n }\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n if (!srcStat.isDirectory() && destStat.isDirectory()) {\n throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)\n }\n }\n\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n\n return { srcStat, destStat }\n}\n\nfunction checkPathsSync (src, dest, funcName, opts) {\n const { srcStat, destStat } = getStatsSync(src, dest, opts)\n\n if (destStat) {\n if (areIdentical(srcStat, destStat)) {\n const srcBaseName = path.basename(src)\n const destBaseName = path.basename(dest)\n if (funcName === 'move' &&\n srcBaseName !== destBaseName &&\n srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {\n return { srcStat, destStat, isChangingCase: true }\n }\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n if (!srcStat.isDirectory() && destStat.isDirectory()) {\n throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)\n }\n }\n\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n return { srcStat, destStat }\n}\n\n// recursively check if dest parent is a subdirectory of src.\n// It works for all file types including symlinks since it\n// checks the src and dest inodes. It starts from the deepest\n// parent and stops once it reaches the src parent or the root path.\nasync function checkParentPaths (src, srcStat, dest, funcName) {\n const srcParent = path.resolve(path.dirname(src))\n const destParent = path.resolve(path.dirname(dest))\n if (destParent === srcParent || destParent === path.parse(destParent).root) return\n\n let destStat\n try {\n destStat = await fs.stat(destParent, { bigint: true })\n } catch (err) {\n if (err.code === 'ENOENT') return\n throw err\n }\n\n if (areIdentical(srcStat, destStat)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n\n return checkParentPaths(src, srcStat, destParent, funcName)\n}\n\nfunction checkParentPathsSync (src, srcStat, dest, funcName) {\n const srcParent = path.resolve(path.dirname(src))\n const destParent = path.resolve(path.dirname(dest))\n if (destParent === srcParent || destParent === path.parse(destParent).root) return\n let destStat\n try {\n destStat = fs.statSync(destParent, { bigint: true })\n } catch (err) {\n if (err.code === 'ENOENT') return\n throw err\n }\n if (areIdentical(srcStat, destStat)) {\n throw new Error(errMsg(src, dest, funcName))\n }\n return checkParentPathsSync(src, srcStat, destParent, funcName)\n}\n\nfunction areIdentical (srcStat, destStat) {\n // stat.dev can be 0n on windows when node version >= 22.x.x\n return destStat.ino !== undefined && destStat.dev !== undefined && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev\n}\n\n// return true if dest is a subdir of src, otherwise false.\n// It only checks the path strings.\nfunction isSrcSubdir (src, dest) {\n const srcArr = path.resolve(src).split(path.sep).filter(i => i)\n const destArr = path.resolve(dest).split(path.sep).filter(i => i)\n return srcArr.every((cur, i) => destArr[i] === cur)\n}\n\nfunction errMsg (src, dest, funcName) {\n return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`\n}\n\nmodule.exports = {\n // checkPaths\n checkPaths: u(checkPaths),\n checkPathsSync,\n // checkParent\n checkParentPaths: u(checkParentPaths),\n checkParentPathsSync,\n // Misc\n isSrcSubdir,\n areIdentical\n}\n","'use strict'\n\nconst fs = require('../fs')\nconst u = require('universalify').fromPromise\n\nasync function utimesMillis (path, atime, mtime) {\n // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)\n const fd = await fs.open(path, 'r+')\n\n let closeErr = null\n\n try {\n await fs.futimes(fd, atime, mtime)\n } finally {\n try {\n await fs.close(fd)\n } catch (e) {\n closeErr = e\n }\n }\n\n if (closeErr) {\n throw closeErr\n }\n}\n\nfunction utimesMillisSync (path, atime, mtime) {\n const fd = fs.openSync(path, 'r+')\n fs.futimesSync(fd, atime, mtime)\n return fs.closeSync(fd)\n}\n\nmodule.exports = {\n utimesMillis: u(utimesMillis),\n utimesMillisSync\n}\n","'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n var options = Object.assign({ flipBackslashes: true }, opts);\n\n // flip windows path separators\n if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n str = str.replace(backslash, slash);\n }\n\n // special case for strings ending in enclosure containing path separator\n if (enclosure.test(str)) {\n str += slash;\n }\n\n // preserves full path in case of trailing path separator\n str += 'a';\n\n // remove path parts that are globby\n do {\n str = pathPosixDirname(str);\n } while (isGlob(str) || globby.test(str));\n\n // remove escape chars and return result\n return str.replace(escaped, '$1');\n};\n","'use strict'\n\nmodule.exports = clone\n\nvar getPrototypeOf = Object.getPrototypeOf || function (obj) {\n return obj.__proto__\n}\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: getPrototypeOf(obj) }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n","var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar clone = require('./clone.js')\n\nvar util = require('util')\n\n/* istanbul ignore next - node 0.x polyfill */\nvar gracefulQueue\nvar previousSymbol\n\n/* istanbul ignore else - node 0.x polyfill */\nif (typeof Symbol === 'function' && typeof Symbol.for === 'function') {\n gracefulQueue = Symbol.for('graceful-fs.queue')\n // This is used in testing by future versions\n previousSymbol = Symbol.for('graceful-fs.previous')\n} else {\n gracefulQueue = '___graceful-fs.queue'\n previousSymbol = '___graceful-fs.previous'\n}\n\nfunction noop () {}\n\nfunction publishQueue(context, queue) {\n Object.defineProperty(context, gracefulQueue, {\n get: function() {\n return queue\n }\n })\n}\n\nvar debug = noop\nif (util.debuglog)\n debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n debug = function() {\n var m = util.format.apply(util, arguments)\n m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n console.error(m)\n }\n\n// Once time initialization\nif (!fs[gracefulQueue]) {\n // This queue can be shared by multiple loaded instances\n var queue = global[gracefulQueue] || []\n publishQueue(fs, queue)\n\n // Patch fs.close/closeSync to shared queue version, because we need\n // to retry() whenever a close happens *anywhere* in the program.\n // This is essential when multiple graceful-fs instances are\n // in play at the same time.\n fs.close = (function (fs$close) {\n function close (fd, cb) {\n return fs$close.call(fs, fd, function (err) {\n // This function uses the graceful-fs shared queue\n if (!err) {\n resetQueue()\n }\n\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n })\n }\n\n Object.defineProperty(close, previousSymbol, {\n value: fs$close\n })\n return close\n })(fs.close)\n\n fs.closeSync = (function (fs$closeSync) {\n function closeSync (fd) {\n // This function uses the graceful-fs shared queue\n fs$closeSync.apply(fs, arguments)\n resetQueue()\n }\n\n Object.defineProperty(closeSync, previousSymbol, {\n value: fs$closeSync\n })\n return closeSync\n })(fs.closeSync)\n\n if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n process.on('exit', function() {\n debug(fs[gracefulQueue])\n require('assert').equal(fs[gracefulQueue].length, 0)\n })\n }\n}\n\nif (!global[gracefulQueue]) {\n publishQueue(global, fs[gracefulQueue]);\n}\n\nmodule.exports = patch(clone(fs))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {\n module.exports = patch(fs)\n fs.__patched = true;\n}\n\nfunction patch (fs) {\n // Everything that references the open() function needs to be in here\n polyfills(fs)\n fs.gracefulify = patch\n\n fs.createReadStream = createReadStream\n fs.createWriteStream = createWriteStream\n var fs$readFile = fs.readFile\n fs.readFile = readFile\n function readFile (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readFile(path, options, cb)\n\n function go$readFile (path, options, cb, startTime) {\n return fs$readFile(path, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$writeFile = fs.writeFile\n fs.writeFile = writeFile\n function writeFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$writeFile(path, data, options, cb)\n\n function go$writeFile (path, data, options, cb, startTime) {\n return fs$writeFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$appendFile = fs.appendFile\n if (fs$appendFile)\n fs.appendFile = appendFile\n function appendFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$appendFile(path, data, options, cb)\n\n function go$appendFile (path, data, options, cb, startTime) {\n return fs$appendFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$copyFile = fs.copyFile\n if (fs$copyFile)\n fs.copyFile = copyFile\n function copyFile (src, dest, flags, cb) {\n if (typeof flags === 'function') {\n cb = flags\n flags = 0\n }\n return go$copyFile(src, dest, flags, cb)\n\n function go$copyFile (src, dest, flags, cb, startTime) {\n return fs$copyFile(src, dest, flags, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$readdir = fs.readdir\n fs.readdir = readdir\n var noReaddirOptionVersions = /^v[0-5]\\./\n function readdir (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n var go$readdir = noReaddirOptionVersions.test(process.version)\n ? function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, fs$readdirCallback(\n path, options, cb, startTime\n ))\n }\n : function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, options, fs$readdirCallback(\n path, options, cb, startTime\n ))\n }\n\n return go$readdir(path, options, cb)\n\n function fs$readdirCallback (path, options, cb, startTime) {\n return function (err, files) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([\n go$readdir,\n [path, options, cb],\n err,\n startTime || Date.now(),\n Date.now()\n ])\n else {\n if (files && files.sort)\n files.sort()\n\n if (typeof cb === 'function')\n cb.call(this, err, files)\n }\n }\n }\n }\n\n if (process.version.substr(0, 4) === 'v0.8') {\n var legStreams = legacy(fs)\n ReadStream = legStreams.ReadStream\n WriteStream = legStreams.WriteStream\n }\n\n var fs$ReadStream = fs.ReadStream\n if (fs$ReadStream) {\n ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n ReadStream.prototype.open = ReadStream$open\n }\n\n var fs$WriteStream = fs.WriteStream\n if (fs$WriteStream) {\n WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n WriteStream.prototype.open = WriteStream$open\n }\n\n Object.defineProperty(fs, 'ReadStream', {\n get: function () {\n return ReadStream\n },\n set: function (val) {\n ReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n Object.defineProperty(fs, 'WriteStream', {\n get: function () {\n return WriteStream\n },\n set: function (val) {\n WriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n // legacy names\n var FileReadStream = ReadStream\n Object.defineProperty(fs, 'FileReadStream', {\n get: function () {\n return FileReadStream\n },\n set: function (val) {\n FileReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n var FileWriteStream = WriteStream\n Object.defineProperty(fs, 'FileWriteStream', {\n get: function () {\n return FileWriteStream\n },\n set: function (val) {\n FileWriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n function ReadStream (path, options) {\n if (this instanceof ReadStream)\n return fs$ReadStream.apply(this, arguments), this\n else\n return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n }\n\n function ReadStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n if (that.autoClose)\n that.destroy()\n\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n that.read()\n }\n })\n }\n\n function WriteStream (path, options) {\n if (this instanceof WriteStream)\n return fs$WriteStream.apply(this, arguments), this\n else\n return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n }\n\n function WriteStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n that.destroy()\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n }\n })\n }\n\n function createReadStream (path, options) {\n return new fs.ReadStream(path, options)\n }\n\n function createWriteStream (path, options) {\n return new fs.WriteStream(path, options)\n }\n\n var fs$open = fs.open\n fs.open = open\n function open (path, flags, mode, cb) {\n if (typeof mode === 'function')\n cb = mode, mode = null\n\n return go$open(path, flags, mode, cb)\n\n function go$open (path, flags, mode, cb, startTime) {\n return fs$open(path, flags, mode, function (err, fd) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n return fs\n}\n\nfunction enqueue (elem) {\n debug('ENQUEUE', elem[0].name, elem[1])\n fs[gracefulQueue].push(elem)\n retry()\n}\n\n// keep track of the timeout between retry() calls\nvar retryTimer\n\n// reset the startTime and lastTime to now\n// this resets the start of the 60 second overall timeout as well as the\n// delay between attempts so that we'll retry these jobs sooner\nfunction resetQueue () {\n var now = Date.now()\n for (var i = 0; i < fs[gracefulQueue].length; ++i) {\n // entries that are only a length of 2 are from an older version, don't\n // bother modifying those since they'll be retried anyway.\n if (fs[gracefulQueue][i].length > 2) {\n fs[gracefulQueue][i][3] = now // startTime\n fs[gracefulQueue][i][4] = now // lastTime\n }\n }\n // call retry to make sure we're actively processing the queue\n retry()\n}\n\nfunction retry () {\n // clear the timer and remove it to help prevent unintended concurrency\n clearTimeout(retryTimer)\n retryTimer = undefined\n\n if (fs[gracefulQueue].length === 0)\n return\n\n var elem = fs[gracefulQueue].shift()\n var fn = elem[0]\n var args = elem[1]\n // these items may be unset if they were added by an older graceful-fs\n var err = elem[2]\n var startTime = elem[3]\n var lastTime = elem[4]\n\n // if we don't have a startTime we have no way of knowing if we've waited\n // long enough, so go ahead and retry this item now\n if (startTime === undefined) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args)\n } else if (Date.now() - startTime >= 60000) {\n // it's been more than 60 seconds total, bail now\n debug('TIMEOUT', fn.name, args)\n var cb = args.pop()\n if (typeof cb === 'function')\n cb.call(null, err)\n } else {\n // the amount of time between the last attempt and right now\n var sinceAttempt = Date.now() - lastTime\n // the amount of time between when we first tried, and when we last tried\n // rounded up to at least 1\n var sinceStart = Math.max(lastTime - startTime, 1)\n // backoff. wait longer than the total time we've been retrying, but only\n // up to a maximum of 100ms\n var desiredDelay = Math.min(sinceStart * 1.2, 100)\n // it's been long enough since the last retry, do it again\n if (sinceAttempt >= desiredDelay) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args.concat([startTime]))\n } else {\n // if we can't do this job yet, push it to the end of the queue\n // and let the next iteration check again\n fs[gracefulQueue].push(elem)\n }\n }\n\n // schedule our next run if one isn't already scheduled\n if (retryTimer === undefined) {\n retryTimer = setTimeout(retry, 0)\n }\n}\n","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n","var constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\n// This check is needed until node.js 12 is required\nif (typeof process.chdir === 'function') {\n var chdir = process.chdir\n process.chdir = function (d) {\n cwd = null\n chdir.call(process, d)\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (fs.chmod && !fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (fs.chown && !fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = typeof fs.rename !== 'function' ? fs.rename\n : (function (fs$rename) {\n function rename (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\" || er.code === \"EBUSY\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename)\n return rename\n })(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = typeof fs.read !== 'function' ? fs.read\n : (function (fs$read) {\n function read (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n\n // This ensures `util.promisify` works as it does for native `fs.read`.\n if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)\n return read\n })(fs.read)\n\n fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync\n : (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n\n function patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n }\n\n function patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\") && fs.futimes) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else if (fs.futimes) {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n }\n\n function chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n\n function chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n function statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n function callback (er, stats) {\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n if (cb) cb.apply(this, arguments)\n }\n return options ? orig.call(fs, target, options, callback)\n : orig.call(fs, target, callback)\n }\n }\n\n function statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options) {\n var stats = options ? orig.call(fs, target, options)\n : orig.call(fs, target)\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n return stats;\n }\n }\n\n // ENOSYS means that the fs doesn't support the op. Just ignore\n // that, because it doesn't matter.\n //\n // if there's no getuid, or if getuid() is something other\n // than 0, and the error is EINVAL or EPERM, then just ignore\n // it.\n //\n // This specific case is a silent failure in cp, install, tar,\n // and most other unix tools that manage permissions.\n //\n // When running as root, or if other types of errors are\n // encountered, then it's strict.\n function chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n }\n}\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * is-extglob \n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n var match;\n while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n if (match[2]) return true;\n str = str.slice(match.index + match[0].length);\n }\n\n return false;\n};\n","/* eslint-disable yoda */\n'use strict';\n\nconst isFullwidthCodePoint = codePoint => {\n\tif (Number.isNaN(codePoint)) {\n\t\treturn false;\n\t}\n\n\t// Code points are derived from:\n\t// http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt\n\tif (\n\t\tcodePoint >= 0x1100 && (\n\t\t\tcodePoint <= 0x115F || // Hangul Jamo\n\t\t\tcodePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n\t\t\tcodePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET\n\t\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t\t(0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||\n\t\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t\t(0x3250 <= codePoint && codePoint <= 0x4DBF) ||\n\t\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t\t(0x4E00 <= codePoint && codePoint <= 0xA4C6) ||\n\t\t\t// Hangul Jamo Extended-A\n\t\t\t(0xA960 <= codePoint && codePoint <= 0xA97C) ||\n\t\t\t// Hangul Syllables\n\t\t\t(0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n\t\t\t// CJK Compatibility Ideographs\n\t\t\t(0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n\t\t\t// Vertical Forms\n\t\t\t(0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n\t\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t\t(0xFE30 <= codePoint && codePoint <= 0xFE6B) ||\n\t\t\t// Halfwidth and Fullwidth Forms\n\t\t\t(0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n\t\t\t(0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||\n\t\t\t// Kana Supplement\n\t\t\t(0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n\t\t\t// Enclosed Ideographic Supplement\n\t\t\t(0x1F200 <= codePoint && codePoint <= 0x1F251) ||\n\t\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t\t(0x20000 <= codePoint && codePoint <= 0x3FFFD)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\nmodule.exports = isFullwidthCodePoint;\nmodule.exports.default = isFullwidthCodePoint;\n","/*!\n * is-glob \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n var pipeIndex = -2;\n var closeSquareIndex = -2;\n var closeCurlyIndex = -2;\n var closeParenIndex = -2;\n var backSlashIndex = -2;\n while (index < str.length) {\n if (str[index] === '*') {\n return true;\n }\n\n if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\n return true;\n }\n\n if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\n if (closeSquareIndex < index) {\n closeSquareIndex = str.indexOf(']', index);\n }\n if (closeSquareIndex > index) {\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n }\n }\n\n if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\n closeCurlyIndex = str.indexOf('}', index);\n if (closeCurlyIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n return true;\n }\n }\n }\n\n if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\n closeParenIndex = str.indexOf(')', index);\n if (closeParenIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n\n if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\n if (pipeIndex < index) {\n pipeIndex = str.indexOf('|', index);\n }\n if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\n closeParenIndex = str.indexOf(')', pipeIndex);\n if (closeParenIndex > pipeIndex) {\n backSlashIndex = str.indexOf('\\\\', pipeIndex);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nvar relaxedCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n while (index < str.length) {\n if (/[*?{}()[\\]]/.test(str[index])) {\n return true;\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nmodule.exports = function isGlob(str, options) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n if (isExtglob(str)) {\n return true;\n }\n\n var check = strictCheck;\n\n // optionally relax check\n if (options && options.strict === false) {\n check = relaxedCheck;\n }\n\n return check(str);\n};\n","/*!\n * is-number \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","let _fs\ntry {\n _fs = require('graceful-fs')\n} catch (_) {\n _fs = require('fs')\n}\nconst universalify = require('universalify')\nconst { stringify, stripBom } = require('./utils')\n\nasync function _readFile (file, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n const fs = options.fs || _fs\n\n const shouldThrow = 'throws' in options ? options.throws : true\n\n let data = await universalify.fromCallback(fs.readFile)(file, options)\n\n data = stripBom(data)\n\n let obj\n try {\n obj = JSON.parse(data, options ? options.reviver : null)\n } catch (err) {\n if (shouldThrow) {\n err.message = `${file}: ${err.message}`\n throw err\n } else {\n return null\n }\n }\n\n return obj\n}\n\nconst readFile = universalify.fromPromise(_readFile)\n\nfunction readFileSync (file, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n const fs = options.fs || _fs\n\n const shouldThrow = 'throws' in options ? options.throws : true\n\n try {\n let content = fs.readFileSync(file, options)\n content = stripBom(content)\n return JSON.parse(content, options.reviver)\n } catch (err) {\n if (shouldThrow) {\n err.message = `${file}: ${err.message}`\n throw err\n } else {\n return null\n }\n }\n}\n\nasync function _writeFile (file, obj, options = {}) {\n const fs = options.fs || _fs\n\n const str = stringify(obj, options)\n\n await universalify.fromCallback(fs.writeFile)(file, str, options)\n}\n\nconst writeFile = universalify.fromPromise(_writeFile)\n\nfunction writeFileSync (file, obj, options = {}) {\n const fs = options.fs || _fs\n\n const str = stringify(obj, options)\n // not sure if fs.writeFileSync returns anything, but just in case\n return fs.writeFileSync(file, str, options)\n}\n\nconst jsonfile = {\n readFile,\n readFileSync,\n writeFile,\n writeFileSync\n}\n\nmodule.exports = jsonfile\n","function stringify (obj, { EOL = '\\n', finalEOL = true, replacer = null, spaces } = {}) {\n const EOF = finalEOL ? EOL : ''\n const str = JSON.stringify(obj, replacer, spaces)\n\n return str.replace(/\\n/g, EOL) + EOF\n}\n\nfunction stripBom (content) {\n // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified\n if (Buffer.isBuffer(content)) content = content.toString('utf8')\n return content.replace(/^\\uFEFF/, '')\n}\n\nmodule.exports = { stringify, stripBom }\n","var util = require('util');\nvar PassThrough = require('readable-stream/passthrough');\n\nmodule.exports = {\n Readable: Readable,\n Writable: Writable\n};\n\nutil.inherits(Readable, PassThrough);\nutil.inherits(Writable, PassThrough);\n\n// Patch the given method of instance so that the callback\n// is executed once, before the actual method is called the\n// first time.\nfunction beforeFirstCall(instance, method, callback) {\n instance[method] = function() {\n delete instance[method];\n callback.apply(this, arguments);\n return this[method].apply(this, arguments);\n };\n}\n\nfunction Readable(fn, options) {\n if (!(this instanceof Readable))\n return new Readable(fn, options);\n\n PassThrough.call(this, options);\n\n beforeFirstCall(this, '_read', function() {\n var source = fn.call(this, options);\n var emit = this.emit.bind(this, 'error');\n source.on('error', emit);\n source.pipe(this);\n });\n\n this.emit('readable');\n}\n\nfunction Writable(fn, options) {\n if (!(this instanceof Writable))\n return new Writable(fn, options);\n\n PassThrough.call(this, options);\n\n beforeFirstCall(this, '_write', function() {\n var destination = fn.call(this, options);\n var emit = this.emit.bind(this, 'error');\n destination.on('error', emit);\n this.pipe(destination);\n });\n\n this.emit('writable');\n}\n\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('stream');\n","module.exports = require('./readable').PassThrough\n","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n exports = module.exports = Stream.Readable;\n exports.Readable = Stream.Readable;\n exports.Writable = Stream.Writable;\n exports.Duplex = Stream.Duplex;\n exports.Transform = Stream.Transform;\n exports.PassThrough = Stream.PassThrough;\n exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n result++;\n }\n return result;\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObject(value) && objectToString.call(value) == regexpTag;\n}\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nmodule.exports = truncate;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n baseUniq = require('./_baseUniq'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nmodule.exports = union;\n","'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n const streamsQueue = []\n const args = slice.call(arguments)\n let merging = false\n let options = args[args.length - 1]\n\n if (options && !Array.isArray(options) && options.pipe == null) {\n args.pop()\n } else {\n options = {}\n }\n\n const doEnd = options.end !== false\n const doPipeError = options.pipeError === true\n if (options.objectMode == null) {\n options.objectMode = true\n }\n if (options.highWaterMark == null) {\n options.highWaterMark = 64 * 1024\n }\n const mergedStream = PassThrough(options)\n\n function addStream () {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options))\n }\n mergeStream()\n return this\n }\n\n function mergeStream () {\n if (merging) {\n return\n }\n merging = true\n\n let streams = streamsQueue.shift()\n if (!streams) {\n process.nextTick(endStream)\n return\n }\n if (!Array.isArray(streams)) {\n streams = [streams]\n }\n\n let pipesCount = streams.length + 1\n\n function next () {\n if (--pipesCount > 0) {\n return\n }\n merging = false\n mergeStream()\n }\n\n function pipe (stream) {\n function onend () {\n stream.removeListener('merge2UnpipeEnd', onend)\n stream.removeListener('end', onend)\n if (doPipeError) {\n stream.removeListener('error', onerror)\n }\n next()\n }\n function onerror (err) {\n mergedStream.emit('error', err)\n }\n // skip ended stream\n if (stream._readableState.endEmitted) {\n return next()\n }\n\n stream.on('merge2UnpipeEnd', onend)\n stream.on('end', onend)\n\n if (doPipeError) {\n stream.on('error', onerror)\n }\n\n stream.pipe(mergedStream, { end: false })\n // compatible for old stream\n stream.resume()\n }\n\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i])\n }\n\n next()\n }\n\n function endStream () {\n merging = false\n // emit 'queueDrain' when all streams merged.\n mergedStream.emit('queueDrain')\n if (doEnd) {\n mergedStream.end()\n }\n }\n\n mergedStream.setMaxListeners(0)\n mergedStream.add = addStream\n mergedStream.on('unpipe', function (stream) {\n stream.emit('merge2UnpipeEnd')\n })\n\n if (args.length) {\n addStream.apply(null, args)\n }\n return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n if (!Array.isArray(streams)) {\n // Backwards-compat with old-style streams\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options))\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error('Only readable stream can be merged.')\n }\n streams.pause()\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options)\n }\n }\n return streams\n}\n","'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\n\nconst isEmptyString = v => v === '' || v === './';\nconst hasBraces = v => {\n const index = v.indexOf('{');\n return index > -1 && v.indexOf('}', index) > -1;\n};\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array} `list` List of strings to match.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n\n let omit = new Set();\n let keep = new Set();\n let items = new Set();\n let negatives = 0;\n\n let onResult = state => {\n items.add(state.output);\n if (options && options.onResult) {\n options.onResult(state);\n }\n };\n\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n\n for (let item of list) {\n let matched = isMatch(item, true);\n\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n\n if (negated) {\n omit.add(matched.output);\n } else {\n omit.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter(item => !omit.has(item));\n\n if (options && matches.length === 0) {\n if (options.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n }\n\n if (options.nonull === true || options.nullglob === true) {\n return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n }\n }\n\n return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = new Set();\n let items = [];\n\n let onResult = state => {\n if (options.onResult) options.onResult(state);\n items.push(state.output);\n };\n\n let matches = new Set(micromatch(list, patterns, { ...options, onResult }));\n\n for (let item of items) {\n if (!matches.has(item)) {\n result.add(item);\n }\n }\n return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n if (Array.isArray(pattern)) {\n return pattern.some(p => micromatch.contains(str, p, options));\n }\n\n if (typeof pattern === 'string') {\n if (isEmptyString(str) || isEmptyString(pattern)) {\n return false;\n }\n\n if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n return true;\n }\n }\n\n return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n if (!utils.isObject(obj)) {\n throw new TypeError('Expected the first argument to be an object');\n }\n let keys = micromatch(Object.keys(obj), patterns, options);\n let res = {};\n for (let key of keys) res[key] = obj[key];\n return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (items.some(item => isMatch(item))) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (!items.every(item => isMatch(item))) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n let posix = utils.isWindows(options);\n let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n if (match) {\n return match.slice(1).map(v => v === void 0 ? '' : v);\n }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.parse(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str of braces(String(pattern), options)) {\n res.push(picomatch.parse(str, options));\n }\n }\n return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n if ((options && options.nobrace === true) || !hasBraces(pattern)) {\n return [pattern];\n }\n return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\n// exposed for tests\nmicromatch.hasBraces = hasBraces;\nmodule.exports = micromatch;\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n","'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n SEP: path.sep,\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split('.').map(Number);\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n return true;\n }\n return false;\n};\n\nexports.isWindows = options => {\n if (options && typeof options.windows === 'boolean') {\n return options.windows;\n }\n return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'), require('./types/other'));\n","module.exports = {\"application/prs.cww\":[\"cww\"],\"application/vnd.1000minds.decision-model+xml\":[\"1km\"],\"application/vnd.3gpp.pic-bw-large\":[\"plb\"],\"application/vnd.3gpp.pic-bw-small\":[\"psb\"],\"application/vnd.3gpp.pic-bw-var\":[\"pvb\"],\"application/vnd.3gpp2.tcap\":[\"tcap\"],\"application/vnd.3m.post-it-notes\":[\"pwn\"],\"application/vnd.accpac.simply.aso\":[\"aso\"],\"application/vnd.accpac.simply.imp\":[\"imp\"],\"application/vnd.acucobol\":[\"acu\"],\"application/vnd.acucorp\":[\"atc\",\"acutc\"],\"application/vnd.adobe.air-application-installer-package+zip\":[\"air\"],\"application/vnd.adobe.formscentral.fcdt\":[\"fcdt\"],\"application/vnd.adobe.fxp\":[\"fxp\",\"fxpl\"],\"application/vnd.adobe.xdp+xml\":[\"xdp\"],\"application/vnd.adobe.xfdf\":[\"xfdf\"],\"application/vnd.ahead.space\":[\"ahead\"],\"application/vnd.airzip.filesecure.azf\":[\"azf\"],\"application/vnd.airzip.filesecure.azs\":[\"azs\"],\"application/vnd.amazon.ebook\":[\"azw\"],\"application/vnd.americandynamics.acc\":[\"acc\"],\"application/vnd.amiga.ami\":[\"ami\"],\"application/vnd.android.package-archive\":[\"apk\"],\"application/vnd.anser-web-certificate-issue-initiation\":[\"cii\"],\"application/vnd.anser-web-funds-transfer-initiation\":[\"fti\"],\"application/vnd.antix.game-component\":[\"atx\"],\"application/vnd.apple.installer+xml\":[\"mpkg\"],\"application/vnd.apple.keynote\":[\"key\"],\"application/vnd.apple.mpegurl\":[\"m3u8\"],\"application/vnd.apple.numbers\":[\"numbers\"],\"application/vnd.apple.pages\":[\"pages\"],\"application/vnd.apple.pkpass\":[\"pkpass\"],\"application/vnd.aristanetworks.swi\":[\"swi\"],\"application/vnd.astraea-software.iota\":[\"iota\"],\"application/vnd.audiograph\":[\"aep\"],\"application/vnd.balsamiq.bmml+xml\":[\"bmml\"],\"application/vnd.blueice.multipass\":[\"mpm\"],\"application/vnd.bmi\":[\"bmi\"],\"application/vnd.businessobjects\":[\"rep\"],\"application/vnd.chemdraw+xml\":[\"cdxml\"],\"application/vnd.chipnuts.karaoke-mmd\":[\"mmd\"],\"application/vnd.cinderella\":[\"cdy\"],\"application/vnd.citationstyles.style+xml\":[\"csl\"],\"application/vnd.claymore\":[\"cla\"],\"application/vnd.cloanto.rp9\":[\"rp9\"],\"application/vnd.clonk.c4group\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"],\"application/vnd.cluetrust.cartomobile-config\":[\"c11amc\"],\"application/vnd.cluetrust.cartomobile-config-pkg\":[\"c11amz\"],\"application/vnd.commonspace\":[\"csp\"],\"application/vnd.contact.cmsg\":[\"cdbcmsg\"],\"application/vnd.cosmocaller\":[\"cmc\"],\"application/vnd.crick.clicker\":[\"clkx\"],\"application/vnd.crick.clicker.keyboard\":[\"clkk\"],\"application/vnd.crick.clicker.palette\":[\"clkp\"],\"application/vnd.crick.clicker.template\":[\"clkt\"],\"application/vnd.crick.clicker.wordbank\":[\"clkw\"],\"application/vnd.criticaltools.wbs+xml\":[\"wbs\"],\"application/vnd.ctc-posml\":[\"pml\"],\"application/vnd.cups-ppd\":[\"ppd\"],\"application/vnd.curl.car\":[\"car\"],\"application/vnd.curl.pcurl\":[\"pcurl\"],\"application/vnd.dart\":[\"dart\"],\"application/vnd.data-vision.rdz\":[\"rdz\"],\"application/vnd.dbf\":[\"dbf\"],\"application/vnd.dece.data\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"],\"application/vnd.dece.ttml+xml\":[\"uvt\",\"uvvt\"],\"application/vnd.dece.unspecified\":[\"uvx\",\"uvvx\"],\"application/vnd.dece.zip\":[\"uvz\",\"uvvz\"],\"application/vnd.denovo.fcselayout-link\":[\"fe_launch\"],\"application/vnd.dna\":[\"dna\"],\"application/vnd.dolby.mlp\":[\"mlp\"],\"application/vnd.dpgraph\":[\"dpg\"],\"application/vnd.dreamfactory\":[\"dfac\"],\"application/vnd.ds-keypoint\":[\"kpxx\"],\"application/vnd.dvb.ait\":[\"ait\"],\"application/vnd.dvb.service\":[\"svc\"],\"application/vnd.dynageo\":[\"geo\"],\"application/vnd.ecowin.chart\":[\"mag\"],\"application/vnd.enliven\":[\"nml\"],\"application/vnd.epson.esf\":[\"esf\"],\"application/vnd.epson.msf\":[\"msf\"],\"application/vnd.epson.quickanime\":[\"qam\"],\"application/vnd.epson.salt\":[\"slt\"],\"application/vnd.epson.ssf\":[\"ssf\"],\"application/vnd.eszigno3+xml\":[\"es3\",\"et3\"],\"application/vnd.ezpix-album\":[\"ez2\"],\"application/vnd.ezpix-package\":[\"ez3\"],\"application/vnd.fdf\":[\"fdf\"],\"application/vnd.fdsn.mseed\":[\"mseed\"],\"application/vnd.fdsn.seed\":[\"seed\",\"dataless\"],\"application/vnd.flographit\":[\"gph\"],\"application/vnd.fluxtime.clip\":[\"ftc\"],\"application/vnd.framemaker\":[\"fm\",\"frame\",\"maker\",\"book\"],\"application/vnd.frogans.fnc\":[\"fnc\"],\"application/vnd.frogans.ltf\":[\"ltf\"],\"application/vnd.fsc.weblaunch\":[\"fsc\"],\"application/vnd.fujitsu.oasys\":[\"oas\"],\"application/vnd.fujitsu.oasys2\":[\"oa2\"],\"application/vnd.fujitsu.oasys3\":[\"oa3\"],\"application/vnd.fujitsu.oasysgp\":[\"fg5\"],\"application/vnd.fujitsu.oasysprs\":[\"bh2\"],\"application/vnd.fujixerox.ddd\":[\"ddd\"],\"application/vnd.fujixerox.docuworks\":[\"xdw\"],\"application/vnd.fujixerox.docuworks.binder\":[\"xbd\"],\"application/vnd.fuzzysheet\":[\"fzs\"],\"application/vnd.genomatix.tuxedo\":[\"txd\"],\"application/vnd.geogebra.file\":[\"ggb\"],\"application/vnd.geogebra.tool\":[\"ggt\"],\"application/vnd.geometry-explorer\":[\"gex\",\"gre\"],\"application/vnd.geonext\":[\"gxt\"],\"application/vnd.geoplan\":[\"g2w\"],\"application/vnd.geospace\":[\"g3w\"],\"application/vnd.gmx\":[\"gmx\"],\"application/vnd.google-apps.document\":[\"gdoc\"],\"application/vnd.google-apps.presentation\":[\"gslides\"],\"application/vnd.google-apps.spreadsheet\":[\"gsheet\"],\"application/vnd.google-earth.kml+xml\":[\"kml\"],\"application/vnd.google-earth.kmz\":[\"kmz\"],\"application/vnd.grafeq\":[\"gqf\",\"gqs\"],\"application/vnd.groove-account\":[\"gac\"],\"application/vnd.groove-help\":[\"ghf\"],\"application/vnd.groove-identity-message\":[\"gim\"],\"application/vnd.groove-injector\":[\"grv\"],\"application/vnd.groove-tool-message\":[\"gtm\"],\"application/vnd.groove-tool-template\":[\"tpl\"],\"application/vnd.groove-vcard\":[\"vcg\"],\"application/vnd.hal+xml\":[\"hal\"],\"application/vnd.handheld-entertainment+xml\":[\"zmm\"],\"application/vnd.hbci\":[\"hbci\"],\"application/vnd.hhe.lesson-player\":[\"les\"],\"application/vnd.hp-hpgl\":[\"hpgl\"],\"application/vnd.hp-hpid\":[\"hpid\"],\"application/vnd.hp-hps\":[\"hps\"],\"application/vnd.hp-jlyt\":[\"jlt\"],\"application/vnd.hp-pcl\":[\"pcl\"],\"application/vnd.hp-pclxl\":[\"pclxl\"],\"application/vnd.hydrostatix.sof-data\":[\"sfd-hdstx\"],\"application/vnd.ibm.minipay\":[\"mpy\"],\"application/vnd.ibm.modcap\":[\"afp\",\"listafp\",\"list3820\"],\"application/vnd.ibm.rights-management\":[\"irm\"],\"application/vnd.ibm.secure-container\":[\"sc\"],\"application/vnd.iccprofile\":[\"icc\",\"icm\"],\"application/vnd.igloader\":[\"igl\"],\"application/vnd.immervision-ivp\":[\"ivp\"],\"application/vnd.immervision-ivu\":[\"ivu\"],\"application/vnd.insors.igm\":[\"igm\"],\"application/vnd.intercon.formnet\":[\"xpw\",\"xpx\"],\"application/vnd.intergeo\":[\"i2g\"],\"application/vnd.intu.qbo\":[\"qbo\"],\"application/vnd.intu.qfx\":[\"qfx\"],\"application/vnd.ipunplugged.rcprofile\":[\"rcprofile\"],\"application/vnd.irepository.package+xml\":[\"irp\"],\"application/vnd.is-xpr\":[\"xpr\"],\"application/vnd.isac.fcs\":[\"fcs\"],\"application/vnd.jam\":[\"jam\"],\"application/vnd.jcp.javame.midlet-rms\":[\"rms\"],\"application/vnd.jisp\":[\"jisp\"],\"application/vnd.joost.joda-archive\":[\"joda\"],\"application/vnd.kahootz\":[\"ktz\",\"ktr\"],\"application/vnd.kde.karbon\":[\"karbon\"],\"application/vnd.kde.kchart\":[\"chrt\"],\"application/vnd.kde.kformula\":[\"kfo\"],\"application/vnd.kde.kivio\":[\"flw\"],\"application/vnd.kde.kontour\":[\"kon\"],\"application/vnd.kde.kpresenter\":[\"kpr\",\"kpt\"],\"application/vnd.kde.kspread\":[\"ksp\"],\"application/vnd.kde.kword\":[\"kwd\",\"kwt\"],\"application/vnd.kenameaapp\":[\"htke\"],\"application/vnd.kidspiration\":[\"kia\"],\"application/vnd.kinar\":[\"kne\",\"knp\"],\"application/vnd.koan\":[\"skp\",\"skd\",\"skt\",\"skm\"],\"application/vnd.kodak-descriptor\":[\"sse\"],\"application/vnd.las.las+xml\":[\"lasxml\"],\"application/vnd.llamagraphics.life-balance.desktop\":[\"lbd\"],\"application/vnd.llamagraphics.life-balance.exchange+xml\":[\"lbe\"],\"application/vnd.lotus-1-2-3\":[\"123\"],\"application/vnd.lotus-approach\":[\"apr\"],\"application/vnd.lotus-freelance\":[\"pre\"],\"application/vnd.lotus-notes\":[\"nsf\"],\"application/vnd.lotus-organizer\":[\"org\"],\"application/vnd.lotus-screencam\":[\"scm\"],\"application/vnd.lotus-wordpro\":[\"lwp\"],\"application/vnd.macports.portpkg\":[\"portpkg\"],\"application/vnd.mapbox-vector-tile\":[\"mvt\"],\"application/vnd.mcd\":[\"mcd\"],\"application/vnd.medcalcdata\":[\"mc1\"],\"application/vnd.mediastation.cdkey\":[\"cdkey\"],\"application/vnd.mfer\":[\"mwf\"],\"application/vnd.mfmp\":[\"mfm\"],\"application/vnd.micrografx.flo\":[\"flo\"],\"application/vnd.micrografx.igx\":[\"igx\"],\"application/vnd.mif\":[\"mif\"],\"application/vnd.mobius.daf\":[\"daf\"],\"application/vnd.mobius.dis\":[\"dis\"],\"application/vnd.mobius.mbk\":[\"mbk\"],\"application/vnd.mobius.mqy\":[\"mqy\"],\"application/vnd.mobius.msl\":[\"msl\"],\"application/vnd.mobius.plc\":[\"plc\"],\"application/vnd.mobius.txf\":[\"txf\"],\"application/vnd.mophun.application\":[\"mpn\"],\"application/vnd.mophun.certificate\":[\"mpc\"],\"application/vnd.mozilla.xul+xml\":[\"xul\"],\"application/vnd.ms-artgalry\":[\"cil\"],\"application/vnd.ms-cab-compressed\":[\"cab\"],\"application/vnd.ms-excel\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"],\"application/vnd.ms-excel.addin.macroenabled.12\":[\"xlam\"],\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":[\"xlsb\"],\"application/vnd.ms-excel.sheet.macroenabled.12\":[\"xlsm\"],\"application/vnd.ms-excel.template.macroenabled.12\":[\"xltm\"],\"application/vnd.ms-fontobject\":[\"eot\"],\"application/vnd.ms-htmlhelp\":[\"chm\"],\"application/vnd.ms-ims\":[\"ims\"],\"application/vnd.ms-lrm\":[\"lrm\"],\"application/vnd.ms-officetheme\":[\"thmx\"],\"application/vnd.ms-outlook\":[\"msg\"],\"application/vnd.ms-pki.seccat\":[\"cat\"],\"application/vnd.ms-pki.stl\":[\"*stl\"],\"application/vnd.ms-powerpoint\":[\"ppt\",\"pps\",\"pot\"],\"application/vnd.ms-powerpoint.addin.macroenabled.12\":[\"ppam\"],\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":[\"pptm\"],\"application/vnd.ms-powerpoint.slide.macroenabled.12\":[\"sldm\"],\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":[\"ppsm\"],\"application/vnd.ms-powerpoint.template.macroenabled.12\":[\"potm\"],\"application/vnd.ms-project\":[\"mpp\",\"mpt\"],\"application/vnd.ms-word.document.macroenabled.12\":[\"docm\"],\"application/vnd.ms-word.template.macroenabled.12\":[\"dotm\"],\"application/vnd.ms-works\":[\"wps\",\"wks\",\"wcm\",\"wdb\"],\"application/vnd.ms-wpl\":[\"wpl\"],\"application/vnd.ms-xpsdocument\":[\"xps\"],\"application/vnd.mseq\":[\"mseq\"],\"application/vnd.musician\":[\"mus\"],\"application/vnd.muvee.style\":[\"msty\"],\"application/vnd.mynfc\":[\"taglet\"],\"application/vnd.neurolanguage.nlu\":[\"nlu\"],\"application/vnd.nitf\":[\"ntf\",\"nitf\"],\"application/vnd.noblenet-directory\":[\"nnd\"],\"application/vnd.noblenet-sealer\":[\"nns\"],\"application/vnd.noblenet-web\":[\"nnw\"],\"application/vnd.nokia.n-gage.ac+xml\":[\"*ac\"],\"application/vnd.nokia.n-gage.data\":[\"ngdat\"],\"application/vnd.nokia.n-gage.symbian.install\":[\"n-gage\"],\"application/vnd.nokia.radio-preset\":[\"rpst\"],\"application/vnd.nokia.radio-presets\":[\"rpss\"],\"application/vnd.novadigm.edm\":[\"edm\"],\"application/vnd.novadigm.edx\":[\"edx\"],\"application/vnd.novadigm.ext\":[\"ext\"],\"application/vnd.oasis.opendocument.chart\":[\"odc\"],\"application/vnd.oasis.opendocument.chart-template\":[\"otc\"],\"application/vnd.oasis.opendocument.database\":[\"odb\"],\"application/vnd.oasis.opendocument.formula\":[\"odf\"],\"application/vnd.oasis.opendocument.formula-template\":[\"odft\"],\"application/vnd.oasis.opendocument.graphics\":[\"odg\"],\"application/vnd.oasis.opendocument.graphics-template\":[\"otg\"],\"application/vnd.oasis.opendocument.image\":[\"odi\"],\"application/vnd.oasis.opendocument.image-template\":[\"oti\"],\"application/vnd.oasis.opendocument.presentation\":[\"odp\"],\"application/vnd.oasis.opendocument.presentation-template\":[\"otp\"],\"application/vnd.oasis.opendocument.spreadsheet\":[\"ods\"],\"application/vnd.oasis.opendocument.spreadsheet-template\":[\"ots\"],\"application/vnd.oasis.opendocument.text\":[\"odt\"],\"application/vnd.oasis.opendocument.text-master\":[\"odm\"],\"application/vnd.oasis.opendocument.text-template\":[\"ott\"],\"application/vnd.oasis.opendocument.text-web\":[\"oth\"],\"application/vnd.olpc-sugar\":[\"xo\"],\"application/vnd.oma.dd2+xml\":[\"dd2\"],\"application/vnd.openblox.game+xml\":[\"obgx\"],\"application/vnd.openofficeorg.extension\":[\"oxt\"],\"application/vnd.openstreetmap.data+xml\":[\"osm\"],\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":[\"pptx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slide\":[\"sldx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":[\"ppsx\"],\"application/vnd.openxmlformats-officedocument.presentationml.template\":[\"potx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":[\"xlsx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":[\"xltx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":[\"docx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":[\"dotx\"],\"application/vnd.osgeo.mapguide.package\":[\"mgp\"],\"application/vnd.osgi.dp\":[\"dp\"],\"application/vnd.osgi.subsystem\":[\"esa\"],\"application/vnd.palm\":[\"pdb\",\"pqa\",\"oprc\"],\"application/vnd.pawaafile\":[\"paw\"],\"application/vnd.pg.format\":[\"str\"],\"application/vnd.pg.osasli\":[\"ei6\"],\"application/vnd.picsel\":[\"efif\"],\"application/vnd.pmi.widget\":[\"wg\"],\"application/vnd.pocketlearn\":[\"plf\"],\"application/vnd.powerbuilder6\":[\"pbd\"],\"application/vnd.previewsystems.box\":[\"box\"],\"application/vnd.proteus.magazine\":[\"mgz\"],\"application/vnd.publishare-delta-tree\":[\"qps\"],\"application/vnd.pvi.ptid1\":[\"ptid\"],\"application/vnd.quark.quarkxpress\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"],\"application/vnd.rar\":[\"rar\"],\"application/vnd.realvnc.bed\":[\"bed\"],\"application/vnd.recordare.musicxml\":[\"mxl\"],\"application/vnd.recordare.musicxml+xml\":[\"musicxml\"],\"application/vnd.rig.cryptonote\":[\"cryptonote\"],\"application/vnd.rim.cod\":[\"cod\"],\"application/vnd.rn-realmedia\":[\"rm\"],\"application/vnd.rn-realmedia-vbr\":[\"rmvb\"],\"application/vnd.route66.link66+xml\":[\"link66\"],\"application/vnd.sailingtracker.track\":[\"st\"],\"application/vnd.seemail\":[\"see\"],\"application/vnd.sema\":[\"sema\"],\"application/vnd.semd\":[\"semd\"],\"application/vnd.semf\":[\"semf\"],\"application/vnd.shana.informed.formdata\":[\"ifm\"],\"application/vnd.shana.informed.formtemplate\":[\"itp\"],\"application/vnd.shana.informed.interchange\":[\"iif\"],\"application/vnd.shana.informed.package\":[\"ipk\"],\"application/vnd.simtech-mindmapper\":[\"twd\",\"twds\"],\"application/vnd.smaf\":[\"mmf\"],\"application/vnd.smart.teacher\":[\"teacher\"],\"application/vnd.software602.filler.form+xml\":[\"fo\"],\"application/vnd.solent.sdkm+xml\":[\"sdkm\",\"sdkd\"],\"application/vnd.spotfire.dxp\":[\"dxp\"],\"application/vnd.spotfire.sfs\":[\"sfs\"],\"application/vnd.stardivision.calc\":[\"sdc\"],\"application/vnd.stardivision.draw\":[\"sda\"],\"application/vnd.stardivision.impress\":[\"sdd\"],\"application/vnd.stardivision.math\":[\"smf\"],\"application/vnd.stardivision.writer\":[\"sdw\",\"vor\"],\"application/vnd.stardivision.writer-global\":[\"sgl\"],\"application/vnd.stepmania.package\":[\"smzip\"],\"application/vnd.stepmania.stepchart\":[\"sm\"],\"application/vnd.sun.wadl+xml\":[\"wadl\"],\"application/vnd.sun.xml.calc\":[\"sxc\"],\"application/vnd.sun.xml.calc.template\":[\"stc\"],\"application/vnd.sun.xml.draw\":[\"sxd\"],\"application/vnd.sun.xml.draw.template\":[\"std\"],\"application/vnd.sun.xml.impress\":[\"sxi\"],\"application/vnd.sun.xml.impress.template\":[\"sti\"],\"application/vnd.sun.xml.math\":[\"sxm\"],\"application/vnd.sun.xml.writer\":[\"sxw\"],\"application/vnd.sun.xml.writer.global\":[\"sxg\"],\"application/vnd.sun.xml.writer.template\":[\"stw\"],\"application/vnd.sus-calendar\":[\"sus\",\"susp\"],\"application/vnd.svd\":[\"svd\"],\"application/vnd.symbian.install\":[\"sis\",\"sisx\"],\"application/vnd.syncml+xml\":[\"xsm\"],\"application/vnd.syncml.dm+wbxml\":[\"bdm\"],\"application/vnd.syncml.dm+xml\":[\"xdm\"],\"application/vnd.syncml.dmddf+xml\":[\"ddf\"],\"application/vnd.tao.intent-module-archive\":[\"tao\"],\"application/vnd.tcpdump.pcap\":[\"pcap\",\"cap\",\"dmp\"],\"application/vnd.tmobile-livetv\":[\"tmo\"],\"application/vnd.trid.tpt\":[\"tpt\"],\"application/vnd.triscape.mxs\":[\"mxs\"],\"application/vnd.trueapp\":[\"tra\"],\"application/vnd.ufdl\":[\"ufd\",\"ufdl\"],\"application/vnd.uiq.theme\":[\"utz\"],\"application/vnd.umajin\":[\"umj\"],\"application/vnd.unity\":[\"unityweb\"],\"application/vnd.uoml+xml\":[\"uoml\"],\"application/vnd.vcx\":[\"vcx\"],\"application/vnd.visio\":[\"vsd\",\"vst\",\"vss\",\"vsw\"],\"application/vnd.visionary\":[\"vis\"],\"application/vnd.vsf\":[\"vsf\"],\"application/vnd.wap.wbxml\":[\"wbxml\"],\"application/vnd.wap.wmlc\":[\"wmlc\"],\"application/vnd.wap.wmlscriptc\":[\"wmlsc\"],\"application/vnd.webturbo\":[\"wtb\"],\"application/vnd.wolfram.player\":[\"nbp\"],\"application/vnd.wordperfect\":[\"wpd\"],\"application/vnd.wqd\":[\"wqd\"],\"application/vnd.wt.stf\":[\"stf\"],\"application/vnd.xara\":[\"xar\"],\"application/vnd.xfdl\":[\"xfdl\"],\"application/vnd.yamaha.hv-dic\":[\"hvd\"],\"application/vnd.yamaha.hv-script\":[\"hvs\"],\"application/vnd.yamaha.hv-voice\":[\"hvp\"],\"application/vnd.yamaha.openscoreformat\":[\"osf\"],\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":[\"osfpvg\"],\"application/vnd.yamaha.smaf-audio\":[\"saf\"],\"application/vnd.yamaha.smaf-phrase\":[\"spf\"],\"application/vnd.yellowriver-custom-menu\":[\"cmp\"],\"application/vnd.zul\":[\"zir\",\"zirz\"],\"application/vnd.zzazz.deck+xml\":[\"zaz\"],\"application/x-7z-compressed\":[\"7z\"],\"application/x-abiword\":[\"abw\"],\"application/x-ace-compressed\":[\"ace\"],\"application/x-apple-diskimage\":[\"*dmg\"],\"application/x-arj\":[\"arj\"],\"application/x-authorware-bin\":[\"aab\",\"x32\",\"u32\",\"vox\"],\"application/x-authorware-map\":[\"aam\"],\"application/x-authorware-seg\":[\"aas\"],\"application/x-bcpio\":[\"bcpio\"],\"application/x-bdoc\":[\"*bdoc\"],\"application/x-bittorrent\":[\"torrent\"],\"application/x-blorb\":[\"blb\",\"blorb\"],\"application/x-bzip\":[\"bz\"],\"application/x-bzip2\":[\"bz2\",\"boz\"],\"application/x-cbr\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"],\"application/x-cdlink\":[\"vcd\"],\"application/x-cfs-compressed\":[\"cfs\"],\"application/x-chat\":[\"chat\"],\"application/x-chess-pgn\":[\"pgn\"],\"application/x-chrome-extension\":[\"crx\"],\"application/x-cocoa\":[\"cco\"],\"application/x-conference\":[\"nsc\"],\"application/x-cpio\":[\"cpio\"],\"application/x-csh\":[\"csh\"],\"application/x-debian-package\":[\"*deb\",\"udeb\"],\"application/x-dgc-compressed\":[\"dgc\"],\"application/x-director\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"],\"application/x-doom\":[\"wad\"],\"application/x-dtbncx+xml\":[\"ncx\"],\"application/x-dtbook+xml\":[\"dtb\"],\"application/x-dtbresource+xml\":[\"res\"],\"application/x-dvi\":[\"dvi\"],\"application/x-envoy\":[\"evy\"],\"application/x-eva\":[\"eva\"],\"application/x-font-bdf\":[\"bdf\"],\"application/x-font-ghostscript\":[\"gsf\"],\"application/x-font-linux-psf\":[\"psf\"],\"application/x-font-pcf\":[\"pcf\"],\"application/x-font-snf\":[\"snf\"],\"application/x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"application/x-freearc\":[\"arc\"],\"application/x-futuresplash\":[\"spl\"],\"application/x-gca-compressed\":[\"gca\"],\"application/x-glulx\":[\"ulx\"],\"application/x-gnumeric\":[\"gnumeric\"],\"application/x-gramps-xml\":[\"gramps\"],\"application/x-gtar\":[\"gtar\"],\"application/x-hdf\":[\"hdf\"],\"application/x-httpd-php\":[\"php\"],\"application/x-install-instructions\":[\"install\"],\"application/x-iso9660-image\":[\"*iso\"],\"application/x-iwork-keynote-sffkey\":[\"*key\"],\"application/x-iwork-numbers-sffnumbers\":[\"*numbers\"],\"application/x-iwork-pages-sffpages\":[\"*pages\"],\"application/x-java-archive-diff\":[\"jardiff\"],\"application/x-java-jnlp-file\":[\"jnlp\"],\"application/x-keepass2\":[\"kdbx\"],\"application/x-latex\":[\"latex\"],\"application/x-lua-bytecode\":[\"luac\"],\"application/x-lzh-compressed\":[\"lzh\",\"lha\"],\"application/x-makeself\":[\"run\"],\"application/x-mie\":[\"mie\"],\"application/x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"application/x-ms-application\":[\"application\"],\"application/x-ms-shortcut\":[\"lnk\"],\"application/x-ms-wmd\":[\"wmd\"],\"application/x-ms-wmz\":[\"wmz\"],\"application/x-ms-xbap\":[\"xbap\"],\"application/x-msaccess\":[\"mdb\"],\"application/x-msbinder\":[\"obd\"],\"application/x-mscardfile\":[\"crd\"],\"application/x-msclip\":[\"clp\"],\"application/x-msdos-program\":[\"*exe\"],\"application/x-msdownload\":[\"*exe\",\"*dll\",\"com\",\"bat\",\"*msi\"],\"application/x-msmediaview\":[\"mvb\",\"m13\",\"m14\"],\"application/x-msmetafile\":[\"*wmf\",\"*wmz\",\"*emf\",\"emz\"],\"application/x-msmoney\":[\"mny\"],\"application/x-mspublisher\":[\"pub\"],\"application/x-msschedule\":[\"scd\"],\"application/x-msterminal\":[\"trm\"],\"application/x-mswrite\":[\"wri\"],\"application/x-netcdf\":[\"nc\",\"cdf\"],\"application/x-ns-proxy-autoconfig\":[\"pac\"],\"application/x-nzb\":[\"nzb\"],\"application/x-perl\":[\"pl\",\"pm\"],\"application/x-pilot\":[\"*prc\",\"*pdb\"],\"application/x-pkcs12\":[\"p12\",\"pfx\"],\"application/x-pkcs7-certificates\":[\"p7b\",\"spc\"],\"application/x-pkcs7-certreqresp\":[\"p7r\"],\"application/x-rar-compressed\":[\"*rar\"],\"application/x-redhat-package-manager\":[\"rpm\"],\"application/x-research-info-systems\":[\"ris\"],\"application/x-sea\":[\"sea\"],\"application/x-sh\":[\"sh\"],\"application/x-shar\":[\"shar\"],\"application/x-shockwave-flash\":[\"swf\"],\"application/x-silverlight-app\":[\"xap\"],\"application/x-sql\":[\"sql\"],\"application/x-stuffit\":[\"sit\"],\"application/x-stuffitx\":[\"sitx\"],\"application/x-subrip\":[\"srt\"],\"application/x-sv4cpio\":[\"sv4cpio\"],\"application/x-sv4crc\":[\"sv4crc\"],\"application/x-t3vm-image\":[\"t3\"],\"application/x-tads\":[\"gam\"],\"application/x-tar\":[\"tar\"],\"application/x-tcl\":[\"tcl\",\"tk\"],\"application/x-tex\":[\"tex\"],\"application/x-tex-tfm\":[\"tfm\"],\"application/x-texinfo\":[\"texinfo\",\"texi\"],\"application/x-tgif\":[\"*obj\"],\"application/x-ustar\":[\"ustar\"],\"application/x-virtualbox-hdd\":[\"hdd\"],\"application/x-virtualbox-ova\":[\"ova\"],\"application/x-virtualbox-ovf\":[\"ovf\"],\"application/x-virtualbox-vbox\":[\"vbox\"],\"application/x-virtualbox-vbox-extpack\":[\"vbox-extpack\"],\"application/x-virtualbox-vdi\":[\"vdi\"],\"application/x-virtualbox-vhd\":[\"vhd\"],\"application/x-virtualbox-vmdk\":[\"vmdk\"],\"application/x-wais-source\":[\"src\"],\"application/x-web-app-manifest+json\":[\"webapp\"],\"application/x-x509-ca-cert\":[\"der\",\"crt\",\"pem\"],\"application/x-xfig\":[\"fig\"],\"application/x-xliff+xml\":[\"*xlf\"],\"application/x-xpinstall\":[\"xpi\"],\"application/x-xz\":[\"xz\"],\"application/x-zmachine\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"],\"audio/vnd.dece.audio\":[\"uva\",\"uvva\"],\"audio/vnd.digital-winds\":[\"eol\"],\"audio/vnd.dra\":[\"dra\"],\"audio/vnd.dts\":[\"dts\"],\"audio/vnd.dts.hd\":[\"dtshd\"],\"audio/vnd.lucent.voice\":[\"lvp\"],\"audio/vnd.ms-playready.media.pya\":[\"pya\"],\"audio/vnd.nuera.ecelp4800\":[\"ecelp4800\"],\"audio/vnd.nuera.ecelp7470\":[\"ecelp7470\"],\"audio/vnd.nuera.ecelp9600\":[\"ecelp9600\"],\"audio/vnd.rip\":[\"rip\"],\"audio/x-aac\":[\"aac\"],\"audio/x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"audio/x-caf\":[\"caf\"],\"audio/x-flac\":[\"flac\"],\"audio/x-m4a\":[\"*m4a\"],\"audio/x-matroska\":[\"mka\"],\"audio/x-mpegurl\":[\"m3u\"],\"audio/x-ms-wax\":[\"wax\"],\"audio/x-ms-wma\":[\"wma\"],\"audio/x-pn-realaudio\":[\"ram\",\"ra\"],\"audio/x-pn-realaudio-plugin\":[\"rmp\"],\"audio/x-realaudio\":[\"*ra\"],\"audio/x-wav\":[\"*wav\"],\"chemical/x-cdx\":[\"cdx\"],\"chemical/x-cif\":[\"cif\"],\"chemical/x-cmdf\":[\"cmdf\"],\"chemical/x-cml\":[\"cml\"],\"chemical/x-csml\":[\"csml\"],\"chemical/x-xyz\":[\"xyz\"],\"image/prs.btif\":[\"btif\"],\"image/prs.pti\":[\"pti\"],\"image/vnd.adobe.photoshop\":[\"psd\"],\"image/vnd.airzip.accelerator.azv\":[\"azv\"],\"image/vnd.dece.graphic\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"],\"image/vnd.djvu\":[\"djvu\",\"djv\"],\"image/vnd.dvb.subtitle\":[\"*sub\"],\"image/vnd.dwg\":[\"dwg\"],\"image/vnd.dxf\":[\"dxf\"],\"image/vnd.fastbidsheet\":[\"fbs\"],\"image/vnd.fpx\":[\"fpx\"],\"image/vnd.fst\":[\"fst\"],\"image/vnd.fujixerox.edmics-mmr\":[\"mmr\"],\"image/vnd.fujixerox.edmics-rlc\":[\"rlc\"],\"image/vnd.microsoft.icon\":[\"ico\"],\"image/vnd.ms-dds\":[\"dds\"],\"image/vnd.ms-modi\":[\"mdi\"],\"image/vnd.ms-photo\":[\"wdp\"],\"image/vnd.net-fpx\":[\"npx\"],\"image/vnd.pco.b16\":[\"b16\"],\"image/vnd.tencent.tap\":[\"tap\"],\"image/vnd.valve.source.texture\":[\"vtf\"],\"image/vnd.wap.wbmp\":[\"wbmp\"],\"image/vnd.xiff\":[\"xif\"],\"image/vnd.zbrush.pcx\":[\"pcx\"],\"image/x-3ds\":[\"3ds\"],\"image/x-cmu-raster\":[\"ras\"],\"image/x-cmx\":[\"cmx\"],\"image/x-freehand\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"],\"image/x-icon\":[\"*ico\"],\"image/x-jng\":[\"jng\"],\"image/x-mrsid-image\":[\"sid\"],\"image/x-ms-bmp\":[\"*bmp\"],\"image/x-pcx\":[\"*pcx\"],\"image/x-pict\":[\"pic\",\"pct\"],\"image/x-portable-anymap\":[\"pnm\"],\"image/x-portable-bitmap\":[\"pbm\"],\"image/x-portable-graymap\":[\"pgm\"],\"image/x-portable-pixmap\":[\"ppm\"],\"image/x-rgb\":[\"rgb\"],\"image/x-tga\":[\"tga\"],\"image/x-xbitmap\":[\"xbm\"],\"image/x-xpixmap\":[\"xpm\"],\"image/x-xwindowdump\":[\"xwd\"],\"message/vnd.wfa.wsc\":[\"wsc\"],\"model/vnd.collada+xml\":[\"dae\"],\"model/vnd.dwf\":[\"dwf\"],\"model/vnd.gdl\":[\"gdl\"],\"model/vnd.gtw\":[\"gtw\"],\"model/vnd.mts\":[\"mts\"],\"model/vnd.opengex\":[\"ogex\"],\"model/vnd.parasolid.transmit.binary\":[\"x_b\"],\"model/vnd.parasolid.transmit.text\":[\"x_t\"],\"model/vnd.sap.vds\":[\"vds\"],\"model/vnd.usdz+zip\":[\"usdz\"],\"model/vnd.valve.source.compiled-map\":[\"bsp\"],\"model/vnd.vtu\":[\"vtu\"],\"text/prs.lines.tag\":[\"dsc\"],\"text/vnd.curl\":[\"curl\"],\"text/vnd.curl.dcurl\":[\"dcurl\"],\"text/vnd.curl.mcurl\":[\"mcurl\"],\"text/vnd.curl.scurl\":[\"scurl\"],\"text/vnd.dvb.subtitle\":[\"sub\"],\"text/vnd.fly\":[\"fly\"],\"text/vnd.fmi.flexstor\":[\"flx\"],\"text/vnd.graphviz\":[\"gv\"],\"text/vnd.in3d.3dml\":[\"3dml\"],\"text/vnd.in3d.spot\":[\"spot\"],\"text/vnd.sun.j2me.app-descriptor\":[\"jad\"],\"text/vnd.wap.wml\":[\"wml\"],\"text/vnd.wap.wmlscript\":[\"wmls\"],\"text/x-asm\":[\"s\",\"asm\"],\"text/x-c\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"],\"text/x-component\":[\"htc\"],\"text/x-fortran\":[\"f\",\"for\",\"f77\",\"f90\"],\"text/x-handlebars-template\":[\"hbs\"],\"text/x-java-source\":[\"java\"],\"text/x-lua\":[\"lua\"],\"text/x-markdown\":[\"mkd\"],\"text/x-nfo\":[\"nfo\"],\"text/x-opml\":[\"opml\"],\"text/x-org\":[\"*org\"],\"text/x-pascal\":[\"p\",\"pas\"],\"text/x-processing\":[\"pde\"],\"text/x-sass\":[\"sass\"],\"text/x-scss\":[\"scss\"],\"text/x-setext\":[\"etx\"],\"text/x-sfv\":[\"sfv\"],\"text/x-suse-ymp\":[\"ymp\"],\"text/x-uuencode\":[\"uu\"],\"text/x-vcalendar\":[\"vcs\"],\"text/x-vcard\":[\"vcf\"],\"video/vnd.dece.hd\":[\"uvh\",\"uvvh\"],\"video/vnd.dece.mobile\":[\"uvm\",\"uvvm\"],\"video/vnd.dece.pd\":[\"uvp\",\"uvvp\"],\"video/vnd.dece.sd\":[\"uvs\",\"uvvs\"],\"video/vnd.dece.video\":[\"uvv\",\"uvvv\"],\"video/vnd.dvb.file\":[\"dvb\"],\"video/vnd.fvt\":[\"fvt\"],\"video/vnd.mpegurl\":[\"mxu\",\"m4u\"],\"video/vnd.ms-playready.media.pyv\":[\"pyv\"],\"video/vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"video/vnd.vivo\":[\"viv\"],\"video/x-f4v\":[\"f4v\"],\"video/x-fli\":[\"fli\"],\"video/x-flv\":[\"flv\"],\"video/x-m4v\":[\"m4v\"],\"video/x-matroska\":[\"mkv\",\"mk3d\",\"mks\"],\"video/x-mng\":[\"mng\"],\"video/x-ms-asf\":[\"asf\",\"asx\"],\"video/x-ms-vob\":[\"vob\"],\"video/x-ms-wm\":[\"wm\"],\"video/x-ms-wmv\":[\"wmv\"],\"video/x-ms-wmx\":[\"wmx\"],\"video/x-ms-wvx\":[\"wvx\"],\"video/x-msvideo\":[\"avi\"],\"video/x-sgi-movie\":[\"movie\"],\"video/x-smv\":[\"smv\"],\"x-conference/x-cooltalk\":[\"ice\"]};","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","/*!\n * normalize-path \n *\n * Copyright (c) 2014-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nmodule.exports = function(path, stripTrailing) {\n if (typeof path !== 'string') {\n throw new TypeError('expected path to be a string');\n }\n\n if (path === '\\\\' || path === '/') return '/';\n\n var len = path.length;\n if (len <= 1) return path;\n\n // ensure that win32 namespaces has two leading slashes, so that the path is\n // handled properly by the win32 version of path.parse() after being normalized\n // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces\n var prefix = '';\n if (len > 4 && path[3] === '\\\\') {\n var ch = path[2];\n if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\\\\\') {\n path = path.slice(2);\n prefix = '//';\n }\n }\n\n var segs = path.split(/[/\\\\]+/);\n if (stripTrailing !== false && segs[segs.length - 1] === '') {\n segs.pop();\n }\n return prefix + segs.join('/');\n};\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","'use strict';\nconst Queue = require('yocto-queue');\n\nconst pLimit = concurrency => {\n\tif (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, ...args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, ...args) => {\n\t\tqueue.enqueue(run.bind(null, fn, resolve, ...args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, ...args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn generator;\n};\n\nmodule.exports = pLimit;\n","'use strict';\n\nconst pico = require('./lib/picomatch');\nconst utils = require('./lib/utils');\n\nfunction picomatch(glob, options, returnState = false) {\n // default to os.platform()\n if (options && (options.windows === null || options.windows === undefined)) {\n // don't mutate the original options object\n options = { ...options, windows: utils.isWindows() };\n }\n\n return pico(glob, options, returnState);\n}\n\nObject.assign(picomatch, pico);\nmodule.exports = picomatch;\n","'use strict';\n\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\nconst DEFAULT_MAX_EXTGLOB_RECURSION = 0;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\nconst SEP = '/';\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR,\n SEP\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`,\n SEP: '\\\\'\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n __proto__: null,\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n DEFAULT_MAX_EXTGLOB_RECURSION,\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n __proto__: null,\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\nconst splitTopLevel = input => {\n const parts = [];\n let bracket = 0;\n let paren = 0;\n let quote = 0;\n let value = '';\n let escaped = false;\n\n for (const ch of input) {\n if (escaped === true) {\n value += ch;\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n value += ch;\n escaped = true;\n continue;\n }\n\n if (ch === '\"') {\n quote = quote === 1 ? 0 : 1;\n value += ch;\n continue;\n }\n\n if (quote === 0) {\n if (ch === '[') {\n bracket++;\n } else if (ch === ']' && bracket > 0) {\n bracket--;\n } else if (bracket === 0) {\n if (ch === '(') {\n paren++;\n } else if (ch === ')' && paren > 0) {\n paren--;\n } else if (ch === '|' && paren === 0) {\n parts.push(value);\n value = '';\n continue;\n }\n }\n }\n\n value += ch;\n }\n\n parts.push(value);\n return parts;\n};\n\nconst isPlainBranch = branch => {\n let escaped = false;\n\n for (const ch of branch) {\n if (escaped === true) {\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n escaped = true;\n continue;\n }\n\n if (/[?*+@!()[\\]{}]/.test(ch)) {\n return false;\n }\n }\n\n return true;\n};\n\nconst normalizeSimpleBranch = branch => {\n let value = branch.trim();\n let changed = true;\n\n while (changed === true) {\n changed = false;\n\n if (/^@\\([^\\\\()[\\]{}|]+\\)$/.test(value)) {\n value = value.slice(2, -1);\n changed = true;\n }\n }\n\n if (!isPlainBranch(value)) {\n return;\n }\n\n return value.replace(/\\\\(.)/g, '$1');\n};\n\nconst hasRepeatedCharPrefixOverlap = branches => {\n const values = branches.map(normalizeSimpleBranch).filter(Boolean);\n\n for (let i = 0; i < values.length; i++) {\n for (let j = i + 1; j < values.length; j++) {\n const a = values[i];\n const b = values[j];\n const char = a[0];\n\n if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) {\n continue;\n }\n\n if (a === b || a.startsWith(b) || b.startsWith(a)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nconst parseRepeatedExtglob = (pattern, requireEnd = true) => {\n if ((pattern[0] !== '+' && pattern[0] !== '*') || pattern[1] !== '(') {\n return;\n }\n\n let bracket = 0;\n let paren = 0;\n let quote = 0;\n let escaped = false;\n\n for (let i = 1; i < pattern.length; i++) {\n const ch = pattern[i];\n\n if (escaped === true) {\n escaped = false;\n continue;\n }\n\n if (ch === '\\\\') {\n escaped = true;\n continue;\n }\n\n if (ch === '\"') {\n quote = quote === 1 ? 0 : 1;\n continue;\n }\n\n if (quote === 1) {\n continue;\n }\n\n if (ch === '[') {\n bracket++;\n continue;\n }\n\n if (ch === ']' && bracket > 0) {\n bracket--;\n continue;\n }\n\n if (bracket > 0) {\n continue;\n }\n\n if (ch === '(') {\n paren++;\n continue;\n }\n\n if (ch === ')') {\n paren--;\n\n if (paren === 0) {\n if (requireEnd === true && i !== pattern.length - 1) {\n return;\n }\n\n return {\n type: pattern[0],\n body: pattern.slice(2, i),\n end: i\n };\n }\n }\n }\n};\n\nconst getStarExtglobSequenceOutput = pattern => {\n let index = 0;\n const chars = [];\n\n while (index < pattern.length) {\n const match = parseRepeatedExtglob(pattern.slice(index), false);\n\n if (!match || match.type !== '*') {\n return;\n }\n\n const branches = splitTopLevel(match.body).map(branch => branch.trim());\n if (branches.length !== 1) {\n return;\n }\n\n const branch = normalizeSimpleBranch(branches[0]);\n if (!branch || branch.length !== 1) {\n return;\n }\n\n chars.push(branch);\n index += match.end + 1;\n }\n\n if (chars.length < 1) {\n return;\n }\n\n const source = chars.length === 1\n ? utils.escapeRegex(chars[0])\n : `[${chars.map(ch => utils.escapeRegex(ch)).join('')}]`;\n\n return `${source}*`;\n};\n\nconst repeatedExtglobRecursion = pattern => {\n let depth = 0;\n let value = pattern.trim();\n let match = parseRepeatedExtglob(value);\n\n while (match) {\n depth++;\n value = match.body.trim();\n match = parseRepeatedExtglob(value);\n }\n\n return depth;\n};\n\nconst analyzeRepeatedExtglob = (body, options) => {\n if (options.maxExtglobRecursion === false) {\n return { risky: false };\n }\n\n const max =\n typeof options.maxExtglobRecursion === 'number'\n ? options.maxExtglobRecursion\n : constants.DEFAULT_MAX_EXTGLOB_RECURSION;\n\n const branches = splitTopLevel(body).map(branch => branch.trim());\n\n if (branches.length > 1) {\n if (\n branches.some(branch => branch === '') ||\n branches.some(branch => /^[*?]+$/.test(branch)) ||\n hasRepeatedCharPrefixOverlap(branches)\n ) {\n return { risky: true };\n }\n }\n\n for (const branch of branches) {\n const safeOutput = getStarExtglobSequenceOutput(branch);\n if (safeOutput) {\n return { risky: true, safeOutput };\n }\n\n if (repeatedExtglobRecursion(branch) > max) {\n return { risky: true };\n }\n }\n\n return { risky: false };\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(opts.windows);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.output = (prev.output || prev.value) + tok.value;\n prev.value += tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n token.startIndex = state.index;\n token.tokensIndex = tokens.length;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n const literal = input.slice(token.startIndex, state.index + 1);\n const body = input.slice(token.startIndex + 2, state.index);\n const analysis = analyzeRepeatedExtglob(body, opts);\n\n if ((token.type === 'plus' || token.type === 'star') && analysis.risky) {\n const safeOutput = analysis.safeOutput\n ? (token.output ? '' : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput)\n : undefined;\n const open = tokens[token.tokensIndex];\n\n open.type = 'text';\n open.value = literal;\n open.output = safeOutput || utils.escapeRegex(literal);\n\n for (let i = token.tokensIndex + 1; i < tokens.length; i++) {\n tokens[i].value = '';\n tokens[i].output = '';\n delete tokens[i].suffix;\n }\n\n state.output = token.output + open.output;\n state.backtrack = true;\n\n push({ type: 'paren', extglob: true, value, output: '' });\n decrement('parens');\n return;\n }\n\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(opts.windows);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = opts.windows;\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(utils.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.makeRe(state[, options]);\n *\n * const result = picomatch.makeRe('*.js');\n * console.log(result);\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","/*global navigator*/\n'use strict';\n\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.isWindows = () => {\n if (typeof navigator !== 'undefined' && navigator.platform) {\n const platform = navigator.platform.toLowerCase();\n return platform === 'win32' || platform === 'windows';\n }\n\n if (typeof process !== 'undefined' && process.platform) {\n return process.platform === 'win32';\n }\n\n return false;\n};\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n\nexports.basename = (path, { windows } = {}) => {\n const segs = path.split(windows ? /[\\\\/]/ : '/');\n const last = segs[segs.length - 1];\n\n if (last === '') {\n return segs[segs.length - 2];\n }\n\n return last;\n};\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// for now just expose the builtin process global from node.js\nmodule.exports = global.process;\n","/*! queue-microtask. MIT License. Feross Aboukhadijeh */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n","'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const entry = {\n data: v,\n next: this.head\n }\n if (this.length === 0) this.tail = entry\n this.head = entry\n ++this.length\n }\n shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = require('./utils')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options)\n Readable.call(this, options)\n Writable.call(this, options)\n if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = require('./duplexify')\n }\n return duplexify(body, 'body')\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\n stream.removeListener('complete', onfinish)\n stream.removeListener('abort', onclose)\n stream.removeListener('request', onrequest)\n if (stream.req) stream.req.removeListener('finish', onfinish)\n stream.removeListener('end', onlegacyfinish)\n stream.removeListener('close', onlegacyfinish)\n stream.removeListener('finish', onfinish)\n stream.removeListener('end', onend)\n stream.removeListener('error', onerror)\n stream.removeListener('close', onclose)\n }\n if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\n}\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = require('../../ours/util').AbortSignalAny(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = require('./readable')\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = require('./passthrough')\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder/')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n else addChunk(stream, state, chunk, true)\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n } else if (state.destroyed || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\n stream.emit('data', chunk)\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length\n if (addToFront) state.buffer.unshift(chunk)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--\n n |= n >>> 1\n n |= n >>> 2\n n |= n >>> 4\n n |= n >>> 8\n n |= n >>> 16\n n++\n }\n return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // If we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\n if (state.sync) {\n // If we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream)\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false\n state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\n dest.removeListener('error', onerror)\n dest.removeListener('unpipe', onunpipe)\n src.removeListener('end', onend)\n src.removeListener('end', unpipe)\n src.removeListener('data', ondata)\n cleanedUp = true\n\n // If the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\n // When the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false) this.resume()\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true\n state.flowing = false\n state.emittedReadable = false\n debug('on readable', state.length, state.reading)\n if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this)\n }\n return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n else ret = state.buffer.concat(state.length)\n state.buffer.clear()\n } else {\n // read part of list.\n ret = state.buffer.consume(n, state.decoder)\n }\n return ret\n}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // We have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // A flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true\n\n // A flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof require('./duplex')\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\n if (options) {\n if (typeof options.write === 'function') this._write = options.write\n if (typeof options.writev === 'function') this._writev = options.writev\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.final === 'function') this._final = options.final\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len\n state.writecb = cb\n state.writing = true\n state.sync = true\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\n if (typeof chunk === 'function') {\n cb = chunk\n chunk = null\n encoding = null\n } else if (typeof encoding === 'function') {\n cb = encoding\n encoding = null\n }\n let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n","'use strict'\n\nconst { format, inspect } = require('./util/inspect')\nconst { AggregateError: CustomAggregateError } = require('./primordials')\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n const limit = BigInt(2) ** BigInt(32)\n if (input > limit || input < -limit) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n","'use strict'\n\nconst Stream = require('stream')\nif (Stream && process.env.READABLE_STREAM === 'disable') {\n const promises = Stream.promises\n\n // Explicit export naming is needed for ESM\n module.exports._uint8ArrayToBuffer = Stream._uint8ArrayToBuffer\n module.exports._isUint8Array = Stream._isUint8Array\n module.exports.isDisturbed = Stream.isDisturbed\n module.exports.isErrored = Stream.isErrored\n module.exports.isReadable = Stream.isReadable\n module.exports.Readable = Stream.Readable\n module.exports.Writable = Stream.Writable\n module.exports.Duplex = Stream.Duplex\n module.exports.Transform = Stream.Transform\n module.exports.PassThrough = Stream.PassThrough\n module.exports.addAbortSignal = Stream.addAbortSignal\n module.exports.finished = Stream.finished\n module.exports.destroy = Stream.destroy\n module.exports.pipeline = Stream.pipeline\n module.exports.compose = Stream.compose\n Object.defineProperty(Stream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n })\n module.exports.Stream = Stream.Stream\n} else {\n const CustomStream = require('../stream')\n const promises = require('../stream/promises')\n const originalDestroy = CustomStream.Readable.destroy\n module.exports = CustomStream.Readable\n\n // Explicit export naming is needed for ESM\n module.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\n module.exports._isUint8Array = CustomStream._isUint8Array\n module.exports.isDisturbed = CustomStream.isDisturbed\n module.exports.isErrored = CustomStream.isErrored\n module.exports.isReadable = CustomStream.isReadable\n module.exports.Readable = CustomStream.Readable\n module.exports.Writable = CustomStream.Writable\n module.exports.Duplex = CustomStream.Duplex\n module.exports.Transform = CustomStream.Transform\n module.exports.PassThrough = CustomStream.PassThrough\n module.exports.addAbortSignal = CustomStream.addAbortSignal\n module.exports.finished = CustomStream.finished\n module.exports.destroy = CustomStream.destroy\n module.exports.destroy = originalDestroy\n module.exports.pipeline = CustomStream.pipeline\n module.exports.compose = CustomStream.compose\n Object.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n })\n module.exports.Stream = CustomStream.Stream\n}\n\n// Allow default importing\nmodule.exports.default = module.exports\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean,\n Uint8Array\n}\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { format, inspect } = require('./util/inspect')\nconst {\n codes: { ERR_INVALID_ARG_TYPE }\n} = require('./errors')\nconst { kResistStopPropagation, AggregateError, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format,\n inspect,\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n require('events').addAbortListener ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","'use strict'\n\n/*\n This file is a reduced and adapted version of the main lib/internal/util/inspect.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/util/inspect.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict'\n\n/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n","module.exports = readdirGlob;\n\nconst fs = require('fs');\nconst { EventEmitter } = require('events');\nconst { Minimatch } = require('minimatch');\nconst { resolve } = require('path');\n\nfunction readdir(dir, strict) {\n return new Promise((resolve, reject) => {\n fs.readdir(dir, {withFileTypes: true} ,(err, files) => {\n if(err) {\n switch (err.code) {\n case 'ENOTDIR': // Not a directory\n if(strict) {\n reject(err);\n } else {\n resolve([]);\n }\n break;\n case 'ENOTSUP': // Operation not supported\n case 'ENOENT': // No such file or directory\n case 'ENAMETOOLONG': // Filename too long\n case 'UNKNOWN':\n resolve([]);\n break;\n case 'ELOOP': // Too many levels of symbolic links\n default:\n reject(err);\n break;\n }\n } else {\n resolve(files);\n }\n });\n });\n}\nfunction stat(file, followSymlinks) {\n return new Promise((resolve, reject) => {\n const statFunc = followSymlinks ? fs.stat : fs.lstat;\n statFunc(file, (err, stats) => {\n if(err) {\n switch (err.code) {\n case 'ENOENT':\n if(followSymlinks) {\n // Fallback to lstat to handle broken links as files\n resolve(stat(file, false)); \n } else {\n resolve(null);\n }\n break;\n default:\n resolve(null);\n break;\n }\n } else {\n resolve(stats);\n }\n });\n });\n}\n\nasync function* exploreWalkAsync(dir, path, followSymlinks, useStat, shouldSkip, strict) {\n let files = await readdir(path + dir, strict);\n for(const file of files) {\n let name = file.name;\n if(name === undefined) {\n // undefined file.name means the `withFileTypes` options is not supported by node\n // we have to call the stat function to know if file is directory or not.\n name = file;\n useStat = true;\n }\n const filename = dir + '/' + name;\n const relative = filename.slice(1); // Remove the leading /\n const absolute = path + '/' + relative;\n let stats = null;\n if(useStat || followSymlinks) {\n stats = await stat(absolute, followSymlinks);\n }\n if(!stats && file.name !== undefined) {\n stats = file;\n }\n if(stats === null) {\n stats = { isDirectory: () => false };\n }\n\n if(stats.isDirectory()) {\n if(!shouldSkip(relative)) {\n yield {relative, absolute, stats};\n yield* exploreWalkAsync(filename, path, followSymlinks, useStat, shouldSkip, false);\n }\n } else {\n yield {relative, absolute, stats};\n }\n }\n}\nasync function* explore(path, followSymlinks, useStat, shouldSkip) {\n yield* exploreWalkAsync('', path, followSymlinks, useStat, shouldSkip, true);\n}\n\n\nfunction readOptions(options) {\n return {\n pattern: options.pattern,\n dot: !!options.dot,\n noglobstar: !!options.noglobstar,\n matchBase: !!options.matchBase,\n nocase: !!options.nocase,\n ignore: options.ignore,\n skip: options.skip,\n\n follow: !!options.follow,\n stat: !!options.stat,\n nodir: !!options.nodir,\n mark: !!options.mark,\n silent: !!options.silent,\n absolute: !!options.absolute\n };\n}\n\nclass ReaddirGlob extends EventEmitter {\n constructor(cwd, options, cb) {\n super();\n if(typeof options === 'function') {\n cb = options;\n options = null;\n }\n\n this.options = readOptions(options || {});\n \n this.matchers = [];\n if(this.options.pattern) {\n const matchers = Array.isArray(this.options.pattern) ? this.options.pattern : [this.options.pattern];\n this.matchers = matchers.map( m =>\n new Minimatch(m, {\n dot: this.options.dot,\n noglobstar:this.options.noglobstar,\n matchBase:this.options.matchBase,\n nocase:this.options.nocase\n })\n );\n }\n \n this.ignoreMatchers = [];\n if(this.options.ignore) {\n const ignorePatterns = Array.isArray(this.options.ignore) ? this.options.ignore : [this.options.ignore];\n this.ignoreMatchers = ignorePatterns.map( ignore =>\n new Minimatch(ignore, {dot: true})\n );\n }\n \n this.skipMatchers = [];\n if(this.options.skip) {\n const skipPatterns = Array.isArray(this.options.skip) ? this.options.skip : [this.options.skip];\n this.skipMatchers = skipPatterns.map( skip =>\n new Minimatch(skip, {dot: true})\n );\n }\n\n this.iterator = explore(resolve(cwd || '.'), this.options.follow, this.options.stat, this._shouldSkipDirectory.bind(this));\n this.paused = false;\n this.inactive = false;\n this.aborted = false;\n \n if(cb) {\n this._matches = []; \n this.on('match', match => this._matches.push(this.options.absolute ? match.absolute : match.relative));\n this.on('error', err => cb(err));\n this.on('end', () => cb(null, this._matches));\n }\n\n setTimeout( () => this._next(), 0);\n }\n\n _shouldSkipDirectory(relative) {\n //console.log(relative, this.skipMatchers.some(m => m.match(relative)));\n return this.skipMatchers.some(m => m.match(relative));\n }\n\n _fileMatches(relative, isDirectory) {\n const file = relative + (isDirectory ? '/' : '');\n return (this.matchers.length === 0 || this.matchers.some(m => m.match(file)))\n && !this.ignoreMatchers.some(m => m.match(file))\n && (!this.options.nodir || !isDirectory);\n }\n\n _next() {\n if(!this.paused && !this.aborted) {\n this.iterator.next()\n .then((obj)=> {\n if(!obj.done) {\n const isDirectory = obj.value.stats.isDirectory();\n if(this._fileMatches(obj.value.relative, isDirectory )) {\n let relative = obj.value.relative;\n let absolute = obj.value.absolute;\n if(this.options.mark && isDirectory) {\n relative += '/';\n absolute += '/';\n }\n if(this.options.stat) {\n this.emit('match', {relative, absolute, stat:obj.value.stats});\n } else {\n this.emit('match', {relative, absolute});\n }\n }\n this._next(this.iterator);\n } else {\n this.emit('end');\n }\n })\n .catch((err) => {\n this.abort();\n this.emit('error', err);\n if(!err.code && !this.options.silent) {\n console.error(err);\n }\n });\n } else {\n this.inactive = true;\n }\n }\n\n abort() {\n this.aborted = true;\n }\n\n pause() {\n this.paused = true;\n }\n\n resume() {\n this.paused = false;\n if(this.inactive) {\n this.inactive = false;\n this._next();\n }\n }\n}\n\n\nfunction readdirGlob(pattern, options, cb) {\n return new ReaddirGlob(pattern, options, cb);\n}\nreaddirGlob.ReaddirGlob = ReaddirGlob;","const isWindows = typeof process === 'object' &&\n process &&\n process.platform === 'win32'\nmodule.exports = isWindows ? { sep: '\\\\' } : { sep: '/' }\n","const minimatch = module.exports = (p, pattern, options = {}) => {\n assertValidPattern(pattern)\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\nmodule.exports = minimatch\n\nconst path = require('./lib/path.js')\nminimatch.sep = path.sep\n\nconst GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\nconst expand = require('brace-expansion')\n\nconst plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// \"abc\" -> { a:true, b:true, c:true }\nconst charSet = s => s.split('').reduce((set, c) => {\n set[c] = true\n return set\n}, {})\n\n// characters that need to be escaped in RegExp.\nconst reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// characters that indicate we have to add the pattern start\nconst addPatternStartSet = charSet('[.(')\n\n// normalizes slashes.\nconst slashSplit = /\\/+/\n\nminimatch.filter = (pattern, options = {}) =>\n (p, i, list) => minimatch(p, pattern, options)\n\nconst ext = (a, b = {}) => {\n const t = {}\n Object.keys(a).forEach(k => t[k] = a[k])\n Object.keys(b).forEach(k => t[k] = b[k])\n return t\n}\n\nminimatch.defaults = def => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n const orig = minimatch\n\n const m = (p, pattern, options) => orig(p, pattern, ext(def, options))\n m.Minimatch = class Minimatch extends orig.Minimatch {\n constructor (pattern, options) {\n super(pattern, ext(def, options))\n }\n }\n m.Minimatch.defaults = options => orig.defaults(ext(def, options)).Minimatch\n m.filter = (pattern, options) => orig.filter(pattern, ext(def, options))\n m.defaults = options => orig.defaults(ext(def, options))\n m.makeRe = (pattern, options) => orig.makeRe(pattern, ext(def, options))\n m.braceExpand = (pattern, options) => orig.braceExpand(pattern, ext(def, options))\n m.match = (list, pattern, options) => orig.match(list, pattern, ext(def, options))\n\n return m\n}\n\n\n\n\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = (pattern, options) => braceExpand(pattern, options)\n\nconst braceExpand = (pattern, options = {}) => {\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\nconst MAX_PATTERN_LENGTH = 1024 * 64\nconst assertValidPattern = pattern => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst SUBPARSE = Symbol('subparse')\n\nminimatch.makeRe = (pattern, options) =>\n new Minimatch(pattern, options || {}).makeRe()\n\nminimatch.match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options)\n list = list.filter(f => mm.match(f))\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\n// replace stuff like \\* with *\nconst globUnescape = s => s.replace(/\\\\(.)/g, '$1')\nconst charUnescape = s => s.replace(/\\\\([^-\\]])/g, '$1')\nconst regExpEscape = s => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\nconst braExpEscape = s => s.replace(/[[\\]\\\\]/g, '\\\\$&')\n\nclass Minimatch {\n constructor (pattern, options) {\n assertValidPattern(pattern)\n\n if (!options) options = {}\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.windowsPathsNoEscape = !!options.windowsPathsNoEscape ||\n options.allowWindowsEscape === false\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/')\n }\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n\n // make the set of regexps etc.\n this.make()\n }\n\n debug () {}\n\n make () {\n const pattern = this.pattern\n const options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n let set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = (...args) => console.error(...args)\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(s => s.split(slashSplit))\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map((s, si, set) => s.map(this.parse, this))\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(s => s.indexOf(false) === -1)\n\n this.debug(this.pattern, set)\n\n this.set = set\n }\n\n parseNegate () {\n if (this.options.nonegate) return\n\n const pattern = this.pattern\n let negate = false\n let negateOffset = 0\n\n for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.slice(negateOffset)\n this.negate = negate\n }\n\n // set partial to true to test if, for example,\n // \"/a/b\" matches the start of \"/*/b/*/d\"\n // Partial means, if you run out of file before you run\n // out of pattern, then that's fine, as long as all\n // the parts match.\n matchOne (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n /* istanbul ignore if */\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n /* istanbul ignore if */\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n hit = f === p\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else /* istanbul ignore else */ if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n return (fi === fl - 1) && (file[fi] === '')\n }\n\n // should be unreachable.\n /* istanbul ignore next */\n throw new Error('wtf?')\n }\n\n braceExpand () {\n return braceExpand(this.pattern, this.options)\n }\n\n parse (pattern, isSub) {\n assertValidPattern(pattern)\n\n const options = this.options\n\n // shortcuts\n if (pattern === '**') {\n if (!options.noglobstar)\n return GLOBSTAR\n else\n pattern = '*'\n }\n if (pattern === '') return ''\n\n let re = ''\n let hasMagic = false\n let escaping = false\n // ? => one single character\n const patternListStack = []\n const negativeLists = []\n let stateChar\n let inClass = false\n let reClassStart = -1\n let classStart = -1\n let cs\n let pl\n let sp\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set. However, if the pattern\n // starts with ., then traversal patterns can match.\n let dotTravAllowed = pattern.charAt(0) === '.'\n let dotFileAllowed = options.dot || dotTravAllowed\n const patternStart = () =>\n dotTravAllowed\n ? ''\n : dotFileAllowed\n ? '(?!(?:^|\\\\/)\\\\.{1,2}(?:$|\\\\/))'\n : '(?!\\\\.)'\n const subPatternStart = (p) =>\n p.charAt(0) === '.'\n ? ''\n : options.dot\n ? '(?!(?:^|\\\\/)\\\\.{1,2}(?:$|\\\\/))'\n : '(?!\\\\.)'\n\n\n const clearStateChar = () => {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n this.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (let i = 0, c; (i < pattern.length) && (c = pattern.charAt(i)); i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping) {\n /* istanbul ignore next - completely not allowed, even escaped. */\n if (c === '/') {\n return false\n }\n\n if (reSpecials[c]) {\n re += '\\\\'\n }\n re += c\n escaping = false\n continue\n }\n\n switch (c) {\n /* istanbul ignore next */\n case '/': {\n // Should already be path-split by now.\n return false\n }\n\n case '\\\\':\n if (inClass && pattern.charAt(i + 1) === '-') {\n re += c\n continue\n }\n\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n this.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(': {\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n const plEntry = {\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close,\n }\n this.debug(this.pattern, '\\t', plEntry)\n patternListStack.push(plEntry)\n // negation is (?:(?!(?:js)(?:))[^/]*)\n re += plEntry.open\n // next entry starts with a dot maybe?\n if (plEntry.start === 0 && plEntry.type !== '!') {\n dotTravAllowed = true\n re += subPatternStart(pattern.slice(i + 1))\n }\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n }\n\n case ')': {\n const plEntry = patternListStack[patternListStack.length - 1]\n if (inClass || !plEntry) {\n re += '\\\\)'\n continue\n }\n patternListStack.pop()\n\n // closing an extglob\n clearStateChar()\n hasMagic = true\n pl = plEntry\n // negation is (?:(?!js)[^/]*)\n // The others are (?:)\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(Object.assign(pl, { reEnd: re.length }))\n }\n continue\n }\n\n case '|': {\n const plEntry = patternListStack[patternListStack.length - 1]\n if (inClass || !plEntry) {\n re += '\\\\|'\n continue\n }\n\n clearStateChar()\n re += '|'\n // next subpattern can start with a dot?\n if (plEntry.start === 0 && plEntry.type !== '!') {\n dotTravAllowed = true\n re += subPatternStart(pattern.slice(i + 1))\n }\n continue\n }\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n continue\n }\n\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + braExpEscape(charUnescape(cs)) + ']')\n // looks good, finish up the class.\n re += c\n } catch (er) {\n // out of order ranges in JS are errors, but in glob syntax,\n // they're just a range that matches nothing.\n re = re.substring(0, reClassStart) + '(?:$.)' // match nothing ever\n }\n hasMagic = true\n inClass = false\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (reSpecials[c] && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n break\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.slice(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substring(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n let tail\n tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, (_, $1, $2) => {\n /* istanbul ignore else - should already be done */\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n const t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n const addPatternStart = addPatternStartSet[re.charAt(0)]\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (let n = negativeLists.length - 1; n > -1; n--) {\n const nl = negativeLists[n]\n\n const nlBefore = re.slice(0, nl.reStart)\n const nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n let nlAfter = re.slice(nl.reEnd)\n const nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n const closeParensBefore = nlBefore.split(')').length\n const openParensBefore = nlBefore.split('(').length - closeParensBefore\n let cleanAfter = nlAfter\n for (let i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n const dollar = nlAfter === '' && isSub !== SUBPARSE ? '(?:$|\\\\/)' : ''\n\n re = nlBefore + nlFirst + nlAfter + dollar + nlLast\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart() + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // if it's nocase, and the lcase/uppercase don't match, it's magic\n if (options.nocase && !hasMagic) {\n hasMagic = pattern.toUpperCase() !== pattern.toLowerCase()\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n const flags = options.nocase ? 'i' : ''\n try {\n return Object.assign(new RegExp('^' + re + '$', flags), {\n _glob: pattern,\n _src: re,\n })\n } catch (er) /* istanbul ignore next - should be impossible */ {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n }\n\n makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n const set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n const options = this.options\n\n const twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n const flags = options.nocase ? 'i' : ''\n\n // coalesce globstars and regexpify non-globstar patterns\n // if it's the only item, then we just do one twoStar\n // if it's the first, and there are more, prepend (\\/|twoStar\\/)? to next\n // if it's the last, append (\\/twoStar|) to previous\n // if it's in the middle, append (\\/|\\/twoStar\\/) to previous\n // then filter out GLOBSTAR symbols\n let re = set.map(pattern => {\n pattern = pattern.map(p =>\n typeof p === 'string' ? regExpEscape(p)\n : p === GLOBSTAR ? GLOBSTAR\n : p._src\n ).reduce((set, p) => {\n if (!(set[set.length - 1] === GLOBSTAR && p === GLOBSTAR)) {\n set.push(p)\n }\n return set\n }, [])\n pattern.forEach((p, i) => {\n if (p !== GLOBSTAR || pattern[i-1] === GLOBSTAR) {\n return\n }\n if (i === 0) {\n if (pattern.length > 1) {\n pattern[i+1] = '(?:\\\\\\/|' + twoStar + '\\\\\\/)?' + pattern[i+1]\n } else {\n pattern[i] = twoStar\n }\n } else if (i === pattern.length - 1) {\n pattern[i-1] += '(?:\\\\\\/|' + twoStar + ')?'\n } else {\n pattern[i-1] += '(?:\\\\\\/|\\\\\\/' + twoStar + '\\\\\\/)' + pattern[i+1]\n pattern[i+1] = GLOBSTAR\n }\n })\n return pattern.filter(p => p !== GLOBSTAR).join('/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) /* istanbul ignore next - should be impossible */ {\n this.regexp = false\n }\n return this.regexp\n }\n\n match (f, partial = this.partial) {\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n const options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n const set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n let filename\n for (let i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (let i = 0; i < set.length; i++) {\n const pattern = set[i]\n let file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n const hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n }\n\n static defaults (def) {\n return minimatch.defaults(def).Minimatch\n }\n}\n\nminimatch.Minimatch = Minimatch\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReaddirpStream = exports.EntryTypes = void 0;\nexports.readdirp = readdirp;\nexports.readdirpPromise = readdirpPromise;\nconst promises_1 = require(\"node:fs/promises\");\nconst node_stream_1 = require(\"node:stream\");\nconst node_path_1 = require(\"node:path\");\nexports.EntryTypes = {\n FILE_TYPE: 'files',\n DIR_TYPE: 'directories',\n FILE_DIR_TYPE: 'files_directories',\n EVERYTHING_TYPE: 'all',\n};\nconst defaultOptions = {\n root: '.',\n fileFilter: (_entryInfo) => true,\n directoryFilter: (_entryInfo) => true,\n type: exports.EntryTypes.FILE_TYPE,\n lstat: false,\n depth: 2147483648,\n alwaysStat: false,\n highWaterMark: 4096,\n};\nObject.freeze(defaultOptions);\nconst RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR';\nconst NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]);\nconst ALL_TYPES = [\n exports.EntryTypes.DIR_TYPE,\n exports.EntryTypes.EVERYTHING_TYPE,\n exports.EntryTypes.FILE_DIR_TYPE,\n exports.EntryTypes.FILE_TYPE,\n];\nconst DIR_TYPES = new Set([\n exports.EntryTypes.DIR_TYPE,\n exports.EntryTypes.EVERYTHING_TYPE,\n exports.EntryTypes.FILE_DIR_TYPE,\n]);\nconst FILE_TYPES = new Set([\n exports.EntryTypes.EVERYTHING_TYPE,\n exports.EntryTypes.FILE_DIR_TYPE,\n exports.EntryTypes.FILE_TYPE,\n]);\nconst isNormalFlowError = (error) => NORMAL_FLOW_ERRORS.has(error.code);\nconst wantBigintFsStats = process.platform === 'win32';\nconst emptyFn = (_entryInfo) => true;\nconst normalizeFilter = (filter) => {\n if (filter === undefined)\n return emptyFn;\n if (typeof filter === 'function')\n return filter;\n if (typeof filter === 'string') {\n const fl = filter.trim();\n return (entry) => entry.basename === fl;\n }\n if (Array.isArray(filter)) {\n const trItems = filter.map((item) => item.trim());\n return (entry) => trItems.some((f) => entry.basename === f);\n }\n return emptyFn;\n};\n/** Readable readdir stream, emitting new files as they're being listed. */\nclass ReaddirpStream extends node_stream_1.Readable {\n constructor(options = {}) {\n super({\n objectMode: true,\n autoDestroy: true,\n highWaterMark: options.highWaterMark,\n });\n const opts = { ...defaultOptions, ...options };\n const { root, type } = opts;\n this._fileFilter = normalizeFilter(opts.fileFilter);\n this._directoryFilter = normalizeFilter(opts.directoryFilter);\n const statMethod = opts.lstat ? promises_1.lstat : promises_1.stat;\n // Use bigint stats if it's windows and stat() supports options (node 10+).\n if (wantBigintFsStats) {\n this._stat = (path) => statMethod(path, { bigint: true });\n }\n else {\n this._stat = statMethod;\n }\n this._maxDepth = opts.depth ?? defaultOptions.depth;\n this._wantsDir = type ? DIR_TYPES.has(type) : false;\n this._wantsFile = type ? FILE_TYPES.has(type) : false;\n this._wantsEverything = type === exports.EntryTypes.EVERYTHING_TYPE;\n this._root = (0, node_path_1.resolve)(root);\n this._isDirent = !opts.alwaysStat;\n this._statsProp = this._isDirent ? 'dirent' : 'stats';\n this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent };\n // Launch stream with one parent, the root dir.\n this.parents = [this._exploreDir(root, 1)];\n this.reading = false;\n this.parent = undefined;\n }\n async _read(batch) {\n if (this.reading)\n return;\n this.reading = true;\n try {\n while (!this.destroyed && batch > 0) {\n const par = this.parent;\n const fil = par && par.files;\n if (fil && fil.length > 0) {\n const { path, depth } = par;\n const slice = fil.splice(0, batch).map((dirent) => this._formatEntry(dirent, path));\n const awaited = await Promise.all(slice);\n for (const entry of awaited) {\n if (!entry)\n continue;\n if (this.destroyed)\n return;\n const entryType = await this._getEntryType(entry);\n if (entryType === 'directory' && this._directoryFilter(entry)) {\n if (depth <= this._maxDepth) {\n this.parents.push(this._exploreDir(entry.fullPath, depth + 1));\n }\n if (this._wantsDir) {\n this.push(entry);\n batch--;\n }\n }\n else if ((entryType === 'file' || this._includeAsFile(entry)) &&\n this._fileFilter(entry)) {\n if (this._wantsFile) {\n this.push(entry);\n batch--;\n }\n }\n }\n }\n else {\n const parent = this.parents.pop();\n if (!parent) {\n this.push(null);\n break;\n }\n this.parent = await parent;\n if (this.destroyed)\n return;\n }\n }\n }\n catch (error) {\n this.destroy(error);\n }\n finally {\n this.reading = false;\n }\n }\n async _exploreDir(path, depth) {\n let files;\n try {\n files = await (0, promises_1.readdir)(path, this._rdOptions);\n }\n catch (error) {\n this._onError(error);\n }\n return { files, depth, path };\n }\n async _formatEntry(dirent, path) {\n let entry;\n const basename = this._isDirent ? dirent.name : dirent;\n try {\n const fullPath = (0, node_path_1.resolve)((0, node_path_1.join)(path, basename));\n entry = { path: (0, node_path_1.relative)(this._root, fullPath), fullPath, basename };\n entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);\n }\n catch (err) {\n this._onError(err);\n return;\n }\n return entry;\n }\n _onError(err) {\n if (isNormalFlowError(err) && !this.destroyed) {\n this.emit('warn', err);\n }\n else {\n this.destroy(err);\n }\n }\n async _getEntryType(entry) {\n // entry may be undefined, because a warning or an error were emitted\n // and the statsProp is undefined\n if (!entry && this._statsProp in entry) {\n return '';\n }\n const stats = entry[this._statsProp];\n if (stats.isFile())\n return 'file';\n if (stats.isDirectory())\n return 'directory';\n if (stats && stats.isSymbolicLink()) {\n const full = entry.fullPath;\n try {\n const entryRealPath = await (0, promises_1.realpath)(full);\n const entryRealPathStats = await (0, promises_1.lstat)(entryRealPath);\n if (entryRealPathStats.isFile()) {\n return 'file';\n }\n if (entryRealPathStats.isDirectory()) {\n const len = entryRealPath.length;\n if (full.startsWith(entryRealPath) && full.substr(len, 1) === node_path_1.sep) {\n const recursiveError = new Error(`Circular symlink detected: \"${full}\" points to \"${entryRealPath}\"`);\n // @ts-ignore\n recursiveError.code = RECURSIVE_ERROR_CODE;\n return this._onError(recursiveError);\n }\n return 'directory';\n }\n }\n catch (error) {\n this._onError(error);\n return '';\n }\n }\n }\n _includeAsFile(entry) {\n const stats = entry && entry[this._statsProp];\n return stats && this._wantsEverything && !stats.isDirectory();\n }\n}\nexports.ReaddirpStream = ReaddirpStream;\n/**\n * Streaming version: Reads all files and directories in given root recursively.\n * Consumes ~constant small amount of RAM.\n * @param root Root directory\n * @param options Options to specify root (start directory), filters and recursion depth\n */\nfunction readdirp(root, options = {}) {\n // @ts-ignore\n let type = options.entryType || options.type;\n if (type === 'both')\n type = exports.EntryTypes.FILE_DIR_TYPE; // backwards-compatibility\n if (type)\n options.type = type;\n if (!root) {\n throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)');\n }\n else if (typeof root !== 'string') {\n throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)');\n }\n else if (type && !ALL_TYPES.includes(type)) {\n throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);\n }\n options.root = root;\n return new ReaddirpStream(options);\n}\n/**\n * Promise version: Reads all files and directories in given root recursively.\n * Compared to streaming version, will consume a lot of RAM e.g. when 1 million files are listed.\n * @returns array of paths and their entry infos\n */\nfunction readdirpPromise(root, options = {}) {\n return new Promise((resolve, reject) => {\n const files = [];\n readdirp(root, options)\n .on('data', (entry) => files.push(entry))\n .on('end', () => resolve(files))\n .on('error', (error) => reject(error));\n });\n}\nexports.default = readdirp;\n","'use strict'\n\nfunction reusify (Constructor) {\n var head = new Constructor()\n var tail = head\n\n function get () {\n var current = head\n\n if (current.next) {\n head = current.next\n } else {\n head = new Constructor()\n tail = head\n }\n\n current.next = null\n\n return current\n }\n\n function release (obj) {\n tail.next = obj\n tail = obj\n }\n\n return {\n get: get,\n release: release\n }\n}\n\nmodule.exports = reusify\n","/*! run-parallel. MIT License. Feross Aboukhadijeh */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n let results, pending, keys\n let isSync = true\n\n if (Array.isArray(tasks)) {\n results = []\n pending = tasks.length\n } else {\n keys = Object.keys(tasks)\n results = {}\n pending = keys.length\n }\n\n function done (err) {\n function end () {\n if (cb) cb(err, results)\n cb = null\n }\n if (isSync) queueMicrotask(end)\n else end()\n }\n\n function each (i, err, result) {\n results[i] = result\n if (--pending === 0 || err) {\n done(err)\n }\n }\n\n if (!pending) {\n // empty\n done(null)\n } else if (keys) {\n // object\n keys.forEach(function (key) {\n tasks[key](function (err, result) { each(key, err, result) })\n })\n } else {\n // array\n tasks.forEach(function (task, i) {\n task(function (err, result) { each(i, err, result) })\n })\n }\n\n isSync = false\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst astralRegex = require('astral-regex');\nconst ansiStyles = require('ansi-styles');\n\nconst ESCAPES = [\n\t'\\u001B',\n\t'\\u009B'\n];\n\nconst wrapAnsi = code => `${ESCAPES[0]}[${code}m`;\n\nconst checkAnsi = (ansiCodes, isEscapes, endAnsiCode) => {\n\tlet output = [];\n\tansiCodes = [...ansiCodes];\n\n\tfor (let ansiCode of ansiCodes) {\n\t\tconst ansiCodeOrigin = ansiCode;\n\t\tif (ansiCode.includes(';')) {\n\t\t\tansiCode = ansiCode.split(';')[0][0] + '0';\n\t\t}\n\n\t\tconst item = ansiStyles.codes.get(Number.parseInt(ansiCode, 10));\n\t\tif (item) {\n\t\t\tconst indexEscape = ansiCodes.indexOf(item.toString());\n\t\t\tif (indexEscape === -1) {\n\t\t\t\toutput.push(wrapAnsi(isEscapes ? item : ansiCodeOrigin));\n\t\t\t} else {\n\t\t\t\tansiCodes.splice(indexEscape, 1);\n\t\t\t}\n\t\t} else if (isEscapes) {\n\t\t\toutput.push(wrapAnsi(0));\n\t\t\tbreak;\n\t\t} else {\n\t\t\toutput.push(wrapAnsi(ansiCodeOrigin));\n\t\t}\n\t}\n\n\tif (isEscapes) {\n\t\toutput = output.filter((element, index) => output.indexOf(element) === index);\n\n\t\tif (endAnsiCode !== undefined) {\n\t\t\tconst fistEscapeCode = wrapAnsi(ansiStyles.codes.get(Number.parseInt(endAnsiCode, 10)));\n\t\t\toutput = output.reduce((current, next) => next === fistEscapeCode ? [next, ...current] : [...current, next], []);\n\t\t}\n\t}\n\n\treturn output.join('');\n};\n\nmodule.exports = (string, begin, end) => {\n\tconst characters = [...string];\n\tconst ansiCodes = [];\n\n\tlet stringEnd = typeof end === 'number' ? end : characters.length;\n\tlet isInsideEscape = false;\n\tlet ansiCode;\n\tlet visible = 0;\n\tlet output = '';\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tlet leftEscape = false;\n\n\t\tif (ESCAPES.includes(character)) {\n\t\t\tconst code = /\\d[^m]*/.exec(string.slice(index, index + 18));\n\t\t\tansiCode = code && code.length > 0 ? code[0] : undefined;\n\n\t\t\tif (visible < stringEnd) {\n\t\t\t\tisInsideEscape = true;\n\n\t\t\t\tif (ansiCode !== undefined) {\n\t\t\t\t\tansiCodes.push(ansiCode);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isInsideEscape && character === 'm') {\n\t\t\tisInsideEscape = false;\n\t\t\tleftEscape = true;\n\t\t}\n\n\t\tif (!isInsideEscape && !leftEscape) {\n\t\t\tvisible++;\n\t\t}\n\n\t\tif (!astralRegex({exact: true}).test(character) && isFullwidthCodePoint(character.codePointAt())) {\n\t\t\tvisible++;\n\n\t\t\tif (typeof end !== 'number') {\n\t\t\t\tstringEnd++;\n\t\t\t}\n\t\t}\n\n\t\tif (visible > begin && visible <= stringEnd) {\n\t\t\toutput += character;\n\t\t} else if (visible === begin && !isInsideEscape && ansiCode !== undefined) {\n\t\t\toutput = checkAnsi(ansiCodes);\n\t\t} else if (visible >= stringEnd) {\n\t\t\toutput += checkAnsi(ansiCodes, true, ansiCode);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn output;\n};\n","/*\nCopyright (c) 2014-2021, Matteo Collina \n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n*/\n\n'use strict'\n\nconst { Transform } = require('stream')\nconst { StringDecoder } = require('string_decoder')\nconst kLast = Symbol('last')\nconst kDecoder = Symbol('decoder')\n\nfunction transform (chunk, enc, cb) {\n let list\n if (this.overflow) { // Line buffer is full. Skip to start of next line.\n const buf = this[kDecoder].write(chunk)\n list = buf.split(this.matcher)\n\n if (list.length === 1) return cb() // Line ending not found. Discard entire chunk.\n\n // Line ending found. Discard trailing fragment of previous line and reset overflow state.\n list.shift()\n this.overflow = false\n } else {\n this[kLast] += this[kDecoder].write(chunk)\n list = this[kLast].split(this.matcher)\n }\n\n this[kLast] = list.pop()\n\n for (let i = 0; i < list.length; i++) {\n try {\n push(this, this.mapper(list[i]))\n } catch (error) {\n return cb(error)\n }\n }\n\n this.overflow = this[kLast].length > this.maxLength\n if (this.overflow && !this.skipOverflow) {\n cb(new Error('maximum buffer reached'))\n return\n }\n\n cb()\n}\n\nfunction flush (cb) {\n // forward any gibberish left in there\n this[kLast] += this[kDecoder].end()\n\n if (this[kLast]) {\n try {\n push(this, this.mapper(this[kLast]))\n } catch (error) {\n return cb(error)\n }\n }\n\n cb()\n}\n\nfunction push (self, val) {\n if (val !== undefined) {\n self.push(val)\n }\n}\n\nfunction noop (incoming) {\n return incoming\n}\n\nfunction split (matcher, mapper, options) {\n // Set defaults for any arguments not supplied.\n matcher = matcher || /\\r?\\n/\n mapper = mapper || noop\n options = options || {}\n\n // Test arguments explicitly.\n switch (arguments.length) {\n case 1:\n // If mapper is only argument.\n if (typeof matcher === 'function') {\n mapper = matcher\n matcher = /\\r?\\n/\n // If options is only argument.\n } else if (typeof matcher === 'object' && !(matcher instanceof RegExp) && !matcher[Symbol.split]) {\n options = matcher\n matcher = /\\r?\\n/\n }\n break\n\n case 2:\n // If mapper and options are arguments.\n if (typeof matcher === 'function') {\n options = mapper\n mapper = matcher\n matcher = /\\r?\\n/\n // If matcher and options are arguments.\n } else if (typeof mapper === 'object') {\n options = mapper\n mapper = noop\n }\n }\n\n options = Object.assign({}, options)\n options.autoDestroy = true\n options.transform = transform\n options.flush = flush\n options.readableObjectMode = true\n\n const stream = new Transform(options)\n\n stream[kLast] = ''\n stream[kDecoder] = new StringDecoder('utf8')\n stream.matcher = matcher\n stream.mapper = mapper\n stream.maxLength = options.maxLength\n stream.skipOverflow = options.skipOverflow || false\n stream.overflow = false\n stream._destroy = function (err, cb) {\n // Weird Node v12 bug that we need to work around\n this._writableState.errorEmitted = false\n cb(err)\n }\n\n return stream\n}\n\nmodule.exports = split\n","const { EventEmitter } = require('events')\nconst STREAM_DESTROYED = new Error('Stream was destroyed')\nconst PREMATURE_CLOSE = new Error('Premature close')\n\nconst FIFO = require('fast-fifo')\nconst TextDecoder = require('text-decoder')\n\n// if we do a future major, expect queue microtask to be there always, for now a bit defensive\nconst qmt = typeof queueMicrotask === 'undefined' ? fn => global.process.nextTick(fn) : queueMicrotask\n\n/* eslint-disable no-multi-spaces */\n\n// 29 bits used total (4 from shared, 14 from read, and 11 from write)\nconst MAX = ((1 << 29) - 1)\n\n// Shared state\nconst OPENING = 0b0001\nconst PREDESTROYING = 0b0010\nconst DESTROYING = 0b0100\nconst DESTROYED = 0b1000\n\nconst NOT_OPENING = MAX ^ OPENING\nconst NOT_PREDESTROYING = MAX ^ PREDESTROYING\n\n// Read state (4 bit offset from shared state)\nconst READ_ACTIVE = 0b00000000000001 << 4\nconst READ_UPDATING = 0b00000000000010 << 4\nconst READ_PRIMARY = 0b00000000000100 << 4\nconst READ_QUEUED = 0b00000000001000 << 4\nconst READ_RESUMED = 0b00000000010000 << 4\nconst READ_PIPE_DRAINED = 0b00000000100000 << 4\nconst READ_ENDING = 0b00000001000000 << 4\nconst READ_EMIT_DATA = 0b00000010000000 << 4\nconst READ_EMIT_READABLE = 0b00000100000000 << 4\nconst READ_EMITTED_READABLE = 0b00001000000000 << 4\nconst READ_DONE = 0b00010000000000 << 4\nconst READ_NEXT_TICK = 0b00100000000000 << 4\nconst READ_NEEDS_PUSH = 0b01000000000000 << 4\nconst READ_READ_AHEAD = 0b10000000000000 << 4\n\n// Combined read state\nconst READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED\nconst READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH\nconst READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE\nconst READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED\nconst READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD\n\nconst READ_NOT_ACTIVE = MAX ^ READ_ACTIVE\nconst READ_NON_PRIMARY = MAX ^ READ_PRIMARY\nconst READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH)\nconst READ_PUSHED = MAX ^ READ_NEEDS_PUSH\nconst READ_PAUSED = MAX ^ READ_RESUMED\nconst READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE)\nconst READ_NOT_ENDING = MAX ^ READ_ENDING\nconst READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING\nconst READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK\nconst READ_NOT_UPDATING = MAX ^ READ_UPDATING\nconst READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD\nconst READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD\n\n// Write state (18 bit offset, 4 bit offset from shared state and 14 from read state)\nconst WRITE_ACTIVE = 0b00000000001 << 18\nconst WRITE_UPDATING = 0b00000000010 << 18\nconst WRITE_PRIMARY = 0b00000000100 << 18\nconst WRITE_QUEUED = 0b00000001000 << 18\nconst WRITE_UNDRAINED = 0b00000010000 << 18\nconst WRITE_DONE = 0b00000100000 << 18\nconst WRITE_EMIT_DRAIN = 0b00001000000 << 18\nconst WRITE_NEXT_TICK = 0b00010000000 << 18\nconst WRITE_WRITING = 0b00100000000 << 18\nconst WRITE_FINISHING = 0b01000000000 << 18\nconst WRITE_CORKED = 0b10000000000 << 18\n\nconst WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING)\nconst WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY\nconst WRITE_NOT_FINISHING = MAX ^ (WRITE_ACTIVE | WRITE_FINISHING)\nconst WRITE_DRAINED = MAX ^ WRITE_UNDRAINED\nconst WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED\nconst WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK\nconst WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING\nconst WRITE_NOT_CORKED = MAX ^ WRITE_CORKED\n\n// Combined shared state\nconst ACTIVE = READ_ACTIVE | WRITE_ACTIVE\nconst NOT_ACTIVE = MAX ^ ACTIVE\nconst DONE = READ_DONE | WRITE_DONE\nconst DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING\nconst OPEN_STATUS = DESTROY_STATUS | OPENING\nconst AUTO_DESTROY = DESTROY_STATUS | DONE\nconst NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY\nconst ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK\nconst TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE\nconst IS_OPENING = OPEN_STATUS | TICKING\n\n// Combined shared state and read state\nconst READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE\nconst READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED\nconst READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED\nconst READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE\nconst SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD\nconst READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE\nconst READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY\nconst READ_NEXT_TICK_OR_OPENING = READ_NEXT_TICK | OPENING\n\n// Combined write state\nconst WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED\nconst WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE\nconst WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE\nconst WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED\nconst WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE\nconst WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING\nconst WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE\nconst WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY\nconst WRITE_DROP_DATA = WRITE_FINISHING | WRITE_DONE | DESTROY_STATUS\n\nconst asyncIterator = Symbol.asyncIterator || Symbol('asyncIterator')\n\nclass WritableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark\n this.buffered = 0\n this.error = null\n this.pipeline = null\n this.drains = null // if we add more seldomly used helpers we might them into a subobject so its a single ptr\n this.byteLength = byteLengthWritable || byteLength || defaultByteLength\n this.map = mapWritable || map\n this.afterWrite = afterWrite.bind(this)\n this.afterUpdateNextTick = updateWriteNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & WRITE_DONE) !== 0\n }\n\n push (data) {\n if ((this.stream._duplexState & WRITE_DROP_DATA) !== 0) return false\n if (this.map !== null) data = this.map(data)\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n if (this.buffered < this.highWaterMark) {\n this.stream._duplexState |= WRITE_QUEUED\n return true\n }\n\n this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED\n return false\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED\n\n return data\n }\n\n end (data) {\n if (typeof data === 'function') this.stream.once('finish', data)\n else if (data !== undefined && data !== null) this.push(data)\n this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY\n }\n\n autoBatch (data, cb) {\n const buffer = []\n const stream = this.stream\n\n buffer.push(data)\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) {\n buffer.push(stream._writableState.shift())\n }\n\n if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null)\n stream._writev(buffer, cb)\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= WRITE_UPDATING\n\n do {\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) {\n const data = this.shift()\n stream._duplexState |= WRITE_ACTIVE_AND_WRITING\n stream._write(data, this.afterWrite)\n }\n\n if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= WRITE_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) {\n stream._duplexState = stream._duplexState | WRITE_ACTIVE\n stream._final(afterFinal.bind(this))\n return\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return\n this.stream._duplexState |= WRITE_NEXT_TICK\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) qmt(this.afterUpdateNextTick)\n }\n}\n\nclass ReadableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark\n this.buffered = 0\n this.readAhead = highWaterMark > 0\n this.error = null\n this.pipeline = null\n this.byteLength = byteLengthReadable || byteLength || defaultByteLength\n this.map = mapReadable || map\n this.pipeTo = null\n this.afterRead = afterRead.bind(this)\n this.afterUpdateNextTick = updateReadNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & READ_DONE) !== 0\n }\n\n pipe (pipeTo, cb) {\n if (this.pipeTo !== null) throw new Error('Can only pipe to one destination')\n if (typeof cb !== 'function') cb = null\n\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.pipeTo = pipeTo\n this.pipeline = new Pipeline(this.stream, pipeTo, cb)\n\n if (cb) this.stream.on('error', noop) // We already error handle this so supress crashes\n\n if (isStreamx(pipeTo)) {\n pipeTo._writableState.pipeline = this.pipeline\n if (cb) pipeTo.on('error', noop) // We already error handle this so supress crashes\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline)) // TODO: just call finished from pipeTo itself\n } else {\n const onerror = this.pipeline.done.bind(this.pipeline, pipeTo)\n const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null) // onclose has a weird bool arg\n pipeTo.on('error', onerror)\n pipeTo.on('close', onclose)\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline))\n }\n\n pipeTo.on('drain', afterDrain.bind(this))\n this.stream.emit('piping', pipeTo)\n pipeTo.emit('pipe', this.stream)\n }\n\n push (data) {\n const stream = this.stream\n\n if (data === null) {\n this.highWaterMark = 0\n stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED\n return false\n }\n\n if (this.map !== null) {\n data = this.map(data)\n if (data === null) {\n stream._duplexState &= READ_PUSHED\n return this.buffered < this.highWaterMark\n }\n }\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED\n\n return this.buffered < this.highWaterMark\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= READ_NOT_QUEUED\n return data\n }\n\n unshift (data) {\n const pending = [this.map !== null ? this.map(data) : data]\n while (this.buffered > 0) pending.push(this.shift())\n\n for (let i = 0; i < pending.length - 1; i++) {\n const data = pending[i]\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n }\n\n this.push(pending[pending.length - 1])\n }\n\n read () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_STATUS) === READ_QUEUED) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n return data\n }\n\n if (this.readAhead === false) {\n stream._duplexState |= READ_READ_AHEAD\n this.updateNextTick()\n }\n\n return null\n }\n\n drain () {\n const stream = this.stream\n\n while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n }\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= READ_UPDATING\n\n do {\n this.drain()\n\n while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) {\n stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH\n stream._read(this.afterRead)\n this.drain()\n }\n\n if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) {\n stream._duplexState |= READ_EMITTED_READABLE\n stream.emit('readable')\n }\n\n if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= READ_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) {\n stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING\n stream.emit('end')\n if ((stream._duplexState & AUTO_DESTROY) === DONE) stream._duplexState |= DESTROYING\n if (this.pipeTo !== null) this.pipeTo.end()\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTickIfOpen () {\n if ((this.stream._duplexState & READ_NEXT_TICK_OR_OPENING) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) qmt(this.afterUpdateNextTick)\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) qmt(this.afterUpdateNextTick)\n }\n}\n\nclass TransformState {\n constructor (stream) {\n this.data = null\n this.afterTransform = afterTransform.bind(stream)\n this.afterFinal = null\n }\n}\n\nclass Pipeline {\n constructor (src, dst, cb) {\n this.from = src\n this.to = dst\n this.afterPipe = cb\n this.error = null\n this.pipeToFinished = false\n }\n\n finished () {\n this.pipeToFinished = true\n }\n\n done (stream, err) {\n if (err) this.error = err\n\n if (stream === this.to) {\n this.to = null\n\n if (this.from !== null) {\n if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) {\n this.from.destroy(this.error || new Error('Writable stream closed prematurely'))\n }\n return\n }\n }\n\n if (stream === this.from) {\n this.from = null\n\n if (this.to !== null) {\n if ((stream._duplexState & READ_DONE) === 0) {\n this.to.destroy(this.error || new Error('Readable stream closed before ending'))\n }\n return\n }\n }\n\n if (this.afterPipe !== null) this.afterPipe(this.error)\n this.to = this.from = this.afterPipe = null\n }\n}\n\nfunction afterDrain () {\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.updateCallback()\n}\n\nfunction afterFinal (err) {\n const stream = this.stream\n if (err) stream.destroy(err)\n if ((stream._duplexState & DESTROY_STATUS) === 0) {\n stream._duplexState |= WRITE_DONE\n stream.emit('finish')\n }\n if ((stream._duplexState & AUTO_DESTROY) === DONE) {\n stream._duplexState |= DESTROYING\n }\n\n stream._duplexState &= WRITE_NOT_FINISHING\n\n // no need to wait the extra tick here, so we short circuit that\n if ((stream._duplexState & WRITE_UPDATING) === 0) this.update()\n else this.updateNextTick()\n}\n\nfunction afterDestroy (err) {\n const stream = this.stream\n\n if (!err && this.error !== STREAM_DESTROYED) err = this.error\n if (err) stream.emit('error', err)\n stream._duplexState |= DESTROYED\n stream.emit('close')\n\n const rs = stream._readableState\n const ws = stream._writableState\n\n if (rs !== null && rs.pipeline !== null) rs.pipeline.done(stream, err)\n\n if (ws !== null) {\n while (ws.drains !== null && ws.drains.length > 0) ws.drains.shift().resolve(false)\n if (ws.pipeline !== null) ws.pipeline.done(stream, err)\n }\n}\n\nfunction afterWrite (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n if (this.drains !== null) tickDrains(this.drains)\n\n if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) {\n stream._duplexState &= WRITE_DRAINED\n if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) {\n stream.emit('drain')\n }\n }\n\n this.updateCallback()\n}\n\nfunction afterRead (err) {\n if (err) this.stream.destroy(err)\n this.stream._duplexState &= READ_NOT_ACTIVE\n if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) this.stream._duplexState &= READ_NO_READ_AHEAD\n this.updateCallback()\n}\n\nfunction updateReadNT () {\n if ((this.stream._duplexState & READ_UPDATING) === 0) {\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction updateWriteNT () {\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) {\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction tickDrains (drains) {\n for (let i = 0; i < drains.length; i++) {\n // drains.writes are monotonic, so if one is 0 its always the first one\n if (--drains[i].writes === 0) {\n drains.shift().resolve(true)\n i--\n }\n }\n}\n\nfunction afterOpen (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n\n if ((stream._duplexState & DESTROYING) === 0) {\n if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) stream._duplexState |= READ_PRIMARY\n if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) stream._duplexState |= WRITE_PRIMARY\n stream.emit('open')\n }\n\n stream._duplexState &= NOT_ACTIVE\n\n if (stream._writableState !== null) {\n stream._writableState.updateCallback()\n }\n\n if (stream._readableState !== null) {\n stream._readableState.updateCallback()\n }\n}\n\nfunction afterTransform (err, data) {\n if (data !== undefined && data !== null) this.push(data)\n this._writableState.afterWrite(err)\n}\n\nfunction newListener (name) {\n if (this._readableState !== null) {\n if (name === 'data') {\n this._duplexState |= (READ_EMIT_DATA | READ_RESUMED_READ_AHEAD)\n this._readableState.updateNextTick()\n }\n if (name === 'readable') {\n this._duplexState |= READ_EMIT_READABLE\n this._readableState.updateNextTick()\n }\n }\n\n if (this._writableState !== null) {\n if (name === 'drain') {\n this._duplexState |= WRITE_EMIT_DRAIN\n this._writableState.updateNextTick()\n }\n }\n}\n\nclass Stream extends EventEmitter {\n constructor (opts) {\n super()\n\n this._duplexState = 0\n this._readableState = null\n this._writableState = null\n\n if (opts) {\n if (opts.open) this._open = opts.open\n if (opts.destroy) this._destroy = opts.destroy\n if (opts.predestroy) this._predestroy = opts.predestroy\n if (opts.signal) {\n opts.signal.addEventListener('abort', abort.bind(this))\n }\n }\n\n this.on('newListener', newListener)\n }\n\n _open (cb) {\n cb(null)\n }\n\n _destroy (cb) {\n cb(null)\n }\n\n _predestroy () {\n // does nothing\n }\n\n get readable () {\n return this._readableState !== null ? true : undefined\n }\n\n get writable () {\n return this._writableState !== null ? true : undefined\n }\n\n get destroyed () {\n return (this._duplexState & DESTROYED) !== 0\n }\n\n get destroying () {\n return (this._duplexState & DESTROY_STATUS) !== 0\n }\n\n destroy (err) {\n if ((this._duplexState & DESTROY_STATUS) === 0) {\n if (!err) err = STREAM_DESTROYED\n this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY\n\n if (this._readableState !== null) {\n this._readableState.highWaterMark = 0\n this._readableState.error = err\n }\n if (this._writableState !== null) {\n this._writableState.highWaterMark = 0\n this._writableState.error = err\n }\n\n this._duplexState |= PREDESTROYING\n this._predestroy()\n this._duplexState &= NOT_PREDESTROYING\n\n if (this._readableState !== null) this._readableState.updateNextTick()\n if (this._writableState !== null) this._writableState.updateNextTick()\n }\n }\n}\n\nclass Readable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD\n this._readableState = new ReadableState(this, opts)\n\n if (opts) {\n if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD\n if (opts.read) this._read = opts.read\n if (opts.eagerOpen) this._readableState.updateNextTick()\n if (opts.encoding) this.setEncoding(opts.encoding)\n }\n }\n\n setEncoding (encoding) {\n const dec = new TextDecoder(encoding)\n const map = this._readableState.map || echo\n this._readableState.map = mapOrSkip\n return this\n\n function mapOrSkip (data) {\n const next = dec.push(data)\n return next === '' && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next)\n }\n }\n\n _read (cb) {\n cb(null)\n }\n\n pipe (dest, cb) {\n this._readableState.updateNextTick()\n this._readableState.pipe(dest, cb)\n return dest\n }\n\n read () {\n this._readableState.updateNextTick()\n return this._readableState.read()\n }\n\n push (data) {\n this._readableState.updateNextTickIfOpen()\n return this._readableState.push(data)\n }\n\n unshift (data) {\n this._readableState.updateNextTickIfOpen()\n return this._readableState.unshift(data)\n }\n\n resume () {\n this._duplexState |= READ_RESUMED_READ_AHEAD\n this._readableState.updateNextTick()\n return this\n }\n\n pause () {\n this._duplexState &= (this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED)\n return this\n }\n\n static _fromAsyncIterator (ite, opts) {\n let destroy\n\n const rs = new Readable({\n ...opts,\n read (cb) {\n ite.next().then(push).then(cb.bind(null, null)).catch(cb)\n },\n predestroy () {\n destroy = ite.return()\n },\n destroy (cb) {\n if (!destroy) return cb(null)\n destroy.then(cb.bind(null, null)).catch(cb)\n }\n })\n\n return rs\n\n function push (data) {\n if (data.done) rs.push(null)\n else rs.push(data.value)\n }\n }\n\n static from (data, opts) {\n if (isReadStreamx(data)) return data\n if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts)\n if (!Array.isArray(data)) data = data === undefined ? [] : [data]\n\n let i = 0\n return new Readable({\n ...opts,\n read (cb) {\n this.push(i === data.length ? null : data[i++])\n cb(null)\n }\n })\n }\n\n static isBackpressured (rs) {\n return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark\n }\n\n static isPaused (rs) {\n return (rs._duplexState & READ_RESUMED) === 0\n }\n\n [asyncIterator] () {\n const stream = this\n\n let error = null\n let promiseResolve = null\n let promiseReject = null\n\n this.on('error', (err) => { error = err })\n this.on('readable', onreadable)\n this.on('close', onclose)\n\n return {\n [asyncIterator] () {\n return this\n },\n next () {\n return new Promise(function (resolve, reject) {\n promiseResolve = resolve\n promiseReject = reject\n const data = stream.read()\n if (data !== null) ondata(data)\n else if ((stream._duplexState & DESTROYED) !== 0) ondata(null)\n })\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function onreadable () {\n if (promiseResolve !== null) ondata(stream.read())\n }\n\n function onclose () {\n if (promiseResolve !== null) ondata(null)\n }\n\n function ondata (data) {\n if (promiseReject === null) return\n if (error) promiseReject(error)\n else if (data === null && (stream._duplexState & READ_DONE) === 0) promiseReject(STREAM_DESTROYED)\n else promiseResolve({ value: data, done: data === null })\n promiseReject = promiseResolve = null\n }\n\n function destroy (err) {\n stream.destroy(err)\n return new Promise((resolve, reject) => {\n if (stream._duplexState & DESTROYED) return resolve({ value: undefined, done: true })\n stream.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nclass Writable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | READ_DONE\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n if (opts.eagerOpen) this._writableState.updateNextTick()\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n static isBackpressured (ws) {\n return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0\n }\n\n static drained (ws) {\n if (ws.destroyed) return Promise.resolve(false)\n const state = ws._writableState\n const pending = (isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length)\n const writes = pending + ((ws._duplexState & WRITE_WRITING) ? 1 : 0)\n if (writes === 0) return Promise.resolve(true)\n if (state.drains === null) state.drains = []\n return new Promise((resolve) => {\n state.drains.push({ writes, resolve })\n })\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Duplex extends Readable { // and Writable\n constructor (opts) {\n super(opts)\n\n this._duplexState = OPENING | (this._duplexState & READ_READ_AHEAD)\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Transform extends Duplex {\n constructor (opts) {\n super(opts)\n this._transformState = new TransformState(this)\n\n if (opts) {\n if (opts.transform) this._transform = opts.transform\n if (opts.flush) this._flush = opts.flush\n }\n }\n\n _write (data, cb) {\n if (this._readableState.buffered >= this._readableState.highWaterMark) {\n this._transformState.data = data\n } else {\n this._transform(data, this._transformState.afterTransform)\n }\n }\n\n _read (cb) {\n if (this._transformState.data !== null) {\n const data = this._transformState.data\n this._transformState.data = null\n cb(null)\n this._transform(data, this._transformState.afterTransform)\n } else {\n cb(null)\n }\n }\n\n destroy (err) {\n super.destroy(err)\n if (this._transformState.data !== null) {\n this._transformState.data = null\n this._transformState.afterTransform()\n }\n }\n\n _transform (data, cb) {\n cb(null, data)\n }\n\n _flush (cb) {\n cb(null)\n }\n\n _final (cb) {\n this._transformState.afterFinal = cb\n this._flush(transformAfterFlush.bind(this))\n }\n}\n\nclass PassThrough extends Transform {}\n\nfunction transformAfterFlush (err, data) {\n const cb = this._transformState.afterFinal\n if (err) return cb(err)\n if (data !== null && data !== undefined) this.push(data)\n this.push(null)\n cb(null)\n}\n\nfunction pipelinePromise (...streams) {\n return new Promise((resolve, reject) => {\n return pipeline(...streams, (err) => {\n if (err) return reject(err)\n resolve()\n })\n })\n}\n\nfunction pipeline (stream, ...streams) {\n const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]\n const done = (all.length && typeof all[all.length - 1] === 'function') ? all.pop() : null\n\n if (all.length < 2) throw new Error('Pipeline requires at least 2 streams')\n\n let src = all[0]\n let dest = null\n let error = null\n\n for (let i = 1; i < all.length; i++) {\n dest = all[i]\n\n if (isStreamx(src)) {\n src.pipe(dest, onerror)\n } else {\n errorHandle(src, true, i > 1, onerror)\n src.pipe(dest)\n }\n\n src = dest\n }\n\n if (done) {\n let fin = false\n\n const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy)\n\n dest.on('error', (err) => {\n if (error === null) error = err\n })\n\n dest.on('finish', () => {\n fin = true\n if (!autoDestroy) done(error)\n })\n\n if (autoDestroy) {\n dest.on('close', () => done(error || (fin ? null : PREMATURE_CLOSE)))\n }\n }\n\n return dest\n\n function errorHandle (s, rd, wr, onerror) {\n s.on('error', onerror)\n s.on('close', onclose)\n\n function onclose () {\n if (rd && s._readableState && !s._readableState.ended) return onerror(PREMATURE_CLOSE)\n if (wr && s._writableState && !s._writableState.ended) return onerror(PREMATURE_CLOSE)\n }\n }\n\n function onerror (err) {\n if (!err || error) return\n error = err\n\n for (const s of all) {\n s.destroy(err)\n }\n }\n}\n\nfunction echo (s) {\n return s\n}\n\nfunction isStream (stream) {\n return !!stream._readableState || !!stream._writableState\n}\n\nfunction isStreamx (stream) {\n return typeof stream._duplexState === 'number' && isStream(stream)\n}\n\nfunction isEnded (stream) {\n return !!stream._readableState && stream._readableState.ended\n}\n\nfunction isFinished (stream) {\n return !!stream._writableState && stream._writableState.ended\n}\n\nfunction getStreamError (stream, opts = {}) {\n const err = (stream._readableState && stream._readableState.error) || (stream._writableState && stream._writableState.error)\n\n // avoid implicit errors by default\n return (!opts.all && err === STREAM_DESTROYED) ? null : err\n}\n\nfunction isReadStreamx (stream) {\n return isStreamx(stream) && stream.readable\n}\n\nfunction isDisturbed (stream) {\n return (stream._duplexState & OPENING) !== OPENING || (stream._duplexState & ACTIVE_OR_TICKING) !== 0\n}\n\nfunction isTypedArray (data) {\n return typeof data === 'object' && data !== null && typeof data.byteLength === 'number'\n}\n\nfunction defaultByteLength (data) {\n return isTypedArray(data) ? data.byteLength : 1024\n}\n\nfunction noop () {}\n\nfunction abort () {\n this.destroy(new Error('Stream aborted.'))\n}\n\nfunction isWritev (s) {\n return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev\n}\n\nmodule.exports = {\n pipeline,\n pipelinePromise,\n isStream,\n isStreamx,\n isEnded,\n isFinished,\n isDisturbed,\n getStreamError,\n Stream,\n Writable,\n Readable,\n Duplex,\n Transform,\n // Export PassThrough for compatibility with Node.js core's stream module\n PassThrough\n}\n","'use strict';\nconst stripAnsi = require('strip-ansi');\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst emojiRegex = require('emoji-regex');\n\nconst stringWidth = string => {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), ' ');\n\n\tlet width = 0;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst code = string.codePointAt(i);\n\n\t\t// Ignore control characters\n\t\tif (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (code >= 0x300 && code <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Surrogates\n\t\tif (code > 0xFFFF) {\n\t\t\ti++;\n\t\t}\n\n\t\twidth += isFullwidthCodePoint(code) ? 2 : 1;\n\t}\n\n\treturn width;\n};\n\nmodule.exports = stringWidth;\n// TODO: remove this in the next major version\nmodule.exports.default = stringWidth;\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/;\n// const octRegex = /^0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n \nconst consider = {\n hex : true,\n // oct: false,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n eNotation: true,\n //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n options = Object.assign({}, consider, options );\n if(!str || typeof str !== \"string\" ) return str;\n \n let trimmedStr = str.trim();\n \n if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if(str===\"0\") return 0;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return parse_int(trimmedStr, 16);\n // }else if (options.oct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n }else if (trimmedStr.search(/[eE]/)!== -1) { //eNotation\n const notation = trimmedStr.match(/^([-\\+])?(0*)([0-9]*(\\.[0-9]*)?[eE][-\\+]?[0-9]+)$/); \n // +00.123 => [ , '+', '00', '.123', ..\n if(notation){\n // console.log(notation)\n if(options.leadingZeros){ //accept with leading zeros\n trimmedStr = (notation[1] || \"\") + notation[3];\n }else{\n if(notation[2] === \"0\" && notation[3][0]=== \".\"){ //valid number\n }else{\n return str;\n }\n }\n return options.eNotation ? Number(trimmedStr) : str;\n }else{\n return str;\n }\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n }else{\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n // +00.123 => [ , '+', '00', '.123', ..\n if(match){\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n //trim ending zeros for floating number\n \n if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n else if(options.leadingZeros && leadingZeros===str) return 0; //00\n \n else{//no leading zeros or leading zeros are allowed\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n\n if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n if(options.eNotation) return num;\n else return str;\n }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n else return str;\n }\n \n if(leadingZeros){\n return (numTrimmedByZeros === numStr) || (sign+numTrimmedByZeros === numStr) ? num : str\n }else {\n return (trimmedStr === numStr) || (trimmedStr === sign+numStr) ? num : str\n }\n }\n }else{ //non-numeric string\n return str;\n }\n }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n if(numStr && numStr.indexOf(\".\") !== -1){//float\n numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n if(numStr === \".\") numStr = \"0\";\n else if(numStr[0] === \".\") numStr = \"0\"+numStr;\n else if(numStr[numStr.length-1] === \".\") numStr = numStr.substr(0,numStr.length-1);\n return numStr;\n }\n return numStr;\n}\n\nfunction parse_int(numStr, base){\n //polyfill\n if(parseInt) return parseInt(numStr, base);\n else if(Number.parseInt) return Number.parseInt(numStr, base);\n else if(window && window.parseInt) return window.parseInt(numStr, base);\n else throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")\n}\n\nmodule.exports = toNumber;","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignVerticalRangeContent = exports.wrapRangeContent = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst alignString_1 = require(\"./alignString\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst wrapCell_1 = require(\"./wrapCell\");\n/**\n * Fill content into all cells in range in order to calculate total height\n */\nconst wrapRangeContent = (rangeConfig, rangeWidth, context) => {\n const { topLeft, paddingRight, paddingLeft, truncate, wrapWord, alignment } = rangeConfig;\n const originalContent = context.rows[topLeft.row][topLeft.col];\n const contentWidth = rangeWidth - paddingLeft - paddingRight;\n return (0, wrapCell_1.wrapCell)((0, truncateTableData_1.truncateString)(originalContent, truncate), contentWidth, wrapWord).map((line) => {\n const alignedLine = (0, alignString_1.alignString)(line, contentWidth, alignment);\n return (0, padTableData_1.padString)(alignedLine, paddingLeft, paddingRight);\n });\n};\nexports.wrapRangeContent = wrapRangeContent;\nconst alignVerticalRangeContent = (range, content, context) => {\n const { rows, drawHorizontalLine, rowHeights } = context;\n const { topLeft, bottomRight, verticalAlignment } = range;\n // They are empty before calculateRowHeights function run\n if (rowHeights.length === 0) {\n return [];\n }\n const totalCellHeight = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, bottomRight.row + 1));\n const totalBorderHeight = bottomRight.row - topLeft.row;\n const hiddenHorizontalBorderCount = (0, utils_1.sequence)(topLeft.row + 1, bottomRight.row).filter((horizontalBorderIndex) => {\n return !drawHorizontalLine(horizontalBorderIndex, rows.length);\n }).length;\n const availableRangeHeight = totalCellHeight + totalBorderHeight - hiddenHorizontalBorderCount;\n return (0, mapDataUsingRowHeights_1.padCellVertically)(content, availableRangeHeight, verticalAlignment).map((line) => {\n if (line.length === 0) {\n return ' '.repeat((0, string_width_1.default)(content[0]));\n }\n return line;\n });\n};\nexports.alignVerticalRangeContent = alignVerticalRangeContent;\n//# sourceMappingURL=alignSpanningCell.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignString = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst utils_1 = require(\"./utils\");\nconst alignLeft = (subject, width) => {\n return subject + ' '.repeat(width);\n};\nconst alignRight = (subject, width) => {\n return ' '.repeat(width) + subject;\n};\nconst alignCenter = (subject, width) => {\n return ' '.repeat(Math.floor(width / 2)) + subject + ' '.repeat(Math.ceil(width / 2));\n};\nconst alignJustify = (subject, width) => {\n const spaceSequenceCount = (0, utils_1.countSpaceSequence)(subject);\n if (spaceSequenceCount === 0) {\n return alignLeft(subject, width);\n }\n const addingSpaces = (0, utils_1.distributeUnevenly)(width, spaceSequenceCount);\n if (Math.max(...addingSpaces) > 3) {\n return alignLeft(subject, width);\n }\n let spaceSequenceIndex = 0;\n return subject.replace(/\\s+/g, (groupSpace) => {\n return groupSpace + ' '.repeat(addingSpaces[spaceSequenceIndex++]);\n });\n};\n/**\n * Pads a string to the left and/or right to position the subject\n * text in a desired alignment within a container.\n */\nconst alignString = (subject, containerWidth, alignment) => {\n const subjectWidth = (0, string_width_1.default)(subject);\n if (subjectWidth === containerWidth) {\n return subject;\n }\n if (subjectWidth > containerWidth) {\n throw new Error('Subject parameter value width cannot be greater than the container width.');\n }\n if (subjectWidth === 0) {\n return ' '.repeat(containerWidth);\n }\n const availableWidth = containerWidth - subjectWidth;\n if (alignment === 'left') {\n return alignLeft(subject, availableWidth);\n }\n if (alignment === 'right') {\n return alignRight(subject, availableWidth);\n }\n if (alignment === 'justify') {\n return alignJustify(subject, availableWidth);\n }\n return alignCenter(subject, availableWidth);\n};\nexports.alignString = alignString;\n//# sourceMappingURL=alignString.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignTableData = void 0;\nconst alignString_1 = require(\"./alignString\");\nconst alignTableData = (rows, config) => {\n return rows.map((row, rowIndex) => {\n return row.map((cell, cellIndex) => {\n var _a;\n const { width, alignment } = config.columns[cellIndex];\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex }, { mapped: true });\n if (containingRange) {\n return cell;\n }\n return (0, alignString_1.alignString)(cell, width, alignment);\n });\n });\n};\nexports.alignTableData = alignTableData;\n//# sourceMappingURL=alignTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateCellHeight = void 0;\nconst wrapCell_1 = require(\"./wrapCell\");\n/**\n * Calculates height of cell content in regard to its width and word wrapping.\n */\nconst calculateCellHeight = (value, columnWidth, useWrapWord = false) => {\n return (0, wrapCell_1.wrapCell)(value, columnWidth, useWrapWord).length;\n};\nexports.calculateCellHeight = calculateCellHeight;\n//# sourceMappingURL=calculateCellHeight.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateMaximumColumnWidths = exports.calculateMaximumCellWidth = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst utils_1 = require(\"./utils\");\nconst calculateMaximumCellWidth = (cell) => {\n return Math.max(...cell.split('\\n').map(string_width_1.default));\n};\nexports.calculateMaximumCellWidth = calculateMaximumCellWidth;\n/**\n * Produces an array of values that describe the largest value length (width) in every column.\n */\nconst calculateMaximumColumnWidths = (rows, spanningCellConfigs = []) => {\n const columnWidths = new Array(rows[0].length).fill(0);\n const rangeCoordinates = spanningCellConfigs.map(utils_1.calculateRangeCoordinate);\n const isSpanningCell = (rowIndex, columnIndex) => {\n return rangeCoordinates.some((rangeCoordinate) => {\n return (0, utils_1.isCellInRange)({ col: columnIndex,\n row: rowIndex }, rangeCoordinate);\n });\n };\n rows.forEach((row, rowIndex) => {\n row.forEach((cell, cellIndex) => {\n if (isSpanningCell(rowIndex, cellIndex)) {\n return;\n }\n columnWidths[cellIndex] = Math.max(columnWidths[cellIndex], (0, exports.calculateMaximumCellWidth)(cell));\n });\n });\n return columnWidths;\n};\nexports.calculateMaximumColumnWidths = calculateMaximumColumnWidths;\n//# sourceMappingURL=calculateMaximumColumnWidths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateOutputColumnWidths = void 0;\nconst calculateOutputColumnWidths = (config) => {\n return config.columns.map((col) => {\n return col.paddingLeft + col.width + col.paddingRight;\n });\n};\nexports.calculateOutputColumnWidths = calculateOutputColumnWidths;\n//# sourceMappingURL=calculateOutputColumnWidths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateRowHeights = void 0;\nconst calculateCellHeight_1 = require(\"./calculateCellHeight\");\nconst utils_1 = require(\"./utils\");\n/**\n * Produces an array of values that describe the largest value length (height) in every row.\n */\nconst calculateRowHeights = (rows, config) => {\n const rowHeights = [];\n for (const [rowIndex, row] of rows.entries()) {\n let rowHeight = 1;\n row.forEach((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex });\n if (!containingRange) {\n const cellHeight = (0, calculateCellHeight_1.calculateCellHeight)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);\n rowHeight = Math.max(rowHeight, cellHeight);\n return;\n }\n const { topLeft, bottomRight, height } = containingRange;\n // bottom-most cell of a range needs to contain all remain lines of spanning cells\n if (rowIndex === bottomRight.row) {\n const totalOccupiedSpanningCellHeight = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row));\n const totalHorizontalBorderHeight = bottomRight.row - topLeft.row;\n const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, bottomRight.row).filter((horizontalBorderIndex) => {\n var _a;\n /* istanbul ignore next */\n return !((_a = config.drawHorizontalLine) === null || _a === void 0 ? void 0 : _a.call(config, horizontalBorderIndex, rows.length));\n }).length;\n const cellHeight = height - totalOccupiedSpanningCellHeight - totalHorizontalBorderHeight + totalHiddenHorizontalBorderHeight;\n rowHeight = Math.max(rowHeight, cellHeight);\n }\n // otherwise, just depend on other sibling cell heights in the row\n });\n rowHeights.push(rowHeight);\n }\n return rowHeights;\n};\nexports.calculateRowHeights = calculateRowHeights;\n//# sourceMappingURL=calculateRowHeights.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateSpanningCellWidth = void 0;\nconst utils_1 = require(\"./utils\");\nconst calculateSpanningCellWidth = (rangeConfig, dependencies) => {\n const { columnsConfig, drawVerticalLine } = dependencies;\n const { topLeft, bottomRight } = rangeConfig;\n const totalWidth = (0, utils_1.sumArray)(columnsConfig.slice(topLeft.col, bottomRight.col + 1).map(({ width }) => {\n return width;\n }));\n const totalPadding = topLeft.col === bottomRight.col ?\n columnsConfig[topLeft.col].paddingRight +\n columnsConfig[bottomRight.col].paddingLeft :\n (0, utils_1.sumArray)(columnsConfig\n .slice(topLeft.col, bottomRight.col + 1)\n .map(({ paddingLeft, paddingRight }) => {\n return paddingLeft + paddingRight;\n }));\n const totalBorderWidths = bottomRight.col - topLeft.col;\n const totalHiddenVerticalBorders = (0, utils_1.sequence)(topLeft.col + 1, bottomRight.col).filter((verticalBorderIndex) => {\n return !drawVerticalLine(verticalBorderIndex, columnsConfig.length);\n }).length;\n return totalWidth + totalPadding + totalBorderWidths - totalHiddenVerticalBorders;\n};\nexports.calculateSpanningCellWidth = calculateSpanningCellWidth;\n//# sourceMappingURL=calculateSpanningCellWidth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createStream = void 0;\nconst alignTableData_1 = require(\"./alignTableData\");\nconst calculateRowHeights_1 = require(\"./calculateRowHeights\");\nconst drawBorder_1 = require(\"./drawBorder\");\nconst drawRow_1 = require(\"./drawRow\");\nconst makeStreamConfig_1 = require(\"./makeStreamConfig\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst stringifyTableData_1 = require(\"./stringifyTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst prepareData = (data, config) => {\n let rows = (0, stringifyTableData_1.stringifyTableData)(data);\n rows = (0, truncateTableData_1.truncateTableData)(rows, (0, utils_1.extractTruncates)(config));\n const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);\n rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);\n rows = (0, alignTableData_1.alignTableData)(rows, config);\n rows = (0, padTableData_1.padTableData)(rows, config);\n return rows;\n};\nconst create = (row, columnWidths, config) => {\n const rows = prepareData([row], config);\n const body = rows.map((literalRow) => {\n return (0, drawRow_1.drawRow)(literalRow, config);\n }).join('');\n let output;\n output = '';\n output += (0, drawBorder_1.drawBorderTop)(columnWidths, config);\n output += body;\n output += (0, drawBorder_1.drawBorderBottom)(columnWidths, config);\n output = output.trimEnd();\n process.stdout.write(output);\n};\nconst append = (row, columnWidths, config) => {\n const rows = prepareData([row], config);\n const body = rows.map((literalRow) => {\n return (0, drawRow_1.drawRow)(literalRow, config);\n }).join('');\n let output = '';\n const bottom = (0, drawBorder_1.drawBorderBottom)(columnWidths, config);\n if (bottom !== '\\n') {\n output = '\\r\\u001B[K';\n }\n output += (0, drawBorder_1.drawBorderJoin)(columnWidths, config);\n output += body;\n output += bottom;\n output = output.trimEnd();\n process.stdout.write(output);\n};\nconst createStream = (userConfig) => {\n const config = (0, makeStreamConfig_1.makeStreamConfig)(userConfig);\n const columnWidths = Object.values(config.columns).map((column) => {\n return column.width + column.paddingLeft + column.paddingRight;\n });\n let empty = true;\n return {\n write: (row) => {\n if (row.length !== config.columnCount) {\n throw new Error('Row cell count does not match the config.columnCount.');\n }\n if (empty) {\n empty = false;\n create(row, columnWidths, config);\n }\n else {\n append(row, columnWidths, config);\n }\n },\n };\n};\nexports.createStream = createStream;\n//# sourceMappingURL=createStream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTableBorderGetter = exports.drawBorderBottom = exports.drawBorderJoin = exports.drawBorderTop = exports.drawBorder = exports.createSeparatorGetter = exports.drawBorderSegments = void 0;\nconst drawContent_1 = require(\"./drawContent\");\nconst drawBorderSegments = (columnWidths, parameters) => {\n const { separator, horizontalBorderIndex, spanningCellManager } = parameters;\n return columnWidths.map((columnWidth, columnIndex) => {\n const normalSegment = separator.body.repeat(columnWidth);\n if (horizontalBorderIndex === undefined) {\n return normalSegment;\n }\n /* istanbul ignore next */\n const range = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange({ col: columnIndex,\n row: horizontalBorderIndex });\n if (!range) {\n return normalSegment;\n }\n const { topLeft } = range;\n // draw border segments as usual for top border of spanning cell\n if (horizontalBorderIndex === topLeft.row) {\n return normalSegment;\n }\n // if for first column/row of spanning cell, just skip\n if (columnIndex !== topLeft.col) {\n return '';\n }\n return range.extractBorderContent(horizontalBorderIndex);\n });\n};\nexports.drawBorderSegments = drawBorderSegments;\nconst createSeparatorGetter = (dependencies) => {\n const { separator, spanningCellManager, horizontalBorderIndex, rowCount } = dependencies;\n // eslint-disable-next-line complexity\n return (verticalBorderIndex, columnCount) => {\n const inSameRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.inSameRange;\n if (horizontalBorderIndex !== undefined && inSameRange) {\n const topCell = { col: verticalBorderIndex,\n row: horizontalBorderIndex - 1 };\n const leftCell = { col: verticalBorderIndex - 1,\n row: horizontalBorderIndex };\n const oppositeCell = { col: verticalBorderIndex - 1,\n row: horizontalBorderIndex - 1 };\n const currentCell = { col: verticalBorderIndex,\n row: horizontalBorderIndex };\n const pairs = [\n [oppositeCell, topCell],\n [topCell, currentCell],\n [currentCell, leftCell],\n [leftCell, oppositeCell],\n ];\n // left side of horizontal border\n if (verticalBorderIndex === 0) {\n if (inSameRange(currentCell, topCell) && separator.bodyJoinOuter) {\n return separator.bodyJoinOuter;\n }\n return separator.left;\n }\n // right side of horizontal border\n if (verticalBorderIndex === columnCount) {\n if (inSameRange(oppositeCell, leftCell) && separator.bodyJoinOuter) {\n return separator.bodyJoinOuter;\n }\n return separator.right;\n }\n // top horizontal border\n if (horizontalBorderIndex === 0) {\n if (inSameRange(currentCell, leftCell)) {\n return separator.body;\n }\n return separator.join;\n }\n // bottom horizontal border\n if (horizontalBorderIndex === rowCount) {\n if (inSameRange(topCell, oppositeCell)) {\n return separator.body;\n }\n return separator.join;\n }\n const sameRangeCount = pairs.map((pair) => {\n return inSameRange(...pair);\n }).filter(Boolean).length;\n // four cells are belongs to different spanning cells\n if (sameRangeCount === 0) {\n return separator.join;\n }\n // belong to one spanning cell\n if (sameRangeCount === 4) {\n return '';\n }\n // belongs to two spanning cell\n if (sameRangeCount === 2) {\n if (inSameRange(...pairs[1]) && inSameRange(...pairs[3]) && separator.bodyJoinInner) {\n return separator.bodyJoinInner;\n }\n return separator.body;\n }\n /* istanbul ignore next */\n if (sameRangeCount === 1) {\n if (!separator.joinRight || !separator.joinLeft || !separator.joinUp || !separator.joinDown) {\n throw new Error(`Can not get border separator for position [${horizontalBorderIndex}, ${verticalBorderIndex}]`);\n }\n if (inSameRange(...pairs[0])) {\n return separator.joinDown;\n }\n if (inSameRange(...pairs[1])) {\n return separator.joinLeft;\n }\n if (inSameRange(...pairs[2])) {\n return separator.joinUp;\n }\n return separator.joinRight;\n }\n /* istanbul ignore next */\n throw new Error('Invalid case');\n }\n if (verticalBorderIndex === 0) {\n return separator.left;\n }\n if (verticalBorderIndex === columnCount) {\n return separator.right;\n }\n return separator.join;\n };\n};\nexports.createSeparatorGetter = createSeparatorGetter;\nconst drawBorder = (columnWidths, parameters) => {\n const borderSegments = (0, exports.drawBorderSegments)(columnWidths, parameters);\n const { drawVerticalLine, horizontalBorderIndex, spanningCellManager } = parameters;\n return (0, drawContent_1.drawContent)({\n contents: borderSegments,\n drawSeparator: drawVerticalLine,\n elementType: 'border',\n rowIndex: horizontalBorderIndex,\n separatorGetter: (0, exports.createSeparatorGetter)(parameters),\n spanningCellManager,\n }) + '\\n';\n};\nexports.drawBorder = drawBorder;\nconst drawBorderTop = (columnWidths, parameters) => {\n const { border } = parameters;\n const result = (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.topBody,\n join: border.topJoin,\n left: border.topLeft,\n right: border.topRight,\n },\n });\n if (result === '\\n') {\n return '';\n }\n return result;\n};\nexports.drawBorderTop = drawBorderTop;\nconst drawBorderJoin = (columnWidths, parameters) => {\n const { border } = parameters;\n return (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.joinBody,\n bodyJoinInner: border.bodyJoin,\n bodyJoinOuter: border.bodyLeft,\n join: border.joinJoin,\n joinDown: border.joinMiddleDown,\n joinLeft: border.joinMiddleLeft,\n joinRight: border.joinMiddleRight,\n joinUp: border.joinMiddleUp,\n left: border.joinLeft,\n right: border.joinRight,\n },\n });\n};\nexports.drawBorderJoin = drawBorderJoin;\nconst drawBorderBottom = (columnWidths, parameters) => {\n const { border } = parameters;\n return (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.bottomBody,\n join: border.bottomJoin,\n left: border.bottomLeft,\n right: border.bottomRight,\n },\n });\n};\nexports.drawBorderBottom = drawBorderBottom;\nconst createTableBorderGetter = (columnWidths, parameters) => {\n return (index, size) => {\n const drawBorderParameters = { ...parameters,\n horizontalBorderIndex: index };\n if (index === 0) {\n return (0, exports.drawBorderTop)(columnWidths, drawBorderParameters);\n }\n else if (index === size) {\n return (0, exports.drawBorderBottom)(columnWidths, drawBorderParameters);\n }\n return (0, exports.drawBorderJoin)(columnWidths, drawBorderParameters);\n };\n};\nexports.createTableBorderGetter = createTableBorderGetter;\n//# sourceMappingURL=drawBorder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawContent = void 0;\nconst drawContent = (parameters) => {\n const { contents, separatorGetter, drawSeparator, spanningCellManager, rowIndex, elementType } = parameters;\n const contentSize = contents.length;\n const result = [];\n if (drawSeparator(0, contentSize)) {\n result.push(separatorGetter(0, contentSize));\n }\n contents.forEach((content, contentIndex) => {\n if (!elementType || elementType === 'border' || elementType === 'row') {\n result.push(content);\n }\n if (elementType === 'cell' && rowIndex === undefined) {\n result.push(content);\n }\n if (elementType === 'cell' && rowIndex !== undefined) {\n /* istanbul ignore next */\n const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange({ col: contentIndex,\n row: rowIndex });\n // when drawing content row, just add a cell when it is a normal cell\n // or belongs to first column of spanning cell\n if (!containingRange || contentIndex === containingRange.topLeft.col) {\n result.push(content);\n }\n }\n // Only append the middle separator if the content is not the last\n if (contentIndex + 1 < contentSize && drawSeparator(contentIndex + 1, contentSize)) {\n const separator = separatorGetter(contentIndex + 1, contentSize);\n if (elementType === 'cell' && rowIndex !== undefined) {\n const currentCell = { col: contentIndex + 1,\n row: rowIndex };\n /* istanbul ignore next */\n const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange(currentCell);\n if (!containingRange || containingRange.topLeft.col === currentCell.col) {\n result.push(separator);\n }\n }\n else {\n result.push(separator);\n }\n }\n });\n if (drawSeparator(contentSize, contentSize)) {\n result.push(separatorGetter(contentSize, contentSize));\n }\n return result.join('');\n};\nexports.drawContent = drawContent;\n//# sourceMappingURL=drawContent.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawRow = void 0;\nconst drawContent_1 = require(\"./drawContent\");\nconst drawRow = (row, config) => {\n const { border, drawVerticalLine, rowIndex, spanningCellManager } = config;\n return (0, drawContent_1.drawContent)({\n contents: row,\n drawSeparator: drawVerticalLine,\n elementType: 'cell',\n rowIndex,\n separatorGetter: (index, columnCount) => {\n if (index === 0) {\n return border.bodyLeft;\n }\n if (index === columnCount) {\n return border.bodyRight;\n }\n return border.bodyJoin;\n },\n spanningCellManager,\n }) + '\\n';\n};\nexports.drawRow = drawRow;\n//# sourceMappingURL=drawRow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawTable = void 0;\nconst drawBorder_1 = require(\"./drawBorder\");\nconst drawContent_1 = require(\"./drawContent\");\nconst drawRow_1 = require(\"./drawRow\");\nconst utils_1 = require(\"./utils\");\nconst drawTable = (rows, outputColumnWidths, rowHeights, config) => {\n const { drawHorizontalLine, singleLine, } = config;\n const contents = (0, utils_1.groupBySizes)(rows, rowHeights).map((group, groupIndex) => {\n return group.map((row) => {\n return (0, drawRow_1.drawRow)(row, { ...config,\n rowIndex: groupIndex });\n }).join('');\n });\n return (0, drawContent_1.drawContent)({ contents,\n drawSeparator: (index, size) => {\n // Top/bottom border\n if (index === 0 || index === size) {\n return drawHorizontalLine(index, size);\n }\n return !singleLine && drawHorizontalLine(index, size);\n },\n elementType: 'row',\n rowIndex: -1,\n separatorGetter: (0, drawBorder_1.createTableBorderGetter)(outputColumnWidths, { ...config,\n rowCount: contents.length }),\n spanningCellManager: config.spanningCellManager });\n};\nexports.drawTable = drawTable;\n//# sourceMappingURL=drawTable.js.map","\"use strict\";\nexports[\"config.json\"] = validate43;\nconst schema13 = {\n \"$id\": \"config.json\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"border\": {\n \"$ref\": \"shared.json#/definitions/borders\"\n },\n \"header\": {\n \"type\": \"object\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\"\n },\n \"alignment\": {\n \"$ref\": \"shared.json#/definitions/alignment\"\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\"content\"],\n \"additionalProperties\": false\n },\n \"columns\": {\n \"$ref\": \"shared.json#/definitions/columns\"\n },\n \"columnDefault\": {\n \"$ref\": \"shared.json#/definitions/column\"\n },\n \"drawVerticalLine\": {\n \"typeof\": \"function\"\n },\n \"drawHorizontalLine\": {\n \"typeof\": \"function\"\n },\n \"singleLine\": {\n \"typeof\": \"boolean\"\n },\n \"spanningCells\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"col\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"row\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"colSpan\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"rowSpan\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"alignment\": {\n \"$ref\": \"shared.json#/definitions/alignment\"\n },\n \"verticalAlignment\": {\n \"$ref\": \"shared.json#/definitions/verticalAlignment\"\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\"row\", \"col\"],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n};\nconst schema15 = {\n \"type\": \"object\",\n \"properties\": {\n \"topBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"headerJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleUp\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleDown\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleRight\": {\n \"$ref\": \"#/definitions/border\"\n }\n },\n \"additionalProperties\": false\n};\nconst func8 = Object.prototype.hasOwnProperty;\nconst schema16 = {\n \"type\": \"string\"\n};\nfunction validate46(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n validate46.errors = vErrors;\n return errors === 0;\n}\nfunction validate45(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(func8.call(schema15.properties, key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.topBody !== undefined) {\n if (!(validate46(data.topBody, {\n instancePath: instancePath + \"/topBody\",\n parentData: data,\n parentDataProperty: \"topBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topJoin !== undefined) {\n if (!(validate46(data.topJoin, {\n instancePath: instancePath + \"/topJoin\",\n parentData: data,\n parentDataProperty: \"topJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topLeft !== undefined) {\n if (!(validate46(data.topLeft, {\n instancePath: instancePath + \"/topLeft\",\n parentData: data,\n parentDataProperty: \"topLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topRight !== undefined) {\n if (!(validate46(data.topRight, {\n instancePath: instancePath + \"/topRight\",\n parentData: data,\n parentDataProperty: \"topRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomBody !== undefined) {\n if (!(validate46(data.bottomBody, {\n instancePath: instancePath + \"/bottomBody\",\n parentData: data,\n parentDataProperty: \"bottomBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomJoin !== undefined) {\n if (!(validate46(data.bottomJoin, {\n instancePath: instancePath + \"/bottomJoin\",\n parentData: data,\n parentDataProperty: \"bottomJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomLeft !== undefined) {\n if (!(validate46(data.bottomLeft, {\n instancePath: instancePath + \"/bottomLeft\",\n parentData: data,\n parentDataProperty: \"bottomLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomRight !== undefined) {\n if (!(validate46(data.bottomRight, {\n instancePath: instancePath + \"/bottomRight\",\n parentData: data,\n parentDataProperty: \"bottomRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyLeft !== undefined) {\n if (!(validate46(data.bodyLeft, {\n instancePath: instancePath + \"/bodyLeft\",\n parentData: data,\n parentDataProperty: \"bodyLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyRight !== undefined) {\n if (!(validate46(data.bodyRight, {\n instancePath: instancePath + \"/bodyRight\",\n parentData: data,\n parentDataProperty: \"bodyRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyJoin !== undefined) {\n if (!(validate46(data.bodyJoin, {\n instancePath: instancePath + \"/bodyJoin\",\n parentData: data,\n parentDataProperty: \"bodyJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.headerJoin !== undefined) {\n if (!(validate46(data.headerJoin, {\n instancePath: instancePath + \"/headerJoin\",\n parentData: data,\n parentDataProperty: \"headerJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinBody !== undefined) {\n if (!(validate46(data.joinBody, {\n instancePath: instancePath + \"/joinBody\",\n parentData: data,\n parentDataProperty: \"joinBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinLeft !== undefined) {\n if (!(validate46(data.joinLeft, {\n instancePath: instancePath + \"/joinLeft\",\n parentData: data,\n parentDataProperty: \"joinLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinRight !== undefined) {\n if (!(validate46(data.joinRight, {\n instancePath: instancePath + \"/joinRight\",\n parentData: data,\n parentDataProperty: \"joinRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinJoin !== undefined) {\n if (!(validate46(data.joinJoin, {\n instancePath: instancePath + \"/joinJoin\",\n parentData: data,\n parentDataProperty: \"joinJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleUp !== undefined) {\n if (!(validate46(data.joinMiddleUp, {\n instancePath: instancePath + \"/joinMiddleUp\",\n parentData: data,\n parentDataProperty: \"joinMiddleUp\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleDown !== undefined) {\n if (!(validate46(data.joinMiddleDown, {\n instancePath: instancePath + \"/joinMiddleDown\",\n parentData: data,\n parentDataProperty: \"joinMiddleDown\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleLeft !== undefined) {\n if (!(validate46(data.joinMiddleLeft, {\n instancePath: instancePath + \"/joinMiddleLeft\",\n parentData: data,\n parentDataProperty: \"joinMiddleLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleRight !== undefined) {\n if (!(validate46(data.joinMiddleRight, {\n instancePath: instancePath + \"/joinMiddleRight\",\n parentData: data,\n parentDataProperty: \"joinMiddleRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate45.errors = vErrors;\n return errors === 0;\n}\nconst schema17 = {\n \"type\": \"string\",\n \"enum\": [\"left\", \"right\", \"center\", \"justify\"]\n};\nconst func0 = require(\"ajv/dist/runtime/equal\").default;\nfunction validate68(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!((((data === \"left\") || (data === \"right\")) || (data === \"center\")) || (data === \"justify\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema17.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate68.errors = vErrors;\n return errors === 0;\n}\nconst schema18 = {\n \"oneOf\": [{\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[0-9]+$\": {\n \"$ref\": \"#/definitions/column\"\n }\n },\n \"additionalProperties\": false\n }, {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/column\"\n }\n }]\n};\nconst pattern0 = new RegExp(\"^[0-9]+$\", \"u\");\nconst schema19 = {\n \"type\": \"object\",\n \"properties\": {\n \"alignment\": {\n \"$ref\": \"#/definitions/alignment\"\n },\n \"verticalAlignment\": {\n \"$ref\": \"#/definitions/verticalAlignment\"\n },\n \"width\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"additionalProperties\": false\n};\nfunction validate72(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!((((data === \"left\") || (data === \"right\")) || (data === \"center\")) || (data === \"justify\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema17.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate72.errors = vErrors;\n return errors === 0;\n}\nconst schema21 = {\n \"type\": \"string\",\n \"enum\": [\"top\", \"middle\", \"bottom\"]\n};\nfunction validate74(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!(((data === \"top\") || (data === \"middle\")) || (data === \"bottom\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema21.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate74.errors = vErrors;\n return errors === 0;\n}\nfunction validate71(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate71.errors = vErrors;\n return errors === 0;\n}\nfunction validate70(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n const _errs0 = errors;\n let valid0 = false;\n let passing0 = null;\n const _errs1 = errors;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(pattern0.test(key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/oneOf/0/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n for (const key1 in data) {\n if (pattern0.test(key1)) {\n if (!(validate71(data[key1], {\n instancePath: instancePath + \"/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),\n parentData: data,\n parentDataProperty: key1,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/oneOf/0/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n var _valid0 = _errs1 === errors;\n if (_valid0) {\n valid0 = true;\n passing0 = 0;\n }\n const _errs5 = errors;\n if (Array.isArray(data)) {\n const len0 = data.length;\n for (let i0 = 0; i0 < len0; i0++) {\n if (!(validate71(data[i0], {\n instancePath: instancePath + \"/\" + i0,\n parentData: data,\n parentDataProperty: i0,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err2 = {\n instancePath,\n schemaPath: \"#/oneOf/1/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n var _valid0 = _errs5 === errors;\n if (_valid0 && valid0) {\n valid0 = false;\n passing0 = [passing0, 1];\n }\n else {\n if (_valid0) {\n valid0 = true;\n passing0 = 1;\n }\n }\n if (!valid0) {\n const err3 = {\n instancePath,\n schemaPath: \"#/oneOf\",\n keyword: \"oneOf\",\n params: {\n passingSchemas: passing0\n },\n message: \"must match exactly one schema in oneOf\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n else {\n errors = _errs0;\n if (vErrors !== null) {\n if (_errs0) {\n vErrors.length = _errs0;\n }\n else {\n vErrors = null;\n }\n }\n }\n validate70.errors = vErrors;\n return errors === 0;\n}\nfunction validate79(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate79.errors = vErrors;\n return errors === 0;\n}\nfunction validate84(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!(((data === \"top\") || (data === \"middle\")) || (data === \"bottom\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema21.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate84.errors = vErrors;\n return errors === 0;\n}\nfunction validate43(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n /*# sourceURL=\"config.json\" */ ;\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!((((((((key0 === \"border\") || (key0 === \"header\")) || (key0 === \"columns\")) || (key0 === \"columnDefault\")) || (key0 === \"drawVerticalLine\")) || (key0 === \"drawHorizontalLine\")) || (key0 === \"singleLine\")) || (key0 === \"spanningCells\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.border !== undefined) {\n if (!(validate45(data.border, {\n instancePath: instancePath + \"/border\",\n parentData: data,\n parentDataProperty: \"border\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors);\n errors = vErrors.length;\n }\n }\n if (data.header !== undefined) {\n let data1 = data.header;\n if (data1 && typeof data1 == \"object\" && !Array.isArray(data1)) {\n if (data1.content === undefined) {\n const err1 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"content\"\n },\n message: \"must have required property '\" + \"content\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n for (const key1 in data1) {\n if (!((((((key1 === \"content\") || (key1 === \"alignment\")) || (key1 === \"wrapWord\")) || (key1 === \"truncate\")) || (key1 === \"paddingLeft\")) || (key1 === \"paddingRight\"))) {\n const err2 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key1\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n if (data1.content !== undefined) {\n if (typeof data1.content !== \"string\") {\n const err3 = {\n instancePath: instancePath + \"/header/content\",\n schemaPath: \"#/properties/header/properties/content/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data1.alignment !== undefined) {\n if (!(validate68(data1.alignment, {\n instancePath: instancePath + \"/header/alignment\",\n parentData: data1,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors);\n errors = vErrors.length;\n }\n }\n if (data1.wrapWord !== undefined) {\n if (typeof data1.wrapWord !== \"boolean\") {\n const err4 = {\n instancePath: instancePath + \"/header/wrapWord\",\n schemaPath: \"#/properties/header/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data1.truncate !== undefined) {\n let data5 = data1.truncate;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/header/truncate\",\n schemaPath: \"#/properties/header/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data1.paddingLeft !== undefined) {\n let data6 = data1.paddingLeft;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/header/paddingLeft\",\n schemaPath: \"#/properties/header/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n if (data1.paddingRight !== undefined) {\n let data7 = data1.paddingRight;\n if (!(((typeof data7 == \"number\") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) {\n const err7 = {\n instancePath: instancePath + \"/header/paddingRight\",\n schemaPath: \"#/properties/header/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n }\n }\n else {\n const err8 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err8];\n }\n else {\n vErrors.push(err8);\n }\n errors++;\n }\n }\n if (data.columns !== undefined) {\n if (!(validate70(data.columns, {\n instancePath: instancePath + \"/columns\",\n parentData: data,\n parentDataProperty: \"columns\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate70.errors : vErrors.concat(validate70.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnDefault !== undefined) {\n if (!(validate79(data.columnDefault, {\n instancePath: instancePath + \"/columnDefault\",\n parentData: data,\n parentDataProperty: \"columnDefault\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors);\n errors = vErrors.length;\n }\n }\n if (data.drawVerticalLine !== undefined) {\n if (typeof data.drawVerticalLine != \"function\") {\n const err9 = {\n instancePath: instancePath + \"/drawVerticalLine\",\n schemaPath: \"#/properties/drawVerticalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err9];\n }\n else {\n vErrors.push(err9);\n }\n errors++;\n }\n }\n if (data.drawHorizontalLine !== undefined) {\n if (typeof data.drawHorizontalLine != \"function\") {\n const err10 = {\n instancePath: instancePath + \"/drawHorizontalLine\",\n schemaPath: \"#/properties/drawHorizontalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err10];\n }\n else {\n vErrors.push(err10);\n }\n errors++;\n }\n }\n if (data.singleLine !== undefined) {\n if (typeof data.singleLine != \"boolean\") {\n const err11 = {\n instancePath: instancePath + \"/singleLine\",\n schemaPath: \"#/properties/singleLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err11];\n }\n else {\n vErrors.push(err11);\n }\n errors++;\n }\n }\n if (data.spanningCells !== undefined) {\n let data13 = data.spanningCells;\n if (Array.isArray(data13)) {\n const len0 = data13.length;\n for (let i0 = 0; i0 < len0; i0++) {\n let data14 = data13[i0];\n if (data14 && typeof data14 == \"object\" && !Array.isArray(data14)) {\n if (data14.row === undefined) {\n const err12 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"row\"\n },\n message: \"must have required property '\" + \"row\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err12];\n }\n else {\n vErrors.push(err12);\n }\n errors++;\n }\n if (data14.col === undefined) {\n const err13 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"col\"\n },\n message: \"must have required property '\" + \"col\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err13];\n }\n else {\n vErrors.push(err13);\n }\n errors++;\n }\n for (const key2 in data14) {\n if (!(func8.call(schema13.properties.spanningCells.items.properties, key2))) {\n const err14 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key2\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err14];\n }\n else {\n vErrors.push(err14);\n }\n errors++;\n }\n }\n if (data14.col !== undefined) {\n let data15 = data14.col;\n if (!(((typeof data15 == \"number\") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))) {\n const err15 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/col\",\n schemaPath: \"#/properties/spanningCells/items/properties/col/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err15];\n }\n else {\n vErrors.push(err15);\n }\n errors++;\n }\n if ((typeof data15 == \"number\") && (isFinite(data15))) {\n if (data15 < 0 || isNaN(data15)) {\n const err16 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/col\",\n schemaPath: \"#/properties/spanningCells/items/properties/col/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 0\n },\n message: \"must be >= 0\"\n };\n if (vErrors === null) {\n vErrors = [err16];\n }\n else {\n vErrors.push(err16);\n }\n errors++;\n }\n }\n }\n if (data14.row !== undefined) {\n let data16 = data14.row;\n if (!(((typeof data16 == \"number\") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))) {\n const err17 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/row\",\n schemaPath: \"#/properties/spanningCells/items/properties/row/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err17];\n }\n else {\n vErrors.push(err17);\n }\n errors++;\n }\n if ((typeof data16 == \"number\") && (isFinite(data16))) {\n if (data16 < 0 || isNaN(data16)) {\n const err18 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/row\",\n schemaPath: \"#/properties/spanningCells/items/properties/row/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 0\n },\n message: \"must be >= 0\"\n };\n if (vErrors === null) {\n vErrors = [err18];\n }\n else {\n vErrors.push(err18);\n }\n errors++;\n }\n }\n }\n if (data14.colSpan !== undefined) {\n let data17 = data14.colSpan;\n if (!(((typeof data17 == \"number\") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))) {\n const err19 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/colSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/colSpan/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err19];\n }\n else {\n vErrors.push(err19);\n }\n errors++;\n }\n if ((typeof data17 == \"number\") && (isFinite(data17))) {\n if (data17 < 1 || isNaN(data17)) {\n const err20 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/colSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/colSpan/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err20];\n }\n else {\n vErrors.push(err20);\n }\n errors++;\n }\n }\n }\n if (data14.rowSpan !== undefined) {\n let data18 = data14.rowSpan;\n if (!(((typeof data18 == \"number\") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))) {\n const err21 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/rowSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/rowSpan/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err21];\n }\n else {\n vErrors.push(err21);\n }\n errors++;\n }\n if ((typeof data18 == \"number\") && (isFinite(data18))) {\n if (data18 < 1 || isNaN(data18)) {\n const err22 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/rowSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/rowSpan/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err22];\n }\n else {\n vErrors.push(err22);\n }\n errors++;\n }\n }\n }\n if (data14.alignment !== undefined) {\n if (!(validate68(data14.alignment, {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/alignment\",\n parentData: data14,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors);\n errors = vErrors.length;\n }\n }\n if (data14.verticalAlignment !== undefined) {\n if (!(validate84(data14.verticalAlignment, {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/verticalAlignment\",\n parentData: data14,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate84.errors : vErrors.concat(validate84.errors);\n errors = vErrors.length;\n }\n }\n if (data14.wrapWord !== undefined) {\n if (typeof data14.wrapWord !== \"boolean\") {\n const err23 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/wrapWord\",\n schemaPath: \"#/properties/spanningCells/items/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err23];\n }\n else {\n vErrors.push(err23);\n }\n errors++;\n }\n }\n if (data14.truncate !== undefined) {\n let data22 = data14.truncate;\n if (!(((typeof data22 == \"number\") && (!(data22 % 1) && !isNaN(data22))) && (isFinite(data22)))) {\n const err24 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/truncate\",\n schemaPath: \"#/properties/spanningCells/items/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err24];\n }\n else {\n vErrors.push(err24);\n }\n errors++;\n }\n }\n if (data14.paddingLeft !== undefined) {\n let data23 = data14.paddingLeft;\n if (!(((typeof data23 == \"number\") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))) {\n const err25 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/paddingLeft\",\n schemaPath: \"#/properties/spanningCells/items/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err25];\n }\n else {\n vErrors.push(err25);\n }\n errors++;\n }\n }\n if (data14.paddingRight !== undefined) {\n let data24 = data14.paddingRight;\n if (!(((typeof data24 == \"number\") && (!(data24 % 1) && !isNaN(data24))) && (isFinite(data24)))) {\n const err26 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/paddingRight\",\n schemaPath: \"#/properties/spanningCells/items/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err26];\n }\n else {\n vErrors.push(err26);\n }\n errors++;\n }\n }\n }\n else {\n const err27 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err27];\n }\n else {\n vErrors.push(err27);\n }\n errors++;\n }\n }\n }\n else {\n const err28 = {\n instancePath: instancePath + \"/spanningCells\",\n schemaPath: \"#/properties/spanningCells/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err28];\n }\n else {\n vErrors.push(err28);\n }\n errors++;\n }\n }\n }\n else {\n const err29 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err29];\n }\n else {\n vErrors.push(err29);\n }\n errors++;\n }\n validate43.errors = vErrors;\n return errors === 0;\n}\nexports[\"streamConfig.json\"] = validate86;\nconst schema24 = {\n \"$id\": \"streamConfig.json\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"border\": {\n \"$ref\": \"shared.json#/definitions/borders\"\n },\n \"columns\": {\n \"$ref\": \"shared.json#/definitions/columns\"\n },\n \"columnDefault\": {\n \"$ref\": \"shared.json#/definitions/column\"\n },\n \"columnCount\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"drawVerticalLine\": {\n \"typeof\": \"function\"\n }\n },\n \"required\": [\"columnDefault\", \"columnCount\"],\n \"additionalProperties\": false\n};\nfunction validate87(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(func8.call(schema15.properties, key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.topBody !== undefined) {\n if (!(validate46(data.topBody, {\n instancePath: instancePath + \"/topBody\",\n parentData: data,\n parentDataProperty: \"topBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topJoin !== undefined) {\n if (!(validate46(data.topJoin, {\n instancePath: instancePath + \"/topJoin\",\n parentData: data,\n parentDataProperty: \"topJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topLeft !== undefined) {\n if (!(validate46(data.topLeft, {\n instancePath: instancePath + \"/topLeft\",\n parentData: data,\n parentDataProperty: \"topLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topRight !== undefined) {\n if (!(validate46(data.topRight, {\n instancePath: instancePath + \"/topRight\",\n parentData: data,\n parentDataProperty: \"topRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomBody !== undefined) {\n if (!(validate46(data.bottomBody, {\n instancePath: instancePath + \"/bottomBody\",\n parentData: data,\n parentDataProperty: \"bottomBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomJoin !== undefined) {\n if (!(validate46(data.bottomJoin, {\n instancePath: instancePath + \"/bottomJoin\",\n parentData: data,\n parentDataProperty: \"bottomJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomLeft !== undefined) {\n if (!(validate46(data.bottomLeft, {\n instancePath: instancePath + \"/bottomLeft\",\n parentData: data,\n parentDataProperty: \"bottomLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomRight !== undefined) {\n if (!(validate46(data.bottomRight, {\n instancePath: instancePath + \"/bottomRight\",\n parentData: data,\n parentDataProperty: \"bottomRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyLeft !== undefined) {\n if (!(validate46(data.bodyLeft, {\n instancePath: instancePath + \"/bodyLeft\",\n parentData: data,\n parentDataProperty: \"bodyLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyRight !== undefined) {\n if (!(validate46(data.bodyRight, {\n instancePath: instancePath + \"/bodyRight\",\n parentData: data,\n parentDataProperty: \"bodyRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyJoin !== undefined) {\n if (!(validate46(data.bodyJoin, {\n instancePath: instancePath + \"/bodyJoin\",\n parentData: data,\n parentDataProperty: \"bodyJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.headerJoin !== undefined) {\n if (!(validate46(data.headerJoin, {\n instancePath: instancePath + \"/headerJoin\",\n parentData: data,\n parentDataProperty: \"headerJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinBody !== undefined) {\n if (!(validate46(data.joinBody, {\n instancePath: instancePath + \"/joinBody\",\n parentData: data,\n parentDataProperty: \"joinBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinLeft !== undefined) {\n if (!(validate46(data.joinLeft, {\n instancePath: instancePath + \"/joinLeft\",\n parentData: data,\n parentDataProperty: \"joinLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinRight !== undefined) {\n if (!(validate46(data.joinRight, {\n instancePath: instancePath + \"/joinRight\",\n parentData: data,\n parentDataProperty: \"joinRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinJoin !== undefined) {\n if (!(validate46(data.joinJoin, {\n instancePath: instancePath + \"/joinJoin\",\n parentData: data,\n parentDataProperty: \"joinJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleUp !== undefined) {\n if (!(validate46(data.joinMiddleUp, {\n instancePath: instancePath + \"/joinMiddleUp\",\n parentData: data,\n parentDataProperty: \"joinMiddleUp\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleDown !== undefined) {\n if (!(validate46(data.joinMiddleDown, {\n instancePath: instancePath + \"/joinMiddleDown\",\n parentData: data,\n parentDataProperty: \"joinMiddleDown\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleLeft !== undefined) {\n if (!(validate46(data.joinMiddleLeft, {\n instancePath: instancePath + \"/joinMiddleLeft\",\n parentData: data,\n parentDataProperty: \"joinMiddleLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleRight !== undefined) {\n if (!(validate46(data.joinMiddleRight, {\n instancePath: instancePath + \"/joinMiddleRight\",\n parentData: data,\n parentDataProperty: \"joinMiddleRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate87.errors = vErrors;\n return errors === 0;\n}\nfunction validate109(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n const _errs0 = errors;\n let valid0 = false;\n let passing0 = null;\n const _errs1 = errors;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(pattern0.test(key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/oneOf/0/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n for (const key1 in data) {\n if (pattern0.test(key1)) {\n if (!(validate71(data[key1], {\n instancePath: instancePath + \"/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),\n parentData: data,\n parentDataProperty: key1,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/oneOf/0/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n var _valid0 = _errs1 === errors;\n if (_valid0) {\n valid0 = true;\n passing0 = 0;\n }\n const _errs5 = errors;\n if (Array.isArray(data)) {\n const len0 = data.length;\n for (let i0 = 0; i0 < len0; i0++) {\n if (!(validate71(data[i0], {\n instancePath: instancePath + \"/\" + i0,\n parentData: data,\n parentDataProperty: i0,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err2 = {\n instancePath,\n schemaPath: \"#/oneOf/1/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n var _valid0 = _errs5 === errors;\n if (_valid0 && valid0) {\n valid0 = false;\n passing0 = [passing0, 1];\n }\n else {\n if (_valid0) {\n valid0 = true;\n passing0 = 1;\n }\n }\n if (!valid0) {\n const err3 = {\n instancePath,\n schemaPath: \"#/oneOf\",\n keyword: \"oneOf\",\n params: {\n passingSchemas: passing0\n },\n message: \"must match exactly one schema in oneOf\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n else {\n errors = _errs0;\n if (vErrors !== null) {\n if (_errs0) {\n vErrors.length = _errs0;\n }\n else {\n vErrors = null;\n }\n }\n }\n validate109.errors = vErrors;\n return errors === 0;\n}\nfunction validate113(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate113.errors = vErrors;\n return errors === 0;\n}\nfunction validate86(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n /*# sourceURL=\"streamConfig.json\" */ ;\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n if (data.columnDefault === undefined) {\n const err0 = {\n instancePath,\n schemaPath: \"#/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"columnDefault\"\n },\n message: \"must have required property '\" + \"columnDefault\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (data.columnCount === undefined) {\n const err1 = {\n instancePath,\n schemaPath: \"#/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"columnCount\"\n },\n message: \"must have required property '\" + \"columnCount\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n for (const key0 in data) {\n if (!(((((key0 === \"border\") || (key0 === \"columns\")) || (key0 === \"columnDefault\")) || (key0 === \"columnCount\")) || (key0 === \"drawVerticalLine\"))) {\n const err2 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n if (data.border !== undefined) {\n if (!(validate87(data.border, {\n instancePath: instancePath + \"/border\",\n parentData: data,\n parentDataProperty: \"border\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors);\n errors = vErrors.length;\n }\n }\n if (data.columns !== undefined) {\n if (!(validate109(data.columns, {\n instancePath: instancePath + \"/columns\",\n parentData: data,\n parentDataProperty: \"columns\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate109.errors : vErrors.concat(validate109.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnDefault !== undefined) {\n if (!(validate113(data.columnDefault, {\n instancePath: instancePath + \"/columnDefault\",\n parentData: data,\n parentDataProperty: \"columnDefault\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate113.errors : vErrors.concat(validate113.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnCount !== undefined) {\n let data3 = data.columnCount;\n if (!(((typeof data3 == \"number\") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) {\n const err3 = {\n instancePath: instancePath + \"/columnCount\",\n schemaPath: \"#/properties/columnCount/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n if ((typeof data3 == \"number\") && (isFinite(data3))) {\n if (data3 < 1 || isNaN(data3)) {\n const err4 = {\n instancePath: instancePath + \"/columnCount\",\n schemaPath: \"#/properties/columnCount/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n }\n if (data.drawVerticalLine !== undefined) {\n if (typeof data.drawVerticalLine != \"function\") {\n const err5 = {\n instancePath: instancePath + \"/drawVerticalLine\",\n schemaPath: \"#/properties/drawVerticalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n }\n else {\n const err6 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n validate86.errors = vErrors;\n return errors === 0;\n}\n//# sourceMappingURL=validators.js.map","\"use strict\";\n/* eslint-disable sort-keys-fix/sort-keys-fix */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBorderCharacters = void 0;\nconst getBorderCharacters = (name) => {\n if (name === 'honeywell') {\n return {\n topBody: '═',\n topJoin: '╤',\n topLeft: '╔',\n topRight: '╗',\n bottomBody: '═',\n bottomJoin: '╧',\n bottomLeft: '╚',\n bottomRight: '╝',\n bodyLeft: '║',\n bodyRight: '║',\n bodyJoin: '│',\n headerJoin: '┬',\n joinBody: '─',\n joinLeft: '╟',\n joinRight: '╢',\n joinJoin: '┼',\n joinMiddleDown: '┬',\n joinMiddleUp: '┴',\n joinMiddleLeft: '┤',\n joinMiddleRight: '├',\n };\n }\n if (name === 'norc') {\n return {\n topBody: '─',\n topJoin: '┬',\n topLeft: '┌',\n topRight: '┐',\n bottomBody: '─',\n bottomJoin: '┴',\n bottomLeft: '└',\n bottomRight: '┘',\n bodyLeft: '│',\n bodyRight: '│',\n bodyJoin: '│',\n headerJoin: '┬',\n joinBody: '─',\n joinLeft: '├',\n joinRight: '┤',\n joinJoin: '┼',\n joinMiddleDown: '┬',\n joinMiddleUp: '┴',\n joinMiddleLeft: '┤',\n joinMiddleRight: '├',\n };\n }\n if (name === 'ramac') {\n return {\n topBody: '-',\n topJoin: '+',\n topLeft: '+',\n topRight: '+',\n bottomBody: '-',\n bottomJoin: '+',\n bottomLeft: '+',\n bottomRight: '+',\n bodyLeft: '|',\n bodyRight: '|',\n bodyJoin: '|',\n headerJoin: '+',\n joinBody: '-',\n joinLeft: '|',\n joinRight: '|',\n joinJoin: '|',\n joinMiddleDown: '+',\n joinMiddleUp: '+',\n joinMiddleLeft: '+',\n joinMiddleRight: '+',\n };\n }\n if (name === 'void') {\n return {\n topBody: '',\n topJoin: '',\n topLeft: '',\n topRight: '',\n bottomBody: '',\n bottomJoin: '',\n bottomLeft: '',\n bottomRight: '',\n bodyLeft: '',\n bodyRight: '',\n bodyJoin: '',\n headerJoin: '',\n joinBody: '',\n joinLeft: '',\n joinRight: '',\n joinJoin: '',\n joinMiddleDown: '',\n joinMiddleUp: '',\n joinMiddleLeft: '',\n joinMiddleRight: '',\n };\n }\n throw new Error('Unknown border template \"' + name + '\".');\n};\nexports.getBorderCharacters = getBorderCharacters;\n//# sourceMappingURL=getBorderCharacters.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBorderCharacters = exports.createStream = exports.table = void 0;\nconst createStream_1 = require(\"./createStream\");\nObject.defineProperty(exports, \"createStream\", { enumerable: true, get: function () { return createStream_1.createStream; } });\nconst getBorderCharacters_1 = require(\"./getBorderCharacters\");\nObject.defineProperty(exports, \"getBorderCharacters\", { enumerable: true, get: function () { return getBorderCharacters_1.getBorderCharacters; } });\nconst table_1 = require(\"./table\");\nObject.defineProperty(exports, \"table\", { enumerable: true, get: function () { return table_1.table; } });\n__exportStar(require(\"./types/api\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectHeaderConfig = void 0;\nconst injectHeaderConfig = (rows, config) => {\n var _a;\n let spanningCellConfig = (_a = config.spanningCells) !== null && _a !== void 0 ? _a : [];\n const headerConfig = config.header;\n const adjustedRows = [...rows];\n if (headerConfig) {\n spanningCellConfig = spanningCellConfig.map(({ row, ...rest }) => {\n return { ...rest,\n row: row + 1 };\n });\n const { content, ...headerStyles } = headerConfig;\n spanningCellConfig.unshift({ alignment: 'center',\n col: 0,\n colSpan: rows[0].length,\n paddingLeft: 1,\n paddingRight: 1,\n row: 0,\n wrapWord: false,\n ...headerStyles });\n adjustedRows.unshift([content, ...Array.from({ length: rows[0].length - 1 }).fill('')]);\n }\n return [adjustedRows,\n spanningCellConfig];\n};\nexports.injectHeaderConfig = injectHeaderConfig;\n//# sourceMappingURL=injectHeaderConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeRangeConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst makeRangeConfig = (spanningCellConfig, columnsConfig) => {\n var _a;\n const { topLeft, bottomRight } = (0, utils_1.calculateRangeCoordinate)(spanningCellConfig);\n const cellConfig = {\n ...columnsConfig[topLeft.col],\n ...spanningCellConfig,\n paddingRight: (_a = spanningCellConfig.paddingRight) !== null && _a !== void 0 ? _a : columnsConfig[bottomRight.col].paddingRight,\n };\n return { ...cellConfig,\n bottomRight,\n topLeft };\n};\nexports.makeRangeConfig = makeRangeConfig;\n//# sourceMappingURL=makeRangeConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeStreamConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst validateConfig_1 = require(\"./validateConfig\");\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n */\nconst makeColumnsConfig = (columnCount, columns = {}, columnDefault) => {\n return Array.from({ length: columnCount }).map((_, index) => {\n return {\n alignment: 'left',\n paddingLeft: 1,\n paddingRight: 1,\n truncate: Number.POSITIVE_INFINITY,\n verticalAlignment: 'top',\n wrapWord: false,\n ...columnDefault,\n ...columns[index],\n };\n });\n};\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n */\nconst makeStreamConfig = (config) => {\n (0, validateConfig_1.validateConfig)('streamConfig.json', config);\n if (config.columnDefault.width === undefined) {\n throw new Error('Must provide config.columnDefault.width when creating a stream.');\n }\n return {\n drawVerticalLine: () => {\n return true;\n },\n ...config,\n border: (0, utils_1.makeBorderConfig)(config.border),\n columns: makeColumnsConfig(config.columnCount, config.columns, config.columnDefault),\n };\n};\nexports.makeStreamConfig = makeStreamConfig;\n//# sourceMappingURL=makeStreamConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeTableConfig = void 0;\nconst calculateMaximumColumnWidths_1 = require(\"./calculateMaximumColumnWidths\");\nconst spanningCellManager_1 = require(\"./spanningCellManager\");\nconst utils_1 = require(\"./utils\");\nconst validateConfig_1 = require(\"./validateConfig\");\nconst validateSpanningCellConfig_1 = require(\"./validateSpanningCellConfig\");\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n */\nconst makeColumnsConfig = (rows, columns, columnDefault, spanningCellConfigs) => {\n const columnWidths = (0, calculateMaximumColumnWidths_1.calculateMaximumColumnWidths)(rows, spanningCellConfigs);\n return rows[0].map((_, columnIndex) => {\n return {\n alignment: 'left',\n paddingLeft: 1,\n paddingRight: 1,\n truncate: Number.POSITIVE_INFINITY,\n verticalAlignment: 'top',\n width: columnWidths[columnIndex],\n wrapWord: false,\n ...columnDefault,\n ...columns === null || columns === void 0 ? void 0 : columns[columnIndex],\n };\n });\n};\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n */\nconst makeTableConfig = (rows, config = {}, injectedSpanningCellConfig) => {\n var _a, _b, _c, _d, _e;\n (0, validateConfig_1.validateConfig)('config.json', config);\n (0, validateSpanningCellConfig_1.validateSpanningCellConfig)(rows, (_a = config.spanningCells) !== null && _a !== void 0 ? _a : []);\n const spanningCellConfigs = (_b = injectedSpanningCellConfig !== null && injectedSpanningCellConfig !== void 0 ? injectedSpanningCellConfig : config.spanningCells) !== null && _b !== void 0 ? _b : [];\n const columnsConfig = makeColumnsConfig(rows, config.columns, config.columnDefault, spanningCellConfigs);\n const drawVerticalLine = (_c = config.drawVerticalLine) !== null && _c !== void 0 ? _c : (() => {\n return true;\n });\n const drawHorizontalLine = (_d = config.drawHorizontalLine) !== null && _d !== void 0 ? _d : (() => {\n return true;\n });\n return {\n ...config,\n border: (0, utils_1.makeBorderConfig)(config.border),\n columns: columnsConfig,\n drawHorizontalLine,\n drawVerticalLine,\n singleLine: (_e = config.singleLine) !== null && _e !== void 0 ? _e : false,\n spanningCellManager: (0, spanningCellManager_1.createSpanningCellManager)({\n columnsConfig,\n drawHorizontalLine,\n drawVerticalLine,\n rows,\n spanningCellConfigs,\n }),\n };\n};\nexports.makeTableConfig = makeTableConfig;\n//# sourceMappingURL=makeTableConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapDataUsingRowHeights = exports.padCellVertically = void 0;\nconst utils_1 = require(\"./utils\");\nconst wrapCell_1 = require(\"./wrapCell\");\nconst createEmptyStrings = (length) => {\n return new Array(length).fill('');\n};\nconst padCellVertically = (lines, rowHeight, verticalAlignment) => {\n const availableLines = rowHeight - lines.length;\n if (verticalAlignment === 'top') {\n return [...lines, ...createEmptyStrings(availableLines)];\n }\n if (verticalAlignment === 'bottom') {\n return [...createEmptyStrings(availableLines), ...lines];\n }\n return [\n ...createEmptyStrings(Math.floor(availableLines / 2)),\n ...lines,\n ...createEmptyStrings(Math.ceil(availableLines / 2)),\n ];\n};\nexports.padCellVertically = padCellVertically;\nconst mapDataUsingRowHeights = (unmappedRows, rowHeights, config) => {\n const nColumns = unmappedRows[0].length;\n const mappedRows = unmappedRows.map((unmappedRow, unmappedRowIndex) => {\n const outputRowHeight = rowHeights[unmappedRowIndex];\n const outputRow = Array.from({ length: outputRowHeight }, () => {\n return new Array(nColumns).fill('');\n });\n unmappedRow.forEach((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: unmappedRowIndex });\n if (containingRange) {\n containingRange.extractCellContent(unmappedRowIndex).forEach((cellLine, cellLineIndex) => {\n outputRow[cellLineIndex][cellIndex] = cellLine;\n });\n return;\n }\n const cellLines = (0, wrapCell_1.wrapCell)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);\n const paddedCellLines = (0, exports.padCellVertically)(cellLines, outputRowHeight, config.columns[cellIndex].verticalAlignment);\n paddedCellLines.forEach((cellLine, cellLineIndex) => {\n outputRow[cellLineIndex][cellIndex] = cellLine;\n });\n });\n return outputRow;\n });\n return (0, utils_1.flatten)(mappedRows);\n};\nexports.mapDataUsingRowHeights = mapDataUsingRowHeights;\n//# sourceMappingURL=mapDataUsingRowHeights.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.padTableData = exports.padString = void 0;\nconst padString = (input, paddingLeft, paddingRight) => {\n return ' '.repeat(paddingLeft) + input + ' '.repeat(paddingRight);\n};\nexports.padString = padString;\nconst padTableData = (rows, config) => {\n return rows.map((cells, rowIndex) => {\n return cells.map((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex }, { mapped: true });\n if (containingRange) {\n return cell;\n }\n const { paddingLeft, paddingRight } = config.columns[cellIndex];\n return (0, exports.padString)(cell, paddingLeft, paddingRight);\n });\n });\n};\nexports.padTableData = padTableData;\n//# sourceMappingURL=padTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSpanningCellManager = void 0;\nconst alignSpanningCell_1 = require(\"./alignSpanningCell\");\nconst calculateSpanningCellWidth_1 = require(\"./calculateSpanningCellWidth\");\nconst makeRangeConfig_1 = require(\"./makeRangeConfig\");\nconst utils_1 = require(\"./utils\");\nconst findRangeConfig = (cell, rangeConfigs) => {\n return rangeConfigs.find((rangeCoordinate) => {\n return (0, utils_1.isCellInRange)(cell, rangeCoordinate);\n });\n};\nconst getContainingRange = (rangeConfig, context) => {\n const width = (0, calculateSpanningCellWidth_1.calculateSpanningCellWidth)(rangeConfig, context);\n const wrappedContent = (0, alignSpanningCell_1.wrapRangeContent)(rangeConfig, width, context);\n const alignedContent = (0, alignSpanningCell_1.alignVerticalRangeContent)(rangeConfig, wrappedContent, context);\n const getCellContent = (rowIndex) => {\n const { topLeft } = rangeConfig;\n const { drawHorizontalLine, rowHeights } = context;\n const totalWithinHorizontalBorderHeight = rowIndex - topLeft.row;\n const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, rowIndex).filter((index) => {\n /* istanbul ignore next */\n return !(drawHorizontalLine === null || drawHorizontalLine === void 0 ? void 0 : drawHorizontalLine(index, rowHeights.length));\n }).length;\n const offset = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, rowIndex)) + totalWithinHorizontalBorderHeight - totalHiddenHorizontalBorderHeight;\n return alignedContent.slice(offset, offset + rowHeights[rowIndex]);\n };\n const getBorderContent = (borderIndex) => {\n const { topLeft } = rangeConfig;\n const offset = (0, utils_1.sumArray)(context.rowHeights.slice(topLeft.row, borderIndex)) + (borderIndex - topLeft.row - 1);\n return alignedContent[offset];\n };\n return {\n ...rangeConfig,\n extractBorderContent: getBorderContent,\n extractCellContent: getCellContent,\n height: wrappedContent.length,\n width,\n };\n};\nconst inSameRange = (cell1, cell2, ranges) => {\n const range1 = findRangeConfig(cell1, ranges);\n const range2 = findRangeConfig(cell2, ranges);\n if (range1 && range2) {\n return (0, utils_1.areCellEqual)(range1.topLeft, range2.topLeft);\n }\n return false;\n};\nconst hashRange = (range) => {\n const { row, col } = range.topLeft;\n return `${row}/${col}`;\n};\nconst createSpanningCellManager = (parameters) => {\n const { spanningCellConfigs, columnsConfig } = parameters;\n const ranges = spanningCellConfigs.map((config) => {\n return (0, makeRangeConfig_1.makeRangeConfig)(config, columnsConfig);\n });\n const rangeCache = {};\n let rowHeights = [];\n let rowIndexMapping = [];\n return { getContainingRange: (cell, options) => {\n var _a;\n const originalRow = (options === null || options === void 0 ? void 0 : options.mapped) ? rowIndexMapping[cell.row] : cell.row;\n const range = findRangeConfig({ ...cell,\n row: originalRow }, ranges);\n if (!range) {\n return undefined;\n }\n if (rowHeights.length === 0) {\n return getContainingRange(range, { ...parameters,\n rowHeights });\n }\n const hash = hashRange(range);\n (_a = rangeCache[hash]) !== null && _a !== void 0 ? _a : (rangeCache[hash] = getContainingRange(range, { ...parameters,\n rowHeights }));\n return rangeCache[hash];\n },\n inSameRange: (cell1, cell2) => {\n return inSameRange(cell1, cell2, ranges);\n },\n rowHeights,\n rowIndexMapping,\n setRowHeights: (_rowHeights) => {\n rowHeights = _rowHeights;\n },\n setRowIndexMapping: (mappedRowHeights) => {\n rowIndexMapping = (0, utils_1.flatten)(mappedRowHeights.map((height, index) => {\n return Array.from({ length: height }, () => {\n return index;\n });\n }));\n } };\n};\nexports.createSpanningCellManager = createSpanningCellManager;\n//# sourceMappingURL=spanningCellManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringifyTableData = void 0;\nconst utils_1 = require(\"./utils\");\nconst stringifyTableData = (rows) => {\n return rows.map((cells) => {\n return cells.map((cell) => {\n return (0, utils_1.normalizeString)(String(cell));\n });\n });\n};\nexports.stringifyTableData = stringifyTableData;\n//# sourceMappingURL=stringifyTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.table = void 0;\nconst alignTableData_1 = require(\"./alignTableData\");\nconst calculateOutputColumnWidths_1 = require(\"./calculateOutputColumnWidths\");\nconst calculateRowHeights_1 = require(\"./calculateRowHeights\");\nconst drawTable_1 = require(\"./drawTable\");\nconst injectHeaderConfig_1 = require(\"./injectHeaderConfig\");\nconst makeTableConfig_1 = require(\"./makeTableConfig\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst stringifyTableData_1 = require(\"./stringifyTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst validateTableData_1 = require(\"./validateTableData\");\nconst table = (data, userConfig = {}) => {\n (0, validateTableData_1.validateTableData)(data);\n let rows = (0, stringifyTableData_1.stringifyTableData)(data);\n const [injectedRows, injectedSpanningCellConfig] = (0, injectHeaderConfig_1.injectHeaderConfig)(rows, userConfig);\n const config = (0, makeTableConfig_1.makeTableConfig)(injectedRows, userConfig, injectedSpanningCellConfig);\n rows = (0, truncateTableData_1.truncateTableData)(injectedRows, (0, utils_1.extractTruncates)(config));\n const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);\n config.spanningCellManager.setRowHeights(rowHeights);\n config.spanningCellManager.setRowIndexMapping(rowHeights);\n rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);\n rows = (0, alignTableData_1.alignTableData)(rows, config);\n rows = (0, padTableData_1.padTableData)(rows, config);\n const outputColumnWidths = (0, calculateOutputColumnWidths_1.calculateOutputColumnWidths)(config);\n return (0, drawTable_1.drawTable)(rows, outputColumnWidths, rowHeights, config);\n};\nexports.table = table;\n//# sourceMappingURL=table.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.truncateTableData = exports.truncateString = void 0;\nconst lodash_truncate_1 = __importDefault(require(\"lodash.truncate\"));\nconst truncateString = (input, length) => {\n return (0, lodash_truncate_1.default)(input, { length,\n omission: '…' });\n};\nexports.truncateString = truncateString;\n/**\n * @todo Make it work with ASCII content.\n */\nconst truncateTableData = (rows, truncates) => {\n return rows.map((cells) => {\n return cells.map((cell, cellIndex) => {\n return (0, exports.truncateString)(cell, truncates[cellIndex]);\n });\n });\n};\nexports.truncateTableData = truncateTableData;\n//# sourceMappingURL=truncateTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=api.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCellInRange = exports.areCellEqual = exports.calculateRangeCoordinate = exports.flatten = exports.extractTruncates = exports.sumArray = exports.sequence = exports.distributeUnevenly = exports.countSpaceSequence = exports.groupBySizes = exports.makeBorderConfig = exports.splitAnsi = exports.normalizeString = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst strip_ansi_1 = __importDefault(require(\"strip-ansi\"));\nconst getBorderCharacters_1 = require(\"./getBorderCharacters\");\n/**\n * Converts Windows-style newline to Unix-style\n *\n * @internal\n */\nconst normalizeString = (input) => {\n return input.replace(/\\r\\n/g, '\\n');\n};\nexports.normalizeString = normalizeString;\n/**\n * Splits ansi string by newlines\n *\n * @internal\n */\nconst splitAnsi = (input) => {\n const lengths = (0, strip_ansi_1.default)(input).split('\\n').map(string_width_1.default);\n const result = [];\n let startIndex = 0;\n lengths.forEach((length) => {\n result.push(length === 0 ? '' : (0, slice_ansi_1.default)(input, startIndex, startIndex + length));\n // Plus 1 for the newline character itself\n startIndex += length + 1;\n });\n return result;\n};\nexports.splitAnsi = splitAnsi;\n/**\n * Merges user provided border characters with the default border (\"honeywell\") characters.\n *\n * @internal\n */\nconst makeBorderConfig = (border) => {\n return {\n ...(0, getBorderCharacters_1.getBorderCharacters)('honeywell'),\n ...border,\n };\n};\nexports.makeBorderConfig = makeBorderConfig;\n/**\n * Groups the array into sub-arrays by sizes.\n *\n * @internal\n * @example\n * groupBySizes(['a', 'b', 'c', 'd', 'e'], [2, 1, 2]) = [ ['a', 'b'], ['c'], ['d', 'e'] ]\n */\nconst groupBySizes = (array, sizes) => {\n let startIndex = 0;\n return sizes.map((size) => {\n const group = array.slice(startIndex, startIndex + size);\n startIndex += size;\n return group;\n });\n};\nexports.groupBySizes = groupBySizes;\n/**\n * Counts the number of continuous spaces in a string\n *\n * @internal\n * @example\n * countGroupSpaces('a bc de f') = 3\n */\nconst countSpaceSequence = (input) => {\n var _a, _b;\n return (_b = (_a = input.match(/\\s+/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;\n};\nexports.countSpaceSequence = countSpaceSequence;\n/**\n * Creates the non-increasing number array given sum and length\n * whose the difference between maximum and minimum is not greater than 1\n *\n * @internal\n * @example\n * distributeUnevenly(6, 3) = [2, 2, 2]\n * distributeUnevenly(8, 3) = [3, 3, 2]\n */\nconst distributeUnevenly = (sum, length) => {\n const result = Array.from({ length }).fill(Math.floor(sum / length));\n return result.map((element, index) => {\n return element + (index < sum % length ? 1 : 0);\n });\n};\nexports.distributeUnevenly = distributeUnevenly;\nconst sequence = (start, end) => {\n return Array.from({ length: end - start + 1 }, (_, index) => {\n return index + start;\n });\n};\nexports.sequence = sequence;\nconst sumArray = (array) => {\n return array.reduce((accumulator, element) => {\n return accumulator + element;\n }, 0);\n};\nexports.sumArray = sumArray;\nconst extractTruncates = (config) => {\n return config.columns.map(({ truncate }) => {\n return truncate;\n });\n};\nexports.extractTruncates = extractTruncates;\nconst flatten = (array) => {\n return [].concat(...array);\n};\nexports.flatten = flatten;\nconst calculateRangeCoordinate = (spanningCellConfig) => {\n const { row, col, colSpan = 1, rowSpan = 1 } = spanningCellConfig;\n return { bottomRight: { col: col + colSpan - 1,\n row: row + rowSpan - 1 },\n topLeft: { col,\n row } };\n};\nexports.calculateRangeCoordinate = calculateRangeCoordinate;\nconst areCellEqual = (cell1, cell2) => {\n return cell1.row === cell2.row && cell1.col === cell2.col;\n};\nexports.areCellEqual = areCellEqual;\nconst isCellInRange = (cell, { topLeft, bottomRight }) => {\n return (topLeft.row <= cell.row &&\n cell.row <= bottomRight.row &&\n topLeft.col <= cell.col &&\n cell.col <= bottomRight.col);\n};\nexports.isCellInRange = isCellInRange;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateConfig = void 0;\nconst validators_1 = __importDefault(require(\"./generated/validators\"));\nconst validateConfig = (schemaId, config) => {\n const validate = validators_1.default[schemaId];\n if (!validate(config) && validate.errors) {\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n const errors = validate.errors.map((error) => {\n return {\n message: error.message,\n params: error.params,\n schemaPath: error.schemaPath,\n };\n });\n /* eslint-disable no-console */\n console.log('config', config);\n console.log('errors', errors);\n /* eslint-enable no-console */\n throw new Error('Invalid config.');\n }\n};\nexports.validateConfig = validateConfig;\n//# sourceMappingURL=validateConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSpanningCellConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst inRange = (start, end, value) => {\n return start <= value && value <= end;\n};\nconst validateSpanningCellConfig = (rows, configs) => {\n const [nRow, nCol] = [rows.length, rows[0].length];\n configs.forEach((config, configIndex) => {\n const { colSpan, rowSpan } = config;\n if (colSpan === undefined && rowSpan === undefined) {\n throw new Error(`Expect at least colSpan or rowSpan is provided in config.spanningCells[${configIndex}]`);\n }\n if (colSpan !== undefined && colSpan < 1) {\n throw new Error(`Expect colSpan is not equal zero, instead got: ${colSpan} in config.spanningCells[${configIndex}]`);\n }\n if (rowSpan !== undefined && rowSpan < 1) {\n throw new Error(`Expect rowSpan is not equal zero, instead got: ${rowSpan} in config.spanningCells[${configIndex}]`);\n }\n });\n const rangeCoordinates = configs.map(utils_1.calculateRangeCoordinate);\n rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {\n if (!inRange(0, nCol - 1, topLeft.col) ||\n !inRange(0, nRow - 1, topLeft.row) ||\n !inRange(0, nCol - 1, bottomRight.col) ||\n !inRange(0, nRow - 1, bottomRight.row)) {\n throw new Error(`Some cells in config.spanningCells[${rangeIndex}] are out of the table`);\n }\n });\n const configOccupy = Array.from({ length: nRow }, () => {\n return Array.from({ length: nCol });\n });\n rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {\n (0, utils_1.sequence)(topLeft.row, bottomRight.row).forEach((row) => {\n (0, utils_1.sequence)(topLeft.col, bottomRight.col).forEach((col) => {\n if (configOccupy[row][col] !== undefined) {\n throw new Error(`Spanning cells in config.spanningCells[${configOccupy[row][col]}] and config.spanningCells[${rangeIndex}] are overlap each other`);\n }\n configOccupy[row][col] = rangeIndex;\n });\n });\n });\n};\nexports.validateSpanningCellConfig = validateSpanningCellConfig;\n//# sourceMappingURL=validateSpanningCellConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTableData = void 0;\nconst utils_1 = require(\"./utils\");\nconst validateTableData = (rows) => {\n if (!Array.isArray(rows)) {\n throw new TypeError('Table data must be an array.');\n }\n if (rows.length === 0) {\n throw new Error('Table must define at least one row.');\n }\n if (rows[0].length === 0) {\n throw new Error('Table must define at least one column.');\n }\n const columnNumber = rows[0].length;\n for (const row of rows) {\n if (!Array.isArray(row)) {\n throw new TypeError('Table row data must be an array.');\n }\n if (row.length !== columnNumber) {\n throw new Error('Table must have a consistent number of cells.');\n }\n for (const cell of row) {\n // eslint-disable-next-line no-control-regex\n if (/[\\u0001-\\u0006\\u0008\\u0009\\u000B-\\u001A]/.test((0, utils_1.normalizeString)(String(cell)))) {\n throw new Error('Table data must not contain control characters.');\n }\n }\n }\n};\nexports.validateTableData = validateTableData;\n//# sourceMappingURL=validateTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapCell = void 0;\nconst utils_1 = require(\"./utils\");\nconst wrapString_1 = require(\"./wrapString\");\nconst wrapWord_1 = require(\"./wrapWord\");\n/**\n * Wrap a single cell value into a list of lines\n *\n * Always wraps on newlines, for the remainder uses either word or string wrapping\n * depending on user configuration.\n *\n */\nconst wrapCell = (cellValue, cellWidth, useWrapWord) => {\n // First split on literal newlines\n const cellLines = (0, utils_1.splitAnsi)(cellValue);\n // Then iterate over the list and word-wrap every remaining line if necessary.\n for (let lineNr = 0; lineNr < cellLines.length;) {\n let lineChunks;\n if (useWrapWord) {\n lineChunks = (0, wrapWord_1.wrapWord)(cellLines[lineNr], cellWidth);\n }\n else {\n lineChunks = (0, wrapString_1.wrapString)(cellLines[lineNr], cellWidth);\n }\n // Replace our original array element with whatever the wrapping returned\n cellLines.splice(lineNr, 1, ...lineChunks);\n lineNr += lineChunks.length;\n }\n return cellLines;\n};\nexports.wrapCell = wrapCell;\n//# sourceMappingURL=wrapCell.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapString = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst string_width_1 = __importDefault(require(\"string-width\"));\n/**\n * Creates an array of strings split into groups the length of size.\n * This function works with strings that contain ASCII characters.\n *\n * wrapText is different from would-be \"chunk\" implementation\n * in that whitespace characters that occur on a chunk size limit are trimmed.\n *\n */\nconst wrapString = (subject, size) => {\n let subjectSlice = subject;\n const chunks = [];\n do {\n chunks.push((0, slice_ansi_1.default)(subjectSlice, 0, size));\n subjectSlice = (0, slice_ansi_1.default)(subjectSlice, size).trim();\n } while ((0, string_width_1.default)(subjectSlice));\n return chunks;\n};\nexports.wrapString = wrapString;\n//# sourceMappingURL=wrapString.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapWord = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst strip_ansi_1 = __importDefault(require(\"strip-ansi\"));\nconst calculateStringLengths = (input, size) => {\n let subject = (0, strip_ansi_1.default)(input);\n const chunks = [];\n // https://regex101.com/r/gY5kZ1/1\n const re = new RegExp('(^.{1,' + String(Math.max(size, 1)) + '}(\\\\s+|$))|(^.{1,' + String(Math.max(size - 1, 1)) + '}(\\\\\\\\|/|_|\\\\.|,|;|-))');\n do {\n let chunk;\n const match = re.exec(subject);\n if (match) {\n chunk = match[0];\n subject = subject.slice(chunk.length);\n const trimmedLength = chunk.trim().length;\n const offset = chunk.length - trimmedLength;\n chunks.push([trimmedLength, offset]);\n }\n else {\n chunk = subject.slice(0, size);\n subject = subject.slice(size);\n chunks.push([chunk.length, 0]);\n }\n } while (subject.length);\n return chunks;\n};\nconst wrapWord = (input, size) => {\n const result = [];\n let startIndex = 0;\n calculateStringLengths(input, size).forEach(([length, offset]) => {\n result.push((0, slice_ansi_1.default)(input, startIndex, startIndex + length));\n startIndex += length + offset;\n });\n return result;\n};\nexports.wrapWord = wrapWord;\n//# sourceMappingURL=wrapWord.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","const constants = { // just for envs without fs\n S_IFMT: 61440,\n S_IFDIR: 16384,\n S_IFCHR: 8192,\n S_IFBLK: 24576,\n S_IFIFO: 4096,\n S_IFLNK: 40960\n}\n\ntry {\n module.exports = require('fs').constants || constants\n} catch {\n module.exports = constants\n}\n","const { Writable, Readable, getStreamError } = require('streamx')\nconst FIFO = require('fast-fifo')\nconst b4a = require('b4a')\nconst headers = require('./headers')\n\nconst EMPTY = b4a.alloc(0)\n\nclass BufferList {\n constructor () {\n this.buffered = 0\n this.shifted = 0\n this.queue = new FIFO()\n\n this._offset = 0\n }\n\n push (buffer) {\n this.buffered += buffer.byteLength\n this.queue.push(buffer)\n }\n\n shiftFirst (size) {\n return this._buffered === 0 ? null : this._next(size)\n }\n\n shift (size) {\n if (size > this.buffered) return null\n if (size === 0) return EMPTY\n\n let chunk = this._next(size)\n\n if (size === chunk.byteLength) return chunk // likely case\n\n const chunks = [chunk]\n\n while ((size -= chunk.byteLength) > 0) {\n chunk = this._next(size)\n chunks.push(chunk)\n }\n\n return b4a.concat(chunks)\n }\n\n _next (size) {\n const buf = this.queue.peek()\n const rem = buf.byteLength - this._offset\n\n if (size >= rem) {\n const sub = this._offset ? buf.subarray(this._offset, buf.byteLength) : buf\n this.queue.shift()\n this._offset = 0\n this.buffered -= rem\n this.shifted += rem\n return sub\n }\n\n this.buffered -= size\n this.shifted += size\n\n return buf.subarray(this._offset, (this._offset += size))\n }\n}\n\nclass Source extends Readable {\n constructor (self, header, offset) {\n super()\n\n this.header = header\n this.offset = offset\n\n this._parent = self\n }\n\n _read (cb) {\n if (this.header.size === 0) {\n this.push(null)\n }\n if (this._parent._stream === this) {\n this._parent._update()\n }\n cb(null)\n }\n\n _predestroy () {\n this._parent.destroy(getStreamError(this))\n }\n\n _detach () {\n if (this._parent._stream === this) {\n this._parent._stream = null\n this._parent._missing = overflow(this.header.size)\n this._parent._update()\n }\n }\n\n _destroy (cb) {\n this._detach()\n cb(null)\n }\n}\n\nclass Extract extends Writable {\n constructor (opts) {\n super(opts)\n\n if (!opts) opts = {}\n\n this._buffer = new BufferList()\n this._offset = 0\n this._header = null\n this._stream = null\n this._missing = 0\n this._longHeader = false\n this._callback = noop\n this._locked = false\n this._finished = false\n this._pax = null\n this._paxGlobal = null\n this._gnuLongPath = null\n this._gnuLongLinkPath = null\n this._filenameEncoding = opts.filenameEncoding || 'utf-8'\n this._allowUnknownFormat = !!opts.allowUnknownFormat\n this._unlockBound = this._unlock.bind(this)\n }\n\n _unlock (err) {\n this._locked = false\n\n if (err) {\n this.destroy(err)\n this._continueWrite(err)\n return\n }\n\n this._update()\n }\n\n _consumeHeader () {\n if (this._locked) return false\n\n this._offset = this._buffer.shifted\n\n try {\n this._header = headers.decode(this._buffer.shift(512), this._filenameEncoding, this._allowUnknownFormat)\n } catch (err) {\n this._continueWrite(err)\n return false\n }\n\n if (!this._header) return true\n\n switch (this._header.type) {\n case 'gnu-long-path':\n case 'gnu-long-link-path':\n case 'pax-global-header':\n case 'pax-header':\n this._longHeader = true\n this._missing = this._header.size\n return true\n }\n\n this._locked = true\n this._applyLongHeaders()\n\n if (this._header.size === 0 || this._header.type === 'directory') {\n this.emit('entry', this._header, this._createStream(), this._unlockBound)\n return true\n }\n\n this._stream = this._createStream()\n this._missing = this._header.size\n\n this.emit('entry', this._header, this._stream, this._unlockBound)\n return true\n }\n\n _applyLongHeaders () {\n if (this._gnuLongPath) {\n this._header.name = this._gnuLongPath\n this._gnuLongPath = null\n }\n\n if (this._gnuLongLinkPath) {\n this._header.linkname = this._gnuLongLinkPath\n this._gnuLongLinkPath = null\n }\n\n if (this._pax) {\n if (this._pax.path) this._header.name = this._pax.path\n if (this._pax.linkpath) this._header.linkname = this._pax.linkpath\n if (this._pax.size) this._header.size = parseInt(this._pax.size, 10)\n this._header.pax = this._pax\n this._pax = null\n }\n }\n\n _decodeLongHeader (buf) {\n switch (this._header.type) {\n case 'gnu-long-path':\n this._gnuLongPath = headers.decodeLongPath(buf, this._filenameEncoding)\n break\n case 'gnu-long-link-path':\n this._gnuLongLinkPath = headers.decodeLongPath(buf, this._filenameEncoding)\n break\n case 'pax-global-header':\n this._paxGlobal = headers.decodePax(buf)\n break\n case 'pax-header':\n this._pax = this._paxGlobal === null\n ? headers.decodePax(buf)\n : Object.assign({}, this._paxGlobal, headers.decodePax(buf))\n break\n }\n }\n\n _consumeLongHeader () {\n this._longHeader = false\n this._missing = overflow(this._header.size)\n\n const buf = this._buffer.shift(this._header.size)\n\n try {\n this._decodeLongHeader(buf)\n } catch (err) {\n this._continueWrite(err)\n return false\n }\n\n return true\n }\n\n _consumeStream () {\n const buf = this._buffer.shiftFirst(this._missing)\n if (buf === null) return false\n\n this._missing -= buf.byteLength\n const drained = this._stream.push(buf)\n\n if (this._missing === 0) {\n this._stream.push(null)\n if (drained) this._stream._detach()\n return drained && this._locked === false\n }\n\n return drained\n }\n\n _createStream () {\n return new Source(this, this._header, this._offset)\n }\n\n _update () {\n while (this._buffer.buffered > 0 && !this.destroying) {\n if (this._missing > 0) {\n if (this._stream !== null) {\n if (this._consumeStream() === false) return\n continue\n }\n\n if (this._longHeader === true) {\n if (this._missing > this._buffer.buffered) break\n if (this._consumeLongHeader() === false) return false\n continue\n }\n\n const ignore = this._buffer.shiftFirst(this._missing)\n if (ignore !== null) this._missing -= ignore.byteLength\n continue\n }\n\n if (this._buffer.buffered < 512) break\n if (this._stream !== null || this._consumeHeader() === false) return\n }\n\n this._continueWrite(null)\n }\n\n _continueWrite (err) {\n const cb = this._callback\n this._callback = noop\n cb(err)\n }\n\n _write (data, cb) {\n this._callback = cb\n this._buffer.push(data)\n this._update()\n }\n\n _final (cb) {\n this._finished = this._missing === 0 && this._buffer.buffered === 0\n cb(this._finished ? null : new Error('Unexpected end of data'))\n }\n\n _predestroy () {\n this._continueWrite(null)\n }\n\n _destroy (cb) {\n if (this._stream) this._stream.destroy(getStreamError(this))\n cb(null)\n }\n\n [Symbol.asyncIterator] () {\n let error = null\n\n let promiseResolve = null\n let promiseReject = null\n\n let entryStream = null\n let entryCallback = null\n\n const extract = this\n\n this.on('entry', onentry)\n this.on('error', (err) => { error = err })\n this.on('close', onclose)\n\n return {\n [Symbol.asyncIterator] () {\n return this\n },\n next () {\n return new Promise(onnext)\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function consumeCallback (err) {\n if (!entryCallback) return\n const cb = entryCallback\n entryCallback = null\n cb(err)\n }\n\n function onnext (resolve, reject) {\n if (error) {\n return reject(error)\n }\n\n if (entryStream) {\n resolve({ value: entryStream, done: false })\n entryStream = null\n return\n }\n\n promiseResolve = resolve\n promiseReject = reject\n\n consumeCallback(null)\n\n if (extract._finished && promiseResolve) {\n promiseResolve({ value: undefined, done: true })\n promiseResolve = promiseReject = null\n }\n }\n\n function onentry (header, stream, callback) {\n entryCallback = callback\n stream.on('error', noop) // no way around this due to tick sillyness\n\n if (promiseResolve) {\n promiseResolve({ value: stream, done: false })\n promiseResolve = promiseReject = null\n } else {\n entryStream = stream\n }\n }\n\n function onclose () {\n consumeCallback(error)\n if (!promiseResolve) return\n if (error) promiseReject(error)\n else promiseResolve({ value: undefined, done: true })\n promiseResolve = promiseReject = null\n }\n\n function destroy (err) {\n extract.destroy(err)\n consumeCallback(err)\n return new Promise((resolve, reject) => {\n if (extract.destroyed) return resolve({ value: undefined, done: true })\n extract.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nmodule.exports = function extract (opts) {\n return new Extract(opts)\n}\n\nfunction noop () {}\n\nfunction overflow (size) {\n size &= 511\n return size && 512 - size\n}\n","const b4a = require('b4a')\n\nconst ZEROS = '0000000000000000000'\nconst SEVENS = '7777777777777777777'\nconst ZERO_OFFSET = '0'.charCodeAt(0)\nconst USTAR_MAGIC = b4a.from([0x75, 0x73, 0x74, 0x61, 0x72, 0x00]) // ustar\\x00\nconst USTAR_VER = b4a.from([ZERO_OFFSET, ZERO_OFFSET])\nconst GNU_MAGIC = b4a.from([0x75, 0x73, 0x74, 0x61, 0x72, 0x20]) // ustar\\x20\nconst GNU_VER = b4a.from([0x20, 0x00])\nconst MASK = 0o7777\nconst MAGIC_OFFSET = 257\nconst VERSION_OFFSET = 263\n\nexports.decodeLongPath = function decodeLongPath (buf, encoding) {\n return decodeStr(buf, 0, buf.length, encoding)\n}\n\nexports.encodePax = function encodePax (opts) { // TODO: encode more stuff in pax\n let result = ''\n if (opts.name) result += addLength(' path=' + opts.name + '\\n')\n if (opts.linkname) result += addLength(' linkpath=' + opts.linkname + '\\n')\n const pax = opts.pax\n if (pax) {\n for (const key in pax) {\n result += addLength(' ' + key + '=' + pax[key] + '\\n')\n }\n }\n return b4a.from(result)\n}\n\nexports.decodePax = function decodePax (buf) {\n const result = {}\n\n while (buf.length) {\n let i = 0\n while (i < buf.length && buf[i] !== 32) i++\n const len = parseInt(b4a.toString(buf.subarray(0, i)), 10)\n if (!len) return result\n\n const b = b4a.toString(buf.subarray(i + 1, len - 1))\n const keyIndex = b.indexOf('=')\n if (keyIndex === -1) return result\n result[b.slice(0, keyIndex)] = b.slice(keyIndex + 1)\n\n buf = buf.subarray(len)\n }\n\n return result\n}\n\nexports.encode = function encode (opts) {\n const buf = b4a.alloc(512)\n let name = opts.name\n let prefix = ''\n\n if (opts.typeflag === 5 && name[name.length - 1] !== '/') name += '/'\n if (b4a.byteLength(name) !== name.length) return null // utf-8\n\n while (b4a.byteLength(name) > 100) {\n const i = name.indexOf('/')\n if (i === -1) return null\n prefix += prefix ? '/' + name.slice(0, i) : name.slice(0, i)\n name = name.slice(i + 1)\n }\n\n if (b4a.byteLength(name) > 100 || b4a.byteLength(prefix) > 155) return null\n if (opts.linkname && b4a.byteLength(opts.linkname) > 100) return null\n\n b4a.write(buf, name)\n b4a.write(buf, encodeOct(opts.mode & MASK, 6), 100)\n b4a.write(buf, encodeOct(opts.uid, 6), 108)\n b4a.write(buf, encodeOct(opts.gid, 6), 116)\n encodeSize(opts.size, buf, 124)\n b4a.write(buf, encodeOct((opts.mtime.getTime() / 1000) | 0, 11), 136)\n\n buf[156] = ZERO_OFFSET + toTypeflag(opts.type)\n\n if (opts.linkname) b4a.write(buf, opts.linkname, 157)\n\n b4a.copy(USTAR_MAGIC, buf, MAGIC_OFFSET)\n b4a.copy(USTAR_VER, buf, VERSION_OFFSET)\n if (opts.uname) b4a.write(buf, opts.uname, 265)\n if (opts.gname) b4a.write(buf, opts.gname, 297)\n b4a.write(buf, encodeOct(opts.devmajor || 0, 6), 329)\n b4a.write(buf, encodeOct(opts.devminor || 0, 6), 337)\n\n if (prefix) b4a.write(buf, prefix, 345)\n\n b4a.write(buf, encodeOct(cksum(buf), 6), 148)\n\n return buf\n}\n\nexports.decode = function decode (buf, filenameEncoding, allowUnknownFormat) {\n let typeflag = buf[156] === 0 ? 0 : buf[156] - ZERO_OFFSET\n\n let name = decodeStr(buf, 0, 100, filenameEncoding)\n const mode = decodeOct(buf, 100, 8)\n const uid = decodeOct(buf, 108, 8)\n const gid = decodeOct(buf, 116, 8)\n const size = decodeOct(buf, 124, 12)\n const mtime = decodeOct(buf, 136, 12)\n const type = toType(typeflag)\n const linkname = buf[157] === 0 ? null : decodeStr(buf, 157, 100, filenameEncoding)\n const uname = decodeStr(buf, 265, 32)\n const gname = decodeStr(buf, 297, 32)\n const devmajor = decodeOct(buf, 329, 8)\n const devminor = decodeOct(buf, 337, 8)\n\n const c = cksum(buf)\n\n // checksum is still initial value if header was null.\n if (c === 8 * 32) return null\n\n // valid checksum\n if (c !== decodeOct(buf, 148, 8)) throw new Error('Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?')\n\n if (isUSTAR(buf)) {\n // ustar (posix) format.\n // prepend prefix, if present.\n if (buf[345]) name = decodeStr(buf, 345, 155, filenameEncoding) + '/' + name\n } else if (isGNU(buf)) {\n // 'gnu'/'oldgnu' format. Similar to ustar, but has support for incremental and\n // multi-volume tarballs.\n } else {\n if (!allowUnknownFormat) {\n throw new Error('Invalid tar header: unknown format.')\n }\n }\n\n // to support old tar versions that use trailing / to indicate dirs\n if (typeflag === 0 && name && name[name.length - 1] === '/') typeflag = 5\n\n return {\n name,\n mode,\n uid,\n gid,\n size,\n mtime: new Date(1000 * mtime),\n type,\n linkname,\n uname,\n gname,\n devmajor,\n devminor,\n pax: null\n }\n}\n\nfunction isUSTAR (buf) {\n return b4a.equals(USTAR_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6))\n}\n\nfunction isGNU (buf) {\n return b4a.equals(GNU_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6)) &&\n b4a.equals(GNU_VER, buf.subarray(VERSION_OFFSET, VERSION_OFFSET + 2))\n}\n\nfunction clamp (index, len, defaultValue) {\n if (typeof index !== 'number') return defaultValue\n index = ~~index // Coerce to integer.\n if (index >= len) return len\n if (index >= 0) return index\n index += len\n if (index >= 0) return index\n return 0\n}\n\nfunction toType (flag) {\n switch (flag) {\n case 0:\n return 'file'\n case 1:\n return 'link'\n case 2:\n return 'symlink'\n case 3:\n return 'character-device'\n case 4:\n return 'block-device'\n case 5:\n return 'directory'\n case 6:\n return 'fifo'\n case 7:\n return 'contiguous-file'\n case 72:\n return 'pax-header'\n case 55:\n return 'pax-global-header'\n case 27:\n return 'gnu-long-link-path'\n case 28:\n case 30:\n return 'gnu-long-path'\n }\n\n return null\n}\n\nfunction toTypeflag (flag) {\n switch (flag) {\n case 'file':\n return 0\n case 'link':\n return 1\n case 'symlink':\n return 2\n case 'character-device':\n return 3\n case 'block-device':\n return 4\n case 'directory':\n return 5\n case 'fifo':\n return 6\n case 'contiguous-file':\n return 7\n case 'pax-header':\n return 72\n }\n\n return 0\n}\n\nfunction indexOf (block, num, offset, end) {\n for (; offset < end; offset++) {\n if (block[offset] === num) return offset\n }\n return end\n}\n\nfunction cksum (block) {\n let sum = 8 * 32\n for (let i = 0; i < 148; i++) sum += block[i]\n for (let j = 156; j < 512; j++) sum += block[j]\n return sum\n}\n\nfunction encodeOct (val, n) {\n val = val.toString(8)\n if (val.length > n) return SEVENS.slice(0, n) + ' '\n return ZEROS.slice(0, n - val.length) + val + ' '\n}\n\nfunction encodeSizeBin (num, buf, off) {\n buf[off] = 0x80\n for (let i = 11; i > 0; i--) {\n buf[off + i] = num & 0xff\n num = Math.floor(num / 0x100)\n }\n}\n\nfunction encodeSize (num, buf, off) {\n if (num.toString(8).length > 11) {\n encodeSizeBin(num, buf, off)\n } else {\n b4a.write(buf, encodeOct(num, 11), off)\n }\n}\n\n/* Copied from the node-tar repo and modified to meet\n * tar-stream coding standard.\n *\n * Source: https://github.com/npm/node-tar/blob/51b6627a1f357d2eb433e7378e5f05e83b7aa6cd/lib/header.js#L349\n */\nfunction parse256 (buf) {\n // first byte MUST be either 80 or FF\n // 80 for positive, FF for 2's comp\n let positive\n if (buf[0] === 0x80) positive = true\n else if (buf[0] === 0xFF) positive = false\n else return null\n\n // build up a base-256 tuple from the least sig to the highest\n const tuple = []\n let i\n for (i = buf.length - 1; i > 0; i--) {\n const byte = buf[i]\n if (positive) tuple.push(byte)\n else tuple.push(0xFF - byte)\n }\n\n let sum = 0\n const l = tuple.length\n for (i = 0; i < l; i++) {\n sum += tuple[i] * Math.pow(256, i)\n }\n\n return positive ? sum : -1 * sum\n}\n\nfunction decodeOct (val, offset, length) {\n val = val.subarray(offset, offset + length)\n offset = 0\n\n // If prefixed with 0x80 then parse as a base-256 integer\n if (val[offset] & 0x80) {\n return parse256(val)\n } else {\n // Older versions of tar can prefix with spaces\n while (offset < val.length && val[offset] === 32) offset++\n const end = clamp(indexOf(val, 32, offset, val.length), val.length, val.length)\n while (offset < end && val[offset] === 0) offset++\n if (end === offset) return 0\n return parseInt(b4a.toString(val.subarray(offset, end)), 8)\n }\n}\n\nfunction decodeStr (val, offset, length, encoding) {\n return b4a.toString(val.subarray(offset, indexOf(val, 0, offset, offset + length)), encoding)\n}\n\nfunction addLength (str) {\n const len = b4a.byteLength(str)\n let digits = Math.floor(Math.log(len) / Math.log(10)) + 1\n if (len + digits >= Math.pow(10, digits)) digits++\n\n return (len + digits) + str\n}\n","exports.extract = require('./extract')\nexports.pack = require('./pack')\n","const { Readable, Writable, getStreamError } = require('streamx')\nconst b4a = require('b4a')\n\nconst constants = require('./constants')\nconst headers = require('./headers')\n\nconst DMODE = 0o755\nconst FMODE = 0o644\n\nconst END_OF_TAR = b4a.alloc(1024)\n\nclass Sink extends Writable {\n constructor (pack, header, callback) {\n super({ mapWritable, eagerOpen: true })\n\n this.written = 0\n this.header = header\n\n this._callback = callback\n this._linkname = null\n this._isLinkname = header.type === 'symlink' && !header.linkname\n this._isVoid = header.type !== 'file' && header.type !== 'contiguous-file'\n this._finished = false\n this._pack = pack\n this._openCallback = null\n\n if (this._pack._stream === null) this._pack._stream = this\n else this._pack._pending.push(this)\n }\n\n _open (cb) {\n this._openCallback = cb\n if (this._pack._stream === this) this._continueOpen()\n }\n\n _continuePack (err) {\n if (this._callback === null) return\n\n const callback = this._callback\n this._callback = null\n\n callback(err)\n }\n\n _continueOpen () {\n if (this._pack._stream === null) this._pack._stream = this\n\n const cb = this._openCallback\n this._openCallback = null\n if (cb === null) return\n\n if (this._pack.destroying) return cb(new Error('pack stream destroyed'))\n if (this._pack._finalized) return cb(new Error('pack stream is already finalized'))\n\n this._pack._stream = this\n\n if (!this._isLinkname) {\n this._pack._encode(this.header)\n }\n\n if (this._isVoid) {\n this._finish()\n this._continuePack(null)\n }\n\n cb(null)\n }\n\n _write (data, cb) {\n if (this._isLinkname) {\n this._linkname = this._linkname ? b4a.concat([this._linkname, data]) : data\n return cb(null)\n }\n\n if (this._isVoid) {\n if (data.byteLength > 0) {\n return cb(new Error('No body allowed for this entry'))\n }\n return cb()\n }\n\n this.written += data.byteLength\n if (this._pack.push(data)) return cb()\n this._pack._drain = cb\n }\n\n _finish () {\n if (this._finished) return\n this._finished = true\n\n if (this._isLinkname) {\n this.header.linkname = this._linkname ? b4a.toString(this._linkname, 'utf-8') : ''\n this._pack._encode(this.header)\n }\n\n overflow(this._pack, this.header.size)\n\n this._pack._done(this)\n }\n\n _final (cb) {\n if (this.written !== this.header.size) { // corrupting tar\n return cb(new Error('Size mismatch'))\n }\n\n this._finish()\n cb(null)\n }\n\n _getError () {\n return getStreamError(this) || new Error('tar entry destroyed')\n }\n\n _predestroy () {\n this._pack.destroy(this._getError())\n }\n\n _destroy (cb) {\n this._pack._done(this)\n\n this._continuePack(this._finished ? null : this._getError())\n\n cb()\n }\n}\n\nclass Pack extends Readable {\n constructor (opts) {\n super(opts)\n this._drain = noop\n this._finalized = false\n this._finalizing = false\n this._pending = []\n this._stream = null\n }\n\n entry (header, buffer, callback) {\n if (this._finalized || this.destroying) throw new Error('already finalized or destroyed')\n\n if (typeof buffer === 'function') {\n callback = buffer\n buffer = null\n }\n\n if (!callback) callback = noop\n\n if (!header.size || header.type === 'symlink') header.size = 0\n if (!header.type) header.type = modeToType(header.mode)\n if (!header.mode) header.mode = header.type === 'directory' ? DMODE : FMODE\n if (!header.uid) header.uid = 0\n if (!header.gid) header.gid = 0\n if (!header.mtime) header.mtime = new Date()\n\n if (typeof buffer === 'string') buffer = b4a.from(buffer)\n\n const sink = new Sink(this, header, callback)\n\n if (b4a.isBuffer(buffer)) {\n header.size = buffer.byteLength\n sink.write(buffer)\n sink.end()\n return sink\n }\n\n if (sink._isVoid) {\n return sink\n }\n\n return sink\n }\n\n finalize () {\n if (this._stream || this._pending.length > 0) {\n this._finalizing = true\n return\n }\n\n if (this._finalized) return\n this._finalized = true\n\n this.push(END_OF_TAR)\n this.push(null)\n }\n\n _done (stream) {\n if (stream !== this._stream) return\n\n this._stream = null\n\n if (this._finalizing) this.finalize()\n if (this._pending.length) this._pending.shift()._continueOpen()\n }\n\n _encode (header) {\n if (!header.pax) {\n const buf = headers.encode(header)\n if (buf) {\n this.push(buf)\n return\n }\n }\n this._encodePax(header)\n }\n\n _encodePax (header) {\n const paxHeader = headers.encodePax({\n name: header.name,\n linkname: header.linkname,\n pax: header.pax\n })\n\n const newHeader = {\n name: 'PaxHeader',\n mode: header.mode,\n uid: header.uid,\n gid: header.gid,\n size: paxHeader.byteLength,\n mtime: header.mtime,\n type: 'pax-header',\n linkname: header.linkname && 'PaxHeader',\n uname: header.uname,\n gname: header.gname,\n devmajor: header.devmajor,\n devminor: header.devminor\n }\n\n this.push(headers.encode(newHeader))\n this.push(paxHeader)\n overflow(this, paxHeader.byteLength)\n\n newHeader.size = header.size\n newHeader.type = header.type\n this.push(headers.encode(newHeader))\n }\n\n _doDrain () {\n const drain = this._drain\n this._drain = noop\n drain()\n }\n\n _predestroy () {\n const err = getStreamError(this)\n\n if (this._stream) this._stream.destroy(err)\n\n while (this._pending.length) {\n const stream = this._pending.shift()\n stream.destroy(err)\n stream._continueOpen()\n }\n\n this._doDrain()\n }\n\n _read (cb) {\n this._doDrain()\n cb()\n }\n}\n\nmodule.exports = function pack (opts) {\n return new Pack(opts)\n}\n\nfunction modeToType (mode) {\n switch (mode & constants.S_IFMT) {\n case constants.S_IFBLK: return 'block-device'\n case constants.S_IFCHR: return 'character-device'\n case constants.S_IFDIR: return 'directory'\n case constants.S_IFIFO: return 'fifo'\n case constants.S_IFLNK: return 'symlink'\n }\n\n return 'file'\n}\n\nfunction noop () {}\n\nfunction overflow (self, size) {\n size &= 511\n if (size) self.push(END_OF_TAR.subarray(0, 512 - size))\n}\n\nfunction mapWritable (buf) {\n return b4a.isBuffer(buf) ? buf : b4a.from(buf)\n}\n","const PassThroughDecoder = require('./lib/pass-through-decoder')\nconst UTF8Decoder = require('./lib/utf8-decoder')\n\nmodule.exports = class TextDecoder {\n constructor (encoding = 'utf8') {\n this.encoding = normalizeEncoding(encoding)\n\n switch (this.encoding) {\n case 'utf8':\n this.decoder = new UTF8Decoder()\n break\n case 'utf16le':\n case 'base64':\n throw new Error('Unsupported encoding: ' + this.encoding)\n default:\n this.decoder = new PassThroughDecoder(this.encoding)\n }\n }\n\n get remaining () {\n return this.decoder.remaining\n }\n\n push (data) {\n if (typeof data === 'string') return data\n return this.decoder.decode(data)\n }\n\n // For Node.js compatibility\n write (data) {\n return this.push(data)\n }\n\n end (data) {\n let result = ''\n if (data) result = this.push(data)\n result += this.decoder.flush()\n return result\n }\n}\n\nfunction normalizeEncoding (encoding) {\n encoding = encoding.toLowerCase()\n\n switch (encoding) {\n case 'utf8':\n case 'utf-8':\n return 'utf8'\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le'\n case 'latin1':\n case 'binary':\n return 'latin1'\n case 'base64':\n case 'ascii':\n case 'hex':\n return encoding\n default:\n throw new Error('Unknown encoding: ' + encoding)\n }\n};\n","const b4a = require('b4a')\n\nmodule.exports = class PassThroughDecoder {\n constructor (encoding) {\n this.encoding = encoding\n }\n\n get remaining () {\n return 0\n }\n\n decode (tail) {\n return b4a.toString(tail, this.encoding)\n }\n\n flush () {\n return ''\n }\n}\n","const b4a = require('b4a')\n\n/**\n * https://encoding.spec.whatwg.org/#utf-8-decoder\n */\nmodule.exports = class UTF8Decoder {\n constructor () {\n this.codePoint = 0\n this.bytesSeen = 0\n this.bytesNeeded = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n }\n\n get remaining () {\n return this.bytesSeen\n }\n\n decode (data) {\n // If we have a fast path, just sniff if the last part is a boundary\n if (this.bytesNeeded === 0) {\n let isBoundary = true\n\n for (let i = Math.max(0, data.byteLength - 4), n = data.byteLength; i < n && isBoundary; i++) {\n isBoundary = data[i] <= 0x7f\n }\n\n if (isBoundary) return b4a.toString(data, 'utf8')\n }\n\n let result = ''\n\n for (let i = 0, n = data.byteLength; i < n; i++) {\n const byte = data[i]\n\n if (this.bytesNeeded === 0) {\n if (byte <= 0x7f) {\n result += String.fromCharCode(byte)\n } else {\n this.bytesSeen = 1\n\n if (byte >= 0xc2 && byte <= 0xdf) {\n this.bytesNeeded = 2\n this.codePoint = byte & 0x1f\n } else if (byte >= 0xe0 && byte <= 0xef) {\n if (byte === 0xe0) this.lowerBoundary = 0xa0\n else if (byte === 0xed) this.upperBoundary = 0x9f\n this.bytesNeeded = 3\n this.codePoint = byte & 0xf\n } else if (byte >= 0xf0 && byte <= 0xf4) {\n if (byte === 0xf0) this.lowerBoundary = 0x90\n if (byte === 0xf4) this.upperBoundary = 0x8f\n this.bytesNeeded = 4\n this.codePoint = byte & 0x7\n } else {\n result += '\\ufffd'\n }\n }\n\n continue\n }\n\n if (byte < this.lowerBoundary || byte > this.upperBoundary) {\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n result += '\\ufffd'\n\n continue\n }\n\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n this.codePoint = (this.codePoint << 6) | (byte & 0x3f)\n this.bytesSeen++\n\n if (this.bytesSeen !== this.bytesNeeded) continue\n\n result += String.fromCodePoint(this.codePoint)\n\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n }\n\n return result\n }\n\n flush () {\n const result = this.bytesNeeded > 0 ? '\\ufffd' : ''\n\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n return result\n }\n}\n","/*!\n * to-regex-range \n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n if (isNumber(min) === false) {\n throw new TypeError('toRegexRange: expected the first argument to be a number');\n }\n\n if (max === void 0 || min === max) {\n return String(min);\n }\n\n if (isNumber(max) === false) {\n throw new TypeError('toRegexRange: expected the second argument to be a number.');\n }\n\n let opts = { relaxZeros: true, ...options };\n if (typeof opts.strictZeros === 'boolean') {\n opts.relaxZeros = opts.strictZeros === false;\n }\n\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n\n if (Math.abs(a - b) === 1) {\n let result = min + '|' + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n state.result = `(?:${state.result})`;\n }\n\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n\n let stop = countNines(min, nines);\n let stops = new Set([max]);\n\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n\n stop = countZeros(max + 1, zeros) - 1;\n\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n\n stops = [...stops];\n stops.sort(compare);\n return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = '';\n let count = 0;\n\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n\n if (startDigit === stopDigit) {\n pattern += startDigit;\n\n } else if (startDigit !== '0' || stopDigit !== '9') {\n pattern += toCharacterClass(startDigit, stopDigit, options);\n\n } else {\n count++;\n }\n }\n\n if (count) {\n pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n }\n\n return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n\n for (let i = 0; i < ranges.length; i++) {\n let max = ranges[i];\n let obj = rangeToPattern(String(start), String(max), options);\n let zeros = '';\n\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max + 1;\n continue;\n }\n\n if (tok.isPadded) {\n zeros = padZeros(max, tok, options);\n }\n\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max + 1;\n prev = obj;\n }\n\n return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n let result = [];\n\n for (let ele of arr) {\n let { string } = ele;\n\n // only push if _both_ are negative...\n if (!intersection && !contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n\n // or _both_ are positive\n if (intersection && contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n }\n return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n}\n\nfunction compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n let [start = 0, stop = ''] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? ',' + stop : '')}}`;\n }\n return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n if (!tok.isPadded) {\n return value;\n }\n\n let diff = Math.abs(tok.maxLen - String(value).length);\n let relax = options.relaxZeros !== false;\n\n switch (diff) {\n case 0:\n return '';\n case 1:\n return relax ? '0?' : '0';\n case 2:\n return relax ? '0{0,2}' : '00';\n default: {\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\n }\n }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __esDecorate;\r\nvar __runInitializers;\r\nvar __propKey;\r\nvar __setFunctionName;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\nvar __addDisposableResource;\r\nvar __disposeResources;\r\nvar __rewriteRelativeImportExtension;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n };\r\n\r\n __runInitializers = function (thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n };\r\n\r\n __propKey = function (x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n };\r\n\r\n __setFunctionName = function (f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n var ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n __addDisposableResource = function (env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n };\r\n\r\n var _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n };\r\n\r\n __disposeResources = function (env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n };\r\n\r\n __rewriteRelativeImportExtension = function (path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__esDecorate\", __esDecorate);\r\n exporter(\"__runInitializers\", __runInitializers);\r\n exporter(\"__propKey\", __propKey);\r\n exporter(\"__setFunctionName\", __setFunctionName);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n exporter(\"__addDisposableResource\", __addDisposableResource);\r\n exporter(\"__disposeResources\", __disposeResources);\r\n exporter(\"__rewriteRelativeImportExtension\", __rewriteRelativeImportExtension);\r\n});\r\n\r\n0 && (module.exports = {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __exportStar: __exportStar,\r\n __createBinding: __createBinding,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n});\r\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst RetryHandler = require('./lib/handler/RetryHandler')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\nmodule.exports.RetryHandler = RetryHandler\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n if (typeof err === 'object') {\n Error.captureStackTrace(err, this)\n }\n\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n","'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n","const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n","'use strict'\n\nconst { AsyncResource } = require('async_hooks')\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n\n let headers = rawHeaders\n // Indicates is an HTTP2Session\n if (headers != null) {\n headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n","'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n","'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\nmodule.exports.RequestHandler = RequestHandler\n","'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n if (factory === null) {\n return\n }\n\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res ? res.write(chunk) : true\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n if (!res) {\n return\n }\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n","'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n","// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nconst noop = () => {}\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n\n if (signal) {\n try {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n if (this.closed) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve, reject) => {\n const signalListenerCleanup = signal\n ? util.addAbortListener(signal, () => {\n this.destroy()\n })\n : noop\n\n this\n .on('close', function () {\n signalListenerCleanup()\n if (signal && signal.aborted) {\n reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' }))\n } else {\n resolve(null)\n }\n })\n .on('error', noop)\n .on('data', function (chunk) {\n limit -= chunk.length\n if (limit <= 0) {\n this.destroy()\n }\n })\n .resume()\n })\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst.buffer)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n","const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n","'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject)\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n","'use strict'\n\nmodule.exports = {\n kConstruct: require('../core/symbols').kConstruct\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n","// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst http = require('http')\nconst { pipeline } = require('stream')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize,\n kHTTPConnVersion,\n // HTTP2\n kHost,\n kHTTP2Session,\n kHTTP2SessionState,\n kHTTP2BuildRequest,\n kHTTP2CopyHeaders,\n kHTTP1BuildRequest\n} = require('./core/symbols')\n\n/** @type {import('http2')} */\nlet http2\ntry {\n http2 = require('http2')\n} catch {\n // @ts-ignore\n http2 = { constants: {} }\n}\n\nconst {\n constants: {\n HTTP2_HEADER_AUTHORITY,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_CONTENT_LENGTH,\n HTTP2_HEADER_EXPECT,\n HTTP2_HEADER_STATUS\n }\n} = http2\n\n// Experimental\nlet h2ExperimentalWarned = false\n\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n // h2\n allowH2,\n maxConcurrentStreams\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n // h2\n if (allowH2 != null && typeof allowH2 !== 'boolean') {\n throw new InvalidArgumentError('allowH2 must be a valid boolean value')\n }\n\n if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) {\n throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n this[kHTTPConnVersion] = 'h1'\n\n // HTTP/2\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = !allowH2\n ? null\n : {\n // streams: null, // Fixed queue of streams - For future support of `push`\n openStreams: 0, // Keep track of them to decide wether or not unref the session\n maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server\n }\n this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = this[kHTTPConnVersion] === 'h2'\n ? Request[kHTTP2BuildRequest](origin, opts, handler)\n : Request[kHTTP1BuildRequest](origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n // TODO: for H2 we need to gracefully flush the remaining enqueued\n // request and close each stream.\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (this[kHTTP2Session] != null) {\n util.destroy(this[kHTTP2Session], err)\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = null\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nfunction onHttp2SessionError (err) {\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n this[kSocket][kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onHttp2FrameError (type, code, id) {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n\n if (id === 0) {\n this[kSocket][kError] = err\n onError(this[kClient], err)\n }\n}\n\nfunction onHttp2SessionEnd () {\n util.destroy(this, new SocketError('other side closed'))\n util.destroy(this[kSocket], new SocketError('other side closed'))\n}\n\nfunction onHTTP2GoAway (code) {\n const client = this[kClient]\n const err = new InformationalError(`HTTP/2: \"GOAWAY\" frame received with code ${code}`)\n client[kSocket] = null\n client[kHTTP2Session] = null\n\n if (client.destroyed) {\n assert(this[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n } else if (client[kRunning] > 0) {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect',\n client[kUrl],\n [client],\n err\n )\n\n resume(client)\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n\n if (request.aborted) {\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n request.onComplete(headers)\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n if (parser) {\n parser.readMore()\n }\n}\n\nfunction onSocketError (err) {\n const { [kClient]: client, [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n if (client[kHTTPConnVersion] !== 'h2') {\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser, [kClient]: client } = this\n\n if (client[kHTTPConnVersion] !== 'h2') {\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client, [kParser]: parser } = this\n\n if (client[kHTTPConnVersion] === 'h1' && parser) {\n if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n }\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substring(1, idx)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n const isH2 = socket.alpnProtocol === 'h2'\n if (isH2) {\n if (!h2ExperimentalWarned) {\n h2ExperimentalWarned = true\n process.emitWarning('H2 support is experimental, expect them to change at any time.', {\n code: 'UNDICI-H2'\n })\n }\n\n const session = http2.connect(client[kUrl], {\n createConnection: () => socket,\n peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams\n })\n\n client[kHTTPConnVersion] = 'h2'\n session[kClient] = client\n session[kSocket] = socket\n session.on('error', onHttp2SessionError)\n session.on('frameError', onHttp2FrameError)\n session.on('end', onHttp2SessionEnd)\n session.on('goaway', onHTTP2GoAway)\n session.on('close', onSocketClose)\n session.unref()\n\n client[kHTTP2Session] = session\n socket[kHTTP2Session] = session\n } else {\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n }\n\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket[kClient] = client\n socket[kError] = null\n\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket && !client[kHTTP2Session]) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\n// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2\nfunction shouldSendContentLength (method) {\n return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT'\n}\n\nfunction write (client, request) {\n if (client[kHTTPConnVersion] === 'h2') {\n writeH2(client, client[kHTTP2Session], request)\n return\n }\n\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n const bodyLength = util.bodyLength(body)\n\n let contentLength = bodyLength\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body || bodyLength === 0) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeH2 (client, session, request) {\n const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request\n\n let headers\n if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim())\n else headers = reqHeaders\n\n if (upgrade) {\n errorRequest(client, request, new Error('Upgrade not supported for H2'))\n return false\n }\n\n try {\n // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event?\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n /** @type {import('node:http2').ClientHttp2Stream} */\n let stream\n const h2State = client[kHTTP2SessionState]\n\n headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]\n headers[HTTP2_HEADER_METHOD] = method\n\n if (method === 'CONNECT') {\n session.ref()\n // we are already connected, streams are pending, first request\n // will create a new stream. We trigger a request to create the stream and wait until\n // `ready` event is triggered\n // We disabled endStream to allow the user to write to the stream\n stream = session.request(headers, { endStream: false, signal })\n\n if (stream.id && !stream.pending) {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n } else {\n stream.once('ready', () => {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n })\n }\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) session.unref()\n })\n\n return true\n }\n\n // https://tools.ietf.org/html/rfc7540#section-8.3\n // :path and :scheme headers must be omited when sending CONNECT\n\n headers[HTTP2_HEADER_PATH] = path\n headers[HTTP2_HEADER_SCHEME] = 'https'\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength == null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 || !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (contentLength != null) {\n assert(body, 'no body must not have content length')\n headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`\n }\n\n session.ref()\n\n const shouldEndStream = method === 'GET' || method === 'HEAD'\n if (expectContinue) {\n headers[HTTP2_HEADER_EXPECT] = '100-continue'\n stream = session.request(headers, { endStream: shouldEndStream, signal })\n\n stream.once('continue', writeBodyH2)\n } else {\n stream = session.request(headers, {\n endStream: shouldEndStream,\n signal\n })\n writeBodyH2()\n }\n\n // Increment counter as we have new several streams open\n ++h2State.openStreams\n\n stream.once('response', headers => {\n const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers\n\n if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) {\n stream.pause()\n }\n })\n\n stream.once('end', () => {\n request.onComplete([])\n })\n\n stream.on('data', (chunk) => {\n if (request.onData(chunk) === false) {\n stream.pause()\n }\n })\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) {\n session.unref()\n }\n })\n\n stream.once('error', function (err) {\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n stream.once('frameError', (type, code) => {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n errorRequest(client, request, err)\n\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n // stream.on('aborted', () => {\n // // TODO(HTTP/2): Support aborted\n // })\n\n // stream.on('timeout', () => {\n // // TODO(HTTP/2): Support timeout\n // })\n\n // stream.on('push', headers => {\n // // TODO(HTTP/2): Suppor push\n // })\n\n // stream.on('trailers', headers => {\n // // TODO(HTTP/2): Support trailers\n // })\n\n return true\n\n function writeBodyH2 () {\n /* istanbul ignore else: assertion */\n if (!body) {\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n stream.cork()\n stream.write(body)\n stream.uncork()\n stream.end()\n request.onBodySent(body)\n request.onRequestSent()\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({\n client,\n request,\n contentLength,\n h2stream: stream,\n expectsPayload,\n body: body.stream(),\n socket: client[kSocket],\n header: ''\n })\n } else {\n writeBlob({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n h2stream: stream,\n header: '',\n socket: client[kSocket]\n })\n }\n } else if (util.isStream(body)) {\n writeStream({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n socket: client[kSocket],\n h2stream: stream,\n header: ''\n })\n } else if (util.isIterable(body)) {\n writeIterable({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n header: '',\n h2stream: stream,\n socket: client[kSocket]\n })\n } else {\n assert(false)\n }\n }\n}\n\nfunction writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n if (client[kHTTPConnVersion] === 'h2') {\n // For HTTP/2, is enough to pipe the stream\n const pipe = pipeline(\n body,\n h2stream,\n (err) => {\n if (err) {\n util.destroy(body, err)\n util.destroy(h2stream, err)\n } else {\n request.onRequestSent()\n }\n }\n )\n\n pipe.on('data', onPipeData)\n pipe.once('end', () => {\n pipe.removeListener('data', onPipeData)\n util.destroy(pipe)\n })\n\n function onPipeData (chunk) {\n request.onBodySent(chunk)\n }\n\n return\n }\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n if (finished) {\n return\n }\n const err = new RequestAbortedError()\n queueMicrotask(() => onFinished(err))\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n const isH2 = client[kHTTPConnVersion] === 'h2'\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n if (isH2) {\n h2stream.cork()\n h2stream.write(buffer)\n h2stream.uncork()\n } else {\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n }\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(isH2 ? h2stream : socket, err)\n }\n}\n\nasync function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n if (client[kHTTPConnVersion] === 'h2') {\n h2stream\n .on('close', onDrain)\n .on('drain', onDrain)\n\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n const res = h2stream.write(chunk)\n request.onBodySent(chunk)\n if (!res) {\n await waitForDrain()\n }\n }\n } catch (err) {\n h2stream.destroy(err)\n } finally {\n request.onRequestSent()\n h2stream.end()\n h2stream\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n\n return\n }\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n","'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n if (dispatcher.on) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n }\n}\n\nmodule.exports = function () {\n // FIXME: remove workaround when the Node bug is fixed\n // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\n if (process.env.NODE_V8_COVERAGE) {\n return {\n WeakRef: CompatWeakRef,\n FinalizationRegistry: CompatFinalizer\n }\n }\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n","'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n","'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = headers.getSetCookie()\n\n if (!cookies) {\n return []\n }\n\n return cookies.map((pair) => parseSetCookie(pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n","'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n","'use strict'\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = \n token = 1*\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = \n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n validateCookieName,\n validateCookiePath,\n validateCookieValue,\n toIMFDate,\n stringify\n}\n","'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\n// FIXME: remove workaround when the Node bug is fixed\n// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\nif (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n allowH2 = allowH2 != null ? allowH2 : false\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n // TODO(HTTP/2): Add support for h2c\n ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'],\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n","'use strict'\n\n/** @type {Record} */\nconst headerNameLowerCasedRecord = {}\n\n// https://developer.mozilla.org/docs/Web/HTTP/Headers\nconst wellknownHeaderNames = [\n 'Accept',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Alt-Svc',\n 'Alt-Used',\n 'Authorization',\n 'Cache-Control',\n 'Clear-Site-Data',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-Range',\n 'Content-Security-Policy',\n 'Content-Security-Policy-Report-Only',\n 'Content-Type',\n 'Cookie',\n 'Cross-Origin-Embedder-Policy',\n 'Cross-Origin-Opener-Policy',\n 'Cross-Origin-Resource-Policy',\n 'Date',\n 'Device-Memory',\n 'Downlink',\n 'ECT',\n 'ETag',\n 'Expect',\n 'Expect-CT',\n 'Expires',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Link',\n 'Location',\n 'Max-Forwards',\n 'Origin',\n 'Permissions-Policy',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'RTT',\n 'Range',\n 'Referer',\n 'Referrer-Policy',\n 'Refresh',\n 'Retry-After',\n 'Sec-WebSocket-Accept',\n 'Sec-WebSocket-Extensions',\n 'Sec-WebSocket-Key',\n 'Sec-WebSocket-Protocol',\n 'Sec-WebSocket-Version',\n 'Server',\n 'Server-Timing',\n 'Service-Worker-Allowed',\n 'Service-Worker-Navigation-Preload',\n 'Set-Cookie',\n 'SourceMap',\n 'Strict-Transport-Security',\n 'Supports-Loading-Mode',\n 'TE',\n 'Timing-Allow-Origin',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'Upgrade-Insecure-Requests',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'WWW-Authenticate',\n 'X-Content-Type-Options',\n 'X-DNS-Prefetch-Control',\n 'X-Frame-Options',\n 'X-Permitted-Cross-Domain-Policies',\n 'X-Powered-By',\n 'X-Requested-With',\n 'X-XSS-Protection'\n]\n\nfor (let i = 0; i < wellknownHeaderNames.length; ++i) {\n const key = wellknownHeaderNames[i]\n const lowerCasedKey = key.toLowerCase()\n headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] =\n lowerCasedKey\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(headerNameLowerCasedRecord, null)\n\nmodule.exports = {\n wellknownHeaderNames,\n headerNameLowerCasedRecord\n}\n","'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nclass RequestRetryError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n Error.captureStackTrace(this, RequestRetryError)\n this.name = 'RequestRetryError'\n this.message = message || 'Request retry error'\n this.code = 'UND_ERR_REQ_RETRY'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError,\n RequestRetryError\n}\n","'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require('./symbols')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n util.destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n // TODO: adjust to support H2\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n\n static [kHTTP1BuildRequest] (origin, opts, handler) {\n // TODO: Migrate header parsing here, to make Requests\n // HTTP agnostic\n return new Request(origin, opts, handler)\n }\n\n static [kHTTP2BuildRequest] (origin, opts, handler) {\n const headers = opts.headers\n opts = { ...opts, headers: null }\n\n const request = new Request(origin, opts, handler)\n\n request.headers = {}\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(request, headers[i], headers[i + 1], true)\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(request, key, headers[key], true)\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n return request\n }\n\n static [kHTTP2CopyHeaders] (raw) {\n const rawHeaders = raw.split('\\r\\n')\n const headers = {}\n\n for (const header of rawHeaders) {\n const [key, value] = header.split(': ')\n\n if (value == null || value.length === 0) continue\n\n if (headers[key]) headers[key] += `,${value}`\n else headers[key] = value\n }\n\n return headers\n }\n}\n\nfunction processHeaderValue (key, val, skipAppend) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return skipAppend ? val : `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val, skipAppend = false) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n if (skipAppend) {\n if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`\n else request.headers[key] = processHeaderValue(key, val[i], skipAppend)\n } else {\n request.headers += processHeaderValue(key, val[i])\n }\n }\n } else {\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n","module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size'),\n kHTTP2Session: Symbol('http2Session'),\n kHTTP2SessionState: Symbol('http2Session state'),\n kHTTP2BuildRequest: Symbol('http2 build request'),\n kHTTP1BuildRequest: Symbol('http1 build request'),\n kHTTP2CopyHeaders: Symbol('http2 copy headers'),\n kHTTPConnVersion: Symbol('http connection version'),\n kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),\n kConstruct: Symbol('constructable')\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substring(1, idx)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substring(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (stream == null || !isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\n/**\n * Retrieves a header name and returns its lowercase value.\n * @param {string | Buffer} value Header name\n * @returns {string}\n */\nfunction headerNameToString (value) {\n return headerNameLowerCasedRecord[value] || value.toLowerCase()\n}\n\nfunction parseHeaders (headers, obj = {}) {\n // For H2 support\n if (!Array.isArray(headers)) return headers\n\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1].map(x => x.toString('utf8'))\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nasync function * convertIterableToBuffer (iterable) {\n for await (const chunk of iterable) {\n yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n return ReadableStream.from(convertIterableToBuffer(iterable))\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nfunction addAbortListener (signal, listener) {\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\n// Parsed accordingly to RFC 9110\n// https://www.rfc-editor.org/rfc/rfc9110#field.content-range\nfunction parseRangeHeader (range) {\n if (range == null || range === '') return { start: 0, end: null, size: null }\n\n const m = range ? range.match(/^bytes (\\d+)-(\\d+)\\/(\\d+)?$/) : null\n return m\n ? {\n start: parseInt(m[1]),\n end: m[2] ? parseInt(m[2]) : null,\n size: m[3] ? parseInt(m[3]) : null\n }\n : null\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n headerNameToString,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n parseRangeHeader,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13),\n safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n}\n","'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n","'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n","'use strict'\n\nconst Busboy = require('@fastify/busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet random\ntry {\n const crypto = require('node:crypto')\n random = (max) => crypto.randomInt(0, max)\n} catch {\n random = (max) => Math.floor(Math.random(max))\n}\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object’s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? textEncoder.encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy Wärting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object’s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = textEncoder.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = textEncoder.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = textEncoder.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object’s size.\n length = object.size\n\n // If object’s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source’s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let « out1, out2 » be the result of teeing body’s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body’s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this’s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType’s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = new Busboy({\n headers,\n preservePath: true\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, filename, encoding, mimeType) => {\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType’s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n // Note that streaming decoder is stateful and cannot be reused\n const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += streamingDecoder.decode(chunk, { stream: true })\n }\n text += streamingDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object’s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object’s body given successSteps,\n // errorSteps, and object’s relevant global object.\n await fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body’s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8’s\n // decoder, ioQueue, output, and \"replacement\".\n const output = textDecoder.decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n","'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\nconst corsSafeListedMethodsSet = new Set(corsSafeListedMethods)\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\nconst redirectStatusSet = new Set(redirectStatus)\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nconst badPortsSet = new Set(badPorts)\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\nconst referrerPolicySet = new Set(referrerPolicy)\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\nconst safeMethodsSet = new Set(safeMethods)\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\nconst forbiddenMethodsSet = new Set(forbiddenMethods)\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\nconst subresourceSet = new Set(subresource)\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex,\n subresourceSet,\n badPortsSet,\n redirectStatusSet,\n corsSafeListedMethodsSet,\n safeMethodsSet,\n forbiddenMethodsSet,\n referrerPolicySet\n}\n","const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL’s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n if (!excludeFragment) {\n return url.href\n }\n\n const href = url.href\n const hashLength = url.hash.length\n\n return hashLength === 0 ? href : href.substring(0, href.length - hashLength)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn’t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType’s parameters[parameterName] does not exist\n // then set mimeType’s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data’s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data’s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType’s\n // type, U+002F (/), and mimeType’s subtype.\n let serialization = essence\n\n // 2. For each name → value of mimeType’s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n","'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\nconst encoder = new TextEncoder()\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(encoder.encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform’s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n","'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this’s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this’s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this’s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this’s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this’s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this’s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this’s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n","'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst util = require('util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @param {number} code\n */\nfunction isHTTPWhiteSpaceCharCode (code) {\n return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n let i = 0; let j = potentialValue.length\n\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i\n\n return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j)\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; ++i) {\n const header = object[i]\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header’s first item, header’s second item) to headers.\n appendHeader(headers, header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key → value in object,\n // append (key, value) to headers\n const keys = Object.keys(object)\n for (let i = 0; i < keys.length; ++i) {\n appendHeader(headers, keys[i], object[keys[i]])\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-headers-append\n */\nfunction appendHeader (headers, name, value) {\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers’s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (headers[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (headers[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers’s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers’s header list.\n return headers[kHeadersList].append(name, value)\n\n // 8. If headers’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies === null ? null : [...init.cookies]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header’s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n const value = this[kHeadersMap].get(name.toLowerCase())\n\n // 1. If list does not contain name, then return null.\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return value === undefined ? null : value.value\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n if (init === kConstruct) {\n return\n }\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this’s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n return appendHeader(this, name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this’s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this’s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this’s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this’s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this’s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this’s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this’s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this’s header list does not contain `Set-Cookie`, then return « ».\n // 2. Return the values of all headers in this’s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (let i = 0; i < names.length; ++i) {\n const [name, value] = names[i]\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (let j = 0; j < cookies.length; ++j) {\n headers.push([name, cookies[j]])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key+value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n },\n [util.inspect.custom]: {\n enumerable: false\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n safeMethodsSet,\n requestBodyHeader,\n subresourceSet,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\nconst GET_OR_HEAD = ['GET', 'HEAD']\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller’s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller’s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nfunction fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject’s request.\n const request = requestObject[kState]\n\n // 4. If requestObject’s signal’s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject’s signal’s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request’s client’s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request’s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this’s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject’s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject’s signal’s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject’s signal’s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return Promise.resolve()\n }\n\n // 2. If response’s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller’s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return Promise.resolve()\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return Promise.resolve()\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response’s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response’s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response’s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response’s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response’s timing allow passed flag is not set, then:\n if (!response.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo’s end time to the coarsened shared current time\n // given global’s relevant settings object’s cross-origin isolated\n // capability.\n // TODO: given global’s relevant settings object’s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request’s body is not null and is readable, then cancel request’s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject’s response.\n const response = responseObject[kState]\n\n // 5. If response’s body is not null and is readable, then error response’s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request’s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request’s client’s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request’s body is a byte sequence, then set request’s body to\n // request’s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request’s window is \"client\", then set request’s window to request’s\n // client, if request’s client’s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request’s origin is \"client\", then set request’s origin to request’s\n // client’s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request’s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request’s client is non-null, then set request’s policy\n // container to a clone of request’s client’s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request’s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request’s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request’s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request’s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request’s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request’s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request’s priority is null, then use request’s initiator and\n // destination appropriately in setting request’s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresourceSet.has(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request’s local-URLs-only flag is set and request’s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request’s referrer policy is the empty string, then set request’s\n // referrer policy to request’s policy container’s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request’s referrer is not \"no-referrer\", then set request’s\n // referrer to the result of invoking determine request’s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request’s current URL’s scheme to \"https\" if all of the following\n // conditions are true:\n // - request’s current URL’s scheme is \"http\"\n // - request’s current URL’s host is a domain\n // - Matching request’s current URL’s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request’s current URL’s origin is same origin with request’s origin,\n // and request’s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request’s current URL’s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request’s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request’s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request’s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request’s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request’s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s current URL’s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request’s use-CORS-preflight flag is set\n // - request’s unsafe-request flag is set and either request’s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request’s header list is not empty\n // 1. Set request’s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request’s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request’s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response’s header list.\n // TODO\n // 2. If request’s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response’s CORS-exposed header-name list to\n // all unique header names in response’s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response’s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response’s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse’s URL list is empty, then set it to a clone of\n // request’s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request’s timing allow failed flag is unset, then set\n // internalResponse’s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response’s type is \"opaque\", internalResponse’s status is 206,\n // internalResponse’s range-requested flag is set, and request’s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request’s method is\n // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status,\n // set internalResponse’s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request’s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request’s response tainting is \"opaque\", or response’s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request’s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response’s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response’s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nfunction schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return Promise.resolve(makeAppropriateNetworkError(fetchParams))\n }\n\n // 2. Let request be fetchParams’s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request’s current URL’s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request’s current URL’s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) »,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return Promise.resolve(makeNetworkError('about scheme is not supported'))\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request’s current URL’s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.'))\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return Promise.resolve(makeNetworkError('invalid method'))\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType’s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body’s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // « (`Content-Length`, length), (`Content-Type`, type) », and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return Promise.resolve(response)\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request’s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return Promise.resolve(makeNetworkError('failed to fetch the data URL'))\n }\n\n // 3. Let mimeType be dataURLStruct’s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is « (`Content-Type`, mimeType) »,\n // and body is dataURLStruct’s body as a body.\n return Promise.resolve(makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n }))\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return Promise.resolve(makeNetworkError('not implemented... yet...'))\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return Promise.resolve(makeNetworkError('unknown scheme'))\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams’s process response done is not null, then queue a fetch\n // task to run fetchParams’s process response done given response, with\n // fetchParams’s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nfunction fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ».\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response’s timing info to the result of creating an opaque timing\n // info for fetchParams’s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // If fetchParams’s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams’s process response\n // end-of-body given response with fetchParams’s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams’s process response is non-null, then queue a fetch task\n // to run fetchParams’s process response given response, with fetchParams’s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response’s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response’s body to the result of piping response’s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams’s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams’s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams’s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response’s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams’s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response’s body given processBody, processBodyError,\n // and fetchParams’s task destination.\n return fullyReadBody(response.body, processBody, processBodyError)\n }\n return Promise.resolve()\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request’s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request’s redirect mode is \"follow\", then set request’s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request’s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request’s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request’s response tainting or response’s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request’s origin, request’s client, request’s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse’s status is a redirect status, then:\n if (redirectStatusSet.has(actualResponse.status)) {\n // 1. If actualResponse’s status is not 303, request’s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request’s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nfunction httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response’s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse’s location URL given request’s current\n // URL’s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return Promise.resolve(makeNetworkError(err))\n }\n\n // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme'))\n }\n\n // 7. If request’s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return Promise.resolve(makeNetworkError('redirect count exceeded'))\n }\n\n // 8. Increase request’s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request’s mode is \"cors\", locationURL includes credentials, and\n // request’s origin is not same origin with locationURL’s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return Promise.resolve(makeNetworkError('cross origin not allowed for request mode \"cors\"'))\n }\n\n // 10. If request’s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return Promise.resolve(makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n ))\n }\n\n // 11. If actualResponse’s status is not 303, request’s body is non-null,\n // and request’s body’s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return Promise.resolve(makeNetworkError())\n }\n\n // 12. If one of the following is true\n // - actualResponse’s status is 301 or 302 and request’s method is `POST`\n // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !GET_OR_HEAD.includes(request.method))\n ) {\n // then:\n // 1. Set request’s method to `GET` and request’s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request’s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request’s current URL’s origin is not same origin with locationURL’s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request’s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n\n // https://fetch.spec.whatwg.org/#authentication-entries\n request.headersList.delete('proxy-authorization', true)\n\n // \"Cookie\" and \"Host\" are forbidden request-headers, which undici doesn't implement.\n request.headersList.delete('cookie')\n request.headersList.delete('host')\n }\n\n // 14. If request’s body is non-null, then set request’s body to the first return\n // value of safely extracting request’s body’s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo’s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams’s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s\n // redirect start time to timingInfo’s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request’s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request’s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request’s window is \"no-window\" and request’s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams’s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest’s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest’s header list.\n\n // 10. If contentLength is non-null and httpRequest’s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest’s referrer is a URL, then append\n // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded,\n // to httpRequest’s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest’s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest’s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node')\n }\n\n // 15. If httpRequest’s cache mode is \"default\" and httpRequest’s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest’s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest’s cache mode is \"no-cache\", httpRequest’s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest’s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest’s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest’s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest’s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest’s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest’s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest’s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest’s header list per HTTP. Do not append a given\n // header if httpRequest’s header list contains that header’s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n httpRequest.headersList.delete('host')\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest’s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there’s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest’s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest’s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest’s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest’s method is unsafe and forwardResponse’s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethodsSet.has(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse’s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response’s URL list to a clone of httpRequest’s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest’s header list contains `Range`, then set response’s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response’s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response’s status is 401, httpRequest’s response tainting is not\n // \"cors\", includeCredentials is true, and request’s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response’s status is 407, then:\n if (response.status === 407) {\n // 1. If request’s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request’s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response’s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request’s body is null, or request’s body is non-null and request’s body’s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request’s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request’s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request’s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request’s current URL’s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo’s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection’s\n // timing info, timingInfo’s post-redirect start time, and fetchParams’s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request’s body is non-null,\n // and request’s body’s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request’s header list.\n\n // 4. Set timingInfo’s final network-request start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request’s body is non-null, and request’s body’s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request’s body in that buffer. If the user agent reads from\n // request’s body beyond that buffer’s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo’s final network-response start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated capability,\n // immediately after the user agent’s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo’s final network-response start time above.\n\n // - If request’s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request’s window is an environment settings object, make the\n // dialog available in request’s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request’s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams’s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams’s process request\n // end-of-body and fetchParams’s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams’s process request body is non-null, then run\n // fetchParams’s process request body given bytes’s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams’s process request end-of-body is non-null,\n // then run fetchParams’s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams’s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams’s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams, err)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response’s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request’s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response’s header list, if any, and request’s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response’s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo’s decoded body size by bytes’s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams’s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn’t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response’s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams’s\n // controller’s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n\n // For H2, the headers are a plain JS object\n // We distinguish between them and iterate accordingly\n if (Array.isArray(headersList)) {\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n } else {\n const keys = Object.keys(headersList)\n for (const key of keys) {\n const val = headersList[key]\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatusSet.has(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response’s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response’s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo’s encoded body size by bytes’s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers[kHeadersList].append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n","/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer,\n normalizeMethodRecord\n} = require('./util')\nconst {\n forbiddenMethodsSet,\n corsSafeListedMethodsSet,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kConstruct) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this’s relevant settings object’s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input’s request.\n request = input[kState]\n\n // 9. Set signal to input’s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this’s relevant settings object’s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request’s window is an environment settings object and its origin\n // is same origin with origin, then set window to request’s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request’s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request’s method.\n method: request.method,\n // header list A copy of request’s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This’s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request’s priority.\n priority: request.priority,\n // origin request’s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request’s referrer.\n referrer: request.referrer,\n // referrer policy request’s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request’s mode.\n mode: request.mode,\n // credentials mode request’s credentials mode.\n credentials: request.credentials,\n // cache mode request’s cache mode.\n cache: request.cache,\n // redirect mode request’s redirect mode.\n redirect: request.redirect,\n // integrity metadata request’s integrity metadata.\n integrity: request.integrity,\n // keepalive request’s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request’s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request’s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request’s URL list.\n urlList: [...request.urlList]\n })\n\n const initHasKey = Object.keys(init).length !== 0\n\n // 13. If init is not empty, then:\n if (initHasKey) {\n // 1. If request’s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request’s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request’s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request’s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request’s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request’s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request’s URL to request’s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request’s URL list to « request’s URL ».\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request’s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer’s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer’s origin is not same origin with origin\n // then set request’s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request’s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request’s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request’s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request’s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request’s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request’s cache mode is \"only-if-cached\" and request’s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request’s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request’s integrity metadata to it.\n if (init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request’s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(method)) {\n throw new TypeError(`'${method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethodsSet.has(method.toUpperCase())) {\n throw new TypeError(`'${method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethodRecord[method] ?? normalizeMethod(method)\n\n // 4. Set request’s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this’s request to request.\n this[kState] = request\n\n // 28. Set this’s signal to a new AbortSignal object with this’s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this’s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is request’s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this’s request’s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this’s request’s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethodsSet.has(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this’s headers’s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (initHasKey) {\n /** @type {HeadersList} */\n const headersList = this[kHeaders][kHeadersList]\n // 1. Let headers be a copy of this’s headers and its associated header\n // list.\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList)\n\n // 3. Empty this’s headers’s header list.\n headersList.clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header’s name/header’s value to this’s headers.\n if (headers instanceof HeadersList) {\n for (const [key, val] of headers) {\n headersList.append(key, val)\n }\n // Note: Copy the `set-cookie` meta-data.\n headersList.cookies = headers.cookies\n } else {\n // 5. Otherwise, fill this’s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input’s request’s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request’s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request’s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this’s headers’s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this’s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this’s request’s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this’s request’s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this’s request’s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request’s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this’s request’s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this’s request’s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this’s request’s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global’s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this’s request’s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this’s request’s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this’s request’s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request’s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this’s request’s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this’s request’s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this’s request’s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser’s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this’s request’s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this’s request’s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request’s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this’s request’s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this’s request’s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this’s\n // request’s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this’s request’s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this’s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this’s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this’s headers’s guard, and this’s relevant Realm.\n const clonedRequestObject = new Request(kConstruct)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers(kConstruct)\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject’s signal follow this’s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request’s body is non-null, set newRequest’s body to the\n // result of cloning request’s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n","'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\nconst textEncoder = new TextEncoder('utf-8')\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this’s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = textEncoder.encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this’s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object’s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatusSet.has(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this’s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject’s response’s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject’s response’s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this’s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is this’s response’s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response’s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this’s response’s type.\n return this[kState].type\n }\n\n // Returns response’s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this’s\n // response’s URL is null; otherwise this’s response’s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this’s response’s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response’s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this’s response’s status.\n return this[kState].status\n }\n\n // Returns whether response’s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this’s response’s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response’s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this’s response’s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response’s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this’s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this’s headers’s guard, and this’s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response’s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response’s body is non-null, then set newResponse’s body to the\n // result of cloning response’s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response’s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response’s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response’s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams, err = null) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err }))\n : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err }))\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response’s response’s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response’s response’s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response’s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n","'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n","'use strict'\n\nconst { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\nlet supportedHashes = []\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n const possibleRelevantHashes = ['sha256', 'sha384', 'sha512']\n supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash))\n/* c8 ignore next 3 */\n} catch {\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response’s URL list and null if response’s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response’s status is not a redirect status, then return null.\n if (!redirectStatusSet.has(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response’s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response’s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location’s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request’s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n * @param {number} c\n */\nfunction isTokenCharCode (c) {\n switch (c) {\n case 0x22:\n case 0x28:\n case 0x29:\n case 0x2c:\n case 0x2f:\n case 0x3a:\n case 0x3b:\n case 0x3c:\n case 0x3d:\n case 0x3e:\n case 0x3f:\n case 0x40:\n case 0x5b:\n case 0x5c:\n case 0x5d:\n case 0x7b:\n case 0x7d:\n // DQUOTE and \"(),/:;<=>?@[\\]{}\"\n return false\n default:\n // VCHAR %x21-7E\n return c >= 0x21 && c <= 0x7e\n }\n}\n\n/**\n * @param {string} characters\n */\nfunction isValidHTTPToken (characters) {\n if (characters.length === 0) {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n if (!isTokenCharCode(characters.charCodeAt(i))) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-name\n * @param {string} potentialValue\n */\nfunction isValidHeaderName (potentialValue) {\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request’s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing § 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.has(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request’s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r’s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header’s value to r’s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request’s response tainting is \"cors\" or request’s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request’s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request’s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request’s origin is a tuple origin, its scheme is \"https\", and request’s current URL’s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request’s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request’s client.\n\n let referrerSource = null\n\n // 3. Switch on request’s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request’s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request’s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request’s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request’s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url’s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url’s username to the empty string.\n url.username = ''\n\n // 4. Set url’s password to the empty string.\n url.password = ''\n\n // 5. Set url’s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url’s path to « the empty string ».\n url.pathname = ''\n\n // 2. Set url’s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If response is not eligible for integrity validation, return false.\n // TODO\n\n // 4. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 5. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const strongest = getStrongestMetadata(parsedMetadata)\n const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest)\n\n // 6. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e\n // \"be liberal with padding\". This is annoying, and it's not even in the spec.\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n if (actualValue[actualValue.length - 1] === '=') {\n if (actualValue[actualValue.length - 2] === '=') {\n actualValue = actualValue.slice(0, -2)\n } else {\n actualValue = actualValue.slice(0, -1)\n }\n }\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (compareBase64Mixed(actualValue, expectedValue)) {\n return true\n }\n }\n\n // 7. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\\s|$)( +[!-~]*)?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (\n parsedToken === null ||\n parsedToken.groups === undefined ||\n parsedToken.groups.algo === undefined\n ) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo.toLowerCase()\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm)) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n/**\n * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList\n */\nfunction getStrongestMetadata (metadataList) {\n // Let algorithm be the algo component of the first item in metadataList.\n // Can be sha256\n let algorithm = metadataList[0].algo\n // If the algorithm is sha512, then it is the strongest\n // and we can return immediately\n if (algorithm[3] === '5') {\n return algorithm\n }\n\n for (let i = 1; i < metadataList.length; ++i) {\n const metadata = metadataList[i]\n // If the algorithm is sha512, then it is the strongest\n // and we can break the loop immediately\n if (metadata.algo[3] === '5') {\n algorithm = 'sha512'\n break\n // If the algorithm is sha384, then a potential sha256 or sha384 is ignored\n } else if (algorithm[3] === '3') {\n continue\n // algorithm is sha256, check if algorithm is sha384 and if so, set it as\n // the strongest\n } else if (metadata.algo[3] === '3') {\n algorithm = 'sha384'\n }\n }\n return algorithm\n}\n\nfunction filterMetadataListByAlgorithm (metadataList, algorithm) {\n if (metadataList.length === 1) {\n return metadataList\n }\n\n let pos = 0\n for (let i = 0; i < metadataList.length; ++i) {\n if (metadataList[i].algo === algorithm) {\n metadataList[pos++] = metadataList[i]\n }\n }\n\n metadataList.length = pos\n\n return metadataList\n}\n\n/**\n * Compares two base64 strings, allowing for base64url\n * in the second string.\n *\n* @param {string} actualValue always base64\n * @param {string} expectedValue base64 or base64url\n * @returns {boolean}\n */\nfunction compareBase64Mixed (actualValue, expectedValue) {\n if (actualValue.length !== expectedValue.length) {\n return false\n }\n for (let i = 0; i < actualValue.length; ++i) {\n if (actualValue[i] !== expectedValue[i]) {\n if (\n (actualValue[i] === '+' && expectedValue[i] === '-') ||\n (actualValue[i] === '/' && expectedValue[i] === '_')\n ) {\n continue\n }\n return false\n }\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\nconst normalizeMethodRecord = {\n delete: 'DELETE',\n DELETE: 'DELETE',\n get: 'GET',\n GET: 'GET',\n head: 'HEAD',\n HEAD: 'HEAD',\n options: 'OPTIONS',\n OPTIONS: 'OPTIONS',\n post: 'POST',\n POST: 'POST',\n put: 'PUT',\n PUT: 'PUT'\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(normalizeMethodRecord, null)\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-method-normalize\n * @param {string} method\n */\nfunction normalizeMethod (method) {\n return normalizeMethodRecord[method.toLowerCase()] ?? method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object’s index.\n // 7. Let kind be object’s kind.\n // 8. Let values be object’s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object’s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair’s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair’s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair’s key.\n // 2. Let idlValue be pair’s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = processBody\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = processBodyError\n\n // 4. Let reader be the result of getting a reader for body’s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n try {\n const result = await readAllBytes(reader)\n successSteps(result)\n } catch (e) {\n errorSteps(e)\n }\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input’s length and whose code points have the same values\n // as the values of input’s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input’s code\n // point length and whose bytes have the same values as the\n // values of input’s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n */\nasync function readAllBytes (reader) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n const { done, value: chunk } = await reader.read()\n\n if (done) {\n // 1. Call successSteps with bytes.\n return Buffer.concat(bytes, byteLength)\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n throw new TypeError('Received non-Uint8Array chunk')\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes,\n normalizeMethodRecord,\n parseMetadata\n}\n","'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 − 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be −2^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength − 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength − 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength − 1 − 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is −0, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +∞, or −∞, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than −0.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +∞, or −∞, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x ≥ 2^bitLength − 1,\n // then return x − 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 × r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n if (x.charCodeAt(index) > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T’s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n","'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n","'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute’s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute’s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n","'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n","'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr’s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr’s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr’s result to null.\n fr[kResult] = null\n\n // 4. Set fr’s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob’s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr’s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr’s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr’s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr’s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr’s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type’s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding’s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n","'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n","'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n","'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n if (header.length === 4) {\n return util.headerNameToString(header) === 'host'\n }\n if (removeContent && util.headerNameToString(header).startsWith('content-')) {\n return true\n }\n if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) {\n const name = util.headerNameToString(header)\n return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization'\n }\n return false\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n","const assert = require('assert')\n\nconst { kRetryHandlerDefaultRetry } = require('../core/symbols')\nconst { RequestRetryError } = require('../core/errors')\nconst { isDisturbed, parseHeaders, parseRangeHeader } = require('../core/util')\n\nfunction calculateRetryAfterHeader (retryAfter) {\n const current = Date.now()\n const diff = new Date(retryAfter).getTime() - current\n\n return diff\n}\n\nclass RetryHandler {\n constructor (opts, handlers) {\n const { retryOptions, ...dispatchOpts } = opts\n const {\n // Retry scoped\n retry: retryFn,\n maxRetries,\n maxTimeout,\n minTimeout,\n timeoutFactor,\n // Response scoped\n methods,\n errorCodes,\n retryAfter,\n statusCodes\n } = retryOptions ?? {}\n\n this.dispatch = handlers.dispatch\n this.handler = handlers.handler\n this.opts = dispatchOpts\n this.abort = null\n this.aborted = false\n this.retryOpts = {\n retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry],\n retryAfter: retryAfter ?? true,\n maxTimeout: maxTimeout ?? 30 * 1000, // 30s,\n timeout: minTimeout ?? 500, // .5s\n timeoutFactor: timeoutFactor ?? 2,\n maxRetries: maxRetries ?? 5,\n // What errors we should retry\n methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'],\n // Indicates which errors to retry\n statusCodes: statusCodes ?? [500, 502, 503, 504, 429],\n // List of errors to retry\n errorCodes: errorCodes ?? [\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ENOTFOUND',\n 'ENETDOWN',\n 'ENETUNREACH',\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'EPIPE'\n ]\n }\n\n this.retryCount = 0\n this.start = 0\n this.end = null\n this.etag = null\n this.resume = null\n\n // Handle possible onConnect duplication\n this.handler.onConnect(reason => {\n this.aborted = true\n if (this.abort) {\n this.abort(reason)\n } else {\n this.reason = reason\n }\n })\n }\n\n onRequestSent () {\n if (this.handler.onRequestSent) {\n this.handler.onRequestSent()\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n if (this.handler.onUpgrade) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n }\n\n onConnect (abort) {\n if (this.aborted) {\n abort(this.reason)\n } else {\n this.abort = abort\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) return this.handler.onBodySent(chunk)\n }\n\n static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {\n const { statusCode, code, headers } = err\n const { method, retryOptions } = opts\n const {\n maxRetries,\n timeout,\n maxTimeout,\n timeoutFactor,\n statusCodes,\n errorCodes,\n methods\n } = retryOptions\n let { counter, currentTimeout } = state\n\n currentTimeout =\n currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout\n\n // Any code that is not a Undici's originated and allowed to retry\n if (\n code &&\n code !== 'UND_ERR_REQ_RETRY' &&\n code !== 'UND_ERR_SOCKET' &&\n !errorCodes.includes(code)\n ) {\n cb(err)\n return\n }\n\n // If a set of method are provided and the current method is not in the list\n if (Array.isArray(methods) && !methods.includes(method)) {\n cb(err)\n return\n }\n\n // If a set of status code are provided and the current status code is not in the list\n if (\n statusCode != null &&\n Array.isArray(statusCodes) &&\n !statusCodes.includes(statusCode)\n ) {\n cb(err)\n return\n }\n\n // If we reached the max number of retries\n if (counter > maxRetries) {\n cb(err)\n return\n }\n\n let retryAfterHeader = headers != null && headers['retry-after']\n if (retryAfterHeader) {\n retryAfterHeader = Number(retryAfterHeader)\n retryAfterHeader = isNaN(retryAfterHeader)\n ? calculateRetryAfterHeader(retryAfterHeader)\n : retryAfterHeader * 1e3 // Retry-After is in seconds\n }\n\n const retryTimeout =\n retryAfterHeader > 0\n ? Math.min(retryAfterHeader, maxTimeout)\n : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout)\n\n state.currentTimeout = retryTimeout\n\n setTimeout(() => cb(null), retryTimeout)\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const headers = parseHeaders(rawHeaders)\n\n this.retryCount += 1\n\n if (statusCode >= 300) {\n this.abort(\n new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Checkpoint for resume from where we left it\n if (this.resume != null) {\n this.resume = null\n\n if (statusCode !== 206) {\n return true\n }\n\n const contentRange = parseRangeHeader(headers['content-range'])\n // If no content range\n if (!contentRange) {\n this.abort(\n new RequestRetryError('Content-Range mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Let's start with a weak etag check\n if (this.etag != null && this.etag !== headers.etag) {\n this.abort(\n new RequestRetryError('ETag mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n const { start, size, end = size } = contentRange\n\n assert(this.start === start, 'content-range mismatch')\n assert(this.end == null || this.end === end, 'content-range mismatch')\n\n this.resume = resume\n return true\n }\n\n if (this.end == null) {\n if (statusCode === 206) {\n // First time we receive 206\n const range = parseRangeHeader(headers['content-range'])\n\n if (range == null) {\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const { start, size, end = size } = range\n\n assert(\n start != null && Number.isFinite(start) && this.start !== start,\n 'content-range mismatch'\n )\n assert(Number.isFinite(start))\n assert(\n end != null && Number.isFinite(end) && this.end !== end,\n 'invalid content-length'\n )\n\n this.start = start\n this.end = end\n }\n\n // We make our best to checkpoint the body for further range headers\n if (this.end == null) {\n const contentLength = headers['content-length']\n this.end = contentLength != null ? Number(contentLength) : null\n }\n\n assert(Number.isFinite(this.start))\n assert(\n this.end == null || Number.isFinite(this.end),\n 'invalid content-length'\n )\n\n this.resume = resume\n this.etag = headers.etag != null ? headers.etag : null\n\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const err = new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n\n this.abort(err)\n\n return false\n }\n\n onData (chunk) {\n this.start += chunk.length\n\n return this.handler.onData(chunk)\n }\n\n onComplete (rawTrailers) {\n this.retryCount = 0\n return this.handler.onComplete(rawTrailers)\n }\n\n onError (err) {\n if (this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n this.retryOpts.retry(\n err,\n {\n state: { counter: this.retryCount++, currentTimeout: this.retryAfter },\n opts: { retryOptions: this.retryOpts, ...this.opts }\n },\n onRetry.bind(this)\n )\n\n function onRetry (err) {\n if (err != null || this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n if (this.start !== 0) {\n this.opts = {\n ...this.opts,\n headers: {\n ...this.opts.headers,\n range: `bytes=${this.start}-${this.end ?? ''}`\n }\n }\n }\n\n try {\n this.dispatch(this.opts, this)\n } catch (err) {\n this.handler.onError(err)\n }\n }\n }\n}\n\nmodule.exports = RetryHandler\n","'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\nconst utils_1 = require(\"./utils\");\n// C headers\nvar ERROR;\n(function (ERROR) {\n ERROR[ERROR[\"OK\"] = 0] = \"OK\";\n ERROR[ERROR[\"INTERNAL\"] = 1] = \"INTERNAL\";\n ERROR[ERROR[\"STRICT\"] = 2] = \"STRICT\";\n ERROR[ERROR[\"LF_EXPECTED\"] = 3] = \"LF_EXPECTED\";\n ERROR[ERROR[\"UNEXPECTED_CONTENT_LENGTH\"] = 4] = \"UNEXPECTED_CONTENT_LENGTH\";\n ERROR[ERROR[\"CLOSED_CONNECTION\"] = 5] = \"CLOSED_CONNECTION\";\n ERROR[ERROR[\"INVALID_METHOD\"] = 6] = \"INVALID_METHOD\";\n ERROR[ERROR[\"INVALID_URL\"] = 7] = \"INVALID_URL\";\n ERROR[ERROR[\"INVALID_CONSTANT\"] = 8] = \"INVALID_CONSTANT\";\n ERROR[ERROR[\"INVALID_VERSION\"] = 9] = \"INVALID_VERSION\";\n ERROR[ERROR[\"INVALID_HEADER_TOKEN\"] = 10] = \"INVALID_HEADER_TOKEN\";\n ERROR[ERROR[\"INVALID_CONTENT_LENGTH\"] = 11] = \"INVALID_CONTENT_LENGTH\";\n ERROR[ERROR[\"INVALID_CHUNK_SIZE\"] = 12] = \"INVALID_CHUNK_SIZE\";\n ERROR[ERROR[\"INVALID_STATUS\"] = 13] = \"INVALID_STATUS\";\n ERROR[ERROR[\"INVALID_EOF_STATE\"] = 14] = \"INVALID_EOF_STATE\";\n ERROR[ERROR[\"INVALID_TRANSFER_ENCODING\"] = 15] = \"INVALID_TRANSFER_ENCODING\";\n ERROR[ERROR[\"CB_MESSAGE_BEGIN\"] = 16] = \"CB_MESSAGE_BEGIN\";\n ERROR[ERROR[\"CB_HEADERS_COMPLETE\"] = 17] = \"CB_HEADERS_COMPLETE\";\n ERROR[ERROR[\"CB_MESSAGE_COMPLETE\"] = 18] = \"CB_MESSAGE_COMPLETE\";\n ERROR[ERROR[\"CB_CHUNK_HEADER\"] = 19] = \"CB_CHUNK_HEADER\";\n ERROR[ERROR[\"CB_CHUNK_COMPLETE\"] = 20] = \"CB_CHUNK_COMPLETE\";\n ERROR[ERROR[\"PAUSED\"] = 21] = \"PAUSED\";\n ERROR[ERROR[\"PAUSED_UPGRADE\"] = 22] = \"PAUSED_UPGRADE\";\n ERROR[ERROR[\"PAUSED_H2_UPGRADE\"] = 23] = \"PAUSED_H2_UPGRADE\";\n ERROR[ERROR[\"USER\"] = 24] = \"USER\";\n})(ERROR = exports.ERROR || (exports.ERROR = {}));\nvar TYPE;\n(function (TYPE) {\n TYPE[TYPE[\"BOTH\"] = 0] = \"BOTH\";\n TYPE[TYPE[\"REQUEST\"] = 1] = \"REQUEST\";\n TYPE[TYPE[\"RESPONSE\"] = 2] = \"RESPONSE\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"CONNECTION_KEEP_ALIVE\"] = 1] = \"CONNECTION_KEEP_ALIVE\";\n FLAGS[FLAGS[\"CONNECTION_CLOSE\"] = 2] = \"CONNECTION_CLOSE\";\n FLAGS[FLAGS[\"CONNECTION_UPGRADE\"] = 4] = \"CONNECTION_UPGRADE\";\n FLAGS[FLAGS[\"CHUNKED\"] = 8] = \"CHUNKED\";\n FLAGS[FLAGS[\"UPGRADE\"] = 16] = \"UPGRADE\";\n FLAGS[FLAGS[\"CONTENT_LENGTH\"] = 32] = \"CONTENT_LENGTH\";\n FLAGS[FLAGS[\"SKIPBODY\"] = 64] = \"SKIPBODY\";\n FLAGS[FLAGS[\"TRAILING\"] = 128] = \"TRAILING\";\n // 1 << 8 is unused\n FLAGS[FLAGS[\"TRANSFER_ENCODING\"] = 512] = \"TRANSFER_ENCODING\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nvar LENIENT_FLAGS;\n(function (LENIENT_FLAGS) {\n LENIENT_FLAGS[LENIENT_FLAGS[\"HEADERS\"] = 1] = \"HEADERS\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"CHUNKED_LENGTH\"] = 2] = \"CHUNKED_LENGTH\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"KEEP_ALIVE\"] = 4] = \"KEEP_ALIVE\";\n})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\nvar METHODS;\n(function (METHODS) {\n METHODS[METHODS[\"DELETE\"] = 0] = \"DELETE\";\n METHODS[METHODS[\"GET\"] = 1] = \"GET\";\n METHODS[METHODS[\"HEAD\"] = 2] = \"HEAD\";\n METHODS[METHODS[\"POST\"] = 3] = \"POST\";\n METHODS[METHODS[\"PUT\"] = 4] = \"PUT\";\n /* pathological */\n METHODS[METHODS[\"CONNECT\"] = 5] = \"CONNECT\";\n METHODS[METHODS[\"OPTIONS\"] = 6] = \"OPTIONS\";\n METHODS[METHODS[\"TRACE\"] = 7] = \"TRACE\";\n /* WebDAV */\n METHODS[METHODS[\"COPY\"] = 8] = \"COPY\";\n METHODS[METHODS[\"LOCK\"] = 9] = \"LOCK\";\n METHODS[METHODS[\"MKCOL\"] = 10] = \"MKCOL\";\n METHODS[METHODS[\"MOVE\"] = 11] = \"MOVE\";\n METHODS[METHODS[\"PROPFIND\"] = 12] = \"PROPFIND\";\n METHODS[METHODS[\"PROPPATCH\"] = 13] = \"PROPPATCH\";\n METHODS[METHODS[\"SEARCH\"] = 14] = \"SEARCH\";\n METHODS[METHODS[\"UNLOCK\"] = 15] = \"UNLOCK\";\n METHODS[METHODS[\"BIND\"] = 16] = \"BIND\";\n METHODS[METHODS[\"REBIND\"] = 17] = \"REBIND\";\n METHODS[METHODS[\"UNBIND\"] = 18] = \"UNBIND\";\n METHODS[METHODS[\"ACL\"] = 19] = \"ACL\";\n /* subversion */\n METHODS[METHODS[\"REPORT\"] = 20] = \"REPORT\";\n METHODS[METHODS[\"MKACTIVITY\"] = 21] = \"MKACTIVITY\";\n METHODS[METHODS[\"CHECKOUT\"] = 22] = \"CHECKOUT\";\n METHODS[METHODS[\"MERGE\"] = 23] = \"MERGE\";\n /* upnp */\n METHODS[METHODS[\"M-SEARCH\"] = 24] = \"M-SEARCH\";\n METHODS[METHODS[\"NOTIFY\"] = 25] = \"NOTIFY\";\n METHODS[METHODS[\"SUBSCRIBE\"] = 26] = \"SUBSCRIBE\";\n METHODS[METHODS[\"UNSUBSCRIBE\"] = 27] = \"UNSUBSCRIBE\";\n /* RFC-5789 */\n METHODS[METHODS[\"PATCH\"] = 28] = \"PATCH\";\n METHODS[METHODS[\"PURGE\"] = 29] = \"PURGE\";\n /* CalDAV */\n METHODS[METHODS[\"MKCALENDAR\"] = 30] = \"MKCALENDAR\";\n /* RFC-2068, section 19.6.1.2 */\n METHODS[METHODS[\"LINK\"] = 31] = \"LINK\";\n METHODS[METHODS[\"UNLINK\"] = 32] = \"UNLINK\";\n /* icecast */\n METHODS[METHODS[\"SOURCE\"] = 33] = \"SOURCE\";\n /* RFC-7540, section 11.6 */\n METHODS[METHODS[\"PRI\"] = 34] = \"PRI\";\n /* RFC-2326 RTSP */\n METHODS[METHODS[\"DESCRIBE\"] = 35] = \"DESCRIBE\";\n METHODS[METHODS[\"ANNOUNCE\"] = 36] = \"ANNOUNCE\";\n METHODS[METHODS[\"SETUP\"] = 37] = \"SETUP\";\n METHODS[METHODS[\"PLAY\"] = 38] = \"PLAY\";\n METHODS[METHODS[\"PAUSE\"] = 39] = \"PAUSE\";\n METHODS[METHODS[\"TEARDOWN\"] = 40] = \"TEARDOWN\";\n METHODS[METHODS[\"GET_PARAMETER\"] = 41] = \"GET_PARAMETER\";\n METHODS[METHODS[\"SET_PARAMETER\"] = 42] = \"SET_PARAMETER\";\n METHODS[METHODS[\"REDIRECT\"] = 43] = \"REDIRECT\";\n METHODS[METHODS[\"RECORD\"] = 44] = \"RECORD\";\n /* RAOP */\n METHODS[METHODS[\"FLUSH\"] = 45] = \"FLUSH\";\n})(METHODS = exports.METHODS || (exports.METHODS = {}));\nexports.METHODS_HTTP = [\n METHODS.DELETE,\n METHODS.GET,\n METHODS.HEAD,\n METHODS.POST,\n METHODS.PUT,\n METHODS.CONNECT,\n METHODS.OPTIONS,\n METHODS.TRACE,\n METHODS.COPY,\n METHODS.LOCK,\n METHODS.MKCOL,\n METHODS.MOVE,\n METHODS.PROPFIND,\n METHODS.PROPPATCH,\n METHODS.SEARCH,\n METHODS.UNLOCK,\n METHODS.BIND,\n METHODS.REBIND,\n METHODS.UNBIND,\n METHODS.ACL,\n METHODS.REPORT,\n METHODS.MKACTIVITY,\n METHODS.CHECKOUT,\n METHODS.MERGE,\n METHODS['M-SEARCH'],\n METHODS.NOTIFY,\n METHODS.SUBSCRIBE,\n METHODS.UNSUBSCRIBE,\n METHODS.PATCH,\n METHODS.PURGE,\n METHODS.MKCALENDAR,\n METHODS.LINK,\n METHODS.UNLINK,\n METHODS.PRI,\n // TODO(indutny): should we allow it with HTTP?\n METHODS.SOURCE,\n];\nexports.METHODS_ICE = [\n METHODS.SOURCE,\n];\nexports.METHODS_RTSP = [\n METHODS.OPTIONS,\n METHODS.DESCRIBE,\n METHODS.ANNOUNCE,\n METHODS.SETUP,\n METHODS.PLAY,\n METHODS.PAUSE,\n METHODS.TEARDOWN,\n METHODS.GET_PARAMETER,\n METHODS.SET_PARAMETER,\n METHODS.REDIRECT,\n METHODS.RECORD,\n METHODS.FLUSH,\n // For AirPlay\n METHODS.GET,\n METHODS.POST,\n];\nexports.METHOD_MAP = utils_1.enumToMap(METHODS);\nexports.H_METHOD_MAP = {};\nObject.keys(exports.METHOD_MAP).forEach((key) => {\n if (/^H/.test(key)) {\n exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n }\n});\nvar FINISH;\n(function (FINISH) {\n FINISH[FINISH[\"SAFE\"] = 0] = \"SAFE\";\n FINISH[FINISH[\"SAFE_WITH_CB\"] = 1] = \"SAFE_WITH_CB\";\n FINISH[FINISH[\"UNSAFE\"] = 2] = \"UNSAFE\";\n})(FINISH = exports.FINISH || (exports.FINISH = {}));\nexports.ALPHA = [];\nfor (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n // Upper case\n exports.ALPHA.push(String.fromCharCode(i));\n // Lower case\n exports.ALPHA.push(String.fromCharCode(i + 0x20));\n}\nexports.NUM_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n};\nexports.HEX_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF,\n a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf,\n};\nexports.NUM = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n];\nexports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\nexports.MARK = ['-', '_', '.', '!', '~', '*', '\\'', '(', ')'];\nexports.USERINFO_CHARS = exports.ALPHANUM\n .concat(exports.MARK)\n .concat(['%', ';', ':', '&', '=', '+', '$', ',']);\n// TODO(indutny): use RFC\nexports.STRICT_URL_CHAR = [\n '!', '\"', '$', '%', '&', '\\'',\n '(', ')', '*', '+', ',', '-', '.', '/',\n ':', ';', '<', '=', '>',\n '@', '[', '\\\\', ']', '^', '_',\n '`',\n '{', '|', '}', '~',\n].concat(exports.ALPHANUM);\nexports.URL_CHAR = exports.STRICT_URL_CHAR\n .concat(['\\t', '\\f']);\n// All characters with 0x80 bit set to 1\nfor (let i = 0x80; i <= 0xff; i++) {\n exports.URL_CHAR.push(i);\n}\nexports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);\n/* Tokens as defined by rfc 2616. Also lowercases them.\n * token = 1*\n * separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n * | \",\" | \";\" | \":\" | \"\\\" | <\">\n * | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n * | \"{\" | \"}\" | SP | HT\n */\nexports.STRICT_TOKEN = [\n '!', '#', '$', '%', '&', '\\'',\n '*', '+', '-', '.',\n '^', '_', '`',\n '|', '~',\n].concat(exports.ALPHANUM);\nexports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n/*\n * Verify that a char is a valid visible (printable) US-ASCII\n * character or %x80-FF\n */\nexports.HEADER_CHARS = ['\\t'];\nfor (let i = 32; i <= 255; i++) {\n if (i !== 127) {\n exports.HEADER_CHARS.push(i);\n }\n}\n// ',' = \\x44\nexports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\nexports.MAJOR = exports.NUM_MAP;\nexports.MINOR = exports.MAJOR;\nvar HEADER_STATE;\n(function (HEADER_STATE) {\n HEADER_STATE[HEADER_STATE[\"GENERAL\"] = 0] = \"GENERAL\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION\"] = 1] = \"CONNECTION\";\n HEADER_STATE[HEADER_STATE[\"CONTENT_LENGTH\"] = 2] = \"CONTENT_LENGTH\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING\"] = 3] = \"TRANSFER_ENCODING\";\n HEADER_STATE[HEADER_STATE[\"UPGRADE\"] = 4] = \"UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_KEEP_ALIVE\"] = 5] = \"CONNECTION_KEEP_ALIVE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_CLOSE\"] = 6] = \"CONNECTION_CLOSE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_UPGRADE\"] = 7] = \"CONNECTION_UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING_CHUNKED\"] = 8] = \"TRANSFER_ENCODING_CHUNKED\";\n})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\nexports.SPECIAL_HEADERS = {\n 'connection': HEADER_STATE.CONNECTION,\n 'content-length': HEADER_STATE.CONTENT_LENGTH,\n 'proxy-connection': HEADER_STATE.CONNECTION,\n 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,\n 'upgrade': HEADER_STATE.UPGRADE,\n};\n//# sourceMappingURL=constants.js.map","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumToMap = void 0;\nfunction enumToMap(obj) {\n const res = {};\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (typeof value === 'number') {\n res[key] = value;\n }\n });\n return res;\n}\nexports.enumToMap = enumToMap;\n//# sourceMappingURL=utils.js.map","'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n","'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n","'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n","'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n","'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n","'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n","'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n","'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(…)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '✅' : '❌',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n","'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n","/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n","'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n","const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n","'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n allowH2,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect, allowH2 }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n\n this.on('connectionError', (origin, targets, error) => {\n // If a connection error occurs, we remove the client from the pool,\n // and emit a connectionError event. They will not be re-used.\n // Fixes https://github.com/nodejs/undici/issues/3895\n for (const target of targets) {\n // Do not use kRemoveClient here, as it will close the client,\n // but the client cannot be closed in this state.\n const idx = this[kClients].indexOf(target)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n }\n })\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n","'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host, username, password } = resolvedUrl\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n } else if (username && password) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`\n }\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n","'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n","'use strict'\n\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url’s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request’s header list.\n // 4. Append (`Connection`, `Upgrade`) to request’s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request’s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request’s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response’s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n","'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n","'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = crypto.randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n","'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik \n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n","'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n","'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event’s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object’s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { getGlobalOrigin } = require('../fetch/global')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let baseURL be this's relevant settings object's API base URL.\n const baseURL = getGlobalOrigin()\n\n // 1. Let urlRecord be the result of applying the URL parser to url with baseURL.\n let urlRecord\n\n try {\n urlRecord = new URL(url, baseURL)\n } catch (e) {\n // 3. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 4. If urlRecord’s scheme is \"http\", then set urlRecord’s scheme to \"ws\".\n if (urlRecord.protocol === 'http:') {\n urlRecord.protocol = 'ws:'\n } else if (urlRecord.protocol === 'https:') {\n // 5. Otherwise, if urlRecord’s scheme is \"https\", set urlRecord’s scheme to \"wss\".\n urlRecord.protocol = 'wss:'\n }\n\n // 6. If urlRecord’s scheme is not \"ws\" or \"wss\", then throw a \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 7. If urlRecord’s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash || urlRecord.href.endsWith('#')) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 8. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 9. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 10. Set this's url to urlRecord.\n this[kWebSocketURL] = new URL(urlRecord.href)\n\n // 11. Let client be this's relevant settings object.\n\n // 12. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data’s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object’s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response’s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute’s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute’s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && process.version !== undefined) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","'use strict'\n\nexports.fromCallback = function (fn) {\n return Object.defineProperty(function (...args) {\n if (typeof args[args.length - 1] === 'function') fn.apply(this, args)\n else {\n return new Promise((resolve, reject) => {\n args.push((err, res) => (err != null) ? reject(err) : resolve(res))\n fn.apply(this, args)\n })\n }\n }, 'name', { value: fn.name })\n}\n\nexports.fromPromise = function (fn) {\n return Object.defineProperty(function (...args) {\n const cb = args[args.length - 1]\n if (typeof cb !== 'function') return fn.apply(this, args)\n else {\n args.pop()\n fn.apply(this, args).then(r => cb(null, r), cb)\n }\n }, 'name', { value: fn.name })\n}\n","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","'use strict';\nconst stringWidth = require('string-width');\nconst stripAnsi = require('strip-ansi');\nconst ansiStyles = require('ansi-styles');\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B'\n]);\n\nconst END_CODE = 39;\n\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsi = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows[rows.length - 1]));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\t\t\tisInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode\n//\n// 'hard' will never allow a string to take up more than columns characters\n//\n// 'soft' allows long words to expand past the column length\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows[rows.length - 1].trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows[rows.length - 1]);\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(stringVisibleTrimSpacesRight);\n\t}\n\n\tconst pre = [...rows.join('\\n')];\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsi(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsi(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nmodule.exports = (string, columns, options) => {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replace(/\\r\\n/g, '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n};\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\n\t\t// TODO: Remove this when targeting Node.js 12.\n\t\tthis.next = undefined;\n\t}\n}\n\nclass Queue {\n\t// TODO: Use private class fields when targeting Node.js 12.\n\t// #_head;\n\t// #_tail;\n\t// #_size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this._head) {\n\t\t\tthis._tail.next = node;\n\t\t\tthis._tail = node;\n\t\t} else {\n\t\t\tthis._head = node;\n\t\t\tthis._tail = node;\n\t\t}\n\n\t\tthis._size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this._head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._head = this._head.next;\n\t\tthis._size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t}\n\n\tget size() {\n\t\treturn this._size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this._head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n\nmodule.exports = Queue;\n","/**\n * ZipStream\n *\n * @ignore\n * @license [MIT]{@link https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE}\n * @copyright (c) 2014 Chris Talkington, contributors.\n */\nvar inherits = require('util').inherits;\n\nvar ZipArchiveOutputStream = require('compress-commons').ZipArchiveOutputStream;\nvar ZipArchiveEntry = require('compress-commons').ZipArchiveEntry;\n\nvar util = require('archiver-utils');\n\n/**\n * @constructor\n * @extends external:ZipArchiveOutputStream\n * @param {Object} [options]\n * @param {String} [options.comment] Sets the zip archive comment.\n * @param {Boolean} [options.forceLocalTime=false] Forces the archive to contain local file times instead of UTC.\n * @param {Boolean} [options.forceZip64=false] Forces the archive to contain ZIP64 headers.\n * @param {Boolean} [options.store=false] Sets the compression method to STORE.\n * @param {Object} [options.zlib] Passed to [zlib]{@link https://nodejs.org/api/zlib.html#zlib_class_options}\n * to control compression.\n */\nvar ZipStream = module.exports = function(options) {\n if (!(this instanceof ZipStream)) {\n return new ZipStream(options);\n }\n\n options = this.options = options || {};\n options.zlib = options.zlib || {};\n\n ZipArchiveOutputStream.call(this, options);\n\n if (typeof options.level === 'number' && options.level >= 0) {\n options.zlib.level = options.level;\n delete options.level;\n }\n\n if (!options.forceZip64 && typeof options.zlib.level === 'number' && options.zlib.level === 0) {\n options.store = true;\n }\n\n options.namePrependSlash = options.namePrependSlash || false;\n\n if (options.comment && options.comment.length > 0) {\n this.setComment(options.comment);\n }\n};\n\ninherits(ZipStream, ZipArchiveOutputStream);\n\n/**\n * Normalizes entry data with fallbacks for key properties.\n *\n * @private\n * @param {Object} data\n * @return {Object}\n */\nZipStream.prototype._normalizeFileData = function(data) {\n data = util.defaults(data, {\n type: 'file',\n name: null,\n namePrependSlash: this.options.namePrependSlash,\n linkname: null,\n date: null,\n mode: null,\n store: this.options.store,\n comment: ''\n });\n\n var isDir = data.type === 'directory';\n var isSymlink = data.type === 'symlink';\n\n if (data.name) {\n data.name = util.sanitizePath(data.name);\n\n if (!isSymlink && data.name.slice(-1) === '/') {\n isDir = true;\n data.type = 'directory';\n } else if (isDir) {\n data.name += '/';\n }\n }\n\n if (isDir || isSymlink) {\n data.store = true;\n }\n\n data.date = util.dateify(data.date);\n\n return data;\n};\n\n/**\n * Appends an entry given an input source (text string, buffer, or stream).\n *\n * @param {(Buffer|Stream|String)} source The input source.\n * @param {Object} data\n * @param {String} data.name Sets the entry name including internal path.\n * @param {String} [data.comment] Sets the entry comment.\n * @param {(String|Date)} [data.date=NOW()] Sets the entry date.\n * @param {Number} [data.mode=D:0755/F:0644] Sets the entry permissions.\n * @param {Boolean} [data.store=options.store] Sets the compression method to STORE.\n * @param {String} [data.type=file] Sets the entry type. Defaults to `directory`\n * if name ends with trailing slash.\n * @param {Function} callback\n * @return this\n */\nZipStream.prototype.entry = function(source, data, callback) {\n if (typeof callback !== 'function') {\n callback = this._emitErrorCallback.bind(this);\n }\n\n data = this._normalizeFileData(data);\n\n if (data.type !== 'file' && data.type !== 'directory' && data.type !== 'symlink') {\n callback(new Error(data.type + ' entries not currently supported'));\n return;\n }\n\n if (typeof data.name !== 'string' || data.name.length === 0) {\n callback(new Error('entry name must be a non-empty string value'));\n return;\n }\n\n if (data.type === 'symlink' && typeof data.linkname !== 'string') {\n callback(new Error('entry linkname must be a non-empty string value when type equals symlink'));\n return;\n }\n\n var entry = new ZipArchiveEntry(data.name);\n entry.setTime(data.date, this.options.forceLocalTime);\n\n if (data.namePrependSlash) {\n entry.setName(data.name, true);\n }\n\n if (data.store) {\n entry.setMethod(0);\n }\n\n if (data.comment.length > 0) {\n entry.setComment(data.comment);\n }\n\n if (data.type === 'symlink' && typeof data.mode !== 'number') {\n data.mode = 40960; // 0120000\n }\n\n if (typeof data.mode === 'number') {\n if (data.type === 'symlink') {\n data.mode |= 40960;\n }\n\n entry.setUnixMode(data.mode);\n }\n\n if (data.type === 'symlink' && typeof data.linkname === 'string') {\n source = Buffer.from(data.linkname);\n }\n\n return ZipArchiveOutputStream.prototype.entry.call(this, entry, source, callback);\n};\n\n/**\n * Finalizes the instance and prevents further appending to the archive\n * structure (queue will continue til drained).\n *\n * @return void\n */\nZipStream.prototype.finalize = function() {\n this.finish();\n};\n\n/**\n * Returns the current number of bytes written to this stream.\n * @function ZipStream#getBytesWritten\n * @returns {Number}\n */\n\n/**\n * Compress Commons ZipArchiveOutputStream\n * @external ZipArchiveOutputStream\n * @see {@link https://github.com/archiverjs/node-compress-commons}\n */\n","module.exports = require(\"assert\");","module.exports = require(\"async_hooks\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"console\");","module.exports = require(\"constants\");","module.exports = require(\"crypto\");","module.exports = require(\"diagnostics_channel\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"fs/promises\");","module.exports = require(\"http\");","module.exports = require(\"http2\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:async_hooks\");","module.exports = require(\"node:child_process\");","module.exports = require(\"node:crypto\");","module.exports = require(\"node:events\");","module.exports = require(\"node:fs\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"node:http\");","module.exports = require(\"node:http2\");","module.exports = require(\"node:https\");","module.exports = require(\"node:os\");","module.exports = require(\"node:path\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream\");","module.exports = require(\"node:string_decoder\");","module.exports = require(\"node:url\");","module.exports = require(\"node:util\");","module.exports = require(\"node:zlib\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"perf_hooks\");","module.exports = require(\"process\");","module.exports = require(\"querystring\");","module.exports = require(\"stream\");","module.exports = require(\"stream/web\");","module.exports = require(\"string_decoder\");","module.exports = require(\"timers\");","module.exports = require(\"tls\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"util/types\");","module.exports = require(\"worker_threads\");","module.exports = require(\"zlib\");","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst inherits = require('node:util').inherits\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst PartStream = require('./PartStream')\nconst HeaderParser = require('./HeaderParser')\n\nconst DASH = 45\nconst B_ONEDASH = Buffer.from('-')\nconst B_CRLF = Buffer.from('\\r\\n')\nconst EMPTY_FN = function () {}\n\nfunction Dicer (cfg) {\n if (!(this instanceof Dicer)) { return new Dicer(cfg) }\n WritableStream.call(this, cfg)\n\n if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') }\n\n if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined }\n\n this._headerFirst = cfg.headerFirst\n\n this._dashes = 0\n this._parts = 0\n this._finished = false\n this._realFinish = false\n this._isPreamble = true\n this._justMatched = false\n this._firstWrite = true\n this._inHeader = true\n this._part = undefined\n this._cb = undefined\n this._ignoreData = false\n this._partOpts = { highWaterMark: cfg.partHwm }\n this._pause = false\n\n const self = this\n this._hparser = new HeaderParser(cfg)\n this._hparser.on('header', function (header) {\n self._inHeader = false\n self._part.emit('header', header)\n })\n}\ninherits(Dicer, WritableStream)\n\nDicer.prototype.emit = function (ev) {\n if (ev === 'finish' && !this._realFinish) {\n if (!this._finished) {\n const self = this\n process.nextTick(function () {\n self.emit('error', new Error('Unexpected end of multipart data'))\n if (self._part && !self._ignoreData) {\n const type = (self._isPreamble ? 'Preamble' : 'Part')\n self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data'))\n self._part.push(null)\n process.nextTick(function () {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n return\n }\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n }\n } else { WritableStream.prototype.emit.apply(this, arguments) }\n}\n\nDicer.prototype._write = function (data, encoding, cb) {\n // ignore unexpected data (e.g. extra trailer data after finished)\n if (!this._hparser && !this._bparser) { return cb() }\n\n if (this._headerFirst && this._isPreamble) {\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() }\n }\n const r = this._hparser.push(data)\n if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() }\n }\n\n // allows for \"easier\" testing\n if (this._firstWrite) {\n this._bparser.push(B_CRLF)\n this._firstWrite = false\n }\n\n this._bparser.push(data)\n\n if (this._pause) { this._cb = cb } else { cb() }\n}\n\nDicer.prototype.reset = function () {\n this._part = undefined\n this._bparser = undefined\n this._hparser = undefined\n}\n\nDicer.prototype.setBoundary = function (boundary) {\n const self = this\n this._bparser = new StreamSearch('\\r\\n--' + boundary)\n this._bparser.on('info', function (isMatch, data, start, end) {\n self._oninfo(isMatch, data, start, end)\n })\n}\n\nDicer.prototype._ignore = function () {\n if (this._part && !this._ignoreData) {\n this._ignoreData = true\n this._part.on('error', EMPTY_FN)\n // we must perform some kind of read on the stream even though we are\n // ignoring the data, otherwise node's Readable stream will not emit 'end'\n // after pushing null to the stream\n this._part.resume()\n }\n}\n\nDicer.prototype._oninfo = function (isMatch, data, start, end) {\n let buf; const self = this; let i = 0; let r; let shouldWriteMore = true\n\n if (!this._part && this._justMatched && data) {\n while (this._dashes < 2 && (start + i) < end) {\n if (data[start + i] === DASH) {\n ++i\n ++this._dashes\n } else {\n if (this._dashes) { buf = B_ONEDASH }\n this._dashes = 0\n break\n }\n }\n if (this._dashes === 2) {\n if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) }\n this.reset()\n this._finished = true\n // no more parts will be added\n if (self._parts === 0) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n }\n }\n if (this._dashes) { return }\n }\n if (this._justMatched) { this._justMatched = false }\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n this._part._read = function (n) {\n self._unpause()\n }\n if (this._isPreamble && this.listenerCount('preamble') !== 0) {\n this.emit('preamble', this._part)\n } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) {\n this.emit('part', this._part)\n } else {\n this._ignore()\n }\n if (!this._isPreamble) { this._inHeader = true }\n }\n if (data && start < end && !this._ignoreData) {\n if (this._isPreamble || !this._inHeader) {\n if (buf) { shouldWriteMore = this._part.push(buf) }\n shouldWriteMore = this._part.push(data.slice(start, end))\n if (!shouldWriteMore) { this._pause = true }\n } else if (!this._isPreamble && this._inHeader) {\n if (buf) { this._hparser.push(buf) }\n r = this._hparser.push(data.slice(start, end))\n if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) }\n }\n }\n if (isMatch) {\n this._hparser.reset()\n if (this._isPreamble) { this._isPreamble = false } else {\n if (start !== end) {\n ++this._parts\n this._part.on('end', function () {\n if (--self._parts === 0) {\n if (self._finished) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n } else {\n self._unpause()\n }\n }\n })\n }\n }\n this._part.push(null)\n this._part = undefined\n this._ignoreData = false\n this._justMatched = true\n this._dashes = 0\n }\n}\n\nDicer.prototype._unpause = function () {\n if (!this._pause) { return }\n\n this._pause = false\n if (this._cb) {\n const cb = this._cb\n this._cb = undefined\n cb()\n }\n}\n\nmodule.exports = Dicer\n","'use strict'\n\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\nconst getLimit = require('../../../lib/utils/getLimit')\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst B_DCRLF = Buffer.from('\\r\\n\\r\\n')\nconst RE_CRLF = /\\r\\n/g\nconst RE_HDR = /^([^:]+):[ \\t]?([\\x00-\\xFF]+)?$/ // eslint-disable-line no-control-regex\n\nfunction HeaderParser (cfg) {\n EventEmitter.call(this)\n\n cfg = cfg || {}\n const self = this\n this.nread = 0\n this.maxed = false\n this.npairs = 0\n this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000)\n this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024)\n this.buffer = ''\n this.header = {}\n this.finished = false\n this.ss = new StreamSearch(B_DCRLF)\n this.ss.on('info', function (isMatch, data, start, end) {\n if (data && !self.maxed) {\n if (self.nread + end - start >= self.maxHeaderSize) {\n end = self.maxHeaderSize - self.nread + start\n self.nread = self.maxHeaderSize\n self.maxed = true\n } else { self.nread += (end - start) }\n\n self.buffer += data.toString('binary', start, end)\n }\n if (isMatch) { self._finish() }\n })\n}\ninherits(HeaderParser, EventEmitter)\n\nHeaderParser.prototype.push = function (data) {\n const r = this.ss.push(data)\n if (this.finished) { return r }\n}\n\nHeaderParser.prototype.reset = function () {\n this.finished = false\n this.buffer = ''\n this.header = {}\n this.ss.reset()\n}\n\nHeaderParser.prototype._finish = function () {\n if (this.buffer) { this._parseHeader() }\n this.ss.matches = this.ss.maxMatches\n const header = this.header\n this.header = {}\n this.buffer = ''\n this.finished = true\n this.nread = this.npairs = 0\n this.maxed = false\n this.emit('header', header)\n}\n\nHeaderParser.prototype._parseHeader = function () {\n if (this.npairs === this.maxHeaderPairs) { return }\n\n const lines = this.buffer.split(RE_CRLF)\n const len = lines.length\n let m, h\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (lines[i].length === 0) { continue }\n if (lines[i][0] === '\\t' || lines[i][0] === ' ') {\n // folded header content\n // RFC2822 says to just remove the CRLF and not the whitespace following\n // it, so we follow the RFC and include the leading whitespace ...\n if (h) {\n this.header[h][this.header[h].length - 1] += lines[i]\n continue\n }\n }\n\n const posColon = lines[i].indexOf(':')\n if (\n posColon === -1 ||\n posColon === 0\n ) {\n return\n }\n m = RE_HDR.exec(lines[i])\n h = m[1].toLowerCase()\n this.header[h] = this.header[h] || []\n this.header[h].push((m[2] || ''))\n if (++this.npairs === this.maxHeaderPairs) { break }\n }\n}\n\nmodule.exports = HeaderParser\n","'use strict'\n\nconst inherits = require('node:util').inherits\nconst ReadableStream = require('node:stream').Readable\n\nfunction PartStream (opts) {\n ReadableStream.call(this, opts)\n}\ninherits(PartStream, ReadableStream)\n\nPartStream.prototype._read = function (n) {}\n\nmodule.exports = PartStream\n","'use strict'\n\n/**\n * Copyright Brian White. All rights reserved.\n *\n * @see https://github.com/mscdex/streamsearch\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n */\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\n\nfunction SBMH (needle) {\n if (typeof needle === 'string') {\n needle = Buffer.from(needle)\n }\n\n if (!Buffer.isBuffer(needle)) {\n throw new TypeError('The needle has to be a String or a Buffer.')\n }\n\n const needleLength = needle.length\n\n if (needleLength === 0) {\n throw new Error('The needle cannot be an empty String/Buffer.')\n }\n\n if (needleLength > 256) {\n throw new Error('The needle cannot have a length bigger than 256.')\n }\n\n this.maxMatches = Infinity\n this.matches = 0\n\n this._occ = new Array(256)\n .fill(needleLength) // Initialize occurrence table.\n this._lookbehind_size = 0\n this._needle = needle\n this._bufpos = 0\n\n this._lookbehind = Buffer.alloc(needleLength)\n\n // Populate occurrence table with analysis of the needle,\n // ignoring last letter.\n for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var\n this._occ[needle[i]] = needleLength - 1 - i\n }\n}\ninherits(SBMH, EventEmitter)\n\nSBMH.prototype.reset = function () {\n this._lookbehind_size = 0\n this.matches = 0\n this._bufpos = 0\n}\n\nSBMH.prototype.push = function (chunk, pos) {\n if (!Buffer.isBuffer(chunk)) {\n chunk = Buffer.from(chunk, 'binary')\n }\n const chlen = chunk.length\n this._bufpos = pos || 0\n let r\n while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) }\n return r\n}\n\nSBMH.prototype._sbmh_feed = function (data) {\n const len = data.length\n const needle = this._needle\n const needleLength = needle.length\n const lastNeedleChar = needle[needleLength - 1]\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehind_size - 2]\n let pos = -this._lookbehind_size\n let ch\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= len - needleLength) {\n ch = this._sbmh_lookup_char(data, pos + needleLength - 1)\n\n if (\n ch === lastNeedleChar &&\n this._sbmh_memcmp(data, pos, needleLength - 1)\n ) {\n this._lookbehind_size = 0\n ++this.matches\n this.emit('info', true)\n\n return (this._bufpos = pos + needleLength)\n }\n pos += this._occ[ch]\n }\n\n // No match.\n\n if (pos < 0) {\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos }\n }\n\n if (pos >= 0) {\n // Discard lookbehind buffer.\n this.emit('info', false, this._lookbehind, 0, this._lookbehind_size)\n this._lookbehind_size = 0\n } else {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = this._lookbehind_size + pos\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n this.emit('info', false, this._lookbehind, 0, bytesToCutOff)\n }\n\n this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff,\n this._lookbehind_size - bytesToCutOff)\n this._lookbehind_size -= bytesToCutOff\n\n data.copy(this._lookbehind, this._lookbehind_size)\n this._lookbehind_size += len\n\n this._bufpos = len\n return len\n }\n }\n\n pos += (pos >= 0) * this._bufpos\n\n // Lookbehind buffer is now empty. We only need to check if the\n // needle is in the haystack.\n if (data.indexOf(needle, pos) !== -1) {\n pos = data.indexOf(needle, pos)\n ++this.matches\n if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) }\n\n return (this._bufpos = pos + needleLength)\n } else {\n pos = len - needleLength\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (\n pos < len &&\n (\n data[pos] !== needle[0] ||\n (\n (Buffer.compare(\n data.subarray(pos, pos + len - pos),\n needle.subarray(0, len - pos)\n ) !== 0)\n )\n )\n ) {\n ++pos\n }\n if (pos < len) {\n data.copy(this._lookbehind, 0, pos, pos + (len - pos))\n this._lookbehind_size = len - pos\n }\n\n // Everything until pos is guaranteed not to contain needle data.\n if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) }\n\n this._bufpos = len\n return len\n}\n\nSBMH.prototype._sbmh_lookup_char = function (data, pos) {\n return (pos < 0)\n ? this._lookbehind[this._lookbehind_size + pos]\n : data[pos]\n}\n\nSBMH.prototype._sbmh_memcmp = function (data, pos, len) {\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false }\n }\n return true\n}\n\nmodule.exports = SBMH\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst { inherits } = require('node:util')\nconst Dicer = require('../deps/dicer/lib/Dicer')\n\nconst MultipartParser = require('./types/multipart')\nconst UrlencodedParser = require('./types/urlencoded')\nconst parseParams = require('./utils/parseParams')\n\nfunction Busboy (opts) {\n if (!(this instanceof Busboy)) { return new Busboy(opts) }\n\n if (typeof opts !== 'object') {\n throw new TypeError('Busboy expected an options-Object.')\n }\n if (typeof opts.headers !== 'object') {\n throw new TypeError('Busboy expected an options-Object with headers-attribute.')\n }\n if (typeof opts.headers['content-type'] !== 'string') {\n throw new TypeError('Missing Content-Type-header.')\n }\n\n const {\n headers,\n ...streamOptions\n } = opts\n\n this.opts = {\n autoDestroy: false,\n ...streamOptions\n }\n WritableStream.call(this, this.opts)\n\n this._done = false\n this._parser = this.getParserByHeaders(headers)\n this._finished = false\n}\ninherits(Busboy, WritableStream)\n\nBusboy.prototype.emit = function (ev) {\n if (ev === 'finish') {\n if (!this._done) {\n this._parser?.end()\n return\n } else if (this._finished) {\n return\n }\n this._finished = true\n }\n WritableStream.prototype.emit.apply(this, arguments)\n}\n\nBusboy.prototype.getParserByHeaders = function (headers) {\n const parsed = parseParams(headers['content-type'])\n\n const cfg = {\n defCharset: this.opts.defCharset,\n fileHwm: this.opts.fileHwm,\n headers,\n highWaterMark: this.opts.highWaterMark,\n isPartAFile: this.opts.isPartAFile,\n limits: this.opts.limits,\n parsedConType: parsed,\n preservePath: this.opts.preservePath\n }\n\n if (MultipartParser.detect.test(parsed[0])) {\n return new MultipartParser(this, cfg)\n }\n if (UrlencodedParser.detect.test(parsed[0])) {\n return new UrlencodedParser(this, cfg)\n }\n throw new Error('Unsupported Content-Type.')\n}\n\nBusboy.prototype._write = function (chunk, encoding, cb) {\n this._parser.write(chunk, cb)\n}\n\nmodule.exports = Busboy\nmodule.exports.default = Busboy\nmodule.exports.Busboy = Busboy\n\nmodule.exports.Dicer = Dicer\n","'use strict'\n\n// TODO:\n// * support 1 nested multipart level\n// (see second multipart example here:\n// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)\n// * support limits.fieldNameSize\n// -- this will require modifications to utils.parseParams\n\nconst { Readable } = require('node:stream')\nconst { inherits } = require('node:util')\n\nconst Dicer = require('../../deps/dicer/lib/Dicer')\n\nconst parseParams = require('../utils/parseParams')\nconst decodeText = require('../utils/decodeText')\nconst basename = require('../utils/basename')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_BOUNDARY = /^boundary$/i\nconst RE_FIELD = /^form-data$/i\nconst RE_CHARSET = /^charset$/i\nconst RE_FILENAME = /^filename$/i\nconst RE_NAME = /^name$/i\n\nMultipart.detect = /^multipart\\/form-data/i\nfunction Multipart (boy, cfg) {\n let i\n let len\n const self = this\n let boundary\n const limits = cfg.limits\n const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined))\n const parsedConType = cfg.parsedConType || []\n const defCharset = cfg.defCharset || 'utf8'\n const preservePath = cfg.preservePath\n const fileOpts = { highWaterMark: cfg.fileHwm }\n\n for (i = 0, len = parsedConType.length; i < len; ++i) {\n if (Array.isArray(parsedConType[i]) &&\n RE_BOUNDARY.test(parsedConType[i][0])) {\n boundary = parsedConType[i][1]\n break\n }\n }\n\n function checkFinished () {\n if (nends === 0 && finished && !boy._done) {\n finished = false\n self.end()\n }\n }\n\n if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') }\n\n const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n const fileSizeLimit = getLimit(limits, 'fileSize', Infinity)\n const filesLimit = getLimit(limits, 'files', Infinity)\n const fieldsLimit = getLimit(limits, 'fields', Infinity)\n const partsLimit = getLimit(limits, 'parts', Infinity)\n const headerPairsLimit = getLimit(limits, 'headerPairs', 2000)\n const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024)\n\n let nfiles = 0\n let nfields = 0\n let nends = 0\n let curFile\n let curField\n let finished = false\n\n this._needDrain = false\n this._pause = false\n this._cb = undefined\n this._nparts = 0\n this._boy = boy\n\n const parserCfg = {\n boundary,\n maxHeaderPairs: headerPairsLimit,\n maxHeaderSize: headerSizeLimit,\n partHwm: fileOpts.highWaterMark,\n highWaterMark: cfg.highWaterMark\n }\n\n this.parser = new Dicer(parserCfg)\n this.parser.on('drain', function () {\n self._needDrain = false\n if (self._cb && !self._pause) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }).on('part', function onPart (part) {\n if (++self._nparts > partsLimit) {\n self.parser.removeListener('part', onPart)\n self.parser.on('part', skipPart)\n boy.hitPartsLimit = true\n boy.emit('partsLimit')\n return skipPart(part)\n }\n\n // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let\n // us emit 'end' early since we know the part has ended if we are already\n // seeing the next part\n if (curField) {\n const field = curField\n field.emit('end')\n field.removeAllListeners('end')\n }\n\n part.on('header', function (header) {\n let contype\n let fieldname\n let parsed\n let charset\n let encoding\n let filename\n let nsize = 0\n\n if (header['content-type']) {\n parsed = parseParams(header['content-type'][0])\n if (parsed[0]) {\n contype = parsed[0].toLowerCase()\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_CHARSET.test(parsed[i][0])) {\n charset = parsed[i][1].toLowerCase()\n break\n }\n }\n }\n }\n\n if (contype === undefined) { contype = 'text/plain' }\n if (charset === undefined) { charset = defCharset }\n\n if (header['content-disposition']) {\n parsed = parseParams(header['content-disposition'][0])\n if (!RE_FIELD.test(parsed[0])) { return skipPart(part) }\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_NAME.test(parsed[i][0])) {\n fieldname = parsed[i][1]\n } else if (RE_FILENAME.test(parsed[i][0])) {\n filename = parsed[i][1]\n if (!preservePath) { filename = basename(filename) }\n }\n }\n } else { return skipPart(part) }\n\n if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' }\n\n let onData,\n onEnd\n\n if (isPartAFile(fieldname, contype, filename)) {\n // file/binary field\n if (nfiles === filesLimit) {\n if (!boy.hitFilesLimit) {\n boy.hitFilesLimit = true\n boy.emit('filesLimit')\n }\n return skipPart(part)\n }\n\n ++nfiles\n\n if (boy.listenerCount('file') === 0) {\n self.parser._ignore()\n return\n }\n\n ++nends\n const file = new FileStream(fileOpts)\n curFile = file\n file.on('end', function () {\n --nends\n self._pause = false\n checkFinished()\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n })\n file._read = function (n) {\n if (!self._pause) { return }\n self._pause = false\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }\n boy.emit('file', fieldname, file, filename, encoding, contype)\n\n onData = function (data) {\n if ((nsize += data.length) > fileSizeLimit) {\n const extralen = fileSizeLimit - nsize + data.length\n if (extralen > 0) { file.push(data.slice(0, extralen)) }\n file.truncated = true\n file.bytesRead = fileSizeLimit\n part.removeAllListeners('data')\n file.emit('limit')\n return\n } else if (!file.push(data)) { self._pause = true }\n\n file.bytesRead = nsize\n }\n\n onEnd = function () {\n curFile = undefined\n file.push(null)\n }\n } else {\n // non-file field\n if (nfields === fieldsLimit) {\n if (!boy.hitFieldsLimit) {\n boy.hitFieldsLimit = true\n boy.emit('fieldsLimit')\n }\n return skipPart(part)\n }\n\n ++nfields\n ++nends\n let buffer = ''\n let truncated = false\n curField = part\n\n onData = function (data) {\n if ((nsize += data.length) > fieldSizeLimit) {\n const extralen = (fieldSizeLimit - (nsize - data.length))\n buffer += data.toString('binary', 0, extralen)\n truncated = true\n part.removeAllListeners('data')\n } else { buffer += data.toString('binary') }\n }\n\n onEnd = function () {\n curField = undefined\n if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) }\n boy.emit('field', fieldname, buffer, false, truncated, encoding, contype)\n --nends\n checkFinished()\n }\n }\n\n /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become\n broken. Streams2/streams3 is a huge black box of confusion, but\n somehow overriding the sync state seems to fix things again (and still\n seems to work for previous node versions).\n */\n part._readableState.sync = false\n\n part.on('data', onData)\n part.on('end', onEnd)\n }).on('error', function (err) {\n if (curFile) { curFile.emit('error', err) }\n })\n }).on('error', function (err) {\n boy.emit('error', err)\n }).on('finish', function () {\n finished = true\n checkFinished()\n })\n}\n\nMultipart.prototype.write = function (chunk, cb) {\n const r = this.parser.write(chunk)\n if (r && !this._pause) {\n cb()\n } else {\n this._needDrain = !r\n this._cb = cb\n }\n}\n\nMultipart.prototype.end = function () {\n const self = this\n\n if (self.parser.writable) {\n self.parser.end()\n } else if (!self._boy._done) {\n process.nextTick(function () {\n self._boy._done = true\n self._boy.emit('finish')\n })\n }\n}\n\nfunction skipPart (part) {\n part.resume()\n}\n\nfunction FileStream (opts) {\n Readable.call(this, opts)\n\n this.bytesRead = 0\n\n this.truncated = false\n}\n\ninherits(FileStream, Readable)\n\nFileStream.prototype._read = function (n) {}\n\nmodule.exports = Multipart\n","'use strict'\n\nconst Decoder = require('../utils/Decoder')\nconst decodeText = require('../utils/decodeText')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_CHARSET = /^charset$/i\n\nUrlEncoded.detect = /^application\\/x-www-form-urlencoded/i\nfunction UrlEncoded (boy, cfg) {\n const limits = cfg.limits\n const parsedConType = cfg.parsedConType\n this.boy = boy\n\n this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100)\n this.fieldsLimit = getLimit(limits, 'fields', Infinity)\n\n let charset\n for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var\n if (Array.isArray(parsedConType[i]) &&\n RE_CHARSET.test(parsedConType[i][0])) {\n charset = parsedConType[i][1].toLowerCase()\n break\n }\n }\n\n if (charset === undefined) { charset = cfg.defCharset || 'utf8' }\n\n this.decoder = new Decoder()\n this.charset = charset\n this._fields = 0\n this._state = 'key'\n this._checkingBytes = true\n this._bytesKey = 0\n this._bytesVal = 0\n this._key = ''\n this._val = ''\n this._keyTrunc = false\n this._valTrunc = false\n this._hitLimit = false\n}\n\nUrlEncoded.prototype.write = function (data, cb) {\n if (this._fields === this.fieldsLimit) {\n if (!this.boy.hitFieldsLimit) {\n this.boy.hitFieldsLimit = true\n this.boy.emit('fieldsLimit')\n }\n return cb()\n }\n\n let idxeq; let idxamp; let i; let p = 0; const len = data.length\n\n while (p < len) {\n if (this._state === 'key') {\n idxeq = idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x3D/* = */) {\n idxeq = i\n break\n } else if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesKey }\n }\n\n if (idxeq !== undefined) {\n // key with assignment\n if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) }\n this._state = 'val'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._val = ''\n this._bytesVal = 0\n this._valTrunc = false\n this.decoder.reset()\n\n p = idxeq + 1\n } else if (idxamp !== undefined) {\n // key with no assignment\n ++this._fields\n let key; const keyTrunc = this._keyTrunc\n if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key }\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n if (key.length) {\n this.boy.emit('field', decodeText(key, 'binary', this.charset),\n '',\n keyTrunc,\n false)\n }\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._keyTrunc = true\n }\n } else {\n if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n } else {\n idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesVal }\n }\n\n if (idxamp !== undefined) {\n ++this._fields\n if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) }\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n this._state = 'key'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._val === '' && this.fieldSizeLimit === 0) ||\n (this._bytesVal = this._val.length) === this.fieldSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._valTrunc = true\n }\n } else {\n if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n }\n }\n cb()\n}\n\nUrlEncoded.prototype.end = function () {\n if (this.boy._done) { return }\n\n if (this._state === 'key' && this._key.length > 0) {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n '',\n this._keyTrunc,\n false)\n } else if (this._state === 'val') {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n }\n this.boy._done = true\n this.boy.emit('finish')\n}\n\nmodule.exports = UrlEncoded\n","'use strict'\n\nconst RE_PLUS = /\\+/g\n\nconst HEX = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n]\n\nfunction Decoder () {\n this.buffer = undefined\n}\nDecoder.prototype.write = function (str) {\n // Replace '+' with ' ' before decoding\n str = str.replace(RE_PLUS, ' ')\n let res = ''\n let i = 0; let p = 0; const len = str.length\n for (; i < len; ++i) {\n if (this.buffer !== undefined) {\n if (!HEX[str.charCodeAt(i)]) {\n res += '%' + this.buffer\n this.buffer = undefined\n --i // retry character\n } else {\n this.buffer += str[i]\n ++p\n if (this.buffer.length === 2) {\n res += String.fromCharCode(parseInt(this.buffer, 16))\n this.buffer = undefined\n }\n }\n } else if (str[i] === '%') {\n if (i > p) {\n res += str.substring(p, i)\n p = i\n }\n this.buffer = ''\n ++p\n }\n }\n if (p < len && this.buffer === undefined) { res += str.substring(p) }\n return res\n}\nDecoder.prototype.reset = function () {\n this.buffer = undefined\n}\n\nmodule.exports = Decoder\n","'use strict'\n\nmodule.exports = function basename (path) {\n if (typeof path !== 'string') { return '' }\n for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1)\n return (path === '..' || path === '.' ? '' : path)\n }\n }\n return (path === '..' || path === '.' ? '' : path)\n}\n","'use strict'\n\n// Node has always utf-8\nconst utf8Decoder = new TextDecoder('utf-8')\nconst textDecoders = new Map([\n ['utf-8', utf8Decoder],\n ['utf8', utf8Decoder]\n])\n\nfunction getDecoder (charset) {\n let lc\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le\n case 'base64':\n return decoders.base64\n default:\n if (lc === undefined) {\n lc = true\n charset = charset.toLowerCase()\n continue\n }\n return decoders.other.bind(charset)\n }\n }\n}\n\nconst decoders = {\n utf8: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.utf8Slice(0, data.length)\n },\n\n latin1: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n return data\n }\n return data.latin1Slice(0, data.length)\n },\n\n utf16le: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.ucs2Slice(0, data.length)\n },\n\n base64: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.base64Slice(0, data.length)\n },\n\n other: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n\n if (textDecoders.has(this.toString())) {\n try {\n return textDecoders.get(this).decode(data)\n } catch {}\n }\n return typeof data === 'string'\n ? data\n : data.toString()\n }\n}\n\nfunction decodeText (text, sourceEncoding, destEncoding) {\n if (text) {\n return getDecoder(destEncoding)(text, sourceEncoding)\n }\n return text\n}\n\nmodule.exports = decodeText\n","'use strict'\n\nmodule.exports = function getLimit (limits, name, defaultLimit) {\n if (\n !limits ||\n limits[name] === undefined ||\n limits[name] === null\n ) { return defaultLimit }\n\n if (\n typeof limits[name] !== 'number' ||\n isNaN(limits[name])\n ) { throw new TypeError('Limit ' + name + ' is not a valid number') }\n\n return limits[name]\n}\n","/* eslint-disable object-property-newline */\n'use strict'\n\nconst decodeText = require('./decodeText')\n\nconst RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g\n\nconst EncodedLookup = {\n '%00': '\\x00', '%01': '\\x01', '%02': '\\x02', '%03': '\\x03', '%04': '\\x04',\n '%05': '\\x05', '%06': '\\x06', '%07': '\\x07', '%08': '\\x08', '%09': '\\x09',\n '%0a': '\\x0a', '%0A': '\\x0a', '%0b': '\\x0b', '%0B': '\\x0b', '%0c': '\\x0c',\n '%0C': '\\x0c', '%0d': '\\x0d', '%0D': '\\x0d', '%0e': '\\x0e', '%0E': '\\x0e',\n '%0f': '\\x0f', '%0F': '\\x0f', '%10': '\\x10', '%11': '\\x11', '%12': '\\x12',\n '%13': '\\x13', '%14': '\\x14', '%15': '\\x15', '%16': '\\x16', '%17': '\\x17',\n '%18': '\\x18', '%19': '\\x19', '%1a': '\\x1a', '%1A': '\\x1a', '%1b': '\\x1b',\n '%1B': '\\x1b', '%1c': '\\x1c', '%1C': '\\x1c', '%1d': '\\x1d', '%1D': '\\x1d',\n '%1e': '\\x1e', '%1E': '\\x1e', '%1f': '\\x1f', '%1F': '\\x1f', '%20': '\\x20',\n '%21': '\\x21', '%22': '\\x22', '%23': '\\x23', '%24': '\\x24', '%25': '\\x25',\n '%26': '\\x26', '%27': '\\x27', '%28': '\\x28', '%29': '\\x29', '%2a': '\\x2a',\n '%2A': '\\x2a', '%2b': '\\x2b', '%2B': '\\x2b', '%2c': '\\x2c', '%2C': '\\x2c',\n '%2d': '\\x2d', '%2D': '\\x2d', '%2e': '\\x2e', '%2E': '\\x2e', '%2f': '\\x2f',\n '%2F': '\\x2f', '%30': '\\x30', '%31': '\\x31', '%32': '\\x32', '%33': '\\x33',\n '%34': '\\x34', '%35': '\\x35', '%36': '\\x36', '%37': '\\x37', '%38': '\\x38',\n '%39': '\\x39', '%3a': '\\x3a', '%3A': '\\x3a', '%3b': '\\x3b', '%3B': '\\x3b',\n '%3c': '\\x3c', '%3C': '\\x3c', '%3d': '\\x3d', '%3D': '\\x3d', '%3e': '\\x3e',\n '%3E': '\\x3e', '%3f': '\\x3f', '%3F': '\\x3f', '%40': '\\x40', '%41': '\\x41',\n '%42': '\\x42', '%43': '\\x43', '%44': '\\x44', '%45': '\\x45', '%46': '\\x46',\n '%47': '\\x47', '%48': '\\x48', '%49': '\\x49', '%4a': '\\x4a', '%4A': '\\x4a',\n '%4b': '\\x4b', '%4B': '\\x4b', '%4c': '\\x4c', '%4C': '\\x4c', '%4d': '\\x4d',\n '%4D': '\\x4d', '%4e': '\\x4e', '%4E': '\\x4e', '%4f': '\\x4f', '%4F': '\\x4f',\n '%50': '\\x50', '%51': '\\x51', '%52': '\\x52', '%53': '\\x53', '%54': '\\x54',\n '%55': '\\x55', '%56': '\\x56', '%57': '\\x57', '%58': '\\x58', '%59': '\\x59',\n '%5a': '\\x5a', '%5A': '\\x5a', '%5b': '\\x5b', '%5B': '\\x5b', '%5c': '\\x5c',\n '%5C': '\\x5c', '%5d': '\\x5d', '%5D': '\\x5d', '%5e': '\\x5e', '%5E': '\\x5e',\n '%5f': '\\x5f', '%5F': '\\x5f', '%60': '\\x60', '%61': '\\x61', '%62': '\\x62',\n '%63': '\\x63', '%64': '\\x64', '%65': '\\x65', '%66': '\\x66', '%67': '\\x67',\n '%68': '\\x68', '%69': '\\x69', '%6a': '\\x6a', '%6A': '\\x6a', '%6b': '\\x6b',\n '%6B': '\\x6b', '%6c': '\\x6c', '%6C': '\\x6c', '%6d': '\\x6d', '%6D': '\\x6d',\n '%6e': '\\x6e', '%6E': '\\x6e', '%6f': '\\x6f', '%6F': '\\x6f', '%70': '\\x70',\n '%71': '\\x71', '%72': '\\x72', '%73': '\\x73', '%74': '\\x74', '%75': '\\x75',\n '%76': '\\x76', '%77': '\\x77', '%78': '\\x78', '%79': '\\x79', '%7a': '\\x7a',\n '%7A': '\\x7a', '%7b': '\\x7b', '%7B': '\\x7b', '%7c': '\\x7c', '%7C': '\\x7c',\n '%7d': '\\x7d', '%7D': '\\x7d', '%7e': '\\x7e', '%7E': '\\x7e', '%7f': '\\x7f',\n '%7F': '\\x7f', '%80': '\\x80', '%81': '\\x81', '%82': '\\x82', '%83': '\\x83',\n '%84': '\\x84', '%85': '\\x85', '%86': '\\x86', '%87': '\\x87', '%88': '\\x88',\n '%89': '\\x89', '%8a': '\\x8a', '%8A': '\\x8a', '%8b': '\\x8b', '%8B': '\\x8b',\n '%8c': '\\x8c', '%8C': '\\x8c', '%8d': '\\x8d', '%8D': '\\x8d', '%8e': '\\x8e',\n '%8E': '\\x8e', '%8f': '\\x8f', '%8F': '\\x8f', '%90': '\\x90', '%91': '\\x91',\n '%92': '\\x92', '%93': '\\x93', '%94': '\\x94', '%95': '\\x95', '%96': '\\x96',\n '%97': '\\x97', '%98': '\\x98', '%99': '\\x99', '%9a': '\\x9a', '%9A': '\\x9a',\n '%9b': '\\x9b', '%9B': '\\x9b', '%9c': '\\x9c', '%9C': '\\x9c', '%9d': '\\x9d',\n '%9D': '\\x9d', '%9e': '\\x9e', '%9E': '\\x9e', '%9f': '\\x9f', '%9F': '\\x9f',\n '%a0': '\\xa0', '%A0': '\\xa0', '%a1': '\\xa1', '%A1': '\\xa1', '%a2': '\\xa2',\n '%A2': '\\xa2', '%a3': '\\xa3', '%A3': '\\xa3', '%a4': '\\xa4', '%A4': '\\xa4',\n '%a5': '\\xa5', '%A5': '\\xa5', '%a6': '\\xa6', '%A6': '\\xa6', '%a7': '\\xa7',\n '%A7': '\\xa7', '%a8': '\\xa8', '%A8': '\\xa8', '%a9': '\\xa9', '%A9': '\\xa9',\n '%aa': '\\xaa', '%Aa': '\\xaa', '%aA': '\\xaa', '%AA': '\\xaa', '%ab': '\\xab',\n '%Ab': '\\xab', '%aB': '\\xab', '%AB': '\\xab', '%ac': '\\xac', '%Ac': '\\xac',\n '%aC': '\\xac', '%AC': '\\xac', '%ad': '\\xad', '%Ad': '\\xad', '%aD': '\\xad',\n '%AD': '\\xad', '%ae': '\\xae', '%Ae': '\\xae', '%aE': '\\xae', '%AE': '\\xae',\n '%af': '\\xaf', '%Af': '\\xaf', '%aF': '\\xaf', '%AF': '\\xaf', '%b0': '\\xb0',\n '%B0': '\\xb0', '%b1': '\\xb1', '%B1': '\\xb1', '%b2': '\\xb2', '%B2': '\\xb2',\n '%b3': '\\xb3', '%B3': '\\xb3', '%b4': '\\xb4', '%B4': '\\xb4', '%b5': '\\xb5',\n '%B5': '\\xb5', '%b6': '\\xb6', '%B6': '\\xb6', '%b7': '\\xb7', '%B7': '\\xb7',\n '%b8': '\\xb8', '%B8': '\\xb8', '%b9': '\\xb9', '%B9': '\\xb9', '%ba': '\\xba',\n '%Ba': '\\xba', '%bA': '\\xba', '%BA': '\\xba', '%bb': '\\xbb', '%Bb': '\\xbb',\n '%bB': '\\xbb', '%BB': '\\xbb', '%bc': '\\xbc', '%Bc': '\\xbc', '%bC': '\\xbc',\n '%BC': '\\xbc', '%bd': '\\xbd', '%Bd': '\\xbd', '%bD': '\\xbd', '%BD': '\\xbd',\n '%be': '\\xbe', '%Be': '\\xbe', '%bE': '\\xbe', '%BE': '\\xbe', '%bf': '\\xbf',\n '%Bf': '\\xbf', '%bF': '\\xbf', '%BF': '\\xbf', '%c0': '\\xc0', '%C0': '\\xc0',\n '%c1': '\\xc1', '%C1': '\\xc1', '%c2': '\\xc2', '%C2': '\\xc2', '%c3': '\\xc3',\n '%C3': '\\xc3', '%c4': '\\xc4', '%C4': '\\xc4', '%c5': '\\xc5', '%C5': '\\xc5',\n '%c6': '\\xc6', '%C6': '\\xc6', '%c7': '\\xc7', '%C7': '\\xc7', '%c8': '\\xc8',\n '%C8': '\\xc8', '%c9': '\\xc9', '%C9': '\\xc9', '%ca': '\\xca', '%Ca': '\\xca',\n '%cA': '\\xca', '%CA': '\\xca', '%cb': '\\xcb', '%Cb': '\\xcb', '%cB': '\\xcb',\n '%CB': '\\xcb', '%cc': '\\xcc', '%Cc': '\\xcc', '%cC': '\\xcc', '%CC': '\\xcc',\n '%cd': '\\xcd', '%Cd': '\\xcd', '%cD': '\\xcd', '%CD': '\\xcd', '%ce': '\\xce',\n '%Ce': '\\xce', '%cE': '\\xce', '%CE': '\\xce', '%cf': '\\xcf', '%Cf': '\\xcf',\n '%cF': '\\xcf', '%CF': '\\xcf', '%d0': '\\xd0', '%D0': '\\xd0', '%d1': '\\xd1',\n '%D1': '\\xd1', '%d2': '\\xd2', '%D2': '\\xd2', '%d3': '\\xd3', '%D3': '\\xd3',\n '%d4': '\\xd4', '%D4': '\\xd4', '%d5': '\\xd5', '%D5': '\\xd5', '%d6': '\\xd6',\n '%D6': '\\xd6', '%d7': '\\xd7', '%D7': '\\xd7', '%d8': '\\xd8', '%D8': '\\xd8',\n '%d9': '\\xd9', '%D9': '\\xd9', '%da': '\\xda', '%Da': '\\xda', '%dA': '\\xda',\n '%DA': '\\xda', '%db': '\\xdb', '%Db': '\\xdb', '%dB': '\\xdb', '%DB': '\\xdb',\n '%dc': '\\xdc', '%Dc': '\\xdc', '%dC': '\\xdc', '%DC': '\\xdc', '%dd': '\\xdd',\n '%Dd': '\\xdd', '%dD': '\\xdd', '%DD': '\\xdd', '%de': '\\xde', '%De': '\\xde',\n '%dE': '\\xde', '%DE': '\\xde', '%df': '\\xdf', '%Df': '\\xdf', '%dF': '\\xdf',\n '%DF': '\\xdf', '%e0': '\\xe0', '%E0': '\\xe0', '%e1': '\\xe1', '%E1': '\\xe1',\n '%e2': '\\xe2', '%E2': '\\xe2', '%e3': '\\xe3', '%E3': '\\xe3', '%e4': '\\xe4',\n '%E4': '\\xe4', '%e5': '\\xe5', '%E5': '\\xe5', '%e6': '\\xe6', '%E6': '\\xe6',\n '%e7': '\\xe7', '%E7': '\\xe7', '%e8': '\\xe8', '%E8': '\\xe8', '%e9': '\\xe9',\n '%E9': '\\xe9', '%ea': '\\xea', '%Ea': '\\xea', '%eA': '\\xea', '%EA': '\\xea',\n '%eb': '\\xeb', '%Eb': '\\xeb', '%eB': '\\xeb', '%EB': '\\xeb', '%ec': '\\xec',\n '%Ec': '\\xec', '%eC': '\\xec', '%EC': '\\xec', '%ed': '\\xed', '%Ed': '\\xed',\n '%eD': '\\xed', '%ED': '\\xed', '%ee': '\\xee', '%Ee': '\\xee', '%eE': '\\xee',\n '%EE': '\\xee', '%ef': '\\xef', '%Ef': '\\xef', '%eF': '\\xef', '%EF': '\\xef',\n '%f0': '\\xf0', '%F0': '\\xf0', '%f1': '\\xf1', '%F1': '\\xf1', '%f2': '\\xf2',\n '%F2': '\\xf2', '%f3': '\\xf3', '%F3': '\\xf3', '%f4': '\\xf4', '%F4': '\\xf4',\n '%f5': '\\xf5', '%F5': '\\xf5', '%f6': '\\xf6', '%F6': '\\xf6', '%f7': '\\xf7',\n '%F7': '\\xf7', '%f8': '\\xf8', '%F8': '\\xf8', '%f9': '\\xf9', '%F9': '\\xf9',\n '%fa': '\\xfa', '%Fa': '\\xfa', '%fA': '\\xfa', '%FA': '\\xfa', '%fb': '\\xfb',\n '%Fb': '\\xfb', '%fB': '\\xfb', '%FB': '\\xfb', '%fc': '\\xfc', '%Fc': '\\xfc',\n '%fC': '\\xfc', '%FC': '\\xfc', '%fd': '\\xfd', '%Fd': '\\xfd', '%fD': '\\xfd',\n '%FD': '\\xfd', '%fe': '\\xfe', '%Fe': '\\xfe', '%fE': '\\xfe', '%FE': '\\xfe',\n '%ff': '\\xff', '%Ff': '\\xff', '%fF': '\\xff', '%FF': '\\xff'\n}\n\nfunction encodedReplacer (match) {\n return EncodedLookup[match]\n}\n\nconst STATE_KEY = 0\nconst STATE_VALUE = 1\nconst STATE_CHARSET = 2\nconst STATE_LANG = 3\n\nfunction parseParams (str) {\n const res = []\n let state = STATE_KEY\n let charset = ''\n let inquote = false\n let escaping = false\n let p = 0\n let tmp = ''\n const len = str.length\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n const char = str[i]\n if (char === '\\\\' && inquote) {\n if (escaping) { escaping = false } else {\n escaping = true\n continue\n }\n } else if (char === '\"') {\n if (!escaping) {\n if (inquote) {\n inquote = false\n state = STATE_KEY\n } else { inquote = true }\n continue\n } else { escaping = false }\n } else {\n if (escaping && inquote) { tmp += '\\\\' }\n escaping = false\n if ((state === STATE_CHARSET || state === STATE_LANG) && char === \"'\") {\n if (state === STATE_CHARSET) {\n state = STATE_LANG\n charset = tmp.substring(1)\n } else { state = STATE_VALUE }\n tmp = ''\n continue\n } else if (state === STATE_KEY &&\n (char === '*' || char === '=') &&\n res.length) {\n state = char === '*'\n ? STATE_CHARSET\n : STATE_VALUE\n res[p] = [tmp, undefined]\n tmp = ''\n continue\n } else if (!inquote && char === ';') {\n state = STATE_KEY\n if (charset) {\n if (tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n }\n charset = ''\n } else if (tmp.length) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp }\n tmp = ''\n ++p\n continue\n } else if (!inquote && (char === ' ' || char === '\\t')) { continue }\n }\n tmp += char\n }\n if (charset && tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n } else if (tmp) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n\n if (res[p] === undefined) {\n if (tmp) { res[p] = tmp }\n } else { res[p][1] = tmp }\n\n return res\n}\n\nmodule.exports = parseParams\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.range = exports.balanced = void 0;\nconst balanced = (a, b, str) => {\n const ma = a instanceof RegExp ? maybeMatch(a, str) : a;\n const mb = b instanceof RegExp ? maybeMatch(b, str) : b;\n const r = ma !== null && mb != null && (0, exports.range)(ma, mb, str);\n return (r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + ma.length, r[1]),\n post: str.slice(r[1] + mb.length),\n });\n};\nexports.balanced = balanced;\nconst maybeMatch = (reg, str) => {\n const m = str.match(reg);\n return m ? m[0] : null;\n};\nconst range = (a, b, str) => {\n let begs, beg, left, right = undefined, result;\n let ai = str.indexOf(a);\n let bi = str.indexOf(b, ai + 1);\n let i = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n while (i >= 0 && !result) {\n if (i === ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n }\n else if (begs.length === 1) {\n const r = begs.pop();\n if (r !== undefined)\n result = [r, bi];\n }\n else {\n beg = begs.pop();\n if (beg !== undefined && beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i + 1);\n }\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length && right !== undefined) {\n result = [left, right];\n }\n }\n return result;\n};\nexports.range = range;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expand = expand;\nconst balanced_match_1 = require(\"@isaacs/balanced-match\");\nconst escSlash = '\\0SLASH' + Math.random() + '\\0';\nconst escOpen = '\\0OPEN' + Math.random() + '\\0';\nconst escClose = '\\0CLOSE' + Math.random() + '\\0';\nconst escComma = '\\0COMMA' + Math.random() + '\\0';\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0';\nconst escSlashPattern = new RegExp(escSlash, 'g');\nconst escOpenPattern = new RegExp(escOpen, 'g');\nconst escClosePattern = new RegExp(escClose, 'g');\nconst escCommaPattern = new RegExp(escComma, 'g');\nconst escPeriodPattern = new RegExp(escPeriod, 'g');\nconst slashPattern = /\\\\\\\\/g;\nconst openPattern = /\\\\{/g;\nconst closePattern = /\\\\}/g;\nconst commaPattern = /\\\\,/g;\nconst periodPattern = /\\\\./g;\nfunction numeric(str) {\n return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0);\n}\nfunction escapeBraces(str) {\n return str\n .replace(slashPattern, escSlash)\n .replace(openPattern, escOpen)\n .replace(closePattern, escClose)\n .replace(commaPattern, escComma)\n .replace(periodPattern, escPeriod);\n}\nfunction unescapeBraces(str) {\n return str\n .replace(escSlashPattern, '\\\\')\n .replace(escOpenPattern, '{')\n .replace(escClosePattern, '}')\n .replace(escCommaPattern, ',')\n .replace(escPeriodPattern, '.');\n}\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n */\nfunction parseCommaParts(str) {\n if (!str) {\n return [''];\n }\n const parts = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m) {\n return str.split(',');\n }\n const { pre, body, post } = m;\n const p = pre.split(',');\n p[p.length - 1] += '{' + body + '}';\n const postParts = parseCommaParts(post);\n if (post.length) {\n ;\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n parts.push.apply(parts, p);\n return parts;\n}\nfunction expand(str) {\n if (!str) {\n return [];\n }\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.slice(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.slice(2);\n }\n return expand_(escapeBraces(str), true).map(unescapeBraces);\n}\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\nfunction expand_(str, isTop) {\n /** @type {string[]} */\n const expansions = [];\n const m = (0, balanced_match_1.balanced)('{', '}', str);\n if (!m)\n return [str];\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n const pre = m.pre;\n const post = m.post.length ? expand_(m.post, false) : [''];\n if (/\\$$/.test(m.pre)) {\n for (let k = 0; k < post.length; k++) {\n const expansion = pre + '{' + m.body + '}' + post[k];\n expansions.push(expansion);\n }\n }\n else {\n const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n const isSequence = isNumericSequence || isAlphaSequence;\n const isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand_(str);\n }\n return [str];\n }\n let n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n }\n else {\n n = parseCommaParts(m.body);\n if (n.length === 1 && n[0] !== undefined) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand_(n[0], false).map(embrace);\n //XXX is this necessary? Can't seem to hit it in tests.\n /* c8 ignore start */\n if (n.length === 1) {\n return post.map(p => m.pre + n[0] + p);\n }\n /* c8 ignore stop */\n }\n }\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n let N;\n if (isSequence && n[0] !== undefined && n[1] !== undefined) {\n const x = numeric(n[0]);\n const y = numeric(n[1]);\n const width = Math.max(n[0].length, n[1].length);\n let incr = n.length === 3 && n[2] !== undefined ? Math.abs(numeric(n[2])) : 1;\n let test = lte;\n const reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n const pad = n.some(isPadded);\n N = [];\n for (let i = x; test(i, y); i += incr) {\n let c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\') {\n c = '';\n }\n }\n else {\n c = String(i);\n if (pad) {\n const need = width - c.length;\n if (need > 0) {\n const z = new Array(need + 1).join('0');\n if (i < 0) {\n c = '-' + z + c.slice(1);\n }\n else {\n c = z + c;\n }\n }\n }\n }\n N.push(c);\n }\n }\n else {\n N = [];\n for (let j = 0; j < n.length; j++) {\n N.push.apply(N, expand_(n[j], false));\n }\n }\n for (let j = 0; j < N.length; j++) {\n for (let k = 0; k < post.length; k++) {\n const expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion) {\n expansions.push(expansion);\n }\n }\n }\n }\n return expansions;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Glob = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst node_url_1 = require(\"node:url\");\nconst path_scurry_1 = require(\"path-scurry\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst walker_js_1 = require(\"./walker.js\");\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform = (typeof process === 'object' &&\n process &&\n typeof process.platform === 'string') ?\n process.platform\n : 'linux';\n/**\n * An object that can perform glob pattern traversals.\n */\nclass Glob {\n absolute;\n cwd;\n root;\n dot;\n dotRelative;\n follow;\n ignore;\n magicalBraces;\n mark;\n matchBase;\n maxDepth;\n nobrace;\n nocase;\n nodir;\n noext;\n noglobstar;\n pattern;\n platform;\n realpath;\n scurry;\n stat;\n signal;\n windowsPathsNoEscape;\n withFileTypes;\n includeChildMatches;\n /**\n * The options provided to the constructor.\n */\n opts;\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns;\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern, opts) {\n /* c8 ignore start */\n if (!opts)\n throw new TypeError('glob options required');\n /* c8 ignore stop */\n this.withFileTypes = !!opts.withFileTypes;\n this.signal = opts.signal;\n this.follow = !!opts.follow;\n this.dot = !!opts.dot;\n this.dotRelative = !!opts.dotRelative;\n this.nodir = !!opts.nodir;\n this.mark = !!opts.mark;\n if (!opts.cwd) {\n this.cwd = '';\n }\n else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n opts.cwd = (0, node_url_1.fileURLToPath)(opts.cwd);\n }\n this.cwd = opts.cwd || '';\n this.root = opts.root;\n this.magicalBraces = !!opts.magicalBraces;\n this.nobrace = !!opts.nobrace;\n this.noext = !!opts.noext;\n this.realpath = !!opts.realpath;\n this.absolute = opts.absolute;\n this.includeChildMatches = opts.includeChildMatches !== false;\n this.noglobstar = !!opts.noglobstar;\n this.matchBase = !!opts.matchBase;\n this.maxDepth =\n typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity;\n this.stat = !!opts.stat;\n this.ignore = opts.ignore;\n if (this.withFileTypes && this.absolute !== undefined) {\n throw new Error('cannot set absolute and withFileTypes:true');\n }\n if (typeof pattern === 'string') {\n pattern = [pattern];\n }\n this.windowsPathsNoEscape =\n !!opts.windowsPathsNoEscape ||\n opts.allowWindowsEscape ===\n false;\n if (this.windowsPathsNoEscape) {\n pattern = pattern.map(p => p.replace(/\\\\/g, '/'));\n }\n if (this.matchBase) {\n if (opts.noglobstar) {\n throw new TypeError('base matching requires globstar');\n }\n pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`));\n }\n this.pattern = pattern;\n this.platform = opts.platform || defaultPlatform;\n this.opts = { ...opts, platform: this.platform };\n if (opts.scurry) {\n this.scurry = opts.scurry;\n if (opts.nocase !== undefined &&\n opts.nocase !== opts.scurry.nocase) {\n throw new Error('nocase option contradicts provided scurry option');\n }\n }\n else {\n const Scurry = opts.platform === 'win32' ? path_scurry_1.PathScurryWin32\n : opts.platform === 'darwin' ? path_scurry_1.PathScurryDarwin\n : opts.platform ? path_scurry_1.PathScurryPosix\n : path_scurry_1.PathScurry;\n this.scurry = new Scurry(this.cwd, {\n nocase: opts.nocase,\n fs: opts.fs,\n });\n }\n this.nocase = this.scurry.nocase;\n // If you do nocase:true on a case-sensitive file system, then\n // we need to use regexps instead of strings for non-magic\n // path portions, because statting `aBc` won't return results\n // for the file `AbC` for example.\n const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32';\n const mmo = {\n // default nocase based on platform\n ...opts,\n dot: this.dot,\n matchBase: this.matchBase,\n nobrace: this.nobrace,\n nocase: this.nocase,\n nocaseMagicOnly,\n nocomment: true,\n noext: this.noext,\n nonegate: true,\n optimizationLevel: 2,\n platform: this.platform,\n windowsPathsNoEscape: this.windowsPathsNoEscape,\n debug: !!this.opts.debug,\n };\n const mms = this.pattern.map(p => new minimatch_1.Minimatch(p, mmo));\n const [matchSet, globParts] = mms.reduce((set, m) => {\n set[0].push(...m.set);\n set[1].push(...m.globParts);\n return set;\n }, [[], []]);\n this.patterns = matchSet.map((set, i) => {\n const g = globParts[i];\n /* c8 ignore start */\n if (!g)\n throw new Error('invalid pattern object');\n /* c8 ignore stop */\n return new pattern_js_1.Pattern(set, g, 0, this.platform);\n });\n }\n async walk() {\n // Walkers always return array of Path objects, so we just have to\n // coerce them into the right shape. It will have already called\n // realpath() if the option was set to do so, so we know that's cached.\n // start out knowing the cwd, at least\n return [\n ...(await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).walk()),\n ];\n }\n walkSync() {\n return [\n ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).walkSync(),\n ];\n }\n stream() {\n return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).stream();\n }\n streamSync() {\n return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth: this.maxDepth !== Infinity ?\n this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n includeChildMatches: this.includeChildMatches,\n }).streamSync();\n }\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync() {\n return this.streamSync()[Symbol.iterator]();\n }\n [Symbol.iterator]() {\n return this.iterateSync();\n }\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate() {\n return this.stream()[Symbol.asyncIterator]();\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n}\nexports.Glob = Glob;\n//# sourceMappingURL=glob.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasMagic = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nconst hasMagic = (pattern, options = {}) => {\n if (!Array.isArray(pattern)) {\n pattern = [pattern];\n }\n for (const p of pattern) {\n if (new minimatch_1.Minimatch(p, options).hasMagic())\n return true;\n }\n return false;\n};\nexports.hasMagic = hasMagic;\n//# sourceMappingURL=has-magic.js.map","\"use strict\";\n// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ignore = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst defaultPlatform = (typeof process === 'object' &&\n process &&\n typeof process.platform === 'string') ?\n process.platform\n : 'linux';\n/**\n * Class used to process ignored patterns\n */\nclass Ignore {\n relative;\n relativeChildren;\n absolute;\n absoluteChildren;\n platform;\n mmopts;\n constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) {\n this.relative = [];\n this.absolute = [];\n this.relativeChildren = [];\n this.absoluteChildren = [];\n this.platform = platform;\n this.mmopts = {\n dot: true,\n nobrace,\n nocase,\n noext,\n noglobstar,\n optimizationLevel: 2,\n platform,\n nocomment: true,\n nonegate: true,\n };\n for (const ign of ignored)\n this.add(ign);\n }\n add(ign) {\n // this is a little weird, but it gives us a clean set of optimized\n // minimatch matchers, without getting tripped up if one of them\n // ends in /** inside a brace section, and it's only inefficient at\n // the start of the walk, not along it.\n // It'd be nice if the Pattern class just had a .test() method, but\n // handling globstars is a bit of a pita, and that code already lives\n // in minimatch anyway.\n // Another way would be if maybe Minimatch could take its set/globParts\n // as an option, and then we could at least just use Pattern to test\n // for absolute-ness.\n // Yet another way, Minimatch could take an array of glob strings, and\n // a cwd option, and do the right thing.\n const mm = new minimatch_1.Minimatch(ign, this.mmopts);\n for (let i = 0; i < mm.set.length; i++) {\n const parsed = mm.set[i];\n const globParts = mm.globParts[i];\n /* c8 ignore start */\n if (!parsed || !globParts) {\n throw new Error('invalid pattern object');\n }\n // strip off leading ./ portions\n // https://github.com/isaacs/node-glob/issues/570\n while (parsed[0] === '.' && globParts[0] === '.') {\n parsed.shift();\n globParts.shift();\n }\n /* c8 ignore stop */\n const p = new pattern_js_1.Pattern(parsed, globParts, 0, this.platform);\n const m = new minimatch_1.Minimatch(p.globString(), this.mmopts);\n const children = globParts[globParts.length - 1] === '**';\n const absolute = p.isAbsolute();\n if (absolute)\n this.absolute.push(m);\n else\n this.relative.push(m);\n if (children) {\n if (absolute)\n this.absoluteChildren.push(m);\n else\n this.relativeChildren.push(m);\n }\n }\n }\n ignored(p) {\n const fullpath = p.fullpath();\n const fullpaths = `${fullpath}/`;\n const relative = p.relative() || '.';\n const relatives = `${relative}/`;\n for (const m of this.relative) {\n if (m.match(relative) || m.match(relatives))\n return true;\n }\n for (const m of this.absolute) {\n if (m.match(fullpath) || m.match(fullpaths))\n return true;\n }\n return false;\n }\n childrenIgnored(p) {\n const fullpath = p.fullpath() + '/';\n const relative = (p.relative() || '.') + '/';\n for (const m of this.relativeChildren) {\n if (m.match(relative))\n return true;\n }\n for (const m of this.absoluteChildren) {\n if (m.match(fullpath))\n return true;\n }\n return false;\n }\n}\nexports.Ignore = Ignore;\n//# sourceMappingURL=ignore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.glob = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.Ignore = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = void 0;\nexports.globStreamSync = globStreamSync;\nexports.globStream = globStream;\nexports.globSync = globSync;\nexports.globIterateSync = globIterateSync;\nexports.globIterate = globIterate;\nconst minimatch_1 = require(\"minimatch\");\nconst glob_js_1 = require(\"./glob.js\");\nconst has_magic_js_1 = require(\"./has-magic.js\");\nvar minimatch_2 = require(\"minimatch\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return minimatch_2.escape; } });\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return minimatch_2.unescape; } });\nvar glob_js_2 = require(\"./glob.js\");\nObject.defineProperty(exports, \"Glob\", { enumerable: true, get: function () { return glob_js_2.Glob; } });\nvar has_magic_js_2 = require(\"./has-magic.js\");\nObject.defineProperty(exports, \"hasMagic\", { enumerable: true, get: function () { return has_magic_js_2.hasMagic; } });\nvar ignore_js_1 = require(\"./ignore.js\");\nObject.defineProperty(exports, \"Ignore\", { enumerable: true, get: function () { return ignore_js_1.Ignore; } });\nfunction globStreamSync(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).streamSync();\n}\nfunction globStream(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).stream();\n}\nfunction globSync(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).walkSync();\n}\nasync function glob_(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).walk();\n}\nfunction globIterateSync(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).iterateSync();\n}\nfunction globIterate(pattern, options = {}) {\n return new glob_js_1.Glob(pattern, options).iterate();\n}\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexports.streamSync = globStreamSync;\nexports.stream = Object.assign(globStream, { sync: globStreamSync });\nexports.iterateSync = globIterateSync;\nexports.iterate = Object.assign(globIterate, {\n sync: globIterateSync,\n});\nexports.sync = Object.assign(globSync, {\n stream: globStreamSync,\n iterate: globIterateSync,\n});\nexports.glob = Object.assign(glob_, {\n glob: glob_,\n globSync,\n sync: exports.sync,\n globStream,\n stream: exports.stream,\n globStreamSync,\n streamSync: exports.streamSync,\n globIterate,\n iterate: exports.iterate,\n globIterateSync,\n iterateSync: exports.iterateSync,\n Glob: glob_js_1.Glob,\n hasMagic: has_magic_js_1.hasMagic,\n escape: minimatch_1.escape,\n unescape: minimatch_1.unescape,\n});\nexports.glob.glob = exports.glob;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// this is just a very light wrapper around 2 arrays with an offset index\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pattern = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst isPatternList = (pl) => pl.length >= 1;\nconst isGlobList = (gl) => gl.length >= 1;\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nclass Pattern {\n #patternList;\n #globList;\n #index;\n length;\n #platform;\n #rest;\n #globString;\n #isDrive;\n #isUNC;\n #isAbsolute;\n #followGlobstar = true;\n constructor(patternList, globList, index, platform) {\n if (!isPatternList(patternList)) {\n throw new TypeError('empty pattern list');\n }\n if (!isGlobList(globList)) {\n throw new TypeError('empty glob list');\n }\n if (globList.length !== patternList.length) {\n throw new TypeError('mismatched pattern list and glob list lengths');\n }\n this.length = patternList.length;\n if (index < 0 || index >= this.length) {\n throw new TypeError('index out of range');\n }\n this.#patternList = patternList;\n this.#globList = globList;\n this.#index = index;\n this.#platform = platform;\n // normalize root entries of absolute patterns on initial creation.\n if (this.#index === 0) {\n // c: => ['c:/']\n // C:/ => ['C:/']\n // C:/x => ['C:/', 'x']\n // //host/share => ['//host/share/']\n // //host/share/ => ['//host/share/']\n // //host/share/x => ['//host/share/', 'x']\n // /etc => ['/', 'etc']\n // / => ['/']\n if (this.isUNC()) {\n // '' / '' / 'host' / 'share'\n const [p0, p1, p2, p3, ...prest] = this.#patternList;\n const [g0, g1, g2, g3, ...grest] = this.#globList;\n if (prest[0] === '') {\n // ends in /\n prest.shift();\n grest.shift();\n }\n const p = [p0, p1, p2, p3, ''].join('/');\n const g = [g0, g1, g2, g3, ''].join('/');\n this.#patternList = [p, ...prest];\n this.#globList = [g, ...grest];\n this.length = this.#patternList.length;\n }\n else if (this.isDrive() || this.isAbsolute()) {\n const [p1, ...prest] = this.#patternList;\n const [g1, ...grest] = this.#globList;\n if (prest[0] === '') {\n // ends in /\n prest.shift();\n grest.shift();\n }\n const p = p1 + '/';\n const g = g1 + '/';\n this.#patternList = [p, ...prest];\n this.#globList = [g, ...grest];\n this.length = this.#patternList.length;\n }\n }\n }\n /**\n * The first entry in the parsed list of patterns\n */\n pattern() {\n return this.#patternList[this.#index];\n }\n /**\n * true of if pattern() returns a string\n */\n isString() {\n return typeof this.#patternList[this.#index] === 'string';\n }\n /**\n * true of if pattern() returns GLOBSTAR\n */\n isGlobstar() {\n return this.#patternList[this.#index] === minimatch_1.GLOBSTAR;\n }\n /**\n * true if pattern() returns a regexp\n */\n isRegExp() {\n return this.#patternList[this.#index] instanceof RegExp;\n }\n /**\n * The /-joined set of glob parts that make up this pattern\n */\n globString() {\n return (this.#globString =\n this.#globString ||\n (this.#index === 0 ?\n this.isAbsolute() ?\n this.#globList[0] + this.#globList.slice(1).join('/')\n : this.#globList.join('/')\n : this.#globList.slice(this.#index).join('/')));\n }\n /**\n * true if there are more pattern parts after this one\n */\n hasMore() {\n return this.length > this.#index + 1;\n }\n /**\n * The rest of the pattern after this part, or null if this is the end\n */\n rest() {\n if (this.#rest !== undefined)\n return this.#rest;\n if (!this.hasMore())\n return (this.#rest = null);\n this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);\n this.#rest.#isAbsolute = this.#isAbsolute;\n this.#rest.#isUNC = this.#isUNC;\n this.#rest.#isDrive = this.#isDrive;\n return this.#rest;\n }\n /**\n * true if the pattern represents a //unc/path/ on windows\n */\n isUNC() {\n const pl = this.#patternList;\n return this.#isUNC !== undefined ?\n this.#isUNC\n : (this.#isUNC =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n pl[0] === '' &&\n pl[1] === '' &&\n typeof pl[2] === 'string' &&\n !!pl[2] &&\n typeof pl[3] === 'string' &&\n !!pl[3]);\n }\n // pattern like C:/...\n // split = ['C:', ...]\n // XXX: would be nice to handle patterns like `c:*` to test the cwd\n // in c: for *, but I don't know of a way to even figure out what that\n // cwd is without actually chdir'ing into it?\n /**\n * True if the pattern starts with a drive letter on Windows\n */\n isDrive() {\n const pl = this.#patternList;\n return this.#isDrive !== undefined ?\n this.#isDrive\n : (this.#isDrive =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n this.length > 1 &&\n typeof pl[0] === 'string' &&\n /^[a-z]:$/i.test(pl[0]));\n }\n // pattern = '/' or '/...' or '/x/...'\n // split = ['', ''] or ['', ...] or ['', 'x', ...]\n // Drive and UNC both considered absolute on windows\n /**\n * True if the pattern is rooted on an absolute path\n */\n isAbsolute() {\n const pl = this.#patternList;\n return this.#isAbsolute !== undefined ?\n this.#isAbsolute\n : (this.#isAbsolute =\n (pl[0] === '' && pl.length > 1) ||\n this.isDrive() ||\n this.isUNC());\n }\n /**\n * consume the root of the pattern, and return it\n */\n root() {\n const p = this.#patternList[0];\n return (typeof p === 'string' && this.isAbsolute() && this.#index === 0) ?\n p\n : '';\n }\n /**\n * Check to see if the current globstar pattern is allowed to follow\n * a symbolic link.\n */\n checkFollowGlobstar() {\n return !(this.#index === 0 ||\n !this.isGlobstar() ||\n !this.#followGlobstar);\n }\n /**\n * Mark that the current globstar pattern is following a symbolic link\n */\n markFollowGlobstar() {\n if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n return false;\n this.#followGlobstar = false;\n return true;\n }\n}\nexports.Pattern = Pattern;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\n// synchronous utility for filtering entries and calculating subwalks\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * A cache of which patterns have been processed for a given Path\n */\nclass HasWalkedCache {\n store;\n constructor(store = new Map()) {\n this.store = store;\n }\n copy() {\n return new HasWalkedCache(new Map(this.store));\n }\n hasWalked(target, pattern) {\n return this.store.get(target.fullpath())?.has(pattern.globString());\n }\n storeWalked(target, pattern) {\n const fullpath = target.fullpath();\n const cached = this.store.get(fullpath);\n if (cached)\n cached.add(pattern.globString());\n else\n this.store.set(fullpath, new Set([pattern.globString()]));\n }\n}\nexports.HasWalkedCache = HasWalkedCache;\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nclass MatchRecord {\n store = new Map();\n add(target, absolute, ifDir) {\n const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);\n const current = this.store.get(target);\n this.store.set(target, current === undefined ? n : n & current);\n }\n // match, absolute, ifdir\n entries() {\n return [...this.store.entries()].map(([path, n]) => [\n path,\n !!(n & 2),\n !!(n & 1),\n ]);\n }\n}\nexports.MatchRecord = MatchRecord;\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nclass SubWalks {\n store = new Map();\n add(target, pattern) {\n if (!target.canReaddir()) {\n return;\n }\n const subs = this.store.get(target);\n if (subs) {\n if (!subs.find(p => p.globString() === pattern.globString())) {\n subs.push(pattern);\n }\n }\n else\n this.store.set(target, [pattern]);\n }\n get(target) {\n const subs = this.store.get(target);\n /* c8 ignore start */\n if (!subs) {\n throw new Error('attempting to walk unknown path');\n }\n /* c8 ignore stop */\n return subs;\n }\n entries() {\n return this.keys().map(k => [k, this.store.get(k)]);\n }\n keys() {\n return [...this.store.keys()].filter(t => t.canReaddir());\n }\n}\nexports.SubWalks = SubWalks;\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nclass Processor {\n hasWalkedCache;\n matches = new MatchRecord();\n subwalks = new SubWalks();\n patterns;\n follow;\n dot;\n opts;\n constructor(opts, hasWalkedCache) {\n this.opts = opts;\n this.follow = !!opts.follow;\n this.dot = !!opts.dot;\n this.hasWalkedCache =\n hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();\n }\n processPatterns(target, patterns) {\n this.patterns = patterns;\n const processingSet = patterns.map(p => [target, p]);\n // map of paths to the magic-starting subwalks they need to walk\n // first item in patterns is the filter\n for (let [t, pattern] of processingSet) {\n this.hasWalkedCache.storeWalked(t, pattern);\n const root = pattern.root();\n const absolute = pattern.isAbsolute() && this.opts.absolute !== false;\n // start absolute patterns at root\n if (root) {\n t = t.resolve(root === '/' && this.opts.root !== undefined ?\n this.opts.root\n : root);\n const rest = pattern.rest();\n if (!rest) {\n this.matches.add(t, true, false);\n continue;\n }\n else {\n pattern = rest;\n }\n }\n if (t.isENOENT())\n continue;\n let p;\n let rest;\n let changed = false;\n while (typeof (p = pattern.pattern()) === 'string' &&\n (rest = pattern.rest())) {\n const c = t.resolve(p);\n t = c;\n pattern = rest;\n changed = true;\n }\n p = pattern.pattern();\n rest = pattern.rest();\n if (changed) {\n if (this.hasWalkedCache.hasWalked(t, pattern))\n continue;\n this.hasWalkedCache.storeWalked(t, pattern);\n }\n // now we have either a final string for a known entry,\n // more strings for an unknown entry,\n // or a pattern starting with magic, mounted on t.\n if (typeof p === 'string') {\n // must not be final entry, otherwise we would have\n // concatenated it earlier.\n const ifDir = p === '..' || p === '' || p === '.';\n this.matches.add(t.resolve(p), absolute, ifDir);\n continue;\n }\n else if (p === minimatch_1.GLOBSTAR) {\n // if no rest, match and subwalk pattern\n // if rest, process rest and subwalk pattern\n // if it's a symlink, but we didn't get here by way of a\n // globstar match (meaning it's the first time THIS globstar\n // has traversed a symlink), then we follow it. Otherwise, stop.\n if (!t.isSymbolicLink() ||\n this.follow ||\n pattern.checkFollowGlobstar()) {\n this.subwalks.add(t, pattern);\n }\n const rp = rest?.pattern();\n const rrest = rest?.rest();\n if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n // only HAS to be a dir if it ends in **/ or **/.\n // but ending in ** will match files as well.\n this.matches.add(t, absolute, rp === '' || rp === '.');\n }\n else {\n if (rp === '..') {\n // this would mean you're matching **/.. at the fs root,\n // and no thanks, I'm not gonna test that specific case.\n /* c8 ignore start */\n const tp = t.parent || t;\n /* c8 ignore stop */\n if (!rrest)\n this.matches.add(tp, absolute, true);\n else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n this.subwalks.add(tp, rrest);\n }\n }\n }\n }\n else if (p instanceof RegExp) {\n this.subwalks.add(t, pattern);\n }\n }\n return this;\n }\n subwalkTargets() {\n return this.subwalks.keys();\n }\n child() {\n return new Processor(this.opts, this.hasWalkedCache);\n }\n // return a new Processor containing the subwalks for each\n // child entry, and a set of matches, and\n // a hasWalkedCache that's a copy of this one\n // then we're going to call\n filterEntries(parent, entries) {\n const patterns = this.subwalks.get(parent);\n // put matches and entry walks into the results processor\n const results = this.child();\n for (const e of entries) {\n for (const pattern of patterns) {\n const absolute = pattern.isAbsolute();\n const p = pattern.pattern();\n const rest = pattern.rest();\n if (p === minimatch_1.GLOBSTAR) {\n results.testGlobstar(e, pattern, rest, absolute);\n }\n else if (p instanceof RegExp) {\n results.testRegExp(e, p, rest, absolute);\n }\n else {\n results.testString(e, p, rest, absolute);\n }\n }\n }\n return results;\n }\n testGlobstar(e, pattern, rest, absolute) {\n if (this.dot || !e.name.startsWith('.')) {\n if (!pattern.hasMore()) {\n this.matches.add(e, absolute, false);\n }\n if (e.canReaddir()) {\n // if we're in follow mode or it's not a symlink, just keep\n // testing the same pattern. If there's more after the globstar,\n // then this symlink consumes the globstar. If not, then we can\n // follow at most ONE symlink along the way, so we mark it, which\n // also checks to ensure that it wasn't already marked.\n if (this.follow || !e.isSymbolicLink()) {\n this.subwalks.add(e, pattern);\n }\n else if (e.isSymbolicLink()) {\n if (rest && pattern.checkFollowGlobstar()) {\n this.subwalks.add(e, rest);\n }\n else if (pattern.markFollowGlobstar()) {\n this.subwalks.add(e, pattern);\n }\n }\n }\n }\n // if the NEXT thing matches this entry, then also add\n // the rest.\n if (rest) {\n const rp = rest.pattern();\n if (typeof rp === 'string' &&\n // dots and empty were handled already\n rp !== '..' &&\n rp !== '' &&\n rp !== '.') {\n this.testString(e, rp, rest.rest(), absolute);\n }\n else if (rp === '..') {\n /* c8 ignore start */\n const ep = e.parent || e;\n /* c8 ignore stop */\n this.subwalks.add(ep, rest);\n }\n else if (rp instanceof RegExp) {\n this.testRegExp(e, rp, rest.rest(), absolute);\n }\n }\n }\n testRegExp(e, p, rest, absolute) {\n if (!p.test(e.name))\n return;\n if (!rest) {\n this.matches.add(e, absolute, false);\n }\n else {\n this.subwalks.add(e, rest);\n }\n }\n testString(e, p, rest, absolute) {\n // should never happen?\n if (!e.isNamed(p))\n return;\n if (!rest) {\n this.matches.add(e, absolute, false);\n }\n else {\n this.subwalks.add(e, rest);\n }\n }\n}\nexports.Processor = Processor;\n//# sourceMappingURL=processor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobStream = exports.GlobWalker = exports.GlobUtil = void 0;\n/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nconst minipass_1 = require(\"minipass\");\nconst ignore_js_1 = require(\"./ignore.js\");\nconst processor_js_1 = require(\"./processor.js\");\nconst makeIgnore = (ignore, opts) => typeof ignore === 'string' ? new ignore_js_1.Ignore([ignore], opts)\n : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts)\n : ignore;\n/**\n * basic walking utilities that all the glob walker types use\n */\nclass GlobUtil {\n path;\n patterns;\n opts;\n seen = new Set();\n paused = false;\n aborted = false;\n #onResume = [];\n #ignore;\n #sep;\n signal;\n maxDepth;\n includeChildMatches;\n constructor(patterns, path, opts) {\n this.patterns = patterns;\n this.path = path;\n this.opts = opts;\n this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/';\n this.includeChildMatches = opts.includeChildMatches !== false;\n if (opts.ignore || !this.includeChildMatches) {\n this.#ignore = makeIgnore(opts.ignore ?? [], opts);\n if (!this.includeChildMatches &&\n typeof this.#ignore.add !== 'function') {\n const m = 'cannot ignore child matches, ignore lacks add() method.';\n throw new Error(m);\n }\n }\n // ignore, always set with maxDepth, but it's optional on the\n // GlobOptions type\n /* c8 ignore start */\n this.maxDepth = opts.maxDepth || Infinity;\n /* c8 ignore stop */\n if (opts.signal) {\n this.signal = opts.signal;\n this.signal.addEventListener('abort', () => {\n this.#onResume.length = 0;\n });\n }\n }\n #ignored(path) {\n return this.seen.has(path) || !!this.#ignore?.ignored?.(path);\n }\n #childrenIgnored(path) {\n return !!this.#ignore?.childrenIgnored?.(path);\n }\n // backpressure mechanism\n pause() {\n this.paused = true;\n }\n resume() {\n /* c8 ignore start */\n if (this.signal?.aborted)\n return;\n /* c8 ignore stop */\n this.paused = false;\n let fn = undefined;\n while (!this.paused && (fn = this.#onResume.shift())) {\n fn();\n }\n }\n onResume(fn) {\n if (this.signal?.aborted)\n return;\n /* c8 ignore start */\n if (!this.paused) {\n fn();\n }\n else {\n /* c8 ignore stop */\n this.#onResume.push(fn);\n }\n }\n // do the requisite realpath/stat checking, and return the path\n // to add or undefined to filter it out.\n async matchCheck(e, ifDir) {\n if (ifDir && this.opts.nodir)\n return undefined;\n let rpc;\n if (this.opts.realpath) {\n rpc = e.realpathCached() || (await e.realpath());\n if (!rpc)\n return undefined;\n e = rpc;\n }\n const needStat = e.isUnknown() || this.opts.stat;\n const s = needStat ? await e.lstat() : e;\n if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n const target = await s.realpath();\n /* c8 ignore start */\n if (target && (target.isUnknown() || this.opts.stat)) {\n await target.lstat();\n }\n /* c8 ignore stop */\n }\n return this.matchCheckTest(s, ifDir);\n }\n matchCheckTest(e, ifDir) {\n return (e &&\n (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n (!ifDir || e.canReaddir()) &&\n (!this.opts.nodir || !e.isDirectory()) &&\n (!this.opts.nodir ||\n !this.opts.follow ||\n !e.isSymbolicLink() ||\n !e.realpathCached()?.isDirectory()) &&\n !this.#ignored(e)) ?\n e\n : undefined;\n }\n matchCheckSync(e, ifDir) {\n if (ifDir && this.opts.nodir)\n return undefined;\n let rpc;\n if (this.opts.realpath) {\n rpc = e.realpathCached() || e.realpathSync();\n if (!rpc)\n return undefined;\n e = rpc;\n }\n const needStat = e.isUnknown() || this.opts.stat;\n const s = needStat ? e.lstatSync() : e;\n if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n const target = s.realpathSync();\n if (target && (target?.isUnknown() || this.opts.stat)) {\n target.lstatSync();\n }\n }\n return this.matchCheckTest(s, ifDir);\n }\n matchFinish(e, absolute) {\n if (this.#ignored(e))\n return;\n // we know we have an ignore if this is false, but TS doesn't\n if (!this.includeChildMatches && this.#ignore?.add) {\n const ign = `${e.relativePosix()}/**`;\n this.#ignore.add(ign);\n }\n const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute;\n this.seen.add(e);\n const mark = this.opts.mark && e.isDirectory() ? this.#sep : '';\n // ok, we have what we need!\n if (this.opts.withFileTypes) {\n this.matchEmit(e);\n }\n else if (abs) {\n const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath();\n this.matchEmit(abs + mark);\n }\n else {\n const rel = this.opts.posix ? e.relativePosix() : e.relative();\n const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ?\n '.' + this.#sep\n : '';\n this.matchEmit(!rel ? '.' + mark : pre + rel + mark);\n }\n }\n async match(e, absolute, ifDir) {\n const p = await this.matchCheck(e, ifDir);\n if (p)\n this.matchFinish(p, absolute);\n }\n matchSync(e, absolute, ifDir) {\n const p = this.matchCheckSync(e, ifDir);\n if (p)\n this.matchFinish(p, absolute);\n }\n walkCB(target, patterns, cb) {\n /* c8 ignore start */\n if (this.signal?.aborted)\n cb();\n /* c8 ignore stop */\n this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb);\n }\n walkCB2(target, patterns, processor, cb) {\n if (this.#childrenIgnored(target))\n return cb();\n if (this.signal?.aborted)\n cb();\n if (this.paused) {\n this.onResume(() => this.walkCB2(target, patterns, processor, cb));\n return;\n }\n processor.processPatterns(target, patterns);\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n tasks++;\n this.match(m, absolute, ifDir).then(() => next());\n }\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue;\n }\n tasks++;\n const childrenCached = t.readdirCached();\n if (t.calledReaddir())\n this.walkCB3(t, childrenCached, processor, next);\n else {\n t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);\n }\n }\n next();\n }\n walkCB3(target, entries, processor, cb) {\n processor = processor.filterEntries(target, entries);\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n tasks++;\n this.match(m, absolute, ifDir).then(() => next());\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++;\n this.walkCB2(target, patterns, processor.child(), next);\n }\n next();\n }\n walkCBSync(target, patterns, cb) {\n /* c8 ignore start */\n if (this.signal?.aborted)\n cb();\n /* c8 ignore stop */\n this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb);\n }\n walkCB2Sync(target, patterns, processor, cb) {\n if (this.#childrenIgnored(target))\n return cb();\n if (this.signal?.aborted)\n cb();\n if (this.paused) {\n this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));\n return;\n }\n processor.processPatterns(target, patterns);\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n this.matchSync(m, absolute, ifDir);\n }\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue;\n }\n tasks++;\n const children = t.readdirSync();\n this.walkCB3Sync(t, children, processor, next);\n }\n next();\n }\n walkCB3Sync(target, entries, processor, cb) {\n processor = processor.filterEntries(target, entries);\n let tasks = 1;\n const next = () => {\n if (--tasks === 0)\n cb();\n };\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m))\n continue;\n this.matchSync(m, absolute, ifDir);\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++;\n this.walkCB2Sync(target, patterns, processor.child(), next);\n }\n next();\n }\n}\nexports.GlobUtil = GlobUtil;\nclass GlobWalker extends GlobUtil {\n matches = new Set();\n constructor(patterns, path, opts) {\n super(patterns, path, opts);\n }\n matchEmit(e) {\n this.matches.add(e);\n }\n async walk() {\n if (this.signal?.aborted)\n throw this.signal.reason;\n if (this.path.isUnknown()) {\n await this.path.lstat();\n }\n await new Promise((res, rej) => {\n this.walkCB(this.path, this.patterns, () => {\n if (this.signal?.aborted) {\n rej(this.signal.reason);\n }\n else {\n res(this.matches);\n }\n });\n });\n return this.matches;\n }\n walkSync() {\n if (this.signal?.aborted)\n throw this.signal.reason;\n if (this.path.isUnknown()) {\n this.path.lstatSync();\n }\n // nothing for the callback to do, because this never pauses\n this.walkCBSync(this.path, this.patterns, () => {\n if (this.signal?.aborted)\n throw this.signal.reason;\n });\n return this.matches;\n }\n}\nexports.GlobWalker = GlobWalker;\nclass GlobStream extends GlobUtil {\n results;\n constructor(patterns, path, opts) {\n super(patterns, path, opts);\n this.results = new minipass_1.Minipass({\n signal: this.signal,\n objectMode: true,\n });\n this.results.on('drain', () => this.resume());\n this.results.on('resume', () => this.resume());\n }\n matchEmit(e) {\n this.results.write(e);\n if (!this.results.flowing)\n this.pause();\n }\n stream() {\n const target = this.path;\n if (target.isUnknown()) {\n target.lstat().then(() => {\n this.walkCB(target, this.patterns, () => this.results.end());\n });\n }\n else {\n this.walkCB(target, this.patterns, () => this.results.end());\n }\n return this.results;\n }\n streamSync() {\n if (this.path.isUnknown()) {\n this.path.lstatSync();\n }\n this.walkCBSync(this.path, this.patterns, () => this.results.end());\n return this.results;\n }\n}\nexports.GlobStream = GlobStream;\n//# sourceMappingURL=walker.js.map","\"use strict\";\n/**\n * @module LRUCache\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LRUCache = void 0;\nconst perf = typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ? performance\n : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ? process : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n typeof PROCESS.emitWarning === 'function'\n ? PROCESS.emitWarning(msg, type, code, fn)\n : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n //@ts-ignore\n AS = class AbortSignal {\n onabort;\n _onabort = [];\n reason;\n aborted = false;\n addEventListener(_, fn) {\n this._onabort.push(fn);\n }\n };\n //@ts-ignore\n AC = class AbortController {\n constructor() {\n warnACPolyfill();\n }\n signal = new AS();\n abort(reason) {\n if (this.signal.aborted)\n return;\n //@ts-ignore\n this.signal.reason = reason;\n //@ts-ignore\n this.signal.aborted = true;\n //@ts-ignore\n for (const fn of this.signal._onabort) {\n fn(reason);\n }\n this.signal.onabort?.(reason);\n }\n };\n let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n const warnACPolyfill = () => {\n if (!printACPolyfillWarning)\n return;\n printACPolyfillWarning = false;\n emitWarning('AbortController is not defined. If using lru-cache in ' +\n 'node 14, load an AbortController polyfill from the ' +\n '`node-abort-controller` package. A minimal polyfill is ' +\n 'provided for use by LRUCache.fetch(), but it should not be ' +\n 'relied upon in other contexts (eg, passing it to other APIs that ' +\n 'use AbortController/AbortSignal might have undesirable effects). ' +\n 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max)\n ? null\n : max <= Math.pow(2, 8)\n ? Uint8Array\n : max <= Math.pow(2, 16)\n ? Uint16Array\n : max <= Math.pow(2, 32)\n ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER\n ? ZeroArray\n : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n constructor(size) {\n super(size);\n this.fill(0);\n }\n}\nclass Stack {\n heap;\n length;\n // private constructor\n static #constructing = false;\n static create(max) {\n const HeapCls = getUintArray(max);\n if (!HeapCls)\n return [];\n Stack.#constructing = true;\n const s = new Stack(max, HeapCls);\n Stack.#constructing = false;\n return s;\n }\n constructor(max, HeapCls) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)');\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max);\n this.length = 0;\n }\n push(n) {\n this.heap[this.length++] = n;\n }\n pop() {\n return this.heap[--this.length];\n }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nclass LRUCache {\n // options that cannot be changed without disaster\n #max;\n #maxSize;\n #dispose;\n #disposeAfter;\n #fetchMethod;\n #memoMethod;\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl;\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution;\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas;\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale;\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet;\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL;\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize;\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort;\n // computed properties\n #size;\n #calculatedSize;\n #keyMap;\n #keyList;\n #valList;\n #next;\n #prev;\n #head;\n #tail;\n #free;\n #disposed;\n #sizes;\n #starts;\n #ttls;\n #hasDispose;\n #hasFetchMethod;\n #hasDisposeAfter;\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals(c) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n sizes: c.#sizes,\n keyMap: c.#keyMap,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head;\n },\n get tail() {\n return c.#tail;\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n moveToTail: (index) => c.#moveToTail(index),\n indexes: (options) => c.#indexes(options),\n rindexes: (options) => c.#rindexes(options),\n isStale: (index) => c.#isStale(index),\n };\n }\n // Protected read-only members\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max() {\n return this.#max;\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize() {\n return this.#maxSize;\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize() {\n return this.#calculatedSize;\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size() {\n return this.#size;\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod() {\n return this.#fetchMethod;\n }\n get memoMethod() {\n return this.#memoMethod;\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose;\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter;\n }\n constructor(options) {\n const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer');\n }\n const UintArray = max ? getUintArray(max) : Array;\n if (!UintArray) {\n throw new Error('invalid max value: ' + max);\n }\n this.#max = max;\n this.#maxSize = maxSize;\n this.maxEntrySize = maxEntrySize || this.#maxSize;\n this.sizeCalculation = sizeCalculation;\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function');\n }\n }\n if (memoMethod !== undefined &&\n typeof memoMethod !== 'function') {\n throw new TypeError('memoMethod must be a function if defined');\n }\n this.#memoMethod = memoMethod;\n if (fetchMethod !== undefined &&\n typeof fetchMethod !== 'function') {\n throw new TypeError('fetchMethod must be a function if specified');\n }\n this.#fetchMethod = fetchMethod;\n this.#hasFetchMethod = !!fetchMethod;\n this.#keyMap = new Map();\n this.#keyList = new Array(max).fill(undefined);\n this.#valList = new Array(max).fill(undefined);\n this.#next = new UintArray(max);\n this.#prev = new UintArray(max);\n this.#head = 0;\n this.#tail = 0;\n this.#free = Stack.create(max);\n this.#size = 0;\n this.#calculatedSize = 0;\n if (typeof dispose === 'function') {\n this.#dispose = dispose;\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter;\n this.#disposed = [];\n }\n else {\n this.#disposeAfter = undefined;\n this.#disposed = undefined;\n }\n this.#hasDispose = !!this.#dispose;\n this.#hasDisposeAfter = !!this.#disposeAfter;\n this.noDisposeOnSet = !!noDisposeOnSet;\n this.noUpdateTTL = !!noUpdateTTL;\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n this.ignoreFetchAbort = !!ignoreFetchAbort;\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError('maxSize must be a positive integer if specified');\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError('maxEntrySize must be a positive integer if specified');\n }\n this.#initializeSizeTracking();\n }\n this.allowStale = !!allowStale;\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n this.updateAgeOnGet = !!updateAgeOnGet;\n this.updateAgeOnHas = !!updateAgeOnHas;\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0\n ? ttlResolution\n : 1;\n this.ttlAutopurge = !!ttlAutopurge;\n this.ttl = ttl || 0;\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError('ttl must be a positive integer if specified');\n }\n this.#initializeTTLTracking();\n }\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError('At least one of max, maxSize, or ttl is required');\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED';\n if (shouldWarn(code)) {\n warned.add(code);\n const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.';\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n }\n }\n }\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key) {\n return this.#keyMap.has(key) ? Infinity : 0;\n }\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max);\n const starts = new ZeroArray(this.#max);\n this.#ttls = ttls;\n this.#starts = starts;\n this.#setItemTTL = (index, ttl, start = perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0;\n ttls[index] = ttl;\n if (ttl !== 0 && this.ttlAutopurge) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index], 'expire');\n }\n }, ttl + 1);\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n };\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? perf.now() : 0;\n };\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index];\n const start = starts[index];\n /* c8 ignore next */\n if (!ttl || !start)\n return;\n status.ttl = ttl;\n status.start = start;\n status.now = cachedNow || getNow();\n const age = status.now - start;\n status.remainingTTL = ttl - age;\n }\n };\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0;\n const getNow = () => {\n const n = perf.now();\n if (this.ttlResolution > 0) {\n cachedNow = n;\n const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n return n;\n };\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key);\n if (index === undefined) {\n return 0;\n }\n const ttl = ttls[index];\n const start = starts[index];\n if (!ttl || !start) {\n return Infinity;\n }\n const age = (cachedNow || getNow()) - start;\n return ttl - age;\n };\n this.#isStale = index => {\n const s = starts[index];\n const t = ttls[index];\n return !!t && !!s && (cachedNow || getNow()) - s > t;\n };\n }\n // conditionally set private methods related to TTL\n #updateItemAge = () => { };\n #statusTTL = () => { };\n #setItemTTL = () => { };\n /* c8 ignore stop */\n #isStale = () => false;\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max);\n this.#calculatedSize = 0;\n this.#sizes = sizes;\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index];\n sizes[index] = 0;\n };\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0;\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function');\n }\n size = sizeCalculation(v, k);\n if (!isPosInt(size)) {\n throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n }\n }\n else {\n throw new TypeError('invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.');\n }\n }\n return size;\n };\n this.#addItemSize = (index, size, status) => {\n sizes[index] = size;\n if (this.#maxSize) {\n const maxSize = this.#maxSize - sizes[index];\n while (this.#calculatedSize > maxSize) {\n this.#evict(true);\n }\n }\n this.#calculatedSize += sizes[index];\n if (status) {\n status.entrySize = size;\n status.totalCalculatedSize = this.#calculatedSize;\n }\n };\n }\n #removeItemSize = _i => { };\n #addItemSize = (_i, _s, _st) => { };\n #requireSize = (_k, _v, size, sizeCalculation) => {\n if (size || sizeCalculation) {\n throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n }\n return 0;\n };\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#head) {\n break;\n }\n else {\n i = this.#prev[i];\n }\n }\n }\n }\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#tail) {\n break;\n }\n else {\n i = this.#next[i];\n }\n }\n }\n }\n #isValidIndex(index) {\n return (index !== undefined &&\n this.#keyMap.get(this.#keyList[index]) === index);\n }\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache';\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(fn, getOptions = {}) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n if (fn(value, this.#keyList[i], this)) {\n return this.get(this.#keyList[i], getOptions);\n }\n }\n }\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(fn, thisp = this) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(fn, thisp = this) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false;\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i], 'expire');\n deleted = true;\n }\n }\n return deleted;\n }\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key) {\n const i = this.#keyMap.get(key);\n if (i === undefined)\n return undefined;\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n return undefined;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i];\n const start = this.#starts[i];\n if (ttl && start) {\n const remain = ttl - (perf.now() - start);\n entry.ttl = remain;\n entry.start = Date.now();\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n return entry;\n }\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRLUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr = [];\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i];\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined || key === undefined)\n continue;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i];\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = perf.now() - this.#starts[i];\n entry.start = Math.floor(Date.now() - age);\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n arr.unshift([key, entry]);\n }\n return arr;\n }\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr) {\n this.clear();\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start;\n entry.start = perf.now() - age;\n }\n this.set(key, entry.value, entry);\n }\n }\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(k, v, setOptions = {}) {\n if (v === undefined) {\n this.delete(k);\n return this;\n }\n const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss';\n status.maxEntrySizeExceeded = true;\n }\n // have to delete, in case something is there already.\n this.#delete(k, 'set');\n return this;\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n if (index === undefined) {\n // addition\n index = (this.#size === 0\n ? this.#tail\n : this.#free.length !== 0\n ? this.#free.pop()\n : this.#size === this.#max\n ? this.#evict(false)\n : this.#size);\n this.#keyList[index] = k;\n this.#valList[index] = v;\n this.#keyMap.set(k, index);\n this.#next[this.#tail] = index;\n this.#prev[index] = this.#tail;\n this.#tail = index;\n this.#size++;\n this.#addItemSize(index, size, status);\n if (status)\n status.set = 'add';\n noUpdateTTL = false;\n }\n else {\n // update\n this.#moveToTail(index);\n const oldVal = this.#valList[index];\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'));\n const { __staleWhileFetching: s } = oldVal;\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s, k, 'set']);\n }\n }\n }\n else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal, k, 'set']);\n }\n }\n this.#removeItemSize(index);\n this.#addItemSize(index, size, status);\n this.#valList[index] = v;\n if (status) {\n status.set = 'replace';\n const oldValue = oldVal && this.#isBackgroundFetch(oldVal)\n ? oldVal.__staleWhileFetching\n : oldVal;\n if (oldValue !== undefined)\n status.oldValue = oldValue;\n }\n }\n else if (status) {\n status.set = 'update';\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking();\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start);\n }\n if (status)\n this.#statusTTL(status, index);\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return this;\n }\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop() {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head];\n this.#evict(true);\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching;\n }\n }\n else if (val !== undefined) {\n return val;\n }\n }\n }\n finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n }\n #evict(free) {\n const head = this.#head;\n const k = this.#keyList[head];\n const v = this.#valList[head];\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict']);\n }\n }\n this.#removeItemSize(head);\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined;\n this.#valList[head] = undefined;\n this.#free.push(head);\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0;\n this.#free.length = 0;\n }\n else {\n this.#head = this.#next[head];\n }\n this.#keyMap.delete(k);\n this.#size--;\n return head;\n }\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k, hasOptions = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined) {\n return false;\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index);\n }\n if (status) {\n status.has = 'hit';\n this.#statusTTL(status, index);\n }\n return true;\n }\n else if (status) {\n status.has = 'stale';\n this.#statusTTL(status, index);\n }\n }\n else if (status) {\n status.has = 'miss';\n }\n return false;\n }\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k, peekOptions = {}) {\n const { allowStale = this.allowStale } = peekOptions;\n const index = this.#keyMap.get(k);\n if (index === undefined ||\n (!allowStale && this.#isStale(index))) {\n return;\n }\n const v = this.#valList[index];\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n }\n #backgroundFetch(k, index, options, context) {\n const v = index === undefined ? undefined : this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n return v;\n }\n const ac = new AC();\n const { signal } = options;\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n });\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n };\n const cb = (v, updateCache = false) => {\n const { aborted } = ac.signal;\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true;\n options.status.fetchError = ac.signal.reason;\n if (ignoreAbort)\n options.status.fetchAbortIgnored = true;\n }\n else {\n options.status.fetchResolved = true;\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason);\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p;\n if (this.#valList[index] === p) {\n if (v === undefined) {\n if (bf.__staleWhileFetching) {\n this.#valList[index] = bf.__staleWhileFetching;\n }\n else {\n this.#delete(k, 'fetch');\n }\n }\n else {\n if (options.status)\n options.status.fetchUpdated = true;\n this.set(k, v, fetchOpts.options);\n }\n }\n return v;\n };\n const eb = (er) => {\n if (options.status) {\n options.status.fetchRejected = true;\n options.status.fetchError = er;\n }\n return fetchFail(er);\n };\n const fetchFail = (er) => {\n const { aborted } = ac.signal;\n const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n const noDelete = allowStale || options.noDeleteOnFetchRejection;\n const bf = p;\n if (this.#valList[index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del = !noDelete || bf.__staleWhileFetching === undefined;\n if (del) {\n this.#delete(k, 'fetch');\n }\n else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index] = bf.__staleWhileFetching;\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true;\n }\n return bf.__staleWhileFetching;\n }\n else if (bf.__returned === bf) {\n throw er;\n }\n };\n const pcall = (res, rej) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej);\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (!options.ignoreFetchAbort ||\n options.allowStaleOnFetchAbort) {\n res(undefined);\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true);\n }\n }\n });\n };\n if (options.status)\n options.status.fetchDispatched = true;\n const p = new Promise(pcall).then(cb, eb);\n const bf = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n });\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, bf, { ...fetchOpts.options, status: undefined });\n index = this.#keyMap.get(k);\n }\n else {\n this.#valList[index] = bf;\n }\n return bf;\n }\n #isBackgroundFetch(p) {\n if (!this.#hasFetchMethod)\n return false;\n const b = p;\n return (!!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AC);\n }\n async fetch(k, fetchOptions = {}) {\n const { \n // get options\n allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n // set options\n ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n if (!this.#hasFetchMethod) {\n if (status)\n status.fetch = 'get';\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n });\n }\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n };\n let index = this.#keyMap.get(k);\n if (index === undefined) {\n if (status)\n status.fetch = 'miss';\n const p = this.#backgroundFetch(k, index, options, context);\n return (p.__returned = p);\n }\n else {\n // in cache, maybe already fetching\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n const stale = allowStale && v.__staleWhileFetching !== undefined;\n if (status) {\n status.fetch = 'inflight';\n if (stale)\n status.returnedStale = true;\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v);\n }\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index);\n if (!forceRefresh && !isStale) {\n if (status)\n status.fetch = 'hit';\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n if (status)\n this.#statusTTL(status, index);\n return v;\n }\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context);\n const hasStale = p.__staleWhileFetching !== undefined;\n const staleVal = hasStale && allowStale;\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh';\n if (staleVal && isStale)\n status.returnedStale = true;\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n }\n }\n async forceFetch(k, fetchOptions = {}) {\n const v = await this.fetch(k, fetchOptions);\n if (v === undefined)\n throw new Error('fetch() returned undefined');\n return v;\n }\n memo(k, memoOptions = {}) {\n const memoMethod = this.#memoMethod;\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor');\n }\n const { context, forceRefresh, ...options } = memoOptions;\n const v = this.get(k, options);\n if (!forceRefresh && v !== undefined)\n return v;\n const vv = memoMethod(k, v, {\n options,\n context,\n });\n this.set(k, vv, options);\n return vv;\n }\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k, getOptions = {}) {\n const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const value = this.#valList[index];\n const fetching = this.#isBackgroundFetch(value);\n if (status)\n this.#statusTTL(status, index);\n if (this.#isStale(index)) {\n if (status)\n status.get = 'stale';\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire');\n }\n if (status && allowStale)\n status.returnedStale = true;\n return allowStale ? value : undefined;\n }\n else {\n if (status &&\n allowStale &&\n value.__staleWhileFetching !== undefined) {\n status.returnedStale = true;\n }\n return allowStale ? value.__staleWhileFetching : undefined;\n }\n }\n else {\n if (status)\n status.get = 'hit';\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching;\n }\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n return value;\n }\n }\n else if (status) {\n status.get = 'miss';\n }\n }\n #connect(p, n) {\n this.#prev[n] = p;\n this.#next[p] = n;\n }\n #moveToTail(index) {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n this.#connect(this.#prev[index], this.#next[index]);\n }\n this.#connect(this.#tail, index);\n this.#tail = index;\n }\n }\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k) {\n return this.#delete(k, 'delete');\n }\n #delete(k, reason) {\n let deleted = false;\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n deleted = true;\n if (this.#size === 1) {\n this.#clear(reason);\n }\n else {\n this.#removeItemSize(index);\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n this.#keyMap.delete(k);\n this.#keyList[index] = undefined;\n this.#valList[index] = undefined;\n if (index === this.#tail) {\n this.#tail = this.#prev[index];\n }\n else if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n const pi = this.#prev[index];\n this.#next[pi] = this.#next[index];\n const ni = this.#next[index];\n this.#prev[ni] = this.#prev[index];\n }\n this.#size--;\n this.#free.push(index);\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return deleted;\n }\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete');\n }\n #clear(reason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else {\n const k = this.#keyList[index];\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n }\n this.#keyMap.clear();\n this.#valList.fill(undefined);\n this.#keyList.fill(undefined);\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0);\n this.#starts.fill(0);\n }\n if (this.#sizes) {\n this.#sizes.fill(0);\n }\n this.#head = 0;\n this.#tail = 0;\n this.#free.length = 0;\n this.#calculatedSize = 0;\n this.#size = 0;\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n}\nexports.LRUCache = LRUCache;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertValidPattern = void 0;\nconst MAX_PATTERN_LENGTH = 1024 * 64;\nconst assertValidPattern = (pattern) => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern');\n }\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long');\n }\n};\nexports.assertValidPattern = assertValidPattern;\n//# sourceMappingURL=assert-valid-pattern.js.map","\"use strict\";\n// parse a single path portion\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AST = void 0;\nconst brace_expressions_js_1 = require(\"./brace-expressions.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nclass AST {\n type;\n #root;\n #hasMagic;\n #uflag = false;\n #parts = [];\n #parent;\n #parentIndex;\n #negs;\n #filledNegs = false;\n #options;\n #toString;\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt = false;\n constructor(type, parent, options = {}) {\n this.type = type;\n // extglobs are inherently magical\n if (type)\n this.#hasMagic = true;\n this.#parent = parent;\n this.#root = this.#parent ? this.#parent.#root : this;\n this.#options = this.#root === this ? options : this.#root.#options;\n this.#negs = this.#root === this ? [] : this.#root.#negs;\n if (type === '!' && !this.#root.#filledNegs)\n this.#negs.push(this);\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n }\n get hasMagic() {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined)\n return this.#hasMagic;\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string')\n continue;\n if (p.type || p.hasMagic)\n return (this.#hasMagic = true);\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic;\n }\n // reconstructs the pattern\n toString() {\n if (this.#toString !== undefined)\n return this.#toString;\n if (!this.type) {\n return (this.#toString = this.#parts.map(p => String(p)).join(''));\n }\n else {\n return (this.#toString =\n this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n }\n }\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root)\n throw new Error('should only call on root');\n if (this.#filledNegs)\n return this;\n /* c8 ignore stop */\n // call toString() once to fill this out\n this.toString();\n this.#filledNegs = true;\n let n;\n while ((n = this.#negs.pop())) {\n if (n.type !== '!')\n continue;\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p = n;\n let pp = p.#parent;\n while (pp) {\n for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??');\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i]);\n }\n }\n p = pp;\n pp = p.#parent;\n }\n }\n return this;\n }\n push(...parts) {\n for (const p of parts) {\n if (p === '')\n continue;\n /* c8 ignore start */\n if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n throw new Error('invalid part: ' + p);\n }\n /* c8 ignore stop */\n this.#parts.push(p);\n }\n }\n toJSON() {\n const ret = this.type === null\n ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => p.toJSON())];\n if (this.isStart() && !this.type)\n ret.unshift([]);\n if (this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n ret.push({});\n }\n return ret;\n }\n isStart() {\n if (this.#root === this)\n return true;\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart())\n return false;\n if (this.#parentIndex === 0)\n return true;\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent;\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i];\n if (!(pp instanceof AST && pp.type === '!')) {\n return false;\n }\n }\n return true;\n }\n isEnd() {\n if (this.#root === this)\n return true;\n if (this.#parent?.type === '!')\n return true;\n if (!this.#parent?.isEnd())\n return false;\n if (!this.type)\n return this.#parent?.isEnd();\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0;\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1;\n }\n copyIn(part) {\n if (typeof part === 'string')\n this.push(part);\n else\n this.push(part.clone(this));\n }\n clone(parent) {\n const c = new AST(this.type, parent);\n for (const p of this.#parts) {\n c.copyIn(p);\n }\n return c;\n }\n static #parseAST(str, ast, pos, opt) {\n let escaping = false;\n let inBrace = false;\n let braceStart = -1;\n let braceNeg = false;\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos;\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n ast.push(acc);\n acc = '';\n const ext = new AST(c, ast);\n i = AST.#parseAST(str, ext, i, opt);\n ast.push(ext);\n continue;\n }\n acc += c;\n }\n ast.push(acc);\n return i;\n }\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1;\n let part = new AST(null, ast);\n const parts = [];\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (isExtglobType(c) && str.charAt(i) === '(') {\n part.push(acc);\n acc = '';\n const ext = new AST(c, part);\n part.push(ext);\n i = AST.#parseAST(str, ext, i, opt);\n continue;\n }\n if (c === '|') {\n part.push(acc);\n acc = '';\n parts.push(part);\n part = new AST(null, ast);\n continue;\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true;\n }\n part.push(acc);\n acc = '';\n ast.push(...parts, part);\n return i;\n }\n acc += c;\n }\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null;\n ast.#hasMagic = undefined;\n ast.#parts = [str.substring(pos - 1)];\n return i;\n }\n static fromGlob(pattern, options = {}) {\n const ast = new AST(null, undefined, options);\n AST.#parseAST(pattern, ast, 0, options);\n return ast;\n }\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern() {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root)\n return this.#root.toMMPattern();\n /* c8 ignore stop */\n const glob = this.toString();\n const [re, body, hasMagic, uflag] = this.toRegExpSource();\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic = hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase());\n if (!anyMagic) {\n return body;\n }\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n });\n }\n get options() {\n return this.#options;\n }\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(allowDot) {\n const dot = allowDot ?? !!this.#options.dot;\n if (this.#root === this)\n this.#fillNegs();\n if (!this.type) {\n const noEmpty = this.isStart() && this.isEnd();\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] = typeof p === 'string'\n ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot);\n this.#hasMagic = this.#hasMagic || hasMagic;\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .join('');\n let start = '';\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n if (!dotTravAllowed) {\n const aps = addPatternStart;\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav = \n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n }\n }\n }\n // append the \"end of path portion\" pattern to negation tails\n let end = '';\n if (this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!') {\n end = '(?:$|\\\\/)';\n }\n const final = start + src + end;\n return [\n final,\n (0, unescape_js_1.unescape)(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n const repeated = this.type === '*' || this.type === '+';\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n let body = this.#partsToRegExp(dot);\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString();\n this.#parts = [s];\n this.type = null;\n this.#hasMagic = undefined;\n return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];\n }\n // XXX abstract out this map method\n let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n ? ''\n : this.#partsToRegExp(true);\n if (bodyDotAllowed === body) {\n bodyDotAllowed = '';\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`;\n }\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = '';\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n }\n else {\n const close = this.type === '!'\n ? // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@'\n ? ')'\n : this.type === '?'\n ? ')?'\n : this.type === '+' && bodyDotAllowed\n ? ')'\n : this.type === '*' && bodyDotAllowed\n ? `)?`\n : `)${this.type}`;\n final = start + body + close;\n }\n return [\n final,\n (0, unescape_js_1.unescape)(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n #partsToRegExp(dot) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??');\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|');\n }\n static #parseGlob(glob, hasMagic, noEmpty = false) {\n let escaping = false;\n let re = '';\n let uflag = false;\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i);\n if (escaping) {\n escaping = false;\n re += (reSpecials.has(c) ? '\\\\' : '') + c;\n continue;\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\';\n }\n else {\n escaping = true;\n }\n continue;\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i);\n if (consumed) {\n re += src;\n uflag = uflag || needUflag;\n i += consumed - 1;\n hasMagic = hasMagic || magic;\n continue;\n }\n }\n if (c === '*') {\n if (noEmpty && glob === '*')\n re += starNoEmpty;\n else\n re += star;\n hasMagic = true;\n continue;\n }\n if (c === '?') {\n re += qmark;\n hasMagic = true;\n continue;\n }\n re += regExpEscape(c);\n }\n return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];\n }\n}\nexports.AST = AST;\n//# sourceMappingURL=ast.js.map","\"use strict\";\n// translate the various posix character classes into unicode properties\n// this works across all unicode locales\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseClass = void 0;\n// { : [, /u flag required, negated]\nconst posixClasses = {\n '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n '[:cntrl:]': ['\\\\p{Cc}', true],\n '[:digit:]': ['\\\\p{Nd}', true],\n '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n '[:lower:]': ['\\\\p{Ll}', true],\n '[:print:]': ['\\\\p{C}', true],\n '[:punct:]': ['\\\\p{P}', true],\n '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n '[:upper:]': ['\\\\p{Lu}', true],\n '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nconst parseClass = (glob, position) => {\n const pos = position;\n /* c8 ignore start */\n if (glob.charAt(pos) !== '[') {\n throw new Error('not in a brace expression');\n }\n /* c8 ignore stop */\n const ranges = [];\n const negs = [];\n let i = pos + 1;\n let sawStart = false;\n let uflag = false;\n let escaping = false;\n let negate = false;\n let endPos = pos;\n let rangeStart = '';\n WHILE: while (i < glob.length) {\n const c = glob.charAt(i);\n if ((c === '!' || c === '^') && i === pos + 1) {\n negate = true;\n i++;\n continue;\n }\n if (c === ']' && sawStart && !escaping) {\n endPos = i + 1;\n break;\n }\n sawStart = true;\n if (c === '\\\\') {\n if (!escaping) {\n escaping = true;\n i++;\n continue;\n }\n // escaped \\ char, fall through and treat like normal char\n }\n if (c === '[' && !escaping) {\n // either a posix class, a collation equivalent, or just a [\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i)) {\n // invalid, [a-[] is fine, but not [a-[:alpha]]\n if (rangeStart) {\n return ['$.', false, glob.length - pos, true];\n }\n i += cls.length;\n if (neg)\n negs.push(unip);\n else\n ranges.push(unip);\n uflag = uflag || u;\n continue WHILE;\n }\n }\n }\n // now it's just a normal character, effectively\n escaping = false;\n if (rangeStart) {\n // throw this range away if it's not valid, but others\n // can still match.\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n }\n else if (c === rangeStart) {\n ranges.push(braceEscape(c));\n }\n rangeStart = '';\n i++;\n continue;\n }\n // now might be the start of a range.\n // can be either c-d or c-] or c] or c] at this point\n if (glob.startsWith('-]', i + 1)) {\n ranges.push(braceEscape(c + '-'));\n i += 2;\n continue;\n }\n if (glob.startsWith('-', i + 1)) {\n rangeStart = c;\n i += 2;\n continue;\n }\n // not the start of a range, just a single character\n ranges.push(braceEscape(c));\n i++;\n }\n if (endPos < i) {\n // didn't see the end of the class, not a valid class,\n // but might still be valid as a literal match.\n return ['', false, 0, false];\n }\n // if we got no ranges and no negates, then we have a range that\n // cannot possibly match anything, and that poisons the whole glob\n if (!ranges.length && !negs.length) {\n return ['$.', false, glob.length - pos, true];\n }\n // if we got one positive range, and it's a single character, then that's\n // not actually a magic pattern, it's just that one literal character.\n // we should not treat that as \"magic\", we should just return the literal\n // character. [_] is a perfectly valid way to escape glob magic chars.\n if (negs.length === 0 &&\n ranges.length === 1 &&\n /^\\\\?.$/.test(ranges[0]) &&\n !negate) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n return [regexpEscape(r), false, endPos - pos, false];\n }\n const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n const comb = ranges.length && negs.length\n ? '(' + sranges + '|' + snegs + ')'\n : ranges.length\n ? sranges\n : snegs;\n return [comb, uflag, endPos - pos, true];\n};\nexports.parseClass = parseClass;\n//# sourceMappingURL=brace-expressions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escape = void 0;\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nconst escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\nexports.escape = escape;\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;\nconst brace_expansion_1 = __importDefault(require(\"brace-expansion\"));\nconst assert_valid_pattern_js_1 = require(\"./assert-valid-pattern.js\");\nconst ast_js_1 = require(\"./ast.js\");\nconst escape_js_1 = require(\"./escape.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst minimatch = (p, pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false;\n }\n return new Minimatch(pattern, options).match(p);\n};\nexports.minimatch = minimatch;\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n ext = ext.toLowerCase();\n return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n ext = ext.toLowerCase();\n return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n ? (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix');\nconst path = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nexports.minimatch.sep = exports.sep;\nexports.GLOBSTAR = Symbol('globstar **');\nexports.minimatch.GLOBSTAR = exports.GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nconst filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options);\nexports.filter = filter;\nexports.minimatch.filter = exports.filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nconst defaults = (def) => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return exports.minimatch;\n }\n const orig = exports.minimatch;\n const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern, options = {}) {\n super(pattern, ext(def, options));\n }\n static defaults(options) {\n return orig.defaults(ext(def, options)).Minimatch;\n }\n },\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(type, parent, options = {}) {\n super(type, parent, ext(def, options));\n }\n /* c8 ignore stop */\n static fromGlob(pattern, options = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options));\n }\n },\n unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n defaults: (options) => orig.defaults(ext(def, options)),\n makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n sep: orig.sep,\n GLOBSTAR: exports.GLOBSTAR,\n });\n};\nexports.defaults = defaults;\nexports.minimatch.defaults = exports.defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nconst braceExpand = (pattern, options = {}) => {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern];\n }\n return (0, brace_expansion_1.default)(pattern);\n};\nexports.braceExpand = braceExpand;\nexports.minimatch.braceExpand = exports.braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nexports.makeRe = makeRe;\nexports.minimatch.makeRe = exports.makeRe;\nconst match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options);\n list = list.filter(f => mm.match(f));\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n};\nexports.match = match;\nexports.minimatch.match = exports.match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nclass Minimatch {\n options;\n set;\n pattern;\n windowsPathsNoEscape;\n nonegate;\n negate;\n comment;\n empty;\n preserveMultipleSlashes;\n partial;\n globSet;\n globParts;\n nocase;\n isWindows;\n platform;\n windowsNoMagicRoot;\n regexp;\n constructor(pattern, options = {}) {\n (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n options = options || {};\n this.options = options;\n this.pattern = pattern;\n this.platform = options.platform || defaultPlatform;\n this.isWindows = this.platform === 'win32';\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/');\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n this.regexp = null;\n this.negate = false;\n this.nonegate = !!options.nonegate;\n this.comment = false;\n this.empty = false;\n this.partial = !!options.partial;\n this.nocase = !!this.options.nocase;\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined\n ? options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase);\n this.globSet = [];\n this.globParts = [];\n this.set = [];\n // make the set of regexps etc.\n this.make();\n }\n hasMagic() {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true;\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string')\n return true;\n }\n }\n return false;\n }\n debug(..._) { }\n make() {\n const pattern = this.pattern;\n const options = this.options;\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n // step 1: figure out negation, etc.\n this.parseNegate();\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())];\n if (options.debug) {\n this.debug = (...args) => console.error(...args);\n }\n this.debug(this.pattern, this.globSet);\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n this.globParts = this.preprocess(rawGlobParts);\n this.debug(this.pattern, this.globParts);\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC = s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3]);\n const isDrive = /^[a-z]:/i.test(s[0]);\n if (isUNC) {\n return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n }\n else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n }\n }\n return s.map(ss => this.parse(ss));\n });\n this.debug(this.pattern, set);\n // filter out everything that didn't compile properly.\n this.set = set.filter(s => s.indexOf(false) === -1);\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i];\n if (p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])) {\n p[2] = '?';\n }\n }\n }\n this.debug(this.pattern, this.set);\n }\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts) {\n // if we're not in globstar mode, then turn all ** into *\n if (this.options.noglobstar) {\n for (let i = 0; i < globParts.length; i++) {\n for (let j = 0; j < globParts[i].length; j++) {\n if (globParts[i][j] === '**') {\n globParts[i][j] = '*';\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts);\n globParts = this.secondPhasePreProcess(globParts);\n }\n else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts);\n }\n else {\n // just collapse multiple ** portions into one\n globParts = this.adjascentGlobstarOptimize(globParts);\n }\n return globParts;\n }\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts) {\n return globParts.map(parts => {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs;\n while (parts[i + 1] === '**') {\n i++;\n }\n if (i !== gs) {\n parts.splice(gs, i - gs);\n }\n }\n return parts;\n });\n }\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts) {\n return globParts.map(parts => {\n parts = parts.reduce((set, part) => {\n const prev = set[set.length - 1];\n if (part === '**' && prev === '**') {\n return set;\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop();\n return set;\n }\n }\n set.push(part);\n return set;\n }, []);\n return parts.length === 0 ? [''] : parts;\n });\n }\n levelTwoFileOptimize(parts) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts);\n }\n let didSomething = false;\n do {\n didSomething = false;\n //
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === exports.GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return (0, exports.braceExpand)(this.pattern, this.options);\n    }\n    parse(pattern) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return exports.GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === exports.GLOBSTAR\n                        ? exports.GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== exports.GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== exports.GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = exports.GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== exports.GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return exports.minimatch.defaults(def).Minimatch;\n    }\n}\nexports.Minimatch = Minimatch;\n/* c8 ignore start */\nvar ast_js_2 = require(\"./ast.js\");\nObject.defineProperty(exports, \"AST\", { enumerable: true, get: function () { return ast_js_2.AST; } });\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nvar unescape_js_2 = require(\"./unescape.js\");\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return unescape_js_2.unescape; } });\n/* c8 ignore stop */\nexports.minimatch.AST = ast_js_1.AST;\nexports.minimatch.Minimatch = Minimatch;\nexports.minimatch.escape = escape_js_1.escape;\nexports.minimatch.unescape = unescape_js_1.unescape;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = void 0;\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nconst unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    return windowsPathsNoEscape\n        ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n        : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\nexports.unescape = unescape;\n//# sourceMappingURL=unescape.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathScurry = exports.Path = exports.PathScurryDarwin = exports.PathScurryPosix = exports.PathScurryWin32 = exports.PathScurryBase = exports.PathPosix = exports.PathWin32 = exports.PathBase = exports.ChildrenCache = exports.ResolveCache = void 0;\nconst lru_cache_1 = require(\"lru-cache\");\nconst node_path_1 = require(\"node:path\");\nconst node_url_1 = require(\"node:url\");\nconst fs_1 = require(\"fs\");\nconst actualFS = __importStar(require(\"node:fs\"));\nconst realpathSync = fs_1.realpathSync.native;\n// TODO: test perf of fs/promises realpath vs realpathCB,\n// since the promises one uses realpath.native\nconst promises_1 = require(\"node:fs/promises\");\nconst minipass_1 = require(\"minipass\");\nconst defaultFS = {\n    lstatSync: fs_1.lstatSync,\n    readdir: fs_1.readdir,\n    readdirSync: fs_1.readdirSync,\n    readlinkSync: fs_1.readlinkSync,\n    realpathSync,\n    promises: {\n        lstat: promises_1.lstat,\n        readdir: promises_1.readdir,\n        readlink: promises_1.readlink,\n        realpath: promises_1.realpath,\n    },\n};\n// if they just gave us require('fs') then use our default\nconst fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ?\n    defaultFS\n    : {\n        ...defaultFS,\n        ...fsOption,\n        promises: {\n            ...defaultFS.promises,\n            ...(fsOption.promises || {}),\n        },\n    };\n// turn something like //?/c:/ into c:\\\nconst uncDriveRegexp = /^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i;\nconst uncToDrive = (rootPath) => rootPath.replace(/\\//g, '\\\\').replace(uncDriveRegexp, '$1\\\\');\n// windows paths are separated by either / or \\\nconst eitherSep = /[\\\\\\/]/;\nconst UNKNOWN = 0; // may not even exist, for all we know\nconst IFIFO = 0b0001;\nconst IFCHR = 0b0010;\nconst IFDIR = 0b0100;\nconst IFBLK = 0b0110;\nconst IFREG = 0b1000;\nconst IFLNK = 0b1010;\nconst IFSOCK = 0b1100;\nconst IFMT = 0b1111;\n// mask to unset low 4 bits\nconst IFMT_UNKNOWN = ~IFMT;\n// set after successfully calling readdir() and getting entries.\nconst READDIR_CALLED = 0b0000_0001_0000;\n// set after a successful lstat()\nconst LSTAT_CALLED = 0b0000_0010_0000;\n// set if an entry (or one of its parents) is definitely not a dir\nconst ENOTDIR = 0b0000_0100_0000;\n// set if an entry (or one of its parents) does not exist\n// (can also be set on lstat errors like EACCES or ENAMETOOLONG)\nconst ENOENT = 0b0000_1000_0000;\n// cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK\n// set if we fail to readlink\nconst ENOREADLINK = 0b0001_0000_0000;\n// set if we know realpath() will fail\nconst ENOREALPATH = 0b0010_0000_0000;\nconst ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;\nconst TYPEMASK = 0b0011_1111_1111;\nconst entToType = (s) => s.isFile() ? IFREG\n    : s.isDirectory() ? IFDIR\n        : s.isSymbolicLink() ? IFLNK\n            : s.isCharacterDevice() ? IFCHR\n                : s.isBlockDevice() ? IFBLK\n                    : s.isSocket() ? IFSOCK\n                        : s.isFIFO() ? IFIFO\n                            : UNKNOWN;\n// normalize unicode path names\nconst normalizeCache = new Map();\nconst normalize = (s) => {\n    const c = normalizeCache.get(s);\n    if (c)\n        return c;\n    const n = s.normalize('NFKD');\n    normalizeCache.set(s, n);\n    return n;\n};\nconst normalizeNocaseCache = new Map();\nconst normalizeNocase = (s) => {\n    const c = normalizeNocaseCache.get(s);\n    if (c)\n        return c;\n    const n = normalize(s.toLowerCase());\n    normalizeNocaseCache.set(s, n);\n    return n;\n};\n/**\n * An LRUCache for storing resolved path strings or Path objects.\n * @internal\n */\nclass ResolveCache extends lru_cache_1.LRUCache {\n    constructor() {\n        super({ max: 256 });\n    }\n}\nexports.ResolveCache = ResolveCache;\n// In order to prevent blowing out the js heap by allocating hundreds of\n// thousands of Path entries when walking extremely large trees, the \"children\"\n// in this tree are represented by storing an array of Path entries in an\n// LRUCache, indexed by the parent.  At any time, Path.children() may return an\n// empty array, indicating that it doesn't know about any of its children, and\n// thus has to rebuild that cache.  This is fine, it just means that we don't\n// benefit as much from having the cached entries, but huge directory walks\n// don't blow out the stack, and smaller ones are still as fast as possible.\n//\n//It does impose some complexity when building up the readdir data, because we\n//need to pass a reference to the children array that we started with.\n/**\n * an LRUCache for storing child entries.\n * @internal\n */\nclass ChildrenCache extends lru_cache_1.LRUCache {\n    constructor(maxSize = 16 * 1024) {\n        super({\n            maxSize,\n            // parent + children\n            sizeCalculation: a => a.length + 1,\n        });\n    }\n}\nexports.ChildrenCache = ChildrenCache;\nconst setAsCwd = Symbol('PathScurry setAsCwd');\n/**\n * Path objects are sort of like a super-powered\n * {@link https://nodejs.org/docs/latest/api/fs.html#class-fsdirent fs.Dirent}\n *\n * Each one represents a single filesystem entry on disk, which may or may not\n * exist. It includes methods for reading various types of information via\n * lstat, readlink, and readdir, and caches all information to the greatest\n * degree possible.\n *\n * Note that fs operations that would normally throw will instead return an\n * \"empty\" value. This is in order to prevent excessive overhead from error\n * stack traces.\n */\nclass PathBase {\n    /**\n     * the basename of this path\n     *\n     * **Important**: *always* test the path name against any test string\n     * usingthe {@link isNamed} method, and not by directly comparing this\n     * string. Otherwise, unicode path strings that the system sees as identical\n     * will not be properly treated as the same path, leading to incorrect\n     * behavior and possible security issues.\n     */\n    name;\n    /**\n     * the Path entry corresponding to the path root.\n     *\n     * @internal\n     */\n    root;\n    /**\n     * All roots found within the current PathScurry family\n     *\n     * @internal\n     */\n    roots;\n    /**\n     * a reference to the parent path, or undefined in the case of root entries\n     *\n     * @internal\n     */\n    parent;\n    /**\n     * boolean indicating whether paths are compared case-insensitively\n     * @internal\n     */\n    nocase;\n    /**\n     * boolean indicating that this path is the current working directory\n     * of the PathScurry collection that contains it.\n     */\n    isCWD = false;\n    // potential default fs override\n    #fs;\n    // Stats fields\n    #dev;\n    get dev() {\n        return this.#dev;\n    }\n    #mode;\n    get mode() {\n        return this.#mode;\n    }\n    #nlink;\n    get nlink() {\n        return this.#nlink;\n    }\n    #uid;\n    get uid() {\n        return this.#uid;\n    }\n    #gid;\n    get gid() {\n        return this.#gid;\n    }\n    #rdev;\n    get rdev() {\n        return this.#rdev;\n    }\n    #blksize;\n    get blksize() {\n        return this.#blksize;\n    }\n    #ino;\n    get ino() {\n        return this.#ino;\n    }\n    #size;\n    get size() {\n        return this.#size;\n    }\n    #blocks;\n    get blocks() {\n        return this.#blocks;\n    }\n    #atimeMs;\n    get atimeMs() {\n        return this.#atimeMs;\n    }\n    #mtimeMs;\n    get mtimeMs() {\n        return this.#mtimeMs;\n    }\n    #ctimeMs;\n    get ctimeMs() {\n        return this.#ctimeMs;\n    }\n    #birthtimeMs;\n    get birthtimeMs() {\n        return this.#birthtimeMs;\n    }\n    #atime;\n    get atime() {\n        return this.#atime;\n    }\n    #mtime;\n    get mtime() {\n        return this.#mtime;\n    }\n    #ctime;\n    get ctime() {\n        return this.#ctime;\n    }\n    #birthtime;\n    get birthtime() {\n        return this.#birthtime;\n    }\n    #matchName;\n    #depth;\n    #fullpath;\n    #fullpathPosix;\n    #relative;\n    #relativePosix;\n    #type;\n    #children;\n    #linkTarget;\n    #realpath;\n    /**\n     * This property is for compatibility with the Dirent class as of\n     * Node v20, where Dirent['parentPath'] refers to the path of the\n     * directory that was passed to readdir. For root entries, it's the path\n     * to the entry itself.\n     */\n    get parentPath() {\n        return (this.parent || this).fullpath();\n    }\n    /**\n     * Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,\n     * this property refers to the *parent* path, not the path object itself.\n     */\n    get path() {\n        return this.parentPath;\n    }\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        this.name = name;\n        this.#matchName = nocase ? normalizeNocase(name) : normalize(name);\n        this.#type = type & TYPEMASK;\n        this.nocase = nocase;\n        this.roots = roots;\n        this.root = root || this;\n        this.#children = children;\n        this.#fullpath = opts.fullpath;\n        this.#relative = opts.relative;\n        this.#relativePosix = opts.relativePosix;\n        this.parent = opts.parent;\n        if (this.parent) {\n            this.#fs = this.parent.#fs;\n        }\n        else {\n            this.#fs = fsFromOption(opts.fs);\n        }\n    }\n    /**\n     * Returns the depth of the Path object from its root.\n     *\n     * For example, a path at `/foo/bar` would have a depth of 2.\n     */\n    depth() {\n        if (this.#depth !== undefined)\n            return this.#depth;\n        if (!this.parent)\n            return (this.#depth = 0);\n        return (this.#depth = this.parent.depth() + 1);\n    }\n    /**\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Get the Path object referenced by the string path, resolved from this Path\n     */\n    resolve(path) {\n        if (!path) {\n            return this;\n        }\n        const rootPath = this.getRootString(path);\n        const dir = path.substring(rootPath.length);\n        const dirParts = dir.split(this.splitSep);\n        const result = rootPath ?\n            this.getRoot(rootPath).#resolveParts(dirParts)\n            : this.#resolveParts(dirParts);\n        return result;\n    }\n    #resolveParts(dirParts) {\n        let p = this;\n        for (const part of dirParts) {\n            p = p.child(part);\n        }\n        return p;\n    }\n    /**\n     * Returns the cached children Path objects, if still available.  If they\n     * have fallen out of the cache, then returns an empty array, and resets the\n     * READDIR_CALLED bit, so that future calls to readdir() will require an fs\n     * lookup.\n     *\n     * @internal\n     */\n    children() {\n        const cached = this.#children.get(this);\n        if (cached) {\n            return cached;\n        }\n        const children = Object.assign([], { provisional: 0 });\n        this.#children.set(this, children);\n        this.#type &= ~READDIR_CALLED;\n        return children;\n    }\n    /**\n     * Resolves a path portion and returns or creates the child Path.\n     *\n     * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is\n     * `'..'`.\n     *\n     * This should not be called directly.  If `pathPart` contains any path\n     * separators, it will lead to unsafe undefined behavior.\n     *\n     * Use `Path.resolve()` instead.\n     *\n     * @internal\n     */\n    child(pathPart, opts) {\n        if (pathPart === '' || pathPart === '.') {\n            return this;\n        }\n        if (pathPart === '..') {\n            return this.parent || this;\n        }\n        // find the child\n        const children = this.children();\n        const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);\n        for (const p of children) {\n            if (p.#matchName === name) {\n                return p;\n            }\n        }\n        // didn't find it, create provisional child, since it might not\n        // actually exist.  If we know the parent isn't a dir, then\n        // in fact it CAN'T exist.\n        const s = this.parent ? this.sep : '';\n        const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : undefined;\n        const pchild = this.newChild(pathPart, UNKNOWN, {\n            ...opts,\n            parent: this,\n            fullpath,\n        });\n        if (!this.canReaddir()) {\n            pchild.#type |= ENOENT;\n        }\n        // don't have to update provisional, because if we have real children,\n        // then provisional is set to children.length, otherwise a lower number\n        children.push(pchild);\n        return pchild;\n    }\n    /**\n     * The relative path from the cwd. If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpath()\n     */\n    relative() {\n        if (this.isCWD)\n            return '';\n        if (this.#relative !== undefined) {\n            return this.#relative;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relative = this.name);\n        }\n        const pv = p.relative();\n        return pv + (!pv || !p.parent ? '' : this.sep) + name;\n    }\n    /**\n     * The relative path from the cwd, using / as the path separator.\n     * If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpathPosix()\n     * On posix systems, this is identical to relative().\n     */\n    relativePosix() {\n        if (this.sep === '/')\n            return this.relative();\n        if (this.isCWD)\n            return '';\n        if (this.#relativePosix !== undefined)\n            return this.#relativePosix;\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relativePosix = this.fullpathPosix());\n        }\n        const pv = p.relativePosix();\n        return pv + (!pv || !p.parent ? '' : '/') + name;\n    }\n    /**\n     * The fully resolved path string for this Path entry\n     */\n    fullpath() {\n        if (this.#fullpath !== undefined) {\n            return this.#fullpath;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#fullpath = this.name);\n        }\n        const pv = p.fullpath();\n        const fp = pv + (!p.parent ? '' : this.sep) + name;\n        return (this.#fullpath = fp);\n    }\n    /**\n     * On platforms other than windows, this is identical to fullpath.\n     *\n     * On windows, this is overridden to return the forward-slash form of the\n     * full UNC path.\n     */\n    fullpathPosix() {\n        if (this.#fullpathPosix !== undefined)\n            return this.#fullpathPosix;\n        if (this.sep === '/')\n            return (this.#fullpathPosix = this.fullpath());\n        if (!this.parent) {\n            const p = this.fullpath().replace(/\\\\/g, '/');\n            if (/^[a-z]:\\//i.test(p)) {\n                return (this.#fullpathPosix = `//?/${p}`);\n            }\n            else {\n                return (this.#fullpathPosix = p);\n            }\n        }\n        const p = this.parent;\n        const pfpp = p.fullpathPosix();\n        const fpp = pfpp + (!pfpp || !p.parent ? '' : '/') + this.name;\n        return (this.#fullpathPosix = fpp);\n    }\n    /**\n     * Is the Path of an unknown type?\n     *\n     * Note that we might know *something* about it if there has been a previous\n     * filesystem operation, for example that it does not exist, or is not a\n     * link, or whether it has child entries.\n     */\n    isUnknown() {\n        return (this.#type & IFMT) === UNKNOWN;\n    }\n    isType(type) {\n        return this[`is${type}`]();\n    }\n    getType() {\n        return (this.isUnknown() ? 'Unknown'\n            : this.isDirectory() ? 'Directory'\n                : this.isFile() ? 'File'\n                    : this.isSymbolicLink() ? 'SymbolicLink'\n                        : this.isFIFO() ? 'FIFO'\n                            : this.isCharacterDevice() ? 'CharacterDevice'\n                                : this.isBlockDevice() ? 'BlockDevice'\n                                    : /* c8 ignore start */ this.isSocket() ? 'Socket'\n                                        : 'Unknown');\n        /* c8 ignore stop */\n    }\n    /**\n     * Is the Path a regular file?\n     */\n    isFile() {\n        return (this.#type & IFMT) === IFREG;\n    }\n    /**\n     * Is the Path a directory?\n     */\n    isDirectory() {\n        return (this.#type & IFMT) === IFDIR;\n    }\n    /**\n     * Is the path a character device?\n     */\n    isCharacterDevice() {\n        return (this.#type & IFMT) === IFCHR;\n    }\n    /**\n     * Is the path a block device?\n     */\n    isBlockDevice() {\n        return (this.#type & IFMT) === IFBLK;\n    }\n    /**\n     * Is the path a FIFO pipe?\n     */\n    isFIFO() {\n        return (this.#type & IFMT) === IFIFO;\n    }\n    /**\n     * Is the path a socket?\n     */\n    isSocket() {\n        return (this.#type & IFMT) === IFSOCK;\n    }\n    /**\n     * Is the path a symbolic link?\n     */\n    isSymbolicLink() {\n        return (this.#type & IFLNK) === IFLNK;\n    }\n    /**\n     * Return the entry if it has been subject of a successful lstat, or\n     * undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* simply\n     * mean that we haven't called lstat on it.\n     */\n    lstatCached() {\n        return this.#type & LSTAT_CALLED ? this : undefined;\n    }\n    /**\n     * Return the cached link target if the entry has been the subject of a\n     * successful readlink, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readlink() has been called at some point.\n     */\n    readlinkCached() {\n        return this.#linkTarget;\n    }\n    /**\n     * Returns the cached realpath target if the entry has been the subject\n     * of a successful realpath, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * realpath() has been called at some point.\n     */\n    realpathCached() {\n        return this.#realpath;\n    }\n    /**\n     * Returns the cached child Path entries array if the entry has been the\n     * subject of a successful readdir(), or [] otherwise.\n     *\n     * Does not read the filesystem, so an empty array *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readdir() has been called recently enough to still be valid.\n     */\n    readdirCached() {\n        const children = this.children();\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * Return true if it's worth trying to readlink.  Ie, we don't (yet) have\n     * any indication that readlink will definitely fail.\n     *\n     * Returns false if the path is known to not be a symlink, if a previous\n     * readlink failed, or if the entry does not exist.\n     */\n    canReadlink() {\n        if (this.#linkTarget)\n            return true;\n        if (!this.parent)\n            return false;\n        // cases where it cannot possibly succeed\n        const ifmt = this.#type & IFMT;\n        return !((ifmt !== UNKNOWN && ifmt !== IFLNK) ||\n            this.#type & ENOREADLINK ||\n            this.#type & ENOENT);\n    }\n    /**\n     * Return true if readdir has previously been successfully called on this\n     * path, indicating that cachedReaddir() is likely valid.\n     */\n    calledReaddir() {\n        return !!(this.#type & READDIR_CALLED);\n    }\n    /**\n     * Returns true if the path is known to not exist. That is, a previous lstat\n     * or readdir failed to verify its existence when that would have been\n     * expected, or a parent entry was marked either enoent or enotdir.\n     */\n    isENOENT() {\n        return !!(this.#type & ENOENT);\n    }\n    /**\n     * Return true if the path is a match for the given path name.  This handles\n     * case sensitivity and unicode normalization.\n     *\n     * Note: even on case-sensitive systems, it is **not** safe to test the\n     * equality of the `.name` property to determine whether a given pathname\n     * matches, due to unicode normalization mismatches.\n     *\n     * Always use this method instead of testing the `path.name` property\n     * directly.\n     */\n    isNamed(n) {\n        return !this.nocase ?\n            this.#matchName === normalize(n)\n            : this.#matchName === normalizeNocase(n);\n    }\n    /**\n     * Return the Path object corresponding to the target of a symbolic link.\n     *\n     * If the Path is not a symbolic link, or if the readlink call fails for any\n     * reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     */\n    async readlink() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = await this.#fs.promises.readlink(this.fullpath());\n            const linkTarget = (await this.parent.realpath())?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    /**\n     * Synchronous {@link PathBase.readlink}\n     */\n    readlinkSync() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = this.#fs.readlinkSync(this.fullpath());\n            const linkTarget = this.parent.realpathSync()?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    #readdirSuccess(children) {\n        // succeeded, mark readdir called bit\n        this.#type |= READDIR_CALLED;\n        // mark all remaining provisional children as ENOENT\n        for (let p = children.provisional; p < children.length; p++) {\n            const c = children[p];\n            if (c)\n                c.#markENOENT();\n        }\n    }\n    #markENOENT() {\n        // mark as UNKNOWN and ENOENT\n        if (this.#type & ENOENT)\n            return;\n        this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;\n        this.#markChildrenENOENT();\n    }\n    #markChildrenENOENT() {\n        // all children are provisional and do not exist\n        const children = this.children();\n        children.provisional = 0;\n        for (const p of children) {\n            p.#markENOENT();\n        }\n    }\n    #markENOREALPATH() {\n        this.#type |= ENOREALPATH;\n        this.#markENOTDIR();\n    }\n    // save the information when we know the entry is not a dir\n    #markENOTDIR() {\n        // entry is not a directory, so any children can't exist.\n        // this *should* be impossible, since any children created\n        // after it's been marked ENOTDIR should be marked ENOENT,\n        // so it won't even get to this point.\n        /* c8 ignore start */\n        if (this.#type & ENOTDIR)\n            return;\n        /* c8 ignore stop */\n        let t = this.#type;\n        // this could happen if we stat a dir, then delete it,\n        // then try to read it or one of its children.\n        if ((t & IFMT) === IFDIR)\n            t &= IFMT_UNKNOWN;\n        this.#type = t | ENOTDIR;\n        this.#markChildrenENOENT();\n    }\n    #readdirFail(code = '') {\n        // markENOTDIR and markENOENT also set provisional=0\n        if (code === 'ENOTDIR' || code === 'EPERM') {\n            this.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            this.#markENOENT();\n        }\n        else {\n            this.children().provisional = 0;\n        }\n    }\n    #lstatFail(code = '') {\n        // Windows just raises ENOENT in this case, disable for win CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR') {\n            // already know it has a parent by this point\n            const p = this.parent;\n            p.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            /* c8 ignore stop */\n            this.#markENOENT();\n        }\n    }\n    #readlinkFail(code = '') {\n        let ter = this.#type;\n        ter |= ENOREADLINK;\n        if (code === 'ENOENT')\n            ter |= ENOENT;\n        // windows gets a weird error when you try to readlink a file\n        if (code === 'EINVAL' || code === 'UNKNOWN') {\n            // exists, but not a symlink, we don't know WHAT it is, so remove\n            // all IFMT bits.\n            ter &= IFMT_UNKNOWN;\n        }\n        this.#type = ter;\n        // windows just gets ENOENT in this case.  We do cover the case,\n        // just disabled because it's impossible on Windows CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR' && this.parent) {\n            this.parent.#markENOTDIR();\n        }\n        /* c8 ignore stop */\n    }\n    #readdirAddChild(e, c) {\n        return (this.#readdirMaybePromoteChild(e, c) ||\n            this.#readdirAddNewChild(e, c));\n    }\n    #readdirAddNewChild(e, c) {\n        // alloc new entry at head, so it's never provisional\n        const type = entToType(e);\n        const child = this.newChild(e.name, type, { parent: this });\n        const ifmt = child.#type & IFMT;\n        if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {\n            child.#type |= ENOTDIR;\n        }\n        c.unshift(child);\n        c.provisional++;\n        return child;\n    }\n    #readdirMaybePromoteChild(e, c) {\n        for (let p = c.provisional; p < c.length; p++) {\n            const pchild = c[p];\n            const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);\n            if (name !== pchild.#matchName) {\n                continue;\n            }\n            return this.#readdirPromoteChild(e, pchild, p, c);\n        }\n    }\n    #readdirPromoteChild(e, p, index, c) {\n        const v = p.name;\n        // retain any other flags, but set ifmt from dirent\n        p.#type = (p.#type & IFMT_UNKNOWN) | entToType(e);\n        // case sensitivity fixing when we learn the true name.\n        if (v !== e.name)\n            p.name = e.name;\n        // just advance provisional index (potentially off the list),\n        // otherwise we have to splice/pop it out and re-insert at head\n        if (index !== c.provisional) {\n            if (index === c.length - 1)\n                c.pop();\n            else\n                c.splice(index, 1);\n            c.unshift(p);\n        }\n        c.provisional++;\n        return p;\n    }\n    /**\n     * Call lstat() on this Path, and update all known information that can be\n     * determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    /**\n     * synchronous {@link PathBase.lstat}\n     */\n    lstatSync() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(this.#fs.lstatSync(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    #applyStat(st) {\n        const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid, } = st;\n        this.#atime = atime;\n        this.#atimeMs = atimeMs;\n        this.#birthtime = birthtime;\n        this.#birthtimeMs = birthtimeMs;\n        this.#blksize = blksize;\n        this.#blocks = blocks;\n        this.#ctime = ctime;\n        this.#ctimeMs = ctimeMs;\n        this.#dev = dev;\n        this.#gid = gid;\n        this.#ino = ino;\n        this.#mode = mode;\n        this.#mtime = mtime;\n        this.#mtimeMs = mtimeMs;\n        this.#nlink = nlink;\n        this.#rdev = rdev;\n        this.#size = size;\n        this.#uid = uid;\n        const ifmt = entToType(st);\n        // retain any other flags, but set the ifmt\n        this.#type = (this.#type & IFMT_UNKNOWN) | ifmt | LSTAT_CALLED;\n        if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {\n            this.#type |= ENOTDIR;\n        }\n    }\n    #onReaddirCB = [];\n    #readdirCBInFlight = false;\n    #callOnReaddirCB(children) {\n        this.#readdirCBInFlight = false;\n        const cbs = this.#onReaddirCB.slice();\n        this.#onReaddirCB.length = 0;\n        cbs.forEach(cb => cb(null, children));\n    }\n    /**\n     * Standard node-style callback interface to get list of directory entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     *\n     * @param cb The callback called with (er, entries).  Note that the `er`\n     * param is somewhat extraneous, as all readdir() errors are handled and\n     * simply result in an empty set of entries being returned.\n     * @param allowZalgo Boolean indicating that immediately known results should\n     * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release\n     * zalgo at your peril, the dark pony lord is devious and unforgiving.\n     */\n    readdirCB(cb, allowZalgo = false) {\n        if (!this.canReaddir()) {\n            if (allowZalgo)\n                cb(null, []);\n            else\n                queueMicrotask(() => cb(null, []));\n            return;\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            const c = children.slice(0, children.provisional);\n            if (allowZalgo)\n                cb(null, c);\n            else\n                queueMicrotask(() => cb(null, c));\n            return;\n        }\n        // don't have to worry about zalgo at this point.\n        this.#onReaddirCB.push(cb);\n        if (this.#readdirCBInFlight) {\n            return;\n        }\n        this.#readdirCBInFlight = true;\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {\n            if (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            else {\n                // if we didn't get an error, we always get entries.\n                //@ts-ignore\n                for (const e of entries) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            this.#callOnReaddirCB(children.slice(0, children.provisional));\n            return;\n        });\n    }\n    #asyncReaddirInFlight;\n    /**\n     * Return an array of known child entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async readdir() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        if (this.#asyncReaddirInFlight) {\n            await this.#asyncReaddirInFlight;\n        }\n        else {\n            /* c8 ignore start */\n            let resolve = () => { };\n            /* c8 ignore stop */\n            this.#asyncReaddirInFlight = new Promise(res => (resolve = res));\n            try {\n                for (const e of await this.#fs.promises.readdir(fullpath, {\n                    withFileTypes: true,\n                })) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            catch (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            this.#asyncReaddirInFlight = undefined;\n            resolve();\n        }\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * synchronous {@link PathBase.readdir}\n     */\n    readdirSync() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        try {\n            for (const e of this.#fs.readdirSync(fullpath, {\n                withFileTypes: true,\n            })) {\n                this.#readdirAddChild(e, children);\n            }\n            this.#readdirSuccess(children);\n        }\n        catch (er) {\n            this.#readdirFail(er.code);\n            children.provisional = 0;\n        }\n        return children.slice(0, children.provisional);\n    }\n    canReaddir() {\n        if (this.#type & ENOCHILD)\n            return false;\n        const ifmt = IFMT & this.#type;\n        // we always set ENOTDIR when setting IFMT, so should be impossible\n        /* c8 ignore start */\n        if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {\n            return false;\n        }\n        /* c8 ignore stop */\n        return true;\n    }\n    shouldWalk(dirs, walkFilter) {\n        return ((this.#type & IFDIR) === IFDIR &&\n            !(this.#type & ENOCHILD) &&\n            !dirs.has(this) &&\n            (!walkFilter || walkFilter(this)));\n    }\n    /**\n     * Return the Path object corresponding to path as resolved\n     * by realpath(3).\n     *\n     * If the realpath call fails for any reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     * On success, returns a Path object.\n     */\n    async realpath() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = await this.#fs.promises.realpath(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Synchronous {@link realpath}\n     */\n    realpathSync() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = this.#fs.realpathSync(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Internal method to mark this Path object as the scurry cwd,\n     * called by {@link PathScurry#chdir}\n     *\n     * @internal\n     */\n    [setAsCwd](oldCwd) {\n        if (oldCwd === this)\n            return;\n        oldCwd.isCWD = false;\n        this.isCWD = true;\n        const changed = new Set([]);\n        let rp = [];\n        let p = this;\n        while (p && p.parent) {\n            changed.add(p);\n            p.#relative = rp.join(this.sep);\n            p.#relativePosix = rp.join('/');\n            p = p.parent;\n            rp.push('..');\n        }\n        // now un-memoize parents of old cwd\n        p = oldCwd;\n        while (p && p.parent && !changed.has(p)) {\n            p.#relative = undefined;\n            p.#relativePosix = undefined;\n            p = p.parent;\n        }\n    }\n}\nexports.PathBase = PathBase;\n/**\n * Path class used on win32 systems\n *\n * Uses `'\\\\'` as the path separator for returned paths, either `'\\\\'` or `'/'`\n * as the path separator for parsing paths.\n */\nclass PathWin32 extends PathBase {\n    /**\n     * Separator for generating path strings.\n     */\n    sep = '\\\\';\n    /**\n     * Separator for parsing path strings.\n     */\n    splitSep = eitherSep;\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathWin32(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return node_path_1.win32.parse(path).root;\n    }\n    /**\n     * @internal\n     */\n    getRoot(rootPath) {\n        rootPath = uncToDrive(rootPath.toUpperCase());\n        if (rootPath === this.root.name) {\n            return this.root;\n        }\n        // ok, not that one, check if it matches another we know about\n        for (const [compare, root] of Object.entries(this.roots)) {\n            if (this.sameRoot(rootPath, compare)) {\n                return (this.roots[rootPath] = root);\n            }\n        }\n        // otherwise, have to create a new one.\n        return (this.roots[rootPath] = new PathScurryWin32(rootPath, this).root);\n    }\n    /**\n     * @internal\n     */\n    sameRoot(rootPath, compare = this.root.name) {\n        // windows can (rarely) have case-sensitive filesystem, but\n        // UNC and drive letters are always case-insensitive, and canonically\n        // represented uppercase.\n        rootPath = rootPath\n            .toUpperCase()\n            .replace(/\\//g, '\\\\')\n            .replace(uncDriveRegexp, '$1\\\\');\n        return rootPath === compare;\n    }\n}\nexports.PathWin32 = PathWin32;\n/**\n * Path class used on all posix systems.\n *\n * Uses `'/'` as the path separator.\n */\nclass PathPosix extends PathBase {\n    /**\n     * separator for parsing path strings\n     */\n    splitSep = '/';\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return path.startsWith('/') ? '/' : '';\n    }\n    /**\n     * @internal\n     */\n    getRoot(_rootPath) {\n        return this.root;\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathPosix(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n}\nexports.PathPosix = PathPosix;\n/**\n * The base class for all PathScurry classes, providing the interface for path\n * resolution and filesystem operations.\n *\n * Typically, you should *not* instantiate this class directly, but rather one\n * of the platform-specific classes, or the exported {@link PathScurry} which\n * defaults to the current platform.\n */\nclass PathScurryBase {\n    /**\n     * The root Path entry for the current working directory of this Scurry\n     */\n    root;\n    /**\n     * The string path for the root of this Scurry's current working directory\n     */\n    rootPath;\n    /**\n     * A collection of all roots encountered, referenced by rootPath\n     */\n    roots;\n    /**\n     * The Path entry corresponding to this PathScurry's current working directory.\n     */\n    cwd;\n    #resolveCache;\n    #resolvePosixCache;\n    #children;\n    /**\n     * Perform path comparisons case-insensitively.\n     *\n     * Defaults true on Darwin and Windows systems, false elsewhere.\n     */\n    nocase;\n    #fs;\n    /**\n     * This class should not be instantiated directly.\n     *\n     * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry\n     *\n     * @internal\n     */\n    constructor(cwd = process.cwd(), pathImpl, sep, { nocase, childrenCacheSize = 16 * 1024, fs = defaultFS, } = {}) {\n        this.#fs = fsFromOption(fs);\n        if (cwd instanceof URL || cwd.startsWith('file://')) {\n            cwd = (0, node_url_1.fileURLToPath)(cwd);\n        }\n        // resolve and split root, and then add to the store.\n        // this is the only time we call path.resolve()\n        const cwdPath = pathImpl.resolve(cwd);\n        this.roots = Object.create(null);\n        this.rootPath = this.parseRootPath(cwdPath);\n        this.#resolveCache = new ResolveCache();\n        this.#resolvePosixCache = new ResolveCache();\n        this.#children = new ChildrenCache(childrenCacheSize);\n        const split = cwdPath.substring(this.rootPath.length).split(sep);\n        // resolve('/') leaves '', splits to [''], we don't want that.\n        if (split.length === 1 && !split[0]) {\n            split.pop();\n        }\n        /* c8 ignore start */\n        if (nocase === undefined) {\n            throw new TypeError('must provide nocase setting to PathScurryBase ctor');\n        }\n        /* c8 ignore stop */\n        this.nocase = nocase;\n        this.root = this.newRoot(this.#fs);\n        this.roots[this.rootPath] = this.root;\n        let prev = this.root;\n        let len = split.length - 1;\n        const joinSep = pathImpl.sep;\n        let abs = this.rootPath;\n        let sawFirst = false;\n        for (const part of split) {\n            const l = len--;\n            prev = prev.child(part, {\n                relative: new Array(l).fill('..').join(joinSep),\n                relativePosix: new Array(l).fill('..').join('/'),\n                fullpath: (abs += (sawFirst ? '' : joinSep) + part),\n            });\n            sawFirst = true;\n        }\n        this.cwd = prev;\n    }\n    /**\n     * Get the depth of a provided path, string, or the cwd\n     */\n    depth(path = this.cwd) {\n        if (typeof path === 'string') {\n            path = this.cwd.resolve(path);\n        }\n        return path.depth();\n    }\n    /**\n     * Return the cache of child entries.  Exposed so subclasses can create\n     * child Path objects in a platform-specific way.\n     *\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolve(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolveCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpath();\n        this.#resolveCache.set(r, result);\n        return result;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string, returning\n     * the posix path.  Identical to .resolve() on posix systems, but on\n     * windows will return a forward-slash separated UNC path.\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolvePosix(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolvePosixCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpathPosix();\n        this.#resolvePosixCache.set(r, result);\n        return result;\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or entry\n     */\n    relative(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relative();\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or\n     * entry, using / as the path delimiter, even on Windows.\n     */\n    relativePosix(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relativePosix();\n    }\n    /**\n     * Return the basename for the provided string or Path object\n     */\n    basename(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.name;\n    }\n    /**\n     * Return the dirname for the provided string or Path object\n     */\n    dirname(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return (entry.parent || entry).fullpath();\n    }\n    async readdir(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else {\n            const p = await entry.readdir();\n            return withFileTypes ? p : p.map(e => e.name);\n        }\n    }\n    readdirSync(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else if (withFileTypes) {\n            return entry.readdirSync();\n        }\n        else {\n            return entry.readdirSync().map(e => e.name);\n        }\n    }\n    /**\n     * Call lstat() on the string or Path object, and update all known\n     * information that can be determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstat();\n    }\n    /**\n     * synchronous {@link PathScurryBase.lstat}\n     */\n    lstatSync(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstatSync();\n    }\n    async readlink(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.readlink();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    readlinkSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.readlinkSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async realpath(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.realpath();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    realpathSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.realpathSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async walk(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const walk = (dir, cb) => {\n            dirs.add(dir);\n            dir.readdirCB((er, entries) => {\n                /* c8 ignore start */\n                if (er) {\n                    return cb(er);\n                }\n                /* c8 ignore stop */\n                let len = entries.length;\n                if (!len)\n                    return cb();\n                const next = () => {\n                    if (--len === 0) {\n                        cb();\n                    }\n                };\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        results.push(withFileTypes ? e : e.fullpath());\n                    }\n                    if (follow && e.isSymbolicLink()) {\n                        e.realpath()\n                            .then(r => (r?.isUnknown() ? r.lstat() : r))\n                            .then(r => r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next());\n                    }\n                    else {\n                        if (e.shouldWalk(dirs, walkFilter)) {\n                            walk(e, next);\n                        }\n                        else {\n                            next();\n                        }\n                    }\n                }\n            }, true); // zalgooooooo\n        };\n        const start = entry;\n        return new Promise((res, rej) => {\n            walk(start, er => {\n                /* c8 ignore start */\n                if (er)\n                    return rej(er);\n                /* c8 ignore stop */\n                res(results);\n            });\n        });\n    }\n    walkSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    results.push(withFileTypes ? e : e.fullpath());\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n        return results;\n    }\n    /**\n     * Support for `for await`\n     *\n     * Alias for {@link PathScurryBase.iterate}\n     *\n     * Note: As of Node 19, this is very slow, compared to other methods of\n     * walking.  Consider using {@link PathScurryBase.stream} if memory overhead\n     * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n     */\n    [Symbol.asyncIterator]() {\n        return this.iterate();\n    }\n    iterate(entry = this.cwd, options = {}) {\n        // iterating async over the stream is significantly more performant,\n        // especially in the warm-cache scenario, because it buffers up directory\n        // entries in the background instead of waiting for a yield for each one.\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            options = entry;\n            entry = this.cwd;\n        }\n        return this.stream(entry, options)[Symbol.asyncIterator]();\n    }\n    /**\n     * Iterating over a PathScurry performs a synchronous walk.\n     *\n     * Alias for {@link PathScurryBase.iterateSync}\n     */\n    [Symbol.iterator]() {\n        return this.iterateSync();\n    }\n    *iterateSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        if (!filter || filter(entry)) {\n            yield withFileTypes ? entry : entry.fullpath();\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    yield withFileTypes ? e : e.fullpath();\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n    }\n    stream(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const onReaddir = (er, entries, didRealpaths = false) => {\n                    /* c8 ignore start */\n                    if (er)\n                        return results.emit('error', er);\n                    /* c8 ignore stop */\n                    if (follow && !didRealpaths) {\n                        const promises = [];\n                        for (const e of entries) {\n                            if (e.isSymbolicLink()) {\n                                promises.push(e\n                                    .realpath()\n                                    .then((r) => r?.isUnknown() ? r.lstat() : r));\n                            }\n                        }\n                        if (promises.length) {\n                            Promise.all(promises).then(() => onReaddir(null, entries, true));\n                            return;\n                        }\n                    }\n                    for (const e of entries) {\n                        if (e && (!filter || filter(e))) {\n                            if (!results.write(withFileTypes ? e : e.fullpath())) {\n                                paused = true;\n                            }\n                        }\n                    }\n                    processing--;\n                    for (const e of entries) {\n                        const r = e.realpathCached() || e;\n                        if (r.shouldWalk(dirs, walkFilter)) {\n                            queue.push(r);\n                        }\n                    }\n                    if (paused && !results.flowing) {\n                        results.once('drain', process);\n                    }\n                    else if (!sync) {\n                        process();\n                    }\n                };\n                // zalgo containment\n                let sync = true;\n                dir.readdirCB(onReaddir, true);\n                sync = false;\n            }\n        };\n        process();\n        return results;\n    }\n    streamSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        const dirs = new Set();\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const entries = dir.readdirSync();\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        if (!results.write(withFileTypes ? e : e.fullpath())) {\n                            paused = true;\n                        }\n                    }\n                }\n                processing--;\n                for (const e of entries) {\n                    let r = e;\n                    if (e.isSymbolicLink()) {\n                        if (!(follow && (r = e.realpathSync())))\n                            continue;\n                        if (r.isUnknown())\n                            r.lstatSync();\n                    }\n                    if (r.shouldWalk(dirs, walkFilter)) {\n                        queue.push(r);\n                    }\n                }\n            }\n            if (paused && !results.flowing)\n                results.once('drain', process);\n        };\n        process();\n        return results;\n    }\n    chdir(path = this.cwd) {\n        const oldCwd = this.cwd;\n        this.cwd = typeof path === 'string' ? this.cwd.resolve(path) : path;\n        this.cwd[setAsCwd](oldCwd);\n    }\n}\nexports.PathScurryBase = PathScurryBase;\n/**\n * Windows implementation of {@link PathScurryBase}\n *\n * Defaults to case insensitve, uses `'\\\\'` to generate path strings.  Uses\n * {@link PathWin32} for Path objects.\n */\nclass PathScurryWin32 extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '\\\\';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, node_path_1.win32, '\\\\', { ...opts, nocase });\n        this.nocase = nocase;\n        for (let p = this.cwd; p; p = p.parent) {\n            p.nocase = this.nocase;\n        }\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(dir) {\n        // if the path starts with a single separator, it's not a UNC, and we'll\n        // just get separator as the root, and driveFromUNC will return \\\n        // In that case, mount \\ on the root from the cwd.\n        return node_path_1.win32.parse(dir).root.toUpperCase();\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathWin32(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return (p.startsWith('/') || p.startsWith('\\\\') || /^[a-z]:(\\/|\\\\)/i.test(p));\n    }\n}\nexports.PathScurryWin32 = PathScurryWin32;\n/**\n * {@link PathScurryBase} implementation for all posix systems other than Darwin.\n *\n * Defaults to case-sensitive matching, uses `'/'` to generate path strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryPosix extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = false } = opts;\n        super(cwd, node_path_1.posix, '/', { ...opts, nocase });\n        this.nocase = nocase;\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(_dir) {\n        return '/';\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathPosix(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return p.startsWith('/');\n    }\n}\nexports.PathScurryPosix = PathScurryPosix;\n/**\n * {@link PathScurryBase} implementation for Darwin (macOS) systems.\n *\n * Defaults to case-insensitive matching, uses `'/'` for generating path\n * strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryDarwin extends PathScurryPosix {\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, { ...opts, nocase });\n    }\n}\nexports.PathScurryDarwin = PathScurryDarwin;\n/**\n * Default {@link PathBase} implementation for the current platform.\n *\n * {@link PathWin32} on Windows systems, {@link PathPosix} on all others.\n */\nexports.Path = process.platform === 'win32' ? PathWin32 : PathPosix;\n/**\n * Default {@link PathScurryBase} implementation for the current platform.\n *\n * {@link PathScurryWin32} on Windows systems, {@link PathScurryDarwin} on\n * Darwin (macOS) systems, {@link PathScurryPosix} on all others.\n */\nexports.PathScurry = process.platform === 'win32' ? PathScurryWin32\n    : process.platform === 'darwin' ? PathScurryDarwin\n        : PathScurryPosix;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertChangesToDMP = convertChangesToDMP;\n/**\n * converts a list of change objects to the format returned by Google's [diff-match-patch](https://github.com/google/diff-match-patch) library\n */\nfunction convertChangesToDMP(changes) {\n    var ret = [];\n    var change, operation;\n    for (var i = 0; i < changes.length; i++) {\n        change = changes[i];\n        if (change.added) {\n            operation = 1;\n        }\n        else if (change.removed) {\n            operation = -1;\n        }\n        else {\n            operation = 0;\n        }\n        ret.push([operation, change.value]);\n    }\n    return ret;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertChangesToXML = convertChangesToXML;\n/**\n * converts a list of change objects to a serialized XML format\n */\nfunction convertChangesToXML(changes) {\n    var ret = [];\n    for (var i = 0; i < changes.length; i++) {\n        var change = changes[i];\n        if (change.added) {\n            ret.push('');\n        }\n        else if (change.removed) {\n            ret.push('');\n        }\n        ret.push(escapeHTML(change.value));\n        if (change.added) {\n            ret.push('');\n        }\n        else if (change.removed) {\n            ret.push('');\n        }\n    }\n    return ret.join('');\n}\nfunction escapeHTML(s) {\n    var n = s;\n    n = n.replace(/&/g, '&');\n    n = n.replace(//g, '>');\n    n = n.replace(/\"/g, '"');\n    return n;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayDiff = void 0;\nexports.diffArrays = diffArrays;\nvar base_js_1 = require(\"./base.js\");\nvar ArrayDiff = /** @class */ (function (_super) {\n    __extends(ArrayDiff, _super);\n    function ArrayDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ArrayDiff.prototype.tokenize = function (value) {\n        return value.slice();\n    };\n    ArrayDiff.prototype.join = function (value) {\n        return value;\n    };\n    ArrayDiff.prototype.removeEmpty = function (value) {\n        return value;\n    };\n    return ArrayDiff;\n}(base_js_1.default));\nexports.arrayDiff = new ArrayDiff();\nfunction diffArrays(oldArr, newArr, options) {\n    return exports.arrayDiff.diff(oldArr, newArr, options);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Diff = /** @class */ (function () {\n    function Diff() {\n    }\n    Diff.prototype.diff = function (oldStr, newStr, \n    // Type below is not accurate/complete - see above for full possibilities - but it compiles\n    options) {\n        if (options === void 0) { options = {}; }\n        var callback;\n        if (typeof options === 'function') {\n            callback = options;\n            options = {};\n        }\n        else if ('callback' in options) {\n            callback = options.callback;\n        }\n        // Allow subclasses to massage the input prior to running\n        var oldString = this.castInput(oldStr, options);\n        var newString = this.castInput(newStr, options);\n        var oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n        var newTokens = this.removeEmpty(this.tokenize(newString, options));\n        return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n    };\n    Diff.prototype.diffWithOptionsObj = function (oldTokens, newTokens, options, callback) {\n        var _this = this;\n        var _a;\n        var done = function (value) {\n            value = _this.postProcess(value, options);\n            if (callback) {\n                setTimeout(function () { callback(value); }, 0);\n                return undefined;\n            }\n            else {\n                return value;\n            }\n        };\n        var newLen = newTokens.length, oldLen = oldTokens.length;\n        var editLength = 1;\n        var maxEditLength = newLen + oldLen;\n        if (options.maxEditLength != null) {\n            maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n        }\n        var maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n        var abortAfterTimestamp = Date.now() + maxExecutionTime;\n        var bestPath = [{ oldPos: -1, lastComponent: undefined }];\n        // Seed editLength = 0, i.e. the content starts with the same values\n        var newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n        if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n            // Identity per the equality and tokenizer\n            return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n        }\n        // Once we hit the right edge of the edit graph on some diagonal k, we can\n        // definitely reach the end of the edit graph in no more than k edits, so\n        // there's no point in considering any moves to diagonal k+1 any more (from\n        // which we're guaranteed to need at least k+1 more edits).\n        // Similarly, once we've reached the bottom of the edit graph, there's no\n        // point considering moves to lower diagonals.\n        // We record this fact by setting minDiagonalToConsider and\n        // maxDiagonalToConsider to some finite value once we've hit the edge of\n        // the edit graph.\n        // This optimization is not faithful to the original algorithm presented in\n        // Myers's paper, which instead pointlessly extends D-paths off the end of\n        // the edit graph - see page 7 of Myers's paper which notes this point\n        // explicitly and illustrates it with a diagram. This has major performance\n        // implications for some common scenarios. For instance, to compute a diff\n        // where the new text simply appends d characters on the end of the\n        // original text of length n, the true Myers algorithm will take O(n+d^2)\n        // time while this optimization needs only O(n+d) time.\n        var minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n        // Main worker method. checks all permutations of a given edit length for acceptance.\n        var execEditLength = function () {\n            for (var diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n                var basePath = void 0;\n                var removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n                if (removePath) {\n                    // No one else is going to attempt to use this value, clear it\n                    // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n                    bestPath[diagonalPath - 1] = undefined;\n                }\n                var canAdd = false;\n                if (addPath) {\n                    // what newPos will be after we do an insertion:\n                    var addPathNewPos = addPath.oldPos - diagonalPath;\n                    canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n                }\n                var canRemove = removePath && removePath.oldPos + 1 < oldLen;\n                if (!canAdd && !canRemove) {\n                    // If this path is a terminal then prune\n                    // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n                    bestPath[diagonalPath] = undefined;\n                    continue;\n                }\n                // Select the diagonal that we want to branch from. We select the prior\n                // path whose position in the old string is the farthest from the origin\n                // and does not pass the bounds of the diff graph\n                if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n                    basePath = _this.addToPath(addPath, true, false, 0, options);\n                }\n                else {\n                    basePath = _this.addToPath(removePath, false, true, 1, options);\n                }\n                newPos = _this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n                if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n                    // If we have hit the end of both strings, then we are done\n                    return done(_this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n                }\n                else {\n                    bestPath[diagonalPath] = basePath;\n                    if (basePath.oldPos + 1 >= oldLen) {\n                        maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n                    }\n                    if (newPos + 1 >= newLen) {\n                        minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n                    }\n                }\n            }\n            editLength++;\n        };\n        // Performs the length of edit iteration. Is a bit fugly as this has to support the\n        // sync and async mode which is never fun. Loops over execEditLength until a value\n        // is produced, or until the edit length exceeds options.maxEditLength (if given),\n        // in which case it will return undefined.\n        if (callback) {\n            (function exec() {\n                setTimeout(function () {\n                    if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n                        return callback(undefined);\n                    }\n                    if (!execEditLength()) {\n                        exec();\n                    }\n                }, 0);\n            }());\n        }\n        else {\n            while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n                var ret = execEditLength();\n                if (ret) {\n                    return ret;\n                }\n            }\n        }\n    };\n    Diff.prototype.addToPath = function (path, added, removed, oldPosInc, options) {\n        var last = path.lastComponent;\n        if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n            return {\n                oldPos: path.oldPos + oldPosInc,\n                lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n            };\n        }\n        else {\n            return {\n                oldPos: path.oldPos + oldPosInc,\n                lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n            };\n        }\n    };\n    Diff.prototype.extractCommon = function (basePath, newTokens, oldTokens, diagonalPath, options) {\n        var newLen = newTokens.length, oldLen = oldTokens.length;\n        var oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n        while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n            newPos++;\n            oldPos++;\n            commonCount++;\n            if (options.oneChangePerToken) {\n                basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n            }\n        }\n        if (commonCount && !options.oneChangePerToken) {\n            basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n        }\n        basePath.oldPos = oldPos;\n        return newPos;\n    };\n    Diff.prototype.equals = function (left, right, options) {\n        if (options.comparator) {\n            return options.comparator(left, right);\n        }\n        else {\n            return left === right\n                || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n        }\n    };\n    Diff.prototype.removeEmpty = function (array) {\n        var ret = [];\n        for (var i = 0; i < array.length; i++) {\n            if (array[i]) {\n                ret.push(array[i]);\n            }\n        }\n        return ret;\n    };\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    Diff.prototype.castInput = function (value, options) {\n        return value;\n    };\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    Diff.prototype.tokenize = function (value, options) {\n        return Array.from(value);\n    };\n    Diff.prototype.join = function (chars) {\n        // Assumes ValueT is string, which is the case for most subclasses.\n        // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n        // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n        // assume tokens and values are strings, but not completely - is weird and janky.\n        return chars.join('');\n    };\n    Diff.prototype.postProcess = function (changeObjects, \n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    options) {\n        return changeObjects;\n    };\n    Object.defineProperty(Diff.prototype, \"useLongestToken\", {\n        get: function () {\n            return false;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Diff.prototype.buildValues = function (lastComponent, newTokens, oldTokens) {\n        // First we convert our linked list of components in reverse order to an\n        // array in the right order:\n        var components = [];\n        var nextComponent;\n        while (lastComponent) {\n            components.push(lastComponent);\n            nextComponent = lastComponent.previousComponent;\n            delete lastComponent.previousComponent;\n            lastComponent = nextComponent;\n        }\n        components.reverse();\n        var componentLen = components.length;\n        var componentPos = 0, newPos = 0, oldPos = 0;\n        for (; componentPos < componentLen; componentPos++) {\n            var component = components[componentPos];\n            if (!component.removed) {\n                if (!component.added && this.useLongestToken) {\n                    var value = newTokens.slice(newPos, newPos + component.count);\n                    value = value.map(function (value, i) {\n                        var oldValue = oldTokens[oldPos + i];\n                        return oldValue.length > value.length ? oldValue : value;\n                    });\n                    component.value = this.join(value);\n                }\n                else {\n                    component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n                }\n                newPos += component.count;\n                // Common case\n                if (!component.added) {\n                    oldPos += component.count;\n                }\n            }\n            else {\n                component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n                oldPos += component.count;\n            }\n        }\n        return components;\n    };\n    return Diff;\n}());\nexports.default = Diff;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.characterDiff = void 0;\nexports.diffChars = diffChars;\nvar base_js_1 = require(\"./base.js\");\nvar CharacterDiff = /** @class */ (function (_super) {\n    __extends(CharacterDiff, _super);\n    function CharacterDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return CharacterDiff;\n}(base_js_1.default));\nexports.characterDiff = new CharacterDiff();\nfunction diffChars(oldStr, newStr, options) {\n    return exports.characterDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssDiff = void 0;\nexports.diffCss = diffCss;\nvar base_js_1 = require(\"./base.js\");\nvar CssDiff = /** @class */ (function (_super) {\n    __extends(CssDiff, _super);\n    function CssDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    CssDiff.prototype.tokenize = function (value) {\n        return value.split(/([{}:;,]|\\s+)/);\n    };\n    return CssDiff;\n}(base_js_1.default));\nexports.cssDiff = new CssDiff();\nfunction diffCss(oldStr, newStr, options) {\n    return exports.cssDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonDiff = void 0;\nexports.diffJson = diffJson;\nexports.canonicalize = canonicalize;\nvar base_js_1 = require(\"./base.js\");\nvar line_js_1 = require(\"./line.js\");\nvar JsonDiff = /** @class */ (function (_super) {\n    __extends(JsonDiff, _super);\n    function JsonDiff() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.tokenize = line_js_1.tokenize;\n        return _this;\n    }\n    Object.defineProperty(JsonDiff.prototype, \"useLongestToken\", {\n        get: function () {\n            // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n            // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n            return true;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    JsonDiff.prototype.castInput = function (value, options) {\n        var undefinedReplacement = options.undefinedReplacement, _a = options.stringifyReplacer, stringifyReplacer = _a === void 0 ? function (k, v) { return typeof v === 'undefined' ? undefinedReplacement : v; } : _a;\n        return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, '  ');\n    };\n    JsonDiff.prototype.equals = function (left, right, options) {\n        return _super.prototype.equals.call(this, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'), options);\n    };\n    return JsonDiff;\n}(base_js_1.default));\nexports.jsonDiff = new JsonDiff();\nfunction diffJson(oldStr, newStr, options) {\n    return exports.jsonDiff.diff(oldStr, newStr, options);\n}\n// This function handles the presence of circular references by bailing out when encountering an\n// object that is already on the \"stack\" of items being processed. Accepts an optional replacer\nfunction canonicalize(obj, stack, replacementStack, replacer, key) {\n    stack = stack || [];\n    replacementStack = replacementStack || [];\n    if (replacer) {\n        obj = replacer(key === undefined ? '' : key, obj);\n    }\n    var i;\n    for (i = 0; i < stack.length; i += 1) {\n        if (stack[i] === obj) {\n            return replacementStack[i];\n        }\n    }\n    var canonicalizedObj;\n    if ('[object Array]' === Object.prototype.toString.call(obj)) {\n        stack.push(obj);\n        canonicalizedObj = new Array(obj.length);\n        replacementStack.push(canonicalizedObj);\n        for (i = 0; i < obj.length; i += 1) {\n            canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, String(i));\n        }\n        stack.pop();\n        replacementStack.pop();\n        return canonicalizedObj;\n    }\n    if (obj && obj.toJSON) {\n        obj = obj.toJSON();\n    }\n    if (typeof obj === 'object' && obj !== null) {\n        stack.push(obj);\n        canonicalizedObj = {};\n        replacementStack.push(canonicalizedObj);\n        var sortedKeys = [];\n        var key_1;\n        for (key_1 in obj) {\n            /* istanbul ignore else */\n            if (Object.prototype.hasOwnProperty.call(obj, key_1)) {\n                sortedKeys.push(key_1);\n            }\n        }\n        sortedKeys.sort();\n        for (i = 0; i < sortedKeys.length; i += 1) {\n            key_1 = sortedKeys[i];\n            canonicalizedObj[key_1] = canonicalize(obj[key_1], stack, replacementStack, replacer, key_1);\n        }\n        stack.pop();\n        replacementStack.pop();\n    }\n    else {\n        canonicalizedObj = obj;\n    }\n    return canonicalizedObj;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lineDiff = void 0;\nexports.diffLines = diffLines;\nexports.diffTrimmedLines = diffTrimmedLines;\nexports.tokenize = tokenize;\nvar base_js_1 = require(\"./base.js\");\nvar params_js_1 = require(\"../util/params.js\");\nvar LineDiff = /** @class */ (function (_super) {\n    __extends(LineDiff, _super);\n    function LineDiff() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.tokenize = tokenize;\n        return _this;\n    }\n    LineDiff.prototype.equals = function (left, right, options) {\n        // If we're ignoring whitespace, we need to normalise lines by stripping\n        // whitespace before checking equality. (This has an annoying interaction\n        // with newlineIsToken that requires special handling: if newlines get their\n        // own token, then we DON'T want to trim the *newline* tokens down to empty\n        // strings, since this would cause us to treat whitespace-only line content\n        // as equal to a separator between lines, which would be weird and\n        // inconsistent with the documented behavior of the options.)\n        if (options.ignoreWhitespace) {\n            if (!options.newlineIsToken || !left.includes('\\n')) {\n                left = left.trim();\n            }\n            if (!options.newlineIsToken || !right.includes('\\n')) {\n                right = right.trim();\n            }\n        }\n        else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {\n            if (left.endsWith('\\n')) {\n                left = left.slice(0, -1);\n            }\n            if (right.endsWith('\\n')) {\n                right = right.slice(0, -1);\n            }\n        }\n        return _super.prototype.equals.call(this, left, right, options);\n    };\n    return LineDiff;\n}(base_js_1.default));\nexports.lineDiff = new LineDiff();\nfunction diffLines(oldStr, newStr, options) {\n    return exports.lineDiff.diff(oldStr, newStr, options);\n}\nfunction diffTrimmedLines(oldStr, newStr, options) {\n    options = (0, params_js_1.generateOptions)(options, { ignoreWhitespace: true });\n    return exports.lineDiff.diff(oldStr, newStr, options);\n}\n// Exported standalone so it can be used from jsonDiff too.\nfunction tokenize(value, options) {\n    if (options.stripTrailingCr) {\n        // remove one \\r before \\n to match GNU diff's --strip-trailing-cr behavior\n        value = value.replace(/\\r\\n/g, '\\n');\n    }\n    var retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n    // Ignore the final empty token that occurs if the string ends with a new line\n    if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n        linesAndNewlines.pop();\n    }\n    // Merge the content and line separators into single tokens\n    for (var i = 0; i < linesAndNewlines.length; i++) {\n        var line = linesAndNewlines[i];\n        if (i % 2 && !options.newlineIsToken) {\n            retLines[retLines.length - 1] += line;\n        }\n        else {\n            retLines.push(line);\n        }\n    }\n    return retLines;\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sentenceDiff = void 0;\nexports.diffSentences = diffSentences;\nvar base_js_1 = require(\"./base.js\");\nfunction isSentenceEndPunct(char) {\n    return char == '.' || char == '!' || char == '?';\n}\nvar SentenceDiff = /** @class */ (function (_super) {\n    __extends(SentenceDiff, _super);\n    function SentenceDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SentenceDiff.prototype.tokenize = function (value) {\n        var _a;\n        // If in future we drop support for environments that don't support lookbehinds, we can replace\n        // this entire function with:\n        //     return value.split(/(?<=[.!?])(\\s+|$)/);\n        // but until then, for similar reasons to the trailingWs function in string.ts, we are forced\n        // to do this verbosely \"by hand\" instead of using a regex.\n        var result = [];\n        var tokenStartI = 0;\n        for (var i = 0; i < value.length; i++) {\n            if (i == value.length - 1) {\n                result.push(value.slice(tokenStartI));\n                break;\n            }\n            if (isSentenceEndPunct(value[i]) && value[i + 1].match(/\\s/)) {\n                // We've hit a sentence break - i.e. a punctuation mark followed by whitespace.\n                // We now want to push TWO tokens to the result:\n                // 1. the sentence\n                result.push(value.slice(tokenStartI, i + 1));\n                // 2. the whitespace\n                i = tokenStartI = i + 1;\n                while ((_a = value[i + 1]) === null || _a === void 0 ? void 0 : _a.match(/\\s/)) {\n                    i++;\n                }\n                result.push(value.slice(tokenStartI, i + 1));\n                // Then the next token (a sentence) starts on the character after the whitespace.\n                // (It's okay if this is off the end of the string - then the outer loop will terminate\n                // here anyway.)\n                tokenStartI = i + 1;\n            }\n        }\n        return result;\n    };\n    return SentenceDiff;\n}(base_js_1.default));\nexports.sentenceDiff = new SentenceDiff();\nfunction diffSentences(oldStr, newStr, options) {\n    return exports.sentenceDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordsWithSpaceDiff = exports.wordDiff = void 0;\nexports.diffWords = diffWords;\nexports.diffWordsWithSpace = diffWordsWithSpace;\nvar base_js_1 = require(\"./base.js\");\nvar string_js_1 = require(\"../util/string.js\");\n// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\n//\n// Chars/ranges counted as \"word\" characters by this regex are as follows:\n//\n// + U+00AD  Soft hyphen\n// + 00C0–00FF (letters with diacritics from the Latin-1 Supplement), except:\n//   - U+00D7  × Multiplication sign\n//   - U+00F7  ÷ Division sign\n// + Latin Extended-A, 0100–017F\n// + Latin Extended-B, 0180–024F\n// + IPA Extensions, 0250–02AF\n// + Spacing Modifier Letters, 02B0–02FF, except:\n//   - U+02C7  ˇ ˇ  Caron\n//   - U+02D8  ˘ ˘  Breve\n//   - U+02D9  ˙ ˙  Dot Above\n//   - U+02DA  ˚ ˚  Ring Above\n//   - U+02DB  ˛ ˛  Ogonek\n//   - U+02DC  ˜ ˜  Small Tilde\n//   - U+02DD  ˝ ˝  Double Acute Accent\n// + Latin Extended Additional, 1E00–1EFF\nvar extendedWordChars = 'a-zA-Z0-9_\\\\u{AD}\\\\u{C0}-\\\\u{D6}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}';\n// Each token is one of the following:\n// - A punctuation mark plus the surrounding whitespace\n// - A word plus the surrounding whitespace\n// - Pure whitespace (but only in the special case where the entire text\n//   is just whitespace)\n//\n// We have to include surrounding whitespace in the tokens because the two\n// alternative approaches produce horribly broken results:\n// * If we just discard the whitespace, we can't fully reproduce the original\n//   text from the sequence of tokens and any attempt to render the diff will\n//   get the whitespace wrong.\n// * If we have separate tokens for whitespace, then in a typical text every\n//   second token will be a single space character. But this often results in\n//   the optimal diff between two texts being a perverse one that preserves\n//   the spaces between words but deletes and reinserts actual common words.\n//   See https://github.com/kpdecker/jsdiff/issues/160#issuecomment-1866099640\n//   for an example.\n//\n// Keeping the surrounding whitespace of course has implications for .equals\n// and .join, not just .tokenize.\n// This regex does NOT fully implement the tokenization rules described above.\n// Instead, it gives runs of whitespace their own \"token\". The tokenize method\n// then handles stitching whitespace tokens onto adjacent word or punctuation\n// tokens.\nvar tokenizeIncludingWhitespace = new RegExp(\"[\".concat(extendedWordChars, \"]+|\\\\s+|[^\").concat(extendedWordChars, \"]\"), 'ug');\nvar WordDiff = /** @class */ (function (_super) {\n    __extends(WordDiff, _super);\n    function WordDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    WordDiff.prototype.equals = function (left, right, options) {\n        if (options.ignoreCase) {\n            left = left.toLowerCase();\n            right = right.toLowerCase();\n        }\n        return left.trim() === right.trim();\n    };\n    WordDiff.prototype.tokenize = function (value, options) {\n        if (options === void 0) { options = {}; }\n        var parts;\n        if (options.intlSegmenter) {\n            var segmenter = options.intlSegmenter;\n            if (segmenter.resolvedOptions().granularity != 'word') {\n                throw new Error('The segmenter passed must have a granularity of \"word\"');\n            }\n            // We want `parts` to be an array whose elements alternate between being\n            // pure whitespace and being pure non-whitespace. This is ALMOST what the\n            // segments returned by a word-based Intl.Segmenter already look like,\n            // but not quite - see explanation in the docs of our custom segment()\n            // function.\n            parts = (0, string_js_1.segment)(value, segmenter);\n        }\n        else {\n            parts = value.match(tokenizeIncludingWhitespace) || [];\n        }\n        var tokens = [];\n        var prevPart = null;\n        parts.forEach(function (part) {\n            if ((/\\s/).test(part)) {\n                if (prevPart == null) {\n                    tokens.push(part);\n                }\n                else {\n                    tokens.push(tokens.pop() + part);\n                }\n            }\n            else if (prevPart != null && (/\\s/).test(prevPart)) {\n                if (tokens[tokens.length - 1] == prevPart) {\n                    tokens.push(tokens.pop() + part);\n                }\n                else {\n                    tokens.push(prevPart + part);\n                }\n            }\n            else {\n                tokens.push(part);\n            }\n            prevPart = part;\n        });\n        return tokens;\n    };\n    WordDiff.prototype.join = function (tokens) {\n        // Tokens being joined here will always have appeared consecutively in the\n        // same text, so we can simply strip off the leading whitespace from all the\n        // tokens except the first (and except any whitespace-only tokens - but such\n        // a token will always be the first and only token anyway) and then join them\n        // and the whitespace around words and punctuation will end up correct.\n        return tokens.map(function (token, i) {\n            if (i == 0) {\n                return token;\n            }\n            else {\n                return token.replace((/^\\s+/), '');\n            }\n        }).join('');\n    };\n    WordDiff.prototype.postProcess = function (changes, options) {\n        if (!changes || options.oneChangePerToken) {\n            return changes;\n        }\n        var lastKeep = null;\n        // Change objects representing any insertion or deletion since the last\n        // \"keep\" change object. There can be at most one of each.\n        var insertion = null;\n        var deletion = null;\n        changes.forEach(function (change) {\n            if (change.added) {\n                insertion = change;\n            }\n            else if (change.removed) {\n                deletion = change;\n            }\n            else {\n                if (insertion || deletion) { // May be false at start of text\n                    dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change, options.intlSegmenter);\n                }\n                lastKeep = change;\n                insertion = null;\n                deletion = null;\n            }\n        });\n        if (insertion || deletion) {\n            dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null, options.intlSegmenter);\n        }\n        return changes;\n    };\n    return WordDiff;\n}(base_js_1.default));\nexports.wordDiff = new WordDiff();\nfunction diffWords(oldStr, newStr, options) {\n    // This option has never been documented and never will be (it's clearer to\n    // just call `diffWordsWithSpace` directly if you need that behavior), but\n    // has existed in jsdiff for a long time, so we retain support for it here\n    // for the sake of backwards compatibility.\n    if ((options === null || options === void 0 ? void 0 : options.ignoreWhitespace) != null && !options.ignoreWhitespace) {\n        return diffWordsWithSpace(oldStr, newStr, options);\n    }\n    return exports.wordDiff.diff(oldStr, newStr, options);\n}\nfunction dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep, segmenter) {\n    // Before returning, we tidy up the leading and trailing whitespace of the\n    // change objects to eliminate cases where trailing whitespace in one object\n    // is repeated as leading whitespace in the next.\n    // Below are examples of the outcomes we want here to explain the code.\n    // I=insert, K=keep, D=delete\n    // 1. diffing 'foo bar baz' vs 'foo baz'\n    //    Prior to cleanup, we have K:'foo ' D:' bar ' K:' baz'\n    //    After cleanup, we want:   K:'foo ' D:'bar ' K:'baz'\n    //\n    // 2. Diffing 'foo bar baz' vs 'foo qux baz'\n    //    Prior to cleanup, we have K:'foo ' D:' bar ' I:' qux ' K:' baz'\n    //    After cleanup, we want K:'foo ' D:'bar' I:'qux' K:' baz'\n    //\n    // 3. Diffing 'foo\\nbar baz' vs 'foo baz'\n    //    Prior to cleanup, we have K:'foo ' D:'\\nbar ' K:' baz'\n    //    After cleanup, we want K'foo' D:'\\nbar' K:' baz'\n    //\n    // 4. Diffing 'foo baz' vs 'foo\\nbar baz'\n    //    Prior to cleanup, we have K:'foo\\n' I:'\\nbar ' K:' baz'\n    //    After cleanup, we ideally want K'foo' I:'\\nbar' K:' baz'\n    //    but don't actually manage this currently (the pre-cleanup change\n    //    objects don't contain enough information to make it possible).\n    //\n    // 5. Diffing 'foo   bar baz' vs 'foo  baz'\n    //    Prior to cleanup, we have K:'foo  ' D:'   bar ' K:'  baz'\n    //    After cleanup, we want K:'foo  ' D:' bar ' K:'baz'\n    //\n    // Our handling is unavoidably imperfect in the case where there's a single\n    // indel between keeps and the whitespace has changed. For instance, consider\n    // diffing 'foo\\tbar\\nbaz' vs 'foo baz'. Unless we create an extra change\n    // object to represent the insertion of the space character (which isn't even\n    // a token), we have no way to avoid losing information about the texts'\n    // original whitespace in the result we return. Still, we do our best to\n    // output something that will look sensible if we e.g. print it with\n    // insertions in green and deletions in red.\n    // Between two \"keep\" change objects (or before the first or after the last\n    // change object), we can have either:\n    // * A \"delete\" followed by an \"insert\"\n    // * Just an \"insert\"\n    // * Just a \"delete\"\n    // We handle the three cases separately.\n    if (deletion && insertion) {\n        var _a = (0, string_js_1.leadingAndTrailingWs)(deletion.value, segmenter), oldWsPrefix = _a[0], oldWsSuffix = _a[1];\n        var _b = (0, string_js_1.leadingAndTrailingWs)(insertion.value, segmenter), newWsPrefix = _b[0], newWsSuffix = _b[1];\n        if (startKeep) {\n            var commonWsPrefix = (0, string_js_1.longestCommonPrefix)(oldWsPrefix, newWsPrefix);\n            startKeep.value = (0, string_js_1.replaceSuffix)(startKeep.value, newWsPrefix, commonWsPrefix);\n            deletion.value = (0, string_js_1.removePrefix)(deletion.value, commonWsPrefix);\n            insertion.value = (0, string_js_1.removePrefix)(insertion.value, commonWsPrefix);\n        }\n        if (endKeep) {\n            var commonWsSuffix = (0, string_js_1.longestCommonSuffix)(oldWsSuffix, newWsSuffix);\n            endKeep.value = (0, string_js_1.replacePrefix)(endKeep.value, newWsSuffix, commonWsSuffix);\n            deletion.value = (0, string_js_1.removeSuffix)(deletion.value, commonWsSuffix);\n            insertion.value = (0, string_js_1.removeSuffix)(insertion.value, commonWsSuffix);\n        }\n    }\n    else if (insertion) {\n        // The whitespaces all reflect what was in the new text rather than\n        // the old, so we essentially have no information about whitespace\n        // insertion or deletion. We just want to dedupe the whitespace.\n        // We do that by having each change object keep its trailing\n        // whitespace and deleting duplicate leading whitespace where\n        // present.\n        if (startKeep) {\n            var ws = (0, string_js_1.leadingWs)(insertion.value, segmenter);\n            insertion.value = insertion.value.substring(ws.length);\n        }\n        if (endKeep) {\n            var ws = (0, string_js_1.leadingWs)(endKeep.value, segmenter);\n            endKeep.value = endKeep.value.substring(ws.length);\n        }\n        // otherwise we've got a deletion and no insertion\n    }\n    else if (startKeep && endKeep) {\n        var newWsFull = (0, string_js_1.leadingWs)(endKeep.value, segmenter), _c = (0, string_js_1.leadingAndTrailingWs)(deletion.value, segmenter), delWsStart = _c[0], delWsEnd = _c[1];\n        // Any whitespace that comes straight after startKeep in both the old and\n        // new texts, assign to startKeep and remove from the deletion.\n        var newWsStart = (0, string_js_1.longestCommonPrefix)(newWsFull, delWsStart);\n        deletion.value = (0, string_js_1.removePrefix)(deletion.value, newWsStart);\n        // Any whitespace that comes straight before endKeep in both the old and\n        // new texts, and hasn't already been assigned to startKeep, assign to\n        // endKeep and remove from the deletion.\n        var newWsEnd = (0, string_js_1.longestCommonSuffix)((0, string_js_1.removePrefix)(newWsFull, newWsStart), delWsEnd);\n        deletion.value = (0, string_js_1.removeSuffix)(deletion.value, newWsEnd);\n        endKeep.value = (0, string_js_1.replacePrefix)(endKeep.value, newWsFull, newWsEnd);\n        // If there's any whitespace from the new text that HASN'T already been\n        // assigned, assign it to the start:\n        startKeep.value = (0, string_js_1.replaceSuffix)(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));\n    }\n    else if (endKeep) {\n        // We are at the start of the text. Preserve all the whitespace on\n        // endKeep, and just remove whitespace from the end of deletion to the\n        // extent that it overlaps with the start of endKeep.\n        var endKeepWsPrefix = (0, string_js_1.leadingWs)(endKeep.value, segmenter);\n        var deletionWsSuffix = (0, string_js_1.trailingWs)(deletion.value, segmenter);\n        var overlap = (0, string_js_1.maximumOverlap)(deletionWsSuffix, endKeepWsPrefix);\n        deletion.value = (0, string_js_1.removeSuffix)(deletion.value, overlap);\n    }\n    else if (startKeep) {\n        // We are at the END of the text. Preserve all the whitespace on\n        // startKeep, and just remove whitespace from the start of deletion to\n        // the extent that it overlaps with the end of startKeep.\n        var startKeepWsSuffix = (0, string_js_1.trailingWs)(startKeep.value, segmenter);\n        var deletionWsPrefix = (0, string_js_1.leadingWs)(deletion.value, segmenter);\n        var overlap = (0, string_js_1.maximumOverlap)(startKeepWsSuffix, deletionWsPrefix);\n        deletion.value = (0, string_js_1.removePrefix)(deletion.value, overlap);\n    }\n}\nvar WordsWithSpaceDiff = /** @class */ (function (_super) {\n    __extends(WordsWithSpaceDiff, _super);\n    function WordsWithSpaceDiff() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    WordsWithSpaceDiff.prototype.tokenize = function (value) {\n        // Slightly different to the tokenizeIncludingWhitespace regex used above in\n        // that this one treats each individual newline as a distinct token, rather\n        // than merging them into other surrounding whitespace. This was requested\n        // in https://github.com/kpdecker/jsdiff/issues/180 &\n        //    https://github.com/kpdecker/jsdiff/issues/211\n        var regex = new RegExp(\"(\\\\r?\\\\n)|[\".concat(extendedWordChars, \"]+|[^\\\\S\\\\n\\\\r]+|[^\").concat(extendedWordChars, \"]\"), 'ug');\n        return value.match(regex) || [];\n    };\n    return WordsWithSpaceDiff;\n}(base_js_1.default));\nexports.wordsWithSpaceDiff = new WordsWithSpaceDiff();\nfunction diffWordsWithSpace(oldStr, newStr, options) {\n    return exports.wordsWithSpaceDiff.diff(oldStr, newStr, options);\n}\n","\"use strict\";\n/* See LICENSE file for terms of use */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.reversePatch = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.OMIT_HEADERS = exports.FILE_HEADERS_ONLY = exports.INCLUDE_HEADERS = exports.formatPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.arrayDiff = exports.diffArrays = exports.jsonDiff = exports.diffJson = exports.cssDiff = exports.diffCss = exports.sentenceDiff = exports.diffSentences = exports.diffTrimmedLines = exports.lineDiff = exports.diffLines = exports.wordsWithSpaceDiff = exports.diffWordsWithSpace = exports.wordDiff = exports.diffWords = exports.characterDiff = exports.diffChars = exports.Diff = void 0;\n/*\n * Text diff implementation.\n *\n * This library supports the following APIs:\n * Diff.diffChars: Character by character diff\n * Diff.diffWords: Word (as defined by \\b regex) diff which ignores whitespace\n * Diff.diffLines: Line based diff\n *\n * Diff.diffCss: Diff targeted at CSS content\n *\n * These methods are based on the implementation proposed in\n * \"An O(ND) Difference Algorithm and its Variations\" (Myers, 1986).\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927\n */\nvar base_js_1 = require(\"./diff/base.js\");\nexports.Diff = base_js_1.default;\nvar character_js_1 = require(\"./diff/character.js\");\nObject.defineProperty(exports, \"diffChars\", { enumerable: true, get: function () { return character_js_1.diffChars; } });\nObject.defineProperty(exports, \"characterDiff\", { enumerable: true, get: function () { return character_js_1.characterDiff; } });\nvar word_js_1 = require(\"./diff/word.js\");\nObject.defineProperty(exports, \"diffWords\", { enumerable: true, get: function () { return word_js_1.diffWords; } });\nObject.defineProperty(exports, \"diffWordsWithSpace\", { enumerable: true, get: function () { return word_js_1.diffWordsWithSpace; } });\nObject.defineProperty(exports, \"wordDiff\", { enumerable: true, get: function () { return word_js_1.wordDiff; } });\nObject.defineProperty(exports, \"wordsWithSpaceDiff\", { enumerable: true, get: function () { return word_js_1.wordsWithSpaceDiff; } });\nvar line_js_1 = require(\"./diff/line.js\");\nObject.defineProperty(exports, \"diffLines\", { enumerable: true, get: function () { return line_js_1.diffLines; } });\nObject.defineProperty(exports, \"diffTrimmedLines\", { enumerable: true, get: function () { return line_js_1.diffTrimmedLines; } });\nObject.defineProperty(exports, \"lineDiff\", { enumerable: true, get: function () { return line_js_1.lineDiff; } });\nvar sentence_js_1 = require(\"./diff/sentence.js\");\nObject.defineProperty(exports, \"diffSentences\", { enumerable: true, get: function () { return sentence_js_1.diffSentences; } });\nObject.defineProperty(exports, \"sentenceDiff\", { enumerable: true, get: function () { return sentence_js_1.sentenceDiff; } });\nvar css_js_1 = require(\"./diff/css.js\");\nObject.defineProperty(exports, \"diffCss\", { enumerable: true, get: function () { return css_js_1.diffCss; } });\nObject.defineProperty(exports, \"cssDiff\", { enumerable: true, get: function () { return css_js_1.cssDiff; } });\nvar json_js_1 = require(\"./diff/json.js\");\nObject.defineProperty(exports, \"diffJson\", { enumerable: true, get: function () { return json_js_1.diffJson; } });\nObject.defineProperty(exports, \"canonicalize\", { enumerable: true, get: function () { return json_js_1.canonicalize; } });\nObject.defineProperty(exports, \"jsonDiff\", { enumerable: true, get: function () { return json_js_1.jsonDiff; } });\nvar array_js_1 = require(\"./diff/array.js\");\nObject.defineProperty(exports, \"diffArrays\", { enumerable: true, get: function () { return array_js_1.diffArrays; } });\nObject.defineProperty(exports, \"arrayDiff\", { enumerable: true, get: function () { return array_js_1.arrayDiff; } });\nvar apply_js_1 = require(\"./patch/apply.js\");\nObject.defineProperty(exports, \"applyPatch\", { enumerable: true, get: function () { return apply_js_1.applyPatch; } });\nObject.defineProperty(exports, \"applyPatches\", { enumerable: true, get: function () { return apply_js_1.applyPatches; } });\nvar parse_js_1 = require(\"./patch/parse.js\");\nObject.defineProperty(exports, \"parsePatch\", { enumerable: true, get: function () { return parse_js_1.parsePatch; } });\nvar reverse_js_1 = require(\"./patch/reverse.js\");\nObject.defineProperty(exports, \"reversePatch\", { enumerable: true, get: function () { return reverse_js_1.reversePatch; } });\nvar create_js_1 = require(\"./patch/create.js\");\nObject.defineProperty(exports, \"structuredPatch\", { enumerable: true, get: function () { return create_js_1.structuredPatch; } });\nObject.defineProperty(exports, \"createTwoFilesPatch\", { enumerable: true, get: function () { return create_js_1.createTwoFilesPatch; } });\nObject.defineProperty(exports, \"createPatch\", { enumerable: true, get: function () { return create_js_1.createPatch; } });\nObject.defineProperty(exports, \"formatPatch\", { enumerable: true, get: function () { return create_js_1.formatPatch; } });\nObject.defineProperty(exports, \"INCLUDE_HEADERS\", { enumerable: true, get: function () { return create_js_1.INCLUDE_HEADERS; } });\nObject.defineProperty(exports, \"FILE_HEADERS_ONLY\", { enumerable: true, get: function () { return create_js_1.FILE_HEADERS_ONLY; } });\nObject.defineProperty(exports, \"OMIT_HEADERS\", { enumerable: true, get: function () { return create_js_1.OMIT_HEADERS; } });\nvar dmp_js_1 = require(\"./convert/dmp.js\");\nObject.defineProperty(exports, \"convertChangesToDMP\", { enumerable: true, get: function () { return dmp_js_1.convertChangesToDMP; } });\nvar xml_js_1 = require(\"./convert/xml.js\");\nObject.defineProperty(exports, \"convertChangesToXML\", { enumerable: true, get: function () { return xml_js_1.convertChangesToXML; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyPatch = applyPatch;\nexports.applyPatches = applyPatches;\nvar string_js_1 = require(\"../util/string.js\");\nvar line_endings_js_1 = require(\"./line-endings.js\");\nvar parse_js_1 = require(\"./parse.js\");\nvar distance_iterator_js_1 = require(\"../util/distance-iterator.js\");\n/**\n * attempts to apply a unified diff patch.\n *\n * Hunks are applied first to last.\n * `applyPatch` first tries to apply the first hunk at the line number specified in the hunk header, and with all context lines matching exactly.\n * If that fails, it tries scanning backwards and forwards, one line at a time, to find a place to apply the hunk where the context lines match exactly.\n * If that still fails, and `fuzzFactor` is greater than zero, it increments the maximum number of mismatches (missing, extra, or changed context lines) that there can be between the hunk context and a region where we are trying to apply the patch such that the hunk will still be considered to match.\n * Regardless of `fuzzFactor`, lines to be deleted in the hunk *must* be present for a hunk to match, and the context lines *immediately* before and after an insertion must match exactly.\n *\n * Once a hunk is successfully fitted, the process begins again with the next hunk.\n * Regardless of `fuzzFactor`, later hunks must be applied later in the file than earlier hunks.\n *\n * If a hunk cannot be successfully fitted *anywhere* with fewer than `fuzzFactor` mismatches, `applyPatch` fails and returns `false`.\n *\n * If a hunk is successfully fitted but not at the line number specified by the hunk header, all subsequent hunks have their target line number adjusted accordingly.\n * (e.g. if the first hunk is applied 10 lines below where the hunk header said it should fit, `applyPatch` will *start* looking for somewhere to apply the second hunk 10 lines below where its hunk header says it goes.)\n *\n * If the patch was applied successfully, returns a string containing the patched text.\n * If the patch could not be applied (because some hunks in the patch couldn't be fitted to the text in `source`), `applyPatch` returns false.\n *\n * @param patch a string diff or the output from the `parsePatch` or `structuredPatch` methods.\n */\nfunction applyPatch(source, patch, options) {\n    if (options === void 0) { options = {}; }\n    var patches;\n    if (typeof patch === 'string') {\n        patches = (0, parse_js_1.parsePatch)(patch);\n    }\n    else if (Array.isArray(patch)) {\n        patches = patch;\n    }\n    else {\n        patches = [patch];\n    }\n    if (patches.length > 1) {\n        throw new Error('applyPatch only works with a single input.');\n    }\n    return applyStructuredPatch(source, patches[0], options);\n}\nfunction applyStructuredPatch(source, patch, options) {\n    if (options === void 0) { options = {}; }\n    if (options.autoConvertLineEndings || options.autoConvertLineEndings == null) {\n        if ((0, string_js_1.hasOnlyWinLineEndings)(source) && (0, line_endings_js_1.isUnix)(patch)) {\n            patch = (0, line_endings_js_1.unixToWin)(patch);\n        }\n        else if ((0, string_js_1.hasOnlyUnixLineEndings)(source) && (0, line_endings_js_1.isWin)(patch)) {\n            patch = (0, line_endings_js_1.winToUnix)(patch);\n        }\n    }\n    // Apply the diff to the input\n    var lines = source.split('\\n'), hunks = patch.hunks, compareLine = options.compareLine || (function (lineNumber, line, operation, patchContent) { return line === patchContent; }), fuzzFactor = options.fuzzFactor || 0;\n    var minLine = 0;\n    if (fuzzFactor < 0 || !Number.isInteger(fuzzFactor)) {\n        throw new Error('fuzzFactor must be a non-negative integer');\n    }\n    // Special case for empty patch.\n    if (!hunks.length) {\n        return source;\n    }\n    // Before anything else, handle EOFNL insertion/removal. If the patch tells us to make a change\n    // to the EOFNL that is redundant/impossible - i.e. to remove a newline that's not there, or add a\n    // newline that already exists - then we either return false and fail to apply the patch (if\n    // fuzzFactor is 0) or simply ignore the problem and do nothing (if fuzzFactor is >0).\n    // If we do need to remove/add a newline at EOF, this will always be in the final hunk:\n    var prevLine = '', removeEOFNL = false, addEOFNL = false;\n    for (var i = 0; i < hunks[hunks.length - 1].lines.length; i++) {\n        var line = hunks[hunks.length - 1].lines[i];\n        if (line[0] == '\\\\') {\n            if (prevLine[0] == '+') {\n                removeEOFNL = true;\n            }\n            else if (prevLine[0] == '-') {\n                addEOFNL = true;\n            }\n        }\n        prevLine = line;\n    }\n    if (removeEOFNL) {\n        if (addEOFNL) {\n            // This means the final line gets changed but doesn't have a trailing newline in either the\n            // original or patched version. In that case, we do nothing if fuzzFactor > 0, and if\n            // fuzzFactor is 0, we simply validate that the source file has no trailing newline.\n            if (!fuzzFactor && lines[lines.length - 1] == '') {\n                return false;\n            }\n        }\n        else if (lines[lines.length - 1] == '') {\n            lines.pop();\n        }\n        else if (!fuzzFactor) {\n            return false;\n        }\n    }\n    else if (addEOFNL) {\n        if (lines[lines.length - 1] != '') {\n            lines.push('');\n        }\n        else if (!fuzzFactor) {\n            return false;\n        }\n    }\n    /**\n     * Checks if the hunk can be made to fit at the provided location with at most `maxErrors`\n     * insertions, substitutions, or deletions, while ensuring also that:\n     * - lines deleted in the hunk match exactly, and\n     * - wherever an insertion operation or block of insertion operations appears in the hunk, the\n     *   immediately preceding and following lines of context match exactly\n     *\n     * `toPos` should be set such that lines[toPos] is meant to match hunkLines[0].\n     *\n     * If the hunk can be applied, returns an object with properties `oldLineLastI` and\n     * `replacementLines`. Otherwise, returns null.\n     */\n    function applyHunk(hunkLines, toPos, maxErrors, hunkLinesI, lastContextLineMatched, patchedLines, patchedLinesLength) {\n        if (hunkLinesI === void 0) { hunkLinesI = 0; }\n        if (lastContextLineMatched === void 0) { lastContextLineMatched = true; }\n        if (patchedLines === void 0) { patchedLines = []; }\n        if (patchedLinesLength === void 0) { patchedLinesLength = 0; }\n        var nConsecutiveOldContextLines = 0;\n        var nextContextLineMustMatch = false;\n        for (; hunkLinesI < hunkLines.length; hunkLinesI++) {\n            var hunkLine = hunkLines[hunkLinesI], operation = (hunkLine.length > 0 ? hunkLine[0] : ' '), content = (hunkLine.length > 0 ? hunkLine.substr(1) : hunkLine);\n            if (operation === '-') {\n                if (compareLine(toPos + 1, lines[toPos], operation, content)) {\n                    toPos++;\n                    nConsecutiveOldContextLines = 0;\n                }\n                else {\n                    if (!maxErrors || lines[toPos] == null) {\n                        return null;\n                    }\n                    patchedLines[patchedLinesLength] = lines[toPos];\n                    return applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI, false, patchedLines, patchedLinesLength + 1);\n                }\n            }\n            if (operation === '+') {\n                if (!lastContextLineMatched) {\n                    return null;\n                }\n                patchedLines[patchedLinesLength] = content;\n                patchedLinesLength++;\n                nConsecutiveOldContextLines = 0;\n                nextContextLineMustMatch = true;\n            }\n            if (operation === ' ') {\n                nConsecutiveOldContextLines++;\n                patchedLines[patchedLinesLength] = lines[toPos];\n                if (compareLine(toPos + 1, lines[toPos], operation, content)) {\n                    patchedLinesLength++;\n                    lastContextLineMatched = true;\n                    nextContextLineMustMatch = false;\n                    toPos++;\n                }\n                else {\n                    if (nextContextLineMustMatch || !maxErrors) {\n                        return null;\n                    }\n                    // Consider 3 possibilities in sequence:\n                    // 1. lines contains a *substitution* not included in the patch context, or\n                    // 2. lines contains an *insertion* not included in the patch context, or\n                    // 3. lines contains a *deletion* not included in the patch context\n                    // The first two options are of course only possible if the line from lines is non-null -\n                    // i.e. only option 3 is possible if we've overrun the end of the old file.\n                    return (lines[toPos] && (applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI + 1, false, patchedLines, patchedLinesLength + 1) || applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI, false, patchedLines, patchedLinesLength + 1)) || applyHunk(hunkLines, toPos, maxErrors - 1, hunkLinesI + 1, false, patchedLines, patchedLinesLength));\n                }\n            }\n        }\n        // Before returning, trim any unmodified context lines off the end of patchedLines and reduce\n        // toPos (and thus oldLineLastI) accordingly. This allows later hunks to be applied to a region\n        // that starts in this hunk's trailing context.\n        patchedLinesLength -= nConsecutiveOldContextLines;\n        toPos -= nConsecutiveOldContextLines;\n        patchedLines.length = patchedLinesLength;\n        return {\n            patchedLines: patchedLines,\n            oldLineLastI: toPos - 1\n        };\n    }\n    var resultLines = [];\n    // Search best fit offsets for each hunk based on the previous ones\n    var prevHunkOffset = 0;\n    for (var i = 0; i < hunks.length; i++) {\n        var hunk = hunks[i];\n        var hunkResult = void 0;\n        var maxLine = lines.length - hunk.oldLines + fuzzFactor;\n        var toPos = void 0;\n        for (var maxErrors = 0; maxErrors <= fuzzFactor; maxErrors++) {\n            toPos = hunk.oldStart + prevHunkOffset - 1;\n            var iterator = (0, distance_iterator_js_1.default)(toPos, minLine, maxLine);\n            for (; toPos !== undefined; toPos = iterator()) {\n                hunkResult = applyHunk(hunk.lines, toPos, maxErrors);\n                if (hunkResult) {\n                    break;\n                }\n            }\n            if (hunkResult) {\n                break;\n            }\n        }\n        if (!hunkResult) {\n            return false;\n        }\n        // Copy everything from the end of where we applied the last hunk to the start of this hunk\n        for (var i_1 = minLine; i_1 < toPos; i_1++) {\n            resultLines.push(lines[i_1]);\n        }\n        // Add the lines produced by applying the hunk:\n        for (var i_2 = 0; i_2 < hunkResult.patchedLines.length; i_2++) {\n            var line = hunkResult.patchedLines[i_2];\n            resultLines.push(line);\n        }\n        // Set lower text limit to end of the current hunk, so next ones don't try\n        // to fit over already patched text\n        minLine = hunkResult.oldLineLastI + 1;\n        // Note the offset between where the patch said the hunk should've applied and where we\n        // applied it, so we can adjust future hunks accordingly:\n        prevHunkOffset = toPos + 1 - hunk.oldStart;\n    }\n    // Copy over the rest of the lines from the old text\n    for (var i = minLine; i < lines.length; i++) {\n        resultLines.push(lines[i]);\n    }\n    return resultLines.join('\\n');\n}\n/**\n * applies one or more patches.\n *\n * `patch` may be either an array of structured patch objects, or a string representing a patch in unified diff format (which may patch one or more files).\n *\n * This method will iterate over the contents of the patch and apply to data provided through callbacks. The general flow for each patch index is:\n *\n * - `options.loadFile(index, callback)` is called. The caller should then load the contents of the file and then pass that to the `callback(err, data)` callback. Passing an `err` will terminate further patch execution.\n * - `options.patched(index, content, callback)` is called once the patch has been applied. `content` will be the return value from `applyPatch`. When it's ready, the caller should call `callback(err)` callback. Passing an `err` will terminate further patch execution.\n *\n * Once all patches have been applied or an error occurs, the `options.complete(err)` callback is made.\n */\nfunction applyPatches(uniDiff, options) {\n    var spDiff = typeof uniDiff === 'string' ? (0, parse_js_1.parsePatch)(uniDiff) : uniDiff;\n    var currentIndex = 0;\n    function processIndex() {\n        var index = spDiff[currentIndex++];\n        if (!index) {\n            return options.complete();\n        }\n        options.loadFile(index, function (err, data) {\n            if (err) {\n                return options.complete(err);\n            }\n            var updatedContent = applyPatch(data, index, options);\n            options.patched(index, updatedContent, function (err) {\n                if (err) {\n                    return options.complete(err);\n                }\n                processIndex();\n            });\n        });\n    }\n    processIndex();\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OMIT_HEADERS = exports.FILE_HEADERS_ONLY = exports.INCLUDE_HEADERS = void 0;\nexports.structuredPatch = structuredPatch;\nexports.formatPatch = formatPatch;\nexports.createTwoFilesPatch = createTwoFilesPatch;\nexports.createPatch = createPatch;\nvar line_js_1 = require(\"../diff/line.js\");\nexports.INCLUDE_HEADERS = {\n    includeIndex: true,\n    includeUnderline: true,\n    includeFileHeaders: true\n};\nexports.FILE_HEADERS_ONLY = {\n    includeIndex: false,\n    includeUnderline: false,\n    includeFileHeaders: true\n};\nexports.OMIT_HEADERS = {\n    includeIndex: false,\n    includeUnderline: false,\n    includeFileHeaders: false\n};\nfunction structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n    var optionsObj;\n    if (!options) {\n        optionsObj = {};\n    }\n    else if (typeof options === 'function') {\n        optionsObj = { callback: options };\n    }\n    else {\n        optionsObj = options;\n    }\n    if (typeof optionsObj.context === 'undefined') {\n        optionsObj.context = 4;\n    }\n    // We copy this into its own variable to placate TypeScript, which thinks\n    // optionsObj.context might be undefined in the callbacks below.\n    var context = optionsObj.context;\n    // @ts-expect-error (runtime check for something that is correctly a static type error)\n    if (optionsObj.newlineIsToken) {\n        throw new Error('newlineIsToken may not be used with patch-generation functions, only with diffing functions');\n    }\n    if (!optionsObj.callback) {\n        return diffLinesResultToPatch((0, line_js_1.diffLines)(oldStr, newStr, optionsObj));\n    }\n    else {\n        var callback_1 = optionsObj.callback;\n        (0, line_js_1.diffLines)(oldStr, newStr, __assign(__assign({}, optionsObj), { callback: function (diff) {\n                var patch = diffLinesResultToPatch(diff);\n                // TypeScript is unhappy without the cast because it does not understand that `patch` may\n                // be undefined here only if `callback` is StructuredPatchCallbackAbortable:\n                callback_1(patch);\n            } }));\n    }\n    function diffLinesResultToPatch(diff) {\n        // STEP 1: Build up the patch with no \"\\ No newline at end of file\" lines and with the arrays\n        //         of lines containing trailing newline characters. We'll tidy up later...\n        if (!diff) {\n            return;\n        }\n        diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\n        function contextLines(lines) {\n            return lines.map(function (entry) { return ' ' + entry; });\n        }\n        var hunks = [];\n        var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;\n        for (var i = 0; i < diff.length; i++) {\n            var current = diff[i], lines = current.lines || splitLines(current.value);\n            current.lines = lines;\n            if (current.added || current.removed) {\n                // If we have previous context, start with that\n                if (!oldRangeStart) {\n                    var prev = diff[i - 1];\n                    oldRangeStart = oldLine;\n                    newRangeStart = newLine;\n                    if (prev) {\n                        curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];\n                        oldRangeStart -= curRange.length;\n                        newRangeStart -= curRange.length;\n                    }\n                }\n                // Output our changes\n                for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) {\n                    var line = lines_1[_i];\n                    curRange.push((current.added ? '+' : '-') + line);\n                }\n                // Track the updated file position\n                if (current.added) {\n                    newLine += lines.length;\n                }\n                else {\n                    oldLine += lines.length;\n                }\n            }\n            else {\n                // Identical context lines. Track line changes\n                if (oldRangeStart) {\n                    // Close out any changes that have been output (or join overlapping)\n                    if (lines.length <= context * 2 && i < diff.length - 2) {\n                        // Overlapping\n                        for (var _a = 0, _b = contextLines(lines); _a < _b.length; _a++) {\n                            var line = _b[_a];\n                            curRange.push(line);\n                        }\n                    }\n                    else {\n                        // end the range and output\n                        var contextSize = Math.min(lines.length, context);\n                        for (var _c = 0, _d = contextLines(lines.slice(0, contextSize)); _c < _d.length; _c++) {\n                            var line = _d[_c];\n                            curRange.push(line);\n                        }\n                        var hunk = {\n                            oldStart: oldRangeStart,\n                            oldLines: (oldLine - oldRangeStart + contextSize),\n                            newStart: newRangeStart,\n                            newLines: (newLine - newRangeStart + contextSize),\n                            lines: curRange\n                        };\n                        hunks.push(hunk);\n                        oldRangeStart = 0;\n                        newRangeStart = 0;\n                        curRange = [];\n                    }\n                }\n                oldLine += lines.length;\n                newLine += lines.length;\n            }\n        }\n        // Step 2: eliminate the trailing `\\n` from each line of each hunk, and, where needed, add\n        //         \"\\ No newline at end of file\".\n        for (var _e = 0, hunks_1 = hunks; _e < hunks_1.length; _e++) {\n            var hunk = hunks_1[_e];\n            for (var i = 0; i < hunk.lines.length; i++) {\n                if (hunk.lines[i].endsWith('\\n')) {\n                    hunk.lines[i] = hunk.lines[i].slice(0, -1);\n                }\n                else {\n                    hunk.lines.splice(i + 1, 0, '\\\\ No newline at end of file');\n                    i++; // Skip the line we just added, then continue iterating\n                }\n            }\n        }\n        return {\n            oldFileName: oldFileName, newFileName: newFileName,\n            oldHeader: oldHeader, newHeader: newHeader,\n            hunks: hunks\n        };\n    }\n}\n/**\n * creates a unified diff patch.\n * @param patch either a single structured patch object (as returned by `structuredPatch`) or an array of them (as returned by `parsePatch`)\n */\nfunction formatPatch(patch, headerOptions) {\n    if (!headerOptions) {\n        headerOptions = exports.INCLUDE_HEADERS;\n    }\n    if (Array.isArray(patch)) {\n        if (patch.length > 1 && !headerOptions.includeFileHeaders) {\n            throw new Error('Cannot omit file headers on a multi-file patch. '\n                + '(The result would be unparseable; how would a tool trying to apply '\n                + 'the patch know which changes are to which file?)');\n        }\n        return patch.map(function (p) { return formatPatch(p, headerOptions); }).join('\\n');\n    }\n    var ret = [];\n    if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName) {\n        ret.push('Index: ' + patch.oldFileName);\n    }\n    if (headerOptions.includeUnderline) {\n        ret.push('===================================================================');\n    }\n    if (headerOptions.includeFileHeaders) {\n        ret.push('--- ' + patch.oldFileName + (typeof patch.oldHeader === 'undefined' ? '' : '\\t' + patch.oldHeader));\n        ret.push('+++ ' + patch.newFileName + (typeof patch.newHeader === 'undefined' ? '' : '\\t' + patch.newHeader));\n    }\n    for (var i = 0; i < patch.hunks.length; i++) {\n        var hunk = patch.hunks[i];\n        // Unified Diff Format quirk: If the chunk size is 0,\n        // the first number is one lower than one would expect.\n        // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n        if (hunk.oldLines === 0) {\n            hunk.oldStart -= 1;\n        }\n        if (hunk.newLines === 0) {\n            hunk.newStart -= 1;\n        }\n        ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines\n            + ' +' + hunk.newStart + ',' + hunk.newLines\n            + ' @@');\n        for (var _i = 0, _a = hunk.lines; _i < _a.length; _i++) {\n            var line = _a[_i];\n            ret.push(line);\n        }\n    }\n    return ret.join('\\n') + '\\n';\n}\nfunction createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n    if (typeof options === 'function') {\n        options = { callback: options };\n    }\n    if (!(options === null || options === void 0 ? void 0 : options.callback)) {\n        var patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n        if (!patchObj) {\n            return;\n        }\n        return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);\n    }\n    else {\n        var callback_2 = options.callback;\n        structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, __assign(__assign({}, options), { callback: function (patchObj) {\n                if (!patchObj) {\n                    callback_2(undefined);\n                }\n                else {\n                    callback_2(formatPatch(patchObj, options.headerOptions));\n                }\n            } }));\n    }\n}\nfunction createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n    return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n/**\n * Split `text` into an array of lines, including the trailing newline character (where present)\n */\nfunction splitLines(text) {\n    var hasTrailingNl = text.endsWith('\\n');\n    var result = text.split('\\n').map(function (line) { return line + '\\n'; });\n    if (hasTrailingNl) {\n        result.pop();\n    }\n    else {\n        result.push(result.pop().slice(0, -1));\n    }\n    return result;\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unixToWin = unixToWin;\nexports.winToUnix = winToUnix;\nexports.isUnix = isUnix;\nexports.isWin = isWin;\nfunction unixToWin(patch) {\n    if (Array.isArray(patch)) {\n        // It would be cleaner if instead of the line below we could just write\n        //     return patch.map(unixToWin)\n        // but mysteriously TypeScript (v5.7.3 at the time of writing) does not like this and it will\n        // refuse to compile, thinking that unixToWin could then return StructuredPatch[][] and the\n        // result would be incompatible with the overload signatures.\n        // See bug report at https://github.com/microsoft/TypeScript/issues/61398.\n        return patch.map(function (p) { return unixToWin(p); });\n    }\n    return __assign(__assign({}, patch), { hunks: patch.hunks.map(function (hunk) { return (__assign(__assign({}, hunk), { lines: hunk.lines.map(function (line, i) {\n                var _a;\n                return (line.startsWith('\\\\') || line.endsWith('\\r') || ((_a = hunk.lines[i + 1]) === null || _a === void 0 ? void 0 : _a.startsWith('\\\\')))\n                    ? line\n                    : line + '\\r';\n            }) })); }) });\n}\nfunction winToUnix(patch) {\n    if (Array.isArray(patch)) {\n        // (See comment above equivalent line in unixToWin)\n        return patch.map(function (p) { return winToUnix(p); });\n    }\n    return __assign(__assign({}, patch), { hunks: patch.hunks.map(function (hunk) { return (__assign(__assign({}, hunk), { lines: hunk.lines.map(function (line) { return line.endsWith('\\r') ? line.substring(0, line.length - 1) : line; }) })); }) });\n}\n/**\n * Returns true if the patch consistently uses Unix line endings (or only involves one line and has\n * no line endings).\n */\nfunction isUnix(patch) {\n    if (!Array.isArray(patch)) {\n        patch = [patch];\n    }\n    return !patch.some(function (index) { return index.hunks.some(function (hunk) { return hunk.lines.some(function (line) { return !line.startsWith('\\\\') && line.endsWith('\\r'); }); }); });\n}\n/**\n * Returns true if the patch uses Windows line endings and only Windows line endings.\n */\nfunction isWin(patch) {\n    if (!Array.isArray(patch)) {\n        patch = [patch];\n    }\n    return patch.some(function (index) { return index.hunks.some(function (hunk) { return hunk.lines.some(function (line) { return line.endsWith('\\r'); }); }); })\n        && patch.every(function (index) { return index.hunks.every(function (hunk) { return hunk.lines.every(function (line, i) { var _a; return line.startsWith('\\\\') || line.endsWith('\\r') || ((_a = hunk.lines[i + 1]) === null || _a === void 0 ? void 0 : _a.startsWith('\\\\')); }); }); });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parsePatch = parsePatch;\n/**\n * Parses a patch into structured data, in the same structure returned by `structuredPatch`.\n *\n * @return a JSON object representation of the a patch, suitable for use with the `applyPatch` method.\n */\nfunction parsePatch(uniDiff) {\n    var diffstr = uniDiff.split(/\\n/), list = [];\n    var i = 0;\n    function parseIndex() {\n        var index = {};\n        list.push(index);\n        // Parse diff metadata\n        while (i < diffstr.length) {\n            var line = diffstr[i];\n            // File header found, end parsing diff metadata\n            if ((/^(---|\\+\\+\\+|@@)\\s/).test(line)) {\n                break;\n            }\n            // Try to parse the line as a diff header, like\n            //     Index: README.md\n            // or\n            //     diff -r 9117c6561b0b -r 273ce12ad8f1 .hgignore\n            // or\n            //     Index: something with multiple words\n            // and extract the filename (or whatever else is used as an index name)\n            // from the end (i.e. 'README.md', '.hgignore', or\n            // 'something with multiple words' in the examples above).\n            //\n            // TODO: It seems awkward that we indiscriminately trim off trailing\n            //       whitespace here. Theoretically, couldn't that be meaningful -\n            //       e.g. if the patch represents a diff of a file whose name ends\n            //       with a space? Seems wrong to nuke it.\n            //       But this behaviour has been around since v2.2.1 in 2015, so if\n            //       it's going to change, it should be done cautiously and in a new\n            //       major release, for backwards-compat reasons.\n            //       -- ExplodingCabbage\n            var headerMatch = (/^(?:Index:|diff(?: -r \\w+)+)\\s+/).exec(line);\n            if (headerMatch) {\n                index.index = line.substring(headerMatch[0].length).trim();\n            }\n            i++;\n        }\n        // Parse file headers if they are defined. Unified diff requires them, but\n        // there's no technical issues to have an isolated hunk without file header\n        parseFileHeader(index);\n        parseFileHeader(index);\n        // Parse hunks\n        index.hunks = [];\n        while (i < diffstr.length) {\n            var line = diffstr[i];\n            if ((/^(Index:\\s|diff\\s|---\\s|\\+\\+\\+\\s|===================================================================)/).test(line)) {\n                break;\n            }\n            else if ((/^@@/).test(line)) {\n                index.hunks.push(parseHunk());\n            }\n            else if (line) {\n                throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(line));\n            }\n            else {\n                i++;\n            }\n        }\n    }\n    // Parses the --- and +++ headers, if none are found, no lines\n    // are consumed.\n    function parseFileHeader(index) {\n        var fileHeaderMatch = (/^(---|\\+\\+\\+)\\s+/).exec(diffstr[i]);\n        if (fileHeaderMatch) {\n            var prefix = fileHeaderMatch[1], data = diffstr[i].substring(3).trim().split('\\t', 2), header = (data[1] || '').trim();\n            var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n            if (fileName.startsWith('\"') && fileName.endsWith('\"')) {\n                fileName = fileName.substr(1, fileName.length - 2);\n            }\n            if (prefix === '---') {\n                index.oldFileName = fileName;\n                index.oldHeader = header;\n            }\n            else {\n                index.newFileName = fileName;\n                index.newHeader = header;\n            }\n            i++;\n        }\n    }\n    // Parses a hunk\n    // This assumes that we are at the start of a hunk.\n    function parseHunk() {\n        var _a;\n        var chunkHeaderIndex = i, chunkHeaderLine = diffstr[i++], chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n        var hunk = {\n            oldStart: +chunkHeader[1],\n            oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n            newStart: +chunkHeader[3],\n            newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n            lines: []\n        };\n        // Unified Diff Format quirk: If the chunk size is 0,\n        // the first number is one lower than one would expect.\n        // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n        if (hunk.oldLines === 0) {\n            hunk.oldStart += 1;\n        }\n        if (hunk.newLines === 0) {\n            hunk.newStart += 1;\n        }\n        var addCount = 0, removeCount = 0;\n        for (; i < diffstr.length && (removeCount < hunk.oldLines || addCount < hunk.newLines || ((_a = diffstr[i]) === null || _a === void 0 ? void 0 : _a.startsWith('\\\\'))); i++) {\n            var operation = (diffstr[i].length == 0 && i != (diffstr.length - 1)) ? ' ' : diffstr[i][0];\n            if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n                hunk.lines.push(diffstr[i]);\n                if (operation === '+') {\n                    addCount++;\n                }\n                else if (operation === '-') {\n                    removeCount++;\n                }\n                else if (operation === ' ') {\n                    addCount++;\n                    removeCount++;\n                }\n            }\n            else {\n                throw new Error(\"Hunk at line \".concat(chunkHeaderIndex + 1, \" contained invalid line \").concat(diffstr[i]));\n            }\n        }\n        // Handle the empty block count case\n        if (!addCount && hunk.newLines === 1) {\n            hunk.newLines = 0;\n        }\n        if (!removeCount && hunk.oldLines === 1) {\n            hunk.oldLines = 0;\n        }\n        // Perform sanity checking\n        if (addCount !== hunk.newLines) {\n            throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n        }\n        if (removeCount !== hunk.oldLines) {\n            throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n        }\n        return hunk;\n    }\n    while (i < diffstr.length) {\n        parseIndex();\n    }\n    return list;\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reversePatch = reversePatch;\nfunction reversePatch(structuredPatch) {\n    if (Array.isArray(structuredPatch)) {\n        // (See comment in unixToWin for why we need the pointless-looking anonymous function here)\n        return structuredPatch.map(function (patch) { return reversePatch(patch); }).reverse();\n    }\n    return __assign(__assign({}, structuredPatch), { oldFileName: structuredPatch.newFileName, oldHeader: structuredPatch.newHeader, newFileName: structuredPatch.oldFileName, newHeader: structuredPatch.oldHeader, hunks: structuredPatch.hunks.map(function (hunk) {\n            return {\n                oldLines: hunk.newLines,\n                oldStart: hunk.newStart,\n                newLines: hunk.oldLines,\n                newStart: hunk.oldStart,\n                lines: hunk.lines.map(function (l) {\n                    if (l.startsWith('-')) {\n                        return \"+\".concat(l.slice(1));\n                    }\n                    if (l.startsWith('+')) {\n                        return \"-\".concat(l.slice(1));\n                    }\n                    return l;\n                })\n            };\n        }) });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = default_1;\n// Iterator that traverses in the range of [min, max], stepping\n// by distance from a given start position. I.e. for [0, 4], with\n// start of 2, this will iterate 2, 3, 1, 4, 0.\nfunction default_1(start, minLine, maxLine) {\n    var wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1;\n    return function iterator() {\n        if (wantForward && !forwardExhausted) {\n            if (backwardExhausted) {\n                localOffset++;\n            }\n            else {\n                wantForward = false;\n            }\n            // Check if trying to fit beyond text length, and if not, check it fits\n            // after offset location (or desired location on first iteration)\n            if (start + localOffset <= maxLine) {\n                return start + localOffset;\n            }\n            forwardExhausted = true;\n        }\n        if (!backwardExhausted) {\n            if (!forwardExhausted) {\n                wantForward = true;\n            }\n            // Check if trying to fit before text beginning, and if not, check it fits\n            // before offset location\n            if (minLine <= start - localOffset) {\n                return start - localOffset++;\n            }\n            backwardExhausted = true;\n            return iterator();\n        }\n        // We tried to fit hunk before text beginning and beyond text length, then\n        // hunk can't fit on the text. Return undefined\n        return undefined;\n    };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateOptions = generateOptions;\nfunction generateOptions(options, defaults) {\n    if (typeof options === 'function') {\n        defaults.callback = options;\n    }\n    else if (options) {\n        for (var name in options) {\n            /* istanbul ignore else */\n            if (Object.prototype.hasOwnProperty.call(options, name)) {\n                defaults[name] = options[name];\n            }\n        }\n    }\n    return defaults;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.longestCommonPrefix = longestCommonPrefix;\nexports.longestCommonSuffix = longestCommonSuffix;\nexports.replacePrefix = replacePrefix;\nexports.replaceSuffix = replaceSuffix;\nexports.removePrefix = removePrefix;\nexports.removeSuffix = removeSuffix;\nexports.maximumOverlap = maximumOverlap;\nexports.hasOnlyWinLineEndings = hasOnlyWinLineEndings;\nexports.hasOnlyUnixLineEndings = hasOnlyUnixLineEndings;\nexports.segment = segment;\nexports.trailingWs = trailingWs;\nexports.leadingWs = leadingWs;\nexports.leadingAndTrailingWs = leadingAndTrailingWs;\nfunction longestCommonPrefix(str1, str2) {\n    var i;\n    for (i = 0; i < str1.length && i < str2.length; i++) {\n        if (str1[i] != str2[i]) {\n            return str1.slice(0, i);\n        }\n    }\n    return str1.slice(0, i);\n}\nfunction longestCommonSuffix(str1, str2) {\n    var i;\n    // Unlike longestCommonPrefix, we need a special case to handle all scenarios\n    // where we return the empty string since str1.slice(-0) will return the\n    // entire string.\n    if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) {\n        return '';\n    }\n    for (i = 0; i < str1.length && i < str2.length; i++) {\n        if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) {\n            return str1.slice(-i);\n        }\n    }\n    return str1.slice(-i);\n}\nfunction replacePrefix(string, oldPrefix, newPrefix) {\n    if (string.slice(0, oldPrefix.length) != oldPrefix) {\n        throw Error(\"string \".concat(JSON.stringify(string), \" doesn't start with prefix \").concat(JSON.stringify(oldPrefix), \"; this is a bug\"));\n    }\n    return newPrefix + string.slice(oldPrefix.length);\n}\nfunction replaceSuffix(string, oldSuffix, newSuffix) {\n    if (!oldSuffix) {\n        return string + newSuffix;\n    }\n    if (string.slice(-oldSuffix.length) != oldSuffix) {\n        throw Error(\"string \".concat(JSON.stringify(string), \" doesn't end with suffix \").concat(JSON.stringify(oldSuffix), \"; this is a bug\"));\n    }\n    return string.slice(0, -oldSuffix.length) + newSuffix;\n}\nfunction removePrefix(string, oldPrefix) {\n    return replacePrefix(string, oldPrefix, '');\n}\nfunction removeSuffix(string, oldSuffix) {\n    return replaceSuffix(string, oldSuffix, '');\n}\nfunction maximumOverlap(string1, string2) {\n    return string2.slice(0, overlapCount(string1, string2));\n}\n// Nicked from https://stackoverflow.com/a/60422853/1709587\nfunction overlapCount(a, b) {\n    // Deal with cases where the strings differ in length\n    var startA = 0;\n    if (a.length > b.length) {\n        startA = a.length - b.length;\n    }\n    var endB = b.length;\n    if (a.length < b.length) {\n        endB = a.length;\n    }\n    // Create a back-reference for each index\n    //   that should be followed in case of a mismatch.\n    //   We only need B to make these references:\n    var map = Array(endB);\n    var k = 0; // Index that lags behind j\n    map[0] = 0;\n    for (var j = 1; j < endB; j++) {\n        if (b[j] == b[k]) {\n            map[j] = map[k]; // skip over the same character (optional optimisation)\n        }\n        else {\n            map[j] = k;\n        }\n        while (k > 0 && b[j] != b[k]) {\n            k = map[k];\n        }\n        if (b[j] == b[k]) {\n            k++;\n        }\n    }\n    // Phase 2: use these references while iterating over A\n    k = 0;\n    for (var i = startA; i < a.length; i++) {\n        while (k > 0 && a[i] != b[k]) {\n            k = map[k];\n        }\n        if (a[i] == b[k]) {\n            k++;\n        }\n    }\n    return k;\n}\n/**\n * Returns true if the string consistently uses Windows line endings.\n */\nfunction hasOnlyWinLineEndings(string) {\n    return string.includes('\\r\\n') && !string.startsWith('\\n') && !string.match(/[^\\r]\\n/);\n}\n/**\n * Returns true if the string consistently uses Unix line endings.\n */\nfunction hasOnlyUnixLineEndings(string) {\n    return !string.includes('\\r\\n') && string.includes('\\n');\n}\n/**\n * Split a string into segments using a word segmenter, merging consecutive\n * segments if they are both whitespace segments. Whitespace segments can\n * appear adjacent to one another for two reasons:\n * - newlines always get their own segment\n * - where a diacritic is attached to a whitespace character in the text, the\n *   segment ends after the diacritic, so e.g. \" \\u0300 \" becomes two segments.\n * This function therefore runs the segmenter's .segment() method and then\n * merges consecutive segments of whitespace into a single part.\n */\nfunction segment(string, segmenter) {\n    var parts = [];\n    for (var _i = 0, _a = Array.from(segmenter.segment(string)); _i < _a.length; _i++) {\n        var segmentObj = _a[_i];\n        var segment_1 = segmentObj.segment;\n        if (parts.length && (/\\s/).test(parts[parts.length - 1]) && (/\\s/).test(segment_1)) {\n            parts[parts.length - 1] += segment_1;\n        }\n        else {\n            parts.push(segment_1);\n        }\n    }\n    return parts;\n}\n// The functions below take a `segmenter` argument so that, when called from\n// diffWords when it is using a segmenter, they can use a notion of what\n// constitutes \"whitespace\" that is consistent with the segmenter.\n//\n// USUALLY this will be identical to the result of the non-segmenter-based\n// logic, but it differs in at least one case: when whitespace characters are\n// modified by diacritics. A word segmenter considers these diacritics to be\n// part of the whitespace, whereas our non-segmenter-based logic does not.\n//\n// Because the segmenter-based approach necessarily requires segmenting the\n// entire string, we offer a leadingAndTrailingWs function to allow getting the\n// whitespace prefix AND whitespace suffix with a single call to the segmenter,\n// for efficiency's sake.\nfunction trailingWs(string, segmenter) {\n    if (segmenter) {\n        return leadingAndTrailingWs(string, segmenter)[1];\n    }\n    // Yes, this looks overcomplicated and dumb - why not replace the whole function with\n    //     return string.match(/\\s*$/)[0]\n    // you ask? Because:\n    // 1. the trap described at https://markamery.com/blog/quadratic-time-regexes/ would mean doing\n    //    this would cause this function to take O(n²) time in the worst case (specifically when\n    //    there is a massive run of NON-TRAILING whitespace in `string`), and\n    // 2. the fix proposed in the same blog post, of using a negative lookbehind, is incompatible\n    //    with old Safari versions that we'd like to not break if possible (see\n    //    https://github.com/kpdecker/jsdiff/pull/550)\n    // It feels absurd to do this with an explicit loop instead of a regex, but I really can't see a\n    // better way that doesn't result in broken behaviour.\n    var i;\n    for (i = string.length - 1; i >= 0; i--) {\n        if (!string[i].match(/\\s/)) {\n            break;\n        }\n    }\n    return string.substring(i + 1);\n}\nfunction leadingWs(string, segmenter) {\n    if (segmenter) {\n        return leadingAndTrailingWs(string, segmenter)[0];\n    }\n    // Thankfully the annoying considerations described in trailingWs don't apply here:\n    var match = string.match(/^\\s*/);\n    return match ? match[0] : '';\n}\nfunction leadingAndTrailingWs(string, segmenter) {\n    if (!segmenter) {\n        return [leadingWs(string), trailingWs(string)];\n    }\n    if (segmenter.resolvedOptions().granularity != 'word') {\n        throw new Error('The segmenter passed must have a granularity of \"word\"');\n    }\n    var segments = segment(string, segmenter);\n    var firstSeg = segments[0];\n    var lastSeg = segments[segments.length - 1];\n    var head = (/\\s/).test(firstSeg) ? firstSeg : '';\n    var tail = (/\\s/).test(lastSeg) ? lastSeg : '';\n    return [head, tail];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Glob = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst node_url_1 = require(\"node:url\");\nconst path_scurry_1 = require(\"path-scurry\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst walker_js_1 = require(\"./walker.js\");\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform = (typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string') ?\n    process.platform\n    : 'linux';\n/**\n * An object that can perform glob pattern traversals.\n */\nclass Glob {\n    absolute;\n    cwd;\n    root;\n    dot;\n    dotRelative;\n    follow;\n    ignore;\n    magicalBraces;\n    mark;\n    matchBase;\n    maxDepth;\n    nobrace;\n    nocase;\n    nodir;\n    noext;\n    noglobstar;\n    pattern;\n    platform;\n    realpath;\n    scurry;\n    stat;\n    signal;\n    windowsPathsNoEscape;\n    withFileTypes;\n    includeChildMatches;\n    /**\n     * The options provided to the constructor.\n     */\n    opts;\n    /**\n     * An array of parsed immutable {@link Pattern} objects.\n     */\n    patterns;\n    /**\n     * All options are stored as properties on the `Glob` object.\n     *\n     * See {@link GlobOptions} for full options descriptions.\n     *\n     * Note that a previous `Glob` object can be passed as the\n     * `GlobOptions` to another `Glob` instantiation to re-use settings\n     * and caches with a new pattern.\n     *\n     * Traversal functions can be called multiple times to run the walk\n     * again.\n     */\n    constructor(pattern, opts) {\n        /* c8 ignore start */\n        if (!opts)\n            throw new TypeError('glob options required');\n        /* c8 ignore stop */\n        this.withFileTypes = !!opts.withFileTypes;\n        this.signal = opts.signal;\n        this.follow = !!opts.follow;\n        this.dot = !!opts.dot;\n        this.dotRelative = !!opts.dotRelative;\n        this.nodir = !!opts.nodir;\n        this.mark = !!opts.mark;\n        if (!opts.cwd) {\n            this.cwd = '';\n        }\n        else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n            opts.cwd = (0, node_url_1.fileURLToPath)(opts.cwd);\n        }\n        this.cwd = opts.cwd || '';\n        this.root = opts.root;\n        this.magicalBraces = !!opts.magicalBraces;\n        this.nobrace = !!opts.nobrace;\n        this.noext = !!opts.noext;\n        this.realpath = !!opts.realpath;\n        this.absolute = opts.absolute;\n        this.includeChildMatches = opts.includeChildMatches !== false;\n        this.noglobstar = !!opts.noglobstar;\n        this.matchBase = !!opts.matchBase;\n        this.maxDepth =\n            typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity;\n        this.stat = !!opts.stat;\n        this.ignore = opts.ignore;\n        if (this.withFileTypes && this.absolute !== undefined) {\n            throw new Error('cannot set absolute and withFileTypes:true');\n        }\n        if (typeof pattern === 'string') {\n            pattern = [pattern];\n        }\n        this.windowsPathsNoEscape =\n            !!opts.windowsPathsNoEscape ||\n                opts.allowWindowsEscape ===\n                    false;\n        if (this.windowsPathsNoEscape) {\n            pattern = pattern.map(p => p.replace(/\\\\/g, '/'));\n        }\n        if (this.matchBase) {\n            if (opts.noglobstar) {\n                throw new TypeError('base matching requires globstar');\n            }\n            pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`));\n        }\n        this.pattern = pattern;\n        this.platform = opts.platform || defaultPlatform;\n        this.opts = { ...opts, platform: this.platform };\n        if (opts.scurry) {\n            this.scurry = opts.scurry;\n            if (opts.nocase !== undefined &&\n                opts.nocase !== opts.scurry.nocase) {\n                throw new Error('nocase option contradicts provided scurry option');\n            }\n        }\n        else {\n            const Scurry = opts.platform === 'win32' ? path_scurry_1.PathScurryWin32\n                : opts.platform === 'darwin' ? path_scurry_1.PathScurryDarwin\n                    : opts.platform ? path_scurry_1.PathScurryPosix\n                        : path_scurry_1.PathScurry;\n            this.scurry = new Scurry(this.cwd, {\n                nocase: opts.nocase,\n                fs: opts.fs,\n            });\n        }\n        this.nocase = this.scurry.nocase;\n        // If you do nocase:true on a case-sensitive file system, then\n        // we need to use regexps instead of strings for non-magic\n        // path portions, because statting `aBc` won't return results\n        // for the file `AbC` for example.\n        const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32';\n        const mmo = {\n            // default nocase based on platform\n            ...opts,\n            dot: this.dot,\n            matchBase: this.matchBase,\n            nobrace: this.nobrace,\n            nocase: this.nocase,\n            nocaseMagicOnly,\n            nocomment: true,\n            noext: this.noext,\n            nonegate: true,\n            optimizationLevel: 2,\n            platform: this.platform,\n            windowsPathsNoEscape: this.windowsPathsNoEscape,\n            debug: !!this.opts.debug,\n        };\n        const mms = this.pattern.map(p => new minimatch_1.Minimatch(p, mmo));\n        const [matchSet, globParts] = mms.reduce((set, m) => {\n            set[0].push(...m.set);\n            set[1].push(...m.globParts);\n            return set;\n        }, [[], []]);\n        this.patterns = matchSet.map((set, i) => {\n            const g = globParts[i];\n            /* c8 ignore start */\n            if (!g)\n                throw new Error('invalid pattern object');\n            /* c8 ignore stop */\n            return new pattern_js_1.Pattern(set, g, 0, this.platform);\n        });\n    }\n    async walk() {\n        // Walkers always return array of Path objects, so we just have to\n        // coerce them into the right shape.  It will have already called\n        // realpath() if the option was set to do so, so we know that's cached.\n        // start out knowing the cwd, at least\n        return [\n            ...(await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n                ...this.opts,\n                maxDepth: this.maxDepth !== Infinity ?\n                    this.maxDepth + this.scurry.cwd.depth()\n                    : Infinity,\n                platform: this.platform,\n                nocase: this.nocase,\n                includeChildMatches: this.includeChildMatches,\n            }).walk()),\n        ];\n    }\n    walkSync() {\n        return [\n            ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {\n                ...this.opts,\n                maxDepth: this.maxDepth !== Infinity ?\n                    this.maxDepth + this.scurry.cwd.depth()\n                    : Infinity,\n                platform: this.platform,\n                nocase: this.nocase,\n                includeChildMatches: this.includeChildMatches,\n            }).walkSync(),\n        ];\n    }\n    stream() {\n        return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n            ...this.opts,\n            maxDepth: this.maxDepth !== Infinity ?\n                this.maxDepth + this.scurry.cwd.depth()\n                : Infinity,\n            platform: this.platform,\n            nocase: this.nocase,\n            includeChildMatches: this.includeChildMatches,\n        }).stream();\n    }\n    streamSync() {\n        return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {\n            ...this.opts,\n            maxDepth: this.maxDepth !== Infinity ?\n                this.maxDepth + this.scurry.cwd.depth()\n                : Infinity,\n            platform: this.platform,\n            nocase: this.nocase,\n            includeChildMatches: this.includeChildMatches,\n        }).streamSync();\n    }\n    /**\n     * Default sync iteration function. Returns a Generator that\n     * iterates over the results.\n     */\n    iterateSync() {\n        return this.streamSync()[Symbol.iterator]();\n    }\n    [Symbol.iterator]() {\n        return this.iterateSync();\n    }\n    /**\n     * Default async iteration function. Returns an AsyncGenerator that\n     * iterates over the results.\n     */\n    iterate() {\n        return this.stream()[Symbol.asyncIterator]();\n    }\n    [Symbol.asyncIterator]() {\n        return this.iterate();\n    }\n}\nexports.Glob = Glob;\n//# sourceMappingURL=glob.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasMagic = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nconst hasMagic = (pattern, options = {}) => {\n    if (!Array.isArray(pattern)) {\n        pattern = [pattern];\n    }\n    for (const p of pattern) {\n        if (new minimatch_1.Minimatch(p, options).hasMagic())\n            return true;\n    }\n    return false;\n};\nexports.hasMagic = hasMagic;\n//# sourceMappingURL=has-magic.js.map","\"use strict\";\n// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Ignore = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst pattern_js_1 = require(\"./pattern.js\");\nconst defaultPlatform = (typeof process === 'object' &&\n    process &&\n    typeof process.platform === 'string') ?\n    process.platform\n    : 'linux';\n/**\n * Class used to process ignored patterns\n */\nclass Ignore {\n    relative;\n    relativeChildren;\n    absolute;\n    absoluteChildren;\n    platform;\n    mmopts;\n    constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) {\n        this.relative = [];\n        this.absolute = [];\n        this.relativeChildren = [];\n        this.absoluteChildren = [];\n        this.platform = platform;\n        this.mmopts = {\n            dot: true,\n            nobrace,\n            nocase,\n            noext,\n            noglobstar,\n            optimizationLevel: 2,\n            platform,\n            nocomment: true,\n            nonegate: true,\n        };\n        for (const ign of ignored)\n            this.add(ign);\n    }\n    add(ign) {\n        // this is a little weird, but it gives us a clean set of optimized\n        // minimatch matchers, without getting tripped up if one of them\n        // ends in /** inside a brace section, and it's only inefficient at\n        // the start of the walk, not along it.\n        // It'd be nice if the Pattern class just had a .test() method, but\n        // handling globstars is a bit of a pita, and that code already lives\n        // in minimatch anyway.\n        // Another way would be if maybe Minimatch could take its set/globParts\n        // as an option, and then we could at least just use Pattern to test\n        // for absolute-ness.\n        // Yet another way, Minimatch could take an array of glob strings, and\n        // a cwd option, and do the right thing.\n        const mm = new minimatch_1.Minimatch(ign, this.mmopts);\n        for (let i = 0; i < mm.set.length; i++) {\n            const parsed = mm.set[i];\n            const globParts = mm.globParts[i];\n            /* c8 ignore start */\n            if (!parsed || !globParts) {\n                throw new Error('invalid pattern object');\n            }\n            // strip off leading ./ portions\n            // https://github.com/isaacs/node-glob/issues/570\n            while (parsed[0] === '.' && globParts[0] === '.') {\n                parsed.shift();\n                globParts.shift();\n            }\n            /* c8 ignore stop */\n            const p = new pattern_js_1.Pattern(parsed, globParts, 0, this.platform);\n            const m = new minimatch_1.Minimatch(p.globString(), this.mmopts);\n            const children = globParts[globParts.length - 1] === '**';\n            const absolute = p.isAbsolute();\n            if (absolute)\n                this.absolute.push(m);\n            else\n                this.relative.push(m);\n            if (children) {\n                if (absolute)\n                    this.absoluteChildren.push(m);\n                else\n                    this.relativeChildren.push(m);\n            }\n        }\n    }\n    ignored(p) {\n        const fullpath = p.fullpath();\n        const fullpaths = `${fullpath}/`;\n        const relative = p.relative() || '.';\n        const relatives = `${relative}/`;\n        for (const m of this.relative) {\n            if (m.match(relative) || m.match(relatives))\n                return true;\n        }\n        for (const m of this.absolute) {\n            if (m.match(fullpath) || m.match(fullpaths))\n                return true;\n        }\n        return false;\n    }\n    childrenIgnored(p) {\n        const fullpath = p.fullpath() + '/';\n        const relative = (p.relative() || '.') + '/';\n        for (const m of this.relativeChildren) {\n            if (m.match(relative))\n                return true;\n        }\n        for (const m of this.absoluteChildren) {\n            if (m.match(fullpath))\n                return true;\n        }\n        return false;\n    }\n}\nexports.Ignore = Ignore;\n//# sourceMappingURL=ignore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.glob = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.Ignore = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = void 0;\nexports.globStreamSync = globStreamSync;\nexports.globStream = globStream;\nexports.globSync = globSync;\nexports.globIterateSync = globIterateSync;\nexports.globIterate = globIterate;\nconst minimatch_1 = require(\"minimatch\");\nconst glob_js_1 = require(\"./glob.js\");\nconst has_magic_js_1 = require(\"./has-magic.js\");\nvar minimatch_2 = require(\"minimatch\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return minimatch_2.escape; } });\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return minimatch_2.unescape; } });\nvar glob_js_2 = require(\"./glob.js\");\nObject.defineProperty(exports, \"Glob\", { enumerable: true, get: function () { return glob_js_2.Glob; } });\nvar has_magic_js_2 = require(\"./has-magic.js\");\nObject.defineProperty(exports, \"hasMagic\", { enumerable: true, get: function () { return has_magic_js_2.hasMagic; } });\nvar ignore_js_1 = require(\"./ignore.js\");\nObject.defineProperty(exports, \"Ignore\", { enumerable: true, get: function () { return ignore_js_1.Ignore; } });\nfunction globStreamSync(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).streamSync();\n}\nfunction globStream(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).stream();\n}\nfunction globSync(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).walkSync();\n}\nasync function glob_(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).walk();\n}\nfunction globIterateSync(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).iterateSync();\n}\nfunction globIterate(pattern, options = {}) {\n    return new glob_js_1.Glob(pattern, options).iterate();\n}\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexports.streamSync = globStreamSync;\nexports.stream = Object.assign(globStream, { sync: globStreamSync });\nexports.iterateSync = globIterateSync;\nexports.iterate = Object.assign(globIterate, {\n    sync: globIterateSync,\n});\nexports.sync = Object.assign(globSync, {\n    stream: globStreamSync,\n    iterate: globIterateSync,\n});\nexports.glob = Object.assign(glob_, {\n    glob: glob_,\n    globSync,\n    sync: exports.sync,\n    globStream,\n    stream: exports.stream,\n    globStreamSync,\n    streamSync: exports.streamSync,\n    globIterate,\n    iterate: exports.iterate,\n    globIterateSync,\n    iterateSync: exports.iterateSync,\n    Glob: glob_js_1.Glob,\n    hasMagic: has_magic_js_1.hasMagic,\n    escape: minimatch_1.escape,\n    unescape: minimatch_1.unescape,\n});\nexports.glob.glob = exports.glob;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// this is just a very light wrapper around 2 arrays with an offset index\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pattern = void 0;\nconst minimatch_1 = require(\"minimatch\");\nconst isPatternList = (pl) => pl.length >= 1;\nconst isGlobList = (gl) => gl.length >= 1;\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nclass Pattern {\n    #patternList;\n    #globList;\n    #index;\n    length;\n    #platform;\n    #rest;\n    #globString;\n    #isDrive;\n    #isUNC;\n    #isAbsolute;\n    #followGlobstar = true;\n    constructor(patternList, globList, index, platform) {\n        if (!isPatternList(patternList)) {\n            throw new TypeError('empty pattern list');\n        }\n        if (!isGlobList(globList)) {\n            throw new TypeError('empty glob list');\n        }\n        if (globList.length !== patternList.length) {\n            throw new TypeError('mismatched pattern list and glob list lengths');\n        }\n        this.length = patternList.length;\n        if (index < 0 || index >= this.length) {\n            throw new TypeError('index out of range');\n        }\n        this.#patternList = patternList;\n        this.#globList = globList;\n        this.#index = index;\n        this.#platform = platform;\n        // normalize root entries of absolute patterns on initial creation.\n        if (this.#index === 0) {\n            // c: => ['c:/']\n            // C:/ => ['C:/']\n            // C:/x => ['C:/', 'x']\n            // //host/share => ['//host/share/']\n            // //host/share/ => ['//host/share/']\n            // //host/share/x => ['//host/share/', 'x']\n            // /etc => ['/', 'etc']\n            // / => ['/']\n            if (this.isUNC()) {\n                // '' / '' / 'host' / 'share'\n                const [p0, p1, p2, p3, ...prest] = this.#patternList;\n                const [g0, g1, g2, g3, ...grest] = this.#globList;\n                if (prest[0] === '') {\n                    // ends in /\n                    prest.shift();\n                    grest.shift();\n                }\n                const p = [p0, p1, p2, p3, ''].join('/');\n                const g = [g0, g1, g2, g3, ''].join('/');\n                this.#patternList = [p, ...prest];\n                this.#globList = [g, ...grest];\n                this.length = this.#patternList.length;\n            }\n            else if (this.isDrive() || this.isAbsolute()) {\n                const [p1, ...prest] = this.#patternList;\n                const [g1, ...grest] = this.#globList;\n                if (prest[0] === '') {\n                    // ends in /\n                    prest.shift();\n                    grest.shift();\n                }\n                const p = p1 + '/';\n                const g = g1 + '/';\n                this.#patternList = [p, ...prest];\n                this.#globList = [g, ...grest];\n                this.length = this.#patternList.length;\n            }\n        }\n    }\n    /**\n     * The first entry in the parsed list of patterns\n     */\n    pattern() {\n        return this.#patternList[this.#index];\n    }\n    /**\n     * true of if pattern() returns a string\n     */\n    isString() {\n        return typeof this.#patternList[this.#index] === 'string';\n    }\n    /**\n     * true of if pattern() returns GLOBSTAR\n     */\n    isGlobstar() {\n        return this.#patternList[this.#index] === minimatch_1.GLOBSTAR;\n    }\n    /**\n     * true if pattern() returns a regexp\n     */\n    isRegExp() {\n        return this.#patternList[this.#index] instanceof RegExp;\n    }\n    /**\n     * The /-joined set of glob parts that make up this pattern\n     */\n    globString() {\n        return (this.#globString =\n            this.#globString ||\n                (this.#index === 0 ?\n                    this.isAbsolute() ?\n                        this.#globList[0] + this.#globList.slice(1).join('/')\n                        : this.#globList.join('/')\n                    : this.#globList.slice(this.#index).join('/')));\n    }\n    /**\n     * true if there are more pattern parts after this one\n     */\n    hasMore() {\n        return this.length > this.#index + 1;\n    }\n    /**\n     * The rest of the pattern after this part, or null if this is the end\n     */\n    rest() {\n        if (this.#rest !== undefined)\n            return this.#rest;\n        if (!this.hasMore())\n            return (this.#rest = null);\n        this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);\n        this.#rest.#isAbsolute = this.#isAbsolute;\n        this.#rest.#isUNC = this.#isUNC;\n        this.#rest.#isDrive = this.#isDrive;\n        return this.#rest;\n    }\n    /**\n     * true if the pattern represents a //unc/path/ on windows\n     */\n    isUNC() {\n        const pl = this.#patternList;\n        return this.#isUNC !== undefined ?\n            this.#isUNC\n            : (this.#isUNC =\n                this.#platform === 'win32' &&\n                    this.#index === 0 &&\n                    pl[0] === '' &&\n                    pl[1] === '' &&\n                    typeof pl[2] === 'string' &&\n                    !!pl[2] &&\n                    typeof pl[3] === 'string' &&\n                    !!pl[3]);\n    }\n    // pattern like C:/...\n    // split = ['C:', ...]\n    // XXX: would be nice to handle patterns like `c:*` to test the cwd\n    // in c: for *, but I don't know of a way to even figure out what that\n    // cwd is without actually chdir'ing into it?\n    /**\n     * True if the pattern starts with a drive letter on Windows\n     */\n    isDrive() {\n        const pl = this.#patternList;\n        return this.#isDrive !== undefined ?\n            this.#isDrive\n            : (this.#isDrive =\n                this.#platform === 'win32' &&\n                    this.#index === 0 &&\n                    this.length > 1 &&\n                    typeof pl[0] === 'string' &&\n                    /^[a-z]:$/i.test(pl[0]));\n    }\n    // pattern = '/' or '/...' or '/x/...'\n    // split = ['', ''] or ['', ...] or ['', 'x', ...]\n    // Drive and UNC both considered absolute on windows\n    /**\n     * True if the pattern is rooted on an absolute path\n     */\n    isAbsolute() {\n        const pl = this.#patternList;\n        return this.#isAbsolute !== undefined ?\n            this.#isAbsolute\n            : (this.#isAbsolute =\n                (pl[0] === '' && pl.length > 1) ||\n                    this.isDrive() ||\n                    this.isUNC());\n    }\n    /**\n     * consume the root of the pattern, and return it\n     */\n    root() {\n        const p = this.#patternList[0];\n        return (typeof p === 'string' && this.isAbsolute() && this.#index === 0) ?\n            p\n            : '';\n    }\n    /**\n     * Check to see if the current globstar pattern is allowed to follow\n     * a symbolic link.\n     */\n    checkFollowGlobstar() {\n        return !(this.#index === 0 ||\n            !this.isGlobstar() ||\n            !this.#followGlobstar);\n    }\n    /**\n     * Mark that the current globstar pattern is following a symbolic link\n     */\n    markFollowGlobstar() {\n        if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n            return false;\n        this.#followGlobstar = false;\n        return true;\n    }\n}\nexports.Pattern = Pattern;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\n// synchronous utility for filtering entries and calculating subwalks\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = void 0;\nconst minimatch_1 = require(\"minimatch\");\n/**\n * A cache of which patterns have been processed for a given Path\n */\nclass HasWalkedCache {\n    store;\n    constructor(store = new Map()) {\n        this.store = store;\n    }\n    copy() {\n        return new HasWalkedCache(new Map(this.store));\n    }\n    hasWalked(target, pattern) {\n        return this.store.get(target.fullpath())?.has(pattern.globString());\n    }\n    storeWalked(target, pattern) {\n        const fullpath = target.fullpath();\n        const cached = this.store.get(fullpath);\n        if (cached)\n            cached.add(pattern.globString());\n        else\n            this.store.set(fullpath, new Set([pattern.globString()]));\n    }\n}\nexports.HasWalkedCache = HasWalkedCache;\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nclass MatchRecord {\n    store = new Map();\n    add(target, absolute, ifDir) {\n        const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);\n        const current = this.store.get(target);\n        this.store.set(target, current === undefined ? n : n & current);\n    }\n    // match, absolute, ifdir\n    entries() {\n        return [...this.store.entries()].map(([path, n]) => [\n            path,\n            !!(n & 2),\n            !!(n & 1),\n        ]);\n    }\n}\nexports.MatchRecord = MatchRecord;\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nclass SubWalks {\n    store = new Map();\n    add(target, pattern) {\n        if (!target.canReaddir()) {\n            return;\n        }\n        const subs = this.store.get(target);\n        if (subs) {\n            if (!subs.find(p => p.globString() === pattern.globString())) {\n                subs.push(pattern);\n            }\n        }\n        else\n            this.store.set(target, [pattern]);\n    }\n    get(target) {\n        const subs = this.store.get(target);\n        /* c8 ignore start */\n        if (!subs) {\n            throw new Error('attempting to walk unknown path');\n        }\n        /* c8 ignore stop */\n        return subs;\n    }\n    entries() {\n        return this.keys().map(k => [k, this.store.get(k)]);\n    }\n    keys() {\n        return [...this.store.keys()].filter(t => t.canReaddir());\n    }\n}\nexports.SubWalks = SubWalks;\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nclass Processor {\n    hasWalkedCache;\n    matches = new MatchRecord();\n    subwalks = new SubWalks();\n    patterns;\n    follow;\n    dot;\n    opts;\n    constructor(opts, hasWalkedCache) {\n        this.opts = opts;\n        this.follow = !!opts.follow;\n        this.dot = !!opts.dot;\n        this.hasWalkedCache =\n            hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();\n    }\n    processPatterns(target, patterns) {\n        this.patterns = patterns;\n        const processingSet = patterns.map(p => [target, p]);\n        // map of paths to the magic-starting subwalks they need to walk\n        // first item in patterns is the filter\n        for (let [t, pattern] of processingSet) {\n            this.hasWalkedCache.storeWalked(t, pattern);\n            const root = pattern.root();\n            const absolute = pattern.isAbsolute() && this.opts.absolute !== false;\n            // start absolute patterns at root\n            if (root) {\n                t = t.resolve(root === '/' && this.opts.root !== undefined ?\n                    this.opts.root\n                    : root);\n                const rest = pattern.rest();\n                if (!rest) {\n                    this.matches.add(t, true, false);\n                    continue;\n                }\n                else {\n                    pattern = rest;\n                }\n            }\n            if (t.isENOENT())\n                continue;\n            let p;\n            let rest;\n            let changed = false;\n            while (typeof (p = pattern.pattern()) === 'string' &&\n                (rest = pattern.rest())) {\n                const c = t.resolve(p);\n                t = c;\n                pattern = rest;\n                changed = true;\n            }\n            p = pattern.pattern();\n            rest = pattern.rest();\n            if (changed) {\n                if (this.hasWalkedCache.hasWalked(t, pattern))\n                    continue;\n                this.hasWalkedCache.storeWalked(t, pattern);\n            }\n            // now we have either a final string for a known entry,\n            // more strings for an unknown entry,\n            // or a pattern starting with magic, mounted on t.\n            if (typeof p === 'string') {\n                // must not be final entry, otherwise we would have\n                // concatenated it earlier.\n                const ifDir = p === '..' || p === '' || p === '.';\n                this.matches.add(t.resolve(p), absolute, ifDir);\n                continue;\n            }\n            else if (p === minimatch_1.GLOBSTAR) {\n                // if no rest, match and subwalk pattern\n                // if rest, process rest and subwalk pattern\n                // if it's a symlink, but we didn't get here by way of a\n                // globstar match (meaning it's the first time THIS globstar\n                // has traversed a symlink), then we follow it. Otherwise, stop.\n                if (!t.isSymbolicLink() ||\n                    this.follow ||\n                    pattern.checkFollowGlobstar()) {\n                    this.subwalks.add(t, pattern);\n                }\n                const rp = rest?.pattern();\n                const rrest = rest?.rest();\n                if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n                    // only HAS to be a dir if it ends in **/ or **/.\n                    // but ending in ** will match files as well.\n                    this.matches.add(t, absolute, rp === '' || rp === '.');\n                }\n                else {\n                    if (rp === '..') {\n                        // this would mean you're matching **/.. at the fs root,\n                        // and no thanks, I'm not gonna test that specific case.\n                        /* c8 ignore start */\n                        const tp = t.parent || t;\n                        /* c8 ignore stop */\n                        if (!rrest)\n                            this.matches.add(tp, absolute, true);\n                        else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n                            this.subwalks.add(tp, rrest);\n                        }\n                    }\n                }\n            }\n            else if (p instanceof RegExp) {\n                this.subwalks.add(t, pattern);\n            }\n        }\n        return this;\n    }\n    subwalkTargets() {\n        return this.subwalks.keys();\n    }\n    child() {\n        return new Processor(this.opts, this.hasWalkedCache);\n    }\n    // return a new Processor containing the subwalks for each\n    // child entry, and a set of matches, and\n    // a hasWalkedCache that's a copy of this one\n    // then we're going to call\n    filterEntries(parent, entries) {\n        const patterns = this.subwalks.get(parent);\n        // put matches and entry walks into the results processor\n        const results = this.child();\n        for (const e of entries) {\n            for (const pattern of patterns) {\n                const absolute = pattern.isAbsolute();\n                const p = pattern.pattern();\n                const rest = pattern.rest();\n                if (p === minimatch_1.GLOBSTAR) {\n                    results.testGlobstar(e, pattern, rest, absolute);\n                }\n                else if (p instanceof RegExp) {\n                    results.testRegExp(e, p, rest, absolute);\n                }\n                else {\n                    results.testString(e, p, rest, absolute);\n                }\n            }\n        }\n        return results;\n    }\n    testGlobstar(e, pattern, rest, absolute) {\n        if (this.dot || !e.name.startsWith('.')) {\n            if (!pattern.hasMore()) {\n                this.matches.add(e, absolute, false);\n            }\n            if (e.canReaddir()) {\n                // if we're in follow mode or it's not a symlink, just keep\n                // testing the same pattern. If there's more after the globstar,\n                // then this symlink consumes the globstar. If not, then we can\n                // follow at most ONE symlink along the way, so we mark it, which\n                // also checks to ensure that it wasn't already marked.\n                if (this.follow || !e.isSymbolicLink()) {\n                    this.subwalks.add(e, pattern);\n                }\n                else if (e.isSymbolicLink()) {\n                    if (rest && pattern.checkFollowGlobstar()) {\n                        this.subwalks.add(e, rest);\n                    }\n                    else if (pattern.markFollowGlobstar()) {\n                        this.subwalks.add(e, pattern);\n                    }\n                }\n            }\n        }\n        // if the NEXT thing matches this entry, then also add\n        // the rest.\n        if (rest) {\n            const rp = rest.pattern();\n            if (typeof rp === 'string' &&\n                // dots and empty were handled already\n                rp !== '..' &&\n                rp !== '' &&\n                rp !== '.') {\n                this.testString(e, rp, rest.rest(), absolute);\n            }\n            else if (rp === '..') {\n                /* c8 ignore start */\n                const ep = e.parent || e;\n                /* c8 ignore stop */\n                this.subwalks.add(ep, rest);\n            }\n            else if (rp instanceof RegExp) {\n                this.testRegExp(e, rp, rest.rest(), absolute);\n            }\n        }\n    }\n    testRegExp(e, p, rest, absolute) {\n        if (!p.test(e.name))\n            return;\n        if (!rest) {\n            this.matches.add(e, absolute, false);\n        }\n        else {\n            this.subwalks.add(e, rest);\n        }\n    }\n    testString(e, p, rest, absolute) {\n        // should never happen?\n        if (!e.isNamed(p))\n            return;\n        if (!rest) {\n            this.matches.add(e, absolute, false);\n        }\n        else {\n            this.subwalks.add(e, rest);\n        }\n    }\n}\nexports.Processor = Processor;\n//# sourceMappingURL=processor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobStream = exports.GlobWalker = exports.GlobUtil = void 0;\n/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nconst minipass_1 = require(\"minipass\");\nconst ignore_js_1 = require(\"./ignore.js\");\nconst processor_js_1 = require(\"./processor.js\");\nconst makeIgnore = (ignore, opts) => typeof ignore === 'string' ? new ignore_js_1.Ignore([ignore], opts)\n    : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts)\n        : ignore;\n/**\n * basic walking utilities that all the glob walker types use\n */\nclass GlobUtil {\n    path;\n    patterns;\n    opts;\n    seen = new Set();\n    paused = false;\n    aborted = false;\n    #onResume = [];\n    #ignore;\n    #sep;\n    signal;\n    maxDepth;\n    includeChildMatches;\n    constructor(patterns, path, opts) {\n        this.patterns = patterns;\n        this.path = path;\n        this.opts = opts;\n        this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/';\n        this.includeChildMatches = opts.includeChildMatches !== false;\n        if (opts.ignore || !this.includeChildMatches) {\n            this.#ignore = makeIgnore(opts.ignore ?? [], opts);\n            if (!this.includeChildMatches &&\n                typeof this.#ignore.add !== 'function') {\n                const m = 'cannot ignore child matches, ignore lacks add() method.';\n                throw new Error(m);\n            }\n        }\n        // ignore, always set with maxDepth, but it's optional on the\n        // GlobOptions type\n        /* c8 ignore start */\n        this.maxDepth = opts.maxDepth || Infinity;\n        /* c8 ignore stop */\n        if (opts.signal) {\n            this.signal = opts.signal;\n            this.signal.addEventListener('abort', () => {\n                this.#onResume.length = 0;\n            });\n        }\n    }\n    #ignored(path) {\n        return this.seen.has(path) || !!this.#ignore?.ignored?.(path);\n    }\n    #childrenIgnored(path) {\n        return !!this.#ignore?.childrenIgnored?.(path);\n    }\n    // backpressure mechanism\n    pause() {\n        this.paused = true;\n    }\n    resume() {\n        /* c8 ignore start */\n        if (this.signal?.aborted)\n            return;\n        /* c8 ignore stop */\n        this.paused = false;\n        let fn = undefined;\n        while (!this.paused && (fn = this.#onResume.shift())) {\n            fn();\n        }\n    }\n    onResume(fn) {\n        if (this.signal?.aborted)\n            return;\n        /* c8 ignore start */\n        if (!this.paused) {\n            fn();\n        }\n        else {\n            /* c8 ignore stop */\n            this.#onResume.push(fn);\n        }\n    }\n    // do the requisite realpath/stat checking, and return the path\n    // to add or undefined to filter it out.\n    async matchCheck(e, ifDir) {\n        if (ifDir && this.opts.nodir)\n            return undefined;\n        let rpc;\n        if (this.opts.realpath) {\n            rpc = e.realpathCached() || (await e.realpath());\n            if (!rpc)\n                return undefined;\n            e = rpc;\n        }\n        const needStat = e.isUnknown() || this.opts.stat;\n        const s = needStat ? await e.lstat() : e;\n        if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n            const target = await s.realpath();\n            /* c8 ignore start */\n            if (target && (target.isUnknown() || this.opts.stat)) {\n                await target.lstat();\n            }\n            /* c8 ignore stop */\n        }\n        return this.matchCheckTest(s, ifDir);\n    }\n    matchCheckTest(e, ifDir) {\n        return (e &&\n            (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n            (!ifDir || e.canReaddir()) &&\n            (!this.opts.nodir || !e.isDirectory()) &&\n            (!this.opts.nodir ||\n                !this.opts.follow ||\n                !e.isSymbolicLink() ||\n                !e.realpathCached()?.isDirectory()) &&\n            !this.#ignored(e)) ?\n            e\n            : undefined;\n    }\n    matchCheckSync(e, ifDir) {\n        if (ifDir && this.opts.nodir)\n            return undefined;\n        let rpc;\n        if (this.opts.realpath) {\n            rpc = e.realpathCached() || e.realpathSync();\n            if (!rpc)\n                return undefined;\n            e = rpc;\n        }\n        const needStat = e.isUnknown() || this.opts.stat;\n        const s = needStat ? e.lstatSync() : e;\n        if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {\n            const target = s.realpathSync();\n            if (target && (target?.isUnknown() || this.opts.stat)) {\n                target.lstatSync();\n            }\n        }\n        return this.matchCheckTest(s, ifDir);\n    }\n    matchFinish(e, absolute) {\n        if (this.#ignored(e))\n            return;\n        // we know we have an ignore if this is false, but TS doesn't\n        if (!this.includeChildMatches && this.#ignore?.add) {\n            const ign = `${e.relativePosix()}/**`;\n            this.#ignore.add(ign);\n        }\n        const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute;\n        this.seen.add(e);\n        const mark = this.opts.mark && e.isDirectory() ? this.#sep : '';\n        // ok, we have what we need!\n        if (this.opts.withFileTypes) {\n            this.matchEmit(e);\n        }\n        else if (abs) {\n            const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath();\n            this.matchEmit(abs + mark);\n        }\n        else {\n            const rel = this.opts.posix ? e.relativePosix() : e.relative();\n            const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ?\n                '.' + this.#sep\n                : '';\n            this.matchEmit(!rel ? '.' + mark : pre + rel + mark);\n        }\n    }\n    async match(e, absolute, ifDir) {\n        const p = await this.matchCheck(e, ifDir);\n        if (p)\n            this.matchFinish(p, absolute);\n    }\n    matchSync(e, absolute, ifDir) {\n        const p = this.matchCheckSync(e, ifDir);\n        if (p)\n            this.matchFinish(p, absolute);\n    }\n    walkCB(target, patterns, cb) {\n        /* c8 ignore start */\n        if (this.signal?.aborted)\n            cb();\n        /* c8 ignore stop */\n        this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb);\n    }\n    walkCB2(target, patterns, processor, cb) {\n        if (this.#childrenIgnored(target))\n            return cb();\n        if (this.signal?.aborted)\n            cb();\n        if (this.paused) {\n            this.onResume(() => this.walkCB2(target, patterns, processor, cb));\n            return;\n        }\n        processor.processPatterns(target, patterns);\n        // done processing.  all of the above is sync, can be abstracted out.\n        // subwalks is a map of paths to the entry filters they need\n        // matches is a map of paths to [absolute, ifDir] tuples.\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            tasks++;\n            this.match(m, absolute, ifDir).then(() => next());\n        }\n        for (const t of processor.subwalkTargets()) {\n            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n                continue;\n            }\n            tasks++;\n            const childrenCached = t.readdirCached();\n            if (t.calledReaddir())\n                this.walkCB3(t, childrenCached, processor, next);\n            else {\n                t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);\n            }\n        }\n        next();\n    }\n    walkCB3(target, entries, processor, cb) {\n        processor = processor.filterEntries(target, entries);\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            tasks++;\n            this.match(m, absolute, ifDir).then(() => next());\n        }\n        for (const [target, patterns] of processor.subwalks.entries()) {\n            tasks++;\n            this.walkCB2(target, patterns, processor.child(), next);\n        }\n        next();\n    }\n    walkCBSync(target, patterns, cb) {\n        /* c8 ignore start */\n        if (this.signal?.aborted)\n            cb();\n        /* c8 ignore stop */\n        this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb);\n    }\n    walkCB2Sync(target, patterns, processor, cb) {\n        if (this.#childrenIgnored(target))\n            return cb();\n        if (this.signal?.aborted)\n            cb();\n        if (this.paused) {\n            this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));\n            return;\n        }\n        processor.processPatterns(target, patterns);\n        // done processing.  all of the above is sync, can be abstracted out.\n        // subwalks is a map of paths to the entry filters they need\n        // matches is a map of paths to [absolute, ifDir] tuples.\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            this.matchSync(m, absolute, ifDir);\n        }\n        for (const t of processor.subwalkTargets()) {\n            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n                continue;\n            }\n            tasks++;\n            const children = t.readdirSync();\n            this.walkCB3Sync(t, children, processor, next);\n        }\n        next();\n    }\n    walkCB3Sync(target, entries, processor, cb) {\n        processor = processor.filterEntries(target, entries);\n        let tasks = 1;\n        const next = () => {\n            if (--tasks === 0)\n                cb();\n        };\n        for (const [m, absolute, ifDir] of processor.matches.entries()) {\n            if (this.#ignored(m))\n                continue;\n            this.matchSync(m, absolute, ifDir);\n        }\n        for (const [target, patterns] of processor.subwalks.entries()) {\n            tasks++;\n            this.walkCB2Sync(target, patterns, processor.child(), next);\n        }\n        next();\n    }\n}\nexports.GlobUtil = GlobUtil;\nclass GlobWalker extends GlobUtil {\n    matches = new Set();\n    constructor(patterns, path, opts) {\n        super(patterns, path, opts);\n    }\n    matchEmit(e) {\n        this.matches.add(e);\n    }\n    async walk() {\n        if (this.signal?.aborted)\n            throw this.signal.reason;\n        if (this.path.isUnknown()) {\n            await this.path.lstat();\n        }\n        await new Promise((res, rej) => {\n            this.walkCB(this.path, this.patterns, () => {\n                if (this.signal?.aborted) {\n                    rej(this.signal.reason);\n                }\n                else {\n                    res(this.matches);\n                }\n            });\n        });\n        return this.matches;\n    }\n    walkSync() {\n        if (this.signal?.aborted)\n            throw this.signal.reason;\n        if (this.path.isUnknown()) {\n            this.path.lstatSync();\n        }\n        // nothing for the callback to do, because this never pauses\n        this.walkCBSync(this.path, this.patterns, () => {\n            if (this.signal?.aborted)\n                throw this.signal.reason;\n        });\n        return this.matches;\n    }\n}\nexports.GlobWalker = GlobWalker;\nclass GlobStream extends GlobUtil {\n    results;\n    constructor(patterns, path, opts) {\n        super(patterns, path, opts);\n        this.results = new minipass_1.Minipass({\n            signal: this.signal,\n            objectMode: true,\n        });\n        this.results.on('drain', () => this.resume());\n        this.results.on('resume', () => this.resume());\n    }\n    matchEmit(e) {\n        this.results.write(e);\n        if (!this.results.flowing)\n            this.pause();\n    }\n    stream() {\n        const target = this.path;\n        if (target.isUnknown()) {\n            target.lstat().then(() => {\n                this.walkCB(target, this.patterns, () => this.results.end());\n            });\n        }\n        else {\n            this.walkCB(target, this.patterns, () => this.results.end());\n        }\n        return this.results;\n    }\n    streamSync() {\n        if (this.path.isUnknown()) {\n            this.path.lstatSync();\n        }\n        this.walkCBSync(this.path, this.patterns, () => this.results.end());\n        return this.results;\n    }\n}\nexports.GlobStream = GlobStream;\n//# sourceMappingURL=walker.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertValidPattern = void 0;\nconst MAX_PATTERN_LENGTH = 1024 * 64;\nconst assertValidPattern = (pattern) => {\n    if (typeof pattern !== 'string') {\n        throw new TypeError('invalid pattern');\n    }\n    if (pattern.length > MAX_PATTERN_LENGTH) {\n        throw new TypeError('pattern is too long');\n    }\n};\nexports.assertValidPattern = assertValidPattern;\n//# sourceMappingURL=assert-valid-pattern.js.map","\"use strict\";\n// parse a single path portion\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AST = void 0;\nconst brace_expressions_js_1 = require(\"./brace-expressions.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nclass AST {\n    type;\n    #root;\n    #hasMagic;\n    #uflag = false;\n    #parts = [];\n    #parent;\n    #parentIndex;\n    #negs;\n    #filledNegs = false;\n    #options;\n    #toString;\n    // set to true if it's an extglob with no children\n    // (which really means one child of '')\n    #emptyExt = false;\n    constructor(type, parent, options = {}) {\n        this.type = type;\n        // extglobs are inherently magical\n        if (type)\n            this.#hasMagic = true;\n        this.#parent = parent;\n        this.#root = this.#parent ? this.#parent.#root : this;\n        this.#options = this.#root === this ? options : this.#root.#options;\n        this.#negs = this.#root === this ? [] : this.#root.#negs;\n        if (type === '!' && !this.#root.#filledNegs)\n            this.#negs.push(this);\n        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n    }\n    get hasMagic() {\n        /* c8 ignore start */\n        if (this.#hasMagic !== undefined)\n            return this.#hasMagic;\n        /* c8 ignore stop */\n        for (const p of this.#parts) {\n            if (typeof p === 'string')\n                continue;\n            if (p.type || p.hasMagic)\n                return (this.#hasMagic = true);\n        }\n        // note: will be undefined until we generate the regexp src and find out\n        return this.#hasMagic;\n    }\n    // reconstructs the pattern\n    toString() {\n        if (this.#toString !== undefined)\n            return this.#toString;\n        if (!this.type) {\n            return (this.#toString = this.#parts.map(p => String(p)).join(''));\n        }\n        else {\n            return (this.#toString =\n                this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n        }\n    }\n    #fillNegs() {\n        /* c8 ignore start */\n        if (this !== this.#root)\n            throw new Error('should only call on root');\n        if (this.#filledNegs)\n            return this;\n        /* c8 ignore stop */\n        // call toString() once to fill this out\n        this.toString();\n        this.#filledNegs = true;\n        let n;\n        while ((n = this.#negs.pop())) {\n            if (n.type !== '!')\n                continue;\n            // walk up the tree, appending everthing that comes AFTER parentIndex\n            let p = n;\n            let pp = p.#parent;\n            while (pp) {\n                for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n                    for (const part of n.#parts) {\n                        /* c8 ignore start */\n                        if (typeof part === 'string') {\n                            throw new Error('string part in extglob AST??');\n                        }\n                        /* c8 ignore stop */\n                        part.copyIn(pp.#parts[i]);\n                    }\n                }\n                p = pp;\n                pp = p.#parent;\n            }\n        }\n        return this;\n    }\n    push(...parts) {\n        for (const p of parts) {\n            if (p === '')\n                continue;\n            /* c8 ignore start */\n            if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n                throw new Error('invalid part: ' + p);\n            }\n            /* c8 ignore stop */\n            this.#parts.push(p);\n        }\n    }\n    toJSON() {\n        const ret = this.type === null\n            ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n            : [this.type, ...this.#parts.map(p => p.toJSON())];\n        if (this.isStart() && !this.type)\n            ret.unshift([]);\n        if (this.isEnd() &&\n            (this === this.#root ||\n                (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n            ret.push({});\n        }\n        return ret;\n    }\n    isStart() {\n        if (this.#root === this)\n            return true;\n        // if (this.type) return !!this.#parent?.isStart()\n        if (!this.#parent?.isStart())\n            return false;\n        if (this.#parentIndex === 0)\n            return true;\n        // if everything AHEAD of this is a negation, then it's still the \"start\"\n        const p = this.#parent;\n        for (let i = 0; i < this.#parentIndex; i++) {\n            const pp = p.#parts[i];\n            if (!(pp instanceof AST && pp.type === '!')) {\n                return false;\n            }\n        }\n        return true;\n    }\n    isEnd() {\n        if (this.#root === this)\n            return true;\n        if (this.#parent?.type === '!')\n            return true;\n        if (!this.#parent?.isEnd())\n            return false;\n        if (!this.type)\n            return this.#parent?.isEnd();\n        // if not root, it'll always have a parent\n        /* c8 ignore start */\n        const pl = this.#parent ? this.#parent.#parts.length : 0;\n        /* c8 ignore stop */\n        return this.#parentIndex === pl - 1;\n    }\n    copyIn(part) {\n        if (typeof part === 'string')\n            this.push(part);\n        else\n            this.push(part.clone(this));\n    }\n    clone(parent) {\n        const c = new AST(this.type, parent);\n        for (const p of this.#parts) {\n            c.copyIn(p);\n        }\n        return c;\n    }\n    static #parseAST(str, ast, pos, opt) {\n        let escaping = false;\n        let inBrace = false;\n        let braceStart = -1;\n        let braceNeg = false;\n        if (ast.type === null) {\n            // outside of a extglob, append until we find a start\n            let i = pos;\n            let acc = '';\n            while (i < str.length) {\n                const c = str.charAt(i++);\n                // still accumulate escapes at this point, but we do ignore\n                // starts that are escaped\n                if (escaping || c === '\\\\') {\n                    escaping = !escaping;\n                    acc += c;\n                    continue;\n                }\n                if (inBrace) {\n                    if (i === braceStart + 1) {\n                        if (c === '^' || c === '!') {\n                            braceNeg = true;\n                        }\n                    }\n                    else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                        inBrace = false;\n                    }\n                    acc += c;\n                    continue;\n                }\n                else if (c === '[') {\n                    inBrace = true;\n                    braceStart = i;\n                    braceNeg = false;\n                    acc += c;\n                    continue;\n                }\n                if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n                    ast.push(acc);\n                    acc = '';\n                    const ext = new AST(c, ast);\n                    i = AST.#parseAST(str, ext, i, opt);\n                    ast.push(ext);\n                    continue;\n                }\n                acc += c;\n            }\n            ast.push(acc);\n            return i;\n        }\n        // some kind of extglob, pos is at the (\n        // find the next | or )\n        let i = pos + 1;\n        let part = new AST(null, ast);\n        const parts = [];\n        let acc = '';\n        while (i < str.length) {\n            const c = str.charAt(i++);\n            // still accumulate escapes at this point, but we do ignore\n            // starts that are escaped\n            if (escaping || c === '\\\\') {\n                escaping = !escaping;\n                acc += c;\n                continue;\n            }\n            if (inBrace) {\n                if (i === braceStart + 1) {\n                    if (c === '^' || c === '!') {\n                        braceNeg = true;\n                    }\n                }\n                else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                    inBrace = false;\n                }\n                acc += c;\n                continue;\n            }\n            else if (c === '[') {\n                inBrace = true;\n                braceStart = i;\n                braceNeg = false;\n                acc += c;\n                continue;\n            }\n            if (isExtglobType(c) && str.charAt(i) === '(') {\n                part.push(acc);\n                acc = '';\n                const ext = new AST(c, part);\n                part.push(ext);\n                i = AST.#parseAST(str, ext, i, opt);\n                continue;\n            }\n            if (c === '|') {\n                part.push(acc);\n                acc = '';\n                parts.push(part);\n                part = new AST(null, ast);\n                continue;\n            }\n            if (c === ')') {\n                if (acc === '' && ast.#parts.length === 0) {\n                    ast.#emptyExt = true;\n                }\n                part.push(acc);\n                acc = '';\n                ast.push(...parts, part);\n                return i;\n            }\n            acc += c;\n        }\n        // unfinished extglob\n        // if we got here, it was a malformed extglob! not an extglob, but\n        // maybe something else in there.\n        ast.type = null;\n        ast.#hasMagic = undefined;\n        ast.#parts = [str.substring(pos - 1)];\n        return i;\n    }\n    static fromGlob(pattern, options = {}) {\n        const ast = new AST(null, undefined, options);\n        AST.#parseAST(pattern, ast, 0, options);\n        return ast;\n    }\n    // returns the regular expression if there's magic, or the unescaped\n    // string if not.\n    toMMPattern() {\n        // should only be called on root\n        /* c8 ignore start */\n        if (this !== this.#root)\n            return this.#root.toMMPattern();\n        /* c8 ignore stop */\n        const glob = this.toString();\n        const [re, body, hasMagic, uflag] = this.toRegExpSource();\n        // if we're in nocase mode, and not nocaseMagicOnly, then we do\n        // still need a regular expression if we have to case-insensitively\n        // match capital/lowercase characters.\n        const anyMagic = hasMagic ||\n            this.#hasMagic ||\n            (this.#options.nocase &&\n                !this.#options.nocaseMagicOnly &&\n                glob.toUpperCase() !== glob.toLowerCase());\n        if (!anyMagic) {\n            return body;\n        }\n        const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n        return Object.assign(new RegExp(`^${re}$`, flags), {\n            _src: re,\n            _glob: glob,\n        });\n    }\n    get options() {\n        return this.#options;\n    }\n    // returns the string match, the regexp source, whether there's magic\n    // in the regexp (so a regular expression is required) and whether or\n    // not the uflag is needed for the regular expression (for posix classes)\n    // TODO: instead of injecting the start/end at this point, just return\n    // the BODY of the regexp, along with the start/end portions suitable\n    // for binding the start/end in either a joined full-path makeRe context\n    // (where we bind to (^|/), or a standalone matchPart context (where\n    // we bind to ^, and not /).  Otherwise slashes get duped!\n    //\n    // In part-matching mode, the start is:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n    // - if dots allowed or not possible: ^\n    // - if dots possible and not allowed: ^(?!\\.)\n    // end is:\n    // - if not isEnd(): nothing\n    // - else: $\n    //\n    // In full-path matching mode, we put the slash at the START of the\n    // pattern, so start is:\n    // - if first pattern: same as part-matching mode\n    // - if not isStart(): nothing\n    // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n    // - if dots allowed or not possible: /\n    // - if dots possible and not allowed: /(?!\\.)\n    // end is:\n    // - if last pattern, same as part-matching mode\n    // - else nothing\n    //\n    // Always put the (?:$|/) on negated tails, though, because that has to be\n    // there to bind the end of the negated pattern portion, and it's easier to\n    // just stick it in now rather than try to inject it later in the middle of\n    // the pattern.\n    //\n    // We can just always return the same end, and leave it up to the caller\n    // to know whether it's going to be used joined or in parts.\n    // And, if the start is adjusted slightly, can do the same there:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n    // - if dots allowed or not possible: (?:/|^)\n    // - if dots possible and not allowed: (?:/|^)(?!\\.)\n    //\n    // But it's better to have a simpler binding without a conditional, for\n    // performance, so probably better to return both start options.\n    //\n    // Then the caller just ignores the end if it's not the first pattern,\n    // and the start always gets applied.\n    //\n    // But that's always going to be $ if it's the ending pattern, or nothing,\n    // so the caller can just attach $ at the end of the pattern when building.\n    //\n    // So the todo is:\n    // - better detect what kind of start is needed\n    // - return both flavors of starting pattern\n    // - attach $ at the end of the pattern when creating the actual RegExp\n    //\n    // Ah, but wait, no, that all only applies to the root when the first pattern\n    // is not an extglob. If the first pattern IS an extglob, then we need all\n    // that dot prevention biz to live in the extglob portions, because eg\n    // +(*|.x*) can match .xy but not .yx.\n    //\n    // So, return the two flavors if it's #root and the first child is not an\n    // AST, otherwise leave it to the child AST to handle it, and there,\n    // use the (?:^|/) style of start binding.\n    //\n    // Even simplified further:\n    // - Since the start for a join is eg /(?!\\.) and the start for a part\n    // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n    // or start or whatever) and prepend ^ or / at the Regexp construction.\n    toRegExpSource(allowDot) {\n        const dot = allowDot ?? !!this.#options.dot;\n        if (this.#root === this)\n            this.#fillNegs();\n        if (!this.type) {\n            const noEmpty = this.isStart() && this.isEnd();\n            const src = this.#parts\n                .map(p => {\n                const [re, _, hasMagic, uflag] = typeof p === 'string'\n                    ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n                    : p.toRegExpSource(allowDot);\n                this.#hasMagic = this.#hasMagic || hasMagic;\n                this.#uflag = this.#uflag || uflag;\n                return re;\n            })\n                .join('');\n            let start = '';\n            if (this.isStart()) {\n                if (typeof this.#parts[0] === 'string') {\n                    // this is the string that will match the start of the pattern,\n                    // so we need to protect against dots and such.\n                    // '.' and '..' cannot match unless the pattern is that exactly,\n                    // even if it starts with . or dot:true is set.\n                    const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n                    if (!dotTravAllowed) {\n                        const aps = addPatternStart;\n                        // check if we have a possibility of matching . or ..,\n                        // and prevent that.\n                        const needNoTrav = \n                        // dots are allowed, and the pattern starts with [ or .\n                        (dot && aps.has(src.charAt(0))) ||\n                            // the pattern starts with \\., and then [ or .\n                            (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n                            // the pattern starts with \\.\\., and then [ or .\n                            (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n                        // no need to prevent dots if it can't match a dot, or if a\n                        // sub-pattern will be preventing it anyway.\n                        const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n                        start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n                    }\n                }\n            }\n            // append the \"end of path portion\" pattern to negation tails\n            let end = '';\n            if (this.isEnd() &&\n                this.#root.#filledNegs &&\n                this.#parent?.type === '!') {\n                end = '(?:$|\\\\/)';\n            }\n            const final = start + src + end;\n            return [\n                final,\n                (0, unescape_js_1.unescape)(src),\n                (this.#hasMagic = !!this.#hasMagic),\n                this.#uflag,\n            ];\n        }\n        // We need to calculate the body *twice* if it's a repeat pattern\n        // at the start, once in nodot mode, then again in dot mode, so a\n        // pattern like *(?) can match 'x.y'\n        const repeated = this.type === '*' || this.type === '+';\n        // some kind of extglob\n        const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n        let body = this.#partsToRegExp(dot);\n        if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n            // invalid extglob, has to at least be *something* present, if it's\n            // the entire path portion.\n            const s = this.toString();\n            this.#parts = [s];\n            this.type = null;\n            this.#hasMagic = undefined;\n            return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];\n        }\n        // XXX abstract out this map method\n        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n            ? ''\n            : this.#partsToRegExp(true);\n        if (bodyDotAllowed === body) {\n            bodyDotAllowed = '';\n        }\n        if (bodyDotAllowed) {\n            body = `(?:${body})(?:${bodyDotAllowed})*?`;\n        }\n        // an empty !() is exactly equivalent to a starNoEmpty\n        let final = '';\n        if (this.type === '!' && this.#emptyExt) {\n            final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n        }\n        else {\n            const close = this.type === '!'\n                ? // !() must match something,but !(x) can match ''\n                    '))' +\n                        (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n                        star +\n                        ')'\n                : this.type === '@'\n                    ? ')'\n                    : this.type === '?'\n                        ? ')?'\n                        : this.type === '+' && bodyDotAllowed\n                            ? ')'\n                            : this.type === '*' && bodyDotAllowed\n                                ? `)?`\n                                : `)${this.type}`;\n            final = start + body + close;\n        }\n        return [\n            final,\n            (0, unescape_js_1.unescape)(body),\n            (this.#hasMagic = !!this.#hasMagic),\n            this.#uflag,\n        ];\n    }\n    #partsToRegExp(dot) {\n        return this.#parts\n            .map(p => {\n            // extglob ASTs should only contain parent ASTs\n            /* c8 ignore start */\n            if (typeof p === 'string') {\n                throw new Error('string type in extglob ast??');\n            }\n            /* c8 ignore stop */\n            // can ignore hasMagic, because extglobs are already always magic\n            const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n            this.#uflag = this.#uflag || uflag;\n            return re;\n        })\n            .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n            .join('|');\n    }\n    static #parseGlob(glob, hasMagic, noEmpty = false) {\n        let escaping = false;\n        let re = '';\n        let uflag = false;\n        for (let i = 0; i < glob.length; i++) {\n            const c = glob.charAt(i);\n            if (escaping) {\n                escaping = false;\n                re += (reSpecials.has(c) ? '\\\\' : '') + c;\n                continue;\n            }\n            if (c === '\\\\') {\n                if (i === glob.length - 1) {\n                    re += '\\\\\\\\';\n                }\n                else {\n                    escaping = true;\n                }\n                continue;\n            }\n            if (c === '[') {\n                const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i);\n                if (consumed) {\n                    re += src;\n                    uflag = uflag || needUflag;\n                    i += consumed - 1;\n                    hasMagic = hasMagic || magic;\n                    continue;\n                }\n            }\n            if (c === '*') {\n                if (noEmpty && glob === '*')\n                    re += starNoEmpty;\n                else\n                    re += star;\n                hasMagic = true;\n                continue;\n            }\n            if (c === '?') {\n                re += qmark;\n                hasMagic = true;\n                continue;\n            }\n            re += regExpEscape(c);\n        }\n        return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];\n    }\n}\nexports.AST = AST;\n//# sourceMappingURL=ast.js.map","\"use strict\";\n// translate the various posix character classes into unicode properties\n// this works across all unicode locales\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseClass = void 0;\n// { : [, /u flag required, negated]\nconst posixClasses = {\n    '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n    '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n    '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n    '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n    '[:cntrl:]': ['\\\\p{Cc}', true],\n    '[:digit:]': ['\\\\p{Nd}', true],\n    '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n    '[:lower:]': ['\\\\p{Ll}', true],\n    '[:print:]': ['\\\\p{C}', true],\n    '[:punct:]': ['\\\\p{P}', true],\n    '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n    '[:upper:]': ['\\\\p{Lu}', true],\n    '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n    '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nconst parseClass = (glob, position) => {\n    const pos = position;\n    /* c8 ignore start */\n    if (glob.charAt(pos) !== '[') {\n        throw new Error('not in a brace expression');\n    }\n    /* c8 ignore stop */\n    const ranges = [];\n    const negs = [];\n    let i = pos + 1;\n    let sawStart = false;\n    let uflag = false;\n    let escaping = false;\n    let negate = false;\n    let endPos = pos;\n    let rangeStart = '';\n    WHILE: while (i < glob.length) {\n        const c = glob.charAt(i);\n        if ((c === '!' || c === '^') && i === pos + 1) {\n            negate = true;\n            i++;\n            continue;\n        }\n        if (c === ']' && sawStart && !escaping) {\n            endPos = i + 1;\n            break;\n        }\n        sawStart = true;\n        if (c === '\\\\') {\n            if (!escaping) {\n                escaping = true;\n                i++;\n                continue;\n            }\n            // escaped \\ char, fall through and treat like normal char\n        }\n        if (c === '[' && !escaping) {\n            // either a posix class, a collation equivalent, or just a [\n            for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n                if (glob.startsWith(cls, i)) {\n                    // invalid, [a-[] is fine, but not [a-[:alpha]]\n                    if (rangeStart) {\n                        return ['$.', false, glob.length - pos, true];\n                    }\n                    i += cls.length;\n                    if (neg)\n                        negs.push(unip);\n                    else\n                        ranges.push(unip);\n                    uflag = uflag || u;\n                    continue WHILE;\n                }\n            }\n        }\n        // now it's just a normal character, effectively\n        escaping = false;\n        if (rangeStart) {\n            // throw this range away if it's not valid, but others\n            // can still match.\n            if (c > rangeStart) {\n                ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n            }\n            else if (c === rangeStart) {\n                ranges.push(braceEscape(c));\n            }\n            rangeStart = '';\n            i++;\n            continue;\n        }\n        // now might be the start of a range.\n        // can be either c-d or c-] or c] or c] at this point\n        if (glob.startsWith('-]', i + 1)) {\n            ranges.push(braceEscape(c + '-'));\n            i += 2;\n            continue;\n        }\n        if (glob.startsWith('-', i + 1)) {\n            rangeStart = c;\n            i += 2;\n            continue;\n        }\n        // not the start of a range, just a single character\n        ranges.push(braceEscape(c));\n        i++;\n    }\n    if (endPos < i) {\n        // didn't see the end of the class, not a valid class,\n        // but might still be valid as a literal match.\n        return ['', false, 0, false];\n    }\n    // if we got no ranges and no negates, then we have a range that\n    // cannot possibly match anything, and that poisons the whole glob\n    if (!ranges.length && !negs.length) {\n        return ['$.', false, glob.length - pos, true];\n    }\n    // if we got one positive range, and it's a single character, then that's\n    // not actually a magic pattern, it's just that one literal character.\n    // we should not treat that as \"magic\", we should just return the literal\n    // character. [_] is a perfectly valid way to escape glob magic chars.\n    if (negs.length === 0 &&\n        ranges.length === 1 &&\n        /^\\\\?.$/.test(ranges[0]) &&\n        !negate) {\n        const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n        return [regexpEscape(r), false, endPos - pos, false];\n    }\n    const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n    const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n    const comb = ranges.length && negs.length\n        ? '(' + sranges + '|' + snegs + ')'\n        : ranges.length\n            ? sranges\n            : snegs;\n    return [comb, uflag, endPos - pos, true];\n};\nexports.parseClass = parseClass;\n//# sourceMappingURL=brace-expressions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escape = void 0;\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nconst escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    // don't need to escape +@! because we escape the parens\n    // that make those magic, and escaping ! as [!] isn't valid,\n    // because [!]] is a valid glob class meaning not ']'.\n    return windowsPathsNoEscape\n        ? s.replace(/[?*()[\\]]/g, '[$&]')\n        : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\nexports.escape = escape;\n//# sourceMappingURL=escape.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;\nconst brace_expansion_1 = require(\"@isaacs/brace-expansion\");\nconst assert_valid_pattern_js_1 = require(\"./assert-valid-pattern.js\");\nconst ast_js_1 = require(\"./ast.js\");\nconst escape_js_1 = require(\"./escape.js\");\nconst unescape_js_1 = require(\"./unescape.js\");\nconst minimatch = (p, pattern, options = {}) => {\n    (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n    // shortcut: comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n        return false;\n    }\n    return new Minimatch(pattern, options).match(p);\n};\nexports.minimatch = minimatch;\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n        process.platform\n    : 'posix');\nconst path = {\n    win32: { sep: '\\\\' },\n    posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nexports.minimatch.sep = exports.sep;\nexports.GLOBSTAR = Symbol('globstar **');\nexports.minimatch.GLOBSTAR = exports.GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nconst filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options);\nexports.filter = filter;\nexports.minimatch.filter = exports.filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nconst defaults = (def) => {\n    if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n        return exports.minimatch;\n    }\n    const orig = exports.minimatch;\n    const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n    return Object.assign(m, {\n        Minimatch: class Minimatch extends orig.Minimatch {\n            constructor(pattern, options = {}) {\n                super(pattern, ext(def, options));\n            }\n            static defaults(options) {\n                return orig.defaults(ext(def, options)).Minimatch;\n            }\n        },\n        AST: class AST extends orig.AST {\n            /* c8 ignore start */\n            constructor(type, parent, options = {}) {\n                super(type, parent, ext(def, options));\n            }\n            /* c8 ignore stop */\n            static fromGlob(pattern, options = {}) {\n                return orig.AST.fromGlob(pattern, ext(def, options));\n            }\n        },\n        unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n        escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n        defaults: (options) => orig.defaults(ext(def, options)),\n        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n        sep: orig.sep,\n        GLOBSTAR: exports.GLOBSTAR,\n    });\n};\nexports.defaults = defaults;\nexports.minimatch.defaults = exports.defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nconst braceExpand = (pattern, options = {}) => {\n    (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n    // Thanks to Yeting Li  for\n    // improving this regexp to avoid a ReDOS vulnerability.\n    if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n        // shortcut. no need to expand.\n        return [pattern];\n    }\n    return (0, brace_expansion_1.expand)(pattern);\n};\nexports.braceExpand = braceExpand;\nexports.minimatch.braceExpand = exports.braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nconst makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nexports.makeRe = makeRe;\nexports.minimatch.makeRe = exports.makeRe;\nconst match = (list, pattern, options = {}) => {\n    const mm = new Minimatch(pattern, options);\n    list = list.filter(f => mm.match(f));\n    if (mm.options.nonull && !list.length) {\n        list.push(pattern);\n    }\n    return list;\n};\nexports.match = match;\nexports.minimatch.match = exports.match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nclass Minimatch {\n    options;\n    set;\n    pattern;\n    windowsPathsNoEscape;\n    nonegate;\n    negate;\n    comment;\n    empty;\n    preserveMultipleSlashes;\n    partial;\n    globSet;\n    globParts;\n    nocase;\n    isWindows;\n    platform;\n    windowsNoMagicRoot;\n    regexp;\n    constructor(pattern, options = {}) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        options = options || {};\n        this.options = options;\n        this.pattern = pattern;\n        this.platform = options.platform || defaultPlatform;\n        this.isWindows = this.platform === 'win32';\n        this.windowsPathsNoEscape =\n            !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n        if (this.windowsPathsNoEscape) {\n            this.pattern = this.pattern.replace(/\\\\/g, '/');\n        }\n        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n        this.regexp = null;\n        this.negate = false;\n        this.nonegate = !!options.nonegate;\n        this.comment = false;\n        this.empty = false;\n        this.partial = !!options.partial;\n        this.nocase = !!this.options.nocase;\n        this.windowsNoMagicRoot =\n            options.windowsNoMagicRoot !== undefined\n                ? options.windowsNoMagicRoot\n                : !!(this.isWindows && this.nocase);\n        this.globSet = [];\n        this.globParts = [];\n        this.set = [];\n        // make the set of regexps etc.\n        this.make();\n    }\n    hasMagic() {\n        if (this.options.magicalBraces && this.set.length > 1) {\n            return true;\n        }\n        for (const pattern of this.set) {\n            for (const part of pattern) {\n                if (typeof part !== 'string')\n                    return true;\n            }\n        }\n        return false;\n    }\n    debug(..._) { }\n    make() {\n        const pattern = this.pattern;\n        const options = this.options;\n        // empty patterns and comments match nothing.\n        if (!options.nocomment && pattern.charAt(0) === '#') {\n            this.comment = true;\n            return;\n        }\n        if (!pattern) {\n            this.empty = true;\n            return;\n        }\n        // step 1: figure out negation, etc.\n        this.parseNegate();\n        // step 2: expand braces\n        this.globSet = [...new Set(this.braceExpand())];\n        if (options.debug) {\n            this.debug = (...args) => console.error(...args);\n        }\n        this.debug(this.pattern, this.globSet);\n        // step 3: now we have a set, so turn each one into a series of\n        // path-portion matching patterns.\n        // These will be regexps, except in the case of \"**\", which is\n        // set to the GLOBSTAR object for globstar behavior,\n        // and will not contain any / characters\n        //\n        // First, we preprocess to make the glob pattern sets a bit simpler\n        // and deduped.  There are some perf-killing patterns that can cause\n        // problems with a glob walk, but we can simplify them down a bit.\n        const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n        this.globParts = this.preprocess(rawGlobParts);\n        this.debug(this.pattern, this.globParts);\n        // glob --> regexps\n        let set = this.globParts.map((s, _, __) => {\n            if (this.isWindows && this.windowsNoMagicRoot) {\n                // check if it's a drive or unc path.\n                const isUNC = s[0] === '' &&\n                    s[1] === '' &&\n                    (s[2] === '?' || !globMagic.test(s[2])) &&\n                    !globMagic.test(s[3]);\n                const isDrive = /^[a-z]:/i.test(s[0]);\n                if (isUNC) {\n                    return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n                }\n                else if (isDrive) {\n                    return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n                }\n            }\n            return s.map(ss => this.parse(ss));\n        });\n        this.debug(this.pattern, set);\n        // filter out everything that didn't compile properly.\n        this.set = set.filter(s => s.indexOf(false) === -1);\n        // do not treat the ? in UNC paths as magic\n        if (this.isWindows) {\n            for (let i = 0; i < this.set.length; i++) {\n                const p = this.set[i];\n                if (p[0] === '' &&\n                    p[1] === '' &&\n                    this.globParts[i][2] === '?' &&\n                    typeof p[3] === 'string' &&\n                    /^[a-z]:$/i.test(p[3])) {\n                    p[2] = '?';\n                }\n            }\n        }\n        this.debug(this.pattern, this.set);\n    }\n    // various transforms to equivalent pattern sets that are\n    // faster to process in a filesystem walk.  The goal is to\n    // eliminate what we can, and push all ** patterns as far\n    // to the right as possible, even if it increases the number\n    // of patterns that we have to process.\n    preprocess(globParts) {\n        // if we're not in globstar mode, then turn all ** into *\n        if (this.options.noglobstar) {\n            for (let i = 0; i < globParts.length; i++) {\n                for (let j = 0; j < globParts[i].length; j++) {\n                    if (globParts[i][j] === '**') {\n                        globParts[i][j] = '*';\n                    }\n                }\n            }\n        }\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            // aggressive optimization for the purpose of fs walking\n            globParts = this.firstPhasePreProcess(globParts);\n            globParts = this.secondPhasePreProcess(globParts);\n        }\n        else if (optimizationLevel >= 1) {\n            // just basic optimizations to remove some .. parts\n            globParts = this.levelOneOptimize(globParts);\n        }\n        else {\n            // just collapse multiple ** portions into one\n            globParts = this.adjascentGlobstarOptimize(globParts);\n        }\n        return globParts;\n    }\n    // just get rid of adjascent ** portions\n    adjascentGlobstarOptimize(globParts) {\n        return globParts.map(parts => {\n            let gs = -1;\n            while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n                let i = gs;\n                while (parts[i + 1] === '**') {\n                    i++;\n                }\n                if (i !== gs) {\n                    parts.splice(gs, i - gs);\n                }\n            }\n            return parts;\n        });\n    }\n    // get rid of adjascent ** and resolve .. portions\n    levelOneOptimize(globParts) {\n        return globParts.map(parts => {\n            parts = parts.reduce((set, part) => {\n                const prev = set[set.length - 1];\n                if (part === '**' && prev === '**') {\n                    return set;\n                }\n                if (part === '..') {\n                    if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n                        set.pop();\n                        return set;\n                    }\n                }\n                set.push(part);\n                return set;\n            }, []);\n            return parts.length === 0 ? [''] : parts;\n        });\n    }\n    levelTwoFileOptimize(parts) {\n        if (!Array.isArray(parts)) {\n            parts = this.slashSplit(parts);\n        }\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === exports.GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return (0, exports.braceExpand)(this.pattern, this.options);\n    }\n    parse(pattern) {\n        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return exports.GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === exports.GLOBSTAR\n                        ? exports.GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== exports.GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== exports.GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = exports.GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== exports.GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return exports.minimatch.defaults(def).Minimatch;\n    }\n}\nexports.Minimatch = Minimatch;\n/* c8 ignore start */\nvar ast_js_2 = require(\"./ast.js\");\nObject.defineProperty(exports, \"AST\", { enumerable: true, get: function () { return ast_js_2.AST; } });\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nvar unescape_js_2 = require(\"./unescape.js\");\nObject.defineProperty(exports, \"unescape\", { enumerable: true, get: function () { return unescape_js_2.unescape; } });\n/* c8 ignore stop */\nexports.minimatch.AST = ast_js_1.AST;\nexports.minimatch.Minimatch = Minimatch;\nexports.minimatch.escape = escape_js_1.escape;\nexports.minimatch.unescape = unescape_js_1.unescape;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unescape = void 0;\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nconst unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    return windowsPathsNoEscape\n        ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n        : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\nexports.unescape = unescape;\n//# sourceMappingURL=unescape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Minipass = exports.isWritable = exports.isReadable = exports.isStream = void 0;\nconst proc = typeof process === 'object' && process\n    ? process\n    : {\n        stdout: null,\n        stderr: null,\n    };\nconst node_events_1 = require(\"node:events\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_string_decoder_1 = require(\"node:string_decoder\");\n/**\n * Return true if the argument is a Minipass stream, Node stream, or something\n * else that Minipass can interact with.\n */\nconst isStream = (s) => !!s &&\n    typeof s === 'object' &&\n    (s instanceof Minipass ||\n        s instanceof node_stream_1.default ||\n        (0, exports.isReadable)(s) ||\n        (0, exports.isWritable)(s));\nexports.isStream = isStream;\n/**\n * Return true if the argument is a valid {@link Minipass.Readable}\n */\nconst isReadable = (s) => !!s &&\n    typeof s === 'object' &&\n    s instanceof node_events_1.EventEmitter &&\n    typeof s.pipe === 'function' &&\n    // node core Writable streams have a pipe() method, but it throws\n    s.pipe !== node_stream_1.default.Writable.prototype.pipe;\nexports.isReadable = isReadable;\n/**\n * Return true if the argument is a valid {@link Minipass.Writable}\n */\nconst isWritable = (s) => !!s &&\n    typeof s === 'object' &&\n    s instanceof node_events_1.EventEmitter &&\n    typeof s.write === 'function' &&\n    typeof s.end === 'function';\nexports.isWritable = isWritable;\nconst EOF = Symbol('EOF');\nconst MAYBE_EMIT_END = Symbol('maybeEmitEnd');\nconst EMITTED_END = Symbol('emittedEnd');\nconst EMITTING_END = Symbol('emittingEnd');\nconst EMITTED_ERROR = Symbol('emittedError');\nconst CLOSED = Symbol('closed');\nconst READ = Symbol('read');\nconst FLUSH = Symbol('flush');\nconst FLUSHCHUNK = Symbol('flushChunk');\nconst ENCODING = Symbol('encoding');\nconst DECODER = Symbol('decoder');\nconst FLOWING = Symbol('flowing');\nconst PAUSED = Symbol('paused');\nconst RESUME = Symbol('resume');\nconst BUFFER = Symbol('buffer');\nconst PIPES = Symbol('pipes');\nconst BUFFERLENGTH = Symbol('bufferLength');\nconst BUFFERPUSH = Symbol('bufferPush');\nconst BUFFERSHIFT = Symbol('bufferShift');\nconst OBJECTMODE = Symbol('objectMode');\n// internal event when stream is destroyed\nconst DESTROYED = Symbol('destroyed');\n// internal event when stream has an error\nconst ERROR = Symbol('error');\nconst EMITDATA = Symbol('emitData');\nconst EMITEND = Symbol('emitEnd');\nconst EMITEND2 = Symbol('emitEnd2');\nconst ASYNC = Symbol('async');\nconst ABORT = Symbol('abort');\nconst ABORTED = Symbol('aborted');\nconst SIGNAL = Symbol('signal');\nconst DATALISTENERS = Symbol('dataListeners');\nconst DISCARDED = Symbol('discarded');\nconst defer = (fn) => Promise.resolve().then(fn);\nconst nodefer = (fn) => fn();\nconst isEndish = (ev) => ev === 'end' || ev === 'finish' || ev === 'prefinish';\nconst isArrayBufferLike = (b) => b instanceof ArrayBuffer ||\n    (!!b &&\n        typeof b === 'object' &&\n        b.constructor &&\n        b.constructor.name === 'ArrayBuffer' &&\n        b.byteLength >= 0);\nconst isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);\n/**\n * Internal class representing a pipe to a destination stream.\n *\n * @internal\n */\nclass Pipe {\n    src;\n    dest;\n    opts;\n    ondrain;\n    constructor(src, dest, opts) {\n        this.src = src;\n        this.dest = dest;\n        this.opts = opts;\n        this.ondrain = () => src[RESUME]();\n        this.dest.on('drain', this.ondrain);\n    }\n    unpipe() {\n        this.dest.removeListener('drain', this.ondrain);\n    }\n    // only here for the prototype\n    /* c8 ignore start */\n    proxyErrors(_er) { }\n    /* c8 ignore stop */\n    end() {\n        this.unpipe();\n        if (this.opts.end)\n            this.dest.end();\n    }\n}\n/**\n * Internal class representing a pipe to a destination stream where\n * errors are proxied.\n *\n * @internal\n */\nclass PipeProxyErrors extends Pipe {\n    unpipe() {\n        this.src.removeListener('error', this.proxyErrors);\n        super.unpipe();\n    }\n    constructor(src, dest, opts) {\n        super(src, dest, opts);\n        this.proxyErrors = er => dest.emit('error', er);\n        src.on('error', this.proxyErrors);\n    }\n}\nconst isObjectModeOptions = (o) => !!o.objectMode;\nconst isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== 'buffer';\n/**\n * Main export, the Minipass class\n *\n * `RType` is the type of data emitted, defaults to Buffer\n *\n * `WType` is the type of data to be written, if RType is buffer or string,\n * then any {@link Minipass.ContiguousData} is allowed.\n *\n * `Events` is the set of event handler signatures that this object\n * will emit, see {@link Minipass.Events}\n */\nclass Minipass extends node_events_1.EventEmitter {\n    [FLOWING] = false;\n    [PAUSED] = false;\n    [PIPES] = [];\n    [BUFFER] = [];\n    [OBJECTMODE];\n    [ENCODING];\n    [ASYNC];\n    [DECODER];\n    [EOF] = false;\n    [EMITTED_END] = false;\n    [EMITTING_END] = false;\n    [CLOSED] = false;\n    [EMITTED_ERROR] = null;\n    [BUFFERLENGTH] = 0;\n    [DESTROYED] = false;\n    [SIGNAL];\n    [ABORTED] = false;\n    [DATALISTENERS] = 0;\n    [DISCARDED] = false;\n    /**\n     * true if the stream can be written\n     */\n    writable = true;\n    /**\n     * true if the stream can be read\n     */\n    readable = true;\n    /**\n     * If `RType` is Buffer, then options do not need to be provided.\n     * Otherwise, an options object must be provided to specify either\n     * {@link Minipass.SharedOptions.objectMode} or\n     * {@link Minipass.SharedOptions.encoding}, as appropriate.\n     */\n    constructor(...args) {\n        const options = (args[0] ||\n            {});\n        super();\n        if (options.objectMode && typeof options.encoding === 'string') {\n            throw new TypeError('Encoding and objectMode may not be used together');\n        }\n        if (isObjectModeOptions(options)) {\n            this[OBJECTMODE] = true;\n            this[ENCODING] = null;\n        }\n        else if (isEncodingOptions(options)) {\n            this[ENCODING] = options.encoding;\n            this[OBJECTMODE] = false;\n        }\n        else {\n            this[OBJECTMODE] = false;\n            this[ENCODING] = null;\n        }\n        this[ASYNC] = !!options.async;\n        this[DECODER] = this[ENCODING]\n            ? new node_string_decoder_1.StringDecoder(this[ENCODING])\n            : null;\n        //@ts-ignore - private option for debugging and testing\n        if (options && options.debugExposeBuffer === true) {\n            Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] });\n        }\n        //@ts-ignore - private option for debugging and testing\n        if (options && options.debugExposePipes === true) {\n            Object.defineProperty(this, 'pipes', { get: () => this[PIPES] });\n        }\n        const { signal } = options;\n        if (signal) {\n            this[SIGNAL] = signal;\n            if (signal.aborted) {\n                this[ABORT]();\n            }\n            else {\n                signal.addEventListener('abort', () => this[ABORT]());\n            }\n        }\n    }\n    /**\n     * The amount of data stored in the buffer waiting to be read.\n     *\n     * For Buffer strings, this will be the total byte length.\n     * For string encoding streams, this will be the string character length,\n     * according to JavaScript's `string.length` logic.\n     * For objectMode streams, this is a count of the items waiting to be\n     * emitted.\n     */\n    get bufferLength() {\n        return this[BUFFERLENGTH];\n    }\n    /**\n     * The `BufferEncoding` currently in use, or `null`\n     */\n    get encoding() {\n        return this[ENCODING];\n    }\n    /**\n     * @deprecated - This is a read only property\n     */\n    set encoding(_enc) {\n        throw new Error('Encoding must be set at instantiation time');\n    }\n    /**\n     * @deprecated - Encoding may only be set at instantiation time\n     */\n    setEncoding(_enc) {\n        throw new Error('Encoding must be set at instantiation time');\n    }\n    /**\n     * True if this is an objectMode stream\n     */\n    get objectMode() {\n        return this[OBJECTMODE];\n    }\n    /**\n     * @deprecated - This is a read-only property\n     */\n    set objectMode(_om) {\n        throw new Error('objectMode must be set at instantiation time');\n    }\n    /**\n     * true if this is an async stream\n     */\n    get ['async']() {\n        return this[ASYNC];\n    }\n    /**\n     * Set to true to make this stream async.\n     *\n     * Once set, it cannot be unset, as this would potentially cause incorrect\n     * behavior.  Ie, a sync stream can be made async, but an async stream\n     * cannot be safely made sync.\n     */\n    set ['async'](a) {\n        this[ASYNC] = this[ASYNC] || !!a;\n    }\n    // drop everything and get out of the flow completely\n    [ABORT]() {\n        this[ABORTED] = true;\n        this.emit('abort', this[SIGNAL]?.reason);\n        this.destroy(this[SIGNAL]?.reason);\n    }\n    /**\n     * True if the stream has been aborted.\n     */\n    get aborted() {\n        return this[ABORTED];\n    }\n    /**\n     * No-op setter. Stream aborted status is set via the AbortSignal provided\n     * in the constructor options.\n     */\n    set aborted(_) { }\n    write(chunk, encoding, cb) {\n        if (this[ABORTED])\n            return false;\n        if (this[EOF])\n            throw new Error('write after end');\n        if (this[DESTROYED]) {\n            this.emit('error', Object.assign(new Error('Cannot call write after a stream was destroyed'), { code: 'ERR_STREAM_DESTROYED' }));\n            return true;\n        }\n        if (typeof encoding === 'function') {\n            cb = encoding;\n            encoding = 'utf8';\n        }\n        if (!encoding)\n            encoding = 'utf8';\n        const fn = this[ASYNC] ? defer : nodefer;\n        // convert array buffers and typed array views into buffers\n        // at some point in the future, we may want to do the opposite!\n        // leave strings and buffers as-is\n        // anything is only allowed if in object mode, so throw\n        if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {\n            if (isArrayBufferView(chunk)) {\n                //@ts-ignore - sinful unsafe type changing\n                chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n            }\n            else if (isArrayBufferLike(chunk)) {\n                //@ts-ignore - sinful unsafe type changing\n                chunk = Buffer.from(chunk);\n            }\n            else if (typeof chunk !== 'string') {\n                throw new Error('Non-contiguous data written to non-objectMode stream');\n            }\n        }\n        // handle object mode up front, since it's simpler\n        // this yields better performance, fewer checks later.\n        if (this[OBJECTMODE]) {\n            // maybe impossible?\n            /* c8 ignore start */\n            if (this[FLOWING] && this[BUFFERLENGTH] !== 0)\n                this[FLUSH](true);\n            /* c8 ignore stop */\n            if (this[FLOWING])\n                this.emit('data', chunk);\n            else\n                this[BUFFERPUSH](chunk);\n            if (this[BUFFERLENGTH] !== 0)\n                this.emit('readable');\n            if (cb)\n                fn(cb);\n            return this[FLOWING];\n        }\n        // at this point the chunk is a buffer or string\n        // don't buffer it up or send it to the decoder\n        if (!chunk.length) {\n            if (this[BUFFERLENGTH] !== 0)\n                this.emit('readable');\n            if (cb)\n                fn(cb);\n            return this[FLOWING];\n        }\n        // fast-path writing strings of same encoding to a stream with\n        // an empty buffer, skipping the buffer/decoder dance\n        if (typeof chunk === 'string' &&\n            // unless it is a string already ready for us to use\n            !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {\n            //@ts-ignore - sinful unsafe type change\n            chunk = Buffer.from(chunk, encoding);\n        }\n        if (Buffer.isBuffer(chunk) && this[ENCODING]) {\n            //@ts-ignore - sinful unsafe type change\n            chunk = this[DECODER].write(chunk);\n        }\n        // Note: flushing CAN potentially switch us into not-flowing mode\n        if (this[FLOWING] && this[BUFFERLENGTH] !== 0)\n            this[FLUSH](true);\n        if (this[FLOWING])\n            this.emit('data', chunk);\n        else\n            this[BUFFERPUSH](chunk);\n        if (this[BUFFERLENGTH] !== 0)\n            this.emit('readable');\n        if (cb)\n            fn(cb);\n        return this[FLOWING];\n    }\n    /**\n     * Low-level explicit read method.\n     *\n     * In objectMode, the argument is ignored, and one item is returned if\n     * available.\n     *\n     * `n` is the number of bytes (or in the case of encoding streams,\n     * characters) to consume. If `n` is not provided, then the entire buffer\n     * is returned, or `null` is returned if no data is available.\n     *\n     * If `n` is greater that the amount of data in the internal buffer,\n     * then `null` is returned.\n     */\n    read(n) {\n        if (this[DESTROYED])\n            return null;\n        this[DISCARDED] = false;\n        if (this[BUFFERLENGTH] === 0 ||\n            n === 0 ||\n            (n && n > this[BUFFERLENGTH])) {\n            this[MAYBE_EMIT_END]();\n            return null;\n        }\n        if (this[OBJECTMODE])\n            n = null;\n        if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {\n            // not object mode, so if we have an encoding, then RType is string\n            // otherwise, must be Buffer\n            this[BUFFER] = [\n                (this[ENCODING]\n                    ? this[BUFFER].join('')\n                    : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])),\n            ];\n        }\n        const ret = this[READ](n || null, this[BUFFER][0]);\n        this[MAYBE_EMIT_END]();\n        return ret;\n    }\n    [READ](n, chunk) {\n        if (this[OBJECTMODE])\n            this[BUFFERSHIFT]();\n        else {\n            const c = chunk;\n            if (n === c.length || n === null)\n                this[BUFFERSHIFT]();\n            else if (typeof c === 'string') {\n                this[BUFFER][0] = c.slice(n);\n                chunk = c.slice(0, n);\n                this[BUFFERLENGTH] -= n;\n            }\n            else {\n                this[BUFFER][0] = c.subarray(n);\n                chunk = c.subarray(0, n);\n                this[BUFFERLENGTH] -= n;\n            }\n        }\n        this.emit('data', chunk);\n        if (!this[BUFFER].length && !this[EOF])\n            this.emit('drain');\n        return chunk;\n    }\n    end(chunk, encoding, cb) {\n        if (typeof chunk === 'function') {\n            cb = chunk;\n            chunk = undefined;\n        }\n        if (typeof encoding === 'function') {\n            cb = encoding;\n            encoding = 'utf8';\n        }\n        if (chunk !== undefined)\n            this.write(chunk, encoding);\n        if (cb)\n            this.once('end', cb);\n        this[EOF] = true;\n        this.writable = false;\n        // if we haven't written anything, then go ahead and emit,\n        // even if we're not reading.\n        // we'll re-emit if a new 'end' listener is added anyway.\n        // This makes MP more suitable to write-only use cases.\n        if (this[FLOWING] || !this[PAUSED])\n            this[MAYBE_EMIT_END]();\n        return this;\n    }\n    // don't let the internal resume be overwritten\n    [RESUME]() {\n        if (this[DESTROYED])\n            return;\n        if (!this[DATALISTENERS] && !this[PIPES].length) {\n            this[DISCARDED] = true;\n        }\n        this[PAUSED] = false;\n        this[FLOWING] = true;\n        this.emit('resume');\n        if (this[BUFFER].length)\n            this[FLUSH]();\n        else if (this[EOF])\n            this[MAYBE_EMIT_END]();\n        else\n            this.emit('drain');\n    }\n    /**\n     * Resume the stream if it is currently in a paused state\n     *\n     * If called when there are no pipe destinations or `data` event listeners,\n     * this will place the stream in a \"discarded\" state, where all data will\n     * be thrown away. The discarded state is removed if a pipe destination or\n     * data handler is added, if pause() is called, or if any synchronous or\n     * asynchronous iteration is started.\n     */\n    resume() {\n        return this[RESUME]();\n    }\n    /**\n     * Pause the stream\n     */\n    pause() {\n        this[FLOWING] = false;\n        this[PAUSED] = true;\n        this[DISCARDED] = false;\n    }\n    /**\n     * true if the stream has been forcibly destroyed\n     */\n    get destroyed() {\n        return this[DESTROYED];\n    }\n    /**\n     * true if the stream is currently in a flowing state, meaning that\n     * any writes will be immediately emitted.\n     */\n    get flowing() {\n        return this[FLOWING];\n    }\n    /**\n     * true if the stream is currently in a paused state\n     */\n    get paused() {\n        return this[PAUSED];\n    }\n    [BUFFERPUSH](chunk) {\n        if (this[OBJECTMODE])\n            this[BUFFERLENGTH] += 1;\n        else\n            this[BUFFERLENGTH] += chunk.length;\n        this[BUFFER].push(chunk);\n    }\n    [BUFFERSHIFT]() {\n        if (this[OBJECTMODE])\n            this[BUFFERLENGTH] -= 1;\n        else\n            this[BUFFERLENGTH] -= this[BUFFER][0].length;\n        return this[BUFFER].shift();\n    }\n    [FLUSH](noDrain = false) {\n        do { } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&\n            this[BUFFER].length);\n        if (!noDrain && !this[BUFFER].length && !this[EOF])\n            this.emit('drain');\n    }\n    [FLUSHCHUNK](chunk) {\n        this.emit('data', chunk);\n        return this[FLOWING];\n    }\n    /**\n     * Pipe all data emitted by this stream into the destination provided.\n     *\n     * Triggers the flow of data.\n     */\n    pipe(dest, opts) {\n        if (this[DESTROYED])\n            return dest;\n        this[DISCARDED] = false;\n        const ended = this[EMITTED_END];\n        opts = opts || {};\n        if (dest === proc.stdout || dest === proc.stderr)\n            opts.end = false;\n        else\n            opts.end = opts.end !== false;\n        opts.proxyErrors = !!opts.proxyErrors;\n        // piping an ended stream ends immediately\n        if (ended) {\n            if (opts.end)\n                dest.end();\n        }\n        else {\n            // \"as\" here just ignores the WType, which pipes don't care about,\n            // since they're only consuming from us, and writing to the dest\n            this[PIPES].push(!opts.proxyErrors\n                ? new Pipe(this, dest, opts)\n                : new PipeProxyErrors(this, dest, opts));\n            if (this[ASYNC])\n                defer(() => this[RESUME]());\n            else\n                this[RESUME]();\n        }\n        return dest;\n    }\n    /**\n     * Fully unhook a piped destination stream.\n     *\n     * If the destination stream was the only consumer of this stream (ie,\n     * there are no other piped destinations or `'data'` event listeners)\n     * then the flow of data will stop until there is another consumer or\n     * {@link Minipass#resume} is explicitly called.\n     */\n    unpipe(dest) {\n        const p = this[PIPES].find(p => p.dest === dest);\n        if (p) {\n            if (this[PIPES].length === 1) {\n                if (this[FLOWING] && this[DATALISTENERS] === 0) {\n                    this[FLOWING] = false;\n                }\n                this[PIPES] = [];\n            }\n            else\n                this[PIPES].splice(this[PIPES].indexOf(p), 1);\n            p.unpipe();\n        }\n    }\n    /**\n     * Alias for {@link Minipass#on}\n     */\n    addListener(ev, handler) {\n        return this.on(ev, handler);\n    }\n    /**\n     * Mostly identical to `EventEmitter.on`, with the following\n     * behavior differences to prevent data loss and unnecessary hangs:\n     *\n     * - Adding a 'data' event handler will trigger the flow of data\n     *\n     * - Adding a 'readable' event handler when there is data waiting to be read\n     *   will cause 'readable' to be emitted immediately.\n     *\n     * - Adding an 'endish' event handler ('end', 'finish', etc.) which has\n     *   already passed will cause the event to be emitted immediately and all\n     *   handlers removed.\n     *\n     * - Adding an 'error' event handler after an error has been emitted will\n     *   cause the event to be re-emitted immediately with the error previously\n     *   raised.\n     */\n    on(ev, handler) {\n        const ret = super.on(ev, handler);\n        if (ev === 'data') {\n            this[DISCARDED] = false;\n            this[DATALISTENERS]++;\n            if (!this[PIPES].length && !this[FLOWING]) {\n                this[RESUME]();\n            }\n        }\n        else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {\n            super.emit('readable');\n        }\n        else if (isEndish(ev) && this[EMITTED_END]) {\n            super.emit(ev);\n            this.removeAllListeners(ev);\n        }\n        else if (ev === 'error' && this[EMITTED_ERROR]) {\n            const h = handler;\n            if (this[ASYNC])\n                defer(() => h.call(this, this[EMITTED_ERROR]));\n            else\n                h.call(this, this[EMITTED_ERROR]);\n        }\n        return ret;\n    }\n    /**\n     * Alias for {@link Minipass#off}\n     */\n    removeListener(ev, handler) {\n        return this.off(ev, handler);\n    }\n    /**\n     * Mostly identical to `EventEmitter.off`\n     *\n     * If a 'data' event handler is removed, and it was the last consumer\n     * (ie, there are no pipe destinations or other 'data' event listeners),\n     * then the flow of data will stop until there is another consumer or\n     * {@link Minipass#resume} is explicitly called.\n     */\n    off(ev, handler) {\n        const ret = super.off(ev, handler);\n        // if we previously had listeners, and now we don't, and we don't\n        // have any pipes, then stop the flow, unless it's been explicitly\n        // put in a discarded flowing state via stream.resume().\n        if (ev === 'data') {\n            this[DATALISTENERS] = this.listeners('data').length;\n            if (this[DATALISTENERS] === 0 &&\n                !this[DISCARDED] &&\n                !this[PIPES].length) {\n                this[FLOWING] = false;\n            }\n        }\n        return ret;\n    }\n    /**\n     * Mostly identical to `EventEmitter.removeAllListeners`\n     *\n     * If all 'data' event handlers are removed, and they were the last consumer\n     * (ie, there are no pipe destinations), then the flow of data will stop\n     * until there is another consumer or {@link Minipass#resume} is explicitly\n     * called.\n     */\n    removeAllListeners(ev) {\n        const ret = super.removeAllListeners(ev);\n        if (ev === 'data' || ev === undefined) {\n            this[DATALISTENERS] = 0;\n            if (!this[DISCARDED] && !this[PIPES].length) {\n                this[FLOWING] = false;\n            }\n        }\n        return ret;\n    }\n    /**\n     * true if the 'end' event has been emitted\n     */\n    get emittedEnd() {\n        return this[EMITTED_END];\n    }\n    [MAYBE_EMIT_END]() {\n        if (!this[EMITTING_END] &&\n            !this[EMITTED_END] &&\n            !this[DESTROYED] &&\n            this[BUFFER].length === 0 &&\n            this[EOF]) {\n            this[EMITTING_END] = true;\n            this.emit('end');\n            this.emit('prefinish');\n            this.emit('finish');\n            if (this[CLOSED])\n                this.emit('close');\n            this[EMITTING_END] = false;\n        }\n    }\n    /**\n     * Mostly identical to `EventEmitter.emit`, with the following\n     * behavior differences to prevent data loss and unnecessary hangs:\n     *\n     * If the stream has been destroyed, and the event is something other\n     * than 'close' or 'error', then `false` is returned and no handlers\n     * are called.\n     *\n     * If the event is 'end', and has already been emitted, then the event\n     * is ignored. If the stream is in a paused or non-flowing state, then\n     * the event will be deferred until data flow resumes. If the stream is\n     * async, then handlers will be called on the next tick rather than\n     * immediately.\n     *\n     * If the event is 'close', and 'end' has not yet been emitted, then\n     * the event will be deferred until after 'end' is emitted.\n     *\n     * If the event is 'error', and an AbortSignal was provided for the stream,\n     * and there are no listeners, then the event is ignored, matching the\n     * behavior of node core streams in the presense of an AbortSignal.\n     *\n     * If the event is 'finish' or 'prefinish', then all listeners will be\n     * removed after emitting the event, to prevent double-firing.\n     */\n    emit(ev, ...args) {\n        const data = args[0];\n        // error and close are only events allowed after calling destroy()\n        if (ev !== 'error' &&\n            ev !== 'close' &&\n            ev !== DESTROYED &&\n            this[DESTROYED]) {\n            return false;\n        }\n        else if (ev === 'data') {\n            return !this[OBJECTMODE] && !data\n                ? false\n                : this[ASYNC]\n                    ? (defer(() => this[EMITDATA](data)), true)\n                    : this[EMITDATA](data);\n        }\n        else if (ev === 'end') {\n            return this[EMITEND]();\n        }\n        else if (ev === 'close') {\n            this[CLOSED] = true;\n            // don't emit close before 'end' and 'finish'\n            if (!this[EMITTED_END] && !this[DESTROYED])\n                return false;\n            const ret = super.emit('close');\n            this.removeAllListeners('close');\n            return ret;\n        }\n        else if (ev === 'error') {\n            this[EMITTED_ERROR] = data;\n            super.emit(ERROR, data);\n            const ret = !this[SIGNAL] || this.listeners('error').length\n                ? super.emit('error', data)\n                : false;\n            this[MAYBE_EMIT_END]();\n            return ret;\n        }\n        else if (ev === 'resume') {\n            const ret = super.emit('resume');\n            this[MAYBE_EMIT_END]();\n            return ret;\n        }\n        else if (ev === 'finish' || ev === 'prefinish') {\n            const ret = super.emit(ev);\n            this.removeAllListeners(ev);\n            return ret;\n        }\n        // Some other unknown event\n        const ret = super.emit(ev, ...args);\n        this[MAYBE_EMIT_END]();\n        return ret;\n    }\n    [EMITDATA](data) {\n        for (const p of this[PIPES]) {\n            if (p.dest.write(data) === false)\n                this.pause();\n        }\n        const ret = this[DISCARDED] ? false : super.emit('data', data);\n        this[MAYBE_EMIT_END]();\n        return ret;\n    }\n    [EMITEND]() {\n        if (this[EMITTED_END])\n            return false;\n        this[EMITTED_END] = true;\n        this.readable = false;\n        return this[ASYNC]\n            ? (defer(() => this[EMITEND2]()), true)\n            : this[EMITEND2]();\n    }\n    [EMITEND2]() {\n        if (this[DECODER]) {\n            const data = this[DECODER].end();\n            if (data) {\n                for (const p of this[PIPES]) {\n                    p.dest.write(data);\n                }\n                if (!this[DISCARDED])\n                    super.emit('data', data);\n            }\n        }\n        for (const p of this[PIPES]) {\n            p.end();\n        }\n        const ret = super.emit('end');\n        this.removeAllListeners('end');\n        return ret;\n    }\n    /**\n     * Return a Promise that resolves to an array of all emitted data once\n     * the stream ends.\n     */\n    async collect() {\n        const buf = Object.assign([], {\n            dataLength: 0,\n        });\n        if (!this[OBJECTMODE])\n            buf.dataLength = 0;\n        // set the promise first, in case an error is raised\n        // by triggering the flow here.\n        const p = this.promise();\n        this.on('data', c => {\n            buf.push(c);\n            if (!this[OBJECTMODE])\n                buf.dataLength += c.length;\n        });\n        await p;\n        return buf;\n    }\n    /**\n     * Return a Promise that resolves to the concatenation of all emitted data\n     * once the stream ends.\n     *\n     * Not allowed on objectMode streams.\n     */\n    async concat() {\n        if (this[OBJECTMODE]) {\n            throw new Error('cannot concat in objectMode');\n        }\n        const buf = await this.collect();\n        return (this[ENCODING]\n            ? buf.join('')\n            : Buffer.concat(buf, buf.dataLength));\n    }\n    /**\n     * Return a void Promise that resolves once the stream ends.\n     */\n    async promise() {\n        return new Promise((resolve, reject) => {\n            this.on(DESTROYED, () => reject(new Error('stream destroyed')));\n            this.on('error', er => reject(er));\n            this.on('end', () => resolve());\n        });\n    }\n    /**\n     * Asynchronous `for await of` iteration.\n     *\n     * This will continue emitting all chunks until the stream terminates.\n     */\n    [Symbol.asyncIterator]() {\n        // set this up front, in case the consumer doesn't call next()\n        // right away.\n        this[DISCARDED] = false;\n        let stopped = false;\n        const stop = async () => {\n            this.pause();\n            stopped = true;\n            return { value: undefined, done: true };\n        };\n        const next = () => {\n            if (stopped)\n                return stop();\n            const res = this.read();\n            if (res !== null)\n                return Promise.resolve({ done: false, value: res });\n            if (this[EOF])\n                return stop();\n            let resolve;\n            let reject;\n            const onerr = (er) => {\n                this.off('data', ondata);\n                this.off('end', onend);\n                this.off(DESTROYED, ondestroy);\n                stop();\n                reject(er);\n            };\n            const ondata = (value) => {\n                this.off('error', onerr);\n                this.off('end', onend);\n                this.off(DESTROYED, ondestroy);\n                this.pause();\n                resolve({ value, done: !!this[EOF] });\n            };\n            const onend = () => {\n                this.off('error', onerr);\n                this.off('data', ondata);\n                this.off(DESTROYED, ondestroy);\n                stop();\n                resolve({ done: true, value: undefined });\n            };\n            const ondestroy = () => onerr(new Error('stream destroyed'));\n            return new Promise((res, rej) => {\n                reject = rej;\n                resolve = res;\n                this.once(DESTROYED, ondestroy);\n                this.once('error', onerr);\n                this.once('end', onend);\n                this.once('data', ondata);\n            });\n        };\n        return {\n            next,\n            throw: stop,\n            return: stop,\n            [Symbol.asyncIterator]() {\n                return this;\n            },\n        };\n    }\n    /**\n     * Synchronous `for of` iteration.\n     *\n     * The iteration will terminate when the internal buffer runs out, even\n     * if the stream has not yet terminated.\n     */\n    [Symbol.iterator]() {\n        // set this up front, in case the consumer doesn't call next()\n        // right away.\n        this[DISCARDED] = false;\n        let stopped = false;\n        const stop = () => {\n            this.pause();\n            this.off(ERROR, stop);\n            this.off(DESTROYED, stop);\n            this.off('end', stop);\n            stopped = true;\n            return { done: true, value: undefined };\n        };\n        const next = () => {\n            if (stopped)\n                return stop();\n            const value = this.read();\n            return value === null ? stop() : { done: false, value };\n        };\n        this.once('end', stop);\n        this.once(ERROR, stop);\n        this.once(DESTROYED, stop);\n        return {\n            next,\n            throw: stop,\n            return: stop,\n            [Symbol.iterator]() {\n                return this;\n            },\n        };\n    }\n    /**\n     * Destroy a stream, preventing it from being used for any further purpose.\n     *\n     * If the stream has a `close()` method, then it will be called on\n     * destruction.\n     *\n     * After destruction, any attempt to write data, read data, or emit most\n     * events will be ignored.\n     *\n     * If an error argument is provided, then it will be emitted in an\n     * 'error' event.\n     */\n    destroy(er) {\n        if (this[DESTROYED]) {\n            if (er)\n                this.emit('error', er);\n            else\n                this.emit(DESTROYED);\n            return this;\n        }\n        this[DESTROYED] = true;\n        this[DISCARDED] = true;\n        // throw away all buffered data, it's never coming out\n        this[BUFFER].length = 0;\n        this[BUFFERLENGTH] = 0;\n        const wc = this;\n        if (typeof wc.close === 'function' && !this[CLOSED])\n            wc.close();\n        if (er)\n            this.emit('error', er);\n        // if no error to emit, still reject pending promises\n        else\n            this.emit(DESTROYED);\n        return this;\n    }\n    /**\n     * Alias for {@link isStream}\n     *\n     * Former export location, maintained for backwards compatibility.\n     *\n     * @deprecated\n     */\n    static get isStream() {\n        return exports.isStream;\n    }\n}\nexports.Minipass = Minipass;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathScurry = exports.Path = exports.PathScurryDarwin = exports.PathScurryPosix = exports.PathScurryWin32 = exports.PathScurryBase = exports.PathPosix = exports.PathWin32 = exports.PathBase = exports.ChildrenCache = exports.ResolveCache = void 0;\nconst lru_cache_1 = require(\"lru-cache\");\nconst node_path_1 = require(\"node:path\");\nconst node_url_1 = require(\"node:url\");\nconst fs_1 = require(\"fs\");\nconst actualFS = __importStar(require(\"node:fs\"));\nconst realpathSync = fs_1.realpathSync.native;\n// TODO: test perf of fs/promises realpath vs realpathCB,\n// since the promises one uses realpath.native\nconst promises_1 = require(\"node:fs/promises\");\nconst minipass_1 = require(\"minipass\");\nconst defaultFS = {\n    lstatSync: fs_1.lstatSync,\n    readdir: fs_1.readdir,\n    readdirSync: fs_1.readdirSync,\n    readlinkSync: fs_1.readlinkSync,\n    realpathSync,\n    promises: {\n        lstat: promises_1.lstat,\n        readdir: promises_1.readdir,\n        readlink: promises_1.readlink,\n        realpath: promises_1.realpath,\n    },\n};\n// if they just gave us require('fs') then use our default\nconst fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === actualFS ?\n    defaultFS\n    : {\n        ...defaultFS,\n        ...fsOption,\n        promises: {\n            ...defaultFS.promises,\n            ...(fsOption.promises || {}),\n        },\n    };\n// turn something like //?/c:/ into c:\\\nconst uncDriveRegexp = /^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i;\nconst uncToDrive = (rootPath) => rootPath.replace(/\\//g, '\\\\').replace(uncDriveRegexp, '$1\\\\');\n// windows paths are separated by either / or \\\nconst eitherSep = /[\\\\\\/]/;\nconst UNKNOWN = 0; // may not even exist, for all we know\nconst IFIFO = 0b0001;\nconst IFCHR = 0b0010;\nconst IFDIR = 0b0100;\nconst IFBLK = 0b0110;\nconst IFREG = 0b1000;\nconst IFLNK = 0b1010;\nconst IFSOCK = 0b1100;\nconst IFMT = 0b1111;\n// mask to unset low 4 bits\nconst IFMT_UNKNOWN = ~IFMT;\n// set after successfully calling readdir() and getting entries.\nconst READDIR_CALLED = 0b0000_0001_0000;\n// set after a successful lstat()\nconst LSTAT_CALLED = 0b0000_0010_0000;\n// set if an entry (or one of its parents) is definitely not a dir\nconst ENOTDIR = 0b0000_0100_0000;\n// set if an entry (or one of its parents) does not exist\n// (can also be set on lstat errors like EACCES or ENAMETOOLONG)\nconst ENOENT = 0b0000_1000_0000;\n// cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK\n// set if we fail to readlink\nconst ENOREADLINK = 0b0001_0000_0000;\n// set if we know realpath() will fail\nconst ENOREALPATH = 0b0010_0000_0000;\nconst ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;\nconst TYPEMASK = 0b0011_1111_1111;\nconst entToType = (s) => s.isFile() ? IFREG\n    : s.isDirectory() ? IFDIR\n        : s.isSymbolicLink() ? IFLNK\n            : s.isCharacterDevice() ? IFCHR\n                : s.isBlockDevice() ? IFBLK\n                    : s.isSocket() ? IFSOCK\n                        : s.isFIFO() ? IFIFO\n                            : UNKNOWN;\n// normalize unicode path names\nconst normalizeCache = new Map();\nconst normalize = (s) => {\n    const c = normalizeCache.get(s);\n    if (c)\n        return c;\n    const n = s.normalize('NFKD');\n    normalizeCache.set(s, n);\n    return n;\n};\nconst normalizeNocaseCache = new Map();\nconst normalizeNocase = (s) => {\n    const c = normalizeNocaseCache.get(s);\n    if (c)\n        return c;\n    const n = normalize(s.toLowerCase());\n    normalizeNocaseCache.set(s, n);\n    return n;\n};\n/**\n * An LRUCache for storing resolved path strings or Path objects.\n * @internal\n */\nclass ResolveCache extends lru_cache_1.LRUCache {\n    constructor() {\n        super({ max: 256 });\n    }\n}\nexports.ResolveCache = ResolveCache;\n// In order to prevent blowing out the js heap by allocating hundreds of\n// thousands of Path entries when walking extremely large trees, the \"children\"\n// in this tree are represented by storing an array of Path entries in an\n// LRUCache, indexed by the parent.  At any time, Path.children() may return an\n// empty array, indicating that it doesn't know about any of its children, and\n// thus has to rebuild that cache.  This is fine, it just means that we don't\n// benefit as much from having the cached entries, but huge directory walks\n// don't blow out the stack, and smaller ones are still as fast as possible.\n//\n//It does impose some complexity when building up the readdir data, because we\n//need to pass a reference to the children array that we started with.\n/**\n * an LRUCache for storing child entries.\n * @internal\n */\nclass ChildrenCache extends lru_cache_1.LRUCache {\n    constructor(maxSize = 16 * 1024) {\n        super({\n            maxSize,\n            // parent + children\n            sizeCalculation: a => a.length + 1,\n        });\n    }\n}\nexports.ChildrenCache = ChildrenCache;\nconst setAsCwd = Symbol('PathScurry setAsCwd');\n/**\n * Path objects are sort of like a super-powered\n * {@link https://nodejs.org/docs/latest/api/fs.html#class-fsdirent fs.Dirent}\n *\n * Each one represents a single filesystem entry on disk, which may or may not\n * exist. It includes methods for reading various types of information via\n * lstat, readlink, and readdir, and caches all information to the greatest\n * degree possible.\n *\n * Note that fs operations that would normally throw will instead return an\n * \"empty\" value. This is in order to prevent excessive overhead from error\n * stack traces.\n */\nclass PathBase {\n    /**\n     * the basename of this path\n     *\n     * **Important**: *always* test the path name against any test string\n     * usingthe {@link isNamed} method, and not by directly comparing this\n     * string. Otherwise, unicode path strings that the system sees as identical\n     * will not be properly treated as the same path, leading to incorrect\n     * behavior and possible security issues.\n     */\n    name;\n    /**\n     * the Path entry corresponding to the path root.\n     *\n     * @internal\n     */\n    root;\n    /**\n     * All roots found within the current PathScurry family\n     *\n     * @internal\n     */\n    roots;\n    /**\n     * a reference to the parent path, or undefined in the case of root entries\n     *\n     * @internal\n     */\n    parent;\n    /**\n     * boolean indicating whether paths are compared case-insensitively\n     * @internal\n     */\n    nocase;\n    /**\n     * boolean indicating that this path is the current working directory\n     * of the PathScurry collection that contains it.\n     */\n    isCWD = false;\n    // potential default fs override\n    #fs;\n    // Stats fields\n    #dev;\n    get dev() {\n        return this.#dev;\n    }\n    #mode;\n    get mode() {\n        return this.#mode;\n    }\n    #nlink;\n    get nlink() {\n        return this.#nlink;\n    }\n    #uid;\n    get uid() {\n        return this.#uid;\n    }\n    #gid;\n    get gid() {\n        return this.#gid;\n    }\n    #rdev;\n    get rdev() {\n        return this.#rdev;\n    }\n    #blksize;\n    get blksize() {\n        return this.#blksize;\n    }\n    #ino;\n    get ino() {\n        return this.#ino;\n    }\n    #size;\n    get size() {\n        return this.#size;\n    }\n    #blocks;\n    get blocks() {\n        return this.#blocks;\n    }\n    #atimeMs;\n    get atimeMs() {\n        return this.#atimeMs;\n    }\n    #mtimeMs;\n    get mtimeMs() {\n        return this.#mtimeMs;\n    }\n    #ctimeMs;\n    get ctimeMs() {\n        return this.#ctimeMs;\n    }\n    #birthtimeMs;\n    get birthtimeMs() {\n        return this.#birthtimeMs;\n    }\n    #atime;\n    get atime() {\n        return this.#atime;\n    }\n    #mtime;\n    get mtime() {\n        return this.#mtime;\n    }\n    #ctime;\n    get ctime() {\n        return this.#ctime;\n    }\n    #birthtime;\n    get birthtime() {\n        return this.#birthtime;\n    }\n    #matchName;\n    #depth;\n    #fullpath;\n    #fullpathPosix;\n    #relative;\n    #relativePosix;\n    #type;\n    #children;\n    #linkTarget;\n    #realpath;\n    /**\n     * This property is for compatibility with the Dirent class as of\n     * Node v20, where Dirent['parentPath'] refers to the path of the\n     * directory that was passed to readdir. For root entries, it's the path\n     * to the entry itself.\n     */\n    get parentPath() {\n        return (this.parent || this).fullpath();\n    }\n    /**\n     * Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,\n     * this property refers to the *parent* path, not the path object itself.\n     *\n     * @deprecated\n     */\n    get path() {\n        return this.parentPath;\n    }\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        this.name = name;\n        this.#matchName = nocase ? normalizeNocase(name) : normalize(name);\n        this.#type = type & TYPEMASK;\n        this.nocase = nocase;\n        this.roots = roots;\n        this.root = root || this;\n        this.#children = children;\n        this.#fullpath = opts.fullpath;\n        this.#relative = opts.relative;\n        this.#relativePosix = opts.relativePosix;\n        this.parent = opts.parent;\n        if (this.parent) {\n            this.#fs = this.parent.#fs;\n        }\n        else {\n            this.#fs = fsFromOption(opts.fs);\n        }\n    }\n    /**\n     * Returns the depth of the Path object from its root.\n     *\n     * For example, a path at `/foo/bar` would have a depth of 2.\n     */\n    depth() {\n        if (this.#depth !== undefined)\n            return this.#depth;\n        if (!this.parent)\n            return (this.#depth = 0);\n        return (this.#depth = this.parent.depth() + 1);\n    }\n    /**\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Get the Path object referenced by the string path, resolved from this Path\n     */\n    resolve(path) {\n        if (!path) {\n            return this;\n        }\n        const rootPath = this.getRootString(path);\n        const dir = path.substring(rootPath.length);\n        const dirParts = dir.split(this.splitSep);\n        const result = rootPath ?\n            this.getRoot(rootPath).#resolveParts(dirParts)\n            : this.#resolveParts(dirParts);\n        return result;\n    }\n    #resolveParts(dirParts) {\n        let p = this;\n        for (const part of dirParts) {\n            p = p.child(part);\n        }\n        return p;\n    }\n    /**\n     * Returns the cached children Path objects, if still available.  If they\n     * have fallen out of the cache, then returns an empty array, and resets the\n     * READDIR_CALLED bit, so that future calls to readdir() will require an fs\n     * lookup.\n     *\n     * @internal\n     */\n    children() {\n        const cached = this.#children.get(this);\n        if (cached) {\n            return cached;\n        }\n        const children = Object.assign([], { provisional: 0 });\n        this.#children.set(this, children);\n        this.#type &= ~READDIR_CALLED;\n        return children;\n    }\n    /**\n     * Resolves a path portion and returns or creates the child Path.\n     *\n     * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is\n     * `'..'`.\n     *\n     * This should not be called directly.  If `pathPart` contains any path\n     * separators, it will lead to unsafe undefined behavior.\n     *\n     * Use `Path.resolve()` instead.\n     *\n     * @internal\n     */\n    child(pathPart, opts) {\n        if (pathPart === '' || pathPart === '.') {\n            return this;\n        }\n        if (pathPart === '..') {\n            return this.parent || this;\n        }\n        // find the child\n        const children = this.children();\n        const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);\n        for (const p of children) {\n            if (p.#matchName === name) {\n                return p;\n            }\n        }\n        // didn't find it, create provisional child, since it might not\n        // actually exist.  If we know the parent isn't a dir, then\n        // in fact it CAN'T exist.\n        const s = this.parent ? this.sep : '';\n        const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : undefined;\n        const pchild = this.newChild(pathPart, UNKNOWN, {\n            ...opts,\n            parent: this,\n            fullpath,\n        });\n        if (!this.canReaddir()) {\n            pchild.#type |= ENOENT;\n        }\n        // don't have to update provisional, because if we have real children,\n        // then provisional is set to children.length, otherwise a lower number\n        children.push(pchild);\n        return pchild;\n    }\n    /**\n     * The relative path from the cwd. If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpath()\n     */\n    relative() {\n        if (this.isCWD)\n            return '';\n        if (this.#relative !== undefined) {\n            return this.#relative;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relative = this.name);\n        }\n        const pv = p.relative();\n        return pv + (!pv || !p.parent ? '' : this.sep) + name;\n    }\n    /**\n     * The relative path from the cwd, using / as the path separator.\n     * If it does not share an ancestor with\n     * the cwd, then this ends up being equivalent to the fullpathPosix()\n     * On posix systems, this is identical to relative().\n     */\n    relativePosix() {\n        if (this.sep === '/')\n            return this.relative();\n        if (this.isCWD)\n            return '';\n        if (this.#relativePosix !== undefined)\n            return this.#relativePosix;\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#relativePosix = this.fullpathPosix());\n        }\n        const pv = p.relativePosix();\n        return pv + (!pv || !p.parent ? '' : '/') + name;\n    }\n    /**\n     * The fully resolved path string for this Path entry\n     */\n    fullpath() {\n        if (this.#fullpath !== undefined) {\n            return this.#fullpath;\n        }\n        const name = this.name;\n        const p = this.parent;\n        if (!p) {\n            return (this.#fullpath = this.name);\n        }\n        const pv = p.fullpath();\n        const fp = pv + (!p.parent ? '' : this.sep) + name;\n        return (this.#fullpath = fp);\n    }\n    /**\n     * On platforms other than windows, this is identical to fullpath.\n     *\n     * On windows, this is overridden to return the forward-slash form of the\n     * full UNC path.\n     */\n    fullpathPosix() {\n        if (this.#fullpathPosix !== undefined)\n            return this.#fullpathPosix;\n        if (this.sep === '/')\n            return (this.#fullpathPosix = this.fullpath());\n        if (!this.parent) {\n            const p = this.fullpath().replace(/\\\\/g, '/');\n            if (/^[a-z]:\\//i.test(p)) {\n                return (this.#fullpathPosix = `//?/${p}`);\n            }\n            else {\n                return (this.#fullpathPosix = p);\n            }\n        }\n        const p = this.parent;\n        const pfpp = p.fullpathPosix();\n        const fpp = pfpp + (!pfpp || !p.parent ? '' : '/') + this.name;\n        return (this.#fullpathPosix = fpp);\n    }\n    /**\n     * Is the Path of an unknown type?\n     *\n     * Note that we might know *something* about it if there has been a previous\n     * filesystem operation, for example that it does not exist, or is not a\n     * link, or whether it has child entries.\n     */\n    isUnknown() {\n        return (this.#type & IFMT) === UNKNOWN;\n    }\n    isType(type) {\n        return this[`is${type}`]();\n    }\n    getType() {\n        return (this.isUnknown() ? 'Unknown'\n            : this.isDirectory() ? 'Directory'\n                : this.isFile() ? 'File'\n                    : this.isSymbolicLink() ? 'SymbolicLink'\n                        : this.isFIFO() ? 'FIFO'\n                            : this.isCharacterDevice() ? 'CharacterDevice'\n                                : this.isBlockDevice() ? 'BlockDevice'\n                                    : /* c8 ignore start */ this.isSocket() ? 'Socket'\n                                        : 'Unknown');\n        /* c8 ignore stop */\n    }\n    /**\n     * Is the Path a regular file?\n     */\n    isFile() {\n        return (this.#type & IFMT) === IFREG;\n    }\n    /**\n     * Is the Path a directory?\n     */\n    isDirectory() {\n        return (this.#type & IFMT) === IFDIR;\n    }\n    /**\n     * Is the path a character device?\n     */\n    isCharacterDevice() {\n        return (this.#type & IFMT) === IFCHR;\n    }\n    /**\n     * Is the path a block device?\n     */\n    isBlockDevice() {\n        return (this.#type & IFMT) === IFBLK;\n    }\n    /**\n     * Is the path a FIFO pipe?\n     */\n    isFIFO() {\n        return (this.#type & IFMT) === IFIFO;\n    }\n    /**\n     * Is the path a socket?\n     */\n    isSocket() {\n        return (this.#type & IFMT) === IFSOCK;\n    }\n    /**\n     * Is the path a symbolic link?\n     */\n    isSymbolicLink() {\n        return (this.#type & IFLNK) === IFLNK;\n    }\n    /**\n     * Return the entry if it has been subject of a successful lstat, or\n     * undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* simply\n     * mean that we haven't called lstat on it.\n     */\n    lstatCached() {\n        return this.#type & LSTAT_CALLED ? this : undefined;\n    }\n    /**\n     * Return the cached link target if the entry has been the subject of a\n     * successful readlink, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readlink() has been called at some point.\n     */\n    readlinkCached() {\n        return this.#linkTarget;\n    }\n    /**\n     * Returns the cached realpath target if the entry has been the subject\n     * of a successful realpath, or undefined otherwise.\n     *\n     * Does not read the filesystem, so an undefined result *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * realpath() has been called at some point.\n     */\n    realpathCached() {\n        return this.#realpath;\n    }\n    /**\n     * Returns the cached child Path entries array if the entry has been the\n     * subject of a successful readdir(), or [] otherwise.\n     *\n     * Does not read the filesystem, so an empty array *could* just mean we\n     * don't have any cached data. Only use it if you are very sure that a\n     * readdir() has been called recently enough to still be valid.\n     */\n    readdirCached() {\n        const children = this.children();\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * Return true if it's worth trying to readlink.  Ie, we don't (yet) have\n     * any indication that readlink will definitely fail.\n     *\n     * Returns false if the path is known to not be a symlink, if a previous\n     * readlink failed, or if the entry does not exist.\n     */\n    canReadlink() {\n        if (this.#linkTarget)\n            return true;\n        if (!this.parent)\n            return false;\n        // cases where it cannot possibly succeed\n        const ifmt = this.#type & IFMT;\n        return !((ifmt !== UNKNOWN && ifmt !== IFLNK) ||\n            this.#type & ENOREADLINK ||\n            this.#type & ENOENT);\n    }\n    /**\n     * Return true if readdir has previously been successfully called on this\n     * path, indicating that cachedReaddir() is likely valid.\n     */\n    calledReaddir() {\n        return !!(this.#type & READDIR_CALLED);\n    }\n    /**\n     * Returns true if the path is known to not exist. That is, a previous lstat\n     * or readdir failed to verify its existence when that would have been\n     * expected, or a parent entry was marked either enoent or enotdir.\n     */\n    isENOENT() {\n        return !!(this.#type & ENOENT);\n    }\n    /**\n     * Return true if the path is a match for the given path name.  This handles\n     * case sensitivity and unicode normalization.\n     *\n     * Note: even on case-sensitive systems, it is **not** safe to test the\n     * equality of the `.name` property to determine whether a given pathname\n     * matches, due to unicode normalization mismatches.\n     *\n     * Always use this method instead of testing the `path.name` property\n     * directly.\n     */\n    isNamed(n) {\n        return !this.nocase ?\n            this.#matchName === normalize(n)\n            : this.#matchName === normalizeNocase(n);\n    }\n    /**\n     * Return the Path object corresponding to the target of a symbolic link.\n     *\n     * If the Path is not a symbolic link, or if the readlink call fails for any\n     * reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     */\n    async readlink() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = await this.#fs.promises.readlink(this.fullpath());\n            const linkTarget = (await this.parent.realpath())?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    /**\n     * Synchronous {@link PathBase.readlink}\n     */\n    readlinkSync() {\n        const target = this.#linkTarget;\n        if (target) {\n            return target;\n        }\n        if (!this.canReadlink()) {\n            return undefined;\n        }\n        /* c8 ignore start */\n        // already covered by the canReadlink test, here for ts grumples\n        if (!this.parent) {\n            return undefined;\n        }\n        /* c8 ignore stop */\n        try {\n            const read = this.#fs.readlinkSync(this.fullpath());\n            const linkTarget = this.parent.realpathSync()?.resolve(read);\n            if (linkTarget) {\n                return (this.#linkTarget = linkTarget);\n            }\n        }\n        catch (er) {\n            this.#readlinkFail(er.code);\n            return undefined;\n        }\n    }\n    #readdirSuccess(children) {\n        // succeeded, mark readdir called bit\n        this.#type |= READDIR_CALLED;\n        // mark all remaining provisional children as ENOENT\n        for (let p = children.provisional; p < children.length; p++) {\n            const c = children[p];\n            if (c)\n                c.#markENOENT();\n        }\n    }\n    #markENOENT() {\n        // mark as UNKNOWN and ENOENT\n        if (this.#type & ENOENT)\n            return;\n        this.#type = (this.#type | ENOENT) & IFMT_UNKNOWN;\n        this.#markChildrenENOENT();\n    }\n    #markChildrenENOENT() {\n        // all children are provisional and do not exist\n        const children = this.children();\n        children.provisional = 0;\n        for (const p of children) {\n            p.#markENOENT();\n        }\n    }\n    #markENOREALPATH() {\n        this.#type |= ENOREALPATH;\n        this.#markENOTDIR();\n    }\n    // save the information when we know the entry is not a dir\n    #markENOTDIR() {\n        // entry is not a directory, so any children can't exist.\n        // this *should* be impossible, since any children created\n        // after it's been marked ENOTDIR should be marked ENOENT,\n        // so it won't even get to this point.\n        /* c8 ignore start */\n        if (this.#type & ENOTDIR)\n            return;\n        /* c8 ignore stop */\n        let t = this.#type;\n        // this could happen if we stat a dir, then delete it,\n        // then try to read it or one of its children.\n        if ((t & IFMT) === IFDIR)\n            t &= IFMT_UNKNOWN;\n        this.#type = t | ENOTDIR;\n        this.#markChildrenENOENT();\n    }\n    #readdirFail(code = '') {\n        // markENOTDIR and markENOENT also set provisional=0\n        if (code === 'ENOTDIR' || code === 'EPERM') {\n            this.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            this.#markENOENT();\n        }\n        else {\n            this.children().provisional = 0;\n        }\n    }\n    #lstatFail(code = '') {\n        // Windows just raises ENOENT in this case, disable for win CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR') {\n            // already know it has a parent by this point\n            const p = this.parent;\n            p.#markENOTDIR();\n        }\n        else if (code === 'ENOENT') {\n            /* c8 ignore stop */\n            this.#markENOENT();\n        }\n    }\n    #readlinkFail(code = '') {\n        let ter = this.#type;\n        ter |= ENOREADLINK;\n        if (code === 'ENOENT')\n            ter |= ENOENT;\n        // windows gets a weird error when you try to readlink a file\n        if (code === 'EINVAL' || code === 'UNKNOWN') {\n            // exists, but not a symlink, we don't know WHAT it is, so remove\n            // all IFMT bits.\n            ter &= IFMT_UNKNOWN;\n        }\n        this.#type = ter;\n        // windows just gets ENOENT in this case.  We do cover the case,\n        // just disabled because it's impossible on Windows CI\n        /* c8 ignore start */\n        if (code === 'ENOTDIR' && this.parent) {\n            this.parent.#markENOTDIR();\n        }\n        /* c8 ignore stop */\n    }\n    #readdirAddChild(e, c) {\n        return (this.#readdirMaybePromoteChild(e, c) ||\n            this.#readdirAddNewChild(e, c));\n    }\n    #readdirAddNewChild(e, c) {\n        // alloc new entry at head, so it's never provisional\n        const type = entToType(e);\n        const child = this.newChild(e.name, type, { parent: this });\n        const ifmt = child.#type & IFMT;\n        if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {\n            child.#type |= ENOTDIR;\n        }\n        c.unshift(child);\n        c.provisional++;\n        return child;\n    }\n    #readdirMaybePromoteChild(e, c) {\n        for (let p = c.provisional; p < c.length; p++) {\n            const pchild = c[p];\n            const name = this.nocase ? normalizeNocase(e.name) : normalize(e.name);\n            if (name !== pchild.#matchName) {\n                continue;\n            }\n            return this.#readdirPromoteChild(e, pchild, p, c);\n        }\n    }\n    #readdirPromoteChild(e, p, index, c) {\n        const v = p.name;\n        // retain any other flags, but set ifmt from dirent\n        p.#type = (p.#type & IFMT_UNKNOWN) | entToType(e);\n        // case sensitivity fixing when we learn the true name.\n        if (v !== e.name)\n            p.name = e.name;\n        // just advance provisional index (potentially off the list),\n        // otherwise we have to splice/pop it out and re-insert at head\n        if (index !== c.provisional) {\n            if (index === c.length - 1)\n                c.pop();\n            else\n                c.splice(index, 1);\n            c.unshift(p);\n        }\n        c.provisional++;\n        return p;\n    }\n    /**\n     * Call lstat() on this Path, and update all known information that can be\n     * determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(await this.#fs.promises.lstat(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    /**\n     * synchronous {@link PathBase.lstat}\n     */\n    lstatSync() {\n        if ((this.#type & ENOENT) === 0) {\n            try {\n                this.#applyStat(this.#fs.lstatSync(this.fullpath()));\n                return this;\n            }\n            catch (er) {\n                this.#lstatFail(er.code);\n            }\n        }\n    }\n    #applyStat(st) {\n        const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode, mtime, mtimeMs, nlink, rdev, size, uid, } = st;\n        this.#atime = atime;\n        this.#atimeMs = atimeMs;\n        this.#birthtime = birthtime;\n        this.#birthtimeMs = birthtimeMs;\n        this.#blksize = blksize;\n        this.#blocks = blocks;\n        this.#ctime = ctime;\n        this.#ctimeMs = ctimeMs;\n        this.#dev = dev;\n        this.#gid = gid;\n        this.#ino = ino;\n        this.#mode = mode;\n        this.#mtime = mtime;\n        this.#mtimeMs = mtimeMs;\n        this.#nlink = nlink;\n        this.#rdev = rdev;\n        this.#size = size;\n        this.#uid = uid;\n        const ifmt = entToType(st);\n        // retain any other flags, but set the ifmt\n        this.#type = (this.#type & IFMT_UNKNOWN) | ifmt | LSTAT_CALLED;\n        if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {\n            this.#type |= ENOTDIR;\n        }\n    }\n    #onReaddirCB = [];\n    #readdirCBInFlight = false;\n    #callOnReaddirCB(children) {\n        this.#readdirCBInFlight = false;\n        const cbs = this.#onReaddirCB.slice();\n        this.#onReaddirCB.length = 0;\n        cbs.forEach(cb => cb(null, children));\n    }\n    /**\n     * Standard node-style callback interface to get list of directory entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     *\n     * @param cb The callback called with (er, entries).  Note that the `er`\n     * param is somewhat extraneous, as all readdir() errors are handled and\n     * simply result in an empty set of entries being returned.\n     * @param allowZalgo Boolean indicating that immediately known results should\n     * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release\n     * zalgo at your peril, the dark pony lord is devious and unforgiving.\n     */\n    readdirCB(cb, allowZalgo = false) {\n        if (!this.canReaddir()) {\n            if (allowZalgo)\n                cb(null, []);\n            else\n                queueMicrotask(() => cb(null, []));\n            return;\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            const c = children.slice(0, children.provisional);\n            if (allowZalgo)\n                cb(null, c);\n            else\n                queueMicrotask(() => cb(null, c));\n            return;\n        }\n        // don't have to worry about zalgo at this point.\n        this.#onReaddirCB.push(cb);\n        if (this.#readdirCBInFlight) {\n            return;\n        }\n        this.#readdirCBInFlight = true;\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        this.#fs.readdir(fullpath, { withFileTypes: true }, (er, entries) => {\n            if (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            else {\n                // if we didn't get an error, we always get entries.\n                //@ts-ignore\n                for (const e of entries) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            this.#callOnReaddirCB(children.slice(0, children.provisional));\n            return;\n        });\n    }\n    #asyncReaddirInFlight;\n    /**\n     * Return an array of known child entries.\n     *\n     * If the Path cannot or does not contain any children, then an empty array\n     * is returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async readdir() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        if (this.#asyncReaddirInFlight) {\n            await this.#asyncReaddirInFlight;\n        }\n        else {\n            /* c8 ignore start */\n            let resolve = () => { };\n            /* c8 ignore stop */\n            this.#asyncReaddirInFlight = new Promise(res => (resolve = res));\n            try {\n                for (const e of await this.#fs.promises.readdir(fullpath, {\n                    withFileTypes: true,\n                })) {\n                    this.#readdirAddChild(e, children);\n                }\n                this.#readdirSuccess(children);\n            }\n            catch (er) {\n                this.#readdirFail(er.code);\n                children.provisional = 0;\n            }\n            this.#asyncReaddirInFlight = undefined;\n            resolve();\n        }\n        return children.slice(0, children.provisional);\n    }\n    /**\n     * synchronous {@link PathBase.readdir}\n     */\n    readdirSync() {\n        if (!this.canReaddir()) {\n            return [];\n        }\n        const children = this.children();\n        if (this.calledReaddir()) {\n            return children.slice(0, children.provisional);\n        }\n        // else read the directory, fill up children\n        // de-provisionalize any provisional children.\n        const fullpath = this.fullpath();\n        try {\n            for (const e of this.#fs.readdirSync(fullpath, {\n                withFileTypes: true,\n            })) {\n                this.#readdirAddChild(e, children);\n            }\n            this.#readdirSuccess(children);\n        }\n        catch (er) {\n            this.#readdirFail(er.code);\n            children.provisional = 0;\n        }\n        return children.slice(0, children.provisional);\n    }\n    canReaddir() {\n        if (this.#type & ENOCHILD)\n            return false;\n        const ifmt = IFMT & this.#type;\n        // we always set ENOTDIR when setting IFMT, so should be impossible\n        /* c8 ignore start */\n        if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {\n            return false;\n        }\n        /* c8 ignore stop */\n        return true;\n    }\n    shouldWalk(dirs, walkFilter) {\n        return ((this.#type & IFDIR) === IFDIR &&\n            !(this.#type & ENOCHILD) &&\n            !dirs.has(this) &&\n            (!walkFilter || walkFilter(this)));\n    }\n    /**\n     * Return the Path object corresponding to path as resolved\n     * by realpath(3).\n     *\n     * If the realpath call fails for any reason, `undefined` is returned.\n     *\n     * Result is cached, and thus may be outdated if the filesystem is mutated.\n     * On success, returns a Path object.\n     */\n    async realpath() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = await this.#fs.promises.realpath(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Synchronous {@link realpath}\n     */\n    realpathSync() {\n        if (this.#realpath)\n            return this.#realpath;\n        if ((ENOREALPATH | ENOREADLINK | ENOENT) & this.#type)\n            return undefined;\n        try {\n            const rp = this.#fs.realpathSync(this.fullpath());\n            return (this.#realpath = this.resolve(rp));\n        }\n        catch (_) {\n            this.#markENOREALPATH();\n        }\n    }\n    /**\n     * Internal method to mark this Path object as the scurry cwd,\n     * called by {@link PathScurry#chdir}\n     *\n     * @internal\n     */\n    [setAsCwd](oldCwd) {\n        if (oldCwd === this)\n            return;\n        oldCwd.isCWD = false;\n        this.isCWD = true;\n        const changed = new Set([]);\n        let rp = [];\n        let p = this;\n        while (p && p.parent) {\n            changed.add(p);\n            p.#relative = rp.join(this.sep);\n            p.#relativePosix = rp.join('/');\n            p = p.parent;\n            rp.push('..');\n        }\n        // now un-memoize parents of old cwd\n        p = oldCwd;\n        while (p && p.parent && !changed.has(p)) {\n            p.#relative = undefined;\n            p.#relativePosix = undefined;\n            p = p.parent;\n        }\n    }\n}\nexports.PathBase = PathBase;\n/**\n * Path class used on win32 systems\n *\n * Uses `'\\\\'` as the path separator for returned paths, either `'\\\\'` or `'/'`\n * as the path separator for parsing paths.\n */\nclass PathWin32 extends PathBase {\n    /**\n     * Separator for generating path strings.\n     */\n    sep = '\\\\';\n    /**\n     * Separator for parsing path strings.\n     */\n    splitSep = eitherSep;\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathWin32(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return node_path_1.win32.parse(path).root;\n    }\n    /**\n     * @internal\n     */\n    getRoot(rootPath) {\n        rootPath = uncToDrive(rootPath.toUpperCase());\n        if (rootPath === this.root.name) {\n            return this.root;\n        }\n        // ok, not that one, check if it matches another we know about\n        for (const [compare, root] of Object.entries(this.roots)) {\n            if (this.sameRoot(rootPath, compare)) {\n                return (this.roots[rootPath] = root);\n            }\n        }\n        // otherwise, have to create a new one.\n        return (this.roots[rootPath] = new PathScurryWin32(rootPath, this).root);\n    }\n    /**\n     * @internal\n     */\n    sameRoot(rootPath, compare = this.root.name) {\n        // windows can (rarely) have case-sensitive filesystem, but\n        // UNC and drive letters are always case-insensitive, and canonically\n        // represented uppercase.\n        rootPath = rootPath\n            .toUpperCase()\n            .replace(/\\//g, '\\\\')\n            .replace(uncDriveRegexp, '$1\\\\');\n        return rootPath === compare;\n    }\n}\nexports.PathWin32 = PathWin32;\n/**\n * Path class used on all posix systems.\n *\n * Uses `'/'` as the path separator.\n */\nclass PathPosix extends PathBase {\n    /**\n     * separator for parsing path strings\n     */\n    splitSep = '/';\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    /**\n     * Do not create new Path objects directly.  They should always be accessed\n     * via the PathScurry class or other methods on the Path class.\n     *\n     * @internal\n     */\n    constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {\n        super(name, type, root, roots, nocase, children, opts);\n    }\n    /**\n     * @internal\n     */\n    getRootString(path) {\n        return path.startsWith('/') ? '/' : '';\n    }\n    /**\n     * @internal\n     */\n    getRoot(_rootPath) {\n        return this.root;\n    }\n    /**\n     * @internal\n     */\n    newChild(name, type = UNKNOWN, opts = {}) {\n        return new PathPosix(name, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);\n    }\n}\nexports.PathPosix = PathPosix;\n/**\n * The base class for all PathScurry classes, providing the interface for path\n * resolution and filesystem operations.\n *\n * Typically, you should *not* instantiate this class directly, but rather one\n * of the platform-specific classes, or the exported {@link PathScurry} which\n * defaults to the current platform.\n */\nclass PathScurryBase {\n    /**\n     * The root Path entry for the current working directory of this Scurry\n     */\n    root;\n    /**\n     * The string path for the root of this Scurry's current working directory\n     */\n    rootPath;\n    /**\n     * A collection of all roots encountered, referenced by rootPath\n     */\n    roots;\n    /**\n     * The Path entry corresponding to this PathScurry's current working directory.\n     */\n    cwd;\n    #resolveCache;\n    #resolvePosixCache;\n    #children;\n    /**\n     * Perform path comparisons case-insensitively.\n     *\n     * Defaults true on Darwin and Windows systems, false elsewhere.\n     */\n    nocase;\n    #fs;\n    /**\n     * This class should not be instantiated directly.\n     *\n     * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry\n     *\n     * @internal\n     */\n    constructor(cwd = process.cwd(), pathImpl, sep, { nocase, childrenCacheSize = 16 * 1024, fs = defaultFS, } = {}) {\n        this.#fs = fsFromOption(fs);\n        if (cwd instanceof URL || cwd.startsWith('file://')) {\n            cwd = (0, node_url_1.fileURLToPath)(cwd);\n        }\n        // resolve and split root, and then add to the store.\n        // this is the only time we call path.resolve()\n        const cwdPath = pathImpl.resolve(cwd);\n        this.roots = Object.create(null);\n        this.rootPath = this.parseRootPath(cwdPath);\n        this.#resolveCache = new ResolveCache();\n        this.#resolvePosixCache = new ResolveCache();\n        this.#children = new ChildrenCache(childrenCacheSize);\n        const split = cwdPath.substring(this.rootPath.length).split(sep);\n        // resolve('/') leaves '', splits to [''], we don't want that.\n        if (split.length === 1 && !split[0]) {\n            split.pop();\n        }\n        /* c8 ignore start */\n        if (nocase === undefined) {\n            throw new TypeError('must provide nocase setting to PathScurryBase ctor');\n        }\n        /* c8 ignore stop */\n        this.nocase = nocase;\n        this.root = this.newRoot(this.#fs);\n        this.roots[this.rootPath] = this.root;\n        let prev = this.root;\n        let len = split.length - 1;\n        const joinSep = pathImpl.sep;\n        let abs = this.rootPath;\n        let sawFirst = false;\n        for (const part of split) {\n            const l = len--;\n            prev = prev.child(part, {\n                relative: new Array(l).fill('..').join(joinSep),\n                relativePosix: new Array(l).fill('..').join('/'),\n                fullpath: (abs += (sawFirst ? '' : joinSep) + part),\n            });\n            sawFirst = true;\n        }\n        this.cwd = prev;\n    }\n    /**\n     * Get the depth of a provided path, string, or the cwd\n     */\n    depth(path = this.cwd) {\n        if (typeof path === 'string') {\n            path = this.cwd.resolve(path);\n        }\n        return path.depth();\n    }\n    /**\n     * Return the cache of child entries.  Exposed so subclasses can create\n     * child Path objects in a platform-specific way.\n     *\n     * @internal\n     */\n    childrenCache() {\n        return this.#children;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolve(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolveCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpath();\n        this.#resolveCache.set(r, result);\n        return result;\n    }\n    /**\n     * Resolve one or more path strings to a resolved string, returning\n     * the posix path.  Identical to .resolve() on posix systems, but on\n     * windows will return a forward-slash separated UNC path.\n     *\n     * Same interface as require('path').resolve.\n     *\n     * Much faster than path.resolve() when called multiple times for the same\n     * path, because the resolved Path objects are cached.  Much slower\n     * otherwise.\n     */\n    resolvePosix(...paths) {\n        // first figure out the minimum number of paths we have to test\n        // we always start at cwd, but any absolutes will bump the start\n        let r = '';\n        for (let i = paths.length - 1; i >= 0; i--) {\n            const p = paths[i];\n            if (!p || p === '.')\n                continue;\n            r = r ? `${p}/${r}` : p;\n            if (this.isAbsolute(p)) {\n                break;\n            }\n        }\n        const cached = this.#resolvePosixCache.get(r);\n        if (cached !== undefined) {\n            return cached;\n        }\n        const result = this.cwd.resolve(r).fullpathPosix();\n        this.#resolvePosixCache.set(r, result);\n        return result;\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or entry\n     */\n    relative(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relative();\n    }\n    /**\n     * find the relative path from the cwd to the supplied path string or\n     * entry, using / as the path delimiter, even on Windows.\n     */\n    relativePosix(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.relativePosix();\n    }\n    /**\n     * Return the basename for the provided string or Path object\n     */\n    basename(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.name;\n    }\n    /**\n     * Return the dirname for the provided string or Path object\n     */\n    dirname(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return (entry.parent || entry).fullpath();\n    }\n    async readdir(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else {\n            const p = await entry.readdir();\n            return withFileTypes ? p : p.map(e => e.name);\n        }\n    }\n    readdirSync(entry = this.cwd, opts = {\n        withFileTypes: true,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true } = opts;\n        if (!entry.canReaddir()) {\n            return [];\n        }\n        else if (withFileTypes) {\n            return entry.readdirSync();\n        }\n        else {\n            return entry.readdirSync().map(e => e.name);\n        }\n    }\n    /**\n     * Call lstat() on the string or Path object, and update all known\n     * information that can be determined.\n     *\n     * Note that unlike `fs.lstat()`, the returned value does not contain some\n     * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that\n     * information is required, you will need to call `fs.lstat` yourself.\n     *\n     * If the Path refers to a nonexistent file, or if the lstat call fails for\n     * any reason, `undefined` is returned.  Otherwise the updated Path object is\n     * returned.\n     *\n     * Results are cached, and thus may be out of date if the filesystem is\n     * mutated.\n     */\n    async lstat(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstat();\n    }\n    /**\n     * synchronous {@link PathScurryBase.lstat}\n     */\n    lstatSync(entry = this.cwd) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        return entry.lstatSync();\n    }\n    async readlink(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.readlink();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    readlinkSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.readlinkSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async realpath(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = await entry.realpath();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    realpathSync(entry = this.cwd, { withFileTypes } = {\n        withFileTypes: false,\n    }) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            withFileTypes = entry.withFileTypes;\n            entry = this.cwd;\n        }\n        const e = entry.realpathSync();\n        return withFileTypes ? e : e?.fullpath();\n    }\n    async walk(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const walk = (dir, cb) => {\n            dirs.add(dir);\n            dir.readdirCB((er, entries) => {\n                /* c8 ignore start */\n                if (er) {\n                    return cb(er);\n                }\n                /* c8 ignore stop */\n                let len = entries.length;\n                if (!len)\n                    return cb();\n                const next = () => {\n                    if (--len === 0) {\n                        cb();\n                    }\n                };\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        results.push(withFileTypes ? e : e.fullpath());\n                    }\n                    if (follow && e.isSymbolicLink()) {\n                        e.realpath()\n                            .then(r => (r?.isUnknown() ? r.lstat() : r))\n                            .then(r => r?.shouldWalk(dirs, walkFilter) ? walk(r, next) : next());\n                    }\n                    else {\n                        if (e.shouldWalk(dirs, walkFilter)) {\n                            walk(e, next);\n                        }\n                        else {\n                            next();\n                        }\n                    }\n                }\n            }, true); // zalgooooooo\n        };\n        const start = entry;\n        return new Promise((res, rej) => {\n            walk(start, er => {\n                /* c8 ignore start */\n                if (er)\n                    return rej(er);\n                /* c8 ignore stop */\n                res(results);\n            });\n        });\n    }\n    walkSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = [];\n        if (!filter || filter(entry)) {\n            results.push(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    results.push(withFileTypes ? e : e.fullpath());\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n        return results;\n    }\n    /**\n     * Support for `for await`\n     *\n     * Alias for {@link PathScurryBase.iterate}\n     *\n     * Note: As of Node 19, this is very slow, compared to other methods of\n     * walking.  Consider using {@link PathScurryBase.stream} if memory overhead\n     * and backpressure are concerns, or {@link PathScurryBase.walk} if not.\n     */\n    [Symbol.asyncIterator]() {\n        return this.iterate();\n    }\n    iterate(entry = this.cwd, options = {}) {\n        // iterating async over the stream is significantly more performant,\n        // especially in the warm-cache scenario, because it buffers up directory\n        // entries in the background instead of waiting for a yield for each one.\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            options = entry;\n            entry = this.cwd;\n        }\n        return this.stream(entry, options)[Symbol.asyncIterator]();\n    }\n    /**\n     * Iterating over a PathScurry performs a synchronous walk.\n     *\n     * Alias for {@link PathScurryBase.iterateSync}\n     */\n    [Symbol.iterator]() {\n        return this.iterateSync();\n    }\n    *iterateSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        if (!filter || filter(entry)) {\n            yield withFileTypes ? entry : entry.fullpath();\n        }\n        const dirs = new Set([entry]);\n        for (const dir of dirs) {\n            const entries = dir.readdirSync();\n            for (const e of entries) {\n                if (!filter || filter(e)) {\n                    yield withFileTypes ? e : e.fullpath();\n                }\n                let r = e;\n                if (e.isSymbolicLink()) {\n                    if (!(follow && (r = e.realpathSync())))\n                        continue;\n                    if (r.isUnknown())\n                        r.lstatSync();\n                }\n                if (r.shouldWalk(dirs, walkFilter)) {\n                    dirs.add(r);\n                }\n            }\n        }\n    }\n    stream(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const dirs = new Set();\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const onReaddir = (er, entries, didRealpaths = false) => {\n                    /* c8 ignore start */\n                    if (er)\n                        return results.emit('error', er);\n                    /* c8 ignore stop */\n                    if (follow && !didRealpaths) {\n                        const promises = [];\n                        for (const e of entries) {\n                            if (e.isSymbolicLink()) {\n                                promises.push(e\n                                    .realpath()\n                                    .then((r) => r?.isUnknown() ? r.lstat() : r));\n                            }\n                        }\n                        if (promises.length) {\n                            Promise.all(promises).then(() => onReaddir(null, entries, true));\n                            return;\n                        }\n                    }\n                    for (const e of entries) {\n                        if (e && (!filter || filter(e))) {\n                            if (!results.write(withFileTypes ? e : e.fullpath())) {\n                                paused = true;\n                            }\n                        }\n                    }\n                    processing--;\n                    for (const e of entries) {\n                        const r = e.realpathCached() || e;\n                        if (r.shouldWalk(dirs, walkFilter)) {\n                            queue.push(r);\n                        }\n                    }\n                    if (paused && !results.flowing) {\n                        results.once('drain', process);\n                    }\n                    else if (!sync) {\n                        process();\n                    }\n                };\n                // zalgo containment\n                let sync = true;\n                dir.readdirCB(onReaddir, true);\n                sync = false;\n            }\n        };\n        process();\n        return results;\n    }\n    streamSync(entry = this.cwd, opts = {}) {\n        if (typeof entry === 'string') {\n            entry = this.cwd.resolve(entry);\n        }\n        else if (!(entry instanceof PathBase)) {\n            opts = entry;\n            entry = this.cwd;\n        }\n        const { withFileTypes = true, follow = false, filter, walkFilter, } = opts;\n        const results = new minipass_1.Minipass({ objectMode: true });\n        const dirs = new Set();\n        if (!filter || filter(entry)) {\n            results.write(withFileTypes ? entry : entry.fullpath());\n        }\n        const queue = [entry];\n        let processing = 0;\n        const process = () => {\n            let paused = false;\n            while (!paused) {\n                const dir = queue.shift();\n                if (!dir) {\n                    if (processing === 0)\n                        results.end();\n                    return;\n                }\n                processing++;\n                dirs.add(dir);\n                const entries = dir.readdirSync();\n                for (const e of entries) {\n                    if (!filter || filter(e)) {\n                        if (!results.write(withFileTypes ? e : e.fullpath())) {\n                            paused = true;\n                        }\n                    }\n                }\n                processing--;\n                for (const e of entries) {\n                    let r = e;\n                    if (e.isSymbolicLink()) {\n                        if (!(follow && (r = e.realpathSync())))\n                            continue;\n                        if (r.isUnknown())\n                            r.lstatSync();\n                    }\n                    if (r.shouldWalk(dirs, walkFilter)) {\n                        queue.push(r);\n                    }\n                }\n            }\n            if (paused && !results.flowing)\n                results.once('drain', process);\n        };\n        process();\n        return results;\n    }\n    chdir(path = this.cwd) {\n        const oldCwd = this.cwd;\n        this.cwd = typeof path === 'string' ? this.cwd.resolve(path) : path;\n        this.cwd[setAsCwd](oldCwd);\n    }\n}\nexports.PathScurryBase = PathScurryBase;\n/**\n * Windows implementation of {@link PathScurryBase}\n *\n * Defaults to case insensitve, uses `'\\\\'` to generate path strings.  Uses\n * {@link PathWin32} for Path objects.\n */\nclass PathScurryWin32 extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '\\\\';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, node_path_1.win32, '\\\\', { ...opts, nocase });\n        this.nocase = nocase;\n        for (let p = this.cwd; p; p = p.parent) {\n            p.nocase = this.nocase;\n        }\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(dir) {\n        // if the path starts with a single separator, it's not a UNC, and we'll\n        // just get separator as the root, and driveFromUNC will return \\\n        // In that case, mount \\ on the root from the cwd.\n        return node_path_1.win32.parse(dir).root.toUpperCase();\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathWin32(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return (p.startsWith('/') || p.startsWith('\\\\') || /^[a-z]:(\\/|\\\\)/i.test(p));\n    }\n}\nexports.PathScurryWin32 = PathScurryWin32;\n/**\n * {@link PathScurryBase} implementation for all posix systems other than Darwin.\n *\n * Defaults to case-sensitive matching, uses `'/'` to generate path strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryPosix extends PathScurryBase {\n    /**\n     * separator for generating path strings\n     */\n    sep = '/';\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = false } = opts;\n        super(cwd, node_path_1.posix, '/', { ...opts, nocase });\n        this.nocase = nocase;\n    }\n    /**\n     * @internal\n     */\n    parseRootPath(_dir) {\n        return '/';\n    }\n    /**\n     * @internal\n     */\n    newRoot(fs) {\n        return new PathPosix(this.rootPath, IFDIR, undefined, this.roots, this.nocase, this.childrenCache(), { fs });\n    }\n    /**\n     * Return true if the provided path string is an absolute path\n     */\n    isAbsolute(p) {\n        return p.startsWith('/');\n    }\n}\nexports.PathScurryPosix = PathScurryPosix;\n/**\n * {@link PathScurryBase} implementation for Darwin (macOS) systems.\n *\n * Defaults to case-insensitive matching, uses `'/'` for generating path\n * strings.\n *\n * Uses {@link PathPosix} for Path objects.\n */\nclass PathScurryDarwin extends PathScurryPosix {\n    constructor(cwd = process.cwd(), opts = {}) {\n        const { nocase = true } = opts;\n        super(cwd, { ...opts, nocase });\n    }\n}\nexports.PathScurryDarwin = PathScurryDarwin;\n/**\n * Default {@link PathBase} implementation for the current platform.\n *\n * {@link PathWin32} on Windows systems, {@link PathPosix} on all others.\n */\nexports.Path = process.platform === 'win32' ? PathWin32 : PathPosix;\n/**\n * Default {@link PathScurryBase} implementation for the current platform.\n *\n * {@link PathScurryWin32} on Windows systems, {@link PathScurryDarwin} on\n * Darwin (macOS) systems, {@link PathScurryPosix} on all others.\n */\nexports.PathScurry = process.platform === 'win32' ? PathScurryWin32\n    : process.platform === 'darwin' ? PathScurryDarwin\n        : PathScurryPosix;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/**\n * @module LRUCache\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LRUCache = void 0;\nconst perf = typeof performance === 'object' &&\n    performance &&\n    typeof performance.now === 'function'\n    ? performance\n    : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ? process : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n    typeof PROCESS.emitWarning === 'function'\n        ? PROCESS.emitWarning(msg, type, code, fn)\n        : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n    //@ts-ignore\n    AS = class AbortSignal {\n        onabort;\n        _onabort = [];\n        reason;\n        aborted = false;\n        addEventListener(_, fn) {\n            this._onabort.push(fn);\n        }\n    };\n    //@ts-ignore\n    AC = class AbortController {\n        constructor() {\n            warnACPolyfill();\n        }\n        signal = new AS();\n        abort(reason) {\n            if (this.signal.aborted)\n                return;\n            //@ts-ignore\n            this.signal.reason = reason;\n            //@ts-ignore\n            this.signal.aborted = true;\n            //@ts-ignore\n            for (const fn of this.signal._onabort) {\n                fn(reason);\n            }\n            this.signal.onabort?.(reason);\n        }\n    };\n    let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n    const warnACPolyfill = () => {\n        if (!printACPolyfillWarning)\n            return;\n        printACPolyfillWarning = false;\n        emitWarning('AbortController is not defined. If using lru-cache in ' +\n            'node 14, load an AbortController polyfill from the ' +\n            '`node-abort-controller` package. A minimal polyfill is ' +\n            'provided for use by LRUCache.fetch(), but it should not be ' +\n            'relied upon in other contexts (eg, passing it to other APIs that ' +\n            'use AbortController/AbortSignal might have undesirable effects). ' +\n            'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n    };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values.  Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max)\n    ? null\n    : max <= Math.pow(2, 8)\n        ? Uint8Array\n        : max <= Math.pow(2, 16)\n            ? Uint16Array\n            : max <= Math.pow(2, 32)\n                ? Uint32Array\n                : max <= Number.MAX_SAFE_INTEGER\n                    ? ZeroArray\n                    : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n    constructor(size) {\n        super(size);\n        this.fill(0);\n    }\n}\nclass Stack {\n    heap;\n    length;\n    // private constructor\n    static #constructing = false;\n    static create(max) {\n        const HeapCls = getUintArray(max);\n        if (!HeapCls)\n            return [];\n        Stack.#constructing = true;\n        const s = new Stack(max, HeapCls);\n        Stack.#constructing = false;\n        return s;\n    }\n    constructor(max, HeapCls) {\n        /* c8 ignore start */\n        if (!Stack.#constructing) {\n            throw new TypeError('instantiate Stack using Stack.create(n)');\n        }\n        /* c8 ignore stop */\n        this.heap = new HeapCls(max);\n        this.length = 0;\n    }\n    push(n) {\n        this.heap[this.length++] = n;\n    }\n    pop() {\n        return this.heap[--this.length];\n    }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nclass LRUCache {\n    // options that cannot be changed without disaster\n    #max;\n    #maxSize;\n    #dispose;\n    #onInsert;\n    #disposeAfter;\n    #fetchMethod;\n    #memoMethod;\n    /**\n     * {@link LRUCache.OptionsBase.ttl}\n     */\n    ttl;\n    /**\n     * {@link LRUCache.OptionsBase.ttlResolution}\n     */\n    ttlResolution;\n    /**\n     * {@link LRUCache.OptionsBase.ttlAutopurge}\n     */\n    ttlAutopurge;\n    /**\n     * {@link LRUCache.OptionsBase.updateAgeOnGet}\n     */\n    updateAgeOnGet;\n    /**\n     * {@link LRUCache.OptionsBase.updateAgeOnHas}\n     */\n    updateAgeOnHas;\n    /**\n     * {@link LRUCache.OptionsBase.allowStale}\n     */\n    allowStale;\n    /**\n     * {@link LRUCache.OptionsBase.noDisposeOnSet}\n     */\n    noDisposeOnSet;\n    /**\n     * {@link LRUCache.OptionsBase.noUpdateTTL}\n     */\n    noUpdateTTL;\n    /**\n     * {@link LRUCache.OptionsBase.maxEntrySize}\n     */\n    maxEntrySize;\n    /**\n     * {@link LRUCache.OptionsBase.sizeCalculation}\n     */\n    sizeCalculation;\n    /**\n     * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n     */\n    noDeleteOnFetchRejection;\n    /**\n     * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n     */\n    noDeleteOnStaleGet;\n    /**\n     * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n     */\n    allowStaleOnFetchAbort;\n    /**\n     * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n     */\n    allowStaleOnFetchRejection;\n    /**\n     * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n     */\n    ignoreFetchAbort;\n    // computed properties\n    #size;\n    #calculatedSize;\n    #keyMap;\n    #keyList;\n    #valList;\n    #next;\n    #prev;\n    #head;\n    #tail;\n    #free;\n    #disposed;\n    #sizes;\n    #starts;\n    #ttls;\n    #hasDispose;\n    #hasFetchMethod;\n    #hasDisposeAfter;\n    #hasOnInsert;\n    /**\n     * Do not call this method unless you need to inspect the\n     * inner workings of the cache.  If anything returned by this\n     * object is modified in any way, strange breakage may occur.\n     *\n     * These fields are private for a reason!\n     *\n     * @internal\n     */\n    static unsafeExposeInternals(c) {\n        return {\n            // properties\n            starts: c.#starts,\n            ttls: c.#ttls,\n            sizes: c.#sizes,\n            keyMap: c.#keyMap,\n            keyList: c.#keyList,\n            valList: c.#valList,\n            next: c.#next,\n            prev: c.#prev,\n            get head() {\n                return c.#head;\n            },\n            get tail() {\n                return c.#tail;\n            },\n            free: c.#free,\n            // methods\n            isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n            backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n            moveToTail: (index) => c.#moveToTail(index),\n            indexes: (options) => c.#indexes(options),\n            rindexes: (options) => c.#rindexes(options),\n            isStale: (index) => c.#isStale(index),\n        };\n    }\n    // Protected read-only members\n    /**\n     * {@link LRUCache.OptionsBase.max} (read-only)\n     */\n    get max() {\n        return this.#max;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.maxSize} (read-only)\n     */\n    get maxSize() {\n        return this.#maxSize;\n    }\n    /**\n     * The total computed size of items in the cache (read-only)\n     */\n    get calculatedSize() {\n        return this.#calculatedSize;\n    }\n    /**\n     * The number of items stored in the cache (read-only)\n     */\n    get size() {\n        return this.#size;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n     */\n    get fetchMethod() {\n        return this.#fetchMethod;\n    }\n    get memoMethod() {\n        return this.#memoMethod;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.dispose} (read-only)\n     */\n    get dispose() {\n        return this.#dispose;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.onInsert} (read-only)\n     */\n    get onInsert() {\n        return this.#onInsert;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n     */\n    get disposeAfter() {\n        return this.#disposeAfter;\n    }\n    constructor(options) {\n        const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, onInsert, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;\n        if (max !== 0 && !isPosInt(max)) {\n            throw new TypeError('max option must be a nonnegative integer');\n        }\n        const UintArray = max ? getUintArray(max) : Array;\n        if (!UintArray) {\n            throw new Error('invalid max value: ' + max);\n        }\n        this.#max = max;\n        this.#maxSize = maxSize;\n        this.maxEntrySize = maxEntrySize || this.#maxSize;\n        this.sizeCalculation = sizeCalculation;\n        if (this.sizeCalculation) {\n            if (!this.#maxSize && !this.maxEntrySize) {\n                throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n            }\n            if (typeof this.sizeCalculation !== 'function') {\n                throw new TypeError('sizeCalculation set to non-function');\n            }\n        }\n        if (memoMethod !== undefined &&\n            typeof memoMethod !== 'function') {\n            throw new TypeError('memoMethod must be a function if defined');\n        }\n        this.#memoMethod = memoMethod;\n        if (fetchMethod !== undefined &&\n            typeof fetchMethod !== 'function') {\n            throw new TypeError('fetchMethod must be a function if specified');\n        }\n        this.#fetchMethod = fetchMethod;\n        this.#hasFetchMethod = !!fetchMethod;\n        this.#keyMap = new Map();\n        this.#keyList = new Array(max).fill(undefined);\n        this.#valList = new Array(max).fill(undefined);\n        this.#next = new UintArray(max);\n        this.#prev = new UintArray(max);\n        this.#head = 0;\n        this.#tail = 0;\n        this.#free = Stack.create(max);\n        this.#size = 0;\n        this.#calculatedSize = 0;\n        if (typeof dispose === 'function') {\n            this.#dispose = dispose;\n        }\n        if (typeof onInsert === 'function') {\n            this.#onInsert = onInsert;\n        }\n        if (typeof disposeAfter === 'function') {\n            this.#disposeAfter = disposeAfter;\n            this.#disposed = [];\n        }\n        else {\n            this.#disposeAfter = undefined;\n            this.#disposed = undefined;\n        }\n        this.#hasDispose = !!this.#dispose;\n        this.#hasOnInsert = !!this.#onInsert;\n        this.#hasDisposeAfter = !!this.#disposeAfter;\n        this.noDisposeOnSet = !!noDisposeOnSet;\n        this.noUpdateTTL = !!noUpdateTTL;\n        this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n        this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n        this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n        this.ignoreFetchAbort = !!ignoreFetchAbort;\n        // NB: maxEntrySize is set to maxSize if it's set\n        if (this.maxEntrySize !== 0) {\n            if (this.#maxSize !== 0) {\n                if (!isPosInt(this.#maxSize)) {\n                    throw new TypeError('maxSize must be a positive integer if specified');\n                }\n            }\n            if (!isPosInt(this.maxEntrySize)) {\n                throw new TypeError('maxEntrySize must be a positive integer if specified');\n            }\n            this.#initializeSizeTracking();\n        }\n        this.allowStale = !!allowStale;\n        this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n        this.updateAgeOnGet = !!updateAgeOnGet;\n        this.updateAgeOnHas = !!updateAgeOnHas;\n        this.ttlResolution =\n            isPosInt(ttlResolution) || ttlResolution === 0\n                ? ttlResolution\n                : 1;\n        this.ttlAutopurge = !!ttlAutopurge;\n        this.ttl = ttl || 0;\n        if (this.ttl) {\n            if (!isPosInt(this.ttl)) {\n                throw new TypeError('ttl must be a positive integer if specified');\n            }\n            this.#initializeTTLTracking();\n        }\n        // do not allow completely unbounded caches\n        if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n            throw new TypeError('At least one of max, maxSize, or ttl is required');\n        }\n        if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n            const code = 'LRU_CACHE_UNBOUNDED';\n            if (shouldWarn(code)) {\n                warned.add(code);\n                const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n                    'result in unbounded memory consumption.';\n                emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n            }\n        }\n    }\n    /**\n     * Return the number of ms left in the item's TTL. If item is not in cache,\n     * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n     */\n    getRemainingTTL(key) {\n        return this.#keyMap.has(key) ? Infinity : 0;\n    }\n    #initializeTTLTracking() {\n        const ttls = new ZeroArray(this.#max);\n        const starts = new ZeroArray(this.#max);\n        this.#ttls = ttls;\n        this.#starts = starts;\n        this.#setItemTTL = (index, ttl, start = perf.now()) => {\n            starts[index] = ttl !== 0 ? start : 0;\n            ttls[index] = ttl;\n            if (ttl !== 0 && this.ttlAutopurge) {\n                const t = setTimeout(() => {\n                    if (this.#isStale(index)) {\n                        this.#delete(this.#keyList[index], 'expire');\n                    }\n                }, ttl + 1);\n                // unref() not supported on all platforms\n                /* c8 ignore start */\n                if (t.unref) {\n                    t.unref();\n                }\n                /* c8 ignore stop */\n            }\n        };\n        this.#updateItemAge = index => {\n            starts[index] = ttls[index] !== 0 ? perf.now() : 0;\n        };\n        this.#statusTTL = (status, index) => {\n            if (ttls[index]) {\n                const ttl = ttls[index];\n                const start = starts[index];\n                /* c8 ignore next */\n                if (!ttl || !start)\n                    return;\n                status.ttl = ttl;\n                status.start = start;\n                status.now = cachedNow || getNow();\n                const age = status.now - start;\n                status.remainingTTL = ttl - age;\n            }\n        };\n        // debounce calls to perf.now() to 1s so we're not hitting\n        // that costly call repeatedly.\n        let cachedNow = 0;\n        const getNow = () => {\n            const n = perf.now();\n            if (this.ttlResolution > 0) {\n                cachedNow = n;\n                const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n                // not available on all platforms\n                /* c8 ignore start */\n                if (t.unref) {\n                    t.unref();\n                }\n                /* c8 ignore stop */\n            }\n            return n;\n        };\n        this.getRemainingTTL = key => {\n            const index = this.#keyMap.get(key);\n            if (index === undefined) {\n                return 0;\n            }\n            const ttl = ttls[index];\n            const start = starts[index];\n            if (!ttl || !start) {\n                return Infinity;\n            }\n            const age = (cachedNow || getNow()) - start;\n            return ttl - age;\n        };\n        this.#isStale = index => {\n            const s = starts[index];\n            const t = ttls[index];\n            return !!t && !!s && (cachedNow || getNow()) - s > t;\n        };\n    }\n    // conditionally set private methods related to TTL\n    #updateItemAge = () => { };\n    #statusTTL = () => { };\n    #setItemTTL = () => { };\n    /* c8 ignore stop */\n    #isStale = () => false;\n    #initializeSizeTracking() {\n        const sizes = new ZeroArray(this.#max);\n        this.#calculatedSize = 0;\n        this.#sizes = sizes;\n        this.#removeItemSize = index => {\n            this.#calculatedSize -= sizes[index];\n            sizes[index] = 0;\n        };\n        this.#requireSize = (k, v, size, sizeCalculation) => {\n            // provisionally accept background fetches.\n            // actual value size will be checked when they return.\n            if (this.#isBackgroundFetch(v)) {\n                return 0;\n            }\n            if (!isPosInt(size)) {\n                if (sizeCalculation) {\n                    if (typeof sizeCalculation !== 'function') {\n                        throw new TypeError('sizeCalculation must be a function');\n                    }\n                    size = sizeCalculation(v, k);\n                    if (!isPosInt(size)) {\n                        throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n                    }\n                }\n                else {\n                    throw new TypeError('invalid size value (must be positive integer). ' +\n                        'When maxSize or maxEntrySize is used, sizeCalculation ' +\n                        'or size must be set.');\n                }\n            }\n            return size;\n        };\n        this.#addItemSize = (index, size, status) => {\n            sizes[index] = size;\n            if (this.#maxSize) {\n                const maxSize = this.#maxSize - sizes[index];\n                while (this.#calculatedSize > maxSize) {\n                    this.#evict(true);\n                }\n            }\n            this.#calculatedSize += sizes[index];\n            if (status) {\n                status.entrySize = size;\n                status.totalCalculatedSize = this.#calculatedSize;\n            }\n        };\n    }\n    #removeItemSize = _i => { };\n    #addItemSize = (_i, _s, _st) => { };\n    #requireSize = (_k, _v, size, sizeCalculation) => {\n        if (size || sizeCalculation) {\n            throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n        }\n        return 0;\n    };\n    *#indexes({ allowStale = this.allowStale } = {}) {\n        if (this.#size) {\n            for (let i = this.#tail; true;) {\n                if (!this.#isValidIndex(i)) {\n                    break;\n                }\n                if (allowStale || !this.#isStale(i)) {\n                    yield i;\n                }\n                if (i === this.#head) {\n                    break;\n                }\n                else {\n                    i = this.#prev[i];\n                }\n            }\n        }\n    }\n    *#rindexes({ allowStale = this.allowStale } = {}) {\n        if (this.#size) {\n            for (let i = this.#head; true;) {\n                if (!this.#isValidIndex(i)) {\n                    break;\n                }\n                if (allowStale || !this.#isStale(i)) {\n                    yield i;\n                }\n                if (i === this.#tail) {\n                    break;\n                }\n                else {\n                    i = this.#next[i];\n                }\n            }\n        }\n    }\n    #isValidIndex(index) {\n        return (index !== undefined &&\n            this.#keyMap.get(this.#keyList[index]) === index);\n    }\n    /**\n     * Return a generator yielding `[key, value]` pairs,\n     * in order from most recently used to least recently used.\n     */\n    *entries() {\n        for (const i of this.#indexes()) {\n            if (this.#valList[i] !== undefined &&\n                this.#keyList[i] !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield [this.#keyList[i], this.#valList[i]];\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.entries}\n     *\n     * Return a generator yielding `[key, value]` pairs,\n     * in order from least recently used to most recently used.\n     */\n    *rentries() {\n        for (const i of this.#rindexes()) {\n            if (this.#valList[i] !== undefined &&\n                this.#keyList[i] !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield [this.#keyList[i], this.#valList[i]];\n            }\n        }\n    }\n    /**\n     * Return a generator yielding the keys in the cache,\n     * in order from most recently used to least recently used.\n     */\n    *keys() {\n        for (const i of this.#indexes()) {\n            const k = this.#keyList[i];\n            if (k !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield k;\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.keys}\n     *\n     * Return a generator yielding the keys in the cache,\n     * in order from least recently used to most recently used.\n     */\n    *rkeys() {\n        for (const i of this.#rindexes()) {\n            const k = this.#keyList[i];\n            if (k !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield k;\n            }\n        }\n    }\n    /**\n     * Return a generator yielding the values in the cache,\n     * in order from most recently used to least recently used.\n     */\n    *values() {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            if (v !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield this.#valList[i];\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.values}\n     *\n     * Return a generator yielding the values in the cache,\n     * in order from least recently used to most recently used.\n     */\n    *rvalues() {\n        for (const i of this.#rindexes()) {\n            const v = this.#valList[i];\n            if (v !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield this.#valList[i];\n            }\n        }\n    }\n    /**\n     * Iterating over the cache itself yields the same results as\n     * {@link LRUCache.entries}\n     */\n    [Symbol.iterator]() {\n        return this.entries();\n    }\n    /**\n     * A String value that is used in the creation of the default string\n     * description of an object. Called by the built-in method\n     * `Object.prototype.toString`.\n     */\n    [Symbol.toStringTag] = 'LRUCache';\n    /**\n     * Find a value for which the supplied fn method returns a truthy value,\n     * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n     */\n    find(fn, getOptions = {}) {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            if (fn(value, this.#keyList[i], this)) {\n                return this.get(this.#keyList[i], getOptions);\n            }\n        }\n    }\n    /**\n     * Call the supplied function on each item in the cache, in order from most\n     * recently used to least recently used.\n     *\n     * `fn` is called as `fn(value, key, cache)`.\n     *\n     * If `thisp` is provided, function will be called in the `this`-context of\n     * the provided object, or the cache if no `thisp` object is provided.\n     *\n     * Does not update age or recenty of use, or iterate over stale values.\n     */\n    forEach(fn, thisp = this) {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            fn.call(thisp, value, this.#keyList[i], this);\n        }\n    }\n    /**\n     * The same as {@link LRUCache.forEach} but items are iterated over in\n     * reverse order.  (ie, less recently used items are iterated over first.)\n     */\n    rforEach(fn, thisp = this) {\n        for (const i of this.#rindexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            fn.call(thisp, value, this.#keyList[i], this);\n        }\n    }\n    /**\n     * Delete any stale entries. Returns true if anything was removed,\n     * false otherwise.\n     */\n    purgeStale() {\n        let deleted = false;\n        for (const i of this.#rindexes({ allowStale: true })) {\n            if (this.#isStale(i)) {\n                this.#delete(this.#keyList[i], 'expire');\n                deleted = true;\n            }\n        }\n        return deleted;\n    }\n    /**\n     * Get the extended info about a given entry, to get its value, size, and\n     * TTL info simultaneously. Returns `undefined` if the key is not present.\n     *\n     * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n     * serialization, the `start` value is always the current timestamp, and the\n     * `ttl` is a calculated remaining time to live (negative if expired).\n     *\n     * Always returns stale values, if their info is found in the cache, so be\n     * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n     * if relevant.\n     */\n    info(key) {\n        const i = this.#keyMap.get(key);\n        if (i === undefined)\n            return undefined;\n        const v = this.#valList[i];\n        const value = this.#isBackgroundFetch(v)\n            ? v.__staleWhileFetching\n            : v;\n        if (value === undefined)\n            return undefined;\n        const entry = { value };\n        if (this.#ttls && this.#starts) {\n            const ttl = this.#ttls[i];\n            const start = this.#starts[i];\n            if (ttl && start) {\n                const remain = ttl - (perf.now() - start);\n                entry.ttl = remain;\n                entry.start = Date.now();\n            }\n        }\n        if (this.#sizes) {\n            entry.size = this.#sizes[i];\n        }\n        return entry;\n    }\n    /**\n     * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n     * passed to {@link LRUCache#load}.\n     *\n     * The `start` fields are calculated relative to a portable `Date.now()`\n     * timestamp, even if `performance.now()` is available.\n     *\n     * Stale entries are always included in the `dump`, even if\n     * {@link LRUCache.OptionsBase.allowStale} is false.\n     *\n     * Note: this returns an actual array, not a generator, so it can be more\n     * easily passed around.\n     */\n    dump() {\n        const arr = [];\n        for (const i of this.#indexes({ allowStale: true })) {\n            const key = this.#keyList[i];\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined || key === undefined)\n                continue;\n            const entry = { value };\n            if (this.#ttls && this.#starts) {\n                entry.ttl = this.#ttls[i];\n                // always dump the start relative to a portable timestamp\n                // it's ok for this to be a bit slow, it's a rare operation.\n                const age = perf.now() - this.#starts[i];\n                entry.start = Math.floor(Date.now() - age);\n            }\n            if (this.#sizes) {\n                entry.size = this.#sizes[i];\n            }\n            arr.unshift([key, entry]);\n        }\n        return arr;\n    }\n    /**\n     * Reset the cache and load in the items in entries in the order listed.\n     *\n     * The shape of the resulting cache may be different if the same options are\n     * not used in both caches.\n     *\n     * The `start` fields are assumed to be calculated relative to a portable\n     * `Date.now()` timestamp, even if `performance.now()` is available.\n     */\n    load(arr) {\n        this.clear();\n        for (const [key, entry] of arr) {\n            if (entry.start) {\n                // entry.start is a portable timestamp, but we may be using\n                // node's performance.now(), so calculate the offset, so that\n                // we get the intended remaining TTL, no matter how long it's\n                // been on ice.\n                //\n                // it's ok for this to be a bit slow, it's a rare operation.\n                const age = Date.now() - entry.start;\n                entry.start = perf.now() - age;\n            }\n            this.set(key, entry.value, entry);\n        }\n    }\n    /**\n     * Add a value to the cache.\n     *\n     * Note: if `undefined` is specified as a value, this is an alias for\n     * {@link LRUCache#delete}\n     *\n     * Fields on the {@link LRUCache.SetOptions} options param will override\n     * their corresponding values in the constructor options for the scope\n     * of this single `set()` operation.\n     *\n     * If `start` is provided, then that will set the effective start\n     * time for the TTL calculation. Note that this must be a previous\n     * value of `performance.now()` if supported, or a previous value of\n     * `Date.now()` if not.\n     *\n     * Options object may also include `size`, which will prevent\n     * calling the `sizeCalculation` function and just use the specified\n     * number if it is a positive integer, and `noDisposeOnSet` which\n     * will prevent calling a `dispose` function in the case of\n     * overwrites.\n     *\n     * If the `size` (or return value of `sizeCalculation`) for a given\n     * entry is greater than `maxEntrySize`, then the item will not be\n     * added to the cache.\n     *\n     * Will update the recency of the entry.\n     *\n     * If the value is `undefined`, then this is an alias for\n     * `cache.delete(key)`. `undefined` is never stored in the cache.\n     */\n    set(k, v, setOptions = {}) {\n        if (v === undefined) {\n            this.delete(k);\n            return this;\n        }\n        const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n        let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n        const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n        // if the item doesn't fit, don't do anything\n        // NB: maxEntrySize set to maxSize by default\n        if (this.maxEntrySize && size > this.maxEntrySize) {\n            if (status) {\n                status.set = 'miss';\n                status.maxEntrySizeExceeded = true;\n            }\n            // have to delete, in case something is there already.\n            this.#delete(k, 'set');\n            return this;\n        }\n        let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n        if (index === undefined) {\n            // addition\n            index = (this.#size === 0\n                ? this.#tail\n                : this.#free.length !== 0\n                    ? this.#free.pop()\n                    : this.#size === this.#max\n                        ? this.#evict(false)\n                        : this.#size);\n            this.#keyList[index] = k;\n            this.#valList[index] = v;\n            this.#keyMap.set(k, index);\n            this.#next[this.#tail] = index;\n            this.#prev[index] = this.#tail;\n            this.#tail = index;\n            this.#size++;\n            this.#addItemSize(index, size, status);\n            if (status)\n                status.set = 'add';\n            noUpdateTTL = false;\n            if (this.#hasOnInsert) {\n                this.#onInsert?.(v, k, 'add');\n            }\n        }\n        else {\n            // update\n            this.#moveToTail(index);\n            const oldVal = this.#valList[index];\n            if (v !== oldVal) {\n                if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n                    oldVal.__abortController.abort(new Error('replaced'));\n                    const { __staleWhileFetching: s } = oldVal;\n                    if (s !== undefined && !noDisposeOnSet) {\n                        if (this.#hasDispose) {\n                            this.#dispose?.(s, k, 'set');\n                        }\n                        if (this.#hasDisposeAfter) {\n                            this.#disposed?.push([s, k, 'set']);\n                        }\n                    }\n                }\n                else if (!noDisposeOnSet) {\n                    if (this.#hasDispose) {\n                        this.#dispose?.(oldVal, k, 'set');\n                    }\n                    if (this.#hasDisposeAfter) {\n                        this.#disposed?.push([oldVal, k, 'set']);\n                    }\n                }\n                this.#removeItemSize(index);\n                this.#addItemSize(index, size, status);\n                this.#valList[index] = v;\n                if (status) {\n                    status.set = 'replace';\n                    const oldValue = oldVal && this.#isBackgroundFetch(oldVal)\n                        ? oldVal.__staleWhileFetching\n                        : oldVal;\n                    if (oldValue !== undefined)\n                        status.oldValue = oldValue;\n                }\n            }\n            else if (status) {\n                status.set = 'update';\n            }\n            if (this.#hasOnInsert) {\n                this.onInsert?.(v, k, v === oldVal ? 'update' : 'replace');\n            }\n        }\n        if (ttl !== 0 && !this.#ttls) {\n            this.#initializeTTLTracking();\n        }\n        if (this.#ttls) {\n            if (!noUpdateTTL) {\n                this.#setItemTTL(index, ttl, start);\n            }\n            if (status)\n                this.#statusTTL(status, index);\n        }\n        if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n        return this;\n    }\n    /**\n     * Evict the least recently used item, returning its value or\n     * `undefined` if cache is empty.\n     */\n    pop() {\n        try {\n            while (this.#size) {\n                const val = this.#valList[this.#head];\n                this.#evict(true);\n                if (this.#isBackgroundFetch(val)) {\n                    if (val.__staleWhileFetching) {\n                        return val.__staleWhileFetching;\n                    }\n                }\n                else if (val !== undefined) {\n                    return val;\n                }\n            }\n        }\n        finally {\n            if (this.#hasDisposeAfter && this.#disposed) {\n                const dt = this.#disposed;\n                let task;\n                while ((task = dt?.shift())) {\n                    this.#disposeAfter?.(...task);\n                }\n            }\n        }\n    }\n    #evict(free) {\n        const head = this.#head;\n        const k = this.#keyList[head];\n        const v = this.#valList[head];\n        if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n            v.__abortController.abort(new Error('evicted'));\n        }\n        else if (this.#hasDispose || this.#hasDisposeAfter) {\n            if (this.#hasDispose) {\n                this.#dispose?.(v, k, 'evict');\n            }\n            if (this.#hasDisposeAfter) {\n                this.#disposed?.push([v, k, 'evict']);\n            }\n        }\n        this.#removeItemSize(head);\n        // if we aren't about to use the index, then null these out\n        if (free) {\n            this.#keyList[head] = undefined;\n            this.#valList[head] = undefined;\n            this.#free.push(head);\n        }\n        if (this.#size === 1) {\n            this.#head = this.#tail = 0;\n            this.#free.length = 0;\n        }\n        else {\n            this.#head = this.#next[head];\n        }\n        this.#keyMap.delete(k);\n        this.#size--;\n        return head;\n    }\n    /**\n     * Check if a key is in the cache, without updating the recency of use.\n     * Will return false if the item is stale, even though it is technically\n     * in the cache.\n     *\n     * Check if a key is in the cache, without updating the recency of\n     * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n     * to `true` in either the options or the constructor.\n     *\n     * Will return `false` if the item is stale, even though it is technically in\n     * the cache. The difference can be determined (if it matters) by using a\n     * `status` argument, and inspecting the `has` field.\n     *\n     * Will not update item age unless\n     * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n     */\n    has(k, hasOptions = {}) {\n        const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n        const index = this.#keyMap.get(k);\n        if (index !== undefined) {\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v) &&\n                v.__staleWhileFetching === undefined) {\n                return false;\n            }\n            if (!this.#isStale(index)) {\n                if (updateAgeOnHas) {\n                    this.#updateItemAge(index);\n                }\n                if (status) {\n                    status.has = 'hit';\n                    this.#statusTTL(status, index);\n                }\n                return true;\n            }\n            else if (status) {\n                status.has = 'stale';\n                this.#statusTTL(status, index);\n            }\n        }\n        else if (status) {\n            status.has = 'miss';\n        }\n        return false;\n    }\n    /**\n     * Like {@link LRUCache#get} but doesn't update recency or delete stale\n     * items.\n     *\n     * Returns `undefined` if the item is stale, unless\n     * {@link LRUCache.OptionsBase.allowStale} is set.\n     */\n    peek(k, peekOptions = {}) {\n        const { allowStale = this.allowStale } = peekOptions;\n        const index = this.#keyMap.get(k);\n        if (index === undefined ||\n            (!allowStale && this.#isStale(index))) {\n            return;\n        }\n        const v = this.#valList[index];\n        // either stale and allowed, or forcing a refresh of non-stale value\n        return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n    }\n    #backgroundFetch(k, index, options, context) {\n        const v = index === undefined ? undefined : this.#valList[index];\n        if (this.#isBackgroundFetch(v)) {\n            return v;\n        }\n        const ac = new AC();\n        const { signal } = options;\n        // when/if our AC signals, then stop listening to theirs.\n        signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n            signal: ac.signal,\n        });\n        const fetchOpts = {\n            signal: ac.signal,\n            options,\n            context,\n        };\n        const cb = (v, updateCache = false) => {\n            const { aborted } = ac.signal;\n            const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n            if (options.status) {\n                if (aborted && !updateCache) {\n                    options.status.fetchAborted = true;\n                    options.status.fetchError = ac.signal.reason;\n                    if (ignoreAbort)\n                        options.status.fetchAbortIgnored = true;\n                }\n                else {\n                    options.status.fetchResolved = true;\n                }\n            }\n            if (aborted && !ignoreAbort && !updateCache) {\n                return fetchFail(ac.signal.reason);\n            }\n            // either we didn't abort, and are still here, or we did, and ignored\n            const bf = p;\n            if (this.#valList[index] === p) {\n                if (v === undefined) {\n                    if (bf.__staleWhileFetching) {\n                        this.#valList[index] = bf.__staleWhileFetching;\n                    }\n                    else {\n                        this.#delete(k, 'fetch');\n                    }\n                }\n                else {\n                    if (options.status)\n                        options.status.fetchUpdated = true;\n                    this.set(k, v, fetchOpts.options);\n                }\n            }\n            return v;\n        };\n        const eb = (er) => {\n            if (options.status) {\n                options.status.fetchRejected = true;\n                options.status.fetchError = er;\n            }\n            return fetchFail(er);\n        };\n        const fetchFail = (er) => {\n            const { aborted } = ac.signal;\n            const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n            const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n            const noDelete = allowStale || options.noDeleteOnFetchRejection;\n            const bf = p;\n            if (this.#valList[index] === p) {\n                // if we allow stale on fetch rejections, then we need to ensure that\n                // the stale value is not removed from the cache when the fetch fails.\n                const del = !noDelete || bf.__staleWhileFetching === undefined;\n                if (del) {\n                    this.#delete(k, 'fetch');\n                }\n                else if (!allowStaleAborted) {\n                    // still replace the *promise* with the stale value,\n                    // since we are done with the promise at this point.\n                    // leave it untouched if we're still waiting for an\n                    // aborted background fetch that hasn't yet returned.\n                    this.#valList[index] = bf.__staleWhileFetching;\n                }\n            }\n            if (allowStale) {\n                if (options.status && bf.__staleWhileFetching !== undefined) {\n                    options.status.returnedStale = true;\n                }\n                return bf.__staleWhileFetching;\n            }\n            else if (bf.__returned === bf) {\n                throw er;\n            }\n        };\n        const pcall = (res, rej) => {\n            const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n            if (fmp && fmp instanceof Promise) {\n                fmp.then(v => res(v === undefined ? undefined : v), rej);\n            }\n            // ignored, we go until we finish, regardless.\n            // defer check until we are actually aborting,\n            // so fetchMethod can override.\n            ac.signal.addEventListener('abort', () => {\n                if (!options.ignoreFetchAbort ||\n                    options.allowStaleOnFetchAbort) {\n                    res(undefined);\n                    // when it eventually resolves, update the cache.\n                    if (options.allowStaleOnFetchAbort) {\n                        res = v => cb(v, true);\n                    }\n                }\n            });\n        };\n        if (options.status)\n            options.status.fetchDispatched = true;\n        const p = new Promise(pcall).then(cb, eb);\n        const bf = Object.assign(p, {\n            __abortController: ac,\n            __staleWhileFetching: v,\n            __returned: undefined,\n        });\n        if (index === undefined) {\n            // internal, don't expose status.\n            this.set(k, bf, { ...fetchOpts.options, status: undefined });\n            index = this.#keyMap.get(k);\n        }\n        else {\n            this.#valList[index] = bf;\n        }\n        return bf;\n    }\n    #isBackgroundFetch(p) {\n        if (!this.#hasFetchMethod)\n            return false;\n        const b = p;\n        return (!!b &&\n            b instanceof Promise &&\n            b.hasOwnProperty('__staleWhileFetching') &&\n            b.__abortController instanceof AC);\n    }\n    async fetch(k, fetchOptions = {}) {\n        const { \n        // get options\n        allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n        // set options\n        ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n        // fetch exclusive options\n        noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n        if (!this.#hasFetchMethod) {\n            if (status)\n                status.fetch = 'get';\n            return this.get(k, {\n                allowStale,\n                updateAgeOnGet,\n                noDeleteOnStaleGet,\n                status,\n            });\n        }\n        const options = {\n            allowStale,\n            updateAgeOnGet,\n            noDeleteOnStaleGet,\n            ttl,\n            noDisposeOnSet,\n            size,\n            sizeCalculation,\n            noUpdateTTL,\n            noDeleteOnFetchRejection,\n            allowStaleOnFetchRejection,\n            allowStaleOnFetchAbort,\n            ignoreFetchAbort,\n            status,\n            signal,\n        };\n        let index = this.#keyMap.get(k);\n        if (index === undefined) {\n            if (status)\n                status.fetch = 'miss';\n            const p = this.#backgroundFetch(k, index, options, context);\n            return (p.__returned = p);\n        }\n        else {\n            // in cache, maybe already fetching\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v)) {\n                const stale = allowStale && v.__staleWhileFetching !== undefined;\n                if (status) {\n                    status.fetch = 'inflight';\n                    if (stale)\n                        status.returnedStale = true;\n                }\n                return stale ? v.__staleWhileFetching : (v.__returned = v);\n            }\n            // if we force a refresh, that means do NOT serve the cached value,\n            // unless we are already in the process of refreshing the cache.\n            const isStale = this.#isStale(index);\n            if (!forceRefresh && !isStale) {\n                if (status)\n                    status.fetch = 'hit';\n                this.#moveToTail(index);\n                if (updateAgeOnGet) {\n                    this.#updateItemAge(index);\n                }\n                if (status)\n                    this.#statusTTL(status, index);\n                return v;\n            }\n            // ok, it is stale or a forced refresh, and not already fetching.\n            // refresh the cache.\n            const p = this.#backgroundFetch(k, index, options, context);\n            const hasStale = p.__staleWhileFetching !== undefined;\n            const staleVal = hasStale && allowStale;\n            if (status) {\n                status.fetch = isStale ? 'stale' : 'refresh';\n                if (staleVal && isStale)\n                    status.returnedStale = true;\n            }\n            return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n        }\n    }\n    async forceFetch(k, fetchOptions = {}) {\n        const v = await this.fetch(k, fetchOptions);\n        if (v === undefined)\n            throw new Error('fetch() returned undefined');\n        return v;\n    }\n    memo(k, memoOptions = {}) {\n        const memoMethod = this.#memoMethod;\n        if (!memoMethod) {\n            throw new Error('no memoMethod provided to constructor');\n        }\n        const { context, forceRefresh, ...options } = memoOptions;\n        const v = this.get(k, options);\n        if (!forceRefresh && v !== undefined)\n            return v;\n        const vv = memoMethod(k, v, {\n            options,\n            context,\n        });\n        this.set(k, vv, options);\n        return vv;\n    }\n    /**\n     * Return a value from the cache. Will update the recency of the cache\n     * entry found.\n     *\n     * If the key is not found, get() will return `undefined`.\n     */\n    get(k, getOptions = {}) {\n        const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n        const index = this.#keyMap.get(k);\n        if (index !== undefined) {\n            const value = this.#valList[index];\n            const fetching = this.#isBackgroundFetch(value);\n            if (status)\n                this.#statusTTL(status, index);\n            if (this.#isStale(index)) {\n                if (status)\n                    status.get = 'stale';\n                // delete only if not an in-flight background fetch\n                if (!fetching) {\n                    if (!noDeleteOnStaleGet) {\n                        this.#delete(k, 'expire');\n                    }\n                    if (status && allowStale)\n                        status.returnedStale = true;\n                    return allowStale ? value : undefined;\n                }\n                else {\n                    if (status &&\n                        allowStale &&\n                        value.__staleWhileFetching !== undefined) {\n                        status.returnedStale = true;\n                    }\n                    return allowStale ? value.__staleWhileFetching : undefined;\n                }\n            }\n            else {\n                if (status)\n                    status.get = 'hit';\n                // if we're currently fetching it, we don't actually have it yet\n                // it's not stale, which means this isn't a staleWhileRefetching.\n                // If it's not stale, and fetching, AND has a __staleWhileFetching\n                // value, then that means the user fetched with {forceRefresh:true},\n                // so it's safe to return that value.\n                if (fetching) {\n                    return value.__staleWhileFetching;\n                }\n                this.#moveToTail(index);\n                if (updateAgeOnGet) {\n                    this.#updateItemAge(index);\n                }\n                return value;\n            }\n        }\n        else if (status) {\n            status.get = 'miss';\n        }\n    }\n    #connect(p, n) {\n        this.#prev[n] = p;\n        this.#next[p] = n;\n    }\n    #moveToTail(index) {\n        // if tail already, nothing to do\n        // if head, move head to next[index]\n        // else\n        //   move next[prev[index]] to next[index] (head has no prev)\n        //   move prev[next[index]] to prev[index]\n        // prev[index] = tail\n        // next[tail] = index\n        // tail = index\n        if (index !== this.#tail) {\n            if (index === this.#head) {\n                this.#head = this.#next[index];\n            }\n            else {\n                this.#connect(this.#prev[index], this.#next[index]);\n            }\n            this.#connect(this.#tail, index);\n            this.#tail = index;\n        }\n    }\n    /**\n     * Deletes a key out of the cache.\n     *\n     * Returns true if the key was deleted, false otherwise.\n     */\n    delete(k) {\n        return this.#delete(k, 'delete');\n    }\n    #delete(k, reason) {\n        let deleted = false;\n        if (this.#size !== 0) {\n            const index = this.#keyMap.get(k);\n            if (index !== undefined) {\n                deleted = true;\n                if (this.#size === 1) {\n                    this.#clear(reason);\n                }\n                else {\n                    this.#removeItemSize(index);\n                    const v = this.#valList[index];\n                    if (this.#isBackgroundFetch(v)) {\n                        v.__abortController.abort(new Error('deleted'));\n                    }\n                    else if (this.#hasDispose || this.#hasDisposeAfter) {\n                        if (this.#hasDispose) {\n                            this.#dispose?.(v, k, reason);\n                        }\n                        if (this.#hasDisposeAfter) {\n                            this.#disposed?.push([v, k, reason]);\n                        }\n                    }\n                    this.#keyMap.delete(k);\n                    this.#keyList[index] = undefined;\n                    this.#valList[index] = undefined;\n                    if (index === this.#tail) {\n                        this.#tail = this.#prev[index];\n                    }\n                    else if (index === this.#head) {\n                        this.#head = this.#next[index];\n                    }\n                    else {\n                        const pi = this.#prev[index];\n                        this.#next[pi] = this.#next[index];\n                        const ni = this.#next[index];\n                        this.#prev[ni] = this.#prev[index];\n                    }\n                    this.#size--;\n                    this.#free.push(index);\n                }\n            }\n        }\n        if (this.#hasDisposeAfter && this.#disposed?.length) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n        return deleted;\n    }\n    /**\n     * Clear the cache entirely, throwing away all values.\n     */\n    clear() {\n        return this.#clear('delete');\n    }\n    #clear(reason) {\n        for (const index of this.#rindexes({ allowStale: true })) {\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v)) {\n                v.__abortController.abort(new Error('deleted'));\n            }\n            else {\n                const k = this.#keyList[index];\n                if (this.#hasDispose) {\n                    this.#dispose?.(v, k, reason);\n                }\n                if (this.#hasDisposeAfter) {\n                    this.#disposed?.push([v, k, reason]);\n                }\n            }\n        }\n        this.#keyMap.clear();\n        this.#valList.fill(undefined);\n        this.#keyList.fill(undefined);\n        if (this.#ttls && this.#starts) {\n            this.#ttls.fill(0);\n            this.#starts.fill(0);\n        }\n        if (this.#sizes) {\n            this.#sizes.fill(0);\n        }\n        this.#head = 0;\n        this.#tail = 0;\n        this.#free.length = 0;\n        this.#calculatedSize = 0;\n        this.#size = 0;\n        if (this.#hasDisposeAfter && this.#disposed) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n    }\n}\nexports.LRUCache = LRUCache;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = exports.validate = exports.v7 = exports.v6ToV1 = exports.v6 = exports.v5 = exports.v4 = exports.v3 = exports.v1ToV6 = exports.v1 = exports.stringify = exports.parse = exports.NIL = exports.MAX = void 0;\nvar max_js_1 = require(\"./max.js\");\nObject.defineProperty(exports, \"MAX\", { enumerable: true, get: function () { return max_js_1.default; } });\nvar nil_js_1 = require(\"./nil.js\");\nObject.defineProperty(exports, \"NIL\", { enumerable: true, get: function () { return nil_js_1.default; } });\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.default; } });\nvar stringify_js_1 = require(\"./stringify.js\");\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return stringify_js_1.default; } });\nvar v1_js_1 = require(\"./v1.js\");\nObject.defineProperty(exports, \"v1\", { enumerable: true, get: function () { return v1_js_1.default; } });\nvar v1ToV6_js_1 = require(\"./v1ToV6.js\");\nObject.defineProperty(exports, \"v1ToV6\", { enumerable: true, get: function () { return v1ToV6_js_1.default; } });\nvar v3_js_1 = require(\"./v3.js\");\nObject.defineProperty(exports, \"v3\", { enumerable: true, get: function () { return v3_js_1.default; } });\nvar v4_js_1 = require(\"./v4.js\");\nObject.defineProperty(exports, \"v4\", { enumerable: true, get: function () { return v4_js_1.default; } });\nvar v5_js_1 = require(\"./v5.js\");\nObject.defineProperty(exports, \"v5\", { enumerable: true, get: function () { return v5_js_1.default; } });\nvar v6_js_1 = require(\"./v6.js\");\nObject.defineProperty(exports, \"v6\", { enumerable: true, get: function () { return v6_js_1.default; } });\nvar v6ToV1_js_1 = require(\"./v6ToV1.js\");\nObject.defineProperty(exports, \"v6ToV1\", { enumerable: true, get: function () { return v6ToV1_js_1.default; } });\nvar v7_js_1 = require(\"./v7.js\");\nObject.defineProperty(exports, \"v7\", { enumerable: true, get: function () { return v7_js_1.default; } });\nvar validate_js_1 = require(\"./validate.js\");\nObject.defineProperty(exports, \"validate\", { enumerable: true, get: function () { return validate_js_1.default; } });\nvar version_js_1 = require(\"./version.js\");\nObject.defineProperty(exports, \"version\", { enumerable: true, get: function () { return version_js_1.default; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'ffffffff-ffff-ffff-ffff-ffffffffffff';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nfunction md5(bytes) {\n    if (Array.isArray(bytes)) {\n        bytes = Buffer.from(bytes);\n    }\n    else if (typeof bytes === 'string') {\n        bytes = Buffer.from(bytes, 'utf8');\n    }\n    return (0, crypto_1.createHash)('md5').update(bytes).digest();\n}\nexports.default = md5;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nexports.default = { randomUUID: crypto_1.randomUUID };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = '00000000-0000-0000-0000-000000000000';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_js_1 = require(\"./validate.js\");\nfunction parse(uuid) {\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Invalid UUID');\n    }\n    let v;\n    return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff);\n}\nexports.default = parse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nconst rnds8Pool = new Uint8Array(256);\nlet poolPtr = rnds8Pool.length;\nfunction rng() {\n    if (poolPtr > rnds8Pool.length - 16) {\n        (0, crypto_1.randomFillSync)(rnds8Pool);\n        poolPtr = 0;\n    }\n    return rnds8Pool.slice(poolPtr, (poolPtr += 16));\n}\nexports.default = rng;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto_1 = require(\"crypto\");\nfunction sha1(bytes) {\n    if (Array.isArray(bytes)) {\n        bytes = Buffer.from(bytes);\n    }\n    else if (typeof bytes === 'string') {\n        bytes = Buffer.from(bytes, 'utf8');\n    }\n    return (0, crypto_1.createHash)('sha1').update(bytes).digest();\n}\nexports.default = sha1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unsafeStringify = void 0;\nconst validate_js_1 = require(\"./validate.js\");\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n    byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n    return (byteToHex[arr[offset + 0]] +\n        byteToHex[arr[offset + 1]] +\n        byteToHex[arr[offset + 2]] +\n        byteToHex[arr[offset + 3]] +\n        '-' +\n        byteToHex[arr[offset + 4]] +\n        byteToHex[arr[offset + 5]] +\n        '-' +\n        byteToHex[arr[offset + 6]] +\n        byteToHex[arr[offset + 7]] +\n        '-' +\n        byteToHex[arr[offset + 8]] +\n        byteToHex[arr[offset + 9]] +\n        '-' +\n        byteToHex[arr[offset + 10]] +\n        byteToHex[arr[offset + 11]] +\n        byteToHex[arr[offset + 12]] +\n        byteToHex[arr[offset + 13]] +\n        byteToHex[arr[offset + 14]] +\n        byteToHex[arr[offset + 15]]).toLowerCase();\n}\nexports.unsafeStringify = unsafeStringify;\nfunction stringify(arr, offset = 0) {\n    const uuid = unsafeStringify(arr, offset);\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Stringified UUID is invalid');\n    }\n    return uuid;\n}\nexports.default = stringify;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateV1State = void 0;\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nconst _state = {};\nfunction v1(options, buf, offset) {\n    let bytes;\n    const isV6 = options?._v6 ?? false;\n    if (options) {\n        const optionsKeys = Object.keys(options);\n        if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') {\n            options = undefined;\n        }\n    }\n    if (options) {\n        bytes = v1Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset);\n    }\n    else {\n        const now = Date.now();\n        const rnds = (0, rng_js_1.default)();\n        updateV1State(_state, now, rnds);\n        bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset);\n    }\n    return buf ?? (0, stringify_js_1.unsafeStringify)(bytes);\n}\nfunction updateV1State(state, now, rnds) {\n    state.msecs ??= -Infinity;\n    state.nsecs ??= 0;\n    if (now === state.msecs) {\n        state.nsecs++;\n        if (state.nsecs >= 10000) {\n            state.node = undefined;\n            state.nsecs = 0;\n        }\n    }\n    else if (now > state.msecs) {\n        state.nsecs = 0;\n    }\n    else if (now < state.msecs) {\n        state.node = undefined;\n    }\n    if (!state.node) {\n        state.node = rnds.slice(10, 16);\n        state.node[0] |= 0x01;\n        state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    }\n    state.msecs = now;\n    return state;\n}\nexports.updateV1State = updateV1State;\nfunction v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    if (!buf) {\n        buf = new Uint8Array(16);\n        offset = 0;\n    }\n    else {\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n    }\n    msecs ??= Date.now();\n    nsecs ??= 0;\n    clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    node ??= rnds.slice(10, 16);\n    msecs += 12219292800000;\n    const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n    buf[offset++] = (tl >>> 24) & 0xff;\n    buf[offset++] = (tl >>> 16) & 0xff;\n    buf[offset++] = (tl >>> 8) & 0xff;\n    buf[offset++] = tl & 0xff;\n    const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n    buf[offset++] = (tmh >>> 8) & 0xff;\n    buf[offset++] = tmh & 0xff;\n    buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;\n    buf[offset++] = (tmh >>> 16) & 0xff;\n    buf[offset++] = (clockseq >>> 8) | 0x80;\n    buf[offset++] = clockseq & 0xff;\n    for (let n = 0; n < 6; ++n) {\n        buf[offset++] = node[n];\n    }\n    return buf;\n}\nexports.default = v1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v1ToV6(uuid) {\n    const v1Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid;\n    const v6Bytes = _v1ToV6(v1Bytes);\n    return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v6Bytes) : v6Bytes;\n}\nexports.default = v1ToV6;\nfunction _v1ToV6(v1Bytes) {\n    return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = void 0;\nconst md5_js_1 = require(\"./md5.js\");\nconst v35_js_1 = require(\"./v35.js\");\nvar v35_js_2 = require(\"./v35.js\");\nObject.defineProperty(exports, \"DNS\", { enumerable: true, get: function () { return v35_js_2.DNS; } });\nObject.defineProperty(exports, \"URL\", { enumerable: true, get: function () { return v35_js_2.URL; } });\nfunction v3(value, namespace, buf, offset) {\n    return (0, v35_js_1.default)(0x30, md5_js_1.default, value, namespace, buf, offset);\n}\nv3.DNS = v35_js_1.DNS;\nv3.URL = v35_js_1.URL;\nexports.default = v3;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = exports.stringToBytes = void 0;\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction stringToBytes(str) {\n    str = unescape(encodeURIComponent(str));\n    const bytes = new Uint8Array(str.length);\n    for (let i = 0; i < str.length; ++i) {\n        bytes[i] = str.charCodeAt(i);\n    }\n    return bytes;\n}\nexports.stringToBytes = stringToBytes;\nexports.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nfunction v35(version, hash, value, namespace, buf, offset) {\n    const valueBytes = typeof value === 'string' ? stringToBytes(value) : value;\n    const namespaceBytes = typeof namespace === 'string' ? (0, parse_js_1.default)(namespace) : namespace;\n    if (typeof namespace === 'string') {\n        namespace = (0, parse_js_1.default)(namespace);\n    }\n    if (namespace?.length !== 16) {\n        throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n    }\n    let bytes = new Uint8Array(16 + valueBytes.length);\n    bytes.set(namespaceBytes);\n    bytes.set(valueBytes, namespaceBytes.length);\n    bytes = hash(bytes);\n    bytes[6] = (bytes[6] & 0x0f) | version;\n    bytes[8] = (bytes[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = bytes[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(bytes);\n}\nexports.default = v35;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst native_js_1 = require(\"./native.js\");\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v4(options, buf, offset) {\n    if (native_js_1.default.randomUUID && !buf && !options) {\n        return native_js_1.default.randomUUID();\n    }\n    options = options || {};\n    const rnds = options.random ?? options.rng?.() ?? (0, rng_js_1.default)();\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    rnds[6] = (rnds[6] & 0x0f) | 0x40;\n    rnds[8] = (rnds[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = rnds[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(rnds);\n}\nexports.default = v4;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = void 0;\nconst sha1_js_1 = require(\"./sha1.js\");\nconst v35_js_1 = require(\"./v35.js\");\nvar v35_js_2 = require(\"./v35.js\");\nObject.defineProperty(exports, \"DNS\", { enumerable: true, get: function () { return v35_js_2.DNS; } });\nObject.defineProperty(exports, \"URL\", { enumerable: true, get: function () { return v35_js_2.URL; } });\nfunction v5(value, namespace, buf, offset) {\n    return (0, v35_js_1.default)(0x50, sha1_js_1.default, value, namespace, buf, offset);\n}\nv5.DNS = v35_js_1.DNS;\nv5.URL = v35_js_1.URL;\nexports.default = v5;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stringify_js_1 = require(\"./stringify.js\");\nconst v1_js_1 = require(\"./v1.js\");\nconst v1ToV6_js_1 = require(\"./v1ToV6.js\");\nfunction v6(options, buf, offset) {\n    options ??= {};\n    offset ??= 0;\n    let bytes = (0, v1_js_1.default)({ ...options, _v6: true }, new Uint8Array(16));\n    bytes = (0, v1ToV6_js_1.default)(bytes);\n    if (buf) {\n        for (let i = 0; i < 16; i++) {\n            buf[offset + i] = bytes[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(bytes);\n}\nexports.default = v6;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v6ToV1(uuid) {\n    const v6Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid;\n    const v1Bytes = _v6ToV1(v6Bytes);\n    return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v1Bytes) : v1Bytes;\n}\nexports.default = v6ToV1;\nfunction _v6ToV1(v6Bytes) {\n    return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateV7State = void 0;\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nconst _state = {};\nfunction v7(options, buf, offset) {\n    let bytes;\n    if (options) {\n        bytes = v7Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.seq, buf, offset);\n    }\n    else {\n        const now = Date.now();\n        const rnds = (0, rng_js_1.default)();\n        updateV7State(_state, now, rnds);\n        bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);\n    }\n    return buf ?? (0, stringify_js_1.unsafeStringify)(bytes);\n}\nfunction updateV7State(state, now, rnds) {\n    state.msecs ??= -Infinity;\n    state.seq ??= 0;\n    if (now > state.msecs) {\n        state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n        state.msecs = now;\n    }\n    else {\n        state.seq = (state.seq + 1) | 0;\n        if (state.seq === 0) {\n            state.msecs++;\n        }\n    }\n    return state;\n}\nexports.updateV7State = updateV7State;\nfunction v7Bytes(rnds, msecs, seq, buf, offset = 0) {\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    if (!buf) {\n        buf = new Uint8Array(16);\n        offset = 0;\n    }\n    else {\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n    }\n    msecs ??= Date.now();\n    seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n    buf[offset++] = (msecs / 0x10000000000) & 0xff;\n    buf[offset++] = (msecs / 0x100000000) & 0xff;\n    buf[offset++] = (msecs / 0x1000000) & 0xff;\n    buf[offset++] = (msecs / 0x10000) & 0xff;\n    buf[offset++] = (msecs / 0x100) & 0xff;\n    buf[offset++] = msecs & 0xff;\n    buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);\n    buf[offset++] = (seq >>> 20) & 0xff;\n    buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);\n    buf[offset++] = (seq >>> 6) & 0xff;\n    buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);\n    buf[offset++] = rnds[11];\n    buf[offset++] = rnds[12];\n    buf[offset++] = rnds[13];\n    buf[offset++] = rnds[14];\n    buf[offset++] = rnds[15];\n    return buf;\n}\nexports.default = v7;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst regex_js_1 = require(\"./regex.js\");\nfunction validate(uuid) {\n    return typeof uuid === 'string' && regex_js_1.default.test(uuid);\n}\nexports.default = validate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_js_1 = require(\"./validate.js\");\nfunction version(uuid) {\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Invalid UUID');\n    }\n    return parseInt(uuid.slice(14, 15), 16);\n}\nexports.default = version;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar Schema = require('./Schema-88e323a7.js');\n\nconst defaultOptions = {\n  anchorPrefix: 'a',\n  customTags: null,\n  indent: 2,\n  indentSeq: true,\n  keepCstNodes: false,\n  keepNodeTypes: true,\n  keepBlobsInJSON: true,\n  mapAsMap: false,\n  maxAliasCount: 100,\n  prettyErrors: false,\n  // TODO Set true in v2\n  simpleKeys: false,\n  version: '1.2'\n};\nconst scalarOptions = {\n  get binary() {\n    return resolveSeq.binaryOptions;\n  },\n\n  set binary(opt) {\n    Object.assign(resolveSeq.binaryOptions, opt);\n  },\n\n  get bool() {\n    return resolveSeq.boolOptions;\n  },\n\n  set bool(opt) {\n    Object.assign(resolveSeq.boolOptions, opt);\n  },\n\n  get int() {\n    return resolveSeq.intOptions;\n  },\n\n  set int(opt) {\n    Object.assign(resolveSeq.intOptions, opt);\n  },\n\n  get null() {\n    return resolveSeq.nullOptions;\n  },\n\n  set null(opt) {\n    Object.assign(resolveSeq.nullOptions, opt);\n  },\n\n  get str() {\n    return resolveSeq.strOptions;\n  },\n\n  set str(opt) {\n    Object.assign(resolveSeq.strOptions, opt);\n  }\n\n};\nconst documentOptions = {\n  '1.0': {\n    schema: 'yaml-1.1',\n    merge: true,\n    tagPrefixes: [{\n      handle: '!',\n      prefix: PlainValue.defaultTagPrefix\n    }, {\n      handle: '!!',\n      prefix: 'tag:private.yaml.org,2002:'\n    }]\n  },\n  1.1: {\n    schema: 'yaml-1.1',\n    merge: true,\n    tagPrefixes: [{\n      handle: '!',\n      prefix: '!'\n    }, {\n      handle: '!!',\n      prefix: PlainValue.defaultTagPrefix\n    }]\n  },\n  1.2: {\n    schema: 'core',\n    merge: false,\n    tagPrefixes: [{\n      handle: '!',\n      prefix: '!'\n    }, {\n      handle: '!!',\n      prefix: PlainValue.defaultTagPrefix\n    }]\n  }\n};\n\nfunction stringifyTag(doc, tag) {\n  if ((doc.version || doc.options.version) === '1.0') {\n    const priv = tag.match(/^tag:private\\.yaml\\.org,2002:([^:/]+)$/);\n    if (priv) return '!' + priv[1];\n    const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\\.yaml\\.org,2002:(.*)/);\n    return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, '')}`;\n  }\n\n  let p = doc.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0);\n\n  if (!p) {\n    const dtp = doc.getDefaults().tagPrefixes;\n    p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0);\n  }\n\n  if (!p) return tag[0] === '!' ? tag : `!<${tag}>`;\n  const suffix = tag.substr(p.prefix.length).replace(/[!,[\\]{}]/g, ch => ({\n    '!': '%21',\n    ',': '%2C',\n    '[': '%5B',\n    ']': '%5D',\n    '{': '%7B',\n    '}': '%7D'\n  })[ch]);\n  return p.handle + suffix;\n}\n\nfunction getTagObject(tags, item) {\n  if (item instanceof resolveSeq.Alias) return resolveSeq.Alias;\n\n  if (item.tag) {\n    const match = tags.filter(t => t.tag === item.tag);\n    if (match.length > 0) return match.find(t => t.format === item.format) || match[0];\n  }\n\n  let tagObj, obj;\n\n  if (item instanceof resolveSeq.Scalar) {\n    obj = item.value; // TODO: deprecate/remove class check\n\n    const match = tags.filter(t => t.identify && t.identify(obj) || t.class && obj instanceof t.class);\n    tagObj = match.find(t => t.format === item.format) || match.find(t => !t.format);\n  } else {\n    obj = item;\n    tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n  }\n\n  if (!tagObj) {\n    const name = obj && obj.constructor ? obj.constructor.name : typeof obj;\n    throw new Error(`Tag not resolved for ${name} value`);\n  }\n\n  return tagObj;\n} // needs to be called before value stringifier to allow for circular anchor refs\n\n\nfunction stringifyProps(node, tagObj, {\n  anchors,\n  doc\n}) {\n  const props = [];\n  const anchor = doc.anchors.getName(node);\n\n  if (anchor) {\n    anchors[anchor] = node;\n    props.push(`&${anchor}`);\n  }\n\n  if (node.tag) {\n    props.push(stringifyTag(doc, node.tag));\n  } else if (!tagObj.default) {\n    props.push(stringifyTag(doc, tagObj.tag));\n  }\n\n  return props.join(' ');\n}\n\nfunction stringify(item, ctx, onComment, onChompKeep) {\n  const {\n    anchors,\n    schema\n  } = ctx.doc;\n  let tagObj;\n\n  if (!(item instanceof resolveSeq.Node)) {\n    const createCtx = {\n      aliasNodes: [],\n      onTagObj: o => tagObj = o,\n      prevObjects: new Map()\n    };\n    item = schema.createNode(item, true, null, createCtx);\n\n    for (const alias of createCtx.aliasNodes) {\n      alias.source = alias.source.node;\n      let name = anchors.getName(alias.source);\n\n      if (!name) {\n        name = anchors.newName();\n        anchors.map[name] = alias.source;\n      }\n    }\n  }\n\n  if (item instanceof resolveSeq.Pair) return item.toString(ctx, onComment, onChompKeep);\n  if (!tagObj) tagObj = getTagObject(schema.tags, item);\n  const props = stringifyProps(item, tagObj, ctx);\n  if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;\n  const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);\n  if (!props) return str;\n  return item instanceof resolveSeq.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\\n${ctx.indent}${str}`;\n}\n\nclass Anchors {\n  static validAnchorNode(node) {\n    return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap;\n  }\n\n  constructor(prefix) {\n    PlainValue._defineProperty(this, \"map\", Object.create(null));\n\n    this.prefix = prefix;\n  }\n\n  createAlias(node, name) {\n    this.setAnchor(node, name);\n    return new resolveSeq.Alias(node);\n  }\n\n  createMergePair(...sources) {\n    const merge = new resolveSeq.Merge();\n    merge.value.items = sources.map(s => {\n      if (s instanceof resolveSeq.Alias) {\n        if (s.source instanceof resolveSeq.YAMLMap) return s;\n      } else if (s instanceof resolveSeq.YAMLMap) {\n        return this.createAlias(s);\n      }\n\n      throw new Error('Merge sources must be Map nodes or their Aliases');\n    });\n    return merge;\n  }\n\n  getName(node) {\n    const {\n      map\n    } = this;\n    return Object.keys(map).find(a => map[a] === node);\n  }\n\n  getNames() {\n    return Object.keys(this.map);\n  }\n\n  getNode(name) {\n    return this.map[name];\n  }\n\n  newName(prefix) {\n    if (!prefix) prefix = this.prefix;\n    const names = Object.keys(this.map);\n\n    for (let i = 1; true; ++i) {\n      const name = `${prefix}${i}`;\n      if (!names.includes(name)) return name;\n    }\n  } // During parsing, map & aliases contain CST nodes\n\n\n  resolveNodes() {\n    const {\n      map,\n      _cstAliases\n    } = this;\n    Object.keys(map).forEach(a => {\n      map[a] = map[a].resolved;\n    });\n\n    _cstAliases.forEach(a => {\n      a.source = a.source.resolved;\n    });\n\n    delete this._cstAliases;\n  }\n\n  setAnchor(node, name) {\n    if (node != null && !Anchors.validAnchorNode(node)) {\n      throw new Error('Anchors may only be set for Scalar, Seq and Map nodes');\n    }\n\n    if (name && /[\\x00-\\x19\\s,[\\]{}]/.test(name)) {\n      throw new Error('Anchor names must not contain whitespace or control characters');\n    }\n\n    const {\n      map\n    } = this;\n    const prev = node && Object.keys(map).find(a => map[a] === node);\n\n    if (prev) {\n      if (!name) {\n        return prev;\n      } else if (prev !== name) {\n        delete map[prev];\n        map[name] = node;\n      }\n    } else {\n      if (!name) {\n        if (!node) return null;\n        name = this.newName();\n      }\n\n      map[name] = node;\n    }\n\n    return name;\n  }\n\n}\n\nconst visit = (node, tags) => {\n  if (node && typeof node === 'object') {\n    const {\n      tag\n    } = node;\n\n    if (node instanceof resolveSeq.Collection) {\n      if (tag) tags[tag] = true;\n      node.items.forEach(n => visit(n, tags));\n    } else if (node instanceof resolveSeq.Pair) {\n      visit(node.key, tags);\n      visit(node.value, tags);\n    } else if (node instanceof resolveSeq.Scalar) {\n      if (tag) tags[tag] = true;\n    }\n  }\n\n  return tags;\n};\n\nconst listTagNames = node => Object.keys(visit(node, {}));\n\nfunction parseContents(doc, contents) {\n  const comments = {\n    before: [],\n    after: []\n  };\n  let body = undefined;\n  let spaceBefore = false;\n\n  for (const node of contents) {\n    if (node.valueRange) {\n      if (body !== undefined) {\n        const msg = 'Document contains trailing content not separated by a ... or --- line';\n        doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg));\n        break;\n      }\n\n      const res = resolveSeq.resolveNode(doc, node);\n\n      if (spaceBefore) {\n        res.spaceBefore = true;\n        spaceBefore = false;\n      }\n\n      body = res;\n    } else if (node.comment !== null) {\n      const cc = body === undefined ? comments.before : comments.after;\n      cc.push(node.comment);\n    } else if (node.type === PlainValue.Type.BLANK_LINE) {\n      spaceBefore = true;\n\n      if (body === undefined && comments.before.length > 0 && !doc.commentBefore) {\n        // space-separated comments at start are parsed as document comments\n        doc.commentBefore = comments.before.join('\\n');\n        comments.before = [];\n      }\n    }\n  }\n\n  doc.contents = body || null;\n\n  if (!body) {\n    doc.comment = comments.before.concat(comments.after).join('\\n') || null;\n  } else {\n    const cb = comments.before.join('\\n');\n\n    if (cb) {\n      const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body;\n      cbNode.commentBefore = cbNode.commentBefore ? `${cb}\\n${cbNode.commentBefore}` : cb;\n    }\n\n    doc.comment = comments.after.join('\\n') || null;\n  }\n}\n\nfunction resolveTagDirective({\n  tagPrefixes\n}, directive) {\n  const [handle, prefix] = directive.parameters;\n\n  if (!handle || !prefix) {\n    const msg = 'Insufficient parameters given for %TAG directive';\n    throw new PlainValue.YAMLSemanticError(directive, msg);\n  }\n\n  if (tagPrefixes.some(p => p.handle === handle)) {\n    const msg = 'The %TAG directive must only be given at most once per handle in the same document.';\n    throw new PlainValue.YAMLSemanticError(directive, msg);\n  }\n\n  return {\n    handle,\n    prefix\n  };\n}\n\nfunction resolveYamlDirective(doc, directive) {\n  let [version] = directive.parameters;\n  if (directive.name === 'YAML:1.0') version = '1.0';\n\n  if (!version) {\n    const msg = 'Insufficient parameters given for %YAML directive';\n    throw new PlainValue.YAMLSemanticError(directive, msg);\n  }\n\n  if (!documentOptions[version]) {\n    const v0 = doc.version || doc.options.version;\n    const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;\n    doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));\n  }\n\n  return version;\n}\n\nfunction parseDirectives(doc, directives, prevDoc) {\n  const directiveComments = [];\n  let hasDirectives = false;\n\n  for (const directive of directives) {\n    const {\n      comment,\n      name\n    } = directive;\n\n    switch (name) {\n      case 'TAG':\n        try {\n          doc.tagPrefixes.push(resolveTagDirective(doc, directive));\n        } catch (error) {\n          doc.errors.push(error);\n        }\n\n        hasDirectives = true;\n        break;\n\n      case 'YAML':\n      case 'YAML:1.0':\n        if (doc.version) {\n          const msg = 'The %YAML directive must only be given at most once per document.';\n          doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg));\n        }\n\n        try {\n          doc.version = resolveYamlDirective(doc, directive);\n        } catch (error) {\n          doc.errors.push(error);\n        }\n\n        hasDirectives = true;\n        break;\n\n      default:\n        if (name) {\n          const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;\n          doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));\n        }\n\n    }\n\n    if (comment) directiveComments.push(comment);\n  }\n\n  if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) {\n    const copyTagPrefix = ({\n      handle,\n      prefix\n    }) => ({\n      handle,\n      prefix\n    });\n\n    doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);\n    doc.version = prevDoc.version;\n  }\n\n  doc.commentBefore = directiveComments.join('\\n') || null;\n}\n\nfunction assertCollection(contents) {\n  if (contents instanceof resolveSeq.Collection) return true;\n  throw new Error('Expected a YAML collection as document contents');\n}\n\nclass Document {\n  constructor(options) {\n    this.anchors = new Anchors(options.anchorPrefix);\n    this.commentBefore = null;\n    this.comment = null;\n    this.contents = null;\n    this.directivesEndMarker = null;\n    this.errors = [];\n    this.options = options;\n    this.schema = null;\n    this.tagPrefixes = [];\n    this.version = null;\n    this.warnings = [];\n  }\n\n  add(value) {\n    assertCollection(this.contents);\n    return this.contents.add(value);\n  }\n\n  addIn(path, value) {\n    assertCollection(this.contents);\n    this.contents.addIn(path, value);\n  }\n\n  delete(key) {\n    assertCollection(this.contents);\n    return this.contents.delete(key);\n  }\n\n  deleteIn(path) {\n    if (resolveSeq.isEmptyPath(path)) {\n      if (this.contents == null) return false;\n      this.contents = null;\n      return true;\n    }\n\n    assertCollection(this.contents);\n    return this.contents.deleteIn(path);\n  }\n\n  getDefaults() {\n    return Document.defaults[this.version] || Document.defaults[this.options.version] || {};\n  }\n\n  get(key, keepScalar) {\n    return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : undefined;\n  }\n\n  getIn(path, keepScalar) {\n    if (resolveSeq.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents;\n    return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : undefined;\n  }\n\n  has(key) {\n    return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false;\n  }\n\n  hasIn(path) {\n    if (resolveSeq.isEmptyPath(path)) return this.contents !== undefined;\n    return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false;\n  }\n\n  set(key, value) {\n    assertCollection(this.contents);\n    this.contents.set(key, value);\n  }\n\n  setIn(path, value) {\n    if (resolveSeq.isEmptyPath(path)) this.contents = value;else {\n      assertCollection(this.contents);\n      this.contents.setIn(path, value);\n    }\n  }\n\n  setSchema(id, customTags) {\n    if (!id && !customTags && this.schema) return;\n    if (typeof id === 'number') id = id.toFixed(1);\n\n    if (id === '1.0' || id === '1.1' || id === '1.2') {\n      if (this.version) this.version = id;else this.options.version = id;\n      delete this.options.schema;\n    } else if (id && typeof id === 'string') {\n      this.options.schema = id;\n    }\n\n    if (Array.isArray(customTags)) this.options.customTags = customTags;\n    const opt = Object.assign({}, this.getDefaults(), this.options);\n    this.schema = new Schema.Schema(opt);\n  }\n\n  parse(node, prevDoc) {\n    if (this.options.keepCstNodes) this.cstNode = node;\n    if (this.options.keepNodeTypes) this.type = 'DOCUMENT';\n    const {\n      directives = [],\n      contents = [],\n      directivesEndMarker,\n      error,\n      valueRange\n    } = node;\n\n    if (error) {\n      if (!error.source) error.source = this;\n      this.errors.push(error);\n    }\n\n    parseDirectives(this, directives, prevDoc);\n    if (directivesEndMarker) this.directivesEndMarker = true;\n    this.range = valueRange ? [valueRange.start, valueRange.end] : null;\n    this.setSchema();\n    this.anchors._cstAliases = [];\n    parseContents(this, contents);\n    this.anchors.resolveNodes();\n\n    if (this.options.prettyErrors) {\n      for (const error of this.errors) if (error instanceof PlainValue.YAMLError) error.makePretty();\n\n      for (const warn of this.warnings) if (warn instanceof PlainValue.YAMLError) warn.makePretty();\n    }\n\n    return this;\n  }\n\n  listNonDefaultTags() {\n    return listTagNames(this.contents).filter(t => t.indexOf(Schema.Schema.defaultPrefix) !== 0);\n  }\n\n  setTagPrefix(handle, prefix) {\n    if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !');\n\n    if (prefix) {\n      const prev = this.tagPrefixes.find(p => p.handle === handle);\n      if (prev) prev.prefix = prefix;else this.tagPrefixes.push({\n        handle,\n        prefix\n      });\n    } else {\n      this.tagPrefixes = this.tagPrefixes.filter(p => p.handle !== handle);\n    }\n  }\n\n  toJSON(arg, onAnchor) {\n    const {\n      keepBlobsInJSON,\n      mapAsMap,\n      maxAliasCount\n    } = this.options;\n    const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq.Scalar));\n    const ctx = {\n      doc: this,\n      indentStep: '  ',\n      keep,\n      mapAsMap: keep && !!mapAsMap,\n      maxAliasCount,\n      stringify // Requiring directly in Pair would create circular dependencies\n\n    };\n    const anchorNames = Object.keys(this.anchors.map);\n    if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(name => [this.anchors.map[name], {\n      alias: [],\n      aliasCount: 0,\n      count: 1\n    }]));\n    const res = resolveSeq.toJSON(this.contents, arg, ctx);\n    if (typeof onAnchor === 'function' && ctx.anchors) for (const {\n      count,\n      res\n    } of ctx.anchors.values()) onAnchor(res, count);\n    return res;\n  }\n\n  toString() {\n    if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified');\n    const indentSize = this.options.indent;\n\n    if (!Number.isInteger(indentSize) || indentSize <= 0) {\n      const s = JSON.stringify(indentSize);\n      throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n    }\n\n    this.setSchema();\n    const lines = [];\n    let hasDirectives = false;\n\n    if (this.version) {\n      let vd = '%YAML 1.2';\n\n      if (this.schema.name === 'yaml-1.1') {\n        if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1';\n      }\n\n      lines.push(vd);\n      hasDirectives = true;\n    }\n\n    const tagNames = this.listNonDefaultTags();\n    this.tagPrefixes.forEach(({\n      handle,\n      prefix\n    }) => {\n      if (tagNames.some(t => t.indexOf(prefix) === 0)) {\n        lines.push(`%TAG ${handle} ${prefix}`);\n        hasDirectives = true;\n      }\n    });\n    if (hasDirectives || this.directivesEndMarker) lines.push('---');\n\n    if (this.commentBefore) {\n      if (hasDirectives || !this.directivesEndMarker) lines.unshift('');\n      lines.unshift(this.commentBefore.replace(/^/gm, '#'));\n    }\n\n    const ctx = {\n      anchors: Object.create(null),\n      doc: this,\n      indent: '',\n      indentStep: ' '.repeat(indentSize),\n      stringify // Requiring directly in nodes would create circular dependencies\n\n    };\n    let chompKeep = false;\n    let contentComment = null;\n\n    if (this.contents) {\n      if (this.contents instanceof resolveSeq.Node) {\n        if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push('');\n        if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment\n\n        ctx.forceBlockIndent = !!this.comment;\n        contentComment = this.contents.comment;\n      }\n\n      const onChompKeep = contentComment ? null : () => chompKeep = true;\n      const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep);\n      lines.push(resolveSeq.addComment(body, '', contentComment));\n    } else if (this.contents !== undefined) {\n      lines.push(stringify(this.contents, ctx));\n    }\n\n    if (this.comment) {\n      if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push('');\n      lines.push(this.comment.replace(/^/gm, '#'));\n    }\n\n    return lines.join('\\n') + '\\n';\n  }\n\n}\n\nPlainValue._defineProperty(Document, \"defaults\", documentOptions);\n\nexports.Document = Document;\nexports.defaultOptions = defaultOptions;\nexports.scalarOptions = scalarOptions;\n","'use strict';\n\nconst Char = {\n  ANCHOR: '&',\n  COMMENT: '#',\n  TAG: '!',\n  DIRECTIVES_END: '-',\n  DOCUMENT_END: '.'\n};\nconst Type = {\n  ALIAS: 'ALIAS',\n  BLANK_LINE: 'BLANK_LINE',\n  BLOCK_FOLDED: 'BLOCK_FOLDED',\n  BLOCK_LITERAL: 'BLOCK_LITERAL',\n  COMMENT: 'COMMENT',\n  DIRECTIVE: 'DIRECTIVE',\n  DOCUMENT: 'DOCUMENT',\n  FLOW_MAP: 'FLOW_MAP',\n  FLOW_SEQ: 'FLOW_SEQ',\n  MAP: 'MAP',\n  MAP_KEY: 'MAP_KEY',\n  MAP_VALUE: 'MAP_VALUE',\n  PLAIN: 'PLAIN',\n  QUOTE_DOUBLE: 'QUOTE_DOUBLE',\n  QUOTE_SINGLE: 'QUOTE_SINGLE',\n  SEQ: 'SEQ',\n  SEQ_ITEM: 'SEQ_ITEM'\n};\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nconst defaultTags = {\n  MAP: 'tag:yaml.org,2002:map',\n  SEQ: 'tag:yaml.org,2002:seq',\n  STR: 'tag:yaml.org,2002:str'\n};\n\nfunction findLineStarts(src) {\n  const ls = [0];\n  let offset = src.indexOf('\\n');\n\n  while (offset !== -1) {\n    offset += 1;\n    ls.push(offset);\n    offset = src.indexOf('\\n', offset);\n  }\n\n  return ls;\n}\n\nfunction getSrcInfo(cst) {\n  let lineStarts, src;\n\n  if (typeof cst === 'string') {\n    lineStarts = findLineStarts(cst);\n    src = cst;\n  } else {\n    if (Array.isArray(cst)) cst = cst[0];\n\n    if (cst && cst.context) {\n      if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);\n      lineStarts = cst.lineStarts;\n      src = cst.context.src;\n    }\n  }\n\n  return {\n    lineStarts,\n    src\n  };\n}\n/**\n * @typedef {Object} LinePos - One-indexed position in the source\n * @property {number} line\n * @property {number} col\n */\n\n/**\n * Determine the line/col position matching a character offset.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns a one-indexed `{ line, col }` location if found, or\n * `undefined` otherwise.\n *\n * @param {number} offset\n * @param {string|Document|Document[]} cst\n * @returns {?LinePos}\n */\n\n\nfunction getLinePos(offset, cst) {\n  if (typeof offset !== 'number' || offset < 0) return null;\n  const {\n    lineStarts,\n    src\n  } = getSrcInfo(cst);\n  if (!lineStarts || !src || offset > src.length) return null;\n\n  for (let i = 0; i < lineStarts.length; ++i) {\n    const start = lineStarts[i];\n\n    if (offset < start) {\n      return {\n        line: i,\n        col: offset - lineStarts[i - 1] + 1\n      };\n    }\n\n    if (offset === start) return {\n      line: i + 1,\n      col: 1\n    };\n  }\n\n  const line = lineStarts.length;\n  return {\n    line,\n    col: offset - lineStarts[line - 1] + 1\n  };\n}\n/**\n * Get a specified line from the source.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns the line as a string if found, or `null` otherwise.\n *\n * @param {number} line One-indexed line number\n * @param {string|Document|Document[]} cst\n * @returns {?string}\n */\n\nfunction getLine(line, cst) {\n  const {\n    lineStarts,\n    src\n  } = getSrcInfo(cst);\n  if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;\n  const start = lineStarts[line - 1];\n  let end = lineStarts[line]; // undefined for last line; that's ok for slice()\n\n  while (end && end > start && src[end - 1] === '\\n') --end;\n\n  return src.slice(start, end);\n}\n/**\n * Pretty-print the starting line from the source indicated by the range `pos`\n *\n * Trims output to `maxWidth` chars while keeping the starting column visible,\n * using `…` at either end to indicate dropped characters.\n *\n * Returns a two-line string (or `null`) with `\\n` as separator; the second line\n * will hold appropriately indented `^` marks indicating the column range.\n *\n * @param {Object} pos\n * @param {LinePos} pos.start\n * @param {LinePos} [pos.end]\n * @param {string|Document|Document[]*} cst\n * @param {number} [maxWidth=80]\n * @returns {?string}\n */\n\nfunction getPrettyContext({\n  start,\n  end\n}, cst, maxWidth = 80) {\n  let src = getLine(start.line, cst);\n  if (!src) return null;\n  let {\n    col\n  } = start;\n\n  if (src.length > maxWidth) {\n    if (col <= maxWidth - 10) {\n      src = src.substr(0, maxWidth - 1) + '…';\n    } else {\n      const halfWidth = Math.round(maxWidth / 2);\n      if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';\n      col -= src.length - maxWidth;\n      src = '…' + src.substr(1 - maxWidth);\n    }\n  }\n\n  let errLen = 1;\n  let errEnd = '';\n\n  if (end) {\n    if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {\n      errLen = end.col - start.col;\n    } else {\n      errLen = Math.min(src.length + 1, maxWidth) - col;\n      errEnd = '…';\n    }\n  }\n\n  const offset = col > 1 ? ' '.repeat(col - 1) : '';\n  const err = '^'.repeat(errLen);\n  return `${src}\\n${offset}${err}${errEnd}`;\n}\n\nclass Range {\n  static copy(orig) {\n    return new Range(orig.start, orig.end);\n  }\n\n  constructor(start, end) {\n    this.start = start;\n    this.end = end || start;\n  }\n\n  isEmpty() {\n    return typeof this.start !== 'number' || !this.end || this.end <= this.start;\n  }\n  /**\n   * Set `origStart` and `origEnd` to point to the original source range for\n   * this node, which may differ due to dropped CR characters.\n   *\n   * @param {number[]} cr - Positions of dropped CR characters\n   * @param {number} offset - Starting index of `cr` from the last call\n   * @returns {number} - The next offset, matching the one found for `origStart`\n   */\n\n\n  setOrigRange(cr, offset) {\n    const {\n      start,\n      end\n    } = this;\n\n    if (cr.length === 0 || end <= cr[0]) {\n      this.origStart = start;\n      this.origEnd = end;\n      return offset;\n    }\n\n    let i = offset;\n\n    while (i < cr.length) {\n      if (cr[i] > start) break;else ++i;\n    }\n\n    this.origStart = start + i;\n    const nextOffset = i;\n\n    while (i < cr.length) {\n      // if end was at \\n, it should now be at \\r\n      if (cr[i] >= end) break;else ++i;\n    }\n\n    this.origEnd = end + i;\n    return nextOffset;\n  }\n\n}\n\n/** Root class of all nodes */\n\nclass Node {\n  static addStringTerminator(src, offset, str) {\n    if (str[str.length - 1] === '\\n') return str;\n    const next = Node.endOfWhiteSpace(src, offset);\n    return next >= src.length || src[next] === '\\n' ? str + '\\n' : str;\n  } // ^(---|...)\n\n\n  static atDocumentBoundary(src, offset, sep) {\n    const ch0 = src[offset];\n    if (!ch0) return true;\n    const prev = src[offset - 1];\n    if (prev && prev !== '\\n') return false;\n\n    if (sep) {\n      if (ch0 !== sep) return false;\n    } else {\n      if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;\n    }\n\n    const ch1 = src[offset + 1];\n    const ch2 = src[offset + 2];\n    if (ch1 !== ch0 || ch2 !== ch0) return false;\n    const ch3 = src[offset + 3];\n    return !ch3 || ch3 === '\\n' || ch3 === '\\t' || ch3 === ' ';\n  }\n\n  static endOfIdentifier(src, offset) {\n    let ch = src[offset];\n    const isVerbatim = ch === '<';\n    const notOk = isVerbatim ? ['\\n', '\\t', ' ', '>'] : ['\\n', '\\t', ' ', '[', ']', '{', '}', ','];\n\n    while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1];\n\n    if (isVerbatim && ch === '>') offset += 1;\n    return offset;\n  }\n\n  static endOfIndent(src, offset) {\n    let ch = src[offset];\n\n    while (ch === ' ') ch = src[offset += 1];\n\n    return offset;\n  }\n\n  static endOfLine(src, offset) {\n    let ch = src[offset];\n\n    while (ch && ch !== '\\n') ch = src[offset += 1];\n\n    return offset;\n  }\n\n  static endOfWhiteSpace(src, offset) {\n    let ch = src[offset];\n\n    while (ch === '\\t' || ch === ' ') ch = src[offset += 1];\n\n    return offset;\n  }\n\n  static startOfLine(src, offset) {\n    let ch = src[offset - 1];\n    if (ch === '\\n') return offset;\n\n    while (ch && ch !== '\\n') ch = src[offset -= 1];\n\n    return offset + 1;\n  }\n  /**\n   * End of indentation, or null if the line's indent level is not more\n   * than `indent`\n   *\n   * @param {string} src\n   * @param {number} indent\n   * @param {number} lineStart\n   * @returns {?number}\n   */\n\n\n  static endOfBlockIndent(src, indent, lineStart) {\n    const inEnd = Node.endOfIndent(src, lineStart);\n\n    if (inEnd > lineStart + indent) {\n      return inEnd;\n    } else {\n      const wsEnd = Node.endOfWhiteSpace(src, inEnd);\n      const ch = src[wsEnd];\n      if (!ch || ch === '\\n') return wsEnd;\n    }\n\n    return null;\n  }\n\n  static atBlank(src, offset, endAsBlank) {\n    const ch = src[offset];\n    return ch === '\\n' || ch === '\\t' || ch === ' ' || endAsBlank && !ch;\n  }\n\n  static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {\n    if (!ch || indentDiff < 0) return false;\n    if (indentDiff > 0) return true;\n    return indicatorAsIndent && ch === '-';\n  } // should be at line or string end, or at next non-whitespace char\n\n\n  static normalizeOffset(src, offset) {\n    const ch = src[offset];\n    return !ch ? offset : ch !== '\\n' && src[offset - 1] === '\\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);\n  } // fold single newline into space, multiple newlines to N - 1 newlines\n  // presumes src[offset] === '\\n'\n\n\n  static foldNewline(src, offset, indent) {\n    let inCount = 0;\n    let error = false;\n    let fold = '';\n    let ch = src[offset + 1];\n\n    while (ch === ' ' || ch === '\\t' || ch === '\\n') {\n      switch (ch) {\n        case '\\n':\n          inCount = 0;\n          offset += 1;\n          fold += '\\n';\n          break;\n\n        case '\\t':\n          if (inCount <= indent) error = true;\n          offset = Node.endOfWhiteSpace(src, offset + 2) - 1;\n          break;\n\n        case ' ':\n          inCount += 1;\n          offset += 1;\n          break;\n      }\n\n      ch = src[offset + 1];\n    }\n\n    if (!fold) fold = ' ';\n    if (ch && inCount <= indent) error = true;\n    return {\n      fold,\n      offset,\n      error\n    };\n  }\n\n  constructor(type, props, context) {\n    Object.defineProperty(this, 'context', {\n      value: context || null,\n      writable: true\n    });\n    this.error = null;\n    this.range = null;\n    this.valueRange = null;\n    this.props = props || [];\n    this.type = type;\n    this.value = null;\n  }\n\n  getPropValue(idx, key, skipKey) {\n    if (!this.context) return null;\n    const {\n      src\n    } = this.context;\n    const prop = this.props[idx];\n    return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;\n  }\n\n  get anchor() {\n    for (let i = 0; i < this.props.length; ++i) {\n      const anchor = this.getPropValue(i, Char.ANCHOR, true);\n      if (anchor != null) return anchor;\n    }\n\n    return null;\n  }\n\n  get comment() {\n    const comments = [];\n\n    for (let i = 0; i < this.props.length; ++i) {\n      const comment = this.getPropValue(i, Char.COMMENT, true);\n      if (comment != null) comments.push(comment);\n    }\n\n    return comments.length > 0 ? comments.join('\\n') : null;\n  }\n\n  commentHasRequiredWhitespace(start) {\n    const {\n      src\n    } = this.context;\n    if (this.header && start === this.header.end) return false;\n    if (!this.valueRange) return false;\n    const {\n      end\n    } = this.valueRange;\n    return start !== end || Node.atBlank(src, end - 1);\n  }\n\n  get hasComment() {\n    if (this.context) {\n      const {\n        src\n      } = this.context;\n\n      for (let i = 0; i < this.props.length; ++i) {\n        if (src[this.props[i].start] === Char.COMMENT) return true;\n      }\n    }\n\n    return false;\n  }\n\n  get hasProps() {\n    if (this.context) {\n      const {\n        src\n      } = this.context;\n\n      for (let i = 0; i < this.props.length; ++i) {\n        if (src[this.props[i].start] !== Char.COMMENT) return true;\n      }\n    }\n\n    return false;\n  }\n\n  get includesTrailingLines() {\n    return false;\n  }\n\n  get jsonLike() {\n    const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];\n    return jsonLikeTypes.indexOf(this.type) !== -1;\n  }\n\n  get rangeAsLinePos() {\n    if (!this.range || !this.context) return undefined;\n    const start = getLinePos(this.range.start, this.context.root);\n    if (!start) return undefined;\n    const end = getLinePos(this.range.end, this.context.root);\n    return {\n      start,\n      end\n    };\n  }\n\n  get rawValue() {\n    if (!this.valueRange || !this.context) return null;\n    const {\n      start,\n      end\n    } = this.valueRange;\n    return this.context.src.slice(start, end);\n  }\n\n  get tag() {\n    for (let i = 0; i < this.props.length; ++i) {\n      const tag = this.getPropValue(i, Char.TAG, false);\n\n      if (tag != null) {\n        if (tag[1] === '<') {\n          return {\n            verbatim: tag.slice(2, -1)\n          };\n        } else {\n          // eslint-disable-next-line no-unused-vars\n          const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/);\n          return {\n            handle,\n            suffix\n          };\n        }\n      }\n    }\n\n    return null;\n  }\n\n  get valueRangeContainsNewline() {\n    if (!this.valueRange || !this.context) return false;\n    const {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      src\n    } = this.context;\n\n    for (let i = start; i < end; ++i) {\n      if (src[i] === '\\n') return true;\n    }\n\n    return false;\n  }\n\n  parseComment(start) {\n    const {\n      src\n    } = this.context;\n\n    if (src[start] === Char.COMMENT) {\n      const end = Node.endOfLine(src, start + 1);\n      const commentRange = new Range(start, end);\n      this.props.push(commentRange);\n      return end;\n    }\n\n    return start;\n  }\n  /**\n   * Populates the `origStart` and `origEnd` values of all ranges for this\n   * node. Extended by child classes to handle descendant nodes.\n   *\n   * @param {number[]} cr - Positions of dropped CR characters\n   * @param {number} offset - Starting index of `cr` from the last call\n   * @returns {number} - The next offset, matching the one found for `origStart`\n   */\n\n\n  setOrigRanges(cr, offset) {\n    if (this.range) offset = this.range.setOrigRange(cr, offset);\n    if (this.valueRange) this.valueRange.setOrigRange(cr, offset);\n    this.props.forEach(prop => prop.setOrigRange(cr, offset));\n    return offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    const str = src.slice(range.start, range.end);\n    return Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass YAMLError extends Error {\n  constructor(name, source, message) {\n    if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`);\n    super();\n    this.name = name;\n    this.message = message;\n    this.source = source;\n  }\n\n  makePretty() {\n    if (!this.source) return;\n    this.nodeType = this.source.type;\n    const cst = this.source.context && this.source.context.root;\n\n    if (typeof this.offset === 'number') {\n      this.range = new Range(this.offset, this.offset + 1);\n      const start = cst && getLinePos(this.offset, cst);\n\n      if (start) {\n        const end = {\n          line: start.line,\n          col: start.col + 1\n        };\n        this.linePos = {\n          start,\n          end\n        };\n      }\n\n      delete this.offset;\n    } else {\n      this.range = this.source.range;\n      this.linePos = this.source.rangeAsLinePos;\n    }\n\n    if (this.linePos) {\n      const {\n        line,\n        col\n      } = this.linePos.start;\n      this.message += ` at line ${line}, column ${col}`;\n      const ctx = cst && getPrettyContext(this.linePos, cst);\n      if (ctx) this.message += `:\\n\\n${ctx}\\n`;\n    }\n\n    delete this.source;\n  }\n\n}\nclass YAMLReferenceError extends YAMLError {\n  constructor(source, message) {\n    super('YAMLReferenceError', source, message);\n  }\n\n}\nclass YAMLSemanticError extends YAMLError {\n  constructor(source, message) {\n    super('YAMLSemanticError', source, message);\n  }\n\n}\nclass YAMLSyntaxError extends YAMLError {\n  constructor(source, message) {\n    super('YAMLSyntaxError', source, message);\n  }\n\n}\nclass YAMLWarning extends YAMLError {\n  constructor(source, message) {\n    super('YAMLWarning', source, message);\n  }\n\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nclass PlainValue extends Node {\n  static endOfLine(src, start, inFlow) {\n    let ch = src[start];\n    let offset = start;\n\n    while (ch && ch !== '\\n') {\n      if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;\n      const next = src[offset + 1];\n      if (ch === ':' && (!next || next === '\\n' || next === '\\t' || next === ' ' || inFlow && next === ',')) break;\n      if ((ch === ' ' || ch === '\\t') && next === '#') break;\n      offset += 1;\n      ch = next;\n    }\n\n    return offset;\n  }\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    let {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      src\n    } = this.context;\n    let ch = src[end - 1];\n\n    while (start < end && (ch === '\\n' || ch === '\\t' || ch === ' ')) ch = src[--end - 1];\n\n    let str = '';\n\n    for (let i = start; i < end; ++i) {\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        const {\n          fold,\n          offset\n        } = Node.foldNewline(src, i, -1);\n        str += fold;\n        i = offset;\n      } else if (ch === ' ' || ch === '\\t') {\n        // trim trailing whitespace\n        const wsStart = i;\n        let next = src[i + 1];\n\n        while (i < end && (next === ' ' || next === '\\t')) {\n          i += 1;\n          next = src[i + 1];\n        }\n\n        if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n      } else {\n        str += ch;\n      }\n    }\n\n    const ch0 = src[start];\n\n    switch (ch0) {\n      case '\\t':\n        {\n          const msg = 'Plain value cannot start with a tab character';\n          const errors = [new YAMLSemanticError(this, msg)];\n          return {\n            errors,\n            str\n          };\n        }\n\n      case '@':\n      case '`':\n        {\n          const msg = `Plain value cannot start with reserved character ${ch0}`;\n          const errors = [new YAMLSemanticError(this, msg)];\n          return {\n            errors,\n            str\n          };\n        }\n\n      default:\n        return str;\n    }\n  }\n\n  parseBlockValue(start) {\n    const {\n      indent,\n      inFlow,\n      src\n    } = this.context;\n    let offset = start;\n    let valueEnd = start;\n\n    for (let ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n      if (Node.atDocumentBoundary(src, offset + 1)) break;\n      const end = Node.endOfBlockIndent(src, indent, offset + 1);\n      if (end === null || src[end] === '#') break;\n\n      if (src[end] === '\\n') {\n        offset = end;\n      } else {\n        valueEnd = PlainValue.endOfLine(src, end, inFlow);\n        offset = valueEnd;\n      }\n    }\n\n    if (this.valueRange.isEmpty()) this.valueRange.start = start;\n    this.valueRange.end = valueEnd;\n    return valueEnd;\n  }\n  /**\n   * Parses a plain value from the source\n   *\n   * Accepted forms are:\n   * ```\n   * #comment\n   *\n   * first line\n   *\n   * first line #comment\n   *\n   * first line\n   * block\n   * lines\n   *\n   * #comment\n   * block\n   * lines\n   * ```\n   * where block lines are empty or have an indent level greater than `indent`.\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar, may be `\\n`\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      inFlow,\n      src\n    } = context;\n    let offset = start;\n    const ch = src[offset];\n\n    if (ch && ch !== '#' && ch !== '\\n') {\n      offset = PlainValue.endOfLine(src, start, inFlow);\n    }\n\n    this.valueRange = new Range(start, offset);\n    offset = Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n\n    if (!this.hasComment || this.valueRange.isEmpty()) {\n      offset = this.parseBlockValue(offset);\n    }\n\n    return offset;\n  }\n\n}\n\nexports.Char = Char;\nexports.Node = Node;\nexports.PlainValue = PlainValue;\nexports.Range = Range;\nexports.Type = Type;\nexports.YAMLError = YAMLError;\nexports.YAMLReferenceError = YAMLReferenceError;\nexports.YAMLSemanticError = YAMLSemanticError;\nexports.YAMLSyntaxError = YAMLSyntaxError;\nexports.YAMLWarning = YAMLWarning;\nexports._defineProperty = _defineProperty;\nexports.defaultTagPrefix = defaultTagPrefix;\nexports.defaultTags = defaultTags;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar warnings = require('./warnings-1000a372.js');\n\nfunction createMap(schema, obj, ctx) {\n  const map = new resolveSeq.YAMLMap(schema);\n\n  if (obj instanceof Map) {\n    for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx));\n  } else if (obj && typeof obj === 'object') {\n    for (const key of Object.keys(obj)) map.items.push(schema.createPair(key, obj[key], ctx));\n  }\n\n  if (typeof schema.sortMapEntries === 'function') {\n    map.items.sort(schema.sortMapEntries);\n  }\n\n  return map;\n}\n\nconst map = {\n  createNode: createMap,\n  default: true,\n  nodeClass: resolveSeq.YAMLMap,\n  tag: 'tag:yaml.org,2002:map',\n  resolve: resolveSeq.resolveMap\n};\n\nfunction createSeq(schema, obj, ctx) {\n  const seq = new resolveSeq.YAMLSeq(schema);\n\n  if (obj && obj[Symbol.iterator]) {\n    for (const it of obj) {\n      const v = schema.createNode(it, ctx.wrapScalars, null, ctx);\n      seq.items.push(v);\n    }\n  }\n\n  return seq;\n}\n\nconst seq = {\n  createNode: createSeq,\n  default: true,\n  nodeClass: resolveSeq.YAMLSeq,\n  tag: 'tag:yaml.org,2002:seq',\n  resolve: resolveSeq.resolveSeq\n};\n\nconst string = {\n  identify: value => typeof value === 'string',\n  default: true,\n  tag: 'tag:yaml.org,2002:str',\n  resolve: resolveSeq.resolveString,\n\n  stringify(item, ctx, onComment, onChompKeep) {\n    ctx = Object.assign({\n      actualString: true\n    }, ctx);\n    return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep);\n  },\n\n  options: resolveSeq.strOptions\n};\n\nconst failsafe = [map, seq, string];\n\n/* global BigInt */\n\nconst intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value);\n\nconst intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);\n\nfunction intStringify$1(node, radix, prefix) {\n  const {\n    value\n  } = node;\n  if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix);\n  return resolveSeq.stringifyNumber(node);\n}\n\nconst nullObj = {\n  identify: value => value == null,\n  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n  default: true,\n  tag: 'tag:yaml.org,2002:null',\n  test: /^(?:~|[Nn]ull|NULL)?$/,\n  resolve: () => null,\n  options: resolveSeq.nullOptions,\n  stringify: () => resolveSeq.nullOptions.nullStr\n};\nconst boolObj = {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n  resolve: str => str[0] === 't' || str[0] === 'T',\n  options: resolveSeq.boolOptions,\n  stringify: ({\n    value\n  }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr\n};\nconst octObj = {\n  identify: value => intIdentify$2(value) && value >= 0,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'OCT',\n  test: /^0o([0-7]+)$/,\n  resolve: (str, oct) => intResolve$1(str, oct, 8),\n  options: resolveSeq.intOptions,\n  stringify: node => intStringify$1(node, 8, '0o')\n};\nconst intObj = {\n  identify: intIdentify$2,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  test: /^[-+]?[0-9]+$/,\n  resolve: str => intResolve$1(str, str, 10),\n  options: resolveSeq.intOptions,\n  stringify: resolveSeq.stringifyNumber\n};\nconst hexObj = {\n  identify: value => intIdentify$2(value) && value >= 0,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'HEX',\n  test: /^0x([0-9a-fA-F]+)$/,\n  resolve: (str, hex) => intResolve$1(str, hex, 16),\n  options: resolveSeq.intOptions,\n  stringify: node => intStringify$1(node, 16, '0x')\n};\nconst nanObj = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n  resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,\n  stringify: resolveSeq.stringifyNumber\n};\nconst expObj = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  format: 'EXP',\n  test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n  resolve: str => parseFloat(str),\n  stringify: ({\n    value\n  }) => Number(value).toExponential()\n};\nconst floatObj = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^[-+]?(?:\\.([0-9]+)|[0-9]+\\.([0-9]*))$/,\n\n  resolve(str, frac1, frac2) {\n    const frac = frac1 || frac2;\n    const node = new resolveSeq.Scalar(parseFloat(str));\n    if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;\n    return node;\n  },\n\n  stringify: resolveSeq.stringifyNumber\n};\nconst core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);\n\n/* global BigInt */\n\nconst intIdentify$1 = value => typeof value === 'bigint' || Number.isInteger(value);\n\nconst stringifyJSON = ({\n  value\n}) => JSON.stringify(value);\n\nconst json = [map, seq, {\n  identify: value => typeof value === 'string',\n  default: true,\n  tag: 'tag:yaml.org,2002:str',\n  resolve: resolveSeq.resolveString,\n  stringify: stringifyJSON\n}, {\n  identify: value => value == null,\n  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n  default: true,\n  tag: 'tag:yaml.org,2002:null',\n  test: /^null$/,\n  resolve: () => null,\n  stringify: stringifyJSON\n}, {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^true|false$/,\n  resolve: str => str === 'true',\n  stringify: stringifyJSON\n}, {\n  identify: intIdentify$1,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  test: /^-?(?:0|[1-9][0-9]*)$/,\n  resolve: str => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),\n  stringify: ({\n    value\n  }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value)\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n  resolve: str => parseFloat(str),\n  stringify: stringifyJSON\n}];\n\njson.scalarFallback = str => {\n  throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n};\n\n/* global BigInt */\n\nconst boolStringify = ({\n  value\n}) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr;\n\nconst intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);\n\nfunction intResolve(sign, src, radix) {\n  let str = src.replace(/_/g, '');\n\n  if (resolveSeq.intOptions.asBigInt) {\n    switch (radix) {\n      case 2:\n        str = `0b${str}`;\n        break;\n\n      case 8:\n        str = `0o${str}`;\n        break;\n\n      case 16:\n        str = `0x${str}`;\n        break;\n    }\n\n    const n = BigInt(str);\n    return sign === '-' ? BigInt(-1) * n : n;\n  }\n\n  const n = parseInt(str, radix);\n  return sign === '-' ? -1 * n : n;\n}\n\nfunction intStringify(node, radix, prefix) {\n  const {\n    value\n  } = node;\n\n  if (intIdentify(value)) {\n    const str = value.toString(radix);\n    return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n  }\n\n  return resolveSeq.stringifyNumber(node);\n}\n\nconst yaml11 = failsafe.concat([{\n  identify: value => value == null,\n  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n  default: true,\n  tag: 'tag:yaml.org,2002:null',\n  test: /^(?:~|[Nn]ull|NULL)?$/,\n  resolve: () => null,\n  options: resolveSeq.nullOptions,\n  stringify: () => resolveSeq.nullOptions.nullStr\n}, {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n  resolve: () => true,\n  options: resolveSeq.boolOptions,\n  stringify: boolStringify\n}, {\n  identify: value => typeof value === 'boolean',\n  default: true,\n  tag: 'tag:yaml.org,2002:bool',\n  test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,\n  resolve: () => false,\n  options: resolveSeq.boolOptions,\n  stringify: boolStringify\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'BIN',\n  test: /^([-+]?)0b([0-1_]+)$/,\n  resolve: (str, sign, bin) => intResolve(sign, bin, 2),\n  stringify: node => intStringify(node, 2, '0b')\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'OCT',\n  test: /^([-+]?)0([0-7_]+)$/,\n  resolve: (str, sign, oct) => intResolve(sign, oct, 8),\n  stringify: node => intStringify(node, 8, '0')\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  test: /^([-+]?)([0-9][0-9_]*)$/,\n  resolve: (str, sign, abs) => intResolve(sign, abs, 10),\n  stringify: resolveSeq.stringifyNumber\n}, {\n  identify: intIdentify,\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'HEX',\n  test: /^([-+]?)0x([0-9a-fA-F_]+)$/,\n  resolve: (str, sign, hex) => intResolve(sign, hex, 16),\n  stringify: node => intStringify(node, 16, '0x')\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n  resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,\n  stringify: resolveSeq.stringifyNumber\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  format: 'EXP',\n  test: /^[-+]?([0-9][0-9_]*)?(\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n  resolve: str => parseFloat(str.replace(/_/g, '')),\n  stringify: ({\n    value\n  }) => Number(value).toExponential()\n}, {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  test: /^[-+]?(?:[0-9][0-9_]*)?\\.([0-9_]*)$/,\n\n  resolve(str, frac) {\n    const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, '')));\n\n    if (frac) {\n      const f = frac.replace(/_/g, '');\n      if (f[f.length - 1] === '0') node.minFractionDigits = f.length;\n    }\n\n    return node;\n  },\n\n  stringify: resolveSeq.stringifyNumber\n}], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp);\n\nconst schemas = {\n  core,\n  failsafe,\n  json,\n  yaml11\n};\nconst tags = {\n  binary: warnings.binary,\n  bool: boolObj,\n  float: floatObj,\n  floatExp: expObj,\n  floatNaN: nanObj,\n  floatTime: warnings.floatTime,\n  int: intObj,\n  intHex: hexObj,\n  intOct: octObj,\n  intTime: warnings.intTime,\n  map,\n  null: nullObj,\n  omap: warnings.omap,\n  pairs: warnings.pairs,\n  seq,\n  set: warnings.set,\n  timestamp: warnings.timestamp\n};\n\nfunction findTagObject(value, tagName, tags) {\n  if (tagName) {\n    const match = tags.filter(t => t.tag === tagName);\n    const tagObj = match.find(t => !t.format) || match[0];\n    if (!tagObj) throw new Error(`Tag ${tagName} not found`);\n    return tagObj;\n  } // TODO: deprecate/remove class check\n\n\n  return tags.find(t => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format);\n}\n\nfunction createNode(value, tagName, ctx) {\n  if (value instanceof resolveSeq.Node) return value;\n  const {\n    defaultPrefix,\n    onTagObj,\n    prevObjects,\n    schema,\n    wrapScalars\n  } = ctx;\n  if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2);\n  let tagObj = findTagObject(value, tagName, schema.tags);\n\n  if (!tagObj) {\n    if (typeof value.toJSON === 'function') value = value.toJSON();\n    if (!value || typeof value !== 'object') return wrapScalars ? new resolveSeq.Scalar(value) : value;\n    tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;\n  }\n\n  if (onTagObj) {\n    onTagObj(tagObj);\n    delete ctx.onTagObj;\n  } // Detect duplicate references to the same object & use Alias nodes for all\n  // after first. The `obj` wrapper allows for circular references to resolve.\n\n\n  const obj = {\n    value: undefined,\n    node: undefined\n  };\n\n  if (value && typeof value === 'object' && prevObjects) {\n    const prev = prevObjects.get(value);\n\n    if (prev) {\n      const alias = new resolveSeq.Alias(prev); // leaves source dirty; must be cleaned by caller\n\n      ctx.aliasNodes.push(alias); // defined along with prevObjects\n\n      return alias;\n    }\n\n    obj.value = value;\n    prevObjects.set(value, obj);\n  }\n\n  obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value;\n  if (tagName && obj.node instanceof resolveSeq.Node) obj.node.tag = tagName;\n  return obj.node;\n}\n\nfunction getSchemaTags(schemas, knownTags, customTags, schemaId) {\n  let tags = schemas[schemaId.replace(/\\W/g, '')]; // 'yaml-1.1' -> 'yaml11'\n\n  if (!tags) {\n    const keys = Object.keys(schemas).map(key => JSON.stringify(key)).join(', ');\n    throw new Error(`Unknown schema \"${schemaId}\"; use one of ${keys}`);\n  }\n\n  if (Array.isArray(customTags)) {\n    for (const tag of customTags) tags = tags.concat(tag);\n  } else if (typeof customTags === 'function') {\n    tags = customTags(tags.slice());\n  }\n\n  for (let i = 0; i < tags.length; ++i) {\n    const tag = tags[i];\n\n    if (typeof tag === 'string') {\n      const tagObj = knownTags[tag];\n\n      if (!tagObj) {\n        const keys = Object.keys(knownTags).map(key => JSON.stringify(key)).join(', ');\n        throw new Error(`Unknown custom tag \"${tag}\"; use one of ${keys}`);\n      }\n\n      tags[i] = tagObj;\n    }\n  }\n\n  return tags;\n}\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\n\nclass Schema {\n  // TODO: remove in v2\n  // TODO: remove in v2\n  constructor({\n    customTags,\n    merge,\n    schema,\n    sortMapEntries,\n    tags: deprecatedCustomTags\n  }) {\n    this.merge = !!merge;\n    this.name = schema;\n    this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;\n    if (!customTags && deprecatedCustomTags) warnings.warnOptionDeprecation('tags', 'customTags');\n    this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);\n  }\n\n  createNode(value, wrapScalars, tagName, ctx) {\n    const baseCtx = {\n      defaultPrefix: Schema.defaultPrefix,\n      schema: this,\n      wrapScalars\n    };\n    const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;\n    return createNode(value, tagName, createCtx);\n  }\n\n  createPair(key, value, ctx) {\n    if (!ctx) ctx = {\n      wrapScalars: true\n    };\n    const k = this.createNode(key, ctx.wrapScalars, null, ctx);\n    const v = this.createNode(value, ctx.wrapScalars, null, ctx);\n    return new resolveSeq.Pair(k, v);\n  }\n\n}\n\nPlainValue._defineProperty(Schema, \"defaultPrefix\", PlainValue.defaultTagPrefix);\n\nPlainValue._defineProperty(Schema, \"defaultTags\", PlainValue.defaultTags);\n\nexports.Schema = Schema;\n","'use strict';\n\nvar parseCst = require('./parse-cst.js');\nvar Document$1 = require('./Document-9b4560a1.js');\nvar Schema = require('./Schema-88e323a7.js');\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar warnings = require('./warnings-1000a372.js');\nrequire('./resolveSeq-d03cb037.js');\n\nfunction createNode(value, wrapScalars = true, tag) {\n  if (tag === undefined && typeof wrapScalars === 'string') {\n    tag = wrapScalars;\n    wrapScalars = true;\n  }\n\n  const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions);\n  const schema = new Schema.Schema(options);\n  return schema.createNode(value, wrapScalars, tag);\n}\n\nclass Document extends Document$1.Document {\n  constructor(options) {\n    super(Object.assign({}, Document$1.defaultOptions, options));\n  }\n\n}\n\nfunction parseAllDocuments(src, options) {\n  const stream = [];\n  let prev;\n\n  for (const cstDoc of parseCst.parse(src)) {\n    const doc = new Document(options);\n    doc.parse(cstDoc, prev);\n    stream.push(doc);\n    prev = doc;\n  }\n\n  return stream;\n}\n\nfunction parseDocument(src, options) {\n  const cst = parseCst.parse(src);\n  const doc = new Document(options).parse(cst[0]);\n\n  if (cst.length > 1) {\n    const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';\n    doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg));\n  }\n\n  return doc;\n}\n\nfunction parse(src, options) {\n  const doc = parseDocument(src, options);\n  doc.warnings.forEach(warning => warnings.warn(warning));\n  if (doc.errors.length > 0) throw doc.errors[0];\n  return doc.toJSON();\n}\n\nfunction stringify(value, options) {\n  const doc = new Document(options);\n  doc.contents = value;\n  return String(doc);\n}\n\nconst YAML = {\n  createNode,\n  defaultOptions: Document$1.defaultOptions,\n  Document,\n  parse,\n  parseAllDocuments,\n  parseCST: parseCst.parse,\n  parseDocument,\n  scalarOptions: Document$1.scalarOptions,\n  stringify\n};\n\nexports.YAML = YAML;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\n\nclass BlankLine extends PlainValue.Node {\n  constructor() {\n    super(PlainValue.Type.BLANK_LINE);\n  }\n  /* istanbul ignore next */\n\n\n  get includesTrailingLines() {\n    // This is never called from anywhere, but if it were,\n    // this is the value it should return.\n    return true;\n  }\n  /**\n   * Parses a blank line from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first \\n character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    this.range = new PlainValue.Range(start, start + 1);\n    return start + 1;\n  }\n\n}\n\nclass CollectionItem extends PlainValue.Node {\n  constructor(type, props) {\n    super(type, props);\n    this.node = null;\n  }\n\n  get includesTrailingLines() {\n    return !!this.node && this.node.includesTrailingLines;\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      parseNode,\n      src\n    } = context;\n    let {\n      atLineStart,\n      lineStart\n    } = context;\n    if (!atLineStart && this.type === PlainValue.Type.SEQ_ITEM) this.error = new PlainValue.YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line');\n    const indent = atLineStart ? start - lineStart : context.indent;\n    let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);\n    let ch = src[offset];\n    const inlineComment = ch === '#';\n    const comments = [];\n    let blankLine = null;\n\n    while (ch === '\\n' || ch === '#') {\n      if (ch === '#') {\n        const end = PlainValue.Node.endOfLine(src, offset + 1);\n        comments.push(new PlainValue.Range(offset, end));\n        offset = end;\n      } else {\n        atLineStart = true;\n        lineStart = offset + 1;\n        const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n\n        if (src[wsEnd] === '\\n' && comments.length === 0) {\n          blankLine = new BlankLine();\n          lineStart = blankLine.parse({\n            src\n          }, lineStart);\n        }\n\n        offset = PlainValue.Node.endOfIndent(src, lineStart);\n      }\n\n      ch = src[offset];\n    }\n\n    if (PlainValue.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue.Type.SEQ_ITEM)) {\n      this.node = parseNode({\n        atLineStart,\n        inCollection: false,\n        indent,\n        lineStart,\n        parent: this\n      }, offset);\n    } else if (ch && lineStart > start + 1) {\n      offset = lineStart - 1;\n    }\n\n    if (this.node) {\n      if (blankLine) {\n        // Only blank lines preceding non-empty nodes are captured. Note that\n        // this means that collection item range start indices do not always\n        // increase monotonically. -- eemeli/yaml#126\n        const items = context.parent.items || context.parent.contents;\n        if (items) items.push(blankLine);\n      }\n\n      if (comments.length) Array.prototype.push.apply(this.props, comments);\n      offset = this.node.range.end;\n    } else {\n      if (inlineComment) {\n        const c = comments[0];\n        this.props.push(c);\n        offset = c.end;\n      } else {\n        offset = PlainValue.Node.endOfLine(src, start + 1);\n      }\n    }\n\n    const end = this.node ? this.node.valueRange.end : offset;\n    this.valueRange = new PlainValue.Range(start, end);\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    return this.node ? this.node.setOrigRanges(cr, offset) : offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      node,\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);\n    return PlainValue.Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass Comment extends PlainValue.Node {\n  constructor() {\n    super(PlainValue.Type.COMMENT);\n  }\n  /**\n   * Parses a comment line from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const offset = this.parseComment(start);\n    this.range = new PlainValue.Range(start, offset);\n    return offset;\n  }\n\n}\n\nfunction grabCollectionEndComments(node) {\n  let cnode = node;\n\n  while (cnode instanceof CollectionItem) cnode = cnode.node;\n\n  if (!(cnode instanceof Collection)) return null;\n  const len = cnode.items.length;\n  let ci = -1;\n\n  for (let i = len - 1; i >= 0; --i) {\n    const n = cnode.items[i];\n\n    if (n.type === PlainValue.Type.COMMENT) {\n      // Keep sufficiently indented comments with preceding node\n      const {\n        indent,\n        lineStart\n      } = n.context;\n      if (indent > 0 && n.range.start >= lineStart + indent) break;\n      ci = i;\n    } else if (n.type === PlainValue.Type.BLANK_LINE) ci = i;else break;\n  }\n\n  if (ci === -1) return null;\n  const ca = cnode.items.splice(ci, len - ci);\n  const prevEnd = ca[0].range.start;\n\n  while (true) {\n    cnode.range.end = prevEnd;\n    if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd;\n    if (cnode === node) break;\n    cnode = cnode.context.parent;\n  }\n\n  return ca;\n}\nclass Collection extends PlainValue.Node {\n  static nextContentHasIndent(src, offset, indent) {\n    const lineStart = PlainValue.Node.endOfLine(src, offset) + 1;\n    offset = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n    const ch = src[offset];\n    if (!ch) return false;\n    if (offset >= lineStart + indent) return true;\n    if (ch !== '#' && ch !== '\\n') return false;\n    return Collection.nextContentHasIndent(src, offset, indent);\n  }\n\n  constructor(firstItem) {\n    super(firstItem.type === PlainValue.Type.SEQ_ITEM ? PlainValue.Type.SEQ : PlainValue.Type.MAP);\n\n    for (let i = firstItem.props.length - 1; i >= 0; --i) {\n      if (firstItem.props[i].start < firstItem.context.lineStart) {\n        // props on previous line are assumed by the collection\n        this.props = firstItem.props.slice(0, i + 1);\n        firstItem.props = firstItem.props.slice(i + 1);\n        const itemRange = firstItem.props[0] || firstItem.valueRange;\n        firstItem.range.start = itemRange.start;\n        break;\n      }\n    }\n\n    this.items = [firstItem];\n    const ec = grabCollectionEndComments(firstItem);\n    if (ec) Array.prototype.push.apply(this.items, ec);\n  }\n\n  get includesTrailingLines() {\n    return this.items.length > 0;\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      parseNode,\n      src\n    } = context; // It's easier to recalculate lineStart here rather than tracking down the\n    // last context from which to read it -- eemeli/yaml#2\n\n    let lineStart = PlainValue.Node.startOfLine(src, start);\n    const firstItem = this.items[0]; // First-item context needs to be correct for later comment handling\n    // -- eemeli/yaml#17\n\n    firstItem.context.parent = this;\n    this.valueRange = PlainValue.Range.copy(firstItem.valueRange);\n    const indent = firstItem.range.start - firstItem.context.lineStart;\n    let offset = start;\n    offset = PlainValue.Node.normalizeOffset(src, offset);\n    let ch = src[offset];\n    let atLineStart = PlainValue.Node.endOfWhiteSpace(src, lineStart) === offset;\n    let prevIncludesTrailingLines = false;\n\n    while (ch) {\n      while (ch === '\\n' || ch === '#') {\n        if (atLineStart && ch === '\\n' && !prevIncludesTrailingLines) {\n          const blankLine = new BlankLine();\n          offset = blankLine.parse({\n            src\n          }, offset);\n          this.valueRange.end = offset;\n\n          if (offset >= src.length) {\n            ch = null;\n            break;\n          }\n\n          this.items.push(blankLine);\n          offset -= 1; // blankLine.parse() consumes terminal newline\n        } else if (ch === '#') {\n          if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) {\n            return offset;\n          }\n\n          const comment = new Comment();\n          offset = comment.parse({\n            indent,\n            lineStart,\n            src\n          }, offset);\n          this.items.push(comment);\n          this.valueRange.end = offset;\n\n          if (offset >= src.length) {\n            ch = null;\n            break;\n          }\n        }\n\n        lineStart = offset + 1;\n        offset = PlainValue.Node.endOfIndent(src, lineStart);\n\n        if (PlainValue.Node.atBlank(src, offset)) {\n          const wsEnd = PlainValue.Node.endOfWhiteSpace(src, offset);\n          const next = src[wsEnd];\n\n          if (!next || next === '\\n' || next === '#') {\n            offset = wsEnd;\n          }\n        }\n\n        ch = src[offset];\n        atLineStart = true;\n      }\n\n      if (!ch) {\n        break;\n      }\n\n      if (offset !== lineStart + indent && (atLineStart || ch !== ':')) {\n        if (offset < lineStart + indent) {\n          if (lineStart > start) offset = lineStart;\n          break;\n        } else if (!this.error) {\n          const msg = 'All collection items must start at the same column';\n          this.error = new PlainValue.YAMLSyntaxError(this, msg);\n        }\n      }\n\n      if (firstItem.type === PlainValue.Type.SEQ_ITEM) {\n        if (ch !== '-') {\n          if (lineStart > start) offset = lineStart;\n          break;\n        }\n      } else if (ch === '-' && !this.error) {\n        // map key may start with -, as long as it's followed by a non-whitespace char\n        const next = src[offset + 1];\n\n        if (!next || next === '\\n' || next === '\\t' || next === ' ') {\n          const msg = 'A collection cannot be both a mapping and a sequence';\n          this.error = new PlainValue.YAMLSyntaxError(this, msg);\n        }\n      }\n\n      const node = parseNode({\n        atLineStart,\n        inCollection: true,\n        indent,\n        lineStart,\n        parent: this\n      }, offset);\n      if (!node) return offset; // at next document start\n\n      this.items.push(node);\n      this.valueRange.end = node.valueRange.end;\n      offset = PlainValue.Node.normalizeOffset(src, node.range.end);\n      ch = src[offset];\n      atLineStart = false;\n      prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range\n      // has advanced to check the current line's indentation level\n      // -- eemeli/yaml#10 & eemeli/yaml#38\n\n      if (ch) {\n        let ls = offset - 1;\n        let prev = src[ls];\n\n        while (prev === ' ' || prev === '\\t') prev = src[--ls];\n\n        if (prev === '\\n') {\n          lineStart = ls + 1;\n          atLineStart = true;\n        }\n      }\n\n      const ec = grabCollectionEndComments(node);\n      if (ec) Array.prototype.push.apply(this.items, ec);\n    }\n\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    this.items.forEach(node => {\n      offset = node.setOrigRanges(cr, offset);\n    });\n    return offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      items,\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    let str = src.slice(range.start, items[0].range.start) + String(items[0]);\n\n    for (let i = 1; i < items.length; ++i) {\n      const item = items[i];\n      const {\n        atLineStart,\n        indent\n      } = item.context;\n      if (atLineStart) for (let i = 0; i < indent; ++i) str += ' ';\n      str += String(item);\n    }\n\n    return PlainValue.Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass Directive extends PlainValue.Node {\n  constructor() {\n    super(PlainValue.Type.DIRECTIVE);\n    this.name = null;\n  }\n\n  get parameters() {\n    const raw = this.rawValue;\n    return raw ? raw.trim().split(/[ \\t]+/) : [];\n  }\n\n  parseName(start) {\n    const {\n      src\n    } = this.context;\n    let offset = start;\n    let ch = src[offset];\n\n    while (ch && ch !== '\\n' && ch !== '\\t' && ch !== ' ') ch = src[offset += 1];\n\n    this.name = src.slice(start, offset);\n    return offset;\n  }\n\n  parseParameters(start) {\n    const {\n      src\n    } = this.context;\n    let offset = start;\n    let ch = src[offset];\n\n    while (ch && ch !== '\\n' && ch !== '#') ch = src[offset += 1];\n\n    this.valueRange = new PlainValue.Range(start, offset);\n    return offset;\n  }\n\n  parse(context, start) {\n    this.context = context;\n    let offset = this.parseName(start + 1);\n    offset = this.parseParameters(offset);\n    offset = this.parseComment(offset);\n    this.range = new PlainValue.Range(start, offset);\n    return offset;\n  }\n\n}\n\nclass Document extends PlainValue.Node {\n  static startCommentOrEndBlankLine(src, start) {\n    const offset = PlainValue.Node.endOfWhiteSpace(src, start);\n    const ch = src[offset];\n    return ch === '#' || ch === '\\n' ? offset : start;\n  }\n\n  constructor() {\n    super(PlainValue.Type.DOCUMENT);\n    this.directives = null;\n    this.contents = null;\n    this.directivesEndMarker = null;\n    this.documentEndMarker = null;\n  }\n\n  parseDirectives(start) {\n    const {\n      src\n    } = this.context;\n    this.directives = [];\n    let atLineStart = true;\n    let hasDirectives = false;\n    let offset = start;\n\n    while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DIRECTIVES_END)) {\n      offset = Document.startCommentOrEndBlankLine(src, offset);\n\n      switch (src[offset]) {\n        case '\\n':\n          if (atLineStart) {\n            const blankLine = new BlankLine();\n            offset = blankLine.parse({\n              src\n            }, offset);\n\n            if (offset < src.length) {\n              this.directives.push(blankLine);\n            }\n          } else {\n            offset += 1;\n            atLineStart = true;\n          }\n\n          break;\n\n        case '#':\n          {\n            const comment = new Comment();\n            offset = comment.parse({\n              src\n            }, offset);\n            this.directives.push(comment);\n            atLineStart = false;\n          }\n          break;\n\n        case '%':\n          {\n            const directive = new Directive();\n            offset = directive.parse({\n              parent: this,\n              src\n            }, offset);\n            this.directives.push(directive);\n            hasDirectives = true;\n            atLineStart = false;\n          }\n          break;\n\n        default:\n          if (hasDirectives) {\n            this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line');\n          } else if (this.directives.length > 0) {\n            this.contents = this.directives;\n            this.directives = [];\n          }\n\n          return offset;\n      }\n    }\n\n    if (src[offset]) {\n      this.directivesEndMarker = new PlainValue.Range(offset, offset + 3);\n      return offset + 3;\n    }\n\n    if (hasDirectives) {\n      this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line');\n    } else if (this.directives.length > 0) {\n      this.contents = this.directives;\n      this.directives = [];\n    }\n\n    return offset;\n  }\n\n  parseContents(start) {\n    const {\n      parseNode,\n      src\n    } = this.context;\n    if (!this.contents) this.contents = [];\n    let lineStart = start;\n\n    while (src[lineStart - 1] === '-') lineStart -= 1;\n\n    let offset = PlainValue.Node.endOfWhiteSpace(src, start);\n    let atLineStart = lineStart === start;\n    this.valueRange = new PlainValue.Range(offset);\n\n    while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DOCUMENT_END)) {\n      switch (src[offset]) {\n        case '\\n':\n          if (atLineStart) {\n            const blankLine = new BlankLine();\n            offset = blankLine.parse({\n              src\n            }, offset);\n\n            if (offset < src.length) {\n              this.contents.push(blankLine);\n            }\n          } else {\n            offset += 1;\n            atLineStart = true;\n          }\n\n          lineStart = offset;\n          break;\n\n        case '#':\n          {\n            const comment = new Comment();\n            offset = comment.parse({\n              src\n            }, offset);\n            this.contents.push(comment);\n            atLineStart = false;\n          }\n          break;\n\n        default:\n          {\n            const iEnd = PlainValue.Node.endOfIndent(src, offset);\n            const context = {\n              atLineStart,\n              indent: -1,\n              inFlow: false,\n              inCollection: false,\n              lineStart,\n              parent: this\n            };\n            const node = parseNode(context, iEnd);\n            if (!node) return this.valueRange.end = iEnd; // at next document start\n\n            this.contents.push(node);\n            offset = node.range.end;\n            atLineStart = false;\n            const ec = grabCollectionEndComments(node);\n            if (ec) Array.prototype.push.apply(this.contents, ec);\n          }\n      }\n\n      offset = Document.startCommentOrEndBlankLine(src, offset);\n    }\n\n    this.valueRange.end = offset;\n\n    if (src[offset]) {\n      this.documentEndMarker = new PlainValue.Range(offset, offset + 3);\n      offset += 3;\n\n      if (src[offset]) {\n        offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n\n        if (src[offset] === '#') {\n          const comment = new Comment();\n          offset = comment.parse({\n            src\n          }, offset);\n          this.contents.push(comment);\n        }\n\n        switch (src[offset]) {\n          case '\\n':\n            offset += 1;\n            break;\n\n          case undefined:\n            break;\n\n          default:\n            this.error = new PlainValue.YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix');\n        }\n      }\n    }\n\n    return offset;\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    context.root = this;\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM\n\n    offset = this.parseDirectives(offset);\n    offset = this.parseContents(offset);\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    this.directives.forEach(node => {\n      offset = node.setOrigRanges(cr, offset);\n    });\n    if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset);\n    this.contents.forEach(node => {\n      offset = node.setOrigRanges(cr, offset);\n    });\n    if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset);\n    return offset;\n  }\n\n  toString() {\n    const {\n      contents,\n      directives,\n      value\n    } = this;\n    if (value != null) return value;\n    let str = directives.join('');\n\n    if (contents.length > 0) {\n      if (directives.length > 0 || contents[0].type === PlainValue.Type.COMMENT) str += '---\\n';\n      str += contents.join('');\n    }\n\n    if (str[str.length - 1] !== '\\n') str += '\\n';\n    return str;\n  }\n\n}\n\nclass Alias extends PlainValue.Node {\n  /**\n   * Parses an *alias from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = PlainValue.Node.endOfIdentifier(src, start + 1);\n    this.valueRange = new PlainValue.Range(start + 1, offset);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    return offset;\n  }\n\n}\n\nconst Chomp = {\n  CLIP: 'CLIP',\n  KEEP: 'KEEP',\n  STRIP: 'STRIP'\n};\nclass BlockValue extends PlainValue.Node {\n  constructor(type, props) {\n    super(type, props);\n    this.blockIndent = null;\n    this.chomping = Chomp.CLIP;\n    this.header = null;\n  }\n\n  get includesTrailingLines() {\n    return this.chomping === Chomp.KEEP;\n  }\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    let {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      indent,\n      src\n    } = this.context;\n    if (this.valueRange.isEmpty()) return '';\n    let lastNewLine = null;\n    let ch = src[end - 1];\n\n    while (ch === '\\n' || ch === '\\t' || ch === ' ') {\n      end -= 1;\n\n      if (end <= start) {\n        if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens\n      }\n\n      if (ch === '\\n') lastNewLine = end;\n      ch = src[end - 1];\n    }\n\n    let keepStart = end + 1;\n\n    if (lastNewLine) {\n      if (this.chomping === Chomp.KEEP) {\n        keepStart = lastNewLine;\n        end = this.valueRange.end;\n      } else {\n        end = lastNewLine;\n      }\n    }\n\n    const bi = indent + this.blockIndent;\n    const folded = this.type === PlainValue.Type.BLOCK_FOLDED;\n    let atStart = true;\n    let str = '';\n    let sep = '';\n    let prevMoreIndented = false;\n\n    for (let i = start; i < end; ++i) {\n      for (let j = 0; j < bi; ++j) {\n        if (src[i] !== ' ') break;\n        i += 1;\n      }\n\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        if (sep === '\\n') str += '\\n';else sep = '\\n';\n      } else {\n        const lineEnd = PlainValue.Node.endOfLine(src, i);\n        const line = src.slice(i, lineEnd);\n        i = lineEnd;\n\n        if (folded && (ch === ' ' || ch === '\\t') && i < keepStart) {\n          if (sep === ' ') sep = '\\n';else if (!prevMoreIndented && !atStart && sep === '\\n') sep = '\\n\\n';\n          str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '')\n\n          sep = lineEnd < end && src[lineEnd] || '';\n          prevMoreIndented = true;\n        } else {\n          str += sep + line;\n          sep = folded && i < keepStart ? ' ' : '\\n';\n          prevMoreIndented = false;\n        }\n\n        if (atStart && line !== '') atStart = false;\n      }\n    }\n\n    return this.chomping === Chomp.STRIP ? str : str + '\\n';\n  }\n\n  parseBlockHeader(start) {\n    const {\n      src\n    } = this.context;\n    let offset = start + 1;\n    let bi = '';\n\n    while (true) {\n      const ch = src[offset];\n\n      switch (ch) {\n        case '-':\n          this.chomping = Chomp.STRIP;\n          break;\n\n        case '+':\n          this.chomping = Chomp.KEEP;\n          break;\n\n        case '0':\n        case '1':\n        case '2':\n        case '3':\n        case '4':\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          bi += ch;\n          break;\n\n        default:\n          this.blockIndent = Number(bi) || null;\n          this.header = new PlainValue.Range(start, offset);\n          return offset;\n      }\n\n      offset += 1;\n    }\n  }\n\n  parseBlockValue(start) {\n    const {\n      indent,\n      src\n    } = this.context;\n    const explicit = !!this.blockIndent;\n    let offset = start;\n    let valueEnd = start;\n    let minBlockIndent = 1;\n\n    for (let ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n      offset += 1;\n      if (PlainValue.Node.atDocumentBoundary(src, offset)) break;\n      const end = PlainValue.Node.endOfBlockIndent(src, indent, offset); // should not include tab?\n\n      if (end === null) break;\n      const ch = src[end];\n      const lineIndent = end - (offset + indent);\n\n      if (!this.blockIndent) {\n        // no explicit block indent, none yet detected\n        if (src[end] !== '\\n') {\n          // first line with non-whitespace content\n          if (lineIndent < minBlockIndent) {\n            const msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n            this.error = new PlainValue.YAMLSemanticError(this, msg);\n          }\n\n          this.blockIndent = lineIndent;\n        } else if (lineIndent > minBlockIndent) {\n          // empty line with more whitespace\n          minBlockIndent = lineIndent;\n        }\n      } else if (ch && ch !== '\\n' && lineIndent < this.blockIndent) {\n        if (src[end] === '#') break;\n\n        if (!this.error) {\n          const src = explicit ? 'explicit indentation indicator' : 'first line';\n          const msg = `Block scalars must not be less indented than their ${src}`;\n          this.error = new PlainValue.YAMLSemanticError(this, msg);\n        }\n      }\n\n      if (src[end] === '\\n') {\n        offset = end;\n      } else {\n        offset = valueEnd = PlainValue.Node.endOfLine(src, end);\n      }\n    }\n\n    if (this.chomping !== Chomp.KEEP) {\n      offset = src[valueEnd] ? valueEnd + 1 : valueEnd;\n    }\n\n    this.valueRange = new PlainValue.Range(start + 1, offset);\n    return offset;\n  }\n  /**\n   * Parses a block value from the source\n   *\n   * Accepted forms are:\n   * ```\n   * BS\n   * block\n   * lines\n   *\n   * BS #comment\n   * block\n   * lines\n   * ```\n   * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines\n   * are empty or have an indent level greater than `indent`.\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this block\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = this.parseBlockHeader(start);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    offset = this.parseBlockValue(offset);\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    return this.header ? this.header.setOrigRange(cr, offset) : offset;\n  }\n\n}\n\nclass FlowCollection extends PlainValue.Node {\n  constructor(type, props) {\n    super(type, props);\n    this.items = null;\n  }\n\n  prevNodeIsJsonLike(idx = this.items.length) {\n    const node = this.items[idx - 1];\n    return !!node && (node.jsonLike || node.type === PlainValue.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));\n  }\n  /**\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      parseNode,\n      src\n    } = context;\n    let {\n      indent,\n      lineStart\n    } = context;\n    let char = src[start]; // { or [\n\n    this.items = [{\n      char,\n      offset: start\n    }];\n    let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);\n    char = src[offset];\n\n    while (char && char !== ']' && char !== '}') {\n      switch (char) {\n        case '\\n':\n          {\n            lineStart = offset + 1;\n            const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n\n            if (src[wsEnd] === '\\n') {\n              const blankLine = new BlankLine();\n              lineStart = blankLine.parse({\n                src\n              }, lineStart);\n              this.items.push(blankLine);\n            }\n\n            offset = PlainValue.Node.endOfIndent(src, lineStart);\n\n            if (offset <= lineStart + indent) {\n              char = src[offset];\n\n              if (offset < lineStart + indent || char !== ']' && char !== '}') {\n                const msg = 'Insufficient indentation in flow collection';\n                this.error = new PlainValue.YAMLSemanticError(this, msg);\n              }\n            }\n          }\n          break;\n\n        case ',':\n          {\n            this.items.push({\n              char,\n              offset\n            });\n            offset += 1;\n          }\n          break;\n\n        case '#':\n          {\n            const comment = new Comment();\n            offset = comment.parse({\n              src\n            }, offset);\n            this.items.push(comment);\n          }\n          break;\n\n        case '?':\n        case ':':\n          {\n            const next = src[offset + 1];\n\n            if (next === '\\n' || next === '\\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace\n            char === ':' && this.prevNodeIsJsonLike()) {\n              this.items.push({\n                char,\n                offset\n              });\n              offset += 1;\n              break;\n            }\n          }\n        // fallthrough\n\n        default:\n          {\n            const node = parseNode({\n              atLineStart: false,\n              inCollection: false,\n              inFlow: true,\n              indent: -1,\n              lineStart,\n              parent: this\n            }, offset);\n\n            if (!node) {\n              // at next document start\n              this.valueRange = new PlainValue.Range(start, offset);\n              return offset;\n            }\n\n            this.items.push(node);\n            offset = PlainValue.Node.normalizeOffset(src, node.range.end);\n          }\n      }\n\n      offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n      char = src[offset];\n    }\n\n    this.valueRange = new PlainValue.Range(start, offset + 1);\n\n    if (char) {\n      this.items.push({\n        char,\n        offset\n      });\n      offset = PlainValue.Node.endOfWhiteSpace(src, offset + 1);\n      offset = this.parseComment(offset);\n    }\n\n    return offset;\n  }\n\n  setOrigRanges(cr, offset) {\n    offset = super.setOrigRanges(cr, offset);\n    this.items.forEach(node => {\n      if (node instanceof PlainValue.Node) {\n        offset = node.setOrigRanges(cr, offset);\n      } else if (cr.length === 0) {\n        node.origOffset = node.offset;\n      } else {\n        let i = offset;\n\n        while (i < cr.length) {\n          if (cr[i] > node.offset) break;else ++i;\n        }\n\n        node.origOffset = node.offset + i;\n        offset = i;\n      }\n    });\n    return offset;\n  }\n\n  toString() {\n    const {\n      context: {\n        src\n      },\n      items,\n      range,\n      value\n    } = this;\n    if (value != null) return value;\n    const nodes = items.filter(item => item instanceof PlainValue.Node);\n    let str = '';\n    let prevEnd = range.start;\n    nodes.forEach(node => {\n      const prefix = src.slice(prevEnd, node.range.start);\n      prevEnd = node.range.end;\n      str += prefix + String(node);\n\n      if (str[str.length - 1] === '\\n' && src[prevEnd - 1] !== '\\n' && src[prevEnd] === '\\n') {\n        // Comment range does not include the terminal newline, but its\n        // stringified value does. Without this fix, newlines at comment ends\n        // get duplicated.\n        prevEnd += 1;\n      }\n    });\n    str += src.slice(prevEnd, range.end);\n    return PlainValue.Node.addStringTerminator(src, range.end, str);\n  }\n\n}\n\nclass QuoteDouble extends PlainValue.Node {\n  static endOfQuote(src, offset) {\n    let ch = src[offset];\n\n    while (ch && ch !== '\"') {\n      offset += ch === '\\\\' ? 2 : 1;\n      ch = src[offset];\n    }\n\n    return offset + 1;\n  }\n  /**\n   * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n   */\n\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    const errors = [];\n    const {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      indent,\n      src\n    } = this.context;\n    if (src[end - 1] !== '\"') errors.push(new PlainValue.YAMLSyntaxError(this, 'Missing closing \"quote')); // Using String#replace is too painful with escaped newlines preceded by\n    // escaped backslashes; also, this should be faster.\n\n    let str = '';\n\n    for (let i = start + 1; i < end - 1; ++i) {\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n        const {\n          fold,\n          offset,\n          error\n        } = PlainValue.Node.foldNewline(src, i, indent);\n        str += fold;\n        i = offset;\n        if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));\n      } else if (ch === '\\\\') {\n        i += 1;\n\n        switch (src[i]) {\n          case '0':\n            str += '\\0';\n            break;\n          // null character\n\n          case 'a':\n            str += '\\x07';\n            break;\n          // bell character\n\n          case 'b':\n            str += '\\b';\n            break;\n          // backspace\n\n          case 'e':\n            str += '\\x1b';\n            break;\n          // escape character\n\n          case 'f':\n            str += '\\f';\n            break;\n          // form feed\n\n          case 'n':\n            str += '\\n';\n            break;\n          // line feed\n\n          case 'r':\n            str += '\\r';\n            break;\n          // carriage return\n\n          case 't':\n            str += '\\t';\n            break;\n          // horizontal tab\n\n          case 'v':\n            str += '\\v';\n            break;\n          // vertical tab\n\n          case 'N':\n            str += '\\u0085';\n            break;\n          // Unicode next line\n\n          case '_':\n            str += '\\u00a0';\n            break;\n          // Unicode non-breaking space\n\n          case 'L':\n            str += '\\u2028';\n            break;\n          // Unicode line separator\n\n          case 'P':\n            str += '\\u2029';\n            break;\n          // Unicode paragraph separator\n\n          case ' ':\n            str += ' ';\n            break;\n\n          case '\"':\n            str += '\"';\n            break;\n\n          case '/':\n            str += '/';\n            break;\n\n          case '\\\\':\n            str += '\\\\';\n            break;\n\n          case '\\t':\n            str += '\\t';\n            break;\n\n          case 'x':\n            str += this.parseCharCode(i + 1, 2, errors);\n            i += 2;\n            break;\n\n          case 'u':\n            str += this.parseCharCode(i + 1, 4, errors);\n            i += 4;\n            break;\n\n          case 'U':\n            str += this.parseCharCode(i + 1, 8, errors);\n            i += 8;\n            break;\n\n          case '\\n':\n            // skip escaped newlines, but still trim the following line\n            while (src[i + 1] === ' ' || src[i + 1] === '\\t') i += 1;\n\n            break;\n\n          default:\n            errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));\n            str += '\\\\' + src[i];\n        }\n      } else if (ch === ' ' || ch === '\\t') {\n        // trim trailing whitespace\n        const wsStart = i;\n        let next = src[i + 1];\n\n        while (next === ' ' || next === '\\t') {\n          i += 1;\n          next = src[i + 1];\n        }\n\n        if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n      } else {\n        str += ch;\n      }\n    }\n\n    return errors.length > 0 ? {\n      errors,\n      str\n    } : str;\n  }\n\n  parseCharCode(offset, length, errors) {\n    const {\n      src\n    } = this.context;\n    const cc = src.substr(offset, length);\n    const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n    const code = ok ? parseInt(cc, 16) : NaN;\n\n    if (isNaN(code)) {\n      errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));\n      return src.substr(offset - 2, length + 2);\n    }\n\n    return String.fromCodePoint(code);\n  }\n  /**\n   * Parses a \"double quoted\" value from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = QuoteDouble.endOfQuote(src, start + 1);\n    this.valueRange = new PlainValue.Range(start, offset);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    return offset;\n  }\n\n}\n\nclass QuoteSingle extends PlainValue.Node {\n  static endOfQuote(src, offset) {\n    let ch = src[offset];\n\n    while (ch) {\n      if (ch === \"'\") {\n        if (src[offset + 1] !== \"'\") break;\n        ch = src[offset += 2];\n      } else {\n        ch = src[offset += 1];\n      }\n    }\n\n    return offset + 1;\n  }\n  /**\n   * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n   */\n\n\n  get strValue() {\n    if (!this.valueRange || !this.context) return null;\n    const errors = [];\n    const {\n      start,\n      end\n    } = this.valueRange;\n    const {\n      indent,\n      src\n    } = this.context;\n    if (src[end - 1] !== \"'\") errors.push(new PlainValue.YAMLSyntaxError(this, \"Missing closing 'quote\"));\n    let str = '';\n\n    for (let i = start + 1; i < end - 1; ++i) {\n      const ch = src[i];\n\n      if (ch === '\\n') {\n        if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n        const {\n          fold,\n          offset,\n          error\n        } = PlainValue.Node.foldNewline(src, i, indent);\n        str += fold;\n        i = offset;\n        if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));\n      } else if (ch === \"'\") {\n        str += ch;\n        i += 1;\n        if (src[i] !== \"'\") errors.push(new PlainValue.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));\n      } else if (ch === ' ' || ch === '\\t') {\n        // trim trailing whitespace\n        const wsStart = i;\n        let next = src[i + 1];\n\n        while (next === ' ' || next === '\\t') {\n          i += 1;\n          next = src[i + 1];\n        }\n\n        if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n      } else {\n        str += ch;\n      }\n    }\n\n    return errors.length > 0 ? {\n      errors,\n      str\n    } : str;\n  }\n  /**\n   * Parses a 'single quoted' value from the source\n   *\n   * @param {ParseContext} context\n   * @param {number} start - Index of first character\n   * @returns {number} - Index of the character after this scalar\n   */\n\n\n  parse(context, start) {\n    this.context = context;\n    const {\n      src\n    } = context;\n    let offset = QuoteSingle.endOfQuote(src, start + 1);\n    this.valueRange = new PlainValue.Range(start, offset);\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    offset = this.parseComment(offset);\n    return offset;\n  }\n\n}\n\nfunction createNewNode(type, props) {\n  switch (type) {\n    case PlainValue.Type.ALIAS:\n      return new Alias(type, props);\n\n    case PlainValue.Type.BLOCK_FOLDED:\n    case PlainValue.Type.BLOCK_LITERAL:\n      return new BlockValue(type, props);\n\n    case PlainValue.Type.FLOW_MAP:\n    case PlainValue.Type.FLOW_SEQ:\n      return new FlowCollection(type, props);\n\n    case PlainValue.Type.MAP_KEY:\n    case PlainValue.Type.MAP_VALUE:\n    case PlainValue.Type.SEQ_ITEM:\n      return new CollectionItem(type, props);\n\n    case PlainValue.Type.COMMENT:\n    case PlainValue.Type.PLAIN:\n      return new PlainValue.PlainValue(type, props);\n\n    case PlainValue.Type.QUOTE_DOUBLE:\n      return new QuoteDouble(type, props);\n\n    case PlainValue.Type.QUOTE_SINGLE:\n      return new QuoteSingle(type, props);\n\n    /* istanbul ignore next */\n\n    default:\n      return null;\n    // should never happen\n  }\n}\n/**\n * @param {boolean} atLineStart - Node starts at beginning of line\n * @param {boolean} inFlow - true if currently in a flow context\n * @param {boolean} inCollection - true if currently in a collection context\n * @param {number} indent - Current level of indentation\n * @param {number} lineStart - Start of the current line\n * @param {Node} parent - The parent of the node\n * @param {string} src - Source of the YAML document\n */\n\n\nclass ParseContext {\n  static parseType(src, offset, inFlow) {\n    switch (src[offset]) {\n      case '*':\n        return PlainValue.Type.ALIAS;\n\n      case '>':\n        return PlainValue.Type.BLOCK_FOLDED;\n\n      case '|':\n        return PlainValue.Type.BLOCK_LITERAL;\n\n      case '{':\n        return PlainValue.Type.FLOW_MAP;\n\n      case '[':\n        return PlainValue.Type.FLOW_SEQ;\n\n      case '?':\n        return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_KEY : PlainValue.Type.PLAIN;\n\n      case ':':\n        return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_VALUE : PlainValue.Type.PLAIN;\n\n      case '-':\n        return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.SEQ_ITEM : PlainValue.Type.PLAIN;\n\n      case '\"':\n        return PlainValue.Type.QUOTE_DOUBLE;\n\n      case \"'\":\n        return PlainValue.Type.QUOTE_SINGLE;\n\n      default:\n        return PlainValue.Type.PLAIN;\n    }\n  }\n\n  constructor(orig = {}, {\n    atLineStart,\n    inCollection,\n    inFlow,\n    indent,\n    lineStart,\n    parent\n  } = {}) {\n    PlainValue._defineProperty(this, \"parseNode\", (overlay, start) => {\n      if (PlainValue.Node.atDocumentBoundary(this.src, start)) return null;\n      const context = new ParseContext(this, overlay);\n      const {\n        props,\n        type,\n        valueStart\n      } = context.parseProps(start);\n      const node = createNewNode(type, props);\n      let offset = node.parse(context, valueStart);\n      node.range = new PlainValue.Range(start, offset);\n      /* istanbul ignore if */\n\n      if (offset <= start) {\n        // This should never happen, but if it does, let's make sure to at least\n        // step one character forward to avoid a busy loop.\n        node.error = new Error(`Node#parse consumed no characters`);\n        node.error.parseEnd = offset;\n        node.error.source = node;\n        node.range.end = start + 1;\n      }\n\n      if (context.nodeStartsCollection(node)) {\n        if (!node.error && !context.atLineStart && context.parent.type === PlainValue.Type.DOCUMENT) {\n          node.error = new PlainValue.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');\n        }\n\n        const collection = new Collection(node);\n        offset = collection.parse(new ParseContext(context), offset);\n        collection.range = new PlainValue.Range(start, offset);\n        return collection;\n      }\n\n      return node;\n    });\n\n    this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;\n    this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;\n    this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;\n    this.indent = indent != null ? indent : orig.indent;\n    this.lineStart = lineStart != null ? lineStart : orig.lineStart;\n    this.parent = parent != null ? parent : orig.parent || {};\n    this.root = orig.root;\n    this.src = orig.src;\n  }\n\n  nodeStartsCollection(node) {\n    const {\n      inCollection,\n      inFlow,\n      src\n    } = this;\n    if (inCollection || inFlow) return false;\n    if (node instanceof CollectionItem) return true; // check for implicit key\n\n    let offset = node.range.end;\n    if (src[offset] === '\\n' || src[offset - 1] === '\\n') return false;\n    offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n    return src[offset] === ':';\n  } // Anchor and tag are before type, which determines the node implementation\n  // class; hence this intermediate step.\n\n\n  parseProps(offset) {\n    const {\n      inFlow,\n      parent,\n      src\n    } = this;\n    const props = [];\n    let lineHasProps = false;\n    offset = this.atLineStart ? PlainValue.Node.endOfIndent(src, offset) : PlainValue.Node.endOfWhiteSpace(src, offset);\n    let ch = src[offset];\n\n    while (ch === PlainValue.Char.ANCHOR || ch === PlainValue.Char.COMMENT || ch === PlainValue.Char.TAG || ch === '\\n') {\n      if (ch === '\\n') {\n        let inEnd = offset;\n        let lineStart;\n\n        do {\n          lineStart = inEnd + 1;\n          inEnd = PlainValue.Node.endOfIndent(src, lineStart);\n        } while (src[inEnd] === '\\n');\n\n        const indentDiff = inEnd - (lineStart + this.indent);\n        const noIndicatorAsIndent = parent.type === PlainValue.Type.SEQ_ITEM && parent.context.atLineStart;\n        if (src[inEnd] !== '#' && !PlainValue.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;\n        this.atLineStart = true;\n        this.lineStart = lineStart;\n        lineHasProps = false;\n        offset = inEnd;\n      } else if (ch === PlainValue.Char.COMMENT) {\n        const end = PlainValue.Node.endOfLine(src, offset + 1);\n        props.push(new PlainValue.Range(offset, end));\n        offset = end;\n      } else {\n        let end = PlainValue.Node.endOfIdentifier(src, offset + 1);\n\n        if (ch === PlainValue.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+,\\d\\d\\d\\d(-\\d\\d){0,2}\\/\\S/.test(src.slice(offset + 1, end + 13))) {\n          // Let's presume we're dealing with a YAML 1.0 domain tag here, rather\n          // than an empty but 'foo.bar' private-tagged node in a flow collection\n          // followed without whitespace by a plain string starting with a year\n          // or date divided by something.\n          end = PlainValue.Node.endOfIdentifier(src, end + 5);\n        }\n\n        props.push(new PlainValue.Range(offset, end));\n        lineHasProps = true;\n        offset = PlainValue.Node.endOfWhiteSpace(src, end);\n      }\n\n      ch = src[offset];\n    } // '- &a : b' has an anchor on an empty node\n\n\n    if (lineHasProps && ch === ':' && PlainValue.Node.atBlank(src, offset + 1, true)) offset -= 1;\n    const type = ParseContext.parseType(src, offset, inFlow);\n    return {\n      props,\n      type,\n      valueStart: offset\n    };\n  }\n  /**\n   * Parses a node from the source\n   * @param {ParseContext} overlay\n   * @param {number} start - Index of first non-whitespace character for the node\n   * @returns {?Node} - null if at a document boundary\n   */\n\n\n}\n\n// Published as 'yaml/parse-cst'\nfunction parse(src) {\n  const cr = [];\n\n  if (src.indexOf('\\r') !== -1) {\n    src = src.replace(/\\r\\n?/g, (match, offset) => {\n      if (match.length > 1) cr.push(offset);\n      return '\\n';\n    });\n  }\n\n  const documents = [];\n  let offset = 0;\n\n  do {\n    const doc = new Document();\n    const context = new ParseContext({\n      src\n    });\n    offset = doc.parse(context, offset);\n    documents.push(doc);\n  } while (offset < src.length);\n\n  documents.setOrigRanges = () => {\n    if (cr.length === 0) return false;\n\n    for (let i = 1; i < cr.length; ++i) cr[i] -= i;\n\n    let crOffset = 0;\n\n    for (let i = 0; i < documents.length; ++i) {\n      crOffset = documents[i].setOrigRanges(cr, crOffset);\n    }\n\n    cr.splice(0, cr.length);\n    return true;\n  };\n\n  documents.toString = () => documents.join('...\\n');\n\n  return documents;\n}\n\nexports.parse = parse;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\n\nfunction addCommentBefore(str, indent, comment) {\n  if (!comment) return str;\n  const cc = comment.replace(/[\\s\\S]^/gm, `$&${indent}#`);\n  return `#${cc}\\n${indent}${str}`;\n}\nfunction addComment(str, indent, comment) {\n  return !comment ? str : comment.indexOf('\\n') === -1 ? `${str} #${comment}` : `${str}\\n` + comment.replace(/^/gm, `${indent || ''}#`);\n}\n\nclass Node {}\n\nfunction toJSON(value, arg, ctx) {\n  if (Array.isArray(value)) return value.map((v, i) => toJSON(v, String(i), ctx));\n\n  if (value && typeof value.toJSON === 'function') {\n    const anchor = ctx && ctx.anchors && ctx.anchors.get(value);\n    if (anchor) ctx.onCreate = res => {\n      anchor.res = res;\n      delete ctx.onCreate;\n    };\n    const res = value.toJSON(arg, ctx);\n    if (anchor && ctx.onCreate) ctx.onCreate(res);\n    return res;\n  }\n\n  if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value);\n  return value;\n}\n\nclass Scalar extends Node {\n  constructor(value) {\n    super();\n    this.value = value;\n  }\n\n  toJSON(arg, ctx) {\n    return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx);\n  }\n\n  toString() {\n    return String(this.value);\n  }\n\n}\n\nfunction collectionFromPath(schema, path, value) {\n  let v = value;\n\n  for (let i = path.length - 1; i >= 0; --i) {\n    const k = path[i];\n\n    if (Number.isInteger(k) && k >= 0) {\n      const a = [];\n      a[k] = v;\n      v = a;\n    } else {\n      const o = {};\n      Object.defineProperty(o, k, {\n        value: v,\n        writable: true,\n        enumerable: true,\n        configurable: true\n      });\n      v = o;\n    }\n  }\n\n  return schema.createNode(v, false);\n} // null, undefined, or an empty non-string iterable (e.g. [])\n\n\nconst isEmptyPath = path => path == null || typeof path === 'object' && path[Symbol.iterator]().next().done;\nclass Collection extends Node {\n  constructor(schema) {\n    super();\n\n    PlainValue._defineProperty(this, \"items\", []);\n\n    this.schema = schema;\n  }\n\n  addIn(path, value) {\n    if (isEmptyPath(path)) this.add(value);else {\n      const [key, ...rest] = path;\n      const node = this.get(key, true);\n      if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n    }\n  }\n\n  deleteIn([key, ...rest]) {\n    if (rest.length === 0) return this.delete(key);\n    const node = this.get(key, true);\n    if (node instanceof Collection) return node.deleteIn(rest);else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n  }\n\n  getIn([key, ...rest], keepScalar) {\n    const node = this.get(key, true);\n    if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined;\n  }\n\n  hasAllNullValues() {\n    return this.items.every(node => {\n      if (!node || node.type !== 'PAIR') return false;\n      const n = node.value;\n      return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag;\n    });\n  }\n\n  hasIn([key, ...rest]) {\n    if (rest.length === 0) return this.has(key);\n    const node = this.get(key, true);\n    return node instanceof Collection ? node.hasIn(rest) : false;\n  }\n\n  setIn([key, ...rest], value) {\n    if (rest.length === 0) {\n      this.set(key, value);\n    } else {\n      const node = this.get(key, true);\n      if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n    }\n  } // overridden in implementations\n\n  /* istanbul ignore next */\n\n\n  toJSON() {\n    return null;\n  }\n\n  toString(ctx, {\n    blockItem,\n    flowChars,\n    isMap,\n    itemIndent\n  }, onComment, onChompKeep) {\n    const {\n      indent,\n      indentStep,\n      stringify\n    } = ctx;\n    const inFlow = this.type === PlainValue.Type.FLOW_MAP || this.type === PlainValue.Type.FLOW_SEQ || ctx.inFlow;\n    if (inFlow) itemIndent += indentStep;\n    const allNullValues = isMap && this.hasAllNullValues();\n    ctx = Object.assign({}, ctx, {\n      allNullValues,\n      indent: itemIndent,\n      inFlow,\n      type: null\n    });\n    let chompKeep = false;\n    let hasItemWithNewLine = false;\n    const nodes = this.items.reduce((nodes, item, i) => {\n      let comment;\n\n      if (item) {\n        if (!chompKeep && item.spaceBefore) nodes.push({\n          type: 'comment',\n          str: ''\n        });\n        if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(line => {\n          nodes.push({\n            type: 'comment',\n            str: `#${line}`\n          });\n        });\n        if (item.comment) comment = item.comment;\n        if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true;\n      }\n\n      chompKeep = false;\n      let str = stringify(item, ctx, () => comment = null, () => chompKeep = true);\n      if (inFlow && !hasItemWithNewLine && str.includes('\\n')) hasItemWithNewLine = true;\n      if (inFlow && i < this.items.length - 1) str += ',';\n      str = addComment(str, itemIndent, comment);\n      if (chompKeep && (comment || inFlow)) chompKeep = false;\n      nodes.push({\n        type: 'item',\n        str\n      });\n      return nodes;\n    }, []);\n    let str;\n\n    if (nodes.length === 0) {\n      str = flowChars.start + flowChars.end;\n    } else if (inFlow) {\n      const {\n        start,\n        end\n      } = flowChars;\n      const strings = nodes.map(n => n.str);\n\n      if (hasItemWithNewLine || strings.reduce((sum, str) => sum + str.length + 2, 2) > Collection.maxFlowStringSingleLineLength) {\n        str = start;\n\n        for (const s of strings) {\n          str += s ? `\\n${indentStep}${indent}${s}` : '\\n';\n        }\n\n        str += `\\n${indent}${end}`;\n      } else {\n        str = `${start} ${strings.join(' ')} ${end}`;\n      }\n    } else {\n      const strings = nodes.map(blockItem);\n      str = strings.shift();\n\n      for (const s of strings) str += s ? `\\n${indent}${s}` : '\\n';\n    }\n\n    if (this.comment) {\n      str += '\\n' + this.comment.replace(/^/gm, `${indent}#`);\n      if (onComment) onComment();\n    } else if (chompKeep && onChompKeep) onChompKeep();\n\n    return str;\n  }\n\n}\n\nPlainValue._defineProperty(Collection, \"maxFlowStringSingleLineLength\", 60);\n\nfunction asItemIndex(key) {\n  let idx = key instanceof Scalar ? key.value : key;\n  if (idx && typeof idx === 'string') idx = Number(idx);\n  return Number.isInteger(idx) && idx >= 0 ? idx : null;\n}\n\nclass YAMLSeq extends Collection {\n  add(value) {\n    this.items.push(value);\n  }\n\n  delete(key) {\n    const idx = asItemIndex(key);\n    if (typeof idx !== 'number') return false;\n    const del = this.items.splice(idx, 1);\n    return del.length > 0;\n  }\n\n  get(key, keepScalar) {\n    const idx = asItemIndex(key);\n    if (typeof idx !== 'number') return undefined;\n    const it = this.items[idx];\n    return !keepScalar && it instanceof Scalar ? it.value : it;\n  }\n\n  has(key) {\n    const idx = asItemIndex(key);\n    return typeof idx === 'number' && idx < this.items.length;\n  }\n\n  set(key, value) {\n    const idx = asItemIndex(key);\n    if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`);\n    this.items[idx] = value;\n  }\n\n  toJSON(_, ctx) {\n    const seq = [];\n    if (ctx && ctx.onCreate) ctx.onCreate(seq);\n    let i = 0;\n\n    for (const item of this.items) seq.push(toJSON(item, String(i++), ctx));\n\n    return seq;\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx) return JSON.stringify(this);\n    return super.toString(ctx, {\n      blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`,\n      flowChars: {\n        start: '[',\n        end: ']'\n      },\n      isMap: false,\n      itemIndent: (ctx.indent || '') + '  '\n    }, onComment, onChompKeep);\n  }\n\n}\n\nconst stringifyKey = (key, jsKey, ctx) => {\n  if (jsKey === null) return '';\n  if (typeof jsKey !== 'object') return String(jsKey);\n  if (key instanceof Node && ctx && ctx.doc) return key.toString({\n    anchors: Object.create(null),\n    doc: ctx.doc,\n    indent: '',\n    indentStep: ctx.indentStep,\n    inFlow: true,\n    inStringifyKey: true,\n    stringify: ctx.stringify\n  });\n  return JSON.stringify(jsKey);\n};\n\nclass Pair extends Node {\n  constructor(key, value = null) {\n    super();\n    this.key = key;\n    this.value = value;\n    this.type = Pair.Type.PAIR;\n  }\n\n  get commentBefore() {\n    return this.key instanceof Node ? this.key.commentBefore : undefined;\n  }\n\n  set commentBefore(cb) {\n    if (this.key == null) this.key = new Scalar(null);\n    if (this.key instanceof Node) this.key.commentBefore = cb;else {\n      const msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.';\n      throw new Error(msg);\n    }\n  }\n\n  addToJSMap(ctx, map) {\n    const key = toJSON(this.key, '', ctx);\n\n    if (map instanceof Map) {\n      const value = toJSON(this.value, key, ctx);\n      map.set(key, value);\n    } else if (map instanceof Set) {\n      map.add(key);\n    } else {\n      const stringKey = stringifyKey(this.key, key, ctx);\n      const value = toJSON(this.value, stringKey, ctx);\n      if (stringKey in map) Object.defineProperty(map, stringKey, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true\n      });else map[stringKey] = value;\n    }\n\n    return map;\n  }\n\n  toJSON(_, ctx) {\n    const pair = ctx && ctx.mapAsMap ? new Map() : {};\n    return this.addToJSMap(ctx, pair);\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx || !ctx.doc) return JSON.stringify(this);\n    const {\n      indent: indentSize,\n      indentSeq,\n      simpleKeys\n    } = ctx.doc.options;\n    let {\n      key,\n      value\n    } = this;\n    let keyComment = key instanceof Node && key.comment;\n\n    if (simpleKeys) {\n      if (keyComment) {\n        throw new Error('With simple keys, key nodes cannot have comments');\n      }\n\n      if (key instanceof Collection) {\n        const msg = 'With simple keys, collection cannot be used as a key value';\n        throw new Error(msg);\n      }\n    }\n\n    let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue.Type.BLOCK_FOLDED || key.type === PlainValue.Type.BLOCK_LITERAL : typeof key === 'object'));\n    const {\n      doc,\n      indent,\n      indentStep,\n      stringify\n    } = ctx;\n    ctx = Object.assign({}, ctx, {\n      implicitKey: !explicitKey,\n      indent: indent + indentStep\n    });\n    let chompKeep = false;\n    let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true);\n    str = addComment(str, ctx.indent, keyComment);\n\n    if (!explicitKey && str.length > 1024) {\n      if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n      explicitKey = true;\n    }\n\n    if (ctx.allNullValues && !simpleKeys) {\n      if (this.comment) {\n        str = addComment(str, ctx.indent, this.comment);\n        if (onComment) onComment();\n      } else if (chompKeep && !keyComment && onChompKeep) onChompKeep();\n\n      return ctx.inFlow && !explicitKey ? str : `? ${str}`;\n    }\n\n    str = explicitKey ? `? ${str}\\n${indent}:` : `${str}:`;\n\n    if (this.comment) {\n      // expected (but not strictly required) to be a single-line comment\n      str = addComment(str, ctx.indent, this.comment);\n      if (onComment) onComment();\n    }\n\n    let vcb = '';\n    let valueComment = null;\n\n    if (value instanceof Node) {\n      if (value.spaceBefore) vcb = '\\n';\n\n      if (value.commentBefore) {\n        const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`);\n        vcb += `\\n${cs}`;\n      }\n\n      valueComment = value.comment;\n    } else if (value && typeof value === 'object') {\n      value = doc.schema.createNode(value, true);\n    }\n\n    ctx.implicitKey = false;\n    if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1;\n    chompKeep = false;\n\n    if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {\n      // If indentSeq === false, consider '- ' as part of indentation where possible\n      ctx.indent = ctx.indent.substr(2);\n    }\n\n    const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true);\n    let ws = ' ';\n\n    if (vcb || this.comment) {\n      ws = `${vcb}\\n${ctx.indent}`;\n    } else if (!explicitKey && value instanceof Collection) {\n      const flow = valueStr[0] === '[' || valueStr[0] === '{';\n      if (!flow || valueStr.includes('\\n')) ws = `\\n${ctx.indent}`;\n    } else if (valueStr[0] === '\\n') ws = '';\n\n    if (chompKeep && !valueComment && onChompKeep) onChompKeep();\n    return addComment(str + ws + valueStr, ctx.indent, valueComment);\n  }\n\n}\n\nPlainValue._defineProperty(Pair, \"Type\", {\n  PAIR: 'PAIR',\n  MERGE_PAIR: 'MERGE_PAIR'\n});\n\nconst getAliasCount = (node, anchors) => {\n  if (node instanceof Alias) {\n    const anchor = anchors.get(node.source);\n    return anchor.count * anchor.aliasCount;\n  } else if (node instanceof Collection) {\n    let count = 0;\n\n    for (const item of node.items) {\n      const c = getAliasCount(item, anchors);\n      if (c > count) count = c;\n    }\n\n    return count;\n  } else if (node instanceof Pair) {\n    const kc = getAliasCount(node.key, anchors);\n    const vc = getAliasCount(node.value, anchors);\n    return Math.max(kc, vc);\n  }\n\n  return 1;\n};\n\nclass Alias extends Node {\n  static stringify({\n    range,\n    source\n  }, {\n    anchors,\n    doc,\n    implicitKey,\n    inStringifyKey\n  }) {\n    let anchor = Object.keys(anchors).find(a => anchors[a] === source);\n    if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName();\n    if (anchor) return `*${anchor}${implicitKey ? ' ' : ''}`;\n    const msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node';\n    throw new Error(`${msg} [${range}]`);\n  }\n\n  constructor(source) {\n    super();\n    this.source = source;\n    this.type = PlainValue.Type.ALIAS;\n  }\n\n  set tag(t) {\n    throw new Error('Alias nodes cannot have tags');\n  }\n\n  toJSON(arg, ctx) {\n    if (!ctx) return toJSON(this.source, arg, ctx);\n    const {\n      anchors,\n      maxAliasCount\n    } = ctx;\n    const anchor = anchors.get(this.source);\n    /* istanbul ignore if */\n\n    if (!anchor || anchor.res === undefined) {\n      const msg = 'This should not happen: Alias anchor was not resolved?';\n      if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);\n    }\n\n    if (maxAliasCount >= 0) {\n      anchor.count += 1;\n      if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors);\n\n      if (anchor.count * anchor.aliasCount > maxAliasCount) {\n        const msg = 'Excessive alias count indicates a resource exhaustion attack';\n        if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);\n      }\n    }\n\n    return anchor.res;\n  } // Only called when stringifying an alias mapping key while constructing\n  // Object output.\n\n\n  toString(ctx) {\n    return Alias.stringify(this, ctx);\n  }\n\n}\n\nPlainValue._defineProperty(Alias, \"default\", true);\n\nfunction findPair(items, key) {\n  const k = key instanceof Scalar ? key.value : key;\n\n  for (const it of items) {\n    if (it instanceof Pair) {\n      if (it.key === key || it.key === k) return it;\n      if (it.key && it.key.value === k) return it;\n    }\n  }\n\n  return undefined;\n}\nclass YAMLMap extends Collection {\n  add(pair, overwrite) {\n    if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value);\n    const prev = findPair(this.items, pair.key);\n    const sortEntries = this.schema && this.schema.sortMapEntries;\n\n    if (prev) {\n      if (overwrite) prev.value = pair.value;else throw new Error(`Key ${pair.key} already set`);\n    } else if (sortEntries) {\n      const i = this.items.findIndex(item => sortEntries(pair, item) < 0);\n      if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair);\n    } else {\n      this.items.push(pair);\n    }\n  }\n\n  delete(key) {\n    const it = findPair(this.items, key);\n    if (!it) return false;\n    const del = this.items.splice(this.items.indexOf(it), 1);\n    return del.length > 0;\n  }\n\n  get(key, keepScalar) {\n    const it = findPair(this.items, key);\n    const node = it && it.value;\n    return !keepScalar && node instanceof Scalar ? node.value : node;\n  }\n\n  has(key) {\n    return !!findPair(this.items, key);\n  }\n\n  set(key, value) {\n    this.add(new Pair(key, value), true);\n  }\n  /**\n   * @param {*} arg ignored\n   * @param {*} ctx Conversion context, originally set in Document#toJSON()\n   * @param {Class} Type If set, forces the returned collection type\n   * @returns {*} Instance of Type, Map, or Object\n   */\n\n\n  toJSON(_, ctx, Type) {\n    const map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {};\n    if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n    for (const item of this.items) item.addToJSMap(ctx, map);\n\n    return map;\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx) return JSON.stringify(this);\n\n    for (const item of this.items) {\n      if (!(item instanceof Pair)) throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n    }\n\n    return super.toString(ctx, {\n      blockItem: n => n.str,\n      flowChars: {\n        start: '{',\n        end: '}'\n      },\n      isMap: true,\n      itemIndent: ctx.indent || ''\n    }, onComment, onChompKeep);\n  }\n\n}\n\nconst MERGE_KEY = '<<';\nclass Merge extends Pair {\n  constructor(pair) {\n    if (pair instanceof Pair) {\n      let seq = pair.value;\n\n      if (!(seq instanceof YAMLSeq)) {\n        seq = new YAMLSeq();\n        seq.items.push(pair.value);\n        seq.range = pair.value.range;\n      }\n\n      super(pair.key, seq);\n      this.range = pair.range;\n    } else {\n      super(new Scalar(MERGE_KEY), new YAMLSeq());\n    }\n\n    this.type = Pair.Type.MERGE_PAIR;\n  } // If the value associated with a merge key is a single mapping node, each of\n  // its key/value pairs is inserted into the current mapping, unless the key\n  // already exists in it. If the value associated with the merge key is a\n  // sequence, then this sequence is expected to contain mapping nodes and each\n  // of these nodes is merged in turn according to its order in the sequence.\n  // Keys in mapping nodes earlier in the sequence override keys specified in\n  // later mapping nodes. -- http://yaml.org/type/merge.html\n\n\n  addToJSMap(ctx, map) {\n    for (const {\n      source\n    } of this.value.items) {\n      if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps');\n      const srcMap = source.toJSON(null, ctx, Map);\n\n      for (const [key, value] of srcMap) {\n        if (map instanceof Map) {\n          if (!map.has(key)) map.set(key, value);\n        } else if (map instanceof Set) {\n          map.add(key);\n        } else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n          Object.defineProperty(map, key, {\n            value,\n            writable: true,\n            enumerable: true,\n            configurable: true\n          });\n        }\n      }\n    }\n\n    return map;\n  }\n\n  toString(ctx, onComment) {\n    const seq = this.value;\n    if (seq.items.length > 1) return super.toString(ctx, onComment);\n    this.value = seq.items[0];\n    const str = super.toString(ctx, onComment);\n    this.value = seq;\n    return str;\n  }\n\n}\n\nconst binaryOptions = {\n  defaultType: PlainValue.Type.BLOCK_LITERAL,\n  lineWidth: 76\n};\nconst boolOptions = {\n  trueStr: 'true',\n  falseStr: 'false'\n};\nconst intOptions = {\n  asBigInt: false\n};\nconst nullOptions = {\n  nullStr: 'null'\n};\nconst strOptions = {\n  defaultType: PlainValue.Type.PLAIN,\n  doubleQuoted: {\n    jsonEncoding: false,\n    minMultiLineLength: 40\n  },\n  fold: {\n    lineWidth: 80,\n    minContentWidth: 20\n  }\n};\n\nfunction resolveScalar(str, tags, scalarFallback) {\n  for (const {\n    format,\n    test,\n    resolve\n  } of tags) {\n    if (test) {\n      const match = str.match(test);\n\n      if (match) {\n        let res = resolve.apply(null, match);\n        if (!(res instanceof Scalar)) res = new Scalar(res);\n        if (format) res.format = format;\n        return res;\n      }\n    }\n  }\n\n  if (scalarFallback) str = scalarFallback(str);\n  return new Scalar(str);\n}\n\nconst FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line\n// returns index of last newline in more-indented block\n\nconst consumeMoreIndentedLines = (text, i) => {\n  let ch = text[i + 1];\n\n  while (ch === ' ' || ch === '\\t') {\n    do {\n      ch = text[i += 1];\n    } while (ch && ch !== '\\n');\n\n    ch = text[i + 1];\n  }\n\n  return i;\n};\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n *\n * @param {string} text\n * @param {string} indent\n * @param {string} [mode='flow'] `'block'` prevents more-indented lines\n *   from being folded; `'quoted'` allows for `\\` escapes, including escaped\n *   newlines\n * @param {Object} options\n * @param {number} [options.indentAtStart] Accounts for leading contents on\n *   the first line, defaulting to `indent.length`\n * @param {number} [options.lineWidth=80]\n * @param {number} [options.minContentWidth=20] Allow highly indented lines to\n *   stretch the line width or indent content from the start\n * @param {function} options.onFold Called once if the text is folded\n * @param {function} options.onFold Called once if any line of text exceeds\n *   lineWidth characters\n */\n\n\nfunction foldFlowLines(text, indent, mode, {\n  indentAtStart,\n  lineWidth = 80,\n  minContentWidth = 20,\n  onFold,\n  onOverflow\n}) {\n  if (!lineWidth || lineWidth < 0) return text;\n  const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n  if (text.length <= endStep) return text;\n  const folds = [];\n  const escapedFolds = {};\n  let end = lineWidth - indent.length;\n\n  if (typeof indentAtStart === 'number') {\n    if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart;\n  }\n\n  let split = undefined;\n  let prev = undefined;\n  let overflow = false;\n  let i = -1;\n  let escStart = -1;\n  let escEnd = -1;\n\n  if (mode === FOLD_BLOCK) {\n    i = consumeMoreIndentedLines(text, i);\n    if (i !== -1) end = i + endStep;\n  }\n\n  for (let ch; ch = text[i += 1];) {\n    if (mode === FOLD_QUOTED && ch === '\\\\') {\n      escStart = i;\n\n      switch (text[i + 1]) {\n        case 'x':\n          i += 3;\n          break;\n\n        case 'u':\n          i += 5;\n          break;\n\n        case 'U':\n          i += 9;\n          break;\n\n        default:\n          i += 1;\n      }\n\n      escEnd = i;\n    }\n\n    if (ch === '\\n') {\n      if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i);\n      end = i + endStep;\n      split = undefined;\n    } else {\n      if (ch === ' ' && prev && prev !== ' ' && prev !== '\\n' && prev !== '\\t') {\n        // space surrounded by non-space can be replaced with newline + indent\n        const next = text[i + 1];\n        if (next && next !== ' ' && next !== '\\n' && next !== '\\t') split = i;\n      }\n\n      if (i >= end) {\n        if (split) {\n          folds.push(split);\n          end = split + endStep;\n          split = undefined;\n        } else if (mode === FOLD_QUOTED) {\n          // white-space collected at end may stretch past lineWidth\n          while (prev === ' ' || prev === '\\t') {\n            prev = ch;\n            ch = text[i += 1];\n            overflow = true;\n          } // Account for newline escape, but don't break preceding escape\n\n\n          const j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string\n\n          if (escapedFolds[j]) return text;\n          folds.push(j);\n          escapedFolds[j] = true;\n          end = j + endStep;\n          split = undefined;\n        } else {\n          overflow = true;\n        }\n      }\n    }\n\n    prev = ch;\n  }\n\n  if (overflow && onOverflow) onOverflow();\n  if (folds.length === 0) return text;\n  if (onFold) onFold();\n  let res = text.slice(0, folds[0]);\n\n  for (let i = 0; i < folds.length; ++i) {\n    const fold = folds[i];\n    const end = folds[i + 1] || text.length;\n    if (fold === 0) res = `\\n${indent}${text.slice(0, end)}`;else {\n      if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\\\`;\n      res += `\\n${indent}${text.slice(fold + 1, end)}`;\n    }\n  }\n\n  return res;\n}\n\nconst getFoldOptions = ({\n  indentAtStart\n}) => indentAtStart ? Object.assign({\n  indentAtStart\n}, strOptions.fold) : strOptions.fold; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\n\n\nconst containsDocumentMarker = str => /^(%|---|\\.\\.\\.)/m.test(str);\n\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n  if (!lineWidth || lineWidth < 0) return false;\n  const limit = lineWidth - indentLength;\n  const strLen = str.length;\n  if (strLen <= limit) return false;\n\n  for (let i = 0, start = 0; i < strLen; ++i) {\n    if (str[i] === '\\n') {\n      if (i - start > limit) return true;\n      start = i + 1;\n      if (strLen - start <= limit) return false;\n    }\n  }\n\n  return true;\n}\n\nfunction doubleQuotedString(value, ctx) {\n  const {\n    implicitKey\n  } = ctx;\n  const {\n    jsonEncoding,\n    minMultiLineLength\n  } = strOptions.doubleQuoted;\n  const json = JSON.stringify(value);\n  if (jsonEncoding) return json;\n  const indent = ctx.indent || (containsDocumentMarker(value) ? '  ' : '');\n  let str = '';\n  let start = 0;\n\n  for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n    if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n      // space before newline needs to be escaped to not be folded\n      str += json.slice(start, i) + '\\\\ ';\n      i += 1;\n      start = i;\n      ch = '\\\\';\n    }\n\n    if (ch === '\\\\') switch (json[i + 1]) {\n      case 'u':\n        {\n          str += json.slice(start, i);\n          const code = json.substr(i + 2, 4);\n\n          switch (code) {\n            case '0000':\n              str += '\\\\0';\n              break;\n\n            case '0007':\n              str += '\\\\a';\n              break;\n\n            case '000b':\n              str += '\\\\v';\n              break;\n\n            case '001b':\n              str += '\\\\e';\n              break;\n\n            case '0085':\n              str += '\\\\N';\n              break;\n\n            case '00a0':\n              str += '\\\\_';\n              break;\n\n            case '2028':\n              str += '\\\\L';\n              break;\n\n            case '2029':\n              str += '\\\\P';\n              break;\n\n            default:\n              if (code.substr(0, 2) === '00') str += '\\\\x' + code.substr(2);else str += json.substr(i, 6);\n          }\n\n          i += 5;\n          start = i + 1;\n        }\n        break;\n\n      case 'n':\n        if (implicitKey || json[i + 2] === '\"' || json.length < minMultiLineLength) {\n          i += 1;\n        } else {\n          // folding will eat first newline\n          str += json.slice(start, i) + '\\n\\n';\n\n          while (json[i + 2] === '\\\\' && json[i + 3] === 'n' && json[i + 4] !== '\"') {\n            str += '\\n';\n            i += 2;\n          }\n\n          str += indent; // space after newline needs to be escaped to not be folded\n\n          if (json[i + 2] === ' ') str += '\\\\';\n          i += 1;\n          start = i + 1;\n        }\n\n        break;\n\n      default:\n        i += 1;\n    }\n  }\n\n  str = start ? str + json.slice(start) : json;\n  return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx));\n}\n\nfunction singleQuotedString(value, ctx) {\n  if (ctx.implicitKey) {\n    if (/\\n/.test(value)) return doubleQuotedString(value, ctx);\n  } else {\n    // single quoted string can't have leading or trailing whitespace around newline\n    if (/[ \\t]\\n|\\n[ \\t]/.test(value)) return doubleQuotedString(value, ctx);\n  }\n\n  const indent = ctx.indent || (containsDocumentMarker(value) ? '  ' : '');\n  const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n  return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx));\n}\n\nfunction blockString({\n  comment,\n  type,\n  value\n}, ctx, onComment, onChompKeep) {\n  // 1. Block can't end in whitespace unless the last line is non-empty.\n  // 2. Strings consisting of only whitespace are best rendered explicitly.\n  if (/\\n[\\t ]+$/.test(value) || /^\\s*$/.test(value)) {\n    return doubleQuotedString(value, ctx);\n  }\n\n  const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? '  ' : '');\n  const indentSize = indent ? '2' : '1'; // root is at -1\n\n  const literal = type === PlainValue.Type.BLOCK_FOLDED ? false : type === PlainValue.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length);\n  let header = literal ? '|' : '>';\n  if (!value) return header + '\\n';\n  let wsStart = '';\n  let wsEnd = '';\n  value = value.replace(/[\\n\\t ]*$/, ws => {\n    const n = ws.indexOf('\\n');\n\n    if (n === -1) {\n      header += '-'; // strip\n    } else if (value === ws || n !== ws.length - 1) {\n      header += '+'; // keep\n\n      if (onChompKeep) onChompKeep();\n    }\n\n    wsEnd = ws.replace(/\\n$/, '');\n    return '';\n  }).replace(/^[\\n ]*/, ws => {\n    if (ws.indexOf(' ') !== -1) header += indentSize;\n    const m = ws.match(/ +$/);\n\n    if (m) {\n      wsStart = ws.slice(0, -m[0].length);\n      return m[0];\n    } else {\n      wsStart = ws;\n      return '';\n    }\n  });\n  if (wsEnd) wsEnd = wsEnd.replace(/\\n+(?!\\n|$)/g, `$&${indent}`);\n  if (wsStart) wsStart = wsStart.replace(/\\n+/g, `$&${indent}`);\n\n  if (comment) {\n    header += ' #' + comment.replace(/ ?[\\r\\n]+/g, ' ');\n    if (onComment) onComment();\n  }\n\n  if (!value) return `${header}${indentSize}\\n${indent}${wsEnd}`;\n\n  if (literal) {\n    value = value.replace(/\\n+/g, `$&${indent}`);\n    return `${header}\\n${indent}${wsStart}${value}${wsEnd}`;\n  }\n\n  value = value.replace(/\\n+/g, '\\n$&').replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n  //         ^ ind.line  ^ empty     ^ capture next empty lines only at end of indent\n  .replace(/\\n+/g, `$&${indent}`);\n  const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold);\n  return `${header}\\n${indent}${body}`;\n}\n\nfunction plainString(item, ctx, onComment, onChompKeep) {\n  const {\n    comment,\n    type,\n    value\n  } = item;\n  const {\n    actualString,\n    implicitKey,\n    indent,\n    inFlow\n  } = ctx;\n\n  if (implicitKey && /[\\n[\\]{},]/.test(value) || inFlow && /[[\\]{},]/.test(value)) {\n    return doubleQuotedString(value, ctx);\n  }\n\n  if (!value || /^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n    // not allowed:\n    // - empty string, '-' or '?'\n    // - start with an indicator character (except [?:-]) or /[?-] /\n    // - '\\n ', ': ' or ' \\n' anywhere\n    // - '#' not preceded by a non-space char\n    // - end with ' ' or ':'\n    return implicitKey || inFlow || value.indexOf('\\n') === -1 ? value.indexOf('\"') !== -1 && value.indexOf(\"'\") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);\n  }\n\n  if (!implicitKey && !inFlow && type !== PlainValue.Type.PLAIN && value.indexOf('\\n') !== -1) {\n    // Where allowed & type not set explicitly, prefer block style for multiline strings\n    return blockString(item, ctx, onComment, onChompKeep);\n  }\n\n  if (indent === '' && containsDocumentMarker(value)) {\n    ctx.forceBlockIndent = true;\n    return blockString(item, ctx, onComment, onChompKeep);\n  }\n\n  const str = value.replace(/\\n+/g, `$&\\n${indent}`); // Verify that output will be parsed as a string, as e.g. plain numbers and\n  // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n  // and others in v1.1.\n\n  if (actualString) {\n    const {\n      tags\n    } = ctx.doc.schema;\n    const resolved = resolveScalar(str, tags, tags.scalarFallback).value;\n    if (typeof resolved !== 'string') return doubleQuotedString(value, ctx);\n  }\n\n  const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx));\n\n  if (comment && !inFlow && (body.indexOf('\\n') !== -1 || comment.indexOf('\\n') !== -1)) {\n    if (onComment) onComment();\n    return addCommentBefore(body, indent, comment);\n  }\n\n  return body;\n}\n\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n  const {\n    defaultType\n  } = strOptions;\n  const {\n    implicitKey,\n    inFlow\n  } = ctx;\n  let {\n    type,\n    value\n  } = item;\n\n  if (typeof value !== 'string') {\n    value = String(value);\n    item = Object.assign({}, item, {\n      value\n    });\n  }\n\n  const _stringify = _type => {\n    switch (_type) {\n      case PlainValue.Type.BLOCK_FOLDED:\n      case PlainValue.Type.BLOCK_LITERAL:\n        return blockString(item, ctx, onComment, onChompKeep);\n\n      case PlainValue.Type.QUOTE_DOUBLE:\n        return doubleQuotedString(value, ctx);\n\n      case PlainValue.Type.QUOTE_SINGLE:\n        return singleQuotedString(value, ctx);\n\n      case PlainValue.Type.PLAIN:\n        return plainString(item, ctx, onComment, onChompKeep);\n\n      default:\n        return null;\n    }\n  };\n\n  if (type !== PlainValue.Type.QUOTE_DOUBLE && /[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f]/.test(value)) {\n    // force double quotes on control characters\n    type = PlainValue.Type.QUOTE_DOUBLE;\n  } else if ((implicitKey || inFlow) && (type === PlainValue.Type.BLOCK_FOLDED || type === PlainValue.Type.BLOCK_LITERAL)) {\n    // should not happen; blocks are not valid inside flow containers\n    type = PlainValue.Type.QUOTE_DOUBLE;\n  }\n\n  let res = _stringify(type);\n\n  if (res === null) {\n    res = _stringify(defaultType);\n    if (res === null) throw new Error(`Unsupported default string type ${defaultType}`);\n  }\n\n  return res;\n}\n\nfunction stringifyNumber({\n  format,\n  minFractionDigits,\n  tag,\n  value\n}) {\n  if (typeof value === 'bigint') return String(value);\n  if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf';\n  let n = JSON.stringify(value);\n\n  if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\\d/.test(n)) {\n    let i = n.indexOf('.');\n\n    if (i < 0) {\n      i = n.length;\n      n += '.';\n    }\n\n    let d = minFractionDigits - (n.length - i - 1);\n\n    while (d-- > 0) n += '0';\n  }\n\n  return n;\n}\n\nfunction checkFlowCollectionEnd(errors, cst) {\n  let char, name;\n\n  switch (cst.type) {\n    case PlainValue.Type.FLOW_MAP:\n      char = '}';\n      name = 'flow map';\n      break;\n\n    case PlainValue.Type.FLOW_SEQ:\n      char = ']';\n      name = 'flow sequence';\n      break;\n\n    default:\n      errors.push(new PlainValue.YAMLSemanticError(cst, 'Not a flow collection!?'));\n      return;\n  }\n\n  let lastItem;\n\n  for (let i = cst.items.length - 1; i >= 0; --i) {\n    const item = cst.items[i];\n\n    if (!item || item.type !== PlainValue.Type.COMMENT) {\n      lastItem = item;\n      break;\n    }\n  }\n\n  if (lastItem && lastItem.char !== char) {\n    const msg = `Expected ${name} to end with ${char}`;\n    let err;\n\n    if (typeof lastItem.offset === 'number') {\n      err = new PlainValue.YAMLSemanticError(cst, msg);\n      err.offset = lastItem.offset + 1;\n    } else {\n      err = new PlainValue.YAMLSemanticError(lastItem, msg);\n      if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start;\n    }\n\n    errors.push(err);\n  }\n}\nfunction checkFlowCommentSpace(errors, comment) {\n  const prev = comment.context.src[comment.range.start - 1];\n\n  if (prev !== '\\n' && prev !== '\\t' && prev !== ' ') {\n    const msg = 'Comments must be separated from other tokens by white space characters';\n    errors.push(new PlainValue.YAMLSemanticError(comment, msg));\n  }\n}\nfunction getLongKeyError(source, key) {\n  const sk = String(key);\n  const k = sk.substr(0, 8) + '...' + sk.substr(-8);\n  return new PlainValue.YAMLSemanticError(source, `The \"${k}\" key is too long`);\n}\nfunction resolveComments(collection, comments) {\n  for (const {\n    afterKey,\n    before,\n    comment\n  } of comments) {\n    let item = collection.items[before];\n\n    if (!item) {\n      if (comment !== undefined) {\n        if (collection.comment) collection.comment += '\\n' + comment;else collection.comment = comment;\n      }\n    } else {\n      if (afterKey && item.value) item = item.value;\n\n      if (comment === undefined) {\n        if (afterKey || !item.commentBefore) item.spaceBefore = true;\n      } else {\n        if (item.commentBefore) item.commentBefore += '\\n' + comment;else item.commentBefore = comment;\n      }\n    }\n  }\n}\n\n// on error, will return { str: string, errors: Error[] }\nfunction resolveString(doc, node) {\n  const res = node.strValue;\n  if (!res) return '';\n  if (typeof res === 'string') return res;\n  res.errors.forEach(error => {\n    if (!error.source) error.source = node;\n    doc.errors.push(error);\n  });\n  return res.str;\n}\n\nfunction resolveTagHandle(doc, node) {\n  const {\n    handle,\n    suffix\n  } = node.tag;\n  let prefix = doc.tagPrefixes.find(p => p.handle === handle);\n\n  if (!prefix) {\n    const dtp = doc.getDefaults().tagPrefixes;\n    if (dtp) prefix = dtp.find(p => p.handle === handle);\n    if (!prefix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`);\n  }\n\n  if (!suffix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag has no suffix.`);\n\n  if (handle === '!' && (doc.version || doc.options.version) === '1.0') {\n    if (suffix[0] === '^') {\n      doc.warnings.push(new PlainValue.YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported'));\n      return suffix;\n    }\n\n    if (/[:/]/.test(suffix)) {\n      // word/foo -> tag:word.yaml.org,2002:foo\n      const vocab = suffix.match(/^([a-z0-9-]+)\\/(.*)/i);\n      return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`;\n    }\n  }\n\n  return prefix.prefix + decodeURIComponent(suffix);\n}\n\nfunction resolveTagName(doc, node) {\n  const {\n    tag,\n    type\n  } = node;\n  let nonSpecific = false;\n\n  if (tag) {\n    const {\n      handle,\n      suffix,\n      verbatim\n    } = tag;\n\n    if (verbatim) {\n      if (verbatim !== '!' && verbatim !== '!!') return verbatim;\n      const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`;\n      doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));\n    } else if (handle === '!' && !suffix) {\n      nonSpecific = true;\n    } else {\n      try {\n        return resolveTagHandle(doc, node);\n      } catch (error) {\n        doc.errors.push(error);\n      }\n    }\n  }\n\n  switch (type) {\n    case PlainValue.Type.BLOCK_FOLDED:\n    case PlainValue.Type.BLOCK_LITERAL:\n    case PlainValue.Type.QUOTE_DOUBLE:\n    case PlainValue.Type.QUOTE_SINGLE:\n      return PlainValue.defaultTags.STR;\n\n    case PlainValue.Type.FLOW_MAP:\n    case PlainValue.Type.MAP:\n      return PlainValue.defaultTags.MAP;\n\n    case PlainValue.Type.FLOW_SEQ:\n    case PlainValue.Type.SEQ:\n      return PlainValue.defaultTags.SEQ;\n\n    case PlainValue.Type.PLAIN:\n      return nonSpecific ? PlainValue.defaultTags.STR : null;\n\n    default:\n      return null;\n  }\n}\n\nfunction resolveByTagName(doc, node, tagName) {\n  const {\n    tags\n  } = doc.schema;\n  const matchWithTest = [];\n\n  for (const tag of tags) {\n    if (tag.tag === tagName) {\n      if (tag.test) matchWithTest.push(tag);else {\n        const res = tag.resolve(doc, node);\n        return res instanceof Collection ? res : new Scalar(res);\n      }\n    }\n  }\n\n  const str = resolveString(doc, node);\n  if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback);\n  return null;\n}\n\nfunction getFallbackTagName({\n  type\n}) {\n  switch (type) {\n    case PlainValue.Type.FLOW_MAP:\n    case PlainValue.Type.MAP:\n      return PlainValue.defaultTags.MAP;\n\n    case PlainValue.Type.FLOW_SEQ:\n    case PlainValue.Type.SEQ:\n      return PlainValue.defaultTags.SEQ;\n\n    default:\n      return PlainValue.defaultTags.STR;\n  }\n}\n\nfunction resolveTag(doc, node, tagName) {\n  try {\n    const res = resolveByTagName(doc, node, tagName);\n\n    if (res) {\n      if (tagName && node.tag) res.tag = tagName;\n      return res;\n    }\n  } catch (error) {\n    /* istanbul ignore if */\n    if (!error.source) error.source = node;\n    doc.errors.push(error);\n    return null;\n  }\n\n  try {\n    const fallback = getFallbackTagName(node);\n    if (!fallback) throw new Error(`The tag ${tagName} is unavailable`);\n    const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`;\n    doc.warnings.push(new PlainValue.YAMLWarning(node, msg));\n    const res = resolveByTagName(doc, node, fallback);\n    res.tag = tagName;\n    return res;\n  } catch (error) {\n    const refError = new PlainValue.YAMLReferenceError(node, error.message);\n    refError.stack = error.stack;\n    doc.errors.push(refError);\n    return null;\n  }\n}\n\nconst isCollectionItem = node => {\n  if (!node) return false;\n  const {\n    type\n  } = node;\n  return type === PlainValue.Type.MAP_KEY || type === PlainValue.Type.MAP_VALUE || type === PlainValue.Type.SEQ_ITEM;\n};\n\nfunction resolveNodeProps(errors, node) {\n  const comments = {\n    before: [],\n    after: []\n  };\n  let hasAnchor = false;\n  let hasTag = false;\n  const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props;\n\n  for (const {\n    start,\n    end\n  } of props) {\n    switch (node.context.src[start]) {\n      case PlainValue.Char.COMMENT:\n        {\n          if (!node.commentHasRequiredWhitespace(start)) {\n            const msg = 'Comments must be separated from other tokens by white space characters';\n            errors.push(new PlainValue.YAMLSemanticError(node, msg));\n          }\n\n          const {\n            header,\n            valueRange\n          } = node;\n          const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before;\n          cc.push(node.context.src.slice(start + 1, end));\n          break;\n        }\n      // Actual anchor & tag resolution is handled by schema, here we just complain\n\n      case PlainValue.Char.ANCHOR:\n        if (hasAnchor) {\n          const msg = 'A node can have at most one anchor';\n          errors.push(new PlainValue.YAMLSemanticError(node, msg));\n        }\n\n        hasAnchor = true;\n        break;\n\n      case PlainValue.Char.TAG:\n        if (hasTag) {\n          const msg = 'A node can have at most one tag';\n          errors.push(new PlainValue.YAMLSemanticError(node, msg));\n        }\n\n        hasTag = true;\n        break;\n    }\n  }\n\n  return {\n    comments,\n    hasAnchor,\n    hasTag\n  };\n}\n\nfunction resolveNodeValue(doc, node) {\n  const {\n    anchors,\n    errors,\n    schema\n  } = doc;\n\n  if (node.type === PlainValue.Type.ALIAS) {\n    const name = node.rawValue;\n    const src = anchors.getNode(name);\n\n    if (!src) {\n      const msg = `Aliased anchor not found: ${name}`;\n      errors.push(new PlainValue.YAMLReferenceError(node, msg));\n      return null;\n    } // Lazy resolution for circular references\n\n\n    const res = new Alias(src);\n\n    anchors._cstAliases.push(res);\n\n    return res;\n  }\n\n  const tagName = resolveTagName(doc, node);\n  if (tagName) return resolveTag(doc, node, tagName);\n\n  if (node.type !== PlainValue.Type.PLAIN) {\n    const msg = `Failed to resolve ${node.type} node here`;\n    errors.push(new PlainValue.YAMLSyntaxError(node, msg));\n    return null;\n  }\n\n  try {\n    const str = resolveString(doc, node);\n    return resolveScalar(str, schema.tags, schema.tags.scalarFallback);\n  } catch (error) {\n    if (!error.source) error.source = node;\n    errors.push(error);\n    return null;\n  }\n} // sets node.resolved on success\n\n\nfunction resolveNode(doc, node) {\n  if (!node) return null;\n  if (node.error) doc.errors.push(node.error);\n  const {\n    comments,\n    hasAnchor,\n    hasTag\n  } = resolveNodeProps(doc.errors, node);\n\n  if (hasAnchor) {\n    const {\n      anchors\n    } = doc;\n    const name = node.anchor;\n    const prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor\n    // name have already been resolved, so it may safely be renamed.\n\n    if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as\n    // anchors need to be available during resolution to allow for\n    // circular references.\n\n    anchors.map[name] = node;\n  }\n\n  if (node.type === PlainValue.Type.ALIAS && (hasAnchor || hasTag)) {\n    const msg = 'An alias node must not specify any properties';\n    doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));\n  }\n\n  const res = resolveNodeValue(doc, node);\n\n  if (res) {\n    res.range = [node.range.start, node.range.end];\n    if (doc.options.keepCstNodes) res.cstNode = node;\n    if (doc.options.keepNodeTypes) res.type = node.type;\n    const cb = comments.before.join('\\n');\n\n    if (cb) {\n      res.commentBefore = res.commentBefore ? `${res.commentBefore}\\n${cb}` : cb;\n    }\n\n    const ca = comments.after.join('\\n');\n    if (ca) res.comment = res.comment ? `${res.comment}\\n${ca}` : ca;\n  }\n\n  return node.resolved = res;\n}\n\nfunction resolveMap(doc, cst) {\n  if (cst.type !== PlainValue.Type.MAP && cst.type !== PlainValue.Type.FLOW_MAP) {\n    const msg = `A ${cst.type} node cannot be resolved as a mapping`;\n    doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));\n    return null;\n  }\n\n  const {\n    comments,\n    items\n  } = cst.type === PlainValue.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst);\n  const map = new YAMLMap();\n  map.items = items;\n  resolveComments(map, comments);\n  let hasCollectionKey = false;\n\n  for (let i = 0; i < items.length; ++i) {\n    const {\n      key: iKey\n    } = items[i];\n    if (iKey instanceof Collection) hasCollectionKey = true;\n\n    if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) {\n      items[i] = new Merge(items[i]);\n      const sources = items[i].value.items;\n      let error = null;\n      sources.some(node => {\n        if (node instanceof Alias) {\n          // During parsing, alias sources are CST nodes; to account for\n          // circular references their resolved values can't be used here.\n          const {\n            type\n          } = node.source;\n          if (type === PlainValue.Type.MAP || type === PlainValue.Type.FLOW_MAP) return false;\n          return error = 'Merge nodes aliases can only point to maps';\n        }\n\n        return error = 'Merge nodes can only have Alias nodes as values';\n      });\n      if (error) doc.errors.push(new PlainValue.YAMLSemanticError(cst, error));\n    } else {\n      for (let j = i + 1; j < items.length; ++j) {\n        const {\n          key: jKey\n        } = items[j];\n\n        if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) {\n          const msg = `Map keys must be unique; \"${iKey}\" is repeated`;\n          doc.errors.push(new PlainValue.YAMLSemanticError(cst, msg));\n          break;\n        }\n      }\n    }\n  }\n\n  if (hasCollectionKey && !doc.options.mapAsMap) {\n    const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n    doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));\n  }\n\n  cst.resolved = map;\n  return map;\n}\n\nconst valueHasPairComment = ({\n  context: {\n    lineStart,\n    node,\n    src\n  },\n  props\n}) => {\n  if (props.length === 0) return false;\n  const {\n    start\n  } = props[0];\n  if (node && start > node.valueRange.start) return false;\n  if (src[start] !== PlainValue.Char.COMMENT) return false;\n\n  for (let i = lineStart; i < start; ++i) if (src[i] === '\\n') return false;\n\n  return true;\n};\n\nfunction resolvePairComment(item, pair) {\n  if (!valueHasPairComment(item)) return;\n  const comment = item.getPropValue(0, PlainValue.Char.COMMENT, true);\n  let found = false;\n  const cb = pair.value.commentBefore;\n\n  if (cb && cb.startsWith(comment)) {\n    pair.value.commentBefore = cb.substr(comment.length + 1);\n    found = true;\n  } else {\n    const cc = pair.value.comment;\n\n    if (!item.node && cc && cc.startsWith(comment)) {\n      pair.value.comment = cc.substr(comment.length + 1);\n      found = true;\n    }\n  }\n\n  if (found) pair.comment = comment;\n}\n\nfunction resolveBlockMapItems(doc, cst) {\n  const comments = [];\n  const items = [];\n  let key = undefined;\n  let keyStart = null;\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    switch (item.type) {\n      case PlainValue.Type.BLANK_LINE:\n        comments.push({\n          afterKey: !!key,\n          before: items.length\n        });\n        break;\n\n      case PlainValue.Type.COMMENT:\n        comments.push({\n          afterKey: !!key,\n          before: items.length,\n          comment: item.comment\n        });\n        break;\n\n      case PlainValue.Type.MAP_KEY:\n        if (key !== undefined) items.push(new Pair(key));\n        if (item.error) doc.errors.push(item.error);\n        key = resolveNode(doc, item.node);\n        keyStart = null;\n        break;\n\n      case PlainValue.Type.MAP_VALUE:\n        {\n          if (key === undefined) key = null;\n          if (item.error) doc.errors.push(item.error);\n\n          if (!item.context.atLineStart && item.node && item.node.type === PlainValue.Type.MAP && !item.node.context.atLineStart) {\n            const msg = 'Nested mappings are not allowed in compact mappings';\n            doc.errors.push(new PlainValue.YAMLSemanticError(item.node, msg));\n          }\n\n          let valueNode = item.node;\n\n          if (!valueNode && item.props.length > 0) {\n            // Comments on an empty mapping value need to be preserved, so we\n            // need to construct a minimal empty node here to use instead of the\n            // missing `item.node`. -- eemeli/yaml#19\n            valueNode = new PlainValue.PlainValue(PlainValue.Type.PLAIN, []);\n            valueNode.context = {\n              parent: item,\n              src: item.context.src\n            };\n            const pos = item.range.start + 1;\n            valueNode.range = {\n              start: pos,\n              end: pos\n            };\n            valueNode.valueRange = {\n              start: pos,\n              end: pos\n            };\n\n            if (typeof item.range.origStart === 'number') {\n              const origPos = item.range.origStart + 1;\n              valueNode.range.origStart = valueNode.range.origEnd = origPos;\n              valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos;\n            }\n          }\n\n          const pair = new Pair(key, resolveNode(doc, valueNode));\n          resolvePairComment(item, pair);\n          items.push(pair);\n\n          if (key && typeof keyStart === 'number') {\n            if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n          }\n\n          key = undefined;\n          keyStart = null;\n        }\n        break;\n\n      default:\n        if (key !== undefined) items.push(new Pair(key));\n        key = resolveNode(doc, item);\n        keyStart = item.range.start;\n        if (item.error) doc.errors.push(item.error);\n\n        next: for (let j = i + 1;; ++j) {\n          const nextItem = cst.items[j];\n\n          switch (nextItem && nextItem.type) {\n            case PlainValue.Type.BLANK_LINE:\n            case PlainValue.Type.COMMENT:\n              continue next;\n\n            case PlainValue.Type.MAP_VALUE:\n              break next;\n\n            default:\n              {\n                const msg = 'Implicit map keys need to be followed by map values';\n                doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n                break next;\n              }\n          }\n        }\n\n        if (item.valueRangeContainsNewline) {\n          const msg = 'Implicit map keys need to be on a single line';\n          doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n        }\n\n    }\n  }\n\n  if (key !== undefined) items.push(new Pair(key));\n  return {\n    comments,\n    items\n  };\n}\n\nfunction resolveFlowMapItems(doc, cst) {\n  const comments = [];\n  const items = [];\n  let key = undefined;\n  let explicitKey = false;\n  let next = '{';\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    if (typeof item.char === 'string') {\n      const {\n        char,\n        offset\n      } = item;\n\n      if (char === '?' && key === undefined && !explicitKey) {\n        explicitKey = true;\n        next = ':';\n        continue;\n      }\n\n      if (char === ':') {\n        if (key === undefined) key = null;\n\n        if (next === ':') {\n          next = ',';\n          continue;\n        }\n      } else {\n        if (explicitKey) {\n          if (key === undefined && char !== ',') key = null;\n          explicitKey = false;\n        }\n\n        if (key !== undefined) {\n          items.push(new Pair(key));\n          key = undefined;\n\n          if (char === ',') {\n            next = ':';\n            continue;\n          }\n        }\n      }\n\n      if (char === '}') {\n        if (i === cst.items.length - 1) continue;\n      } else if (char === next) {\n        next = ':';\n        continue;\n      }\n\n      const msg = `Flow map contains an unexpected ${char}`;\n      const err = new PlainValue.YAMLSyntaxError(cst, msg);\n      err.offset = offset;\n      doc.errors.push(err);\n    } else if (item.type === PlainValue.Type.BLANK_LINE) {\n      comments.push({\n        afterKey: !!key,\n        before: items.length\n      });\n    } else if (item.type === PlainValue.Type.COMMENT) {\n      checkFlowCommentSpace(doc.errors, item);\n      comments.push({\n        afterKey: !!key,\n        before: items.length,\n        comment: item.comment\n      });\n    } else if (key === undefined) {\n      if (next === ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Separator , missing in flow map'));\n      key = resolveNode(doc, item);\n    } else {\n      if (next !== ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Indicator : missing in flow map entry'));\n      items.push(new Pair(key, resolveNode(doc, item)));\n      key = undefined;\n      explicitKey = false;\n    }\n  }\n\n  checkFlowCollectionEnd(doc.errors, cst);\n  if (key !== undefined) items.push(new Pair(key));\n  return {\n    comments,\n    items\n  };\n}\n\nfunction resolveSeq(doc, cst) {\n  if (cst.type !== PlainValue.Type.SEQ && cst.type !== PlainValue.Type.FLOW_SEQ) {\n    const msg = `A ${cst.type} node cannot be resolved as a sequence`;\n    doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));\n    return null;\n  }\n\n  const {\n    comments,\n    items\n  } = cst.type === PlainValue.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst);\n  const seq = new YAMLSeq();\n  seq.items = items;\n  resolveComments(seq, comments);\n\n  if (!doc.options.mapAsMap && items.some(it => it instanceof Pair && it.key instanceof Collection)) {\n    const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n    doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));\n  }\n\n  cst.resolved = seq;\n  return seq;\n}\n\nfunction resolveBlockSeqItems(doc, cst) {\n  const comments = [];\n  const items = [];\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    switch (item.type) {\n      case PlainValue.Type.BLANK_LINE:\n        comments.push({\n          before: items.length\n        });\n        break;\n\n      case PlainValue.Type.COMMENT:\n        comments.push({\n          comment: item.comment,\n          before: items.length\n        });\n        break;\n\n      case PlainValue.Type.SEQ_ITEM:\n        if (item.error) doc.errors.push(item.error);\n        items.push(resolveNode(doc, item.node));\n\n        if (item.hasProps) {\n          const msg = 'Sequence items cannot have tags or anchors before the - indicator';\n          doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n        }\n\n        break;\n\n      default:\n        if (item.error) doc.errors.push(item.error);\n        doc.errors.push(new PlainValue.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`));\n    }\n  }\n\n  return {\n    comments,\n    items\n  };\n}\n\nfunction resolveFlowSeqItems(doc, cst) {\n  const comments = [];\n  const items = [];\n  let explicitKey = false;\n  let key = undefined;\n  let keyStart = null;\n  let next = '[';\n  let prevItem = null;\n\n  for (let i = 0; i < cst.items.length; ++i) {\n    const item = cst.items[i];\n\n    if (typeof item.char === 'string') {\n      const {\n        char,\n        offset\n      } = item;\n\n      if (char !== ':' && (explicitKey || key !== undefined)) {\n        if (explicitKey && key === undefined) key = next ? items.pop() : null;\n        items.push(new Pair(key));\n        explicitKey = false;\n        key = undefined;\n        keyStart = null;\n      }\n\n      if (char === next) {\n        next = null;\n      } else if (!next && char === '?') {\n        explicitKey = true;\n      } else if (next !== '[' && char === ':' && key === undefined) {\n        if (next === ',') {\n          key = items.pop();\n\n          if (key instanceof Pair) {\n            const msg = 'Chaining flow sequence pairs is invalid';\n            const err = new PlainValue.YAMLSemanticError(cst, msg);\n            err.offset = offset;\n            doc.errors.push(err);\n          }\n\n          if (!explicitKey && typeof keyStart === 'number') {\n            const keyEnd = item.range ? item.range.start : item.offset;\n            if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n            const {\n              src\n            } = prevItem.context;\n\n            for (let i = keyStart; i < keyEnd; ++i) if (src[i] === '\\n') {\n              const msg = 'Implicit keys of flow sequence pairs need to be on a single line';\n              doc.errors.push(new PlainValue.YAMLSemanticError(prevItem, msg));\n              break;\n            }\n          }\n        } else {\n          key = null;\n        }\n\n        keyStart = null;\n        explicitKey = false;\n        next = null;\n      } else if (next === '[' || char !== ']' || i < cst.items.length - 1) {\n        const msg = `Flow sequence contains an unexpected ${char}`;\n        const err = new PlainValue.YAMLSyntaxError(cst, msg);\n        err.offset = offset;\n        doc.errors.push(err);\n      }\n    } else if (item.type === PlainValue.Type.BLANK_LINE) {\n      comments.push({\n        before: items.length\n      });\n    } else if (item.type === PlainValue.Type.COMMENT) {\n      checkFlowCommentSpace(doc.errors, item);\n      comments.push({\n        comment: item.comment,\n        before: items.length\n      });\n    } else {\n      if (next) {\n        const msg = `Expected a ${next} in flow sequence`;\n        doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n      }\n\n      const value = resolveNode(doc, item);\n\n      if (key === undefined) {\n        items.push(value);\n        prevItem = item;\n      } else {\n        items.push(new Pair(key, value));\n        key = undefined;\n      }\n\n      keyStart = item.range.start;\n      next = ',';\n    }\n  }\n\n  checkFlowCollectionEnd(doc.errors, cst);\n  if (key !== undefined) items.push(new Pair(key));\n  return {\n    comments,\n    items\n  };\n}\n\nexports.Alias = Alias;\nexports.Collection = Collection;\nexports.Merge = Merge;\nexports.Node = Node;\nexports.Pair = Pair;\nexports.Scalar = Scalar;\nexports.YAMLMap = YAMLMap;\nexports.YAMLSeq = YAMLSeq;\nexports.addComment = addComment;\nexports.binaryOptions = binaryOptions;\nexports.boolOptions = boolOptions;\nexports.findPair = findPair;\nexports.intOptions = intOptions;\nexports.isEmptyPath = isEmptyPath;\nexports.nullOptions = nullOptions;\nexports.resolveMap = resolveMap;\nexports.resolveNode = resolveNode;\nexports.resolveSeq = resolveSeq;\nexports.resolveString = resolveString;\nexports.strOptions = strOptions;\nexports.stringifyNumber = stringifyNumber;\nexports.stringifyString = stringifyString;\nexports.toJSON = toJSON;\n","'use strict';\n\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar Schema = require('./Schema-88e323a7.js');\nrequire('./PlainValue-ec8e588e.js');\nrequire('./warnings-1000a372.js');\n\n\n\nexports.Alias = resolveSeq.Alias;\nexports.Collection = resolveSeq.Collection;\nexports.Merge = resolveSeq.Merge;\nexports.Node = resolveSeq.Node;\nexports.Pair = resolveSeq.Pair;\nexports.Scalar = resolveSeq.Scalar;\nexports.YAMLMap = resolveSeq.YAMLMap;\nexports.YAMLSeq = resolveSeq.YAMLSeq;\nexports.binaryOptions = resolveSeq.binaryOptions;\nexports.boolOptions = resolveSeq.boolOptions;\nexports.intOptions = resolveSeq.intOptions;\nexports.nullOptions = resolveSeq.nullOptions;\nexports.strOptions = resolveSeq.strOptions;\nexports.Schema = Schema.Schema;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\n\n/* global atob, btoa, Buffer */\nconst binary = {\n  identify: value => value instanceof Uint8Array,\n  // Buffer inherits from Uint8Array\n  default: false,\n  tag: 'tag:yaml.org,2002:binary',\n\n  /**\n   * Returns a Buffer in node and an Uint8Array in browsers\n   *\n   * To use the resulting buffer as an image, you'll want to do something like:\n   *\n   *   const blob = new Blob([buffer], { type: 'image/jpeg' })\n   *   document.querySelector('#photo').src = URL.createObjectURL(blob)\n   */\n  resolve: (doc, node) => {\n    const src = resolveSeq.resolveString(doc, node);\n\n    if (typeof Buffer === 'function') {\n      return Buffer.from(src, 'base64');\n    } else if (typeof atob === 'function') {\n      // On IE 11, atob() can't handle newlines\n      const str = atob(src.replace(/[\\n\\r]/g, ''));\n      const buffer = new Uint8Array(str.length);\n\n      for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);\n\n      return buffer;\n    } else {\n      const msg = 'This environment does not support reading binary tags; either Buffer or atob is required';\n      doc.errors.push(new PlainValue.YAMLReferenceError(node, msg));\n      return null;\n    }\n  },\n  options: resolveSeq.binaryOptions,\n  stringify: ({\n    comment,\n    type,\n    value\n  }, ctx, onComment, onChompKeep) => {\n    let src;\n\n    if (typeof Buffer === 'function') {\n      src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');\n    } else if (typeof btoa === 'function') {\n      let s = '';\n\n      for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);\n\n      src = btoa(s);\n    } else {\n      throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n    }\n\n    if (!type) type = resolveSeq.binaryOptions.defaultType;\n\n    if (type === PlainValue.Type.QUOTE_DOUBLE) {\n      value = src;\n    } else {\n      const {\n        lineWidth\n      } = resolveSeq.binaryOptions;\n      const n = Math.ceil(src.length / lineWidth);\n      const lines = new Array(n);\n\n      for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n        lines[i] = src.substr(o, lineWidth);\n      }\n\n      value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? '\\n' : ' ');\n    }\n\n    return resolveSeq.stringifyString({\n      comment,\n      type,\n      value\n    }, ctx, onComment, onChompKeep);\n  }\n};\n\nfunction parsePairs(doc, cst) {\n  const seq = resolveSeq.resolveSeq(doc, cst);\n\n  for (let i = 0; i < seq.items.length; ++i) {\n    let item = seq.items[i];\n    if (item instanceof resolveSeq.Pair) continue;else if (item instanceof resolveSeq.YAMLMap) {\n      if (item.items.length > 1) {\n        const msg = 'Each pair must have its own sequence indicator';\n        throw new PlainValue.YAMLSemanticError(cst, msg);\n      }\n\n      const pair = item.items[0] || new resolveSeq.Pair();\n      if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\\n${pair.commentBefore}` : item.commentBefore;\n      if (item.comment) pair.comment = pair.comment ? `${item.comment}\\n${pair.comment}` : item.comment;\n      item = pair;\n    }\n    seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item);\n  }\n\n  return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n  const pairs = new resolveSeq.YAMLSeq(schema);\n  pairs.tag = 'tag:yaml.org,2002:pairs';\n\n  for (const it of iterable) {\n    let key, value;\n\n    if (Array.isArray(it)) {\n      if (it.length === 2) {\n        key = it[0];\n        value = it[1];\n      } else throw new TypeError(`Expected [key, value] tuple: ${it}`);\n    } else if (it && it instanceof Object) {\n      const keys = Object.keys(it);\n\n      if (keys.length === 1) {\n        key = keys[0];\n        value = it[key];\n      } else throw new TypeError(`Expected { key: value } tuple: ${it}`);\n    } else {\n      key = it;\n    }\n\n    const pair = schema.createPair(key, value, ctx);\n    pairs.items.push(pair);\n  }\n\n  return pairs;\n}\nconst pairs = {\n  default: false,\n  tag: 'tag:yaml.org,2002:pairs',\n  resolve: parsePairs,\n  createNode: createPairs\n};\n\nclass YAMLOMap extends resolveSeq.YAMLSeq {\n  constructor() {\n    super();\n\n    PlainValue._defineProperty(this, \"add\", resolveSeq.YAMLMap.prototype.add.bind(this));\n\n    PlainValue._defineProperty(this, \"delete\", resolveSeq.YAMLMap.prototype.delete.bind(this));\n\n    PlainValue._defineProperty(this, \"get\", resolveSeq.YAMLMap.prototype.get.bind(this));\n\n    PlainValue._defineProperty(this, \"has\", resolveSeq.YAMLMap.prototype.has.bind(this));\n\n    PlainValue._defineProperty(this, \"set\", resolveSeq.YAMLMap.prototype.set.bind(this));\n\n    this.tag = YAMLOMap.tag;\n  }\n\n  toJSON(_, ctx) {\n    const map = new Map();\n    if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n    for (const pair of this.items) {\n      let key, value;\n\n      if (pair instanceof resolveSeq.Pair) {\n        key = resolveSeq.toJSON(pair.key, '', ctx);\n        value = resolveSeq.toJSON(pair.value, key, ctx);\n      } else {\n        key = resolveSeq.toJSON(pair, '', ctx);\n      }\n\n      if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');\n      map.set(key, value);\n    }\n\n    return map;\n  }\n\n}\n\nPlainValue._defineProperty(YAMLOMap, \"tag\", 'tag:yaml.org,2002:omap');\n\nfunction parseOMap(doc, cst) {\n  const pairs = parsePairs(doc, cst);\n  const seenKeys = [];\n\n  for (const {\n    key\n  } of pairs.items) {\n    if (key instanceof resolveSeq.Scalar) {\n      if (seenKeys.includes(key.value)) {\n        const msg = 'Ordered maps must not include duplicate keys';\n        throw new PlainValue.YAMLSemanticError(cst, msg);\n      } else {\n        seenKeys.push(key.value);\n      }\n    }\n  }\n\n  return Object.assign(new YAMLOMap(), pairs);\n}\n\nfunction createOMap(schema, iterable, ctx) {\n  const pairs = createPairs(schema, iterable, ctx);\n  const omap = new YAMLOMap();\n  omap.items = pairs.items;\n  return omap;\n}\n\nconst omap = {\n  identify: value => value instanceof Map,\n  nodeClass: YAMLOMap,\n  default: false,\n  tag: 'tag:yaml.org,2002:omap',\n  resolve: parseOMap,\n  createNode: createOMap\n};\n\nclass YAMLSet extends resolveSeq.YAMLMap {\n  constructor() {\n    super();\n    this.tag = YAMLSet.tag;\n  }\n\n  add(key) {\n    const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key);\n    const prev = resolveSeq.findPair(this.items, pair.key);\n    if (!prev) this.items.push(pair);\n  }\n\n  get(key, keepPair) {\n    const pair = resolveSeq.findPair(this.items, key);\n    return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair;\n  }\n\n  set(key, value) {\n    if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n    const prev = resolveSeq.findPair(this.items, key);\n\n    if (prev && !value) {\n      this.items.splice(this.items.indexOf(prev), 1);\n    } else if (!prev && value) {\n      this.items.push(new resolveSeq.Pair(key));\n    }\n  }\n\n  toJSON(_, ctx) {\n    return super.toJSON(_, ctx, Set);\n  }\n\n  toString(ctx, onComment, onChompKeep) {\n    if (!ctx) return JSON.stringify(this);\n    if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');\n  }\n\n}\n\nPlainValue._defineProperty(YAMLSet, \"tag\", 'tag:yaml.org,2002:set');\n\nfunction parseSet(doc, cst) {\n  const map = resolveSeq.resolveMap(doc, cst);\n  if (!map.hasAllNullValues()) throw new PlainValue.YAMLSemanticError(cst, 'Set items must all have null values');\n  return Object.assign(new YAMLSet(), map);\n}\n\nfunction createSet(schema, iterable, ctx) {\n  const set = new YAMLSet();\n\n  for (const value of iterable) set.items.push(schema.createPair(value, null, ctx));\n\n  return set;\n}\n\nconst set = {\n  identify: value => value instanceof Set,\n  nodeClass: YAMLSet,\n  default: false,\n  tag: 'tag:yaml.org,2002:set',\n  resolve: parseSet,\n  createNode: createSet\n};\n\nconst parseSexagesimal = (sign, parts) => {\n  const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0);\n  return sign === '-' ? -n : n;\n}; // hhhh:mm:ss.sss\n\n\nconst stringifySexagesimal = ({\n  value\n}) => {\n  if (isNaN(value) || !isFinite(value)) return resolveSeq.stringifyNumber(value);\n  let sign = '';\n\n  if (value < 0) {\n    sign = '-';\n    value = Math.abs(value);\n  }\n\n  const parts = [value % 60]; // seconds, including ms\n\n  if (value < 60) {\n    parts.unshift(0); // at least one : is required\n  } else {\n    value = Math.round((value - parts[0]) / 60);\n    parts.unshift(value % 60); // minutes\n\n    if (value >= 60) {\n      value = Math.round((value - parts[0]) / 60);\n      parts.unshift(value); // hours\n    }\n  }\n\n  return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\\d*$/, '') // % 60 may introduce error\n  ;\n};\n\nconst intTime = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:int',\n  format: 'TIME',\n  test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,\n  resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),\n  stringify: stringifySexagesimal\n};\nconst floatTime = {\n  identify: value => typeof value === 'number',\n  default: true,\n  tag: 'tag:yaml.org,2002:float',\n  format: 'TIME',\n  test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*)$/,\n  resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),\n  stringify: stringifySexagesimal\n};\nconst timestamp = {\n  identify: value => value instanceof Date,\n  default: true,\n  tag: 'tag:yaml.org,2002:timestamp',\n  // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n  // may be omitted altogether, resulting in a date format. In such a case, the time part is\n  // assumed to be 00:00:00Z (start of day, UTC).\n  test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n  '(?:(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n  '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n  '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n  ')?' + ')$'),\n  resolve: (str, year, month, day, hour, minute, second, millisec, tz) => {\n    if (millisec) millisec = (millisec + '00').substr(1, 3);\n    let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);\n\n    if (tz && tz !== 'Z') {\n      let d = parseSexagesimal(tz[0], tz.slice(1));\n      if (Math.abs(d) < 30) d *= 60;\n      date -= 60000 * d;\n    }\n\n    return new Date(date);\n  },\n  stringify: ({\n    value\n  }) => value.toISOString().replace(/((T00:00)?:00)?\\.000Z$/, '')\n};\n\n/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */\nfunction shouldWarn(deprecation) {\n  const env = typeof process !== 'undefined' && process.env || {};\n\n  if (deprecation) {\n    if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS;\n    return !env.YAML_SILENCE_DEPRECATION_WARNINGS;\n  }\n\n  if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS;\n  return !env.YAML_SILENCE_WARNINGS;\n}\n\nfunction warn(warning, type) {\n  if (shouldWarn(false)) {\n    const emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to\n    // https://github.com/facebook/jest/issues/2549\n\n    if (emit) emit(warning, type);else {\n      // eslint-disable-next-line no-console\n      console.warn(type ? `${type}: ${warning}` : warning);\n    }\n  }\n}\nfunction warnFileDeprecation(filename) {\n  if (shouldWarn(true)) {\n    const path = filename.replace(/.*yaml[/\\\\]/i, '').replace(/\\.js$/, '').replace(/\\\\/g, '/');\n    warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, 'DeprecationWarning');\n  }\n}\nconst warned = {};\nfunction warnOptionDeprecation(name, alternative) {\n  if (!warned[name] && shouldWarn(true)) {\n    warned[name] = true;\n    let msg = `The option '${name}' will be removed in a future release`;\n    msg += alternative ? `, use '${alternative}' instead.` : '.';\n    warn(msg, 'DeprecationWarning');\n  }\n}\n\nexports.binary = binary;\nexports.floatTime = floatTime;\nexports.intTime = intTime;\nexports.omap = omap;\nexports.pairs = pairs;\nexports.set = set;\nexports.timestamp = timestamp;\nexports.warn = warn;\nexports.warnFileDeprecation = warnFileDeprecation;\nexports.warnOptionDeprecation = warnOptionDeprecation;\n","module.exports = require('./dist').YAML\n","const types = require('./dist/types')\n\nexports.binaryOptions = types.binaryOptions\nexports.boolOptions = types.boolOptions\nexports.intOptions = types.intOptions\nexports.nullOptions = types.nullOptions\nexports.strOptions = types.strOptions\n\nexports.Schema = types.Schema\nexports.Alias = types.Alias\nexports.Collection = types.Collection\nexports.Merge = types.Merge\nexports.Node = types.Node\nexports.Pair = types.Pair\nexports.Scalar = types.Scalar\nexports.YAMLMap = types.YAMLMap\nexports.YAMLSeq = types.YAMLSeq\n","(()=>{\"use strict\";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>$t,XMLParser:()=>gt,XMLValidator:()=>It});const i=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",n=new RegExp(\"^[\"+i+\"][\"+i+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const i=[];let n=e.exec(t);for(;n;){const s=[];s.startIndex=e.lastIndex-n[0].length;const r=n.length;for(let t=0;t\"!==t[r]&&\" \"!==t[r]&&\"\\t\"!==t[r]&&\"\\n\"!==t[r]&&\"\\r\"!==t[r];r++)h+=t[r];if(h=h.trim(),\"/\"===h[h.length-1]&&(h=h.substring(0,h.length-1),r--),!y(h)){let e;return e=0===h.trim().length?\"Invalid space after '<'.\":\"Tag '\"+h+\"' is an invalid name.\",b(\"InvalidTag\",e,w(t,r))}const l=g(t,r);if(!1===l)return b(\"InvalidAttr\",\"Attributes for '\"+h+\"' have open quote.\",w(t,r));let d=l.value;if(r=l.index,\"/\"===d[d.length-1]){const i=r-d.length;d=d.substring(0,d.length-1);const s=x(d,e);if(!0!==s)return b(s.err.code,s.err.msg,w(t,i+s.err.line));n=!0}else if(a){if(!l.tagClosed)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' doesn't have proper closing.\",w(t,r));if(d.trim().length>0)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' can't have attributes or invalid starting.\",w(t,o));if(0===i.length)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' has not been opened.\",w(t,o));{const e=i.pop();if(h!==e.tagName){let i=w(t,e.tagStartPos);return b(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+i.line+\", col \"+i.col+\") instead of closing tag '\"+h+\"'.\",w(t,o))}0==i.length&&(s=!0)}}else{const a=x(d,e);if(!0!==a)return b(a.err.code,a.err.msg,w(t,r-d.length+a.err.line));if(!0===s)return b(\"InvalidXml\",\"Multiple possible root nodes found.\",w(t,r));-1!==e.unpairedTags.indexOf(h)||i.push({tagName:h,tagStartPos:o}),n=!0}for(r++;r0)||b(\"InvalidXml\",\"Invalid '\"+JSON.stringify(i.map(t=>t.tagName),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):b(\"InvalidXml\",\"Start tag expected.\",1)}function p(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const i=e;for(;e5&&\"xml\"===n)return b(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",w(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}continue}return e}function c(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let i=1;for(e+=8;e\"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function g(t,e){let i=\"\",n=\"\",s=!1;for(;e\"===t[e]&&\"\"===n){s=!0;break}i+=t[e]}return\"\"===n&&{value:i,index:e,tagClosed:s}}const m=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function x(t,e){const i=s(t,m),n={};for(let t=0;to.includes(t)?\"__\"+t:t,P={preserveOrder:!1,attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:T};function S(t,e){if(\"string\"!=typeof t)return;const i=t.toLowerCase();if(o.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);if(a.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`)}function A(t){return\"boolean\"==typeof t?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:\"object\"==typeof t&&null!==t?{enabled:!1!==t.enabled,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??10),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1e3),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??100),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:A(!0)}const O=function(t){const e=Object.assign({},P,t),i=[{value:e.attributeNamePrefix,name:\"attributeNamePrefix\"},{value:e.attributesGroupName,name:\"attributesGroupName\"},{value:e.textNodeName,name:\"textNodeName\"},{value:e.cdataPropName,name:\"cdataPropName\"},{value:e.commentPropName,name:\"commentPropName\"}];for(const{value:t,name:e}of i)t&&S(t,e);return null===e.onDangerousProperty&&(e.onDangerousProperty=T),e.processEntities=A(e.processEntities),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),e};let C;C=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class ${constructor(t){this.tagname=t,this.child=[],this[\":@\"]=Object.create(null)}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][C]={startIndex:e})}static getMetaDataSymbol(){return C}}class I{constructor(t){this.suppressValidationErr=!t,this.options=t}readDocType(t,e){const i=Object.create(null);let n=0;if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let s=1,r=!1,o=!1,a=\"\";for(;e\"===t[e]){if(o?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(o=!1,s--):s--,0===s)break}else\"[\"===t[e]?r=!0:a+=t[e];else{if(r&&M(t,\"!ENTITY\",e)){let s,r;if(e+=7,[s,r,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===r.indexOf(\"&\")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&n>=this.options.maxEntityCount)throw new Error(`Entity count (${n+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);const t=s.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");i[s]={regx:RegExp(`&${t};`,\"g\"),val:r},n++}}else if(r&&M(t,\"!ELEMENT\",e)){e+=8;const{index:i}=this.readElementExp(t,e+1);e=i}else if(r&&M(t,\"!ATTLIST\",e))e+=8;else if(r&&M(t,\"!NOTATION\",e)){e+=9;const{index:i}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=i}else{if(!M(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");o=!0}s++,a=\"\"}if(0!==s)throw new Error(\"Unclosed DOCTYPE\")}return{entities:i,i:e}}readEntityExp(t,e){const i=e=j(t,e);for(;ethis.options.maxEntitySize)throw new Error(`Entity \"${n}\" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[n,s,--e]}readNotationExp(t,e){const i=e=j(t,e);for(;e{for(;e0&&(this.path[this.path.length-1].values=void 0);const n=this.path.length;this.siblingStacks[n]||(this.siblingStacks[n]=new Map);const s=this.siblingStacks[n],r=i?`${i}:${t}`:t,o=s.get(r)||0;let a=0;for(const t of s.values())a+=t;s.set(r,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e=0&&e>=0;){const n=t[i];if(\"deep-wildcard\"===n.type){if(i--,i<0)return!0;const n=t[i];let s=!1;for(let t=e;t>=0;t--){const r=t===this.path.length-1;if(this._matchSegment(n,this.path[t],r)){e=t-1,i--,s=!0;break}}if(!s)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(n,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if(\"*\"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&\"*\"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const n=e.counter??0;if(\"first\"===t.position&&0!==n)return!1;if(\"odd\"===t.position&&n%2!=1)return!1;if(\"even\"===t.position&&n%2!=0)return!1;if(\"nth\"===t.position&&n!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}readOnly(){return new Proxy(this,{get(t,e,i){if(L.has(e))return()=>{throw new TypeError(`Cannot call '${e}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};const n=Reflect.get(t,e,i);return\"path\"===e||\"siblingStacks\"===e?Object.freeze(Array.isArray(n)?n.map(t=>t instanceof Map?Object.freeze(new Map(t)):Object.freeze({...t})):n):\"function\"==typeof n?n.bind(t):n},set(t,e){throw new TypeError(`Cannot set property '${String(e)}' on a read-only Matcher.`)},deleteProperty(t,e){throw new TypeError(`Cannot delete property '${String(e)}' from a read-only Matcher.`)}})}}class R{constructor(t,e={}){this.pattern=t,this.separator=e.separator||\".\",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>\"deep-wildcard\"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,n=\"\";for(;i0){const i=t.substring(0,e);if(\"xmlns\"!==i)return i}}class W{constructor(t){var e;if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>rt(e,10,\"&#\")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>rt(e,16,\"&#x\")}},this.addExternalEntities=Y,this.parseXml=J,this.parseTextData=z,this.resolveNameSpace=X,this.buildAttributesMap=Z,this.isItStopNode=tt,this.replaceEntitiesValue=Q,this.readStopNodeData=nt,this.saveTextToParentTag=H,this.addChild=K,this.ignoreAttributesFn=\"function\"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new G,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodeExpressions=[];for(let t=0;t0)){o||(t=this.replaceEntitiesValue(t,e,i));const n=this.options.jPath?i.toString():i,a=this.options.tagValueProcessor(e,t,n,s,r);return null==a?t:typeof a!=typeof t||a!==t?a:this.options.trimValues||t.trim()===t?st(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function X(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),i=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=i+e[1])}return t}const q=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function Z(t,e,i){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,q),r=n.length,o={},a={};for(let t=0;t0&&\"object\"==typeof e&&e.updateCurrent&&e.updateCurrent(a);for(let t=0;t\",r,\"Closing Tag is not closed.\");let s=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=s.indexOf(\":\");-1!==t&&(s=s.substr(t+1))}s=ot(this.options.transformTagName,s,\"\",this.options).tagName,i&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher));const o=this.matcher.getCurrentTag();if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: `);o&&-1!==this.options.unpairedTags.indexOf(o)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,i=this.tagsNodeStack.pop(),n=\"\",r=e}else if(\"?\"===t[r+1]){let e=it(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(n=this.saveTextToParentTag(n,i,this.readonlyMatcher),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new $(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,this.matcher,e.tagName)),this.addChild(i,t,this.readonlyMatcher,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=et(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const s=t.substring(r+4,e-2);n=this.saveTextToParentTag(n,i,this.readonlyMatcher),i.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=s.readDocType(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=et(t,\"]]>\",r,\"CDATA is not closed.\")-2,s=t.substring(r+9,e);n=this.saveTextToParentTag(n,i,this.readonlyMatcher);let o=this.parseTextData(s,i.tagname,this.readonlyMatcher,!0,!1,!0,!0);null==o&&(o=\"\"),this.options.cdataPropName?i.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):i.add(this.options.textNodeName,o),r=e+2}else{let s=it(t,r,this.options.removeNSPrefix);if(!s){const e=t.substring(Math.max(0,r-50),Math.min(t.length,r+50));throw new Error(`readTagExp returned undefined at position ${r}. Context: \"${e}\"`)}let o=s.tagName;const a=s.rawTagName;let h=s.tagExp,l=s.attrExpPresent,p=s.closeIndex;if(({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options)),this.options.strictReservedNames&&(o===this.options.commentPropName||o===this.options.cdataPropName||o===this.options.textNodeName||o===this.options.attributesGroupName))throw new Error(`Invalid tag name: ${o}`);i&&n&&\"!xml\"!==i.tagname&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher,!1));const u=i;u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(i=this.tagsNodeStack.pop(),this.matcher.pop());let c=!1;h.length>0&&h.lastIndexOf(\"/\")===h.length-1&&(c=!0,\"/\"===o[o.length-1]?(o=o.substr(0,o.length-1),h=o):h=h.substr(0,h.length-1),l=o!==h);let d,f=null,g={};d=B(a),o!==e.tagname&&this.matcher.push(o,{},d),o!==h&&l&&(f=this.buildAttributesMap(h,this.matcher,o),f&&(g=U(f,this.options))),o!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode(this.stopNodeExpressions,this.matcher));const m=r;if(this.isCurrentNodeStopNode){let e=\"\";if(c)r=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(o))r=s.closeIndex;else{const i=this.readStopNodeData(t,a,p+1);if(!i)throw new Error(`Unexpected end of ${a}`);r=i.i,e=i.tagContent}const n=new $(o);f&&(n[\":@\"]=f),n.add(this.options.textNodeName,e),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(i,n,this.readonlyMatcher,m)}else{if(c){({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options));const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(-1!==this.options.unpairedTags.indexOf(o)){const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=s.closeIndex;continue}{const t=new $(o);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");this.tagsNodeStack.push(i),f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),i=t}}n=\"\",r=p}}else n+=t[r];return e.child};function K(t,e,i,n){this.options.captureMetaData||(n=void 0);const s=this.options.jPath?i.toString():i,r=this.options.updateTag(e.tagname,s,e[\":@\"]);!1===r||(\"string\"==typeof r?(e.tagname=r,t.addChild(e,n)):t.addChild(e,n))}function Q(t,e,i){const n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){const s=this.options.jPath?i.toString():i;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,s)))return t}if(n.tagFilter){const s=this.options.jPath?i.toString():i;if(!n.tagFilter(e,s))return t}for(const e of Object.keys(this.docTypeEntities)){const i=this.docTypeEntities[e],s=t.match(i.regx);if(s){if(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);const e=t.length;if(t=t.replace(i.regx,i.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-e,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}for(const e of Object.keys(this.lastEntities)){const i=this.lastEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}if(-1===t.indexOf(\"&\"))return t;if(this.options.htmlEntities)for(const e of Object.keys(this.htmlEntities)){const i=this.htmlEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}return t.replace(this.ampEntity.regex,this.ampEntity.val)}function H(t,e,i,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,n))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function tt(t,e){if(!t||0===t.length)return!1;for(let i=0;i\"){const s=function(t,e,i=\">\"){let n,s=\"\";for(let r=e;r\",i,`${e} is not closed`);if(t.substring(i+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(n,i),i:r};i=r}else if(\"?\"===t[i+1])i=et(t,\"?>\",i+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(i+1,3))i=et(t,\"--\\x3e\",i+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(i+1,2))i=et(t,\"]]>\",i,\"StopNode is not closed.\")-2;else{const n=it(t,i,\">\");n&&((n&&n.tagName)===e&&\"/\"!==n.tagExp[n.tagExp.length-1]&&s++,i=n.closeIndex)}}function st(t,e,i){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},k,e),!t||\"string\"!=typeof t)return t;let i=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(i))return t;if(\"0\"===t)return 0;if(e.hex&&D.test(i))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(i);if(isFinite(i)){if(i.includes(\"e\")||i.includes(\"E\"))return function(t,e,i){if(!i.eNotation)return t;const n=e.match(F);if(n){let s=n[1]||\"\";const r=-1===n[3].indexOf(\"e\")?\"E\":\"e\",o=n[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:(1!==o.length||!n[3].startsWith(`.${r}`)&&n[3][0]!==r)&&o.length>0?i.leadingZeros&&!a?(e=(n[1]||\"\")+n[3],Number(e)):t:Number(e)}return t}(t,i,e);{const s=V.exec(i);if(s){const r=s[1]||\"\",o=s[2];let a=(n=s[3])&&-1!==n.indexOf(\".\")?(\".\"===(n=n.replace(/0+$/,\"\"))?n=\"0\":\".\"===n[0]?n=\"0\"+n:\".\"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n):n;const h=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!h))return t;{const n=Number(i),s=String(n);if(0===n)return n;if(-1!==s.search(/[eE]/))return e.eNotation?n:t;if(-1!==i.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?n:t;let h=o?a:i;return o?h===s||r+h===s?n:t:h===s||h===r+s?n:t}}return t}}var n;return function(t,e,i){const n=e===1/0;switch(i.infinity.toLowerCase()){case\"null\":return null;case\"infinity\":return e;case\"string\":return n?\"Infinity\":\"-Infinity\";default:return t}}(t,Number(i),e)}(t,i)}return void 0!==t?t:\"\"}function rt(t,e,i){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):i+t+\";\"}function ot(t,e,i,n){if(t){const n=t(e);i===e&&(i=n),e=n}return{tagName:e=at(e,n),tagExp:i}}function at(t,e){if(a.includes(t))throw new Error(`[SECURITY] Invalid name: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);return o.includes(t)?e.onDangerousProperty(t):t}const ht=$.getMetaDataSymbol();function lt(t,e){if(!t||\"object\"!=typeof t)return{};if(!e)return t;const i={};for(const n in t)n.startsWith(e)?i[n.substring(e.length)]=t[n]:i[n]=t[n];return i}function pt(t,e,i,n){return ut(t,e,i,n)}function ut(t,e,i,n){let s;const r={};for(let o=0;o0&&(r[e.textNodeName]=s):void 0!==s&&(r[e.textNodeName]=s),r}function ct(t){const e=Object.keys(t);for(let t=0;t0&&(i=\"\\n\");const n=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;te.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=Tt(i,e),i}return\"\"}for(let a=0;a`,o=!1,n.pop();continue}if(l===e.commentPropName){r+=i+`\\x3c!--${h[l][0][e.textNodeName]}--\\x3e`,o=!0,n.pop();continue}if(\"?\"===l[0]){const t=wt(h[\":@\"],e,u),s=\"?xml\"===l?\"\":i;let a=h[l][0][e.textNodeName];a=0!==a.length?\" \"+a:\"\",r+=s+`<${l}${a}${t}?>`,o=!0,n.pop();continue}let c=i;\"\"!==c&&(c+=e.indentBy);const d=i+`<${l}${wt(h[\":@\"],e,u)}`;let f;f=u?bt(h[l],e):xt(h[l],e,c,n,s),-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?r+=d+\">\":r+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?r+=d+`>${f}${i}`:(r+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):r+=d+\"/>\",o=!0,n.pop()}return r}function Nt(t,e){if(!t||e.ignoreAttributes)return null;const i={};let n=!1;for(let s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s.startsWith(e.attributeNamePrefix)?s.substr(e.attributeNamePrefix.length):s]=t[s],n=!0);return n?i:null}function bt(t,e){if(!Array.isArray(t))return null!=t?t.toString():\"\";let i=\"\";for(let n=0;n${n}`:i+=`<${r}${t}/>`}}}return i}function Et(t,e){let i=\"\";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let s=t[n];!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}=\"${s}\"`}return i}function yt(t){const e=Object.keys(t);for(let i=0;i0&&e.processEntities)for(let i=0;i\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0};function St(t){if(this.options=Object.assign({},Pt,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Ct),this.processTextOrObjNode=At,this.options.format?(this.indentate=Ot,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function At(t,e,i,n){const s=this.extractAttributes(t);if(n.push(e,s),this.checkStopNode(n)){const s=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return n.pop(),this.buildObjectNode(s,e,r,i)}const r=this.j2x(t,i+1,n);return n.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i,n):this.buildObjectNode(r.val,e,r.attrStr,i)}function Ot(t){return this.options.indentBy.repeat(t)}function Ct(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}St.prototype.build=function(t){if(this.options.preserveOrder)return mt(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new G;return this.j2x(t,0,e).val}},St.prototype.j2x=function(t,e,i){let n=\"\",s=\"\";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");const r=this.options.jPath?i.toString():i,o=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(s+=\"\");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?s+=\"\":\"?\"===a[0]?s+=this.indentate(e)+\"<\"+a+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+a+\"/\"+this.tagEndChar;else if(t[a]instanceof Date)s+=this.buildTextValNode(t[a],a,\"\",e,i);else if(\"object\"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,r))n+=this.buildAttrPairStr(h,\"\"+t[a],o);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,\"\"+t[a]);s+=this.replaceEntitiesValue(e)}else{i.push(a);const n=this.checkStopNode(i);if(i.pop(),n){const i=\"\"+t[a];s+=\"\"===i?this.indentate(e)+\"<\"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+\"<\"+a+\">\"+i+\"\"+t+\"${t}`;else if(\"object\"==typeof t&&null!==t){const n=this.buildRawContent(t),s=this.buildAttributesForStopNode(t);e+=\"\"===n?`<${i}${s}/>`:`<${i}${s}>${n}`}}else if(\"object\"==typeof n&&null!==n){const t=this.buildRawContent(n),s=this.buildAttributesForStopNode(n);e+=\"\"===t?`<${i}${s}/>`:`<${i}${s}>${t}`}else e+=`<${i}>${n}`}return e},St.prototype.buildAttributesForStopNode=function(t){if(!t||\"object\"!=typeof t)return\"\";let e=\"\";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const n=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,s=i[t];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const n=this.isAttribute(i);if(n){const s=t[i];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}return e},St.prototype.buildObjectNode=function(t,e,i,n){if(\"\"===t)return\"?\"===e[0]?this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar:this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar;{let s=\"\"+t+s}},St.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+\"<\"+e+i+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>$t,XMLParser:()=>gt,XMLValidator:()=>It});const i=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",n=new RegExp(\"^[\"+i+\"][\"+i+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const i=[];let n=e.exec(t);for(;n;){const s=[];s.startIndex=e.lastIndex-n[0].length;const r=n.length;for(let t=0;t\"!==t[r]&&\" \"!==t[r]&&\"\\t\"!==t[r]&&\"\\n\"!==t[r]&&\"\\r\"!==t[r];r++)h+=t[r];if(h=h.trim(),\"/\"===h[h.length-1]&&(h=h.substring(0,h.length-1),r--),!y(h)){let e;return e=0===h.trim().length?\"Invalid space after '<'.\":\"Tag '\"+h+\"' is an invalid name.\",b(\"InvalidTag\",e,w(t,r))}const l=g(t,r);if(!1===l)return b(\"InvalidAttr\",\"Attributes for '\"+h+\"' have open quote.\",w(t,r));let d=l.value;if(r=l.index,\"/\"===d[d.length-1]){const i=r-d.length;d=d.substring(0,d.length-1);const s=x(d,e);if(!0!==s)return b(s.err.code,s.err.msg,w(t,i+s.err.line));n=!0}else if(a){if(!l.tagClosed)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' doesn't have proper closing.\",w(t,r));if(d.trim().length>0)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' can't have attributes or invalid starting.\",w(t,o));if(0===i.length)return b(\"InvalidTag\",\"Closing tag '\"+h+\"' has not been opened.\",w(t,o));{const e=i.pop();if(h!==e.tagName){let i=w(t,e.tagStartPos);return b(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+i.line+\", col \"+i.col+\") instead of closing tag '\"+h+\"'.\",w(t,o))}0==i.length&&(s=!0)}}else{const a=x(d,e);if(!0!==a)return b(a.err.code,a.err.msg,w(t,r-d.length+a.err.line));if(!0===s)return b(\"InvalidXml\",\"Multiple possible root nodes found.\",w(t,r));-1!==e.unpairedTags.indexOf(h)||i.push({tagName:h,tagStartPos:o}),n=!0}for(r++;r0)||b(\"InvalidXml\",\"Invalid '\"+JSON.stringify(i.map(t=>t.tagName),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):b(\"InvalidXml\",\"Start tag expected.\",1)}function p(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const i=e;for(;e5&&\"xml\"===n)return b(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",w(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}continue}return e}function c(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let i=1;for(e+=8;e\"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function g(t,e){let i=\"\",n=\"\",s=!1;for(;e\"===t[e]&&\"\"===n){s=!0;break}i+=t[e]}return\"\"===n&&{value:i,index:e,tagClosed:s}}const m=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function x(t,e){const i=s(t,m),n={};for(let t=0;to.includes(t)?\"__\"+t:t,P={preserveOrder:!1,attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:T};function S(t,e){if(\"string\"!=typeof t)return;const i=t.toLowerCase();if(o.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);if(a.some(t=>i===t.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`)}function A(t){return\"boolean\"==typeof t?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:\"object\"==typeof t&&null!==t?{enabled:!1!==t.enabled,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??10),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1e3),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??100),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:A(!0)}const O=function(t){const e=Object.assign({},P,t),i=[{value:e.attributeNamePrefix,name:\"attributeNamePrefix\"},{value:e.attributesGroupName,name:\"attributesGroupName\"},{value:e.textNodeName,name:\"textNodeName\"},{value:e.cdataPropName,name:\"cdataPropName\"},{value:e.commentPropName,name:\"commentPropName\"}];for(const{value:t,name:e}of i)t&&S(t,e);return null===e.onDangerousProperty&&(e.onDangerousProperty=T),e.processEntities=A(e.processEntities),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),e};let C;C=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class ${constructor(t){this.tagname=t,this.child=[],this[\":@\"]=Object.create(null)}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][C]={startIndex:e})}static getMetaDataSymbol(){return C}}class I{constructor(t){this.suppressValidationErr=!t,this.options=t}readDocType(t,e){const i=Object.create(null);let n=0;if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let s=1,r=!1,o=!1,a=\"\";for(;e\"===t[e]){if(o?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(o=!1,s--):s--,0===s)break}else\"[\"===t[e]?r=!0:a+=t[e];else{if(r&&M(t,\"!ENTITY\",e)){let s,r;if(e+=7,[s,r,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===r.indexOf(\"&\")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&n>=this.options.maxEntityCount)throw new Error(`Entity count (${n+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);const t=s.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");i[s]={regx:RegExp(`&${t};`,\"g\"),val:r},n++}}else if(r&&M(t,\"!ELEMENT\",e)){e+=8;const{index:i}=this.readElementExp(t,e+1);e=i}else if(r&&M(t,\"!ATTLIST\",e))e+=8;else if(r&&M(t,\"!NOTATION\",e)){e+=9;const{index:i}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=i}else{if(!M(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");o=!0}s++,a=\"\"}if(0!==s)throw new Error(\"Unclosed DOCTYPE\")}return{entities:i,i:e}}readEntityExp(t,e){const i=e=j(t,e);for(;ethis.options.maxEntitySize)throw new Error(`Entity \"${n}\" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[n,s,--e]}readNotationExp(t,e){const i=e=j(t,e);for(;e{for(;e0&&(this.path[this.path.length-1].values=void 0);const n=this.path.length;this.siblingStacks[n]||(this.siblingStacks[n]=new Map);const s=this.siblingStacks[n],r=i?`${i}:${t}`:t,o=s.get(r)||0;let a=0;for(const t of s.values())a+=t;s.set(r,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e=0&&e>=0;){const n=t[i];if(\"deep-wildcard\"===n.type){if(i--,i<0)return!0;const n=t[i];let s=!1;for(let t=e;t>=0;t--){const r=t===this.path.length-1;if(this._matchSegment(n,this.path[t],r)){e=t-1,i--,s=!0;break}}if(!s)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(n,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if(\"*\"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&\"*\"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const n=e.counter??0;if(\"first\"===t.position&&0!==n)return!1;if(\"odd\"===t.position&&n%2!=1)return!1;if(\"even\"===t.position&&n%2!=0)return!1;if(\"nth\"===t.position&&n!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}readOnly(){return new Proxy(this,{get(t,e,i){if(L.has(e))return()=>{throw new TypeError(`Cannot call '${e}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};const n=Reflect.get(t,e,i);return\"path\"===e||\"siblingStacks\"===e?Object.freeze(Array.isArray(n)?n.map(t=>t instanceof Map?Object.freeze(new Map(t)):Object.freeze({...t})):n):\"function\"==typeof n?n.bind(t):n},set(t,e){throw new TypeError(`Cannot set property '${String(e)}' on a read-only Matcher.`)},deleteProperty(t,e){throw new TypeError(`Cannot delete property '${String(e)}' from a read-only Matcher.`)}})}}class R{constructor(t,e={}){this.pattern=t,this.separator=e.separator||\".\",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>\"deep-wildcard\"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,n=\"\";for(;i0){const i=t.substring(0,e);if(\"xmlns\"!==i)return i}}class W{constructor(t){var e;if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>rt(e,10,\"&#\")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>rt(e,16,\"&#x\")}},this.addExternalEntities=Y,this.parseXml=J,this.parseTextData=z,this.resolveNameSpace=X,this.buildAttributesMap=Z,this.isItStopNode=tt,this.replaceEntitiesValue=Q,this.readStopNodeData=nt,this.saveTextToParentTag=H,this.addChild=K,this.ignoreAttributesFn=\"function\"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new G,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodeExpressions=[];for(let t=0;t0)){o||(t=this.replaceEntitiesValue(t,e,i));const n=this.options.jPath?i.toString():i,a=this.options.tagValueProcessor(e,t,n,s,r);return null==a?t:typeof a!=typeof t||a!==t?a:this.options.trimValues||t.trim()===t?st(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function X(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),i=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=i+e[1])}return t}const q=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function Z(t,e,i){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,q),r=n.length,o={},a={};for(let t=0;t0&&\"object\"==typeof e&&e.updateCurrent&&e.updateCurrent(a);for(let t=0;t\",r,\"Closing Tag is not closed.\");let s=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=s.indexOf(\":\");-1!==t&&(s=s.substr(t+1))}s=ot(this.options.transformTagName,s,\"\",this.options).tagName,i&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher));const o=this.matcher.getCurrentTag();if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: `);o&&-1!==this.options.unpairedTags.indexOf(o)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,i=this.tagsNodeStack.pop(),n=\"\",r=e}else if(\"?\"===t[r+1]){let e=it(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(n=this.saveTextToParentTag(n,i,this.readonlyMatcher),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new $(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,this.matcher,e.tagName)),this.addChild(i,t,this.readonlyMatcher,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=et(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const s=t.substring(r+4,e-2);n=this.saveTextToParentTag(n,i,this.readonlyMatcher),i.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=s.readDocType(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=et(t,\"]]>\",r,\"CDATA is not closed.\")-2,s=t.substring(r+9,e);n=this.saveTextToParentTag(n,i,this.readonlyMatcher);let o=this.parseTextData(s,i.tagname,this.readonlyMatcher,!0,!1,!0,!0);null==o&&(o=\"\"),this.options.cdataPropName?i.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):i.add(this.options.textNodeName,o),r=e+2}else{let s=it(t,r,this.options.removeNSPrefix);if(!s){const e=t.substring(Math.max(0,r-50),Math.min(t.length,r+50));throw new Error(`readTagExp returned undefined at position ${r}. Context: \"${e}\"`)}let o=s.tagName;const a=s.rawTagName;let h=s.tagExp,l=s.attrExpPresent,p=s.closeIndex;if(({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options)),this.options.strictReservedNames&&(o===this.options.commentPropName||o===this.options.cdataPropName||o===this.options.textNodeName||o===this.options.attributesGroupName))throw new Error(`Invalid tag name: ${o}`);i&&n&&\"!xml\"!==i.tagname&&(n=this.saveTextToParentTag(n,i,this.readonlyMatcher,!1));const u=i;u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(i=this.tagsNodeStack.pop(),this.matcher.pop());let c=!1;h.length>0&&h.lastIndexOf(\"/\")===h.length-1&&(c=!0,\"/\"===o[o.length-1]?(o=o.substr(0,o.length-1),h=o):h=h.substr(0,h.length-1),l=o!==h);let d,f=null,g={};d=B(a),o!==e.tagname&&this.matcher.push(o,{},d),o!==h&&l&&(f=this.buildAttributesMap(h,this.matcher,o),f&&(g=U(f,this.options))),o!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode(this.stopNodeExpressions,this.matcher));const m=r;if(this.isCurrentNodeStopNode){let e=\"\";if(c)r=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(o))r=s.closeIndex;else{const i=this.readStopNodeData(t,a,p+1);if(!i)throw new Error(`Unexpected end of ${a}`);r=i.i,e=i.tagContent}const n=new $(o);f&&(n[\":@\"]=f),n.add(this.options.textNodeName,e),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(i,n,this.readonlyMatcher,m)}else{if(c){({tagName:o,tagExp:h}=ot(this.options.transformTagName,o,h,this.options));const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(-1!==this.options.unpairedTags.indexOf(o)){const t=new $(o);f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=s.closeIndex;continue}{const t=new $(o);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");this.tagsNodeStack.push(i),f&&(t[\":@\"]=f),this.addChild(i,t,this.readonlyMatcher,m),i=t}}n=\"\",r=p}}else n+=t[r];return e.child};function K(t,e,i,n){this.options.captureMetaData||(n=void 0);const s=this.options.jPath?i.toString():i,r=this.options.updateTag(e.tagname,s,e[\":@\"]);!1===r||(\"string\"==typeof r?(e.tagname=r,t.addChild(e,n)):t.addChild(e,n))}function Q(t,e,i){const n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){const s=this.options.jPath?i.toString():i;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,s)))return t}if(n.tagFilter){const s=this.options.jPath?i.toString():i;if(!n.tagFilter(e,s))return t}for(const e of Object.keys(this.docTypeEntities)){const i=this.docTypeEntities[e],s=t.match(i.regx);if(s){if(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);const e=t.length;if(t=t.replace(i.regx,i.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-e,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}for(const e of Object.keys(this.lastEntities)){const i=this.lastEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}if(-1===t.indexOf(\"&\"))return t;if(this.options.htmlEntities)for(const e of Object.keys(this.htmlEntities)){const i=this.htmlEntities[e],s=t.match(i.regex);if(s&&(this.entityExpansionCount+=s.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(i.regex,i.val)}return t.replace(this.ampEntity.regex,this.ampEntity.val)}function H(t,e,i,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,n))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function tt(t,e){if(!t||0===t.length)return!1;for(let i=0;i\"){const s=function(t,e,i=\">\"){let n,s=\"\";for(let r=e;r\",i,`${e} is not closed`);if(t.substring(i+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(n,i),i:r};i=r}else if(\"?\"===t[i+1])i=et(t,\"?>\",i+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(i+1,3))i=et(t,\"--\\x3e\",i+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(i+1,2))i=et(t,\"]]>\",i,\"StopNode is not closed.\")-2;else{const n=it(t,i,\">\");n&&((n&&n.tagName)===e&&\"/\"!==n.tagExp[n.tagExp.length-1]&&s++,i=n.closeIndex)}}function st(t,e,i){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},k,e),!t||\"string\"!=typeof t)return t;let i=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(i))return t;if(\"0\"===t)return 0;if(e.hex&&D.test(i))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(i);if(isFinite(i)){if(i.includes(\"e\")||i.includes(\"E\"))return function(t,e,i){if(!i.eNotation)return t;const n=e.match(F);if(n){let s=n[1]||\"\";const r=-1===n[3].indexOf(\"e\")?\"E\":\"e\",o=n[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:(1!==o.length||!n[3].startsWith(`.${r}`)&&n[3][0]!==r)&&o.length>0?i.leadingZeros&&!a?(e=(n[1]||\"\")+n[3],Number(e)):t:Number(e)}return t}(t,i,e);{const s=V.exec(i);if(s){const r=s[1]||\"\",o=s[2];let a=(n=s[3])&&-1!==n.indexOf(\".\")?(\".\"===(n=n.replace(/0+$/,\"\"))?n=\"0\":\".\"===n[0]?n=\"0\"+n:\".\"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n):n;const h=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!h))return t;{const n=Number(i),s=String(n);if(0===n)return n;if(-1!==s.search(/[eE]/))return e.eNotation?n:t;if(-1!==i.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?n:t;let h=o?a:i;return o?h===s||r+h===s?n:t:h===s||h===r+s?n:t}}return t}}var n;return function(t,e,i){const n=e===1/0;switch(i.infinity.toLowerCase()){case\"null\":return null;case\"infinity\":return e;case\"string\":return n?\"Infinity\":\"-Infinity\";default:return t}}(t,Number(i),e)}(t,i)}return void 0!==t?t:\"\"}function rt(t,e,i){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):i+t+\";\"}function ot(t,e,i,n){if(t){const n=t(e);i===e&&(i=n),e=n}return{tagName:e=at(e,n),tagExp:i}}function at(t,e){if(a.includes(t))throw new Error(`[SECURITY] Invalid name: \"${t}\" is a reserved JavaScript keyword that could cause prototype pollution`);return o.includes(t)?e.onDangerousProperty(t):t}const ht=$.getMetaDataSymbol();function lt(t,e){if(!t||\"object\"!=typeof t)return{};if(!e)return t;const i={};for(const n in t)n.startsWith(e)?i[n.substring(e.length)]=t[n]:i[n]=t[n];return i}function pt(t,e,i,n){return ut(t,e,i,n)}function ut(t,e,i,n){let s;const r={};for(let o=0;o0&&(r[e.textNodeName]=s):void 0!==s&&(r[e.textNodeName]=s),r}function ct(t){const e=Object.keys(t);for(let t=0;t0&&(i=\"\\n\");const n=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;te.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=Tt(i,e),i}return\"\"}for(let a=0;a`,o=!1,n.pop();continue}if(l===e.commentPropName){r+=i+`\\x3c!--${h[l][0][e.textNodeName]}--\\x3e`,o=!0,n.pop();continue}if(\"?\"===l[0]){const t=wt(h[\":@\"],e,u),s=\"?xml\"===l?\"\":i;let a=h[l][0][e.textNodeName];a=0!==a.length?\" \"+a:\"\",r+=s+`<${l}${a}${t}?>`,o=!0,n.pop();continue}let c=i;\"\"!==c&&(c+=e.indentBy);const d=i+`<${l}${wt(h[\":@\"],e,u)}`;let f;f=u?bt(h[l],e):xt(h[l],e,c,n,s),-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?r+=d+\">\":r+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?r+=d+`>${f}${i}`:(r+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):r+=d+\"/>\",o=!0,n.pop()}return r}function Nt(t,e){if(!t||e.ignoreAttributes)return null;const i={};let n=!1;for(let s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s.startsWith(e.attributeNamePrefix)?s.substr(e.attributeNamePrefix.length):s]=t[s],n=!0);return n?i:null}function bt(t,e){if(!Array.isArray(t))return null!=t?t.toString():\"\";let i=\"\";for(let n=0;n${n}`:i+=`<${r}${t}/>`}}}return i}function Et(t,e){let i=\"\";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let s=t[n];!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}=\"${s}\"`}return i}function yt(t){const e=Object.keys(t);for(let i=0;i0&&e.processEntities)for(let i=0;i\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0};function St(t){if(this.options=Object.assign({},Pt,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>\"string\"==typeof t&&t.startsWith(\"*.\")?\"..\"+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t{for(const i of e){if(\"string\"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Ct),this.processTextOrObjNode=At,this.options.format?(this.indentate=Ot,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function At(t,e,i,n){const s=this.extractAttributes(t);if(n.push(e,s),this.checkStopNode(n)){const s=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return n.pop(),this.buildObjectNode(s,e,r,i)}const r=this.j2x(t,i+1,n);return n.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i,n):this.buildObjectNode(r.val,e,r.attrStr,i)}function Ot(t){return this.options.indentBy.repeat(t)}function Ct(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}St.prototype.build=function(t){if(this.options.preserveOrder)return mt(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new G;return this.j2x(t,0,e).val}},St.prototype.j2x=function(t,e,i){let n=\"\",s=\"\";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error(\"Maximum nested tags exceeded\");const r=this.options.jPath?i.toString():i,o=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(s+=\"\");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?s+=\"\":\"?\"===a[0]?s+=this.indentate(e)+\"<\"+a+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+a+\"/\"+this.tagEndChar;else if(t[a]instanceof Date)s+=this.buildTextValNode(t[a],a,\"\",e,i);else if(\"object\"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,r))n+=this.buildAttrPairStr(h,\"\"+t[a],o);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,\"\"+t[a]);s+=this.replaceEntitiesValue(e)}else{i.push(a);const n=this.checkStopNode(i);if(i.pop(),n){const i=\"\"+t[a];s+=\"\"===i?this.indentate(e)+\"<\"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+\"<\"+a+\">\"+i+\"\"+t+\"${t}`;else if(\"object\"==typeof t&&null!==t){const n=this.buildRawContent(t),s=this.buildAttributesForStopNode(t);e+=\"\"===n?`<${i}${s}/>`:`<${i}${s}>${n}`}}else if(\"object\"==typeof n&&null!==n){const t=this.buildRawContent(n),s=this.buildAttributesForStopNode(n);e+=\"\"===t?`<${i}${s}/>`:`<${i}${s}>${t}`}else e+=`<${i}>${n}`}return e},St.prototype.buildAttributesForStopNode=function(t){if(!t||\"object\"!=typeof t)return\"\";let e=\"\";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const n=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,s=i[t];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const n=this.isAttribute(i);if(n){const s=t[i];!0===s&&this.options.suppressBooleanAttributes?e+=\" \"+n:e+=\" \"+n+'=\"'+s+'\"'}}return e},St.prototype.buildObjectNode=function(t,e,i,n){if(\"\"===t)return\"?\"===e[0]?this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar:this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar;{let s=\"\"+t+s}},St.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(n)+\"<\"+e+i+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(n)+\"<\"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+\"<\"+e+i+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e{\"use strict\";var t={d:(e,n)=>{for(var i in n)t.o(n,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:n[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},e={};t.r(e),t.d(e,{XMLBuilder:()=>ft,XMLParser:()=>st,XMLValidator:()=>mt});const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"^[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\");function s(t,e){const n=[];let i=e.exec(t);for(;i;){const s=[];s.startIndex=e.lastIndex-i[0].length;const r=i.length;for(let t=0;t\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)f+=t[o];if(f=f.trim(),\"/\"===f[f.length-1]&&(f=f.substring(0,f.length-1),o--),!r(f)){let e;return e=0===f.trim().length?\"Invalid space after '<'.\":\"Tag '\"+f+\"' is an invalid name.\",x(\"InvalidTag\",e,N(t,o))}const p=c(t,o);if(!1===p)return x(\"InvalidAttr\",\"Attributes for '\"+f+\"' have open quote.\",N(t,o));let b=p.value;if(o=p.index,\"/\"===b[b.length-1]){const n=o-b.length;b=b.substring(0,b.length-1);const s=g(b,e);if(!0!==s)return x(s.err.code,s.err.msg,N(t,n+s.err.line));i=!0}else if(d){if(!p.tagClosed)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' doesn't have proper closing.\",N(t,o));if(b.trim().length>0)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' can't have attributes or invalid starting.\",N(t,a));if(0===n.length)return x(\"InvalidTag\",\"Closing tag '\"+f+\"' has not been opened.\",N(t,a));{const e=n.pop();if(f!==e.tagName){let n=N(t,e.tagStartPos);return x(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+f+\"'.\",N(t,a))}0==n.length&&(s=!0)}}else{const r=g(b,e);if(!0!==r)return x(r.err.code,r.err.msg,N(t,o-b.length+r.err.line));if(!0===s)return x(\"InvalidXml\",\"Multiple possible root nodes found.\",N(t,o));-1!==e.unpairedTags.indexOf(f)||n.push({tagName:f,tagStartPos:a}),i=!0}for(o++;o0)||x(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):x(\"InvalidXml\",\"Start tag expected.\",1)}function l(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function u(t,e){const n=e;for(;e5&&\"xml\"===i)return x(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",N(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function h(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}const d='\"',f=\"'\";function c(t,e){let n=\"\",i=\"\",s=!1;for(;e\"===t[e]&&\"\"===i){s=!0;break}n+=t[e]}return\"\"===i&&{value:n,index:e,tagClosed:s}}const p=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function g(t,e){const n=s(t,p),i={};for(let t=0;t!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t},captureMetaData:!1};let y;y=\"function\"!=typeof Symbol?\"@@xmlMetadata\":Symbol(\"XML Node Metadata\");class T{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t,e){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][y]={startIndex:e})}static getMetaDataSymbol(){return y}}function w(t,e){const n={};if(\"O\"!==t[e+3]||\"C\"!==t[e+4]||\"T\"!==t[e+5]||\"Y\"!==t[e+6]||\"P\"!==t[e+7]||\"E\"!==t[e+8])throw new Error(\"Invalid Tag instead of DOCTYPE\");{e+=9;let i=1,s=!1,r=!1,o=\"\";for(;e\"===t[e]){if(r?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(r=!1,i--):i--,0===i)break}else\"[\"===t[e]?s=!0:o+=t[e];else{if(s&&C(t,\"!ENTITY\",e)){let i,s;e+=7,[i,s,e]=O(t,e+1),-1===s.indexOf(\"&\")&&(n[i]={regx:RegExp(`&${i};`,\"g\"),val:s})}else if(s&&C(t,\"!ELEMENT\",e)){e+=8;const{index:n}=S(t,e+1);e=n}else if(s&&C(t,\"!ATTLIST\",e))e+=8;else if(s&&C(t,\"!NOTATION\",e)){e+=9;const{index:n}=A(t,e+1);e=n}else{if(!C(t,\"!--\",e))throw new Error(\"Invalid DOCTYPE\");r=!0}i++,o=\"\"}if(0!==i)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}const P=(t,e)=>{for(;e{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}class k{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCodePoint(Number.parseInt(e,16))}},this.addExternalEntities=F,this.parseXml=X,this.parseTextData=L,this.resolveNameSpace=B,this.buildAttributesMap=G,this.isItStopNode=Z,this.replaceEntitiesValue=R,this.readStopNodeData=J,this.saveTextToParentTag=q,this.addChild=Y,this.ignoreAttributesFn=_(this.options.ignoreAttributes)}}function F(t){const e=Object.keys(t);for(let n=0;n0)){o||(t=this.replaceEntitiesValue(t));const i=this.options.tagValueProcessor(e,t,n,s,r);return null==i?t:typeof i!=typeof t||i!==t?i:this.options.trimValues||t.trim()===t?H(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function B(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const U=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function G(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=s(t,U),i=n.length,r={};for(let t=0;t\",r,\"Closing Tag is not closed.\");let o=t.substring(r+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(i=this.saveTextToParentTag(i,n,s));const a=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;a&&-1!==this.options.unpairedTags.indexOf(a)?(l=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):l=s.lastIndexOf(\".\"),s=s.substring(0,l),n=this.tagsNodeStack.pop(),i=\"\",r=e}else if(\"?\"===t[r+1]){let e=z(t,r,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(i=this.saveTextToParentTag(i,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new T(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s,r)}r=e.closeIndex+1}else if(\"!--\"===t.substr(r+1,3)){const e=W(t,\"--\\x3e\",r+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(r+4,e-2);i=this.saveTextToParentTag(i,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}r=e}else if(\"!D\"===t.substr(r+1,2)){const e=w(t,r);this.docTypeEntities=e.entities,r=e.i}else if(\"![\"===t.substr(r+1,2)){const e=W(t,\"]]>\",r,\"CDATA is not closed.\")-2,o=t.substring(r+9,e);i=this.saveTextToParentTag(i,n,s);let a=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==a&&(a=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,a),r=e+2}else{let o=z(t,r,this.options.removeNSPrefix),a=o.tagName;const l=o.rawTagName;let u=o.tagExp,h=o.attrExpPresent,d=o.closeIndex;this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&i&&\"!xml\"!==n.tagname&&(i=this.saveTextToParentTag(i,n,s,!1));const f=n;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),a!==e.tagname&&(s+=s?\".\"+a:a);const c=r;if(this.isItStopNode(this.options.stopNodes,s,a)){let e=\"\";if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1)\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),r=o.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(a))r=o.closeIndex;else{const n=this.readStopNodeData(t,l,d+1);if(!n)throw new Error(`Unexpected end of ${l}`);r=n.i,e=n.tagContent}const i=new T(a);a!==u&&h&&(i[\":@\"]=this.buildAttributesMap(u,s,a)),e&&(e=this.parseTextData(e,a,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),i.add(this.options.textNodeName,e),this.addChild(n,i,s,c)}else{if(u.length>0&&u.lastIndexOf(\"/\")===u.length-1){\"/\"===a[a.length-1]?(a=a.substr(0,a.length-1),s=s.substr(0,s.length-1),u=a):u=u.substr(0,u.length-1),this.options.transformTagName&&(a=this.options.transformTagName(a));const t=new T(a);a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new T(a);this.tagsNodeStack.push(n),a!==u&&h&&(t[\":@\"]=this.buildAttributesMap(u,s,a)),this.addChild(n,t,s,c),n=t}i=\"\",r=d}}else i+=t[r];return e.child};function Y(t,e,n,i){this.options.captureMetaData||(i=void 0);const s=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===s||(\"string\"==typeof s?(e.tagname=s,t.addChild(e,i)):t.addChild(e,i))}const R=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function q(t,e,n,i){return t&&(void 0===i&&(i=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,i))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function Z(t,e,n){const i=\"*.\"+n;for(const n in t){const s=t[n];if(i===s||e===s)return!0}return!1}function W(t,e,n,i){const s=t.indexOf(e,n);if(-1===s)throw new Error(i);return s+e.length-1}function z(t,e,n,i=\">\"){const s=function(t,e,n=\">\"){let i,s=\"\";for(let r=e;r\",n,`${e} is not closed`);if(t.substring(n+2,r).trim()===e&&(s--,0===s))return{tagContent:t.substring(i,n),i:r};n=r}else if(\"?\"===t[n+1])n=W(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=W(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=W(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const i=z(t,n,\">\");i&&((i&&i.tagName)===e&&\"/\"!==i.tagExp[i.tagExp.length-1]&&s++,n=i.closeIndex)}}function H(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&function(t,e={}){if(e=Object.assign({},V,e),!t||\"string\"!=typeof t)return t;let n=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(n))return t;if(\"0\"===t)return 0;if(e.hex&&j.test(n))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")}(n);if(-1!==n.search(/.+[eE].+/))return function(t,e,n){if(!n.eNotation)return t;const i=e.match(M);if(i){let s=i[1]||\"\";const r=-1===i[3].indexOf(\"e\")?\"E\":\"e\",o=i[2],a=s?t[o.length+1]===r:t[o.length]===r;return o.length>1&&a?t:1!==o.length||!i[3].startsWith(`.${r}`)&&i[3][0]!==r?n.leadingZeros&&!a?(e=(i[1]||\"\")+i[3],Number(e)):t:Number(e)}return t}(t,n,e);{const s=D.exec(n);if(s){const r=s[1]||\"\",o=s[2];let a=(i=s[3])&&-1!==i.indexOf(\".\")?(\".\"===(i=i.replace(/0+$/,\"\"))?i=\"0\":\".\"===i[0]?i=\"0\"+i:\".\"===i[i.length-1]&&(i=i.substring(0,i.length-1)),i):i;const l=r?\".\"===t[o.length+1]:\".\"===t[o.length];if(!e.leadingZeros&&(o.length>1||1===o.length&&!l))return t;{const i=Number(n),s=String(i);if(0===i||-0===i)return i;if(-1!==s.search(/[eE]/))return e.eNotation?i:t;if(-1!==n.indexOf(\".\"))return\"0\"===s||s===a||s===`${r}${a}`?i:t;let l=o?a:n;return o?l===s||r+l===s?i:t:l===s||l===r+s?i:t}}return t}var i}(t,n)}return void 0!==t?t:\"\"}const K=T.getMetaDataSymbol();function Q(t,e){return tt(t,e)}function tt(t,e,n){let i;const s={};for(let r=0;r0&&(s[e.textNodeName]=i):void 0!==i&&(s[e.textNodeName]=i),s}function et(t){const e=Object.keys(t);for(let t=0;t0&&(n=\"\\n\"),ot(t,e,\"\",n)}function ot(t,e,n,i){let s=\"\",r=!1;for(let o=0;o`,r=!1;continue}if(l===e.commentPropName){s+=i+`\\x3c!--${a[l][0][e.textNodeName]}--\\x3e`,r=!0;continue}if(\"?\"===l[0]){const t=lt(a[\":@\"],e),n=\"?xml\"===l?\"\":i;let o=a[l][0][e.textNodeName];o=0!==o.length?\" \"+o:\"\",s+=n+`<${l}${o}${t}?>`,r=!0;continue}let h=i;\"\"!==h&&(h+=e.indentBy);const d=i+`<${l}${lt(a[\":@\"],e)}`,f=ot(a[l],e,u,h);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?s+=d+\">\":s+=d+\"/>\":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(\">\")?s+=d+`>${f}${i}`:(s+=d+\">\",f&&\"\"!==i&&(f.includes(\"/>\")||f.includes(\"`):s+=d+\"/>\",r=!0}return s}function at(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ft(t){this.options=Object.assign({},dt,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=_(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=gt),this.processTextOrObjNode=ct,this.options.format?(this.indentate=pt,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function ct(t,e,n,i){const s=this.j2x(t,n+1,i.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,s.attrStr,n):this.buildObjectNode(s.val,e,s.attrStr,n)}function pt(t){return this.options.indentBy.repeat(t)}function gt(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}ft.prototype.build=function(t){return this.options.preserveOrder?rt(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},ft.prototype.j2x=function(t,e,n){let i=\"\",s=\"\";const r=n.join(\".\");for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o))if(void 0===t[o])this.isAttribute(o)&&(s+=\"\");else if(null===t[o])this.isAttribute(o)||o===this.options.cdataPropName?s+=\"\":\"?\"===o[0]?s+=this.indentate(e)+\"<\"+o+\"?\"+this.tagEndChar:s+=this.indentate(e)+\"<\"+o+\"/\"+this.tagEndChar;else if(t[o]instanceof Date)s+=this.buildTextValNode(t[o],o,\"\",e);else if(\"object\"!=typeof t[o]){const n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,r))i+=this.buildAttrPairStr(n,\"\"+t[o]);else if(!n)if(o===this.options.textNodeName){let e=this.options.tagValueProcessor(o,\"\"+t[o]);s+=this.replaceEntitiesValue(e)}else s+=this.buildTextValNode(t[o],o,\"\",e)}else if(Array.isArray(t[o])){const i=t[o].length;let r=\"\",a=\"\";for(let l=0;l\"+t+s}},ft.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(i)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(i)+\"<\"+e+n+\"?\"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),\"\"===s?this.indentate(i)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(i)+\"<\"+e+n+\">\"+s+\"0&&this.options.processEntities)for(let e=0;e>> 8;\n  }\n  return crc ^ -1;\n}\nfunction crc32() {\n  return bufferizeInt(_crc32.apply(null, arguments));\n}\ncrc32.signed = function() {\n  return _crc32.apply(null, arguments);\n};\ncrc32.unsigned = function() {\n  return _crc32.apply(null, arguments) >>> 0;\n};\nvar bufferCrc32 = crc32;\n\nconst index = /*@__PURE__*/getDefaultExportFromCjs(bufferCrc32);\n\nmodule.exports = index;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t792: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(51188);\n",""],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/stage-processor.ts b/src/stage-processor.ts
index 0ba0e35..199b327 100644
--- a/src/stage-processor.ts
+++ b/src/stage-processor.ts
@@ -343,9 +343,13 @@ export class AssemblyProcessor {
   }
 
   private getEmoji(changes: ChangeDetails): string {
-    if (changes.destructiveChanges.length || changes.removedResources) {
+    // Only flag the stack with :x: for destructive changes that survived
+    // allowedDestroyTypes filtering. Removals of allowed types (e.g. the
+    // AWS::ApiGateway::Deployment roll CDK performs on every API change)
+    // are routine churn and render as :yellow_circle: like other updates.
+    if (changes.destructiveChanges.length) {
       return ':x:';
-    } else if (changes.updatedResources) {
+    } else if (changes.updatedResources || changes.removedResources) {
       return ':yellow_circle:';
     } else if (changes.createdResources) {
       return ':sparkle:';
diff --git a/test/stage-processor.test.ts b/test/stage-processor.test.ts
index f408846..ee9ec8b 100644
--- a/test/stage-processor.test.ts
+++ b/test/stage-processor.test.ts
@@ -211,6 +211,86 @@ describe('StageProcessor', () => {
     expect(p.SomeStage.destructiveChanges).toEqual(0);
   });
 
+  test('removal of an allowed destroy type renders yellow, not x', async () => {
+    // "deployed" template has an extra queue that the assembly no longer has
+    mockOutDir['SomeStage-test-stack.template.json'] = JSON.stringify({
+      Resources: {
+        MyRole: {
+          Type: 'AWS::IAM::Role',
+          Properties: {
+            RoleName: 'MyCustomName',
+          },
+        },
+        MyQueue: {
+          Type: 'AWS::SQS::Queue',
+        },
+      },
+    });
+    mock({
+      'cdk.out': mockOutDir,
+      node_modules: mock.load(path.join(__dirname, '..', 'node_modules')),
+    });
+    const processor = new AssemblyProcessor({
+      defaultStageDisplayName: 'DefaultStage',
+      toolkit,
+      allowedDestroyTypes: ['AWS::SQS::Queue'],
+      cdkOutDir: 'cdk.out',
+      diffMethod: DiffMethod.LocalFile(
+        'cdk.out/SomeStage-test-stack.template.json',
+      ),
+      failOnDestructiveChanges: true,
+      stackSelectorPatterns: [],
+      stackSelectionStrategy: 'all-stacks',
+      noFailOnDestructiveChanges: [],
+    });
+    await processor.processStages();
+    const p = (processor as any).stageComments;
+    expect(p.SomeStage.destructiveChanges).toEqual(0);
+    const comment =
+      p.SomeStage.stackComments['SomeStage/test-stack'].join('\n');
+    expect(comment).toContain(':yellow_circle:');
+    expect(comment).not.toContain(':x:');
+  });
+
+  test('removal of a non-allowed type still renders x', async () => {
+    mockOutDir['SomeStage-test-stack.template.json'] = JSON.stringify({
+      Resources: {
+        MyRole: {
+          Type: 'AWS::IAM::Role',
+          Properties: {
+            RoleName: 'MyCustomName',
+          },
+        },
+        MyQueue: {
+          Type: 'AWS::SQS::Queue',
+        },
+      },
+    });
+    mock({
+      'cdk.out': mockOutDir,
+      node_modules: mock.load(path.join(__dirname, '..', 'node_modules')),
+    });
+    const processor = new AssemblyProcessor({
+      defaultStageDisplayName: 'DefaultStage',
+      toolkit,
+      allowedDestroyTypes: [],
+      cdkOutDir: 'cdk.out',
+      diffMethod: DiffMethod.LocalFile(
+        'cdk.out/SomeStage-test-stack.template.json',
+      ),
+      failOnDestructiveChanges: true,
+      stackSelectorPatterns: [],
+      stackSelectionStrategy: 'all-stacks',
+      noFailOnDestructiveChanges: [],
+    });
+    await processor.processStages();
+    const p = (processor as any).stageComments;
+    expect(p.SomeStage.destructiveChanges).toEqual(1);
+    const comment =
+      p.SomeStage.stackComments['SomeStage/test-stack'].join('\n');
+    expect(comment).toContain(':x:');
+  });
+
   test('new comment created', async () => {
     mockOutDir['SomeStage-test-stack.template.json'] = JSON.stringify({
       Resources: {